diff --git a/.htaccess b/.htaccess index 390d8d3..fdc951c 100644 --- a/.htaccess +++ b/.htaccess @@ -4,6 +4,14 @@ RewriteEngine On #Uncomment next 2 lines if you want to have always redirect with www subdomain #RewriteCond %{HTTP_HOST} !^www\. #RewriteRule ^(.*)$ http://www.%{HTTP_HOST}/$1 [R=301,L] +RewriteRule ^css/main.css Utils/scripts.php [L] +RewriteRule ^js/jquery.min.js vendor/components/jquery/jquery.min.js [L] +RewriteRule ^js/jquery-ui.min.js vendor/components/jqueryui/jquery-ui.min.js [L] +RewriteRule ^css/(.*)$ assets/css/$1 [NC,L] +RewriteRule ^js/(.*)$ assets/js/$1 [NC,L] +RewriteRule ^fonts/(.*)$ assets/fonts/$1 [NC,L] +RewriteRule ^img/(.*)$ assets/img/$1 [NC,L] + RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^logout$ index.php?logout=true [L] @@ -11,7 +19,6 @@ RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^scripts.js Utils/scripts.php [L] RewriteRule ^scripts.css Utils/scripts.php [L] -RewriteRule ^css/main.css Utils/scripts.php [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . index.php [L] diff --git a/Controller/Mail.class.php b/Controller/Mail.class.php index 6788ecf..6719e30 100644 --- a/Controller/Mail.class.php +++ b/Controller/Mail.class.php @@ -1,8 +1,8 @@ isSMTP(); $this->SMTPDebug = 0; diff --git a/Model/Model.class.php b/Model/Model.class.php index 736924a..e1daac2 100644 --- a/Model/Model.class.php +++ b/Model/Model.class.php @@ -373,7 +373,8 @@ public function get($whereOp = 'AND', $ignore_password = false) { $nc = new Model($table); $c->$table = $nc; } - $c->$table->$matches[2] = $val; + $tc = $matches[2]; + $c->$table->$tc = $val; } else $c->$key = $val; } diff --git a/Module/Administrators/Admin/Admins.class.php b/Module/Administrators/Admin/Admins.class.php index 8c20820..9e81525 100644 --- a/Module/Administrators/Admin/Admins.class.php +++ b/Module/Administrators/Admin/Admins.class.php @@ -13,8 +13,8 @@ public function __set($key, $value) { public function __construct() { $this->title = __('Edit administrators'); $this->h1 = __('Edit administrators'); - $this->js = array('plugins/datatables/jquery.dataTables.js','plugins/datatables/fnReloadAjax.js','plugins/datatables/dataTables.bootstrap.js','plugins/iCheck/icheck.min.js','js/jsall.js','../Module/Administrators/Admin/administrators.js'); - $this->css = array('plugins/datatables/dataTables.bootstrap.css', 'plugins/iCheck/all.css'); + $this->js = array('../vendor/datatables/datatables/media/js/jquery.dataTables.min.js','../vendor/datatables/datatables/media/js/dataTables.bootstrap.min.js','../vendor/almasaeed2010/adminlte/plugins/iCheck/icheck.min.js','js/jsall.js','../Module/Administrators/Admin/administrators.js'); + $this->css = array('../vendor/datatables/datatables/media/css/dataTables.bootstrap.min.css', '../vendor/almasaeed2010/adminlte/plugins/iCheck/all.css'); $htmlPerms = ''; $permissions = new Model('permissions'); $permissions = $permissions->get(); diff --git a/Module/JSON/Admin.class.php b/Module/JSON/Admin.class.php index f3f74f2..00a28fb 100644 --- a/Module/JSON/Admin.class.php +++ b/Module/JSON/Admin.class.php @@ -102,8 +102,6 @@ public function excelExport() { } } } - /** Include PHPExcel */ - require_once(dirname(dirname(dirname(__FILE__))) . '/Utils/PHPExcel.php'); $objPHPExcel = new \PHPExcel(); //Set document properties $objPHPExcel->getProperties()->setCreator(_APP_NAME_)->setLastModifiedBy(_APP_NAME_)->setTitle("Export " . $this->instanceName)->setSubject("Export " . $this->instanceName)->setDescription("Export " . $this->instanceName)->setKeywords(_APP_NAME_ . "export data " . $this->instanceName)->setCategory(_APP_NAME_ . " " . $this->instanceName); diff --git a/Module/Media/Admin/Act.class.php b/Module/Media/Admin/Act.class.php index 3ffa74f..f9b0cad 100644 --- a/Module/Media/Admin/Act.class.php +++ b/Module/Media/Admin/Act.class.php @@ -3,7 +3,7 @@ use Controller\AdminController; use Controller\AdminAct; use Model\Model; -use Utils\PHPThumb\GD; +use \PHPThumb\GD; require_once(dirname(dirname(dirname(dirname(__FILE__)))) . '/Utils/functions.php'); @@ -108,7 +108,7 @@ private static function uploadImg($file, $return = false) { $path_parts = pathinfo($target_file); $thumb_file_name = 'thumb' . $path_parts['filename'] . '.jpg'; $thumb_target_file = $target_dir . $thumb_file_name; - $thumb = new \Utils\PHPThumb\GD($target_file); + $thumb = new \PHPThumb\GD($target_file); $thumb->resize(100, 100); $thumb->save($thumb_target_file, 'jpg'); $targetThumbDir = _FOLDER_URL_ . 'uploads/'; diff --git a/Module/Media/Admin/Media.class.php b/Module/Media/Admin/Media.class.php index 90478c3..d6bafc8 100644 --- a/Module/Media/Admin/Media.class.php +++ b/Module/Media/Admin/Media.class.php @@ -11,8 +11,8 @@ public function __set($key, $value) { public function __construct() { $this->title = __('Media'); $this->h1 = __('Media'); - $this->js = array('plugins/datatables/jquery.dataTables.js','plugins/datatables/fnReloadAjax.js','plugins/datatables/dataTables.bootstrap.js','js/jsall.js','../Module/Media/Admin/media.js'); - $this->css = array('plugins/datatables/dataTables.bootstrap.css'); + $this->js = array('../vendor/datatables/datatables/media/js/jquery.dataTables.min.js','../vendor/datatables/datatables/media/js/dataTables.bootstrap.min.js','js/jsall.js','../Module/Media/Admin/media.js'); + $this->css = array('../vendor/datatables/datatables/media/css/dataTables.bootstrap.min.css'); $this->content = '

' . __('Media') . '

diff --git a/Module/News/Admin/Act.class.php b/Module/News/Admin/Act.class.php index 51a27c3..b59a628 100644 --- a/Module/News/Admin/Act.class.php +++ b/Module/News/Admin/Act.class.php @@ -4,7 +4,7 @@ use Controller\AdminController; use Model\Model; use Module\News\Setup; -use Utils\PHPThumb\GD; +use \PHPThumb\GD; use Utils\Util; require_once(dirname(dirname(dirname(dirname(__FILE__)))) . '/Utils/functions.php'); diff --git a/Module/News/Admin/AdminPage.class.php b/Module/News/Admin/AdminPage.class.php index 882078d..58390d5 100644 --- a/Module/News/Admin/AdminPage.class.php +++ b/Module/News/Admin/AdminPage.class.php @@ -15,8 +15,8 @@ public function output() { $selected = ($language->code == _DEFAULT_LANGUAGE_)?' selected':''; $languageOptions .= ""; } - $page->js = array('js/combobox.js','plugins/datatables/jquery.dataTables.js','plugins/datatables/fnReloadAjax.js','plugins/datatables/dataTables.bootstrap.js','plugins/ckeditor/ckeditor.js','bower_components/select2/dist/js/select2.full.min.js','js/jsall.js','../Module/News/Admin/news.js'); - $page->css = array('bower_components/select2/dist/css/select2.min.css','plugins/datatables/dataTables.bootstrap.css'); + $page->js = array('js/combobox.js','../vendor/datatables/datatables/media/js/jquery.dataTables.min.js','../vendor/datatables/datatables/media/js/dataTables.bootstrap.min.js','../vendor/ckeditor/ckeditor/ckeditor.js','../vendor/almasaeed2010/adminlte/bower_components/select2/dist/js/select2.full.min.js','js/jsall.js','../Module/News/Admin/news.js'); + $page->css = array('../vendor/almasaeed2010/adminlte/bower_components/select2/dist/css/select2.min.css','../vendor/datatables/datatables/media/css/dataTables.bootstrap.min.css'); $page->content = '

' . __('Edit news') . '

diff --git a/Module/Pages/Admin/Menu.class.php b/Module/Pages/Admin/Menu.class.php index c20fea8..3d58ef8 100644 --- a/Module/Pages/Admin/Menu.class.php +++ b/Module/Pages/Admin/Menu.class.php @@ -13,8 +13,8 @@ public function __set($key, $value) { public function __construct() { $this->title = __('Edit menu'); $this->h1 = __('Edit menu'); - $this->js = array('plugins/nestedSortable/jquery.nestedSortable.js','bower_components/select2/dist/js/select2.full.min.js','js/jsall.js','../Module/Pages/Admin/menu.js'); - $this->css = array('bower_components/select2/dist/css/select2.min.css','../Module/Pages/Admin/menu.css'); + $this->js = array('../assets/js/jquery.nestedSortable.js','../vendor/almasaeed2010/adminlte/bower_components/select2/dist/js/select2.full.min.js','js/jsall.js','../Module/Pages/Admin/menu.js'); + $this->css = array('../vendor/almasaeed2010/adminlte/bower_components/select2/dist/css/select2.min.css','../Module/Pages/Admin/menu.css'); $pages = new Model('pages'); $pages->groupBy('language'); $pages->order('language ASC'); diff --git a/Module/Pages/Admin/Pages.class.php b/Module/Pages/Admin/Pages.class.php index 3080011..65f6700 100644 --- a/Module/Pages/Admin/Pages.class.php +++ b/Module/Pages/Admin/Pages.class.php @@ -21,8 +21,8 @@ public function __construct() { $selected = ($language->code == _DEFAULT_LANGUAGE_)?' selected':''; $languageOptions .= ""; } - $this->js = array('plugins/datatables/jquery.dataTables.js','plugins/datatables/fnReloadAjax.js','plugins/datatables/dataTables.bootstrap.js','plugins/ckeditor/ckeditor.js','bower_components/select2/dist/js/select2.full.min.js','js/jsall.js','../Module/Pages/Admin/pages.js'); - $this->css = array('bower_components/select2/dist/css/select2.min.css', 'plugins/datatables/dataTables.bootstrap.css'); + $this->js = array('../vendor/datatables/datatables/media/js/jquery.dataTables.min.js','../vendor/datatables/datatables/media/js/dataTables.bootstrap.min.js','../vendor/ckeditor/ckeditor/ckeditor.js','../vendor/almasaeed2010/adminlte/bower_components/select2/dist/js/select2.full.min.js','js/jsall.js','../Module/Pages/Admin/pages.js'); + $this->css = array('../vendor/almasaeed2010/adminlte/bower_components/select2/dist/css/select2.min.css', '../vendor/datatables/datatables/media/css/dataTables.bootstrap.min.css'); $this->content = '

' . __('Edit pages') . '

diff --git a/Module/Pages/Admin/pages.js b/Module/Pages/Admin/pages.js index b9135e1..ec122de 100644 --- a/Module/Pages/Admin/pages.js +++ b/Module/Pages/Admin/pages.js @@ -27,7 +27,8 @@ function loadData(aoData) { if($("#menutextf").val()!='') filters.filters['menu_text'] = $("#menutextf").val(); return filters; } -$(window).on('load', function () { +$(document).ready(function() { + CKEDITOR.plugins.addExternal('imageuploader', adminfolder + 'plugins/imageuploader/'); CKEDITOR.replace('edcontent', { allowedContent: true, extraPlugins: 'imageuploader,justify' diff --git a/Module/Testimonials/Admin/Act.class.php b/Module/Testimonials/Admin/Act.class.php index 5e80a78..2773130 100644 --- a/Module/Testimonials/Admin/Act.class.php +++ b/Module/Testimonials/Admin/Act.class.php @@ -3,7 +3,7 @@ use Controller\AdminAct; use Controller\AdminController; use Model\Model; -use Utils\PHPThumb\GD; +use \PHPThumb\GD; require_once(dirname(dirname(dirname(dirname(__FILE__)))) . '/Utils/functions.php'); diff --git a/Module/Testimonials/Admin/AdminPage.class.php b/Module/Testimonials/Admin/AdminPage.class.php index 3bff4ba..8e3d3a7 100644 --- a/Module/Testimonials/Admin/AdminPage.class.php +++ b/Module/Testimonials/Admin/AdminPage.class.php @@ -6,8 +6,8 @@ public function output() { $page = new \stdClass(); $page->title = __('Testimonials'); $page->h1 = __('Testimonials'); - $page->js = array('plugins/datatables/jquery.dataTables.js','plugins/datatables/fnReloadAjax.js','plugins/datatables/dataTables.bootstrap.js','plugins/ckeditor/ckeditor.js','js/jsall.js','../Module/Testimonials/Admin/testimonials.js'); - $page->css = array('plugins/datatables/dataTables.bootstrap.css'); + $page->js = array('../vendor/datatables/datatables/media/js/jquery.dataTables.min.js','../vendor/datatables/datatables/media/js/dataTables.bootstrap.min.js','../vendor/ckeditor/ckeditor/ckeditor.js','js/jsall.js','../Module/Testimonials/Admin/testimonials.js'); + $page->css = array('../vendor/datatables/datatables/media/css/dataTables.bootstrap.min.css'); $page->content = '

' . __('Testimonials') . '

diff --git a/Module/Users/Admin/AdminPage.class.php b/Module/Users/Admin/AdminPage.class.php index 6a65c60..c25a4d1 100644 --- a/Module/Users/Admin/AdminPage.class.php +++ b/Module/Users/Admin/AdminPage.class.php @@ -11,8 +11,8 @@ public function output() { $page->title = __('Users'); $page->h1 = __('Users'); foreach($countries AS $country) $countriesOptions .= ''.PHP_EOL; - $page->js = array('plugins/datatables/jquery.dataTables.js','plugins/datatables/fnReloadAjax.js','plugins/datatables/dataTables.bootstrap.js','js/jsall.js','../Module/Users/Admin/users.js'); - $page->css = array('plugins/datatables/dataTables.bootstrap.css'); + $page->js = array('../vendor/datatables/datatables/media/js/jquery.dataTables.min.js','../vendor/datatables/datatables/media/js/dataTables.bootstrap.min.js','js/jsall.js','../Module/Users/Admin/users.js'); + $page->css = array('../vendor/datatables/datatables/media/css/dataTables.bootstrap.min.css'); $page->content = '

' . __('Users') . '

diff --git a/Module/Users/MyAccountPage.class.php b/Module/Users/MyAccountPage.class.php index 4e9f9d5..c603d24 100644 --- a/Module/Users/MyAccountPage.class.php +++ b/Module/Users/MyAccountPage.class.php @@ -12,7 +12,7 @@ class MyAccountPage { public $ogimage = ''; public $h1 = ''; public $breadcrumbs = array(); - public $js = array('validate.min.js', '../Module/Users/my-account.js'); + public $js = array('validate.min.js', 'Module/Users/my-account.js'); public $css = array('cinput.css'); public $visible = true; diff --git a/PHPMailer/PHPMailerAutoload.php b/PHPMailer/PHPMailerAutoload.php deleted file mode 100644 index eaa2e30..0000000 --- a/PHPMailer/PHPMailerAutoload.php +++ /dev/null @@ -1,49 +0,0 @@ - - * @author Jim Jagielski (jimjag) - * @author Andy Prevost (codeworxtech) - * @author Brent R. Matzelle (original founder) - * @copyright 2012 - 2014 Marcus Bointon - * @copyright 2010 - 2012 Jim Jagielski - * @copyright 2004 - 2009 Andy Prevost - * @license http://www.gnu.org/copyleft/lesser.html GNU Lesser General Public License - * @note This program is distributed in the hope that it will be useful - WITHOUT - * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or - * FITNESS FOR A PARTICULAR PURPOSE. - */ - -/** - * PHPMailer SPL autoloader. - * @param string $classname The name of the class to load - */ -function PHPMailerAutoload($classname) -{ - //Can't use __DIR__ as it's only in PHP 5.3+ - $filename = dirname(__FILE__).DIRECTORY_SEPARATOR.'class.'.strtolower($classname).'.php'; - if (is_readable($filename)) { - require $filename; - } -} - -if (version_compare(PHP_VERSION, '5.1.2', '>=')) { - //SPL autoloading was introduced in PHP 5.1.2 - if (version_compare(PHP_VERSION, '5.3.0', '>=')) { - spl_autoload_register('PHPMailerAutoload', true, true); - } else { - spl_autoload_register('PHPMailerAutoload'); - } -} else { - /** - * Fall back to traditional autoload for old PHP versions - * @param string $classname The name of the class to load - */ - function __autoload($classname) - { - PHPMailerAutoload($classname); - } -} diff --git a/PHPMailer/class.phpmailer.php b/PHPMailer/class.phpmailer.php deleted file mode 100644 index 09bbd55..0000000 --- a/PHPMailer/class.phpmailer.php +++ /dev/null @@ -1,3622 +0,0 @@ - - * @author Jim Jagielski (jimjag) - * @author Andy Prevost (codeworxtech) - * @author Brent R. Matzelle (original founder) - * @copyright 2012 - 2014 Marcus Bointon - * @copyright 2010 - 2012 Jim Jagielski - * @copyright 2004 - 2009 Andy Prevost - * @license http://www.gnu.org/copyleft/lesser.html GNU Lesser General Public License - * @note This program is distributed in the hope that it will be useful - WITHOUT - * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or - * FITNESS FOR A PARTICULAR PURPOSE. - */ - -/** - * PHPMailer - PHP email creation and transport class. - * @package PHPMailer - * @author Marcus Bointon (Synchro/coolbru) - * @author Jim Jagielski (jimjag) - * @author Andy Prevost (codeworxtech) - * @author Brent R. Matzelle (original founder) - */ -class PHPMailer -{ - /** - * The PHPMailer Version number. - * @type string - */ - public $Version = '5.2.10'; - - /** - * Email priority. - * Options: 1 = High, 3 = Normal, 5 = low. - * @type integer - */ - public $Priority = 3; - - /** - * The character set of the message. - * @type string - */ - public $CharSet = 'iso-8859-1'; - - /** - * The MIME Content-type of the message. - * @type string - */ - public $ContentType = 'text/plain'; - - /** - * The message encoding. - * Options: "8bit", "7bit", "binary", "base64", and "quoted-printable". - * @type string - */ - public $Encoding = '8bit'; - - /** - * Holds the most recent mailer error message. - * @type string - */ - public $ErrorInfo = ''; - - /** - * The From email address for the message. - * @type string - */ - public $From = 'root@localhost'; - - /** - * The From name of the message. - * @type string - */ - public $FromName = 'Root User'; - - /** - * The Sender email (Return-Path) of the message. - * If not empty, will be sent via -f to sendmail or as 'MAIL FROM' in smtp mode. - * @type string - */ - public $Sender = ''; - - /** - * The Return-Path of the message. - * If empty, it will be set to either From or Sender. - * @type string - * @deprecated Email senders should never set a return-path header; - * it's the receiver's job (RFC5321 section 4.4), so this no longer does anything. - * @link https://tools.ietf.org/html/rfc5321#section-4.4 RFC5321 reference - */ - public $ReturnPath = ''; - - /** - * The Subject of the message. - * @type string - */ - public $Subject = ''; - - /** - * An HTML or plain text message body. - * If HTML then call isHTML(true). - * @type string - */ - public $Body = ''; - - /** - * The plain-text message body. - * This body can be read by mail clients that do not have HTML email - * capability such as mutt & Eudora. - * Clients that can read HTML will view the normal Body. - * @type string - */ - public $AltBody = ''; - - /** - * An iCal message part body. - * Only supported in simple alt or alt_inline message types - * To generate iCal events, use the bundled extras/EasyPeasyICS.php class or iCalcreator - * @link http://sprain.ch/blog/downloads/php-class-easypeasyics-create-ical-files-with-php/ - * @link http://kigkonsult.se/iCalcreator/ - * @type string - */ - public $Ical = ''; - - /** - * The complete compiled MIME message body. - * @access protected - * @type string - */ - protected $MIMEBody = ''; - - /** - * The complete compiled MIME message headers. - * @type string - * @access protected - */ - protected $MIMEHeader = ''; - - /** - * Extra headers that createHeader() doesn't fold in. - * @type string - * @access protected - */ - protected $mailHeader = ''; - - /** - * Word-wrap the message body to this number of chars. - * Set to 0 to not wrap. A useful value here is 78, for RFC2822 section 2.1.1 compliance. - * @type integer - */ - public $WordWrap = 0; - - /** - * Which method to use to send mail. - * Options: "mail", "sendmail", or "smtp". - * @type string - */ - public $Mailer = 'mail'; - - /** - * The path to the sendmail program. - * @type string - */ - public $Sendmail = '/usr/sbin/sendmail'; - - /** - * Whether mail() uses a fully sendmail-compatible MTA. - * One which supports sendmail's "-oi -f" options. - * @type boolean - */ - public $UseSendmailOptions = true; - - /** - * Path to PHPMailer plugins. - * Useful if the SMTP class is not in the PHP include path. - * @type string - * @deprecated Should not be needed now there is an autoloader. - */ - public $PluginDir = ''; - - /** - * The email address that a reading confirmation should be sent to. - * @type string - */ - public $ConfirmReadingTo = ''; - - /** - * The hostname to use in Message-Id and Received headers - * and as default HELO string. - * If empty, the value returned - * by SERVER_NAME is used or 'localhost.localdomain'. - * @type string - */ - public $Hostname = ''; - - /** - * An ID to be used in the Message-Id header. - * If empty, a unique id will be generated. - * @type string - */ - public $MessageID = ''; - - /** - * The message Date to be used in the Date header. - * If empty, the current date will be added. - * @type string - */ - public $MessageDate = ''; - - /** - * SMTP hosts. - * Either a single hostname or multiple semicolon-delimited hostnames. - * You can also specify a different port - * for each host by using this format: [hostname:port] - * (e.g. "smtp1.example.com:25;smtp2.example.com"). - * You can also specify encryption type, for example: - * (e.g. "tls://smtp1.example.com:587;ssl://smtp2.example.com:465"). - * Hosts will be tried in order. - * @type string - */ - public $Host = 'localhost'; - - /** - * The default SMTP server port. - * @type integer - * @TODO Why is this needed when the SMTP class takes care of it? - */ - public $Port = 25; - - /** - * The SMTP HELO of the message. - * Default is $Hostname. - * @type string - * @see PHPMailer::$Hostname - */ - public $Helo = ''; - - /** - * What kind of encryption to use on the SMTP connection. - * Options: '', 'ssl' or 'tls' - * @type string - */ - public $SMTPSecure = ''; - - /** - * Whether to enable TLS encryption automatically if a server supports it, - * even if `SMTPSecure` is not set to 'tls'. - * Be aware that in PHP >= 5.6 this requires that the server's certificates are valid. - * @type boolean - */ - public $SMTPAutoTLS = true; - - /** - * Whether to use SMTP authentication. - * Uses the Username and Password properties. - * @type boolean - * @see PHPMailer::$Username - * @see PHPMailer::$Password - */ - public $SMTPAuth = false; - - /** - * Options array passed to stream_context_create when connecting via SMTP. - * @type array - */ - public $SMTPOptions = array(); - - /** - * SMTP username. - * @type string - */ - public $Username = ''; - - /** - * SMTP password. - * @type string - */ - public $Password = ''; - - /** - * SMTP auth type. - * Options are LOGIN (default), PLAIN, NTLM, CRAM-MD5 - * @type string - */ - public $AuthType = ''; - - /** - * SMTP realm. - * Used for NTLM auth - * @type string - */ - public $Realm = ''; - - /** - * SMTP workstation. - * Used for NTLM auth - * @type string - */ - public $Workstation = ''; - - /** - * The SMTP server timeout in seconds. - * Default of 5 minutes (300sec) is from RFC2821 section 4.5.3.2 - * @type integer - */ - public $Timeout = 300; - - /** - * SMTP class debug output mode. - * Debug output level. - * Options: - * * `0` No output - * * `1` Commands - * * `2` Data and commands - * * `3` As 2 plus connection status - * * `4` Low-level data output - * @type integer - * @see SMTP::$do_debug - */ - public $SMTPDebug = 0; - - /** - * How to handle debug output. - * Options: - * * `echo` Output plain-text as-is, appropriate for CLI - * * `html` Output escaped, line breaks converted to `
`, appropriate for browser output - * * `error_log` Output to error log as configured in php.ini - * - * Alternatively, you can provide a callable expecting two params: a message string and the debug level: - * - * $mail->Debugoutput = function($str, $level) {echo "debug level $level; message: $str";}; - * - * @type string|callable - * @see SMTP::$Debugoutput - */ - public $Debugoutput = 'echo'; - - /** - * Whether to keep SMTP connection open after each message. - * If this is set to true then to close the connection - * requires an explicit call to smtpClose(). - * @type boolean - */ - public $SMTPKeepAlive = false; - - /** - * Whether to split multiple to addresses into multiple messages - * or send them all in one message. - * @type boolean - */ - public $SingleTo = false; - - /** - * Storage for addresses when SingleTo is enabled. - * @type array - * @TODO This should really not be public - */ - public $SingleToArray = array(); - - /** - * Whether to generate VERP addresses on send. - * Only applicable when sending via SMTP. - * @link http://en.wikipedia.org/wiki/Variable_envelope_return_path - * @link http://www.postfix.org/VERP_README.html Postfix VERP info - * @type boolean - */ - public $do_verp = false; - - /** - * Whether to allow sending messages with an empty body. - * @type boolean - */ - public $AllowEmpty = false; - - /** - * The default line ending. - * @note The default remains "\n". We force CRLF where we know - * it must be used via self::CRLF. - * @type string - */ - public $LE = "\n"; - - /** - * DKIM selector. - * @type string - */ - public $DKIM_selector = ''; - - /** - * DKIM Identity. - * Usually the email address used as the source of the email - * @type string - */ - public $DKIM_identity = ''; - - /** - * DKIM passphrase. - * Used if your key is encrypted. - * @type string - */ - public $DKIM_passphrase = ''; - - /** - * DKIM signing domain name. - * @example 'example.com' - * @type string - */ - public $DKIM_domain = ''; - - /** - * DKIM private key file path. - * @type string - */ - public $DKIM_private = ''; - - /** - * Callback Action function name. - * - * The function that handles the result of the send email action. - * It is called out by send() for each email sent. - * - * Value can be any php callable: http://www.php.net/is_callable - * - * Parameters: - * boolean $result result of the send action - * string $to email address of the recipient - * string $cc cc email addresses - * string $bcc bcc email addresses - * string $subject the subject - * string $body the email body - * string $from email address of sender - * @type string - */ - public $action_function = ''; - - /** - * What to put in the X-Mailer header. - * Options: An empty string for PHPMailer default, whitespace for none, or a string to use - * @type string - */ - public $XMailer = ''; - - /** - * An instance of the SMTP sender class. - * @type SMTP - * @access protected - */ - protected $smtp = null; - - /** - * The array of 'to' addresses. - * @type array - * @access protected - */ - protected $to = array(); - - /** - * The array of 'cc' addresses. - * @type array - * @access protected - */ - protected $cc = array(); - - /** - * The array of 'bcc' addresses. - * @type array - * @access protected - */ - protected $bcc = array(); - - /** - * The array of reply-to names and addresses. - * @type array - * @access protected - */ - protected $ReplyTo = array(); - - /** - * An array of all kinds of addresses. - * Includes all of $to, $cc, $bcc - * @type array - * @access protected - */ - protected $all_recipients = array(); - - /** - * The array of attachments. - * @type array - * @access protected - */ - protected $attachment = array(); - - /** - * The array of custom headers. - * @type array - * @access protected - */ - protected $CustomHeader = array(); - - /** - * The most recent Message-ID (including angular brackets). - * @type string - * @access protected - */ - protected $lastMessageID = ''; - - /** - * The message's MIME type. - * @type string - * @access protected - */ - protected $message_type = ''; - - /** - * The array of MIME boundary strings. - * @type array - * @access protected - */ - protected $boundary = array(); - - /** - * The array of available languages. - * @type array - * @access protected - */ - protected $language = array(); - - /** - * The number of errors encountered. - * @type integer - * @access protected - */ - protected $error_count = 0; - - /** - * The S/MIME certificate file path. - * @type string - * @access protected - */ - protected $sign_cert_file = ''; - - /** - * The S/MIME key file path. - * @type string - * @access protected - */ - protected $sign_key_file = ''; - - /** - * The optional S/MIME extra certificates ("CA Chain") file path. - * @type string - * @access protected - */ - protected $sign_extracerts_file = ''; - - /** - * The S/MIME password for the key. - * Used only if the key is encrypted. - * @type string - * @access protected - */ - protected $sign_key_pass = ''; - - /** - * Whether to throw exceptions for errors. - * @type boolean - * @access protected - */ - protected $exceptions = false; - - /** - * Unique ID used for message ID and boundaries. - * @type string - * @access protected - */ - protected $uniqueid = ''; - - /** - * Error severity: message only, continue processing. - */ - const STOP_MESSAGE = 0; - - /** - * Error severity: message, likely ok to continue processing. - */ - const STOP_CONTINUE = 1; - - /** - * Error severity: message, plus full stop, critical error reached. - */ - const STOP_CRITICAL = 2; - - /** - * SMTP RFC standard line ending. - */ - const CRLF = "\r\n"; - - /** - * The maximum line length allowed by RFC 2822 section 2.1.1 - * @type integer - */ - const MAX_LINE_LENGTH = 998; - - /** - * Constructor. - * @param boolean $exceptions Should we throw external exceptions? - */ - public function __construct($exceptions = false) - { - $this->exceptions = (boolean)$exceptions; - } - - /** - * Destructor. - */ - public function __destruct() - { - //Close any open SMTP connection nicely - if ($this->Mailer == 'smtp') { - $this->smtpClose(); - } - } - - /** - * Call mail() in a safe_mode-aware fashion. - * Also, unless sendmail_path points to sendmail (or something that - * claims to be sendmail), don't pass params (not a perfect fix, - * but it will do) - * @param string $to To - * @param string $subject Subject - * @param string $body Message Body - * @param string $header Additional Header(s) - * @param string $params Params - * @access private - * @return boolean - */ - private function mailPassthru($to, $subject, $body, $header, $params) - { - //Check overloading of mail function to avoid double-encoding - if (ini_get('mbstring.func_overload') & 1) { - $subject = $this->secureHeader($subject); - } else { - $subject = $this->encodeHeader($this->secureHeader($subject)); - } - if (ini_get('safe_mode') || !($this->UseSendmailOptions)) { - $result = @mail($to, $subject, $body, $header); - } else { - $result = @mail($to, $subject, $body, $header, $params); - } - return $result; - } - - /** - * Output debugging info via user-defined method. - * Only generates output if SMTP debug output is enabled (@see SMTP::$do_debug). - * @see PHPMailer::$Debugoutput - * @see PHPMailer::$SMTPDebug - * @param string $str - */ - protected function edebug($str) - { - if ($this->SMTPDebug <= 0) { - return; - } - //Avoid clash with built-in function names - if (!in_array($this->Debugoutput, array('error_log', 'html', 'echo')) and is_callable($this->Debugoutput)) { - call_user_func($this->Debugoutput, $str, $this->SMTPDebug); - return; - } - switch ($this->Debugoutput) { - case 'error_log': - //Don't output, just log - error_log($str); - break; - case 'html': - //Cleans up output a bit for a better looking, HTML-safe output - echo htmlentities( - preg_replace('/[\r\n]+/', '', $str), - ENT_QUOTES, - 'UTF-8' - ) - . "
\n"; - break; - case 'echo': - default: - //Normalize line breaks - $str = preg_replace('/(\r\n|\r|\n)/ms', "\n", $str); - echo gmdate('Y-m-d H:i:s') . "\t" . str_replace( - "\n", - "\n \t ", - trim($str) - ) . "\n"; - } - } - - /** - * Sets message type to HTML or plain. - * @param boolean $isHtml True for HTML mode. - * @return void - */ - public function isHTML($isHtml = true) - { - if ($isHtml) { - $this->ContentType = 'text/html'; - } else { - $this->ContentType = 'text/plain'; - } - } - - /** - * Send messages using SMTP. - * @return void - */ - public function isSMTP() - { - $this->Mailer = 'smtp'; - } - - /** - * Send messages using PHP's mail() function. - * @return void - */ - public function isMail() - { - $this->Mailer = 'mail'; - } - - /** - * Send messages using $Sendmail. - * @return void - */ - public function isSendmail() - { - $ini_sendmail_path = ini_get('sendmail_path'); - - if (!stristr($ini_sendmail_path, 'sendmail')) { - $this->Sendmail = '/usr/sbin/sendmail'; - } else { - $this->Sendmail = $ini_sendmail_path; - } - $this->Mailer = 'sendmail'; - } - - /** - * Send messages using qmail. - * @return void - */ - public function isQmail() - { - $ini_sendmail_path = ini_get('sendmail_path'); - - if (!stristr($ini_sendmail_path, 'qmail')) { - $this->Sendmail = '/var/qmail/bin/qmail-inject'; - } else { - $this->Sendmail = $ini_sendmail_path; - } - $this->Mailer = 'qmail'; - } - - /** - * Add a "To" address. - * @param string $address - * @param string $name - * @return boolean true on success, false if address already used - */ - public function addAddress($address, $name = '') - { - return $this->addAnAddress('to', $address, $name); - } - - /** - * Add a "CC" address. - * @note: This function works with the SMTP mailer on win32, not with the "mail" mailer. - * @param string $address - * @param string $name - * @return boolean true on success, false if address already used - */ - public function addCC($address, $name = '') - { - return $this->addAnAddress('cc', $address, $name); - } - - /** - * Add a "BCC" address. - * @note: This function works with the SMTP mailer on win32, not with the "mail" mailer. - * @param string $address - * @param string $name - * @return boolean true on success, false if address already used - */ - public function addBCC($address, $name = '') - { - return $this->addAnAddress('bcc', $address, $name); - } - - /** - * Add a "Reply-to" address. - * @param string $address - * @param string $name - * @return boolean - */ - public function addReplyTo($address, $name = '') - { - return $this->addAnAddress('Reply-To', $address, $name); - } - - /** - * Add an address to one of the recipient arrays. - * Addresses that have been added already return false, but do not throw exceptions - * @param string $kind One of 'to', 'cc', 'bcc', 'ReplyTo' - * @param string $address The email address to send to - * @param string $name - * @throws phpmailerException - * @return boolean true on success, false if address already used or invalid in some way - * @access protected - */ - protected function addAnAddress($kind, $address, $name = '') - { - if (!preg_match('/^(to|cc|bcc|Reply-To)$/', $kind)) { - $this->setError($this->lang('Invalid recipient array') . ': ' . $kind); - $this->edebug($this->lang('Invalid recipient array') . ': ' . $kind); - if ($this->exceptions) { - throw new phpmailerException('Invalid recipient array: ' . $kind); - } - return false; - } - $address = trim($address); - $name = trim(preg_replace('/[\r\n]+/', '', $name)); //Strip breaks and trim - if (!$this->validateAddress($address)) { - $this->setError($this->lang('invalid_address') . ': ' . $address); - $this->edebug($this->lang('invalid_address') . ': ' . $address); - if ($this->exceptions) { - throw new phpmailerException($this->lang('invalid_address') . ': ' . $address); - } - return false; - } - if ($kind != 'Reply-To') { - if (!isset($this->all_recipients[strtolower($address)])) { - array_push($this->$kind, array($address, $name)); - $this->all_recipients[strtolower($address)] = true; - return true; - } - } else { - if (!array_key_exists(strtolower($address), $this->ReplyTo)) { - $this->ReplyTo[strtolower($address)] = array($address, $name); - return true; - } - } - return false; - } - - /** - * Set the From and FromName properties. - * @param string $address - * @param string $name - * @param boolean $auto Whether to also set the Sender address, defaults to true - * @throws phpmailerException - * @return boolean - */ - public function setFrom($address, $name = '', $auto = true) - { - $address = trim($address); - $name = trim(preg_replace('/[\r\n]+/', '', $name)); //Strip breaks and trim - if (!$this->validateAddress($address)) { - $this->setError($this->lang('invalid_address') . ': ' . $address); - $this->edebug($this->lang('invalid_address') . ': ' . $address); - if ($this->exceptions) { - throw new phpmailerException($this->lang('invalid_address') . ': ' . $address); - } - return false; - } - $this->From = $address; - $this->FromName = $name; - if ($auto) { - if (empty($this->Sender)) { - $this->Sender = $address; - } - } - return true; - } - - /** - * Return the Message-ID header of the last email. - * Technically this is the value from the last time the headers were created, - * but it's also the message ID of the last sent message except in - * pathological cases. - * @return string - */ - public function getLastMessageID() - { - return $this->lastMessageID; - } - - /** - * Check that a string looks like an email address. - * @param string $address The email address to check - * @param string $patternselect A selector for the validation pattern to use : - * * `auto` Pick strictest one automatically; - * * `pcre8` Use the squiloople.com pattern, requires PCRE > 8.0, PHP >= 5.3.2, 5.2.14; - * * `pcre` Use old PCRE implementation; - * * `php` Use PHP built-in FILTER_VALIDATE_EMAIL; same as pcre8 but does not allow 'dotless' domains; - * * `html5` Use the pattern given by the HTML5 spec for 'email' type form input elements. - * * `noregex` Don't use a regex: super fast, really dumb. - * @return boolean - * @static - * @access public - */ - public static function validateAddress($address, $patternselect = 'auto') - { - if (!$patternselect or $patternselect == 'auto') { - //Check this constant first so it works when extension_loaded() is disabled by safe mode - //Constant was added in PHP 5.2.4 - if (defined('PCRE_VERSION')) { - //This pattern can get stuck in a recursive loop in PCRE <= 8.0.2 - if (version_compare(PCRE_VERSION, '8.0.3') >= 0) { - $patternselect = 'pcre8'; - } else { - $patternselect = 'pcre'; - } - } elseif (function_exists('extension_loaded') and extension_loaded('pcre')) { - //Fall back to older PCRE - $patternselect = 'pcre'; - } else { - //Filter_var appeared in PHP 5.2.0 and does not require the PCRE extension - if (version_compare(PHP_VERSION, '5.2.0') >= 0) { - $patternselect = 'php'; - } else { - $patternselect = 'noregex'; - } - } - } - switch ($patternselect) { - case 'pcre8': - /** - * Uses the same RFC5322 regex on which FILTER_VALIDATE_EMAIL is based, but allows dotless domains. - * @link http://squiloople.com/2009/12/20/email-address-validation/ - * @copyright 2009-2010 Michael Rushton - * Feel free to use and redistribute this code. But please keep this copyright notice. - */ - return (boolean)preg_match( - '/^(?!(?>(?1)"?(?>\\\[ -~]|[^"])"?(?1)){255,})(?!(?>(?1)"?(?>\\\[ -~]|[^"])"?(?1)){65,}@)' . - '((?>(?>(?>((?>(?>(?>\x0D\x0A)?[\t ])+|(?>[\t ]*\x0D\x0A)?[\t ]+)?)(\((?>(?2)' . - '(?>[\x01-\x08\x0B\x0C\x0E-\'*-\[\]-\x7F]|\\\[\x00-\x7F]|(?3)))*(?2)\)))+(?2))|(?2))?)' . - '([!#-\'*+\/-9=?^-~-]+|"(?>(?2)(?>[\x01-\x08\x0B\x0C\x0E-!#-\[\]-\x7F]|\\\[\x00-\x7F]))*' . - '(?2)")(?>(?1)\.(?1)(?4))*(?1)@(?!(?1)[a-z0-9-]{64,})(?1)(?>([a-z0-9](?>[a-z0-9-]*[a-z0-9])?)' . - '(?>(?1)\.(?!(?1)[a-z0-9-]{64,})(?1)(?5)){0,126}|\[(?:(?>IPv6:(?>([a-f0-9]{1,4})(?>:(?6)){7}' . - '|(?!(?:.*[a-f0-9][:\]]){8,})((?6)(?>:(?6)){0,6})?::(?7)?))|(?>(?>IPv6:(?>(?6)(?>:(?6)){5}:' . - '|(?!(?:.*[a-f0-9]:){6,})(?8)?::(?>((?6)(?>:(?6)){0,4}):)?))?(25[0-5]|2[0-4][0-9]|1[0-9]{2}' . - '|[1-9]?[0-9])(?>\.(?9)){3}))\])(?1)$/isD', - $address - ); - case 'pcre': - //An older regex that doesn't need a recent PCRE - return (boolean)preg_match( - '/^(?!(?>"?(?>\\\[ -~]|[^"])"?){255,})(?!(?>"?(?>\\\[ -~]|[^"])"?){65,}@)(?>' . - '[!#-\'*+\/-9=?^-~-]+|"(?>(?>[\x01-\x08\x0B\x0C\x0E-!#-\[\]-\x7F]|\\\[\x00-\xFF]))*")' . - '(?>\.(?>[!#-\'*+\/-9=?^-~-]+|"(?>(?>[\x01-\x08\x0B\x0C\x0E-!#-\[\]-\x7F]|\\\[\x00-\xFF]))*"))*' . - '@(?>(?![a-z0-9-]{64,})(?>[a-z0-9](?>[a-z0-9-]*[a-z0-9])?)(?>\.(?![a-z0-9-]{64,})' . - '(?>[a-z0-9](?>[a-z0-9-]*[a-z0-9])?)){0,126}|\[(?:(?>IPv6:(?>(?>[a-f0-9]{1,4})(?>:' . - '[a-f0-9]{1,4}){7}|(?!(?:.*[a-f0-9][:\]]){8,})(?>[a-f0-9]{1,4}(?>:[a-f0-9]{1,4}){0,6})?' . - '::(?>[a-f0-9]{1,4}(?>:[a-f0-9]{1,4}){0,6})?))|(?>(?>IPv6:(?>[a-f0-9]{1,4}(?>:' . - '[a-f0-9]{1,4}){5}:|(?!(?:.*[a-f0-9]:){6,})(?>[a-f0-9]{1,4}(?>:[a-f0-9]{1,4}){0,4})?' . - '::(?>(?:[a-f0-9]{1,4}(?>:[a-f0-9]{1,4}){0,4}):)?))?(?>25[0-5]|2[0-4][0-9]|1[0-9]{2}' . - '|[1-9]?[0-9])(?>\.(?>25[0-5]|2[0-4][0-9]|1[0-9]{2}|[1-9]?[0-9])){3}))\])$/isD', - $address - ); - case 'html5': - /** - * This is the pattern used in the HTML5 spec for validation of 'email' type form input elements. - * @link http://www.whatwg.org/specs/web-apps/current-work/#e-mail-state-(type=email) - */ - return (boolean)preg_match( - '/^[a-zA-Z0-9.!#$%&\'*+\/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}' . - '[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$/sD', - $address - ); - case 'noregex': - //No PCRE! Do something _very_ approximate! - //Check the address is 3 chars or longer and contains an @ that's not the first or last char - return (strlen($address) >= 3 - and strpos($address, '@') >= 1 - and strpos($address, '@') != strlen($address) - 1); - case 'php': - default: - return (boolean)filter_var($address, FILTER_VALIDATE_EMAIL); - } - } - - /** - * Create a message and send it. - * Uses the sending method specified by $Mailer. - * @throws phpmailerException - * @return boolean false on error - See the ErrorInfo property for details of the error. - */ - public function send() - { - try { - if (!$this->preSend()) { - return false; - } - return $this->postSend(); - } catch (phpmailerException $exc) { - $this->mailHeader = ''; - $this->setError($exc->getMessage()); - if ($this->exceptions) { - throw $exc; - } - return false; - } - } - - /** - * Prepare a message for sending. - * @throws phpmailerException - * @return boolean - */ - public function preSend() - { - try { - $this->mailHeader = ''; - if ((count($this->to) + count($this->cc) + count($this->bcc)) < 1) { - throw new phpmailerException($this->lang('provide_address'), self::STOP_CRITICAL); - } - - // Set whether the message is multipart/alternative - if (!empty($this->AltBody)) { - $this->ContentType = 'multipart/alternative'; - } - - $this->error_count = 0; // Reset errors - $this->setMessageType(); - // Refuse to send an empty message unless we are specifically allowing it - if (!$this->AllowEmpty and empty($this->Body)) { - throw new phpmailerException($this->lang('empty_message'), self::STOP_CRITICAL); - } - - // Create body before headers in case body makes changes to headers (e.g. altering transfer encoding) - $this->MIMEHeader = ''; - $this->MIMEBody = $this->createBody(); - // createBody may have added some headers, so retain them - $tempheaders = $this->MIMEHeader; - $this->MIMEHeader = $this->createHeader(); - $this->MIMEHeader .= $tempheaders; - - // To capture the complete message when using mail(), create - // an extra header list which createHeader() doesn't fold in - if ($this->Mailer == 'mail') { - if (count($this->to) > 0) { - $this->mailHeader .= $this->addrAppend('To', $this->to); - } else { - $this->mailHeader .= $this->headerLine('To', 'undisclosed-recipients:;'); - } - $this->mailHeader .= $this->headerLine( - 'Subject', - $this->encodeHeader($this->secureHeader(trim($this->Subject))) - ); - } - - // Sign with DKIM if enabled - if (!empty($this->DKIM_domain) - && !empty($this->DKIM_private) - && !empty($this->DKIM_selector) - && file_exists($this->DKIM_private)) { - $header_dkim = $this->DKIM_Add( - $this->MIMEHeader . $this->mailHeader, - $this->encodeHeader($this->secureHeader($this->Subject)), - $this->MIMEBody - ); - $this->MIMEHeader = rtrim($this->MIMEHeader, "\r\n ") . self::CRLF . - str_replace("\r\n", "\n", $header_dkim) . self::CRLF; - } - return true; - } catch (phpmailerException $exc) { - $this->setError($exc->getMessage()); - if ($this->exceptions) { - throw $exc; - } - return false; - } - } - - /** - * Actually send a message. - * Send the email via the selected mechanism - * @throws phpmailerException - * @return boolean - */ - public function postSend() - { - try { - // Choose the mailer and send through it - switch ($this->Mailer) { - case 'sendmail': - case 'qmail': - return $this->sendmailSend($this->MIMEHeader, $this->MIMEBody); - case 'smtp': - return $this->smtpSend($this->MIMEHeader, $this->MIMEBody); - case 'mail': - return $this->mailSend($this->MIMEHeader, $this->MIMEBody); - default: - $sendMethod = $this->Mailer.'Send'; - if (method_exists($this, $sendMethod)) { - return $this->$sendMethod($this->MIMEHeader, $this->MIMEBody); - } - - return $this->mailSend($this->MIMEHeader, $this->MIMEBody); - } - } catch (phpmailerException $exc) { - $this->setError($exc->getMessage()); - $this->edebug($exc->getMessage()); - if ($this->exceptions) { - throw $exc; - } - } - return false; - } - - /** - * Send mail using the $Sendmail program. - * @param string $header The message headers - * @param string $body The message body - * @see PHPMailer::$Sendmail - * @throws phpmailerException - * @access protected - * @return boolean - */ - protected function sendmailSend($header, $body) - { - if ($this->Sender != '') { - if ($this->Mailer == 'qmail') { - $sendmail = sprintf('%s -f%s', escapeshellcmd($this->Sendmail), escapeshellarg($this->Sender)); - } else { - $sendmail = sprintf('%s -oi -f%s -t', escapeshellcmd($this->Sendmail), escapeshellarg($this->Sender)); - } - } else { - if ($this->Mailer == 'qmail') { - $sendmail = sprintf('%s', escapeshellcmd($this->Sendmail)); - } else { - $sendmail = sprintf('%s -oi -t', escapeshellcmd($this->Sendmail)); - } - } - if ($this->SingleTo) { - foreach ($this->SingleToArray as $toAddr) { - if (!@$mail = popen($sendmail, 'w')) { - throw new phpmailerException($this->lang('execute') . $this->Sendmail, self::STOP_CRITICAL); - } - fputs($mail, 'To: ' . $toAddr . "\n"); - fputs($mail, $header); - fputs($mail, $body); - $result = pclose($mail); - $this->doCallback( - ($result == 0), - array($toAddr), - $this->cc, - $this->bcc, - $this->Subject, - $body, - $this->From - ); - if ($result != 0) { - throw new phpmailerException($this->lang('execute') . $this->Sendmail, self::STOP_CRITICAL); - } - } - } else { - if (!@$mail = popen($sendmail, 'w')) { - throw new phpmailerException($this->lang('execute') . $this->Sendmail, self::STOP_CRITICAL); - } - fputs($mail, $header); - fputs($mail, $body); - $result = pclose($mail); - $this->doCallback(($result == 0), $this->to, $this->cc, $this->bcc, $this->Subject, $body, $this->From); - if ($result != 0) { - throw new phpmailerException($this->lang('execute') . $this->Sendmail, self::STOP_CRITICAL); - } - } - return true; - } - - /** - * Send mail using the PHP mail() function. - * @param string $header The message headers - * @param string $body The message body - * @link http://www.php.net/manual/en/book.mail.php - * @throws phpmailerException - * @access protected - * @return boolean - */ - protected function mailSend($header, $body) - { - $toArr = array(); - foreach ($this->to as $toaddr) { - $toArr[] = $this->addrFormat($toaddr); - } - $to = implode(', ', $toArr); - - if (empty($this->Sender)) { - $params = ' '; - } else { - $params = sprintf('-f%s', $this->Sender); - } - if ($this->Sender != '' and !ini_get('safe_mode')) { - $old_from = ini_get('sendmail_from'); - ini_set('sendmail_from', $this->Sender); - } - $result = false; - if ($this->SingleTo && count($toArr) > 1) { - foreach ($toArr as $toAddr) { - $result = $this->mailPassthru($toAddr, $this->Subject, $body, $header, $params); - $this->doCallback($result, array($toAddr), $this->cc, $this->bcc, $this->Subject, $body, $this->From); - } - } else { - $result = $this->mailPassthru($to, $this->Subject, $body, $header, $params); - $this->doCallback($result, $this->to, $this->cc, $this->bcc, $this->Subject, $body, $this->From); - } - if (isset($old_from)) { - ini_set('sendmail_from', $old_from); - } - if (!$result) { - throw new phpmailerException($this->lang('instantiate'), self::STOP_CRITICAL); - } - return true; - } - - /** - * Get an instance to use for SMTP operations. - * Override this function to load your own SMTP implementation - * @return SMTP - */ - public function getSMTPInstance() - { - if (!is_object($this->smtp)) { - $this->smtp = new SMTP; - } - return $this->smtp; - } - - /** - * Send mail via SMTP. - * Returns false if there is a bad MAIL FROM, RCPT, or DATA input. - * Uses the PHPMailerSMTP class by default. - * @see PHPMailer::getSMTPInstance() to use a different class. - * @param string $header The message headers - * @param string $body The message body - * @throws phpmailerException - * @uses SMTP - * @access protected - * @return boolean - */ - protected function smtpSend($header, $body) - { - $bad_rcpt = array(); - if (!$this->smtpConnect($this->SMTPOptions)) { - throw new phpmailerException($this->lang('smtp_connect_failed'), self::STOP_CRITICAL); - } - if ('' == $this->Sender) { - $smtp_from = $this->From; - } else { - $smtp_from = $this->Sender; - } - if (!$this->smtp->mail($smtp_from)) { - $this->setError($this->lang('from_failed') . $smtp_from . ' : ' . implode(',', $this->smtp->getError())); - throw new phpmailerException($this->ErrorInfo, self::STOP_CRITICAL); - } - - // Attempt to send to all recipients - foreach (array($this->to, $this->cc, $this->bcc) as $togroup) { - foreach ($togroup as $to) { - if (!$this->smtp->recipient($to[0])) { - $error = $this->smtp->getError(); - $bad_rcpt[] = array('to' => $to[0], 'error' => $error['detail']); - $isSent = false; - } else { - $isSent = true; - } - $this->doCallback($isSent, array($to[0]), array(), array(), $this->Subject, $body, $this->From); - } - } - - // Only send the DATA command if we have viable recipients - if ((count($this->all_recipients) > count($bad_rcpt)) and !$this->smtp->data($header . $body)) { - throw new phpmailerException($this->lang('data_not_accepted'), self::STOP_CRITICAL); - } - if ($this->SMTPKeepAlive) { - $this->smtp->reset(); - } else { - $this->smtp->quit(); - $this->smtp->close(); - } - //Create error message for any bad addresses - if (count($bad_rcpt) > 0) { - $errstr = ''; - foreach ($bad_rcpt as $bad) { - $errstr .= $bad['to'] . ': ' . $bad['error']; - } - throw new phpmailerException( - $this->lang('recipients_failed') . $errstr, - self::STOP_CONTINUE - ); - } - return true; - } - - /** - * Initiate a connection to an SMTP server. - * Returns false if the operation failed. - * @param array $options An array of options compatible with stream_context_create() - * @uses SMTP - * @access public - * @throws phpmailerException - * @return boolean - */ - public function smtpConnect($options = array()) - { - if (is_null($this->smtp)) { - $this->smtp = $this->getSMTPInstance(); - } - - // Already connected? - if ($this->smtp->connected()) { - return true; - } - - $this->smtp->setTimeout($this->Timeout); - $this->smtp->setDebugLevel($this->SMTPDebug); - $this->smtp->setDebugOutput($this->Debugoutput); - $this->smtp->setVerp($this->do_verp); - $hosts = explode(';', $this->Host); - $lastexception = null; - - foreach ($hosts as $hostentry) { - $hostinfo = array(); - if (!preg_match('/^((ssl|tls):\/\/)*([a-zA-Z0-9\.-]*):?([0-9]*)$/', trim($hostentry), $hostinfo)) { - // Not a valid host entry - continue; - } - // $hostinfo[2]: optional ssl or tls prefix - // $hostinfo[3]: the hostname - // $hostinfo[4]: optional port number - // The host string prefix can temporarily override the current setting for SMTPSecure - // If it's not specified, the default value is used - $prefix = ''; - $secure = $this->SMTPSecure; - $tls = ($this->SMTPSecure == 'tls'); - if ('ssl' == $hostinfo[2] or ('' == $hostinfo[2] and 'ssl' == $this->SMTPSecure)) { - $prefix = 'ssl://'; - $tls = false; // Can't have SSL and TLS at the same time - $secure = 'ssl'; - } elseif ($hostinfo[2] == 'tls') { - $tls = true; - // tls doesn't use a prefix - $secure = 'tls'; - } - //Do we need the OpenSSL extension? - $sslext = defined('OPENSSL_ALGO_SHA1'); - if ('tls' === $secure or 'ssl' === $secure) { - //Check for an OpenSSL constant rather than using extension_loaded, which is sometimes disabled - if (!$sslext) { - throw new phpmailerException($this->lang('extension_missing').'openssl', self::STOP_CRITICAL); - } - } - $host = $hostinfo[3]; - $port = $this->Port; - $tport = (integer)$hostinfo[4]; - if ($tport > 0 and $tport < 65536) { - $port = $tport; - } - if ($this->smtp->connect($prefix . $host, $port, $this->Timeout, $options)) { - try { - if ($this->Helo) { - $hello = $this->Helo; - } else { - $hello = $this->serverHostname(); - } - $this->smtp->hello($hello); - //Automatically enable TLS encryption if: - // * it's not disabled - // * we have openssl extension - // * we are not already using SSL - // * the server offers STARTTLS - if ($this->SMTPAutoTLS and $sslext and $secure != 'ssl' and $this->smtp->getServerExt('STARTTLS')) { - $tls = true; - } - if ($tls) { - if (!$this->smtp->startTLS()) { - throw new phpmailerException($this->lang('connect_host')); - } - // We must resend HELO after tls negotiation - $this->smtp->hello($hello); - } - if ($this->SMTPAuth) { - if (!$this->smtp->authenticate( - $this->Username, - $this->Password, - $this->AuthType, - $this->Realm, - $this->Workstation - ) - ) { - throw new phpmailerException($this->lang('authenticate')); - } - } - return true; - } catch (phpmailerException $exc) { - $lastexception = $exc; - $this->edebug($exc->getMessage()); - // We must have connected, but then failed TLS or Auth, so close connection nicely - $this->smtp->quit(); - } - } - } - // If we get here, all connection attempts have failed, so close connection hard - $this->smtp->close(); - // As we've caught all exceptions, just report whatever the last one was - if ($this->exceptions and !is_null($lastexception)) { - throw $lastexception; - } - return false; - } - - /** - * Close the active SMTP session if one exists. - * @return void - */ - public function smtpClose() - { - if ($this->smtp !== null) { - if ($this->smtp->connected()) { - $this->smtp->quit(); - $this->smtp->close(); - } - } - } - - /** - * Set the language for error messages. - * Returns false if it cannot load the language file. - * The default language is English. - * @param string $langcode ISO 639-1 2-character language code (e.g. French is "fr") - * @param string $lang_path Path to the language file directory, with trailing separator (slash) - * @return boolean - * @access public - */ - public function setLanguage($langcode = 'en', $lang_path = '') - { - // Define full set of translatable strings in English - $PHPMAILER_LANG = array( - 'authenticate' => 'SMTP Error: Could not authenticate.', - 'connect_host' => 'SMTP Error: Could not connect to SMTP host.', - 'data_not_accepted' => 'SMTP Error: data not accepted.', - 'empty_message' => 'Message body empty', - 'encoding' => 'Unknown encoding: ', - 'execute' => 'Could not execute: ', - 'file_access' => 'Could not access file: ', - 'file_open' => 'File Error: Could not open file: ', - 'from_failed' => 'The following From address failed: ', - 'instantiate' => 'Could not instantiate mail function.', - 'invalid_address' => 'Invalid address', - 'mailer_not_supported' => ' mailer is not supported.', - 'provide_address' => 'You must provide at least one recipient email address.', - 'recipients_failed' => 'SMTP Error: The following recipients failed: ', - 'signing' => 'Signing Error: ', - 'smtp_connect_failed' => 'SMTP connect() failed.', - 'smtp_error' => 'SMTP server error: ', - 'variable_set' => 'Cannot set or reset variable: ', - 'extension_missing' => 'Extension missing: ' - ); - if (empty($lang_path)) { - // Calculate an absolute path so it can work if CWD is not here - $lang_path = dirname(__FILE__). DIRECTORY_SEPARATOR . 'language'. DIRECTORY_SEPARATOR; - } - $foundlang = true; - $lang_file = $lang_path . 'phpmailer.lang-' . $langcode . '.php'; - // There is no English translation file - if ($langcode != 'en') { - // Make sure language file path is readable - if (!is_readable($lang_file)) { - $foundlang = false; - } else { - // Overwrite language-specific strings. - // This way we'll never have missing translation keys. - $foundlang = include $lang_file; - } - } - $this->language = $PHPMAILER_LANG; - return (boolean)$foundlang; // Returns false if language not found - } - - /** - * Get the array of strings for the current language. - * @return array - */ - public function getTranslations() - { - return $this->language; - } - - /** - * Create recipient headers. - * @access public - * @param string $type - * @param array $addr An array of recipient, - * where each recipient is a 2-element indexed array with element 0 containing an address - * and element 1 containing a name, like: - * array(array('joe@example.com', 'Joe User'), array('zoe@example.com', 'Zoe User')) - * @return string - */ - public function addrAppend($type, $addr) - { - $addresses = array(); - foreach ($addr as $address) { - $addresses[] = $this->addrFormat($address); - } - return $type . ': ' . implode(', ', $addresses) . $this->LE; - } - - /** - * Format an address for use in a message header. - * @access public - * @param array $addr A 2-element indexed array, element 0 containing an address, element 1 containing a name - * like array('joe@example.com', 'Joe User') - * @return string - */ - public function addrFormat($addr) - { - if (empty($addr[1])) { // No name provided - return $this->secureHeader($addr[0]); - } else { - return $this->encodeHeader($this->secureHeader($addr[1]), 'phrase') . ' <' . $this->secureHeader( - $addr[0] - ) . '>'; - } - } - - /** - * Word-wrap message. - * For use with mailers that do not automatically perform wrapping - * and for quoted-printable encoded messages. - * Original written by philippe. - * @param string $message The message to wrap - * @param integer $length The line length to wrap to - * @param boolean $qp_mode Whether to run in Quoted-Printable mode - * @access public - * @return string - */ - public function wrapText($message, $length, $qp_mode = false) - { - if ($qp_mode) { - $soft_break = sprintf(' =%s', $this->LE); - } else { - $soft_break = $this->LE; - } - // If utf-8 encoding is used, we will need to make sure we don't - // split multibyte characters when we wrap - $is_utf8 = (strtolower($this->CharSet) == 'utf-8'); - $lelen = strlen($this->LE); - $crlflen = strlen(self::CRLF); - - $message = $this->fixEOL($message); - //Remove a trailing line break - if (substr($message, -$lelen) == $this->LE) { - $message = substr($message, 0, -$lelen); - } - - //Split message into lines - $lines = explode($this->LE, $message); - //Message will be rebuilt in here - $message = ''; - foreach ($lines as $line) { - $words = explode(' ', $line); - $buf = ''; - $firstword = true; - foreach ($words as $word) { - if ($qp_mode and (strlen($word) > $length)) { - $space_left = $length - strlen($buf) - $crlflen; - if (!$firstword) { - if ($space_left > 20) { - $len = $space_left; - if ($is_utf8) { - $len = $this->utf8CharBoundary($word, $len); - } elseif (substr($word, $len - 1, 1) == '=') { - $len--; - } elseif (substr($word, $len - 2, 1) == '=') { - $len -= 2; - } - $part = substr($word, 0, $len); - $word = substr($word, $len); - $buf .= ' ' . $part; - $message .= $buf . sprintf('=%s', self::CRLF); - } else { - $message .= $buf . $soft_break; - } - $buf = ''; - } - while (strlen($word) > 0) { - if ($length <= 0) { - break; - } - $len = $length; - if ($is_utf8) { - $len = $this->utf8CharBoundary($word, $len); - } elseif (substr($word, $len - 1, 1) == '=') { - $len--; - } elseif (substr($word, $len - 2, 1) == '=') { - $len -= 2; - } - $part = substr($word, 0, $len); - $word = substr($word, $len); - - if (strlen($word) > 0) { - $message .= $part . sprintf('=%s', self::CRLF); - } else { - $buf = $part; - } - } - } else { - $buf_o = $buf; - if (!$firstword) { - $buf .= ' '; - } - $buf .= $word; - - if (strlen($buf) > $length and $buf_o != '') { - $message .= $buf_o . $soft_break; - $buf = $word; - } - } - $firstword = false; - } - $message .= $buf . self::CRLF; - } - - return $message; - } - - /** - * Find the last character boundary prior to $maxLength in a utf-8 - * quoted-printable encoded string. - * Original written by Colin Brown. - * @access public - * @param string $encodedText utf-8 QP text - * @param integer $maxLength Find the last character boundary prior to this length - * @return integer - */ - public function utf8CharBoundary($encodedText, $maxLength) - { - $foundSplitPos = false; - $lookBack = 3; - while (!$foundSplitPos) { - $lastChunk = substr($encodedText, $maxLength - $lookBack, $lookBack); - $encodedCharPos = strpos($lastChunk, '='); - if (false !== $encodedCharPos) { - // Found start of encoded character byte within $lookBack block. - // Check the encoded byte value (the 2 chars after the '=') - $hex = substr($encodedText, $maxLength - $lookBack + $encodedCharPos + 1, 2); - $dec = hexdec($hex); - if ($dec < 128) { - // Single byte character. - // If the encoded char was found at pos 0, it will fit - // otherwise reduce maxLength to start of the encoded char - if ($encodedCharPos > 0) { - $maxLength = $maxLength - ($lookBack - $encodedCharPos); - } - $foundSplitPos = true; - } elseif ($dec >= 192) { - // First byte of a multi byte character - // Reduce maxLength to split at start of character - $maxLength = $maxLength - ($lookBack - $encodedCharPos); - $foundSplitPos = true; - } elseif ($dec < 192) { - // Middle byte of a multi byte character, look further back - $lookBack += 3; - } - } else { - // No encoded character found - $foundSplitPos = true; - } - } - return $maxLength; - } - - /** - * Apply word wrapping to the message body. - * Wraps the message body to the number of chars set in the WordWrap property. - * You should only do this to plain-text bodies as wrapping HTML tags may break them. - * This is called automatically by createBody(), so you don't need to call it yourself. - * @access public - * @return void - */ - public function setWordWrap() - { - if ($this->WordWrap < 1) { - return; - } - - switch ($this->message_type) { - case 'alt': - case 'alt_inline': - case 'alt_attach': - case 'alt_inline_attach': - $this->AltBody = $this->wrapText($this->AltBody, $this->WordWrap); - break; - default: - $this->Body = $this->wrapText($this->Body, $this->WordWrap); - break; - } - } - - /** - * Assemble message headers. - * @access public - * @return string The assembled headers - */ - public function createHeader() - { - $result = ''; - - if ($this->MessageDate == '') { - $this->MessageDate = self::rfcDate(); - } - $result .= $this->headerLine('Date', $this->MessageDate); - - - // To be created automatically by mail() - if ($this->SingleTo) { - if ($this->Mailer != 'mail') { - foreach ($this->to as $toaddr) { - $this->SingleToArray[] = $this->addrFormat($toaddr); - } - } - } else { - if (count($this->to) > 0) { - if ($this->Mailer != 'mail') { - $result .= $this->addrAppend('To', $this->to); - } - } elseif (count($this->cc) == 0) { - $result .= $this->headerLine('To', 'undisclosed-recipients:;'); - } - } - - $result .= $this->addrAppend('From', array(array(trim($this->From), $this->FromName))); - - // sendmail and mail() extract Cc from the header before sending - if (count($this->cc) > 0) { - $result .= $this->addrAppend('Cc', $this->cc); - } - - // sendmail and mail() extract Bcc from the header before sending - if (( - $this->Mailer == 'sendmail' or $this->Mailer == 'qmail' or $this->Mailer == 'mail' - ) - and count($this->bcc) > 0 - ) { - $result .= $this->addrAppend('Bcc', $this->bcc); - } - - if (count($this->ReplyTo) > 0) { - $result .= $this->addrAppend('Reply-To', $this->ReplyTo); - } - - // mail() sets the subject itself - if ($this->Mailer != 'mail') { - $result .= $this->headerLine('Subject', $this->encodeHeader($this->secureHeader($this->Subject))); - } - - if ($this->MessageID != '') { - $this->lastMessageID = $this->MessageID; - } else { - $this->lastMessageID = sprintf('<%s@%s>', $this->uniqueid, $this->ServerHostname()); - } - $result .= $this->headerLine('Message-ID', $this->lastMessageID); - $result .= $this->headerLine('X-Priority', $this->Priority); - if ($this->XMailer == '') { - $result .= $this->headerLine( - 'X-Mailer', - 'PHPMailer ' . $this->Version . ' (https://github.com/PHPMailer/PHPMailer/)' - ); - } else { - $myXmailer = trim($this->XMailer); - if ($myXmailer) { - $result .= $this->headerLine('X-Mailer', $myXmailer); - } - } - - if ($this->ConfirmReadingTo != '') { - $result .= $this->headerLine('Disposition-Notification-To', '<' . trim($this->ConfirmReadingTo) . '>'); - } - - // Add custom headers - foreach ($this->CustomHeader as $header) { - $result .= $this->headerLine( - trim($header[0]), - $this->encodeHeader(trim($header[1])) - ); - } - if (!$this->sign_key_file) { - $result .= $this->headerLine('MIME-Version', '1.0'); - $result .= $this->getMailMIME(); - } - - return $result; - } - - /** - * Get the message MIME type headers. - * @access public - * @return string - */ - public function getMailMIME() - { - $result = ''; - $ismultipart = true; - switch ($this->message_type) { - case 'inline': - $result .= $this->headerLine('Content-Type', 'multipart/related;'); - $result .= $this->textLine("\tboundary=\"" . $this->boundary[1] . '"'); - break; - case 'attach': - case 'inline_attach': - case 'alt_attach': - case 'alt_inline_attach': - $result .= $this->headerLine('Content-Type', 'multipart/mixed;'); - $result .= $this->textLine("\tboundary=\"" . $this->boundary[1] . '"'); - break; - case 'alt': - case 'alt_inline': - $result .= $this->headerLine('Content-Type', 'multipart/alternative;'); - $result .= $this->textLine("\tboundary=\"" . $this->boundary[1] . '"'); - break; - default: - // Catches case 'plain': and case '': - $result .= $this->textLine('Content-Type: ' . $this->ContentType . '; charset=' . $this->CharSet); - $ismultipart = false; - break; - } - // RFC1341 part 5 says 7bit is assumed if not specified - if ($this->Encoding != '7bit') { - // RFC 2045 section 6.4 says multipart MIME parts may only use 7bit, 8bit or binary CTE - if ($ismultipart) { - if ($this->Encoding == '8bit') { - $result .= $this->headerLine('Content-Transfer-Encoding', '8bit'); - } - // The only remaining alternatives are quoted-printable and base64, which are both 7bit compatible - } else { - $result .= $this->headerLine('Content-Transfer-Encoding', $this->Encoding); - } - } - - if ($this->Mailer != 'mail') { - $result .= $this->LE; - } - - return $result; - } - - /** - * Returns the whole MIME message. - * Includes complete headers and body. - * Only valid post preSend(). - * @see PHPMailer::preSend() - * @access public - * @return string - */ - public function getSentMIMEMessage() - { - return $this->MIMEHeader . $this->mailHeader . self::CRLF . $this->MIMEBody; - } - - /** - * Assemble the message body. - * Returns an empty string on failure. - * @access public - * @throws phpmailerException - * @return string The assembled message body - */ - public function createBody() - { - $body = ''; - //Create unique IDs and preset boundaries - $this->uniqueid = md5(uniqid(time())); - $this->boundary[1] = 'b1_' . $this->uniqueid; - $this->boundary[2] = 'b2_' . $this->uniqueid; - $this->boundary[3] = 'b3_' . $this->uniqueid; - - if ($this->sign_key_file) { - $body .= $this->getMailMIME() . $this->LE; - } - - $this->setWordWrap(); - - $bodyEncoding = $this->Encoding; - $bodyCharSet = $this->CharSet; - //Can we do a 7-bit downgrade? - if ($bodyEncoding == '8bit' and !$this->has8bitChars($this->Body)) { - $bodyEncoding = '7bit'; - $bodyCharSet = 'us-ascii'; - } - //If lines are too long, and we're not already using an encoding that will shorten them, - //change to quoted-printable transfer encoding - if ('base64' != $this->Encoding and self::hasLineLongerThanMax($this->Body)) { - $this->Encoding = 'quoted-printable'; - $bodyEncoding = 'quoted-printable'; - } - - $altBodyEncoding = $this->Encoding; - $altBodyCharSet = $this->CharSet; - //Can we do a 7-bit downgrade? - if ($altBodyEncoding == '8bit' and !$this->has8bitChars($this->AltBody)) { - $altBodyEncoding = '7bit'; - $altBodyCharSet = 'us-ascii'; - } - //If lines are too long, change to quoted-printable transfer encoding - if (self::hasLineLongerThanMax($this->AltBody)) { - $altBodyEncoding = 'quoted-printable'; - } - //Use this as a preamble in all multipart message types - $mimepre = "This is a multi-part message in MIME format." . $this->LE . $this->LE; - switch ($this->message_type) { - case 'inline': - $body .= $mimepre; - $body .= $this->getBoundary($this->boundary[1], $bodyCharSet, '', $bodyEncoding); - $body .= $this->encodeString($this->Body, $bodyEncoding); - $body .= $this->LE . $this->LE; - $body .= $this->attachAll('inline', $this->boundary[1]); - break; - case 'attach': - $body .= $mimepre; - $body .= $this->getBoundary($this->boundary[1], $bodyCharSet, '', $bodyEncoding); - $body .= $this->encodeString($this->Body, $bodyEncoding); - $body .= $this->LE . $this->LE; - $body .= $this->attachAll('attachment', $this->boundary[1]); - break; - case 'inline_attach': - $body .= $mimepre; - $body .= $this->textLine('--' . $this->boundary[1]); - $body .= $this->headerLine('Content-Type', 'multipart/related;'); - $body .= $this->textLine("\tboundary=\"" . $this->boundary[2] . '"'); - $body .= $this->LE; - $body .= $this->getBoundary($this->boundary[2], $bodyCharSet, '', $bodyEncoding); - $body .= $this->encodeString($this->Body, $bodyEncoding); - $body .= $this->LE . $this->LE; - $body .= $this->attachAll('inline', $this->boundary[2]); - $body .= $this->LE; - $body .= $this->attachAll('attachment', $this->boundary[1]); - break; - case 'alt': - $body .= $mimepre; - $body .= $this->getBoundary($this->boundary[1], $altBodyCharSet, 'text/plain', $altBodyEncoding); - $body .= $this->encodeString($this->AltBody, $altBodyEncoding); - $body .= $this->LE . $this->LE; - $body .= $this->getBoundary($this->boundary[1], $bodyCharSet, 'text/html', $bodyEncoding); - $body .= $this->encodeString($this->Body, $bodyEncoding); - $body .= $this->LE . $this->LE; - if (!empty($this->Ical)) { - $body .= $this->getBoundary($this->boundary[1], '', 'text/calendar; method=REQUEST', ''); - $body .= $this->encodeString($this->Ical, $this->Encoding); - $body .= $this->LE . $this->LE; - } - $body .= $this->endBoundary($this->boundary[1]); - break; - case 'alt_inline': - $body .= $mimepre; - $body .= $this->getBoundary($this->boundary[1], $altBodyCharSet, 'text/plain', $altBodyEncoding); - $body .= $this->encodeString($this->AltBody, $altBodyEncoding); - $body .= $this->LE . $this->LE; - $body .= $this->textLine('--' . $this->boundary[1]); - $body .= $this->headerLine('Content-Type', 'multipart/related;'); - $body .= $this->textLine("\tboundary=\"" . $this->boundary[2] . '"'); - $body .= $this->LE; - $body .= $this->getBoundary($this->boundary[2], $bodyCharSet, 'text/html', $bodyEncoding); - $body .= $this->encodeString($this->Body, $bodyEncoding); - $body .= $this->LE . $this->LE; - $body .= $this->attachAll('inline', $this->boundary[2]); - $body .= $this->LE; - $body .= $this->endBoundary($this->boundary[1]); - break; - case 'alt_attach': - $body .= $mimepre; - $body .= $this->textLine('--' . $this->boundary[1]); - $body .= $this->headerLine('Content-Type', 'multipart/alternative;'); - $body .= $this->textLine("\tboundary=\"" . $this->boundary[2] . '"'); - $body .= $this->LE; - $body .= $this->getBoundary($this->boundary[2], $altBodyCharSet, 'text/plain', $altBodyEncoding); - $body .= $this->encodeString($this->AltBody, $altBodyEncoding); - $body .= $this->LE . $this->LE; - $body .= $this->getBoundary($this->boundary[2], $bodyCharSet, 'text/html', $bodyEncoding); - $body .= $this->encodeString($this->Body, $bodyEncoding); - $body .= $this->LE . $this->LE; - $body .= $this->endBoundary($this->boundary[2]); - $body .= $this->LE; - $body .= $this->attachAll('attachment', $this->boundary[1]); - break; - case 'alt_inline_attach': - $body .= $mimepre; - $body .= $this->textLine('--' . $this->boundary[1]); - $body .= $this->headerLine('Content-Type', 'multipart/alternative;'); - $body .= $this->textLine("\tboundary=\"" . $this->boundary[2] . '"'); - $body .= $this->LE; - $body .= $this->getBoundary($this->boundary[2], $altBodyCharSet, 'text/plain', $altBodyEncoding); - $body .= $this->encodeString($this->AltBody, $altBodyEncoding); - $body .= $this->LE . $this->LE; - $body .= $this->textLine('--' . $this->boundary[2]); - $body .= $this->headerLine('Content-Type', 'multipart/related;'); - $body .= $this->textLine("\tboundary=\"" . $this->boundary[3] . '"'); - $body .= $this->LE; - $body .= $this->getBoundary($this->boundary[3], $bodyCharSet, 'text/html', $bodyEncoding); - $body .= $this->encodeString($this->Body, $bodyEncoding); - $body .= $this->LE . $this->LE; - $body .= $this->attachAll('inline', $this->boundary[3]); - $body .= $this->LE; - $body .= $this->endBoundary($this->boundary[2]); - $body .= $this->LE; - $body .= $this->attachAll('attachment', $this->boundary[1]); - break; - default: - // catch case 'plain' and case '' - $body .= $this->encodeString($this->Body, $bodyEncoding); - break; - } - - if ($this->isError()) { - $body = ''; - } elseif ($this->sign_key_file) { - try { - if (!defined('PKCS7_TEXT')) { - throw new phpmailerException($this->lang('extension_missing') . 'openssl'); - } - // @TODO would be nice to use php://temp streams here, but need to wrap for PHP < 5.1 - $file = tempnam(sys_get_temp_dir(), 'mail'); - if (false === file_put_contents($file, $body)) { - throw new phpmailerException($this->lang('signing') . ' Could not write temp file'); - } - $signed = tempnam(sys_get_temp_dir(), 'signed'); - //Workaround for PHP bug https://bugs.php.net/bug.php?id=69197 - if (empty($this->sign_extracerts_file)) { - $sign = @openssl_pkcs7_sign( - $file, - $signed, - 'file://' . realpath($this->sign_cert_file), - array('file://' . realpath($this->sign_key_file), $this->sign_key_pass), - null - ); - } else { - $sign = @openssl_pkcs7_sign( - $file, - $signed, - 'file://' . realpath($this->sign_cert_file), - array('file://' . realpath($this->sign_key_file), $this->sign_key_pass), - null, - PKCS7_DETACHED, - $this->sign_extracerts_file - ); - } - if ($sign) { - @unlink($file); - $body = file_get_contents($signed); - @unlink($signed); - //The message returned by openssl contains both headers and body, so need to split them up - $parts = explode("\n\n", $body, 2); - $this->MIMEHeader .= $parts[0] . $this->LE . $this->LE; - $body = $parts[1]; - } else { - @unlink($file); - @unlink($signed); - throw new phpmailerException($this->lang('signing') . openssl_error_string()); - } - } catch (phpmailerException $exc) { - $body = ''; - if ($this->exceptions) { - throw $exc; - } - } - } - return $body; - } - - /** - * Return the start of a message boundary. - * @access protected - * @param string $boundary - * @param string $charSet - * @param string $contentType - * @param string $encoding - * @return string - */ - protected function getBoundary($boundary, $charSet, $contentType, $encoding) - { - $result = ''; - if ($charSet == '') { - $charSet = $this->CharSet; - } - if ($contentType == '') { - $contentType = $this->ContentType; - } - if ($encoding == '') { - $encoding = $this->Encoding; - } - $result .= $this->textLine('--' . $boundary); - $result .= sprintf('Content-Type: %s; charset=%s', $contentType, $charSet); - $result .= $this->LE; - // RFC1341 part 5 says 7bit is assumed if not specified - if ($encoding != '7bit') { - $result .= $this->headerLine('Content-Transfer-Encoding', $encoding); - } - $result .= $this->LE; - - return $result; - } - - /** - * Return the end of a message boundary. - * @access protected - * @param string $boundary - * @return string - */ - protected function endBoundary($boundary) - { - return $this->LE . '--' . $boundary . '--' . $this->LE; - } - - /** - * Set the message type. - * PHPMailer only supports some preset message types, - * not arbitrary MIME structures. - * @access protected - * @return void - */ - protected function setMessageType() - { - $type = array(); - if ($this->alternativeExists()) { - $type[] = 'alt'; - } - if ($this->inlineImageExists()) { - $type[] = 'inline'; - } - if ($this->attachmentExists()) { - $type[] = 'attach'; - } - $this->message_type = implode('_', $type); - if ($this->message_type == '') { - $this->message_type = 'plain'; - } - } - - /** - * Format a header line. - * @access public - * @param string $name - * @param string $value - * @return string - */ - public function headerLine($name, $value) - { - return $name . ': ' . $value . $this->LE; - } - - /** - * Return a formatted mail line. - * @access public - * @param string $value - * @return string - */ - public function textLine($value) - { - return $value . $this->LE; - } - - /** - * Add an attachment from a path on the filesystem. - * Returns false if the file could not be found or read. - * @param string $path Path to the attachment. - * @param string $name Overrides the attachment name. - * @param string $encoding File encoding (see $Encoding). - * @param string $type File extension (MIME) type. - * @param string $disposition Disposition to use - * @throws phpmailerException - * @return boolean - */ - public function addAttachment($path, $name = '', $encoding = 'base64', $type = '', $disposition = 'attachment') - { - try { - if (!@is_file($path)) { - throw new phpmailerException($this->lang('file_access') . $path, self::STOP_CONTINUE); - } - - // If a MIME type is not specified, try to work it out from the file name - if ($type == '') { - $type = self::filenameToType($path); - } - - $filename = basename($path); - if ($name == '') { - $name = $filename; - } - - $this->attachment[] = array( - 0 => $path, - 1 => $filename, - 2 => $name, - 3 => $encoding, - 4 => $type, - 5 => false, // isStringAttachment - 6 => $disposition, - 7 => 0 - ); - - } catch (phpmailerException $exc) { - $this->setError($exc->getMessage()); - $this->edebug($exc->getMessage()); - if ($this->exceptions) { - throw $exc; - } - return false; - } - return true; - } - - /** - * Return the array of attachments. - * @return array - */ - public function getAttachments() - { - return $this->attachment; - } - - /** - * Attach all file, string, and binary attachments to the message. - * Returns an empty string on failure. - * @access protected - * @param string $disposition_type - * @param string $boundary - * @return string - */ - protected function attachAll($disposition_type, $boundary) - { - // Return text of body - $mime = array(); - $cidUniq = array(); - $incl = array(); - - // Add all attachments - foreach ($this->attachment as $attachment) { - // Check if it is a valid disposition_filter - if ($attachment[6] == $disposition_type) { - // Check for string attachment - $string = ''; - $path = ''; - $bString = $attachment[5]; - if ($bString) { - $string = $attachment[0]; - } else { - $path = $attachment[0]; - } - - $inclhash = md5(serialize($attachment)); - if (in_array($inclhash, $incl)) { - continue; - } - $incl[] = $inclhash; - $name = $attachment[2]; - $encoding = $attachment[3]; - $type = $attachment[4]; - $disposition = $attachment[6]; - $cid = $attachment[7]; - if ($disposition == 'inline' && isset($cidUniq[$cid])) { - continue; - } - $cidUniq[$cid] = true; - - $mime[] = sprintf('--%s%s', $boundary, $this->LE); - $mime[] = sprintf( - 'Content-Type: %s; name="%s"%s', - $type, - $this->encodeHeader($this->secureHeader($name)), - $this->LE - ); - // RFC1341 part 5 says 7bit is assumed if not specified - if ($encoding != '7bit') { - $mime[] = sprintf('Content-Transfer-Encoding: %s%s', $encoding, $this->LE); - } - - if ($disposition == 'inline') { - $mime[] = sprintf('Content-ID: <%s>%s', $cid, $this->LE); - } - - // If a filename contains any of these chars, it should be quoted, - // but not otherwise: RFC2183 & RFC2045 5.1 - // Fixes a warning in IETF's msglint MIME checker - // Allow for bypassing the Content-Disposition header totally - if (!(empty($disposition))) { - $encoded_name = $this->encodeHeader($this->secureHeader($name)); - if (preg_match('/[ \(\)<>@,;:\\"\/\[\]\?=]/', $encoded_name)) { - $mime[] = sprintf( - 'Content-Disposition: %s; filename="%s"%s', - $disposition, - $encoded_name, - $this->LE . $this->LE - ); - } else { - $mime[] = sprintf( - 'Content-Disposition: %s; filename=%s%s', - $disposition, - $encoded_name, - $this->LE . $this->LE - ); - } - } else { - $mime[] = $this->LE; - } - - // Encode as string attachment - if ($bString) { - $mime[] = $this->encodeString($string, $encoding); - if ($this->isError()) { - return ''; - } - $mime[] = $this->LE . $this->LE; - } else { - $mime[] = $this->encodeFile($path, $encoding); - if ($this->isError()) { - return ''; - } - $mime[] = $this->LE . $this->LE; - } - } - } - - $mime[] = sprintf('--%s--%s', $boundary, $this->LE); - - return implode('', $mime); - } - - /** - * Encode a file attachment in requested format. - * Returns an empty string on failure. - * @param string $path The full path to the file - * @param string $encoding The encoding to use; one of 'base64', '7bit', '8bit', 'binary', 'quoted-printable' - * @throws phpmailerException - * @see EncodeFile(encodeFile - * @access protected - * @return string - */ - protected function encodeFile($path, $encoding = 'base64') - { - try { - if (!is_readable($path)) { - throw new phpmailerException($this->lang('file_open') . $path, self::STOP_CONTINUE); - } - $magic_quotes = get_magic_quotes_runtime(); - if ($magic_quotes) { - if (version_compare(PHP_VERSION, '5.3.0', '<')) { - set_magic_quotes_runtime(false); - } else { - //Doesn't exist in PHP 5.4, but we don't need to check because - //get_magic_quotes_runtime always returns false in 5.4+ - //so it will never get here - ini_set('magic_quotes_runtime', false); - } - } - $file_buffer = file_get_contents($path); - $file_buffer = $this->encodeString($file_buffer, $encoding); - if ($magic_quotes) { - if (version_compare(PHP_VERSION, '5.3.0', '<')) { - set_magic_quotes_runtime($magic_quotes); - } else { - ini_set('magic_quotes_runtime', $magic_quotes); - } - } - return $file_buffer; - } catch (Exception $exc) { - $this->setError($exc->getMessage()); - return ''; - } - } - - /** - * Encode a string in requested format. - * Returns an empty string on failure. - * @param string $str The text to encode - * @param string $encoding The encoding to use; one of 'base64', '7bit', '8bit', 'binary', 'quoted-printable' - * @access public - * @return string - */ - public function encodeString($str, $encoding = 'base64') - { - $encoded = ''; - switch (strtolower($encoding)) { - case 'base64': - $encoded = chunk_split(base64_encode($str), 76, $this->LE); - break; - case '7bit': - case '8bit': - $encoded = $this->fixEOL($str); - // Make sure it ends with a line break - if (substr($encoded, -(strlen($this->LE))) != $this->LE) { - $encoded .= $this->LE; - } - break; - case 'binary': - $encoded = $str; - break; - case 'quoted-printable': - $encoded = $this->encodeQP($str); - break; - default: - $this->setError($this->lang('encoding') . $encoding); - break; - } - return $encoded; - } - - /** - * Encode a header string optimally. - * Picks shortest of Q, B, quoted-printable or none. - * @access public - * @param string $str - * @param string $position - * @return string - */ - public function encodeHeader($str, $position = 'text') - { - $matchcount = 0; - switch (strtolower($position)) { - case 'phrase': - if (!preg_match('/[\200-\377]/', $str)) { - // Can't use addslashes as we don't know the value of magic_quotes_sybase - $encoded = addcslashes($str, "\0..\37\177\\\""); - if (($str == $encoded) && !preg_match('/[^A-Za-z0-9!#$%&\'*+\/=?^_`{|}~ -]/', $str)) { - return ($encoded); - } else { - return ("\"$encoded\""); - } - } - $matchcount = preg_match_all('/[^\040\041\043-\133\135-\176]/', $str, $matches); - break; - /** @noinspection PhpMissingBreakStatementInspection */ - case 'comment': - $matchcount = preg_match_all('/[()"]/', $str, $matches); - // Intentional fall-through - case 'text': - default: - $matchcount += preg_match_all('/[\000-\010\013\014\016-\037\177-\377]/', $str, $matches); - break; - } - - //There are no chars that need encoding - if ($matchcount == 0) { - return ($str); - } - - $maxlen = 75 - 7 - strlen($this->CharSet); - // Try to select the encoding which should produce the shortest output - if ($matchcount > strlen($str) / 3) { - // More than a third of the content will need encoding, so B encoding will be most efficient - $encoding = 'B'; - if (function_exists('mb_strlen') && $this->hasMultiBytes($str)) { - // Use a custom function which correctly encodes and wraps long - // multibyte strings without breaking lines within a character - $encoded = $this->base64EncodeWrapMB($str, "\n"); - } else { - $encoded = base64_encode($str); - $maxlen -= $maxlen % 4; - $encoded = trim(chunk_split($encoded, $maxlen, "\n")); - } - } else { - $encoding = 'Q'; - $encoded = $this->encodeQ($str, $position); - $encoded = $this->wrapText($encoded, $maxlen, true); - $encoded = str_replace('=' . self::CRLF, "\n", trim($encoded)); - } - - $encoded = preg_replace('/^(.*)$/m', ' =?' . $this->CharSet . "?$encoding?\\1?=", $encoded); - $encoded = trim(str_replace("\n", $this->LE, $encoded)); - - return $encoded; - } - - /** - * Check if a string contains multi-byte characters. - * @access public - * @param string $str multi-byte text to wrap encode - * @return boolean - */ - public function hasMultiBytes($str) - { - if (function_exists('mb_strlen')) { - return (strlen($str) > mb_strlen($str, $this->CharSet)); - } else { // Assume no multibytes (we can't handle without mbstring functions anyway) - return false; - } - } - - /** - * Does a string contain any 8-bit chars (in any charset)? - * @param string $text - * @return boolean - */ - public function has8bitChars($text) - { - return (boolean)preg_match('/[\x80-\xFF]/', $text); - } - - /** - * Encode and wrap long multibyte strings for mail headers - * without breaking lines within a character. - * Adapted from a function by paravoid - * @link http://www.php.net/manual/en/function.mb-encode-mimeheader.php#60283 - * @access public - * @param string $str multi-byte text to wrap encode - * @param string $linebreak string to use as linefeed/end-of-line - * @return string - */ - public function base64EncodeWrapMB($str, $linebreak = null) - { - $start = '=?' . $this->CharSet . '?B?'; - $end = '?='; - $encoded = ''; - if ($linebreak === null) { - $linebreak = $this->LE; - } - - $mb_length = mb_strlen($str, $this->CharSet); - // Each line must have length <= 75, including $start and $end - $length = 75 - strlen($start) - strlen($end); - // Average multi-byte ratio - $ratio = $mb_length / strlen($str); - // Base64 has a 4:3 ratio - $avgLength = floor($length * $ratio * .75); - - for ($i = 0; $i < $mb_length; $i += $offset) { - $lookBack = 0; - do { - $offset = $avgLength - $lookBack; - $chunk = mb_substr($str, $i, $offset, $this->CharSet); - $chunk = base64_encode($chunk); - $lookBack++; - } while (strlen($chunk) > $length); - $encoded .= $chunk . $linebreak; - } - - // Chomp the last linefeed - $encoded = substr($encoded, 0, -strlen($linebreak)); - return $encoded; - } - - /** - * Encode a string in quoted-printable format. - * According to RFC2045 section 6.7. - * @access public - * @param string $string The text to encode - * @param integer $line_max Number of chars allowed on a line before wrapping - * @return string - * @link http://www.php.net/manual/en/function.quoted-printable-decode.php#89417 Adapted from this comment - */ - public function encodeQP($string, $line_max = 76) - { - // Use native function if it's available (>= PHP5.3) - if (function_exists('quoted_printable_encode')) { - return $this->fixEOL(quoted_printable_encode($string)); - } - // Fall back to a pure PHP implementation - $string = str_replace( - array('%20', '%0D%0A.', '%0D%0A', '%'), - array(' ', "\r\n=2E", "\r\n", '='), - rawurlencode($string) - ); - $string = preg_replace('/[^\r\n]{' . ($line_max - 3) . '}[^=\r\n]{2}/', "$0=\r\n", $string); - return $this->fixEOL($string); - } - - /** - * Backward compatibility wrapper for an old QP encoding function that was removed. - * @see PHPMailer::encodeQP() - * @access public - * @param string $string - * @param integer $line_max - * @param boolean $space_conv - * @return string - * @deprecated Use encodeQP instead. - */ - public function encodeQPphp( - $string, - $line_max = 76, - /** @noinspection PhpUnusedParameterInspection */ $space_conv = false - ) { - return $this->encodeQP($string, $line_max); - } - - /** - * Encode a string using Q encoding. - * @link http://tools.ietf.org/html/rfc2047 - * @param string $str the text to encode - * @param string $position Where the text is going to be used, see the RFC for what that means - * @access public - * @return string - */ - public function encodeQ($str, $position = 'text') - { - // There should not be any EOL in the string - $pattern = ''; - $encoded = str_replace(array("\r", "\n"), '', $str); - switch (strtolower($position)) { - case 'phrase': - // RFC 2047 section 5.3 - $pattern = '^A-Za-z0-9!*+\/ -'; - break; - /** @noinspection PhpMissingBreakStatementInspection */ - case 'comment': - // RFC 2047 section 5.2 - $pattern = '\(\)"'; - // intentional fall-through - // for this reason we build the $pattern without including delimiters and [] - case 'text': - default: - // RFC 2047 section 5.1 - // Replace every high ascii, control, =, ? and _ characters - $pattern = '\000-\011\013\014\016-\037\075\077\137\177-\377' . $pattern; - break; - } - $matches = array(); - if (preg_match_all("/[{$pattern}]/", $encoded, $matches)) { - // If the string contains an '=', make sure it's the first thing we replace - // so as to avoid double-encoding - $eqkey = array_search('=', $matches[0]); - if (false !== $eqkey) { - unset($matches[0][$eqkey]); - array_unshift($matches[0], '='); - } - foreach (array_unique($matches[0]) as $char) { - $encoded = str_replace($char, '=' . sprintf('%02X', ord($char)), $encoded); - } - } - // Replace every spaces to _ (more readable than =20) - return str_replace(' ', '_', $encoded); - } - - - /** - * Add a string or binary attachment (non-filesystem). - * This method can be used to attach ascii or binary data, - * such as a BLOB record from a database. - * @param string $string String attachment data. - * @param string $filename Name of the attachment. - * @param string $encoding File encoding (see $Encoding). - * @param string $type File extension (MIME) type. - * @param string $disposition Disposition to use - * @return void - */ - public function addStringAttachment( - $string, - $filename, - $encoding = 'base64', - $type = '', - $disposition = 'attachment' - ) { - // If a MIME type is not specified, try to work it out from the file name - if ($type == '') { - $type = self::filenameToType($filename); - } - // Append to $attachment array - $this->attachment[] = array( - 0 => $string, - 1 => $filename, - 2 => basename($filename), - 3 => $encoding, - 4 => $type, - 5 => true, // isStringAttachment - 6 => $disposition, - 7 => 0 - ); - } - - /** - * Add an embedded (inline) attachment from a file. - * This can include images, sounds, and just about any other document type. - * These differ from 'regular' attachments in that they are intended to be - * displayed inline with the message, not just attached for download. - * This is used in HTML messages that embed the images - * the HTML refers to using the $cid value. - * @param string $path Path to the attachment. - * @param string $cid Content ID of the attachment; Use this to reference - * the content when using an embedded image in HTML. - * @param string $name Overrides the attachment name. - * @param string $encoding File encoding (see $Encoding). - * @param string $type File MIME type. - * @param string $disposition Disposition to use - * @return boolean True on successfully adding an attachment - */ - public function addEmbeddedImage($path, $cid, $name = '', $encoding = 'base64', $type = '', $disposition = 'inline') - { - if (!@is_file($path)) { - $this->setError($this->lang('file_access') . $path); - return false; - } - - // If a MIME type is not specified, try to work it out from the file name - if ($type == '') { - $type = self::filenameToType($path); - } - - $filename = basename($path); - if ($name == '') { - $name = $filename; - } - - // Append to $attachment array - $this->attachment[] = array( - 0 => $path, - 1 => $filename, - 2 => $name, - 3 => $encoding, - 4 => $type, - 5 => false, // isStringAttachment - 6 => $disposition, - 7 => $cid - ); - return true; - } - - /** - * Add an embedded stringified attachment. - * This can include images, sounds, and just about any other document type. - * Be sure to set the $type to an image type for images: - * JPEG images use 'image/jpeg', GIF uses 'image/gif', PNG uses 'image/png'. - * @param string $string The attachment binary data. - * @param string $cid Content ID of the attachment; Use this to reference - * the content when using an embedded image in HTML. - * @param string $name - * @param string $encoding File encoding (see $Encoding). - * @param string $type MIME type. - * @param string $disposition Disposition to use - * @return boolean True on successfully adding an attachment - */ - public function addStringEmbeddedImage( - $string, - $cid, - $name = '', - $encoding = 'base64', - $type = '', - $disposition = 'inline' - ) { - // If a MIME type is not specified, try to work it out from the name - if ($type == '') { - $type = self::filenameToType($name); - } - - // Append to $attachment array - $this->attachment[] = array( - 0 => $string, - 1 => $name, - 2 => $name, - 3 => $encoding, - 4 => $type, - 5 => true, // isStringAttachment - 6 => $disposition, - 7 => $cid - ); - return true; - } - - /** - * Check if an inline attachment is present. - * @access public - * @return boolean - */ - public function inlineImageExists() - { - foreach ($this->attachment as $attachment) { - if ($attachment[6] == 'inline') { - return true; - } - } - return false; - } - - /** - * Check if an attachment (non-inline) is present. - * @return boolean - */ - public function attachmentExists() - { - foreach ($this->attachment as $attachment) { - if ($attachment[6] == 'attachment') { - return true; - } - } - return false; - } - - /** - * Check if this message has an alternative body set. - * @return boolean - */ - public function alternativeExists() - { - return !empty($this->AltBody); - } - - /** - * Clear all To recipients. - * @return void - */ - public function clearAddresses() - { - foreach ($this->to as $to) { - unset($this->all_recipients[strtolower($to[0])]); - } - $this->to = array(); - } - - /** - * Clear all CC recipients. - * @return void - */ - public function clearCCs() - { - foreach ($this->cc as $cc) { - unset($this->all_recipients[strtolower($cc[0])]); - } - $this->cc = array(); - } - - /** - * Clear all BCC recipients. - * @return void - */ - public function clearBCCs() - { - foreach ($this->bcc as $bcc) { - unset($this->all_recipients[strtolower($bcc[0])]); - } - $this->bcc = array(); - } - - /** - * Clear all ReplyTo recipients. - * @return void - */ - public function clearReplyTos() - { - $this->ReplyTo = array(); - } - - /** - * Clear all recipient types. - * @return void - */ - public function clearAllRecipients() - { - $this->to = array(); - $this->cc = array(); - $this->bcc = array(); - $this->all_recipients = array(); - } - - /** - * Clear all filesystem, string, and binary attachments. - * @return void - */ - public function clearAttachments() - { - $this->attachment = array(); - } - - /** - * Clear all custom headers. - * @return void - */ - public function clearCustomHeaders() - { - $this->CustomHeader = array(); - } - - /** - * Add an error message to the error container. - * @access protected - * @param string $msg - * @return void - */ - protected function setError($msg) - { - $this->error_count++; - if ($this->Mailer == 'smtp' and !is_null($this->smtp)) { - $lasterror = $this->smtp->getError(); - if (!empty($lasterror['error'])) { - $msg .= $this->lang('smtp_error') . $lasterror['error']; - if (!empty($lasterror['detail'])) { - $msg .= ' Detail: '. $lasterror['detail']; - } - if (!empty($lasterror['smtp_code'])) { - $msg .= ' SMTP code: ' . $lasterror['smtp_code']; - } - if (!empty($lasterror['smtp_code_ex'])) { - $msg .= ' Additional SMTP info: ' . $lasterror['smtp_code_ex']; - } - } - } - $this->ErrorInfo = $msg; - } - - /** - * Return an RFC 822 formatted date. - * @access public - * @return string - * @static - */ - public static function rfcDate() - { - // Set the time zone to whatever the default is to avoid 500 errors - // Will default to UTC if it's not set properly in php.ini - date_default_timezone_set(@date_default_timezone_get()); - return date('D, j M Y H:i:s O'); - } - - /** - * Get the server hostname. - * Returns 'localhost.localdomain' if unknown. - * @access protected - * @return string - */ - protected function serverHostname() - { - $result = 'localhost.localdomain'; - if (!empty($this->Hostname)) { - $result = $this->Hostname; - } elseif (isset($_SERVER) and array_key_exists('SERVER_NAME', $_SERVER) and !empty($_SERVER['SERVER_NAME'])) { - $result = $_SERVER['SERVER_NAME']; - } elseif (function_exists('gethostname') && gethostname() !== false) { - $result = gethostname(); - } elseif (php_uname('n') !== false) { - $result = php_uname('n'); - } - return $result; - } - - /** - * Get an error message in the current language. - * @access protected - * @param string $key - * @return string - */ - protected function lang($key) - { - if (count($this->language) < 1) { - $this->setLanguage('en'); // set the default language - } - - if (array_key_exists($key, $this->language)) { - if ($key == 'smtp_connect_failed') { - //Include a link to troubleshooting docs on SMTP connection failure - //this is by far the biggest cause of support questions - //but it's usually not PHPMailer's fault. - return $this->language[$key] . ' https://github.com/PHPMailer/PHPMailer/wiki/Troubleshooting'; - } - return $this->language[$key]; - } else { - //Return the key as a fallback - return $key; - } - } - - /** - * Check if an error occurred. - * @access public - * @return boolean True if an error did occur. - */ - public function isError() - { - return ($this->error_count > 0); - } - - /** - * Ensure consistent line endings in a string. - * Changes every end of line from CRLF, CR or LF to $this->LE. - * @access public - * @param string $str String to fixEOL - * @return string - */ - public function fixEOL($str) - { - // Normalise to \n - $nstr = str_replace(array("\r\n", "\r"), "\n", $str); - // Now convert LE as needed - if ($this->LE !== "\n") { - $nstr = str_replace("\n", $this->LE, $nstr); - } - return $nstr; - } - - /** - * Add a custom header. - * $name value can be overloaded to contain - * both header name and value (name:value) - * @access public - * @param string $name Custom header name - * @param string $value Header value - * @return void - */ - public function addCustomHeader($name, $value = null) - { - if ($value === null) { - // Value passed in as name:value - $this->CustomHeader[] = explode(':', $name, 2); - } else { - $this->CustomHeader[] = array($name, $value); - } - } - - /** - * Returns all custom headers - * - * @return array - */ - public function getCustomHeaders() - { - return $this->CustomHeader; - } - - /** - * Create a message from an HTML string. - * Automatically makes modifications for inline images and backgrounds - * and creates a plain-text version by converting the HTML. - * Overwrites any existing values in $this->Body and $this->AltBody - * @access public - * @param string $message HTML message string - * @param string $basedir baseline directory for path - * @param boolean|callable $advanced Whether to use the internal HTML to text converter - * or your own custom converter @see html2text() - * @return string $message - */ - public function msgHTML($message, $basedir = '', $advanced = false) - { - preg_match_all('/(src|background)=["\'](.*)["\']/Ui', $message, $images); - if (isset($images[2])) { - foreach ($images[2] as $imgindex => $url) { - // Convert data URIs into embedded images - if (preg_match('#^data:(image[^;,]*)(;base64)?,#', $url, $match)) { - $data = substr($url, strpos($url, ',')); - if ($match[2]) { - $data = base64_decode($data); - } else { - $data = rawurldecode($data); - } - $cid = md5($url) . '@phpmailer.0'; // RFC2392 S 2 - if ($this->addStringEmbeddedImage($data, $cid, '', 'base64', $match[1])) { - $message = str_replace( - $images[0][$imgindex], - $images[1][$imgindex] . '="cid:' . $cid . '"', - $message - ); - } - } elseif (!preg_match('#^[A-z]+://#', $url)) { - // Do not change urls for absolute images (thanks to corvuscorax) - $filename = basename($url); - $directory = dirname($url); - if ($directory == '.') { - $directory = ''; - } - $cid = md5($url) . '@phpmailer.0'; // RFC2392 S 2 - if (strlen($basedir) > 1 && substr($basedir, -1) != '/') { - $basedir .= '/'; - } - if (strlen($directory) > 1 && substr($directory, -1) != '/') { - $directory .= '/'; - } - if ($this->addEmbeddedImage( - $basedir . $directory . $filename, - $cid, - $filename, - 'base64', - self::_mime_types((string)self::mb_pathinfo($filename, PATHINFO_EXTENSION)) - ) - ) { - $message = preg_replace( - '/' . $images[1][$imgindex] . '=["\']' . preg_quote($url, '/') . '["\']/Ui', - $images[1][$imgindex] . '="cid:' . $cid . '"', - $message - ); - } - } - } - } - $this->isHTML(true); - // Convert all message body line breaks to CRLF, makes quoted-printable encoding work much better - $this->Body = $this->normalizeBreaks($message); - $this->AltBody = $this->normalizeBreaks($this->html2text($message, $advanced)); - if (empty($this->AltBody)) { - $this->AltBody = 'To view this email message, open it in a program that understands HTML!' . - self::CRLF . self::CRLF; - } - return $this->Body; - } - - /** - * Convert an HTML string into plain text. - * This is used by msgHTML(). - * Note - older versions of this function used a bundled advanced converter - * which was been removed for license reasons in #232 - * Example usage: - * - * // Use default conversion - * $plain = $mail->html2text($html); - * // Use your own custom converter - * $plain = $mail->html2text($html, function($html) { - * $converter = new MyHtml2text($html); - * return $converter->get_text(); - * }); - * - * @param string $html The HTML text to convert - * @param boolean|callable $advanced Any boolean value to use the internal converter, - * or provide your own callable for custom conversion. - * @return string - */ - public function html2text($html, $advanced = false) - { - if (is_callable($advanced)) { - return call_user_func($advanced, $html); - } - return html_entity_decode( - trim(strip_tags(preg_replace('/<(head|title|style|script)[^>]*>.*?<\/\\1>/si', '', $html))), - ENT_QUOTES, - $this->CharSet - ); - } - - /** - * Get the MIME type for a file extension. - * @param string $ext File extension - * @access public - * @return string MIME type of file. - * @static - */ - public static function _mime_types($ext = '') - { - $mimes = array( - 'xl' => 'application/excel', - 'js' => 'application/javascript', - 'hqx' => 'application/mac-binhex40', - 'cpt' => 'application/mac-compactpro', - 'bin' => 'application/macbinary', - 'doc' => 'application/msword', - 'word' => 'application/msword', - 'class' => 'application/octet-stream', - 'dll' => 'application/octet-stream', - 'dms' => 'application/octet-stream', - 'exe' => 'application/octet-stream', - 'lha' => 'application/octet-stream', - 'lzh' => 'application/octet-stream', - 'psd' => 'application/octet-stream', - 'sea' => 'application/octet-stream', - 'so' => 'application/octet-stream', - 'oda' => 'application/oda', - 'pdf' => 'application/pdf', - 'ai' => 'application/postscript', - 'eps' => 'application/postscript', - 'ps' => 'application/postscript', - 'smi' => 'application/smil', - 'smil' => 'application/smil', - 'mif' => 'application/vnd.mif', - 'xls' => 'application/vnd.ms-excel', - 'ppt' => 'application/vnd.ms-powerpoint', - 'wbxml' => 'application/vnd.wap.wbxml', - 'wmlc' => 'application/vnd.wap.wmlc', - 'dcr' => 'application/x-director', - 'dir' => 'application/x-director', - 'dxr' => 'application/x-director', - 'dvi' => 'application/x-dvi', - 'gtar' => 'application/x-gtar', - 'php3' => 'application/x-httpd-php', - 'php4' => 'application/x-httpd-php', - 'php' => 'application/x-httpd-php', - 'phtml' => 'application/x-httpd-php', - 'phps' => 'application/x-httpd-php-source', - 'swf' => 'application/x-shockwave-flash', - 'sit' => 'application/x-stuffit', - 'tar' => 'application/x-tar', - 'tgz' => 'application/x-tar', - 'xht' => 'application/xhtml+xml', - 'xhtml' => 'application/xhtml+xml', - 'zip' => 'application/zip', - 'mid' => 'audio/midi', - 'midi' => 'audio/midi', - 'mp2' => 'audio/mpeg', - 'mp3' => 'audio/mpeg', - 'mpga' => 'audio/mpeg', - 'aif' => 'audio/x-aiff', - 'aifc' => 'audio/x-aiff', - 'aiff' => 'audio/x-aiff', - 'ram' => 'audio/x-pn-realaudio', - 'rm' => 'audio/x-pn-realaudio', - 'rpm' => 'audio/x-pn-realaudio-plugin', - 'ra' => 'audio/x-realaudio', - 'wav' => 'audio/x-wav', - 'bmp' => 'image/bmp', - 'gif' => 'image/gif', - 'jpeg' => 'image/jpeg', - 'jpe' => 'image/jpeg', - 'jpg' => 'image/jpeg', - 'png' => 'image/png', - 'tiff' => 'image/tiff', - 'tif' => 'image/tiff', - 'eml' => 'message/rfc822', - 'css' => 'text/css', - 'html' => 'text/html', - 'htm' => 'text/html', - 'shtml' => 'text/html', - 'log' => 'text/plain', - 'text' => 'text/plain', - 'txt' => 'text/plain', - 'rtx' => 'text/richtext', - 'rtf' => 'text/rtf', - 'vcf' => 'text/vcard', - 'vcard' => 'text/vcard', - 'xml' => 'text/xml', - 'xsl' => 'text/xml', - 'mpeg' => 'video/mpeg', - 'mpe' => 'video/mpeg', - 'mpg' => 'video/mpeg', - 'mov' => 'video/quicktime', - 'qt' => 'video/quicktime', - 'rv' => 'video/vnd.rn-realvideo', - 'avi' => 'video/x-msvideo', - 'movie' => 'video/x-sgi-movie' - ); - if (array_key_exists(strtolower($ext), $mimes)) { - return $mimes[strtolower($ext)]; - } - return 'application/octet-stream'; - } - - /** - * Map a file name to a MIME type. - * Defaults to 'application/octet-stream', i.e.. arbitrary binary data. - * @param string $filename A file name or full path, does not need to exist as a file - * @return string - * @static - */ - public static function filenameToType($filename) - { - // In case the path is a URL, strip any query string before getting extension - $qpos = strpos($filename, '?'); - if (false !== $qpos) { - $filename = substr($filename, 0, $qpos); - } - $pathinfo = self::mb_pathinfo($filename); - return self::_mime_types($pathinfo['extension']); - } - - /** - * Multi-byte-safe pathinfo replacement. - * Drop-in replacement for pathinfo(), but multibyte-safe, cross-platform-safe, old-version-safe. - * Works similarly to the one in PHP >= 5.2.0 - * @link http://www.php.net/manual/en/function.pathinfo.php#107461 - * @param string $path A filename or path, does not need to exist as a file - * @param integer|string $options Either a PATHINFO_* constant, - * or a string name to return only the specified piece, allows 'filename' to work on PHP < 5.2 - * @return string|array - * @static - */ - public static function mb_pathinfo($path, $options = null) - { - $ret = array('dirname' => '', 'basename' => '', 'extension' => '', 'filename' => ''); - $pathinfo = array(); - if (preg_match('%^(.*?)[\\\\/]*(([^/\\\\]*?)(\.([^\.\\\\/]+?)|))[\\\\/\.]*$%im', $path, $pathinfo)) { - if (array_key_exists(1, $pathinfo)) { - $ret['dirname'] = $pathinfo[1]; - } - if (array_key_exists(2, $pathinfo)) { - $ret['basename'] = $pathinfo[2]; - } - if (array_key_exists(5, $pathinfo)) { - $ret['extension'] = $pathinfo[5]; - } - if (array_key_exists(3, $pathinfo)) { - $ret['filename'] = $pathinfo[3]; - } - } - switch ($options) { - case PATHINFO_DIRNAME: - case 'dirname': - return $ret['dirname']; - case PATHINFO_BASENAME: - case 'basename': - return $ret['basename']; - case PATHINFO_EXTENSION: - case 'extension': - return $ret['extension']; - case PATHINFO_FILENAME: - case 'filename': - return $ret['filename']; - default: - return $ret; - } - } - - /** - * Set or reset instance properties. - * You should avoid this function - it's more verbose, less efficient, more error-prone and - * harder to debug than setting properties directly. - * Usage Example: - * `$mail->set('SMTPSecure', 'tls');` - * is the same as: - * `$mail->SMTPSecure = 'tls';` - * @access public - * @param string $name The property name to set - * @param mixed $value The value to set the property to - * @return boolean - * @TODO Should this not be using the __set() magic function? - */ - public function set($name, $value = '') - { - if (property_exists($this, $name)) { - $this->$name = $value; - return true; - } else { - $this->setError($this->lang('variable_set') . $name); - return false; - } - } - - /** - * Strip newlines to prevent header injection. - * @access public - * @param string $str - * @return string - */ - public function secureHeader($str) - { - return trim(str_replace(array("\r", "\n"), '', $str)); - } - - /** - * Normalize line breaks in a string. - * Converts UNIX LF, Mac CR and Windows CRLF line breaks into a single line break format. - * Defaults to CRLF (for message bodies) and preserves consecutive breaks. - * @param string $text - * @param string $breaktype What kind of line break to use, defaults to CRLF - * @return string - * @access public - * @static - */ - public static function normalizeBreaks($text, $breaktype = "\r\n") - { - return preg_replace('/(\r\n|\r|\n)/ms', $breaktype, $text); - } - - - /** - * Set the public and private key files and password for S/MIME signing. - * @access public - * @param string $cert_filename - * @param string $key_filename - * @param string $key_pass Password for private key - * @param string $extracerts_filename Optional path to chain certificate - */ - public function sign($cert_filename, $key_filename, $key_pass, $extracerts_filename = '') - { - $this->sign_cert_file = $cert_filename; - $this->sign_key_file = $key_filename; - $this->sign_key_pass = $key_pass; - $this->sign_extracerts_file = $extracerts_filename; - } - - /** - * Quoted-Printable-encode a DKIM header. - * @access public - * @param string $txt - * @return string - */ - public function DKIM_QP($txt) - { - $line = ''; - for ($i = 0; $i < strlen($txt); $i++) { - $ord = ord($txt[$i]); - if (((0x21 <= $ord) && ($ord <= 0x3A)) || $ord == 0x3C || ((0x3E <= $ord) && ($ord <= 0x7E))) { - $line .= $txt[$i]; - } else { - $line .= '=' . sprintf('%02X', $ord); - } - } - return $line; - } - - /** - * Generate a DKIM signature. - * @access public - * @param string $signHeader - * @throws phpmailerException - * @return string - */ - public function DKIM_Sign($signHeader) - { - if (!defined('PKCS7_TEXT')) { - if ($this->exceptions) { - throw new phpmailerException($this->lang('extension_missing') . 'openssl'); - } - return ''; - } - $privKeyStr = file_get_contents($this->DKIM_private); - if ($this->DKIM_passphrase != '') { - $privKey = openssl_pkey_get_private($privKeyStr, $this->DKIM_passphrase); - } else { - $privKey = $privKeyStr; - } - if (openssl_sign($signHeader, $signature, $privKey)) { - return base64_encode($signature); - } - return ''; - } - - /** - * Generate a DKIM canonicalization header. - * @access public - * @param string $signHeader Header - * @return string - */ - public function DKIM_HeaderC($signHeader) - { - $signHeader = preg_replace('/\r\n\s+/', ' ', $signHeader); - $lines = explode("\r\n", $signHeader); - foreach ($lines as $key => $line) { - list($heading, $value) = explode(':', $line, 2); - $heading = strtolower($heading); - $value = preg_replace('/\s+/', ' ', $value); // Compress useless spaces - $lines[$key] = $heading . ':' . trim($value); // Don't forget to remove WSP around the value - } - $signHeader = implode("\r\n", $lines); - return $signHeader; - } - - /** - * Generate a DKIM canonicalization body. - * @access public - * @param string $body Message Body - * @return string - */ - public function DKIM_BodyC($body) - { - if ($body == '') { - return "\r\n"; - } - // stabilize line endings - $body = str_replace("\r\n", "\n", $body); - $body = str_replace("\n", "\r\n", $body); - // END stabilize line endings - while (substr($body, strlen($body) - 4, 4) == "\r\n\r\n") { - $body = substr($body, 0, strlen($body) - 2); - } - return $body; - } - - /** - * Create the DKIM header and body in a new message header. - * @access public - * @param string $headers_line Header lines - * @param string $subject Subject - * @param string $body Body - * @return string - */ - public function DKIM_Add($headers_line, $subject, $body) - { - $DKIMsignatureType = 'rsa-sha1'; // Signature & hash algorithms - $DKIMcanonicalization = 'relaxed/simple'; // Canonicalization of header/body - $DKIMquery = 'dns/txt'; // Query method - $DKIMtime = time(); // Signature Timestamp = seconds since 00:00:00 - Jan 1, 1970 (UTC time zone) - $subject_header = "Subject: $subject"; - $headers = explode($this->LE, $headers_line); - $from_header = ''; - $to_header = ''; - $current = ''; - foreach ($headers as $header) { - if (strpos($header, 'From:') === 0) { - $from_header = $header; - $current = 'from_header'; - } elseif (strpos($header, 'To:') === 0) { - $to_header = $header; - $current = 'to_header'; - } else { - if (!empty($$current) && strpos($header, ' =?') === 0) { - $$current .= $header; - } else { - $current = ''; - } - } - } - $from = str_replace('|', '=7C', $this->DKIM_QP($from_header)); - $to = str_replace('|', '=7C', $this->DKIM_QP($to_header)); - $subject = str_replace( - '|', - '=7C', - $this->DKIM_QP($subject_header) - ); // Copied header fields (dkim-quoted-printable) - $body = $this->DKIM_BodyC($body); - $DKIMlen = strlen($body); // Length of body - $DKIMb64 = base64_encode(pack('H*', sha1($body))); // Base64 of packed binary SHA-1 hash of body - if ('' == $this->DKIM_identity) { - $ident = ''; - } else { - $ident = ' i=' . $this->DKIM_identity . ';'; - } - $dkimhdrs = 'DKIM-Signature: v=1; a=' . - $DKIMsignatureType . '; q=' . - $DKIMquery . '; l=' . - $DKIMlen . '; s=' . - $this->DKIM_selector . - ";\r\n" . - "\tt=" . $DKIMtime . '; c=' . $DKIMcanonicalization . ";\r\n" . - "\th=From:To:Subject;\r\n" . - "\td=" . $this->DKIM_domain . ';' . $ident . "\r\n" . - "\tz=$from\r\n" . - "\t|$to\r\n" . - "\t|$subject;\r\n" . - "\tbh=" . $DKIMb64 . ";\r\n" . - "\tb="; - $toSign = $this->DKIM_HeaderC( - $from_header . "\r\n" . $to_header . "\r\n" . $subject_header . "\r\n" . $dkimhdrs - ); - $signed = $this->DKIM_Sign($toSign); - return $dkimhdrs . $signed . "\r\n"; - } - - /** - * Detect if a string contains a line longer than the maximum line length allowed. - * @param string $str - * @return boolean - * @static - */ - public static function hasLineLongerThanMax($str) - { - //+2 to include CRLF line break for a 1000 total - return (boolean)preg_match('/^(.{'.(self::MAX_LINE_LENGTH + 2).',})/m', $str); - } - - /** - * Allows for public read access to 'to' property. - * @access public - * @return array - */ - public function getToAddresses() - { - return $this->to; - } - - /** - * Allows for public read access to 'cc' property. - * @access public - * @return array - */ - public function getCcAddresses() - { - return $this->cc; - } - - /** - * Allows for public read access to 'bcc' property. - * @access public - * @return array - */ - public function getBccAddresses() - { - return $this->bcc; - } - - /** - * Allows for public read access to 'ReplyTo' property. - * @access public - * @return array - */ - public function getReplyToAddresses() - { - return $this->ReplyTo; - } - - /** - * Allows for public read access to 'all_recipients' property. - * @access public - * @return array - */ - public function getAllRecipientAddresses() - { - return $this->all_recipients; - } - - /** - * Perform a callback. - * @param boolean $isSent - * @param array $to - * @param array $cc - * @param array $bcc - * @param string $subject - * @param string $body - * @param string $from - */ - protected function doCallback($isSent, $to, $cc, $bcc, $subject, $body, $from) - { - if (!empty($this->action_function) && is_callable($this->action_function)) { - $params = array($isSent, $to, $cc, $bcc, $subject, $body, $from); - call_user_func_array($this->action_function, $params); - } - } -} - -/** - * PHPMailer exception handler - * @package PHPMailer - */ -class phpmailerException extends Exception -{ - /** - * Prettify error message output - * @return string - */ - public function errorMessage() - { - $errorMsg = '' . $this->getMessage() . "
\n"; - return $errorMsg; - } -} diff --git a/PHPMailer/class.pop3.php b/PHPMailer/class.pop3.php deleted file mode 100644 index f63619c..0000000 --- a/PHPMailer/class.pop3.php +++ /dev/null @@ -1,397 +0,0 @@ - - * @author Jim Jagielski (jimjag) - * @author Andy Prevost (codeworxtech) - * @author Brent R. Matzelle (original founder) - * @copyright 2012 - 2014 Marcus Bointon - * @copyright 2010 - 2012 Jim Jagielski - * @copyright 2004 - 2009 Andy Prevost - * @license http://www.gnu.org/copyleft/lesser.html GNU Lesser General Public License - * @note This program is distributed in the hope that it will be useful - WITHOUT - * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or - * FITNESS FOR A PARTICULAR PURPOSE. - */ - -/** - * PHPMailer POP-Before-SMTP Authentication Class. - * Specifically for PHPMailer to use for RFC1939 POP-before-SMTP authentication. - * Does not support APOP. - * @package PHPMailer - * @author Richard Davey (original author) - * @author Marcus Bointon (Synchro/coolbru) - * @author Jim Jagielski (jimjag) - * @author Andy Prevost (codeworxtech) - */ -class POP3 -{ - /** - * The POP3 PHPMailer Version number. - * @type string - * @access public - */ - public $Version = '5.2.10'; - - /** - * Default POP3 port number. - * @type integer - * @access public - */ - public $POP3_PORT = 110; - - /** - * Default timeout in seconds. - * @type integer - * @access public - */ - public $POP3_TIMEOUT = 30; - - /** - * POP3 Carriage Return + Line Feed. - * @type string - * @access public - * @deprecated Use the constant instead - */ - public $CRLF = "\r\n"; - - /** - * Debug display level. - * Options: 0 = no, 1+ = yes - * @type integer - * @access public - */ - public $do_debug = 0; - - /** - * POP3 mail server hostname. - * @type string - * @access public - */ - public $host; - - /** - * POP3 port number. - * @type integer - * @access public - */ - public $port; - - /** - * POP3 Timeout Value in seconds. - * @type integer - * @access public - */ - public $tval; - - /** - * POP3 username - * @type string - * @access public - */ - public $username; - - /** - * POP3 password. - * @type string - * @access public - */ - public $password; - - /** - * Resource handle for the POP3 connection socket. - * @type resource - * @access private - */ - private $pop_conn; - - /** - * Are we connected? - * @type boolean - * @access private - */ - private $connected = false; - - /** - * Error container. - * @type array - * @access private - */ - private $errors = array(); - - /** - * Line break constant - */ - const CRLF = "\r\n"; - - /** - * Simple static wrapper for all-in-one POP before SMTP - * @param $host - * @param integer|boolean $port The port number to connect to - * @param integer|boolean $timeout The timeout value - * @param string $username - * @param string $password - * @param integer $debug_level - * @return boolean - */ - public static function popBeforeSmtp( - $host, - $port = false, - $timeout = false, - $username = '', - $password = '', - $debug_level = 0 - ) { - $pop = new POP3; - return $pop->authorise($host, $port, $timeout, $username, $password, $debug_level); - } - - /** - * Authenticate with a POP3 server. - * A connect, login, disconnect sequence - * appropriate for POP-before SMTP authorisation. - * @access public - * @param string $host The hostname to connect to - * @param integer|boolean $port The port number to connect to - * @param integer|boolean $timeout The timeout value - * @param string $username - * @param string $password - * @param integer $debug_level - * @return boolean - */ - public function authorise($host, $port = false, $timeout = false, $username = '', $password = '', $debug_level = 0) - { - $this->host = $host; - // If no port value provided, use default - if (false === $port) { - $this->port = $this->POP3_PORT; - } else { - $this->port = (integer)$port; - } - // If no timeout value provided, use default - if (false === $timeout) { - $this->tval = $this->POP3_TIMEOUT; - } else { - $this->tval = (integer)$timeout; - } - $this->do_debug = $debug_level; - $this->username = $username; - $this->password = $password; - // Reset the error log - $this->errors = array(); - // connect - $result = $this->connect($this->host, $this->port, $this->tval); - if ($result) { - $login_result = $this->login($this->username, $this->password); - if ($login_result) { - $this->disconnect(); - return true; - } - } - // We need to disconnect regardless of whether the login succeeded - $this->disconnect(); - return false; - } - - /** - * Connect to a POP3 server. - * @access public - * @param string $host - * @param integer|boolean $port - * @param integer $tval - * @return boolean - */ - public function connect($host, $port = false, $tval = 30) - { - // Are we already connected? - if ($this->connected) { - return true; - } - - //On Windows this will raise a PHP Warning error if the hostname doesn't exist. - //Rather than suppress it with @fsockopen, capture it cleanly instead - set_error_handler(array($this, 'catchWarning')); - - if (false === $port) { - $port = $this->POP3_PORT; - } - - // connect to the POP3 server - $this->pop_conn = fsockopen( - $host, // POP3 Host - $port, // Port # - $errno, // Error Number - $errstr, // Error Message - $tval - ); // Timeout (seconds) - // Restore the error handler - restore_error_handler(); - - // Did we connect? - if (false === $this->pop_conn) { - // It would appear not... - $this->setError(array( - 'error' => "Failed to connect to server $host on port $port", - 'errno' => $errno, - 'errstr' => $errstr - )); - return false; - } - - // Increase the stream time-out - stream_set_timeout($this->pop_conn, $tval, 0); - - // Get the POP3 server response - $pop3_response = $this->getResponse(); - // Check for the +OK - if ($this->checkResponse($pop3_response)) { - // The connection is established and the POP3 server is talking - $this->connected = true; - return true; - } - return false; - } - - /** - * Log in to the POP3 server. - * Does not support APOP (RFC 2828, 4949). - * @access public - * @param string $username - * @param string $password - * @return boolean - */ - public function login($username = '', $password = '') - { - if (!$this->connected) { - $this->setError('Not connected to POP3 server'); - } - if (empty($username)) { - $username = $this->username; - } - if (empty($password)) { - $password = $this->password; - } - - // Send the Username - $this->sendString("USER $username" . self::CRLF); - $pop3_response = $this->getResponse(); - if ($this->checkResponse($pop3_response)) { - // Send the Password - $this->sendString("PASS $password" . self::CRLF); - $pop3_response = $this->getResponse(); - if ($this->checkResponse($pop3_response)) { - return true; - } - } - return false; - } - - /** - * Disconnect from the POP3 server. - * @access public - */ - public function disconnect() - { - $this->sendString('QUIT'); - //The QUIT command may cause the daemon to exit, which will kill our connection - //So ignore errors here - try { - @fclose($this->pop_conn); - } catch (Exception $e) { - //Do nothing - }; - } - - /** - * Get a response from the POP3 server. - * $size is the maximum number of bytes to retrieve - * @param integer $size - * @return string - * @access private - */ - private function getResponse($size = 128) - { - $response = fgets($this->pop_conn, $size); - if ($this->do_debug >= 1) { - echo "Server -> Client: $response"; - } - return $response; - } - - /** - * Send raw data to the POP3 server. - * @param string $string - * @return integer - * @access private - */ - private function sendString($string) - { - if ($this->pop_conn) { - if ($this->do_debug >= 2) { //Show client messages when debug >= 2 - echo "Client -> Server: $string"; - } - return fwrite($this->pop_conn, $string, strlen($string)); - } - return 0; - } - - /** - * Checks the POP3 server response. - * Looks for for +OK or -ERR. - * @param string $string - * @return boolean - * @access private - */ - private function checkResponse($string) - { - if (substr($string, 0, 3) !== '+OK') { - $this->setError(array( - 'error' => "Server reported an error: $string", - 'errno' => 0, - 'errstr' => '' - )); - return false; - } else { - return true; - } - } - - /** - * Add an error to the internal error store. - * Also display debug output if it's enabled. - * @param $error - */ - private function setError($error) - { - $this->errors[] = $error; - if ($this->do_debug >= 1) { - echo '
';
-            foreach ($this->errors as $error) {
-                print_r($error);
-            }
-            echo '
'; - } - } - - /** - * POP3 connection error handler. - * @param integer $errno - * @param string $errstr - * @param string $errfile - * @param integer $errline - * @access private - */ - private function catchWarning($errno, $errstr, $errfile, $errline) - { - $this->setError(array( - 'error' => "Connecting to the POP3 server raised a PHP warning: ", - 'errno' => $errno, - 'errstr' => $errstr, - 'errfile' => $errfile, - 'errline' => $errline - )); - } -} diff --git a/PHPMailer/class.smtp.php b/PHPMailer/class.smtp.php deleted file mode 100644 index b2dfdc1..0000000 --- a/PHPMailer/class.smtp.php +++ /dev/null @@ -1,1152 +0,0 @@ - - * @author Jim Jagielski (jimjag) - * @author Andy Prevost (codeworxtech) - * @author Brent R. Matzelle (original founder) - * @copyright 2014 Marcus Bointon - * @copyright 2010 - 2012 Jim Jagielski - * @copyright 2004 - 2009 Andy Prevost - * @license http://www.gnu.org/copyleft/lesser.html GNU Lesser General Public License - * @note This program is distributed in the hope that it will be useful - WITHOUT - * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or - * FITNESS FOR A PARTICULAR PURPOSE. - */ - -/** - * PHPMailer RFC821 SMTP email transport class. - * Implements RFC 821 SMTP commands and provides some utility methods for sending mail to an SMTP server. - * @package PHPMailer - * @author Chris Ryan - * @author Marcus Bointon - */ -class SMTP -{ - /** - * The PHPMailer SMTP version number. - * @type string - */ - const VERSION = '5.2.10'; - - /** - * SMTP line break constant. - * @type string - */ - const CRLF = "\r\n"; - - /** - * The SMTP port to use if one is not specified. - * @type integer - */ - const DEFAULT_SMTP_PORT = 25; - - /** - * The maximum line length allowed by RFC 2822 section 2.1.1 - * @type integer - */ - const MAX_LINE_LENGTH = 998; - - /** - * Debug level for no output - */ - const DEBUG_OFF = 0; - - /** - * Debug level to show client -> server messages - */ - const DEBUG_CLIENT = 1; - - /** - * Debug level to show client -> server and server -> client messages - */ - const DEBUG_SERVER = 2; - - /** - * Debug level to show connection status, client -> server and server -> client messages - */ - const DEBUG_CONNECTION = 3; - - /** - * Debug level to show all messages - */ - const DEBUG_LOWLEVEL = 4; - - /** - * The PHPMailer SMTP Version number. - * @type string - * @deprecated Use the `VERSION` constant instead - * @see SMTP::VERSION - */ - public $Version = '5.2.10'; - - /** - * SMTP server port number. - * @type integer - * @deprecated This is only ever used as a default value, so use the `DEFAULT_SMTP_PORT` constant instead - * @see SMTP::DEFAULT_SMTP_PORT - */ - public $SMTP_PORT = 25; - - /** - * SMTP reply line ending. - * @type string - * @deprecated Use the `CRLF` constant instead - * @see SMTP::CRLF - */ - public $CRLF = "\r\n"; - - /** - * Debug output level. - * Options: - * * self::DEBUG_OFF (`0`) No debug output, default - * * self::DEBUG_CLIENT (`1`) Client commands - * * self::DEBUG_SERVER (`2`) Client commands and server responses - * * self::DEBUG_CONNECTION (`3`) As DEBUG_SERVER plus connection status - * * self::DEBUG_LOWLEVEL (`4`) Low-level data output, all messages - * @type integer - */ - public $do_debug = self::DEBUG_OFF; - - /** - * How to handle debug output. - * Options: - * * `echo` Output plain-text as-is, appropriate for CLI - * * `html` Output escaped, line breaks converted to `
`, appropriate for browser output - * * `error_log` Output to error log as configured in php.ini - * - * Alternatively, you can provide a callable expecting two params: a message string and the debug level: - * - * $smtp->Debugoutput = function($str, $level) {echo "debug level $level; message: $str";}; - * - * @type string|callable - */ - public $Debugoutput = 'echo'; - - /** - * Whether to use VERP. - * @link http://en.wikipedia.org/wiki/Variable_envelope_return_path - * @link http://www.postfix.org/VERP_README.html Info on VERP - * @type boolean - */ - public $do_verp = false; - - /** - * The timeout value for connection, in seconds. - * Default of 5 minutes (300sec) is from RFC2821 section 4.5.3.2 - * This needs to be quite high to function correctly with hosts using greetdelay as an anti-spam measure. - * @link http://tools.ietf.org/html/rfc2821#section-4.5.3.2 - * @type integer - */ - public $Timeout = 300; - - /** - * How long to wait for commands to complete, in seconds. - * Default of 5 minutes (300sec) is from RFC2821 section 4.5.3.2 - * @type integer - */ - public $Timelimit = 300; - - /** - * The socket for the server connection. - * @type resource - */ - protected $smtp_conn; - - /** - * Error information, if any, for the last SMTP command. - * @type array - */ - protected $error = array( - 'error' => '', - 'detail' => '', - 'smtp_code' => '', - 'smtp_code_ex' => '' - ); - - /** - * The reply the server sent to us for HELO. - * If null, no HELO string has yet been received. - * @type string|null - */ - protected $helo_rply = null; - - /** - * The set of SMTP extensions sent in reply to EHLO command. - * Indexes of the array are extension names. - * Value at index 'HELO' or 'EHLO' (according to command that was sent) - * represents the server name. In case of HELO it is the only element of the array. - * Other values can be boolean TRUE or an array containing extension options. - * If null, no HELO/EHLO string has yet been received. - * @type array|null - */ - protected $server_caps = null; - - /** - * The most recent reply received from the server. - * @type string - */ - protected $last_reply = ''; - - /** - * Output debugging info via a user-selected method. - * @see SMTP::$Debugoutput - * @see SMTP::$do_debug - * @param string $str Debug string to output - * @param integer $level The debug level of this message; see DEBUG_* constants - * @return void - */ - protected function edebug($str, $level = 0) - { - if ($level > $this->do_debug) { - return; - } - //Avoid clash with built-in function names - if (!in_array($this->Debugoutput, array('error_log', 'html', 'echo')) and is_callable($this->Debugoutput)) { - call_user_func($this->Debugoutput, $str, $this->do_debug); - return; - } - switch ($this->Debugoutput) { - case 'error_log': - //Don't output, just log - error_log($str); - break; - case 'html': - //Cleans up output a bit for a better looking, HTML-safe output - echo htmlentities( - preg_replace('/[\r\n]+/', '', $str), - ENT_QUOTES, - 'UTF-8' - ) - . "
\n"; - break; - case 'echo': - default: - //Normalize line breaks - $str = preg_replace('/(\r\n|\r|\n)/ms', "\n", $str); - echo gmdate('Y-m-d H:i:s') . "\t" . str_replace( - "\n", - "\n \t ", - trim($str) - )."\n"; - } - } - - /** - * Connect to an SMTP server. - * @param string $host SMTP server IP or host name - * @param integer $port The port number to connect to - * @param integer $timeout How long to wait for the connection to open - * @param array $options An array of options for stream_context_create() - * @access public - * @return boolean - */ - public function connect($host, $port = null, $timeout = 30, $options = array()) - { - static $streamok; - //This is enabled by default since 5.0.0 but some providers disable it - //Check this once and cache the result - if (is_null($streamok)) { - $streamok = function_exists('stream_socket_client'); - } - // Clear errors to avoid confusion - $this->setError(''); - // Make sure we are __not__ connected - if ($this->connected()) { - // Already connected, generate error - $this->setError('Already connected to a server'); - return false; - } - if (empty($port)) { - $port = self::DEFAULT_SMTP_PORT; - } - // Connect to the SMTP server - $this->edebug( - "Connection: opening to $host:$port, timeout=$timeout, options=".var_export($options, true), - self::DEBUG_CONNECTION - ); - $errno = 0; - $errstr = ''; - if ($streamok) { - $socket_context = stream_context_create($options); - //Suppress errors; connection failures are handled at a higher level - $this->smtp_conn = @stream_socket_client( - $host . ":" . $port, - $errno, - $errstr, - $timeout, - STREAM_CLIENT_CONNECT, - $socket_context - ); - } else { - //Fall back to fsockopen which should work in more places, but is missing some features - $this->edebug( - "Connection: stream_socket_client not available, falling back to fsockopen", - self::DEBUG_CONNECTION - ); - $this->smtp_conn = fsockopen( - $host, - $port, - $errno, - $errstr, - $timeout - ); - } - // Verify we connected properly - if (!is_resource($this->smtp_conn)) { - $this->setError( - 'Failed to connect to server', - $errno, - $errstr - ); - $this->edebug( - 'SMTP ERROR: ' . $this->error['error'] - . ": $errstr ($errno)", - self::DEBUG_CLIENT - ); - return false; - } - $this->edebug('Connection: opened', self::DEBUG_CONNECTION); - // SMTP server can take longer to respond, give longer timeout for first read - // Windows does not have support for this timeout function - if (substr(PHP_OS, 0, 3) != 'WIN') { - $max = ini_get('max_execution_time'); - // Don't bother if unlimited - if ($max != 0 && $timeout > $max) { - @set_time_limit($timeout); - } - stream_set_timeout($this->smtp_conn, $timeout, 0); - } - // Get any announcement - $announce = $this->get_lines(); - $this->edebug('SERVER -> CLIENT: ' . $announce, self::DEBUG_SERVER); - return true; - } - - /** - * Initiate a TLS (encrypted) session. - * @access public - * @return boolean - */ - public function startTLS() - { - if (!$this->sendCommand('STARTTLS', 'STARTTLS', 220)) { - return false; - } - // Begin encrypted connection - if (!stream_socket_enable_crypto( - $this->smtp_conn, - true, - STREAM_CRYPTO_METHOD_TLS_CLIENT - )) { - return false; - } - return true; - } - - /** - * Perform SMTP authentication. - * Must be run after hello(). - * @see hello() - * @param string $username The user name - * @param string $password The password - * @param string $authtype The auth type (PLAIN, LOGIN, NTLM, CRAM-MD5) - * @param string $realm The auth realm for NTLM - * @param string $workstation The auth workstation for NTLM - * @access public - * @return boolean True if successfully authenticated. - */ - public function authenticate( - $username, - $password, - $authtype = null, - $realm = '', - $workstation = '' - ) { - if (!$this->server_caps) { - $this->setError('Authentication is not allowed before HELO/EHLO'); - return false; - } - - if (array_key_exists('EHLO', $this->server_caps)) { - // SMTP extensions are available. Let's try to find a proper authentication method - - if (!array_key_exists('AUTH', $this->server_caps)) { - $this->setError('Authentication is not allowed at this stage'); - // 'at this stage' means that auth may be allowed after the stage changes - // e.g. after STARTTLS - return false; - } - - self::edebug('Auth method requested: ' . ($authtype ? $authtype : 'UNKNOWN'), self::DEBUG_LOWLEVEL); - self::edebug( - 'Auth methods available on the server: ' . implode(',', $this->server_caps['AUTH']), - self::DEBUG_LOWLEVEL - ); - - if (empty($authtype)) { - foreach (array('LOGIN', 'CRAM-MD5', 'NTLM', 'PLAIN') as $method) { - if (in_array($method, $this->server_caps['AUTH'])) { - $authtype = $method; - break; - } - } - if (empty($authtype)) { - $this->setError('No supported authentication methods found'); - return false; - } - self::edebug('Auth method selected: '.$authtype, self::DEBUG_LOWLEVEL); - } - - if (!in_array($authtype, $this->server_caps['AUTH'])) { - $this->setError("The requested authentication method \"$authtype\" is not supported by the server"); - return false; - } - } elseif (empty($authtype)) { - $authtype = 'LOGIN'; - } - switch ($authtype) { - case 'PLAIN': - // Start authentication - if (!$this->sendCommand('AUTH', 'AUTH PLAIN', 334)) { - return false; - } - // Send encoded username and password - if (!$this->sendCommand( - 'User & Password', - base64_encode("\0" . $username . "\0" . $password), - 235 - ) - ) { - return false; - } - break; - case 'LOGIN': - // Start authentication - if (!$this->sendCommand('AUTH', 'AUTH LOGIN', 334)) { - return false; - } - if (!$this->sendCommand("Username", base64_encode($username), 334)) { - return false; - } - if (!$this->sendCommand("Password", base64_encode($password), 235)) { - return false; - } - break; - case 'NTLM': - /* - * ntlm_sasl_client.php - * Bundled with Permission - * - * How to telnet in windows: - * http://technet.microsoft.com/en-us/library/aa995718%28EXCHG.65%29.aspx - * PROTOCOL Docs http://curl.haxx.se/rfc/ntlm.html#ntlmSmtpAuthentication - */ - require_once 'extras/ntlm_sasl_client.php'; - $temp = new stdClass; - $ntlm_client = new ntlm_sasl_client_class; - //Check that functions are available - if (!$ntlm_client->Initialize($temp)) { - $this->setError($temp->error); - $this->edebug( - 'You need to enable some modules in your php.ini file: ' - . $this->error['error'], - self::DEBUG_CLIENT - ); - return false; - } - //msg1 - $msg1 = $ntlm_client->TypeMsg1($realm, $workstation); //msg1 - - if (!$this->sendCommand( - 'AUTH NTLM', - 'AUTH NTLM ' . base64_encode($msg1), - 334 - ) - ) { - return false; - } - //Though 0 based, there is a white space after the 3 digit number - //msg2 - $challenge = substr($this->last_reply, 3); - $challenge = base64_decode($challenge); - $ntlm_res = $ntlm_client->NTLMResponse( - substr($challenge, 24, 8), - $password - ); - //msg3 - $msg3 = $ntlm_client->TypeMsg3( - $ntlm_res, - $username, - $realm, - $workstation - ); - // send encoded username - return $this->sendCommand('Username', base64_encode($msg3), 235); - case 'CRAM-MD5': - // Start authentication - if (!$this->sendCommand('AUTH CRAM-MD5', 'AUTH CRAM-MD5', 334)) { - return false; - } - // Get the challenge - $challenge = base64_decode(substr($this->last_reply, 4)); - - // Build the response - $response = $username . ' ' . $this->hmac($challenge, $password); - - // send encoded credentials - return $this->sendCommand('Username', base64_encode($response), 235); - default: - $this->setError("Authentication method \"$authtype\" is not supported"); - return false; - } - return true; - } - - /** - * Calculate an MD5 HMAC hash. - * Works like hash_hmac('md5', $data, $key) - * in case that function is not available - * @param string $data The data to hash - * @param string $key The key to hash with - * @access protected - * @return string - */ - protected function hmac($data, $key) - { - if (function_exists('hash_hmac')) { - return hash_hmac('md5', $data, $key); - } - - // The following borrowed from - // http://php.net/manual/en/function.mhash.php#27225 - - // RFC 2104 HMAC implementation for php. - // Creates an md5 HMAC. - // Eliminates the need to install mhash to compute a HMAC - // by Lance Rushing - - $bytelen = 64; // byte length for md5 - if (strlen($key) > $bytelen) { - $key = pack('H*', md5($key)); - } - $key = str_pad($key, $bytelen, chr(0x00)); - $ipad = str_pad('', $bytelen, chr(0x36)); - $opad = str_pad('', $bytelen, chr(0x5c)); - $k_ipad = $key ^ $ipad; - $k_opad = $key ^ $opad; - - return md5($k_opad . pack('H*', md5($k_ipad . $data))); - } - - /** - * Check connection state. - * @access public - * @return boolean True if connected. - */ - public function connected() - { - if (is_resource($this->smtp_conn)) { - $sock_status = stream_get_meta_data($this->smtp_conn); - if ($sock_status['eof']) { - // The socket is valid but we are not connected - $this->edebug( - 'SMTP NOTICE: EOF caught while checking if connected', - self::DEBUG_CLIENT - ); - $this->close(); - return false; - } - return true; // everything looks good - } - return false; - } - - /** - * Close the socket and clean up the state of the class. - * Don't use this function without first trying to use QUIT. - * @see quit() - * @access public - * @return void - */ - public function close() - { - $this->setError(''); - $this->server_caps = null; - $this->helo_rply = null; - if (is_resource($this->smtp_conn)) { - // close the connection and cleanup - fclose($this->smtp_conn); - $this->smtp_conn = null; //Makes for cleaner serialization - $this->edebug('Connection: closed', self::DEBUG_CONNECTION); - } - } - - /** - * Send an SMTP DATA command. - * Issues a data command and sends the msg_data to the server, - * finializing the mail transaction. $msg_data is the message - * that is to be send with the headers. Each header needs to be - * on a single line followed by a with the message headers - * and the message body being separated by and additional . - * Implements rfc 821: DATA - * @param string $msg_data Message data to send - * @access public - * @return boolean - */ - public function data($msg_data) - { - //This will use the standard timelimit - if (!$this->sendCommand('DATA', 'DATA', 354)) { - return false; - } - - /* The server is ready to accept data! - * According to rfc821 we should not send more than 1000 characters on a single line (including the CRLF) - * so we will break the data up into lines by \r and/or \n then if needed we will break each of those into - * smaller lines to fit within the limit. - * We will also look for lines that start with a '.' and prepend an additional '.'. - * NOTE: this does not count towards line-length limit. - */ - - // Normalize line breaks before exploding - $lines = explode("\n", str_replace(array("\r\n", "\r"), "\n", $msg_data)); - - /* To distinguish between a complete RFC822 message and a plain message body, we check if the first field - * of the first line (':' separated) does not contain a space then it _should_ be a header and we will - * process all lines before a blank line as headers. - */ - - $field = substr($lines[0], 0, strpos($lines[0], ':')); - $in_headers = false; - if (!empty($field) && strpos($field, ' ') === false) { - $in_headers = true; - } - - foreach ($lines as $line) { - $lines_out = array(); - if ($in_headers and $line == '') { - $in_headers = false; - } - //Break this line up into several smaller lines if it's too long - //Micro-optimisation: isset($str[$len]) is faster than (strlen($str) > $len), - while (isset($line[self::MAX_LINE_LENGTH])) { - //Working backwards, try to find a space within the last MAX_LINE_LENGTH chars of the line to break on - //so as to avoid breaking in the middle of a word - $pos = strrpos(substr($line, 0, self::MAX_LINE_LENGTH), ' '); - //Deliberately matches both false and 0 - if (!$pos) { - //No nice break found, add a hard break - $pos = self::MAX_LINE_LENGTH - 1; - $lines_out[] = substr($line, 0, $pos); - $line = substr($line, $pos); - } else { - //Break at the found point - $lines_out[] = substr($line, 0, $pos); - //Move along by the amount we dealt with - $line = substr($line, $pos + 1); - } - //If processing headers add a LWSP-char to the front of new line RFC822 section 3.1.1 - if ($in_headers) { - $line = "\t" . $line; - } - } - $lines_out[] = $line; - - //Send the lines to the server - foreach ($lines_out as $line_out) { - //RFC2821 section 4.5.2 - if (!empty($line_out) and $line_out[0] == '.') { - $line_out = '.' . $line_out; - } - $this->client_send($line_out . self::CRLF); - } - } - - //Message data has been sent, complete the command - //Increase timelimit for end of DATA command - $savetimelimit = $this->Timelimit; - $this->Timelimit = $this->Timelimit * 2; - $result = $this->sendCommand('DATA END', '.', 250); - //Restore timelimit - $this->Timelimit = $savetimelimit; - return $result; - } - - /** - * Send an SMTP HELO or EHLO command. - * Used to identify the sending server to the receiving server. - * This makes sure that client and server are in a known state. - * Implements RFC 821: HELO - * and RFC 2821 EHLO. - * @param string $host The host name or IP to connect to - * @access public - * @return boolean - */ - public function hello($host = '') - { - //Try extended hello first (RFC 2821) - return (boolean)($this->sendHello('EHLO', $host) or $this->sendHello('HELO', $host)); - } - - /** - * Send an SMTP HELO or EHLO command. - * Low-level implementation used by hello() - * @see hello() - * @param string $hello The HELO string - * @param string $host The hostname to say we are - * @access protected - * @return boolean - */ - protected function sendHello($hello, $host) - { - $noerror = $this->sendCommand($hello, $hello . ' ' . $host, 250); - $this->helo_rply = $this->last_reply; - if ($noerror) { - $this->parseHelloFields($hello); - } else { - $this->server_caps = null; - } - return $noerror; - } - - /** - * Parse a reply to HELO/EHLO command to discover server extensions. - * In case of HELO, the only parameter that can be discovered is a server name. - * @access protected - * @param string $type - 'HELO' or 'EHLO' - */ - protected function parseHelloFields($type) - { - $this->server_caps = array(); - $lines = explode("\n", $this->last_reply); - foreach ($lines as $n => $s) { - $s = trim(substr($s, 4)); - if (!$s) { - continue; - } - $fields = explode(' ', $s); - if (!empty($fields)) { - if (!$n) { - $name = $type; - $fields = $fields[0]; - } else { - $name = array_shift($fields); - if ($name == 'SIZE') { - $fields = ($fields) ? $fields[0] : 0; - } - } - $this->server_caps[$name] = ($fields ? $fields : true); - } - } - } - - /** - * Send an SMTP MAIL command. - * Starts a mail transaction from the email address specified in - * $from. Returns true if successful or false otherwise. If True - * the mail transaction is started and then one or more recipient - * commands may be called followed by a data command. - * Implements rfc 821: MAIL FROM: - * @param string $from Source address of this message - * @access public - * @return boolean - */ - public function mail($from) - { - $useVerp = ($this->do_verp ? ' XVERP' : ''); - return $this->sendCommand( - 'MAIL FROM', - 'MAIL FROM:<' . $from . '>' . $useVerp, - 250 - ); - } - - /** - * Send an SMTP QUIT command. - * Closes the socket if there is no error or the $close_on_error argument is true. - * Implements from rfc 821: QUIT - * @param boolean $close_on_error Should the connection close if an error occurs? - * @access public - * @return boolean - */ - public function quit($close_on_error = true) - { - $noerror = $this->sendCommand('QUIT', 'QUIT', 221); - $err = $this->error; //Save any error - if ($noerror or $close_on_error) { - $this->close(); - $this->error = $err; //Restore any error from the quit command - } - return $noerror; - } - - /** - * Send an SMTP RCPT command. - * Sets the TO argument to $toaddr. - * Returns true if the recipient was accepted false if it was rejected. - * Implements from rfc 821: RCPT TO: - * @param string $toaddr The address the message is being sent to - * @access public - * @return boolean - */ - public function recipient($toaddr) - { - return $this->sendCommand( - 'RCPT TO', - 'RCPT TO:<' . $toaddr . '>', - array(250, 251) - ); - } - - /** - * Send an SMTP RSET command. - * Abort any transaction that is currently in progress. - * Implements rfc 821: RSET - * @access public - * @return boolean True on success. - */ - public function reset() - { - return $this->sendCommand('RSET', 'RSET', 250); - } - - /** - * Send a command to an SMTP server and check its return code. - * @param string $command The command name - not sent to the server - * @param string $commandstring The actual command to send - * @param integer|array $expect One or more expected integer success codes - * @access protected - * @return boolean True on success. - */ - protected function sendCommand($command, $commandstring, $expect) - { - if (!$this->connected()) { - $this->setError("Called $command without being connected"); - return false; - } - $this->client_send($commandstring . self::CRLF); - - $this->last_reply = $this->get_lines(); - // Fetch SMTP code and possible error code explanation - $matches = array(); - if (preg_match("/^([0-9]{3})[ -](?:([0-9]\\.[0-9]\\.[0-9]) )?/", $this->last_reply, $matches)) { - $code = $matches[1]; - $code_ex = (count($matches) > 2 ? $matches[2] : null); - // Cut off error code from each response line - $detail = preg_replace( - "/{$code}[ -]".($code_ex ? str_replace('.', '\\.', $code_ex).' ' : '')."/m", - '', - $this->last_reply - ); - } else { - // Fall back to simple parsing if regex fails - $code = substr($this->last_reply, 0, 3); - $code_ex = null; - $detail = substr($this->last_reply, 4); - } - - $this->edebug('SERVER -> CLIENT: ' . $this->last_reply, self::DEBUG_SERVER); - - if (!in_array($code, (array)$expect)) { - $this->setError( - "$command command failed", - $detail, - $code, - $code_ex - ); - $this->edebug( - 'SMTP ERROR: ' . $this->error['error'] . ': ' . $this->last_reply, - self::DEBUG_CLIENT - ); - return false; - } - - $this->setError(''); - return true; - } - - /** - * Send an SMTP SAML command. - * Starts a mail transaction from the email address specified in $from. - * Returns true if successful or false otherwise. If True - * the mail transaction is started and then one or more recipient - * commands may be called followed by a data command. This command - * will send the message to the users terminal if they are logged - * in and send them an email. - * Implements rfc 821: SAML FROM: - * @param string $from The address the message is from - * @access public - * @return boolean - */ - public function sendAndMail($from) - { - return $this->sendCommand('SAML', "SAML FROM:$from", 250); - } - - /** - * Send an SMTP VRFY command. - * @param string $name The name to verify - * @access public - * @return boolean - */ - public function verify($name) - { - return $this->sendCommand('VRFY', "VRFY $name", array(250, 251)); - } - - /** - * Send an SMTP NOOP command. - * Used to keep keep-alives alive, doesn't actually do anything - * @access public - * @return boolean - */ - public function noop() - { - return $this->sendCommand('NOOP', 'NOOP', 250); - } - - /** - * Send an SMTP TURN command. - * This is an optional command for SMTP that this class does not support. - * This method is here to make the RFC821 Definition complete for this class - * and _may_ be implemented in future - * Implements from rfc 821: TURN - * @access public - * @return boolean - */ - public function turn() - { - $this->setError('The SMTP TURN command is not implemented'); - $this->edebug('SMTP NOTICE: ' . $this->error['error'], self::DEBUG_CLIENT); - return false; - } - - /** - * Send raw data to the server. - * @param string $data The data to send - * @access public - * @return integer|boolean The number of bytes sent to the server or false on error - */ - public function client_send($data) - { - $this->edebug("CLIENT -> SERVER: $data", self::DEBUG_CLIENT); - return fwrite($this->smtp_conn, $data); - } - - /** - * Get the latest error. - * @access public - * @return array - */ - public function getError() - { - return $this->error; - } - - /** - * Get SMTP extensions available on the server - * @access public - * @return array|null - */ - public function getServerExtList() - { - return $this->server_caps; - } - - /** - * A multipurpose method - * The method works in three ways, dependent on argument value and current state - * 1. HELO/EHLO was not sent - returns null and set up $this->error - * 2. HELO was sent - * $name = 'HELO': returns server name - * $name = 'EHLO': returns boolean false - * $name = any string: returns null and set up $this->error - * 3. EHLO was sent - * $name = 'HELO'|'EHLO': returns server name - * $name = any string: if extension $name exists, returns boolean True - * or its options. Otherwise returns boolean False - * In other words, one can use this method to detect 3 conditions: - * - null returned: handshake was not or we don't know about ext (refer to $this->error) - * - false returned: the requested feature exactly not exists - * - positive value returned: the requested feature exists - * @param string $name Name of SMTP extension or 'HELO'|'EHLO' - * @return mixed - */ - public function getServerExt($name) - { - if (!$this->server_caps) { - $this->setError('No HELO/EHLO was sent'); - return null; - } - - // the tight logic knot ;) - if (!array_key_exists($name, $this->server_caps)) { - if ($name == 'HELO') { - return $this->server_caps['EHLO']; - } - if ($name == 'EHLO' || array_key_exists('EHLO', $this->server_caps)) { - return false; - } - $this->setError('HELO handshake was used. Client knows nothing about server extensions'); - return null; - } - - return $this->server_caps[$name]; - } - - /** - * Get the last reply from the server. - * @access public - * @return string - */ - public function getLastReply() - { - return $this->last_reply; - } - - /** - * Read the SMTP server's response. - * Either before eof or socket timeout occurs on the operation. - * With SMTP we can tell if we have more lines to read if the - * 4th character is '-' symbol. If it is a space then we don't - * need to read anything else. - * @access protected - * @return string - */ - protected function get_lines() - { - // If the connection is bad, give up straight away - if (!is_resource($this->smtp_conn)) { - return ''; - } - $data = ''; - $endtime = 0; - stream_set_timeout($this->smtp_conn, $this->Timeout); - if ($this->Timelimit > 0) { - $endtime = time() + $this->Timelimit; - } - while (is_resource($this->smtp_conn) && !feof($this->smtp_conn)) { - $str = @fgets($this->smtp_conn, 515); - $this->edebug("SMTP -> get_lines(): \$data was \"$data\"", self::DEBUG_LOWLEVEL); - $this->edebug("SMTP -> get_lines(): \$str is \"$str\"", self::DEBUG_LOWLEVEL); - $data .= $str; - $this->edebug("SMTP -> get_lines(): \$data is \"$data\"", self::DEBUG_LOWLEVEL); - // If 4th character is a space, we are done reading, break the loop, micro-optimisation over strlen - if ((isset($str[3]) and $str[3] == ' ')) { - break; - } - // Timed-out? Log and break - $info = stream_get_meta_data($this->smtp_conn); - if ($info['timed_out']) { - $this->edebug( - 'SMTP -> get_lines(): timed-out (' . $this->Timeout . ' sec)', - self::DEBUG_LOWLEVEL - ); - break; - } - // Now check if reads took too long - if ($endtime and time() > $endtime) { - $this->edebug( - 'SMTP -> get_lines(): timelimit reached ('. - $this->Timelimit . ' sec)', - self::DEBUG_LOWLEVEL - ); - break; - } - } - return $data; - } - - /** - * Enable or disable VERP address generation. - * @param boolean $enabled - */ - public function setVerp($enabled = false) - { - $this->do_verp = $enabled; - } - - /** - * Get VERP address generation mode. - * @return boolean - */ - public function getVerp() - { - return $this->do_verp; - } - - /** - * Set error messages and codes. - * @param string $message The error message - * @param string $detail Further detail on the error - * @param string $smtp_code An associated SMTP error code - * @param string $smtp_code_ex Extended SMTP code - */ - protected function setError($message, $detail = '', $smtp_code = '', $smtp_code_ex = '') - { - $this->error = array( - 'error' => $message, - 'detail' => $detail, - 'smtp_code' => $smtp_code, - 'smtp_code_ex' => $smtp_code_ex - ); - } - - /** - * Set debug output method. - * @param string|callable $method The name of the mechanism to use for debugging output, or a callable to handle it. - */ - public function setDebugOutput($method = 'echo') - { - $this->Debugoutput = $method; - } - - /** - * Get debug output method. - * @return string - */ - public function getDebugOutput() - { - return $this->Debugoutput; - } - - /** - * Set debug output level. - * @param integer $level - */ - public function setDebugLevel($level = 0) - { - $this->do_debug = $level; - } - - /** - * Get debug output level. - * @return integer - */ - public function getDebugLevel() - { - return $this->do_debug; - } - - /** - * Set SMTP timeout. - * @param integer $timeout - */ - public function setTimeout($timeout = 0) - { - $this->Timeout = $timeout; - } - - /** - * Get SMTP timeout. - * @return integer - */ - public function getTimeout() - { - return $this->Timeout; - } -} diff --git a/PHPMailer/language/phpmailer.lang-am.php b/PHPMailer/language/phpmailer.lang-am.php deleted file mode 100644 index ff2a969..0000000 --- a/PHPMailer/language/phpmailer.lang-am.php +++ /dev/null @@ -1,26 +0,0 @@ - - */ - -$PHPMAILER_LANG['authenticate'] = 'SMTP -ի սխալ: չհաջողվեց ստուգել իսկությունը.'; -$PHPMAILER_LANG['connect_host'] = 'SMTP -ի սխալ: չհաջողվեց կապ հաստատել SMTP սերվերի հետ.'; -$PHPMAILER_LANG['data_not_accepted'] = 'SMTP -ի սխալ: տվյալները ընդունված չեն.'; -$PHPMAILER_LANG['empty_message'] = 'Հաղորդագրությունը դատարկ է'; -$PHPMAILER_LANG['encoding'] = 'Կոդավորման անհայտ տեսակ: '; -$PHPMAILER_LANG['execute'] = 'Չհաջողվեց իրականացնել հրամանը: '; -$PHPMAILER_LANG['file_access'] = 'Ֆայլը հասանելի չէ: '; -$PHPMAILER_LANG['file_open'] = 'Ֆայլի սխալ: ֆայլը չհաջողվեց բացել: '; -$PHPMAILER_LANG['from_failed'] = 'Ուղարկողի հետևյալ հասցեն սխալ է: '; -$PHPMAILER_LANG['instantiate'] = 'Հնարավոր չէ կանչել mail ֆունկցիան.'; -$PHPMAILER_LANG['invalid_address'] = 'Հասցեն սխալ է: '; -$PHPMAILER_LANG['mailer_not_supported'] = ' փոստային սերվերի հետ չի աշխատում.'; -$PHPMAILER_LANG['provide_address'] = 'Անհրաժեշտ է տրամադրել գոնե մեկ ստացողի e-mail հասցե.'; -$PHPMAILER_LANG['recipients_failed'] = 'SMTP -ի սխալ: չի հաջողվել ուղարկել հետևյալ ստացողների հասցեներին: '; -$PHPMAILER_LANG['signing'] = 'Ստորագրման սխալ: '; -$PHPMAILER_LANG['smtp_connect_failed'] = 'SMTP -ի connect() ֆունկցիան չի հաջողվել'; -$PHPMAILER_LANG['smtp_error'] = 'SMTP սերվերի սխալ: '; -$PHPMAILER_LANG['variable_set'] = 'Չի հաջողվում ստեղծել կամ վերափոխել փոփոխականը: '; -$PHPMAILER_LANG['extension_missing'] = 'Հավելվածը բացակայում է: '; diff --git a/PHPMailer/language/phpmailer.lang-ar.php b/PHPMailer/language/phpmailer.lang-ar.php deleted file mode 100644 index b8c02c7..0000000 --- a/PHPMailer/language/phpmailer.lang-ar.php +++ /dev/null @@ -1,27 +0,0 @@ - - */ - -$PHPMAILER_LANG['authenticate'] = 'خطأ SMTP : لا يمكن تأكيد الهوية.'; -$PHPMAILER_LANG['connect_host'] = 'خطأ SMTP: لا يمكن الاتصال بالخادم SMTP.'; -$PHPMAILER_LANG['data_not_accepted'] = 'خطأ SMTP: لم يتم قبول المعلومات .'; -$PHPMAILER_LANG['empty_message'] = 'نص الرسالة فارغ'; -$PHPMAILER_LANG['encoding'] = 'ترميز غير معروف: '; -$PHPMAILER_LANG['execute'] = 'لا يمكن تنفيذ : '; -$PHPMAILER_LANG['file_access'] = 'لا يمكن الوصول للملف: '; -$PHPMAILER_LANG['file_open'] = 'خطأ في الملف: لا يمكن فتحه: '; -$PHPMAILER_LANG['from_failed'] = 'خطأ على مستوى عنوان المرسل : '; -$PHPMAILER_LANG['instantiate'] = 'لا يمكن توفير خدمة البريد.'; -$PHPMAILER_LANG['invalid_address'] = 'الإرسال غير ممكن لأن عنوان البريد الإلكتروني غير صالح.'; -$PHPMAILER_LANG['mailer_not_supported'] = ' برنامج الإرسال غير مدعوم.'; -$PHPMAILER_LANG['provide_address'] = 'يجب توفير عنوان البريد الإلكتروني لمستلم واحد على الأقل.'; -$PHPMAILER_LANG['recipients_failed'] = 'خطأ SMTP: الأخطاء التالية ' . - 'فشل في الارسال لكل من : '; -$PHPMAILER_LANG['signing'] = 'خطأ في التوقيع: '; -$PHPMAILER_LANG['smtp_connect_failed'] = 'SMTP Connect() غير ممكن.'; -$PHPMAILER_LANG['smtp_error'] = 'خطأ على مستوى الخادم SMTP: '; -$PHPMAILER_LANG['variable_set'] = 'لا يمكن تعيين أو إعادة تعيين متغير: '; -//$PHPMAILER_LANG['extension_missing'] = 'Extension missing: '; diff --git a/PHPMailer/language/phpmailer.lang-az.php b/PHPMailer/language/phpmailer.lang-az.php deleted file mode 100644 index 3749d83..0000000 --- a/PHPMailer/language/phpmailer.lang-az.php +++ /dev/null @@ -1,26 +0,0 @@ - - */ - -$PHPMAILER_LANG['authenticate'] = 'Памылка SMTP: памылка ідэнтыфікацыі.'; -$PHPMAILER_LANG['connect_host'] = 'Памылка SMTP: нельга ўстанавіць сувязь з SMTP-серверам.'; -$PHPMAILER_LANG['data_not_accepted'] = 'Памылка SMTP: звесткі непрынятыя.'; -$PHPMAILER_LANG['empty_message'] = 'Пустое паведамленне.'; -$PHPMAILER_LANG['encoding'] = 'Невядомая кадыроўка тэксту: '; -$PHPMAILER_LANG['execute'] = 'Нельга выканаць каманду: '; -$PHPMAILER_LANG['file_access'] = 'Няма доступу да файла: '; -$PHPMAILER_LANG['file_open'] = 'Нельга адкрыць файл: '; -$PHPMAILER_LANG['from_failed'] = 'Няправільны адрас адпраўніка: '; -$PHPMAILER_LANG['instantiate'] = 'Нельга прымяніць функцыю mail().'; -$PHPMAILER_LANG['invalid_address'] = 'Нельга даслаць паведамленне, няправільны email атрымальніка: '; -$PHPMAILER_LANG['provide_address'] = 'Запоўніце, калі ласка, правільны email атрымальніка.'; -$PHPMAILER_LANG['mailer_not_supported'] = ' - паштовы сервер не падтрымліваецца.'; -$PHPMAILER_LANG['recipients_failed'] = 'Памылка SMTP: няправільныя атрымальнікі: '; -$PHPMAILER_LANG['signing'] = 'Памылка подпісу паведамлення: '; -$PHPMAILER_LANG['smtp_connect_failed'] = 'Памылка сувязі з SMTP-серверам.'; -$PHPMAILER_LANG['smtp_error'] = 'Памылка SMTP: '; -$PHPMAILER_LANG['variable_set'] = 'Нельга ўстанавіць або перамяніць значэнне пераменнай: '; -//$PHPMAILER_LANG['extension_missing'] = 'Extension missing: '; diff --git a/PHPMailer/language/phpmailer.lang-bg.php b/PHPMailer/language/phpmailer.lang-bg.php deleted file mode 100644 index 6b5c4a1..0000000 --- a/PHPMailer/language/phpmailer.lang-bg.php +++ /dev/null @@ -1,26 +0,0 @@ - - */ - -$PHPMAILER_LANG['authenticate'] = 'SMTP грешка: Не може да се удостовери пред сървъра.'; -$PHPMAILER_LANG['connect_host'] = 'SMTP грешка: Не може да се свърже с SMTP хоста.'; -$PHPMAILER_LANG['data_not_accepted'] = 'SMTP грешка: данните не са приети.'; -$PHPMAILER_LANG['empty_message'] = 'Съдържанието на съобщението е празно'; -$PHPMAILER_LANG['encoding'] = 'Неизвестно кодиране: '; -$PHPMAILER_LANG['execute'] = 'Не може да се изпълни: '; -$PHPMAILER_LANG['file_access'] = 'Няма достъп до файл: '; -$PHPMAILER_LANG['file_open'] = 'Файлова грешка: Не може да се отвори файл: '; -$PHPMAILER_LANG['from_failed'] = 'Следните адреси за подател са невалидни: '; -$PHPMAILER_LANG['instantiate'] = 'Не може да се инстанцира функцията mail.'; -$PHPMAILER_LANG['invalid_address'] = 'Невалиден адрес'; -$PHPMAILER_LANG['mailer_not_supported'] = ' - пощенски сървър не се поддържа.'; -$PHPMAILER_LANG['provide_address'] = 'Трябва да предоставите поне един email адрес за получател.'; -$PHPMAILER_LANG['recipients_failed'] = 'SMTP грешка: Следните адреси за Получател са невалидни: '; -$PHPMAILER_LANG['signing'] = 'Грешка при подписване: '; -$PHPMAILER_LANG['smtp_connect_failed'] = 'SMTP провален connect().'; -$PHPMAILER_LANG['smtp_error'] = 'SMTP сървърна грешка: '; -$PHPMAILER_LANG['variable_set'] = 'Не може да се установи или възстанови променлива: '; -$PHPMAILER_LANG['extension_missing'] = 'Липсва разширение: '; diff --git a/PHPMailer/language/phpmailer.lang-br.php b/PHPMailer/language/phpmailer.lang-br.php deleted file mode 100644 index c407fe9..0000000 --- a/PHPMailer/language/phpmailer.lang-br.php +++ /dev/null @@ -1,27 +0,0 @@ - - * @author Lucas Guimarães - */ - -$PHPMAILER_LANG['authenticate'] = 'Erro de SMTP: Não foi possível autenticar.'; -$PHPMAILER_LANG['connect_host'] = 'Erro de SMTP: Não foi possível conectar com o servidor SMTP.'; -$PHPMAILER_LANG['data_not_accepted'] = 'Erro de SMTP: Dados rejeitados.'; -$PHPMAILER_LANG['empty_message'] = 'Corpo da mensagem vazio'; -$PHPMAILER_LANG['encoding'] = 'Codificação desconhecida: '; -$PHPMAILER_LANG['execute'] = 'Não foi possível executar: '; -$PHPMAILER_LANG['file_access'] = 'Não foi possível acessar o arquivo: '; -$PHPMAILER_LANG['file_open'] = 'Erro de Arquivo: Não foi possível abrir o arquivo: '; -$PHPMAILER_LANG['from_failed'] = 'Os endereços dos remententes a seguir falharam: '; -$PHPMAILER_LANG['instantiate'] = 'Não foi possível iniciar uma instância da função mail.'; -$PHPMAILER_LANG['invalid_address'] = 'Não enviando, endereço de e-mail inválido: '; -$PHPMAILER_LANG['mailer_not_supported'] = ' mailer não é suportado.'; -$PHPMAILER_LANG['provide_address'] = 'Você deve fornecer pelo menos um endereço de destinatário de e-mail.'; -$PHPMAILER_LANG['recipients_failed'] = 'Erro de SMTP: Os endereços de destinatário a seguir falharam: '; -$PHPMAILER_LANG['signing'] = 'Erro ao assinar: '; -$PHPMAILER_LANG['smtp_connect_failed'] = 'SMTP Connect() falhou.'; -$PHPMAILER_LANG['smtp_error'] = 'Erro de servidor SMTP: '; -$PHPMAILER_LANG['variable_set'] = 'Não foi possível definir ou resetar a variável: '; -//$PHPMAILER_LANG['extension_missing'] = 'Extension missing: '; diff --git a/PHPMailer/language/phpmailer.lang-ca.php b/PHPMailer/language/phpmailer.lang-ca.php deleted file mode 100644 index 5620d39..0000000 --- a/PHPMailer/language/phpmailer.lang-ca.php +++ /dev/null @@ -1,26 +0,0 @@ - - */ - -$PHPMAILER_LANG['authenticate'] = 'Error SMTP: No s’ha pogut autenticar.'; -$PHPMAILER_LANG['connect_host'] = 'Error SMTP: No es pot connectar al servidor SMTP.'; -$PHPMAILER_LANG['data_not_accepted'] = 'Error SMTP: Dades no acceptades.'; -$PHPMAILER_LANG['empty_message'] = 'El cos del missatge està buit.'; -$PHPMAILER_LANG['encoding'] = 'Codificació desconeguda: '; -$PHPMAILER_LANG['execute'] = 'No es pot executar: '; -$PHPMAILER_LANG['file_access'] = 'No es pot accedir a l’arxiu: '; -$PHPMAILER_LANG['file_open'] = 'Error d’Arxiu: No es pot obrir l’arxiu: '; -$PHPMAILER_LANG['from_failed'] = 'La(s) següent(s) adreces de remitent han fallat: '; -$PHPMAILER_LANG['instantiate'] = 'No s’ha pogut crear una instància de la funció Mail.'; -$PHPMAILER_LANG['invalid_address'] = 'Adreça d’email invalida'; -$PHPMAILER_LANG['mailer_not_supported'] = ' mailer no està suportat'; -$PHPMAILER_LANG['provide_address'] = 'S’ha de proveir almenys una adreça d’email com a destinatari.'; -$PHPMAILER_LANG['recipients_failed'] = 'Error SMTP: Els següents destinataris han fallat: '; -$PHPMAILER_LANG['signing'] = 'Error al signar: '; -$PHPMAILER_LANG['smtp_connect_failed'] = 'Ha fallat el SMTP Connect().'; -$PHPMAILER_LANG['smtp_error'] = 'Error del servidor SMTP: '; -$PHPMAILER_LANG['variable_set'] = 'No s’ha pogut establir o restablir la variable: '; -//$PHPMAILER_LANG['extension_missing'] = 'Extension missing: '; diff --git a/PHPMailer/language/phpmailer.lang-ch.php b/PHPMailer/language/phpmailer.lang-ch.php deleted file mode 100644 index 1c6ebaf..0000000 --- a/PHPMailer/language/phpmailer.lang-ch.php +++ /dev/null @@ -1,26 +0,0 @@ - - */ - -$PHPMAILER_LANG['authenticate'] = 'SMTP 错误:身份验证失败。'; -$PHPMAILER_LANG['connect_host'] = 'SMTP 错误: 不能连接SMTP主机。'; -$PHPMAILER_LANG['data_not_accepted'] = 'SMTP 错误: 数据不可接受。'; -//$PHPMAILER_LANG['empty_message'] = 'Message body empty'; -$PHPMAILER_LANG['encoding'] = '未知编码:'; -$PHPMAILER_LANG['execute'] = '不能执行: '; -$PHPMAILER_LANG['file_access'] = '不能访问文件:'; -$PHPMAILER_LANG['file_open'] = '文件错误:不能打开文件:'; -$PHPMAILER_LANG['from_failed'] = '下面的发送地址邮件发送失败了: '; -$PHPMAILER_LANG['instantiate'] = '不能实现mail方法。'; -//$PHPMAILER_LANG['invalid_address'] = 'Not sending, email address is invalid: '; -$PHPMAILER_LANG['mailer_not_supported'] = ' 您所选择的发送邮件的方法并不支持。'; -$PHPMAILER_LANG['provide_address'] = '您必须提供至少一个 收信人的email地址。'; -$PHPMAILER_LANG['recipients_failed'] = 'SMTP 错误: 下面的 收件人失败了: '; -//$PHPMAILER_LANG['signing'] = 'Signing Error: '; -//$PHPMAILER_LANG['smtp_connect_failed'] = 'SMTP Connect() failed.'; -//$PHPMAILER_LANG['smtp_error'] = 'SMTP server error: '; -//$PHPMAILER_LANG['variable_set'] = 'Cannot set or reset variable: '; -//$PHPMAILER_LANG['extension_missing'] = 'Extension missing: '; diff --git a/PHPMailer/language/phpmailer.lang-cz.php b/PHPMailer/language/phpmailer.lang-cz.php deleted file mode 100644 index 8cb1a3d..0000000 --- a/PHPMailer/language/phpmailer.lang-cz.php +++ /dev/null @@ -1,25 +0,0 @@ - - */ - -$PHPMAILER_LANG['authenticate'] = 'SMTP fejl: Kunne ikke logge på.'; -$PHPMAILER_LANG['connect_host'] = 'SMTP fejl: Kunne ikke tilslutte SMTP serveren.'; -$PHPMAILER_LANG['data_not_accepted'] = 'SMTP fejl: Data kunne ikke accepteres.'; -//$PHPMAILER_LANG['empty_message'] = 'Message body empty'; -$PHPMAILER_LANG['encoding'] = 'Ukendt encode-format: '; -$PHPMAILER_LANG['execute'] = 'Kunne ikke køre: '; -$PHPMAILER_LANG['file_access'] = 'Ingen adgang til fil: '; -$PHPMAILER_LANG['file_open'] = 'Fil fejl: Kunne ikke åbne filen: '; -$PHPMAILER_LANG['from_failed'] = 'Følgende afsenderadresse er forkert: '; -$PHPMAILER_LANG['instantiate'] = 'Kunne ikke initialisere email funktionen.'; -//$PHPMAILER_LANG['invalid_address'] = 'Not sending, email address is invalid: '; -$PHPMAILER_LANG['mailer_not_supported'] = ' mailer understøttes ikke.'; -$PHPMAILER_LANG['provide_address'] = 'Du skal indtaste mindst en modtagers emailadresse.'; -$PHPMAILER_LANG['recipients_failed'] = 'SMTP fejl: Følgende modtagere er forkerte: '; -//$PHPMAILER_LANG['signing'] = 'Signing Error: '; -//$PHPMAILER_LANG['smtp_connect_failed'] = 'SMTP Connect() failed.'; -//$PHPMAILER_LANG['smtp_error'] = 'SMTP server error: '; -//$PHPMAILER_LANG['variable_set'] = 'Cannot set or reset variable: '; -//$PHPMAILER_LANG['extension_missing'] = 'Extension missing: '; diff --git a/PHPMailer/language/phpmailer.lang-el.php b/PHPMailer/language/phpmailer.lang-el.php deleted file mode 100644 index 08c5f11..0000000 --- a/PHPMailer/language/phpmailer.lang-el.php +++ /dev/null @@ -1,25 +0,0 @@ - - */ - -$PHPMAILER_LANG['authenticate'] = 'Error SMTP: Imposible autentificar.'; -$PHPMAILER_LANG['connect_host'] = 'Error SMTP: Imposible conectar al servidor SMTP.'; -$PHPMAILER_LANG['data_not_accepted'] = 'Error SMTP: Datos no aceptados.'; -$PHPMAILER_LANG['empty_message'] = 'El cuerpo del mensaje está vacío'; -$PHPMAILER_LANG['encoding'] = 'Codificación desconocida: '; -$PHPMAILER_LANG['execute'] = 'Imposible ejecutar: '; -$PHPMAILER_LANG['file_access'] = 'Imposible acceder al archivo: '; -$PHPMAILER_LANG['file_open'] = 'Error de Archivo: Imposible abrir el archivo: '; -$PHPMAILER_LANG['from_failed'] = 'La(s) siguiente(s) direcciones de remitente fallaron: '; -$PHPMAILER_LANG['instantiate'] = 'Imposible crear una instancia de la función Mail.'; -$PHPMAILER_LANG['invalid_address'] = 'Imposible enviar: dirección de email inválido: '; -$PHPMAILER_LANG['mailer_not_supported'] = ' mailer no está soportado.'; -$PHPMAILER_LANG['provide_address'] = 'Debe proporcionar al menos una dirección de email de destino.'; -$PHPMAILER_LANG['recipients_failed'] = 'Error SMTP: Los siguientes destinos fallaron: '; -$PHPMAILER_LANG['signing'] = 'Error al firmar: '; -$PHPMAILER_LANG['smtp_connect_failed'] = 'SMTP Connect() falló.'; -$PHPMAILER_LANG['smtp_error'] = 'Error del servidor SMTP: '; -$PHPMAILER_LANG['variable_set'] = 'No se pudo configurar la variable: '; -//$PHPMAILER_LANG['extension_missing'] = 'Extension missing: '; diff --git a/PHPMailer/language/phpmailer.lang-et.php b/PHPMailer/language/phpmailer.lang-et.php deleted file mode 100644 index 93b6011..0000000 --- a/PHPMailer/language/phpmailer.lang-et.php +++ /dev/null @@ -1,27 +0,0 @@ - - */ - -$PHPMAILER_LANG['authenticate'] = 'SMTP Viga: Autoriseerimise viga.'; -$PHPMAILER_LANG['connect_host'] = 'SMTP Viga: Ei õnnestunud luua ühendust SMTP serveriga.'; -$PHPMAILER_LANG['data_not_accepted'] = 'SMTP Viga: Vigased andmed.'; -$PHPMAILER_LANG['empty_message'] = 'Tühi kirja sisu'; -$PHPMAILER_LANG["encoding"] = 'Tundmatu kodeering: '; -$PHPMAILER_LANG['execute'] = 'Tegevus ebaõnnestus: '; -$PHPMAILER_LANG['file_access'] = 'Pole piisavalt õiguseid järgneva faili avamiseks: '; -$PHPMAILER_LANG['file_open'] = 'Faili Viga: Faili avamine ebaõnnestus: '; -$PHPMAILER_LANG['from_failed'] = 'Järgnev saatja e-posti aadress on vigane: '; -$PHPMAILER_LANG['instantiate'] = 'mail funktiooni käivitamine ebaõnnestus.'; -$PHPMAILER_LANG['invalid_address'] = 'Saatmine peatatud, e-posti address vigane: '; -$PHPMAILER_LANG['provide_address'] = 'Te peate määrama vähemalt ühe saaja e-posti aadressi.'; -$PHPMAILER_LANG['mailer_not_supported'] = ' maileri tugi puudub.'; -$PHPMAILER_LANG['recipients_failed'] = 'SMTP Viga: Järgnevate saajate e-posti aadressid on vigased: '; -$PHPMAILER_LANG["signing"] = 'Viga allkirjastamisel: '; -$PHPMAILER_LANG['smtp_connect_failed'] = 'SMTP Connect() ebaõnnestus.'; -$PHPMAILER_LANG['smtp_error'] = 'SMTP serveri viga: '; -$PHPMAILER_LANG['variable_set'] = 'Ei õnnestunud määrata või lähtestada muutujat: '; -//$PHPMAILER_LANG['extension_missing'] = 'Extension missing: '; diff --git a/PHPMailer/language/phpmailer.lang-fa.php b/PHPMailer/language/phpmailer.lang-fa.php deleted file mode 100644 index ad0745c..0000000 --- a/PHPMailer/language/phpmailer.lang-fa.php +++ /dev/null @@ -1,27 +0,0 @@ - - * @author Mohammad Hossein Mojtahedi - */ - -$PHPMAILER_LANG['authenticate'] = 'خطای SMTP: احراز هویت با شکست مواجه شد.'; -$PHPMAILER_LANG['connect_host'] = 'خطای SMTP: اتصال به سرور SMTP برقرار نشد.'; -$PHPMAILER_LANG['data_not_accepted'] = 'خطای SMTP: داده‌ها نا‌درست هستند.'; -$PHPMAILER_LANG['empty_message'] = 'بخش متن پیام خالی است.'; -$PHPMAILER_LANG['encoding'] = 'کد‌گذاری نا‌شناخته: '; -$PHPMAILER_LANG['execute'] = 'امکان اجرا وجود ندارد: '; -$PHPMAILER_LANG['file_access'] = 'امکان دسترسی به فایل وجود ندارد: '; -$PHPMAILER_LANG['file_open'] = 'خطای File: امکان بازکردن فایل وجود ندارد: '; -$PHPMAILER_LANG['from_failed'] = 'آدرس فرستنده اشتباه است: '; -$PHPMAILER_LANG['instantiate'] = 'امکان معرفی تابع ایمیل وجود ندارد.'; -$PHPMAILER_LANG['invalid_address'] = 'آدرس ایمیل معتبر نیست: '; -$PHPMAILER_LANG['mailer_not_supported'] = ' mailer پشتیبانی نمی‌شود.'; -$PHPMAILER_LANG['provide_address'] = 'باید حداقل یک آدرس گیرنده وارد کنید.'; -$PHPMAILER_LANG['recipients_failed'] = 'خطای SMTP: ارسال به آدرس گیرنده با خطا مواجه شد: '; -$PHPMAILER_LANG['signing'] = 'خطا در امضا: '; -$PHPMAILER_LANG['smtp_connect_failed'] = 'خطا در اتصال به SMTP.'; -$PHPMAILER_LANG['smtp_error'] = 'خطا در SMTP Server: '; -$PHPMAILER_LANG['variable_set'] = 'امکان ارسال یا ارسال مجدد متغیر‌ها وجود ندارد: '; -//$PHPMAILER_LANG['extension_missing'] = 'Extension missing: '; diff --git a/PHPMailer/language/phpmailer.lang-fi.php b/PHPMailer/language/phpmailer.lang-fi.php deleted file mode 100644 index 739c235..0000000 --- a/PHPMailer/language/phpmailer.lang-fi.php +++ /dev/null @@ -1,27 +0,0 @@ - - */ - -$PHPMAILER_LANG['authenticate'] = 'SMTP feilur: Kundi ikki góðkenna.'; -$PHPMAILER_LANG['connect_host'] = 'SMTP feilur: Kundi ikki knýta samband við SMTP vert.'; -$PHPMAILER_LANG['data_not_accepted'] = 'SMTP feilur: Data ikki góðkent.'; -//$PHPMAILER_LANG['empty_message'] = 'Message body empty'; -$PHPMAILER_LANG['encoding'] = 'Ókend encoding: '; -$PHPMAILER_LANG['execute'] = 'Kundi ikki útføra: '; -$PHPMAILER_LANG['file_access'] = 'Kundi ikki tilganga fílu: '; -$PHPMAILER_LANG['file_open'] = 'Fílu feilur: Kundi ikki opna fílu: '; -$PHPMAILER_LANG['from_failed'] = 'fylgjandi Frá/From adressa miseydnaðist: '; -$PHPMAILER_LANG['instantiate'] = 'Kuni ikki instantiera mail funktión.'; -//$PHPMAILER_LANG['invalid_address'] = 'Not sending, email address is invalid: '; -$PHPMAILER_LANG['mailer_not_supported'] = ' er ikki supporterað.'; -$PHPMAILER_LANG['provide_address'] = 'Tú skal uppgeva minst móttakara-emailadressu(r).'; -$PHPMAILER_LANG['recipients_failed'] = 'SMTP Feilur: Fylgjandi móttakarar miseydnaðust: '; -//$PHPMAILER_LANG['signing'] = 'Signing Error: '; -//$PHPMAILER_LANG['smtp_connect_failed'] = 'SMTP Connect() failed.'; -//$PHPMAILER_LANG['smtp_error'] = 'SMTP server error: '; -//$PHPMAILER_LANG['variable_set'] = 'Cannot set or reset variable: '; -//$PHPMAILER_LANG['extension_missing'] = 'Extension missing: '; diff --git a/PHPMailer/language/phpmailer.lang-fr.php b/PHPMailer/language/phpmailer.lang-fr.php deleted file mode 100644 index 78a66ae..0000000 --- a/PHPMailer/language/phpmailer.lang-fr.php +++ /dev/null @@ -1,29 +0,0 @@ - - */ - -$PHPMAILER_LANG['authenticate'] = 'Erro SMTP: Non puido ser autentificado.'; -$PHPMAILER_LANG['connect_host'] = 'Erro SMTP: Non puido conectar co servidor SMTP.'; -$PHPMAILER_LANG['data_not_accepted'] = 'Erro SMTP: Datos non aceptados.'; -$PHPMAILER_LANG['empty_message'] = 'Corpo da mensaxe vacía'; -$PHPMAILER_LANG['encoding'] = 'Codificación descoñecida: '; -$PHPMAILER_LANG['execute'] = 'Non puido ser executado: '; -$PHPMAILER_LANG['file_access'] = 'Nob puido acceder ó arquivo: '; -$PHPMAILER_LANG['file_open'] = 'Erro de Arquivo: No puido abrir o arquivo: '; -$PHPMAILER_LANG['from_failed'] = 'A(s) seguinte(s) dirección(s) de remitente(s) deron erro: '; -$PHPMAILER_LANG['instantiate'] = 'Non puido crear unha instancia da función Mail.'; -$PHPMAILER_LANG['invalid_address'] = 'Non puido envia-lo correo: dirección de email inválida: '; -$PHPMAILER_LANG['mailer_not_supported'] = ' mailer non está soportado.'; -$PHPMAILER_LANG['provide_address'] = 'Debe engadir polo menos unha dirección de email coma destino.'; -$PHPMAILER_LANG['recipients_failed'] = 'Erro SMTP: Os seguintes destinos fallaron: '; -$PHPMAILER_LANG['signing'] = 'Erro ó firmar: '; -$PHPMAILER_LANG['smtp_connect_failed'] = 'SMTP Connect() fallou.'; -$PHPMAILER_LANG['smtp_error'] = 'Erro do servidor SMTP: '; -$PHPMAILER_LANG['variable_set'] = 'Non puidemos axustar ou reaxustar a variábel: '; -//$PHPMAILER_LANG['extension_missing'] = 'Extension missing: '; -//$PHPMAILER_LANG['extension_missing'] = 'Extension missing: '; diff --git a/PHPMailer/language/phpmailer.lang-he.php b/PHPMailer/language/phpmailer.lang-he.php deleted file mode 100644 index 857f723..0000000 --- a/PHPMailer/language/phpmailer.lang-he.php +++ /dev/null @@ -1,25 +0,0 @@ - - */ - -$PHPMAILER_LANG['authenticate'] = 'שגיאת SMTP: פעולת האימות נכשלה.'; -$PHPMAILER_LANG['connect_host'] = 'שגיאת SMTP: לא הצלחתי להתחבר לשרת SMTP.'; -$PHPMAILER_LANG['data_not_accepted'] = 'שגיאת SMTP: מידע לא התקבל.'; -$PHPMAILER_LANG['empty_message'] = 'גוף ההודעה ריק'; -$PHPMAILER_LANG['invalid_address'] = 'כתובת שגויה'; -$PHPMAILER_LANG['encoding'] = 'קידוד לא מוכר: '; -$PHPMAILER_LANG['execute'] = 'לא הצלחתי להפעיל את: '; -$PHPMAILER_LANG['file_access'] = 'לא ניתן לגשת לקובץ: '; -$PHPMAILER_LANG['file_open'] = 'שגיאת קובץ: לא ניתן לגשת לקובץ: '; -$PHPMAILER_LANG['from_failed'] = 'כתובות הנמענים הבאות נכשלו: '; -$PHPMAILER_LANG['instantiate'] = 'לא הצלחתי להפעיל את פונקציית המייל.'; -$PHPMAILER_LANG['mailer_not_supported'] = ' אינה נתמכת.'; -$PHPMAILER_LANG['provide_address'] = 'חובה לספק לפחות כתובת אחת של מקבל המייל.'; -$PHPMAILER_LANG['recipients_failed'] = 'שגיאת SMTP: הנמענים הבאים נכשלו: '; -$PHPMAILER_LANG['signing'] = 'שגיאת חתימה: '; -$PHPMAILER_LANG['smtp_connect_failed'] = 'SMTP Connect() failed.'; -$PHPMAILER_LANG['smtp_error'] = 'שגיאת שרת SMTP: '; -$PHPMAILER_LANG['variable_set'] = 'לא ניתן לקבוע או לשנות את המשתנה: '; diff --git a/PHPMailer/language/phpmailer.lang-hr.php b/PHPMailer/language/phpmailer.lang-hr.php deleted file mode 100644 index 55ed6a0..0000000 --- a/PHPMailer/language/phpmailer.lang-hr.php +++ /dev/null @@ -1,26 +0,0 @@ - - */ - -$PHPMAILER_LANG['authenticate'] = 'SMTP Greška: Neuspjela autentikacija.'; -$PHPMAILER_LANG['connect_host'] = 'SMTP Greška: Ne mogu se spojiti na SMTP poslužitelj.'; -$PHPMAILER_LANG['data_not_accepted'] = 'SMTP Greška: Podatci nisu prihvaćeni.'; -$PHPMAILER_LANG['empty_message'] = 'Sadržaj poruke je prazan.'; -$PHPMAILER_LANG['encoding'] = 'Nepoznati encoding: '; -$PHPMAILER_LANG['execute'] = 'Nije moguće izvršiti naredbu: '; -$PHPMAILER_LANG['file_access'] = 'Nije moguće pristupiti datoteci: '; -$PHPMAILER_LANG['file_open'] = 'Nije moguće otvoriti datoteku: '; -$PHPMAILER_LANG['from_failed'] = 'SMTP Greška: Slanje s navedenih e-mail adresa nije uspjelo: '; -$PHPMAILER_LANG['recipients_failed'] = 'SMTP Greška: Slanje na navedenih e-mail adresa nije uspjelo: '; -$PHPMAILER_LANG['instantiate'] = 'Ne mogu pokrenuti mail funkcionalnost.'; -$PHPMAILER_LANG['invalid_address'] = 'E-mail nije poslan. Neispravna e-mail adresa.'; -$PHPMAILER_LANG['mailer_not_supported'] = ' mailer nije podržan.'; -$PHPMAILER_LANG['provide_address'] = 'Definirajte barem jednu adresu primatelja.'; -$PHPMAILER_LANG['signing'] = 'Greška prilikom prijave: '; -$PHPMAILER_LANG['smtp_connect_failed'] = 'Spajanje na SMTP poslužitelj nije uspjelo.'; -$PHPMAILER_LANG['smtp_error'] = 'Greška SMTP poslužitelja: '; -$PHPMAILER_LANG['variable_set'] = 'Ne mogu postaviti varijablu niti ju vratiti nazad: '; -//$PHPMAILER_LANG['extension_missing'] = 'Extension missing: '; diff --git a/PHPMailer/language/phpmailer.lang-hu.php b/PHPMailer/language/phpmailer.lang-hu.php deleted file mode 100644 index d7ca888..0000000 --- a/PHPMailer/language/phpmailer.lang-hu.php +++ /dev/null @@ -1,26 +0,0 @@ - - */ - -$PHPMAILER_LANG['authenticate'] = 'Kesalahan SMTP: Tidak dapat mengautentikasi.'; -$PHPMAILER_LANG['connect_host'] = 'Kesalahan SMTP: Tidak dapat terhubung ke host SMTP.'; -$PHPMAILER_LANG['data_not_accepted'] = 'Kesalahan SMTP: Data tidak diterima peladen.'; -$PHPMAILER_LANG['empty_message'] = 'Isi pesan kosong'; -$PHPMAILER_LANG['encoding'] = 'Pengkodean karakter tidak dikenali: '; -$PHPMAILER_LANG['execute'] = 'Tidak dapat menjalankan proses : '; -$PHPMAILER_LANG['file_access'] = 'Tidak dapat mengakses berkas : '; -$PHPMAILER_LANG['file_open'] = 'Kesalahan File: Berkas tidak bisa dibuka : '; -$PHPMAILER_LANG['from_failed'] = 'Alamat pengirim berikut mengakibatkan error : '; -$PHPMAILER_LANG['instantiate'] = 'Tidak dapat menginisialisasi fungsi email'; -$PHPMAILER_LANG['invalid_address'] = 'Gagal terkirim, alamat email tidak valid : '; -$PHPMAILER_LANG['provide_address'] = 'Harus disediakan minimal satu alamat tujuan'; -$PHPMAILER_LANG['mailer_not_supported'] = 'Mailer tidak didukung'; -$PHPMAILER_LANG['recipients_failed'] = 'Kesalahan SMTP: Alamat tujuan berikut menghasilkan error : '; -$PHPMAILER_LANG['signing'] = 'Kesalahan dalam tanda tangan : '; -$PHPMAILER_LANG['smtp_connect_failed'] = 'SMTP Connect() gagal.'; -$PHPMAILER_LANG['smtp_error'] = 'Kesalahan peladen SMTP : '; -$PHPMAILER_LANG['variable_set'] = 'Tidak berhasil mengatur atau mengatur ulang variable : '; -//$PHPMAILER_LANG['extension_missing'] = 'Extension missing: '; diff --git a/PHPMailer/language/phpmailer.lang-it.php b/PHPMailer/language/phpmailer.lang-it.php deleted file mode 100644 index d2f4643..0000000 --- a/PHPMailer/language/phpmailer.lang-it.php +++ /dev/null @@ -1,27 +0,0 @@ - - * @author Stefano Sabatini - */ - -$PHPMAILER_LANG['authenticate'] = 'SMTP Error: Impossibile autenticarsi.'; -$PHPMAILER_LANG['connect_host'] = 'SMTP Error: Impossibile connettersi all\'host SMTP.'; -$PHPMAILER_LANG['data_not_accepted'] = 'SMTP Error: Dati non accettati dal server.'; -$PHPMAILER_LANG['empty_message'] = 'Il corpo del messaggio è vuoto'; -$PHPMAILER_LANG['encoding'] = 'Codifica dei caratteri sconosciuta: '; -$PHPMAILER_LANG['execute'] = 'Impossibile eseguire l\'operazione: '; -$PHPMAILER_LANG['file_access'] = 'Impossibile accedere al file: '; -$PHPMAILER_LANG['file_open'] = 'File Error: Impossibile aprire il file: '; -$PHPMAILER_LANG['from_failed'] = 'I seguenti indirizzi mittenti hanno generato errore: '; -$PHPMAILER_LANG['instantiate'] = 'Impossibile istanziare la funzione mail'; -$PHPMAILER_LANG['invalid_address'] = 'Impossibile inviare, l\'indirizzo email non è valido: '; -$PHPMAILER_LANG['provide_address'] = 'Deve essere fornito almeno un indirizzo ricevente'; -$PHPMAILER_LANG['mailer_not_supported'] = 'Mailer non supportato'; -$PHPMAILER_LANG['recipients_failed'] = 'SMTP Error: I seguenti indirizzi destinatari hanno generato un errore: '; -$PHPMAILER_LANG['signing'] = 'Errore nella firma: '; -$PHPMAILER_LANG['smtp_connect_failed'] = 'SMTP Connect() fallita.'; -$PHPMAILER_LANG['smtp_error'] = 'Errore del server SMTP: '; -$PHPMAILER_LANG['variable_set'] = 'Impossibile impostare o resettare la variabile: '; -//$PHPMAILER_LANG['extension_missing'] = 'Extension missing: '; diff --git a/PHPMailer/language/phpmailer.lang-ja.php b/PHPMailer/language/phpmailer.lang-ja.php deleted file mode 100644 index 29f8662..0000000 --- a/PHPMailer/language/phpmailer.lang-ja.php +++ /dev/null @@ -1,27 +0,0 @@ - - * @author Yoshi Sakai - */ - -$PHPMAILER_LANG['authenticate'] = 'SMTPエラー: 認証できませんでした。'; -$PHPMAILER_LANG['connect_host'] = 'SMTPエラー: SMTPホストに接続できませんでした。'; -$PHPMAILER_LANG['data_not_accepted'] = 'SMTPエラー: データが受け付けられませんでした。'; -//$PHPMAILER_LANG['empty_message'] = 'Message body empty'; -$PHPMAILER_LANG['encoding'] = '不明なエンコーディング: '; -$PHPMAILER_LANG['execute'] = '実行できませんでした: '; -$PHPMAILER_LANG['file_access'] = 'ファイルにアクセスできません: '; -$PHPMAILER_LANG['file_open'] = 'ファイルエラー: ファイルを開けません: '; -$PHPMAILER_LANG['from_failed'] = 'Fromアドレスを登録する際にエラーが発生しました: '; -$PHPMAILER_LANG['instantiate'] = 'メール関数が正常に動作しませんでした。'; -//$PHPMAILER_LANG['invalid_address'] = 'Not sending, email address is invalid: '; -$PHPMAILER_LANG['provide_address'] = '少なくとも1つメールアドレスを 指定する必要があります。'; -$PHPMAILER_LANG['mailer_not_supported'] = ' メーラーがサポートされていません。'; -$PHPMAILER_LANG['recipients_failed'] = 'SMTPエラー: 次の受信者アドレスに 間違いがあります: '; -//$PHPMAILER_LANG['signing'] = 'Signing Error: '; -//$PHPMAILER_LANG['smtp_connect_failed'] = 'SMTP Connect() failed.'; -//$PHPMAILER_LANG['smtp_error'] = 'SMTP server error: '; -//$PHPMAILER_LANG['variable_set'] = 'Cannot set or reset variable: '; -//$PHPMAILER_LANG['extension_missing'] = 'Extension missing: '; diff --git a/PHPMailer/language/phpmailer.lang-ka.php b/PHPMailer/language/phpmailer.lang-ka.php deleted file mode 100644 index cdf3168..0000000 --- a/PHPMailer/language/phpmailer.lang-ka.php +++ /dev/null @@ -1,26 +0,0 @@ - - */ - -$PHPMAILER_LANG['authenticate'] = 'SMTP შეცდომა: ავტორიზაცია შეუძლებელია.'; -$PHPMAILER_LANG['connect_host'] = 'SMTP შეცდომა: SMTP სერვერთან დაკავშირება შეუძლებელია.'; -$PHPMAILER_LANG['data_not_accepted'] = 'SMTP შეცდომა: მონაცემები არ იქნა მიღებული.'; -$PHPMAILER_LANG['encoding'] = 'კოდირების უცნობი ტიპი: '; -$PHPMAILER_LANG['execute'] = 'შეუძლებელია შემდეგი ბრძანების შესრულება: '; -$PHPMAILER_LANG['file_access'] = 'შეუძლებელია წვდომა ფაილთან: '; -$PHPMAILER_LANG['file_open'] = 'ფაილური სისტემის შეცდომა: არ იხსნება ფაილი: '; -$PHPMAILER_LANG['from_failed'] = 'გამგზავნის არასწორი მისამართი: '; -$PHPMAILER_LANG['instantiate'] = 'mail ფუნქციის გაშვება ვერ ხერხდება.'; -$PHPMAILER_LANG['provide_address'] = 'გთხოვთ მიუთითოთ ერთი ადრესატის e-mail მისამართი მაინც.'; -$PHPMAILER_LANG['mailer_not_supported'] = ' - საფოსტო სერვერის მხარდაჭერა არ არის.'; -$PHPMAILER_LANG['recipients_failed'] = 'SMTP შეცდომა: შემდეგ მისამართებზე გაგზავნა ვერ მოხერხდა: '; -$PHPMAILER_LANG['empty_message'] = 'შეტყობინება ცარიელია'; -$PHPMAILER_LANG['invalid_address'] = 'არ გაიგზავნა, e-mail მისამართის არასწორი ფორმატი: '; -$PHPMAILER_LANG['signing'] = 'ხელმოწერის შეცდომა: '; -$PHPMAILER_LANG['smtp_connect_failed'] = 'შეცდომა SMTP სერვერთან დაკავშირებისას'; -$PHPMAILER_LANG['smtp_error'] = 'SMTP სერვერის შეცდომა: '; -$PHPMAILER_LANG['variable_set'] = 'შეუძლებელია შემდეგი ცვლადის შექმნა ან შეცვლა: '; -//$PHPMAILER_LANG['extension_missing'] = 'Extension missing: '; diff --git a/PHPMailer/language/phpmailer.lang-ko.php b/PHPMailer/language/phpmailer.lang-ko.php deleted file mode 100644 index 7283881..0000000 --- a/PHPMailer/language/phpmailer.lang-ko.php +++ /dev/null @@ -1,26 +0,0 @@ - - */ - -$PHPMAILER_LANG['authenticate'] = 'SMTP 오류: 인증할 수 없습니다.'; -$PHPMAILER_LANG['connect_host'] = 'SMTP 오류: SMTP 호스트에 접속할 수 없습니다.'; -$PHPMAILER_LANG['data_not_accepted'] = 'SMTP 오류: 데이터가 받아들여지지 않았습니다.'; -$PHPMAILER_LANG['empty_message'] = '메세지 내용이 없습니다'; -$PHPMAILER_LANG['encoding'] = '알 수 없는 인코딩: '; -$PHPMAILER_LANG['execute'] = '실행 불가: '; -$PHPMAILER_LANG['file_access'] = '파일 접근 불가: '; -$PHPMAILER_LANG['file_open'] = '파일 오류: 파일을 열 수 없습니다: '; -$PHPMAILER_LANG['from_failed'] = '다음 From 주소에서 오류가 발생했습니다: '; -$PHPMAILER_LANG['instantiate'] = 'mail 함수를 인스턴스화할 수 없습니다'; -$PHPMAILER_LANG['invalid_address'] = '잘못된 주소'; -$PHPMAILER_LANG['mailer_not_supported'] = ' 메일러는 지원되지 않습니다.'; -$PHPMAILER_LANG['provide_address'] = '적어도 한 개 이상의 수신자 메일 주소를 제공해야 합니다.'; -$PHPMAILER_LANG['recipients_failed'] = 'SMTP 오류: 다음 수신자에서 오류가 발생했습니다: '; -$PHPMAILER_LANG['signing'] = '서명 오류: '; -$PHPMAILER_LANG['smtp_connect_failed'] = 'SMTP 연결을 실패하였습니다.'; -$PHPMAILER_LANG['smtp_error'] = 'SMTP 서버 오류: '; -$PHPMAILER_LANG['variable_set'] = '변수 설정 및 초기화 불가: '; -$PHPMAILER_LANG['extension_missing'] = '확장자 없음: '; diff --git a/PHPMailer/language/phpmailer.lang-lt.php b/PHPMailer/language/phpmailer.lang-lt.php deleted file mode 100644 index 2726773..0000000 --- a/PHPMailer/language/phpmailer.lang-lt.php +++ /dev/null @@ -1,26 +0,0 @@ - - */ - -$PHPMAILER_LANG['authenticate'] = 'SMTP klaida: autentifikacija nepavyko.'; -$PHPMAILER_LANG['connect_host'] = 'SMTP klaida: nepavyksta prisijungti prie SMTP stoties.'; -$PHPMAILER_LANG['data_not_accepted'] = 'SMTP klaida: duomenys nepriimti.'; -$PHPMAILER_LANG['empty_message'] = 'Laiško turinys tuščias'; -$PHPMAILER_LANG['encoding'] = 'Neatpažinta koduotė: '; -$PHPMAILER_LANG['execute'] = 'Nepavyko įvykdyti komandos: '; -$PHPMAILER_LANG['file_access'] = 'Byla nepasiekiama: '; -$PHPMAILER_LANG['file_open'] = 'Bylos klaida: Nepavyksta atidaryti: '; -$PHPMAILER_LANG['from_failed'] = 'Neteisingas siuntėjo adresas: '; -$PHPMAILER_LANG['instantiate'] = 'Nepavyko paleisti mail funkcijos.'; -$PHPMAILER_LANG['invalid_address'] = 'Neteisingas adresas'; -$PHPMAILER_LANG['mailer_not_supported'] = ' pašto stotis nepalaikoma.'; -$PHPMAILER_LANG['provide_address'] = 'Nurodykite bent vieną gavėjo adresą.'; -$PHPMAILER_LANG['recipients_failed'] = 'SMTP klaida: nepavyko išsiųsti šiems gavėjams: '; -$PHPMAILER_LANG['signing'] = 'Prisijungimo klaida: '; -$PHPMAILER_LANG['smtp_connect_failed'] = 'SMTP susijungimo klaida'; -$PHPMAILER_LANG['smtp_error'] = 'SMTP stoties klaida: '; -$PHPMAILER_LANG['variable_set'] = 'Nepavyko priskirti reikšmės kintamajam: '; -//$PHPMAILER_LANG['extension_missing'] = 'Extension missing: '; diff --git a/PHPMailer/language/phpmailer.lang-lv.php b/PHPMailer/language/phpmailer.lang-lv.php deleted file mode 100644 index b2ab55f..0000000 --- a/PHPMailer/language/phpmailer.lang-lv.php +++ /dev/null @@ -1,26 +0,0 @@ - - */ - -$PHPMAILER_LANG['authenticate'] = 'SMTP kļūda: Autorizācija neizdevās.'; -$PHPMAILER_LANG['connect_host'] = 'SMTP Kļūda: Nevar izveidot savienojumu ar SMTP serveri.'; -$PHPMAILER_LANG['data_not_accepted'] = 'SMTP Kļūda: Nepieņem informāciju.'; -$PHPMAILER_LANG['empty_message'] = 'Ziņojuma teksts ir tukšs'; -$PHPMAILER_LANG['encoding'] = 'Neatpazīts kodējums: '; -$PHPMAILER_LANG['execute'] = 'Neizdevās izpildīt komandu: '; -$PHPMAILER_LANG['file_access'] = 'Fails nav pieejams: '; -$PHPMAILER_LANG['file_open'] = 'Faila kļūda: Nevar atvērt failu: '; -$PHPMAILER_LANG['from_failed'] = 'Nepareiza sūtītāja adrese: '; -$PHPMAILER_LANG['instantiate'] = 'Nevar palaist sūtīšanas funkciju.'; -$PHPMAILER_LANG['invalid_address'] = 'Nepareiza adrese'; -$PHPMAILER_LANG['mailer_not_supported'] = ' sūtītājs netiek atbalstīts.'; -$PHPMAILER_LANG['provide_address'] = 'Lūdzu, norādiet vismaz vienu adresātu.'; -$PHPMAILER_LANG['recipients_failed'] = 'SMTP kļūda: neizdevās nosūtīt šādiem saņēmējiem: '; -$PHPMAILER_LANG['signing'] = 'Autorizācijas kļūda: '; -$PHPMAILER_LANG['smtp_connect_failed'] = 'SMTP savienojuma kļūda'; -$PHPMAILER_LANG['smtp_error'] = 'SMTP servera kļūda: '; -$PHPMAILER_LANG['variable_set'] = 'Nevar piešķirt mainīgā vērtību: '; -//$PHPMAILER_LANG['extension_missing'] = 'Extension missing: '; diff --git a/PHPMailer/language/phpmailer.lang-ms.php b/PHPMailer/language/phpmailer.lang-ms.php deleted file mode 100644 index 11d3daa..0000000 --- a/PHPMailer/language/phpmailer.lang-ms.php +++ /dev/null @@ -1,26 +0,0 @@ - - */ - -$PHPMAILER_LANG['authenticate'] = 'Ralat SMTP: Tidak dapat pengesahan.'; -$PHPMAILER_LANG['connect_host'] = 'Ralat SMTP: Tidak dapat menghubungi hos pelayan SMTP.'; -$PHPMAILER_LANG['data_not_accepted'] = 'Ralat SMTP: Data tidak diterima oleh pelayan.'; -$PHPMAILER_LANG['empty_message'] = 'Tiada isi untuk mesej'; -$PHPMAILER_LANG['encoding'] = 'Pengekodan tidak diketahui: '; -$PHPMAILER_LANG['execute'] = 'Tidak dapat melaksanakan: '; -$PHPMAILER_LANG['file_access'] = 'Tidak dapat mengakses fail: '; -$PHPMAILER_LANG['file_open'] = 'Ralat Fail: Tidak dapat membuka fail: '; -$PHPMAILER_LANG['from_failed'] = 'Berikut merupakan ralat dari alamat e-mel: '; -$PHPMAILER_LANG['instantiate'] = 'Tidak dapat memberi contoh fungsi e-mel.'; -$PHPMAILER_LANG['invalid_address'] = 'Alamat emel tidak sah'; -$PHPMAILER_LANG['mailer_not_supported'] = ' jenis penghantar emel tidak disokong.'; -$PHPMAILER_LANG['provide_address'] = 'Anda perlu menyediakan sekurang-kurangnya satu alamat e-mel penerima.'; -$PHPMAILER_LANG['recipients_failed'] = 'Ralat SMTP: Penerima e-mel berikut telah gagal: '; -$PHPMAILER_LANG['signing'] = 'Ralat pada tanda tangan: '; -$PHPMAILER_LANG['smtp_connect_failed'] = 'SMTP Connect() telah gagal.'; -$PHPMAILER_LANG['smtp_error'] = 'Ralat pada pelayan SMTP: '; -$PHPMAILER_LANG['variable_set'] = 'Tidak boleh menetapkan atau menetapkan semula pembolehubah: '; -//$PHPMAILER_LANG['extension_missing'] = 'Extension missing: '; diff --git a/PHPMailer/language/phpmailer.lang-nl.php b/PHPMailer/language/phpmailer.lang-nl.php deleted file mode 100644 index 54a8f9a..0000000 --- a/PHPMailer/language/phpmailer.lang-nl.php +++ /dev/null @@ -1,26 +0,0 @@ - - */ - -$PHPMAILER_LANG['authenticate'] = 'SMTP-fout: authenticatie mislukt.'; -$PHPMAILER_LANG['connect_host'] = 'SMTP-fout: kon niet verbinden met SMTP-host.'; -$PHPMAILER_LANG['data_not_accepted'] = 'SMTP-fout: data niet geaccepteerd.'; -$PHPMAILER_LANG['empty_message'] = 'Berichttekst is leeg'; -$PHPMAILER_LANG['encoding'] = 'Onbekende codering: '; -$PHPMAILER_LANG['execute'] = 'Kon niet uitvoeren: '; -$PHPMAILER_LANG['file_access'] = 'Kreeg geen toegang tot bestand: '; -$PHPMAILER_LANG['file_open'] = 'Bestandsfout: kon bestand niet openen: '; -$PHPMAILER_LANG['from_failed'] = 'Het volgende afzendersadres is mislukt: '; -$PHPMAILER_LANG['instantiate'] = 'Kon mailfunctie niet initialiseren.'; -$PHPMAILER_LANG['invalid_address'] = 'Ongeldig adres'; -$PHPMAILER_LANG['mailer_not_supported'] = ' mailer wordt niet ondersteund.'; -$PHPMAILER_LANG['provide_address'] = 'Er moet minstens één ontvanger worden opgegeven.'; -$PHPMAILER_LANG['recipients_failed'] = 'SMTP-fout: de volgende ontvangers zijn mislukt: '; -$PHPMAILER_LANG['signing'] = 'Signeerfout: '; -$PHPMAILER_LANG['smtp_connect_failed'] = 'SMTP Verbinding mislukt.'; -$PHPMAILER_LANG['smtp_error'] = 'SMTP-serverfout: '; -$PHPMAILER_LANG['variable_set'] = 'Kan de volgende variabele niet instellen of resetten: '; -//$PHPMAILER_LANG['extension_missing'] = 'Extension missing: '; diff --git a/PHPMailer/language/phpmailer.lang-no.php b/PHPMailer/language/phpmailer.lang-no.php deleted file mode 100644 index 383dd51..0000000 --- a/PHPMailer/language/phpmailer.lang-no.php +++ /dev/null @@ -1,25 +0,0 @@ - - */ - -$PHPMAILER_LANG['authenticate'] = 'Erro do SMTP: Não foi possível realizar a autenticação.'; -$PHPMAILER_LANG['connect_host'] = 'Erro do SMTP: Não foi possível realizar ligação com o servidor SMTP.'; -$PHPMAILER_LANG['data_not_accepted'] = 'Erro do SMTP: Os dados foram rejeitados.'; -$PHPMAILER_LANG['empty_message'] = 'A mensagem no e-mail está vazia.'; -$PHPMAILER_LANG['encoding'] = 'Codificação desconhecida: '; -$PHPMAILER_LANG['execute'] = 'Não foi possível executar: '; -$PHPMAILER_LANG['file_access'] = 'Não foi possível aceder o ficheiro: '; -$PHPMAILER_LANG['file_open'] = 'Abertura do ficheiro: Não foi possível abrir o ficheiro: '; -$PHPMAILER_LANG['from_failed'] = 'Ocorreram falhas nos endereços dos seguintes remententes: '; -$PHPMAILER_LANG['instantiate'] = 'Não foi possível iniciar uma instância da função mail.'; -$PHPMAILER_LANG['invalid_address'] = 'Não foi enviado nenhum e-mail para o endereço de e-mail inválido: '; -$PHPMAILER_LANG['mailer_not_supported'] = ' mailer não é suportado.'; -$PHPMAILER_LANG['provide_address'] = 'Tem de fornecer pelo menos um endereço como destinatário do e-mail.'; -$PHPMAILER_LANG['recipients_failed'] = 'Erro do SMTP: O endereço do seguinte destinatário falhou: '; -$PHPMAILER_LANG['signing'] = 'Erro ao assinar: '; -$PHPMAILER_LANG['smtp_connect_failed'] = 'SMTP Connect() falhou.'; -$PHPMAILER_LANG['smtp_error'] = 'Erro de servidor SMTP: '; -$PHPMAILER_LANG['variable_set'] = 'Não foi possível definir ou redefinir a variável: '; -//$PHPMAILER_LANG['extension_missing'] = 'Extension missing: '; diff --git a/PHPMailer/language/phpmailer.lang-ro.php b/PHPMailer/language/phpmailer.lang-ro.php deleted file mode 100644 index e8a56fa..0000000 --- a/PHPMailer/language/phpmailer.lang-ro.php +++ /dev/null @@ -1,26 +0,0 @@ - - */ - -$PHPMAILER_LANG['authenticate'] = 'Eroare SMTP: Nu a functionat autentificarea.'; -$PHPMAILER_LANG['connect_host'] = 'Eroare SMTP: Nu m-am putut conecta la adresa SMTP.'; -$PHPMAILER_LANG['data_not_accepted'] = 'Eroare SMTP: Continutul mailului nu a fost acceptat.'; -$PHPMAILER_LANG['empty_message'] = 'Mesajul este gol.'; -$PHPMAILER_LANG['encoding'] = 'Encodare necunoscuta: '; -$PHPMAILER_LANG['execute'] = 'Nu pot executa: '; -$PHPMAILER_LANG['file_access'] = 'Nu pot accesa fisierul: '; -$PHPMAILER_LANG['file_open'] = 'Eroare de fisier: Nu pot deschide fisierul: '; -$PHPMAILER_LANG['from_failed'] = 'Urmatoarele adrese From au dat eroare: '; -$PHPMAILER_LANG['instantiate'] = 'Nu am putut instantia functia mail.'; -$PHPMAILER_LANG['invalid_address'] = 'Adresa de email nu este valida. '; -$PHPMAILER_LANG['mailer_not_supported'] = ' mailer nu este suportat.'; -$PHPMAILER_LANG['provide_address'] = 'Trebuie sa adaugati cel putin un recipient (adresa de mail).'; -$PHPMAILER_LANG['recipients_failed'] = 'Eroare SMTP: Urmatoarele adrese de mail au dat eroare: '; -$PHPMAILER_LANG['signing'] = 'A aparut o problema la semnarea emailului. '; -$PHPMAILER_LANG['smtp_connect_failed'] = 'Conectarea la serverul SMTP a esuat.'; -$PHPMAILER_LANG['smtp_error'] = 'A aparut o eroare la serverul SMTP. '; -$PHPMAILER_LANG['variable_set'] = 'Nu se poate seta/reseta variabila. '; -//$PHPMAILER_LANG['extension_missing'] = 'Extension missing: '; diff --git a/PHPMailer/language/phpmailer.lang-ru.php b/PHPMailer/language/phpmailer.lang-ru.php deleted file mode 100644 index e6e4496..0000000 --- a/PHPMailer/language/phpmailer.lang-ru.php +++ /dev/null @@ -1,26 +0,0 @@ - - */ - -$PHPMAILER_LANG['authenticate'] = 'Ошибка SMTP: ошибка авторизации.'; -$PHPMAILER_LANG['connect_host'] = 'Ошибка SMTP: не удается подключиться к серверу SMTP.'; -$PHPMAILER_LANG['data_not_accepted'] = 'Ошибка SMTP: данные не приняты.'; -$PHPMAILER_LANG['encoding'] = 'Неизвестный вид кодировки: '; -$PHPMAILER_LANG['execute'] = 'Невозможно выполнить команду: '; -$PHPMAILER_LANG['file_access'] = 'Нет доступа к файлу: '; -$PHPMAILER_LANG['file_open'] = 'Файловая ошибка: не удается открыть файл: '; -$PHPMAILER_LANG['from_failed'] = 'Неверный адрес отправителя: '; -$PHPMAILER_LANG['instantiate'] = 'Невозможно запустить функцию mail.'; -$PHPMAILER_LANG['provide_address'] = 'Пожалуйста, введите хотя бы один адрес e-mail получателя.'; -$PHPMAILER_LANG['mailer_not_supported'] = ' - почтовый сервер не поддерживается.'; -$PHPMAILER_LANG['recipients_failed'] = 'Ошибка SMTP: отправка по следующим адресам получателей не удалась: '; -$PHPMAILER_LANG['empty_message'] = 'Пустое тело сообщения'; -$PHPMAILER_LANG['invalid_address'] = 'Не отослано, неправильный формат email адреса: '; -$PHPMAILER_LANG['signing'] = 'Ошибка подписывания: '; -$PHPMAILER_LANG['smtp_connect_failed'] = 'Ошибка соединения с SMTP-сервером'; -$PHPMAILER_LANG['smtp_error'] = 'Ошибка SMTP-сервера: '; -$PHPMAILER_LANG['variable_set'] = 'Невозможно установить или переустановить переменную: '; -//$PHPMAILER_LANG['extension_missing'] = 'Extension missing: '; diff --git a/PHPMailer/language/phpmailer.lang-se.php b/PHPMailer/language/phpmailer.lang-se.php deleted file mode 100644 index c71cb51..0000000 --- a/PHPMailer/language/phpmailer.lang-se.php +++ /dev/null @@ -1,26 +0,0 @@ - - */ - -$PHPMAILER_LANG['authenticate'] = 'SMTP fel: Kunde inte autentisera.'; -$PHPMAILER_LANG['connect_host'] = 'SMTP fel: Kunde inte ansluta till SMTP-server.'; -$PHPMAILER_LANG['data_not_accepted'] = 'SMTP fel: Data accepterades inte.'; -//$PHPMAILER_LANG['empty_message'] = 'Message body empty'; -$PHPMAILER_LANG['encoding'] = 'Okänt encode-format: '; -$PHPMAILER_LANG['execute'] = 'Kunde inte köra: '; -$PHPMAILER_LANG['file_access'] = 'Ingen åtkomst till fil: '; -$PHPMAILER_LANG['file_open'] = 'Fil fel: Kunde inte öppna fil: '; -$PHPMAILER_LANG['from_failed'] = 'Följande avsändaradress är felaktig: '; -$PHPMAILER_LANG['instantiate'] = 'Kunde inte initiera e-postfunktion.'; -//$PHPMAILER_LANG['invalid_address'] = 'Not sending, email address is invalid: '; -$PHPMAILER_LANG['provide_address'] = 'Du måste ange minst en mottagares e-postadress.'; -$PHPMAILER_LANG['mailer_not_supported'] = ' mailer stöds inte.'; -$PHPMAILER_LANG['recipients_failed'] = 'SMTP fel: Följande mottagare är felaktig: '; -//$PHPMAILER_LANG['signing'] = 'Signing Error: '; -//$PHPMAILER_LANG['smtp_connect_failed'] = 'SMTP Connect() failed.'; -//$PHPMAILER_LANG['smtp_error'] = 'SMTP server error: '; -//$PHPMAILER_LANG['variable_set'] = 'Cannot set or reset variable: '; -//$PHPMAILER_LANG['extension_missing'] = 'Extension missing: '; diff --git a/PHPMailer/language/phpmailer.lang-sk.php b/PHPMailer/language/phpmailer.lang-sk.php deleted file mode 100644 index a38f4e5..0000000 --- a/PHPMailer/language/phpmailer.lang-sk.php +++ /dev/null @@ -1,26 +0,0 @@ - - */ - -$PHPMAILER_LANG['authenticate'] = 'SMTP Error: Chyba autentifikácie.'; -$PHPMAILER_LANG['connect_host'] = 'SMTP Error: Nebolo možné nadviazať spojenie so SMTP serverom.'; -$PHPMAILER_LANG['data_not_accepted'] = 'SMTP Error: Dáta neboli prijaté'; -$PHPMAILER_LANG['empty_message'] = 'Prázdne telo správy.'; -$PHPMAILER_LANG['encoding'] = 'Neznáme kódovanie: '; -$PHPMAILER_LANG['execute'] = 'Nedá sa vykonať: '; -$PHPMAILER_LANG['file_access'] = 'Súbor nebol nájdený: '; -$PHPMAILER_LANG['file_open'] = 'File Error: Súbor sa otvoriť pre čítanie: '; -$PHPMAILER_LANG['from_failed'] = 'Následujúca adresa From je nesprávna: '; -$PHPMAILER_LANG['instantiate'] = 'Nedá sa vytvoriť inštancia emailovej funkcie.'; -$PHPMAILER_LANG['invalid_address'] = 'Neodoslané, emailová adresa je nesprávna: '; -$PHPMAILER_LANG['mailer_not_supported'] = ' emailový klient nieje podporovaný.'; -$PHPMAILER_LANG['provide_address'] = 'Musíte zadať aspoň jednu emailovú adresu príjemcu.'; -$PHPMAILER_LANG['recipients_failed'] = 'SMTP Error: Adresy príjemcov niesu správne '; -$PHPMAILER_LANG['signing'] = 'Chyba prihlasovania: '; -$PHPMAILER_LANG['smtp_connect_failed'] = 'SMTP Connect() zlyhalo.'; -$PHPMAILER_LANG['smtp_error'] = 'SMTP chyba serveru: '; -$PHPMAILER_LANG['variable_set'] = 'Nemožno nastaviť alebo resetovať premennú: '; -//$PHPMAILER_LANG['extension_missing'] = 'Extension missing: '; diff --git a/PHPMailer/language/phpmailer.lang-sl.php b/PHPMailer/language/phpmailer.lang-sl.php deleted file mode 100644 index 14fa2a5..0000000 --- a/PHPMailer/language/phpmailer.lang-sl.php +++ /dev/null @@ -1,26 +0,0 @@ - - */ - -$PHPMAILER_LANG['authenticate'] = 'SMTP napaka: Avtentikacija ni uspela.'; -$PHPMAILER_LANG['connect_host'] = 'SMTP napaka: Ne morem vzpostaviti povezave s SMTP gostiteljem.'; -$PHPMAILER_LANG['data_not_accepted'] = 'SMTP napaka: Strežnik zavrača podatke.'; -$PHPMAILER_LANG['empty_message'] = 'E-poštno sporočilo nima vsebine.'; -$PHPMAILER_LANG['encoding'] = 'Nepoznan tip kodiranja: '; -$PHPMAILER_LANG['execute'] = 'Operacija ni uspela: '; -$PHPMAILER_LANG['file_access'] = 'Nimam dostopa do datoteke: '; -$PHPMAILER_LANG['file_open'] = 'Ne morem odpreti datoteke: '; -$PHPMAILER_LANG['from_failed'] = 'Neveljaven e-naslov pošiljatelja: '; -$PHPMAILER_LANG['instantiate'] = 'Ne morem inicializirati mail funkcije.'; -$PHPMAILER_LANG['invalid_address'] = 'E-poštno sporočilo ni bilo poslano. E-naslov je neveljaven.'; -$PHPMAILER_LANG['mailer_not_supported'] = ' mailer ni podprt.'; -$PHPMAILER_LANG['provide_address'] = 'Prosim vnesite vsaj enega naslovnika.'; -$PHPMAILER_LANG['recipients_failed'] = 'SMTP napaka: Sledeči naslovniki so neveljavni: '; -$PHPMAILER_LANG['signing'] = 'Napaka pri podpisovanju: '; -$PHPMAILER_LANG['smtp_connect_failed'] = 'Ne morem vzpostaviti povezave s SMTP strežnikom.'; -$PHPMAILER_LANG['smtp_error'] = 'Napaka SMTP strežnika: '; -$PHPMAILER_LANG['variable_set'] = 'Ne morem nastaviti oz. ponastaviti spremenljivke: '; -//$PHPMAILER_LANG['extension_missing'] = 'Extension missing: '; diff --git a/PHPMailer/language/phpmailer.lang-sr.php b/PHPMailer/language/phpmailer.lang-sr.php deleted file mode 100644 index 26360b2..0000000 --- a/PHPMailer/language/phpmailer.lang-sr.php +++ /dev/null @@ -1,26 +0,0 @@ - - */ - -$PHPMAILER_LANG['authenticate'] = 'SMTP грешка: аутентификација није успела.'; -$PHPMAILER_LANG['connect_host'] = 'SMTP грешка: није могуће повезивање са SMTP сервером.'; -$PHPMAILER_LANG['data_not_accepted'] = 'SMTP грешка: подаци нису прихваћени.'; -$PHPMAILER_LANG['empty_message'] = 'Садржај поруке је празан.'; -$PHPMAILER_LANG['encoding'] = 'Непознато кодовање: '; -$PHPMAILER_LANG['execute'] = 'Није могуће извршити наредбу: '; -$PHPMAILER_LANG['file_access'] = 'Није могуће приступити датотеци: '; -$PHPMAILER_LANG['file_open'] = 'Није могуће отворити датотеку: '; -$PHPMAILER_LANG['from_failed'] = 'SMTP грешка: слање са следећих адреса није успело: '; -$PHPMAILER_LANG['recipients_failed'] = 'SMTP грешка: слање на следеће адресе није успело: '; -$PHPMAILER_LANG['instantiate'] = 'Није могуће покренути mail функцију.'; -$PHPMAILER_LANG['invalid_address'] = 'Порука није послата због неисправне адресе.'; -$PHPMAILER_LANG['mailer_not_supported'] = ' мејлер није подржан.'; -$PHPMAILER_LANG['provide_address'] = 'Потребно је задати најмање једну адресу.'; -$PHPMAILER_LANG['signing'] = 'Грешка приликом пријављивања: '; -$PHPMAILER_LANG['smtp_connect_failed'] = 'Повезивање са SMTP сервером није успело.'; -$PHPMAILER_LANG['smtp_error'] = 'Грешка SMTP сервера: '; -$PHPMAILER_LANG['variable_set'] = 'Није могуће задати променљиву, нити је вратити уназад: '; -//$PHPMAILER_LANG['extension_missing'] = 'Extension missing: '; diff --git a/PHPMailer/language/phpmailer.lang-tr.php b/PHPMailer/language/phpmailer.lang-tr.php deleted file mode 100644 index 323fb4b..0000000 --- a/PHPMailer/language/phpmailer.lang-tr.php +++ /dev/null @@ -1,29 +0,0 @@ - - */ - -$PHPMAILER_LANG['authenticate'] = 'Помилка SMTP: помилка авторизації.'; -$PHPMAILER_LANG['connect_host'] = 'Помилка SMTP: не вдається підєднатися до серверу SMTP.'; -$PHPMAILER_LANG['data_not_accepted'] = 'Помилка SMTP: дані не прийняті.'; -$PHPMAILER_LANG['encoding'] = 'Невідомий тип кодування: '; -$PHPMAILER_LANG['execute'] = 'Неможливо виконати команду: '; -$PHPMAILER_LANG['file_access'] = 'Немає доступу до файлу: '; -$PHPMAILER_LANG['file_open'] = 'Помилка файлової системи: не вдається відкрити файл: '; -$PHPMAILER_LANG['from_failed'] = 'Невірна адреса відправника: '; -$PHPMAILER_LANG['instantiate'] = 'Неможливо запустити функцію mail.'; -$PHPMAILER_LANG['provide_address'] = 'Будь-ласка, введіть хоча б одну адресу e-mail отримувача.'; -$PHPMAILER_LANG['mailer_not_supported'] = ' - поштовий сервер не підтримується.'; -$PHPMAILER_LANG['recipients_failed'] = 'Помилка SMTP: відправти наступним отрмувачам не вдалася: '; -$PHPMAILER_LANG['empty_message'] = 'Пусте тіло повідомлення'; -$PHPMAILER_LANG['invalid_address'] = 'Не відправлено, невірний формат email адреси: '; -$PHPMAILER_LANG['signing'] = 'Помилка підпису: '; -$PHPMAILER_LANG['smtp_connect_failed'] = 'Помилка зєднання із SMTP-сервером'; -$PHPMAILER_LANG['smtp_error'] = 'Помилка SMTP-сервера: '; -$PHPMAILER_LANG['variable_set'] = 'Неможливо встановити або перевстановити змінну: '; -//$PHPMAILER_LANG['extension_missing'] = 'Extension missing: '; diff --git a/PHPMailer/language/phpmailer.lang-vi.php b/PHPMailer/language/phpmailer.lang-vi.php deleted file mode 100644 index 8a3ea71..0000000 --- a/PHPMailer/language/phpmailer.lang-vi.php +++ /dev/null @@ -1,26 +0,0 @@ - - */ - -$PHPMAILER_LANG['authenticate'] = 'Lỗi SMTP: Không thể xác thực.'; -$PHPMAILER_LANG['connect_host'] = 'Lỗi SMTP: Không thể kết nối máy chủ SMTP.'; -$PHPMAILER_LANG['data_not_accepted'] = 'Lỗi SMTP: Dữ liệu không được chấp nhận.'; -$PHPMAILER_LANG['empty_message'] = 'Không có nội dung'; -$PHPMAILER_LANG['encoding'] = 'Mã hóa không xác định: '; -$PHPMAILER_LANG['execute'] = 'Không thực hiện được: '; -$PHPMAILER_LANG['file_access'] = 'Không thể truy cập tệp tin '; -$PHPMAILER_LANG['file_open'] = 'Lỗi Tập tin: Không thể mở tệp tin: '; -$PHPMAILER_LANG['from_failed'] = 'Lỗi địa chỉ gửi đi: '; -$PHPMAILER_LANG['instantiate'] = 'Không dùng được các hàm gửi thư.'; -$PHPMAILER_LANG['invalid_address'] = 'Đại chỉ emai không đúng'; -$PHPMAILER_LANG['mailer_not_supported'] = ' trình gửi thư không được hỗ trợ.'; -$PHPMAILER_LANG['provide_address'] = 'Bạn phải cung cấp ít nhất một địa chỉ người nhận.'; -$PHPMAILER_LANG['recipients_failed'] = 'Lỗi SMTP: lỗi địa chỉ người nhận: '; -$PHPMAILER_LANG['signing'] = 'Lỗi đăng nhập: '; -$PHPMAILER_LANG['smtp_connect_failed'] = 'Lỗi kết nối với SMTP'; -$PHPMAILER_LANG['smtp_error'] = 'Lỗi máy chủ smtp '; -$PHPMAILER_LANG['variable_set'] = 'Không thể thiết lập hoặc thiết lập lại biến: '; -//$PHPMAILER_LANG['extension_missing'] = 'Extension missing: '; diff --git a/PHPMailer/language/phpmailer.lang-zh.php b/PHPMailer/language/phpmailer.lang-zh.php deleted file mode 100644 index 3e9e358..0000000 --- a/PHPMailer/language/phpmailer.lang-zh.php +++ /dev/null @@ -1,28 +0,0 @@ - - * @author Peter Dave Hello <@PeterDaveHello/> - * @author Jason Chiang - */ - -$PHPMAILER_LANG['authenticate'] = 'SMTP 錯誤:登入失敗。'; -$PHPMAILER_LANG['connect_host'] = 'SMTP 錯誤:無法連線到 SMTP 主機。'; -$PHPMAILER_LANG['data_not_accepted'] = 'SMTP 錯誤:無法接受的資料。'; -$PHPMAILER_LANG['empty_message'] = '郵件內容為空'; -$PHPMAILER_LANG['encoding'] = '未知編碼: '; -$PHPMAILER_LANG['execute'] = '無法執行:'; -$PHPMAILER_LANG['file_access'] = '無法存取檔案:'; -$PHPMAILER_LANG['file_open'] = '檔案錯誤:無法開啟檔案:'; -$PHPMAILER_LANG['from_failed'] = '發送地址錯誤:'; -$PHPMAILER_LANG['instantiate'] = '未知函數呼叫。'; -$PHPMAILER_LANG['invalid_address'] = '因為電子郵件地址無效,無法傳送: '; -$PHPMAILER_LANG['mailer_not_supported'] = '不支援的發信客戶端。'; -$PHPMAILER_LANG['provide_address'] = '必須提供至少一個收件人地址。'; -$PHPMAILER_LANG['recipients_failed'] = 'SMTP 錯誤:以下收件人地址錯誤:'; -$PHPMAILER_LANG['signing'] = '電子簽章錯誤: '; -$PHPMAILER_LANG['smtp_connect_failed'] = 'SMTP 連線失敗'; -$PHPMAILER_LANG['smtp_error'] = 'SMTP 伺服器錯誤: '; -$PHPMAILER_LANG['variable_set'] = '無法設定或重設變數: '; -$PHPMAILER_LANG['extension_missing'] = '遺失模組 Extension: '; diff --git a/PHPMailer/language/phpmailer.lang-zh_cn.php b/PHPMailer/language/phpmailer.lang-zh_cn.php deleted file mode 100644 index 1586dba..0000000 --- a/PHPMailer/language/phpmailer.lang-zh_cn.php +++ /dev/null @@ -1,27 +0,0 @@ - - * @author young - */ - -$PHPMAILER_LANG['authenticate'] = 'SMTP 错误:登录失败。'; -$PHPMAILER_LANG['connect_host'] = 'SMTP 错误:无法连接到 SMTP 主机。'; -$PHPMAILER_LANG['data_not_accepted'] = 'SMTP 错误:数据不被接受。'; -$PHPMAILER_LANG['empty_message'] = '邮件正文为空。'; -$PHPMAILER_LANG['encoding'] = '未知编码: '; -$PHPMAILER_LANG['execute'] = '无法执行:'; -$PHPMAILER_LANG['file_access'] = '无法访问文件:'; -$PHPMAILER_LANG['file_open'] = '文件错误:无法打开文件:'; -$PHPMAILER_LANG['from_failed'] = '发送地址错误:'; -$PHPMAILER_LANG['instantiate'] = '未知函数调用。'; -$PHPMAILER_LANG['invalid_address'] = '发送失败,电子邮箱地址是无效的。'; -$PHPMAILER_LANG['mailer_not_supported'] = '发信客户端不被支持。'; -$PHPMAILER_LANG['provide_address'] = '必须提供至少一个收件人地址。'; -$PHPMAILER_LANG['recipients_failed'] = 'SMTP 错误:收件人地址错误:'; -$PHPMAILER_LANG['signing'] = '登录失败:'; -$PHPMAILER_LANG['smtp_connect_failed'] = 'SMTP服务器连接失败。'; -$PHPMAILER_LANG['smtp_error'] = 'SMTP服务器出错: '; -$PHPMAILER_LANG['variable_set'] = '无法设置或重置变量:'; -//$PHPMAILER_LANG['extension_missing'] = 'Extension missing: '; diff --git a/Utils/BuildInPageCSS.class.php b/Utils/BuildInPageCSS.class.php index 3f37e0e..edc1ffa 100644 --- a/Utils/BuildInPageCSS.class.php +++ b/Utils/BuildInPageCSS.class.php @@ -1,9 +1,9 @@ get($cacheKey))) { - require_once _APP_DIR_ . 'Utils/PHPHtmlParser/Autoloader.php'; - require_once _APP_DIR_ . 'Utils/stringEncode/Autoloader.php'; $dom = new Dom(); $dom->loadStr($buffer, []); - $css_contents = file_get_contents(_APP_DIR_ . 'css/main.css'); + $css_contents = file_get_contents(_APP_DIR_ . 'cache/css/main.css'); $inpageCss = ''; - $oSettings = SabberwormCSS\Settings::create()->withMultibyteSupport(false); - $oCssParser = new SabberwormCSS\Parser($css_contents, $oSettings); + $oSettings = \Sabberworm\CSS\Settings::create()->withMultibyteSupport(false); + $oCssParser = new \Sabberworm\CSS\Parser($css_contents, $oSettings); $cssParsed = $oCssParser->parse(); foreach($cssParsed->getContents() as $oItem) { - if($oItem instanceof SabberwormCSS\CSSList\KeyFrame) continue; - if($oItem instanceof SabberwormCSS\RuleSet\AtRuleSet) continue; - if($oItem instanceof SabberwormCSS\RuleSet\DeclarationBlock) { + if($oItem instanceof \Sabberworm\CSS\CSSList\KeyFrame) continue; + if($oItem instanceof \Sabberworm\CSS\RuleSet\AtRuleSet) continue; + if($oItem instanceof \Sabberworm\CSS\RuleSet\DeclarationBlock) { $oBlock = $oItem; $selectors = array(); /** @var Selector $oSelector */ foreach($oBlock->getSelectors() as $oSelector) $selectors[] = $oSelector->getSelector(); - if(count($dom->find(implode(",", $selectors))) > 0) $inpageCss .= $oBlock->render(SabberwormCSS\OutputFormat::createCompact()); + if(count($dom->find(implode(",", $selectors))) > 0) $inpageCss .= $oBlock->render(\Sabberworm\CSS\OutputFormat::createCompact()); } - if($oItem instanceof SabberwormCSS\CSSList\AtRuleBlockList) { + if($oItem instanceof \Sabberworm\CSS\CSSList\AtRuleBlockList) { /** @var DeclarationBlock $oBlock */ foreach($oItem->getContents() as $oBlock) { $selectors = array(); foreach($oBlock->getSelectors() as $oSelector) $selectors[] = $oSelector->getSelector(); if(count($dom->find(implode(",", $selectors))) > 0) { - $inpageCss .= $oItem->render(SabberwormCSS\OutputFormat::createCompact()); + $inpageCss .= $oItem->render(\Sabberworm\CSS\OutputFormat::createCompact()); break; } } diff --git a/Utils/JShrink/Minifier.class.php b/Utils/JShrink/Minifier.class.php deleted file mode 100644 index baa4dbe..0000000 --- a/Utils/JShrink/Minifier.class.php +++ /dev/null @@ -1,587 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -/** - * JShrink - * - * - * @package JShrink - * @author Robert Hafner - */ - -namespace Utils\JShrink; - -/** - * Minifier - * - * Usage - Minifier::minify($js); - * Usage - Minifier::minify($js, $options); - * Usage - Minifier::minify($js, array('flaggedComments' => false)); - * - * @package JShrink - * @author Robert Hafner - * @license http://www.opensource.org/licenses/bsd-license.php BSD License - */ -class Minifier -{ - /** - * The input javascript to be minified. - * - * @var string - */ - protected $input; - - /** - * The location of the character (in the input string) that is next to be - * processed. - * - * @var int - */ - protected $index = 0; - - /** - * The first of the characters currently being looked at. - * - * @var string - */ - protected $a = ''; - - /** - * The next character being looked at (after a); - * - * @var string - */ - protected $b = ''; - - /** - * This character is only active when certain look ahead actions take place. - * - * @var string - */ - protected $c; - - /** - * Contains the options for the current minification process. - * - * @var array - */ - protected $options; - - /** - * Contains the default options for minification. This array is merged with - * the one passed in by the user to create the request specific set of - * options (stored in the $options attribute). - * - * @var array - */ - protected static $defaultOptions = array('flaggedComments' => true); - - /** - * Contains lock ids which are used to replace certain code patterns and - * prevent them from being minified - * - * @var array - */ - protected $locks = array(); - - /** - * Takes a string containing javascript and removes unneeded characters in - * order to shrink the code without altering it's functionality. - * - * @param string $js The raw javascript to be minified - * @param array $options Various runtime options in an associative array - * @throws \Exception - * @return bool|string - */ - public static function minify($js, $options = array()) - { - try { - ob_start(); - - $jshrink = new Minifier(); - $js = $jshrink->lock($js); - $jshrink->minifyDirectToOutput($js, $options); - - // Sometimes there's a leading new line, so we trim that out here. - $js = ltrim(ob_get_clean()); - $js = $jshrink->unlock($js); - unset($jshrink); - - return $js; - - } catch (\Exception $e) { - - if (isset($jshrink)) { - // Since the breakdownScript function probably wasn't finished - // we clean it out before discarding it. - $jshrink->clean(); - unset($jshrink); - } - - // without this call things get weird, with partially outputted js. - ob_end_clean(); - throw $e; - } - } - - /** - * Processes a javascript string and outputs only the required characters, - * stripping out all unneeded characters. - * - * @param string $js The raw javascript to be minified - * @param array $options Various runtime options in an associative array - */ - protected function minifyDirectToOutput($js, $options) - { - $this->initialize($js, $options); - $this->loop(); - $this->clean(); - } - - /** - * Initializes internal variables, normalizes new lines, - * - * @param string $js The raw javascript to be minified - * @param array $options Various runtime options in an associative array - */ - protected function initialize($js, $options) - { - $this->options = array_merge(static::$defaultOptions, $options); - $js = str_replace("\r\n", "\n", $js); - $js = str_replace('/**/', '', $js); - $this->input = str_replace("\r", "\n", $js); - - // We add a newline to the end of the script to make it easier to deal - // with comments at the bottom of the script- this prevents the unclosed - // comment error that can otherwise occur. - $this->input .= PHP_EOL; - - // Populate "a" with a new line, "b" with the first character, before - // entering the loop - $this->a = "\n"; - $this->b = $this->getReal(); - } - - /** - * The primary action occurs here. This function loops through the input string, - * outputting anything that's relevant and discarding anything that is not. - */ - protected function loop() - { - while ($this->a !== false && !is_null($this->a) && $this->a !== '') { - - switch ($this->a) { - // new lines - case "\n": - // if the next line is something that can't stand alone preserve the newline - if (strpos('(-+{[@', $this->b) !== false) { - echo $this->a; - $this->saveString(); - break; - } - - // if B is a space we skip the rest of the switch block and go down to the - // string/regex check below, resetting $this->b with getReal - if($this->b === ' ') - break; - - // otherwise we treat the newline like a space - - case ' ': - if(static::isAlphaNumeric($this->b)) - echo $this->a; - - $this->saveString(); - break; - - default: - switch ($this->b) { - case "\n": - if (strpos('}])+-"\'', $this->a) !== false) { - echo $this->a; - $this->saveString(); - break; - } else { - if (static::isAlphaNumeric($this->a)) { - echo $this->a; - $this->saveString(); - } - } - break; - - case ' ': - if(!static::isAlphaNumeric($this->a)) - break; - - default: - // check for some regex that breaks stuff - if ($this->a === '/' && ($this->b === '\'' || $this->b === '"')) { - $this->saveRegex(); - continue; - } - - echo $this->a; - $this->saveString(); - break; - } - } - - // do reg check of doom - $this->b = $this->getReal(); - - if(($this->b == '/' && strpos('(,=:[!&|?', $this->a) !== false)) - $this->saveRegex(); - } - } - - /** - * Resets attributes that do not need to be stored between requests so that - * the next request is ready to go. Another reason for this is to make sure - * the variables are cleared and are not taking up memory. - */ - protected function clean() - { - unset($this->input); - $this->index = 0; - $this->a = $this->b = ''; - unset($this->c); - unset($this->options); - } - - /** - * Returns the next string for processing based off of the current index. - * - * @return string - */ - protected function getChar() - { - // Check to see if we had anything in the look ahead buffer and use that. - if (isset($this->c)) { - $char = $this->c; - unset($this->c); - - // Otherwise we start pulling from the input. - } else { - $char = substr($this->input, $this->index, 1); - - // If the next character doesn't exist return false. - if (isset($char) && $char === false) { - return false; - } - - // Otherwise increment the pointer and use this char. - $this->index++; - } - - // Normalize all whitespace except for the newline character into a - // standard space. - if($char !== "\n" && ord($char) < 32) - - return ' '; - - return $char; - } - - /** - * This function gets the next "real" character. It is essentially a wrapper - * around the getChar function that skips comments. This has significant - * performance benefits as the skipping is done using native functions (ie, - * c code) rather than in script php. - * - * - * @return string Next 'real' character to be processed. - * @throws \RuntimeException - */ - protected function getReal() - { - $startIndex = $this->index; - $char = $this->getChar(); - - // Check to see if we're potentially in a comment - if ($char !== '/') { - return $char; - } - - $this->c = $this->getChar(); - - if ($this->c === '/') { - return $this->processOneLineComments($startIndex); - - } elseif ($this->c === '*') { - return $this->processMultiLineComments($startIndex); - } - - return $char; - } - - /** - * Removed one line comments, with the exception of some very specific types of - * conditional comments. - * - * @param int $startIndex The index point where "getReal" function started - * @return string - */ - protected function processOneLineComments($startIndex) - { - $thirdCommentString = substr($this->input, $this->index, 1); - - // kill rest of line - $this->getNext("\n"); - - if ($thirdCommentString == '@') { - $endPoint = $this->index - $startIndex; - unset($this->c); - $char = "\n" . substr($this->input, $startIndex, $endPoint); - } else { - // first one is contents of $this->c - $this->getChar(); - $char = $this->getChar(); - } - - return $char; - } - - /** - * Skips multiline comments where appropriate, and includes them where needed. - * Conditional comments and "license" style blocks are preserved. - * - * @param int $startIndex The index point where "getReal" function started - * @return bool|string False if there's no character - * @throws \RuntimeException Unclosed comments will throw an error - */ - protected function processMultiLineComments($startIndex) - { - $this->getChar(); // current C - $thirdCommentString = $this->getChar(); - - // kill everything up to the next */ if it's there - if ($this->getNext('*/')) { - - $this->getChar(); // get * - $this->getChar(); // get / - $char = $this->getChar(); // get next real character - - // Now we reinsert conditional comments and YUI-style licensing comments - if (($this->options['flaggedComments'] && $thirdCommentString === '!') - || ($thirdCommentString === '@') ) { - - // If conditional comments or flagged comments are not the first thing in the script - // we need to echo a and fill it with a space before moving on. - if ($startIndex > 0) { - echo $this->a; - $this->a = " "; - - // If the comment started on a new line we let it stay on the new line - if ($this->input[($startIndex - 1)] === "\n") { - echo "\n"; - } - } - - $endPoint = ($this->index - 1) - $startIndex; - echo substr($this->input, $startIndex, $endPoint); - - return $char; - } - - } else { - $char = false; - } - - if($char === false) - throw new \RuntimeException('Unclosed multiline comment at position: ' . ($this->index - 2)); - - // if we're here c is part of the comment and therefore tossed - if(isset($this->c)) - unset($this->c); - - return $char; - } - - /** - * Pushes the index ahead to the next instance of the supplied string. If it - * is found the first character of the string is returned and the index is set - * to it's position. - * - * @param string $string - * @return string|false Returns the first character of the string or false. - */ - protected function getNext($string) - { - // Find the next occurrence of "string" after the current position. - $pos = strpos($this->input, $string, $this->index); - - // If it's not there return false. - if($pos === false) - - return false; - - // Adjust position of index to jump ahead to the asked for string - $this->index = $pos; - - // Return the first character of that string. - return substr($this->input, $this->index, 1); - } - - /** - * When a javascript string is detected this function crawls for the end of - * it and saves the whole string. - * - * @throws \RuntimeException Unclosed strings will throw an error - */ - protected function saveString() - { - $startpos = $this->index; - - // saveString is always called after a gets cleared, so we push b into - // that spot. - $this->a = $this->b; - - // If this isn't a string we don't need to do anything. - if ($this->a !== "'" && $this->a !== '"') { - return; - } - - // String type is the quote used, " or ' - $stringType = $this->a; - - // Echo out that starting quote - echo $this->a; - - // Loop until the string is done - while (true) { - - // Grab the very next character and load it into a - $this->a = $this->getChar(); - - switch ($this->a) { - - // If the string opener (single or double quote) is used - // output it and break out of the while loop- - // The string is finished! - case $stringType: - break 2; - - // New lines in strings without line delimiters are bad- actual - // new lines will be represented by the string \n and not the actual - // character, so those will be treated just fine using the switch - // block below. - case "\n": - throw new \RuntimeException('Unclosed string at position: ' . $startpos ); - break; - - // Escaped characters get picked up here. If it's an escaped new line it's not really needed - case '\\': - - // a is a slash. We want to keep it, and the next character, - // unless it's a new line. New lines as actual strings will be - // preserved, but escaped new lines should be reduced. - $this->b = $this->getChar(); - - // If b is a new line we discard a and b and restart the loop. - if ($this->b === "\n") { - break; - } - - // echo out the escaped character and restart the loop. - echo $this->a . $this->b; - break; - - - // Since we're not dealing with any special cases we simply - // output the character and continue our loop. - default: - echo $this->a; - } - } - } - - /** - * When a regular expression is detected this function crawls for the end of - * it and saves the whole regex. - * - * @throws \RuntimeException Unclosed regex will throw an error - */ - protected function saveRegex() - { - echo $this->a . $this->b; - - while (($this->a = $this->getChar()) !== false) { - if($this->a === '/') - break; - - if ($this->a === '\\') { - echo $this->a; - $this->a = $this->getChar(); - } - - if($this->a === "\n") - throw new \RuntimeException('Unclosed regex pattern at position: ' . $this->index); - - echo $this->a; - } - $this->b = $this->getReal(); - } - - /** - * Checks to see if a character is alphanumeric. - * - * @param string $char Just one character - * @return bool - */ - protected static function isAlphaNumeric($char) - { - return preg_match('/^[\w\$\pL]$/', $char) === 1 || $char == '/'; - } - - /** - * Replace patterns in the given string and store the replacement - * - * @param string $js The string to lock - * @return bool - */ - protected function lock($js) - { - /* lock things like "asd" + ++x; */ - $lock = '"LOCK---' . crc32(time()) . '"'; - - $matches = array(); - preg_match('/([+-])(\s+)([+-])/S', $js, $matches); - if (empty($matches)) { - return $js; - } - - $this->locks[$lock] = $matches[2]; - - $js = preg_replace('/([+-])\s+([+-])/S', "$1{$lock}$2", $js); - /* -- */ - - return $js; - } - - /** - * Replace "locks" with the original characters - * - * @param string $js The string to unlock - * @return bool - */ - protected function unlock($js) - { - if (empty($this->locks)) { - return $js; - } - - foreach ($this->locks as $lock => $replacement) { - $js = str_replace($lock, $replacement, $js); - } - - return $js; - } - -} \ No newline at end of file diff --git a/Utils/PHPExcel.php b/Utils/PHPExcel.php deleted file mode 100644 index d78bba1..0000000 --- a/Utils/PHPExcel.php +++ /dev/null @@ -1,1153 +0,0 @@ -hasMacros; - } - - /** - * Define if a workbook has macros - * - * @param boolean $hasMacros true|false - */ - public function setHasMacros($hasMacros = false) - { - $this->hasMacros = (bool) $hasMacros; - } - - /** - * Set the macros code - * - * @param string $MacrosCode string|null - */ - public function setMacrosCode($MacrosCode = null) - { - $this->macrosCode=$MacrosCode; - $this->setHasMacros(!is_null($MacrosCode)); - } - - /** - * Return the macros code - * - * @return string|null - */ - public function getMacrosCode() - { - return $this->macrosCode; - } - - /** - * Set the macros certificate - * - * @param string|null $Certificate - */ - public function setMacrosCertificate($Certificate = null) - { - $this->macrosCertificate=$Certificate; - } - - /** - * Is the project signed ? - * - * @return boolean true|false - */ - public function hasMacrosCertificate() - { - return !is_null($this->macrosCertificate); - } - - /** - * Return the macros certificate - * - * @return string|null - */ - public function getMacrosCertificate() - { - return $this->macrosCertificate; - } - - /** - * Remove all macros, certificate from spreadsheet - * - */ - public function discardMacros() - { - $this->hasMacros=false; - $this->macrosCode=null; - $this->macrosCertificate=null; - } - - /** - * set ribbon XML data - * - */ - public function setRibbonXMLData($Target = null, $XMLData = null) - { - if (!is_null($Target) && !is_null($XMLData)) { - $this->ribbonXMLData = array('target' => $Target, 'data' => $XMLData); - } else { - $this->ribbonXMLData = null; - } - } - - /** - * retrieve ribbon XML Data - * - * return string|null|array - */ - public function getRibbonXMLData($What = 'all') //we need some constants here... - { - $ReturnData = null; - $What = strtolower($What); - switch ($What){ - case 'all': - $ReturnData = $this->ribbonXMLData; - break; - case 'target': - case 'data': - if (is_array($this->ribbonXMLData) && array_key_exists($What, $this->ribbonXMLData)) { - $ReturnData = $this->ribbonXMLData[$What]; - } - break; - } - - return $ReturnData; - } - - /** - * store binaries ribbon objects (pictures) - * - */ - public function setRibbonBinObjects($BinObjectsNames = null, $BinObjectsData = null) - { - if (!is_null($BinObjectsNames) && !is_null($BinObjectsData)) { - $this->ribbonBinObjects = array('names' => $BinObjectsNames, 'data' => $BinObjectsData); - } else { - $this->ribbonBinObjects = null; - } - } - /** - * return the extension of a filename. Internal use for a array_map callback (php<5.3 don't like lambda function) - * - */ - private function getExtensionOnly($ThePath) - { - return pathinfo($ThePath, PATHINFO_EXTENSION); - } - - /** - * retrieve Binaries Ribbon Objects - * - */ - public function getRibbonBinObjects($What = 'all') - { - $ReturnData = null; - $What = strtolower($What); - switch($What) { - case 'all': - return $this->ribbonBinObjects; - break; - case 'names': - case 'data': - if (is_array($this->ribbonBinObjects) && array_key_exists($What, $this->ribbonBinObjects)) { - $ReturnData=$this->ribbonBinObjects[$What]; - } - break; - case 'types': - if (is_array($this->ribbonBinObjects) && - array_key_exists('data', $this->ribbonBinObjects) && is_array($this->ribbonBinObjects['data'])) { - $tmpTypes=array_keys($this->ribbonBinObjects['data']); - $ReturnData = array_unique(array_map(array($this, 'getExtensionOnly'), $tmpTypes)); - } else { - $ReturnData=array(); // the caller want an array... not null if empty - } - break; - } - return $ReturnData; - } - - /** - * This workbook have a custom UI ? - * - * @return boolean true|false - */ - public function hasRibbon() - { - return !is_null($this->ribbonXMLData); - } - - /** - * This workbook have additionnal object for the ribbon ? - * - * @return boolean true|false - */ - public function hasRibbonBinObjects() - { - return !is_null($this->ribbonBinObjects); - } - - /** - * Check if a sheet with a specified code name already exists - * - * @param string $pSheetCodeName Name of the worksheet to check - * @return boolean - */ - public function sheetCodeNameExists($pSheetCodeName) - { - return ($this->getSheetByCodeName($pSheetCodeName) !== null); - } - - /** - * Get sheet by code name. Warning : sheet don't have always a code name ! - * - * @param string $pName Sheet name - * @return PHPExcel_Worksheet - */ - public function getSheetByCodeName($pName = '') - { - $worksheetCount = count($this->workSheetCollection); - for ($i = 0; $i < $worksheetCount; ++$i) { - if ($this->workSheetCollection[$i]->getCodeName() == $pName) { - return $this->workSheetCollection[$i]; - } - } - - return null; - } - - /** - * Create a new PHPExcel with one Worksheet - */ - public function __construct() - { - $this->uniqueID = uniqid(); - $this->calculationEngine = new PHPExcel_Calculation($this); - - // Initialise worksheet collection and add one worksheet - $this->workSheetCollection = array(); - $this->workSheetCollection[] = new PHPExcel_Worksheet($this); - $this->activeSheetIndex = 0; - - // Create document properties - $this->properties = new PHPExcel_DocumentProperties(); - - // Create document security - $this->security = new PHPExcel_DocumentSecurity(); - - // Set named ranges - $this->namedRanges = array(); - - // Create the cellXf supervisor - $this->cellXfSupervisor = new PHPExcel_Style(true); - $this->cellXfSupervisor->bindParent($this); - - // Create the default style - $this->addCellXf(new PHPExcel_Style); - $this->addCellStyleXf(new PHPExcel_Style); - } - - /** - * Code to execute when this worksheet is unset() - * - */ - public function __destruct() - { - $this->calculationEngine = null; - $this->disconnectWorksheets(); - } - - /** - * Disconnect all worksheets from this PHPExcel workbook object, - * typically so that the PHPExcel object can be unset - * - */ - public function disconnectWorksheets() - { - $worksheet = null; - foreach ($this->workSheetCollection as $k => &$worksheet) { - $worksheet->disconnectCells(); - $this->workSheetCollection[$k] = null; - } - unset($worksheet); - $this->workSheetCollection = array(); - } - - /** - * Return the calculation engine for this worksheet - * - * @return PHPExcel_Calculation - */ - public function getCalculationEngine() - { - return $this->calculationEngine; - } // function getCellCacheController() - - /** - * Get properties - * - * @return PHPExcel_DocumentProperties - */ - public function getProperties() - { - return $this->properties; - } - - /** - * Set properties - * - * @param PHPExcel_DocumentProperties $pValue - */ - public function setProperties(PHPExcel_DocumentProperties $pValue) - { - $this->properties = $pValue; - } - - /** - * Get security - * - * @return PHPExcel_DocumentSecurity - */ - public function getSecurity() - { - return $this->security; - } - - /** - * Set security - * - * @param PHPExcel_DocumentSecurity $pValue - */ - public function setSecurity(PHPExcel_DocumentSecurity $pValue) - { - $this->security = $pValue; - } - - /** - * Get active sheet - * - * @return PHPExcel_Worksheet - * - * @throws PHPExcel_Exception - */ - public function getActiveSheet() - { - return $this->getSheet($this->activeSheetIndex); - } - - /** - * Create sheet and add it to this workbook - * - * @param int|null $iSheetIndex Index where sheet should go (0,1,..., or null for last) - * @return PHPExcel_Worksheet - * @throws PHPExcel_Exception - */ - public function createSheet($iSheetIndex = null) - { - $newSheet = new PHPExcel_Worksheet($this); - $this->addSheet($newSheet, $iSheetIndex); - return $newSheet; - } - - /** - * Check if a sheet with a specified name already exists - * - * @param string $pSheetName Name of the worksheet to check - * @return boolean - */ - public function sheetNameExists($pSheetName) - { - return ($this->getSheetByName($pSheetName) !== null); - } - - /** - * Add sheet - * - * @param PHPExcel_Worksheet $pSheet - * @param int|null $iSheetIndex Index where sheet should go (0,1,..., or null for last) - * @return PHPExcel_Worksheet - * @throws PHPExcel_Exception - */ - public function addSheet(PHPExcel_Worksheet $pSheet, $iSheetIndex = null) - { - if ($this->sheetNameExists($pSheet->getTitle())) { - throw new PHPExcel_Exception( - "Workbook already contains a worksheet named '{$pSheet->getTitle()}'. Rename this worksheet first." - ); - } - - if ($iSheetIndex === null) { - if ($this->activeSheetIndex < 0) { - $this->activeSheetIndex = 0; - } - $this->workSheetCollection[] = $pSheet; - } else { - // Insert the sheet at the requested index - array_splice( - $this->workSheetCollection, - $iSheetIndex, - 0, - array($pSheet) - ); - - // Adjust active sheet index if necessary - if ($this->activeSheetIndex >= $iSheetIndex) { - ++$this->activeSheetIndex; - } - } - - if ($pSheet->getParent() === null) { - $pSheet->rebindParent($this); - } - - return $pSheet; - } - - /** - * Remove sheet by index - * - * @param int $pIndex Active sheet index - * @throws PHPExcel_Exception - */ - public function removeSheetByIndex($pIndex = 0) - { - - $numSheets = count($this->workSheetCollection); - if ($pIndex > $numSheets - 1) { - throw new PHPExcel_Exception( - "You tried to remove a sheet by the out of bounds index: {$pIndex}. The actual number of sheets is {$numSheets}." - ); - } else { - array_splice($this->workSheetCollection, $pIndex, 1); - } - // Adjust active sheet index if necessary - if (($this->activeSheetIndex >= $pIndex) && - ($pIndex > count($this->workSheetCollection) - 1)) { - --$this->activeSheetIndex; - } - - } - - /** - * Get sheet by index - * - * @param int $pIndex Sheet index - * @return PHPExcel_Worksheet - * @throws PHPExcel_Exception - */ - public function getSheet($pIndex = 0) - { - if (!isset($this->workSheetCollection[$pIndex])) { - $numSheets = $this->getSheetCount(); - throw new PHPExcel_Exception( - "Your requested sheet index: {$pIndex} is out of bounds. The actual number of sheets is {$numSheets}." - ); - } - - return $this->workSheetCollection[$pIndex]; - } - - /** - * Get all sheets - * - * @return PHPExcel_Worksheet[] - */ - public function getAllSheets() - { - return $this->workSheetCollection; - } - - /** - * Get sheet by name - * - * @param string $pName Sheet name - * @return PHPExcel_Worksheet - */ - public function getSheetByName($pName = '') - { - $worksheetCount = count($this->workSheetCollection); - for ($i = 0; $i < $worksheetCount; ++$i) { - if ($this->workSheetCollection[$i]->getTitle() === $pName) { - return $this->workSheetCollection[$i]; - } - } - - return null; - } - - /** - * Get index for sheet - * - * @param PHPExcel_Worksheet $pSheet - * @return int Sheet index - * @throws PHPExcel_Exception - */ - public function getIndex(PHPExcel_Worksheet $pSheet) - { - foreach ($this->workSheetCollection as $key => $value) { - if ($value->getHashCode() == $pSheet->getHashCode()) { - return $key; - } - } - - throw new PHPExcel_Exception("Sheet does not exist."); - } - - /** - * Set index for sheet by sheet name. - * - * @param string $sheetName Sheet name to modify index for - * @param int $newIndex New index for the sheet - * @return int New sheet index - * @throws PHPExcel_Exception - */ - public function setIndexByName($sheetName, $newIndex) - { - $oldIndex = $this->getIndex($this->getSheetByName($sheetName)); - $pSheet = array_splice( - $this->workSheetCollection, - $oldIndex, - 1 - ); - array_splice( - $this->workSheetCollection, - $newIndex, - 0, - $pSheet - ); - return $newIndex; - } - - /** - * Get sheet count - * - * @return int - */ - public function getSheetCount() - { - return count($this->workSheetCollection); - } - - /** - * Get active sheet index - * - * @return int Active sheet index - */ - public function getActiveSheetIndex() - { - return $this->activeSheetIndex; - } - - /** - * Set active sheet index - * - * @param int $pIndex Active sheet index - * @throws PHPExcel_Exception - * @return PHPExcel_Worksheet - */ - public function setActiveSheetIndex($pIndex = 0) - { - $numSheets = count($this->workSheetCollection); - - if ($pIndex > $numSheets - 1) { - throw new PHPExcel_Exception( - "You tried to set a sheet active by the out of bounds index: {$pIndex}. The actual number of sheets is {$numSheets}." - ); - } else { - $this->activeSheetIndex = $pIndex; - } - return $this->getActiveSheet(); - } - - /** - * Set active sheet index by name - * - * @param string $pValue Sheet title - * @return PHPExcel_Worksheet - * @throws PHPExcel_Exception - */ - public function setActiveSheetIndexByName($pValue = '') - { - if (($worksheet = $this->getSheetByName($pValue)) instanceof PHPExcel_Worksheet) { - $this->setActiveSheetIndex($this->getIndex($worksheet)); - return $worksheet; - } - - throw new PHPExcel_Exception('Workbook does not contain sheet:' . $pValue); - } - - /** - * Get sheet names - * - * @return string[] - */ - public function getSheetNames() - { - $returnValue = array(); - $worksheetCount = $this->getSheetCount(); - for ($i = 0; $i < $worksheetCount; ++$i) { - $returnValue[] = $this->getSheet($i)->getTitle(); - } - - return $returnValue; - } - - /** - * Add external sheet - * - * @param PHPExcel_Worksheet $pSheet External sheet to add - * @param int|null $iSheetIndex Index where sheet should go (0,1,..., or null for last) - * @throws PHPExcel_Exception - * @return PHPExcel_Worksheet - */ - public function addExternalSheet(PHPExcel_Worksheet $pSheet, $iSheetIndex = null) - { - if ($this->sheetNameExists($pSheet->getTitle())) { - throw new PHPExcel_Exception("Workbook already contains a worksheet named '{$pSheet->getTitle()}'. Rename the external sheet first."); - } - - // count how many cellXfs there are in this workbook currently, we will need this below - $countCellXfs = count($this->cellXfCollection); - - // copy all the shared cellXfs from the external workbook and append them to the current - foreach ($pSheet->getParent()->getCellXfCollection() as $cellXf) { - $this->addCellXf(clone $cellXf); - } - - // move sheet to this workbook - $pSheet->rebindParent($this); - - // update the cellXfs - foreach ($pSheet->getCellCollection(false) as $cellID) { - $cell = $pSheet->getCell($cellID); - $cell->setXfIndex($cell->getXfIndex() + $countCellXfs); - } - - return $this->addSheet($pSheet, $iSheetIndex); - } - - /** - * Get named ranges - * - * @return PHPExcel_NamedRange[] - */ - public function getNamedRanges() - { - return $this->namedRanges; - } - - /** - * Add named range - * - * @param PHPExcel_NamedRange $namedRange - * @return boolean - */ - public function addNamedRange(PHPExcel_NamedRange $namedRange) - { - if ($namedRange->getScope() == null) { - // global scope - $this->namedRanges[$namedRange->getName()] = $namedRange; - } else { - // local scope - $this->namedRanges[$namedRange->getScope()->getTitle().'!'.$namedRange->getName()] = $namedRange; - } - return true; - } - - /** - * Get named range - * - * @param string $namedRange - * @param PHPExcel_Worksheet|null $pSheet Scope. Use null for global scope - * @return PHPExcel_NamedRange|null - */ - public function getNamedRange($namedRange, PHPExcel_Worksheet $pSheet = null) - { - $returnValue = null; - - if ($namedRange != '' && ($namedRange !== null)) { - // first look for global defined name - if (isset($this->namedRanges[$namedRange])) { - $returnValue = $this->namedRanges[$namedRange]; - } - - // then look for local defined name (has priority over global defined name if both names exist) - if (($pSheet !== null) && isset($this->namedRanges[$pSheet->getTitle() . '!' . $namedRange])) { - $returnValue = $this->namedRanges[$pSheet->getTitle() . '!' . $namedRange]; - } - } - - return $returnValue; - } - - /** - * Remove named range - * - * @param string $namedRange - * @param PHPExcel_Worksheet|null $pSheet Scope: use null for global scope. - * @return PHPExcel - */ - public function removeNamedRange($namedRange, PHPExcel_Worksheet $pSheet = null) - { - if ($pSheet === null) { - if (isset($this->namedRanges[$namedRange])) { - unset($this->namedRanges[$namedRange]); - } - } else { - if (isset($this->namedRanges[$pSheet->getTitle() . '!' . $namedRange])) { - unset($this->namedRanges[$pSheet->getTitle() . '!' . $namedRange]); - } - } - return $this; - } - - /** - * Get worksheet iterator - * - * @return PHPExcel_WorksheetIterator - */ - public function getWorksheetIterator() - { - return new PHPExcel_WorksheetIterator($this); - } - - /** - * Copy workbook (!= clone!) - * - * @return PHPExcel - */ - public function copy() - { - $copied = clone $this; - - $worksheetCount = count($this->workSheetCollection); - for ($i = 0; $i < $worksheetCount; ++$i) { - $this->workSheetCollection[$i] = $this->workSheetCollection[$i]->copy(); - $this->workSheetCollection[$i]->rebindParent($this); - } - - return $copied; - } - - /** - * Implement PHP __clone to create a deep clone, not just a shallow copy. - */ - public function __clone() - { - foreach ($this as $key => $val) { - if (is_object($val) || (is_array($val))) { - $this->{$key} = unserialize(serialize($val)); - } - } - } - - /** - * Get the workbook collection of cellXfs - * - * @return PHPExcel_Style[] - */ - public function getCellXfCollection() - { - return $this->cellXfCollection; - } - - /** - * Get cellXf by index - * - * @param int $pIndex - * @return PHPExcel_Style - */ - public function getCellXfByIndex($pIndex = 0) - { - return $this->cellXfCollection[$pIndex]; - } - - /** - * Get cellXf by hash code - * - * @param string $pValue - * @return PHPExcel_Style|boolean False if no match found - */ - public function getCellXfByHashCode($pValue = '') - { - foreach ($this->cellXfCollection as $cellXf) { - if ($cellXf->getHashCode() == $pValue) { - return $cellXf; - } - } - return false; - } - - /** - * Check if style exists in style collection - * - * @param PHPExcel_Style $pCellStyle - * @return boolean - */ - public function cellXfExists($pCellStyle = null) - { - return in_array($pCellStyle, $this->cellXfCollection, true); - } - - /** - * Get default style - * - * @return PHPExcel_Style - * @throws PHPExcel_Exception - */ - public function getDefaultStyle() - { - if (isset($this->cellXfCollection[0])) { - return $this->cellXfCollection[0]; - } - throw new PHPExcel_Exception('No default style found for this workbook'); - } - - /** - * Add a cellXf to the workbook - * - * @param PHPExcel_Style $style - */ - public function addCellXf(PHPExcel_Style $style) - { - $this->cellXfCollection[] = $style; - $style->setIndex(count($this->cellXfCollection) - 1); - } - - /** - * Remove cellXf by index. It is ensured that all cells get their xf index updated. - * - * @param integer $pIndex Index to cellXf - * @throws PHPExcel_Exception - */ - public function removeCellXfByIndex($pIndex = 0) - { - if ($pIndex > count($this->cellXfCollection) - 1) { - throw new PHPExcel_Exception("CellXf index is out of bounds."); - } else { - // first remove the cellXf - array_splice($this->cellXfCollection, $pIndex, 1); - - // then update cellXf indexes for cells - foreach ($this->workSheetCollection as $worksheet) { - foreach ($worksheet->getCellCollection(false) as $cellID) { - $cell = $worksheet->getCell($cellID); - $xfIndex = $cell->getXfIndex(); - if ($xfIndex > $pIndex) { - // decrease xf index by 1 - $cell->setXfIndex($xfIndex - 1); - } elseif ($xfIndex == $pIndex) { - // set to default xf index 0 - $cell->setXfIndex(0); - } - } - } - } - } - - /** - * Get the cellXf supervisor - * - * @return PHPExcel_Style - */ - public function getCellXfSupervisor() - { - return $this->cellXfSupervisor; - } - - /** - * Get the workbook collection of cellStyleXfs - * - * @return PHPExcel_Style[] - */ - public function getCellStyleXfCollection() - { - return $this->cellStyleXfCollection; - } - - /** - * Get cellStyleXf by index - * - * @param integer $pIndex Index to cellXf - * @return PHPExcel_Style - */ - public function getCellStyleXfByIndex($pIndex = 0) - { - return $this->cellStyleXfCollection[$pIndex]; - } - - /** - * Get cellStyleXf by hash code - * - * @param string $pValue - * @return PHPExcel_Style|boolean False if no match found - */ - public function getCellStyleXfByHashCode($pValue = '') - { - foreach ($this->cellStyleXfCollection as $cellStyleXf) { - if ($cellStyleXf->getHashCode() == $pValue) { - return $cellStyleXf; - } - } - return false; - } - - /** - * Add a cellStyleXf to the workbook - * - * @param PHPExcel_Style $pStyle - */ - public function addCellStyleXf(PHPExcel_Style $pStyle) - { - $this->cellStyleXfCollection[] = $pStyle; - $pStyle->setIndex(count($this->cellStyleXfCollection) - 1); - } - - /** - * Remove cellStyleXf by index - * - * @param integer $pIndex Index to cellXf - * @throws PHPExcel_Exception - */ - public function removeCellStyleXfByIndex($pIndex = 0) - { - if ($pIndex > count($this->cellStyleXfCollection) - 1) { - throw new PHPExcel_Exception("CellStyleXf index is out of bounds."); - } else { - array_splice($this->cellStyleXfCollection, $pIndex, 1); - } - } - - /** - * Eliminate all unneeded cellXf and afterwards update the xfIndex for all cells - * and columns in the workbook - */ - public function garbageCollect() - { - // how many references are there to each cellXf ? - $countReferencesCellXf = array(); - foreach ($this->cellXfCollection as $index => $cellXf) { - $countReferencesCellXf[$index] = 0; - } - - foreach ($this->getWorksheetIterator() as $sheet) { - // from cells - foreach ($sheet->getCellCollection(false) as $cellID) { - $cell = $sheet->getCell($cellID); - ++$countReferencesCellXf[$cell->getXfIndex()]; - } - - // from row dimensions - foreach ($sheet->getRowDimensions() as $rowDimension) { - if ($rowDimension->getXfIndex() !== null) { - ++$countReferencesCellXf[$rowDimension->getXfIndex()]; - } - } - - // from column dimensions - foreach ($sheet->getColumnDimensions() as $columnDimension) { - ++$countReferencesCellXf[$columnDimension->getXfIndex()]; - } - } - - // remove cellXfs without references and create mapping so we can update xfIndex - // for all cells and columns - $countNeededCellXfs = 0; - $map = array(); - foreach ($this->cellXfCollection as $index => $cellXf) { - if ($countReferencesCellXf[$index] > 0 || $index == 0) { // we must never remove the first cellXf - ++$countNeededCellXfs; - } else { - unset($this->cellXfCollection[$index]); - } - $map[$index] = $countNeededCellXfs - 1; - } - $this->cellXfCollection = array_values($this->cellXfCollection); - - // update the index for all cellXfs - foreach ($this->cellXfCollection as $i => $cellXf) { - $cellXf->setIndex($i); - } - - // make sure there is always at least one cellXf (there should be) - if (empty($this->cellXfCollection)) { - $this->cellXfCollection[] = new PHPExcel_Style(); - } - - // update the xfIndex for all cells, row dimensions, column dimensions - foreach ($this->getWorksheetIterator() as $sheet) { - // for all cells - foreach ($sheet->getCellCollection(false) as $cellID) { - $cell = $sheet->getCell($cellID); - $cell->setXfIndex($map[$cell->getXfIndex()]); - } - - // for all row dimensions - foreach ($sheet->getRowDimensions() as $rowDimension) { - if ($rowDimension->getXfIndex() !== null) { - $rowDimension->setXfIndex($map[$rowDimension->getXfIndex()]); - } - } - - // for all column dimensions - foreach ($sheet->getColumnDimensions() as $columnDimension) { - $columnDimension->setXfIndex($map[$columnDimension->getXfIndex()]); - } - - // also do garbage collection for all the sheets - $sheet->garbageCollect(); - } - } - - /** - * Return the unique ID value assigned to this spreadsheet workbook - * - * @return string - */ - public function getID() - { - return $this->uniqueID; - } -} diff --git a/Utils/PHPExcel/Autoloader.php b/Utils/PHPExcel/Autoloader.php deleted file mode 100644 index c3b95a2..0000000 --- a/Utils/PHPExcel/Autoloader.php +++ /dev/null @@ -1,81 +0,0 @@ -= 0) { - return spl_autoload_register(array('PHPExcel_Autoloader', 'load'), true, true); - } else { - return spl_autoload_register(array('PHPExcel_Autoloader', 'load')); - } - } - - /** - * Autoload a class identified by name - * - * @param string $pClassName Name of the object to load - */ - public static function load($pClassName) - { - if ((class_exists($pClassName, false)) || (strpos($pClassName, 'PHPExcel') !== 0)) { - // Either already loaded, or not a PHPExcel class request - return false; - } - - $pClassFilePath = PHPEXCEL_ROOT . - str_replace('_', DIRECTORY_SEPARATOR, $pClassName) . - '.php'; - - if ((file_exists($pClassFilePath) === false) || (is_readable($pClassFilePath) === false)) { - // Can't load - return false; - } - - require($pClassFilePath); - } -} diff --git a/Utils/PHPExcel/CachedObjectStorage/APC.php b/Utils/PHPExcel/CachedObjectStorage/APC.php deleted file mode 100644 index c74b07f..0000000 --- a/Utils/PHPExcel/CachedObjectStorage/APC.php +++ /dev/null @@ -1,290 +0,0 @@ -currentCellIsDirty && !empty($this->currentObjectID)) { - $this->currentObject->detach(); - - if (!apc_store( - $this->cachePrefix . $this->currentObjectID . '.cache', - serialize($this->currentObject), - $this->cacheTime - )) { - $this->__destruct(); - throw new PHPExcel_Exception('Failed to store cell ' . $this->currentObjectID . ' in APC'); - } - $this->currentCellIsDirty = false; - } - $this->currentObjectID = $this->currentObject = null; - } - - /** - * Add or Update a cell in cache identified by coordinate address - * - * @access public - * @param string $pCoord Coordinate address of the cell to update - * @param PHPExcel_Cell $cell Cell to update - * @return PHPExcel_Cell - * @throws PHPExcel_Exception - */ - public function addCacheData($pCoord, PHPExcel_Cell $cell) - { - if (($pCoord !== $this->currentObjectID) && ($this->currentObjectID !== null)) { - $this->storeData(); - } - $this->cellCache[$pCoord] = true; - - $this->currentObjectID = $pCoord; - $this->currentObject = $cell; - $this->currentCellIsDirty = true; - - return $cell; - } - - /** - * Is a value set in the current PHPExcel_CachedObjectStorage_ICache for an indexed cell? - * - * @access public - * @param string $pCoord Coordinate address of the cell to check - * @throws PHPExcel_Exception - * @return boolean - */ - public function isDataSet($pCoord) - { - // Check if the requested entry is the current object, or exists in the cache - if (parent::isDataSet($pCoord)) { - if ($this->currentObjectID == $pCoord) { - return true; - } - // Check if the requested entry still exists in apc - $success = apc_fetch($this->cachePrefix.$pCoord.'.cache'); - if ($success === false) { - // Entry no longer exists in APC, so clear it from the cache array - parent::deleteCacheData($pCoord); - throw new PHPExcel_Exception('Cell entry '.$pCoord.' no longer exists in APC cache'); - } - return true; - } - return false; - } - - /** - * Get cell at a specific coordinate - * - * @access public - * @param string $pCoord Coordinate of the cell - * @throws PHPExcel_Exception - * @return PHPExcel_Cell Cell that was found, or null if not found - */ - public function getCacheData($pCoord) - { - if ($pCoord === $this->currentObjectID) { - return $this->currentObject; - } - $this->storeData(); - - // Check if the entry that has been requested actually exists - if (parent::isDataSet($pCoord)) { - $obj = apc_fetch($this->cachePrefix . $pCoord . '.cache'); - if ($obj === false) { - // Entry no longer exists in APC, so clear it from the cache array - parent::deleteCacheData($pCoord); - throw new PHPExcel_Exception('Cell entry '.$pCoord.' no longer exists in APC cache'); - } - } else { - // Return null if requested entry doesn't exist in cache - return null; - } - - // Set current entry to the requested entry - $this->currentObjectID = $pCoord; - $this->currentObject = unserialize($obj); - // Re-attach this as the cell's parent - $this->currentObject->attach($this); - - // Return requested entry - return $this->currentObject; - } - - /** - * Get a list of all cell addresses currently held in cache - * - * @return string[] - */ - public function getCellList() - { - if ($this->currentObjectID !== null) { - $this->storeData(); - } - - return parent::getCellList(); - } - - /** - * Delete a cell in cache identified by coordinate address - * - * @access public - * @param string $pCoord Coordinate address of the cell to delete - * @throws PHPExcel_Exception - */ - public function deleteCacheData($pCoord) - { - // Delete the entry from APC - apc_delete($this->cachePrefix.$pCoord.'.cache'); - - // Delete the entry from our cell address array - parent::deleteCacheData($pCoord); - } - - /** - * Clone the cell collection - * - * @access public - * @param PHPExcel_Worksheet $parent The new worksheet - * @throws PHPExcel_Exception - * @return void - */ - public function copyCellCollection(PHPExcel_Worksheet $parent) - { - parent::copyCellCollection($parent); - // Get a new id for the new file name - $baseUnique = $this->getUniqueID(); - $newCachePrefix = substr(md5($baseUnique), 0, 8) . '.'; - $cacheList = $this->getCellList(); - foreach ($cacheList as $cellID) { - if ($cellID != $this->currentObjectID) { - $obj = apc_fetch($this->cachePrefix . $cellID . '.cache'); - if ($obj === false) { - // Entry no longer exists in APC, so clear it from the cache array - parent::deleteCacheData($cellID); - throw new PHPExcel_Exception('Cell entry ' . $cellID . ' no longer exists in APC'); - } - if (!apc_store($newCachePrefix . $cellID . '.cache', $obj, $this->cacheTime)) { - $this->__destruct(); - throw new PHPExcel_Exception('Failed to store cell ' . $cellID . ' in APC'); - } - } - } - $this->cachePrefix = $newCachePrefix; - } - - /** - * Clear the cell collection and disconnect from our parent - * - * @return void - */ - public function unsetWorksheetCells() - { - if ($this->currentObject !== null) { - $this->currentObject->detach(); - $this->currentObject = $this->currentObjectID = null; - } - - // Flush the APC cache - $this->__destruct(); - - $this->cellCache = array(); - - // detach ourself from the worksheet, so that it can then delete this object successfully - $this->parent = null; - } - - /** - * Initialise this new cell collection - * - * @param PHPExcel_Worksheet $parent The worksheet for this cell collection - * @param array of mixed $arguments Additional initialisation arguments - */ - public function __construct(PHPExcel_Worksheet $parent, $arguments) - { - $cacheTime = (isset($arguments['cacheTime'])) ? $arguments['cacheTime'] : 600; - - if ($this->cachePrefix === null) { - $baseUnique = $this->getUniqueID(); - $this->cachePrefix = substr(md5($baseUnique), 0, 8) . '.'; - $this->cacheTime = $cacheTime; - - parent::__construct($parent); - } - } - - /** - * Destroy this cell collection - */ - public function __destruct() - { - $cacheList = $this->getCellList(); - foreach ($cacheList as $cellID) { - apc_delete($this->cachePrefix . $cellID . '.cache'); - } - } - - /** - * Identify whether the caching method is currently available - * Some methods are dependent on the availability of certain extensions being enabled in the PHP build - * - * @return boolean - */ - public static function cacheMethodIsAvailable() - { - if (!function_exists('apc_store')) { - return false; - } - if (apc_sma_info() === false) { - return false; - } - - return true; - } -} diff --git a/Utils/PHPExcel/CachedObjectStorage/CacheBase.php b/Utils/PHPExcel/CachedObjectStorage/CacheBase.php deleted file mode 100644 index 9a12ec8..0000000 --- a/Utils/PHPExcel/CachedObjectStorage/CacheBase.php +++ /dev/null @@ -1,368 +0,0 @@ -parent = $parent; - } - - /** - * Return the parent worksheet for this cell collection - * - * @return PHPExcel_Worksheet - */ - public function getParent() - { - return $this->parent; - } - - /** - * Is a value set in the current PHPExcel_CachedObjectStorage_ICache for an indexed cell? - * - * @param string $pCoord Coordinate address of the cell to check - * @return boolean - */ - public function isDataSet($pCoord) - { - if ($pCoord === $this->currentObjectID) { - return true; - } - // Check if the requested entry exists in the cache - return isset($this->cellCache[$pCoord]); - } - - /** - * Move a cell object from one address to another - * - * @param string $fromAddress Current address of the cell to move - * @param string $toAddress Destination address of the cell to move - * @return boolean - */ - public function moveCell($fromAddress, $toAddress) - { - if ($fromAddress === $this->currentObjectID) { - $this->currentObjectID = $toAddress; - } - $this->currentCellIsDirty = true; - if (isset($this->cellCache[$fromAddress])) { - $this->cellCache[$toAddress] = &$this->cellCache[$fromAddress]; - unset($this->cellCache[$fromAddress]); - } - - return true; - } - - /** - * Add or Update a cell in cache - * - * @param PHPExcel_Cell $cell Cell to update - * @return PHPExcel_Cell - * @throws PHPExcel_Exception - */ - public function updateCacheData(PHPExcel_Cell $cell) - { - return $this->addCacheData($cell->getCoordinate(), $cell); - } - - /** - * Delete a cell in cache identified by coordinate address - * - * @param string $pCoord Coordinate address of the cell to delete - * @throws PHPExcel_Exception - */ - public function deleteCacheData($pCoord) - { - if ($pCoord === $this->currentObjectID && !is_null($this->currentObject)) { - $this->currentObject->detach(); - $this->currentObjectID = $this->currentObject = null; - } - - if (is_object($this->cellCache[$pCoord])) { - $this->cellCache[$pCoord]->detach(); - unset($this->cellCache[$pCoord]); - } - $this->currentCellIsDirty = false; - } - - /** - * Get a list of all cell addresses currently held in cache - * - * @return string[] - */ - public function getCellList() - { - return array_keys($this->cellCache); - } - - /** - * Sort the list of all cell addresses currently held in cache by row and column - * - * @return string[] - */ - public function getSortedCellList() - { - $sortKeys = array(); - foreach ($this->getCellList() as $coord) { - sscanf($coord, '%[A-Z]%d', $column, $row); - $sortKeys[sprintf('%09d%3s', $row, $column)] = $coord; - } - ksort($sortKeys); - - return array_values($sortKeys); - } - - /** - * Get highest worksheet column and highest row that have cell records - * - * @return array Highest column name and highest row number - */ - public function getHighestRowAndColumn() - { - // Lookup highest column and highest row - $col = array('A' => '1A'); - $row = array(1); - foreach ($this->getCellList() as $coord) { - sscanf($coord, '%[A-Z]%d', $c, $r); - $row[$r] = $r; - $col[$c] = strlen($c).$c; - } - if (!empty($row)) { - // Determine highest column and row - $highestRow = max($row); - $highestColumn = substr(max($col), 1); - } - - return array( - 'row' => $highestRow, - 'column' => $highestColumn - ); - } - - /** - * Return the cell address of the currently active cell object - * - * @return string - */ - public function getCurrentAddress() - { - return $this->currentObjectID; - } - - /** - * Return the column address of the currently active cell object - * - * @return string - */ - public function getCurrentColumn() - { - sscanf($this->currentObjectID, '%[A-Z]%d', $column, $row); - return $column; - } - - /** - * Return the row address of the currently active cell object - * - * @return integer - */ - public function getCurrentRow() - { - sscanf($this->currentObjectID, '%[A-Z]%d', $column, $row); - return (integer) $row; - } - - /** - * Get highest worksheet column - * - * @param string $row Return the highest column for the specified row, - * or the highest column of any row if no row number is passed - * @return string Highest column name - */ - public function getHighestColumn($row = null) - { - if ($row == null) { - $colRow = $this->getHighestRowAndColumn(); - return $colRow['column']; - } - - $columnList = array(1); - foreach ($this->getCellList() as $coord) { - sscanf($coord, '%[A-Z]%d', $c, $r); - if ($r != $row) { - continue; - } - $columnList[] = PHPExcel_Cell::columnIndexFromString($c); - } - return PHPExcel_Cell::stringFromColumnIndex(max($columnList) - 1); - } - - /** - * Get highest worksheet row - * - * @param string $column Return the highest row for the specified column, - * or the highest row of any column if no column letter is passed - * @return int Highest row number - */ - public function getHighestRow($column = null) - { - if ($column == null) { - $colRow = $this->getHighestRowAndColumn(); - return $colRow['row']; - } - - $rowList = array(0); - foreach ($this->getCellList() as $coord) { - sscanf($coord, '%[A-Z]%d', $c, $r); - if ($c != $column) { - continue; - } - $rowList[] = $r; - } - - return max($rowList); - } - - /** - * Generate a unique ID for cache referencing - * - * @return string Unique Reference - */ - protected function getUniqueID() - { - if (function_exists('posix_getpid')) { - $baseUnique = posix_getpid(); - } else { - $baseUnique = mt_rand(); - } - return uniqid($baseUnique, true); - } - - /** - * Clone the cell collection - * - * @param PHPExcel_Worksheet $parent The new worksheet - * @return void - */ - public function copyCellCollection(PHPExcel_Worksheet $parent) - { - $this->currentCellIsDirty; - $this->storeData(); - - $this->parent = $parent; - if (($this->currentObject !== null) && (is_object($this->currentObject))) { - $this->currentObject->attach($this); - } - } // function copyCellCollection() - - /** - * Remove a row, deleting all cells in that row - * - * @param string $row Row number to remove - * @return void - */ - public function removeRow($row) - { - foreach ($this->getCellList() as $coord) { - sscanf($coord, '%[A-Z]%d', $c, $r); - if ($r == $row) { - $this->deleteCacheData($coord); - } - } - } - - /** - * Remove a column, deleting all cells in that column - * - * @param string $column Column ID to remove - * @return void - */ - public function removeColumn($column) - { - foreach ($this->getCellList() as $coord) { - sscanf($coord, '%[A-Z]%d', $c, $r); - if ($c == $column) { - $this->deleteCacheData($coord); - } - } - } - - /** - * Identify whether the caching method is currently available - * Some methods are dependent on the availability of certain extensions being enabled in the PHP build - * - * @return boolean - */ - public static function cacheMethodIsAvailable() - { - return true; - } -} diff --git a/Utils/PHPExcel/CachedObjectStorage/DiscISAM.php b/Utils/PHPExcel/CachedObjectStorage/DiscISAM.php deleted file mode 100644 index 13bc033..0000000 --- a/Utils/PHPExcel/CachedObjectStorage/DiscISAM.php +++ /dev/null @@ -1,208 +0,0 @@ -currentCellIsDirty && !empty($this->currentObjectID)) { - $this->currentObject->detach(); - - fseek($this->fileHandle, 0, SEEK_END); - - $this->cellCache[$this->currentObjectID] = array( - 'ptr' => ftell($this->fileHandle), - 'sz' => fwrite($this->fileHandle, serialize($this->currentObject)) - ); - $this->currentCellIsDirty = false; - } - $this->currentObjectID = $this->currentObject = null; - } - - /** - * Add or Update a cell in cache identified by coordinate address - * - * @param string $pCoord Coordinate address of the cell to update - * @param PHPExcel_Cell $cell Cell to update - * @return PHPExcel_Cell - * @throws PHPExcel_Exception - */ - public function addCacheData($pCoord, PHPExcel_Cell $cell) - { - if (($pCoord !== $this->currentObjectID) && ($this->currentObjectID !== null)) { - $this->storeData(); - } - - $this->currentObjectID = $pCoord; - $this->currentObject = $cell; - $this->currentCellIsDirty = true; - - return $cell; - } - - /** - * Get cell at a specific coordinate - * - * @param string $pCoord Coordinate of the cell - * @throws PHPExcel_Exception - * @return PHPExcel_Cell Cell that was found, or null if not found - */ - public function getCacheData($pCoord) - { - if ($pCoord === $this->currentObjectID) { - return $this->currentObject; - } - $this->storeData(); - - // Check if the entry that has been requested actually exists - if (!isset($this->cellCache[$pCoord])) { - // Return null if requested entry doesn't exist in cache - return null; - } - - // Set current entry to the requested entry - $this->currentObjectID = $pCoord; - fseek($this->fileHandle, $this->cellCache[$pCoord]['ptr']); - $this->currentObject = unserialize(fread($this->fileHandle, $this->cellCache[$pCoord]['sz'])); - // Re-attach this as the cell's parent - $this->currentObject->attach($this); - - // Return requested entry - return $this->currentObject; - } - - /** - * Get a list of all cell addresses currently held in cache - * - * @return string[] - */ - public function getCellList() - { - if ($this->currentObjectID !== null) { - $this->storeData(); - } - - return parent::getCellList(); - } - - /** - * Clone the cell collection - * - * @param PHPExcel_Worksheet $parent The new worksheet - */ - public function copyCellCollection(PHPExcel_Worksheet $parent) - { - parent::copyCellCollection($parent); - // Get a new id for the new file name - $baseUnique = $this->getUniqueID(); - $newFileName = $this->cacheDirectory.'/PHPExcel.'.$baseUnique.'.cache'; - // Copy the existing cell cache file - copy($this->fileName, $newFileName); - $this->fileName = $newFileName; - // Open the copied cell cache file - $this->fileHandle = fopen($this->fileName, 'a+'); - } - - /** - * Clear the cell collection and disconnect from our parent - * - */ - public function unsetWorksheetCells() - { - if (!is_null($this->currentObject)) { - $this->currentObject->detach(); - $this->currentObject = $this->currentObjectID = null; - } - $this->cellCache = array(); - - // detach ourself from the worksheet, so that it can then delete this object successfully - $this->parent = null; - - // Close down the temporary cache file - $this->__destruct(); - } - - /** - * Initialise this new cell collection - * - * @param PHPExcel_Worksheet $parent The worksheet for this cell collection - * @param array of mixed $arguments Additional initialisation arguments - */ - public function __construct(PHPExcel_Worksheet $parent, $arguments) - { - $this->cacheDirectory = ((isset($arguments['dir'])) && ($arguments['dir'] !== null)) - ? $arguments['dir'] - : PHPExcel_Shared_File::sys_get_temp_dir(); - - parent::__construct($parent); - if (is_null($this->fileHandle)) { - $baseUnique = $this->getUniqueID(); - $this->fileName = $this->cacheDirectory.'/PHPExcel.'.$baseUnique.'.cache'; - $this->fileHandle = fopen($this->fileName, 'a+'); - } - } - - /** - * Destroy this cell collection - */ - public function __destruct() - { - if (!is_null($this->fileHandle)) { - fclose($this->fileHandle); - unlink($this->fileName); - } - $this->fileHandle = null; - } -} diff --git a/Utils/PHPExcel/CachedObjectStorage/ICache.php b/Utils/PHPExcel/CachedObjectStorage/ICache.php deleted file mode 100644 index ab1766e..0000000 --- a/Utils/PHPExcel/CachedObjectStorage/ICache.php +++ /dev/null @@ -1,103 +0,0 @@ -currentCellIsDirty && !empty($this->currentObjectID)) { - $this->currentObject->detach(); - - $this->cellCache[$this->currentObjectID] = igbinary_serialize($this->currentObject); - $this->currentCellIsDirty = false; - } - $this->currentObjectID = $this->currentObject = null; - } // function _storeData() - - - /** - * Add or Update a cell in cache identified by coordinate address - * - * @param string $pCoord Coordinate address of the cell to update - * @param PHPExcel_Cell $cell Cell to update - * @return PHPExcel_Cell - * @throws PHPExcel_Exception - */ - public function addCacheData($pCoord, PHPExcel_Cell $cell) - { - if (($pCoord !== $this->currentObjectID) && ($this->currentObjectID !== null)) { - $this->storeData(); - } - - $this->currentObjectID = $pCoord; - $this->currentObject = $cell; - $this->currentCellIsDirty = true; - - return $cell; - } // function addCacheData() - - - /** - * Get cell at a specific coordinate - * - * @param string $pCoord Coordinate of the cell - * @throws PHPExcel_Exception - * @return PHPExcel_Cell Cell that was found, or null if not found - */ - public function getCacheData($pCoord) - { - if ($pCoord === $this->currentObjectID) { - return $this->currentObject; - } - $this->storeData(); - - // Check if the entry that has been requested actually exists - if (!isset($this->cellCache[$pCoord])) { - // Return null if requested entry doesn't exist in cache - return null; - } - - // Set current entry to the requested entry - $this->currentObjectID = $pCoord; - $this->currentObject = igbinary_unserialize($this->cellCache[$pCoord]); - // Re-attach this as the cell's parent - $this->currentObject->attach($this); - - // Return requested entry - return $this->currentObject; - } // function getCacheData() - - - /** - * Get a list of all cell addresses currently held in cache - * - * @return string[] - */ - public function getCellList() - { - if ($this->currentObjectID !== null) { - $this->storeData(); - } - - return parent::getCellList(); - } - - - /** - * Clear the cell collection and disconnect from our parent - * - * @return void - */ - public function unsetWorksheetCells() - { - if (!is_null($this->currentObject)) { - $this->currentObject->detach(); - $this->currentObject = $this->currentObjectID = null; - } - $this->cellCache = array(); - - // detach ourself from the worksheet, so that it can then delete this object successfully - $this->parent = null; - } // function unsetWorksheetCells() - - - /** - * Identify whether the caching method is currently available - * Some methods are dependent on the availability of certain extensions being enabled in the PHP build - * - * @return boolean - */ - public static function cacheMethodIsAvailable() - { - if (!function_exists('igbinary_serialize')) { - return false; - } - - return true; - } -} diff --git a/Utils/PHPExcel/CachedObjectStorage/Memcache.php b/Utils/PHPExcel/CachedObjectStorage/Memcache.php deleted file mode 100644 index 07942cc..0000000 --- a/Utils/PHPExcel/CachedObjectStorage/Memcache.php +++ /dev/null @@ -1,308 +0,0 @@ -currentCellIsDirty && !empty($this->currentObjectID)) { - $this->currentObject->detach(); - - $obj = serialize($this->currentObject); - if (!$this->memcache->replace($this->cachePrefix . $this->currentObjectID . '.cache', $obj, null, $this->cacheTime)) { - if (!$this->memcache->add($this->cachePrefix . $this->currentObjectID . '.cache', $obj, null, $this->cacheTime)) { - $this->__destruct(); - throw new PHPExcel_Exception("Failed to store cell {$this->currentObjectID} in MemCache"); - } - } - $this->currentCellIsDirty = false; - } - $this->currentObjectID = $this->currentObject = null; - } // function _storeData() - - - /** - * Add or Update a cell in cache identified by coordinate address - * - * @param string $pCoord Coordinate address of the cell to update - * @param PHPExcel_Cell $cell Cell to update - * @return PHPExcel_Cell - * @throws PHPExcel_Exception - */ - public function addCacheData($pCoord, PHPExcel_Cell $cell) - { - if (($pCoord !== $this->currentObjectID) && ($this->currentObjectID !== null)) { - $this->storeData(); - } - $this->cellCache[$pCoord] = true; - - $this->currentObjectID = $pCoord; - $this->currentObject = $cell; - $this->currentCellIsDirty = true; - - return $cell; - } // function addCacheData() - - - /** - * Is a value set in the current PHPExcel_CachedObjectStorage_ICache for an indexed cell? - * - * @param string $pCoord Coordinate address of the cell to check - * @return boolean - * @return boolean - */ - public function isDataSet($pCoord) - { - // Check if the requested entry is the current object, or exists in the cache - if (parent::isDataSet($pCoord)) { - if ($this->currentObjectID == $pCoord) { - return true; - } - // Check if the requested entry still exists in Memcache - $success = $this->memcache->get($this->cachePrefix.$pCoord.'.cache'); - if ($success === false) { - // Entry no longer exists in Memcache, so clear it from the cache array - parent::deleteCacheData($pCoord); - throw new PHPExcel_Exception('Cell entry '.$pCoord.' no longer exists in MemCache'); - } - return true; - } - return false; - } - - - /** - * Get cell at a specific coordinate - * - * @param string $pCoord Coordinate of the cell - * @throws PHPExcel_Exception - * @return PHPExcel_Cell Cell that was found, or null if not found - */ - public function getCacheData($pCoord) - { - if ($pCoord === $this->currentObjectID) { - return $this->currentObject; - } - $this->storeData(); - - // Check if the entry that has been requested actually exists - if (parent::isDataSet($pCoord)) { - $obj = $this->memcache->get($this->cachePrefix . $pCoord . '.cache'); - if ($obj === false) { - // Entry no longer exists in Memcache, so clear it from the cache array - parent::deleteCacheData($pCoord); - throw new PHPExcel_Exception("Cell entry {$pCoord} no longer exists in MemCache"); - } - } else { - // Return null if requested entry doesn't exist in cache - return null; - } - - // Set current entry to the requested entry - $this->currentObjectID = $pCoord; - $this->currentObject = unserialize($obj); - // Re-attach this as the cell's parent - $this->currentObject->attach($this); - - // Return requested entry - return $this->currentObject; - } - - /** - * Get a list of all cell addresses currently held in cache - * - * @return string[] - */ - public function getCellList() - { - if ($this->currentObjectID !== null) { - $this->storeData(); - } - - return parent::getCellList(); - } - - /** - * Delete a cell in cache identified by coordinate address - * - * @param string $pCoord Coordinate address of the cell to delete - * @throws PHPExcel_Exception - */ - public function deleteCacheData($pCoord) - { - // Delete the entry from Memcache - $this->memcache->delete($this->cachePrefix . $pCoord . '.cache'); - - // Delete the entry from our cell address array - parent::deleteCacheData($pCoord); - } - - /** - * Clone the cell collection - * - * @param PHPExcel_Worksheet $parent The new worksheet - * @return void - */ - public function copyCellCollection(PHPExcel_Worksheet $parent) - { - parent::copyCellCollection($parent); - // Get a new id for the new file name - $baseUnique = $this->getUniqueID(); - $newCachePrefix = substr(md5($baseUnique), 0, 8) . '.'; - $cacheList = $this->getCellList(); - foreach ($cacheList as $cellID) { - if ($cellID != $this->currentObjectID) { - $obj = $this->memcache->get($this->cachePrefix.$cellID.'.cache'); - if ($obj === false) { - // Entry no longer exists in Memcache, so clear it from the cache array - parent::deleteCacheData($cellID); - throw new PHPExcel_Exception("Cell entry {$cellID} no longer exists in MemCache"); - } - if (!$this->memcache->add($newCachePrefix . $cellID . '.cache', $obj, null, $this->cacheTime)) { - $this->__destruct(); - throw new PHPExcel_Exception("Failed to store cell {$cellID} in MemCache"); - } - } - } - $this->cachePrefix = $newCachePrefix; - } - - /** - * Clear the cell collection and disconnect from our parent - * - * @return void - */ - public function unsetWorksheetCells() - { - if (!is_null($this->currentObject)) { - $this->currentObject->detach(); - $this->currentObject = $this->currentObjectID = null; - } - - // Flush the Memcache cache - $this->__destruct(); - - $this->cellCache = array(); - - // detach ourself from the worksheet, so that it can then delete this object successfully - $this->parent = null; - } - - /** - * Initialise this new cell collection - * - * @param PHPExcel_Worksheet $parent The worksheet for this cell collection - * @param array of mixed $arguments Additional initialisation arguments - */ - public function __construct(PHPExcel_Worksheet $parent, $arguments) - { - $memcacheServer = (isset($arguments['memcacheServer'])) ? $arguments['memcacheServer'] : 'localhost'; - $memcachePort = (isset($arguments['memcachePort'])) ? $arguments['memcachePort'] : 11211; - $cacheTime = (isset($arguments['cacheTime'])) ? $arguments['cacheTime'] : 600; - - if (is_null($this->cachePrefix)) { - $baseUnique = $this->getUniqueID(); - $this->cachePrefix = substr(md5($baseUnique), 0, 8) . '.'; - - // Set a new Memcache object and connect to the Memcache server - $this->memcache = new Memcache(); - if (!$this->memcache->addServer($memcacheServer, $memcachePort, false, 50, 5, 5, true, array($this, 'failureCallback'))) { - throw new PHPExcel_Exception("Could not connect to MemCache server at {$memcacheServer}:{$memcachePort}"); - } - $this->cacheTime = $cacheTime; - - parent::__construct($parent); - } - } - - /** - * Memcache error handler - * - * @param string $host Memcache server - * @param integer $port Memcache port - * @throws PHPExcel_Exception - */ - public function failureCallback($host, $port) - { - throw new PHPExcel_Exception("memcache {$host}:{$port} failed"); - } - - /** - * Destroy this cell collection - */ - public function __destruct() - { - $cacheList = $this->getCellList(); - foreach ($cacheList as $cellID) { - $this->memcache->delete($this->cachePrefix.$cellID . '.cache'); - } - } - - /** - * Identify whether the caching method is currently available - * Some methods are dependent on the availability of certain extensions being enabled in the PHP build - * - * @return boolean - */ - public static function cacheMethodIsAvailable() - { - if (!function_exists('memcache_add')) { - return false; - } - - return true; - } -} diff --git a/Utils/PHPExcel/CachedObjectStorage/Memory.php b/Utils/PHPExcel/CachedObjectStorage/Memory.php deleted file mode 100644 index 0e2ea0b..0000000 --- a/Utils/PHPExcel/CachedObjectStorage/Memory.php +++ /dev/null @@ -1,118 +0,0 @@ -cellCache[$pCoord] = $cell; - - // Set current entry to the new/updated entry - $this->currentObjectID = $pCoord; - - return $cell; - } - - - /** - * Get cell at a specific coordinate - * - * @param string $pCoord Coordinate of the cell - * @throws PHPExcel_Exception - * @return PHPExcel_Cell Cell that was found, or null if not found - */ - public function getCacheData($pCoord) - { - // Check if the entry that has been requested actually exists - if (!isset($this->cellCache[$pCoord])) { - $this->currentObjectID = null; - // Return null if requested entry doesn't exist in cache - return null; - } - - // Set current entry to the requested entry - $this->currentObjectID = $pCoord; - - // Return requested entry - return $this->cellCache[$pCoord]; - } - - - /** - * Clone the cell collection - * - * @param PHPExcel_Worksheet $parent The new worksheet - */ - public function copyCellCollection(PHPExcel_Worksheet $parent) - { - parent::copyCellCollection($parent); - - $newCollection = array(); - foreach ($this->cellCache as $k => &$cell) { - $newCollection[$k] = clone $cell; - $newCollection[$k]->attach($this); - } - - $this->cellCache = $newCollection; - } - - /** - * Clear the cell collection and disconnect from our parent - * - */ - public function unsetWorksheetCells() - { - // Because cells are all stored as intact objects in memory, we need to detach each one from the parent - foreach ($this->cellCache as $k => &$cell) { - $cell->detach(); - $this->cellCache[$k] = null; - } - unset($cell); - - $this->cellCache = array(); - - // detach ourself from the worksheet, so that it can then delete this object successfully - $this->parent = null; - } -} diff --git a/Utils/PHPExcel/CachedObjectStorage/MemoryGZip.php b/Utils/PHPExcel/CachedObjectStorage/MemoryGZip.php deleted file mode 100644 index c06ec71..0000000 --- a/Utils/PHPExcel/CachedObjectStorage/MemoryGZip.php +++ /dev/null @@ -1,133 +0,0 @@ -currentCellIsDirty && !empty($this->currentObjectID)) { - $this->currentObject->detach(); - - $this->cellCache[$this->currentObjectID] = gzdeflate(serialize($this->currentObject)); - $this->currentCellIsDirty = false; - } - $this->currentObjectID = $this->currentObject = null; - } - - - /** - * Add or Update a cell in cache identified by coordinate address - * - * @param string $pCoord Coordinate address of the cell to update - * @param PHPExcel_Cell $cell Cell to update - * @return PHPExcel_Cell - * @throws PHPExcel_Exception - */ - public function addCacheData($pCoord, PHPExcel_Cell $cell) - { - if (($pCoord !== $this->currentObjectID) && ($this->currentObjectID !== null)) { - $this->storeData(); - } - - $this->currentObjectID = $pCoord; - $this->currentObject = $cell; - $this->currentCellIsDirty = true; - - return $cell; - } - - - /** - * Get cell at a specific coordinate - * - * @param string $pCoord Coordinate of the cell - * @throws PHPExcel_Exception - * @return PHPExcel_Cell Cell that was found, or null if not found - */ - public function getCacheData($pCoord) - { - if ($pCoord === $this->currentObjectID) { - return $this->currentObject; - } - $this->storeData(); - - // Check if the entry that has been requested actually exists - if (!isset($this->cellCache[$pCoord])) { - // Return null if requested entry doesn't exist in cache - return null; - } - - // Set current entry to the requested entry - $this->currentObjectID = $pCoord; - $this->currentObject = unserialize(gzinflate($this->cellCache[$pCoord])); - // Re-attach this as the cell's parent - $this->currentObject->attach($this); - - // Return requested entry - return $this->currentObject; - } - - - /** - * Get a list of all cell addresses currently held in cache - * - * @return string[] - */ - public function getCellList() - { - if ($this->currentObjectID !== null) { - $this->storeData(); - } - - return parent::getCellList(); - } - - - /** - * Clear the cell collection and disconnect from our parent - * - * @return void - */ - public function unsetWorksheetCells() - { - if (!is_null($this->currentObject)) { - $this->currentObject->detach(); - $this->currentObject = $this->currentObjectID = null; - } - $this->cellCache = array(); - - // detach ourself from the worksheet, so that it can then delete this object successfully - $this->parent = null; - } -} diff --git a/Utils/PHPExcel/CachedObjectStorage/MemorySerialized.php b/Utils/PHPExcel/CachedObjectStorage/MemorySerialized.php deleted file mode 100644 index 1332514..0000000 --- a/Utils/PHPExcel/CachedObjectStorage/MemorySerialized.php +++ /dev/null @@ -1,129 +0,0 @@ -currentCellIsDirty && !empty($this->currentObjectID)) { - $this->currentObject->detach(); - - $this->cellCache[$this->currentObjectID] = serialize($this->currentObject); - $this->currentCellIsDirty = false; - } - $this->currentObjectID = $this->currentObject = null; - } - - /** - * Add or Update a cell in cache identified by coordinate address - * - * @param string $pCoord Coordinate address of the cell to update - * @param PHPExcel_Cell $cell Cell to update - * @return PHPExcel_Cell - * @throws PHPExcel_Exception - */ - public function addCacheData($pCoord, PHPExcel_Cell $cell) - { - if (($pCoord !== $this->currentObjectID) && ($this->currentObjectID !== null)) { - $this->storeData(); - } - - $this->currentObjectID = $pCoord; - $this->currentObject = $cell; - $this->currentCellIsDirty = true; - - return $cell; - } - - /** - * Get cell at a specific coordinate - * - * @param string $pCoord Coordinate of the cell - * @throws PHPExcel_Exception - * @return PHPExcel_Cell Cell that was found, or null if not found - */ - public function getCacheData($pCoord) - { - if ($pCoord === $this->currentObjectID) { - return $this->currentObject; - } - $this->storeData(); - - // Check if the entry that has been requested actually exists - if (!isset($this->cellCache[$pCoord])) { - // Return null if requested entry doesn't exist in cache - return null; - } - - // Set current entry to the requested entry - $this->currentObjectID = $pCoord; - $this->currentObject = unserialize($this->cellCache[$pCoord]); - // Re-attach this as the cell's parent - $this->currentObject->attach($this); - - // Return requested entry - return $this->currentObject; - } - - /** - * Get a list of all cell addresses currently held in cache - * - * @return string[] - */ - public function getCellList() - { - if ($this->currentObjectID !== null) { - $this->storeData(); - } - - return parent::getCellList(); - } - - /** - * Clear the cell collection and disconnect from our parent - * - * @return void - */ - public function unsetWorksheetCells() - { - if (!is_null($this->currentObject)) { - $this->currentObject->detach(); - $this->currentObject = $this->currentObjectID = null; - } - $this->cellCache = array(); - - // detach ourself from the worksheet, so that it can then delete this object successfully - $this->parent = null; - } -} diff --git a/Utils/PHPExcel/CachedObjectStorage/PHPTemp.php b/Utils/PHPExcel/CachedObjectStorage/PHPTemp.php deleted file mode 100644 index 43c7819..0000000 --- a/Utils/PHPExcel/CachedObjectStorage/PHPTemp.php +++ /dev/null @@ -1,200 +0,0 @@ -currentCellIsDirty && !empty($this->currentObjectID)) { - $this->currentObject->detach(); - - fseek($this->fileHandle, 0, SEEK_END); - - $this->cellCache[$this->currentObjectID] = array( - 'ptr' => ftell($this->fileHandle), - 'sz' => fwrite($this->fileHandle, serialize($this->currentObject)) - ); - $this->currentCellIsDirty = false; - } - $this->currentObjectID = $this->currentObject = null; - } - - - /** - * Add or Update a cell in cache identified by coordinate address - * - * @param string $pCoord Coordinate address of the cell to update - * @param PHPExcel_Cell $cell Cell to update - * @return PHPExcel_Cell - * @throws PHPExcel_Exception - */ - public function addCacheData($pCoord, PHPExcel_Cell $cell) - { - if (($pCoord !== $this->currentObjectID) && ($this->currentObjectID !== null)) { - $this->storeData(); - } - - $this->currentObjectID = $pCoord; - $this->currentObject = $cell; - $this->currentCellIsDirty = true; - - return $cell; - } - - - /** - * Get cell at a specific coordinate - * - * @param string $pCoord Coordinate of the cell - * @throws PHPExcel_Exception - * @return PHPExcel_Cell Cell that was found, or null if not found - */ - public function getCacheData($pCoord) - { - if ($pCoord === $this->currentObjectID) { - return $this->currentObject; - } - $this->storeData(); - - // Check if the entry that has been requested actually exists - if (!isset($this->cellCache[$pCoord])) { - // Return null if requested entry doesn't exist in cache - return null; - } - - // Set current entry to the requested entry - $this->currentObjectID = $pCoord; - fseek($this->fileHandle, $this->cellCache[$pCoord]['ptr']); - $this->currentObject = unserialize(fread($this->fileHandle, $this->cellCache[$pCoord]['sz'])); - // Re-attach this as the cell's parent - $this->currentObject->attach($this); - - // Return requested entry - return $this->currentObject; - } - - /** - * Get a list of all cell addresses currently held in cache - * - * @return string[] - */ - public function getCellList() - { - if ($this->currentObjectID !== null) { - $this->storeData(); - } - - return parent::getCellList(); - } - - /** - * Clone the cell collection - * - * @param PHPExcel_Worksheet $parent The new worksheet - * @return void - */ - public function copyCellCollection(PHPExcel_Worksheet $parent) - { - parent::copyCellCollection($parent); - // Open a new stream for the cell cache data - $newFileHandle = fopen('php://temp/maxmemory:' . $this->memoryCacheSize, 'a+'); - // Copy the existing cell cache data to the new stream - fseek($this->fileHandle, 0); - while (!feof($this->fileHandle)) { - fwrite($newFileHandle, fread($this->fileHandle, 1024)); - } - $this->fileHandle = $newFileHandle; - } - - /** - * Clear the cell collection and disconnect from our parent - * - * @return void - */ - public function unsetWorksheetCells() - { - if (!is_null($this->currentObject)) { - $this->currentObject->detach(); - $this->currentObject = $this->currentObjectID = null; - } - $this->cellCache = array(); - - // detach ourself from the worksheet, so that it can then delete this object successfully - $this->parent = null; - - // Close down the php://temp file - $this->__destruct(); - } - - /** - * Initialise this new cell collection - * - * @param PHPExcel_Worksheet $parent The worksheet for this cell collection - * @param array of mixed $arguments Additional initialisation arguments - */ - public function __construct(PHPExcel_Worksheet $parent, $arguments) - { - $this->memoryCacheSize = (isset($arguments['memoryCacheSize'])) ? $arguments['memoryCacheSize'] : '1MB'; - - parent::__construct($parent); - if (is_null($this->fileHandle)) { - $this->fileHandle = fopen('php://temp/maxmemory:' . $this->memoryCacheSize, 'a+'); - } - } - - /** - * Destroy this cell collection - */ - public function __destruct() - { - if (!is_null($this->fileHandle)) { - fclose($this->fileHandle); - } - $this->fileHandle = null; - } -} diff --git a/Utils/PHPExcel/CachedObjectStorage/SQLite.php b/Utils/PHPExcel/CachedObjectStorage/SQLite.php deleted file mode 100644 index e7b50c5..0000000 --- a/Utils/PHPExcel/CachedObjectStorage/SQLite.php +++ /dev/null @@ -1,307 +0,0 @@ -currentCellIsDirty && !empty($this->currentObjectID)) { - $this->currentObject->detach(); - - if (!$this->DBHandle->queryExec("INSERT OR REPLACE INTO kvp_".$this->TableName." VALUES('".$this->currentObjectID."','".sqlite_escape_string(serialize($this->currentObject))."')")) { - throw new PHPExcel_Exception(sqlite_error_string($this->DBHandle->lastError())); - } - $this->currentCellIsDirty = false; - } - $this->currentObjectID = $this->currentObject = null; - } - - /** - * Add or Update a cell in cache identified by coordinate address - * - * @param string $pCoord Coordinate address of the cell to update - * @param PHPExcel_Cell $cell Cell to update - * @return PHPExcel_Cell - * @throws PHPExcel_Exception - */ - public function addCacheData($pCoord, PHPExcel_Cell $cell) - { - if (($pCoord !== $this->currentObjectID) && ($this->currentObjectID !== null)) { - $this->storeData(); - } - - $this->currentObjectID = $pCoord; - $this->currentObject = $cell; - $this->currentCellIsDirty = true; - - return $cell; - } - - /** - * Get cell at a specific coordinate - * - * @param string $pCoord Coordinate of the cell - * @throws PHPExcel_Exception - * @return PHPExcel_Cell Cell that was found, or null if not found - */ - public function getCacheData($pCoord) - { - if ($pCoord === $this->currentObjectID) { - return $this->currentObject; - } - $this->storeData(); - - $query = "SELECT value FROM kvp_".$this->TableName." WHERE id='".$pCoord."'"; - $cellResultSet = $this->DBHandle->query($query, SQLITE_ASSOC); - if ($cellResultSet === false) { - throw new PHPExcel_Exception(sqlite_error_string($this->DBHandle->lastError())); - } elseif ($cellResultSet->numRows() == 0) { - // Return null if requested entry doesn't exist in cache - return null; - } - - // Set current entry to the requested entry - $this->currentObjectID = $pCoord; - - $cellResult = $cellResultSet->fetchSingle(); - $this->currentObject = unserialize($cellResult); - // Re-attach this as the cell's parent - $this->currentObject->attach($this); - - // Return requested entry - return $this->currentObject; - } - - /** - * Is a value set for an indexed cell? - * - * @param string $pCoord Coordinate address of the cell to check - * @return boolean - */ - public function isDataSet($pCoord) - { - if ($pCoord === $this->currentObjectID) { - return true; - } - - // Check if the requested entry exists in the cache - $query = "SELECT id FROM kvp_".$this->TableName." WHERE id='".$pCoord."'"; - $cellResultSet = $this->DBHandle->query($query, SQLITE_ASSOC); - if ($cellResultSet === false) { - throw new PHPExcel_Exception(sqlite_error_string($this->DBHandle->lastError())); - } elseif ($cellResultSet->numRows() == 0) { - // Return null if requested entry doesn't exist in cache - return false; - } - return true; - } - - /** - * Delete a cell in cache identified by coordinate address - * - * @param string $pCoord Coordinate address of the cell to delete - * @throws PHPExcel_Exception - */ - public function deleteCacheData($pCoord) - { - if ($pCoord === $this->currentObjectID) { - $this->currentObject->detach(); - $this->currentObjectID = $this->currentObject = null; - } - - // Check if the requested entry exists in the cache - $query = "DELETE FROM kvp_".$this->TableName." WHERE id='".$pCoord."'"; - if (!$this->DBHandle->queryExec($query)) { - throw new PHPExcel_Exception(sqlite_error_string($this->DBHandle->lastError())); - } - - $this->currentCellIsDirty = false; - } - - /** - * Move a cell object from one address to another - * - * @param string $fromAddress Current address of the cell to move - * @param string $toAddress Destination address of the cell to move - * @return boolean - */ - public function moveCell($fromAddress, $toAddress) - { - if ($fromAddress === $this->currentObjectID) { - $this->currentObjectID = $toAddress; - } - - $query = "DELETE FROM kvp_".$this->TableName." WHERE id='".$toAddress."'"; - $result = $this->DBHandle->exec($query); - if ($result === false) { - throw new PHPExcel_Exception($this->DBHandle->lastErrorMsg()); - } - - $query = "UPDATE kvp_".$this->TableName." SET id='".$toAddress."' WHERE id='".$fromAddress."'"; - $result = $this->DBHandle->exec($query); - if ($result === false) { - throw new PHPExcel_Exception($this->DBHandle->lastErrorMsg()); - } - - return true; - } - - /** - * Get a list of all cell addresses currently held in cache - * - * @return string[] - */ - public function getCellList() - { - if ($this->currentObjectID !== null) { - $this->storeData(); - } - - $query = "SELECT id FROM kvp_".$this->TableName; - $cellIdsResult = $this->DBHandle->unbufferedQuery($query, SQLITE_ASSOC); - if ($cellIdsResult === false) { - throw new PHPExcel_Exception(sqlite_error_string($this->DBHandle->lastError())); - } - - $cellKeys = array(); - foreach ($cellIdsResult as $row) { - $cellKeys[] = $row['id']; - } - - return $cellKeys; - } - - /** - * Clone the cell collection - * - * @param PHPExcel_Worksheet $parent The new worksheet - * @return void - */ - public function copyCellCollection(PHPExcel_Worksheet $parent) - { - $this->currentCellIsDirty; - $this->storeData(); - - // Get a new id for the new table name - $tableName = str_replace('.', '_', $this->getUniqueID()); - if (!$this->DBHandle->queryExec('CREATE TABLE kvp_'.$tableName.' (id VARCHAR(12) PRIMARY KEY, value BLOB) - AS SELECT * FROM kvp_'.$this->TableName) - ) { - throw new PHPExcel_Exception(sqlite_error_string($this->DBHandle->lastError())); - } - - // Copy the existing cell cache file - $this->TableName = $tableName; - } - - /** - * Clear the cell collection and disconnect from our parent - * - * @return void - */ - public function unsetWorksheetCells() - { - if (!is_null($this->currentObject)) { - $this->currentObject->detach(); - $this->currentObject = $this->currentObjectID = null; - } - // detach ourself from the worksheet, so that it can then delete this object successfully - $this->parent = null; - - // Close down the temporary cache file - $this->__destruct(); - } - - /** - * Initialise this new cell collection - * - * @param PHPExcel_Worksheet $parent The worksheet for this cell collection - */ - public function __construct(PHPExcel_Worksheet $parent) - { - parent::__construct($parent); - if (is_null($this->DBHandle)) { - $this->TableName = str_replace('.', '_', $this->getUniqueID()); - $_DBName = ':memory:'; - - $this->DBHandle = new SQLiteDatabase($_DBName); - if ($this->DBHandle === false) { - throw new PHPExcel_Exception(sqlite_error_string($this->DBHandle->lastError())); - } - if (!$this->DBHandle->queryExec('CREATE TABLE kvp_'.$this->TableName.' (id VARCHAR(12) PRIMARY KEY, value BLOB)')) { - throw new PHPExcel_Exception(sqlite_error_string($this->DBHandle->lastError())); - } - } - } - - /** - * Destroy this cell collection - */ - public function __destruct() - { - if (!is_null($this->DBHandle)) { - $this->DBHandle->queryExec('DROP TABLE kvp_'.$this->TableName); - } - $this->DBHandle = null; - } - - /** - * Identify whether the caching method is currently available - * Some methods are dependent on the availability of certain extensions being enabled in the PHP build - * - * @return boolean - */ - public static function cacheMethodIsAvailable() - { - if (!function_exists('sqlite_open')) { - return false; - } - - return true; - } -} diff --git a/Utils/PHPExcel/CachedObjectStorage/SQLite3.php b/Utils/PHPExcel/CachedObjectStorage/SQLite3.php deleted file mode 100644 index 27473d6..0000000 --- a/Utils/PHPExcel/CachedObjectStorage/SQLite3.php +++ /dev/null @@ -1,346 +0,0 @@ -currentCellIsDirty && !empty($this->currentObjectID)) { - $this->currentObject->detach(); - - $this->insertQuery->bindValue('id', $this->currentObjectID, SQLITE3_TEXT); - $this->insertQuery->bindValue('data', serialize($this->currentObject), SQLITE3_BLOB); - $result = $this->insertQuery->execute(); - if ($result === false) { - throw new PHPExcel_Exception($this->DBHandle->lastErrorMsg()); - } - $this->currentCellIsDirty = false; - } - $this->currentObjectID = $this->currentObject = null; - } - - /** - * Add or Update a cell in cache identified by coordinate address - * - * @param string $pCoord Coordinate address of the cell to update - * @param PHPExcel_Cell $cell Cell to update - * @return PHPExcel_Cell - * @throws PHPExcel_Exception - */ - public function addCacheData($pCoord, PHPExcel_Cell $cell) - { - if (($pCoord !== $this->currentObjectID) && ($this->currentObjectID !== null)) { - $this->storeData(); - } - - $this->currentObjectID = $pCoord; - $this->currentObject = $cell; - $this->currentCellIsDirty = true; - - return $cell; - } - - /** - * Get cell at a specific coordinate - * - * @param string $pCoord Coordinate of the cell - * @throws PHPExcel_Exception - * @return PHPExcel_Cell Cell that was found, or null if not found - */ - public function getCacheData($pCoord) - { - if ($pCoord === $this->currentObjectID) { - return $this->currentObject; - } - $this->storeData(); - - $this->selectQuery->bindValue('id', $pCoord, SQLITE3_TEXT); - $cellResult = $this->selectQuery->execute(); - if ($cellResult === false) { - throw new PHPExcel_Exception($this->DBHandle->lastErrorMsg()); - } - $cellData = $cellResult->fetchArray(SQLITE3_ASSOC); - if ($cellData === false) { - // Return null if requested entry doesn't exist in cache - return null; - } - - // Set current entry to the requested entry - $this->currentObjectID = $pCoord; - - $this->currentObject = unserialize($cellData['value']); - // Re-attach this as the cell's parent - $this->currentObject->attach($this); - - // Return requested entry - return $this->currentObject; - } - - /** - * Is a value set for an indexed cell? - * - * @param string $pCoord Coordinate address of the cell to check - * @return boolean - */ - public function isDataSet($pCoord) - { - if ($pCoord === $this->currentObjectID) { - return true; - } - - // Check if the requested entry exists in the cache - $this->selectQuery->bindValue('id', $pCoord, SQLITE3_TEXT); - $cellResult = $this->selectQuery->execute(); - if ($cellResult === false) { - throw new PHPExcel_Exception($this->DBHandle->lastErrorMsg()); - } - $cellData = $cellResult->fetchArray(SQLITE3_ASSOC); - - return ($cellData === false) ? false : true; - } - - /** - * Delete a cell in cache identified by coordinate address - * - * @param string $pCoord Coordinate address of the cell to delete - * @throws PHPExcel_Exception - */ - public function deleteCacheData($pCoord) - { - if ($pCoord === $this->currentObjectID) { - $this->currentObject->detach(); - $this->currentObjectID = $this->currentObject = null; - } - - // Check if the requested entry exists in the cache - $this->deleteQuery->bindValue('id', $pCoord, SQLITE3_TEXT); - $result = $this->deleteQuery->execute(); - if ($result === false) { - throw new PHPExcel_Exception($this->DBHandle->lastErrorMsg()); - } - - $this->currentCellIsDirty = false; - } - - /** - * Move a cell object from one address to another - * - * @param string $fromAddress Current address of the cell to move - * @param string $toAddress Destination address of the cell to move - * @return boolean - */ - public function moveCell($fromAddress, $toAddress) - { - if ($fromAddress === $this->currentObjectID) { - $this->currentObjectID = $toAddress; - } - - $this->deleteQuery->bindValue('id', $toAddress, SQLITE3_TEXT); - $result = $this->deleteQuery->execute(); - if ($result === false) { - throw new PHPExcel_Exception($this->DBHandle->lastErrorMsg()); - } - - $this->updateQuery->bindValue('toid', $toAddress, SQLITE3_TEXT); - $this->updateQuery->bindValue('fromid', $fromAddress, SQLITE3_TEXT); - $result = $this->updateQuery->execute(); - if ($result === false) { - throw new PHPExcel_Exception($this->DBHandle->lastErrorMsg()); - } - - return true; - } - - /** - * Get a list of all cell addresses currently held in cache - * - * @return string[] - */ - public function getCellList() - { - if ($this->currentObjectID !== null) { - $this->storeData(); - } - - $query = "SELECT id FROM kvp_".$this->TableName; - $cellIdsResult = $this->DBHandle->query($query); - if ($cellIdsResult === false) { - throw new PHPExcel_Exception($this->DBHandle->lastErrorMsg()); - } - - $cellKeys = array(); - while ($row = $cellIdsResult->fetchArray(SQLITE3_ASSOC)) { - $cellKeys[] = $row['id']; - } - - return $cellKeys; - } - - /** - * Clone the cell collection - * - * @param PHPExcel_Worksheet $parent The new worksheet - * @return void - */ - public function copyCellCollection(PHPExcel_Worksheet $parent) - { - $this->currentCellIsDirty; - $this->storeData(); - - // Get a new id for the new table name - $tableName = str_replace('.', '_', $this->getUniqueID()); - if (!$this->DBHandle->exec('CREATE TABLE kvp_'.$tableName.' (id VARCHAR(12) PRIMARY KEY, value BLOB) - AS SELECT * FROM kvp_'.$this->TableName) - ) { - throw new PHPExcel_Exception($this->DBHandle->lastErrorMsg()); - } - - // Copy the existing cell cache file - $this->TableName = $tableName; - } - - /** - * Clear the cell collection and disconnect from our parent - * - * @return void - */ - public function unsetWorksheetCells() - { - if (!is_null($this->currentObject)) { - $this->currentObject->detach(); - $this->currentObject = $this->currentObjectID = null; - } - // detach ourself from the worksheet, so that it can then delete this object successfully - $this->parent = null; - - // Close down the temporary cache file - $this->__destruct(); - } - - /** - * Initialise this new cell collection - * - * @param PHPExcel_Worksheet $parent The worksheet for this cell collection - */ - public function __construct(PHPExcel_Worksheet $parent) - { - parent::__construct($parent); - if (is_null($this->DBHandle)) { - $this->TableName = str_replace('.', '_', $this->getUniqueID()); - $_DBName = ':memory:'; - - $this->DBHandle = new SQLite3($_DBName); - if ($this->DBHandle === false) { - throw new PHPExcel_Exception($this->DBHandle->lastErrorMsg()); - } - if (!$this->DBHandle->exec('CREATE TABLE kvp_'.$this->TableName.' (id VARCHAR(12) PRIMARY KEY, value BLOB)')) { - throw new PHPExcel_Exception($this->DBHandle->lastErrorMsg()); - } - } - - $this->selectQuery = $this->DBHandle->prepare("SELECT value FROM kvp_".$this->TableName." WHERE id = :id"); - $this->insertQuery = $this->DBHandle->prepare("INSERT OR REPLACE INTO kvp_".$this->TableName." VALUES(:id,:data)"); - $this->updateQuery = $this->DBHandle->prepare("UPDATE kvp_".$this->TableName." SET id=:toId WHERE id=:fromId"); - $this->deleteQuery = $this->DBHandle->prepare("DELETE FROM kvp_".$this->TableName." WHERE id = :id"); - } - - /** - * Destroy this cell collection - */ - public function __destruct() - { - if (!is_null($this->DBHandle)) { - $this->DBHandle->exec('DROP TABLE kvp_'.$this->TableName); - $this->DBHandle->close(); - } - $this->DBHandle = null; - } - - /** - * Identify whether the caching method is currently available - * Some methods are dependent on the availability of certain extensions being enabled in the PHP build - * - * @return boolean - */ - public static function cacheMethodIsAvailable() - { - if (!class_exists('SQLite3', false)) { - return false; - } - - return true; - } -} diff --git a/Utils/PHPExcel/CachedObjectStorage/Wincache.php b/Utils/PHPExcel/CachedObjectStorage/Wincache.php deleted file mode 100644 index 1567874..0000000 --- a/Utils/PHPExcel/CachedObjectStorage/Wincache.php +++ /dev/null @@ -1,289 +0,0 @@ -currentCellIsDirty && !empty($this->currentObjectID)) { - $this->currentObject->detach(); - - $obj = serialize($this->currentObject); - if (wincache_ucache_exists($this->cachePrefix.$this->currentObjectID.'.cache')) { - if (!wincache_ucache_set($this->cachePrefix.$this->currentObjectID.'.cache', $obj, $this->cacheTime)) { - $this->__destruct(); - throw new PHPExcel_Exception('Failed to store cell '.$this->currentObjectID.' in WinCache'); - } - } else { - if (!wincache_ucache_add($this->cachePrefix.$this->currentObjectID.'.cache', $obj, $this->cacheTime)) { - $this->__destruct(); - throw new PHPExcel_Exception('Failed to store cell '.$this->currentObjectID.' in WinCache'); - } - } - $this->currentCellIsDirty = false; - } - - $this->currentObjectID = $this->currentObject = null; - } - - /** - * Add or Update a cell in cache identified by coordinate address - * - * @param string $pCoord Coordinate address of the cell to update - * @param PHPExcel_Cell $cell Cell to update - * @return PHPExcel_Cell - * @throws PHPExcel_Exception - */ - public function addCacheData($pCoord, PHPExcel_Cell $cell) - { - if (($pCoord !== $this->currentObjectID) && ($this->currentObjectID !== null)) { - $this->storeData(); - } - $this->cellCache[$pCoord] = true; - - $this->currentObjectID = $pCoord; - $this->currentObject = $cell; - $this->currentCellIsDirty = true; - - return $cell; - } - - /** - * Is a value set in the current PHPExcel_CachedObjectStorage_ICache for an indexed cell? - * - * @param string $pCoord Coordinate address of the cell to check - * @return boolean - */ - public function isDataSet($pCoord) - { - // Check if the requested entry is the current object, or exists in the cache - if (parent::isDataSet($pCoord)) { - if ($this->currentObjectID == $pCoord) { - return true; - } - // Check if the requested entry still exists in cache - $success = wincache_ucache_exists($this->cachePrefix.$pCoord.'.cache'); - if ($success === false) { - // Entry no longer exists in Wincache, so clear it from the cache array - parent::deleteCacheData($pCoord); - throw new PHPExcel_Exception('Cell entry '.$pCoord.' no longer exists in WinCache'); - } - return true; - } - return false; - } - - - /** - * Get cell at a specific coordinate - * - * @param string $pCoord Coordinate of the cell - * @throws PHPExcel_Exception - * @return PHPExcel_Cell Cell that was found, or null if not found - */ - public function getCacheData($pCoord) - { - if ($pCoord === $this->currentObjectID) { - return $this->currentObject; - } - $this->storeData(); - - // Check if the entry that has been requested actually exists - $obj = null; - if (parent::isDataSet($pCoord)) { - $success = false; - $obj = wincache_ucache_get($this->cachePrefix.$pCoord.'.cache', $success); - if ($success === false) { - // Entry no longer exists in WinCache, so clear it from the cache array - parent::deleteCacheData($pCoord); - throw new PHPExcel_Exception('Cell entry '.$pCoord.' no longer exists in WinCache'); - } - } else { - // Return null if requested entry doesn't exist in cache - return null; - } - - // Set current entry to the requested entry - $this->currentObjectID = $pCoord; - $this->currentObject = unserialize($obj); - // Re-attach this as the cell's parent - $this->currentObject->attach($this); - - // Return requested entry - return $this->currentObject; - } - - - /** - * Get a list of all cell addresses currently held in cache - * - * @return string[] - */ - public function getCellList() - { - if ($this->currentObjectID !== null) { - $this->storeData(); - } - - return parent::getCellList(); - } - - /** - * Delete a cell in cache identified by coordinate address - * - * @param string $pCoord Coordinate address of the cell to delete - * @throws PHPExcel_Exception - */ - public function deleteCacheData($pCoord) - { - // Delete the entry from Wincache - wincache_ucache_delete($this->cachePrefix.$pCoord.'.cache'); - - // Delete the entry from our cell address array - parent::deleteCacheData($pCoord); - } - - /** - * Clone the cell collection - * - * @param PHPExcel_Worksheet $parent The new worksheet - * @return void - */ - public function copyCellCollection(PHPExcel_Worksheet $parent) - { - parent::copyCellCollection($parent); - // Get a new id for the new file name - $baseUnique = $this->getUniqueID(); - $newCachePrefix = substr(md5($baseUnique), 0, 8) . '.'; - $cacheList = $this->getCellList(); - foreach ($cacheList as $cellID) { - if ($cellID != $this->currentObjectID) { - $success = false; - $obj = wincache_ucache_get($this->cachePrefix.$cellID.'.cache', $success); - if ($success === false) { - // Entry no longer exists in WinCache, so clear it from the cache array - parent::deleteCacheData($cellID); - throw new PHPExcel_Exception('Cell entry '.$cellID.' no longer exists in Wincache'); - } - if (!wincache_ucache_add($newCachePrefix.$cellID.'.cache', $obj, $this->cacheTime)) { - $this->__destruct(); - throw new PHPExcel_Exception('Failed to store cell '.$cellID.' in Wincache'); - } - } - } - $this->cachePrefix = $newCachePrefix; - } - - - /** - * Clear the cell collection and disconnect from our parent - * - * @return void - */ - public function unsetWorksheetCells() - { - if (!is_null($this->currentObject)) { - $this->currentObject->detach(); - $this->currentObject = $this->currentObjectID = null; - } - - // Flush the WinCache cache - $this->__destruct(); - - $this->cellCache = array(); - - // detach ourself from the worksheet, so that it can then delete this object successfully - $this->parent = null; - } - - /** - * Initialise this new cell collection - * - * @param PHPExcel_Worksheet $parent The worksheet for this cell collection - * @param array of mixed $arguments Additional initialisation arguments - */ - public function __construct(PHPExcel_Worksheet $parent, $arguments) - { - $cacheTime = (isset($arguments['cacheTime'])) ? $arguments['cacheTime'] : 600; - - if (is_null($this->cachePrefix)) { - $baseUnique = $this->getUniqueID(); - $this->cachePrefix = substr(md5($baseUnique), 0, 8).'.'; - $this->cacheTime = $cacheTime; - - parent::__construct($parent); - } - } - - /** - * Destroy this cell collection - */ - public function __destruct() - { - $cacheList = $this->getCellList(); - foreach ($cacheList as $cellID) { - wincache_ucache_delete($this->cachePrefix.$cellID.'.cache'); - } - } - - /** - * Identify whether the caching method is currently available - * Some methods are dependent on the availability of certain extensions being enabled in the PHP build - * - * @return boolean - */ - public static function cacheMethodIsAvailable() - { - if (!function_exists('wincache_ucache_add')) { - return false; - } - - return true; - } -} diff --git a/Utils/PHPExcel/CachedObjectStorageFactory.php b/Utils/PHPExcel/CachedObjectStorageFactory.php deleted file mode 100644 index 0a96978..0000000 --- a/Utils/PHPExcel/CachedObjectStorageFactory.php +++ /dev/null @@ -1,231 +0,0 @@ - array( - ), - self::cache_in_memory_gzip => array( - ), - self::cache_in_memory_serialized => array( - ), - self::cache_igbinary => array( - ), - self::cache_to_phpTemp => array( 'memoryCacheSize' => '1MB' - ), - self::cache_to_discISAM => array( 'dir' => null - ), - self::cache_to_apc => array( 'cacheTime' => 600 - ), - self::cache_to_memcache => array( 'memcacheServer' => 'localhost', - 'memcachePort' => 11211, - 'cacheTime' => 600 - ), - self::cache_to_wincache => array( 'cacheTime' => 600 - ), - self::cache_to_sqlite => array( - ), - self::cache_to_sqlite3 => array( - ), - ); - - /** - * Arguments for the active cache storage method - * - * @var array of mixed array - */ - private static $storageMethodParameters = array(); - - /** - * Return the current cache storage method - * - * @return string|null - **/ - public static function getCacheStorageMethod() - { - return self::$cacheStorageMethod; - } - - /** - * Return the current cache storage class - * - * @return PHPExcel_CachedObjectStorage_ICache|null - **/ - public static function getCacheStorageClass() - { - return self::$cacheStorageClass; - } - - /** - * Return the list of all possible cache storage methods - * - * @return string[] - **/ - public static function getAllCacheStorageMethods() - { - return self::$storageMethods; - } - - /** - * Return the list of all available cache storage methods - * - * @return string[] - **/ - public static function getCacheStorageMethods() - { - $activeMethods = array(); - foreach (self::$storageMethods as $storageMethod) { - $cacheStorageClass = 'PHPExcel_CachedObjectStorage_' . $storageMethod; - if (call_user_func(array($cacheStorageClass, 'cacheMethodIsAvailable'))) { - $activeMethods[] = $storageMethod; - } - } - return $activeMethods; - } - - /** - * Identify the cache storage method to use - * - * @param string $method Name of the method to use for cell cacheing - * @param array of mixed $arguments Additional arguments to pass to the cell caching class - * when instantiating - * @return boolean - **/ - public static function initialize($method = self::cache_in_memory, $arguments = array()) - { - if (!in_array($method, self::$storageMethods)) { - return false; - } - - $cacheStorageClass = 'PHPExcel_CachedObjectStorage_'.$method; - if (!call_user_func(array( $cacheStorageClass, - 'cacheMethodIsAvailable'))) { - return false; - } - - self::$storageMethodParameters[$method] = self::$storageMethodDefaultParameters[$method]; - foreach ($arguments as $k => $v) { - if (array_key_exists($k, self::$storageMethodParameters[$method])) { - self::$storageMethodParameters[$method][$k] = $v; - } - } - - if (self::$cacheStorageMethod === null) { - self::$cacheStorageClass = 'PHPExcel_CachedObjectStorage_' . $method; - self::$cacheStorageMethod = $method; - } - return true; - } - - /** - * Initialise the cache storage - * - * @param PHPExcel_Worksheet $parent Enable cell caching for this worksheet - * @return PHPExcel_CachedObjectStorage_ICache - **/ - public static function getInstance(PHPExcel_Worksheet $parent) - { - $cacheMethodIsAvailable = true; - if (self::$cacheStorageMethod === null) { - $cacheMethodIsAvailable = self::initialize(); - } - - if ($cacheMethodIsAvailable) { - $instance = new self::$cacheStorageClass( - $parent, - self::$storageMethodParameters[self::$cacheStorageMethod] - ); - if ($instance !== null) { - return $instance; - } - } - - return false; - } - - /** - * Clear the cache storage - * - **/ - public static function finalize() - { - self::$cacheStorageMethod = null; - self::$cacheStorageClass = null; - self::$storageMethodParameters = array(); - } -} diff --git a/Utils/PHPExcel/CalcEngine/CyclicReferenceStack.php b/Utils/PHPExcel/CalcEngine/CyclicReferenceStack.php deleted file mode 100644 index 1072fc7..0000000 --- a/Utils/PHPExcel/CalcEngine/CyclicReferenceStack.php +++ /dev/null @@ -1,94 +0,0 @@ -stack); - } - - /** - * Push a new entry onto the stack - * - * @param mixed $value - */ - public function push($value) - { - $this->stack[$value] = $value; - } - - /** - * Pop the last entry from the stack - * - * @return mixed - */ - public function pop() - { - return array_pop($this->stack); - } - - /** - * Test to see if a specified entry exists on the stack - * - * @param mixed $value The value to test - */ - public function onStack($value) - { - return isset($this->stack[$value]); - } - - /** - * Clear the stack - */ - public function clear() - { - $this->stack = array(); - } - - /** - * Return an array of all entries on the stack - * - * @return mixed[] - */ - public function showStack() - { - return $this->stack; - } -} diff --git a/Utils/PHPExcel/CalcEngine/Logger.php b/Utils/PHPExcel/CalcEngine/Logger.php deleted file mode 100644 index 599d6b9..0000000 --- a/Utils/PHPExcel/CalcEngine/Logger.php +++ /dev/null @@ -1,151 +0,0 @@ -cellStack = $stack; - } - - /** - * Return whether calculation engine logging is enabled or disabled - * - * @return boolean - */ - public function getWriteDebugLog() - { - return $this->writeDebugLog; - } - - /** - * Enable/Disable Calculation engine logging - * - * @param boolean $pValue - */ - public function setWriteDebugLog($pValue = false) - { - $this->writeDebugLog = $pValue; - } - - /** - * Return whether echoing of debug log information is enabled or disabled - * - * @return boolean - */ - public function getEchoDebugLog() - { - return $this->echoDebugLog; - } - - /** - * Enable/Disable echoing of debug log information - * - * @param boolean $pValue - */ - public function setEchoDebugLog($pValue = false) - { - $this->echoDebugLog = $pValue; - } - - /** - * Write an entry to the calculation engine debug log - */ - public function writeDebugLog() - { - // Only write the debug log if logging is enabled - if ($this->writeDebugLog) { - $message = implode(func_get_args()); - $cellReference = implode(' -> ', $this->cellStack->showStack()); - if ($this->echoDebugLog) { - echo $cellReference, - ($this->cellStack->count() > 0 ? ' => ' : ''), - $message, - PHP_EOL; - } - $this->debugLog[] = $cellReference . - ($this->cellStack->count() > 0 ? ' => ' : '') . - $message; - } - } - - /** - * Clear the calculation engine debug log - */ - public function clearLog() - { - $this->debugLog = array(); - } - - /** - * Return the calculation engine debug log - * - * @return string[] - */ - public function getLog() - { - return $this->debugLog; - } -} diff --git a/Utils/PHPExcel/Calculation.php b/Utils/PHPExcel/Calculation.php deleted file mode 100644 index 20b1ec3..0000000 --- a/Utils/PHPExcel/Calculation.php +++ /dev/null @@ -1,4391 +0,0 @@ -=-]*)|(\'[^\']*\')|(\"[^\"]*\"))!)?\$?([a-z]{1,3})\$?(\d{1,7})'); - // Named Range of cells - define('CALCULATION_REGEXP_NAMEDRANGE', '((([^\s,!&%^\/\*\+<>=-]*)|(\'[^\']*\')|(\"[^\"]*\"))!)?([_A-Z][_A-Z0-9\.]*)'); - } else { - // Cell reference (cell or range of cells, with or without a sheet reference) - define('CALCULATION_REGEXP_CELLREF', '(((\w*)|(\'[^\']*\')|(\"[^\"]*\"))!)?\$?([a-z]{1,3})\$?(\d+)'); - // Named Range of cells - define('CALCULATION_REGEXP_NAMEDRANGE', '(((\w*)|(\'.*\')|(\".*\"))!)?([_A-Z][_A-Z0-9\.]*)'); - } -} - -/** - * PHPExcel_Calculation (Multiton) - * - * Copyright (c) 2006 - 2015 PHPExcel - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - * - * @category PHPExcel - * @package PHPExcel_Calculation - * @copyright Copyright (c) 2006 - 2015 PHPExcel (http://www.codeplex.com/PHPExcel) - * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL - * @version ##VERSION##, ##DATE## - */ -class PHPExcel_Calculation -{ - /** Constants */ - /** Regular Expressions */ - // Numeric operand - const CALCULATION_REGEXP_NUMBER = '[-+]?\d*\.?\d+(e[-+]?\d+)?'; - // String operand - const CALCULATION_REGEXP_STRING = '"(?:[^"]|"")*"'; - // Opening bracket - const CALCULATION_REGEXP_OPENBRACE = '\('; - // Function (allow for the old @ symbol that could be used to prefix a function, but we'll ignore it) - const CALCULATION_REGEXP_FUNCTION = '@?([A-Z][A-Z0-9\.]*)[\s]*\('; - // Cell reference (cell or range of cells, with or without a sheet reference) - const CALCULATION_REGEXP_CELLREF = CALCULATION_REGEXP_CELLREF; - // Named Range of cells - const CALCULATION_REGEXP_NAMEDRANGE = CALCULATION_REGEXP_NAMEDRANGE; - // Error - const CALCULATION_REGEXP_ERROR = '\#[A-Z][A-Z0_\/]*[!\?]?'; - - - /** constants */ - const RETURN_ARRAY_AS_ERROR = 'error'; - const RETURN_ARRAY_AS_VALUE = 'value'; - const RETURN_ARRAY_AS_ARRAY = 'array'; - - private static $returnArrayAsType = self::RETURN_ARRAY_AS_VALUE; - - - /** - * Instance of this class - * - * @access private - * @var PHPExcel_Calculation - */ - private static $instance; - - - /** - * Instance of the workbook this Calculation Engine is using - * - * @access private - * @var PHPExcel - */ - private $workbook; - - /** - * List of instances of the calculation engine that we've instantiated for individual workbooks - * - * @access private - * @var PHPExcel_Calculation[] - */ - private static $workbookSets; - - /** - * Calculation cache - * - * @access private - * @var array - */ - private $calculationCache = array (); - - - /** - * Calculation cache enabled - * - * @access private - * @var boolean - */ - private $calculationCacheEnabled = true; - - - /** - * List of operators that can be used within formulae - * The true/false value indicates whether it is a binary operator or a unary operator - * - * @access private - * @var array - */ - private static $operators = array( - '+' => true, '-' => true, '*' => true, '/' => true, - '^' => true, '&' => true, '%' => false, '~' => false, - '>' => true, '<' => true, '=' => true, '>=' => true, - '<=' => true, '<>' => true, '|' => true, ':' => true - ); - - /** - * List of binary operators (those that expect two operands) - * - * @access private - * @var array - */ - private static $binaryOperators = array( - '+' => true, '-' => true, '*' => true, '/' => true, - '^' => true, '&' => true, '>' => true, '<' => true, - '=' => true, '>=' => true, '<=' => true, '<>' => true, - '|' => true, ':' => true - ); - - /** - * The debug log generated by the calculation engine - * - * @access private - * @var PHPExcel_CalcEngine_Logger - * - */ - private $debugLog; - - /** - * Flag to determine how formula errors should be handled - * If true, then a user error will be triggered - * If false, then an exception will be thrown - * - * @access public - * @var boolean - * - */ - public $suppressFormulaErrors = false; - - /** - * Error message for any error that was raised/thrown by the calculation engine - * - * @access public - * @var string - * - */ - public $formulaError = null; - - /** - * An array of the nested cell references accessed by the calculation engine, used for the debug log - * - * @access private - * @var array of string - * - */ - private $cyclicReferenceStack; - - private $cellStack = array(); - - /** - * Current iteration counter for cyclic formulae - * If the value is 0 (or less) then cyclic formulae will throw an exception, - * otherwise they will iterate to the limit defined here before returning a result - * - * @var integer - * - */ - private $cyclicFormulaCounter = 1; - - private $cyclicFormulaCell = ''; - - /** - * Number of iterations for cyclic formulae - * - * @var integer - * - */ - public $cyclicFormulaCount = 1; - - /** - * Epsilon Precision used for comparisons in calculations - * - * @var float - * - */ - private $delta = 0.1e-12; - - - /** - * The current locale setting - * - * @var string - * - */ - private static $localeLanguage = 'en_us'; // US English (default locale) - - /** - * List of available locale settings - * Note that this is read for the locale subdirectory only when requested - * - * @var string[] - * - */ - private static $validLocaleLanguages = array( - 'en' // English (default language) - ); - - /** - * Locale-specific argument separator for function arguments - * - * @var string - * - */ - private static $localeArgumentSeparator = ','; - private static $localeFunctions = array(); - - /** - * Locale-specific translations for Excel constants (True, False and Null) - * - * @var string[] - * - */ - public static $localeBoolean = array( - 'TRUE' => 'TRUE', - 'FALSE' => 'FALSE', - 'NULL' => 'NULL' - ); - - /** - * Excel constant string translations to their PHP equivalents - * Constant conversion from text name/value to actual (datatyped) value - * - * @var string[] - * - */ - private static $excelConstants = array( - 'TRUE' => true, - 'FALSE' => false, - 'NULL' => null - ); - - // PHPExcel functions - private static $PHPExcelFunctions = array( - 'ABS' => array( - 'category' => PHPExcel_Calculation_Function::CATEGORY_MATH_AND_TRIG, - 'functionCall' => 'abs', - 'argumentCount' => '1' - ), - 'ACCRINT' => array( - 'category' => PHPExcel_Calculation_Function::CATEGORY_FINANCIAL, - 'functionCall' => 'PHPExcel_Calculation_Financial::ACCRINT', - 'argumentCount' => '4-7' - ), - 'ACCRINTM' => array( - 'category' => PHPExcel_Calculation_Function::CATEGORY_FINANCIAL, - 'functionCall' => 'PHPExcel_Calculation_Financial::ACCRINTM', - 'argumentCount' => '3-5' - ), - 'ACOS' => array( - 'category' => PHPExcel_Calculation_Function::CATEGORY_MATH_AND_TRIG, - 'functionCall' => 'acos', - 'argumentCount' => '1' - ), - 'ACOSH' => array( - 'category' => PHPExcel_Calculation_Function::CATEGORY_MATH_AND_TRIG, - 'functionCall' => 'acosh', - 'argumentCount' => '1' - ), - 'ADDRESS' => array( - 'category' => PHPExcel_Calculation_Function::CATEGORY_LOOKUP_AND_REFERENCE, - 'functionCall' => 'PHPExcel_Calculation_LookupRef::CELL_ADDRESS', - 'argumentCount' => '2-5' - ), - 'AMORDEGRC' => array( - 'category' => PHPExcel_Calculation_Function::CATEGORY_FINANCIAL, - 'functionCall' => 'PHPExcel_Calculation_Financial::AMORDEGRC', - 'argumentCount' => '6,7' - ), - 'AMORLINC' => array( - 'category' => PHPExcel_Calculation_Function::CATEGORY_FINANCIAL, - 'functionCall' => 'PHPExcel_Calculation_Financial::AMORLINC', - 'argumentCount' => '6,7' - ), - 'AND' => array( - 'category' => PHPExcel_Calculation_Function::CATEGORY_LOGICAL, - 'functionCall' => 'PHPExcel_Calculation_Logical::LOGICAL_AND', - 'argumentCount' => '1+' - ), - 'AREAS' => array( - 'category' => PHPExcel_Calculation_Function::CATEGORY_LOOKUP_AND_REFERENCE, - 'functionCall' => 'PHPExcel_Calculation_Functions::DUMMY', - 'argumentCount' => '1' - ), - 'ASC' => array( - 'category' => PHPExcel_Calculation_Function::CATEGORY_TEXT_AND_DATA, - 'functionCall' => 'PHPExcel_Calculation_Functions::DUMMY', - 'argumentCount' => '1' - ), - 'ASIN' => array( - 'category' => PHPExcel_Calculation_Function::CATEGORY_MATH_AND_TRIG, - 'functionCall' => 'asin', - 'argumentCount' => '1' - ), - 'ASINH' => array( - 'category' => PHPExcel_Calculation_Function::CATEGORY_MATH_AND_TRIG, - 'functionCall' => 'asinh', - 'argumentCount' => '1' - ), - 'ATAN' => array( - 'category' => PHPExcel_Calculation_Function::CATEGORY_MATH_AND_TRIG, - 'functionCall' => 'atan', - 'argumentCount' => '1' - ), - 'ATAN2' => array( - 'category' => PHPExcel_Calculation_Function::CATEGORY_MATH_AND_TRIG, - 'functionCall' => 'PHPExcel_Calculation_MathTrig::ATAN2', - 'argumentCount' => '2' - ), - 'ATANH' => array( - 'category' => PHPExcel_Calculation_Function::CATEGORY_MATH_AND_TRIG, - 'functionCall' => 'atanh', - 'argumentCount' => '1' - ), - 'AVEDEV' => array( - 'category' => PHPExcel_Calculation_Function::CATEGORY_STATISTICAL, - 'functionCall' => 'PHPExcel_Calculation_Statistical::AVEDEV', - 'argumentCount' => '1+' - ), - 'AVERAGE' => array( - 'category' => PHPExcel_Calculation_Function::CATEGORY_STATISTICAL, - 'functionCall' => 'PHPExcel_Calculation_Statistical::AVERAGE', - 'argumentCount' => '1+' - ), - 'AVERAGEA' => array( - 'category' => PHPExcel_Calculation_Function::CATEGORY_STATISTICAL, - 'functionCall' => 'PHPExcel_Calculation_Statistical::AVERAGEA', - 'argumentCount' => '1+' - ), - 'AVERAGEIF' => array( - 'category' => PHPExcel_Calculation_Function::CATEGORY_STATISTICAL, - 'functionCall' => 'PHPExcel_Calculation_Statistical::AVERAGEIF', - 'argumentCount' => '2,3' - ), - 'AVERAGEIFS' => array( - 'category' => PHPExcel_Calculation_Function::CATEGORY_STATISTICAL, - 'functionCall' => 'PHPExcel_Calculation_Functions::DUMMY', - 'argumentCount' => '3+' - ), - 'BAHTTEXT' => array( - 'category' => PHPExcel_Calculation_Function::CATEGORY_TEXT_AND_DATA, - 'functionCall' => 'PHPExcel_Calculation_Functions::DUMMY', - 'argumentCount' => '1' - ), - 'BESSELI' => array( - 'category' => PHPExcel_Calculation_Function::CATEGORY_ENGINEERING, - 'functionCall' => 'PHPExcel_Calculation_Engineering::BESSELI', - 'argumentCount' => '2' - ), - 'BESSELJ' => array( - 'category' => PHPExcel_Calculation_Function::CATEGORY_ENGINEERING, - 'functionCall' => 'PHPExcel_Calculation_Engineering::BESSELJ', - 'argumentCount' => '2' - ), - 'BESSELK' => array( - 'category' => PHPExcel_Calculation_Function::CATEGORY_ENGINEERING, - 'functionCall' => 'PHPExcel_Calculation_Engineering::BESSELK', - 'argumentCount' => '2' - ), - 'BESSELY' => array( - 'category' => PHPExcel_Calculation_Function::CATEGORY_ENGINEERING, - 'functionCall' => 'PHPExcel_Calculation_Engineering::BESSELY', - 'argumentCount' => '2' - ), - 'BETADIST' => array( - 'category' => PHPExcel_Calculation_Function::CATEGORY_STATISTICAL, - 'functionCall' => 'PHPExcel_Calculation_Statistical::BETADIST', - 'argumentCount' => '3-5' - ), - 'BETAINV' => array( - 'category' => PHPExcel_Calculation_Function::CATEGORY_STATISTICAL, - 'functionCall' => 'PHPExcel_Calculation_Statistical::BETAINV', - 'argumentCount' => '3-5' - ), - 'BIN2DEC' => array( - 'category' => PHPExcel_Calculation_Function::CATEGORY_ENGINEERING, - 'functionCall' => 'PHPExcel_Calculation_Engineering::BINTODEC', - 'argumentCount' => '1' - ), - 'BIN2HEX' => array( - 'category' => PHPExcel_Calculation_Function::CATEGORY_ENGINEERING, - 'functionCall' => 'PHPExcel_Calculation_Engineering::BINTOHEX', - 'argumentCount' => '1,2' - ), - 'BIN2OCT' => array( - 'category' => PHPExcel_Calculation_Function::CATEGORY_ENGINEERING, - 'functionCall' => 'PHPExcel_Calculation_Engineering::BINTOOCT', - 'argumentCount' => '1,2' - ), - 'BINOMDIST' => array( - 'category' => PHPExcel_Calculation_Function::CATEGORY_STATISTICAL, - 'functionCall' => 'PHPExcel_Calculation_Statistical::BINOMDIST', - 'argumentCount' => '4' - ), - 'CEILING' => array( - 'category' => PHPExcel_Calculation_Function::CATEGORY_MATH_AND_TRIG, - 'functionCall' => 'PHPExcel_Calculation_MathTrig::CEILING', - 'argumentCount' => '2' - ), - 'CELL' => array( - 'category' => PHPExcel_Calculation_Function::CATEGORY_INFORMATION, - 'functionCall' => 'PHPExcel_Calculation_Functions::DUMMY', - 'argumentCount' => '1,2' - ), - 'CHAR' => array( - 'category' => PHPExcel_Calculation_Function::CATEGORY_TEXT_AND_DATA, - 'functionCall' => 'PHPExcel_Calculation_TextData::CHARACTER', - 'argumentCount' => '1' - ), - 'CHIDIST' => array( - 'category' => PHPExcel_Calculation_Function::CATEGORY_STATISTICAL, - 'functionCall' => 'PHPExcel_Calculation_Statistical::CHIDIST', - 'argumentCount' => '2' - ), - 'CHIINV' => array( - 'category' => PHPExcel_Calculation_Function::CATEGORY_STATISTICAL, - 'functionCall' => 'PHPExcel_Calculation_Statistical::CHIINV', - 'argumentCount' => '2' - ), - 'CHITEST' => array( - 'category' => PHPExcel_Calculation_Function::CATEGORY_STATISTICAL, - 'functionCall' => 'PHPExcel_Calculation_Functions::DUMMY', - 'argumentCount' => '2' - ), - 'CHOOSE' => array( - 'category' => PHPExcel_Calculation_Function::CATEGORY_LOOKUP_AND_REFERENCE, - 'functionCall' => 'PHPExcel_Calculation_LookupRef::CHOOSE', - 'argumentCount' => '2+' - ), - 'CLEAN' => array( - 'category' => PHPExcel_Calculation_Function::CATEGORY_TEXT_AND_DATA, - 'functionCall' => 'PHPExcel_Calculation_TextData::TRIMNONPRINTABLE', - 'argumentCount' => '1' - ), - 'CODE' => array( - 'category' => PHPExcel_Calculation_Function::CATEGORY_TEXT_AND_DATA, - 'functionCall' => 'PHPExcel_Calculation_TextData::ASCIICODE', - 'argumentCount' => '1' - ), - 'COLUMN' => array( - 'category' => PHPExcel_Calculation_Function::CATEGORY_LOOKUP_AND_REFERENCE, - 'functionCall' => 'PHPExcel_Calculation_LookupRef::COLUMN', - 'argumentCount' => '-1', - 'passByReference' => array(true) - ), - 'COLUMNS' => array( - 'category' => PHPExcel_Calculation_Function::CATEGORY_LOOKUP_AND_REFERENCE, - 'functionCall' => 'PHPExcel_Calculation_LookupRef::COLUMNS', - 'argumentCount' => '1' - ), - 'COMBIN' => array( - 'category' => PHPExcel_Calculation_Function::CATEGORY_MATH_AND_TRIG, - 'functionCall' => 'PHPExcel_Calculation_MathTrig::COMBIN', - 'argumentCount' => '2' - ), - 'COMPLEX' => array( - 'category' => PHPExcel_Calculation_Function::CATEGORY_ENGINEERING, - 'functionCall' => 'PHPExcel_Calculation_Engineering::COMPLEX', - 'argumentCount' => '2,3' - ), - 'CONCATENATE' => array( - 'category' => PHPExcel_Calculation_Function::CATEGORY_TEXT_AND_DATA, - 'functionCall' => 'PHPExcel_Calculation_TextData::CONCATENATE', - 'argumentCount' => '1+' - ), - 'CONFIDENCE' => array( - 'category' => PHPExcel_Calculation_Function::CATEGORY_STATISTICAL, - 'functionCall' => 'PHPExcel_Calculation_Statistical::CONFIDENCE', - 'argumentCount' => '3' - ), - 'CONVERT' => array( - 'category' => PHPExcel_Calculation_Function::CATEGORY_ENGINEERING, - 'functionCall' => 'PHPExcel_Calculation_Engineering::CONVERTUOM', - 'argumentCount' => '3' - ), - 'CORREL' => array( - 'category' => PHPExcel_Calculation_Function::CATEGORY_STATISTICAL, - 'functionCall' => 'PHPExcel_Calculation_Statistical::CORREL', - 'argumentCount' => '2' - ), - 'COS' => array( - 'category' => PHPExcel_Calculation_Function::CATEGORY_MATH_AND_TRIG, - 'functionCall' => 'cos', - 'argumentCount' => '1' - ), - 'COSH' => array( - 'category' => PHPExcel_Calculation_Function::CATEGORY_MATH_AND_TRIG, - 'functionCall' => 'cosh', - 'argumentCount' => '1' - ), - 'COUNT' => array( - 'category' => PHPExcel_Calculation_Function::CATEGORY_STATISTICAL, - 'functionCall' => 'PHPExcel_Calculation_Statistical::COUNT', - 'argumentCount' => '1+' - ), - 'COUNTA' => array( - 'category' => PHPExcel_Calculation_Function::CATEGORY_STATISTICAL, - 'functionCall' => 'PHPExcel_Calculation_Statistical::COUNTA', - 'argumentCount' => '1+' - ), - 'COUNTBLANK' => array( - 'category' => PHPExcel_Calculation_Function::CATEGORY_STATISTICAL, - 'functionCall' => 'PHPExcel_Calculation_Statistical::COUNTBLANK', - 'argumentCount' => '1' - ), - 'COUNTIF' => array( - 'category' => PHPExcel_Calculation_Function::CATEGORY_STATISTICAL, - 'functionCall' => 'PHPExcel_Calculation_Statistical::COUNTIF', - 'argumentCount' => '2' - ), - 'COUNTIFS' => array( - 'category' => PHPExcel_Calculation_Function::CATEGORY_STATISTICAL, - 'functionCall' => 'PHPExcel_Calculation_Functions::DUMMY', - 'argumentCount' => '2' - ), - 'COUPDAYBS' => array( - 'category' => PHPExcel_Calculation_Function::CATEGORY_FINANCIAL, - 'functionCall' => 'PHPExcel_Calculation_Financial::COUPDAYBS', - 'argumentCount' => '3,4' - ), - 'COUPDAYS' => array( - 'category' => PHPExcel_Calculation_Function::CATEGORY_FINANCIAL, - 'functionCall' => 'PHPExcel_Calculation_Financial::COUPDAYS', - 'argumentCount' => '3,4' - ), - 'COUPDAYSNC' => array( - 'category' => PHPExcel_Calculation_Function::CATEGORY_FINANCIAL, - 'functionCall' => 'PHPExcel_Calculation_Financial::COUPDAYSNC', - 'argumentCount' => '3,4' - ), - 'COUPNCD' => array( - 'category' => PHPExcel_Calculation_Function::CATEGORY_FINANCIAL, - 'functionCall' => 'PHPExcel_Calculation_Financial::COUPNCD', - 'argumentCount' => '3,4' - ), - 'COUPNUM' => array( - 'category' => PHPExcel_Calculation_Function::CATEGORY_FINANCIAL, - 'functionCall' => 'PHPExcel_Calculation_Financial::COUPNUM', - 'argumentCount' => '3,4' - ), - 'COUPPCD' => array( - 'category' => PHPExcel_Calculation_Function::CATEGORY_FINANCIAL, - 'functionCall' => 'PHPExcel_Calculation_Financial::COUPPCD', - 'argumentCount' => '3,4' - ), - 'COVAR' => array( - 'category' => PHPExcel_Calculation_Function::CATEGORY_STATISTICAL, - 'functionCall' => 'PHPExcel_Calculation_Statistical::COVAR', - 'argumentCount' => '2' - ), - 'CRITBINOM' => array( - 'category' => PHPExcel_Calculation_Function::CATEGORY_STATISTICAL, - 'functionCall' => 'PHPExcel_Calculation_Statistical::CRITBINOM', - 'argumentCount' => '3' - ), - 'CUBEKPIMEMBER' => array( - 'category' => PHPExcel_Calculation_Function::CATEGORY_CUBE, - 'functionCall' => 'PHPExcel_Calculation_Functions::DUMMY', - 'argumentCount' => '?' - ), - 'CUBEMEMBER' => array( - 'category' => PHPExcel_Calculation_Function::CATEGORY_CUBE, - 'functionCall' => 'PHPExcel_Calculation_Functions::DUMMY', - 'argumentCount' => '?' - ), - 'CUBEMEMBERPROPERTY' => array( - 'category' => PHPExcel_Calculation_Function::CATEGORY_CUBE, - 'functionCall' => 'PHPExcel_Calculation_Functions::DUMMY', - 'argumentCount' => '?' - ), - 'CUBERANKEDMEMBER' => array( - 'category' => PHPExcel_Calculation_Function::CATEGORY_CUBE, - 'functionCall' => 'PHPExcel_Calculation_Functions::DUMMY', - 'argumentCount' => '?' - ), - 'CUBESET' => array( - 'category' => PHPExcel_Calculation_Function::CATEGORY_CUBE, - 'functionCall' => 'PHPExcel_Calculation_Functions::DUMMY', - 'argumentCount' => '?' - ), - 'CUBESETCOUNT' => array( - 'category' => PHPExcel_Calculation_Function::CATEGORY_CUBE, - 'functionCall' => 'PHPExcel_Calculation_Functions::DUMMY', - 'argumentCount' => '?' - ), - 'CUBEVALUE' => array( - 'category' => PHPExcel_Calculation_Function::CATEGORY_CUBE, - 'functionCall' => 'PHPExcel_Calculation_Functions::DUMMY', - 'argumentCount' => '?' - ), - 'CUMIPMT' => array( - 'category' => PHPExcel_Calculation_Function::CATEGORY_FINANCIAL, - 'functionCall' => 'PHPExcel_Calculation_Financial::CUMIPMT', - 'argumentCount' => '6' - ), - 'CUMPRINC' => array( - 'category' => PHPExcel_Calculation_Function::CATEGORY_FINANCIAL, - 'functionCall' => 'PHPExcel_Calculation_Financial::CUMPRINC', - 'argumentCount' => '6' - ), - 'DATE' => array( - 'category' => PHPExcel_Calculation_Function::CATEGORY_DATE_AND_TIME, - 'functionCall' => 'PHPExcel_Calculation_DateTime::DATE', - 'argumentCount' => '3' - ), - 'DATEDIF' => array( - 'category' => PHPExcel_Calculation_Function::CATEGORY_DATE_AND_TIME, - 'functionCall' => 'PHPExcel_Calculation_DateTime::DATEDIF', - 'argumentCount' => '2,3' - ), - 'DATEVALUE' => array( - 'category' => PHPExcel_Calculation_Function::CATEGORY_DATE_AND_TIME, - 'functionCall' => 'PHPExcel_Calculation_DateTime::DATEVALUE', - 'argumentCount' => '1' - ), - 'DAVERAGE' => array( - 'category' => PHPExcel_Calculation_Function::CATEGORY_DATABASE, - 'functionCall' => 'PHPExcel_Calculation_Database::DAVERAGE', - 'argumentCount' => '3' - ), - 'DAY' => array( - 'category' => PHPExcel_Calculation_Function::CATEGORY_DATE_AND_TIME, - 'functionCall' => 'PHPExcel_Calculation_DateTime::DAYOFMONTH', - 'argumentCount' => '1' - ), - 'DAYS360' => array( - 'category' => PHPExcel_Calculation_Function::CATEGORY_DATE_AND_TIME, - 'functionCall' => 'PHPExcel_Calculation_DateTime::DAYS360', - 'argumentCount' => '2,3' - ), - 'DB' => array( - 'category' => PHPExcel_Calculation_Function::CATEGORY_FINANCIAL, - 'functionCall' => 'PHPExcel_Calculation_Financial::DB', - 'argumentCount' => '4,5' - ), - 'DCOUNT' => array( - 'category' => PHPExcel_Calculation_Function::CATEGORY_DATABASE, - 'functionCall' => 'PHPExcel_Calculation_Database::DCOUNT', - 'argumentCount' => '3' - ), - 'DCOUNTA' => array( - 'category' => PHPExcel_Calculation_Function::CATEGORY_DATABASE, - 'functionCall' => 'PHPExcel_Calculation_Database::DCOUNTA', - 'argumentCount' => '3' - ), - 'DDB' => array( - 'category' => PHPExcel_Calculation_Function::CATEGORY_FINANCIAL, - 'functionCall' => 'PHPExcel_Calculation_Financial::DDB', - 'argumentCount' => '4,5' - ), - 'DEC2BIN' => array( - 'category' => PHPExcel_Calculation_Function::CATEGORY_ENGINEERING, - 'functionCall' => 'PHPExcel_Calculation_Engineering::DECTOBIN', - 'argumentCount' => '1,2' - ), - 'DEC2HEX' => array( - 'category' => PHPExcel_Calculation_Function::CATEGORY_ENGINEERING, - 'functionCall' => 'PHPExcel_Calculation_Engineering::DECTOHEX', - 'argumentCount' => '1,2' - ), - 'DEC2OCT' => array( - 'category' => PHPExcel_Calculation_Function::CATEGORY_ENGINEERING, - 'functionCall' => 'PHPExcel_Calculation_Engineering::DECTOOCT', - 'argumentCount' => '1,2' - ), - 'DEGREES' => array( - 'category' => PHPExcel_Calculation_Function::CATEGORY_MATH_AND_TRIG, - 'functionCall' => 'rad2deg', - 'argumentCount' => '1' - ), - 'DELTA' => array( - 'category' => PHPExcel_Calculation_Function::CATEGORY_ENGINEERING, - 'functionCall' => 'PHPExcel_Calculation_Engineering::DELTA', - 'argumentCount' => '1,2' - ), - 'DEVSQ' => array( - 'category' => PHPExcel_Calculation_Function::CATEGORY_STATISTICAL, - 'functionCall' => 'PHPExcel_Calculation_Statistical::DEVSQ', - 'argumentCount' => '1+' - ), - 'DGET' => array( - 'category' => PHPExcel_Calculation_Function::CATEGORY_DATABASE, - 'functionCall' => 'PHPExcel_Calculation_Database::DGET', - 'argumentCount' => '3' - ), - 'DISC' => array( - 'category' => PHPExcel_Calculation_Function::CATEGORY_FINANCIAL, - 'functionCall' => 'PHPExcel_Calculation_Financial::DISC', - 'argumentCount' => '4,5' - ), - 'DMAX' => array( - 'category' => PHPExcel_Calculation_Function::CATEGORY_DATABASE, - 'functionCall' => 'PHPExcel_Calculation_Database::DMAX', - 'argumentCount' => '3' - ), - 'DMIN' => array( - 'category' => PHPExcel_Calculation_Function::CATEGORY_DATABASE, - 'functionCall' => 'PHPExcel_Calculation_Database::DMIN', - 'argumentCount' => '3' - ), - 'DOLLAR' => array( - 'category' => PHPExcel_Calculation_Function::CATEGORY_TEXT_AND_DATA, - 'functionCall' => 'PHPExcel_Calculation_TextData::DOLLAR', - 'argumentCount' => '1,2' - ), - 'DOLLARDE' => array( - 'category' => PHPExcel_Calculation_Function::CATEGORY_FINANCIAL, - 'functionCall' => 'PHPExcel_Calculation_Financial::DOLLARDE', - 'argumentCount' => '2' - ), - 'DOLLARFR' => array( - 'category' => PHPExcel_Calculation_Function::CATEGORY_FINANCIAL, - 'functionCall' => 'PHPExcel_Calculation_Financial::DOLLARFR', - 'argumentCount' => '2' - ), - 'DPRODUCT' => array( - 'category' => PHPExcel_Calculation_Function::CATEGORY_DATABASE, - 'functionCall' => 'PHPExcel_Calculation_Database::DPRODUCT', - 'argumentCount' => '3' - ), - 'DSTDEV' => array( - 'category' => PHPExcel_Calculation_Function::CATEGORY_DATABASE, - 'functionCall' => 'PHPExcel_Calculation_Database::DSTDEV', - 'argumentCount' => '3' - ), - 'DSTDEVP' => array( - 'category' => PHPExcel_Calculation_Function::CATEGORY_DATABASE, - 'functionCall' => 'PHPExcel_Calculation_Database::DSTDEVP', - 'argumentCount' => '3' - ), - 'DSUM' => array( - 'category' => PHPExcel_Calculation_Function::CATEGORY_DATABASE, - 'functionCall' => 'PHPExcel_Calculation_Database::DSUM', - 'argumentCount' => '3' - ), - 'DURATION' => array( - 'category' => PHPExcel_Calculation_Function::CATEGORY_FINANCIAL, - 'functionCall' => 'PHPExcel_Calculation_Functions::DUMMY', - 'argumentCount' => '5,6' - ), - 'DVAR' => array( - 'category' => PHPExcel_Calculation_Function::CATEGORY_DATABASE, - 'functionCall' => 'PHPExcel_Calculation_Database::DVAR', - 'argumentCount' => '3' - ), - 'DVARP' => array( - 'category' => PHPExcel_Calculation_Function::CATEGORY_DATABASE, - 'functionCall' => 'PHPExcel_Calculation_Database::DVARP', - 'argumentCount' => '3' - ), - 'EDATE' => array( - 'category' => PHPExcel_Calculation_Function::CATEGORY_DATE_AND_TIME, - 'functionCall' => 'PHPExcel_Calculation_DateTime::EDATE', - 'argumentCount' => '2' - ), - 'EFFECT' => array( - 'category' => PHPExcel_Calculation_Function::CATEGORY_FINANCIAL, - 'functionCall' => 'PHPExcel_Calculation_Financial::EFFECT', - 'argumentCount' => '2' - ), - 'EOMONTH' => array( - 'category' => PHPExcel_Calculation_Function::CATEGORY_DATE_AND_TIME, - 'functionCall' => 'PHPExcel_Calculation_DateTime::EOMONTH', - 'argumentCount' => '2' - ), - 'ERF' => array( - 'category' => PHPExcel_Calculation_Function::CATEGORY_ENGINEERING, - 'functionCall' => 'PHPExcel_Calculation_Engineering::ERF', - 'argumentCount' => '1,2' - ), - 'ERFC' => array( - 'category' => PHPExcel_Calculation_Function::CATEGORY_ENGINEERING, - 'functionCall' => 'PHPExcel_Calculation_Engineering::ERFC', - 'argumentCount' => '1' - ), - 'ERROR.TYPE' => array( - 'category' => PHPExcel_Calculation_Function::CATEGORY_INFORMATION, - 'functionCall' => 'PHPExcel_Calculation_Functions::ERROR_TYPE', - 'argumentCount' => '1' - ), - 'EVEN' => array( - 'category' => PHPExcel_Calculation_Function::CATEGORY_MATH_AND_TRIG, - 'functionCall' => 'PHPExcel_Calculation_MathTrig::EVEN', - 'argumentCount' => '1' - ), - 'EXACT' => array( - 'category' => PHPExcel_Calculation_Function::CATEGORY_TEXT_AND_DATA, - 'functionCall' => 'PHPExcel_Calculation_Functions::DUMMY', - 'argumentCount' => '2' - ), - 'EXP' => array( - 'category' => PHPExcel_Calculation_Function::CATEGORY_MATH_AND_TRIG, - 'functionCall' => 'exp', - 'argumentCount' => '1' - ), - 'EXPONDIST' => array( - 'category' => PHPExcel_Calculation_Function::CATEGORY_STATISTICAL, - 'functionCall' => 'PHPExcel_Calculation_Statistical::EXPONDIST', - 'argumentCount' => '3' - ), - 'FACT' => array( - 'category' => PHPExcel_Calculation_Function::CATEGORY_MATH_AND_TRIG, - 'functionCall' => 'PHPExcel_Calculation_MathTrig::FACT', - 'argumentCount' => '1' - ), - 'FACTDOUBLE' => array( - 'category' => PHPExcel_Calculation_Function::CATEGORY_MATH_AND_TRIG, - 'functionCall' => 'PHPExcel_Calculation_MathTrig::FACTDOUBLE', - 'argumentCount' => '1' - ), - 'FALSE' => array( - 'category' => PHPExcel_Calculation_Function::CATEGORY_LOGICAL, - 'functionCall' => 'PHPExcel_Calculation_Logical::FALSE', - 'argumentCount' => '0' - ), - 'FDIST' => array( - 'category' => PHPExcel_Calculation_Function::CATEGORY_STATISTICAL, - 'functionCall' => 'PHPExcel_Calculation_Functions::DUMMY', - 'argumentCount' => '3' - ), - 'FIND' => array( - 'category' => PHPExcel_Calculation_Function::CATEGORY_TEXT_AND_DATA, - 'functionCall' => 'PHPExcel_Calculation_TextData::SEARCHSENSITIVE', - 'argumentCount' => '2,3' - ), - 'FINDB' => array( - 'category' => PHPExcel_Calculation_Function::CATEGORY_TEXT_AND_DATA, - 'functionCall' => 'PHPExcel_Calculation_TextData::SEARCHSENSITIVE', - 'argumentCount' => '2,3' - ), - 'FINV' => array( - 'category' => PHPExcel_Calculation_Function::CATEGORY_STATISTICAL, - 'functionCall' => 'PHPExcel_Calculation_Functions::DUMMY', - 'argumentCount' => '3' - ), - 'FISHER' => array( - 'category' => PHPExcel_Calculation_Function::CATEGORY_STATISTICAL, - 'functionCall' => 'PHPExcel_Calculation_Statistical::FISHER', - 'argumentCount' => '1' - ), - 'FISHERINV' => array( - 'category' => PHPExcel_Calculation_Function::CATEGORY_STATISTICAL, - 'functionCall' => 'PHPExcel_Calculation_Statistical::FISHERINV', - 'argumentCount' => '1' - ), - 'FIXED' => array( - 'category' => PHPExcel_Calculation_Function::CATEGORY_TEXT_AND_DATA, - 'functionCall' => 'PHPExcel_Calculation_TextData::FIXEDFORMAT', - 'argumentCount' => '1-3' - ), - 'FLOOR' => array( - 'category' => PHPExcel_Calculation_Function::CATEGORY_MATH_AND_TRIG, - 'functionCall' => 'PHPExcel_Calculation_MathTrig::FLOOR', - 'argumentCount' => '2' - ), - 'FORECAST' => array( - 'category' => PHPExcel_Calculation_Function::CATEGORY_STATISTICAL, - 'functionCall' => 'PHPExcel_Calculation_Statistical::FORECAST', - 'argumentCount' => '3' - ), - 'FREQUENCY' => array( - 'category' => PHPExcel_Calculation_Function::CATEGORY_STATISTICAL, - 'functionCall' => 'PHPExcel_Calculation_Functions::DUMMY', - 'argumentCount' => '2' - ), - 'FTEST' => array( - 'category' => PHPExcel_Calculation_Function::CATEGORY_STATISTICAL, - 'functionCall' => 'PHPExcel_Calculation_Functions::DUMMY', - 'argumentCount' => '2' - ), - 'FV' => array( - 'category' => PHPExcel_Calculation_Function::CATEGORY_FINANCIAL, - 'functionCall' => 'PHPExcel_Calculation_Financial::FV', - 'argumentCount' => '3-5' - ), - 'FVSCHEDULE' => array( - 'category' => PHPExcel_Calculation_Function::CATEGORY_FINANCIAL, - 'functionCall' => 'PHPExcel_Calculation_Financial::FVSCHEDULE', - 'argumentCount' => '2' - ), - 'GAMMADIST' => array( - 'category' => PHPExcel_Calculation_Function::CATEGORY_STATISTICAL, - 'functionCall' => 'PHPExcel_Calculation_Statistical::GAMMADIST', - 'argumentCount' => '4' - ), - 'GAMMAINV' => array( - 'category' => PHPExcel_Calculation_Function::CATEGORY_STATISTICAL, - 'functionCall' => 'PHPExcel_Calculation_Statistical::GAMMAINV', - 'argumentCount' => '3' - ), - 'GAMMALN' => array( - 'category' => PHPExcel_Calculation_Function::CATEGORY_STATISTICAL, - 'functionCall' => 'PHPExcel_Calculation_Statistical::GAMMALN', - 'argumentCount' => '1' - ), - 'GCD' => array( - 'category' => PHPExcel_Calculation_Function::CATEGORY_MATH_AND_TRIG, - 'functionCall' => 'PHPExcel_Calculation_MathTrig::GCD', - 'argumentCount' => '1+' - ), - 'GEOMEAN' => array( - 'category' => PHPExcel_Calculation_Function::CATEGORY_STATISTICAL, - 'functionCall' => 'PHPExcel_Calculation_Statistical::GEOMEAN', - 'argumentCount' => '1+' - ), - 'GESTEP' => array( - 'category' => PHPExcel_Calculation_Function::CATEGORY_ENGINEERING, - 'functionCall' => 'PHPExcel_Calculation_Engineering::GESTEP', - 'argumentCount' => '1,2' - ), - 'GETPIVOTDATA' => array( - 'category' => PHPExcel_Calculation_Function::CATEGORY_LOOKUP_AND_REFERENCE, - 'functionCall' => 'PHPExcel_Calculation_Functions::DUMMY', - 'argumentCount' => '2+' - ), - 'GROWTH' => array( - 'category' => PHPExcel_Calculation_Function::CATEGORY_STATISTICAL, - 'functionCall' => 'PHPExcel_Calculation_Statistical::GROWTH', - 'argumentCount' => '1-4' - ), - 'HARMEAN' => array( - 'category' => PHPExcel_Calculation_Function::CATEGORY_STATISTICAL, - 'functionCall' => 'PHPExcel_Calculation_Statistical::HARMEAN', - 'argumentCount' => '1+' - ), - 'HEX2BIN' => array( - 'category' => PHPExcel_Calculation_Function::CATEGORY_ENGINEERING, - 'functionCall' => 'PHPExcel_Calculation_Engineering::HEXTOBIN', - 'argumentCount' => '1,2' - ), - 'HEX2DEC' => array( - 'category' => PHPExcel_Calculation_Function::CATEGORY_ENGINEERING, - 'functionCall' => 'PHPExcel_Calculation_Engineering::HEXTODEC', - 'argumentCount' => '1' - ), - 'HEX2OCT' => array( - 'category' => PHPExcel_Calculation_Function::CATEGORY_ENGINEERING, - 'functionCall' => 'PHPExcel_Calculation_Engineering::HEXTOOCT', - 'argumentCount' => '1,2' - ), - 'HLOOKUP' => array( - 'category' => PHPExcel_Calculation_Function::CATEGORY_LOOKUP_AND_REFERENCE, - 'functionCall' => 'PHPExcel_Calculation_LookupRef::HLOOKUP', - 'argumentCount' => '3,4' - ), - 'HOUR' => array( - 'category' => PHPExcel_Calculation_Function::CATEGORY_DATE_AND_TIME, - 'functionCall' => 'PHPExcel_Calculation_DateTime::HOUROFDAY', - 'argumentCount' => '1' - ), - 'HYPERLINK' => array( - 'category' => PHPExcel_Calculation_Function::CATEGORY_LOOKUP_AND_REFERENCE, - 'functionCall' => 'PHPExcel_Calculation_LookupRef::HYPERLINK', - 'argumentCount' => '1,2', - 'passCellReference' => true - ), - 'HYPGEOMDIST' => array( - 'category' => PHPExcel_Calculation_Function::CATEGORY_STATISTICAL, - 'functionCall' => 'PHPExcel_Calculation_Statistical::HYPGEOMDIST', - 'argumentCount' => '4' - ), - 'IF' => array( - 'category' => PHPExcel_Calculation_Function::CATEGORY_LOGICAL, - 'functionCall' => 'PHPExcel_Calculation_Logical::STATEMENT_IF', - 'argumentCount' => '1-3' - ), - 'IFERROR' => array( - 'category' => PHPExcel_Calculation_Function::CATEGORY_LOGICAL, - 'functionCall' => 'PHPExcel_Calculation_Logical::IFERROR', - 'argumentCount' => '2' - ), - 'IMABS' => array( - 'category' => PHPExcel_Calculation_Function::CATEGORY_ENGINEERING, - 'functionCall' => 'PHPExcel_Calculation_Engineering::IMABS', - 'argumentCount' => '1' - ), - 'IMAGINARY' => array( - 'category' => PHPExcel_Calculation_Function::CATEGORY_ENGINEERING, - 'functionCall' => 'PHPExcel_Calculation_Engineering::IMAGINARY', - 'argumentCount' => '1' - ), - 'IMARGUMENT' => array( - 'category' => PHPExcel_Calculation_Function::CATEGORY_ENGINEERING, - 'functionCall' => 'PHPExcel_Calculation_Engineering::IMARGUMENT', - 'argumentCount' => '1' - ), - 'IMCONJUGATE' => array( - 'category' => PHPExcel_Calculation_Function::CATEGORY_ENGINEERING, - 'functionCall' => 'PHPExcel_Calculation_Engineering::IMCONJUGATE', - 'argumentCount' => '1' - ), - 'IMCOS' => array( - 'category' => PHPExcel_Calculation_Function::CATEGORY_ENGINEERING, - 'functionCall' => 'PHPExcel_Calculation_Engineering::IMCOS', - 'argumentCount' => '1' - ), - 'IMDIV' => array( - 'category' => PHPExcel_Calculation_Function::CATEGORY_ENGINEERING, - 'functionCall' => 'PHPExcel_Calculation_Engineering::IMDIV', - 'argumentCount' => '2' - ), - 'IMEXP' => array( - 'category' => PHPExcel_Calculation_Function::CATEGORY_ENGINEERING, - 'functionCall' => 'PHPExcel_Calculation_Engineering::IMEXP', - 'argumentCount' => '1' - ), - 'IMLN' => array( - 'category' => PHPExcel_Calculation_Function::CATEGORY_ENGINEERING, - 'functionCall' => 'PHPExcel_Calculation_Engineering::IMLN', - 'argumentCount' => '1' - ), - 'IMLOG10' => array( - 'category' => PHPExcel_Calculation_Function::CATEGORY_ENGINEERING, - 'functionCall' => 'PHPExcel_Calculation_Engineering::IMLOG10', - 'argumentCount' => '1' - ), - 'IMLOG2' => array( - 'category' => PHPExcel_Calculation_Function::CATEGORY_ENGINEERING, - 'functionCall' => 'PHPExcel_Calculation_Engineering::IMLOG2', - 'argumentCount' => '1' - ), - 'IMPOWER' => array( - 'category' => PHPExcel_Calculation_Function::CATEGORY_ENGINEERING, - 'functionCall' => 'PHPExcel_Calculation_Engineering::IMPOWER', - 'argumentCount' => '2' - ), - 'IMPRODUCT' => array( - 'category' => PHPExcel_Calculation_Function::CATEGORY_ENGINEERING, - 'functionCall' => 'PHPExcel_Calculation_Engineering::IMPRODUCT', - 'argumentCount' => '1+' - ), - 'IMREAL' => array( - 'category' => PHPExcel_Calculation_Function::CATEGORY_ENGINEERING, - 'functionCall' => 'PHPExcel_Calculation_Engineering::IMREAL', - 'argumentCount' => '1' - ), - 'IMSIN' => array( - 'category' => PHPExcel_Calculation_Function::CATEGORY_ENGINEERING, - 'functionCall' => 'PHPExcel_Calculation_Engineering::IMSIN', - 'argumentCount' => '1' - ), - 'IMSQRT' => array( - 'category' => PHPExcel_Calculation_Function::CATEGORY_ENGINEERING, - 'functionCall' => 'PHPExcel_Calculation_Engineering::IMSQRT', - 'argumentCount' => '1' - ), - 'IMSUB' => array( - 'category' => PHPExcel_Calculation_Function::CATEGORY_ENGINEERING, - 'functionCall' => 'PHPExcel_Calculation_Engineering::IMSUB', - 'argumentCount' => '2' - ), - 'IMSUM' => array( - 'category' => PHPExcel_Calculation_Function::CATEGORY_ENGINEERING, - 'functionCall' => 'PHPExcel_Calculation_Engineering::IMSUM', - 'argumentCount' => '1+' - ), - 'INDEX' => array( - 'category' => PHPExcel_Calculation_Function::CATEGORY_LOOKUP_AND_REFERENCE, - 'functionCall' => 'PHPExcel_Calculation_LookupRef::INDEX', - 'argumentCount' => '1-4' - ), - 'INDIRECT' => array( - 'category' => PHPExcel_Calculation_Function::CATEGORY_LOOKUP_AND_REFERENCE, - 'functionCall' => 'PHPExcel_Calculation_LookupRef::INDIRECT', - 'argumentCount' => '1,2', - 'passCellReference' => true - ), - 'INFO' => array( - 'category' => PHPExcel_Calculation_Function::CATEGORY_INFORMATION, - 'functionCall' => 'PHPExcel_Calculation_Functions::DUMMY', - 'argumentCount' => '1' - ), - 'INT' => array( - 'category' => PHPExcel_Calculation_Function::CATEGORY_MATH_AND_TRIG, - 'functionCall' => 'PHPExcel_Calculation_MathTrig::INT', - 'argumentCount' => '1' - ), - 'INTERCEPT' => array( - 'category' => PHPExcel_Calculation_Function::CATEGORY_STATISTICAL, - 'functionCall' => 'PHPExcel_Calculation_Statistical::INTERCEPT', - 'argumentCount' => '2' - ), - 'INTRATE' => array( - 'category' => PHPExcel_Calculation_Function::CATEGORY_FINANCIAL, - 'functionCall' => 'PHPExcel_Calculation_Financial::INTRATE', - 'argumentCount' => '4,5' - ), - 'IPMT' => array( - 'category' => PHPExcel_Calculation_Function::CATEGORY_FINANCIAL, - 'functionCall' => 'PHPExcel_Calculation_Financial::IPMT', - 'argumentCount' => '4-6' - ), - 'IRR' => array( - 'category' => PHPExcel_Calculation_Function::CATEGORY_FINANCIAL, - 'functionCall' => 'PHPExcel_Calculation_Financial::IRR', - 'argumentCount' => '1,2' - ), - 'ISBLANK' => array( - 'category' => PHPExcel_Calculation_Function::CATEGORY_INFORMATION, - 'functionCall' => 'PHPExcel_Calculation_Functions::IS_BLANK', - 'argumentCount' => '1' - ), - 'ISERR' => array( - 'category' => PHPExcel_Calculation_Function::CATEGORY_INFORMATION, - 'functionCall' => 'PHPExcel_Calculation_Functions::IS_ERR', - 'argumentCount' => '1' - ), - 'ISERROR' => array( - 'category' => PHPExcel_Calculation_Function::CATEGORY_INFORMATION, - 'functionCall' => 'PHPExcel_Calculation_Functions::IS_ERROR', - 'argumentCount' => '1' - ), - 'ISEVEN' => array( - 'category' => PHPExcel_Calculation_Function::CATEGORY_INFORMATION, - 'functionCall' => 'PHPExcel_Calculation_Functions::IS_EVEN', - 'argumentCount' => '1' - ), - 'ISLOGICAL' => array( - 'category' => PHPExcel_Calculation_Function::CATEGORY_INFORMATION, - 'functionCall' => 'PHPExcel_Calculation_Functions::IS_LOGICAL', - 'argumentCount' => '1' - ), - 'ISNA' => array( - 'category' => PHPExcel_Calculation_Function::CATEGORY_INFORMATION, - 'functionCall' => 'PHPExcel_Calculation_Functions::IS_NA', - 'argumentCount' => '1' - ), - 'ISNONTEXT' => array( - 'category' => PHPExcel_Calculation_Function::CATEGORY_INFORMATION, - 'functionCall' => 'PHPExcel_Calculation_Functions::IS_NONTEXT', - 'argumentCount' => '1' - ), - 'ISNUMBER' => array( - 'category' => PHPExcel_Calculation_Function::CATEGORY_INFORMATION, - 'functionCall' => 'PHPExcel_Calculation_Functions::IS_NUMBER', - 'argumentCount' => '1' - ), - 'ISODD' => array( - 'category' => PHPExcel_Calculation_Function::CATEGORY_INFORMATION, - 'functionCall' => 'PHPExcel_Calculation_Functions::IS_ODD', - 'argumentCount' => '1' - ), - 'ISPMT' => array( - 'category' => PHPExcel_Calculation_Function::CATEGORY_FINANCIAL, - 'functionCall' => 'PHPExcel_Calculation_Financial::ISPMT', - 'argumentCount' => '4' - ), - 'ISREF' => array( - 'category' => PHPExcel_Calculation_Function::CATEGORY_INFORMATION, - 'functionCall' => 'PHPExcel_Calculation_Functions::DUMMY', - 'argumentCount' => '1' - ), - 'ISTEXT' => array( - 'category' => PHPExcel_Calculation_Function::CATEGORY_INFORMATION, - 'functionCall' => 'PHPExcel_Calculation_Functions::IS_TEXT', - 'argumentCount' => '1' - ), - 'JIS' => array( - 'category' => PHPExcel_Calculation_Function::CATEGORY_TEXT_AND_DATA, - 'functionCall' => 'PHPExcel_Calculation_Functions::DUMMY', - 'argumentCount' => '1' - ), - 'KURT' => array( - 'category' => PHPExcel_Calculation_Function::CATEGORY_STATISTICAL, - 'functionCall' => 'PHPExcel_Calculation_Statistical::KURT', - 'argumentCount' => '1+' - ), - 'LARGE' => array( - 'category' => PHPExcel_Calculation_Function::CATEGORY_STATISTICAL, - 'functionCall' => 'PHPExcel_Calculation_Statistical::LARGE', - 'argumentCount' => '2' - ), - 'LCM' => array( - 'category' => PHPExcel_Calculation_Function::CATEGORY_MATH_AND_TRIG, - 'functionCall' => 'PHPExcel_Calculation_MathTrig::LCM', - 'argumentCount' => '1+' - ), - 'LEFT' => array( - 'category' => PHPExcel_Calculation_Function::CATEGORY_TEXT_AND_DATA, - 'functionCall' => 'PHPExcel_Calculation_TextData::LEFT', - 'argumentCount' => '1,2' - ), - 'LEFTB' => array( - 'category' => PHPExcel_Calculation_Function::CATEGORY_TEXT_AND_DATA, - 'functionCall' => 'PHPExcel_Calculation_TextData::LEFT', - 'argumentCount' => '1,2' - ), - 'LEN' => array( - 'category' => PHPExcel_Calculation_Function::CATEGORY_TEXT_AND_DATA, - 'functionCall' => 'PHPExcel_Calculation_TextData::STRINGLENGTH', - 'argumentCount' => '1' - ), - 'LENB' => array( - 'category' => PHPExcel_Calculation_Function::CATEGORY_TEXT_AND_DATA, - 'functionCall' => 'PHPExcel_Calculation_TextData::STRINGLENGTH', - 'argumentCount' => '1' - ), - 'LINEST' => array( - 'category' => PHPExcel_Calculation_Function::CATEGORY_STATISTICAL, - 'functionCall' => 'PHPExcel_Calculation_Statistical::LINEST', - 'argumentCount' => '1-4' - ), - 'LN' => array( - 'category' => PHPExcel_Calculation_Function::CATEGORY_MATH_AND_TRIG, - 'functionCall' => 'log', - 'argumentCount' => '1' - ), - 'LOG' => array( - 'category' => PHPExcel_Calculation_Function::CATEGORY_MATH_AND_TRIG, - 'functionCall' => 'PHPExcel_Calculation_MathTrig::LOG_BASE', - 'argumentCount' => '1,2' - ), - 'LOG10' => array( - 'category' => PHPExcel_Calculation_Function::CATEGORY_MATH_AND_TRIG, - 'functionCall' => 'log10', - 'argumentCount' => '1' - ), - 'LOGEST' => array( - 'category' => PHPExcel_Calculation_Function::CATEGORY_STATISTICAL, - 'functionCall' => 'PHPExcel_Calculation_Statistical::LOGEST', - 'argumentCount' => '1-4' - ), - 'LOGINV' => array( - 'category' => PHPExcel_Calculation_Function::CATEGORY_STATISTICAL, - 'functionCall' => 'PHPExcel_Calculation_Statistical::LOGINV', - 'argumentCount' => '3' - ), - 'LOGNORMDIST' => array( - 'category' => PHPExcel_Calculation_Function::CATEGORY_STATISTICAL, - 'functionCall' => 'PHPExcel_Calculation_Statistical::LOGNORMDIST', - 'argumentCount' => '3' - ), - 'LOOKUP' => array( - 'category' => PHPExcel_Calculation_Function::CATEGORY_LOOKUP_AND_REFERENCE, - 'functionCall' => 'PHPExcel_Calculation_LookupRef::LOOKUP', - 'argumentCount' => '2,3' - ), - 'LOWER' => array( - 'category' => PHPExcel_Calculation_Function::CATEGORY_TEXT_AND_DATA, - 'functionCall' => 'PHPExcel_Calculation_TextData::LOWERCASE', - 'argumentCount' => '1' - ), - 'MATCH' => array( - 'category' => PHPExcel_Calculation_Function::CATEGORY_LOOKUP_AND_REFERENCE, - 'functionCall' => 'PHPExcel_Calculation_LookupRef::MATCH', - 'argumentCount' => '2,3' - ), - 'MAX' => array( - 'category' => PHPExcel_Calculation_Function::CATEGORY_STATISTICAL, - 'functionCall' => 'PHPExcel_Calculation_Statistical::MAX', - 'argumentCount' => '1+' - ), - 'MAXA' => array( - 'category' => PHPExcel_Calculation_Function::CATEGORY_STATISTICAL, - 'functionCall' => 'PHPExcel_Calculation_Statistical::MAXA', - 'argumentCount' => '1+' - ), - 'MAXIF' => array( - 'category' => PHPExcel_Calculation_Function::CATEGORY_STATISTICAL, - 'functionCall' => 'PHPExcel_Calculation_Statistical::MAXIF', - 'argumentCount' => '2+' - ), - 'MDETERM' => array( - 'category' => PHPExcel_Calculation_Function::CATEGORY_MATH_AND_TRIG, - 'functionCall' => 'PHPExcel_Calculation_MathTrig::MDETERM', - 'argumentCount' => '1' - ), - 'MDURATION' => array( - 'category' => PHPExcel_Calculation_Function::CATEGORY_FINANCIAL, - 'functionCall' => 'PHPExcel_Calculation_Functions::DUMMY', - 'argumentCount' => '5,6' - ), - 'MEDIAN' => array( - 'category' => PHPExcel_Calculation_Function::CATEGORY_STATISTICAL, - 'functionCall' => 'PHPExcel_Calculation_Statistical::MEDIAN', - 'argumentCount' => '1+' - ), - 'MEDIANIF' => array( - 'category' => PHPExcel_Calculation_Function::CATEGORY_STATISTICAL, - 'functionCall' => 'PHPExcel_Calculation_Functions::DUMMY', - 'argumentCount' => '2+' - ), - 'MID' => array( - 'category' => PHPExcel_Calculation_Function::CATEGORY_TEXT_AND_DATA, - 'functionCall' => 'PHPExcel_Calculation_TextData::MID', - 'argumentCount' => '3' - ), - 'MIDB' => array( - 'category' => PHPExcel_Calculation_Function::CATEGORY_TEXT_AND_DATA, - 'functionCall' => 'PHPExcel_Calculation_TextData::MID', - 'argumentCount' => '3' - ), - 'MIN' => array( - 'category' => PHPExcel_Calculation_Function::CATEGORY_STATISTICAL, - 'functionCall' => 'PHPExcel_Calculation_Statistical::MIN', - 'argumentCount' => '1+' - ), - 'MINA' => array( - 'category' => PHPExcel_Calculation_Function::CATEGORY_STATISTICAL, - 'functionCall' => 'PHPExcel_Calculation_Statistical::MINA', - 'argumentCount' => '1+' - ), - 'MINIF' => array( - 'category' => PHPExcel_Calculation_Function::CATEGORY_STATISTICAL, - 'functionCall' => 'PHPExcel_Calculation_Statistical::MINIF', - 'argumentCount' => '2+' - ), - 'MINUTE' => array( - 'category' => PHPExcel_Calculation_Function::CATEGORY_DATE_AND_TIME, - 'functionCall' => 'PHPExcel_Calculation_DateTime::MINUTEOFHOUR', - 'argumentCount' => '1' - ), - 'MINVERSE' => array( - 'category' => PHPExcel_Calculation_Function::CATEGORY_MATH_AND_TRIG, - 'functionCall' => 'PHPExcel_Calculation_MathTrig::MINVERSE', - 'argumentCount' => '1' - ), - 'MIRR' => array( - 'category' => PHPExcel_Calculation_Function::CATEGORY_FINANCIAL, - 'functionCall' => 'PHPExcel_Calculation_Financial::MIRR', - 'argumentCount' => '3' - ), - 'MMULT' => array( - 'category' => PHPExcel_Calculation_Function::CATEGORY_MATH_AND_TRIG, - 'functionCall' => 'PHPExcel_Calculation_MathTrig::MMULT', - 'argumentCount' => '2' - ), - 'MOD' => array( - 'category' => PHPExcel_Calculation_Function::CATEGORY_MATH_AND_TRIG, - 'functionCall' => 'PHPExcel_Calculation_MathTrig::MOD', - 'argumentCount' => '2' - ), - 'MODE' => array( - 'category' => PHPExcel_Calculation_Function::CATEGORY_STATISTICAL, - 'functionCall' => 'PHPExcel_Calculation_Statistical::MODE', - 'argumentCount' => '1+' - ), - 'MONTH' => array( - 'category' => PHPExcel_Calculation_Function::CATEGORY_DATE_AND_TIME, - 'functionCall' => 'PHPExcel_Calculation_DateTime::MONTHOFYEAR', - 'argumentCount' => '1' - ), - 'MROUND' => array( - 'category' => PHPExcel_Calculation_Function::CATEGORY_MATH_AND_TRIG, - 'functionCall' => 'PHPExcel_Calculation_MathTrig::MROUND', - 'argumentCount' => '2' - ), - 'MULTINOMIAL' => array( - 'category' => PHPExcel_Calculation_Function::CATEGORY_MATH_AND_TRIG, - 'functionCall' => 'PHPExcel_Calculation_MathTrig::MULTINOMIAL', - 'argumentCount' => '1+' - ), - 'N' => array( - 'category' => PHPExcel_Calculation_Function::CATEGORY_INFORMATION, - 'functionCall' => 'PHPExcel_Calculation_Functions::N', - 'argumentCount' => '1' - ), - 'NA' => array( - 'category' => PHPExcel_Calculation_Function::CATEGORY_INFORMATION, - 'functionCall' => 'PHPExcel_Calculation_Functions::NA', - 'argumentCount' => '0' - ), - 'NEGBINOMDIST' => array( - 'category' => PHPExcel_Calculation_Function::CATEGORY_STATISTICAL, - 'functionCall' => 'PHPExcel_Calculation_Statistical::NEGBINOMDIST', - 'argumentCount' => '3' - ), - 'NETWORKDAYS' => array( - 'category' => PHPExcel_Calculation_Function::CATEGORY_DATE_AND_TIME, - 'functionCall' => 'PHPExcel_Calculation_DateTime::NETWORKDAYS', - 'argumentCount' => '2+' - ), - 'NOMINAL' => array( - 'category' => PHPExcel_Calculation_Function::CATEGORY_FINANCIAL, - 'functionCall' => 'PHPExcel_Calculation_Financial::NOMINAL', - 'argumentCount' => '2' - ), - 'NORMDIST' => array( - 'category' => PHPExcel_Calculation_Function::CATEGORY_STATISTICAL, - 'functionCall' => 'PHPExcel_Calculation_Statistical::NORMDIST', - 'argumentCount' => '4' - ), - 'NORMINV' => array( - 'category' => PHPExcel_Calculation_Function::CATEGORY_STATISTICAL, - 'functionCall' => 'PHPExcel_Calculation_Statistical::NORMINV', - 'argumentCount' => '3' - ), - 'NORMSDIST' => array( - 'category' => PHPExcel_Calculation_Function::CATEGORY_STATISTICAL, - 'functionCall' => 'PHPExcel_Calculation_Statistical::NORMSDIST', - 'argumentCount' => '1' - ), - 'NORMSINV' => array( - 'category' => PHPExcel_Calculation_Function::CATEGORY_STATISTICAL, - 'functionCall' => 'PHPExcel_Calculation_Statistical::NORMSINV', - 'argumentCount' => '1' - ), - 'NOT' => array( - 'category' => PHPExcel_Calculation_Function::CATEGORY_LOGICAL, - 'functionCall' => 'PHPExcel_Calculation_Logical::NOT', - 'argumentCount' => '1' - ), - 'NOW' => array( - 'category' => PHPExcel_Calculation_Function::CATEGORY_DATE_AND_TIME, - 'functionCall' => 'PHPExcel_Calculation_DateTime::DATETIMENOW', - 'argumentCount' => '0' - ), - 'NPER' => array( - 'category' => PHPExcel_Calculation_Function::CATEGORY_FINANCIAL, - 'functionCall' => 'PHPExcel_Calculation_Financial::NPER', - 'argumentCount' => '3-5' - ), - 'NPV' => array( - 'category' => PHPExcel_Calculation_Function::CATEGORY_FINANCIAL, - 'functionCall' => 'PHPExcel_Calculation_Financial::NPV', - 'argumentCount' => '2+' - ), - 'OCT2BIN' => array( - 'category' => PHPExcel_Calculation_Function::CATEGORY_ENGINEERING, - 'functionCall' => 'PHPExcel_Calculation_Engineering::OCTTOBIN', - 'argumentCount' => '1,2' - ), - 'OCT2DEC' => array( - 'category' => PHPExcel_Calculation_Function::CATEGORY_ENGINEERING, - 'functionCall' => 'PHPExcel_Calculation_Engineering::OCTTODEC', - 'argumentCount' => '1' - ), - 'OCT2HEX' => array( - 'category' => PHPExcel_Calculation_Function::CATEGORY_ENGINEERING, - 'functionCall' => 'PHPExcel_Calculation_Engineering::OCTTOHEX', - 'argumentCount' => '1,2' - ), - 'ODD' => array( - 'category' => PHPExcel_Calculation_Function::CATEGORY_MATH_AND_TRIG, - 'functionCall' => 'PHPExcel_Calculation_MathTrig::ODD', - 'argumentCount' => '1' - ), - 'ODDFPRICE' => array( - 'category' => PHPExcel_Calculation_Function::CATEGORY_FINANCIAL, - 'functionCall' => 'PHPExcel_Calculation_Functions::DUMMY', - 'argumentCount' => '8,9' - ), - 'ODDFYIELD' => array( - 'category' => PHPExcel_Calculation_Function::CATEGORY_FINANCIAL, - 'functionCall' => 'PHPExcel_Calculation_Functions::DUMMY', - 'argumentCount' => '8,9' - ), - 'ODDLPRICE' => array( - 'category' => PHPExcel_Calculation_Function::CATEGORY_FINANCIAL, - 'functionCall' => 'PHPExcel_Calculation_Functions::DUMMY', - 'argumentCount' => '7,8' - ), - 'ODDLYIELD' => array( - 'category' => PHPExcel_Calculation_Function::CATEGORY_FINANCIAL, - 'functionCall' => 'PHPExcel_Calculation_Functions::DUMMY', - 'argumentCount' => '7,8' - ), - 'OFFSET' => array( - 'category' => PHPExcel_Calculation_Function::CATEGORY_LOOKUP_AND_REFERENCE, - 'functionCall' => 'PHPExcel_Calculation_LookupRef::OFFSET', - 'argumentCount' => '3-5', - 'passCellReference' => true, - 'passByReference' => array(true) - ), - 'OR' => array( - 'category' => PHPExcel_Calculation_Function::CATEGORY_LOGICAL, - 'functionCall' => 'PHPExcel_Calculation_Logical::LOGICAL_OR', - 'argumentCount' => '1+' - ), - 'PEARSON' => array( - 'category' => PHPExcel_Calculation_Function::CATEGORY_STATISTICAL, - 'functionCall' => 'PHPExcel_Calculation_Statistical::CORREL', - 'argumentCount' => '2' - ), - 'PERCENTILE' => array( - 'category' => PHPExcel_Calculation_Function::CATEGORY_STATISTICAL, - 'functionCall' => 'PHPExcel_Calculation_Statistical::PERCENTILE', - 'argumentCount' => '2' - ), - 'PERCENTRANK' => array( - 'category' => PHPExcel_Calculation_Function::CATEGORY_STATISTICAL, - 'functionCall' => 'PHPExcel_Calculation_Statistical::PERCENTRANK', - 'argumentCount' => '2,3' - ), - 'PERMUT' => array( - 'category' => PHPExcel_Calculation_Function::CATEGORY_STATISTICAL, - 'functionCall' => 'PHPExcel_Calculation_Statistical::PERMUT', - 'argumentCount' => '2' - ), - 'PHONETIC' => array( - 'category' => PHPExcel_Calculation_Function::CATEGORY_TEXT_AND_DATA, - 'functionCall' => 'PHPExcel_Calculation_Functions::DUMMY', - 'argumentCount' => '1' - ), - 'PI' => array( - 'category' => PHPExcel_Calculation_Function::CATEGORY_MATH_AND_TRIG, - 'functionCall' => 'pi', - 'argumentCount' => '0' - ), - 'PMT' => array( - 'category' => PHPExcel_Calculation_Function::CATEGORY_FINANCIAL, - 'functionCall' => 'PHPExcel_Calculation_Financial::PMT', - 'argumentCount' => '3-5' - ), - 'POISSON' => array( - 'category' => PHPExcel_Calculation_Function::CATEGORY_STATISTICAL, - 'functionCall' => 'PHPExcel_Calculation_Statistical::POISSON', - 'argumentCount' => '3' - ), - 'POWER' => array( - 'category' => PHPExcel_Calculation_Function::CATEGORY_MATH_AND_TRIG, - 'functionCall' => 'PHPExcel_Calculation_MathTrig::POWER', - 'argumentCount' => '2' - ), - 'PPMT' => array( - 'category' => PHPExcel_Calculation_Function::CATEGORY_FINANCIAL, - 'functionCall' => 'PHPExcel_Calculation_Financial::PPMT', - 'argumentCount' => '4-6' - ), - 'PRICE' => array( - 'category' => PHPExcel_Calculation_Function::CATEGORY_FINANCIAL, - 'functionCall' => 'PHPExcel_Calculation_Financial::PRICE', - 'argumentCount' => '6,7' - ), - 'PRICEDISC' => array( - 'category' => PHPExcel_Calculation_Function::CATEGORY_FINANCIAL, - 'functionCall' => 'PHPExcel_Calculation_Financial::PRICEDISC', - 'argumentCount' => '4,5' - ), - 'PRICEMAT' => array( - 'category' => PHPExcel_Calculation_Function::CATEGORY_FINANCIAL, - 'functionCall' => 'PHPExcel_Calculation_Financial::PRICEMAT', - 'argumentCount' => '5,6' - ), - 'PROB' => array( - 'category' => PHPExcel_Calculation_Function::CATEGORY_STATISTICAL, - 'functionCall' => 'PHPExcel_Calculation_Functions::DUMMY', - 'argumentCount' => '3,4' - ), - 'PRODUCT' => array( - 'category' => PHPExcel_Calculation_Function::CATEGORY_MATH_AND_TRIG, - 'functionCall' => 'PHPExcel_Calculation_MathTrig::PRODUCT', - 'argumentCount' => '1+' - ), - 'PROPER' => array( - 'category' => PHPExcel_Calculation_Function::CATEGORY_TEXT_AND_DATA, - 'functionCall' => 'PHPExcel_Calculation_TextData::PROPERCASE', - 'argumentCount' => '1' - ), - 'PV' => array( - 'category' => PHPExcel_Calculation_Function::CATEGORY_FINANCIAL, - 'functionCall' => 'PHPExcel_Calculation_Financial::PV', - 'argumentCount' => '3-5' - ), - 'QUARTILE' => array( - 'category' => PHPExcel_Calculation_Function::CATEGORY_STATISTICAL, - 'functionCall' => 'PHPExcel_Calculation_Statistical::QUARTILE', - 'argumentCount' => '2' - ), - 'QUOTIENT' => array( - 'category' => PHPExcel_Calculation_Function::CATEGORY_MATH_AND_TRIG, - 'functionCall' => 'PHPExcel_Calculation_MathTrig::QUOTIENT', - 'argumentCount' => '2' - ), - 'RADIANS' => array( - 'category' => PHPExcel_Calculation_Function::CATEGORY_MATH_AND_TRIG, - 'functionCall' => 'deg2rad', - 'argumentCount' => '1' - ), - 'RAND' => array( - 'category' => PHPExcel_Calculation_Function::CATEGORY_MATH_AND_TRIG, - 'functionCall' => 'PHPExcel_Calculation_MathTrig::RAND', - 'argumentCount' => '0' - ), - 'RANDBETWEEN' => array( - 'category' => PHPExcel_Calculation_Function::CATEGORY_MATH_AND_TRIG, - 'functionCall' => 'PHPExcel_Calculation_MathTrig::RAND', - 'argumentCount' => '2' - ), - 'RANK' => array( - 'category' => PHPExcel_Calculation_Function::CATEGORY_STATISTICAL, - 'functionCall' => 'PHPExcel_Calculation_Statistical::RANK', - 'argumentCount' => '2,3' - ), - 'RATE' => array( - 'category' => PHPExcel_Calculation_Function::CATEGORY_FINANCIAL, - 'functionCall' => 'PHPExcel_Calculation_Financial::RATE', - 'argumentCount' => '3-6' - ), - 'RECEIVED' => array( - 'category' => PHPExcel_Calculation_Function::CATEGORY_FINANCIAL, - 'functionCall' => 'PHPExcel_Calculation_Financial::RECEIVED', - 'argumentCount' => '4-5' - ), - 'REPLACE' => array( - 'category' => PHPExcel_Calculation_Function::CATEGORY_TEXT_AND_DATA, - 'functionCall' => 'PHPExcel_Calculation_TextData::REPLACE', - 'argumentCount' => '4' - ), - 'REPLACEB' => array( - 'category' => PHPExcel_Calculation_Function::CATEGORY_TEXT_AND_DATA, - 'functionCall' => 'PHPExcel_Calculation_TextData::REPLACE', - 'argumentCount' => '4' - ), - 'REPT' => array( - 'category' => PHPExcel_Calculation_Function::CATEGORY_TEXT_AND_DATA, - 'functionCall' => 'str_repeat', - 'argumentCount' => '2' - ), - 'RIGHT' => array( - 'category' => PHPExcel_Calculation_Function::CATEGORY_TEXT_AND_DATA, - 'functionCall' => 'PHPExcel_Calculation_TextData::RIGHT', - 'argumentCount' => '1,2' - ), - 'RIGHTB' => array( - 'category' => PHPExcel_Calculation_Function::CATEGORY_TEXT_AND_DATA, - 'functionCall' => 'PHPExcel_Calculation_TextData::RIGHT', - 'argumentCount' => '1,2' - ), - 'ROMAN' => array( - 'category' => PHPExcel_Calculation_Function::CATEGORY_MATH_AND_TRIG, - 'functionCall' => 'PHPExcel_Calculation_MathTrig::ROMAN', - 'argumentCount' => '1,2' - ), - 'ROUND' => array( - 'category' => PHPExcel_Calculation_Function::CATEGORY_MATH_AND_TRIG, - 'functionCall' => 'round', - 'argumentCount' => '2' - ), - 'ROUNDDOWN' => array( - 'category' => PHPExcel_Calculation_Function::CATEGORY_MATH_AND_TRIG, - 'functionCall' => 'PHPExcel_Calculation_MathTrig::ROUNDDOWN', - 'argumentCount' => '2' - ), - 'ROUNDUP' => array( - 'category' => PHPExcel_Calculation_Function::CATEGORY_MATH_AND_TRIG, - 'functionCall' => 'PHPExcel_Calculation_MathTrig::ROUNDUP', - 'argumentCount' => '2' - ), - 'ROW' => array( - 'category' => PHPExcel_Calculation_Function::CATEGORY_LOOKUP_AND_REFERENCE, - 'functionCall' => 'PHPExcel_Calculation_LookupRef::ROW', - 'argumentCount' => '-1', - 'passByReference' => array(true) - ), - 'ROWS' => array( - 'category' => PHPExcel_Calculation_Function::CATEGORY_LOOKUP_AND_REFERENCE, - 'functionCall' => 'PHPExcel_Calculation_LookupRef::ROWS', - 'argumentCount' => '1' - ), - 'RSQ' => array( - 'category' => PHPExcel_Calculation_Function::CATEGORY_STATISTICAL, - 'functionCall' => 'PHPExcel_Calculation_Statistical::RSQ', - 'argumentCount' => '2' - ), - 'RTD' => array( - 'category' => PHPExcel_Calculation_Function::CATEGORY_LOOKUP_AND_REFERENCE, - 'functionCall' => 'PHPExcel_Calculation_Functions::DUMMY', - 'argumentCount' => '1+' - ), - 'SEARCH' => array( - 'category' => PHPExcel_Calculation_Function::CATEGORY_TEXT_AND_DATA, - 'functionCall' => 'PHPExcel_Calculation_TextData::SEARCHINSENSITIVE', - 'argumentCount' => '2,3' - ), - 'SEARCHB' => array( - 'category' => PHPExcel_Calculation_Function::CATEGORY_TEXT_AND_DATA, - 'functionCall' => 'PHPExcel_Calculation_TextData::SEARCHINSENSITIVE', - 'argumentCount' => '2,3' - ), - 'SECOND' => array( - 'category' => PHPExcel_Calculation_Function::CATEGORY_DATE_AND_TIME, - 'functionCall' => 'PHPExcel_Calculation_DateTime::SECONDOFMINUTE', - 'argumentCount' => '1' - ), - 'SERIESSUM' => array( - 'category' => PHPExcel_Calculation_Function::CATEGORY_MATH_AND_TRIG, - 'functionCall' => 'PHPExcel_Calculation_MathTrig::SERIESSUM', - 'argumentCount' => '4' - ), - 'SIGN' => array( - 'category' => PHPExcel_Calculation_Function::CATEGORY_MATH_AND_TRIG, - 'functionCall' => 'PHPExcel_Calculation_MathTrig::SIGN', - 'argumentCount' => '1' - ), - 'SIN' => array( - 'category' => PHPExcel_Calculation_Function::CATEGORY_MATH_AND_TRIG, - 'functionCall' => 'sin', - 'argumentCount' => '1' - ), - 'SINH' => array( - 'category' => PHPExcel_Calculation_Function::CATEGORY_MATH_AND_TRIG, - 'functionCall' => 'sinh', - 'argumentCount' => '1' - ), - 'SKEW' => array( - 'category' => PHPExcel_Calculation_Function::CATEGORY_STATISTICAL, - 'functionCall' => 'PHPExcel_Calculation_Statistical::SKEW', - 'argumentCount' => '1+' - ), - 'SLN' => array( - 'category' => PHPExcel_Calculation_Function::CATEGORY_FINANCIAL, - 'functionCall' => 'PHPExcel_Calculation_Financial::SLN', - 'argumentCount' => '3' - ), - 'SLOPE' => array( - 'category' => PHPExcel_Calculation_Function::CATEGORY_STATISTICAL, - 'functionCall' => 'PHPExcel_Calculation_Statistical::SLOPE', - 'argumentCount' => '2' - ), - 'SMALL' => array( - 'category' => PHPExcel_Calculation_Function::CATEGORY_STATISTICAL, - 'functionCall' => 'PHPExcel_Calculation_Statistical::SMALL', - 'argumentCount' => '2' - ), - 'SQRT' => array( - 'category' => PHPExcel_Calculation_Function::CATEGORY_MATH_AND_TRIG, - 'functionCall' => 'sqrt', - 'argumentCount' => '1' - ), - 'SQRTPI' => array( - 'category' => PHPExcel_Calculation_Function::CATEGORY_MATH_AND_TRIG, - 'functionCall' => 'PHPExcel_Calculation_MathTrig::SQRTPI', - 'argumentCount' => '1' - ), - 'STANDARDIZE' => array( - 'category' => PHPExcel_Calculation_Function::CATEGORY_STATISTICAL, - 'functionCall' => 'PHPExcel_Calculation_Statistical::STANDARDIZE', - 'argumentCount' => '3' - ), - 'STDEV' => array( - 'category' => PHPExcel_Calculation_Function::CATEGORY_STATISTICAL, - 'functionCall' => 'PHPExcel_Calculation_Statistical::STDEV', - 'argumentCount' => '1+' - ), - 'STDEVA' => array( - 'category' => PHPExcel_Calculation_Function::CATEGORY_STATISTICAL, - 'functionCall' => 'PHPExcel_Calculation_Statistical::STDEVA', - 'argumentCount' => '1+' - ), - 'STDEVP' => array( - 'category' => PHPExcel_Calculation_Function::CATEGORY_STATISTICAL, - 'functionCall' => 'PHPExcel_Calculation_Statistical::STDEVP', - 'argumentCount' => '1+' - ), - 'STDEVPA' => array( - 'category' => PHPExcel_Calculation_Function::CATEGORY_STATISTICAL, - 'functionCall' => 'PHPExcel_Calculation_Statistical::STDEVPA', - 'argumentCount' => '1+' - ), - 'STEYX' => array( - 'category' => PHPExcel_Calculation_Function::CATEGORY_STATISTICAL, - 'functionCall' => 'PHPExcel_Calculation_Statistical::STEYX', - 'argumentCount' => '2' - ), - 'SUBSTITUTE' => array( - 'category' => PHPExcel_Calculation_Function::CATEGORY_TEXT_AND_DATA, - 'functionCall' => 'PHPExcel_Calculation_TextData::SUBSTITUTE', - 'argumentCount' => '3,4' - ), - 'SUBTOTAL' => array( - 'category' => PHPExcel_Calculation_Function::CATEGORY_MATH_AND_TRIG, - 'functionCall' => 'PHPExcel_Calculation_MathTrig::SUBTOTAL', - 'argumentCount' => '2+' - ), - 'SUM' => array( - 'category' => PHPExcel_Calculation_Function::CATEGORY_MATH_AND_TRIG, - 'functionCall' => 'PHPExcel_Calculation_MathTrig::SUM', - 'argumentCount' => '1+' - ), - 'SUMIF' => array( - 'category' => PHPExcel_Calculation_Function::CATEGORY_MATH_AND_TRIG, - 'functionCall' => 'PHPExcel_Calculation_MathTrig::SUMIF', - 'argumentCount' => '2,3' - ), - 'SUMIFS' => array( - 'category' => PHPExcel_Calculation_Function::CATEGORY_MATH_AND_TRIG, - 'functionCall' => 'PHPExcel_Calculation_MathTrig::SUMIFS', - 'argumentCount' => '3+' - ), - 'SUMPRODUCT' => array( - 'category' => PHPExcel_Calculation_Function::CATEGORY_MATH_AND_TRIG, - 'functionCall' => 'PHPExcel_Calculation_MathTrig::SUMPRODUCT', - 'argumentCount' => '1+' - ), - 'SUMSQ' => array( - 'category' => PHPExcel_Calculation_Function::CATEGORY_MATH_AND_TRIG, - 'functionCall' => 'PHPExcel_Calculation_MathTrig::SUMSQ', - 'argumentCount' => '1+' - ), - 'SUMX2MY2' => array( - 'category' => PHPExcel_Calculation_Function::CATEGORY_MATH_AND_TRIG, - 'functionCall' => 'PHPExcel_Calculation_MathTrig::SUMX2MY2', - 'argumentCount' => '2' - ), - 'SUMX2PY2' => array( - 'category' => PHPExcel_Calculation_Function::CATEGORY_MATH_AND_TRIG, - 'functionCall' => 'PHPExcel_Calculation_MathTrig::SUMX2PY2', - 'argumentCount' => '2' - ), - 'SUMXMY2' => array( - 'category' => PHPExcel_Calculation_Function::CATEGORY_MATH_AND_TRIG, - 'functionCall' => 'PHPExcel_Calculation_MathTrig::SUMXMY2', - 'argumentCount' => '2' - ), - 'SYD' => array( - 'category' => PHPExcel_Calculation_Function::CATEGORY_FINANCIAL, - 'functionCall' => 'PHPExcel_Calculation_Financial::SYD', - 'argumentCount' => '4' - ), - 'T' => array( - 'category' => PHPExcel_Calculation_Function::CATEGORY_TEXT_AND_DATA, - 'functionCall' => 'PHPExcel_Calculation_TextData::RETURNSTRING', - 'argumentCount' => '1' - ), - 'TAN' => array( - 'category' => PHPExcel_Calculation_Function::CATEGORY_MATH_AND_TRIG, - 'functionCall' => 'tan', - 'argumentCount' => '1' - ), - 'TANH' => array( - 'category' => PHPExcel_Calculation_Function::CATEGORY_MATH_AND_TRIG, - 'functionCall' => 'tanh', - 'argumentCount' => '1' - ), - 'TBILLEQ' => array( - 'category' => PHPExcel_Calculation_Function::CATEGORY_FINANCIAL, - 'functionCall' => 'PHPExcel_Calculation_Financial::TBILLEQ', - 'argumentCount' => '3' - ), - 'TBILLPRICE' => array( - 'category' => PHPExcel_Calculation_Function::CATEGORY_FINANCIAL, - 'functionCall' => 'PHPExcel_Calculation_Financial::TBILLPRICE', - 'argumentCount' => '3' - ), - 'TBILLYIELD' => array( - 'category' => PHPExcel_Calculation_Function::CATEGORY_FINANCIAL, - 'functionCall' => 'PHPExcel_Calculation_Financial::TBILLYIELD', - 'argumentCount' => '3' - ), - 'TDIST' => array( - 'category' => PHPExcel_Calculation_Function::CATEGORY_STATISTICAL, - 'functionCall' => 'PHPExcel_Calculation_Statistical::TDIST', - 'argumentCount' => '3' - ), - 'TEXT' => array( - 'category' => PHPExcel_Calculation_Function::CATEGORY_TEXT_AND_DATA, - 'functionCall' => 'PHPExcel_Calculation_TextData::TEXTFORMAT', - 'argumentCount' => '2' - ), - 'TIME' => array( - 'category' => PHPExcel_Calculation_Function::CATEGORY_DATE_AND_TIME, - 'functionCall' => 'PHPExcel_Calculation_DateTime::TIME', - 'argumentCount' => '3' - ), - 'TIMEVALUE' => array( - 'category' => PHPExcel_Calculation_Function::CATEGORY_DATE_AND_TIME, - 'functionCall' => 'PHPExcel_Calculation_DateTime::TIMEVALUE', - 'argumentCount' => '1' - ), - 'TINV' => array( - 'category' => PHPExcel_Calculation_Function::CATEGORY_STATISTICAL, - 'functionCall' => 'PHPExcel_Calculation_Statistical::TINV', - 'argumentCount' => '2' - ), - 'TODAY' => array( - 'category' => PHPExcel_Calculation_Function::CATEGORY_DATE_AND_TIME, - 'functionCall' => 'PHPExcel_Calculation_DateTime::DATENOW', - 'argumentCount' => '0' - ), - 'TRANSPOSE' => array( - 'category' => PHPExcel_Calculation_Function::CATEGORY_LOOKUP_AND_REFERENCE, - 'functionCall' => 'PHPExcel_Calculation_LookupRef::TRANSPOSE', - 'argumentCount' => '1' - ), - 'TREND' => array( - 'category' => PHPExcel_Calculation_Function::CATEGORY_STATISTICAL, - 'functionCall' => 'PHPExcel_Calculation_Statistical::TREND', - 'argumentCount' => '1-4' - ), - 'TRIM' => array( - 'category' => PHPExcel_Calculation_Function::CATEGORY_TEXT_AND_DATA, - 'functionCall' => 'PHPExcel_Calculation_TextData::TRIMSPACES', - 'argumentCount' => '1' - ), - 'TRIMMEAN' => array( - 'category' => PHPExcel_Calculation_Function::CATEGORY_STATISTICAL, - 'functionCall' => 'PHPExcel_Calculation_Statistical::TRIMMEAN', - 'argumentCount' => '2' - ), - 'TRUE' => array( - 'category' => PHPExcel_Calculation_Function::CATEGORY_LOGICAL, - 'functionCall' => 'PHPExcel_Calculation_Logical::TRUE', - 'argumentCount' => '0' - ), - 'TRUNC' => array( - 'category' => PHPExcel_Calculation_Function::CATEGORY_MATH_AND_TRIG, - 'functionCall' => 'PHPExcel_Calculation_MathTrig::TRUNC', - 'argumentCount' => '1,2' - ), - 'TTEST' => array( - 'category' => PHPExcel_Calculation_Function::CATEGORY_STATISTICAL, - 'functionCall' => 'PHPExcel_Calculation_Functions::DUMMY', - 'argumentCount' => '4' - ), - 'TYPE' => array( - 'category' => PHPExcel_Calculation_Function::CATEGORY_INFORMATION, - 'functionCall' => 'PHPExcel_Calculation_Functions::TYPE', - 'argumentCount' => '1' - ), - 'UPPER' => array( - 'category' => PHPExcel_Calculation_Function::CATEGORY_TEXT_AND_DATA, - 'functionCall' => 'PHPExcel_Calculation_TextData::UPPERCASE', - 'argumentCount' => '1' - ), - 'USDOLLAR' => array( - 'category' => PHPExcel_Calculation_Function::CATEGORY_FINANCIAL, - 'functionCall' => 'PHPExcel_Calculation_Functions::DUMMY', - 'argumentCount' => '2' - ), - 'VALUE' => array( - 'category' => PHPExcel_Calculation_Function::CATEGORY_TEXT_AND_DATA, - 'functionCall' => 'PHPExcel_Calculation_TextData::VALUE', - 'argumentCount' => '1' - ), - 'VAR' => array( - 'category' => PHPExcel_Calculation_Function::CATEGORY_STATISTICAL, - 'functionCall' => 'PHPExcel_Calculation_Statistical::VARFunc', - 'argumentCount' => '1+' - ), - 'VARA' => array( - 'category' => PHPExcel_Calculation_Function::CATEGORY_STATISTICAL, - 'functionCall' => 'PHPExcel_Calculation_Statistical::VARA', - 'argumentCount' => '1+' - ), - 'VARP' => array( - 'category' => PHPExcel_Calculation_Function::CATEGORY_STATISTICAL, - 'functionCall' => 'PHPExcel_Calculation_Statistical::VARP', - 'argumentCount' => '1+' - ), - 'VARPA' => array( - 'category' => PHPExcel_Calculation_Function::CATEGORY_STATISTICAL, - 'functionCall' => 'PHPExcel_Calculation_Statistical::VARPA', - 'argumentCount' => '1+' - ), - 'VDB' => array( - 'category' => PHPExcel_Calculation_Function::CATEGORY_FINANCIAL, - 'functionCall' => 'PHPExcel_Calculation_Functions::DUMMY', - 'argumentCount' => '5-7' - ), - 'VERSION' => array( - 'category' => PHPExcel_Calculation_Function::CATEGORY_INFORMATION, - 'functionCall' => 'PHPExcel_Calculation_Functions::VERSION', - 'argumentCount' => '0' - ), - 'VLOOKUP' => array( - 'category' => PHPExcel_Calculation_Function::CATEGORY_LOOKUP_AND_REFERENCE, - 'functionCall' => 'PHPExcel_Calculation_LookupRef::VLOOKUP', - 'argumentCount' => '3,4' - ), - 'WEEKDAY' => array( - 'category' => PHPExcel_Calculation_Function::CATEGORY_DATE_AND_TIME, - 'functionCall' => 'PHPExcel_Calculation_DateTime::DAYOFWEEK', - 'argumentCount' => '1,2' - ), - 'WEEKNUM' => array( - 'category' => PHPExcel_Calculation_Function::CATEGORY_DATE_AND_TIME, - 'functionCall' => 'PHPExcel_Calculation_DateTime::WEEKOFYEAR', - 'argumentCount' => '1,2' - ), - 'WEIBULL' => array( - 'category' => PHPExcel_Calculation_Function::CATEGORY_STATISTICAL, - 'functionCall' => 'PHPExcel_Calculation_Statistical::WEIBULL', - 'argumentCount' => '4' - ), - 'WORKDAY' => array( - 'category' => PHPExcel_Calculation_Function::CATEGORY_DATE_AND_TIME, - 'functionCall' => 'PHPExcel_Calculation_DateTime::WORKDAY', - 'argumentCount' => '2+' - ), - 'XIRR' => array( - 'category' => PHPExcel_Calculation_Function::CATEGORY_FINANCIAL, - 'functionCall' => 'PHPExcel_Calculation_Financial::XIRR', - 'argumentCount' => '2,3' - ), - 'XNPV' => array( - 'category' => PHPExcel_Calculation_Function::CATEGORY_FINANCIAL, - 'functionCall' => 'PHPExcel_Calculation_Financial::XNPV', - 'argumentCount' => '3' - ), - 'YEAR' => array( - 'category' => PHPExcel_Calculation_Function::CATEGORY_DATE_AND_TIME, - 'functionCall' => 'PHPExcel_Calculation_DateTime::YEAR', - 'argumentCount' => '1' - ), - 'YEARFRAC' => array( - 'category' => PHPExcel_Calculation_Function::CATEGORY_DATE_AND_TIME, - 'functionCall' => 'PHPExcel_Calculation_DateTime::YEARFRAC', - 'argumentCount' => '2,3' - ), - 'YIELD' => array( - 'category' => PHPExcel_Calculation_Function::CATEGORY_FINANCIAL, - 'functionCall' => 'PHPExcel_Calculation_Functions::DUMMY', - 'argumentCount' => '6,7' - ), - 'YIELDDISC' => array( - 'category' => PHPExcel_Calculation_Function::CATEGORY_FINANCIAL, - 'functionCall' => 'PHPExcel_Calculation_Financial::YIELDDISC', - 'argumentCount' => '4,5' - ), - 'YIELDMAT' => array( - 'category' => PHPExcel_Calculation_Function::CATEGORY_FINANCIAL, - 'functionCall' => 'PHPExcel_Calculation_Financial::YIELDMAT', - 'argumentCount' => '5,6' - ), - 'ZTEST' => array( - 'category' => PHPExcel_Calculation_Function::CATEGORY_STATISTICAL, - 'functionCall' => 'PHPExcel_Calculation_Statistical::ZTEST', - 'argumentCount' => '2-3' - ) - ); - - // Internal functions used for special control purposes - private static $controlFunctions = array( - 'MKMATRIX' => array( - 'argumentCount' => '*', - 'functionCall' => 'self::mkMatrix' - ) - ); - - - public function __construct(PHPExcel $workbook = null) - { - $this->delta = 1 * pow(10, 0 - ini_get('precision')); - - $this->workbook = $workbook; - $this->cyclicReferenceStack = new PHPExcel_CalcEngine_CyclicReferenceStack(); - $this->_debugLog = new PHPExcel_CalcEngine_Logger($this->cyclicReferenceStack); - } - - - private static function loadLocales() - { - $localeFileDirectory = PHPEXCEL_ROOT.'PHPExcel/locale/'; - foreach (glob($localeFileDirectory.'/*', GLOB_ONLYDIR) as $filename) { - $filename = substr($filename, strlen($localeFileDirectory)+1); - if ($filename != 'en') { - self::$validLocaleLanguages[] = $filename; - } - } - } - - /** - * Get an instance of this class - * - * @access public - * @param PHPExcel $workbook Injected workbook for working with a PHPExcel object, - * or NULL to create a standalone claculation engine - * @return PHPExcel_Calculation - */ - public static function getInstance(PHPExcel $workbook = null) - { - if ($workbook !== null) { - $instance = $workbook->getCalculationEngine(); - if (isset($instance)) { - return $instance; - } - } - - if (!isset(self::$instance) || (self::$instance === null)) { - self::$instance = new PHPExcel_Calculation(); - } - return self::$instance; - } - - /** - * Unset an instance of this class - * - * @access public - */ - public function __destruct() - { - $this->workbook = null; - } - - /** - * Flush the calculation cache for any existing instance of this class - * but only if a PHPExcel_Calculation instance exists - * - * @access public - * @return null - */ - public function flushInstance() - { - $this->clearCalculationCache(); - } - - - /** - * Get the debuglog for this claculation engine instance - * - * @access public - * @return PHPExcel_CalcEngine_Logger - */ - public function getDebugLog() - { - return $this->_debugLog; - } - - /** - * __clone implementation. Cloning should not be allowed in a Singleton! - * - * @access public - * @throws PHPExcel_Calculation_Exception - */ - final public function __clone() - { - throw new PHPExcel_Calculation_Exception('Cloning the calculation engine is not allowed!'); - } - - - /** - * Return the locale-specific translation of TRUE - * - * @access public - * @return string locale-specific translation of TRUE - */ - public static function getTRUE() - { - return self::$localeBoolean['TRUE']; - } - - /** - * Return the locale-specific translation of FALSE - * - * @access public - * @return string locale-specific translation of FALSE - */ - public static function getFALSE() - { - return self::$localeBoolean['FALSE']; - } - - /** - * Set the Array Return Type (Array or Value of first element in the array) - * - * @access public - * @param string $returnType Array return type - * @return boolean Success or failure - */ - public static function setArrayReturnType($returnType) - { - if (($returnType == self::RETURN_ARRAY_AS_VALUE) || - ($returnType == self::RETURN_ARRAY_AS_ERROR) || - ($returnType == self::RETURN_ARRAY_AS_ARRAY)) { - self::$returnArrayAsType = $returnType; - return true; - } - return false; - } - - - /** - * Return the Array Return Type (Array or Value of first element in the array) - * - * @access public - * @return string $returnType Array return type - */ - public static function getArrayReturnType() - { - return self::$returnArrayAsType; - } - - - /** - * Is calculation caching enabled? - * - * @access public - * @return boolean - */ - public function getCalculationCacheEnabled() - { - return $this->calculationCacheEnabled; - } - - /** - * Enable/disable calculation cache - * - * @access public - * @param boolean $pValue - */ - public function setCalculationCacheEnabled($pValue = true) - { - $this->calculationCacheEnabled = $pValue; - $this->clearCalculationCache(); - } - - - /** - * Enable calculation cache - */ - public function enableCalculationCache() - { - $this->setCalculationCacheEnabled(true); - } - - - /** - * Disable calculation cache - */ - public function disableCalculationCache() - { - $this->setCalculationCacheEnabled(false); - } - - - /** - * Clear calculation cache - */ - public function clearCalculationCache() - { - $this->calculationCache = array(); - } - - /** - * Clear calculation cache for a specified worksheet - * - * @param string $worksheetName - */ - public function clearCalculationCacheForWorksheet($worksheetName) - { - if (isset($this->calculationCache[$worksheetName])) { - unset($this->calculationCache[$worksheetName]); - } - } - - /** - * Rename calculation cache for a specified worksheet - * - * @param string $fromWorksheetName - * @param string $toWorksheetName - */ - public function renameCalculationCacheForWorksheet($fromWorksheetName, $toWorksheetName) - { - if (isset($this->calculationCache[$fromWorksheetName])) { - $this->calculationCache[$toWorksheetName] = &$this->calculationCache[$fromWorksheetName]; - unset($this->calculationCache[$fromWorksheetName]); - } - } - - - /** - * Get the currently defined locale code - * - * @return string - */ - public function getLocale() - { - return self::$localeLanguage; - } - - - /** - * Set the locale code - * - * @param string $locale The locale to use for formula translation - * @return boolean - */ - public function setLocale($locale = 'en_us') - { - // Identify our locale and language - $language = $locale = strtolower($locale); - if (strpos($locale, '_') !== false) { - list($language) = explode('_', $locale); - } - - if (count(self::$validLocaleLanguages) == 1) { - self::loadLocales(); - } - // Test whether we have any language data for this language (any locale) - if (in_array($language, self::$validLocaleLanguages)) { - // initialise language/locale settings - self::$localeFunctions = array(); - self::$localeArgumentSeparator = ','; - self::$localeBoolean = array('TRUE' => 'TRUE', 'FALSE' => 'FALSE', 'NULL' => 'NULL'); - // Default is English, if user isn't requesting english, then read the necessary data from the locale files - if ($locale != 'en_us') { - // Search for a file with a list of function names for locale - $functionNamesFile = PHPEXCEL_ROOT . 'PHPExcel'.DIRECTORY_SEPARATOR.'locale'.DIRECTORY_SEPARATOR.str_replace('_', DIRECTORY_SEPARATOR, $locale).DIRECTORY_SEPARATOR.'functions'; - if (!file_exists($functionNamesFile)) { - // If there isn't a locale specific function file, look for a language specific function file - $functionNamesFile = PHPEXCEL_ROOT . 'PHPExcel'.DIRECTORY_SEPARATOR.'locale'.DIRECTORY_SEPARATOR.$language.DIRECTORY_SEPARATOR.'functions'; - if (!file_exists($functionNamesFile)) { - return false; - } - } - // Retrieve the list of locale or language specific function names - $localeFunctions = file($functionNamesFile, FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES); - foreach ($localeFunctions as $localeFunction) { - list($localeFunction) = explode('##', $localeFunction); // Strip out comments - if (strpos($localeFunction, '=') !== false) { - list($fName, $lfName) = explode('=', $localeFunction); - $fName = trim($fName); - $lfName = trim($lfName); - if ((isset(self::$PHPExcelFunctions[$fName])) && ($lfName != '') && ($fName != $lfName)) { - self::$localeFunctions[$fName] = $lfName; - } - } - } - // Default the TRUE and FALSE constants to the locale names of the TRUE() and FALSE() functions - if (isset(self::$localeFunctions['TRUE'])) { - self::$localeBoolean['TRUE'] = self::$localeFunctions['TRUE']; - } - if (isset(self::$localeFunctions['FALSE'])) { - self::$localeBoolean['FALSE'] = self::$localeFunctions['FALSE']; - } - - $configFile = PHPEXCEL_ROOT . 'PHPExcel'.DIRECTORY_SEPARATOR.'locale'.DIRECTORY_SEPARATOR.str_replace('_', DIRECTORY_SEPARATOR, $locale).DIRECTORY_SEPARATOR.'config'; - if (!file_exists($configFile)) { - $configFile = PHPEXCEL_ROOT . 'PHPExcel'.DIRECTORY_SEPARATOR.'locale'.DIRECTORY_SEPARATOR.$language.DIRECTORY_SEPARATOR.'config'; - } - if (file_exists($configFile)) { - $localeSettings = file($configFile, FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES); - foreach ($localeSettings as $localeSetting) { - list($localeSetting) = explode('##', $localeSetting); // Strip out comments - if (strpos($localeSetting, '=') !== false) { - list($settingName, $settingValue) = explode('=', $localeSetting); - $settingName = strtoupper(trim($settingName)); - switch ($settingName) { - case 'ARGUMENTSEPARATOR': - self::$localeArgumentSeparator = trim($settingValue); - break; - } - } - } - } - } - - self::$functionReplaceFromExcel = self::$functionReplaceToExcel = - self::$functionReplaceFromLocale = self::$functionReplaceToLocale = null; - self::$localeLanguage = $locale; - return true; - } - return false; - } - - - - public static function translateSeparator($fromSeparator, $toSeparator, $formula, &$inBraces) - { - $strlen = mb_strlen($formula); - for ($i = 0; $i < $strlen; ++$i) { - $chr = mb_substr($formula, $i, 1); - switch ($chr) { - case '{': - $inBraces = true; - break; - case '}': - $inBraces = false; - break; - case $fromSeparator: - if (!$inBraces) { - $formula = mb_substr($formula, 0, $i).$toSeparator.mb_substr($formula, $i+1); - } - } - } - return $formula; - } - - private static function translateFormula($from, $to, $formula, $fromSeparator, $toSeparator) - { - // Convert any Excel function names to the required language - if (self::$localeLanguage !== 'en_us') { - $inBraces = false; - // If there is the possibility of braces within a quoted string, then we don't treat those as matrix indicators - if (strpos($formula, '"') !== false) { - // So instead we skip replacing in any quoted strings by only replacing in every other array element after we've exploded - // the formula - $temp = explode('"', $formula); - $i = false; - foreach ($temp as &$value) { - // Only count/replace in alternating array entries - if ($i = !$i) { - $value = preg_replace($from, $to, $value); - $value = self::translateSeparator($fromSeparator, $toSeparator, $value, $inBraces); - } - } - unset($value); - // Then rebuild the formula string - $formula = implode('"', $temp); - } else { - // If there's no quoted strings, then we do a simple count/replace - $formula = preg_replace($from, $to, $formula); - $formula = self::translateSeparator($fromSeparator, $toSeparator, $formula, $inBraces); - } - } - - return $formula; - } - - private static $functionReplaceFromExcel = null; - private static $functionReplaceToLocale = null; - - public function _translateFormulaToLocale($formula) - { - if (self::$functionReplaceFromExcel === null) { - self::$functionReplaceFromExcel = array(); - foreach (array_keys(self::$localeFunctions) as $excelFunctionName) { - self::$functionReplaceFromExcel[] = '/(@?[^\w\.])'.preg_quote($excelFunctionName).'([\s]*\()/Ui'; - } - foreach (array_keys(self::$localeBoolean) as $excelBoolean) { - self::$functionReplaceFromExcel[] = '/(@?[^\w\.])'.preg_quote($excelBoolean).'([^\w\.])/Ui'; - } - - } - - if (self::$functionReplaceToLocale === null) { - self::$functionReplaceToLocale = array(); - foreach (array_values(self::$localeFunctions) as $localeFunctionName) { - self::$functionReplaceToLocale[] = '$1'.trim($localeFunctionName).'$2'; - } - foreach (array_values(self::$localeBoolean) as $localeBoolean) { - self::$functionReplaceToLocale[] = '$1'.trim($localeBoolean).'$2'; - } - } - - return self::translateFormula(self::$functionReplaceFromExcel, self::$functionReplaceToLocale, $formula, ',', self::$localeArgumentSeparator); - } - - - private static $functionReplaceFromLocale = null; - private static $functionReplaceToExcel = null; - - public function _translateFormulaToEnglish($formula) - { - if (self::$functionReplaceFromLocale === null) { - self::$functionReplaceFromLocale = array(); - foreach (array_values(self::$localeFunctions) as $localeFunctionName) { - self::$functionReplaceFromLocale[] = '/(@?[^\w\.])'.preg_quote($localeFunctionName).'([\s]*\()/Ui'; - } - foreach (array_values(self::$localeBoolean) as $excelBoolean) { - self::$functionReplaceFromLocale[] = '/(@?[^\w\.])'.preg_quote($excelBoolean).'([^\w\.])/Ui'; - } - } - - if (self::$functionReplaceToExcel === null) { - self::$functionReplaceToExcel = array(); - foreach (array_keys(self::$localeFunctions) as $excelFunctionName) { - self::$functionReplaceToExcel[] = '$1'.trim($excelFunctionName).'$2'; - } - foreach (array_keys(self::$localeBoolean) as $excelBoolean) { - self::$functionReplaceToExcel[] = '$1'.trim($excelBoolean).'$2'; - } - } - - return self::translateFormula(self::$functionReplaceFromLocale, self::$functionReplaceToExcel, $formula, self::$localeArgumentSeparator, ','); - } - - - public static function localeFunc($function) - { - if (self::$localeLanguage !== 'en_us') { - $functionName = trim($function, '('); - if (isset(self::$localeFunctions[$functionName])) { - $brace = ($functionName != $function); - $function = self::$localeFunctions[$functionName]; - if ($brace) { - $function .= '('; - } - } - } - return $function; - } - - - - - /** - * Wrap string values in quotes - * - * @param mixed $value - * @return mixed - */ - public static function wrapResult($value) - { - if (is_string($value)) { - // Error values cannot be "wrapped" - if (preg_match('/^'.self::CALCULATION_REGEXP_ERROR.'$/i', $value, $match)) { - // Return Excel errors "as is" - return $value; - } - // Return strings wrapped in quotes - return '"'.$value.'"'; - // Convert numeric errors to NaN error - } elseif ((is_float($value)) && ((is_nan($value)) || (is_infinite($value)))) { - return PHPExcel_Calculation_Functions::NaN(); - } - - return $value; - } - - - /** - * Remove quotes used as a wrapper to identify string values - * - * @param mixed $value - * @return mixed - */ - public static function unwrapResult($value) - { - if (is_string($value)) { - if ((isset($value{0})) && ($value{0} == '"') && (substr($value, -1) == '"')) { - return substr($value, 1, -1); - } - // Convert numeric errors to NaN error - } elseif ((is_float($value)) && ((is_nan($value)) || (is_infinite($value)))) { - return PHPExcel_Calculation_Functions::NaN(); - } - return $value; - } - - - - - /** - * Calculate cell value (using formula from a cell ID) - * Retained for backward compatibility - * - * @access public - * @param PHPExcel_Cell $pCell Cell to calculate - * @return mixed - * @throws PHPExcel_Calculation_Exception - */ - public function calculate(PHPExcel_Cell $pCell = null) - { - try { - return $this->calculateCellValue($pCell); - } catch (PHPExcel_Exception $e) { - throw new PHPExcel_Calculation_Exception($e->getMessage()); - } - } - - - /** - * Calculate the value of a cell formula - * - * @access public - * @param PHPExcel_Cell $pCell Cell to calculate - * @param Boolean $resetLog Flag indicating whether the debug log should be reset or not - * @return mixed - * @throws PHPExcel_Calculation_Exception - */ - public function calculateCellValue(PHPExcel_Cell $pCell = null, $resetLog = true) - { - if ($pCell === null) { - return null; - } - - $returnArrayAsType = self::$returnArrayAsType; - if ($resetLog) { - // Initialise the logging settings if requested - $this->formulaError = null; - $this->_debugLog->clearLog(); - $this->cyclicReferenceStack->clear(); - $this->cyclicFormulaCounter = 1; - - self::$returnArrayAsType = self::RETURN_ARRAY_AS_ARRAY; - } - - // Execute the calculation for the cell formula - $this->cellStack[] = array( - 'sheet' => $pCell->getWorksheet()->getTitle(), - 'cell' => $pCell->getCoordinate(), - ); - try { - $result = self::unwrapResult($this->_calculateFormulaValue($pCell->getValue(), $pCell->getCoordinate(), $pCell)); - $cellAddress = array_pop($this->cellStack); - $this->workbook->getSheetByName($cellAddress['sheet'])->getCell($cellAddress['cell']); - } catch (PHPExcel_Exception $e) { - $cellAddress = array_pop($this->cellStack); - $this->workbook->getSheetByName($cellAddress['sheet'])->getCell($cellAddress['cell']); - throw new PHPExcel_Calculation_Exception($e->getMessage()); - } - - if ((is_array($result)) && (self::$returnArrayAsType != self::RETURN_ARRAY_AS_ARRAY)) { - self::$returnArrayAsType = $returnArrayAsType; - $testResult = PHPExcel_Calculation_Functions::flattenArray($result); - if (self::$returnArrayAsType == self::RETURN_ARRAY_AS_ERROR) { - return PHPExcel_Calculation_Functions::VALUE(); - } - // If there's only a single cell in the array, then we allow it - if (count($testResult) != 1) { - // If keys are numeric, then it's a matrix result rather than a cell range result, so we permit it - $r = array_keys($result); - $r = array_shift($r); - if (!is_numeric($r)) { - return PHPExcel_Calculation_Functions::VALUE(); - } - if (is_array($result[$r])) { - $c = array_keys($result[$r]); - $c = array_shift($c); - if (!is_numeric($c)) { - return PHPExcel_Calculation_Functions::VALUE(); - } - } - } - $result = array_shift($testResult); - } - self::$returnArrayAsType = $returnArrayAsType; - - - if ($result === null) { - return 0; - } elseif ((is_float($result)) && ((is_nan($result)) || (is_infinite($result)))) { - return PHPExcel_Calculation_Functions::NaN(); - } - return $result; - } - - - /** - * Validate and parse a formula string - * - * @param string $formula Formula to parse - * @return array - * @throws PHPExcel_Calculation_Exception - */ - public function parseFormula($formula) - { - // Basic validation that this is indeed a formula - // We return an empty array if not - $formula = trim($formula); - if ((!isset($formula{0})) || ($formula{0} != '=')) { - return array(); - } - $formula = ltrim(substr($formula, 1)); - if (!isset($formula{0})) { - return array(); - } - - // Parse the formula and return the token stack - return $this->_parseFormula($formula); - } - - - /** - * Calculate the value of a formula - * - * @param string $formula Formula to parse - * @param string $cellID Address of the cell to calculate - * @param PHPExcel_Cell $pCell Cell to calculate - * @return mixed - * @throws PHPExcel_Calculation_Exception - */ - public function calculateFormula($formula, $cellID = null, PHPExcel_Cell $pCell = null) - { - // Initialise the logging settings - $this->formulaError = null; - $this->_debugLog->clearLog(); - $this->cyclicReferenceStack->clear(); - - if ($this->workbook !== null && $cellID === null && $pCell === null) { - $cellID = 'A1'; - $pCell = $this->workbook->getActiveSheet()->getCell($cellID); - } else { - // Disable calculation cacheing because it only applies to cell calculations, not straight formulae - // But don't actually flush any cache - $resetCache = $this->getCalculationCacheEnabled(); - $this->calculationCacheEnabled = false; - } - - // Execute the calculation - try { - $result = self::unwrapResult($this->_calculateFormulaValue($formula, $cellID, $pCell)); - } catch (PHPExcel_Exception $e) { - throw new PHPExcel_Calculation_Exception($e->getMessage()); - } - - if ($this->workbook === null) { - // Reset calculation cacheing to its previous state - $this->calculationCacheEnabled = $resetCache; - } - - return $result; - } - - - public function getValueFromCache($cellReference, &$cellValue) - { - // Is calculation cacheing enabled? - // Is the value present in calculation cache? - $this->_debugLog->writeDebugLog('Testing cache value for cell ', $cellReference); - if (($this->calculationCacheEnabled) && (isset($this->calculationCache[$cellReference]))) { - $this->_debugLog->writeDebugLog('Retrieving value for cell ', $cellReference, ' from cache'); - // Return the cached result - $cellValue = $this->calculationCache[$cellReference]; - return true; - } - return false; - } - - public function saveValueToCache($cellReference, $cellValue) - { - if ($this->calculationCacheEnabled) { - $this->calculationCache[$cellReference] = $cellValue; - } - } - - /** - * Parse a cell formula and calculate its value - * - * @param string $formula The formula to parse and calculate - * @param string $cellID The ID (e.g. A3) of the cell that we are calculating - * @param PHPExcel_Cell $pCell Cell to calculate - * @return mixed - * @throws PHPExcel_Calculation_Exception - */ - public function _calculateFormulaValue($formula, $cellID = null, PHPExcel_Cell $pCell = null) - { - $cellValue = null; - - // Basic validation that this is indeed a formula - // We simply return the cell value if not - $formula = trim($formula); - if ($formula{0} != '=') { - return self::wrapResult($formula); - } - $formula = ltrim(substr($formula, 1)); - if (!isset($formula{0})) { - return self::wrapResult($formula); - } - - $pCellParent = ($pCell !== null) ? $pCell->getWorksheet() : null; - $wsTitle = ($pCellParent !== null) ? $pCellParent->getTitle() : "\x00Wrk"; - $wsCellReference = $wsTitle . '!' . $cellID; - - if (($cellID !== null) && ($this->getValueFromCache($wsCellReference, $cellValue))) { - return $cellValue; - } - - if (($wsTitle{0} !== "\x00") && ($this->cyclicReferenceStack->onStack($wsCellReference))) { - if ($this->cyclicFormulaCount <= 0) { - $this->cyclicFormulaCell = ''; - return $this->raiseFormulaError('Cyclic Reference in Formula'); - } elseif ($this->cyclicFormulaCell === $wsCellReference) { - ++$this->cyclicFormulaCounter; - if ($this->cyclicFormulaCounter >= $this->cyclicFormulaCount) { - $this->cyclicFormulaCell = ''; - return $cellValue; - } - } elseif ($this->cyclicFormulaCell == '') { - if ($this->cyclicFormulaCounter >= $this->cyclicFormulaCount) { - return $cellValue; - } - $this->cyclicFormulaCell = $wsCellReference; - } - } - - // Parse the formula onto the token stack and calculate the value - $this->cyclicReferenceStack->push($wsCellReference); - $cellValue = $this->processTokenStack($this->_parseFormula($formula, $pCell), $cellID, $pCell); - $this->cyclicReferenceStack->pop(); - - // Save to calculation cache - if ($cellID !== null) { - $this->saveValueToCache($wsCellReference, $cellValue); - } - - // Return the calculated value - return $cellValue; - } - - - /** - * Ensure that paired matrix operands are both matrices and of the same size - * - * @param mixed &$operand1 First matrix operand - * @param mixed &$operand2 Second matrix operand - * @param integer $resize Flag indicating whether the matrices should be resized to match - * and (if so), whether the smaller dimension should grow or the - * larger should shrink. - * 0 = no resize - * 1 = shrink to fit - * 2 = extend to fit - */ - private static function checkMatrixOperands(&$operand1, &$operand2, $resize = 1) - { - // Examine each of the two operands, and turn them into an array if they aren't one already - // Note that this function should only be called if one or both of the operand is already an array - if (!is_array($operand1)) { - list($matrixRows, $matrixColumns) = self::getMatrixDimensions($operand2); - $operand1 = array_fill(0, $matrixRows, array_fill(0, $matrixColumns, $operand1)); - $resize = 0; - } elseif (!is_array($operand2)) { - list($matrixRows, $matrixColumns) = self::getMatrixDimensions($operand1); - $operand2 = array_fill(0, $matrixRows, array_fill(0, $matrixColumns, $operand2)); - $resize = 0; - } - - list($matrix1Rows, $matrix1Columns) = self::getMatrixDimensions($operand1); - list($matrix2Rows, $matrix2Columns) = self::getMatrixDimensions($operand2); - if (($matrix1Rows == $matrix2Columns) && ($matrix2Rows == $matrix1Columns)) { - $resize = 1; - } - - if ($resize == 2) { - // Given two matrices of (potentially) unequal size, convert the smaller in each dimension to match the larger - self::resizeMatricesExtend($operand1, $operand2, $matrix1Rows, $matrix1Columns, $matrix2Rows, $matrix2Columns); - } elseif ($resize == 1) { - // Given two matrices of (potentially) unequal size, convert the larger in each dimension to match the smaller - self::resizeMatricesShrink($operand1, $operand2, $matrix1Rows, $matrix1Columns, $matrix2Rows, $matrix2Columns); - } - return array( $matrix1Rows, $matrix1Columns, $matrix2Rows, $matrix2Columns); - } - - - /** - * Read the dimensions of a matrix, and re-index it with straight numeric keys starting from row 0, column 0 - * - * @param mixed &$matrix matrix operand - * @return array An array comprising the number of rows, and number of columns - */ - private static function getMatrixDimensions(&$matrix) - { - $matrixRows = count($matrix); - $matrixColumns = 0; - foreach ($matrix as $rowKey => $rowValue) { - $matrixColumns = max(count($rowValue), $matrixColumns); - if (!is_array($rowValue)) { - $matrix[$rowKey] = array($rowValue); - } else { - $matrix[$rowKey] = array_values($rowValue); - } - } - $matrix = array_values($matrix); - return array($matrixRows, $matrixColumns); - } - - - /** - * Ensure that paired matrix operands are both matrices of the same size - * - * @param mixed &$matrix1 First matrix operand - * @param mixed &$matrix2 Second matrix operand - * @param integer $matrix1Rows Row size of first matrix operand - * @param integer $matrix1Columns Column size of first matrix operand - * @param integer $matrix2Rows Row size of second matrix operand - * @param integer $matrix2Columns Column size of second matrix operand - */ - private static function resizeMatricesShrink(&$matrix1, &$matrix2, $matrix1Rows, $matrix1Columns, $matrix2Rows, $matrix2Columns) - { - if (($matrix2Columns < $matrix1Columns) || ($matrix2Rows < $matrix1Rows)) { - if ($matrix2Rows < $matrix1Rows) { - for ($i = $matrix2Rows; $i < $matrix1Rows; ++$i) { - unset($matrix1[$i]); - } - } - if ($matrix2Columns < $matrix1Columns) { - for ($i = 0; $i < $matrix1Rows; ++$i) { - for ($j = $matrix2Columns; $j < $matrix1Columns; ++$j) { - unset($matrix1[$i][$j]); - } - } - } - } - - if (($matrix1Columns < $matrix2Columns) || ($matrix1Rows < $matrix2Rows)) { - if ($matrix1Rows < $matrix2Rows) { - for ($i = $matrix1Rows; $i < $matrix2Rows; ++$i) { - unset($matrix2[$i]); - } - } - if ($matrix1Columns < $matrix2Columns) { - for ($i = 0; $i < $matrix2Rows; ++$i) { - for ($j = $matrix1Columns; $j < $matrix2Columns; ++$j) { - unset($matrix2[$i][$j]); - } - } - } - } - } - - - /** - * Ensure that paired matrix operands are both matrices of the same size - * - * @param mixed &$matrix1 First matrix operand - * @param mixed &$matrix2 Second matrix operand - * @param integer $matrix1Rows Row size of first matrix operand - * @param integer $matrix1Columns Column size of first matrix operand - * @param integer $matrix2Rows Row size of second matrix operand - * @param integer $matrix2Columns Column size of second matrix operand - */ - private static function resizeMatricesExtend(&$matrix1, &$matrix2, $matrix1Rows, $matrix1Columns, $matrix2Rows, $matrix2Columns) - { - if (($matrix2Columns < $matrix1Columns) || ($matrix2Rows < $matrix1Rows)) { - if ($matrix2Columns < $matrix1Columns) { - for ($i = 0; $i < $matrix2Rows; ++$i) { - $x = $matrix2[$i][$matrix2Columns-1]; - for ($j = $matrix2Columns; $j < $matrix1Columns; ++$j) { - $matrix2[$i][$j] = $x; - } - } - } - if ($matrix2Rows < $matrix1Rows) { - $x = $matrix2[$matrix2Rows-1]; - for ($i = 0; $i < $matrix1Rows; ++$i) { - $matrix2[$i] = $x; - } - } - } - - if (($matrix1Columns < $matrix2Columns) || ($matrix1Rows < $matrix2Rows)) { - if ($matrix1Columns < $matrix2Columns) { - for ($i = 0; $i < $matrix1Rows; ++$i) { - $x = $matrix1[$i][$matrix1Columns-1]; - for ($j = $matrix1Columns; $j < $matrix2Columns; ++$j) { - $matrix1[$i][$j] = $x; - } - } - } - if ($matrix1Rows < $matrix2Rows) { - $x = $matrix1[$matrix1Rows-1]; - for ($i = 0; $i < $matrix2Rows; ++$i) { - $matrix1[$i] = $x; - } - } - } - } - - - /** - * Format details of an operand for display in the log (based on operand type) - * - * @param mixed $value First matrix operand - * @return mixed - */ - private function showValue($value) - { - if ($this->_debugLog->getWriteDebugLog()) { - $testArray = PHPExcel_Calculation_Functions::flattenArray($value); - if (count($testArray) == 1) { - $value = array_pop($testArray); - } - - if (is_array($value)) { - $returnMatrix = array(); - $pad = $rpad = ', '; - foreach ($value as $row) { - if (is_array($row)) { - $returnMatrix[] = implode($pad, array_map(array($this, 'showValue'), $row)); - $rpad = '; '; - } else { - $returnMatrix[] = $this->showValue($row); - } - } - return '{ '.implode($rpad, $returnMatrix).' }'; - } elseif (is_string($value) && (trim($value, '"') == $value)) { - return '"'.$value.'"'; - } elseif (is_bool($value)) { - return ($value) ? self::$localeBoolean['TRUE'] : self::$localeBoolean['FALSE']; - } - } - return PHPExcel_Calculation_Functions::flattenSingleValue($value); - } - - - /** - * Format type and details of an operand for display in the log (based on operand type) - * - * @param mixed $value First matrix operand - * @return mixed - */ - private function showTypeDetails($value) - { - if ($this->_debugLog->getWriteDebugLog()) { - $testArray = PHPExcel_Calculation_Functions::flattenArray($value); - if (count($testArray) == 1) { - $value = array_pop($testArray); - } - - if ($value === null) { - return 'a NULL value'; - } elseif (is_float($value)) { - $typeString = 'a floating point number'; - } elseif (is_int($value)) { - $typeString = 'an integer number'; - } elseif (is_bool($value)) { - $typeString = 'a boolean'; - } elseif (is_array($value)) { - $typeString = 'a matrix'; - } else { - if ($value == '') { - return 'an empty string'; - } elseif ($value{0} == '#') { - return 'a '.$value.' error'; - } else { - $typeString = 'a string'; - } - } - return $typeString.' with a value of '.$this->showValue($value); - } - } - - - private function convertMatrixReferences($formula) - { - static $matrixReplaceFrom = array('{', ';', '}'); - static $matrixReplaceTo = array('MKMATRIX(MKMATRIX(', '),MKMATRIX(', '))'); - - // Convert any Excel matrix references to the MKMATRIX() function - if (strpos($formula, '{') !== false) { - // If there is the possibility of braces within a quoted string, then we don't treat those as matrix indicators - if (strpos($formula, '"') !== false) { - // So instead we skip replacing in any quoted strings by only replacing in every other array element after we've exploded - // the formula - $temp = explode('"', $formula); - // Open and Closed counts used for trapping mismatched braces in the formula - $openCount = $closeCount = 0; - $i = false; - foreach ($temp as &$value) { - // Only count/replace in alternating array entries - if ($i = !$i) { - $openCount += substr_count($value, '{'); - $closeCount += substr_count($value, '}'); - $value = str_replace($matrixReplaceFrom, $matrixReplaceTo, $value); - } - } - unset($value); - // Then rebuild the formula string - $formula = implode('"', $temp); - } else { - // If there's no quoted strings, then we do a simple count/replace - $openCount = substr_count($formula, '{'); - $closeCount = substr_count($formula, '}'); - $formula = str_replace($matrixReplaceFrom, $matrixReplaceTo, $formula); - } - // Trap for mismatched braces and trigger an appropriate error - if ($openCount < $closeCount) { - if ($openCount > 0) { - return $this->raiseFormulaError("Formula Error: Mismatched matrix braces '}'"); - } else { - return $this->raiseFormulaError("Formula Error: Unexpected '}' encountered"); - } - } elseif ($openCount > $closeCount) { - if ($closeCount > 0) { - return $this->raiseFormulaError("Formula Error: Mismatched matrix braces '{'"); - } else { - return $this->raiseFormulaError("Formula Error: Unexpected '{' encountered"); - } - } - } - - return $formula; - } - - - private static function mkMatrix() - { - return func_get_args(); - } - - - // Binary Operators - // These operators always work on two values - // Array key is the operator, the value indicates whether this is a left or right associative operator - private static $operatorAssociativity = array( - '^' => 0, // Exponentiation - '*' => 0, '/' => 0, // Multiplication and Division - '+' => 0, '-' => 0, // Addition and Subtraction - '&' => 0, // Concatenation - '|' => 0, ':' => 0, // Intersect and Range - '>' => 0, '<' => 0, '=' => 0, '>=' => 0, '<=' => 0, '<>' => 0 // Comparison - ); - - // Comparison (Boolean) Operators - // These operators work on two values, but always return a boolean result - private static $comparisonOperators = array('>' => true, '<' => true, '=' => true, '>=' => true, '<=' => true, '<>' => true); - - // Operator Precedence - // This list includes all valid operators, whether binary (including boolean) or unary (such as %) - // Array key is the operator, the value is its precedence - private static $operatorPrecedence = array( - ':' => 8, // Range - '|' => 7, // Intersect - '~' => 6, // Negation - '%' => 5, // Percentage - '^' => 4, // Exponentiation - '*' => 3, '/' => 3, // Multiplication and Division - '+' => 2, '-' => 2, // Addition and Subtraction - '&' => 1, // Concatenation - '>' => 0, '<' => 0, '=' => 0, '>=' => 0, '<=' => 0, '<>' => 0 // Comparison - ); - - // Convert infix to postfix notation - private function _parseFormula($formula, PHPExcel_Cell $pCell = null) - { - if (($formula = $this->convertMatrixReferences(trim($formula))) === false) { - return false; - } - - // If we're using cell caching, then $pCell may well be flushed back to the cache (which detaches the parent worksheet), - // so we store the parent worksheet so that we can re-attach it when necessary - $pCellParent = ($pCell !== null) ? $pCell->getWorksheet() : null; - - $regexpMatchString = '/^('.self::CALCULATION_REGEXP_FUNCTION. - '|'.self::CALCULATION_REGEXP_CELLREF. - '|'.self::CALCULATION_REGEXP_NUMBER. - '|'.self::CALCULATION_REGEXP_STRING. - '|'.self::CALCULATION_REGEXP_OPENBRACE. - '|'.self::CALCULATION_REGEXP_NAMEDRANGE. - '|'.self::CALCULATION_REGEXP_ERROR. - ')/si'; - - // Start with initialisation - $index = 0; - $stack = new PHPExcel_Calculation_Token_Stack; - $output = array(); - $expectingOperator = false; // We use this test in syntax-checking the expression to determine when a - // - is a negation or + is a positive operator rather than an operation - $expectingOperand = false; // We use this test in syntax-checking the expression to determine whether an operand - // should be null in a function call - // The guts of the lexical parser - // Loop through the formula extracting each operator and operand in turn - while (true) { -//echo 'Assessing Expression '.substr($formula, $index), PHP_EOL; - $opCharacter = $formula{$index}; // Get the first character of the value at the current index position -//echo 'Initial character of expression block is '.$opCharacter, PHP_EOL; - if ((isset(self::$comparisonOperators[$opCharacter])) && (strlen($formula) > $index) && (isset(self::$comparisonOperators[$formula{$index+1}]))) { - $opCharacter .= $formula{++$index}; -//echo 'Initial character of expression block is comparison operator '.$opCharacter.PHP_EOL; - } - - // Find out if we're currently at the beginning of a number, variable, cell reference, function, parenthesis or operand - $isOperandOrFunction = preg_match($regexpMatchString, substr($formula, $index), $match); -//echo '$isOperandOrFunction is '.(($isOperandOrFunction) ? 'True' : 'False').PHP_EOL; -//var_dump($match); - - if ($opCharacter == '-' && !$expectingOperator) { // Is it a negation instead of a minus? -//echo 'Element is a Negation operator', PHP_EOL; - $stack->push('Unary Operator', '~'); // Put a negation on the stack - ++$index; // and drop the negation symbol - } elseif ($opCharacter == '%' && $expectingOperator) { -//echo 'Element is a Percentage operator', PHP_EOL; - $stack->push('Unary Operator', '%'); // Put a percentage on the stack - ++$index; - } elseif ($opCharacter == '+' && !$expectingOperator) { // Positive (unary plus rather than binary operator plus) can be discarded? -//echo 'Element is a Positive number, not Plus operator', PHP_EOL; - ++$index; // Drop the redundant plus symbol - } elseif ((($opCharacter == '~') || ($opCharacter == '|')) && (!$isOperandOrFunction)) { // We have to explicitly deny a tilde or pipe, because they are legal - return $this->raiseFormulaError("Formula Error: Illegal character '~'"); // on the stack but not in the input expression - - } elseif ((isset(self::$operators[$opCharacter]) or $isOperandOrFunction) && $expectingOperator) { // Are we putting an operator on the stack? -//echo 'Element with value '.$opCharacter.' is an Operator', PHP_EOL; - while ($stack->count() > 0 && - ($o2 = $stack->last()) && - isset(self::$operators[$o2['value']]) && - @(self::$operatorAssociativity[$opCharacter] ? self::$operatorPrecedence[$opCharacter] < self::$operatorPrecedence[$o2['value']] : self::$operatorPrecedence[$opCharacter] <= self::$operatorPrecedence[$o2['value']])) { - $output[] = $stack->pop(); // Swap operands and higher precedence operators from the stack to the output - } - $stack->push('Binary Operator', $opCharacter); // Finally put our current operator onto the stack - ++$index; - $expectingOperator = false; - - } elseif ($opCharacter == ')' && $expectingOperator) { // Are we expecting to close a parenthesis? -//echo 'Element is a Closing bracket', PHP_EOL; - $expectingOperand = false; - while (($o2 = $stack->pop()) && $o2['value'] != '(') { // Pop off the stack back to the last ( - if ($o2 === null) { - return $this->raiseFormulaError('Formula Error: Unexpected closing brace ")"'); - } else { - $output[] = $o2; - } - } - $d = $stack->last(2); - if (preg_match('/^'.self::CALCULATION_REGEXP_FUNCTION.'$/i', $d['value'], $matches)) { // Did this parenthesis just close a function? - $functionName = $matches[1]; // Get the function name -//echo 'Closed Function is '.$functionName, PHP_EOL; - $d = $stack->pop(); - $argumentCount = $d['value']; // See how many arguments there were (argument count is the next value stored on the stack) -//if ($argumentCount == 0) { -// echo 'With no arguments', PHP_EOL; -//} elseif ($argumentCount == 1) { -// echo 'With 1 argument', PHP_EOL; -//} else { -// echo 'With '.$argumentCount.' arguments', PHP_EOL; -//} - $output[] = $d; // Dump the argument count on the output - $output[] = $stack->pop(); // Pop the function and push onto the output - if (isset(self::$controlFunctions[$functionName])) { -//echo 'Built-in function '.$functionName, PHP_EOL; - $expectedArgumentCount = self::$controlFunctions[$functionName]['argumentCount']; - $functionCall = self::$controlFunctions[$functionName]['functionCall']; - } elseif (isset(self::$PHPExcelFunctions[$functionName])) { -//echo 'PHPExcel function '.$functionName, PHP_EOL; - $expectedArgumentCount = self::$PHPExcelFunctions[$functionName]['argumentCount']; - $functionCall = self::$PHPExcelFunctions[$functionName]['functionCall']; - } else { // did we somehow push a non-function on the stack? this should never happen - return $this->raiseFormulaError("Formula Error: Internal error, non-function on stack"); - } - // Check the argument count - $argumentCountError = false; - if (is_numeric($expectedArgumentCount)) { - if ($expectedArgumentCount < 0) { -//echo '$expectedArgumentCount is between 0 and '.abs($expectedArgumentCount), PHP_EOL; - if ($argumentCount > abs($expectedArgumentCount)) { - $argumentCountError = true; - $expectedArgumentCountString = 'no more than '.abs($expectedArgumentCount); - } - } else { -//echo '$expectedArgumentCount is numeric '.$expectedArgumentCount, PHP_EOL; - if ($argumentCount != $expectedArgumentCount) { - $argumentCountError = true; - $expectedArgumentCountString = $expectedArgumentCount; - } - } - } elseif ($expectedArgumentCount != '*') { - $isOperandOrFunction = preg_match('/(\d*)([-+,])(\d*)/', $expectedArgumentCount, $argMatch); -//print_r($argMatch); -//echo PHP_EOL; - switch ($argMatch[2]) { - case '+': - if ($argumentCount < $argMatch[1]) { - $argumentCountError = true; - $expectedArgumentCountString = $argMatch[1].' or more '; - } - break; - case '-': - if (($argumentCount < $argMatch[1]) || ($argumentCount > $argMatch[3])) { - $argumentCountError = true; - $expectedArgumentCountString = 'between '.$argMatch[1].' and '.$argMatch[3]; - } - break; - case ',': - if (($argumentCount != $argMatch[1]) && ($argumentCount != $argMatch[3])) { - $argumentCountError = true; - $expectedArgumentCountString = 'either '.$argMatch[1].' or '.$argMatch[3]; - } - break; - } - } - if ($argumentCountError) { - return $this->raiseFormulaError("Formula Error: Wrong number of arguments for $functionName() function: $argumentCount given, ".$expectedArgumentCountString." expected"); - } - } - ++$index; - - } elseif ($opCharacter == ',') { // Is this the separator for function arguments? -//echo 'Element is a Function argument separator', PHP_EOL; - while (($o2 = $stack->pop()) && $o2['value'] != '(') { // Pop off the stack back to the last ( - if ($o2 === null) { - return $this->raiseFormulaError("Formula Error: Unexpected ,"); - } else { - $output[] = $o2; // pop the argument expression stuff and push onto the output - } - } - // If we've a comma when we're expecting an operand, then what we actually have is a null operand; - // so push a null onto the stack - if (($expectingOperand) || (!$expectingOperator)) { - $output[] = array('type' => 'NULL Value', 'value' => self::$excelConstants['NULL'], 'reference' => null); - } - // make sure there was a function - $d = $stack->last(2); - if (!preg_match('/^'.self::CALCULATION_REGEXP_FUNCTION.'$/i', $d['value'], $matches)) { - return $this->raiseFormulaError("Formula Error: Unexpected ,"); - } - $d = $stack->pop(); - $stack->push($d['type'], ++$d['value'], $d['reference']); // increment the argument count - $stack->push('Brace', '('); // put the ( back on, we'll need to pop back to it again - $expectingOperator = false; - $expectingOperand = true; - ++$index; - - } elseif ($opCharacter == '(' && !$expectingOperator) { -// echo 'Element is an Opening Bracket
'; - $stack->push('Brace', '('); - ++$index; - - } elseif ($isOperandOrFunction && !$expectingOperator) { // do we now have a function/variable/number? - $expectingOperator = true; - $expectingOperand = false; - $val = $match[1]; - $length = strlen($val); -// echo 'Element with value '.$val.' is an Operand, Variable, Constant, String, Number, Cell Reference or Function
'; - - if (preg_match('/^'.self::CALCULATION_REGEXP_FUNCTION.'$/i', $val, $matches)) { - $val = preg_replace('/\s/u', '', $val); -// echo 'Element '.$val.' is a Function
'; - if (isset(self::$PHPExcelFunctions[strtoupper($matches[1])]) || isset(self::$controlFunctions[strtoupper($matches[1])])) { // it's a function - $stack->push('Function', strtoupper($val)); - $ax = preg_match('/^\s*(\s*\))/ui', substr($formula, $index+$length), $amatch); - if ($ax) { - $stack->push('Operand Count for Function '.strtoupper($val).')', 0); - $expectingOperator = true; - } else { - $stack->push('Operand Count for Function '.strtoupper($val).')', 1); - $expectingOperator = false; - } - $stack->push('Brace', '('); - } else { // it's a var w/ implicit multiplication - $output[] = array('type' => 'Value', 'value' => $matches[1], 'reference' => null); - } - } elseif (preg_match('/^'.self::CALCULATION_REGEXP_CELLREF.'$/i', $val, $matches)) { -// echo 'Element '.$val.' is a Cell reference
'; - // Watch for this case-change when modifying to allow cell references in different worksheets... - // Should only be applied to the actual cell column, not the worksheet name - - // If the last entry on the stack was a : operator, then we have a cell range reference - $testPrevOp = $stack->last(1); - if ($testPrevOp['value'] == ':') { - // If we have a worksheet reference, then we're playing with a 3D reference - if ($matches[2] == '') { - // Otherwise, we 'inherit' the worksheet reference from the start cell reference - // The start of the cell range reference should be the last entry in $output - $startCellRef = $output[count($output)-1]['value']; - preg_match('/^'.self::CALCULATION_REGEXP_CELLREF.'$/i', $startCellRef, $startMatches); - if ($startMatches[2] > '') { - $val = $startMatches[2].'!'.$val; - } - } else { - return $this->raiseFormulaError("3D Range references are not yet supported"); - } - } - - $output[] = array('type' => 'Cell Reference', 'value' => $val, 'reference' => $val); -// $expectingOperator = FALSE; - } else { // it's a variable, constant, string, number or boolean -// echo 'Element is a Variable, Constant, String, Number or Boolean
'; - // If the last entry on the stack was a : operator, then we may have a row or column range reference - $testPrevOp = $stack->last(1); - if ($testPrevOp['value'] == ':') { - $startRowColRef = $output[count($output)-1]['value']; - $rangeWS1 = ''; - if (strpos('!', $startRowColRef) !== false) { - list($rangeWS1, $startRowColRef) = explode('!', $startRowColRef); - } - if ($rangeWS1 != '') { - $rangeWS1 .= '!'; - } - $rangeWS2 = $rangeWS1; - if (strpos('!', $val) !== false) { - list($rangeWS2, $val) = explode('!', $val); - } - if ($rangeWS2 != '') { - $rangeWS2 .= '!'; - } - if ((is_integer($startRowColRef)) && (ctype_digit($val)) && - ($startRowColRef <= 1048576) && ($val <= 1048576)) { - // Row range - $endRowColRef = ($pCellParent !== null) ? $pCellParent->getHighestColumn() : 'XFD'; // Max 16,384 columns for Excel2007 - $output[count($output)-1]['value'] = $rangeWS1.'A'.$startRowColRef; - $val = $rangeWS2.$endRowColRef.$val; - } elseif ((ctype_alpha($startRowColRef)) && (ctype_alpha($val)) && - (strlen($startRowColRef) <= 3) && (strlen($val) <= 3)) { - // Column range - $endRowColRef = ($pCellParent !== null) ? $pCellParent->getHighestRow() : 1048576; // Max 1,048,576 rows for Excel2007 - $output[count($output)-1]['value'] = $rangeWS1.strtoupper($startRowColRef).'1'; - $val = $rangeWS2.$val.$endRowColRef; - } - } - - $localeConstant = false; - if ($opCharacter == '"') { -// echo 'Element is a String
'; - // UnEscape any quotes within the string - $val = self::wrapResult(str_replace('""', '"', self::unwrapResult($val))); - } elseif (is_numeric($val)) { -// echo 'Element is a Number
'; - if ((strpos($val, '.') !== false) || (stripos($val, 'e') !== false) || ($val > PHP_INT_MAX) || ($val < -PHP_INT_MAX)) { -// echo 'Casting '.$val.' to float
'; - $val = (float) $val; - } else { -// echo 'Casting '.$val.' to integer
'; - $val = (integer) $val; - } - } elseif (isset(self::$excelConstants[trim(strtoupper($val))])) { - $excelConstant = trim(strtoupper($val)); -// echo 'Element '.$excelConstant.' is an Excel Constant
'; - $val = self::$excelConstants[$excelConstant]; - } elseif (($localeConstant = array_search(trim(strtoupper($val)), self::$localeBoolean)) !== false) { -// echo 'Element '.$localeConstant.' is an Excel Constant
'; - $val = self::$excelConstants[$localeConstant]; - } - $details = array('type' => 'Value', 'value' => $val, 'reference' => null); - if ($localeConstant) { - $details['localeValue'] = $localeConstant; - } - $output[] = $details; - } - $index += $length; - - } elseif ($opCharacter == '$') { // absolute row or column range - ++$index; - } elseif ($opCharacter == ')') { // miscellaneous error checking - if ($expectingOperand) { - $output[] = array('type' => 'NULL Value', 'value' => self::$excelConstants['NULL'], 'reference' => null); - $expectingOperand = false; - $expectingOperator = true; - } else { - return $this->raiseFormulaError("Formula Error: Unexpected ')'"); - } - } elseif (isset(self::$operators[$opCharacter]) && !$expectingOperator) { - return $this->raiseFormulaError("Formula Error: Unexpected operator '$opCharacter'"); - } else { // I don't even want to know what you did to get here - return $this->raiseFormulaError("Formula Error: An unexpected error occured"); - } - // Test for end of formula string - if ($index == strlen($formula)) { - // Did we end with an operator?. - // Only valid for the % unary operator - if ((isset(self::$operators[$opCharacter])) && ($opCharacter != '%')) { - return $this->raiseFormulaError("Formula Error: Operator '$opCharacter' has no operands"); - } else { - break; - } - } - // Ignore white space - while (($formula{$index} == "\n") || ($formula{$index} == "\r")) { - ++$index; - } - if ($formula{$index} == ' ') { - while ($formula{$index} == ' ') { - ++$index; - } - // If we're expecting an operator, but only have a space between the previous and next operands (and both are - // Cell References) then we have an INTERSECTION operator -// echo 'Possible Intersect Operator
'; - if (($expectingOperator) && (preg_match('/^'.self::CALCULATION_REGEXP_CELLREF.'.*/Ui', substr($formula, $index), $match)) && - ($output[count($output)-1]['type'] == 'Cell Reference')) { -// echo 'Element is an Intersect Operator
'; - while ($stack->count() > 0 && - ($o2 = $stack->last()) && - isset(self::$operators[$o2['value']]) && - @(self::$operatorAssociativity[$opCharacter] ? self::$operatorPrecedence[$opCharacter] < self::$operatorPrecedence[$o2['value']] : self::$operatorPrecedence[$opCharacter] <= self::$operatorPrecedence[$o2['value']])) { - $output[] = $stack->pop(); // Swap operands and higher precedence operators from the stack to the output - } - $stack->push('Binary Operator', '|'); // Put an Intersect Operator on the stack - $expectingOperator = false; - } - } - } - - while (($op = $stack->pop()) !== null) { // pop everything off the stack and push onto output - if ((is_array($op) && $op['value'] == '(') || ($op === '(')) { - return $this->raiseFormulaError("Formula Error: Expecting ')'"); // if there are any opening braces on the stack, then braces were unbalanced - } - $output[] = $op; - } - return $output; - } - - - private static function dataTestReference(&$operandData) - { - $operand = $operandData['value']; - if (($operandData['reference'] === null) && (is_array($operand))) { - $rKeys = array_keys($operand); - $rowKey = array_shift($rKeys); - $cKeys = array_keys(array_keys($operand[$rowKey])); - $colKey = array_shift($cKeys); - if (ctype_upper($colKey)) { - $operandData['reference'] = $colKey.$rowKey; - } - } - return $operand; - } - - // evaluate postfix notation - private function processTokenStack($tokens, $cellID = null, PHPExcel_Cell $pCell = null) - { - if ($tokens == false) { - return false; - } - - // If we're using cell caching, then $pCell may well be flushed back to the cache (which detaches the parent cell collection), - // so we store the parent cell collection so that we can re-attach it when necessary - $pCellWorksheet = ($pCell !== null) ? $pCell->getWorksheet() : null; - $pCellParent = ($pCell !== null) ? $pCell->getParent() : null; - $stack = new PHPExcel_Calculation_Token_Stack; - - // Loop through each token in turn - foreach ($tokens as $tokenData) { -// print_r($tokenData); -// echo '
'; - $token = $tokenData['value']; -// echo 'Token is '.$token.'
'; - // if the token is a binary operator, pop the top two values off the stack, do the operation, and push the result back on the stack - if (isset(self::$binaryOperators[$token])) { -// echo 'Token is a binary operator
'; - // We must have two operands, error if we don't - if (($operand2Data = $stack->pop()) === null) { - return $this->raiseFormulaError('Internal error - Operand value missing from stack'); - } - if (($operand1Data = $stack->pop()) === null) { - return $this->raiseFormulaError('Internal error - Operand value missing from stack'); - } - - $operand1 = self::dataTestReference($operand1Data); - $operand2 = self::dataTestReference($operand2Data); - - // Log what we're doing - if ($token == ':') { - $this->_debugLog->writeDebugLog('Evaluating Range ', $this->showValue($operand1Data['reference']), ' ', $token, ' ', $this->showValue($operand2Data['reference'])); - } else { - $this->_debugLog->writeDebugLog('Evaluating ', $this->showValue($operand1), ' ', $token, ' ', $this->showValue($operand2)); - } - - // Process the operation in the appropriate manner - switch ($token) { - // Comparison (Boolean) Operators - case '>': // Greater than - case '<': // Less than - case '>=': // Greater than or Equal to - case '<=': // Less than or Equal to - case '=': // Equality - case '<>': // Inequality - $this->executeBinaryComparisonOperation($cellID, $operand1, $operand2, $token, $stack); - break; - // Binary Operators - case ':': // Range - $sheet1 = $sheet2 = ''; - if (strpos($operand1Data['reference'], '!') !== false) { - list($sheet1, $operand1Data['reference']) = explode('!', $operand1Data['reference']); - } else { - $sheet1 = ($pCellParent !== null) ? $pCellWorksheet->getTitle() : ''; - } - if (strpos($operand2Data['reference'], '!') !== false) { - list($sheet2, $operand2Data['reference']) = explode('!', $operand2Data['reference']); - } else { - $sheet2 = $sheet1; - } - if ($sheet1 == $sheet2) { - if ($operand1Data['reference'] === null) { - if ((trim($operand1Data['value']) != '') && (is_numeric($operand1Data['value']))) { - $operand1Data['reference'] = $pCell->getColumn().$operand1Data['value']; - } elseif (trim($operand1Data['reference']) == '') { - $operand1Data['reference'] = $pCell->getCoordinate(); - } else { - $operand1Data['reference'] = $operand1Data['value'].$pCell->getRow(); - } - } - if ($operand2Data['reference'] === null) { - if ((trim($operand2Data['value']) != '') && (is_numeric($operand2Data['value']))) { - $operand2Data['reference'] = $pCell->getColumn().$operand2Data['value']; - } elseif (trim($operand2Data['reference']) == '') { - $operand2Data['reference'] = $pCell->getCoordinate(); - } else { - $operand2Data['reference'] = $operand2Data['value'].$pCell->getRow(); - } - } - - $oData = array_merge(explode(':', $operand1Data['reference']), explode(':', $operand2Data['reference'])); - $oCol = $oRow = array(); - foreach ($oData as $oDatum) { - $oCR = PHPExcel_Cell::coordinateFromString($oDatum); - $oCol[] = PHPExcel_Cell::columnIndexFromString($oCR[0]) - 1; - $oRow[] = $oCR[1]; - } - $cellRef = PHPExcel_Cell::stringFromColumnIndex(min($oCol)).min($oRow).':'.PHPExcel_Cell::stringFromColumnIndex(max($oCol)).max($oRow); - if ($pCellParent !== null) { - $cellValue = $this->extractCellRange($cellRef, $this->workbook->getSheetByName($sheet1), false); - } else { - return $this->raiseFormulaError('Unable to access Cell Reference'); - } - $stack->push('Cell Reference', $cellValue, $cellRef); - } else { - $stack->push('Error', PHPExcel_Calculation_Functions::REF(), null); - } - break; - case '+': // Addition - $this->executeNumericBinaryOperation($cellID, $operand1, $operand2, $token, 'plusEquals', $stack); - break; - case '-': // Subtraction - $this->executeNumericBinaryOperation($cellID, $operand1, $operand2, $token, 'minusEquals', $stack); - break; - case '*': // Multiplication - $this->executeNumericBinaryOperation($cellID, $operand1, $operand2, $token, 'arrayTimesEquals', $stack); - break; - case '/': // Division - $this->executeNumericBinaryOperation($cellID, $operand1, $operand2, $token, 'arrayRightDivide', $stack); - break; - case '^': // Exponential - $this->executeNumericBinaryOperation($cellID, $operand1, $operand2, $token, 'power', $stack); - break; - case '&': // Concatenation - // If either of the operands is a matrix, we need to treat them both as matrices - // (converting the other operand to a matrix if need be); then perform the required - // matrix operation - if (is_bool($operand1)) { - $operand1 = ($operand1) ? self::$localeBoolean['TRUE'] : self::$localeBoolean['FALSE']; - } - if (is_bool($operand2)) { - $operand2 = ($operand2) ? self::$localeBoolean['TRUE'] : self::$localeBoolean['FALSE']; - } - if ((is_array($operand1)) || (is_array($operand2))) { - // Ensure that both operands are arrays/matrices - self::checkMatrixOperands($operand1, $operand2, 2); - try { - // Convert operand 1 from a PHP array to a matrix - $matrix = new PHPExcel_Shared_JAMA_Matrix($operand1); - // Perform the required operation against the operand 1 matrix, passing in operand 2 - $matrixResult = $matrix->concat($operand2); - $result = $matrixResult->getArray(); - } catch (PHPExcel_Exception $ex) { - $this->_debugLog->writeDebugLog('JAMA Matrix Exception: ', $ex->getMessage()); - $result = '#VALUE!'; - } - } else { - $result = '"'.str_replace('""', '"', self::unwrapResult($operand1, '"').self::unwrapResult($operand2, '"')).'"'; - } - $this->_debugLog->writeDebugLog('Evaluation Result is ', $this->showTypeDetails($result)); - $stack->push('Value', $result); - break; - case '|': // Intersect - $rowIntersect = array_intersect_key($operand1, $operand2); - $cellIntersect = $oCol = $oRow = array(); - foreach (array_keys($rowIntersect) as $row) { - $oRow[] = $row; - foreach ($rowIntersect[$row] as $col => $data) { - $oCol[] = PHPExcel_Cell::columnIndexFromString($col) - 1; - $cellIntersect[$row] = array_intersect_key($operand1[$row], $operand2[$row]); - } - } - $cellRef = PHPExcel_Cell::stringFromColumnIndex(min($oCol)).min($oRow).':'.PHPExcel_Cell::stringFromColumnIndex(max($oCol)).max($oRow); - $this->_debugLog->writeDebugLog('Evaluation Result is ', $this->showTypeDetails($cellIntersect)); - $stack->push('Value', $cellIntersect, $cellRef); - break; - } - - // if the token is a unary operator, pop one value off the stack, do the operation, and push it back on - } elseif (($token === '~') || ($token === '%')) { -// echo 'Token is a unary operator
'; - if (($arg = $stack->pop()) === null) { - return $this->raiseFormulaError('Internal error - Operand value missing from stack'); - } - $arg = $arg['value']; - if ($token === '~') { -// echo 'Token is a negation operator
'; - $this->_debugLog->writeDebugLog('Evaluating Negation of ', $this->showValue($arg)); - $multiplier = -1; - } else { -// echo 'Token is a percentile operator
'; - $this->_debugLog->writeDebugLog('Evaluating Percentile of ', $this->showValue($arg)); - $multiplier = 0.01; - } - if (is_array($arg)) { - self::checkMatrixOperands($arg, $multiplier, 2); - try { - $matrix1 = new PHPExcel_Shared_JAMA_Matrix($arg); - $matrixResult = $matrix1->arrayTimesEquals($multiplier); - $result = $matrixResult->getArray(); - } catch (PHPExcel_Exception $ex) { - $this->_debugLog->writeDebugLog('JAMA Matrix Exception: ', $ex->getMessage()); - $result = '#VALUE!'; - } - $this->_debugLog->writeDebugLog('Evaluation Result is ', $this->showTypeDetails($result)); - $stack->push('Value', $result); - } else { - $this->executeNumericBinaryOperation($cellID, $multiplier, $arg, '*', 'arrayTimesEquals', $stack); - } - - } elseif (preg_match('/^'.self::CALCULATION_REGEXP_CELLREF.'$/i', $token, $matches)) { - $cellRef = null; -// echo 'Element '.$token.' is a Cell reference
'; - if (isset($matches[8])) { -// echo 'Reference is a Range of cells
'; - if ($pCell === null) { -// We can't access the range, so return a REF error - $cellValue = PHPExcel_Calculation_Functions::REF(); - } else { - $cellRef = $matches[6].$matches[7].':'.$matches[9].$matches[10]; - if ($matches[2] > '') { - $matches[2] = trim($matches[2], "\"'"); - if ((strpos($matches[2], '[') !== false) || (strpos($matches[2], ']') !== false)) { - // It's a Reference to an external workbook (not currently supported) - return $this->raiseFormulaError('Unable to access External Workbook'); - } - $matches[2] = trim($matches[2], "\"'"); -// echo '$cellRef='.$cellRef.' in worksheet '.$matches[2].'
'; - $this->_debugLog->writeDebugLog('Evaluating Cell Range ', $cellRef, ' in worksheet ', $matches[2]); - if ($pCellParent !== null) { - $cellValue = $this->extractCellRange($cellRef, $this->workbook->getSheetByName($matches[2]), false); - } else { - return $this->raiseFormulaError('Unable to access Cell Reference'); - } - $this->_debugLog->writeDebugLog('Evaluation Result for cells ', $cellRef, ' in worksheet ', $matches[2], ' is ', $this->showTypeDetails($cellValue)); -// $cellRef = $matches[2].'!'.$cellRef; - } else { -// echo '$cellRef='.$cellRef.' in current worksheet
'; - $this->_debugLog->writeDebugLog('Evaluating Cell Range ', $cellRef, ' in current worksheet'); - if ($pCellParent !== null) { - $cellValue = $this->extractCellRange($cellRef, $pCellWorksheet, false); - } else { - return $this->raiseFormulaError('Unable to access Cell Reference'); - } - $this->_debugLog->writeDebugLog('Evaluation Result for cells ', $cellRef, ' is ', $this->showTypeDetails($cellValue)); - } - } - } else { -// echo 'Reference is a single Cell
'; - if ($pCell === null) { -// We can't access the cell, so return a REF error - $cellValue = PHPExcel_Calculation_Functions::REF(); - } else { - $cellRef = $matches[6].$matches[7]; - if ($matches[2] > '') { - $matches[2] = trim($matches[2], "\"'"); - if ((strpos($matches[2], '[') !== false) || (strpos($matches[2], ']') !== false)) { - // It's a Reference to an external workbook (not currently supported) - return $this->raiseFormulaError('Unable to access External Workbook'); - } -// echo '$cellRef='.$cellRef.' in worksheet '.$matches[2].'
'; - $this->_debugLog->writeDebugLog('Evaluating Cell ', $cellRef, ' in worksheet ', $matches[2]); - if ($pCellParent !== null) { - $cellSheet = $this->workbook->getSheetByName($matches[2]); - if ($cellSheet && $cellSheet->cellExists($cellRef)) { - $cellValue = $this->extractCellRange($cellRef, $this->workbook->getSheetByName($matches[2]), false); - $pCell->attach($pCellParent); - } else { - $cellValue = null; - } - } else { - return $this->raiseFormulaError('Unable to access Cell Reference'); - } - $this->_debugLog->writeDebugLog('Evaluation Result for cell ', $cellRef, ' in worksheet ', $matches[2], ' is ', $this->showTypeDetails($cellValue)); -// $cellRef = $matches[2].'!'.$cellRef; - } else { -// echo '$cellRef='.$cellRef.' in current worksheet
'; - $this->_debugLog->writeDebugLog('Evaluating Cell ', $cellRef, ' in current worksheet'); - if ($pCellParent->isDataSet($cellRef)) { - $cellValue = $this->extractCellRange($cellRef, $pCellWorksheet, false); - $pCell->attach($pCellParent); - } else { - $cellValue = null; - } - $this->_debugLog->writeDebugLog('Evaluation Result for cell ', $cellRef, ' is ', $this->showTypeDetails($cellValue)); - } - } - } - $stack->push('Value', $cellValue, $cellRef); - - // if the token is a function, pop arguments off the stack, hand them to the function, and push the result back on - } elseif (preg_match('/^'.self::CALCULATION_REGEXP_FUNCTION.'$/i', $token, $matches)) { -// echo 'Token is a function
'; - $functionName = $matches[1]; - $argCount = $stack->pop(); - $argCount = $argCount['value']; - if ($functionName != 'MKMATRIX') { - $this->_debugLog->writeDebugLog('Evaluating Function ', self::localeFunc($functionName), '() with ', (($argCount == 0) ? 'no' : $argCount), ' argument', (($argCount == 1) ? '' : 's')); - } - if ((isset(self::$PHPExcelFunctions[$functionName])) || (isset(self::$controlFunctions[$functionName]))) { // function - if (isset(self::$PHPExcelFunctions[$functionName])) { - $functionCall = self::$PHPExcelFunctions[$functionName]['functionCall']; - $passByReference = isset(self::$PHPExcelFunctions[$functionName]['passByReference']); - $passCellReference = isset(self::$PHPExcelFunctions[$functionName]['passCellReference']); - } elseif (isset(self::$controlFunctions[$functionName])) { - $functionCall = self::$controlFunctions[$functionName]['functionCall']; - $passByReference = isset(self::$controlFunctions[$functionName]['passByReference']); - $passCellReference = isset(self::$controlFunctions[$functionName]['passCellReference']); - } - // get the arguments for this function -// echo 'Function '.$functionName.' expects '.$argCount.' arguments
'; - $args = $argArrayVals = array(); - for ($i = 0; $i < $argCount; ++$i) { - $arg = $stack->pop(); - $a = $argCount - $i - 1; - if (($passByReference) && - (isset(self::$PHPExcelFunctions[$functionName]['passByReference'][$a])) && - (self::$PHPExcelFunctions[$functionName]['passByReference'][$a])) { - if ($arg['reference'] === null) { - $args[] = $cellID; - if ($functionName != 'MKMATRIX') { - $argArrayVals[] = $this->showValue($cellID); - } - } else { - $args[] = $arg['reference']; - if ($functionName != 'MKMATRIX') { - $argArrayVals[] = $this->showValue($arg['reference']); - } - } - } else { - $args[] = self::unwrapResult($arg['value']); - if ($functionName != 'MKMATRIX') { - $argArrayVals[] = $this->showValue($arg['value']); - } - } - } - // Reverse the order of the arguments - krsort($args); - if (($passByReference) && ($argCount == 0)) { - $args[] = $cellID; - $argArrayVals[] = $this->showValue($cellID); - } -// echo 'Arguments are: '; -// print_r($args); -// echo '
'; - if ($functionName != 'MKMATRIX') { - if ($this->_debugLog->getWriteDebugLog()) { - krsort($argArrayVals); - $this->_debugLog->writeDebugLog('Evaluating ', self::localeFunc($functionName), '( ', implode(self::$localeArgumentSeparator.' ', PHPExcel_Calculation_Functions::flattenArray($argArrayVals)), ' )'); - } - } - // Process each argument in turn, building the return value as an array -// if (($argCount == 1) && (is_array($args[1])) && ($functionName != 'MKMATRIX')) { -// $operand1 = $args[1]; -// $this->_debugLog->writeDebugLog('Argument is a matrix: ', $this->showValue($operand1)); -// $result = array(); -// $row = 0; -// foreach($operand1 as $args) { -// if (is_array($args)) { -// foreach($args as $arg) { -// $this->_debugLog->writeDebugLog('Evaluating ', self::localeFunc($functionName), '( ', $this->showValue($arg), ' )'); -// $r = call_user_func_array($functionCall, $arg); -// $this->_debugLog->writeDebugLog('Evaluation Result for ', self::localeFunc($functionName), '() function call is ', $this->showTypeDetails($r)); -// $result[$row][] = $r; -// } -// ++$row; -// } else { -// $this->_debugLog->writeDebugLog('Evaluating ', self::localeFunc($functionName), '( ', $this->showValue($args), ' )'); -// $r = call_user_func_array($functionCall, $args); -// $this->_debugLog->writeDebugLog('Evaluation Result for ', self::localeFunc($functionName), '() function call is ', $this->showTypeDetails($r)); -// $result[] = $r; -// } -// } -// } else { - // Process the argument with the appropriate function call - if ($passCellReference) { - $args[] = $pCell; - } - if (strpos($functionCall, '::') !== false) { - $result = call_user_func_array(explode('::', $functionCall), $args); - } else { - foreach ($args as &$arg) { - $arg = PHPExcel_Calculation_Functions::flattenSingleValue($arg); - } - unset($arg); - $result = call_user_func_array($functionCall, $args); - } - if ($functionName != 'MKMATRIX') { - $this->_debugLog->writeDebugLog('Evaluation Result for ', self::localeFunc($functionName), '() function call is ', $this->showTypeDetails($result)); - } - $stack->push('Value', self::wrapResult($result)); - } - - } else { - // if the token is a number, boolean, string or an Excel error, push it onto the stack - if (isset(self::$excelConstants[strtoupper($token)])) { - $excelConstant = strtoupper($token); -// echo 'Token is a PHPExcel constant: '.$excelConstant.'
'; - $stack->push('Constant Value', self::$excelConstants[$excelConstant]); - $this->_debugLog->writeDebugLog('Evaluating Constant ', $excelConstant, ' as ', $this->showTypeDetails(self::$excelConstants[$excelConstant])); - } elseif ((is_numeric($token)) || ($token === null) || (is_bool($token)) || ($token == '') || ($token{0} == '"') || ($token{0} == '#')) { -// echo 'Token is a number, boolean, string, null or an Excel error
'; - $stack->push('Value', $token); - // if the token is a named range, push the named range name onto the stack - } elseif (preg_match('/^'.self::CALCULATION_REGEXP_NAMEDRANGE.'$/i', $token, $matches)) { -// echo 'Token is a named range
'; - $namedRange = $matches[6]; -// echo 'Named Range is '.$namedRange.'
'; - $this->_debugLog->writeDebugLog('Evaluating Named Range ', $namedRange); - $cellValue = $this->extractNamedRange($namedRange, ((null !== $pCell) ? $pCellWorksheet : null), false); - $pCell->attach($pCellParent); - $this->_debugLog->writeDebugLog('Evaluation Result for named range ', $namedRange, ' is ', $this->showTypeDetails($cellValue)); - $stack->push('Named Range', $cellValue, $namedRange); - } else { - return $this->raiseFormulaError("undefined variable '$token'"); - } - } - } - // when we're out of tokens, the stack should have a single element, the final result - if ($stack->count() != 1) { - return $this->raiseFormulaError("internal error"); - } - $output = $stack->pop(); - $output = $output['value']; - -// if ((is_array($output)) && (self::$returnArrayAsType != self::RETURN_ARRAY_AS_ARRAY)) { -// return array_shift(PHPExcel_Calculation_Functions::flattenArray($output)); -// } - return $output; - } - - - private function validateBinaryOperand($cellID, &$operand, &$stack) - { - if (is_array($operand)) { - if ((count($operand, COUNT_RECURSIVE) - count($operand)) == 1) { - do { - $operand = array_pop($operand); - } while (is_array($operand)); - } - } - // Numbers, matrices and booleans can pass straight through, as they're already valid - if (is_string($operand)) { - // We only need special validations for the operand if it is a string - // Start by stripping off the quotation marks we use to identify true excel string values internally - if ($operand > '' && $operand{0} == '"') { - $operand = self::unwrapResult($operand); - } - // If the string is a numeric value, we treat it as a numeric, so no further testing - if (!is_numeric($operand)) { - // If not a numeric, test to see if the value is an Excel error, and so can't be used in normal binary operations - if ($operand > '' && $operand{0} == '#') { - $stack->push('Value', $operand); - $this->_debugLog->writeDebugLog('Evaluation Result is ', $this->showTypeDetails($operand)); - return false; - } elseif (!PHPExcel_Shared_String::convertToNumberIfFraction($operand)) { - // If not a numeric or a fraction, then it's a text string, and so can't be used in mathematical binary operations - $stack->push('Value', '#VALUE!'); - $this->_debugLog->writeDebugLog('Evaluation Result is a ', $this->showTypeDetails('#VALUE!')); - return false; - } - } - } - - // return a true if the value of the operand is one that we can use in normal binary operations - return true; - } - - - private function executeBinaryComparisonOperation($cellID, $operand1, $operand2, $operation, &$stack, $recursingArrays = false) - { - // If we're dealing with matrix operations, we want a matrix result - if ((is_array($operand1)) || (is_array($operand2))) { - $result = array(); - if ((is_array($operand1)) && (!is_array($operand2))) { - foreach ($operand1 as $x => $operandData) { - $this->_debugLog->writeDebugLog('Evaluating Comparison ', $this->showValue($operandData), ' ', $operation, ' ', $this->showValue($operand2)); - $this->executeBinaryComparisonOperation($cellID, $operandData, $operand2, $operation, $stack); - $r = $stack->pop(); - $result[$x] = $r['value']; - } - } elseif ((!is_array($operand1)) && (is_array($operand2))) { - foreach ($operand2 as $x => $operandData) { - $this->_debugLog->writeDebugLog('Evaluating Comparison ', $this->showValue($operand1), ' ', $operation, ' ', $this->showValue($operandData)); - $this->executeBinaryComparisonOperation($cellID, $operand1, $operandData, $operation, $stack); - $r = $stack->pop(); - $result[$x] = $r['value']; - } - } else { - if (!$recursingArrays) { - self::checkMatrixOperands($operand1, $operand2, 2); - } - foreach ($operand1 as $x => $operandData) { - $this->_debugLog->writeDebugLog('Evaluating Comparison ', $this->showValue($operandData), ' ', $operation, ' ', $this->showValue($operand2[$x])); - $this->executeBinaryComparisonOperation($cellID, $operandData, $operand2[$x], $operation, $stack, true); - $r = $stack->pop(); - $result[$x] = $r['value']; - } - } - // Log the result details - $this->_debugLog->writeDebugLog('Comparison Evaluation Result is ', $this->showTypeDetails($result)); - // And push the result onto the stack - $stack->push('Array', $result); - return true; - } - - // Simple validate the two operands if they are string values - if (is_string($operand1) && $operand1 > '' && $operand1{0} == '"') { - $operand1 = self::unwrapResult($operand1); - } - if (is_string($operand2) && $operand2 > '' && $operand2{0} == '"') { - $operand2 = self::unwrapResult($operand2); - } - - // Use case insensitive comparaison if not OpenOffice mode - if (PHPExcel_Calculation_Functions::getCompatibilityMode() != PHPExcel_Calculation_Functions::COMPATIBILITY_OPENOFFICE) { - if (is_string($operand1)) { - $operand1 = strtoupper($operand1); - } - if (is_string($operand2)) { - $operand2 = strtoupper($operand2); - } - } - - $useLowercaseFirstComparison = is_string($operand1) && is_string($operand2) && PHPExcel_Calculation_Functions::getCompatibilityMode() == PHPExcel_Calculation_Functions::COMPATIBILITY_OPENOFFICE; - - // execute the necessary operation - switch ($operation) { - // Greater than - case '>': - if ($useLowercaseFirstComparison) { - $result = $this->strcmpLowercaseFirst($operand1, $operand2) > 0; - } else { - $result = ($operand1 > $operand2); - } - break; - // Less than - case '<': - if ($useLowercaseFirstComparison) { - $result = $this->strcmpLowercaseFirst($operand1, $operand2) < 0; - } else { - $result = ($operand1 < $operand2); - } - break; - // Equality - case '=': - if (is_numeric($operand1) && is_numeric($operand2)) { - $result = (abs($operand1 - $operand2) < $this->delta); - } else { - $result = strcmp($operand1, $operand2) == 0; - } - break; - // Greater than or equal - case '>=': - if (is_numeric($operand1) && is_numeric($operand2)) { - $result = ((abs($operand1 - $operand2) < $this->delta) || ($operand1 > $operand2)); - } elseif ($useLowercaseFirstComparison) { - $result = $this->strcmpLowercaseFirst($operand1, $operand2) >= 0; - } else { - $result = strcmp($operand1, $operand2) >= 0; - } - break; - // Less than or equal - case '<=': - if (is_numeric($operand1) && is_numeric($operand2)) { - $result = ((abs($operand1 - $operand2) < $this->delta) || ($operand1 < $operand2)); - } elseif ($useLowercaseFirstComparison) { - $result = $this->strcmpLowercaseFirst($operand1, $operand2) <= 0; - } else { - $result = strcmp($operand1, $operand2) <= 0; - } - break; - // Inequality - case '<>': - if (is_numeric($operand1) && is_numeric($operand2)) { - $result = (abs($operand1 - $operand2) > 1E-14); - } else { - $result = strcmp($operand1, $operand2) != 0; - } - break; - } - - // Log the result details - $this->_debugLog->writeDebugLog('Evaluation Result is ', $this->showTypeDetails($result)); - // And push the result onto the stack - $stack->push('Value', $result); - return true; - } - - /** - * Compare two strings in the same way as strcmp() except that lowercase come before uppercase letters - * @param string $str1 First string value for the comparison - * @param string $str2 Second string value for the comparison - * @return integer - */ - private function strcmpLowercaseFirst($str1, $str2) - { - $inversedStr1 = PHPExcel_Shared_String::StrCaseReverse($str1); - $inversedStr2 = PHPExcel_Shared_String::StrCaseReverse($str2); - - return strcmp($inversedStr1, $inversedStr2); - } - - private function executeNumericBinaryOperation($cellID, $operand1, $operand2, $operation, $matrixFunction, &$stack) - { - // Validate the two operands - if (!$this->validateBinaryOperand($cellID, $operand1, $stack)) { - return false; - } - if (!$this->validateBinaryOperand($cellID, $operand2, $stack)) { - return false; - } - - // If either of the operands is a matrix, we need to treat them both as matrices - // (converting the other operand to a matrix if need be); then perform the required - // matrix operation - if ((is_array($operand1)) || (is_array($operand2))) { - // Ensure that both operands are arrays/matrices of the same size - self::checkMatrixOperands($operand1, $operand2, 2); - - try { - // Convert operand 1 from a PHP array to a matrix - $matrix = new PHPExcel_Shared_JAMA_Matrix($operand1); - // Perform the required operation against the operand 1 matrix, passing in operand 2 - $matrixResult = $matrix->$matrixFunction($operand2); - $result = $matrixResult->getArray(); - } catch (PHPExcel_Exception $ex) { - $this->_debugLog->writeDebugLog('JAMA Matrix Exception: ', $ex->getMessage()); - $result = '#VALUE!'; - } - } else { - if ((PHPExcel_Calculation_Functions::getCompatibilityMode() != PHPExcel_Calculation_Functions::COMPATIBILITY_OPENOFFICE) && - ((is_string($operand1) && !is_numeric($operand1) && strlen($operand1)>0) || - (is_string($operand2) && !is_numeric($operand2) && strlen($operand2)>0))) { - $result = PHPExcel_Calculation_Functions::VALUE(); - } else { - // If we're dealing with non-matrix operations, execute the necessary operation - switch ($operation) { - // Addition - case '+': - $result = $operand1 + $operand2; - break; - // Subtraction - case '-': - $result = $operand1 - $operand2; - break; - // Multiplication - case '*': - $result = $operand1 * $operand2; - break; - // Division - case '/': - if ($operand2 == 0) { - // Trap for Divide by Zero error - $stack->push('Value', '#DIV/0!'); - $this->_debugLog->writeDebugLog('Evaluation Result is ', $this->showTypeDetails('#DIV/0!')); - return false; - } else { - $result = $operand1 / $operand2; - } - break; - // Power - case '^': - $result = pow($operand1, $operand2); - break; - } - } - } - - // Log the result details - $this->_debugLog->writeDebugLog('Evaluation Result is ', $this->showTypeDetails($result)); - // And push the result onto the stack - $stack->push('Value', $result); - return true; - } - - - // trigger an error, but nicely, if need be - protected function raiseFormulaError($errorMessage) - { - $this->formulaError = $errorMessage; - $this->cyclicReferenceStack->clear(); - if (!$this->suppressFormulaErrors) { - throw new PHPExcel_Calculation_Exception($errorMessage); - } - trigger_error($errorMessage, E_USER_ERROR); - } - - - /** - * Extract range values - * - * @param string &$pRange String based range representation - * @param PHPExcel_Worksheet $pSheet Worksheet - * @param boolean $resetLog Flag indicating whether calculation log should be reset or not - * @return mixed Array of values in range if range contains more than one element. Otherwise, a single value is returned. - * @throws PHPExcel_Calculation_Exception - */ - public function extractCellRange(&$pRange = 'A1', PHPExcel_Worksheet $pSheet = null, $resetLog = true) - { - // Return value - $returnValue = array (); - -// echo 'extractCellRange('.$pRange.')', PHP_EOL; - if ($pSheet !== null) { - $pSheetName = $pSheet->getTitle(); -// echo 'Passed sheet name is '.$pSheetName.PHP_EOL; -// echo 'Range reference is '.$pRange.PHP_EOL; - if (strpos($pRange, '!') !== false) { -// echo '$pRange reference includes sheet reference', PHP_EOL; - list($pSheetName, $pRange) = PHPExcel_Worksheet::extractSheetTitle($pRange, true); -// echo 'New sheet name is '.$pSheetName, PHP_EOL; -// echo 'Adjusted Range reference is '.$pRange, PHP_EOL; - $pSheet = $this->workbook->getSheetByName($pSheetName); - } - - // Extract range - $aReferences = PHPExcel_Cell::extractAllCellReferencesInRange($pRange); - $pRange = $pSheetName.'!'.$pRange; - if (!isset($aReferences[1])) { - // Single cell in range - sscanf($aReferences[0], '%[A-Z]%d', $currentCol, $currentRow); - $cellValue = null; - if ($pSheet->cellExists($aReferences[0])) { - $returnValue[$currentRow][$currentCol] = $pSheet->getCell($aReferences[0])->getCalculatedValue($resetLog); - } else { - $returnValue[$currentRow][$currentCol] = null; - } - } else { - // Extract cell data for all cells in the range - foreach ($aReferences as $reference) { - // Extract range - sscanf($reference, '%[A-Z]%d', $currentCol, $currentRow); - $cellValue = null; - if ($pSheet->cellExists($reference)) { - $returnValue[$currentRow][$currentCol] = $pSheet->getCell($reference)->getCalculatedValue($resetLog); - } else { - $returnValue[$currentRow][$currentCol] = null; - } - } - } - } - - return $returnValue; - } - - - /** - * Extract range values - * - * @param string &$pRange String based range representation - * @param PHPExcel_Worksheet $pSheet Worksheet - * @return mixed Array of values in range if range contains more than one element. Otherwise, a single value is returned. - * @param boolean $resetLog Flag indicating whether calculation log should be reset or not - * @throws PHPExcel_Calculation_Exception - */ - public function extractNamedRange(&$pRange = 'A1', PHPExcel_Worksheet $pSheet = null, $resetLog = true) - { - // Return value - $returnValue = array (); - -// echo 'extractNamedRange('.$pRange.')
'; - if ($pSheet !== null) { - $pSheetName = $pSheet->getTitle(); -// echo 'Current sheet name is '.$pSheetName.'
'; -// echo 'Range reference is '.$pRange.'
'; - if (strpos($pRange, '!') !== false) { -// echo '$pRange reference includes sheet reference', PHP_EOL; - list($pSheetName, $pRange) = PHPExcel_Worksheet::extractSheetTitle($pRange, true); -// echo 'New sheet name is '.$pSheetName, PHP_EOL; -// echo 'Adjusted Range reference is '.$pRange, PHP_EOL; - $pSheet = $this->workbook->getSheetByName($pSheetName); - } - - // Named range? - $namedRange = PHPExcel_NamedRange::resolveRange($pRange, $pSheet); - if ($namedRange !== null) { - $pSheet = $namedRange->getWorksheet(); -// echo 'Named Range '.$pRange.' ('; - $pRange = $namedRange->getRange(); - $splitRange = PHPExcel_Cell::splitRange($pRange); - // Convert row and column references - if (ctype_alpha($splitRange[0][0])) { - $pRange = $splitRange[0][0] . '1:' . $splitRange[0][1] . $namedRange->getWorksheet()->getHighestRow(); - } elseif (ctype_digit($splitRange[0][0])) { - $pRange = 'A' . $splitRange[0][0] . ':' . $namedRange->getWorksheet()->getHighestColumn() . $splitRange[0][1]; - } -// echo $pRange.') is in sheet '.$namedRange->getWorksheet()->getTitle().'
'; - -// if ($pSheet->getTitle() != $namedRange->getWorksheet()->getTitle()) { -// if (!$namedRange->getLocalOnly()) { -// $pSheet = $namedRange->getWorksheet(); -// } else { -// return $returnValue; -// } -// } - } else { - return PHPExcel_Calculation_Functions::REF(); - } - - // Extract range - $aReferences = PHPExcel_Cell::extractAllCellReferencesInRange($pRange); -// var_dump($aReferences); - if (!isset($aReferences[1])) { - // Single cell (or single column or row) in range - list($currentCol, $currentRow) = PHPExcel_Cell::coordinateFromString($aReferences[0]); - $cellValue = null; - if ($pSheet->cellExists($aReferences[0])) { - $returnValue[$currentRow][$currentCol] = $pSheet->getCell($aReferences[0])->getCalculatedValue($resetLog); - } else { - $returnValue[$currentRow][$currentCol] = null; - } - } else { - // Extract cell data for all cells in the range - foreach ($aReferences as $reference) { - // Extract range - list($currentCol, $currentRow) = PHPExcel_Cell::coordinateFromString($reference); -// echo 'NAMED RANGE: $currentCol='.$currentCol.' $currentRow='.$currentRow.'
'; - $cellValue = null; - if ($pSheet->cellExists($reference)) { - $returnValue[$currentRow][$currentCol] = $pSheet->getCell($reference)->getCalculatedValue($resetLog); - } else { - $returnValue[$currentRow][$currentCol] = null; - } - } - } -// print_r($returnValue); -// echo '
'; - } - - return $returnValue; - } - - - /** - * Is a specific function implemented? - * - * @param string $pFunction Function Name - * @return boolean - */ - public function isImplemented($pFunction = '') - { - $pFunction = strtoupper($pFunction); - if (isset(self::$PHPExcelFunctions[$pFunction])) { - return (self::$PHPExcelFunctions[$pFunction]['functionCall'] != 'PHPExcel_Calculation_Functions::DUMMY'); - } else { - return false; - } - } - - - /** - * Get a list of all implemented functions as an array of function objects - * - * @return array of PHPExcel_Calculation_Function - */ - public function listFunctions() - { - $returnValue = array(); - - foreach (self::$PHPExcelFunctions as $functionName => $function) { - if ($function['functionCall'] != 'PHPExcel_Calculation_Functions::DUMMY') { - $returnValue[$functionName] = new PHPExcel_Calculation_Function( - $function['category'], - $functionName, - $function['functionCall'] - ); - } - } - - return $returnValue; - } - - - /** - * Get a list of all Excel function names - * - * @return array - */ - public function listAllFunctionNames() - { - return array_keys(self::$PHPExcelFunctions); - } - - /** - * Get a list of implemented Excel function names - * - * @return array - */ - public function listFunctionNames() - { - $returnValue = array(); - foreach (self::$PHPExcelFunctions as $functionName => $function) { - if ($function['functionCall'] != 'PHPExcel_Calculation_Functions::DUMMY') { - $returnValue[] = $functionName; - } - } - - return $returnValue; - } -} diff --git a/Utils/PHPExcel/Calculation/Database.php b/Utils/PHPExcel/Calculation/Database.php deleted file mode 100644 index b8d91cb..0000000 --- a/Utils/PHPExcel/Calculation/Database.php +++ /dev/null @@ -1,676 +0,0 @@ - $criteriaName) { - $testCondition = array(); - $testConditionCount = 0; - foreach ($criteria as $row => $criterion) { - if ($criterion[$key] > '') { - $testCondition[] = '[:'.$criteriaName.']'.PHPExcel_Calculation_Functions::ifCondition($criterion[$key]); - $testConditionCount++; - } - } - if ($testConditionCount > 1) { - $testConditions[] = 'OR(' . implode(',', $testCondition) . ')'; - $testConditionsCount++; - } elseif ($testConditionCount == 1) { - $testConditions[] = $testCondition[0]; - $testConditionsCount++; - } - } - - if ($testConditionsCount > 1) { - $testConditionSet = 'AND(' . implode(',', $testConditions) . ')'; - } elseif ($testConditionsCount == 1) { - $testConditionSet = $testConditions[0]; - } - - // Loop through each row of the database - foreach ($database as $dataRow => $dataValues) { - // Substitute actual values from the database row for our [:placeholders] - $testConditionList = $testConditionSet; - foreach ($criteriaNames as $key => $criteriaName) { - $k = array_search($criteriaName, $fieldNames); - if (isset($dataValues[$k])) { - $dataValue = $dataValues[$k]; - $dataValue = (is_string($dataValue)) ? PHPExcel_Calculation::wrapResult(strtoupper($dataValue)) : $dataValue; - $testConditionList = str_replace('[:' . $criteriaName . ']', $dataValue, $testConditionList); - } - } - // evaluate the criteria against the row data - $result = PHPExcel_Calculation::getInstance()->_calculateFormulaValue('='.$testConditionList); - // If the row failed to meet the criteria, remove it from the database - if (!$result) { - unset($database[$dataRow]); - } - } - - return $database; - } - - - private static function getFilteredColumn($database, $field, $criteria) - { - // reduce the database to a set of rows that match all the criteria - $database = self::filter($database, $criteria); - // extract an array of values for the requested column - $colData = array(); - foreach ($database as $row) { - $colData[] = $row[$field]; - } - - return $colData; - } - - /** - * DAVERAGE - * - * Averages the values in a column of a list or database that match conditions you specify. - * - * Excel Function: - * DAVERAGE(database,field,criteria) - * - * @access public - * @category Database Functions - * @param mixed[] $database The range of cells that makes up the list or database. - * A database is a list of related data in which rows of related - * information are records, and columns of data are fields. The - * first row of the list contains labels for each column. - * @param string|integer $field Indicates which column is used in the function. Enter the - * column label enclosed between double quotation marks, such as - * "Age" or "Yield," or a number (without quotation marks) that - * represents the position of the column within the list: 1 for - * the first column, 2 for the second column, and so on. - * @param mixed[] $criteria The range of cells that contains the conditions you specify. - * You can use any range for the criteria argument, as long as it - * includes at least one column label and at least one cell below - * the column label in which you specify a condition for the - * column. - * @return float - * - */ - public static function DAVERAGE($database, $field, $criteria) - { - $field = self::fieldExtract($database, $field); - if (is_null($field)) { - return null; - } - - // Return - return PHPExcel_Calculation_Statistical::AVERAGE( - self::getFilteredColumn($database, $field, $criteria) - ); - } - - - /** - * DCOUNT - * - * Counts the cells that contain numbers in a column of a list or database that match conditions - * that you specify. - * - * Excel Function: - * DCOUNT(database,[field],criteria) - * - * Excel Function: - * DAVERAGE(database,field,criteria) - * - * @access public - * @category Database Functions - * @param mixed[] $database The range of cells that makes up the list or database. - * A database is a list of related data in which rows of related - * information are records, and columns of data are fields. The - * first row of the list contains labels for each column. - * @param string|integer $field Indicates which column is used in the function. Enter the - * column label enclosed between double quotation marks, such as - * "Age" or "Yield," or a number (without quotation marks) that - * represents the position of the column within the list: 1 for - * the first column, 2 for the second column, and so on. - * @param mixed[] $criteria The range of cells that contains the conditions you specify. - * You can use any range for the criteria argument, as long as it - * includes at least one column label and at least one cell below - * the column label in which you specify a condition for the - * column. - * @return integer - * - * @TODO The field argument is optional. If field is omitted, DCOUNT counts all records in the - * database that match the criteria. - * - */ - public static function DCOUNT($database, $field, $criteria) - { - $field = self::fieldExtract($database, $field); - if (is_null($field)) { - return null; - } - - // Return - return PHPExcel_Calculation_Statistical::COUNT( - self::getFilteredColumn($database, $field, $criteria) - ); - } - - - /** - * DCOUNTA - * - * Counts the nonblank cells in a column of a list or database that match conditions that you specify. - * - * Excel Function: - * DCOUNTA(database,[field],criteria) - * - * @access public - * @category Database Functions - * @param mixed[] $database The range of cells that makes up the list or database. - * A database is a list of related data in which rows of related - * information are records, and columns of data are fields. The - * first row of the list contains labels for each column. - * @param string|integer $field Indicates which column is used in the function. Enter the - * column label enclosed between double quotation marks, such as - * "Age" or "Yield," or a number (without quotation marks) that - * represents the position of the column within the list: 1 for - * the first column, 2 for the second column, and so on. - * @param mixed[] $criteria The range of cells that contains the conditions you specify. - * You can use any range for the criteria argument, as long as it - * includes at least one column label and at least one cell below - * the column label in which you specify a condition for the - * column. - * @return integer - * - * @TODO The field argument is optional. If field is omitted, DCOUNTA counts all records in the - * database that match the criteria. - * - */ - public static function DCOUNTA($database, $field, $criteria) - { - $field = self::fieldExtract($database, $field); - if (is_null($field)) { - return null; - } - - // reduce the database to a set of rows that match all the criteria - $database = self::filter($database, $criteria); - // extract an array of values for the requested column - $colData = array(); - foreach ($database as $row) { - $colData[] = $row[$field]; - } - - // Return - return PHPExcel_Calculation_Statistical::COUNTA( - self::getFilteredColumn($database, $field, $criteria) - ); - } - - - /** - * DGET - * - * Extracts a single value from a column of a list or database that matches conditions that you - * specify. - * - * Excel Function: - * DGET(database,field,criteria) - * - * @access public - * @category Database Functions - * @param mixed[] $database The range of cells that makes up the list or database. - * A database is a list of related data in which rows of related - * information are records, and columns of data are fields. The - * first row of the list contains labels for each column. - * @param string|integer $field Indicates which column is used in the function. Enter the - * column label enclosed between double quotation marks, such as - * "Age" or "Yield," or a number (without quotation marks) that - * represents the position of the column within the list: 1 for - * the first column, 2 for the second column, and so on. - * @param mixed[] $criteria The range of cells that contains the conditions you specify. - * You can use any range for the criteria argument, as long as it - * includes at least one column label and at least one cell below - * the column label in which you specify a condition for the - * column. - * @return mixed - * - */ - public static function DGET($database, $field, $criteria) - { - $field = self::fieldExtract($database, $field); - if (is_null($field)) { - return null; - } - - // Return - $colData = self::getFilteredColumn($database, $field, $criteria); - if (count($colData) > 1) { - return PHPExcel_Calculation_Functions::NaN(); - } - - return $colData[0]; - } - - - /** - * DMAX - * - * Returns the largest number in a column of a list or database that matches conditions you that - * specify. - * - * Excel Function: - * DMAX(database,field,criteria) - * - * @access public - * @category Database Functions - * @param mixed[] $database The range of cells that makes up the list or database. - * A database is a list of related data in which rows of related - * information are records, and columns of data are fields. The - * first row of the list contains labels for each column. - * @param string|integer $field Indicates which column is used in the function. Enter the - * column label enclosed between double quotation marks, such as - * "Age" or "Yield," or a number (without quotation marks) that - * represents the position of the column within the list: 1 for - * the first column, 2 for the second column, and so on. - * @param mixed[] $criteria The range of cells that contains the conditions you specify. - * You can use any range for the criteria argument, as long as it - * includes at least one column label and at least one cell below - * the column label in which you specify a condition for the - * column. - * @return float - * - */ - public static function DMAX($database, $field, $criteria) - { - $field = self::fieldExtract($database, $field); - if (is_null($field)) { - return null; - } - - // Return - return PHPExcel_Calculation_Statistical::MAX( - self::getFilteredColumn($database, $field, $criteria) - ); - } - - - /** - * DMIN - * - * Returns the smallest number in a column of a list or database that matches conditions you that - * specify. - * - * Excel Function: - * DMIN(database,field,criteria) - * - * @access public - * @category Database Functions - * @param mixed[] $database The range of cells that makes up the list or database. - * A database is a list of related data in which rows of related - * information are records, and columns of data are fields. The - * first row of the list contains labels for each column. - * @param string|integer $field Indicates which column is used in the function. Enter the - * column label enclosed between double quotation marks, such as - * "Age" or "Yield," or a number (without quotation marks) that - * represents the position of the column within the list: 1 for - * the first column, 2 for the second column, and so on. - * @param mixed[] $criteria The range of cells that contains the conditions you specify. - * You can use any range for the criteria argument, as long as it - * includes at least one column label and at least one cell below - * the column label in which you specify a condition for the - * column. - * @return float - * - */ - public static function DMIN($database, $field, $criteria) - { - $field = self::fieldExtract($database, $field); - if (is_null($field)) { - return null; - } - - // Return - return PHPExcel_Calculation_Statistical::MIN( - self::getFilteredColumn($database, $field, $criteria) - ); - } - - - /** - * DPRODUCT - * - * Multiplies the values in a column of a list or database that match conditions that you specify. - * - * Excel Function: - * DPRODUCT(database,field,criteria) - * - * @access public - * @category Database Functions - * @param mixed[] $database The range of cells that makes up the list or database. - * A database is a list of related data in which rows of related - * information are records, and columns of data are fields. The - * first row of the list contains labels for each column. - * @param string|integer $field Indicates which column is used in the function. Enter the - * column label enclosed between double quotation marks, such as - * "Age" or "Yield," or a number (without quotation marks) that - * represents the position of the column within the list: 1 for - * the first column, 2 for the second column, and so on. - * @param mixed[] $criteria The range of cells that contains the conditions you specify. - * You can use any range for the criteria argument, as long as it - * includes at least one column label and at least one cell below - * the column label in which you specify a condition for the - * column. - * @return float - * - */ - public static function DPRODUCT($database, $field, $criteria) - { - $field = self::fieldExtract($database, $field); - if (is_null($field)) { - return null; - } - - // Return - return PHPExcel_Calculation_MathTrig::PRODUCT( - self::getFilteredColumn($database, $field, $criteria) - ); - } - - - /** - * DSTDEV - * - * Estimates the standard deviation of a population based on a sample by using the numbers in a - * column of a list or database that match conditions that you specify. - * - * Excel Function: - * DSTDEV(database,field,criteria) - * - * @access public - * @category Database Functions - * @param mixed[] $database The range of cells that makes up the list or database. - * A database is a list of related data in which rows of related - * information are records, and columns of data are fields. The - * first row of the list contains labels for each column. - * @param string|integer $field Indicates which column is used in the function. Enter the - * column label enclosed between double quotation marks, such as - * "Age" or "Yield," or a number (without quotation marks) that - * represents the position of the column within the list: 1 for - * the first column, 2 for the second column, and so on. - * @param mixed[] $criteria The range of cells that contains the conditions you specify. - * You can use any range for the criteria argument, as long as it - * includes at least one column label and at least one cell below - * the column label in which you specify a condition for the - * column. - * @return float - * - */ - public static function DSTDEV($database, $field, $criteria) - { - $field = self::fieldExtract($database, $field); - if (is_null($field)) { - return null; - } - - // Return - return PHPExcel_Calculation_Statistical::STDEV( - self::getFilteredColumn($database, $field, $criteria) - ); - } - - - /** - * DSTDEVP - * - * Calculates the standard deviation of a population based on the entire population by using the - * numbers in a column of a list or database that match conditions that you specify. - * - * Excel Function: - * DSTDEVP(database,field,criteria) - * - * @access public - * @category Database Functions - * @param mixed[] $database The range of cells that makes up the list or database. - * A database is a list of related data in which rows of related - * information are records, and columns of data are fields. The - * first row of the list contains labels for each column. - * @param string|integer $field Indicates which column is used in the function. Enter the - * column label enclosed between double quotation marks, such as - * "Age" or "Yield," or a number (without quotation marks) that - * represents the position of the column within the list: 1 for - * the first column, 2 for the second column, and so on. - * @param mixed[] $criteria The range of cells that contains the conditions you specify. - * You can use any range for the criteria argument, as long as it - * includes at least one column label and at least one cell below - * the column label in which you specify a condition for the - * column. - * @return float - * - */ - public static function DSTDEVP($database, $field, $criteria) - { - $field = self::fieldExtract($database, $field); - if (is_null($field)) { - return null; - } - - // Return - return PHPExcel_Calculation_Statistical::STDEVP( - self::getFilteredColumn($database, $field, $criteria) - ); - } - - - /** - * DSUM - * - * Adds the numbers in a column of a list or database that match conditions that you specify. - * - * Excel Function: - * DSUM(database,field,criteria) - * - * @access public - * @category Database Functions - * @param mixed[] $database The range of cells that makes up the list or database. - * A database is a list of related data in which rows of related - * information are records, and columns of data are fields. The - * first row of the list contains labels for each column. - * @param string|integer $field Indicates which column is used in the function. Enter the - * column label enclosed between double quotation marks, such as - * "Age" or "Yield," or a number (without quotation marks) that - * represents the position of the column within the list: 1 for - * the first column, 2 for the second column, and so on. - * @param mixed[] $criteria The range of cells that contains the conditions you specify. - * You can use any range for the criteria argument, as long as it - * includes at least one column label and at least one cell below - * the column label in which you specify a condition for the - * column. - * @return float - * - */ - public static function DSUM($database, $field, $criteria) - { - $field = self::fieldExtract($database, $field); - if (is_null($field)) { - return null; - } - - // Return - return PHPExcel_Calculation_MathTrig::SUM( - self::getFilteredColumn($database, $field, $criteria) - ); - } - - - /** - * DVAR - * - * Estimates the variance of a population based on a sample by using the numbers in a column - * of a list or database that match conditions that you specify. - * - * Excel Function: - * DVAR(database,field,criteria) - * - * @access public - * @category Database Functions - * @param mixed[] $database The range of cells that makes up the list or database. - * A database is a list of related data in which rows of related - * information are records, and columns of data are fields. The - * first row of the list contains labels for each column. - * @param string|integer $field Indicates which column is used in the function. Enter the - * column label enclosed between double quotation marks, such as - * "Age" or "Yield," or a number (without quotation marks) that - * represents the position of the column within the list: 1 for - * the first column, 2 for the second column, and so on. - * @param mixed[] $criteria The range of cells that contains the conditions you specify. - * You can use any range for the criteria argument, as long as it - * includes at least one column label and at least one cell below - * the column label in which you specify a condition for the - * column. - * @return float - * - */ - public static function DVAR($database, $field, $criteria) - { - $field = self::fieldExtract($database, $field); - if (is_null($field)) { - return null; - } - - // Return - return PHPExcel_Calculation_Statistical::VARFunc( - self::getFilteredColumn($database, $field, $criteria) - ); - } - - - /** - * DVARP - * - * Calculates the variance of a population based on the entire population by using the numbers - * in a column of a list or database that match conditions that you specify. - * - * Excel Function: - * DVARP(database,field,criteria) - * - * @access public - * @category Database Functions - * @param mixed[] $database The range of cells that makes up the list or database. - * A database is a list of related data in which rows of related - * information are records, and columns of data are fields. The - * first row of the list contains labels for each column. - * @param string|integer $field Indicates which column is used in the function. Enter the - * column label enclosed between double quotation marks, such as - * "Age" or "Yield," or a number (without quotation marks) that - * represents the position of the column within the list: 1 for - * the first column, 2 for the second column, and so on. - * @param mixed[] $criteria The range of cells that contains the conditions you specify. - * You can use any range for the criteria argument, as long as it - * includes at least one column label and at least one cell below - * the column label in which you specify a condition for the - * column. - * @return float - * - */ - public static function DVARP($database, $field, $criteria) - { - $field = self::fieldExtract($database, $field); - if (is_null($field)) { - return null; - } - - // Return - return PHPExcel_Calculation_Statistical::VARP( - self::getFilteredColumn($database, $field, $criteria) - ); - } -} diff --git a/Utils/PHPExcel/Calculation/DateTime.php b/Utils/PHPExcel/Calculation/DateTime.php deleted file mode 100644 index 72f4c7a..0000000 --- a/Utils/PHPExcel/Calculation/DateTime.php +++ /dev/null @@ -1,1553 +0,0 @@ -format('m'); - $oYear = (int) $PHPDateObject->format('Y'); - - $adjustmentMonthsString = (string) $adjustmentMonths; - if ($adjustmentMonths > 0) { - $adjustmentMonthsString = '+'.$adjustmentMonths; - } - if ($adjustmentMonths != 0) { - $PHPDateObject->modify($adjustmentMonthsString.' months'); - } - $nMonth = (int) $PHPDateObject->format('m'); - $nYear = (int) $PHPDateObject->format('Y'); - - $monthDiff = ($nMonth - $oMonth) + (($nYear - $oYear) * 12); - if ($monthDiff != $adjustmentMonths) { - $adjustDays = (int) $PHPDateObject->format('d'); - $adjustDaysString = '-'.$adjustDays.' days'; - $PHPDateObject->modify($adjustDaysString); - } - return $PHPDateObject; - } - - - /** - * DATETIMENOW - * - * Returns the current date and time. - * The NOW function is useful when you need to display the current date and time on a worksheet or - * calculate a value based on the current date and time, and have that value updated each time you - * open the worksheet. - * - * NOTE: When used in a Cell Formula, MS Excel changes the cell format so that it matches the date - * and time format of your regional settings. PHPExcel does not change cell formatting in this way. - * - * Excel Function: - * NOW() - * - * @access public - * @category Date/Time Functions - * @return mixed Excel date/time serial value, PHP date/time serial value or PHP date/time object, - * depending on the value of the ReturnDateType flag - */ - public static function DATETIMENOW() - { - $saveTimeZone = date_default_timezone_get(); - date_default_timezone_set('UTC'); - $retValue = false; - switch (PHPExcel_Calculation_Functions::getReturnDateType()) { - case PHPExcel_Calculation_Functions::RETURNDATE_EXCEL: - $retValue = (float) PHPExcel_Shared_Date::PHPToExcel(time()); - break; - case PHPExcel_Calculation_Functions::RETURNDATE_PHP_NUMERIC: - $retValue = (integer) time(); - break; - case PHPExcel_Calculation_Functions::RETURNDATE_PHP_OBJECT: - $retValue = new DateTime(); - break; - } - date_default_timezone_set($saveTimeZone); - - return $retValue; - } - - - /** - * DATENOW - * - * Returns the current date. - * The NOW function is useful when you need to display the current date and time on a worksheet or - * calculate a value based on the current date and time, and have that value updated each time you - * open the worksheet. - * - * NOTE: When used in a Cell Formula, MS Excel changes the cell format so that it matches the date - * and time format of your regional settings. PHPExcel does not change cell formatting in this way. - * - * Excel Function: - * TODAY() - * - * @access public - * @category Date/Time Functions - * @return mixed Excel date/time serial value, PHP date/time serial value or PHP date/time object, - * depending on the value of the ReturnDateType flag - */ - public static function DATENOW() - { - $saveTimeZone = date_default_timezone_get(); - date_default_timezone_set('UTC'); - $retValue = false; - $excelDateTime = floor(PHPExcel_Shared_Date::PHPToExcel(time())); - switch (PHPExcel_Calculation_Functions::getReturnDateType()) { - case PHPExcel_Calculation_Functions::RETURNDATE_EXCEL: - $retValue = (float) $excelDateTime; - break; - case PHPExcel_Calculation_Functions::RETURNDATE_PHP_NUMERIC: - $retValue = (integer) PHPExcel_Shared_Date::ExcelToPHP($excelDateTime); - break; - case PHPExcel_Calculation_Functions::RETURNDATE_PHP_OBJECT: - $retValue = PHPExcel_Shared_Date::ExcelToPHPObject($excelDateTime); - break; - } - date_default_timezone_set($saveTimeZone); - - return $retValue; - } - - - /** - * DATE - * - * The DATE function returns a value that represents a particular date. - * - * NOTE: When used in a Cell Formula, MS Excel changes the cell format so that it matches the date - * format of your regional settings. PHPExcel does not change cell formatting in this way. - * - * Excel Function: - * DATE(year,month,day) - * - * PHPExcel is a lot more forgiving than MS Excel when passing non numeric values to this function. - * A Month name or abbreviation (English only at this point) such as 'January' or 'Jan' will still be accepted, - * as will a day value with a suffix (e.g. '21st' rather than simply 21); again only English language. - * - * @access public - * @category Date/Time Functions - * @param integer $year The value of the year argument can include one to four digits. - * Excel interprets the year argument according to the configured - * date system: 1900 or 1904. - * If year is between 0 (zero) and 1899 (inclusive), Excel adds that - * value to 1900 to calculate the year. For example, DATE(108,1,2) - * returns January 2, 2008 (1900+108). - * If year is between 1900 and 9999 (inclusive), Excel uses that - * value as the year. For example, DATE(2008,1,2) returns January 2, - * 2008. - * If year is less than 0 or is 10000 or greater, Excel returns the - * #NUM! error value. - * @param integer $month A positive or negative integer representing the month of the year - * from 1 to 12 (January to December). - * If month is greater than 12, month adds that number of months to - * the first month in the year specified. For example, DATE(2008,14,2) - * returns the serial number representing February 2, 2009. - * If month is less than 1, month subtracts the magnitude of that - * number of months, plus 1, from the first month in the year - * specified. For example, DATE(2008,-3,2) returns the serial number - * representing September 2, 2007. - * @param integer $day A positive or negative integer representing the day of the month - * from 1 to 31. - * If day is greater than the number of days in the month specified, - * day adds that number of days to the first day in the month. For - * example, DATE(2008,1,35) returns the serial number representing - * February 4, 2008. - * If day is less than 1, day subtracts the magnitude that number of - * days, plus one, from the first day of the month specified. For - * example, DATE(2008,1,-15) returns the serial number representing - * December 16, 2007. - * @return mixed Excel date/time serial value, PHP date/time serial value or PHP date/time object, - * depending on the value of the ReturnDateType flag - */ - public static function DATE($year = 0, $month = 1, $day = 1) - { - $year = PHPExcel_Calculation_Functions::flattenSingleValue($year); - $month = PHPExcel_Calculation_Functions::flattenSingleValue($month); - $day = PHPExcel_Calculation_Functions::flattenSingleValue($day); - - if (($month !== null) && (!is_numeric($month))) { - $month = PHPExcel_Shared_Date::monthStringToNumber($month); - } - - if (($day !== null) && (!is_numeric($day))) { - $day = PHPExcel_Shared_Date::dayStringToNumber($day); - } - - $year = ($year !== null) ? PHPExcel_Shared_String::testStringAsNumeric($year) : 0; - $month = ($month !== null) ? PHPExcel_Shared_String::testStringAsNumeric($month) : 0; - $day = ($day !== null) ? PHPExcel_Shared_String::testStringAsNumeric($day) : 0; - if ((!is_numeric($year)) || - (!is_numeric($month)) || - (!is_numeric($day))) { - return PHPExcel_Calculation_Functions::VALUE(); - } - $year = (integer) $year; - $month = (integer) $month; - $day = (integer) $day; - - $baseYear = PHPExcel_Shared_Date::getExcelCalendar(); - // Validate parameters - if ($year < ($baseYear-1900)) { - return PHPExcel_Calculation_Functions::NaN(); - } - if ((($baseYear-1900) != 0) && ($year < $baseYear) && ($year >= 1900)) { - return PHPExcel_Calculation_Functions::NaN(); - } - - if (($year < $baseYear) && ($year >= ($baseYear-1900))) { - $year += 1900; - } - - if ($month < 1) { - // Handle year/month adjustment if month < 1 - --$month; - $year += ceil($month / 12) - 1; - $month = 13 - abs($month % 12); - } elseif ($month > 12) { - // Handle year/month adjustment if month > 12 - $year += floor($month / 12); - $month = ($month % 12); - } - - // Re-validate the year parameter after adjustments - if (($year < $baseYear) || ($year >= 10000)) { - return PHPExcel_Calculation_Functions::NaN(); - } - - // Execute function - $excelDateValue = PHPExcel_Shared_Date::FormattedPHPToExcel($year, $month, $day); - switch (PHPExcel_Calculation_Functions::getReturnDateType()) { - case PHPExcel_Calculation_Functions::RETURNDATE_EXCEL: - return (float) $excelDateValue; - case PHPExcel_Calculation_Functions::RETURNDATE_PHP_NUMERIC: - return (integer) PHPExcel_Shared_Date::ExcelToPHP($excelDateValue); - case PHPExcel_Calculation_Functions::RETURNDATE_PHP_OBJECT: - return PHPExcel_Shared_Date::ExcelToPHPObject($excelDateValue); - } - } - - - /** - * TIME - * - * The TIME function returns a value that represents a particular time. - * - * NOTE: When used in a Cell Formula, MS Excel changes the cell format so that it matches the time - * format of your regional settings. PHPExcel does not change cell formatting in this way. - * - * Excel Function: - * TIME(hour,minute,second) - * - * @access public - * @category Date/Time Functions - * @param integer $hour A number from 0 (zero) to 32767 representing the hour. - * Any value greater than 23 will be divided by 24 and the remainder - * will be treated as the hour value. For example, TIME(27,0,0) = - * TIME(3,0,0) = .125 or 3:00 AM. - * @param integer $minute A number from 0 to 32767 representing the minute. - * Any value greater than 59 will be converted to hours and minutes. - * For example, TIME(0,750,0) = TIME(12,30,0) = .520833 or 12:30 PM. - * @param integer $second A number from 0 to 32767 representing the second. - * Any value greater than 59 will be converted to hours, minutes, - * and seconds. For example, TIME(0,0,2000) = TIME(0,33,22) = .023148 - * or 12:33:20 AM - * @return mixed Excel date/time serial value, PHP date/time serial value or PHP date/time object, - * depending on the value of the ReturnDateType flag - */ - public static function TIME($hour = 0, $minute = 0, $second = 0) - { - $hour = PHPExcel_Calculation_Functions::flattenSingleValue($hour); - $minute = PHPExcel_Calculation_Functions::flattenSingleValue($minute); - $second = PHPExcel_Calculation_Functions::flattenSingleValue($second); - - if ($hour == '') { - $hour = 0; - } - if ($minute == '') { - $minute = 0; - } - if ($second == '') { - $second = 0; - } - - if ((!is_numeric($hour)) || (!is_numeric($minute)) || (!is_numeric($second))) { - return PHPExcel_Calculation_Functions::VALUE(); - } - $hour = (integer) $hour; - $minute = (integer) $minute; - $second = (integer) $second; - - if ($second < 0) { - $minute += floor($second / 60); - $second = 60 - abs($second % 60); - if ($second == 60) { - $second = 0; - } - } elseif ($second >= 60) { - $minute += floor($second / 60); - $second = $second % 60; - } - if ($minute < 0) { - $hour += floor($minute / 60); - $minute = 60 - abs($minute % 60); - if ($minute == 60) { - $minute = 0; - } - } elseif ($minute >= 60) { - $hour += floor($minute / 60); - $minute = $minute % 60; - } - - if ($hour > 23) { - $hour = $hour % 24; - } elseif ($hour < 0) { - return PHPExcel_Calculation_Functions::NaN(); - } - - // Execute function - switch (PHPExcel_Calculation_Functions::getReturnDateType()) { - case PHPExcel_Calculation_Functions::RETURNDATE_EXCEL: - $date = 0; - $calendar = PHPExcel_Shared_Date::getExcelCalendar(); - if ($calendar != PHPExcel_Shared_Date::CALENDAR_WINDOWS_1900) { - $date = 1; - } - return (float) PHPExcel_Shared_Date::FormattedPHPToExcel($calendar, 1, $date, $hour, $minute, $second); - case PHPExcel_Calculation_Functions::RETURNDATE_PHP_NUMERIC: - return (integer) PHPExcel_Shared_Date::ExcelToPHP(PHPExcel_Shared_Date::FormattedPHPToExcel(1970, 1, 1, $hour, $minute, $second)); // -2147468400; // -2147472000 + 3600 - case PHPExcel_Calculation_Functions::RETURNDATE_PHP_OBJECT: - $dayAdjust = 0; - if ($hour < 0) { - $dayAdjust = floor($hour / 24); - $hour = 24 - abs($hour % 24); - if ($hour == 24) { - $hour = 0; - } - } elseif ($hour >= 24) { - $dayAdjust = floor($hour / 24); - $hour = $hour % 24; - } - $phpDateObject = new DateTime('1900-01-01 '.$hour.':'.$minute.':'.$second); - if ($dayAdjust != 0) { - $phpDateObject->modify($dayAdjust.' days'); - } - return $phpDateObject; - } - } - - - /** - * DATEVALUE - * - * Returns a value that represents a particular date. - * Use DATEVALUE to convert a date represented by a text string to an Excel or PHP date/time stamp - * value. - * - * NOTE: When used in a Cell Formula, MS Excel changes the cell format so that it matches the date - * format of your regional settings. PHPExcel does not change cell formatting in this way. - * - * Excel Function: - * DATEVALUE(dateValue) - * - * @access public - * @category Date/Time Functions - * @param string $dateValue Text that represents a date in a Microsoft Excel date format. - * For example, "1/30/2008" or "30-Jan-2008" are text strings within - * quotation marks that represent dates. Using the default date - * system in Excel for Windows, date_text must represent a date from - * January 1, 1900, to December 31, 9999. Using the default date - * system in Excel for the Macintosh, date_text must represent a date - * from January 1, 1904, to December 31, 9999. DATEVALUE returns the - * #VALUE! error value if date_text is out of this range. - * @return mixed Excel date/time serial value, PHP date/time serial value or PHP date/time object, - * depending on the value of the ReturnDateType flag - */ - public static function DATEVALUE($dateValue = 1) - { - $dateValue = trim(PHPExcel_Calculation_Functions::flattenSingleValue($dateValue), '"'); - // Strip any ordinals because they're allowed in Excel (English only) - $dateValue = preg_replace('/(\d)(st|nd|rd|th)([ -\/])/Ui', '$1$3', $dateValue); - // Convert separators (/ . or space) to hyphens (should also handle dot used for ordinals in some countries, e.g. Denmark, Germany) - $dateValue = str_replace(array('/', '.', '-', ' '), array(' ', ' ', ' ', ' '), $dateValue); - - $yearFound = false; - $t1 = explode(' ', $dateValue); - foreach ($t1 as &$t) { - if ((is_numeric($t)) && ($t > 31)) { - if ($yearFound) { - return PHPExcel_Calculation_Functions::VALUE(); - } else { - if ($t < 100) { - $t += 1900; - } - $yearFound = true; - } - } - } - if ((count($t1) == 1) && (strpos($t, ':') != false)) { - // We've been fed a time value without any date - return 0.0; - } elseif (count($t1) == 2) { - // We only have two parts of the date: either day/month or month/year - if ($yearFound) { - array_unshift($t1, 1); - } else { - array_push($t1, date('Y')); - } - } - unset($t); - $dateValue = implode(' ', $t1); - - $PHPDateArray = date_parse($dateValue); - if (($PHPDateArray === false) || ($PHPDateArray['error_count'] > 0)) { - $testVal1 = strtok($dateValue, '- '); - if ($testVal1 !== false) { - $testVal2 = strtok('- '); - if ($testVal2 !== false) { - $testVal3 = strtok('- '); - if ($testVal3 === false) { - $testVal3 = strftime('%Y'); - } - } else { - return PHPExcel_Calculation_Functions::VALUE(); - } - } else { - return PHPExcel_Calculation_Functions::VALUE(); - } - $PHPDateArray = date_parse($testVal1.'-'.$testVal2.'-'.$testVal3); - if (($PHPDateArray === false) || ($PHPDateArray['error_count'] > 0)) { - $PHPDateArray = date_parse($testVal2.'-'.$testVal1.'-'.$testVal3); - if (($PHPDateArray === false) || ($PHPDateArray['error_count'] > 0)) { - return PHPExcel_Calculation_Functions::VALUE(); - } - } - } - - if (($PHPDateArray !== false) && ($PHPDateArray['error_count'] == 0)) { - // Execute function - if ($PHPDateArray['year'] == '') { - $PHPDateArray['year'] = strftime('%Y'); - } - if ($PHPDateArray['year'] < 1900) { - return PHPExcel_Calculation_Functions::VALUE(); - } - if ($PHPDateArray['month'] == '') { - $PHPDateArray['month'] = strftime('%m'); - } - if ($PHPDateArray['day'] == '') { - $PHPDateArray['day'] = strftime('%d'); - } - $excelDateValue = floor( - PHPExcel_Shared_Date::FormattedPHPToExcel( - $PHPDateArray['year'], - $PHPDateArray['month'], - $PHPDateArray['day'], - $PHPDateArray['hour'], - $PHPDateArray['minute'], - $PHPDateArray['second'] - ) - ); - - switch (PHPExcel_Calculation_Functions::getReturnDateType()) { - case PHPExcel_Calculation_Functions::RETURNDATE_EXCEL: - return (float) $excelDateValue; - case PHPExcel_Calculation_Functions::RETURNDATE_PHP_NUMERIC: - return (integer) PHPExcel_Shared_Date::ExcelToPHP($excelDateValue); - case PHPExcel_Calculation_Functions::RETURNDATE_PHP_OBJECT: - return new DateTime($PHPDateArray['year'].'-'.$PHPDateArray['month'].'-'.$PHPDateArray['day'].' 00:00:00'); - } - } - return PHPExcel_Calculation_Functions::VALUE(); - } - - - /** - * TIMEVALUE - * - * Returns a value that represents a particular time. - * Use TIMEVALUE to convert a time represented by a text string to an Excel or PHP date/time stamp - * value. - * - * NOTE: When used in a Cell Formula, MS Excel changes the cell format so that it matches the time - * format of your regional settings. PHPExcel does not change cell formatting in this way. - * - * Excel Function: - * TIMEVALUE(timeValue) - * - * @access public - * @category Date/Time Functions - * @param string $timeValue A text string that represents a time in any one of the Microsoft - * Excel time formats; for example, "6:45 PM" and "18:45" text strings - * within quotation marks that represent time. - * Date information in time_text is ignored. - * @return mixed Excel date/time serial value, PHP date/time serial value or PHP date/time object, - * depending on the value of the ReturnDateType flag - */ - public static function TIMEVALUE($timeValue) - { - $timeValue = trim(PHPExcel_Calculation_Functions::flattenSingleValue($timeValue), '"'); - $timeValue = str_replace(array('/', '.'), array('-', '-'), $timeValue); - - $PHPDateArray = date_parse($timeValue); - if (($PHPDateArray !== false) && ($PHPDateArray['error_count'] == 0)) { - if (PHPExcel_Calculation_Functions::getCompatibilityMode() == PHPExcel_Calculation_Functions::COMPATIBILITY_OPENOFFICE) { - $excelDateValue = PHPExcel_Shared_Date::FormattedPHPToExcel( - $PHPDateArray['year'], - $PHPDateArray['month'], - $PHPDateArray['day'], - $PHPDateArray['hour'], - $PHPDateArray['minute'], - $PHPDateArray['second'] - ); - } else { - $excelDateValue = PHPExcel_Shared_Date::FormattedPHPToExcel(1900, 1, 1, $PHPDateArray['hour'], $PHPDateArray['minute'], $PHPDateArray['second']) - 1; - } - - switch (PHPExcel_Calculation_Functions::getReturnDateType()) { - case PHPExcel_Calculation_Functions::RETURNDATE_EXCEL: - return (float) $excelDateValue; - case PHPExcel_Calculation_Functions::RETURNDATE_PHP_NUMERIC: - return (integer) $phpDateValue = PHPExcel_Shared_Date::ExcelToPHP($excelDateValue+25569) - 3600; - case PHPExcel_Calculation_Functions::RETURNDATE_PHP_OBJECT: - return new DateTime('1900-01-01 '.$PHPDateArray['hour'].':'.$PHPDateArray['minute'].':'.$PHPDateArray['second']); - } - } - return PHPExcel_Calculation_Functions::VALUE(); - } - - - /** - * DATEDIF - * - * @param mixed $startDate Excel date serial value, PHP date/time stamp, PHP DateTime object - * or a standard date string - * @param mixed $endDate Excel date serial value, PHP date/time stamp, PHP DateTime object - * or a standard date string - * @param string $unit - * @return integer Interval between the dates - */ - public static function DATEDIF($startDate = 0, $endDate = 0, $unit = 'D') - { - $startDate = PHPExcel_Calculation_Functions::flattenSingleValue($startDate); - $endDate = PHPExcel_Calculation_Functions::flattenSingleValue($endDate); - $unit = strtoupper(PHPExcel_Calculation_Functions::flattenSingleValue($unit)); - - if (is_string($startDate = self::getDateValue($startDate))) { - return PHPExcel_Calculation_Functions::VALUE(); - } - if (is_string($endDate = self::getDateValue($endDate))) { - return PHPExcel_Calculation_Functions::VALUE(); - } - - // Validate parameters - if ($startDate >= $endDate) { - return PHPExcel_Calculation_Functions::NaN(); - } - - // Execute function - $difference = $endDate - $startDate; - - $PHPStartDateObject = PHPExcel_Shared_Date::ExcelToPHPObject($startDate); - $startDays = $PHPStartDateObject->format('j'); - $startMonths = $PHPStartDateObject->format('n'); - $startYears = $PHPStartDateObject->format('Y'); - - $PHPEndDateObject = PHPExcel_Shared_Date::ExcelToPHPObject($endDate); - $endDays = $PHPEndDateObject->format('j'); - $endMonths = $PHPEndDateObject->format('n'); - $endYears = $PHPEndDateObject->format('Y'); - - $retVal = PHPExcel_Calculation_Functions::NaN(); - switch ($unit) { - case 'D': - $retVal = intval($difference); - break; - case 'M': - $retVal = intval($endMonths - $startMonths) + (intval($endYears - $startYears) * 12); - // We're only interested in full months - if ($endDays < $startDays) { - --$retVal; - } - break; - case 'Y': - $retVal = intval($endYears - $startYears); - // We're only interested in full months - if ($endMonths < $startMonths) { - --$retVal; - } elseif (($endMonths == $startMonths) && ($endDays < $startDays)) { - --$retVal; - } - break; - case 'MD': - if ($endDays < $startDays) { - $retVal = $endDays; - $PHPEndDateObject->modify('-'.$endDays.' days'); - $adjustDays = $PHPEndDateObject->format('j'); - if ($adjustDays > $startDays) { - $retVal += ($adjustDays - $startDays); - } - } else { - $retVal = $endDays - $startDays; - } - break; - case 'YM': - $retVal = intval($endMonths - $startMonths); - if ($retVal < 0) { - $retVal += 12; - } - // We're only interested in full months - if ($endDays < $startDays) { - --$retVal; - } - break; - case 'YD': - $retVal = intval($difference); - if ($endYears > $startYears) { - while ($endYears > $startYears) { - $PHPEndDateObject->modify('-1 year'); - $endYears = $PHPEndDateObject->format('Y'); - } - $retVal = $PHPEndDateObject->format('z') - $PHPStartDateObject->format('z'); - if ($retVal < 0) { - $retVal += 365; - } - } - break; - default: - $retVal = PHPExcel_Calculation_Functions::NaN(); - } - return $retVal; - } - - - /** - * DAYS360 - * - * Returns the number of days between two dates based on a 360-day year (twelve 30-day months), - * which is used in some accounting calculations. Use this function to help compute payments if - * your accounting system is based on twelve 30-day months. - * - * Excel Function: - * DAYS360(startDate,endDate[,method]) - * - * @access public - * @category Date/Time Functions - * @param mixed $startDate Excel date serial value (float), PHP date timestamp (integer), - * PHP DateTime object, or a standard date string - * @param mixed $endDate Excel date serial value (float), PHP date timestamp (integer), - * PHP DateTime object, or a standard date string - * @param boolean $method US or European Method - * FALSE or omitted: U.S. (NASD) method. If the starting date is - * the last day of a month, it becomes equal to the 30th of the - * same month. If the ending date is the last day of a month and - * the starting date is earlier than the 30th of a month, the - * ending date becomes equal to the 1st of the next month; - * otherwise the ending date becomes equal to the 30th of the - * same month. - * TRUE: European method. Starting dates and ending dates that - * occur on the 31st of a month become equal to the 30th of the - * same month. - * @return integer Number of days between start date and end date - */ - public static function DAYS360($startDate = 0, $endDate = 0, $method = false) - { - $startDate = PHPExcel_Calculation_Functions::flattenSingleValue($startDate); - $endDate = PHPExcel_Calculation_Functions::flattenSingleValue($endDate); - - if (is_string($startDate = self::getDateValue($startDate))) { - return PHPExcel_Calculation_Functions::VALUE(); - } - if (is_string($endDate = self::getDateValue($endDate))) { - return PHPExcel_Calculation_Functions::VALUE(); - } - - if (!is_bool($method)) { - return PHPExcel_Calculation_Functions::VALUE(); - } - - // Execute function - $PHPStartDateObject = PHPExcel_Shared_Date::ExcelToPHPObject($startDate); - $startDay = $PHPStartDateObject->format('j'); - $startMonth = $PHPStartDateObject->format('n'); - $startYear = $PHPStartDateObject->format('Y'); - - $PHPEndDateObject = PHPExcel_Shared_Date::ExcelToPHPObject($endDate); - $endDay = $PHPEndDateObject->format('j'); - $endMonth = $PHPEndDateObject->format('n'); - $endYear = $PHPEndDateObject->format('Y'); - - return self::dateDiff360($startDay, $startMonth, $startYear, $endDay, $endMonth, $endYear, !$method); - } - - - /** - * YEARFRAC - * - * Calculates the fraction of the year represented by the number of whole days between two dates - * (the start_date and the end_date). - * Use the YEARFRAC worksheet function to identify the proportion of a whole year's benefits or - * obligations to assign to a specific term. - * - * Excel Function: - * YEARFRAC(startDate,endDate[,method]) - * - * @access public - * @category Date/Time Functions - * @param mixed $startDate Excel date serial value (float), PHP date timestamp (integer), - * PHP DateTime object, or a standard date string - * @param mixed $endDate Excel date serial value (float), PHP date timestamp (integer), - * PHP DateTime object, or a standard date string - * @param integer $method Method used for the calculation - * 0 or omitted US (NASD) 30/360 - * 1 Actual/actual - * 2 Actual/360 - * 3 Actual/365 - * 4 European 30/360 - * @return float fraction of the year - */ - public static function YEARFRAC($startDate = 0, $endDate = 0, $method = 0) - { - $startDate = PHPExcel_Calculation_Functions::flattenSingleValue($startDate); - $endDate = PHPExcel_Calculation_Functions::flattenSingleValue($endDate); - $method = PHPExcel_Calculation_Functions::flattenSingleValue($method); - - if (is_string($startDate = self::getDateValue($startDate))) { - return PHPExcel_Calculation_Functions::VALUE(); - } - if (is_string($endDate = self::getDateValue($endDate))) { - return PHPExcel_Calculation_Functions::VALUE(); - } - - if (((is_numeric($method)) && (!is_string($method))) || ($method == '')) { - switch ($method) { - case 0: - return self::DAYS360($startDate, $endDate) / 360; - case 1: - $days = self::DATEDIF($startDate, $endDate); - $startYear = self::YEAR($startDate); - $endYear = self::YEAR($endDate); - $years = $endYear - $startYear + 1; - $leapDays = 0; - if ($years == 1) { - if (self::isLeapYear($endYear)) { - $startMonth = self::MONTHOFYEAR($startDate); - $endMonth = self::MONTHOFYEAR($endDate); - $endDay = self::DAYOFMONTH($endDate); - if (($startMonth < 3) || - (($endMonth * 100 + $endDay) >= (2 * 100 + 29))) { - $leapDays += 1; - } - } - } else { - for ($year = $startYear; $year <= $endYear; ++$year) { - if ($year == $startYear) { - $startMonth = self::MONTHOFYEAR($startDate); - $startDay = self::DAYOFMONTH($startDate); - if ($startMonth < 3) { - $leapDays += (self::isLeapYear($year)) ? 1 : 0; - } - } elseif ($year == $endYear) { - $endMonth = self::MONTHOFYEAR($endDate); - $endDay = self::DAYOFMONTH($endDate); - if (($endMonth * 100 + $endDay) >= (2 * 100 + 29)) { - $leapDays += (self::isLeapYear($year)) ? 1 : 0; - } - } else { - $leapDays += (self::isLeapYear($year)) ? 1 : 0; - } - } - if ($years == 2) { - if (($leapDays == 0) && (self::isLeapYear($startYear)) && ($days > 365)) { - $leapDays = 1; - } elseif ($days < 366) { - $years = 1; - } - } - $leapDays /= $years; - } - return $days / (365 + $leapDays); - case 2: - return self::DATEDIF($startDate, $endDate) / 360; - case 3: - return self::DATEDIF($startDate, $endDate) / 365; - case 4: - return self::DAYS360($startDate, $endDate, true) / 360; - } - } - return PHPExcel_Calculation_Functions::VALUE(); - } - - - /** - * NETWORKDAYS - * - * Returns the number of whole working days between start_date and end_date. Working days - * exclude weekends and any dates identified in holidays. - * Use NETWORKDAYS to calculate employee benefits that accrue based on the number of days - * worked during a specific term. - * - * Excel Function: - * NETWORKDAYS(startDate,endDate[,holidays[,holiday[,...]]]) - * - * @access public - * @category Date/Time Functions - * @param mixed $startDate Excel date serial value (float), PHP date timestamp (integer), - * PHP DateTime object, or a standard date string - * @param mixed $endDate Excel date serial value (float), PHP date timestamp (integer), - * PHP DateTime object, or a standard date string - * @param mixed $holidays,... Optional series of Excel date serial value (float), PHP date - * timestamp (integer), PHP DateTime object, or a standard date - * strings that will be excluded from the working calendar, such - * as state and federal holidays and floating holidays. - * @return integer Interval between the dates - */ - public static function NETWORKDAYS($startDate, $endDate) - { - // Retrieve the mandatory start and end date that are referenced in the function definition - $startDate = PHPExcel_Calculation_Functions::flattenSingleValue($startDate); - $endDate = PHPExcel_Calculation_Functions::flattenSingleValue($endDate); - // Flush the mandatory start and end date that are referenced in the function definition, and get the optional days - $dateArgs = PHPExcel_Calculation_Functions::flattenArray(func_get_args()); - array_shift($dateArgs); - array_shift($dateArgs); - - // Validate the start and end dates - if (is_string($startDate = $sDate = self::getDateValue($startDate))) { - return PHPExcel_Calculation_Functions::VALUE(); - } - $startDate = (float) floor($startDate); - if (is_string($endDate = $eDate = self::getDateValue($endDate))) { - return PHPExcel_Calculation_Functions::VALUE(); - } - $endDate = (float) floor($endDate); - - if ($sDate > $eDate) { - $startDate = $eDate; - $endDate = $sDate; - } - - // Execute function - $startDoW = 6 - self::DAYOFWEEK($startDate, 2); - if ($startDoW < 0) { - $startDoW = 0; - } - $endDoW = self::DAYOFWEEK($endDate, 2); - if ($endDoW >= 6) { - $endDoW = 0; - } - - $wholeWeekDays = floor(($endDate - $startDate) / 7) * 5; - $partWeekDays = $endDoW + $startDoW; - if ($partWeekDays > 5) { - $partWeekDays -= 5; - } - - // Test any extra holiday parameters - $holidayCountedArray = array(); - foreach ($dateArgs as $holidayDate) { - if (is_string($holidayDate = self::getDateValue($holidayDate))) { - return PHPExcel_Calculation_Functions::VALUE(); - } - if (($holidayDate >= $startDate) && ($holidayDate <= $endDate)) { - if ((self::DAYOFWEEK($holidayDate, 2) < 6) && (!in_array($holidayDate, $holidayCountedArray))) { - --$partWeekDays; - $holidayCountedArray[] = $holidayDate; - } - } - } - - if ($sDate > $eDate) { - return 0 - ($wholeWeekDays + $partWeekDays); - } - return $wholeWeekDays + $partWeekDays; - } - - - /** - * WORKDAY - * - * Returns the date that is the indicated number of working days before or after a date (the - * starting date). Working days exclude weekends and any dates identified as holidays. - * Use WORKDAY to exclude weekends or holidays when you calculate invoice due dates, expected - * delivery times, or the number of days of work performed. - * - * Excel Function: - * WORKDAY(startDate,endDays[,holidays[,holiday[,...]]]) - * - * @access public - * @category Date/Time Functions - * @param mixed $startDate Excel date serial value (float), PHP date timestamp (integer), - * PHP DateTime object, or a standard date string - * @param integer $endDays The number of nonweekend and nonholiday days before or after - * startDate. A positive value for days yields a future date; a - * negative value yields a past date. - * @param mixed $holidays,... Optional series of Excel date serial value (float), PHP date - * timestamp (integer), PHP DateTime object, or a standard date - * strings that will be excluded from the working calendar, such - * as state and federal holidays and floating holidays. - * @return mixed Excel date/time serial value, PHP date/time serial value or PHP date/time object, - * depending on the value of the ReturnDateType flag - */ - public static function WORKDAY($startDate, $endDays) - { - // Retrieve the mandatory start date and days that are referenced in the function definition - $startDate = PHPExcel_Calculation_Functions::flattenSingleValue($startDate); - $endDays = PHPExcel_Calculation_Functions::flattenSingleValue($endDays); - // Flush the mandatory start date and days that are referenced in the function definition, and get the optional days - $dateArgs = PHPExcel_Calculation_Functions::flattenArray(func_get_args()); - array_shift($dateArgs); - array_shift($dateArgs); - - if ((is_string($startDate = self::getDateValue($startDate))) || (!is_numeric($endDays))) { - return PHPExcel_Calculation_Functions::VALUE(); - } - $startDate = (float) floor($startDate); - $endDays = (int) floor($endDays); - // If endDays is 0, we always return startDate - if ($endDays == 0) { - return $startDate; - } - - $decrementing = ($endDays < 0) ? true : false; - - // Adjust the start date if it falls over a weekend - - $startDoW = self::DAYOFWEEK($startDate, 3); - if (self::DAYOFWEEK($startDate, 3) >= 5) { - $startDate += ($decrementing) ? -$startDoW + 4: 7 - $startDoW; - ($decrementing) ? $endDays++ : $endDays--; - } - - // Add endDays - $endDate = (float) $startDate + (intval($endDays / 5) * 7) + ($endDays % 5); - - // Adjust the calculated end date if it falls over a weekend - $endDoW = self::DAYOFWEEK($endDate, 3); - if ($endDoW >= 5) { - $endDate += ($decrementing) ? -$endDoW + 4: 7 - $endDoW; - } - - // Test any extra holiday parameters - if (!empty($dateArgs)) { - $holidayCountedArray = $holidayDates = array(); - foreach ($dateArgs as $holidayDate) { - if (($holidayDate !== null) && (trim($holidayDate) > '')) { - if (is_string($holidayDate = self::getDateValue($holidayDate))) { - return PHPExcel_Calculation_Functions::VALUE(); - } - if (self::DAYOFWEEK($holidayDate, 3) < 5) { - $holidayDates[] = $holidayDate; - } - } - } - if ($decrementing) { - rsort($holidayDates, SORT_NUMERIC); - } else { - sort($holidayDates, SORT_NUMERIC); - } - foreach ($holidayDates as $holidayDate) { - if ($decrementing) { - if (($holidayDate <= $startDate) && ($holidayDate >= $endDate)) { - if (!in_array($holidayDate, $holidayCountedArray)) { - --$endDate; - $holidayCountedArray[] = $holidayDate; - } - } - } else { - if (($holidayDate >= $startDate) && ($holidayDate <= $endDate)) { - if (!in_array($holidayDate, $holidayCountedArray)) { - ++$endDate; - $holidayCountedArray[] = $holidayDate; - } - } - } - // Adjust the calculated end date if it falls over a weekend - $endDoW = self::DAYOFWEEK($endDate, 3); - if ($endDoW >= 5) { - $endDate += ($decrementing) ? -$endDoW + 4 : 7 - $endDoW; - } - } - } - - switch (PHPExcel_Calculation_Functions::getReturnDateType()) { - case PHPExcel_Calculation_Functions::RETURNDATE_EXCEL: - return (float) $endDate; - case PHPExcel_Calculation_Functions::RETURNDATE_PHP_NUMERIC: - return (integer) PHPExcel_Shared_Date::ExcelToPHP($endDate); - case PHPExcel_Calculation_Functions::RETURNDATE_PHP_OBJECT: - return PHPExcel_Shared_Date::ExcelToPHPObject($endDate); - } - } - - - /** - * DAYOFMONTH - * - * Returns the day of the month, for a specified date. The day is given as an integer - * ranging from 1 to 31. - * - * Excel Function: - * DAY(dateValue) - * - * @param mixed $dateValue Excel date serial value (float), PHP date timestamp (integer), - * PHP DateTime object, or a standard date string - * @return int Day of the month - */ - public static function DAYOFMONTH($dateValue = 1) - { - $dateValue = PHPExcel_Calculation_Functions::flattenSingleValue($dateValue); - - if ($dateValue === null) { - $dateValue = 1; - } elseif (is_string($dateValue = self::getDateValue($dateValue))) { - return PHPExcel_Calculation_Functions::VALUE(); - } elseif ($dateValue == 0.0) { - return 0; - } elseif ($dateValue < 0.0) { - return PHPExcel_Calculation_Functions::NaN(); - } - - // Execute function - $PHPDateObject = PHPExcel_Shared_Date::ExcelToPHPObject($dateValue); - - return (int) $PHPDateObject->format('j'); - } - - - /** - * DAYOFWEEK - * - * Returns the day of the week for a specified date. The day is given as an integer - * ranging from 0 to 7 (dependent on the requested style). - * - * Excel Function: - * WEEKDAY(dateValue[,style]) - * - * @param mixed $dateValue Excel date serial value (float), PHP date timestamp (integer), - * PHP DateTime object, or a standard date string - * @param int $style A number that determines the type of return value - * 1 or omitted Numbers 1 (Sunday) through 7 (Saturday). - * 2 Numbers 1 (Monday) through 7 (Sunday). - * 3 Numbers 0 (Monday) through 6 (Sunday). - * @return int Day of the week value - */ - public static function DAYOFWEEK($dateValue = 1, $style = 1) - { - $dateValue = PHPExcel_Calculation_Functions::flattenSingleValue($dateValue); - $style = PHPExcel_Calculation_Functions::flattenSingleValue($style); - - if (!is_numeric($style)) { - return PHPExcel_Calculation_Functions::VALUE(); - } elseif (($style < 1) || ($style > 3)) { - return PHPExcel_Calculation_Functions::NaN(); - } - $style = floor($style); - - if ($dateValue === null) { - $dateValue = 1; - } elseif (is_string($dateValue = self::getDateValue($dateValue))) { - return PHPExcel_Calculation_Functions::VALUE(); - } elseif ($dateValue < 0.0) { - return PHPExcel_Calculation_Functions::NaN(); - } - - // Execute function - $PHPDateObject = PHPExcel_Shared_Date::ExcelToPHPObject($dateValue); - $DoW = $PHPDateObject->format('w'); - - $firstDay = 1; - switch ($style) { - case 1: - ++$DoW; - break; - case 2: - if ($DoW == 0) { - $DoW = 7; - } - break; - case 3: - if ($DoW == 0) { - $DoW = 7; - } - $firstDay = 0; - --$DoW; - break; - } - if (PHPExcel_Calculation_Functions::getCompatibilityMode() == PHPExcel_Calculation_Functions::COMPATIBILITY_EXCEL) { - // Test for Excel's 1900 leap year, and introduce the error as required - if (($PHPDateObject->format('Y') == 1900) && ($PHPDateObject->format('n') <= 2)) { - --$DoW; - if ($DoW < $firstDay) { - $DoW += 7; - } - } - } - - return (int) $DoW; - } - - - /** - * WEEKOFYEAR - * - * Returns the week of the year for a specified date. - * The WEEKNUM function considers the week containing January 1 to be the first week of the year. - * However, there is a European standard that defines the first week as the one with the majority - * of days (four or more) falling in the new year. This means that for years in which there are - * three days or less in the first week of January, the WEEKNUM function returns week numbers - * that are incorrect according to the European standard. - * - * Excel Function: - * WEEKNUM(dateValue[,style]) - * - * @param mixed $dateValue Excel date serial value (float), PHP date timestamp (integer), - * PHP DateTime object, or a standard date string - * @param boolean $method Week begins on Sunday or Monday - * 1 or omitted Week begins on Sunday. - * 2 Week begins on Monday. - * @return int Week Number - */ - public static function WEEKOFYEAR($dateValue = 1, $method = 1) - { - $dateValue = PHPExcel_Calculation_Functions::flattenSingleValue($dateValue); - $method = PHPExcel_Calculation_Functions::flattenSingleValue($method); - - if (!is_numeric($method)) { - return PHPExcel_Calculation_Functions::VALUE(); - } elseif (($method < 1) || ($method > 2)) { - return PHPExcel_Calculation_Functions::NaN(); - } - $method = floor($method); - - if ($dateValue === null) { - $dateValue = 1; - } elseif (is_string($dateValue = self::getDateValue($dateValue))) { - return PHPExcel_Calculation_Functions::VALUE(); - } elseif ($dateValue < 0.0) { - return PHPExcel_Calculation_Functions::NaN(); - } - - // Execute function - $PHPDateObject = PHPExcel_Shared_Date::ExcelToPHPObject($dateValue); - $dayOfYear = $PHPDateObject->format('z'); - $dow = $PHPDateObject->format('w'); - $PHPDateObject->modify('-' . $dayOfYear . ' days'); - $dow = $PHPDateObject->format('w'); - $daysInFirstWeek = 7 - (($dow + (2 - $method)) % 7); - $dayOfYear -= $daysInFirstWeek; - $weekOfYear = ceil($dayOfYear / 7) + 1; - - return (int) $weekOfYear; - } - - - /** - * MONTHOFYEAR - * - * Returns the month of a date represented by a serial number. - * The month is given as an integer, ranging from 1 (January) to 12 (December). - * - * Excel Function: - * MONTH(dateValue) - * - * @param mixed $dateValue Excel date serial value (float), PHP date timestamp (integer), - * PHP DateTime object, or a standard date string - * @return int Month of the year - */ - public static function MONTHOFYEAR($dateValue = 1) - { - $dateValue = PHPExcel_Calculation_Functions::flattenSingleValue($dateValue); - - if ($dateValue === null) { - $dateValue = 1; - } elseif (is_string($dateValue = self::getDateValue($dateValue))) { - return PHPExcel_Calculation_Functions::VALUE(); - } elseif ($dateValue < 0.0) { - return PHPExcel_Calculation_Functions::NaN(); - } - - // Execute function - $PHPDateObject = PHPExcel_Shared_Date::ExcelToPHPObject($dateValue); - - return (int) $PHPDateObject->format('n'); - } - - - /** - * YEAR - * - * Returns the year corresponding to a date. - * The year is returned as an integer in the range 1900-9999. - * - * Excel Function: - * YEAR(dateValue) - * - * @param mixed $dateValue Excel date serial value (float), PHP date timestamp (integer), - * PHP DateTime object, or a standard date string - * @return int Year - */ - public static function YEAR($dateValue = 1) - { - $dateValue = PHPExcel_Calculation_Functions::flattenSingleValue($dateValue); - - if ($dateValue === null) { - $dateValue = 1; - } elseif (is_string($dateValue = self::getDateValue($dateValue))) { - return PHPExcel_Calculation_Functions::VALUE(); - } elseif ($dateValue < 0.0) { - return PHPExcel_Calculation_Functions::NaN(); - } - - // Execute function - $PHPDateObject = PHPExcel_Shared_Date::ExcelToPHPObject($dateValue); - - return (int) $PHPDateObject->format('Y'); - } - - - /** - * HOUROFDAY - * - * Returns the hour of a time value. - * The hour is given as an integer, ranging from 0 (12:00 A.M.) to 23 (11:00 P.M.). - * - * Excel Function: - * HOUR(timeValue) - * - * @param mixed $timeValue Excel date serial value (float), PHP date timestamp (integer), - * PHP DateTime object, or a standard time string - * @return int Hour - */ - public static function HOUROFDAY($timeValue = 0) - { - $timeValue = PHPExcel_Calculation_Functions::flattenSingleValue($timeValue); - - if (!is_numeric($timeValue)) { - if (PHPExcel_Calculation_Functions::getCompatibilityMode() == PHPExcel_Calculation_Functions::COMPATIBILITY_GNUMERIC) { - $testVal = strtok($timeValue, '/-: '); - if (strlen($testVal) < strlen($timeValue)) { - return PHPExcel_Calculation_Functions::VALUE(); - } - } - $timeValue = self::getTimeValue($timeValue); - if (is_string($timeValue)) { - return PHPExcel_Calculation_Functions::VALUE(); - } - } - // Execute function - if ($timeValue >= 1) { - $timeValue = fmod($timeValue, 1); - } elseif ($timeValue < 0.0) { - return PHPExcel_Calculation_Functions::NaN(); - } - $timeValue = PHPExcel_Shared_Date::ExcelToPHP($timeValue); - - return (int) gmdate('G', $timeValue); - } - - - /** - * MINUTEOFHOUR - * - * Returns the minutes of a time value. - * The minute is given as an integer, ranging from 0 to 59. - * - * Excel Function: - * MINUTE(timeValue) - * - * @param mixed $timeValue Excel date serial value (float), PHP date timestamp (integer), - * PHP DateTime object, or a standard time string - * @return int Minute - */ - public static function MINUTEOFHOUR($timeValue = 0) - { - $timeValue = $timeTester = PHPExcel_Calculation_Functions::flattenSingleValue($timeValue); - - if (!is_numeric($timeValue)) { - if (PHPExcel_Calculation_Functions::getCompatibilityMode() == PHPExcel_Calculation_Functions::COMPATIBILITY_GNUMERIC) { - $testVal = strtok($timeValue, '/-: '); - if (strlen($testVal) < strlen($timeValue)) { - return PHPExcel_Calculation_Functions::VALUE(); - } - } - $timeValue = self::getTimeValue($timeValue); - if (is_string($timeValue)) { - return PHPExcel_Calculation_Functions::VALUE(); - } - } - // Execute function - if ($timeValue >= 1) { - $timeValue = fmod($timeValue, 1); - } elseif ($timeValue < 0.0) { - return PHPExcel_Calculation_Functions::NaN(); - } - $timeValue = PHPExcel_Shared_Date::ExcelToPHP($timeValue); - - return (int) gmdate('i', $timeValue); - } - - - /** - * SECONDOFMINUTE - * - * Returns the seconds of a time value. - * The second is given as an integer in the range 0 (zero) to 59. - * - * Excel Function: - * SECOND(timeValue) - * - * @param mixed $timeValue Excel date serial value (float), PHP date timestamp (integer), - * PHP DateTime object, or a standard time string - * @return int Second - */ - public static function SECONDOFMINUTE($timeValue = 0) - { - $timeValue = PHPExcel_Calculation_Functions::flattenSingleValue($timeValue); - - if (!is_numeric($timeValue)) { - if (PHPExcel_Calculation_Functions::getCompatibilityMode() == PHPExcel_Calculation_Functions::COMPATIBILITY_GNUMERIC) { - $testVal = strtok($timeValue, '/-: '); - if (strlen($testVal) < strlen($timeValue)) { - return PHPExcel_Calculation_Functions::VALUE(); - } - } - $timeValue = self::getTimeValue($timeValue); - if (is_string($timeValue)) { - return PHPExcel_Calculation_Functions::VALUE(); - } - } - // Execute function - if ($timeValue >= 1) { - $timeValue = fmod($timeValue, 1); - } elseif ($timeValue < 0.0) { - return PHPExcel_Calculation_Functions::NaN(); - } - $timeValue = PHPExcel_Shared_Date::ExcelToPHP($timeValue); - - return (int) gmdate('s', $timeValue); - } - - - /** - * EDATE - * - * Returns the serial number that represents the date that is the indicated number of months - * before or after a specified date (the start_date). - * Use EDATE to calculate maturity dates or due dates that fall on the same day of the month - * as the date of issue. - * - * Excel Function: - * EDATE(dateValue,adjustmentMonths) - * - * @param mixed $dateValue Excel date serial value (float), PHP date timestamp (integer), - * PHP DateTime object, or a standard date string - * @param int $adjustmentMonths The number of months before or after start_date. - * A positive value for months yields a future date; - * a negative value yields a past date. - * @return mixed Excel date/time serial value, PHP date/time serial value or PHP date/time object, - * depending on the value of the ReturnDateType flag - */ - public static function EDATE($dateValue = 1, $adjustmentMonths = 0) - { - $dateValue = PHPExcel_Calculation_Functions::flattenSingleValue($dateValue); - $adjustmentMonths = PHPExcel_Calculation_Functions::flattenSingleValue($adjustmentMonths); - - if (!is_numeric($adjustmentMonths)) { - return PHPExcel_Calculation_Functions::VALUE(); - } - $adjustmentMonths = floor($adjustmentMonths); - - if (is_string($dateValue = self::getDateValue($dateValue))) { - return PHPExcel_Calculation_Functions::VALUE(); - } - - // Execute function - $PHPDateObject = self::adjustDateByMonths($dateValue, $adjustmentMonths); - - switch (PHPExcel_Calculation_Functions::getReturnDateType()) { - case PHPExcel_Calculation_Functions::RETURNDATE_EXCEL: - return (float) PHPExcel_Shared_Date::PHPToExcel($PHPDateObject); - case PHPExcel_Calculation_Functions::RETURNDATE_PHP_NUMERIC: - return (integer) PHPExcel_Shared_Date::ExcelToPHP(PHPExcel_Shared_Date::PHPToExcel($PHPDateObject)); - case PHPExcel_Calculation_Functions::RETURNDATE_PHP_OBJECT: - return $PHPDateObject; - } - } - - - /** - * EOMONTH - * - * Returns the date value for the last day of the month that is the indicated number of months - * before or after start_date. - * Use EOMONTH to calculate maturity dates or due dates that fall on the last day of the month. - * - * Excel Function: - * EOMONTH(dateValue,adjustmentMonths) - * - * @param mixed $dateValue Excel date serial value (float), PHP date timestamp (integer), - * PHP DateTime object, or a standard date string - * @param int $adjustmentMonths The number of months before or after start_date. - * A positive value for months yields a future date; - * a negative value yields a past date. - * @return mixed Excel date/time serial value, PHP date/time serial value or PHP date/time object, - * depending on the value of the ReturnDateType flag - */ - public static function EOMONTH($dateValue = 1, $adjustmentMonths = 0) - { - $dateValue = PHPExcel_Calculation_Functions::flattenSingleValue($dateValue); - $adjustmentMonths = PHPExcel_Calculation_Functions::flattenSingleValue($adjustmentMonths); - - if (!is_numeric($adjustmentMonths)) { - return PHPExcel_Calculation_Functions::VALUE(); - } - $adjustmentMonths = floor($adjustmentMonths); - - if (is_string($dateValue = self::getDateValue($dateValue))) { - return PHPExcel_Calculation_Functions::VALUE(); - } - - // Execute function - $PHPDateObject = self::adjustDateByMonths($dateValue, $adjustmentMonths+1); - $adjustDays = (int) $PHPDateObject->format('d'); - $adjustDaysString = '-' . $adjustDays . ' days'; - $PHPDateObject->modify($adjustDaysString); - - switch (PHPExcel_Calculation_Functions::getReturnDateType()) { - case PHPExcel_Calculation_Functions::RETURNDATE_EXCEL: - return (float) PHPExcel_Shared_Date::PHPToExcel($PHPDateObject); - case PHPExcel_Calculation_Functions::RETURNDATE_PHP_NUMERIC: - return (integer) PHPExcel_Shared_Date::ExcelToPHP(PHPExcel_Shared_Date::PHPToExcel($PHPDateObject)); - case PHPExcel_Calculation_Functions::RETURNDATE_PHP_OBJECT: - return $PHPDateObject; - } - } -} diff --git a/Utils/PHPExcel/Calculation/Engineering.php b/Utils/PHPExcel/Calculation/Engineering.php deleted file mode 100644 index 1bad8f9..0000000 --- a/Utils/PHPExcel/Calculation/Engineering.php +++ /dev/null @@ -1,2650 +0,0 @@ - array('Group' => 'Mass', 'Unit Name' => 'Gram', 'AllowPrefix' => true), - 'sg' => array('Group' => 'Mass', 'Unit Name' => 'Slug', 'AllowPrefix' => false), - 'lbm' => array('Group' => 'Mass', 'Unit Name' => 'Pound mass (avoirdupois)', 'AllowPrefix' => false), - 'u' => array('Group' => 'Mass', 'Unit Name' => 'U (atomic mass unit)', 'AllowPrefix' => true), - 'ozm' => array('Group' => 'Mass', 'Unit Name' => 'Ounce mass (avoirdupois)', 'AllowPrefix' => false), - 'm' => array('Group' => 'Distance', 'Unit Name' => 'Meter', 'AllowPrefix' => true), - 'mi' => array('Group' => 'Distance', 'Unit Name' => 'Statute mile', 'AllowPrefix' => false), - 'Nmi' => array('Group' => 'Distance', 'Unit Name' => 'Nautical mile', 'AllowPrefix' => false), - 'in' => array('Group' => 'Distance', 'Unit Name' => 'Inch', 'AllowPrefix' => false), - 'ft' => array('Group' => 'Distance', 'Unit Name' => 'Foot', 'AllowPrefix' => false), - 'yd' => array('Group' => 'Distance', 'Unit Name' => 'Yard', 'AllowPrefix' => false), - 'ang' => array('Group' => 'Distance', 'Unit Name' => 'Angstrom', 'AllowPrefix' => true), - 'Pica' => array('Group' => 'Distance', 'Unit Name' => 'Pica (1/72 in)', 'AllowPrefix' => false), - 'yr' => array('Group' => 'Time', 'Unit Name' => 'Year', 'AllowPrefix' => false), - 'day' => array('Group' => 'Time', 'Unit Name' => 'Day', 'AllowPrefix' => false), - 'hr' => array('Group' => 'Time', 'Unit Name' => 'Hour', 'AllowPrefix' => false), - 'mn' => array('Group' => 'Time', 'Unit Name' => 'Minute', 'AllowPrefix' => false), - 'sec' => array('Group' => 'Time', 'Unit Name' => 'Second', 'AllowPrefix' => true), - 'Pa' => array('Group' => 'Pressure', 'Unit Name' => 'Pascal', 'AllowPrefix' => true), - 'p' => array('Group' => 'Pressure', 'Unit Name' => 'Pascal', 'AllowPrefix' => true), - 'atm' => array('Group' => 'Pressure', 'Unit Name' => 'Atmosphere', 'AllowPrefix' => true), - 'at' => array('Group' => 'Pressure', 'Unit Name' => 'Atmosphere', 'AllowPrefix' => true), - 'mmHg' => array('Group' => 'Pressure', 'Unit Name' => 'mm of Mercury', 'AllowPrefix' => true), - 'N' => array('Group' => 'Force', 'Unit Name' => 'Newton', 'AllowPrefix' => true), - 'dyn' => array('Group' => 'Force', 'Unit Name' => 'Dyne', 'AllowPrefix' => true), - 'dy' => array('Group' => 'Force', 'Unit Name' => 'Dyne', 'AllowPrefix' => true), - 'lbf' => array('Group' => 'Force', 'Unit Name' => 'Pound force', 'AllowPrefix' => false), - 'J' => array('Group' => 'Energy', 'Unit Name' => 'Joule', 'AllowPrefix' => true), - 'e' => array('Group' => 'Energy', 'Unit Name' => 'Erg', 'AllowPrefix' => true), - 'c' => array('Group' => 'Energy', 'Unit Name' => 'Thermodynamic calorie', 'AllowPrefix' => true), - 'cal' => array('Group' => 'Energy', 'Unit Name' => 'IT calorie', 'AllowPrefix' => true), - 'eV' => array('Group' => 'Energy', 'Unit Name' => 'Electron volt', 'AllowPrefix' => true), - 'ev' => array('Group' => 'Energy', 'Unit Name' => 'Electron volt', 'AllowPrefix' => true), - 'HPh' => array('Group' => 'Energy', 'Unit Name' => 'Horsepower-hour', 'AllowPrefix' => false), - 'hh' => array('Group' => 'Energy', 'Unit Name' => 'Horsepower-hour', 'AllowPrefix' => false), - 'Wh' => array('Group' => 'Energy', 'Unit Name' => 'Watt-hour', 'AllowPrefix' => true), - 'wh' => array('Group' => 'Energy', 'Unit Name' => 'Watt-hour', 'AllowPrefix' => true), - 'flb' => array('Group' => 'Energy', 'Unit Name' => 'Foot-pound', 'AllowPrefix' => false), - 'BTU' => array('Group' => 'Energy', 'Unit Name' => 'BTU', 'AllowPrefix' => false), - 'btu' => array('Group' => 'Energy', 'Unit Name' => 'BTU', 'AllowPrefix' => false), - 'HP' => array('Group' => 'Power', 'Unit Name' => 'Horsepower', 'AllowPrefix' => false), - 'h' => array('Group' => 'Power', 'Unit Name' => 'Horsepower', 'AllowPrefix' => false), - 'W' => array('Group' => 'Power', 'Unit Name' => 'Watt', 'AllowPrefix' => true), - 'w' => array('Group' => 'Power', 'Unit Name' => 'Watt', 'AllowPrefix' => true), - 'T' => array('Group' => 'Magnetism', 'Unit Name' => 'Tesla', 'AllowPrefix' => true), - 'ga' => array('Group' => 'Magnetism', 'Unit Name' => 'Gauss', 'AllowPrefix' => true), - 'C' => array('Group' => 'Temperature', 'Unit Name' => 'Celsius', 'AllowPrefix' => false), - 'cel' => array('Group' => 'Temperature', 'Unit Name' => 'Celsius', 'AllowPrefix' => false), - 'F' => array('Group' => 'Temperature', 'Unit Name' => 'Fahrenheit', 'AllowPrefix' => false), - 'fah' => array('Group' => 'Temperature', 'Unit Name' => 'Fahrenheit', 'AllowPrefix' => false), - 'K' => array('Group' => 'Temperature', 'Unit Name' => 'Kelvin', 'AllowPrefix' => false), - 'kel' => array('Group' => 'Temperature', 'Unit Name' => 'Kelvin', 'AllowPrefix' => false), - 'tsp' => array('Group' => 'Liquid', 'Unit Name' => 'Teaspoon', 'AllowPrefix' => false), - 'tbs' => array('Group' => 'Liquid', 'Unit Name' => 'Tablespoon', 'AllowPrefix' => false), - 'oz' => array('Group' => 'Liquid', 'Unit Name' => 'Fluid Ounce', 'AllowPrefix' => false), - 'cup' => array('Group' => 'Liquid', 'Unit Name' => 'Cup', 'AllowPrefix' => false), - 'pt' => array('Group' => 'Liquid', 'Unit Name' => 'U.S. Pint', 'AllowPrefix' => false), - 'us_pt' => array('Group' => 'Liquid', 'Unit Name' => 'U.S. Pint', 'AllowPrefix' => false), - 'uk_pt' => array('Group' => 'Liquid', 'Unit Name' => 'U.K. Pint', 'AllowPrefix' => false), - 'qt' => array('Group' => 'Liquid', 'Unit Name' => 'Quart', 'AllowPrefix' => false), - 'gal' => array('Group' => 'Liquid', 'Unit Name' => 'Gallon', 'AllowPrefix' => false), - 'l' => array('Group' => 'Liquid', 'Unit Name' => 'Litre', 'AllowPrefix' => true), - 'lt' => array('Group' => 'Liquid', 'Unit Name' => 'Litre', 'AllowPrefix' => true), - ); - - /** - * Details of the Multiplier prefixes that can be used with Units of Measure in CONVERTUOM() - * - * @var mixed[] - */ - private static $conversionMultipliers = array( - 'Y' => array('multiplier' => 1E24, 'name' => 'yotta'), - 'Z' => array('multiplier' => 1E21, 'name' => 'zetta'), - 'E' => array('multiplier' => 1E18, 'name' => 'exa'), - 'P' => array('multiplier' => 1E15, 'name' => 'peta'), - 'T' => array('multiplier' => 1E12, 'name' => 'tera'), - 'G' => array('multiplier' => 1E9, 'name' => 'giga'), - 'M' => array('multiplier' => 1E6, 'name' => 'mega'), - 'k' => array('multiplier' => 1E3, 'name' => 'kilo'), - 'h' => array('multiplier' => 1E2, 'name' => 'hecto'), - 'e' => array('multiplier' => 1E1, 'name' => 'deka'), - 'd' => array('multiplier' => 1E-1, 'name' => 'deci'), - 'c' => array('multiplier' => 1E-2, 'name' => 'centi'), - 'm' => array('multiplier' => 1E-3, 'name' => 'milli'), - 'u' => array('multiplier' => 1E-6, 'name' => 'micro'), - 'n' => array('multiplier' => 1E-9, 'name' => 'nano'), - 'p' => array('multiplier' => 1E-12, 'name' => 'pico'), - 'f' => array('multiplier' => 1E-15, 'name' => 'femto'), - 'a' => array('multiplier' => 1E-18, 'name' => 'atto'), - 'z' => array('multiplier' => 1E-21, 'name' => 'zepto'), - 'y' => array('multiplier' => 1E-24, 'name' => 'yocto'), - ); - - /** - * Details of the Units of measure conversion factors, organised by group - * - * @var mixed[] - */ - private static $unitConversions = array( - 'Mass' => array( - 'g' => array( - 'g' => 1.0, - 'sg' => 6.85220500053478E-05, - 'lbm' => 2.20462291469134E-03, - 'u' => 6.02217000000000E+23, - 'ozm' => 3.52739718003627E-02, - ), - 'sg' => array( - 'g' => 1.45938424189287E+04, - 'sg' => 1.0, - 'lbm' => 3.21739194101647E+01, - 'u' => 8.78866000000000E+27, - 'ozm' => 5.14782785944229E+02, - ), - 'lbm' => array( - 'g' => 4.5359230974881148E+02, - 'sg' => 3.10810749306493E-02, - 'lbm' => 1.0, - 'u' => 2.73161000000000E+26, - 'ozm' => 1.60000023429410E+01, - ), - 'u' => array( - 'g' => 1.66053100460465E-24, - 'sg' => 1.13782988532950E-28, - 'lbm' => 3.66084470330684E-27, - 'u' => 1.0, - 'ozm' => 5.85735238300524E-26, - ), - 'ozm' => array( - 'g' => 2.83495152079732E+01, - 'sg' => 1.94256689870811E-03, - 'lbm' => 6.24999908478882E-02, - 'u' => 1.70725600000000E+25, - 'ozm' => 1.0, - ), - ), - 'Distance' => array( - 'm' => array( - 'm' => 1.0, - 'mi' => 6.21371192237334E-04, - 'Nmi' => 5.39956803455724E-04, - 'in' => 3.93700787401575E+01, - 'ft' => 3.28083989501312E+00, - 'yd' => 1.09361329797891E+00, - 'ang' => 1.00000000000000E+10, - 'Pica' => 2.83464566929116E+03, - ), - 'mi' => array( - 'm' => 1.60934400000000E+03, - 'mi' => 1.0, - 'Nmi' => 8.68976241900648E-01, - 'in' => 6.33600000000000E+04, - 'ft' => 5.28000000000000E+03, - 'yd' => 1.76000000000000E+03, - 'ang' => 1.60934400000000E+13, - 'Pica' => 4.56191999999971E+06, - ), - 'Nmi' => array( - 'm' => 1.85200000000000E+03, - 'mi' => 1.15077944802354E+00, - 'Nmi' => 1.0, - 'in' => 7.29133858267717E+04, - 'ft' => 6.07611548556430E+03, - 'yd' => 2.02537182785694E+03, - 'ang' => 1.85200000000000E+13, - 'Pica' => 5.24976377952723E+06, - ), - 'in' => array( - 'm' => 2.54000000000000E-02, - 'mi' => 1.57828282828283E-05, - 'Nmi' => 1.37149028077754E-05, - 'in' => 1.0, - 'ft' => 8.33333333333333E-02, - 'yd' => 2.77777777686643E-02, - 'ang' => 2.54000000000000E+08, - 'Pica' => 7.19999999999955E+01, - ), - 'ft' => array( - 'm' => 3.04800000000000E-01, - 'mi' => 1.89393939393939E-04, - 'Nmi' => 1.64578833693305E-04, - 'in' => 1.20000000000000E+01, - 'ft' => 1.0, - 'yd' => 3.33333333223972E-01, - 'ang' => 3.04800000000000E+09, - 'Pica' => 8.63999999999946E+02, - ), - 'yd' => array( - 'm' => 9.14400000300000E-01, - 'mi' => 5.68181818368230E-04, - 'Nmi' => 4.93736501241901E-04, - 'in' => 3.60000000118110E+01, - 'ft' => 3.00000000000000E+00, - 'yd' => 1.0, - 'ang' => 9.14400000300000E+09, - 'Pica' => 2.59200000085023E+03, - ), - 'ang' => array( - 'm' => 1.00000000000000E-10, - 'mi' => 6.21371192237334E-14, - 'Nmi' => 5.39956803455724E-14, - 'in' => 3.93700787401575E-09, - 'ft' => 3.28083989501312E-10, - 'yd' => 1.09361329797891E-10, - 'ang' => 1.0, - 'Pica' => 2.83464566929116E-07, - ), - 'Pica' => array( - 'm' => 3.52777777777800E-04, - 'mi' => 2.19205948372629E-07, - 'Nmi' => 1.90484761219114E-07, - 'in' => 1.38888888888898E-02, - 'ft' => 1.15740740740748E-03, - 'yd' => 3.85802469009251E-04, - 'ang' => 3.52777777777800E+06, - 'Pica' => 1.0, - ), - ), - 'Time' => array( - 'yr' => array( - 'yr' => 1.0, - 'day' => 365.25, - 'hr' => 8766.0, - 'mn' => 525960.0, - 'sec' => 31557600.0, - ), - 'day' => array( - 'yr' => 2.73785078713210E-03, - 'day' => 1.0, - 'hr' => 24.0, - 'mn' => 1440.0, - 'sec' => 86400.0, - ), - 'hr' => array( - 'yr' => 1.14077116130504E-04, - 'day' => 4.16666666666667E-02, - 'hr' => 1.0, - 'mn' => 60.0, - 'sec' => 3600.0, - ), - 'mn' => array( - 'yr' => 1.90128526884174E-06, - 'day' => 6.94444444444444E-04, - 'hr' => 1.66666666666667E-02, - 'mn' => 1.0, - 'sec' => 60.0, - ), - 'sec' => array( - 'yr' => 3.16880878140289E-08, - 'day' => 1.15740740740741E-05, - 'hr' => 2.77777777777778E-04, - 'mn' => 1.66666666666667E-02, - 'sec' => 1.0, - ), - ), - 'Pressure' => array( - 'Pa' => array( - 'Pa' => 1.0, - 'p' => 1.0, - 'atm' => 9.86923299998193E-06, - 'at' => 9.86923299998193E-06, - 'mmHg' => 7.50061707998627E-03, - ), - 'p' => array( - 'Pa' => 1.0, - 'p' => 1.0, - 'atm' => 9.86923299998193E-06, - 'at' => 9.86923299998193E-06, - 'mmHg' => 7.50061707998627E-03, - ), - 'atm' => array( - 'Pa' => 1.01324996583000E+05, - 'p' => 1.01324996583000E+05, - 'atm' => 1.0, - 'at' => 1.0, - 'mmHg' => 760.0, - ), - 'at' => array( - 'Pa' => 1.01324996583000E+05, - 'p' => 1.01324996583000E+05, - 'atm' => 1.0, - 'at' => 1.0, - 'mmHg' => 760.0, - ), - 'mmHg' => array( - 'Pa' => 1.33322363925000E+02, - 'p' => 1.33322363925000E+02, - 'atm' => 1.31578947368421E-03, - 'at' => 1.31578947368421E-03, - 'mmHg' => 1.0, - ), - ), - 'Force' => array( - 'N' => array( - 'N' => 1.0, - 'dyn' => 1.0E+5, - 'dy' => 1.0E+5, - 'lbf' => 2.24808923655339E-01, - ), - 'dyn' => array( - 'N' => 1.0E-5, - 'dyn' => 1.0, - 'dy' => 1.0, - 'lbf' => 2.24808923655339E-06, - ), - 'dy' => array( - 'N' => 1.0E-5, - 'dyn' => 1.0, - 'dy' => 1.0, - 'lbf' => 2.24808923655339E-06, - ), - 'lbf' => array( - 'N' => 4.448222, - 'dyn' => 4.448222E+5, - 'dy' => 4.448222E+5, - 'lbf' => 1.0, - ), - ), - 'Energy' => array( - 'J' => array( - 'J' => 1.0, - 'e' => 9.99999519343231E+06, - 'c' => 2.39006249473467E-01, - 'cal' => 2.38846190642017E-01, - 'eV' => 6.24145700000000E+18, - 'ev' => 6.24145700000000E+18, - 'HPh' => 3.72506430801000E-07, - 'hh' => 3.72506430801000E-07, - 'Wh' => 2.77777916238711E-04, - 'wh' => 2.77777916238711E-04, - 'flb' => 2.37304222192651E+01, - 'BTU' => 9.47815067349015E-04, - 'btu' => 9.47815067349015E-04, - ), - 'e' => array( - 'J' => 1.00000048065700E-07, - 'e' => 1.0, - 'c' => 2.39006364353494E-08, - 'cal' => 2.38846305445111E-08, - 'eV' => 6.24146000000000E+11, - 'ev' => 6.24146000000000E+11, - 'HPh' => 3.72506609848824E-14, - 'hh' => 3.72506609848824E-14, - 'Wh' => 2.77778049754611E-11, - 'wh' => 2.77778049754611E-11, - 'flb' => 2.37304336254586E-06, - 'BTU' => 9.47815522922962E-11, - 'btu' => 9.47815522922962E-11, - ), - 'c' => array( - 'J' => 4.18399101363672E+00, - 'e' => 4.18398900257312E+07, - 'c' => 1.0, - 'cal' => 9.99330315287563E-01, - 'eV' => 2.61142000000000E+19, - 'ev' => 2.61142000000000E+19, - 'HPh' => 1.55856355899327E-06, - 'hh' => 1.55856355899327E-06, - 'Wh' => 1.16222030532950E-03, - 'wh' => 1.16222030532950E-03, - 'flb' => 9.92878733152102E+01, - 'BTU' => 3.96564972437776E-03, - 'btu' => 3.96564972437776E-03, - ), - 'cal' => array( - 'J' => 4.18679484613929E+00, - 'e' => 4.18679283372801E+07, - 'c' => 1.00067013349059E+00, - 'cal' => 1.0, - 'eV' => 2.61317000000000E+19, - 'ev' => 2.61317000000000E+19, - 'HPh' => 1.55960800463137E-06, - 'hh' => 1.55960800463137E-06, - 'Wh' => 1.16299914807955E-03, - 'wh' => 1.16299914807955E-03, - 'flb' => 9.93544094443283E+01, - 'BTU' => 3.96830723907002E-03, - 'btu' => 3.96830723907002E-03, - ), - 'eV' => array( - 'J' => 1.60219000146921E-19, - 'e' => 1.60218923136574E-12, - 'c' => 3.82933423195043E-20, - 'cal' => 3.82676978535648E-20, - 'eV' => 1.0, - 'ev' => 1.0, - 'HPh' => 5.96826078912344E-26, - 'hh' => 5.96826078912344E-26, - 'Wh' => 4.45053000026614E-23, - 'wh' => 4.45053000026614E-23, - 'flb' => 3.80206452103492E-18, - 'BTU' => 1.51857982414846E-22, - 'btu' => 1.51857982414846E-22, - ), - 'ev' => array( - 'J' => 1.60219000146921E-19, - 'e' => 1.60218923136574E-12, - 'c' => 3.82933423195043E-20, - 'cal' => 3.82676978535648E-20, - 'eV' => 1.0, - 'ev' => 1.0, - 'HPh' => 5.96826078912344E-26, - 'hh' => 5.96826078912344E-26, - 'Wh' => 4.45053000026614E-23, - 'wh' => 4.45053000026614E-23, - 'flb' => 3.80206452103492E-18, - 'BTU' => 1.51857982414846E-22, - 'btu' => 1.51857982414846E-22, - ), - 'HPh' => array( - 'J' => 2.68451741316170E+06, - 'e' => 2.68451612283024E+13, - 'c' => 6.41616438565991E+05, - 'cal' => 6.41186757845835E+05, - 'eV' => 1.67553000000000E+25, - 'ev' => 1.67553000000000E+25, - 'HPh' => 1.0, - 'hh' => 1.0, - 'Wh' => 7.45699653134593E+02, - 'wh' => 7.45699653134593E+02, - 'flb' => 6.37047316692964E+07, - 'BTU' => 2.54442605275546E+03, - 'btu' => 2.54442605275546E+03, - ), - 'hh' => array( - 'J' => 2.68451741316170E+06, - 'e' => 2.68451612283024E+13, - 'c' => 6.41616438565991E+05, - 'cal' => 6.41186757845835E+05, - 'eV' => 1.67553000000000E+25, - 'ev' => 1.67553000000000E+25, - 'HPh' => 1.0, - 'hh' => 1.0, - 'Wh' => 7.45699653134593E+02, - 'wh' => 7.45699653134593E+02, - 'flb' => 6.37047316692964E+07, - 'BTU' => 2.54442605275546E+03, - 'btu' => 2.54442605275546E+03, - ), - 'Wh' => array( - 'J' => 3.59999820554720E+03, - 'e' => 3.59999647518369E+10, - 'c' => 8.60422069219046E+02, - 'cal' => 8.59845857713046E+02, - 'eV' => 2.24692340000000E+22, - 'ev' => 2.24692340000000E+22, - 'HPh' => 1.34102248243839E-03, - 'hh' => 1.34102248243839E-03, - 'Wh' => 1.0, - 'wh' => 1.0, - 'flb' => 8.54294774062316E+04, - 'BTU' => 3.41213254164705E+00, - 'btu' => 3.41213254164705E+00, - ), - 'wh' => array( - 'J' => 3.59999820554720E+03, - 'e' => 3.59999647518369E+10, - 'c' => 8.60422069219046E+02, - 'cal' => 8.59845857713046E+02, - 'eV' => 2.24692340000000E+22, - 'ev' => 2.24692340000000E+22, - 'HPh' => 1.34102248243839E-03, - 'hh' => 1.34102248243839E-03, - 'Wh' => 1.0, - 'wh' => 1.0, - 'flb' => 8.54294774062316E+04, - 'BTU' => 3.41213254164705E+00, - 'btu' => 3.41213254164705E+00, - ), - 'flb' => array( - 'J' => 4.21400003236424E-02, - 'e' => 4.21399800687660E+05, - 'c' => 1.00717234301644E-02, - 'cal' => 1.00649785509554E-02, - 'eV' => 2.63015000000000E+17, - 'ev' => 2.63015000000000E+17, - 'HPh' => 1.56974211145130E-08, - 'hh' => 1.56974211145130E-08, - 'Wh' => 1.17055614802000E-05, - 'wh' => 1.17055614802000E-05, - 'flb' => 1.0, - 'BTU' => 3.99409272448406E-05, - 'btu' => 3.99409272448406E-05, - ), - 'BTU' => array( - 'J' => 1.05505813786749E+03, - 'e' => 1.05505763074665E+10, - 'c' => 2.52165488508168E+02, - 'cal' => 2.51996617135510E+02, - 'eV' => 6.58510000000000E+21, - 'ev' => 6.58510000000000E+21, - 'HPh' => 3.93015941224568E-04, - 'hh' => 3.93015941224568E-04, - 'Wh' => 2.93071851047526E-01, - 'wh' => 2.93071851047526E-01, - 'flb' => 2.50369750774671E+04, - 'BTU' => 1.0, - 'btu' => 1.0, - ), - 'btu' => array( - 'J' => 1.05505813786749E+03, - 'e' => 1.05505763074665E+10, - 'c' => 2.52165488508168E+02, - 'cal' => 2.51996617135510E+02, - 'eV' => 6.58510000000000E+21, - 'ev' => 6.58510000000000E+21, - 'HPh' => 3.93015941224568E-04, - 'hh' => 3.93015941224568E-04, - 'Wh' => 2.93071851047526E-01, - 'wh' => 2.93071851047526E-01, - 'flb' => 2.50369750774671E+04, - 'BTU' => 1.0, - 'btu' => 1.0, - ), - ), - 'Power' => array( - 'HP' => array( - 'HP' => 1.0, - 'h' => 1.0, - 'W' => 7.45701000000000E+02, - 'w' => 7.45701000000000E+02, - ), - 'h' => array( - 'HP' => 1.0, - 'h' => 1.0, - 'W' => 7.45701000000000E+02, - 'w' => 7.45701000000000E+02, - ), - 'W' => array( - 'HP' => 1.34102006031908E-03, - 'h' => 1.34102006031908E-03, - 'W' => 1.0, - 'w' => 1.0, - ), - 'w' => array( - 'HP' => 1.34102006031908E-03, - 'h' => 1.34102006031908E-03, - 'W' => 1.0, - 'w' => 1.0, - ), - ), - 'Magnetism' => array( - 'T' => array( - 'T' => 1.0, - 'ga' => 10000.0, - ), - 'ga' => array( - 'T' => 0.0001, - 'ga' => 1.0, - ), - ), - 'Liquid' => array( - 'tsp' => array( - 'tsp' => 1.0, - 'tbs' => 3.33333333333333E-01, - 'oz' => 1.66666666666667E-01, - 'cup' => 2.08333333333333E-02, - 'pt' => 1.04166666666667E-02, - 'us_pt' => 1.04166666666667E-02, - 'uk_pt' => 8.67558516821960E-03, - 'qt' => 5.20833333333333E-03, - 'gal' => 1.30208333333333E-03, - 'l' => 4.92999408400710E-03, - 'lt' => 4.92999408400710E-03, - ), - 'tbs' => array( - 'tsp' => 3.00000000000000E+00, - 'tbs' => 1.0, - 'oz' => 5.00000000000000E-01, - 'cup' => 6.25000000000000E-02, - 'pt' => 3.12500000000000E-02, - 'us_pt' => 3.12500000000000E-02, - 'uk_pt' => 2.60267555046588E-02, - 'qt' => 1.56250000000000E-02, - 'gal' => 3.90625000000000E-03, - 'l' => 1.47899822520213E-02, - 'lt' => 1.47899822520213E-02, - ), - 'oz' => array( - 'tsp' => 6.00000000000000E+00, - 'tbs' => 2.00000000000000E+00, - 'oz' => 1.0, - 'cup' => 1.25000000000000E-01, - 'pt' => 6.25000000000000E-02, - 'us_pt' => 6.25000000000000E-02, - 'uk_pt' => 5.20535110093176E-02, - 'qt' => 3.12500000000000E-02, - 'gal' => 7.81250000000000E-03, - 'l' => 2.95799645040426E-02, - 'lt' => 2.95799645040426E-02, - ), - 'cup' => array( - 'tsp' => 4.80000000000000E+01, - 'tbs' => 1.60000000000000E+01, - 'oz' => 8.00000000000000E+00, - 'cup' => 1.0, - 'pt' => 5.00000000000000E-01, - 'us_pt' => 5.00000000000000E-01, - 'uk_pt' => 4.16428088074541E-01, - 'qt' => 2.50000000000000E-01, - 'gal' => 6.25000000000000E-02, - 'l' => 2.36639716032341E-01, - 'lt' => 2.36639716032341E-01, - ), - 'pt' => array( - 'tsp' => 9.60000000000000E+01, - 'tbs' => 3.20000000000000E+01, - 'oz' => 1.60000000000000E+01, - 'cup' => 2.00000000000000E+00, - 'pt' => 1.0, - 'us_pt' => 1.0, - 'uk_pt' => 8.32856176149081E-01, - 'qt' => 5.00000000000000E-01, - 'gal' => 1.25000000000000E-01, - 'l' => 4.73279432064682E-01, - 'lt' => 4.73279432064682E-01, - ), - 'us_pt' => array( - 'tsp' => 9.60000000000000E+01, - 'tbs' => 3.20000000000000E+01, - 'oz' => 1.60000000000000E+01, - 'cup' => 2.00000000000000E+00, - 'pt' => 1.0, - 'us_pt' => 1.0, - 'uk_pt' => 8.32856176149081E-01, - 'qt' => 5.00000000000000E-01, - 'gal' => 1.25000000000000E-01, - 'l' => 4.73279432064682E-01, - 'lt' => 4.73279432064682E-01, - ), - 'uk_pt' => array( - 'tsp' => 1.15266000000000E+02, - 'tbs' => 3.84220000000000E+01, - 'oz' => 1.92110000000000E+01, - 'cup' => 2.40137500000000E+00, - 'pt' => 1.20068750000000E+00, - 'us_pt' => 1.20068750000000E+00, - 'uk_pt' => 1.0, - 'qt' => 6.00343750000000E-01, - 'gal' => 1.50085937500000E-01, - 'l' => 5.68260698087162E-01, - 'lt' => 5.68260698087162E-01, - ), - 'qt' => array( - 'tsp' => 1.92000000000000E+02, - 'tbs' => 6.40000000000000E+01, - 'oz' => 3.20000000000000E+01, - 'cup' => 4.00000000000000E+00, - 'pt' => 2.00000000000000E+00, - 'us_pt' => 2.00000000000000E+00, - 'uk_pt' => 1.66571235229816E+00, - 'qt' => 1.0, - 'gal' => 2.50000000000000E-01, - 'l' => 9.46558864129363E-01, - 'lt' => 9.46558864129363E-01, - ), - 'gal' => array( - 'tsp' => 7.68000000000000E+02, - 'tbs' => 2.56000000000000E+02, - 'oz' => 1.28000000000000E+02, - 'cup' => 1.60000000000000E+01, - 'pt' => 8.00000000000000E+00, - 'us_pt' => 8.00000000000000E+00, - 'uk_pt' => 6.66284940919265E+00, - 'qt' => 4.00000000000000E+00, - 'gal' => 1.0, - 'l' => 3.78623545651745E+00, - 'lt' => 3.78623545651745E+00, - ), - 'l' => array( - 'tsp' => 2.02840000000000E+02, - 'tbs' => 6.76133333333333E+01, - 'oz' => 3.38066666666667E+01, - 'cup' => 4.22583333333333E+00, - 'pt' => 2.11291666666667E+00, - 'us_pt' => 2.11291666666667E+00, - 'uk_pt' => 1.75975569552166E+00, - 'qt' => 1.05645833333333E+00, - 'gal' => 2.64114583333333E-01, - 'l' => 1.0, - 'lt' => 1.0, - ), - 'lt' => array( - 'tsp' => 2.02840000000000E+02, - 'tbs' => 6.76133333333333E+01, - 'oz' => 3.38066666666667E+01, - 'cup' => 4.22583333333333E+00, - 'pt' => 2.11291666666667E+00, - 'us_pt' => 2.11291666666667E+00, - 'uk_pt' => 1.75975569552166E+00, - 'qt' => 1.05645833333333E+00, - 'gal' => 2.64114583333333E-01, - 'l' => 1.0, - 'lt' => 1.0, - ), - ), - ); - - - /** - * parseComplex - * - * Parses a complex number into its real and imaginary parts, and an I or J suffix - * - * @param string $complexNumber The complex number - * @return string[] Indexed on "real", "imaginary" and "suffix" - */ - public static function parseComplex($complexNumber) - { - $workString = (string) $complexNumber; - - $realNumber = $imaginary = 0; - // Extract the suffix, if there is one - $suffix = substr($workString, -1); - if (!is_numeric($suffix)) { - $workString = substr($workString, 0, -1); - } else { - $suffix = ''; - } - - // Split the input into its Real and Imaginary components - $leadingSign = 0; - if (strlen($workString) > 0) { - $leadingSign = (($workString{0} == '+') || ($workString{0} == '-')) ? 1 : 0; - } - $power = ''; - $realNumber = strtok($workString, '+-'); - if (strtoupper(substr($realNumber, -1)) == 'E') { - $power = strtok('+-'); - ++$leadingSign; - } - - $realNumber = substr($workString, 0, strlen($realNumber)+strlen($power)+$leadingSign); - - if ($suffix != '') { - $imaginary = substr($workString, strlen($realNumber)); - - if (($imaginary == '') && (($realNumber == '') || ($realNumber == '+') || ($realNumber == '-'))) { - $imaginary = $realNumber.'1'; - $realNumber = '0'; - } elseif ($imaginary == '') { - $imaginary = $realNumber; - $realNumber = '0'; - } elseif (($imaginary == '+') || ($imaginary == '-')) { - $imaginary .= '1'; - } - } - - return array( - 'real' => $realNumber, - 'imaginary' => $imaginary, - 'suffix' => $suffix - ); - } - - - /** - * Cleans the leading characters in a complex number string - * - * @param string $complexNumber The complex number to clean - * @return string The "cleaned" complex number - */ - private static function cleanComplex($complexNumber) - { - if ($complexNumber{0} == '+') { - $complexNumber = substr($complexNumber, 1); - } - if ($complexNumber{0} == '0') { - $complexNumber = substr($complexNumber, 1); - } - if ($complexNumber{0} == '.') { - $complexNumber = '0'.$complexNumber; - } - if ($complexNumber{0} == '+') { - $complexNumber = substr($complexNumber, 1); - } - return $complexNumber; - } - - /** - * Formats a number base string value with leading zeroes - * - * @param string $xVal The "number" to pad - * @param integer $places The length that we want to pad this value - * @return string The padded "number" - */ - private static function nbrConversionFormat($xVal, $places) - { - if (!is_null($places)) { - if (strlen($xVal) <= $places) { - return substr(str_pad($xVal, $places, '0', STR_PAD_LEFT), -10); - } else { - return PHPExcel_Calculation_Functions::NaN(); - } - } - - return substr($xVal, -10); - } - - /** - * BESSELI - * - * Returns the modified Bessel function In(x), which is equivalent to the Bessel function evaluated - * for purely imaginary arguments - * - * Excel Function: - * BESSELI(x,ord) - * - * @access public - * @category Engineering Functions - * @param float $x The value at which to evaluate the function. - * If x is nonnumeric, BESSELI returns the #VALUE! error value. - * @param integer $ord The order of the Bessel function. - * If ord is not an integer, it is truncated. - * If $ord is nonnumeric, BESSELI returns the #VALUE! error value. - * If $ord < 0, BESSELI returns the #NUM! error value. - * @return float - * - */ - public static function BESSELI($x, $ord) - { - $x = (is_null($x)) ? 0.0 : PHPExcel_Calculation_Functions::flattenSingleValue($x); - $ord = (is_null($ord)) ? 0.0 : PHPExcel_Calculation_Functions::flattenSingleValue($ord); - - if ((is_numeric($x)) && (is_numeric($ord))) { - $ord = floor($ord); - if ($ord < 0) { - return PHPExcel_Calculation_Functions::NaN(); - } - - if (abs($x) <= 30) { - $fResult = $fTerm = pow($x / 2, $ord) / PHPExcel_Calculation_MathTrig::FACT($ord); - $ordK = 1; - $fSqrX = ($x * $x) / 4; - do { - $fTerm *= $fSqrX; - $fTerm /= ($ordK * ($ordK + $ord)); - $fResult += $fTerm; - } while ((abs($fTerm) > 1e-12) && (++$ordK < 100)); - } else { - $f_2_PI = 2 * M_PI; - - $fXAbs = abs($x); - $fResult = exp($fXAbs) / sqrt($f_2_PI * $fXAbs); - if (($ord & 1) && ($x < 0)) { - $fResult = -$fResult; - } - } - return (is_nan($fResult)) ? PHPExcel_Calculation_Functions::NaN() : $fResult; - } - return PHPExcel_Calculation_Functions::VALUE(); - } - - - /** - * BESSELJ - * - * Returns the Bessel function - * - * Excel Function: - * BESSELJ(x,ord) - * - * @access public - * @category Engineering Functions - * @param float $x The value at which to evaluate the function. - * If x is nonnumeric, BESSELJ returns the #VALUE! error value. - * @param integer $ord The order of the Bessel function. If n is not an integer, it is truncated. - * If $ord is nonnumeric, BESSELJ returns the #VALUE! error value. - * If $ord < 0, BESSELJ returns the #NUM! error value. - * @return float - * - */ - public static function BESSELJ($x, $ord) - { - $x = (is_null($x)) ? 0.0 : PHPExcel_Calculation_Functions::flattenSingleValue($x); - $ord = (is_null($ord)) ? 0.0 : PHPExcel_Calculation_Functions::flattenSingleValue($ord); - - if ((is_numeric($x)) && (is_numeric($ord))) { - $ord = floor($ord); - if ($ord < 0) { - return PHPExcel_Calculation_Functions::NaN(); - } - - $fResult = 0; - if (abs($x) <= 30) { - $fResult = $fTerm = pow($x / 2, $ord) / PHPExcel_Calculation_MathTrig::FACT($ord); - $ordK = 1; - $fSqrX = ($x * $x) / -4; - do { - $fTerm *= $fSqrX; - $fTerm /= ($ordK * ($ordK + $ord)); - $fResult += $fTerm; - } while ((abs($fTerm) > 1e-12) && (++$ordK < 100)); - } else { - $f_PI_DIV_2 = M_PI / 2; - $f_PI_DIV_4 = M_PI / 4; - - $fXAbs = abs($x); - $fResult = sqrt(M_2DIVPI / $fXAbs) * cos($fXAbs - $ord * $f_PI_DIV_2 - $f_PI_DIV_4); - if (($ord & 1) && ($x < 0)) { - $fResult = -$fResult; - } - } - return (is_nan($fResult)) ? PHPExcel_Calculation_Functions::NaN() : $fResult; - } - return PHPExcel_Calculation_Functions::VALUE(); - } - - - private static function besselK0($fNum) - { - if ($fNum <= 2) { - $fNum2 = $fNum * 0.5; - $y = ($fNum2 * $fNum2); - $fRet = -log($fNum2) * self::BESSELI($fNum, 0) + - (-0.57721566 + $y * (0.42278420 + $y * (0.23069756 + $y * (0.3488590e-1 + $y * (0.262698e-2 + $y * - (0.10750e-3 + $y * 0.74e-5)))))); - } else { - $y = 2 / $fNum; - $fRet = exp(-$fNum) / sqrt($fNum) * - (1.25331414 + $y * (-0.7832358e-1 + $y * (0.2189568e-1 + $y * (-0.1062446e-1 + $y * - (0.587872e-2 + $y * (-0.251540e-2 + $y * 0.53208e-3)))))); - } - return $fRet; - } - - - private static function besselK1($fNum) - { - if ($fNum <= 2) { - $fNum2 = $fNum * 0.5; - $y = ($fNum2 * $fNum2); - $fRet = log($fNum2) * self::BESSELI($fNum, 1) + - (1 + $y * (0.15443144 + $y * (-0.67278579 + $y * (-0.18156897 + $y * (-0.1919402e-1 + $y * - (-0.110404e-2 + $y * (-0.4686e-4))))))) / $fNum; - } else { - $y = 2 / $fNum; - $fRet = exp(-$fNum) / sqrt($fNum) * - (1.25331414 + $y * (0.23498619 + $y * (-0.3655620e-1 + $y * (0.1504268e-1 + $y * (-0.780353e-2 + $y * - (0.325614e-2 + $y * (-0.68245e-3))))))); - } - return $fRet; - } - - - /** - * BESSELK - * - * Returns the modified Bessel function Kn(x), which is equivalent to the Bessel functions evaluated - * for purely imaginary arguments. - * - * Excel Function: - * BESSELK(x,ord) - * - * @access public - * @category Engineering Functions - * @param float $x The value at which to evaluate the function. - * If x is nonnumeric, BESSELK returns the #VALUE! error value. - * @param integer $ord The order of the Bessel function. If n is not an integer, it is truncated. - * If $ord is nonnumeric, BESSELK returns the #VALUE! error value. - * If $ord < 0, BESSELK returns the #NUM! error value. - * @return float - * - */ - public static function BESSELK($x, $ord) - { - $x = (is_null($x)) ? 0.0 : PHPExcel_Calculation_Functions::flattenSingleValue($x); - $ord = (is_null($ord)) ? 0.0 : PHPExcel_Calculation_Functions::flattenSingleValue($ord); - - if ((is_numeric($x)) && (is_numeric($ord))) { - if (($ord < 0) || ($x == 0.0)) { - return PHPExcel_Calculation_Functions::NaN(); - } - - switch (floor($ord)) { - case 0: - return self::besselK0($x); - case 1: - return self::besselK1($x); - default: - $fTox = 2 / $x; - $fBkm = self::besselK0($x); - $fBk = self::besselK1($x); - for ($n = 1; $n < $ord; ++$n) { - $fBkp = $fBkm + $n * $fTox * $fBk; - $fBkm = $fBk; - $fBk = $fBkp; - } - } - return (is_nan($fBk)) ? PHPExcel_Calculation_Functions::NaN() : $fBk; - } - return PHPExcel_Calculation_Functions::VALUE(); - } - - - private static function besselY0($fNum) - { - if ($fNum < 8.0) { - $y = ($fNum * $fNum); - $f1 = -2957821389.0 + $y * (7062834065.0 + $y * (-512359803.6 + $y * (10879881.29 + $y * (-86327.92757 + $y * 228.4622733)))); - $f2 = 40076544269.0 + $y * (745249964.8 + $y * (7189466.438 + $y * (47447.26470 + $y * (226.1030244 + $y)))); - $fRet = $f1 / $f2 + 0.636619772 * self::BESSELJ($fNum, 0) * log($fNum); - } else { - $z = 8.0 / $fNum; - $y = ($z * $z); - $xx = $fNum - 0.785398164; - $f1 = 1 + $y * (-0.1098628627e-2 + $y * (0.2734510407e-4 + $y * (-0.2073370639e-5 + $y * 0.2093887211e-6))); - $f2 = -0.1562499995e-1 + $y * (0.1430488765e-3 + $y * (-0.6911147651e-5 + $y * (0.7621095161e-6 + $y * (-0.934945152e-7)))); - $fRet = sqrt(0.636619772 / $fNum) * (sin($xx) * $f1 + $z * cos($xx) * $f2); - } - return $fRet; - } - - - private static function besselY1($fNum) - { - if ($fNum < 8.0) { - $y = ($fNum * $fNum); - $f1 = $fNum * (-0.4900604943e13 + $y * (0.1275274390e13 + $y * (-0.5153438139e11 + $y * (0.7349264551e9 + $y * - (-0.4237922726e7 + $y * 0.8511937935e4))))); - $f2 = 0.2499580570e14 + $y * (0.4244419664e12 + $y * (0.3733650367e10 + $y * (0.2245904002e8 + $y * - (0.1020426050e6 + $y * (0.3549632885e3 + $y))))); - $fRet = $f1 / $f2 + 0.636619772 * ( self::BESSELJ($fNum, 1) * log($fNum) - 1 / $fNum); - } else { - $fRet = sqrt(0.636619772 / $fNum) * sin($fNum - 2.356194491); - } - return $fRet; - } - - - /** - * BESSELY - * - * Returns the Bessel function, which is also called the Weber function or the Neumann function. - * - * Excel Function: - * BESSELY(x,ord) - * - * @access public - * @category Engineering Functions - * @param float $x The value at which to evaluate the function. - * If x is nonnumeric, BESSELK returns the #VALUE! error value. - * @param integer $ord The order of the Bessel function. If n is not an integer, it is truncated. - * If $ord is nonnumeric, BESSELK returns the #VALUE! error value. - * If $ord < 0, BESSELK returns the #NUM! error value. - * - * @return float - */ - public static function BESSELY($x, $ord) - { - $x = (is_null($x)) ? 0.0 : PHPExcel_Calculation_Functions::flattenSingleValue($x); - $ord = (is_null($ord)) ? 0.0 : PHPExcel_Calculation_Functions::flattenSingleValue($ord); - - if ((is_numeric($x)) && (is_numeric($ord))) { - if (($ord < 0) || ($x == 0.0)) { - return PHPExcel_Calculation_Functions::NaN(); - } - - switch (floor($ord)) { - case 0: - return self::besselY0($x); - case 1: - return self::besselY1($x); - default: - $fTox = 2 / $x; - $fBym = self::besselY0($x); - $fBy = self::besselY1($x); - for ($n = 1; $n < $ord; ++$n) { - $fByp = $n * $fTox * $fBy - $fBym; - $fBym = $fBy; - $fBy = $fByp; - } - } - return (is_nan($fBy)) ? PHPExcel_Calculation_Functions::NaN() : $fBy; - } - return PHPExcel_Calculation_Functions::VALUE(); - } - - - /** - * BINTODEC - * - * Return a binary value as decimal. - * - * Excel Function: - * BIN2DEC(x) - * - * @access public - * @category Engineering Functions - * @param string $x The binary number (as a string) that you want to convert. The number - * cannot contain more than 10 characters (10 bits). The most significant - * bit of number is the sign bit. The remaining 9 bits are magnitude bits. - * Negative numbers are represented using two's-complement notation. - * If number is not a valid binary number, or if number contains more than - * 10 characters (10 bits), BIN2DEC returns the #NUM! error value. - * @return string - */ - public static function BINTODEC($x) - { - $x = PHPExcel_Calculation_Functions::flattenSingleValue($x); - - if (is_bool($x)) { - if (PHPExcel_Calculation_Functions::getCompatibilityMode() == PHPExcel_Calculation_Functions::COMPATIBILITY_OPENOFFICE) { - $x = (int) $x; - } else { - return PHPExcel_Calculation_Functions::VALUE(); - } - } - if (PHPExcel_Calculation_Functions::getCompatibilityMode() == PHPExcel_Calculation_Functions::COMPATIBILITY_GNUMERIC) { - $x = floor($x); - } - $x = (string) $x; - if (strlen($x) > preg_match_all('/[01]/', $x, $out)) { - return PHPExcel_Calculation_Functions::NaN(); - } - if (strlen($x) > 10) { - return PHPExcel_Calculation_Functions::NaN(); - } elseif (strlen($x) == 10) { - // Two's Complement - $x = substr($x, -9); - return '-'.(512-bindec($x)); - } - return bindec($x); - } - - - /** - * BINTOHEX - * - * Return a binary value as hex. - * - * Excel Function: - * BIN2HEX(x[,places]) - * - * @access public - * @category Engineering Functions - * @param string $x The binary number (as a string) that you want to convert. The number - * cannot contain more than 10 characters (10 bits). The most significant - * bit of number is the sign bit. The remaining 9 bits are magnitude bits. - * Negative numbers are represented using two's-complement notation. - * If number is not a valid binary number, or if number contains more than - * 10 characters (10 bits), BIN2HEX returns the #NUM! error value. - * @param integer $places The number of characters to use. If places is omitted, BIN2HEX uses the - * minimum number of characters necessary. Places is useful for padding the - * return value with leading 0s (zeros). - * If places is not an integer, it is truncated. - * If places is nonnumeric, BIN2HEX returns the #VALUE! error value. - * If places is negative, BIN2HEX returns the #NUM! error value. - * @return string - */ - public static function BINTOHEX($x, $places = null) - { - $x = PHPExcel_Calculation_Functions::flattenSingleValue($x); - $places = PHPExcel_Calculation_Functions::flattenSingleValue($places); - - if (is_bool($x)) { - if (PHPExcel_Calculation_Functions::getCompatibilityMode() == PHPExcel_Calculation_Functions::COMPATIBILITY_OPENOFFICE) { - $x = (int) $x; - } else { - return PHPExcel_Calculation_Functions::VALUE(); - } - } - if (PHPExcel_Calculation_Functions::getCompatibilityMode() == PHPExcel_Calculation_Functions::COMPATIBILITY_GNUMERIC) { - $x = floor($x); - } - $x = (string) $x; - if (strlen($x) > preg_match_all('/[01]/', $x, $out)) { - return PHPExcel_Calculation_Functions::NaN(); - } - if (strlen($x) > 10) { - return PHPExcel_Calculation_Functions::NaN(); - } elseif (strlen($x) == 10) { - // Two's Complement - return str_repeat('F', 8).substr(strtoupper(dechex(bindec(substr($x, -9)))), -2); - } - $hexVal = (string) strtoupper(dechex(bindec($x))); - - return self::nbrConversionFormat($hexVal, $places); - } - - - /** - * BINTOOCT - * - * Return a binary value as octal. - * - * Excel Function: - * BIN2OCT(x[,places]) - * - * @access public - * @category Engineering Functions - * @param string $x The binary number (as a string) that you want to convert. The number - * cannot contain more than 10 characters (10 bits). The most significant - * bit of number is the sign bit. The remaining 9 bits are magnitude bits. - * Negative numbers are represented using two's-complement notation. - * If number is not a valid binary number, or if number contains more than - * 10 characters (10 bits), BIN2OCT returns the #NUM! error value. - * @param integer $places The number of characters to use. If places is omitted, BIN2OCT uses the - * minimum number of characters necessary. Places is useful for padding the - * return value with leading 0s (zeros). - * If places is not an integer, it is truncated. - * If places is nonnumeric, BIN2OCT returns the #VALUE! error value. - * If places is negative, BIN2OCT returns the #NUM! error value. - * @return string - */ - public static function BINTOOCT($x, $places = null) - { - $x = PHPExcel_Calculation_Functions::flattenSingleValue($x); - $places = PHPExcel_Calculation_Functions::flattenSingleValue($places); - - if (is_bool($x)) { - if (PHPExcel_Calculation_Functions::getCompatibilityMode() == PHPExcel_Calculation_Functions::COMPATIBILITY_OPENOFFICE) { - $x = (int) $x; - } else { - return PHPExcel_Calculation_Functions::VALUE(); - } - } - if (PHPExcel_Calculation_Functions::getCompatibilityMode() == PHPExcel_Calculation_Functions::COMPATIBILITY_GNUMERIC) { - $x = floor($x); - } - $x = (string) $x; - if (strlen($x) > preg_match_all('/[01]/', $x, $out)) { - return PHPExcel_Calculation_Functions::NaN(); - } - if (strlen($x) > 10) { - return PHPExcel_Calculation_Functions::NaN(); - } elseif (strlen($x) == 10) { - // Two's Complement - return str_repeat('7', 7).substr(strtoupper(decoct(bindec(substr($x, -9)))), -3); - } - $octVal = (string) decoct(bindec($x)); - - return self::nbrConversionFormat($octVal, $places); - } - - - /** - * DECTOBIN - * - * Return a decimal value as binary. - * - * Excel Function: - * DEC2BIN(x[,places]) - * - * @access public - * @category Engineering Functions - * @param string $x The decimal integer you want to convert. If number is negative, - * valid place values are ignored and DEC2BIN returns a 10-character - * (10-bit) binary number in which the most significant bit is the sign - * bit. The remaining 9 bits are magnitude bits. Negative numbers are - * represented using two's-complement notation. - * If number < -512 or if number > 511, DEC2BIN returns the #NUM! error - * value. - * If number is nonnumeric, DEC2BIN returns the #VALUE! error value. - * If DEC2BIN requires more than places characters, it returns the #NUM! - * error value. - * @param integer $places The number of characters to use. If places is omitted, DEC2BIN uses - * the minimum number of characters necessary. Places is useful for - * padding the return value with leading 0s (zeros). - * If places is not an integer, it is truncated. - * If places is nonnumeric, DEC2BIN returns the #VALUE! error value. - * If places is zero or negative, DEC2BIN returns the #NUM! error value. - * @return string - */ - public static function DECTOBIN($x, $places = null) - { - $x = PHPExcel_Calculation_Functions::flattenSingleValue($x); - $places = PHPExcel_Calculation_Functions::flattenSingleValue($places); - - if (is_bool($x)) { - if (PHPExcel_Calculation_Functions::getCompatibilityMode() == PHPExcel_Calculation_Functions::COMPATIBILITY_OPENOFFICE) { - $x = (int) $x; - } else { - return PHPExcel_Calculation_Functions::VALUE(); - } - } - $x = (string) $x; - if (strlen($x) > preg_match_all('/[-0123456789.]/', $x, $out)) { - return PHPExcel_Calculation_Functions::VALUE(); - } - $x = (string) floor($x); - $r = decbin($x); - if (strlen($r) == 32) { - // Two's Complement - $r = substr($r, -10); - } elseif (strlen($r) > 11) { - return PHPExcel_Calculation_Functions::NaN(); - } - - return self::nbrConversionFormat($r, $places); - } - - - /** - * DECTOHEX - * - * Return a decimal value as hex. - * - * Excel Function: - * DEC2HEX(x[,places]) - * - * @access public - * @category Engineering Functions - * @param string $x The decimal integer you want to convert. If number is negative, - * places is ignored and DEC2HEX returns a 10-character (40-bit) - * hexadecimal number in which the most significant bit is the sign - * bit. The remaining 39 bits are magnitude bits. Negative numbers - * are represented using two's-complement notation. - * If number < -549,755,813,888 or if number > 549,755,813,887, - * DEC2HEX returns the #NUM! error value. - * If number is nonnumeric, DEC2HEX returns the #VALUE! error value. - * If DEC2HEX requires more than places characters, it returns the - * #NUM! error value. - * @param integer $places The number of characters to use. If places is omitted, DEC2HEX uses - * the minimum number of characters necessary. Places is useful for - * padding the return value with leading 0s (zeros). - * If places is not an integer, it is truncated. - * If places is nonnumeric, DEC2HEX returns the #VALUE! error value. - * If places is zero or negative, DEC2HEX returns the #NUM! error value. - * @return string - */ - public static function DECTOHEX($x, $places = null) - { - $x = PHPExcel_Calculation_Functions::flattenSingleValue($x); - $places = PHPExcel_Calculation_Functions::flattenSingleValue($places); - - if (is_bool($x)) { - if (PHPExcel_Calculation_Functions::getCompatibilityMode() == PHPExcel_Calculation_Functions::COMPATIBILITY_OPENOFFICE) { - $x = (int) $x; - } else { - return PHPExcel_Calculation_Functions::VALUE(); - } - } - $x = (string) $x; - if (strlen($x) > preg_match_all('/[-0123456789.]/', $x, $out)) { - return PHPExcel_Calculation_Functions::VALUE(); - } - $x = (string) floor($x); - $r = strtoupper(dechex($x)); - if (strlen($r) == 8) { - // Two's Complement - $r = 'FF'.$r; - } - - return self::nbrConversionFormat($r, $places); - } - - - /** - * DECTOOCT - * - * Return an decimal value as octal. - * - * Excel Function: - * DEC2OCT(x[,places]) - * - * @access public - * @category Engineering Functions - * @param string $x The decimal integer you want to convert. If number is negative, - * places is ignored and DEC2OCT returns a 10-character (30-bit) - * octal number in which the most significant bit is the sign bit. - * The remaining 29 bits are magnitude bits. Negative numbers are - * represented using two's-complement notation. - * If number < -536,870,912 or if number > 536,870,911, DEC2OCT - * returns the #NUM! error value. - * If number is nonnumeric, DEC2OCT returns the #VALUE! error value. - * If DEC2OCT requires more than places characters, it returns the - * #NUM! error value. - * @param integer $places The number of characters to use. If places is omitted, DEC2OCT uses - * the minimum number of characters necessary. Places is useful for - * padding the return value with leading 0s (zeros). - * If places is not an integer, it is truncated. - * If places is nonnumeric, DEC2OCT returns the #VALUE! error value. - * If places is zero or negative, DEC2OCT returns the #NUM! error value. - * @return string - */ - public static function DECTOOCT($x, $places = null) - { - $x = PHPExcel_Calculation_Functions::flattenSingleValue($x); - $places = PHPExcel_Calculation_Functions::flattenSingleValue($places); - - if (is_bool($x)) { - if (PHPExcel_Calculation_Functions::getCompatibilityMode() == PHPExcel_Calculation_Functions::COMPATIBILITY_OPENOFFICE) { - $x = (int) $x; - } else { - return PHPExcel_Calculation_Functions::VALUE(); - } - } - $x = (string) $x; - if (strlen($x) > preg_match_all('/[-0123456789.]/', $x, $out)) { - return PHPExcel_Calculation_Functions::VALUE(); - } - $x = (string) floor($x); - $r = decoct($x); - if (strlen($r) == 11) { - // Two's Complement - $r = substr($r, -10); - } - - return self::nbrConversionFormat($r, $places); - } - - - /** - * HEXTOBIN - * - * Return a hex value as binary. - * - * Excel Function: - * HEX2BIN(x[,places]) - * - * @access public - * @category Engineering Functions - * @param string $x the hexadecimal number you want to convert. Number cannot - * contain more than 10 characters. The most significant bit of - * number is the sign bit (40th bit from the right). The remaining - * 9 bits are magnitude bits. Negative numbers are represented - * using two's-complement notation. - * If number is negative, HEX2BIN ignores places and returns a - * 10-character binary number. - * If number is negative, it cannot be less than FFFFFFFE00, and - * if number is positive, it cannot be greater than 1FF. - * If number is not a valid hexadecimal number, HEX2BIN returns - * the #NUM! error value. - * If HEX2BIN requires more than places characters, it returns - * the #NUM! error value. - * @param integer $places The number of characters to use. If places is omitted, - * HEX2BIN uses the minimum number of characters necessary. Places - * is useful for padding the return value with leading 0s (zeros). - * If places is not an integer, it is truncated. - * If places is nonnumeric, HEX2BIN returns the #VALUE! error value. - * If places is negative, HEX2BIN returns the #NUM! error value. - * @return string - */ - public static function HEXTOBIN($x, $places = null) - { - $x = PHPExcel_Calculation_Functions::flattenSingleValue($x); - $places = PHPExcel_Calculation_Functions::flattenSingleValue($places); - - if (is_bool($x)) { - return PHPExcel_Calculation_Functions::VALUE(); - } - $x = (string) $x; - if (strlen($x) > preg_match_all('/[0123456789ABCDEF]/', strtoupper($x), $out)) { - return PHPExcel_Calculation_Functions::NaN(); - } - $binVal = decbin(hexdec($x)); - - return substr(self::nbrConversionFormat($binVal, $places), -10); - } - - - /** - * HEXTODEC - * - * Return a hex value as decimal. - * - * Excel Function: - * HEX2DEC(x) - * - * @access public - * @category Engineering Functions - * @param string $x The hexadecimal number you want to convert. This number cannot - * contain more than 10 characters (40 bits). The most significant - * bit of number is the sign bit. The remaining 39 bits are magnitude - * bits. Negative numbers are represented using two's-complement - * notation. - * If number is not a valid hexadecimal number, HEX2DEC returns the - * #NUM! error value. - * @return string - */ - public static function HEXTODEC($x) - { - $x = PHPExcel_Calculation_Functions::flattenSingleValue($x); - - if (is_bool($x)) { - return PHPExcel_Calculation_Functions::VALUE(); - } - $x = (string) $x; - if (strlen($x) > preg_match_all('/[0123456789ABCDEF]/', strtoupper($x), $out)) { - return PHPExcel_Calculation_Functions::NaN(); - } - return hexdec($x); - } - - - /** - * HEXTOOCT - * - * Return a hex value as octal. - * - * Excel Function: - * HEX2OCT(x[,places]) - * - * @access public - * @category Engineering Functions - * @param string $x The hexadecimal number you want to convert. Number cannot - * contain more than 10 characters. The most significant bit of - * number is the sign bit. The remaining 39 bits are magnitude - * bits. Negative numbers are represented using two's-complement - * notation. - * If number is negative, HEX2OCT ignores places and returns a - * 10-character octal number. - * If number is negative, it cannot be less than FFE0000000, and - * if number is positive, it cannot be greater than 1FFFFFFF. - * If number is not a valid hexadecimal number, HEX2OCT returns - * the #NUM! error value. - * If HEX2OCT requires more than places characters, it returns - * the #NUM! error value. - * @param integer $places The number of characters to use. If places is omitted, HEX2OCT - * uses the minimum number of characters necessary. Places is - * useful for padding the return value with leading 0s (zeros). - * If places is not an integer, it is truncated. - * If places is nonnumeric, HEX2OCT returns the #VALUE! error - * value. - * If places is negative, HEX2OCT returns the #NUM! error value. - * @return string - */ - public static function HEXTOOCT($x, $places = null) - { - $x = PHPExcel_Calculation_Functions::flattenSingleValue($x); - $places = PHPExcel_Calculation_Functions::flattenSingleValue($places); - - if (is_bool($x)) { - return PHPExcel_Calculation_Functions::VALUE(); - } - $x = (string) $x; - if (strlen($x) > preg_match_all('/[0123456789ABCDEF]/', strtoupper($x), $out)) { - return PHPExcel_Calculation_Functions::NaN(); - } - $octVal = decoct(hexdec($x)); - - return self::nbrConversionFormat($octVal, $places); - } // function HEXTOOCT() - - - /** - * OCTTOBIN - * - * Return an octal value as binary. - * - * Excel Function: - * OCT2BIN(x[,places]) - * - * @access public - * @category Engineering Functions - * @param string $x The octal number you want to convert. Number may not - * contain more than 10 characters. The most significant - * bit of number is the sign bit. The remaining 29 bits - * are magnitude bits. Negative numbers are represented - * using two's-complement notation. - * If number is negative, OCT2BIN ignores places and returns - * a 10-character binary number. - * If number is negative, it cannot be less than 7777777000, - * and if number is positive, it cannot be greater than 777. - * If number is not a valid octal number, OCT2BIN returns - * the #NUM! error value. - * If OCT2BIN requires more than places characters, it - * returns the #NUM! error value. - * @param integer $places The number of characters to use. If places is omitted, - * OCT2BIN uses the minimum number of characters necessary. - * Places is useful for padding the return value with - * leading 0s (zeros). - * If places is not an integer, it is truncated. - * If places is nonnumeric, OCT2BIN returns the #VALUE! - * error value. - * If places is negative, OCT2BIN returns the #NUM! error - * value. - * @return string - */ - public static function OCTTOBIN($x, $places = null) - { - $x = PHPExcel_Calculation_Functions::flattenSingleValue($x); - $places = PHPExcel_Calculation_Functions::flattenSingleValue($places); - - if (is_bool($x)) { - return PHPExcel_Calculation_Functions::VALUE(); - } - $x = (string) $x; - if (preg_match_all('/[01234567]/', $x, $out) != strlen($x)) { - return PHPExcel_Calculation_Functions::NaN(); - } - $r = decbin(octdec($x)); - - return self::nbrConversionFormat($r, $places); - } - - - /** - * OCTTODEC - * - * Return an octal value as decimal. - * - * Excel Function: - * OCT2DEC(x) - * - * @access public - * @category Engineering Functions - * @param string $x The octal number you want to convert. Number may not contain - * more than 10 octal characters (30 bits). The most significant - * bit of number is the sign bit. The remaining 29 bits are - * magnitude bits. Negative numbers are represented using - * two's-complement notation. - * If number is not a valid octal number, OCT2DEC returns the - * #NUM! error value. - * @return string - */ - public static function OCTTODEC($x) - { - $x = PHPExcel_Calculation_Functions::flattenSingleValue($x); - - if (is_bool($x)) { - return PHPExcel_Calculation_Functions::VALUE(); - } - $x = (string) $x; - if (preg_match_all('/[01234567]/', $x, $out) != strlen($x)) { - return PHPExcel_Calculation_Functions::NaN(); - } - return octdec($x); - } - - - /** - * OCTTOHEX - * - * Return an octal value as hex. - * - * Excel Function: - * OCT2HEX(x[,places]) - * - * @access public - * @category Engineering Functions - * @param string $x The octal number you want to convert. Number may not contain - * more than 10 octal characters (30 bits). The most significant - * bit of number is the sign bit. The remaining 29 bits are - * magnitude bits. Negative numbers are represented using - * two's-complement notation. - * If number is negative, OCT2HEX ignores places and returns a - * 10-character hexadecimal number. - * If number is not a valid octal number, OCT2HEX returns the - * #NUM! error value. - * If OCT2HEX requires more than places characters, it returns - * the #NUM! error value. - * @param integer $places The number of characters to use. If places is omitted, OCT2HEX - * uses the minimum number of characters necessary. Places is useful - * for padding the return value with leading 0s (zeros). - * If places is not an integer, it is truncated. - * If places is nonnumeric, OCT2HEX returns the #VALUE! error value. - * If places is negative, OCT2HEX returns the #NUM! error value. - * @return string - */ - public static function OCTTOHEX($x, $places = null) - { - $x = PHPExcel_Calculation_Functions::flattenSingleValue($x); - $places = PHPExcel_Calculation_Functions::flattenSingleValue($places); - - if (is_bool($x)) { - return PHPExcel_Calculation_Functions::VALUE(); - } - $x = (string) $x; - if (preg_match_all('/[01234567]/', $x, $out) != strlen($x)) { - return PHPExcel_Calculation_Functions::NaN(); - } - $hexVal = strtoupper(dechex(octdec($x))); - - return self::nbrConversionFormat($hexVal, $places); - } - - - /** - * COMPLEX - * - * Converts real and imaginary coefficients into a complex number of the form x + yi or x + yj. - * - * Excel Function: - * COMPLEX(realNumber,imaginary[,places]) - * - * @access public - * @category Engineering Functions - * @param float $realNumber The real coefficient of the complex number. - * @param float $imaginary The imaginary coefficient of the complex number. - * @param string $suffix The suffix for the imaginary component of the complex number. - * If omitted, the suffix is assumed to be "i". - * @return string - */ - public static function COMPLEX($realNumber = 0.0, $imaginary = 0.0, $suffix = 'i') - { - $realNumber = (is_null($realNumber)) ? 0.0 : PHPExcel_Calculation_Functions::flattenSingleValue($realNumber); - $imaginary = (is_null($imaginary)) ? 0.0 : PHPExcel_Calculation_Functions::flattenSingleValue($imaginary); - $suffix = (is_null($suffix)) ? 'i' : PHPExcel_Calculation_Functions::flattenSingleValue($suffix); - - if (((is_numeric($realNumber)) && (is_numeric($imaginary))) && - (($suffix == 'i') || ($suffix == 'j') || ($suffix == ''))) { - $realNumber = (float) $realNumber; - $imaginary = (float) $imaginary; - - if ($suffix == '') { - $suffix = 'i'; - } - if ($realNumber == 0.0) { - if ($imaginary == 0.0) { - return (string) '0'; - } elseif ($imaginary == 1.0) { - return (string) $suffix; - } elseif ($imaginary == -1.0) { - return (string) '-'.$suffix; - } - return (string) $imaginary.$suffix; - } elseif ($imaginary == 0.0) { - return (string) $realNumber; - } elseif ($imaginary == 1.0) { - return (string) $realNumber.'+'.$suffix; - } elseif ($imaginary == -1.0) { - return (string) $realNumber.'-'.$suffix; - } - if ($imaginary > 0) { - $imaginary = (string) '+'.$imaginary; - } - return (string) $realNumber.$imaginary.$suffix; - } - - return PHPExcel_Calculation_Functions::VALUE(); - } - - - /** - * IMAGINARY - * - * Returns the imaginary coefficient of a complex number in x + yi or x + yj text format. - * - * Excel Function: - * IMAGINARY(complexNumber) - * - * @access public - * @category Engineering Functions - * @param string $complexNumber The complex number for which you want the imaginary - * coefficient. - * @return float - */ - public static function IMAGINARY($complexNumber) - { - $complexNumber = PHPExcel_Calculation_Functions::flattenSingleValue($complexNumber); - - $parsedComplex = self::parseComplex($complexNumber); - return $parsedComplex['imaginary']; - } - - - /** - * IMREAL - * - * Returns the real coefficient of a complex number in x + yi or x + yj text format. - * - * Excel Function: - * IMREAL(complexNumber) - * - * @access public - * @category Engineering Functions - * @param string $complexNumber The complex number for which you want the real coefficient. - * @return float - */ - public static function IMREAL($complexNumber) - { - $complexNumber = PHPExcel_Calculation_Functions::flattenSingleValue($complexNumber); - - $parsedComplex = self::parseComplex($complexNumber); - return $parsedComplex['real']; - } - - - /** - * IMABS - * - * Returns the absolute value (modulus) of a complex number in x + yi or x + yj text format. - * - * Excel Function: - * IMABS(complexNumber) - * - * @param string $complexNumber The complex number for which you want the absolute value. - * @return float - */ - public static function IMABS($complexNumber) - { - $complexNumber = PHPExcel_Calculation_Functions::flattenSingleValue($complexNumber); - - $parsedComplex = self::parseComplex($complexNumber); - - return sqrt( - ($parsedComplex['real'] * $parsedComplex['real']) + - ($parsedComplex['imaginary'] * $parsedComplex['imaginary']) - ); - } - - - /** - * IMARGUMENT - * - * Returns the argument theta of a complex number, i.e. the angle in radians from the real - * axis to the representation of the number in polar coordinates. - * - * Excel Function: - * IMARGUMENT(complexNumber) - * - * @param string $complexNumber The complex number for which you want the argument theta. - * @return float - */ - public static function IMARGUMENT($complexNumber) - { - $complexNumber = PHPExcel_Calculation_Functions::flattenSingleValue($complexNumber); - - $parsedComplex = self::parseComplex($complexNumber); - - if ($parsedComplex['real'] == 0.0) { - if ($parsedComplex['imaginary'] == 0.0) { - return 0.0; - } elseif ($parsedComplex['imaginary'] < 0.0) { - return M_PI / -2; - } else { - return M_PI / 2; - } - } elseif ($parsedComplex['real'] > 0.0) { - return atan($parsedComplex['imaginary'] / $parsedComplex['real']); - } elseif ($parsedComplex['imaginary'] < 0.0) { - return 0 - (M_PI - atan(abs($parsedComplex['imaginary']) / abs($parsedComplex['real']))); - } else { - return M_PI - atan($parsedComplex['imaginary'] / abs($parsedComplex['real'])); - } - } - - - /** - * IMCONJUGATE - * - * Returns the complex conjugate of a complex number in x + yi or x + yj text format. - * - * Excel Function: - * IMCONJUGATE(complexNumber) - * - * @param string $complexNumber The complex number for which you want the conjugate. - * @return string - */ - public static function IMCONJUGATE($complexNumber) - { - $complexNumber = PHPExcel_Calculation_Functions::flattenSingleValue($complexNumber); - - $parsedComplex = self::parseComplex($complexNumber); - - if ($parsedComplex['imaginary'] == 0.0) { - return $parsedComplex['real']; - } else { - return self::cleanComplex( - self::COMPLEX( - $parsedComplex['real'], - 0 - $parsedComplex['imaginary'], - $parsedComplex['suffix'] - ) - ); - } - } - - - /** - * IMCOS - * - * Returns the cosine of a complex number in x + yi or x + yj text format. - * - * Excel Function: - * IMCOS(complexNumber) - * - * @param string $complexNumber The complex number for which you want the cosine. - * @return string|float - */ - public static function IMCOS($complexNumber) - { - $complexNumber = PHPExcel_Calculation_Functions::flattenSingleValue($complexNumber); - - $parsedComplex = self::parseComplex($complexNumber); - - if ($parsedComplex['imaginary'] == 0.0) { - return cos($parsedComplex['real']); - } else { - return self::IMCONJUGATE( - self::COMPLEX( - cos($parsedComplex['real']) * cosh($parsedComplex['imaginary']), - sin($parsedComplex['real']) * sinh($parsedComplex['imaginary']), - $parsedComplex['suffix'] - ) - ); - } - } - - - /** - * IMSIN - * - * Returns the sine of a complex number in x + yi or x + yj text format. - * - * Excel Function: - * IMSIN(complexNumber) - * - * @param string $complexNumber The complex number for which you want the sine. - * @return string|float - */ - public static function IMSIN($complexNumber) - { - $complexNumber = PHPExcel_Calculation_Functions::flattenSingleValue($complexNumber); - - $parsedComplex = self::parseComplex($complexNumber); - - if ($parsedComplex['imaginary'] == 0.0) { - return sin($parsedComplex['real']); - } else { - return self::COMPLEX( - sin($parsedComplex['real']) * cosh($parsedComplex['imaginary']), - cos($parsedComplex['real']) * sinh($parsedComplex['imaginary']), - $parsedComplex['suffix'] - ); - } - } - - - /** - * IMSQRT - * - * Returns the square root of a complex number in x + yi or x + yj text format. - * - * Excel Function: - * IMSQRT(complexNumber) - * - * @param string $complexNumber The complex number for which you want the square root. - * @return string - */ - public static function IMSQRT($complexNumber) - { - $complexNumber = PHPExcel_Calculation_Functions::flattenSingleValue($complexNumber); - - $parsedComplex = self::parseComplex($complexNumber); - - $theta = self::IMARGUMENT($complexNumber); - $d1 = cos($theta / 2); - $d2 = sin($theta / 2); - $r = sqrt(sqrt(($parsedComplex['real'] * $parsedComplex['real']) + ($parsedComplex['imaginary'] * $parsedComplex['imaginary']))); - - if ($parsedComplex['suffix'] == '') { - return self::COMPLEX($d1 * $r, $d2 * $r); - } else { - return self::COMPLEX($d1 * $r, $d2 * $r, $parsedComplex['suffix']); - } - } - - - /** - * IMLN - * - * Returns the natural logarithm of a complex number in x + yi or x + yj text format. - * - * Excel Function: - * IMLN(complexNumber) - * - * @param string $complexNumber The complex number for which you want the natural logarithm. - * @return string - */ - public static function IMLN($complexNumber) - { - $complexNumber = PHPExcel_Calculation_Functions::flattenSingleValue($complexNumber); - - $parsedComplex = self::parseComplex($complexNumber); - - if (($parsedComplex['real'] == 0.0) && ($parsedComplex['imaginary'] == 0.0)) { - return PHPExcel_Calculation_Functions::NaN(); - } - - $logR = log(sqrt(($parsedComplex['real'] * $parsedComplex['real']) + ($parsedComplex['imaginary'] * $parsedComplex['imaginary']))); - $t = self::IMARGUMENT($complexNumber); - - if ($parsedComplex['suffix'] == '') { - return self::COMPLEX($logR, $t); - } else { - return self::COMPLEX($logR, $t, $parsedComplex['suffix']); - } - } - - - /** - * IMLOG10 - * - * Returns the common logarithm (base 10) of a complex number in x + yi or x + yj text format. - * - * Excel Function: - * IMLOG10(complexNumber) - * - * @param string $complexNumber The complex number for which you want the common logarithm. - * @return string - */ - public static function IMLOG10($complexNumber) - { - $complexNumber = PHPExcel_Calculation_Functions::flattenSingleValue($complexNumber); - - $parsedComplex = self::parseComplex($complexNumber); - - if (($parsedComplex['real'] == 0.0) && ($parsedComplex['imaginary'] == 0.0)) { - return PHPExcel_Calculation_Functions::NaN(); - } elseif (($parsedComplex['real'] > 0.0) && ($parsedComplex['imaginary'] == 0.0)) { - return log10($parsedComplex['real']); - } - - return self::IMPRODUCT(log10(EULER), self::IMLN($complexNumber)); - } - - - /** - * IMLOG2 - * - * Returns the base-2 logarithm of a complex number in x + yi or x + yj text format. - * - * Excel Function: - * IMLOG2(complexNumber) - * - * @param string $complexNumber The complex number for which you want the base-2 logarithm. - * @return string - */ - public static function IMLOG2($complexNumber) - { - $complexNumber = PHPExcel_Calculation_Functions::flattenSingleValue($complexNumber); - - $parsedComplex = self::parseComplex($complexNumber); - - if (($parsedComplex['real'] == 0.0) && ($parsedComplex['imaginary'] == 0.0)) { - return PHPExcel_Calculation_Functions::NaN(); - } elseif (($parsedComplex['real'] > 0.0) && ($parsedComplex['imaginary'] == 0.0)) { - return log($parsedComplex['real'], 2); - } - - return self::IMPRODUCT(log(EULER, 2), self::IMLN($complexNumber)); - } - - - /** - * IMEXP - * - * Returns the exponential of a complex number in x + yi or x + yj text format. - * - * Excel Function: - * IMEXP(complexNumber) - * - * @param string $complexNumber The complex number for which you want the exponential. - * @return string - */ - public static function IMEXP($complexNumber) - { - $complexNumber = PHPExcel_Calculation_Functions::flattenSingleValue($complexNumber); - - $parsedComplex = self::parseComplex($complexNumber); - - if (($parsedComplex['real'] == 0.0) && ($parsedComplex['imaginary'] == 0.0)) { - return '1'; - } - - $e = exp($parsedComplex['real']); - $eX = $e * cos($parsedComplex['imaginary']); - $eY = $e * sin($parsedComplex['imaginary']); - - if ($parsedComplex['suffix'] == '') { - return self::COMPLEX($eX, $eY); - } else { - return self::COMPLEX($eX, $eY, $parsedComplex['suffix']); - } - } - - - /** - * IMPOWER - * - * Returns a complex number in x + yi or x + yj text format raised to a power. - * - * Excel Function: - * IMPOWER(complexNumber,realNumber) - * - * @param string $complexNumber The complex number you want to raise to a power. - * @param float $realNumber The power to which you want to raise the complex number. - * @return string - */ - public static function IMPOWER($complexNumber, $realNumber) - { - $complexNumber = PHPExcel_Calculation_Functions::flattenSingleValue($complexNumber); - $realNumber = PHPExcel_Calculation_Functions::flattenSingleValue($realNumber); - - if (!is_numeric($realNumber)) { - return PHPExcel_Calculation_Functions::VALUE(); - } - - $parsedComplex = self::parseComplex($complexNumber); - - $r = sqrt(($parsedComplex['real'] * $parsedComplex['real']) + ($parsedComplex['imaginary'] * $parsedComplex['imaginary'])); - $rPower = pow($r, $realNumber); - $theta = self::IMARGUMENT($complexNumber) * $realNumber; - if ($theta == 0) { - return 1; - } elseif ($parsedComplex['imaginary'] == 0.0) { - return self::COMPLEX($rPower * cos($theta), $rPower * sin($theta), $parsedComplex['suffix']); - } else { - return self::COMPLEX($rPower * cos($theta), $rPower * sin($theta), $parsedComplex['suffix']); - } - } - - - /** - * IMDIV - * - * Returns the quotient of two complex numbers in x + yi or x + yj text format. - * - * Excel Function: - * IMDIV(complexDividend,complexDivisor) - * - * @param string $complexDividend The complex numerator or dividend. - * @param string $complexDivisor The complex denominator or divisor. - * @return string - */ - public static function IMDIV($complexDividend, $complexDivisor) - { - $complexDividend = PHPExcel_Calculation_Functions::flattenSingleValue($complexDividend); - $complexDivisor = PHPExcel_Calculation_Functions::flattenSingleValue($complexDivisor); - - $parsedComplexDividend = self::parseComplex($complexDividend); - $parsedComplexDivisor = self::parseComplex($complexDivisor); - - if (($parsedComplexDividend['suffix'] != '') && ($parsedComplexDivisor['suffix'] != '') && - ($parsedComplexDividend['suffix'] != $parsedComplexDivisor['suffix'])) { - return PHPExcel_Calculation_Functions::NaN(); - } - if (($parsedComplexDividend['suffix'] != '') && ($parsedComplexDivisor['suffix'] == '')) { - $parsedComplexDivisor['suffix'] = $parsedComplexDividend['suffix']; - } - - $d1 = ($parsedComplexDividend['real'] * $parsedComplexDivisor['real']) + ($parsedComplexDividend['imaginary'] * $parsedComplexDivisor['imaginary']); - $d2 = ($parsedComplexDividend['imaginary'] * $parsedComplexDivisor['real']) - ($parsedComplexDividend['real'] * $parsedComplexDivisor['imaginary']); - $d3 = ($parsedComplexDivisor['real'] * $parsedComplexDivisor['real']) + ($parsedComplexDivisor['imaginary'] * $parsedComplexDivisor['imaginary']); - - $r = $d1 / $d3; - $i = $d2 / $d3; - - if ($i > 0.0) { - return self::cleanComplex($r.'+'.$i.$parsedComplexDivisor['suffix']); - } elseif ($i < 0.0) { - return self::cleanComplex($r.$i.$parsedComplexDivisor['suffix']); - } else { - return $r; - } - } - - - /** - * IMSUB - * - * Returns the difference of two complex numbers in x + yi or x + yj text format. - * - * Excel Function: - * IMSUB(complexNumber1,complexNumber2) - * - * @param string $complexNumber1 The complex number from which to subtract complexNumber2. - * @param string $complexNumber2 The complex number to subtract from complexNumber1. - * @return string - */ - public static function IMSUB($complexNumber1, $complexNumber2) - { - $complexNumber1 = PHPExcel_Calculation_Functions::flattenSingleValue($complexNumber1); - $complexNumber2 = PHPExcel_Calculation_Functions::flattenSingleValue($complexNumber2); - - $parsedComplex1 = self::parseComplex($complexNumber1); - $parsedComplex2 = self::parseComplex($complexNumber2); - - if ((($parsedComplex1['suffix'] != '') && ($parsedComplex2['suffix'] != '')) && - ($parsedComplex1['suffix'] != $parsedComplex2['suffix'])) { - return PHPExcel_Calculation_Functions::NaN(); - } elseif (($parsedComplex1['suffix'] == '') && ($parsedComplex2['suffix'] != '')) { - $parsedComplex1['suffix'] = $parsedComplex2['suffix']; - } - - $d1 = $parsedComplex1['real'] - $parsedComplex2['real']; - $d2 = $parsedComplex1['imaginary'] - $parsedComplex2['imaginary']; - - return self::COMPLEX($d1, $d2, $parsedComplex1['suffix']); - } - - - /** - * IMSUM - * - * Returns the sum of two or more complex numbers in x + yi or x + yj text format. - * - * Excel Function: - * IMSUM(complexNumber[,complexNumber[,...]]) - * - * @param string $complexNumber,... Series of complex numbers to add - * @return string - */ - public static function IMSUM() - { - // Return value - $returnValue = self::parseComplex('0'); - $activeSuffix = ''; - - // Loop through the arguments - $aArgs = PHPExcel_Calculation_Functions::flattenArray(func_get_args()); - foreach ($aArgs as $arg) { - $parsedComplex = self::parseComplex($arg); - - if ($activeSuffix == '') { - $activeSuffix = $parsedComplex['suffix']; - } elseif (($parsedComplex['suffix'] != '') && ($activeSuffix != $parsedComplex['suffix'])) { - return PHPExcel_Calculation_Functions::VALUE(); - } - - $returnValue['real'] += $parsedComplex['real']; - $returnValue['imaginary'] += $parsedComplex['imaginary']; - } - - if ($returnValue['imaginary'] == 0.0) { - $activeSuffix = ''; - } - return self::COMPLEX($returnValue['real'], $returnValue['imaginary'], $activeSuffix); - } - - - /** - * IMPRODUCT - * - * Returns the product of two or more complex numbers in x + yi or x + yj text format. - * - * Excel Function: - * IMPRODUCT(complexNumber[,complexNumber[,...]]) - * - * @param string $complexNumber,... Series of complex numbers to multiply - * @return string - */ - public static function IMPRODUCT() - { - // Return value - $returnValue = self::parseComplex('1'); - $activeSuffix = ''; - - // Loop through the arguments - $aArgs = PHPExcel_Calculation_Functions::flattenArray(func_get_args()); - foreach ($aArgs as $arg) { - $parsedComplex = self::parseComplex($arg); - - $workValue = $returnValue; - if (($parsedComplex['suffix'] != '') && ($activeSuffix == '')) { - $activeSuffix = $parsedComplex['suffix']; - } elseif (($parsedComplex['suffix'] != '') && ($activeSuffix != $parsedComplex['suffix'])) { - return PHPExcel_Calculation_Functions::NaN(); - } - $returnValue['real'] = ($workValue['real'] * $parsedComplex['real']) - ($workValue['imaginary'] * $parsedComplex['imaginary']); - $returnValue['imaginary'] = ($workValue['real'] * $parsedComplex['imaginary']) + ($workValue['imaginary'] * $parsedComplex['real']); - } - - if ($returnValue['imaginary'] == 0.0) { - $activeSuffix = ''; - } - return self::COMPLEX($returnValue['real'], $returnValue['imaginary'], $activeSuffix); - } - - - /** - * DELTA - * - * Testing whether two values are equal. Returns 1 if number1 = number2; returns 0 otherwise. - * Use this function to filter a set of values. For example, by summing several DELTA - * functions you calculate the count of equal pairs. This function is also known as the - * Kronecker Delta function. - * - * Excel Function: - * DELTA(a[,b]) - * - * @param float $a The first number. - * @param float $b The second number. If omitted, b is assumed to be zero. - * @return int - */ - public static function DELTA($a, $b = 0) - { - $a = PHPExcel_Calculation_Functions::flattenSingleValue($a); - $b = PHPExcel_Calculation_Functions::flattenSingleValue($b); - - return (int) ($a == $b); - } - - - /** - * GESTEP - * - * Excel Function: - * GESTEP(number[,step]) - * - * Returns 1 if number >= step; returns 0 (zero) otherwise - * Use this function to filter a set of values. For example, by summing several GESTEP - * functions you calculate the count of values that exceed a threshold. - * - * @param float $number The value to test against step. - * @param float $step The threshold value. - * If you omit a value for step, GESTEP uses zero. - * @return int - */ - public static function GESTEP($number, $step = 0) - { - $number = PHPExcel_Calculation_Functions::flattenSingleValue($number); - $step = PHPExcel_Calculation_Functions::flattenSingleValue($step); - - return (int) ($number >= $step); - } - - - // - // Private method to calculate the erf value - // - private static $twoSqrtPi = 1.128379167095512574; - - public static function erfVal($x) - { - if (abs($x) > 2.2) { - return 1 - self::erfcVal($x); - } - $sum = $term = $x; - $xsqr = ($x * $x); - $j = 1; - do { - $term *= $xsqr / $j; - $sum -= $term / (2 * $j + 1); - ++$j; - $term *= $xsqr / $j; - $sum += $term / (2 * $j + 1); - ++$j; - if ($sum == 0.0) { - break; - } - } while (abs($term / $sum) > PRECISION); - return self::$twoSqrtPi * $sum; - } - - - /** - * ERF - * - * Returns the error function integrated between the lower and upper bound arguments. - * - * Note: In Excel 2007 or earlier, if you input a negative value for the upper or lower bound arguments, - * the function would return a #NUM! error. However, in Excel 2010, the function algorithm was - * improved, so that it can now calculate the function for both positive and negative ranges. - * PHPExcel follows Excel 2010 behaviour, and accepts nagative arguments. - * - * Excel Function: - * ERF(lower[,upper]) - * - * @param float $lower lower bound for integrating ERF - * @param float $upper upper bound for integrating ERF. - * If omitted, ERF integrates between zero and lower_limit - * @return float - */ - public static function ERF($lower, $upper = null) - { - $lower = PHPExcel_Calculation_Functions::flattenSingleValue($lower); - $upper = PHPExcel_Calculation_Functions::flattenSingleValue($upper); - - if (is_numeric($lower)) { - if (is_null($upper)) { - return self::erfVal($lower); - } - if (is_numeric($upper)) { - return self::erfVal($upper) - self::erfVal($lower); - } - } - return PHPExcel_Calculation_Functions::VALUE(); - } - - - // - // Private method to calculate the erfc value - // - private static $oneSqrtPi = 0.564189583547756287; - - private static function erfcVal($x) - { - if (abs($x) < 2.2) { - return 1 - self::erfVal($x); - } - if ($x < 0) { - return 2 - self::ERFC(-$x); - } - $a = $n = 1; - $b = $c = $x; - $d = ($x * $x) + 0.5; - $q1 = $q2 = $b / $d; - $t = 0; - do { - $t = $a * $n + $b * $x; - $a = $b; - $b = $t; - $t = $c * $n + $d * $x; - $c = $d; - $d = $t; - $n += 0.5; - $q1 = $q2; - $q2 = $b / $d; - } while ((abs($q1 - $q2) / $q2) > PRECISION); - return self::$oneSqrtPi * exp(-$x * $x) * $q2; - } - - - /** - * ERFC - * - * Returns the complementary ERF function integrated between x and infinity - * - * Note: In Excel 2007 or earlier, if you input a negative value for the lower bound argument, - * the function would return a #NUM! error. However, in Excel 2010, the function algorithm was - * improved, so that it can now calculate the function for both positive and negative x values. - * PHPExcel follows Excel 2010 behaviour, and accepts nagative arguments. - * - * Excel Function: - * ERFC(x) - * - * @param float $x The lower bound for integrating ERFC - * @return float - */ - public static function ERFC($x) - { - $x = PHPExcel_Calculation_Functions::flattenSingleValue($x); - - if (is_numeric($x)) { - return self::erfcVal($x); - } - return PHPExcel_Calculation_Functions::VALUE(); - } - - - /** - * getConversionGroups - * Returns a list of the different conversion groups for UOM conversions - * - * @return array - */ - public static function getConversionGroups() - { - $conversionGroups = array(); - foreach (self::$conversionUnits as $conversionUnit) { - $conversionGroups[] = $conversionUnit['Group']; - } - return array_merge(array_unique($conversionGroups)); - } - - - /** - * getConversionGroupUnits - * Returns an array of units of measure, for a specified conversion group, or for all groups - * - * @param string $group The group whose units of measure you want to retrieve - * @return array - */ - public static function getConversionGroupUnits($group = null) - { - $conversionGroups = array(); - foreach (self::$conversionUnits as $conversionUnit => $conversionGroup) { - if ((is_null($group)) || ($conversionGroup['Group'] == $group)) { - $conversionGroups[$conversionGroup['Group']][] = $conversionUnit; - } - } - return $conversionGroups; - } - - - /** - * getConversionGroupUnitDetails - * - * @param string $group The group whose units of measure you want to retrieve - * @return array - */ - public static function getConversionGroupUnitDetails($group = null) - { - $conversionGroups = array(); - foreach (self::$conversionUnits as $conversionUnit => $conversionGroup) { - if ((is_null($group)) || ($conversionGroup['Group'] == $group)) { - $conversionGroups[$conversionGroup['Group']][] = array( - 'unit' => $conversionUnit, - 'description' => $conversionGroup['Unit Name'] - ); - } - } - return $conversionGroups; - } - - - /** - * getConversionMultipliers - * Returns an array of the Multiplier prefixes that can be used with Units of Measure in CONVERTUOM() - * - * @return array of mixed - */ - public static function getConversionMultipliers() - { - return self::$conversionMultipliers; - } - - - /** - * CONVERTUOM - * - * Converts a number from one measurement system to another. - * For example, CONVERT can translate a table of distances in miles to a table of distances - * in kilometers. - * - * Excel Function: - * CONVERT(value,fromUOM,toUOM) - * - * @param float $value The value in fromUOM to convert. - * @param string $fromUOM The units for value. - * @param string $toUOM The units for the result. - * - * @return float - */ - public static function CONVERTUOM($value, $fromUOM, $toUOM) - { - $value = PHPExcel_Calculation_Functions::flattenSingleValue($value); - $fromUOM = PHPExcel_Calculation_Functions::flattenSingleValue($fromUOM); - $toUOM = PHPExcel_Calculation_Functions::flattenSingleValue($toUOM); - - if (!is_numeric($value)) { - return PHPExcel_Calculation_Functions::VALUE(); - } - $fromMultiplier = 1.0; - if (isset(self::$conversionUnits[$fromUOM])) { - $unitGroup1 = self::$conversionUnits[$fromUOM]['Group']; - } else { - $fromMultiplier = substr($fromUOM, 0, 1); - $fromUOM = substr($fromUOM, 1); - if (isset(self::$conversionMultipliers[$fromMultiplier])) { - $fromMultiplier = self::$conversionMultipliers[$fromMultiplier]['multiplier']; - } else { - return PHPExcel_Calculation_Functions::NA(); - } - if ((isset(self::$conversionUnits[$fromUOM])) && (self::$conversionUnits[$fromUOM]['AllowPrefix'])) { - $unitGroup1 = self::$conversionUnits[$fromUOM]['Group']; - } else { - return PHPExcel_Calculation_Functions::NA(); - } - } - $value *= $fromMultiplier; - - $toMultiplier = 1.0; - if (isset(self::$conversionUnits[$toUOM])) { - $unitGroup2 = self::$conversionUnits[$toUOM]['Group']; - } else { - $toMultiplier = substr($toUOM, 0, 1); - $toUOM = substr($toUOM, 1); - if (isset(self::$conversionMultipliers[$toMultiplier])) { - $toMultiplier = self::$conversionMultipliers[$toMultiplier]['multiplier']; - } else { - return PHPExcel_Calculation_Functions::NA(); - } - if ((isset(self::$conversionUnits[$toUOM])) && (self::$conversionUnits[$toUOM]['AllowPrefix'])) { - $unitGroup2 = self::$conversionUnits[$toUOM]['Group']; - } else { - return PHPExcel_Calculation_Functions::NA(); - } - } - if ($unitGroup1 != $unitGroup2) { - return PHPExcel_Calculation_Functions::NA(); - } - - if (($fromUOM == $toUOM) && ($fromMultiplier == $toMultiplier)) { - // We've already factored $fromMultiplier into the value, so we need - // to reverse it again - return $value / $fromMultiplier; - } elseif ($unitGroup1 == 'Temperature') { - if (($fromUOM == 'F') || ($fromUOM == 'fah')) { - if (($toUOM == 'F') || ($toUOM == 'fah')) { - return $value; - } else { - $value = (($value - 32) / 1.8); - if (($toUOM == 'K') || ($toUOM == 'kel')) { - $value += 273.15; - } - return $value; - } - } elseif ((($fromUOM == 'K') || ($fromUOM == 'kel')) && - (($toUOM == 'K') || ($toUOM == 'kel'))) { - return $value; - } elseif ((($fromUOM == 'C') || ($fromUOM == 'cel')) && - (($toUOM == 'C') || ($toUOM == 'cel'))) { - return $value; - } - if (($toUOM == 'F') || ($toUOM == 'fah')) { - if (($fromUOM == 'K') || ($fromUOM == 'kel')) { - $value -= 273.15; - } - return ($value * 1.8) + 32; - } - if (($toUOM == 'C') || ($toUOM == 'cel')) { - return $value - 273.15; - } - return $value + 273.15; - } - return ($value * self::$unitConversions[$unitGroup1][$fromUOM][$toUOM]) / $toMultiplier; - } -} diff --git a/Utils/PHPExcel/Calculation/Exception.php b/Utils/PHPExcel/Calculation/Exception.php deleted file mode 100644 index 52d73fc..0000000 --- a/Utils/PHPExcel/Calculation/Exception.php +++ /dev/null @@ -1,46 +0,0 @@ -line = $line; - $e->file = $file; - throw $e; - } -} diff --git a/Utils/PHPExcel/Calculation/ExceptionHandler.php b/Utils/PHPExcel/Calculation/ExceptionHandler.php deleted file mode 100644 index 4cb0a68..0000000 --- a/Utils/PHPExcel/Calculation/ExceptionHandler.php +++ /dev/null @@ -1,45 +0,0 @@ -format('d') == $testDate->format('t')); - } - - - /** - * isFirstDayOfMonth - * - * Returns a boolean TRUE/FALSE indicating if this date is the first date of the month - * - * @param DateTime $testDate The date for testing - * @return boolean - */ - private static function isFirstDayOfMonth($testDate) - { - return ($testDate->format('d') == 1); - } - - - private static function couponFirstPeriodDate($settlement, $maturity, $frequency, $next) - { - $months = 12 / $frequency; - - $result = PHPExcel_Shared_Date::ExcelToPHPObject($maturity); - $eom = self::isLastDayOfMonth($result); - - while ($settlement < PHPExcel_Shared_Date::PHPToExcel($result)) { - $result->modify('-'.$months.' months'); - } - if ($next) { - $result->modify('+'.$months.' months'); - } - - if ($eom) { - $result->modify('-1 day'); - } - - return PHPExcel_Shared_Date::PHPToExcel($result); - } - - - private static function isValidFrequency($frequency) - { - if (($frequency == 1) || ($frequency == 2) || ($frequency == 4)) { - return true; - } - if ((PHPExcel_Calculation_Functions::getCompatibilityMode() == PHPExcel_Calculation_Functions::COMPATIBILITY_GNUMERIC) && - (($frequency == 6) || ($frequency == 12))) { - return true; - } - return false; - } - - - /** - * daysPerYear - * - * Returns the number of days in a specified year, as defined by the "basis" value - * - * @param integer $year The year against which we're testing - * @param integer $basis The type of day count: - * 0 or omitted US (NASD) 360 - * 1 Actual (365 or 366 in a leap year) - * 2 360 - * 3 365 - * 4 European 360 - * @return integer - */ - private static function daysPerYear($year, $basis = 0) - { - switch ($basis) { - case 0: - case 2: - case 4: - $daysPerYear = 360; - break; - case 3: - $daysPerYear = 365; - break; - case 1: - $daysPerYear = (PHPExcel_Calculation_DateTime::isLeapYear($year)) ? 366 : 365; - break; - default: - return PHPExcel_Calculation_Functions::NaN(); - } - return $daysPerYear; - } - - - private static function interestAndPrincipal($rate = 0, $per = 0, $nper = 0, $pv = 0, $fv = 0, $type = 0) - { - $pmt = self::PMT($rate, $nper, $pv, $fv, $type); - $capital = $pv; - for ($i = 1; $i<= $per; ++$i) { - $interest = ($type && $i == 1) ? 0 : -$capital * $rate; - $principal = $pmt - $interest; - $capital += $principal; - } - return array($interest, $principal); - } - - - /** - * ACCRINT - * - * Returns the accrued interest for a security that pays periodic interest. - * - * Excel Function: - * ACCRINT(issue,firstinterest,settlement,rate,par,frequency[,basis]) - * - * @access public - * @category Financial Functions - * @param mixed $issue The security's issue date. - * @param mixed $firstinterest The security's first interest date. - * @param mixed $settlement The security's settlement date. - * The security settlement date is the date after the issue date - * when the security is traded to the buyer. - * @param float $rate The security's annual coupon rate. - * @param float $par The security's par value. - * If you omit par, ACCRINT uses $1,000. - * @param integer $frequency the number of coupon payments per year. - * Valid frequency values are: - * 1 Annual - * 2 Semi-Annual - * 4 Quarterly - * If working in Gnumeric Mode, the following frequency options are - * also available - * 6 Bimonthly - * 12 Monthly - * @param integer $basis The type of day count to use. - * 0 or omitted US (NASD) 30/360 - * 1 Actual/actual - * 2 Actual/360 - * 3 Actual/365 - * 4 European 30/360 - * @return float - */ - public static function ACCRINT($issue, $firstinterest, $settlement, $rate, $par = 1000, $frequency = 1, $basis = 0) - { - $issue = PHPExcel_Calculation_Functions::flattenSingleValue($issue); - $firstinterest = PHPExcel_Calculation_Functions::flattenSingleValue($firstinterest); - $settlement = PHPExcel_Calculation_Functions::flattenSingleValue($settlement); - $rate = PHPExcel_Calculation_Functions::flattenSingleValue($rate); - $par = (is_null($par)) ? 1000 : PHPExcel_Calculation_Functions::flattenSingleValue($par); - $frequency = (is_null($frequency)) ? 1 : PHPExcel_Calculation_Functions::flattenSingleValue($frequency); - $basis = (is_null($basis)) ? 0 : PHPExcel_Calculation_Functions::flattenSingleValue($basis); - - // Validate - if ((is_numeric($rate)) && (is_numeric($par))) { - $rate = (float) $rate; - $par = (float) $par; - if (($rate <= 0) || ($par <= 0)) { - return PHPExcel_Calculation_Functions::NaN(); - } - $daysBetweenIssueAndSettlement = PHPExcel_Calculation_DateTime::YEARFRAC($issue, $settlement, $basis); - if (!is_numeric($daysBetweenIssueAndSettlement)) { - // return date error - return $daysBetweenIssueAndSettlement; - } - - return $par * $rate * $daysBetweenIssueAndSettlement; - } - return PHPExcel_Calculation_Functions::VALUE(); - } - - - /** - * ACCRINTM - * - * Returns the accrued interest for a security that pays interest at maturity. - * - * Excel Function: - * ACCRINTM(issue,settlement,rate[,par[,basis]]) - * - * @access public - * @category Financial Functions - * @param mixed issue The security's issue date. - * @param mixed settlement The security's settlement (or maturity) date. - * @param float rate The security's annual coupon rate. - * @param float par The security's par value. - * If you omit par, ACCRINT uses $1,000. - * @param integer basis The type of day count to use. - * 0 or omitted US (NASD) 30/360 - * 1 Actual/actual - * 2 Actual/360 - * 3 Actual/365 - * 4 European 30/360 - * @return float - */ - public static function ACCRINTM($issue, $settlement, $rate, $par = 1000, $basis = 0) - { - $issue = PHPExcel_Calculation_Functions::flattenSingleValue($issue); - $settlement = PHPExcel_Calculation_Functions::flattenSingleValue($settlement); - $rate = PHPExcel_Calculation_Functions::flattenSingleValue($rate); - $par = (is_null($par)) ? 1000 : PHPExcel_Calculation_Functions::flattenSingleValue($par); - $basis = (is_null($basis)) ? 0 : PHPExcel_Calculation_Functions::flattenSingleValue($basis); - - // Validate - if ((is_numeric($rate)) && (is_numeric($par))) { - $rate = (float) $rate; - $par = (float) $par; - if (($rate <= 0) || ($par <= 0)) { - return PHPExcel_Calculation_Functions::NaN(); - } - $daysBetweenIssueAndSettlement = PHPExcel_Calculation_DateTime::YEARFRAC($issue, $settlement, $basis); - if (!is_numeric($daysBetweenIssueAndSettlement)) { - // return date error - return $daysBetweenIssueAndSettlement; - } - return $par * $rate * $daysBetweenIssueAndSettlement; - } - return PHPExcel_Calculation_Functions::VALUE(); - } - - - /** - * AMORDEGRC - * - * Returns the depreciation for each accounting period. - * This function is provided for the French accounting system. If an asset is purchased in - * the middle of the accounting period, the prorated depreciation is taken into account. - * The function is similar to AMORLINC, except that a depreciation coefficient is applied in - * the calculation depending on the life of the assets. - * This function will return the depreciation until the last period of the life of the assets - * or until the cumulated value of depreciation is greater than the cost of the assets minus - * the salvage value. - * - * Excel Function: - * AMORDEGRC(cost,purchased,firstPeriod,salvage,period,rate[,basis]) - * - * @access public - * @category Financial Functions - * @param float cost The cost of the asset. - * @param mixed purchased Date of the purchase of the asset. - * @param mixed firstPeriod Date of the end of the first period. - * @param mixed salvage The salvage value at the end of the life of the asset. - * @param float period The period. - * @param float rate Rate of depreciation. - * @param integer basis The type of day count to use. - * 0 or omitted US (NASD) 30/360 - * 1 Actual/actual - * 2 Actual/360 - * 3 Actual/365 - * 4 European 30/360 - * @return float - */ - public static function AMORDEGRC($cost, $purchased, $firstPeriod, $salvage, $period, $rate, $basis = 0) - { - $cost = PHPExcel_Calculation_Functions::flattenSingleValue($cost); - $purchased = PHPExcel_Calculation_Functions::flattenSingleValue($purchased); - $firstPeriod = PHPExcel_Calculation_Functions::flattenSingleValue($firstPeriod); - $salvage = PHPExcel_Calculation_Functions::flattenSingleValue($salvage); - $period = floor(PHPExcel_Calculation_Functions::flattenSingleValue($period)); - $rate = PHPExcel_Calculation_Functions::flattenSingleValue($rate); - $basis = (is_null($basis)) ? 0 : (int) PHPExcel_Calculation_Functions::flattenSingleValue($basis); - - // The depreciation coefficients are: - // Life of assets (1/rate) Depreciation coefficient - // Less than 3 years 1 - // Between 3 and 4 years 1.5 - // Between 5 and 6 years 2 - // More than 6 years 2.5 - $fUsePer = 1.0 / $rate; - if ($fUsePer < 3.0) { - $amortiseCoeff = 1.0; - } elseif ($fUsePer < 5.0) { - $amortiseCoeff = 1.5; - } elseif ($fUsePer <= 6.0) { - $amortiseCoeff = 2.0; - } else { - $amortiseCoeff = 2.5; - } - - $rate *= $amortiseCoeff; - $fNRate = round(PHPExcel_Calculation_DateTime::YEARFRAC($purchased, $firstPeriod, $basis) * $rate * $cost, 0); - $cost -= $fNRate; - $fRest = $cost - $salvage; - - for ($n = 0; $n < $period; ++$n) { - $fNRate = round($rate * $cost, 0); - $fRest -= $fNRate; - - if ($fRest < 0.0) { - switch ($period - $n) { - case 0: - case 1: - return round($cost * 0.5, 0); - default: - return 0.0; - } - } - $cost -= $fNRate; - } - return $fNRate; - } - - - /** - * AMORLINC - * - * Returns the depreciation for each accounting period. - * This function is provided for the French accounting system. If an asset is purchased in - * the middle of the accounting period, the prorated depreciation is taken into account. - * - * Excel Function: - * AMORLINC(cost,purchased,firstPeriod,salvage,period,rate[,basis]) - * - * @access public - * @category Financial Functions - * @param float cost The cost of the asset. - * @param mixed purchased Date of the purchase of the asset. - * @param mixed firstPeriod Date of the end of the first period. - * @param mixed salvage The salvage value at the end of the life of the asset. - * @param float period The period. - * @param float rate Rate of depreciation. - * @param integer basis The type of day count to use. - * 0 or omitted US (NASD) 30/360 - * 1 Actual/actual - * 2 Actual/360 - * 3 Actual/365 - * 4 European 30/360 - * @return float - */ - public static function AMORLINC($cost, $purchased, $firstPeriod, $salvage, $period, $rate, $basis = 0) - { - $cost = PHPExcel_Calculation_Functions::flattenSingleValue($cost); - $purchased = PHPExcel_Calculation_Functions::flattenSingleValue($purchased); - $firstPeriod = PHPExcel_Calculation_Functions::flattenSingleValue($firstPeriod); - $salvage = PHPExcel_Calculation_Functions::flattenSingleValue($salvage); - $period = PHPExcel_Calculation_Functions::flattenSingleValue($period); - $rate = PHPExcel_Calculation_Functions::flattenSingleValue($rate); - $basis = (is_null($basis)) ? 0 : (int) PHPExcel_Calculation_Functions::flattenSingleValue($basis); - - $fOneRate = $cost * $rate; - $fCostDelta = $cost - $salvage; - // Note, quirky variation for leap years on the YEARFRAC for this function - $purchasedYear = PHPExcel_Calculation_DateTime::YEAR($purchased); - $yearFrac = PHPExcel_Calculation_DateTime::YEARFRAC($purchased, $firstPeriod, $basis); - - if (($basis == 1) && ($yearFrac < 1) && (PHPExcel_Calculation_DateTime::isLeapYear($purchasedYear))) { - $yearFrac *= 365 / 366; - } - - $f0Rate = $yearFrac * $rate * $cost; - $nNumOfFullPeriods = intval(($cost - $salvage - $f0Rate) / $fOneRate); - - if ($period == 0) { - return $f0Rate; - } elseif ($period <= $nNumOfFullPeriods) { - return $fOneRate; - } elseif ($period == ($nNumOfFullPeriods + 1)) { - return ($fCostDelta - $fOneRate * $nNumOfFullPeriods - $f0Rate); - } else { - return 0.0; - } - } - - - /** - * COUPDAYBS - * - * Returns the number of days from the beginning of the coupon period to the settlement date. - * - * Excel Function: - * COUPDAYBS(settlement,maturity,frequency[,basis]) - * - * @access public - * @category Financial Functions - * @param mixed settlement The security's settlement date. - * The security settlement date is the date after the issue - * date when the security is traded to the buyer. - * @param mixed maturity The security's maturity date. - * The maturity date is the date when the security expires. - * @param mixed frequency the number of coupon payments per year. - * Valid frequency values are: - * 1 Annual - * 2 Semi-Annual - * 4 Quarterly - * If working in Gnumeric Mode, the following frequency options are - * also available - * 6 Bimonthly - * 12 Monthly - * @param integer basis The type of day count to use. - * 0 or omitted US (NASD) 30/360 - * 1 Actual/actual - * 2 Actual/360 - * 3 Actual/365 - * 4 European 30/360 - * @return float - */ - public static function COUPDAYBS($settlement, $maturity, $frequency, $basis = 0) - { - $settlement = PHPExcel_Calculation_Functions::flattenSingleValue($settlement); - $maturity = PHPExcel_Calculation_Functions::flattenSingleValue($maturity); - $frequency = (int) PHPExcel_Calculation_Functions::flattenSingleValue($frequency); - $basis = (is_null($basis)) ? 0 : (int) PHPExcel_Calculation_Functions::flattenSingleValue($basis); - - if (is_string($settlement = PHPExcel_Calculation_DateTime::getDateValue($settlement))) { - return PHPExcel_Calculation_Functions::VALUE(); - } - if (is_string($maturity = PHPExcel_Calculation_DateTime::getDateValue($maturity))) { - return PHPExcel_Calculation_Functions::VALUE(); - } - - if (($settlement > $maturity) || - (!self::isValidFrequency($frequency)) || - (($basis < 0) || ($basis > 4))) { - return PHPExcel_Calculation_Functions::NaN(); - } - - $daysPerYear = self::daysPerYear(PHPExcel_Calculation_DateTime::YEAR($settlement), $basis); - $prev = self::couponFirstPeriodDate($settlement, $maturity, $frequency, false); - - return PHPExcel_Calculation_DateTime::YEARFRAC($prev, $settlement, $basis) * $daysPerYear; - } - - - /** - * COUPDAYS - * - * Returns the number of days in the coupon period that contains the settlement date. - * - * Excel Function: - * COUPDAYS(settlement,maturity,frequency[,basis]) - * - * @access public - * @category Financial Functions - * @param mixed settlement The security's settlement date. - * The security settlement date is the date after the issue - * date when the security is traded to the buyer. - * @param mixed maturity The security's maturity date. - * The maturity date is the date when the security expires. - * @param mixed frequency the number of coupon payments per year. - * Valid frequency values are: - * 1 Annual - * 2 Semi-Annual - * 4 Quarterly - * If working in Gnumeric Mode, the following frequency options are - * also available - * 6 Bimonthly - * 12 Monthly - * @param integer basis The type of day count to use. - * 0 or omitted US (NASD) 30/360 - * 1 Actual/actual - * 2 Actual/360 - * 3 Actual/365 - * 4 European 30/360 - * @return float - */ - public static function COUPDAYS($settlement, $maturity, $frequency, $basis = 0) - { - $settlement = PHPExcel_Calculation_Functions::flattenSingleValue($settlement); - $maturity = PHPExcel_Calculation_Functions::flattenSingleValue($maturity); - $frequency = (int) PHPExcel_Calculation_Functions::flattenSingleValue($frequency); - $basis = (is_null($basis)) ? 0 : (int) PHPExcel_Calculation_Functions::flattenSingleValue($basis); - - if (is_string($settlement = PHPExcel_Calculation_DateTime::getDateValue($settlement))) { - return PHPExcel_Calculation_Functions::VALUE(); - } - if (is_string($maturity = PHPExcel_Calculation_DateTime::getDateValue($maturity))) { - return PHPExcel_Calculation_Functions::VALUE(); - } - - if (($settlement > $maturity) || - (!self::isValidFrequency($frequency)) || - (($basis < 0) || ($basis > 4))) { - return PHPExcel_Calculation_Functions::NaN(); - } - - switch ($basis) { - case 3: - // Actual/365 - return 365 / $frequency; - case 1: - // Actual/actual - if ($frequency == 1) { - $daysPerYear = self::daysPerYear(PHPExcel_Calculation_DateTime::YEAR($maturity), $basis); - return ($daysPerYear / $frequency); - } - $prev = self::couponFirstPeriodDate($settlement, $maturity, $frequency, false); - $next = self::couponFirstPeriodDate($settlement, $maturity, $frequency, true); - return ($next - $prev); - default: - // US (NASD) 30/360, Actual/360 or European 30/360 - return 360 / $frequency; - } - return PHPExcel_Calculation_Functions::VALUE(); - } - - - /** - * COUPDAYSNC - * - * Returns the number of days from the settlement date to the next coupon date. - * - * Excel Function: - * COUPDAYSNC(settlement,maturity,frequency[,basis]) - * - * @access public - * @category Financial Functions - * @param mixed settlement The security's settlement date. - * The security settlement date is the date after the issue - * date when the security is traded to the buyer. - * @param mixed maturity The security's maturity date. - * The maturity date is the date when the security expires. - * @param mixed frequency the number of coupon payments per year. - * Valid frequency values are: - * 1 Annual - * 2 Semi-Annual - * 4 Quarterly - * If working in Gnumeric Mode, the following frequency options are - * also available - * 6 Bimonthly - * 12 Monthly - * @param integer basis The type of day count to use. - * 0 or omitted US (NASD) 30/360 - * 1 Actual/actual - * 2 Actual/360 - * 3 Actual/365 - * 4 European 30/360 - * @return float - */ - public static function COUPDAYSNC($settlement, $maturity, $frequency, $basis = 0) - { - $settlement = PHPExcel_Calculation_Functions::flattenSingleValue($settlement); - $maturity = PHPExcel_Calculation_Functions::flattenSingleValue($maturity); - $frequency = (int) PHPExcel_Calculation_Functions::flattenSingleValue($frequency); - $basis = (is_null($basis)) ? 0 : (int) PHPExcel_Calculation_Functions::flattenSingleValue($basis); - - if (is_string($settlement = PHPExcel_Calculation_DateTime::getDateValue($settlement))) { - return PHPExcel_Calculation_Functions::VALUE(); - } - if (is_string($maturity = PHPExcel_Calculation_DateTime::getDateValue($maturity))) { - return PHPExcel_Calculation_Functions::VALUE(); - } - - if (($settlement > $maturity) || - (!self::isValidFrequency($frequency)) || - (($basis < 0) || ($basis > 4))) { - return PHPExcel_Calculation_Functions::NaN(); - } - - $daysPerYear = self::daysPerYear(PHPExcel_Calculation_DateTime::YEAR($settlement), $basis); - $next = self::couponFirstPeriodDate($settlement, $maturity, $frequency, true); - - return PHPExcel_Calculation_DateTime::YEARFRAC($settlement, $next, $basis) * $daysPerYear; - } - - - /** - * COUPNCD - * - * Returns the next coupon date after the settlement date. - * - * Excel Function: - * COUPNCD(settlement,maturity,frequency[,basis]) - * - * @access public - * @category Financial Functions - * @param mixed settlement The security's settlement date. - * The security settlement date is the date after the issue - * date when the security is traded to the buyer. - * @param mixed maturity The security's maturity date. - * The maturity date is the date when the security expires. - * @param mixed frequency the number of coupon payments per year. - * Valid frequency values are: - * 1 Annual - * 2 Semi-Annual - * 4 Quarterly - * If working in Gnumeric Mode, the following frequency options are - * also available - * 6 Bimonthly - * 12 Monthly - * @param integer basis The type of day count to use. - * 0 or omitted US (NASD) 30/360 - * 1 Actual/actual - * 2 Actual/360 - * 3 Actual/365 - * 4 European 30/360 - * @return mixed Excel date/time serial value, PHP date/time serial value or PHP date/time object, - * depending on the value of the ReturnDateType flag - */ - public static function COUPNCD($settlement, $maturity, $frequency, $basis = 0) - { - $settlement = PHPExcel_Calculation_Functions::flattenSingleValue($settlement); - $maturity = PHPExcel_Calculation_Functions::flattenSingleValue($maturity); - $frequency = (int) PHPExcel_Calculation_Functions::flattenSingleValue($frequency); - $basis = (is_null($basis)) ? 0 : (int) PHPExcel_Calculation_Functions::flattenSingleValue($basis); - - if (is_string($settlement = PHPExcel_Calculation_DateTime::getDateValue($settlement))) { - return PHPExcel_Calculation_Functions::VALUE(); - } - if (is_string($maturity = PHPExcel_Calculation_DateTime::getDateValue($maturity))) { - return PHPExcel_Calculation_Functions::VALUE(); - } - - if (($settlement > $maturity) || - (!self::isValidFrequency($frequency)) || - (($basis < 0) || ($basis > 4))) { - return PHPExcel_Calculation_Functions::NaN(); - } - - return self::couponFirstPeriodDate($settlement, $maturity, $frequency, true); - } - - - /** - * COUPNUM - * - * Returns the number of coupons payable between the settlement date and maturity date, - * rounded up to the nearest whole coupon. - * - * Excel Function: - * COUPNUM(settlement,maturity,frequency[,basis]) - * - * @access public - * @category Financial Functions - * @param mixed settlement The security's settlement date. - * The security settlement date is the date after the issue - * date when the security is traded to the buyer. - * @param mixed maturity The security's maturity date. - * The maturity date is the date when the security expires. - * @param mixed frequency the number of coupon payments per year. - * Valid frequency values are: - * 1 Annual - * 2 Semi-Annual - * 4 Quarterly - * If working in Gnumeric Mode, the following frequency options are - * also available - * 6 Bimonthly - * 12 Monthly - * @param integer basis The type of day count to use. - * 0 or omitted US (NASD) 30/360 - * 1 Actual/actual - * 2 Actual/360 - * 3 Actual/365 - * 4 European 30/360 - * @return integer - */ - public static function COUPNUM($settlement, $maturity, $frequency, $basis = 0) - { - $settlement = PHPExcel_Calculation_Functions::flattenSingleValue($settlement); - $maturity = PHPExcel_Calculation_Functions::flattenSingleValue($maturity); - $frequency = (int) PHPExcel_Calculation_Functions::flattenSingleValue($frequency); - $basis = (is_null($basis)) ? 0 : (int) PHPExcel_Calculation_Functions::flattenSingleValue($basis); - - if (is_string($settlement = PHPExcel_Calculation_DateTime::getDateValue($settlement))) { - return PHPExcel_Calculation_Functions::VALUE(); - } - if (is_string($maturity = PHPExcel_Calculation_DateTime::getDateValue($maturity))) { - return PHPExcel_Calculation_Functions::VALUE(); - } - - if (($settlement > $maturity) || - (!self::isValidFrequency($frequency)) || - (($basis < 0) || ($basis > 4))) { - return PHPExcel_Calculation_Functions::NaN(); - } - - $settlement = self::couponFirstPeriodDate($settlement, $maturity, $frequency, true); - $daysBetweenSettlementAndMaturity = PHPExcel_Calculation_DateTime::YEARFRAC($settlement, $maturity, $basis) * 365; - - switch ($frequency) { - case 1: // annual payments - return ceil($daysBetweenSettlementAndMaturity / 360); - case 2: // half-yearly - return ceil($daysBetweenSettlementAndMaturity / 180); - case 4: // quarterly - return ceil($daysBetweenSettlementAndMaturity / 90); - case 6: // bimonthly - return ceil($daysBetweenSettlementAndMaturity / 60); - case 12: // monthly - return ceil($daysBetweenSettlementAndMaturity / 30); - } - return PHPExcel_Calculation_Functions::VALUE(); - } - - - /** - * COUPPCD - * - * Returns the previous coupon date before the settlement date. - * - * Excel Function: - * COUPPCD(settlement,maturity,frequency[,basis]) - * - * @access public - * @category Financial Functions - * @param mixed settlement The security's settlement date. - * The security settlement date is the date after the issue - * date when the security is traded to the buyer. - * @param mixed maturity The security's maturity date. - * The maturity date is the date when the security expires. - * @param mixed frequency the number of coupon payments per year. - * Valid frequency values are: - * 1 Annual - * 2 Semi-Annual - * 4 Quarterly - * If working in Gnumeric Mode, the following frequency options are - * also available - * 6 Bimonthly - * 12 Monthly - * @param integer basis The type of day count to use. - * 0 or omitted US (NASD) 30/360 - * 1 Actual/actual - * 2 Actual/360 - * 3 Actual/365 - * 4 European 30/360 - * @return mixed Excel date/time serial value, PHP date/time serial value or PHP date/time object, - * depending on the value of the ReturnDateType flag - */ - public static function COUPPCD($settlement, $maturity, $frequency, $basis = 0) - { - $settlement = PHPExcel_Calculation_Functions::flattenSingleValue($settlement); - $maturity = PHPExcel_Calculation_Functions::flattenSingleValue($maturity); - $frequency = (int) PHPExcel_Calculation_Functions::flattenSingleValue($frequency); - $basis = (is_null($basis)) ? 0 : (int) PHPExcel_Calculation_Functions::flattenSingleValue($basis); - - if (is_string($settlement = PHPExcel_Calculation_DateTime::getDateValue($settlement))) { - return PHPExcel_Calculation_Functions::VALUE(); - } - if (is_string($maturity = PHPExcel_Calculation_DateTime::getDateValue($maturity))) { - return PHPExcel_Calculation_Functions::VALUE(); - } - - if (($settlement > $maturity) || - (!self::isValidFrequency($frequency)) || - (($basis < 0) || ($basis > 4))) { - return PHPExcel_Calculation_Functions::NaN(); - } - - return self::couponFirstPeriodDate($settlement, $maturity, $frequency, false); - } - - - /** - * CUMIPMT - * - * Returns the cumulative interest paid on a loan between the start and end periods. - * - * Excel Function: - * CUMIPMT(rate,nper,pv,start,end[,type]) - * - * @access public - * @category Financial Functions - * @param float $rate The Interest rate - * @param integer $nper The total number of payment periods - * @param float $pv Present Value - * @param integer $start The first period in the calculation. - * Payment periods are numbered beginning with 1. - * @param integer $end The last period in the calculation. - * @param integer $type A number 0 or 1 and indicates when payments are due: - * 0 or omitted At the end of the period. - * 1 At the beginning of the period. - * @return float - */ - public static function CUMIPMT($rate, $nper, $pv, $start, $end, $type = 0) - { - $rate = PHPExcel_Calculation_Functions::flattenSingleValue($rate); - $nper = (int) PHPExcel_Calculation_Functions::flattenSingleValue($nper); - $pv = PHPExcel_Calculation_Functions::flattenSingleValue($pv); - $start = (int) PHPExcel_Calculation_Functions::flattenSingleValue($start); - $end = (int) PHPExcel_Calculation_Functions::flattenSingleValue($end); - $type = (int) PHPExcel_Calculation_Functions::flattenSingleValue($type); - - // Validate parameters - if ($type != 0 && $type != 1) { - return PHPExcel_Calculation_Functions::NaN(); - } - if ($start < 1 || $start > $end) { - return PHPExcel_Calculation_Functions::VALUE(); - } - - // Calculate - $interest = 0; - for ($per = $start; $per <= $end; ++$per) { - $interest += self::IPMT($rate, $per, $nper, $pv, 0, $type); - } - - return $interest; - } - - - /** - * CUMPRINC - * - * Returns the cumulative principal paid on a loan between the start and end periods. - * - * Excel Function: - * CUMPRINC(rate,nper,pv,start,end[,type]) - * - * @access public - * @category Financial Functions - * @param float $rate The Interest rate - * @param integer $nper The total number of payment periods - * @param float $pv Present Value - * @param integer $start The first period in the calculation. - * Payment periods are numbered beginning with 1. - * @param integer $end The last period in the calculation. - * @param integer $type A number 0 or 1 and indicates when payments are due: - * 0 or omitted At the end of the period. - * 1 At the beginning of the period. - * @return float - */ - public static function CUMPRINC($rate, $nper, $pv, $start, $end, $type = 0) - { - $rate = PHPExcel_Calculation_Functions::flattenSingleValue($rate); - $nper = (int) PHPExcel_Calculation_Functions::flattenSingleValue($nper); - $pv = PHPExcel_Calculation_Functions::flattenSingleValue($pv); - $start = (int) PHPExcel_Calculation_Functions::flattenSingleValue($start); - $end = (int) PHPExcel_Calculation_Functions::flattenSingleValue($end); - $type = (int) PHPExcel_Calculation_Functions::flattenSingleValue($type); - - // Validate parameters - if ($type != 0 && $type != 1) { - return PHPExcel_Calculation_Functions::NaN(); - } - if ($start < 1 || $start > $end) { - return PHPExcel_Calculation_Functions::VALUE(); - } - - // Calculate - $principal = 0; - for ($per = $start; $per <= $end; ++$per) { - $principal += self::PPMT($rate, $per, $nper, $pv, 0, $type); - } - - return $principal; - } - - - /** - * DB - * - * Returns the depreciation of an asset for a specified period using the - * fixed-declining balance method. - * This form of depreciation is used if you want to get a higher depreciation value - * at the beginning of the depreciation (as opposed to linear depreciation). The - * depreciation value is reduced with every depreciation period by the depreciation - * already deducted from the initial cost. - * - * Excel Function: - * DB(cost,salvage,life,period[,month]) - * - * @access public - * @category Financial Functions - * @param float cost Initial cost of the asset. - * @param float salvage Value at the end of the depreciation. - * (Sometimes called the salvage value of the asset) - * @param integer life Number of periods over which the asset is depreciated. - * (Sometimes called the useful life of the asset) - * @param integer period The period for which you want to calculate the - * depreciation. Period must use the same units as life. - * @param integer month Number of months in the first year. If month is omitted, - * it defaults to 12. - * @return float - */ - public static function DB($cost, $salvage, $life, $period, $month = 12) - { - $cost = PHPExcel_Calculation_Functions::flattenSingleValue($cost); - $salvage = PHPExcel_Calculation_Functions::flattenSingleValue($salvage); - $life = PHPExcel_Calculation_Functions::flattenSingleValue($life); - $period = PHPExcel_Calculation_Functions::flattenSingleValue($period); - $month = PHPExcel_Calculation_Functions::flattenSingleValue($month); - - // Validate - if ((is_numeric($cost)) && (is_numeric($salvage)) && (is_numeric($life)) && (is_numeric($period)) && (is_numeric($month))) { - $cost = (float) $cost; - $salvage = (float) $salvage; - $life = (int) $life; - $period = (int) $period; - $month = (int) $month; - if ($cost == 0) { - return 0.0; - } elseif (($cost < 0) || (($salvage / $cost) < 0) || ($life <= 0) || ($period < 1) || ($month < 1)) { - return PHPExcel_Calculation_Functions::NaN(); - } - // Set Fixed Depreciation Rate - $fixedDepreciationRate = 1 - pow(($salvage / $cost), (1 / $life)); - $fixedDepreciationRate = round($fixedDepreciationRate, 3); - - // Loop through each period calculating the depreciation - $previousDepreciation = 0; - for ($per = 1; $per <= $period; ++$per) { - if ($per == 1) { - $depreciation = $cost * $fixedDepreciationRate * $month / 12; - } elseif ($per == ($life + 1)) { - $depreciation = ($cost - $previousDepreciation) * $fixedDepreciationRate * (12 - $month) / 12; - } else { - $depreciation = ($cost - $previousDepreciation) * $fixedDepreciationRate; - } - $previousDepreciation += $depreciation; - } - if (PHPExcel_Calculation_Functions::getCompatibilityMode() == PHPExcel_Calculation_Functions::COMPATIBILITY_GNUMERIC) { - $depreciation = round($depreciation, 2); - } - return $depreciation; - } - return PHPExcel_Calculation_Functions::VALUE(); - } - - - /** - * DDB - * - * Returns the depreciation of an asset for a specified period using the - * double-declining balance method or some other method you specify. - * - * Excel Function: - * DDB(cost,salvage,life,period[,factor]) - * - * @access public - * @category Financial Functions - * @param float cost Initial cost of the asset. - * @param float salvage Value at the end of the depreciation. - * (Sometimes called the salvage value of the asset) - * @param integer life Number of periods over which the asset is depreciated. - * (Sometimes called the useful life of the asset) - * @param integer period The period for which you want to calculate the - * depreciation. Period must use the same units as life. - * @param float factor The rate at which the balance declines. - * If factor is omitted, it is assumed to be 2 (the - * double-declining balance method). - * @return float - */ - public static function DDB($cost, $salvage, $life, $period, $factor = 2.0) - { - $cost = PHPExcel_Calculation_Functions::flattenSingleValue($cost); - $salvage = PHPExcel_Calculation_Functions::flattenSingleValue($salvage); - $life = PHPExcel_Calculation_Functions::flattenSingleValue($life); - $period = PHPExcel_Calculation_Functions::flattenSingleValue($period); - $factor = PHPExcel_Calculation_Functions::flattenSingleValue($factor); - - // Validate - if ((is_numeric($cost)) && (is_numeric($salvage)) && (is_numeric($life)) && (is_numeric($period)) && (is_numeric($factor))) { - $cost = (float) $cost; - $salvage = (float) $salvage; - $life = (int) $life; - $period = (int) $period; - $factor = (float) $factor; - if (($cost <= 0) || (($salvage / $cost) < 0) || ($life <= 0) || ($period < 1) || ($factor <= 0.0) || ($period > $life)) { - return PHPExcel_Calculation_Functions::NaN(); - } - // Set Fixed Depreciation Rate - $fixedDepreciationRate = 1 - pow(($salvage / $cost), (1 / $life)); - $fixedDepreciationRate = round($fixedDepreciationRate, 3); - - // Loop through each period calculating the depreciation - $previousDepreciation = 0; - for ($per = 1; $per <= $period; ++$per) { - $depreciation = min(($cost - $previousDepreciation) * ($factor / $life), ($cost - $salvage - $previousDepreciation)); - $previousDepreciation += $depreciation; - } - if (PHPExcel_Calculation_Functions::getCompatibilityMode() == PHPExcel_Calculation_Functions::COMPATIBILITY_GNUMERIC) { - $depreciation = round($depreciation, 2); - } - return $depreciation; - } - return PHPExcel_Calculation_Functions::VALUE(); - } - - - /** - * DISC - * - * Returns the discount rate for a security. - * - * Excel Function: - * DISC(settlement,maturity,price,redemption[,basis]) - * - * @access public - * @category Financial Functions - * @param mixed settlement The security's settlement date. - * The security settlement date is the date after the issue - * date when the security is traded to the buyer. - * @param mixed maturity The security's maturity date. - * The maturity date is the date when the security expires. - * @param integer price The security's price per $100 face value. - * @param integer redemption The security's redemption value per $100 face value. - * @param integer basis The type of day count to use. - * 0 or omitted US (NASD) 30/360 - * 1 Actual/actual - * 2 Actual/360 - * 3 Actual/365 - * 4 European 30/360 - * @return float - */ - public static function DISC($settlement, $maturity, $price, $redemption, $basis = 0) - { - $settlement = PHPExcel_Calculation_Functions::flattenSingleValue($settlement); - $maturity = PHPExcel_Calculation_Functions::flattenSingleValue($maturity); - $price = PHPExcel_Calculation_Functions::flattenSingleValue($price); - $redemption = PHPExcel_Calculation_Functions::flattenSingleValue($redemption); - $basis = PHPExcel_Calculation_Functions::flattenSingleValue($basis); - - // Validate - if ((is_numeric($price)) && (is_numeric($redemption)) && (is_numeric($basis))) { - $price = (float) $price; - $redemption = (float) $redemption; - $basis = (int) $basis; - if (($price <= 0) || ($redemption <= 0)) { - return PHPExcel_Calculation_Functions::NaN(); - } - $daysBetweenSettlementAndMaturity = PHPExcel_Calculation_DateTime::YEARFRAC($settlement, $maturity, $basis); - if (!is_numeric($daysBetweenSettlementAndMaturity)) { - // return date error - return $daysBetweenSettlementAndMaturity; - } - - return ((1 - $price / $redemption) / $daysBetweenSettlementAndMaturity); - } - return PHPExcel_Calculation_Functions::VALUE(); - } - - - /** - * DOLLARDE - * - * Converts a dollar price expressed as an integer part and a fraction - * part into a dollar price expressed as a decimal number. - * Fractional dollar numbers are sometimes used for security prices. - * - * Excel Function: - * DOLLARDE(fractional_dollar,fraction) - * - * @access public - * @category Financial Functions - * @param float $fractional_dollar Fractional Dollar - * @param integer $fraction Fraction - * @return float - */ - public static function DOLLARDE($fractional_dollar = null, $fraction = 0) - { - $fractional_dollar = PHPExcel_Calculation_Functions::flattenSingleValue($fractional_dollar); - $fraction = (int)PHPExcel_Calculation_Functions::flattenSingleValue($fraction); - - // Validate parameters - if (is_null($fractional_dollar) || $fraction < 0) { - return PHPExcel_Calculation_Functions::NaN(); - } - if ($fraction == 0) { - return PHPExcel_Calculation_Functions::DIV0(); - } - - $dollars = floor($fractional_dollar); - $cents = fmod($fractional_dollar, 1); - $cents /= $fraction; - $cents *= pow(10, ceil(log10($fraction))); - return $dollars + $cents; - } - - - /** - * DOLLARFR - * - * Converts a dollar price expressed as a decimal number into a dollar price - * expressed as a fraction. - * Fractional dollar numbers are sometimes used for security prices. - * - * Excel Function: - * DOLLARFR(decimal_dollar,fraction) - * - * @access public - * @category Financial Functions - * @param float $decimal_dollar Decimal Dollar - * @param integer $fraction Fraction - * @return float - */ - public static function DOLLARFR($decimal_dollar = null, $fraction = 0) - { - $decimal_dollar = PHPExcel_Calculation_Functions::flattenSingleValue($decimal_dollar); - $fraction = (int)PHPExcel_Calculation_Functions::flattenSingleValue($fraction); - - // Validate parameters - if (is_null($decimal_dollar) || $fraction < 0) { - return PHPExcel_Calculation_Functions::NaN(); - } - if ($fraction == 0) { - return PHPExcel_Calculation_Functions::DIV0(); - } - - $dollars = floor($decimal_dollar); - $cents = fmod($decimal_dollar, 1); - $cents *= $fraction; - $cents *= pow(10, -ceil(log10($fraction))); - return $dollars + $cents; - } - - - /** - * EFFECT - * - * Returns the effective interest rate given the nominal rate and the number of - * compounding payments per year. - * - * Excel Function: - * EFFECT(nominal_rate,npery) - * - * @access public - * @category Financial Functions - * @param float $nominal_rate Nominal interest rate - * @param integer $npery Number of compounding payments per year - * @return float - */ - public static function EFFECT($nominal_rate = 0, $npery = 0) - { - $nominal_rate = PHPExcel_Calculation_Functions::flattenSingleValue($nominal_rate); - $npery = (int)PHPExcel_Calculation_Functions::flattenSingleValue($npery); - - // Validate parameters - if ($nominal_rate <= 0 || $npery < 1) { - return PHPExcel_Calculation_Functions::NaN(); - } - - return pow((1 + $nominal_rate / $npery), $npery) - 1; - } - - - /** - * FV - * - * Returns the Future Value of a cash flow with constant payments and interest rate (annuities). - * - * Excel Function: - * FV(rate,nper,pmt[,pv[,type]]) - * - * @access public - * @category Financial Functions - * @param float $rate The interest rate per period - * @param int $nper Total number of payment periods in an annuity - * @param float $pmt The payment made each period: it cannot change over the - * life of the annuity. Typically, pmt contains principal - * and interest but no other fees or taxes. - * @param float $pv Present Value, or the lump-sum amount that a series of - * future payments is worth right now. - * @param integer $type A number 0 or 1 and indicates when payments are due: - * 0 or omitted At the end of the period. - * 1 At the beginning of the period. - * @return float - */ - public static function FV($rate = 0, $nper = 0, $pmt = 0, $pv = 0, $type = 0) - { - $rate = PHPExcel_Calculation_Functions::flattenSingleValue($rate); - $nper = PHPExcel_Calculation_Functions::flattenSingleValue($nper); - $pmt = PHPExcel_Calculation_Functions::flattenSingleValue($pmt); - $pv = PHPExcel_Calculation_Functions::flattenSingleValue($pv); - $type = PHPExcel_Calculation_Functions::flattenSingleValue($type); - - // Validate parameters - if ($type != 0 && $type != 1) { - return PHPExcel_Calculation_Functions::NaN(); - } - - // Calculate - if (!is_null($rate) && $rate != 0) { - return -$pv * pow(1 + $rate, $nper) - $pmt * (1 + $rate * $type) * (pow(1 + $rate, $nper) - 1) / $rate; - } - return -$pv - $pmt * $nper; - } - - - /** - * FVSCHEDULE - * - * Returns the future value of an initial principal after applying a series of compound interest rates. - * Use FVSCHEDULE to calculate the future value of an investment with a variable or adjustable rate. - * - * Excel Function: - * FVSCHEDULE(principal,schedule) - * - * @param float $principal The present value. - * @param float[] $schedule An array of interest rates to apply. - * @return float - */ - public static function FVSCHEDULE($principal, $schedule) - { - $principal = PHPExcel_Calculation_Functions::flattenSingleValue($principal); - $schedule = PHPExcel_Calculation_Functions::flattenArray($schedule); - - foreach ($schedule as $rate) { - $principal *= 1 + $rate; - } - - return $principal; - } - - - /** - * INTRATE - * - * Returns the interest rate for a fully invested security. - * - * Excel Function: - * INTRATE(settlement,maturity,investment,redemption[,basis]) - * - * @param mixed $settlement The security's settlement date. - * The security settlement date is the date after the issue date when the security is traded to the buyer. - * @param mixed $maturity The security's maturity date. - * The maturity date is the date when the security expires. - * @param integer $investment The amount invested in the security. - * @param integer $redemption The amount to be received at maturity. - * @param integer $basis The type of day count to use. - * 0 or omitted US (NASD) 30/360 - * 1 Actual/actual - * 2 Actual/360 - * 3 Actual/365 - * 4 European 30/360 - * @return float - */ - public static function INTRATE($settlement, $maturity, $investment, $redemption, $basis = 0) - { - $settlement = PHPExcel_Calculation_Functions::flattenSingleValue($settlement); - $maturity = PHPExcel_Calculation_Functions::flattenSingleValue($maturity); - $investment = PHPExcel_Calculation_Functions::flattenSingleValue($investment); - $redemption = PHPExcel_Calculation_Functions::flattenSingleValue($redemption); - $basis = PHPExcel_Calculation_Functions::flattenSingleValue($basis); - - // Validate - if ((is_numeric($investment)) && (is_numeric($redemption)) && (is_numeric($basis))) { - $investment = (float) $investment; - $redemption = (float) $redemption; - $basis = (int) $basis; - if (($investment <= 0) || ($redemption <= 0)) { - return PHPExcel_Calculation_Functions::NaN(); - } - $daysBetweenSettlementAndMaturity = PHPExcel_Calculation_DateTime::YEARFRAC($settlement, $maturity, $basis); - if (!is_numeric($daysBetweenSettlementAndMaturity)) { - // return date error - return $daysBetweenSettlementAndMaturity; - } - - return (($redemption / $investment) - 1) / ($daysBetweenSettlementAndMaturity); - } - return PHPExcel_Calculation_Functions::VALUE(); - } - - - /** - * IPMT - * - * Returns the interest payment for a given period for an investment based on periodic, constant payments and a constant interest rate. - * - * Excel Function: - * IPMT(rate,per,nper,pv[,fv][,type]) - * - * @param float $rate Interest rate per period - * @param int $per Period for which we want to find the interest - * @param int $nper Number of periods - * @param float $pv Present Value - * @param float $fv Future Value - * @param int $type Payment type: 0 = at the end of each period, 1 = at the beginning of each period - * @return float - */ - public static function IPMT($rate, $per, $nper, $pv, $fv = 0, $type = 0) - { - $rate = PHPExcel_Calculation_Functions::flattenSingleValue($rate); - $per = (int) PHPExcel_Calculation_Functions::flattenSingleValue($per); - $nper = (int) PHPExcel_Calculation_Functions::flattenSingleValue($nper); - $pv = PHPExcel_Calculation_Functions::flattenSingleValue($pv); - $fv = PHPExcel_Calculation_Functions::flattenSingleValue($fv); - $type = (int) PHPExcel_Calculation_Functions::flattenSingleValue($type); - - // Validate parameters - if ($type != 0 && $type != 1) { - return PHPExcel_Calculation_Functions::NaN(); - } - if ($per <= 0 || $per > $nper) { - return PHPExcel_Calculation_Functions::VALUE(); - } - - // Calculate - $interestAndPrincipal = self::interestAndPrincipal($rate, $per, $nper, $pv, $fv, $type); - return $interestAndPrincipal[0]; - } - - /** - * IRR - * - * Returns the internal rate of return for a series of cash flows represented by the numbers in values. - * These cash flows do not have to be even, as they would be for an annuity. However, the cash flows must occur - * at regular intervals, such as monthly or annually. The internal rate of return is the interest rate received - * for an investment consisting of payments (negative values) and income (positive values) that occur at regular - * periods. - * - * Excel Function: - * IRR(values[,guess]) - * - * @param float[] $values An array or a reference to cells that contain numbers for which you want - * to calculate the internal rate of return. - * Values must contain at least one positive value and one negative value to - * calculate the internal rate of return. - * @param float $guess A number that you guess is close to the result of IRR - * @return float - */ - public static function IRR($values, $guess = 0.1) - { - if (!is_array($values)) { - return PHPExcel_Calculation_Functions::VALUE(); - } - $values = PHPExcel_Calculation_Functions::flattenArray($values); - $guess = PHPExcel_Calculation_Functions::flattenSingleValue($guess); - - // create an initial range, with a root somewhere between 0 and guess - $x1 = 0.0; - $x2 = $guess; - $f1 = self::NPV($x1, $values); - $f2 = self::NPV($x2, $values); - for ($i = 0; $i < FINANCIAL_MAX_ITERATIONS; ++$i) { - if (($f1 * $f2) < 0.0) { - break; - } - if (abs($f1) < abs($f2)) { - $f1 = self::NPV($x1 += 1.6 * ($x1 - $x2), $values); - } else { - $f2 = self::NPV($x2 += 1.6 * ($x2 - $x1), $values); - } - } - if (($f1 * $f2) > 0.0) { - return PHPExcel_Calculation_Functions::VALUE(); - } - - $f = self::NPV($x1, $values); - if ($f < 0.0) { - $rtb = $x1; - $dx = $x2 - $x1; - } else { - $rtb = $x2; - $dx = $x1 - $x2; - } - - for ($i = 0; $i < FINANCIAL_MAX_ITERATIONS; ++$i) { - $dx *= 0.5; - $x_mid = $rtb + $dx; - $f_mid = self::NPV($x_mid, $values); - if ($f_mid <= 0.0) { - $rtb = $x_mid; - } - if ((abs($f_mid) < FINANCIAL_PRECISION) || (abs($dx) < FINANCIAL_PRECISION)) { - return $x_mid; - } - } - return PHPExcel_Calculation_Functions::VALUE(); - } - - - /** - * ISPMT - * - * Returns the interest payment for an investment based on an interest rate and a constant payment schedule. - * - * Excel Function: - * =ISPMT(interest_rate, period, number_payments, PV) - * - * interest_rate is the interest rate for the investment - * - * period is the period to calculate the interest rate. It must be betweeen 1 and number_payments. - * - * number_payments is the number of payments for the annuity - * - * PV is the loan amount or present value of the payments - */ - public static function ISPMT() - { - // Return value - $returnValue = 0; - - // Get the parameters - $aArgs = PHPExcel_Calculation_Functions::flattenArray(func_get_args()); - $interestRate = array_shift($aArgs); - $period = array_shift($aArgs); - $numberPeriods = array_shift($aArgs); - $principleRemaining = array_shift($aArgs); - - // Calculate - $principlePayment = ($principleRemaining * 1.0) / ($numberPeriods * 1.0); - for ($i=0; $i <= $period; ++$i) { - $returnValue = $interestRate * $principleRemaining * -1; - $principleRemaining -= $principlePayment; - // principle needs to be 0 after the last payment, don't let floating point screw it up - if ($i == $numberPeriods) { - $returnValue = 0; - } - } - return($returnValue); - } - - - /** - * MIRR - * - * Returns the modified internal rate of return for a series of periodic cash flows. MIRR considers both - * the cost of the investment and the interest received on reinvestment of cash. - * - * Excel Function: - * MIRR(values,finance_rate, reinvestment_rate) - * - * @param float[] $values An array or a reference to cells that contain a series of payments and - * income occurring at regular intervals. - * Payments are negative value, income is positive values. - * @param float $finance_rate The interest rate you pay on the money used in the cash flows - * @param float $reinvestment_rate The interest rate you receive on the cash flows as you reinvest them - * @return float - */ - public static function MIRR($values, $finance_rate, $reinvestment_rate) - { - if (!is_array($values)) { - return PHPExcel_Calculation_Functions::VALUE(); - } - $values = PHPExcel_Calculation_Functions::flattenArray($values); - $finance_rate = PHPExcel_Calculation_Functions::flattenSingleValue($finance_rate); - $reinvestment_rate = PHPExcel_Calculation_Functions::flattenSingleValue($reinvestment_rate); - $n = count($values); - - $rr = 1.0 + $reinvestment_rate; - $fr = 1.0 + $finance_rate; - - $npv_pos = $npv_neg = 0.0; - foreach ($values as $i => $v) { - if ($v >= 0) { - $npv_pos += $v / pow($rr, $i); - } else { - $npv_neg += $v / pow($fr, $i); - } - } - - if (($npv_neg == 0) || ($npv_pos == 0) || ($reinvestment_rate <= -1)) { - return PHPExcel_Calculation_Functions::VALUE(); - } - - $mirr = pow((-$npv_pos * pow($rr, $n)) - / ($npv_neg * ($rr)), (1.0 / ($n - 1))) - 1.0; - - return (is_finite($mirr) ? $mirr : PHPExcel_Calculation_Functions::VALUE()); - } - - - /** - * NOMINAL - * - * Returns the nominal interest rate given the effective rate and the number of compounding payments per year. - * - * @param float $effect_rate Effective interest rate - * @param int $npery Number of compounding payments per year - * @return float - */ - public static function NOMINAL($effect_rate = 0, $npery = 0) - { - $effect_rate = PHPExcel_Calculation_Functions::flattenSingleValue($effect_rate); - $npery = (int)PHPExcel_Calculation_Functions::flattenSingleValue($npery); - - // Validate parameters - if ($effect_rate <= 0 || $npery < 1) { - return PHPExcel_Calculation_Functions::NaN(); - } - - // Calculate - return $npery * (pow($effect_rate + 1, 1 / $npery) - 1); - } - - - /** - * NPER - * - * Returns the number of periods for a cash flow with constant periodic payments (annuities), and interest rate. - * - * @param float $rate Interest rate per period - * @param int $pmt Periodic payment (annuity) - * @param float $pv Present Value - * @param float $fv Future Value - * @param int $type Payment type: 0 = at the end of each period, 1 = at the beginning of each period - * @return float - */ - public static function NPER($rate = 0, $pmt = 0, $pv = 0, $fv = 0, $type = 0) - { - $rate = PHPExcel_Calculation_Functions::flattenSingleValue($rate); - $pmt = PHPExcel_Calculation_Functions::flattenSingleValue($pmt); - $pv = PHPExcel_Calculation_Functions::flattenSingleValue($pv); - $fv = PHPExcel_Calculation_Functions::flattenSingleValue($fv); - $type = PHPExcel_Calculation_Functions::flattenSingleValue($type); - - // Validate parameters - if ($type != 0 && $type != 1) { - return PHPExcel_Calculation_Functions::NaN(); - } - - // Calculate - if (!is_null($rate) && $rate != 0) { - if ($pmt == 0 && $pv == 0) { - return PHPExcel_Calculation_Functions::NaN(); - } - return log(($pmt * (1 + $rate * $type) / $rate - $fv) / ($pv + $pmt * (1 + $rate * $type) / $rate)) / log(1 + $rate); - } - if ($pmt == 0) { - return PHPExcel_Calculation_Functions::NaN(); - } - return (-$pv -$fv) / $pmt; - } - - /** - * NPV - * - * Returns the Net Present Value of a cash flow series given a discount rate. - * - * @return float - */ - public static function NPV() - { - // Return value - $returnValue = 0; - - // Loop through arguments - $aArgs = PHPExcel_Calculation_Functions::flattenArray(func_get_args()); - - // Calculate - $rate = array_shift($aArgs); - for ($i = 1; $i <= count($aArgs); ++$i) { - // Is it a numeric value? - if (is_numeric($aArgs[$i - 1])) { - $returnValue += $aArgs[$i - 1] / pow(1 + $rate, $i); - } - } - - // Return - return $returnValue; - } - - /** - * PMT - * - * Returns the constant payment (annuity) for a cash flow with a constant interest rate. - * - * @param float $rate Interest rate per period - * @param int $nper Number of periods - * @param float $pv Present Value - * @param float $fv Future Value - * @param int $type Payment type: 0 = at the end of each period, 1 = at the beginning of each period - * @return float - */ - public static function PMT($rate = 0, $nper = 0, $pv = 0, $fv = 0, $type = 0) - { - $rate = PHPExcel_Calculation_Functions::flattenSingleValue($rate); - $nper = PHPExcel_Calculation_Functions::flattenSingleValue($nper); - $pv = PHPExcel_Calculation_Functions::flattenSingleValue($pv); - $fv = PHPExcel_Calculation_Functions::flattenSingleValue($fv); - $type = PHPExcel_Calculation_Functions::flattenSingleValue($type); - - // Validate parameters - if ($type != 0 && $type != 1) { - return PHPExcel_Calculation_Functions::NaN(); - } - - // Calculate - if (!is_null($rate) && $rate != 0) { - return (-$fv - $pv * pow(1 + $rate, $nper)) / (1 + $rate * $type) / ((pow(1 + $rate, $nper) - 1) / $rate); - } - return (-$pv - $fv) / $nper; - } - - - /** - * PPMT - * - * Returns the interest payment for a given period for an investment based on periodic, constant payments and a constant interest rate. - * - * @param float $rate Interest rate per period - * @param int $per Period for which we want to find the interest - * @param int $nper Number of periods - * @param float $pv Present Value - * @param float $fv Future Value - * @param int $type Payment type: 0 = at the end of each period, 1 = at the beginning of each period - * @return float - */ - public static function PPMT($rate, $per, $nper, $pv, $fv = 0, $type = 0) - { - $rate = PHPExcel_Calculation_Functions::flattenSingleValue($rate); - $per = (int) PHPExcel_Calculation_Functions::flattenSingleValue($per); - $nper = (int) PHPExcel_Calculation_Functions::flattenSingleValue($nper); - $pv = PHPExcel_Calculation_Functions::flattenSingleValue($pv); - $fv = PHPExcel_Calculation_Functions::flattenSingleValue($fv); - $type = (int) PHPExcel_Calculation_Functions::flattenSingleValue($type); - - // Validate parameters - if ($type != 0 && $type != 1) { - return PHPExcel_Calculation_Functions::NaN(); - } - if ($per <= 0 || $per > $nper) { - return PHPExcel_Calculation_Functions::VALUE(); - } - - // Calculate - $interestAndPrincipal = self::interestAndPrincipal($rate, $per, $nper, $pv, $fv, $type); - return $interestAndPrincipal[1]; - } - - - public static function PRICE($settlement, $maturity, $rate, $yield, $redemption, $frequency, $basis = 0) - { - $settlement = PHPExcel_Calculation_Functions::flattenSingleValue($settlement); - $maturity = PHPExcel_Calculation_Functions::flattenSingleValue($maturity); - $rate = (float) PHPExcel_Calculation_Functions::flattenSingleValue($rate); - $yield = (float) PHPExcel_Calculation_Functions::flattenSingleValue($yield); - $redemption = (float) PHPExcel_Calculation_Functions::flattenSingleValue($redemption); - $frequency = (int) PHPExcel_Calculation_Functions::flattenSingleValue($frequency); - $basis = (is_null($basis)) ? 0 : (int) PHPExcel_Calculation_Functions::flattenSingleValue($basis); - - if (is_string($settlement = PHPExcel_Calculation_DateTime::getDateValue($settlement))) { - return PHPExcel_Calculation_Functions::VALUE(); - } - if (is_string($maturity = PHPExcel_Calculation_DateTime::getDateValue($maturity))) { - return PHPExcel_Calculation_Functions::VALUE(); - } - - if (($settlement > $maturity) || - (!self::isValidFrequency($frequency)) || - (($basis < 0) || ($basis > 4))) { - return PHPExcel_Calculation_Functions::NaN(); - } - - $dsc = self::COUPDAYSNC($settlement, $maturity, $frequency, $basis); - $e = self::COUPDAYS($settlement, $maturity, $frequency, $basis); - $n = self::COUPNUM($settlement, $maturity, $frequency, $basis); - $a = self::COUPDAYBS($settlement, $maturity, $frequency, $basis); - - $baseYF = 1.0 + ($yield / $frequency); - $rfp = 100 * ($rate / $frequency); - $de = $dsc / $e; - - $result = $redemption / pow($baseYF, (--$n + $de)); - for ($k = 0; $k <= $n; ++$k) { - $result += $rfp / (pow($baseYF, ($k + $de))); - } - $result -= $rfp * ($a / $e); - - return $result; - } - - - /** - * PRICEDISC - * - * Returns the price per $100 face value of a discounted security. - * - * @param mixed settlement The security's settlement date. - * The security settlement date is the date after the issue date when the security is traded to the buyer. - * @param mixed maturity The security's maturity date. - * The maturity date is the date when the security expires. - * @param int discount The security's discount rate. - * @param int redemption The security's redemption value per $100 face value. - * @param int basis The type of day count to use. - * 0 or omitted US (NASD) 30/360 - * 1 Actual/actual - * 2 Actual/360 - * 3 Actual/365 - * 4 European 30/360 - * @return float - */ - public static function PRICEDISC($settlement, $maturity, $discount, $redemption, $basis = 0) - { - $settlement = PHPExcel_Calculation_Functions::flattenSingleValue($settlement); - $maturity = PHPExcel_Calculation_Functions::flattenSingleValue($maturity); - $discount = (float) PHPExcel_Calculation_Functions::flattenSingleValue($discount); - $redemption = (float) PHPExcel_Calculation_Functions::flattenSingleValue($redemption); - $basis = (int) PHPExcel_Calculation_Functions::flattenSingleValue($basis); - - // Validate - if ((is_numeric($discount)) && (is_numeric($redemption)) && (is_numeric($basis))) { - if (($discount <= 0) || ($redemption <= 0)) { - return PHPExcel_Calculation_Functions::NaN(); - } - $daysBetweenSettlementAndMaturity = PHPExcel_Calculation_DateTime::YEARFRAC($settlement, $maturity, $basis); - if (!is_numeric($daysBetweenSettlementAndMaturity)) { - // return date error - return $daysBetweenSettlementAndMaturity; - } - - return $redemption * (1 - $discount * $daysBetweenSettlementAndMaturity); - } - return PHPExcel_Calculation_Functions::VALUE(); - } - - - /** - * PRICEMAT - * - * Returns the price per $100 face value of a security that pays interest at maturity. - * - * @param mixed settlement The security's settlement date. - * The security's settlement date is the date after the issue date when the security is traded to the buyer. - * @param mixed maturity The security's maturity date. - * The maturity date is the date when the security expires. - * @param mixed issue The security's issue date. - * @param int rate The security's interest rate at date of issue. - * @param int yield The security's annual yield. - * @param int basis The type of day count to use. - * 0 or omitted US (NASD) 30/360 - * 1 Actual/actual - * 2 Actual/360 - * 3 Actual/365 - * 4 European 30/360 - * @return float - */ - public static function PRICEMAT($settlement, $maturity, $issue, $rate, $yield, $basis = 0) - { - $settlement = PHPExcel_Calculation_Functions::flattenSingleValue($settlement); - $maturity = PHPExcel_Calculation_Functions::flattenSingleValue($maturity); - $issue = PHPExcel_Calculation_Functions::flattenSingleValue($issue); - $rate = PHPExcel_Calculation_Functions::flattenSingleValue($rate); - $yield = PHPExcel_Calculation_Functions::flattenSingleValue($yield); - $basis = (int) PHPExcel_Calculation_Functions::flattenSingleValue($basis); - - // Validate - if (is_numeric($rate) && is_numeric($yield)) { - if (($rate <= 0) || ($yield <= 0)) { - return PHPExcel_Calculation_Functions::NaN(); - } - $daysPerYear = self::daysPerYear(PHPExcel_Calculation_DateTime::YEAR($settlement), $basis); - if (!is_numeric($daysPerYear)) { - return $daysPerYear; - } - $daysBetweenIssueAndSettlement = PHPExcel_Calculation_DateTime::YEARFRAC($issue, $settlement, $basis); - if (!is_numeric($daysBetweenIssueAndSettlement)) { - // return date error - return $daysBetweenIssueAndSettlement; - } - $daysBetweenIssueAndSettlement *= $daysPerYear; - $daysBetweenIssueAndMaturity = PHPExcel_Calculation_DateTime::YEARFRAC($issue, $maturity, $basis); - if (!is_numeric($daysBetweenIssueAndMaturity)) { - // return date error - return $daysBetweenIssueAndMaturity; - } - $daysBetweenIssueAndMaturity *= $daysPerYear; - $daysBetweenSettlementAndMaturity = PHPExcel_Calculation_DateTime::YEARFRAC($settlement, $maturity, $basis); - if (!is_numeric($daysBetweenSettlementAndMaturity)) { - // return date error - return $daysBetweenSettlementAndMaturity; - } - $daysBetweenSettlementAndMaturity *= $daysPerYear; - - return ((100 + (($daysBetweenIssueAndMaturity / $daysPerYear) * $rate * 100)) / - (1 + (($daysBetweenSettlementAndMaturity / $daysPerYear) * $yield)) - - (($daysBetweenIssueAndSettlement / $daysPerYear) * $rate * 100)); - } - return PHPExcel_Calculation_Functions::VALUE(); - } - - - /** - * PV - * - * Returns the Present Value of a cash flow with constant payments and interest rate (annuities). - * - * @param float $rate Interest rate per period - * @param int $nper Number of periods - * @param float $pmt Periodic payment (annuity) - * @param float $fv Future Value - * @param int $type Payment type: 0 = at the end of each period, 1 = at the beginning of each period - * @return float - */ - public static function PV($rate = 0, $nper = 0, $pmt = 0, $fv = 0, $type = 0) - { - $rate = PHPExcel_Calculation_Functions::flattenSingleValue($rate); - $nper = PHPExcel_Calculation_Functions::flattenSingleValue($nper); - $pmt = PHPExcel_Calculation_Functions::flattenSingleValue($pmt); - $fv = PHPExcel_Calculation_Functions::flattenSingleValue($fv); - $type = PHPExcel_Calculation_Functions::flattenSingleValue($type); - - // Validate parameters - if ($type != 0 && $type != 1) { - return PHPExcel_Calculation_Functions::NaN(); - } - - // Calculate - if (!is_null($rate) && $rate != 0) { - return (-$pmt * (1 + $rate * $type) * ((pow(1 + $rate, $nper) - 1) / $rate) - $fv) / pow(1 + $rate, $nper); - } - return -$fv - $pmt * $nper; - } - - - /** - * RATE - * - * Returns the interest rate per period of an annuity. - * RATE is calculated by iteration and can have zero or more solutions. - * If the successive results of RATE do not converge to within 0.0000001 after 20 iterations, - * RATE returns the #NUM! error value. - * - * Excel Function: - * RATE(nper,pmt,pv[,fv[,type[,guess]]]) - * - * @access public - * @category Financial Functions - * @param float nper The total number of payment periods in an annuity. - * @param float pmt The payment made each period and cannot change over the life - * of the annuity. - * Typically, pmt includes principal and interest but no other - * fees or taxes. - * @param float pv The present value - the total amount that a series of future - * payments is worth now. - * @param float fv The future value, or a cash balance you want to attain after - * the last payment is made. If fv is omitted, it is assumed - * to be 0 (the future value of a loan, for example, is 0). - * @param integer type A number 0 or 1 and indicates when payments are due: - * 0 or omitted At the end of the period. - * 1 At the beginning of the period. - * @param float guess Your guess for what the rate will be. - * If you omit guess, it is assumed to be 10 percent. - * @return float - **/ - public static function RATE($nper, $pmt, $pv, $fv = 0.0, $type = 0, $guess = 0.1) - { - $nper = (int) PHPExcel_Calculation_Functions::flattenSingleValue($nper); - $pmt = PHPExcel_Calculation_Functions::flattenSingleValue($pmt); - $pv = PHPExcel_Calculation_Functions::flattenSingleValue($pv); - $fv = (is_null($fv)) ? 0.0 : PHPExcel_Calculation_Functions::flattenSingleValue($fv); - $type = (is_null($type)) ? 0 : (int) PHPExcel_Calculation_Functions::flattenSingleValue($type); - $guess = (is_null($guess)) ? 0.1 : PHPExcel_Calculation_Functions::flattenSingleValue($guess); - - $rate = $guess; - if (abs($rate) < FINANCIAL_PRECISION) { - $y = $pv * (1 + $nper * $rate) + $pmt * (1 + $rate * $type) * $nper + $fv; - } else { - $f = exp($nper * log(1 + $rate)); - $y = $pv * $f + $pmt * (1 / $rate + $type) * ($f - 1) + $fv; - } - $y0 = $pv + $pmt * $nper + $fv; - $y1 = $pv * $f + $pmt * (1 / $rate + $type) * ($f - 1) + $fv; - - // find root by secant method - $i = $x0 = 0.0; - $x1 = $rate; - while ((abs($y0 - $y1) > FINANCIAL_PRECISION) && ($i < FINANCIAL_MAX_ITERATIONS)) { - $rate = ($y1 * $x0 - $y0 * $x1) / ($y1 - $y0); - $x0 = $x1; - $x1 = $rate; - if (($nper * abs($pmt)) > ($pv - $fv)) { - $x1 = abs($x1); - } - if (abs($rate) < FINANCIAL_PRECISION) { - $y = $pv * (1 + $nper * $rate) + $pmt * (1 + $rate * $type) * $nper + $fv; - } else { - $f = exp($nper * log(1 + $rate)); - $y = $pv * $f + $pmt * (1 / $rate + $type) * ($f - 1) + $fv; - } - - $y0 = $y1; - $y1 = $y; - ++$i; - } - return $rate; - } - - - /** - * RECEIVED - * - * Returns the price per $100 face value of a discounted security. - * - * @param mixed settlement The security's settlement date. - * The security settlement date is the date after the issue date when the security is traded to the buyer. - * @param mixed maturity The security's maturity date. - * The maturity date is the date when the security expires. - * @param int investment The amount invested in the security. - * @param int discount The security's discount rate. - * @param int basis The type of day count to use. - * 0 or omitted US (NASD) 30/360 - * 1 Actual/actual - * 2 Actual/360 - * 3 Actual/365 - * 4 European 30/360 - * @return float - */ - public static function RECEIVED($settlement, $maturity, $investment, $discount, $basis = 0) - { - $settlement = PHPExcel_Calculation_Functions::flattenSingleValue($settlement); - $maturity = PHPExcel_Calculation_Functions::flattenSingleValue($maturity); - $investment = (float) PHPExcel_Calculation_Functions::flattenSingleValue($investment); - $discount = (float) PHPExcel_Calculation_Functions::flattenSingleValue($discount); - $basis = (int) PHPExcel_Calculation_Functions::flattenSingleValue($basis); - - // Validate - if ((is_numeric($investment)) && (is_numeric($discount)) && (is_numeric($basis))) { - if (($investment <= 0) || ($discount <= 0)) { - return PHPExcel_Calculation_Functions::NaN(); - } - $daysBetweenSettlementAndMaturity = PHPExcel_Calculation_DateTime::YEARFRAC($settlement, $maturity, $basis); - if (!is_numeric($daysBetweenSettlementAndMaturity)) { - // return date error - return $daysBetweenSettlementAndMaturity; - } - - return $investment / ( 1 - ($discount * $daysBetweenSettlementAndMaturity)); - } - return PHPExcel_Calculation_Functions::VALUE(); - } - - - /** - * SLN - * - * Returns the straight-line depreciation of an asset for one period - * - * @param cost Initial cost of the asset - * @param salvage Value at the end of the depreciation - * @param life Number of periods over which the asset is depreciated - * @return float - */ - public static function SLN($cost, $salvage, $life) - { - $cost = PHPExcel_Calculation_Functions::flattenSingleValue($cost); - $salvage = PHPExcel_Calculation_Functions::flattenSingleValue($salvage); - $life = PHPExcel_Calculation_Functions::flattenSingleValue($life); - - // Calculate - if ((is_numeric($cost)) && (is_numeric($salvage)) && (is_numeric($life))) { - if ($life < 0) { - return PHPExcel_Calculation_Functions::NaN(); - } - return ($cost - $salvage) / $life; - } - return PHPExcel_Calculation_Functions::VALUE(); - } - - - /** - * SYD - * - * Returns the sum-of-years' digits depreciation of an asset for a specified period. - * - * @param cost Initial cost of the asset - * @param salvage Value at the end of the depreciation - * @param life Number of periods over which the asset is depreciated - * @param period Period - * @return float - */ - public static function SYD($cost, $salvage, $life, $period) - { - $cost = PHPExcel_Calculation_Functions::flattenSingleValue($cost); - $salvage = PHPExcel_Calculation_Functions::flattenSingleValue($salvage); - $life = PHPExcel_Calculation_Functions::flattenSingleValue($life); - $period = PHPExcel_Calculation_Functions::flattenSingleValue($period); - - // Calculate - if ((is_numeric($cost)) && (is_numeric($salvage)) && (is_numeric($life)) && (is_numeric($period))) { - if (($life < 1) || ($period > $life)) { - return PHPExcel_Calculation_Functions::NaN(); - } - return (($cost - $salvage) * ($life - $period + 1) * 2) / ($life * ($life + 1)); - } - return PHPExcel_Calculation_Functions::VALUE(); - } - - - /** - * TBILLEQ - * - * Returns the bond-equivalent yield for a Treasury bill. - * - * @param mixed settlement The Treasury bill's settlement date. - * The Treasury bill's settlement date is the date after the issue date when the Treasury bill is traded to the buyer. - * @param mixed maturity The Treasury bill's maturity date. - * The maturity date is the date when the Treasury bill expires. - * @param int discount The Treasury bill's discount rate. - * @return float - */ - public static function TBILLEQ($settlement, $maturity, $discount) - { - $settlement = PHPExcel_Calculation_Functions::flattenSingleValue($settlement); - $maturity = PHPExcel_Calculation_Functions::flattenSingleValue($maturity); - $discount = PHPExcel_Calculation_Functions::flattenSingleValue($discount); - - // Use TBILLPRICE for validation - $testValue = self::TBILLPRICE($settlement, $maturity, $discount); - if (is_string($testValue)) { - return $testValue; - } - - if (is_string($maturity = PHPExcel_Calculation_DateTime::getDateValue($maturity))) { - return PHPExcel_Calculation_Functions::VALUE(); - } - - if (PHPExcel_Calculation_Functions::getCompatibilityMode() == PHPExcel_Calculation_Functions::COMPATIBILITY_OPENOFFICE) { - ++$maturity; - $daysBetweenSettlementAndMaturity = PHPExcel_Calculation_DateTime::YEARFRAC($settlement, $maturity) * 360; - } else { - $daysBetweenSettlementAndMaturity = (PHPExcel_Calculation_DateTime::getDateValue($maturity) - PHPExcel_Calculation_DateTime::getDateValue($settlement)); - } - - return (365 * $discount) / (360 - $discount * $daysBetweenSettlementAndMaturity); - } - - - /** - * TBILLPRICE - * - * Returns the yield for a Treasury bill. - * - * @param mixed settlement The Treasury bill's settlement date. - * The Treasury bill's settlement date is the date after the issue date when the Treasury bill is traded to the buyer. - * @param mixed maturity The Treasury bill's maturity date. - * The maturity date is the date when the Treasury bill expires. - * @param int discount The Treasury bill's discount rate. - * @return float - */ - public static function TBILLPRICE($settlement, $maturity, $discount) - { - $settlement = PHPExcel_Calculation_Functions::flattenSingleValue($settlement); - $maturity = PHPExcel_Calculation_Functions::flattenSingleValue($maturity); - $discount = PHPExcel_Calculation_Functions::flattenSingleValue($discount); - - if (is_string($maturity = PHPExcel_Calculation_DateTime::getDateValue($maturity))) { - return PHPExcel_Calculation_Functions::VALUE(); - } - - // Validate - if (is_numeric($discount)) { - if ($discount <= 0) { - return PHPExcel_Calculation_Functions::NaN(); - } - - if (PHPExcel_Calculation_Functions::getCompatibilityMode() == PHPExcel_Calculation_Functions::COMPATIBILITY_OPENOFFICE) { - ++$maturity; - $daysBetweenSettlementAndMaturity = PHPExcel_Calculation_DateTime::YEARFRAC($settlement, $maturity) * 360; - if (!is_numeric($daysBetweenSettlementAndMaturity)) { - // return date error - return $daysBetweenSettlementAndMaturity; - } - } else { - $daysBetweenSettlementAndMaturity = (PHPExcel_Calculation_DateTime::getDateValue($maturity) - PHPExcel_Calculation_DateTime::getDateValue($settlement)); - } - - if ($daysBetweenSettlementAndMaturity > 360) { - return PHPExcel_Calculation_Functions::NaN(); - } - - $price = 100 * (1 - (($discount * $daysBetweenSettlementAndMaturity) / 360)); - if ($price <= 0) { - return PHPExcel_Calculation_Functions::NaN(); - } - return $price; - } - return PHPExcel_Calculation_Functions::VALUE(); - } - - - /** - * TBILLYIELD - * - * Returns the yield for a Treasury bill. - * - * @param mixed settlement The Treasury bill's settlement date. - * The Treasury bill's settlement date is the date after the issue date when the Treasury bill is traded to the buyer. - * @param mixed maturity The Treasury bill's maturity date. - * The maturity date is the date when the Treasury bill expires. - * @param int price The Treasury bill's price per $100 face value. - * @return float - */ - public static function TBILLYIELD($settlement, $maturity, $price) - { - $settlement = PHPExcel_Calculation_Functions::flattenSingleValue($settlement); - $maturity = PHPExcel_Calculation_Functions::flattenSingleValue($maturity); - $price = PHPExcel_Calculation_Functions::flattenSingleValue($price); - - // Validate - if (is_numeric($price)) { - if ($price <= 0) { - return PHPExcel_Calculation_Functions::NaN(); - } - - if (PHPExcel_Calculation_Functions::getCompatibilityMode() == PHPExcel_Calculation_Functions::COMPATIBILITY_OPENOFFICE) { - ++$maturity; - $daysBetweenSettlementAndMaturity = PHPExcel_Calculation_DateTime::YEARFRAC($settlement, $maturity) * 360; - if (!is_numeric($daysBetweenSettlementAndMaturity)) { - // return date error - return $daysBetweenSettlementAndMaturity; - } - } else { - $daysBetweenSettlementAndMaturity = (PHPExcel_Calculation_DateTime::getDateValue($maturity) - PHPExcel_Calculation_DateTime::getDateValue($settlement)); - } - - if ($daysBetweenSettlementAndMaturity > 360) { - return PHPExcel_Calculation_Functions::NaN(); - } - - return ((100 - $price) / $price) * (360 / $daysBetweenSettlementAndMaturity); - } - return PHPExcel_Calculation_Functions::VALUE(); - } - - - public static function XIRR($values, $dates, $guess = 0.1) - { - if ((!is_array($values)) && (!is_array($dates))) { - return PHPExcel_Calculation_Functions::VALUE(); - } - $values = PHPExcel_Calculation_Functions::flattenArray($values); - $dates = PHPExcel_Calculation_Functions::flattenArray($dates); - $guess = PHPExcel_Calculation_Functions::flattenSingleValue($guess); - if (count($values) != count($dates)) { - return PHPExcel_Calculation_Functions::NaN(); - } - - // create an initial range, with a root somewhere between 0 and guess - $x1 = 0.0; - $x2 = $guess; - $f1 = self::XNPV($x1, $values, $dates); - $f2 = self::XNPV($x2, $values, $dates); - for ($i = 0; $i < FINANCIAL_MAX_ITERATIONS; ++$i) { - if (($f1 * $f2) < 0.0) { - break; - } elseif (abs($f1) < abs($f2)) { - $f1 = self::XNPV($x1 += 1.6 * ($x1 - $x2), $values, $dates); - } else { - $f2 = self::XNPV($x2 += 1.6 * ($x2 - $x1), $values, $dates); - } - } - if (($f1 * $f2) > 0.0) { - return PHPExcel_Calculation_Functions::VALUE(); - } - - $f = self::XNPV($x1, $values, $dates); - if ($f < 0.0) { - $rtb = $x1; - $dx = $x2 - $x1; - } else { - $rtb = $x2; - $dx = $x1 - $x2; - } - - for ($i = 0; $i < FINANCIAL_MAX_ITERATIONS; ++$i) { - $dx *= 0.5; - $x_mid = $rtb + $dx; - $f_mid = self::XNPV($x_mid, $values, $dates); - if ($f_mid <= 0.0) { - $rtb = $x_mid; - } - if ((abs($f_mid) < FINANCIAL_PRECISION) || (abs($dx) < FINANCIAL_PRECISION)) { - return $x_mid; - } - } - return PHPExcel_Calculation_Functions::VALUE(); - } - - - /** - * XNPV - * - * Returns the net present value for a schedule of cash flows that is not necessarily periodic. - * To calculate the net present value for a series of cash flows that is periodic, use the NPV function. - * - * Excel Function: - * =XNPV(rate,values,dates) - * - * @param float $rate The discount rate to apply to the cash flows. - * @param array of float $values A series of cash flows that corresponds to a schedule of payments in dates. - * The first payment is optional and corresponds to a cost or payment that occurs at the beginning of the investment. - * If the first value is a cost or payment, it must be a negative value. All succeeding payments are discounted based on a 365-day year. - * The series of values must contain at least one positive value and one negative value. - * @param array of mixed $dates A schedule of payment dates that corresponds to the cash flow payments. - * The first payment date indicates the beginning of the schedule of payments. - * All other dates must be later than this date, but they may occur in any order. - * @return float - */ - public static function XNPV($rate, $values, $dates) - { - $rate = PHPExcel_Calculation_Functions::flattenSingleValue($rate); - if (!is_numeric($rate)) { - return PHPExcel_Calculation_Functions::VALUE(); - } - if ((!is_array($values)) || (!is_array($dates))) { - return PHPExcel_Calculation_Functions::VALUE(); - } - $values = PHPExcel_Calculation_Functions::flattenArray($values); - $dates = PHPExcel_Calculation_Functions::flattenArray($dates); - $valCount = count($values); - if ($valCount != count($dates)) { - return PHPExcel_Calculation_Functions::NaN(); - } - if ((min($values) > 0) || (max($values) < 0)) { - return PHPExcel_Calculation_Functions::VALUE(); - } - - $xnpv = 0.0; - for ($i = 0; $i < $valCount; ++$i) { - if (!is_numeric($values[$i])) { - return PHPExcel_Calculation_Functions::VALUE(); - } - $xnpv += $values[$i] / pow(1 + $rate, PHPExcel_Calculation_DateTime::DATEDIF($dates[0], $dates[$i], 'd') / 365); - } - return (is_finite($xnpv)) ? $xnpv : PHPExcel_Calculation_Functions::VALUE(); - } - - - /** - * YIELDDISC - * - * Returns the annual yield of a security that pays interest at maturity. - * - * @param mixed settlement The security's settlement date. - * The security's settlement date is the date after the issue date when the security is traded to the buyer. - * @param mixed maturity The security's maturity date. - * The maturity date is the date when the security expires. - * @param int price The security's price per $100 face value. - * @param int redemption The security's redemption value per $100 face value. - * @param int basis The type of day count to use. - * 0 or omitted US (NASD) 30/360 - * 1 Actual/actual - * 2 Actual/360 - * 3 Actual/365 - * 4 European 30/360 - * @return float - */ - public static function YIELDDISC($settlement, $maturity, $price, $redemption, $basis = 0) - { - $settlement = PHPExcel_Calculation_Functions::flattenSingleValue($settlement); - $maturity = PHPExcel_Calculation_Functions::flattenSingleValue($maturity); - $price = PHPExcel_Calculation_Functions::flattenSingleValue($price); - $redemption = PHPExcel_Calculation_Functions::flattenSingleValue($redemption); - $basis = (int) PHPExcel_Calculation_Functions::flattenSingleValue($basis); - - // Validate - if (is_numeric($price) && is_numeric($redemption)) { - if (($price <= 0) || ($redemption <= 0)) { - return PHPExcel_Calculation_Functions::NaN(); - } - $daysPerYear = self::daysPerYear(PHPExcel_Calculation_DateTime::YEAR($settlement), $basis); - if (!is_numeric($daysPerYear)) { - return $daysPerYear; - } - $daysBetweenSettlementAndMaturity = PHPExcel_Calculation_DateTime::YEARFRAC($settlement, $maturity, $basis); - if (!is_numeric($daysBetweenSettlementAndMaturity)) { - // return date error - return $daysBetweenSettlementAndMaturity; - } - $daysBetweenSettlementAndMaturity *= $daysPerYear; - - return (($redemption - $price) / $price) * ($daysPerYear / $daysBetweenSettlementAndMaturity); - } - return PHPExcel_Calculation_Functions::VALUE(); - } - - - /** - * YIELDMAT - * - * Returns the annual yield of a security that pays interest at maturity. - * - * @param mixed settlement The security's settlement date. - * The security's settlement date is the date after the issue date when the security is traded to the buyer. - * @param mixed maturity The security's maturity date. - * The maturity date is the date when the security expires. - * @param mixed issue The security's issue date. - * @param int rate The security's interest rate at date of issue. - * @param int price The security's price per $100 face value. - * @param int basis The type of day count to use. - * 0 or omitted US (NASD) 30/360 - * 1 Actual/actual - * 2 Actual/360 - * 3 Actual/365 - * 4 European 30/360 - * @return float - */ - public static function YIELDMAT($settlement, $maturity, $issue, $rate, $price, $basis = 0) - { - $settlement = PHPExcel_Calculation_Functions::flattenSingleValue($settlement); - $maturity = PHPExcel_Calculation_Functions::flattenSingleValue($maturity); - $issue = PHPExcel_Calculation_Functions::flattenSingleValue($issue); - $rate = PHPExcel_Calculation_Functions::flattenSingleValue($rate); - $price = PHPExcel_Calculation_Functions::flattenSingleValue($price); - $basis = (int) PHPExcel_Calculation_Functions::flattenSingleValue($basis); - - // Validate - if (is_numeric($rate) && is_numeric($price)) { - if (($rate <= 0) || ($price <= 0)) { - return PHPExcel_Calculation_Functions::NaN(); - } - $daysPerYear = self::daysPerYear(PHPExcel_Calculation_DateTime::YEAR($settlement), $basis); - if (!is_numeric($daysPerYear)) { - return $daysPerYear; - } - $daysBetweenIssueAndSettlement = PHPExcel_Calculation_DateTime::YEARFRAC($issue, $settlement, $basis); - if (!is_numeric($daysBetweenIssueAndSettlement)) { - // return date error - return $daysBetweenIssueAndSettlement; - } - $daysBetweenIssueAndSettlement *= $daysPerYear; - $daysBetweenIssueAndMaturity = PHPExcel_Calculation_DateTime::YEARFRAC($issue, $maturity, $basis); - if (!is_numeric($daysBetweenIssueAndMaturity)) { - // return date error - return $daysBetweenIssueAndMaturity; - } - $daysBetweenIssueAndMaturity *= $daysPerYear; - $daysBetweenSettlementAndMaturity = PHPExcel_Calculation_DateTime::YEARFRAC($settlement, $maturity, $basis); - if (!is_numeric($daysBetweenSettlementAndMaturity)) { - // return date error - return $daysBetweenSettlementAndMaturity; - } - $daysBetweenSettlementAndMaturity *= $daysPerYear; - - return ((1 + (($daysBetweenIssueAndMaturity / $daysPerYear) * $rate) - (($price / 100) + (($daysBetweenIssueAndSettlement / $daysPerYear) * $rate))) / - (($price / 100) + (($daysBetweenIssueAndSettlement / $daysPerYear) * $rate))) * - ($daysPerYear / $daysBetweenSettlementAndMaturity); - } - return PHPExcel_Calculation_Functions::VALUE(); - } -} diff --git a/Utils/PHPExcel/Calculation/FormulaParser.php b/Utils/PHPExcel/Calculation/FormulaParser.php deleted file mode 100644 index 893f19e..0000000 --- a/Utils/PHPExcel/Calculation/FormulaParser.php +++ /dev/null @@ -1,622 +0,0 @@ -<"; - const OPERATORS_POSTFIX = "%"; - - /** - * Formula - * - * @var string - */ - private $formula; - - /** - * Tokens - * - * @var PHPExcel_Calculation_FormulaToken[] - */ - private $tokens = array(); - - /** - * Create a new PHPExcel_Calculation_FormulaParser - * - * @param string $pFormula Formula to parse - * @throws PHPExcel_Calculation_Exception - */ - public function __construct($pFormula = '') - { - // Check parameters - if (is_null($pFormula)) { - throw new PHPExcel_Calculation_Exception("Invalid parameter passed: formula"); - } - - // Initialise values - $this->formula = trim($pFormula); - // Parse! - $this->parseToTokens(); - } - - /** - * Get Formula - * - * @return string - */ - public function getFormula() - { - return $this->formula; - } - - /** - * Get Token - * - * @param int $pId Token id - * @return string - * @throws PHPExcel_Calculation_Exception - */ - public function getToken($pId = 0) - { - if (isset($this->tokens[$pId])) { - return $this->tokens[$pId]; - } else { - throw new PHPExcel_Calculation_Exception("Token with id $pId does not exist."); - } - } - - /** - * Get Token count - * - * @return string - */ - public function getTokenCount() - { - return count($this->tokens); - } - - /** - * Get Tokens - * - * @return PHPExcel_Calculation_FormulaToken[] - */ - public function getTokens() - { - return $this->tokens; - } - - /** - * Parse to tokens - */ - private function parseToTokens() - { - // No attempt is made to verify formulas; assumes formulas are derived from Excel, where - // they can only exist if valid; stack overflows/underflows sunk as nulls without exceptions. - - // Check if the formula has a valid starting = - $formulaLength = strlen($this->formula); - if ($formulaLength < 2 || $this->formula{0} != '=') { - return; - } - - // Helper variables - $tokens1 = $tokens2 = $stack = array(); - $inString = $inPath = $inRange = $inError = false; - $token = $previousToken = $nextToken = null; - - $index = 1; - $value = ''; - - $ERRORS = array("#NULL!", "#DIV/0!", "#VALUE!", "#REF!", "#NAME?", "#NUM!", "#N/A"); - $COMPARATORS_MULTI = array(">=", "<=", "<>"); - - while ($index < $formulaLength) { - // state-dependent character evaluation (order is important) - - // double-quoted strings - // embeds are doubled - // end marks token - if ($inString) { - if ($this->formula{$index} == PHPExcel_Calculation_FormulaParser::QUOTE_DOUBLE) { - if ((($index + 2) <= $formulaLength) && ($this->formula{$index + 1} == PHPExcel_Calculation_FormulaParser::QUOTE_DOUBLE)) { - $value .= PHPExcel_Calculation_FormulaParser::QUOTE_DOUBLE; - ++$index; - } else { - $inString = false; - $tokens1[] = new PHPExcel_Calculation_FormulaToken($value, PHPExcel_Calculation_FormulaToken::TOKEN_TYPE_OPERAND, PHPExcel_Calculation_FormulaToken::TOKEN_SUBTYPE_TEXT); - $value = ""; - } - } else { - $value .= $this->formula{$index}; - } - ++$index; - continue; - } - - // single-quoted strings (links) - // embeds are double - // end does not mark a token - if ($inPath) { - if ($this->formula{$index} == PHPExcel_Calculation_FormulaParser::QUOTE_SINGLE) { - if ((($index + 2) <= $formulaLength) && ($this->formula{$index + 1} == PHPExcel_Calculation_FormulaParser::QUOTE_SINGLE)) { - $value .= PHPExcel_Calculation_FormulaParser::QUOTE_SINGLE; - ++$index; - } else { - $inPath = false; - } - } else { - $value .= $this->formula{$index}; - } - ++$index; - continue; - } - - // bracked strings (R1C1 range index or linked workbook name) - // no embeds (changed to "()" by Excel) - // end does not mark a token - if ($inRange) { - if ($this->formula{$index} == PHPExcel_Calculation_FormulaParser::BRACKET_CLOSE) { - $inRange = false; - } - $value .= $this->formula{$index}; - ++$index; - continue; - } - - // error values - // end marks a token, determined from absolute list of values - if ($inError) { - $value .= $this->formula{$index}; - ++$index; - if (in_array($value, $ERRORS)) { - $inError = false; - $tokens1[] = new PHPExcel_Calculation_FormulaToken($value, PHPExcel_Calculation_FormulaToken::TOKEN_TYPE_OPERAND, PHPExcel_Calculation_FormulaToken::TOKEN_SUBTYPE_ERROR); - $value = ""; - } - continue; - } - - // scientific notation check - if (strpos(PHPExcel_Calculation_FormulaParser::OPERATORS_SN, $this->formula{$index}) !== false) { - if (strlen($value) > 1) { - if (preg_match("/^[1-9]{1}(\.[0-9]+)?E{1}$/", $this->formula{$index}) != 0) { - $value .= $this->formula{$index}; - ++$index; - continue; - } - } - } - - // independent character evaluation (order not important) - - // establish state-dependent character evaluations - if ($this->formula{$index} == PHPExcel_Calculation_FormulaParser::QUOTE_DOUBLE) { - if (strlen($value > 0)) { - // unexpected - $tokens1[] = new PHPExcel_Calculation_FormulaToken($value, PHPExcel_Calculation_FormulaToken::TOKEN_TYPE_UNKNOWN); - $value = ""; - } - $inString = true; - ++$index; - continue; - } - - if ($this->formula{$index} == PHPExcel_Calculation_FormulaParser::QUOTE_SINGLE) { - if (strlen($value) > 0) { - // unexpected - $tokens1[] = new PHPExcel_Calculation_FormulaToken($value, PHPExcel_Calculation_FormulaToken::TOKEN_TYPE_UNKNOWN); - $value = ""; - } - $inPath = true; - ++$index; - continue; - } - - if ($this->formula{$index} == PHPExcel_Calculation_FormulaParser::BRACKET_OPEN) { - $inRange = true; - $value .= PHPExcel_Calculation_FormulaParser::BRACKET_OPEN; - ++$index; - continue; - } - - if ($this->formula{$index} == PHPExcel_Calculation_FormulaParser::ERROR_START) { - if (strlen($value) > 0) { - // unexpected - $tokens1[] = new PHPExcel_Calculation_FormulaToken($value, PHPExcel_Calculation_FormulaToken::TOKEN_TYPE_UNKNOWN); - $value = ""; - } - $inError = true; - $value .= PHPExcel_Calculation_FormulaParser::ERROR_START; - ++$index; - continue; - } - - // mark start and end of arrays and array rows - if ($this->formula{$index} == PHPExcel_Calculation_FormulaParser::BRACE_OPEN) { - if (strlen($value) > 0) { - // unexpected - $tokens1[] = new PHPExcel_Calculation_FormulaToken($value, PHPExcel_Calculation_FormulaToken::TOKEN_TYPE_UNKNOWN); - $value = ""; - } - - $tmp = new PHPExcel_Calculation_FormulaToken("ARRAY", PHPExcel_Calculation_FormulaToken::TOKEN_TYPE_FUNCTION, PHPExcel_Calculation_FormulaToken::TOKEN_SUBTYPE_START); - $tokens1[] = $tmp; - $stack[] = clone $tmp; - - $tmp = new PHPExcel_Calculation_FormulaToken("ARRAYROW", PHPExcel_Calculation_FormulaToken::TOKEN_TYPE_FUNCTION, PHPExcel_Calculation_FormulaToken::TOKEN_SUBTYPE_START); - $tokens1[] = $tmp; - $stack[] = clone $tmp; - - ++$index; - continue; - } - - if ($this->formula{$index} == PHPExcel_Calculation_FormulaParser::SEMICOLON) { - if (strlen($value) > 0) { - $tokens1[] = new PHPExcel_Calculation_FormulaToken($value, PHPExcel_Calculation_FormulaToken::TOKEN_TYPE_OPERAND); - $value = ""; - } - - $tmp = array_pop($stack); - $tmp->setValue(""); - $tmp->setTokenSubType(PHPExcel_Calculation_FormulaToken::TOKEN_SUBTYPE_STOP); - $tokens1[] = $tmp; - - $tmp = new PHPExcel_Calculation_FormulaToken(",", PHPExcel_Calculation_FormulaToken::TOKEN_TYPE_ARGUMENT); - $tokens1[] = $tmp; - - $tmp = new PHPExcel_Calculation_FormulaToken("ARRAYROW", PHPExcel_Calculation_FormulaToken::TOKEN_TYPE_FUNCTION, PHPExcel_Calculation_FormulaToken::TOKEN_SUBTYPE_START); - $tokens1[] = $tmp; - $stack[] = clone $tmp; - - ++$index; - continue; - } - - if ($this->formula{$index} == PHPExcel_Calculation_FormulaParser::BRACE_CLOSE) { - if (strlen($value) > 0) { - $tokens1[] = new PHPExcel_Calculation_FormulaToken($value, PHPExcel_Calculation_FormulaToken::TOKEN_TYPE_OPERAND); - $value = ""; - } - - $tmp = array_pop($stack); - $tmp->setValue(""); - $tmp->setTokenSubType(PHPExcel_Calculation_FormulaToken::TOKEN_SUBTYPE_STOP); - $tokens1[] = $tmp; - - $tmp = array_pop($stack); - $tmp->setValue(""); - $tmp->setTokenSubType(PHPExcel_Calculation_FormulaToken::TOKEN_SUBTYPE_STOP); - $tokens1[] = $tmp; - - ++$index; - continue; - } - - // trim white-space - if ($this->formula{$index} == PHPExcel_Calculation_FormulaParser::WHITESPACE) { - if (strlen($value) > 0) { - $tokens1[] = new PHPExcel_Calculation_FormulaToken($value, PHPExcel_Calculation_FormulaToken::TOKEN_TYPE_OPERAND); - $value = ""; - } - $tokens1[] = new PHPExcel_Calculation_FormulaToken("", PHPExcel_Calculation_FormulaToken::TOKEN_TYPE_WHITESPACE); - ++$index; - while (($this->formula{$index} == PHPExcel_Calculation_FormulaParser::WHITESPACE) && ($index < $formulaLength)) { - ++$index; - } - continue; - } - - // multi-character comparators - if (($index + 2) <= $formulaLength) { - if (in_array(substr($this->formula, $index, 2), $COMPARATORS_MULTI)) { - if (strlen($value) > 0) { - $tokens1[] = new PHPExcel_Calculation_FormulaToken($value, PHPExcel_Calculation_FormulaToken::TOKEN_TYPE_OPERAND); - $value = ""; - } - $tokens1[] = new PHPExcel_Calculation_FormulaToken(substr($this->formula, $index, 2), PHPExcel_Calculation_FormulaToken::TOKEN_TYPE_OPERATORINFIX, PHPExcel_Calculation_FormulaToken::TOKEN_SUBTYPE_LOGICAL); - $index += 2; - continue; - } - } - - // standard infix operators - if (strpos(PHPExcel_Calculation_FormulaParser::OPERATORS_INFIX, $this->formula{$index}) !== false) { - if (strlen($value) > 0) { - $tokens1[] =new PHPExcel_Calculation_FormulaToken($value, PHPExcel_Calculation_FormulaToken::TOKEN_TYPE_OPERAND); - $value = ""; - } - $tokens1[] = new PHPExcel_Calculation_FormulaToken($this->formula{$index}, PHPExcel_Calculation_FormulaToken::TOKEN_TYPE_OPERATORINFIX); - ++$index; - continue; - } - - // standard postfix operators (only one) - if (strpos(PHPExcel_Calculation_FormulaParser::OPERATORS_POSTFIX, $this->formula{$index}) !== false) { - if (strlen($value) > 0) { - $tokens1[] = new PHPExcel_Calculation_FormulaToken($value, PHPExcel_Calculation_FormulaToken::TOKEN_TYPE_OPERAND); - $value = ""; - } - $tokens1[] = new PHPExcel_Calculation_FormulaToken($this->formula{$index}, PHPExcel_Calculation_FormulaToken::TOKEN_TYPE_OPERATORPOSTFIX); - ++$index; - continue; - } - - // start subexpression or function - if ($this->formula{$index} == PHPExcel_Calculation_FormulaParser::PAREN_OPEN) { - if (strlen($value) > 0) { - $tmp = new PHPExcel_Calculation_FormulaToken($value, PHPExcel_Calculation_FormulaToken::TOKEN_TYPE_FUNCTION, PHPExcel_Calculation_FormulaToken::TOKEN_SUBTYPE_START); - $tokens1[] = $tmp; - $stack[] = clone $tmp; - $value = ""; - } else { - $tmp = new PHPExcel_Calculation_FormulaToken("", PHPExcel_Calculation_FormulaToken::TOKEN_TYPE_SUBEXPRESSION, PHPExcel_Calculation_FormulaToken::TOKEN_SUBTYPE_START); - $tokens1[] = $tmp; - $stack[] = clone $tmp; - } - ++$index; - continue; - } - - // function, subexpression, or array parameters, or operand unions - if ($this->formula{$index} == PHPExcel_Calculation_FormulaParser::COMMA) { - if (strlen($value) > 0) { - $tokens1[] = new PHPExcel_Calculation_FormulaToken($value, PHPExcel_Calculation_FormulaToken::TOKEN_TYPE_OPERAND); - $value = ""; - } - - $tmp = array_pop($stack); - $tmp->setValue(""); - $tmp->setTokenSubType(PHPExcel_Calculation_FormulaToken::TOKEN_SUBTYPE_STOP); - $stack[] = $tmp; - - if ($tmp->getTokenType() == PHPExcel_Calculation_FormulaToken::TOKEN_TYPE_FUNCTION) { - $tokens1[] = new PHPExcel_Calculation_FormulaToken(",", PHPExcel_Calculation_FormulaToken::TOKEN_TYPE_OPERATORINFIX, PHPExcel_Calculation_FormulaToken::TOKEN_SUBTYPE_UNION); - } else { - $tokens1[] = new PHPExcel_Calculation_FormulaToken(",", PHPExcel_Calculation_FormulaToken::TOKEN_TYPE_ARGUMENT); - } - ++$index; - continue; - } - - // stop subexpression - if ($this->formula{$index} == PHPExcel_Calculation_FormulaParser::PAREN_CLOSE) { - if (strlen($value) > 0) { - $tokens1[] = new PHPExcel_Calculation_FormulaToken($value, PHPExcel_Calculation_FormulaToken::TOKEN_TYPE_OPERAND); - $value = ""; - } - - $tmp = array_pop($stack); - $tmp->setValue(""); - $tmp->setTokenSubType(PHPExcel_Calculation_FormulaToken::TOKEN_SUBTYPE_STOP); - $tokens1[] = $tmp; - - ++$index; - continue; - } - - // token accumulation - $value .= $this->formula{$index}; - ++$index; - } - - // dump remaining accumulation - if (strlen($value) > 0) { - $tokens1[] = new PHPExcel_Calculation_FormulaToken($value, PHPExcel_Calculation_FormulaToken::TOKEN_TYPE_OPERAND); - } - - // move tokenList to new set, excluding unnecessary white-space tokens and converting necessary ones to intersections - $tokenCount = count($tokens1); - for ($i = 0; $i < $tokenCount; ++$i) { - $token = $tokens1[$i]; - if (isset($tokens1[$i - 1])) { - $previousToken = $tokens1[$i - 1]; - } else { - $previousToken = null; - } - if (isset($tokens1[$i + 1])) { - $nextToken = $tokens1[$i + 1]; - } else { - $nextToken = null; - } - - if (is_null($token)) { - continue; - } - - if ($token->getTokenType() != PHPExcel_Calculation_FormulaToken::TOKEN_TYPE_WHITESPACE) { - $tokens2[] = $token; - continue; - } - - if (is_null($previousToken)) { - continue; - } - - if (! ( - (($previousToken->getTokenType() == PHPExcel_Calculation_FormulaToken::TOKEN_TYPE_FUNCTION) && ($previousToken->getTokenSubType() == PHPExcel_Calculation_FormulaToken::TOKEN_SUBTYPE_STOP)) || - (($previousToken->getTokenType() == PHPExcel_Calculation_FormulaToken::TOKEN_TYPE_SUBEXPRESSION) && ($previousToken->getTokenSubType() == PHPExcel_Calculation_FormulaToken::TOKEN_SUBTYPE_STOP)) || - ($previousToken->getTokenType() == PHPExcel_Calculation_FormulaToken::TOKEN_TYPE_OPERAND) - ) ) { - continue; - } - - if (is_null($nextToken)) { - continue; - } - - if (! ( - (($nextToken->getTokenType() == PHPExcel_Calculation_FormulaToken::TOKEN_TYPE_FUNCTION) && ($nextToken->getTokenSubType() == PHPExcel_Calculation_FormulaToken::TOKEN_SUBTYPE_START)) || - (($nextToken->getTokenType() == PHPExcel_Calculation_FormulaToken::TOKEN_TYPE_SUBEXPRESSION) && ($nextToken->getTokenSubType() == PHPExcel_Calculation_FormulaToken::TOKEN_SUBTYPE_START)) || - ($nextToken->getTokenType() == PHPExcel_Calculation_FormulaToken::TOKEN_TYPE_OPERAND) - ) ) { - continue; - } - - $tokens2[] = new PHPExcel_Calculation_FormulaToken($value, PHPExcel_Calculation_FormulaToken::TOKEN_TYPE_OPERATORINFIX, PHPExcel_Calculation_FormulaToken::TOKEN_SUBTYPE_INTERSECTION); - } - - // move tokens to final list, switching infix "-" operators to prefix when appropriate, switching infix "+" operators - // to noop when appropriate, identifying operand and infix-operator subtypes, and pulling "@" from function names - $this->tokens = array(); - - $tokenCount = count($tokens2); - for ($i = 0; $i < $tokenCount; ++$i) { - $token = $tokens2[$i]; - if (isset($tokens2[$i - 1])) { - $previousToken = $tokens2[$i - 1]; - } else { - $previousToken = null; - } - if (isset($tokens2[$i + 1])) { - $nextToken = $tokens2[$i + 1]; - } else { - $nextToken = null; - } - - if (is_null($token)) { - continue; - } - - if ($token->getTokenType() == PHPExcel_Calculation_FormulaToken::TOKEN_TYPE_OPERATORINFIX && $token->getValue() == "-") { - if ($i == 0) { - $token->setTokenType(PHPExcel_Calculation_FormulaToken::TOKEN_TYPE_OPERATORPREFIX); - } elseif ((($previousToken->getTokenType() == PHPExcel_Calculation_FormulaToken::TOKEN_TYPE_FUNCTION) && - ($previousToken->getTokenSubType() == PHPExcel_Calculation_FormulaToken::TOKEN_SUBTYPE_STOP)) || - (($previousToken->getTokenType() == PHPExcel_Calculation_FormulaToken::TOKEN_TYPE_SUBEXPRESSION) && - ($previousToken->getTokenSubType() == PHPExcel_Calculation_FormulaToken::TOKEN_SUBTYPE_STOP)) || - ($previousToken->getTokenType() == PHPExcel_Calculation_FormulaToken::TOKEN_TYPE_OPERATORPOSTFIX) || - ($previousToken->getTokenType() == PHPExcel_Calculation_FormulaToken::TOKEN_TYPE_OPERAND)) { - $token->setTokenSubType(PHPExcel_Calculation_FormulaToken::TOKEN_SUBTYPE_MATH); - } else { - $token->setTokenType(PHPExcel_Calculation_FormulaToken::TOKEN_TYPE_OPERATORPREFIX); - } - - $this->tokens[] = $token; - continue; - } - - if ($token->getTokenType() == PHPExcel_Calculation_FormulaToken::TOKEN_TYPE_OPERATORINFIX && $token->getValue() == "+") { - if ($i == 0) { - continue; - } elseif ((($previousToken->getTokenType() == PHPExcel_Calculation_FormulaToken::TOKEN_TYPE_FUNCTION) && - ($previousToken->getTokenSubType() == PHPExcel_Calculation_FormulaToken::TOKEN_SUBTYPE_STOP)) || - (($previousToken->getTokenType() == PHPExcel_Calculation_FormulaToken::TOKEN_TYPE_SUBEXPRESSION) && - ($previousToken->getTokenSubType() == PHPExcel_Calculation_FormulaToken::TOKEN_SUBTYPE_STOP)) || - ($previousToken->getTokenType() == PHPExcel_Calculation_FormulaToken::TOKEN_TYPE_OPERATORPOSTFIX) || - ($previousToken->getTokenType() == PHPExcel_Calculation_FormulaToken::TOKEN_TYPE_OPERAND)) { - $token->setTokenSubType(PHPExcel_Calculation_FormulaToken::TOKEN_SUBTYPE_MATH); - } else { - continue; - } - - $this->tokens[] = $token; - continue; - } - - if ($token->getTokenType() == PHPExcel_Calculation_FormulaToken::TOKEN_TYPE_OPERATORINFIX && - $token->getTokenSubType() == PHPExcel_Calculation_FormulaToken::TOKEN_SUBTYPE_NOTHING) { - if (strpos("<>=", substr($token->getValue(), 0, 1)) !== false) { - $token->setTokenSubType(PHPExcel_Calculation_FormulaToken::TOKEN_SUBTYPE_LOGICAL); - } elseif ($token->getValue() == "&") { - $token->setTokenSubType(PHPExcel_Calculation_FormulaToken::TOKEN_SUBTYPE_CONCATENATION); - } else { - $token->setTokenSubType(PHPExcel_Calculation_FormulaToken::TOKEN_SUBTYPE_MATH); - } - - $this->tokens[] = $token; - continue; - } - - if ($token->getTokenType() == PHPExcel_Calculation_FormulaToken::TOKEN_TYPE_OPERAND && - $token->getTokenSubType() == PHPExcel_Calculation_FormulaToken::TOKEN_SUBTYPE_NOTHING) { - if (!is_numeric($token->getValue())) { - if (strtoupper($token->getValue()) == "TRUE" || strtoupper($token->getValue() == "FALSE")) { - $token->setTokenSubType(PHPExcel_Calculation_FormulaToken::TOKEN_SUBTYPE_LOGICAL); - } else { - $token->setTokenSubType(PHPExcel_Calculation_FormulaToken::TOKEN_SUBTYPE_RANGE); - } - } else { - $token->setTokenSubType(PHPExcel_Calculation_FormulaToken::TOKEN_SUBTYPE_NUMBER); - } - - $this->tokens[] = $token; - continue; - } - - if ($token->getTokenType() == PHPExcel_Calculation_FormulaToken::TOKEN_TYPE_FUNCTION) { - if (strlen($token->getValue() > 0)) { - if (substr($token->getValue(), 0, 1) == "@") { - $token->setValue(substr($token->getValue(), 1)); - } - } - } - - $this->tokens[] = $token; - } - } -} diff --git a/Utils/PHPExcel/Calculation/FormulaToken.php b/Utils/PHPExcel/Calculation/FormulaToken.php deleted file mode 100644 index 41c6e3d..0000000 --- a/Utils/PHPExcel/Calculation/FormulaToken.php +++ /dev/null @@ -1,176 +0,0 @@ -value = $pValue; - $this->tokenType = $pTokenType; - $this->tokenSubType = $pTokenSubType; - } - - /** - * Get Value - * - * @return string - */ - public function getValue() - { - return $this->value; - } - - /** - * Set Value - * - * @param string $value - */ - public function setValue($value) - { - $this->value = $value; - } - - /** - * Get Token Type (represented by TOKEN_TYPE_*) - * - * @return string - */ - public function getTokenType() - { - return $this->tokenType; - } - - /** - * Set Token Type - * - * @param string $value - */ - public function setTokenType($value = PHPExcel_Calculation_FormulaToken::TOKEN_TYPE_UNKNOWN) - { - $this->tokenType = $value; - } - - /** - * Get Token SubType (represented by TOKEN_SUBTYPE_*) - * - * @return string - */ - public function getTokenSubType() - { - return $this->tokenSubType; - } - - /** - * Set Token SubType - * - * @param string $value - */ - public function setTokenSubType($value = PHPExcel_Calculation_FormulaToken::TOKEN_SUBTYPE_NOTHING) - { - $this->tokenSubType = $value; - } -} diff --git a/Utils/PHPExcel/Calculation/Function.php b/Utils/PHPExcel/Calculation/Function.php deleted file mode 100644 index d58cef2..0000000 --- a/Utils/PHPExcel/Calculation/Function.php +++ /dev/null @@ -1,148 +0,0 @@ -category = $pCategory; - $this->excelName = $pExcelName; - $this->phpExcelName = $pPHPExcelName; - } else { - throw new PHPExcel_Calculation_Exception("Invalid parameters passed."); - } - } - - /** - * Get Category (represented by CATEGORY_*) - * - * @return string - */ - public function getCategory() - { - return $this->category; - } - - /** - * Set Category (represented by CATEGORY_*) - * - * @param string $value - * @throws PHPExcel_Calculation_Exception - */ - public function setCategory($value = null) - { - if (!is_null($value)) { - $this->category = $value; - } else { - throw new PHPExcel_Calculation_Exception("Invalid parameter passed."); - } - } - - /** - * Get Excel name - * - * @return string - */ - public function getExcelName() - { - return $this->excelName; - } - - /** - * Set Excel name - * - * @param string $value - */ - public function setExcelName($value) - { - $this->excelName = $value; - } - - /** - * Get PHPExcel name - * - * @return string - */ - public function getPHPExcelName() - { - return $this->phpExcelName; - } - - /** - * Set PHPExcel name - * - * @param string $value - */ - public function setPHPExcelName($value) - { - $this->phpExcelName = $value; - } -} diff --git a/Utils/PHPExcel/Calculation/Functions.php b/Utils/PHPExcel/Calculation/Functions.php deleted file mode 100644 index 5a1e5ee..0000000 --- a/Utils/PHPExcel/Calculation/Functions.php +++ /dev/null @@ -1,760 +0,0 @@ - '#NULL!', - 'divisionbyzero' => '#DIV/0!', - 'value' => '#VALUE!', - 'reference' => '#REF!', - 'name' => '#NAME?', - 'num' => '#NUM!', - 'na' => '#N/A', - 'gettingdata' => '#GETTING_DATA' - ); - - - /** - * Set the Compatibility Mode - * - * @access public - * @category Function Configuration - * @param string $compatibilityMode Compatibility Mode - * Permitted values are: - * PHPExcel_Calculation_Functions::COMPATIBILITY_EXCEL 'Excel' - * PHPExcel_Calculation_Functions::COMPATIBILITY_GNUMERIC 'Gnumeric' - * PHPExcel_Calculation_Functions::COMPATIBILITY_OPENOFFICE 'OpenOfficeCalc' - * @return boolean (Success or Failure) - */ - public static function setCompatibilityMode($compatibilityMode) - { - if (($compatibilityMode == self::COMPATIBILITY_EXCEL) || - ($compatibilityMode == self::COMPATIBILITY_GNUMERIC) || - ($compatibilityMode == self::COMPATIBILITY_OPENOFFICE)) { - self::$compatibilityMode = $compatibilityMode; - return true; - } - return false; - } - - - /** - * Return the current Compatibility Mode - * - * @access public - * @category Function Configuration - * @return string Compatibility Mode - * Possible Return values are: - * PHPExcel_Calculation_Functions::COMPATIBILITY_EXCEL 'Excel' - * PHPExcel_Calculation_Functions::COMPATIBILITY_GNUMERIC 'Gnumeric' - * PHPExcel_Calculation_Functions::COMPATIBILITY_OPENOFFICE 'OpenOfficeCalc' - */ - public static function getCompatibilityMode() - { - return self::$compatibilityMode; - } - - - /** - * Set the Return Date Format used by functions that return a date/time (Excel, PHP Serialized Numeric or PHP Object) - * - * @access public - * @category Function Configuration - * @param string $returnDateType Return Date Format - * Permitted values are: - * PHPExcel_Calculation_Functions::RETURNDATE_PHP_NUMERIC 'P' - * PHPExcel_Calculation_Functions::RETURNDATE_PHP_OBJECT 'O' - * PHPExcel_Calculation_Functions::RETURNDATE_EXCEL 'E' - * @return boolean Success or failure - */ - public static function setReturnDateType($returnDateType) - { - if (($returnDateType == self::RETURNDATE_PHP_NUMERIC) || - ($returnDateType == self::RETURNDATE_PHP_OBJECT) || - ($returnDateType == self::RETURNDATE_EXCEL)) { - self::$returnDateType = $returnDateType; - return true; - } - return false; - } - - - /** - * Return the current Return Date Format for functions that return a date/time (Excel, PHP Serialized Numeric or PHP Object) - * - * @access public - * @category Function Configuration - * @return string Return Date Format - * Possible Return values are: - * PHPExcel_Calculation_Functions::RETURNDATE_PHP_NUMERIC 'P' - * PHPExcel_Calculation_Functions::RETURNDATE_PHP_OBJECT 'O' - * PHPExcel_Calculation_Functions::RETURNDATE_EXCEL 'E' - */ - public static function getReturnDateType() - { - return self::$returnDateType; - } - - - /** - * DUMMY - * - * @access public - * @category Error Returns - * @return string #Not Yet Implemented - */ - public static function DUMMY() - { - return '#Not Yet Implemented'; - } - - - /** - * DIV0 - * - * @access public - * @category Error Returns - * @return string #Not Yet Implemented - */ - public static function DIV0() - { - return self::$errorCodes['divisionbyzero']; - } - - - /** - * NA - * - * Excel Function: - * =NA() - * - * Returns the error value #N/A - * #N/A is the error value that means "no value is available." - * - * @access public - * @category Logical Functions - * @return string #N/A! - */ - public static function NA() - { - return self::$errorCodes['na']; - } - - - /** - * NaN - * - * Returns the error value #NUM! - * - * @access public - * @category Error Returns - * @return string #NUM! - */ - public static function NaN() - { - return self::$errorCodes['num']; - } - - - /** - * NAME - * - * Returns the error value #NAME? - * - * @access public - * @category Error Returns - * @return string #NAME? - */ - public static function NAME() - { - return self::$errorCodes['name']; - } - - - /** - * REF - * - * Returns the error value #REF! - * - * @access public - * @category Error Returns - * @return string #REF! - */ - public static function REF() - { - return self::$errorCodes['reference']; - } - - - /** - * NULL - * - * Returns the error value #NULL! - * - * @access public - * @category Error Returns - * @return string #NULL! - */ - public static function NULL() - { - return self::$errorCodes['null']; - } - - - /** - * VALUE - * - * Returns the error value #VALUE! - * - * @access public - * @category Error Returns - * @return string #VALUE! - */ - public static function VALUE() - { - return self::$errorCodes['value']; - } - - - public static function isMatrixValue($idx) - { - return ((substr_count($idx, '.') <= 1) || (preg_match('/\.[A-Z]/', $idx) > 0)); - } - - - public static function isValue($idx) - { - return (substr_count($idx, '.') == 0); - } - - - public static function isCellValue($idx) - { - return (substr_count($idx, '.') > 1); - } - - - public static function ifCondition($condition) - { - $condition = PHPExcel_Calculation_Functions::flattenSingleValue($condition); - if (!isset($condition{0})) { - $condition = '=""'; - } - if (!in_array($condition{0}, array('>', '<', '='))) { - if (!is_numeric($condition)) { - $condition = PHPExcel_Calculation::wrapResult(strtoupper($condition)); - } - return '=' . $condition; - } else { - preg_match('/([<>=]+)(.*)/', $condition, $matches); - list(, $operator, $operand) = $matches; - - if (!is_numeric($operand)) { - $operand = str_replace('"', '""', $operand); - $operand = PHPExcel_Calculation::wrapResult(strtoupper($operand)); - } - - return $operator.$operand; - } - } - - /** - * ERROR_TYPE - * - * @param mixed $value Value to check - * @return boolean - */ - public static function ERROR_TYPE($value = '') - { - $value = self::flattenSingleValue($value); - - $i = 1; - foreach (self::$errorCodes as $errorCode) { - if ($value === $errorCode) { - return $i; - } - ++$i; - } - return self::NA(); - } - - - /** - * IS_BLANK - * - * @param mixed $value Value to check - * @return boolean - */ - public static function IS_BLANK($value = null) - { - if (!is_null($value)) { - $value = self::flattenSingleValue($value); - } - - return is_null($value); - } - - - /** - * IS_ERR - * - * @param mixed $value Value to check - * @return boolean - */ - public static function IS_ERR($value = '') - { - $value = self::flattenSingleValue($value); - - return self::IS_ERROR($value) && (!self::IS_NA($value)); - } - - - /** - * IS_ERROR - * - * @param mixed $value Value to check - * @return boolean - */ - public static function IS_ERROR($value = '') - { - $value = self::flattenSingleValue($value); - - if (!is_string($value)) { - return false; - } - return in_array($value, array_values(self::$errorCodes)); - } - - - /** - * IS_NA - * - * @param mixed $value Value to check - * @return boolean - */ - public static function IS_NA($value = '') - { - $value = self::flattenSingleValue($value); - - return ($value === self::NA()); - } - - - /** - * IS_EVEN - * - * @param mixed $value Value to check - * @return boolean - */ - public static function IS_EVEN($value = null) - { - $value = self::flattenSingleValue($value); - - if ($value === null) { - return self::NAME(); - } elseif ((is_bool($value)) || ((is_string($value)) && (!is_numeric($value)))) { - return self::VALUE(); - } - - return ($value % 2 == 0); - } - - - /** - * IS_ODD - * - * @param mixed $value Value to check - * @return boolean - */ - public static function IS_ODD($value = null) - { - $value = self::flattenSingleValue($value); - - if ($value === null) { - return self::NAME(); - } elseif ((is_bool($value)) || ((is_string($value)) && (!is_numeric($value)))) { - return self::VALUE(); - } - - return (abs($value) % 2 == 1); - } - - - /** - * IS_NUMBER - * - * @param mixed $value Value to check - * @return boolean - */ - public static function IS_NUMBER($value = null) - { - $value = self::flattenSingleValue($value); - - if (is_string($value)) { - return false; - } - return is_numeric($value); - } - - - /** - * IS_LOGICAL - * - * @param mixed $value Value to check - * @return boolean - */ - public static function IS_LOGICAL($value = null) - { - $value = self::flattenSingleValue($value); - - return is_bool($value); - } - - - /** - * IS_TEXT - * - * @param mixed $value Value to check - * @return boolean - */ - public static function IS_TEXT($value = null) - { - $value = self::flattenSingleValue($value); - - return (is_string($value) && !self::IS_ERROR($value)); - } - - - /** - * IS_NONTEXT - * - * @param mixed $value Value to check - * @return boolean - */ - public static function IS_NONTEXT($value = null) - { - return !self::IS_TEXT($value); - } - - - /** - * VERSION - * - * @return string Version information - */ - public static function VERSION() - { - return 'PHPExcel ##VERSION##, ##DATE##'; - } - - - /** - * N - * - * Returns a value converted to a number - * - * @param value The value you want converted - * @return number N converts values listed in the following table - * If value is or refers to N returns - * A number That number - * A date The serial number of that date - * TRUE 1 - * FALSE 0 - * An error value The error value - * Anything else 0 - */ - public static function N($value = null) - { - while (is_array($value)) { - $value = array_shift($value); - } - - switch (gettype($value)) { - case 'double': - case 'float': - case 'integer': - return $value; - case 'boolean': - return (integer) $value; - case 'string': - // Errors - if ((strlen($value) > 0) && ($value{0} == '#')) { - return $value; - } - break; - } - return 0; - } - - - /** - * TYPE - * - * Returns a number that identifies the type of a value - * - * @param value The value you want tested - * @return number N converts values listed in the following table - * If value is or refers to N returns - * A number 1 - * Text 2 - * Logical Value 4 - * An error value 16 - * Array or Matrix 64 - */ - public static function TYPE($value = null) - { - $value = self::flattenArrayIndexed($value); - if (is_array($value) && (count($value) > 1)) { - end($value); - $a = key($value); - // Range of cells is an error - if (self::isCellValue($a)) { - return 16; - // Test for Matrix - } elseif (self::isMatrixValue($a)) { - return 64; - } - } elseif (empty($value)) { - // Empty Cell - return 1; - } - $value = self::flattenSingleValue($value); - - if (($value === null) || (is_float($value)) || (is_int($value))) { - return 1; - } elseif (is_bool($value)) { - return 4; - } elseif (is_array($value)) { - return 64; - } elseif (is_string($value)) { - // Errors - if ((strlen($value) > 0) && ($value{0} == '#')) { - return 16; - } - return 2; - } - return 0; - } - - - /** - * Convert a multi-dimensional array to a simple 1-dimensional array - * - * @param array $array Array to be flattened - * @return array Flattened array - */ - public static function flattenArray($array) - { - if (!is_array($array)) { - return (array) $array; - } - - $arrayValues = array(); - foreach ($array as $value) { - if (is_array($value)) { - foreach ($value as $val) { - if (is_array($val)) { - foreach ($val as $v) { - $arrayValues[] = $v; - } - } else { - $arrayValues[] = $val; - } - } - } else { - $arrayValues[] = $value; - } - } - - return $arrayValues; - } - - - /** - * Convert a multi-dimensional array to a simple 1-dimensional array, but retain an element of indexing - * - * @param array $array Array to be flattened - * @return array Flattened array - */ - public static function flattenArrayIndexed($array) - { - if (!is_array($array)) { - return (array) $array; - } - - $arrayValues = array(); - foreach ($array as $k1 => $value) { - if (is_array($value)) { - foreach ($value as $k2 => $val) { - if (is_array($val)) { - foreach ($val as $k3 => $v) { - $arrayValues[$k1.'.'.$k2.'.'.$k3] = $v; - } - } else { - $arrayValues[$k1.'.'.$k2] = $val; - } - } - } else { - $arrayValues[$k1] = $value; - } - } - - return $arrayValues; - } - - - /** - * Convert an array to a single scalar value by extracting the first element - * - * @param mixed $value Array or scalar value - * @return mixed - */ - public static function flattenSingleValue($value = '') - { - while (is_array($value)) { - $value = array_pop($value); - } - - return $value; - } -} - - -// -// There are a few mathematical functions that aren't available on all versions of PHP for all platforms -// These functions aren't available in Windows implementations of PHP prior to version 5.3.0 -// So we test if they do exist for this version of PHP/operating platform; and if not we create them -// -if (!function_exists('acosh')) { - function acosh($x) - { - return 2 * log(sqrt(($x + 1) / 2) + sqrt(($x - 1) / 2)); - } // function acosh() -} - -if (!function_exists('asinh')) { - function asinh($x) - { - return log($x + sqrt(1 + $x * $x)); - } // function asinh() -} - -if (!function_exists('atanh')) { - function atanh($x) - { - return (log(1 + $x) - log(1 - $x)) / 2; - } // function atanh() -} - - -// -// Strangely, PHP doesn't have a mb_str_replace multibyte function -// As we'll only ever use this function with UTF-8 characters, we can simply "hard-code" the character set -// -if ((!function_exists('mb_str_replace')) && - (function_exists('mb_substr')) && (function_exists('mb_strlen')) && (function_exists('mb_strpos'))) { - function mb_str_replace($search, $replace, $subject) - { - if (is_array($subject)) { - $ret = array(); - foreach ($subject as $key => $val) { - $ret[$key] = mb_str_replace($search, $replace, $val); - } - return $ret; - } - - foreach ((array) $search as $key => $s) { - if ($s == '' && $s !== 0) { - continue; - } - $r = !is_array($replace) ? $replace : (array_key_exists($key, $replace) ? $replace[$key] : ''); - $pos = mb_strpos($subject, $s, 0, 'UTF-8'); - while ($pos !== false) { - $subject = mb_substr($subject, 0, $pos, 'UTF-8') . $r . mb_substr($subject, $pos + mb_strlen($s, 'UTF-8'), 65535, 'UTF-8'); - $pos = mb_strpos($subject, $s, $pos + mb_strlen($r, 'UTF-8'), 'UTF-8'); - } - } - return $subject; - } -} diff --git a/Utils/PHPExcel/Calculation/Logical.php b/Utils/PHPExcel/Calculation/Logical.php deleted file mode 100644 index dd65f01..0000000 --- a/Utils/PHPExcel/Calculation/Logical.php +++ /dev/null @@ -1,285 +0,0 @@ - $arg) { - // Is it a boolean value? - if (is_bool($arg)) { - $returnValue = $returnValue && $arg; - } elseif ((is_numeric($arg)) && (!is_string($arg))) { - $returnValue = $returnValue && ($arg != 0); - } elseif (is_string($arg)) { - $arg = strtoupper($arg); - if (($arg == 'TRUE') || ($arg == PHPExcel_Calculation::getTRUE())) { - $arg = true; - } elseif (($arg == 'FALSE') || ($arg == PHPExcel_Calculation::getFALSE())) { - $arg = false; - } else { - return PHPExcel_Calculation_Functions::VALUE(); - } - $returnValue = $returnValue && ($arg != 0); - } - } - - // Return - if ($argCount < 0) { - return PHPExcel_Calculation_Functions::VALUE(); - } - return $returnValue; - } - - - /** - * LOGICAL_OR - * - * Returns boolean TRUE if any argument is TRUE; returns FALSE if all arguments are FALSE. - * - * Excel Function: - * =OR(logical1[,logical2[, ...]]) - * - * The arguments must evaluate to logical values such as TRUE or FALSE, or the arguments must be arrays - * or references that contain logical values. - * - * Boolean arguments are treated as True or False as appropriate - * Integer or floating point arguments are treated as True, except for 0 or 0.0 which are False - * If any argument value is a string, or a Null, the function returns a #VALUE! error, unless the string holds - * the value TRUE or FALSE, in which case it is evaluated as the corresponding boolean value - * - * @access public - * @category Logical Functions - * @param mixed $arg,... Data values - * @return boolean The logical OR of the arguments. - */ - public static function LOGICAL_OR() - { - // Return value - $returnValue = false; - - // Loop through the arguments - $aArgs = PHPExcel_Calculation_Functions::flattenArray(func_get_args()); - $argCount = -1; - foreach ($aArgs as $argCount => $arg) { - // Is it a boolean value? - if (is_bool($arg)) { - $returnValue = $returnValue || $arg; - } elseif ((is_numeric($arg)) && (!is_string($arg))) { - $returnValue = $returnValue || ($arg != 0); - } elseif (is_string($arg)) { - $arg = strtoupper($arg); - if (($arg == 'TRUE') || ($arg == PHPExcel_Calculation::getTRUE())) { - $arg = true; - } elseif (($arg == 'FALSE') || ($arg == PHPExcel_Calculation::getFALSE())) { - $arg = false; - } else { - return PHPExcel_Calculation_Functions::VALUE(); - } - $returnValue = $returnValue || ($arg != 0); - } - } - - // Return - if ($argCount < 0) { - return PHPExcel_Calculation_Functions::VALUE(); - } - return $returnValue; - } - - - /** - * NOT - * - * Returns the boolean inverse of the argument. - * - * Excel Function: - * =NOT(logical) - * - * The argument must evaluate to a logical value such as TRUE or FALSE - * - * Boolean arguments are treated as True or False as appropriate - * Integer or floating point arguments are treated as True, except for 0 or 0.0 which are False - * If any argument value is a string, or a Null, the function returns a #VALUE! error, unless the string holds - * the value TRUE or FALSE, in which case it is evaluated as the corresponding boolean value - * - * @access public - * @category Logical Functions - * @param mixed $logical A value or expression that can be evaluated to TRUE or FALSE - * @return boolean The boolean inverse of the argument. - */ - public static function NOT($logical = false) - { - $logical = PHPExcel_Calculation_Functions::flattenSingleValue($logical); - if (is_string($logical)) { - $logical = strtoupper($logical); - if (($logical == 'TRUE') || ($logical == PHPExcel_Calculation::getTRUE())) { - return false; - } elseif (($logical == 'FALSE') || ($logical == PHPExcel_Calculation::getFALSE())) { - return true; - } else { - return PHPExcel_Calculation_Functions::VALUE(); - } - } - - return !$logical; - } - - /** - * STATEMENT_IF - * - * Returns one value if a condition you specify evaluates to TRUE and another value if it evaluates to FALSE. - * - * Excel Function: - * =IF(condition[,returnIfTrue[,returnIfFalse]]) - * - * Condition is any value or expression that can be evaluated to TRUE or FALSE. - * For example, A10=100 is a logical expression; if the value in cell A10 is equal to 100, - * the expression evaluates to TRUE. Otherwise, the expression evaluates to FALSE. - * This argument can use any comparison calculation operator. - * ReturnIfTrue is the value that is returned if condition evaluates to TRUE. - * For example, if this argument is the text string "Within budget" and the condition argument evaluates to TRUE, - * then the IF function returns the text "Within budget" - * If condition is TRUE and ReturnIfTrue is blank, this argument returns 0 (zero). To display the word TRUE, use - * the logical value TRUE for this argument. - * ReturnIfTrue can be another formula. - * ReturnIfFalse is the value that is returned if condition evaluates to FALSE. - * For example, if this argument is the text string "Over budget" and the condition argument evaluates to FALSE, - * then the IF function returns the text "Over budget". - * If condition is FALSE and ReturnIfFalse is omitted, then the logical value FALSE is returned. - * If condition is FALSE and ReturnIfFalse is blank, then the value 0 (zero) is returned. - * ReturnIfFalse can be another formula. - * - * @access public - * @category Logical Functions - * @param mixed $condition Condition to evaluate - * @param mixed $returnIfTrue Value to return when condition is true - * @param mixed $returnIfFalse Optional value to return when condition is false - * @return mixed The value of returnIfTrue or returnIfFalse determined by condition - */ - public static function STATEMENT_IF($condition = true, $returnIfTrue = 0, $returnIfFalse = false) - { - $condition = (is_null($condition)) ? true : (boolean) PHPExcel_Calculation_Functions::flattenSingleValue($condition); - $returnIfTrue = (is_null($returnIfTrue)) ? 0 : PHPExcel_Calculation_Functions::flattenSingleValue($returnIfTrue); - $returnIfFalse = (is_null($returnIfFalse)) ? false : PHPExcel_Calculation_Functions::flattenSingleValue($returnIfFalse); - - return ($condition) ? $returnIfTrue : $returnIfFalse; - } - - - /** - * IFERROR - * - * Excel Function: - * =IFERROR(testValue,errorpart) - * - * @access public - * @category Logical Functions - * @param mixed $testValue Value to check, is also the value returned when no error - * @param mixed $errorpart Value to return when testValue is an error condition - * @return mixed The value of errorpart or testValue determined by error condition - */ - public static function IFERROR($testValue = '', $errorpart = '') - { - $testValue = (is_null($testValue)) ? '' : PHPExcel_Calculation_Functions::flattenSingleValue($testValue); - $errorpart = (is_null($errorpart)) ? '' : PHPExcel_Calculation_Functions::flattenSingleValue($errorpart); - - return self::STATEMENT_IF(PHPExcel_Calculation_Functions::IS_ERROR($testValue), $errorpart, $testValue); - } -} diff --git a/Utils/PHPExcel/Calculation/LookupRef.php b/Utils/PHPExcel/Calculation/LookupRef.php deleted file mode 100644 index d860551..0000000 --- a/Utils/PHPExcel/Calculation/LookupRef.php +++ /dev/null @@ -1,878 +0,0 @@ - '') { - if (strpos($sheetText, ' ') !== false) { - $sheetText = "'".$sheetText."'"; - } - $sheetText .='!'; - } - if ((!is_bool($referenceStyle)) || $referenceStyle) { - $rowRelative = $columnRelative = '$'; - $column = PHPExcel_Cell::stringFromColumnIndex($column-1); - if (($relativity == 2) || ($relativity == 4)) { - $columnRelative = ''; - } - if (($relativity == 3) || ($relativity == 4)) { - $rowRelative = ''; - } - return $sheetText.$columnRelative.$column.$rowRelative.$row; - } else { - if (($relativity == 2) || ($relativity == 4)) { - $column = '['.$column.']'; - } - if (($relativity == 3) || ($relativity == 4)) { - $row = '['.$row.']'; - } - return $sheetText.'R'.$row.'C'.$column; - } - } - - - /** - * COLUMN - * - * Returns the column number of the given cell reference - * If the cell reference is a range of cells, COLUMN returns the column numbers of each column in the reference as a horizontal array. - * If cell reference is omitted, and the function is being called through the calculation engine, then it is assumed to be the - * reference of the cell in which the COLUMN function appears; otherwise this function returns 0. - * - * Excel Function: - * =COLUMN([cellAddress]) - * - * @param cellAddress A reference to a range of cells for which you want the column numbers - * @return integer or array of integer - */ - public static function COLUMN($cellAddress = null) - { - if (is_null($cellAddress) || trim($cellAddress) === '') { - return 0; - } - - if (is_array($cellAddress)) { - foreach ($cellAddress as $columnKey => $value) { - $columnKey = preg_replace('/[^a-z]/i', '', $columnKey); - return (integer) PHPExcel_Cell::columnIndexFromString($columnKey); - } - } else { - if (strpos($cellAddress, '!') !== false) { - list($sheet, $cellAddress) = explode('!', $cellAddress); - } - if (strpos($cellAddress, ':') !== false) { - list($startAddress, $endAddress) = explode(':', $cellAddress); - $startAddress = preg_replace('/[^a-z]/i', '', $startAddress); - $endAddress = preg_replace('/[^a-z]/i', '', $endAddress); - $returnValue = array(); - do { - $returnValue[] = (integer) PHPExcel_Cell::columnIndexFromString($startAddress); - } while ($startAddress++ != $endAddress); - return $returnValue; - } else { - $cellAddress = preg_replace('/[^a-z]/i', '', $cellAddress); - return (integer) PHPExcel_Cell::columnIndexFromString($cellAddress); - } - } - } - - - /** - * COLUMNS - * - * Returns the number of columns in an array or reference. - * - * Excel Function: - * =COLUMNS(cellAddress) - * - * @param cellAddress An array or array formula, or a reference to a range of cells for which you want the number of columns - * @return integer The number of columns in cellAddress - */ - public static function COLUMNS($cellAddress = null) - { - if (is_null($cellAddress) || $cellAddress === '') { - return 1; - } elseif (!is_array($cellAddress)) { - return PHPExcel_Calculation_Functions::VALUE(); - } - - reset($cellAddress); - $isMatrix = (is_numeric(key($cellAddress))); - list($columns, $rows) = PHPExcel_Calculation::_getMatrixDimensions($cellAddress); - - if ($isMatrix) { - return $rows; - } else { - return $columns; - } - } - - - /** - * ROW - * - * Returns the row number of the given cell reference - * If the cell reference is a range of cells, ROW returns the row numbers of each row in the reference as a vertical array. - * If cell reference is omitted, and the function is being called through the calculation engine, then it is assumed to be the - * reference of the cell in which the ROW function appears; otherwise this function returns 0. - * - * Excel Function: - * =ROW([cellAddress]) - * - * @param cellAddress A reference to a range of cells for which you want the row numbers - * @return integer or array of integer - */ - public static function ROW($cellAddress = null) - { - if (is_null($cellAddress) || trim($cellAddress) === '') { - return 0; - } - - if (is_array($cellAddress)) { - foreach ($cellAddress as $columnKey => $rowValue) { - foreach ($rowValue as $rowKey => $cellValue) { - return (integer) preg_replace('/[^0-9]/i', '', $rowKey); - } - } - } else { - if (strpos($cellAddress, '!') !== false) { - list($sheet, $cellAddress) = explode('!', $cellAddress); - } - if (strpos($cellAddress, ':') !== false) { - list($startAddress, $endAddress) = explode(':', $cellAddress); - $startAddress = preg_replace('/[^0-9]/', '', $startAddress); - $endAddress = preg_replace('/[^0-9]/', '', $endAddress); - $returnValue = array(); - do { - $returnValue[][] = (integer) $startAddress; - } while ($startAddress++ != $endAddress); - return $returnValue; - } else { - list($cellAddress) = explode(':', $cellAddress); - return (integer) preg_replace('/[^0-9]/', '', $cellAddress); - } - } - } - - - /** - * ROWS - * - * Returns the number of rows in an array or reference. - * - * Excel Function: - * =ROWS(cellAddress) - * - * @param cellAddress An array or array formula, or a reference to a range of cells for which you want the number of rows - * @return integer The number of rows in cellAddress - */ - public static function ROWS($cellAddress = null) - { - if (is_null($cellAddress) || $cellAddress === '') { - return 1; - } elseif (!is_array($cellAddress)) { - return PHPExcel_Calculation_Functions::VALUE(); - } - - reset($cellAddress); - $isMatrix = (is_numeric(key($cellAddress))); - list($columns, $rows) = PHPExcel_Calculation::_getMatrixDimensions($cellAddress); - - if ($isMatrix) { - return $columns; - } else { - return $rows; - } - } - - - /** - * HYPERLINK - * - * Excel Function: - * =HYPERLINK(linkURL,displayName) - * - * @access public - * @category Logical Functions - * @param string $linkURL Value to check, is also the value returned when no error - * @param string $displayName Value to return when testValue is an error condition - * @param PHPExcel_Cell $pCell The cell to set the hyperlink in - * @return mixed The value of $displayName (or $linkURL if $displayName was blank) - */ - public static function HYPERLINK($linkURL = '', $displayName = null, PHPExcel_Cell $pCell = null) - { - $args = func_get_args(); - $pCell = array_pop($args); - - $linkURL = (is_null($linkURL)) ? '' : PHPExcel_Calculation_Functions::flattenSingleValue($linkURL); - $displayName = (is_null($displayName)) ? '' : PHPExcel_Calculation_Functions::flattenSingleValue($displayName); - - if ((!is_object($pCell)) || (trim($linkURL) == '')) { - return PHPExcel_Calculation_Functions::REF(); - } - - if ((is_object($displayName)) || trim($displayName) == '') { - $displayName = $linkURL; - } - - $pCell->getHyperlink()->setUrl($linkURL); - - return $displayName; - } - - - /** - * INDIRECT - * - * Returns the reference specified by a text string. - * References are immediately evaluated to display their contents. - * - * Excel Function: - * =INDIRECT(cellAddress) - * - * NOTE - INDIRECT() does not yet support the optional a1 parameter introduced in Excel 2010 - * - * @param cellAddress $cellAddress The cell address of the current cell (containing this formula) - * @param PHPExcel_Cell $pCell The current cell (containing this formula) - * @return mixed The cells referenced by cellAddress - * - * @todo Support for the optional a1 parameter introduced in Excel 2010 - * - */ - public static function INDIRECT($cellAddress = null, PHPExcel_Cell $pCell = null) - { - $cellAddress = PHPExcel_Calculation_Functions::flattenSingleValue($cellAddress); - if (is_null($cellAddress) || $cellAddress === '') { - return PHPExcel_Calculation_Functions::REF(); - } - - $cellAddress1 = $cellAddress; - $cellAddress2 = null; - if (strpos($cellAddress, ':') !== false) { - list($cellAddress1, $cellAddress2) = explode(':', $cellAddress); - } - - if ((!preg_match('/^'.PHPExcel_Calculation::CALCULATION_REGEXP_CELLREF.'$/i', $cellAddress1, $matches)) || - ((!is_null($cellAddress2)) && (!preg_match('/^'.PHPExcel_Calculation::CALCULATION_REGEXP_CELLREF.'$/i', $cellAddress2, $matches)))) { - if (!preg_match('/^'.PHPExcel_Calculation::CALCULATION_REGEXP_NAMEDRANGE.'$/i', $cellAddress1, $matches)) { - return PHPExcel_Calculation_Functions::REF(); - } - - if (strpos($cellAddress, '!') !== false) { - list($sheetName, $cellAddress) = explode('!', $cellAddress); - $sheetName = trim($sheetName, "'"); - $pSheet = $pCell->getWorksheet()->getParent()->getSheetByName($sheetName); - } else { - $pSheet = $pCell->getWorksheet(); - } - - return PHPExcel_Calculation::getInstance()->extractNamedRange($cellAddress, $pSheet, false); - } - - if (strpos($cellAddress, '!') !== false) { - list($sheetName, $cellAddress) = explode('!', $cellAddress); - $sheetName = trim($sheetName, "'"); - $pSheet = $pCell->getWorksheet()->getParent()->getSheetByName($sheetName); - } else { - $pSheet = $pCell->getWorksheet(); - } - - return PHPExcel_Calculation::getInstance()->extractCellRange($cellAddress, $pSheet, false); - } - - - /** - * OFFSET - * - * Returns a reference to a range that is a specified number of rows and columns from a cell or range of cells. - * The reference that is returned can be a single cell or a range of cells. You can specify the number of rows and - * the number of columns to be returned. - * - * Excel Function: - * =OFFSET(cellAddress, rows, cols, [height], [width]) - * - * @param cellAddress The reference from which you want to base the offset. Reference must refer to a cell or - * range of adjacent cells; otherwise, OFFSET returns the #VALUE! error value. - * @param rows The number of rows, up or down, that you want the upper-left cell to refer to. - * Using 5 as the rows argument specifies that the upper-left cell in the reference is - * five rows below reference. Rows can be positive (which means below the starting reference) - * or negative (which means above the starting reference). - * @param cols The number of columns, to the left or right, that you want the upper-left cell of the result - * to refer to. Using 5 as the cols argument specifies that the upper-left cell in the - * reference is five columns to the right of reference. Cols can be positive (which means - * to the right of the starting reference) or negative (which means to the left of the - * starting reference). - * @param height The height, in number of rows, that you want the returned reference to be. Height must be a positive number. - * @param width The width, in number of columns, that you want the returned reference to be. Width must be a positive number. - * @return string A reference to a cell or range of cells - */ - public static function OFFSET($cellAddress = null, $rows = 0, $columns = 0, $height = null, $width = null) - { - $rows = PHPExcel_Calculation_Functions::flattenSingleValue($rows); - $columns = PHPExcel_Calculation_Functions::flattenSingleValue($columns); - $height = PHPExcel_Calculation_Functions::flattenSingleValue($height); - $width = PHPExcel_Calculation_Functions::flattenSingleValue($width); - if ($cellAddress == null) { - return 0; - } - - $args = func_get_args(); - $pCell = array_pop($args); - if (!is_object($pCell)) { - return PHPExcel_Calculation_Functions::REF(); - } - - $sheetName = null; - if (strpos($cellAddress, "!")) { - list($sheetName, $cellAddress) = explode("!", $cellAddress); - $sheetName = trim($sheetName, "'"); - } - if (strpos($cellAddress, ":")) { - list($startCell, $endCell) = explode(":", $cellAddress); - } else { - $startCell = $endCell = $cellAddress; - } - list($startCellColumn, $startCellRow) = PHPExcel_Cell::coordinateFromString($startCell); - list($endCellColumn, $endCellRow) = PHPExcel_Cell::coordinateFromString($endCell); - - $startCellRow += $rows; - $startCellColumn = PHPExcel_Cell::columnIndexFromString($startCellColumn) - 1; - $startCellColumn += $columns; - - if (($startCellRow <= 0) || ($startCellColumn < 0)) { - return PHPExcel_Calculation_Functions::REF(); - } - $endCellColumn = PHPExcel_Cell::columnIndexFromString($endCellColumn) - 1; - if (($width != null) && (!is_object($width))) { - $endCellColumn = $startCellColumn + $width - 1; - } else { - $endCellColumn += $columns; - } - $startCellColumn = PHPExcel_Cell::stringFromColumnIndex($startCellColumn); - - if (($height != null) && (!is_object($height))) { - $endCellRow = $startCellRow + $height - 1; - } else { - $endCellRow += $rows; - } - - if (($endCellRow <= 0) || ($endCellColumn < 0)) { - return PHPExcel_Calculation_Functions::REF(); - } - $endCellColumn = PHPExcel_Cell::stringFromColumnIndex($endCellColumn); - - $cellAddress = $startCellColumn.$startCellRow; - if (($startCellColumn != $endCellColumn) || ($startCellRow != $endCellRow)) { - $cellAddress .= ':'.$endCellColumn.$endCellRow; - } - - if ($sheetName !== null) { - $pSheet = $pCell->getWorksheet()->getParent()->getSheetByName($sheetName); - } else { - $pSheet = $pCell->getWorksheet(); - } - - return PHPExcel_Calculation::getInstance()->extractCellRange($cellAddress, $pSheet, false); - } - - - /** - * CHOOSE - * - * Uses lookup_value to return a value from the list of value arguments. - * Use CHOOSE to select one of up to 254 values based on the lookup_value. - * - * Excel Function: - * =CHOOSE(index_num, value1, [value2], ...) - * - * @param index_num Specifies which value argument is selected. - * Index_num must be a number between 1 and 254, or a formula or reference to a cell containing a number - * between 1 and 254. - * @param value1... Value1 is required, subsequent values are optional. - * Between 1 to 254 value arguments from which CHOOSE selects a value or an action to perform based on - * index_num. The arguments can be numbers, cell references, defined names, formulas, functions, or - * text. - * @return mixed The selected value - */ - public static function CHOOSE() - { - $chooseArgs = func_get_args(); - $chosenEntry = PHPExcel_Calculation_Functions::flattenArray(array_shift($chooseArgs)); - $entryCount = count($chooseArgs) - 1; - - if (is_array($chosenEntry)) { - $chosenEntry = array_shift($chosenEntry); - } - if ((is_numeric($chosenEntry)) && (!is_bool($chosenEntry))) { - --$chosenEntry; - } else { - return PHPExcel_Calculation_Functions::VALUE(); - } - $chosenEntry = floor($chosenEntry); - if (($chosenEntry < 0) || ($chosenEntry > $entryCount)) { - return PHPExcel_Calculation_Functions::VALUE(); - } - - if (is_array($chooseArgs[$chosenEntry])) { - return PHPExcel_Calculation_Functions::flattenArray($chooseArgs[$chosenEntry]); - } else { - return $chooseArgs[$chosenEntry]; - } - } - - - /** - * MATCH - * - * The MATCH function searches for a specified item in a range of cells - * - * Excel Function: - * =MATCH(lookup_value, lookup_array, [match_type]) - * - * @param lookup_value The value that you want to match in lookup_array - * @param lookup_array The range of cells being searched - * @param match_type The number -1, 0, or 1. -1 means above, 0 means exact match, 1 means below. If match_type is 1 or -1, the list has to be ordered. - * @return integer The relative position of the found item - */ - public static function MATCH($lookup_value, $lookup_array, $match_type = 1) - { - $lookup_array = PHPExcel_Calculation_Functions::flattenArray($lookup_array); - $lookup_value = PHPExcel_Calculation_Functions::flattenSingleValue($lookup_value); - $match_type = (is_null($match_type)) ? 1 : (int) PHPExcel_Calculation_Functions::flattenSingleValue($match_type); - // MATCH is not case sensitive - $lookup_value = strtolower($lookup_value); - - // lookup_value type has to be number, text, or logical values - if ((!is_numeric($lookup_value)) && (!is_string($lookup_value)) && (!is_bool($lookup_value))) { - return PHPExcel_Calculation_Functions::NA(); - } - - // match_type is 0, 1 or -1 - if (($match_type !== 0) && ($match_type !== -1) && ($match_type !== 1)) { - return PHPExcel_Calculation_Functions::NA(); - } - - // lookup_array should not be empty - $lookupArraySize = count($lookup_array); - if ($lookupArraySize <= 0) { - return PHPExcel_Calculation_Functions::NA(); - } - - // lookup_array should contain only number, text, or logical values, or empty (null) cells - foreach ($lookup_array as $i => $lookupArrayValue) { - // check the type of the value - if ((!is_numeric($lookupArrayValue)) && (!is_string($lookupArrayValue)) && - (!is_bool($lookupArrayValue)) && (!is_null($lookupArrayValue))) { - return PHPExcel_Calculation_Functions::NA(); - } - // convert strings to lowercase for case-insensitive testing - if (is_string($lookupArrayValue)) { - $lookup_array[$i] = strtolower($lookupArrayValue); - } - if ((is_null($lookupArrayValue)) && (($match_type == 1) || ($match_type == -1))) { - $lookup_array = array_slice($lookup_array, 0, $i-1); - } - } - - // if match_type is 1 or -1, the list has to be ordered - if ($match_type == 1) { - asort($lookup_array); - $keySet = array_keys($lookup_array); - } elseif ($match_type == -1) { - arsort($lookup_array); - $keySet = array_keys($lookup_array); - } - - // ** - // find the match - // ** - foreach ($lookup_array as $i => $lookupArrayValue) { - if (($match_type == 0) && ($lookupArrayValue == $lookup_value)) { - // exact match - return ++$i; - } elseif (($match_type == -1) && ($lookupArrayValue <= $lookup_value)) { - $i = array_search($i, $keySet); - // if match_type is -1 <=> find the smallest value that is greater than or equal to lookup_value - if ($i < 1) { - // 1st cell was already smaller than the lookup_value - break; - } else { - // the previous cell was the match - return $keySet[$i-1]+1; - } - } elseif (($match_type == 1) && ($lookupArrayValue >= $lookup_value)) { - $i = array_search($i, $keySet); - // if match_type is 1 <=> find the largest value that is less than or equal to lookup_value - if ($i < 1) { - // 1st cell was already bigger than the lookup_value - break; - } else { - // the previous cell was the match - return $keySet[$i-1]+1; - } - } - } - - // unsuccessful in finding a match, return #N/A error value - return PHPExcel_Calculation_Functions::NA(); - } - - - /** - * INDEX - * - * Uses an index to choose a value from a reference or array - * - * Excel Function: - * =INDEX(range_array, row_num, [column_num]) - * - * @param range_array A range of cells or an array constant - * @param row_num The row in array from which to return a value. If row_num is omitted, column_num is required. - * @param column_num The column in array from which to return a value. If column_num is omitted, row_num is required. - * @return mixed the value of a specified cell or array of cells - */ - public static function INDEX($arrayValues, $rowNum = 0, $columnNum = 0) - { - if (($rowNum < 0) || ($columnNum < 0)) { - return PHPExcel_Calculation_Functions::VALUE(); - } - - if (!is_array($arrayValues)) { - return PHPExcel_Calculation_Functions::REF(); - } - - $rowKeys = array_keys($arrayValues); - $columnKeys = @array_keys($arrayValues[$rowKeys[0]]); - - if ($columnNum > count($columnKeys)) { - return PHPExcel_Calculation_Functions::VALUE(); - } elseif ($columnNum == 0) { - if ($rowNum == 0) { - return $arrayValues; - } - $rowNum = $rowKeys[--$rowNum]; - $returnArray = array(); - foreach ($arrayValues as $arrayColumn) { - if (is_array($arrayColumn)) { - if (isset($arrayColumn[$rowNum])) { - $returnArray[] = $arrayColumn[$rowNum]; - } else { - return $arrayValues[$rowNum]; - } - } else { - return $arrayValues[$rowNum]; - } - } - return $returnArray; - } - $columnNum = $columnKeys[--$columnNum]; - if ($rowNum > count($rowKeys)) { - return PHPExcel_Calculation_Functions::VALUE(); - } elseif ($rowNum == 0) { - return $arrayValues[$columnNum]; - } - $rowNum = $rowKeys[--$rowNum]; - - return $arrayValues[$rowNum][$columnNum]; - } - - - /** - * TRANSPOSE - * - * @param array $matrixData A matrix of values - * @return array - * - * Unlike the Excel TRANSPOSE function, which will only work on a single row or column, this function will transpose a full matrix. - */ - public static function TRANSPOSE($matrixData) - { - $returnMatrix = array(); - if (!is_array($matrixData)) { - $matrixData = array(array($matrixData)); - } - - $column = 0; - foreach ($matrixData as $matrixRow) { - $row = 0; - foreach ($matrixRow as $matrixCell) { - $returnMatrix[$row][$column] = $matrixCell; - ++$row; - } - ++$column; - } - return $returnMatrix; - } - - - private static function vlookupSort($a, $b) - { - reset($a); - $firstColumn = key($a); - if (($aLower = strtolower($a[$firstColumn])) == ($bLower = strtolower($b[$firstColumn]))) { - return 0; - } - return ($aLower < $bLower) ? -1 : 1; - } - - - /** - * VLOOKUP - * The VLOOKUP function searches for value in the left-most column of lookup_array and returns the value in the same row based on the index_number. - * @param lookup_value The value that you want to match in lookup_array - * @param lookup_array The range of cells being searched - * @param index_number The column number in table_array from which the matching value must be returned. The first column is 1. - * @param not_exact_match Determines if you are looking for an exact match based on lookup_value. - * @return mixed The value of the found cell - */ - public static function VLOOKUP($lookup_value, $lookup_array, $index_number, $not_exact_match = true) - { - $lookup_value = PHPExcel_Calculation_Functions::flattenSingleValue($lookup_value); - $index_number = PHPExcel_Calculation_Functions::flattenSingleValue($index_number); - $not_exact_match = PHPExcel_Calculation_Functions::flattenSingleValue($not_exact_match); - - // index_number must be greater than or equal to 1 - if ($index_number < 1) { - return PHPExcel_Calculation_Functions::VALUE(); - } - - // index_number must be less than or equal to the number of columns in lookup_array - if ((!is_array($lookup_array)) || (empty($lookup_array))) { - return PHPExcel_Calculation_Functions::REF(); - } else { - $f = array_keys($lookup_array); - $firstRow = array_pop($f); - if ((!is_array($lookup_array[$firstRow])) || ($index_number > count($lookup_array[$firstRow]))) { - return PHPExcel_Calculation_Functions::REF(); - } else { - $columnKeys = array_keys($lookup_array[$firstRow]); - $returnColumn = $columnKeys[--$index_number]; - $firstColumn = array_shift($columnKeys); - } - } - - if (!$not_exact_match) { - uasort($lookup_array, array('self', 'vlookupSort')); - } - - $rowNumber = $rowValue = false; - foreach ($lookup_array as $rowKey => $rowData) { - if ((is_numeric($lookup_value) && is_numeric($rowData[$firstColumn]) && ($rowData[$firstColumn] > $lookup_value)) || - (!is_numeric($lookup_value) && !is_numeric($rowData[$firstColumn]) && (strtolower($rowData[$firstColumn]) > strtolower($lookup_value)))) { - break; - } - $rowNumber = $rowKey; - $rowValue = $rowData[$firstColumn]; - } - - if ($rowNumber !== false) { - if ((!$not_exact_match) && ($rowValue != $lookup_value)) { - // if an exact match is required, we have what we need to return an appropriate response - return PHPExcel_Calculation_Functions::NA(); - } else { - // otherwise return the appropriate value - return $lookup_array[$rowNumber][$returnColumn]; - } - } - - return PHPExcel_Calculation_Functions::NA(); - } - - - /** - * HLOOKUP - * The HLOOKUP function searches for value in the top-most row of lookup_array and returns the value in the same column based on the index_number. - * @param lookup_value The value that you want to match in lookup_array - * @param lookup_array The range of cells being searched - * @param index_number The row number in table_array from which the matching value must be returned. The first row is 1. - * @param not_exact_match Determines if you are looking for an exact match based on lookup_value. - * @return mixed The value of the found cell - */ - public static function HLOOKUP($lookup_value, $lookup_array, $index_number, $not_exact_match = true) - { - $lookup_value = PHPExcel_Calculation_Functions::flattenSingleValue($lookup_value); - $index_number = PHPExcel_Calculation_Functions::flattenSingleValue($index_number); - $not_exact_match = PHPExcel_Calculation_Functions::flattenSingleValue($not_exact_match); - - // index_number must be greater than or equal to 1 - if ($index_number < 1) { - return PHPExcel_Calculation_Functions::VALUE(); - } - - // index_number must be less than or equal to the number of columns in lookup_array - if ((!is_array($lookup_array)) || (empty($lookup_array))) { - return PHPExcel_Calculation_Functions::REF(); - } else { - $f = array_keys($lookup_array); - $firstRow = array_pop($f); - if ((!is_array($lookup_array[$firstRow])) || ($index_number > count($lookup_array[$firstRow]))) { - return PHPExcel_Calculation_Functions::REF(); - } else { - $columnKeys = array_keys($lookup_array[$firstRow]); - $firstkey = $f[0] - 1; - $returnColumn = $firstkey + $index_number; - $firstColumn = array_shift($f); - } - } - - if (!$not_exact_match) { - $firstRowH = asort($lookup_array[$firstColumn]); - } - - $rowNumber = $rowValue = false; - foreach ($lookup_array[$firstColumn] as $rowKey => $rowData) { - if ((is_numeric($lookup_value) && is_numeric($rowData) && ($rowData > $lookup_value)) || - (!is_numeric($lookup_value) && !is_numeric($rowData) && (strtolower($rowData) > strtolower($lookup_value)))) { - break; - } - $rowNumber = $rowKey; - $rowValue = $rowData; - } - - if ($rowNumber !== false) { - if ((!$not_exact_match) && ($rowValue != $lookup_value)) { - // if an exact match is required, we have what we need to return an appropriate response - return PHPExcel_Calculation_Functions::NA(); - } else { - // otherwise return the appropriate value - return $lookup_array[$returnColumn][$rowNumber]; - } - } - - return PHPExcel_Calculation_Functions::NA(); - } - - - /** - * LOOKUP - * The LOOKUP function searches for value either from a one-row or one-column range or from an array. - * @param lookup_value The value that you want to match in lookup_array - * @param lookup_vector The range of cells being searched - * @param result_vector The column from which the matching value must be returned - * @return mixed The value of the found cell - */ - public static function LOOKUP($lookup_value, $lookup_vector, $result_vector = null) - { - $lookup_value = PHPExcel_Calculation_Functions::flattenSingleValue($lookup_value); - - if (!is_array($lookup_vector)) { - return PHPExcel_Calculation_Functions::NA(); - } - $lookupRows = count($lookup_vector); - $l = array_keys($lookup_vector); - $l = array_shift($l); - $lookupColumns = count($lookup_vector[$l]); - if ((($lookupRows == 1) && ($lookupColumns > 1)) || (($lookupRows == 2) && ($lookupColumns != 2))) { - $lookup_vector = self::TRANSPOSE($lookup_vector); - $lookupRows = count($lookup_vector); - $l = array_keys($lookup_vector); - $lookupColumns = count($lookup_vector[array_shift($l)]); - } - - if (is_null($result_vector)) { - $result_vector = $lookup_vector; - } - $resultRows = count($result_vector); - $l = array_keys($result_vector); - $l = array_shift($l); - $resultColumns = count($result_vector[$l]); - if ((($resultRows == 1) && ($resultColumns > 1)) || (($resultRows == 2) && ($resultColumns != 2))) { - $result_vector = self::TRANSPOSE($result_vector); - $resultRows = count($result_vector); - $r = array_keys($result_vector); - $resultColumns = count($result_vector[array_shift($r)]); - } - - if ($lookupRows == 2) { - $result_vector = array_pop($lookup_vector); - $lookup_vector = array_shift($lookup_vector); - } - if ($lookupColumns != 2) { - foreach ($lookup_vector as &$value) { - if (is_array($value)) { - $k = array_keys($value); - $key1 = $key2 = array_shift($k); - $key2++; - $dataValue1 = $value[$key1]; - } else { - $key1 = 0; - $key2 = 1; - $dataValue1 = $value; - } - $dataValue2 = array_shift($result_vector); - if (is_array($dataValue2)) { - $dataValue2 = array_shift($dataValue2); - } - $value = array($key1 => $dataValue1, $key2 => $dataValue2); - } - unset($value); - } - - return self::VLOOKUP($lookup_value, $lookup_vector, 2); - } -} diff --git a/Utils/PHPExcel/Calculation/MathTrig.php b/Utils/PHPExcel/Calculation/MathTrig.php deleted file mode 100644 index 894ba9c..0000000 --- a/Utils/PHPExcel/Calculation/MathTrig.php +++ /dev/null @@ -1,1459 +0,0 @@ - 1; --$i) { - if (($value % $i) == 0) { - $factorArray = array_merge($factorArray, self::factors($value / $i)); - $factorArray = array_merge($factorArray, self::factors($i)); - if ($i <= sqrt($value)) { - break; - } - } - } - if (!empty($factorArray)) { - rsort($factorArray); - return $factorArray; - } else { - return array((integer) $value); - } - } - - - private static function romanCut($num, $n) - { - return ($num - ($num % $n ) ) / $n; - } - - - /** - * ATAN2 - * - * This function calculates the arc tangent of the two variables x and y. It is similar to - * calculating the arc tangent of y ÷ x, except that the signs of both arguments are used - * to determine the quadrant of the result. - * The arctangent is the angle from the x-axis to a line containing the origin (0, 0) and a - * point with coordinates (xCoordinate, yCoordinate). The angle is given in radians between - * -pi and pi, excluding -pi. - * - * Note that the Excel ATAN2() function accepts its arguments in the reverse order to the standard - * PHP atan2() function, so we need to reverse them here before calling the PHP atan() function. - * - * Excel Function: - * ATAN2(xCoordinate,yCoordinate) - * - * @access public - * @category Mathematical and Trigonometric Functions - * @param float $xCoordinate The x-coordinate of the point. - * @param float $yCoordinate The y-coordinate of the point. - * @return float The inverse tangent of the specified x- and y-coordinates. - */ - public static function ATAN2($xCoordinate = null, $yCoordinate = null) - { - $xCoordinate = PHPExcel_Calculation_Functions::flattenSingleValue($xCoordinate); - $yCoordinate = PHPExcel_Calculation_Functions::flattenSingleValue($yCoordinate); - - $xCoordinate = ($xCoordinate !== null) ? $xCoordinate : 0.0; - $yCoordinate = ($yCoordinate !== null) ? $yCoordinate : 0.0; - - if (((is_numeric($xCoordinate)) || (is_bool($xCoordinate))) && - ((is_numeric($yCoordinate))) || (is_bool($yCoordinate))) { - $xCoordinate = (float) $xCoordinate; - $yCoordinate = (float) $yCoordinate; - - if (($xCoordinate == 0) && ($yCoordinate == 0)) { - return PHPExcel_Calculation_Functions::DIV0(); - } - - return atan2($yCoordinate, $xCoordinate); - } - return PHPExcel_Calculation_Functions::VALUE(); - } - - - /** - * CEILING - * - * Returns number rounded up, away from zero, to the nearest multiple of significance. - * For example, if you want to avoid using pennies in your prices and your product is - * priced at $4.42, use the formula =CEILING(4.42,0.05) to round prices up to the - * nearest nickel. - * - * Excel Function: - * CEILING(number[,significance]) - * - * @access public - * @category Mathematical and Trigonometric Functions - * @param float $number The number you want to round. - * @param float $significance The multiple to which you want to round. - * @return float Rounded Number - */ - public static function CEILING($number, $significance = null) - { - $number = PHPExcel_Calculation_Functions::flattenSingleValue($number); - $significance = PHPExcel_Calculation_Functions::flattenSingleValue($significance); - - if ((is_null($significance)) && - (PHPExcel_Calculation_Functions::getCompatibilityMode() == PHPExcel_Calculation_Functions::COMPATIBILITY_GNUMERIC)) { - $significance = $number / abs($number); - } - - if ((is_numeric($number)) && (is_numeric($significance))) { - if (($number == 0.0 ) || ($significance == 0.0)) { - return 0.0; - } elseif (self::SIGN($number) == self::SIGN($significance)) { - return ceil($number / $significance) * $significance; - } else { - return PHPExcel_Calculation_Functions::NaN(); - } - } - return PHPExcel_Calculation_Functions::VALUE(); - } - - - /** - * COMBIN - * - * Returns the number of combinations for a given number of items. Use COMBIN to - * determine the total possible number of groups for a given number of items. - * - * Excel Function: - * COMBIN(numObjs,numInSet) - * - * @access public - * @category Mathematical and Trigonometric Functions - * @param int $numObjs Number of different objects - * @param int $numInSet Number of objects in each combination - * @return int Number of combinations - */ - public static function COMBIN($numObjs, $numInSet) - { - $numObjs = PHPExcel_Calculation_Functions::flattenSingleValue($numObjs); - $numInSet = PHPExcel_Calculation_Functions::flattenSingleValue($numInSet); - - if ((is_numeric($numObjs)) && (is_numeric($numInSet))) { - if ($numObjs < $numInSet) { - return PHPExcel_Calculation_Functions::NaN(); - } elseif ($numInSet < 0) { - return PHPExcel_Calculation_Functions::NaN(); - } - return round(self::FACT($numObjs) / self::FACT($numObjs - $numInSet)) / self::FACT($numInSet); - } - return PHPExcel_Calculation_Functions::VALUE(); - } - - - /** - * EVEN - * - * Returns number rounded up to the nearest even integer. - * You can use this function for processing items that come in twos. For example, - * a packing crate accepts rows of one or two items. The crate is full when - * the number of items, rounded up to the nearest two, matches the crate's - * capacity. - * - * Excel Function: - * EVEN(number) - * - * @access public - * @category Mathematical and Trigonometric Functions - * @param float $number Number to round - * @return int Rounded Number - */ - public static function EVEN($number) - { - $number = PHPExcel_Calculation_Functions::flattenSingleValue($number); - - if (is_null($number)) { - return 0; - } elseif (is_bool($number)) { - $number = (int) $number; - } - - if (is_numeric($number)) { - $significance = 2 * self::SIGN($number); - return (int) self::CEILING($number, $significance); - } - return PHPExcel_Calculation_Functions::VALUE(); - } - - - /** - * FACT - * - * Returns the factorial of a number. - * The factorial of a number is equal to 1*2*3*...* number. - * - * Excel Function: - * FACT(factVal) - * - * @access public - * @category Mathematical and Trigonometric Functions - * @param float $factVal Factorial Value - * @return int Factorial - */ - public static function FACT($factVal) - { - $factVal = PHPExcel_Calculation_Functions::flattenSingleValue($factVal); - - if (is_numeric($factVal)) { - if ($factVal < 0) { - return PHPExcel_Calculation_Functions::NaN(); - } - $factLoop = floor($factVal); - if (PHPExcel_Calculation_Functions::getCompatibilityMode() == PHPExcel_Calculation_Functions::COMPATIBILITY_GNUMERIC) { - if ($factVal > $factLoop) { - return PHPExcel_Calculation_Functions::NaN(); - } - } - - $factorial = 1; - while ($factLoop > 1) { - $factorial *= $factLoop--; - } - return $factorial ; - } - return PHPExcel_Calculation_Functions::VALUE(); - } - - - /** - * FACTDOUBLE - * - * Returns the double factorial of a number. - * - * Excel Function: - * FACTDOUBLE(factVal) - * - * @access public - * @category Mathematical and Trigonometric Functions - * @param float $factVal Factorial Value - * @return int Double Factorial - */ - public static function FACTDOUBLE($factVal) - { - $factLoop = PHPExcel_Calculation_Functions::flattenSingleValue($factVal); - - if (is_numeric($factLoop)) { - $factLoop = floor($factLoop); - if ($factVal < 0) { - return PHPExcel_Calculation_Functions::NaN(); - } - $factorial = 1; - while ($factLoop > 1) { - $factorial *= $factLoop--; - --$factLoop; - } - return $factorial ; - } - return PHPExcel_Calculation_Functions::VALUE(); - } - - - /** - * FLOOR - * - * Rounds number down, toward zero, to the nearest multiple of significance. - * - * Excel Function: - * FLOOR(number[,significance]) - * - * @access public - * @category Mathematical and Trigonometric Functions - * @param float $number Number to round - * @param float $significance Significance - * @return float Rounded Number - */ - public static function FLOOR($number, $significance = null) - { - $number = PHPExcel_Calculation_Functions::flattenSingleValue($number); - $significance = PHPExcel_Calculation_Functions::flattenSingleValue($significance); - - if ((is_null($significance)) && - (PHPExcel_Calculation_Functions::getCompatibilityMode() == PHPExcel_Calculation_Functions::COMPATIBILITY_GNUMERIC)) { - $significance = $number/abs($number); - } - - if ((is_numeric($number)) && (is_numeric($significance))) { - if ($significance == 0.0) { - return PHPExcel_Calculation_Functions::DIV0(); - } elseif ($number == 0.0) { - return 0.0; - } elseif (self::SIGN($number) == self::SIGN($significance)) { - return floor($number / $significance) * $significance; - } else { - return PHPExcel_Calculation_Functions::NaN(); - } - } - - return PHPExcel_Calculation_Functions::VALUE(); - } - - - /** - * GCD - * - * Returns the greatest common divisor of a series of numbers. - * The greatest common divisor is the largest integer that divides both - * number1 and number2 without a remainder. - * - * Excel Function: - * GCD(number1[,number2[, ...]]) - * - * @access public - * @category Mathematical and Trigonometric Functions - * @param mixed $arg,... Data values - * @return integer Greatest Common Divisor - */ - public static function GCD() - { - $returnValue = 1; - $allValuesFactors = array(); - // Loop through arguments - foreach (PHPExcel_Calculation_Functions::flattenArray(func_get_args()) as $value) { - if (!is_numeric($value)) { - return PHPExcel_Calculation_Functions::VALUE(); - } elseif ($value == 0) { - continue; - } elseif ($value < 0) { - return PHPExcel_Calculation_Functions::NaN(); - } - $myFactors = self::factors($value); - $myCountedFactors = array_count_values($myFactors); - $allValuesFactors[] = $myCountedFactors; - } - $allValuesCount = count($allValuesFactors); - if ($allValuesCount == 0) { - return 0; - } - - $mergedArray = $allValuesFactors[0]; - for ($i=1; $i < $allValuesCount; ++$i) { - $mergedArray = array_intersect_key($mergedArray, $allValuesFactors[$i]); - } - $mergedArrayValues = count($mergedArray); - if ($mergedArrayValues == 0) { - return $returnValue; - } elseif ($mergedArrayValues > 1) { - foreach ($mergedArray as $mergedKey => $mergedValue) { - foreach ($allValuesFactors as $highestPowerTest) { - foreach ($highestPowerTest as $testKey => $testValue) { - if (($testKey == $mergedKey) && ($testValue < $mergedValue)) { - $mergedArray[$mergedKey] = $testValue; - $mergedValue = $testValue; - } - } - } - } - - $returnValue = 1; - foreach ($mergedArray as $key => $value) { - $returnValue *= pow($key, $value); - } - return $returnValue; - } else { - $keys = array_keys($mergedArray); - $key = $keys[0]; - $value = $mergedArray[$key]; - foreach ($allValuesFactors as $testValue) { - foreach ($testValue as $mergedKey => $mergedValue) { - if (($mergedKey == $key) && ($mergedValue < $value)) { - $value = $mergedValue; - } - } - } - return pow($key, $value); - } - } - - - /** - * INT - * - * Casts a floating point value to an integer - * - * Excel Function: - * INT(number) - * - * @access public - * @category Mathematical and Trigonometric Functions - * @param float $number Number to cast to an integer - * @return integer Integer value - */ - public static function INT($number) - { - $number = PHPExcel_Calculation_Functions::flattenSingleValue($number); - - if (is_null($number)) { - return 0; - } elseif (is_bool($number)) { - return (int) $number; - } - if (is_numeric($number)) { - return (int) floor($number); - } - return PHPExcel_Calculation_Functions::VALUE(); - } - - - /** - * LCM - * - * Returns the lowest common multiplier of a series of numbers - * The least common multiple is the smallest positive integer that is a multiple - * of all integer arguments number1, number2, and so on. Use LCM to add fractions - * with different denominators. - * - * Excel Function: - * LCM(number1[,number2[, ...]]) - * - * @access public - * @category Mathematical and Trigonometric Functions - * @param mixed $arg,... Data values - * @return int Lowest Common Multiplier - */ - public static function LCM() - { - $returnValue = 1; - $allPoweredFactors = array(); - // Loop through arguments - foreach (PHPExcel_Calculation_Functions::flattenArray(func_get_args()) as $value) { - if (!is_numeric($value)) { - return PHPExcel_Calculation_Functions::VALUE(); - } - if ($value == 0) { - return 0; - } elseif ($value < 0) { - return PHPExcel_Calculation_Functions::NaN(); - } - $myFactors = self::factors(floor($value)); - $myCountedFactors = array_count_values($myFactors); - $myPoweredFactors = array(); - foreach ($myCountedFactors as $myCountedFactor => $myCountedPower) { - $myPoweredFactors[$myCountedFactor] = pow($myCountedFactor, $myCountedPower); - } - foreach ($myPoweredFactors as $myPoweredValue => $myPoweredFactor) { - if (array_key_exists($myPoweredValue, $allPoweredFactors)) { - if ($allPoweredFactors[$myPoweredValue] < $myPoweredFactor) { - $allPoweredFactors[$myPoweredValue] = $myPoweredFactor; - } - } else { - $allPoweredFactors[$myPoweredValue] = $myPoweredFactor; - } - } - } - foreach ($allPoweredFactors as $allPoweredFactor) { - $returnValue *= (integer) $allPoweredFactor; - } - return $returnValue; - } - - - /** - * LOG_BASE - * - * Returns the logarithm of a number to a specified base. The default base is 10. - * - * Excel Function: - * LOG(number[,base]) - * - * @access public - * @category Mathematical and Trigonometric Functions - * @param float $number The positive real number for which you want the logarithm - * @param float $base The base of the logarithm. If base is omitted, it is assumed to be 10. - * @return float - */ - public static function LOG_BASE($number = null, $base = 10) - { - $number = PHPExcel_Calculation_Functions::flattenSingleValue($number); - $base = (is_null($base)) ? 10 : (float) PHPExcel_Calculation_Functions::flattenSingleValue($base); - - if ((!is_numeric($base)) || (!is_numeric($number))) { - return PHPExcel_Calculation_Functions::VALUE(); - } - if (($base <= 0) || ($number <= 0)) { - return PHPExcel_Calculation_Functions::NaN(); - } - return log($number, $base); - } - - - /** - * MDETERM - * - * Returns the matrix determinant of an array. - * - * Excel Function: - * MDETERM(array) - * - * @access public - * @category Mathematical and Trigonometric Functions - * @param array $matrixValues A matrix of values - * @return float - */ - public static function MDETERM($matrixValues) - { - $matrixData = array(); - if (!is_array($matrixValues)) { - $matrixValues = array(array($matrixValues)); - } - - $row = $maxColumn = 0; - foreach ($matrixValues as $matrixRow) { - if (!is_array($matrixRow)) { - $matrixRow = array($matrixRow); - } - $column = 0; - foreach ($matrixRow as $matrixCell) { - if ((is_string($matrixCell)) || ($matrixCell === null)) { - return PHPExcel_Calculation_Functions::VALUE(); - } - $matrixData[$column][$row] = $matrixCell; - ++$column; - } - if ($column > $maxColumn) { - $maxColumn = $column; - } - ++$row; - } - if ($row != $maxColumn) { - return PHPExcel_Calculation_Functions::VALUE(); - } - - try { - $matrix = new PHPExcel_Shared_JAMA_Matrix($matrixData); - return $matrix->det(); - } catch (PHPExcel_Exception $ex) { - return PHPExcel_Calculation_Functions::VALUE(); - } - } - - - /** - * MINVERSE - * - * Returns the inverse matrix for the matrix stored in an array. - * - * Excel Function: - * MINVERSE(array) - * - * @access public - * @category Mathematical and Trigonometric Functions - * @param array $matrixValues A matrix of values - * @return array - */ - public static function MINVERSE($matrixValues) - { - $matrixData = array(); - if (!is_array($matrixValues)) { - $matrixValues = array(array($matrixValues)); - } - - $row = $maxColumn = 0; - foreach ($matrixValues as $matrixRow) { - if (!is_array($matrixRow)) { - $matrixRow = array($matrixRow); - } - $column = 0; - foreach ($matrixRow as $matrixCell) { - if ((is_string($matrixCell)) || ($matrixCell === null)) { - return PHPExcel_Calculation_Functions::VALUE(); - } - $matrixData[$column][$row] = $matrixCell; - ++$column; - } - if ($column > $maxColumn) { - $maxColumn = $column; - } - ++$row; - } - if ($row != $maxColumn) { - return PHPExcel_Calculation_Functions::VALUE(); - } - - try { - $matrix = new PHPExcel_Shared_JAMA_Matrix($matrixData); - return $matrix->inverse()->getArray(); - } catch (PHPExcel_Exception $ex) { - return PHPExcel_Calculation_Functions::VALUE(); - } - } - - - /** - * MMULT - * - * @param array $matrixData1 A matrix of values - * @param array $matrixData2 A matrix of values - * @return array - */ - public static function MMULT($matrixData1, $matrixData2) - { - $matrixAData = $matrixBData = array(); - if (!is_array($matrixData1)) { - $matrixData1 = array(array($matrixData1)); - } - if (!is_array($matrixData2)) { - $matrixData2 = array(array($matrixData2)); - } - - try { - $rowA = 0; - foreach ($matrixData1 as $matrixRow) { - if (!is_array($matrixRow)) { - $matrixRow = array($matrixRow); - } - $columnA = 0; - foreach ($matrixRow as $matrixCell) { - if ((!is_numeric($matrixCell)) || ($matrixCell === null)) { - return PHPExcel_Calculation_Functions::VALUE(); - } - $matrixAData[$rowA][$columnA] = $matrixCell; - ++$columnA; - } - ++$rowA; - } - $matrixA = new PHPExcel_Shared_JAMA_Matrix($matrixAData); - $rowB = 0; - foreach ($matrixData2 as $matrixRow) { - if (!is_array($matrixRow)) { - $matrixRow = array($matrixRow); - } - $columnB = 0; - foreach ($matrixRow as $matrixCell) { - if ((!is_numeric($matrixCell)) || ($matrixCell === null)) { - return PHPExcel_Calculation_Functions::VALUE(); - } - $matrixBData[$rowB][$columnB] = $matrixCell; - ++$columnB; - } - ++$rowB; - } - $matrixB = new PHPExcel_Shared_JAMA_Matrix($matrixBData); - - if ($columnA != $rowB) { - return PHPExcel_Calculation_Functions::VALUE(); - } - - return $matrixA->times($matrixB)->getArray(); - } catch (PHPExcel_Exception $ex) { - var_dump($ex->getMessage()); - return PHPExcel_Calculation_Functions::VALUE(); - } - } - - - /** - * MOD - * - * @param int $a Dividend - * @param int $b Divisor - * @return int Remainder - */ - public static function MOD($a = 1, $b = 1) - { - $a = PHPExcel_Calculation_Functions::flattenSingleValue($a); - $b = PHPExcel_Calculation_Functions::flattenSingleValue($b); - - if ($b == 0.0) { - return PHPExcel_Calculation_Functions::DIV0(); - } elseif (($a < 0.0) && ($b > 0.0)) { - return $b - fmod(abs($a), $b); - } elseif (($a > 0.0) && ($b < 0.0)) { - return $b + fmod($a, abs($b)); - } - - return fmod($a, $b); - } - - - /** - * MROUND - * - * Rounds a number to the nearest multiple of a specified value - * - * @param float $number Number to round - * @param int $multiple Multiple to which you want to round $number - * @return float Rounded Number - */ - public static function MROUND($number, $multiple) - { - $number = PHPExcel_Calculation_Functions::flattenSingleValue($number); - $multiple = PHPExcel_Calculation_Functions::flattenSingleValue($multiple); - - if ((is_numeric($number)) && (is_numeric($multiple))) { - if ($multiple == 0) { - return 0; - } - if ((self::SIGN($number)) == (self::SIGN($multiple))) { - $multiplier = 1 / $multiple; - return round($number * $multiplier) / $multiplier; - } - return PHPExcel_Calculation_Functions::NaN(); - } - return PHPExcel_Calculation_Functions::VALUE(); - } - - - /** - * MULTINOMIAL - * - * Returns the ratio of the factorial of a sum of values to the product of factorials. - * - * @param array of mixed Data Series - * @return float - */ - public static function MULTINOMIAL() - { - $summer = 0; - $divisor = 1; - // Loop through arguments - foreach (PHPExcel_Calculation_Functions::flattenArray(func_get_args()) as $arg) { - // Is it a numeric value? - if (is_numeric($arg)) { - if ($arg < 1) { - return PHPExcel_Calculation_Functions::NaN(); - } - $summer += floor($arg); - $divisor *= self::FACT($arg); - } else { - return PHPExcel_Calculation_Functions::VALUE(); - } - } - - // Return - if ($summer > 0) { - $summer = self::FACT($summer); - return $summer / $divisor; - } - return 0; - } - - - /** - * ODD - * - * Returns number rounded up to the nearest odd integer. - * - * @param float $number Number to round - * @return int Rounded Number - */ - public static function ODD($number) - { - $number = PHPExcel_Calculation_Functions::flattenSingleValue($number); - - if (is_null($number)) { - return 1; - } elseif (is_bool($number)) { - return 1; - } elseif (is_numeric($number)) { - $significance = self::SIGN($number); - if ($significance == 0) { - return 1; - } - - $result = self::CEILING($number, $significance); - if ($result == self::EVEN($result)) { - $result += $significance; - } - - return (int) $result; - } - return PHPExcel_Calculation_Functions::VALUE(); - } - - - /** - * POWER - * - * Computes x raised to the power y. - * - * @param float $x - * @param float $y - * @return float - */ - public static function POWER($x = 0, $y = 2) - { - $x = PHPExcel_Calculation_Functions::flattenSingleValue($x); - $y = PHPExcel_Calculation_Functions::flattenSingleValue($y); - - // Validate parameters - if ($x == 0.0 && $y == 0.0) { - return PHPExcel_Calculation_Functions::NaN(); - } elseif ($x == 0.0 && $y < 0.0) { - return PHPExcel_Calculation_Functions::DIV0(); - } - - // Return - $result = pow($x, $y); - return (!is_nan($result) && !is_infinite($result)) ? $result : PHPExcel_Calculation_Functions::NaN(); - } - - - /** - * PRODUCT - * - * PRODUCT returns the product of all the values and cells referenced in the argument list. - * - * Excel Function: - * PRODUCT(value1[,value2[, ...]]) - * - * @access public - * @category Mathematical and Trigonometric Functions - * @param mixed $arg,... Data values - * @return float - */ - public static function PRODUCT() - { - // Return value - $returnValue = null; - - // Loop through arguments - foreach (PHPExcel_Calculation_Functions::flattenArray(func_get_args()) as $arg) { - // Is it a numeric value? - if ((is_numeric($arg)) && (!is_string($arg))) { - if (is_null($returnValue)) { - $returnValue = $arg; - } else { - $returnValue *= $arg; - } - } - } - - // Return - if (is_null($returnValue)) { - return 0; - } - return $returnValue; - } - - - /** - * QUOTIENT - * - * QUOTIENT function returns the integer portion of a division. Numerator is the divided number - * and denominator is the divisor. - * - * Excel Function: - * QUOTIENT(value1[,value2[, ...]]) - * - * @access public - * @category Mathematical and Trigonometric Functions - * @param mixed $arg,... Data values - * @return float - */ - public static function QUOTIENT() - { - // Return value - $returnValue = null; - - // Loop through arguments - foreach (PHPExcel_Calculation_Functions::flattenArray(func_get_args()) as $arg) { - // Is it a numeric value? - if ((is_numeric($arg)) && (!is_string($arg))) { - if (is_null($returnValue)) { - $returnValue = ($arg == 0) ? 0 : $arg; - } else { - if (($returnValue == 0) || ($arg == 0)) { - $returnValue = 0; - } else { - $returnValue /= $arg; - } - } - } - } - - // Return - return intval($returnValue); - } - - - /** - * RAND - * - * @param int $min Minimal value - * @param int $max Maximal value - * @return int Random number - */ - public static function RAND($min = 0, $max = 0) - { - $min = PHPExcel_Calculation_Functions::flattenSingleValue($min); - $max = PHPExcel_Calculation_Functions::flattenSingleValue($max); - - if ($min == 0 && $max == 0) { - return (mt_rand(0, 10000000)) / 10000000; - } else { - return mt_rand($min, $max); - } - } - - - public static function ROMAN($aValue, $style = 0) - { - $aValue = PHPExcel_Calculation_Functions::flattenSingleValue($aValue); - $style = (is_null($style)) ? 0 : (integer) PHPExcel_Calculation_Functions::flattenSingleValue($style); - if ((!is_numeric($aValue)) || ($aValue < 0) || ($aValue >= 4000)) { - return PHPExcel_Calculation_Functions::VALUE(); - } - $aValue = (integer) $aValue; - if ($aValue == 0) { - return ''; - } - - $mill = array('', 'M', 'MM', 'MMM', 'MMMM', 'MMMMM'); - $cent = array('', 'C', 'CC', 'CCC', 'CD', 'D', 'DC', 'DCC', 'DCCC', 'CM'); - $tens = array('', 'X', 'XX', 'XXX', 'XL', 'L', 'LX', 'LXX', 'LXXX', 'XC'); - $ones = array('', 'I', 'II', 'III', 'IV', 'V', 'VI', 'VII', 'VIII', 'IX'); - - $roman = ''; - while ($aValue > 5999) { - $roman .= 'M'; - $aValue -= 1000; - } - $m = self::romanCut($aValue, 1000); - $aValue %= 1000; - $c = self::romanCut($aValue, 100); - $aValue %= 100; - $t = self::romanCut($aValue, 10); - $aValue %= 10; - - return $roman.$mill[$m].$cent[$c].$tens[$t].$ones[$aValue]; - } - - - /** - * ROUNDUP - * - * Rounds a number up to a specified number of decimal places - * - * @param float $number Number to round - * @param int $digits Number of digits to which you want to round $number - * @return float Rounded Number - */ - public static function ROUNDUP($number, $digits) - { - $number = PHPExcel_Calculation_Functions::flattenSingleValue($number); - $digits = PHPExcel_Calculation_Functions::flattenSingleValue($digits); - - if ((is_numeric($number)) && (is_numeric($digits))) { - $significance = pow(10, (int) $digits); - if ($number < 0.0) { - return floor($number * $significance) / $significance; - } else { - return ceil($number * $significance) / $significance; - } - } - return PHPExcel_Calculation_Functions::VALUE(); - } - - - /** - * ROUNDDOWN - * - * Rounds a number down to a specified number of decimal places - * - * @param float $number Number to round - * @param int $digits Number of digits to which you want to round $number - * @return float Rounded Number - */ - public static function ROUNDDOWN($number, $digits) - { - $number = PHPExcel_Calculation_Functions::flattenSingleValue($number); - $digits = PHPExcel_Calculation_Functions::flattenSingleValue($digits); - - if ((is_numeric($number)) && (is_numeric($digits))) { - $significance = pow(10, (int) $digits); - if ($number < 0.0) { - return ceil($number * $significance) / $significance; - } else { - return floor($number * $significance) / $significance; - } - } - return PHPExcel_Calculation_Functions::VALUE(); - } - - - /** - * SERIESSUM - * - * Returns the sum of a power series - * - * @param float $x Input value to the power series - * @param float $n Initial power to which you want to raise $x - * @param float $m Step by which to increase $n for each term in the series - * @param array of mixed Data Series - * @return float - */ - public static function SERIESSUM() - { - $returnValue = 0; - - // Loop through arguments - $aArgs = PHPExcel_Calculation_Functions::flattenArray(func_get_args()); - - $x = array_shift($aArgs); - $n = array_shift($aArgs); - $m = array_shift($aArgs); - - if ((is_numeric($x)) && (is_numeric($n)) && (is_numeric($m))) { - // Calculate - $i = 0; - foreach ($aArgs as $arg) { - // Is it a numeric value? - if ((is_numeric($arg)) && (!is_string($arg))) { - $returnValue += $arg * pow($x, $n + ($m * $i++)); - } else { - return PHPExcel_Calculation_Functions::VALUE(); - } - } - return $returnValue; - } - return PHPExcel_Calculation_Functions::VALUE(); - } - - - /** - * SIGN - * - * Determines the sign of a number. Returns 1 if the number is positive, zero (0) - * if the number is 0, and -1 if the number is negative. - * - * @param float $number Number to round - * @return int sign value - */ - public static function SIGN($number) - { - $number = PHPExcel_Calculation_Functions::flattenSingleValue($number); - - if (is_bool($number)) { - return (int) $number; - } - if (is_numeric($number)) { - if ($number == 0.0) { - return 0; - } - return $number / abs($number); - } - return PHPExcel_Calculation_Functions::VALUE(); - } - - - /** - * SQRTPI - * - * Returns the square root of (number * pi). - * - * @param float $number Number - * @return float Square Root of Number * Pi - */ - public static function SQRTPI($number) - { - $number = PHPExcel_Calculation_Functions::flattenSingleValue($number); - - if (is_numeric($number)) { - if ($number < 0) { - return PHPExcel_Calculation_Functions::NaN(); - } - return sqrt($number * M_PI) ; - } - return PHPExcel_Calculation_Functions::VALUE(); - } - - - /** - * SUBTOTAL - * - * Returns a subtotal in a list or database. - * - * @param int the number 1 to 11 that specifies which function to - * use in calculating subtotals within a list. - * @param array of mixed Data Series - * @return float - */ - public static function SUBTOTAL() - { - $aArgs = PHPExcel_Calculation_Functions::flattenArray(func_get_args()); - - // Calculate - $subtotal = array_shift($aArgs); - - if ((is_numeric($subtotal)) && (!is_string($subtotal))) { - switch ($subtotal) { - case 1: - return PHPExcel_Calculation_Statistical::AVERAGE($aArgs); - case 2: - return PHPExcel_Calculation_Statistical::COUNT($aArgs); - case 3: - return PHPExcel_Calculation_Statistical::COUNTA($aArgs); - case 4: - return PHPExcel_Calculation_Statistical::MAX($aArgs); - case 5: - return PHPExcel_Calculation_Statistical::MIN($aArgs); - case 6: - return self::PRODUCT($aArgs); - case 7: - return PHPExcel_Calculation_Statistical::STDEV($aArgs); - case 8: - return PHPExcel_Calculation_Statistical::STDEVP($aArgs); - case 9: - return self::SUM($aArgs); - case 10: - return PHPExcel_Calculation_Statistical::VARFunc($aArgs); - case 11: - return PHPExcel_Calculation_Statistical::VARP($aArgs); - } - } - return PHPExcel_Calculation_Functions::VALUE(); - } - - - /** - * SUM - * - * SUM computes the sum of all the values and cells referenced in the argument list. - * - * Excel Function: - * SUM(value1[,value2[, ...]]) - * - * @access public - * @category Mathematical and Trigonometric Functions - * @param mixed $arg,... Data values - * @return float - */ - public static function SUM() - { - $returnValue = 0; - - // Loop through the arguments - foreach (PHPExcel_Calculation_Functions::flattenArray(func_get_args()) as $arg) { - // Is it a numeric value? - if ((is_numeric($arg)) && (!is_string($arg))) { - $returnValue += $arg; - } - } - - return $returnValue; - } - - - /** - * SUMIF - * - * Counts the number of cells that contain numbers within the list of arguments - * - * Excel Function: - * SUMIF(value1[,value2[, ...]],condition) - * - * @access public - * @category Mathematical and Trigonometric Functions - * @param mixed $arg,... Data values - * @param string $condition The criteria that defines which cells will be summed. - * @return float - */ - public static function SUMIF($aArgs, $condition, $sumArgs = array()) - { - $returnValue = 0; - - $aArgs = PHPExcel_Calculation_Functions::flattenArray($aArgs); - $sumArgs = PHPExcel_Calculation_Functions::flattenArray($sumArgs); - if (empty($sumArgs)) { - $sumArgs = $aArgs; - } - $condition = PHPExcel_Calculation_Functions::ifCondition($condition); - // Loop through arguments - foreach ($aArgs as $key => $arg) { - if (!is_numeric($arg)) { - $arg = str_replace('"', '""', $arg); - $arg = PHPExcel_Calculation::wrapResult(strtoupper($arg)); - } - - $testCondition = '='.$arg.$condition; - if (PHPExcel_Calculation::getInstance()->_calculateFormulaValue($testCondition)) { - // Is it a value within our criteria - $returnValue += $sumArgs[$key]; - } - } - - return $returnValue; - } - - - /** - * SUMIFS - * - * Counts the number of cells that contain numbers within the list of arguments - * - * Excel Function: - * SUMIFS(value1[,value2[, ...]],condition) - * - * @access public - * @category Mathematical and Trigonometric Functions - * @param mixed $arg,... Data values - * @param string $condition The criteria that defines which cells will be summed. - * @return float - */ - public static function SUMIFS() { - $arrayList = func_get_args(); - - $sumArgs = PHPExcel_Calculation_Functions::flattenArray(array_shift($arrayList)); - - while (count($arrayList) > 0) { - $aArgsArray[] = PHPExcel_Calculation_Functions::flattenArray(array_shift($arrayList)); - $conditions[] = PHPExcel_Calculation_Functions::ifCondition(array_shift($arrayList)); - } - - // Loop through each set of arguments and conditions - foreach ($conditions as $index => $condition) { - $aArgs = $aArgsArray[$index]; - $wildcard = false; - if ((strpos($condition, '*') !== false) || (strpos($condition, '?') !== false)) { - // * and ? are wildcard characters. - // Use ~* and ~? for literal star and question mark - // Code logic doesn't yet handle escaping - $condition = trim(ltrim($condition, '=<>'), '"'); - $wildcard = true; - } - // Loop through arguments - foreach ($aArgs as $key => $arg) { - if ($wildcard) { - if (!fnmatch($condition, $arg, FNM_CASEFOLD)) { - // Is it a value within our criteria - $sumArgs[$key] = 0.0; - } - } else { - if (!is_numeric($arg)) { - $arg = PHPExcel_Calculation::wrapResult(strtoupper($arg)); - } - $testCondition = '='.$arg.$condition; - if (!PHPExcel_Calculation::getInstance()->_calculateFormulaValue($testCondition)) { - // Is it a value within our criteria - $sumArgs[$key] = 0.0; - } - } - } - } - - // Return - return array_sum($sumArgs); - } - - - /** - * SUMPRODUCT - * - * Excel Function: - * SUMPRODUCT(value1[,value2[, ...]]) - * - * @access public - * @category Mathematical and Trigonometric Functions - * @param mixed $arg,... Data values - * @return float - */ - public static function SUMPRODUCT() - { - $arrayList = func_get_args(); - - $wrkArray = PHPExcel_Calculation_Functions::flattenArray(array_shift($arrayList)); - $wrkCellCount = count($wrkArray); - - for ($i=0; $i< $wrkCellCount; ++$i) { - if ((!is_numeric($wrkArray[$i])) || (is_string($wrkArray[$i]))) { - $wrkArray[$i] = 0; - } - } - - foreach ($arrayList as $matrixData) { - $array2 = PHPExcel_Calculation_Functions::flattenArray($matrixData); - $count = count($array2); - if ($wrkCellCount != $count) { - return PHPExcel_Calculation_Functions::VALUE(); - } - - foreach ($array2 as $i => $val) { - if ((!is_numeric($val)) || (is_string($val))) { - $val = 0; - } - $wrkArray[$i] *= $val; - } - } - - return array_sum($wrkArray); - } - - - /** - * SUMSQ - * - * SUMSQ returns the sum of the squares of the arguments - * - * Excel Function: - * SUMSQ(value1[,value2[, ...]]) - * - * @access public - * @category Mathematical and Trigonometric Functions - * @param mixed $arg,... Data values - * @return float - */ - public static function SUMSQ() - { - $returnValue = 0; - - // Loop through arguments - foreach (PHPExcel_Calculation_Functions::flattenArray(func_get_args()) as $arg) { - // Is it a numeric value? - if ((is_numeric($arg)) && (!is_string($arg))) { - $returnValue += ($arg * $arg); - } - } - - return $returnValue; - } - - - /** - * SUMX2MY2 - * - * @param mixed[] $matrixData1 Matrix #1 - * @param mixed[] $matrixData2 Matrix #2 - * @return float - */ - public static function SUMX2MY2($matrixData1, $matrixData2) - { - $array1 = PHPExcel_Calculation_Functions::flattenArray($matrixData1); - $array2 = PHPExcel_Calculation_Functions::flattenArray($matrixData2); - $count = min(count($array1), count($array2)); - - $result = 0; - for ($i = 0; $i < $count; ++$i) { - if (((is_numeric($array1[$i])) && (!is_string($array1[$i]))) && - ((is_numeric($array2[$i])) && (!is_string($array2[$i])))) { - $result += ($array1[$i] * $array1[$i]) - ($array2[$i] * $array2[$i]); - } - } - - return $result; - } - - - /** - * SUMX2PY2 - * - * @param mixed[] $matrixData1 Matrix #1 - * @param mixed[] $matrixData2 Matrix #2 - * @return float - */ - public static function SUMX2PY2($matrixData1, $matrixData2) - { - $array1 = PHPExcel_Calculation_Functions::flattenArray($matrixData1); - $array2 = PHPExcel_Calculation_Functions::flattenArray($matrixData2); - $count = min(count($array1), count($array2)); - - $result = 0; - for ($i = 0; $i < $count; ++$i) { - if (((is_numeric($array1[$i])) && (!is_string($array1[$i]))) && - ((is_numeric($array2[$i])) && (!is_string($array2[$i])))) { - $result += ($array1[$i] * $array1[$i]) + ($array2[$i] * $array2[$i]); - } - } - - return $result; - } - - - /** - * SUMXMY2 - * - * @param mixed[] $matrixData1 Matrix #1 - * @param mixed[] $matrixData2 Matrix #2 - * @return float - */ - public static function SUMXMY2($matrixData1, $matrixData2) - { - $array1 = PHPExcel_Calculation_Functions::flattenArray($matrixData1); - $array2 = PHPExcel_Calculation_Functions::flattenArray($matrixData2); - $count = min(count($array1), count($array2)); - - $result = 0; - for ($i = 0; $i < $count; ++$i) { - if (((is_numeric($array1[$i])) && (!is_string($array1[$i]))) && - ((is_numeric($array2[$i])) && (!is_string($array2[$i])))) { - $result += ($array1[$i] - $array2[$i]) * ($array1[$i] - $array2[$i]); - } - } - - return $result; - } - - - /** - * TRUNC - * - * Truncates value to the number of fractional digits by number_digits. - * - * @param float $value - * @param int $digits - * @return float Truncated value - */ - public static function TRUNC($value = 0, $digits = 0) - { - $value = PHPExcel_Calculation_Functions::flattenSingleValue($value); - $digits = PHPExcel_Calculation_Functions::flattenSingleValue($digits); - - // Validate parameters - if ((!is_numeric($value)) || (!is_numeric($digits))) { - return PHPExcel_Calculation_Functions::VALUE(); - } - $digits = floor($digits); - - // Truncate - $adjust = pow(10, $digits); - - if (($digits > 0) && (rtrim(intval((abs($value) - abs(intval($value))) * $adjust), '0') < $adjust/10)) { - return $value; - } - - return (intval($value * $adjust)) / $adjust; - } -} diff --git a/Utils/PHPExcel/Calculation/Statistical.php b/Utils/PHPExcel/Calculation/Statistical.php deleted file mode 100644 index 1a33610..0000000 --- a/Utils/PHPExcel/Calculation/Statistical.php +++ /dev/null @@ -1,3745 +0,0 @@ - $value) { - if ((is_bool($value)) || (is_string($value)) || (is_null($value))) { - unset($array1[$key]); - unset($array2[$key]); - } - } - foreach ($array2 as $key => $value) { - if ((is_bool($value)) || (is_string($value)) || (is_null($value))) { - unset($array1[$key]); - unset($array2[$key]); - } - } - $array1 = array_merge($array1); - $array2 = array_merge($array2); - - return true; - } - - - /** - * Beta function. - * - * @author Jaco van Kooten - * - * @param p require p>0 - * @param q require q>0 - * @return 0 if p<=0, q<=0 or p+q>2.55E305 to avoid errors and over/underflow - */ - private static function beta($p, $q) - { - if ($p <= 0.0 || $q <= 0.0 || ($p + $q) > LOG_GAMMA_X_MAX_VALUE) { - return 0.0; - } else { - return exp(self::logBeta($p, $q)); - } - } - - - /** - * Incomplete beta function - * - * @author Jaco van Kooten - * @author Paul Meagher - * - * The computation is based on formulas from Numerical Recipes, Chapter 6.4 (W.H. Press et al, 1992). - * @param x require 0<=x<=1 - * @param p require p>0 - * @param q require q>0 - * @return 0 if x<0, p<=0, q<=0 or p+q>2.55E305 and 1 if x>1 to avoid errors and over/underflow - */ - private static function incompleteBeta($x, $p, $q) - { - if ($x <= 0.0) { - return 0.0; - } elseif ($x >= 1.0) { - return 1.0; - } elseif (($p <= 0.0) || ($q <= 0.0) || (($p + $q) > LOG_GAMMA_X_MAX_VALUE)) { - return 0.0; - } - $beta_gam = exp((0 - self::logBeta($p, $q)) + $p * log($x) + $q * log(1.0 - $x)); - if ($x < ($p + 1.0) / ($p + $q + 2.0)) { - return $beta_gam * self::betaFraction($x, $p, $q) / $p; - } else { - return 1.0 - ($beta_gam * self::betaFraction(1 - $x, $q, $p) / $q); - } - } - - - // Function cache for logBeta function - private static $logBetaCacheP = 0.0; - private static $logBetaCacheQ = 0.0; - private static $logBetaCacheResult = 0.0; - - /** - * The natural logarithm of the beta function. - * - * @param p require p>0 - * @param q require q>0 - * @return 0 if p<=0, q<=0 or p+q>2.55E305 to avoid errors and over/underflow - * @author Jaco van Kooten - */ - private static function logBeta($p, $q) - { - if ($p != self::$logBetaCacheP || $q != self::$logBetaCacheQ) { - self::$logBetaCacheP = $p; - self::$logBetaCacheQ = $q; - if (($p <= 0.0) || ($q <= 0.0) || (($p + $q) > LOG_GAMMA_X_MAX_VALUE)) { - self::$logBetaCacheResult = 0.0; - } else { - self::$logBetaCacheResult = self::logGamma($p) + self::logGamma($q) - self::logGamma($p + $q); - } - } - return self::$logBetaCacheResult; - } - - - /** - * Evaluates of continued fraction part of incomplete beta function. - * Based on an idea from Numerical Recipes (W.H. Press et al, 1992). - * @author Jaco van Kooten - */ - private static function betaFraction($x, $p, $q) - { - $c = 1.0; - $sum_pq = $p + $q; - $p_plus = $p + 1.0; - $p_minus = $p - 1.0; - $h = 1.0 - $sum_pq * $x / $p_plus; - if (abs($h) < XMININ) { - $h = XMININ; - } - $h = 1.0 / $h; - $frac = $h; - $m = 1; - $delta = 0.0; - while ($m <= MAX_ITERATIONS && abs($delta-1.0) > PRECISION) { - $m2 = 2 * $m; - // even index for d - $d = $m * ($q - $m) * $x / ( ($p_minus + $m2) * ($p + $m2)); - $h = 1.0 + $d * $h; - if (abs($h) < XMININ) { - $h = XMININ; - } - $h = 1.0 / $h; - $c = 1.0 + $d / $c; - if (abs($c) < XMININ) { - $c = XMININ; - } - $frac *= $h * $c; - // odd index for d - $d = -($p + $m) * ($sum_pq + $m) * $x / (($p + $m2) * ($p_plus + $m2)); - $h = 1.0 + $d * $h; - if (abs($h) < XMININ) { - $h = XMININ; - } - $h = 1.0 / $h; - $c = 1.0 + $d / $c; - if (abs($c) < XMININ) { - $c = XMININ; - } - $delta = $h * $c; - $frac *= $delta; - ++$m; - } - return $frac; - } - - - /** - * logGamma function - * - * @version 1.1 - * @author Jaco van Kooten - * - * Original author was Jaco van Kooten. Ported to PHP by Paul Meagher. - * - * The natural logarithm of the gamma function.
- * Based on public domain NETLIB (Fortran) code by W. J. Cody and L. Stoltz
- * Applied Mathematics Division
- * Argonne National Laboratory
- * Argonne, IL 60439
- *

- * References: - *

    - *
  1. W. J. Cody and K. E. Hillstrom, 'Chebyshev Approximations for the Natural - * Logarithm of the Gamma Function,' Math. Comp. 21, 1967, pp. 198-203.
  2. - *
  3. K. E. Hillstrom, ANL/AMD Program ANLC366S, DGAMMA/DLGAMA, May, 1969.
  4. - *
  5. Hart, Et. Al., Computer Approximations, Wiley and sons, New York, 1968.
  6. - *
- *

- *

- * From the original documentation: - *

- *

- * This routine calculates the LOG(GAMMA) function for a positive real argument X. - * Computation is based on an algorithm outlined in references 1 and 2. - * The program uses rational functions that theoretically approximate LOG(GAMMA) - * to at least 18 significant decimal digits. The approximation for X > 12 is from - * reference 3, while approximations for X < 12.0 are similar to those in reference - * 1, but are unpublished. The accuracy achieved depends on the arithmetic system, - * the compiler, the intrinsic functions, and proper selection of the - * machine-dependent constants. - *

- *

- * Error returns:
- * The program returns the value XINF for X .LE. 0.0 or when overflow would occur. - * The computation is believed to be free of underflow and overflow. - *

- * @return MAX_VALUE for x < 0.0 or when overflow would occur, i.e. x > 2.55E305 - */ - - // Function cache for logGamma - private static $logGammaCacheResult = 0.0; - private static $logGammaCacheX = 0.0; - - private static function logGamma($x) - { - // Log Gamma related constants - static $lg_d1 = -0.5772156649015328605195174; - static $lg_d2 = 0.4227843350984671393993777; - static $lg_d4 = 1.791759469228055000094023; - - static $lg_p1 = array( - 4.945235359296727046734888, - 201.8112620856775083915565, - 2290.838373831346393026739, - 11319.67205903380828685045, - 28557.24635671635335736389, - 38484.96228443793359990269, - 26377.48787624195437963534, - 7225.813979700288197698961 - ); - static $lg_p2 = array( - 4.974607845568932035012064, - 542.4138599891070494101986, - 15506.93864978364947665077, - 184793.2904445632425417223, - 1088204.76946882876749847, - 3338152.967987029735917223, - 5106661.678927352456275255, - 3074109.054850539556250927 - ); - static $lg_p4 = array( - 14745.02166059939948905062, - 2426813.369486704502836312, - 121475557.4045093227939592, - 2663432449.630976949898078, - 29403789566.34553899906876, - 170266573776.5398868392998, - 492612579337.743088758812, - 560625185622.3951465078242 - ); - static $lg_q1 = array( - 67.48212550303777196073036, - 1113.332393857199323513008, - 7738.757056935398733233834, - 27639.87074403340708898585, - 54993.10206226157329794414, - 61611.22180066002127833352, - 36351.27591501940507276287, - 8785.536302431013170870835 - ); - static $lg_q2 = array( - 183.0328399370592604055942, - 7765.049321445005871323047, - 133190.3827966074194402448, - 1136705.821321969608938755, - 5267964.117437946917577538, - 13467014.54311101692290052, - 17827365.30353274213975932, - 9533095.591844353613395747 - ); - static $lg_q4 = array( - 2690.530175870899333379843, - 639388.5654300092398984238, - 41355999.30241388052042842, - 1120872109.61614794137657, - 14886137286.78813811542398, - 101680358627.2438228077304, - 341747634550.7377132798597, - 446315818741.9713286462081 - ); - static $lg_c = array( - -0.001910444077728, - 8.4171387781295e-4, - -5.952379913043012e-4, - 7.93650793500350248e-4, - -0.002777777777777681622553, - 0.08333333333333333331554247, - 0.0057083835261 - ); - - // Rough estimate of the fourth root of logGamma_xBig - static $lg_frtbig = 2.25e76; - static $pnt68 = 0.6796875; - - - if ($x == self::$logGammaCacheX) { - return self::$logGammaCacheResult; - } - $y = $x; - if ($y > 0.0 && $y <= LOG_GAMMA_X_MAX_VALUE) { - if ($y <= EPS) { - $res = -log(y); - } elseif ($y <= 1.5) { - // --------------------- - // EPS .LT. X .LE. 1.5 - // --------------------- - if ($y < $pnt68) { - $corr = -log($y); - $xm1 = $y; - } else { - $corr = 0.0; - $xm1 = $y - 1.0; - } - if ($y <= 0.5 || $y >= $pnt68) { - $xden = 1.0; - $xnum = 0.0; - for ($i = 0; $i < 8; ++$i) { - $xnum = $xnum * $xm1 + $lg_p1[$i]; - $xden = $xden * $xm1 + $lg_q1[$i]; - } - $res = $corr + $xm1 * ($lg_d1 + $xm1 * ($xnum / $xden)); - } else { - $xm2 = $y - 1.0; - $xden = 1.0; - $xnum = 0.0; - for ($i = 0; $i < 8; ++$i) { - $xnum = $xnum * $xm2 + $lg_p2[$i]; - $xden = $xden * $xm2 + $lg_q2[$i]; - } - $res = $corr + $xm2 * ($lg_d2 + $xm2 * ($xnum / $xden)); - } - } elseif ($y <= 4.0) { - // --------------------- - // 1.5 .LT. X .LE. 4.0 - // --------------------- - $xm2 = $y - 2.0; - $xden = 1.0; - $xnum = 0.0; - for ($i = 0; $i < 8; ++$i) { - $xnum = $xnum * $xm2 + $lg_p2[$i]; - $xden = $xden * $xm2 + $lg_q2[$i]; - } - $res = $xm2 * ($lg_d2 + $xm2 * ($xnum / $xden)); - } elseif ($y <= 12.0) { - // ---------------------- - // 4.0 .LT. X .LE. 12.0 - // ---------------------- - $xm4 = $y - 4.0; - $xden = -1.0; - $xnum = 0.0; - for ($i = 0; $i < 8; ++$i) { - $xnum = $xnum * $xm4 + $lg_p4[$i]; - $xden = $xden * $xm4 + $lg_q4[$i]; - } - $res = $lg_d4 + $xm4 * ($xnum / $xden); - } else { - // --------------------------------- - // Evaluate for argument .GE. 12.0 - // --------------------------------- - $res = 0.0; - if ($y <= $lg_frtbig) { - $res = $lg_c[6]; - $ysq = $y * $y; - for ($i = 0; $i < 6; ++$i) { - $res = $res / $ysq + $lg_c[$i]; - } - $res /= $y; - $corr = log($y); - $res = $res + log(SQRT2PI) - 0.5 * $corr; - $res += $y * ($corr - 1.0); - } - } - } else { - // -------------------------- - // Return for bad arguments - // -------------------------- - $res = MAX_VALUE; - } - // ------------------------------ - // Final adjustments and return - // ------------------------------ - self::$logGammaCacheX = $x; - self::$logGammaCacheResult = $res; - return $res; - } - - - // - // Private implementation of the incomplete Gamma function - // - private static function incompleteGamma($a, $x) - { - static $max = 32; - $summer = 0; - for ($n=0; $n<=$max; ++$n) { - $divisor = $a; - for ($i=1; $i<=$n; ++$i) { - $divisor *= ($a + $i); - } - $summer += (pow($x, $n) / $divisor); - } - return pow($x, $a) * exp(0-$x) * $summer; - } - - - // - // Private implementation of the Gamma function - // - private static function gamma($data) - { - if ($data == 0.0) { - return 0; - } - - static $p0 = 1.000000000190015; - static $p = array( - 1 => 76.18009172947146, - 2 => -86.50532032941677, - 3 => 24.01409824083091, - 4 => -1.231739572450155, - 5 => 1.208650973866179e-3, - 6 => -5.395239384953e-6 - ); - - $y = $x = $data; - $tmp = $x + 5.5; - $tmp -= ($x + 0.5) * log($tmp); - - $summer = $p0; - for ($j=1; $j<=6; ++$j) { - $summer += ($p[$j] / ++$y); - } - return exp(0 - $tmp + log(SQRT2PI * $summer / $x)); - } - - - /*************************************************************************** - * inverse_ncdf.php - * ------------------- - * begin : Friday, January 16, 2004 - * copyright : (C) 2004 Michael Nickerson - * email : nickersonm@yahoo.com - * - ***************************************************************************/ - private static function inverseNcdf($p) - { - // Inverse ncdf approximation by Peter J. Acklam, implementation adapted to - // PHP by Michael Nickerson, using Dr. Thomas Ziegler's C implementation as - // a guide. http://home.online.no/~pjacklam/notes/invnorm/index.html - // I have not checked the accuracy of this implementation. Be aware that PHP - // will truncate the coeficcients to 14 digits. - - // You have permission to use and distribute this function freely for - // whatever purpose you want, but please show common courtesy and give credit - // where credit is due. - - // Input paramater is $p - probability - where 0 < p < 1. - - // Coefficients in rational approximations - static $a = array( - 1 => -3.969683028665376e+01, - 2 => 2.209460984245205e+02, - 3 => -2.759285104469687e+02, - 4 => 1.383577518672690e+02, - 5 => -3.066479806614716e+01, - 6 => 2.506628277459239e+00 - ); - - static $b = array( - 1 => -5.447609879822406e+01, - 2 => 1.615858368580409e+02, - 3 => -1.556989798598866e+02, - 4 => 6.680131188771972e+01, - 5 => -1.328068155288572e+01 - ); - - static $c = array( - 1 => -7.784894002430293e-03, - 2 => -3.223964580411365e-01, - 3 => -2.400758277161838e+00, - 4 => -2.549732539343734e+00, - 5 => 4.374664141464968e+00, - 6 => 2.938163982698783e+00 - ); - - static $d = array( - 1 => 7.784695709041462e-03, - 2 => 3.224671290700398e-01, - 3 => 2.445134137142996e+00, - 4 => 3.754408661907416e+00 - ); - - // Define lower and upper region break-points. - $p_low = 0.02425; //Use lower region approx. below this - $p_high = 1 - $p_low; //Use upper region approx. above this - - if (0 < $p && $p < $p_low) { - // Rational approximation for lower region. - $q = sqrt(-2 * log($p)); - return ((((($c[1] * $q + $c[2]) * $q + $c[3]) * $q + $c[4]) * $q + $c[5]) * $q + $c[6]) / - (((($d[1] * $q + $d[2]) * $q + $d[3]) * $q + $d[4]) * $q + 1); - } elseif ($p_low <= $p && $p <= $p_high) { - // Rational approximation for central region. - $q = $p - 0.5; - $r = $q * $q; - return ((((($a[1] * $r + $a[2]) * $r + $a[3]) * $r + $a[4]) * $r + $a[5]) * $r + $a[6]) * $q / - ((((($b[1] * $r + $b[2]) * $r + $b[3]) * $r + $b[4]) * $r + $b[5]) * $r + 1); - } elseif ($p_high < $p && $p < 1) { - // Rational approximation for upper region. - $q = sqrt(-2 * log(1 - $p)); - return -((((($c[1] * $q + $c[2]) * $q + $c[3]) * $q + $c[4]) * $q + $c[5]) * $q + $c[6]) / - (((($d[1] * $q + $d[2]) * $q + $d[3]) * $q + $d[4]) * $q + 1); - } - // If 0 < p < 1, return a null value - return PHPExcel_Calculation_Functions::NULL(); - } - - - private static function inverseNcdf2($prob) - { - // Approximation of inverse standard normal CDF developed by - // B. Moro, "The Full Monte," Risk 8(2), Feb 1995, 57-58. - - $a1 = 2.50662823884; - $a2 = -18.61500062529; - $a3 = 41.39119773534; - $a4 = -25.44106049637; - - $b1 = -8.4735109309; - $b2 = 23.08336743743; - $b3 = -21.06224101826; - $b4 = 3.13082909833; - - $c1 = 0.337475482272615; - $c2 = 0.976169019091719; - $c3 = 0.160797971491821; - $c4 = 2.76438810333863E-02; - $c5 = 3.8405729373609E-03; - $c6 = 3.951896511919E-04; - $c7 = 3.21767881768E-05; - $c8 = 2.888167364E-07; - $c9 = 3.960315187E-07; - - $y = $prob - 0.5; - if (abs($y) < 0.42) { - $z = ($y * $y); - $z = $y * ((($a4 * $z + $a3) * $z + $a2) * $z + $a1) / (((($b4 * $z + $b3) * $z + $b2) * $z + $b1) * $z + 1); - } else { - if ($y > 0) { - $z = log(-log(1 - $prob)); - } else { - $z = log(-log($prob)); - } - $z = $c1 + $z * ($c2 + $z * ($c3 + $z * ($c4 + $z * ($c5 + $z * ($c6 + $z * ($c7 + $z * ($c8 + $z * $c9))))))); - if ($y < 0) { - $z = -$z; - } - } - return $z; - } // function inverseNcdf2() - - - private static function inverseNcdf3($p) - { - // ALGORITHM AS241 APPL. STATIST. (1988) VOL. 37, NO. 3. - // Produces the normal deviate Z corresponding to a given lower - // tail area of P; Z is accurate to about 1 part in 10**16. - // - // This is a PHP version of the original FORTRAN code that can - // be found at http://lib.stat.cmu.edu/apstat/ - $split1 = 0.425; - $split2 = 5; - $const1 = 0.180625; - $const2 = 1.6; - - // coefficients for p close to 0.5 - $a0 = 3.3871328727963666080; - $a1 = 1.3314166789178437745E+2; - $a2 = 1.9715909503065514427E+3; - $a3 = 1.3731693765509461125E+4; - $a4 = 4.5921953931549871457E+4; - $a5 = 6.7265770927008700853E+4; - $a6 = 3.3430575583588128105E+4; - $a7 = 2.5090809287301226727E+3; - - $b1 = 4.2313330701600911252E+1; - $b2 = 6.8718700749205790830E+2; - $b3 = 5.3941960214247511077E+3; - $b4 = 2.1213794301586595867E+4; - $b5 = 3.9307895800092710610E+4; - $b6 = 2.8729085735721942674E+4; - $b7 = 5.2264952788528545610E+3; - - // coefficients for p not close to 0, 0.5 or 1. - $c0 = 1.42343711074968357734; - $c1 = 4.63033784615654529590; - $c2 = 5.76949722146069140550; - $c3 = 3.64784832476320460504; - $c4 = 1.27045825245236838258; - $c5 = 2.41780725177450611770E-1; - $c6 = 2.27238449892691845833E-2; - $c7 = 7.74545014278341407640E-4; - - $d1 = 2.05319162663775882187; - $d2 = 1.67638483018380384940; - $d3 = 6.89767334985100004550E-1; - $d4 = 1.48103976427480074590E-1; - $d5 = 1.51986665636164571966E-2; - $d6 = 5.47593808499534494600E-4; - $d7 = 1.05075007164441684324E-9; - - // coefficients for p near 0 or 1. - $e0 = 6.65790464350110377720; - $e1 = 5.46378491116411436990; - $e2 = 1.78482653991729133580; - $e3 = 2.96560571828504891230E-1; - $e4 = 2.65321895265761230930E-2; - $e5 = 1.24266094738807843860E-3; - $e6 = 2.71155556874348757815E-5; - $e7 = 2.01033439929228813265E-7; - - $f1 = 5.99832206555887937690E-1; - $f2 = 1.36929880922735805310E-1; - $f3 = 1.48753612908506148525E-2; - $f4 = 7.86869131145613259100E-4; - $f5 = 1.84631831751005468180E-5; - $f6 = 1.42151175831644588870E-7; - $f7 = 2.04426310338993978564E-15; - - $q = $p - 0.5; - - // computation for p close to 0.5 - if (abs($q) <= split1) { - $R = $const1 - $q * $q; - $z = $q * ((((((($a7 * $R + $a6) * $R + $a5) * $R + $a4) * $R + $a3) * $R + $a2) * $R + $a1) * $R + $a0) / - ((((((($b7 * $R + $b6) * $R + $b5) * $R + $b4) * $R + $b3) * $R + $b2) * $R + $b1) * $R + 1); - } else { - if ($q < 0) { - $R = $p; - } else { - $R = 1 - $p; - } - $R = pow(-log($R), 2); - - // computation for p not close to 0, 0.5 or 1. - if ($R <= $split2) { - $R = $R - $const2; - $z = ((((((($c7 * $R + $c6) * $R + $c5) * $R + $c4) * $R + $c3) * $R + $c2) * $R + $c1) * $R + $c0) / - ((((((($d7 * $R + $d6) * $R + $d5) * $R + $d4) * $R + $d3) * $R + $d2) * $R + $d1) * $R + 1); - } else { - // computation for p near 0 or 1. - $R = $R - $split2; - $z = ((((((($e7 * $R + $e6) * $R + $e5) * $R + $e4) * $R + $e3) * $R + $e2) * $R + $e1) * $R + $e0) / - ((((((($f7 * $R + $f6) * $R + $f5) * $R + $f4) * $R + $f3) * $R + $f2) * $R + $f1) * $R + 1); - } - if ($q < 0) { - $z = -$z; - } - } - return $z; - } - - - /** - * AVEDEV - * - * Returns the average of the absolute deviations of data points from their mean. - * AVEDEV is a measure of the variability in a data set. - * - * Excel Function: - * AVEDEV(value1[,value2[, ...]]) - * - * @access public - * @category Statistical Functions - * @param mixed $arg,... Data values - * @return float - */ - public static function AVEDEV() - { - $aArgs = PHPExcel_Calculation_Functions::flattenArrayIndexed(func_get_args()); - - // Return value - $returnValue = null; - - $aMean = self::AVERAGE($aArgs); - if ($aMean != PHPExcel_Calculation_Functions::DIV0()) { - $aCount = 0; - foreach ($aArgs as $k => $arg) { - if ((is_bool($arg)) && - ((!PHPExcel_Calculation_Functions::isCellValue($k)) || (PHPExcel_Calculation_Functions::getCompatibilityMode() == PHPExcel_Calculation_Functions::COMPATIBILITY_OPENOFFICE))) { - $arg = (integer) $arg; - } - // Is it a numeric value? - if ((is_numeric($arg)) && (!is_string($arg))) { - if (is_null($returnValue)) { - $returnValue = abs($arg - $aMean); - } else { - $returnValue += abs($arg - $aMean); - } - ++$aCount; - } - } - - // Return - if ($aCount == 0) { - return PHPExcel_Calculation_Functions::DIV0(); - } - return $returnValue / $aCount; - } - return PHPExcel_Calculation_Functions::NaN(); - } - - - /** - * AVERAGE - * - * Returns the average (arithmetic mean) of the arguments - * - * Excel Function: - * AVERAGE(value1[,value2[, ...]]) - * - * @access public - * @category Statistical Functions - * @param mixed $arg,... Data values - * @return float - */ - public static function AVERAGE() - { - $returnValue = $aCount = 0; - - // Loop through arguments - foreach (PHPExcel_Calculation_Functions::flattenArrayIndexed(func_get_args()) as $k => $arg) { - if ((is_bool($arg)) && - ((!PHPExcel_Calculation_Functions::isCellValue($k)) || (PHPExcel_Calculation_Functions::getCompatibilityMode() == PHPExcel_Calculation_Functions::COMPATIBILITY_OPENOFFICE))) { - $arg = (integer) $arg; - } - // Is it a numeric value? - if ((is_numeric($arg)) && (!is_string($arg))) { - if (is_null($returnValue)) { - $returnValue = $arg; - } else { - $returnValue += $arg; - } - ++$aCount; - } - } - - // Return - if ($aCount > 0) { - return $returnValue / $aCount; - } else { - return PHPExcel_Calculation_Functions::DIV0(); - } - } - - - /** - * AVERAGEA - * - * Returns the average of its arguments, including numbers, text, and logical values - * - * Excel Function: - * AVERAGEA(value1[,value2[, ...]]) - * - * @access public - * @category Statistical Functions - * @param mixed $arg,... Data values - * @return float - */ - public static function AVERAGEA() - { - $returnValue = null; - - $aCount = 0; - // Loop through arguments - foreach (PHPExcel_Calculation_Functions::flattenArrayIndexed(func_get_args()) as $k => $arg) { - if ((is_bool($arg)) && - (!PHPExcel_Calculation_Functions::isMatrixValue($k))) { - } else { - if ((is_numeric($arg)) || (is_bool($arg)) || ((is_string($arg) && ($arg != '')))) { - if (is_bool($arg)) { - $arg = (integer) $arg; - } elseif (is_string($arg)) { - $arg = 0; - } - if (is_null($returnValue)) { - $returnValue = $arg; - } else { - $returnValue += $arg; - } - ++$aCount; - } - } - } - - if ($aCount > 0) { - return $returnValue / $aCount; - } else { - return PHPExcel_Calculation_Functions::DIV0(); - } - } - - - /** - * AVERAGEIF - * - * Returns the average value from a range of cells that contain numbers within the list of arguments - * - * Excel Function: - * AVERAGEIF(value1[,value2[, ...]],condition) - * - * @access public - * @category Mathematical and Trigonometric Functions - * @param mixed $arg,... Data values - * @param string $condition The criteria that defines which cells will be checked. - * @param mixed[] $averageArgs Data values - * @return float - */ - public static function AVERAGEIF($aArgs, $condition, $averageArgs = array()) - { - $returnValue = 0; - - $aArgs = PHPExcel_Calculation_Functions::flattenArray($aArgs); - $averageArgs = PHPExcel_Calculation_Functions::flattenArray($averageArgs); - if (empty($averageArgs)) { - $averageArgs = $aArgs; - } - $condition = PHPExcel_Calculation_Functions::ifCondition($condition); - // Loop through arguments - $aCount = 0; - foreach ($aArgs as $key => $arg) { - if (!is_numeric($arg)) { - $arg = PHPExcel_Calculation::wrapResult(strtoupper($arg)); - } - $testCondition = '='.$arg.$condition; - if (PHPExcel_Calculation::getInstance()->_calculateFormulaValue($testCondition)) { - if ((is_null($returnValue)) || ($arg > $returnValue)) { - $returnValue += $arg; - ++$aCount; - } - } - } - - if ($aCount > 0) { - return $returnValue / $aCount; - } - return PHPExcel_Calculation_Functions::DIV0(); - } - - - /** - * BETADIST - * - * Returns the beta distribution. - * - * @param float $value Value at which you want to evaluate the distribution - * @param float $alpha Parameter to the distribution - * @param float $beta Parameter to the distribution - * @param boolean $cumulative - * @return float - * - */ - public static function BETADIST($value, $alpha, $beta, $rMin = 0, $rMax = 1) - { - $value = PHPExcel_Calculation_Functions::flattenSingleValue($value); - $alpha = PHPExcel_Calculation_Functions::flattenSingleValue($alpha); - $beta = PHPExcel_Calculation_Functions::flattenSingleValue($beta); - $rMin = PHPExcel_Calculation_Functions::flattenSingleValue($rMin); - $rMax = PHPExcel_Calculation_Functions::flattenSingleValue($rMax); - - if ((is_numeric($value)) && (is_numeric($alpha)) && (is_numeric($beta)) && (is_numeric($rMin)) && (is_numeric($rMax))) { - if (($value < $rMin) || ($value > $rMax) || ($alpha <= 0) || ($beta <= 0) || ($rMin == $rMax)) { - return PHPExcel_Calculation_Functions::NaN(); - } - if ($rMin > $rMax) { - $tmp = $rMin; - $rMin = $rMax; - $rMax = $tmp; - } - $value -= $rMin; - $value /= ($rMax - $rMin); - return self::incompleteBeta($value, $alpha, $beta); - } - return PHPExcel_Calculation_Functions::VALUE(); - } - - - /** - * BETAINV - * - * Returns the inverse of the beta distribution. - * - * @param float $probability Probability at which you want to evaluate the distribution - * @param float $alpha Parameter to the distribution - * @param float $beta Parameter to the distribution - * @param float $rMin Minimum value - * @param float $rMax Maximum value - * @param boolean $cumulative - * @return float - * - */ - public static function BETAINV($probability, $alpha, $beta, $rMin = 0, $rMax = 1) - { - $probability = PHPExcel_Calculation_Functions::flattenSingleValue($probability); - $alpha = PHPExcel_Calculation_Functions::flattenSingleValue($alpha); - $beta = PHPExcel_Calculation_Functions::flattenSingleValue($beta); - $rMin = PHPExcel_Calculation_Functions::flattenSingleValue($rMin); - $rMax = PHPExcel_Calculation_Functions::flattenSingleValue($rMax); - - if ((is_numeric($probability)) && (is_numeric($alpha)) && (is_numeric($beta)) && (is_numeric($rMin)) && (is_numeric($rMax))) { - if (($alpha <= 0) || ($beta <= 0) || ($rMin == $rMax) || ($probability <= 0) || ($probability > 1)) { - return PHPExcel_Calculation_Functions::NaN(); - } - if ($rMin > $rMax) { - $tmp = $rMin; - $rMin = $rMax; - $rMax = $tmp; - } - $a = 0; - $b = 2; - - $i = 0; - while ((($b - $a) > PRECISION) && ($i++ < MAX_ITERATIONS)) { - $guess = ($a + $b) / 2; - $result = self::BETADIST($guess, $alpha, $beta); - if (($result == $probability) || ($result == 0)) { - $b = $a; - } elseif ($result > $probability) { - $b = $guess; - } else { - $a = $guess; - } - } - if ($i == MAX_ITERATIONS) { - return PHPExcel_Calculation_Functions::NA(); - } - return round($rMin + $guess * ($rMax - $rMin), 12); - } - return PHPExcel_Calculation_Functions::VALUE(); - } - - - /** - * BINOMDIST - * - * Returns the individual term binomial distribution probability. Use BINOMDIST in problems with - * a fixed number of tests or trials, when the outcomes of any trial are only success or failure, - * when trials are independent, and when the probability of success is constant throughout the - * experiment. For example, BINOMDIST can calculate the probability that two of the next three - * babies born are male. - * - * @param float $value Number of successes in trials - * @param float $trials Number of trials - * @param float $probability Probability of success on each trial - * @param boolean $cumulative - * @return float - * - * @todo Cumulative distribution function - * - */ - public static function BINOMDIST($value, $trials, $probability, $cumulative) - { - $value = floor(PHPExcel_Calculation_Functions::flattenSingleValue($value)); - $trials = floor(PHPExcel_Calculation_Functions::flattenSingleValue($trials)); - $probability = PHPExcel_Calculation_Functions::flattenSingleValue($probability); - - if ((is_numeric($value)) && (is_numeric($trials)) && (is_numeric($probability))) { - if (($value < 0) || ($value > $trials)) { - return PHPExcel_Calculation_Functions::NaN(); - } - if (($probability < 0) || ($probability > 1)) { - return PHPExcel_Calculation_Functions::NaN(); - } - if ((is_numeric($cumulative)) || (is_bool($cumulative))) { - if ($cumulative) { - $summer = 0; - for ($i = 0; $i <= $value; ++$i) { - $summer += PHPExcel_Calculation_MathTrig::COMBIN($trials, $i) * pow($probability, $i) * pow(1 - $probability, $trials - $i); - } - return $summer; - } else { - return PHPExcel_Calculation_MathTrig::COMBIN($trials, $value) * pow($probability, $value) * pow(1 - $probability, $trials - $value) ; - } - } - } - return PHPExcel_Calculation_Functions::VALUE(); - } - - - /** - * CHIDIST - * - * Returns the one-tailed probability of the chi-squared distribution. - * - * @param float $value Value for the function - * @param float $degrees degrees of freedom - * @return float - */ - public static function CHIDIST($value, $degrees) - { - $value = PHPExcel_Calculation_Functions::flattenSingleValue($value); - $degrees = floor(PHPExcel_Calculation_Functions::flattenSingleValue($degrees)); - - if ((is_numeric($value)) && (is_numeric($degrees))) { - if ($degrees < 1) { - return PHPExcel_Calculation_Functions::NaN(); - } - if ($value < 0) { - if (PHPExcel_Calculation_Functions::getCompatibilityMode() == PHPExcel_Calculation_Functions::COMPATIBILITY_GNUMERIC) { - return 1; - } - return PHPExcel_Calculation_Functions::NaN(); - } - return 1 - (self::incompleteGamma($degrees/2, $value/2) / self::gamma($degrees/2)); - } - return PHPExcel_Calculation_Functions::VALUE(); - } - - - /** - * CHIINV - * - * Returns the one-tailed probability of the chi-squared distribution. - * - * @param float $probability Probability for the function - * @param float $degrees degrees of freedom - * @return float - */ - public static function CHIINV($probability, $degrees) - { - $probability = PHPExcel_Calculation_Functions::flattenSingleValue($probability); - $degrees = floor(PHPExcel_Calculation_Functions::flattenSingleValue($degrees)); - - if ((is_numeric($probability)) && (is_numeric($degrees))) { - $xLo = 100; - $xHi = 0; - - $x = $xNew = 1; - $dx = 1; - $i = 0; - - while ((abs($dx) > PRECISION) && ($i++ < MAX_ITERATIONS)) { - // Apply Newton-Raphson step - $result = self::CHIDIST($x, $degrees); - $error = $result - $probability; - if ($error == 0.0) { - $dx = 0; - } elseif ($error < 0.0) { - $xLo = $x; - } else { - $xHi = $x; - } - // Avoid division by zero - if ($result != 0.0) { - $dx = $error / $result; - $xNew = $x - $dx; - } - // If the NR fails to converge (which for example may be the - // case if the initial guess is too rough) we apply a bisection - // step to determine a more narrow interval around the root. - if (($xNew < $xLo) || ($xNew > $xHi) || ($result == 0.0)) { - $xNew = ($xLo + $xHi) / 2; - $dx = $xNew - $x; - } - $x = $xNew; - } - if ($i == MAX_ITERATIONS) { - return PHPExcel_Calculation_Functions::NA(); - } - return round($x, 12); - } - return PHPExcel_Calculation_Functions::VALUE(); - } - - - /** - * CONFIDENCE - * - * Returns the confidence interval for a population mean - * - * @param float $alpha - * @param float $stdDev Standard Deviation - * @param float $size - * @return float - * - */ - public static function CONFIDENCE($alpha, $stdDev, $size) - { - $alpha = PHPExcel_Calculation_Functions::flattenSingleValue($alpha); - $stdDev = PHPExcel_Calculation_Functions::flattenSingleValue($stdDev); - $size = floor(PHPExcel_Calculation_Functions::flattenSingleValue($size)); - - if ((is_numeric($alpha)) && (is_numeric($stdDev)) && (is_numeric($size))) { - if (($alpha <= 0) || ($alpha >= 1)) { - return PHPExcel_Calculation_Functions::NaN(); - } - if (($stdDev <= 0) || ($size < 1)) { - return PHPExcel_Calculation_Functions::NaN(); - } - return self::NORMSINV(1 - $alpha / 2) * $stdDev / sqrt($size); - } - return PHPExcel_Calculation_Functions::VALUE(); - } - - - /** - * CORREL - * - * Returns covariance, the average of the products of deviations for each data point pair. - * - * @param array of mixed Data Series Y - * @param array of mixed Data Series X - * @return float - */ - public static function CORREL($yValues, $xValues = null) - { - if ((is_null($xValues)) || (!is_array($yValues)) || (!is_array($xValues))) { - return PHPExcel_Calculation_Functions::VALUE(); - } - if (!self::checkTrendArrays($yValues, $xValues)) { - return PHPExcel_Calculation_Functions::VALUE(); - } - $yValueCount = count($yValues); - $xValueCount = count($xValues); - - if (($yValueCount == 0) || ($yValueCount != $xValueCount)) { - return PHPExcel_Calculation_Functions::NA(); - } elseif ($yValueCount == 1) { - return PHPExcel_Calculation_Functions::DIV0(); - } - - $bestFitLinear = trendClass::calculate(trendClass::TREND_LINEAR, $yValues, $xValues); - return $bestFitLinear->getCorrelation(); - } - - - /** - * COUNT - * - * Counts the number of cells that contain numbers within the list of arguments - * - * Excel Function: - * COUNT(value1[,value2[, ...]]) - * - * @access public - * @category Statistical Functions - * @param mixed $arg,... Data values - * @return int - */ - public static function COUNT() - { - $returnValue = 0; - - // Loop through arguments - $aArgs = PHPExcel_Calculation_Functions::flattenArrayIndexed(func_get_args()); - foreach ($aArgs as $k => $arg) { - if ((is_bool($arg)) && - ((!PHPExcel_Calculation_Functions::isCellValue($k)) || (PHPExcel_Calculation_Functions::getCompatibilityMode() == PHPExcel_Calculation_Functions::COMPATIBILITY_OPENOFFICE))) { - $arg = (integer) $arg; - } - // Is it a numeric value? - if ((is_numeric($arg)) && (!is_string($arg))) { - ++$returnValue; - } - } - - return $returnValue; - } - - - /** - * COUNTA - * - * Counts the number of cells that are not empty within the list of arguments - * - * Excel Function: - * COUNTA(value1[,value2[, ...]]) - * - * @access public - * @category Statistical Functions - * @param mixed $arg,... Data values - * @return int - */ - public static function COUNTA() - { - $returnValue = 0; - - // Loop through arguments - $aArgs = PHPExcel_Calculation_Functions::flattenArray(func_get_args()); - foreach ($aArgs as $arg) { - // Is it a numeric, boolean or string value? - if ((is_numeric($arg)) || (is_bool($arg)) || ((is_string($arg) && ($arg != '')))) { - ++$returnValue; - } - } - - return $returnValue; - } - - - /** - * COUNTBLANK - * - * Counts the number of empty cells within the list of arguments - * - * Excel Function: - * COUNTBLANK(value1[,value2[, ...]]) - * - * @access public - * @category Statistical Functions - * @param mixed $arg,... Data values - * @return int - */ - public static function COUNTBLANK() - { - $returnValue = 0; - - // Loop through arguments - $aArgs = PHPExcel_Calculation_Functions::flattenArray(func_get_args()); - foreach ($aArgs as $arg) { - // Is it a blank cell? - if ((is_null($arg)) || ((is_string($arg)) && ($arg == ''))) { - ++$returnValue; - } - } - - return $returnValue; - } - - - /** - * COUNTIF - * - * Counts the number of cells that contain numbers within the list of arguments - * - * Excel Function: - * COUNTIF(value1[,value2[, ...]],condition) - * - * @access public - * @category Statistical Functions - * @param mixed $arg,... Data values - * @param string $condition The criteria that defines which cells will be counted. - * @return int - */ - public static function COUNTIF($aArgs, $condition) - { - $returnValue = 0; - - $aArgs = PHPExcel_Calculation_Functions::flattenArray($aArgs); - $condition = PHPExcel_Calculation_Functions::ifCondition($condition); - // Loop through arguments - foreach ($aArgs as $arg) { - if (!is_numeric($arg)) { - $arg = PHPExcel_Calculation::wrapResult(strtoupper($arg)); - } - $testCondition = '='.$arg.$condition; - if (PHPExcel_Calculation::getInstance()->_calculateFormulaValue($testCondition)) { - // Is it a value within our criteria - ++$returnValue; - } - } - - return $returnValue; - } - - - /** - * COVAR - * - * Returns covariance, the average of the products of deviations for each data point pair. - * - * @param array of mixed Data Series Y - * @param array of mixed Data Series X - * @return float - */ - public static function COVAR($yValues, $xValues) - { - if (!self::checkTrendArrays($yValues, $xValues)) { - return PHPExcel_Calculation_Functions::VALUE(); - } - $yValueCount = count($yValues); - $xValueCount = count($xValues); - - if (($yValueCount == 0) || ($yValueCount != $xValueCount)) { - return PHPExcel_Calculation_Functions::NA(); - } elseif ($yValueCount == 1) { - return PHPExcel_Calculation_Functions::DIV0(); - } - - $bestFitLinear = trendClass::calculate(trendClass::TREND_LINEAR, $yValues, $xValues); - return $bestFitLinear->getCovariance(); - } - - - /** - * CRITBINOM - * - * Returns the smallest value for which the cumulative binomial distribution is greater - * than or equal to a criterion value - * - * See http://support.microsoft.com/kb/828117/ for details of the algorithm used - * - * @param float $trials number of Bernoulli trials - * @param float $probability probability of a success on each trial - * @param float $alpha criterion value - * @return int - * - * @todo Warning. This implementation differs from the algorithm detailed on the MS - * web site in that $CumPGuessMinus1 = $CumPGuess - 1 rather than $CumPGuess - $PGuess - * This eliminates a potential endless loop error, but may have an adverse affect on the - * accuracy of the function (although all my tests have so far returned correct results). - * - */ - public static function CRITBINOM($trials, $probability, $alpha) - { - $trials = floor(PHPExcel_Calculation_Functions::flattenSingleValue($trials)); - $probability = PHPExcel_Calculation_Functions::flattenSingleValue($probability); - $alpha = PHPExcel_Calculation_Functions::flattenSingleValue($alpha); - - if ((is_numeric($trials)) && (is_numeric($probability)) && (is_numeric($alpha))) { - if ($trials < 0) { - return PHPExcel_Calculation_Functions::NaN(); - } elseif (($probability < 0) || ($probability > 1)) { - return PHPExcel_Calculation_Functions::NaN(); - } elseif (($alpha < 0) || ($alpha > 1)) { - return PHPExcel_Calculation_Functions::NaN(); - } elseif ($alpha <= 0.5) { - $t = sqrt(log(1 / ($alpha * $alpha))); - $trialsApprox = 0 - ($t + (2.515517 + 0.802853 * $t + 0.010328 * $t * $t) / (1 + 1.432788 * $t + 0.189269 * $t * $t + 0.001308 * $t * $t * $t)); - } else { - $t = sqrt(log(1 / pow(1 - $alpha, 2))); - $trialsApprox = $t - (2.515517 + 0.802853 * $t + 0.010328 * $t * $t) / (1 + 1.432788 * $t + 0.189269 * $t * $t + 0.001308 * $t * $t * $t); - } - $Guess = floor($trials * $probability + $trialsApprox * sqrt($trials * $probability * (1 - $probability))); - if ($Guess < 0) { - $Guess = 0; - } elseif ($Guess > $trials) { - $Guess = $trials; - } - - $TotalUnscaledProbability = $UnscaledPGuess = $UnscaledCumPGuess = 0.0; - $EssentiallyZero = 10e-12; - - $m = floor($trials * $probability); - ++$TotalUnscaledProbability; - if ($m == $Guess) { - ++$UnscaledPGuess; - } - if ($m <= $Guess) { - ++$UnscaledCumPGuess; - } - - $PreviousValue = 1; - $Done = false; - $k = $m + 1; - while ((!$Done) && ($k <= $trials)) { - $CurrentValue = $PreviousValue * ($trials - $k + 1) * $probability / ($k * (1 - $probability)); - $TotalUnscaledProbability += $CurrentValue; - if ($k == $Guess) { - $UnscaledPGuess += $CurrentValue; - } - if ($k <= $Guess) { - $UnscaledCumPGuess += $CurrentValue; - } - if ($CurrentValue <= $EssentiallyZero) { - $Done = true; - } - $PreviousValue = $CurrentValue; - ++$k; - } - - $PreviousValue = 1; - $Done = false; - $k = $m - 1; - while ((!$Done) && ($k >= 0)) { - $CurrentValue = $PreviousValue * $k + 1 * (1 - $probability) / (($trials - $k) * $probability); - $TotalUnscaledProbability += $CurrentValue; - if ($k == $Guess) { - $UnscaledPGuess += $CurrentValue; - } - if ($k <= $Guess) { - $UnscaledCumPGuess += $CurrentValue; - } - if ($CurrentValue <= $EssentiallyZero) { - $Done = true; - } - $PreviousValue = $CurrentValue; - --$k; - } - - $PGuess = $UnscaledPGuess / $TotalUnscaledProbability; - $CumPGuess = $UnscaledCumPGuess / $TotalUnscaledProbability; - -// $CumPGuessMinus1 = $CumPGuess - $PGuess; - $CumPGuessMinus1 = $CumPGuess - 1; - - while (true) { - if (($CumPGuessMinus1 < $alpha) && ($CumPGuess >= $alpha)) { - return $Guess; - } elseif (($CumPGuessMinus1 < $alpha) && ($CumPGuess < $alpha)) { - $PGuessPlus1 = $PGuess * ($trials - $Guess) * $probability / $Guess / (1 - $probability); - $CumPGuessMinus1 = $CumPGuess; - $CumPGuess = $CumPGuess + $PGuessPlus1; - $PGuess = $PGuessPlus1; - ++$Guess; - } elseif (($CumPGuessMinus1 >= $alpha) && ($CumPGuess >= $alpha)) { - $PGuessMinus1 = $PGuess * $Guess * (1 - $probability) / ($trials - $Guess + 1) / $probability; - $CumPGuess = $CumPGuessMinus1; - $CumPGuessMinus1 = $CumPGuessMinus1 - $PGuess; - $PGuess = $PGuessMinus1; - --$Guess; - } - } - } - return PHPExcel_Calculation_Functions::VALUE(); - } - - - /** - * DEVSQ - * - * Returns the sum of squares of deviations of data points from their sample mean. - * - * Excel Function: - * DEVSQ(value1[,value2[, ...]]) - * - * @access public - * @category Statistical Functions - * @param mixed $arg,... Data values - * @return float - */ - public static function DEVSQ() - { - $aArgs = PHPExcel_Calculation_Functions::flattenArrayIndexed(func_get_args()); - - // Return value - $returnValue = null; - - $aMean = self::AVERAGE($aArgs); - if ($aMean != PHPExcel_Calculation_Functions::DIV0()) { - $aCount = -1; - foreach ($aArgs as $k => $arg) { - // Is it a numeric value? - if ((is_bool($arg)) && - ((!PHPExcel_Calculation_Functions::isCellValue($k)) || - (PHPExcel_Calculation_Functions::getCompatibilityMode() == PHPExcel_Calculation_Functions::COMPATIBILITY_OPENOFFICE))) { - $arg = (integer) $arg; - } - if ((is_numeric($arg)) && (!is_string($arg))) { - if (is_null($returnValue)) { - $returnValue = pow(($arg - $aMean), 2); - } else { - $returnValue += pow(($arg - $aMean), 2); - } - ++$aCount; - } - } - - // Return - if (is_null($returnValue)) { - return PHPExcel_Calculation_Functions::NaN(); - } else { - return $returnValue; - } - } - return self::NA(); - } - - - /** - * EXPONDIST - * - * Returns the exponential distribution. Use EXPONDIST to model the time between events, - * such as how long an automated bank teller takes to deliver cash. For example, you can - * use EXPONDIST to determine the probability that the process takes at most 1 minute. - * - * @param float $value Value of the function - * @param float $lambda The parameter value - * @param boolean $cumulative - * @return float - */ - public static function EXPONDIST($value, $lambda, $cumulative) - { - $value = PHPExcel_Calculation_Functions::flattenSingleValue($value); - $lambda = PHPExcel_Calculation_Functions::flattenSingleValue($lambda); - $cumulative = PHPExcel_Calculation_Functions::flattenSingleValue($cumulative); - - if ((is_numeric($value)) && (is_numeric($lambda))) { - if (($value < 0) || ($lambda < 0)) { - return PHPExcel_Calculation_Functions::NaN(); - } - if ((is_numeric($cumulative)) || (is_bool($cumulative))) { - if ($cumulative) { - return 1 - exp(0-$value*$lambda); - } else { - return $lambda * exp(0-$value*$lambda); - } - } - } - return PHPExcel_Calculation_Functions::VALUE(); - } - - - /** - * FISHER - * - * Returns the Fisher transformation at x. This transformation produces a function that - * is normally distributed rather than skewed. Use this function to perform hypothesis - * testing on the correlation coefficient. - * - * @param float $value - * @return float - */ - public static function FISHER($value) - { - $value = PHPExcel_Calculation_Functions::flattenSingleValue($value); - - if (is_numeric($value)) { - if (($value <= -1) || ($value >= 1)) { - return PHPExcel_Calculation_Functions::NaN(); - } - return 0.5 * log((1+$value)/(1-$value)); - } - return PHPExcel_Calculation_Functions::VALUE(); - } - - - /** - * FISHERINV - * - * Returns the inverse of the Fisher transformation. Use this transformation when - * analyzing correlations between ranges or arrays of data. If y = FISHER(x), then - * FISHERINV(y) = x. - * - * @param float $value - * @return float - */ - public static function FISHERINV($value) - { - $value = PHPExcel_Calculation_Functions::flattenSingleValue($value); - - if (is_numeric($value)) { - return (exp(2 * $value) - 1) / (exp(2 * $value) + 1); - } - return PHPExcel_Calculation_Functions::VALUE(); - } - - - /** - * FORECAST - * - * Calculates, or predicts, a future value by using existing values. The predicted value is a y-value for a given x-value. - * - * @param float Value of X for which we want to find Y - * @param array of mixed Data Series Y - * @param array of mixed Data Series X - * @return float - */ - public static function FORECAST($xValue, $yValues, $xValues) - { - $xValue = PHPExcel_Calculation_Functions::flattenSingleValue($xValue); - if (!is_numeric($xValue)) { - return PHPExcel_Calculation_Functions::VALUE(); - } elseif (!self::checkTrendArrays($yValues, $xValues)) { - return PHPExcel_Calculation_Functions::VALUE(); - } - $yValueCount = count($yValues); - $xValueCount = count($xValues); - - if (($yValueCount == 0) || ($yValueCount != $xValueCount)) { - return PHPExcel_Calculation_Functions::NA(); - } elseif ($yValueCount == 1) { - return PHPExcel_Calculation_Functions::DIV0(); - } - - $bestFitLinear = trendClass::calculate(trendClass::TREND_LINEAR, $yValues, $xValues); - return $bestFitLinear->getValueOfYForX($xValue); - } - - - /** - * GAMMADIST - * - * Returns the gamma distribution. - * - * @param float $value Value at which you want to evaluate the distribution - * @param float $a Parameter to the distribution - * @param float $b Parameter to the distribution - * @param boolean $cumulative - * @return float - * - */ - public static function GAMMADIST($value, $a, $b, $cumulative) - { - $value = PHPExcel_Calculation_Functions::flattenSingleValue($value); - $a = PHPExcel_Calculation_Functions::flattenSingleValue($a); - $b = PHPExcel_Calculation_Functions::flattenSingleValue($b); - - if ((is_numeric($value)) && (is_numeric($a)) && (is_numeric($b))) { - if (($value < 0) || ($a <= 0) || ($b <= 0)) { - return PHPExcel_Calculation_Functions::NaN(); - } - if ((is_numeric($cumulative)) || (is_bool($cumulative))) { - if ($cumulative) { - return self::incompleteGamma($a, $value / $b) / self::gamma($a); - } else { - return (1 / (pow($b, $a) * self::gamma($a))) * pow($value, $a-1) * exp(0-($value / $b)); - } - } - } - return PHPExcel_Calculation_Functions::VALUE(); - } - - - /** - * GAMMAINV - * - * Returns the inverse of the beta distribution. - * - * @param float $probability Probability at which you want to evaluate the distribution - * @param float $alpha Parameter to the distribution - * @param float $beta Parameter to the distribution - * @return float - * - */ - public static function GAMMAINV($probability, $alpha, $beta) - { - $probability = PHPExcel_Calculation_Functions::flattenSingleValue($probability); - $alpha = PHPExcel_Calculation_Functions::flattenSingleValue($alpha); - $beta = PHPExcel_Calculation_Functions::flattenSingleValue($beta); - - if ((is_numeric($probability)) && (is_numeric($alpha)) && (is_numeric($beta))) { - if (($alpha <= 0) || ($beta <= 0) || ($probability < 0) || ($probability > 1)) { - return PHPExcel_Calculation_Functions::NaN(); - } - - $xLo = 0; - $xHi = $alpha * $beta * 5; - - $x = $xNew = 1; - $error = $pdf = 0; - $dx = 1024; - $i = 0; - - while ((abs($dx) > PRECISION) && ($i++ < MAX_ITERATIONS)) { - // Apply Newton-Raphson step - $error = self::GAMMADIST($x, $alpha, $beta, true) - $probability; - if ($error < 0.0) { - $xLo = $x; - } else { - $xHi = $x; - } - $pdf = self::GAMMADIST($x, $alpha, $beta, false); - // Avoid division by zero - if ($pdf != 0.0) { - $dx = $error / $pdf; - $xNew = $x - $dx; - } - // If the NR fails to converge (which for example may be the - // case if the initial guess is too rough) we apply a bisection - // step to determine a more narrow interval around the root. - if (($xNew < $xLo) || ($xNew > $xHi) || ($pdf == 0.0)) { - $xNew = ($xLo + $xHi) / 2; - $dx = $xNew - $x; - } - $x = $xNew; - } - if ($i == MAX_ITERATIONS) { - return PHPExcel_Calculation_Functions::NA(); - } - return $x; - } - return PHPExcel_Calculation_Functions::VALUE(); - } - - - /** - * GAMMALN - * - * Returns the natural logarithm of the gamma function. - * - * @param float $value - * @return float - */ - public static function GAMMALN($value) - { - $value = PHPExcel_Calculation_Functions::flattenSingleValue($value); - - if (is_numeric($value)) { - if ($value <= 0) { - return PHPExcel_Calculation_Functions::NaN(); - } - return log(self::gamma($value)); - } - return PHPExcel_Calculation_Functions::VALUE(); - } - - - /** - * GEOMEAN - * - * Returns the geometric mean of an array or range of positive data. For example, you - * can use GEOMEAN to calculate average growth rate given compound interest with - * variable rates. - * - * Excel Function: - * GEOMEAN(value1[,value2[, ...]]) - * - * @access public - * @category Statistical Functions - * @param mixed $arg,... Data values - * @return float - */ - public static function GEOMEAN() - { - $aArgs = PHPExcel_Calculation_Functions::flattenArray(func_get_args()); - - $aMean = PHPExcel_Calculation_MathTrig::PRODUCT($aArgs); - if (is_numeric($aMean) && ($aMean > 0)) { - $aCount = self::COUNT($aArgs) ; - if (self::MIN($aArgs) > 0) { - return pow($aMean, (1 / $aCount)); - } - } - return PHPExcel_Calculation_Functions::NaN(); - } - - - /** - * GROWTH - * - * Returns values along a predicted emponential trend - * - * @param array of mixed Data Series Y - * @param array of mixed Data Series X - * @param array of mixed Values of X for which we want to find Y - * @param boolean A logical value specifying whether to force the intersect to equal 0. - * @return array of float - */ - public static function GROWTH($yValues, $xValues = array(), $newValues = array(), $const = true) - { - $yValues = PHPExcel_Calculation_Functions::flattenArray($yValues); - $xValues = PHPExcel_Calculation_Functions::flattenArray($xValues); - $newValues = PHPExcel_Calculation_Functions::flattenArray($newValues); - $const = (is_null($const)) ? true : (boolean) PHPExcel_Calculation_Functions::flattenSingleValue($const); - - $bestFitExponential = trendClass::calculate(trendClass::TREND_EXPONENTIAL, $yValues, $xValues, $const); - if (empty($newValues)) { - $newValues = $bestFitExponential->getXValues(); - } - - $returnArray = array(); - foreach ($newValues as $xValue) { - $returnArray[0][] = $bestFitExponential->getValueOfYForX($xValue); - } - - return $returnArray; - } - - - /** - * HARMEAN - * - * Returns the harmonic mean of a data set. The harmonic mean is the reciprocal of the - * arithmetic mean of reciprocals. - * - * Excel Function: - * HARMEAN(value1[,value2[, ...]]) - * - * @access public - * @category Statistical Functions - * @param mixed $arg,... Data values - * @return float - */ - public static function HARMEAN() - { - // Return value - $returnValue = PHPExcel_Calculation_Functions::NA(); - - // Loop through arguments - $aArgs = PHPExcel_Calculation_Functions::flattenArray(func_get_args()); - if (self::MIN($aArgs) < 0) { - return PHPExcel_Calculation_Functions::NaN(); - } - $aCount = 0; - foreach ($aArgs as $arg) { - // Is it a numeric value? - if ((is_numeric($arg)) && (!is_string($arg))) { - if ($arg <= 0) { - return PHPExcel_Calculation_Functions::NaN(); - } - if (is_null($returnValue)) { - $returnValue = (1 / $arg); - } else { - $returnValue += (1 / $arg); - } - ++$aCount; - } - } - - // Return - if ($aCount > 0) { - return 1 / ($returnValue / $aCount); - } else { - return $returnValue; - } - } - - - /** - * HYPGEOMDIST - * - * Returns the hypergeometric distribution. HYPGEOMDIST returns the probability of a given number of - * sample successes, given the sample size, population successes, and population size. - * - * @param float $sampleSuccesses Number of successes in the sample - * @param float $sampleNumber Size of the sample - * @param float $populationSuccesses Number of successes in the population - * @param float $populationNumber Population size - * @return float - * - */ - public static function HYPGEOMDIST($sampleSuccesses, $sampleNumber, $populationSuccesses, $populationNumber) - { - $sampleSuccesses = floor(PHPExcel_Calculation_Functions::flattenSingleValue($sampleSuccesses)); - $sampleNumber = floor(PHPExcel_Calculation_Functions::flattenSingleValue($sampleNumber)); - $populationSuccesses = floor(PHPExcel_Calculation_Functions::flattenSingleValue($populationSuccesses)); - $populationNumber = floor(PHPExcel_Calculation_Functions::flattenSingleValue($populationNumber)); - - if ((is_numeric($sampleSuccesses)) && (is_numeric($sampleNumber)) && (is_numeric($populationSuccesses)) && (is_numeric($populationNumber))) { - if (($sampleSuccesses < 0) || ($sampleSuccesses > $sampleNumber) || ($sampleSuccesses > $populationSuccesses)) { - return PHPExcel_Calculation_Functions::NaN(); - } - if (($sampleNumber <= 0) || ($sampleNumber > $populationNumber)) { - return PHPExcel_Calculation_Functions::NaN(); - } - if (($populationSuccesses <= 0) || ($populationSuccesses > $populationNumber)) { - return PHPExcel_Calculation_Functions::NaN(); - } - return PHPExcel_Calculation_MathTrig::COMBIN($populationSuccesses, $sampleSuccesses) * - PHPExcel_Calculation_MathTrig::COMBIN($populationNumber - $populationSuccesses, $sampleNumber - $sampleSuccesses) / - PHPExcel_Calculation_MathTrig::COMBIN($populationNumber, $sampleNumber); - } - return PHPExcel_Calculation_Functions::VALUE(); - } - - - /** - * INTERCEPT - * - * Calculates the point at which a line will intersect the y-axis by using existing x-values and y-values. - * - * @param array of mixed Data Series Y - * @param array of mixed Data Series X - * @return float - */ - public static function INTERCEPT($yValues, $xValues) - { - if (!self::checkTrendArrays($yValues, $xValues)) { - return PHPExcel_Calculation_Functions::VALUE(); - } - $yValueCount = count($yValues); - $xValueCount = count($xValues); - - if (($yValueCount == 0) || ($yValueCount != $xValueCount)) { - return PHPExcel_Calculation_Functions::NA(); - } elseif ($yValueCount == 1) { - return PHPExcel_Calculation_Functions::DIV0(); - } - - $bestFitLinear = trendClass::calculate(trendClass::TREND_LINEAR, $yValues, $xValues); - return $bestFitLinear->getIntersect(); - } - - - /** - * KURT - * - * Returns the kurtosis of a data set. Kurtosis characterizes the relative peakedness - * or flatness of a distribution compared with the normal distribution. Positive - * kurtosis indicates a relatively peaked distribution. Negative kurtosis indicates a - * relatively flat distribution. - * - * @param array Data Series - * @return float - */ - public static function KURT() - { - $aArgs = PHPExcel_Calculation_Functions::flattenArrayIndexed(func_get_args()); - $mean = self::AVERAGE($aArgs); - $stdDev = self::STDEV($aArgs); - - if ($stdDev > 0) { - $count = $summer = 0; - // Loop through arguments - foreach ($aArgs as $k => $arg) { - if ((is_bool($arg)) && - (!PHPExcel_Calculation_Functions::isMatrixValue($k))) { - } else { - // Is it a numeric value? - if ((is_numeric($arg)) && (!is_string($arg))) { - $summer += pow((($arg - $mean) / $stdDev), 4); - ++$count; - } - } - } - - // Return - if ($count > 3) { - return $summer * ($count * ($count+1) / (($count-1) * ($count-2) * ($count-3))) - (3 * pow($count-1, 2) / (($count-2) * ($count-3))); - } - } - return PHPExcel_Calculation_Functions::DIV0(); - } - - - /** - * LARGE - * - * Returns the nth largest value in a data set. You can use this function to - * select a value based on its relative standing. - * - * Excel Function: - * LARGE(value1[,value2[, ...]],entry) - * - * @access public - * @category Statistical Functions - * @param mixed $arg,... Data values - * @param int $entry Position (ordered from the largest) in the array or range of data to return - * @return float - * - */ - public static function LARGE() - { - $aArgs = PHPExcel_Calculation_Functions::flattenArray(func_get_args()); - - // Calculate - $entry = floor(array_pop($aArgs)); - - if ((is_numeric($entry)) && (!is_string($entry))) { - $mArgs = array(); - foreach ($aArgs as $arg) { - // Is it a numeric value? - if ((is_numeric($arg)) && (!is_string($arg))) { - $mArgs[] = $arg; - } - } - $count = self::COUNT($mArgs); - $entry = floor(--$entry); - if (($entry < 0) || ($entry >= $count) || ($count == 0)) { - return PHPExcel_Calculation_Functions::NaN(); - } - rsort($mArgs); - return $mArgs[$entry]; - } - return PHPExcel_Calculation_Functions::VALUE(); - } - - - /** - * LINEST - * - * Calculates the statistics for a line by using the "least squares" method to calculate a straight line that best fits your data, - * and then returns an array that describes the line. - * - * @param array of mixed Data Series Y - * @param array of mixed Data Series X - * @param boolean A logical value specifying whether to force the intersect to equal 0. - * @param boolean A logical value specifying whether to return additional regression statistics. - * @return array - */ - public static function LINEST($yValues, $xValues = null, $const = true, $stats = false) - { - $const = (is_null($const)) ? true : (boolean) PHPExcel_Calculation_Functions::flattenSingleValue($const); - $stats = (is_null($stats)) ? false : (boolean) PHPExcel_Calculation_Functions::flattenSingleValue($stats); - if (is_null($xValues)) { - $xValues = range(1, count(PHPExcel_Calculation_Functions::flattenArray($yValues))); - } - - if (!self::checkTrendArrays($yValues, $xValues)) { - return PHPExcel_Calculation_Functions::VALUE(); - } - $yValueCount = count($yValues); - $xValueCount = count($xValues); - - - if (($yValueCount == 0) || ($yValueCount != $xValueCount)) { - return PHPExcel_Calculation_Functions::NA(); - } elseif ($yValueCount == 1) { - return 0; - } - - $bestFitLinear = trendClass::calculate(trendClass::TREND_LINEAR, $yValues, $xValues, $const); - if ($stats) { - return array( - array( - $bestFitLinear->getSlope(), - $bestFitLinear->getSlopeSE(), - $bestFitLinear->getGoodnessOfFit(), - $bestFitLinear->getF(), - $bestFitLinear->getSSRegression(), - ), - array( - $bestFitLinear->getIntersect(), - $bestFitLinear->getIntersectSE(), - $bestFitLinear->getStdevOfResiduals(), - $bestFitLinear->getDFResiduals(), - $bestFitLinear->getSSResiduals() - ) - ); - } else { - return array( - $bestFitLinear->getSlope(), - $bestFitLinear->getIntersect() - ); - } - } - - - /** - * LOGEST - * - * Calculates an exponential curve that best fits the X and Y data series, - * and then returns an array that describes the line. - * - * @param array of mixed Data Series Y - * @param array of mixed Data Series X - * @param boolean A logical value specifying whether to force the intersect to equal 0. - * @param boolean A logical value specifying whether to return additional regression statistics. - * @return array - */ - public static function LOGEST($yValues, $xValues = null, $const = true, $stats = false) - { - $const = (is_null($const)) ? true : (boolean) PHPExcel_Calculation_Functions::flattenSingleValue($const); - $stats = (is_null($stats)) ? false : (boolean) PHPExcel_Calculation_Functions::flattenSingleValue($stats); - if (is_null($xValues)) { - $xValues = range(1, count(PHPExcel_Calculation_Functions::flattenArray($yValues))); - } - - if (!self::checkTrendArrays($yValues, $xValues)) { - return PHPExcel_Calculation_Functions::VALUE(); - } - $yValueCount = count($yValues); - $xValueCount = count($xValues); - - foreach ($yValues as $value) { - if ($value <= 0.0) { - return PHPExcel_Calculation_Functions::NaN(); - } - } - - - if (($yValueCount == 0) || ($yValueCount != $xValueCount)) { - return PHPExcel_Calculation_Functions::NA(); - } elseif ($yValueCount == 1) { - return 1; - } - - $bestFitExponential = trendClass::calculate(trendClass::TREND_EXPONENTIAL, $yValues, $xValues, $const); - if ($stats) { - return array( - array( - $bestFitExponential->getSlope(), - $bestFitExponential->getSlopeSE(), - $bestFitExponential->getGoodnessOfFit(), - $bestFitExponential->getF(), - $bestFitExponential->getSSRegression(), - ), - array( - $bestFitExponential->getIntersect(), - $bestFitExponential->getIntersectSE(), - $bestFitExponential->getStdevOfResiduals(), - $bestFitExponential->getDFResiduals(), - $bestFitExponential->getSSResiduals() - ) - ); - } else { - return array( - $bestFitExponential->getSlope(), - $bestFitExponential->getIntersect() - ); - } - } - - - /** - * LOGINV - * - * Returns the inverse of the normal cumulative distribution - * - * @param float $probability - * @param float $mean - * @param float $stdDev - * @return float - * - * @todo Try implementing P J Acklam's refinement algorithm for greater - * accuracy if I can get my head round the mathematics - * (as described at) http://home.online.no/~pjacklam/notes/invnorm/ - */ - public static function LOGINV($probability, $mean, $stdDev) - { - $probability = PHPExcel_Calculation_Functions::flattenSingleValue($probability); - $mean = PHPExcel_Calculation_Functions::flattenSingleValue($mean); - $stdDev = PHPExcel_Calculation_Functions::flattenSingleValue($stdDev); - - if ((is_numeric($probability)) && (is_numeric($mean)) && (is_numeric($stdDev))) { - if (($probability < 0) || ($probability > 1) || ($stdDev <= 0)) { - return PHPExcel_Calculation_Functions::NaN(); - } - return exp($mean + $stdDev * self::NORMSINV($probability)); - } - return PHPExcel_Calculation_Functions::VALUE(); - } - - - /** - * LOGNORMDIST - * - * Returns the cumulative lognormal distribution of x, where ln(x) is normally distributed - * with parameters mean and standard_dev. - * - * @param float $value - * @param float $mean - * @param float $stdDev - * @return float - */ - public static function LOGNORMDIST($value, $mean, $stdDev) - { - $value = PHPExcel_Calculation_Functions::flattenSingleValue($value); - $mean = PHPExcel_Calculation_Functions::flattenSingleValue($mean); - $stdDev = PHPExcel_Calculation_Functions::flattenSingleValue($stdDev); - - if ((is_numeric($value)) && (is_numeric($mean)) && (is_numeric($stdDev))) { - if (($value <= 0) || ($stdDev <= 0)) { - return PHPExcel_Calculation_Functions::NaN(); - } - return self::NORMSDIST((log($value) - $mean) / $stdDev); - } - return PHPExcel_Calculation_Functions::VALUE(); - } - - - /** - * MAX - * - * MAX returns the value of the element of the values passed that has the highest value, - * with negative numbers considered smaller than positive numbers. - * - * Excel Function: - * MAX(value1[,value2[, ...]]) - * - * @access public - * @category Statistical Functions - * @param mixed $arg,... Data values - * @return float - */ - public static function MAX() - { - $returnValue = null; - - // Loop through arguments - $aArgs = PHPExcel_Calculation_Functions::flattenArray(func_get_args()); - foreach ($aArgs as $arg) { - // Is it a numeric value? - if ((is_numeric($arg)) && (!is_string($arg))) { - if ((is_null($returnValue)) || ($arg > $returnValue)) { - $returnValue = $arg; - } - } - } - - if (is_null($returnValue)) { - return 0; - } - return $returnValue; - } - - - /** - * MAXA - * - * Returns the greatest value in a list of arguments, including numbers, text, and logical values - * - * Excel Function: - * MAXA(value1[,value2[, ...]]) - * - * @access public - * @category Statistical Functions - * @param mixed $arg,... Data values - * @return float - */ - public static function MAXA() - { - $returnValue = null; - - // Loop through arguments - $aArgs = PHPExcel_Calculation_Functions::flattenArray(func_get_args()); - foreach ($aArgs as $arg) { - // Is it a numeric value? - if ((is_numeric($arg)) || (is_bool($arg)) || ((is_string($arg) && ($arg != '')))) { - if (is_bool($arg)) { - $arg = (integer) $arg; - } elseif (is_string($arg)) { - $arg = 0; - } - if ((is_null($returnValue)) || ($arg > $returnValue)) { - $returnValue = $arg; - } - } - } - - if (is_null($returnValue)) { - return 0; - } - return $returnValue; - } - - - /** - * MAXIF - * - * Counts the maximum value within a range of cells that contain numbers within the list of arguments - * - * Excel Function: - * MAXIF(value1[,value2[, ...]],condition) - * - * @access public - * @category Mathematical and Trigonometric Functions - * @param mixed $arg,... Data values - * @param string $condition The criteria that defines which cells will be checked. - * @return float - */ - public static function MAXIF($aArgs, $condition, $sumArgs = array()) - { - $returnValue = null; - - $aArgs = PHPExcel_Calculation_Functions::flattenArray($aArgs); - $sumArgs = PHPExcel_Calculation_Functions::flattenArray($sumArgs); - if (empty($sumArgs)) { - $sumArgs = $aArgs; - } - $condition = PHPExcel_Calculation_Functions::ifCondition($condition); - // Loop through arguments - foreach ($aArgs as $key => $arg) { - if (!is_numeric($arg)) { - $arg = PHPExcel_Calculation::wrapResult(strtoupper($arg)); - } - $testCondition = '='.$arg.$condition; - if (PHPExcel_Calculation::getInstance()->_calculateFormulaValue($testCondition)) { - if ((is_null($returnValue)) || ($arg > $returnValue)) { - $returnValue = $arg; - } - } - } - - return $returnValue; - } - - /** - * MEDIAN - * - * Returns the median of the given numbers. The median is the number in the middle of a set of numbers. - * - * Excel Function: - * MEDIAN(value1[,value2[, ...]]) - * - * @access public - * @category Statistical Functions - * @param mixed $arg,... Data values - * @return float - */ - public static function MEDIAN() - { - $returnValue = PHPExcel_Calculation_Functions::NaN(); - - $mArgs = array(); - // Loop through arguments - $aArgs = PHPExcel_Calculation_Functions::flattenArray(func_get_args()); - foreach ($aArgs as $arg) { - // Is it a numeric value? - if ((is_numeric($arg)) && (!is_string($arg))) { - $mArgs[] = $arg; - } - } - - $mValueCount = count($mArgs); - if ($mValueCount > 0) { - sort($mArgs, SORT_NUMERIC); - $mValueCount = $mValueCount / 2; - if ($mValueCount == floor($mValueCount)) { - $returnValue = ($mArgs[$mValueCount--] + $mArgs[$mValueCount]) / 2; - } else { - $mValueCount = floor($mValueCount); - $returnValue = $mArgs[$mValueCount]; - } - } - - return $returnValue; - } - - - /** - * MIN - * - * MIN returns the value of the element of the values passed that has the smallest value, - * with negative numbers considered smaller than positive numbers. - * - * Excel Function: - * MIN(value1[,value2[, ...]]) - * - * @access public - * @category Statistical Functions - * @param mixed $arg,... Data values - * @return float - */ - public static function MIN() - { - $returnValue = null; - - // Loop through arguments - $aArgs = PHPExcel_Calculation_Functions::flattenArray(func_get_args()); - foreach ($aArgs as $arg) { - // Is it a numeric value? - if ((is_numeric($arg)) && (!is_string($arg))) { - if ((is_null($returnValue)) || ($arg < $returnValue)) { - $returnValue = $arg; - } - } - } - - if (is_null($returnValue)) { - return 0; - } - return $returnValue; - } - - - /** - * MINA - * - * Returns the smallest value in a list of arguments, including numbers, text, and logical values - * - * Excel Function: - * MINA(value1[,value2[, ...]]) - * - * @access public - * @category Statistical Functions - * @param mixed $arg,... Data values - * @return float - */ - public static function MINA() - { - $returnValue = null; - - // Loop through arguments - $aArgs = PHPExcel_Calculation_Functions::flattenArray(func_get_args()); - foreach ($aArgs as $arg) { - // Is it a numeric value? - if ((is_numeric($arg)) || (is_bool($arg)) || ((is_string($arg) && ($arg != '')))) { - if (is_bool($arg)) { - $arg = (integer) $arg; - } elseif (is_string($arg)) { - $arg = 0; - } - if ((is_null($returnValue)) || ($arg < $returnValue)) { - $returnValue = $arg; - } - } - } - - if (is_null($returnValue)) { - return 0; - } - return $returnValue; - } - - - /** - * MINIF - * - * Returns the minimum value within a range of cells that contain numbers within the list of arguments - * - * Excel Function: - * MINIF(value1[,value2[, ...]],condition) - * - * @access public - * @category Mathematical and Trigonometric Functions - * @param mixed $arg,... Data values - * @param string $condition The criteria that defines which cells will be checked. - * @return float - */ - public static function MINIF($aArgs, $condition, $sumArgs = array()) - { - $returnValue = null; - - $aArgs = PHPExcel_Calculation_Functions::flattenArray($aArgs); - $sumArgs = PHPExcel_Calculation_Functions::flattenArray($sumArgs); - if (empty($sumArgs)) { - $sumArgs = $aArgs; - } - $condition = PHPExcel_Calculation_Functions::ifCondition($condition); - // Loop through arguments - foreach ($aArgs as $key => $arg) { - if (!is_numeric($arg)) { - $arg = PHPExcel_Calculation::wrapResult(strtoupper($arg)); - } - $testCondition = '='.$arg.$condition; - if (PHPExcel_Calculation::getInstance()->_calculateFormulaValue($testCondition)) { - if ((is_null($returnValue)) || ($arg < $returnValue)) { - $returnValue = $arg; - } - } - } - - return $returnValue; - } - - - // - // Special variant of array_count_values that isn't limited to strings and integers, - // but can work with floating point numbers as values - // - private static function modeCalc($data) - { - $frequencyArray = array(); - foreach ($data as $datum) { - $found = false; - foreach ($frequencyArray as $key => $value) { - if ((string) $value['value'] == (string) $datum) { - ++$frequencyArray[$key]['frequency']; - $found = true; - break; - } - } - if (!$found) { - $frequencyArray[] = array( - 'value' => $datum, - 'frequency' => 1 - ); - } - } - - foreach ($frequencyArray as $key => $value) { - $frequencyList[$key] = $value['frequency']; - $valueList[$key] = $value['value']; - } - array_multisort($frequencyList, SORT_DESC, $valueList, SORT_ASC, SORT_NUMERIC, $frequencyArray); - - if ($frequencyArray[0]['frequency'] == 1) { - return PHPExcel_Calculation_Functions::NA(); - } - return $frequencyArray[0]['value']; - } - - - /** - * MODE - * - * Returns the most frequently occurring, or repetitive, value in an array or range of data - * - * Excel Function: - * MODE(value1[,value2[, ...]]) - * - * @access public - * @category Statistical Functions - * @param mixed $arg,... Data values - * @return float - */ - public static function MODE() - { - $returnValue = PHPExcel_Calculation_Functions::NA(); - - // Loop through arguments - $aArgs = PHPExcel_Calculation_Functions::flattenArray(func_get_args()); - - $mArgs = array(); - foreach ($aArgs as $arg) { - // Is it a numeric value? - if ((is_numeric($arg)) && (!is_string($arg))) { - $mArgs[] = $arg; - } - } - - if (!empty($mArgs)) { - return self::modeCalc($mArgs); - } - - return $returnValue; - } - - - /** - * NEGBINOMDIST - * - * Returns the negative binomial distribution. NEGBINOMDIST returns the probability that - * there will be number_f failures before the number_s-th success, when the constant - * probability of a success is probability_s. This function is similar to the binomial - * distribution, except that the number of successes is fixed, and the number of trials is - * variable. Like the binomial, trials are assumed to be independent. - * - * @param float $failures Number of Failures - * @param float $successes Threshold number of Successes - * @param float $probability Probability of success on each trial - * @return float - * - */ - public static function NEGBINOMDIST($failures, $successes, $probability) - { - $failures = floor(PHPExcel_Calculation_Functions::flattenSingleValue($failures)); - $successes = floor(PHPExcel_Calculation_Functions::flattenSingleValue($successes)); - $probability = PHPExcel_Calculation_Functions::flattenSingleValue($probability); - - if ((is_numeric($failures)) && (is_numeric($successes)) && (is_numeric($probability))) { - if (($failures < 0) || ($successes < 1)) { - return PHPExcel_Calculation_Functions::NaN(); - } elseif (($probability < 0) || ($probability > 1)) { - return PHPExcel_Calculation_Functions::NaN(); - } - if (PHPExcel_Calculation_Functions::getCompatibilityMode() == PHPExcel_Calculation_Functions::COMPATIBILITY_GNUMERIC) { - if (($failures + $successes - 1) <= 0) { - return PHPExcel_Calculation_Functions::NaN(); - } - } - return (PHPExcel_Calculation_MathTrig::COMBIN($failures + $successes - 1, $successes - 1)) * (pow($probability, $successes)) * (pow(1 - $probability, $failures)); - } - return PHPExcel_Calculation_Functions::VALUE(); - } - - - /** - * NORMDIST - * - * Returns the normal distribution for the specified mean and standard deviation. This - * function has a very wide range of applications in statistics, including hypothesis - * testing. - * - * @param float $value - * @param float $mean Mean Value - * @param float $stdDev Standard Deviation - * @param boolean $cumulative - * @return float - * - */ - public static function NORMDIST($value, $mean, $stdDev, $cumulative) - { - $value = PHPExcel_Calculation_Functions::flattenSingleValue($value); - $mean = PHPExcel_Calculation_Functions::flattenSingleValue($mean); - $stdDev = PHPExcel_Calculation_Functions::flattenSingleValue($stdDev); - - if ((is_numeric($value)) && (is_numeric($mean)) && (is_numeric($stdDev))) { - if ($stdDev < 0) { - return PHPExcel_Calculation_Functions::NaN(); - } - if ((is_numeric($cumulative)) || (is_bool($cumulative))) { - if ($cumulative) { - return 0.5 * (1 + PHPExcel_Calculation_Engineering::erfVal(($value - $mean) / ($stdDev * sqrt(2)))); - } else { - return (1 / (SQRT2PI * $stdDev)) * exp(0 - (pow($value - $mean, 2) / (2 * ($stdDev * $stdDev)))); - } - } - } - return PHPExcel_Calculation_Functions::VALUE(); - } - - - /** - * NORMINV - * - * Returns the inverse of the normal cumulative distribution for the specified mean and standard deviation. - * - * @param float $value - * @param float $mean Mean Value - * @param float $stdDev Standard Deviation - * @return float - * - */ - public static function NORMINV($probability, $mean, $stdDev) - { - $probability = PHPExcel_Calculation_Functions::flattenSingleValue($probability); - $mean = PHPExcel_Calculation_Functions::flattenSingleValue($mean); - $stdDev = PHPExcel_Calculation_Functions::flattenSingleValue($stdDev); - - if ((is_numeric($probability)) && (is_numeric($mean)) && (is_numeric($stdDev))) { - if (($probability < 0) || ($probability > 1)) { - return PHPExcel_Calculation_Functions::NaN(); - } - if ($stdDev < 0) { - return PHPExcel_Calculation_Functions::NaN(); - } - return (self::inverseNcdf($probability) * $stdDev) + $mean; - } - return PHPExcel_Calculation_Functions::VALUE(); - } - - - /** - * NORMSDIST - * - * Returns the standard normal cumulative distribution function. The distribution has - * a mean of 0 (zero) and a standard deviation of one. Use this function in place of a - * table of standard normal curve areas. - * - * @param float $value - * @return float - */ - public static function NORMSDIST($value) - { - $value = PHPExcel_Calculation_Functions::flattenSingleValue($value); - - return self::NORMDIST($value, 0, 1, true); - } - - - /** - * NORMSINV - * - * Returns the inverse of the standard normal cumulative distribution - * - * @param float $value - * @return float - */ - public static function NORMSINV($value) - { - return self::NORMINV($value, 0, 1); - } - - - /** - * PERCENTILE - * - * Returns the nth percentile of values in a range.. - * - * Excel Function: - * PERCENTILE(value1[,value2[, ...]],entry) - * - * @access public - * @category Statistical Functions - * @param mixed $arg,... Data values - * @param float $entry Percentile value in the range 0..1, inclusive. - * @return float - */ - public static function PERCENTILE() - { - $aArgs = PHPExcel_Calculation_Functions::flattenArray(func_get_args()); - - // Calculate - $entry = array_pop($aArgs); - - if ((is_numeric($entry)) && (!is_string($entry))) { - if (($entry < 0) || ($entry > 1)) { - return PHPExcel_Calculation_Functions::NaN(); - } - $mArgs = array(); - foreach ($aArgs as $arg) { - // Is it a numeric value? - if ((is_numeric($arg)) && (!is_string($arg))) { - $mArgs[] = $arg; - } - } - $mValueCount = count($mArgs); - if ($mValueCount > 0) { - sort($mArgs); - $count = self::COUNT($mArgs); - $index = $entry * ($count-1); - $iBase = floor($index); - if ($index == $iBase) { - return $mArgs[$index]; - } else { - $iNext = $iBase + 1; - $iProportion = $index - $iBase; - return $mArgs[$iBase] + (($mArgs[$iNext] - $mArgs[$iBase]) * $iProportion) ; - } - } - } - return PHPExcel_Calculation_Functions::VALUE(); - } - - - /** - * PERCENTRANK - * - * Returns the rank of a value in a data set as a percentage of the data set. - * - * @param array of number An array of, or a reference to, a list of numbers. - * @param number The number whose rank you want to find. - * @param number The number of significant digits for the returned percentage value. - * @return float - */ - public static function PERCENTRANK($valueSet, $value, $significance = 3) - { - $valueSet = PHPExcel_Calculation_Functions::flattenArray($valueSet); - $value = PHPExcel_Calculation_Functions::flattenSingleValue($value); - $significance = (is_null($significance)) ? 3 : (integer) PHPExcel_Calculation_Functions::flattenSingleValue($significance); - - foreach ($valueSet as $key => $valueEntry) { - if (!is_numeric($valueEntry)) { - unset($valueSet[$key]); - } - } - sort($valueSet, SORT_NUMERIC); - $valueCount = count($valueSet); - if ($valueCount == 0) { - return PHPExcel_Calculation_Functions::NaN(); - } - - $valueAdjustor = $valueCount - 1; - if (($value < $valueSet[0]) || ($value > $valueSet[$valueAdjustor])) { - return PHPExcel_Calculation_Functions::NA(); - } - - $pos = array_search($value, $valueSet); - if ($pos === false) { - $pos = 0; - $testValue = $valueSet[0]; - while ($testValue < $value) { - $testValue = $valueSet[++$pos]; - } - --$pos; - $pos += (($value - $valueSet[$pos]) / ($testValue - $valueSet[$pos])); - } - - return round($pos / $valueAdjustor, $significance); - } - - - /** - * PERMUT - * - * Returns the number of permutations for a given number of objects that can be - * selected from number objects. A permutation is any set or subset of objects or - * events where internal order is significant. Permutations are different from - * combinations, for which the internal order is not significant. Use this function - * for lottery-style probability calculations. - * - * @param int $numObjs Number of different objects - * @param int $numInSet Number of objects in each permutation - * @return int Number of permutations - */ - public static function PERMUT($numObjs, $numInSet) - { - $numObjs = PHPExcel_Calculation_Functions::flattenSingleValue($numObjs); - $numInSet = PHPExcel_Calculation_Functions::flattenSingleValue($numInSet); - - if ((is_numeric($numObjs)) && (is_numeric($numInSet))) { - $numInSet = floor($numInSet); - if ($numObjs < $numInSet) { - return PHPExcel_Calculation_Functions::NaN(); - } - return round(PHPExcel_Calculation_MathTrig::FACT($numObjs) / PHPExcel_Calculation_MathTrig::FACT($numObjs - $numInSet)); - } - return PHPExcel_Calculation_Functions::VALUE(); - } - - - /** - * POISSON - * - * Returns the Poisson distribution. A common application of the Poisson distribution - * is predicting the number of events over a specific time, such as the number of - * cars arriving at a toll plaza in 1 minute. - * - * @param float $value - * @param float $mean Mean Value - * @param boolean $cumulative - * @return float - * - */ - public static function POISSON($value, $mean, $cumulative) - { - $value = PHPExcel_Calculation_Functions::flattenSingleValue($value); - $mean = PHPExcel_Calculation_Functions::flattenSingleValue($mean); - - if ((is_numeric($value)) && (is_numeric($mean))) { - if (($value < 0) || ($mean <= 0)) { - return PHPExcel_Calculation_Functions::NaN(); - } - if ((is_numeric($cumulative)) || (is_bool($cumulative))) { - if ($cumulative) { - $summer = 0; - for ($i = 0; $i <= floor($value); ++$i) { - $summer += pow($mean, $i) / PHPExcel_Calculation_MathTrig::FACT($i); - } - return exp(0-$mean) * $summer; - } else { - return (exp(0-$mean) * pow($mean, $value)) / PHPExcel_Calculation_MathTrig::FACT($value); - } - } - } - return PHPExcel_Calculation_Functions::VALUE(); - } - - - /** - * QUARTILE - * - * Returns the quartile of a data set. - * - * Excel Function: - * QUARTILE(value1[,value2[, ...]],entry) - * - * @access public - * @category Statistical Functions - * @param mixed $arg,... Data values - * @param int $entry Quartile value in the range 1..3, inclusive. - * @return float - */ - public static function QUARTILE() - { - $aArgs = PHPExcel_Calculation_Functions::flattenArray(func_get_args()); - - // Calculate - $entry = floor(array_pop($aArgs)); - - if ((is_numeric($entry)) && (!is_string($entry))) { - $entry /= 4; - if (($entry < 0) || ($entry > 1)) { - return PHPExcel_Calculation_Functions::NaN(); - } - return self::PERCENTILE($aArgs, $entry); - } - return PHPExcel_Calculation_Functions::VALUE(); - } - - - /** - * RANK - * - * Returns the rank of a number in a list of numbers. - * - * @param number The number whose rank you want to find. - * @param array of number An array of, or a reference to, a list of numbers. - * @param mixed Order to sort the values in the value set - * @return float - */ - public static function RANK($value, $valueSet, $order = 0) - { - $value = PHPExcel_Calculation_Functions::flattenSingleValue($value); - $valueSet = PHPExcel_Calculation_Functions::flattenArray($valueSet); - $order = (is_null($order)) ? 0 : (integer) PHPExcel_Calculation_Functions::flattenSingleValue($order); - - foreach ($valueSet as $key => $valueEntry) { - if (!is_numeric($valueEntry)) { - unset($valueSet[$key]); - } - } - - if ($order == 0) { - rsort($valueSet, SORT_NUMERIC); - } else { - sort($valueSet, SORT_NUMERIC); - } - $pos = array_search($value, $valueSet); - if ($pos === false) { - return PHPExcel_Calculation_Functions::NA(); - } - - return ++$pos; - } - - - /** - * RSQ - * - * Returns the square of the Pearson product moment correlation coefficient through data points in known_y's and known_x's. - * - * @param array of mixed Data Series Y - * @param array of mixed Data Series X - * @return float - */ - public static function RSQ($yValues, $xValues) - { - if (!self::checkTrendArrays($yValues, $xValues)) { - return PHPExcel_Calculation_Functions::VALUE(); - } - $yValueCount = count($yValues); - $xValueCount = count($xValues); - - if (($yValueCount == 0) || ($yValueCount != $xValueCount)) { - return PHPExcel_Calculation_Functions::NA(); - } elseif ($yValueCount == 1) { - return PHPExcel_Calculation_Functions::DIV0(); - } - - $bestFitLinear = trendClass::calculate(trendClass::TREND_LINEAR, $yValues, $xValues); - return $bestFitLinear->getGoodnessOfFit(); - } - - - /** - * SKEW - * - * Returns the skewness of a distribution. Skewness characterizes the degree of asymmetry - * of a distribution around its mean. Positive skewness indicates a distribution with an - * asymmetric tail extending toward more positive values. Negative skewness indicates a - * distribution with an asymmetric tail extending toward more negative values. - * - * @param array Data Series - * @return float - */ - public static function SKEW() - { - $aArgs = PHPExcel_Calculation_Functions::flattenArrayIndexed(func_get_args()); - $mean = self::AVERAGE($aArgs); - $stdDev = self::STDEV($aArgs); - - $count = $summer = 0; - // Loop through arguments - foreach ($aArgs as $k => $arg) { - if ((is_bool($arg)) && - (!PHPExcel_Calculation_Functions::isMatrixValue($k))) { - } else { - // Is it a numeric value? - if ((is_numeric($arg)) && (!is_string($arg))) { - $summer += pow((($arg - $mean) / $stdDev), 3); - ++$count; - } - } - } - - if ($count > 2) { - return $summer * ($count / (($count-1) * ($count-2))); - } - return PHPExcel_Calculation_Functions::DIV0(); - } - - - /** - * SLOPE - * - * Returns the slope of the linear regression line through data points in known_y's and known_x's. - * - * @param array of mixed Data Series Y - * @param array of mixed Data Series X - * @return float - */ - public static function SLOPE($yValues, $xValues) - { - if (!self::checkTrendArrays($yValues, $xValues)) { - return PHPExcel_Calculation_Functions::VALUE(); - } - $yValueCount = count($yValues); - $xValueCount = count($xValues); - - if (($yValueCount == 0) || ($yValueCount != $xValueCount)) { - return PHPExcel_Calculation_Functions::NA(); - } elseif ($yValueCount == 1) { - return PHPExcel_Calculation_Functions::DIV0(); - } - - $bestFitLinear = trendClass::calculate(trendClass::TREND_LINEAR, $yValues, $xValues); - return $bestFitLinear->getSlope(); - } - - - /** - * SMALL - * - * Returns the nth smallest value in a data set. You can use this function to - * select a value based on its relative standing. - * - * Excel Function: - * SMALL(value1[,value2[, ...]],entry) - * - * @access public - * @category Statistical Functions - * @param mixed $arg,... Data values - * @param int $entry Position (ordered from the smallest) in the array or range of data to return - * @return float - */ - public static function SMALL() - { - $aArgs = PHPExcel_Calculation_Functions::flattenArray(func_get_args()); - - // Calculate - $entry = array_pop($aArgs); - - if ((is_numeric($entry)) && (!is_string($entry))) { - $mArgs = array(); - foreach ($aArgs as $arg) { - // Is it a numeric value? - if ((is_numeric($arg)) && (!is_string($arg))) { - $mArgs[] = $arg; - } - } - $count = self::COUNT($mArgs); - $entry = floor(--$entry); - if (($entry < 0) || ($entry >= $count) || ($count == 0)) { - return PHPExcel_Calculation_Functions::NaN(); - } - sort($mArgs); - return $mArgs[$entry]; - } - return PHPExcel_Calculation_Functions::VALUE(); - } - - - /** - * STANDARDIZE - * - * Returns a normalized value from a distribution characterized by mean and standard_dev. - * - * @param float $value Value to normalize - * @param float $mean Mean Value - * @param float $stdDev Standard Deviation - * @return float Standardized value - */ - public static function STANDARDIZE($value, $mean, $stdDev) - { - $value = PHPExcel_Calculation_Functions::flattenSingleValue($value); - $mean = PHPExcel_Calculation_Functions::flattenSingleValue($mean); - $stdDev = PHPExcel_Calculation_Functions::flattenSingleValue($stdDev); - - if ((is_numeric($value)) && (is_numeric($mean)) && (is_numeric($stdDev))) { - if ($stdDev <= 0) { - return PHPExcel_Calculation_Functions::NaN(); - } - return ($value - $mean) / $stdDev ; - } - return PHPExcel_Calculation_Functions::VALUE(); - } - - - /** - * STDEV - * - * Estimates standard deviation based on a sample. The standard deviation is a measure of how - * widely values are dispersed from the average value (the mean). - * - * Excel Function: - * STDEV(value1[,value2[, ...]]) - * - * @access public - * @category Statistical Functions - * @param mixed $arg,... Data values - * @return float - */ - public static function STDEV() - { - $aArgs = PHPExcel_Calculation_Functions::flattenArrayIndexed(func_get_args()); - - // Return value - $returnValue = null; - - $aMean = self::AVERAGE($aArgs); - if (!is_null($aMean)) { - $aCount = -1; - foreach ($aArgs as $k => $arg) { - if ((is_bool($arg)) && - ((!PHPExcel_Calculation_Functions::isCellValue($k)) || (PHPExcel_Calculation_Functions::getCompatibilityMode() == PHPExcel_Calculation_Functions::COMPATIBILITY_OPENOFFICE))) { - $arg = (integer) $arg; - } - // Is it a numeric value? - if ((is_numeric($arg)) && (!is_string($arg))) { - if (is_null($returnValue)) { - $returnValue = pow(($arg - $aMean), 2); - } else { - $returnValue += pow(($arg - $aMean), 2); - } - ++$aCount; - } - } - - // Return - if (($aCount > 0) && ($returnValue >= 0)) { - return sqrt($returnValue / $aCount); - } - } - return PHPExcel_Calculation_Functions::DIV0(); - } - - - /** - * STDEVA - * - * Estimates standard deviation based on a sample, including numbers, text, and logical values - * - * Excel Function: - * STDEVA(value1[,value2[, ...]]) - * - * @access public - * @category Statistical Functions - * @param mixed $arg,... Data values - * @return float - */ - public static function STDEVA() - { - $aArgs = PHPExcel_Calculation_Functions::flattenArrayIndexed(func_get_args()); - - $returnValue = null; - - $aMean = self::AVERAGEA($aArgs); - if (!is_null($aMean)) { - $aCount = -1; - foreach ($aArgs as $k => $arg) { - if ((is_bool($arg)) && - (!PHPExcel_Calculation_Functions::isMatrixValue($k))) { - } else { - // Is it a numeric value? - if ((is_numeric($arg)) || (is_bool($arg)) || ((is_string($arg) & ($arg != '')))) { - if (is_bool($arg)) { - $arg = (integer) $arg; - } elseif (is_string($arg)) { - $arg = 0; - } - if (is_null($returnValue)) { - $returnValue = pow(($arg - $aMean), 2); - } else { - $returnValue += pow(($arg - $aMean), 2); - } - ++$aCount; - } - } - } - - if (($aCount > 0) && ($returnValue >= 0)) { - return sqrt($returnValue / $aCount); - } - } - return PHPExcel_Calculation_Functions::DIV0(); - } - - - /** - * STDEVP - * - * Calculates standard deviation based on the entire population - * - * Excel Function: - * STDEVP(value1[,value2[, ...]]) - * - * @access public - * @category Statistical Functions - * @param mixed $arg,... Data values - * @return float - */ - public static function STDEVP() - { - $aArgs = PHPExcel_Calculation_Functions::flattenArrayIndexed(func_get_args()); - - $returnValue = null; - - $aMean = self::AVERAGE($aArgs); - if (!is_null($aMean)) { - $aCount = 0; - foreach ($aArgs as $k => $arg) { - if ((is_bool($arg)) && - ((!PHPExcel_Calculation_Functions::isCellValue($k)) || (PHPExcel_Calculation_Functions::getCompatibilityMode() == PHPExcel_Calculation_Functions::COMPATIBILITY_OPENOFFICE))) { - $arg = (integer) $arg; - } - // Is it a numeric value? - if ((is_numeric($arg)) && (!is_string($arg))) { - if (is_null($returnValue)) { - $returnValue = pow(($arg - $aMean), 2); - } else { - $returnValue += pow(($arg - $aMean), 2); - } - ++$aCount; - } - } - - if (($aCount > 0) && ($returnValue >= 0)) { - return sqrt($returnValue / $aCount); - } - } - return PHPExcel_Calculation_Functions::DIV0(); - } - - - /** - * STDEVPA - * - * Calculates standard deviation based on the entire population, including numbers, text, and logical values - * - * Excel Function: - * STDEVPA(value1[,value2[, ...]]) - * - * @access public - * @category Statistical Functions - * @param mixed $arg,... Data values - * @return float - */ - public static function STDEVPA() - { - $aArgs = PHPExcel_Calculation_Functions::flattenArrayIndexed(func_get_args()); - - $returnValue = null; - - $aMean = self::AVERAGEA($aArgs); - if (!is_null($aMean)) { - $aCount = 0; - foreach ($aArgs as $k => $arg) { - if ((is_bool($arg)) && - (!PHPExcel_Calculation_Functions::isMatrixValue($k))) { - } else { - // Is it a numeric value? - if ((is_numeric($arg)) || (is_bool($arg)) || ((is_string($arg) & ($arg != '')))) { - if (is_bool($arg)) { - $arg = (integer) $arg; - } elseif (is_string($arg)) { - $arg = 0; - } - if (is_null($returnValue)) { - $returnValue = pow(($arg - $aMean), 2); - } else { - $returnValue += pow(($arg - $aMean), 2); - } - ++$aCount; - } - } - } - - if (($aCount > 0) && ($returnValue >= 0)) { - return sqrt($returnValue / $aCount); - } - } - return PHPExcel_Calculation_Functions::DIV0(); - } - - - /** - * STEYX - * - * Returns the standard error of the predicted y-value for each x in the regression. - * - * @param array of mixed Data Series Y - * @param array of mixed Data Series X - * @return float - */ - public static function STEYX($yValues, $xValues) - { - if (!self::checkTrendArrays($yValues, $xValues)) { - return PHPExcel_Calculation_Functions::VALUE(); - } - $yValueCount = count($yValues); - $xValueCount = count($xValues); - - if (($yValueCount == 0) || ($yValueCount != $xValueCount)) { - return PHPExcel_Calculation_Functions::NA(); - } elseif ($yValueCount == 1) { - return PHPExcel_Calculation_Functions::DIV0(); - } - - $bestFitLinear = trendClass::calculate(trendClass::TREND_LINEAR, $yValues, $xValues); - return $bestFitLinear->getStdevOfResiduals(); - } - - - /** - * TDIST - * - * Returns the probability of Student's T distribution. - * - * @param float $value Value for the function - * @param float $degrees degrees of freedom - * @param float $tails number of tails (1 or 2) - * @return float - */ - public static function TDIST($value, $degrees, $tails) - { - $value = PHPExcel_Calculation_Functions::flattenSingleValue($value); - $degrees = floor(PHPExcel_Calculation_Functions::flattenSingleValue($degrees)); - $tails = floor(PHPExcel_Calculation_Functions::flattenSingleValue($tails)); - - if ((is_numeric($value)) && (is_numeric($degrees)) && (is_numeric($tails))) { - if (($value < 0) || ($degrees < 1) || ($tails < 1) || ($tails > 2)) { - return PHPExcel_Calculation_Functions::NaN(); - } - // tdist, which finds the probability that corresponds to a given value - // of t with k degrees of freedom. This algorithm is translated from a - // pascal function on p81 of "Statistical Computing in Pascal" by D - // Cooke, A H Craven & G M Clark (1985: Edward Arnold (Pubs.) Ltd: - // London). The above Pascal algorithm is itself a translation of the - // fortran algoritm "AS 3" by B E Cooper of the Atlas Computer - // Laboratory as reported in (among other places) "Applied Statistics - // Algorithms", editied by P Griffiths and I D Hill (1985; Ellis - // Horwood Ltd.; W. Sussex, England). - $tterm = $degrees; - $ttheta = atan2($value, sqrt($tterm)); - $tc = cos($ttheta); - $ts = sin($ttheta); - $tsum = 0; - - if (($degrees % 2) == 1) { - $ti = 3; - $tterm = $tc; - } else { - $ti = 2; - $tterm = 1; - } - - $tsum = $tterm; - while ($ti < $degrees) { - $tterm *= $tc * $tc * ($ti - 1) / $ti; - $tsum += $tterm; - $ti += 2; - } - $tsum *= $ts; - if (($degrees % 2) == 1) { - $tsum = M_2DIVPI * ($tsum + $ttheta); - } - $tValue = 0.5 * (1 + $tsum); - if ($tails == 1) { - return 1 - abs($tValue); - } else { - return 1 - abs((1 - $tValue) - $tValue); - } - } - return PHPExcel_Calculation_Functions::VALUE(); - } - - - /** - * TINV - * - * Returns the one-tailed probability of the chi-squared distribution. - * - * @param float $probability Probability for the function - * @param float $degrees degrees of freedom - * @return float - */ - public static function TINV($probability, $degrees) - { - $probability = PHPExcel_Calculation_Functions::flattenSingleValue($probability); - $degrees = floor(PHPExcel_Calculation_Functions::flattenSingleValue($degrees)); - - if ((is_numeric($probability)) && (is_numeric($degrees))) { - $xLo = 100; - $xHi = 0; - - $x = $xNew = 1; - $dx = 1; - $i = 0; - - while ((abs($dx) > PRECISION) && ($i++ < MAX_ITERATIONS)) { - // Apply Newton-Raphson step - $result = self::TDIST($x, $degrees, 2); - $error = $result - $probability; - if ($error == 0.0) { - $dx = 0; - } elseif ($error < 0.0) { - $xLo = $x; - } else { - $xHi = $x; - } - // Avoid division by zero - if ($result != 0.0) { - $dx = $error / $result; - $xNew = $x - $dx; - } - // If the NR fails to converge (which for example may be the - // case if the initial guess is too rough) we apply a bisection - // step to determine a more narrow interval around the root. - if (($xNew < $xLo) || ($xNew > $xHi) || ($result == 0.0)) { - $xNew = ($xLo + $xHi) / 2; - $dx = $xNew - $x; - } - $x = $xNew; - } - if ($i == MAX_ITERATIONS) { - return PHPExcel_Calculation_Functions::NA(); - } - return round($x, 12); - } - return PHPExcel_Calculation_Functions::VALUE(); - } - - - /** - * TREND - * - * Returns values along a linear trend - * - * @param array of mixed Data Series Y - * @param array of mixed Data Series X - * @param array of mixed Values of X for which we want to find Y - * @param boolean A logical value specifying whether to force the intersect to equal 0. - * @return array of float - */ - public static function TREND($yValues, $xValues = array(), $newValues = array(), $const = true) - { - $yValues = PHPExcel_Calculation_Functions::flattenArray($yValues); - $xValues = PHPExcel_Calculation_Functions::flattenArray($xValues); - $newValues = PHPExcel_Calculation_Functions::flattenArray($newValues); - $const = (is_null($const)) ? true : (boolean) PHPExcel_Calculation_Functions::flattenSingleValue($const); - - $bestFitLinear = trendClass::calculate(trendClass::TREND_LINEAR, $yValues, $xValues, $const); - if (empty($newValues)) { - $newValues = $bestFitLinear->getXValues(); - } - - $returnArray = array(); - foreach ($newValues as $xValue) { - $returnArray[0][] = $bestFitLinear->getValueOfYForX($xValue); - } - - return $returnArray; - } - - - /** - * TRIMMEAN - * - * Returns the mean of the interior of a data set. TRIMMEAN calculates the mean - * taken by excluding a percentage of data points from the top and bottom tails - * of a data set. - * - * Excel Function: - * TRIMEAN(value1[,value2[, ...]], $discard) - * - * @access public - * @category Statistical Functions - * @param mixed $arg,... Data values - * @param float $discard Percentage to discard - * @return float - */ - public static function TRIMMEAN() - { - $aArgs = PHPExcel_Calculation_Functions::flattenArray(func_get_args()); - - // Calculate - $percent = array_pop($aArgs); - - if ((is_numeric($percent)) && (!is_string($percent))) { - if (($percent < 0) || ($percent > 1)) { - return PHPExcel_Calculation_Functions::NaN(); - } - $mArgs = array(); - foreach ($aArgs as $arg) { - // Is it a numeric value? - if ((is_numeric($arg)) && (!is_string($arg))) { - $mArgs[] = $arg; - } - } - $discard = floor(self::COUNT($mArgs) * $percent / 2); - sort($mArgs); - for ($i=0; $i < $discard; ++$i) { - array_pop($mArgs); - array_shift($mArgs); - } - return self::AVERAGE($mArgs); - } - return PHPExcel_Calculation_Functions::VALUE(); - } - - - /** - * VARFunc - * - * Estimates variance based on a sample. - * - * Excel Function: - * VAR(value1[,value2[, ...]]) - * - * @access public - * @category Statistical Functions - * @param mixed $arg,... Data values - * @return float - */ - public static function VARFunc() - { - $returnValue = PHPExcel_Calculation_Functions::DIV0(); - - $summerA = $summerB = 0; - - // Loop through arguments - $aArgs = PHPExcel_Calculation_Functions::flattenArray(func_get_args()); - $aCount = 0; - foreach ($aArgs as $arg) { - if (is_bool($arg)) { - $arg = (integer) $arg; - } - // Is it a numeric value? - if ((is_numeric($arg)) && (!is_string($arg))) { - $summerA += ($arg * $arg); - $summerB += $arg; - ++$aCount; - } - } - - if ($aCount > 1) { - $summerA *= $aCount; - $summerB *= $summerB; - $returnValue = ($summerA - $summerB) / ($aCount * ($aCount - 1)); - } - return $returnValue; - } - - - /** - * VARA - * - * Estimates variance based on a sample, including numbers, text, and logical values - * - * Excel Function: - * VARA(value1[,value2[, ...]]) - * - * @access public - * @category Statistical Functions - * @param mixed $arg,... Data values - * @return float - */ - public static function VARA() - { - $returnValue = PHPExcel_Calculation_Functions::DIV0(); - - $summerA = $summerB = 0; - - // Loop through arguments - $aArgs = PHPExcel_Calculation_Functions::flattenArrayIndexed(func_get_args()); - $aCount = 0; - foreach ($aArgs as $k => $arg) { - if ((is_string($arg)) && - (PHPExcel_Calculation_Functions::isValue($k))) { - return PHPExcel_Calculation_Functions::VALUE(); - } elseif ((is_string($arg)) && - (!PHPExcel_Calculation_Functions::isMatrixValue($k))) { - } else { - // Is it a numeric value? - if ((is_numeric($arg)) || (is_bool($arg)) || ((is_string($arg) & ($arg != '')))) { - if (is_bool($arg)) { - $arg = (integer) $arg; - } elseif (is_string($arg)) { - $arg = 0; - } - $summerA += ($arg * $arg); - $summerB += $arg; - ++$aCount; - } - } - } - - if ($aCount > 1) { - $summerA *= $aCount; - $summerB *= $summerB; - $returnValue = ($summerA - $summerB) / ($aCount * ($aCount - 1)); - } - return $returnValue; - } - - - /** - * VARP - * - * Calculates variance based on the entire population - * - * Excel Function: - * VARP(value1[,value2[, ...]]) - * - * @access public - * @category Statistical Functions - * @param mixed $arg,... Data values - * @return float - */ - public static function VARP() - { - // Return value - $returnValue = PHPExcel_Calculation_Functions::DIV0(); - - $summerA = $summerB = 0; - - // Loop through arguments - $aArgs = PHPExcel_Calculation_Functions::flattenArray(func_get_args()); - $aCount = 0; - foreach ($aArgs as $arg) { - if (is_bool($arg)) { - $arg = (integer) $arg; - } - // Is it a numeric value? - if ((is_numeric($arg)) && (!is_string($arg))) { - $summerA += ($arg * $arg); - $summerB += $arg; - ++$aCount; - } - } - - if ($aCount > 0) { - $summerA *= $aCount; - $summerB *= $summerB; - $returnValue = ($summerA - $summerB) / ($aCount * $aCount); - } - return $returnValue; - } - - - /** - * VARPA - * - * Calculates variance based on the entire population, including numbers, text, and logical values - * - * Excel Function: - * VARPA(value1[,value2[, ...]]) - * - * @access public - * @category Statistical Functions - * @param mixed $arg,... Data values - * @return float - */ - public static function VARPA() - { - $returnValue = PHPExcel_Calculation_Functions::DIV0(); - - $summerA = $summerB = 0; - - // Loop through arguments - $aArgs = PHPExcel_Calculation_Functions::flattenArrayIndexed(func_get_args()); - $aCount = 0; - foreach ($aArgs as $k => $arg) { - if ((is_string($arg)) && - (PHPExcel_Calculation_Functions::isValue($k))) { - return PHPExcel_Calculation_Functions::VALUE(); - } elseif ((is_string($arg)) && - (!PHPExcel_Calculation_Functions::isMatrixValue($k))) { - } else { - // Is it a numeric value? - if ((is_numeric($arg)) || (is_bool($arg)) || ((is_string($arg) & ($arg != '')))) { - if (is_bool($arg)) { - $arg = (integer) $arg; - } elseif (is_string($arg)) { - $arg = 0; - } - $summerA += ($arg * $arg); - $summerB += $arg; - ++$aCount; - } - } - } - - if ($aCount > 0) { - $summerA *= $aCount; - $summerB *= $summerB; - $returnValue = ($summerA - $summerB) / ($aCount * $aCount); - } - return $returnValue; - } - - - /** - * WEIBULL - * - * Returns the Weibull distribution. Use this distribution in reliability - * analysis, such as calculating a device's mean time to failure. - * - * @param float $value - * @param float $alpha Alpha Parameter - * @param float $beta Beta Parameter - * @param boolean $cumulative - * @return float - * - */ - public static function WEIBULL($value, $alpha, $beta, $cumulative) - { - $value = PHPExcel_Calculation_Functions::flattenSingleValue($value); - $alpha = PHPExcel_Calculation_Functions::flattenSingleValue($alpha); - $beta = PHPExcel_Calculation_Functions::flattenSingleValue($beta); - - if ((is_numeric($value)) && (is_numeric($alpha)) && (is_numeric($beta))) { - if (($value < 0) || ($alpha <= 0) || ($beta <= 0)) { - return PHPExcel_Calculation_Functions::NaN(); - } - if ((is_numeric($cumulative)) || (is_bool($cumulative))) { - if ($cumulative) { - return 1 - exp(0 - pow($value / $beta, $alpha)); - } else { - return ($alpha / pow($beta, $alpha)) * pow($value, $alpha - 1) * exp(0 - pow($value / $beta, $alpha)); - } - } - } - return PHPExcel_Calculation_Functions::VALUE(); - } - - - /** - * ZTEST - * - * Returns the Weibull distribution. Use this distribution in reliability - * analysis, such as calculating a device's mean time to failure. - * - * @param float $dataSet - * @param float $m0 Alpha Parameter - * @param float $sigma Beta Parameter - * @param boolean $cumulative - * @return float - * - */ - public static function ZTEST($dataSet, $m0, $sigma = null) - { - $dataSet = PHPExcel_Calculation_Functions::flattenArrayIndexed($dataSet); - $m0 = PHPExcel_Calculation_Functions::flattenSingleValue($m0); - $sigma = PHPExcel_Calculation_Functions::flattenSingleValue($sigma); - - if (is_null($sigma)) { - $sigma = self::STDEV($dataSet); - } - $n = count($dataSet); - - return 1 - self::NORMSDIST((self::AVERAGE($dataSet) - $m0) / ($sigma / SQRT($n))); - } -} diff --git a/Utils/PHPExcel/Calculation/TextData.php b/Utils/PHPExcel/Calculation/TextData.php deleted file mode 100644 index 6461d06..0000000 --- a/Utils/PHPExcel/Calculation/TextData.php +++ /dev/null @@ -1,651 +0,0 @@ -=0 && ord($c{0}) <= 127) { - return ord($c{0}); - } elseif (ord($c{0}) >= 192 && ord($c{0}) <= 223) { - return (ord($c{0})-192)*64 + (ord($c{1})-128); - } elseif (ord($c{0}) >= 224 && ord($c{0}) <= 239) { - return (ord($c{0})-224)*4096 + (ord($c{1})-128)*64 + (ord($c{2})-128); - } elseif (ord($c{0}) >= 240 && ord($c{0}) <= 247) { - return (ord($c{0})-240)*262144 + (ord($c{1})-128)*4096 + (ord($c{2})-128)*64 + (ord($c{3})-128); - } elseif (ord($c{0}) >= 248 && ord($c{0}) <= 251) { - return (ord($c{0})-248)*16777216 + (ord($c{1})-128)*262144 + (ord($c{2})-128)*4096 + (ord($c{3})-128)*64 + (ord($c{4})-128); - } elseif (ord($c{0}) >= 252 && ord($c{0}) <= 253) { - return (ord($c{0})-252)*1073741824 + (ord($c{1})-128)*16777216 + (ord($c{2})-128)*262144 + (ord($c{3})-128)*4096 + (ord($c{4})-128)*64 + (ord($c{5})-128); - } elseif (ord($c{0}) >= 254 && ord($c{0}) <= 255) { - // error - return PHPExcel_Calculation_Functions::VALUE(); - } - return 0; - } - - /** - * CHARACTER - * - * @param string $character Value - * @return int - */ - public static function CHARACTER($character) - { - $character = PHPExcel_Calculation_Functions::flattenSingleValue($character); - - if ((!is_numeric($character)) || ($character < 0)) { - return PHPExcel_Calculation_Functions::VALUE(); - } - - if (function_exists('mb_convert_encoding')) { - return mb_convert_encoding('&#'.intval($character).';', 'UTF-8', 'HTML-ENTITIES'); - } else { - return chr(intval($character)); - } - } - - - /** - * TRIMNONPRINTABLE - * - * @param mixed $stringValue Value to check - * @return string - */ - public static function TRIMNONPRINTABLE($stringValue = '') - { - $stringValue = PHPExcel_Calculation_Functions::flattenSingleValue($stringValue); - - if (is_bool($stringValue)) { - return ($stringValue) ? PHPExcel_Calculation::getTRUE() : PHPExcel_Calculation::getFALSE(); - } - - if (self::$invalidChars == null) { - self::$invalidChars = range(chr(0), chr(31)); - } - - if (is_string($stringValue) || is_numeric($stringValue)) { - return str_replace(self::$invalidChars, '', trim($stringValue, "\x00..\x1F")); - } - return null; - } - - - /** - * TRIMSPACES - * - * @param mixed $stringValue Value to check - * @return string - */ - public static function TRIMSPACES($stringValue = '') - { - $stringValue = PHPExcel_Calculation_Functions::flattenSingleValue($stringValue); - if (is_bool($stringValue)) { - return ($stringValue) ? PHPExcel_Calculation::getTRUE() : PHPExcel_Calculation::getFALSE(); - } - - if (is_string($stringValue) || is_numeric($stringValue)) { - return trim(preg_replace('/ +/', ' ', trim($stringValue, ' ')), ' '); - } - return null; - } - - - /** - * ASCIICODE - * - * @param string $characters Value - * @return int - */ - public static function ASCIICODE($characters) - { - if (($characters === null) || ($characters === '')) { - return PHPExcel_Calculation_Functions::VALUE(); - } - $characters = PHPExcel_Calculation_Functions::flattenSingleValue($characters); - if (is_bool($characters)) { - if (PHPExcel_Calculation_Functions::getCompatibilityMode() == PHPExcel_Calculation_Functions::COMPATIBILITY_OPENOFFICE) { - $characters = (int) $characters; - } else { - $characters = ($characters) ? PHPExcel_Calculation::getTRUE() : PHPExcel_Calculation::getFALSE(); - } - } - - $character = $characters; - if ((function_exists('mb_strlen')) && (function_exists('mb_substr'))) { - if (mb_strlen($characters, 'UTF-8') > 1) { - $character = mb_substr($characters, 0, 1, 'UTF-8'); - } - return self::unicodeToOrd($character); - } else { - if (strlen($characters) > 0) { - $character = substr($characters, 0, 1); - } - return ord($character); - } - } - - - /** - * CONCATENATE - * - * @return string - */ - public static function CONCATENATE() - { - $returnValue = ''; - - // Loop through arguments - $aArgs = PHPExcel_Calculation_Functions::flattenArray(func_get_args()); - foreach ($aArgs as $arg) { - if (is_bool($arg)) { - if (PHPExcel_Calculation_Functions::getCompatibilityMode() == PHPExcel_Calculation_Functions::COMPATIBILITY_OPENOFFICE) { - $arg = (int) $arg; - } else { - $arg = ($arg) ? PHPExcel_Calculation::getTRUE() : PHPExcel_Calculation::getFALSE(); - } - } - $returnValue .= $arg; - } - - return $returnValue; - } - - - /** - * DOLLAR - * - * This function converts a number to text using currency format, with the decimals rounded to the specified place. - * The format used is $#,##0.00_);($#,##0.00).. - * - * @param float $value The value to format - * @param int $decimals The number of digits to display to the right of the decimal point. - * If decimals is negative, number is rounded to the left of the decimal point. - * If you omit decimals, it is assumed to be 2 - * @return string - */ - public static function DOLLAR($value = 0, $decimals = 2) - { - $value = PHPExcel_Calculation_Functions::flattenSingleValue($value); - $decimals = is_null($decimals) ? 0 : PHPExcel_Calculation_Functions::flattenSingleValue($decimals); - - // Validate parameters - if (!is_numeric($value) || !is_numeric($decimals)) { - return PHPExcel_Calculation_Functions::NaN(); - } - $decimals = floor($decimals); - - $mask = '$#,##0'; - if ($decimals > 0) { - $mask .= '.' . str_repeat('0', $decimals); - } else { - $round = pow(10, abs($decimals)); - if ($value < 0) { - $round = 0-$round; - } - $value = PHPExcel_Calculation_MathTrig::MROUND($value, $round); - } - - return PHPExcel_Style_NumberFormat::toFormattedString($value, $mask); - - } - - - /** - * SEARCHSENSITIVE - * - * @param string $needle The string to look for - * @param string $haystack The string in which to look - * @param int $offset Offset within $haystack - * @return string - */ - public static function SEARCHSENSITIVE($needle, $haystack, $offset = 1) - { - $needle = PHPExcel_Calculation_Functions::flattenSingleValue($needle); - $haystack = PHPExcel_Calculation_Functions::flattenSingleValue($haystack); - $offset = PHPExcel_Calculation_Functions::flattenSingleValue($offset); - - if (!is_bool($needle)) { - if (is_bool($haystack)) { - $haystack = ($haystack) ? PHPExcel_Calculation::getTRUE() : PHPExcel_Calculation::getFALSE(); - } - - if (($offset > 0) && (PHPExcel_Shared_String::CountCharacters($haystack) > $offset)) { - if (PHPExcel_Shared_String::CountCharacters($needle) == 0) { - return $offset; - } - if (function_exists('mb_strpos')) { - $pos = mb_strpos($haystack, $needle, --$offset, 'UTF-8'); - } else { - $pos = strpos($haystack, $needle, --$offset); - } - if ($pos !== false) { - return ++$pos; - } - } - } - return PHPExcel_Calculation_Functions::VALUE(); - } - - - /** - * SEARCHINSENSITIVE - * - * @param string $needle The string to look for - * @param string $haystack The string in which to look - * @param int $offset Offset within $haystack - * @return string - */ - public static function SEARCHINSENSITIVE($needle, $haystack, $offset = 1) - { - $needle = PHPExcel_Calculation_Functions::flattenSingleValue($needle); - $haystack = PHPExcel_Calculation_Functions::flattenSingleValue($haystack); - $offset = PHPExcel_Calculation_Functions::flattenSingleValue($offset); - - if (!is_bool($needle)) { - if (is_bool($haystack)) { - $haystack = ($haystack) ? PHPExcel_Calculation::getTRUE() : PHPExcel_Calculation::getFALSE(); - } - - if (($offset > 0) && (PHPExcel_Shared_String::CountCharacters($haystack) > $offset)) { - if (PHPExcel_Shared_String::CountCharacters($needle) == 0) { - return $offset; - } - if (function_exists('mb_stripos')) { - $pos = mb_stripos($haystack, $needle, --$offset, 'UTF-8'); - } else { - $pos = stripos($haystack, $needle, --$offset); - } - if ($pos !== false) { - return ++$pos; - } - } - } - return PHPExcel_Calculation_Functions::VALUE(); - } - - - /** - * FIXEDFORMAT - * - * @param mixed $value Value to check - * @param integer $decimals - * @param boolean $no_commas - * @return boolean - */ - public static function FIXEDFORMAT($value, $decimals = 2, $no_commas = false) - { - $value = PHPExcel_Calculation_Functions::flattenSingleValue($value); - $decimals = PHPExcel_Calculation_Functions::flattenSingleValue($decimals); - $no_commas = PHPExcel_Calculation_Functions::flattenSingleValue($no_commas); - - // Validate parameters - if (!is_numeric($value) || !is_numeric($decimals)) { - return PHPExcel_Calculation_Functions::NaN(); - } - $decimals = floor($decimals); - - $valueResult = round($value, $decimals); - if ($decimals < 0) { - $decimals = 0; - } - if (!$no_commas) { - $valueResult = number_format($valueResult, $decimals); - } - - return (string) $valueResult; - } - - - /** - * LEFT - * - * @param string $value Value - * @param int $chars Number of characters - * @return string - */ - public static function LEFT($value = '', $chars = 1) - { - $value = PHPExcel_Calculation_Functions::flattenSingleValue($value); - $chars = PHPExcel_Calculation_Functions::flattenSingleValue($chars); - - if ($chars < 0) { - return PHPExcel_Calculation_Functions::VALUE(); - } - - if (is_bool($value)) { - $value = ($value) ? PHPExcel_Calculation::getTRUE() : PHPExcel_Calculation::getFALSE(); - } - - if (function_exists('mb_substr')) { - return mb_substr($value, 0, $chars, 'UTF-8'); - } else { - return substr($value, 0, $chars); - } - } - - - /** - * MID - * - * @param string $value Value - * @param int $start Start character - * @param int $chars Number of characters - * @return string - */ - public static function MID($value = '', $start = 1, $chars = null) - { - $value = PHPExcel_Calculation_Functions::flattenSingleValue($value); - $start = PHPExcel_Calculation_Functions::flattenSingleValue($start); - $chars = PHPExcel_Calculation_Functions::flattenSingleValue($chars); - - if (($start < 1) || ($chars < 0)) { - return PHPExcel_Calculation_Functions::VALUE(); - } - - if (is_bool($value)) { - $value = ($value) ? PHPExcel_Calculation::getTRUE() : PHPExcel_Calculation::getFALSE(); - } - - if (function_exists('mb_substr')) { - return mb_substr($value, --$start, $chars, 'UTF-8'); - } else { - return substr($value, --$start, $chars); - } - } - - - /** - * RIGHT - * - * @param string $value Value - * @param int $chars Number of characters - * @return string - */ - public static function RIGHT($value = '', $chars = 1) - { - $value = PHPExcel_Calculation_Functions::flattenSingleValue($value); - $chars = PHPExcel_Calculation_Functions::flattenSingleValue($chars); - - if ($chars < 0) { - return PHPExcel_Calculation_Functions::VALUE(); - } - - if (is_bool($value)) { - $value = ($value) ? PHPExcel_Calculation::getTRUE() : PHPExcel_Calculation::getFALSE(); - } - - if ((function_exists('mb_substr')) && (function_exists('mb_strlen'))) { - return mb_substr($value, mb_strlen($value, 'UTF-8') - $chars, $chars, 'UTF-8'); - } else { - return substr($value, strlen($value) - $chars); - } - } - - - /** - * STRINGLENGTH - * - * @param string $value Value - * @return string - */ - public static function STRINGLENGTH($value = '') - { - $value = PHPExcel_Calculation_Functions::flattenSingleValue($value); - - if (is_bool($value)) { - $value = ($value) ? PHPExcel_Calculation::getTRUE() : PHPExcel_Calculation::getFALSE(); - } - - if (function_exists('mb_strlen')) { - return mb_strlen($value, 'UTF-8'); - } else { - return strlen($value); - } - } - - - /** - * LOWERCASE - * - * Converts a string value to upper case. - * - * @param string $mixedCaseString - * @return string - */ - public static function LOWERCASE($mixedCaseString) - { - $mixedCaseString = PHPExcel_Calculation_Functions::flattenSingleValue($mixedCaseString); - - if (is_bool($mixedCaseString)) { - $mixedCaseString = ($mixedCaseString) ? PHPExcel_Calculation::getTRUE() : PHPExcel_Calculation::getFALSE(); - } - - return PHPExcel_Shared_String::StrToLower($mixedCaseString); - } - - - /** - * UPPERCASE - * - * Converts a string value to upper case. - * - * @param string $mixedCaseString - * @return string - */ - public static function UPPERCASE($mixedCaseString) - { - $mixedCaseString = PHPExcel_Calculation_Functions::flattenSingleValue($mixedCaseString); - - if (is_bool($mixedCaseString)) { - $mixedCaseString = ($mixedCaseString) ? PHPExcel_Calculation::getTRUE() : PHPExcel_Calculation::getFALSE(); - } - - return PHPExcel_Shared_String::StrToUpper($mixedCaseString); - } - - - /** - * PROPERCASE - * - * Converts a string value to upper case. - * - * @param string $mixedCaseString - * @return string - */ - public static function PROPERCASE($mixedCaseString) - { - $mixedCaseString = PHPExcel_Calculation_Functions::flattenSingleValue($mixedCaseString); - - if (is_bool($mixedCaseString)) { - $mixedCaseString = ($mixedCaseString) ? PHPExcel_Calculation::getTRUE() : PHPExcel_Calculation::getFALSE(); - } - - return PHPExcel_Shared_String::StrToTitle($mixedCaseString); - } - - - /** - * REPLACE - * - * @param string $oldText String to modify - * @param int $start Start character - * @param int $chars Number of characters - * @param string $newText String to replace in defined position - * @return string - */ - public static function REPLACE($oldText = '', $start = 1, $chars = null, $newText) - { - $oldText = PHPExcel_Calculation_Functions::flattenSingleValue($oldText); - $start = PHPExcel_Calculation_Functions::flattenSingleValue($start); - $chars = PHPExcel_Calculation_Functions::flattenSingleValue($chars); - $newText = PHPExcel_Calculation_Functions::flattenSingleValue($newText); - - $left = self::LEFT($oldText, $start-1); - $right = self::RIGHT($oldText, self::STRINGLENGTH($oldText)-($start+$chars)+1); - - return $left.$newText.$right; - } - - - /** - * SUBSTITUTE - * - * @param string $text Value - * @param string $fromText From Value - * @param string $toText To Value - * @param integer $instance Instance Number - * @return string - */ - public static function SUBSTITUTE($text = '', $fromText = '', $toText = '', $instance = 0) - { - $text = PHPExcel_Calculation_Functions::flattenSingleValue($text); - $fromText = PHPExcel_Calculation_Functions::flattenSingleValue($fromText); - $toText = PHPExcel_Calculation_Functions::flattenSingleValue($toText); - $instance = floor(PHPExcel_Calculation_Functions::flattenSingleValue($instance)); - - if ($instance == 0) { - if (function_exists('mb_str_replace')) { - return mb_str_replace($fromText, $toText, $text); - } else { - return str_replace($fromText, $toText, $text); - } - } else { - $pos = -1; - while ($instance > 0) { - if (function_exists('mb_strpos')) { - $pos = mb_strpos($text, $fromText, $pos+1, 'UTF-8'); - } else { - $pos = strpos($text, $fromText, $pos+1); - } - if ($pos === false) { - break; - } - --$instance; - } - if ($pos !== false) { - if (function_exists('mb_strlen')) { - return self::REPLACE($text, ++$pos, mb_strlen($fromText, 'UTF-8'), $toText); - } else { - return self::REPLACE($text, ++$pos, strlen($fromText), $toText); - } - } - } - - return $text; - } - - - /** - * RETURNSTRING - * - * @param mixed $testValue Value to check - * @return boolean - */ - public static function RETURNSTRING($testValue = '') - { - $testValue = PHPExcel_Calculation_Functions::flattenSingleValue($testValue); - - if (is_string($testValue)) { - return $testValue; - } - return null; - } - - - /** - * TEXTFORMAT - * - * @param mixed $value Value to check - * @param string $format Format mask to use - * @return boolean - */ - public static function TEXTFORMAT($value, $format) - { - $value = PHPExcel_Calculation_Functions::flattenSingleValue($value); - $format = PHPExcel_Calculation_Functions::flattenSingleValue($format); - - if ((is_string($value)) && (!is_numeric($value)) && PHPExcel_Shared_Date::isDateTimeFormatCode($format)) { - $value = PHPExcel_Calculation_DateTime::DATEVALUE($value); - } - - return (string) PHPExcel_Style_NumberFormat::toFormattedString($value, $format); - } - - /** - * VALUE - * - * @param mixed $value Value to check - * @return boolean - */ - public static function VALUE($value = '') - { - $value = PHPExcel_Calculation_Functions::flattenSingleValue($value); - - if (!is_numeric($value)) { - $numberValue = str_replace( - PHPExcel_Shared_String::getThousandsSeparator(), - '', - trim($value, " \t\n\r\0\x0B" . PHPExcel_Shared_String::getCurrencyCode()) - ); - if (is_numeric($numberValue)) { - return (float) $numberValue; - } - - $dateSetting = PHPExcel_Calculation_Functions::getReturnDateType(); - PHPExcel_Calculation_Functions::setReturnDateType(PHPExcel_Calculation_Functions::RETURNDATE_EXCEL); - - if (strpos($value, ':') !== false) { - $timeValue = PHPExcel_Calculation_DateTime::TIMEVALUE($value); - if ($timeValue !== PHPExcel_Calculation_Functions::VALUE()) { - PHPExcel_Calculation_Functions::setReturnDateType($dateSetting); - return $timeValue; - } - } - $dateValue = PHPExcel_Calculation_DateTime::DATEVALUE($value); - if ($dateValue !== PHPExcel_Calculation_Functions::VALUE()) { - PHPExcel_Calculation_Functions::setReturnDateType($dateSetting); - return $dateValue; - } - PHPExcel_Calculation_Functions::setReturnDateType($dateSetting); - - return PHPExcel_Calculation_Functions::VALUE(); - } - return (float) $value; - } -} diff --git a/Utils/PHPExcel/Calculation/Token/Stack.php b/Utils/PHPExcel/Calculation/Token/Stack.php deleted file mode 100644 index 02ed5aa..0000000 --- a/Utils/PHPExcel/Calculation/Token/Stack.php +++ /dev/null @@ -1,111 +0,0 @@ -count; - } - - /** - * Push a new entry onto the stack - * - * @param mixed $type - * @param mixed $value - * @param mixed $reference - */ - public function push($type, $value, $reference = null) - { - $this->stack[$this->count++] = array( - 'type' => $type, - 'value' => $value, - 'reference' => $reference - ); - if ($type == 'Function') { - $localeFunction = PHPExcel_Calculation::localeFunc($value); - if ($localeFunction != $value) { - $this->stack[($this->count - 1)]['localeValue'] = $localeFunction; - } - } - } - - /** - * Pop the last entry from the stack - * - * @return mixed - */ - public function pop() - { - if ($this->count > 0) { - return $this->stack[--$this->count]; - } - return null; - } - - /** - * Return an entry from the stack without removing it - * - * @param integer $n number indicating how far back in the stack we want to look - * @return mixed - */ - public function last($n = 1) - { - if ($this->count - $n < 0) { - return null; - } - return $this->stack[$this->count - $n]; - } - - /** - * Clear the stack - */ - public function clear() - { - $this->stack = array(); - $this->count = 0; - } -} diff --git a/Utils/PHPExcel/Calculation/functionlist.txt b/Utils/PHPExcel/Calculation/functionlist.txt deleted file mode 100644 index 67dbd49..0000000 --- a/Utils/PHPExcel/Calculation/functionlist.txt +++ /dev/null @@ -1,351 +0,0 @@ -ABS -ACCRINT -ACCRINTM -ACOS -ACOSH -ADDRESS -AMORDEGRC -AMORLINC -AND -AREAS -ASC -ASIN -ASINH -ATAN -ATAN2 -ATANH -AVEDEV -AVERAGE -AVERAGEA -AVERAGEIF -AVERAGEIFS -BAHTTEXT -BESSELI -BESSELJ -BESSELK -BESSELY -BETADIST -BETAINV -BIN2DEC -BIN2HEX -BIN2OCT -BINOMDIST -CEILING -CELL -CHAR -CHIDIST -CHIINV -CHITEST -CHOOSE -CLEAN -CODE -COLUMN -COLUMNS -COMBIN -COMPLEX -CONCATENATE -CONFIDENCE -CONVERT -CORREL -COS -COSH -COUNT -COUNTA -COUNTBLANK -COUNTIF -COUNTIFS -COUPDAYBS -COUPDAYBS -COUPDAYSNC -COUPNCD -COUPNUM -COUPPCD -COVAR -CRITBINOM -CUBEKPIMEMBER -CUBEMEMBER -CUBEMEMBERPROPERTY -CUBERANKEDMEMBER -CUBESET -CUBESETCOUNT -CUBEVALUE -CUMIPMT -CUMPRINC -DATE -DATEDIF -DATEVALUE -DAVERAGE -DAY -DAYS360 -DB -DCOUNT -DCOUNTA -DDB -DEC2BIN -DEC2HEX -DEC2OCT -DEGREES -DELTA -DEVSQ -DGET -DISC -DMAX -DMIN -DOLLAR -DOLLARDE -DOLLARFR -DPRODUCT -DSTDEV -DSTDEVP -DSUM -DURATION -DVAR -DVARP -EDATE -EFFECT -EOMONTH -ERF -ERFC -ERROR.TYPE -EVEN -EXACT -EXP -EXPONDIST -FACT -FACTDOUBLE -FALSE -FDIST -FIND -FINDB -FINV -FISHER -FISHERINV -FIXED -FLOOR -FORECAST -FREQUENCY -FTEST -FV -FVSCHEDULE -GAMAMDIST -GAMMAINV -GAMMALN -GCD -GEOMEAN -GESTEP -GETPIVOTDATA -GROWTH -HARMEAN -HEX2BIN -HEX2OCT -HLOOKUP -HOUR -HYPERLINK -HYPGEOMDIST -IF -IFERROR -IMABS -IMAGINARY -IMARGUMENT -IMCONJUGATE -IMCOS -IMEXP -IMLN -IMLOG10 -IMLOG2 -IMPOWER -IMPRODUCT -IMREAL -IMSIN -IMSQRT -IMSUB -IMSUM -INDEX -INDIRECT -INFO -INT -INTERCEPT -INTRATE -IPMT -IRR -ISBLANK -ISERR -ISERROR -ISEVEN -ISLOGICAL -ISNA -ISNONTEXT -ISNUMBER -ISODD -ISPMT -ISREF -ISTEXT -JIS -KURT -LARGE -LCM -LEFT -LEFTB -LEN -LENB -LINEST -LN -LOG -LOG10 -LOGEST -LOGINV -LOGNORMDIST -LOOKUP -LOWER -MATCH -MAX -MAXA -MDETERM -MDURATION -MEDIAN -MID -MIDB -MIN -MINA -MINUTE -MINVERSE -MIRR -MMULT -MOD -MODE -MONTH -MROUND -MULTINOMIAL -N -NA -NEGBINOMDIST -NETWORKDAYS -NOMINAL -NORMDIST -NORMINV -NORMSDIST -NORMSINV -NOT -NOW -NPER -NPV -OCT2BIN -OCT2DEC -OCT2HEX -ODD -ODDFPRICE -ODDFYIELD -ODDLPRICE -ODDLYIELD -OFFSET -OR -PEARSON -PERCENTILE -PERCENTRANK -PERMUT -PHONETIC -PI -PMT -POISSON -POWER -PPMT -PRICE -PRICEDISC -PRICEMAT -PROB -PRODUCT -PROPER -PV -QUARTILE -QUOTIENT -RADIANS -RAND -RANDBETWEEN -RANK -RATE -RECEIVED -REPLACE -REPLACEB -REPT -RIGHT -RIGHTB -ROMAN -ROUND -ROUNDDOWN -ROUNDUP -ROW -ROWS -RSQ -RTD -SEARCH -SEARCHB -SECOND -SERIESSUM -SIGN -SIN -SINH -SKEW -SLN -SLOPE -SMALL -SQRT -SQRTPI -STANDARDIZE -STDEV -STDEVA -STDEVP -STDEVPA -STEYX -SUBSTITUTE -SUBTOTAL -SUM -SUMIF -SUMIFS -SUMPRODUCT -SUMSQ -SUMX2MY2 -SUMX2PY2 -SUMXMY2 -SYD -T -TAN -TANH -TBILLEQ -TBILLPRICE -TBILLYIELD -TDIST -TEXT -TIME -TIMEVALUE -TINV -TODAY -TRANSPOSE -TREND -TRIM -TRIMMEAN -TRUE -TRUNC -TTEST -TYPE -UPPER -USDOLLAR -VALUE -VAR -VARA -VARP -VARPA -VDB -VERSION -VLOOKUP -WEEKDAY -WEEKNUM -WEIBULL -WORKDAY -XIRR -XNPV -YEAR -YEARFRAC -YIELD -YIELDDISC -YIELDMAT -ZTEST diff --git a/Utils/PHPExcel/Cell.php b/Utils/PHPExcel/Cell.php deleted file mode 100644 index c99a3c8..0000000 --- a/Utils/PHPExcel/Cell.php +++ /dev/null @@ -1,1032 +0,0 @@ -parent->updateCacheData($this); - - return $this; - } - - public function detach() - { - $this->parent = null; - } - - public function attach(PHPExcel_CachedObjectStorage_CacheBase $parent) - { - $this->parent = $parent; - } - - - /** - * Create a new Cell - * - * @param mixed $pValue - * @param string $pDataType - * @param PHPExcel_Worksheet $pSheet - * @throws PHPExcel_Exception - */ - public function __construct($pValue = null, $pDataType = null, PHPExcel_Worksheet $pSheet = null) - { - // Initialise cell value - $this->value = $pValue; - - // Set worksheet cache - $this->parent = $pSheet->getCellCacheController(); - - // Set datatype? - if ($pDataType !== null) { - if ($pDataType == PHPExcel_Cell_DataType::TYPE_STRING2) { - $pDataType = PHPExcel_Cell_DataType::TYPE_STRING; - } - $this->dataType = $pDataType; - } elseif (!self::getValueBinder()->bindValue($this, $pValue)) { - throw new PHPExcel_Exception("Value could not be bound to cell."); - } - } - - /** - * Get cell coordinate column - * - * @return string - */ - public function getColumn() - { - return $this->parent->getCurrentColumn(); - } - - /** - * Get cell coordinate row - * - * @return int - */ - public function getRow() - { - return $this->parent->getCurrentRow(); - } - - /** - * Get cell coordinate - * - * @return string - */ - public function getCoordinate() - { - return $this->parent->getCurrentAddress(); - } - - /** - * Get cell value - * - * @return mixed - */ - public function getValue() - { - return $this->value; - } - - /** - * Get cell value with formatting - * - * @return string - */ - public function getFormattedValue() - { - return (string) PHPExcel_Style_NumberFormat::toFormattedString( - $this->getCalculatedValue(), - $this->getStyle() - ->getNumberFormat()->getFormatCode() - ); - } - - /** - * Set cell value - * - * Sets the value for a cell, automatically determining the datatype using the value binder - * - * @param mixed $pValue Value - * @return PHPExcel_Cell - * @throws PHPExcel_Exception - */ - public function setValue($pValue = null) - { - if (!self::getValueBinder()->bindValue($this, $pValue)) { - throw new PHPExcel_Exception("Value could not be bound to cell."); - } - return $this; - } - - /** - * Set the value for a cell, with the explicit data type passed to the method (bypassing any use of the value binder) - * - * @param mixed $pValue Value - * @param string $pDataType Explicit data type - * @return PHPExcel_Cell - * @throws PHPExcel_Exception - */ - public function setValueExplicit($pValue = null, $pDataType = PHPExcel_Cell_DataType::TYPE_STRING) - { - // set the value according to data type - switch ($pDataType) { - case PHPExcel_Cell_DataType::TYPE_NULL: - $this->value = $pValue; - break; - case PHPExcel_Cell_DataType::TYPE_STRING2: - $pDataType = PHPExcel_Cell_DataType::TYPE_STRING; - // no break - case PHPExcel_Cell_DataType::TYPE_STRING: - // Synonym for string - case PHPExcel_Cell_DataType::TYPE_INLINE: - // Rich text - $this->value = PHPExcel_Cell_DataType::checkString($pValue); - break; - case PHPExcel_Cell_DataType::TYPE_NUMERIC: - $this->value = (float) $pValue; - break; - case PHPExcel_Cell_DataType::TYPE_FORMULA: - $this->value = (string) $pValue; - break; - case PHPExcel_Cell_DataType::TYPE_BOOL: - $this->value = (bool) $pValue; - break; - case PHPExcel_Cell_DataType::TYPE_ERROR: - $this->value = PHPExcel_Cell_DataType::checkErrorCode($pValue); - break; - default: - throw new PHPExcel_Exception('Invalid datatype: ' . $pDataType); - break; - } - - // set the datatype - $this->dataType = $pDataType; - - return $this->notifyCacheController(); - } - - /** - * Get calculated cell value - * - * @deprecated Since version 1.7.8 for planned changes to cell for array formula handling - * - * @param boolean $resetLog Whether the calculation engine logger should be reset or not - * @return mixed - * @throws PHPExcel_Exception - */ - public function getCalculatedValue($resetLog = true) - { -//echo 'Cell '.$this->getCoordinate().' value is a '.$this->dataType.' with a value of '.$this->getValue().PHP_EOL; - if ($this->dataType == PHPExcel_Cell_DataType::TYPE_FORMULA) { - try { -//echo 'Cell value for '.$this->getCoordinate().' is a formula: Calculating value'.PHP_EOL; - $result = PHPExcel_Calculation::getInstance( - $this->getWorksheet()->getParent() - )->calculateCellValue($this, $resetLog); -//echo $this->getCoordinate().' calculation result is '.$result.PHP_EOL; - // We don't yet handle array returns - if (is_array($result)) { - while (is_array($result)) { - $result = array_pop($result); - } - } - } catch (PHPExcel_Exception $ex) { - if (($ex->getMessage() === 'Unable to access External Workbook') && ($this->calculatedValue !== null)) { -//echo 'Returning fallback value of '.$this->calculatedValue.' for cell '.$this->getCoordinate().PHP_EOL; - return $this->calculatedValue; // Fallback for calculations referencing external files. - } -//echo 'Calculation Exception: '.$ex->getMessage().PHP_EOL; - $result = '#N/A'; - throw new PHPExcel_Calculation_Exception( - $this->getWorksheet()->getTitle().'!'.$this->getCoordinate().' -> '.$ex->getMessage() - ); - } - - if ($result === '#Not Yet Implemented') { -//echo 'Returning fallback value of '.$this->calculatedValue.' for cell '.$this->getCoordinate().PHP_EOL; - return $this->calculatedValue; // Fallback if calculation engine does not support the formula. - } -//echo 'Returning calculated value of '.$result.' for cell '.$this->getCoordinate().PHP_EOL; - return $result; - } elseif ($this->value instanceof PHPExcel_RichText) { -// echo 'Cell value for '.$this->getCoordinate().' is rich text: Returning data value of '.$this->value.'
'; - return $this->value->getPlainText(); - } -// echo 'Cell value for '.$this->getCoordinate().' is not a formula: Returning data value of '.$this->value.'
'; - return $this->value; - } - - /** - * Set old calculated value (cached) - * - * @param mixed $pValue Value - * @return PHPExcel_Cell - */ - public function setCalculatedValue($pValue = null) - { - if ($pValue !== null) { - $this->calculatedValue = (is_numeric($pValue)) ? (float) $pValue : $pValue; - } - - return $this->notifyCacheController(); - } - - /** - * Get old calculated value (cached) - * This returns the value last calculated by MS Excel or whichever spreadsheet program was used to - * create the original spreadsheet file. - * Note that this value is not guaranteed to refelect the actual calculated value because it is - * possible that auto-calculation was disabled in the original spreadsheet, and underlying data - * values used by the formula have changed since it was last calculated. - * - * @return mixed - */ - public function getOldCalculatedValue() - { - return $this->calculatedValue; - } - - /** - * Get cell data type - * - * @return string - */ - public function getDataType() - { - return $this->dataType; - } - - /** - * Set cell data type - * - * @param string $pDataType - * @return PHPExcel_Cell - */ - public function setDataType($pDataType = PHPExcel_Cell_DataType::TYPE_STRING) - { - if ($pDataType == PHPExcel_Cell_DataType::TYPE_STRING2) { - $pDataType = PHPExcel_Cell_DataType::TYPE_STRING; - } - $this->dataType = $pDataType; - - return $this->notifyCacheController(); - } - - /** - * Identify if the cell contains a formula - * - * @return boolean - */ - public function isFormula() - { - return $this->dataType == PHPExcel_Cell_DataType::TYPE_FORMULA; - } - - /** - * Does this cell contain Data validation rules? - * - * @return boolean - * @throws PHPExcel_Exception - */ - public function hasDataValidation() - { - if (!isset($this->parent)) { - throw new PHPExcel_Exception('Cannot check for data validation when cell is not bound to a worksheet'); - } - - return $this->getWorksheet()->dataValidationExists($this->getCoordinate()); - } - - /** - * Get Data validation rules - * - * @return PHPExcel_Cell_DataValidation - * @throws PHPExcel_Exception - */ - public function getDataValidation() - { - if (!isset($this->parent)) { - throw new PHPExcel_Exception('Cannot get data validation for cell that is not bound to a worksheet'); - } - - return $this->getWorksheet()->getDataValidation($this->getCoordinate()); - } - - /** - * Set Data validation rules - * - * @param PHPExcel_Cell_DataValidation $pDataValidation - * @return PHPExcel_Cell - * @throws PHPExcel_Exception - */ - public function setDataValidation(PHPExcel_Cell_DataValidation $pDataValidation = null) - { - if (!isset($this->parent)) { - throw new PHPExcel_Exception('Cannot set data validation for cell that is not bound to a worksheet'); - } - - $this->getWorksheet()->setDataValidation($this->getCoordinate(), $pDataValidation); - - return $this->notifyCacheController(); - } - - /** - * Does this cell contain a Hyperlink? - * - * @return boolean - * @throws PHPExcel_Exception - */ - public function hasHyperlink() - { - if (!isset($this->parent)) { - throw new PHPExcel_Exception('Cannot check for hyperlink when cell is not bound to a worksheet'); - } - - return $this->getWorksheet()->hyperlinkExists($this->getCoordinate()); - } - - /** - * Get Hyperlink - * - * @return PHPExcel_Cell_Hyperlink - * @throws PHPExcel_Exception - */ - public function getHyperlink() - { - if (!isset($this->parent)) { - throw new PHPExcel_Exception('Cannot get hyperlink for cell that is not bound to a worksheet'); - } - - return $this->getWorksheet()->getHyperlink($this->getCoordinate()); - } - - /** - * Set Hyperlink - * - * @param PHPExcel_Cell_Hyperlink $pHyperlink - * @return PHPExcel_Cell - * @throws PHPExcel_Exception - */ - public function setHyperlink(PHPExcel_Cell_Hyperlink $pHyperlink = null) - { - if (!isset($this->parent)) { - throw new PHPExcel_Exception('Cannot set hyperlink for cell that is not bound to a worksheet'); - } - - $this->getWorksheet()->setHyperlink($this->getCoordinate(), $pHyperlink); - - return $this->notifyCacheController(); - } - - /** - * Get parent worksheet - * - * @return PHPExcel_CachedObjectStorage_CacheBase - */ - public function getParent() - { - return $this->parent; - } - - /** - * Get parent worksheet - * - * @return PHPExcel_Worksheet - */ - public function getWorksheet() - { - return $this->parent->getParent(); - } - - /** - * Is this cell in a merge range - * - * @return boolean - */ - public function isInMergeRange() - { - return (boolean) $this->getMergeRange(); - } - - /** - * Is this cell the master (top left cell) in a merge range (that holds the actual data value) - * - * @return boolean - */ - public function isMergeRangeValueCell() - { - if ($mergeRange = $this->getMergeRange()) { - $mergeRange = PHPExcel_Cell::splitRange($mergeRange); - list($startCell) = $mergeRange[0]; - if ($this->getCoordinate() === $startCell) { - return true; - } - } - return false; - } - - /** - * If this cell is in a merge range, then return the range - * - * @return string - */ - public function getMergeRange() - { - foreach ($this->getWorksheet()->getMergeCells() as $mergeRange) { - if ($this->isInRange($mergeRange)) { - return $mergeRange; - } - } - return false; - } - - /** - * Get cell style - * - * @return PHPExcel_Style - */ - public function getStyle() - { - return $this->getWorksheet()->getStyle($this->getCoordinate()); - } - - /** - * Re-bind parent - * - * @param PHPExcel_Worksheet $parent - * @return PHPExcel_Cell - */ - public function rebindParent(PHPExcel_Worksheet $parent) - { - $this->parent = $parent->getCellCacheController(); - - return $this->notifyCacheController(); - } - - /** - * Is cell in a specific range? - * - * @param string $pRange Cell range (e.g. A1:A1) - * @return boolean - */ - public function isInRange($pRange = 'A1:A1') - { - list($rangeStart, $rangeEnd) = self::rangeBoundaries($pRange); - - // Translate properties - $myColumn = self::columnIndexFromString($this->getColumn()); - $myRow = $this->getRow(); - - // Verify if cell is in range - return (($rangeStart[0] <= $myColumn) && ($rangeEnd[0] >= $myColumn) && - ($rangeStart[1] <= $myRow) && ($rangeEnd[1] >= $myRow) - ); - } - - /** - * Coordinate from string - * - * @param string $pCoordinateString - * @return array Array containing column and row (indexes 0 and 1) - * @throws PHPExcel_Exception - */ - public static function coordinateFromString($pCoordinateString = 'A1') - { - if (preg_match("/^([$]?[A-Z]{1,3})([$]?\d{1,7})$/", $pCoordinateString, $matches)) { - return array($matches[1],$matches[2]); - } elseif ((strpos($pCoordinateString, ':') !== false) || (strpos($pCoordinateString, ',') !== false)) { - throw new PHPExcel_Exception('Cell coordinate string can not be a range of cells'); - } elseif ($pCoordinateString == '') { - throw new PHPExcel_Exception('Cell coordinate can not be zero-length string'); - } - - throw new PHPExcel_Exception('Invalid cell coordinate '.$pCoordinateString); - } - - /** - * Make string row, column or cell coordinate absolute - * - * @param string $pCoordinateString e.g. 'A' or '1' or 'A1' - * Note that this value can be a row or column reference as well as a cell reference - * @return string Absolute coordinate e.g. '$A' or '$1' or '$A$1' - * @throws PHPExcel_Exception - */ - public static function absoluteReference($pCoordinateString = 'A1') - { - if (strpos($pCoordinateString, ':') === false && strpos($pCoordinateString, ',') === false) { - // Split out any worksheet name from the reference - $worksheet = ''; - $cellAddress = explode('!', $pCoordinateString); - if (count($cellAddress) > 1) { - list($worksheet, $pCoordinateString) = $cellAddress; - } - if ($worksheet > '') { - $worksheet .= '!'; - } - - // Create absolute coordinate - if (ctype_digit($pCoordinateString)) { - return $worksheet . '$' . $pCoordinateString; - } elseif (ctype_alpha($pCoordinateString)) { - return $worksheet . '$' . strtoupper($pCoordinateString); - } - return $worksheet . self::absoluteCoordinate($pCoordinateString); - } - - throw new PHPExcel_Exception('Cell coordinate string can not be a range of cells'); - } - - /** - * Make string coordinate absolute - * - * @param string $pCoordinateString e.g. 'A1' - * @return string Absolute coordinate e.g. '$A$1' - * @throws PHPExcel_Exception - */ - public static function absoluteCoordinate($pCoordinateString = 'A1') - { - if (strpos($pCoordinateString, ':') === false && strpos($pCoordinateString, ',') === false) { - // Split out any worksheet name from the coordinate - $worksheet = ''; - $cellAddress = explode('!', $pCoordinateString); - if (count($cellAddress) > 1) { - list($worksheet, $pCoordinateString) = $cellAddress; - } - if ($worksheet > '') { - $worksheet .= '!'; - } - - // Create absolute coordinate - list($column, $row) = self::coordinateFromString($pCoordinateString); - $column = ltrim($column, '$'); - $row = ltrim($row, '$'); - return $worksheet . '$' . $column . '$' . $row; - } - - throw new PHPExcel_Exception('Cell coordinate string can not be a range of cells'); - } - - /** - * Split range into coordinate strings - * - * @param string $pRange e.g. 'B4:D9' or 'B4:D9,H2:O11' or 'B4' - * @return array Array containg one or more arrays containing one or two coordinate strings - * e.g. array('B4','D9') or array(array('B4','D9'),array('H2','O11')) - * or array('B4') - */ - public static function splitRange($pRange = 'A1:A1') - { - // Ensure $pRange is a valid range - if (empty($pRange)) { - $pRange = self::DEFAULT_RANGE; - } - - $exploded = explode(',', $pRange); - $counter = count($exploded); - for ($i = 0; $i < $counter; ++$i) { - $exploded[$i] = explode(':', $exploded[$i]); - } - return $exploded; - } - - /** - * Build range from coordinate strings - * - * @param array $pRange Array containg one or more arrays containing one or two coordinate strings - * @return string String representation of $pRange - * @throws PHPExcel_Exception - */ - public static function buildRange($pRange) - { - // Verify range - if (!is_array($pRange) || empty($pRange) || !is_array($pRange[0])) { - throw new PHPExcel_Exception('Range does not contain any information'); - } - - // Build range - $imploded = array(); - $counter = count($pRange); - for ($i = 0; $i < $counter; ++$i) { - $pRange[$i] = implode(':', $pRange[$i]); - } - $imploded = implode(',', $pRange); - - return $imploded; - } - - /** - * Calculate range boundaries - * - * @param string $pRange Cell range (e.g. A1:A1) - * @return array Range coordinates array(Start Cell, End Cell) - * where Start Cell and End Cell are arrays (Column Number, Row Number) - */ - public static function rangeBoundaries($pRange = 'A1:A1') - { - // Ensure $pRange is a valid range - if (empty($pRange)) { - $pRange = self::DEFAULT_RANGE; - } - - // Uppercase coordinate - $pRange = strtoupper($pRange); - - // Extract range - if (strpos($pRange, ':') === false) { - $rangeA = $rangeB = $pRange; - } else { - list($rangeA, $rangeB) = explode(':', $pRange); - } - - // Calculate range outer borders - $rangeStart = self::coordinateFromString($rangeA); - $rangeEnd = self::coordinateFromString($rangeB); - - // Translate column into index - $rangeStart[0] = self::columnIndexFromString($rangeStart[0]); - $rangeEnd[0] = self::columnIndexFromString($rangeEnd[0]); - - return array($rangeStart, $rangeEnd); - } - - /** - * Calculate range dimension - * - * @param string $pRange Cell range (e.g. A1:A1) - * @return array Range dimension (width, height) - */ - public static function rangeDimension($pRange = 'A1:A1') - { - // Calculate range outer borders - list($rangeStart, $rangeEnd) = self::rangeBoundaries($pRange); - - return array( ($rangeEnd[0] - $rangeStart[0] + 1), ($rangeEnd[1] - $rangeStart[1] + 1) ); - } - - /** - * Calculate range boundaries - * - * @param string $pRange Cell range (e.g. A1:A1) - * @return array Range coordinates array(Start Cell, End Cell) - * where Start Cell and End Cell are arrays (Column ID, Row Number) - */ - public static function getRangeBoundaries($pRange = 'A1:A1') - { - // Ensure $pRange is a valid range - if (empty($pRange)) { - $pRange = self::DEFAULT_RANGE; - } - - // Uppercase coordinate - $pRange = strtoupper($pRange); - - // Extract range - if (strpos($pRange, ':') === false) { - $rangeA = $rangeB = $pRange; - } else { - list($rangeA, $rangeB) = explode(':', $pRange); - } - - return array( self::coordinateFromString($rangeA), self::coordinateFromString($rangeB)); - } - - /** - * Column index from string - * - * @param string $pString - * @return int Column index (base 1 !!!) - */ - public static function columnIndexFromString($pString = 'A') - { - // Using a lookup cache adds a slight memory overhead, but boosts speed - // caching using a static within the method is faster than a class static, - // though it's additional memory overhead - static $_indexCache = array(); - - if (isset($_indexCache[$pString])) { - return $_indexCache[$pString]; - } - // It's surprising how costly the strtoupper() and ord() calls actually are, so we use a lookup array rather than use ord() - // and make it case insensitive to get rid of the strtoupper() as well. Because it's a static, there's no significant - // memory overhead either - static $_columnLookup = array( - 'A' => 1, 'B' => 2, 'C' => 3, 'D' => 4, 'E' => 5, 'F' => 6, 'G' => 7, 'H' => 8, 'I' => 9, 'J' => 10, 'K' => 11, 'L' => 12, 'M' => 13, - 'N' => 14, 'O' => 15, 'P' => 16, 'Q' => 17, 'R' => 18, 'S' => 19, 'T' => 20, 'U' => 21, 'V' => 22, 'W' => 23, 'X' => 24, 'Y' => 25, 'Z' => 26, - 'a' => 1, 'b' => 2, 'c' => 3, 'd' => 4, 'e' => 5, 'f' => 6, 'g' => 7, 'h' => 8, 'i' => 9, 'j' => 10, 'k' => 11, 'l' => 12, 'm' => 13, - 'n' => 14, 'o' => 15, 'p' => 16, 'q' => 17, 'r' => 18, 's' => 19, 't' => 20, 'u' => 21, 'v' => 22, 'w' => 23, 'x' => 24, 'y' => 25, 'z' => 26 - ); - - // We also use the language construct isset() rather than the more costly strlen() function to match the length of $pString - // for improved performance - if (isset($pString{0})) { - if (!isset($pString{1})) { - $_indexCache[$pString] = $_columnLookup[$pString]; - return $_indexCache[$pString]; - } elseif (!isset($pString{2})) { - $_indexCache[$pString] = $_columnLookup[$pString{0}] * 26 + $_columnLookup[$pString{1}]; - return $_indexCache[$pString]; - } elseif (!isset($pString{3})) { - $_indexCache[$pString] = $_columnLookup[$pString{0}] * 676 + $_columnLookup[$pString{1}] * 26 + $_columnLookup[$pString{2}]; - return $_indexCache[$pString]; - } - } - throw new PHPExcel_Exception("Column string index can not be " . ((isset($pString{0})) ? "longer than 3 characters" : "empty")); - } - - /** - * String from columnindex - * - * @param int $pColumnIndex Column index (base 0 !!!) - * @return string - */ - public static function stringFromColumnIndex($pColumnIndex = 0) - { - // Using a lookup cache adds a slight memory overhead, but boosts speed - // caching using a static within the method is faster than a class static, - // though it's additional memory overhead - static $_indexCache = array(); - - if (!isset($_indexCache[$pColumnIndex])) { - // Determine column string - if ($pColumnIndex < 26) { - $_indexCache[$pColumnIndex] = chr(65 + $pColumnIndex); - } elseif ($pColumnIndex < 702) { - $_indexCache[$pColumnIndex] = chr(64 + ($pColumnIndex / 26)) . - chr(65 + $pColumnIndex % 26); - } else { - $_indexCache[$pColumnIndex] = chr(64 + (($pColumnIndex - 26) / 676)) . - chr(65 + ((($pColumnIndex - 26) % 676) / 26)) . - chr(65 + $pColumnIndex % 26); - } - } - return $_indexCache[$pColumnIndex]; - } - - /** - * Extract all cell references in range - * - * @param string $pRange Range (e.g. A1 or A1:C10 or A1:E10 A20:E25) - * @return array Array containing single cell references - */ - public static function extractAllCellReferencesInRange($pRange = 'A1') - { - // Returnvalue - $returnValue = array(); - - // Explode spaces - $cellBlocks = explode(' ', str_replace('$', '', strtoupper($pRange))); - foreach ($cellBlocks as $cellBlock) { - // Single cell? - if (strpos($cellBlock, ':') === false && strpos($cellBlock, ',') === false) { - $returnValue[] = $cellBlock; - continue; - } - - // Range... - $ranges = self::splitRange($cellBlock); - foreach ($ranges as $range) { - // Single cell? - if (!isset($range[1])) { - $returnValue[] = $range[0]; - continue; - } - - // Range... - list($rangeStart, $rangeEnd) = $range; - sscanf($rangeStart, '%[A-Z]%d', $startCol, $startRow); - sscanf($rangeEnd, '%[A-Z]%d', $endCol, $endRow); - ++$endCol; - - // Current data - $currentCol = $startCol; - $currentRow = $startRow; - - // Loop cells - while ($currentCol != $endCol) { - while ($currentRow <= $endRow) { - $returnValue[] = $currentCol.$currentRow; - ++$currentRow; - } - ++$currentCol; - $currentRow = $startRow; - } - } - } - - // Sort the result by column and row - $sortKeys = array(); - foreach (array_unique($returnValue) as $coord) { - sscanf($coord, '%[A-Z]%d', $column, $row); - $sortKeys[sprintf('%3s%09d', $column, $row)] = $coord; - } - ksort($sortKeys); - - // Return value - return array_values($sortKeys); - } - - /** - * Compare 2 cells - * - * @param PHPExcel_Cell $a Cell a - * @param PHPExcel_Cell $b Cell b - * @return int Result of comparison (always -1 or 1, never zero!) - */ - public static function compareCells(PHPExcel_Cell $a, PHPExcel_Cell $b) - { - if ($a->getRow() < $b->getRow()) { - return -1; - } elseif ($a->getRow() > $b->getRow()) { - return 1; - } elseif (self::columnIndexFromString($a->getColumn()) < self::columnIndexFromString($b->getColumn())) { - return -1; - } else { - return 1; - } - } - - /** - * Get value binder to use - * - * @return PHPExcel_Cell_IValueBinder - */ - public static function getValueBinder() - { - if (self::$valueBinder === null) { - self::$valueBinder = new PHPExcel_Cell_DefaultValueBinder(); - } - - return self::$valueBinder; - } - - /** - * Set value binder to use - * - * @param PHPExcel_Cell_IValueBinder $binder - * @throws PHPExcel_Exception - */ - public static function setValueBinder(PHPExcel_Cell_IValueBinder $binder = null) - { - if ($binder === null) { - throw new PHPExcel_Exception("A PHPExcel_Cell_IValueBinder is required for PHPExcel to function correctly."); - } - - self::$valueBinder = $binder; - } - - /** - * Implement PHP __clone to create a deep clone, not just a shallow copy. - */ - public function __clone() - { - $vars = get_object_vars($this); - foreach ($vars as $key => $value) { - if ((is_object($value)) && ($key != 'parent')) { - $this->$key = clone $value; - } else { - $this->$key = $value; - } - } - } - - /** - * Get index to cellXf - * - * @return int - */ - public function getXfIndex() - { - return $this->xfIndex; - } - - /** - * Set index to cellXf - * - * @param int $pValue - * @return PHPExcel_Cell - */ - public function setXfIndex($pValue = 0) - { - $this->xfIndex = $pValue; - - return $this->notifyCacheController(); - } - - /** - * @deprecated Since version 1.7.8 for planned changes to cell for array formula handling - */ - public function setFormulaAttributes($pAttributes) - { - $this->formulaAttributes = $pAttributes; - return $this; - } - - /** - * @deprecated Since version 1.7.8 for planned changes to cell for array formula handling - */ - public function getFormulaAttributes() - { - return $this->formulaAttributes; - } - - /** - * Convert to string - * - * @return string - */ - public function __toString() - { - return (string) $this->getValue(); - } -} diff --git a/Utils/PHPExcel/Cell/AdvancedValueBinder.php b/Utils/PHPExcel/Cell/AdvancedValueBinder.php deleted file mode 100644 index 061d04e..0000000 --- a/Utils/PHPExcel/Cell/AdvancedValueBinder.php +++ /dev/null @@ -1,187 +0,0 @@ -setValueExplicit(true, PHPExcel_Cell_DataType::TYPE_BOOL); - return true; - } elseif ($value == PHPExcel_Calculation::getFALSE()) { - $cell->setValueExplicit(false, PHPExcel_Cell_DataType::TYPE_BOOL); - return true; - } - - // Check for number in scientific format - if (preg_match('/^'.PHPExcel_Calculation::CALCULATION_REGEXP_NUMBER.'$/', $value)) { - $cell->setValueExplicit((float) $value, PHPExcel_Cell_DataType::TYPE_NUMERIC); - return true; - } - - // Check for fraction - if (preg_match('/^([+-]?)\s*([0-9]+)\s?\/\s*([0-9]+)$/', $value, $matches)) { - // Convert value to number - $value = $matches[2] / $matches[3]; - if ($matches[1] == '-') { - $value = 0 - $value; - } - $cell->setValueExplicit((float) $value, PHPExcel_Cell_DataType::TYPE_NUMERIC); - // Set style - $cell->getWorksheet()->getStyle($cell->getCoordinate()) - ->getNumberFormat()->setFormatCode('??/??'); - return true; - } elseif (preg_match('/^([+-]?)([0-9]*) +([0-9]*)\s?\/\s*([0-9]*)$/', $value, $matches)) { - // Convert value to number - $value = $matches[2] + ($matches[3] / $matches[4]); - if ($matches[1] == '-') { - $value = 0 - $value; - } - $cell->setValueExplicit((float) $value, PHPExcel_Cell_DataType::TYPE_NUMERIC); - // Set style - $cell->getWorksheet()->getStyle($cell->getCoordinate()) - ->getNumberFormat()->setFormatCode('# ??/??'); - return true; - } - - // Check for percentage - if (preg_match('/^\-?[0-9]*\.?[0-9]*\s?\%$/', $value)) { - // Convert value to number - $value = (float) str_replace('%', '', $value) / 100; - $cell->setValueExplicit($value, PHPExcel_Cell_DataType::TYPE_NUMERIC); - // Set style - $cell->getWorksheet()->getStyle($cell->getCoordinate()) - ->getNumberFormat()->setFormatCode(PHPExcel_Style_NumberFormat::FORMAT_PERCENTAGE_00); - return true; - } - - // Check for currency - $currencyCode = PHPExcel_Shared_String::getCurrencyCode(); - $decimalSeparator = PHPExcel_Shared_String::getDecimalSeparator(); - $thousandsSeparator = PHPExcel_Shared_String::getThousandsSeparator(); - if (preg_match('/^'.preg_quote($currencyCode).' *(\d{1,3}('.preg_quote($thousandsSeparator).'\d{3})*|(\d+))('.preg_quote($decimalSeparator).'\d{2})?$/', $value)) { - // Convert value to number - $value = (float) trim(str_replace(array($currencyCode, $thousandsSeparator, $decimalSeparator), array('', '', '.'), $value)); - $cell->setValueExplicit($value, PHPExcel_Cell_DataType::TYPE_NUMERIC); - // Set style - $cell->getWorksheet()->getStyle($cell->getCoordinate()) - ->getNumberFormat()->setFormatCode( - str_replace('$', $currencyCode, PHPExcel_Style_NumberFormat::FORMAT_CURRENCY_USD_SIMPLE) - ); - return true; - } elseif (preg_match('/^\$ *(\d{1,3}(\,\d{3})*|(\d+))(\.\d{2})?$/', $value)) { - // Convert value to number - $value = (float) trim(str_replace(array('$',','), '', $value)); - $cell->setValueExplicit($value, PHPExcel_Cell_DataType::TYPE_NUMERIC); - // Set style - $cell->getWorksheet()->getStyle($cell->getCoordinate()) - ->getNumberFormat()->setFormatCode(PHPExcel_Style_NumberFormat::FORMAT_CURRENCY_USD_SIMPLE); - return true; - } - - // Check for time without seconds e.g. '9:45', '09:45' - if (preg_match('/^(\d|[0-1]\d|2[0-3]):[0-5]\d$/', $value)) { - // Convert value to number - list($h, $m) = explode(':', $value); - $days = $h / 24 + $m / 1440; - $cell->setValueExplicit($days, PHPExcel_Cell_DataType::TYPE_NUMERIC); - // Set style - $cell->getWorksheet()->getStyle($cell->getCoordinate()) - ->getNumberFormat()->setFormatCode(PHPExcel_Style_NumberFormat::FORMAT_DATE_TIME3); - return true; - } - - // Check for time with seconds '9:45:59', '09:45:59' - if (preg_match('/^(\d|[0-1]\d|2[0-3]):[0-5]\d:[0-5]\d$/', $value)) { - // Convert value to number - list($h, $m, $s) = explode(':', $value); - $days = $h / 24 + $m / 1440 + $s / 86400; - // Convert value to number - $cell->setValueExplicit($days, PHPExcel_Cell_DataType::TYPE_NUMERIC); - // Set style - $cell->getWorksheet()->getStyle($cell->getCoordinate()) - ->getNumberFormat()->setFormatCode(PHPExcel_Style_NumberFormat::FORMAT_DATE_TIME4); - return true; - } - - // Check for datetime, e.g. '2008-12-31', '2008-12-31 15:59', '2008-12-31 15:59:10' - if (($d = PHPExcel_Shared_Date::stringToExcel($value)) !== false) { - // Convert value to number - $cell->setValueExplicit($d, PHPExcel_Cell_DataType::TYPE_NUMERIC); - // Determine style. Either there is a time part or not. Look for ':' - if (strpos($value, ':') !== false) { - $formatCode = 'yyyy-mm-dd h:mm'; - } else { - $formatCode = 'yyyy-mm-dd'; - } - $cell->getWorksheet()->getStyle($cell->getCoordinate()) - ->getNumberFormat()->setFormatCode($formatCode); - return true; - } - - // Check for newline character "\n" - if (strpos($value, "\n") !== false) { - $value = PHPExcel_Shared_String::SanitizeUTF8($value); - $cell->setValueExplicit($value, PHPExcel_Cell_DataType::TYPE_STRING); - // Set style - $cell->getWorksheet()->getStyle($cell->getCoordinate()) - ->getAlignment()->setWrapText(true); - return true; - } - } - - // Not bound yet? Use parent... - return parent::bindValue($cell, $value); - } -} diff --git a/Utils/PHPExcel/Cell/DataType.php b/Utils/PHPExcel/Cell/DataType.php deleted file mode 100644 index fc010e6..0000000 --- a/Utils/PHPExcel/Cell/DataType.php +++ /dev/null @@ -1,115 +0,0 @@ - 0, - '#DIV/0!' => 1, - '#VALUE!' => 2, - '#REF!' => 3, - '#NAME?' => 4, - '#NUM!' => 5, - '#N/A' => 6 - ); - - /** - * Get list of error codes - * - * @return array - */ - public static function getErrorCodes() - { - return self::$errorCodes; - } - - /** - * DataType for value - * - * @deprecated Replaced by PHPExcel_Cell_IValueBinder infrastructure, will be removed in version 1.8.0 - * @param mixed $pValue - * @return string - */ - public static function dataTypeForValue($pValue = null) - { - return PHPExcel_Cell_DefaultValueBinder::dataTypeForValue($pValue); - } - - /** - * Check a string that it satisfies Excel requirements - * - * @param mixed Value to sanitize to an Excel string - * @return mixed Sanitized value - */ - public static function checkString($pValue = null) - { - if ($pValue instanceof PHPExcel_RichText) { - // TODO: Sanitize Rich-Text string (max. character count is 32,767) - return $pValue; - } - - // string must never be longer than 32,767 characters, truncate if necessary - $pValue = PHPExcel_Shared_String::Substring($pValue, 0, 32767); - - // we require that newline is represented as "\n" in core, not as "\r\n" or "\r" - $pValue = str_replace(array("\r\n", "\r"), "\n", $pValue); - - return $pValue; - } - - /** - * Check a value that it is a valid error code - * - * @param mixed Value to sanitize to an Excel error code - * @return string Sanitized value - */ - public static function checkErrorCode($pValue = null) - { - $pValue = (string) $pValue; - - if (!array_key_exists($pValue, self::$errorCodes)) { - $pValue = '#NULL!'; - } - - return $pValue; - } -} diff --git a/Utils/PHPExcel/Cell/DataValidation.php b/Utils/PHPExcel/Cell/DataValidation.php deleted file mode 100644 index 9883633..0000000 --- a/Utils/PHPExcel/Cell/DataValidation.php +++ /dev/null @@ -1,492 +0,0 @@ -formula1 = ''; - $this->formula2 = ''; - $this->type = PHPExcel_Cell_DataValidation::TYPE_NONE; - $this->errorStyle = PHPExcel_Cell_DataValidation::STYLE_STOP; - $this->operator = ''; - $this->allowBlank = false; - $this->showDropDown = false; - $this->showInputMessage = false; - $this->showErrorMessage = false; - $this->errorTitle = ''; - $this->error = ''; - $this->promptTitle = ''; - $this->prompt = ''; - } - - /** - * Get Formula 1 - * - * @return string - */ - public function getFormula1() - { - return $this->formula1; - } - - /** - * Set Formula 1 - * - * @param string $value - * @return PHPExcel_Cell_DataValidation - */ - public function setFormula1($value = '') - { - $this->formula1 = $value; - return $this; - } - - /** - * Get Formula 2 - * - * @return string - */ - public function getFormula2() - { - return $this->formula2; - } - - /** - * Set Formula 2 - * - * @param string $value - * @return PHPExcel_Cell_DataValidation - */ - public function setFormula2($value = '') - { - $this->formula2 = $value; - return $this; - } - - /** - * Get Type - * - * @return string - */ - public function getType() - { - return $this->type; - } - - /** - * Set Type - * - * @param string $value - * @return PHPExcel_Cell_DataValidation - */ - public function setType($value = PHPExcel_Cell_DataValidation::TYPE_NONE) - { - $this->type = $value; - return $this; - } - - /** - * Get Error style - * - * @return string - */ - public function getErrorStyle() - { - return $this->errorStyle; - } - - /** - * Set Error style - * - * @param string $value - * @return PHPExcel_Cell_DataValidation - */ - public function setErrorStyle($value = PHPExcel_Cell_DataValidation::STYLE_STOP) - { - $this->errorStyle = $value; - return $this; - } - - /** - * Get Operator - * - * @return string - */ - public function getOperator() - { - return $this->operator; - } - - /** - * Set Operator - * - * @param string $value - * @return PHPExcel_Cell_DataValidation - */ - public function setOperator($value = '') - { - $this->operator = $value; - return $this; - } - - /** - * Get Allow Blank - * - * @return boolean - */ - public function getAllowBlank() - { - return $this->allowBlank; - } - - /** - * Set Allow Blank - * - * @param boolean $value - * @return PHPExcel_Cell_DataValidation - */ - public function setAllowBlank($value = false) - { - $this->allowBlank = $value; - return $this; - } - - /** - * Get Show DropDown - * - * @return boolean - */ - public function getShowDropDown() - { - return $this->showDropDown; - } - - /** - * Set Show DropDown - * - * @param boolean $value - * @return PHPExcel_Cell_DataValidation - */ - public function setShowDropDown($value = false) - { - $this->showDropDown = $value; - return $this; - } - - /** - * Get Show InputMessage - * - * @return boolean - */ - public function getShowInputMessage() - { - return $this->showInputMessage; - } - - /** - * Set Show InputMessage - * - * @param boolean $value - * @return PHPExcel_Cell_DataValidation - */ - public function setShowInputMessage($value = false) - { - $this->showInputMessage = $value; - return $this; - } - - /** - * Get Show ErrorMessage - * - * @return boolean - */ - public function getShowErrorMessage() - { - return $this->showErrorMessage; - } - - /** - * Set Show ErrorMessage - * - * @param boolean $value - * @return PHPExcel_Cell_DataValidation - */ - public function setShowErrorMessage($value = false) - { - $this->showErrorMessage = $value; - return $this; - } - - /** - * Get Error title - * - * @return string - */ - public function getErrorTitle() - { - return $this->errorTitle; - } - - /** - * Set Error title - * - * @param string $value - * @return PHPExcel_Cell_DataValidation - */ - public function setErrorTitle($value = '') - { - $this->errorTitle = $value; - return $this; - } - - /** - * Get Error - * - * @return string - */ - public function getError() - { - return $this->error; - } - - /** - * Set Error - * - * @param string $value - * @return PHPExcel_Cell_DataValidation - */ - public function setError($value = '') - { - $this->error = $value; - return $this; - } - - /** - * Get Prompt title - * - * @return string - */ - public function getPromptTitle() - { - return $this->promptTitle; - } - - /** - * Set Prompt title - * - * @param string $value - * @return PHPExcel_Cell_DataValidation - */ - public function setPromptTitle($value = '') - { - $this->promptTitle = $value; - return $this; - } - - /** - * Get Prompt - * - * @return string - */ - public function getPrompt() - { - return $this->prompt; - } - - /** - * Set Prompt - * - * @param string $value - * @return PHPExcel_Cell_DataValidation - */ - public function setPrompt($value = '') - { - $this->prompt = $value; - return $this; - } - - /** - * Get hash code - * - * @return string Hash code - */ - public function getHashCode() - { - return md5( - $this->formula1 . - $this->formula2 . - $this->type = PHPExcel_Cell_DataValidation::TYPE_NONE . - $this->errorStyle = PHPExcel_Cell_DataValidation::STYLE_STOP . - $this->operator . - ($this->allowBlank ? 't' : 'f') . - ($this->showDropDown ? 't' : 'f') . - ($this->showInputMessage ? 't' : 'f') . - ($this->showErrorMessage ? 't' : 'f') . - $this->errorTitle . - $this->error . - $this->promptTitle . - $this->prompt . - __CLASS__ - ); - } - - /** - * Implement PHP __clone to create a deep clone, not just a shallow copy. - */ - public function __clone() - { - $vars = get_object_vars($this); - foreach ($vars as $key => $value) { - if (is_object($value)) { - $this->$key = clone $value; - } else { - $this->$key = $value; - } - } - } -} diff --git a/Utils/PHPExcel/Cell/DefaultValueBinder.php b/Utils/PHPExcel/Cell/DefaultValueBinder.php deleted file mode 100644 index dc19e6c..0000000 --- a/Utils/PHPExcel/Cell/DefaultValueBinder.php +++ /dev/null @@ -1,102 +0,0 @@ -format('Y-m-d H:i:s'); - } elseif (!($value instanceof PHPExcel_RichText)) { - $value = (string) $value; - } - } - - // Set value explicit - $cell->setValueExplicit($value, self::dataTypeForValue($value)); - - // Done! - return true; - } - - /** - * DataType for value - * - * @param mixed $pValue - * @return string - */ - public static function dataTypeForValue($pValue = null) - { - // Match the value against a few data types - if ($pValue === null) { - return PHPExcel_Cell_DataType::TYPE_NULL; - } elseif ($pValue === '') { - return PHPExcel_Cell_DataType::TYPE_STRING; - } elseif ($pValue instanceof PHPExcel_RichText) { - return PHPExcel_Cell_DataType::TYPE_INLINE; - } elseif ($pValue{0} === '=' && strlen($pValue) > 1) { - return PHPExcel_Cell_DataType::TYPE_FORMULA; - } elseif (is_bool($pValue)) { - return PHPExcel_Cell_DataType::TYPE_BOOL; - } elseif (is_float($pValue) || is_int($pValue)) { - return PHPExcel_Cell_DataType::TYPE_NUMERIC; - } elseif (preg_match('/^[\+\-]?([0-9]+\\.?[0-9]*|[0-9]*\\.?[0-9]+)([Ee][\-\+]?[0-2]?\d{1,3})?$/', $pValue)) { - $tValue = ltrim($pValue, '+-'); - if (is_string($pValue) && $tValue{0} === '0' && strlen($tValue) > 1 && $tValue{1} !== '.') { - return PHPExcel_Cell_DataType::TYPE_STRING; - } elseif ((strpos($pValue, '.') === false) && ($pValue > PHP_INT_MAX)) { - return PHPExcel_Cell_DataType::TYPE_STRING; - } - return PHPExcel_Cell_DataType::TYPE_NUMERIC; - } elseif (is_string($pValue) && array_key_exists($pValue, PHPExcel_Cell_DataType::getErrorCodes())) { - return PHPExcel_Cell_DataType::TYPE_ERROR; - } - - return PHPExcel_Cell_DataType::TYPE_STRING; - } -} diff --git a/Utils/PHPExcel/Cell/Hyperlink.php b/Utils/PHPExcel/Cell/Hyperlink.php deleted file mode 100644 index daab54c..0000000 --- a/Utils/PHPExcel/Cell/Hyperlink.php +++ /dev/null @@ -1,124 +0,0 @@ -url = $pUrl; - $this->tooltip = $pTooltip; - } - - /** - * Get URL - * - * @return string - */ - public function getUrl() - { - return $this->url; - } - - /** - * Set URL - * - * @param string $value - * @return PHPExcel_Cell_Hyperlink - */ - public function setUrl($value = '') - { - $this->url = $value; - return $this; - } - - /** - * Get tooltip - * - * @return string - */ - public function getTooltip() - { - return $this->tooltip; - } - - /** - * Set tooltip - * - * @param string $value - * @return PHPExcel_Cell_Hyperlink - */ - public function setTooltip($value = '') - { - $this->tooltip = $value; - return $this; - } - - /** - * Is this hyperlink internal? (to another worksheet) - * - * @return boolean - */ - public function isInternal() - { - return strpos($this->url, 'sheet://') !== false; - } - - /** - * Get hash code - * - * @return string Hash code - */ - public function getHashCode() - { - return md5( - $this->url . - $this->tooltip . - __CLASS__ - ); - } -} diff --git a/Utils/PHPExcel/Cell/IValueBinder.php b/Utils/PHPExcel/Cell/IValueBinder.php deleted file mode 100644 index de2d0ac..0000000 --- a/Utils/PHPExcel/Cell/IValueBinder.php +++ /dev/null @@ -1,47 +0,0 @@ -name = $name; - $this->title = $title; - $this->legend = $legend; - $this->xAxisLabel = $xAxisLabel; - $this->yAxisLabel = $yAxisLabel; - $this->plotArea = $plotArea; - $this->plotVisibleOnly = $plotVisibleOnly; - $this->displayBlanksAs = $displayBlanksAs; - $this->xAxis = $xAxis; - $this->yAxis = $yAxis; - $this->majorGridlines = $majorGridlines; - $this->minorGridlines = $minorGridlines; - } - - /** - * Get Name - * - * @return string - */ - public function getName() - { - return $this->name; - } - - /** - * Get Worksheet - * - * @return PHPExcel_Worksheet - */ - public function getWorksheet() - { - return $this->worksheet; - } - - /** - * Set Worksheet - * - * @param PHPExcel_Worksheet $pValue - * @throws PHPExcel_Chart_Exception - * @return PHPExcel_Chart - */ - public function setWorksheet(PHPExcel_Worksheet $pValue = null) - { - $this->worksheet = $pValue; - - return $this; - } - - /** - * Get Title - * - * @return PHPExcel_Chart_Title - */ - public function getTitle() - { - return $this->title; - } - - /** - * Set Title - * - * @param PHPExcel_Chart_Title $title - * @return PHPExcel_Chart - */ - public function setTitle(PHPExcel_Chart_Title $title) - { - $this->title = $title; - - return $this; - } - - /** - * Get Legend - * - * @return PHPExcel_Chart_Legend - */ - public function getLegend() - { - return $this->legend; - } - - /** - * Set Legend - * - * @param PHPExcel_Chart_Legend $legend - * @return PHPExcel_Chart - */ - public function setLegend(PHPExcel_Chart_Legend $legend) - { - $this->legend = $legend; - - return $this; - } - - /** - * Get X-Axis Label - * - * @return PHPExcel_Chart_Title - */ - public function getXAxisLabel() - { - return $this->xAxisLabel; - } - - /** - * Set X-Axis Label - * - * @param PHPExcel_Chart_Title $label - * @return PHPExcel_Chart - */ - public function setXAxisLabel(PHPExcel_Chart_Title $label) - { - $this->xAxisLabel = $label; - - return $this; - } - - /** - * Get Y-Axis Label - * - * @return PHPExcel_Chart_Title - */ - public function getYAxisLabel() - { - return $this->yAxisLabel; - } - - /** - * Set Y-Axis Label - * - * @param PHPExcel_Chart_Title $label - * @return PHPExcel_Chart - */ - public function setYAxisLabel(PHPExcel_Chart_Title $label) - { - $this->yAxisLabel = $label; - - return $this; - } - - /** - * Get Plot Area - * - * @return PHPExcel_Chart_PlotArea - */ - public function getPlotArea() - { - return $this->plotArea; - } - - /** - * Get Plot Visible Only - * - * @return boolean - */ - public function getPlotVisibleOnly() - { - return $this->plotVisibleOnly; - } - - /** - * Set Plot Visible Only - * - * @param boolean $plotVisibleOnly - * @return PHPExcel_Chart - */ - public function setPlotVisibleOnly($plotVisibleOnly = true) - { - $this->plotVisibleOnly = $plotVisibleOnly; - - return $this; - } - - /** - * Get Display Blanks as - * - * @return string - */ - public function getDisplayBlanksAs() - { - return $this->displayBlanksAs; - } - - /** - * Set Display Blanks as - * - * @param string $displayBlanksAs - * @return PHPExcel_Chart - */ - public function setDisplayBlanksAs($displayBlanksAs = '0') - { - $this->displayBlanksAs = $displayBlanksAs; - } - - - /** - * Get yAxis - * - * @return PHPExcel_Chart_Axis - */ - public function getChartAxisY() - { - if ($this->yAxis !== null) { - return $this->yAxis; - } - - return new PHPExcel_Chart_Axis(); - } - - /** - * Get xAxis - * - * @return PHPExcel_Chart_Axis - */ - public function getChartAxisX() - { - if ($this->xAxis !== null) { - return $this->xAxis; - } - - return new PHPExcel_Chart_Axis(); - } - - /** - * Get Major Gridlines - * - * @return PHPExcel_Chart_GridLines - */ - public function getMajorGridlines() - { - if ($this->majorGridlines !== null) { - return $this->majorGridlines; - } - - return new PHPExcel_Chart_GridLines(); - } - - /** - * Get Minor Gridlines - * - * @return PHPExcel_Chart_GridLines - */ - public function getMinorGridlines() - { - if ($this->minorGridlines !== null) { - return $this->minorGridlines; - } - - return new PHPExcel_Chart_GridLines(); - } - - - /** - * Set the Top Left position for the chart - * - * @param string $cell - * @param integer $xOffset - * @param integer $yOffset - * @return PHPExcel_Chart - */ - public function setTopLeftPosition($cell, $xOffset = null, $yOffset = null) - { - $this->topLeftCellRef = $cell; - if (!is_null($xOffset)) { - $this->setTopLeftXOffset($xOffset); - } - if (!is_null($yOffset)) { - $this->setTopLeftYOffset($yOffset); - } - - return $this; - } - - /** - * Get the top left position of the chart - * - * @return array an associative array containing the cell address, X-Offset and Y-Offset from the top left of that cell - */ - public function getTopLeftPosition() - { - return array( - 'cell' => $this->topLeftCellRef, - 'xOffset' => $this->topLeftXOffset, - 'yOffset' => $this->topLeftYOffset - ); - } - - /** - * Get the cell address where the top left of the chart is fixed - * - * @return string - */ - public function getTopLeftCell() - { - return $this->topLeftCellRef; - } - - /** - * Set the Top Left cell position for the chart - * - * @param string $cell - * @return PHPExcel_Chart - */ - public function setTopLeftCell($cell) - { - $this->topLeftCellRef = $cell; - - return $this; - } - - /** - * Set the offset position within the Top Left cell for the chart - * - * @param integer $xOffset - * @param integer $yOffset - * @return PHPExcel_Chart - */ - public function setTopLeftOffset($xOffset = null, $yOffset = null) - { - if (!is_null($xOffset)) { - $this->setTopLeftXOffset($xOffset); - } - if (!is_null($yOffset)) { - $this->setTopLeftYOffset($yOffset); - } - - return $this; - } - - /** - * Get the offset position within the Top Left cell for the chart - * - * @return integer[] - */ - public function getTopLeftOffset() - { - return array( - 'X' => $this->topLeftXOffset, - 'Y' => $this->topLeftYOffset - ); - } - - public function getTopLeftXOffset() - { - return $this->topLeftXOffset; - } - - public function setTopLeftXOffset($xOffset) - { - $this->topLeftXOffset = $xOffset; - - return $this; - } - - public function getTopLeftYOffset() - { - return $this->topLeftYOffset; - } - - public function setTopLeftYOffset($yOffset) - { - $this->topLeftYOffset = $yOffset; - - return $this; - } - - /** - * Set the Bottom Right position of the chart - * - * @param string $cell - * @param integer $xOffset - * @param integer $yOffset - * @return PHPExcel_Chart - */ - public function setBottomRightPosition($cell, $xOffset = null, $yOffset = null) - { - $this->bottomRightCellRef = $cell; - if (!is_null($xOffset)) { - $this->setBottomRightXOffset($xOffset); - } - if (!is_null($yOffset)) { - $this->setBottomRightYOffset($yOffset); - } - - return $this; - } - - /** - * Get the bottom right position of the chart - * - * @return array an associative array containing the cell address, X-Offset and Y-Offset from the top left of that cell - */ - public function getBottomRightPosition() - { - return array( - 'cell' => $this->bottomRightCellRef, - 'xOffset' => $this->bottomRightXOffset, - 'yOffset' => $this->bottomRightYOffset - ); - } - - public function setBottomRightCell($cell) - { - $this->bottomRightCellRef = $cell; - - return $this; - } - - /** - * Get the cell address where the bottom right of the chart is fixed - * - * @return string - */ - public function getBottomRightCell() - { - return $this->bottomRightCellRef; - } - - /** - * Set the offset position within the Bottom Right cell for the chart - * - * @param integer $xOffset - * @param integer $yOffset - * @return PHPExcel_Chart - */ - public function setBottomRightOffset($xOffset = null, $yOffset = null) - { - if (!is_null($xOffset)) { - $this->setBottomRightXOffset($xOffset); - } - if (!is_null($yOffset)) { - $this->setBottomRightYOffset($yOffset); - } - - return $this; - } - - /** - * Get the offset position within the Bottom Right cell for the chart - * - * @return integer[] - */ - public function getBottomRightOffset() - { - return array( - 'X' => $this->bottomRightXOffset, - 'Y' => $this->bottomRightYOffset - ); - } - - public function getBottomRightXOffset() - { - return $this->bottomRightXOffset; - } - - public function setBottomRightXOffset($xOffset) - { - $this->bottomRightXOffset = $xOffset; - - return $this; - } - - public function getBottomRightYOffset() - { - return $this->bottomRightYOffset; - } - - public function setBottomRightYOffset($yOffset) - { - $this->bottomRightYOffset = $yOffset; - - return $this; - } - - public function render($outputDestination = null) - { - $libraryName = PHPExcel_Settings::getChartRendererName(); - if (is_null($libraryName)) { - return false; - } - // Ensure that data series values are up-to-date before we render - $this->refresh(); - - $libraryPath = PHPExcel_Settings::getChartRendererPath(); - $includePath = str_replace('\\', '/', get_include_path()); - $rendererPath = str_replace('\\', '/', $libraryPath); - if (strpos($rendererPath, $includePath) === false) { - set_include_path(get_include_path() . PATH_SEPARATOR . $libraryPath); - } - - $rendererName = 'PHPExcel_Chart_Renderer_'.$libraryName; - $renderer = new $rendererName($this); - - if ($outputDestination == 'php://output') { - $outputDestination = null; - } - return $renderer->render($outputDestination); - } - - public function refresh() - { - if ($this->worksheet !== null) { - $this->plotArea->refresh($this->worksheet); - } - } -} diff --git a/Utils/PHPExcel/Chart/Axis.php b/Utils/PHPExcel/Chart/Axis.php deleted file mode 100644 index 9aeafc6..0000000 --- a/Utils/PHPExcel/Chart/Axis.php +++ /dev/null @@ -1,561 +0,0 @@ - self::FORMAT_CODE_GENERAL, - 'source_linked' => 1 - ); - - /** - * Axis Options - * - * @var array of mixed - */ - private $axisOptions = array( - 'minimum' => null, - 'maximum' => null, - 'major_unit' => null, - 'minor_unit' => null, - 'orientation' => self::ORIENTATION_NORMAL, - 'minor_tick_mark' => self::TICK_MARK_NONE, - 'major_tick_mark' => self::TICK_MARK_NONE, - 'axis_labels' => self::AXIS_LABELS_NEXT_TO, - 'horizontal_crosses' => self::HORIZONTAL_CROSSES_AUTOZERO, - 'horizontal_crosses_value' => null - ); - - /** - * Fill Properties - * - * @var array of mixed - */ - private $fillProperties = array( - 'type' => self::EXCEL_COLOR_TYPE_ARGB, - 'value' => null, - 'alpha' => 0 - ); - - /** - * Line Properties - * - * @var array of mixed - */ - private $lineProperties = array( - 'type' => self::EXCEL_COLOR_TYPE_ARGB, - 'value' => null, - 'alpha' => 0 - ); - - /** - * Line Style Properties - * - * @var array of mixed - */ - private $lineStyleProperties = array( - 'width' => '9525', - 'compound' => self::LINE_STYLE_COMPOUND_SIMPLE, - 'dash' => self::LINE_STYLE_DASH_SOLID, - 'cap' => self::LINE_STYLE_CAP_FLAT, - 'join' => self::LINE_STYLE_JOIN_BEVEL, - 'arrow' => array( - 'head' => array( - 'type' => self::LINE_STYLE_ARROW_TYPE_NOARROW, - 'size' => self::LINE_STYLE_ARROW_SIZE_5 - ), - 'end' => array( - 'type' => self::LINE_STYLE_ARROW_TYPE_NOARROW, - 'size' => self::LINE_STYLE_ARROW_SIZE_8 - ), - ) - ); - - /** - * Shadow Properties - * - * @var array of mixed - */ - private $shadowProperties = array( - 'presets' => self::SHADOW_PRESETS_NOSHADOW, - 'effect' => null, - 'color' => array( - 'type' => self::EXCEL_COLOR_TYPE_STANDARD, - 'value' => 'black', - 'alpha' => 40, - ), - 'size' => array( - 'sx' => null, - 'sy' => null, - 'kx' => null - ), - 'blur' => null, - 'direction' => null, - 'distance' => null, - 'algn' => null, - 'rotWithShape' => null - ); - - /** - * Glow Properties - * - * @var array of mixed - */ - private $glowProperties = array( - 'size' => null, - 'color' => array( - 'type' => self::EXCEL_COLOR_TYPE_STANDARD, - 'value' => 'black', - 'alpha' => 40 - ) - ); - - /** - * Soft Edge Properties - * - * @var array of mixed - */ - private $softEdges = array( - 'size' => null - ); - - /** - * Get Series Data Type - * - * @return string - */ - public function setAxisNumberProperties($format_code) - { - $this->axisNumber['format'] = (string) $format_code; - $this->axisNumber['source_linked'] = 0; - } - - /** - * Get Axis Number Format Data Type - * - * @return string - */ - public function getAxisNumberFormat() - { - return $this->axisNumber['format']; - } - - /** - * Get Axis Number Source Linked - * - * @return string - */ - public function getAxisNumberSourceLinked() - { - return (string) $this->axisNumber['source_linked']; - } - - /** - * Set Axis Options Properties - * - * @param string $axis_labels - * @param string $horizontal_crosses_value - * @param string $horizontal_crosses - * @param string $axis_orientation - * @param string $major_tmt - * @param string $minor_tmt - * @param string $minimum - * @param string $maximum - * @param string $major_unit - * @param string $minor_unit - * - */ - public function setAxisOptionsProperties($axis_labels, $horizontal_crosses_value = null, $horizontal_crosses = null, $axis_orientation = null, $major_tmt = null, $minor_tmt = null, $minimum = null, $maximum = null, $major_unit = null, $minor_unit = null) - { - $this->axisOptions['axis_labels'] = (string) $axis_labels; - ($horizontal_crosses_value !== null) ? $this->axisOptions['horizontal_crosses_value'] = (string) $horizontal_crosses_value : null; - ($horizontal_crosses !== null) ? $this->axisOptions['horizontal_crosses'] = (string) $horizontal_crosses : null; - ($axis_orientation !== null) ? $this->axisOptions['orientation'] = (string) $axis_orientation : null; - ($major_tmt !== null) ? $this->axisOptions['major_tick_mark'] = (string) $major_tmt : null; - ($minor_tmt !== null) ? $this->axisOptions['minor_tick_mark'] = (string) $minor_tmt : null; - ($minor_tmt !== null) ? $this->axisOptions['minor_tick_mark'] = (string) $minor_tmt : null; - ($minimum !== null) ? $this->axisOptions['minimum'] = (string) $minimum : null; - ($maximum !== null) ? $this->axisOptions['maximum'] = (string) $maximum : null; - ($major_unit !== null) ? $this->axisOptions['major_unit'] = (string) $major_unit : null; - ($minor_unit !== null) ? $this->axisOptions['minor_unit'] = (string) $minor_unit : null; - } - - /** - * Get Axis Options Property - * - * @param string $property - * - * @return string - */ - public function getAxisOptionsProperty($property) - { - return $this->axisOptions[$property]; - } - - /** - * Set Axis Orientation Property - * - * @param string $orientation - * - */ - public function setAxisOrientation($orientation) - { - $this->orientation = (string) $orientation; - } - - /** - * Set Fill Property - * - * @param string $color - * @param int $alpha - * @param string $type - * - */ - public function setFillParameters($color, $alpha = 0, $type = self::EXCEL_COLOR_TYPE_ARGB) - { - $this->fillProperties = $this->setColorProperties($color, $alpha, $type); - } - - /** - * Set Line Property - * - * @param string $color - * @param int $alpha - * @param string $type - * - */ - public function setLineParameters($color, $alpha = 0, $type = self::EXCEL_COLOR_TYPE_ARGB) - { - $this->lineProperties = $this->setColorProperties($color, $alpha, $type); - } - - /** - * Get Fill Property - * - * @param string $property - * - * @return string - */ - public function getFillProperty($property) - { - return $this->fillProperties[$property]; - } - - /** - * Get Line Property - * - * @param string $property - * - * @return string - */ - public function getLineProperty($property) - { - return $this->lineProperties[$property]; - } - - /** - * Set Line Style Properties - * - * @param float $line_width - * @param string $compound_type - * @param string $dash_type - * @param string $cap_type - * @param string $join_type - * @param string $head_arrow_type - * @param string $head_arrow_size - * @param string $end_arrow_type - * @param string $end_arrow_size - * - */ - public function setLineStyleProperties($line_width = null, $compound_type = null, $dash_type = null, $cap_type = null, $join_type = null, $head_arrow_type = null, $head_arrow_size = null, $end_arrow_type = null, $end_arrow_size = null) - { - (!is_null($line_width)) ? $this->lineStyleProperties['width'] = $this->getExcelPointsWidth((float) $line_width) : null; - (!is_null($compound_type)) ? $this->lineStyleProperties['compound'] = (string) $compound_type : null; - (!is_null($dash_type)) ? $this->lineStyleProperties['dash'] = (string) $dash_type : null; - (!is_null($cap_type)) ? $this->lineStyleProperties['cap'] = (string) $cap_type : null; - (!is_null($join_type)) ? $this->lineStyleProperties['join'] = (string) $join_type : null; - (!is_null($head_arrow_type)) ? $this->lineStyleProperties['arrow']['head']['type'] = (string) $head_arrow_type : null; - (!is_null($head_arrow_size)) ? $this->lineStyleProperties['arrow']['head']['size'] = (string) $head_arrow_size : null; - (!is_null($end_arrow_type)) ? $this->lineStyleProperties['arrow']['end']['type'] = (string) $end_arrow_type : null; - (!is_null($end_arrow_size)) ? $this->lineStyleProperties['arrow']['end']['size'] = (string) $end_arrow_size : null; - } - - /** - * Get Line Style Property - * - * @param array|string $elements - * - * @return string - */ - public function getLineStyleProperty($elements) - { - return $this->getArrayElementsValue($this->lineStyleProperties, $elements); - } - - /** - * Get Line Style Arrow Excel Width - * - * @param string $arrow - * - * @return string - */ - public function getLineStyleArrowWidth($arrow) - { - return $this->getLineStyleArrowSize($this->lineStyleProperties['arrow'][$arrow]['size'], 'w'); - } - - /** - * Get Line Style Arrow Excel Length - * - * @param string $arrow - * - * @return string - */ - public function getLineStyleArrowLength($arrow) - { - return $this->getLineStyleArrowSize($this->lineStyleProperties['arrow'][$arrow]['size'], 'len'); - } - - /** - * Set Shadow Properties - * - * @param int $shadow_presets - * @param string $sh_color_value - * @param string $sh_color_type - * @param string $sh_color_alpha - * @param float $sh_blur - * @param int $sh_angle - * @param float $sh_distance - * - */ - public function setShadowProperties($sh_presets, $sh_color_value = null, $sh_color_type = null, $sh_color_alpha = null, $sh_blur = null, $sh_angle = null, $sh_distance = null) - { - $this->setShadowPresetsProperties((int) $sh_presets) - ->setShadowColor( - is_null($sh_color_value) ? $this->shadowProperties['color']['value'] : $sh_color_value, - is_null($sh_color_alpha) ? (int) $this->shadowProperties['color']['alpha'] : $sh_color_alpha, - is_null($sh_color_type) ? $this->shadowProperties['color']['type'] : $sh_color_type - ) - ->setShadowBlur($sh_blur) - ->setShadowAngle($sh_angle) - ->setShadowDistance($sh_distance); - } - - /** - * Set Shadow Color - * - * @param int $shadow_presets - * - * @return PHPExcel_Chart_Axis - */ - private function setShadowPresetsProperties($shadow_presets) - { - $this->shadowProperties['presets'] = $shadow_presets; - $this->setShadowProperiesMapValues($this->getShadowPresetsMap($shadow_presets)); - - return $this; - } - - /** - * Set Shadow Properties from Maped Values - * - * @param array $properties_map - * @param * $reference - * - * @return PHPExcel_Chart_Axis - */ - private function setShadowProperiesMapValues(array $properties_map, &$reference = null) - { - $base_reference = $reference; - foreach ($properties_map as $property_key => $property_val) { - if (is_array($property_val)) { - if ($reference === null) { - $reference = & $this->shadowProperties[$property_key]; - } else { - $reference = & $reference[$property_key]; - } - $this->setShadowProperiesMapValues($property_val, $reference); - } else { - if ($base_reference === null) { - $this->shadowProperties[$property_key] = $property_val; - } else { - $reference[$property_key] = $property_val; - } - } - } - - return $this; - } - - /** - * Set Shadow Color - * - * @param string $color - * @param int $alpha - * @param string $type - * - * @return PHPExcel_Chart_Axis - */ - private function setShadowColor($color, $alpha, $type) - { - $this->shadowProperties['color'] = $this->setColorProperties($color, $alpha, $type); - - return $this; - } - - /** - * Set Shadow Blur - * - * @param float $blur - * - * @return PHPExcel_Chart_Axis - */ - private function setShadowBlur($blur) - { - if ($blur !== null) { - $this->shadowProperties['blur'] = (string) $this->getExcelPointsWidth($blur); - } - - return $this; - } - - /** - * Set Shadow Angle - * - * @param int $angle - * - * @return PHPExcel_Chart_Axis - */ - private function setShadowAngle($angle) - { - if ($angle !== null) { - $this->shadowProperties['direction'] = (string) $this->getExcelPointsAngle($angle); - } - - return $this; - } - - /** - * Set Shadow Distance - * - * @param float $distance - * - * @return PHPExcel_Chart_Axis - */ - private function setShadowDistance($distance) - { - if ($distance !== null) { - $this->shadowProperties['distance'] = (string) $this->getExcelPointsWidth($distance); - } - - return $this; - } - - /** - * Get Glow Property - * - * @param float $size - * @param string $color_value - * @param int $color_alpha - * @param string $color_type - */ - public function getShadowProperty($elements) - { - return $this->getArrayElementsValue($this->shadowProperties, $elements); - } - - /** - * Set Glow Properties - * - * @param float $size - * @param string $color_value - * @param int $color_alpha - * @param string $color_type - */ - public function setGlowProperties($size, $color_value = null, $color_alpha = null, $color_type = null) - { - $this->setGlowSize($size) - ->setGlowColor( - is_null($color_value) ? $this->glowProperties['color']['value'] : $color_value, - is_null($color_alpha) ? (int) $this->glowProperties['color']['alpha'] : $color_alpha, - is_null($color_type) ? $this->glowProperties['color']['type'] : $color_type - ); - } - - /** - * Get Glow Property - * - * @param array|string $property - * - * @return string - */ - public function getGlowProperty($property) - { - return $this->getArrayElementsValue($this->glowProperties, $property); - } - - /** - * Set Glow Color - * - * @param float $size - * - * @return PHPExcel_Chart_Axis - */ - private function setGlowSize($size) - { - if (!is_null($size)) { - $this->glowProperties['size'] = $this->getExcelPointsWidth($size); - } - - return $this; - } - - /** - * Set Glow Color - * - * @param string $color - * @param int $alpha - * @param string $type - * - * @return PHPExcel_Chart_Axis - */ - private function setGlowColor($color, $alpha, $type) - { - $this->glowProperties['color'] = $this->setColorProperties($color, $alpha, $type); - - return $this; - } - - /** - * Set Soft Edges Size - * - * @param float $size - */ - public function setSoftEdges($size) - { - if (!is_null($size)) { - $softEdges['size'] = (string) $this->getExcelPointsWidth($size); - } - } - - /** - * Get Soft Edges Size - * - * @return string - */ - public function getSoftEdgesSize() - { - return $this->softEdges['size']; - } -} diff --git a/Utils/PHPExcel/Chart/DataSeries.php b/Utils/PHPExcel/Chart/DataSeries.php deleted file mode 100644 index 9ecd543..0000000 --- a/Utils/PHPExcel/Chart/DataSeries.php +++ /dev/null @@ -1,390 +0,0 @@ -plotType = $plotType; - $this->plotGrouping = $plotGrouping; - $this->plotOrder = $plotOrder; - $keys = array_keys($plotValues); - $this->plotValues = $plotValues; - if ((count($plotLabel) == 0) || (is_null($plotLabel[$keys[0]]))) { - $plotLabel[$keys[0]] = new PHPExcel_Chart_DataSeriesValues(); - } - - $this->plotLabel = $plotLabel; - if ((count($plotCategory) == 0) || (is_null($plotCategory[$keys[0]]))) { - $plotCategory[$keys[0]] = new PHPExcel_Chart_DataSeriesValues(); - } - $this->plotCategory = $plotCategory; - $this->smoothLine = $smoothLine; - $this->plotStyle = $plotStyle; - - if (is_null($plotDirection)) { - $plotDirection = self::DIRECTION_COL; - } - $this->plotDirection = $plotDirection; - } - - /** - * Get Plot Type - * - * @return string - */ - public function getPlotType() - { - return $this->plotType; - } - - /** - * Set Plot Type - * - * @param string $plotType - * @return PHPExcel_Chart_DataSeries - */ - public function setPlotType($plotType = '') - { - $this->plotType = $plotType; - return $this; - } - - /** - * Get Plot Grouping Type - * - * @return string - */ - public function getPlotGrouping() - { - return $this->plotGrouping; - } - - /** - * Set Plot Grouping Type - * - * @param string $groupingType - * @return PHPExcel_Chart_DataSeries - */ - public function setPlotGrouping($groupingType = null) - { - $this->plotGrouping = $groupingType; - return $this; - } - - /** - * Get Plot Direction - * - * @return string - */ - public function getPlotDirection() - { - return $this->plotDirection; - } - - /** - * Set Plot Direction - * - * @param string $plotDirection - * @return PHPExcel_Chart_DataSeries - */ - public function setPlotDirection($plotDirection = null) - { - $this->plotDirection = $plotDirection; - return $this; - } - - /** - * Get Plot Order - * - * @return string - */ - public function getPlotOrder() - { - return $this->plotOrder; - } - - /** - * Get Plot Labels - * - * @return array of PHPExcel_Chart_DataSeriesValues - */ - public function getPlotLabels() - { - return $this->plotLabel; - } - - /** - * Get Plot Label by Index - * - * @return PHPExcel_Chart_DataSeriesValues - */ - public function getPlotLabelByIndex($index) - { - $keys = array_keys($this->plotLabel); - if (in_array($index, $keys)) { - return $this->plotLabel[$index]; - } elseif (isset($keys[$index])) { - return $this->plotLabel[$keys[$index]]; - } - return false; - } - - /** - * Get Plot Categories - * - * @return array of PHPExcel_Chart_DataSeriesValues - */ - public function getPlotCategories() - { - return $this->plotCategory; - } - - /** - * Get Plot Category by Index - * - * @return PHPExcel_Chart_DataSeriesValues - */ - public function getPlotCategoryByIndex($index) - { - $keys = array_keys($this->plotCategory); - if (in_array($index, $keys)) { - return $this->plotCategory[$index]; - } elseif (isset($keys[$index])) { - return $this->plotCategory[$keys[$index]]; - } - return false; - } - - /** - * Get Plot Style - * - * @return string - */ - public function getPlotStyle() - { - return $this->plotStyle; - } - - /** - * Set Plot Style - * - * @param string $plotStyle - * @return PHPExcel_Chart_DataSeries - */ - public function setPlotStyle($plotStyle = null) - { - $this->plotStyle = $plotStyle; - return $this; - } - - /** - * Get Plot Values - * - * @return array of PHPExcel_Chart_DataSeriesValues - */ - public function getPlotValues() - { - return $this->plotValues; - } - - /** - * Get Plot Values by Index - * - * @return PHPExcel_Chart_DataSeriesValues - */ - public function getPlotValuesByIndex($index) - { - $keys = array_keys($this->plotValues); - if (in_array($index, $keys)) { - return $this->plotValues[$index]; - } elseif (isset($keys[$index])) { - return $this->plotValues[$keys[$index]]; - } - return false; - } - - /** - * Get Number of Plot Series - * - * @return integer - */ - public function getPlotSeriesCount() - { - return count($this->plotValues); - } - - /** - * Get Smooth Line - * - * @return boolean - */ - public function getSmoothLine() - { - return $this->smoothLine; - } - - /** - * Set Smooth Line - * - * @param boolean $smoothLine - * @return PHPExcel_Chart_DataSeries - */ - public function setSmoothLine($smoothLine = true) - { - $this->smoothLine = $smoothLine; - return $this; - } - - public function refresh(PHPExcel_Worksheet $worksheet) - { - foreach ($this->plotValues as $plotValues) { - if ($plotValues !== null) { - $plotValues->refresh($worksheet, true); - } - } - foreach ($this->plotLabel as $plotValues) { - if ($plotValues !== null) { - $plotValues->refresh($worksheet, true); - } - } - foreach ($this->plotCategory as $plotValues) { - if ($plotValues !== null) { - $plotValues->refresh($worksheet, false); - } - } - } -} diff --git a/Utils/PHPExcel/Chart/DataSeriesValues.php b/Utils/PHPExcel/Chart/DataSeriesValues.php deleted file mode 100644 index ea57e52..0000000 --- a/Utils/PHPExcel/Chart/DataSeriesValues.php +++ /dev/null @@ -1,333 +0,0 @@ -setDataType($dataType); - $this->dataSource = $dataSource; - $this->formatCode = $formatCode; - $this->pointCount = $pointCount; - $this->dataValues = $dataValues; - $this->pointMarker = $marker; - } - - /** - * Get Series Data Type - * - * @return string - */ - public function getDataType() - { - return $this->dataType; - } - - /** - * Set Series Data Type - * - * @param string $dataType Datatype of this data series - * Typical values are: - * PHPExcel_Chart_DataSeriesValues::DATASERIES_TYPE_STRING - * Normally used for axis point values - * PHPExcel_Chart_DataSeriesValues::DATASERIES_TYPE_NUMBER - * Normally used for chart data values - * @return PHPExcel_Chart_DataSeriesValues - */ - public function setDataType($dataType = self::DATASERIES_TYPE_NUMBER) - { - if (!in_array($dataType, self::$dataTypeValues)) { - throw new PHPExcel_Chart_Exception('Invalid datatype for chart data series values'); - } - $this->dataType = $dataType; - - return $this; - } - - /** - * Get Series Data Source (formula) - * - * @return string - */ - public function getDataSource() - { - return $this->dataSource; - } - - /** - * Set Series Data Source (formula) - * - * @param string $dataSource - * @return PHPExcel_Chart_DataSeriesValues - */ - public function setDataSource($dataSource = null, $refreshDataValues = true) - { - $this->dataSource = $dataSource; - - if ($refreshDataValues) { - // TO DO - } - - return $this; - } - - /** - * Get Point Marker - * - * @return string - */ - public function getPointMarker() - { - return $this->pointMarker; - } - - /** - * Set Point Marker - * - * @param string $marker - * @return PHPExcel_Chart_DataSeriesValues - */ - public function setPointMarker($marker = null) - { - $this->pointMarker = $marker; - - return $this; - } - - /** - * Get Series Format Code - * - * @return string - */ - public function getFormatCode() - { - return $this->formatCode; - } - - /** - * Set Series Format Code - * - * @param string $formatCode - * @return PHPExcel_Chart_DataSeriesValues - */ - public function setFormatCode($formatCode = null) - { - $this->formatCode = $formatCode; - - return $this; - } - - /** - * Get Series Point Count - * - * @return integer - */ - public function getPointCount() - { - return $this->pointCount; - } - - /** - * Identify if the Data Series is a multi-level or a simple series - * - * @return boolean - */ - public function isMultiLevelSeries() - { - if (count($this->dataValues) > 0) { - return is_array($this->dataValues[0]); - } - return null; - } - - /** - * Return the level count of a multi-level Data Series - * - * @return boolean - */ - public function multiLevelCount() - { - $levelCount = 0; - foreach ($this->dataValues as $dataValueSet) { - $levelCount = max($levelCount, count($dataValueSet)); - } - return $levelCount; - } - - /** - * Get Series Data Values - * - * @return array of mixed - */ - public function getDataValues() - { - return $this->dataValues; - } - - /** - * Get the first Series Data value - * - * @return mixed - */ - public function getDataValue() - { - $count = count($this->dataValues); - if ($count == 0) { - return null; - } elseif ($count == 1) { - return $this->dataValues[0]; - } - return $this->dataValues; - } - - /** - * Set Series Data Values - * - * @param array $dataValues - * @param boolean $refreshDataSource - * TRUE - refresh the value of dataSource based on the values of $dataValues - * FALSE - don't change the value of dataSource - * @return PHPExcel_Chart_DataSeriesValues - */ - public function setDataValues($dataValues = array(), $refreshDataSource = true) - { - $this->dataValues = PHPExcel_Calculation_Functions::flattenArray($dataValues); - $this->pointCount = count($dataValues); - - if ($refreshDataSource) { - // TO DO - } - - return $this; - } - - private function stripNulls($var) - { - return $var !== null; - } - - public function refresh(PHPExcel_Worksheet $worksheet, $flatten = true) - { - if ($this->dataSource !== null) { - $calcEngine = PHPExcel_Calculation::getInstance($worksheet->getParent()); - $newDataValues = PHPExcel_Calculation::unwrapResult( - $calcEngine->_calculateFormulaValue( - '='.$this->dataSource, - null, - $worksheet->getCell('A1') - ) - ); - if ($flatten) { - $this->dataValues = PHPExcel_Calculation_Functions::flattenArray($newDataValues); - foreach ($this->dataValues as &$dataValue) { - if ((!empty($dataValue)) && ($dataValue[0] == '#')) { - $dataValue = 0.0; - } - } - unset($dataValue); - } else { - $cellRange = explode('!', $this->dataSource); - if (count($cellRange) > 1) { - list(, $cellRange) = $cellRange; - } - - $dimensions = PHPExcel_Cell::rangeDimension(str_replace('$', '', $cellRange)); - if (($dimensions[0] == 1) || ($dimensions[1] == 1)) { - $this->dataValues = PHPExcel_Calculation_Functions::flattenArray($newDataValues); - } else { - $newArray = array_values(array_shift($newDataValues)); - foreach ($newArray as $i => $newDataSet) { - $newArray[$i] = array($newDataSet); - } - - foreach ($newDataValues as $newDataSet) { - $i = 0; - foreach ($newDataSet as $newDataVal) { - array_unshift($newArray[$i++], $newDataVal); - } - } - $this->dataValues = $newArray; - } - } - $this->pointCount = count($this->dataValues); - } - } -} diff --git a/Utils/PHPExcel/Chart/Exception.php b/Utils/PHPExcel/Chart/Exception.php deleted file mode 100644 index e20dfa5..0000000 --- a/Utils/PHPExcel/Chart/Exception.php +++ /dev/null @@ -1,46 +0,0 @@ -line = $line; - $e->file = $file; - throw $e; - } -} diff --git a/Utils/PHPExcel/Chart/GridLines.php b/Utils/PHPExcel/Chart/GridLines.php deleted file mode 100644 index 898012e..0000000 --- a/Utils/PHPExcel/Chart/GridLines.php +++ /dev/null @@ -1,472 +0,0 @@ - array( - 'type' => self::EXCEL_COLOR_TYPE_STANDARD, - 'value' => null, - 'alpha' => 0 - ), - 'style' => array( - 'width' => '9525', - 'compound' => self::LINE_STYLE_COMPOUND_SIMPLE, - 'dash' => self::LINE_STYLE_DASH_SOLID, - 'cap' => self::LINE_STYLE_CAP_FLAT, - 'join' => self::LINE_STYLE_JOIN_BEVEL, - 'arrow' => array( - 'head' => array( - 'type' => self::LINE_STYLE_ARROW_TYPE_NOARROW, - 'size' => self::LINE_STYLE_ARROW_SIZE_5 - ), - 'end' => array( - 'type' => self::LINE_STYLE_ARROW_TYPE_NOARROW, - 'size' => self::LINE_STYLE_ARROW_SIZE_8 - ), - ) - ) - ); - - private $shadowProperties = array( - 'presets' => self::SHADOW_PRESETS_NOSHADOW, - 'effect' => null, - 'color' => array( - 'type' => self::EXCEL_COLOR_TYPE_STANDARD, - 'value' => 'black', - 'alpha' => 85, - ), - 'size' => array( - 'sx' => null, - 'sy' => null, - 'kx' => null - ), - 'blur' => null, - 'direction' => null, - 'distance' => null, - 'algn' => null, - 'rotWithShape' => null - ); - - private $glowProperties = array( - 'size' => null, - 'color' => array( - 'type' => self::EXCEL_COLOR_TYPE_STANDARD, - 'value' => 'black', - 'alpha' => 40 - ) - ); - - private $softEdges = array( - 'size' => null - ); - - /** - * Get Object State - * - * @return bool - */ - - public function getObjectState() - { - return $this->objectState; - } - - /** - * Change Object State to True - * - * @return PHPExcel_Chart_GridLines - */ - - private function activateObject() - { - $this->objectState = true; - - return $this; - } - - /** - * Set Line Color Properties - * - * @param string $value - * @param int $alpha - * @param string $type - */ - - public function setLineColorProperties($value, $alpha = 0, $type = self::EXCEL_COLOR_TYPE_STANDARD) - { - $this->activateObject() - ->lineProperties['color'] = $this->setColorProperties( - $value, - $alpha, - $type - ); - } - - /** - * Set Line Color Properties - * - * @param float $line_width - * @param string $compound_type - * @param string $dash_type - * @param string $cap_type - * @param string $join_type - * @param string $head_arrow_type - * @param string $head_arrow_size - * @param string $end_arrow_type - * @param string $end_arrow_size - */ - - public function setLineStyleProperties($line_width = null, $compound_type = null, $dash_type = null, $cap_type = null, $join_type = null, $head_arrow_type = null, $head_arrow_size = null, $end_arrow_type = null, $end_arrow_size = null) - { - $this->activateObject(); - (!is_null($line_width)) - ? $this->lineProperties['style']['width'] = $this->getExcelPointsWidth((float) $line_width) - : null; - (!is_null($compound_type)) - ? $this->lineProperties['style']['compound'] = (string) $compound_type - : null; - (!is_null($dash_type)) - ? $this->lineProperties['style']['dash'] = (string) $dash_type - : null; - (!is_null($cap_type)) - ? $this->lineProperties['style']['cap'] = (string) $cap_type - : null; - (!is_null($join_type)) - ? $this->lineProperties['style']['join'] = (string) $join_type - : null; - (!is_null($head_arrow_type)) - ? $this->lineProperties['style']['arrow']['head']['type'] = (string) $head_arrow_type - : null; - (!is_null($head_arrow_size)) - ? $this->lineProperties['style']['arrow']['head']['size'] = (string) $head_arrow_size - : null; - (!is_null($end_arrow_type)) - ? $this->lineProperties['style']['arrow']['end']['type'] = (string) $end_arrow_type - : null; - (!is_null($end_arrow_size)) - ? $this->lineProperties['style']['arrow']['end']['size'] = (string) $end_arrow_size - : null; - } - - /** - * Get Line Color Property - * - * @param string $parameter - * - * @return string - */ - - public function getLineColorProperty($parameter) - { - return $this->lineProperties['color'][$parameter]; - } - - /** - * Get Line Style Property - * - * @param array|string $elements - * - * @return string - */ - - public function getLineStyleProperty($elements) - { - return $this->getArrayElementsValue($this->lineProperties['style'], $elements); - } - - /** - * Set Glow Properties - * - * @param float $size - * @param string $color_value - * @param int $color_alpha - * @param string $color_type - * - */ - - public function setGlowProperties($size, $color_value = null, $color_alpha = null, $color_type = null) - { - $this - ->activateObject() - ->setGlowSize($size) - ->setGlowColor($color_value, $color_alpha, $color_type); - } - - /** - * Get Glow Color Property - * - * @param string $property - * - * @return string - */ - - public function getGlowColor($property) - { - return $this->glowProperties['color'][$property]; - } - - /** - * Get Glow Size - * - * @return string - */ - - public function getGlowSize() - { - return $this->glowProperties['size']; - } - - /** - * Set Glow Size - * - * @param float $size - * - * @return PHPExcel_Chart_GridLines - */ - - private function setGlowSize($size) - { - $this->glowProperties['size'] = $this->getExcelPointsWidth((float) $size); - - return $this; - } - - /** - * Set Glow Color - * - * @param string $color - * @param int $alpha - * @param string $type - * - * @return PHPExcel_Chart_GridLines - */ - - private function setGlowColor($color, $alpha, $type) - { - if (!is_null($color)) { - $this->glowProperties['color']['value'] = (string) $color; - } - if (!is_null($alpha)) { - $this->glowProperties['color']['alpha'] = $this->getTrueAlpha((int) $alpha); - } - if (!is_null($type)) { - $this->glowProperties['color']['type'] = (string) $type; - } - - return $this; - } - - /** - * Get Line Style Arrow Parameters - * - * @param string $arrow_selector - * @param string $property_selector - * - * @return string - */ - - public function getLineStyleArrowParameters($arrow_selector, $property_selector) - { - return $this->getLineStyleArrowSize($this->lineProperties['style']['arrow'][$arrow_selector]['size'], $property_selector); - } - - /** - * Set Shadow Properties - * - * @param int $sh_presets - * @param string $sh_color_value - * @param string $sh_color_type - * @param int $sh_color_alpha - * @param string $sh_blur - * @param int $sh_angle - * @param float $sh_distance - * - */ - - public function setShadowProperties($sh_presets, $sh_color_value = null, $sh_color_type = null, $sh_color_alpha = null, $sh_blur = null, $sh_angle = null, $sh_distance = null) - { - $this->activateObject() - ->setShadowPresetsProperties((int) $sh_presets) - ->setShadowColor( - is_null($sh_color_value) ? $this->shadowProperties['color']['value'] : $sh_color_value, - is_null($sh_color_alpha) ? (int) $this->shadowProperties['color']['alpha'] : $this->getTrueAlpha($sh_color_alpha), - is_null($sh_color_type) ? $this->shadowProperties['color']['type'] : $sh_color_type - ) - ->setShadowBlur($sh_blur) - ->setShadowAngle($sh_angle) - ->setShadowDistance($sh_distance); - } - - /** - * Set Shadow Presets Properties - * - * @param int $shadow_presets - * - * @return PHPExcel_Chart_GridLines - */ - - private function setShadowPresetsProperties($shadow_presets) - { - $this->shadowProperties['presets'] = $shadow_presets; - $this->setShadowProperiesMapValues($this->getShadowPresetsMap($shadow_presets)); - - return $this; - } - - /** - * Set Shadow Properties Values - * - * @param array $properties_map - * @param * $reference - * - * @return PHPExcel_Chart_GridLines - */ - - private function setShadowProperiesMapValues(array $properties_map, &$reference = null) - { - $base_reference = $reference; - foreach ($properties_map as $property_key => $property_val) { - if (is_array($property_val)) { - if ($reference === null) { - $reference = & $this->shadowProperties[$property_key]; - } else { - $reference = & $reference[$property_key]; - } - $this->setShadowProperiesMapValues($property_val, $reference); - } else { - if ($base_reference === null) { - $this->shadowProperties[$property_key] = $property_val; - } else { - $reference[$property_key] = $property_val; - } - } - } - - return $this; - } - - /** - * Set Shadow Color - * - * @param string $color - * @param int $alpha - * @param string $type - * @return PHPExcel_Chart_GridLines - */ - private function setShadowColor($color, $alpha, $type) - { - if (!is_null($color)) { - $this->shadowProperties['color']['value'] = (string) $color; - } - if (!is_null($alpha)) { - $this->shadowProperties['color']['alpha'] = $this->getTrueAlpha((int) $alpha); - } - if (!is_null($type)) { - $this->shadowProperties['color']['type'] = (string) $type; - } - - return $this; - } - - /** - * Set Shadow Blur - * - * @param float $blur - * - * @return PHPExcel_Chart_GridLines - */ - private function setShadowBlur($blur) - { - if ($blur !== null) { - $this->shadowProperties['blur'] = (string) $this->getExcelPointsWidth($blur); - } - - return $this; - } - - /** - * Set Shadow Angle - * - * @param int $angle - * @return PHPExcel_Chart_GridLines - */ - - private function setShadowAngle($angle) - { - if ($angle !== null) { - $this->shadowProperties['direction'] = (string) $this->getExcelPointsAngle($angle); - } - - return $this; - } - - /** - * Set Shadow Distance - * - * @param float $distance - * @return PHPExcel_Chart_GridLines - */ - private function setShadowDistance($distance) - { - if ($distance !== null) { - $this->shadowProperties['distance'] = (string) $this->getExcelPointsWidth($distance); - } - - return $this; - } - - /** - * Get Shadow Property - * - * @param string $elements - * @param array $elements - * @return string - */ - public function getShadowProperty($elements) - { - return $this->getArrayElementsValue($this->shadowProperties, $elements); - } - - /** - * Set Soft Edges Size - * - * @param float $size - */ - public function setSoftEdgesSize($size) - { - if (!is_null($size)) { - $this->activateObject(); - $softEdges['size'] = (string) $this->getExcelPointsWidth($size); - } - } - - /** - * Get Soft Edges Size - * - * @return string - */ - public function getSoftEdgesSize() - { - return $this->softEdges['size']; - } -} diff --git a/Utils/PHPExcel/Chart/Layout.php b/Utils/PHPExcel/Chart/Layout.php deleted file mode 100644 index 7fef074..0000000 --- a/Utils/PHPExcel/Chart/Layout.php +++ /dev/null @@ -1,486 +0,0 @@ -layoutTarget = $layout['layoutTarget']; - } - if (isset($layout['xMode'])) { - $this->xMode = $layout['xMode']; - } - if (isset($layout['yMode'])) { - $this->yMode = $layout['yMode']; - } - if (isset($layout['x'])) { - $this->xPos = (float) $layout['x']; - } - if (isset($layout['y'])) { - $this->yPos = (float) $layout['y']; - } - if (isset($layout['w'])) { - $this->width = (float) $layout['w']; - } - if (isset($layout['h'])) { - $this->height = (float) $layout['h']; - } - } - - /** - * Get Layout Target - * - * @return string - */ - public function getLayoutTarget() - { - return $this->layoutTarget; - } - - /** - * Set Layout Target - * - * @param Layout Target $value - * @return PHPExcel_Chart_Layout - */ - public function setLayoutTarget($value) - { - $this->layoutTarget = $value; - return $this; - } - - /** - * Get X-Mode - * - * @return string - */ - public function getXMode() - { - return $this->xMode; - } - - /** - * Set X-Mode - * - * @param X-Mode $value - * @return PHPExcel_Chart_Layout - */ - public function setXMode($value) - { - $this->xMode = $value; - return $this; - } - - /** - * Get Y-Mode - * - * @return string - */ - public function getYMode() - { - return $this->yMode; - } - - /** - * Set Y-Mode - * - * @param Y-Mode $value - * @return PHPExcel_Chart_Layout - */ - public function setYMode($value) - { - $this->yMode = $value; - return $this; - } - - /** - * Get X-Position - * - * @return number - */ - public function getXPosition() - { - return $this->xPos; - } - - /** - * Set X-Position - * - * @param X-Position $value - * @return PHPExcel_Chart_Layout - */ - public function setXPosition($value) - { - $this->xPos = $value; - return $this; - } - - /** - * Get Y-Position - * - * @return number - */ - public function getYPosition() - { - return $this->yPos; - } - - /** - * Set Y-Position - * - * @param Y-Position $value - * @return PHPExcel_Chart_Layout - */ - public function setYPosition($value) - { - $this->yPos = $value; - return $this; - } - - /** - * Get Width - * - * @return number - */ - public function getWidth() - { - return $this->width; - } - - /** - * Set Width - * - * @param Width $value - * @return PHPExcel_Chart_Layout - */ - public function setWidth($value) - { - $this->width = $value; - return $this; - } - - /** - * Get Height - * - * @return number - */ - public function getHeight() - { - return $this->height; - } - - /** - * Set Height - * - * @param Height $value - * @return PHPExcel_Chart_Layout - */ - public function setHeight($value) - { - $this->height = $value; - return $this; - } - - - /** - * Get show legend key - * - * @return boolean - */ - public function getShowLegendKey() - { - return $this->showLegendKey; - } - - /** - * Set show legend key - * Specifies that legend keys should be shown in data labels. - * - * @param boolean $value Show legend key - * @return PHPExcel_Chart_Layout - */ - public function setShowLegendKey($value) - { - $this->showLegendKey = $value; - return $this; - } - - /** - * Get show value - * - * @return boolean - */ - public function getShowVal() - { - return $this->showVal; - } - - /** - * Set show val - * Specifies that the value should be shown in data labels. - * - * @param boolean $value Show val - * @return PHPExcel_Chart_Layout - */ - public function setShowVal($value) - { - $this->showVal = $value; - return $this; - } - - /** - * Get show category name - * - * @return boolean - */ - public function getShowCatName() - { - return $this->showCatName; - } - - /** - * Set show cat name - * Specifies that the category name should be shown in data labels. - * - * @param boolean $value Show cat name - * @return PHPExcel_Chart_Layout - */ - public function setShowCatName($value) - { - $this->showCatName = $value; - return $this; - } - - /** - * Get show data series name - * - * @return boolean - */ - public function getShowSerName() - { - return $this->showSerName; - } - - /** - * Set show ser name - * Specifies that the series name should be shown in data labels. - * - * @param boolean $value Show series name - * @return PHPExcel_Chart_Layout - */ - public function setShowSerName($value) - { - $this->showSerName = $value; - return $this; - } - - /** - * Get show percentage - * - * @return boolean - */ - public function getShowPercent() - { - return $this->showPercent; - } - - /** - * Set show percentage - * Specifies that the percentage should be shown in data labels. - * - * @param boolean $value Show percentage - * @return PHPExcel_Chart_Layout - */ - public function setShowPercent($value) - { - $this->showPercent = $value; - return $this; - } - - /** - * Get show bubble size - * - * @return boolean - */ - public function getShowBubbleSize() - { - return $this->showBubbleSize; - } - - /** - * Set show bubble size - * Specifies that the bubble size should be shown in data labels. - * - * @param boolean $value Show bubble size - * @return PHPExcel_Chart_Layout - */ - public function setShowBubbleSize($value) - { - $this->showBubbleSize = $value; - return $this; - } - - /** - * Get show leader lines - * - * @return boolean - */ - public function getShowLeaderLines() - { - return $this->showLeaderLines; - } - - /** - * Set show leader lines - * Specifies that leader lines should be shown in data labels. - * - * @param boolean $value Show leader lines - * @return PHPExcel_Chart_Layout - */ - public function setShowLeaderLines($value) - { - $this->showLeaderLines = $value; - return $this; - } -} diff --git a/Utils/PHPExcel/Chart/Legend.php b/Utils/PHPExcel/Chart/Legend.php deleted file mode 100644 index e850eb5..0000000 --- a/Utils/PHPExcel/Chart/Legend.php +++ /dev/null @@ -1,170 +0,0 @@ - self::POSITION_BOTTOM, - self::xlLegendPositionCorner => self::POSITION_TOPRIGHT, - self::xlLegendPositionCustom => '??', - self::xlLegendPositionLeft => self::POSITION_LEFT, - self::xlLegendPositionRight => self::POSITION_RIGHT, - self::xlLegendPositionTop => self::POSITION_TOP - ); - - /** - * Legend position - * - * @var string - */ - private $position = self::POSITION_RIGHT; - - /** - * Allow overlay of other elements? - * - * @var boolean - */ - private $overlay = true; - - /** - * Legend Layout - * - * @var PHPExcel_Chart_Layout - */ - private $layout = null; - - - /** - * Create a new PHPExcel_Chart_Legend - */ - public function __construct($position = self::POSITION_RIGHT, PHPExcel_Chart_Layout $layout = null, $overlay = false) - { - $this->setPosition($position); - $this->layout = $layout; - $this->setOverlay($overlay); - } - - /** - * Get legend position as an excel string value - * - * @return string - */ - public function getPosition() - { - return $this->position; - } - - /** - * Get legend position using an excel string value - * - * @param string $position - */ - public function setPosition($position = self::POSITION_RIGHT) - { - if (!in_array($position, self::$positionXLref)) { - return false; - } - - $this->position = $position; - return true; - } - - /** - * Get legend position as an Excel internal numeric value - * - * @return number - */ - public function getPositionXL() - { - return array_search($this->position, self::$positionXLref); - } - - /** - * Set legend position using an Excel internal numeric value - * - * @param number $positionXL - */ - public function setPositionXL($positionXL = self::xlLegendPositionRight) - { - if (!array_key_exists($positionXL, self::$positionXLref)) { - return false; - } - - $this->position = self::$positionXLref[$positionXL]; - return true; - } - - /** - * Get allow overlay of other elements? - * - * @return boolean - */ - public function getOverlay() - { - return $this->overlay; - } - - /** - * Set allow overlay of other elements? - * - * @param boolean $overlay - * @return boolean - */ - public function setOverlay($overlay = false) - { - if (!is_bool($overlay)) { - return false; - } - - $this->overlay = $overlay; - return true; - } - - /** - * Get Layout - * - * @return PHPExcel_Chart_Layout - */ - public function getLayout() - { - return $this->layout; - } -} diff --git a/Utils/PHPExcel/Chart/PlotArea.php b/Utils/PHPExcel/Chart/PlotArea.php deleted file mode 100644 index 551cc51..0000000 --- a/Utils/PHPExcel/Chart/PlotArea.php +++ /dev/null @@ -1,126 +0,0 @@ -layout = $layout; - $this->plotSeries = $plotSeries; - } - - /** - * Get Layout - * - * @return PHPExcel_Chart_Layout - */ - public function getLayout() - { - return $this->layout; - } - - /** - * Get Number of Plot Groups - * - * @return array of PHPExcel_Chart_DataSeries - */ - public function getPlotGroupCount() - { - return count($this->plotSeries); - } - - /** - * Get Number of Plot Series - * - * @return integer - */ - public function getPlotSeriesCount() - { - $seriesCount = 0; - foreach ($this->plotSeries as $plot) { - $seriesCount += $plot->getPlotSeriesCount(); - } - return $seriesCount; - } - - /** - * Get Plot Series - * - * @return array of PHPExcel_Chart_DataSeries - */ - public function getPlotGroup() - { - return $this->plotSeries; - } - - /** - * Get Plot Series by Index - * - * @return PHPExcel_Chart_DataSeries - */ - public function getPlotGroupByIndex($index) - { - return $this->plotSeries[$index]; - } - - /** - * Set Plot Series - * - * @param [PHPExcel_Chart_DataSeries] - * @return PHPExcel_Chart_PlotArea - */ - public function setPlotSeries($plotSeries = array()) - { - $this->plotSeries = $plotSeries; - - return $this; - } - - public function refresh(PHPExcel_Worksheet $worksheet) - { - foreach ($this->plotSeries as $plotSeries) { - $plotSeries->refresh($worksheet); - } - } -} diff --git a/Utils/PHPExcel/Chart/Properties.php b/Utils/PHPExcel/Chart/Properties.php deleted file mode 100644 index 9bb6e93..0000000 --- a/Utils/PHPExcel/Chart/Properties.php +++ /dev/null @@ -1,363 +0,0 @@ - (string) $type, - 'value' => (string) $color, - 'alpha' => (string) $this->getTrueAlpha($alpha) - ); - } - - protected function getLineStyleArrowSize($array_selector, $array_kay_selector) - { - $sizes = array( - 1 => array('w' => 'sm', 'len' => 'sm'), - 2 => array('w' => 'sm', 'len' => 'med'), - 3 => array('w' => 'sm', 'len' => 'lg'), - 4 => array('w' => 'med', 'len' => 'sm'), - 5 => array('w' => 'med', 'len' => 'med'), - 6 => array('w' => 'med', 'len' => 'lg'), - 7 => array('w' => 'lg', 'len' => 'sm'), - 8 => array('w' => 'lg', 'len' => 'med'), - 9 => array('w' => 'lg', 'len' => 'lg') - ); - - return $sizes[$array_selector][$array_kay_selector]; - } - - protected function getShadowPresetsMap($shadow_presets_option) - { - $presets_options = array( - //OUTER - 1 => array( - 'effect' => 'outerShdw', - 'blur' => '50800', - 'distance' => '38100', - 'direction' => '2700000', - 'algn' => 'tl', - 'rotWithShape' => '0' - ), - 2 => array( - 'effect' => 'outerShdw', - 'blur' => '50800', - 'distance' => '38100', - 'direction' => '5400000', - 'algn' => 't', - 'rotWithShape' => '0' - ), - 3 => array( - 'effect' => 'outerShdw', - 'blur' => '50800', - 'distance' => '38100', - 'direction' => '8100000', - 'algn' => 'tr', - 'rotWithShape' => '0' - ), - 4 => array( - 'effect' => 'outerShdw', - 'blur' => '50800', - 'distance' => '38100', - 'algn' => 'l', - 'rotWithShape' => '0' - ), - 5 => array( - 'effect' => 'outerShdw', - 'size' => array( - 'sx' => '102000', - 'sy' => '102000' - ) - , - 'blur' => '63500', - 'distance' => '38100', - 'algn' => 'ctr', - 'rotWithShape' => '0' - ), - 6 => array( - 'effect' => 'outerShdw', - 'blur' => '50800', - 'distance' => '38100', - 'direction' => '10800000', - 'algn' => 'r', - 'rotWithShape' => '0' - ), - 7 => array( - 'effect' => 'outerShdw', - 'blur' => '50800', - 'distance' => '38100', - 'direction' => '18900000', - 'algn' => 'bl', - 'rotWithShape' => '0' - ), - 8 => array( - 'effect' => 'outerShdw', - 'blur' => '50800', - 'distance' => '38100', - 'direction' => '16200000', - 'rotWithShape' => '0' - ), - 9 => array( - 'effect' => 'outerShdw', - 'blur' => '50800', - 'distance' => '38100', - 'direction' => '13500000', - 'algn' => 'br', - 'rotWithShape' => '0' - ), - //INNER - 10 => array( - 'effect' => 'innerShdw', - 'blur' => '63500', - 'distance' => '50800', - 'direction' => '2700000', - ), - 11 => array( - 'effect' => 'innerShdw', - 'blur' => '63500', - 'distance' => '50800', - 'direction' => '5400000', - ), - 12 => array( - 'effect' => 'innerShdw', - 'blur' => '63500', - 'distance' => '50800', - 'direction' => '8100000', - ), - 13 => array( - 'effect' => 'innerShdw', - 'blur' => '63500', - 'distance' => '50800', - ), - 14 => array( - 'effect' => 'innerShdw', - 'blur' => '114300', - ), - 15 => array( - 'effect' => 'innerShdw', - 'blur' => '63500', - 'distance' => '50800', - 'direction' => '10800000', - ), - 16 => array( - 'effect' => 'innerShdw', - 'blur' => '63500', - 'distance' => '50800', - 'direction' => '18900000', - ), - 17 => array( - 'effect' => 'innerShdw', - 'blur' => '63500', - 'distance' => '50800', - 'direction' => '16200000', - ), - 18 => array( - 'effect' => 'innerShdw', - 'blur' => '63500', - 'distance' => '50800', - 'direction' => '13500000', - ), - //perspective - 19 => array( - 'effect' => 'outerShdw', - 'blur' => '152400', - 'distance' => '317500', - 'size' => array( - 'sx' => '90000', - 'sy' => '-19000', - ), - 'direction' => '5400000', - 'rotWithShape' => '0', - ), - 20 => array( - 'effect' => 'outerShdw', - 'blur' => '76200', - 'direction' => '18900000', - 'size' => array( - 'sy' => '23000', - 'kx' => '-1200000', - ), - 'algn' => 'bl', - 'rotWithShape' => '0', - ), - 21 => array( - 'effect' => 'outerShdw', - 'blur' => '76200', - 'direction' => '13500000', - 'size' => array( - 'sy' => '23000', - 'kx' => '1200000', - ), - 'algn' => 'br', - 'rotWithShape' => '0', - ), - 22 => array( - 'effect' => 'outerShdw', - 'blur' => '76200', - 'distance' => '12700', - 'direction' => '2700000', - 'size' => array( - 'sy' => '-23000', - 'kx' => '-800400', - ), - 'algn' => 'bl', - 'rotWithShape' => '0', - ), - 23 => array( - 'effect' => 'outerShdw', - 'blur' => '76200', - 'distance' => '12700', - 'direction' => '8100000', - 'size' => array( - 'sy' => '-23000', - 'kx' => '800400', - ), - 'algn' => 'br', - 'rotWithShape' => '0', - ), - ); - - return $presets_options[$shadow_presets_option]; - } - - protected function getArrayElementsValue($properties, $elements) - { - $reference = & $properties; - if (!is_array($elements)) { - return $reference[$elements]; - } else { - foreach ($elements as $keys) { - $reference = & $reference[$keys]; - } - return $reference; - } - return $this; - } -} diff --git a/Utils/PHPExcel/Chart/Renderer/PHP Charting Libraries.txt b/Utils/PHPExcel/Chart/Renderer/PHP Charting Libraries.txt deleted file mode 100644 index 9334f68..0000000 --- a/Utils/PHPExcel/Chart/Renderer/PHP Charting Libraries.txt +++ /dev/null @@ -1,20 +0,0 @@ -ChartDirector - http://www.advsofteng.com/cdphp.html - -GraPHPite - http://graphpite.sourceforge.net/ - -JpGraph - http://www.aditus.nu/jpgraph/ - -LibChart - http://naku.dohcrew.com/libchart/pages/introduction/ - -pChart - http://pchart.sourceforge.net/ - -TeeChart - http://www.steema.com/products/teechart/overview.html - -PHPGraphLib - http://www.ebrueggeman.com/phpgraphlib \ No newline at end of file diff --git a/Utils/PHPExcel/Chart/Renderer/jpgraph.php b/Utils/PHPExcel/Chart/Renderer/jpgraph.php deleted file mode 100644 index b3d7396..0000000 --- a/Utils/PHPExcel/Chart/Renderer/jpgraph.php +++ /dev/null @@ -1,883 +0,0 @@ - MARK_DIAMOND, - 'square' => MARK_SQUARE, - 'triangle' => MARK_UTRIANGLE, - 'x' => MARK_X, - 'star' => MARK_STAR, - 'dot' => MARK_FILLEDCIRCLE, - 'dash' => MARK_DTRIANGLE, - 'circle' => MARK_CIRCLE, - 'plus' => MARK_CROSS - ); - - - private $chart; - - private $graph; - - private static $plotColour = 0; - - private static $plotMark = 0; - - - private function formatPointMarker($seriesPlot, $markerID) - { - $plotMarkKeys = array_keys(self::$markSet); - if (is_null($markerID)) { - // Use default plot marker (next marker in the series) - self::$plotMark %= count(self::$markSet); - $seriesPlot->mark->SetType(self::$markSet[$plotMarkKeys[self::$plotMark++]]); - } elseif ($markerID !== 'none') { - // Use specified plot marker (if it exists) - if (isset(self::$markSet[$markerID])) { - $seriesPlot->mark->SetType(self::$markSet[$markerID]); - } else { - // If the specified plot marker doesn't exist, use default plot marker (next marker in the series) - self::$plotMark %= count(self::$markSet); - $seriesPlot->mark->SetType(self::$markSet[$plotMarkKeys[self::$plotMark++]]); - } - } else { - // Hide plot marker - $seriesPlot->mark->Hide(); - } - $seriesPlot->mark->SetColor(self::$colourSet[self::$plotColour]); - $seriesPlot->mark->SetFillColor(self::$colourSet[self::$plotColour]); - $seriesPlot->SetColor(self::$colourSet[self::$plotColour++]); - - return $seriesPlot; - } - - - private function formatDataSetLabels($groupID, $datasetLabels, $labelCount, $rotation = '') - { - $datasetLabelFormatCode = $this->chart->getPlotArea()->getPlotGroupByIndex($groupID)->getPlotCategoryByIndex(0)->getFormatCode(); - if (!is_null($datasetLabelFormatCode)) { - // Retrieve any label formatting code - $datasetLabelFormatCode = stripslashes($datasetLabelFormatCode); - } - - $testCurrentIndex = 0; - foreach ($datasetLabels as $i => $datasetLabel) { - if (is_array($datasetLabel)) { - if ($rotation == 'bar') { - $datasetLabels[$i] = implode(" ", $datasetLabel); - } else { - $datasetLabel = array_reverse($datasetLabel); - $datasetLabels[$i] = implode("\n", $datasetLabel); - } - } else { - // Format labels according to any formatting code - if (!is_null($datasetLabelFormatCode)) { - $datasetLabels[$i] = PHPExcel_Style_NumberFormat::toFormattedString($datasetLabel, $datasetLabelFormatCode); - } - } - ++$testCurrentIndex; - } - - return $datasetLabels; - } - - - private function percentageSumCalculation($groupID, $seriesCount) - { - // Adjust our values to a percentage value across all series in the group - for ($i = 0; $i < $seriesCount; ++$i) { - if ($i == 0) { - $sumValues = $this->chart->getPlotArea()->getPlotGroupByIndex($groupID)->getPlotValuesByIndex($i)->getDataValues(); - } else { - $nextValues = $this->chart->getPlotArea()->getPlotGroupByIndex($groupID)->getPlotValuesByIndex($i)->getDataValues(); - foreach ($nextValues as $k => $value) { - if (isset($sumValues[$k])) { - $sumValues[$k] += $value; - } else { - $sumValues[$k] = $value; - } - } - } - } - - return $sumValues; - } - - - private function percentageAdjustValues($dataValues, $sumValues) - { - foreach ($dataValues as $k => $dataValue) { - $dataValues[$k] = $dataValue / $sumValues[$k] * 100; - } - - return $dataValues; - } - - - private function getCaption($captionElement) - { - // Read any caption - $caption = (!is_null($captionElement)) ? $captionElement->getCaption() : null; - // Test if we have a title caption to display - if (!is_null($caption)) { - // If we do, it could be a plain string or an array - if (is_array($caption)) { - // Implode an array to a plain string - $caption = implode('', $caption); - } - } - return $caption; - } - - - private function renderTitle() - { - $title = $this->getCaption($this->chart->getTitle()); - if (!is_null($title)) { - $this->graph->title->Set($title); - } - } - - - private function renderLegend() - { - $legend = $this->chart->getLegend(); - if (!is_null($legend)) { - $legendPosition = $legend->getPosition(); - $legendOverlay = $legend->getOverlay(); - switch ($legendPosition) { - case 'r': - $this->graph->legend->SetPos(0.01, 0.5, 'right', 'center'); // right - $this->graph->legend->SetColumns(1); - break; - case 'l': - $this->graph->legend->SetPos(0.01, 0.5, 'left', 'center'); // left - $this->graph->legend->SetColumns(1); - break; - case 't': - $this->graph->legend->SetPos(0.5, 0.01, 'center', 'top'); // top - break; - case 'b': - $this->graph->legend->SetPos(0.5, 0.99, 'center', 'bottom'); // bottom - break; - default: - $this->graph->legend->SetPos(0.01, 0.01, 'right', 'top'); // top-right - $this->graph->legend->SetColumns(1); - break; - } - } else { - $this->graph->legend->Hide(); - } - } - - - private function renderCartesianPlotArea($type = 'textlin') - { - $this->graph = new Graph(self::$width, self::$height); - $this->graph->SetScale($type); - - $this->renderTitle(); - - // Rotate for bar rather than column chart - $rotation = $this->chart->getPlotArea()->getPlotGroupByIndex(0)->getPlotDirection(); - $reverse = ($rotation == 'bar') ? true : false; - - $xAxisLabel = $this->chart->getXAxisLabel(); - if (!is_null($xAxisLabel)) { - $title = $this->getCaption($xAxisLabel); - if (!is_null($title)) { - $this->graph->xaxis->SetTitle($title, 'center'); - $this->graph->xaxis->title->SetMargin(35); - if ($reverse) { - $this->graph->xaxis->title->SetAngle(90); - $this->graph->xaxis->title->SetMargin(90); - } - } - } - - $yAxisLabel = $this->chart->getYAxisLabel(); - if (!is_null($yAxisLabel)) { - $title = $this->getCaption($yAxisLabel); - if (!is_null($title)) { - $this->graph->yaxis->SetTitle($title, 'center'); - if ($reverse) { - $this->graph->yaxis->title->SetAngle(0); - $this->graph->yaxis->title->SetMargin(-55); - } - } - } - } - - - private function renderPiePlotArea($doughnut = false) - { - $this->graph = new PieGraph(self::$width, self::$height); - - $this->renderTitle(); - } - - - private function renderRadarPlotArea() - { - $this->graph = new RadarGraph(self::$width, self::$height); - $this->graph->SetScale('lin'); - - $this->renderTitle(); - } - - - private function renderPlotLine($groupID, $filled = false, $combination = false, $dimensions = '2d') - { - $grouping = $this->chart->getPlotArea()->getPlotGroupByIndex($groupID)->getPlotGrouping(); - - $labelCount = count($this->chart->getPlotArea()->getPlotGroupByIndex($groupID)->getPlotValuesByIndex(0)->getPointCount()); - if ($labelCount > 0) { - $datasetLabels = $this->chart->getPlotArea()->getPlotGroupByIndex($groupID)->getPlotCategoryByIndex(0)->getDataValues(); - $datasetLabels = $this->formatDataSetLabels($groupID, $datasetLabels, $labelCount); - $this->graph->xaxis->SetTickLabels($datasetLabels); - } - - $seriesCount = $this->chart->getPlotArea()->getPlotGroupByIndex($groupID)->getPlotSeriesCount(); - $seriesPlots = array(); - if ($grouping == 'percentStacked') { - $sumValues = $this->percentageSumCalculation($groupID, $seriesCount); - } - - // Loop through each data series in turn - for ($i = 0; $i < $seriesCount; ++$i) { - $dataValues = $this->chart->getPlotArea()->getPlotGroupByIndex($groupID)->getPlotValuesByIndex($i)->getDataValues(); - $marker = $this->chart->getPlotArea()->getPlotGroupByIndex($groupID)->getPlotValuesByIndex($i)->getPointMarker(); - - if ($grouping == 'percentStacked') { - $dataValues = $this->percentageAdjustValues($dataValues, $sumValues); - } - - // Fill in any missing values in the $dataValues array - $testCurrentIndex = 0; - foreach ($dataValues as $k => $dataValue) { - while ($k != $testCurrentIndex) { - $dataValues[$testCurrentIndex] = null; - ++$testCurrentIndex; - } - ++$testCurrentIndex; - } - - $seriesPlot = new LinePlot($dataValues); - if ($combination) { - $seriesPlot->SetBarCenter(); - } - - if ($filled) { - $seriesPlot->SetFilled(true); - $seriesPlot->SetColor('black'); - $seriesPlot->SetFillColor(self::$colourSet[self::$plotColour++]); - } else { - // Set the appropriate plot marker - $this->formatPointMarker($seriesPlot, $marker); - } - $dataLabel = $this->chart->getPlotArea()->getPlotGroupByIndex($groupID)->getPlotLabelByIndex($i)->getDataValue(); - $seriesPlot->SetLegend($dataLabel); - - $seriesPlots[] = $seriesPlot; - } - - if ($grouping == 'standard') { - $groupPlot = $seriesPlots; - } else { - $groupPlot = new AccLinePlot($seriesPlots); - } - $this->graph->Add($groupPlot); - } - - - private function renderPlotBar($groupID, $dimensions = '2d') - { - $rotation = $this->chart->getPlotArea()->getPlotGroupByIndex($groupID)->getPlotDirection(); - // Rotate for bar rather than column chart - if (($groupID == 0) && ($rotation == 'bar')) { - $this->graph->Set90AndMargin(); - } - $grouping = $this->chart->getPlotArea()->getPlotGroupByIndex($groupID)->getPlotGrouping(); - - $labelCount = count($this->chart->getPlotArea()->getPlotGroupByIndex($groupID)->getPlotValuesByIndex(0)->getPointCount()); - if ($labelCount > 0) { - $datasetLabels = $this->chart->getPlotArea()->getPlotGroupByIndex($groupID)->getPlotCategoryByIndex(0)->getDataValues(); - $datasetLabels = $this->formatDataSetLabels($groupID, $datasetLabels, $labelCount, $rotation); - // Rotate for bar rather than column chart - if ($rotation == 'bar') { - $datasetLabels = array_reverse($datasetLabels); - $this->graph->yaxis->SetPos('max'); - $this->graph->yaxis->SetLabelAlign('center', 'top'); - $this->graph->yaxis->SetLabelSide(SIDE_RIGHT); - } - $this->graph->xaxis->SetTickLabels($datasetLabels); - } - - - $seriesCount = $this->chart->getPlotArea()->getPlotGroupByIndex($groupID)->getPlotSeriesCount(); - $seriesPlots = array(); - if ($grouping == 'percentStacked') { - $sumValues = $this->percentageSumCalculation($groupID, $seriesCount); - } - - // Loop through each data series in turn - for ($j = 0; $j < $seriesCount; ++$j) { - $dataValues = $this->chart->getPlotArea()->getPlotGroupByIndex($groupID)->getPlotValuesByIndex($j)->getDataValues(); - if ($grouping == 'percentStacked') { - $dataValues = $this->percentageAdjustValues($dataValues, $sumValues); - } - - // Fill in any missing values in the $dataValues array - $testCurrentIndex = 0; - foreach ($dataValues as $k => $dataValue) { - while ($k != $testCurrentIndex) { - $dataValues[$testCurrentIndex] = null; - ++$testCurrentIndex; - } - ++$testCurrentIndex; - } - - // Reverse the $dataValues order for bar rather than column chart - if ($rotation == 'bar') { - $dataValues = array_reverse($dataValues); - } - $seriesPlot = new BarPlot($dataValues); - $seriesPlot->SetColor('black'); - $seriesPlot->SetFillColor(self::$colourSet[self::$plotColour++]); - if ($dimensions == '3d') { - $seriesPlot->SetShadow(); - } - if (!$this->chart->getPlotArea()->getPlotGroupByIndex($groupID)->getPlotLabelByIndex($j)) { - $dataLabel = ''; - } else { - $dataLabel = $this->chart->getPlotArea()->getPlotGroupByIndex($groupID)->getPlotLabelByIndex($j)->getDataValue(); - } - $seriesPlot->SetLegend($dataLabel); - - $seriesPlots[] = $seriesPlot; - } - // Reverse the plot order for bar rather than column chart - if (($rotation == 'bar') && (!($grouping == 'percentStacked'))) { - $seriesPlots = array_reverse($seriesPlots); - } - - if ($grouping == 'clustered') { - $groupPlot = new GroupBarPlot($seriesPlots); - } elseif ($grouping == 'standard') { - $groupPlot = new GroupBarPlot($seriesPlots); - } else { - $groupPlot = new AccBarPlot($seriesPlots); - if ($dimensions == '3d') { - $groupPlot->SetShadow(); - } - } - - $this->graph->Add($groupPlot); - } - - - private function renderPlotScatter($groupID, $bubble) - { - $grouping = $this->chart->getPlotArea()->getPlotGroupByIndex($groupID)->getPlotGrouping(); - $scatterStyle = $bubbleSize = $this->chart->getPlotArea()->getPlotGroupByIndex($groupID)->getPlotStyle(); - - $seriesCount = $this->chart->getPlotArea()->getPlotGroupByIndex($groupID)->getPlotSeriesCount(); - $seriesPlots = array(); - - // Loop through each data series in turn - for ($i = 0; $i < $seriesCount; ++$i) { - $dataValuesY = $this->chart->getPlotArea()->getPlotGroupByIndex($groupID)->getPlotCategoryByIndex($i)->getDataValues(); - $dataValuesX = $this->chart->getPlotArea()->getPlotGroupByIndex($groupID)->getPlotValuesByIndex($i)->getDataValues(); - - foreach ($dataValuesY as $k => $dataValueY) { - $dataValuesY[$k] = $k; - } - - $seriesPlot = new ScatterPlot($dataValuesX, $dataValuesY); - if ($scatterStyle == 'lineMarker') { - $seriesPlot->SetLinkPoints(); - $seriesPlot->link->SetColor(self::$colourSet[self::$plotColour]); - } elseif ($scatterStyle == 'smoothMarker') { - $spline = new Spline($dataValuesY, $dataValuesX); - list($splineDataY, $splineDataX) = $spline->Get(count($dataValuesX) * self::$width / 20); - $lplot = new LinePlot($splineDataX, $splineDataY); - $lplot->SetColor(self::$colourSet[self::$plotColour]); - - $this->graph->Add($lplot); - } - - if ($bubble) { - $this->formatPointMarker($seriesPlot, 'dot'); - $seriesPlot->mark->SetColor('black'); - $seriesPlot->mark->SetSize($bubbleSize); - } else { - $marker = $this->chart->getPlotArea()->getPlotGroupByIndex($groupID)->getPlotValuesByIndex($i)->getPointMarker(); - $this->formatPointMarker($seriesPlot, $marker); - } - $dataLabel = $this->chart->getPlotArea()->getPlotGroupByIndex($groupID)->getPlotLabelByIndex($i)->getDataValue(); - $seriesPlot->SetLegend($dataLabel); - - $this->graph->Add($seriesPlot); - } - } - - - private function renderPlotRadar($groupID) - { - $radarStyle = $this->chart->getPlotArea()->getPlotGroupByIndex($groupID)->getPlotStyle(); - - $seriesCount = $this->chart->getPlotArea()->getPlotGroupByIndex($groupID)->getPlotSeriesCount(); - $seriesPlots = array(); - - // Loop through each data series in turn - for ($i = 0; $i < $seriesCount; ++$i) { - $dataValuesY = $this->chart->getPlotArea()->getPlotGroupByIndex($groupID)->getPlotCategoryByIndex($i)->getDataValues(); - $dataValuesX = $this->chart->getPlotArea()->getPlotGroupByIndex($groupID)->getPlotValuesByIndex($i)->getDataValues(); - $marker = $this->chart->getPlotArea()->getPlotGroupByIndex($groupID)->getPlotValuesByIndex($i)->getPointMarker(); - - $dataValues = array(); - foreach ($dataValuesY as $k => $dataValueY) { - $dataValues[$k] = implode(' ', array_reverse($dataValueY)); - } - $tmp = array_shift($dataValues); - $dataValues[] = $tmp; - $tmp = array_shift($dataValuesX); - $dataValuesX[] = $tmp; - - $this->graph->SetTitles(array_reverse($dataValues)); - - $seriesPlot = new RadarPlot(array_reverse($dataValuesX)); - - $dataLabel = $this->chart->getPlotArea()->getPlotGroupByIndex($groupID)->getPlotLabelByIndex($i)->getDataValue(); - $seriesPlot->SetColor(self::$colourSet[self::$plotColour++]); - if ($radarStyle == 'filled') { - $seriesPlot->SetFillColor(self::$colourSet[self::$plotColour]); - } - $this->formatPointMarker($seriesPlot, $marker); - $seriesPlot->SetLegend($dataLabel); - - $this->graph->Add($seriesPlot); - } - } - - - private function renderPlotContour($groupID) - { - $contourStyle = $this->chart->getPlotArea()->getPlotGroupByIndex($groupID)->getPlotStyle(); - - $seriesCount = $this->chart->getPlotArea()->getPlotGroupByIndex($groupID)->getPlotSeriesCount(); - $seriesPlots = array(); - - $dataValues = array(); - // Loop through each data series in turn - for ($i = 0; $i < $seriesCount; ++$i) { - $dataValuesY = $this->chart->getPlotArea()->getPlotGroupByIndex($groupID)->getPlotCategoryByIndex($i)->getDataValues(); - $dataValuesX = $this->chart->getPlotArea()->getPlotGroupByIndex($groupID)->getPlotValuesByIndex($i)->getDataValues(); - - $dataValues[$i] = $dataValuesX; - } - $seriesPlot = new ContourPlot($dataValues); - - $this->graph->Add($seriesPlot); - } - - - private function renderPlotStock($groupID) - { - $seriesCount = $this->chart->getPlotArea()->getPlotGroupByIndex($groupID)->getPlotSeriesCount(); - $plotOrder = $this->chart->getPlotArea()->getPlotGroupByIndex($groupID)->getPlotOrder(); - - $dataValues = array(); - // Loop through each data series in turn and build the plot arrays - foreach ($plotOrder as $i => $v) { - $dataValuesX = $this->chart->getPlotArea()->getPlotGroupByIndex($groupID)->getPlotValuesByIndex($v)->getDataValues(); - foreach ($dataValuesX as $j => $dataValueX) { - $dataValues[$plotOrder[$i]][$j] = $dataValueX; - } - } - if (empty($dataValues)) { - return; - } - - $dataValuesPlot = array(); - // Flatten the plot arrays to a single dimensional array to work with jpgraph - for ($j = 0; $j < count($dataValues[0]); ++$j) { - for ($i = 0; $i < $seriesCount; ++$i) { - $dataValuesPlot[] = $dataValues[$i][$j]; - } - } - - // Set the x-axis labels - $labelCount = count($this->chart->getPlotArea()->getPlotGroupByIndex($groupID)->getPlotValuesByIndex(0)->getPointCount()); - if ($labelCount > 0) { - $datasetLabels = $this->chart->getPlotArea()->getPlotGroupByIndex($groupID)->getPlotCategoryByIndex(0)->getDataValues(); - $datasetLabels = $this->formatDataSetLabels($groupID, $datasetLabels, $labelCount); - $this->graph->xaxis->SetTickLabels($datasetLabels); - } - - $seriesPlot = new StockPlot($dataValuesPlot); - $seriesPlot->SetWidth(20); - - $this->graph->Add($seriesPlot); - } - - - private function renderAreaChart($groupCount, $dimensions = '2d') - { - require_once(PHPExcel_Settings::getChartRendererPath().'jpgraph_line.php'); - - $this->renderCartesianPlotArea(); - - for ($i = 0; $i < $groupCount; ++$i) { - $this->renderPlotLine($i, true, false, $dimensions); - } - } - - - private function renderLineChart($groupCount, $dimensions = '2d') - { - require_once(PHPExcel_Settings::getChartRendererPath().'jpgraph_line.php'); - - $this->renderCartesianPlotArea(); - - for ($i = 0; $i < $groupCount; ++$i) { - $this->renderPlotLine($i, false, false, $dimensions); - } - } - - - private function renderBarChart($groupCount, $dimensions = '2d') - { - require_once(PHPExcel_Settings::getChartRendererPath().'jpgraph_bar.php'); - - $this->renderCartesianPlotArea(); - - for ($i = 0; $i < $groupCount; ++$i) { - $this->renderPlotBar($i, $dimensions); - } - } - - - private function renderScatterChart($groupCount) - { - require_once(PHPExcel_Settings::getChartRendererPath().'jpgraph_scatter.php'); - require_once(PHPExcel_Settings::getChartRendererPath().'jpgraph_regstat.php'); - require_once(PHPExcel_Settings::getChartRendererPath().'jpgraph_line.php'); - - $this->renderCartesianPlotArea('linlin'); - - for ($i = 0; $i < $groupCount; ++$i) { - $this->renderPlotScatter($i, false); - } - } - - - private function renderBubbleChart($groupCount) - { - require_once(PHPExcel_Settings::getChartRendererPath().'jpgraph_scatter.php'); - - $this->renderCartesianPlotArea('linlin'); - - for ($i = 0; $i < $groupCount; ++$i) { - $this->renderPlotScatter($i, true); - } - } - - - private function renderPieChart($groupCount, $dimensions = '2d', $doughnut = false, $multiplePlots = false) - { - require_once(PHPExcel_Settings::getChartRendererPath().'jpgraph_pie.php'); - if ($dimensions == '3d') { - require_once(PHPExcel_Settings::getChartRendererPath().'jpgraph_pie3d.php'); - } - - $this->renderPiePlotArea($doughnut); - - $iLimit = ($multiplePlots) ? $groupCount : 1; - for ($groupID = 0; $groupID < $iLimit; ++$groupID) { - $grouping = $this->chart->getPlotArea()->getPlotGroupByIndex($groupID)->getPlotGrouping(); - $exploded = $this->chart->getPlotArea()->getPlotGroupByIndex($groupID)->getPlotStyle(); - if ($groupID == 0) { - $labelCount = count($this->chart->getPlotArea()->getPlotGroupByIndex($groupID)->getPlotValuesByIndex(0)->getPointCount()); - if ($labelCount > 0) { - $datasetLabels = $this->chart->getPlotArea()->getPlotGroupByIndex($groupID)->getPlotCategoryByIndex(0)->getDataValues(); - $datasetLabels = $this->formatDataSetLabels($groupID, $datasetLabels, $labelCount); - } - } - - $seriesCount = $this->chart->getPlotArea()->getPlotGroupByIndex($groupID)->getPlotSeriesCount(); - $seriesPlots = array(); - // For pie charts, we only display the first series: doughnut charts generally display all series - $jLimit = ($multiplePlots) ? $seriesCount : 1; - // Loop through each data series in turn - for ($j = 0; $j < $jLimit; ++$j) { - $dataValues = $this->chart->getPlotArea()->getPlotGroupByIndex($groupID)->getPlotValuesByIndex($j)->getDataValues(); - - // Fill in any missing values in the $dataValues array - $testCurrentIndex = 0; - foreach ($dataValues as $k => $dataValue) { - while ($k != $testCurrentIndex) { - $dataValues[$testCurrentIndex] = null; - ++$testCurrentIndex; - } - ++$testCurrentIndex; - } - - if ($dimensions == '3d') { - $seriesPlot = new PiePlot3D($dataValues); - } else { - if ($doughnut) { - $seriesPlot = new PiePlotC($dataValues); - } else { - $seriesPlot = new PiePlot($dataValues); - } - } - - if ($multiplePlots) { - $seriesPlot->SetSize(($jLimit-$j) / ($jLimit * 4)); - } - - if ($doughnut) { - $seriesPlot->SetMidColor('white'); - } - - $seriesPlot->SetColor(self::$colourSet[self::$plotColour++]); - if (count($datasetLabels) > 0) { - $seriesPlot->SetLabels(array_fill(0, count($datasetLabels), '')); - } - if ($dimensions != '3d') { - $seriesPlot->SetGuideLines(false); - } - if ($j == 0) { - if ($exploded) { - $seriesPlot->ExplodeAll(); - } - $seriesPlot->SetLegends($datasetLabels); - } - - $this->graph->Add($seriesPlot); - } - } - } - - - private function renderRadarChart($groupCount) - { - require_once(PHPExcel_Settings::getChartRendererPath().'jpgraph_radar.php'); - - $this->renderRadarPlotArea(); - - for ($groupID = 0; $groupID < $groupCount; ++$groupID) { - $this->renderPlotRadar($groupID); - } - } - - - private function renderStockChart($groupCount) - { - require_once(PHPExcel_Settings::getChartRendererPath().'jpgraph_stock.php'); - - $this->renderCartesianPlotArea('intint'); - - for ($groupID = 0; $groupID < $groupCount; ++$groupID) { - $this->renderPlotStock($groupID); - } - } - - - private function renderContourChart($groupCount, $dimensions) - { - require_once(PHPExcel_Settings::getChartRendererPath().'jpgraph_contour.php'); - - $this->renderCartesianPlotArea('intint'); - - for ($i = 0; $i < $groupCount; ++$i) { - $this->renderPlotContour($i); - } - } - - - private function renderCombinationChart($groupCount, $dimensions, $outputDestination) - { - require_once(PHPExcel_Settings::getChartRendererPath().'jpgraph_line.php'); - require_once(PHPExcel_Settings::getChartRendererPath().'jpgraph_bar.php'); - require_once(PHPExcel_Settings::getChartRendererPath().'jpgraph_scatter.php'); - require_once(PHPExcel_Settings::getChartRendererPath().'jpgraph_regstat.php'); - require_once(PHPExcel_Settings::getChartRendererPath().'jpgraph_line.php'); - - $this->renderCartesianPlotArea(); - - for ($i = 0; $i < $groupCount; ++$i) { - $dimensions = null; - $chartType = $this->chart->getPlotArea()->getPlotGroupByIndex($i)->getPlotType(); - switch ($chartType) { - case 'area3DChart': - $dimensions = '3d'; - // no break - case 'areaChart': - $this->renderPlotLine($i, true, true, $dimensions); - break; - case 'bar3DChart': - $dimensions = '3d'; - // no break - case 'barChart': - $this->renderPlotBar($i, $dimensions); - break; - case 'line3DChart': - $dimensions = '3d'; - // no break - case 'lineChart': - $this->renderPlotLine($i, false, true, $dimensions); - break; - case 'scatterChart': - $this->renderPlotScatter($i, false); - break; - case 'bubbleChart': - $this->renderPlotScatter($i, true); - break; - default: - $this->graph = null; - return false; - } - } - - $this->renderLegend(); - - $this->graph->Stroke($outputDestination); - return true; - } - - - public function render($outputDestination) - { - self::$plotColour = 0; - - $groupCount = $this->chart->getPlotArea()->getPlotGroupCount(); - - $dimensions = null; - if ($groupCount == 1) { - $chartType = $this->chart->getPlotArea()->getPlotGroupByIndex(0)->getPlotType(); - } else { - $chartTypes = array(); - for ($i = 0; $i < $groupCount; ++$i) { - $chartTypes[] = $this->chart->getPlotArea()->getPlotGroupByIndex($i)->getPlotType(); - } - $chartTypes = array_unique($chartTypes); - if (count($chartTypes) == 1) { - $chartType = array_pop($chartTypes); - } elseif (count($chartTypes) == 0) { - echo 'Chart is not yet implemented
'; - return false; - } else { - return $this->renderCombinationChart($groupCount, $dimensions, $outputDestination); - } - } - - switch ($chartType) { - case 'area3DChart': - $dimensions = '3d'; - // no break - case 'areaChart': - $this->renderAreaChart($groupCount, $dimensions); - break; - case 'bar3DChart': - $dimensions = '3d'; - // no break - case 'barChart': - $this->renderBarChart($groupCount, $dimensions); - break; - case 'line3DChart': - $dimensions = '3d'; - // no break - case 'lineChart': - $this->renderLineChart($groupCount, $dimensions); - break; - case 'pie3DChart': - $dimensions = '3d'; - // no break - case 'pieChart': - $this->renderPieChart($groupCount, $dimensions, false, false); - break; - case 'doughnut3DChart': - $dimensions = '3d'; - // no break - case 'doughnutChart': - $this->renderPieChart($groupCount, $dimensions, true, true); - break; - case 'scatterChart': - $this->renderScatterChart($groupCount); - break; - case 'bubbleChart': - $this->renderBubbleChart($groupCount); - break; - case 'radarChart': - $this->renderRadarChart($groupCount); - break; - case 'surface3DChart': - $dimensions = '3d'; - // no break - case 'surfaceChart': - $this->renderContourChart($groupCount, $dimensions); - break; - case 'stockChart': - $this->renderStockChart($groupCount, $dimensions); - break; - default: - echo $chartType.' is not yet implemented
'; - return false; - } - $this->renderLegend(); - - $this->graph->Stroke($outputDestination); - return true; - } - - - /** - * Create a new PHPExcel_Chart_Renderer_jpgraph - */ - public function __construct(PHPExcel_Chart $chart) - { - $this->graph = null; - $this->chart = $chart; - } -} diff --git a/Utils/PHPExcel/Chart/Title.php b/Utils/PHPExcel/Chart/Title.php deleted file mode 100644 index d8dc14f..0000000 --- a/Utils/PHPExcel/Chart/Title.php +++ /dev/null @@ -1,86 +0,0 @@ -caption = $caption; - $this->layout = $layout; - } - - /** - * Get caption - * - * @return string - */ - public function getCaption() - { - return $this->caption; - } - - /** - * Set caption - * - * @param string $caption - * @return PHPExcel_Chart_Title - */ - public function setCaption($caption = null) - { - $this->caption = $caption; - - return $this; - } - - /** - * Get Layout - * - * @return PHPExcel_Chart_Layout - */ - public function getLayout() - { - return $this->layout; - } -} diff --git a/Utils/PHPExcel/Comment.php b/Utils/PHPExcel/Comment.php deleted file mode 100644 index d55363f..0000000 --- a/Utils/PHPExcel/Comment.php +++ /dev/null @@ -1,338 +0,0 @@ -author = 'Author'; - $this->text = new PHPExcel_RichText(); - $this->fillColor = new PHPExcel_Style_Color('FFFFFFE1'); - $this->alignment = PHPExcel_Style_Alignment::HORIZONTAL_GENERAL; - } - - /** - * Get Author - * - * @return string - */ - public function getAuthor() - { - return $this->author; - } - - /** - * Set Author - * - * @param string $pValue - * @return PHPExcel_Comment - */ - public function setAuthor($pValue = '') - { - $this->author = $pValue; - return $this; - } - - /** - * Get Rich text comment - * - * @return PHPExcel_RichText - */ - public function getText() - { - return $this->text; - } - - /** - * Set Rich text comment - * - * @param PHPExcel_RichText $pValue - * @return PHPExcel_Comment - */ - public function setText(PHPExcel_RichText $pValue) - { - $this->text = $pValue; - return $this; - } - - /** - * Get comment width (CSS style, i.e. XXpx or YYpt) - * - * @return string - */ - public function getWidth() - { - return $this->width; - } - - /** - * Set comment width (CSS style, i.e. XXpx or YYpt) - * - * @param string $value - * @return PHPExcel_Comment - */ - public function setWidth($value = '96pt') - { - $this->width = $value; - return $this; - } - - /** - * Get comment height (CSS style, i.e. XXpx or YYpt) - * - * @return string - */ - public function getHeight() - { - return $this->height; - } - - /** - * Set comment height (CSS style, i.e. XXpx or YYpt) - * - * @param string $value - * @return PHPExcel_Comment - */ - public function setHeight($value = '55.5pt') - { - $this->height = $value; - return $this; - } - - /** - * Get left margin (CSS style, i.e. XXpx or YYpt) - * - * @return string - */ - public function getMarginLeft() - { - return $this->marginLeft; - } - - /** - * Set left margin (CSS style, i.e. XXpx or YYpt) - * - * @param string $value - * @return PHPExcel_Comment - */ - public function setMarginLeft($value = '59.25pt') - { - $this->marginLeft = $value; - return $this; - } - - /** - * Get top margin (CSS style, i.e. XXpx or YYpt) - * - * @return string - */ - public function getMarginTop() - { - return $this->marginTop; - } - - /** - * Set top margin (CSS style, i.e. XXpx or YYpt) - * - * @param string $value - * @return PHPExcel_Comment - */ - public function setMarginTop($value = '1.5pt') - { - $this->marginTop = $value; - return $this; - } - - /** - * Is the comment visible by default? - * - * @return boolean - */ - public function getVisible() - { - return $this->visible; - } - - /** - * Set comment default visibility - * - * @param boolean $value - * @return PHPExcel_Comment - */ - public function setVisible($value = false) - { - $this->visible = $value; - return $this; - } - - /** - * Get fill color - * - * @return PHPExcel_Style_Color - */ - public function getFillColor() - { - return $this->fillColor; - } - - /** - * Set Alignment - * - * @param string $pValue - * @return PHPExcel_Comment - */ - public function setAlignment($pValue = PHPExcel_Style_Alignment::HORIZONTAL_GENERAL) - { - $this->alignment = $pValue; - return $this; - } - - /** - * Get Alignment - * - * @return string - */ - public function getAlignment() - { - return $this->alignment; - } - - /** - * Get hash code - * - * @return string Hash code - */ - public function getHashCode() - { - return md5( - $this->author . - $this->text->getHashCode() . - $this->width . - $this->height . - $this->marginLeft . - $this->marginTop . - ($this->visible ? 1 : 0) . - $this->fillColor->getHashCode() . - $this->alignment . - __CLASS__ - ); - } - - /** - * Implement PHP __clone to create a deep clone, not just a shallow copy. - */ - public function __clone() - { - $vars = get_object_vars($this); - foreach ($vars as $key => $value) { - if (is_object($value)) { - $this->$key = clone $value; - } else { - $this->$key = $value; - } - } - } - - /** - * Convert to string - * - * @return string - */ - public function __toString() - { - return $this->text->getPlainText(); - } -} diff --git a/Utils/PHPExcel/DocumentProperties.php b/Utils/PHPExcel/DocumentProperties.php deleted file mode 100644 index 2395ba9..0000000 --- a/Utils/PHPExcel/DocumentProperties.php +++ /dev/null @@ -1,611 +0,0 @@ -lastModifiedBy = $this->creator; - $this->created = time(); - $this->modified = time(); - } - - /** - * Get Creator - * - * @return string - */ - public function getCreator() - { - return $this->creator; - } - - /** - * Set Creator - * - * @param string $pValue - * @return PHPExcel_DocumentProperties - */ - public function setCreator($pValue = '') - { - $this->creator = $pValue; - return $this; - } - - /** - * Get Last Modified By - * - * @return string - */ - public function getLastModifiedBy() - { - return $this->lastModifiedBy; - } - - /** - * Set Last Modified By - * - * @param string $pValue - * @return PHPExcel_DocumentProperties - */ - public function setLastModifiedBy($pValue = '') - { - $this->lastModifiedBy = $pValue; - return $this; - } - - /** - * Get Created - * - * @return datetime - */ - public function getCreated() - { - return $this->created; - } - - /** - * Set Created - * - * @param datetime $pValue - * @return PHPExcel_DocumentProperties - */ - public function setCreated($pValue = null) - { - if ($pValue === null) { - $pValue = time(); - } elseif (is_string($pValue)) { - if (is_numeric($pValue)) { - $pValue = intval($pValue); - } else { - $pValue = strtotime($pValue); - } - } - - $this->created = $pValue; - return $this; - } - - /** - * Get Modified - * - * @return datetime - */ - public function getModified() - { - return $this->modified; - } - - /** - * Set Modified - * - * @param datetime $pValue - * @return PHPExcel_DocumentProperties - */ - public function setModified($pValue = null) - { - if ($pValue === null) { - $pValue = time(); - } elseif (is_string($pValue)) { - if (is_numeric($pValue)) { - $pValue = intval($pValue); - } else { - $pValue = strtotime($pValue); - } - } - - $this->modified = $pValue; - return $this; - } - - /** - * Get Title - * - * @return string - */ - public function getTitle() - { - return $this->title; - } - - /** - * Set Title - * - * @param string $pValue - * @return PHPExcel_DocumentProperties - */ - public function setTitle($pValue = '') - { - $this->title = $pValue; - return $this; - } - - /** - * Get Description - * - * @return string - */ - public function getDescription() - { - return $this->description; - } - - /** - * Set Description - * - * @param string $pValue - * @return PHPExcel_DocumentProperties - */ - public function setDescription($pValue = '') - { - $this->description = $pValue; - return $this; - } - - /** - * Get Subject - * - * @return string - */ - public function getSubject() - { - return $this->subject; - } - - /** - * Set Subject - * - * @param string $pValue - * @return PHPExcel_DocumentProperties - */ - public function setSubject($pValue = '') - { - $this->subject = $pValue; - return $this; - } - - /** - * Get Keywords - * - * @return string - */ - public function getKeywords() - { - return $this->keywords; - } - - /** - * Set Keywords - * - * @param string $pValue - * @return PHPExcel_DocumentProperties - */ - public function setKeywords($pValue = '') - { - $this->keywords = $pValue; - return $this; - } - - /** - * Get Category - * - * @return string - */ - public function getCategory() - { - return $this->category; - } - - /** - * Set Category - * - * @param string $pValue - * @return PHPExcel_DocumentProperties - */ - public function setCategory($pValue = '') - { - $this->category = $pValue; - return $this; - } - - /** - * Get Company - * - * @return string - */ - public function getCompany() - { - return $this->company; - } - - /** - * Set Company - * - * @param string $pValue - * @return PHPExcel_DocumentProperties - */ - public function setCompany($pValue = '') - { - $this->company = $pValue; - return $this; - } - - /** - * Get Manager - * - * @return string - */ - public function getManager() - { - return $this->manager; - } - - /** - * Set Manager - * - * @param string $pValue - * @return PHPExcel_DocumentProperties - */ - public function setManager($pValue = '') - { - $this->manager = $pValue; - return $this; - } - - /** - * Get a List of Custom Property Names - * - * @return array of string - */ - public function getCustomProperties() - { - return array_keys($this->customProperties); - } - - /** - * Check if a Custom Property is defined - * - * @param string $propertyName - * @return boolean - */ - public function isCustomPropertySet($propertyName) - { - return isset($this->customProperties[$propertyName]); - } - - /** - * Get a Custom Property Value - * - * @param string $propertyName - * @return string - */ - public function getCustomPropertyValue($propertyName) - { - if (isset($this->customProperties[$propertyName])) { - return $this->customProperties[$propertyName]['value']; - } - - } - - /** - * Get a Custom Property Type - * - * @param string $propertyName - * @return string - */ - public function getCustomPropertyType($propertyName) - { - if (isset($this->customProperties[$propertyName])) { - return $this->customProperties[$propertyName]['type']; - } - - } - - /** - * Set a Custom Property - * - * @param string $propertyName - * @param mixed $propertyValue - * @param string $propertyType - * 'i' : Integer - * 'f' : Floating Point - * 's' : String - * 'd' : Date/Time - * 'b' : Boolean - * @return PHPExcel_DocumentProperties - */ - public function setCustomProperty($propertyName, $propertyValue = '', $propertyType = null) - { - if (($propertyType === null) || (!in_array($propertyType, array(self::PROPERTY_TYPE_INTEGER, - self::PROPERTY_TYPE_FLOAT, - self::PROPERTY_TYPE_STRING, - self::PROPERTY_TYPE_DATE, - self::PROPERTY_TYPE_BOOLEAN)))) { - if ($propertyValue === null) { - $propertyType = self::PROPERTY_TYPE_STRING; - } elseif (is_float($propertyValue)) { - $propertyType = self::PROPERTY_TYPE_FLOAT; - } elseif (is_int($propertyValue)) { - $propertyType = self::PROPERTY_TYPE_INTEGER; - } elseif (is_bool($propertyValue)) { - $propertyType = self::PROPERTY_TYPE_BOOLEAN; - } else { - $propertyType = self::PROPERTY_TYPE_STRING; - } - } - - $this->customProperties[$propertyName] = array( - 'value' => $propertyValue, - 'type' => $propertyType - ); - return $this; - } - - /** - * Implement PHP __clone to create a deep clone, not just a shallow copy. - */ - public function __clone() - { - $vars = get_object_vars($this); - foreach ($vars as $key => $value) { - if (is_object($value)) { - $this->$key = clone $value; - } else { - $this->$key = $value; - } - } - } - - public static function convertProperty($propertyValue, $propertyType) - { - switch ($propertyType) { - case 'empty': // Empty - return ''; - break; - case 'null': // Null - return null; - break; - case 'i1': // 1-Byte Signed Integer - case 'i2': // 2-Byte Signed Integer - case 'i4': // 4-Byte Signed Integer - case 'i8': // 8-Byte Signed Integer - case 'int': // Integer - return (int) $propertyValue; - break; - case 'ui1': // 1-Byte Unsigned Integer - case 'ui2': // 2-Byte Unsigned Integer - case 'ui4': // 4-Byte Unsigned Integer - case 'ui8': // 8-Byte Unsigned Integer - case 'uint': // Unsigned Integer - return abs((int) $propertyValue); - break; - case 'r4': // 4-Byte Real Number - case 'r8': // 8-Byte Real Number - case 'decimal': // Decimal - return (float) $propertyValue; - break; - case 'lpstr': // LPSTR - case 'lpwstr': // LPWSTR - case 'bstr': // Basic String - return $propertyValue; - break; - case 'date': // Date and Time - case 'filetime': // File Time - return strtotime($propertyValue); - break; - case 'bool': // Boolean - return ($propertyValue == 'true') ? true : false; - break; - case 'cy': // Currency - case 'error': // Error Status Code - case 'vector': // Vector - case 'array': // Array - case 'blob': // Binary Blob - case 'oblob': // Binary Blob Object - case 'stream': // Binary Stream - case 'ostream': // Binary Stream Object - case 'storage': // Binary Storage - case 'ostorage': // Binary Storage Object - case 'vstream': // Binary Versioned Stream - case 'clsid': // Class ID - case 'cf': // Clipboard Data - return $propertyValue; - break; - } - return $propertyValue; - } - - public static function convertPropertyType($propertyType) - { - switch ($propertyType) { - case 'i1': // 1-Byte Signed Integer - case 'i2': // 2-Byte Signed Integer - case 'i4': // 4-Byte Signed Integer - case 'i8': // 8-Byte Signed Integer - case 'int': // Integer - case 'ui1': // 1-Byte Unsigned Integer - case 'ui2': // 2-Byte Unsigned Integer - case 'ui4': // 4-Byte Unsigned Integer - case 'ui8': // 8-Byte Unsigned Integer - case 'uint': // Unsigned Integer - return self::PROPERTY_TYPE_INTEGER; - break; - case 'r4': // 4-Byte Real Number - case 'r8': // 8-Byte Real Number - case 'decimal': // Decimal - return self::PROPERTY_TYPE_FLOAT; - break; - case 'empty': // Empty - case 'null': // Null - case 'lpstr': // LPSTR - case 'lpwstr': // LPWSTR - case 'bstr': // Basic String - return self::PROPERTY_TYPE_STRING; - break; - case 'date': // Date and Time - case 'filetime': // File Time - return self::PROPERTY_TYPE_DATE; - break; - case 'bool': // Boolean - return self::PROPERTY_TYPE_BOOLEAN; - break; - case 'cy': // Currency - case 'error': // Error Status Code - case 'vector': // Vector - case 'array': // Array - case 'blob': // Binary Blob - case 'oblob': // Binary Blob Object - case 'stream': // Binary Stream - case 'ostream': // Binary Stream Object - case 'storage': // Binary Storage - case 'ostorage': // Binary Storage Object - case 'vstream': // Binary Versioned Stream - case 'clsid': // Class ID - case 'cf': // Clipboard Data - return self::PROPERTY_TYPE_UNKNOWN; - break; - } - return self::PROPERTY_TYPE_UNKNOWN; - } -} diff --git a/Utils/PHPExcel/DocumentSecurity.php b/Utils/PHPExcel/DocumentSecurity.php deleted file mode 100644 index ecea0da..0000000 --- a/Utils/PHPExcel/DocumentSecurity.php +++ /dev/null @@ -1,222 +0,0 @@ -lockRevision = false; - $this->lockStructure = false; - $this->lockWindows = false; - $this->revisionsPassword = ''; - $this->workbookPassword = ''; - } - - /** - * Is some sort of document security enabled? - * - * @return boolean - */ - public function isSecurityEnabled() - { - return $this->lockRevision || - $this->lockStructure || - $this->lockWindows; - } - - /** - * Get LockRevision - * - * @return boolean - */ - public function getLockRevision() - { - return $this->lockRevision; - } - - /** - * Set LockRevision - * - * @param boolean $pValue - * @return PHPExcel_DocumentSecurity - */ - public function setLockRevision($pValue = false) - { - $this->lockRevision = $pValue; - return $this; - } - - /** - * Get LockStructure - * - * @return boolean - */ - public function getLockStructure() - { - return $this->lockStructure; - } - - /** - * Set LockStructure - * - * @param boolean $pValue - * @return PHPExcel_DocumentSecurity - */ - public function setLockStructure($pValue = false) - { - $this->lockStructure = $pValue; - return $this; - } - - /** - * Get LockWindows - * - * @return boolean - */ - public function getLockWindows() - { - return $this->lockWindows; - } - - /** - * Set LockWindows - * - * @param boolean $pValue - * @return PHPExcel_DocumentSecurity - */ - public function setLockWindows($pValue = false) - { - $this->lockWindows = $pValue; - return $this; - } - - /** - * Get RevisionsPassword (hashed) - * - * @return string - */ - public function getRevisionsPassword() - { - return $this->revisionsPassword; - } - - /** - * Set RevisionsPassword - * - * @param string $pValue - * @param boolean $pAlreadyHashed If the password has already been hashed, set this to true - * @return PHPExcel_DocumentSecurity - */ - public function setRevisionsPassword($pValue = '', $pAlreadyHashed = false) - { - if (!$pAlreadyHashed) { - $pValue = PHPExcel_Shared_PasswordHasher::hashPassword($pValue); - } - $this->revisionsPassword = $pValue; - return $this; - } - - /** - * Get WorkbookPassword (hashed) - * - * @return string - */ - public function getWorkbookPassword() - { - return $this->workbookPassword; - } - - /** - * Set WorkbookPassword - * - * @param string $pValue - * @param boolean $pAlreadyHashed If the password has already been hashed, set this to true - * @return PHPExcel_DocumentSecurity - */ - public function setWorkbookPassword($pValue = '', $pAlreadyHashed = false) - { - if (!$pAlreadyHashed) { - $pValue = PHPExcel_Shared_PasswordHasher::hashPassword($pValue); - } - $this->workbookPassword = $pValue; - return $this; - } - - /** - * Implement PHP __clone to create a deep clone, not just a shallow copy. - */ - public function __clone() - { - $vars = get_object_vars($this); - foreach ($vars as $key => $value) { - if (is_object($value)) { - $this->$key = clone $value; - } else { - $this->$key = $value; - } - } - } -} diff --git a/Utils/PHPExcel/Exception.php b/Utils/PHPExcel/Exception.php deleted file mode 100644 index b27750e..0000000 --- a/Utils/PHPExcel/Exception.php +++ /dev/null @@ -1,54 +0,0 @@ -line = $line; - $e->file = $file; - throw $e; - } -} diff --git a/Utils/PHPExcel/HashTable.php b/Utils/PHPExcel/HashTable.php deleted file mode 100644 index c21d18c..0000000 --- a/Utils/PHPExcel/HashTable.php +++ /dev/null @@ -1,204 +0,0 @@ -addFromSource($pSource); - } - } - - /** - * Add HashTable items from source - * - * @param PHPExcel_IComparable[] $pSource Source array to create HashTable from - * @throws PHPExcel_Exception - */ - public function addFromSource($pSource = null) - { - // Check if an array was passed - if ($pSource == null) { - return; - } elseif (!is_array($pSource)) { - throw new PHPExcel_Exception('Invalid array parameter passed.'); - } - - foreach ($pSource as $item) { - $this->add($item); - } - } - - /** - * Add HashTable item - * - * @param PHPExcel_IComparable $pSource Item to add - * @throws PHPExcel_Exception - */ - public function add(PHPExcel_IComparable $pSource = null) - { - $hash = $pSource->getHashCode(); - if (!isset($this->items[$hash])) { - $this->items[$hash] = $pSource; - $this->keyMap[count($this->items) - 1] = $hash; - } - } - - /** - * Remove HashTable item - * - * @param PHPExcel_IComparable $pSource Item to remove - * @throws PHPExcel_Exception - */ - public function remove(PHPExcel_IComparable $pSource = null) - { - $hash = $pSource->getHashCode(); - if (isset($this->items[$hash])) { - unset($this->items[$hash]); - - $deleteKey = -1; - foreach ($this->keyMap as $key => $value) { - if ($deleteKey >= 0) { - $this->keyMap[$key - 1] = $value; - } - - if ($value == $hash) { - $deleteKey = $key; - } - } - unset($this->keyMap[count($this->keyMap) - 1]); - } - } - - /** - * Clear HashTable - * - */ - public function clear() - { - $this->items = array(); - $this->keyMap = array(); - } - - /** - * Count - * - * @return int - */ - public function count() - { - return count($this->items); - } - - /** - * Get index for hash code - * - * @param string $pHashCode - * @return int Index - */ - public function getIndexForHashCode($pHashCode = '') - { - return array_search($pHashCode, $this->keyMap); - } - - /** - * Get by index - * - * @param int $pIndex - * @return PHPExcel_IComparable - * - */ - public function getByIndex($pIndex = 0) - { - if (isset($this->keyMap[$pIndex])) { - return $this->getByHashCode($this->keyMap[$pIndex]); - } - - return null; - } - - /** - * Get by hashcode - * - * @param string $pHashCode - * @return PHPExcel_IComparable - * - */ - public function getByHashCode($pHashCode = '') - { - if (isset($this->items[$pHashCode])) { - return $this->items[$pHashCode]; - } - - return null; - } - - /** - * HashTable to array - * - * @return PHPExcel_IComparable[] - */ - public function toArray() - { - return $this->items; - } - - /** - * Implement PHP __clone to create a deep clone, not just a shallow copy. - */ - public function __clone() - { - $vars = get_object_vars($this); - foreach ($vars as $key => $value) { - if (is_object($value)) { - $this->$key = clone $value; - } - } - } -} diff --git a/Utils/PHPExcel/Helper/HTML.php b/Utils/PHPExcel/Helper/HTML.php deleted file mode 100644 index a78f11c..0000000 --- a/Utils/PHPExcel/Helper/HTML.php +++ /dev/null @@ -1,808 +0,0 @@ - 'f0f8ff', - 'antiquewhite' => 'faebd7', - 'antiquewhite1' => 'ffefdb', - 'antiquewhite2' => 'eedfcc', - 'antiquewhite3' => 'cdc0b0', - 'antiquewhite4' => '8b8378', - 'aqua' => '00ffff', - 'aquamarine1' => '7fffd4', - 'aquamarine2' => '76eec6', - 'aquamarine4' => '458b74', - 'azure1' => 'f0ffff', - 'azure2' => 'e0eeee', - 'azure3' => 'c1cdcd', - 'azure4' => '838b8b', - 'beige' => 'f5f5dc', - 'bisque1' => 'ffe4c4', - 'bisque2' => 'eed5b7', - 'bisque3' => 'cdb79e', - 'bisque4' => '8b7d6b', - 'black' => '000000', - 'blanchedalmond' => 'ffebcd', - 'blue' => '0000ff', - 'blue1' => '0000ff', - 'blue2' => '0000ee', - 'blue4' => '00008b', - 'blueviolet' => '8a2be2', - 'brown' => 'a52a2a', - 'brown1' => 'ff4040', - 'brown2' => 'ee3b3b', - 'brown3' => 'cd3333', - 'brown4' => '8b2323', - 'burlywood' => 'deb887', - 'burlywood1' => 'ffd39b', - 'burlywood2' => 'eec591', - 'burlywood3' => 'cdaa7d', - 'burlywood4' => '8b7355', - 'cadetblue' => '5f9ea0', - 'cadetblue1' => '98f5ff', - 'cadetblue2' => '8ee5ee', - 'cadetblue3' => '7ac5cd', - 'cadetblue4' => '53868b', - 'chartreuse1' => '7fff00', - 'chartreuse2' => '76ee00', - 'chartreuse3' => '66cd00', - 'chartreuse4' => '458b00', - 'chocolate' => 'd2691e', - 'chocolate1' => 'ff7f24', - 'chocolate2' => 'ee7621', - 'chocolate3' => 'cd661d', - 'coral' => 'ff7f50', - 'coral1' => 'ff7256', - 'coral2' => 'ee6a50', - 'coral3' => 'cd5b45', - 'coral4' => '8b3e2f', - 'cornflowerblue' => '6495ed', - 'cornsilk1' => 'fff8dc', - 'cornsilk2' => 'eee8cd', - 'cornsilk3' => 'cdc8b1', - 'cornsilk4' => '8b8878', - 'cyan1' => '00ffff', - 'cyan2' => '00eeee', - 'cyan3' => '00cdcd', - 'cyan4' => '008b8b', - 'darkgoldenrod' => 'b8860b', - 'darkgoldenrod1' => 'ffb90f', - 'darkgoldenrod2' => 'eead0e', - 'darkgoldenrod3' => 'cd950c', - 'darkgoldenrod4' => '8b6508', - 'darkgreen' => '006400', - 'darkkhaki' => 'bdb76b', - 'darkolivegreen' => '556b2f', - 'darkolivegreen1' => 'caff70', - 'darkolivegreen2' => 'bcee68', - 'darkolivegreen3' => 'a2cd5a', - 'darkolivegreen4' => '6e8b3d', - 'darkorange' => 'ff8c00', - 'darkorange1' => 'ff7f00', - 'darkorange2' => 'ee7600', - 'darkorange3' => 'cd6600', - 'darkorange4' => '8b4500', - 'darkorchid' => '9932cc', - 'darkorchid1' => 'bf3eff', - 'darkorchid2' => 'b23aee', - 'darkorchid3' => '9a32cd', - 'darkorchid4' => '68228b', - 'darksalmon' => 'e9967a', - 'darkseagreen' => '8fbc8f', - 'darkseagreen1' => 'c1ffc1', - 'darkseagreen2' => 'b4eeb4', - 'darkseagreen3' => '9bcd9b', - 'darkseagreen4' => '698b69', - 'darkslateblue' => '483d8b', - 'darkslategray' => '2f4f4f', - 'darkslategray1' => '97ffff', - 'darkslategray2' => '8deeee', - 'darkslategray3' => '79cdcd', - 'darkslategray4' => '528b8b', - 'darkturquoise' => '00ced1', - 'darkviolet' => '9400d3', - 'deeppink1' => 'ff1493', - 'deeppink2' => 'ee1289', - 'deeppink3' => 'cd1076', - 'deeppink4' => '8b0a50', - 'deepskyblue1' => '00bfff', - 'deepskyblue2' => '00b2ee', - 'deepskyblue3' => '009acd', - 'deepskyblue4' => '00688b', - 'dimgray' => '696969', - 'dodgerblue1' => '1e90ff', - 'dodgerblue2' => '1c86ee', - 'dodgerblue3' => '1874cd', - 'dodgerblue4' => '104e8b', - 'firebrick' => 'b22222', - 'firebrick1' => 'ff3030', - 'firebrick2' => 'ee2c2c', - 'firebrick3' => 'cd2626', - 'firebrick4' => '8b1a1a', - 'floralwhite' => 'fffaf0', - 'forestgreen' => '228b22', - 'fuchsia' => 'ff00ff', - 'gainsboro' => 'dcdcdc', - 'ghostwhite' => 'f8f8ff', - 'gold1' => 'ffd700', - 'gold2' => 'eec900', - 'gold3' => 'cdad00', - 'gold4' => '8b7500', - 'goldenrod' => 'daa520', - 'goldenrod1' => 'ffc125', - 'goldenrod2' => 'eeb422', - 'goldenrod3' => 'cd9b1d', - 'goldenrod4' => '8b6914', - 'gray' => 'bebebe', - 'gray1' => '030303', - 'gray10' => '1a1a1a', - 'gray11' => '1c1c1c', - 'gray12' => '1f1f1f', - 'gray13' => '212121', - 'gray14' => '242424', - 'gray15' => '262626', - 'gray16' => '292929', - 'gray17' => '2b2b2b', - 'gray18' => '2e2e2e', - 'gray19' => '303030', - 'gray2' => '050505', - 'gray20' => '333333', - 'gray21' => '363636', - 'gray22' => '383838', - 'gray23' => '3b3b3b', - 'gray24' => '3d3d3d', - 'gray25' => '404040', - 'gray26' => '424242', - 'gray27' => '454545', - 'gray28' => '474747', - 'gray29' => '4a4a4a', - 'gray3' => '080808', - 'gray30' => '4d4d4d', - 'gray31' => '4f4f4f', - 'gray32' => '525252', - 'gray33' => '545454', - 'gray34' => '575757', - 'gray35' => '595959', - 'gray36' => '5c5c5c', - 'gray37' => '5e5e5e', - 'gray38' => '616161', - 'gray39' => '636363', - 'gray4' => '0a0a0a', - 'gray40' => '666666', - 'gray41' => '696969', - 'gray42' => '6b6b6b', - 'gray43' => '6e6e6e', - 'gray44' => '707070', - 'gray45' => '737373', - 'gray46' => '757575', - 'gray47' => '787878', - 'gray48' => '7a7a7a', - 'gray49' => '7d7d7d', - 'gray5' => '0d0d0d', - 'gray50' => '7f7f7f', - 'gray51' => '828282', - 'gray52' => '858585', - 'gray53' => '878787', - 'gray54' => '8a8a8a', - 'gray55' => '8c8c8c', - 'gray56' => '8f8f8f', - 'gray57' => '919191', - 'gray58' => '949494', - 'gray59' => '969696', - 'gray6' => '0f0f0f', - 'gray60' => '999999', - 'gray61' => '9c9c9c', - 'gray62' => '9e9e9e', - 'gray63' => 'a1a1a1', - 'gray64' => 'a3a3a3', - 'gray65' => 'a6a6a6', - 'gray66' => 'a8a8a8', - 'gray67' => 'ababab', - 'gray68' => 'adadad', - 'gray69' => 'b0b0b0', - 'gray7' => '121212', - 'gray70' => 'b3b3b3', - 'gray71' => 'b5b5b5', - 'gray72' => 'b8b8b8', - 'gray73' => 'bababa', - 'gray74' => 'bdbdbd', - 'gray75' => 'bfbfbf', - 'gray76' => 'c2c2c2', - 'gray77' => 'c4c4c4', - 'gray78' => 'c7c7c7', - 'gray79' => 'c9c9c9', - 'gray8' => '141414', - 'gray80' => 'cccccc', - 'gray81' => 'cfcfcf', - 'gray82' => 'd1d1d1', - 'gray83' => 'd4d4d4', - 'gray84' => 'd6d6d6', - 'gray85' => 'd9d9d9', - 'gray86' => 'dbdbdb', - 'gray87' => 'dedede', - 'gray88' => 'e0e0e0', - 'gray89' => 'e3e3e3', - 'gray9' => '171717', - 'gray90' => 'e5e5e5', - 'gray91' => 'e8e8e8', - 'gray92' => 'ebebeb', - 'gray93' => 'ededed', - 'gray94' => 'f0f0f0', - 'gray95' => 'f2f2f2', - 'gray97' => 'f7f7f7', - 'gray98' => 'fafafa', - 'gray99' => 'fcfcfc', - 'green' => '00ff00', - 'green1' => '00ff00', - 'green2' => '00ee00', - 'green3' => '00cd00', - 'green4' => '008b00', - 'greenyellow' => 'adff2f', - 'honeydew1' => 'f0fff0', - 'honeydew2' => 'e0eee0', - 'honeydew3' => 'c1cdc1', - 'honeydew4' => '838b83', - 'hotpink' => 'ff69b4', - 'hotpink1' => 'ff6eb4', - 'hotpink2' => 'ee6aa7', - 'hotpink3' => 'cd6090', - 'hotpink4' => '8b3a62', - 'indianred' => 'cd5c5c', - 'indianred1' => 'ff6a6a', - 'indianred2' => 'ee6363', - 'indianred3' => 'cd5555', - 'indianred4' => '8b3a3a', - 'ivory1' => 'fffff0', - 'ivory2' => 'eeeee0', - 'ivory3' => 'cdcdc1', - 'ivory4' => '8b8b83', - 'khaki' => 'f0e68c', - 'khaki1' => 'fff68f', - 'khaki2' => 'eee685', - 'khaki3' => 'cdc673', - 'khaki4' => '8b864e', - 'lavender' => 'e6e6fa', - 'lavenderblush1' => 'fff0f5', - 'lavenderblush2' => 'eee0e5', - 'lavenderblush3' => 'cdc1c5', - 'lavenderblush4' => '8b8386', - 'lawngreen' => '7cfc00', - 'lemonchiffon1' => 'fffacd', - 'lemonchiffon2' => 'eee9bf', - 'lemonchiffon3' => 'cdc9a5', - 'lemonchiffon4' => '8b8970', - 'light' => 'eedd82', - 'lightblue' => 'add8e6', - 'lightblue1' => 'bfefff', - 'lightblue2' => 'b2dfee', - 'lightblue3' => '9ac0cd', - 'lightblue4' => '68838b', - 'lightcoral' => 'f08080', - 'lightcyan1' => 'e0ffff', - 'lightcyan2' => 'd1eeee', - 'lightcyan3' => 'b4cdcd', - 'lightcyan4' => '7a8b8b', - 'lightgoldenrod1' => 'ffec8b', - 'lightgoldenrod2' => 'eedc82', - 'lightgoldenrod3' => 'cdbe70', - 'lightgoldenrod4' => '8b814c', - 'lightgoldenrodyellow' => 'fafad2', - 'lightgray' => 'd3d3d3', - 'lightpink' => 'ffb6c1', - 'lightpink1' => 'ffaeb9', - 'lightpink2' => 'eea2ad', - 'lightpink3' => 'cd8c95', - 'lightpink4' => '8b5f65', - 'lightsalmon1' => 'ffa07a', - 'lightsalmon2' => 'ee9572', - 'lightsalmon3' => 'cd8162', - 'lightsalmon4' => '8b5742', - 'lightseagreen' => '20b2aa', - 'lightskyblue' => '87cefa', - 'lightskyblue1' => 'b0e2ff', - 'lightskyblue2' => 'a4d3ee', - 'lightskyblue3' => '8db6cd', - 'lightskyblue4' => '607b8b', - 'lightslateblue' => '8470ff', - 'lightslategray' => '778899', - 'lightsteelblue' => 'b0c4de', - 'lightsteelblue1' => 'cae1ff', - 'lightsteelblue2' => 'bcd2ee', - 'lightsteelblue3' => 'a2b5cd', - 'lightsteelblue4' => '6e7b8b', - 'lightyellow1' => 'ffffe0', - 'lightyellow2' => 'eeeed1', - 'lightyellow3' => 'cdcdb4', - 'lightyellow4' => '8b8b7a', - 'lime' => '00ff00', - 'limegreen' => '32cd32', - 'linen' => 'faf0e6', - 'magenta' => 'ff00ff', - 'magenta2' => 'ee00ee', - 'magenta3' => 'cd00cd', - 'magenta4' => '8b008b', - 'maroon' => 'b03060', - 'maroon1' => 'ff34b3', - 'maroon2' => 'ee30a7', - 'maroon3' => 'cd2990', - 'maroon4' => '8b1c62', - 'medium' => '66cdaa', - 'mediumaquamarine' => '66cdaa', - 'mediumblue' => '0000cd', - 'mediumorchid' => 'ba55d3', - 'mediumorchid1' => 'e066ff', - 'mediumorchid2' => 'd15fee', - 'mediumorchid3' => 'b452cd', - 'mediumorchid4' => '7a378b', - 'mediumpurple' => '9370db', - 'mediumpurple1' => 'ab82ff', - 'mediumpurple2' => '9f79ee', - 'mediumpurple3' => '8968cd', - 'mediumpurple4' => '5d478b', - 'mediumseagreen' => '3cb371', - 'mediumslateblue' => '7b68ee', - 'mediumspringgreen' => '00fa9a', - 'mediumturquoise' => '48d1cc', - 'mediumvioletred' => 'c71585', - 'midnightblue' => '191970', - 'mintcream' => 'f5fffa', - 'mistyrose1' => 'ffe4e1', - 'mistyrose2' => 'eed5d2', - 'mistyrose3' => 'cdb7b5', - 'mistyrose4' => '8b7d7b', - 'moccasin' => 'ffe4b5', - 'navajowhite1' => 'ffdead', - 'navajowhite2' => 'eecfa1', - 'navajowhite3' => 'cdb38b', - 'navajowhite4' => '8b795e', - 'navy' => '000080', - 'navyblue' => '000080', - 'oldlace' => 'fdf5e6', - 'olive' => '808000', - 'olivedrab' => '6b8e23', - 'olivedrab1' => 'c0ff3e', - 'olivedrab2' => 'b3ee3a', - 'olivedrab4' => '698b22', - 'orange' => 'ffa500', - 'orange1' => 'ffa500', - 'orange2' => 'ee9a00', - 'orange3' => 'cd8500', - 'orange4' => '8b5a00', - 'orangered1' => 'ff4500', - 'orangered2' => 'ee4000', - 'orangered3' => 'cd3700', - 'orangered4' => '8b2500', - 'orchid' => 'da70d6', - 'orchid1' => 'ff83fa', - 'orchid2' => 'ee7ae9', - 'orchid3' => 'cd69c9', - 'orchid4' => '8b4789', - 'pale' => 'db7093', - 'palegoldenrod' => 'eee8aa', - 'palegreen' => '98fb98', - 'palegreen1' => '9aff9a', - 'palegreen2' => '90ee90', - 'palegreen3' => '7ccd7c', - 'palegreen4' => '548b54', - 'paleturquoise' => 'afeeee', - 'paleturquoise1' => 'bbffff', - 'paleturquoise2' => 'aeeeee', - 'paleturquoise3' => '96cdcd', - 'paleturquoise4' => '668b8b', - 'palevioletred' => 'db7093', - 'palevioletred1' => 'ff82ab', - 'palevioletred2' => 'ee799f', - 'palevioletred3' => 'cd6889', - 'palevioletred4' => '8b475d', - 'papayawhip' => 'ffefd5', - 'peachpuff1' => 'ffdab9', - 'peachpuff2' => 'eecbad', - 'peachpuff3' => 'cdaf95', - 'peachpuff4' => '8b7765', - 'pink' => 'ffc0cb', - 'pink1' => 'ffb5c5', - 'pink2' => 'eea9b8', - 'pink3' => 'cd919e', - 'pink4' => '8b636c', - 'plum' => 'dda0dd', - 'plum1' => 'ffbbff', - 'plum2' => 'eeaeee', - 'plum3' => 'cd96cd', - 'plum4' => '8b668b', - 'powderblue' => 'b0e0e6', - 'purple' => 'a020f0', - 'rebeccapurple' => '663399', - 'purple1' => '9b30ff', - 'purple2' => '912cee', - 'purple3' => '7d26cd', - 'purple4' => '551a8b', - 'red' => 'ff0000', - 'red1' => 'ff0000', - 'red2' => 'ee0000', - 'red3' => 'cd0000', - 'red4' => '8b0000', - 'rosybrown' => 'bc8f8f', - 'rosybrown1' => 'ffc1c1', - 'rosybrown2' => 'eeb4b4', - 'rosybrown3' => 'cd9b9b', - 'rosybrown4' => '8b6969', - 'royalblue' => '4169e1', - 'royalblue1' => '4876ff', - 'royalblue2' => '436eee', - 'royalblue3' => '3a5fcd', - 'royalblue4' => '27408b', - 'saddlebrown' => '8b4513', - 'salmon' => 'fa8072', - 'salmon1' => 'ff8c69', - 'salmon2' => 'ee8262', - 'salmon3' => 'cd7054', - 'salmon4' => '8b4c39', - 'sandybrown' => 'f4a460', - 'seagreen1' => '54ff9f', - 'seagreen2' => '4eee94', - 'seagreen3' => '43cd80', - 'seagreen4' => '2e8b57', - 'seashell1' => 'fff5ee', - 'seashell2' => 'eee5de', - 'seashell3' => 'cdc5bf', - 'seashell4' => '8b8682', - 'sienna' => 'a0522d', - 'sienna1' => 'ff8247', - 'sienna2' => 'ee7942', - 'sienna3' => 'cd6839', - 'sienna4' => '8b4726', - 'silver' => 'c0c0c0', - 'skyblue' => '87ceeb', - 'skyblue1' => '87ceff', - 'skyblue2' => '7ec0ee', - 'skyblue3' => '6ca6cd', - 'skyblue4' => '4a708b', - 'slateblue' => '6a5acd', - 'slateblue1' => '836fff', - 'slateblue2' => '7a67ee', - 'slateblue3' => '6959cd', - 'slateblue4' => '473c8b', - 'slategray' => '708090', - 'slategray1' => 'c6e2ff', - 'slategray2' => 'b9d3ee', - 'slategray3' => '9fb6cd', - 'slategray4' => '6c7b8b', - 'snow1' => 'fffafa', - 'snow2' => 'eee9e9', - 'snow3' => 'cdc9c9', - 'snow4' => '8b8989', - 'springgreen1' => '00ff7f', - 'springgreen2' => '00ee76', - 'springgreen3' => '00cd66', - 'springgreen4' => '008b45', - 'steelblue' => '4682b4', - 'steelblue1' => '63b8ff', - 'steelblue2' => '5cacee', - 'steelblue3' => '4f94cd', - 'steelblue4' => '36648b', - 'tan' => 'd2b48c', - 'tan1' => 'ffa54f', - 'tan2' => 'ee9a49', - 'tan3' => 'cd853f', - 'tan4' => '8b5a2b', - 'teal' => '008080', - 'thistle' => 'd8bfd8', - 'thistle1' => 'ffe1ff', - 'thistle2' => 'eed2ee', - 'thistle3' => 'cdb5cd', - 'thistle4' => '8b7b8b', - 'tomato1' => 'ff6347', - 'tomato2' => 'ee5c42', - 'tomato3' => 'cd4f39', - 'tomato4' => '8b3626', - 'turquoise' => '40e0d0', - 'turquoise1' => '00f5ff', - 'turquoise2' => '00e5ee', - 'turquoise3' => '00c5cd', - 'turquoise4' => '00868b', - 'violet' => 'ee82ee', - 'violetred' => 'd02090', - 'violetred1' => 'ff3e96', - 'violetred2' => 'ee3a8c', - 'violetred3' => 'cd3278', - 'violetred4' => '8b2252', - 'wheat' => 'f5deb3', - 'wheat1' => 'ffe7ba', - 'wheat2' => 'eed8ae', - 'wheat3' => 'cdba96', - 'wheat4' => '8b7e66', - 'white' => 'ffffff', - 'whitesmoke' => 'f5f5f5', - 'yellow' => 'ffff00', - 'yellow1' => 'ffff00', - 'yellow2' => 'eeee00', - 'yellow3' => 'cdcd00', - 'yellow4' => '8b8b00', - 'yellowgreen' => '9acd32', - ); - - protected $face; - protected $size; - protected $color; - - protected $bold = false; - protected $italic = false; - protected $underline = false; - protected $superscript = false; - protected $subscript = false; - protected $strikethrough = false; - - protected $startTagCallbacks = array( - 'font' => 'startFontTag', - 'b' => 'startBoldTag', - 'strong' => 'startBoldTag', - 'i' => 'startItalicTag', - 'em' => 'startItalicTag', - 'u' => 'startUnderlineTag', - 'ins' => 'startUnderlineTag', - 'del' => 'startStrikethruTag', - 'sup' => 'startSuperscriptTag', - 'sub' => 'startSubscriptTag', - ); - - protected $endTagCallbacks = array( - 'font' => 'endFontTag', - 'b' => 'endBoldTag', - 'strong' => 'endBoldTag', - 'i' => 'endItalicTag', - 'em' => 'endItalicTag', - 'u' => 'endUnderlineTag', - 'ins' => 'endUnderlineTag', - 'del' => 'endStrikethruTag', - 'sup' => 'endSuperscriptTag', - 'sub' => 'endSubscriptTag', - 'br' => 'breakTag', - 'p' => 'breakTag', - 'h1' => 'breakTag', - 'h2' => 'breakTag', - 'h3' => 'breakTag', - 'h4' => 'breakTag', - 'h5' => 'breakTag', - 'h6' => 'breakTag', - ); - - protected $stack = array(); - - protected $stringData = ''; - - protected $richTextObject; - - protected function initialise() - { - $this->face = $this->size = $this->color = null; - $this->bold = $this->italic = $this->underline = $this->superscript = $this->subscript = $this->strikethrough = false; - - $this->stack = array(); - - $this->stringData = ''; - } - - public function toRichTextObject($html) - { - $this->initialise(); - - // Create a new DOM object - $dom = new \DOMDocument; - // Load the HTML file into the DOM object - // Note the use of error suppression, because typically this will be an html fragment, so not fully valid markup - $loaded = @$dom->loadHTML($html); - - // Discard excess white space - $dom->preserveWhiteSpace = false; - - $this->richTextObject = new PHPExcel_RichText();; - $this->parseElements($dom); - - // Clean any further spurious whitespace - $this->cleanWhitespace(); - - return $this->richTextObject; - } - - protected function cleanWhitespace() - { - foreach ($this->richTextObject->getRichTextElements() as $key => $element) { - $text = $element->getText(); - // Trim any leading spaces on the first run - if ($key == 0) { - $text = ltrim($text); - } - // Trim any spaces immediately after a line break - $text = preg_replace('/\n */mu', "\n", $text); - $element->setText($text); - } - } - - protected function buildTextRun() - { - $text = $this->stringData; - if (trim($text) === '') { - return; - } - - $richtextRun = $this->richTextObject->createTextRun($this->stringData); - if ($this->face) { - $richtextRun->getFont()->setName($this->face); - } - if ($this->size) { - $richtextRun->getFont()->setSize($this->size); - } - if ($this->color) { - $richtextRun->getFont()->setColor(new PHPExcel_Style_Color('ff' . $this->color)); - } - if ($this->bold) { - $richtextRun->getFont()->setBold(true); - } - if ($this->italic) { - $richtextRun->getFont()->setItalic(true); - } - if ($this->underline) { - $richtextRun->getFont()->setUnderline(PHPExcel_Style_Font::UNDERLINE_SINGLE); - } - if ($this->superscript) { - $richtextRun->getFont()->setSuperScript(true); - } - if ($this->subscript) { - $richtextRun->getFont()->setSubScript(true); - } - if ($this->strikethrough) { - $richtextRun->getFont()->setStrikethrough(true); - } - $this->stringData = ''; - } - - protected function rgbToColour($rgb) - { - preg_match_all('/\d+/', $rgb, $values); - foreach ($values[0] as &$value) { - $value = str_pad(dechex($value), 2, '0', STR_PAD_LEFT); - } - return implode($values[0]); - } - - protected function colourNameLookup($rgb) - { - return self::$colourMap[$rgb]; - } - - protected function startFontTag($tag) - { - foreach ($tag->attributes as $attribute) { - $attributeName = strtolower($attribute->name); - $attributeValue = $attribute->value; - - if ($attributeName == 'color') { - if (preg_match('/rgb\s*\(/', $attributeValue)) { - $this->$attributeName = $this->rgbToColour($attributeValue); - } elseif (strpos(trim($attributeValue), '#') === 0) { - $this->$attributeName = ltrim($attributeValue, '#'); - } else { - $this->$attributeName = $this->colourNameLookup($attributeValue); - } - } else { - $this->$attributeName = $attributeValue; - } - } - } - - protected function endFontTag() - { - $this->face = $this->size = $this->color = null; - } - - protected function startBoldTag() - { - $this->bold = true; - } - - protected function endBoldTag() - { - $this->bold = false; - } - - protected function startItalicTag() - { - $this->italic = true; - } - - protected function endItalicTag() - { - $this->italic = false; - } - - protected function startUnderlineTag() - { - $this->underline = true; - } - - protected function endUnderlineTag() - { - $this->underline = false; - } - - protected function startSubscriptTag() - { - $this->subscript = true; - } - - protected function endSubscriptTag() - { - $this->subscript = false; - } - - protected function startSuperscriptTag() - { - $this->superscript = true; - } - - protected function endSuperscriptTag() - { - $this->superscript = false; - } - - protected function startStrikethruTag() - { - $this->strikethrough = true; - } - - protected function endStrikethruTag() - { - $this->strikethrough = false; - } - - protected function breakTag() - { - $this->stringData .= "\n"; - } - - protected function parseTextNode(DOMText $textNode) - { - $domText = preg_replace( - '/\s+/u', - ' ', - str_replace(array("\r", "\n"), ' ', $textNode->nodeValue) - ); - $this->stringData .= $domText; - $this->buildTextRun(); - } - - protected function handleCallback($element, $callbackTag, $callbacks) - { - if (isset($callbacks[$callbackTag])) { - $elementHandler = $callbacks[$callbackTag]; - if (method_exists($this, $elementHandler)) { - call_user_func(array($this, $elementHandler), $element); - } - } - } - - protected function parseElementNode(DOMElement $element) - { - $callbackTag = strtolower($element->nodeName); - $this->stack[] = $callbackTag; - - $this->handleCallback($element, $callbackTag, $this->startTagCallbacks); - - $this->parseElements($element); - array_pop($this->stack); - - $this->handleCallback($element, $callbackTag, $this->endTagCallbacks); - } - - protected function parseElements(DOMNode $element) - { - foreach ($element->childNodes as $child) { - if ($child instanceof DOMText) { - $this->parseTextNode($child); - } elseif ($child instanceof DOMElement) { - $this->parseElementNode($child); - } - } - } -} diff --git a/Utils/PHPExcel/IComparable.php b/Utils/PHPExcel/IComparable.php deleted file mode 100644 index 6dc36a9..0000000 --- a/Utils/PHPExcel/IComparable.php +++ /dev/null @@ -1,34 +0,0 @@ - 'IWriter', 'path' => 'PHPExcel/Writer/{0}.php', 'class' => 'PHPExcel_Writer_{0}' ), - array( 'type' => 'IReader', 'path' => 'PHPExcel/Reader/{0}.php', 'class' => 'PHPExcel_Reader_{0}' ) - ); - - /** - * Autoresolve classes - * - * @var array - * @access private - * @static - */ - private static $autoResolveClasses = array( - 'Excel2007', - 'Excel5', - 'Excel2003XML', - 'OOCalc', - 'SYLK', - 'Gnumeric', - 'HTML', - 'CSV', - ); - - /** - * Private constructor for PHPExcel_IOFactory - */ - private function __construct() - { - } - - /** - * Get search locations - * - * @static - * @access public - * @return array - */ - public static function getSearchLocations() - { - return self::$searchLocations; - } - - /** - * Set search locations - * - * @static - * @access public - * @param array $value - * @throws PHPExcel_Reader_Exception - */ - public static function setSearchLocations($value) - { - if (is_array($value)) { - self::$searchLocations = $value; - } else { - throw new PHPExcel_Reader_Exception('Invalid parameter passed.'); - } - } - - /** - * Add search location - * - * @static - * @access public - * @param string $type Example: IWriter - * @param string $location Example: PHPExcel/Writer/{0}.php - * @param string $classname Example: PHPExcel_Writer_{0} - */ - public static function addSearchLocation($type = '', $location = '', $classname = '') - { - self::$searchLocations[] = array( 'type' => $type, 'path' => $location, 'class' => $classname ); - } - - /** - * Create PHPExcel_Writer_IWriter - * - * @static - * @access public - * @param PHPExcel $phpExcel - * @param string $writerType Example: Excel2007 - * @return PHPExcel_Writer_IWriter - * @throws PHPExcel_Reader_Exception - */ - public static function createWriter(PHPExcel $phpExcel, $writerType = '') - { - // Search type - $searchType = 'IWriter'; - - // Include class - foreach (self::$searchLocations as $searchLocation) { - if ($searchLocation['type'] == $searchType) { - $className = str_replace('{0}', $writerType, $searchLocation['class']); - - $instance = new $className($phpExcel); - if ($instance !== null) { - return $instance; - } - } - } - - // Nothing found... - throw new PHPExcel_Reader_Exception("No $searchType found for type $writerType"); - } - - /** - * Loads PHPExcel from file using automatic PHPExcel_Reader_IReader resolution - * - * @static - * @access public - * @param string $pFilename The name of the spreadsheet file - * @return PHPExcel - * @throws PHPExcel_Reader_Exception - */ - public static function load($pFilename) - { - $reader = self::createReaderForFile($pFilename); - return $reader->load($pFilename); - } - - /** - * Create PHPExcel_Reader_IReader for file using automatic PHPExcel_Reader_IReader resolution - * - * @static - * @access public - * @param string $pFilename The name of the spreadsheet file - * @return PHPExcel_Reader_IReader - * @throws PHPExcel_Reader_Exception - */ - public static function createReaderForFile($pFilename) - { - // First, lucky guess by inspecting file extension - $pathinfo = pathinfo($pFilename); - - $extensionType = null; - if (isset($pathinfo['extension'])) { - switch (strtolower($pathinfo['extension'])) { - case 'xlsx': // Excel (OfficeOpenXML) Spreadsheet - case 'xlsm': // Excel (OfficeOpenXML) Macro Spreadsheet (macros will be discarded) - case 'xltx': // Excel (OfficeOpenXML) Template - case 'xltm': // Excel (OfficeOpenXML) Macro Template (macros will be discarded) - $extensionType = 'Excel2007'; - break; - case 'xls': // Excel (BIFF) Spreadsheet - case 'xlt': // Excel (BIFF) Template - $extensionType = 'Excel5'; - break; - case 'ods': // Open/Libre Offic Calc - case 'ots': // Open/Libre Offic Calc Template - $extensionType = 'OOCalc'; - break; - case 'slk': - $extensionType = 'SYLK'; - break; - case 'xml': // Excel 2003 SpreadSheetML - $extensionType = 'Excel2003XML'; - break; - case 'gnumeric': - $extensionType = 'Gnumeric'; - break; - case 'htm': - case 'html': - $extensionType = 'HTML'; - break; - case 'csv': - // Do nothing - // We must not try to use CSV reader since it loads - // all files including Excel files etc. - break; - default: - break; - } - - if ($extensionType !== null) { - $reader = self::createReader($extensionType); - // Let's see if we are lucky - if (isset($reader) && $reader->canRead($pFilename)) { - return $reader; - } - } - } - - // If we reach here then "lucky guess" didn't give any result - // Try walking through all the options in self::$autoResolveClasses - foreach (self::$autoResolveClasses as $autoResolveClass) { - // Ignore our original guess, we know that won't work - if ($autoResolveClass !== $extensionType) { - $reader = self::createReader($autoResolveClass); - if ($reader->canRead($pFilename)) { - return $reader; - } - } - } - - throw new PHPExcel_Reader_Exception('Unable to identify a reader for this file'); - } - - /** - * Create PHPExcel_Reader_IReader - * - * @static - * @access public - * @param string $readerType Example: Excel2007 - * @return PHPExcel_Reader_IReader - * @throws PHPExcel_Reader_Exception - */ - public static function createReader($readerType = '') - { - // Search type - $searchType = 'IReader'; - - // Include class - foreach (self::$searchLocations as $searchLocation) { - if ($searchLocation['type'] == $searchType) { - $className = str_replace('{0}', $readerType, $searchLocation['class']); - - $instance = new $className(); - if ($instance !== null) { - return $instance; - } - } - } - - // Nothing found... - throw new PHPExcel_Reader_Exception("No $searchType found for type $readerType"); - } - - /** - * Identify file type using automatic PHPExcel_Reader_IReader resolution - * - * @static - * @access public - * @param string $pFilename The name of the spreadsheet file to identify - * @return string - * @throws PHPExcel_Reader_Exception - */ - public static function identify($pFilename) - { - $reader = self::createReaderForFile($pFilename); - $className = get_class($reader); - $classType = explode('_', $className); - unset($reader); - return array_pop($classType); - } -} diff --git a/Utils/PHPExcel/NamedRange.php b/Utils/PHPExcel/NamedRange.php deleted file mode 100644 index 2848db8..0000000 --- a/Utils/PHPExcel/NamedRange.php +++ /dev/null @@ -1,249 +0,0 @@ -worksheet) - * - * @var bool - */ - private $localOnly; - - /** - * Scope - * - * @var PHPExcel_Worksheet - */ - private $scope; - - /** - * Create a new NamedRange - * - * @param string $pName - * @param PHPExcel_Worksheet $pWorksheet - * @param string $pRange - * @param bool $pLocalOnly - * @param PHPExcel_Worksheet|null $pScope Scope. Only applies when $pLocalOnly = true. Null for global scope. - * @throws PHPExcel_Exception - */ - public function __construct($pName = null, PHPExcel_Worksheet $pWorksheet, $pRange = 'A1', $pLocalOnly = false, $pScope = null) - { - // Validate data - if (($pName === null) || ($pWorksheet === null) || ($pRange === null)) { - throw new PHPExcel_Exception('Parameters can not be null.'); - } - - // Set local members - $this->name = $pName; - $this->worksheet = $pWorksheet; - $this->range = $pRange; - $this->localOnly = $pLocalOnly; - $this->scope = ($pLocalOnly == true) ? (($pScope == null) ? $pWorksheet : $pScope) : null; - } - - /** - * Get name - * - * @return string - */ - public function getName() - { - return $this->name; - } - - /** - * Set name - * - * @param string $value - * @return PHPExcel_NamedRange - */ - public function setName($value = null) - { - if ($value !== null) { - // Old title - $oldTitle = $this->name; - - // Re-attach - if ($this->worksheet !== null) { - $this->worksheet->getParent()->removeNamedRange($this->name, $this->worksheet); - } - $this->name = $value; - - if ($this->worksheet !== null) { - $this->worksheet->getParent()->addNamedRange($this); - } - - // New title - $newTitle = $this->name; - PHPExcel_ReferenceHelper::getInstance()->updateNamedFormulas($this->worksheet->getParent(), $oldTitle, $newTitle); - } - return $this; - } - - /** - * Get worksheet - * - * @return PHPExcel_Worksheet - */ - public function getWorksheet() - { - return $this->worksheet; - } - - /** - * Set worksheet - * - * @param PHPExcel_Worksheet $value - * @return PHPExcel_NamedRange - */ - public function setWorksheet(PHPExcel_Worksheet $value = null) - { - if ($value !== null) { - $this->worksheet = $value; - } - return $this; - } - - /** - * Get range - * - * @return string - */ - public function getRange() - { - return $this->range; - } - - /** - * Set range - * - * @param string $value - * @return PHPExcel_NamedRange - */ - public function setRange($value = null) - { - if ($value !== null) { - $this->range = $value; - } - return $this; - } - - /** - * Get localOnly - * - * @return bool - */ - public function getLocalOnly() - { - return $this->localOnly; - } - - /** - * Set localOnly - * - * @param bool $value - * @return PHPExcel_NamedRange - */ - public function setLocalOnly($value = false) - { - $this->localOnly = $value; - $this->scope = $value ? $this->worksheet : null; - return $this; - } - - /** - * Get scope - * - * @return PHPExcel_Worksheet|null - */ - public function getScope() - { - return $this->scope; - } - - /** - * Set scope - * - * @param PHPExcel_Worksheet|null $value - * @return PHPExcel_NamedRange - */ - public function setScope(PHPExcel_Worksheet $value = null) - { - $this->scope = $value; - $this->localOnly = ($value == null) ? false : true; - return $this; - } - - /** - * Resolve a named range to a regular cell range - * - * @param string $pNamedRange Named range - * @param PHPExcel_Worksheet|null $pSheet Scope. Use null for global scope - * @return PHPExcel_NamedRange - */ - public static function resolveRange($pNamedRange = '', PHPExcel_Worksheet $pSheet) - { - return $pSheet->getParent()->getNamedRange($pNamedRange, $pSheet); - } - - /** - * Implement PHP __clone to create a deep clone, not just a shallow copy. - */ - public function __clone() - { - $vars = get_object_vars($this); - foreach ($vars as $key => $value) { - if (is_object($value)) { - $this->$key = clone $value; - } else { - $this->$key = $value; - } - } - } -} diff --git a/Utils/PHPExcel/Reader/Abstract.php b/Utils/PHPExcel/Reader/Abstract.php deleted file mode 100644 index 9ae2f0d..0000000 --- a/Utils/PHPExcel/Reader/Abstract.php +++ /dev/null @@ -1,289 +0,0 @@ -readDataOnly; - } - - /** - * Set read data only - * Set to true, to advise the Reader only to read data values for cells, and to ignore any formatting information. - * Set to false (the default) to advise the Reader to read both data and formatting for cells. - * - * @param boolean $pValue - * - * @return PHPExcel_Reader_IReader - */ - public function setReadDataOnly($pValue = false) - { - $this->readDataOnly = $pValue; - return $this; - } - - /** - * Read empty cells? - * If this is true (the default), then the Reader will read data values for all cells, irrespective of value. - * If false it will not read data for cells containing a null value or an empty string. - * - * @return boolean - */ - public function getReadEmptyCells() - { - return $this->readEmptyCells; - } - - /** - * Set read empty cells - * Set to true (the default) to advise the Reader read data values for all cells, irrespective of value. - * Set to false to advise the Reader to ignore cells containing a null value or an empty string. - * - * @param boolean $pValue - * - * @return PHPExcel_Reader_IReader - */ - public function setReadEmptyCells($pValue = true) - { - $this->readEmptyCells = $pValue; - return $this; - } - - /** - * Read charts in workbook? - * If this is true, then the Reader will include any charts that exist in the workbook. - * Note that a ReadDataOnly value of false overrides, and charts won't be read regardless of the IncludeCharts value. - * If false (the default) it will ignore any charts defined in the workbook file. - * - * @return boolean - */ - public function getIncludeCharts() - { - return $this->includeCharts; - } - - /** - * Set read charts in workbook - * Set to true, to advise the Reader to include any charts that exist in the workbook. - * Note that a ReadDataOnly value of false overrides, and charts won't be read regardless of the IncludeCharts value. - * Set to false (the default) to discard charts. - * - * @param boolean $pValue - * - * @return PHPExcel_Reader_IReader - */ - public function setIncludeCharts($pValue = false) - { - $this->includeCharts = (boolean) $pValue; - return $this; - } - - /** - * Get which sheets to load - * Returns either an array of worksheet names (the list of worksheets that should be loaded), or a null - * indicating that all worksheets in the workbook should be loaded. - * - * @return mixed - */ - public function getLoadSheetsOnly() - { - return $this->loadSheetsOnly; - } - - /** - * Set which sheets to load - * - * @param mixed $value - * This should be either an array of worksheet names to be loaded, or a string containing a single worksheet name. - * If NULL, then it tells the Reader to read all worksheets in the workbook - * - * @return PHPExcel_Reader_IReader - */ - public function setLoadSheetsOnly($value = null) - { - if ($value === null) { - return $this->setLoadAllSheets(); - } - - $this->loadSheetsOnly = is_array($value) ? $value : array($value); - return $this; - } - - /** - * Set all sheets to load - * Tells the Reader to load all worksheets from the workbook. - * - * @return PHPExcel_Reader_IReader - */ - public function setLoadAllSheets() - { - $this->loadSheetsOnly = null; - return $this; - } - - /** - * Read filter - * - * @return PHPExcel_Reader_IReadFilter - */ - public function getReadFilter() - { - return $this->readFilter; - } - - /** - * Set read filter - * - * @param PHPExcel_Reader_IReadFilter $pValue - * @return PHPExcel_Reader_IReader - */ - public function setReadFilter(PHPExcel_Reader_IReadFilter $pValue) - { - $this->readFilter = $pValue; - return $this; - } - - /** - * Open file for reading - * - * @param string $pFilename - * @throws PHPExcel_Reader_Exception - * @return resource - */ - protected function openFile($pFilename) - { - // Check if file exists - if (!file_exists($pFilename) || !is_readable($pFilename)) { - throw new PHPExcel_Reader_Exception("Could not open " . $pFilename . " for reading! File does not exist."); - } - - // Open file - $this->fileHandle = fopen($pFilename, 'r'); - if ($this->fileHandle === false) { - throw new PHPExcel_Reader_Exception("Could not open file " . $pFilename . " for reading."); - } - } - - /** - * Can the current PHPExcel_Reader_IReader read the file? - * - * @param string $pFilename - * @return boolean - * @throws PHPExcel_Reader_Exception - */ - public function canRead($pFilename) - { - // Check if file exists - try { - $this->openFile($pFilename); - } catch (Exception $e) { - return false; - } - - $readable = $this->isValidFormat(); - fclose($this->fileHandle); - return $readable; - } - - /** - * Scan theXML for use of securityScan(file_get_contents($filestream)); - } -} diff --git a/Utils/PHPExcel/Reader/CSV.php b/Utils/PHPExcel/Reader/CSV.php deleted file mode 100644 index db96b60..0000000 --- a/Utils/PHPExcel/Reader/CSV.php +++ /dev/null @@ -1,386 +0,0 @@ -readFilter = new PHPExcel_Reader_DefaultReadFilter(); - } - - /** - * Validate that the current file is a CSV file - * - * @return boolean - */ - protected function isValidFormat() - { - return true; - } - - /** - * Set input encoding - * - * @param string $pValue Input encoding - */ - public function setInputEncoding($pValue = 'UTF-8') - { - $this->inputEncoding = $pValue; - return $this; - } - - /** - * Get input encoding - * - * @return string - */ - public function getInputEncoding() - { - return $this->inputEncoding; - } - - /** - * Move filepointer past any BOM marker - * - */ - protected function skipBOM() - { - rewind($this->fileHandle); - - switch ($this->inputEncoding) { - case 'UTF-8': - fgets($this->fileHandle, 4) == "\xEF\xBB\xBF" ? - fseek($this->fileHandle, 3) : fseek($this->fileHandle, 0); - break; - case 'UTF-16LE': - fgets($this->fileHandle, 3) == "\xFF\xFE" ? - fseek($this->fileHandle, 2) : fseek($this->fileHandle, 0); - break; - case 'UTF-16BE': - fgets($this->fileHandle, 3) == "\xFE\xFF" ? - fseek($this->fileHandle, 2) : fseek($this->fileHandle, 0); - break; - case 'UTF-32LE': - fgets($this->fileHandle, 5) == "\xFF\xFE\x00\x00" ? - fseek($this->fileHandle, 4) : fseek($this->fileHandle, 0); - break; - case 'UTF-32BE': - fgets($this->fileHandle, 5) == "\x00\x00\xFE\xFF" ? - fseek($this->fileHandle, 4) : fseek($this->fileHandle, 0); - break; - default: - break; - } - } - - /** - * Return worksheet info (Name, Last Column Letter, Last Column Index, Total Rows, Total Columns) - * - * @param string $pFilename - * @throws PHPExcel_Reader_Exception - */ - public function listWorksheetInfo($pFilename) - { - // Open file - $this->openFile($pFilename); - if (!$this->isValidFormat()) { - fclose($this->fileHandle); - throw new PHPExcel_Reader_Exception($pFilename . " is an Invalid Spreadsheet file."); - } - $fileHandle = $this->fileHandle; - - // Skip BOM, if any - $this->skipBOM(); - - $escapeEnclosures = array( "\\" . $this->enclosure, $this->enclosure . $this->enclosure ); - - $worksheetInfo = array(); - $worksheetInfo[0]['worksheetName'] = 'Worksheet'; - $worksheetInfo[0]['lastColumnLetter'] = 'A'; - $worksheetInfo[0]['lastColumnIndex'] = 0; - $worksheetInfo[0]['totalRows'] = 0; - $worksheetInfo[0]['totalColumns'] = 0; - - // Loop through each line of the file in turn - while (($rowData = fgetcsv($fileHandle, 0, $this->delimiter, $this->enclosure)) !== false) { - $worksheetInfo[0]['totalRows']++; - $worksheetInfo[0]['lastColumnIndex'] = max($worksheetInfo[0]['lastColumnIndex'], count($rowData) - 1); - } - - $worksheetInfo[0]['lastColumnLetter'] = PHPExcel_Cell::stringFromColumnIndex($worksheetInfo[0]['lastColumnIndex']); - $worksheetInfo[0]['totalColumns'] = $worksheetInfo[0]['lastColumnIndex'] + 1; - - // Close file - fclose($fileHandle); - - return $worksheetInfo; - } - - /** - * Loads PHPExcel from file - * - * @param string $pFilename - * @return PHPExcel - * @throws PHPExcel_Reader_Exception - */ - public function load($pFilename) - { - // Create new PHPExcel - $objPHPExcel = new PHPExcel(); - - // Load into this instance - return $this->loadIntoExisting($pFilename, $objPHPExcel); - } - - /** - * Loads PHPExcel from file into PHPExcel instance - * - * @param string $pFilename - * @param PHPExcel $objPHPExcel - * @return PHPExcel - * @throws PHPExcel_Reader_Exception - */ - public function loadIntoExisting($pFilename, PHPExcel $objPHPExcel) - { - $lineEnding = ini_get('auto_detect_line_endings'); - ini_set('auto_detect_line_endings', true); - - // Open file - $this->openFile($pFilename); - if (!$this->isValidFormat()) { - fclose($this->fileHandle); - throw new PHPExcel_Reader_Exception($pFilename . " is an Invalid Spreadsheet file."); - } - $fileHandle = $this->fileHandle; - - // Skip BOM, if any - $this->skipBOM(); - - // Create new PHPExcel object - while ($objPHPExcel->getSheetCount() <= $this->sheetIndex) { - $objPHPExcel->createSheet(); - } - $sheet = $objPHPExcel->setActiveSheetIndex($this->sheetIndex); - - $escapeEnclosures = array( "\\" . $this->enclosure, - $this->enclosure . $this->enclosure - ); - - // Set our starting row based on whether we're in contiguous mode or not - $currentRow = 1; - if ($this->contiguous) { - $currentRow = ($this->contiguousRow == -1) ? $sheet->getHighestRow(): $this->contiguousRow; - } - - // Loop through each line of the file in turn - while (($rowData = fgetcsv($fileHandle, 0, $this->delimiter, $this->enclosure)) !== false) { - $columnLetter = 'A'; - foreach ($rowData as $rowDatum) { - if ($rowDatum != '' && $this->readFilter->readCell($columnLetter, $currentRow)) { - // Unescape enclosures - $rowDatum = str_replace($escapeEnclosures, $this->enclosure, $rowDatum); - - // Convert encoding if necessary - if ($this->inputEncoding !== 'UTF-8') { - $rowDatum = PHPExcel_Shared_String::ConvertEncoding($rowDatum, 'UTF-8', $this->inputEncoding); - } - - // Set cell value - $sheet->getCell($columnLetter . $currentRow)->setValue($rowDatum); - } - ++$columnLetter; - } - ++$currentRow; - } - - // Close file - fclose($fileHandle); - - if ($this->contiguous) { - $this->contiguousRow = $currentRow; - } - - ini_set('auto_detect_line_endings', $lineEnding); - - // Return - return $objPHPExcel; - } - - /** - * Get delimiter - * - * @return string - */ - public function getDelimiter() - { - return $this->delimiter; - } - - /** - * Set delimiter - * - * @param string $pValue Delimiter, defaults to , - * @return PHPExcel_Reader_CSV - */ - public function setDelimiter($pValue = ',') - { - $this->delimiter = $pValue; - return $this; - } - - /** - * Get enclosure - * - * @return string - */ - public function getEnclosure() - { - return $this->enclosure; - } - - /** - * Set enclosure - * - * @param string $pValue Enclosure, defaults to " - * @return PHPExcel_Reader_CSV - */ - public function setEnclosure($pValue = '"') - { - if ($pValue == '') { - $pValue = '"'; - } - $this->enclosure = $pValue; - return $this; - } - - /** - * Get sheet index - * - * @return integer - */ - public function getSheetIndex() - { - return $this->sheetIndex; - } - - /** - * Set sheet index - * - * @param integer $pValue Sheet index - * @return PHPExcel_Reader_CSV - */ - public function setSheetIndex($pValue = 0) - { - $this->sheetIndex = $pValue; - return $this; - } - - /** - * Set Contiguous - * - * @param boolean $contiguous - */ - public function setContiguous($contiguous = false) - { - $this->contiguous = (bool) $contiguous; - if (!$contiguous) { - $this->contiguousRow = -1; - } - - return $this; - } - - /** - * Get Contiguous - * - * @return boolean - */ - public function getContiguous() - { - return $this->contiguous; - } -} diff --git a/Utils/PHPExcel/Reader/DefaultReadFilter.php b/Utils/PHPExcel/Reader/DefaultReadFilter.php deleted file mode 100644 index ea25f63..0000000 --- a/Utils/PHPExcel/Reader/DefaultReadFilter.php +++ /dev/null @@ -1,51 +0,0 @@ -readFilter = new PHPExcel_Reader_DefaultReadFilter(); - } - - - /** - * Can the current PHPExcel_Reader_IReader read the file? - * - * @param string $pFilename - * @return boolean - * @throws PHPExcel_Reader_Exception - */ - public function canRead($pFilename) - { - - // Office xmlns:o="urn:schemas-microsoft-com:office:office" - // Excel xmlns:x="urn:schemas-microsoft-com:office:excel" - // XML Spreadsheet xmlns:ss="urn:schemas-microsoft-com:office:spreadsheet" - // Spreadsheet component xmlns:c="urn:schemas-microsoft-com:office:component:spreadsheet" - // XML schema xmlns:s="uuid:BDC6E3F0-6DA3-11d1-A2A3-00AA00C14882" - // XML data type xmlns:dt="uuid:C2F41010-65B3-11d1-A29F-00AA00C14882" - // MS-persist recordset xmlns:rs="urn:schemas-microsoft-com:rowset" - // Rowset xmlns:z="#RowsetSchema" - // - - $signature = array( - '' - ); - - // Open file - $this->openFile($pFilename); - $fileHandle = $this->fileHandle; - - // Read sample data (first 2 KB will do) - $data = fread($fileHandle, 2048); - fclose($fileHandle); - - $valid = true; - foreach ($signature as $match) { - // every part of the signature must be present - if (strpos($data, $match) === false) { - $valid = false; - break; - } - } - - // Retrieve charset encoding - if (preg_match('//um', $data, $matches)) { - $this->charSet = strtoupper($matches[1]); - } -// echo 'Character Set is ', $this->charSet,'
'; - - return $valid; - } - - - /** - * Reads names of the worksheets from a file, without parsing the whole file to a PHPExcel object - * - * @param string $pFilename - * @throws PHPExcel_Reader_Exception - */ - public function listWorksheetNames($pFilename) - { - // Check if file exists - if (!file_exists($pFilename)) { - throw new PHPExcel_Reader_Exception("Could not open " . $pFilename . " for reading! File does not exist."); - } - if (!$this->canRead($pFilename)) { - throw new PHPExcel_Reader_Exception($pFilename . " is an Invalid Spreadsheet file."); - } - - $worksheetNames = array(); - - $xml = simplexml_load_string($this->securityScan(file_get_contents($pFilename)), 'SimpleXMLElement', PHPExcel_Settings::getLibXmlLoaderOptions()); - $namespaces = $xml->getNamespaces(true); - - $xml_ss = $xml->children($namespaces['ss']); - foreach ($xml_ss->Worksheet as $worksheet) { - $worksheet_ss = $worksheet->attributes($namespaces['ss']); - $worksheetNames[] = self::convertStringEncoding((string) $worksheet_ss['Name'], $this->charSet); - } - - return $worksheetNames; - } - - - /** - * Return worksheet info (Name, Last Column Letter, Last Column Index, Total Rows, Total Columns) - * - * @param string $pFilename - * @throws PHPExcel_Reader_Exception - */ - public function listWorksheetInfo($pFilename) - { - // Check if file exists - if (!file_exists($pFilename)) { - throw new PHPExcel_Reader_Exception("Could not open " . $pFilename . " for reading! File does not exist."); - } - - $worksheetInfo = array(); - - $xml = simplexml_load_string($this->securityScan(file_get_contents($pFilename)), 'SimpleXMLElement', PHPExcel_Settings::getLibXmlLoaderOptions()); - $namespaces = $xml->getNamespaces(true); - - $worksheetID = 1; - $xml_ss = $xml->children($namespaces['ss']); - foreach ($xml_ss->Worksheet as $worksheet) { - $worksheet_ss = $worksheet->attributes($namespaces['ss']); - - $tmpInfo = array(); - $tmpInfo['worksheetName'] = ''; - $tmpInfo['lastColumnLetter'] = 'A'; - $tmpInfo['lastColumnIndex'] = 0; - $tmpInfo['totalRows'] = 0; - $tmpInfo['totalColumns'] = 0; - - if (isset($worksheet_ss['Name'])) { - $tmpInfo['worksheetName'] = (string) $worksheet_ss['Name']; - } else { - $tmpInfo['worksheetName'] = "Worksheet_{$worksheetID}"; - } - - if (isset($worksheet->Table->Row)) { - $rowIndex = 0; - - foreach ($worksheet->Table->Row as $rowData) { - $columnIndex = 0; - $rowHasData = false; - - foreach ($rowData->Cell as $cell) { - if (isset($cell->Data)) { - $tmpInfo['lastColumnIndex'] = max($tmpInfo['lastColumnIndex'], $columnIndex); - $rowHasData = true; - } - - ++$columnIndex; - } - - ++$rowIndex; - - if ($rowHasData) { - $tmpInfo['totalRows'] = max($tmpInfo['totalRows'], $rowIndex); - } - } - } - - $tmpInfo['lastColumnLetter'] = PHPExcel_Cell::stringFromColumnIndex($tmpInfo['lastColumnIndex']); - $tmpInfo['totalColumns'] = $tmpInfo['lastColumnIndex'] + 1; - - $worksheetInfo[] = $tmpInfo; - ++$worksheetID; - } - - return $worksheetInfo; - } - - - /** - * Loads PHPExcel from file - * - * @param string $pFilename - * @return PHPExcel - * @throws PHPExcel_Reader_Exception - */ - public function load($pFilename) - { - // Create new PHPExcel - $objPHPExcel = new PHPExcel(); - $objPHPExcel->removeSheetByIndex(0); - - // Load into this instance - return $this->loadIntoExisting($pFilename, $objPHPExcel); - } - - protected static function identifyFixedStyleValue($styleList, &$styleAttributeValue) - { - $styleAttributeValue = strtolower($styleAttributeValue); - foreach ($styleList as $style) { - if ($styleAttributeValue == strtolower($style)) { - $styleAttributeValue = $style; - return true; - } - } - return false; - } - - /** - * pixel units to excel width units(units of 1/256th of a character width) - * @param pxs - * @return - */ - protected static function pixel2WidthUnits($pxs) - { - $UNIT_OFFSET_MAP = array(0, 36, 73, 109, 146, 182, 219); - - $widthUnits = 256 * ($pxs / 7); - $widthUnits += $UNIT_OFFSET_MAP[($pxs % 7)]; - return $widthUnits; - } - - /** - * excel width units(units of 1/256th of a character width) to pixel units - * @param widthUnits - * @return - */ - protected static function widthUnits2Pixel($widthUnits) - { - $pixels = ($widthUnits / 256) * 7; - $offsetWidthUnits = $widthUnits % 256; - $pixels += round($offsetWidthUnits / (256 / 7)); - return $pixels; - } - - protected static function hex2str($hex) - { - return chr(hexdec($hex[1])); - } - - /** - * Loads PHPExcel from file into PHPExcel instance - * - * @param string $pFilename - * @param PHPExcel $objPHPExcel - * @return PHPExcel - * @throws PHPExcel_Reader_Exception - */ - public function loadIntoExisting($pFilename, PHPExcel $objPHPExcel) - { - $fromFormats = array('\-', '\ '); - $toFormats = array('-', ' '); - - $underlineStyles = array ( - PHPExcel_Style_Font::UNDERLINE_NONE, - PHPExcel_Style_Font::UNDERLINE_DOUBLE, - PHPExcel_Style_Font::UNDERLINE_DOUBLEACCOUNTING, - PHPExcel_Style_Font::UNDERLINE_SINGLE, - PHPExcel_Style_Font::UNDERLINE_SINGLEACCOUNTING - ); - $verticalAlignmentStyles = array ( - PHPExcel_Style_Alignment::VERTICAL_BOTTOM, - PHPExcel_Style_Alignment::VERTICAL_TOP, - PHPExcel_Style_Alignment::VERTICAL_CENTER, - PHPExcel_Style_Alignment::VERTICAL_JUSTIFY - ); - $horizontalAlignmentStyles = array ( - PHPExcel_Style_Alignment::HORIZONTAL_GENERAL, - PHPExcel_Style_Alignment::HORIZONTAL_LEFT, - PHPExcel_Style_Alignment::HORIZONTAL_RIGHT, - PHPExcel_Style_Alignment::HORIZONTAL_CENTER, - PHPExcel_Style_Alignment::HORIZONTAL_CENTER_CONTINUOUS, - PHPExcel_Style_Alignment::HORIZONTAL_JUSTIFY - ); - - $timezoneObj = new DateTimeZone('Europe/London'); - $GMT = new DateTimeZone('UTC'); - - // Check if file exists - if (!file_exists($pFilename)) { - throw new PHPExcel_Reader_Exception("Could not open " . $pFilename . " for reading! File does not exist."); - } - - if (!$this->canRead($pFilename)) { - throw new PHPExcel_Reader_Exception($pFilename . " is an Invalid Spreadsheet file."); - } - - $xml = simplexml_load_string($this->securityScan(file_get_contents($pFilename)), 'SimpleXMLElement', PHPExcel_Settings::getLibXmlLoaderOptions()); - $namespaces = $xml->getNamespaces(true); - - $docProps = $objPHPExcel->getProperties(); - if (isset($xml->DocumentProperties[0])) { - foreach ($xml->DocumentProperties[0] as $propertyName => $propertyValue) { - switch ($propertyName) { - case 'Title': - $docProps->setTitle(self::convertStringEncoding($propertyValue, $this->charSet)); - break; - case 'Subject': - $docProps->setSubject(self::convertStringEncoding($propertyValue, $this->charSet)); - break; - case 'Author': - $docProps->setCreator(self::convertStringEncoding($propertyValue, $this->charSet)); - break; - case 'Created': - $creationDate = strtotime($propertyValue); - $docProps->setCreated($creationDate); - break; - case 'LastAuthor': - $docProps->setLastModifiedBy(self::convertStringEncoding($propertyValue, $this->charSet)); - break; - case 'LastSaved': - $lastSaveDate = strtotime($propertyValue); - $docProps->setModified($lastSaveDate); - break; - case 'Company': - $docProps->setCompany(self::convertStringEncoding($propertyValue, $this->charSet)); - break; - case 'Category': - $docProps->setCategory(self::convertStringEncoding($propertyValue, $this->charSet)); - break; - case 'Manager': - $docProps->setManager(self::convertStringEncoding($propertyValue, $this->charSet)); - break; - case 'Keywords': - $docProps->setKeywords(self::convertStringEncoding($propertyValue, $this->charSet)); - break; - case 'Description': - $docProps->setDescription(self::convertStringEncoding($propertyValue, $this->charSet)); - break; - } - } - } - if (isset($xml->CustomDocumentProperties)) { - foreach ($xml->CustomDocumentProperties[0] as $propertyName => $propertyValue) { - $propertyAttributes = $propertyValue->attributes($namespaces['dt']); - $propertyName = preg_replace_callback('/_x([0-9a-z]{4})_/', 'PHPExcel_Reader_Excel2003XML::hex2str', $propertyName); - $propertyType = PHPExcel_DocumentProperties::PROPERTY_TYPE_UNKNOWN; - switch ((string) $propertyAttributes) { - case 'string': - $propertyType = PHPExcel_DocumentProperties::PROPERTY_TYPE_STRING; - $propertyValue = trim($propertyValue); - break; - case 'boolean': - $propertyType = PHPExcel_DocumentProperties::PROPERTY_TYPE_BOOLEAN; - $propertyValue = (bool) $propertyValue; - break; - case 'integer': - $propertyType = PHPExcel_DocumentProperties::PROPERTY_TYPE_INTEGER; - $propertyValue = intval($propertyValue); - break; - case 'float': - $propertyType = PHPExcel_DocumentProperties::PROPERTY_TYPE_FLOAT; - $propertyValue = floatval($propertyValue); - break; - case 'dateTime.tz': - $propertyType = PHPExcel_DocumentProperties::PROPERTY_TYPE_DATE; - $propertyValue = strtotime(trim($propertyValue)); - break; - } - $docProps->setCustomProperty($propertyName, $propertyValue, $propertyType); - } - } - - foreach ($xml->Styles[0] as $style) { - $style_ss = $style->attributes($namespaces['ss']); - $styleID = (string) $style_ss['ID']; -// echo 'Style ID = '.$styleID.'
'; - $this->styles[$styleID] = (isset($this->styles['Default'])) ? $this->styles['Default'] : array(); - foreach ($style as $styleType => $styleData) { - $styleAttributes = $styleData->attributes($namespaces['ss']); -// echo $styleType.'
'; - switch ($styleType) { - case 'Alignment': - foreach ($styleAttributes as $styleAttributeKey => $styleAttributeValue) { -// echo $styleAttributeKey.' = '.$styleAttributeValue.'
'; - $styleAttributeValue = (string) $styleAttributeValue; - switch ($styleAttributeKey) { - case 'Vertical': - if (self::identifyFixedStyleValue($verticalAlignmentStyles, $styleAttributeValue)) { - $this->styles[$styleID]['alignment']['vertical'] = $styleAttributeValue; - } - break; - case 'Horizontal': - if (self::identifyFixedStyleValue($horizontalAlignmentStyles, $styleAttributeValue)) { - $this->styles[$styleID]['alignment']['horizontal'] = $styleAttributeValue; - } - break; - case 'WrapText': - $this->styles[$styleID]['alignment']['wrap'] = true; - break; - } - } - break; - case 'Borders': - foreach ($styleData->Border as $borderStyle) { - $borderAttributes = $borderStyle->attributes($namespaces['ss']); - $thisBorder = array(); - foreach ($borderAttributes as $borderStyleKey => $borderStyleValue) { -// echo $borderStyleKey.' = '.$borderStyleValue.'
'; - switch ($borderStyleKey) { - case 'LineStyle': - $thisBorder['style'] = PHPExcel_Style_Border::BORDER_MEDIUM; -// $thisBorder['style'] = $borderStyleValue; - break; - case 'Weight': -// $thisBorder['style'] = $borderStyleValue; - break; - case 'Position': - $borderPosition = strtolower($borderStyleValue); - break; - case 'Color': - $borderColour = substr($borderStyleValue, 1); - $thisBorder['color']['rgb'] = $borderColour; - break; - } - } - if (!empty($thisBorder)) { - if (($borderPosition == 'left') || ($borderPosition == 'right') || ($borderPosition == 'top') || ($borderPosition == 'bottom')) { - $this->styles[$styleID]['borders'][$borderPosition] = $thisBorder; - } - } - } - break; - case 'Font': - foreach ($styleAttributes as $styleAttributeKey => $styleAttributeValue) { -// echo $styleAttributeKey.' = '.$styleAttributeValue.'
'; - $styleAttributeValue = (string) $styleAttributeValue; - switch ($styleAttributeKey) { - case 'FontName': - $this->styles[$styleID]['font']['name'] = $styleAttributeValue; - break; - case 'Size': - $this->styles[$styleID]['font']['size'] = $styleAttributeValue; - break; - case 'Color': - $this->styles[$styleID]['font']['color']['rgb'] = substr($styleAttributeValue, 1); - break; - case 'Bold': - $this->styles[$styleID]['font']['bold'] = true; - break; - case 'Italic': - $this->styles[$styleID]['font']['italic'] = true; - break; - case 'Underline': - if (self::identifyFixedStyleValue($underlineStyles, $styleAttributeValue)) { - $this->styles[$styleID]['font']['underline'] = $styleAttributeValue; - } - break; - } - } - break; - case 'Interior': - foreach ($styleAttributes as $styleAttributeKey => $styleAttributeValue) { -// echo $styleAttributeKey.' = '.$styleAttributeValue.'
'; - switch ($styleAttributeKey) { - case 'Color': - $this->styles[$styleID]['fill']['color']['rgb'] = substr($styleAttributeValue, 1); - break; - } - } - break; - case 'NumberFormat': - foreach ($styleAttributes as $styleAttributeKey => $styleAttributeValue) { -// echo $styleAttributeKey.' = '.$styleAttributeValue.'
'; - $styleAttributeValue = str_replace($fromFormats, $toFormats, $styleAttributeValue); - switch ($styleAttributeValue) { - case 'Short Date': - $styleAttributeValue = 'dd/mm/yyyy'; - break; - } - if ($styleAttributeValue > '') { - $this->styles[$styleID]['numberformat']['code'] = $styleAttributeValue; - } - } - break; - case 'Protection': - foreach ($styleAttributes as $styleAttributeKey => $styleAttributeValue) { -// echo $styleAttributeKey.' = '.$styleAttributeValue.'
'; - } - break; - } - } -// print_r($this->styles[$styleID]); -// echo '
'; - } -// echo '
'; - - $worksheetID = 0; - $xml_ss = $xml->children($namespaces['ss']); - - foreach ($xml_ss->Worksheet as $worksheet) { - $worksheet_ss = $worksheet->attributes($namespaces['ss']); - - if ((isset($this->loadSheetsOnly)) && (isset($worksheet_ss['Name'])) && - (!in_array($worksheet_ss['Name'], $this->loadSheetsOnly))) { - continue; - } - -// echo '

Worksheet: ', $worksheet_ss['Name'],'

'; -// - // Create new Worksheet - $objPHPExcel->createSheet(); - $objPHPExcel->setActiveSheetIndex($worksheetID); - if (isset($worksheet_ss['Name'])) { - $worksheetName = self::convertStringEncoding((string) $worksheet_ss['Name'], $this->charSet); - // Use false for $updateFormulaCellReferences to prevent adjustment of worksheet references in - // formula cells... during the load, all formulae should be correct, and we're simply bringing - // the worksheet name in line with the formula, not the reverse - $objPHPExcel->getActiveSheet()->setTitle($worksheetName, false); - } - - $columnID = 'A'; - if (isset($worksheet->Table->Column)) { - foreach ($worksheet->Table->Column as $columnData) { - $columnData_ss = $columnData->attributes($namespaces['ss']); - if (isset($columnData_ss['Index'])) { - $columnID = PHPExcel_Cell::stringFromColumnIndex($columnData_ss['Index']-1); - } - if (isset($columnData_ss['Width'])) { - $columnWidth = $columnData_ss['Width']; -// echo 'Setting column width for '.$columnID.' to '.$columnWidth.'
'; - $objPHPExcel->getActiveSheet()->getColumnDimension($columnID)->setWidth($columnWidth / 5.4); - } - ++$columnID; - } - } - - $rowID = 1; - if (isset($worksheet->Table->Row)) { - $additionalMergedCells = 0; - foreach ($worksheet->Table->Row as $rowData) { - $rowHasData = false; - $row_ss = $rowData->attributes($namespaces['ss']); - if (isset($row_ss['Index'])) { - $rowID = (integer) $row_ss['Index']; - } -// echo 'Row '.$rowID.'
'; - - $columnID = 'A'; - foreach ($rowData->Cell as $cell) { - $cell_ss = $cell->attributes($namespaces['ss']); - if (isset($cell_ss['Index'])) { - $columnID = PHPExcel_Cell::stringFromColumnIndex($cell_ss['Index']-1); - } - $cellRange = $columnID.$rowID; - - if ($this->getReadFilter() !== null) { - if (!$this->getReadFilter()->readCell($columnID, $rowID, $worksheetName)) { - continue; - } - } - - if ((isset($cell_ss['MergeAcross'])) || (isset($cell_ss['MergeDown']))) { - $columnTo = $columnID; - if (isset($cell_ss['MergeAcross'])) { - $additionalMergedCells += (int)$cell_ss['MergeAcross']; - $columnTo = PHPExcel_Cell::stringFromColumnIndex(PHPExcel_Cell::columnIndexFromString($columnID) + $cell_ss['MergeAcross'] -1); - } - $rowTo = $rowID; - if (isset($cell_ss['MergeDown'])) { - $rowTo = $rowTo + $cell_ss['MergeDown']; - } - $cellRange .= ':'.$columnTo.$rowTo; - $objPHPExcel->getActiveSheet()->mergeCells($cellRange); - } - - $cellIsSet = $hasCalculatedValue = false; - $cellDataFormula = ''; - if (isset($cell_ss['Formula'])) { - $cellDataFormula = $cell_ss['Formula']; - // added this as a check for array formulas - if (isset($cell_ss['ArrayRange'])) { - $cellDataCSEFormula = $cell_ss['ArrayRange']; -// echo "found an array formula at ".$columnID.$rowID."
"; - } - $hasCalculatedValue = true; - } - if (isset($cell->Data)) { - $cellValue = $cellData = $cell->Data; - $type = PHPExcel_Cell_DataType::TYPE_NULL; - $cellData_ss = $cellData->attributes($namespaces['ss']); - if (isset($cellData_ss['Type'])) { - $cellDataType = $cellData_ss['Type']; - switch ($cellDataType) { - /* - const TYPE_STRING = 's'; - const TYPE_FORMULA = 'f'; - const TYPE_NUMERIC = 'n'; - const TYPE_BOOL = 'b'; - const TYPE_NULL = 'null'; - const TYPE_INLINE = 'inlineStr'; - const TYPE_ERROR = 'e'; - */ - case 'String': - $cellValue = self::convertStringEncoding($cellValue, $this->charSet); - $type = PHPExcel_Cell_DataType::TYPE_STRING; - break; - case 'Number': - $type = PHPExcel_Cell_DataType::TYPE_NUMERIC; - $cellValue = (float) $cellValue; - if (floor($cellValue) == $cellValue) { - $cellValue = (integer) $cellValue; - } - break; - case 'Boolean': - $type = PHPExcel_Cell_DataType::TYPE_BOOL; - $cellValue = ($cellValue != 0); - break; - case 'DateTime': - $type = PHPExcel_Cell_DataType::TYPE_NUMERIC; - $cellValue = PHPExcel_Shared_Date::PHPToExcel(strtotime($cellValue)); - break; - case 'Error': - $type = PHPExcel_Cell_DataType::TYPE_ERROR; - break; - } - } - - if ($hasCalculatedValue) { -// echo 'FORMULA
'; - $type = PHPExcel_Cell_DataType::TYPE_FORMULA; - $columnNumber = PHPExcel_Cell::columnIndexFromString($columnID); - if (substr($cellDataFormula, 0, 3) == 'of:') { - $cellDataFormula = substr($cellDataFormula, 3); -// echo 'Before: ', $cellDataFormula,'
'; - $temp = explode('"', $cellDataFormula); - $key = false; - foreach ($temp as &$value) { - // Only replace in alternate array entries (i.e. non-quoted blocks) - if ($key = !$key) { - $value = str_replace(array('[.', '.', ']'), '', $value); - } - } - } else { - // Convert R1C1 style references to A1 style references (but only when not quoted) -// echo 'Before: ', $cellDataFormula,'
'; - $temp = explode('"', $cellDataFormula); - $key = false; - foreach ($temp as &$value) { - // Only replace in alternate array entries (i.e. non-quoted blocks) - if ($key = !$key) { - preg_match_all('/(R(\[?-?\d*\]?))(C(\[?-?\d*\]?))/', $value, $cellReferences, PREG_SET_ORDER + PREG_OFFSET_CAPTURE); - // Reverse the matches array, otherwise all our offsets will become incorrect if we modify our way - // through the formula from left to right. Reversing means that we work right to left.through - // the formula - $cellReferences = array_reverse($cellReferences); - // Loop through each R1C1 style reference in turn, converting it to its A1 style equivalent, - // then modify the formula to use that new reference - foreach ($cellReferences as $cellReference) { - $rowReference = $cellReference[2][0]; - // Empty R reference is the current row - if ($rowReference == '') { - $rowReference = $rowID; - } - // Bracketed R references are relative to the current row - if ($rowReference{0} == '[') { - $rowReference = $rowID + trim($rowReference, '[]'); - } - $columnReference = $cellReference[4][0]; - // Empty C reference is the current column - if ($columnReference == '') { - $columnReference = $columnNumber; - } - // Bracketed C references are relative to the current column - if ($columnReference{0} == '[') { - $columnReference = $columnNumber + trim($columnReference, '[]'); - } - $A1CellReference = PHPExcel_Cell::stringFromColumnIndex($columnReference-1).$rowReference; - $value = substr_replace($value, $A1CellReference, $cellReference[0][1], strlen($cellReference[0][0])); - } - } - } - } - unset($value); - // Then rebuild the formula string - $cellDataFormula = implode('"', $temp); -// echo 'After: ', $cellDataFormula,'
'; - } - -// echo 'Cell '.$columnID.$rowID.' is a '.$type.' with a value of '.(($hasCalculatedValue) ? $cellDataFormula : $cellValue).'
'; -// - $objPHPExcel->getActiveSheet()->getCell($columnID.$rowID)->setValueExplicit((($hasCalculatedValue) ? $cellDataFormula : $cellValue), $type); - if ($hasCalculatedValue) { -// echo 'Formula result is '.$cellValue.'
'; - $objPHPExcel->getActiveSheet()->getCell($columnID.$rowID)->setCalculatedValue($cellValue); - } - $cellIsSet = $rowHasData = true; - } - - if (isset($cell->Comment)) { -// echo 'comment found
'; - $commentAttributes = $cell->Comment->attributes($namespaces['ss']); - $author = 'unknown'; - if (isset($commentAttributes->Author)) { - $author = (string)$commentAttributes->Author; -// echo 'Author: ', $author,'
'; - } - $node = $cell->Comment->Data->asXML(); -// $annotation = str_replace('html:','',substr($node,49,-10)); -// echo $annotation,'
'; - $annotation = strip_tags($node); -// echo 'Annotation: ', $annotation,'
'; - $objPHPExcel->getActiveSheet()->getComment($columnID.$rowID)->setAuthor(self::convertStringEncoding($author, $this->charSet))->setText($this->parseRichText($annotation)); - } - - if (($cellIsSet) && (isset($cell_ss['StyleID']))) { - $style = (string) $cell_ss['StyleID']; -// echo 'Cell style for '.$columnID.$rowID.' is '.$style.'
'; - if ((isset($this->styles[$style])) && (!empty($this->styles[$style]))) { -// echo 'Cell '.$columnID.$rowID.'
'; -// print_r($this->styles[$style]); -// echo '
'; - if (!$objPHPExcel->getActiveSheet()->cellExists($columnID.$rowID)) { - $objPHPExcel->getActiveSheet()->getCell($columnID.$rowID)->setValue(null); - } - $objPHPExcel->getActiveSheet()->getStyle($cellRange)->applyFromArray($this->styles[$style]); - } - } - ++$columnID; - while ($additionalMergedCells > 0) { - ++$columnID; - $additionalMergedCells--; - } - } - - if ($rowHasData) { - if (isset($row_ss['StyleID'])) { - $rowStyle = $row_ss['StyleID']; - } - if (isset($row_ss['Height'])) { - $rowHeight = $row_ss['Height']; -// echo 'Setting row height to '.$rowHeight.'
'; - $objPHPExcel->getActiveSheet()->getRowDimension($rowID)->setRowHeight($rowHeight); - } - } - - ++$rowID; - } - } - ++$worksheetID; - } - - // Return - return $objPHPExcel; - } - - - protected static function convertStringEncoding($string, $charset) - { - if ($charset != 'UTF-8') { - return PHPExcel_Shared_String::ConvertEncoding($string, 'UTF-8', $charset); - } - return $string; - } - - - protected function parseRichText($is = '') - { - $value = new PHPExcel_RichText(); - - $value->createText(self::convertStringEncoding($is, $this->charSet)); - - return $value; - } -} diff --git a/Utils/PHPExcel/Reader/Excel2007.php b/Utils/PHPExcel/Reader/Excel2007.php deleted file mode 100644 index bf387a0..0000000 --- a/Utils/PHPExcel/Reader/Excel2007.php +++ /dev/null @@ -1,2050 +0,0 @@ -readFilter = new PHPExcel_Reader_DefaultReadFilter(); - $this->referenceHelper = PHPExcel_ReferenceHelper::getInstance(); - } - - /** - * Can the current PHPExcel_Reader_IReader read the file? - * - * @param string $pFilename - * @return boolean - * @throws PHPExcel_Reader_Exception - */ - public function canRead($pFilename) - { - // Check if file exists - if (!file_exists($pFilename)) { - throw new PHPExcel_Reader_Exception("Could not open " . $pFilename . " for reading! File does not exist."); - } - - $zipClass = PHPExcel_Settings::getZipClass(); - - // Check if zip class exists -// if (!class_exists($zipClass, false)) { -// throw new PHPExcel_Reader_Exception($zipClass . " library is not enabled"); -// } - - $xl = false; - // Load file - $zip = new $zipClass; - if ($zip->open($pFilename) === true) { - // check if it is an OOXML archive - $rels = simplexml_load_string($this->securityScan($this->getFromZipArchive($zip, "_rels/.rels")), 'SimpleXMLElement', PHPExcel_Settings::getLibXmlLoaderOptions()); - if ($rels !== false) { - foreach ($rels->Relationship as $rel) { - switch ($rel["Type"]) { - case "http://schemas.openxmlformats.org/officeDocument/2006/relationships/officeDocument": - if (basename($rel["Target"]) == 'workbook.xml') { - $xl = true; - } - break; - - } - } - } - $zip->close(); - } - - return $xl; - } - - - /** - * Reads names of the worksheets from a file, without parsing the whole file to a PHPExcel object - * - * @param string $pFilename - * @throws PHPExcel_Reader_Exception - */ - public function listWorksheetNames($pFilename) - { - // Check if file exists - if (!file_exists($pFilename)) { - throw new PHPExcel_Reader_Exception("Could not open " . $pFilename . " for reading! File does not exist."); - } - - $worksheetNames = array(); - - $zipClass = PHPExcel_Settings::getZipClass(); - - $zip = new $zipClass; - $zip->open($pFilename); - - // The files we're looking at here are small enough that simpleXML is more efficient than XMLReader - $rels = simplexml_load_string( - $this->securityScan($this->getFromZipArchive($zip, "_rels/.rels"), 'SimpleXMLElement', PHPExcel_Settings::getLibXmlLoaderOptions()) - ); //~ http://schemas.openxmlformats.org/package/2006/relationships"); - foreach ($rels->Relationship as $rel) { - switch ($rel["Type"]) { - case "http://schemas.openxmlformats.org/officeDocument/2006/relationships/officeDocument": - $xmlWorkbook = simplexml_load_string( - $this->securityScan($this->getFromZipArchive($zip, "{$rel['Target']}"), 'SimpleXMLElement', PHPExcel_Settings::getLibXmlLoaderOptions()) - ); //~ http://schemas.openxmlformats.org/spreadsheetml/2006/main"); - - if ($xmlWorkbook->sheets) { - foreach ($xmlWorkbook->sheets->sheet as $eleSheet) { - // Check if sheet should be skipped - $worksheetNames[] = (string) $eleSheet["name"]; - } - } - } - } - - $zip->close(); - - return $worksheetNames; - } - - - /** - * Return worksheet info (Name, Last Column Letter, Last Column Index, Total Rows, Total Columns) - * - * @param string $pFilename - * @throws PHPExcel_Reader_Exception - */ - public function listWorksheetInfo($pFilename) - { - // Check if file exists - if (!file_exists($pFilename)) { - throw new PHPExcel_Reader_Exception("Could not open " . $pFilename . " for reading! File does not exist."); - } - - $worksheetInfo = array(); - - $zipClass = PHPExcel_Settings::getZipClass(); - - $zip = new $zipClass; - $zip->open($pFilename); - - $rels = simplexml_load_string($this->securityScan($this->getFromZipArchive($zip, "_rels/.rels")), 'SimpleXMLElement', PHPExcel_Settings::getLibXmlLoaderOptions()); //~ http://schemas.openxmlformats.org/package/2006/relationships"); - foreach ($rels->Relationship as $rel) { - if ($rel["Type"] == "http://schemas.openxmlformats.org/officeDocument/2006/relationships/officeDocument") { - $dir = dirname($rel["Target"]); - $relsWorkbook = simplexml_load_string($this->securityScan($this->getFromZipArchive($zip, "$dir/_rels/" . basename($rel["Target"]) . ".rels")), 'SimpleXMLElement', PHPExcel_Settings::getLibXmlLoaderOptions()); //~ http://schemas.openxmlformats.org/package/2006/relationships"); - $relsWorkbook->registerXPathNamespace("rel", "http://schemas.openxmlformats.org/package/2006/relationships"); - - $worksheets = array(); - foreach ($relsWorkbook->Relationship as $ele) { - if ($ele["Type"] == "http://schemas.openxmlformats.org/officeDocument/2006/relationships/worksheet") { - $worksheets[(string) $ele["Id"]] = $ele["Target"]; - } - } - - $xmlWorkbook = simplexml_load_string($this->securityScan($this->getFromZipArchive($zip, "{$rel['Target']}")), 'SimpleXMLElement', PHPExcel_Settings::getLibXmlLoaderOptions()); //~ http://schemas.openxmlformats.org/spreadsheetml/2006/main"); - if ($xmlWorkbook->sheets) { - $dir = dirname($rel["Target"]); - foreach ($xmlWorkbook->sheets->sheet as $eleSheet) { - $tmpInfo = array( - 'worksheetName' => (string) $eleSheet["name"], - 'lastColumnLetter' => 'A', - 'lastColumnIndex' => 0, - 'totalRows' => 0, - 'totalColumns' => 0, - ); - - $fileWorksheet = $worksheets[(string) self::getArrayItem($eleSheet->attributes("http://schemas.openxmlformats.org/officeDocument/2006/relationships"), "id")]; - - $xml = new XMLReader(); - $res = $xml->xml($this->securityScanFile('zip://'.PHPExcel_Shared_File::realpath($pFilename).'#'."$dir/$fileWorksheet"), null, PHPExcel_Settings::getLibXmlLoaderOptions()); - $xml->setParserProperty(2, true); - - $currCells = 0; - while ($xml->read()) { - if ($xml->name == 'row' && $xml->nodeType == XMLReader::ELEMENT) { - $row = $xml->getAttribute('r'); - $tmpInfo['totalRows'] = $row; - $tmpInfo['totalColumns'] = max($tmpInfo['totalColumns'], $currCells); - $currCells = 0; - } elseif ($xml->name == 'c' && $xml->nodeType == XMLReader::ELEMENT) { - $currCells++; - } - } - $tmpInfo['totalColumns'] = max($tmpInfo['totalColumns'], $currCells); - $xml->close(); - - $tmpInfo['lastColumnIndex'] = $tmpInfo['totalColumns'] - 1; - $tmpInfo['lastColumnLetter'] = PHPExcel_Cell::stringFromColumnIndex($tmpInfo['lastColumnIndex']); - - $worksheetInfo[] = $tmpInfo; - } - } - } - } - - $zip->close(); - - return $worksheetInfo; - } - - private static function castToBoolean($c) - { -// echo 'Initial Cast to Boolean', PHP_EOL; - $value = isset($c->v) ? (string) $c->v : null; - if ($value == '0') { - return false; - } elseif ($value == '1') { - return true; - } else { - return (bool)$c->v; - } - return $value; - } - - private static function castToError($c) - { -// echo 'Initial Cast to Error', PHP_EOL; - return isset($c->v) ? (string) $c->v : null; - } - - private static function castToString($c) - { -// echo 'Initial Cast to String, PHP_EOL; - return isset($c->v) ? (string) $c->v : null; - } - - private function castToFormula($c, $r, &$cellDataType, &$value, &$calculatedValue, &$sharedFormulas, $castBaseType) - { -// echo 'Formula', PHP_EOL; -// echo '$c->f is ', $c->f, PHP_EOL; - $cellDataType = 'f'; - $value = "={$c->f}"; - $calculatedValue = self::$castBaseType($c); - - // Shared formula? - if (isset($c->f['t']) && strtolower((string)$c->f['t']) == 'shared') { -// echo 'SHARED FORMULA', PHP_EOL; - $instance = (string)$c->f['si']; - -// echo 'Instance ID = ', $instance, PHP_EOL; -// -// echo 'Shared Formula Array:', PHP_EOL; -// print_r($sharedFormulas); - if (!isset($sharedFormulas[(string)$c->f['si']])) { -// echo 'SETTING NEW SHARED FORMULA', PHP_EOL; -// echo 'Master is ', $r, PHP_EOL; -// echo 'Formula is ', $value, PHP_EOL; - $sharedFormulas[$instance] = array('master' => $r, 'formula' => $value); -// echo 'New Shared Formula Array:', PHP_EOL; -// print_r($sharedFormulas); - } else { -// echo 'GETTING SHARED FORMULA', PHP_EOL; -// echo 'Master is ', $sharedFormulas[$instance]['master'], PHP_EOL; -// echo 'Formula is ', $sharedFormulas[$instance]['formula'], PHP_EOL; - $master = PHPExcel_Cell::coordinateFromString($sharedFormulas[$instance]['master']); - $current = PHPExcel_Cell::coordinateFromString($r); - - $difference = array(0, 0); - $difference[0] = PHPExcel_Cell::columnIndexFromString($current[0]) - PHPExcel_Cell::columnIndexFromString($master[0]); - $difference[1] = $current[1] - $master[1]; - - $value = $this->referenceHelper->updateFormulaReferences($sharedFormulas[$instance]['formula'], 'A1', $difference[0], $difference[1]); -// echo 'Adjusted Formula is ', $value, PHP_EOL; - } - } - } - - - private function getFromZipArchive($archive, $fileName = '') - { - // Root-relative paths - if (strpos($fileName, '//') !== false) { - $fileName = substr($fileName, strpos($fileName, '//') + 1); - } - $fileName = PHPExcel_Shared_File::realpath($fileName); - - // Sadly, some 3rd party xlsx generators don't use consistent case for filenaming - // so we need to load case-insensitively from the zip file - - // Apache POI fixes - $contents = $archive->getFromIndex( - $archive->locateName($fileName, ZIPARCHIVE::FL_NOCASE) - ); - if ($contents === false) { - $contents = $archive->getFromIndex( - $archive->locateName(substr($fileName, 1), ZIPARCHIVE::FL_NOCASE) - ); - } - - return $contents; - } - - - /** - * Loads PHPExcel from file - * - * @param string $pFilename - * @return PHPExcel - * @throws PHPExcel_Reader_Exception - */ - public function load($pFilename) - { - // Check if file exists - if (!file_exists($pFilename)) { - throw new PHPExcel_Reader_Exception("Could not open " . $pFilename . " for reading! File does not exist."); - } - - // Initialisations - $excel = new PHPExcel; - $excel->removeSheetByIndex(0); - if (!$this->readDataOnly) { - $excel->removeCellStyleXfByIndex(0); // remove the default style - $excel->removeCellXfByIndex(0); // remove the default style - } - - $zipClass = PHPExcel_Settings::getZipClass(); - - $zip = new $zipClass; - $zip->open($pFilename); - - // Read the theme first, because we need the colour scheme when reading the styles - $wbRels = simplexml_load_string($this->securityScan($this->getFromZipArchive($zip, "xl/_rels/workbook.xml.rels")), 'SimpleXMLElement', PHPExcel_Settings::getLibXmlLoaderOptions()); //~ http://schemas.openxmlformats.org/package/2006/relationships"); - foreach ($wbRels->Relationship as $rel) { - switch ($rel["Type"]) { - case "http://schemas.openxmlformats.org/officeDocument/2006/relationships/theme": - $themeOrderArray = array('lt1', 'dk1', 'lt2', 'dk2'); - $themeOrderAdditional = count($themeOrderArray); - - $xmlTheme = simplexml_load_string($this->securityScan($this->getFromZipArchive($zip, "xl/{$rel['Target']}")), 'SimpleXMLElement', PHPExcel_Settings::getLibXmlLoaderOptions()); - if (is_object($xmlTheme)) { - $xmlThemeName = $xmlTheme->attributes(); - $xmlTheme = $xmlTheme->children("http://schemas.openxmlformats.org/drawingml/2006/main"); - $themeName = (string)$xmlThemeName['name']; - - $colourScheme = $xmlTheme->themeElements->clrScheme->attributes(); - $colourSchemeName = (string)$colourScheme['name']; - $colourScheme = $xmlTheme->themeElements->clrScheme->children("http://schemas.openxmlformats.org/drawingml/2006/main"); - - $themeColours = array(); - foreach ($colourScheme as $k => $xmlColour) { - $themePos = array_search($k, $themeOrderArray); - if ($themePos === false) { - $themePos = $themeOrderAdditional++; - } - if (isset($xmlColour->sysClr)) { - $xmlColourData = $xmlColour->sysClr->attributes(); - $themeColours[$themePos] = $xmlColourData['lastClr']; - } elseif (isset($xmlColour->srgbClr)) { - $xmlColourData = $xmlColour->srgbClr->attributes(); - $themeColours[$themePos] = $xmlColourData['val']; - } - } - self::$theme = new PHPExcel_Reader_Excel2007_Theme($themeName, $colourSchemeName, $themeColours); - } - break; - } - } - - $rels = simplexml_load_string($this->securityScan($this->getFromZipArchive($zip, "_rels/.rels")), 'SimpleXMLElement', PHPExcel_Settings::getLibXmlLoaderOptions()); //~ http://schemas.openxmlformats.org/package/2006/relationships"); - foreach ($rels->Relationship as $rel) { - switch ($rel["Type"]) { - case "http://schemas.openxmlformats.org/package/2006/relationships/metadata/core-properties": - $xmlCore = simplexml_load_string($this->securityScan($this->getFromZipArchive($zip, "{$rel['Target']}")), 'SimpleXMLElement', PHPExcel_Settings::getLibXmlLoaderOptions()); - if (is_object($xmlCore)) { - $xmlCore->registerXPathNamespace("dc", "http://purl.org/dc/elements/1.1/"); - $xmlCore->registerXPathNamespace("dcterms", "http://purl.org/dc/terms/"); - $xmlCore->registerXPathNamespace("cp", "http://schemas.openxmlformats.org/package/2006/metadata/core-properties"); - $docProps = $excel->getProperties(); - $docProps->setCreator((string) self::getArrayItem($xmlCore->xpath("dc:creator"))); - $docProps->setLastModifiedBy((string) self::getArrayItem($xmlCore->xpath("cp:lastModifiedBy"))); - $docProps->setCreated(strtotime(self::getArrayItem($xmlCore->xpath("dcterms:created")))); //! respect xsi:type - $docProps->setModified(strtotime(self::getArrayItem($xmlCore->xpath("dcterms:modified")))); //! respect xsi:type - $docProps->setTitle((string) self::getArrayItem($xmlCore->xpath("dc:title"))); - $docProps->setDescription((string) self::getArrayItem($xmlCore->xpath("dc:description"))); - $docProps->setSubject((string) self::getArrayItem($xmlCore->xpath("dc:subject"))); - $docProps->setKeywords((string) self::getArrayItem($xmlCore->xpath("cp:keywords"))); - $docProps->setCategory((string) self::getArrayItem($xmlCore->xpath("cp:category"))); - } - break; - case "http://schemas.openxmlformats.org/officeDocument/2006/relationships/extended-properties": - $xmlCore = simplexml_load_string($this->securityScan($this->getFromZipArchive($zip, "{$rel['Target']}")), 'SimpleXMLElement', PHPExcel_Settings::getLibXmlLoaderOptions()); - if (is_object($xmlCore)) { - $docProps = $excel->getProperties(); - if (isset($xmlCore->Company)) { - $docProps->setCompany((string) $xmlCore->Company); - } - if (isset($xmlCore->Manager)) { - $docProps->setManager((string) $xmlCore->Manager); - } - } - break; - case "http://schemas.openxmlformats.org/officeDocument/2006/relationships/custom-properties": - $xmlCore = simplexml_load_string($this->securityScan($this->getFromZipArchive($zip, "{$rel['Target']}")), 'SimpleXMLElement', PHPExcel_Settings::getLibXmlLoaderOptions()); - if (is_object($xmlCore)) { - $docProps = $excel->getProperties(); - foreach ($xmlCore as $xmlProperty) { - $cellDataOfficeAttributes = $xmlProperty->attributes(); - if (isset($cellDataOfficeAttributes['name'])) { - $propertyName = (string) $cellDataOfficeAttributes['name']; - $cellDataOfficeChildren = $xmlProperty->children('http://schemas.openxmlformats.org/officeDocument/2006/docPropsVTypes'); - $attributeType = $cellDataOfficeChildren->getName(); - $attributeValue = (string) $cellDataOfficeChildren->{$attributeType}; - $attributeValue = PHPExcel_DocumentProperties::convertProperty($attributeValue, $attributeType); - $attributeType = PHPExcel_DocumentProperties::convertPropertyType($attributeType); - $docProps->setCustomProperty($propertyName, $attributeValue, $attributeType); - } - } - } - break; - //Ribbon - case "http://schemas.microsoft.com/office/2006/relationships/ui/extensibility": - $customUI = $rel['Target']; - if (!is_null($customUI)) { - $this->readRibbon($excel, $customUI, $zip); - } - break; - case "http://schemas.openxmlformats.org/officeDocument/2006/relationships/officeDocument": - $dir = dirname($rel["Target"]); - $relsWorkbook = simplexml_load_string($this->securityScan($this->getFromZipArchive($zip, "$dir/_rels/" . basename($rel["Target"]) . ".rels")), 'SimpleXMLElement', PHPExcel_Settings::getLibXmlLoaderOptions()); //~ http://schemas.openxmlformats.org/package/2006/relationships"); - $relsWorkbook->registerXPathNamespace("rel", "http://schemas.openxmlformats.org/package/2006/relationships"); - - $sharedStrings = array(); - $xpath = self::getArrayItem($relsWorkbook->xpath("rel:Relationship[@Type='http://schemas.openxmlformats.org/officeDocument/2006/relationships/sharedStrings']")); - $xmlStrings = simplexml_load_string($this->securityScan($this->getFromZipArchive($zip, "$dir/$xpath[Target]")), 'SimpleXMLElement', PHPExcel_Settings::getLibXmlLoaderOptions()); //~ http://schemas.openxmlformats.org/spreadsheetml/2006/main"); - if (isset($xmlStrings) && isset($xmlStrings->si)) { - foreach ($xmlStrings->si as $val) { - if (isset($val->t)) { - $sharedStrings[] = PHPExcel_Shared_String::ControlCharacterOOXML2PHP((string) $val->t); - } elseif (isset($val->r)) { - $sharedStrings[] = $this->parseRichText($val); - } - } - } - - $worksheets = array(); - $macros = $customUI = null; - foreach ($relsWorkbook->Relationship as $ele) { - switch ($ele['Type']) { - case "http://schemas.openxmlformats.org/officeDocument/2006/relationships/worksheet": - $worksheets[(string) $ele["Id"]] = $ele["Target"]; - break; - // a vbaProject ? (: some macros) - case "http://schemas.microsoft.com/office/2006/relationships/vbaProject": - $macros = $ele["Target"]; - break; - } - } - - if (!is_null($macros)) { - $macrosCode = $this->getFromZipArchive($zip, 'xl/vbaProject.bin');//vbaProject.bin always in 'xl' dir and always named vbaProject.bin - if ($macrosCode !== false) { - $excel->setMacrosCode($macrosCode); - $excel->setHasMacros(true); - //short-circuit : not reading vbaProject.bin.rel to get Signature =>allways vbaProjectSignature.bin in 'xl' dir - $Certificate = $this->getFromZipArchive($zip, 'xl/vbaProjectSignature.bin'); - if ($Certificate !== false) { - $excel->setMacrosCertificate($Certificate); - } - } - } - $styles = array(); - $cellStyles = array(); - $xpath = self::getArrayItem($relsWorkbook->xpath("rel:Relationship[@Type='http://schemas.openxmlformats.org/officeDocument/2006/relationships/styles']")); - $xmlStyles = simplexml_load_string($this->securityScan($this->getFromZipArchive($zip, "$dir/$xpath[Target]")), 'SimpleXMLElement', PHPExcel_Settings::getLibXmlLoaderOptions()); - //~ http://schemas.openxmlformats.org/spreadsheetml/2006/main"); - - $numFmts = null; - if ($xmlStyles && $xmlStyles->numFmts[0]) { - $numFmts = $xmlStyles->numFmts[0]; - } - if (isset($numFmts) && ($numFmts !== null)) { - $numFmts->registerXPathNamespace("sml", "http://schemas.openxmlformats.org/spreadsheetml/2006/main"); - } - if (!$this->readDataOnly && $xmlStyles) { - foreach ($xmlStyles->cellXfs->xf as $xf) { - $numFmt = PHPExcel_Style_NumberFormat::FORMAT_GENERAL; - if ($xf["numFmtId"]) { - if (isset($numFmts)) { - $tmpNumFmt = self::getArrayItem($numFmts->xpath("sml:numFmt[@numFmtId=$xf[numFmtId]]")); - - if (isset($tmpNumFmt["formatCode"])) { - $numFmt = (string) $tmpNumFmt["formatCode"]; - } - } - - // We shouldn't override any of the built-in MS Excel values (values below id 164) - // But there's a lot of naughty homebrew xlsx writers that do use "reserved" id values that aren't actually used - // So we make allowance for them rather than lose formatting masks - if ((int)$xf["numFmtId"] < 164 && PHPExcel_Style_NumberFormat::builtInFormatCode((int)$xf["numFmtId"]) !== '') { - $numFmt = PHPExcel_Style_NumberFormat::builtInFormatCode((int)$xf["numFmtId"]); - } - } - $quotePrefix = false; - if (isset($xf["quotePrefix"])) { - $quotePrefix = (boolean) $xf["quotePrefix"]; - } - - $style = (object) array( - "numFmt" => $numFmt, - "font" => $xmlStyles->fonts->font[intval($xf["fontId"])], - "fill" => $xmlStyles->fills->fill[intval($xf["fillId"])], - "border" => $xmlStyles->borders->border[intval($xf["borderId"])], - "alignment" => $xf->alignment, - "protection" => $xf->protection, - "quotePrefix" => $quotePrefix, - ); - $styles[] = $style; - - // add style to cellXf collection - $objStyle = new PHPExcel_Style; - self::readStyle($objStyle, $style); - $excel->addCellXf($objStyle); - } - - foreach ($xmlStyles->cellStyleXfs->xf as $xf) { - $numFmt = PHPExcel_Style_NumberFormat::FORMAT_GENERAL; - if ($numFmts && $xf["numFmtId"]) { - $tmpNumFmt = self::getArrayItem($numFmts->xpath("sml:numFmt[@numFmtId=$xf[numFmtId]]")); - if (isset($tmpNumFmt["formatCode"])) { - $numFmt = (string) $tmpNumFmt["formatCode"]; - } elseif ((int)$xf["numFmtId"] < 165) { - $numFmt = PHPExcel_Style_NumberFormat::builtInFormatCode((int)$xf["numFmtId"]); - } - } - - $cellStyle = (object) array( - "numFmt" => $numFmt, - "font" => $xmlStyles->fonts->font[intval($xf["fontId"])], - "fill" => $xmlStyles->fills->fill[intval($xf["fillId"])], - "border" => $xmlStyles->borders->border[intval($xf["borderId"])], - "alignment" => $xf->alignment, - "protection" => $xf->protection, - "quotePrefix" => $quotePrefix, - ); - $cellStyles[] = $cellStyle; - - // add style to cellStyleXf collection - $objStyle = new PHPExcel_Style; - self::readStyle($objStyle, $cellStyle); - $excel->addCellStyleXf($objStyle); - } - } - - $dxfs = array(); - if (!$this->readDataOnly && $xmlStyles) { - // Conditional Styles - if ($xmlStyles->dxfs) { - foreach ($xmlStyles->dxfs->dxf as $dxf) { - $style = new PHPExcel_Style(false, true); - self::readStyle($style, $dxf); - $dxfs[] = $style; - } - } - // Cell Styles - if ($xmlStyles->cellStyles) { - foreach ($xmlStyles->cellStyles->cellStyle as $cellStyle) { - if (intval($cellStyle['builtinId']) == 0) { - if (isset($cellStyles[intval($cellStyle['xfId'])])) { - // Set default style - $style = new PHPExcel_Style; - self::readStyle($style, $cellStyles[intval($cellStyle['xfId'])]); - - // normal style, currently not using it for anything - } - } - } - } - } - - $xmlWorkbook = simplexml_load_string($this->securityScan($this->getFromZipArchive($zip, "{$rel['Target']}")), 'SimpleXMLElement', PHPExcel_Settings::getLibXmlLoaderOptions()); //~ http://schemas.openxmlformats.org/spreadsheetml/2006/main"); - - // Set base date - if ($xmlWorkbook->workbookPr) { - PHPExcel_Shared_Date::setExcelCalendar(PHPExcel_Shared_Date::CALENDAR_WINDOWS_1900); - if (isset($xmlWorkbook->workbookPr['date1904'])) { - if (self::boolean((string) $xmlWorkbook->workbookPr['date1904'])) { - PHPExcel_Shared_Date::setExcelCalendar(PHPExcel_Shared_Date::CALENDAR_MAC_1904); - } - } - } - - $sheetId = 0; // keep track of new sheet id in final workbook - $oldSheetId = -1; // keep track of old sheet id in final workbook - $countSkippedSheets = 0; // keep track of number of skipped sheets - $mapSheetId = array(); // mapping of sheet ids from old to new - - $charts = $chartDetails = array(); - - if ($xmlWorkbook->sheets) { - foreach ($xmlWorkbook->sheets->sheet as $eleSheet) { - ++$oldSheetId; - - // Check if sheet should be skipped - if (isset($this->loadSheetsOnly) && !in_array((string) $eleSheet["name"], $this->loadSheetsOnly)) { - ++$countSkippedSheets; - $mapSheetId[$oldSheetId] = null; - continue; - } - - // Map old sheet id in original workbook to new sheet id. - // They will differ if loadSheetsOnly() is being used - $mapSheetId[$oldSheetId] = $oldSheetId - $countSkippedSheets; - - // Load sheet - $docSheet = $excel->createSheet(); - // Use false for $updateFormulaCellReferences to prevent adjustment of worksheet - // references in formula cells... during the load, all formulae should be correct, - // and we're simply bringing the worksheet name in line with the formula, not the - // reverse - $docSheet->setTitle((string) $eleSheet["name"], false); - $fileWorksheet = $worksheets[(string) self::getArrayItem($eleSheet->attributes("http://schemas.openxmlformats.org/officeDocument/2006/relationships"), "id")]; - $xmlSheet = simplexml_load_string($this->securityScan($this->getFromZipArchive($zip, "$dir/$fileWorksheet")), 'SimpleXMLElement', PHPExcel_Settings::getLibXmlLoaderOptions()); //~ http://schemas.openxmlformats.org/spreadsheetml/2006/main"); - - $sharedFormulas = array(); - - if (isset($eleSheet["state"]) && (string) $eleSheet["state"] != '') { - $docSheet->setSheetState((string) $eleSheet["state"]); - } - - if (isset($xmlSheet->sheetViews) && isset($xmlSheet->sheetViews->sheetView)) { - if (isset($xmlSheet->sheetViews->sheetView['zoomScale'])) { - $docSheet->getSheetView()->setZoomScale(intval($xmlSheet->sheetViews->sheetView['zoomScale'])); - } - if (isset($xmlSheet->sheetViews->sheetView['zoomScaleNormal'])) { - $docSheet->getSheetView()->setZoomScaleNormal(intval($xmlSheet->sheetViews->sheetView['zoomScaleNormal'])); - } - if (isset($xmlSheet->sheetViews->sheetView['view'])) { - $docSheet->getSheetView()->setView((string) $xmlSheet->sheetViews->sheetView['view']); - } - if (isset($xmlSheet->sheetViews->sheetView['showGridLines'])) { - $docSheet->setShowGridLines(self::boolean((string)$xmlSheet->sheetViews->sheetView['showGridLines'])); - } - if (isset($xmlSheet->sheetViews->sheetView['showRowColHeaders'])) { - $docSheet->setShowRowColHeaders(self::boolean((string)$xmlSheet->sheetViews->sheetView['showRowColHeaders'])); - } - if (isset($xmlSheet->sheetViews->sheetView['rightToLeft'])) { - $docSheet->setRightToLeft(self::boolean((string)$xmlSheet->sheetViews->sheetView['rightToLeft'])); - } - if (isset($xmlSheet->sheetViews->sheetView->pane)) { - if (isset($xmlSheet->sheetViews->sheetView->pane['topLeftCell'])) { - $docSheet->freezePane((string)$xmlSheet->sheetViews->sheetView->pane['topLeftCell']); - } else { - $xSplit = 0; - $ySplit = 0; - - if (isset($xmlSheet->sheetViews->sheetView->pane['xSplit'])) { - $xSplit = 1 + intval($xmlSheet->sheetViews->sheetView->pane['xSplit']); - } - - if (isset($xmlSheet->sheetViews->sheetView->pane['ySplit'])) { - $ySplit = 1 + intval($xmlSheet->sheetViews->sheetView->pane['ySplit']); - } - - $docSheet->freezePaneByColumnAndRow($xSplit, $ySplit); - } - } - - if (isset($xmlSheet->sheetViews->sheetView->selection)) { - if (isset($xmlSheet->sheetViews->sheetView->selection['sqref'])) { - $sqref = (string)$xmlSheet->sheetViews->sheetView->selection['sqref']; - $sqref = explode(' ', $sqref); - $sqref = $sqref[0]; - $docSheet->setSelectedCells($sqref); - } - } - } - - if (isset($xmlSheet->sheetPr) && isset($xmlSheet->sheetPr->tabColor)) { - if (isset($xmlSheet->sheetPr->tabColor['rgb'])) { - $docSheet->getTabColor()->setARGB((string)$xmlSheet->sheetPr->tabColor['rgb']); - } - } - if (isset($xmlSheet->sheetPr) && isset($xmlSheet->sheetPr['codeName'])) { - $docSheet->setCodeName((string) $xmlSheet->sheetPr['codeName']); - } - if (isset($xmlSheet->sheetPr) && isset($xmlSheet->sheetPr->outlinePr)) { - if (isset($xmlSheet->sheetPr->outlinePr['summaryRight']) && - !self::boolean((string) $xmlSheet->sheetPr->outlinePr['summaryRight'])) { - $docSheet->setShowSummaryRight(false); - } else { - $docSheet->setShowSummaryRight(true); - } - - if (isset($xmlSheet->sheetPr->outlinePr['summaryBelow']) && - !self::boolean((string) $xmlSheet->sheetPr->outlinePr['summaryBelow'])) { - $docSheet->setShowSummaryBelow(false); - } else { - $docSheet->setShowSummaryBelow(true); - } - } - - if (isset($xmlSheet->sheetPr) && isset($xmlSheet->sheetPr->pageSetUpPr)) { - if (isset($xmlSheet->sheetPr->pageSetUpPr['fitToPage']) && - !self::boolean((string) $xmlSheet->sheetPr->pageSetUpPr['fitToPage'])) { - $docSheet->getPageSetup()->setFitToPage(false); - } else { - $docSheet->getPageSetup()->setFitToPage(true); - } - } - - if (isset($xmlSheet->sheetFormatPr)) { - if (isset($xmlSheet->sheetFormatPr['customHeight']) && - self::boolean((string) $xmlSheet->sheetFormatPr['customHeight']) && - isset($xmlSheet->sheetFormatPr['defaultRowHeight'])) { - $docSheet->getDefaultRowDimension()->setRowHeight((float)$xmlSheet->sheetFormatPr['defaultRowHeight']); - } - if (isset($xmlSheet->sheetFormatPr['defaultColWidth'])) { - $docSheet->getDefaultColumnDimension()->setWidth((float)$xmlSheet->sheetFormatPr['defaultColWidth']); - } - if (isset($xmlSheet->sheetFormatPr['zeroHeight']) && - ((string)$xmlSheet->sheetFormatPr['zeroHeight'] == '1')) { - $docSheet->getDefaultRowDimension()->setZeroHeight(true); - } - } - - if (isset($xmlSheet->cols) && !$this->readDataOnly) { - foreach ($xmlSheet->cols->col as $col) { - for ($i = intval($col["min"]) - 1; $i < intval($col["max"]); ++$i) { - if ($col["style"] && !$this->readDataOnly) { - $docSheet->getColumnDimension(PHPExcel_Cell::stringFromColumnIndex($i))->setXfIndex(intval($col["style"])); - } - if (self::boolean($col["bestFit"])) { - //$docSheet->getColumnDimension(PHPExcel_Cell::stringFromColumnIndex($i))->setAutoSize(true); - } - if (self::boolean($col["hidden"])) { - // echo PHPExcel_Cell::stringFromColumnIndex($i), ': HIDDEN COLUMN',PHP_EOL; - $docSheet->getColumnDimension(PHPExcel_Cell::stringFromColumnIndex($i))->setVisible(false); - } - if (self::boolean($col["collapsed"])) { - $docSheet->getColumnDimension(PHPExcel_Cell::stringFromColumnIndex($i))->setCollapsed(true); - } - if ($col["outlineLevel"] > 0) { - $docSheet->getColumnDimension(PHPExcel_Cell::stringFromColumnIndex($i))->setOutlineLevel(intval($col["outlineLevel"])); - } - $docSheet->getColumnDimension(PHPExcel_Cell::stringFromColumnIndex($i))->setWidth(floatval($col["width"])); - - if (intval($col["max"]) == 16384) { - break; - } - } - } - } - - if (isset($xmlSheet->printOptions) && !$this->readDataOnly) { - if (self::boolean((string) $xmlSheet->printOptions['gridLinesSet'])) { - $docSheet->setShowGridlines(true); - } - if (self::boolean((string) $xmlSheet->printOptions['gridLines'])) { - $docSheet->setPrintGridlines(true); - } - if (self::boolean((string) $xmlSheet->printOptions['horizontalCentered'])) { - $docSheet->getPageSetup()->setHorizontalCentered(true); - } - if (self::boolean((string) $xmlSheet->printOptions['verticalCentered'])) { - $docSheet->getPageSetup()->setVerticalCentered(true); - } - } - - if ($xmlSheet && $xmlSheet->sheetData && $xmlSheet->sheetData->row) { - foreach ($xmlSheet->sheetData->row as $row) { - if ($row["ht"] && !$this->readDataOnly) { - $docSheet->getRowDimension(intval($row["r"]))->setRowHeight(floatval($row["ht"])); - } - if (self::boolean($row["hidden"]) && !$this->readDataOnly) { - $docSheet->getRowDimension(intval($row["r"]))->setVisible(false); - } - if (self::boolean($row["collapsed"])) { - $docSheet->getRowDimension(intval($row["r"]))->setCollapsed(true); - } - if ($row["outlineLevel"] > 0) { - $docSheet->getRowDimension(intval($row["r"]))->setOutlineLevel(intval($row["outlineLevel"])); - } - if ($row["s"] && !$this->readDataOnly) { - $docSheet->getRowDimension(intval($row["r"]))->setXfIndex(intval($row["s"])); - } - - foreach ($row->c as $c) { - $r = (string) $c["r"]; - $cellDataType = (string) $c["t"]; - $value = null; - $calculatedValue = null; - - // Read cell? - if ($this->getReadFilter() !== null) { - $coordinates = PHPExcel_Cell::coordinateFromString($r); - - if (!$this->getReadFilter()->readCell($coordinates[0], $coordinates[1], $docSheet->getTitle())) { - continue; - } - } - - // echo 'Reading cell ', $coordinates[0], $coordinates[1], PHP_EOL; - // print_r($c); - // echo PHP_EOL; - // echo 'Cell Data Type is ', $cellDataType, ': '; - // - // Read cell! - switch ($cellDataType) { - case "s": - // echo 'String', PHP_EOL; - if ((string)$c->v != '') { - $value = $sharedStrings[intval($c->v)]; - - if ($value instanceof PHPExcel_RichText) { - $value = clone $value; - } - } else { - $value = ''; - } - break; - case "b": - // echo 'Boolean', PHP_EOL; - if (!isset($c->f)) { - $value = self::castToBoolean($c); - } else { - // Formula - $this->castToFormula($c, $r, $cellDataType, $value, $calculatedValue, $sharedFormulas, 'castToBoolean'); - if (isset($c->f['t'])) { - $att = array(); - $att = $c->f; - $docSheet->getCell($r)->setFormulaAttributes($att); - } - // echo '$calculatedValue = ', $calculatedValue, PHP_EOL; - } - break; - case "inlineStr": -// echo 'Inline String', PHP_EOL; - if (isset($c->f)) { - $this->castToFormula($c, $r, $cellDataType, $value, $calculatedValue, $sharedFormulas, 'castToError'); - } else { - $value = $this->parseRichText($c->is); - } - break; - case "e": - // echo 'Error', PHP_EOL; - if (!isset($c->f)) { - $value = self::castToError($c); - } else { - // Formula - $this->castToFormula($c, $r, $cellDataType, $value, $calculatedValue, $sharedFormulas, 'castToError'); - // echo '$calculatedValue = ', $calculatedValue, PHP_EOL; - } - break; - default: -// echo 'Default', PHP_EOL; - if (!isset($c->f)) { - // echo 'Not a Formula', PHP_EOL; - $value = self::castToString($c); - } else { - // echo 'Treat as Formula', PHP_EOL; - // Formula - $this->castToFormula($c, $r, $cellDataType, $value, $calculatedValue, $sharedFormulas, 'castToString'); - // echo '$calculatedValue = ', $calculatedValue, PHP_EOL; - } - break; - } - // echo 'Value is ', $value, PHP_EOL; - - // Check for numeric values - if (is_numeric($value) && $cellDataType != 's') { - if ($value == (int)$value) { - $value = (int)$value; - } elseif ($value == (float)$value) { - $value = (float)$value; - } elseif ($value == (double)$value) { - $value = (double)$value; - } - } - - // Rich text? - if ($value instanceof PHPExcel_RichText && $this->readDataOnly) { - $value = $value->getPlainText(); - } - - $cell = $docSheet->getCell($r); - // Assign value - if ($cellDataType != '') { - $cell->setValueExplicit($value, $cellDataType); - } else { - $cell->setValue($value); - } - if ($calculatedValue !== null) { - $cell->setCalculatedValue($calculatedValue); - } - - // Style information? - if ($c["s"] && !$this->readDataOnly) { - // no style index means 0, it seems - $cell->setXfIndex(isset($styles[intval($c["s"])]) ? - intval($c["s"]) : 0); - } - } - } - } - - $conditionals = array(); - if (!$this->readDataOnly && $xmlSheet && $xmlSheet->conditionalFormatting) { - foreach ($xmlSheet->conditionalFormatting as $conditional) { - foreach ($conditional->cfRule as $cfRule) { - if (((string)$cfRule["type"] == PHPExcel_Style_Conditional::CONDITION_NONE || (string)$cfRule["type"] == PHPExcel_Style_Conditional::CONDITION_CELLIS || (string)$cfRule["type"] == PHPExcel_Style_Conditional::CONDITION_CONTAINSTEXT || (string)$cfRule["type"] == PHPExcel_Style_Conditional::CONDITION_EXPRESSION) && isset($dxfs[intval($cfRule["dxfId"])])) { - $conditionals[(string) $conditional["sqref"]][intval($cfRule["priority"])] = $cfRule; - } - } - } - - foreach ($conditionals as $ref => $cfRules) { - ksort($cfRules); - $conditionalStyles = array(); - foreach ($cfRules as $cfRule) { - $objConditional = new PHPExcel_Style_Conditional(); - $objConditional->setConditionType((string)$cfRule["type"]); - $objConditional->setOperatorType((string)$cfRule["operator"]); - - if ((string)$cfRule["text"] != '') { - $objConditional->setText((string)$cfRule["text"]); - } - - if (count($cfRule->formula) > 1) { - foreach ($cfRule->formula as $formula) { - $objConditional->addCondition((string)$formula); - } - } else { - $objConditional->addCondition((string)$cfRule->formula); - } - $objConditional->setStyle(clone $dxfs[intval($cfRule["dxfId"])]); - $conditionalStyles[] = $objConditional; - } - - // Extract all cell references in $ref - foreach (PHPExcel_Cell::extractAllCellReferencesInRange($ref) as $reference) { - $docSheet->getStyle($reference)->setConditionalStyles($conditionalStyles); - } - } - } - - $aKeys = array("sheet", "objects", "scenarios", "formatCells", "formatColumns", "formatRows", "insertColumns", "insertRows", "insertHyperlinks", "deleteColumns", "deleteRows", "selectLockedCells", "sort", "autoFilter", "pivotTables", "selectUnlockedCells"); - if (!$this->readDataOnly && $xmlSheet && $xmlSheet->sheetProtection) { - foreach ($aKeys as $key) { - $method = "set" . ucfirst($key); - $docSheet->getProtection()->$method(self::boolean((string) $xmlSheet->sheetProtection[$key])); - } - } - - if (!$this->readDataOnly && $xmlSheet && $xmlSheet->sheetProtection) { - $docSheet->getProtection()->setPassword((string) $xmlSheet->sheetProtection["password"], true); - if ($xmlSheet->protectedRanges->protectedRange) { - foreach ($xmlSheet->protectedRanges->protectedRange as $protectedRange) { - $docSheet->protectCells((string) $protectedRange["sqref"], (string) $protectedRange["password"], true); - } - } - } - - if ($xmlSheet && $xmlSheet->autoFilter && !$this->readDataOnly) { - $autoFilterRange = (string) $xmlSheet->autoFilter["ref"]; - if (strpos($autoFilterRange, ':') !== false) { - $autoFilter = $docSheet->getAutoFilter(); - $autoFilter->setRange($autoFilterRange); - - foreach ($xmlSheet->autoFilter->filterColumn as $filterColumn) { - $column = $autoFilter->getColumnByOffset((integer) $filterColumn["colId"]); - // Check for standard filters - if ($filterColumn->filters) { - $column->setFilterType(PHPExcel_Worksheet_AutoFilter_Column::AUTOFILTER_FILTERTYPE_FILTER); - $filters = $filterColumn->filters; - if ((isset($filters["blank"])) && ($filters["blank"] == 1)) { - // Operator is undefined, but always treated as EQUAL - $column->createRule()->setRule(null, '')->setRuleType(PHPExcel_Worksheet_AutoFilter_Column_Rule::AUTOFILTER_RULETYPE_FILTER); - } - // Standard filters are always an OR join, so no join rule needs to be set - // Entries can be either filter elements - foreach ($filters->filter as $filterRule) { - // Operator is undefined, but always treated as EQUAL - $column->createRule()->setRule(null, (string) $filterRule["val"])->setRuleType(PHPExcel_Worksheet_AutoFilter_Column_Rule::AUTOFILTER_RULETYPE_FILTER); - } - // Or Date Group elements - foreach ($filters->dateGroupItem as $dateGroupItem) { - $column->createRule()->setRule( - // Operator is undefined, but always treated as EQUAL - null, - array( - 'year' => (string) $dateGroupItem["year"], - 'month' => (string) $dateGroupItem["month"], - 'day' => (string) $dateGroupItem["day"], - 'hour' => (string) $dateGroupItem["hour"], - 'minute' => (string) $dateGroupItem["minute"], - 'second' => (string) $dateGroupItem["second"], - ), - (string) $dateGroupItem["dateTimeGrouping"] - ) - ->setRuleType(PHPExcel_Worksheet_AutoFilter_Column_Rule::AUTOFILTER_RULETYPE_DATEGROUP); - } - } - // Check for custom filters - if ($filterColumn->customFilters) { - $column->setFilterType(PHPExcel_Worksheet_AutoFilter_Column::AUTOFILTER_FILTERTYPE_CUSTOMFILTER); - $customFilters = $filterColumn->customFilters; - // Custom filters can an AND or an OR join; - // and there should only ever be one or two entries - if ((isset($customFilters["and"])) && ($customFilters["and"] == 1)) { - $column->setJoin(PHPExcel_Worksheet_AutoFilter_Column::AUTOFILTER_COLUMN_JOIN_AND); - } - foreach ($customFilters->customFilter as $filterRule) { - $column->createRule()->setRule( - (string) $filterRule["operator"], - (string) $filterRule["val"] - ) - ->setRuleType(PHPExcel_Worksheet_AutoFilter_Column_Rule::AUTOFILTER_RULETYPE_CUSTOMFILTER); - } - } - // Check for dynamic filters - if ($filterColumn->dynamicFilter) { - $column->setFilterType(PHPExcel_Worksheet_AutoFilter_Column::AUTOFILTER_FILTERTYPE_DYNAMICFILTER); - // We should only ever have one dynamic filter - foreach ($filterColumn->dynamicFilter as $filterRule) { - $column->createRule()->setRule( - // Operator is undefined, but always treated as EQUAL - null, - (string) $filterRule["val"], - (string) $filterRule["type"] - ) - ->setRuleType(PHPExcel_Worksheet_AutoFilter_Column_Rule::AUTOFILTER_RULETYPE_DYNAMICFILTER); - if (isset($filterRule["val"])) { - $column->setAttribute('val', (string) $filterRule["val"]); - } - if (isset($filterRule["maxVal"])) { - $column->setAttribute('maxVal', (string) $filterRule["maxVal"]); - } - } - } - // Check for dynamic filters - if ($filterColumn->top10) { - $column->setFilterType(PHPExcel_Worksheet_AutoFilter_Column::AUTOFILTER_FILTERTYPE_TOPTENFILTER); - // We should only ever have one top10 filter - foreach ($filterColumn->top10 as $filterRule) { - $column->createRule()->setRule( - (((isset($filterRule["percent"])) && ($filterRule["percent"] == 1)) - ? PHPExcel_Worksheet_AutoFilter_Column_Rule::AUTOFILTER_COLUMN_RULE_TOPTEN_PERCENT - : PHPExcel_Worksheet_AutoFilter_Column_Rule::AUTOFILTER_COLUMN_RULE_TOPTEN_BY_VALUE - ), - (string) $filterRule["val"], - (((isset($filterRule["top"])) && ($filterRule["top"] == 1)) - ? PHPExcel_Worksheet_AutoFilter_Column_Rule::AUTOFILTER_COLUMN_RULE_TOPTEN_TOP - : PHPExcel_Worksheet_AutoFilter_Column_Rule::AUTOFILTER_COLUMN_RULE_TOPTEN_BOTTOM - ) - ) - ->setRuleType(PHPExcel_Worksheet_AutoFilter_Column_Rule::AUTOFILTER_RULETYPE_TOPTENFILTER); - } - } - } - } - } - - if ($xmlSheet && $xmlSheet->mergeCells && $xmlSheet->mergeCells->mergeCell && !$this->readDataOnly) { - foreach ($xmlSheet->mergeCells->mergeCell as $mergeCell) { - $mergeRef = (string) $mergeCell["ref"]; - if (strpos($mergeRef, ':') !== false) { - $docSheet->mergeCells((string) $mergeCell["ref"]); - } - } - } - - if ($xmlSheet && $xmlSheet->pageMargins && !$this->readDataOnly) { - $docPageMargins = $docSheet->getPageMargins(); - $docPageMargins->setLeft(floatval($xmlSheet->pageMargins["left"])); - $docPageMargins->setRight(floatval($xmlSheet->pageMargins["right"])); - $docPageMargins->setTop(floatval($xmlSheet->pageMargins["top"])); - $docPageMargins->setBottom(floatval($xmlSheet->pageMargins["bottom"])); - $docPageMargins->setHeader(floatval($xmlSheet->pageMargins["header"])); - $docPageMargins->setFooter(floatval($xmlSheet->pageMargins["footer"])); - } - - if ($xmlSheet && $xmlSheet->pageSetup && !$this->readDataOnly) { - $docPageSetup = $docSheet->getPageSetup(); - - if (isset($xmlSheet->pageSetup["orientation"])) { - $docPageSetup->setOrientation((string) $xmlSheet->pageSetup["orientation"]); - } - if (isset($xmlSheet->pageSetup["paperSize"])) { - $docPageSetup->setPaperSize(intval($xmlSheet->pageSetup["paperSize"])); - } - if (isset($xmlSheet->pageSetup["scale"])) { - $docPageSetup->setScale(intval($xmlSheet->pageSetup["scale"]), false); - } - if (isset($xmlSheet->pageSetup["fitToHeight"]) && intval($xmlSheet->pageSetup["fitToHeight"]) >= 0) { - $docPageSetup->setFitToHeight(intval($xmlSheet->pageSetup["fitToHeight"]), false); - } - if (isset($xmlSheet->pageSetup["fitToWidth"]) && intval($xmlSheet->pageSetup["fitToWidth"]) >= 0) { - $docPageSetup->setFitToWidth(intval($xmlSheet->pageSetup["fitToWidth"]), false); - } - if (isset($xmlSheet->pageSetup["firstPageNumber"]) && isset($xmlSheet->pageSetup["useFirstPageNumber"]) && - self::boolean((string) $xmlSheet->pageSetup["useFirstPageNumber"])) { - $docPageSetup->setFirstPageNumber(intval($xmlSheet->pageSetup["firstPageNumber"])); - } - } - - if ($xmlSheet && $xmlSheet->headerFooter && !$this->readDataOnly) { - $docHeaderFooter = $docSheet->getHeaderFooter(); - - if (isset($xmlSheet->headerFooter["differentOddEven"]) && - self::boolean((string)$xmlSheet->headerFooter["differentOddEven"])) { - $docHeaderFooter->setDifferentOddEven(true); - } else { - $docHeaderFooter->setDifferentOddEven(false); - } - if (isset($xmlSheet->headerFooter["differentFirst"]) && - self::boolean((string)$xmlSheet->headerFooter["differentFirst"])) { - $docHeaderFooter->setDifferentFirst(true); - } else { - $docHeaderFooter->setDifferentFirst(false); - } - if (isset($xmlSheet->headerFooter["scaleWithDoc"]) && - !self::boolean((string)$xmlSheet->headerFooter["scaleWithDoc"])) { - $docHeaderFooter->setScaleWithDocument(false); - } else { - $docHeaderFooter->setScaleWithDocument(true); - } - if (isset($xmlSheet->headerFooter["alignWithMargins"]) && - !self::boolean((string)$xmlSheet->headerFooter["alignWithMargins"])) { - $docHeaderFooter->setAlignWithMargins(false); - } else { - $docHeaderFooter->setAlignWithMargins(true); - } - - $docHeaderFooter->setOddHeader((string) $xmlSheet->headerFooter->oddHeader); - $docHeaderFooter->setOddFooter((string) $xmlSheet->headerFooter->oddFooter); - $docHeaderFooter->setEvenHeader((string) $xmlSheet->headerFooter->evenHeader); - $docHeaderFooter->setEvenFooter((string) $xmlSheet->headerFooter->evenFooter); - $docHeaderFooter->setFirstHeader((string) $xmlSheet->headerFooter->firstHeader); - $docHeaderFooter->setFirstFooter((string) $xmlSheet->headerFooter->firstFooter); - } - - if ($xmlSheet && $xmlSheet->rowBreaks && $xmlSheet->rowBreaks->brk && !$this->readDataOnly) { - foreach ($xmlSheet->rowBreaks->brk as $brk) { - if ($brk["man"]) { - $docSheet->setBreak("A$brk[id]", PHPExcel_Worksheet::BREAK_ROW); - } - } - } - if ($xmlSheet && $xmlSheet->colBreaks && $xmlSheet->colBreaks->brk && !$this->readDataOnly) { - foreach ($xmlSheet->colBreaks->brk as $brk) { - if ($brk["man"]) { - $docSheet->setBreak(PHPExcel_Cell::stringFromColumnIndex((string) $brk["id"]) . "1", PHPExcel_Worksheet::BREAK_COLUMN); - } - } - } - - if ($xmlSheet && $xmlSheet->dataValidations && !$this->readDataOnly) { - foreach ($xmlSheet->dataValidations->dataValidation as $dataValidation) { - // Uppercase coordinate - $range = strtoupper($dataValidation["sqref"]); - $rangeSet = explode(' ', $range); - foreach ($rangeSet as $range) { - $stRange = $docSheet->shrinkRangeToFit($range); - - // Extract all cell references in $range - foreach (PHPExcel_Cell::extractAllCellReferencesInRange($stRange) as $reference) { - // Create validation - $docValidation = $docSheet->getCell($reference)->getDataValidation(); - $docValidation->setType((string) $dataValidation["type"]); - $docValidation->setErrorStyle((string) $dataValidation["errorStyle"]); - $docValidation->setOperator((string) $dataValidation["operator"]); - $docValidation->setAllowBlank($dataValidation["allowBlank"] != 0); - $docValidation->setShowDropDown($dataValidation["showDropDown"] == 0); - $docValidation->setShowInputMessage($dataValidation["showInputMessage"] != 0); - $docValidation->setShowErrorMessage($dataValidation["showErrorMessage"] != 0); - $docValidation->setErrorTitle((string) $dataValidation["errorTitle"]); - $docValidation->setError((string) $dataValidation["error"]); - $docValidation->setPromptTitle((string) $dataValidation["promptTitle"]); - $docValidation->setPrompt((string) $dataValidation["prompt"]); - $docValidation->setFormula1((string) $dataValidation->formula1); - $docValidation->setFormula2((string) $dataValidation->formula2); - } - } - } - } - - // Add hyperlinks - $hyperlinks = array(); - if (!$this->readDataOnly) { - // Locate hyperlink relations - if ($zip->locateName(dirname("$dir/$fileWorksheet") . "/_rels/" . basename($fileWorksheet) . ".rels")) { - $relsWorksheet = simplexml_load_string($this->securityScan($this->getFromZipArchive($zip, dirname("$dir/$fileWorksheet") . "/_rels/" . basename($fileWorksheet) . ".rels")), 'SimpleXMLElement', PHPExcel_Settings::getLibXmlLoaderOptions()); //~ http://schemas.openxmlformats.org/package/2006/relationships"); - foreach ($relsWorksheet->Relationship as $ele) { - if ($ele["Type"] == "http://schemas.openxmlformats.org/officeDocument/2006/relationships/hyperlink") { - $hyperlinks[(string)$ele["Id"]] = (string)$ele["Target"]; - } - } - } - - // Loop through hyperlinks - if ($xmlSheet && $xmlSheet->hyperlinks) { - foreach ($xmlSheet->hyperlinks->hyperlink as $hyperlink) { - // Link url - $linkRel = $hyperlink->attributes('http://schemas.openxmlformats.org/officeDocument/2006/relationships'); - - foreach (PHPExcel_Cell::extractAllCellReferencesInRange($hyperlink['ref']) as $cellReference) { - $cell = $docSheet->getCell($cellReference); - if (isset($linkRel['id'])) { - $hyperlinkUrl = $hyperlinks[ (string)$linkRel['id'] ]; - if (isset($hyperlink['location'])) { - $hyperlinkUrl .= '#' . (string) $hyperlink['location']; - } - $cell->getHyperlink()->setUrl($hyperlinkUrl); - } elseif (isset($hyperlink['location'])) { - $cell->getHyperlink()->setUrl('sheet://' . (string)$hyperlink['location']); - } - - // Tooltip - if (isset($hyperlink['tooltip'])) { - $cell->getHyperlink()->setTooltip((string)$hyperlink['tooltip']); - } - } - } - } - } - - // Add comments - $comments = array(); - $vmlComments = array(); - if (!$this->readDataOnly) { - // Locate comment relations - if ($zip->locateName(dirname("$dir/$fileWorksheet") . "/_rels/" . basename($fileWorksheet) . ".rels")) { - $relsWorksheet = simplexml_load_string($this->securityScan($this->getFromZipArchive($zip, dirname("$dir/$fileWorksheet") . "/_rels/" . basename($fileWorksheet) . ".rels")), 'SimpleXMLElement', PHPExcel_Settings::getLibXmlLoaderOptions()); //~ http://schemas.openxmlformats.org/package/2006/relationships"); - foreach ($relsWorksheet->Relationship as $ele) { - if ($ele["Type"] == "http://schemas.openxmlformats.org/officeDocument/2006/relationships/comments") { - $comments[(string)$ele["Id"]] = (string)$ele["Target"]; - } - if ($ele["Type"] == "http://schemas.openxmlformats.org/officeDocument/2006/relationships/vmlDrawing") { - $vmlComments[(string)$ele["Id"]] = (string)$ele["Target"]; - } - } - } - - // Loop through comments - foreach ($comments as $relName => $relPath) { - // Load comments file - $relPath = PHPExcel_Shared_File::realpath(dirname("$dir/$fileWorksheet") . "/" . $relPath); - $commentsFile = simplexml_load_string($this->securityScan($this->getFromZipArchive($zip, $relPath)), 'SimpleXMLElement', PHPExcel_Settings::getLibXmlLoaderOptions()); - - // Utility variables - $authors = array(); - - // Loop through authors - foreach ($commentsFile->authors->author as $author) { - $authors[] = (string)$author; - } - - // Loop through contents - foreach ($commentsFile->commentList->comment as $comment) { - if (!empty($comment['authorId'])) { - $docSheet->getComment((string)$comment['ref'])->setAuthor($authors[(string)$comment['authorId']]); - } - $docSheet->getComment((string)$comment['ref'])->setText($this->parseRichText($comment->text)); - } - } - - // Loop through VML comments - foreach ($vmlComments as $relName => $relPath) { - // Load VML comments file - $relPath = PHPExcel_Shared_File::realpath(dirname("$dir/$fileWorksheet") . "/" . $relPath); - $vmlCommentsFile = simplexml_load_string($this->securityScan($this->getFromZipArchive($zip, $relPath)), 'SimpleXMLElement', PHPExcel_Settings::getLibXmlLoaderOptions()); - $vmlCommentsFile->registerXPathNamespace('v', 'urn:schemas-microsoft-com:vml'); - - $shapes = $vmlCommentsFile->xpath('//v:shape'); - foreach ($shapes as $shape) { - $shape->registerXPathNamespace('v', 'urn:schemas-microsoft-com:vml'); - - if (isset($shape['style'])) { - $style = (string)$shape['style']; - $fillColor = strtoupper(substr((string)$shape['fillcolor'], 1)); - $column = null; - $row = null; - - $clientData = $shape->xpath('.//x:ClientData'); - if (is_array($clientData) && !empty($clientData)) { - $clientData = $clientData[0]; - - if (isset($clientData['ObjectType']) && (string)$clientData['ObjectType'] == 'Note') { - $temp = $clientData->xpath('.//x:Row'); - if (is_array($temp)) { - $row = $temp[0]; - } - - $temp = $clientData->xpath('.//x:Column'); - if (is_array($temp)) { - $column = $temp[0]; - } - } - } - - if (($column !== null) && ($row !== null)) { - // Set comment properties - $comment = $docSheet->getCommentByColumnAndRow((string) $column, $row + 1); - $comment->getFillColor()->setRGB($fillColor); - - // Parse style - $styleArray = explode(';', str_replace(' ', '', $style)); - foreach ($styleArray as $stylePair) { - $stylePair = explode(':', $stylePair); - - if ($stylePair[0] == 'margin-left') { - $comment->setMarginLeft($stylePair[1]); - } - if ($stylePair[0] == 'margin-top') { - $comment->setMarginTop($stylePair[1]); - } - if ($stylePair[0] == 'width') { - $comment->setWidth($stylePair[1]); - } - if ($stylePair[0] == 'height') { - $comment->setHeight($stylePair[1]); - } - if ($stylePair[0] == 'visibility') { - $comment->setVisible($stylePair[1] == 'visible'); - } - } - } - } - } - } - - // Header/footer images - if ($xmlSheet && $xmlSheet->legacyDrawingHF && !$this->readDataOnly) { - if ($zip->locateName(dirname("$dir/$fileWorksheet") . "/_rels/" . basename($fileWorksheet) . ".rels")) { - $relsWorksheet = simplexml_load_string($this->securityScan($this->getFromZipArchive($zip, dirname("$dir/$fileWorksheet") . "/_rels/" . basename($fileWorksheet) . ".rels")), 'SimpleXMLElement', PHPExcel_Settings::getLibXmlLoaderOptions()); //~ http://schemas.openxmlformats.org/package/2006/relationships"); - $vmlRelationship = ''; - - foreach ($relsWorksheet->Relationship as $ele) { - if ($ele["Type"] == "http://schemas.openxmlformats.org/officeDocument/2006/relationships/vmlDrawing") { - $vmlRelationship = self::dirAdd("$dir/$fileWorksheet", $ele["Target"]); - } - } - - if ($vmlRelationship != '') { - // Fetch linked images - $relsVML = simplexml_load_string($this->securityScan($this->getFromZipArchive($zip, dirname($vmlRelationship) . '/_rels/' . basename($vmlRelationship) . '.rels')), 'SimpleXMLElement', PHPExcel_Settings::getLibXmlLoaderOptions()); //~ http://schemas.openxmlformats.org/package/2006/relationships"); - $drawings = array(); - foreach ($relsVML->Relationship as $ele) { - if ($ele["Type"] == "http://schemas.openxmlformats.org/officeDocument/2006/relationships/image") { - $drawings[(string) $ele["Id"]] = self::dirAdd($vmlRelationship, $ele["Target"]); - } - } - - // Fetch VML document - $vmlDrawing = simplexml_load_string($this->securityScan($this->getFromZipArchive($zip, $vmlRelationship)), 'SimpleXMLElement', PHPExcel_Settings::getLibXmlLoaderOptions()); - $vmlDrawing->registerXPathNamespace('v', 'urn:schemas-microsoft-com:vml'); - - $hfImages = array(); - - $shapes = $vmlDrawing->xpath('//v:shape'); - foreach ($shapes as $idx => $shape) { - $shape->registerXPathNamespace('v', 'urn:schemas-microsoft-com:vml'); - $imageData = $shape->xpath('//v:imagedata'); - $imageData = $imageData[$idx]; - - $imageData = $imageData->attributes('urn:schemas-microsoft-com:office:office'); - $style = self::toCSSArray((string)$shape['style']); - - $hfImages[ (string)$shape['id'] ] = new PHPExcel_Worksheet_HeaderFooterDrawing(); - if (isset($imageData['title'])) { - $hfImages[ (string)$shape['id'] ]->setName((string)$imageData['title']); - } - - $hfImages[ (string)$shape['id'] ]->setPath("zip://".PHPExcel_Shared_File::realpath($pFilename)."#" . $drawings[(string)$imageData['relid']], false); - $hfImages[ (string)$shape['id'] ]->setResizeProportional(false); - $hfImages[ (string)$shape['id'] ]->setWidth($style['width']); - $hfImages[ (string)$shape['id'] ]->setHeight($style['height']); - if (isset($style['margin-left'])) { - $hfImages[ (string)$shape['id'] ]->setOffsetX($style['margin-left']); - } - $hfImages[ (string)$shape['id'] ]->setOffsetY($style['margin-top']); - $hfImages[ (string)$shape['id'] ]->setResizeProportional(true); - } - - $docSheet->getHeaderFooter()->setImages($hfImages); - } - } - } - - } - - // TODO: Autoshapes from twoCellAnchors! - if ($zip->locateName(dirname("$dir/$fileWorksheet") . "/_rels/" . basename($fileWorksheet) . ".rels")) { - $relsWorksheet = simplexml_load_string($this->securityScan($this->getFromZipArchive($zip, dirname("$dir/$fileWorksheet") . "/_rels/" . basename($fileWorksheet) . ".rels")), 'SimpleXMLElement', PHPExcel_Settings::getLibXmlLoaderOptions()); //~ http://schemas.openxmlformats.org/package/2006/relationships"); - $drawings = array(); - foreach ($relsWorksheet->Relationship as $ele) { - if ($ele["Type"] == "http://schemas.openxmlformats.org/officeDocument/2006/relationships/drawing") { - $drawings[(string) $ele["Id"]] = self::dirAdd("$dir/$fileWorksheet", $ele["Target"]); - } - } - if ($xmlSheet->drawing && !$this->readDataOnly) { - foreach ($xmlSheet->drawing as $drawing) { - $fileDrawing = $drawings[(string) self::getArrayItem($drawing->attributes("http://schemas.openxmlformats.org/officeDocument/2006/relationships"), "id")]; - $relsDrawing = simplexml_load_string($this->securityScan($this->getFromZipArchive($zip, dirname($fileDrawing) . "/_rels/" . basename($fileDrawing) . ".rels")), 'SimpleXMLElement', PHPExcel_Settings::getLibXmlLoaderOptions()); //~ http://schemas.openxmlformats.org/package/2006/relationships"); - $images = array(); - - if ($relsDrawing && $relsDrawing->Relationship) { - foreach ($relsDrawing->Relationship as $ele) { - if ($ele["Type"] == "http://schemas.openxmlformats.org/officeDocument/2006/relationships/image") { - $images[(string) $ele["Id"]] = self::dirAdd($fileDrawing, $ele["Target"]); - } elseif ($ele["Type"] == "http://schemas.openxmlformats.org/officeDocument/2006/relationships/chart") { - if ($this->includeCharts) { - $charts[self::dirAdd($fileDrawing, $ele["Target"])] = array( - 'id' => (string) $ele["Id"], - 'sheet' => $docSheet->getTitle() - ); - } - } - } - } - $xmlDrawing = simplexml_load_string($this->securityScan($this->getFromZipArchive($zip, $fileDrawing)), 'SimpleXMLElement', PHPExcel_Settings::getLibXmlLoaderOptions())->children("http://schemas.openxmlformats.org/drawingml/2006/spreadsheetDrawing"); - - if ($xmlDrawing->oneCellAnchor) { - foreach ($xmlDrawing->oneCellAnchor as $oneCellAnchor) { - if ($oneCellAnchor->pic->blipFill) { - $blip = $oneCellAnchor->pic->blipFill->children("http://schemas.openxmlformats.org/drawingml/2006/main")->blip; - $xfrm = $oneCellAnchor->pic->spPr->children("http://schemas.openxmlformats.org/drawingml/2006/main")->xfrm; - $outerShdw = $oneCellAnchor->pic->spPr->children("http://schemas.openxmlformats.org/drawingml/2006/main")->effectLst->outerShdw; - $objDrawing = new PHPExcel_Worksheet_Drawing; - $objDrawing->setName((string) self::getArrayItem($oneCellAnchor->pic->nvPicPr->cNvPr->attributes(), "name")); - $objDrawing->setDescription((string) self::getArrayItem($oneCellAnchor->pic->nvPicPr->cNvPr->attributes(), "descr")); - $objDrawing->setPath("zip://".PHPExcel_Shared_File::realpath($pFilename)."#" . $images[(string) self::getArrayItem($blip->attributes("http://schemas.openxmlformats.org/officeDocument/2006/relationships"), "embed")], false); - $objDrawing->setCoordinates(PHPExcel_Cell::stringFromColumnIndex((string) $oneCellAnchor->from->col) . ($oneCellAnchor->from->row + 1)); - $objDrawing->setOffsetX(PHPExcel_Shared_Drawing::EMUToPixels($oneCellAnchor->from->colOff)); - $objDrawing->setOffsetY(PHPExcel_Shared_Drawing::EMUToPixels($oneCellAnchor->from->rowOff)); - $objDrawing->setResizeProportional(false); - $objDrawing->setWidth(PHPExcel_Shared_Drawing::EMUToPixels(self::getArrayItem($oneCellAnchor->ext->attributes(), "cx"))); - $objDrawing->setHeight(PHPExcel_Shared_Drawing::EMUToPixels(self::getArrayItem($oneCellAnchor->ext->attributes(), "cy"))); - if ($xfrm) { - $objDrawing->setRotation(PHPExcel_Shared_Drawing::angleToDegrees(self::getArrayItem($xfrm->attributes(), "rot"))); - } - if ($outerShdw) { - $shadow = $objDrawing->getShadow(); - $shadow->setVisible(true); - $shadow->setBlurRadius(PHPExcel_Shared_Drawing::EMUTopixels(self::getArrayItem($outerShdw->attributes(), "blurRad"))); - $shadow->setDistance(PHPExcel_Shared_Drawing::EMUTopixels(self::getArrayItem($outerShdw->attributes(), "dist"))); - $shadow->setDirection(PHPExcel_Shared_Drawing::angleToDegrees(self::getArrayItem($outerShdw->attributes(), "dir"))); - $shadow->setAlignment((string) self::getArrayItem($outerShdw->attributes(), "algn")); - $shadow->getColor()->setRGB(self::getArrayItem($outerShdw->srgbClr->attributes(), "val")); - $shadow->setAlpha(self::getArrayItem($outerShdw->srgbClr->alpha->attributes(), "val") / 1000); - } - $objDrawing->setWorksheet($docSheet); - } else { - // ? Can charts be positioned with a oneCellAnchor ? - $coordinates = PHPExcel_Cell::stringFromColumnIndex((string) $oneCellAnchor->from->col) . ($oneCellAnchor->from->row + 1); - $offsetX = PHPExcel_Shared_Drawing::EMUToPixels($oneCellAnchor->from->colOff); - $offsetY = PHPExcel_Shared_Drawing::EMUToPixels($oneCellAnchor->from->rowOff); - $width = PHPExcel_Shared_Drawing::EMUToPixels(self::getArrayItem($oneCellAnchor->ext->attributes(), "cx")); - $height = PHPExcel_Shared_Drawing::EMUToPixels(self::getArrayItem($oneCellAnchor->ext->attributes(), "cy")); - } - } - } - if ($xmlDrawing->twoCellAnchor) { - foreach ($xmlDrawing->twoCellAnchor as $twoCellAnchor) { - if ($twoCellAnchor->pic->blipFill) { - $blip = $twoCellAnchor->pic->blipFill->children("http://schemas.openxmlformats.org/drawingml/2006/main")->blip; - $xfrm = $twoCellAnchor->pic->spPr->children("http://schemas.openxmlformats.org/drawingml/2006/main")->xfrm; - $outerShdw = $twoCellAnchor->pic->spPr->children("http://schemas.openxmlformats.org/drawingml/2006/main")->effectLst->outerShdw; - $objDrawing = new PHPExcel_Worksheet_Drawing; - $objDrawing->setName((string) self::getArrayItem($twoCellAnchor->pic->nvPicPr->cNvPr->attributes(), "name")); - $objDrawing->setDescription((string) self::getArrayItem($twoCellAnchor->pic->nvPicPr->cNvPr->attributes(), "descr")); - $objDrawing->setPath("zip://".PHPExcel_Shared_File::realpath($pFilename)."#" . $images[(string) self::getArrayItem($blip->attributes("http://schemas.openxmlformats.org/officeDocument/2006/relationships"), "embed")], false); - $objDrawing->setCoordinates(PHPExcel_Cell::stringFromColumnIndex((string) $twoCellAnchor->from->col) . ($twoCellAnchor->from->row + 1)); - $objDrawing->setOffsetX(PHPExcel_Shared_Drawing::EMUToPixels($twoCellAnchor->from->colOff)); - $objDrawing->setOffsetY(PHPExcel_Shared_Drawing::EMUToPixels($twoCellAnchor->from->rowOff)); - $objDrawing->setResizeProportional(false); - - if ($xfrm) { - $objDrawing->setWidth(PHPExcel_Shared_Drawing::EMUToPixels(self::getArrayItem($xfrm->ext->attributes(), "cx"))); - $objDrawing->setHeight(PHPExcel_Shared_Drawing::EMUToPixels(self::getArrayItem($xfrm->ext->attributes(), "cy"))); - $objDrawing->setRotation(PHPExcel_Shared_Drawing::angleToDegrees(self::getArrayItem($xfrm->attributes(), "rot"))); - } - if ($outerShdw) { - $shadow = $objDrawing->getShadow(); - $shadow->setVisible(true); - $shadow->setBlurRadius(PHPExcel_Shared_Drawing::EMUTopixels(self::getArrayItem($outerShdw->attributes(), "blurRad"))); - $shadow->setDistance(PHPExcel_Shared_Drawing::EMUTopixels(self::getArrayItem($outerShdw->attributes(), "dist"))); - $shadow->setDirection(PHPExcel_Shared_Drawing::angleToDegrees(self::getArrayItem($outerShdw->attributes(), "dir"))); - $shadow->setAlignment((string) self::getArrayItem($outerShdw->attributes(), "algn")); - $shadow->getColor()->setRGB(self::getArrayItem($outerShdw->srgbClr->attributes(), "val")); - $shadow->setAlpha(self::getArrayItem($outerShdw->srgbClr->alpha->attributes(), "val") / 1000); - } - $objDrawing->setWorksheet($docSheet); - } elseif (($this->includeCharts) && ($twoCellAnchor->graphicFrame)) { - $fromCoordinate = PHPExcel_Cell::stringFromColumnIndex((string) $twoCellAnchor->from->col) . ($twoCellAnchor->from->row + 1); - $fromOffsetX = PHPExcel_Shared_Drawing::EMUToPixels($twoCellAnchor->from->colOff); - $fromOffsetY = PHPExcel_Shared_Drawing::EMUToPixels($twoCellAnchor->from->rowOff); - $toCoordinate = PHPExcel_Cell::stringFromColumnIndex((string) $twoCellAnchor->to->col) . ($twoCellAnchor->to->row + 1); - $toOffsetX = PHPExcel_Shared_Drawing::EMUToPixels($twoCellAnchor->to->colOff); - $toOffsetY = PHPExcel_Shared_Drawing::EMUToPixels($twoCellAnchor->to->rowOff); - $graphic = $twoCellAnchor->graphicFrame->children("http://schemas.openxmlformats.org/drawingml/2006/main")->graphic; - $chartRef = $graphic->graphicData->children("http://schemas.openxmlformats.org/drawingml/2006/chart")->chart; - $thisChart = (string) $chartRef->attributes("http://schemas.openxmlformats.org/officeDocument/2006/relationships"); - - $chartDetails[$docSheet->getTitle().'!'.$thisChart] = array( - 'fromCoordinate' => $fromCoordinate, - 'fromOffsetX' => $fromOffsetX, - 'fromOffsetY' => $fromOffsetY, - 'toCoordinate' => $toCoordinate, - 'toOffsetX' => $toOffsetX, - 'toOffsetY' => $toOffsetY, - 'worksheetTitle' => $docSheet->getTitle() - ); - } - } - } - } - } - } - - // Loop through definedNames - if ($xmlWorkbook->definedNames) { - foreach ($xmlWorkbook->definedNames->definedName as $definedName) { - // Extract range - $extractedRange = (string)$definedName; - $extractedRange = preg_replace('/\'(\w+)\'\!/', '', $extractedRange); - if (($spos = strpos($extractedRange, '!')) !== false) { - $extractedRange = substr($extractedRange, 0, $spos).str_replace('$', '', substr($extractedRange, $spos)); - } else { - $extractedRange = str_replace('$', '', $extractedRange); - } - - // Valid range? - if (stripos((string)$definedName, '#REF!') !== false || $extractedRange == '') { - continue; - } - - // Some definedNames are only applicable if we are on the same sheet... - if ((string)$definedName['localSheetId'] != '' && (string)$definedName['localSheetId'] == $sheetId) { - // Switch on type - switch ((string)$definedName['name']) { - case '_xlnm._FilterDatabase': - if ((string)$definedName['hidden'] !== '1') { - $extractedRange = explode(',', $extractedRange); - foreach ($extractedRange as $range) { - $autoFilterRange = $range; - if (strpos($autoFilterRange, ':') !== false) { - $docSheet->getAutoFilter()->setRange($autoFilterRange); - } - } - } - break; - case '_xlnm.Print_Titles': - // Split $extractedRange - $extractedRange = explode(',', $extractedRange); - - // Set print titles - foreach ($extractedRange as $range) { - $matches = array(); - $range = str_replace('$', '', $range); - - // check for repeating columns, e g. 'A:A' or 'A:D' - if (preg_match('/!?([A-Z]+)\:([A-Z]+)$/', $range, $matches)) { - $docSheet->getPageSetup()->setColumnsToRepeatAtLeft(array($matches[1], $matches[2])); - } elseif (preg_match('/!?(\d+)\:(\d+)$/', $range, $matches)) { - // check for repeating rows, e.g. '1:1' or '1:5' - $docSheet->getPageSetup()->setRowsToRepeatAtTop(array($matches[1], $matches[2])); - } - } - break; - case '_xlnm.Print_Area': - $rangeSets = explode(',', $extractedRange); // FIXME: what if sheetname contains comma? - $newRangeSets = array(); - foreach ($rangeSets as $rangeSet) { - $range = explode('!', $rangeSet); // FIXME: what if sheetname contains exclamation mark? - $rangeSet = isset($range[1]) ? $range[1] : $range[0]; - if (strpos($rangeSet, ':') === false) { - $rangeSet = $rangeSet . ':' . $rangeSet; - } - $newRangeSets[] = str_replace('$', '', $rangeSet); - } - $docSheet->getPageSetup()->setPrintArea(implode(',', $newRangeSets)); - break; - - default: - break; - } - } - } - } - - // Next sheet id - ++$sheetId; - } - - // Loop through definedNames - if ($xmlWorkbook->definedNames) { - foreach ($xmlWorkbook->definedNames->definedName as $definedName) { - // Extract range - $extractedRange = (string)$definedName; - $extractedRange = preg_replace('/\'(\w+)\'\!/', '', $extractedRange); - if (($spos = strpos($extractedRange, '!')) !== false) { - $extractedRange = substr($extractedRange, 0, $spos).str_replace('$', '', substr($extractedRange, $spos)); - } else { - $extractedRange = str_replace('$', '', $extractedRange); - } - - // Valid range? - if (stripos((string)$definedName, '#REF!') !== false || $extractedRange == '') { - continue; - } - - // Some definedNames are only applicable if we are on the same sheet... - if ((string)$definedName['localSheetId'] != '') { - // Local defined name - // Switch on type - switch ((string)$definedName['name']) { - case '_xlnm._FilterDatabase': - case '_xlnm.Print_Titles': - case '_xlnm.Print_Area': - break; - default: - if ($mapSheetId[(integer) $definedName['localSheetId']] !== null) { - $range = explode('!', (string)$definedName); - if (count($range) == 2) { - $range[0] = str_replace("''", "'", $range[0]); - $range[0] = str_replace("'", "", $range[0]); - if ($worksheet = $docSheet->getParent()->getSheetByName($range[0])) { - $extractedRange = str_replace('$', '', $range[1]); - $scope = $docSheet->getParent()->getSheet($mapSheetId[(integer) $definedName['localSheetId']]); - $excel->addNamedRange(new PHPExcel_NamedRange((string)$definedName['name'], $worksheet, $extractedRange, true, $scope)); - } - } - } - break; - } - } elseif (!isset($definedName['localSheetId'])) { - // "Global" definedNames - $locatedSheet = null; - $extractedSheetName = ''; - if (strpos((string)$definedName, '!') !== false) { - // Extract sheet name - $extractedSheetName = PHPExcel_Worksheet::extractSheetTitle((string)$definedName, true); - $extractedSheetName = $extractedSheetName[0]; - - // Locate sheet - $locatedSheet = $excel->getSheetByName($extractedSheetName); - - // Modify range - $range = explode('!', $extractedRange); - $extractedRange = isset($range[1]) ? $range[1] : $range[0]; - } - - if ($locatedSheet !== null) { - $excel->addNamedRange(new PHPExcel_NamedRange((string)$definedName['name'], $locatedSheet, $extractedRange, false)); - } - } - } - } - } - - if ((!$this->readDataOnly) || (!empty($this->loadSheetsOnly))) { - // active sheet index - $activeTab = intval($xmlWorkbook->bookViews->workbookView["activeTab"]); // refers to old sheet index - - // keep active sheet index if sheet is still loaded, else first sheet is set as the active - if (isset($mapSheetId[$activeTab]) && $mapSheetId[$activeTab] !== null) { - $excel->setActiveSheetIndex($mapSheetId[$activeTab]); - } else { - if ($excel->getSheetCount() == 0) { - $excel->createSheet(); - } - $excel->setActiveSheetIndex(0); - } - } - break; - } - } - - if (!$this->readDataOnly) { - $contentTypes = simplexml_load_string($this->securityScan($this->getFromZipArchive($zip, "[Content_Types].xml")), 'SimpleXMLElement', PHPExcel_Settings::getLibXmlLoaderOptions()); - foreach ($contentTypes->Override as $contentType) { - switch ($contentType["ContentType"]) { - case "application/vnd.openxmlformats-officedocument.drawingml.chart+xml": - if ($this->includeCharts) { - $chartEntryRef = ltrim($contentType['PartName'], '/'); - $chartElements = simplexml_load_string($this->securityScan($this->getFromZipArchive($zip, $chartEntryRef)), 'SimpleXMLElement', PHPExcel_Settings::getLibXmlLoaderOptions()); - $objChart = PHPExcel_Reader_Excel2007_Chart::readChart($chartElements, basename($chartEntryRef, '.xml')); - -// echo 'Chart ', $chartEntryRef, '
'; -// var_dump($charts[$chartEntryRef]); -// - if (isset($charts[$chartEntryRef])) { - $chartPositionRef = $charts[$chartEntryRef]['sheet'].'!'.$charts[$chartEntryRef]['id']; -// echo 'Position Ref ', $chartPositionRef, '
'; - if (isset($chartDetails[$chartPositionRef])) { -// var_dump($chartDetails[$chartPositionRef]); - - $excel->getSheetByName($charts[$chartEntryRef]['sheet'])->addChart($objChart); - $objChart->setWorksheet($excel->getSheetByName($charts[$chartEntryRef]['sheet'])); - $objChart->setTopLeftPosition($chartDetails[$chartPositionRef]['fromCoordinate'], $chartDetails[$chartPositionRef]['fromOffsetX'], $chartDetails[$chartPositionRef]['fromOffsetY']); - $objChart->setBottomRightPosition($chartDetails[$chartPositionRef]['toCoordinate'], $chartDetails[$chartPositionRef]['toOffsetX'], $chartDetails[$chartPositionRef]['toOffsetY']); - } - } - } - } - } - } - - $zip->close(); - - return $excel; - } - - private static function readColor($color, $background = false) - { - if (isset($color["rgb"])) { - return (string)$color["rgb"]; - } elseif (isset($color["indexed"])) { - return PHPExcel_Style_Color::indexedColor($color["indexed"]-7, $background)->getARGB(); - } elseif (isset($color["theme"])) { - if (self::$theme !== null) { - $returnColour = self::$theme->getColourByIndex((int)$color["theme"]); - if (isset($color["tint"])) { - $tintAdjust = (float) $color["tint"]; - $returnColour = PHPExcel_Style_Color::changeBrightness($returnColour, $tintAdjust); - } - return 'FF'.$returnColour; - } - } - - if ($background) { - return 'FFFFFFFF'; - } - return 'FF000000'; - } - - private static function readStyle($docStyle, $style) - { - // format code -// if (isset($style->numFmt)) { -// if (isset($style->numFmt['formatCode'])) { -// $docStyle->getNumberFormat()->setFormatCode((string) $style->numFmt['formatCode']); -// } else { - $docStyle->getNumberFormat()->setFormatCode($style->numFmt); -// } -// } - - // font - if (isset($style->font)) { - $docStyle->getFont()->setName((string) $style->font->name["val"]); - $docStyle->getFont()->setSize((string) $style->font->sz["val"]); - if (isset($style->font->b)) { - $docStyle->getFont()->setBold(!isset($style->font->b["val"]) || self::boolean((string) $style->font->b["val"])); - } - if (isset($style->font->i)) { - $docStyle->getFont()->setItalic(!isset($style->font->i["val"]) || self::boolean((string) $style->font->i["val"])); - } - if (isset($style->font->strike)) { - $docStyle->getFont()->setStrikethrough(!isset($style->font->strike["val"]) || self::boolean((string) $style->font->strike["val"])); - } - $docStyle->getFont()->getColor()->setARGB(self::readColor($style->font->color)); - - if (isset($style->font->u) && !isset($style->font->u["val"])) { - $docStyle->getFont()->setUnderline(PHPExcel_Style_Font::UNDERLINE_SINGLE); - } elseif (isset($style->font->u) && isset($style->font->u["val"])) { - $docStyle->getFont()->setUnderline((string)$style->font->u["val"]); - } - - if (isset($style->font->vertAlign) && isset($style->font->vertAlign["val"])) { - $vertAlign = strtolower((string)$style->font->vertAlign["val"]); - if ($vertAlign == 'superscript') { - $docStyle->getFont()->setSuperScript(true); - } - if ($vertAlign == 'subscript') { - $docStyle->getFont()->setSubScript(true); - } - } - } - - // fill - if (isset($style->fill)) { - if ($style->fill->gradientFill) { - $gradientFill = $style->fill->gradientFill[0]; - if (!empty($gradientFill["type"])) { - $docStyle->getFill()->setFillType((string) $gradientFill["type"]); - } - $docStyle->getFill()->setRotation(floatval($gradientFill["degree"])); - $gradientFill->registerXPathNamespace("sml", "http://schemas.openxmlformats.org/spreadsheetml/2006/main"); - $docStyle->getFill()->getStartColor()->setARGB(self::readColor(self::getArrayItem($gradientFill->xpath("sml:stop[@position=0]"))->color)); - $docStyle->getFill()->getEndColor()->setARGB(self::readColor(self::getArrayItem($gradientFill->xpath("sml:stop[@position=1]"))->color)); - } elseif ($style->fill->patternFill) { - $patternType = (string)$style->fill->patternFill["patternType"] != '' ? (string)$style->fill->patternFill["patternType"] : 'solid'; - $docStyle->getFill()->setFillType($patternType); - if ($style->fill->patternFill->fgColor) { - $docStyle->getFill()->getStartColor()->setARGB(self::readColor($style->fill->patternFill->fgColor, true)); - } else { - $docStyle->getFill()->getStartColor()->setARGB('FF000000'); - } - if ($style->fill->patternFill->bgColor) { - $docStyle->getFill()->getEndColor()->setARGB(self::readColor($style->fill->patternFill->bgColor, true)); - } - } - } - - // border - if (isset($style->border)) { - $diagonalUp = self::boolean((string) $style->border["diagonalUp"]); - $diagonalDown = self::boolean((string) $style->border["diagonalDown"]); - if (!$diagonalUp && !$diagonalDown) { - $docStyle->getBorders()->setDiagonalDirection(PHPExcel_Style_Borders::DIAGONAL_NONE); - } elseif ($diagonalUp && !$diagonalDown) { - $docStyle->getBorders()->setDiagonalDirection(PHPExcel_Style_Borders::DIAGONAL_UP); - } elseif (!$diagonalUp && $diagonalDown) { - $docStyle->getBorders()->setDiagonalDirection(PHPExcel_Style_Borders::DIAGONAL_DOWN); - } else { - $docStyle->getBorders()->setDiagonalDirection(PHPExcel_Style_Borders::DIAGONAL_BOTH); - } - self::readBorder($docStyle->getBorders()->getLeft(), $style->border->left); - self::readBorder($docStyle->getBorders()->getRight(), $style->border->right); - self::readBorder($docStyle->getBorders()->getTop(), $style->border->top); - self::readBorder($docStyle->getBorders()->getBottom(), $style->border->bottom); - self::readBorder($docStyle->getBorders()->getDiagonal(), $style->border->diagonal); - } - - // alignment - if (isset($style->alignment)) { - $docStyle->getAlignment()->setHorizontal((string) $style->alignment["horizontal"]); - $docStyle->getAlignment()->setVertical((string) $style->alignment["vertical"]); - - $textRotation = 0; - if ((int)$style->alignment["textRotation"] <= 90) { - $textRotation = (int)$style->alignment["textRotation"]; - } elseif ((int)$style->alignment["textRotation"] > 90) { - $textRotation = 90 - (int)$style->alignment["textRotation"]; - } - - $docStyle->getAlignment()->setTextRotation(intval($textRotation)); - $docStyle->getAlignment()->setWrapText(self::boolean((string) $style->alignment["wrapText"])); - $docStyle->getAlignment()->setShrinkToFit(self::boolean((string) $style->alignment["shrinkToFit"])); - $docStyle->getAlignment()->setIndent(intval((string)$style->alignment["indent"]) > 0 ? intval((string)$style->alignment["indent"]) : 0); - $docStyle->getAlignment()->setReadorder(intval((string)$style->alignment["readingOrder"]) > 0 ? intval((string)$style->alignment["readingOrder"]) : 0); - } - - // protection - if (isset($style->protection)) { - if (isset($style->protection['locked'])) { - if (self::boolean((string) $style->protection['locked'])) { - $docStyle->getProtection()->setLocked(PHPExcel_Style_Protection::PROTECTION_PROTECTED); - } else { - $docStyle->getProtection()->setLocked(PHPExcel_Style_Protection::PROTECTION_UNPROTECTED); - } - } - - if (isset($style->protection['hidden'])) { - if (self::boolean((string) $style->protection['hidden'])) { - $docStyle->getProtection()->setHidden(PHPExcel_Style_Protection::PROTECTION_PROTECTED); - } else { - $docStyle->getProtection()->setHidden(PHPExcel_Style_Protection::PROTECTION_UNPROTECTED); - } - } - } - - // top-level style settings - if (isset($style->quotePrefix)) { - $docStyle->setQuotePrefix($style->quotePrefix); - } - } - - private static function readBorder($docBorder, $eleBorder) - { - if (isset($eleBorder["style"])) { - $docBorder->setBorderStyle((string) $eleBorder["style"]); - } - if (isset($eleBorder->color)) { - $docBorder->getColor()->setARGB(self::readColor($eleBorder->color)); - } - } - - private function parseRichText($is = null) - { - $value = new PHPExcel_RichText(); - - if (isset($is->t)) { - $value->createText(PHPExcel_Shared_String::ControlCharacterOOXML2PHP((string) $is->t)); - } else { - if (is_object($is->r)) { - foreach ($is->r as $run) { - if (!isset($run->rPr)) { - $objText = $value->createText(PHPExcel_Shared_String::ControlCharacterOOXML2PHP((string) $run->t)); - - } else { - $objText = $value->createTextRun(PHPExcel_Shared_String::ControlCharacterOOXML2PHP((string) $run->t)); - - if (isset($run->rPr->rFont["val"])) { - $objText->getFont()->setName((string) $run->rPr->rFont["val"]); - } - if (isset($run->rPr->sz["val"])) { - $objText->getFont()->setSize((string) $run->rPr->sz["val"]); - } - if (isset($run->rPr->color)) { - $objText->getFont()->setColor(new PHPExcel_Style_Color(self::readColor($run->rPr->color))); - } - if ((isset($run->rPr->b["val"]) && self::boolean((string) $run->rPr->b["val"])) || - (isset($run->rPr->b) && !isset($run->rPr->b["val"]))) { - $objText->getFont()->setBold(true); - } - if ((isset($run->rPr->i["val"]) && self::boolean((string) $run->rPr->i["val"])) || - (isset($run->rPr->i) && !isset($run->rPr->i["val"]))) { - $objText->getFont()->setItalic(true); - } - if (isset($run->rPr->vertAlign) && isset($run->rPr->vertAlign["val"])) { - $vertAlign = strtolower((string)$run->rPr->vertAlign["val"]); - if ($vertAlign == 'superscript') { - $objText->getFont()->setSuperScript(true); - } - if ($vertAlign == 'subscript') { - $objText->getFont()->setSubScript(true); - } - } - if (isset($run->rPr->u) && !isset($run->rPr->u["val"])) { - $objText->getFont()->setUnderline(PHPExcel_Style_Font::UNDERLINE_SINGLE); - } elseif (isset($run->rPr->u) && isset($run->rPr->u["val"])) { - $objText->getFont()->setUnderline((string)$run->rPr->u["val"]); - } - if ((isset($run->rPr->strike["val"]) && self::boolean((string) $run->rPr->strike["val"])) || - (isset($run->rPr->strike) && !isset($run->rPr->strike["val"]))) { - $objText->getFont()->setStrikethrough(true); - } - } - } - } - } - - return $value; - } - - private function readRibbon($excel, $customUITarget, $zip) - { - $baseDir = dirname($customUITarget); - $nameCustomUI = basename($customUITarget); - // get the xml file (ribbon) - $localRibbon = $this->getFromZipArchive($zip, $customUITarget); - $customUIImagesNames = array(); - $customUIImagesBinaries = array(); - // something like customUI/_rels/customUI.xml.rels - $pathRels = $baseDir . '/_rels/' . $nameCustomUI . '.rels'; - $dataRels = $this->getFromZipArchive($zip, $pathRels); - if ($dataRels) { - // exists and not empty if the ribbon have some pictures (other than internal MSO) - $UIRels = simplexml_load_string($this->securityScan($dataRels), 'SimpleXMLElement', PHPExcel_Settings::getLibXmlLoaderOptions()); - if ($UIRels) { - // we need to save id and target to avoid parsing customUI.xml and "guess" if it's a pseudo callback who load the image - foreach ($UIRels->Relationship as $ele) { - if ($ele["Type"] == 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/image') { - // an image ? - $customUIImagesNames[(string) $ele['Id']] = (string)$ele['Target']; - $customUIImagesBinaries[(string)$ele['Target']] = $this->getFromZipArchive($zip, $baseDir . '/' . (string) $ele['Target']); - } - } - } - } - if ($localRibbon) { - $excel->setRibbonXMLData($customUITarget, $localRibbon); - if (count($customUIImagesNames) > 0 && count($customUIImagesBinaries) > 0) { - $excel->setRibbonBinObjects($customUIImagesNames, $customUIImagesBinaries); - } else { - $excel->setRibbonBinObjects(null); - } - } else { - $excel->setRibbonXMLData(null); - $excel->setRibbonBinObjects(null); - } - } - - private static function getArrayItem($array, $key = 0) - { - return (isset($array[$key]) ? $array[$key] : null); - } - - private static function dirAdd($base, $add) - { - return preg_replace('~[^/]+/\.\./~', '', dirname($base) . "/$add"); - } - - private static function toCSSArray($style) - { - $style = str_replace(array("\r","\n"), "", $style); - - $temp = explode(';', $style); - $style = array(); - foreach ($temp as $item) { - $item = explode(':', $item); - - if (strpos($item[1], 'px') !== false) { - $item[1] = str_replace('px', '', $item[1]); - } - if (strpos($item[1], 'pt') !== false) { - $item[1] = str_replace('pt', '', $item[1]); - $item[1] = PHPExcel_Shared_Font::fontSizeToPixels($item[1]); - } - if (strpos($item[1], 'in') !== false) { - $item[1] = str_replace('in', '', $item[1]); - $item[1] = PHPExcel_Shared_Font::inchSizeToPixels($item[1]); - } - if (strpos($item[1], 'cm') !== false) { - $item[1] = str_replace('cm', '', $item[1]); - $item[1] = PHPExcel_Shared_Font::centimeterSizeToPixels($item[1]); - } - - $style[$item[0]] = $item[1]; - } - - return $style; - } - - private static function boolean($value = null) - { - if (is_object($value)) { - $value = (string) $value; - } - if (is_numeric($value)) { - return (bool) $value; - } - return ($value === 'true' || $value === 'TRUE'); - } -} diff --git a/Utils/PHPExcel/Reader/Excel2007/Chart.php b/Utils/PHPExcel/Reader/Excel2007/Chart.php deleted file mode 100644 index 590bf2d..0000000 --- a/Utils/PHPExcel/Reader/Excel2007/Chart.php +++ /dev/null @@ -1,520 +0,0 @@ -attributes(); - if (isset($attributes[$name])) { - if ($format == 'string') { - return (string) $attributes[$name]; - } elseif ($format == 'integer') { - return (integer) $attributes[$name]; - } elseif ($format == 'boolean') { - return (boolean) ($attributes[$name] === '0' || $attributes[$name] !== 'true') ? false : true; - } else { - return (float) $attributes[$name]; - } - } - return null; - } - - - private static function readColor($color, $background = false) - { - if (isset($color["rgb"])) { - return (string)$color["rgb"]; - } elseif (isset($color["indexed"])) { - return PHPExcel_Style_Color::indexedColor($color["indexed"]-7, $background)->getARGB(); - } - } - - public static function readChart($chartElements, $chartName) - { - $namespacesChartMeta = $chartElements->getNamespaces(true); - $chartElementsC = $chartElements->children($namespacesChartMeta['c']); - - $XaxisLabel = $YaxisLabel = $legend = $title = null; - $dispBlanksAs = $plotVisOnly = null; - - foreach ($chartElementsC as $chartElementKey => $chartElement) { - switch ($chartElementKey) { - case "chart": - foreach ($chartElement as $chartDetailsKey => $chartDetails) { - $chartDetailsC = $chartDetails->children($namespacesChartMeta['c']); - switch ($chartDetailsKey) { - case "plotArea": - $plotAreaLayout = $XaxisLable = $YaxisLable = null; - $plotSeries = $plotAttributes = array(); - foreach ($chartDetails as $chartDetailKey => $chartDetail) { - switch ($chartDetailKey) { - case "layout": - $plotAreaLayout = self::chartLayoutDetails($chartDetail, $namespacesChartMeta, 'plotArea'); - break; - case "catAx": - if (isset($chartDetail->title)) { - $XaxisLabel = self::chartTitle($chartDetail->title->children($namespacesChartMeta['c']), $namespacesChartMeta, 'cat'); - } - break; - case "dateAx": - if (isset($chartDetail->title)) { - $XaxisLabel = self::chartTitle($chartDetail->title->children($namespacesChartMeta['c']), $namespacesChartMeta, 'cat'); - } - break; - case "valAx": - if (isset($chartDetail->title)) { - $YaxisLabel = self::chartTitle($chartDetail->title->children($namespacesChartMeta['c']), $namespacesChartMeta, 'cat'); - } - break; - case "barChart": - case "bar3DChart": - $barDirection = self::getAttribute($chartDetail->barDir, 'val', 'string'); - $plotSer = self::chartDataSeries($chartDetail, $namespacesChartMeta, $chartDetailKey); - $plotSer->setPlotDirection($barDirection); - $plotSeries[] = $plotSer; - $plotAttributes = self::readChartAttributes($chartDetail); - break; - case "lineChart": - case "line3DChart": - $plotSeries[] = self::chartDataSeries($chartDetail, $namespacesChartMeta, $chartDetailKey); - $plotAttributes = self::readChartAttributes($chartDetail); - break; - case "areaChart": - case "area3DChart": - $plotSeries[] = self::chartDataSeries($chartDetail, $namespacesChartMeta, $chartDetailKey); - $plotAttributes = self::readChartAttributes($chartDetail); - break; - case "doughnutChart": - case "pieChart": - case "pie3DChart": - $explosion = isset($chartDetail->ser->explosion); - $plotSer = self::chartDataSeries($chartDetail, $namespacesChartMeta, $chartDetailKey); - $plotSer->setPlotStyle($explosion); - $plotSeries[] = $plotSer; - $plotAttributes = self::readChartAttributes($chartDetail); - break; - case "scatterChart": - $scatterStyle = self::getAttribute($chartDetail->scatterStyle, 'val', 'string'); - $plotSer = self::chartDataSeries($chartDetail, $namespacesChartMeta, $chartDetailKey); - $plotSer->setPlotStyle($scatterStyle); - $plotSeries[] = $plotSer; - $plotAttributes = self::readChartAttributes($chartDetail); - break; - case "bubbleChart": - $bubbleScale = self::getAttribute($chartDetail->bubbleScale, 'val', 'integer'); - $plotSer = self::chartDataSeries($chartDetail, $namespacesChartMeta, $chartDetailKey); - $plotSer->setPlotStyle($bubbleScale); - $plotSeries[] = $plotSer; - $plotAttributes = self::readChartAttributes($chartDetail); - break; - case "radarChart": - $radarStyle = self::getAttribute($chartDetail->radarStyle, 'val', 'string'); - $plotSer = self::chartDataSeries($chartDetail, $namespacesChartMeta, $chartDetailKey); - $plotSer->setPlotStyle($radarStyle); - $plotSeries[] = $plotSer; - $plotAttributes = self::readChartAttributes($chartDetail); - break; - case "surfaceChart": - case "surface3DChart": - $wireFrame = self::getAttribute($chartDetail->wireframe, 'val', 'boolean'); - $plotSer = self::chartDataSeries($chartDetail, $namespacesChartMeta, $chartDetailKey); - $plotSer->setPlotStyle($wireFrame); - $plotSeries[] = $plotSer; - $plotAttributes = self::readChartAttributes($chartDetail); - break; - case "stockChart": - $plotSeries[] = self::chartDataSeries($chartDetail, $namespacesChartMeta, $chartDetailKey); - $plotAttributes = self::readChartAttributes($plotAreaLayout); - break; - } - } - if ($plotAreaLayout == null) { - $plotAreaLayout = new PHPExcel_Chart_Layout(); - } - $plotArea = new PHPExcel_Chart_PlotArea($plotAreaLayout, $plotSeries); - self::setChartAttributes($plotAreaLayout, $plotAttributes); - break; - case "plotVisOnly": - $plotVisOnly = self::getAttribute($chartDetails, 'val', 'string'); - break; - case "dispBlanksAs": - $dispBlanksAs = self::getAttribute($chartDetails, 'val', 'string'); - break; - case "title": - $title = self::chartTitle($chartDetails, $namespacesChartMeta, 'title'); - break; - case "legend": - $legendPos = 'r'; - $legendLayout = null; - $legendOverlay = false; - foreach ($chartDetails as $chartDetailKey => $chartDetail) { - switch ($chartDetailKey) { - case "legendPos": - $legendPos = self::getAttribute($chartDetail, 'val', 'string'); - break; - case "overlay": - $legendOverlay = self::getAttribute($chartDetail, 'val', 'boolean'); - break; - case "layout": - $legendLayout = self::chartLayoutDetails($chartDetail, $namespacesChartMeta, 'legend'); - break; - } - } - $legend = new PHPExcel_Chart_Legend($legendPos, $legendLayout, $legendOverlay); - break; - } - } - } - } - $chart = new PHPExcel_Chart($chartName, $title, $legend, $plotArea, $plotVisOnly, $dispBlanksAs, $XaxisLabel, $YaxisLabel); - - return $chart; - } - - private static function chartTitle($titleDetails, $namespacesChartMeta, $type) - { - $caption = array(); - $titleLayout = null; - foreach ($titleDetails as $titleDetailKey => $chartDetail) { - switch ($titleDetailKey) { - case "tx": - $titleDetails = $chartDetail->rich->children($namespacesChartMeta['a']); - foreach ($titleDetails as $titleKey => $titleDetail) { - switch ($titleKey) { - case "p": - $titleDetailPart = $titleDetail->children($namespacesChartMeta['a']); - $caption[] = self::parseRichText($titleDetailPart); - } - } - break; - case "layout": - $titleLayout = self::chartLayoutDetails($chartDetail, $namespacesChartMeta); - break; - } - } - - return new PHPExcel_Chart_Title($caption, $titleLayout); - } - - private static function chartLayoutDetails($chartDetail, $namespacesChartMeta) - { - if (!isset($chartDetail->manualLayout)) { - return null; - } - $details = $chartDetail->manualLayout->children($namespacesChartMeta['c']); - if (is_null($details)) { - return null; - } - $layout = array(); - foreach ($details as $detailKey => $detail) { -// echo $detailKey, ' => ',self::getAttribute($detail, 'val', 'string'),PHP_EOL; - $layout[$detailKey] = self::getAttribute($detail, 'val', 'string'); - } - return new PHPExcel_Chart_Layout($layout); - } - - private static function chartDataSeries($chartDetail, $namespacesChartMeta, $plotType) - { - $multiSeriesType = null; - $smoothLine = false; - $seriesLabel = $seriesCategory = $seriesValues = $plotOrder = array(); - - $seriesDetailSet = $chartDetail->children($namespacesChartMeta['c']); - foreach ($seriesDetailSet as $seriesDetailKey => $seriesDetails) { - switch ($seriesDetailKey) { - case "grouping": - $multiSeriesType = self::getAttribute($chartDetail->grouping, 'val', 'string'); - break; - case "ser": - $marker = null; - foreach ($seriesDetails as $seriesKey => $seriesDetail) { - switch ($seriesKey) { - case "idx": - $seriesIndex = self::getAttribute($seriesDetail, 'val', 'integer'); - break; - case "order": - $seriesOrder = self::getAttribute($seriesDetail, 'val', 'integer'); - $plotOrder[$seriesIndex] = $seriesOrder; - break; - case "tx": - $seriesLabel[$seriesIndex] = self::chartDataSeriesValueSet($seriesDetail, $namespacesChartMeta); - break; - case "marker": - $marker = self::getAttribute($seriesDetail->symbol, 'val', 'string'); - break; - case "smooth": - $smoothLine = self::getAttribute($seriesDetail, 'val', 'boolean'); - break; - case "cat": - $seriesCategory[$seriesIndex] = self::chartDataSeriesValueSet($seriesDetail, $namespacesChartMeta); - break; - case "val": - $seriesValues[$seriesIndex] = self::chartDataSeriesValueSet($seriesDetail, $namespacesChartMeta, $marker); - break; - case "xVal": - $seriesCategory[$seriesIndex] = self::chartDataSeriesValueSet($seriesDetail, $namespacesChartMeta, $marker); - break; - case "yVal": - $seriesValues[$seriesIndex] = self::chartDataSeriesValueSet($seriesDetail, $namespacesChartMeta, $marker); - break; - } - } - } - } - return new PHPExcel_Chart_DataSeries($plotType, $multiSeriesType, $plotOrder, $seriesLabel, $seriesCategory, $seriesValues, $smoothLine); - } - - - private static function chartDataSeriesValueSet($seriesDetail, $namespacesChartMeta, $marker = null, $smoothLine = false) - { - if (isset($seriesDetail->strRef)) { - $seriesSource = (string) $seriesDetail->strRef->f; - $seriesData = self::chartDataSeriesValues($seriesDetail->strRef->strCache->children($namespacesChartMeta['c']), 's'); - - return new PHPExcel_Chart_DataSeriesValues('String', $seriesSource, $seriesData['formatCode'], $seriesData['pointCount'], $seriesData['dataValues'], $marker, $smoothLine); - } elseif (isset($seriesDetail->numRef)) { - $seriesSource = (string) $seriesDetail->numRef->f; - $seriesData = self::chartDataSeriesValues($seriesDetail->numRef->numCache->children($namespacesChartMeta['c'])); - - return new PHPExcel_Chart_DataSeriesValues('Number', $seriesSource, $seriesData['formatCode'], $seriesData['pointCount'], $seriesData['dataValues'], $marker, $smoothLine); - } elseif (isset($seriesDetail->multiLvlStrRef)) { - $seriesSource = (string) $seriesDetail->multiLvlStrRef->f; - $seriesData = self::chartDataSeriesValuesMultiLevel($seriesDetail->multiLvlStrRef->multiLvlStrCache->children($namespacesChartMeta['c']), 's'); - $seriesData['pointCount'] = count($seriesData['dataValues']); - - return new PHPExcel_Chart_DataSeriesValues('String', $seriesSource, $seriesData['formatCode'], $seriesData['pointCount'], $seriesData['dataValues'], $marker, $smoothLine); - } elseif (isset($seriesDetail->multiLvlNumRef)) { - $seriesSource = (string) $seriesDetail->multiLvlNumRef->f; - $seriesData = self::chartDataSeriesValuesMultiLevel($seriesDetail->multiLvlNumRef->multiLvlNumCache->children($namespacesChartMeta['c']), 's'); - $seriesData['pointCount'] = count($seriesData['dataValues']); - - return new PHPExcel_Chart_DataSeriesValues('String', $seriesSource, $seriesData['formatCode'], $seriesData['pointCount'], $seriesData['dataValues'], $marker, $smoothLine); - } - return null; - } - - - private static function chartDataSeriesValues($seriesValueSet, $dataType = 'n') - { - $seriesVal = array(); - $formatCode = ''; - $pointCount = 0; - - foreach ($seriesValueSet as $seriesValueIdx => $seriesValue) { - switch ($seriesValueIdx) { - case 'ptCount': - $pointCount = self::getAttribute($seriesValue, 'val', 'integer'); - break; - case 'formatCode': - $formatCode = (string) $seriesValue; - break; - case 'pt': - $pointVal = self::getAttribute($seriesValue, 'idx', 'integer'); - if ($dataType == 's') { - $seriesVal[$pointVal] = (string) $seriesValue->v; - } else { - $seriesVal[$pointVal] = (float) $seriesValue->v; - } - break; - } - } - - return array( - 'formatCode' => $formatCode, - 'pointCount' => $pointCount, - 'dataValues' => $seriesVal - ); - } - - private static function chartDataSeriesValuesMultiLevel($seriesValueSet, $dataType = 'n') - { - $seriesVal = array(); - $formatCode = ''; - $pointCount = 0; - - foreach ($seriesValueSet->lvl as $seriesLevelIdx => $seriesLevel) { - foreach ($seriesLevel as $seriesValueIdx => $seriesValue) { - switch ($seriesValueIdx) { - case 'ptCount': - $pointCount = self::getAttribute($seriesValue, 'val', 'integer'); - break; - case 'formatCode': - $formatCode = (string) $seriesValue; - break; - case 'pt': - $pointVal = self::getAttribute($seriesValue, 'idx', 'integer'); - if ($dataType == 's') { - $seriesVal[$pointVal][] = (string) $seriesValue->v; - } else { - $seriesVal[$pointVal][] = (float) $seriesValue->v; - } - break; - } - } - } - - return array( - 'formatCode' => $formatCode, - 'pointCount' => $pointCount, - 'dataValues' => $seriesVal - ); - } - - private static function parseRichText($titleDetailPart = null) - { - $value = new PHPExcel_RichText(); - - foreach ($titleDetailPart as $titleDetailElementKey => $titleDetailElement) { - if (isset($titleDetailElement->t)) { - $objText = $value->createTextRun((string) $titleDetailElement->t); - } - if (isset($titleDetailElement->rPr)) { - if (isset($titleDetailElement->rPr->rFont["val"])) { - $objText->getFont()->setName((string) $titleDetailElement->rPr->rFont["val"]); - } - - $fontSize = (self::getAttribute($titleDetailElement->rPr, 'sz', 'integer')); - if (!is_null($fontSize)) { - $objText->getFont()->setSize(floor($fontSize / 100)); - } - - $fontColor = (self::getAttribute($titleDetailElement->rPr, 'color', 'string')); - if (!is_null($fontColor)) { - $objText->getFont()->setColor(new PHPExcel_Style_Color(self::readColor($fontColor))); - } - - $bold = self::getAttribute($titleDetailElement->rPr, 'b', 'boolean'); - if (!is_null($bold)) { - $objText->getFont()->setBold($bold); - } - - $italic = self::getAttribute($titleDetailElement->rPr, 'i', 'boolean'); - if (!is_null($italic)) { - $objText->getFont()->setItalic($italic); - } - - $baseline = self::getAttribute($titleDetailElement->rPr, 'baseline', 'integer'); - if (!is_null($baseline)) { - if ($baseline > 0) { - $objText->getFont()->setSuperScript(true); - } elseif ($baseline < 0) { - $objText->getFont()->setSubScript(true); - } - } - - $underscore = (self::getAttribute($titleDetailElement->rPr, 'u', 'string')); - if (!is_null($underscore)) { - if ($underscore == 'sng') { - $objText->getFont()->setUnderline(PHPExcel_Style_Font::UNDERLINE_SINGLE); - } elseif ($underscore == 'dbl') { - $objText->getFont()->setUnderline(PHPExcel_Style_Font::UNDERLINE_DOUBLE); - } else { - $objText->getFont()->setUnderline(PHPExcel_Style_Font::UNDERLINE_NONE); - } - } - - $strikethrough = (self::getAttribute($titleDetailElement->rPr, 's', 'string')); - if (!is_null($strikethrough)) { - if ($strikethrough == 'noStrike') { - $objText->getFont()->setStrikethrough(false); - } else { - $objText->getFont()->setStrikethrough(true); - } - } - } - } - - return $value; - } - - private static function readChartAttributes($chartDetail) - { - $plotAttributes = array(); - if (isset($chartDetail->dLbls)) { - if (isset($chartDetail->dLbls->howLegendKey)) { - $plotAttributes['showLegendKey'] = self::getAttribute($chartDetail->dLbls->showLegendKey, 'val', 'string'); - } - if (isset($chartDetail->dLbls->showVal)) { - $plotAttributes['showVal'] = self::getAttribute($chartDetail->dLbls->showVal, 'val', 'string'); - } - if (isset($chartDetail->dLbls->showCatName)) { - $plotAttributes['showCatName'] = self::getAttribute($chartDetail->dLbls->showCatName, 'val', 'string'); - } - if (isset($chartDetail->dLbls->showSerName)) { - $plotAttributes['showSerName'] = self::getAttribute($chartDetail->dLbls->showSerName, 'val', 'string'); - } - if (isset($chartDetail->dLbls->showPercent)) { - $plotAttributes['showPercent'] = self::getAttribute($chartDetail->dLbls->showPercent, 'val', 'string'); - } - if (isset($chartDetail->dLbls->showBubbleSize)) { - $plotAttributes['showBubbleSize'] = self::getAttribute($chartDetail->dLbls->showBubbleSize, 'val', 'string'); - } - if (isset($chartDetail->dLbls->showLeaderLines)) { - $plotAttributes['showLeaderLines'] = self::getAttribute($chartDetail->dLbls->showLeaderLines, 'val', 'string'); - } - } - - return $plotAttributes; - } - - private static function setChartAttributes($plotArea, $plotAttributes) - { - foreach ($plotAttributes as $plotAttributeKey => $plotAttributeValue) { - switch ($plotAttributeKey) { - case 'showLegendKey': - $plotArea->setShowLegendKey($plotAttributeValue); - break; - case 'showVal': - $plotArea->setShowVal($plotAttributeValue); - break; - case 'showCatName': - $plotArea->setShowCatName($plotAttributeValue); - break; - case 'showSerName': - $plotArea->setShowSerName($plotAttributeValue); - break; - case 'showPercent': - $plotArea->setShowPercent($plotAttributeValue); - break; - case 'showBubbleSize': - $plotArea->setShowBubbleSize($plotAttributeValue); - break; - case 'showLeaderLines': - $plotArea->setShowLeaderLines($plotAttributeValue); - break; - } - } - } -} diff --git a/Utils/PHPExcel/Reader/Excel2007/Theme.php b/Utils/PHPExcel/Reader/Excel2007/Theme.php deleted file mode 100644 index 134f4b6..0000000 --- a/Utils/PHPExcel/Reader/Excel2007/Theme.php +++ /dev/null @@ -1,127 +0,0 @@ -themeName = $themeName; - $this->colourSchemeName = $colourSchemeName; - $this->colourMap = $colourMap; - } - - /** - * Get Theme Name - * - * @return string - */ - public function getThemeName() - { - return $this->themeName; - } - - /** - * Get colour Scheme Name - * - * @return string - */ - public function getColourSchemeName() - { - return $this->colourSchemeName; - } - - /** - * Get colour Map Value by Position - * - * @return string - */ - public function getColourByIndex($index = 0) - { - if (isset($this->colourMap[$index])) { - return $this->colourMap[$index]; - } - return null; - } - - /** - * Implement PHP __clone to create a deep clone, not just a shallow copy. - */ - public function __clone() - { - $vars = get_object_vars($this); - foreach ($vars as $key => $value) { - if ((is_object($value)) && ($key != '_parent')) { - $this->$key = clone $value; - } else { - $this->$key = $value; - } - } - } -} diff --git a/Utils/PHPExcel/Reader/Excel5.php b/Utils/PHPExcel/Reader/Excel5.php deleted file mode 100644 index 7b236ad..0000000 --- a/Utils/PHPExcel/Reader/Excel5.php +++ /dev/null @@ -1,7499 +0,0 @@ -data - * - * @var int - */ - private $dataSize; - - /** - * Current position in stream - * - * @var integer - */ - private $pos; - - /** - * Workbook to be returned by the reader. - * - * @var PHPExcel - */ - private $phpExcel; - - /** - * Worksheet that is currently being built by the reader. - * - * @var PHPExcel_Worksheet - */ - private $phpSheet; - - /** - * BIFF version - * - * @var int - */ - private $version; - - /** - * Codepage set in the Excel file being read. Only important for BIFF5 (Excel 5.0 - Excel 95) - * For BIFF8 (Excel 97 - Excel 2003) this will always have the value 'UTF-16LE' - * - * @var string - */ - private $codepage; - - /** - * Shared formats - * - * @var array - */ - private $formats; - - /** - * Shared fonts - * - * @var array - */ - private $objFonts; - - /** - * Color palette - * - * @var array - */ - private $palette; - - /** - * Worksheets - * - * @var array - */ - private $sheets; - - /** - * External books - * - * @var array - */ - private $externalBooks; - - /** - * REF structures. Only applies to BIFF8. - * - * @var array - */ - private $ref; - - /** - * External names - * - * @var array - */ - private $externalNames; - - /** - * Defined names - * - * @var array - */ - private $definedname; - - /** - * Shared strings. Only applies to BIFF8. - * - * @var array - */ - private $sst; - - /** - * Panes are frozen? (in sheet currently being read). See WINDOW2 record. - * - * @var boolean - */ - private $frozen; - - /** - * Fit printout to number of pages? (in sheet currently being read). See SHEETPR record. - * - * @var boolean - */ - private $isFitToPages; - - /** - * Objects. One OBJ record contributes with one entry. - * - * @var array - */ - private $objs; - - /** - * Text Objects. One TXO record corresponds with one entry. - * - * @var array - */ - private $textObjects; - - /** - * Cell Annotations (BIFF8) - * - * @var array - */ - private $cellNotes; - - /** - * The combined MSODRAWINGGROUP data - * - * @var string - */ - private $drawingGroupData; - - /** - * The combined MSODRAWING data (per sheet) - * - * @var string - */ - private $drawingData; - - /** - * Keep track of XF index - * - * @var int - */ - private $xfIndex; - - /** - * Mapping of XF index (that is a cell XF) to final index in cellXf collection - * - * @var array - */ - private $mapCellXfIndex; - - /** - * Mapping of XF index (that is a style XF) to final index in cellStyleXf collection - * - * @var array - */ - private $mapCellStyleXfIndex; - - /** - * The shared formulas in a sheet. One SHAREDFMLA record contributes with one value. - * - * @var array - */ - private $sharedFormulas; - - /** - * The shared formula parts in a sheet. One FORMULA record contributes with one value if it - * refers to a shared formula. - * - * @var array - */ - private $sharedFormulaParts; - - /** - * The type of encryption in use - * - * @var int - */ - private $encryption = 0; - - /** - * The position in the stream after which contents are encrypted - * - * @var int - */ - private $encryptionStartPos = false; - - /** - * The current RC4 decryption object - * - * @var PHPExcel_Reader_Excel5_RC4 - */ - private $rc4Key = null; - - /** - * The position in the stream that the RC4 decryption object was left at - * - * @var int - */ - private $rc4Pos = 0; - - /** - * The current MD5 context state - * - * @var string - */ - private $md5Ctxt = null; - - /** - * Create a new PHPExcel_Reader_Excel5 instance - */ - public function __construct() - { - $this->readFilter = new PHPExcel_Reader_DefaultReadFilter(); - } - - /** - * Can the current PHPExcel_Reader_IReader read the file? - * - * @param string $pFilename - * @return boolean - * @throws PHPExcel_Reader_Exception - */ - public function canRead($pFilename) - { - // Check if file exists - if (!file_exists($pFilename)) { - throw new PHPExcel_Reader_Exception("Could not open " . $pFilename . " for reading! File does not exist."); - } - - try { - // Use ParseXL for the hard work. - $ole = new PHPExcel_Shared_OLERead(); - - // get excel data - $res = $ole->read($pFilename); - return true; - } catch (PHPExcel_Exception $e) { - return false; - } - } - - /** - * Reads names of the worksheets from a file, without parsing the whole file to a PHPExcel object - * - * @param string $pFilename - * @throws PHPExcel_Reader_Exception - */ - public function listWorksheetNames($pFilename) - { - // Check if file exists - if (!file_exists($pFilename)) { - throw new PHPExcel_Reader_Exception("Could not open " . $pFilename . " for reading! File does not exist."); - } - - $worksheetNames = array(); - - // Read the OLE file - $this->loadOLE($pFilename); - - // total byte size of Excel data (workbook global substream + sheet substreams) - $this->dataSize = strlen($this->data); - - $this->pos = 0; - $this->sheets = array(); - - // Parse Workbook Global Substream - while ($this->pos < $this->dataSize) { - $code = self::getInt2d($this->data, $this->pos); - - switch ($code) { - case self::XLS_TYPE_BOF: - $this->readBof(); - break; - case self::XLS_TYPE_SHEET: - $this->readSheet(); - break; - case self::XLS_TYPE_EOF: - $this->readDefault(); - break 2; - default: - $this->readDefault(); - break; - } - } - - foreach ($this->sheets as $sheet) { - if ($sheet['sheetType'] != 0x00) { - // 0x00: Worksheet, 0x02: Chart, 0x06: Visual Basic module - continue; - } - - $worksheetNames[] = $sheet['name']; - } - - return $worksheetNames; - } - - /** - * Use OLE reader to extract the relevant data streams from the OLE file - * - * @param string $pFilename - */ - private function loadOLE($pFilename) - { - // OLE reader - $ole = new PHPExcel_Shared_OLERead(); - // get excel data, - $res = $ole->read($pFilename); - // Get workbook data: workbook stream + sheet streams - $this->data = $ole->getStream($ole->wrkbook); - // Get summary information data - $this->summaryInformation = $ole->getStream($ole->summaryInformation); - // Get additional document summary information data - $this->documentSummaryInformation = $ole->getStream($ole->documentSummaryInformation); - // Get user-defined property data -// $this->userDefinedProperties = $ole->getUserDefinedProperties(); - } - - /** - * Read 16-bit unsigned integer - * - * @param string $data - * @param int $pos - * @return int - */ - public static function getInt2d($data, $pos) - { - return ord($data[$pos]) | (ord($data[$pos+1]) << 8); - } - - /** - * Read BOF - */ - private function readBof() - { - $length = self::getInt2d($this->data, $this->pos + 2); - $recordData = substr($this->data, $this->pos + 4, $length); - - // move stream pointer to next record - $this->pos += 4 + $length; - - // offset: 2; size: 2; type of the following data - $substreamType = self::getInt2d($recordData, 2); - - switch ($substreamType) { - case self::XLS_WorkbookGlobals: - $version = self::getInt2d($recordData, 0); - if (($version != self::XLS_BIFF8) && ($version != self::XLS_BIFF7)) { - throw new PHPExcel_Reader_Exception('Cannot read this Excel file. Version is too old.'); - } - $this->version = $version; - break; - case self::XLS_Worksheet: - // do not use this version information for anything - // it is unreliable (OpenOffice doc, 5.8), use only version information from the global stream - break; - default: - // substream, e.g. chart - // just skip the entire substream - do { - $code = self::getInt2d($this->data, $this->pos); - $this->readDefault(); - } while ($code != self::XLS_TYPE_EOF && $this->pos < $this->dataSize); - break; - } - } - - /** - * Reads a general type of BIFF record. Does nothing except for moving stream pointer forward to next record. - */ - private function readDefault() - { - $length = self::getInt2d($this->data, $this->pos + 2); -// $recordData = $this->readRecordData($this->data, $this->pos + 4, $length); - - // move stream pointer to next record - $this->pos += 4 + $length; - } - - /** - * SHEET - * - * This record is located in the Workbook Globals - * Substream and represents a sheet inside the workbook. - * One SHEET record is written for each sheet. It stores the - * sheet name and a stream offset to the BOF record of the - * respective Sheet Substream within the Workbook Stream. - * - * -- "OpenOffice.org's Documentation of the Microsoft - * Excel File Format" - */ - private function readSheet() - { - $length = self::getInt2d($this->data, $this->pos + 2); - $recordData = $this->readRecordData($this->data, $this->pos + 4, $length); - - // offset: 0; size: 4; absolute stream position of the BOF record of the sheet - // NOTE: not encrypted - $rec_offset = self::getInt4d($this->data, $this->pos + 4); - - // move stream pointer to next record - $this->pos += 4 + $length; - - // offset: 4; size: 1; sheet state - switch (ord($recordData{4})) { - case 0x00: - $sheetState = PHPExcel_Worksheet::SHEETSTATE_VISIBLE; - break; - case 0x01: - $sheetState = PHPExcel_Worksheet::SHEETSTATE_HIDDEN; - break; - case 0x02: - $sheetState = PHPExcel_Worksheet::SHEETSTATE_VERYHIDDEN; - break; - default: - $sheetState = PHPExcel_Worksheet::SHEETSTATE_VISIBLE; - break; - } - - // offset: 5; size: 1; sheet type - $sheetType = ord($recordData{5}); - - // offset: 6; size: var; sheet name - if ($this->version == self::XLS_BIFF8) { - $string = self::readUnicodeStringShort(substr($recordData, 6)); - $rec_name = $string['value']; - } elseif ($this->version == self::XLS_BIFF7) { - $string = $this->readByteStringShort(substr($recordData, 6)); - $rec_name = $string['value']; - } - - $this->sheets[] = array( - 'name' => $rec_name, - 'offset' => $rec_offset, - 'sheetState' => $sheetState, - 'sheetType' => $sheetType, - ); - } - - /** - * Read record data from stream, decrypting as required - * - * @param string $data Data stream to read from - * @param int $pos Position to start reading from - * @param int $length Record data length - * - * @return string Record data - */ - private function readRecordData($data, $pos, $len) - { - $data = substr($data, $pos, $len); - - // File not encrypted, or record before encryption start point - if ($this->encryption == self::MS_BIFF_CRYPTO_NONE || $pos < $this->encryptionStartPos) { - return $data; - } - - $recordData = ''; - if ($this->encryption == self::MS_BIFF_CRYPTO_RC4) { - $oldBlock = floor($this->rc4Pos / self::REKEY_BLOCK); - $block = floor($pos / self::REKEY_BLOCK); - $endBlock = floor(($pos + $len) / self::REKEY_BLOCK); - - // Spin an RC4 decryptor to the right spot. If we have a decryptor sitting - // at a point earlier in the current block, re-use it as we can save some time. - if ($block != $oldBlock || $pos < $this->rc4Pos || !$this->rc4Key) { - $this->rc4Key = $this->makeKey($block, $this->md5Ctxt); - $step = $pos % self::REKEY_BLOCK; - } else { - $step = $pos - $this->rc4Pos; - } - $this->rc4Key->RC4(str_repeat("\0", $step)); - - // Decrypt record data (re-keying at the end of every block) - while ($block != $endBlock) { - $step = self::REKEY_BLOCK - ($pos % self::REKEY_BLOCK); - $recordData .= $this->rc4Key->RC4(substr($data, 0, $step)); - $data = substr($data, $step); - $pos += $step; - $len -= $step; - $block++; - $this->rc4Key = $this->makeKey($block, $this->md5Ctxt); - } - $recordData .= $this->rc4Key->RC4(substr($data, 0, $len)); - - // Keep track of the position of this decryptor. - // We'll try and re-use it later if we can to speed things up - $this->rc4Pos = $pos + $len; - } elseif ($this->encryption == self::MS_BIFF_CRYPTO_XOR) { - throw new PHPExcel_Reader_Exception('XOr encryption not supported'); - } - return $recordData; - } - - /** - * Make an RC4 decryptor for the given block - * - * @var int $block Block for which to create decrypto - * @var string $valContext MD5 context state - * - * @return PHPExcel_Reader_Excel5_RC4 - */ - private function makeKey($block, $valContext) - { - $pwarray = str_repeat("\0", 64); - - for ($i = 0; $i < 5; $i++) { - $pwarray[$i] = $valContext[$i]; - } - - $pwarray[5] = chr($block & 0xff); - $pwarray[6] = chr(($block >> 8) & 0xff); - $pwarray[7] = chr(($block >> 16) & 0xff); - $pwarray[8] = chr(($block >> 24) & 0xff); - - $pwarray[9] = "\x80"; - $pwarray[56] = "\x48"; - - $md5 = new PHPExcel_Reader_Excel5_MD5(); - $md5->add($pwarray); - - $s = $md5->getContext(); - return new PHPExcel_Reader_Excel5_RC4($s); - } - - /** - * Read 32-bit signed integer - * - * @param string $data - * @param int $pos - * @return int - */ - public static function getInt4d($data, $pos) - { - // FIX: represent numbers correctly on 64-bit system - // http://sourceforge.net/tracker/index.php?func=detail&aid=1487372&group_id=99160&atid=623334 - // Hacked by Andreas Rehm 2006 to ensure correct result of the <<24 block on 32 and 64bit systems - $_or_24 = ord($data[$pos + 3]); - if ($_or_24 >= 128) { - // negative number - $_ord_24 = -abs((256 - $_or_24) << 24); - } else { - $_ord_24 = ($_or_24 & 127) << 24; - } - return ord($data[$pos]) | (ord($data[$pos+1]) << 8) | (ord($data[$pos+2]) << 16) | $_ord_24; - } - - /** - * Extracts an Excel Unicode short string (8-bit string length) - * OpenOffice documentation: 2.5.3 - * function will automatically find out where the Unicode string ends. - * - * @param string $subData - * @return array - */ - private static function readUnicodeStringShort($subData) - { - $value = ''; - - // offset: 0: size: 1; length of the string (character count) - $characterCount = ord($subData[0]); - - $string = self::readUnicodeString(substr($subData, 1), $characterCount); - - // add 1 for the string length - $string['size'] += 1; - - return $string; - } - - /** - * Read Unicode string with no string length field, but with known character count - * this function is under construction, needs to support rich text, and Asian phonetic settings - * OpenOffice.org's Documentation of the Microsoft Excel File Format, section 2.5.3 - * - * @param string $subData - * @param int $characterCount - * @return array - */ - private static function readUnicodeString($subData, $characterCount) - { - $value = ''; - - // offset: 0: size: 1; option flags - // bit: 0; mask: 0x01; character compression (0 = compressed 8-bit, 1 = uncompressed 16-bit) - $isCompressed = !((0x01 & ord($subData[0])) >> 0); - - // bit: 2; mask: 0x04; Asian phonetic settings - $hasAsian = (0x04) & ord($subData[0]) >> 2; - - // bit: 3; mask: 0x08; Rich-Text settings - $hasRichText = (0x08) & ord($subData[0]) >> 3; - - // offset: 1: size: var; character array - // this offset assumes richtext and Asian phonetic settings are off which is generally wrong - // needs to be fixed - $value = self::encodeUTF16(substr($subData, 1, $isCompressed ? $characterCount : 2 * $characterCount), $isCompressed); - - return array( - 'value' => $value, - 'size' => $isCompressed ? 1 + $characterCount : 1 + 2 * $characterCount, // the size in bytes including the option flags - ); - } - - /** - * Get UTF-8 string from (compressed or uncompressed) UTF-16 string - * - * @param string $string - * @param bool $compressed - * @return string - */ - private static function encodeUTF16($string, $compressed = '') - { - if ($compressed) { - $string = self::uncompressByteString($string); - } - - return PHPExcel_Shared_String::ConvertEncoding($string, 'UTF-8', 'UTF-16LE'); - } - - /** - * Convert UTF-16 string in compressed notation to uncompressed form. Only used for BIFF8. - * - * @param string $string - * @return string - */ - private static function uncompressByteString($string) - { - $uncompressedString = ''; - $strLen = strlen($string); - for ($i = 0; $i < $strLen; ++$i) { - $uncompressedString .= $string[$i] . "\0"; - } - - return $uncompressedString; - } - - /** - * Read byte string (8-bit string length) - * OpenOffice documentation: 2.5.2 - * - * @param string $subData - * @return array - */ - private function readByteStringShort($subData) - { - // offset: 0; size: 1; length of the string (character count) - $ln = ord($subData[0]); - - // offset: 1: size: var; character array (8-bit characters) - $value = $this->decodeCodepage(substr($subData, 1, $ln)); - - return array( - 'value' => $value, - 'size' => 1 + $ln, // size in bytes of data structure - ); - } - - /** - * Convert string to UTF-8. Only used for BIFF5. - * - * @param string $string - * @return string - */ - private function decodeCodepage($string) - { - return PHPExcel_Shared_String::ConvertEncoding($string, 'UTF-8', $this->codepage); - } - - /** - * Return worksheet info (Name, Last Column Letter, Last Column Index, Total Rows, Total Columns) - * - * @param string $pFilename - * @throws PHPExcel_Reader_Exception - */ - public function listWorksheetInfo($pFilename) - { - // Check if file exists - if (!file_exists($pFilename)) { - throw new PHPExcel_Reader_Exception("Could not open " . $pFilename . " for reading! File does not exist."); - } - - $worksheetInfo = array(); - - // Read the OLE file - $this->loadOLE($pFilename); - - // total byte size of Excel data (workbook global substream + sheet substreams) - $this->dataSize = strlen($this->data); - - // initialize - $this->pos = 0; - $this->sheets = array(); - - // Parse Workbook Global Substream - while ($this->pos < $this->dataSize) { - $code = self::getInt2d($this->data, $this->pos); - - switch ($code) { - case self::XLS_TYPE_BOF: - $this->readBof(); - break; - case self::XLS_TYPE_SHEET: - $this->readSheet(); - break; - case self::XLS_TYPE_EOF: - $this->readDefault(); - break 2; - default: - $this->readDefault(); - break; - } - } - - // Parse the individual sheets - foreach ($this->sheets as $sheet) { - if ($sheet['sheetType'] != 0x00) { - // 0x00: Worksheet - // 0x02: Chart - // 0x06: Visual Basic module - continue; - } - - $tmpInfo = array(); - $tmpInfo['worksheetName'] = $sheet['name']; - $tmpInfo['lastColumnLetter'] = 'A'; - $tmpInfo['lastColumnIndex'] = 0; - $tmpInfo['totalRows'] = 0; - $tmpInfo['totalColumns'] = 0; - - $this->pos = $sheet['offset']; - - while ($this->pos <= $this->dataSize - 4) { - $code = self::getInt2d($this->data, $this->pos); - - switch ($code) { - case self::XLS_TYPE_RK: - case self::XLS_TYPE_LABELSST: - case self::XLS_TYPE_NUMBER: - case self::XLS_TYPE_FORMULA: - case self::XLS_TYPE_BOOLERR: - case self::XLS_TYPE_LABEL: - $length = self::getInt2d($this->data, $this->pos + 2); - $recordData = $this->readRecordData($this->data, $this->pos + 4, $length); - - // move stream pointer to next record - $this->pos += 4 + $length; - - $rowIndex = self::getInt2d($recordData, 0) + 1; - $columnIndex = self::getInt2d($recordData, 2); - - $tmpInfo['totalRows'] = max($tmpInfo['totalRows'], $rowIndex); - $tmpInfo['lastColumnIndex'] = max($tmpInfo['lastColumnIndex'], $columnIndex); - break; - case self::XLS_TYPE_BOF: - $this->readBof(); - break; - case self::XLS_TYPE_EOF: - $this->readDefault(); - break 2; - default: - $this->readDefault(); - break; - } - } - - $tmpInfo['lastColumnLetter'] = PHPExcel_Cell::stringFromColumnIndex($tmpInfo['lastColumnIndex']); - $tmpInfo['totalColumns'] = $tmpInfo['lastColumnIndex'] + 1; - - $worksheetInfo[] = $tmpInfo; - } - - return $worksheetInfo; - } - - /** - * Loads PHPExcel from file - * - * @param string $pFilename - * @return PHPExcel - * @throws PHPExcel_Reader_Exception - */ - public function load($pFilename) - { - // Read the OLE file - $this->loadOLE($pFilename); - - // Initialisations - $this->phpExcel = new PHPExcel; - $this->phpExcel->removeSheetByIndex(0); // remove 1st sheet - if (!$this->readDataOnly) { - $this->phpExcel->removeCellStyleXfByIndex(0); // remove the default style - $this->phpExcel->removeCellXfByIndex(0); // remove the default style - } - - // Read the summary information stream (containing meta data) - $this->readSummaryInformation(); - - // Read the Additional document summary information stream (containing application-specific meta data) - $this->readDocumentSummaryInformation(); - - // total byte size of Excel data (workbook global substream + sheet substreams) - $this->dataSize = strlen($this->data); - - // initialize - $this->pos = 0; - $this->codepage = 'CP1252'; - $this->formats = array(); - $this->objFonts = array(); - $this->palette = array(); - $this->sheets = array(); - $this->externalBooks = array(); - $this->ref = array(); - $this->definedname = array(); - $this->sst = array(); - $this->drawingGroupData = ''; - $this->xfIndex = ''; - $this->mapCellXfIndex = array(); - $this->mapCellStyleXfIndex = array(); - - // Parse Workbook Global Substream - while ($this->pos < $this->dataSize) { - $code = self::getInt2d($this->data, $this->pos); - - switch ($code) { - case self::XLS_TYPE_BOF: - $this->readBof(); - break; - case self::XLS_TYPE_FILEPASS: - $this->readFilepass(); - break; - case self::XLS_TYPE_CODEPAGE: - $this->readCodepage(); - break; - case self::XLS_TYPE_DATEMODE: - $this->readDateMode(); - break; - case self::XLS_TYPE_FONT: - $this->readFont(); - break; - case self::XLS_TYPE_FORMAT: - $this->readFormat(); - break; - case self::XLS_TYPE_XF: - $this->readXf(); - break; - case self::XLS_TYPE_XFEXT: - $this->readXfExt(); - break; - case self::XLS_TYPE_STYLE: - $this->readStyle(); - break; - case self::XLS_TYPE_PALETTE: - $this->readPalette(); - break; - case self::XLS_TYPE_SHEET: - $this->readSheet(); - break; - case self::XLS_TYPE_EXTERNALBOOK: - $this->readExternalBook(); - break; - case self::XLS_TYPE_EXTERNNAME: - $this->readExternName(); - break; - case self::XLS_TYPE_EXTERNSHEET: - $this->readExternSheet(); - break; - case self::XLS_TYPE_DEFINEDNAME: - $this->readDefinedName(); - break; - case self::XLS_TYPE_MSODRAWINGGROUP: - $this->readMsoDrawingGroup(); - break; - case self::XLS_TYPE_SST: - $this->readSst(); - break; - case self::XLS_TYPE_EOF: - $this->readDefault(); - break 2; - default: - $this->readDefault(); - break; - } - } - - // Resolve indexed colors for font, fill, and border colors - // Cannot be resolved already in XF record, because PALETTE record comes afterwards - if (!$this->readDataOnly) { - foreach ($this->objFonts as $objFont) { - if (isset($objFont->colorIndex)) { - $color = PHPExcel_Reader_Excel5_Color::map($objFont->colorIndex, $this->palette, $this->version); - $objFont->getColor()->setRGB($color['rgb']); - } - } - - foreach ($this->phpExcel->getCellXfCollection() as $objStyle) { - // fill start and end color - $fill = $objStyle->getFill(); - - if (isset($fill->startcolorIndex)) { - $startColor = PHPExcel_Reader_Excel5_Color::map($fill->startcolorIndex, $this->palette, $this->version); - $fill->getStartColor()->setRGB($startColor['rgb']); - } - if (isset($fill->endcolorIndex)) { - $endColor = PHPExcel_Reader_Excel5_Color::map($fill->endcolorIndex, $this->palette, $this->version); - $fill->getEndColor()->setRGB($endColor['rgb']); - } - - // border colors - $top = $objStyle->getBorders()->getTop(); - $right = $objStyle->getBorders()->getRight(); - $bottom = $objStyle->getBorders()->getBottom(); - $left = $objStyle->getBorders()->getLeft(); - $diagonal = $objStyle->getBorders()->getDiagonal(); - - if (isset($top->colorIndex)) { - $borderTopColor = PHPExcel_Reader_Excel5_Color::map($top->colorIndex, $this->palette, $this->version); - $top->getColor()->setRGB($borderTopColor['rgb']); - } - if (isset($right->colorIndex)) { - $borderRightColor = PHPExcel_Reader_Excel5_Color::map($right->colorIndex, $this->palette, $this->version); - $right->getColor()->setRGB($borderRightColor['rgb']); - } - if (isset($bottom->colorIndex)) { - $borderBottomColor = PHPExcel_Reader_Excel5_Color::map($bottom->colorIndex, $this->palette, $this->version); - $bottom->getColor()->setRGB($borderBottomColor['rgb']); - } - if (isset($left->colorIndex)) { - $borderLeftColor = PHPExcel_Reader_Excel5_Color::map($left->colorIndex, $this->palette, $this->version); - $left->getColor()->setRGB($borderLeftColor['rgb']); - } - if (isset($diagonal->colorIndex)) { - $borderDiagonalColor = PHPExcel_Reader_Excel5_Color::map($diagonal->colorIndex, $this->palette, $this->version); - $diagonal->getColor()->setRGB($borderDiagonalColor['rgb']); - } - } - } - - // treat MSODRAWINGGROUP records, workbook-level Escher - if (!$this->readDataOnly && $this->drawingGroupData) { - $escherWorkbook = new PHPExcel_Shared_Escher(); - $reader = new PHPExcel_Reader_Excel5_Escher($escherWorkbook); - $escherWorkbook = $reader->load($this->drawingGroupData); - - // debug Escher stream - //$debug = new Debug_Escher(new PHPExcel_Shared_Escher()); - //$debug->load($this->drawingGroupData); - } - - // Parse the individual sheets - foreach ($this->sheets as $sheet) { - if ($sheet['sheetType'] != 0x00) { - // 0x00: Worksheet, 0x02: Chart, 0x06: Visual Basic module - continue; - } - - // check if sheet should be skipped - if (isset($this->loadSheetsOnly) && !in_array($sheet['name'], $this->loadSheetsOnly)) { - continue; - } - - // add sheet to PHPExcel object - $this->phpSheet = $this->phpExcel->createSheet(); - // Use false for $updateFormulaCellReferences to prevent adjustment of worksheet references in formula - // cells... during the load, all formulae should be correct, and we're simply bringing the worksheet - // name in line with the formula, not the reverse - $this->phpSheet->setTitle($sheet['name'], false); - $this->phpSheet->setSheetState($sheet['sheetState']); - - $this->pos = $sheet['offset']; - - // Initialize isFitToPages. May change after reading SHEETPR record. - $this->isFitToPages = false; - - // Initialize drawingData - $this->drawingData = ''; - - // Initialize objs - $this->objs = array(); - - // Initialize shared formula parts - $this->sharedFormulaParts = array(); - - // Initialize shared formulas - $this->sharedFormulas = array(); - - // Initialize text objs - $this->textObjects = array(); - - // Initialize cell annotations - $this->cellNotes = array(); - $this->textObjRef = -1; - - while ($this->pos <= $this->dataSize - 4) { - $code = self::getInt2d($this->data, $this->pos); - - switch ($code) { - case self::XLS_TYPE_BOF: - $this->readBof(); - break; - case self::XLS_TYPE_PRINTGRIDLINES: - $this->readPrintGridlines(); - break; - case self::XLS_TYPE_DEFAULTROWHEIGHT: - $this->readDefaultRowHeight(); - break; - case self::XLS_TYPE_SHEETPR: - $this->readSheetPr(); - break; - case self::XLS_TYPE_HORIZONTALPAGEBREAKS: - $this->readHorizontalPageBreaks(); - break; - case self::XLS_TYPE_VERTICALPAGEBREAKS: - $this->readVerticalPageBreaks(); - break; - case self::XLS_TYPE_HEADER: - $this->readHeader(); - break; - case self::XLS_TYPE_FOOTER: - $this->readFooter(); - break; - case self::XLS_TYPE_HCENTER: - $this->readHcenter(); - break; - case self::XLS_TYPE_VCENTER: - $this->readVcenter(); - break; - case self::XLS_TYPE_LEFTMARGIN: - $this->readLeftMargin(); - break; - case self::XLS_TYPE_RIGHTMARGIN: - $this->readRightMargin(); - break; - case self::XLS_TYPE_TOPMARGIN: - $this->readTopMargin(); - break; - case self::XLS_TYPE_BOTTOMMARGIN: - $this->readBottomMargin(); - break; - case self::XLS_TYPE_PAGESETUP: - $this->readPageSetup(); - break; - case self::XLS_TYPE_PROTECT: - $this->readProtect(); - break; - case self::XLS_TYPE_SCENPROTECT: - $this->readScenProtect(); - break; - case self::XLS_TYPE_OBJECTPROTECT: - $this->readObjectProtect(); - break; - case self::XLS_TYPE_PASSWORD: - $this->readPassword(); - break; - case self::XLS_TYPE_DEFCOLWIDTH: - $this->readDefColWidth(); - break; - case self::XLS_TYPE_COLINFO: - $this->readColInfo(); - break; - case self::XLS_TYPE_DIMENSION: - $this->readDefault(); - break; - case self::XLS_TYPE_ROW: - $this->readRow(); - break; - case self::XLS_TYPE_DBCELL: - $this->readDefault(); - break; - case self::XLS_TYPE_RK: - $this->readRk(); - break; - case self::XLS_TYPE_LABELSST: - $this->readLabelSst(); - break; - case self::XLS_TYPE_MULRK: - $this->readMulRk(); - break; - case self::XLS_TYPE_NUMBER: - $this->readNumber(); - break; - case self::XLS_TYPE_FORMULA: - $this->readFormula(); - break; - case self::XLS_TYPE_SHAREDFMLA: - $this->readSharedFmla(); - break; - case self::XLS_TYPE_BOOLERR: - $this->readBoolErr(); - break; - case self::XLS_TYPE_MULBLANK: - $this->readMulBlank(); - break; - case self::XLS_TYPE_LABEL: - $this->readLabel(); - break; - case self::XLS_TYPE_BLANK: - $this->readBlank(); - break; - case self::XLS_TYPE_MSODRAWING: - $this->readMsoDrawing(); - break; - case self::XLS_TYPE_OBJ: - $this->readObj(); - break; - case self::XLS_TYPE_WINDOW2: - $this->readWindow2(); - break; - case self::XLS_TYPE_PAGELAYOUTVIEW: - $this->readPageLayoutView(); - break; - case self::XLS_TYPE_SCL: - $this->readScl(); - break; - case self::XLS_TYPE_PANE: - $this->readPane(); - break; - case self::XLS_TYPE_SELECTION: - $this->readSelection(); - break; - case self::XLS_TYPE_MERGEDCELLS: - $this->readMergedCells(); - break; - case self::XLS_TYPE_HYPERLINK: - $this->readHyperLink(); - break; - case self::XLS_TYPE_DATAVALIDATIONS: - $this->readDataValidations(); - break; - case self::XLS_TYPE_DATAVALIDATION: - $this->readDataValidation(); - break; - case self::XLS_TYPE_SHEETLAYOUT: - $this->readSheetLayout(); - break; - case self::XLS_TYPE_SHEETPROTECTION: - $this->readSheetProtection(); - break; - case self::XLS_TYPE_RANGEPROTECTION: - $this->readRangeProtection(); - break; - case self::XLS_TYPE_NOTE: - $this->readNote(); - break; - //case self::XLS_TYPE_IMDATA: $this->readImData(); break; - case self::XLS_TYPE_TXO: - $this->readTextObject(); - break; - case self::XLS_TYPE_CONTINUE: - $this->readContinue(); - break; - case self::XLS_TYPE_EOF: - $this->readDefault(); - break 2; - default: - $this->readDefault(); - break; - } - - } - - // treat MSODRAWING records, sheet-level Escher - if (!$this->readDataOnly && $this->drawingData) { - $escherWorksheet = new PHPExcel_Shared_Escher(); - $reader = new PHPExcel_Reader_Excel5_Escher($escherWorksheet); - $escherWorksheet = $reader->load($this->drawingData); - - // debug Escher stream - //$debug = new Debug_Escher(new PHPExcel_Shared_Escher()); - //$debug->load($this->drawingData); - - // get all spContainers in one long array, so they can be mapped to OBJ records - $allSpContainers = $escherWorksheet->getDgContainer()->getSpgrContainer()->getAllSpContainers(); - } - - // treat OBJ records - foreach ($this->objs as $n => $obj) { -// echo '
Object reference is ', $n,'
'; -// var_dump($obj); -// echo '
'; - - // the first shape container never has a corresponding OBJ record, hence $n + 1 - if (isset($allSpContainers[$n + 1]) && is_object($allSpContainers[$n + 1])) { - $spContainer = $allSpContainers[$n + 1]; - - // we skip all spContainers that are a part of a group shape since we cannot yet handle those - if ($spContainer->getNestingLevel() > 1) { - continue; - } - - // calculate the width and height of the shape - list($startColumn, $startRow) = PHPExcel_Cell::coordinateFromString($spContainer->getStartCoordinates()); - list($endColumn, $endRow) = PHPExcel_Cell::coordinateFromString($spContainer->getEndCoordinates()); - - $startOffsetX = $spContainer->getStartOffsetX(); - $startOffsetY = $spContainer->getStartOffsetY(); - $endOffsetX = $spContainer->getEndOffsetX(); - $endOffsetY = $spContainer->getEndOffsetY(); - - $width = PHPExcel_Shared_Excel5::getDistanceX($this->phpSheet, $startColumn, $startOffsetX, $endColumn, $endOffsetX); - $height = PHPExcel_Shared_Excel5::getDistanceY($this->phpSheet, $startRow, $startOffsetY, $endRow, $endOffsetY); - - // calculate offsetX and offsetY of the shape - $offsetX = $startOffsetX * PHPExcel_Shared_Excel5::sizeCol($this->phpSheet, $startColumn) / 1024; - $offsetY = $startOffsetY * PHPExcel_Shared_Excel5::sizeRow($this->phpSheet, $startRow) / 256; - - switch ($obj['otObjType']) { - case 0x19: - // Note -// echo 'Cell Annotation Object
'; -// echo 'Object ID is ', $obj['idObjID'],'
'; - if (isset($this->cellNotes[$obj['idObjID']])) { - $cellNote = $this->cellNotes[$obj['idObjID']]; - - if (isset($this->textObjects[$obj['idObjID']])) { - $textObject = $this->textObjects[$obj['idObjID']]; - $this->cellNotes[$obj['idObjID']]['objTextData'] = $textObject; - } - } - break; - case 0x08: -// echo 'Picture Object
'; - // picture - // get index to BSE entry (1-based) - $BSEindex = $spContainer->getOPT(0x0104); - $BSECollection = $escherWorkbook->getDggContainer()->getBstoreContainer()->getBSECollection(); - $BSE = $BSECollection[$BSEindex - 1]; - $blipType = $BSE->getBlipType(); - - // need check because some blip types are not supported by Escher reader such as EMF - if ($blip = $BSE->getBlip()) { - $ih = imagecreatefromstring($blip->getData()); - $drawing = new PHPExcel_Worksheet_MemoryDrawing(); - $drawing->setImageResource($ih); - - // width, height, offsetX, offsetY - $drawing->setResizeProportional(false); - $drawing->setWidth($width); - $drawing->setHeight($height); - $drawing->setOffsetX($offsetX); - $drawing->setOffsetY($offsetY); - - switch ($blipType) { - case PHPExcel_Shared_Escher_DggContainer_BstoreContainer_BSE::BLIPTYPE_JPEG: - $drawing->setRenderingFunction(PHPExcel_Worksheet_MemoryDrawing::RENDERING_JPEG); - $drawing->setMimeType(PHPExcel_Worksheet_MemoryDrawing::MIMETYPE_JPEG); - break; - case PHPExcel_Shared_Escher_DggContainer_BstoreContainer_BSE::BLIPTYPE_PNG: - $drawing->setRenderingFunction(PHPExcel_Worksheet_MemoryDrawing::RENDERING_PNG); - $drawing->setMimeType(PHPExcel_Worksheet_MemoryDrawing::MIMETYPE_PNG); - break; - } - - $drawing->setWorksheet($this->phpSheet); - $drawing->setCoordinates($spContainer->getStartCoordinates()); - } - break; - default: - // other object type - break; - } - } - } - - // treat SHAREDFMLA records - if ($this->version == self::XLS_BIFF8) { - foreach ($this->sharedFormulaParts as $cell => $baseCell) { - list($column, $row) = PHPExcel_Cell::coordinateFromString($cell); - if (($this->getReadFilter() !== null) && $this->getReadFilter()->readCell($column, $row, $this->phpSheet->getTitle())) { - $formula = $this->getFormulaFromStructure($this->sharedFormulas[$baseCell], $cell); - $this->phpSheet->getCell($cell)->setValueExplicit('=' . $formula, PHPExcel_Cell_DataType::TYPE_FORMULA); - } - } - } - - if (!empty($this->cellNotes)) { - foreach ($this->cellNotes as $note => $noteDetails) { - if (!isset($noteDetails['objTextData'])) { - if (isset($this->textObjects[$note])) { - $textObject = $this->textObjects[$note]; - $noteDetails['objTextData'] = $textObject; - } else { - $noteDetails['objTextData']['text'] = ''; - } - } -// echo 'Cell annotation ', $note,'
'; -// var_dump($noteDetails); -// echo '
'; - $cellAddress = str_replace('$', '', $noteDetails['cellRef']); - $this->phpSheet->getComment($cellAddress)->setAuthor($noteDetails['author'])->setText($this->parseRichText($noteDetails['objTextData']['text'])); - } - } - } - - // add the named ranges (defined names) - foreach ($this->definedname as $definedName) { - if ($definedName['isBuiltInName']) { - switch ($definedName['name']) { - case pack('C', 0x06): - // print area - // in general, formula looks like this: Foo!$C$7:$J$66,Bar!$A$1:$IV$2 - $ranges = explode(',', $definedName['formula']); // FIXME: what if sheetname contains comma? - - $extractedRanges = array(); - foreach ($ranges as $range) { - // $range should look like one of these - // Foo!$C$7:$J$66 - // Bar!$A$1:$IV$2 - $explodes = explode('!', $range); // FIXME: what if sheetname contains exclamation mark? - $sheetName = trim($explodes[0], "'"); - if (count($explodes) == 2) { - if (strpos($explodes[1], ':') === false) { - $explodes[1] = $explodes[1] . ':' . $explodes[1]; - } - $extractedRanges[] = str_replace('$', '', $explodes[1]); // C7:J66 - } - } - if ($docSheet = $this->phpExcel->getSheetByName($sheetName)) { - $docSheet->getPageSetup()->setPrintArea(implode(',', $extractedRanges)); // C7:J66,A1:IV2 - } - break; - case pack('C', 0x07): - // print titles (repeating rows) - // Assuming BIFF8, there are 3 cases - // 1. repeating rows - // formula looks like this: Sheet!$A$1:$IV$2 - // rows 1-2 repeat - // 2. repeating columns - // formula looks like this: Sheet!$A$1:$B$65536 - // columns A-B repeat - // 3. both repeating rows and repeating columns - // formula looks like this: Sheet!$A$1:$B$65536,Sheet!$A$1:$IV$2 - $ranges = explode(',', $definedName['formula']); // FIXME: what if sheetname contains comma? - foreach ($ranges as $range) { - // $range should look like this one of these - // Sheet!$A$1:$B$65536 - // Sheet!$A$1:$IV$2 - $explodes = explode('!', $range); - if (count($explodes) == 2) { - if ($docSheet = $this->phpExcel->getSheetByName($explodes[0])) { - $extractedRange = $explodes[1]; - $extractedRange = str_replace('$', '', $extractedRange); - - $coordinateStrings = explode(':', $extractedRange); - if (count($coordinateStrings) == 2) { - list($firstColumn, $firstRow) = PHPExcel_Cell::coordinateFromString($coordinateStrings[0]); - list($lastColumn, $lastRow) = PHPExcel_Cell::coordinateFromString($coordinateStrings[1]); - - if ($firstColumn == 'A' and $lastColumn == 'IV') { - // then we have repeating rows - $docSheet->getPageSetup()->setRowsToRepeatAtTop(array($firstRow, $lastRow)); - } elseif ($firstRow == 1 and $lastRow == 65536) { - // then we have repeating columns - $docSheet->getPageSetup()->setColumnsToRepeatAtLeft(array($firstColumn, $lastColumn)); - } - } - } - } - } - break; - } - } else { - // Extract range - $explodes = explode('!', $definedName['formula']); - - if (count($explodes) == 2) { - if (($docSheet = $this->phpExcel->getSheetByName($explodes[0])) || - ($docSheet = $this->phpExcel->getSheetByName(trim($explodes[0], "'")))) { - $extractedRange = $explodes[1]; - $extractedRange = str_replace('$', '', $extractedRange); - - $localOnly = ($definedName['scope'] == 0) ? false : true; - - $scope = ($definedName['scope'] == 0) ? null : $this->phpExcel->getSheetByName($this->sheets[$definedName['scope'] - 1]['name']); - - $this->phpExcel->addNamedRange(new PHPExcel_NamedRange((string)$definedName['name'], $docSheet, $extractedRange, $localOnly, $scope)); - } - } else { - // Named Value - // TODO Provide support for named values - } - } - } - $this->data = null; - - return $this->phpExcel; - } - - /** - * Read summary information - */ - private function readSummaryInformation() - { - if (!isset($this->summaryInformation)) { - return; - } - - // offset: 0; size: 2; must be 0xFE 0xFF (UTF-16 LE byte order mark) - // offset: 2; size: 2; - // offset: 4; size: 2; OS version - // offset: 6; size: 2; OS indicator - // offset: 8; size: 16 - // offset: 24; size: 4; section count - $secCount = self::getInt4d($this->summaryInformation, 24); - - // offset: 28; size: 16; first section's class id: e0 85 9f f2 f9 4f 68 10 ab 91 08 00 2b 27 b3 d9 - // offset: 44; size: 4 - $secOffset = self::getInt4d($this->summaryInformation, 44); - - // section header - // offset: $secOffset; size: 4; section length - $secLength = self::getInt4d($this->summaryInformation, $secOffset); - - // offset: $secOffset+4; size: 4; property count - $countProperties = self::getInt4d($this->summaryInformation, $secOffset+4); - - // initialize code page (used to resolve string values) - $codePage = 'CP1252'; - - // offset: ($secOffset+8); size: var - // loop through property decarations and properties - for ($i = 0; $i < $countProperties; ++$i) { - // offset: ($secOffset+8) + (8 * $i); size: 4; property ID - $id = self::getInt4d($this->summaryInformation, ($secOffset+8) + (8 * $i)); - - // Use value of property id as appropriate - // offset: ($secOffset+12) + (8 * $i); size: 4; offset from beginning of section (48) - $offset = self::getInt4d($this->summaryInformation, ($secOffset+12) + (8 * $i)); - - $type = self::getInt4d($this->summaryInformation, $secOffset + $offset); - - // initialize property value - $value = null; - - // extract property value based on property type - switch ($type) { - case 0x02: // 2 byte signed integer - $value = self::getInt2d($this->summaryInformation, $secOffset + 4 + $offset); - break; - case 0x03: // 4 byte signed integer - $value = self::getInt4d($this->summaryInformation, $secOffset + 4 + $offset); - break; - case 0x13: // 4 byte unsigned integer - // not needed yet, fix later if necessary - break; - case 0x1E: // null-terminated string prepended by dword string length - $byteLength = self::getInt4d($this->summaryInformation, $secOffset + 4 + $offset); - $value = substr($this->summaryInformation, $secOffset + 8 + $offset, $byteLength); - $value = PHPExcel_Shared_String::ConvertEncoding($value, 'UTF-8', $codePage); - $value = rtrim($value); - break; - case 0x40: // Filetime (64-bit value representing the number of 100-nanosecond intervals since January 1, 1601) - // PHP-time - $value = PHPExcel_Shared_OLE::OLE2LocalDate(substr($this->summaryInformation, $secOffset + 4 + $offset, 8)); - break; - case 0x47: // Clipboard format - // not needed yet, fix later if necessary - break; - } - - switch ($id) { - case 0x01: // Code Page - $codePage = PHPExcel_Shared_CodePage::NumberToName($value); - break; - case 0x02: // Title - $this->phpExcel->getProperties()->setTitle($value); - break; - case 0x03: // Subject - $this->phpExcel->getProperties()->setSubject($value); - break; - case 0x04: // Author (Creator) - $this->phpExcel->getProperties()->setCreator($value); - break; - case 0x05: // Keywords - $this->phpExcel->getProperties()->setKeywords($value); - break; - case 0x06: // Comments (Description) - $this->phpExcel->getProperties()->setDescription($value); - break; - case 0x07: // Template - // Not supported by PHPExcel - break; - case 0x08: // Last Saved By (LastModifiedBy) - $this->phpExcel->getProperties()->setLastModifiedBy($value); - break; - case 0x09: // Revision - // Not supported by PHPExcel - break; - case 0x0A: // Total Editing Time - // Not supported by PHPExcel - break; - case 0x0B: // Last Printed - // Not supported by PHPExcel - break; - case 0x0C: // Created Date/Time - $this->phpExcel->getProperties()->setCreated($value); - break; - case 0x0D: // Modified Date/Time - $this->phpExcel->getProperties()->setModified($value); - break; - case 0x0E: // Number of Pages - // Not supported by PHPExcel - break; - case 0x0F: // Number of Words - // Not supported by PHPExcel - break; - case 0x10: // Number of Characters - // Not supported by PHPExcel - break; - case 0x11: // Thumbnail - // Not supported by PHPExcel - break; - case 0x12: // Name of creating application - // Not supported by PHPExcel - break; - case 0x13: // Security - // Not supported by PHPExcel - break; - } - } - } - - /** - * Read additional document summary information - */ - private function readDocumentSummaryInformation() - { - if (!isset($this->documentSummaryInformation)) { - return; - } - - // offset: 0; size: 2; must be 0xFE 0xFF (UTF-16 LE byte order mark) - // offset: 2; size: 2; - // offset: 4; size: 2; OS version - // offset: 6; size: 2; OS indicator - // offset: 8; size: 16 - // offset: 24; size: 4; section count - $secCount = self::getInt4d($this->documentSummaryInformation, 24); -// echo '$secCount = ', $secCount,'
'; - - // offset: 28; size: 16; first section's class id: 02 d5 cd d5 9c 2e 1b 10 93 97 08 00 2b 2c f9 ae - // offset: 44; size: 4; first section offset - $secOffset = self::getInt4d($this->documentSummaryInformation, 44); -// echo '$secOffset = ', $secOffset,'
'; - - // section header - // offset: $secOffset; size: 4; section length - $secLength = self::getInt4d($this->documentSummaryInformation, $secOffset); -// echo '$secLength = ', $secLength,'
'; - - // offset: $secOffset+4; size: 4; property count - $countProperties = self::getInt4d($this->documentSummaryInformation, $secOffset+4); -// echo '$countProperties = ', $countProperties,'
'; - - // initialize code page (used to resolve string values) - $codePage = 'CP1252'; - - // offset: ($secOffset+8); size: var - // loop through property decarations and properties - for ($i = 0; $i < $countProperties; ++$i) { -// echo 'Property ', $i,'
'; - // offset: ($secOffset+8) + (8 * $i); size: 4; property ID - $id = self::getInt4d($this->documentSummaryInformation, ($secOffset+8) + (8 * $i)); -// echo 'ID is ', $id,'
'; - - // Use value of property id as appropriate - // offset: 60 + 8 * $i; size: 4; offset from beginning of section (48) - $offset = self::getInt4d($this->documentSummaryInformation, ($secOffset+12) + (8 * $i)); - - $type = self::getInt4d($this->documentSummaryInformation, $secOffset + $offset); -// echo 'Type is ', $type,', '; - - // initialize property value - $value = null; - - // extract property value based on property type - switch ($type) { - case 0x02: // 2 byte signed integer - $value = self::getInt2d($this->documentSummaryInformation, $secOffset + 4 + $offset); - break; - case 0x03: // 4 byte signed integer - $value = self::getInt4d($this->documentSummaryInformation, $secOffset + 4 + $offset); - break; - case 0x0B: // Boolean - $value = self::getInt2d($this->documentSummaryInformation, $secOffset + 4 + $offset); - $value = ($value == 0 ? false : true); - break; - case 0x13: // 4 byte unsigned integer - // not needed yet, fix later if necessary - break; - case 0x1E: // null-terminated string prepended by dword string length - $byteLength = self::getInt4d($this->documentSummaryInformation, $secOffset + 4 + $offset); - $value = substr($this->documentSummaryInformation, $secOffset + 8 + $offset, $byteLength); - $value = PHPExcel_Shared_String::ConvertEncoding($value, 'UTF-8', $codePage); - $value = rtrim($value); - break; - case 0x40: // Filetime (64-bit value representing the number of 100-nanosecond intervals since January 1, 1601) - // PHP-Time - $value = PHPExcel_Shared_OLE::OLE2LocalDate(substr($this->documentSummaryInformation, $secOffset + 4 + $offset, 8)); - break; - case 0x47: // Clipboard format - // not needed yet, fix later if necessary - break; - } - - switch ($id) { - case 0x01: // Code Page - $codePage = PHPExcel_Shared_CodePage::NumberToName($value); - break; - case 0x02: // Category - $this->phpExcel->getProperties()->setCategory($value); - break; - case 0x03: // Presentation Target - // Not supported by PHPExcel - break; - case 0x04: // Bytes - // Not supported by PHPExcel - break; - case 0x05: // Lines - // Not supported by PHPExcel - break; - case 0x06: // Paragraphs - // Not supported by PHPExcel - break; - case 0x07: // Slides - // Not supported by PHPExcel - break; - case 0x08: // Notes - // Not supported by PHPExcel - break; - case 0x09: // Hidden Slides - // Not supported by PHPExcel - break; - case 0x0A: // MM Clips - // Not supported by PHPExcel - break; - case 0x0B: // Scale Crop - // Not supported by PHPExcel - break; - case 0x0C: // Heading Pairs - // Not supported by PHPExcel - break; - case 0x0D: // Titles of Parts - // Not supported by PHPExcel - break; - case 0x0E: // Manager - $this->phpExcel->getProperties()->setManager($value); - break; - case 0x0F: // Company - $this->phpExcel->getProperties()->setCompany($value); - break; - case 0x10: // Links up-to-date - // Not supported by PHPExcel - break; - } - } - } - - /** - * FILEPASS - * - * This record is part of the File Protection Block. It - * contains information about the read/write password of the - * file. All record contents following this record will be - * encrypted. - * - * -- "OpenOffice.org's Documentation of the Microsoft - * Excel File Format" - * - * The decryption functions and objects used from here on in - * are based on the source of Spreadsheet-ParseExcel: - * http://search.cpan.org/~jmcnamara/Spreadsheet-ParseExcel/ - */ - private function readFilepass() - { - $length = self::getInt2d($this->data, $this->pos + 2); - - if ($length != 54) { - throw new PHPExcel_Reader_Exception('Unexpected file pass record length'); - } - - $recordData = $this->readRecordData($this->data, $this->pos + 4, $length); - - // move stream pointer to next record - $this->pos += 4 + $length; - - if (!$this->verifyPassword('VelvetSweatshop', substr($recordData, 6, 16), substr($recordData, 22, 16), substr($recordData, 38, 16), $this->md5Ctxt)) { - throw new PHPExcel_Reader_Exception('Decryption password incorrect'); - } - - $this->encryption = self::MS_BIFF_CRYPTO_RC4; - - // Decryption required from the record after next onwards - $this->encryptionStartPos = $this->pos + self::getInt2d($this->data, $this->pos + 2); - } - - /** - * Verify RC4 file password - * - * @var string $password Password to check - * @var string $docid Document id - * @var string $salt_data Salt data - * @var string $hashedsalt_data Hashed salt data - * @var string &$valContext Set to the MD5 context of the value - * - * @return bool Success - */ - private function verifyPassword($password, $docid, $salt_data, $hashedsalt_data, &$valContext) - { - $pwarray = str_repeat("\0", 64); - - for ($i = 0; $i < strlen($password); $i++) { - $o = ord(substr($password, $i, 1)); - $pwarray[2 * $i] = chr($o & 0xff); - $pwarray[2 * $i + 1] = chr(($o >> 8) & 0xff); - } - $pwarray[2 * $i] = chr(0x80); - $pwarray[56] = chr(($i << 4) & 0xff); - - $md5 = new PHPExcel_Reader_Excel5_MD5(); - $md5->add($pwarray); - - $mdContext1 = $md5->getContext(); - - $offset = 0; - $keyoffset = 0; - $tocopy = 5; - - $md5->reset(); - - while ($offset != 16) { - if ((64 - $offset) < 5) { - $tocopy = 64 - $offset; - } - for ($i = 0; $i <= $tocopy; $i++) { - $pwarray[$offset + $i] = $mdContext1[$keyoffset + $i]; - } - $offset += $tocopy; - - if ($offset == 64) { - $md5->add($pwarray); - $keyoffset = $tocopy; - $tocopy = 5 - $tocopy; - $offset = 0; - continue; - } - - $keyoffset = 0; - $tocopy = 5; - for ($i = 0; $i < 16; $i++) { - $pwarray[$offset + $i] = $docid[$i]; - } - $offset += 16; - } - - $pwarray[16] = "\x80"; - for ($i = 0; $i < 47; $i++) { - $pwarray[17 + $i] = "\0"; - } - $pwarray[56] = "\x80"; - $pwarray[57] = "\x0a"; - - $md5->add($pwarray); - $valContext = $md5->getContext(); - - $key = $this->makeKey(0, $valContext); - - $salt = $key->RC4($salt_data); - $hashedsalt = $key->RC4($hashedsalt_data); - - $salt .= "\x80" . str_repeat("\0", 47); - $salt[56] = "\x80"; - - $md5->reset(); - $md5->add($salt); - $mdContext2 = $md5->getContext(); - - return $mdContext2 == $hashedsalt; - } - - /** - * CODEPAGE - * - * This record stores the text encoding used to write byte - * strings, stored as MS Windows code page identifier. - * - * -- "OpenOffice.org's Documentation of the Microsoft - * Excel File Format" - */ - private function readCodepage() - { - $length = self::getInt2d($this->data, $this->pos + 2); - $recordData = $this->readRecordData($this->data, $this->pos + 4, $length); - - // move stream pointer to next record - $this->pos += 4 + $length; - - // offset: 0; size: 2; code page identifier - $codepage = self::getInt2d($recordData, 0); - - $this->codepage = PHPExcel_Shared_CodePage::NumberToName($codepage); - } - - /** - * DATEMODE - * - * This record specifies the base date for displaying date - * values. All dates are stored as count of days past this - * base date. In BIFF2-BIFF4 this record is part of the - * Calculation Settings Block. In BIFF5-BIFF8 it is - * stored in the Workbook Globals Substream. - * - * -- "OpenOffice.org's Documentation of the Microsoft - * Excel File Format" - */ - private function readDateMode() - { - $length = self::getInt2d($this->data, $this->pos + 2); - $recordData = $this->readRecordData($this->data, $this->pos + 4, $length); - - // move stream pointer to next record - $this->pos += 4 + $length; - - // offset: 0; size: 2; 0 = base 1900, 1 = base 1904 - PHPExcel_Shared_Date::setExcelCalendar(PHPExcel_Shared_Date::CALENDAR_WINDOWS_1900); - if (ord($recordData{0}) == 1) { - PHPExcel_Shared_Date::setExcelCalendar(PHPExcel_Shared_Date::CALENDAR_MAC_1904); - } - } - - /** - * Read a FONT record - */ - private function readFont() - { - $length = self::getInt2d($this->data, $this->pos + 2); - $recordData = $this->readRecordData($this->data, $this->pos + 4, $length); - - // move stream pointer to next record - $this->pos += 4 + $length; - - if (!$this->readDataOnly) { - $objFont = new PHPExcel_Style_Font(); - - // offset: 0; size: 2; height of the font (in twips = 1/20 of a point) - $size = self::getInt2d($recordData, 0); - $objFont->setSize($size / 20); - - // offset: 2; size: 2; option flags - // bit: 0; mask 0x0001; bold (redundant in BIFF5-BIFF8) - // bit: 1; mask 0x0002; italic - $isItalic = (0x0002 & self::getInt2d($recordData, 2)) >> 1; - if ($isItalic) { - $objFont->setItalic(true); - } - - // bit: 2; mask 0x0004; underlined (redundant in BIFF5-BIFF8) - // bit: 3; mask 0x0008; strike - $isStrike = (0x0008 & self::getInt2d($recordData, 2)) >> 3; - if ($isStrike) { - $objFont->setStrikethrough(true); - } - - // offset: 4; size: 2; colour index - $colorIndex = self::getInt2d($recordData, 4); - $objFont->colorIndex = $colorIndex; - - // offset: 6; size: 2; font weight - $weight = self::getInt2d($recordData, 6); - switch ($weight) { - case 0x02BC: - $objFont->setBold(true); - break; - } - - // offset: 8; size: 2; escapement type - $escapement = self::getInt2d($recordData, 8); - switch ($escapement) { - case 0x0001: - $objFont->setSuperScript(true); - break; - case 0x0002: - $objFont->setSubScript(true); - break; - } - - // offset: 10; size: 1; underline type - $underlineType = ord($recordData{10}); - switch ($underlineType) { - case 0x00: - break; // no underline - case 0x01: - $objFont->setUnderline(PHPExcel_Style_Font::UNDERLINE_SINGLE); - break; - case 0x02: - $objFont->setUnderline(PHPExcel_Style_Font::UNDERLINE_DOUBLE); - break; - case 0x21: - $objFont->setUnderline(PHPExcel_Style_Font::UNDERLINE_SINGLEACCOUNTING); - break; - case 0x22: - $objFont->setUnderline(PHPExcel_Style_Font::UNDERLINE_DOUBLEACCOUNTING); - break; - } - - // offset: 11; size: 1; font family - // offset: 12; size: 1; character set - // offset: 13; size: 1; not used - // offset: 14; size: var; font name - if ($this->version == self::XLS_BIFF8) { - $string = self::readUnicodeStringShort(substr($recordData, 14)); - } else { - $string = $this->readByteStringShort(substr($recordData, 14)); - } - $objFont->setName($string['value']); - - $this->objFonts[] = $objFont; - } - } - - /** - * FORMAT - * - * This record contains information about a number format. - * All FORMAT records occur together in a sequential list. - * - * In BIFF2-BIFF4 other records referencing a FORMAT record - * contain a zero-based index into this list. From BIFF5 on - * the FORMAT record contains the index itself that will be - * used by other records. - * - * -- "OpenOffice.org's Documentation of the Microsoft - * Excel File Format" - */ - private function readFormat() - { - $length = self::getInt2d($this->data, $this->pos + 2); - $recordData = $this->readRecordData($this->data, $this->pos + 4, $length); - - // move stream pointer to next record - $this->pos += 4 + $length; - - if (!$this->readDataOnly) { - $indexCode = self::getInt2d($recordData, 0); - - if ($this->version == self::XLS_BIFF8) { - $string = self::readUnicodeStringLong(substr($recordData, 2)); - } else { - // BIFF7 - $string = $this->readByteStringShort(substr($recordData, 2)); - } - - $formatString = $string['value']; - $this->formats[$indexCode] = $formatString; - } - } - - /** - * Extracts an Excel Unicode long string (16-bit string length) - * OpenOffice documentation: 2.5.3 - * this function is under construction, needs to support rich text, and Asian phonetic settings - * - * @param string $subData - * @return array - */ - private static function readUnicodeStringLong($subData) - { - $value = ''; - - // offset: 0: size: 2; length of the string (character count) - $characterCount = self::getInt2d($subData, 0); - - $string = self::readUnicodeString(substr($subData, 2), $characterCount); - - // add 2 for the string length - $string['size'] += 2; - - return $string; - } - - /** - * XF - Extended Format - * - * This record contains formatting information for cells, rows, columns or styles. - * According to http://support.microsoft.com/kb/147732 there are always at least 15 cell style XF - * and 1 cell XF. - * Inspection of Excel files generated by MS Office Excel shows that XF records 0-14 are cell style XF - * and XF record 15 is a cell XF - * We only read the first cell style XF and skip the remaining cell style XF records - * We read all cell XF records. - * - * -- "OpenOffice.org's Documentation of the Microsoft - * Excel File Format" - */ - private function readXf() - { - $length = self::getInt2d($this->data, $this->pos + 2); - $recordData = $this->readRecordData($this->data, $this->pos + 4, $length); - - // move stream pointer to next record - $this->pos += 4 + $length; - - $objStyle = new PHPExcel_Style(); - - if (!$this->readDataOnly) { - // offset: 0; size: 2; Index to FONT record - if (self::getInt2d($recordData, 0) < 4) { - $fontIndex = self::getInt2d($recordData, 0); - } else { - // this has to do with that index 4 is omitted in all BIFF versions for some strange reason - // check the OpenOffice documentation of the FONT record - $fontIndex = self::getInt2d($recordData, 0) - 1; - } - $objStyle->setFont($this->objFonts[$fontIndex]); - - // offset: 2; size: 2; Index to FORMAT record - $numberFormatIndex = self::getInt2d($recordData, 2); - if (isset($this->formats[$numberFormatIndex])) { - // then we have user-defined format code - $numberformat = array('code' => $this->formats[$numberFormatIndex]); - } elseif (($code = PHPExcel_Style_NumberFormat::builtInFormatCode($numberFormatIndex)) !== '') { - // then we have built-in format code - $numberformat = array('code' => $code); - } else { - // we set the general format code - $numberformat = array('code' => 'General'); - } - $objStyle->getNumberFormat()->setFormatCode($numberformat['code']); - - // offset: 4; size: 2; XF type, cell protection, and parent style XF - // bit 2-0; mask 0x0007; XF_TYPE_PROT - $xfTypeProt = self::getInt2d($recordData, 4); - // bit 0; mask 0x01; 1 = cell is locked - $isLocked = (0x01 & $xfTypeProt) >> 0; - $objStyle->getProtection()->setLocked($isLocked ? PHPExcel_Style_Protection::PROTECTION_INHERIT : PHPExcel_Style_Protection::PROTECTION_UNPROTECTED); - - // bit 1; mask 0x02; 1 = Formula is hidden - $isHidden = (0x02 & $xfTypeProt) >> 1; - $objStyle->getProtection()->setHidden($isHidden ? PHPExcel_Style_Protection::PROTECTION_PROTECTED : PHPExcel_Style_Protection::PROTECTION_UNPROTECTED); - - // bit 2; mask 0x04; 0 = Cell XF, 1 = Cell Style XF - $isCellStyleXf = (0x04 & $xfTypeProt) >> 2; - - // offset: 6; size: 1; Alignment and text break - // bit 2-0, mask 0x07; horizontal alignment - $horAlign = (0x07 & ord($recordData{6})) >> 0; - switch ($horAlign) { - case 0: - $objStyle->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_GENERAL); - break; - case 1: - $objStyle->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_LEFT); - break; - case 2: - $objStyle->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER); - break; - case 3: - $objStyle->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_RIGHT); - break; - case 4: - $objStyle->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_FILL); - break; - case 5: - $objStyle->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_JUSTIFY); - break; - case 6: - $objStyle->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER_CONTINUOUS); - break; - } - // bit 3, mask 0x08; wrap text - $wrapText = (0x08 & ord($recordData{6})) >> 3; - switch ($wrapText) { - case 0: - $objStyle->getAlignment()->setWrapText(false); - break; - case 1: - $objStyle->getAlignment()->setWrapText(true); - break; - } - // bit 6-4, mask 0x70; vertical alignment - $vertAlign = (0x70 & ord($recordData{6})) >> 4; - switch ($vertAlign) { - case 0: - $objStyle->getAlignment()->setVertical(PHPExcel_Style_Alignment::VERTICAL_TOP); - break; - case 1: - $objStyle->getAlignment()->setVertical(PHPExcel_Style_Alignment::VERTICAL_CENTER); - break; - case 2: - $objStyle->getAlignment()->setVertical(PHPExcel_Style_Alignment::VERTICAL_BOTTOM); - break; - case 3: - $objStyle->getAlignment()->setVertical(PHPExcel_Style_Alignment::VERTICAL_JUSTIFY); - break; - } - - if ($this->version == self::XLS_BIFF8) { - // offset: 7; size: 1; XF_ROTATION: Text rotation angle - $angle = ord($recordData{7}); - $rotation = 0; - if ($angle <= 90) { - $rotation = $angle; - } elseif ($angle <= 180) { - $rotation = 90 - $angle; - } elseif ($angle == 255) { - $rotation = -165; - } - $objStyle->getAlignment()->setTextRotation($rotation); - - // offset: 8; size: 1; Indentation, shrink to cell size, and text direction - // bit: 3-0; mask: 0x0F; indent level - $indent = (0x0F & ord($recordData{8})) >> 0; - $objStyle->getAlignment()->setIndent($indent); - - // bit: 4; mask: 0x10; 1 = shrink content to fit into cell - $shrinkToFit = (0x10 & ord($recordData{8})) >> 4; - switch ($shrinkToFit) { - case 0: - $objStyle->getAlignment()->setShrinkToFit(false); - break; - case 1: - $objStyle->getAlignment()->setShrinkToFit(true); - break; - } - - // offset: 9; size: 1; Flags used for attribute groups - - // offset: 10; size: 4; Cell border lines and background area - // bit: 3-0; mask: 0x0000000F; left style - if ($bordersLeftStyle = PHPExcel_Reader_Excel5_Style_Border::lookup((0x0000000F & self::getInt4d($recordData, 10)) >> 0)) { - $objStyle->getBorders()->getLeft()->setBorderStyle($bordersLeftStyle); - } - // bit: 7-4; mask: 0x000000F0; right style - if ($bordersRightStyle = PHPExcel_Reader_Excel5_Style_Border::lookup((0x000000F0 & self::getInt4d($recordData, 10)) >> 4)) { - $objStyle->getBorders()->getRight()->setBorderStyle($bordersRightStyle); - } - // bit: 11-8; mask: 0x00000F00; top style - if ($bordersTopStyle = PHPExcel_Reader_Excel5_Style_Border::lookup((0x00000F00 & self::getInt4d($recordData, 10)) >> 8)) { - $objStyle->getBorders()->getTop()->setBorderStyle($bordersTopStyle); - } - // bit: 15-12; mask: 0x0000F000; bottom style - if ($bordersBottomStyle = PHPExcel_Reader_Excel5_Style_Border::lookup((0x0000F000 & self::getInt4d($recordData, 10)) >> 12)) { - $objStyle->getBorders()->getBottom()->setBorderStyle($bordersBottomStyle); - } - // bit: 22-16; mask: 0x007F0000; left color - $objStyle->getBorders()->getLeft()->colorIndex = (0x007F0000 & self::getInt4d($recordData, 10)) >> 16; - - // bit: 29-23; mask: 0x3F800000; right color - $objStyle->getBorders()->getRight()->colorIndex = (0x3F800000 & self::getInt4d($recordData, 10)) >> 23; - - // bit: 30; mask: 0x40000000; 1 = diagonal line from top left to right bottom - $diagonalDown = (0x40000000 & self::getInt4d($recordData, 10)) >> 30 ? true : false; - - // bit: 31; mask: 0x80000000; 1 = diagonal line from bottom left to top right - $diagonalUp = (0x80000000 & self::getInt4d($recordData, 10)) >> 31 ? true : false; - - if ($diagonalUp == false && $diagonalDown == false) { - $objStyle->getBorders()->setDiagonalDirection(PHPExcel_Style_Borders::DIAGONAL_NONE); - } elseif ($diagonalUp == true && $diagonalDown == false) { - $objStyle->getBorders()->setDiagonalDirection(PHPExcel_Style_Borders::DIAGONAL_UP); - } elseif ($diagonalUp == false && $diagonalDown == true) { - $objStyle->getBorders()->setDiagonalDirection(PHPExcel_Style_Borders::DIAGONAL_DOWN); - } elseif ($diagonalUp == true && $diagonalDown == true) { - $objStyle->getBorders()->setDiagonalDirection(PHPExcel_Style_Borders::DIAGONAL_BOTH); - } - - // offset: 14; size: 4; - // bit: 6-0; mask: 0x0000007F; top color - $objStyle->getBorders()->getTop()->colorIndex = (0x0000007F & self::getInt4d($recordData, 14)) >> 0; - - // bit: 13-7; mask: 0x00003F80; bottom color - $objStyle->getBorders()->getBottom()->colorIndex = (0x00003F80 & self::getInt4d($recordData, 14)) >> 7; - - // bit: 20-14; mask: 0x001FC000; diagonal color - $objStyle->getBorders()->getDiagonal()->colorIndex = (0x001FC000 & self::getInt4d($recordData, 14)) >> 14; - - // bit: 24-21; mask: 0x01E00000; diagonal style - if ($bordersDiagonalStyle = PHPExcel_Reader_Excel5_Style_Border::lookup((0x01E00000 & self::getInt4d($recordData, 14)) >> 21)) { - $objStyle->getBorders()->getDiagonal()->setBorderStyle($bordersDiagonalStyle); - } - - // bit: 31-26; mask: 0xFC000000 fill pattern - if ($fillType = PHPExcel_Reader_Excel5_Style_FillPattern::lookup((0xFC000000 & self::getInt4d($recordData, 14)) >> 26)) { - $objStyle->getFill()->setFillType($fillType); - } - // offset: 18; size: 2; pattern and background colour - // bit: 6-0; mask: 0x007F; color index for pattern color - $objStyle->getFill()->startcolorIndex = (0x007F & self::getInt2d($recordData, 18)) >> 0; - - // bit: 13-7; mask: 0x3F80; color index for pattern background - $objStyle->getFill()->endcolorIndex = (0x3F80 & self::getInt2d($recordData, 18)) >> 7; - } else { - // BIFF5 - - // offset: 7; size: 1; Text orientation and flags - $orientationAndFlags = ord($recordData{7}); - - // bit: 1-0; mask: 0x03; XF_ORIENTATION: Text orientation - $xfOrientation = (0x03 & $orientationAndFlags) >> 0; - switch ($xfOrientation) { - case 0: - $objStyle->getAlignment()->setTextRotation(0); - break; - case 1: - $objStyle->getAlignment()->setTextRotation(-165); - break; - case 2: - $objStyle->getAlignment()->setTextRotation(90); - break; - case 3: - $objStyle->getAlignment()->setTextRotation(-90); - break; - } - - // offset: 8; size: 4; cell border lines and background area - $borderAndBackground = self::getInt4d($recordData, 8); - - // bit: 6-0; mask: 0x0000007F; color index for pattern color - $objStyle->getFill()->startcolorIndex = (0x0000007F & $borderAndBackground) >> 0; - - // bit: 13-7; mask: 0x00003F80; color index for pattern background - $objStyle->getFill()->endcolorIndex = (0x00003F80 & $borderAndBackground) >> 7; - - // bit: 21-16; mask: 0x003F0000; fill pattern - $objStyle->getFill()->setFillType(PHPExcel_Reader_Excel5_Style_FillPattern::lookup((0x003F0000 & $borderAndBackground) >> 16)); - - // bit: 24-22; mask: 0x01C00000; bottom line style - $objStyle->getBorders()->getBottom()->setBorderStyle(PHPExcel_Reader_Excel5_Style_Border::lookup((0x01C00000 & $borderAndBackground) >> 22)); - - // bit: 31-25; mask: 0xFE000000; bottom line color - $objStyle->getBorders()->getBottom()->colorIndex = (0xFE000000 & $borderAndBackground) >> 25; - - // offset: 12; size: 4; cell border lines - $borderLines = self::getInt4d($recordData, 12); - - // bit: 2-0; mask: 0x00000007; top line style - $objStyle->getBorders()->getTop()->setBorderStyle(PHPExcel_Reader_Excel5_Style_Border::lookup((0x00000007 & $borderLines) >> 0)); - - // bit: 5-3; mask: 0x00000038; left line style - $objStyle->getBorders()->getLeft()->setBorderStyle(PHPExcel_Reader_Excel5_Style_Border::lookup((0x00000038 & $borderLines) >> 3)); - - // bit: 8-6; mask: 0x000001C0; right line style - $objStyle->getBorders()->getRight()->setBorderStyle(PHPExcel_Reader_Excel5_Style_Border::lookup((0x000001C0 & $borderLines) >> 6)); - - // bit: 15-9; mask: 0x0000FE00; top line color index - $objStyle->getBorders()->getTop()->colorIndex = (0x0000FE00 & $borderLines) >> 9; - - // bit: 22-16; mask: 0x007F0000; left line color index - $objStyle->getBorders()->getLeft()->colorIndex = (0x007F0000 & $borderLines) >> 16; - - // bit: 29-23; mask: 0x3F800000; right line color index - $objStyle->getBorders()->getRight()->colorIndex = (0x3F800000 & $borderLines) >> 23; - } - - // add cellStyleXf or cellXf and update mapping - if ($isCellStyleXf) { - // we only read one style XF record which is always the first - if ($this->xfIndex == 0) { - $this->phpExcel->addCellStyleXf($objStyle); - $this->mapCellStyleXfIndex[$this->xfIndex] = 0; - } - } else { - // we read all cell XF records - $this->phpExcel->addCellXf($objStyle); - $this->mapCellXfIndex[$this->xfIndex] = count($this->phpExcel->getCellXfCollection()) - 1; - } - - // update XF index for when we read next record - ++$this->xfIndex; - } - } - - /** - * - */ - private function readXfExt() - { - $length = self::getInt2d($this->data, $this->pos + 2); - $recordData = $this->readRecordData($this->data, $this->pos + 4, $length); - - // move stream pointer to next record - $this->pos += 4 + $length; - - if (!$this->readDataOnly) { - // offset: 0; size: 2; 0x087D = repeated header - - // offset: 2; size: 2 - - // offset: 4; size: 8; not used - - // offset: 12; size: 2; record version - - // offset: 14; size: 2; index to XF record which this record modifies - $ixfe = self::getInt2d($recordData, 14); - - // offset: 16; size: 2; not used - - // offset: 18; size: 2; number of extension properties that follow - $cexts = self::getInt2d($recordData, 18); - - // start reading the actual extension data - $offset = 20; - while ($offset < $length) { - // extension type - $extType = self::getInt2d($recordData, $offset); - - // extension length - $cb = self::getInt2d($recordData, $offset + 2); - - // extension data - $extData = substr($recordData, $offset + 4, $cb); - - switch ($extType) { - case 4: // fill start color - $xclfType = self::getInt2d($extData, 0); // color type - $xclrValue = substr($extData, 4, 4); // color value (value based on color type) - - if ($xclfType == 2) { - $rgb = sprintf('%02X%02X%02X', ord($xclrValue{0}), ord($xclrValue{1}), ord($xclrValue{2})); - - // modify the relevant style property - if (isset($this->mapCellXfIndex[$ixfe])) { - $fill = $this->phpExcel->getCellXfByIndex($this->mapCellXfIndex[$ixfe])->getFill(); - $fill->getStartColor()->setRGB($rgb); - unset($fill->startcolorIndex); // normal color index does not apply, discard - } - } - break; - case 5: // fill end color - $xclfType = self::getInt2d($extData, 0); // color type - $xclrValue = substr($extData, 4, 4); // color value (value based on color type) - - if ($xclfType == 2) { - $rgb = sprintf('%02X%02X%02X', ord($xclrValue{0}), ord($xclrValue{1}), ord($xclrValue{2})); - - // modify the relevant style property - if (isset($this->mapCellXfIndex[$ixfe])) { - $fill = $this->phpExcel->getCellXfByIndex($this->mapCellXfIndex[$ixfe])->getFill(); - $fill->getEndColor()->setRGB($rgb); - unset($fill->endcolorIndex); // normal color index does not apply, discard - } - } - break; - case 7: // border color top - $xclfType = self::getInt2d($extData, 0); // color type - $xclrValue = substr($extData, 4, 4); // color value (value based on color type) - - if ($xclfType == 2) { - $rgb = sprintf('%02X%02X%02X', ord($xclrValue{0}), ord($xclrValue{1}), ord($xclrValue{2})); - - // modify the relevant style property - if (isset($this->mapCellXfIndex[$ixfe])) { - $top = $this->phpExcel->getCellXfByIndex($this->mapCellXfIndex[$ixfe])->getBorders()->getTop(); - $top->getColor()->setRGB($rgb); - unset($top->colorIndex); // normal color index does not apply, discard - } - } - break; - case 8: // border color bottom - $xclfType = self::getInt2d($extData, 0); // color type - $xclrValue = substr($extData, 4, 4); // color value (value based on color type) - - if ($xclfType == 2) { - $rgb = sprintf('%02X%02X%02X', ord($xclrValue{0}), ord($xclrValue{1}), ord($xclrValue{2})); - - // modify the relevant style property - if (isset($this->mapCellXfIndex[$ixfe])) { - $bottom = $this->phpExcel->getCellXfByIndex($this->mapCellXfIndex[$ixfe])->getBorders()->getBottom(); - $bottom->getColor()->setRGB($rgb); - unset($bottom->colorIndex); // normal color index does not apply, discard - } - } - break; - case 9: // border color left - $xclfType = self::getInt2d($extData, 0); // color type - $xclrValue = substr($extData, 4, 4); // color value (value based on color type) - - if ($xclfType == 2) { - $rgb = sprintf('%02X%02X%02X', ord($xclrValue{0}), ord($xclrValue{1}), ord($xclrValue{2})); - - // modify the relevant style property - if (isset($this->mapCellXfIndex[$ixfe])) { - $left = $this->phpExcel->getCellXfByIndex($this->mapCellXfIndex[$ixfe])->getBorders()->getLeft(); - $left->getColor()->setRGB($rgb); - unset($left->colorIndex); // normal color index does not apply, discard - } - } - break; - case 10: // border color right - $xclfType = self::getInt2d($extData, 0); // color type - $xclrValue = substr($extData, 4, 4); // color value (value based on color type) - - if ($xclfType == 2) { - $rgb = sprintf('%02X%02X%02X', ord($xclrValue{0}), ord($xclrValue{1}), ord($xclrValue{2})); - - // modify the relevant style property - if (isset($this->mapCellXfIndex[$ixfe])) { - $right = $this->phpExcel->getCellXfByIndex($this->mapCellXfIndex[$ixfe])->getBorders()->getRight(); - $right->getColor()->setRGB($rgb); - unset($right->colorIndex); // normal color index does not apply, discard - } - } - break; - case 11: // border color diagonal - $xclfType = self::getInt2d($extData, 0); // color type - $xclrValue = substr($extData, 4, 4); // color value (value based on color type) - - if ($xclfType == 2) { - $rgb = sprintf('%02X%02X%02X', ord($xclrValue{0}), ord($xclrValue{1}), ord($xclrValue{2})); - - // modify the relevant style property - if (isset($this->mapCellXfIndex[$ixfe])) { - $diagonal = $this->phpExcel->getCellXfByIndex($this->mapCellXfIndex[$ixfe])->getBorders()->getDiagonal(); - $diagonal->getColor()->setRGB($rgb); - unset($diagonal->colorIndex); // normal color index does not apply, discard - } - } - break; - case 13: // font color - $xclfType = self::getInt2d($extData, 0); // color type - $xclrValue = substr($extData, 4, 4); // color value (value based on color type) - - if ($xclfType == 2) { - $rgb = sprintf('%02X%02X%02X', ord($xclrValue{0}), ord($xclrValue{1}), ord($xclrValue{2})); - - // modify the relevant style property - if (isset($this->mapCellXfIndex[$ixfe])) { - $font = $this->phpExcel->getCellXfByIndex($this->mapCellXfIndex[$ixfe])->getFont(); - $font->getColor()->setRGB($rgb); - unset($font->colorIndex); // normal color index does not apply, discard - } - } - break; - } - - $offset += $cb; - } - } - - } - - /** - * Read STYLE record - */ - private function readStyle() - { - $length = self::getInt2d($this->data, $this->pos + 2); - $recordData = $this->readRecordData($this->data, $this->pos + 4, $length); - - // move stream pointer to next record - $this->pos += 4 + $length; - - if (!$this->readDataOnly) { - // offset: 0; size: 2; index to XF record and flag for built-in style - $ixfe = self::getInt2d($recordData, 0); - - // bit: 11-0; mask 0x0FFF; index to XF record - $xfIndex = (0x0FFF & $ixfe) >> 0; - - // bit: 15; mask 0x8000; 0 = user-defined style, 1 = built-in style - $isBuiltIn = (bool) ((0x8000 & $ixfe) >> 15); - - if ($isBuiltIn) { - // offset: 2; size: 1; identifier for built-in style - $builtInId = ord($recordData{2}); - - switch ($builtInId) { - case 0x00: - // currently, we are not using this for anything - break; - default: - break; - } - } else { - // user-defined; not supported by PHPExcel - } - } - } - - /** - * Read PALETTE record - */ - private function readPalette() - { - $length = self::getInt2d($this->data, $this->pos + 2); - $recordData = $this->readRecordData($this->data, $this->pos + 4, $length); - - // move stream pointer to next record - $this->pos += 4 + $length; - - if (!$this->readDataOnly) { - // offset: 0; size: 2; number of following colors - $nm = self::getInt2d($recordData, 0); - - // list of RGB colors - for ($i = 0; $i < $nm; ++$i) { - $rgb = substr($recordData, 2 + 4 * $i, 4); - $this->palette[] = self::readRGB($rgb); - } - } - } - - /** - * Extract RGB color - * OpenOffice.org's Documentation of the Microsoft Excel File Format, section 2.5.4 - * - * @param string $rgb Encoded RGB value (4 bytes) - * @return array - */ - private static function readRGB($rgb) - { - // offset: 0; size 1; Red component - $r = ord($rgb{0}); - - // offset: 1; size: 1; Green component - $g = ord($rgb{1}); - - // offset: 2; size: 1; Blue component - $b = ord($rgb{2}); - - // HEX notation, e.g. 'FF00FC' - $rgb = sprintf('%02X%02X%02X', $r, $g, $b); - - return array('rgb' => $rgb); - } - - /** - * Read EXTERNALBOOK record - */ - private function readExternalBook() - { - $length = self::getInt2d($this->data, $this->pos + 2); - $recordData = $this->readRecordData($this->data, $this->pos + 4, $length); - - // move stream pointer to next record - $this->pos += 4 + $length; - - // offset within record data - $offset = 0; - - // there are 4 types of records - if (strlen($recordData) > 4) { - // external reference - // offset: 0; size: 2; number of sheet names ($nm) - $nm = self::getInt2d($recordData, 0); - $offset += 2; - - // offset: 2; size: var; encoded URL without sheet name (Unicode string, 16-bit length) - $encodedUrlString = self::readUnicodeStringLong(substr($recordData, 2)); - $offset += $encodedUrlString['size']; - - // offset: var; size: var; list of $nm sheet names (Unicode strings, 16-bit length) - $externalSheetNames = array(); - for ($i = 0; $i < $nm; ++$i) { - $externalSheetNameString = self::readUnicodeStringLong(substr($recordData, $offset)); - $externalSheetNames[] = $externalSheetNameString['value']; - $offset += $externalSheetNameString['size']; - } - - // store the record data - $this->externalBooks[] = array( - 'type' => 'external', - 'encodedUrl' => $encodedUrlString['value'], - 'externalSheetNames' => $externalSheetNames, - ); - } elseif (substr($recordData, 2, 2) == pack('CC', 0x01, 0x04)) { - // internal reference - // offset: 0; size: 2; number of sheet in this document - // offset: 2; size: 2; 0x01 0x04 - $this->externalBooks[] = array( - 'type' => 'internal', - ); - } elseif (substr($recordData, 0, 4) == pack('vCC', 0x0001, 0x01, 0x3A)) { - // add-in function - // offset: 0; size: 2; 0x0001 - $this->externalBooks[] = array( - 'type' => 'addInFunction', - ); - } elseif (substr($recordData, 0, 2) == pack('v', 0x0000)) { - // DDE links, OLE links - // offset: 0; size: 2; 0x0000 - // offset: 2; size: var; encoded source document name - $this->externalBooks[] = array( - 'type' => 'DDEorOLE', - ); - } - } - - /** - * Read EXTERNNAME record. - */ - private function readExternName() - { - $length = self::getInt2d($this->data, $this->pos + 2); - $recordData = $this->readRecordData($this->data, $this->pos + 4, $length); - - // move stream pointer to next record - $this->pos += 4 + $length; - - // external sheet references provided for named cells - if ($this->version == self::XLS_BIFF8) { - // offset: 0; size: 2; options - $options = self::getInt2d($recordData, 0); - - // offset: 2; size: 2; - - // offset: 4; size: 2; not used - - // offset: 6; size: var - $nameString = self::readUnicodeStringShort(substr($recordData, 6)); - - // offset: var; size: var; formula data - $offset = 6 + $nameString['size']; - $formula = $this->getFormulaFromStructure(substr($recordData, $offset)); - - $this->externalNames[] = array( - 'name' => $nameString['value'], - 'formula' => $formula, - ); - } - } - - /** - * Convert formula structure into human readable Excel formula like 'A3+A5*5' - * - * @param string $formulaStructure The complete binary data for the formula - * @param string $baseCell Base cell, only needed when formula contains tRefN tokens, e.g. with shared formulas - * @return string Human readable formula - */ - private function getFormulaFromStructure($formulaStructure, $baseCell = 'A1') - { - // offset: 0; size: 2; size of the following formula data - $sz = self::getInt2d($formulaStructure, 0); - - // offset: 2; size: sz - $formulaData = substr($formulaStructure, 2, $sz); - - // for debug: dump the formula data - //echo ''; - //echo 'size: ' . $sz . "\n"; - //echo 'the entire formula data: '; - //Debug::dump($formulaData); - //echo "\n----\n"; - - // offset: 2 + sz; size: variable (optional) - if (strlen($formulaStructure) > 2 + $sz) { - $additionalData = substr($formulaStructure, 2 + $sz); - - // for debug: dump the additional data - //echo 'the entire additional data: '; - //Debug::dump($additionalData); - //echo "\n----\n"; - } else { - $additionalData = ''; - } - - return $this->getFormulaFromData($formulaData, $additionalData, $baseCell); - } - - /** - * Take formula data and additional data for formula and return human readable formula - * - * @param string $formulaData The binary data for the formula itself - * @param string $additionalData Additional binary data going with the formula - * @param string $baseCell Base cell, only needed when formula contains tRefN tokens, e.g. with shared formulas - * @return string Human readable formula - */ - private function getFormulaFromData($formulaData, $additionalData = '', $baseCell = 'A1') - { - // start parsing the formula data - $tokens = array(); - - while (strlen($formulaData) > 0 and $token = $this->getNextToken($formulaData, $baseCell)) { - $tokens[] = $token; - $formulaData = substr($formulaData, $token['size']); - - // for debug: dump the token - //var_dump($token); - } - - $formulaString = $this->createFormulaFromTokens($tokens, $additionalData); - - return $formulaString; - } - - /** - * Fetch next token from binary formula data - * - * @param string Formula data - * @param string $baseCell Base cell, only needed when formula contains tRefN tokens, e.g. with shared formulas - * @return array - * @throws PHPExcel_Reader_Exception - */ - private function getNextToken($formulaData, $baseCell = 'A1') - { - // offset: 0; size: 1; token id - $id = ord($formulaData[0]); // token id - $name = false; // initialize token name - - switch ($id) { - case 0x03: - $name = 'tAdd'; - $size = 1; - $data = '+'; - break; - case 0x04: - $name = 'tSub'; - $size = 1; - $data = '-'; - break; - case 0x05: - $name = 'tMul'; - $size = 1; - $data = '*'; - break; - case 0x06: - $name = 'tDiv'; - $size = 1; - $data = '/'; - break; - case 0x07: - $name = 'tPower'; - $size = 1; - $data = '^'; - break; - case 0x08: - $name = 'tConcat'; - $size = 1; - $data = '&'; - break; - case 0x09: - $name = 'tLT'; - $size = 1; - $data = '<'; - break; - case 0x0A: - $name = 'tLE'; - $size = 1; - $data = '<='; - break; - case 0x0B: - $name = 'tEQ'; - $size = 1; - $data = '='; - break; - case 0x0C: - $name = 'tGE'; - $size = 1; - $data = '>='; - break; - case 0x0D: - $name = 'tGT'; - $size = 1; - $data = '>'; - break; - case 0x0E: - $name = 'tNE'; - $size = 1; - $data = '<>'; - break; - case 0x0F: - $name = 'tIsect'; - $size = 1; - $data = ' '; - break; - case 0x10: - $name = 'tList'; - $size = 1; - $data = ','; - break; - case 0x11: - $name = 'tRange'; - $size = 1; - $data = ':'; - break; - case 0x12: - $name = 'tUplus'; - $size = 1; - $data = '+'; - break; - case 0x13: - $name = 'tUminus'; - $size = 1; - $data = '-'; - break; - case 0x14: - $name = 'tPercent'; - $size = 1; - $data = '%'; - break; - case 0x15: // parenthesis - $name = 'tParen'; - $size = 1; - $data = null; - break; - case 0x16: // missing argument - $name = 'tMissArg'; - $size = 1; - $data = ''; - break; - case 0x17: // string - $name = 'tStr'; - // offset: 1; size: var; Unicode string, 8-bit string length - $string = self::readUnicodeStringShort(substr($formulaData, 1)); - $size = 1 + $string['size']; - $data = self::UTF8toExcelDoubleQuoted($string['value']); - break; - case 0x19: // Special attribute - // offset: 1; size: 1; attribute type flags: - switch (ord($formulaData[1])) { - case 0x01: - $name = 'tAttrVolatile'; - $size = 4; - $data = null; - break; - case 0x02: - $name = 'tAttrIf'; - $size = 4; - $data = null; - break; - case 0x04: - $name = 'tAttrChoose'; - // offset: 2; size: 2; number of choices in the CHOOSE function ($nc, number of parameters decreased by 1) - $nc = self::getInt2d($formulaData, 2); - // offset: 4; size: 2 * $nc - // offset: 4 + 2 * $nc; size: 2 - $size = 2 * $nc + 6; - $data = null; - break; - case 0x08: - $name = 'tAttrSkip'; - $size = 4; - $data = null; - break; - case 0x10: - $name = 'tAttrSum'; - $size = 4; - $data = null; - break; - case 0x40: - case 0x41: - $name = 'tAttrSpace'; - $size = 4; - // offset: 2; size: 2; space type and position - switch (ord($formulaData[2])) { - case 0x00: - $spacetype = 'type0'; - break; - case 0x01: - $spacetype = 'type1'; - break; - case 0x02: - $spacetype = 'type2'; - break; - case 0x03: - $spacetype = 'type3'; - break; - case 0x04: - $spacetype = 'type4'; - break; - case 0x05: - $spacetype = 'type5'; - break; - default: - throw new PHPExcel_Reader_Exception('Unrecognized space type in tAttrSpace token'); - break; - } - // offset: 3; size: 1; number of inserted spaces/carriage returns - $spacecount = ord($formulaData[3]); - - $data = array('spacetype' => $spacetype, 'spacecount' => $spacecount); - break; - default: - throw new PHPExcel_Reader_Exception('Unrecognized attribute flag in tAttr token'); - break; - } - break; - case 0x1C: // error code - // offset: 1; size: 1; error code - $name = 'tErr'; - $size = 2; - $data = PHPExcel_Reader_Excel5_ErrorCode::lookup(ord($formulaData[1])); - break; - case 0x1D: // boolean - // offset: 1; size: 1; 0 = false, 1 = true; - $name = 'tBool'; - $size = 2; - $data = ord($formulaData[1]) ? 'TRUE' : 'FALSE'; - break; - case 0x1E: // integer - // offset: 1; size: 2; unsigned 16-bit integer - $name = 'tInt'; - $size = 3; - $data = self::getInt2d($formulaData, 1); - break; - case 0x1F: // number - // offset: 1; size: 8; - $name = 'tNum'; - $size = 9; - $data = self::extractNumber(substr($formulaData, 1)); - $data = str_replace(',', '.', (string)$data); // in case non-English locale - break; - case 0x20: // array constant - case 0x40: - case 0x60: - // offset: 1; size: 7; not used - $name = 'tArray'; - $size = 8; - $data = null; - break; - case 0x21: // function with fixed number of arguments - case 0x41: - case 0x61: - $name = 'tFunc'; - $size = 3; - // offset: 1; size: 2; index to built-in sheet function - switch (self::getInt2d($formulaData, 1)) { - case 2: - $function = 'ISNA'; - $args = 1; - break; - case 3: - $function = 'ISERROR'; - $args = 1; - break; - case 10: - $function = 'NA'; - $args = 0; - break; - case 15: - $function = 'SIN'; - $args = 1; - break; - case 16: - $function = 'COS'; - $args = 1; - break; - case 17: - $function = 'TAN'; - $args = 1; - break; - case 18: - $function = 'ATAN'; - $args = 1; - break; - case 19: - $function = 'PI'; - $args = 0; - break; - case 20: - $function = 'SQRT'; - $args = 1; - break; - case 21: - $function = 'EXP'; - $args = 1; - break; - case 22: - $function = 'LN'; - $args = 1; - break; - case 23: - $function = 'LOG10'; - $args = 1; - break; - case 24: - $function = 'ABS'; - $args = 1; - break; - case 25: - $function = 'INT'; - $args = 1; - break; - case 26: - $function = 'SIGN'; - $args = 1; - break; - case 27: - $function = 'ROUND'; - $args = 2; - break; - case 30: - $function = 'REPT'; - $args = 2; - break; - case 31: - $function = 'MID'; - $args = 3; - break; - case 32: - $function = 'LEN'; - $args = 1; - break; - case 33: - $function = 'VALUE'; - $args = 1; - break; - case 34: - $function = 'TRUE'; - $args = 0; - break; - case 35: - $function = 'FALSE'; - $args = 0; - break; - case 38: - $function = 'NOT'; - $args = 1; - break; - case 39: - $function = 'MOD'; - $args = 2; - break; - case 40: - $function = 'DCOUNT'; - $args = 3; - break; - case 41: - $function = 'DSUM'; - $args = 3; - break; - case 42: - $function = 'DAVERAGE'; - $args = 3; - break; - case 43: - $function = 'DMIN'; - $args = 3; - break; - case 44: - $function = 'DMAX'; - $args = 3; - break; - case 45: - $function = 'DSTDEV'; - $args = 3; - break; - case 48: - $function = 'TEXT'; - $args = 2; - break; - case 61: - $function = 'MIRR'; - $args = 3; - break; - case 63: - $function = 'RAND'; - $args = 0; - break; - case 65: - $function = 'DATE'; - $args = 3; - break; - case 66: - $function = 'TIME'; - $args = 3; - break; - case 67: - $function = 'DAY'; - $args = 1; - break; - case 68: - $function = 'MONTH'; - $args = 1; - break; - case 69: - $function = 'YEAR'; - $args = 1; - break; - case 71: - $function = 'HOUR'; - $args = 1; - break; - case 72: - $function = 'MINUTE'; - $args = 1; - break; - case 73: - $function = 'SECOND'; - $args = 1; - break; - case 74: - $function = 'NOW'; - $args = 0; - break; - case 75: - $function = 'AREAS'; - $args = 1; - break; - case 76: - $function = 'ROWS'; - $args = 1; - break; - case 77: - $function = 'COLUMNS'; - $args = 1; - break; - case 83: - $function = 'TRANSPOSE'; - $args = 1; - break; - case 86: - $function = 'TYPE'; - $args = 1; - break; - case 97: - $function = 'ATAN2'; - $args = 2; - break; - case 98: - $function = 'ASIN'; - $args = 1; - break; - case 99: - $function = 'ACOS'; - $args = 1; - break; - case 105: - $function = 'ISREF'; - $args = 1; - break; - case 111: - $function = 'CHAR'; - $args = 1; - break; - case 112: - $function = 'LOWER'; - $args = 1; - break; - case 113: - $function = 'UPPER'; - $args = 1; - break; - case 114: - $function = 'PROPER'; - $args = 1; - break; - case 117: - $function = 'EXACT'; - $args = 2; - break; - case 118: - $function = 'TRIM'; - $args = 1; - break; - case 119: - $function = 'REPLACE'; - $args = 4; - break; - case 121: - $function = 'CODE'; - $args = 1; - break; - case 126: - $function = 'ISERR'; - $args = 1; - break; - case 127: - $function = 'ISTEXT'; - $args = 1; - break; - case 128: - $function = 'ISNUMBER'; - $args = 1; - break; - case 129: - $function = 'ISBLANK'; - $args = 1; - break; - case 130: - $function = 'T'; - $args = 1; - break; - case 131: - $function = 'N'; - $args = 1; - break; - case 140: - $function = 'DATEVALUE'; - $args = 1; - break; - case 141: - $function = 'TIMEVALUE'; - $args = 1; - break; - case 142: - $function = 'SLN'; - $args = 3; - break; - case 143: - $function = 'SYD'; - $args = 4; - break; - case 162: - $function = 'CLEAN'; - $args = 1; - break; - case 163: - $function = 'MDETERM'; - $args = 1; - break; - case 164: - $function = 'MINVERSE'; - $args = 1; - break; - case 165: - $function = 'MMULT'; - $args = 2; - break; - case 184: - $function = 'FACT'; - $args = 1; - break; - case 189: - $function = 'DPRODUCT'; - $args = 3; - break; - case 190: - $function = 'ISNONTEXT'; - $args = 1; - break; - case 195: - $function = 'DSTDEVP'; - $args = 3; - break; - case 196: - $function = 'DVARP'; - $args = 3; - break; - case 198: - $function = 'ISLOGICAL'; - $args = 1; - break; - case 199: - $function = 'DCOUNTA'; - $args = 3; - break; - case 207: - $function = 'REPLACEB'; - $args = 4; - break; - case 210: - $function = 'MIDB'; - $args = 3; - break; - case 211: - $function = 'LENB'; - $args = 1; - break; - case 212: - $function = 'ROUNDUP'; - $args = 2; - break; - case 213: - $function = 'ROUNDDOWN'; - $args = 2; - break; - case 214: - $function = 'ASC'; - $args = 1; - break; - case 215: - $function = 'DBCS'; - $args = 1; - break; - case 221: - $function = 'TODAY'; - $args = 0; - break; - case 229: - $function = 'SINH'; - $args = 1; - break; - case 230: - $function = 'COSH'; - $args = 1; - break; - case 231: - $function = 'TANH'; - $args = 1; - break; - case 232: - $function = 'ASINH'; - $args = 1; - break; - case 233: - $function = 'ACOSH'; - $args = 1; - break; - case 234: - $function = 'ATANH'; - $args = 1; - break; - case 235: - $function = 'DGET'; - $args = 3; - break; - case 244: - $function = 'INFO'; - $args = 1; - break; - case 252: - $function = 'FREQUENCY'; - $args = 2; - break; - case 261: - $function = 'ERROR.TYPE'; - $args = 1; - break; - case 271: - $function = 'GAMMALN'; - $args = 1; - break; - case 273: - $function = 'BINOMDIST'; - $args = 4; - break; - case 274: - $function = 'CHIDIST'; - $args = 2; - break; - case 275: - $function = 'CHIINV'; - $args = 2; - break; - case 276: - $function = 'COMBIN'; - $args = 2; - break; - case 277: - $function = 'CONFIDENCE'; - $args = 3; - break; - case 278: - $function = 'CRITBINOM'; - $args = 3; - break; - case 279: - $function = 'EVEN'; - $args = 1; - break; - case 280: - $function = 'EXPONDIST'; - $args = 3; - break; - case 281: - $function = 'FDIST'; - $args = 3; - break; - case 282: - $function = 'FINV'; - $args = 3; - break; - case 283: - $function = 'FISHER'; - $args = 1; - break; - case 284: - $function = 'FISHERINV'; - $args = 1; - break; - case 285: - $function = 'FLOOR'; - $args = 2; - break; - case 286: - $function = 'GAMMADIST'; - $args = 4; - break; - case 287: - $function = 'GAMMAINV'; - $args = 3; - break; - case 288: - $function = 'CEILING'; - $args = 2; - break; - case 289: - $function = 'HYPGEOMDIST'; - $args = 4; - break; - case 290: - $function = 'LOGNORMDIST'; - $args = 3; - break; - case 291: - $function = 'LOGINV'; - $args = 3; - break; - case 292: - $function = 'NEGBINOMDIST'; - $args = 3; - break; - case 293: - $function = 'NORMDIST'; - $args = 4; - break; - case 294: - $function = 'NORMSDIST'; - $args = 1; - break; - case 295: - $function = 'NORMINV'; - $args = 3; - break; - case 296: - $function = 'NORMSINV'; - $args = 1; - break; - case 297: - $function = 'STANDARDIZE'; - $args = 3; - break; - case 298: - $function = 'ODD'; - $args = 1; - break; - case 299: - $function = 'PERMUT'; - $args = 2; - break; - case 300: - $function = 'POISSON'; - $args = 3; - break; - case 301: - $function = 'TDIST'; - $args = 3; - break; - case 302: - $function = 'WEIBULL'; - $args = 4; - break; - case 303: - $function = 'SUMXMY2'; - $args = 2; - break; - case 304: - $function = 'SUMX2MY2'; - $args = 2; - break; - case 305: - $function = 'SUMX2PY2'; - $args = 2; - break; - case 306: - $function = 'CHITEST'; - $args = 2; - break; - case 307: - $function = 'CORREL'; - $args = 2; - break; - case 308: - $function = 'COVAR'; - $args = 2; - break; - case 309: - $function = 'FORECAST'; - $args = 3; - break; - case 310: - $function = 'FTEST'; - $args = 2; - break; - case 311: - $function = 'INTERCEPT'; - $args = 2; - break; - case 312: - $function = 'PEARSON'; - $args = 2; - break; - case 313: - $function = 'RSQ'; - $args = 2; - break; - case 314: - $function = 'STEYX'; - $args = 2; - break; - case 315: - $function = 'SLOPE'; - $args = 2; - break; - case 316: - $function = 'TTEST'; - $args = 4; - break; - case 325: - $function = 'LARGE'; - $args = 2; - break; - case 326: - $function = 'SMALL'; - $args = 2; - break; - case 327: - $function = 'QUARTILE'; - $args = 2; - break; - case 328: - $function = 'PERCENTILE'; - $args = 2; - break; - case 331: - $function = 'TRIMMEAN'; - $args = 2; - break; - case 332: - $function = 'TINV'; - $args = 2; - break; - case 337: - $function = 'POWER'; - $args = 2; - break; - case 342: - $function = 'RADIANS'; - $args = 1; - break; - case 343: - $function = 'DEGREES'; - $args = 1; - break; - case 346: - $function = 'COUNTIF'; - $args = 2; - break; - case 347: - $function = 'COUNTBLANK'; - $args = 1; - break; - case 350: - $function = 'ISPMT'; - $args = 4; - break; - case 351: - $function = 'DATEDIF'; - $args = 3; - break; - case 352: - $function = 'DATESTRING'; - $args = 1; - break; - case 353: - $function = 'NUMBERSTRING'; - $args = 2; - break; - case 360: - $function = 'PHONETIC'; - $args = 1; - break; - case 368: - $function = 'BAHTTEXT'; - $args = 1; - break; - default: - throw new PHPExcel_Reader_Exception('Unrecognized function in formula'); - break; - } - $data = array('function' => $function, 'args' => $args); - break; - case 0x22: // function with variable number of arguments - case 0x42: - case 0x62: - $name = 'tFuncV'; - $size = 4; - // offset: 1; size: 1; number of arguments - $args = ord($formulaData[1]); - // offset: 2: size: 2; index to built-in sheet function - $index = self::getInt2d($formulaData, 2); - switch ($index) { - case 0: - $function = 'COUNT'; - break; - case 1: - $function = 'IF'; - break; - case 4: - $function = 'SUM'; - break; - case 5: - $function = 'AVERAGE'; - break; - case 6: - $function = 'MIN'; - break; - case 7: - $function = 'MAX'; - break; - case 8: - $function = 'ROW'; - break; - case 9: - $function = 'COLUMN'; - break; - case 11: - $function = 'NPV'; - break; - case 12: - $function = 'STDEV'; - break; - case 13: - $function = 'DOLLAR'; - break; - case 14: - $function = 'FIXED'; - break; - case 28: - $function = 'LOOKUP'; - break; - case 29: - $function = 'INDEX'; - break; - case 36: - $function = 'AND'; - break; - case 37: - $function = 'OR'; - break; - case 46: - $function = 'VAR'; - break; - case 49: - $function = 'LINEST'; - break; - case 50: - $function = 'TREND'; - break; - case 51: - $function = 'LOGEST'; - break; - case 52: - $function = 'GROWTH'; - break; - case 56: - $function = 'PV'; - break; - case 57: - $function = 'FV'; - break; - case 58: - $function = 'NPER'; - break; - case 59: - $function = 'PMT'; - break; - case 60: - $function = 'RATE'; - break; - case 62: - $function = 'IRR'; - break; - case 64: - $function = 'MATCH'; - break; - case 70: - $function = 'WEEKDAY'; - break; - case 78: - $function = 'OFFSET'; - break; - case 82: - $function = 'SEARCH'; - break; - case 100: - $function = 'CHOOSE'; - break; - case 101: - $function = 'HLOOKUP'; - break; - case 102: - $function = 'VLOOKUP'; - break; - case 109: - $function = 'LOG'; - break; - case 115: - $function = 'LEFT'; - break; - case 116: - $function = 'RIGHT'; - break; - case 120: - $function = 'SUBSTITUTE'; - break; - case 124: - $function = 'FIND'; - break; - case 125: - $function = 'CELL'; - break; - case 144: - $function = 'DDB'; - break; - case 148: - $function = 'INDIRECT'; - break; - case 167: - $function = 'IPMT'; - break; - case 168: - $function = 'PPMT'; - break; - case 169: - $function = 'COUNTA'; - break; - case 183: - $function = 'PRODUCT'; - break; - case 193: - $function = 'STDEVP'; - break; - case 194: - $function = 'VARP'; - break; - case 197: - $function = 'TRUNC'; - break; - case 204: - $function = 'USDOLLAR'; - break; - case 205: - $function = 'FINDB'; - break; - case 206: - $function = 'SEARCHB'; - break; - case 208: - $function = 'LEFTB'; - break; - case 209: - $function = 'RIGHTB'; - break; - case 216: - $function = 'RANK'; - break; - case 219: - $function = 'ADDRESS'; - break; - case 220: - $function = 'DAYS360'; - break; - case 222: - $function = 'VDB'; - break; - case 227: - $function = 'MEDIAN'; - break; - case 228: - $function = 'SUMPRODUCT'; - break; - case 247: - $function = 'DB'; - break; - case 255: - $function = ''; - break; - case 269: - $function = 'AVEDEV'; - break; - case 270: - $function = 'BETADIST'; - break; - case 272: - $function = 'BETAINV'; - break; - case 317: - $function = 'PROB'; - break; - case 318: - $function = 'DEVSQ'; - break; - case 319: - $function = 'GEOMEAN'; - break; - case 320: - $function = 'HARMEAN'; - break; - case 321: - $function = 'SUMSQ'; - break; - case 322: - $function = 'KURT'; - break; - case 323: - $function = 'SKEW'; - break; - case 324: - $function = 'ZTEST'; - break; - case 329: - $function = 'PERCENTRANK'; - break; - case 330: - $function = 'MODE'; - break; - case 336: - $function = 'CONCATENATE'; - break; - case 344: - $function = 'SUBTOTAL'; - break; - case 345: - $function = 'SUMIF'; - break; - case 354: - $function = 'ROMAN'; - break; - case 358: - $function = 'GETPIVOTDATA'; - break; - case 359: - $function = 'HYPERLINK'; - break; - case 361: - $function = 'AVERAGEA'; - break; - case 362: - $function = 'MAXA'; - break; - case 363: - $function = 'MINA'; - break; - case 364: - $function = 'STDEVPA'; - break; - case 365: - $function = 'VARPA'; - break; - case 366: - $function = 'STDEVA'; - break; - case 367: - $function = 'VARA'; - break; - default: - throw new PHPExcel_Reader_Exception('Unrecognized function in formula'); - break; - } - $data = array('function' => $function, 'args' => $args); - break; - case 0x23: // index to defined name - case 0x43: - case 0x63: - $name = 'tName'; - $size = 5; - // offset: 1; size: 2; one-based index to definedname record - $definedNameIndex = self::getInt2d($formulaData, 1) - 1; - // offset: 2; size: 2; not used - $data = $this->definedname[$definedNameIndex]['name']; - break; - case 0x24: // single cell reference e.g. A5 - case 0x44: - case 0x64: - $name = 'tRef'; - $size = 5; - $data = $this->readBIFF8CellAddress(substr($formulaData, 1, 4)); - break; - case 0x25: // cell range reference to cells in the same sheet (2d) - case 0x45: - case 0x65: - $name = 'tArea'; - $size = 9; - $data = $this->readBIFF8CellRangeAddress(substr($formulaData, 1, 8)); - break; - case 0x26: // Constant reference sub-expression - case 0x46: - case 0x66: - $name = 'tMemArea'; - // offset: 1; size: 4; not used - // offset: 5; size: 2; size of the following subexpression - $subSize = self::getInt2d($formulaData, 5); - $size = 7 + $subSize; - $data = $this->getFormulaFromData(substr($formulaData, 7, $subSize)); - break; - case 0x27: // Deleted constant reference sub-expression - case 0x47: - case 0x67: - $name = 'tMemErr'; - // offset: 1; size: 4; not used - // offset: 5; size: 2; size of the following subexpression - $subSize = self::getInt2d($formulaData, 5); - $size = 7 + $subSize; - $data = $this->getFormulaFromData(substr($formulaData, 7, $subSize)); - break; - case 0x29: // Variable reference sub-expression - case 0x49: - case 0x69: - $name = 'tMemFunc'; - // offset: 1; size: 2; size of the following sub-expression - $subSize = self::getInt2d($formulaData, 1); - $size = 3 + $subSize; - $data = $this->getFormulaFromData(substr($formulaData, 3, $subSize)); - break; - case 0x2C: // Relative 2d cell reference reference, used in shared formulas and some other places - case 0x4C: - case 0x6C: - $name = 'tRefN'; - $size = 5; - $data = $this->readBIFF8CellAddressB(substr($formulaData, 1, 4), $baseCell); - break; - case 0x2D: // Relative 2d range reference - case 0x4D: - case 0x6D: - $name = 'tAreaN'; - $size = 9; - $data = $this->readBIFF8CellRangeAddressB(substr($formulaData, 1, 8), $baseCell); - break; - case 0x39: // External name - case 0x59: - case 0x79: - $name = 'tNameX'; - $size = 7; - // offset: 1; size: 2; index to REF entry in EXTERNSHEET record - // offset: 3; size: 2; one-based index to DEFINEDNAME or EXTERNNAME record - $index = self::getInt2d($formulaData, 3); - // assume index is to EXTERNNAME record - $data = $this->externalNames[$index - 1]['name']; - // offset: 5; size: 2; not used - break; - case 0x3A: // 3d reference to cell - case 0x5A: - case 0x7A: - $name = 'tRef3d'; - $size = 7; - - try { - // offset: 1; size: 2; index to REF entry - $sheetRange = $this->readSheetRangeByRefIndex(self::getInt2d($formulaData, 1)); - // offset: 3; size: 4; cell address - $cellAddress = $this->readBIFF8CellAddress(substr($formulaData, 3, 4)); - - $data = "$sheetRange!$cellAddress"; - } catch (PHPExcel_Exception $e) { - // deleted sheet reference - $data = '#REF!'; - } - break; - case 0x3B: // 3d reference to cell range - case 0x5B: - case 0x7B: - $name = 'tArea3d'; - $size = 11; - - try { - // offset: 1; size: 2; index to REF entry - $sheetRange = $this->readSheetRangeByRefIndex(self::getInt2d($formulaData, 1)); - // offset: 3; size: 8; cell address - $cellRangeAddress = $this->readBIFF8CellRangeAddress(substr($formulaData, 3, 8)); - - $data = "$sheetRange!$cellRangeAddress"; - } catch (PHPExcel_Exception $e) { - // deleted sheet reference - $data = '#REF!'; - } - break; - // Unknown cases // don't know how to deal with - default: - throw new PHPExcel_Reader_Exception('Unrecognized token ' . sprintf('%02X', $id) . ' in formula'); - break; - } - - return array( - 'id' => $id, - 'name' => $name, - 'size' => $size, - 'data' => $data, - ); - } - - /** - * Convert UTF-8 string to string surounded by double quotes. Used for explicit string tokens in formulas. - * Example: hello"world --> "hello""world" - * - * @param string $value UTF-8 encoded string - * @return string - */ - private static function UTF8toExcelDoubleQuoted($value) - { - return '"' . str_replace('"', '""', $value) . '"'; - } - - /** - * Reads first 8 bytes of a string and return IEEE 754 float - * - * @param string $data Binary string that is at least 8 bytes long - * @return float - */ - private static function extractNumber($data) - { - $rknumhigh = self::getInt4d($data, 4); - $rknumlow = self::getInt4d($data, 0); - $sign = ($rknumhigh & 0x80000000) >> 31; - $exp = (($rknumhigh & 0x7ff00000) >> 20) - 1023; - $mantissa = (0x100000 | ($rknumhigh & 0x000fffff)); - $mantissalow1 = ($rknumlow & 0x80000000) >> 31; - $mantissalow2 = ($rknumlow & 0x7fffffff); - $value = $mantissa / pow(2, (20 - $exp)); - - if ($mantissalow1 != 0) { - $value += 1 / pow(2, (21 - $exp)); - } - - $value += $mantissalow2 / pow(2, (52 - $exp)); - if ($sign) { - $value *= -1; - } - - return $value; - } - - /** - * Reads a cell address in BIFF8 e.g. 'A2' or '$A$2' - * section 3.3.4 - * - * @param string $cellAddressStructure - * @return string - */ - private function readBIFF8CellAddress($cellAddressStructure) - { - // offset: 0; size: 2; index to row (0... 65535) (or offset (-32768... 32767)) - $row = self::getInt2d($cellAddressStructure, 0) + 1; - - // offset: 2; size: 2; index to column or column offset + relative flags - // bit: 7-0; mask 0x00FF; column index - $column = PHPExcel_Cell::stringFromColumnIndex(0x00FF & self::getInt2d($cellAddressStructure, 2)); - - // bit: 14; mask 0x4000; (1 = relative column index, 0 = absolute column index) - if (!(0x4000 & self::getInt2d($cellAddressStructure, 2))) { - $column = '$' . $column; - } - // bit: 15; mask 0x8000; (1 = relative row index, 0 = absolute row index) - if (!(0x8000 & self::getInt2d($cellAddressStructure, 2))) { - $row = '$' . $row; - } - - return $column . $row; - } - - /** - * Reads a cell range address in BIFF8 e.g. 'A2:B6' or '$A$2:$B$6' - * there are flags indicating whether column/row index is relative - * section 3.3.4 - * - * @param string $subData - * @return string - */ - private function readBIFF8CellRangeAddress($subData) - { - // todo: if cell range is just a single cell, should this funciton - // not just return e.g. 'A1' and not 'A1:A1' ? - - // offset: 0; size: 2; index to first row (0... 65535) (or offset (-32768... 32767)) - $fr = self::getInt2d($subData, 0) + 1; - - // offset: 2; size: 2; index to last row (0... 65535) (or offset (-32768... 32767)) - $lr = self::getInt2d($subData, 2) + 1; - - // offset: 4; size: 2; index to first column or column offset + relative flags - - // bit: 7-0; mask 0x00FF; column index - $fc = PHPExcel_Cell::stringFromColumnIndex(0x00FF & self::getInt2d($subData, 4)); - - // bit: 14; mask 0x4000; (1 = relative column index, 0 = absolute column index) - if (!(0x4000 & self::getInt2d($subData, 4))) { - $fc = '$' . $fc; - } - - // bit: 15; mask 0x8000; (1 = relative row index, 0 = absolute row index) - if (!(0x8000 & self::getInt2d($subData, 4))) { - $fr = '$' . $fr; - } - - // offset: 6; size: 2; index to last column or column offset + relative flags - - // bit: 7-0; mask 0x00FF; column index - $lc = PHPExcel_Cell::stringFromColumnIndex(0x00FF & self::getInt2d($subData, 6)); - - // bit: 14; mask 0x4000; (1 = relative column index, 0 = absolute column index) - if (!(0x4000 & self::getInt2d($subData, 6))) { - $lc = '$' . $lc; - } - - // bit: 15; mask 0x8000; (1 = relative row index, 0 = absolute row index) - if (!(0x8000 & self::getInt2d($subData, 6))) { - $lr = '$' . $lr; - } - - return "$fc$fr:$lc$lr"; - } - - /** - * Reads a cell address in BIFF8 for shared formulas. Uses positive and negative values for row and column - * to indicate offsets from a base cell - * section 3.3.4 - * - * @param string $cellAddressStructure - * @param string $baseCell Base cell, only needed when formula contains tRefN tokens, e.g. with shared formulas - * @return string - */ - private function readBIFF8CellAddressB($cellAddressStructure, $baseCell = 'A1') - { - list($baseCol, $baseRow) = PHPExcel_Cell::coordinateFromString($baseCell); - $baseCol = PHPExcel_Cell::columnIndexFromString($baseCol) - 1; - - // offset: 0; size: 2; index to row (0... 65535) (or offset (-32768... 32767)) - $rowIndex = self::getInt2d($cellAddressStructure, 0); - $row = self::getInt2d($cellAddressStructure, 0) + 1; - - // offset: 2; size: 2; index to column or column offset + relative flags - // bit: 7-0; mask 0x00FF; column index - $colIndex = 0x00FF & self::getInt2d($cellAddressStructure, 2); - - // bit: 14; mask 0x4000; (1 = relative column index, 0 = absolute column index) - if (!(0x4000 & self::getInt2d($cellAddressStructure, 2))) { - $column = PHPExcel_Cell::stringFromColumnIndex($colIndex); - $column = '$' . $column; - } else { - $colIndex = ($colIndex <= 127) ? $colIndex : $colIndex - 256; - $column = PHPExcel_Cell::stringFromColumnIndex($baseCol + $colIndex); - } - - // bit: 15; mask 0x8000; (1 = relative row index, 0 = absolute row index) - if (!(0x8000 & self::getInt2d($cellAddressStructure, 2))) { - $row = '$' . $row; - } else { - $rowIndex = ($rowIndex <= 32767) ? $rowIndex : $rowIndex - 65536; - $row = $baseRow + $rowIndex; - } - - return $column . $row; - } - - /** - * Reads a cell range address in BIFF8 for shared formulas. Uses positive and negative values for row and column - * to indicate offsets from a base cell - * section 3.3.4 - * - * @param string $subData - * @param string $baseCell Base cell - * @return string Cell range address - */ - private function readBIFF8CellRangeAddressB($subData, $baseCell = 'A1') - { - list($baseCol, $baseRow) = PHPExcel_Cell::coordinateFromString($baseCell); - $baseCol = PHPExcel_Cell::columnIndexFromString($baseCol) - 1; - - // TODO: if cell range is just a single cell, should this funciton - // not just return e.g. 'A1' and not 'A1:A1' ? - - // offset: 0; size: 2; first row - $frIndex = self::getInt2d($subData, 0); // adjust below - - // offset: 2; size: 2; relative index to first row (0... 65535) should be treated as offset (-32768... 32767) - $lrIndex = self::getInt2d($subData, 2); // adjust below - - // offset: 4; size: 2; first column with relative/absolute flags - - // bit: 7-0; mask 0x00FF; column index - $fcIndex = 0x00FF & self::getInt2d($subData, 4); - - // bit: 14; mask 0x4000; (1 = relative column index, 0 = absolute column index) - if (!(0x4000 & self::getInt2d($subData, 4))) { - // absolute column index - $fc = PHPExcel_Cell::stringFromColumnIndex($fcIndex); - $fc = '$' . $fc; - } else { - // column offset - $fcIndex = ($fcIndex <= 127) ? $fcIndex : $fcIndex - 256; - $fc = PHPExcel_Cell::stringFromColumnIndex($baseCol + $fcIndex); - } - - // bit: 15; mask 0x8000; (1 = relative row index, 0 = absolute row index) - if (!(0x8000 & self::getInt2d($subData, 4))) { - // absolute row index - $fr = $frIndex + 1; - $fr = '$' . $fr; - } else { - // row offset - $frIndex = ($frIndex <= 32767) ? $frIndex : $frIndex - 65536; - $fr = $baseRow + $frIndex; - } - - // offset: 6; size: 2; last column with relative/absolute flags - - // bit: 7-0; mask 0x00FF; column index - $lcIndex = 0x00FF & self::getInt2d($subData, 6); - $lcIndex = ($lcIndex <= 127) ? $lcIndex : $lcIndex - 256; - $lc = PHPExcel_Cell::stringFromColumnIndex($baseCol + $lcIndex); - - // bit: 14; mask 0x4000; (1 = relative column index, 0 = absolute column index) - if (!(0x4000 & self::getInt2d($subData, 6))) { - // absolute column index - $lc = PHPExcel_Cell::stringFromColumnIndex($lcIndex); - $lc = '$' . $lc; - } else { - // column offset - $lcIndex = ($lcIndex <= 127) ? $lcIndex : $lcIndex - 256; - $lc = PHPExcel_Cell::stringFromColumnIndex($baseCol + $lcIndex); - } - - // bit: 15; mask 0x8000; (1 = relative row index, 0 = absolute row index) - if (!(0x8000 & self::getInt2d($subData, 6))) { - // absolute row index - $lr = $lrIndex + 1; - $lr = '$' . $lr; - } else { - // row offset - $lrIndex = ($lrIndex <= 32767) ? $lrIndex : $lrIndex - 65536; - $lr = $baseRow + $lrIndex; - } - - return "$fc$fr:$lc$lr"; - } - - /** - * Get a sheet range like Sheet1:Sheet3 from REF index - * Note: If there is only one sheet in the range, one gets e.g Sheet1 - * It can also happen that the REF structure uses the -1 (FFFF) code to indicate deleted sheets, - * in which case an PHPExcel_Reader_Exception is thrown - * - * @param int $index - * @return string|false - * @throws PHPExcel_Reader_Exception - */ - private function readSheetRangeByRefIndex($index) - { - if (isset($this->ref[$index])) { - $type = $this->externalBooks[$this->ref[$index]['externalBookIndex']]['type']; - - switch ($type) { - case 'internal': - // check if we have a deleted 3d reference - if ($this->ref[$index]['firstSheetIndex'] == 0xFFFF or $this->ref[$index]['lastSheetIndex'] == 0xFFFF) { - throw new PHPExcel_Reader_Exception('Deleted sheet reference'); - } - - // we have normal sheet range (collapsed or uncollapsed) - $firstSheetName = $this->sheets[$this->ref[$index]['firstSheetIndex']]['name']; - $lastSheetName = $this->sheets[$this->ref[$index]['lastSheetIndex']]['name']; - - if ($firstSheetName == $lastSheetName) { - // collapsed sheet range - $sheetRange = $firstSheetName; - } else { - $sheetRange = "$firstSheetName:$lastSheetName"; - } - - // escape the single-quotes - $sheetRange = str_replace("'", "''", $sheetRange); - - // if there are special characters, we need to enclose the range in single-quotes - // todo: check if we have identified the whole set of special characters - // it seems that the following characters are not accepted for sheet names - // and we may assume that they are not present: []*/:\? - if (preg_match("/[ !\"@#£$%&{()}<>=+'|^,;-]/", $sheetRange)) { - $sheetRange = "'$sheetRange'"; - } - - return $sheetRange; - break; - default: - // TODO: external sheet support - throw new PHPExcel_Reader_Exception('Excel5 reader only supports internal sheets in fomulas'); - break; - } - } - return false; - } - - /** - * Take array of tokens together with additional data for formula and return human readable formula - * - * @param array $tokens - * @param array $additionalData Additional binary data going with the formula - * @param string $baseCell Base cell, only needed when formula contains tRefN tokens, e.g. with shared formulas - * @return string Human readable formula - */ - private function createFormulaFromTokens($tokens, $additionalData) - { - // empty formula? - if (empty($tokens)) { - return ''; - } - - $formulaStrings = array(); - foreach ($tokens as $token) { - // initialize spaces - $space0 = isset($space0) ? $space0 : ''; // spaces before next token, not tParen - $space1 = isset($space1) ? $space1 : ''; // carriage returns before next token, not tParen - $space2 = isset($space2) ? $space2 : ''; // spaces before opening parenthesis - $space3 = isset($space3) ? $space3 : ''; // carriage returns before opening parenthesis - $space4 = isset($space4) ? $space4 : ''; // spaces before closing parenthesis - $space5 = isset($space5) ? $space5 : ''; // carriage returns before closing parenthesis - - switch ($token['name']) { - case 'tAdd': // addition - case 'tConcat': // addition - case 'tDiv': // division - case 'tEQ': // equality - case 'tGE': // greater than or equal - case 'tGT': // greater than - case 'tIsect': // intersection - case 'tLE': // less than or equal - case 'tList': // less than or equal - case 'tLT': // less than - case 'tMul': // multiplication - case 'tNE': // multiplication - case 'tPower': // power - case 'tRange': // range - case 'tSub': // subtraction - $op2 = array_pop($formulaStrings); - $op1 = array_pop($formulaStrings); - $formulaStrings[] = "$op1$space1$space0{$token['data']}$op2"; - unset($space0, $space1); - break; - case 'tUplus': // unary plus - case 'tUminus': // unary minus - $op = array_pop($formulaStrings); - $formulaStrings[] = "$space1$space0{$token['data']}$op"; - unset($space0, $space1); - break; - case 'tPercent': // percent sign - $op = array_pop($formulaStrings); - $formulaStrings[] = "$op$space1$space0{$token['data']}"; - unset($space0, $space1); - break; - case 'tAttrVolatile': // indicates volatile function - case 'tAttrIf': - case 'tAttrSkip': - case 'tAttrChoose': - // token is only important for Excel formula evaluator - // do nothing - break; - case 'tAttrSpace': // space / carriage return - // space will be used when next token arrives, do not alter formulaString stack - switch ($token['data']['spacetype']) { - case 'type0': - $space0 = str_repeat(' ', $token['data']['spacecount']); - break; - case 'type1': - $space1 = str_repeat("\n", $token['data']['spacecount']); - break; - case 'type2': - $space2 = str_repeat(' ', $token['data']['spacecount']); - break; - case 'type3': - $space3 = str_repeat("\n", $token['data']['spacecount']); - break; - case 'type4': - $space4 = str_repeat(' ', $token['data']['spacecount']); - break; - case 'type5': - $space5 = str_repeat("\n", $token['data']['spacecount']); - break; - } - break; - case 'tAttrSum': // SUM function with one parameter - $op = array_pop($formulaStrings); - $formulaStrings[] = "{$space1}{$space0}SUM($op)"; - unset($space0, $space1); - break; - case 'tFunc': // function with fixed number of arguments - case 'tFuncV': // function with variable number of arguments - if ($token['data']['function'] != '') { - // normal function - $ops = array(); // array of operators - for ($i = 0; $i < $token['data']['args']; ++$i) { - $ops[] = array_pop($formulaStrings); - } - $ops = array_reverse($ops); - $formulaStrings[] = "$space1$space0{$token['data']['function']}(" . implode(',', $ops) . ")"; - unset($space0, $space1); - } else { - // add-in function - $ops = array(); // array of operators - for ($i = 0; $i < $token['data']['args'] - 1; ++$i) { - $ops[] = array_pop($formulaStrings); - } - $ops = array_reverse($ops); - $function = array_pop($formulaStrings); - $formulaStrings[] = "$space1$space0$function(" . implode(',', $ops) . ")"; - unset($space0, $space1); - } - break; - case 'tParen': // parenthesis - $expression = array_pop($formulaStrings); - $formulaStrings[] = "$space3$space2($expression$space5$space4)"; - unset($space2, $space3, $space4, $space5); - break; - case 'tArray': // array constant - $constantArray = self::readBIFF8ConstantArray($additionalData); - $formulaStrings[] = $space1 . $space0 . $constantArray['value']; - $additionalData = substr($additionalData, $constantArray['size']); // bite of chunk of additional data - unset($space0, $space1); - break; - case 'tMemArea': - // bite off chunk of additional data - $cellRangeAddressList = $this->readBIFF8CellRangeAddressList($additionalData); - $additionalData = substr($additionalData, $cellRangeAddressList['size']); - $formulaStrings[] = "$space1$space0{$token['data']}"; - unset($space0, $space1); - break; - case 'tArea': // cell range address - case 'tBool': // boolean - case 'tErr': // error code - case 'tInt': // integer - case 'tMemErr': - case 'tMemFunc': - case 'tMissArg': - case 'tName': - case 'tNameX': - case 'tNum': // number - case 'tRef': // single cell reference - case 'tRef3d': // 3d cell reference - case 'tArea3d': // 3d cell range reference - case 'tRefN': - case 'tAreaN': - case 'tStr': // string - $formulaStrings[] = "$space1$space0{$token['data']}"; - unset($space0, $space1); - break; - } - } - $formulaString = $formulaStrings[0]; - - // for debug: dump the human readable formula - //echo '----' . "\n"; - //echo 'Formula: ' . $formulaString; - - return $formulaString; - } - - /** - * read BIFF8 constant value array from array data - * returns e.g. array('value' => '{1,2;3,4}', 'size' => 40} - * section 2.5.8 - * - * @param string $arrayData - * @return array - */ - private static function readBIFF8ConstantArray($arrayData) - { - // offset: 0; size: 1; number of columns decreased by 1 - $nc = ord($arrayData[0]); - - // offset: 1; size: 2; number of rows decreased by 1 - $nr = self::getInt2d($arrayData, 1); - $size = 3; // initialize - $arrayData = substr($arrayData, 3); - - // offset: 3; size: var; list of ($nc + 1) * ($nr + 1) constant values - $matrixChunks = array(); - for ($r = 1; $r <= $nr + 1; ++$r) { - $items = array(); - for ($c = 1; $c <= $nc + 1; ++$c) { - $constant = self::readBIFF8Constant($arrayData); - $items[] = $constant['value']; - $arrayData = substr($arrayData, $constant['size']); - $size += $constant['size']; - } - $matrixChunks[] = implode(',', $items); // looks like e.g. '1,"hello"' - } - $matrix = '{' . implode(';', $matrixChunks) . '}'; - - return array( - 'value' => $matrix, - 'size' => $size, - ); - } - - /** - * read BIFF8 constant value which may be 'Empty Value', 'Number', 'String Value', 'Boolean Value', 'Error Value' - * section 2.5.7 - * returns e.g. array('value' => '5', 'size' => 9) - * - * @param string $valueData - * @return array - */ - private static function readBIFF8Constant($valueData) - { - // offset: 0; size: 1; identifier for type of constant - $identifier = ord($valueData[0]); - - switch ($identifier) { - case 0x00: // empty constant (what is this?) - $value = ''; - $size = 9; - break; - case 0x01: // number - // offset: 1; size: 8; IEEE 754 floating-point value - $value = self::extractNumber(substr($valueData, 1, 8)); - $size = 9; - break; - case 0x02: // string value - // offset: 1; size: var; Unicode string, 16-bit string length - $string = self::readUnicodeStringLong(substr($valueData, 1)); - $value = '"' . $string['value'] . '"'; - $size = 1 + $string['size']; - break; - case 0x04: // boolean - // offset: 1; size: 1; 0 = FALSE, 1 = TRUE - if (ord($valueData[1])) { - $value = 'TRUE'; - } else { - $value = 'FALSE'; - } - $size = 9; - break; - case 0x10: // error code - // offset: 1; size: 1; error code - $value = PHPExcel_Reader_Excel5_ErrorCode::lookup(ord($valueData[1])); - $size = 9; - break; - } - return array( - 'value' => $value, - 'size' => $size, - ); - } - - /** - * Read BIFF8 cell range address list - * section 2.5.15 - * - * @param string $subData - * @return array - */ - private function readBIFF8CellRangeAddressList($subData) - { - $cellRangeAddresses = array(); - - // offset: 0; size: 2; number of the following cell range addresses - $nm = self::getInt2d($subData, 0); - - $offset = 2; - // offset: 2; size: 8 * $nm; list of $nm (fixed) cell range addresses - for ($i = 0; $i < $nm; ++$i) { - $cellRangeAddresses[] = $this->readBIFF8CellRangeAddressFixed(substr($subData, $offset, 8)); - $offset += 8; - } - - return array( - 'size' => 2 + 8 * $nm, - 'cellRangeAddresses' => $cellRangeAddresses, - ); - } - - /** - * Reads a cell range address in BIFF8 e.g. 'A2:B6' or 'A1' - * always fixed range - * section 2.5.14 - * - * @param string $subData - * @return string - * @throws PHPExcel_Reader_Exception - */ - private function readBIFF8CellRangeAddressFixed($subData) - { - // offset: 0; size: 2; index to first row - $fr = self::getInt2d($subData, 0) + 1; - - // offset: 2; size: 2; index to last row - $lr = self::getInt2d($subData, 2) + 1; - - // offset: 4; size: 2; index to first column - $fc = self::getInt2d($subData, 4); - - // offset: 6; size: 2; index to last column - $lc = self::getInt2d($subData, 6); - - // check values - if ($fr > $lr || $fc > $lc) { - throw new PHPExcel_Reader_Exception('Not a cell range address'); - } - - // column index to letter - $fc = PHPExcel_Cell::stringFromColumnIndex($fc); - $lc = PHPExcel_Cell::stringFromColumnIndex($lc); - - if ($fr == $lr and $fc == $lc) { - return "$fc$fr"; - } - return "$fc$fr:$lc$lr"; - } - - /** - * Read EXTERNSHEET record - */ - private function readExternSheet() - { - $length = self::getInt2d($this->data, $this->pos + 2); - $recordData = $this->readRecordData($this->data, $this->pos + 4, $length); - - // move stream pointer to next record - $this->pos += 4 + $length; - - // external sheet references provided for named cells - if ($this->version == self::XLS_BIFF8) { - // offset: 0; size: 2; number of following ref structures - $nm = self::getInt2d($recordData, 0); - for ($i = 0; $i < $nm; ++$i) { - $this->ref[] = array( - // offset: 2 + 6 * $i; index to EXTERNALBOOK record - 'externalBookIndex' => self::getInt2d($recordData, 2 + 6 * $i), - // offset: 4 + 6 * $i; index to first sheet in EXTERNALBOOK record - 'firstSheetIndex' => self::getInt2d($recordData, 4 + 6 * $i), - // offset: 6 + 6 * $i; index to last sheet in EXTERNALBOOK record - 'lastSheetIndex' => self::getInt2d($recordData, 6 + 6 * $i), - ); - } - } - } - - /** - * DEFINEDNAME - * - * This record is part of a Link Table. It contains the name - * and the token array of an internal defined name. Token - * arrays of defined names contain tokens with aberrant - * token classes. - * - * -- "OpenOffice.org's Documentation of the Microsoft - * Excel File Format" - */ - private function readDefinedName() - { - $length = self::getInt2d($this->data, $this->pos + 2); - $recordData = $this->readRecordData($this->data, $this->pos + 4, $length); - - // move stream pointer to next record - $this->pos += 4 + $length; - - if ($this->version == self::XLS_BIFF8) { - // retrieves named cells - - // offset: 0; size: 2; option flags - $opts = self::getInt2d($recordData, 0); - - // bit: 5; mask: 0x0020; 0 = user-defined name, 1 = built-in-name - $isBuiltInName = (0x0020 & $opts) >> 5; - - // offset: 2; size: 1; keyboard shortcut - - // offset: 3; size: 1; length of the name (character count) - $nlen = ord($recordData{3}); - - // offset: 4; size: 2; size of the formula data (it can happen that this is zero) - // note: there can also be additional data, this is not included in $flen - $flen = self::getInt2d($recordData, 4); - - // offset: 8; size: 2; 0=Global name, otherwise index to sheet (1-based) - $scope = self::getInt2d($recordData, 8); - - // offset: 14; size: var; Name (Unicode string without length field) - $string = self::readUnicodeString(substr($recordData, 14), $nlen); - - // offset: var; size: $flen; formula data - $offset = 14 + $string['size']; - $formulaStructure = pack('v', $flen) . substr($recordData, $offset); - - try { - $formula = $this->getFormulaFromStructure($formulaStructure); - } catch (PHPExcel_Exception $e) { - $formula = ''; - } - - $this->definedname[] = array( - 'isBuiltInName' => $isBuiltInName, - 'name' => $string['value'], - 'formula' => $formula, - 'scope' => $scope, - ); - } - } - - /** - * Read MSODRAWINGGROUP record - */ - private function readMsoDrawingGroup() - { - $length = self::getInt2d($this->data, $this->pos + 2); - - // get spliced record data - $splicedRecordData = $this->getSplicedRecordData(); - $recordData = $splicedRecordData['recordData']; - - $this->drawingGroupData .= $recordData; - } - - /** - * Reads a record from current position in data stream and continues reading data as long as CONTINUE - * records are found. Splices the record data pieces and returns the combined string as if record data - * is in one piece. - * Moves to next current position in data stream to start of next record different from a CONtINUE record - * - * @return array - */ - private function getSplicedRecordData() - { - $data = ''; - $spliceOffsets = array(); - - $i = 0; - $spliceOffsets[0] = 0; - - do { - ++$i; - - // offset: 0; size: 2; identifier - $identifier = self::getInt2d($this->data, $this->pos); - // offset: 2; size: 2; length - $length = self::getInt2d($this->data, $this->pos + 2); - $data .= $this->readRecordData($this->data, $this->pos + 4, $length); - - $spliceOffsets[$i] = $spliceOffsets[$i - 1] + $length; - - $this->pos += 4 + $length; - $nextIdentifier = self::getInt2d($this->data, $this->pos); - } while ($nextIdentifier == self::XLS_TYPE_CONTINUE); - - $splicedData = array( - 'recordData' => $data, - 'spliceOffsets' => $spliceOffsets, - ); - - return $splicedData; - - } - - /** - * SST - Shared String Table - * - * This record contains a list of all strings used anywhere - * in the workbook. Each string occurs only once. The - * workbook uses indexes into the list to reference the - * strings. - * - * -- "OpenOffice.org's Documentation of the Microsoft - * Excel File Format" - **/ - private function readSst() - { - // offset within (spliced) record data - $pos = 0; - - // get spliced record data - $splicedRecordData = $this->getSplicedRecordData(); - - $recordData = $splicedRecordData['recordData']; - $spliceOffsets = $splicedRecordData['spliceOffsets']; - - // offset: 0; size: 4; total number of strings in the workbook - $pos += 4; - - // offset: 4; size: 4; number of following strings ($nm) - $nm = self::getInt4d($recordData, 4); - $pos += 4; - - // loop through the Unicode strings (16-bit length) - for ($i = 0; $i < $nm; ++$i) { - // number of characters in the Unicode string - $numChars = self::getInt2d($recordData, $pos); - $pos += 2; - - // option flags - $optionFlags = ord($recordData{$pos}); - ++$pos; - - // bit: 0; mask: 0x01; 0 = compressed; 1 = uncompressed - $isCompressed = (($optionFlags & 0x01) == 0) ; - - // bit: 2; mask: 0x02; 0 = ordinary; 1 = Asian phonetic - $hasAsian = (($optionFlags & 0x04) != 0); - - // bit: 3; mask: 0x03; 0 = ordinary; 1 = Rich-Text - $hasRichText = (($optionFlags & 0x08) != 0); - - if ($hasRichText) { - // number of Rich-Text formatting runs - $formattingRuns = self::getInt2d($recordData, $pos); - $pos += 2; - } - - if ($hasAsian) { - // size of Asian phonetic setting - $extendedRunLength = self::getInt4d($recordData, $pos); - $pos += 4; - } - - // expected byte length of character array if not split - $len = ($isCompressed) ? $numChars : $numChars * 2; - - // look up limit position - foreach ($spliceOffsets as $spliceOffset) { - // it can happen that the string is empty, therefore we need - // <= and not just < - if ($pos <= $spliceOffset) { - $limitpos = $spliceOffset; - break; - } - } - - if ($pos + $len <= $limitpos) { - // character array is not split between records - - $retstr = substr($recordData, $pos, $len); - $pos += $len; - } else { - // character array is split between records - - // first part of character array - $retstr = substr($recordData, $pos, $limitpos - $pos); - - $bytesRead = $limitpos - $pos; - - // remaining characters in Unicode string - $charsLeft = $numChars - (($isCompressed) ? $bytesRead : ($bytesRead / 2)); - - $pos = $limitpos; - - // keep reading the characters - while ($charsLeft > 0) { - // look up next limit position, in case the string span more than one continue record - foreach ($spliceOffsets as $spliceOffset) { - if ($pos < $spliceOffset) { - $limitpos = $spliceOffset; - break; - } - } - - // repeated option flags - // OpenOffice.org documentation 5.21 - $option = ord($recordData{$pos}); - ++$pos; - - if ($isCompressed && ($option == 0)) { - // 1st fragment compressed - // this fragment compressed - $len = min($charsLeft, $limitpos - $pos); - $retstr .= substr($recordData, $pos, $len); - $charsLeft -= $len; - $isCompressed = true; - } elseif (!$isCompressed && ($option != 0)) { - // 1st fragment uncompressed - // this fragment uncompressed - $len = min($charsLeft * 2, $limitpos - $pos); - $retstr .= substr($recordData, $pos, $len); - $charsLeft -= $len / 2; - $isCompressed = false; - } elseif (!$isCompressed && ($option == 0)) { - // 1st fragment uncompressed - // this fragment compressed - $len = min($charsLeft, $limitpos - $pos); - for ($j = 0; $j < $len; ++$j) { - $retstr .= $recordData{$pos + $j} . chr(0); - } - $charsLeft -= $len; - $isCompressed = false; - } else { - // 1st fragment compressed - // this fragment uncompressed - $newstr = ''; - for ($j = 0; $j < strlen($retstr); ++$j) { - $newstr .= $retstr[$j] . chr(0); - } - $retstr = $newstr; - $len = min($charsLeft * 2, $limitpos - $pos); - $retstr .= substr($recordData, $pos, $len); - $charsLeft -= $len / 2; - $isCompressed = false; - } - - $pos += $len; - } - } - - // convert to UTF-8 - $retstr = self::encodeUTF16($retstr, $isCompressed); - - // read additional Rich-Text information, if any - $fmtRuns = array(); - if ($hasRichText) { - // list of formatting runs - for ($j = 0; $j < $formattingRuns; ++$j) { - // first formatted character; zero-based - $charPos = self::getInt2d($recordData, $pos + $j * 4); - - // index to font record - $fontIndex = self::getInt2d($recordData, $pos + 2 + $j * 4); - - $fmtRuns[] = array( - 'charPos' => $charPos, - 'fontIndex' => $fontIndex, - ); - } - $pos += 4 * $formattingRuns; - } - - // read additional Asian phonetics information, if any - if ($hasAsian) { - // For Asian phonetic settings, we skip the extended string data - $pos += $extendedRunLength; - } - - // store the shared sting - $this->sst[] = array( - 'value' => $retstr, - 'fmtRuns' => $fmtRuns, - ); - } - - // getSplicedRecordData() takes care of moving current position in data stream - } - - /** - * Read PRINTGRIDLINES record - */ - private function readPrintGridlines() - { - $length = self::getInt2d($this->data, $this->pos + 2); - $recordData = $this->readRecordData($this->data, $this->pos + 4, $length); - - // move stream pointer to next record - $this->pos += 4 + $length; - - if ($this->version == self::XLS_BIFF8 && !$this->readDataOnly) { - // offset: 0; size: 2; 0 = do not print sheet grid lines; 1 = print sheet gridlines - $printGridlines = (bool) self::getInt2d($recordData, 0); - $this->phpSheet->setPrintGridlines($printGridlines); - } - } - - /** - * Read DEFAULTROWHEIGHT record - */ - private function readDefaultRowHeight() - { - $length = self::getInt2d($this->data, $this->pos + 2); - $recordData = $this->readRecordData($this->data, $this->pos + 4, $length); - - // move stream pointer to next record - $this->pos += 4 + $length; - - // offset: 0; size: 2; option flags - // offset: 2; size: 2; default height for unused rows, (twips 1/20 point) - $height = self::getInt2d($recordData, 2); - $this->phpSheet->getDefaultRowDimension()->setRowHeight($height / 20); - } - - /** - * Read SHEETPR record - */ - private function readSheetPr() - { - $length = self::getInt2d($this->data, $this->pos + 2); - $recordData = $this->readRecordData($this->data, $this->pos + 4, $length); - - // move stream pointer to next record - $this->pos += 4 + $length; - - // offset: 0; size: 2 - - // bit: 6; mask: 0x0040; 0 = outline buttons above outline group - $isSummaryBelow = (0x0040 & self::getInt2d($recordData, 0)) >> 6; - $this->phpSheet->setShowSummaryBelow($isSummaryBelow); - - // bit: 7; mask: 0x0080; 0 = outline buttons left of outline group - $isSummaryRight = (0x0080 & self::getInt2d($recordData, 0)) >> 7; - $this->phpSheet->setShowSummaryRight($isSummaryRight); - - // bit: 8; mask: 0x100; 0 = scale printout in percent, 1 = fit printout to number of pages - // this corresponds to radio button setting in page setup dialog in Excel - $this->isFitToPages = (bool) ((0x0100 & self::getInt2d($recordData, 0)) >> 8); - } - - /** - * Read HORIZONTALPAGEBREAKS record - */ - private function readHorizontalPageBreaks() - { - $length = self::getInt2d($this->data, $this->pos + 2); - $recordData = $this->readRecordData($this->data, $this->pos + 4, $length); - - // move stream pointer to next record - $this->pos += 4 + $length; - - if ($this->version == self::XLS_BIFF8 && !$this->readDataOnly) { - // offset: 0; size: 2; number of the following row index structures - $nm = self::getInt2d($recordData, 0); - - // offset: 2; size: 6 * $nm; list of $nm row index structures - for ($i = 0; $i < $nm; ++$i) { - $r = self::getInt2d($recordData, 2 + 6 * $i); - $cf = self::getInt2d($recordData, 2 + 6 * $i + 2); - $cl = self::getInt2d($recordData, 2 + 6 * $i + 4); - - // not sure why two column indexes are necessary? - $this->phpSheet->setBreakByColumnAndRow($cf, $r, PHPExcel_Worksheet::BREAK_ROW); - } - } - } - - /** - * Read VERTICALPAGEBREAKS record - */ - private function readVerticalPageBreaks() - { - $length = self::getInt2d($this->data, $this->pos + 2); - $recordData = $this->readRecordData($this->data, $this->pos + 4, $length); - - // move stream pointer to next record - $this->pos += 4 + $length; - - if ($this->version == self::XLS_BIFF8 && !$this->readDataOnly) { - // offset: 0; size: 2; number of the following column index structures - $nm = self::getInt2d($recordData, 0); - - // offset: 2; size: 6 * $nm; list of $nm row index structures - for ($i = 0; $i < $nm; ++$i) { - $c = self::getInt2d($recordData, 2 + 6 * $i); - $rf = self::getInt2d($recordData, 2 + 6 * $i + 2); - $rl = self::getInt2d($recordData, 2 + 6 * $i + 4); - - // not sure why two row indexes are necessary? - $this->phpSheet->setBreakByColumnAndRow($c, $rf, PHPExcel_Worksheet::BREAK_COLUMN); - } - } - } - - /** - * Read HEADER record - */ - private function readHeader() - { - $length = self::getInt2d($this->data, $this->pos + 2); - $recordData = $this->readRecordData($this->data, $this->pos + 4, $length); - - // move stream pointer to next record - $this->pos += 4 + $length; - - if (!$this->readDataOnly) { - // offset: 0; size: var - // realized that $recordData can be empty even when record exists - if ($recordData) { - if ($this->version == self::XLS_BIFF8) { - $string = self::readUnicodeStringLong($recordData); - } else { - $string = $this->readByteStringShort($recordData); - } - - $this->phpSheet->getHeaderFooter()->setOddHeader($string['value']); - $this->phpSheet->getHeaderFooter()->setEvenHeader($string['value']); - } - } - } - - /** - * Read FOOTER record - */ - private function readFooter() - { - $length = self::getInt2d($this->data, $this->pos + 2); - $recordData = $this->readRecordData($this->data, $this->pos + 4, $length); - - // move stream pointer to next record - $this->pos += 4 + $length; - - if (!$this->readDataOnly) { - // offset: 0; size: var - // realized that $recordData can be empty even when record exists - if ($recordData) { - if ($this->version == self::XLS_BIFF8) { - $string = self::readUnicodeStringLong($recordData); - } else { - $string = $this->readByteStringShort($recordData); - } - $this->phpSheet->getHeaderFooter()->setOddFooter($string['value']); - $this->phpSheet->getHeaderFooter()->setEvenFooter($string['value']); - } - } - } - - /** - * Read HCENTER record - */ - private function readHcenter() - { - $length = self::getInt2d($this->data, $this->pos + 2); - $recordData = $this->readRecordData($this->data, $this->pos + 4, $length); - - // move stream pointer to next record - $this->pos += 4 + $length; - - if (!$this->readDataOnly) { - // offset: 0; size: 2; 0 = print sheet left aligned, 1 = print sheet centered horizontally - $isHorizontalCentered = (bool) self::getInt2d($recordData, 0); - - $this->phpSheet->getPageSetup()->setHorizontalCentered($isHorizontalCentered); - } - } - - /** - * Read VCENTER record - */ - private function readVcenter() - { - $length = self::getInt2d($this->data, $this->pos + 2); - $recordData = $this->readRecordData($this->data, $this->pos + 4, $length); - - // move stream pointer to next record - $this->pos += 4 + $length; - - if (!$this->readDataOnly) { - // offset: 0; size: 2; 0 = print sheet aligned at top page border, 1 = print sheet vertically centered - $isVerticalCentered = (bool) self::getInt2d($recordData, 0); - - $this->phpSheet->getPageSetup()->setVerticalCentered($isVerticalCentered); - } - } - - /** - * Read LEFTMARGIN record - */ - private function readLeftMargin() - { - $length = self::getInt2d($this->data, $this->pos + 2); - $recordData = $this->readRecordData($this->data, $this->pos + 4, $length); - - // move stream pointer to next record - $this->pos += 4 + $length; - - if (!$this->readDataOnly) { - // offset: 0; size: 8 - $this->phpSheet->getPageMargins()->setLeft(self::extractNumber($recordData)); - } - } - - /** - * Read RIGHTMARGIN record - */ - private function readRightMargin() - { - $length = self::getInt2d($this->data, $this->pos + 2); - $recordData = $this->readRecordData($this->data, $this->pos + 4, $length); - - // move stream pointer to next record - $this->pos += 4 + $length; - - if (!$this->readDataOnly) { - // offset: 0; size: 8 - $this->phpSheet->getPageMargins()->setRight(self::extractNumber($recordData)); - } - } - - /** - * Read TOPMARGIN record - */ - private function readTopMargin() - { - $length = self::getInt2d($this->data, $this->pos + 2); - $recordData = $this->readRecordData($this->data, $this->pos + 4, $length); - - // move stream pointer to next record - $this->pos += 4 + $length; - - if (!$this->readDataOnly) { - // offset: 0; size: 8 - $this->phpSheet->getPageMargins()->setTop(self::extractNumber($recordData)); - } - } - - /** - * Read BOTTOMMARGIN record - */ - private function readBottomMargin() - { - $length = self::getInt2d($this->data, $this->pos + 2); - $recordData = $this->readRecordData($this->data, $this->pos + 4, $length); - - // move stream pointer to next record - $this->pos += 4 + $length; - - if (!$this->readDataOnly) { - // offset: 0; size: 8 - $this->phpSheet->getPageMargins()->setBottom(self::extractNumber($recordData)); - } - } - - /** - * Read PAGESETUP record - */ - private function readPageSetup() - { - $length = self::getInt2d($this->data, $this->pos + 2); - $recordData = $this->readRecordData($this->data, $this->pos + 4, $length); - - // move stream pointer to next record - $this->pos += 4 + $length; - - if (!$this->readDataOnly) { - // offset: 0; size: 2; paper size - $paperSize = self::getInt2d($recordData, 0); - - // offset: 2; size: 2; scaling factor - $scale = self::getInt2d($recordData, 2); - - // offset: 6; size: 2; fit worksheet width to this number of pages, 0 = use as many as needed - $fitToWidth = self::getInt2d($recordData, 6); - - // offset: 8; size: 2; fit worksheet height to this number of pages, 0 = use as many as needed - $fitToHeight = self::getInt2d($recordData, 8); - - // offset: 10; size: 2; option flags - - // bit: 1; mask: 0x0002; 0=landscape, 1=portrait - $isPortrait = (0x0002 & self::getInt2d($recordData, 10)) >> 1; - - // bit: 2; mask: 0x0004; 1= paper size, scaling factor, paper orient. not init - // when this bit is set, do not use flags for those properties - $isNotInit = (0x0004 & self::getInt2d($recordData, 10)) >> 2; - - if (!$isNotInit) { - $this->phpSheet->getPageSetup()->setPaperSize($paperSize); - switch ($isPortrait) { - case 0: - $this->phpSheet->getPageSetup()->setOrientation(PHPExcel_Worksheet_PageSetup::ORIENTATION_LANDSCAPE); - break; - case 1: - $this->phpSheet->getPageSetup()->setOrientation(PHPExcel_Worksheet_PageSetup::ORIENTATION_PORTRAIT); - break; - } - - $this->phpSheet->getPageSetup()->setScale($scale, false); - $this->phpSheet->getPageSetup()->setFitToPage((bool) $this->isFitToPages); - $this->phpSheet->getPageSetup()->setFitToWidth($fitToWidth, false); - $this->phpSheet->getPageSetup()->setFitToHeight($fitToHeight, false); - } - - // offset: 16; size: 8; header margin (IEEE 754 floating-point value) - $marginHeader = self::extractNumber(substr($recordData, 16, 8)); - $this->phpSheet->getPageMargins()->setHeader($marginHeader); - - // offset: 24; size: 8; footer margin (IEEE 754 floating-point value) - $marginFooter = self::extractNumber(substr($recordData, 24, 8)); - $this->phpSheet->getPageMargins()->setFooter($marginFooter); - } - } - - /** - * PROTECT - Sheet protection (BIFF2 through BIFF8) - * if this record is omitted, then it also means no sheet protection - */ - private function readProtect() - { - $length = self::getInt2d($this->data, $this->pos + 2); - $recordData = $this->readRecordData($this->data, $this->pos + 4, $length); - - // move stream pointer to next record - $this->pos += 4 + $length; - - if ($this->readDataOnly) { - return; - } - - // offset: 0; size: 2; - - // bit 0, mask 0x01; 1 = sheet is protected - $bool = (0x01 & self::getInt2d($recordData, 0)) >> 0; - $this->phpSheet->getProtection()->setSheet((bool)$bool); - } - - /** - * SCENPROTECT - */ - private function readScenProtect() - { - $length = self::getInt2d($this->data, $this->pos + 2); - $recordData = $this->readRecordData($this->data, $this->pos + 4, $length); - - // move stream pointer to next record - $this->pos += 4 + $length; - - if ($this->readDataOnly) { - return; - } - - // offset: 0; size: 2; - - // bit: 0, mask 0x01; 1 = scenarios are protected - $bool = (0x01 & self::getInt2d($recordData, 0)) >> 0; - - $this->phpSheet->getProtection()->setScenarios((bool)$bool); - } - - /** - * OBJECTPROTECT - */ - private function readObjectProtect() - { - $length = self::getInt2d($this->data, $this->pos + 2); - $recordData = $this->readRecordData($this->data, $this->pos + 4, $length); - - // move stream pointer to next record - $this->pos += 4 + $length; - - if ($this->readDataOnly) { - return; - } - - // offset: 0; size: 2; - - // bit: 0, mask 0x01; 1 = objects are protected - $bool = (0x01 & self::getInt2d($recordData, 0)) >> 0; - - $this->phpSheet->getProtection()->setObjects((bool)$bool); - } - - /** - * PASSWORD - Sheet protection (hashed) password (BIFF2 through BIFF8) - */ - private function readPassword() - { - $length = self::getInt2d($this->data, $this->pos + 2); - $recordData = $this->readRecordData($this->data, $this->pos + 4, $length); - - // move stream pointer to next record - $this->pos += 4 + $length; - - if (!$this->readDataOnly) { - // offset: 0; size: 2; 16-bit hash value of password - $password = strtoupper(dechex(self::getInt2d($recordData, 0))); // the hashed password - $this->phpSheet->getProtection()->setPassword($password, true); - } - } - - /** - * Read DEFCOLWIDTH record - */ - private function readDefColWidth() - { - $length = self::getInt2d($this->data, $this->pos + 2); - $recordData = $this->readRecordData($this->data, $this->pos + 4, $length); - - // move stream pointer to next record - $this->pos += 4 + $length; - - // offset: 0; size: 2; default column width - $width = self::getInt2d($recordData, 0); - if ($width != 8) { - $this->phpSheet->getDefaultColumnDimension()->setWidth($width); - } - } - - /** - * Read COLINFO record - */ - private function readColInfo() - { - $length = self::getInt2d($this->data, $this->pos + 2); - $recordData = $this->readRecordData($this->data, $this->pos + 4, $length); - - // move stream pointer to next record - $this->pos += 4 + $length; - - if (!$this->readDataOnly) { - // offset: 0; size: 2; index to first column in range - $fc = self::getInt2d($recordData, 0); // first column index - - // offset: 2; size: 2; index to last column in range - $lc = self::getInt2d($recordData, 2); // first column index - - // offset: 4; size: 2; width of the column in 1/256 of the width of the zero character - $width = self::getInt2d($recordData, 4); - - // offset: 6; size: 2; index to XF record for default column formatting - $xfIndex = self::getInt2d($recordData, 6); - - // offset: 8; size: 2; option flags - // bit: 0; mask: 0x0001; 1= columns are hidden - $isHidden = (0x0001 & self::getInt2d($recordData, 8)) >> 0; - - // bit: 10-8; mask: 0x0700; outline level of the columns (0 = no outline) - $level = (0x0700 & self::getInt2d($recordData, 8)) >> 8; - - // bit: 12; mask: 0x1000; 1 = collapsed - $isCollapsed = (0x1000 & self::getInt2d($recordData, 8)) >> 12; - - // offset: 10; size: 2; not used - - for ($i = $fc; $i <= $lc; ++$i) { - if ($lc == 255 || $lc == 256) { - $this->phpSheet->getDefaultColumnDimension()->setWidth($width / 256); - break; - } - $this->phpSheet->getColumnDimensionByColumn($i)->setWidth($width / 256); - $this->phpSheet->getColumnDimensionByColumn($i)->setVisible(!$isHidden); - $this->phpSheet->getColumnDimensionByColumn($i)->setOutlineLevel($level); - $this->phpSheet->getColumnDimensionByColumn($i)->setCollapsed($isCollapsed); - $this->phpSheet->getColumnDimensionByColumn($i)->setXfIndex($this->mapCellXfIndex[$xfIndex]); - } - } - } - - /** - * ROW - * - * This record contains the properties of a single row in a - * sheet. Rows and cells in a sheet are divided into blocks - * of 32 rows. - * - * -- "OpenOffice.org's Documentation of the Microsoft - * Excel File Format" - */ - private function readRow() - { - $length = self::getInt2d($this->data, $this->pos + 2); - $recordData = $this->readRecordData($this->data, $this->pos + 4, $length); - - // move stream pointer to next record - $this->pos += 4 + $length; - - if (!$this->readDataOnly) { - // offset: 0; size: 2; index of this row - $r = self::getInt2d($recordData, 0); - - // offset: 2; size: 2; index to column of the first cell which is described by a cell record - - // offset: 4; size: 2; index to column of the last cell which is described by a cell record, increased by 1 - - // offset: 6; size: 2; - - // bit: 14-0; mask: 0x7FFF; height of the row, in twips = 1/20 of a point - $height = (0x7FFF & self::getInt2d($recordData, 6)) >> 0; - - // bit: 15: mask: 0x8000; 0 = row has custom height; 1= row has default height - $useDefaultHeight = (0x8000 & self::getInt2d($recordData, 6)) >> 15; - - if (!$useDefaultHeight) { - $this->phpSheet->getRowDimension($r + 1)->setRowHeight($height / 20); - } - - // offset: 8; size: 2; not used - - // offset: 10; size: 2; not used in BIFF5-BIFF8 - - // offset: 12; size: 4; option flags and default row formatting - - // bit: 2-0: mask: 0x00000007; outline level of the row - $level = (0x00000007 & self::getInt4d($recordData, 12)) >> 0; - $this->phpSheet->getRowDimension($r + 1)->setOutlineLevel($level); - - // bit: 4; mask: 0x00000010; 1 = outline group start or ends here... and is collapsed - $isCollapsed = (0x00000010 & self::getInt4d($recordData, 12)) >> 4; - $this->phpSheet->getRowDimension($r + 1)->setCollapsed($isCollapsed); - - // bit: 5; mask: 0x00000020; 1 = row is hidden - $isHidden = (0x00000020 & self::getInt4d($recordData, 12)) >> 5; - $this->phpSheet->getRowDimension($r + 1)->setVisible(!$isHidden); - - // bit: 7; mask: 0x00000080; 1 = row has explicit format - $hasExplicitFormat = (0x00000080 & self::getInt4d($recordData, 12)) >> 7; - - // bit: 27-16; mask: 0x0FFF0000; only applies when hasExplicitFormat = 1; index to XF record - $xfIndex = (0x0FFF0000 & self::getInt4d($recordData, 12)) >> 16; - - if ($hasExplicitFormat) { - $this->phpSheet->getRowDimension($r + 1)->setXfIndex($this->mapCellXfIndex[$xfIndex]); - } - } - } - - /** - * Read RK record - * This record represents a cell that contains an RK value - * (encoded integer or floating-point value). If a - * floating-point value cannot be encoded to an RK value, - * a NUMBER record will be written. This record replaces the - * record INTEGER written in BIFF2. - * - * -- "OpenOffice.org's Documentation of the Microsoft - * Excel File Format" - */ - private function readRk() - { - $length = self::getInt2d($this->data, $this->pos + 2); - $recordData = $this->readRecordData($this->data, $this->pos + 4, $length); - - // move stream pointer to next record - $this->pos += 4 + $length; - - // offset: 0; size: 2; index to row - $row = self::getInt2d($recordData, 0); - - // offset: 2; size: 2; index to column - $column = self::getInt2d($recordData, 2); - $columnString = PHPExcel_Cell::stringFromColumnIndex($column); - - // Read cell? - if (($this->getReadFilter() !== null) && $this->getReadFilter()->readCell($columnString, $row + 1, $this->phpSheet->getTitle())) { - // offset: 4; size: 2; index to XF record - $xfIndex = self::getInt2d($recordData, 4); - - // offset: 6; size: 4; RK value - $rknum = self::getInt4d($recordData, 6); - $numValue = self::getIEEE754($rknum); - - $cell = $this->phpSheet->getCell($columnString . ($row + 1)); - if (!$this->readDataOnly) { - // add style information - $cell->setXfIndex($this->mapCellXfIndex[$xfIndex]); - } - - // add cell - $cell->setValueExplicit($numValue, PHPExcel_Cell_DataType::TYPE_NUMERIC); - } - } - - private static function getIEEE754($rknum) - { - if (($rknum & 0x02) != 0) { - $value = $rknum >> 2; - } else { - // changes by mmp, info on IEEE754 encoding from - // research.microsoft.com/~hollasch/cgindex/coding/ieeefloat.html - // The RK format calls for using only the most significant 30 bits - // of the 64 bit floating point value. The other 34 bits are assumed - // to be 0 so we use the upper 30 bits of $rknum as follows... - $sign = ($rknum & 0x80000000) >> 31; - $exp = ($rknum & 0x7ff00000) >> 20; - $mantissa = (0x100000 | ($rknum & 0x000ffffc)); - $value = $mantissa / pow(2, (20- ($exp - 1023))); - if ($sign) { - $value = -1 * $value; - } - //end of changes by mmp - } - if (($rknum & 0x01) != 0) { - $value /= 100; - } - return $value; - } - - /** - * Read LABELSST record - * This record represents a cell that contains a string. It - * replaces the LABEL record and RSTRING record used in - * BIFF2-BIFF5. - * - * -- "OpenOffice.org's Documentation of the Microsoft - * Excel File Format" - */ - private function readLabelSst() - { - $length = self::getInt2d($this->data, $this->pos + 2); - $recordData = $this->readRecordData($this->data, $this->pos + 4, $length); - - // move stream pointer to next record - $this->pos += 4 + $length; - - // offset: 0; size: 2; index to row - $row = self::getInt2d($recordData, 0); - - // offset: 2; size: 2; index to column - $column = self::getInt2d($recordData, 2); - $columnString = PHPExcel_Cell::stringFromColumnIndex($column); - - $emptyCell = true; - // Read cell? - if (($this->getReadFilter() !== null) && $this->getReadFilter()->readCell($columnString, $row + 1, $this->phpSheet->getTitle())) { - // offset: 4; size: 2; index to XF record - $xfIndex = self::getInt2d($recordData, 4); - - // offset: 6; size: 4; index to SST record - $index = self::getInt4d($recordData, 6); - - // add cell - if (($fmtRuns = $this->sst[$index]['fmtRuns']) && !$this->readDataOnly) { - // then we should treat as rich text - $richText = new PHPExcel_RichText(); - $charPos = 0; - $sstCount = count($this->sst[$index]['fmtRuns']); - for ($i = 0; $i <= $sstCount; ++$i) { - if (isset($fmtRuns[$i])) { - $text = PHPExcel_Shared_String::Substring($this->sst[$index]['value'], $charPos, $fmtRuns[$i]['charPos'] - $charPos); - $charPos = $fmtRuns[$i]['charPos']; - } else { - $text = PHPExcel_Shared_String::Substring($this->sst[$index]['value'], $charPos, PHPExcel_Shared_String::CountCharacters($this->sst[$index]['value'])); - } - - if (PHPExcel_Shared_String::CountCharacters($text) > 0) { - if ($i == 0) { // first text run, no style - $richText->createText($text); - } else { - $textRun = $richText->createTextRun($text); - if (isset($fmtRuns[$i - 1])) { - if ($fmtRuns[$i - 1]['fontIndex'] < 4) { - $fontIndex = $fmtRuns[$i - 1]['fontIndex']; - } else { - // this has to do with that index 4 is omitted in all BIFF versions for some strange reason - // check the OpenOffice documentation of the FONT record - $fontIndex = $fmtRuns[$i - 1]['fontIndex'] - 1; - } - $textRun->setFont(clone $this->objFonts[$fontIndex]); - } - } - } - } - if ($this->readEmptyCells || trim($richText->getPlainText()) !== '') { - $cell = $this->phpSheet->getCell($columnString . ($row + 1)); - $cell->setValueExplicit($richText, PHPExcel_Cell_DataType::TYPE_STRING); - $emptyCell = false; - } - } else { - if ($this->readEmptyCells || trim($this->sst[$index]['value']) !== '') { - $cell = $this->phpSheet->getCell($columnString . ($row + 1)); - $cell->setValueExplicit($this->sst[$index]['value'], PHPExcel_Cell_DataType::TYPE_STRING); - $emptyCell = false; - } - } - - if (!$this->readDataOnly && !$emptyCell) { - // add style information - $cell->setXfIndex($this->mapCellXfIndex[$xfIndex]); - } - } - } - - /** - * Read MULRK record - * This record represents a cell range containing RK value - * cells. All cells are located in the same row. - * - * -- "OpenOffice.org's Documentation of the Microsoft - * Excel File Format" - */ - private function readMulRk() - { - $length = self::getInt2d($this->data, $this->pos + 2); - $recordData = $this->readRecordData($this->data, $this->pos + 4, $length); - - // move stream pointer to next record - $this->pos += 4 + $length; - - // offset: 0; size: 2; index to row - $row = self::getInt2d($recordData, 0); - - // offset: 2; size: 2; index to first column - $colFirst = self::getInt2d($recordData, 2); - - // offset: var; size: 2; index to last column - $colLast = self::getInt2d($recordData, $length - 2); - $columns = $colLast - $colFirst + 1; - - // offset within record data - $offset = 4; - - for ($i = 0; $i < $columns; ++$i) { - $columnString = PHPExcel_Cell::stringFromColumnIndex($colFirst + $i); - - // Read cell? - if (($this->getReadFilter() !== null) && $this->getReadFilter()->readCell($columnString, $row + 1, $this->phpSheet->getTitle())) { - // offset: var; size: 2; index to XF record - $xfIndex = self::getInt2d($recordData, $offset); - - // offset: var; size: 4; RK value - $numValue = self::getIEEE754(self::getInt4d($recordData, $offset + 2)); - $cell = $this->phpSheet->getCell($columnString . ($row + 1)); - if (!$this->readDataOnly) { - // add style - $cell->setXfIndex($this->mapCellXfIndex[$xfIndex]); - } - - // add cell value - $cell->setValueExplicit($numValue, PHPExcel_Cell_DataType::TYPE_NUMERIC); - } - - $offset += 6; - } - } - - /** - * Read NUMBER record - * This record represents a cell that contains a - * floating-point value. - * - * -- "OpenOffice.org's Documentation of the Microsoft - * Excel File Format" - */ - private function readNumber() - { - $length = self::getInt2d($this->data, $this->pos + 2); - $recordData = $this->readRecordData($this->data, $this->pos + 4, $length); - - // move stream pointer to next record - $this->pos += 4 + $length; - - // offset: 0; size: 2; index to row - $row = self::getInt2d($recordData, 0); - - // offset: 2; size 2; index to column - $column = self::getInt2d($recordData, 2); - $columnString = PHPExcel_Cell::stringFromColumnIndex($column); - - // Read cell? - if (($this->getReadFilter() !== null) && $this->getReadFilter()->readCell($columnString, $row + 1, $this->phpSheet->getTitle())) { - // offset 4; size: 2; index to XF record - $xfIndex = self::getInt2d($recordData, 4); - - $numValue = self::extractNumber(substr($recordData, 6, 8)); - - $cell = $this->phpSheet->getCell($columnString . ($row + 1)); - if (!$this->readDataOnly) { - // add cell style - $cell->setXfIndex($this->mapCellXfIndex[$xfIndex]); - } - - // add cell value - $cell->setValueExplicit($numValue, PHPExcel_Cell_DataType::TYPE_NUMERIC); - } - } - - /** - * Read FORMULA record + perhaps a following STRING record if formula result is a string - * This record contains the token array and the result of a - * formula cell. - * - * -- "OpenOffice.org's Documentation of the Microsoft - * Excel File Format" - */ - private function readFormula() - { - $length = self::getInt2d($this->data, $this->pos + 2); - $recordData = $this->readRecordData($this->data, $this->pos + 4, $length); - - // move stream pointer to next record - $this->pos += 4 + $length; - - // offset: 0; size: 2; row index - $row = self::getInt2d($recordData, 0); - - // offset: 2; size: 2; col index - $column = self::getInt2d($recordData, 2); - $columnString = PHPExcel_Cell::stringFromColumnIndex($column); - - // offset: 20: size: variable; formula structure - $formulaStructure = substr($recordData, 20); - - // offset: 14: size: 2; option flags, recalculate always, recalculate on open etc. - $options = self::getInt2d($recordData, 14); - - // bit: 0; mask: 0x0001; 1 = recalculate always - // bit: 1; mask: 0x0002; 1 = calculate on open - // bit: 2; mask: 0x0008; 1 = part of a shared formula - $isPartOfSharedFormula = (bool) (0x0008 & $options); - - // WARNING: - // We can apparently not rely on $isPartOfSharedFormula. Even when $isPartOfSharedFormula = true - // the formula data may be ordinary formula data, therefore we need to check - // explicitly for the tExp token (0x01) - $isPartOfSharedFormula = $isPartOfSharedFormula && ord($formulaStructure{2}) == 0x01; - - if ($isPartOfSharedFormula) { - // part of shared formula which means there will be a formula with a tExp token and nothing else - // get the base cell, grab tExp token - $baseRow = self::getInt2d($formulaStructure, 3); - $baseCol = self::getInt2d($formulaStructure, 5); - $this->_baseCell = PHPExcel_Cell::stringFromColumnIndex($baseCol). ($baseRow + 1); - } - - // Read cell? - if (($this->getReadFilter() !== null) && $this->getReadFilter()->readCell($columnString, $row + 1, $this->phpSheet->getTitle())) { - if ($isPartOfSharedFormula) { - // formula is added to this cell after the sheet has been read - $this->sharedFormulaParts[$columnString . ($row + 1)] = $this->_baseCell; - } - - // offset: 16: size: 4; not used - - // offset: 4; size: 2; XF index - $xfIndex = self::getInt2d($recordData, 4); - - // offset: 6; size: 8; result of the formula - if ((ord($recordData{6}) == 0) && (ord($recordData{12}) == 255) && (ord($recordData{13}) == 255)) { - // String formula. Result follows in appended STRING record - $dataType = PHPExcel_Cell_DataType::TYPE_STRING; - - // read possible SHAREDFMLA record - $code = self::getInt2d($this->data, $this->pos); - if ($code == self::XLS_TYPE_SHAREDFMLA) { - $this->readSharedFmla(); - } - - // read STRING record - $value = $this->readString(); - } elseif ((ord($recordData{6}) == 1) - && (ord($recordData{12}) == 255) - && (ord($recordData{13}) == 255)) { - // Boolean formula. Result is in +2; 0=false, 1=true - $dataType = PHPExcel_Cell_DataType::TYPE_BOOL; - $value = (bool) ord($recordData{8}); - } elseif ((ord($recordData{6}) == 2) - && (ord($recordData{12}) == 255) - && (ord($recordData{13}) == 255)) { - // Error formula. Error code is in +2 - $dataType = PHPExcel_Cell_DataType::TYPE_ERROR; - $value = PHPExcel_Reader_Excel5_ErrorCode::lookup(ord($recordData{8})); - } elseif ((ord($recordData{6}) == 3) - && (ord($recordData{12}) == 255) - && (ord($recordData{13}) == 255)) { - // Formula result is a null string - $dataType = PHPExcel_Cell_DataType::TYPE_NULL; - $value = ''; - } else { - // forumla result is a number, first 14 bytes like _NUMBER record - $dataType = PHPExcel_Cell_DataType::TYPE_NUMERIC; - $value = self::extractNumber(substr($recordData, 6, 8)); - } - - $cell = $this->phpSheet->getCell($columnString . ($row + 1)); - if (!$this->readDataOnly) { - // add cell style - $cell->setXfIndex($this->mapCellXfIndex[$xfIndex]); - } - - // store the formula - if (!$isPartOfSharedFormula) { - // not part of shared formula - // add cell value. If we can read formula, populate with formula, otherwise just used cached value - try { - if ($this->version != self::XLS_BIFF8) { - throw new PHPExcel_Reader_Exception('Not BIFF8. Can only read BIFF8 formulas'); - } - $formula = $this->getFormulaFromStructure($formulaStructure); // get formula in human language - $cell->setValueExplicit('=' . $formula, PHPExcel_Cell_DataType::TYPE_FORMULA); - - } catch (PHPExcel_Exception $e) { - $cell->setValueExplicit($value, $dataType); - } - } else { - if ($this->version == self::XLS_BIFF8) { - // do nothing at this point, formula id added later in the code - } else { - $cell->setValueExplicit($value, $dataType); - } - } - - // store the cached calculated value - $cell->setCalculatedValue($value); - } - } - - /** - * Read a SHAREDFMLA record. This function just stores the binary shared formula in the reader, - * which usually contains relative references. - * These will be used to construct the formula in each shared formula part after the sheet is read. - */ - private function readSharedFmla() - { - $length = self::getInt2d($this->data, $this->pos + 2); - $recordData = $this->readRecordData($this->data, $this->pos + 4, $length); - - // move stream pointer to next record - $this->pos += 4 + $length; - - // offset: 0, size: 6; cell range address of the area used by the shared formula, not used for anything - $cellRange = substr($recordData, 0, 6); - $cellRange = $this->readBIFF5CellRangeAddressFixed($cellRange); // note: even BIFF8 uses BIFF5 syntax - - // offset: 6, size: 1; not used - - // offset: 7, size: 1; number of existing FORMULA records for this shared formula - $no = ord($recordData{7}); - - // offset: 8, size: var; Binary token array of the shared formula - $formula = substr($recordData, 8); - - // at this point we only store the shared formula for later use - $this->sharedFormulas[$this->_baseCell] = $formula; - } - - /** - * Reads a cell range address in BIFF5 e.g. 'A2:B6' or 'A1' - * always fixed range - * section 2.5.14 - * - * @param string $subData - * @return string - * @throws PHPExcel_Reader_Exception - */ - private function readBIFF5CellRangeAddressFixed($subData) - { - // offset: 0; size: 2; index to first row - $fr = self::getInt2d($subData, 0) + 1; - - // offset: 2; size: 2; index to last row - $lr = self::getInt2d($subData, 2) + 1; - - // offset: 4; size: 1; index to first column - $fc = ord($subData{4}); - - // offset: 5; size: 1; index to last column - $lc = ord($subData{5}); - - // check values - if ($fr > $lr || $fc > $lc) { - throw new PHPExcel_Reader_Exception('Not a cell range address'); - } - - // column index to letter - $fc = PHPExcel_Cell::stringFromColumnIndex($fc); - $lc = PHPExcel_Cell::stringFromColumnIndex($lc); - - if ($fr == $lr and $fc == $lc) { - return "$fc$fr"; - } - return "$fc$fr:$lc$lr"; - } - - /** - * Read a STRING record from current stream position and advance the stream pointer to next record - * This record is used for storing result from FORMULA record when it is a string, and - * it occurs directly after the FORMULA record - * - * @return string The string contents as UTF-8 - */ - private function readString() - { - $length = self::getInt2d($this->data, $this->pos + 2); - $recordData = $this->readRecordData($this->data, $this->pos + 4, $length); - - // move stream pointer to next record - $this->pos += 4 + $length; - - if ($this->version == self::XLS_BIFF8) { - $string = self::readUnicodeStringLong($recordData); - $value = $string['value']; - } else { - $string = $this->readByteStringLong($recordData); - $value = $string['value']; - } - - return $value; - } - - /** - * Read byte string (16-bit string length) - * OpenOffice documentation: 2.5.2 - * - * @param string $subData - * @return array - */ - private function readByteStringLong($subData) - { - // offset: 0; size: 2; length of the string (character count) - $ln = self::getInt2d($subData, 0); - - // offset: 2: size: var; character array (8-bit characters) - $value = $this->decodeCodepage(substr($subData, 2)); - - //return $string; - return array( - 'value' => $value, - 'size' => 2 + $ln, // size in bytes of data structure - ); - } - - /** - * Read BOOLERR record - * This record represents a Boolean value or error value - * cell. - * - * -- "OpenOffice.org's Documentation of the Microsoft - * Excel File Format" - */ - private function readBoolErr() - { - $length = self::getInt2d($this->data, $this->pos + 2); - $recordData = $this->readRecordData($this->data, $this->pos + 4, $length); - - // move stream pointer to next record - $this->pos += 4 + $length; - - // offset: 0; size: 2; row index - $row = self::getInt2d($recordData, 0); - - // offset: 2; size: 2; column index - $column = self::getInt2d($recordData, 2); - $columnString = PHPExcel_Cell::stringFromColumnIndex($column); - - // Read cell? - if (($this->getReadFilter() !== null) && $this->getReadFilter()->readCell($columnString, $row + 1, $this->phpSheet->getTitle())) { - // offset: 4; size: 2; index to XF record - $xfIndex = self::getInt2d($recordData, 4); - - // offset: 6; size: 1; the boolean value or error value - $boolErr = ord($recordData{6}); - - // offset: 7; size: 1; 0=boolean; 1=error - $isError = ord($recordData{7}); - - $cell = $this->phpSheet->getCell($columnString . ($row + 1)); - switch ($isError) { - case 0: // boolean - $value = (bool) $boolErr; - - // add cell value - $cell->setValueExplicit($value, PHPExcel_Cell_DataType::TYPE_BOOL); - break; - case 1: // error type - $value = PHPExcel_Reader_Excel5_ErrorCode::lookup($boolErr); - - // add cell value - $cell->setValueExplicit($value, PHPExcel_Cell_DataType::TYPE_ERROR); - break; - } - - if (!$this->readDataOnly) { - // add cell style - $cell->setXfIndex($this->mapCellXfIndex[$xfIndex]); - } - } - } - - /** - * Read MULBLANK record - * This record represents a cell range of empty cells. All - * cells are located in the same row - * - * -- "OpenOffice.org's Documentation of the Microsoft - * Excel File Format" - */ - private function readMulBlank() - { - $length = self::getInt2d($this->data, $this->pos + 2); - $recordData = $this->readRecordData($this->data, $this->pos + 4, $length); - - // move stream pointer to next record - $this->pos += 4 + $length; - - // offset: 0; size: 2; index to row - $row = self::getInt2d($recordData, 0); - - // offset: 2; size: 2; index to first column - $fc = self::getInt2d($recordData, 2); - - // offset: 4; size: 2 x nc; list of indexes to XF records - // add style information - if (!$this->readDataOnly && $this->readEmptyCells) { - for ($i = 0; $i < $length / 2 - 3; ++$i) { - $columnString = PHPExcel_Cell::stringFromColumnIndex($fc + $i); - - // Read cell? - if (($this->getReadFilter() !== null) && $this->getReadFilter()->readCell($columnString, $row + 1, $this->phpSheet->getTitle())) { - $xfIndex = self::getInt2d($recordData, 4 + 2 * $i); - $this->phpSheet->getCell($columnString . ($row + 1))->setXfIndex($this->mapCellXfIndex[$xfIndex]); - } - } - } - - // offset: 6; size 2; index to last column (not needed) - } - - /** - * Read LABEL record - * This record represents a cell that contains a string. In - * BIFF8 it is usually replaced by the LABELSST record. - * Excel still uses this record, if it copies unformatted - * text cells to the clipboard. - * - * -- "OpenOffice.org's Documentation of the Microsoft - * Excel File Format" - */ - private function readLabel() - { - $length = self::getInt2d($this->data, $this->pos + 2); - $recordData = $this->readRecordData($this->data, $this->pos + 4, $length); - - // move stream pointer to next record - $this->pos += 4 + $length; - - // offset: 0; size: 2; index to row - $row = self::getInt2d($recordData, 0); - - // offset: 2; size: 2; index to column - $column = self::getInt2d($recordData, 2); - $columnString = PHPExcel_Cell::stringFromColumnIndex($column); - - // Read cell? - if (($this->getReadFilter() !== null) && $this->getReadFilter()->readCell($columnString, $row + 1, $this->phpSheet->getTitle())) { - // offset: 4; size: 2; XF index - $xfIndex = self::getInt2d($recordData, 4); - - // add cell value - // todo: what if string is very long? continue record - if ($this->version == self::XLS_BIFF8) { - $string = self::readUnicodeStringLong(substr($recordData, 6)); - $value = $string['value']; - } else { - $string = $this->readByteStringLong(substr($recordData, 6)); - $value = $string['value']; - } - if ($this->readEmptyCells || trim($value) !== '') { - $cell = $this->phpSheet->getCell($columnString . ($row + 1)); - $cell->setValueExplicit($value, PHPExcel_Cell_DataType::TYPE_STRING); - - if (!$this->readDataOnly) { - // add cell style - $cell->setXfIndex($this->mapCellXfIndex[$xfIndex]); - } - } - } - } - - /** - * Read BLANK record - */ - private function readBlank() - { - $length = self::getInt2d($this->data, $this->pos + 2); - $recordData = $this->readRecordData($this->data, $this->pos + 4, $length); - - // move stream pointer to next record - $this->pos += 4 + $length; - - // offset: 0; size: 2; row index - $row = self::getInt2d($recordData, 0); - - // offset: 2; size: 2; col index - $col = self::getInt2d($recordData, 2); - $columnString = PHPExcel_Cell::stringFromColumnIndex($col); - - // Read cell? - if (($this->getReadFilter() !== null) && $this->getReadFilter()->readCell($columnString, $row + 1, $this->phpSheet->getTitle())) { - // offset: 4; size: 2; XF index - $xfIndex = self::getInt2d($recordData, 4); - - // add style information - if (!$this->readDataOnly && $this->readEmptyCells) { - $this->phpSheet->getCell($columnString . ($row + 1))->setXfIndex($this->mapCellXfIndex[$xfIndex]); - } - } - } - - /** - * Read MSODRAWING record - */ - private function readMsoDrawing() - { - $length = self::getInt2d($this->data, $this->pos + 2); - - // get spliced record data - $splicedRecordData = $this->getSplicedRecordData(); - $recordData = $splicedRecordData['recordData']; - - $this->drawingData .= $recordData; - } - - /** - * Read OBJ record - */ - private function readObj() - { - $length = self::getInt2d($this->data, $this->pos + 2); - $recordData = $this->readRecordData($this->data, $this->pos + 4, $length); - - // move stream pointer to next record - $this->pos += 4 + $length; - - if ($this->readDataOnly || $this->version != self::XLS_BIFF8) { - return; - } - - // recordData consists of an array of subrecords looking like this: - // ft: 2 bytes; ftCmo type (0x15) - // cb: 2 bytes; size in bytes of ftCmo data - // ot: 2 bytes; Object Type - // id: 2 bytes; Object id number - // grbit: 2 bytes; Option Flags - // data: var; subrecord data - - // for now, we are just interested in the second subrecord containing the object type - $ftCmoType = self::getInt2d($recordData, 0); - $cbCmoSize = self::getInt2d($recordData, 2); - $otObjType = self::getInt2d($recordData, 4); - $idObjID = self::getInt2d($recordData, 6); - $grbitOpts = self::getInt2d($recordData, 6); - - $this->objs[] = array( - 'ftCmoType' => $ftCmoType, - 'cbCmoSize' => $cbCmoSize, - 'otObjType' => $otObjType, - 'idObjID' => $idObjID, - 'grbitOpts' => $grbitOpts - ); - $this->textObjRef = $idObjID; - -// echo '<b>_readObj()</b><br />'; -// var_dump(end($this->objs)); -// echo '<br />'; - } - - /** - * Read WINDOW2 record - */ - private function readWindow2() - { - $length = self::getInt2d($this->data, $this->pos + 2); - $recordData = $this->readRecordData($this->data, $this->pos + 4, $length); - - // move stream pointer to next record - $this->pos += 4 + $length; - - // offset: 0; size: 2; option flags - $options = self::getInt2d($recordData, 0); - - // offset: 2; size: 2; index to first visible row - $firstVisibleRow = self::getInt2d($recordData, 2); - - // offset: 4; size: 2; index to first visible colum - $firstVisibleColumn = self::getInt2d($recordData, 4); - if ($this->version === self::XLS_BIFF8) { - // offset: 8; size: 2; not used - // offset: 10; size: 2; cached magnification factor in page break preview (in percent); 0 = Default (60%) - // offset: 12; size: 2; cached magnification factor in normal view (in percent); 0 = Default (100%) - // offset: 14; size: 4; not used - $zoomscaleInPageBreakPreview = self::getInt2d($recordData, 10); - if ($zoomscaleInPageBreakPreview === 0) { - $zoomscaleInPageBreakPreview = 60; - } - $zoomscaleInNormalView = self::getInt2d($recordData, 12); - if ($zoomscaleInNormalView === 0) { - $zoomscaleInNormalView = 100; - } - } - - // bit: 1; mask: 0x0002; 0 = do not show gridlines, 1 = show gridlines - $showGridlines = (bool) ((0x0002 & $options) >> 1); - $this->phpSheet->setShowGridlines($showGridlines); - - // bit: 2; mask: 0x0004; 0 = do not show headers, 1 = show headers - $showRowColHeaders = (bool) ((0x0004 & $options) >> 2); - $this->phpSheet->setShowRowColHeaders($showRowColHeaders); - - // bit: 3; mask: 0x0008; 0 = panes are not frozen, 1 = panes are frozen - $this->frozen = (bool) ((0x0008 & $options) >> 3); - - // bit: 6; mask: 0x0040; 0 = columns from left to right, 1 = columns from right to left - $this->phpSheet->setRightToLeft((bool)((0x0040 & $options) >> 6)); - - // bit: 10; mask: 0x0400; 0 = sheet not active, 1 = sheet active - $isActive = (bool) ((0x0400 & $options) >> 10); - if ($isActive) { - $this->phpExcel->setActiveSheetIndex($this->phpExcel->getIndex($this->phpSheet)); - } - - // bit: 11; mask: 0x0800; 0 = normal view, 1 = page break view - $isPageBreakPreview = (bool) ((0x0800 & $options) >> 11); - - //FIXME: set $firstVisibleRow and $firstVisibleColumn - - if ($this->phpSheet->getSheetView()->getView() !== PHPExcel_Worksheet_SheetView::SHEETVIEW_PAGE_LAYOUT) { - //NOTE: this setting is inferior to page layout view(Excel2007-) - $view = $isPageBreakPreview ? PHPExcel_Worksheet_SheetView::SHEETVIEW_PAGE_BREAK_PREVIEW : PHPExcel_Worksheet_SheetView::SHEETVIEW_NORMAL; - $this->phpSheet->getSheetView()->setView($view); - if ($this->version === self::XLS_BIFF8) { - $zoomScale = $isPageBreakPreview ? $zoomscaleInPageBreakPreview : $zoomscaleInNormalView; - $this->phpSheet->getSheetView()->setZoomScale($zoomScale); - $this->phpSheet->getSheetView()->setZoomScaleNormal($zoomscaleInNormalView); - } - } - } - - /** - * Read PLV Record(Created by Excel2007 or upper) - */ - private function readPageLayoutView() - { - $length = self::getInt2d($this->data, $this->pos + 2); - $recordData = $this->readRecordData($this->data, $this->pos + 4, $length); - - // move stream pointer to next record - $this->pos += 4 + $length; - - //var_dump(unpack("vrt/vgrbitFrt/V2reserved/vwScalePLV/vgrbit", $recordData)); - - // offset: 0; size: 2; rt - //->ignore - $rt = self::getInt2d($recordData, 0); - // offset: 2; size: 2; grbitfr - //->ignore - $grbitFrt = self::getInt2d($recordData, 2); - // offset: 4; size: 8; reserved - //->ignore - - // offset: 12; size 2; zoom scale - $wScalePLV = self::getInt2d($recordData, 12); - // offset: 14; size 2; grbit - $grbit = self::getInt2d($recordData, 14); - - // decomprise grbit - $fPageLayoutView = $grbit & 0x01; - $fRulerVisible = ($grbit >> 1) & 0x01; //no support - $fWhitespaceHidden = ($grbit >> 3) & 0x01; //no support - - if ($fPageLayoutView === 1) { - $this->phpSheet->getSheetView()->setView(PHPExcel_Worksheet_SheetView::SHEETVIEW_PAGE_LAYOUT); - $this->phpSheet->getSheetView()->setZoomScale($wScalePLV); //set by Excel2007 only if SHEETVIEW_PAGE_LAYOUT - } - //otherwise, we cannot know whether SHEETVIEW_PAGE_LAYOUT or SHEETVIEW_PAGE_BREAK_PREVIEW. - } - - /** - * Read SCL record - */ - private function readScl() - { - $length = self::getInt2d($this->data, $this->pos + 2); - $recordData = $this->readRecordData($this->data, $this->pos + 4, $length); - - // move stream pointer to next record - $this->pos += 4 + $length; - - // offset: 0; size: 2; numerator of the view magnification - $numerator = self::getInt2d($recordData, 0); - - // offset: 2; size: 2; numerator of the view magnification - $denumerator = self::getInt2d($recordData, 2); - - // set the zoom scale (in percent) - $this->phpSheet->getSheetView()->setZoomScale($numerator * 100 / $denumerator); - } - - /** - * Read PANE record - */ - private function readPane() - { - $length = self::getInt2d($this->data, $this->pos + 2); - $recordData = $this->readRecordData($this->data, $this->pos + 4, $length); - - // move stream pointer to next record - $this->pos += 4 + $length; - - if (!$this->readDataOnly) { - // offset: 0; size: 2; position of vertical split - $px = self::getInt2d($recordData, 0); - - // offset: 2; size: 2; position of horizontal split - $py = self::getInt2d($recordData, 2); - - if ($this->frozen) { - // frozen panes - $this->phpSheet->freezePane(PHPExcel_Cell::stringFromColumnIndex($px) . ($py + 1)); - } else { - // unfrozen panes; split windows; not supported by PHPExcel core - } - } - } - - /** - * Read SELECTION record. There is one such record for each pane in the sheet. - */ - private function readSelection() - { - $length = self::getInt2d($this->data, $this->pos + 2); - $recordData = $this->readRecordData($this->data, $this->pos + 4, $length); - - // move stream pointer to next record - $this->pos += 4 + $length; - - if (!$this->readDataOnly) { - // offset: 0; size: 1; pane identifier - $paneId = ord($recordData{0}); - - // offset: 1; size: 2; index to row of the active cell - $r = self::getInt2d($recordData, 1); - - // offset: 3; size: 2; index to column of the active cell - $c = self::getInt2d($recordData, 3); - - // offset: 5; size: 2; index into the following cell range list to the - // entry that contains the active cell - $index = self::getInt2d($recordData, 5); - - // offset: 7; size: var; cell range address list containing all selected cell ranges - $data = substr($recordData, 7); - $cellRangeAddressList = $this->readBIFF5CellRangeAddressList($data); // note: also BIFF8 uses BIFF5 syntax - - $selectedCells = $cellRangeAddressList['cellRangeAddresses'][0]; - - // first row '1' + last row '16384' indicates that full column is selected (apparently also in BIFF8!) - if (preg_match('/^([A-Z]+1\:[A-Z]+)16384$/', $selectedCells)) { - $selectedCells = preg_replace('/^([A-Z]+1\:[A-Z]+)16384$/', '${1}1048576', $selectedCells); - } - - // first row '1' + last row '65536' indicates that full column is selected - if (preg_match('/^([A-Z]+1\:[A-Z]+)65536$/', $selectedCells)) { - $selectedCells = preg_replace('/^([A-Z]+1\:[A-Z]+)65536$/', '${1}1048576', $selectedCells); - } - - // first column 'A' + last column 'IV' indicates that full row is selected - if (preg_match('/^(A[0-9]+\:)IV([0-9]+)$/', $selectedCells)) { - $selectedCells = preg_replace('/^(A[0-9]+\:)IV([0-9]+)$/', '${1}XFD${2}', $selectedCells); - } - - $this->phpSheet->setSelectedCells($selectedCells); - } - } - - /** - * Read BIFF5 cell range address list - * section 2.5.15 - * - * @param string $subData - * @return array - */ - private function readBIFF5CellRangeAddressList($subData) - { - $cellRangeAddresses = array(); - - // offset: 0; size: 2; number of the following cell range addresses - $nm = self::getInt2d($subData, 0); - - $offset = 2; - // offset: 2; size: 6 * $nm; list of $nm (fixed) cell range addresses - for ($i = 0; $i < $nm; ++$i) { - $cellRangeAddresses[] = $this->readBIFF5CellRangeAddressFixed(substr($subData, $offset, 6)); - $offset += 6; - } - - return array( - 'size' => 2 + 6 * $nm, - 'cellRangeAddresses' => $cellRangeAddresses, - ); - } - - /** - * MERGEDCELLS - * - * This record contains the addresses of merged cell ranges - * in the current sheet. - * - * -- "OpenOffice.org's Documentation of the Microsoft - * Excel File Format" - */ - private function readMergedCells() - { - $length = self::getInt2d($this->data, $this->pos + 2); - $recordData = $this->readRecordData($this->data, $this->pos + 4, $length); - - // move stream pointer to next record - $this->pos += 4 + $length; - - if ($this->version == self::XLS_BIFF8 && !$this->readDataOnly) { - $cellRangeAddressList = $this->readBIFF8CellRangeAddressList($recordData); - foreach ($cellRangeAddressList['cellRangeAddresses'] as $cellRangeAddress) { - if ((strpos($cellRangeAddress, ':') !== false) && - ($this->includeCellRangeFiltered($cellRangeAddress))) { - $this->phpSheet->mergeCells($cellRangeAddress); - } - } - } - } - - private function includeCellRangeFiltered($cellRangeAddress) - { - $includeCellRange = true; - if ($this->getReadFilter() !== null) { - $includeCellRange = false; - $rangeBoundaries = PHPExcel_Cell::getRangeBoundaries($cellRangeAddress); - $rangeBoundaries[1][0]++; - for ($row = $rangeBoundaries[0][1]; $row <= $rangeBoundaries[1][1]; $row++) { - for ($column = $rangeBoundaries[0][0]; $column != $rangeBoundaries[1][0]; $column++) { - if ($this->getReadFilter()->readCell($column, $row, $this->phpSheet->getTitle())) { - $includeCellRange = true; - break 2; - } - } - } - } - return $includeCellRange; - } - - /** - * Read HYPERLINK record - */ - private function readHyperLink() - { - $length = self::getInt2d($this->data, $this->pos + 2); - $recordData = $this->readRecordData($this->data, $this->pos + 4, $length); - - // move stream pointer forward to next record - $this->pos += 4 + $length; - - if (!$this->readDataOnly) { - // offset: 0; size: 8; cell range address of all cells containing this hyperlink - try { - $cellRange = $this->readBIFF8CellRangeAddressFixed($recordData, 0, 8); - } catch (PHPExcel_Exception $e) { - return; - } - - // offset: 8, size: 16; GUID of StdLink - - // offset: 24, size: 4; unknown value - - // offset: 28, size: 4; option flags - // bit: 0; mask: 0x00000001; 0 = no link or extant, 1 = file link or URL - $isFileLinkOrUrl = (0x00000001 & self::getInt2d($recordData, 28)) >> 0; - - // bit: 1; mask: 0x00000002; 0 = relative path, 1 = absolute path or URL - $isAbsPathOrUrl = (0x00000001 & self::getInt2d($recordData, 28)) >> 1; - - // bit: 2 (and 4); mask: 0x00000014; 0 = no description - $hasDesc = (0x00000014 & self::getInt2d($recordData, 28)) >> 2; - - // bit: 3; mask: 0x00000008; 0 = no text, 1 = has text - $hasText = (0x00000008 & self::getInt2d($recordData, 28)) >> 3; - - // bit: 7; mask: 0x00000080; 0 = no target frame, 1 = has target frame - $hasFrame = (0x00000080 & self::getInt2d($recordData, 28)) >> 7; - - // bit: 8; mask: 0x00000100; 0 = file link or URL, 1 = UNC path (inc. server name) - $isUNC = (0x00000100 & self::getInt2d($recordData, 28)) >> 8; - - // offset within record data - $offset = 32; - - if ($hasDesc) { - // offset: 32; size: var; character count of description text - $dl = self::getInt4d($recordData, 32); - // offset: 36; size: var; character array of description text, no Unicode string header, always 16-bit characters, zero terminated - $desc = self::encodeUTF16(substr($recordData, 36, 2 * ($dl - 1)), false); - $offset += 4 + 2 * $dl; - } - if ($hasFrame) { - $fl = self::getInt4d($recordData, $offset); - $offset += 4 + 2 * $fl; - } - - // detect type of hyperlink (there are 4 types) - $hyperlinkType = null; - - if ($isUNC) { - $hyperlinkType = 'UNC'; - } elseif (!$isFileLinkOrUrl) { - $hyperlinkType = 'workbook'; - } elseif (ord($recordData{$offset}) == 0x03) { - $hyperlinkType = 'local'; - } elseif (ord($recordData{$offset}) == 0xE0) { - $hyperlinkType = 'URL'; - } - - switch ($hyperlinkType) { - case 'URL': - // section 5.58.2: Hyperlink containing a URL - // e.g. http://example.org/index.php - - // offset: var; size: 16; GUID of URL Moniker - $offset += 16; - // offset: var; size: 4; size (in bytes) of character array of the URL including trailing zero word - $us = self::getInt4d($recordData, $offset); - $offset += 4; - // offset: var; size: $us; character array of the URL, no Unicode string header, always 16-bit characters, zero-terminated - $url = self::encodeUTF16(substr($recordData, $offset, $us - 2), false); - $nullOffset = strpos($url, 0x00); - if ($nullOffset) { - $url = substr($url, 0, $nullOffset); - } - $url .= $hasText ? '#' : ''; - $offset += $us; - break; - case 'local': - // section 5.58.3: Hyperlink to local file - // examples: - // mydoc.txt - // ../../somedoc.xls#Sheet!A1 - - // offset: var; size: 16; GUI of File Moniker - $offset += 16; - - // offset: var; size: 2; directory up-level count. - $upLevelCount = self::getInt2d($recordData, $offset); - $offset += 2; - - // offset: var; size: 4; character count of the shortened file path and name, including trailing zero word - $sl = self::getInt4d($recordData, $offset); - $offset += 4; - - // offset: var; size: sl; character array of the shortened file path and name in 8.3-DOS-format (compressed Unicode string) - $shortenedFilePath = substr($recordData, $offset, $sl); - $shortenedFilePath = self::encodeUTF16($shortenedFilePath, true); - $shortenedFilePath = substr($shortenedFilePath, 0, -1); // remove trailing zero - - $offset += $sl; - - // offset: var; size: 24; unknown sequence - $offset += 24; - - // extended file path - // offset: var; size: 4; size of the following file link field including string lenth mark - $sz = self::getInt4d($recordData, $offset); - $offset += 4; - - // only present if $sz > 0 - if ($sz > 0) { - // offset: var; size: 4; size of the character array of the extended file path and name - $xl = self::getInt4d($recordData, $offset); - $offset += 4; - - // offset: var; size 2; unknown - $offset += 2; - - // offset: var; size $xl; character array of the extended file path and name. - $extendedFilePath = substr($recordData, $offset, $xl); - $extendedFilePath = self::encodeUTF16($extendedFilePath, false); - $offset += $xl; - } - - // construct the path - $url = str_repeat('..\\', $upLevelCount); - $url .= ($sz > 0) ? $extendedFilePath : $shortenedFilePath; // use extended path if available - $url .= $hasText ? '#' : ''; - - break; - case 'UNC': - // section 5.58.4: Hyperlink to a File with UNC (Universal Naming Convention) Path - // todo: implement - return; - case 'workbook': - // section 5.58.5: Hyperlink to the Current Workbook - // e.g. Sheet2!B1:C2, stored in text mark field - $url = 'sheet://'; - break; - default: - return; - } - - if ($hasText) { - // offset: var; size: 4; character count of text mark including trailing zero word - $tl = self::getInt4d($recordData, $offset); - $offset += 4; - // offset: var; size: var; character array of the text mark without the # sign, no Unicode header, always 16-bit characters, zero-terminated - $text = self::encodeUTF16(substr($recordData, $offset, 2 * ($tl - 1)), false); - $url .= $text; - } - - // apply the hyperlink to all the relevant cells - foreach (PHPExcel_Cell::extractAllCellReferencesInRange($cellRange) as $coordinate) { - $this->phpSheet->getCell($coordinate)->getHyperLink()->setUrl($url); - } - } - } - - /** - * Read DATAVALIDATIONS record - */ - private function readDataValidations() - { - $length = self::getInt2d($this->data, $this->pos + 2); - $recordData = $this->readRecordData($this->data, $this->pos + 4, $length); - - // move stream pointer forward to next record - $this->pos += 4 + $length; - } - - /** - * Read DATAVALIDATION record - */ - private function readDataValidation() - { - $length = self::getInt2d($this->data, $this->pos + 2); - $recordData = $this->readRecordData($this->data, $this->pos + 4, $length); - - // move stream pointer forward to next record - $this->pos += 4 + $length; - - if ($this->readDataOnly) { - return; - } - - // offset: 0; size: 4; Options - $options = self::getInt4d($recordData, 0); - - // bit: 0-3; mask: 0x0000000F; type - $type = (0x0000000F & $options) >> 0; - switch ($type) { - case 0x00: - $type = PHPExcel_Cell_DataValidation::TYPE_NONE; - break; - case 0x01: - $type = PHPExcel_Cell_DataValidation::TYPE_WHOLE; - break; - case 0x02: - $type = PHPExcel_Cell_DataValidation::TYPE_DECIMAL; - break; - case 0x03: - $type = PHPExcel_Cell_DataValidation::TYPE_LIST; - break; - case 0x04: - $type = PHPExcel_Cell_DataValidation::TYPE_DATE; - break; - case 0x05: - $type = PHPExcel_Cell_DataValidation::TYPE_TIME; - break; - case 0x06: - $type = PHPExcel_Cell_DataValidation::TYPE_TEXTLENGTH; - break; - case 0x07: - $type = PHPExcel_Cell_DataValidation::TYPE_CUSTOM; - break; - } - - // bit: 4-6; mask: 0x00000070; error type - $errorStyle = (0x00000070 & $options) >> 4; - switch ($errorStyle) { - case 0x00: - $errorStyle = PHPExcel_Cell_DataValidation::STYLE_STOP; - break; - case 0x01: - $errorStyle = PHPExcel_Cell_DataValidation::STYLE_WARNING; - break; - case 0x02: - $errorStyle = PHPExcel_Cell_DataValidation::STYLE_INFORMATION; - break; - } - - // bit: 7; mask: 0x00000080; 1= formula is explicit (only applies to list) - // I have only seen cases where this is 1 - $explicitFormula = (0x00000080 & $options) >> 7; - - // bit: 8; mask: 0x00000100; 1= empty cells allowed - $allowBlank = (0x00000100 & $options) >> 8; - - // bit: 9; mask: 0x00000200; 1= suppress drop down arrow in list type validity - $suppressDropDown = (0x00000200 & $options) >> 9; - - // bit: 18; mask: 0x00040000; 1= show prompt box if cell selected - $showInputMessage = (0x00040000 & $options) >> 18; - - // bit: 19; mask: 0x00080000; 1= show error box if invalid values entered - $showErrorMessage = (0x00080000 & $options) >> 19; - - // bit: 20-23; mask: 0x00F00000; condition operator - $operator = (0x00F00000 & $options) >> 20; - switch ($operator) { - case 0x00: - $operator = PHPExcel_Cell_DataValidation::OPERATOR_BETWEEN; - break; - case 0x01: - $operator = PHPExcel_Cell_DataValidation::OPERATOR_NOTBETWEEN; - break; - case 0x02: - $operator = PHPExcel_Cell_DataValidation::OPERATOR_EQUAL; - break; - case 0x03: - $operator = PHPExcel_Cell_DataValidation::OPERATOR_NOTEQUAL; - break; - case 0x04: - $operator = PHPExcel_Cell_DataValidation::OPERATOR_GREATERTHAN; - break; - case 0x05: - $operator = PHPExcel_Cell_DataValidation::OPERATOR_LESSTHAN; - break; - case 0x06: - $operator = PHPExcel_Cell_DataValidation::OPERATOR_GREATERTHANOREQUAL; - break; - case 0x07: - $operator = PHPExcel_Cell_DataValidation::OPERATOR_LESSTHANOREQUAL; - break; - } - - // offset: 4; size: var; title of the prompt box - $offset = 4; - $string = self::readUnicodeStringLong(substr($recordData, $offset)); - $promptTitle = $string['value'] !== chr(0) ? $string['value'] : ''; - $offset += $string['size']; - - // offset: var; size: var; title of the error box - $string = self::readUnicodeStringLong(substr($recordData, $offset)); - $errorTitle = $string['value'] !== chr(0) ? $string['value'] : ''; - $offset += $string['size']; - - // offset: var; size: var; text of the prompt box - $string = self::readUnicodeStringLong(substr($recordData, $offset)); - $prompt = $string['value'] !== chr(0) ? $string['value'] : ''; - $offset += $string['size']; - - // offset: var; size: var; text of the error box - $string = self::readUnicodeStringLong(substr($recordData, $offset)); - $error = $string['value'] !== chr(0) ? $string['value'] : ''; - $offset += $string['size']; - - // offset: var; size: 2; size of the formula data for the first condition - $sz1 = self::getInt2d($recordData, $offset); - $offset += 2; - - // offset: var; size: 2; not used - $offset += 2; - - // offset: var; size: $sz1; formula data for first condition (without size field) - $formula1 = substr($recordData, $offset, $sz1); - $formula1 = pack('v', $sz1) . $formula1; // prepend the length - try { - $formula1 = $this->getFormulaFromStructure($formula1); - - // in list type validity, null characters are used as item separators - if ($type == PHPExcel_Cell_DataValidation::TYPE_LIST) { - $formula1 = str_replace(chr(0), ',', $formula1); - } - } catch (PHPExcel_Exception $e) { - return; - } - $offset += $sz1; - - // offset: var; size: 2; size of the formula data for the first condition - $sz2 = self::getInt2d($recordData, $offset); - $offset += 2; - - // offset: var; size: 2; not used - $offset += 2; - - // offset: var; size: $sz2; formula data for second condition (without size field) - $formula2 = substr($recordData, $offset, $sz2); - $formula2 = pack('v', $sz2) . $formula2; // prepend the length - try { - $formula2 = $this->getFormulaFromStructure($formula2); - } catch (PHPExcel_Exception $e) { - return; - } - $offset += $sz2; - - // offset: var; size: var; cell range address list with - $cellRangeAddressList = $this->readBIFF8CellRangeAddressList(substr($recordData, $offset)); - $cellRangeAddresses = $cellRangeAddressList['cellRangeAddresses']; - - foreach ($cellRangeAddresses as $cellRange) { - $stRange = $this->phpSheet->shrinkRangeToFit($cellRange); - foreach (PHPExcel_Cell::extractAllCellReferencesInRange($stRange) as $coordinate) { - $objValidation = $this->phpSheet->getCell($coordinate)->getDataValidation(); - $objValidation->setType($type); - $objValidation->setErrorStyle($errorStyle); - $objValidation->setAllowBlank((bool)$allowBlank); - $objValidation->setShowInputMessage((bool)$showInputMessage); - $objValidation->setShowErrorMessage((bool)$showErrorMessage); - $objValidation->setShowDropDown(!$suppressDropDown); - $objValidation->setOperator($operator); - $objValidation->setErrorTitle($errorTitle); - $objValidation->setError($error); - $objValidation->setPromptTitle($promptTitle); - $objValidation->setPrompt($prompt); - $objValidation->setFormula1($formula1); - $objValidation->setFormula2($formula2); - } - } - } - - /** - * Read SHEETLAYOUT record. Stores sheet tab color information. - */ - private function readSheetLayout() - { - $length = self::getInt2d($this->data, $this->pos + 2); - $recordData = $this->readRecordData($this->data, $this->pos + 4, $length); - - // move stream pointer to next record - $this->pos += 4 + $length; - - // local pointer in record data - $offset = 0; - - if (!$this->readDataOnly) { - // offset: 0; size: 2; repeated record identifier 0x0862 - - // offset: 2; size: 10; not used - - // offset: 12; size: 4; size of record data - // Excel 2003 uses size of 0x14 (documented), Excel 2007 uses size of 0x28 (not documented?) - $sz = self::getInt4d($recordData, 12); - - switch ($sz) { - case 0x14: - // offset: 16; size: 2; color index for sheet tab - $colorIndex = self::getInt2d($recordData, 16); - $color = PHPExcel_Reader_Excel5_Color::map($colorIndex, $this->palette, $this->version); - $this->phpSheet->getTabColor()->setRGB($color['rgb']); - break; - case 0x28: - // TODO: Investigate structure for .xls SHEETLAYOUT record as saved by MS Office Excel 2007 - return; - break; - } - } - } - - /** - * Read SHEETPROTECTION record (FEATHEADR) - */ - private function readSheetProtection() - { - $length = self::getInt2d($this->data, $this->pos + 2); - $recordData = $this->readRecordData($this->data, $this->pos + 4, $length); - - // move stream pointer to next record - $this->pos += 4 + $length; - - if ($this->readDataOnly) { - return; - } - - // offset: 0; size: 2; repeated record header - - // offset: 2; size: 2; FRT cell reference flag (=0 currently) - - // offset: 4; size: 8; Currently not used and set to 0 - - // offset: 12; size: 2; Shared feature type index (2=Enhanced Protetion, 4=SmartTag) - $isf = self::getInt2d($recordData, 12); - if ($isf != 2) { - return; - } - - // offset: 14; size: 1; =1 since this is a feat header - - // offset: 15; size: 4; size of rgbHdrSData - - // rgbHdrSData, assume "Enhanced Protection" - // offset: 19; size: 2; option flags - $options = self::getInt2d($recordData, 19); - - // bit: 0; mask 0x0001; 1 = user may edit objects, 0 = users must not edit objects - $bool = (0x0001 & $options) >> 0; - $this->phpSheet->getProtection()->setObjects(!$bool); - - // bit: 1; mask 0x0002; edit scenarios - $bool = (0x0002 & $options) >> 1; - $this->phpSheet->getProtection()->setScenarios(!$bool); - - // bit: 2; mask 0x0004; format cells - $bool = (0x0004 & $options) >> 2; - $this->phpSheet->getProtection()->setFormatCells(!$bool); - - // bit: 3; mask 0x0008; format columns - $bool = (0x0008 & $options) >> 3; - $this->phpSheet->getProtection()->setFormatColumns(!$bool); - - // bit: 4; mask 0x0010; format rows - $bool = (0x0010 & $options) >> 4; - $this->phpSheet->getProtection()->setFormatRows(!$bool); - - // bit: 5; mask 0x0020; insert columns - $bool = (0x0020 & $options) >> 5; - $this->phpSheet->getProtection()->setInsertColumns(!$bool); - - // bit: 6; mask 0x0040; insert rows - $bool = (0x0040 & $options) >> 6; - $this->phpSheet->getProtection()->setInsertRows(!$bool); - - // bit: 7; mask 0x0080; insert hyperlinks - $bool = (0x0080 & $options) >> 7; - $this->phpSheet->getProtection()->setInsertHyperlinks(!$bool); - - // bit: 8; mask 0x0100; delete columns - $bool = (0x0100 & $options) >> 8; - $this->phpSheet->getProtection()->setDeleteColumns(!$bool); - - // bit: 9; mask 0x0200; delete rows - $bool = (0x0200 & $options) >> 9; - $this->phpSheet->getProtection()->setDeleteRows(!$bool); - - // bit: 10; mask 0x0400; select locked cells - $bool = (0x0400 & $options) >> 10; - $this->phpSheet->getProtection()->setSelectLockedCells(!$bool); - - // bit: 11; mask 0x0800; sort cell range - $bool = (0x0800 & $options) >> 11; - $this->phpSheet->getProtection()->setSort(!$bool); - - // bit: 12; mask 0x1000; auto filter - $bool = (0x1000 & $options) >> 12; - $this->phpSheet->getProtection()->setAutoFilter(!$bool); - - // bit: 13; mask 0x2000; pivot tables - $bool = (0x2000 & $options) >> 13; - $this->phpSheet->getProtection()->setPivotTables(!$bool); - - // bit: 14; mask 0x4000; select unlocked cells - $bool = (0x4000 & $options) >> 14; - $this->phpSheet->getProtection()->setSelectUnlockedCells(!$bool); - - // offset: 21; size: 2; not used - } - - /** - * Read RANGEPROTECTION record - * Reading of this record is based on Microsoft Office Excel 97-2000 Binary File Format Specification, - * where it is referred to as FEAT record - */ - private function readRangeProtection() - { - $length = self::getInt2d($this->data, $this->pos + 2); - $recordData = $this->readRecordData($this->data, $this->pos + 4, $length); - - // move stream pointer to next record - $this->pos += 4 + $length; - - // local pointer in record data - $offset = 0; - - if (!$this->readDataOnly) { - $offset += 12; - - // offset: 12; size: 2; shared feature type, 2 = enhanced protection, 4 = smart tag - $isf = self::getInt2d($recordData, 12); - if ($isf != 2) { - // we only read FEAT records of type 2 - return; - } - $offset += 2; - - $offset += 5; - - // offset: 19; size: 2; count of ref ranges this feature is on - $cref = self::getInt2d($recordData, 19); - $offset += 2; - - $offset += 6; - - // offset: 27; size: 8 * $cref; list of cell ranges (like in hyperlink record) - $cellRanges = array(); - for ($i = 0; $i < $cref; ++$i) { - try { - $cellRange = $this->readBIFF8CellRangeAddressFixed(substr($recordData, 27 + 8 * $i, 8)); - } catch (PHPExcel_Exception $e) { - return; - } - $cellRanges[] = $cellRange; - $offset += 8; - } - - // offset: var; size: var; variable length of feature specific data - $rgbFeat = substr($recordData, $offset); - $offset += 4; - - // offset: var; size: 4; the encrypted password (only 16-bit although field is 32-bit) - $wPassword = self::getInt4d($recordData, $offset); - $offset += 4; - - // Apply range protection to sheet - if ($cellRanges) { - $this->phpSheet->protectCells(implode(' ', $cellRanges), strtoupper(dechex($wPassword)), true); - } - } - } - - /** - * The NOTE record specifies a comment associated with a particular cell. In Excel 95 (BIFF7) and earlier versions, - * this record stores a note (cell note). This feature was significantly enhanced in Excel 97. - */ - private function readNote() - { -// echo '<b>Read Cell Annotation</b><br />'; - $length = self::getInt2d($this->data, $this->pos + 2); - $recordData = $this->readRecordData($this->data, $this->pos + 4, $length); - - // move stream pointer to next record - $this->pos += 4 + $length; - - if ($this->readDataOnly) { - return; - } - - $cellAddress = $this->readBIFF8CellAddress(substr($recordData, 0, 4)); - if ($this->version == self::XLS_BIFF8) { - $noteObjID = self::getInt2d($recordData, 6); - $noteAuthor = self::readUnicodeStringLong(substr($recordData, 8)); - $noteAuthor = $noteAuthor['value']; -// echo 'Note Address=', $cellAddress,'<br />'; -// echo 'Note Object ID=', $noteObjID,'<br />'; -// echo 'Note Author=', $noteAuthor,'<hr />'; -// - $this->cellNotes[$noteObjID] = array( - 'cellRef' => $cellAddress, - 'objectID' => $noteObjID, - 'author' => $noteAuthor - ); - } else { - $extension = false; - if ($cellAddress == '$B$65536') { - // If the address row is -1 and the column is 0, (which translates as $B$65536) then this is a continuation - // note from the previous cell annotation. We're not yet handling this, so annotations longer than the - // max 2048 bytes will probably throw a wobbly. - $row = self::getInt2d($recordData, 0); - $extension = true; - $cellAddress = array_pop(array_keys($this->phpSheet->getComments())); - } -// echo 'Note Address=', $cellAddress,'<br />'; - - $cellAddress = str_replace('$', '', $cellAddress); - $noteLength = self::getInt2d($recordData, 4); - $noteText = trim(substr($recordData, 6)); -// echo 'Note Length=', $noteLength,'<br />'; -// echo 'Note Text=', $noteText,'<br />'; - - if ($extension) { - // Concatenate this extension with the currently set comment for the cell - $comment = $this->phpSheet->getComment($cellAddress); - $commentText = $comment->getText()->getPlainText(); - $comment->setText($this->parseRichText($commentText.$noteText)); - } else { - // Set comment for the cell - $this->phpSheet->getComment($cellAddress)->setText($this->parseRichText($noteText)); -// ->setAuthor($author) - } - } - - } - - private function parseRichText($is = '') - { - $value = new PHPExcel_RichText(); - $value->createText($is); - - return $value; - } - - /** - * The TEXT Object record contains the text associated with a cell annotation. - */ - private function readTextObject() - { - $length = self::getInt2d($this->data, $this->pos + 2); - $recordData = $this->readRecordData($this->data, $this->pos + 4, $length); - - // move stream pointer to next record - $this->pos += 4 + $length; - - if ($this->readDataOnly) { - return; - } - - // recordData consists of an array of subrecords looking like this: - // grbit: 2 bytes; Option Flags - // rot: 2 bytes; rotation - // cchText: 2 bytes; length of the text (in the first continue record) - // cbRuns: 2 bytes; length of the formatting (in the second continue record) - // followed by the continuation records containing the actual text and formatting - $grbitOpts = self::getInt2d($recordData, 0); - $rot = self::getInt2d($recordData, 2); - $cchText = self::getInt2d($recordData, 10); - $cbRuns = self::getInt2d($recordData, 12); - $text = $this->getSplicedRecordData(); - - $this->textObjects[$this->textObjRef] = array( - 'text' => substr($text["recordData"], $text["spliceOffsets"][0]+1, $cchText), - 'format' => substr($text["recordData"], $text["spliceOffsets"][1], $cbRuns), - 'alignment' => $grbitOpts, - 'rotation' => $rot - ); - -// echo '<b>_readTextObject()</b><br />'; -// var_dump($this->textObjects[$this->textObjRef]); -// echo '<br />'; - } - - /** - * Read a free CONTINUE record. Free CONTINUE record may be a camouflaged MSODRAWING record - * When MSODRAWING data on a sheet exceeds 8224 bytes, CONTINUE records are used instead. Undocumented. - * In this case, we must treat the CONTINUE record as a MSODRAWING record - */ - private function readContinue() - { - $length = self::getInt2d($this->data, $this->pos + 2); - $recordData = $this->readRecordData($this->data, $this->pos + 4, $length); - - // check if we are reading drawing data - // this is in case a free CONTINUE record occurs in other circumstances we are unaware of - if ($this->drawingData == '') { - // move stream pointer to next record - $this->pos += 4 + $length; - - return; - } - - // check if record data is at least 4 bytes long, otherwise there is no chance this is MSODRAWING data - if ($length < 4) { - // move stream pointer to next record - $this->pos += 4 + $length; - - return; - } - - // dirty check to see if CONTINUE record could be a camouflaged MSODRAWING record - // look inside CONTINUE record to see if it looks like a part of an Escher stream - // we know that Escher stream may be split at least at - // 0xF003 MsofbtSpgrContainer - // 0xF004 MsofbtSpContainer - // 0xF00D MsofbtClientTextbox - $validSplitPoints = array(0xF003, 0xF004, 0xF00D); // add identifiers if we find more - - $splitPoint = self::getInt2d($recordData, 2); - if (in_array($splitPoint, $validSplitPoints)) { - // get spliced record data (and move pointer to next record) - $splicedRecordData = $this->getSplicedRecordData(); - $this->drawingData .= $splicedRecordData['recordData']; - - return; - } - - // move stream pointer to next record - $this->pos += 4 + $length; - } - - /** - * Read IMDATA record - */ - private function readImData() - { - $length = self::getInt2d($this->data, $this->pos + 2); - - // get spliced record data - $splicedRecordData = $this->getSplicedRecordData(); - $recordData = $splicedRecordData['recordData']; - - // UNDER CONSTRUCTION - - // offset: 0; size: 2; image format - $cf = self::getInt2d($recordData, 0); - - // offset: 2; size: 2; environment from which the file was written - $env = self::getInt2d($recordData, 2); - - // offset: 4; size: 4; length of the image data - $lcb = self::getInt4d($recordData, 4); - - // offset: 8; size: var; image data - $iData = substr($recordData, 8); - - switch ($cf) { - case 0x09: // Windows bitmap format - // BITMAPCOREINFO - // 1. BITMAPCOREHEADER - // offset: 0; size: 4; bcSize, Specifies the number of bytes required by the structure - $bcSize = self::getInt4d($iData, 0); - // var_dump($bcSize); - - // offset: 4; size: 2; bcWidth, specifies the width of the bitmap, in pixels - $bcWidth = self::getInt2d($iData, 4); - // var_dump($bcWidth); - - // offset: 6; size: 2; bcHeight, specifies the height of the bitmap, in pixels. - $bcHeight = self::getInt2d($iData, 6); - // var_dump($bcHeight); - $ih = imagecreatetruecolor($bcWidth, $bcHeight); - - // offset: 8; size: 2; bcPlanes, specifies the number of planes for the target device. This value must be 1 - - // offset: 10; size: 2; bcBitCount specifies the number of bits-per-pixel. This value must be 1, 4, 8, or 24 - $bcBitCount = self::getInt2d($iData, 10); - // var_dump($bcBitCount); - - $rgbString = substr($iData, 12); - $rgbTriples = array(); - while (strlen($rgbString) > 0) { - $rgbTriples[] = unpack('Cb/Cg/Cr', $rgbString); - $rgbString = substr($rgbString, 3); - } - $x = 0; - $y = 0; - foreach ($rgbTriples as $i => $rgbTriple) { - $color = imagecolorallocate($ih, $rgbTriple['r'], $rgbTriple['g'], $rgbTriple['b']); - imagesetpixel($ih, $x, $bcHeight - 1 - $y, $color); - $x = ($x + 1) % $bcWidth; - $y = $y + floor(($x + 1) / $bcWidth); - } - //imagepng($ih, 'image.png'); - - $drawing = new PHPExcel_Worksheet_Drawing(); - $drawing->setPath($filename); - $drawing->setWorksheet($this->phpSheet); - break; - case 0x02: // Windows metafile or Macintosh PICT format - case 0x0e: // native format - default: - break; - } - - // getSplicedRecordData() takes care of moving current position in data stream - } -} diff --git a/Utils/PHPExcel/Reader/Excel5/Color.php b/Utils/PHPExcel/Reader/Excel5/Color.php deleted file mode 100644 index 1801df5..0000000 --- a/Utils/PHPExcel/Reader/Excel5/Color.php +++ /dev/null @@ -1,32 +0,0 @@ -<?php - -class PHPExcel_Reader_Excel5_Color -{ - /** - * Read color - * - * @param int $color Indexed color - * @param array $palette Color palette - * @return array RGB color value, example: array('rgb' => 'FF0000') - */ - public static function map($color, $palette, $version) - { - if ($color <= 0x07 || $color >= 0x40) { - // special built-in color - return PHPExcel_Reader_Excel5_Color_BuiltIn::lookup($color); - } elseif (isset($palette) && isset($palette[$color - 8])) { - // palette color, color index 0x08 maps to pallete index 0 - return $palette[$color - 8]; - } else { - // default color table - if ($version == PHPExcel_Reader_Excel5::XLS_BIFF8) { - return PHPExcel_Reader_Excel5_Color_BIFF8::lookup($color); - } else { - // BIFF5 - return PHPExcel_Reader_Excel5_Color_BIFF5::lookup($color); - } - } - - return $color; - } -} \ No newline at end of file diff --git a/Utils/PHPExcel/Reader/Excel5/Color/BIFF5.php b/Utils/PHPExcel/Reader/Excel5/Color/BIFF5.php deleted file mode 100644 index 159c27f..0000000 --- a/Utils/PHPExcel/Reader/Excel5/Color/BIFF5.php +++ /dev/null @@ -1,77 +0,0 @@ -<?php - -class PHPExcel_Reader_Excel5_Color_BIFF5 -{ - protected static $map = array( - 0x08 => '000000', - 0x09 => 'FFFFFF', - 0x0A => 'FF0000', - 0x0B => '00FF00', - 0x0C => '0000FF', - 0x0D => 'FFFF00', - 0x0E => 'FF00FF', - 0x0F => '00FFFF', - 0x10 => '800000', - 0x11 => '008000', - 0x12 => '000080', - 0x13 => '808000', - 0x14 => '800080', - 0x15 => '008080', - 0x16 => 'C0C0C0', - 0x17 => '808080', - 0x18 => '8080FF', - 0x19 => '802060', - 0x1A => 'FFFFC0', - 0x1B => 'A0E0F0', - 0x1C => '600080', - 0x1D => 'FF8080', - 0x1E => '0080C0', - 0x1F => 'C0C0FF', - 0x20 => '000080', - 0x21 => 'FF00FF', - 0x22 => 'FFFF00', - 0x23 => '00FFFF', - 0x24 => '800080', - 0x25 => '800000', - 0x26 => '008080', - 0x27 => '0000FF', - 0x28 => '00CFFF', - 0x29 => '69FFFF', - 0x2A => 'E0FFE0', - 0x2B => 'FFFF80', - 0x2C => 'A6CAF0', - 0x2D => 'DD9CB3', - 0x2E => 'B38FEE', - 0x2F => 'E3E3E3', - 0x30 => '2A6FF9', - 0x31 => '3FB8CD', - 0x32 => '488436', - 0x33 => '958C41', - 0x34 => '8E5E42', - 0x35 => 'A0627A', - 0x36 => '624FAC', - 0x37 => '969696', - 0x38 => '1D2FBE', - 0x39 => '286676', - 0x3A => '004500', - 0x3B => '453E01', - 0x3C => '6A2813', - 0x3D => '85396A', - 0x3E => '4A3285', - 0x3F => '424242', - ); - - /** - * Map color array from BIFF5 built-in color index - * - * @param int $color - * @return array - */ - public static function lookup($color) - { - if (isset(self::$map[$color])) { - return array('rgb' => self::$map[$color]); - } - return array('rgb' => '000000'); - } -} \ No newline at end of file diff --git a/Utils/PHPExcel/Reader/Excel5/Color/BIFF8.php b/Utils/PHPExcel/Reader/Excel5/Color/BIFF8.php deleted file mode 100644 index 4d3f2d0..0000000 --- a/Utils/PHPExcel/Reader/Excel5/Color/BIFF8.php +++ /dev/null @@ -1,77 +0,0 @@ -<?php - -class PHPExcel_Reader_Excel5_Color_BIFF8 -{ - protected static $map = array( - 0x08 => '000000', - 0x09 => 'FFFFFF', - 0x0A => 'FF0000', - 0x0B => '00FF00', - 0x0C => '0000FF', - 0x0D => 'FFFF00', - 0x0E => 'FF00FF', - 0x0F => '00FFFF', - 0x10 => '800000', - 0x11 => '008000', - 0x12 => '000080', - 0x13 => '808000', - 0x14 => '800080', - 0x15 => '008080', - 0x16 => 'C0C0C0', - 0x17 => '808080', - 0x18 => '9999FF', - 0x19 => '993366', - 0x1A => 'FFFFCC', - 0x1B => 'CCFFFF', - 0x1C => '660066', - 0x1D => 'FF8080', - 0x1E => '0066CC', - 0x1F => 'CCCCFF', - 0x20 => '000080', - 0x21 => 'FF00FF', - 0x22 => 'FFFF00', - 0x23 => '00FFFF', - 0x24 => '800080', - 0x25 => '800000', - 0x26 => '008080', - 0x27 => '0000FF', - 0x28 => '00CCFF', - 0x29 => 'CCFFFF', - 0x2A => 'CCFFCC', - 0x2B => 'FFFF99', - 0x2C => '99CCFF', - 0x2D => 'FF99CC', - 0x2E => 'CC99FF', - 0x2F => 'FFCC99', - 0x30 => '3366FF', - 0x31 => '33CCCC', - 0x32 => '99CC00', - 0x33 => 'FFCC00', - 0x34 => 'FF9900', - 0x35 => 'FF6600', - 0x36 => '666699', - 0x37 => '969696', - 0x38 => '003366', - 0x39 => '339966', - 0x3A => '003300', - 0x3B => '333300', - 0x3C => '993300', - 0x3D => '993366', - 0x3E => '333399', - 0x3F => '333333', - ); - - /** - * Map color array from BIFF8 built-in color index - * - * @param int $color - * @return array - */ - public static function lookup($color) - { - if (isset(self::$map[$color])) { - return array('rgb' => self::$map[$color]); - } - return array('rgb' => '000000'); - } -} \ No newline at end of file diff --git a/Utils/PHPExcel/Reader/Excel5/Color/BuiltIn.php b/Utils/PHPExcel/Reader/Excel5/Color/BuiltIn.php deleted file mode 100644 index a5b7e59..0000000 --- a/Utils/PHPExcel/Reader/Excel5/Color/BuiltIn.php +++ /dev/null @@ -1,31 +0,0 @@ -<?php - -class PHPExcel_Reader_Excel5_Color_BuiltIn -{ - protected static $map = array( - 0x00 => '000000', - 0x01 => 'FFFFFF', - 0x02 => 'FF0000', - 0x03 => '00FF00', - 0x04 => '0000FF', - 0x05 => 'FFFF00', - 0x06 => 'FF00FF', - 0x07 => '00FFFF', - 0x40 => '000000', // system window text color - 0x41 => 'FFFFFF', // system window background color - ); - - /** - * Map built-in color to RGB value - * - * @param int $color Indexed color - * @return array - */ - public static function lookup($color) - { - if (isset(self::$map[$color])) { - return array('rgb' => self::$map[$color]); - } - return array('rgb' => '000000'); - } -} \ No newline at end of file diff --git a/Utils/PHPExcel/Reader/Excel5/ErrorCode.php b/Utils/PHPExcel/Reader/Excel5/ErrorCode.php deleted file mode 100644 index f1d1cb6..0000000 --- a/Utils/PHPExcel/Reader/Excel5/ErrorCode.php +++ /dev/null @@ -1,28 +0,0 @@ -<?php - -class PHPExcel_Reader_Excel5_ErrorCode -{ - protected static $map = array( - 0x00 => '#NULL!', - 0x07 => '#DIV/0!', - 0x0F => '#VALUE!', - 0x17 => '#REF!', - 0x1D => '#NAME?', - 0x24 => '#NUM!', - 0x2A => '#N/A', - ); - - /** - * Map error code, e.g. '#N/A' - * - * @param int $code - * @return string - */ - public static function lookup($code) - { - if (isset(self::$map[$code])) { - return self::$map[$code]; - } - return false; - } -} \ No newline at end of file diff --git a/Utils/PHPExcel/Reader/Excel5/Escher.php b/Utils/PHPExcel/Reader/Excel5/Escher.php deleted file mode 100644 index 2b99e22..0000000 --- a/Utils/PHPExcel/Reader/Excel5/Escher.php +++ /dev/null @@ -1,669 +0,0 @@ -<?php - -/** - * PHPExcel_Reader_Excel5_Escher - * - * Copyright (c) 2006 - 2015 PHPExcel - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - * - * @category PHPExcel - * @package PHPExcel_Reader_Excel5 - * @copyright Copyright (c) 2006 - 2015 PHPExcel (http://www.codeplex.com/PHPExcel) - * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL - * @version ##VERSION##, ##DATE## - */ -class PHPExcel_Reader_Excel5_Escher -{ - const DGGCONTAINER = 0xF000; - const BSTORECONTAINER = 0xF001; - const DGCONTAINER = 0xF002; - const SPGRCONTAINER = 0xF003; - const SPCONTAINER = 0xF004; - const DGG = 0xF006; - const BSE = 0xF007; - const DG = 0xF008; - const SPGR = 0xF009; - const SP = 0xF00A; - const OPT = 0xF00B; - const CLIENTTEXTBOX = 0xF00D; - const CLIENTANCHOR = 0xF010; - const CLIENTDATA = 0xF011; - const BLIPJPEG = 0xF01D; - const BLIPPNG = 0xF01E; - const SPLITMENUCOLORS = 0xF11E; - const TERTIARYOPT = 0xF122; - - /** - * Escher stream data (binary) - * - * @var string - */ - private $data; - - /** - * Size in bytes of the Escher stream data - * - * @var int - */ - private $dataSize; - - /** - * Current position of stream pointer in Escher stream data - * - * @var int - */ - private $pos; - - /** - * The object to be returned by the reader. Modified during load. - * - * @var mixed - */ - private $object; - - /** - * Create a new PHPExcel_Reader_Excel5_Escher instance - * - * @param mixed $object - */ - public function __construct($object) - { - $this->object = $object; - } - - /** - * Load Escher stream data. May be a partial Escher stream. - * - * @param string $data - */ - public function load($data) - { - $this->data = $data; - - // total byte size of Excel data (workbook global substream + sheet substreams) - $this->dataSize = strlen($this->data); - - $this->pos = 0; - - // Parse Escher stream - while ($this->pos < $this->dataSize) { - // offset: 2; size: 2: Record Type - $fbt = PHPExcel_Reader_Excel5::getInt2d($this->data, $this->pos + 2); - - switch ($fbt) { - case self::DGGCONTAINER: - $this->readDggContainer(); - break; - case self::DGG: - $this->readDgg(); - break; - case self::BSTORECONTAINER: - $this->readBstoreContainer(); - break; - case self::BSE: - $this->readBSE(); - break; - case self::BLIPJPEG: - $this->readBlipJPEG(); - break; - case self::BLIPPNG: - $this->readBlipPNG(); - break; - case self::OPT: - $this->readOPT(); - break; - case self::TERTIARYOPT: - $this->readTertiaryOPT(); - break; - case self::SPLITMENUCOLORS: - $this->readSplitMenuColors(); - break; - case self::DGCONTAINER: - $this->readDgContainer(); - break; - case self::DG: - $this->readDg(); - break; - case self::SPGRCONTAINER: - $this->readSpgrContainer(); - break; - case self::SPCONTAINER: - $this->readSpContainer(); - break; - case self::SPGR: - $this->readSpgr(); - break; - case self::SP: - $this->readSp(); - break; - case self::CLIENTTEXTBOX: - $this->readClientTextbox(); - break; - case self::CLIENTANCHOR: - $this->readClientAnchor(); - break; - case self::CLIENTDATA: - $this->readClientData(); - break; - default: - $this->readDefault(); - break; - } - } - - return $this->object; - } - - /** - * Read a generic record - */ - private function readDefault() - { - // offset 0; size: 2; recVer and recInstance - $verInstance = PHPExcel_Reader_Excel5::getInt2d($this->data, $this->pos); - - // offset: 2; size: 2: Record Type - $fbt = PHPExcel_Reader_Excel5::getInt2d($this->data, $this->pos + 2); - - // bit: 0-3; mask: 0x000F; recVer - $recVer = (0x000F & $verInstance) >> 0; - - $length = PHPExcel_Reader_Excel5::getInt4d($this->data, $this->pos + 4); - $recordData = substr($this->data, $this->pos + 8, $length); - - // move stream pointer to next record - $this->pos += 8 + $length; - } - - /** - * Read DggContainer record (Drawing Group Container) - */ - private function readDggContainer() - { - $length = PHPExcel_Reader_Excel5::getInt4d($this->data, $this->pos + 4); - $recordData = substr($this->data, $this->pos + 8, $length); - - // move stream pointer to next record - $this->pos += 8 + $length; - - // record is a container, read contents - $dggContainer = new PHPExcel_Shared_Escher_DggContainer(); - $this->object->setDggContainer($dggContainer); - $reader = new PHPExcel_Reader_Excel5_Escher($dggContainer); - $reader->load($recordData); - } - - /** - * Read Dgg record (Drawing Group) - */ - private function readDgg() - { - $length = PHPExcel_Reader_Excel5::getInt4d($this->data, $this->pos + 4); - $recordData = substr($this->data, $this->pos + 8, $length); - - // move stream pointer to next record - $this->pos += 8 + $length; - } - - /** - * Read BstoreContainer record (Blip Store Container) - */ - private function readBstoreContainer() - { - $length = PHPExcel_Reader_Excel5::getInt4d($this->data, $this->pos + 4); - $recordData = substr($this->data, $this->pos + 8, $length); - - // move stream pointer to next record - $this->pos += 8 + $length; - - // record is a container, read contents - $bstoreContainer = new PHPExcel_Shared_Escher_DggContainer_BstoreContainer(); - $this->object->setBstoreContainer($bstoreContainer); - $reader = new PHPExcel_Reader_Excel5_Escher($bstoreContainer); - $reader->load($recordData); - } - - /** - * Read BSE record - */ - private function readBSE() - { - // offset: 0; size: 2; recVer and recInstance - - // bit: 4-15; mask: 0xFFF0; recInstance - $recInstance = (0xFFF0 & PHPExcel_Reader_Excel5::getInt2d($this->data, $this->pos)) >> 4; - - $length = PHPExcel_Reader_Excel5::getInt4d($this->data, $this->pos + 4); - $recordData = substr($this->data, $this->pos + 8, $length); - - // move stream pointer to next record - $this->pos += 8 + $length; - - // add BSE to BstoreContainer - $BSE = new PHPExcel_Shared_Escher_DggContainer_BstoreContainer_BSE(); - $this->object->addBSE($BSE); - - $BSE->setBLIPType($recInstance); - - // offset: 0; size: 1; btWin32 (MSOBLIPTYPE) - $btWin32 = ord($recordData[0]); - - // offset: 1; size: 1; btWin32 (MSOBLIPTYPE) - $btMacOS = ord($recordData[1]); - - // offset: 2; size: 16; MD4 digest - $rgbUid = substr($recordData, 2, 16); - - // offset: 18; size: 2; tag - $tag = PHPExcel_Reader_Excel5::getInt2d($recordData, 18); - - // offset: 20; size: 4; size of BLIP in bytes - $size = PHPExcel_Reader_Excel5::getInt4d($recordData, 20); - - // offset: 24; size: 4; number of references to this BLIP - $cRef = PHPExcel_Reader_Excel5::getInt4d($recordData, 24); - - // offset: 28; size: 4; MSOFO file offset - $foDelay = PHPExcel_Reader_Excel5::getInt4d($recordData, 28); - - // offset: 32; size: 1; unused1 - $unused1 = ord($recordData{32}); - - // offset: 33; size: 1; size of nameData in bytes (including null terminator) - $cbName = ord($recordData{33}); - - // offset: 34; size: 1; unused2 - $unused2 = ord($recordData{34}); - - // offset: 35; size: 1; unused3 - $unused3 = ord($recordData{35}); - - // offset: 36; size: $cbName; nameData - $nameData = substr($recordData, 36, $cbName); - - // offset: 36 + $cbName, size: var; the BLIP data - $blipData = substr($recordData, 36 + $cbName); - - // record is a container, read contents - $reader = new PHPExcel_Reader_Excel5_Escher($BSE); - $reader->load($blipData); - } - - /** - * Read BlipJPEG record. Holds raw JPEG image data - */ - private function readBlipJPEG() - { - // offset: 0; size: 2; recVer and recInstance - - // bit: 4-15; mask: 0xFFF0; recInstance - $recInstance = (0xFFF0 & PHPExcel_Reader_Excel5::getInt2d($this->data, $this->pos)) >> 4; - - $length = PHPExcel_Reader_Excel5::getInt4d($this->data, $this->pos + 4); - $recordData = substr($this->data, $this->pos + 8, $length); - - // move stream pointer to next record - $this->pos += 8 + $length; - - $pos = 0; - - // offset: 0; size: 16; rgbUid1 (MD4 digest of) - $rgbUid1 = substr($recordData, 0, 16); - $pos += 16; - - // offset: 16; size: 16; rgbUid2 (MD4 digest), only if $recInstance = 0x46B or 0x6E3 - if (in_array($recInstance, array(0x046B, 0x06E3))) { - $rgbUid2 = substr($recordData, 16, 16); - $pos += 16; - } - - // offset: var; size: 1; tag - $tag = ord($recordData{$pos}); - $pos += 1; - - // offset: var; size: var; the raw image data - $data = substr($recordData, $pos); - - $blip = new PHPExcel_Shared_Escher_DggContainer_BstoreContainer_BSE_Blip(); - $blip->setData($data); - - $this->object->setBlip($blip); - } - - /** - * Read BlipPNG record. Holds raw PNG image data - */ - private function readBlipPNG() - { - // offset: 0; size: 2; recVer and recInstance - - // bit: 4-15; mask: 0xFFF0; recInstance - $recInstance = (0xFFF0 & PHPExcel_Reader_Excel5::getInt2d($this->data, $this->pos)) >> 4; - - $length = PHPExcel_Reader_Excel5::getInt4d($this->data, $this->pos + 4); - $recordData = substr($this->data, $this->pos + 8, $length); - - // move stream pointer to next record - $this->pos += 8 + $length; - - $pos = 0; - - // offset: 0; size: 16; rgbUid1 (MD4 digest of) - $rgbUid1 = substr($recordData, 0, 16); - $pos += 16; - - // offset: 16; size: 16; rgbUid2 (MD4 digest), only if $recInstance = 0x46B or 0x6E3 - if ($recInstance == 0x06E1) { - $rgbUid2 = substr($recordData, 16, 16); - $pos += 16; - } - - // offset: var; size: 1; tag - $tag = ord($recordData{$pos}); - $pos += 1; - - // offset: var; size: var; the raw image data - $data = substr($recordData, $pos); - - $blip = new PHPExcel_Shared_Escher_DggContainer_BstoreContainer_BSE_Blip(); - $blip->setData($data); - - $this->object->setBlip($blip); - } - - /** - * Read OPT record. This record may occur within DggContainer record or SpContainer - */ - private function readOPT() - { - // offset: 0; size: 2; recVer and recInstance - - // bit: 4-15; mask: 0xFFF0; recInstance - $recInstance = (0xFFF0 & PHPExcel_Reader_Excel5::getInt2d($this->data, $this->pos)) >> 4; - - $length = PHPExcel_Reader_Excel5::getInt4d($this->data, $this->pos + 4); - $recordData = substr($this->data, $this->pos + 8, $length); - - // move stream pointer to next record - $this->pos += 8 + $length; - - $this->readOfficeArtRGFOPTE($recordData, $recInstance); - } - - /** - * Read TertiaryOPT record - */ - private function readTertiaryOPT() - { - // offset: 0; size: 2; recVer and recInstance - - // bit: 4-15; mask: 0xFFF0; recInstance - $recInstance = (0xFFF0 & PHPExcel_Reader_Excel5::getInt2d($this->data, $this->pos)) >> 4; - - $length = PHPExcel_Reader_Excel5::getInt4d($this->data, $this->pos + 4); - $recordData = substr($this->data, $this->pos + 8, $length); - - // move stream pointer to next record - $this->pos += 8 + $length; - } - - /** - * Read SplitMenuColors record - */ - private function readSplitMenuColors() - { - $length = PHPExcel_Reader_Excel5::getInt4d($this->data, $this->pos + 4); - $recordData = substr($this->data, $this->pos + 8, $length); - - // move stream pointer to next record - $this->pos += 8 + $length; - } - - /** - * Read DgContainer record (Drawing Container) - */ - private function readDgContainer() - { - $length = PHPExcel_Reader_Excel5::getInt4d($this->data, $this->pos + 4); - $recordData = substr($this->data, $this->pos + 8, $length); - - // move stream pointer to next record - $this->pos += 8 + $length; - - // record is a container, read contents - $dgContainer = new PHPExcel_Shared_Escher_DgContainer(); - $this->object->setDgContainer($dgContainer); - $reader = new PHPExcel_Reader_Excel5_Escher($dgContainer); - $escher = $reader->load($recordData); - } - - /** - * Read Dg record (Drawing) - */ - private function readDg() - { - $length = PHPExcel_Reader_Excel5::getInt4d($this->data, $this->pos + 4); - $recordData = substr($this->data, $this->pos + 8, $length); - - // move stream pointer to next record - $this->pos += 8 + $length; - } - - /** - * Read SpgrContainer record (Shape Group Container) - */ - private function readSpgrContainer() - { - // context is either context DgContainer or SpgrContainer - - $length = PHPExcel_Reader_Excel5::getInt4d($this->data, $this->pos + 4); - $recordData = substr($this->data, $this->pos + 8, $length); - - // move stream pointer to next record - $this->pos += 8 + $length; - - // record is a container, read contents - $spgrContainer = new PHPExcel_Shared_Escher_DgContainer_SpgrContainer(); - - if ($this->object instanceof PHPExcel_Shared_Escher_DgContainer) { - // DgContainer - $this->object->setSpgrContainer($spgrContainer); - } else { - // SpgrContainer - $this->object->addChild($spgrContainer); - } - - $reader = new PHPExcel_Reader_Excel5_Escher($spgrContainer); - $escher = $reader->load($recordData); - } - - /** - * Read SpContainer record (Shape Container) - */ - private function readSpContainer() - { - $length = PHPExcel_Reader_Excel5::getInt4d($this->data, $this->pos + 4); - $recordData = substr($this->data, $this->pos + 8, $length); - - // add spContainer to spgrContainer - $spContainer = new PHPExcel_Shared_Escher_DgContainer_SpgrContainer_SpContainer(); - $this->object->addChild($spContainer); - - // move stream pointer to next record - $this->pos += 8 + $length; - - // record is a container, read contents - $reader = new PHPExcel_Reader_Excel5_Escher($spContainer); - $escher = $reader->load($recordData); - } - - /** - * Read Spgr record (Shape Group) - */ - private function readSpgr() - { - $length = PHPExcel_Reader_Excel5::getInt4d($this->data, $this->pos + 4); - $recordData = substr($this->data, $this->pos + 8, $length); - - // move stream pointer to next record - $this->pos += 8 + $length; - } - - /** - * Read Sp record (Shape) - */ - private function readSp() - { - // offset: 0; size: 2; recVer and recInstance - - // bit: 4-15; mask: 0xFFF0; recInstance - $recInstance = (0xFFF0 & PHPExcel_Reader_Excel5::getInt2d($this->data, $this->pos)) >> 4; - - $length = PHPExcel_Reader_Excel5::getInt4d($this->data, $this->pos + 4); - $recordData = substr($this->data, $this->pos + 8, $length); - - // move stream pointer to next record - $this->pos += 8 + $length; - } - - /** - * Read ClientTextbox record - */ - private function readClientTextbox() - { - // offset: 0; size: 2; recVer and recInstance - - // bit: 4-15; mask: 0xFFF0; recInstance - $recInstance = (0xFFF0 & PHPExcel_Reader_Excel5::getInt2d($this->data, $this->pos)) >> 4; - - $length = PHPExcel_Reader_Excel5::getInt4d($this->data, $this->pos + 4); - $recordData = substr($this->data, $this->pos + 8, $length); - - // move stream pointer to next record - $this->pos += 8 + $length; - } - - /** - * Read ClientAnchor record. This record holds information about where the shape is anchored in worksheet - */ - private function readClientAnchor() - { - $length = PHPExcel_Reader_Excel5::getInt4d($this->data, $this->pos + 4); - $recordData = substr($this->data, $this->pos + 8, $length); - - // move stream pointer to next record - $this->pos += 8 + $length; - - // offset: 2; size: 2; upper-left corner column index (0-based) - $c1 = PHPExcel_Reader_Excel5::getInt2d($recordData, 2); - - // offset: 4; size: 2; upper-left corner horizontal offset in 1/1024 of column width - $startOffsetX = PHPExcel_Reader_Excel5::getInt2d($recordData, 4); - - // offset: 6; size: 2; upper-left corner row index (0-based) - $r1 = PHPExcel_Reader_Excel5::getInt2d($recordData, 6); - - // offset: 8; size: 2; upper-left corner vertical offset in 1/256 of row height - $startOffsetY = PHPExcel_Reader_Excel5::getInt2d($recordData, 8); - - // offset: 10; size: 2; bottom-right corner column index (0-based) - $c2 = PHPExcel_Reader_Excel5::getInt2d($recordData, 10); - - // offset: 12; size: 2; bottom-right corner horizontal offset in 1/1024 of column width - $endOffsetX = PHPExcel_Reader_Excel5::getInt2d($recordData, 12); - - // offset: 14; size: 2; bottom-right corner row index (0-based) - $r2 = PHPExcel_Reader_Excel5::getInt2d($recordData, 14); - - // offset: 16; size: 2; bottom-right corner vertical offset in 1/256 of row height - $endOffsetY = PHPExcel_Reader_Excel5::getInt2d($recordData, 16); - - // set the start coordinates - $this->object->setStartCoordinates(PHPExcel_Cell::stringFromColumnIndex($c1) . ($r1 + 1)); - - // set the start offsetX - $this->object->setStartOffsetX($startOffsetX); - - // set the start offsetY - $this->object->setStartOffsetY($startOffsetY); - - // set the end coordinates - $this->object->setEndCoordinates(PHPExcel_Cell::stringFromColumnIndex($c2) . ($r2 + 1)); - - // set the end offsetX - $this->object->setEndOffsetX($endOffsetX); - - // set the end offsetY - $this->object->setEndOffsetY($endOffsetY); - } - - /** - * Read ClientData record - */ - private function readClientData() - { - $length = PHPExcel_Reader_Excel5::getInt4d($this->data, $this->pos + 4); - $recordData = substr($this->data, $this->pos + 8, $length); - - // move stream pointer to next record - $this->pos += 8 + $length; - } - - /** - * Read OfficeArtRGFOPTE table of property-value pairs - * - * @param string $data Binary data - * @param int $n Number of properties - */ - private function readOfficeArtRGFOPTE($data, $n) - { - $splicedComplexData = substr($data, 6 * $n); - - // loop through property-value pairs - for ($i = 0; $i < $n; ++$i) { - // read 6 bytes at a time - $fopte = substr($data, 6 * $i, 6); - - // offset: 0; size: 2; opid - $opid = PHPExcel_Reader_Excel5::getInt2d($fopte, 0); - - // bit: 0-13; mask: 0x3FFF; opid.opid - $opidOpid = (0x3FFF & $opid) >> 0; - - // bit: 14; mask 0x4000; 1 = value in op field is BLIP identifier - $opidFBid = (0x4000 & $opid) >> 14; - - // bit: 15; mask 0x8000; 1 = this is a complex property, op field specifies size of complex data - $opidFComplex = (0x8000 & $opid) >> 15; - - // offset: 2; size: 4; the value for this property - $op = PHPExcel_Reader_Excel5::getInt4d($fopte, 2); - - if ($opidFComplex) { - $complexData = substr($splicedComplexData, 0, $op); - $splicedComplexData = substr($splicedComplexData, $op); - - // we store string value with complex data - $value = $complexData; - } else { - // we store integer value - $value = $op; - } - - $this->object->setOPT($opidOpid, $value); - } - } -} diff --git a/Utils/PHPExcel/Reader/Excel5/MD5.php b/Utils/PHPExcel/Reader/Excel5/MD5.php deleted file mode 100644 index f14ea94..0000000 --- a/Utils/PHPExcel/Reader/Excel5/MD5.php +++ /dev/null @@ -1,203 +0,0 @@ -<?php - -/** - * PHPExcel_Reader_Excel5_MD5 - * - * Copyright (c) 2006 - 2015 PHPExcel - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - * - * @category PHPExcel - * @package PHPExcel_Reader_Excel5 - * @copyright Copyright (c) 2006 - 2015 PHPExcel (http://www.codeplex.com/PHPExcel) - * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL - * @version ##VERSION##, ##DATE## - */ -class PHPExcel_Reader_Excel5_MD5 -{ - // Context - private $a; - private $b; - private $c; - private $d; - - /** - * MD5 stream constructor - */ - public function __construct() - { - $this->reset(); - } - - /** - * Reset the MD5 stream context - */ - public function reset() - { - $this->a = 0x67452301; - $this->b = 0xEFCDAB89; - $this->c = 0x98BADCFE; - $this->d = 0x10325476; - } - - /** - * Get MD5 stream context - * - * @return string - */ - public function getContext() - { - $s = ''; - foreach (array('a', 'b', 'c', 'd') as $i) { - $v = $this->{$i}; - $s .= chr($v & 0xff); - $s .= chr(($v >> 8) & 0xff); - $s .= chr(($v >> 16) & 0xff); - $s .= chr(($v >> 24) & 0xff); - } - - return $s; - } - - /** - * Add data to context - * - * @param string $data Data to add - */ - public function add($data) - { - $words = array_values(unpack('V16', $data)); - - $A = $this->a; - $B = $this->b; - $C = $this->c; - $D = $this->d; - - $F = array('PHPExcel_Reader_Excel5_MD5','f'); - $G = array('PHPExcel_Reader_Excel5_MD5','g'); - $H = array('PHPExcel_Reader_Excel5_MD5','h'); - $I = array('PHPExcel_Reader_Excel5_MD5','i'); - - /* ROUND 1 */ - self::step($F, $A, $B, $C, $D, $words[0], 7, 0xd76aa478); - self::step($F, $D, $A, $B, $C, $words[1], 12, 0xe8c7b756); - self::step($F, $C, $D, $A, $B, $words[2], 17, 0x242070db); - self::step($F, $B, $C, $D, $A, $words[3], 22, 0xc1bdceee); - self::step($F, $A, $B, $C, $D, $words[4], 7, 0xf57c0faf); - self::step($F, $D, $A, $B, $C, $words[5], 12, 0x4787c62a); - self::step($F, $C, $D, $A, $B, $words[6], 17, 0xa8304613); - self::step($F, $B, $C, $D, $A, $words[7], 22, 0xfd469501); - self::step($F, $A, $B, $C, $D, $words[8], 7, 0x698098d8); - self::step($F, $D, $A, $B, $C, $words[9], 12, 0x8b44f7af); - self::step($F, $C, $D, $A, $B, $words[10], 17, 0xffff5bb1); - self::step($F, $B, $C, $D, $A, $words[11], 22, 0x895cd7be); - self::step($F, $A, $B, $C, $D, $words[12], 7, 0x6b901122); - self::step($F, $D, $A, $B, $C, $words[13], 12, 0xfd987193); - self::step($F, $C, $D, $A, $B, $words[14], 17, 0xa679438e); - self::step($F, $B, $C, $D, $A, $words[15], 22, 0x49b40821); - - /* ROUND 2 */ - self::step($G, $A, $B, $C, $D, $words[1], 5, 0xf61e2562); - self::step($G, $D, $A, $B, $C, $words[6], 9, 0xc040b340); - self::step($G, $C, $D, $A, $B, $words[11], 14, 0x265e5a51); - self::step($G, $B, $C, $D, $A, $words[0], 20, 0xe9b6c7aa); - self::step($G, $A, $B, $C, $D, $words[5], 5, 0xd62f105d); - self::step($G, $D, $A, $B, $C, $words[10], 9, 0x02441453); - self::step($G, $C, $D, $A, $B, $words[15], 14, 0xd8a1e681); - self::step($G, $B, $C, $D, $A, $words[4], 20, 0xe7d3fbc8); - self::step($G, $A, $B, $C, $D, $words[9], 5, 0x21e1cde6); - self::step($G, $D, $A, $B, $C, $words[14], 9, 0xc33707d6); - self::step($G, $C, $D, $A, $B, $words[3], 14, 0xf4d50d87); - self::step($G, $B, $C, $D, $A, $words[8], 20, 0x455a14ed); - self::step($G, $A, $B, $C, $D, $words[13], 5, 0xa9e3e905); - self::step($G, $D, $A, $B, $C, $words[2], 9, 0xfcefa3f8); - self::step($G, $C, $D, $A, $B, $words[7], 14, 0x676f02d9); - self::step($G, $B, $C, $D, $A, $words[12], 20, 0x8d2a4c8a); - - /* ROUND 3 */ - self::step($H, $A, $B, $C, $D, $words[5], 4, 0xfffa3942); - self::step($H, $D, $A, $B, $C, $words[8], 11, 0x8771f681); - self::step($H, $C, $D, $A, $B, $words[11], 16, 0x6d9d6122); - self::step($H, $B, $C, $D, $A, $words[14], 23, 0xfde5380c); - self::step($H, $A, $B, $C, $D, $words[1], 4, 0xa4beea44); - self::step($H, $D, $A, $B, $C, $words[4], 11, 0x4bdecfa9); - self::step($H, $C, $D, $A, $B, $words[7], 16, 0xf6bb4b60); - self::step($H, $B, $C, $D, $A, $words[10], 23, 0xbebfbc70); - self::step($H, $A, $B, $C, $D, $words[13], 4, 0x289b7ec6); - self::step($H, $D, $A, $B, $C, $words[0], 11, 0xeaa127fa); - self::step($H, $C, $D, $A, $B, $words[3], 16, 0xd4ef3085); - self::step($H, $B, $C, $D, $A, $words[6], 23, 0x04881d05); - self::step($H, $A, $B, $C, $D, $words[9], 4, 0xd9d4d039); - self::step($H, $D, $A, $B, $C, $words[12], 11, 0xe6db99e5); - self::step($H, $C, $D, $A, $B, $words[15], 16, 0x1fa27cf8); - self::step($H, $B, $C, $D, $A, $words[2], 23, 0xc4ac5665); - - /* ROUND 4 */ - self::step($I, $A, $B, $C, $D, $words[0], 6, 0xf4292244); - self::step($I, $D, $A, $B, $C, $words[7], 10, 0x432aff97); - self::step($I, $C, $D, $A, $B, $words[14], 15, 0xab9423a7); - self::step($I, $B, $C, $D, $A, $words[5], 21, 0xfc93a039); - self::step($I, $A, $B, $C, $D, $words[12], 6, 0x655b59c3); - self::step($I, $D, $A, $B, $C, $words[3], 10, 0x8f0ccc92); - self::step($I, $C, $D, $A, $B, $words[10], 15, 0xffeff47d); - self::step($I, $B, $C, $D, $A, $words[1], 21, 0x85845dd1); - self::step($I, $A, $B, $C, $D, $words[8], 6, 0x6fa87e4f); - self::step($I, $D, $A, $B, $C, $words[15], 10, 0xfe2ce6e0); - self::step($I, $C, $D, $A, $B, $words[6], 15, 0xa3014314); - self::step($I, $B, $C, $D, $A, $words[13], 21, 0x4e0811a1); - self::step($I, $A, $B, $C, $D, $words[4], 6, 0xf7537e82); - self::step($I, $D, $A, $B, $C, $words[11], 10, 0xbd3af235); - self::step($I, $C, $D, $A, $B, $words[2], 15, 0x2ad7d2bb); - self::step($I, $B, $C, $D, $A, $words[9], 21, 0xeb86d391); - - $this->a = ($this->a + $A) & 0xffffffff; - $this->b = ($this->b + $B) & 0xffffffff; - $this->c = ($this->c + $C) & 0xffffffff; - $this->d = ($this->d + $D) & 0xffffffff; - } - - private static function f($X, $Y, $Z) - { - return (($X & $Y) | ((~ $X) & $Z)); // X AND Y OR NOT X AND Z - } - - private static function g($X, $Y, $Z) - { - return (($X & $Z) | ($Y & (~ $Z))); // X AND Z OR Y AND NOT Z - } - - private static function h($X, $Y, $Z) - { - return ($X ^ $Y ^ $Z); // X XOR Y XOR Z - } - - private static function i($X, $Y, $Z) - { - return ($Y ^ ($X | (~ $Z))) ; // Y XOR (X OR NOT Z) - } - - private static function step($func, &$A, $B, $C, $D, $M, $s, $t) - { - $A = ($A + call_user_func($func, $B, $C, $D) + $M + $t) & 0xffffffff; - $A = self::rotate($A, $s); - $A = ($B + $A) & 0xffffffff; - } - - private static function rotate($decimal, $bits) - { - $binary = str_pad(decbin($decimal), 32, "0", STR_PAD_LEFT); - return bindec(substr($binary, $bits).substr($binary, 0, $bits)); - } -} diff --git a/Utils/PHPExcel/Reader/Excel5/RC4.php b/Utils/PHPExcel/Reader/Excel5/RC4.php deleted file mode 100644 index 5640539..0000000 --- a/Utils/PHPExcel/Reader/Excel5/RC4.php +++ /dev/null @@ -1,81 +0,0 @@ -<?php - -/** - * PHPExcel_Reader_Excel5_RC4 - * - * Copyright (c) 2006 - 2015 PHPExcel - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - * - * @category PHPExcel - * @package PHPExcel_Reader_Excel5 - * @copyright Copyright (c) 2006 - 2015 PHPExcel (http://www.codeplex.com/PHPExcel) - * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL - * @version ##VERSION##, ##DATE## - */ -class PHPExcel_Reader_Excel5_RC4 -{ - // Context - protected $s = array(); - protected $i = 0; - protected $j = 0; - - /** - * RC4 stream decryption/encryption constrcutor - * - * @param string $key Encryption key/passphrase - */ - public function __construct($key) - { - $len = strlen($key); - - for ($this->i = 0; $this->i < 256; $this->i++) { - $this->s[$this->i] = $this->i; - } - - $this->j = 0; - for ($this->i = 0; $this->i < 256; $this->i++) { - $this->j = ($this->j + $this->s[$this->i] + ord($key[$this->i % $len])) % 256; - $t = $this->s[$this->i]; - $this->s[$this->i] = $this->s[$this->j]; - $this->s[$this->j] = $t; - } - $this->i = $this->j = 0; - } - - /** - * Symmetric decryption/encryption function - * - * @param string $data Data to encrypt/decrypt - * - * @return string - */ - public function RC4($data) - { - $len = strlen($data); - for ($c = 0; $c < $len; $c++) { - $this->i = ($this->i + 1) % 256; - $this->j = ($this->j + $this->s[$this->i]) % 256; - $t = $this->s[$this->i]; - $this->s[$this->i] = $this->s[$this->j]; - $this->s[$this->j] = $t; - - $t = ($this->s[$this->i] + $this->s[$this->j]) % 256; - - $data[$c] = chr(ord($data[$c]) ^ $this->s[$t]); - } - return $data; - } -} diff --git a/Utils/PHPExcel/Reader/Excel5/Style/Border.php b/Utils/PHPExcel/Reader/Excel5/Style/Border.php deleted file mode 100644 index fb45b9d..0000000 --- a/Utils/PHPExcel/Reader/Excel5/Style/Border.php +++ /dev/null @@ -1,36 +0,0 @@ -<?php - -class PHPExcel_Reader_Excel5_Style_Border -{ - protected static $map = array( - 0x00 => PHPExcel_Style_Border::BORDER_NONE, - 0x01 => PHPExcel_Style_Border::BORDER_THIN, - 0x02 => PHPExcel_Style_Border::BORDER_MEDIUM, - 0x03 => PHPExcel_Style_Border::BORDER_DASHED, - 0x04 => PHPExcel_Style_Border::BORDER_DOTTED, - 0x05 => PHPExcel_Style_Border::BORDER_THICK, - 0x06 => PHPExcel_Style_Border::BORDER_DOUBLE, - 0x07 => PHPExcel_Style_Border::BORDER_HAIR, - 0x08 => PHPExcel_Style_Border::BORDER_MEDIUMDASHED, - 0x09 => PHPExcel_Style_Border::BORDER_DASHDOT, - 0x0A => PHPExcel_Style_Border::BORDER_MEDIUMDASHDOT, - 0x0B => PHPExcel_Style_Border::BORDER_DASHDOTDOT, - 0x0C => PHPExcel_Style_Border::BORDER_MEDIUMDASHDOTDOT, - 0x0D => PHPExcel_Style_Border::BORDER_SLANTDASHDOT, - ); - - /** - * Map border style - * OpenOffice documentation: 2.5.11 - * - * @param int $index - * @return string - */ - public static function lookup($index) - { - if (isset(self::$map[$index])) { - return self::$map[$index]; - } - return PHPExcel_Style_Border::BORDER_NONE; - } -} \ No newline at end of file diff --git a/Utils/PHPExcel/Reader/Excel5/Style/FillPattern.php b/Utils/PHPExcel/Reader/Excel5/Style/FillPattern.php deleted file mode 100644 index c92d19a..0000000 --- a/Utils/PHPExcel/Reader/Excel5/Style/FillPattern.php +++ /dev/null @@ -1,41 +0,0 @@ -<?php - -class PHPExcel_Reader_Excel5_Style_FillPattern -{ - protected static $map = array( - 0x00 => PHPExcel_Style_Fill::FILL_NONE, - 0x01 => PHPExcel_Style_Fill::FILL_SOLID, - 0x02 => PHPExcel_Style_Fill::FILL_PATTERN_MEDIUMGRAY, - 0x03 => PHPExcel_Style_Fill::FILL_PATTERN_DARKGRAY, - 0x04 => PHPExcel_Style_Fill::FILL_PATTERN_LIGHTGRAY, - 0x05 => PHPExcel_Style_Fill::FILL_PATTERN_DARKHORIZONTAL, - 0x06 => PHPExcel_Style_Fill::FILL_PATTERN_DARKVERTICAL, - 0x07 => PHPExcel_Style_Fill::FILL_PATTERN_DARKDOWN, - 0x08 => PHPExcel_Style_Fill::FILL_PATTERN_DARKUP, - 0x09 => PHPExcel_Style_Fill::FILL_PATTERN_DARKGRID, - 0x0A => PHPExcel_Style_Fill::FILL_PATTERN_DARKTRELLIS, - 0x0B => PHPExcel_Style_Fill::FILL_PATTERN_LIGHTHORIZONTAL, - 0x0C => PHPExcel_Style_Fill::FILL_PATTERN_LIGHTVERTICAL, - 0x0D => PHPExcel_Style_Fill::FILL_PATTERN_LIGHTDOWN, - 0x0E => PHPExcel_Style_Fill::FILL_PATTERN_LIGHTUP, - 0x0F => PHPExcel_Style_Fill::FILL_PATTERN_LIGHTGRID, - 0x10 => PHPExcel_Style_Fill::FILL_PATTERN_LIGHTTRELLIS, - 0x11 => PHPExcel_Style_Fill::FILL_PATTERN_GRAY125, - 0x12 => PHPExcel_Style_Fill::FILL_PATTERN_GRAY0625, - ); - - /** - * Get fill pattern from index - * OpenOffice documentation: 2.5.12 - * - * @param int $index - * @return string - */ - public static function lookup($index) - { - if (isset(self::$map[$index])) { - return self::$map[$index]; - } - return PHPExcel_Style_Fill::FILL_NONE; - } -} \ No newline at end of file diff --git a/Utils/PHPExcel/Reader/Exception.php b/Utils/PHPExcel/Reader/Exception.php deleted file mode 100644 index 48b3f82..0000000 --- a/Utils/PHPExcel/Reader/Exception.php +++ /dev/null @@ -1,46 +0,0 @@ -<?php - -/** - * PHPExcel_Reader_Exception - * - * Copyright (c) 2006 - 2015 PHPExcel - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - * - * @category PHPExcel - * @package PHPExcel_Reader - * @copyright Copyright (c) 2006 - 2015 PHPExcel (http://www.codeplex.com/PHPExcel) - * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL - * @version ##VERSION##, ##DATE## - */ -class PHPExcel_Reader_Exception extends PHPExcel_Exception -{ - /** - * Error handler callback - * - * @param mixed $code - * @param mixed $string - * @param mixed $file - * @param mixed $line - * @param mixed $context - */ - public static function errorHandlerCallback($code, $string, $file, $line, $context) - { - $e = new self($string, $code); - $e->line = $line; - $e->file = $file; - throw $e; - } -} diff --git a/Utils/PHPExcel/Reader/Gnumeric.php b/Utils/PHPExcel/Reader/Gnumeric.php deleted file mode 100644 index 913e52b..0000000 --- a/Utils/PHPExcel/Reader/Gnumeric.php +++ /dev/null @@ -1,850 +0,0 @@ -<?php - -/** PHPExcel root directory */ -if (!defined('PHPEXCEL_ROOT')) { - /** - * @ignore - */ - define('PHPEXCEL_ROOT', dirname(__FILE__) . '/../../'); - require(PHPEXCEL_ROOT . 'PHPExcel/Autoloader.php'); -} - -/** - * PHPExcel_Reader_Gnumeric - * - * Copyright (c) 2006 - 2015 PHPExcel - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - * - * @category PHPExcel - * @package PHPExcel_Reader - * @copyright Copyright (c) 2006 - 2015 PHPExcel (http://www.codeplex.com/PHPExcel) - * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL - * @version ##VERSION##, ##DATE## - */ -class PHPExcel_Reader_Gnumeric extends PHPExcel_Reader_Abstract implements PHPExcel_Reader_IReader -{ - /** - * Formats - * - * @var array - */ - private $styles = array(); - - /** - * Shared Expressions - * - * @var array - */ - private $expressions = array(); - - private $referenceHelper = null; - - /** - * Create a new PHPExcel_Reader_Gnumeric - */ - public function __construct() - { - $this->readFilter = new PHPExcel_Reader_DefaultReadFilter(); - $this->referenceHelper = PHPExcel_ReferenceHelper::getInstance(); - } - - /** - * Can the current PHPExcel_Reader_IReader read the file? - * - * @param string $pFilename - * @return boolean - * @throws PHPExcel_Reader_Exception - */ - public function canRead($pFilename) - { - // Check if file exists - if (!file_exists($pFilename)) { - throw new PHPExcel_Reader_Exception("Could not open " . $pFilename . " for reading! File does not exist."); - } - - // Check if gzlib functions are available - if (!function_exists('gzread')) { - throw new PHPExcel_Reader_Exception("gzlib library is not enabled"); - } - - // Read signature data (first 3 bytes) - $fh = fopen($pFilename, 'r'); - $data = fread($fh, 2); - fclose($fh); - - if ($data != chr(0x1F).chr(0x8B)) { - return false; - } - - return true; - } - - /** - * Reads names of the worksheets from a file, without parsing the whole file to a PHPExcel object - * - * @param string $pFilename - * @throws PHPExcel_Reader_Exception - */ - public function listWorksheetNames($pFilename) - { - // Check if file exists - if (!file_exists($pFilename)) { - throw new PHPExcel_Reader_Exception("Could not open " . $pFilename . " for reading! File does not exist."); - } - - $xml = new XMLReader(); - $xml->xml($this->securityScanFile('compress.zlib://'.realpath($pFilename)), null, PHPExcel_Settings::getLibXmlLoaderOptions()); - $xml->setParserProperty(2, true); - - $worksheetNames = array(); - while ($xml->read()) { - if ($xml->name == 'gnm:SheetName' && $xml->nodeType == XMLReader::ELEMENT) { - $xml->read(); // Move onto the value node - $worksheetNames[] = (string) $xml->value; - } elseif ($xml->name == 'gnm:Sheets') { - // break out of the loop once we've got our sheet names rather than parse the entire file - break; - } - } - - return $worksheetNames; - } - - /** - * Return worksheet info (Name, Last Column Letter, Last Column Index, Total Rows, Total Columns) - * - * @param string $pFilename - * @throws PHPExcel_Reader_Exception - */ - public function listWorksheetInfo($pFilename) - { - // Check if file exists - if (!file_exists($pFilename)) { - throw new PHPExcel_Reader_Exception("Could not open " . $pFilename . " for reading! File does not exist."); - } - - $xml = new XMLReader(); - $xml->xml($this->securityScanFile('compress.zlib://'.realpath($pFilename)), null, PHPExcel_Settings::getLibXmlLoaderOptions()); - $xml->setParserProperty(2, true); - - $worksheetInfo = array(); - while ($xml->read()) { - if ($xml->name == 'gnm:Sheet' && $xml->nodeType == XMLReader::ELEMENT) { - $tmpInfo = array( - 'worksheetName' => '', - 'lastColumnLetter' => 'A', - 'lastColumnIndex' => 0, - 'totalRows' => 0, - 'totalColumns' => 0, - ); - - while ($xml->read()) { - if ($xml->name == 'gnm:Name' && $xml->nodeType == XMLReader::ELEMENT) { - $xml->read(); // Move onto the value node - $tmpInfo['worksheetName'] = (string) $xml->value; - } elseif ($xml->name == 'gnm:MaxCol' && $xml->nodeType == XMLReader::ELEMENT) { - $xml->read(); // Move onto the value node - $tmpInfo['lastColumnIndex'] = (int) $xml->value; - $tmpInfo['totalColumns'] = (int) $xml->value + 1; - } elseif ($xml->name == 'gnm:MaxRow' && $xml->nodeType == XMLReader::ELEMENT) { - $xml->read(); // Move onto the value node - $tmpInfo['totalRows'] = (int) $xml->value + 1; - break; - } - } - $tmpInfo['lastColumnLetter'] = PHPExcel_Cell::stringFromColumnIndex($tmpInfo['lastColumnIndex']); - $worksheetInfo[] = $tmpInfo; - } - } - - return $worksheetInfo; - } - - private function gzfileGetContents($filename) - { - $file = @gzopen($filename, 'rb'); - if ($file !== false) { - $data = ''; - while (!gzeof($file)) { - $data .= gzread($file, 1024); - } - gzclose($file); - } - return $data; - } - - /** - * Loads PHPExcel from file - * - * @param string $pFilename - * @return PHPExcel - * @throws PHPExcel_Reader_Exception - */ - public function load($pFilename) - { - // Create new PHPExcel - $objPHPExcel = new PHPExcel(); - - // Load into this instance - return $this->loadIntoExisting($pFilename, $objPHPExcel); - } - - /** - * Loads PHPExcel from file into PHPExcel instance - * - * @param string $pFilename - * @param PHPExcel $objPHPExcel - * @return PHPExcel - * @throws PHPExcel_Reader_Exception - */ - public function loadIntoExisting($pFilename, PHPExcel $objPHPExcel) - { - // Check if file exists - if (!file_exists($pFilename)) { - throw new PHPExcel_Reader_Exception("Could not open " . $pFilename . " for reading! File does not exist."); - } - - $timezoneObj = new DateTimeZone('Europe/London'); - $GMT = new DateTimeZone('UTC'); - - $gFileData = $this->gzfileGetContents($pFilename); - -// echo '<pre>'; -// echo htmlentities($gFileData,ENT_QUOTES,'UTF-8'); -// echo '</pre><hr />'; -// - $xml = simplexml_load_string($this->securityScan($gFileData), 'SimpleXMLElement', PHPExcel_Settings::getLibXmlLoaderOptions()); - $namespacesMeta = $xml->getNamespaces(true); - -// var_dump($namespacesMeta); -// - $gnmXML = $xml->children($namespacesMeta['gnm']); - - $docProps = $objPHPExcel->getProperties(); - // Document Properties are held differently, depending on the version of Gnumeric - if (isset($namespacesMeta['office'])) { - $officeXML = $xml->children($namespacesMeta['office']); - $officeDocXML = $officeXML->{'document-meta'}; - $officeDocMetaXML = $officeDocXML->meta; - - foreach ($officeDocMetaXML as $officePropertyData) { - $officePropertyDC = array(); - if (isset($namespacesMeta['dc'])) { - $officePropertyDC = $officePropertyData->children($namespacesMeta['dc']); - } - foreach ($officePropertyDC as $propertyName => $propertyValue) { - $propertyValue = (string) $propertyValue; - switch ($propertyName) { - case 'title': - $docProps->setTitle(trim($propertyValue)); - break; - case 'subject': - $docProps->setSubject(trim($propertyValue)); - break; - case 'creator': - $docProps->setCreator(trim($propertyValue)); - $docProps->setLastModifiedBy(trim($propertyValue)); - break; - case 'date': - $creationDate = strtotime(trim($propertyValue)); - $docProps->setCreated($creationDate); - $docProps->setModified($creationDate); - break; - case 'description': - $docProps->setDescription(trim($propertyValue)); - break; - } - } - $officePropertyMeta = array(); - if (isset($namespacesMeta['meta'])) { - $officePropertyMeta = $officePropertyData->children($namespacesMeta['meta']); - } - foreach ($officePropertyMeta as $propertyName => $propertyValue) { - $attributes = $propertyValue->attributes($namespacesMeta['meta']); - $propertyValue = (string) $propertyValue; - switch ($propertyName) { - case 'keyword': - $docProps->setKeywords(trim($propertyValue)); - break; - case 'initial-creator': - $docProps->setCreator(trim($propertyValue)); - $docProps->setLastModifiedBy(trim($propertyValue)); - break; - case 'creation-date': - $creationDate = strtotime(trim($propertyValue)); - $docProps->setCreated($creationDate); - $docProps->setModified($creationDate); - break; - case 'user-defined': - list(, $attrName) = explode(':', $attributes['name']); - switch ($attrName) { - case 'publisher': - $docProps->setCompany(trim($propertyValue)); - break; - case 'category': - $docProps->setCategory(trim($propertyValue)); - break; - case 'manager': - $docProps->setManager(trim($propertyValue)); - break; - } - break; - } - } - } - } elseif (isset($gnmXML->Summary)) { - foreach ($gnmXML->Summary->Item as $summaryItem) { - $propertyName = $summaryItem->name; - $propertyValue = $summaryItem->{'val-string'}; - switch ($propertyName) { - case 'title': - $docProps->setTitle(trim($propertyValue)); - break; - case 'comments': - $docProps->setDescription(trim($propertyValue)); - break; - case 'keywords': - $docProps->setKeywords(trim($propertyValue)); - break; - case 'category': - $docProps->setCategory(trim($propertyValue)); - break; - case 'manager': - $docProps->setManager(trim($propertyValue)); - break; - case 'author': - $docProps->setCreator(trim($propertyValue)); - $docProps->setLastModifiedBy(trim($propertyValue)); - break; - case 'company': - $docProps->setCompany(trim($propertyValue)); - break; - } - } - } - - $worksheetID = 0; - foreach ($gnmXML->Sheets->Sheet as $sheet) { - $worksheetName = (string) $sheet->Name; -// echo '<b>Worksheet: ', $worksheetName,'</b><br />'; - if ((isset($this->loadSheetsOnly)) && (!in_array($worksheetName, $this->loadSheetsOnly))) { - continue; - } - - $maxRow = $maxCol = 0; - - // Create new Worksheet - $objPHPExcel->createSheet(); - $objPHPExcel->setActiveSheetIndex($worksheetID); - // Use false for $updateFormulaCellReferences to prevent adjustment of worksheet references in formula - // cells... during the load, all formulae should be correct, and we're simply bringing the worksheet - // name in line with the formula, not the reverse - $objPHPExcel->getActiveSheet()->setTitle($worksheetName, false); - - if ((!$this->readDataOnly) && (isset($sheet->PrintInformation))) { - if (isset($sheet->PrintInformation->Margins)) { - foreach ($sheet->PrintInformation->Margins->children('gnm', true) as $key => $margin) { - $marginAttributes = $margin->attributes(); - $marginSize = 72 / 100; // Default - switch ($marginAttributes['PrefUnit']) { - case 'mm': - $marginSize = intval($marginAttributes['Points']) / 100; - break; - } - switch ($key) { - case 'top': - $objPHPExcel->getActiveSheet()->getPageMargins()->setTop($marginSize); - break; - case 'bottom': - $objPHPExcel->getActiveSheet()->getPageMargins()->setBottom($marginSize); - break; - case 'left': - $objPHPExcel->getActiveSheet()->getPageMargins()->setLeft($marginSize); - break; - case 'right': - $objPHPExcel->getActiveSheet()->getPageMargins()->setRight($marginSize); - break; - case 'header': - $objPHPExcel->getActiveSheet()->getPageMargins()->setHeader($marginSize); - break; - case 'footer': - $objPHPExcel->getActiveSheet()->getPageMargins()->setFooter($marginSize); - break; - } - } - } - } - - foreach ($sheet->Cells->Cell as $cell) { - $cellAttributes = $cell->attributes(); - $row = (int) $cellAttributes->Row + 1; - $column = (int) $cellAttributes->Col; - - if ($row > $maxRow) { - $maxRow = $row; - } - if ($column > $maxCol) { - $maxCol = $column; - } - - $column = PHPExcel_Cell::stringFromColumnIndex($column); - - // Read cell? - if ($this->getReadFilter() !== null) { - if (!$this->getReadFilter()->readCell($column, $row, $worksheetName)) { - continue; - } - } - - $ValueType = $cellAttributes->ValueType; - $ExprID = (string) $cellAttributes->ExprID; -// echo 'Cell ', $column, $row,'<br />'; -// echo 'Type is ', $ValueType,'<br />'; -// echo 'Value is ', $cell,'<br />'; - $type = PHPExcel_Cell_DataType::TYPE_FORMULA; - if ($ExprID > '') { - if (((string) $cell) > '') { - $this->expressions[$ExprID] = array( - 'column' => $cellAttributes->Col, - 'row' => $cellAttributes->Row, - 'formula' => (string) $cell - ); -// echo 'NEW EXPRESSION ', $ExprID,'<br />'; - } else { - $expression = $this->expressions[$ExprID]; - - $cell = $this->referenceHelper->updateFormulaReferences( - $expression['formula'], - 'A1', - $cellAttributes->Col - $expression['column'], - $cellAttributes->Row - $expression['row'], - $worksheetName - ); -// echo 'SHARED EXPRESSION ', $ExprID,'<br />'; -// echo 'New Value is ', $cell,'<br />'; - } - $type = PHPExcel_Cell_DataType::TYPE_FORMULA; - } else { - switch ($ValueType) { - case '10': // NULL - $type = PHPExcel_Cell_DataType::TYPE_NULL; - break; - case '20': // Boolean - $type = PHPExcel_Cell_DataType::TYPE_BOOL; - $cell = ($cell == 'TRUE') ? true: false; - break; - case '30': // Integer - $cell = intval($cell); - // Excel 2007+ doesn't differentiate between integer and float, so set the value and dropthru to the next (numeric) case - case '40': // Float - $type = PHPExcel_Cell_DataType::TYPE_NUMERIC; - break; - case '50': // Error - $type = PHPExcel_Cell_DataType::TYPE_ERROR; - break; - case '60': // String - $type = PHPExcel_Cell_DataType::TYPE_STRING; - break; - case '70': // Cell Range - case '80': // Array - } - } - $objPHPExcel->getActiveSheet()->getCell($column.$row)->setValueExplicit($cell, $type); - } - - if ((!$this->readDataOnly) && (isset($sheet->Objects))) { - foreach ($sheet->Objects->children('gnm', true) as $key => $comment) { - $commentAttributes = $comment->attributes(); - // Only comment objects are handled at the moment - if ($commentAttributes->Text) { - $objPHPExcel->getActiveSheet()->getComment((string)$commentAttributes->ObjectBound)->setAuthor((string)$commentAttributes->Author)->setText($this->parseRichText((string)$commentAttributes->Text)); - } - } - } -// echo '$maxCol=', $maxCol,'; $maxRow=', $maxRow,'<br />'; -// - foreach ($sheet->Styles->StyleRegion as $styleRegion) { - $styleAttributes = $styleRegion->attributes(); - if (($styleAttributes['startRow'] <= $maxRow) && - ($styleAttributes['startCol'] <= $maxCol)) { - $startColumn = PHPExcel_Cell::stringFromColumnIndex((int) $styleAttributes['startCol']); - $startRow = $styleAttributes['startRow'] + 1; - - $endColumn = ($styleAttributes['endCol'] > $maxCol) ? $maxCol : (int) $styleAttributes['endCol']; - $endColumn = PHPExcel_Cell::stringFromColumnIndex($endColumn); - $endRow = ($styleAttributes['endRow'] > $maxRow) ? $maxRow : $styleAttributes['endRow']; - $endRow += 1; - $cellRange = $startColumn.$startRow.':'.$endColumn.$endRow; -// echo $cellRange,'<br />'; - - $styleAttributes = $styleRegion->Style->attributes(); -// var_dump($styleAttributes); -// echo '<br />'; - - // We still set the number format mask for date/time values, even if readDataOnly is true - if ((!$this->readDataOnly) || - (PHPExcel_Shared_Date::isDateTimeFormatCode((string) $styleAttributes['Format']))) { - $styleArray = array(); - $styleArray['numberformat']['code'] = (string) $styleAttributes['Format']; - // If readDataOnly is false, we set all formatting information - if (!$this->readDataOnly) { - switch ($styleAttributes['HAlign']) { - case '1': - $styleArray['alignment']['horizontal'] = PHPExcel_Style_Alignment::HORIZONTAL_GENERAL; - break; - case '2': - $styleArray['alignment']['horizontal'] = PHPExcel_Style_Alignment::HORIZONTAL_LEFT; - break; - case '4': - $styleArray['alignment']['horizontal'] = PHPExcel_Style_Alignment::HORIZONTAL_RIGHT; - break; - case '8': - $styleArray['alignment']['horizontal'] = PHPExcel_Style_Alignment::HORIZONTAL_CENTER; - break; - case '16': - case '64': - $styleArray['alignment']['horizontal'] = PHPExcel_Style_Alignment::HORIZONTAL_CENTER_CONTINUOUS; - break; - case '32': - $styleArray['alignment']['horizontal'] = PHPExcel_Style_Alignment::HORIZONTAL_JUSTIFY; - break; - } - - switch ($styleAttributes['VAlign']) { - case '1': - $styleArray['alignment']['vertical'] = PHPExcel_Style_Alignment::VERTICAL_TOP; - break; - case '2': - $styleArray['alignment']['vertical'] = PHPExcel_Style_Alignment::VERTICAL_BOTTOM; - break; - case '4': - $styleArray['alignment']['vertical'] = PHPExcel_Style_Alignment::VERTICAL_CENTER; - break; - case '8': - $styleArray['alignment']['vertical'] = PHPExcel_Style_Alignment::VERTICAL_JUSTIFY; - break; - } - - $styleArray['alignment']['wrap'] = ($styleAttributes['WrapText'] == '1') ? true : false; - $styleArray['alignment']['shrinkToFit'] = ($styleAttributes['ShrinkToFit'] == '1') ? true : false; - $styleArray['alignment']['indent'] = (intval($styleAttributes["Indent"]) > 0) ? $styleAttributes["indent"] : 0; - - $RGB = self::parseGnumericColour($styleAttributes["Fore"]); - $styleArray['font']['color']['rgb'] = $RGB; - $RGB = self::parseGnumericColour($styleAttributes["Back"]); - $shade = $styleAttributes["Shade"]; - if (($RGB != '000000') || ($shade != '0')) { - $styleArray['fill']['color']['rgb'] = $styleArray['fill']['startcolor']['rgb'] = $RGB; - $RGB2 = self::parseGnumericColour($styleAttributes["PatternColor"]); - $styleArray['fill']['endcolor']['rgb'] = $RGB2; - switch ($shade) { - case '1': - $styleArray['fill']['type'] = PHPExcel_Style_Fill::FILL_SOLID; - break; - case '2': - $styleArray['fill']['type'] = PHPExcel_Style_Fill::FILL_GRADIENT_LINEAR; - break; - case '3': - $styleArray['fill']['type'] = PHPExcel_Style_Fill::FILL_GRADIENT_PATH; - break; - case '4': - $styleArray['fill']['type'] = PHPExcel_Style_Fill::FILL_PATTERN_DARKDOWN; - break; - case '5': - $styleArray['fill']['type'] = PHPExcel_Style_Fill::FILL_PATTERN_DARKGRAY; - break; - case '6': - $styleArray['fill']['type'] = PHPExcel_Style_Fill::FILL_PATTERN_DARKGRID; - break; - case '7': - $styleArray['fill']['type'] = PHPExcel_Style_Fill::FILL_PATTERN_DARKHORIZONTAL; - break; - case '8': - $styleArray['fill']['type'] = PHPExcel_Style_Fill::FILL_PATTERN_DARKTRELLIS; - break; - case '9': - $styleArray['fill']['type'] = PHPExcel_Style_Fill::FILL_PATTERN_DARKUP; - break; - case '10': - $styleArray['fill']['type'] = PHPExcel_Style_Fill::FILL_PATTERN_DARKVERTICAL; - break; - case '11': - $styleArray['fill']['type'] = PHPExcel_Style_Fill::FILL_PATTERN_GRAY0625; - break; - case '12': - $styleArray['fill']['type'] = PHPExcel_Style_Fill::FILL_PATTERN_GRAY125; - break; - case '13': - $styleArray['fill']['type'] = PHPExcel_Style_Fill::FILL_PATTERN_LIGHTDOWN; - break; - case '14': - $styleArray['fill']['type'] = PHPExcel_Style_Fill::FILL_PATTERN_LIGHTGRAY; - break; - case '15': - $styleArray['fill']['type'] = PHPExcel_Style_Fill::FILL_PATTERN_LIGHTGRID; - break; - case '16': - $styleArray['fill']['type'] = PHPExcel_Style_Fill::FILL_PATTERN_LIGHTHORIZONTAL; - break; - case '17': - $styleArray['fill']['type'] = PHPExcel_Style_Fill::FILL_PATTERN_LIGHTTRELLIS; - break; - case '18': - $styleArray['fill']['type'] = PHPExcel_Style_Fill::FILL_PATTERN_LIGHTUP; - break; - case '19': - $styleArray['fill']['type'] = PHPExcel_Style_Fill::FILL_PATTERN_LIGHTVERTICAL; - break; - case '20': - $styleArray['fill']['type'] = PHPExcel_Style_Fill::FILL_PATTERN_MEDIUMGRAY; - break; - } - } - - $fontAttributes = $styleRegion->Style->Font->attributes(); -// var_dump($fontAttributes); -// echo '<br />'; - $styleArray['font']['name'] = (string) $styleRegion->Style->Font; - $styleArray['font']['size'] = intval($fontAttributes['Unit']); - $styleArray['font']['bold'] = ($fontAttributes['Bold'] == '1') ? true : false; - $styleArray['font']['italic'] = ($fontAttributes['Italic'] == '1') ? true : false; - $styleArray['font']['strike'] = ($fontAttributes['StrikeThrough'] == '1') ? true : false; - switch ($fontAttributes['Underline']) { - case '1': - $styleArray['font']['underline'] = PHPExcel_Style_Font::UNDERLINE_SINGLE; - break; - case '2': - $styleArray['font']['underline'] = PHPExcel_Style_Font::UNDERLINE_DOUBLE; - break; - case '3': - $styleArray['font']['underline'] = PHPExcel_Style_Font::UNDERLINE_SINGLEACCOUNTING; - break; - case '4': - $styleArray['font']['underline'] = PHPExcel_Style_Font::UNDERLINE_DOUBLEACCOUNTING; - break; - default: - $styleArray['font']['underline'] = PHPExcel_Style_Font::UNDERLINE_NONE; - break; - } - switch ($fontAttributes['Script']) { - case '1': - $styleArray['font']['superScript'] = true; - break; - case '-1': - $styleArray['font']['subScript'] = true; - break; - } - - if (isset($styleRegion->Style->StyleBorder)) { - if (isset($styleRegion->Style->StyleBorder->Top)) { - $styleArray['borders']['top'] = self::parseBorderAttributes($styleRegion->Style->StyleBorder->Top->attributes()); - } - if (isset($styleRegion->Style->StyleBorder->Bottom)) { - $styleArray['borders']['bottom'] = self::parseBorderAttributes($styleRegion->Style->StyleBorder->Bottom->attributes()); - } - if (isset($styleRegion->Style->StyleBorder->Left)) { - $styleArray['borders']['left'] = self::parseBorderAttributes($styleRegion->Style->StyleBorder->Left->attributes()); - } - if (isset($styleRegion->Style->StyleBorder->Right)) { - $styleArray['borders']['right'] = self::parseBorderAttributes($styleRegion->Style->StyleBorder->Right->attributes()); - } - if ((isset($styleRegion->Style->StyleBorder->Diagonal)) && (isset($styleRegion->Style->StyleBorder->{'Rev-Diagonal'}))) { - $styleArray['borders']['diagonal'] = self::parseBorderAttributes($styleRegion->Style->StyleBorder->Diagonal->attributes()); - $styleArray['borders']['diagonaldirection'] = PHPExcel_Style_Borders::DIAGONAL_BOTH; - } elseif (isset($styleRegion->Style->StyleBorder->Diagonal)) { - $styleArray['borders']['diagonal'] = self::parseBorderAttributes($styleRegion->Style->StyleBorder->Diagonal->attributes()); - $styleArray['borders']['diagonaldirection'] = PHPExcel_Style_Borders::DIAGONAL_UP; - } elseif (isset($styleRegion->Style->StyleBorder->{'Rev-Diagonal'})) { - $styleArray['borders']['diagonal'] = self::parseBorderAttributes($styleRegion->Style->StyleBorder->{'Rev-Diagonal'}->attributes()); - $styleArray['borders']['diagonaldirection'] = PHPExcel_Style_Borders::DIAGONAL_DOWN; - } - } - if (isset($styleRegion->Style->HyperLink)) { - // TO DO - $hyperlink = $styleRegion->Style->HyperLink->attributes(); - } - } -// var_dump($styleArray); -// echo '<br />'; - $objPHPExcel->getActiveSheet()->getStyle($cellRange)->applyFromArray($styleArray); - } - } - } - - if ((!$this->readDataOnly) && (isset($sheet->Cols))) { - // Column Widths - $columnAttributes = $sheet->Cols->attributes(); - $defaultWidth = $columnAttributes['DefaultSizePts'] / 5.4; - $c = 0; - foreach ($sheet->Cols->ColInfo as $columnOverride) { - $columnAttributes = $columnOverride->attributes(); - $column = $columnAttributes['No']; - $columnWidth = $columnAttributes['Unit'] / 5.4; - $hidden = ((isset($columnAttributes['Hidden'])) && ($columnAttributes['Hidden'] == '1')) ? true : false; - $columnCount = (isset($columnAttributes['Count'])) ? $columnAttributes['Count'] : 1; - while ($c < $column) { - $objPHPExcel->getActiveSheet()->getColumnDimension(PHPExcel_Cell::stringFromColumnIndex($c))->setWidth($defaultWidth); - ++$c; - } - while (($c < ($column+$columnCount)) && ($c <= $maxCol)) { - $objPHPExcel->getActiveSheet()->getColumnDimension(PHPExcel_Cell::stringFromColumnIndex($c))->setWidth($columnWidth); - if ($hidden) { - $objPHPExcel->getActiveSheet()->getColumnDimension(PHPExcel_Cell::stringFromColumnIndex($c))->setVisible(false); - } - ++$c; - } - } - while ($c <= $maxCol) { - $objPHPExcel->getActiveSheet()->getColumnDimension(PHPExcel_Cell::stringFromColumnIndex($c))->setWidth($defaultWidth); - ++$c; - } - } - - if ((!$this->readDataOnly) && (isset($sheet->Rows))) { - // Row Heights - $rowAttributes = $sheet->Rows->attributes(); - $defaultHeight = $rowAttributes['DefaultSizePts']; - $r = 0; - - foreach ($sheet->Rows->RowInfo as $rowOverride) { - $rowAttributes = $rowOverride->attributes(); - $row = $rowAttributes['No']; - $rowHeight = $rowAttributes['Unit']; - $hidden = ((isset($rowAttributes['Hidden'])) && ($rowAttributes['Hidden'] == '1')) ? true : false; - $rowCount = (isset($rowAttributes['Count'])) ? $rowAttributes['Count'] : 1; - while ($r < $row) { - ++$r; - $objPHPExcel->getActiveSheet()->getRowDimension($r)->setRowHeight($defaultHeight); - } - while (($r < ($row+$rowCount)) && ($r < $maxRow)) { - ++$r; - $objPHPExcel->getActiveSheet()->getRowDimension($r)->setRowHeight($rowHeight); - if ($hidden) { - $objPHPExcel->getActiveSheet()->getRowDimension($r)->setVisible(false); - } - } - } - while ($r < $maxRow) { - ++$r; - $objPHPExcel->getActiveSheet()->getRowDimension($r)->setRowHeight($defaultHeight); - } - } - - // Handle Merged Cells in this worksheet - if (isset($sheet->MergedRegions)) { - foreach ($sheet->MergedRegions->Merge as $mergeCells) { - if (strpos($mergeCells, ':') !== false) { - $objPHPExcel->getActiveSheet()->mergeCells($mergeCells); - } - } - } - - $worksheetID++; - } - - // Loop through definedNames (global named ranges) - if (isset($gnmXML->Names)) { - foreach ($gnmXML->Names->Name as $namedRange) { - $name = (string) $namedRange->name; - $range = (string) $namedRange->value; - if (stripos($range, '#REF!') !== false) { - continue; - } - - $range = explode('!', $range); - $range[0] = trim($range[0], "'"); - if ($worksheet = $objPHPExcel->getSheetByName($range[0])) { - $extractedRange = str_replace('$', '', $range[1]); - $objPHPExcel->addNamedRange(new PHPExcel_NamedRange($name, $worksheet, $extractedRange)); - } - } - } - - // Return - return $objPHPExcel; - } - - private static function parseBorderAttributes($borderAttributes) - { - $styleArray = array(); - if (isset($borderAttributes["Color"])) { - $styleArray['color']['rgb'] = self::parseGnumericColour($borderAttributes["Color"]); - } - - switch ($borderAttributes["Style"]) { - case '0': - $styleArray['style'] = PHPExcel_Style_Border::BORDER_NONE; - break; - case '1': - $styleArray['style'] = PHPExcel_Style_Border::BORDER_THIN; - break; - case '2': - $styleArray['style'] = PHPExcel_Style_Border::BORDER_MEDIUM; - break; - case '3': - $styleArray['style'] = PHPExcel_Style_Border::BORDER_SLANTDASHDOT; - break; - case '4': - $styleArray['style'] = PHPExcel_Style_Border::BORDER_DASHED; - break; - case '5': - $styleArray['style'] = PHPExcel_Style_Border::BORDER_THICK; - break; - case '6': - $styleArray['style'] = PHPExcel_Style_Border::BORDER_DOUBLE; - break; - case '7': - $styleArray['style'] = PHPExcel_Style_Border::BORDER_DOTTED; - break; - case '8': - $styleArray['style'] = PHPExcel_Style_Border::BORDER_MEDIUMDASHED; - break; - case '9': - $styleArray['style'] = PHPExcel_Style_Border::BORDER_DASHDOT; - break; - case '10': - $styleArray['style'] = PHPExcel_Style_Border::BORDER_MEDIUMDASHDOT; - break; - case '11': - $styleArray['style'] = PHPExcel_Style_Border::BORDER_DASHDOTDOT; - break; - case '12': - $styleArray['style'] = PHPExcel_Style_Border::BORDER_MEDIUMDASHDOTDOT; - break; - case '13': - $styleArray['style'] = PHPExcel_Style_Border::BORDER_MEDIUMDASHDOTDOT; - break; - } - return $styleArray; - } - - private function parseRichText($is = '') - { - $value = new PHPExcel_RichText(); - $value->createText($is); - - return $value; - } - - private static function parseGnumericColour($gnmColour) - { - list($gnmR, $gnmG, $gnmB) = explode(':', $gnmColour); - $gnmR = substr(str_pad($gnmR, 4, '0', STR_PAD_RIGHT), 0, 2); - $gnmG = substr(str_pad($gnmG, 4, '0', STR_PAD_RIGHT), 0, 2); - $gnmB = substr(str_pad($gnmB, 4, '0', STR_PAD_RIGHT), 0, 2); - return $gnmR . $gnmG . $gnmB; - } -} diff --git a/Utils/PHPExcel/Reader/HTML.php b/Utils/PHPExcel/Reader/HTML.php deleted file mode 100644 index 5f5c02e..0000000 --- a/Utils/PHPExcel/Reader/HTML.php +++ /dev/null @@ -1,549 +0,0 @@ -<?php - -if (!defined('PHPEXCEL_ROOT')) { - /** - * @ignore - */ - define('PHPEXCEL_ROOT', dirname(__FILE__) . '/../../'); - require(PHPEXCEL_ROOT . 'PHPExcel/Autoloader.php'); -} - -/** - * PHPExcel_Reader_HTML - * - * Copyright (c) 2006 - 2015 PHPExcel - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - * - * @category PHPExcel - * @package PHPExcel_Reader - * @copyright Copyright (c) 2006 - 2015 PHPExcel (http://www.codeplex.com/PHPExcel) - * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL - * @version ##VERSION##, ##DATE## - */ -/** PHPExcel root directory */ -class PHPExcel_Reader_HTML extends PHPExcel_Reader_Abstract implements PHPExcel_Reader_IReader -{ - - /** - * Input encoding - * - * @var string - */ - protected $inputEncoding = 'ANSI'; - - /** - * Sheet index to read - * - * @var int - */ - protected $sheetIndex = 0; - - /** - * Formats - * - * @var array - */ - protected $formats = array( - 'h1' => array( - 'font' => array( - 'bold' => true, - 'size' => 24, - ), - ), // Bold, 24pt - 'h2' => array( - 'font' => array( - 'bold' => true, - 'size' => 18, - ), - ), // Bold, 18pt - 'h3' => array( - 'font' => array( - 'bold' => true, - 'size' => 13.5, - ), - ), // Bold, 13.5pt - 'h4' => array( - 'font' => array( - 'bold' => true, - 'size' => 12, - ), - ), // Bold, 12pt - 'h5' => array( - 'font' => array( - 'bold' => true, - 'size' => 10, - ), - ), // Bold, 10pt - 'h6' => array( - 'font' => array( - 'bold' => true, - 'size' => 7.5, - ), - ), // Bold, 7.5pt - 'a' => array( - 'font' => array( - 'underline' => true, - 'color' => array( - 'argb' => PHPExcel_Style_Color::COLOR_BLUE, - ), - ), - ), // Blue underlined - 'hr' => array( - 'borders' => array( - 'bottom' => array( - 'style' => PHPExcel_Style_Border::BORDER_THIN, - 'color' => array( - PHPExcel_Style_Color::COLOR_BLACK, - ), - ), - ), - ), // Bottom border - ); - - protected $rowspan = array(); - - /** - * Create a new PHPExcel_Reader_HTML - */ - public function __construct() - { - $this->readFilter = new PHPExcel_Reader_DefaultReadFilter(); - } - - /** - * Validate that the current file is an HTML file - * - * @return boolean - */ - protected function isValidFormat() - { - // Reading 2048 bytes should be enough to validate that the format is HTML - $data = fread($this->fileHandle, 2048); - if ((strpos($data, '<') !== false) && - (strlen($data) !== strlen(strip_tags($data)))) { - return true; - } - - return false; - } - - /** - * Loads PHPExcel from file - * - * @param string $pFilename - * @return PHPExcel - * @throws PHPExcel_Reader_Exception - */ - public function load($pFilename) - { - // Create new PHPExcel - $objPHPExcel = new PHPExcel(); - - // Load into this instance - return $this->loadIntoExisting($pFilename, $objPHPExcel); - } - - /** - * Set input encoding - * - * @param string $pValue Input encoding - */ - public function setInputEncoding($pValue = 'ANSI') - { - $this->inputEncoding = $pValue; - - return $this; - } - - /** - * Get input encoding - * - * @return string - */ - public function getInputEncoding() - { - return $this->inputEncoding; - } - - // Data Array used for testing only, should write to PHPExcel object on completion of tests - protected $dataArray = array(); - protected $tableLevel = 0; - protected $nestedColumn = array('A'); - - protected function setTableStartColumn($column) - { - if ($this->tableLevel == 0) { - $column = 'A'; - } - ++$this->tableLevel; - $this->nestedColumn[$this->tableLevel] = $column; - - return $this->nestedColumn[$this->tableLevel]; - } - - protected function getTableStartColumn() - { - return $this->nestedColumn[$this->tableLevel]; - } - - protected function releaseTableStartColumn() - { - --$this->tableLevel; - - return array_pop($this->nestedColumn); - } - - protected function flushCell($sheet, $column, $row, &$cellContent) - { - if (is_string($cellContent)) { - // Simple String content - if (trim($cellContent) > '') { - // Only actually write it if there's content in the string -// echo 'FLUSH CELL: ' , $column , $row , ' => ' , $cellContent , '<br />'; - // Write to worksheet to be done here... - // ... we return the cell so we can mess about with styles more easily - $sheet->setCellValue($column . $row, $cellContent, true); - $this->dataArray[$row][$column] = $cellContent; - } - } else { - // We have a Rich Text run - // TODO - $this->dataArray[$row][$column] = 'RICH TEXT: ' . $cellContent; - } - $cellContent = (string) ''; - } - - protected function processDomElement(DOMNode $element, $sheet, &$row, &$column, &$cellContent, $format = null) - { - foreach ($element->childNodes as $child) { - if ($child instanceof DOMText) { - $domText = preg_replace('/\s+/u', ' ', trim($child->nodeValue)); - if (is_string($cellContent)) { - // simply append the text if the cell content is a plain text string - $cellContent .= $domText; - } else { - // but if we have a rich text run instead, we need to append it correctly - // TODO - } - } elseif ($child instanceof DOMElement) { -// echo '<b>DOM ELEMENT: </b>' , strtoupper($child->nodeName) , '<br />'; - - $attributeArray = array(); - foreach ($child->attributes as $attribute) { -// echo '<b>ATTRIBUTE: </b>' , $attribute->name , ' => ' , $attribute->value , '<br />'; - $attributeArray[$attribute->name] = $attribute->value; - } - - switch ($child->nodeName) { - case 'meta': - foreach ($attributeArray as $attributeName => $attributeValue) { - switch ($attributeName) { - case 'content': - // TODO - // Extract character set, so we can convert to UTF-8 if required - break; - } - } - $this->processDomElement($child, $sheet, $row, $column, $cellContent); - break; - case 'title': - $this->processDomElement($child, $sheet, $row, $column, $cellContent); - $sheet->setTitle($cellContent); - $cellContent = ''; - break; - case 'span': - case 'div': - case 'font': - case 'i': - case 'em': - case 'strong': - case 'b': -// echo 'STYLING, SPAN OR DIV<br />'; - if ($cellContent > '') { - $cellContent .= ' '; - } - $this->processDomElement($child, $sheet, $row, $column, $cellContent); - if ($cellContent > '') { - $cellContent .= ' '; - } -// echo 'END OF STYLING, SPAN OR DIV<br />'; - break; - case 'hr': - $this->flushCell($sheet, $column, $row, $cellContent); - ++$row; - if (isset($this->formats[$child->nodeName])) { - $sheet->getStyle($column . $row)->applyFromArray($this->formats[$child->nodeName]); - } else { - $cellContent = '----------'; - $this->flushCell($sheet, $column, $row, $cellContent); - } - ++$row; - // Add a break after a horizontal rule, simply by allowing the code to dropthru - case 'br': - if ($this->tableLevel > 0) { - // If we're inside a table, replace with a \n - $cellContent .= "\n"; - } else { - // Otherwise flush our existing content and move the row cursor on - $this->flushCell($sheet, $column, $row, $cellContent); - ++$row; - } -// echo 'HARD LINE BREAK: ' , '<br />'; - break; - case 'a': -// echo 'START OF HYPERLINK: ' , '<br />'; - foreach ($attributeArray as $attributeName => $attributeValue) { - switch ($attributeName) { - case 'href': -// echo 'Link to ' , $attributeValue , '<br />'; - $sheet->getCell($column . $row)->getHyperlink()->setUrl($attributeValue); - if (isset($this->formats[$child->nodeName])) { - $sheet->getStyle($column . $row)->applyFromArray($this->formats[$child->nodeName]); - } - break; - } - } - $cellContent .= ' '; - $this->processDomElement($child, $sheet, $row, $column, $cellContent); -// echo 'END OF HYPERLINK:' , '<br />'; - break; - case 'h1': - case 'h2': - case 'h3': - case 'h4': - case 'h5': - case 'h6': - case 'ol': - case 'ul': - case 'p': - if ($this->tableLevel > 0) { - // If we're inside a table, replace with a \n - $cellContent .= "\n"; -// echo 'LIST ENTRY: ' , '<br />'; - $this->processDomElement($child, $sheet, $row, $column, $cellContent); -// echo 'END OF LIST ENTRY:' , '<br />'; - } else { - if ($cellContent > '') { - $this->flushCell($sheet, $column, $row, $cellContent); - $row++; - } -// echo 'START OF PARAGRAPH: ' , '<br />'; - $this->processDomElement($child, $sheet, $row, $column, $cellContent); -// echo 'END OF PARAGRAPH:' , '<br />'; - $this->flushCell($sheet, $column, $row, $cellContent); - - if (isset($this->formats[$child->nodeName])) { - $sheet->getStyle($column . $row)->applyFromArray($this->formats[$child->nodeName]); - } - - $row++; - $column = 'A'; - } - break; - case 'li': - if ($this->tableLevel > 0) { - // If we're inside a table, replace with a \n - $cellContent .= "\n"; -// echo 'LIST ENTRY: ' , '<br />'; - $this->processDomElement($child, $sheet, $row, $column, $cellContent); -// echo 'END OF LIST ENTRY:' , '<br />'; - } else { - if ($cellContent > '') { - $this->flushCell($sheet, $column, $row, $cellContent); - } - ++$row; -// echo 'LIST ENTRY: ' , '<br />'; - $this->processDomElement($child, $sheet, $row, $column, $cellContent); -// echo 'END OF LIST ENTRY:' , '<br />'; - $this->flushCell($sheet, $column, $row, $cellContent); - $column = 'A'; - } - break; - case 'table': - $this->flushCell($sheet, $column, $row, $cellContent); - $column = $this->setTableStartColumn($column); -// echo 'START OF TABLE LEVEL ' , $this->tableLevel , '<br />'; - if ($this->tableLevel > 1) { - --$row; - } - $this->processDomElement($child, $sheet, $row, $column, $cellContent); -// echo 'END OF TABLE LEVEL ' , $this->tableLevel , '<br />'; - $column = $this->releaseTableStartColumn(); - if ($this->tableLevel > 1) { - ++$column; - } else { - ++$row; - } - break; - case 'thead': - case 'tbody': - $this->processDomElement($child, $sheet, $row, $column, $cellContent); - break; - case 'tr': - $column = $this->getTableStartColumn(); - $cellContent = ''; -// echo 'START OF TABLE ' , $this->tableLevel , ' ROW<br />'; - $this->processDomElement($child, $sheet, $row, $column, $cellContent); - ++$row; -// echo 'END OF TABLE ' , $this->tableLevel , ' ROW<br />'; - break; - case 'th': - case 'td': -// echo 'START OF TABLE ' , $this->tableLevel , ' CELL<br />'; - $this->processDomElement($child, $sheet, $row, $column, $cellContent); -// echo 'END OF TABLE ' , $this->tableLevel , ' CELL<br />'; - - while (isset($this->rowspan[$column . $row])) { - ++$column; - } - - $this->flushCell($sheet, $column, $row, $cellContent); - -// if (isset($attributeArray['style']) && !empty($attributeArray['style'])) { -// $styleAry = $this->getPhpExcelStyleArray($attributeArray['style']); -// -// if (!empty($styleAry)) { -// $sheet->getStyle($column . $row)->applyFromArray($styleAry); -// } -// } - - if (isset($attributeArray['rowspan']) && isset($attributeArray['colspan'])) { - //create merging rowspan and colspan - $columnTo = $column; - for ($i = 0; $i < $attributeArray['colspan'] - 1; $i++) { - ++$columnTo; - } - $range = $column . $row . ':' . $columnTo . ($row + $attributeArray['rowspan'] - 1); - foreach (\PHPExcel_Cell::extractAllCellReferencesInRange($range) as $value) { - $this->rowspan[$value] = true; - } - $sheet->mergeCells($range); - $column = $columnTo; - } elseif (isset($attributeArray['rowspan'])) { - //create merging rowspan - $range = $column . $row . ':' . $column . ($row + $attributeArray['rowspan'] - 1); - foreach (\PHPExcel_Cell::extractAllCellReferencesInRange($range) as $value) { - $this->rowspan[$value] = true; - } - $sheet->mergeCells($range); - } elseif (isset($attributeArray['colspan'])) { - //create merging colspan - $columnTo = $column; - for ($i = 0; $i < $attributeArray['colspan'] - 1; $i++) { - ++$columnTo; - } - $sheet->mergeCells($column . $row . ':' . $columnTo . $row); - $column = $columnTo; - } - ++$column; - break; - case 'body': - $row = 1; - $column = 'A'; - $content = ''; - $this->tableLevel = 0; - $this->processDomElement($child, $sheet, $row, $column, $cellContent); - break; - default: - $this->processDomElement($child, $sheet, $row, $column, $cellContent); - } - } - } - } - - /** - * Loads PHPExcel from file into PHPExcel instance - * - * @param string $pFilename - * @param PHPExcel $objPHPExcel - * @return PHPExcel - * @throws PHPExcel_Reader_Exception - */ - public function loadIntoExisting($pFilename, PHPExcel $objPHPExcel) - { - // Open file to validate - $this->openFile($pFilename); - if (!$this->isValidFormat()) { - fclose($this->fileHandle); - throw new PHPExcel_Reader_Exception($pFilename . " is an Invalid HTML file."); - } - // Close after validating - fclose($this->fileHandle); - - // Create new PHPExcel - while ($objPHPExcel->getSheetCount() <= $this->sheetIndex) { - $objPHPExcel->createSheet(); - } - $objPHPExcel->setActiveSheetIndex($this->sheetIndex); - - // Create a new DOM object - $dom = new domDocument; - // Reload the HTML file into the DOM object - $loaded = $dom->loadHTML(mb_convert_encoding($this->securityScanFile($pFilename), 'HTML-ENTITIES', 'UTF-8')); - if ($loaded === false) { - throw new PHPExcel_Reader_Exception('Failed to load ' . $pFilename . ' as a DOM Document'); - } - - // Discard white space - $dom->preserveWhiteSpace = false; - - $row = 0; - $column = 'A'; - $content = ''; - $this->processDomElement($dom, $objPHPExcel->getActiveSheet(), $row, $column, $content); - - // Return - return $objPHPExcel; - } - - /** - * Get sheet index - * - * @return int - */ - public function getSheetIndex() - { - return $this->sheetIndex; - } - - /** - * Set sheet index - * - * @param int $pValue Sheet index - * @return PHPExcel_Reader_HTML - */ - public function setSheetIndex($pValue = 0) - { - $this->sheetIndex = $pValue; - - return $this; - } - - /** - * Scan theXML for use of <!ENTITY to prevent XXE/XEE attacks - * - * @param string $xml - * @throws PHPExcel_Reader_Exception - */ - public function securityScan($xml) - { - $pattern = '/\\0?' . implode('\\0?', str_split('<!ENTITY')) . '\\0?/'; - if (preg_match($pattern, $xml)) { - throw new PHPExcel_Reader_Exception('Detected use of Model in XML, spreadsheet file load() aborted to prevent XXE/XEE attacks'); - } - return $xml; - } -} diff --git a/Utils/PHPExcel/Reader/IReadFilter.php b/Utils/PHPExcel/Reader/IReadFilter.php deleted file mode 100644 index f7c852d..0000000 --- a/Utils/PHPExcel/Reader/IReadFilter.php +++ /dev/null @@ -1,39 +0,0 @@ -<?php - -/** - * PHPExcel_Reader_IReadFilter - * - * Copyright (c) 2006 - 2015 PHPExcel - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - * - * @category PHPExcel - * @package PHPExcel_Reader - * @copyright Copyright (c) 2006 - 2015 PHPExcel (http://www.codeplex.com/PHPExcel) - * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL - * @version ##VERSION##, ##DATE## - */ -interface PHPExcel_Reader_IReadFilter -{ - /** - * Should this cell be read? - * - * @param $column Column address (as a string value like "A", or "IV") - * @param $row Row number - * @param $worksheetName Optional worksheet name - * @return boolean - */ - public function readCell($column, $row, $worksheetName = ''); -} diff --git a/Utils/PHPExcel/Reader/IReader.php b/Utils/PHPExcel/Reader/IReader.php deleted file mode 100644 index 9034546..0000000 --- a/Utils/PHPExcel/Reader/IReader.php +++ /dev/null @@ -1,46 +0,0 @@ -<?php - -/** - * PHPExcel_Reader_IReader - * - * Copyright (c) 2006 - 2015 PHPExcel - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - * - * @category PHPExcel - * @package PHPExcel_Reader - * @copyright Copyright (c) 2006 - 2015 PHPExcel (http://www.codeplex.com/PHPExcel) - * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL - * @version ##VERSION##, ##DATE## - */ -interface PHPExcel_Reader_IReader -{ - /** - * Can the current PHPExcel_Reader_IReader read the file? - * - * @param string $pFilename - * @return boolean - */ - public function canRead($pFilename); - - /** - * Loads PHPExcel from file - * - * @param string $pFilename - * @return PHPExcel - * @throws PHPExcel_Reader_Exception - */ - public function load($pFilename); -} diff --git a/Utils/PHPExcel/Reader/OOCalc.php b/Utils/PHPExcel/Reader/OOCalc.php deleted file mode 100644 index a889d95..0000000 --- a/Utils/PHPExcel/Reader/OOCalc.php +++ /dev/null @@ -1,696 +0,0 @@ -<?php - -/** PHPExcel root directory */ -if (!defined('PHPEXCEL_ROOT')) { - /** - * @ignore - */ - define('PHPEXCEL_ROOT', dirname(__FILE__) . '/../../'); - require(PHPEXCEL_ROOT . 'PHPExcel/Autoloader.php'); -} - -/** - * PHPExcel_Reader_OOCalc - * - * Copyright (c) 2006 - 2015 PHPExcel - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - * - * @category PHPExcel - * @package PHPExcel_Reader - * @copyright Copyright (c) 2006 - 2015 PHPExcel (http://www.codeplex.com/PHPExcel) - * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL - * @version ##VERSION##, ##DATE## - */ -class PHPExcel_Reader_OOCalc extends PHPExcel_Reader_Abstract implements PHPExcel_Reader_IReader -{ - /** - * Formats - * - * @var array - */ - private $styles = array(); - - /** - * Create a new PHPExcel_Reader_OOCalc - */ - public function __construct() - { - $this->readFilter = new PHPExcel_Reader_DefaultReadFilter(); - } - - /** - * Can the current PHPExcel_Reader_IReader read the file? - * - * @param string $pFilename - * @return boolean - * @throws PHPExcel_Reader_Exception - */ - public function canRead($pFilename) - { - // Check if file exists - if (!file_exists($pFilename)) { - throw new PHPExcel_Reader_Exception("Could not open " . $pFilename . " for reading! File does not exist."); - } - - $zipClass = PHPExcel_Settings::getZipClass(); - - // Check if zip class exists -// if (!class_exists($zipClass, false)) { -// throw new PHPExcel_Reader_Exception($zipClass . " library is not enabled"); -// } - - $mimeType = 'UNKNOWN'; - // Load file - $zip = new $zipClass; - if ($zip->open($pFilename) === true) { - // check if it is an OOXML archive - $stat = $zip->statName('mimetype'); - if ($stat && ($stat['size'] <= 255)) { - $mimeType = $zip->getFromName($stat['name']); - } elseif ($stat = $zip->statName('META-INF/manifest.xml')) { - $xml = simplexml_load_string($this->securityScan($zip->getFromName('META-INF/manifest.xml')), 'SimpleXMLElement', PHPExcel_Settings::getLibXmlLoaderOptions()); - $namespacesContent = $xml->getNamespaces(true); - if (isset($namespacesContent['manifest'])) { - $manifest = $xml->children($namespacesContent['manifest']); - foreach ($manifest as $manifestDataSet) { - $manifestAttributes = $manifestDataSet->attributes($namespacesContent['manifest']); - if ($manifestAttributes->{'full-path'} == '/') { - $mimeType = (string) $manifestAttributes->{'media-type'}; - break; - } - } - } - } - - $zip->close(); - - return ($mimeType === 'application/vnd.oasis.opendocument.spreadsheet'); - } - - return false; - } - - - /** - * Reads names of the worksheets from a file, without parsing the whole file to a PHPExcel object - * - * @param string $pFilename - * @throws PHPExcel_Reader_Exception - */ - public function listWorksheetNames($pFilename) - { - // Check if file exists - if (!file_exists($pFilename)) { - throw new PHPExcel_Reader_Exception("Could not open " . $pFilename . " for reading! File does not exist."); - } - - $zipClass = PHPExcel_Settings::getZipClass(); - - $zip = new $zipClass; - if (!$zip->open($pFilename)) { - throw new PHPExcel_Reader_Exception("Could not open " . $pFilename . " for reading! Error opening file."); - } - - $worksheetNames = array(); - - $xml = new XMLReader(); - $res = $xml->xml($this->securityScanFile('zip://'.realpath($pFilename).'#content.xml'), null, PHPExcel_Settings::getLibXmlLoaderOptions()); - $xml->setParserProperty(2, true); - - // Step into the first level of content of the XML - $xml->read(); - while ($xml->read()) { - // Quickly jump through to the office:body node - while ($xml->name !== 'office:body') { - if ($xml->isEmptyElement) { - $xml->read(); - } else { - $xml->next(); - } - } - // Now read each node until we find our first table:table node - while ($xml->read()) { - if ($xml->name == 'table:table' && $xml->nodeType == XMLReader::ELEMENT) { - // Loop through each table:table node reading the table:name attribute for each worksheet name - do { - $worksheetNames[] = $xml->getAttribute('table:name'); - $xml->next(); - } while ($xml->name == 'table:table' && $xml->nodeType == XMLReader::ELEMENT); - } - } - } - - return $worksheetNames; - } - - /** - * Return worksheet info (Name, Last Column Letter, Last Column Index, Total Rows, Total Columns) - * - * @param string $pFilename - * @throws PHPExcel_Reader_Exception - */ - public function listWorksheetInfo($pFilename) - { - // Check if file exists - if (!file_exists($pFilename)) { - throw new PHPExcel_Reader_Exception("Could not open " . $pFilename . " for reading! File does not exist."); - } - - $worksheetInfo = array(); - - $zipClass = PHPExcel_Settings::getZipClass(); - - $zip = new $zipClass; - if (!$zip->open($pFilename)) { - throw new PHPExcel_Reader_Exception("Could not open " . $pFilename . " for reading! Error opening file."); - } - - $xml = new XMLReader(); - $res = $xml->xml($this->securityScanFile('zip://'.realpath($pFilename).'#content.xml'), null, PHPExcel_Settings::getLibXmlLoaderOptions()); - $xml->setParserProperty(2, true); - - // Step into the first level of content of the XML - $xml->read(); - while ($xml->read()) { - // Quickly jump through to the office:body node - while ($xml->name !== 'office:body') { - if ($xml->isEmptyElement) { - $xml->read(); - } else { - $xml->next(); - } - } - // Now read each node until we find our first table:table node - while ($xml->read()) { - if ($xml->name == 'table:table' && $xml->nodeType == XMLReader::ELEMENT) { - $worksheetNames[] = $xml->getAttribute('table:name'); - - $tmpInfo = array( - 'worksheetName' => $xml->getAttribute('table:name'), - 'lastColumnLetter' => 'A', - 'lastColumnIndex' => 0, - 'totalRows' => 0, - 'totalColumns' => 0, - ); - - // Loop through each child node of the table:table element reading - $currCells = 0; - do { - $xml->read(); - if ($xml->name == 'table:table-row' && $xml->nodeType == XMLReader::ELEMENT) { - $rowspan = $xml->getAttribute('table:number-rows-repeated'); - $rowspan = empty($rowspan) ? 1 : $rowspan; - $tmpInfo['totalRows'] += $rowspan; - $tmpInfo['totalColumns'] = max($tmpInfo['totalColumns'], $currCells); - $currCells = 0; - // Step into the row - $xml->read(); - do { - if ($xml->name == 'table:table-cell' && $xml->nodeType == XMLReader::ELEMENT) { - if (!$xml->isEmptyElement) { - $currCells++; - $xml->next(); - } else { - $xml->read(); - } - } elseif ($xml->name == 'table:covered-table-cell' && $xml->nodeType == XMLReader::ELEMENT) { - $mergeSize = $xml->getAttribute('table:number-columns-repeated'); - $currCells += $mergeSize; - $xml->read(); - } - } while ($xml->name != 'table:table-row'); - } - } while ($xml->name != 'table:table'); - - $tmpInfo['totalColumns'] = max($tmpInfo['totalColumns'], $currCells); - $tmpInfo['lastColumnIndex'] = $tmpInfo['totalColumns'] - 1; - $tmpInfo['lastColumnLetter'] = PHPExcel_Cell::stringFromColumnIndex($tmpInfo['lastColumnIndex']); - $worksheetInfo[] = $tmpInfo; - } - } - -// foreach ($workbookData->table as $worksheetDataSet) { -// $worksheetData = $worksheetDataSet->children($namespacesContent['table']); -// $worksheetDataAttributes = $worksheetDataSet->attributes($namespacesContent['table']); -// -// $rowIndex = 0; -// foreach ($worksheetData as $key => $rowData) { -// switch ($key) { -// case 'table-row' : -// $rowDataTableAttributes = $rowData->attributes($namespacesContent['table']); -// $rowRepeats = (isset($rowDataTableAttributes['number-rows-repeated'])) ? -// $rowDataTableAttributes['number-rows-repeated'] : 1; -// $columnIndex = 0; -// -// foreach ($rowData as $key => $cellData) { -// $cellDataTableAttributes = $cellData->attributes($namespacesContent['table']); -// $colRepeats = (isset($cellDataTableAttributes['number-columns-repeated'])) ? -// $cellDataTableAttributes['number-columns-repeated'] : 1; -// $cellDataOfficeAttributes = $cellData->attributes($namespacesContent['office']); -// if (isset($cellDataOfficeAttributes['value-type'])) { -// $tmpInfo['lastColumnIndex'] = max($tmpInfo['lastColumnIndex'], $columnIndex + $colRepeats - 1); -// $tmpInfo['totalRows'] = max($tmpInfo['totalRows'], $rowIndex + $rowRepeats); -// } -// $columnIndex += $colRepeats; -// } -// $rowIndex += $rowRepeats; -// break; -// } -// } -// -// $tmpInfo['lastColumnLetter'] = PHPExcel_Cell::stringFromColumnIndex($tmpInfo['lastColumnIndex']); -// $tmpInfo['totalColumns'] = $tmpInfo['lastColumnIndex'] + 1; -// -// } -// } - } - - return $worksheetInfo; - } - - /** - * Loads PHPExcel from file - * - * @param string $pFilename - * @return PHPExcel - * @throws PHPExcel_Reader_Exception - */ - public function load($pFilename) - { - // Create new PHPExcel - $objPHPExcel = new PHPExcel(); - - // Load into this instance - return $this->loadIntoExisting($pFilename, $objPHPExcel); - } - - private static function identifyFixedStyleValue($styleList, &$styleAttributeValue) - { - $styleAttributeValue = strtolower($styleAttributeValue); - foreach ($styleList as $style) { - if ($styleAttributeValue == strtolower($style)) { - $styleAttributeValue = $style; - return true; - } - } - return false; - } - - /** - * Loads PHPExcel from file into PHPExcel instance - * - * @param string $pFilename - * @param PHPExcel $objPHPExcel - * @return PHPExcel - * @throws PHPExcel_Reader_Exception - */ - public function loadIntoExisting($pFilename, PHPExcel $objPHPExcel) - { - // Check if file exists - if (!file_exists($pFilename)) { - throw new PHPExcel_Reader_Exception("Could not open " . $pFilename . " for reading! File does not exist."); - } - - $timezoneObj = new DateTimeZone('Europe/London'); - $GMT = new DateTimeZone('UTC'); - - $zipClass = PHPExcel_Settings::getZipClass(); - - $zip = new $zipClass; - if (!$zip->open($pFilename)) { - throw new PHPExcel_Reader_Exception("Could not open " . $pFilename . " for reading! Error opening file."); - } - -// echo '<h1>Meta Information</h1>'; - $xml = simplexml_load_string($this->securityScan($zip->getFromName("meta.xml")), 'SimpleXMLElement', PHPExcel_Settings::getLibXmlLoaderOptions()); - $namespacesMeta = $xml->getNamespaces(true); -// echo '<pre>'; -// print_r($namespacesMeta); -// echo '</pre><hr />'; - - $docProps = $objPHPExcel->getProperties(); - $officeProperty = $xml->children($namespacesMeta['office']); - foreach ($officeProperty as $officePropertyData) { - $officePropertyDC = array(); - if (isset($namespacesMeta['dc'])) { - $officePropertyDC = $officePropertyData->children($namespacesMeta['dc']); - } - foreach ($officePropertyDC as $propertyName => $propertyValue) { - $propertyValue = (string) $propertyValue; - switch ($propertyName) { - case 'title': - $docProps->setTitle($propertyValue); - break; - case 'subject': - $docProps->setSubject($propertyValue); - break; - case 'creator': - $docProps->setCreator($propertyValue); - $docProps->setLastModifiedBy($propertyValue); - break; - case 'date': - $creationDate = strtotime($propertyValue); - $docProps->setCreated($creationDate); - $docProps->setModified($creationDate); - break; - case 'description': - $docProps->setDescription($propertyValue); - break; - } - } - $officePropertyMeta = array(); - if (isset($namespacesMeta['dc'])) { - $officePropertyMeta = $officePropertyData->children($namespacesMeta['meta']); - } - foreach ($officePropertyMeta as $propertyName => $propertyValue) { - $propertyValueAttributes = $propertyValue->attributes($namespacesMeta['meta']); - $propertyValue = (string) $propertyValue; - switch ($propertyName) { - case 'initial-creator': - $docProps->setCreator($propertyValue); - break; - case 'keyword': - $docProps->setKeywords($propertyValue); - break; - case 'creation-date': - $creationDate = strtotime($propertyValue); - $docProps->setCreated($creationDate); - break; - case 'user-defined': - $propertyValueType = PHPExcel_DocumentProperties::PROPERTY_TYPE_STRING; - foreach ($propertyValueAttributes as $key => $value) { - if ($key == 'name') { - $propertyValueName = (string) $value; - } elseif ($key == 'value-type') { - switch ($value) { - case 'date': - $propertyValue = PHPExcel_DocumentProperties::convertProperty($propertyValue, 'date'); - $propertyValueType = PHPExcel_DocumentProperties::PROPERTY_TYPE_DATE; - break; - case 'boolean': - $propertyValue = PHPExcel_DocumentProperties::convertProperty($propertyValue, 'bool'); - $propertyValueType = PHPExcel_DocumentProperties::PROPERTY_TYPE_BOOLEAN; - break; - case 'float': - $propertyValue = PHPExcel_DocumentProperties::convertProperty($propertyValue, 'r4'); - $propertyValueType = PHPExcel_DocumentProperties::PROPERTY_TYPE_FLOAT; - break; - default: - $propertyValueType = PHPExcel_DocumentProperties::PROPERTY_TYPE_STRING; - } - } - } - $docProps->setCustomProperty($propertyValueName, $propertyValue, $propertyValueType); - break; - } - } - } - - -// echo '<h1>Workbook Content</h1>'; - $xml = simplexml_load_string($this->securityScan($zip->getFromName("content.xml")), 'SimpleXMLElement', PHPExcel_Settings::getLibXmlLoaderOptions()); - $namespacesContent = $xml->getNamespaces(true); -// echo '<pre>'; -// print_r($namespacesContent); -// echo '</pre><hr />'; - - $workbook = $xml->children($namespacesContent['office']); - foreach ($workbook->body->spreadsheet as $workbookData) { - $workbookData = $workbookData->children($namespacesContent['table']); - $worksheetID = 0; - foreach ($workbookData->table as $worksheetDataSet) { - $worksheetData = $worksheetDataSet->children($namespacesContent['table']); -// print_r($worksheetData); -// echo '<br />'; - $worksheetDataAttributes = $worksheetDataSet->attributes($namespacesContent['table']); -// print_r($worksheetDataAttributes); -// echo '<br />'; - if ((isset($this->loadSheetsOnly)) && (isset($worksheetDataAttributes['name'])) && - (!in_array($worksheetDataAttributes['name'], $this->loadSheetsOnly))) { - continue; - } - -// echo '<h2>Worksheet '.$worksheetDataAttributes['name'].'</h2>'; - // Create new Worksheet - $objPHPExcel->createSheet(); - $objPHPExcel->setActiveSheetIndex($worksheetID); - if (isset($worksheetDataAttributes['name'])) { - $worksheetName = (string) $worksheetDataAttributes['name']; - // Use false for $updateFormulaCellReferences to prevent adjustment of worksheet references in - // formula cells... during the load, all formulae should be correct, and we're simply - // bringing the worksheet name in line with the formula, not the reverse - $objPHPExcel->getActiveSheet()->setTitle($worksheetName, false); - } - - $rowID = 1; - foreach ($worksheetData as $key => $rowData) { -// echo '<b>'.$key.'</b><br />'; - switch ($key) { - case 'table-header-rows': - foreach ($rowData as $key => $cellData) { - $rowData = $cellData; - break; - } - case 'table-row': - $rowDataTableAttributes = $rowData->attributes($namespacesContent['table']); - $rowRepeats = (isset($rowDataTableAttributes['number-rows-repeated'])) ? $rowDataTableAttributes['number-rows-repeated'] : 1; - $columnID = 'A'; - foreach ($rowData as $key => $cellData) { - if ($this->getReadFilter() !== null) { - if (!$this->getReadFilter()->readCell($columnID, $rowID, $worksheetName)) { - continue; - } - } - -// echo '<b>'.$columnID.$rowID.'</b><br />'; - $cellDataText = (isset($namespacesContent['text'])) ? $cellData->children($namespacesContent['text']) : ''; - $cellDataOffice = $cellData->children($namespacesContent['office']); - $cellDataOfficeAttributes = $cellData->attributes($namespacesContent['office']); - $cellDataTableAttributes = $cellData->attributes($namespacesContent['table']); - -// echo 'Office Attributes: '; -// print_r($cellDataOfficeAttributes); -// echo '<br />Table Attributes: '; -// print_r($cellDataTableAttributes); -// echo '<br />Cell Data Text'; -// print_r($cellDataText); -// echo '<br />'; -// - $type = $formatting = $hyperlink = null; - $hasCalculatedValue = false; - $cellDataFormula = ''; - if (isset($cellDataTableAttributes['formula'])) { - $cellDataFormula = $cellDataTableAttributes['formula']; - $hasCalculatedValue = true; - } - - if (isset($cellDataOffice->annotation)) { -// echo 'Cell has comment<br />'; - $annotationText = $cellDataOffice->annotation->children($namespacesContent['text']); - $textArray = array(); - foreach ($annotationText as $t) { - if (isset($t->span)) { - foreach ($t->span as $text) { - $textArray[] = (string)$text; - } - } else { - $textArray[] = (string) $t; - } - } - $text = implode("\n", $textArray); -// echo $text, '<br />'; - $objPHPExcel->getActiveSheet()->getComment($columnID.$rowID)->setText($this->parseRichText($text)); -// ->setAuthor( $author ) - } - - if (isset($cellDataText->p)) { - // Consolidate if there are multiple p records (maybe with spans as well) - $dataArray = array(); - // Text can have multiple text:p and within those, multiple text:span. - // text:p newlines, but text:span does not. - // Also, here we assume there is no text data is span fields are specified, since - // we have no way of knowing proper positioning anyway. - foreach ($cellDataText->p as $pData) { - if (isset($pData->span)) { - // span sections do not newline, so we just create one large string here - $spanSection = ""; - foreach ($pData->span as $spanData) { - $spanSection .= $spanData; - } - array_push($dataArray, $spanSection); - } else { - array_push($dataArray, $pData); - } - } - $allCellDataText = implode($dataArray, "\n"); - -// echo 'Value Type is '.$cellDataOfficeAttributes['value-type'].'<br />'; - switch ($cellDataOfficeAttributes['value-type']) { - case 'string': - $type = PHPExcel_Cell_DataType::TYPE_STRING; - $dataValue = $allCellDataText; - if (isset($dataValue->a)) { - $dataValue = $dataValue->a; - $cellXLinkAttributes = $dataValue->attributes($namespacesContent['xlink']); - $hyperlink = $cellXLinkAttributes['href']; - } - break; - case 'boolean': - $type = PHPExcel_Cell_DataType::TYPE_BOOL; - $dataValue = ($allCellDataText == 'TRUE') ? true : false; - break; - case 'percentage': - $type = PHPExcel_Cell_DataType::TYPE_NUMERIC; - $dataValue = (float) $cellDataOfficeAttributes['value']; - if (floor($dataValue) == $dataValue) { - $dataValue = (integer) $dataValue; - } - $formatting = PHPExcel_Style_NumberFormat::FORMAT_PERCENTAGE_00; - break; - case 'currency': - $type = PHPExcel_Cell_DataType::TYPE_NUMERIC; - $dataValue = (float) $cellDataOfficeAttributes['value']; - if (floor($dataValue) == $dataValue) { - $dataValue = (integer) $dataValue; - } - $formatting = PHPExcel_Style_NumberFormat::FORMAT_CURRENCY_USD_SIMPLE; - break; - case 'float': - $type = PHPExcel_Cell_DataType::TYPE_NUMERIC; - $dataValue = (float) $cellDataOfficeAttributes['value']; - if (floor($dataValue) == $dataValue) { - if ($dataValue == (integer) $dataValue) { - $dataValue = (integer) $dataValue; - } else { - $dataValue = (float) $dataValue; - } - } - break; - case 'date': - $type = PHPExcel_Cell_DataType::TYPE_NUMERIC; - $dateObj = new DateTime($cellDataOfficeAttributes['date-value'], $GMT); - $dateObj->setTimeZone($timezoneObj); - list($year, $month, $day, $hour, $minute, $second) = explode(' ', $dateObj->format('Y m d H i s')); - $dataValue = PHPExcel_Shared_Date::FormattedPHPToExcel($year, $month, $day, $hour, $minute, $second); - if ($dataValue != floor($dataValue)) { - $formatting = PHPExcel_Style_NumberFormat::FORMAT_DATE_XLSX15.' '.PHPExcel_Style_NumberFormat::FORMAT_DATE_TIME4; - } else { - $formatting = PHPExcel_Style_NumberFormat::FORMAT_DATE_XLSX15; - } - break; - case 'time': - $type = PHPExcel_Cell_DataType::TYPE_NUMERIC; - $dataValue = PHPExcel_Shared_Date::PHPToExcel(strtotime('01-01-1970 '.implode(':', sscanf($cellDataOfficeAttributes['time-value'], 'PT%dH%dM%dS')))); - $formatting = PHPExcel_Style_NumberFormat::FORMAT_DATE_TIME4; - break; - } -// echo 'Data value is '.$dataValue.'<br />'; -// if ($hyperlink !== null) { -// echo 'Hyperlink is '.$hyperlink.'<br />'; -// } - } else { - $type = PHPExcel_Cell_DataType::TYPE_NULL; - $dataValue = null; - } - - if ($hasCalculatedValue) { - $type = PHPExcel_Cell_DataType::TYPE_FORMULA; -// echo 'Formula: ', $cellDataFormula, PHP_EOL; - $cellDataFormula = substr($cellDataFormula, strpos($cellDataFormula, ':=')+1); - $temp = explode('"', $cellDataFormula); - $tKey = false; - foreach ($temp as &$value) { - // Only replace in alternate array entries (i.e. non-quoted blocks) - if ($tKey = !$tKey) { - $value = preg_replace('/\[([^\.]+)\.([^\.]+):\.([^\.]+)\]/Ui', '$1!$2:$3', $value); // Cell range reference in another sheet - $value = preg_replace('/\[([^\.]+)\.([^\.]+)\]/Ui', '$1!$2', $value); // Cell reference in another sheet - $value = preg_replace('/\[\.([^\.]+):\.([^\.]+)\]/Ui', '$1:$2', $value); // Cell range reference - $value = preg_replace('/\[\.([^\.]+)\]/Ui', '$1', $value); // Simple cell reference - $value = PHPExcel_Calculation::translateSeparator(';', ',', $value, $inBraces); - } - } - unset($value); - // Then rebuild the formula string - $cellDataFormula = implode('"', $temp); -// echo 'Adjusted Formula: ', $cellDataFormula, PHP_EOL; - } - - $colRepeats = (isset($cellDataTableAttributes['number-columns-repeated'])) ? $cellDataTableAttributes['number-columns-repeated'] : 1; - if ($type !== null) { - for ($i = 0; $i < $colRepeats; ++$i) { - if ($i > 0) { - ++$columnID; - } - if ($type !== PHPExcel_Cell_DataType::TYPE_NULL) { - for ($rowAdjust = 0; $rowAdjust < $rowRepeats; ++$rowAdjust) { - $rID = $rowID + $rowAdjust; - $objPHPExcel->getActiveSheet()->getCell($columnID.$rID)->setValueExplicit((($hasCalculatedValue) ? $cellDataFormula : $dataValue), $type); - if ($hasCalculatedValue) { -// echo 'Forumla result is '.$dataValue.'<br />'; - $objPHPExcel->getActiveSheet()->getCell($columnID.$rID)->setCalculatedValue($dataValue); - } - if ($formatting !== null) { - $objPHPExcel->getActiveSheet()->getStyle($columnID.$rID)->getNumberFormat()->setFormatCode($formatting); - } else { - $objPHPExcel->getActiveSheet()->getStyle($columnID.$rID)->getNumberFormat()->setFormatCode(PHPExcel_Style_NumberFormat::FORMAT_GENERAL); - } - if ($hyperlink !== null) { - $objPHPExcel->getActiveSheet()->getCell($columnID.$rID)->getHyperlink()->setUrl($hyperlink); - } - } - } - } - } - - // Merged cells - if ((isset($cellDataTableAttributes['number-columns-spanned'])) || (isset($cellDataTableAttributes['number-rows-spanned']))) { - if (($type !== PHPExcel_Cell_DataType::TYPE_NULL) || (!$this->readDataOnly)) { - $columnTo = $columnID; - if (isset($cellDataTableAttributes['number-columns-spanned'])) { - $columnTo = PHPExcel_Cell::stringFromColumnIndex(PHPExcel_Cell::columnIndexFromString($columnID) + $cellDataTableAttributes['number-columns-spanned'] -2); - } - $rowTo = $rowID; - if (isset($cellDataTableAttributes['number-rows-spanned'])) { - $rowTo = $rowTo + $cellDataTableAttributes['number-rows-spanned'] - 1; - } - $cellRange = $columnID.$rowID.':'.$columnTo.$rowTo; - $objPHPExcel->getActiveSheet()->mergeCells($cellRange); - } - } - - ++$columnID; - } - $rowID += $rowRepeats; - break; - } - } - ++$worksheetID; - } - } - - // Return - return $objPHPExcel; - } - - private function parseRichText($is = '') - { - $value = new PHPExcel_RichText(); - - $value->createText($is); - - return $value; - } -} diff --git a/Utils/PHPExcel/Reader/SYLK.php b/Utils/PHPExcel/Reader/SYLK.php deleted file mode 100644 index eb7ef1a..0000000 --- a/Utils/PHPExcel/Reader/SYLK.php +++ /dev/null @@ -1,478 +0,0 @@ -<?php - -/** PHPExcel root directory */ -if (!defined('PHPEXCEL_ROOT')) { - /** - * @ignore - */ - define('PHPEXCEL_ROOT', dirname(__FILE__) . '/../../'); - require(PHPEXCEL_ROOT . 'PHPExcel/Autoloader.php'); -} - -/** - * PHPExcel_Reader_SYLK - * - * Copyright (c) 2006 - 2015 PHPExcel - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - * - * @category PHPExcel - * @package PHPExcel_Reader - * @copyright Copyright (c) 2006 - 2015 PHPExcel (http://www.codeplex.com/PHPExcel) - * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL - * @version ##VERSION##, ##DATE## - */ -class PHPExcel_Reader_SYLK extends PHPExcel_Reader_Abstract implements PHPExcel_Reader_IReader -{ - /** - * Input encoding - * - * @var string - */ - private $inputEncoding = 'ANSI'; - - /** - * Sheet index to read - * - * @var int - */ - private $sheetIndex = 0; - - /** - * Formats - * - * @var array - */ - private $formats = array(); - - /** - * Format Count - * - * @var int - */ - private $format = 0; - - /** - * Create a new PHPExcel_Reader_SYLK - */ - public function __construct() - { - $this->readFilter = new PHPExcel_Reader_DefaultReadFilter(); - } - - /** - * Validate that the current file is a SYLK file - * - * @return boolean - */ - protected function isValidFormat() - { - // Read sample data (first 2 KB will do) - $data = fread($this->fileHandle, 2048); - - // Count delimiters in file - $delimiterCount = substr_count($data, ';'); - if ($delimiterCount < 1) { - return false; - } - - // Analyze first line looking for ID; signature - $lines = explode("\n", $data); - if (substr($lines[0], 0, 4) != 'ID;P') { - return false; - } - - return true; - } - - /** - * Set input encoding - * - * @param string $pValue Input encoding - */ - public function setInputEncoding($pValue = 'ANSI') - { - $this->inputEncoding = $pValue; - return $this; - } - - /** - * Get input encoding - * - * @return string - */ - public function getInputEncoding() - { - return $this->inputEncoding; - } - - /** - * Return worksheet info (Name, Last Column Letter, Last Column Index, Total Rows, Total Columns) - * - * @param string $pFilename - * @throws PHPExcel_Reader_Exception - */ - public function listWorksheetInfo($pFilename) - { - // Open file - $this->openFile($pFilename); - if (!$this->isValidFormat()) { - fclose($this->fileHandle); - throw new PHPExcel_Reader_Exception($pFilename . " is an Invalid Spreadsheet file."); - } - $fileHandle = $this->fileHandle; - rewind($fileHandle); - - $worksheetInfo = array(); - $worksheetInfo[0]['worksheetName'] = 'Worksheet'; - $worksheetInfo[0]['lastColumnLetter'] = 'A'; - $worksheetInfo[0]['lastColumnIndex'] = 0; - $worksheetInfo[0]['totalRows'] = 0; - $worksheetInfo[0]['totalColumns'] = 0; - - // Loop through file - $rowData = array(); - - // loop through one row (line) at a time in the file - $rowIndex = 0; - while (($rowData = fgets($fileHandle)) !== false) { - $columnIndex = 0; - - // convert SYLK encoded $rowData to UTF-8 - $rowData = PHPExcel_Shared_String::SYLKtoUTF8($rowData); - - // explode each row at semicolons while taking into account that literal semicolon (;) - // is escaped like this (;;) - $rowData = explode("\t", str_replace('¤', ';', str_replace(';', "\t", str_replace(';;', '¤', rtrim($rowData))))); - - $dataType = array_shift($rowData); - if ($dataType == 'C') { - // Read cell value data - foreach ($rowData as $rowDatum) { - switch ($rowDatum{0}) { - case 'C': - case 'X': - $columnIndex = substr($rowDatum, 1) - 1; - break; - case 'R': - case 'Y': - $rowIndex = substr($rowDatum, 1); - break; - } - - $worksheetInfo[0]['totalRows'] = max($worksheetInfo[0]['totalRows'], $rowIndex); - $worksheetInfo[0]['lastColumnIndex'] = max($worksheetInfo[0]['lastColumnIndex'], $columnIndex); - } - } - } - - $worksheetInfo[0]['lastColumnLetter'] = PHPExcel_Cell::stringFromColumnIndex($worksheetInfo[0]['lastColumnIndex']); - $worksheetInfo[0]['totalColumns'] = $worksheetInfo[0]['lastColumnIndex'] + 1; - - // Close file - fclose($fileHandle); - - return $worksheetInfo; - } - - /** - * Loads PHPExcel from file - * - * @param string $pFilename - * @return PHPExcel - * @throws PHPExcel_Reader_Exception - */ - public function load($pFilename) - { - // Create new PHPExcel - $objPHPExcel = new PHPExcel(); - - // Load into this instance - return $this->loadIntoExisting($pFilename, $objPHPExcel); - } - - /** - * Loads PHPExcel from file into PHPExcel instance - * - * @param string $pFilename - * @param PHPExcel $objPHPExcel - * @return PHPExcel - * @throws PHPExcel_Reader_Exception - */ - public function loadIntoExisting($pFilename, PHPExcel $objPHPExcel) - { - // Open file - $this->openFile($pFilename); - if (!$this->isValidFormat()) { - fclose($this->fileHandle); - throw new PHPExcel_Reader_Exception($pFilename . " is an Invalid Spreadsheet file."); - } - $fileHandle = $this->fileHandle; - rewind($fileHandle); - - // Create new PHPExcel - while ($objPHPExcel->getSheetCount() <= $this->sheetIndex) { - $objPHPExcel->createSheet(); - } - $objPHPExcel->setActiveSheetIndex($this->sheetIndex); - - $fromFormats = array('\-', '\ '); - $toFormats = array('-', ' '); - - // Loop through file - $rowData = array(); - $column = $row = ''; - - // loop through one row (line) at a time in the file - while (($rowData = fgets($fileHandle)) !== false) { - // convert SYLK encoded $rowData to UTF-8 - $rowData = PHPExcel_Shared_String::SYLKtoUTF8($rowData); - - // explode each row at semicolons while taking into account that literal semicolon (;) - // is escaped like this (;;) - $rowData = explode("\t", str_replace('¤', ';', str_replace(';', "\t", str_replace(';;', '¤', rtrim($rowData))))); - - $dataType = array_shift($rowData); - // Read shared styles - if ($dataType == 'P') { - $formatArray = array(); - foreach ($rowData as $rowDatum) { - switch ($rowDatum{0}) { - case 'P': - $formatArray['numberformat']['code'] = str_replace($fromFormats, $toFormats, substr($rowDatum, 1)); - break; - case 'E': - case 'F': - $formatArray['font']['name'] = substr($rowDatum, 1); - break; - case 'L': - $formatArray['font']['size'] = substr($rowDatum, 1); - break; - case 'S': - $styleSettings = substr($rowDatum, 1); - for ($i=0; $i<strlen($styleSettings); ++$i) { - switch ($styleSettings{$i}) { - case 'I': - $formatArray['font']['italic'] = true; - break; - case 'D': - $formatArray['font']['bold'] = true; - break; - case 'T': - $formatArray['borders']['top']['style'] = PHPExcel_Style_Border::BORDER_THIN; - break; - case 'B': - $formatArray['borders']['bottom']['style'] = PHPExcel_Style_Border::BORDER_THIN; - break; - case 'L': - $formatArray['borders']['left']['style'] = PHPExcel_Style_Border::BORDER_THIN; - break; - case 'R': - $formatArray['borders']['right']['style'] = PHPExcel_Style_Border::BORDER_THIN; - break; - } - } - break; - } - } - $this->formats['P'.$this->format++] = $formatArray; - // Read cell value data - } elseif ($dataType == 'C') { - $hasCalculatedValue = false; - $cellData = $cellDataFormula = ''; - foreach ($rowData as $rowDatum) { - switch ($rowDatum{0}) { - case 'C': - case 'X': - $column = substr($rowDatum, 1); - break; - case 'R': - case 'Y': - $row = substr($rowDatum, 1); - break; - case 'K': - $cellData = substr($rowDatum, 1); - break; - case 'E': - $cellDataFormula = '='.substr($rowDatum, 1); - // Convert R1C1 style references to A1 style references (but only when not quoted) - $temp = explode('"', $cellDataFormula); - $key = false; - foreach ($temp as &$value) { - // Only count/replace in alternate array entries - if ($key = !$key) { - preg_match_all('/(R(\[?-?\d*\]?))(C(\[?-?\d*\]?))/', $value, $cellReferences, PREG_SET_ORDER+PREG_OFFSET_CAPTURE); - // Reverse the matches array, otherwise all our offsets will become incorrect if we modify our way - // through the formula from left to right. Reversing means that we work right to left.through - // the formula - $cellReferences = array_reverse($cellReferences); - // Loop through each R1C1 style reference in turn, converting it to its A1 style equivalent, - // then modify the formula to use that new reference - foreach ($cellReferences as $cellReference) { - $rowReference = $cellReference[2][0]; - // Empty R reference is the current row - if ($rowReference == '') { - $rowReference = $row; - } - // Bracketed R references are relative to the current row - if ($rowReference{0} == '[') { - $rowReference = $row + trim($rowReference, '[]'); - } - $columnReference = $cellReference[4][0]; - // Empty C reference is the current column - if ($columnReference == '') { - $columnReference = $column; - } - // Bracketed C references are relative to the current column - if ($columnReference{0} == '[') { - $columnReference = $column + trim($columnReference, '[]'); - } - $A1CellReference = PHPExcel_Cell::stringFromColumnIndex($columnReference-1).$rowReference; - - $value = substr_replace($value, $A1CellReference, $cellReference[0][1], strlen($cellReference[0][0])); - } - } - } - unset($value); - // Then rebuild the formula string - $cellDataFormula = implode('"', $temp); - $hasCalculatedValue = true; - break; - } - } - $columnLetter = PHPExcel_Cell::stringFromColumnIndex($column-1); - $cellData = PHPExcel_Calculation::unwrapResult($cellData); - - // Set cell value - $objPHPExcel->getActiveSheet()->getCell($columnLetter.$row)->setValue(($hasCalculatedValue) ? $cellDataFormula : $cellData); - if ($hasCalculatedValue) { - $cellData = PHPExcel_Calculation::unwrapResult($cellData); - $objPHPExcel->getActiveSheet()->getCell($columnLetter.$row)->setCalculatedValue($cellData); - } - // Read cell formatting - } elseif ($dataType == 'F') { - $formatStyle = $columnWidth = $styleSettings = ''; - $styleData = array(); - foreach ($rowData as $rowDatum) { - switch ($rowDatum{0}) { - case 'C': - case 'X': - $column = substr($rowDatum, 1); - break; - case 'R': - case 'Y': - $row = substr($rowDatum, 1); - break; - case 'P': - $formatStyle = $rowDatum; - break; - case 'W': - list($startCol, $endCol, $columnWidth) = explode(' ', substr($rowDatum, 1)); - break; - case 'S': - $styleSettings = substr($rowDatum, 1); - for ($i=0; $i<strlen($styleSettings); ++$i) { - switch ($styleSettings{$i}) { - case 'I': - $styleData['font']['italic'] = true; - break; - case 'D': - $styleData['font']['bold'] = true; - break; - case 'T': - $styleData['borders']['top']['style'] = PHPExcel_Style_Border::BORDER_THIN; - break; - case 'B': - $styleData['borders']['bottom']['style'] = PHPExcel_Style_Border::BORDER_THIN; - break; - case 'L': - $styleData['borders']['left']['style'] = PHPExcel_Style_Border::BORDER_THIN; - break; - case 'R': - $styleData['borders']['right']['style'] = PHPExcel_Style_Border::BORDER_THIN; - break; - } - } - break; - } - } - if (($formatStyle > '') && ($column > '') && ($row > '')) { - $columnLetter = PHPExcel_Cell::stringFromColumnIndex($column-1); - if (isset($this->formats[$formatStyle])) { - $objPHPExcel->getActiveSheet()->getStyle($columnLetter.$row)->applyFromArray($this->formats[$formatStyle]); - } - } - if ((!empty($styleData)) && ($column > '') && ($row > '')) { - $columnLetter = PHPExcel_Cell::stringFromColumnIndex($column-1); - $objPHPExcel->getActiveSheet()->getStyle($columnLetter.$row)->applyFromArray($styleData); - } - if ($columnWidth > '') { - if ($startCol == $endCol) { - $startCol = PHPExcel_Cell::stringFromColumnIndex($startCol-1); - $objPHPExcel->getActiveSheet()->getColumnDimension($startCol)->setWidth($columnWidth); - } else { - $startCol = PHPExcel_Cell::stringFromColumnIndex($startCol-1); - $endCol = PHPExcel_Cell::stringFromColumnIndex($endCol-1); - $objPHPExcel->getActiveSheet()->getColumnDimension($startCol)->setWidth($columnWidth); - do { - $objPHPExcel->getActiveSheet()->getColumnDimension(++$startCol)->setWidth($columnWidth); - } while ($startCol != $endCol); - } - } - } else { - foreach ($rowData as $rowDatum) { - switch ($rowDatum{0}) { - case 'C': - case 'X': - $column = substr($rowDatum, 1); - break; - case 'R': - case 'Y': - $row = substr($rowDatum, 1); - break; - } - } - } - } - - // Close file - fclose($fileHandle); - - // Return - return $objPHPExcel; - } - - /** - * Get sheet index - * - * @return int - */ - public function getSheetIndex() - { - return $this->sheetIndex; - } - - /** - * Set sheet index - * - * @param int $pValue Sheet index - * @return PHPExcel_Reader_SYLK - */ - public function setSheetIndex($pValue = 0) - { - $this->sheetIndex = $pValue; - return $this; - } -} diff --git a/Utils/PHPExcel/ReferenceHelper.php b/Utils/PHPExcel/ReferenceHelper.php deleted file mode 100644 index 7d7de93..0000000 --- a/Utils/PHPExcel/ReferenceHelper.php +++ /dev/null @@ -1,913 +0,0 @@ -<?php - -/** - * PHPExcel_ReferenceHelper (Singleton) - * - * Copyright (c) 2006 - 2015 PHPExcel - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - * - * @category PHPExcel - * @package PHPExcel - * @copyright Copyright (c) 2006 - 2015 PHPExcel (http://www.codeplex.com/PHPExcel) - * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL - * @version ##VERSION##, ##DATE## - */ -class PHPExcel_ReferenceHelper -{ - /** Constants */ - /** Regular Expressions */ - const REFHELPER_REGEXP_CELLREF = '((\w*|\'[^!]*\')!)?(?<![:a-z\$])(\$?[a-z]{1,3}\$?\d+)(?=[^:!\d\'])'; - const REFHELPER_REGEXP_CELLRANGE = '((\w*|\'[^!]*\')!)?(\$?[a-z]{1,3}\$?\d+):(\$?[a-z]{1,3}\$?\d+)'; - const REFHELPER_REGEXP_ROWRANGE = '((\w*|\'[^!]*\')!)?(\$?\d+):(\$?\d+)'; - const REFHELPER_REGEXP_COLRANGE = '((\w*|\'[^!]*\')!)?(\$?[a-z]{1,3}):(\$?[a-z]{1,3})'; - - /** - * Instance of this class - * - * @var PHPExcel_ReferenceHelper - */ - private static $instance; - - /** - * Get an instance of this class - * - * @return PHPExcel_ReferenceHelper - */ - public static function getInstance() - { - if (!isset(self::$instance) || (self::$instance === null)) { - self::$instance = new PHPExcel_ReferenceHelper(); - } - - return self::$instance; - } - - /** - * Create a new PHPExcel_ReferenceHelper - */ - protected function __construct() - { - } - - /** - * Compare two column addresses - * Intended for use as a Callback function for sorting column addresses by column - * - * @param string $a First column to test (e.g. 'AA') - * @param string $b Second column to test (e.g. 'Z') - * @return integer - */ - public static function columnSort($a, $b) - { - return strcasecmp(strlen($a) . $a, strlen($b) . $b); - } - - /** - * Compare two column addresses - * Intended for use as a Callback function for reverse sorting column addresses by column - * - * @param string $a First column to test (e.g. 'AA') - * @param string $b Second column to test (e.g. 'Z') - * @return integer - */ - public static function columnReverseSort($a, $b) - { - return 1 - strcasecmp(strlen($a) . $a, strlen($b) . $b); - } - - /** - * Compare two cell addresses - * Intended for use as a Callback function for sorting cell addresses by column and row - * - * @param string $a First cell to test (e.g. 'AA1') - * @param string $b Second cell to test (e.g. 'Z1') - * @return integer - */ - public static function cellSort($a, $b) - { - sscanf($a, '%[A-Z]%d', $ac, $ar); - sscanf($b, '%[A-Z]%d', $bc, $br); - - if ($ar == $br) { - return strcasecmp(strlen($ac) . $ac, strlen($bc) . $bc); - } - return ($ar < $br) ? -1 : 1; - } - - /** - * Compare two cell addresses - * Intended for use as a Callback function for sorting cell addresses by column and row - * - * @param string $a First cell to test (e.g. 'AA1') - * @param string $b Second cell to test (e.g. 'Z1') - * @return integer - */ - public static function cellReverseSort($a, $b) - { - sscanf($a, '%[A-Z]%d', $ac, $ar); - sscanf($b, '%[A-Z]%d', $bc, $br); - - if ($ar == $br) { - return 1 - strcasecmp(strlen($ac) . $ac, strlen($bc) . $bc); - } - return ($ar < $br) ? 1 : -1; - } - - /** - * Test whether a cell address falls within a defined range of cells - * - * @param string $cellAddress Address of the cell we're testing - * @param integer $beforeRow Number of the row we're inserting/deleting before - * @param integer $pNumRows Number of rows to insert/delete (negative values indicate deletion) - * @param integer $beforeColumnIndex Index number of the column we're inserting/deleting before - * @param integer $pNumCols Number of columns to insert/delete (negative values indicate deletion) - * @return boolean - */ - private static function cellAddressInDeleteRange($cellAddress, $beforeRow, $pNumRows, $beforeColumnIndex, $pNumCols) - { - list($cellColumn, $cellRow) = PHPExcel_Cell::coordinateFromString($cellAddress); - $cellColumnIndex = PHPExcel_Cell::columnIndexFromString($cellColumn); - // Is cell within the range of rows/columns if we're deleting - if ($pNumRows < 0 && - ($cellRow >= ($beforeRow + $pNumRows)) && - ($cellRow < $beforeRow)) { - return true; - } elseif ($pNumCols < 0 && - ($cellColumnIndex >= ($beforeColumnIndex + $pNumCols)) && - ($cellColumnIndex < $beforeColumnIndex)) { - return true; - } - return false; - } - - /** - * Update page breaks when inserting/deleting rows/columns - * - * @param PHPExcel_Worksheet $pSheet The worksheet that we're editing - * @param string $pBefore Insert/Delete before this cell address (e.g. 'A1') - * @param integer $beforeColumnIndex Index number of the column we're inserting/deleting before - * @param integer $pNumCols Number of columns to insert/delete (negative values indicate deletion) - * @param integer $beforeRow Number of the row we're inserting/deleting before - * @param integer $pNumRows Number of rows to insert/delete (negative values indicate deletion) - */ - protected function adjustPageBreaks(PHPExcel_Worksheet $pSheet, $pBefore, $beforeColumnIndex, $pNumCols, $beforeRow, $pNumRows) - { - $aBreaks = $pSheet->getBreaks(); - ($pNumCols > 0 || $pNumRows > 0) ? - uksort($aBreaks, array('PHPExcel_ReferenceHelper','cellReverseSort')) : - uksort($aBreaks, array('PHPExcel_ReferenceHelper','cellSort')); - - foreach ($aBreaks as $key => $value) { - if (self::cellAddressInDeleteRange($key, $beforeRow, $pNumRows, $beforeColumnIndex, $pNumCols)) { - // If we're deleting, then clear any defined breaks that are within the range - // of rows/columns that we're deleting - $pSheet->setBreak($key, PHPExcel_Worksheet::BREAK_NONE); - } else { - // Otherwise update any affected breaks by inserting a new break at the appropriate point - // and removing the old affected break - $newReference = $this->updateCellReference($key, $pBefore, $pNumCols, $pNumRows); - if ($key != $newReference) { - $pSheet->setBreak($newReference, $value) - ->setBreak($key, PHPExcel_Worksheet::BREAK_NONE); - } - } - } - } - - /** - * Update cell comments when inserting/deleting rows/columns - * - * @param PHPExcel_Worksheet $pSheet The worksheet that we're editing - * @param string $pBefore Insert/Delete before this cell address (e.g. 'A1') - * @param integer $beforeColumnIndex Index number of the column we're inserting/deleting before - * @param integer $pNumCols Number of columns to insert/delete (negative values indicate deletion) - * @param integer $beforeRow Number of the row we're inserting/deleting before - * @param integer $pNumRows Number of rows to insert/delete (negative values indicate deletion) - */ - protected function adjustComments($pSheet, $pBefore, $beforeColumnIndex, $pNumCols, $beforeRow, $pNumRows) - { - $aComments = $pSheet->getComments(); - $aNewComments = array(); // the new array of all comments - - foreach ($aComments as $key => &$value) { - // Any comments inside a deleted range will be ignored - if (!self::cellAddressInDeleteRange($key, $beforeRow, $pNumRows, $beforeColumnIndex, $pNumCols)) { - // Otherwise build a new array of comments indexed by the adjusted cell reference - $newReference = $this->updateCellReference($key, $pBefore, $pNumCols, $pNumRows); - $aNewComments[$newReference] = $value; - } - } - // Replace the comments array with the new set of comments - $pSheet->setComments($aNewComments); - } - - /** - * Update hyperlinks when inserting/deleting rows/columns - * - * @param PHPExcel_Worksheet $pSheet The worksheet that we're editing - * @param string $pBefore Insert/Delete before this cell address (e.g. 'A1') - * @param integer $beforeColumnIndex Index number of the column we're inserting/deleting before - * @param integer $pNumCols Number of columns to insert/delete (negative values indicate deletion) - * @param integer $beforeRow Number of the row we're inserting/deleting before - * @param integer $pNumRows Number of rows to insert/delete (negative values indicate deletion) - */ - protected function adjustHyperlinks($pSheet, $pBefore, $beforeColumnIndex, $pNumCols, $beforeRow, $pNumRows) - { - $aHyperlinkCollection = $pSheet->getHyperlinkCollection(); - ($pNumCols > 0 || $pNumRows > 0) ? uksort($aHyperlinkCollection, array('PHPExcel_ReferenceHelper','cellReverseSort')) : uksort($aHyperlinkCollection, array('PHPExcel_ReferenceHelper','cellSort')); - - foreach ($aHyperlinkCollection as $key => $value) { - $newReference = $this->updateCellReference($key, $pBefore, $pNumCols, $pNumRows); - if ($key != $newReference) { - $pSheet->setHyperlink($newReference, $value); - $pSheet->setHyperlink($key, null); - } - } - } - - /** - * Update data validations when inserting/deleting rows/columns - * - * @param PHPExcel_Worksheet $pSheet The worksheet that we're editing - * @param string $pBefore Insert/Delete before this cell address (e.g. 'A1') - * @param integer $beforeColumnIndex Index number of the column we're inserting/deleting before - * @param integer $pNumCols Number of columns to insert/delete (negative values indicate deletion) - * @param integer $beforeRow Number of the row we're inserting/deleting before - * @param integer $pNumRows Number of rows to insert/delete (negative values indicate deletion) - */ - protected function adjustDataValidations($pSheet, $pBefore, $beforeColumnIndex, $pNumCols, $beforeRow, $pNumRows) - { - $aDataValidationCollection = $pSheet->getDataValidationCollection(); - ($pNumCols > 0 || $pNumRows > 0) ? uksort($aDataValidationCollection, array('PHPExcel_ReferenceHelper','cellReverseSort')) : uksort($aDataValidationCollection, array('PHPExcel_ReferenceHelper','cellSort')); - - foreach ($aDataValidationCollection as $key => $value) { - $newReference = $this->updateCellReference($key, $pBefore, $pNumCols, $pNumRows); - if ($key != $newReference) { - $pSheet->setDataValidation($newReference, $value); - $pSheet->setDataValidation($key, null); - } - } - } - - /** - * Update merged cells when inserting/deleting rows/columns - * - * @param PHPExcel_Worksheet $pSheet The worksheet that we're editing - * @param string $pBefore Insert/Delete before this cell address (e.g. 'A1') - * @param integer $beforeColumnIndex Index number of the column we're inserting/deleting before - * @param integer $pNumCols Number of columns to insert/delete (negative values indicate deletion) - * @param integer $beforeRow Number of the row we're inserting/deleting before - * @param integer $pNumRows Number of rows to insert/delete (negative values indicate deletion) - */ - protected function adjustMergeCells($pSheet, $pBefore, $beforeColumnIndex, $pNumCols, $beforeRow, $pNumRows) - { - $aMergeCells = $pSheet->getMergeCells(); - $aNewMergeCells = array(); // the new array of all merge cells - foreach ($aMergeCells as $key => &$value) { - $newReference = $this->updateCellReference($key, $pBefore, $pNumCols, $pNumRows); - $aNewMergeCells[$newReference] = $newReference; - } - $pSheet->setMergeCells($aNewMergeCells); // replace the merge cells array - } - - /** - * Update protected cells when inserting/deleting rows/columns - * - * @param PHPExcel_Worksheet $pSheet The worksheet that we're editing - * @param string $pBefore Insert/Delete before this cell address (e.g. 'A1') - * @param integer $beforeColumnIndex Index number of the column we're inserting/deleting before - * @param integer $pNumCols Number of columns to insert/delete (negative values indicate deletion) - * @param integer $beforeRow Number of the row we're inserting/deleting before - * @param integer $pNumRows Number of rows to insert/delete (negative values indicate deletion) - */ - protected function adjustProtectedCells($pSheet, $pBefore, $beforeColumnIndex, $pNumCols, $beforeRow, $pNumRows) - { - $aProtectedCells = $pSheet->getProtectedCells(); - ($pNumCols > 0 || $pNumRows > 0) ? - uksort($aProtectedCells, array('PHPExcel_ReferenceHelper','cellReverseSort')) : - uksort($aProtectedCells, array('PHPExcel_ReferenceHelper','cellSort')); - foreach ($aProtectedCells as $key => $value) { - $newReference = $this->updateCellReference($key, $pBefore, $pNumCols, $pNumRows); - if ($key != $newReference) { - $pSheet->protectCells($newReference, $value, true); - $pSheet->unprotectCells($key); - } - } - } - - /** - * Update column dimensions when inserting/deleting rows/columns - * - * @param PHPExcel_Worksheet $pSheet The worksheet that we're editing - * @param string $pBefore Insert/Delete before this cell address (e.g. 'A1') - * @param integer $beforeColumnIndex Index number of the column we're inserting/deleting before - * @param integer $pNumCols Number of columns to insert/delete (negative values indicate deletion) - * @param integer $beforeRow Number of the row we're inserting/deleting before - * @param integer $pNumRows Number of rows to insert/delete (negative values indicate deletion) - */ - protected function adjustColumnDimensions($pSheet, $pBefore, $beforeColumnIndex, $pNumCols, $beforeRow, $pNumRows) - { - $aColumnDimensions = array_reverse($pSheet->getColumnDimensions(), true); - if (!empty($aColumnDimensions)) { - foreach ($aColumnDimensions as $objColumnDimension) { - $newReference = $this->updateCellReference($objColumnDimension->getColumnIndex() . '1', $pBefore, $pNumCols, $pNumRows); - list($newReference) = PHPExcel_Cell::coordinateFromString($newReference); - if ($objColumnDimension->getColumnIndex() != $newReference) { - $objColumnDimension->setColumnIndex($newReference); - } - } - $pSheet->refreshColumnDimensions(); - } - } - - /** - * Update row dimensions when inserting/deleting rows/columns - * - * @param PHPExcel_Worksheet $pSheet The worksheet that we're editing - * @param string $pBefore Insert/Delete before this cell address (e.g. 'A1') - * @param integer $beforeColumnIndex Index number of the column we're inserting/deleting before - * @param integer $pNumCols Number of columns to insert/delete (negative values indicate deletion) - * @param integer $beforeRow Number of the row we're inserting/deleting before - * @param integer $pNumRows Number of rows to insert/delete (negative values indicate deletion) - */ - protected function adjustRowDimensions($pSheet, $pBefore, $beforeColumnIndex, $pNumCols, $beforeRow, $pNumRows) - { - $aRowDimensions = array_reverse($pSheet->getRowDimensions(), true); - if (!empty($aRowDimensions)) { - foreach ($aRowDimensions as $objRowDimension) { - $newReference = $this->updateCellReference('A' . $objRowDimension->getRowIndex(), $pBefore, $pNumCols, $pNumRows); - list(, $newReference) = PHPExcel_Cell::coordinateFromString($newReference); - if ($objRowDimension->getRowIndex() != $newReference) { - $objRowDimension->setRowIndex($newReference); - } - } - $pSheet->refreshRowDimensions(); - - $copyDimension = $pSheet->getRowDimension($beforeRow - 1); - for ($i = $beforeRow; $i <= $beforeRow - 1 + $pNumRows; ++$i) { - $newDimension = $pSheet->getRowDimension($i); - $newDimension->setRowHeight($copyDimension->getRowHeight()); - $newDimension->setVisible($copyDimension->getVisible()); - $newDimension->setOutlineLevel($copyDimension->getOutlineLevel()); - $newDimension->setCollapsed($copyDimension->getCollapsed()); - } - } - } - - /** - * Insert a new column or row, updating all possible related data - * - * @param string $pBefore Insert before this cell address (e.g. 'A1') - * @param integer $pNumCols Number of columns to insert/delete (negative values indicate deletion) - * @param integer $pNumRows Number of rows to insert/delete (negative values indicate deletion) - * @param PHPExcel_Worksheet $pSheet The worksheet that we're editing - * @throws PHPExcel_Exception - */ - public function insertNewBefore($pBefore = 'A1', $pNumCols = 0, $pNumRows = 0, PHPExcel_Worksheet $pSheet = null) - { - $remove = ($pNumCols < 0 || $pNumRows < 0); - $aCellCollection = $pSheet->getCellCollection(); - - // Get coordinates of $pBefore - $beforeColumn = 'A'; - $beforeRow = 1; - list($beforeColumn, $beforeRow) = PHPExcel_Cell::coordinateFromString($pBefore); - $beforeColumnIndex = PHPExcel_Cell::columnIndexFromString($beforeColumn); - - // Clear cells if we are removing columns or rows - $highestColumn = $pSheet->getHighestColumn(); - $highestRow = $pSheet->getHighestRow(); - - // 1. Clear column strips if we are removing columns - if ($pNumCols < 0 && $beforeColumnIndex - 2 + $pNumCols > 0) { - for ($i = 1; $i <= $highestRow - 1; ++$i) { - for ($j = $beforeColumnIndex - 1 + $pNumCols; $j <= $beforeColumnIndex - 2; ++$j) { - $coordinate = PHPExcel_Cell::stringFromColumnIndex($j) . $i; - $pSheet->removeConditionalStyles($coordinate); - if ($pSheet->cellExists($coordinate)) { - $pSheet->getCell($coordinate)->setValueExplicit('', PHPExcel_Cell_DataType::TYPE_NULL); - $pSheet->getCell($coordinate)->setXfIndex(0); - } - } - } - } - - // 2. Clear row strips if we are removing rows - if ($pNumRows < 0 && $beforeRow - 1 + $pNumRows > 0) { - for ($i = $beforeColumnIndex - 1; $i <= PHPExcel_Cell::columnIndexFromString($highestColumn) - 1; ++$i) { - for ($j = $beforeRow + $pNumRows; $j <= $beforeRow - 1; ++$j) { - $coordinate = PHPExcel_Cell::stringFromColumnIndex($i) . $j; - $pSheet->removeConditionalStyles($coordinate); - if ($pSheet->cellExists($coordinate)) { - $pSheet->getCell($coordinate)->setValueExplicit('', PHPExcel_Cell_DataType::TYPE_NULL); - $pSheet->getCell($coordinate)->setXfIndex(0); - } - } - } - } - - // Loop through cells, bottom-up, and change cell coordinates - if ($remove) { - // It's faster to reverse and pop than to use unshift, especially with large cell collections - $aCellCollection = array_reverse($aCellCollection); - } - while ($cellID = array_pop($aCellCollection)) { - $cell = $pSheet->getCell($cellID); - $cellIndex = PHPExcel_Cell::columnIndexFromString($cell->getColumn()); - - if ($cellIndex-1 + $pNumCols < 0) { - continue; - } - - // New coordinates - $newCoordinates = PHPExcel_Cell::stringFromColumnIndex($cellIndex-1 + $pNumCols) . ($cell->getRow() + $pNumRows); - - // Should the cell be updated? Move value and cellXf index from one cell to another. - if (($cellIndex >= $beforeColumnIndex) && ($cell->getRow() >= $beforeRow)) { - // Update cell styles - $pSheet->getCell($newCoordinates)->setXfIndex($cell->getXfIndex()); - - // Insert this cell at its new location - if ($cell->getDataType() == PHPExcel_Cell_DataType::TYPE_FORMULA) { - // Formula should be adjusted - $pSheet->getCell($newCoordinates) - ->setValue($this->updateFormulaReferences($cell->getValue(), $pBefore, $pNumCols, $pNumRows, $pSheet->getTitle())); - } else { - // Formula should not be adjusted - $pSheet->getCell($newCoordinates)->setValue($cell->getValue()); - } - - // Clear the original cell - $pSheet->getCellCacheController()->deleteCacheData($cellID); - } else { - /* We don't need to update styles for rows/columns before our insertion position, - but we do still need to adjust any formulae in those cells */ - if ($cell->getDataType() == PHPExcel_Cell_DataType::TYPE_FORMULA) { - // Formula should be adjusted - $cell->setValue($this->updateFormulaReferences($cell->getValue(), $pBefore, $pNumCols, $pNumRows, $pSheet->getTitle())); - } - - } - } - - // Duplicate styles for the newly inserted cells - $highestColumn = $pSheet->getHighestColumn(); - $highestRow = $pSheet->getHighestRow(); - - if ($pNumCols > 0 && $beforeColumnIndex - 2 > 0) { - for ($i = $beforeRow; $i <= $highestRow - 1; ++$i) { - // Style - $coordinate = PHPExcel_Cell::stringFromColumnIndex($beforeColumnIndex - 2) . $i; - if ($pSheet->cellExists($coordinate)) { - $xfIndex = $pSheet->getCell($coordinate)->getXfIndex(); - $conditionalStyles = $pSheet->conditionalStylesExists($coordinate) ? - $pSheet->getConditionalStyles($coordinate) : false; - for ($j = $beforeColumnIndex - 1; $j <= $beforeColumnIndex - 2 + $pNumCols; ++$j) { - $pSheet->getCellByColumnAndRow($j, $i)->setXfIndex($xfIndex); - if ($conditionalStyles) { - $cloned = array(); - foreach ($conditionalStyles as $conditionalStyle) { - $cloned[] = clone $conditionalStyle; - } - $pSheet->setConditionalStyles(PHPExcel_Cell::stringFromColumnIndex($j) . $i, $cloned); - } - } - } - - } - } - - if ($pNumRows > 0 && $beforeRow - 1 > 0) { - for ($i = $beforeColumnIndex - 1; $i <= PHPExcel_Cell::columnIndexFromString($highestColumn) - 1; ++$i) { - // Style - $coordinate = PHPExcel_Cell::stringFromColumnIndex($i) . ($beforeRow - 1); - if ($pSheet->cellExists($coordinate)) { - $xfIndex = $pSheet->getCell($coordinate)->getXfIndex(); - $conditionalStyles = $pSheet->conditionalStylesExists($coordinate) ? - $pSheet->getConditionalStyles($coordinate) : false; - for ($j = $beforeRow; $j <= $beforeRow - 1 + $pNumRows; ++$j) { - $pSheet->getCell(PHPExcel_Cell::stringFromColumnIndex($i) . $j)->setXfIndex($xfIndex); - if ($conditionalStyles) { - $cloned = array(); - foreach ($conditionalStyles as $conditionalStyle) { - $cloned[] = clone $conditionalStyle; - } - $pSheet->setConditionalStyles(PHPExcel_Cell::stringFromColumnIndex($i) . $j, $cloned); - } - } - } - } - } - - // Update worksheet: column dimensions - $this->adjustColumnDimensions($pSheet, $pBefore, $beforeColumnIndex, $pNumCols, $beforeRow, $pNumRows); - - // Update worksheet: row dimensions - $this->adjustRowDimensions($pSheet, $pBefore, $beforeColumnIndex, $pNumCols, $beforeRow, $pNumRows); - - // Update worksheet: page breaks - $this->adjustPageBreaks($pSheet, $pBefore, $beforeColumnIndex, $pNumCols, $beforeRow, $pNumRows); - - // Update worksheet: comments - $this->adjustComments($pSheet, $pBefore, $beforeColumnIndex, $pNumCols, $beforeRow, $pNumRows); - - // Update worksheet: hyperlinks - $this->adjustHyperlinks($pSheet, $pBefore, $beforeColumnIndex, $pNumCols, $beforeRow, $pNumRows); - - // Update worksheet: data validations - $this->adjustDataValidations($pSheet, $pBefore, $beforeColumnIndex, $pNumCols, $beforeRow, $pNumRows); - - // Update worksheet: merge cells - $this->adjustMergeCells($pSheet, $pBefore, $beforeColumnIndex, $pNumCols, $beforeRow, $pNumRows); - - // Update worksheet: protected cells - $this->adjustProtectedCells($pSheet, $pBefore, $beforeColumnIndex, $pNumCols, $beforeRow, $pNumRows); - - // Update worksheet: autofilter - $autoFilter = $pSheet->getAutoFilter(); - $autoFilterRange = $autoFilter->getRange(); - if (!empty($autoFilterRange)) { - if ($pNumCols != 0) { - $autoFilterColumns = array_keys($autoFilter->getColumns()); - if (count($autoFilterColumns) > 0) { - sscanf($pBefore, '%[A-Z]%d', $column, $row); - $columnIndex = PHPExcel_Cell::columnIndexFromString($column); - list($rangeStart, $rangeEnd) = PHPExcel_Cell::rangeBoundaries($autoFilterRange); - if ($columnIndex <= $rangeEnd[0]) { - if ($pNumCols < 0) { - // If we're actually deleting any columns that fall within the autofilter range, - // then we delete any rules for those columns - $deleteColumn = $columnIndex + $pNumCols - 1; - $deleteCount = abs($pNumCols); - for ($i = 1; $i <= $deleteCount; ++$i) { - if (in_array(PHPExcel_Cell::stringFromColumnIndex($deleteColumn), $autoFilterColumns)) { - $autoFilter->clearColumn(PHPExcel_Cell::stringFromColumnIndex($deleteColumn)); - } - ++$deleteColumn; - } - } - $startCol = ($columnIndex > $rangeStart[0]) ? $columnIndex : $rangeStart[0]; - - // Shuffle columns in autofilter range - if ($pNumCols > 0) { - // For insert, we shuffle from end to beginning to avoid overwriting - $startColID = PHPExcel_Cell::stringFromColumnIndex($startCol-1); - $toColID = PHPExcel_Cell::stringFromColumnIndex($startCol+$pNumCols-1); - $endColID = PHPExcel_Cell::stringFromColumnIndex($rangeEnd[0]); - - $startColRef = $startCol; - $endColRef = $rangeEnd[0]; - $toColRef = $rangeEnd[0]+$pNumCols; - - do { - $autoFilter->shiftColumn(PHPExcel_Cell::stringFromColumnIndex($endColRef-1), PHPExcel_Cell::stringFromColumnIndex($toColRef-1)); - --$endColRef; - --$toColRef; - } while ($startColRef <= $endColRef); - } else { - // For delete, we shuffle from beginning to end to avoid overwriting - $startColID = PHPExcel_Cell::stringFromColumnIndex($startCol-1); - $toColID = PHPExcel_Cell::stringFromColumnIndex($startCol+$pNumCols-1); - $endColID = PHPExcel_Cell::stringFromColumnIndex($rangeEnd[0]); - do { - $autoFilter->shiftColumn($startColID, $toColID); - ++$startColID; - ++$toColID; - } while ($startColID != $endColID); - } - } - } - } - $pSheet->setAutoFilter($this->updateCellReference($autoFilterRange, $pBefore, $pNumCols, $pNumRows)); - } - - // Update worksheet: freeze pane - if ($pSheet->getFreezePane() != '') { - $pSheet->freezePane($this->updateCellReference($pSheet->getFreezePane(), $pBefore, $pNumCols, $pNumRows)); - } - - // Page setup - if ($pSheet->getPageSetup()->isPrintAreaSet()) { - $pSheet->getPageSetup()->setPrintArea($this->updateCellReference($pSheet->getPageSetup()->getPrintArea(), $pBefore, $pNumCols, $pNumRows)); - } - - // Update worksheet: drawings - $aDrawings = $pSheet->getDrawingCollection(); - foreach ($aDrawings as $objDrawing) { - $newReference = $this->updateCellReference($objDrawing->getCoordinates(), $pBefore, $pNumCols, $pNumRows); - if ($objDrawing->getCoordinates() != $newReference) { - $objDrawing->setCoordinates($newReference); - } - } - - // Update workbook: named ranges - if (count($pSheet->getParent()->getNamedRanges()) > 0) { - foreach ($pSheet->getParent()->getNamedRanges() as $namedRange) { - if ($namedRange->getWorksheet()->getHashCode() == $pSheet->getHashCode()) { - $namedRange->setRange($this->updateCellReference($namedRange->getRange(), $pBefore, $pNumCols, $pNumRows)); - } - } - } - - // Garbage collect - $pSheet->garbageCollect(); - } - - /** - * Update references within formulas - * - * @param string $pFormula Formula to update - * @param int $pBefore Insert before this one - * @param int $pNumCols Number of columns to insert - * @param int $pNumRows Number of rows to insert - * @param string $sheetName Worksheet name/title - * @return string Updated formula - * @throws PHPExcel_Exception - */ - public function updateFormulaReferences($pFormula = '', $pBefore = 'A1', $pNumCols = 0, $pNumRows = 0, $sheetName = '') - { - // Update cell references in the formula - $formulaBlocks = explode('"', $pFormula); - $i = false; - foreach ($formulaBlocks as &$formulaBlock) { - // Ignore blocks that were enclosed in quotes (alternating entries in the $formulaBlocks array after the explode) - if ($i = !$i) { - $adjustCount = 0; - $newCellTokens = $cellTokens = array(); - // Search for row ranges (e.g. 'Sheet1'!3:5 or 3:5) with or without $ absolutes (e.g. $3:5) - $matchCount = preg_match_all('/'.self::REFHELPER_REGEXP_ROWRANGE.'/i', ' '.$formulaBlock.' ', $matches, PREG_SET_ORDER); - if ($matchCount > 0) { - foreach ($matches as $match) { - $fromString = ($match[2] > '') ? $match[2].'!' : ''; - $fromString .= $match[3].':'.$match[4]; - $modified3 = substr($this->updateCellReference('$A'.$match[3], $pBefore, $pNumCols, $pNumRows), 2); - $modified4 = substr($this->updateCellReference('$A'.$match[4], $pBefore, $pNumCols, $pNumRows), 2); - - if ($match[3].':'.$match[4] !== $modified3.':'.$modified4) { - if (($match[2] == '') || (trim($match[2], "'") == $sheetName)) { - $toString = ($match[2] > '') ? $match[2].'!' : ''; - $toString .= $modified3.':'.$modified4; - // Max worksheet size is 1,048,576 rows by 16,384 columns in Excel 2007, so our adjustments need to be at least one digit more - $column = 100000; - $row = 10000000 + trim($match[3], '$'); - $cellIndex = $column.$row; - - $newCellTokens[$cellIndex] = preg_quote($toString); - $cellTokens[$cellIndex] = '/(?<!\d\$\!)'.preg_quote($fromString).'(?!\d)/i'; - ++$adjustCount; - } - } - } - } - // Search for column ranges (e.g. 'Sheet1'!C:E or C:E) with or without $ absolutes (e.g. $C:E) - $matchCount = preg_match_all('/'.self::REFHELPER_REGEXP_COLRANGE.'/i', ' '.$formulaBlock.' ', $matches, PREG_SET_ORDER); - if ($matchCount > 0) { - foreach ($matches as $match) { - $fromString = ($match[2] > '') ? $match[2].'!' : ''; - $fromString .= $match[3].':'.$match[4]; - $modified3 = substr($this->updateCellReference($match[3].'$1', $pBefore, $pNumCols, $pNumRows), 0, -2); - $modified4 = substr($this->updateCellReference($match[4].'$1', $pBefore, $pNumCols, $pNumRows), 0, -2); - - if ($match[3].':'.$match[4] !== $modified3.':'.$modified4) { - if (($match[2] == '') || (trim($match[2], "'") == $sheetName)) { - $toString = ($match[2] > '') ? $match[2].'!' : ''; - $toString .= $modified3.':'.$modified4; - // Max worksheet size is 1,048,576 rows by 16,384 columns in Excel 2007, so our adjustments need to be at least one digit more - $column = PHPExcel_Cell::columnIndexFromString(trim($match[3], '$')) + 100000; - $row = 10000000; - $cellIndex = $column.$row; - - $newCellTokens[$cellIndex] = preg_quote($toString); - $cellTokens[$cellIndex] = '/(?<![A-Z\$\!])'.preg_quote($fromString).'(?![A-Z])/i'; - ++$adjustCount; - } - } - } - } - // Search for cell ranges (e.g. 'Sheet1'!A3:C5 or A3:C5) with or without $ absolutes (e.g. $A1:C$5) - $matchCount = preg_match_all('/'.self::REFHELPER_REGEXP_CELLRANGE.'/i', ' '.$formulaBlock.' ', $matches, PREG_SET_ORDER); - if ($matchCount > 0) { - foreach ($matches as $match) { - $fromString = ($match[2] > '') ? $match[2].'!' : ''; - $fromString .= $match[3].':'.$match[4]; - $modified3 = $this->updateCellReference($match[3], $pBefore, $pNumCols, $pNumRows); - $modified4 = $this->updateCellReference($match[4], $pBefore, $pNumCols, $pNumRows); - - if ($match[3].$match[4] !== $modified3.$modified4) { - if (($match[2] == '') || (trim($match[2], "'") == $sheetName)) { - $toString = ($match[2] > '') ? $match[2].'!' : ''; - $toString .= $modified3.':'.$modified4; - list($column, $row) = PHPExcel_Cell::coordinateFromString($match[3]); - // Max worksheet size is 1,048,576 rows by 16,384 columns in Excel 2007, so our adjustments need to be at least one digit more - $column = PHPExcel_Cell::columnIndexFromString(trim($column, '$')) + 100000; - $row = trim($row, '$') + 10000000; - $cellIndex = $column.$row; - - $newCellTokens[$cellIndex] = preg_quote($toString); - $cellTokens[$cellIndex] = '/(?<![A-Z]\$\!)'.preg_quote($fromString).'(?!\d)/i'; - ++$adjustCount; - } - } - } - } - // Search for cell references (e.g. 'Sheet1'!A3 or C5) with or without $ absolutes (e.g. $A1 or C$5) - $matchCount = preg_match_all('/'.self::REFHELPER_REGEXP_CELLREF.'/i', ' '.$formulaBlock.' ', $matches, PREG_SET_ORDER); - - if ($matchCount > 0) { - foreach ($matches as $match) { - $fromString = ($match[2] > '') ? $match[2].'!' : ''; - $fromString .= $match[3]; - - $modified3 = $this->updateCellReference($match[3], $pBefore, $pNumCols, $pNumRows); - if ($match[3] !== $modified3) { - if (($match[2] == '') || (trim($match[2], "'") == $sheetName)) { - $toString = ($match[2] > '') ? $match[2].'!' : ''; - $toString .= $modified3; - list($column, $row) = PHPExcel_Cell::coordinateFromString($match[3]); - // Max worksheet size is 1,048,576 rows by 16,384 columns in Excel 2007, so our adjustments need to be at least one digit more - $column = PHPExcel_Cell::columnIndexFromString(trim($column, '$')) + 100000; - $row = trim($row, '$') + 10000000; - $cellIndex = $row . $column; - - $newCellTokens[$cellIndex] = preg_quote($toString); - $cellTokens[$cellIndex] = '/(?<![A-Z\$\!])'.preg_quote($fromString).'(?!\d)/i'; - ++$adjustCount; - } - } - } - } - if ($adjustCount > 0) { - if ($pNumCols > 0 || $pNumRows > 0) { - krsort($cellTokens); - krsort($newCellTokens); - } else { - ksort($cellTokens); - ksort($newCellTokens); - } // Update cell references in the formula - $formulaBlock = str_replace('\\', '', preg_replace($cellTokens, $newCellTokens, $formulaBlock)); - } - } - } - unset($formulaBlock); - - // Then rebuild the formula string - return implode('"', $formulaBlocks); - } - - /** - * Update cell reference - * - * @param string $pCellRange Cell range - * @param int $pBefore Insert before this one - * @param int $pNumCols Number of columns to increment - * @param int $pNumRows Number of rows to increment - * @return string Updated cell range - * @throws PHPExcel_Exception - */ - public function updateCellReference($pCellRange = 'A1', $pBefore = 'A1', $pNumCols = 0, $pNumRows = 0) - { - // Is it in another worksheet? Will not have to update anything. - if (strpos($pCellRange, "!") !== false) { - return $pCellRange; - // Is it a range or a single cell? - } elseif (strpos($pCellRange, ':') === false && strpos($pCellRange, ',') === false) { - // Single cell - return $this->updateSingleCellReference($pCellRange, $pBefore, $pNumCols, $pNumRows); - } elseif (strpos($pCellRange, ':') !== false || strpos($pCellRange, ',') !== false) { - // Range - return $this->updateCellRange($pCellRange, $pBefore, $pNumCols, $pNumRows); - } else { - // Return original - return $pCellRange; - } - } - - /** - * Update named formulas (i.e. containing worksheet references / named ranges) - * - * @param PHPExcel $pPhpExcel Object to update - * @param string $oldName Old name (name to replace) - * @param string $newName New name - */ - public function updateNamedFormulas(PHPExcel $pPhpExcel, $oldName = '', $newName = '') - { - if ($oldName == '') { - return; - } - - foreach ($pPhpExcel->getWorksheetIterator() as $sheet) { - foreach ($sheet->getCellCollection(false) as $cellID) { - $cell = $sheet->getCell($cellID); - if (($cell !== null) && ($cell->getDataType() == PHPExcel_Cell_DataType::TYPE_FORMULA)) { - $formula = $cell->getValue(); - if (strpos($formula, $oldName) !== false) { - $formula = str_replace("'" . $oldName . "'!", "'" . $newName . "'!", $formula); - $formula = str_replace($oldName . "!", $newName . "!", $formula); - $cell->setValueExplicit($formula, PHPExcel_Cell_DataType::TYPE_FORMULA); - } - } - } - } - } - - /** - * Update cell range - * - * @param string $pCellRange Cell range (e.g. 'B2:D4', 'B:C' or '2:3') - * @param int $pBefore Insert before this one - * @param int $pNumCols Number of columns to increment - * @param int $pNumRows Number of rows to increment - * @return string Updated cell range - * @throws PHPExcel_Exception - */ - private function updateCellRange($pCellRange = 'A1:A1', $pBefore = 'A1', $pNumCols = 0, $pNumRows = 0) - { - if (strpos($pCellRange, ':') !== false || strpos($pCellRange, ',') !== false) { - // Update range - $range = PHPExcel_Cell::splitRange($pCellRange); - $ic = count($range); - for ($i = 0; $i < $ic; ++$i) { - $jc = count($range[$i]); - for ($j = 0; $j < $jc; ++$j) { - if (ctype_alpha($range[$i][$j])) { - $r = PHPExcel_Cell::coordinateFromString($this->updateSingleCellReference($range[$i][$j].'1', $pBefore, $pNumCols, $pNumRows)); - $range[$i][$j] = $r[0]; - } elseif (ctype_digit($range[$i][$j])) { - $r = PHPExcel_Cell::coordinateFromString($this->updateSingleCellReference('A'.$range[$i][$j], $pBefore, $pNumCols, $pNumRows)); - $range[$i][$j] = $r[1]; - } else { - $range[$i][$j] = $this->updateSingleCellReference($range[$i][$j], $pBefore, $pNumCols, $pNumRows); - } - } - } - - // Recreate range string - return PHPExcel_Cell::buildRange($range); - } else { - throw new PHPExcel_Exception("Only cell ranges may be passed to this method."); - } - } - - /** - * Update single cell reference - * - * @param string $pCellReference Single cell reference - * @param int $pBefore Insert before this one - * @param int $pNumCols Number of columns to increment - * @param int $pNumRows Number of rows to increment - * @return string Updated cell reference - * @throws PHPExcel_Exception - */ - private function updateSingleCellReference($pCellReference = 'A1', $pBefore = 'A1', $pNumCols = 0, $pNumRows = 0) - { - if (strpos($pCellReference, ':') === false && strpos($pCellReference, ',') === false) { - // Get coordinates of $pBefore - list($beforeColumn, $beforeRow) = PHPExcel_Cell::coordinateFromString($pBefore); - - // Get coordinates of $pCellReference - list($newColumn, $newRow) = PHPExcel_Cell::coordinateFromString($pCellReference); - - // Verify which parts should be updated - $updateColumn = (($newColumn{0} != '$') && ($beforeColumn{0} != '$') && (PHPExcel_Cell::columnIndexFromString($newColumn) >= PHPExcel_Cell::columnIndexFromString($beforeColumn))); - $updateRow = (($newRow{0} != '$') && ($beforeRow{0} != '$') && $newRow >= $beforeRow); - - // Create new column reference - if ($updateColumn) { - $newColumn = PHPExcel_Cell::stringFromColumnIndex(PHPExcel_Cell::columnIndexFromString($newColumn) - 1 + $pNumCols); - } - - // Create new row reference - if ($updateRow) { - $newRow = $newRow + $pNumRows; - } - - // Return new reference - return $newColumn . $newRow; - } else { - throw new PHPExcel_Exception("Only single cell references may be passed to this method."); - } - } - - /** - * __clone implementation. Cloning should not be allowed in a Singleton! - * - * @throws PHPExcel_Exception - */ - final public function __clone() - { - throw new PHPExcel_Exception("Cloning a Singleton is not allowed!"); - } -} diff --git a/Utils/PHPExcel/RichText.php b/Utils/PHPExcel/RichText.php deleted file mode 100644 index 6f74506..0000000 --- a/Utils/PHPExcel/RichText.php +++ /dev/null @@ -1,191 +0,0 @@ -<?php - -/** - * PHPExcel_RichText - * - * Copyright (c) 2006 - 2015 PHPExcel - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - * - * @category PHPExcel - * @package PHPExcel_RichText - * @copyright Copyright (c) 2006 - 2015 PHPExcel (http://www.codeplex.com/PHPExcel) - * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL - * @version ##VERSION##, ##DATE## - */ -class PHPExcel_RichText implements PHPExcel_IComparable -{ - /** - * Rich text elements - * - * @var PHPExcel_RichText_ITextElement[] - */ - private $richTextElements; - - /** - * Create a new PHPExcel_RichText instance - * - * @param PHPExcel_Cell $pCell - * @throws PHPExcel_Exception - */ - public function __construct(PHPExcel_Cell $pCell = null) - { - // Initialise variables - $this->richTextElements = array(); - - // Rich-Text string attached to cell? - if ($pCell !== null) { - // Add cell text and style - if ($pCell->getValue() != "") { - $objRun = new PHPExcel_RichText_Run($pCell->getValue()); - $objRun->setFont(clone $pCell->getParent()->getStyle($pCell->getCoordinate())->getFont()); - $this->addText($objRun); - } - - // Set parent value - $pCell->setValueExplicit($this, PHPExcel_Cell_DataType::TYPE_STRING); - } - } - - /** - * Add text - * - * @param PHPExcel_RichText_ITextElement $pText Rich text element - * @throws PHPExcel_Exception - * @return PHPExcel_RichText - */ - public function addText(PHPExcel_RichText_ITextElement $pText = null) - { - $this->richTextElements[] = $pText; - return $this; - } - - /** - * Create text - * - * @param string $pText Text - * @return PHPExcel_RichText_TextElement - * @throws PHPExcel_Exception - */ - public function createText($pText = '') - { - $objText = new PHPExcel_RichText_TextElement($pText); - $this->addText($objText); - return $objText; - } - - /** - * Create text run - * - * @param string $pText Text - * @return PHPExcel_RichText_Run - * @throws PHPExcel_Exception - */ - public function createTextRun($pText = '') - { - $objText = new PHPExcel_RichText_Run($pText); - $this->addText($objText); - return $objText; - } - - /** - * Convert to string - * - * @return string - */ - public function __toString() - { - return $this->getPlainText(); - } - - /** - * Get plain text - * - * @return string - */ - public function getPlainText() - { - // Return value - $returnValue = ''; - - // Loop through all PHPExcel_RichText_ITextElement - foreach ($this->richTextElements as $text) { - $returnValue .= $text->getText(); - } - - // Return - return $returnValue; - } - - /** - * Get Rich Text elements - * - * @return PHPExcel_RichText_ITextElement[] - */ - public function getRichTextElements() - { - return $this->richTextElements; - } - - /** - * Set Rich Text elements - * - * @param PHPExcel_RichText_ITextElement[] $pElements Array of elements - * @throws PHPExcel_Exception - * @return PHPExcel_RichText - */ - public function setRichTextElements($pElements = null) - { - if (is_array($pElements)) { - $this->richTextElements = $pElements; - } else { - throw new PHPExcel_Exception("Invalid PHPExcel_RichText_ITextElement[] array passed."); - } - return $this; - } - - /** - * Get hash code - * - * @return string Hash code - */ - public function getHashCode() - { - $hashElements = ''; - foreach ($this->richTextElements as $element) { - $hashElements .= $element->getHashCode(); - } - - return md5( - $hashElements . - __CLASS__ - ); - } - - /** - * Implement PHP __clone to create a deep clone, not just a shallow copy. - */ - public function __clone() - { - $vars = get_object_vars($this); - foreach ($vars as $key => $value) { - if (is_object($value)) { - $this->$key = clone $value; - } else { - $this->$key = $value; - } - } - } -} diff --git a/Utils/PHPExcel/RichText/ITextElement.php b/Utils/PHPExcel/RichText/ITextElement.php deleted file mode 100644 index 5db3432..0000000 --- a/Utils/PHPExcel/RichText/ITextElement.php +++ /dev/null @@ -1,56 +0,0 @@ -<?php - -/** - * PHPExcel_RichText_ITextElement - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - * - * @category PHPExcel - * @package PHPExcel_RichText - * @copyright Copyright (c) 2006 - 2015 PHPExcel (http://www.codeplex.com/PHPExcel) - * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL - * @version ##VERSION##, ##DATE## - */ -interface PHPExcel_RichText_ITextElement -{ - /** - * Get text - * - * @return string Text - */ - public function getText(); - - /** - * Set text - * - * @param $pText string Text - * @return PHPExcel_RichText_ITextElement - */ - public function setText($pText = ''); - - /** - * Get font - * - * @return PHPExcel_Style_Font - */ - public function getFont(); - - /** - * Get hash code - * - * @return string Hash code - */ - public function getHashCode(); -} diff --git a/Utils/PHPExcel/RichText/Run.php b/Utils/PHPExcel/RichText/Run.php deleted file mode 100644 index 5737bb0..0000000 --- a/Utils/PHPExcel/RichText/Run.php +++ /dev/null @@ -1,98 +0,0 @@ -<?php - -/** - * PHPExcel_RichText_Run - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - * - * @category PHPExcel - * @package PHPExcel_RichText - * @copyright Copyright (c) 2006 - 2015 PHPExcel (http://www.codeplex.com/PHPExcel) - * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL - * @version ##VERSION##, ##DATE## - */ -class PHPExcel_RichText_Run extends PHPExcel_RichText_TextElement implements PHPExcel_RichText_ITextElement -{ - /** - * Font - * - * @var PHPExcel_Style_Font - */ - private $font; - - /** - * Create a new PHPExcel_RichText_Run instance - * - * @param string $pText Text - */ - public function __construct($pText = '') - { - // Initialise variables - $this->setText($pText); - $this->font = new PHPExcel_Style_Font(); - } - - /** - * Get font - * - * @return PHPExcel_Style_Font - */ - public function getFont() - { - return $this->font; - } - - /** - * Set font - * - * @param PHPExcel_Style_Font $pFont Font - * @throws PHPExcel_Exception - * @return PHPExcel_RichText_ITextElement - */ - public function setFont(PHPExcel_Style_Font $pFont = null) - { - $this->font = $pFont; - return $this; - } - - /** - * Get hash code - * - * @return string Hash code - */ - public function getHashCode() - { - return md5( - $this->getText() . - $this->font->getHashCode() . - __CLASS__ - ); - } - - /** - * Implement PHP __clone to create a deep clone, not just a shallow copy. - */ - public function __clone() - { - $vars = get_object_vars($this); - foreach ($vars as $key => $value) { - if (is_object($value)) { - $this->$key = clone $value; - } else { - $this->$key = $value; - } - } - } -} diff --git a/Utils/PHPExcel/RichText/TextElement.php b/Utils/PHPExcel/RichText/TextElement.php deleted file mode 100644 index f86e703..0000000 --- a/Utils/PHPExcel/RichText/TextElement.php +++ /dev/null @@ -1,105 +0,0 @@ -<?php - -/** - * PHPExcel_RichText_TextElement - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - * - * @category PHPExcel - * @package PHPExcel_RichText - * @copyright Copyright (c) 2006 - 2015 PHPExcel (http://www.codeplex.com/PHPExcel) - * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL - * @version ##VERSION##, ##DATE## - */ -class PHPExcel_RichText_TextElement implements PHPExcel_RichText_ITextElement -{ - /** - * Text - * - * @var string - */ - private $text; - - /** - * Create a new PHPExcel_RichText_TextElement instance - * - * @param string $pText Text - */ - public function __construct($pText = '') - { - // Initialise variables - $this->text = $pText; - } - - /** - * Get text - * - * @return string Text - */ - public function getText() - { - return $this->text; - } - - /** - * Set text - * - * @param $pText string Text - * @return PHPExcel_RichText_ITextElement - */ - public function setText($pText = '') - { - $this->text = $pText; - return $this; - } - - /** - * Get font - * - * @return PHPExcel_Style_Font - */ - public function getFont() - { - return null; - } - - /** - * Get hash code - * - * @return string Hash code - */ - public function getHashCode() - { - return md5( - $this->text . - __CLASS__ - ); - } - - /** - * Implement PHP __clone to create a deep clone, not just a shallow copy. - */ - public function __clone() - { - $vars = get_object_vars($this); - foreach ($vars as $key => $value) { - if (is_object($value)) { - $this->$key = clone $value; - } else { - $this->$key = $value; - } - } - } -} diff --git a/Utils/PHPExcel/Settings.php b/Utils/PHPExcel/Settings.php deleted file mode 100644 index eff33f0..0000000 --- a/Utils/PHPExcel/Settings.php +++ /dev/null @@ -1,387 +0,0 @@ -<?php - -/** PHPExcel root directory */ -if (!defined('PHPEXCEL_ROOT')) { - /** - * @ignore - */ - define('PHPEXCEL_ROOT', dirname(__FILE__) . '/../'); - require(PHPEXCEL_ROOT . 'PHPExcel/Autoloader.php'); -} - -/** - * PHPExcel_Settings - * - * Copyright (c) 2006 - 2015 PHPExcel - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - * - * @category PHPExcel - * @package PHPExcel_Settings - * @copyright Copyright (c) 2006 - 2015 PHPExcel (http://www.codeplex.com/PHPExcel) - * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL - * @version ##VERSION##, ##DATE## - */ -class PHPExcel_Settings -{ - /** constants */ - /** Available Zip library classes */ - const PCLZIP = 'PHPExcel_Shared_ZipArchive'; - const ZIPARCHIVE = 'ZipArchive'; - - /** Optional Chart Rendering libraries */ - const CHART_RENDERER_JPGRAPH = 'jpgraph'; - - /** Optional PDF Rendering libraries */ - const PDF_RENDERER_TCPDF = 'tcPDF'; - const PDF_RENDERER_DOMPDF = 'DomPDF'; - const PDF_RENDERER_MPDF = 'mPDF'; - - - private static $chartRenderers = array( - self::CHART_RENDERER_JPGRAPH, - ); - - private static $pdfRenderers = array( - self::PDF_RENDERER_TCPDF, - self::PDF_RENDERER_DOMPDF, - self::PDF_RENDERER_MPDF, - ); - - - /** - * Name of the class used for Zip file management - * e.g. - * ZipArchive - * - * @var string - */ - private static $zipClass = self::ZIPARCHIVE; - - - /** - * Name of the external Library used for rendering charts - * e.g. - * jpgraph - * - * @var string - */ - private static $chartRendererName; - - /** - * Directory Path to the external Library used for rendering charts - * - * @var string - */ - private static $chartRendererPath; - - - /** - * Name of the external Library used for rendering PDF files - * e.g. - * mPDF - * - * @var string - */ - private static $pdfRendererName; - - /** - * Directory Path to the external Library used for rendering PDF files - * - * @var string - */ - private static $pdfRendererPath; - - /** - * Default options for libxml loader - * - * @var int - */ - private static $libXmlLoaderOptions = null; - - /** - * Set the Zip handler Class that PHPExcel should use for Zip file management (PCLZip or ZipArchive) - * - * @param string $zipClass The Zip handler class that PHPExcel should use for Zip file management - * e.g. PHPExcel_Settings::PCLZip or PHPExcel_Settings::ZipArchive - * @return boolean Success or failure - */ - public static function setZipClass($zipClass) - { - if (($zipClass === self::PCLZIP) || - ($zipClass === self::ZIPARCHIVE)) { - self::$zipClass = $zipClass; - return true; - } - return false; - } - - - /** - * Return the name of the Zip handler Class that PHPExcel is configured to use (PCLZip or ZipArchive) - * or Zip file management - * - * @return string Name of the Zip handler Class that PHPExcel is configured to use - * for Zip file management - * e.g. PHPExcel_Settings::PCLZip or PHPExcel_Settings::ZipArchive - */ - public static function getZipClass() - { - return self::$zipClass; - } - - - /** - * Return the name of the method that is currently configured for cell cacheing - * - * @return string Name of the cacheing method - */ - public static function getCacheStorageMethod() - { - return PHPExcel_CachedObjectStorageFactory::getCacheStorageMethod(); - } - - - /** - * Return the name of the class that is currently being used for cell cacheing - * - * @return string Name of the class currently being used for cacheing - */ - public static function getCacheStorageClass() - { - return PHPExcel_CachedObjectStorageFactory::getCacheStorageClass(); - } - - - /** - * Set the method that should be used for cell cacheing - * - * @param string $method Name of the cacheing method - * @param array $arguments Optional configuration arguments for the cacheing method - * @return boolean Success or failure - */ - public static function setCacheStorageMethod($method = PHPExcel_CachedObjectStorageFactory::cache_in_memory, $arguments = array()) - { - return PHPExcel_CachedObjectStorageFactory::initialize($method, $arguments); - } - - - /** - * Set the locale code to use for formula translations and any special formatting - * - * @param string $locale The locale code to use (e.g. "fr" or "pt_br" or "en_uk") - * @return boolean Success or failure - */ - public static function setLocale($locale = 'en_us') - { - return PHPExcel_Calculation::getInstance()->setLocale($locale); - } - - - /** - * Set details of the external library that PHPExcel should use for rendering charts - * - * @param string $libraryName Internal reference name of the library - * e.g. PHPExcel_Settings::CHART_RENDERER_JPGRAPH - * @param string $libraryBaseDir Directory path to the library's base folder - * - * @return boolean Success or failure - */ - public static function setChartRenderer($libraryName, $libraryBaseDir) - { - if (!self::setChartRendererName($libraryName)) { - return false; - } - return self::setChartRendererPath($libraryBaseDir); - } - - - /** - * Identify to PHPExcel the external library to use for rendering charts - * - * @param string $libraryName Internal reference name of the library - * e.g. PHPExcel_Settings::CHART_RENDERER_JPGRAPH - * - * @return boolean Success or failure - */ - public static function setChartRendererName($libraryName) - { - if (!in_array($libraryName, self::$chartRenderers)) { - return false; - } - self::$chartRendererName = $libraryName; - - return true; - } - - - /** - * Tell PHPExcel where to find the external library to use for rendering charts - * - * @param string $libraryBaseDir Directory path to the library's base folder - * @return boolean Success or failure - */ - public static function setChartRendererPath($libraryBaseDir) - { - if ((file_exists($libraryBaseDir) === false) || (is_readable($libraryBaseDir) === false)) { - return false; - } - self::$chartRendererPath = $libraryBaseDir; - - return true; - } - - - /** - * Return the Chart Rendering Library that PHPExcel is currently configured to use (e.g. jpgraph) - * - * @return string|NULL Internal reference name of the Chart Rendering Library that PHPExcel is - * currently configured to use - * e.g. PHPExcel_Settings::CHART_RENDERER_JPGRAPH - */ - public static function getChartRendererName() - { - return self::$chartRendererName; - } - - - /** - * Return the directory path to the Chart Rendering Library that PHPExcel is currently configured to use - * - * @return string|NULL Directory Path to the Chart Rendering Library that PHPExcel is - * currently configured to use - */ - public static function getChartRendererPath() - { - return self::$chartRendererPath; - } - - - /** - * Set details of the external library that PHPExcel should use for rendering PDF files - * - * @param string $libraryName Internal reference name of the library - * e.g. PHPExcel_Settings::PDF_RENDERER_TCPDF, - * PHPExcel_Settings::PDF_RENDERER_DOMPDF - * or PHPExcel_Settings::PDF_RENDERER_MPDF - * @param string $libraryBaseDir Directory path to the library's base folder - * - * @return boolean Success or failure - */ - public static function setPdfRenderer($libraryName, $libraryBaseDir) - { - if (!self::setPdfRendererName($libraryName)) { - return false; - } - return self::setPdfRendererPath($libraryBaseDir); - } - - - /** - * Identify to PHPExcel the external library to use for rendering PDF files - * - * @param string $libraryName Internal reference name of the library - * e.g. PHPExcel_Settings::PDF_RENDERER_TCPDF, - * PHPExcel_Settings::PDF_RENDERER_DOMPDF - * or PHPExcel_Settings::PDF_RENDERER_MPDF - * - * @return boolean Success or failure - */ - public static function setPdfRendererName($libraryName) - { - if (!in_array($libraryName, self::$pdfRenderers)) { - return false; - } - self::$pdfRendererName = $libraryName; - - return true; - } - - - /** - * Tell PHPExcel where to find the external library to use for rendering PDF files - * - * @param string $libraryBaseDir Directory path to the library's base folder - * @return boolean Success or failure - */ - public static function setPdfRendererPath($libraryBaseDir) - { - if ((file_exists($libraryBaseDir) === false) || (is_readable($libraryBaseDir) === false)) { - return false; - } - self::$pdfRendererPath = $libraryBaseDir; - - return true; - } - - - /** - * Return the PDF Rendering Library that PHPExcel is currently configured to use (e.g. dompdf) - * - * @return string|NULL Internal reference name of the PDF Rendering Library that PHPExcel is - * currently configured to use - * e.g. PHPExcel_Settings::PDF_RENDERER_TCPDF, - * PHPExcel_Settings::PDF_RENDERER_DOMPDF - * or PHPExcel_Settings::PDF_RENDERER_MPDF - */ - public static function getPdfRendererName() - { - return self::$pdfRendererName; - } - - /** - * Return the directory path to the PDF Rendering Library that PHPExcel is currently configured to use - * - * @return string|NULL Directory Path to the PDF Rendering Library that PHPExcel is - * currently configured to use - */ - public static function getPdfRendererPath() - { - return self::$pdfRendererPath; - } - - /** - * Set default options for libxml loader - * - * @param int $options Default options for libxml loader - */ - public static function setLibXmlLoaderOptions($options = null) - { - if (is_null($options) && defined(LIBXML_DTDLOAD)) { - $options = LIBXML_DTDLOAD | LIBXML_DTDATTR; - } - if (version_compare(PHP_VERSION, '5.2.11') >= 0) { - @libxml_disable_entity_loader($options == (LIBXML_DTDLOAD | LIBXML_DTDATTR)); - } - self::$libXmlLoaderOptions = $options; - } - - /** - * Get default options for libxml loader. - * Defaults to LIBXML_DTDLOAD | LIBXML_DTDATTR when not set explicitly. - * - * @return int Default options for libxml loader - */ - public static function getLibXmlLoaderOptions() - { - if (is_null(self::$libXmlLoaderOptions) && defined(LIBXML_DTDLOAD)) { - self::setLibXmlLoaderOptions(LIBXML_DTDLOAD | LIBXML_DTDATTR); - } - if (version_compare(PHP_VERSION, '5.2.11') >= 0) { - @libxml_disable_entity_loader(self::$libXmlLoaderOptions == (LIBXML_DTDLOAD | LIBXML_DTDATTR)); - } - return self::$libXmlLoaderOptions; - } -} diff --git a/Utils/PHPExcel/Shared/CodePage.php b/Utils/PHPExcel/Shared/CodePage.php deleted file mode 100644 index b3e440e..0000000 --- a/Utils/PHPExcel/Shared/CodePage.php +++ /dev/null @@ -1,156 +0,0 @@ -<?php - -/** - * PHPExcel_Shared_CodePage - * - * Copyright (c) 2006 - 2015 PHPExcel - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - * - * @category PHPExcel - * @package PHPExcel_Shared - * @copyright Copyright (c) 2006 - 2015 PHPExcel (http://www.codeplex.com/PHPExcel) - * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL - * @version ##VERSION##, ##DATE## - */ -class PHPExcel_Shared_CodePage -{ - /** - * Convert Microsoft Code Page Identifier to Code Page Name which iconv - * and mbstring understands - * - * @param integer $codePage Microsoft Code Page Indentifier - * @return string Code Page Name - * @throws PHPExcel_Exception - */ - public static function NumberToName($codePage = 1252) - { - switch ($codePage) { - case 367: - return 'ASCII'; // ASCII - case 437: - return 'CP437'; // OEM US - case 720: - throw new PHPExcel_Exception('Code page 720 not supported.'); // OEM Arabic - case 737: - return 'CP737'; // OEM Greek - case 775: - return 'CP775'; // OEM Baltic - case 850: - return 'CP850'; // OEM Latin I - case 852: - return 'CP852'; // OEM Latin II (Central European) - case 855: - return 'CP855'; // OEM Cyrillic - case 857: - return 'CP857'; // OEM Turkish - case 858: - return 'CP858'; // OEM Multilingual Latin I with Euro - case 860: - return 'CP860'; // OEM Portugese - case 861: - return 'CP861'; // OEM Icelandic - case 862: - return 'CP862'; // OEM Hebrew - case 863: - return 'CP863'; // OEM Canadian (French) - case 864: - return 'CP864'; // OEM Arabic - case 865: - return 'CP865'; // OEM Nordic - case 866: - return 'CP866'; // OEM Cyrillic (Russian) - case 869: - return 'CP869'; // OEM Greek (Modern) - case 874: - return 'CP874'; // ANSI Thai - case 932: - return 'CP932'; // ANSI Japanese Shift-JIS - case 936: - return 'CP936'; // ANSI Chinese Simplified GBK - case 949: - return 'CP949'; // ANSI Korean (Wansung) - case 950: - return 'CP950'; // ANSI Chinese Traditional BIG5 - case 1200: - return 'UTF-16LE'; // UTF-16 (BIFF8) - case 1250: - return 'CP1250'; // ANSI Latin II (Central European) - case 1251: - return 'CP1251'; // ANSI Cyrillic - case 0: - // CodePage is not always correctly set when the xls file was saved by Apple's Numbers program - case 1252: - return 'CP1252'; // ANSI Latin I (BIFF4-BIFF7) - case 1253: - return 'CP1253'; // ANSI Greek - case 1254: - return 'CP1254'; // ANSI Turkish - case 1255: - return 'CP1255'; // ANSI Hebrew - case 1256: - return 'CP1256'; // ANSI Arabic - case 1257: - return 'CP1257'; // ANSI Baltic - case 1258: - return 'CP1258'; // ANSI Vietnamese - case 1361: - return 'CP1361'; // ANSI Korean (Johab) - case 10000: - return 'MAC'; // Apple Roman - case 10001: - return 'CP932'; // Macintosh Japanese - case 10002: - return 'CP950'; // Macintosh Chinese Traditional - case 10003: - return 'CP1361'; // Macintosh Korean - case 10004: - return 'MACARABIC'; // Apple Arabic - case 10005: - return 'MACHEBREW'; // Apple Hebrew - case 10006: - return 'MACGREEK'; // Macintosh Greek - case 10007: - return 'MACCYRILLIC'; // Macintosh Cyrillic - case 10008: - return 'CP936'; // Macintosh - Simplified Chinese (GB 2312) - case 10010: - return 'MACROMANIA'; // Macintosh Romania - case 10017: - return 'MACUKRAINE'; // Macintosh Ukraine - case 10021: - return 'MACTHAI'; // Macintosh Thai - case 10029: - return 'MACCENTRALEUROPE'; // Macintosh Central Europe - case 10079: - return 'MACICELAND'; // Macintosh Icelandic - case 10081: - return 'MACTURKISH'; // Macintosh Turkish - case 10082: - return 'MACCROATIAN'; // Macintosh Croatian - case 21010: - return 'UTF-16LE'; // UTF-16 (BIFF8) This isn't correct, but some Excel writer libraries erroneously use Codepage 21010 for UTF-16LE - case 32768: - return 'MAC'; // Apple Roman - case 32769: - throw new PHPExcel_Exception('Code page 32769 not supported.'); // ANSI Latin I (BIFF2-BIFF3) - case 65000: - return 'UTF-7'; // Unicode (UTF-7) - case 65001: - return 'UTF-8'; // Unicode (UTF-8) - } - throw new PHPExcel_Exception('Unknown codepage: ' . $codePage); - } -} diff --git a/Utils/PHPExcel/Shared/Date.php b/Utils/PHPExcel/Shared/Date.php deleted file mode 100644 index a0a4e39..0000000 --- a/Utils/PHPExcel/Shared/Date.php +++ /dev/null @@ -1,409 +0,0 @@ -<?php - -/** - * PHPExcel_Shared_Date - * - * Copyright (c) 2006 - 2015 PHPExcel - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - * - * @category PHPExcel - * @package PHPExcel_Shared - * @copyright Copyright (c) 2006 - 2015 PHPExcel (http://www.codeplex.com/PHPExcel) - * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL - * @version ##VERSION##, ##DATE## - */ -class PHPExcel_Shared_Date -{ - /** constants */ - const CALENDAR_WINDOWS_1900 = 1900; // Base date of 1st Jan 1900 = 1.0 - const CALENDAR_MAC_1904 = 1904; // Base date of 2nd Jan 1904 = 1.0 - - /* - * Names of the months of the year, indexed by shortname - * Planned usage for locale settings - * - * @public - * @var string[] - */ - public static $monthNames = array( - 'Jan' => 'January', - 'Feb' => 'February', - 'Mar' => 'March', - 'Apr' => 'April', - 'May' => 'May', - 'Jun' => 'June', - 'Jul' => 'July', - 'Aug' => 'August', - 'Sep' => 'September', - 'Oct' => 'October', - 'Nov' => 'November', - 'Dec' => 'December', - ); - - /* - * Names of the months of the year, indexed by shortname - * Planned usage for locale settings - * - * @public - * @var string[] - */ - public static $numberSuffixes = array( - 'st', - 'nd', - 'rd', - 'th', - ); - - /* - * Base calendar year to use for calculations - * - * @private - * @var int - */ - protected static $excelBaseDate = self::CALENDAR_WINDOWS_1900; - - /** - * Set the Excel calendar (Windows 1900 or Mac 1904) - * - * @param integer $baseDate Excel base date (1900 or 1904) - * @return boolean Success or failure - */ - public static function setExcelCalendar($baseDate) - { - if (($baseDate == self::CALENDAR_WINDOWS_1900) || - ($baseDate == self::CALENDAR_MAC_1904)) { - self::$excelBaseDate = $baseDate; - return true; - } - return false; - } - - - /** - * Return the Excel calendar (Windows 1900 or Mac 1904) - * - * @return integer Excel base date (1900 or 1904) - */ - public static function getExcelCalendar() - { - return self::$excelBaseDate; - } - - - /** - * Convert a date from Excel to PHP - * - * @param integer $dateValue Excel date/time value - * @param boolean $adjustToTimezone Flag indicating whether $dateValue should be treated as - * a UST timestamp, or adjusted to UST - * @param string $timezone The timezone for finding the adjustment from UST - * @return integer PHP serialized date/time - */ - public static function ExcelToPHP($dateValue = 0, $adjustToTimezone = false, $timezone = null) - { - if (self::$excelBaseDate == self::CALENDAR_WINDOWS_1900) { - $myexcelBaseDate = 25569; - // Adjust for the spurious 29-Feb-1900 (Day 60) - if ($dateValue < 60) { - --$myexcelBaseDate; - } - } else { - $myexcelBaseDate = 24107; - } - - // Perform conversion - if ($dateValue >= 1) { - $utcDays = $dateValue - $myexcelBaseDate; - $returnValue = round($utcDays * 86400); - if (($returnValue <= PHP_INT_MAX) && ($returnValue >= -PHP_INT_MAX)) { - $returnValue = (integer) $returnValue; - } - } else { - $hours = round($dateValue * 24); - $mins = round($dateValue * 1440) - round($hours * 60); - $secs = round($dateValue * 86400) - round($hours * 3600) - round($mins * 60); - $returnValue = (integer) gmmktime($hours, $mins, $secs); - } - - $timezoneAdjustment = ($adjustToTimezone) ? - PHPExcel_Shared_TimeZone::getTimezoneAdjustment($timezone, $returnValue) : - 0; - - return $returnValue + $timezoneAdjustment; - } - - - /** - * Convert a date from Excel to a PHP Date/Time object - * - * @param integer $dateValue Excel date/time value - * @return DateTime PHP date/time object - */ - public static function ExcelToPHPObject($dateValue = 0) - { - $dateTime = self::ExcelToPHP($dateValue); - $days = floor($dateTime / 86400); - $time = round((($dateTime / 86400) - $days) * 86400); - $hours = round($time / 3600); - $minutes = round($time / 60) - ($hours * 60); - $seconds = round($time) - ($hours * 3600) - ($minutes * 60); - - $dateObj = date_create('1-Jan-1970+'.$days.' days'); - $dateObj->setTime($hours, $minutes, $seconds); - - return $dateObj; - } - - - /** - * Convert a date from PHP to Excel - * - * @param mixed $dateValue PHP serialized date/time or date object - * @param boolean $adjustToTimezone Flag indicating whether $dateValue should be treated as - * a UST timestamp, or adjusted to UST - * @param string $timezone The timezone for finding the adjustment from UST - * @return mixed Excel date/time value - * or boolean FALSE on failure - */ - public static function PHPToExcel($dateValue = 0, $adjustToTimezone = false, $timezone = null) - { - $saveTimeZone = date_default_timezone_get(); - date_default_timezone_set('UTC'); - $retValue = false; - if ((is_object($dateValue)) && ($dateValue instanceof DateTime)) { - $retValue = self::FormattedPHPToExcel($dateValue->format('Y'), $dateValue->format('m'), $dateValue->format('d'), $dateValue->format('H'), $dateValue->format('i'), $dateValue->format('s')); - } elseif (is_numeric($dateValue)) { - $retValue = self::FormattedPHPToExcel(date('Y', $dateValue), date('m', $dateValue), date('d', $dateValue), date('H', $dateValue), date('i', $dateValue), date('s', $dateValue)); - } - date_default_timezone_set($saveTimeZone); - - return $retValue; - } - - - /** - * FormattedPHPToExcel - * - * @param integer $year - * @param integer $month - * @param integer $day - * @param integer $hours - * @param integer $minutes - * @param integer $seconds - * @return integer Excel date/time value - */ - public static function FormattedPHPToExcel($year, $month, $day, $hours = 0, $minutes = 0, $seconds = 0) - { - if (self::$excelBaseDate == self::CALENDAR_WINDOWS_1900) { - // - // Fudge factor for the erroneous fact that the year 1900 is treated as a Leap Year in MS Excel - // This affects every date following 28th February 1900 - // - $excel1900isLeapYear = true; - if (($year == 1900) && ($month <= 2)) { - $excel1900isLeapYear = false; - } - $myexcelBaseDate = 2415020; - } else { - $myexcelBaseDate = 2416481; - $excel1900isLeapYear = false; - } - - // Julian base date Adjustment - if ($month > 2) { - $month -= 3; - } else { - $month += 9; - --$year; - } - - // Calculate the Julian Date, then subtract the Excel base date (JD 2415020 = 31-Dec-1899 Giving Excel Date of 0) - $century = substr($year, 0, 2); - $decade = substr($year, 2, 2); - $excelDate = floor((146097 * $century) / 4) + floor((1461 * $decade) / 4) + floor((153 * $month + 2) / 5) + $day + 1721119 - $myexcelBaseDate + $excel1900isLeapYear; - - $excelTime = (($hours * 3600) + ($minutes * 60) + $seconds) / 86400; - - return (float) $excelDate + $excelTime; - } - - - /** - * Is a given cell a date/time? - * - * @param PHPExcel_Cell $pCell - * @return boolean - */ - public static function isDateTime(PHPExcel_Cell $pCell) - { - return self::isDateTimeFormat( - $pCell->getWorksheet()->getStyle( - $pCell->getCoordinate() - )->getNumberFormat() - ); - } - - - /** - * Is a given number format a date/time? - * - * @param PHPExcel_Style_NumberFormat $pFormat - * @return boolean - */ - public static function isDateTimeFormat(PHPExcel_Style_NumberFormat $pFormat) - { - return self::isDateTimeFormatCode($pFormat->getFormatCode()); - } - - - private static $possibleDateFormatCharacters = 'eymdHs'; - - /** - * Is a given number format code a date/time? - * - * @param string $pFormatCode - * @return boolean - */ - public static function isDateTimeFormatCode($pFormatCode = '') - { - if (strtolower($pFormatCode) === strtolower(PHPExcel_Style_NumberFormat::FORMAT_GENERAL)) { - // "General" contains an epoch letter 'e', so we trap for it explicitly here (case-insensitive check) - return false; - } - if (preg_match('/[0#]E[+-]0/i', $pFormatCode)) { - // Scientific format - return false; - } - - // Switch on formatcode - switch ($pFormatCode) { - // Explicitly defined date formats - case PHPExcel_Style_NumberFormat::FORMAT_DATE_YYYYMMDD: - case PHPExcel_Style_NumberFormat::FORMAT_DATE_YYYYMMDD2: - case PHPExcel_Style_NumberFormat::FORMAT_DATE_DDMMYYYY: - case PHPExcel_Style_NumberFormat::FORMAT_DATE_DMYSLASH: - case PHPExcel_Style_NumberFormat::FORMAT_DATE_DMYMINUS: - case PHPExcel_Style_NumberFormat::FORMAT_DATE_DMMINUS: - case PHPExcel_Style_NumberFormat::FORMAT_DATE_MYMINUS: - case PHPExcel_Style_NumberFormat::FORMAT_DATE_DATETIME: - case PHPExcel_Style_NumberFormat::FORMAT_DATE_TIME1: - case PHPExcel_Style_NumberFormat::FORMAT_DATE_TIME2: - case PHPExcel_Style_NumberFormat::FORMAT_DATE_TIME3: - case PHPExcel_Style_NumberFormat::FORMAT_DATE_TIME4: - case PHPExcel_Style_NumberFormat::FORMAT_DATE_TIME5: - case PHPExcel_Style_NumberFormat::FORMAT_DATE_TIME6: - case PHPExcel_Style_NumberFormat::FORMAT_DATE_TIME7: - case PHPExcel_Style_NumberFormat::FORMAT_DATE_TIME8: - case PHPExcel_Style_NumberFormat::FORMAT_DATE_YYYYMMDDSLASH: - case PHPExcel_Style_NumberFormat::FORMAT_DATE_XLSX14: - case PHPExcel_Style_NumberFormat::FORMAT_DATE_XLSX15: - case PHPExcel_Style_NumberFormat::FORMAT_DATE_XLSX16: - case PHPExcel_Style_NumberFormat::FORMAT_DATE_XLSX17: - case PHPExcel_Style_NumberFormat::FORMAT_DATE_XLSX22: - return true; - } - - // Typically number, currency or accounting (or occasionally fraction) formats - if ((substr($pFormatCode, 0, 1) == '_') || (substr($pFormatCode, 0, 2) == '0 ')) { - return false; - } - // Try checking for any of the date formatting characters that don't appear within square braces - if (preg_match('/(^|\])[^\[]*['.self::$possibleDateFormatCharacters.']/i', $pFormatCode)) { - // We might also have a format mask containing quoted strings... - // we don't want to test for any of our characters within the quoted blocks - if (strpos($pFormatCode, '"') !== false) { - $segMatcher = false; - foreach (explode('"', $pFormatCode) as $subVal) { - // Only test in alternate array entries (the non-quoted blocks) - if (($segMatcher = !$segMatcher) && - (preg_match('/(^|\])[^\[]*['.self::$possibleDateFormatCharacters.']/i', $subVal))) { - return true; - } - } - return false; - } - return true; - } - - // No date... - return false; - } - - - /** - * Convert a date/time string to Excel time - * - * @param string $dateValue Examples: '2009-12-31', '2009-12-31 15:59', '2009-12-31 15:59:10' - * @return float|FALSE Excel date/time serial value - */ - public static function stringToExcel($dateValue = '') - { - if (strlen($dateValue) < 2) { - return false; - } - if (!preg_match('/^(\d{1,4}[ \.\/\-][A-Z]{3,9}([ \.\/\-]\d{1,4})?|[A-Z]{3,9}[ \.\/\-]\d{1,4}([ \.\/\-]\d{1,4})?|\d{1,4}[ \.\/\-]\d{1,4}([ \.\/\-]\d{1,4})?)( \d{1,2}:\d{1,2}(:\d{1,2})?)?$/iu', $dateValue)) { - return false; - } - - $dateValueNew = PHPExcel_Calculation_DateTime::DATEVALUE($dateValue); - - if ($dateValueNew === PHPExcel_Calculation_Functions::VALUE()) { - return false; - } - - if (strpos($dateValue, ':') !== false) { - $timeValue = PHPExcel_Calculation_DateTime::TIMEVALUE($dateValue); - if ($timeValue === PHPExcel_Calculation_Functions::VALUE()) { - return false; - } - $dateValueNew += $timeValue; - } - return $dateValueNew; - } - - /** - * Converts a month name (either a long or a short name) to a month number - * - * @param string $month Month name or abbreviation - * @return integer|string Month number (1 - 12), or the original string argument if it isn't a valid month name - */ - public static function monthStringToNumber($month) - { - $monthIndex = 1; - foreach (self::$monthNames as $shortMonthName => $longMonthName) { - if (($month === $longMonthName) || ($month === $shortMonthName)) { - return $monthIndex; - } - ++$monthIndex; - } - return $month; - } - - /** - * Strips an ordinal froma numeric value - * - * @param string $day Day number with an ordinal - * @return integer|string The integer value with any ordinal stripped, or the original string argument if it isn't a valid numeric - */ - public static function dayStringToNumber($day) - { - $strippedDayValue = (str_replace(self::$numberSuffixes, '', $day)); - if (is_numeric($strippedDayValue)) { - return (integer) $strippedDayValue; - } - return $day; - } -} diff --git a/Utils/PHPExcel/Shared/Drawing.php b/Utils/PHPExcel/Shared/Drawing.php deleted file mode 100644 index 3e027b4..0000000 --- a/Utils/PHPExcel/Shared/Drawing.php +++ /dev/null @@ -1,270 +0,0 @@ -<?php -/** - * PHPExcel - * - * Copyright (c) 2006 - 2015 PHPExcel - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - * - * @category PHPExcel - * @package PHPExcel_Shared - * @copyright Copyright (c) 2006 - 2015 PHPExcel (http://www.codeplex.com/PHPExcel) - * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL - * @version ##VERSION##, ##DATE## - */ - - -/** - * PHPExcel_Shared_Drawing - * - * @category PHPExcel - * @package PHPExcel_Shared - * @copyright Copyright (c) 2006 - 2015 PHPExcel (http://www.codeplex.com/PHPExcel) - */ -class PHPExcel_Shared_Drawing -{ - /** - * Convert pixels to EMU - * - * @param int $pValue Value in pixels - * @return int Value in EMU - */ - public static function pixelsToEMU($pValue = 0) - { - return round($pValue * 9525); - } - - /** - * Convert EMU to pixels - * - * @param int $pValue Value in EMU - * @return int Value in pixels - */ - public static function EMUToPixels($pValue = 0) - { - if ($pValue != 0) { - return round($pValue / 9525); - } else { - return 0; - } - } - - /** - * Convert pixels to column width. Exact algorithm not known. - * By inspection of a real Excel file using Calibri 11, one finds 1000px ~ 142.85546875 - * This gives a conversion factor of 7. Also, we assume that pixels and font size are proportional. - * - * @param int $pValue Value in pixels - * @param PHPExcel_Style_Font $pDefaultFont Default font of the workbook - * @return int Value in cell dimension - */ - public static function pixelsToCellDimension($pValue = 0, PHPExcel_Style_Font $pDefaultFont) - { - // Font name and size - $name = $pDefaultFont->getName(); - $size = $pDefaultFont->getSize(); - - if (isset(PHPExcel_Shared_Font::$defaultColumnWidths[$name][$size])) { - // Exact width can be determined - $colWidth = $pValue * PHPExcel_Shared_Font::$defaultColumnWidths[$name][$size]['width'] / PHPExcel_Shared_Font::$defaultColumnWidths[$name][$size]['px']; - } else { - // We don't have data for this particular font and size, use approximation by - // extrapolating from Calibri 11 - $colWidth = $pValue * 11 * PHPExcel_Shared_Font::$defaultColumnWidths['Calibri'][11]['width'] / PHPExcel_Shared_Font::$defaultColumnWidths['Calibri'][11]['px'] / $size; - } - - return $colWidth; - } - - /** - * Convert column width from (intrinsic) Excel units to pixels - * - * @param float $pValue Value in cell dimension - * @param PHPExcel_Style_Font $pDefaultFont Default font of the workbook - * @return int Value in pixels - */ - public static function cellDimensionToPixels($pValue = 0, PHPExcel_Style_Font $pDefaultFont) - { - // Font name and size - $name = $pDefaultFont->getName(); - $size = $pDefaultFont->getSize(); - - if (isset(PHPExcel_Shared_Font::$defaultColumnWidths[$name][$size])) { - // Exact width can be determined - $colWidth = $pValue * PHPExcel_Shared_Font::$defaultColumnWidths[$name][$size]['px'] / PHPExcel_Shared_Font::$defaultColumnWidths[$name][$size]['width']; - } else { - // We don't have data for this particular font and size, use approximation by - // extrapolating from Calibri 11 - $colWidth = $pValue * $size * PHPExcel_Shared_Font::$defaultColumnWidths['Calibri'][11]['px'] / PHPExcel_Shared_Font::$defaultColumnWidths['Calibri'][11]['width'] / 11; - } - - // Round pixels to closest integer - $colWidth = (int) round($colWidth); - - return $colWidth; - } - - /** - * Convert pixels to points - * - * @param int $pValue Value in pixels - * @return int Value in points - */ - public static function pixelsToPoints($pValue = 0) - { - return $pValue * 0.67777777; - } - - /** - * Convert points to pixels - * - * @param int $pValue Value in points - * @return int Value in pixels - */ - public static function pointsToPixels($pValue = 0) - { - if ($pValue != 0) { - return (int) ceil($pValue * 1.333333333); - } else { - return 0; - } - } - - /** - * Convert degrees to angle - * - * @param int $pValue Degrees - * @return int Angle - */ - public static function degreesToAngle($pValue = 0) - { - return (int)round($pValue * 60000); - } - - /** - * Convert angle to degrees - * - * @param int $pValue Angle - * @return int Degrees - */ - public static function angleToDegrees($pValue = 0) - { - if ($pValue != 0) { - return round($pValue / 60000); - } else { - return 0; - } - } - - /** - * Create a new image from file. By alexander at alexauto dot nl - * - * @link http://www.php.net/manual/en/function.imagecreatefromwbmp.php#86214 - * @param string $filename Path to Windows DIB (BMP) image - * @return resource - */ - public static function imagecreatefrombmp($p_sFile) - { - // Load the image into a string - $file = fopen($p_sFile, "rb"); - $read = fread($file, 10); - while (!feof($file) && ($read<>"")) { - $read .= fread($file, 1024); - } - - $temp = unpack("H*", $read); - $hex = $temp[1]; - $header = substr($hex, 0, 108); - - // Process the header - // Structure: http://www.fastgraph.com/help/bmp_header_format.html - if (substr($header, 0, 4)=="424d") { - // Cut it in parts of 2 bytes - $header_parts = str_split($header, 2); - - // Get the width 4 bytes - $width = hexdec($header_parts[19].$header_parts[18]); - - // Get the height 4 bytes - $height = hexdec($header_parts[23].$header_parts[22]); - - // Unset the header params - unset($header_parts); - } - - // Define starting X and Y - $x = 0; - $y = 1; - - // Create newimage - $image = imagecreatetruecolor($width, $height); - - // Grab the body from the image - $body = substr($hex, 108); - - // Calculate if padding at the end-line is needed - // Divided by two to keep overview. - // 1 byte = 2 HEX-chars - $body_size = (strlen($body)/2); - $header_size = ($width*$height); - - // Use end-line padding? Only when needed - $usePadding = ($body_size>($header_size*3)+4); - - // Using a for-loop with index-calculation instaid of str_split to avoid large memory consumption - // Calculate the next DWORD-position in the body - for ($i = 0; $i < $body_size; $i += 3) { - // Calculate line-ending and padding - if ($x >= $width) { - // If padding needed, ignore image-padding - // Shift i to the ending of the current 32-bit-block - if ($usePadding) { - $i += $width%4; - } - - // Reset horizontal position - $x = 0; - - // Raise the height-position (bottom-up) - $y++; - - // Reached the image-height? Break the for-loop - if ($y > $height) { - break; - } - } - - // Calculation of the RGB-pixel (defined as BGR in image-data) - // Define $i_pos as absolute position in the body - $i_pos = $i * 2; - $r = hexdec($body[$i_pos+4].$body[$i_pos+5]); - $g = hexdec($body[$i_pos+2].$body[$i_pos+3]); - $b = hexdec($body[$i_pos].$body[$i_pos+1]); - - // Calculate and draw the pixel - $color = imagecolorallocate($image, $r, $g, $b); - imagesetpixel($image, $x, $height-$y, $color); - - // Raise the horizontal position - $x++; - } - - // Unset the body / free the memory - unset($body); - - // Return image-object - return $image; - } -} diff --git a/Utils/PHPExcel/Shared/Escher.php b/Utils/PHPExcel/Shared/Escher.php deleted file mode 100644 index 1aedb9d..0000000 --- a/Utils/PHPExcel/Shared/Escher.php +++ /dev/null @@ -1,83 +0,0 @@ -<?php - -/** - * PHPExcel_Shared_Escher - * - * Copyright (c) 2006 - 2015 PHPExcel - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - * - * @category PHPExcel - * @package PHPExcel_Shared_Escher - * @copyright Copyright (c) 2006 - 2015 PHPExcel (http://www.codeplex.com/PHPExcel) - * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL - * @version ##VERSION##, ##DATE## - */ -class PHPExcel_Shared_Escher -{ - /** - * Drawing Group Container - * - * @var PHPExcel_Shared_Escher_DggContainer - */ - private $dggContainer; - - /** - * Drawing Container - * - * @var PHPExcel_Shared_Escher_DgContainer - */ - private $dgContainer; - - /** - * Get Drawing Group Container - * - * @return PHPExcel_Shared_Escher_DgContainer - */ - public function getDggContainer() - { - return $this->dggContainer; - } - - /** - * Set Drawing Group Container - * - * @param PHPExcel_Shared_Escher_DggContainer $dggContainer - */ - public function setDggContainer($dggContainer) - { - return $this->dggContainer = $dggContainer; - } - - /** - * Get Drawing Container - * - * @return PHPExcel_Shared_Escher_DgContainer - */ - public function getDgContainer() - { - return $this->dgContainer; - } - - /** - * Set Drawing Container - * - * @param PHPExcel_Shared_Escher_DgContainer $dgContainer - */ - public function setDgContainer($dgContainer) - { - return $this->dgContainer = $dgContainer; - } -} diff --git a/Utils/PHPExcel/Shared/Escher/DgContainer.php b/Utils/PHPExcel/Shared/Escher/DgContainer.php deleted file mode 100644 index 739cd90..0000000 --- a/Utils/PHPExcel/Shared/Escher/DgContainer.php +++ /dev/null @@ -1,75 +0,0 @@ -<?php - -/** - * PHPExcel_Shared_Escher_DgContainer - * - * Copyright (c) 2006 - 2015 PHPExcel - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - * - * @category PHPExcel - * @package PHPExcel_Shared_Escher - * @copyright Copyright (c) 2006 - 2015 PHPExcel (http://www.codeplex.com/PHPExcel) - * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL - * @version ##VERSION##, ##DATE## - */ -class PHPExcel_Shared_Escher_DgContainer -{ - /** - * Drawing index, 1-based. - * - * @var int - */ - private $dgId; - - /** - * Last shape index in this drawing - * - * @var int - */ - private $lastSpId; - - private $spgrContainer = null; - - public function getDgId() - { - return $this->dgId; - } - - public function setDgId($value) - { - $this->dgId = $value; - } - - public function getLastSpId() - { - return $this->lastSpId; - } - - public function setLastSpId($value) - { - $this->lastSpId = $value; - } - - public function getSpgrContainer() - { - return $this->spgrContainer; - } - - public function setSpgrContainer($spgrContainer) - { - return $this->spgrContainer = $spgrContainer; - } -} diff --git a/Utils/PHPExcel/Shared/Escher/DgContainer/SpgrContainer.php b/Utils/PHPExcel/Shared/Escher/DgContainer/SpgrContainer.php deleted file mode 100644 index 6ccae60..0000000 --- a/Utils/PHPExcel/Shared/Escher/DgContainer/SpgrContainer.php +++ /dev/null @@ -1,102 +0,0 @@ -<?php - -/** - * PHPExcel_Shared_Escher_DgContainer_SpgrContainer - * - * Copyright (c) 2006 - 2015 PHPExcel - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - * - * @category PHPExcel - * @package PHPExcel_Shared_Escher - * @copyright Copyright (c) 2006 - 2015 PHPExcel (http://www.codeplex.com/PHPExcel) - * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL - * @version ##VERSION##, ##DATE## - */ -class PHPExcel_Shared_Escher_DgContainer_SpgrContainer -{ - /** - * Parent Shape Group Container - * - * @var PHPExcel_Shared_Escher_DgContainer_SpgrContainer - */ - private $parent; - - /** - * Shape Container collection - * - * @var array - */ - private $children = array(); - - /** - * Get the parent Shape Group Container if any - * - * @return PHPExcel_Shared_Escher_DgContainer_SpgrContainer|null - */ - public function getParent() - { - return $this->parent; - } - - /** - * Set parent Shape Group Container - * - * @param PHPExcel_Shared_Escher_DgContainer_SpgrContainer $parent - */ - public function setParent($parent) - { - $this->parent = $parent; - } - - /** - * Add a child. This will be either spgrContainer or spContainer - * - * @param mixed $child - */ - public function addChild($child) - { - $this->children[] = $child; - $child->setParent($this); - } - - /** - * Get collection of Shape Containers - */ - public function getChildren() - { - return $this->children; - } - - /** - * Recursively get all spContainers within this spgrContainer - * - * @return PHPExcel_Shared_Escher_DgContainer_SpgrContainer_SpContainer[] - */ - public function getAllSpContainers() - { - $allSpContainers = array(); - - foreach ($this->children as $child) { - if ($child instanceof PHPExcel_Shared_Escher_DgContainer_SpgrContainer) { - $allSpContainers = array_merge($allSpContainers, $child->getAllSpContainers()); - } else { - $allSpContainers[] = $child; - } - } - - return $allSpContainers; - } -} diff --git a/Utils/PHPExcel/Shared/Escher/DgContainer/SpgrContainer/SpContainer.php b/Utils/PHPExcel/Shared/Escher/DgContainer/SpgrContainer/SpContainer.php deleted file mode 100644 index a1f1a46..0000000 --- a/Utils/PHPExcel/Shared/Escher/DgContainer/SpgrContainer/SpContainer.php +++ /dev/null @@ -1,388 +0,0 @@ -<?php - -/** - * PHPExcel_Shared_Escher_DgContainer_SpgrContainer_SpContainer - * - * Copyright (c) 2006 - 2015 PHPExcel - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - * - * @category PHPExcel - * @package PHPExcel_Shared_Escher - * @copyright Copyright (c) 2006 - 2015 PHPExcel (http://www.codeplex.com/PHPExcel) - * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL - * @version ##VERSION##, ##DATE## - */ -class PHPExcel_Shared_Escher_DgContainer_SpgrContainer_SpContainer -{ - /** - * Parent Shape Group Container - * - * @var PHPExcel_Shared_Escher_DgContainer_SpgrContainer - */ - private $parent; - - /** - * Is this a group shape? - * - * @var boolean - */ - private $spgr = false; - - /** - * Shape type - * - * @var int - */ - private $spType; - - /** - * Shape flag - * - * @var int - */ - private $spFlag; - - /** - * Shape index (usually group shape has index 0, and the rest: 1,2,3...) - * - * @var boolean - */ - private $spId; - - /** - * Array of options - * - * @var array - */ - private $OPT; - - /** - * Cell coordinates of upper-left corner of shape, e.g. 'A1' - * - * @var string - */ - private $startCoordinates; - - /** - * Horizontal offset of upper-left corner of shape measured in 1/1024 of column width - * - * @var int - */ - private $startOffsetX; - - /** - * Vertical offset of upper-left corner of shape measured in 1/256 of row height - * - * @var int - */ - private $startOffsetY; - - /** - * Cell coordinates of bottom-right corner of shape, e.g. 'B2' - * - * @var string - */ - private $endCoordinates; - - /** - * Horizontal offset of bottom-right corner of shape measured in 1/1024 of column width - * - * @var int - */ - private $endOffsetX; - - /** - * Vertical offset of bottom-right corner of shape measured in 1/256 of row height - * - * @var int - */ - private $endOffsetY; - - /** - * Set parent Shape Group Container - * - * @param PHPExcel_Shared_Escher_DgContainer_SpgrContainer $parent - */ - public function setParent($parent) - { - $this->parent = $parent; - } - - /** - * Get the parent Shape Group Container - * - * @return PHPExcel_Shared_Escher_DgContainer_SpgrContainer - */ - public function getParent() - { - return $this->parent; - } - - /** - * Set whether this is a group shape - * - * @param boolean $value - */ - public function setSpgr($value = false) - { - $this->spgr = $value; - } - - /** - * Get whether this is a group shape - * - * @return boolean - */ - public function getSpgr() - { - return $this->spgr; - } - - /** - * Set the shape type - * - * @param int $value - */ - public function setSpType($value) - { - $this->spType = $value; - } - - /** - * Get the shape type - * - * @return int - */ - public function getSpType() - { - return $this->spType; - } - - /** - * Set the shape flag - * - * @param int $value - */ - public function setSpFlag($value) - { - $this->spFlag = $value; - } - - /** - * Get the shape flag - * - * @return int - */ - public function getSpFlag() - { - return $this->spFlag; - } - - /** - * Set the shape index - * - * @param int $value - */ - public function setSpId($value) - { - $this->spId = $value; - } - - /** - * Get the shape index - * - * @return int - */ - public function getSpId() - { - return $this->spId; - } - - /** - * Set an option for the Shape Group Container - * - * @param int $property The number specifies the option - * @param mixed $value - */ - public function setOPT($property, $value) - { - $this->OPT[$property] = $value; - } - - /** - * Get an option for the Shape Group Container - * - * @param int $property The number specifies the option - * @return mixed - */ - public function getOPT($property) - { - if (isset($this->OPT[$property])) { - return $this->OPT[$property]; - } - return null; - } - - /** - * Get the collection of options - * - * @return array - */ - public function getOPTCollection() - { - return $this->OPT; - } - - /** - * Set cell coordinates of upper-left corner of shape - * - * @param string $value - */ - public function setStartCoordinates($value = 'A1') - { - $this->startCoordinates = $value; - } - - /** - * Get cell coordinates of upper-left corner of shape - * - * @return string - */ - public function getStartCoordinates() - { - return $this->startCoordinates; - } - - /** - * Set offset in x-direction of upper-left corner of shape measured in 1/1024 of column width - * - * @param int $startOffsetX - */ - public function setStartOffsetX($startOffsetX = 0) - { - $this->startOffsetX = $startOffsetX; - } - - /** - * Get offset in x-direction of upper-left corner of shape measured in 1/1024 of column width - * - * @return int - */ - public function getStartOffsetX() - { - return $this->startOffsetX; - } - - /** - * Set offset in y-direction of upper-left corner of shape measured in 1/256 of row height - * - * @param int $startOffsetY - */ - public function setStartOffsetY($startOffsetY = 0) - { - $this->startOffsetY = $startOffsetY; - } - - /** - * Get offset in y-direction of upper-left corner of shape measured in 1/256 of row height - * - * @return int - */ - public function getStartOffsetY() - { - return $this->startOffsetY; - } - - /** - * Set cell coordinates of bottom-right corner of shape - * - * @param string $value - */ - public function setEndCoordinates($value = 'A1') - { - $this->endCoordinates = $value; - } - - /** - * Get cell coordinates of bottom-right corner of shape - * - * @return string - */ - public function getEndCoordinates() - { - return $this->endCoordinates; - } - - /** - * Set offset in x-direction of bottom-right corner of shape measured in 1/1024 of column width - * - * @param int $startOffsetX - */ - public function setEndOffsetX($endOffsetX = 0) - { - $this->endOffsetX = $endOffsetX; - } - - /** - * Get offset in x-direction of bottom-right corner of shape measured in 1/1024 of column width - * - * @return int - */ - public function getEndOffsetX() - { - return $this->endOffsetX; - } - - /** - * Set offset in y-direction of bottom-right corner of shape measured in 1/256 of row height - * - * @param int $endOffsetY - */ - public function setEndOffsetY($endOffsetY = 0) - { - $this->endOffsetY = $endOffsetY; - } - - /** - * Get offset in y-direction of bottom-right corner of shape measured in 1/256 of row height - * - * @return int - */ - public function getEndOffsetY() - { - return $this->endOffsetY; - } - - /** - * Get the nesting level of this spContainer. This is the number of spgrContainers between this spContainer and - * the dgContainer. A value of 1 = immediately within first spgrContainer - * Higher nesting level occurs if and only if spContainer is part of a shape group - * - * @return int Nesting level - */ - public function getNestingLevel() - { - $nestingLevel = 0; - - $parent = $this->getParent(); - while ($parent instanceof PHPExcel_Shared_Escher_DgContainer_SpgrContainer) { - ++$nestingLevel; - $parent = $parent->getParent(); - } - - return $nestingLevel; - } -} diff --git a/Utils/PHPExcel/Shared/Escher/DggContainer.php b/Utils/PHPExcel/Shared/Escher/DggContainer.php deleted file mode 100644 index 32ff421..0000000 --- a/Utils/PHPExcel/Shared/Escher/DggContainer.php +++ /dev/null @@ -1,196 +0,0 @@ -<?php - -/** - * PHPExcel_Shared_Escher_DggContainer - * - * Copyright (c) 2006 - 2015 PHPExcel - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - * - * @category PHPExcel - * @package PHPExcel_Shared_Escher - * @copyright Copyright (c) 2006 - 2015 PHPExcel (http://www.codeplex.com/PHPExcel) - * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL - * @version ##VERSION##, ##DATE## - */ -class PHPExcel_Shared_Escher_DggContainer -{ - /** - * Maximum shape index of all shapes in all drawings increased by one - * - * @var int - */ - private $spIdMax; - - /** - * Total number of drawings saved - * - * @var int - */ - private $cDgSaved; - - /** - * Total number of shapes saved (including group shapes) - * - * @var int - */ - private $cSpSaved; - - /** - * BLIP Store Container - * - * @var PHPExcel_Shared_Escher_DggContainer_BstoreContainer - */ - private $bstoreContainer; - - /** - * Array of options for the drawing group - * - * @var array - */ - private $OPT = array(); - - /** - * Array of identifier clusters containg information about the maximum shape identifiers - * - * @var array - */ - private $IDCLs = array(); - - /** - * Get maximum shape index of all shapes in all drawings (plus one) - * - * @return int - */ - public function getSpIdMax() - { - return $this->spIdMax; - } - - /** - * Set maximum shape index of all shapes in all drawings (plus one) - * - * @param int - */ - public function setSpIdMax($value) - { - $this->spIdMax = $value; - } - - /** - * Get total number of drawings saved - * - * @return int - */ - public function getCDgSaved() - { - return $this->cDgSaved; - } - - /** - * Set total number of drawings saved - * - * @param int - */ - public function setCDgSaved($value) - { - $this->cDgSaved = $value; - } - - /** - * Get total number of shapes saved (including group shapes) - * - * @return int - */ - public function getCSpSaved() - { - return $this->cSpSaved; - } - - /** - * Set total number of shapes saved (including group shapes) - * - * @param int - */ - public function setCSpSaved($value) - { - $this->cSpSaved = $value; - } - - /** - * Get BLIP Store Container - * - * @return PHPExcel_Shared_Escher_DggContainer_BstoreContainer - */ - public function getBstoreContainer() - { - return $this->bstoreContainer; - } - - /** - * Set BLIP Store Container - * - * @param PHPExcel_Shared_Escher_DggContainer_BstoreContainer $bstoreContainer - */ - public function setBstoreContainer($bstoreContainer) - { - $this->bstoreContainer = $bstoreContainer; - } - - /** - * Get an option for the drawing group - * - * @param int $property The number specifies the option - * @return mixed - */ - public function getOPT($property) - { - if (isset($this->OPT[$property])) { - return $this->OPT[$property]; - } - return null; - } - - /** - * Set an option for the drawing group - * - * @param int $property The number specifies the option - * @param mixed $value - */ - public function setOPT($property, $value) - { - $this->OPT[$property] = $value; - } - - /** - * Get identifier clusters - * - * @return array - */ - public function getIDCLs() - { - return $this->IDCLs; - } - - /** - * Set identifier clusters. array(<drawingId> => <max shape id>, ...) - * - * @param array $pValue - */ - public function setIDCLs($pValue) - { - $this->IDCLs = $pValue; - } -} diff --git a/Utils/PHPExcel/Shared/Escher/DggContainer/BstoreContainer.php b/Utils/PHPExcel/Shared/Escher/DggContainer/BstoreContainer.php deleted file mode 100644 index 1af2432..0000000 --- a/Utils/PHPExcel/Shared/Escher/DggContainer/BstoreContainer.php +++ /dev/null @@ -1,57 +0,0 @@ -<?php - -/** - * PHPExcel_Shared_Escher_DggContainer_BstoreContainer - * - * Copyright (c) 2006 - 2015 PHPExcel - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - * - * @category PHPExcel - * @package PHPExcel_Shared_Escher - * @copyright Copyright (c) 2006 - 2015 PHPExcel (http://www.codeplex.com/PHPExcel) - * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL - * @version ##VERSION##, ##DATE## - */ -class PHPExcel_Shared_Escher_DggContainer_BstoreContainer -{ - /** - * BLIP Store Entries. Each of them holds one BLIP (Big Large Image or Picture) - * - * @var array - */ - private $BSECollection = array(); - - /** - * Add a BLIP Store Entry - * - * @param PHPExcel_Shared_Escher_DggContainer_BstoreContainer_BSE $BSE - */ - public function addBSE($BSE) - { - $this->BSECollection[] = $BSE; - $BSE->setParent($this); - } - - /** - * Get the collection of BLIP Store Entries - * - * @return PHPExcel_Shared_Escher_DggContainer_BstoreContainer_BSE[] - */ - public function getBSECollection() - { - return $this->BSECollection; - } -} diff --git a/Utils/PHPExcel/Shared/Escher/DggContainer/BstoreContainer/BSE.php b/Utils/PHPExcel/Shared/Escher/DggContainer/BstoreContainer/BSE.php deleted file mode 100644 index d17e91e..0000000 --- a/Utils/PHPExcel/Shared/Escher/DggContainer/BstoreContainer/BSE.php +++ /dev/null @@ -1,112 +0,0 @@ -<?php - -/** - * PHPExcel_Shared_Escher_DggContainer_BstoreContainer_BSE - * - * Copyright (c) 2006 - 2015 PHPExcel - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - * - * @category PHPExcel - * @package PHPExcel_Shared_Escher - * @copyright Copyright (c) 2006 - 2015 PHPExcel (http://www.codeplex.com/PHPExcel) - * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL - * @version ##VERSION##, ##DATE## - */ -class PHPExcel_Shared_Escher_DggContainer_BstoreContainer_BSE -{ - const BLIPTYPE_ERROR = 0x00; - const BLIPTYPE_UNKNOWN = 0x01; - const BLIPTYPE_EMF = 0x02; - const BLIPTYPE_WMF = 0x03; - const BLIPTYPE_PICT = 0x04; - const BLIPTYPE_JPEG = 0x05; - const BLIPTYPE_PNG = 0x06; - const BLIPTYPE_DIB = 0x07; - const BLIPTYPE_TIFF = 0x11; - const BLIPTYPE_CMYKJPEG = 0x12; - - /** - * The parent BLIP Store Entry Container - * - * @var PHPExcel_Shared_Escher_DggContainer_BstoreContainer - */ - private $parent; - - /** - * The BLIP (Big Large Image or Picture) - * - * @var PHPExcel_Shared_Escher_DggContainer_BstoreContainer_BSE_Blip - */ - private $blip; - - /** - * The BLIP type - * - * @var int - */ - private $blipType; - - /** - * Set parent BLIP Store Entry Container - * - * @param PHPExcel_Shared_Escher_DggContainer_BstoreContainer $parent - */ - public function setParent($parent) - { - $this->parent = $parent; - } - - /** - * Get the BLIP - * - * @return PHPExcel_Shared_Escher_DggContainer_BstoreContainer_BSE_Blip - */ - public function getBlip() - { - return $this->blip; - } - - /** - * Set the BLIP - * - * @param PHPExcel_Shared_Escher_DggContainer_BstoreContainer_BSE_Blip $blip - */ - public function setBlip($blip) - { - $this->blip = $blip; - $blip->setParent($this); - } - - /** - * Get the BLIP type - * - * @return int - */ - public function getBlipType() - { - return $this->blipType; - } - - /** - * Set the BLIP type - * - * @param int - */ - public function setBlipType($blipType) - { - $this->blipType = $blipType; - } -} diff --git a/Utils/PHPExcel/Shared/Escher/DggContainer/BstoreContainer/BSE/Blip.php b/Utils/PHPExcel/Shared/Escher/DggContainer/BstoreContainer/BSE/Blip.php deleted file mode 100644 index 3bcbbbe..0000000 --- a/Utils/PHPExcel/Shared/Escher/DggContainer/BstoreContainer/BSE/Blip.php +++ /dev/null @@ -1,83 +0,0 @@ -<?php - -/** - * PHPExcel_Shared_Escher_DggContainer_BstoreContainer_BSE_Blip - * - * Copyright (c) 2006 - 2015 PHPExcel - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - * - * @category PHPExcel - * @package PHPExcel_Shared_Escher - * @copyright Copyright (c) 2006 - 2015 PHPExcel (http://www.codeplex.com/PHPExcel) - * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL - * @version ##VERSION##, ##DATE## - */ -class PHPExcel_Shared_Escher_DggContainer_BstoreContainer_BSE_Blip -{ - /** - * The parent BSE - * - * @var PHPExcel_Shared_Escher_DggContainer_BstoreContainer_BSE - */ - private $parent; - - /** - * Raw image data - * - * @var string - */ - private $data; - - /** - * Get the raw image data - * - * @return string - */ - public function getData() - { - return $this->data; - } - - /** - * Set the raw image data - * - * @param string - */ - public function setData($data) - { - $this->data = $data; - } - - /** - * Set parent BSE - * - * @param PHPExcel_Shared_Escher_DggContainer_BstoreContainer_BSE $parent - */ - public function setParent($parent) - { - $this->parent = $parent; - } - - /** - * Get parent BSE - * - * @return PHPExcel_Shared_Escher_DggContainer_BstoreContainer_BSE $parent - */ - public function getParent() - { - return $this->parent; - } -} diff --git a/Utils/PHPExcel/Shared/Excel5.php b/Utils/PHPExcel/Shared/Excel5.php deleted file mode 100644 index c3ff209..0000000 --- a/Utils/PHPExcel/Shared/Excel5.php +++ /dev/null @@ -1,298 +0,0 @@ -<?php - -/** - * PHPExcel_Shared_Excel5 - * - * Copyright (c) 2006 - 2015 PHPExcel - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - * - * @category PHPExcel - * @package PHPExcel_Shared - * @copyright Copyright (c) 2006 - 2015 PHPExcel (http://www.codeplex.com/PHPExcel) - * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL - * @version ##VERSION##, ##DATE## - */ -class PHPExcel_Shared_Excel5 -{ - /** - * Get the width of a column in pixels. We use the relationship y = ceil(7x) where - * x is the width in intrinsic Excel units (measuring width in number of normal characters) - * This holds for Arial 10 - * - * @param PHPExcel_Worksheet $sheet The sheet - * @param string $col The column - * @return integer The width in pixels - */ - public static function sizeCol($sheet, $col = 'A') - { - // default font of the workbook - $font = $sheet->getParent()->getDefaultStyle()->getFont(); - - $columnDimensions = $sheet->getColumnDimensions(); - - // first find the true column width in pixels (uncollapsed and unhidden) - if (isset($columnDimensions[$col]) and $columnDimensions[$col]->getWidth() != -1) { - // then we have column dimension with explicit width - $columnDimension = $columnDimensions[$col]; - $width = $columnDimension->getWidth(); - $pixelWidth = PHPExcel_Shared_Drawing::cellDimensionToPixels($width, $font); - } elseif ($sheet->getDefaultColumnDimension()->getWidth() != -1) { - // then we have default column dimension with explicit width - $defaultColumnDimension = $sheet->getDefaultColumnDimension(); - $width = $defaultColumnDimension->getWidth(); - $pixelWidth = PHPExcel_Shared_Drawing::cellDimensionToPixels($width, $font); - } else { - // we don't even have any default column dimension. Width depends on default font - $pixelWidth = PHPExcel_Shared_Font::getDefaultColumnWidthByFont($font, true); - } - - // now find the effective column width in pixels - if (isset($columnDimensions[$col]) and !$columnDimensions[$col]->getVisible()) { - $effectivePixelWidth = 0; - } else { - $effectivePixelWidth = $pixelWidth; - } - - return $effectivePixelWidth; - } - - /** - * Convert the height of a cell from user's units to pixels. By interpolation - * the relationship is: y = 4/3x. If the height hasn't been set by the user we - * use the default value. If the row is hidden we use a value of zero. - * - * @param PHPExcel_Worksheet $sheet The sheet - * @param integer $row The row index (1-based) - * @return integer The width in pixels - */ - public static function sizeRow($sheet, $row = 1) - { - // default font of the workbook - $font = $sheet->getParent()->getDefaultStyle()->getFont(); - - $rowDimensions = $sheet->getRowDimensions(); - - // first find the true row height in pixels (uncollapsed and unhidden) - if (isset($rowDimensions[$row]) and $rowDimensions[$row]->getRowHeight() != -1) { - // then we have a row dimension - $rowDimension = $rowDimensions[$row]; - $rowHeight = $rowDimension->getRowHeight(); - $pixelRowHeight = (int) ceil(4 * $rowHeight / 3); // here we assume Arial 10 - } elseif ($sheet->getDefaultRowDimension()->getRowHeight() != -1) { - // then we have a default row dimension with explicit height - $defaultRowDimension = $sheet->getDefaultRowDimension(); - $rowHeight = $defaultRowDimension->getRowHeight(); - $pixelRowHeight = PHPExcel_Shared_Drawing::pointsToPixels($rowHeight); - } else { - // we don't even have any default row dimension. Height depends on default font - $pointRowHeight = PHPExcel_Shared_Font::getDefaultRowHeightByFont($font); - $pixelRowHeight = PHPExcel_Shared_Font::fontSizeToPixels($pointRowHeight); - } - - // now find the effective row height in pixels - if (isset($rowDimensions[$row]) and !$rowDimensions[$row]->getVisible()) { - $effectivePixelRowHeight = 0; - } else { - $effectivePixelRowHeight = $pixelRowHeight; - } - - return $effectivePixelRowHeight; - } - - /** - * Get the horizontal distance in pixels between two anchors - * The distanceX is found as sum of all the spanning columns widths minus correction for the two offsets - * - * @param PHPExcel_Worksheet $sheet - * @param string $startColumn - * @param integer $startOffsetX Offset within start cell measured in 1/1024 of the cell width - * @param string $endColumn - * @param integer $endOffsetX Offset within end cell measured in 1/1024 of the cell width - * @return integer Horizontal measured in pixels - */ - public static function getDistanceX(PHPExcel_Worksheet $sheet, $startColumn = 'A', $startOffsetX = 0, $endColumn = 'A', $endOffsetX = 0) - { - $distanceX = 0; - - // add the widths of the spanning columns - $startColumnIndex = PHPExcel_Cell::columnIndexFromString($startColumn) - 1; // 1-based - $endColumnIndex = PHPExcel_Cell::columnIndexFromString($endColumn) - 1; // 1-based - for ($i = $startColumnIndex; $i <= $endColumnIndex; ++$i) { - $distanceX += self::sizeCol($sheet, PHPExcel_Cell::stringFromColumnIndex($i)); - } - - // correct for offsetX in startcell - $distanceX -= (int) floor(self::sizeCol($sheet, $startColumn) * $startOffsetX / 1024); - - // correct for offsetX in endcell - $distanceX -= (int) floor(self::sizeCol($sheet, $endColumn) * (1 - $endOffsetX / 1024)); - - return $distanceX; - } - - /** - * Get the vertical distance in pixels between two anchors - * The distanceY is found as sum of all the spanning rows minus two offsets - * - * @param PHPExcel_Worksheet $sheet - * @param integer $startRow (1-based) - * @param integer $startOffsetY Offset within start cell measured in 1/256 of the cell height - * @param integer $endRow (1-based) - * @param integer $endOffsetY Offset within end cell measured in 1/256 of the cell height - * @return integer Vertical distance measured in pixels - */ - public static function getDistanceY(PHPExcel_Worksheet $sheet, $startRow = 1, $startOffsetY = 0, $endRow = 1, $endOffsetY = 0) - { - $distanceY = 0; - - // add the widths of the spanning rows - for ($row = $startRow; $row <= $endRow; ++$row) { - $distanceY += self::sizeRow($sheet, $row); - } - - // correct for offsetX in startcell - $distanceY -= (int) floor(self::sizeRow($sheet, $startRow) * $startOffsetY / 256); - - // correct for offsetX in endcell - $distanceY -= (int) floor(self::sizeRow($sheet, $endRow) * (1 - $endOffsetY / 256)); - - return $distanceY; - } - - /** - * Convert 1-cell anchor coordinates to 2-cell anchor coordinates - * This function is ported from PEAR Spreadsheet_Writer_Excel with small modifications - * - * Calculate the vertices that define the position of the image as required by - * the OBJ record. - * - * +------------+------------+ - * | A | B | - * +-----+------------+------------+ - * | |(x1,y1) | | - * | 1 |(A1)._______|______ | - * | | | | | - * | | | | | - * +-----+----| BITMAP |-----+ - * | | | | | - * | 2 | |______________. | - * | | | (B2)| - * | | | (x2,y2)| - * +---- +------------+------------+ - * - * Example of a bitmap that covers some of the area from cell A1 to cell B2. - * - * Based on the width and height of the bitmap we need to calculate 8 vars: - * $col_start, $row_start, $col_end, $row_end, $x1, $y1, $x2, $y2. - * The width and height of the cells are also variable and have to be taken into - * account. - * The values of $col_start and $row_start are passed in from the calling - * function. The values of $col_end and $row_end are calculated by subtracting - * the width and height of the bitmap from the width and height of the - * underlying cells. - * The vertices are expressed as a percentage of the underlying cell width as - * follows (rhs values are in pixels): - * - * x1 = X / W *1024 - * y1 = Y / H *256 - * x2 = (X-1) / W *1024 - * y2 = (Y-1) / H *256 - * - * Where: X is distance from the left side of the underlying cell - * Y is distance from the top of the underlying cell - * W is the width of the cell - * H is the height of the cell - * - * @param PHPExcel_Worksheet $sheet - * @param string $coordinates E.g. 'A1' - * @param integer $offsetX Horizontal offset in pixels - * @param integer $offsetY Vertical offset in pixels - * @param integer $width Width in pixels - * @param integer $height Height in pixels - * @return array - */ - public static function oneAnchor2twoAnchor($sheet, $coordinates, $offsetX, $offsetY, $width, $height) - { - list($column, $row) = PHPExcel_Cell::coordinateFromString($coordinates); - $col_start = PHPExcel_Cell::columnIndexFromString($column) - 1; - $row_start = $row - 1; - - $x1 = $offsetX; - $y1 = $offsetY; - - // Initialise end cell to the same as the start cell - $col_end = $col_start; // Col containing lower right corner of object - $row_end = $row_start; // Row containing bottom right corner of object - - // Zero the specified offset if greater than the cell dimensions - if ($x1 >= self::sizeCol($sheet, PHPExcel_Cell::stringFromColumnIndex($col_start))) { - $x1 = 0; - } - if ($y1 >= self::sizeRow($sheet, $row_start + 1)) { - $y1 = 0; - } - - $width = $width + $x1 -1; - $height = $height + $y1 -1; - - // Subtract the underlying cell widths to find the end cell of the image - while ($width >= self::sizeCol($sheet, PHPExcel_Cell::stringFromColumnIndex($col_end))) { - $width -= self::sizeCol($sheet, PHPExcel_Cell::stringFromColumnIndex($col_end)); - ++$col_end; - } - - // Subtract the underlying cell heights to find the end cell of the image - while ($height >= self::sizeRow($sheet, $row_end + 1)) { - $height -= self::sizeRow($sheet, $row_end + 1); - ++$row_end; - } - - // Bitmap isn't allowed to start or finish in a hidden cell, i.e. a cell - // with zero height or width. - if (self::sizeCol($sheet, PHPExcel_Cell::stringFromColumnIndex($col_start)) == 0) { - return; - } - if (self::sizeCol($sheet, PHPExcel_Cell::stringFromColumnIndex($col_end)) == 0) { - return; - } - if (self::sizeRow($sheet, $row_start + 1) == 0) { - return; - } - if (self::sizeRow($sheet, $row_end + 1) == 0) { - return; - } - - // Convert the pixel values to the percentage value expected by Excel - $x1 = $x1 / self::sizeCol($sheet, PHPExcel_Cell::stringFromColumnIndex($col_start)) * 1024; - $y1 = $y1 / self::sizeRow($sheet, $row_start + 1) * 256; - $x2 = ($width + 1) / self::sizeCol($sheet, PHPExcel_Cell::stringFromColumnIndex($col_end)) * 1024; // Distance to right side of object - $y2 = ($height + 1) / self::sizeRow($sheet, $row_end + 1) * 256; // Distance to bottom of object - - $startCoordinates = PHPExcel_Cell::stringFromColumnIndex($col_start) . ($row_start + 1); - $endCoordinates = PHPExcel_Cell::stringFromColumnIndex($col_end) . ($row_end + 1); - - $twoAnchor = array( - 'startCoordinates' => $startCoordinates, - 'startOffsetX' => $x1, - 'startOffsetY' => $y1, - 'endCoordinates' => $endCoordinates, - 'endOffsetX' => $x2, - 'endOffsetY' => $y2, - ); - - return $twoAnchor; - } -} diff --git a/Utils/PHPExcel/Shared/File.php b/Utils/PHPExcel/Shared/File.php deleted file mode 100644 index 5033fed..0000000 --- a/Utils/PHPExcel/Shared/File.php +++ /dev/null @@ -1,177 +0,0 @@ -<?php - -/** - * PHPExcel_Shared_File - * - * Copyright (c) 2006 - 2015 PHPExcel - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - * - * @category PHPExcel - * @package PHPExcel_Shared - * @copyright Copyright (c) 2006 - 2015 PHPExcel (http://www.codeplex.com/PHPExcel) - * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL - * @version ##VERSION##, ##DATE## - */ -class PHPExcel_Shared_File -{ - /* - * Use Temp or File Upload Temp for temporary files - * - * @protected - * @var boolean - */ - protected static $useUploadTempDirectory = false; - - /** - * Get the flag indicating whether the File Upload Temp directory should be used for temporary files - * - * @return boolean Use File Upload Temporary directory (true or false) - */ - public static function getUseUploadTempDirectory() - { - return self::$useUploadTempDirectory; - } - - /** - * Set the flag indicating whether the File Upload Temp directory should be used for temporary files - * - * @param boolean $useUploadTempDir Use File Upload Temporary directory (true or false) - */ - public static function setUseUploadTempDirectory($useUploadTempDir = false) - { - self::$useUploadTempDirectory = (boolean) $useUploadTempDir; - } - - /** - * Verify if a file exists - * - * @param string $pFilename Filename - * @return bool - */ - public static function file_exists($pFilename) - { - // Sick construction, but it seems that - // file_exists returns strange values when - // doing the original file_exists on ZIP archives... - if (strtolower(substr($pFilename, 0, 3)) == 'zip') { - // Open ZIP file and verify if the file exists - $zipFile = substr($pFilename, 6, strpos($pFilename, '#') - 6); - $archiveFile = substr($pFilename, strpos($pFilename, '#') + 1); - - $zip = new ZipArchive(); - if ($zip->open($zipFile) === true) { - $returnValue = ($zip->getFromName($archiveFile) !== false); - $zip->close(); - return $returnValue; - } else { - return false; - } - } else { - // Regular file_exists - return file_exists($pFilename); - } - } - - /** - * Returns canonicalized absolute pathname, also for ZIP archives - * - * @param string $pFilename - * @return string - */ - public static function realpath($pFilename) - { - // Returnvalue - $returnValue = ''; - - // Try using realpath() - if (file_exists($pFilename)) { - $returnValue = realpath($pFilename); - } - - // Found something? - if ($returnValue == '' || ($returnValue === null)) { - $pathArray = explode('/', $pFilename); - while (in_array('..', $pathArray) && $pathArray[0] != '..') { - for ($i = 0; $i < count($pathArray); ++$i) { - if ($pathArray[$i] == '..' && $i > 0) { - unset($pathArray[$i]); - unset($pathArray[$i - 1]); - break; - } - } - } - $returnValue = implode('/', $pathArray); - } - - // Return - return $returnValue; - } - - /** - * Get the systems temporary directory. - * - * @return string - */ - public static function sys_get_temp_dir() - { - if (self::$useUploadTempDirectory) { - // use upload-directory when defined to allow running on environments having very restricted - // open_basedir configs - if (ini_get('upload_tmp_dir') !== false) { - if ($temp = ini_get('upload_tmp_dir')) { - if (file_exists($temp)) { - return realpath($temp); - } - } - } - } - - // sys_get_temp_dir is only available since PHP 5.2.1 - // http://php.net/manual/en/function.sys-get-temp-dir.php#94119 - if (!function_exists('sys_get_temp_dir')) { - if ($temp = getenv('TMP')) { - if ((!empty($temp)) && (file_exists($temp))) { - return realpath($temp); - } - } - if ($temp = getenv('TEMP')) { - if ((!empty($temp)) && (file_exists($temp))) { - return realpath($temp); - } - } - if ($temp = getenv('TMPDIR')) { - if ((!empty($temp)) && (file_exists($temp))) { - return realpath($temp); - } - } - - // trick for creating a file in system's temporary dir - // without knowing the path of the system's temporary dir - $temp = tempnam(__FILE__, ''); - if (file_exists($temp)) { - unlink($temp); - return realpath(dirname($temp)); - } - - return null; - } - - // use ordinary built-in PHP function - // There should be no problem with the 5.2.4 Suhosin realpath() bug, because this line should only - // be called if we're running 5.2.1 or earlier - return realpath(sys_get_temp_dir()); - } -} diff --git a/Utils/PHPExcel/Shared/Font.php b/Utils/PHPExcel/Shared/Font.php deleted file mode 100644 index ab1f8c9..0000000 --- a/Utils/PHPExcel/Shared/Font.php +++ /dev/null @@ -1,722 +0,0 @@ -<?php -/** - * PHPExcel - * - * Copyright (c) 2006 - 2015 PHPExcel - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - * - * @category PHPExcel - * @package PHPExcel_Shared - * @copyright Copyright (c) 2006 - 2015 PHPExcel (http://www.codeplex.com/PHPExcel) - * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL - * @version ##VERSION##, ##DATE## - */ - - -/** - * PHPExcel_Shared_Font - * - * @category PHPExcel - * @package PHPExcel_Shared - * @copyright Copyright (c) 2006 - 2015 PHPExcel (http://www.codeplex.com/PHPExcel) - */ -class PHPExcel_Shared_Font -{ - /* Methods for resolving autosize value */ - const AUTOSIZE_METHOD_APPROX = 'approx'; - const AUTOSIZE_METHOD_EXACT = 'exact'; - /** Character set codes used by BIFF5-8 in Font records */ - const CHARSET_ANSI_LATIN = 0x00; - const CHARSET_SYSTEM_DEFAULT = 0x01; - const CHARSET_SYMBOL = 0x02; - const CHARSET_APPLE_ROMAN = 0x4D; - const CHARSET_ANSI_JAPANESE_SHIFTJIS = 0x80; - const CHARSET_ANSI_KOREAN_HANGUL = 0x81; - const CHARSET_ANSI_KOREAN_JOHAB = 0x82; -const CHARSET_ANSI_CHINESE_SIMIPLIFIED = 0x86; - const CHARSET_ANSI_CHINESE_TRADITIONAL = 0x88; // gb2312 - const CHARSET_ANSI_GREEK = 0xA1; // big5 - const CHARSET_ANSI_TURKISH = 0xA2; - const CHARSET_ANSI_VIETNAMESE = 0xA3; - const CHARSET_ANSI_HEBREW = 0xB1; - const CHARSET_ANSI_ARABIC = 0xB2; - const CHARSET_ANSI_BALTIC = 0xBA; - const CHARSET_ANSI_CYRILLIC = 0xCC; - const CHARSET_ANSI_THAI = 0xDD; - const CHARSET_ANSI_LATIN_II = 0xEE; - const CHARSET_OEM_LATIN_I = 0xFF; - /** Font filenames */ - const ARIAL = 'arial.ttf'; - - // XXX: Constants created! - const ARIAL_BOLD = 'arialbd.ttf'; - const ARIAL_ITALIC = 'ariali.ttf'; - const ARIAL_BOLD_ITALIC = 'arialbi.ttf'; - const CALIBRI = 'CALIBRI.TTF'; - const CALIBRI_BOLD = 'CALIBRIB.TTF'; - const CALIBRI_ITALIC = 'CALIBRII.TTF'; - const CALIBRI_BOLD_ITALIC = 'CALIBRIZ.TTF'; - const COMIC_SANS_MS = 'comic.ttf'; - const COMIC_SANS_MS_BOLD = 'comicbd.ttf'; - const COURIER_NEW = 'cour.ttf'; - const COURIER_NEW_BOLD = 'courbd.ttf'; - const COURIER_NEW_ITALIC = 'couri.ttf'; - const COURIER_NEW_BOLD_ITALIC = 'courbi.ttf'; - const GEORGIA = 'georgia.ttf'; - const GEORGIA_BOLD = 'georgiab.ttf'; - const GEORGIA_ITALIC = 'georgiai.ttf'; - const GEORGIA_BOLD_ITALIC = 'georgiaz.ttf'; - const IMPACT = 'impact.ttf'; - const LIBERATION_SANS = 'LiberationSans-Regular.ttf'; - const LIBERATION_SANS_BOLD = 'LiberationSans-Bold.ttf'; - const LIBERATION_SANS_ITALIC = 'LiberationSans-Italic.ttf'; - const LIBERATION_SANS_BOLD_ITALIC = 'LiberationSans-BoldItalic.ttf'; - const LUCIDA_CONSOLE = 'lucon.ttf'; - const LUCIDA_SANS_UNICODE = 'l_10646.ttf'; - const MICROSOFT_SANS_SERIF = 'micross.ttf'; - const PALATINO_LINOTYPE = 'pala.ttf'; - const PALATINO_LINOTYPE_BOLD = 'palab.ttf'; - const PALATINO_LINOTYPE_ITALIC = 'palai.ttf'; - const PALATINO_LINOTYPE_BOLD_ITALIC = 'palabi.ttf'; - const SYMBOL = 'symbol.ttf'; - const TAHOMA = 'tahoma.ttf'; - const TAHOMA_BOLD = 'tahomabd.ttf'; - const TIMES_NEW_ROMAN = 'times.ttf'; - const TIMES_NEW_ROMAN_BOLD = 'timesbd.ttf'; - const TIMES_NEW_ROMAN_ITALIC = 'timesi.ttf'; - const TIMES_NEW_ROMAN_BOLD_ITALIC = 'timesbi.ttf'; - const TREBUCHET_MS = 'trebuc.ttf'; - const TREBUCHET_MS_BOLD = 'trebucbd.ttf'; - const TREBUCHET_MS_ITALIC = 'trebucit.ttf'; - const TREBUCHET_MS_BOLD_ITALIC = 'trebucbi.ttf'; - const VERDANA = 'verdana.ttf'; - const VERDANA_BOLD = 'verdanab.ttf'; - const VERDANA_ITALIC = 'verdanai.ttf'; - const VERDANA_BOLD_ITALIC = 'verdanaz.ttf'; - /** - * How wide is a default column for a given default font and size? - * Empirical data found by inspecting real Excel files and reading off the pixel width - * in Microsoft Office Excel 2007. - * - * @var array - */ - public static $defaultColumnWidths = array( - 'Arial' => array( - 1 => array('px' => 24, 'width' => 12.00000000), - 2 => array('px' => 24, 'width' => 12.00000000), - 3 => array('px' => 32, 'width' => 10.66406250), - 4 => array('px' => 32, 'width' => 10.66406250), - 5 => array('px' => 40, 'width' => 10.00000000), - 6 => array('px' => 48, 'width' => 9.59765625), - 7 => array('px' => 48, 'width' => 9.59765625), - 8 => array('px' => 56, 'width' => 9.33203125), - 9 => array('px' => 64, 'width' => 9.14062500), - 10 => array('px' => 64, 'width' => 9.14062500), - ), - 'Calibri' => array( - 1 => array('px' => 24, 'width' => 12.00000000), - 2 => array('px' => 24, 'width' => 12.00000000), - 3 => array('px' => 32, 'width' => 10.66406250), - 4 => array('px' => 32, 'width' => 10.66406250), - 5 => array('px' => 40, 'width' => 10.00000000), - 6 => array('px' => 48, 'width' => 9.59765625), - 7 => array('px' => 48, 'width' => 9.59765625), - 8 => array('px' => 56, 'width' => 9.33203125), - 9 => array('px' => 56, 'width' => 9.33203125), - 10 => array('px' => 64, 'width' => 9.14062500), - 11 => array('px' => 64, 'width' => 9.14062500), - ), - 'Verdana' => array( - 1 => array('px' => 24, 'width' => 12.00000000), - 2 => array('px' => 24, 'width' => 12.00000000), - 3 => array('px' => 32, 'width' => 10.66406250), - 4 => array('px' => 32, 'width' => 10.66406250), - 5 => array('px' => 40, 'width' => 10.00000000), - 6 => array('px' => 48, 'width' => 9.59765625), - 7 => array('px' => 48, 'width' => 9.59765625), - 8 => array('px' => 64, 'width' => 9.14062500), - 9 => array('px' => 72, 'width' => 9.00000000), - 10 => array('px' => 72, 'width' => 9.00000000), - ), - ); - private static $autoSizeMethods = array( - self::AUTOSIZE_METHOD_APPROX, - self::AUTOSIZE_METHOD_EXACT, - ); - /** - * AutoSize method - * - * @var string - */ - private static $autoSizeMethod = self::AUTOSIZE_METHOD_APPROX; - /** - * Path to folder containing TrueType font .ttf files - * - * @var string - */ - private static $trueTypeFontPath = null; - - /** - * Get autoSize method - * - * @return string - */ - public static function getAutoSizeMethod() - { - return self::$autoSizeMethod; - } - - /** - * Set autoSize method - * - * @param string $pValue - * @return boolean Success or failure - */ - public static function setAutoSizeMethod($pValue = self::AUTOSIZE_METHOD_APPROX) - { - if (!in_array($pValue, self::$autoSizeMethods)) { - return false; - } - self::$autoSizeMethod = $pValue; - - return true; - } - - /** - * Get the path to the folder containing .ttf files. - * - * @return string - */ - public static function getTrueTypeFontPath() - { - return self::$trueTypeFontPath; - } - - /** - * Set the path to the folder containing .ttf files. There should be a trailing slash. - * Typical locations on variout some platforms: - * <ul> - * <li>C:/Windows/Fonts/</li> - * <li>/usr/share/fonts/truetype/</li> - * <li>~/.fonts/</li> - * </ul> - * - * @param string $pValue - */ - public static function setTrueTypeFontPath($pValue = '') - { - self::$trueTypeFontPath = $pValue; - } - - /** - * Calculate an (approximate) OpenXML column width, based on font size and text contained - * - * @param PHPExcel_Style_Font $font Font object - * @param PHPExcel_RichText|string $cellText Text to calculate width - * @param integer $rotation Rotation angle - * @param PHPExcel_Style_Font|NULL $defaultFont Font object - * @return integer Column width - */ - public static function calculateColumnWidth(PHPExcel_Style_Font $font, $cellText = '', $rotation = 0, PHPExcel_Style_Font $defaultFont = null) - { - // If it is rich text, use plain text - if ($cellText instanceof PHPExcel_RichText) { - $cellText = $cellText->getPlainText(); - } - - // Special case if there are one or more newline characters ("\n") - if (strpos($cellText, "\n") !== false) { - $lineTexts = explode("\n", $cellText); - $lineWidths = array(); - foreach ($lineTexts as $lineText) { - $lineWidths[] = self::calculateColumnWidth($font, $lineText, $rotation = 0, $defaultFont); - } - return max($lineWidths); // width of longest line in cell - } - - // Try to get the exact text width in pixels - $approximate = self::$autoSizeMethod == self::AUTOSIZE_METHOD_APPROX; - if (!$approximate) { - $columnWidthAdjust = ceil(self::getTextWidthPixelsExact('n', $font, 0) * 1.07); - try { - // Width of text in pixels excl. padding - // and addition because Excel adds some padding, just use approx width of 'n' glyph - $columnWidth = self::getTextWidthPixelsExact($cellText, $font, $rotation) + $columnWidthAdjust; - } catch (PHPExcel_Exception $e) { - $approximate = true; - } - } - - if ($approximate) { - $columnWidthAdjust = self::getTextWidthPixelsApprox('n', $font, 0); - // Width of text in pixels excl. padding, approximation - // and addition because Excel adds some padding, just use approx width of 'n' glyph - $columnWidth = self::getTextWidthPixelsApprox($cellText, $font, $rotation) + $columnWidthAdjust; - } - - // Convert from pixel width to column width - $columnWidth = PHPExcel_Shared_Drawing::pixelsToCellDimension($columnWidth, $defaultFont); - - // Return - return round($columnWidth, 6); - } - - /** - * Get GD text width in pixels for a string of text in a certain font at a certain rotation angle - * - * @param string $text - * @param PHPExcel_Style_Font - * @param int $rotation - * @return int - * @throws PHPExcel_Exception - */ - public static function getTextWidthPixelsExact($text, PHPExcel_Style_Font $font, $rotation = 0) - { - if (!function_exists('imagettfbbox')) { - throw new PHPExcel_Exception('GD library needs to be enabled'); - } - - // font size should really be supplied in pixels in GD2, - // but since GD2 seems to assume 72dpi, pixels and points are the same - $fontFile = self::getTrueTypeFontFileFromFont($font); - $textBox = imagettfbbox($font->getSize(), $rotation, $fontFile, $text); - - // Get corners positions - $lowerLeftCornerX = $textBox[0]; -// $lowerLeftCornerY = $textBox[1]; - $lowerRightCornerX = $textBox[2]; -// $lowerRightCornerY = $textBox[3]; - $upperRightCornerX = $textBox[4]; -// $upperRightCornerY = $textBox[5]; - $upperLeftCornerX = $textBox[6]; -// $upperLeftCornerY = $textBox[7]; - - // Consider the rotation when calculating the width - $textWidth = max($lowerRightCornerX - $upperLeftCornerX, $upperRightCornerX - $lowerLeftCornerX); - - return $textWidth; - } - - /** - * Returns the font path given the font - * - * @param PHPExcel_Style_Font - * @return string Path to TrueType font file - */ - public static function getTrueTypeFontFileFromFont($font) - { - if (!file_exists(self::$trueTypeFontPath) || !is_dir(self::$trueTypeFontPath)) { - throw new PHPExcel_Exception('Valid directory to TrueType Font files not specified'); - } - - $name = $font->getName(); - $bold = $font->getBold(); - $italic = $font->getItalic(); - - // Check if we can map font to true type font file - switch ($name) { - case 'Arial': - $fontFile = ( - $bold ? ($italic ? self::ARIAL_BOLD_ITALIC : self::ARIAL_BOLD) - : ($italic ? self::ARIAL_ITALIC : self::ARIAL) - ); - break; - case 'Calibri': - $fontFile = ( - $bold ? ($italic ? self::CALIBRI_BOLD_ITALIC : self::CALIBRI_BOLD) - : ($italic ? self::CALIBRI_ITALIC : self::CALIBRI) - ); - break; - case 'Courier New': - $fontFile = ( - $bold ? ($italic ? self::COURIER_NEW_BOLD_ITALIC : self::COURIER_NEW_BOLD) - : ($italic ? self::COURIER_NEW_ITALIC : self::COURIER_NEW) - ); - break; - case 'Comic Sans MS': - $fontFile = ( - $bold ? self::COMIC_SANS_MS_BOLD : self::COMIC_SANS_MS - ); - break; - case 'Georgia': - $fontFile = ( - $bold ? ($italic ? self::GEORGIA_BOLD_ITALIC : self::GEORGIA_BOLD) - : ($italic ? self::GEORGIA_ITALIC : self::GEORGIA) - ); - break; - case 'Impact': - $fontFile = self::IMPACT; - break; - case 'Liberation Sans': - $fontFile = ( - $bold ? ($italic ? self::LIBERATION_SANS_BOLD_ITALIC : self::LIBERATION_SANS_BOLD) - : ($italic ? self::LIBERATION_SANS_ITALIC : self::LIBERATION_SANS) - ); - break; - case 'Lucida Console': - $fontFile = self::LUCIDA_CONSOLE; - break; - case 'Lucida Sans Unicode': - $fontFile = self::LUCIDA_SANS_UNICODE; - break; - case 'Microsoft Sans Serif': - $fontFile = self::MICROSOFT_SANS_SERIF; - break; - case 'Palatino Linotype': - $fontFile = ( - $bold ? ($italic ? self::PALATINO_LINOTYPE_BOLD_ITALIC : self::PALATINO_LINOTYPE_BOLD) - : ($italic ? self::PALATINO_LINOTYPE_ITALIC : self::PALATINO_LINOTYPE) - ); - break; - case 'Symbol': - $fontFile = self::SYMBOL; - break; - case 'Tahoma': - $fontFile = ( - $bold ? self::TAHOMA_BOLD : self::TAHOMA - ); - break; - case 'Times New Roman': - $fontFile = ( - $bold ? ($italic ? self::TIMES_NEW_ROMAN_BOLD_ITALIC : self::TIMES_NEW_ROMAN_BOLD) - : ($italic ? self::TIMES_NEW_ROMAN_ITALIC : self::TIMES_NEW_ROMAN) - ); - break; - case 'Trebuchet MS': - $fontFile = ( - $bold ? ($italic ? self::TREBUCHET_MS_BOLD_ITALIC : self::TREBUCHET_MS_BOLD) - : ($italic ? self::TREBUCHET_MS_ITALIC : self::TREBUCHET_MS) - ); - break; - case 'Verdana': - $fontFile = ( - $bold ? ($italic ? self::VERDANA_BOLD_ITALIC : self::VERDANA_BOLD) - : ($italic ? self::VERDANA_ITALIC : self::VERDANA) - ); - break; - default: - throw new PHPExcel_Exception('Unknown font name "'. $name .'". Cannot map to TrueType font file'); - break; - } - - $fontFile = self::$trueTypeFontPath . $fontFile; - - // Check if file actually exists - if (!file_exists($fontFile)) { - throw new PHPExcel_Exception('TrueType Font file not found'); - } - - return $fontFile; - } - - /** - * Get approximate width in pixels for a string of text in a certain font at a certain rotation angle - * - * @param string $columnText - * @param PHPExcel_Style_Font $font - * @param int $rotation - * @return int Text width in pixels (no padding added) - */ - public static function getTextWidthPixelsApprox($columnText, PHPExcel_Style_Font $font = null, $rotation = 0) - { - $fontName = $font->getName(); - $fontSize = $font->getSize(); - - // Calculate column width in pixels. We assume fixed glyph width. Result varies with font name and size. - switch ($fontName) { - case 'Calibri': - // value 8.26 was found via interpolation by inspecting real Excel files with Calibri 11 font. - $columnWidth = (int) (8.26 * PHPExcel_Shared_String::CountCharacters($columnText)); - $columnWidth = $columnWidth * $fontSize / 11; // extrapolate from font size - break; - - case 'Arial': - // value 7 was found via interpolation by inspecting real Excel files with Arial 10 font. -// $columnWidth = (int) (7 * PHPExcel_Shared_String::CountCharacters($columnText)); - // value 8 was set because of experience in different exports at Arial 10 font. - $columnWidth = (int) (8 * PHPExcel_Shared_String::CountCharacters($columnText)); - $columnWidth = $columnWidth * $fontSize / 10; // extrapolate from font size - break; - - case 'Verdana': - // value 8 was found via interpolation by inspecting real Excel files with Verdana 10 font. - $columnWidth = (int) (8 * PHPExcel_Shared_String::CountCharacters($columnText)); - $columnWidth = $columnWidth * $fontSize / 10; // extrapolate from font size - break; - - default: - // just assume Calibri - $columnWidth = (int) (8.26 * PHPExcel_Shared_String::CountCharacters($columnText)); - $columnWidth = $columnWidth * $fontSize / 11; // extrapolate from font size - break; - } - - // Calculate approximate rotated column width - if ($rotation !== 0) { - if ($rotation == -165) { - // stacked text - $columnWidth = 4; // approximation - } else { - // rotated text - $columnWidth = $columnWidth * cos(deg2rad($rotation)) - + $fontSize * abs(sin(deg2rad($rotation))) / 5; // approximation - } - } - - // pixel width is an integer - return (int) $columnWidth; - } - - /** - * Calculate an (approximate) pixel size, based on a font points size - * - * @param int $fontSizeInPoints Font size (in points) - * @return int Font size (in pixels) - */ - public static function fontSizeToPixels($fontSizeInPoints = 11) - { - return (int) ((4 / 3) * $fontSizeInPoints); - } - - /** - * Calculate an (approximate) pixel size, based on inch size - * - * @param int $sizeInInch Font size (in inch) - * @return int Size (in pixels) - */ - public static function inchSizeToPixels($sizeInInch = 1) - { - return ($sizeInInch * 96); - } - - /** - * Calculate an (approximate) pixel size, based on centimeter size - * - * @param int $sizeInCm Font size (in centimeters) - * @return int Size (in pixels) - */ - public static function centimeterSizeToPixels($sizeInCm = 1) - { - return ($sizeInCm * 37.795275591); - } - - /** - * Returns the associated charset for the font name. - * - * @param string $name Font name - * @return int Character set code - */ - public static function getCharsetFromFontName($name) - { - switch ($name) { - // Add more cases. Check FONT records in real Excel files. - case 'EucrosiaUPC': - return self::CHARSET_ANSI_THAI; - case 'Wingdings': - return self::CHARSET_SYMBOL; - case 'Wingdings 2': - return self::CHARSET_SYMBOL; - case 'Wingdings 3': - return self::CHARSET_SYMBOL; - default: - return self::CHARSET_ANSI_LATIN; - } - } - - /** - * Get the effective column width for columns without a column dimension or column with width -1 - * For example, for Calibri 11 this is 9.140625 (64 px) - * - * @param PHPExcel_Style_Font $font The workbooks default font - * @param boolean $pPixels true = return column width in pixels, false = return in OOXML units - * @return mixed Column width - */ - public static function getDefaultColumnWidthByFont(PHPExcel_Style_Font $font, $pPixels = false) - { - if (isset(self::$defaultColumnWidths[$font->getName()][$font->getSize()])) { - // Exact width can be determined - $columnWidth = $pPixels ? - self::$defaultColumnWidths[$font->getName()][$font->getSize()]['px'] - : self::$defaultColumnWidths[$font->getName()][$font->getSize()]['width']; - - } else { - // We don't have data for this particular font and size, use approximation by - // extrapolating from Calibri 11 - $columnWidth = $pPixels ? - self::$defaultColumnWidths['Calibri'][11]['px'] - : self::$defaultColumnWidths['Calibri'][11]['width']; - $columnWidth = $columnWidth * $font->getSize() / 11; - - // Round pixels to closest integer - if ($pPixels) { - $columnWidth = (int) round($columnWidth); - } - } - - return $columnWidth; - } - - /** - * Get the effective row height for rows without a row dimension or rows with height -1 - * For example, for Calibri 11 this is 15 points - * - * @param PHPExcel_Style_Font $font The workbooks default font - * @return float Row height in points - */ - public static function getDefaultRowHeightByFont(PHPExcel_Style_Font $font) - { - switch ($font->getName()) { - case 'Arial': - switch ($font->getSize()) { - case 10: - // inspection of Arial 10 workbook says 12.75pt ~17px - $rowHeight = 12.75; - break; - case 9: - // inspection of Arial 9 workbook says 12.00pt ~16px - $rowHeight = 12; - break; - case 8: - // inspection of Arial 8 workbook says 11.25pt ~15px - $rowHeight = 11.25; - break; - case 7: - // inspection of Arial 7 workbook says 9.00pt ~12px - $rowHeight = 9; - break; - case 6: - case 5: - // inspection of Arial 5,6 workbook says 8.25pt ~11px - $rowHeight = 8.25; - break; - case 4: - // inspection of Arial 4 workbook says 6.75pt ~9px - $rowHeight = 6.75; - break; - case 3: - // inspection of Arial 3 workbook says 6.00pt ~8px - $rowHeight = 6; - break; - case 2: - case 1: - // inspection of Arial 1,2 workbook says 5.25pt ~7px - $rowHeight = 5.25; - break; - default: - // use Arial 10 workbook as an approximation, extrapolation - $rowHeight = 12.75 * $font->getSize() / 10; - break; - } - break; - - case 'Calibri': - switch ($font->getSize()) { - case 11: - // inspection of Calibri 11 workbook says 15.00pt ~20px - $rowHeight = 15; - break; - case 10: - // inspection of Calibri 10 workbook says 12.75pt ~17px - $rowHeight = 12.75; - break; - case 9: - // inspection of Calibri 9 workbook says 12.00pt ~16px - $rowHeight = 12; - break; - case 8: - // inspection of Calibri 8 workbook says 11.25pt ~15px - $rowHeight = 11.25; - break; - case 7: - // inspection of Calibri 7 workbook says 9.00pt ~12px - $rowHeight = 9; - break; - case 6: - case 5: - // inspection of Calibri 5,6 workbook says 8.25pt ~11px - $rowHeight = 8.25; - break; - case 4: - // inspection of Calibri 4 workbook says 6.75pt ~9px - $rowHeight = 6.75; - break; - case 3: - // inspection of Calibri 3 workbook says 6.00pt ~8px - $rowHeight = 6.00; - break; - case 2: - case 1: - // inspection of Calibri 1,2 workbook says 5.25pt ~7px - $rowHeight = 5.25; - break; - default: - // use Calibri 11 workbook as an approximation, extrapolation - $rowHeight = 15 * $font->getSize() / 11; - break; - } - break; - - case 'Verdana': - switch ($font->getSize()) { - case 10: - // inspection of Verdana 10 workbook says 12.75pt ~17px - $rowHeight = 12.75; - break; - case 9: - // inspection of Verdana 9 workbook says 11.25pt ~15px - $rowHeight = 11.25; - break; - case 8: - // inspection of Verdana 8 workbook says 10.50pt ~14px - $rowHeight = 10.50; - break; - case 7: - // inspection of Verdana 7 workbook says 9.00pt ~12px - $rowHeight = 9.00; - break; - case 6: - case 5: - // inspection of Verdana 5,6 workbook says 8.25pt ~11px - $rowHeight = 8.25; - break; - case 4: - // inspection of Verdana 4 workbook says 6.75pt ~9px - $rowHeight = 6.75; - break; - case 3: - // inspection of Verdana 3 workbook says 6.00pt ~8px - $rowHeight = 6; - break; - case 2: - case 1: - // inspection of Verdana 1,2 workbook says 5.25pt ~7px - $rowHeight = 5.25; - break; - default: - // use Verdana 10 workbook as an approximation, extrapolation - $rowHeight = 12.75 * $font->getSize() / 10; - break; - } - break; - default: - // just use Calibri as an approximation - $rowHeight = 15 * $font->getSize() / 11; - break; - } - - return $rowHeight; - } -} diff --git a/Utils/PHPExcel/Shared/JAMA/CHANGELOG.TXT b/Utils/PHPExcel/Shared/JAMA/CHANGELOG.TXT deleted file mode 100644 index 1c18a5d..0000000 --- a/Utils/PHPExcel/Shared/JAMA/CHANGELOG.TXT +++ /dev/null @@ -1,16 +0,0 @@ -Mar 1, 2005 11:15 AST by PM - -+ For consistency, renamed Math.php to Maths.java, utils to util, - tests to test, docs to doc - - -+ Removed conditional logic from top of Matrix class. - -+ Switched to using hypo function in Maths.php for all php-hypot calls. - NOTE TO SELF: Need to make sure that all decompositions have been - switched over to using the bundled hypo. - -Feb 25, 2005 at 10:00 AST by PM - -+ Recommend using simpler Error.php instead of JAMA_Error.php but - can be persuaded otherwise. - diff --git a/Utils/PHPExcel/Shared/JAMA/CholeskyDecomposition.php b/Utils/PHPExcel/Shared/JAMA/CholeskyDecomposition.php deleted file mode 100644 index d68109b..0000000 --- a/Utils/PHPExcel/Shared/JAMA/CholeskyDecomposition.php +++ /dev/null @@ -1,148 +0,0 @@ -<?php -/** - * @package JAMA - * - * Cholesky decomposition class - * - * For a symmetric, positive definite matrix A, the Cholesky decomposition - * is an lower triangular matrix L so that A = L*L'. - * - * If the matrix is not symmetric or positive definite, the constructor - * returns a partial decomposition and sets an internal flag that may - * be queried by the isSPD() method. - * - * @author Paul Meagher - * @author Michael Bommarito - * @version 1.2 - */ -class CholeskyDecomposition -{ - /** - * Decomposition storage - * @var array - * @access private - */ - private $L = array(); - - /** - * Matrix row and column dimension - * @var int - * @access private - */ - private $m; - - /** - * Symmetric positive definite flag - * @var boolean - * @access private - */ - private $isspd = true; - - /** - * CholeskyDecomposition - * - * Class constructor - decomposes symmetric positive definite matrix - * @param mixed Matrix square symmetric positive definite matrix - */ - public function __construct($A = null) - { - if ($A instanceof Matrix) { - $this->L = $A->getArray(); - $this->m = $A->getRowDimension(); - - for ($i = 0; $i < $this->m; ++$i) { - for ($j = $i; $j < $this->m; ++$j) { - for ($sum = $this->L[$i][$j], $k = $i - 1; $k >= 0; --$k) { - $sum -= $this->L[$i][$k] * $this->L[$j][$k]; - } - if ($i == $j) { - if ($sum >= 0) { - $this->L[$i][$i] = sqrt($sum); - } else { - $this->isspd = false; - } - } else { - if ($this->L[$i][$i] != 0) { - $this->L[$j][$i] = $sum / $this->L[$i][$i]; - } - } - } - - for ($k = $i+1; $k < $this->m; ++$k) { - $this->L[$i][$k] = 0.0; - } - } - } else { - throw new PHPExcel_Calculation_Exception(JAMAError(ARGUMENT_TYPE_EXCEPTION)); - } - } // function __construct() - - /** - * Is the matrix symmetric and positive definite? - * - * @return boolean - */ - public function isSPD() - { - return $this->isspd; - } // function isSPD() - - /** - * getL - * - * Return triangular factor. - * @return Matrix Lower triangular matrix - */ - public function getL() - { - return new Matrix($this->L); - } // function getL() - - /** - * Solve A*X = B - * - * @param $B Row-equal matrix - * @return Matrix L * L' * X = B - */ - public function solve($B = null) - { - if ($B instanceof Matrix) { - if ($B->getRowDimension() == $this->m) { - if ($this->isspd) { - $X = $B->getArrayCopy(); - $nx = $B->getColumnDimension(); - - for ($k = 0; $k < $this->m; ++$k) { - for ($i = $k + 1; $i < $this->m; ++$i) { - for ($j = 0; $j < $nx; ++$j) { - $X[$i][$j] -= $X[$k][$j] * $this->L[$i][$k]; - } - } - for ($j = 0; $j < $nx; ++$j) { - $X[$k][$j] /= $this->L[$k][$k]; - } - } - - for ($k = $this->m - 1; $k >= 0; --$k) { - for ($j = 0; $j < $nx; ++$j) { - $X[$k][$j] /= $this->L[$k][$k]; - } - for ($i = 0; $i < $k; ++$i) { - for ($j = 0; $j < $nx; ++$j) { - $X[$i][$j] -= $X[$k][$j] * $this->L[$k][$i]; - } - } - } - - return new Matrix($X, $this->m, $nx); - } else { - throw new PHPExcel_Calculation_Exception(JAMAError(MatrixSPDException)); - } - } else { - throw new PHPExcel_Calculation_Exception(JAMAError(MATRIX_DIMENSION_EXCEPTION)); - } - } else { - throw new PHPExcel_Calculation_Exception(JAMAError(ARGUMENT_TYPE_EXCEPTION)); - } - } // function solve() -} diff --git a/Utils/PHPExcel/Shared/JAMA/EigenvalueDecomposition.php b/Utils/PHPExcel/Shared/JAMA/EigenvalueDecomposition.php deleted file mode 100644 index d4ae397..0000000 --- a/Utils/PHPExcel/Shared/JAMA/EigenvalueDecomposition.php +++ /dev/null @@ -1,864 +0,0 @@ -<?php -/** - * @package JAMA - * - * Class to obtain eigenvalues and eigenvectors of a real matrix. - * - * If A is symmetric, then A = V*D*V' where the eigenvalue matrix D - * is diagonal and the eigenvector matrix V is orthogonal (i.e. - * A = V.times(D.times(V.transpose())) and V.times(V.transpose()) - * equals the identity matrix). - * - * If A is not symmetric, then the eigenvalue matrix D is block diagonal - * with the real eigenvalues in 1-by-1 blocks and any complex eigenvalues, - * lambda + i*mu, in 2-by-2 blocks, [lambda, mu; -mu, lambda]. The - * columns of V represent the eigenvectors in the sense that A*V = V*D, - * i.e. A.times(V) equals V.times(D). The matrix V may be badly - * conditioned, or even singular, so the validity of the equation - * A = V*D*inverse(V) depends upon V.cond(). - * - * @author Paul Meagher - * @license PHP v3.0 - * @version 1.1 - */ -class EigenvalueDecomposition -{ - /** - * Row and column dimension (square matrix). - * @var int - */ - private $n; - - /** - * Internal symmetry flag. - * @var int - */ - private $issymmetric; - - /** - * Arrays for internal storage of eigenvalues. - * @var array - */ - private $d = array(); - private $e = array(); - - /** - * Array for internal storage of eigenvectors. - * @var array - */ - private $V = array(); - - /** - * Array for internal storage of nonsymmetric Hessenberg form. - * @var array - */ - private $H = array(); - - /** - * Working storage for nonsymmetric algorithm. - * @var array - */ - private $ort; - - /** - * Used for complex scalar division. - * @var float - */ - private $cdivr; - private $cdivi; - - /** - * Symmetric Householder reduction to tridiagonal form. - * - * @access private - */ - private function tred2() - { - // This is derived from the Algol procedures tred2 by - // Bowdler, Martin, Reinsch, and Wilkinson, Handbook for - // Auto. Comp., Vol.ii-Linear Algebra, and the corresponding - // Fortran subroutine in EISPACK. - $this->d = $this->V[$this->n-1]; - // Householder reduction to tridiagonal form. - for ($i = $this->n-1; $i > 0; --$i) { - $i_ = $i -1; - // Scale to avoid under/overflow. - $h = $scale = 0.0; - $scale += array_sum(array_map(abs, $this->d)); - if ($scale == 0.0) { - $this->e[$i] = $this->d[$i_]; - $this->d = array_slice($this->V[$i_], 0, $i_); - for ($j = 0; $j < $i; ++$j) { - $this->V[$j][$i] = $this->V[$i][$j] = 0.0; - } - } else { - // Generate Householder vector. - for ($k = 0; $k < $i; ++$k) { - $this->d[$k] /= $scale; - $h += pow($this->d[$k], 2); - } - $f = $this->d[$i_]; - $g = sqrt($h); - if ($f > 0) { - $g = -$g; - } - $this->e[$i] = $scale * $g; - $h = $h - $f * $g; - $this->d[$i_] = $f - $g; - for ($j = 0; $j < $i; ++$j) { - $this->e[$j] = 0.0; - } - // Apply similarity transformation to remaining columns. - for ($j = 0; $j < $i; ++$j) { - $f = $this->d[$j]; - $this->V[$j][$i] = $f; - $g = $this->e[$j] + $this->V[$j][$j] * $f; - for ($k = $j+1; $k <= $i_; ++$k) { - $g += $this->V[$k][$j] * $this->d[$k]; - $this->e[$k] += $this->V[$k][$j] * $f; - } - $this->e[$j] = $g; - } - $f = 0.0; - for ($j = 0; $j < $i; ++$j) { - $this->e[$j] /= $h; - $f += $this->e[$j] * $this->d[$j]; - } - $hh = $f / (2 * $h); - for ($j=0; $j < $i; ++$j) { - $this->e[$j] -= $hh * $this->d[$j]; - } - for ($j = 0; $j < $i; ++$j) { - $f = $this->d[$j]; - $g = $this->e[$j]; - for ($k = $j; $k <= $i_; ++$k) { - $this->V[$k][$j] -= ($f * $this->e[$k] + $g * $this->d[$k]); - } - $this->d[$j] = $this->V[$i-1][$j]; - $this->V[$i][$j] = 0.0; - } - } - $this->d[$i] = $h; - } - - // Accumulate transformations. - for ($i = 0; $i < $this->n-1; ++$i) { - $this->V[$this->n-1][$i] = $this->V[$i][$i]; - $this->V[$i][$i] = 1.0; - $h = $this->d[$i+1]; - if ($h != 0.0) { - for ($k = 0; $k <= $i; ++$k) { - $this->d[$k] = $this->V[$k][$i+1] / $h; - } - for ($j = 0; $j <= $i; ++$j) { - $g = 0.0; - for ($k = 0; $k <= $i; ++$k) { - $g += $this->V[$k][$i+1] * $this->V[$k][$j]; - } - for ($k = 0; $k <= $i; ++$k) { - $this->V[$k][$j] -= $g * $this->d[$k]; - } - } - } - for ($k = 0; $k <= $i; ++$k) { - $this->V[$k][$i+1] = 0.0; - } - } - - $this->d = $this->V[$this->n-1]; - $this->V[$this->n-1] = array_fill(0, $j, 0.0); - $this->V[$this->n-1][$this->n-1] = 1.0; - $this->e[0] = 0.0; - } - - /** - * Symmetric tridiagonal QL algorithm. - * - * This is derived from the Algol procedures tql2, by - * Bowdler, Martin, Reinsch, and Wilkinson, Handbook for - * Auto. Comp., Vol.ii-Linear Algebra, and the corresponding - * Fortran subroutine in EISPACK. - * - * @access private - */ - private function tql2() - { - for ($i = 1; $i < $this->n; ++$i) { - $this->e[$i-1] = $this->e[$i]; - } - $this->e[$this->n-1] = 0.0; - $f = 0.0; - $tst1 = 0.0; - $eps = pow(2.0, -52.0); - - for ($l = 0; $l < $this->n; ++$l) { - // Find small subdiagonal element - $tst1 = max($tst1, abs($this->d[$l]) + abs($this->e[$l])); - $m = $l; - while ($m < $this->n) { - if (abs($this->e[$m]) <= $eps * $tst1) { - break; - } - ++$m; - } - // If m == l, $this->d[l] is an eigenvalue, - // otherwise, iterate. - if ($m > $l) { - $iter = 0; - do { - // Could check iteration count here. - $iter += 1; - // Compute implicit shift - $g = $this->d[$l]; - $p = ($this->d[$l+1] - $g) / (2.0 * $this->e[$l]); - $r = hypo($p, 1.0); - if ($p < 0) { - $r *= -1; - } - $this->d[$l] = $this->e[$l] / ($p + $r); - $this->d[$l+1] = $this->e[$l] * ($p + $r); - $dl1 = $this->d[$l+1]; - $h = $g - $this->d[$l]; - for ($i = $l + 2; $i < $this->n; ++$i) { - $this->d[$i] -= $h; - } - $f += $h; - // Implicit QL transformation. - $p = $this->d[$m]; - $c = 1.0; - $c2 = $c3 = $c; - $el1 = $this->e[$l + 1]; - $s = $s2 = 0.0; - for ($i = $m-1; $i >= $l; --$i) { - $c3 = $c2; - $c2 = $c; - $s2 = $s; - $g = $c * $this->e[$i]; - $h = $c * $p; - $r = hypo($p, $this->e[$i]); - $this->e[$i+1] = $s * $r; - $s = $this->e[$i] / $r; - $c = $p / $r; - $p = $c * $this->d[$i] - $s * $g; - $this->d[$i+1] = $h + $s * ($c * $g + $s * $this->d[$i]); - // Accumulate transformation. - for ($k = 0; $k < $this->n; ++$k) { - $h = $this->V[$k][$i+1]; - $this->V[$k][$i+1] = $s * $this->V[$k][$i] + $c * $h; - $this->V[$k][$i] = $c * $this->V[$k][$i] - $s * $h; - } - } - $p = -$s * $s2 * $c3 * $el1 * $this->e[$l] / $dl1; - $this->e[$l] = $s * $p; - $this->d[$l] = $c * $p; - // Check for convergence. - } while (abs($this->e[$l]) > $eps * $tst1); - } - $this->d[$l] = $this->d[$l] + $f; - $this->e[$l] = 0.0; - } - - // Sort eigenvalues and corresponding vectors. - for ($i = 0; $i < $this->n - 1; ++$i) { - $k = $i; - $p = $this->d[$i]; - for ($j = $i+1; $j < $this->n; ++$j) { - if ($this->d[$j] < $p) { - $k = $j; - $p = $this->d[$j]; - } - } - if ($k != $i) { - $this->d[$k] = $this->d[$i]; - $this->d[$i] = $p; - for ($j = 0; $j < $this->n; ++$j) { - $p = $this->V[$j][$i]; - $this->V[$j][$i] = $this->V[$j][$k]; - $this->V[$j][$k] = $p; - } - } - } - } - - /** - * Nonsymmetric reduction to Hessenberg form. - * - * This is derived from the Algol procedures orthes and ortran, - * by Martin and Wilkinson, Handbook for Auto. Comp., - * Vol.ii-Linear Algebra, and the corresponding - * Fortran subroutines in EISPACK. - * - * @access private - */ - private function orthes() - { - $low = 0; - $high = $this->n-1; - - for ($m = $low+1; $m <= $high-1; ++$m) { - // Scale column. - $scale = 0.0; - for ($i = $m; $i <= $high; ++$i) { - $scale = $scale + abs($this->H[$i][$m-1]); - } - if ($scale != 0.0) { - // Compute Householder transformation. - $h = 0.0; - for ($i = $high; $i >= $m; --$i) { - $this->ort[$i] = $this->H[$i][$m-1] / $scale; - $h += $this->ort[$i] * $this->ort[$i]; - } - $g = sqrt($h); - if ($this->ort[$m] > 0) { - $g *= -1; - } - $h -= $this->ort[$m] * $g; - $this->ort[$m] -= $g; - // Apply Householder similarity transformation - // H = (I -u * u' / h) * H * (I -u * u') / h) - for ($j = $m; $j < $this->n; ++$j) { - $f = 0.0; - for ($i = $high; $i >= $m; --$i) { - $f += $this->ort[$i] * $this->H[$i][$j]; - } - $f /= $h; - for ($i = $m; $i <= $high; ++$i) { - $this->H[$i][$j] -= $f * $this->ort[$i]; - } - } - for ($i = 0; $i <= $high; ++$i) { - $f = 0.0; - for ($j = $high; $j >= $m; --$j) { - $f += $this->ort[$j] * $this->H[$i][$j]; - } - $f = $f / $h; - for ($j = $m; $j <= $high; ++$j) { - $this->H[$i][$j] -= $f * $this->ort[$j]; - } - } - $this->ort[$m] = $scale * $this->ort[$m]; - $this->H[$m][$m-1] = $scale * $g; - } - } - - // Accumulate transformations (Algol's ortran). - for ($i = 0; $i < $this->n; ++$i) { - for ($j = 0; $j < $this->n; ++$j) { - $this->V[$i][$j] = ($i == $j ? 1.0 : 0.0); - } - } - for ($m = $high-1; $m >= $low+1; --$m) { - if ($this->H[$m][$m-1] != 0.0) { - for ($i = $m+1; $i <= $high; ++$i) { - $this->ort[$i] = $this->H[$i][$m-1]; - } - for ($j = $m; $j <= $high; ++$j) { - $g = 0.0; - for ($i = $m; $i <= $high; ++$i) { - $g += $this->ort[$i] * $this->V[$i][$j]; - } - // Double division avoids possible underflow - $g = ($g / $this->ort[$m]) / $this->H[$m][$m-1]; - for ($i = $m; $i <= $high; ++$i) { - $this->V[$i][$j] += $g * $this->ort[$i]; - } - } - } - } - } - - /** - * Performs complex division. - * - * @access private - */ - private function cdiv($xr, $xi, $yr, $yi) - { - if (abs($yr) > abs($yi)) { - $r = $yi / $yr; - $d = $yr + $r * $yi; - $this->cdivr = ($xr + $r * $xi) / $d; - $this->cdivi = ($xi - $r * $xr) / $d; - } else { - $r = $yr / $yi; - $d = $yi + $r * $yr; - $this->cdivr = ($r * $xr + $xi) / $d; - $this->cdivi = ($r * $xi - $xr) / $d; - } - } - - /** - * Nonsymmetric reduction from Hessenberg to real Schur form. - * - * Code is derived from the Algol procedure hqr2, - * by Martin and Wilkinson, Handbook for Auto. Comp., - * Vol.ii-Linear Algebra, and the corresponding - * Fortran subroutine in EISPACK. - * - * @access private - */ - private function hqr2() - { - // Initialize - $nn = $this->n; - $n = $nn - 1; - $low = 0; - $high = $nn - 1; - $eps = pow(2.0, -52.0); - $exshift = 0.0; - $p = $q = $r = $s = $z = 0; - // Store roots isolated by balanc and compute matrix norm - $norm = 0.0; - - for ($i = 0; $i < $nn; ++$i) { - if (($i < $low) or ($i > $high)) { - $this->d[$i] = $this->H[$i][$i]; - $this->e[$i] = 0.0; - } - for ($j = max($i-1, 0); $j < $nn; ++$j) { - $norm = $norm + abs($this->H[$i][$j]); - } - } - - // Outer loop over eigenvalue index - $iter = 0; - while ($n >= $low) { - // Look for single small sub-diagonal element - $l = $n; - while ($l > $low) { - $s = abs($this->H[$l-1][$l-1]) + abs($this->H[$l][$l]); - if ($s == 0.0) { - $s = $norm; - } - if (abs($this->H[$l][$l-1]) < $eps * $s) { - break; - } - --$l; - } - // Check for convergence - // One root found - if ($l == $n) { - $this->H[$n][$n] = $this->H[$n][$n] + $exshift; - $this->d[$n] = $this->H[$n][$n]; - $this->e[$n] = 0.0; - --$n; - $iter = 0; - // Two roots found - } elseif ($l == $n-1) { - $w = $this->H[$n][$n-1] * $this->H[$n-1][$n]; - $p = ($this->H[$n-1][$n-1] - $this->H[$n][$n]) / 2.0; - $q = $p * $p + $w; - $z = sqrt(abs($q)); - $this->H[$n][$n] = $this->H[$n][$n] + $exshift; - $this->H[$n-1][$n-1] = $this->H[$n-1][$n-1] + $exshift; - $x = $this->H[$n][$n]; - // Real pair - if ($q >= 0) { - if ($p >= 0) { - $z = $p + $z; - } else { - $z = $p - $z; - } - $this->d[$n-1] = $x + $z; - $this->d[$n] = $this->d[$n-1]; - if ($z != 0.0) { - $this->d[$n] = $x - $w / $z; - } - $this->e[$n-1] = 0.0; - $this->e[$n] = 0.0; - $x = $this->H[$n][$n-1]; - $s = abs($x) + abs($z); - $p = $x / $s; - $q = $z / $s; - $r = sqrt($p * $p + $q * $q); - $p = $p / $r; - $q = $q / $r; - // Row modification - for ($j = $n-1; $j < $nn; ++$j) { - $z = $this->H[$n-1][$j]; - $this->H[$n-1][$j] = $q * $z + $p * $this->H[$n][$j]; - $this->H[$n][$j] = $q * $this->H[$n][$j] - $p * $z; - } - // Column modification - for ($i = 0; $i <= $n; ++$i) { - $z = $this->H[$i][$n-1]; - $this->H[$i][$n-1] = $q * $z + $p * $this->H[$i][$n]; - $this->H[$i][$n] = $q * $this->H[$i][$n] - $p * $z; - } - // Accumulate transformations - for ($i = $low; $i <= $high; ++$i) { - $z = $this->V[$i][$n-1]; - $this->V[$i][$n-1] = $q * $z + $p * $this->V[$i][$n]; - $this->V[$i][$n] = $q * $this->V[$i][$n] - $p * $z; - } - // Complex pair - } else { - $this->d[$n-1] = $x + $p; - $this->d[$n] = $x + $p; - $this->e[$n-1] = $z; - $this->e[$n] = -$z; - } - $n = $n - 2; - $iter = 0; - // No convergence yet - } else { - // Form shift - $x = $this->H[$n][$n]; - $y = 0.0; - $w = 0.0; - if ($l < $n) { - $y = $this->H[$n-1][$n-1]; - $w = $this->H[$n][$n-1] * $this->H[$n-1][$n]; - } - // Wilkinson's original ad hoc shift - if ($iter == 10) { - $exshift += $x; - for ($i = $low; $i <= $n; ++$i) { - $this->H[$i][$i] -= $x; - } - $s = abs($this->H[$n][$n-1]) + abs($this->H[$n-1][$n-2]); - $x = $y = 0.75 * $s; - $w = -0.4375 * $s * $s; - } - // MATLAB's new ad hoc shift - if ($iter == 30) { - $s = ($y - $x) / 2.0; - $s = $s * $s + $w; - if ($s > 0) { - $s = sqrt($s); - if ($y < $x) { - $s = -$s; - } - $s = $x - $w / (($y - $x) / 2.0 + $s); - for ($i = $low; $i <= $n; ++$i) { - $this->H[$i][$i] -= $s; - } - $exshift += $s; - $x = $y = $w = 0.964; - } - } - // Could check iteration count here. - $iter = $iter + 1; - // Look for two consecutive small sub-diagonal elements - $m = $n - 2; - while ($m >= $l) { - $z = $this->H[$m][$m]; - $r = $x - $z; - $s = $y - $z; - $p = ($r * $s - $w) / $this->H[$m+1][$m] + $this->H[$m][$m+1]; - $q = $this->H[$m+1][$m+1] - $z - $r - $s; - $r = $this->H[$m+2][$m+1]; - $s = abs($p) + abs($q) + abs($r); - $p = $p / $s; - $q = $q / $s; - $r = $r / $s; - if ($m == $l) { - break; - } - if (abs($this->H[$m][$m-1]) * (abs($q) + abs($r)) < - $eps * (abs($p) * (abs($this->H[$m-1][$m-1]) + abs($z) + abs($this->H[$m+1][$m+1])))) { - break; - } - --$m; - } - for ($i = $m + 2; $i <= $n; ++$i) { - $this->H[$i][$i-2] = 0.0; - if ($i > $m+2) { - $this->H[$i][$i-3] = 0.0; - } - } - // Double QR step involving rows l:n and columns m:n - for ($k = $m; $k <= $n-1; ++$k) { - $notlast = ($k != $n-1); - if ($k != $m) { - $p = $this->H[$k][$k-1]; - $q = $this->H[$k+1][$k-1]; - $r = ($notlast ? $this->H[$k+2][$k-1] : 0.0); - $x = abs($p) + abs($q) + abs($r); - if ($x != 0.0) { - $p = $p / $x; - $q = $q / $x; - $r = $r / $x; - } - } - if ($x == 0.0) { - break; - } - $s = sqrt($p * $p + $q * $q + $r * $r); - if ($p < 0) { - $s = -$s; - } - if ($s != 0) { - if ($k != $m) { - $this->H[$k][$k-1] = -$s * $x; - } elseif ($l != $m) { - $this->H[$k][$k-1] = -$this->H[$k][$k-1]; - } - $p = $p + $s; - $x = $p / $s; - $y = $q / $s; - $z = $r / $s; - $q = $q / $p; - $r = $r / $p; - // Row modification - for ($j = $k; $j < $nn; ++$j) { - $p = $this->H[$k][$j] + $q * $this->H[$k+1][$j]; - if ($notlast) { - $p = $p + $r * $this->H[$k+2][$j]; - $this->H[$k+2][$j] = $this->H[$k+2][$j] - $p * $z; - } - $this->H[$k][$j] = $this->H[$k][$j] - $p * $x; - $this->H[$k+1][$j] = $this->H[$k+1][$j] - $p * $y; - } - // Column modification - for ($i = 0; $i <= min($n, $k+3); ++$i) { - $p = $x * $this->H[$i][$k] + $y * $this->H[$i][$k+1]; - if ($notlast) { - $p = $p + $z * $this->H[$i][$k+2]; - $this->H[$i][$k+2] = $this->H[$i][$k+2] - $p * $r; - } - $this->H[$i][$k] = $this->H[$i][$k] - $p; - $this->H[$i][$k+1] = $this->H[$i][$k+1] - $p * $q; - } - // Accumulate transformations - for ($i = $low; $i <= $high; ++$i) { - $p = $x * $this->V[$i][$k] + $y * $this->V[$i][$k+1]; - if ($notlast) { - $p = $p + $z * $this->V[$i][$k+2]; - $this->V[$i][$k+2] = $this->V[$i][$k+2] - $p * $r; - } - $this->V[$i][$k] = $this->V[$i][$k] - $p; - $this->V[$i][$k+1] = $this->V[$i][$k+1] - $p * $q; - } - } // ($s != 0) - } // k loop - } // check convergence - } // while ($n >= $low) - - // Backsubstitute to find vectors of upper triangular form - if ($norm == 0.0) { - return; - } - - for ($n = $nn-1; $n >= 0; --$n) { - $p = $this->d[$n]; - $q = $this->e[$n]; - // Real vector - if ($q == 0) { - $l = $n; - $this->H[$n][$n] = 1.0; - for ($i = $n-1; $i >= 0; --$i) { - $w = $this->H[$i][$i] - $p; - $r = 0.0; - for ($j = $l; $j <= $n; ++$j) { - $r = $r + $this->H[$i][$j] * $this->H[$j][$n]; - } - if ($this->e[$i] < 0.0) { - $z = $w; - $s = $r; - } else { - $l = $i; - if ($this->e[$i] == 0.0) { - if ($w != 0.0) { - $this->H[$i][$n] = -$r / $w; - } else { - $this->H[$i][$n] = -$r / ($eps * $norm); - } - // Solve real equations - } else { - $x = $this->H[$i][$i+1]; - $y = $this->H[$i+1][$i]; - $q = ($this->d[$i] - $p) * ($this->d[$i] - $p) + $this->e[$i] * $this->e[$i]; - $t = ($x * $s - $z * $r) / $q; - $this->H[$i][$n] = $t; - if (abs($x) > abs($z)) { - $this->H[$i+1][$n] = (-$r - $w * $t) / $x; - } else { - $this->H[$i+1][$n] = (-$s - $y * $t) / $z; - } - } - // Overflow control - $t = abs($this->H[$i][$n]); - if (($eps * $t) * $t > 1) { - for ($j = $i; $j <= $n; ++$j) { - $this->H[$j][$n] = $this->H[$j][$n] / $t; - } - } - } - } - // Complex vector - } elseif ($q < 0) { - $l = $n-1; - // Last vector component imaginary so matrix is triangular - if (abs($this->H[$n][$n-1]) > abs($this->H[$n-1][$n])) { - $this->H[$n-1][$n-1] = $q / $this->H[$n][$n-1]; - $this->H[$n-1][$n] = -($this->H[$n][$n] - $p) / $this->H[$n][$n-1]; - } else { - $this->cdiv(0.0, -$this->H[$n-1][$n], $this->H[$n-1][$n-1] - $p, $q); - $this->H[$n-1][$n-1] = $this->cdivr; - $this->H[$n-1][$n] = $this->cdivi; - } - $this->H[$n][$n-1] = 0.0; - $this->H[$n][$n] = 1.0; - for ($i = $n-2; $i >= 0; --$i) { - // double ra,sa,vr,vi; - $ra = 0.0; - $sa = 0.0; - for ($j = $l; $j <= $n; ++$j) { - $ra = $ra + $this->H[$i][$j] * $this->H[$j][$n-1]; - $sa = $sa + $this->H[$i][$j] * $this->H[$j][$n]; - } - $w = $this->H[$i][$i] - $p; - if ($this->e[$i] < 0.0) { - $z = $w; - $r = $ra; - $s = $sa; - } else { - $l = $i; - if ($this->e[$i] == 0) { - $this->cdiv(-$ra, -$sa, $w, $q); - $this->H[$i][$n-1] = $this->cdivr; - $this->H[$i][$n] = $this->cdivi; - } else { - // Solve complex equations - $x = $this->H[$i][$i+1]; - $y = $this->H[$i+1][$i]; - $vr = ($this->d[$i] - $p) * ($this->d[$i] - $p) + $this->e[$i] * $this->e[$i] - $q * $q; - $vi = ($this->d[$i] - $p) * 2.0 * $q; - if ($vr == 0.0 & $vi == 0.0) { - $vr = $eps * $norm * (abs($w) + abs($q) + abs($x) + abs($y) + abs($z)); - } - $this->cdiv($x * $r - $z * $ra + $q * $sa, $x * $s - $z * $sa - $q * $ra, $vr, $vi); - $this->H[$i][$n-1] = $this->cdivr; - $this->H[$i][$n] = $this->cdivi; - if (abs($x) > (abs($z) + abs($q))) { - $this->H[$i+1][$n-1] = (-$ra - $w * $this->H[$i][$n-1] + $q * $this->H[$i][$n]) / $x; - $this->H[$i+1][$n] = (-$sa - $w * $this->H[$i][$n] - $q * $this->H[$i][$n-1]) / $x; - } else { - $this->cdiv(-$r - $y * $this->H[$i][$n-1], -$s - $y * $this->H[$i][$n], $z, $q); - $this->H[$i+1][$n-1] = $this->cdivr; - $this->H[$i+1][$n] = $this->cdivi; - } - } - // Overflow control - $t = max(abs($this->H[$i][$n-1]), abs($this->H[$i][$n])); - if (($eps * $t) * $t > 1) { - for ($j = $i; $j <= $n; ++$j) { - $this->H[$j][$n-1] = $this->H[$j][$n-1] / $t; - $this->H[$j][$n] = $this->H[$j][$n] / $t; - } - } - } // end else - } // end for - } // end else for complex case - } // end for - - // Vectors of isolated roots - for ($i = 0; $i < $nn; ++$i) { - if ($i < $low | $i > $high) { - for ($j = $i; $j < $nn; ++$j) { - $this->V[$i][$j] = $this->H[$i][$j]; - } - } - } - - // Back transformation to get eigenvectors of original matrix - for ($j = $nn-1; $j >= $low; --$j) { - for ($i = $low; $i <= $high; ++$i) { - $z = 0.0; - for ($k = $low; $k <= min($j, $high); ++$k) { - $z = $z + $this->V[$i][$k] * $this->H[$k][$j]; - } - $this->V[$i][$j] = $z; - } - } - } // end hqr2 - - /** - * Constructor: Check for symmetry, then construct the eigenvalue decomposition - * - * @access public - * @param A Square matrix - * @return Structure to access D and V. - */ - public function __construct($Arg) - { - $this->A = $Arg->getArray(); - $this->n = $Arg->getColumnDimension(); - - $issymmetric = true; - for ($j = 0; ($j < $this->n) & $issymmetric; ++$j) { - for ($i = 0; ($i < $this->n) & $issymmetric; ++$i) { - $issymmetric = ($this->A[$i][$j] == $this->A[$j][$i]); - } - } - - if ($issymmetric) { - $this->V = $this->A; - // Tridiagonalize. - $this->tred2(); - // Diagonalize. - $this->tql2(); - } else { - $this->H = $this->A; - $this->ort = array(); - // Reduce to Hessenberg form. - $this->orthes(); - // Reduce Hessenberg to real Schur form. - $this->hqr2(); - } - } - - /** - * Return the eigenvector matrix - * - * @access public - * @return V - */ - public function getV() - { - return new Matrix($this->V, $this->n, $this->n); - } - - /** - * Return the real parts of the eigenvalues - * - * @access public - * @return real(diag(D)) - */ - public function getRealEigenvalues() - { - return $this->d; - } - - /** - * Return the imaginary parts of the eigenvalues - * - * @access public - * @return imag(diag(D)) - */ - public function getImagEigenvalues() - { - return $this->e; - } - - /** - * Return the block diagonal eigenvalue matrix - * - * @access public - * @return D - */ - public function getD() - { - for ($i = 0; $i < $this->n; ++$i) { - $D[$i] = array_fill(0, $this->n, 0.0); - $D[$i][$i] = $this->d[$i]; - if ($this->e[$i] == 0) { - continue; - } - $o = ($this->e[$i] > 0) ? $i + 1 : $i - 1; - $D[$i][$o] = $this->e[$i]; - } - return new Matrix($D); - } -} diff --git a/Utils/PHPExcel/Shared/JAMA/LUDecomposition.php b/Utils/PHPExcel/Shared/JAMA/LUDecomposition.php deleted file mode 100644 index 2505d92..0000000 --- a/Utils/PHPExcel/Shared/JAMA/LUDecomposition.php +++ /dev/null @@ -1,257 +0,0 @@ -<?php -/** - * @package JAMA - * - * For an m-by-n matrix A with m >= n, the LU decomposition is an m-by-n - * unit lower triangular matrix L, an n-by-n upper triangular matrix U, - * and a permutation vector piv of length m so that A(piv,:) = L*U. - * If m < n, then L is m-by-m and U is m-by-n. - * - * The LU decompostion with pivoting always exists, even if the matrix is - * singular, so the constructor will never fail. The primary use of the - * LU decomposition is in the solution of square systems of simultaneous - * linear equations. This will fail if isNonsingular() returns false. - * - * @author Paul Meagher - * @author Bartosz Matosiuk - * @author Michael Bommarito - * @version 1.1 - * @license PHP v3.0 - */ -class PHPExcel_Shared_JAMA_LUDecomposition -{ - const MATRIX_SINGULAR_EXCEPTION = "Can only perform operation on singular matrix."; - const MATRIX_SQUARE_EXCEPTION = "Mismatched Row dimension"; - - /** - * Decomposition storage - * @var array - */ - private $LU = array(); - - /** - * Row dimension. - * @var int - */ - private $m; - - /** - * Column dimension. - * @var int - */ - private $n; - - /** - * Pivot sign. - * @var int - */ - private $pivsign; - - /** - * Internal storage of pivot vector. - * @var array - */ - private $piv = array(); - - /** - * LU Decomposition constructor. - * - * @param $A Rectangular matrix - * @return Structure to access L, U and piv. - */ - public function __construct($A) - { - if ($A instanceof PHPExcel_Shared_JAMA_Matrix) { - // Use a "left-looking", dot-product, Crout/Doolittle algorithm. - $this->LU = $A->getArray(); - $this->m = $A->getRowDimension(); - $this->n = $A->getColumnDimension(); - for ($i = 0; $i < $this->m; ++$i) { - $this->piv[$i] = $i; - } - $this->pivsign = 1; - $LUrowi = $LUcolj = array(); - - // Outer loop. - for ($j = 0; $j < $this->n; ++$j) { - // Make a copy of the j-th column to localize references. - for ($i = 0; $i < $this->m; ++$i) { - $LUcolj[$i] = &$this->LU[$i][$j]; - } - // Apply previous transformations. - for ($i = 0; $i < $this->m; ++$i) { - $LUrowi = $this->LU[$i]; - // Most of the time is spent in the following dot product. - $kmax = min($i, $j); - $s = 0.0; - for ($k = 0; $k < $kmax; ++$k) { - $s += $LUrowi[$k] * $LUcolj[$k]; - } - $LUrowi[$j] = $LUcolj[$i] -= $s; - } - // Find pivot and exchange if necessary. - $p = $j; - for ($i = $j+1; $i < $this->m; ++$i) { - if (abs($LUcolj[$i]) > abs($LUcolj[$p])) { - $p = $i; - } - } - if ($p != $j) { - for ($k = 0; $k < $this->n; ++$k) { - $t = $this->LU[$p][$k]; - $this->LU[$p][$k] = $this->LU[$j][$k]; - $this->LU[$j][$k] = $t; - } - $k = $this->piv[$p]; - $this->piv[$p] = $this->piv[$j]; - $this->piv[$j] = $k; - $this->pivsign = $this->pivsign * -1; - } - // Compute multipliers. - if (($j < $this->m) && ($this->LU[$j][$j] != 0.0)) { - for ($i = $j+1; $i < $this->m; ++$i) { - $this->LU[$i][$j] /= $this->LU[$j][$j]; - } - } - } - } else { - throw new PHPExcel_Calculation_Exception(PHPExcel_Shared_JAMA_Matrix::ARGUMENT_TYPE_EXCEPTION); - } - } // function __construct() - - /** - * Get lower triangular factor. - * - * @return array Lower triangular factor - */ - public function getL() - { - for ($i = 0; $i < $this->m; ++$i) { - for ($j = 0; $j < $this->n; ++$j) { - if ($i > $j) { - $L[$i][$j] = $this->LU[$i][$j]; - } elseif ($i == $j) { - $L[$i][$j] = 1.0; - } else { - $L[$i][$j] = 0.0; - } - } - } - return new PHPExcel_Shared_JAMA_Matrix($L); - } // function getL() - - /** - * Get upper triangular factor. - * - * @return array Upper triangular factor - */ - public function getU() - { - for ($i = 0; $i < $this->n; ++$i) { - for ($j = 0; $j < $this->n; ++$j) { - if ($i <= $j) { - $U[$i][$j] = $this->LU[$i][$j]; - } else { - $U[$i][$j] = 0.0; - } - } - } - return new PHPExcel_Shared_JAMA_Matrix($U); - } // function getU() - - /** - * Return pivot permutation vector. - * - * @return array Pivot vector - */ - public function getPivot() - { - return $this->piv; - } // function getPivot() - - /** - * Alias for getPivot - * - * @see getPivot - */ - public function getDoublePivot() - { - return $this->getPivot(); - } // function getDoublePivot() - - /** - * Is the matrix nonsingular? - * - * @return true if U, and hence A, is nonsingular. - */ - public function isNonsingular() - { - for ($j = 0; $j < $this->n; ++$j) { - if ($this->LU[$j][$j] == 0) { - return false; - } - } - return true; - } // function isNonsingular() - - /** - * Count determinants - * - * @return array d matrix deterninat - */ - public function det() - { - if ($this->m == $this->n) { - $d = $this->pivsign; - for ($j = 0; $j < $this->n; ++$j) { - $d *= $this->LU[$j][$j]; - } - return $d; - } else { - throw new PHPExcel_Calculation_Exception(PHPExcel_Shared_JAMA_Matrix::MATRIX_DIMENSION_EXCEPTION); - } - } // function det() - - /** - * Solve A*X = B - * - * @param $B A Matrix with as many rows as A and any number of columns. - * @return X so that L*U*X = B(piv,:) - * @PHPExcel_Calculation_Exception IllegalArgumentException Matrix row dimensions must agree. - * @PHPExcel_Calculation_Exception RuntimeException Matrix is singular. - */ - public function solve($B) - { - if ($B->getRowDimension() == $this->m) { - if ($this->isNonsingular()) { - // Copy right hand side with pivoting - $nx = $B->getColumnDimension(); - $X = $B->getMatrix($this->piv, 0, $nx-1); - // Solve L*Y = B(piv,:) - for ($k = 0; $k < $this->n; ++$k) { - for ($i = $k+1; $i < $this->n; ++$i) { - for ($j = 0; $j < $nx; ++$j) { - $X->A[$i][$j] -= $X->A[$k][$j] * $this->LU[$i][$k]; - } - } - } - // Solve U*X = Y; - for ($k = $this->n-1; $k >= 0; --$k) { - for ($j = 0; $j < $nx; ++$j) { - $X->A[$k][$j] /= $this->LU[$k][$k]; - } - for ($i = 0; $i < $k; ++$i) { - for ($j = 0; $j < $nx; ++$j) { - $X->A[$i][$j] -= $X->A[$k][$j] * $this->LU[$i][$k]; - } - } - } - return $X; - } else { - throw new PHPExcel_Calculation_Exception(self::MATRIX_SINGULAR_EXCEPTION); - } - } else { - throw new PHPExcel_Calculation_Exception(self::MATRIX_SQUARE_EXCEPTION); - } - } -} diff --git a/Utils/PHPExcel/Shared/JAMA/Matrix.php b/Utils/PHPExcel/Shared/JAMA/Matrix.php deleted file mode 100644 index 82fb0fb..0000000 --- a/Utils/PHPExcel/Shared/JAMA/Matrix.php +++ /dev/null @@ -1,1159 +0,0 @@ -<?php -/** - * @package JAMA - */ - -/** PHPExcel root directory */ -if (!defined('PHPEXCEL_ROOT')) { - /** - * @ignore - */ - define('PHPEXCEL_ROOT', dirname(__FILE__) . '/../../../'); - require(PHPEXCEL_ROOT . 'PHPExcel/Autoloader.php'); -} - - -/* - * Matrix class - * - * @author Paul Meagher - * @author Michael Bommarito - * @author Lukasz Karapuda - * @author Bartek Matosiuk - * @version 1.8 - * @license PHP v3.0 - * @see http://math.nist.gov/javanumerics/jama/ - */ -class PHPExcel_Shared_JAMA_Matrix -{ - const POLYMORPHIC_ARGUMENT_EXCEPTION = "Invalid argument pattern for polymorphic function."; - const ARGUMENT_TYPE_EXCEPTION = "Invalid argument type."; - const ARGUMENT_BOUNDS_EXCEPTION = "Invalid argument range."; - const MATRIX_DIMENSION_EXCEPTION = "Matrix dimensions are not equal."; - const ARRAY_LENGTH_EXCEPTION = "Array length must be a multiple of m."; - - /** - * Matrix storage - * - * @var array - * @access public - */ - public $A = array(); - - /** - * Matrix row dimension - * - * @var int - * @access private - */ - private $m; - - /** - * Matrix column dimension - * - * @var int - * @access private - */ - private $n; - - /** - * Polymorphic constructor - * - * As PHP has no support for polymorphic constructors, we hack our own sort of polymorphism using func_num_args, func_get_arg, and gettype. In essence, we're just implementing a simple RTTI filter and calling the appropriate constructor. - */ - public function __construct() - { - if (func_num_args() > 0) { - $args = func_get_args(); - $match = implode(",", array_map('gettype', $args)); - - switch ($match) { - //Rectangular matrix - m x n initialized from 2D array - case 'array': - $this->m = count($args[0]); - $this->n = count($args[0][0]); - $this->A = $args[0]; - break; - //Square matrix - n x n - case 'integer': - $this->m = $args[0]; - $this->n = $args[0]; - $this->A = array_fill(0, $this->m, array_fill(0, $this->n, 0)); - break; - //Rectangular matrix - m x n - case 'integer,integer': - $this->m = $args[0]; - $this->n = $args[1]; - $this->A = array_fill(0, $this->m, array_fill(0, $this->n, 0)); - break; - //Rectangular matrix - m x n initialized from packed array - case 'array,integer': - $this->m = $args[1]; - if ($this->m != 0) { - $this->n = count($args[0]) / $this->m; - } else { - $this->n = 0; - } - if (($this->m * $this->n) == count($args[0])) { - for ($i = 0; $i < $this->m; ++$i) { - for ($j = 0; $j < $this->n; ++$j) { - $this->A[$i][$j] = $args[0][$i + $j * $this->m]; - } - } - } else { - throw new PHPExcel_Calculation_Exception(self::ARRAY_LENGTH_EXCEPTION); - } - break; - default: - throw new PHPExcel_Calculation_Exception(self::POLYMORPHIC_ARGUMENT_EXCEPTION); - break; - } - } else { - throw new PHPExcel_Calculation_Exception(self::POLYMORPHIC_ARGUMENT_EXCEPTION); - } - } - - /** - * getArray - * - * @return array Matrix array - */ - public function getArray() - { - return $this->A; - } - - /** - * getRowDimension - * - * @return int Row dimension - */ - public function getRowDimension() - { - return $this->m; - } - - /** - * getColumnDimension - * - * @return int Column dimension - */ - public function getColumnDimension() - { - return $this->n; - } - - /** - * get - * - * Get the i,j-th element of the matrix. - * @param int $i Row position - * @param int $j Column position - * @return mixed Element (int/float/double) - */ - public function get($i = null, $j = null) - { - return $this->A[$i][$j]; - } - - /** - * getMatrix - * - * Get a submatrix - * @param int $i0 Initial row index - * @param int $iF Final row index - * @param int $j0 Initial column index - * @param int $jF Final column index - * @return Matrix Submatrix - */ - public function getMatrix() - { - if (func_num_args() > 0) { - $args = func_get_args(); - $match = implode(",", array_map('gettype', $args)); - - switch ($match) { - //A($i0...; $j0...) - case 'integer,integer': - list($i0, $j0) = $args; - if ($i0 >= 0) { - $m = $this->m - $i0; - } else { - throw new PHPExcel_Calculation_Exception(self::ARGUMENT_BOUNDS_EXCEPTION); - } - if ($j0 >= 0) { - $n = $this->n - $j0; - } else { - throw new PHPExcel_Calculation_Exception(self::ARGUMENT_BOUNDS_EXCEPTION); - } - $R = new PHPExcel_Shared_JAMA_Matrix($m, $n); - for ($i = $i0; $i < $this->m; ++$i) { - for ($j = $j0; $j < $this->n; ++$j) { - $R->set($i, $j, $this->A[$i][$j]); - } - } - return $R; - break; - //A($i0...$iF; $j0...$jF) - case 'integer,integer,integer,integer': - list($i0, $iF, $j0, $jF) = $args; - if (($iF > $i0) && ($this->m >= $iF) && ($i0 >= 0)) { - $m = $iF - $i0; - } else { - throw new PHPExcel_Calculation_Exception(self::ARGUMENT_BOUNDS_EXCEPTION); - } - if (($jF > $j0) && ($this->n >= $jF) && ($j0 >= 0)) { - $n = $jF - $j0; - } else { - throw new PHPExcel_Calculation_Exception(self::ARGUMENT_BOUNDS_EXCEPTION); - } - $R = new PHPExcel_Shared_JAMA_Matrix($m+1, $n+1); - for ($i = $i0; $i <= $iF; ++$i) { - for ($j = $j0; $j <= $jF; ++$j) { - $R->set($i - $i0, $j - $j0, $this->A[$i][$j]); - } - } - return $R; - break; - //$R = array of row indices; $C = array of column indices - case 'array,array': - list($RL, $CL) = $args; - if (count($RL) > 0) { - $m = count($RL); - } else { - throw new PHPExcel_Calculation_Exception(self::ARGUMENT_BOUNDS_EXCEPTION); - } - if (count($CL) > 0) { - $n = count($CL); - } else { - throw new PHPExcel_Calculation_Exception(self::ARGUMENT_BOUNDS_EXCEPTION); - } - $R = new PHPExcel_Shared_JAMA_Matrix($m, $n); - for ($i = 0; $i < $m; ++$i) { - for ($j = 0; $j < $n; ++$j) { - $R->set($i - $i0, $j - $j0, $this->A[$RL[$i]][$CL[$j]]); - } - } - return $R; - break; - //$RL = array of row indices; $CL = array of column indices - case 'array,array': - list($RL, $CL) = $args; - if (count($RL) > 0) { - $m = count($RL); - } else { - throw new PHPExcel_Calculation_Exception(self::ARGUMENT_BOUNDS_EXCEPTION); - } - if (count($CL) > 0) { - $n = count($CL); - } else { - throw new PHPExcel_Calculation_Exception(self::ARGUMENT_BOUNDS_EXCEPTION); - } - $R = new PHPExcel_Shared_JAMA_Matrix($m, $n); - for ($i = 0; $i < $m; ++$i) { - for ($j = 0; $j < $n; ++$j) { - $R->set($i, $j, $this->A[$RL[$i]][$CL[$j]]); - } - } - return $R; - break; - //A($i0...$iF); $CL = array of column indices - case 'integer,integer,array': - list($i0, $iF, $CL) = $args; - if (($iF > $i0) && ($this->m >= $iF) && ($i0 >= 0)) { - $m = $iF - $i0; - } else { - throw new PHPExcel_Calculation_Exception(self::ARGUMENT_BOUNDS_EXCEPTION); - } - if (count($CL) > 0) { - $n = count($CL); - } else { - throw new PHPExcel_Calculation_Exception(self::ARGUMENT_BOUNDS_EXCEPTION); - } - $R = new PHPExcel_Shared_JAMA_Matrix($m, $n); - for ($i = $i0; $i < $iF; ++$i) { - for ($j = 0; $j < $n; ++$j) { - $R->set($i - $i0, $j, $this->A[$RL[$i]][$j]); - } - } - return $R; - break; - //$RL = array of row indices - case 'array,integer,integer': - list($RL, $j0, $jF) = $args; - if (count($RL) > 0) { - $m = count($RL); - } else { - throw new PHPExcel_Calculation_Exception(self::ARGUMENT_BOUNDS_EXCEPTION); - } - if (($jF >= $j0) && ($this->n >= $jF) && ($j0 >= 0)) { - $n = $jF - $j0; - } else { - throw new PHPExcel_Calculation_Exception(self::ARGUMENT_BOUNDS_EXCEPTION); - } - $R = new PHPExcel_Shared_JAMA_Matrix($m, $n+1); - for ($i = 0; $i < $m; ++$i) { - for ($j = $j0; $j <= $jF; ++$j) { - $R->set($i, $j - $j0, $this->A[$RL[$i]][$j]); - } - } - return $R; - break; - default: - throw new PHPExcel_Calculation_Exception(self::POLYMORPHIC_ARGUMENT_EXCEPTION); - break; - } - } else { - throw new PHPExcel_Calculation_Exception(self::POLYMORPHIC_ARGUMENT_EXCEPTION); - } - } - - /** - * checkMatrixDimensions - * - * Is matrix B the same size? - * @param Matrix $B Matrix B - * @return boolean - */ - public function checkMatrixDimensions($B = null) - { - if ($B instanceof PHPExcel_Shared_JAMA_Matrix) { - if (($this->m == $B->getRowDimension()) && ($this->n == $B->getColumnDimension())) { - return true; - } else { - throw new PHPExcel_Calculation_Exception(self::MATRIX_DIMENSION_EXCEPTION); - } - } else { - throw new PHPExcel_Calculation_Exception(self::ARGUMENT_TYPE_EXCEPTION); - } - } // function checkMatrixDimensions() - - /** - * set - * - * Set the i,j-th element of the matrix. - * @param int $i Row position - * @param int $j Column position - * @param mixed $c Int/float/double value - * @return mixed Element (int/float/double) - */ - public function set($i = null, $j = null, $c = null) - { - // Optimized set version just has this - $this->A[$i][$j] = $c; - } // function set() - - /** - * identity - * - * Generate an identity matrix. - * @param int $m Row dimension - * @param int $n Column dimension - * @return Matrix Identity matrix - */ - public function identity($m = null, $n = null) - { - return $this->diagonal($m, $n, 1); - } - - /** - * diagonal - * - * Generate a diagonal matrix - * @param int $m Row dimension - * @param int $n Column dimension - * @param mixed $c Diagonal value - * @return Matrix Diagonal matrix - */ - public function diagonal($m = null, $n = null, $c = 1) - { - $R = new PHPExcel_Shared_JAMA_Matrix($m, $n); - for ($i = 0; $i < $m; ++$i) { - $R->set($i, $i, $c); - } - return $R; - } - - /** - * getMatrixByRow - * - * Get a submatrix by row index/range - * @param int $i0 Initial row index - * @param int $iF Final row index - * @return Matrix Submatrix - */ - public function getMatrixByRow($i0 = null, $iF = null) - { - if (is_int($i0)) { - if (is_int($iF)) { - return $this->getMatrix($i0, 0, $iF + 1, $this->n); - } else { - return $this->getMatrix($i0, 0, $i0 + 1, $this->n); - } - } else { - throw new PHPExcel_Calculation_Exception(self::ARGUMENT_TYPE_EXCEPTION); - } - } - - /** - * getMatrixByCol - * - * Get a submatrix by column index/range - * @param int $i0 Initial column index - * @param int $iF Final column index - * @return Matrix Submatrix - */ - public function getMatrixByCol($j0 = null, $jF = null) - { - if (is_int($j0)) { - if (is_int($jF)) { - return $this->getMatrix(0, $j0, $this->m, $jF + 1); - } else { - return $this->getMatrix(0, $j0, $this->m, $j0 + 1); - } - } else { - throw new PHPExcel_Calculation_Exception(self::ARGUMENT_TYPE_EXCEPTION); - } - } - - /** - * transpose - * - * Tranpose matrix - * @return Matrix Transposed matrix - */ - public function transpose() - { - $R = new PHPExcel_Shared_JAMA_Matrix($this->n, $this->m); - for ($i = 0; $i < $this->m; ++$i) { - for ($j = 0; $j < $this->n; ++$j) { - $R->set($j, $i, $this->A[$i][$j]); - } - } - return $R; - } // function transpose() - - /** - * trace - * - * Sum of diagonal elements - * @return float Sum of diagonal elements - */ - public function trace() - { - $s = 0; - $n = min($this->m, $this->n); - for ($i = 0; $i < $n; ++$i) { - $s += $this->A[$i][$i]; - } - return $s; - } - - /** - * uminus - * - * Unary minus matrix -A - * @return Matrix Unary minus matrix - */ - public function uminus() - { - } - - /** - * plus - * - * A + B - * @param mixed $B Matrix/Array - * @return Matrix Sum - */ - public function plus() - { - if (func_num_args() > 0) { - $args = func_get_args(); - $match = implode(",", array_map('gettype', $args)); - - switch ($match) { - case 'object': - if ($args[0] instanceof PHPExcel_Shared_JAMA_Matrix) { - $M = $args[0]; - } else { - throw new PHPExcel_Calculation_Exception(self::ARGUMENT_TYPE_EXCEPTION); - } - break; - case 'array': - $M = new PHPExcel_Shared_JAMA_Matrix($args[0]); - break; - default: - throw new PHPExcel_Calculation_Exception(self::POLYMORPHIC_ARGUMENT_EXCEPTION); - break; - } - $this->checkMatrixDimensions($M); - for ($i = 0; $i < $this->m; ++$i) { - for ($j = 0; $j < $this->n; ++$j) { - $M->set($i, $j, $M->get($i, $j) + $this->A[$i][$j]); - } - } - return $M; - } else { - throw new PHPExcel_Calculation_Exception(self::POLYMORPHIC_ARGUMENT_EXCEPTION); - } - } - - /** - * plusEquals - * - * A = A + B - * @param mixed $B Matrix/Array - * @return Matrix Sum - */ - public function plusEquals() - { - if (func_num_args() > 0) { - $args = func_get_args(); - $match = implode(",", array_map('gettype', $args)); - - switch ($match) { - case 'object': - if ($args[0] instanceof PHPExcel_Shared_JAMA_Matrix) { - $M = $args[0]; - } else { - throw new PHPExcel_Calculation_Exception(self::ARGUMENT_TYPE_EXCEPTION); - } - break; - case 'array': - $M = new PHPExcel_Shared_JAMA_Matrix($args[0]); - break; - default: - throw new PHPExcel_Calculation_Exception(self::POLYMORPHIC_ARGUMENT_EXCEPTION); - break; - } - $this->checkMatrixDimensions($M); - for ($i = 0; $i < $this->m; ++$i) { - for ($j = 0; $j < $this->n; ++$j) { - $validValues = true; - $value = $M->get($i, $j); - if ((is_string($this->A[$i][$j])) && (strlen($this->A[$i][$j]) > 0) && (!is_numeric($this->A[$i][$j]))) { - $this->A[$i][$j] = trim($this->A[$i][$j], '"'); - $validValues &= PHPExcel_Shared_String::convertToNumberIfFraction($this->A[$i][$j]); - } - if ((is_string($value)) && (strlen($value) > 0) && (!is_numeric($value))) { - $value = trim($value, '"'); - $validValues &= PHPExcel_Shared_String::convertToNumberIfFraction($value); - } - if ($validValues) { - $this->A[$i][$j] += $value; - } else { - $this->A[$i][$j] = PHPExcel_Calculation_Functions::NaN(); - } - } - } - return $this; - } else { - throw new PHPExcel_Calculation_Exception(self::POLYMORPHIC_ARGUMENT_EXCEPTION); - } - } - - /** - * minus - * - * A - B - * @param mixed $B Matrix/Array - * @return Matrix Sum - */ - public function minus() - { - if (func_num_args() > 0) { - $args = func_get_args(); - $match = implode(",", array_map('gettype', $args)); - - switch ($match) { - case 'object': - if ($args[0] instanceof PHPExcel_Shared_JAMA_Matrix) { - $M = $args[0]; - } else { - throw new PHPExcel_Calculation_Exception(self::ARGUMENT_TYPE_EXCEPTION); - } - break; - case 'array': - $M = new PHPExcel_Shared_JAMA_Matrix($args[0]); - break; - default: - throw new PHPExcel_Calculation_Exception(self::POLYMORPHIC_ARGUMENT_EXCEPTION); - break; - } - $this->checkMatrixDimensions($M); - for ($i = 0; $i < $this->m; ++$i) { - for ($j = 0; $j < $this->n; ++$j) { - $M->set($i, $j, $M->get($i, $j) - $this->A[$i][$j]); - } - } - return $M; - } else { - throw new PHPExcel_Calculation_Exception(self::POLYMORPHIC_ARGUMENT_EXCEPTION); - } - } - - /** - * minusEquals - * - * A = A - B - * @param mixed $B Matrix/Array - * @return Matrix Sum - */ - public function minusEquals() - { - if (func_num_args() > 0) { - $args = func_get_args(); - $match = implode(",", array_map('gettype', $args)); - - switch ($match) { - case 'object': - if ($args[0] instanceof PHPExcel_Shared_JAMA_Matrix) { - $M = $args[0]; - } else { - throw new PHPExcel_Calculation_Exception(self::ARGUMENT_TYPE_EXCEPTION); - } - break; - case 'array': - $M = new PHPExcel_Shared_JAMA_Matrix($args[0]); - break; - default: - throw new PHPExcel_Calculation_Exception(self::POLYMORPHIC_ARGUMENT_EXCEPTION); - break; - } - $this->checkMatrixDimensions($M); - for ($i = 0; $i < $this->m; ++$i) { - for ($j = 0; $j < $this->n; ++$j) { - $validValues = true; - $value = $M->get($i, $j); - if ((is_string($this->A[$i][$j])) && (strlen($this->A[$i][$j]) > 0) && (!is_numeric($this->A[$i][$j]))) { - $this->A[$i][$j] = trim($this->A[$i][$j], '"'); - $validValues &= PHPExcel_Shared_String::convertToNumberIfFraction($this->A[$i][$j]); - } - if ((is_string($value)) && (strlen($value) > 0) && (!is_numeric($value))) { - $value = trim($value, '"'); - $validValues &= PHPExcel_Shared_String::convertToNumberIfFraction($value); - } - if ($validValues) { - $this->A[$i][$j] -= $value; - } else { - $this->A[$i][$j] = PHPExcel_Calculation_Functions::NaN(); - } - } - } - return $this; - } else { - throw new PHPExcel_Calculation_Exception(self::POLYMORPHIC_ARGUMENT_EXCEPTION); - } - } - - /** - * arrayTimes - * - * Element-by-element multiplication - * Cij = Aij * Bij - * @param mixed $B Matrix/Array - * @return Matrix Matrix Cij - */ - public function arrayTimes() - { - if (func_num_args() > 0) { - $args = func_get_args(); - $match = implode(",", array_map('gettype', $args)); - - switch ($match) { - case 'object': - if ($args[0] instanceof PHPExcel_Shared_JAMA_Matrix) { - $M = $args[0]; - } else { - throw new PHPExcel_Calculation_Exception(self::ARGUMENT_TYPE_EXCEPTION); - } - break; - case 'array': - $M = new PHPExcel_Shared_JAMA_Matrix($args[0]); - break; - default: - throw new PHPExcel_Calculation_Exception(self::POLYMORPHIC_ARGUMENT_EXCEPTION); - break; - } - $this->checkMatrixDimensions($M); - for ($i = 0; $i < $this->m; ++$i) { - for ($j = 0; $j < $this->n; ++$j) { - $M->set($i, $j, $M->get($i, $j) * $this->A[$i][$j]); - } - } - return $M; - } else { - throw new PHPExcel_Calculation_Exception(self::POLYMORPHIC_ARGUMENT_EXCEPTION); - } - } - - /** - * arrayTimesEquals - * - * Element-by-element multiplication - * Aij = Aij * Bij - * @param mixed $B Matrix/Array - * @return Matrix Matrix Aij - */ - public function arrayTimesEquals() - { - if (func_num_args() > 0) { - $args = func_get_args(); - $match = implode(",", array_map('gettype', $args)); - - switch ($match) { - case 'object': - if ($args[0] instanceof PHPExcel_Shared_JAMA_Matrix) { - $M = $args[0]; - } else { - throw new PHPExcel_Calculation_Exception(self::ARGUMENT_TYPE_EXCEPTION); - } - break; - case 'array': - $M = new PHPExcel_Shared_JAMA_Matrix($args[0]); - break; - default: - throw new PHPExcel_Calculation_Exception(self::POLYMORPHIC_ARGUMENT_EXCEPTION); - break; - } - $this->checkMatrixDimensions($M); - for ($i = 0; $i < $this->m; ++$i) { - for ($j = 0; $j < $this->n; ++$j) { - $validValues = true; - $value = $M->get($i, $j); - if ((is_string($this->A[$i][$j])) && (strlen($this->A[$i][$j]) > 0) && (!is_numeric($this->A[$i][$j]))) { - $this->A[$i][$j] = trim($this->A[$i][$j], '"'); - $validValues &= PHPExcel_Shared_String::convertToNumberIfFraction($this->A[$i][$j]); - } - if ((is_string($value)) && (strlen($value) > 0) && (!is_numeric($value))) { - $value = trim($value, '"'); - $validValues &= PHPExcel_Shared_String::convertToNumberIfFraction($value); - } - if ($validValues) { - $this->A[$i][$j] *= $value; - } else { - $this->A[$i][$j] = PHPExcel_Calculation_Functions::NaN(); - } - } - } - return $this; - } else { - throw new PHPExcel_Calculation_Exception(self::POLYMORPHIC_ARGUMENT_EXCEPTION); - } - } - - /** - * arrayRightDivide - * - * Element-by-element right division - * A / B - * @param Matrix $B Matrix B - * @return Matrix Division result - */ - public function arrayRightDivide() - { - if (func_num_args() > 0) { - $args = func_get_args(); - $match = implode(",", array_map('gettype', $args)); - - switch ($match) { - case 'object': - if ($args[0] instanceof PHPExcel_Shared_JAMA_Matrix) { - $M = $args[0]; - } else { - throw new PHPExcel_Calculation_Exception(self::ARGUMENT_TYPE_EXCEPTION); - } - break; - case 'array': - $M = new PHPExcel_Shared_JAMA_Matrix($args[0]); - break; - default: - throw new PHPExcel_Calculation_Exception(self::POLYMORPHIC_ARGUMENT_EXCEPTION); - break; - } - $this->checkMatrixDimensions($M); - for ($i = 0; $i < $this->m; ++$i) { - for ($j = 0; $j < $this->n; ++$j) { - $validValues = true; - $value = $M->get($i, $j); - if ((is_string($this->A[$i][$j])) && (strlen($this->A[$i][$j]) > 0) && (!is_numeric($this->A[$i][$j]))) { - $this->A[$i][$j] = trim($this->A[$i][$j], '"'); - $validValues &= PHPExcel_Shared_String::convertToNumberIfFraction($this->A[$i][$j]); - } - if ((is_string($value)) && (strlen($value) > 0) && (!is_numeric($value))) { - $value = trim($value, '"'); - $validValues &= PHPExcel_Shared_String::convertToNumberIfFraction($value); - } - if ($validValues) { - if ($value == 0) { - // Trap for Divide by Zero error - $M->set($i, $j, '#DIV/0!'); - } else { - $M->set($i, $j, $this->A[$i][$j] / $value); - } - } else { - $M->set($i, $j, PHPExcel_Calculation_Functions::NaN()); - } - } - } - return $M; - } else { - throw new PHPExcel_Calculation_Exception(self::POLYMORPHIC_ARGUMENT_EXCEPTION); - } - } - - - /** - * arrayRightDivideEquals - * - * Element-by-element right division - * Aij = Aij / Bij - * @param mixed $B Matrix/Array - * @return Matrix Matrix Aij - */ - public function arrayRightDivideEquals() - { - if (func_num_args() > 0) { - $args = func_get_args(); - $match = implode(",", array_map('gettype', $args)); - - switch ($match) { - case 'object': - if ($args[0] instanceof PHPExcel_Shared_JAMA_Matrix) { - $M = $args[0]; - } else { - throw new PHPExcel_Calculation_Exception(self::ARGUMENT_TYPE_EXCEPTION); - } - break; - case 'array': - $M = new PHPExcel_Shared_JAMA_Matrix($args[0]); - break; - default: - throw new PHPExcel_Calculation_Exception(self::POLYMORPHIC_ARGUMENT_EXCEPTION); - break; - } - $this->checkMatrixDimensions($M); - for ($i = 0; $i < $this->m; ++$i) { - for ($j = 0; $j < $this->n; ++$j) { - $this->A[$i][$j] = $this->A[$i][$j] / $M->get($i, $j); - } - } - return $M; - } else { - throw new PHPExcel_Calculation_Exception(self::POLYMORPHIC_ARGUMENT_EXCEPTION); - } - } - - - /** - * arrayLeftDivide - * - * Element-by-element Left division - * A / B - * @param Matrix $B Matrix B - * @return Matrix Division result - */ - public function arrayLeftDivide() - { - if (func_num_args() > 0) { - $args = func_get_args(); - $match = implode(",", array_map('gettype', $args)); - - switch ($match) { - case 'object': - if ($args[0] instanceof PHPExcel_Shared_JAMA_Matrix) { - $M = $args[0]; - } else { - throw new PHPExcel_Calculation_Exception(self::ARGUMENT_TYPE_EXCEPTION); - } - break; - case 'array': - $M = new PHPExcel_Shared_JAMA_Matrix($args[0]); - break; - default: - throw new PHPExcel_Calculation_Exception(self::POLYMORPHIC_ARGUMENT_EXCEPTION); - break; - } - $this->checkMatrixDimensions($M); - for ($i = 0; $i < $this->m; ++$i) { - for ($j = 0; $j < $this->n; ++$j) { - $M->set($i, $j, $M->get($i, $j) / $this->A[$i][$j]); - } - } - return $M; - } else { - throw new PHPExcel_Calculation_Exception(self::POLYMORPHIC_ARGUMENT_EXCEPTION); - } - } - - - /** - * arrayLeftDivideEquals - * - * Element-by-element Left division - * Aij = Aij / Bij - * @param mixed $B Matrix/Array - * @return Matrix Matrix Aij - */ - public function arrayLeftDivideEquals() - { - if (func_num_args() > 0) { - $args = func_get_args(); - $match = implode(",", array_map('gettype', $args)); - - switch ($match) { - case 'object': - if ($args[0] instanceof PHPExcel_Shared_JAMA_Matrix) { - $M = $args[0]; - } else { - throw new PHPExcel_Calculation_Exception(self::ARGUMENT_TYPE_EXCEPTION); - } - break; - case 'array': - $M = new PHPExcel_Shared_JAMA_Matrix($args[0]); - break; - default: - throw new PHPExcel_Calculation_Exception(self::POLYMORPHIC_ARGUMENT_EXCEPTION); - break; - } - $this->checkMatrixDimensions($M); - for ($i = 0; $i < $this->m; ++$i) { - for ($j = 0; $j < $this->n; ++$j) { - $this->A[$i][$j] = $M->get($i, $j) / $this->A[$i][$j]; - } - } - return $M; - } else { - throw new PHPExcel_Calculation_Exception(self::POLYMORPHIC_ARGUMENT_EXCEPTION); - } - } - - - /** - * times - * - * Matrix multiplication - * @param mixed $n Matrix/Array/Scalar - * @return Matrix Product - */ - public function times() - { - if (func_num_args() > 0) { - $args = func_get_args(); - $match = implode(",", array_map('gettype', $args)); - - switch ($match) { - case 'object': - if ($args[0] instanceof PHPExcel_Shared_JAMA_Matrix) { - $B = $args[0]; - } else { - throw new PHPExcel_Calculation_Exception(self::ARGUMENT_TYPE_EXCEPTION); - } - if ($this->n == $B->m) { - $C = new PHPExcel_Shared_JAMA_Matrix($this->m, $B->n); - for ($j = 0; $j < $B->n; ++$j) { - for ($k = 0; $k < $this->n; ++$k) { - $Bcolj[$k] = $B->A[$k][$j]; - } - for ($i = 0; $i < $this->m; ++$i) { - $Arowi = $this->A[$i]; - $s = 0; - for ($k = 0; $k < $this->n; ++$k) { - $s += $Arowi[$k] * $Bcolj[$k]; - } - $C->A[$i][$j] = $s; - } - } - return $C; - } else { - throw new PHPExcel_Calculation_Exception(JAMAError(MatrixDimensionMismatch)); - } - break; - case 'array': - $B = new PHPExcel_Shared_JAMA_Matrix($args[0]); - if ($this->n == $B->m) { - $C = new PHPExcel_Shared_JAMA_Matrix($this->m, $B->n); - for ($i = 0; $i < $C->m; ++$i) { - for ($j = 0; $j < $C->n; ++$j) { - $s = "0"; - for ($k = 0; $k < $C->n; ++$k) { - $s += $this->A[$i][$k] * $B->A[$k][$j]; - } - $C->A[$i][$j] = $s; - } - } - return $C; - } else { - throw new PHPExcel_Calculation_Exception(JAMAError(MatrixDimensionMismatch)); - } - return $M; - break; - case 'integer': - $C = new PHPExcel_Shared_JAMA_Matrix($this->A); - for ($i = 0; $i < $C->m; ++$i) { - for ($j = 0; $j < $C->n; ++$j) { - $C->A[$i][$j] *= $args[0]; - } - } - return $C; - break; - case 'double': - $C = new PHPExcel_Shared_JAMA_Matrix($this->m, $this->n); - for ($i = 0; $i < $C->m; ++$i) { - for ($j = 0; $j < $C->n; ++$j) { - $C->A[$i][$j] = $args[0] * $this->A[$i][$j]; - } - } - return $C; - break; - case 'float': - $C = new PHPExcel_Shared_JAMA_Matrix($this->A); - for ($i = 0; $i < $C->m; ++$i) { - for ($j = 0; $j < $C->n; ++$j) { - $C->A[$i][$j] *= $args[0]; - } - } - return $C; - break; - default: - throw new PHPExcel_Calculation_Exception(self::POLYMORPHIC_ARGUMENT_EXCEPTION); - break; - } - } else { - throw new PHPExcel_Calculation_Exception(self::POLYMORPHIC_ARGUMENT_EXCEPTION); - } - } - - /** - * power - * - * A = A ^ B - * @param mixed $B Matrix/Array - * @return Matrix Sum - */ - public function power() - { - if (func_num_args() > 0) { - $args = func_get_args(); - $match = implode(",", array_map('gettype', $args)); - - switch ($match) { - case 'object': - if ($args[0] instanceof PHPExcel_Shared_JAMA_Matrix) { - $M = $args[0]; - } else { - throw new PHPExcel_Calculation_Exception(self::ARGUMENT_TYPE_EXCEPTION); - } - break; - case 'array': - $M = new PHPExcel_Shared_JAMA_Matrix($args[0]); - break; - default: - throw new PHPExcel_Calculation_Exception(self::POLYMORPHIC_ARGUMENT_EXCEPTION); - break; - } - $this->checkMatrixDimensions($M); - for ($i = 0; $i < $this->m; ++$i) { - for ($j = 0; $j < $this->n; ++$j) { - $validValues = true; - $value = $M->get($i, $j); - if ((is_string($this->A[$i][$j])) && (strlen($this->A[$i][$j]) > 0) && (!is_numeric($this->A[$i][$j]))) { - $this->A[$i][$j] = trim($this->A[$i][$j], '"'); - $validValues &= PHPExcel_Shared_String::convertToNumberIfFraction($this->A[$i][$j]); - } - if ((is_string($value)) && (strlen($value) > 0) && (!is_numeric($value))) { - $value = trim($value, '"'); - $validValues &= PHPExcel_Shared_String::convertToNumberIfFraction($value); - } - if ($validValues) { - $this->A[$i][$j] = pow($this->A[$i][$j], $value); - } else { - $this->A[$i][$j] = PHPExcel_Calculation_Functions::NaN(); - } - } - } - return $this; - } else { - throw new PHPExcel_Calculation_Exception(self::POLYMORPHIC_ARGUMENT_EXCEPTION); - } - } - - /** - * concat - * - * A = A & B - * @param mixed $B Matrix/Array - * @return Matrix Sum - */ - public function concat() - { - if (func_num_args() > 0) { - $args = func_get_args(); - $match = implode(",", array_map('gettype', $args)); - - switch ($match) { - case 'object': - if ($args[0] instanceof PHPExcel_Shared_JAMA_Matrix) { - $M = $args[0]; - } else { - throw new PHPExcel_Calculation_Exception(self::ARGUMENT_TYPE_EXCEPTION); - } - case 'array': - $M = new PHPExcel_Shared_JAMA_Matrix($args[0]); - break; - default: - throw new PHPExcel_Calculation_Exception(self::POLYMORPHIC_ARGUMENT_EXCEPTION); - break; - } - $this->checkMatrixDimensions($M); - for ($i = 0; $i < $this->m; ++$i) { - for ($j = 0; $j < $this->n; ++$j) { - $this->A[$i][$j] = trim($this->A[$i][$j], '"').trim($M->get($i, $j), '"'); - } - } - return $this; - } else { - throw new PHPExcel_Calculation_Exception(self::POLYMORPHIC_ARGUMENT_EXCEPTION); - } - } - - /** - * Solve A*X = B. - * - * @param Matrix $B Right hand side - * @return Matrix ... Solution if A is square, least squares solution otherwise - */ - public function solve($B) - { - if ($this->m == $this->n) { - $LU = new PHPExcel_Shared_JAMA_LUDecomposition($this); - return $LU->solve($B); - } else { - $QR = new PHPExcel_Shared_JAMA_QRDecomposition($this); - return $QR->solve($B); - } - } - - /** - * Matrix inverse or pseudoinverse. - * - * @return Matrix ... Inverse(A) if A is square, pseudoinverse otherwise. - */ - public function inverse() - { - return $this->solve($this->identity($this->m, $this->m)); - } - - /** - * det - * - * Calculate determinant - * @return float Determinant - */ - public function det() - { - $L = new PHPExcel_Shared_JAMA_LUDecomposition($this); - return $L->det(); - } -} diff --git a/Utils/PHPExcel/Shared/JAMA/QRDecomposition.php b/Utils/PHPExcel/Shared/JAMA/QRDecomposition.php deleted file mode 100644 index 1e43c7c..0000000 --- a/Utils/PHPExcel/Shared/JAMA/QRDecomposition.php +++ /dev/null @@ -1,235 +0,0 @@ -<?php -/** - * @package JAMA - * - * For an m-by-n matrix A with m >= n, the QR decomposition is an m-by-n - * orthogonal matrix Q and an n-by-n upper triangular matrix R so that - * A = Q*R. - * - * The QR decompostion always exists, even if the matrix does not have - * full rank, so the constructor will never fail. The primary use of the - * QR decomposition is in the least squares solution of nonsquare systems - * of simultaneous linear equations. This will fail if isFullRank() - * returns false. - * - * @author Paul Meagher - * @license PHP v3.0 - * @version 1.1 - */ -class PHPExcel_Shared_JAMA_QRDecomposition -{ - const MATRIX_RANK_EXCEPTION = "Can only perform operation on full-rank matrix."; - - /** - * Array for internal storage of decomposition. - * @var array - */ - private $QR = array(); - - /** - * Row dimension. - * @var integer - */ - private $m; - - /** - * Column dimension. - * @var integer - */ - private $n; - - /** - * Array for internal storage of diagonal of R. - * @var array - */ - private $Rdiag = array(); - - - /** - * QR Decomposition computed by Householder reflections. - * - * @param matrix $A Rectangular matrix - * @return Structure to access R and the Householder vectors and compute Q. - */ - public function __construct($A) - { - if ($A instanceof PHPExcel_Shared_JAMA_Matrix) { - // Initialize. - $this->QR = $A->getArrayCopy(); - $this->m = $A->getRowDimension(); - $this->n = $A->getColumnDimension(); - // Main loop. - for ($k = 0; $k < $this->n; ++$k) { - // Compute 2-norm of k-th column without under/overflow. - $nrm = 0.0; - for ($i = $k; $i < $this->m; ++$i) { - $nrm = hypo($nrm, $this->QR[$i][$k]); - } - if ($nrm != 0.0) { - // Form k-th Householder vector. - if ($this->QR[$k][$k] < 0) { - $nrm = -$nrm; - } - for ($i = $k; $i < $this->m; ++$i) { - $this->QR[$i][$k] /= $nrm; - } - $this->QR[$k][$k] += 1.0; - // Apply transformation to remaining columns. - for ($j = $k+1; $j < $this->n; ++$j) { - $s = 0.0; - for ($i = $k; $i < $this->m; ++$i) { - $s += $this->QR[$i][$k] * $this->QR[$i][$j]; - } - $s = -$s/$this->QR[$k][$k]; - for ($i = $k; $i < $this->m; ++$i) { - $this->QR[$i][$j] += $s * $this->QR[$i][$k]; - } - } - } - $this->Rdiag[$k] = -$nrm; - } - } else { - throw new PHPExcel_Calculation_Exception(PHPExcel_Shared_JAMA_Matrix::ARGUMENT_TYPE_EXCEPTION); - } - } // function __construct() - - - /** - * Is the matrix full rank? - * - * @return boolean true if R, and hence A, has full rank, else false. - */ - public function isFullRank() - { - for ($j = 0; $j < $this->n; ++$j) { - if ($this->Rdiag[$j] == 0) { - return false; - } - } - return true; - } // function isFullRank() - - /** - * Return the Householder vectors - * - * @return Matrix Lower trapezoidal matrix whose columns define the reflections - */ - public function getH() - { - for ($i = 0; $i < $this->m; ++$i) { - for ($j = 0; $j < $this->n; ++$j) { - if ($i >= $j) { - $H[$i][$j] = $this->QR[$i][$j]; - } else { - $H[$i][$j] = 0.0; - } - } - } - return new PHPExcel_Shared_JAMA_Matrix($H); - } // function getH() - - /** - * Return the upper triangular factor - * - * @return Matrix upper triangular factor - */ - public function getR() - { - for ($i = 0; $i < $this->n; ++$i) { - for ($j = 0; $j < $this->n; ++$j) { - if ($i < $j) { - $R[$i][$j] = $this->QR[$i][$j]; - } elseif ($i == $j) { - $R[$i][$j] = $this->Rdiag[$i]; - } else { - $R[$i][$j] = 0.0; - } - } - } - return new PHPExcel_Shared_JAMA_Matrix($R); - } // function getR() - - /** - * Generate and return the (economy-sized) orthogonal factor - * - * @return Matrix orthogonal factor - */ - public function getQ() - { - for ($k = $this->n-1; $k >= 0; --$k) { - for ($i = 0; $i < $this->m; ++$i) { - $Q[$i][$k] = 0.0; - } - $Q[$k][$k] = 1.0; - for ($j = $k; $j < $this->n; ++$j) { - if ($this->QR[$k][$k] != 0) { - $s = 0.0; - for ($i = $k; $i < $this->m; ++$i) { - $s += $this->QR[$i][$k] * $Q[$i][$j]; - } - $s = -$s/$this->QR[$k][$k]; - for ($i = $k; $i < $this->m; ++$i) { - $Q[$i][$j] += $s * $this->QR[$i][$k]; - } - } - } - } - /* - for($i = 0; $i < count($Q); ++$i) { - for($j = 0; $j < count($Q); ++$j) { - if (! isset($Q[$i][$j]) ) { - $Q[$i][$j] = 0; - } - } - } - */ - return new PHPExcel_Shared_JAMA_Matrix($Q); - } // function getQ() - - /** - * Least squares solution of A*X = B - * - * @param Matrix $B A Matrix with as many rows as A and any number of columns. - * @return Matrix Matrix that minimizes the two norm of Q*R*X-B. - */ - public function solve($B) - { - if ($B->getRowDimension() == $this->m) { - if ($this->isFullRank()) { - // Copy right hand side - $nx = $B->getColumnDimension(); - $X = $B->getArrayCopy(); - // Compute Y = transpose(Q)*B - for ($k = 0; $k < $this->n; ++$k) { - for ($j = 0; $j < $nx; ++$j) { - $s = 0.0; - for ($i = $k; $i < $this->m; ++$i) { - $s += $this->QR[$i][$k] * $X[$i][$j]; - } - $s = -$s/$this->QR[$k][$k]; - for ($i = $k; $i < $this->m; ++$i) { - $X[$i][$j] += $s * $this->QR[$i][$k]; - } - } - } - // Solve R*X = Y; - for ($k = $this->n-1; $k >= 0; --$k) { - for ($j = 0; $j < $nx; ++$j) { - $X[$k][$j] /= $this->Rdiag[$k]; - } - for ($i = 0; $i < $k; ++$i) { - for ($j = 0; $j < $nx; ++$j) { - $X[$i][$j] -= $X[$k][$j]* $this->QR[$i][$k]; - } - } - } - $X = new PHPExcel_Shared_JAMA_Matrix($X); - return ($X->getMatrix(0, $this->n-1, 0, $nx)); - } else { - throw new PHPExcel_Calculation_Exception(self::MATRIX_RANK_EXCEPTION); - } - } else { - throw new PHPExcel_Calculation_Exception(PHPExcel_Shared_JAMA_Matrix::MATRIX_DIMENSION_EXCEPTION); - } - } -} diff --git a/Utils/PHPExcel/Shared/JAMA/SingularValueDecomposition.php b/Utils/PHPExcel/Shared/JAMA/SingularValueDecomposition.php deleted file mode 100644 index f57d122..0000000 --- a/Utils/PHPExcel/Shared/JAMA/SingularValueDecomposition.php +++ /dev/null @@ -1,528 +0,0 @@ -<?php -/** - * @package JAMA - * - * For an m-by-n matrix A with m >= n, the singular value decomposition is - * an m-by-n orthogonal matrix U, an n-by-n diagonal matrix S, and - * an n-by-n orthogonal matrix V so that A = U*S*V'. - * - * The singular values, sigma[$k] = S[$k][$k], are ordered so that - * sigma[0] >= sigma[1] >= ... >= sigma[n-1]. - * - * The singular value decompostion always exists, so the constructor will - * never fail. The matrix condition number and the effective numerical - * rank can be computed from this decomposition. - * - * @author Paul Meagher - * @license PHP v3.0 - * @version 1.1 - */ -class SingularValueDecomposition -{ - /** - * Internal storage of U. - * @var array - */ - private $U = array(); - - /** - * Internal storage of V. - * @var array - */ - private $V = array(); - - /** - * Internal storage of singular values. - * @var array - */ - private $s = array(); - - /** - * Row dimension. - * @var int - */ - private $m; - - /** - * Column dimension. - * @var int - */ - private $n; - - /** - * Construct the singular value decomposition - * - * Derived from LINPACK code. - * - * @param $A Rectangular matrix - * @return Structure to access U, S and V. - */ - public function __construct($Arg) - { - // Initialize. - $A = $Arg->getArrayCopy(); - $this->m = $Arg->getRowDimension(); - $this->n = $Arg->getColumnDimension(); - $nu = min($this->m, $this->n); - $e = array(); - $work = array(); - $wantu = true; - $wantv = true; - $nct = min($this->m - 1, $this->n); - $nrt = max(0, min($this->n - 2, $this->m)); - - // Reduce A to bidiagonal form, storing the diagonal elements - // in s and the super-diagonal elements in e. - for ($k = 0; $k < max($nct, $nrt); ++$k) { - if ($k < $nct) { - // Compute the transformation for the k-th column and - // place the k-th diagonal in s[$k]. - // Compute 2-norm of k-th column without under/overflow. - $this->s[$k] = 0; - for ($i = $k; $i < $this->m; ++$i) { - $this->s[$k] = hypo($this->s[$k], $A[$i][$k]); - } - if ($this->s[$k] != 0.0) { - if ($A[$k][$k] < 0.0) { - $this->s[$k] = -$this->s[$k]; - } - for ($i = $k; $i < $this->m; ++$i) { - $A[$i][$k] /= $this->s[$k]; - } - $A[$k][$k] += 1.0; - } - $this->s[$k] = -$this->s[$k]; - } - - for ($j = $k + 1; $j < $this->n; ++$j) { - if (($k < $nct) & ($this->s[$k] != 0.0)) { - // Apply the transformation. - $t = 0; - for ($i = $k; $i < $this->m; ++$i) { - $t += $A[$i][$k] * $A[$i][$j]; - } - $t = -$t / $A[$k][$k]; - for ($i = $k; $i < $this->m; ++$i) { - $A[$i][$j] += $t * $A[$i][$k]; - } - // Place the k-th row of A into e for the - // subsequent calculation of the row transformation. - $e[$j] = $A[$k][$j]; - } - } - - if ($wantu and ($k < $nct)) { - // Place the transformation in U for subsequent back - // multiplication. - for ($i = $k; $i < $this->m; ++$i) { - $this->U[$i][$k] = $A[$i][$k]; - } - } - - if ($k < $nrt) { - // Compute the k-th row transformation and place the - // k-th super-diagonal in e[$k]. - // Compute 2-norm without under/overflow. - $e[$k] = 0; - for ($i = $k + 1; $i < $this->n; ++$i) { - $e[$k] = hypo($e[$k], $e[$i]); - } - if ($e[$k] != 0.0) { - if ($e[$k+1] < 0.0) { - $e[$k] = -$e[$k]; - } - for ($i = $k + 1; $i < $this->n; ++$i) { - $e[$i] /= $e[$k]; - } - $e[$k+1] += 1.0; - } - $e[$k] = -$e[$k]; - if (($k+1 < $this->m) and ($e[$k] != 0.0)) { - // Apply the transformation. - for ($i = $k+1; $i < $this->m; ++$i) { - $work[$i] = 0.0; - } - for ($j = $k+1; $j < $this->n; ++$j) { - for ($i = $k+1; $i < $this->m; ++$i) { - $work[$i] += $e[$j] * $A[$i][$j]; - } - } - for ($j = $k + 1; $j < $this->n; ++$j) { - $t = -$e[$j] / $e[$k+1]; - for ($i = $k + 1; $i < $this->m; ++$i) { - $A[$i][$j] += $t * $work[$i]; - } - } - } - if ($wantv) { - // Place the transformation in V for subsequent - // back multiplication. - for ($i = $k + 1; $i < $this->n; ++$i) { - $this->V[$i][$k] = $e[$i]; - } - } - } - } - - // Set up the final bidiagonal matrix or order p. - $p = min($this->n, $this->m + 1); - if ($nct < $this->n) { - $this->s[$nct] = $A[$nct][$nct]; - } - if ($this->m < $p) { - $this->s[$p-1] = 0.0; - } - if ($nrt + 1 < $p) { - $e[$nrt] = $A[$nrt][$p-1]; - } - $e[$p-1] = 0.0; - // If required, generate U. - if ($wantu) { - for ($j = $nct; $j < $nu; ++$j) { - for ($i = 0; $i < $this->m; ++$i) { - $this->U[$i][$j] = 0.0; - } - $this->U[$j][$j] = 1.0; - } - for ($k = $nct - 1; $k >= 0; --$k) { - if ($this->s[$k] != 0.0) { - for ($j = $k + 1; $j < $nu; ++$j) { - $t = 0; - for ($i = $k; $i < $this->m; ++$i) { - $t += $this->U[$i][$k] * $this->U[$i][$j]; - } - $t = -$t / $this->U[$k][$k]; - for ($i = $k; $i < $this->m; ++$i) { - $this->U[$i][$j] += $t * $this->U[$i][$k]; - } - } - for ($i = $k; $i < $this->m; ++$i) { - $this->U[$i][$k] = -$this->U[$i][$k]; - } - $this->U[$k][$k] = 1.0 + $this->U[$k][$k]; - for ($i = 0; $i < $k - 1; ++$i) { - $this->U[$i][$k] = 0.0; - } - } else { - for ($i = 0; $i < $this->m; ++$i) { - $this->U[$i][$k] = 0.0; - } - $this->U[$k][$k] = 1.0; - } - } - } - - // If required, generate V. - if ($wantv) { - for ($k = $this->n - 1; $k >= 0; --$k) { - if (($k < $nrt) and ($e[$k] != 0.0)) { - for ($j = $k + 1; $j < $nu; ++$j) { - $t = 0; - for ($i = $k + 1; $i < $this->n; ++$i) { - $t += $this->V[$i][$k]* $this->V[$i][$j]; - } - $t = -$t / $this->V[$k+1][$k]; - for ($i = $k + 1; $i < $this->n; ++$i) { - $this->V[$i][$j] += $t * $this->V[$i][$k]; - } - } - } - for ($i = 0; $i < $this->n; ++$i) { - $this->V[$i][$k] = 0.0; - } - $this->V[$k][$k] = 1.0; - } - } - - // Main iteration loop for the singular values. - $pp = $p - 1; - $iter = 0; - $eps = pow(2.0, -52.0); - - while ($p > 0) { - // Here is where a test for too many iterations would go. - // This section of the program inspects for negligible - // elements in the s and e arrays. On completion the - // variables kase and k are set as follows: - // kase = 1 if s(p) and e[k-1] are negligible and k<p - // kase = 2 if s(k) is negligible and k<p - // kase = 3 if e[k-1] is negligible, k<p, and - // s(k), ..., s(p) are not negligible (qr step). - // kase = 4 if e(p-1) is negligible (convergence). - for ($k = $p - 2; $k >= -1; --$k) { - if ($k == -1) { - break; - } - if (abs($e[$k]) <= $eps * (abs($this->s[$k]) + abs($this->s[$k+1]))) { - $e[$k] = 0.0; - break; - } - } - if ($k == $p - 2) { - $kase = 4; - } else { - for ($ks = $p - 1; $ks >= $k; --$ks) { - if ($ks == $k) { - break; - } - $t = ($ks != $p ? abs($e[$ks]) : 0.) + ($ks != $k + 1 ? abs($e[$ks-1]) : 0.); - if (abs($this->s[$ks]) <= $eps * $t) { - $this->s[$ks] = 0.0; - break; - } - } - if ($ks == $k) { - $kase = 3; - } elseif ($ks == $p-1) { - $kase = 1; - } else { - $kase = 2; - $k = $ks; - } - } - ++$k; - - // Perform the task indicated by kase. - switch ($kase) { - // Deflate negligible s(p). - case 1: - $f = $e[$p-2]; - $e[$p-2] = 0.0; - for ($j = $p - 2; $j >= $k; --$j) { - $t = hypo($this->s[$j], $f); - $cs = $this->s[$j] / $t; - $sn = $f / $t; - $this->s[$j] = $t; - if ($j != $k) { - $f = -$sn * $e[$j-1]; - $e[$j-1] = $cs * $e[$j-1]; - } - if ($wantv) { - for ($i = 0; $i < $this->n; ++$i) { - $t = $cs * $this->V[$i][$j] + $sn * $this->V[$i][$p-1]; - $this->V[$i][$p-1] = -$sn * $this->V[$i][$j] + $cs * $this->V[$i][$p-1]; - $this->V[$i][$j] = $t; - } - } - } - break; - // Split at negligible s(k). - case 2: - $f = $e[$k-1]; - $e[$k-1] = 0.0; - for ($j = $k; $j < $p; ++$j) { - $t = hypo($this->s[$j], $f); - $cs = $this->s[$j] / $t; - $sn = $f / $t; - $this->s[$j] = $t; - $f = -$sn * $e[$j]; - $e[$j] = $cs * $e[$j]; - if ($wantu) { - for ($i = 0; $i < $this->m; ++$i) { - $t = $cs * $this->U[$i][$j] + $sn * $this->U[$i][$k-1]; - $this->U[$i][$k-1] = -$sn * $this->U[$i][$j] + $cs * $this->U[$i][$k-1]; - $this->U[$i][$j] = $t; - } - } - } - break; - // Perform one qr step. - case 3: - // Calculate the shift. - $scale = max(max(max(max(abs($this->s[$p-1]), abs($this->s[$p-2])), abs($e[$p-2])), abs($this->s[$k])), abs($e[$k])); - $sp = $this->s[$p-1] / $scale; - $spm1 = $this->s[$p-2] / $scale; - $epm1 = $e[$p-2] / $scale; - $sk = $this->s[$k] / $scale; - $ek = $e[$k] / $scale; - $b = (($spm1 + $sp) * ($spm1 - $sp) + $epm1 * $epm1) / 2.0; - $c = ($sp * $epm1) * ($sp * $epm1); - $shift = 0.0; - if (($b != 0.0) || ($c != 0.0)) { - $shift = sqrt($b * $b + $c); - if ($b < 0.0) { - $shift = -$shift; - } - $shift = $c / ($b + $shift); - } - $f = ($sk + $sp) * ($sk - $sp) + $shift; - $g = $sk * $ek; - // Chase zeros. - for ($j = $k; $j < $p-1; ++$j) { - $t = hypo($f, $g); - $cs = $f/$t; - $sn = $g/$t; - if ($j != $k) { - $e[$j-1] = $t; - } - $f = $cs * $this->s[$j] + $sn * $e[$j]; - $e[$j] = $cs * $e[$j] - $sn * $this->s[$j]; - $g = $sn * $this->s[$j+1]; - $this->s[$j+1] = $cs * $this->s[$j+1]; - if ($wantv) { - for ($i = 0; $i < $this->n; ++$i) { - $t = $cs * $this->V[$i][$j] + $sn * $this->V[$i][$j+1]; - $this->V[$i][$j+1] = -$sn * $this->V[$i][$j] + $cs * $this->V[$i][$j+1]; - $this->V[$i][$j] = $t; - } - } - $t = hypo($f, $g); - $cs = $f/$t; - $sn = $g/$t; - $this->s[$j] = $t; - $f = $cs * $e[$j] + $sn * $this->s[$j+1]; - $this->s[$j+1] = -$sn * $e[$j] + $cs * $this->s[$j+1]; - $g = $sn * $e[$j+1]; - $e[$j+1] = $cs * $e[$j+1]; - if ($wantu && ($j < $this->m - 1)) { - for ($i = 0; $i < $this->m; ++$i) { - $t = $cs * $this->U[$i][$j] + $sn * $this->U[$i][$j+1]; - $this->U[$i][$j+1] = -$sn * $this->U[$i][$j] + $cs * $this->U[$i][$j+1]; - $this->U[$i][$j] = $t; - } - } - } - $e[$p-2] = $f; - $iter = $iter + 1; - break; - // Convergence. - case 4: - // Make the singular values positive. - if ($this->s[$k] <= 0.0) { - $this->s[$k] = ($this->s[$k] < 0.0 ? -$this->s[$k] : 0.0); - if ($wantv) { - for ($i = 0; $i <= $pp; ++$i) { - $this->V[$i][$k] = -$this->V[$i][$k]; - } - } - } - // Order the singular values. - while ($k < $pp) { - if ($this->s[$k] >= $this->s[$k+1]) { - break; - } - $t = $this->s[$k]; - $this->s[$k] = $this->s[$k+1]; - $this->s[$k+1] = $t; - if ($wantv and ($k < $this->n - 1)) { - for ($i = 0; $i < $this->n; ++$i) { - $t = $this->V[$i][$k+1]; - $this->V[$i][$k+1] = $this->V[$i][$k]; - $this->V[$i][$k] = $t; - } - } - if ($wantu and ($k < $this->m-1)) { - for ($i = 0; $i < $this->m; ++$i) { - $t = $this->U[$i][$k+1]; - $this->U[$i][$k+1] = $this->U[$i][$k]; - $this->U[$i][$k] = $t; - } - } - ++$k; - } - $iter = 0; - --$p; - break; - } // end switch - } // end while - - } // end constructor - - - /** - * Return the left singular vectors - * - * @access public - * @return U - */ - public function getU() - { - return new Matrix($this->U, $this->m, min($this->m + 1, $this->n)); - } - - - /** - * Return the right singular vectors - * - * @access public - * @return V - */ - public function getV() - { - return new Matrix($this->V); - } - - - /** - * Return the one-dimensional array of singular values - * - * @access public - * @return diagonal of S. - */ - public function getSingularValues() - { - return $this->s; - } - - - /** - * Return the diagonal matrix of singular values - * - * @access public - * @return S - */ - public function getS() - { - for ($i = 0; $i < $this->n; ++$i) { - for ($j = 0; $j < $this->n; ++$j) { - $S[$i][$j] = 0.0; - } - $S[$i][$i] = $this->s[$i]; - } - return new Matrix($S); - } - - - /** - * Two norm - * - * @access public - * @return max(S) - */ - public function norm2() - { - return $this->s[0]; - } - - - /** - * Two norm condition number - * - * @access public - * @return max(S)/min(S) - */ - public function cond() - { - return $this->s[0] / $this->s[min($this->m, $this->n) - 1]; - } - - - /** - * Effective numerical matrix rank - * - * @access public - * @return Number of nonnegligible singular values. - */ - public function rank() - { - $eps = pow(2.0, -52.0); - $tol = max($this->m, $this->n) * $this->s[0] * $eps; - $r = 0; - for ($i = 0; $i < count($this->s); ++$i) { - if ($this->s[$i] > $tol) { - ++$r; - } - } - return $r; - } -} diff --git a/Utils/PHPExcel/Shared/JAMA/utils/Error.php b/Utils/PHPExcel/Shared/JAMA/utils/Error.php deleted file mode 100644 index 71b8c99..0000000 --- a/Utils/PHPExcel/Shared/JAMA/utils/Error.php +++ /dev/null @@ -1,83 +0,0 @@ -<?php -/** - * @package JAMA - * - * Error handling - * @author Michael Bommarito - * @version 01292005 - */ - -//Language constant -define('JAMALANG', 'EN'); - - -//All errors may be defined by the following format: -//define('ExceptionName', N); -//$error['lang'][ExceptionName] = 'Error message'; -$error = array(); - -/* -I've used Babelfish and a little poor knowledge of Romance/Germanic languages for the translations here. -Feel free to correct anything that looks amiss to you. -*/ - -define('POLYMORPHIC_ARGUMENT_EXCEPTION', -1); -$error['EN'][POLYMORPHIC_ARGUMENT_EXCEPTION] = "Invalid argument pattern for polymorphic function."; -$error['FR'][POLYMORPHIC_ARGUMENT_EXCEPTION] = "Modèle inadmissible d'argument pour la fonction polymorphe.". -$error['DE'][POLYMORPHIC_ARGUMENT_EXCEPTION] = "Unzulässiges Argumentmuster für polymorphe Funktion."; - -define('ARGUMENT_TYPE_EXCEPTION', -2); -$error['EN'][ARGUMENT_TYPE_EXCEPTION] = "Invalid argument type."; -$error['FR'][ARGUMENT_TYPE_EXCEPTION] = "Type inadmissible d'argument."; -$error['DE'][ARGUMENT_TYPE_EXCEPTION] = "Unzulässige Argumentart."; - -define('ARGUMENT_BOUNDS_EXCEPTION', -3); -$error['EN'][ARGUMENT_BOUNDS_EXCEPTION] = "Invalid argument range."; -$error['FR'][ARGUMENT_BOUNDS_EXCEPTION] = "Gamme inadmissible d'argument."; -$error['DE'][ARGUMENT_BOUNDS_EXCEPTION] = "Unzulässige Argumentstrecke."; - -define('MATRIX_DIMENSION_EXCEPTION', -4); -$error['EN'][MATRIX_DIMENSION_EXCEPTION] = "Matrix dimensions are not equal."; -$error['FR'][MATRIX_DIMENSION_EXCEPTION] = "Les dimensions de Matrix ne sont pas égales."; -$error['DE'][MATRIX_DIMENSION_EXCEPTION] = "Matrixmaße sind nicht gleich."; - -define('PRECISION_LOSS_EXCEPTION', -5); -$error['EN'][PRECISION_LOSS_EXCEPTION] = "Significant precision loss detected."; -$error['FR'][PRECISION_LOSS_EXCEPTION] = "Perte significative de précision détectée."; -$error['DE'][PRECISION_LOSS_EXCEPTION] = "Bedeutender Präzision Verlust ermittelte."; - -define('MATRIX_SPD_EXCEPTION', -6); -$error['EN'][MATRIX_SPD_EXCEPTION] = "Can only perform operation on symmetric positive definite matrix."; -$error['FR'][MATRIX_SPD_EXCEPTION] = "Perte significative de précision détectée."; -$error['DE'][MATRIX_SPD_EXCEPTION] = "Bedeutender Präzision Verlust ermittelte."; - -define('MATRIX_SINGULAR_EXCEPTION', -7); -$error['EN'][MATRIX_SINGULAR_EXCEPTION] = "Can only perform operation on singular matrix."; - -define('MATRIX_RANK_EXCEPTION', -8); -$error['EN'][MATRIX_RANK_EXCEPTION] = "Can only perform operation on full-rank matrix."; - -define('ARRAY_LENGTH_EXCEPTION', -9); -$error['EN'][ARRAY_LENGTH_EXCEPTION] = "Array length must be a multiple of m."; - -define('ROW_LENGTH_EXCEPTION', -10); -$error['EN'][ROW_LENGTH_EXCEPTION] = "All rows must have the same length."; - -/** - * Custom error handler - * @param int $num Error number - */ -function JAMAError($errorNumber = null) -{ - global $error; - - if (isset($errorNumber)) { - if (isset($error[JAMALANG][$errorNumber])) { - return $error[JAMALANG][$errorNumber]; - } else { - return $error['EN'][$errorNumber]; - } - } else { - return ("Invalid argument to JAMAError()"); - } -} diff --git a/Utils/PHPExcel/Shared/JAMA/utils/Maths.php b/Utils/PHPExcel/Shared/JAMA/utils/Maths.php deleted file mode 100644 index 386c1e6..0000000 --- a/Utils/PHPExcel/Shared/JAMA/utils/Maths.php +++ /dev/null @@ -1,44 +0,0 @@ -<?php -/** - * @package JAMA - * - * Pythagorean Theorem: - * - * a = 3 - * b = 4 - * r = sqrt(square(a) + square(b)) - * r = 5 - * - * r = sqrt(a^2 + b^2) without under/overflow. - */ -function hypo($a, $b) -{ - if (abs($a) > abs($b)) { - $r = $b / $a; - $r = abs($a) * sqrt(1 + $r * $r); - } elseif ($b != 0) { - $r = $a / $b; - $r = abs($b) * sqrt(1 + $r * $r); - } else { - $r = 0.0; - } - return $r; -} // function hypo() - - -/** - * Mike Bommarito's version. - * Compute n-dimensional hyotheneuse. - * -function hypot() { - $s = 0; - foreach (func_get_args() as $d) { - if (is_numeric($d)) { - $s += pow($d, 2); - } else { - throw new PHPExcel_Calculation_Exception(JAMAError(ARGUMENT_TYPE_EXCEPTION)); - } - } - return sqrt($s); -} -*/ diff --git a/Utils/PHPExcel/Shared/OLE.php b/Utils/PHPExcel/Shared/OLE.php deleted file mode 100644 index 42a3c52..0000000 --- a/Utils/PHPExcel/Shared/OLE.php +++ /dev/null @@ -1,526 +0,0 @@ -<?php -/* vim: set expandtab tabstop=4 shiftwidth=4: */ -// +----------------------------------------------------------------------+ -// | PHP Version 4 | -// +----------------------------------------------------------------------+ -// | Copyright (c) 1997-2002 The PHP Group | -// +----------------------------------------------------------------------+ -// | This source file is subject to version 2.02 of the PHP license, | -// | that is bundled with this package in the file LICENSE, and is | -// | available at through the world-wide-web at | -// | http://www.php.net/license/2_02.txt. | -// | If you did not receive a copy of the PHP license and are unable to | -// | obtain it through the world-wide-web, please send a note to | -// | license@php.net so we can mail you a copy immediately. | -// +----------------------------------------------------------------------+ -// | Author: Xavier Noguer <xnoguer@php.net> | -// | Based on OLE::Storage_Lite by Kawai, Takanori | -// +----------------------------------------------------------------------+ -// -// $Id: OLE.php,v 1.13 2007/03/07 14:38:25 schmidt Exp $ - - -/** -* Array for storing OLE instances that are accessed from -* OLE_ChainedBlockStream::stream_open(). -* @var array -*/ -$GLOBALS['_OLE_INSTANCES'] = array(); - -/** -* OLE package base class. -* -* @author Xavier Noguer <xnoguer@php.net> -* @author Christian Schmidt <schmidt@php.net> -* @category PHPExcel -* @package PHPExcel_Shared_OLE -*/ -class PHPExcel_Shared_OLE -{ - const OLE_PPS_TYPE_ROOT = 5; - const OLE_PPS_TYPE_DIR = 1; - const OLE_PPS_TYPE_FILE = 2; - const OLE_DATA_SIZE_SMALL = 0x1000; - const OLE_LONG_INT_SIZE = 4; - const OLE_PPS_SIZE = 0x80; - - /** - * The file handle for reading an OLE container - * @var resource - */ - public $_file_handle; - - /** - * Array of PPS's found on the OLE container - * @var array - */ - public $_list = array(); - - /** - * Root directory of OLE container - * @var OLE_PPS_Root - */ - public $root; - - /** - * Big Block Allocation Table - * @var array (blockId => nextBlockId) - */ - public $bbat; - - /** - * Short Block Allocation Table - * @var array (blockId => nextBlockId) - */ - public $sbat; - - /** - * Size of big blocks. This is usually 512. - * @var int number of octets per block. - */ - public $bigBlockSize; - - /** - * Size of small blocks. This is usually 64. - * @var int number of octets per block - */ - public $smallBlockSize; - - /** - * Reads an OLE container from the contents of the file given. - * - * @acces public - * @param string $file - * @return mixed true on success, PEAR_Error on failure - */ - public function read($file) - { - $fh = fopen($file, "r"); - if (!$fh) { - throw new PHPExcel_Reader_Exception("Can't open file $file"); - } - $this->_file_handle = $fh; - - $signature = fread($fh, 8); - if ("\xD0\xCF\x11\xE0\xA1\xB1\x1A\xE1" != $signature) { - throw new PHPExcel_Reader_Exception("File doesn't seem to be an OLE container."); - } - fseek($fh, 28); - if (fread($fh, 2) != "\xFE\xFF") { - // This shouldn't be a problem in practice - throw new PHPExcel_Reader_Exception("Only Little-Endian encoding is supported."); - } - // Size of blocks and short blocks in bytes - $this->bigBlockSize = pow(2, self::_readInt2($fh)); - $this->smallBlockSize = pow(2, self::_readInt2($fh)); - - // Skip UID, revision number and version number - fseek($fh, 44); - // Number of blocks in Big Block Allocation Table - $bbatBlockCount = self::_readInt4($fh); - - // Root chain 1st block - $directoryFirstBlockId = self::_readInt4($fh); - - // Skip unused bytes - fseek($fh, 56); - // Streams shorter than this are stored using small blocks - $this->bigBlockThreshold = self::_readInt4($fh); - // Block id of first sector in Short Block Allocation Table - $sbatFirstBlockId = self::_readInt4($fh); - // Number of blocks in Short Block Allocation Table - $sbbatBlockCount = self::_readInt4($fh); - // Block id of first sector in Master Block Allocation Table - $mbatFirstBlockId = self::_readInt4($fh); - // Number of blocks in Master Block Allocation Table - $mbbatBlockCount = self::_readInt4($fh); - $this->bbat = array(); - - // Remaining 4 * 109 bytes of current block is beginning of Master - // Block Allocation Table - $mbatBlocks = array(); - for ($i = 0; $i < 109; ++$i) { - $mbatBlocks[] = self::_readInt4($fh); - } - - // Read rest of Master Block Allocation Table (if any is left) - $pos = $this->_getBlockOffset($mbatFirstBlockId); - for ($i = 0; $i < $mbbatBlockCount; ++$i) { - fseek($fh, $pos); - for ($j = 0; $j < $this->bigBlockSize / 4 - 1; ++$j) { - $mbatBlocks[] = self::_readInt4($fh); - } - // Last block id in each block points to next block - $pos = $this->_getBlockOffset(self::_readInt4($fh)); - } - - // Read Big Block Allocation Table according to chain specified by - // $mbatBlocks - for ($i = 0; $i < $bbatBlockCount; ++$i) { - $pos = $this->_getBlockOffset($mbatBlocks[$i]); - fseek($fh, $pos); - for ($j = 0; $j < $this->bigBlockSize / 4; ++$j) { - $this->bbat[] = self::_readInt4($fh); - } - } - - // Read short block allocation table (SBAT) - $this->sbat = array(); - $shortBlockCount = $sbbatBlockCount * $this->bigBlockSize / 4; - $sbatFh = $this->getStream($sbatFirstBlockId); - for ($blockId = 0; $blockId < $shortBlockCount; ++$blockId) { - $this->sbat[$blockId] = self::_readInt4($sbatFh); - } - fclose($sbatFh); - - $this->_readPpsWks($directoryFirstBlockId); - - return true; - } - - /** - * @param int block id - * @param int byte offset from beginning of file - * @access public - */ - public function _getBlockOffset($blockId) - { - return 512 + $blockId * $this->bigBlockSize; - } - - /** - * Returns a stream for use with fread() etc. External callers should - * use PHPExcel_Shared_OLE_PPS_File::getStream(). - * @param int|PPS block id or PPS - * @return resource read-only stream - */ - public function getStream($blockIdOrPps) - { - static $isRegistered = false; - if (!$isRegistered) { - stream_wrapper_register('ole-chainedblockstream', 'PHPExcel_Shared_OLE_ChainedBlockStream'); - $isRegistered = true; - } - - // Store current instance in global array, so that it can be accessed - // in OLE_ChainedBlockStream::stream_open(). - // Object is removed from self::$instances in OLE_Stream::close(). - $GLOBALS['_OLE_INSTANCES'][] = $this; - $instanceId = end(array_keys($GLOBALS['_OLE_INSTANCES'])); - - $path = 'ole-chainedblockstream://oleInstanceId=' . $instanceId; - if ($blockIdOrPps instanceof PHPExcel_Shared_OLE_PPS) { - $path .= '&blockId=' . $blockIdOrPps->_StartBlock; - $path .= '&size=' . $blockIdOrPps->Size; - } else { - $path .= '&blockId=' . $blockIdOrPps; - } - return fopen($path, 'r'); - } - - /** - * Reads a signed char. - * @param resource file handle - * @return int - * @access public - */ - private static function _readInt1($fh) - { - list(, $tmp) = unpack("c", fread($fh, 1)); - return $tmp; - } - - /** - * Reads an unsigned short (2 octets). - * @param resource file handle - * @return int - * @access public - */ - private static function _readInt2($fh) - { - list(, $tmp) = unpack("v", fread($fh, 2)); - return $tmp; - } - - /** - * Reads an unsigned long (4 octets). - * @param resource file handle - * @return int - * @access public - */ - private static function _readInt4($fh) - { - list(, $tmp) = unpack("V", fread($fh, 4)); - return $tmp; - } - - /** - * Gets information about all PPS's on the OLE container from the PPS WK's - * creates an OLE_PPS object for each one. - * - * @access public - * @param integer the block id of the first block - * @return mixed true on success, PEAR_Error on failure - */ - public function _readPpsWks($blockId) - { - $fh = $this->getStream($blockId); - for ($pos = 0;; $pos += 128) { - fseek($fh, $pos, SEEK_SET); - $nameUtf16 = fread($fh, 64); - $nameLength = self::_readInt2($fh); - $nameUtf16 = substr($nameUtf16, 0, $nameLength - 2); - // Simple conversion from UTF-16LE to ISO-8859-1 - $name = str_replace("\x00", "", $nameUtf16); - $type = self::_readInt1($fh); - switch ($type) { - case self::OLE_PPS_TYPE_ROOT: - $pps = new PHPExcel_Shared_OLE_PPS_Root(null, null, array()); - $this->root = $pps; - break; - case self::OLE_PPS_TYPE_DIR: - $pps = new PHPExcel_Shared_OLE_PPS(null, null, null, null, null, null, null, null, null, array()); - break; - case self::OLE_PPS_TYPE_FILE: - $pps = new PHPExcel_Shared_OLE_PPS_File($name); - break; - default: - continue; - } - fseek($fh, 1, SEEK_CUR); - $pps->Type = $type; - $pps->Name = $name; - $pps->PrevPps = self::_readInt4($fh); - $pps->NextPps = self::_readInt4($fh); - $pps->DirPps = self::_readInt4($fh); - fseek($fh, 20, SEEK_CUR); - $pps->Time1st = self::OLE2LocalDate(fread($fh, 8)); - $pps->Time2nd = self::OLE2LocalDate(fread($fh, 8)); - $pps->_StartBlock = self::_readInt4($fh); - $pps->Size = self::_readInt4($fh); - $pps->No = count($this->_list); - $this->_list[] = $pps; - - // check if the PPS tree (starting from root) is complete - if (isset($this->root) && $this->_ppsTreeComplete($this->root->No)) { - break; - } - } - fclose($fh); - - // Initialize $pps->children on directories - foreach ($this->_list as $pps) { - if ($pps->Type == self::OLE_PPS_TYPE_DIR || $pps->Type == self::OLE_PPS_TYPE_ROOT) { - $nos = array($pps->DirPps); - $pps->children = array(); - while ($nos) { - $no = array_pop($nos); - if ($no != -1) { - $childPps = $this->_list[$no]; - $nos[] = $childPps->PrevPps; - $nos[] = $childPps->NextPps; - $pps->children[] = $childPps; - } - } - } - } - - return true; - } - - /** - * It checks whether the PPS tree is complete (all PPS's read) - * starting with the given PPS (not necessarily root) - * - * @access public - * @param integer $index The index of the PPS from which we are checking - * @return boolean Whether the PPS tree for the given PPS is complete - */ - public function _ppsTreeComplete($index) - { - return isset($this->_list[$index]) && - ($pps = $this->_list[$index]) && - ($pps->PrevPps == -1 || - $this->_ppsTreeComplete($pps->PrevPps)) && - ($pps->NextPps == -1 || - $this->_ppsTreeComplete($pps->NextPps)) && - ($pps->DirPps == -1 || - $this->_ppsTreeComplete($pps->DirPps)); - } - - /** - * Checks whether a PPS is a File PPS or not. - * If there is no PPS for the index given, it will return false. - * - * @access public - * @param integer $index The index for the PPS - * @return bool true if it's a File PPS, false otherwise - */ - public function isFile($index) - { - if (isset($this->_list[$index])) { - return ($this->_list[$index]->Type == self::OLE_PPS_TYPE_FILE); - } - return false; - } - - /** - * Checks whether a PPS is a Root PPS or not. - * If there is no PPS for the index given, it will return false. - * - * @access public - * @param integer $index The index for the PPS. - * @return bool true if it's a Root PPS, false otherwise - */ - public function isRoot($index) - { - if (isset($this->_list[$index])) { - return ($this->_list[$index]->Type == self::OLE_PPS_TYPE_ROOT); - } - return false; - } - - /** - * Gives the total number of PPS's found in the OLE container. - * - * @access public - * @return integer The total number of PPS's found in the OLE container - */ - public function ppsTotal() - { - return count($this->_list); - } - - /** - * Gets data from a PPS - * If there is no PPS for the index given, it will return an empty string. - * - * @access public - * @param integer $index The index for the PPS - * @param integer $position The position from which to start reading - * (relative to the PPS) - * @param integer $length The amount of bytes to read (at most) - * @return string The binary string containing the data requested - * @see OLE_PPS_File::getStream() - */ - public function getData($index, $position, $length) - { - // if position is not valid return empty string - if (!isset($this->_list[$index]) || ($position >= $this->_list[$index]->Size) || ($position < 0)) { - return ''; - } - $fh = $this->getStream($this->_list[$index]); - $data = stream_get_contents($fh, $length, $position); - fclose($fh); - return $data; - } - - /** - * Gets the data length from a PPS - * If there is no PPS for the index given, it will return 0. - * - * @access public - * @param integer $index The index for the PPS - * @return integer The amount of bytes in data the PPS has - */ - public function getDataLength($index) - { - if (isset($this->_list[$index])) { - return $this->_list[$index]->Size; - } - return 0; - } - - /** - * Utility function to transform ASCII text to Unicode - * - * @access public - * @static - * @param string $ascii The ASCII string to transform - * @return string The string in Unicode - */ - public static function Asc2Ucs($ascii) - { - $rawname = ''; - for ($i = 0; $i < strlen($ascii); ++$i) { - $rawname .= $ascii{$i} . "\x00"; - } - return $rawname; - } - - /** - * Utility function - * Returns a string for the OLE container with the date given - * - * @access public - * @static - * @param integer $date A timestamp - * @return string The string for the OLE container - */ - public static function LocalDate2OLE($date = null) - { - if (!isset($date)) { - return "\x00\x00\x00\x00\x00\x00\x00\x00"; - } - - // factor used for separating numbers into 4 bytes parts - $factor = pow(2, 32); - - // days from 1-1-1601 until the beggining of UNIX era - $days = 134774; - // calculate seconds - $big_date = $days*24*3600 + gmmktime(date("H", $date), date("i", $date), date("s", $date), date("m", $date), date("d", $date), date("Y", $date)); - // multiply just to make MS happy - $big_date *= 10000000; - - $high_part = floor($big_date / $factor); - // lower 4 bytes - $low_part = floor((($big_date / $factor) - $high_part) * $factor); - - // Make HEX string - $res = ''; - - for ($i = 0; $i < 4; ++$i) { - $hex = $low_part % 0x100; - $res .= pack('c', $hex); - $low_part /= 0x100; - } - for ($i = 0; $i < 4; ++$i) { - $hex = $high_part % 0x100; - $res .= pack('c', $hex); - $high_part /= 0x100; - } - return $res; - } - - /** - * Returns a timestamp from an OLE container's date - * - * @access public - * @static - * @param integer $string A binary string with the encoded date - * @return string The timestamp corresponding to the string - */ - public static function OLE2LocalDate($string) - { - if (strlen($string) != 8) { - return new PEAR_Error("Expecting 8 byte string"); - } - - // factor used for separating numbers into 4 bytes parts - $factor = pow(2, 32); - list(, $high_part) = unpack('V', substr($string, 4, 4)); - list(, $low_part) = unpack('V', substr($string, 0, 4)); - - $big_date = ($high_part * $factor) + $low_part; - // translate to seconds - $big_date /= 10000000; - - // days from 1-1-1601 until the beggining of UNIX era - $days = 134774; - - // translate to seconds from beggining of UNIX era - $big_date -= $days * 24 * 3600; - return floor($big_date); - } -} diff --git a/Utils/PHPExcel/Shared/OLE/ChainedBlockStream.php b/Utils/PHPExcel/Shared/OLE/ChainedBlockStream.php deleted file mode 100644 index 84d2cc5..0000000 --- a/Utils/PHPExcel/Shared/OLE/ChainedBlockStream.php +++ /dev/null @@ -1,206 +0,0 @@ -<?php - -/** - * PHPExcel_Shared_OLE_ChainedBlockStream - * - * Copyright (c) 2006 - 2015 PHPExcel - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - * - * @category PHPExcel - * @package PHPExcel_Shared_OLE - * @copyright Copyright (c) 2006 - 2007 Christian Schmidt - * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL - * @version ##VERSION##, ##DATE## - */ -class PHPExcel_Shared_OLE_ChainedBlockStream -{ - /** - * The OLE container of the file that is being read. - * @var OLE - */ - public $ole; - - /** - * Parameters specified by fopen(). - * @var array - */ - public $params; - - /** - * The binary data of the file. - * @var string - */ - public $data; - - /** - * The file pointer. - * @var int byte offset - */ - public $pos; - - /** - * Implements support for fopen(). - * For creating streams using this wrapper, use OLE_PPS_File::getStream(). - * - * @param string $path resource name including scheme, e.g. - * ole-chainedblockstream://oleInstanceId=1 - * @param string $mode only "r" is supported - * @param int $options mask of STREAM_REPORT_ERRORS and STREAM_USE_PATH - * @param string &$openedPath absolute path of the opened stream (out parameter) - * @return bool true on success - */ - public function stream_open($path, $mode, $options, &$openedPath) - { - if ($mode != 'r') { - if ($options & STREAM_REPORT_ERRORS) { - trigger_error('Only reading is supported', E_USER_WARNING); - } - return false; - } - - // 25 is length of "ole-chainedblockstream://" - parse_str(substr($path, 25), $this->params); - if (!isset($this->params['oleInstanceId'], $this->params['blockId'], $GLOBALS['_OLE_INSTANCES'][$this->params['oleInstanceId']])) { - if ($options & STREAM_REPORT_ERRORS) { - trigger_error('OLE stream not found', E_USER_WARNING); - } - return false; - } - $this->ole = $GLOBALS['_OLE_INSTANCES'][$this->params['oleInstanceId']]; - - $blockId = $this->params['blockId']; - $this->data = ''; - if (isset($this->params['size']) && $this->params['size'] < $this->ole->bigBlockThreshold && $blockId != $this->ole->root->_StartBlock) { - // Block id refers to small blocks - $rootPos = $this->ole->_getBlockOffset($this->ole->root->_StartBlock); - while ($blockId != -2) { - $pos = $rootPos + $blockId * $this->ole->bigBlockSize; - $blockId = $this->ole->sbat[$blockId]; - fseek($this->ole->_file_handle, $pos); - $this->data .= fread($this->ole->_file_handle, $this->ole->bigBlockSize); - } - } else { - // Block id refers to big blocks - while ($blockId != -2) { - $pos = $this->ole->_getBlockOffset($blockId); - fseek($this->ole->_file_handle, $pos); - $this->data .= fread($this->ole->_file_handle, $this->ole->bigBlockSize); - $blockId = $this->ole->bbat[$blockId]; - } - } - if (isset($this->params['size'])) { - $this->data = substr($this->data, 0, $this->params['size']); - } - - if ($options & STREAM_USE_PATH) { - $openedPath = $path; - } - - return true; - } - - /** - * Implements support for fclose(). - * - */ - public function stream_close() - { - $this->ole = null; - unset($GLOBALS['_OLE_INSTANCES']); - } - - /** - * Implements support for fread(), fgets() etc. - * - * @param int $count maximum number of bytes to read - * @return string - */ - public function stream_read($count) - { - if ($this->stream_eof()) { - return false; - } - $s = substr($this->data, $this->pos, $count); - $this->pos += $count; - return $s; - } - - /** - * Implements support for feof(). - * - * @return bool TRUE if the file pointer is at EOF; otherwise FALSE - */ - public function stream_eof() - { - return $this->pos >= strlen($this->data); - } - - /** - * Returns the position of the file pointer, i.e. its offset into the file - * stream. Implements support for ftell(). - * - * @return int - */ - public function stream_tell() - { - return $this->pos; - } - - /** - * Implements support for fseek(). - * - * @param int $offset byte offset - * @param int $whence SEEK_SET, SEEK_CUR or SEEK_END - * @return bool - */ - public function stream_seek($offset, $whence) - { - if ($whence == SEEK_SET && $offset >= 0) { - $this->pos = $offset; - } elseif ($whence == SEEK_CUR && -$offset <= $this->pos) { - $this->pos += $offset; - } elseif ($whence == SEEK_END && -$offset <= sizeof($this->data)) { - $this->pos = strlen($this->data) + $offset; - } else { - return false; - } - return true; - } - - /** - * Implements support for fstat(). Currently the only supported field is - * "size". - * @return array - */ - public function stream_stat() - { - return array( - 'size' => strlen($this->data), - ); - } - - // Methods used by stream_wrapper_register() that are not implemented: - // bool stream_flush ( void ) - // int stream_write ( string data ) - // bool rename ( string path_from, string path_to ) - // bool mkdir ( string path, int mode, int options ) - // bool rmdir ( string path, int options ) - // bool dir_opendir ( string path, int options ) - // array url_stat ( string path, int flags ) - // string dir_readdir ( void ) - // bool dir_rewinddir ( void ) - // bool dir_closedir ( void ) -} diff --git a/Utils/PHPExcel/Shared/OLE/PPS.php b/Utils/PHPExcel/Shared/OLE/PPS.php deleted file mode 100644 index 608a892..0000000 --- a/Utils/PHPExcel/Shared/OLE/PPS.php +++ /dev/null @@ -1,230 +0,0 @@ -<?php -/* vim: set expandtab tabstop=4 shiftwidth=4: */ -// +----------------------------------------------------------------------+ -// | PHP Version 4 | -// +----------------------------------------------------------------------+ -// | Copyright (c) 1997-2002 The PHP Group | -// +----------------------------------------------------------------------+ -// | This source file is subject to version 2.02 of the PHP license, | -// | that is bundled with this package in the file LICENSE, and is | -// | available at through the world-wide-web at | -// | http://www.php.net/license/2_02.txt. | -// | If you did not receive a copy of the PHP license and are unable to | -// | obtain it through the world-wide-web, please send a note to | -// | license@php.net so we can mail you a copy immediately. | -// +----------------------------------------------------------------------+ -// | Author: Xavier Noguer <xnoguer@php.net> | -// | Based on OLE::Storage_Lite by Kawai, Takanori | -// +----------------------------------------------------------------------+ -// -// $Id: PPS.php,v 1.7 2007/02/13 21:00:42 schmidt Exp $ - - -/** -* Class for creating PPS's for OLE containers -* -* @author Xavier Noguer <xnoguer@php.net> -* @category PHPExcel -* @package PHPExcel_Shared_OLE -*/ -class PHPExcel_Shared_OLE_PPS -{ - /** - * The PPS index - * @var integer - */ - public $No; - - /** - * The PPS name (in Unicode) - * @var string - */ - public $Name; - - /** - * The PPS type. Dir, Root or File - * @var integer - */ - public $Type; - - /** - * The index of the previous PPS - * @var integer - */ - public $PrevPps; - - /** - * The index of the next PPS - * @var integer - */ - public $NextPps; - - /** - * The index of it's first child if this is a Dir or Root PPS - * @var integer - */ - public $DirPps; - - /** - * A timestamp - * @var integer - */ - public $Time1st; - - /** - * A timestamp - * @var integer - */ - public $Time2nd; - - /** - * Starting block (small or big) for this PPS's data inside the container - * @var integer - */ - public $_StartBlock; - - /** - * The size of the PPS's data (in bytes) - * @var integer - */ - public $Size; - - /** - * The PPS's data (only used if it's not using a temporary file) - * @var string - */ - public $_data; - - /** - * Array of child PPS's (only used by Root and Dir PPS's) - * @var array - */ - public $children = array(); - - /** - * Pointer to OLE container - * @var OLE - */ - public $ole; - - /** - * The constructor - * - * @access public - * @param integer $No The PPS index - * @param string $name The PPS name - * @param integer $type The PPS type. Dir, Root or File - * @param integer $prev The index of the previous PPS - * @param integer $next The index of the next PPS - * @param integer $dir The index of it's first child if this is a Dir or Root PPS - * @param integer $time_1st A timestamp - * @param integer $time_2nd A timestamp - * @param string $data The (usually binary) source data of the PPS - * @param array $children Array containing children PPS for this PPS - */ - public function __construct($No, $name, $type, $prev, $next, $dir, $time_1st, $time_2nd, $data, $children) - { - $this->No = $No; - $this->Name = $name; - $this->Type = $type; - $this->PrevPps = $prev; - $this->NextPps = $next; - $this->DirPps = $dir; - $this->Time1st = $time_1st; - $this->Time2nd = $time_2nd; - $this->_data = $data; - $this->children = $children; - if ($data != '') { - $this->Size = strlen($data); - } else { - $this->Size = 0; - } - } - - /** - * Returns the amount of data saved for this PPS - * - * @access public - * @return integer The amount of data (in bytes) - */ - public function _DataLen() - { - if (!isset($this->_data)) { - return 0; - } - //if (isset($this->_PPS_FILE)) { - // fseek($this->_PPS_FILE, 0); - // $stats = fstat($this->_PPS_FILE); - // return $stats[7]; - //} else { - return strlen($this->_data); - //} - } - - /** - * Returns a string with the PPS's WK (What is a WK?) - * - * @access public - * @return string The binary string - */ - public function _getPpsWk() - { - $ret = str_pad($this->Name, 64, "\x00"); - - $ret .= pack("v", strlen($this->Name) + 2) // 66 - . pack("c", $this->Type) // 67 - . pack("c", 0x00) //UK // 68 - . pack("V", $this->PrevPps) //Prev // 72 - . pack("V", $this->NextPps) //Next // 76 - . pack("V", $this->DirPps) //Dir // 80 - . "\x00\x09\x02\x00" // 84 - . "\x00\x00\x00\x00" // 88 - . "\xc0\x00\x00\x00" // 92 - . "\x00\x00\x00\x46" // 96 // Seems to be ok only for Root - . "\x00\x00\x00\x00" // 100 - . PHPExcel_Shared_OLE::LocalDate2OLE($this->Time1st) // 108 - . PHPExcel_Shared_OLE::LocalDate2OLE($this->Time2nd) // 116 - . pack("V", isset($this->_StartBlock)? - $this->_StartBlock:0) // 120 - . pack("V", $this->Size) // 124 - . pack("V", 0); // 128 - return $ret; - } - - /** - * Updates index and pointers to previous, next and children PPS's for this - * PPS. I don't think it'll work with Dir PPS's. - * - * @access public - * @param array &$raList Reference to the array of PPS's for the whole OLE - * container - * @return integer The index for this PPS - */ - public static function _savePpsSetPnt(&$raList, $to_save, $depth = 0) - { - if (!is_array($to_save) || (empty($to_save))) { - return 0xFFFFFFFF; - } elseif (count($to_save) == 1) { - $cnt = count($raList); - // If the first entry, it's the root... Don't clone it! - $raList[$cnt] = ( $depth == 0 ) ? $to_save[0] : clone $to_save[0]; - $raList[$cnt]->No = $cnt; - $raList[$cnt]->PrevPps = 0xFFFFFFFF; - $raList[$cnt]->NextPps = 0xFFFFFFFF; - $raList[$cnt]->DirPps = self::_savePpsSetPnt($raList, @$raList[$cnt]->children, $depth++); - } else { - $iPos = floor(count($to_save) / 2); - $aPrev = array_slice($to_save, 0, $iPos); - $aNext = array_slice($to_save, $iPos + 1); - $cnt = count($raList); - // If the first entry, it's the root... Don't clone it! - $raList[$cnt] = ( $depth == 0 ) ? $to_save[$iPos] : clone $to_save[$iPos]; - $raList[$cnt]->No = $cnt; - $raList[$cnt]->PrevPps = self::_savePpsSetPnt($raList, $aPrev, $depth++); - $raList[$cnt]->NextPps = self::_savePpsSetPnt($raList, $aNext, $depth++); - $raList[$cnt]->DirPps = self::_savePpsSetPnt($raList, @$raList[$cnt]->children, $depth++); - - } - return $cnt; - } -} diff --git a/Utils/PHPExcel/Shared/OLE/PPS/File.php b/Utils/PHPExcel/Shared/OLE/PPS/File.php deleted file mode 100644 index 1ca337c..0000000 --- a/Utils/PHPExcel/Shared/OLE/PPS/File.php +++ /dev/null @@ -1,74 +0,0 @@ -<?php -/* vim: set expandtab tabstop=4 shiftwidth=4: */ -// +----------------------------------------------------------------------+ -// | PHP Version 4 | -// +----------------------------------------------------------------------+ -// | Copyright (c) 1997-2002 The PHP Group | -// +----------------------------------------------------------------------+ -// | This source file is subject to version 2.02 of the PHP license, | -// | that is bundled with this package in the file LICENSE, and is | -// | available at through the world-wide-web at | -// | http://www.php.net/license/2_02.txt. | -// | If you did not receive a copy of the PHP license and are unable to | -// | obtain it through the world-wide-web, please send a note to | -// | license@php.net so we can mail you a copy immediately. | -// +----------------------------------------------------------------------+ -// | Author: Xavier Noguer <xnoguer@php.net> | -// | Based on OLE::Storage_Lite by Kawai, Takanori | -// +----------------------------------------------------------------------+ -// -// $Id: File.php,v 1.11 2007/02/13 21:00:42 schmidt Exp $ - - -/** -* Class for creating File PPS's for OLE containers -* -* @author Xavier Noguer <xnoguer@php.net> -* @category PHPExcel -* @package PHPExcel_Shared_OLE -*/ -class PHPExcel_Shared_OLE_PPS_File extends PHPExcel_Shared_OLE_PPS -{ - /** - * The constructor - * - * @access public - * @param string $name The name of the file (in Unicode) - * @see OLE::Asc2Ucs() - */ - public function __construct($name) - { - parent::__construct(null, $name, PHPExcel_Shared_OLE::OLE_PPS_TYPE_FILE, null, null, null, null, null, '', array()); - } - - /** - * Initialization method. Has to be called right after OLE_PPS_File(). - * - * @access public - * @return mixed true on success - */ - public function init() - { - return true; - } - - /** - * Append data to PPS - * - * @access public - * @param string $data The data to append - */ - public function append($data) - { - $this->_data .= $data; - } - - /** - * Returns a stream for reading this file using fread() etc. - * @return resource a read-only stream - */ - public function getStream() - { - $this->ole->getStream($this); - } -} diff --git a/Utils/PHPExcel/Shared/OLE/PPS/Root.php b/Utils/PHPExcel/Shared/OLE/PPS/Root.php deleted file mode 100644 index 5d4052f..0000000 --- a/Utils/PHPExcel/Shared/OLE/PPS/Root.php +++ /dev/null @@ -1,462 +0,0 @@ -<?php -/* vim: set expandtab tabstop=4 shiftwidth=4: */ -// +----------------------------------------------------------------------+ -// | PHP Version 4 | -// +----------------------------------------------------------------------+ -// | Copyright (c) 1997-2002 The PHP Group | -// +----------------------------------------------------------------------+ -// | This source file is subject to version 2.02 of the PHP license, | -// | that is bundled with this package in the file LICENSE, and is | -// | available at through the world-wide-web at | -// | http://www.php.net/license/2_02.txt. | -// | If you did not receive a copy of the PHP license and are unable to | -// | obtain it through the world-wide-web, please send a note to | -// | license@php.net so we can mail you a copy immediately. | -// +----------------------------------------------------------------------+ -// | Author: Xavier Noguer <xnoguer@php.net> | -// | Based on OLE::Storage_Lite by Kawai, Takanori | -// +----------------------------------------------------------------------+ -// -// $Id: Root.php,v 1.9 2005/04/23 21:53:49 dufuz Exp $ - - -/** -* Class for creating Root PPS's for OLE containers -* -* @author Xavier Noguer <xnoguer@php.net> -* @category PHPExcel -* @package PHPExcel_Shared_OLE -*/ -class PHPExcel_Shared_OLE_PPS_Root extends PHPExcel_Shared_OLE_PPS -{ - - /** - * Directory for temporary files - * @var string - */ - protected $tempDirectory = null; - - /** - * @param integer $time_1st A timestamp - * @param integer $time_2nd A timestamp - */ - public function __construct($time_1st, $time_2nd, $raChild) - { - $this->_tempDir = PHPExcel_Shared_File::sys_get_temp_dir(); - - parent::__construct(null, PHPExcel_Shared_OLE::Asc2Ucs('Root Entry'), PHPExcel_Shared_OLE::OLE_PPS_TYPE_ROOT, null, null, null, $time_1st, $time_2nd, null, $raChild); - } - - /** - * Method for saving the whole OLE container (including files). - * In fact, if called with an empty argument (or '-'), it saves to a - * temporary file and then outputs it's contents to stdout. - * If a resource pointer to a stream created by fopen() is passed - * it will be used, but you have to close such stream by yourself. - * - * @param string|resource $filename The name of the file or stream where to save the OLE container. - * @access public - * @return mixed true on success - */ - public function save($filename) - { - // Initial Setting for saving - $this->_BIG_BLOCK_SIZE = pow( - 2, - (isset($this->_BIG_BLOCK_SIZE))? self::adjust2($this->_BIG_BLOCK_SIZE) : 9 - ); - $this->_SMALL_BLOCK_SIZE= pow( - 2, - (isset($this->_SMALL_BLOCK_SIZE))? self::adjust2($this->_SMALL_BLOCK_SIZE) : 6 - ); - - if (is_resource($filename)) { - $this->_FILEH_ = $filename; - } elseif ($filename == '-' || $filename == '') { - if ($this->tempDirectory === null) { - $this->tempDirectory = PHPExcel_Shared_File::sys_get_temp_dir(); - } - $this->_tmp_filename = tempnam($this->tempDirectory, "OLE_PPS_Root"); - $this->_FILEH_ = fopen($this->_tmp_filename, "w+b"); - if ($this->_FILEH_ == false) { - throw new PHPExcel_Writer_Exception("Can't create temporary file."); - } - } else { - $this->_FILEH_ = fopen($filename, "wb"); - } - if ($this->_FILEH_ == false) { - throw new PHPExcel_Writer_Exception("Can't open $filename. It may be in use or protected."); - } - // Make an array of PPS's (for Save) - $aList = array(); - PHPExcel_Shared_OLE_PPS::_savePpsSetPnt($aList, array($this)); - // calculate values for header - list($iSBDcnt, $iBBcnt, $iPPScnt) = $this->_calcSize($aList); //, $rhInfo); - // Save Header - $this->_saveHeader($iSBDcnt, $iBBcnt, $iPPScnt); - - // Make Small Data string (write SBD) - $this->_data = $this->_makeSmallData($aList); - - // Write BB - $this->_saveBigData($iSBDcnt, $aList); - // Write PPS - $this->_savePps($aList); - // Write Big Block Depot and BDList and Adding Header informations - $this->_saveBbd($iSBDcnt, $iBBcnt, $iPPScnt); - - if (!is_resource($filename)) { - fclose($this->_FILEH_); - } - - return true; - } - - /** - * Calculate some numbers - * - * @access public - * @param array $raList Reference to an array of PPS's - * @return array The array of numbers - */ - public function _calcSize(&$raList) - { - // Calculate Basic Setting - list($iSBDcnt, $iBBcnt, $iPPScnt) = array(0,0,0); - $iSmallLen = 0; - $iSBcnt = 0; - $iCount = count($raList); - for ($i = 0; $i < $iCount; ++$i) { - if ($raList[$i]->Type == PHPExcel_Shared_OLE::OLE_PPS_TYPE_FILE) { - $raList[$i]->Size = $raList[$i]->_DataLen(); - if ($raList[$i]->Size < PHPExcel_Shared_OLE::OLE_DATA_SIZE_SMALL) { - $iSBcnt += floor($raList[$i]->Size / $this->_SMALL_BLOCK_SIZE) - + (($raList[$i]->Size % $this->_SMALL_BLOCK_SIZE)? 1: 0); - } else { - $iBBcnt += (floor($raList[$i]->Size / $this->_BIG_BLOCK_SIZE) + - (($raList[$i]->Size % $this->_BIG_BLOCK_SIZE)? 1: 0)); - } - } - } - $iSmallLen = $iSBcnt * $this->_SMALL_BLOCK_SIZE; - $iSlCnt = floor($this->_BIG_BLOCK_SIZE / PHPExcel_Shared_OLE::OLE_LONG_INT_SIZE); - $iSBDcnt = floor($iSBcnt / $iSlCnt) + (($iSBcnt % $iSlCnt)? 1:0); - $iBBcnt += (floor($iSmallLen / $this->_BIG_BLOCK_SIZE) + - (( $iSmallLen % $this->_BIG_BLOCK_SIZE)? 1: 0)); - $iCnt = count($raList); - $iBdCnt = $this->_BIG_BLOCK_SIZE / PHPExcel_Shared_OLE::OLE_PPS_SIZE; - $iPPScnt = (floor($iCnt/$iBdCnt) + (($iCnt % $iBdCnt)? 1: 0)); - - return array($iSBDcnt, $iBBcnt, $iPPScnt); - } - - /** - * Helper function for caculating a magic value for block sizes - * - * @access public - * @param integer $i2 The argument - * @see save() - * @return integer - */ - private static function adjust2($i2) - { - $iWk = log($i2)/log(2); - return ($iWk > floor($iWk))? floor($iWk)+1:$iWk; - } - - /** - * Save OLE header - * - * @access public - * @param integer $iSBDcnt - * @param integer $iBBcnt - * @param integer $iPPScnt - */ - public function _saveHeader($iSBDcnt, $iBBcnt, $iPPScnt) - { - $FILE = $this->_FILEH_; - - // Calculate Basic Setting - $iBlCnt = $this->_BIG_BLOCK_SIZE / PHPExcel_Shared_OLE::OLE_LONG_INT_SIZE; - $i1stBdL = ($this->_BIG_BLOCK_SIZE - 0x4C) / PHPExcel_Shared_OLE::OLE_LONG_INT_SIZE; - - $iBdExL = 0; - $iAll = $iBBcnt + $iPPScnt + $iSBDcnt; - $iAllW = $iAll; - $iBdCntW = floor($iAllW / $iBlCnt) + (($iAllW % $iBlCnt)? 1: 0); - $iBdCnt = floor(($iAll + $iBdCntW) / $iBlCnt) + ((($iAllW+$iBdCntW) % $iBlCnt)? 1: 0); - - // Calculate BD count - if ($iBdCnt > $i1stBdL) { - while (1) { - ++$iBdExL; - ++$iAllW; - $iBdCntW = floor($iAllW / $iBlCnt) + (($iAllW % $iBlCnt)? 1: 0); - $iBdCnt = floor(($iAllW + $iBdCntW) / $iBlCnt) + ((($iAllW+$iBdCntW) % $iBlCnt)? 1: 0); - if ($iBdCnt <= ($iBdExL*$iBlCnt+ $i1stBdL)) { - break; - } - } - } - - // Save Header - fwrite( - $FILE, - "\xD0\xCF\x11\xE0\xA1\xB1\x1A\xE1" - . "\x00\x00\x00\x00" - . "\x00\x00\x00\x00" - . "\x00\x00\x00\x00" - . "\x00\x00\x00\x00" - . pack("v", 0x3b) - . pack("v", 0x03) - . pack("v", -2) - . pack("v", 9) - . pack("v", 6) - . pack("v", 0) - . "\x00\x00\x00\x00" - . "\x00\x00\x00\x00" - . pack("V", $iBdCnt) - . pack("V", $iBBcnt+$iSBDcnt) //ROOT START - . pack("V", 0) - . pack("V", 0x1000) - . pack("V", $iSBDcnt ? 0 : -2) //Small Block Depot - . pack("V", $iSBDcnt) - ); - // Extra BDList Start, Count - if ($iBdCnt < $i1stBdL) { - fwrite( - $FILE, - pack("V", -2) // Extra BDList Start - . pack("V", 0)// Extra BDList Count - ); - } else { - fwrite($FILE, pack("V", $iAll+$iBdCnt) . pack("V", $iBdExL)); - } - - // BDList - for ($i = 0; $i < $i1stBdL && $i < $iBdCnt; ++$i) { - fwrite($FILE, pack("V", $iAll+$i)); - } - if ($i < $i1stBdL) { - $jB = $i1stBdL - $i; - for ($j = 0; $j < $jB; ++$j) { - fwrite($FILE, (pack("V", -1))); - } - } - } - - /** - * Saving big data (PPS's with data bigger than PHPExcel_Shared_OLE::OLE_DATA_SIZE_SMALL) - * - * @access public - * @param integer $iStBlk - * @param array &$raList Reference to array of PPS's - */ - public function _saveBigData($iStBlk, &$raList) - { - $FILE = $this->_FILEH_; - - // cycle through PPS's - $iCount = count($raList); - for ($i = 0; $i < $iCount; ++$i) { - if ($raList[$i]->Type != PHPExcel_Shared_OLE::OLE_PPS_TYPE_DIR) { - $raList[$i]->Size = $raList[$i]->_DataLen(); - if (($raList[$i]->Size >= PHPExcel_Shared_OLE::OLE_DATA_SIZE_SMALL) || (($raList[$i]->Type == PHPExcel_Shared_OLE::OLE_PPS_TYPE_ROOT) && isset($raList[$i]->_data))) { - // Write Data - //if (isset($raList[$i]->_PPS_FILE)) { - // $iLen = 0; - // fseek($raList[$i]->_PPS_FILE, 0); // To The Top - // while ($sBuff = fread($raList[$i]->_PPS_FILE, 4096)) { - // $iLen += strlen($sBuff); - // fwrite($FILE, $sBuff); - // } - //} else { - fwrite($FILE, $raList[$i]->_data); - //} - - if ($raList[$i]->Size % $this->_BIG_BLOCK_SIZE) { - fwrite($FILE, str_repeat("\x00", $this->_BIG_BLOCK_SIZE - ($raList[$i]->Size % $this->_BIG_BLOCK_SIZE))); - } - // Set For PPS - $raList[$i]->_StartBlock = $iStBlk; - $iStBlk += - (floor($raList[$i]->Size / $this->_BIG_BLOCK_SIZE) + - (($raList[$i]->Size % $this->_BIG_BLOCK_SIZE)? 1: 0)); - } - // Close file for each PPS, and unlink it - //if (isset($raList[$i]->_PPS_FILE)) { - // fclose($raList[$i]->_PPS_FILE); - // $raList[$i]->_PPS_FILE = null; - // unlink($raList[$i]->_tmp_filename); - //} - } - } - } - - /** - * get small data (PPS's with data smaller than PHPExcel_Shared_OLE::OLE_DATA_SIZE_SMALL) - * - * @access public - * @param array &$raList Reference to array of PPS's - */ - public function _makeSmallData(&$raList) - { - $sRes = ''; - $FILE = $this->_FILEH_; - $iSmBlk = 0; - - $iCount = count($raList); - for ($i = 0; $i < $iCount; ++$i) { - // Make SBD, small data string - if ($raList[$i]->Type == PHPExcel_Shared_OLE::OLE_PPS_TYPE_FILE) { - if ($raList[$i]->Size <= 0) { - continue; - } - if ($raList[$i]->Size < PHPExcel_Shared_OLE::OLE_DATA_SIZE_SMALL) { - $iSmbCnt = floor($raList[$i]->Size / $this->_SMALL_BLOCK_SIZE) - + (($raList[$i]->Size % $this->_SMALL_BLOCK_SIZE)? 1: 0); - // Add to SBD - $jB = $iSmbCnt - 1; - for ($j = 0; $j < $jB; ++$j) { - fwrite($FILE, pack("V", $j+$iSmBlk+1)); - } - fwrite($FILE, pack("V", -2)); - - //// Add to Data String(this will be written for RootEntry) - //if ($raList[$i]->_PPS_FILE) { - // fseek($raList[$i]->_PPS_FILE, 0); // To The Top - // while ($sBuff = fread($raList[$i]->_PPS_FILE, 4096)) { - // $sRes .= $sBuff; - // } - //} else { - $sRes .= $raList[$i]->_data; - //} - if ($raList[$i]->Size % $this->_SMALL_BLOCK_SIZE) { - $sRes .= str_repeat("\x00", $this->_SMALL_BLOCK_SIZE - ($raList[$i]->Size % $this->_SMALL_BLOCK_SIZE)); - } - // Set for PPS - $raList[$i]->_StartBlock = $iSmBlk; - $iSmBlk += $iSmbCnt; - } - } - } - $iSbCnt = floor($this->_BIG_BLOCK_SIZE / PHPExcel_Shared_OLE::OLE_LONG_INT_SIZE); - if ($iSmBlk % $iSbCnt) { - $iB = $iSbCnt - ($iSmBlk % $iSbCnt); - for ($i = 0; $i < $iB; ++$i) { - fwrite($FILE, pack("V", -1)); - } - } - return $sRes; - } - - /** - * Saves all the PPS's WKs - * - * @access public - * @param array $raList Reference to an array with all PPS's - */ - public function _savePps(&$raList) - { - // Save each PPS WK - $iC = count($raList); - for ($i = 0; $i < $iC; ++$i) { - fwrite($this->_FILEH_, $raList[$i]->_getPpsWk()); - } - // Adjust for Block - $iCnt = count($raList); - $iBCnt = $this->_BIG_BLOCK_SIZE / PHPExcel_Shared_OLE::OLE_PPS_SIZE; - if ($iCnt % $iBCnt) { - fwrite($this->_FILEH_, str_repeat("\x00", ($iBCnt - ($iCnt % $iBCnt)) * PHPExcel_Shared_OLE::OLE_PPS_SIZE)); - } - } - - /** - * Saving Big Block Depot - * - * @access public - * @param integer $iSbdSize - * @param integer $iBsize - * @param integer $iPpsCnt - */ - public function _saveBbd($iSbdSize, $iBsize, $iPpsCnt) - { - $FILE = $this->_FILEH_; - // Calculate Basic Setting - $iBbCnt = $this->_BIG_BLOCK_SIZE / PHPExcel_Shared_OLE::OLE_LONG_INT_SIZE; - $i1stBdL = ($this->_BIG_BLOCK_SIZE - 0x4C) / PHPExcel_Shared_OLE::OLE_LONG_INT_SIZE; - - $iBdExL = 0; - $iAll = $iBsize + $iPpsCnt + $iSbdSize; - $iAllW = $iAll; - $iBdCntW = floor($iAllW / $iBbCnt) + (($iAllW % $iBbCnt)? 1: 0); - $iBdCnt = floor(($iAll + $iBdCntW) / $iBbCnt) + ((($iAllW+$iBdCntW) % $iBbCnt)? 1: 0); - // Calculate BD count - if ($iBdCnt >$i1stBdL) { - while (1) { - ++$iBdExL; - ++$iAllW; - $iBdCntW = floor($iAllW / $iBbCnt) + (($iAllW % $iBbCnt)? 1: 0); - $iBdCnt = floor(($iAllW + $iBdCntW) / $iBbCnt) + ((($iAllW+$iBdCntW) % $iBbCnt)? 1: 0); - if ($iBdCnt <= ($iBdExL*$iBbCnt+ $i1stBdL)) { - break; - } - } - } - - // Making BD - // Set for SBD - if ($iSbdSize > 0) { - for ($i = 0; $i < ($iSbdSize - 1); ++$i) { - fwrite($FILE, pack("V", $i+1)); - } - fwrite($FILE, pack("V", -2)); - } - // Set for B - for ($i = 0; $i < ($iBsize - 1); ++$i) { - fwrite($FILE, pack("V", $i+$iSbdSize+1)); - } - fwrite($FILE, pack("V", -2)); - - // Set for PPS - for ($i = 0; $i < ($iPpsCnt - 1); ++$i) { - fwrite($FILE, pack("V", $i+$iSbdSize+$iBsize+1)); - } - fwrite($FILE, pack("V", -2)); - // Set for BBD itself ( 0xFFFFFFFD : BBD) - for ($i = 0; $i < $iBdCnt; ++$i) { - fwrite($FILE, pack("V", 0xFFFFFFFD)); - } - // Set for ExtraBDList - for ($i = 0; $i < $iBdExL; ++$i) { - fwrite($FILE, pack("V", 0xFFFFFFFC)); - } - // Adjust for Block - if (($iAllW + $iBdCnt) % $iBbCnt) { - $iBlock = ($iBbCnt - (($iAllW + $iBdCnt) % $iBbCnt)); - for ($i = 0; $i < $iBlock; ++$i) { - fwrite($FILE, pack("V", -1)); - } - } - // Extra BDList - if ($iBdCnt > $i1stBdL) { - $iN=0; - $iNb=0; - for ($i = $i1stBdL; $i < $iBdCnt; $i++, ++$iN) { - if ($iN >= ($iBbCnt - 1)) { - $iN = 0; - ++$iNb; - fwrite($FILE, pack("V", $iAll+$iBdCnt+$iNb)); - } - fwrite($FILE, pack("V", $iBsize+$iSbdSize+$iPpsCnt+$i)); - } - if (($iBdCnt-$i1stBdL) % ($iBbCnt-1)) { - $iB = ($iBbCnt - 1) - (($iBdCnt - $i1stBdL) % ($iBbCnt - 1)); - for ($i = 0; $i < $iB; ++$i) { - fwrite($FILE, pack("V", -1)); - } - } - fwrite($FILE, pack("V", -2)); - } - } -} diff --git a/Utils/PHPExcel/Shared/OLERead.php b/Utils/PHPExcel/Shared/OLERead.php deleted file mode 100644 index 6b15d97..0000000 --- a/Utils/PHPExcel/Shared/OLERead.php +++ /dev/null @@ -1,318 +0,0 @@ -<?php -/** - * PHPExcel - * - * Copyright (c) 2006 - 2015 PHPExcel - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - * - * @category PHPExcel - * @package PHPExcel_Shared - * @copyright Copyright (c) 2006 - 2015 PHPExcel (http://www.codeplex.com/PHPExcel) - * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL - * @version ##VERSION##, ##DATE## - */ - -defined('IDENTIFIER_OLE') || - define('IDENTIFIER_OLE', pack('CCCCCCCC', 0xd0, 0xcf, 0x11, 0xe0, 0xa1, 0xb1, 0x1a, 0xe1)); - -class PHPExcel_Shared_OLERead -{ - private $data = ''; - - // OLE identifier - const IDENTIFIER_OLE = IDENTIFIER_OLE; - - // Size of a sector = 512 bytes - const BIG_BLOCK_SIZE = 0x200; - - // Size of a short sector = 64 bytes - const SMALL_BLOCK_SIZE = 0x40; - - // Size of a directory entry always = 128 bytes - const PROPERTY_STORAGE_BLOCK_SIZE = 0x80; - - // Minimum size of a standard stream = 4096 bytes, streams smaller than this are stored as short streams - const SMALL_BLOCK_THRESHOLD = 0x1000; - - // header offsets - const NUM_BIG_BLOCK_DEPOT_BLOCKS_POS = 0x2c; - const ROOT_START_BLOCK_POS = 0x30; - const SMALL_BLOCK_DEPOT_BLOCK_POS = 0x3c; - const EXTENSION_BLOCK_POS = 0x44; - const NUM_EXTENSION_BLOCK_POS = 0x48; - const BIG_BLOCK_DEPOT_BLOCKS_POS = 0x4c; - - // property storage offsets (directory offsets) - const SIZE_OF_NAME_POS = 0x40; - const TYPE_POS = 0x42; - const START_BLOCK_POS = 0x74; - const SIZE_POS = 0x78; - - - - public $wrkbook = null; - public $summaryInformation = null; - public $documentSummaryInformation = null; - - - /** - * Read the file - * - * @param $sFileName string Filename - * @throws PHPExcel_Reader_Exception - */ - public function read($sFileName) - { - // Check if file exists and is readable - if (!is_readable($sFileName)) { - throw new PHPExcel_Reader_Exception("Could not open " . $sFileName . " for reading! File does not exist, or it is not readable."); - } - - // Get the file identifier - // Don't bother reading the whole file until we know it's a valid OLE file - $this->data = file_get_contents($sFileName, false, null, 0, 8); - - // Check OLE identifier - if ($this->data != self::IDENTIFIER_OLE) { - throw new PHPExcel_Reader_Exception('The filename ' . $sFileName . ' is not recognised as an OLE file'); - } - - // Get the file data - $this->data = file_get_contents($sFileName); - - // Total number of sectors used for the SAT - $this->numBigBlockDepotBlocks = self::getInt4d($this->data, self::NUM_BIG_BLOCK_DEPOT_BLOCKS_POS); - - // SecID of the first sector of the directory stream - $this->rootStartBlock = self::getInt4d($this->data, self::ROOT_START_BLOCK_POS); - - // SecID of the first sector of the SSAT (or -2 if not extant) - $this->sbdStartBlock = self::getInt4d($this->data, self::SMALL_BLOCK_DEPOT_BLOCK_POS); - - // SecID of the first sector of the MSAT (or -2 if no additional sectors are used) - $this->extensionBlock = self::getInt4d($this->data, self::EXTENSION_BLOCK_POS); - - // Total number of sectors used by MSAT - $this->numExtensionBlocks = self::getInt4d($this->data, self::NUM_EXTENSION_BLOCK_POS); - - $bigBlockDepotBlocks = array(); - $pos = self::BIG_BLOCK_DEPOT_BLOCKS_POS; - - $bbdBlocks = $this->numBigBlockDepotBlocks; - - if ($this->numExtensionBlocks != 0) { - $bbdBlocks = (self::BIG_BLOCK_SIZE - self::BIG_BLOCK_DEPOT_BLOCKS_POS)/4; - } - - for ($i = 0; $i < $bbdBlocks; ++$i) { - $bigBlockDepotBlocks[$i] = self::getInt4d($this->data, $pos); - $pos += 4; - } - - for ($j = 0; $j < $this->numExtensionBlocks; ++$j) { - $pos = ($this->extensionBlock + 1) * self::BIG_BLOCK_SIZE; - $blocksToRead = min($this->numBigBlockDepotBlocks - $bbdBlocks, self::BIG_BLOCK_SIZE / 4 - 1); - - for ($i = $bbdBlocks; $i < $bbdBlocks + $blocksToRead; ++$i) { - $bigBlockDepotBlocks[$i] = self::getInt4d($this->data, $pos); - $pos += 4; - } - - $bbdBlocks += $blocksToRead; - if ($bbdBlocks < $this->numBigBlockDepotBlocks) { - $this->extensionBlock = self::getInt4d($this->data, $pos); - } - } - - $pos = 0; - $this->bigBlockChain = ''; - $bbs = self::BIG_BLOCK_SIZE / 4; - for ($i = 0; $i < $this->numBigBlockDepotBlocks; ++$i) { - $pos = ($bigBlockDepotBlocks[$i] + 1) * self::BIG_BLOCK_SIZE; - - $this->bigBlockChain .= substr($this->data, $pos, 4*$bbs); - $pos += 4*$bbs; - } - - $pos = 0; - $sbdBlock = $this->sbdStartBlock; - $this->smallBlockChain = ''; - while ($sbdBlock != -2) { - $pos = ($sbdBlock + 1) * self::BIG_BLOCK_SIZE; - - $this->smallBlockChain .= substr($this->data, $pos, 4*$bbs); - $pos += 4*$bbs; - - $sbdBlock = self::getInt4d($this->bigBlockChain, $sbdBlock*4); - } - - // read the directory stream - $block = $this->rootStartBlock; - $this->entry = $this->_readData($block); - - $this->readPropertySets(); - } - - /** - * Extract binary stream data - * - * @return string - */ - public function getStream($stream) - { - if ($stream === null) { - return null; - } - - $streamData = ''; - - if ($this->props[$stream]['size'] < self::SMALL_BLOCK_THRESHOLD) { - $rootdata = $this->_readData($this->props[$this->rootentry]['startBlock']); - - $block = $this->props[$stream]['startBlock']; - - while ($block != -2) { - $pos = $block * self::SMALL_BLOCK_SIZE; - $streamData .= substr($rootdata, $pos, self::SMALL_BLOCK_SIZE); - - $block = self::getInt4d($this->smallBlockChain, $block*4); - } - - return $streamData; - } else { - $numBlocks = $this->props[$stream]['size'] / self::BIG_BLOCK_SIZE; - if ($this->props[$stream]['size'] % self::BIG_BLOCK_SIZE != 0) { - ++$numBlocks; - } - - if ($numBlocks == 0) { - return ''; - } - - $block = $this->props[$stream]['startBlock']; - - while ($block != -2) { - $pos = ($block + 1) * self::BIG_BLOCK_SIZE; - $streamData .= substr($this->data, $pos, self::BIG_BLOCK_SIZE); - $block = self::getInt4d($this->bigBlockChain, $block*4); - } - - return $streamData; - } - } - - /** - * Read a standard stream (by joining sectors using information from SAT) - * - * @param int $bl Sector ID where the stream starts - * @return string Data for standard stream - */ - private function _readData($bl) - { - $block = $bl; - $data = ''; - - while ($block != -2) { - $pos = ($block + 1) * self::BIG_BLOCK_SIZE; - $data .= substr($this->data, $pos, self::BIG_BLOCK_SIZE); - $block = self::getInt4d($this->bigBlockChain, $block*4); - } - return $data; - } - - /** - * Read entries in the directory stream. - */ - private function readPropertySets() - { - $offset = 0; - - // loop through entires, each entry is 128 bytes - $entryLen = strlen($this->entry); - while ($offset < $entryLen) { - // entry data (128 bytes) - $d = substr($this->entry, $offset, self::PROPERTY_STORAGE_BLOCK_SIZE); - - // size in bytes of name - $nameSize = ord($d[self::SIZE_OF_NAME_POS]) | (ord($d[self::SIZE_OF_NAME_POS+1]) << 8); - - // type of entry - $type = ord($d[self::TYPE_POS]); - - // sectorID of first sector or short sector, if this entry refers to a stream (the case with workbook) - // sectorID of first sector of the short-stream container stream, if this entry is root entry - $startBlock = self::getInt4d($d, self::START_BLOCK_POS); - - $size = self::getInt4d($d, self::SIZE_POS); - - $name = str_replace("\x00", "", substr($d, 0, $nameSize)); - - $this->props[] = array( - 'name' => $name, - 'type' => $type, - 'startBlock' => $startBlock, - 'size' => $size - ); - - // tmp helper to simplify checks - $upName = strtoupper($name); - - // Workbook directory entry (BIFF5 uses Book, BIFF8 uses Workbook) - if (($upName === 'WORKBOOK') || ($upName === 'BOOK')) { - $this->wrkbook = count($this->props) - 1; - } elseif ($upName === 'ROOT ENTRY' || $upName === 'R') { - // Root entry - $this->rootentry = count($this->props) - 1; - } - - // Summary information - if ($name == chr(5) . 'SummaryInformation') { -// echo 'Summary Information<br />'; - $this->summaryInformation = count($this->props) - 1; - } - - // Additional Document Summary information - if ($name == chr(5) . 'DocumentSummaryInformation') { -// echo 'Document Summary Information<br />'; - $this->documentSummaryInformation = count($this->props) - 1; - } - - $offset += self::PROPERTY_STORAGE_BLOCK_SIZE; - } - } - - /** - * Read 4 bytes of data at specified position - * - * @param string $data - * @param int $pos - * @return int - */ - private static function getInt4d($data, $pos) - { - // FIX: represent numbers correctly on 64-bit system - // http://sourceforge.net/tracker/index.php?func=detail&aid=1487372&group_id=99160&atid=623334 - // Hacked by Andreas Rehm 2006 to ensure correct result of the <<24 block on 32 and 64bit systems - $_or_24 = ord($data[$pos + 3]); - if ($_or_24 >= 128) { - // negative number - $_ord_24 = -abs((256 - $_or_24) << 24); - } else { - $_ord_24 = ($_or_24 & 127) << 24; - } - return ord($data[$pos]) | (ord($data[$pos + 1]) << 8) | (ord($data[$pos + 2]) << 16) | $_ord_24; - } -} diff --git a/Utils/PHPExcel/Shared/PCLZip/gnu-lgpl.txt b/Utils/PHPExcel/Shared/PCLZip/gnu-lgpl.txt deleted file mode 100644 index b1e3f5a..0000000 --- a/Utils/PHPExcel/Shared/PCLZip/gnu-lgpl.txt +++ /dev/null @@ -1,504 +0,0 @@ - GNU LESSER GENERAL PUBLIC LICENSE - Version 2.1, February 1999 - - Copyright (C) 1991, 1999 Free Software Foundation, Inc. - 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - Everyone is permitted to copy and distribute verbatim copies - of this license document, but changing it is not allowed. - -[This is the first released version of the Lesser GPL. It also counts - as the successor of the GNU Library Public License, version 2, hence - the version number 2.1.] - - Preamble - - The licenses for most software are designed to take away your -freedom to share and change it. By contrast, the GNU General Public -Licenses are intended to guarantee your freedom to share and change -free software--to make sure the software is free for all its users. - - This license, the Lesser General Public License, applies to some -specially designated software packages--typically libraries--of the -Free Software Foundation and other authors who decide to use it. You -can use it too, but we suggest you first think carefully about whether -this license or the ordinary General Public License is the better -strategy to use in any particular case, based on the explanations below. - - When we speak of free software, we are referring to freedom of use, -not price. Our General Public Licenses are designed to make sure that -you have the freedom to distribute copies of free software (and charge -for this service if you wish); that you receive source code or can get -it if you want it; that you can change the software and use pieces of -it in new free programs; and that you are informed that you can do -these things. - - To protect your rights, we need to make restrictions that forbid -distributors to deny you these rights or to ask you to surrender these -rights. These restrictions translate to certain responsibilities for -you if you distribute copies of the library or if you modify it. - - For example, if you distribute copies of the library, whether gratis -or for a fee, you must give the recipients all the rights that we gave -you. You must make sure that they, too, receive or can get the source -code. If you link other code with the library, you must provide -complete object files to the recipients, so that they can relink them -with the library after making changes to the library and recompiling -it. And you must show them these terms so they know their rights. - - We protect your rights with a two-step method: (1) we copyright the -library, and (2) we offer you this license, which gives you legal -permission to copy, distribute and/or modify the library. - - To protect each distributor, we want to make it very clear that -there is no warranty for the free library. Also, if the library is -modified by someone else and passed on, the recipients should know -that what they have is not the original version, so that the original -author's reputation will not be affected by problems that might be -introduced by others. - - Finally, software patents pose a constant threat to the existence of -any free program. We wish to make sure that a company cannot -effectively restrict the users of a free program by obtaining a -restrictive license from a patent holder. Therefore, we insist that -any patent license obtained for a version of the library must be -consistent with the full freedom of use specified in this license. - - Most GNU software, including some libraries, is covered by the -ordinary GNU General Public License. This license, the GNU Lesser -General Public License, applies to certain designated libraries, and -is quite different from the ordinary General Public License. We use -this license for certain libraries in order to permit linking those -libraries into non-free programs. - - When a program is linked with a library, whether statically or using -a shared library, the combination of the two is legally speaking a -combined work, a derivative of the original library. The ordinary -General Public License therefore permits such linking only if the -entire combination fits its criteria of freedom. The Lesser General -Public License permits more lax criteria for linking other code with -the library. - - We call this license the "Lesser" General Public License because it -does Less to protect the user's freedom than the ordinary General -Public License. It also provides other free software developers Less -of an advantage over competing non-free programs. These disadvantages -are the reason we use the ordinary General Public License for many -libraries. However, the Lesser license provides advantages in certain -special circumstances. - - For example, on rare occasions, there may be a special need to -encourage the widest possible use of a certain library, so that it becomes -a de-facto standard. To achieve this, non-free programs must be -allowed to use the library. A more frequent case is that a free -library does the same job as widely used non-free libraries. In this -case, there is little to gain by limiting the free library to free -software only, so we use the Lesser General Public License. - - In other cases, permission to use a particular library in non-free -programs enables a greater number of people to use a large body of -free software. For example, permission to use the GNU C Library in -non-free programs enables many more people to use the whole GNU -operating system, as well as its variant, the GNU/Linux operating -system. - - Although the Lesser General Public License is Less protective of the -users' freedom, it does ensure that the user of a program that is -linked with the Library has the freedom and the wherewithal to run -that program using a modified version of the Library. - - The precise terms and conditions for copying, distribution and -modification follow. Pay close attention to the difference between a -"work based on the library" and a "work that uses the library". The -former contains code derived from the library, whereas the latter must -be combined with the library in order to run. - - GNU LESSER GENERAL PUBLIC LICENSE - TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION - - 0. This License Agreement applies to any software library or other -program which contains a notice placed by the copyright holder or -other authorized party saying it may be distributed under the terms of -this Lesser General Public License (also called "this License"). -Each licensee is addressed as "you". - - A "library" means a collection of software functions and/or data -prepared so as to be conveniently linked with application programs -(which use some of those functions and data) to form executables. - - The "Library", below, refers to any such software library or work -which has been distributed under these terms. A "work based on the -Library" means either the Library or any derivative work under -copyright law: that is to say, a work containing the Library or a -portion of it, either verbatim or with modifications and/or translated -straightforwardly into another language. (Hereinafter, translation is -included without limitation in the term "modification".) - - "Source code" for a work means the preferred form of the work for -making modifications to it. For a library, complete source code means -all the source code for all modules it contains, plus any associated -interface definition files, plus the scripts used to control compilation -and installation of the library. - - Activities other than copying, distribution and modification are not -covered by this License; they are outside its scope. The act of -running a program using the Library is not restricted, and output from -such a program is covered only if its contents constitute a work based -on the Library (independent of the use of the Library in a tool for -writing it). Whether that is true depends on what the Library does -and what the program that uses the Library does. - - 1. You may copy and distribute verbatim copies of the Library's -complete source code as you receive it, in any medium, provided that -you conspicuously and appropriately publish on each copy an -appropriate copyright notice and disclaimer of warranty; keep intact -all the notices that refer to this License and to the absence of any -warranty; and distribute a copy of this License along with the -Library. - - You may charge a fee for the physical act of transferring a copy, -and you may at your option offer warranty protection in exchange for a -fee. - - 2. You may modify your copy or copies of the Library or any portion -of it, thus forming a work based on the Library, and copy and -distribute such modifications or work under the terms of Section 1 -above, provided that you also meet all of these conditions: - - a) The modified work must itself be a software library. - - b) You must cause the files modified to carry prominent notices - stating that you changed the files and the date of any change. - - c) You must cause the whole of the work to be licensed at no - charge to all third parties under the terms of this License. - - d) If a facility in the modified Library refers to a function or a - table of data to be supplied by an application program that uses - the facility, other than as an argument passed when the facility - is invoked, then you must make a good faith effort to ensure that, - in the event an application does not supply such function or - table, the facility still operates, and performs whatever part of - its purpose remains meaningful. - - (For example, a function in a library to compute square roots has - a purpose that is entirely well-defined independent of the - application. Therefore, Subsection 2d requires that any - application-supplied function or table used by this function must - be optional: if the application does not supply it, the square - root function must still compute square roots.) - -These requirements apply to the modified work as a whole. If -identifiable sections of that work are not derived from the Library, -and can be reasonably considered independent and separate works in -themselves, then this License, and its terms, do not apply to those -sections when you distribute them as separate works. But when you -distribute the same sections as part of a whole which is a work based -on the Library, the distribution of the whole must be on the terms of -this License, whose permissions for other licensees extend to the -entire whole, and thus to each and every part regardless of who wrote -it. - -Thus, it is not the intent of this section to claim rights or contest -your rights to work written entirely by you; rather, the intent is to -exercise the right to control the distribution of derivative or -collective works based on the Library. - -In addition, mere aggregation of another work not based on the Library -with the Library (or with a work based on the Library) on a volume of -a storage or distribution medium does not bring the other work under -the scope of this License. - - 3. You may opt to apply the terms of the ordinary GNU General Public -License instead of this License to a given copy of the Library. To do -this, you must alter all the notices that refer to this License, so -that they refer to the ordinary GNU General Public License, version 2, -instead of to this License. (If a newer version than version 2 of the -ordinary GNU General Public License has appeared, then you can specify -that version instead if you wish.) Do not make any other change in -these notices. - - Once this change is made in a given copy, it is irreversible for -that copy, so the ordinary GNU General Public License applies to all -subsequent copies and derivative works made from that copy. - - This option is useful when you wish to copy part of the code of -the Library into a program that is not a library. - - 4. You may copy and distribute the Library (or a portion or -derivative of it, under Section 2) in object code or executable form -under the terms of Sections 1 and 2 above provided that you accompany -it with the complete corresponding machine-readable source code, which -must be distributed under the terms of Sections 1 and 2 above on a -medium customarily used for software interchange. - - If distribution of object code is made by offering access to copy -from a designated place, then offering equivalent access to copy the -source code from the same place satisfies the requirement to -distribute the source code, even though third parties are not -compelled to copy the source along with the object code. - - 5. A program that contains no derivative of any portion of the -Library, but is designed to work with the Library by being compiled or -linked with it, is called a "work that uses the Library". Such a -work, in isolation, is not a derivative work of the Library, and -therefore falls outside the scope of this License. - - However, linking a "work that uses the Library" with the Library -creates an executable that is a derivative of the Library (because it -contains portions of the Library), rather than a "work that uses the -library". The executable is therefore covered by this License. -Section 6 states terms for distribution of such executables. - - When a "work that uses the Library" uses material from a header file -that is part of the Library, the object code for the work may be a -derivative work of the Library even though the source code is not. -Whether this is true is especially significant if the work can be -linked without the Library, or if the work is itself a library. The -threshold for this to be true is not precisely defined by law. - - If such an object file uses only numerical parameters, data -structure layouts and accessors, and small macros and small inline -functions (ten lines or less in length), then the use of the object -file is unrestricted, regardless of whether it is legally a derivative -work. (Executables containing this object code plus portions of the -Library will still fall under Section 6.) - - Otherwise, if the work is a derivative of the Library, you may -distribute the object code for the work under the terms of Section 6. -Any executables containing that work also fall under Section 6, -whether or not they are linked directly with the Library itself. - - 6. As an exception to the Sections above, you may also combine or -link a "work that uses the Library" with the Library to produce a -work containing portions of the Library, and distribute that work -under terms of your choice, provided that the terms permit -modification of the work for the customer's own use and reverse -engineering for debugging such modifications. - - You must give prominent notice with each copy of the work that the -Library is used in it and that the Library and its use are covered by -this License. You must supply a copy of this License. If the work -during execution displays copyright notices, you must include the -copyright notice for the Library among them, as well as a reference -directing the user to the copy of this License. Also, you must do one -of these things: - - a) Accompany the work with the complete corresponding - machine-readable source code for the Library including whatever - changes were used in the work (which must be distributed under - Sections 1 and 2 above); and, if the work is an executable linked - with the Library, with the complete machine-readable "work that - uses the Library", as object code and/or source code, so that the - user can modify the Library and then relink to produce a modified - executable containing the modified Library. (It is understood - that the user who changes the contents of definitions files in the - Library will not necessarily be able to recompile the application - to use the modified definitions.) - - b) Use a suitable shared library mechanism for linking with the - Library. A suitable mechanism is one that (1) uses at run time a - copy of the library already present on the user's computer system, - rather than copying library functions into the executable, and (2) - will operate properly with a modified version of the library, if - the user installs one, as long as the modified version is - interface-compatible with the version that the work was made with. - - c) Accompany the work with a written offer, valid for at - least three years, to give the same user the materials - specified in Subsection 6a, above, for a charge no more - than the cost of performing this distribution. - - d) If distribution of the work is made by offering access to copy - from a designated place, offer equivalent access to copy the above - specified materials from the same place. - - e) Verify that the user has already received a copy of these - materials or that you have already sent this user a copy. - - For an executable, the required form of the "work that uses the -Library" must include any data and utility programs needed for -reproducing the executable from it. However, as a special exception, -the materials to be distributed need not include anything that is -normally distributed (in either source or binary form) with the major -components (compiler, kernel, and so on) of the operating system on -which the executable runs, unless that component itself accompanies -the executable. - - It may happen that this requirement contradicts the license -restrictions of other proprietary libraries that do not normally -accompany the operating system. Such a contradiction means you cannot -use both them and the Library together in an executable that you -distribute. - - 7. You may place library facilities that are a work based on the -Library side-by-side in a single library together with other library -facilities not covered by this License, and distribute such a combined -library, provided that the separate distribution of the work based on -the Library and of the other library facilities is otherwise -permitted, and provided that you do these two things: - - a) Accompany the combined library with a copy of the same work - based on the Library, uncombined with any other library - facilities. This must be distributed under the terms of the - Sections above. - - b) Give prominent notice with the combined library of the fact - that part of it is a work based on the Library, and explaining - where to find the accompanying uncombined form of the same work. - - 8. You may not copy, modify, sublicense, link with, or distribute -the Library except as expressly provided under this License. Any -attempt otherwise to copy, modify, sublicense, link with, or -distribute the Library is void, and will automatically terminate your -rights under this License. However, parties who have received copies, -or rights, from you under this License will not have their licenses -terminated so long as such parties remain in full compliance. - - 9. You are not required to accept this License, since you have not -signed it. However, nothing else grants you permission to modify or -distribute the Library or its derivative works. These actions are -prohibited by law if you do not accept this License. Therefore, by -modifying or distributing the Library (or any work based on the -Library), you indicate your acceptance of this License to do so, and -all its terms and conditions for copying, distributing or modifying -the Library or works based on it. - - 10. Each time you redistribute the Library (or any work based on the -Library), the recipient automatically receives a license from the -original licensor to copy, distribute, link with or modify the Library -subject to these terms and conditions. You may not impose any further -restrictions on the recipients' exercise of the rights granted herein. -You are not responsible for enforcing compliance by third parties with -this License. - - 11. If, as a consequence of a court judgment or allegation of patent -infringement or for any other reason (not limited to patent issues), -conditions are imposed on you (whether by court order, agreement or -otherwise) that contradict the conditions of this License, they do not -excuse you from the conditions of this License. If you cannot -distribute so as to satisfy simultaneously your obligations under this -License and any other pertinent obligations, then as a consequence you -may not distribute the Library at all. For example, if a patent -license would not permit royalty-free redistribution of the Library by -all those who receive copies directly or indirectly through you, then -the only way you could satisfy both it and this License would be to -refrain entirely from distribution of the Library. - -If any portion of this section is held invalid or unenforceable under any -particular circumstance, the balance of the section is intended to apply, -and the section as a whole is intended to apply in other circumstances. - -It is not the purpose of this section to induce you to infringe any -patents or other property right claims or to contest validity of any -such claims; this section has the sole purpose of protecting the -integrity of the free software distribution system which is -implemented by public license practices. Many people have made -generous contributions to the wide range of software distributed -through that system in reliance on consistent application of that -system; it is up to the author/donor to decide if he or she is willing -to distribute software through any other system and a licensee cannot -impose that choice. - -This section is intended to make thoroughly clear what is believed to -be a consequence of the rest of this License. - - 12. If the distribution and/or use of the Library is restricted in -certain countries either by patents or by copyrighted interfaces, the -original copyright holder who places the Library under this License may add -an explicit geographical distribution limitation excluding those countries, -so that distribution is permitted only in or among countries not thus -excluded. In such case, this License incorporates the limitation as if -written in the body of this License. - - 13. The Free Software Foundation may publish revised and/or new -versions of the Lesser General Public License from time to time. -Such new versions will be similar in spirit to the present version, -but may differ in detail to address new problems or concerns. - -Each version is given a distinguishing version number. If the Library -specifies a version number of this License which applies to it and -"any later version", you have the option of following the terms and -conditions either of that version or of any later version published by -the Free Software Foundation. If the Library does not specify a -license version number, you may choose any version ever published by -the Free Software Foundation. - - 14. If you wish to incorporate parts of the Library into other free -programs whose distribution conditions are incompatible with these, -write to the author to ask for permission. For software which is -copyrighted by the Free Software Foundation, write to the Free -Software Foundation; we sometimes make exceptions for this. Our -decision will be guided by the two goals of preserving the free status -of all derivatives of our free software and of promoting the sharing -and reuse of software generally. - - NO WARRANTY - - 15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO -WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW. -EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR -OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY -KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE -IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE -LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME -THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. - - 16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN -WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY -AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU -FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR -CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE -LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING -RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A -FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF -SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH -DAMAGES. - - END OF TERMS AND CONDITIONS - - How to Apply These Terms to Your New Libraries - - If you develop a new library, and you want it to be of the greatest -possible use to the public, we recommend making it free software that -everyone can redistribute and change. You can do so by permitting -redistribution under these terms (or, alternatively, under the terms of the -ordinary General Public License). - - To apply these terms, attach the following notices to the library. It is -safest to attach them to the start of each source file to most effectively -convey the exclusion of warranty; and each file should have at least the -"copyright" line and a pointer to where the full notice is found. - - <one line to give the library's name and a brief idea of what it does.> - Copyright (C) <year> <name of author> - - This library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - This library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with this library; if not, write to the Free Software - Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - -Also add information on how to contact you by electronic and paper mail. - -You should also get your employer (if you work as a programmer) or your -school, if any, to sign a "copyright disclaimer" for the library, if -necessary. Here is a sample; alter the names: - - Yoyodyne, Inc., hereby disclaims all copyright interest in the - library `Frob' (a library for tweaking knobs) written by James Random Hacker. - - <signature of Ty Coon>, 1 April 1990 - Ty Coon, President of Vice - -That's all there is to it! - - diff --git a/Utils/PHPExcel/Shared/PCLZip/pclzip.lib.php b/Utils/PHPExcel/Shared/PCLZip/pclzip.lib.php deleted file mode 100644 index 94b9b0b..0000000 --- a/Utils/PHPExcel/Shared/PCLZip/pclzip.lib.php +++ /dev/null @@ -1,5221 +0,0 @@ -<?php -// -------------------------------------------------------------------------------- -// PhpConcept Library - Zip Module 2.8.2 -// -------------------------------------------------------------------------------- -// License GNU/LGPL - Vincent Blavet - August 2009 -// http://www.phpconcept.net -// -------------------------------------------------------------------------------- -// -// Presentation : -// PclZip is a PHP library that manage ZIP archives. -// So far tests show that archives generated by PclZip are readable by -// WinZip application and other tools. -// -// Description : -// See readme.txt and http://www.phpconcept.net -// -// Warning : -// This library and the associated files are non commercial, non professional -// work. -// It should not have unexpected results. However if any damage is caused by -// this software the author can not be responsible. -// The use of this software is at the risk of the user. -// -// -------------------------------------------------------------------------------- -// $Id: pclzip.lib.php,v 1.60 2009/09/30 21:01:04 vblavet Exp $ -// -------------------------------------------------------------------------------- - -// ----- Constants -if (!defined('PCLZIP_READ_BLOCK_SIZE')) { - define('PCLZIP_READ_BLOCK_SIZE', 2048); -} - -// ----- File list separator -// In version 1.x of PclZip, the separator for file list is a space -// (which is not a very smart choice, specifically for windows paths !). -// A better separator should be a comma (,). This constant gives you the -// abilty to change that. -// However notice that changing this value, may have impact on existing -// scripts, using space separated filenames. -// Recommanded values for compatibility with older versions : -//define('PCLZIP_SEPARATOR', ' '); -// Recommanded values for smart separation of filenames. -if (!defined('PCLZIP_SEPARATOR')) { - define('PCLZIP_SEPARATOR', ','); -} - -// ----- Error configuration -// 0 : PclZip Class integrated error handling -// 1 : PclError external library error handling. By enabling this -// you must ensure that you have included PclError library. -// [2,...] : reserved for futur use -if (!defined('PCLZIP_ERROR_EXTERNAL')) { - define('PCLZIP_ERROR_EXTERNAL', 0); -} - -// ----- Optional static temporary directory -// By default temporary files are generated in the script current -// path. -// If defined : -// - MUST BE terminated by a '/'. -// - MUST be a valid, already created directory -// Samples : -// define('PCLZIP_TEMPORARY_DIR', '/temp/'); -// define('PCLZIP_TEMPORARY_DIR', 'C:/Temp/'); -if (!defined('PCLZIP_TEMPORARY_DIR')) { - define('PCLZIP_TEMPORARY_DIR', ''); -} - -// ----- Optional threshold ratio for use of temporary files -// Pclzip sense the size of the file to add/extract and decide to -// use or not temporary file. The algorythm is looking for -// memory_limit of PHP and apply a ratio. -// threshold = memory_limit * ratio. -// Recommended values are under 0.5. Default 0.47. -// Samples : -// define('PCLZIP_TEMPORARY_FILE_RATIO', 0.5); -if (!defined('PCLZIP_TEMPORARY_FILE_RATIO')) { - define('PCLZIP_TEMPORARY_FILE_RATIO', 0.47); -} - -// -------------------------------------------------------------------------------- -// ***** UNDER THIS LINE NOTHING NEEDS TO BE MODIFIED ***** -// -------------------------------------------------------------------------------- - -// ----- Global variables -$g_pclzip_version = "2.8.2"; - -// ----- Error codes -// -1 : Unable to open file in binary write mode -// -2 : Unable to open file in binary read mode -// -3 : Invalid parameters -// -4 : File does not exist -// -5 : Filename is too long (max. 255) -// -6 : Not a valid zip file -// -7 : Invalid extracted file size -// -8 : Unable to create directory -// -9 : Invalid archive extension -// -10 : Invalid archive format -// -11 : Unable to delete file (unlink) -// -12 : Unable to rename file (rename) -// -13 : Invalid header checksum -// -14 : Invalid archive size -define('PCLZIP_ERR_USER_ABORTED', 2); -define('PCLZIP_ERR_NO_ERROR', 0); -define('PCLZIP_ERR_WRITE_OPEN_FAIL', -1); -define('PCLZIP_ERR_READ_OPEN_FAIL', -2); -define('PCLZIP_ERR_INVALID_PARAMETER', -3); -define('PCLZIP_ERR_MISSING_FILE', -4); -define('PCLZIP_ERR_FILENAME_TOO_LONG', -5); -define('PCLZIP_ERR_INVALID_ZIP', -6); -define('PCLZIP_ERR_BAD_EXTRACTED_FILE', -7); -define('PCLZIP_ERR_DIR_CREATE_FAIL', -8); -define('PCLZIP_ERR_BAD_EXTENSION', -9); -define('PCLZIP_ERR_BAD_FORMAT', -10); -define('PCLZIP_ERR_DELETE_FILE_FAIL', -11); -define('PCLZIP_ERR_RENAME_FILE_FAIL', -12); -define('PCLZIP_ERR_BAD_CHECKSUM', -13); -define('PCLZIP_ERR_INVALID_ARCHIVE_ZIP', -14); -define('PCLZIP_ERR_MISSING_OPTION_VALUE', -15); -define('PCLZIP_ERR_INVALID_OPTION_VALUE', -16); -define('PCLZIP_ERR_ALREADY_A_DIRECTORY', -17); -define('PCLZIP_ERR_UNSUPPORTED_COMPRESSION', -18); -define('PCLZIP_ERR_UNSUPPORTED_ENCRYPTION', -19); -define('PCLZIP_ERR_INVALID_ATTRIBUTE_VALUE', -20); -define('PCLZIP_ERR_DIRECTORY_RESTRICTION', -21); - -// ----- Options values -define('PCLZIP_OPT_PATH', 77001); -define('PCLZIP_OPT_ADD_PATH', 77002); -define('PCLZIP_OPT_REMOVE_PATH', 77003); -define('PCLZIP_OPT_REMOVE_ALL_PATH', 77004); -define('PCLZIP_OPT_SET_CHMOD', 77005); -define('PCLZIP_OPT_EXTRACT_AS_STRING', 77006); -define('PCLZIP_OPT_NO_COMPRESSION', 77007); -define('PCLZIP_OPT_BY_NAME', 77008); -define('PCLZIP_OPT_BY_INDEX', 77009); -define('PCLZIP_OPT_BY_EREG', 77010); -define('PCLZIP_OPT_BY_PREG', 77011); -define('PCLZIP_OPT_COMMENT', 77012); -define('PCLZIP_OPT_ADD_COMMENT', 77013); -define('PCLZIP_OPT_PREPEND_COMMENT', 77014); -define('PCLZIP_OPT_EXTRACT_IN_OUTPUT', 77015); -define('PCLZIP_OPT_REPLACE_NEWER', 77016); -define('PCLZIP_OPT_STOP_ON_ERROR', 77017); -// Having big trouble with crypt. Need to multiply 2 long int -// which is not correctly supported by PHP ... -//define('PCLZIP_OPT_CRYPT', 77018); -define('PCLZIP_OPT_EXTRACT_DIR_RESTRICTION', 77019); -define('PCLZIP_OPT_TEMP_FILE_THRESHOLD', 77020); -define('PCLZIP_OPT_ADD_TEMP_FILE_THRESHOLD', 77020); // alias -define('PCLZIP_OPT_TEMP_FILE_ON', 77021); -define('PCLZIP_OPT_ADD_TEMP_FILE_ON', 77021); // alias -define('PCLZIP_OPT_TEMP_FILE_OFF', 77022); -define('PCLZIP_OPT_ADD_TEMP_FILE_OFF', 77022); // alias - -// ----- File description attributes -define('PCLZIP_ATT_FILE_NAME', 79001); -define('PCLZIP_ATT_FILE_NEW_SHORT_NAME', 79002); -define('PCLZIP_ATT_FILE_NEW_FULL_NAME', 79003); -define('PCLZIP_ATT_FILE_MTIME', 79004); -define('PCLZIP_ATT_FILE_CONTENT', 79005); -define('PCLZIP_ATT_FILE_COMMENT', 79006); - -// ----- Call backs values -define('PCLZIP_CB_PRE_EXTRACT', 78001); -define('PCLZIP_CB_POST_EXTRACT', 78002); -define('PCLZIP_CB_PRE_ADD', 78003); -define('PCLZIP_CB_POST_ADD', 78004); -/* For futur use -define('PCLZIP_CB_PRE_LIST', 78005); -define('PCLZIP_CB_POST_LIST', 78006); -define('PCLZIP_CB_PRE_DELETE', 78007); -define('PCLZIP_CB_POST_DELETE', 78008); -*/ - -// -------------------------------------------------------------------------------- -// Class : PclZip -// Description : -// PclZip is the class that represent a Zip archive. -// The public methods allow the manipulation of the archive. -// Attributes : -// Attributes must not be accessed directly. -// Methods : -// PclZip() : Object creator -// create() : Creates the Zip archive -// listContent() : List the content of the Zip archive -// extract() : Extract the content of the archive -// properties() : List the properties of the archive -// -------------------------------------------------------------------------------- -class PclZip -{ - // ----- Filename of the zip file - public $zipname = ''; - - // ----- File descriptor of the zip file - public $zip_fd = 0; - - // ----- Internal error handling - public $error_code = 1; - public $error_string = ''; - - // ----- Current status of the magic_quotes_runtime - // This value store the php configuration for magic_quotes - // The class can then disable the magic_quotes and reset it after - public $magic_quotes_status; - - // -------------------------------------------------------------------------------- - // Function : PclZip() - // Description : - // Creates a PclZip object and set the name of the associated Zip archive - // filename. - // Note that no real action is taken, if the archive does not exist it is not - // created. Use create() for that. - // -------------------------------------------------------------------------------- - public function __construct($p_zipname) - { - - // ----- Testing the zlib - if (!function_exists('gzopen')) { - die('Abort '.basename(__FILE__).' : Missing zlib extensions'); - } - - // ----- Set the attributes - $this->zipname = $p_zipname; - $this->zip_fd = 0; - $this->magic_quotes_status = -1; - - // ----- Return - return; - } - // -------------------------------------------------------------------------------- - - // -------------------------------------------------------------------------------- - // Function : - // create($p_filelist, $p_add_dir="", $p_remove_dir="") - // create($p_filelist, $p_option, $p_option_value, ...) - // Description : - // This method supports two different synopsis. The first one is historical. - // This method creates a Zip Archive. The Zip file is created in the - // filesystem. The files and directories indicated in $p_filelist - // are added in the archive. See the parameters description for the - // supported format of $p_filelist. - // When a directory is in the list, the directory and its content is added - // in the archive. - // In this synopsis, the function takes an optional variable list of - // options. See bellow the supported options. - // Parameters : - // $p_filelist : An array containing file or directory names, or - // a string containing one filename or one directory name, or - // a string containing a list of filenames and/or directory - // names separated by spaces. - // $p_add_dir : A path to add before the real path of the archived file, - // in order to have it memorized in the archive. - // $p_remove_dir : A path to remove from the real path of the file to archive, - // in order to have a shorter path memorized in the archive. - // When $p_add_dir and $p_remove_dir are set, $p_remove_dir - // is removed first, before $p_add_dir is added. - // Options : - // PCLZIP_OPT_ADD_PATH : - // PCLZIP_OPT_REMOVE_PATH : - // PCLZIP_OPT_REMOVE_ALL_PATH : - // PCLZIP_OPT_COMMENT : - // PCLZIP_CB_PRE_ADD : - // PCLZIP_CB_POST_ADD : - // Return Values : - // 0 on failure, - // The list of the added files, with a status of the add action. - // (see PclZip::listContent() for list entry format) - // -------------------------------------------------------------------------------- - public function create($p_filelist) - { - $v_result=1; - - // ----- Reset the error handler - $this->privErrorReset(); - - // ----- Set default values - $v_options = array(); - $v_options[PCLZIP_OPT_NO_COMPRESSION] = false; - - // ----- Look for variable options arguments - $v_size = func_num_args(); - - // ----- Look for arguments - if ($v_size > 1) { - // ----- Get the arguments - $v_arg_list = func_get_args(); - - // ----- Remove from the options list the first argument - array_shift($v_arg_list); - $v_size--; - - // ----- Look for first arg - if ((is_integer($v_arg_list[0])) && ($v_arg_list[0] > 77000)) { - // ----- Parse the options - $v_result = $this->privParseOptions($v_arg_list, $v_size, $v_options, array ( - PCLZIP_OPT_REMOVE_PATH => 'optional', - PCLZIP_OPT_REMOVE_ALL_PATH => 'optional', - PCLZIP_OPT_ADD_PATH => 'optional', - PCLZIP_CB_PRE_ADD => 'optional', - PCLZIP_CB_POST_ADD => 'optional', - PCLZIP_OPT_NO_COMPRESSION => 'optional', - PCLZIP_OPT_COMMENT => 'optional', - PCLZIP_OPT_TEMP_FILE_THRESHOLD => 'optional', - PCLZIP_OPT_TEMP_FILE_ON => 'optional', - PCLZIP_OPT_TEMP_FILE_OFF => 'optional' - //, PCLZIP_OPT_CRYPT => 'optional' - )); - if ($v_result != 1) { - return 0; - } - } else { - // ----- Look for 2 args - // Here we need to support the first historic synopsis of the - // method. - // ----- Get the first argument - $v_options[PCLZIP_OPT_ADD_PATH] = $v_arg_list[0]; - - // ----- Look for the optional second argument - if ($v_size == 2) { - $v_options[PCLZIP_OPT_REMOVE_PATH] = $v_arg_list[1]; - } elseif ($v_size > 2) { - PclZip::privErrorLog(PCLZIP_ERR_INVALID_PARAMETER, "Invalid number / type of arguments"); - return 0; - } - } - } - - // ----- Look for default option values - $this->privOptionDefaultThreshold($v_options); - - // ----- Init - $v_string_list = array(); - $v_att_list = array(); - $v_filedescr_list = array(); - $p_result_list = array(); - - // ----- Look if the $p_filelist is really an array - if (is_array($p_filelist)) { - // ----- Look if the first element is also an array - // This will mean that this is a file description entry - if (isset($p_filelist[0]) && is_array($p_filelist[0])) { - $v_att_list = $p_filelist; - } else { - // ----- The list is a list of string names - $v_string_list = $p_filelist; - } - } elseif (is_string($p_filelist)) { - // ----- Look if the $p_filelist is a string - // ----- Create a list from the string - $v_string_list = explode(PCLZIP_SEPARATOR, $p_filelist); - } else { - // ----- Invalid variable type for $p_filelist - PclZip::privErrorLog(PCLZIP_ERR_INVALID_PARAMETER, "Invalid variable type p_filelist"); - return 0; - } - - // ----- Reformat the string list - if (sizeof($v_string_list) != 0) { - foreach ($v_string_list as $v_string) { - if ($v_string != '') { - $v_att_list[][PCLZIP_ATT_FILE_NAME] = $v_string; - } else { - } - } - } - - // ----- For each file in the list check the attributes - $v_supported_attributes = array( - PCLZIP_ATT_FILE_NAME => 'mandatory', - PCLZIP_ATT_FILE_NEW_SHORT_NAME => 'optional', - PCLZIP_ATT_FILE_NEW_FULL_NAME => 'optional', - PCLZIP_ATT_FILE_MTIME => 'optional', - PCLZIP_ATT_FILE_CONTENT => 'optional', - PCLZIP_ATT_FILE_COMMENT => 'optional' - ); - foreach ($v_att_list as $v_entry) { - $v_result = $this->privFileDescrParseAtt($v_entry, $v_filedescr_list[], $v_options, $v_supported_attributes); - if ($v_result != 1) { - return 0; - } - } - - // ----- Expand the filelist (expand directories) - $v_result = $this->privFileDescrExpand($v_filedescr_list, $v_options); - if ($v_result != 1) { - return 0; - } - - // ----- Call the create fct - $v_result = $this->privCreate($v_filedescr_list, $p_result_list, $v_options); - if ($v_result != 1) { - return 0; - } - - // ----- Return - return $p_result_list; - } - // -------------------------------------------------------------------------------- - - // -------------------------------------------------------------------------------- - // Function : - // add($p_filelist, $p_add_dir="", $p_remove_dir="") - // add($p_filelist, $p_option, $p_option_value, ...) - // Description : - // This method supports two synopsis. The first one is historical. - // This methods add the list of files in an existing archive. - // If a file with the same name already exists, it is added at the end of the - // archive, the first one is still present. - // If the archive does not exist, it is created. - // Parameters : - // $p_filelist : An array containing file or directory names, or - // a string containing one filename or one directory name, or - // a string containing a list of filenames and/or directory - // names separated by spaces. - // $p_add_dir : A path to add before the real path of the archived file, - // in order to have it memorized in the archive. - // $p_remove_dir : A path to remove from the real path of the file to archive, - // in order to have a shorter path memorized in the archive. - // When $p_add_dir and $p_remove_dir are set, $p_remove_dir - // is removed first, before $p_add_dir is added. - // Options : - // PCLZIP_OPT_ADD_PATH : - // PCLZIP_OPT_REMOVE_PATH : - // PCLZIP_OPT_REMOVE_ALL_PATH : - // PCLZIP_OPT_COMMENT : - // PCLZIP_OPT_ADD_COMMENT : - // PCLZIP_OPT_PREPEND_COMMENT : - // PCLZIP_CB_PRE_ADD : - // PCLZIP_CB_POST_ADD : - // Return Values : - // 0 on failure, - // The list of the added files, with a status of the add action. - // (see PclZip::listContent() for list entry format) - // -------------------------------------------------------------------------------- - - public function privErrorReset() - { - if (PCLZIP_ERROR_EXTERNAL == 1) { - PclErrorReset(); - } else { - $this->error_code = 0; - $this->error_string = ''; - } - } - // -------------------------------------------------------------------------------- - - // -------------------------------------------------------------------------------- - // Function : listContent() - // Description : - // This public method, gives the list of the files and directories, with their - // properties. - // The properties of each entries in the list are (used also in other functions) : - // filename : Name of the file. For a create or add action it is the filename - // given by the user. For an extract function it is the filename - // of the extracted file. - // stored_filename : Name of the file / directory stored in the archive. - // size : Size of the stored file. - // compressed_size : Size of the file's data compressed in the archive - // (without the headers overhead) - // mtime : Last known modification date of the file (UNIX timestamp) - // comment : Comment associated with the file - // folder : true | false - // index : index of the file in the archive - // status : status of the action (depending of the action) : - // Values are : - // ok : OK ! - // filtered : the file / dir is not extracted (filtered by user) - // already_a_directory : the file can not be extracted because a - // directory with the same name already exists - // write_protected : the file can not be extracted because a file - // with the same name already exists and is - // write protected - // newer_exist : the file was not extracted because a newer file exists - // path_creation_fail : the file is not extracted because the folder - // does not exist and can not be created - // write_error : the file was not extracted because there was a - // error while writing the file - // read_error : the file was not extracted because there was a error - // while reading the file - // invalid_header : the file was not extracted because of an archive - // format error (bad file header) - // Note that each time a method can continue operating when there - // is an action error on a file, the error is only logged in the file status. - // Return Values : - // 0 on an unrecoverable failure, - // The list of the files in the archive. - // -------------------------------------------------------------------------------- - - public function privParseOptions(&$p_options_list, $p_size, &$v_result_list, $v_requested_options = false) - { - $v_result=1; - - // ----- Read the options - $i=0; - while ($i<$p_size) { - // ----- Check if the option is supported - if (!isset($v_requested_options[$p_options_list[$i]])) { - // ----- Error log - PclZip::privErrorLog(PCLZIP_ERR_INVALID_PARAMETER, "Invalid optional parameter '".$p_options_list[$i]."' for this method"); - - // ----- Return - return PclZip::errorCode(); - } - - // ----- Look for next option - switch ($p_options_list[$i]) { - // ----- Look for options that request a path value - case PCLZIP_OPT_PATH: - case PCLZIP_OPT_REMOVE_PATH: - case PCLZIP_OPT_ADD_PATH: - // ----- Check the number of parameters - if (($i+1) >= $p_size) { - // ----- Error log - PclZip::privErrorLog(PCLZIP_ERR_MISSING_OPTION_VALUE, "Missing parameter value for option '".PclZipUtilOptionText($p_options_list[$i])."'"); - - // ----- Return - return PclZip::errorCode(); - } - - // ----- Get the value - $v_result_list[$p_options_list[$i]] = PclZipUtilTranslateWinPath($p_options_list[$i+1], false); - $i++; - break; - - case PCLZIP_OPT_TEMP_FILE_THRESHOLD: - // ----- Check the number of parameters - if (($i+1) >= $p_size) { - PclZip::privErrorLog(PCLZIP_ERR_MISSING_OPTION_VALUE, "Missing parameter value for option '".PclZipUtilOptionText($p_options_list[$i])."'"); - return PclZip::errorCode(); - } - - // ----- Check for incompatible options - if (isset($v_result_list[PCLZIP_OPT_TEMP_FILE_OFF])) { - PclZip::privErrorLog(PCLZIP_ERR_INVALID_PARAMETER, "Option '".PclZipUtilOptionText($p_options_list[$i])."' can not be used with option 'PCLZIP_OPT_TEMP_FILE_OFF'"); - return PclZip::errorCode(); - } - - // ----- Check the value - $v_value = $p_options_list[$i+1]; - if ((!is_integer($v_value)) || ($v_value<0)) { - PclZip::privErrorLog(PCLZIP_ERR_INVALID_OPTION_VALUE, "Integer expected for option '".PclZipUtilOptionText($p_options_list[$i])."'"); - return PclZip::errorCode(); - } - - // ----- Get the value (and convert it in bytes) - $v_result_list[$p_options_list[$i]] = $v_value*1048576; - $i++; - break; - - case PCLZIP_OPT_TEMP_FILE_ON: - // ----- Check for incompatible options - if (isset($v_result_list[PCLZIP_OPT_TEMP_FILE_OFF])) { - PclZip::privErrorLog(PCLZIP_ERR_INVALID_PARAMETER, "Option '".PclZipUtilOptionText($p_options_list[$i])."' can not be used with option 'PCLZIP_OPT_TEMP_FILE_OFF'"); - return PclZip::errorCode(); - } - - $v_result_list[$p_options_list[$i]] = true; - break; - - case PCLZIP_OPT_TEMP_FILE_OFF: - // ----- Check for incompatible options - if (isset($v_result_list[PCLZIP_OPT_TEMP_FILE_ON])) { - PclZip::privErrorLog(PCLZIP_ERR_INVALID_PARAMETER, "Option '".PclZipUtilOptionText($p_options_list[$i])."' can not be used with option 'PCLZIP_OPT_TEMP_FILE_ON'"); - return PclZip::errorCode(); - } - // ----- Check for incompatible options - if (isset($v_result_list[PCLZIP_OPT_TEMP_FILE_THRESHOLD])) { - PclZip::privErrorLog(PCLZIP_ERR_INVALID_PARAMETER, "Option '".PclZipUtilOptionText($p_options_list[$i])."' can not be used with option 'PCLZIP_OPT_TEMP_FILE_THRESHOLD'"); - return PclZip::errorCode(); - } - $v_result_list[$p_options_list[$i]] = true; - break; - - case PCLZIP_OPT_EXTRACT_DIR_RESTRICTION: - // ----- Check the number of parameters - if (($i+1) >= $p_size) { - // ----- Error log - PclZip::privErrorLog(PCLZIP_ERR_MISSING_OPTION_VALUE, "Missing parameter value for option '".PclZipUtilOptionText($p_options_list[$i])."'"); - // ----- Return - return PclZip::errorCode(); - } - - // ----- Get the value - if (is_string($p_options_list[$i+1]) && ($p_options_list[$i+1] != '')) { - $v_result_list[$p_options_list[$i]] = PclZipUtilTranslateWinPath($p_options_list[$i+1], false); - $i++; - } else { - } - break; - // ----- Look for options that request an array of string for value - case PCLZIP_OPT_BY_NAME: - // ----- Check the number of parameters - if (($i+1) >= $p_size) { - // ----- Error log - PclZip::privErrorLog(PCLZIP_ERR_MISSING_OPTION_VALUE, "Missing parameter value for option '".PclZipUtilOptionText($p_options_list[$i])."'"); - // ----- Return - return PclZip::errorCode(); - } - - // ----- Get the value - if (is_string($p_options_list[$i+1])) { - $v_result_list[$p_options_list[$i]][0] = $p_options_list[$i+1]; - } elseif (is_array($p_options_list[$i+1])) { - $v_result_list[$p_options_list[$i]] = $p_options_list[$i+1]; - } else { - // ----- Error log - PclZip::privErrorLog(PCLZIP_ERR_INVALID_OPTION_VALUE, "Wrong parameter value for option '".PclZipUtilOptionText($p_options_list[$i])."'"); - // ----- Return - return PclZip::errorCode(); - } - $i++; - break; - // ----- Look for options that request an EREG or PREG expression - case PCLZIP_OPT_BY_EREG: - // ereg() is deprecated starting with PHP 5.3. Move PCLZIP_OPT_BY_EREG - // to PCLZIP_OPT_BY_PREG - $p_options_list[$i] = PCLZIP_OPT_BY_PREG; - case PCLZIP_OPT_BY_PREG: - //case PCLZIP_OPT_CRYPT : - // ----- Check the number of parameters - if (($i+1) >= $p_size) { - // ----- Error log - PclZip::privErrorLog(PCLZIP_ERR_MISSING_OPTION_VALUE, "Missing parameter value for option '".PclZipUtilOptionText($p_options_list[$i])."'"); - // ----- Return - return PclZip::errorCode(); - } - - // ----- Get the value - if (is_string($p_options_list[$i+1])) { - $v_result_list[$p_options_list[$i]] = $p_options_list[$i+1]; - } else { - // ----- Error log - PclZip::privErrorLog(PCLZIP_ERR_INVALID_OPTION_VALUE, "Wrong parameter value for option '".PclZipUtilOptionText($p_options_list[$i])."'"); - // ----- Return - return PclZip::errorCode(); - } - $i++; - break; - - // ----- Look for options that takes a string - case PCLZIP_OPT_COMMENT: - case PCLZIP_OPT_ADD_COMMENT: - case PCLZIP_OPT_PREPEND_COMMENT: - // ----- Check the number of parameters - if (($i+1) >= $p_size) { - // ----- Error log - PclZip::privErrorLog(PCLZIP_ERR_MISSING_OPTION_VALUE, "Missing parameter value for option '".PclZipUtilOptionText($p_options_list[$i])."'"); - - // ----- Return - return PclZip::errorCode(); - } - - // ----- Get the value - if (is_string($p_options_list[$i+1])) { - $v_result_list[$p_options_list[$i]] = $p_options_list[$i+1]; - } else { - // ----- Error log - PclZip::privErrorLog(PCLZIP_ERR_INVALID_OPTION_VALUE, "Wrong parameter value for option '" .PclZipUtilOptionText($p_options_list[$i]) ."'"); - - // ----- Return - return PclZip::errorCode(); - } - $i++; - break; - - // ----- Look for options that request an array of index - case PCLZIP_OPT_BY_INDEX: - // ----- Check the number of parameters - if (($i+1) >= $p_size) { - // ----- Error log - PclZip::privErrorLog(PCLZIP_ERR_MISSING_OPTION_VALUE, "Missing parameter value for option '".PclZipUtilOptionText($p_options_list[$i])."'"); - - // ----- Return - return PclZip::errorCode(); - } - - // ----- Get the value - $v_work_list = array(); - if (is_string($p_options_list[$i+1])) { - // ----- Remove spaces - $p_options_list[$i+1] = strtr($p_options_list[$i+1], ' ', ''); - - // ----- Parse items - $v_work_list = explode(",", $p_options_list[$i+1]); - } elseif (is_integer($p_options_list[$i+1])) { - $v_work_list[0] = $p_options_list[$i+1].'-'.$p_options_list[$i+1]; - } elseif (is_array($p_options_list[$i+1])) { - $v_work_list = $p_options_list[$i+1]; - } else { - // ----- Error log - PclZip::privErrorLog(PCLZIP_ERR_INVALID_OPTION_VALUE, "Value must be integer, string or array for option '".PclZipUtilOptionText($p_options_list[$i])."'"); - - // ----- Return - return PclZip::errorCode(); - } - - // ----- Reduce the index list - // each index item in the list must be a couple with a start and - // an end value : [0,3], [5-5], [8-10], ... - // ----- Check the format of each item - $v_sort_flag=false; - $v_sort_value=0; - for ($j=0; $j<sizeof($v_work_list); $j++) { - // ----- Explode the item - $v_item_list = explode("-", $v_work_list[$j]); - $v_size_item_list = sizeof($v_item_list); - - // ----- TBC : Here we might check that each item is a - // real integer ... - - // ----- Look for single value - if ($v_size_item_list == 1) { - // ----- Set the option value - $v_result_list[$p_options_list[$i]][$j]['start'] = $v_item_list[0]; - $v_result_list[$p_options_list[$i]][$j]['end'] = $v_item_list[0]; - } elseif ($v_size_item_list == 2) { - // ----- Set the option value - $v_result_list[$p_options_list[$i]][$j]['start'] = $v_item_list[0]; - $v_result_list[$p_options_list[$i]][$j]['end'] = $v_item_list[1]; - } else { - // ----- Error log - PclZip::privErrorLog(PCLZIP_ERR_INVALID_OPTION_VALUE, "Too many values in index range for option '".PclZipUtilOptionText($p_options_list[$i])."'"); - - // ----- Return - return PclZip::errorCode(); - } - - - // ----- Look for list sort - if ($v_result_list[$p_options_list[$i]][$j]['start'] < $v_sort_value) { - $v_sort_flag=true; - - // ----- TBC : An automatic sort should be writen ... - // ----- Error log - PclZip::privErrorLog(PCLZIP_ERR_INVALID_OPTION_VALUE, "Invalid order of index range for option '".PclZipUtilOptionText($p_options_list[$i])."'"); - - // ----- Return - return PclZip::errorCode(); - } - $v_sort_value = $v_result_list[$p_options_list[$i]][$j]['start']; - } - - // ----- Sort the items - if ($v_sort_flag) { - // TBC : To Be Completed - } - // ----- Next option - $i++; - break; - // ----- Look for options that request no value - case PCLZIP_OPT_REMOVE_ALL_PATH: - case PCLZIP_OPT_EXTRACT_AS_STRING: - case PCLZIP_OPT_NO_COMPRESSION: - case PCLZIP_OPT_EXTRACT_IN_OUTPUT: - case PCLZIP_OPT_REPLACE_NEWER: - case PCLZIP_OPT_STOP_ON_ERROR: - $v_result_list[$p_options_list[$i]] = true; - break; - // ----- Look for options that request an octal value - case PCLZIP_OPT_SET_CHMOD: - // ----- Check the number of parameters - if (($i+1) >= $p_size) { - // ----- Error log - PclZip::privErrorLog(PCLZIP_ERR_MISSING_OPTION_VALUE, "Missing parameter value for option '".PclZipUtilOptionText($p_options_list[$i])."'"); - // ----- Return - return PclZip::errorCode(); - } - // ----- Get the value - $v_result_list[$p_options_list[$i]] = $p_options_list[$i+1]; - $i++; - break; - - // ----- Look for options that request a call-back - case PCLZIP_CB_PRE_EXTRACT: - case PCLZIP_CB_POST_EXTRACT: - case PCLZIP_CB_PRE_ADD: - case PCLZIP_CB_POST_ADD: - /* for futur use - case PCLZIP_CB_PRE_DELETE : - case PCLZIP_CB_POST_DELETE : - case PCLZIP_CB_PRE_LIST : - case PCLZIP_CB_POST_LIST : - */ - // ----- Check the number of parameters - if (($i+1) >= $p_size) { - // ----- Error log - PclZip::privErrorLog(PCLZIP_ERR_MISSING_OPTION_VALUE, "Missing parameter value for option '".PclZipUtilOptionText($p_options_list[$i])."'"); - // ----- Return - return PclZip::errorCode(); - } - - // ----- Get the value - $v_function_name = $p_options_list[$i+1]; - - // ----- Check that the value is a valid existing function - if (!function_exists($v_function_name)) { - // ----- Error log - PclZip::privErrorLog(PCLZIP_ERR_INVALID_OPTION_VALUE, "Function '".$v_function_name."()' is not an existing function for option '".PclZipUtilOptionText($p_options_list[$i])."'"); - // ----- Return - return PclZip::errorCode(); - } - - // ----- Set the attribute - $v_result_list[$p_options_list[$i]] = $v_function_name; - $i++; - break; - default: - // ----- Error log - PclZip::privErrorLog(PCLZIP_ERR_INVALID_PARAMETER, "Unknown parameter '" .$p_options_list[$i]."'"); - - // ----- Return - return PclZip::errorCode(); - } - - // ----- Next options - $i++; - } - - // ----- Look for mandatory options - if ($v_requested_options !== false) { - for ($key=reset($v_requested_options); $key=key($v_requested_options); $key=next($v_requested_options)) { - // ----- Look for mandatory option - if ($v_requested_options[$key] == 'mandatory') { - // ----- Look if present - if (!isset($v_result_list[$key])) { - // ----- Error log - PclZip::privErrorLog(PCLZIP_ERR_INVALID_PARAMETER, "Missing mandatory parameter ".PclZipUtilOptionText($key)."(".$key.")"); - - // ----- Return - return PclZip::errorCode(); - } - } - } - } - - // ----- Look for default values - if (!isset($v_result_list[PCLZIP_OPT_TEMP_FILE_THRESHOLD])) { - } - - // ----- Return - return $v_result; - } - // -------------------------------------------------------------------------------- - - // -------------------------------------------------------------------------------- - // Function : - // extract($p_path="./", $p_remove_path="") - // extract([$p_option, $p_option_value, ...]) - // Description : - // This method supports two synopsis. The first one is historical. - // This method extract all the files / directories from the archive to the - // folder indicated in $p_path. - // If you want to ignore the 'root' part of path of the memorized files - // you can indicate this in the optional $p_remove_path parameter. - // By default, if a newer file with the same name already exists, the - // file is not extracted. - // - // If both PCLZIP_OPT_PATH and PCLZIP_OPT_ADD_PATH aoptions - // are used, the path indicated in PCLZIP_OPT_ADD_PATH is append - // at the end of the path value of PCLZIP_OPT_PATH. - // Parameters : - // $p_path : Path where the files and directories are to be extracted - // $p_remove_path : First part ('root' part) of the memorized path - // (if any similar) to remove while extracting. - // Options : - // PCLZIP_OPT_PATH : - // PCLZIP_OPT_ADD_PATH : - // PCLZIP_OPT_REMOVE_PATH : - // PCLZIP_OPT_REMOVE_ALL_PATH : - // PCLZIP_CB_PRE_EXTRACT : - // PCLZIP_CB_POST_EXTRACT : - // Return Values : - // 0 or a negative value on failure, - // The list of the extracted files, with a status of the action. - // (see PclZip::listContent() for list entry format) - // -------------------------------------------------------------------------------- - - public function privErrorLog($p_error_code = 0, $p_error_string = '') - { - if (PCLZIP_ERROR_EXTERNAL == 1) { - PclError($p_error_code, $p_error_string); - } else { - $this->error_code = $p_error_code; - $this->error_string = $p_error_string; - } - } - // -------------------------------------------------------------------------------- - - - // -------------------------------------------------------------------------------- - // Function : - // extractByIndex($p_index, $p_path="./", $p_remove_path="") - // extractByIndex($p_index, [$p_option, $p_option_value, ...]) - // Description : - // This method supports two synopsis. The first one is historical. - // This method is doing a partial extract of the archive. - // The extracted files or folders are identified by their index in the - // archive (from 0 to n). - // Note that if the index identify a folder, only the folder entry is - // extracted, not all the files included in the archive. - // Parameters : - // $p_index : A single index (integer) or a string of indexes of files to - // extract. The form of the string is "0,4-6,8-12" with only numbers - // and '-' for range or ',' to separate ranges. No spaces or ';' - // are allowed. - // $p_path : Path where the files and directories are to be extracted - // $p_remove_path : First part ('root' part) of the memorized path - // (if any similar) to remove while extracting. - // Options : - // PCLZIP_OPT_PATH : - // PCLZIP_OPT_ADD_PATH : - // PCLZIP_OPT_REMOVE_PATH : - // PCLZIP_OPT_REMOVE_ALL_PATH : - // PCLZIP_OPT_EXTRACT_AS_STRING : The files are extracted as strings and - // not as files. - // The resulting content is in a new field 'content' in the file - // structure. - // This option must be used alone (any other options are ignored). - // PCLZIP_CB_PRE_EXTRACT : - // PCLZIP_CB_POST_EXTRACT : - // Return Values : - // 0 on failure, - // The list of the extracted files, with a status of the action. - // (see PclZip::listContent() for list entry format) - // -------------------------------------------------------------------------------- - //function extractByIndex($p_index, options...) - - public function errorCode() - { - if (PCLZIP_ERROR_EXTERNAL == 1) { - return(PclErrorCode()); - } else { - return($this->error_code); - } - } - // -------------------------------------------------------------------------------- - - // -------------------------------------------------------------------------------- - // Function : - // delete([$p_option, $p_option_value, ...]) - // Description : - // This method removes files from the archive. - // If no parameters are given, then all the archive is emptied. - // Parameters : - // None or optional arguments. - // Options : - // PCLZIP_OPT_BY_INDEX : - // PCLZIP_OPT_BY_NAME : - // PCLZIP_OPT_BY_EREG : - // PCLZIP_OPT_BY_PREG : - // Return Values : - // 0 on failure, - // The list of the files which are still present in the archive. - // (see PclZip::listContent() for list entry format) - // -------------------------------------------------------------------------------- - - public function privOptionDefaultThreshold(&$p_options) - { - $v_result=1; - - if (isset($p_options[PCLZIP_OPT_TEMP_FILE_THRESHOLD]) || isset($p_options[PCLZIP_OPT_TEMP_FILE_OFF])) { - return $v_result; - } - - // ----- Get 'memory_limit' configuration value - $v_memory_limit = ini_get('memory_limit'); - $v_memory_limit = trim($v_memory_limit); - $last = strtolower(substr($v_memory_limit, -1)); - - if ($last == 'g') { - //$v_memory_limit = $v_memory_limit*1024*1024*1024; - $v_memory_limit = $v_memory_limit*1073741824; - } - if ($last == 'm') { - //$v_memory_limit = $v_memory_limit*1024*1024; - $v_memory_limit = $v_memory_limit*1048576; - } - if ($last == 'k') { - $v_memory_limit = $v_memory_limit*1024; - } - - $p_options[PCLZIP_OPT_TEMP_FILE_THRESHOLD] = floor($v_memory_limit*PCLZIP_TEMPORARY_FILE_RATIO); - - // ----- Sanity check : No threshold if value lower than 1M - if ($p_options[PCLZIP_OPT_TEMP_FILE_THRESHOLD] < 1048576) { - unset($p_options[PCLZIP_OPT_TEMP_FILE_THRESHOLD]); - } - - // ----- Return - return $v_result; - } - // -------------------------------------------------------------------------------- - - // -------------------------------------------------------------------------------- - // Function : deleteByIndex() - // Description : - // ***** Deprecated ***** - // delete(PCLZIP_OPT_BY_INDEX, $p_index) should be prefered. - // -------------------------------------------------------------------------------- - - public function privFileDescrParseAtt(&$p_file_list, &$p_filedescr, $v_options, $v_requested_options = false) - { - $v_result=1; - - // ----- For each file in the list check the attributes - foreach ($p_file_list as $v_key => $v_value) { - // ----- Check if the option is supported - if (!isset($v_requested_options[$v_key])) { - // ----- Error log - PclZip::privErrorLog(PCLZIP_ERR_INVALID_PARAMETER, "Invalid file attribute '".$v_key."' for this file"); - - // ----- Return - return PclZip::errorCode(); - } - - // ----- Look for attribute - switch ($v_key) { - case PCLZIP_ATT_FILE_NAME: - if (!is_string($v_value)) { - PclZip::privErrorLog(PCLZIP_ERR_INVALID_ATTRIBUTE_VALUE, "Invalid type ".gettype($v_value).". String expected for attribute '".PclZipUtilOptionText($v_key)."'"); - return PclZip::errorCode(); - } - - $p_filedescr['filename'] = PclZipUtilPathReduction($v_value); - - if ($p_filedescr['filename'] == '') { - PclZip::privErrorLog(PCLZIP_ERR_INVALID_ATTRIBUTE_VALUE, "Invalid empty filename for attribute '".PclZipUtilOptionText($v_key)."'"); - return PclZip::errorCode(); - } - break; - case PCLZIP_ATT_FILE_NEW_SHORT_NAME: - if (!is_string($v_value)) { - PclZip::privErrorLog(PCLZIP_ERR_INVALID_ATTRIBUTE_VALUE, "Invalid type ".gettype($v_value).". String expected for attribute '".PclZipUtilOptionText($v_key)."'"); - return PclZip::errorCode(); - } - - $p_filedescr['new_short_name'] = PclZipUtilPathReduction($v_value); - - if ($p_filedescr['new_short_name'] == '') { - PclZip::privErrorLog(PCLZIP_ERR_INVALID_ATTRIBUTE_VALUE, "Invalid empty short filename for attribute '".PclZipUtilOptionText($v_key)."'"); - return PclZip::errorCode(); - } - break; - case PCLZIP_ATT_FILE_NEW_FULL_NAME: - if (!is_string($v_value)) { - PclZip::privErrorLog(PCLZIP_ERR_INVALID_ATTRIBUTE_VALUE, "Invalid type ".gettype($v_value).". String expected for attribute '".PclZipUtilOptionText($v_key)."'"); - return PclZip::errorCode(); - } - - $p_filedescr['new_full_name'] = PclZipUtilPathReduction($v_value); - - if ($p_filedescr['new_full_name'] == '') { - PclZip::privErrorLog(PCLZIP_ERR_INVALID_ATTRIBUTE_VALUE, "Invalid empty full filename for attribute '".PclZipUtilOptionText($v_key)."'"); - return PclZip::errorCode(); - } - break; - // ----- Look for options that takes a string - case PCLZIP_ATT_FILE_COMMENT: - if (!is_string($v_value)) { - PclZip::privErrorLog(PCLZIP_ERR_INVALID_ATTRIBUTE_VALUE, "Invalid type ".gettype($v_value).". String expected for attribute '".PclZipUtilOptionText($v_key)."'"); - return PclZip::errorCode(); - } - $p_filedescr['comment'] = $v_value; - break; - case PCLZIP_ATT_FILE_MTIME: - if (!is_integer($v_value)) { - PclZip::privErrorLog(PCLZIP_ERR_INVALID_ATTRIBUTE_VALUE, "Invalid type ".gettype($v_value).". Integer expected for attribute '".PclZipUtilOptionText($v_key)."'"); - return PclZip::errorCode(); - } - $p_filedescr['mtime'] = $v_value; - break; - case PCLZIP_ATT_FILE_CONTENT: - $p_filedescr['content'] = $v_value; - break; - default: - // ----- Error log - PclZip::privErrorLog(PCLZIP_ERR_INVALID_PARAMETER, "Unknown parameter '".$v_key."'"); - - // ----- Return - return PclZip::errorCode(); - } - - // ----- Look for mandatory options - if ($v_requested_options !== false) { - for ($key = reset($v_requested_options); $key = key($v_requested_options); $key = next($v_requested_options)) { - // ----- Look for mandatory option - if ($v_requested_options[$key] == 'mandatory') { - // ----- Look if present - if (!isset($p_file_list[$key])) { - PclZip::privErrorLog(PCLZIP_ERR_INVALID_PARAMETER, "Missing mandatory parameter ".PclZipUtilOptionText($key)."(".$key.")"); - return PclZip::errorCode(); - } - } - } - } - } - - // ----- Return - return $v_result; - } - // -------------------------------------------------------------------------------- - - // -------------------------------------------------------------------------------- - // Function : properties() - // Description : - // This method gives the properties of the archive. - // The properties are : - // nb : Number of files in the archive - // comment : Comment associated with the archive file - // status : not_exist, ok - // Parameters : - // None - // Return Values : - // 0 on failure, - // An array with the archive properties. - // -------------------------------------------------------------------------------- - - public function privFileDescrExpand(&$p_filedescr_list, &$p_options) - { - $v_result=1; - - // ----- Create a result list - $v_result_list = array(); - - // ----- Look each entry - for ($i=0; $i<sizeof($p_filedescr_list); $i++) { - // ----- Get filedescr - $v_descr = $p_filedescr_list[$i]; - - // ----- Reduce the filename - $v_descr['filename'] = PclZipUtilTranslateWinPath($v_descr['filename'], false); - $v_descr['filename'] = PclZipUtilPathReduction($v_descr['filename']); - - // ----- Look for real file or folder - if (file_exists($v_descr['filename'])) { - if (@is_file($v_descr['filename'])) { - $v_descr['type'] = 'file'; - } elseif (@is_dir($v_descr['filename'])) { - $v_descr['type'] = 'folder'; - } elseif (@is_link($v_descr['filename'])) { - // skip - continue; - } else { - // skip - continue; - } - } elseif (isset($v_descr['content'])) { - // ----- Look for string added as file - $v_descr['type'] = 'virtual_file'; - } else { - // ----- Missing file - // ----- Error log - PclZip::privErrorLog(PCLZIP_ERR_MISSING_FILE, "File '".$v_descr['filename']."' does not exist"); - - // ----- Return - return PclZip::errorCode(); - } - - // ----- Calculate the stored filename - $this->privCalculateStoredFilename($v_descr, $p_options); - - // ----- Add the descriptor in result list - $v_result_list[sizeof($v_result_list)] = $v_descr; - - // ----- Look for folder - if ($v_descr['type'] == 'folder') { - // ----- List of items in folder - $v_dirlist_descr = array(); - $v_dirlist_nb = 0; - if ($v_folder_handler = @opendir($v_descr['filename'])) { - while (($v_item_handler = @readdir($v_folder_handler)) !== false) { - // ----- Skip '.' and '..' - if (($v_item_handler == '.') || ($v_item_handler == '..')) { - continue; - } - - // ----- Compose the full filename - $v_dirlist_descr[$v_dirlist_nb]['filename'] = $v_descr['filename'].'/'.$v_item_handler; - - // ----- Look for different stored filename - // Because the name of the folder was changed, the name of the - // files/sub-folders also change - if (($v_descr['stored_filename'] != $v_descr['filename']) - && (!isset($p_options[PCLZIP_OPT_REMOVE_ALL_PATH]))) { - if ($v_descr['stored_filename'] != '') { - $v_dirlist_descr[$v_dirlist_nb]['new_full_name'] = $v_descr['stored_filename'].'/'.$v_item_handler; - } else { - $v_dirlist_descr[$v_dirlist_nb]['new_full_name'] = $v_item_handler; - } - } - $v_dirlist_nb++; - } - - @closedir($v_folder_handler); - } else { - // TBC : unable to open folder in read mode - } - - // ----- Expand each element of the list - if ($v_dirlist_nb != 0) { - // ----- Expand - if (($v_result = $this->privFileDescrExpand($v_dirlist_descr, $p_options)) != 1) { - return $v_result; - } - - // ----- Concat the resulting list - $v_result_list = array_merge($v_result_list, $v_dirlist_descr); - } - - // ----- Free local array - unset($v_dirlist_descr); - } - } - - // ----- Get the result list - $p_filedescr_list = $v_result_list; - - // ----- Return - return $v_result; - } - // -------------------------------------------------------------------------------- - - // -------------------------------------------------------------------------------- - // Function : duplicate() - // Description : - // This method creates an archive by copying the content of an other one. If - // the archive already exist, it is replaced by the new one without any warning. - // Parameters : - // $p_archive : The filename of a valid archive, or - // a valid PclZip object. - // Return Values : - // 1 on success. - // 0 or a negative value on error (error code). - // -------------------------------------------------------------------------------- - - public function privCalculateStoredFilename(&$p_filedescr, &$p_options) - { - $v_result=1; - - // ----- Working variables - $p_filename = $p_filedescr['filename']; - if (isset($p_options[PCLZIP_OPT_ADD_PATH])) { - $p_add_dir = $p_options[PCLZIP_OPT_ADD_PATH]; - } else { - $p_add_dir = ''; - } - if (isset($p_options[PCLZIP_OPT_REMOVE_PATH])) { - $p_remove_dir = $p_options[PCLZIP_OPT_REMOVE_PATH]; - } else { - $p_remove_dir = ''; - } - if (isset($p_options[PCLZIP_OPT_REMOVE_ALL_PATH])) { - $p_remove_all_dir = $p_options[PCLZIP_OPT_REMOVE_ALL_PATH]; - } else { - $p_remove_all_dir = 0; - } - - // ----- Look for full name change - if (isset($p_filedescr['new_full_name'])) { - // ----- Remove drive letter if any - $v_stored_filename = PclZipUtilTranslateWinPath($p_filedescr['new_full_name']); - } else { - // ----- Look for path and/or short name change - // ----- Look for short name change - // Its when we cahnge just the filename but not the path - if (isset($p_filedescr['new_short_name'])) { - $v_path_info = pathinfo($p_filename); - $v_dir = ''; - if ($v_path_info['dirname'] != '') { - $v_dir = $v_path_info['dirname'].'/'; - } - $v_stored_filename = $v_dir.$p_filedescr['new_short_name']; - } else { - // ----- Calculate the stored filename - $v_stored_filename = $p_filename; - } - - // ----- Look for all path to remove - if ($p_remove_all_dir) { - $v_stored_filename = basename($p_filename); - } elseif ($p_remove_dir != "") { - // ----- Look for partial path remove - if (substr($p_remove_dir, -1) != '/') { - $p_remove_dir .= "/"; - } - - if ((substr($p_filename, 0, 2) == "./") || (substr($p_remove_dir, 0, 2) == "./")) { - if ((substr($p_filename, 0, 2) == "./") && (substr($p_remove_dir, 0, 2) != "./")) { - $p_remove_dir = "./".$p_remove_dir; - } - if ((substr($p_filename, 0, 2) != "./") && (substr($p_remove_dir, 0, 2) == "./")) { - $p_remove_dir = substr($p_remove_dir, 2); - } - } - - $v_compare = PclZipUtilPathInclusion($p_remove_dir, $v_stored_filename); - if ($v_compare > 0) { - if ($v_compare == 2) { - $v_stored_filename = ""; - } else { - $v_stored_filename = substr($v_stored_filename, strlen($p_remove_dir)); - } - } - } - - // ----- Remove drive letter if any - $v_stored_filename = PclZipUtilTranslateWinPath($v_stored_filename); - - // ----- Look for path to add - if ($p_add_dir != "") { - if (substr($p_add_dir, -1) == "/") { - $v_stored_filename = $p_add_dir.$v_stored_filename; - } else { - $v_stored_filename = $p_add_dir."/".$v_stored_filename; - } - } - } - - // ----- Filename (reduce the path of stored name) - $v_stored_filename = PclZipUtilPathReduction($v_stored_filename); - $p_filedescr['stored_filename'] = $v_stored_filename; - - // ----- Return - return $v_result; - } - // -------------------------------------------------------------------------------- - - // -------------------------------------------------------------------------------- - // Function : merge() - // Description : - // This method merge the $p_archive_to_add archive at the end of the current - // one ($this). - // If the archive ($this) does not exist, the merge becomes a duplicate. - // If the $p_archive_to_add archive does not exist, the merge is a success. - // Parameters : - // $p_archive_to_add : It can be directly the filename of a valid zip archive, - // or a PclZip object archive. - // Return Values : - // 1 on success, - // 0 or negative values on error (see below). - // -------------------------------------------------------------------------------- - - public function privCreate($p_filedescr_list, &$p_result_list, &$p_options) - { - $v_result=1; - $v_list_detail = array(); - - // ----- Magic quotes trick - $this->privDisableMagicQuotes(); - - // ----- Open the file in write mode - if (($v_result = $this->privOpenFd('wb')) != 1) { - // ----- Return - return $v_result; - } - - // ----- Add the list of files - $v_result = $this->privAddList($p_filedescr_list, $p_result_list, $p_options); - - // ----- Close - $this->privCloseFd(); - - // ----- Magic quotes trick - $this->privSwapBackMagicQuotes(); - - // ----- Return - return $v_result; - } - // -------------------------------------------------------------------------------- - - - - // -------------------------------------------------------------------------------- - // Function : errorCode() - // Description : - // Parameters : - // -------------------------------------------------------------------------------- - - public function privDisableMagicQuotes() - { - $v_result=1; - - // ----- Look if function exists - if ((!function_exists("get_magic_quotes_runtime")) || (!function_exists("set_magic_quotes_runtime"))) { - return $v_result; - } - - // ----- Look if already done - if ($this->magic_quotes_status != -1) { - return $v_result; - } - - // ----- Get and memorize the magic_quote value - $this->magic_quotes_status = @get_magic_quotes_runtime(); - - // ----- Disable magic_quotes - if ($this->magic_quotes_status == 1) { - @set_magic_quotes_runtime(0); - } - - // ----- Return - return $v_result; - } - // -------------------------------------------------------------------------------- - - // -------------------------------------------------------------------------------- - // Function : errorName() - // Description : - // Parameters : - // -------------------------------------------------------------------------------- - - public function privOpenFd($p_mode) - { - $v_result=1; - - // ----- Look if already open - if ($this->zip_fd != 0) { - // ----- Error log - PclZip::privErrorLog(PCLZIP_ERR_READ_OPEN_FAIL, 'Zip file \''.$this->zipname.'\' already open'); - - // ----- Return - return PclZip::errorCode(); - } - - // ----- Open the zip file - if (($this->zip_fd = @fopen($this->zipname, $p_mode)) == 0) { - // ----- Error log - PclZip::privErrorLog(PCLZIP_ERR_READ_OPEN_FAIL, 'Unable to open archive \''.$this->zipname.'\' in '.$p_mode.' mode'); - - // ----- Return - return PclZip::errorCode(); - } - - // ----- Return - return $v_result; - } - // -------------------------------------------------------------------------------- - - // -------------------------------------------------------------------------------- - // Function : errorInfo() - // Description : - // Parameters : - // -------------------------------------------------------------------------------- - - public function privAddList($p_filedescr_list, &$p_result_list, &$p_options) - { - $v_result=1; - - // ----- Add the files - $v_header_list = array(); - if (($v_result = $this->privAddFileList($p_filedescr_list, $v_header_list, $p_options)) != 1) { - // ----- Return - return $v_result; - } - - // ----- Store the offset of the central dir - $v_offset = @ftell($this->zip_fd); - - // ----- Create the Central Dir files header - for ($i=0, $v_count=0; $i<sizeof($v_header_list); $i++) { - // ----- Create the file header - if ($v_header_list[$i]['status'] == 'ok') { - if (($v_result = $this->privWriteCentralFileHeader($v_header_list[$i])) != 1) { - // ----- Return - return $v_result; - } - $v_count++; - } - - // ----- Transform the header to a 'usable' info - $this->privConvertHeader2FileInfo($v_header_list[$i], $p_result_list[$i]); - } - - // ----- Zip file comment - $v_comment = ''; - if (isset($p_options[PCLZIP_OPT_COMMENT])) { - $v_comment = $p_options[PCLZIP_OPT_COMMENT]; - } - - // ----- Calculate the size of the central header - $v_size = @ftell($this->zip_fd)-$v_offset; - - // ----- Create the central dir footer - if (($v_result = $this->privWriteCentralHeader($v_count, $v_size, $v_offset, $v_comment)) != 1) { - // ----- Reset the file list - unset($v_header_list); - - // ----- Return - return $v_result; - } - - // ----- Return - return $v_result; - } - // -------------------------------------------------------------------------------- - - - // -------------------------------------------------------------------------------- - // ***** UNDER THIS LINE ARE DEFINED PRIVATE INTERNAL FUNCTIONS ***** - // ***** ***** - // ***** THESES FUNCTIONS MUST NOT BE USED DIRECTLY ***** - // -------------------------------------------------------------------------------- - - - - // -------------------------------------------------------------------------------- - // Function : privCheckFormat() - // Description : - // This method check that the archive exists and is a valid zip archive. - // Several level of check exists. (futur) - // Parameters : - // $p_level : Level of check. Default 0. - // 0 : Check the first bytes (magic codes) (default value)) - // 1 : 0 + Check the central directory (futur) - // 2 : 1 + Check each file header (futur) - // Return Values : - // true on success, - // false on error, the error code is set. - // -------------------------------------------------------------------------------- - - public function privAddFileList($p_filedescr_list, &$p_result_list, &$p_options) - { - $v_result=1; - $v_header = array(); - - // ----- Recuperate the current number of elt in list - $v_nb = sizeof($p_result_list); - - // ----- Loop on the files - for ($j=0; ($j<sizeof($p_filedescr_list)) && ($v_result==1); $j++) { - // ----- Format the filename - $p_filedescr_list[$j]['filename'] = PclZipUtilTranslateWinPath($p_filedescr_list[$j]['filename'], false); - - // ----- Skip empty file names - // TBC : Can this be possible ? not checked in DescrParseAtt ? - if ($p_filedescr_list[$j]['filename'] == "") { - continue; - } - - // ----- Check the filename - if (($p_filedescr_list[$j]['type'] != 'virtual_file') && (!file_exists($p_filedescr_list[$j]['filename']))) { - PclZip::privErrorLog(PCLZIP_ERR_MISSING_FILE, "File '".$p_filedescr_list[$j]['filename']."' does not exist"); - return PclZip::errorCode(); - } - - // ----- Look if it is a file or a dir with no all path remove option - // or a dir with all its path removed - // if ( (is_file($p_filedescr_list[$j]['filename'])) - // || ( is_dir($p_filedescr_list[$j]['filename']) - if (($p_filedescr_list[$j]['type'] == 'file') || ($p_filedescr_list[$j]['type'] == 'virtual_file') || (($p_filedescr_list[$j]['type'] == 'folder') && (!isset($p_options[PCLZIP_OPT_REMOVE_ALL_PATH]) || !$p_options[PCLZIP_OPT_REMOVE_ALL_PATH]))) { - // ----- Add the file - $v_result = $this->privAddFile($p_filedescr_list[$j], $v_header, $p_options); - if ($v_result != 1) { - return $v_result; - } - - // ----- Store the file infos - $p_result_list[$v_nb++] = $v_header; - } - } - - // ----- Return - return $v_result; - } - // -------------------------------------------------------------------------------- - - // -------------------------------------------------------------------------------- - // Function : privParseOptions() - // Description : - // This internal methods reads the variable list of arguments ($p_options_list, - // $p_size) and generate an array with the options and values ($v_result_list). - // $v_requested_options contains the options that can be present and those that - // must be present. - // $v_requested_options is an array, with the option value as key, and 'optional', - // or 'mandatory' as value. - // Parameters : - // See above. - // Return Values : - // 1 on success. - // 0 on failure. - // -------------------------------------------------------------------------------- - - public function privAddFile($p_filedescr, &$p_header, &$p_options) - { - $v_result=1; - - // ----- Working variable - $p_filename = $p_filedescr['filename']; - - // TBC : Already done in the fileAtt check ... ? - if ($p_filename == "") { - // ----- Error log - PclZip::privErrorLog(PCLZIP_ERR_INVALID_PARAMETER, "Invalid file list parameter (invalid or empty list)"); - - // ----- Return - return PclZip::errorCode(); - } - - // ----- Look for a stored different filename - /* TBC : Removed - if (isset($p_filedescr['stored_filename'])) { - $v_stored_filename = $p_filedescr['stored_filename']; - } - else { - $v_stored_filename = $p_filedescr['stored_filename']; - } - */ - - // ----- Set the file properties - clearstatcache(); - $p_header['version'] = 20; - $p_header['version_extracted'] = 10; - $p_header['flag'] = 0; - $p_header['compression'] = 0; - $p_header['crc'] = 0; - $p_header['compressed_size'] = 0; - $p_header['filename_len'] = strlen($p_filename); - $p_header['extra_len'] = 0; - $p_header['disk'] = 0; - $p_header['internal'] = 0; - $p_header['offset'] = 0; - $p_header['filename'] = $p_filename; - // TBC : Removed $p_header['stored_filename'] = $v_stored_filename; - $p_header['stored_filename'] = $p_filedescr['stored_filename']; - $p_header['extra'] = ''; - $p_header['status'] = 'ok'; - $p_header['index'] = -1; - - // ----- Look for regular file - if ($p_filedescr['type']=='file') { - $p_header['external'] = 0x00000000; - $p_header['size'] = filesize($p_filename); - } elseif ($p_filedescr['type']=='folder') { - // ----- Look for regular folder - $p_header['external'] = 0x00000010; - $p_header['mtime'] = filemtime($p_filename); - $p_header['size'] = filesize($p_filename); - } elseif ($p_filedescr['type'] == 'virtual_file') { - // ----- Look for virtual file - $p_header['external'] = 0x00000000; - $p_header['size'] = strlen($p_filedescr['content']); - } - - // ----- Look for filetime - if (isset($p_filedescr['mtime'])) { - $p_header['mtime'] = $p_filedescr['mtime']; - } elseif ($p_filedescr['type'] == 'virtual_file') { - $p_header['mtime'] = time(); - } else { - $p_header['mtime'] = filemtime($p_filename); - } - - // ------ Look for file comment - if (isset($p_filedescr['comment'])) { - $p_header['comment_len'] = strlen($p_filedescr['comment']); - $p_header['comment'] = $p_filedescr['comment']; - } else { - $p_header['comment_len'] = 0; - $p_header['comment'] = ''; - } - - // ----- Look for pre-add callback - if (isset($p_options[PCLZIP_CB_PRE_ADD])) { - // ----- Generate a local information - $v_local_header = array(); - $this->privConvertHeader2FileInfo($p_header, $v_local_header); - - // ----- Call the callback - // Here I do not use call_user_func() because I need to send a reference to the - // header. - // eval('$v_result = '.$p_options[PCLZIP_CB_PRE_ADD].'(PCLZIP_CB_PRE_ADD, $v_local_header);'); - $v_result = $p_options[PCLZIP_CB_PRE_ADD](PCLZIP_CB_PRE_ADD, $v_local_header); - if ($v_result == 0) { - // ----- Change the file status - $p_header['status'] = "skipped"; - $v_result = 1; - } - - // ----- Update the informations - // Only some fields can be modified - if ($p_header['stored_filename'] != $v_local_header['stored_filename']) { - $p_header['stored_filename'] = PclZipUtilPathReduction($v_local_header['stored_filename']); - } - } - - // ----- Look for empty stored filename - if ($p_header['stored_filename'] == "") { - $p_header['status'] = "filtered"; - } - - // ----- Check the path length - if (strlen($p_header['stored_filename']) > 0xFF) { - $p_header['status'] = 'filename_too_long'; - } - - // ----- Look if no error, or file not skipped - if ($p_header['status'] == 'ok') { - // ----- Look for a file - if ($p_filedescr['type'] == 'file') { - // ----- Look for using temporary file to zip - if ((!isset($p_options[PCLZIP_OPT_TEMP_FILE_OFF])) && (isset($p_options[PCLZIP_OPT_TEMP_FILE_ON]) || (isset($p_options[PCLZIP_OPT_TEMP_FILE_THRESHOLD]) && ($p_options[PCLZIP_OPT_TEMP_FILE_THRESHOLD] <= $p_header['size'])))) { - $v_result = $this->privAddFileUsingTempFile($p_filedescr, $p_header, $p_options); - if ($v_result < PCLZIP_ERR_NO_ERROR) { - return $v_result; - } - } else { - // ----- Use "in memory" zip algo - // ----- Open the source file - if (($v_file = @fopen($p_filename, "rb")) == 0) { - PclZip::privErrorLog(PCLZIP_ERR_READ_OPEN_FAIL, "Unable to open file '$p_filename' in binary read mode"); - return PclZip::errorCode(); - } - - // ----- Read the file content - $v_content = @fread($v_file, $p_header['size']); - - // ----- Close the file - @fclose($v_file); - - // ----- Calculate the CRC - $p_header['crc'] = @crc32($v_content); - - // ----- Look for no compression - if ($p_options[PCLZIP_OPT_NO_COMPRESSION]) { - // ----- Set header parameters - $p_header['compressed_size'] = $p_header['size']; - $p_header['compression'] = 0; - } else { - // ----- Look for normal compression - // ----- Compress the content - $v_content = @gzdeflate($v_content); - - // ----- Set header parameters - $p_header['compressed_size'] = strlen($v_content); - $p_header['compression'] = 8; - } - - // ----- Call the header generation - if (($v_result = $this->privWriteFileHeader($p_header)) != 1) { - @fclose($v_file); - return $v_result; - } - - // ----- Write the compressed (or not) content - @fwrite($this->zip_fd, $v_content, $p_header['compressed_size']); - } - } elseif ($p_filedescr['type'] == 'virtual_file') { - // ----- Look for a virtual file (a file from string) - $v_content = $p_filedescr['content']; - - // ----- Calculate the CRC - $p_header['crc'] = @crc32($v_content); - - // ----- Look for no compression - if ($p_options[PCLZIP_OPT_NO_COMPRESSION]) { - // ----- Set header parameters - $p_header['compressed_size'] = $p_header['size']; - $p_header['compression'] = 0; - } else { - // ----- Look for normal compression - // ----- Compress the content - $v_content = @gzdeflate($v_content); - - // ----- Set header parameters - $p_header['compressed_size'] = strlen($v_content); - $p_header['compression'] = 8; - } - - // ----- Call the header generation - if (($v_result = $this->privWriteFileHeader($p_header)) != 1) { - @fclose($v_file); - return $v_result; - } - - // ----- Write the compressed (or not) content - @fwrite($this->zip_fd, $v_content, $p_header['compressed_size']); - } elseif ($p_filedescr['type'] == 'folder') { - // ----- Look for a directory - // ----- Look for directory last '/' - if (@substr($p_header['stored_filename'], -1) != '/') { - $p_header['stored_filename'] .= '/'; - } - - // ----- Set the file properties - $p_header['size'] = 0; - //$p_header['external'] = 0x41FF0010; // Value for a folder : to be checked - $p_header['external'] = 0x00000010; // Value for a folder : to be checked - - // ----- Call the header generation - if (($v_result = $this->privWriteFileHeader($p_header)) != 1) { - return $v_result; - } - } - } - - // ----- Look for post-add callback - if (isset($p_options[PCLZIP_CB_POST_ADD])) { - // ----- Generate a local information - $v_local_header = array(); - $this->privConvertHeader2FileInfo($p_header, $v_local_header); - - // ----- Call the callback - // Here I do not use call_user_func() because I need to send a reference to the - // header. - // eval('$v_result = '.$p_options[PCLZIP_CB_POST_ADD].'(PCLZIP_CB_POST_ADD, $v_local_header);'); - $v_result = $p_options[PCLZIP_CB_POST_ADD](PCLZIP_CB_POST_ADD, $v_local_header); - if ($v_result == 0) { - // ----- Ignored - $v_result = 1; - } - - // ----- Update the informations - // Nothing can be modified - } - - // ----- Return - return $v_result; - } - // -------------------------------------------------------------------------------- - - // -------------------------------------------------------------------------------- - // Function : privOptionDefaultThreshold() - // Description : - // Parameters : - // Return Values : - // -------------------------------------------------------------------------------- - - public function privConvertHeader2FileInfo($p_header, &$p_info) - { - $v_result=1; - - // ----- Get the interesting attributes - $v_temp_path = PclZipUtilPathReduction($p_header['filename']); - $p_info['filename'] = $v_temp_path; - $v_temp_path = PclZipUtilPathReduction($p_header['stored_filename']); - $p_info['stored_filename'] = $v_temp_path; - $p_info['size'] = $p_header['size']; - $p_info['compressed_size'] = $p_header['compressed_size']; - $p_info['mtime'] = $p_header['mtime']; - $p_info['comment'] = $p_header['comment']; - $p_info['folder'] = (($p_header['external']&0x00000010)==0x00000010); - $p_info['index'] = $p_header['index']; - $p_info['status'] = $p_header['status']; - $p_info['crc'] = $p_header['crc']; - - // ----- Return - return $v_result; - } - // -------------------------------------------------------------------------------- - - // -------------------------------------------------------------------------------- - // Function : privFileDescrParseAtt() - // Description : - // Parameters : - // Return Values : - // 1 on success. - // 0 on failure. - // -------------------------------------------------------------------------------- - - public function privAddFileUsingTempFile($p_filedescr, &$p_header, &$p_options) - { - $v_result=PCLZIP_ERR_NO_ERROR; - - // ----- Working variable - $p_filename = $p_filedescr['filename']; - - - // ----- Open the source file - if (($v_file = @fopen($p_filename, "rb")) == 0) { - PclZip::privErrorLog(PCLZIP_ERR_READ_OPEN_FAIL, "Unable to open file '$p_filename' in binary read mode"); - return PclZip::errorCode(); - } - - // ----- Creates a compressed temporary file - $v_gzip_temp_name = PCLZIP_TEMPORARY_DIR.uniqid('pclzip-').'.gz'; - if (($v_file_compressed = @gzopen($v_gzip_temp_name, "wb")) == 0) { - fclose($v_file); - PclZip::privErrorLog(PCLZIP_ERR_WRITE_OPEN_FAIL, 'Unable to open temporary file \''.$v_gzip_temp_name.'\' in binary write mode'); - return PclZip::errorCode(); - } - - // ----- Read the file by PCLZIP_READ_BLOCK_SIZE octets blocks - $v_size = filesize($p_filename); - while ($v_size != 0) { - $v_read_size = ($v_size < PCLZIP_READ_BLOCK_SIZE ? $v_size : PCLZIP_READ_BLOCK_SIZE); - $v_buffer = @fread($v_file, $v_read_size); - //$v_binary_data = pack('a'.$v_read_size, $v_buffer); - @gzputs($v_file_compressed, $v_buffer, $v_read_size); - $v_size -= $v_read_size; - } - - // ----- Close the file - @fclose($v_file); - @gzclose($v_file_compressed); - - // ----- Check the minimum file size - if (filesize($v_gzip_temp_name) < 18) { - PclZip::privErrorLog(PCLZIP_ERR_BAD_FORMAT, 'gzip temporary file \''.$v_gzip_temp_name.'\' has invalid filesize - should be minimum 18 bytes'); - return PclZip::errorCode(); - } - - // ----- Extract the compressed attributes - if (($v_file_compressed = @fopen($v_gzip_temp_name, "rb")) == 0) { - PclZip::privErrorLog(PCLZIP_ERR_READ_OPEN_FAIL, 'Unable to open temporary file \''.$v_gzip_temp_name.'\' in binary read mode'); - return PclZip::errorCode(); - } - - // ----- Read the gzip file header - $v_binary_data = @fread($v_file_compressed, 10); - $v_data_header = unpack('a1id1/a1id2/a1cm/a1flag/Vmtime/a1xfl/a1os', $v_binary_data); - - // ----- Check some parameters - $v_data_header['os'] = bin2hex($v_data_header['os']); - - // ----- Read the gzip file footer - @fseek($v_file_compressed, filesize($v_gzip_temp_name)-8); - $v_binary_data = @fread($v_file_compressed, 8); - $v_data_footer = unpack('Vcrc/Vcompressed_size', $v_binary_data); - - // ----- Set the attributes - $p_header['compression'] = ord($v_data_header['cm']); - //$p_header['mtime'] = $v_data_header['mtime']; - $p_header['crc'] = $v_data_footer['crc']; - $p_header['compressed_size'] = filesize($v_gzip_temp_name)-18; - - // ----- Close the file - @fclose($v_file_compressed); - - // ----- Call the header generation - if (($v_result = $this->privWriteFileHeader($p_header)) != 1) { - return $v_result; - } - - // ----- Add the compressed data - if (($v_file_compressed = @fopen($v_gzip_temp_name, "rb")) == 0) { - PclZip::privErrorLog(PCLZIP_ERR_READ_OPEN_FAIL, 'Unable to open temporary file \''.$v_gzip_temp_name.'\' in binary read mode'); - return PclZip::errorCode(); - } - - // ----- Read the file by PCLZIP_READ_BLOCK_SIZE octets blocks - fseek($v_file_compressed, 10); - $v_size = $p_header['compressed_size']; - while ($v_size != 0) { - $v_read_size = ($v_size < PCLZIP_READ_BLOCK_SIZE ? $v_size : PCLZIP_READ_BLOCK_SIZE); - $v_buffer = @fread($v_file_compressed, $v_read_size); - //$v_binary_data = pack('a'.$v_read_size, $v_buffer); - @fwrite($this->zip_fd, $v_buffer, $v_read_size); - $v_size -= $v_read_size; - } - - // ----- Close the file - @fclose($v_file_compressed); - - // ----- Unlink the temporary file - @unlink($v_gzip_temp_name); - - // ----- Return - return $v_result; - } - // -------------------------------------------------------------------------------- - - // -------------------------------------------------------------------------------- - // Function : privFileDescrExpand() - // Description : - // This method look for each item of the list to see if its a file, a folder - // or a string to be added as file. For any other type of files (link, other) - // just ignore the item. - // Then prepare the information that will be stored for that file. - // When its a folder, expand the folder with all the files that are in that - // folder (recursively). - // Parameters : - // Return Values : - // 1 on success. - // 0 on failure. - // -------------------------------------------------------------------------------- - - public function privWriteFileHeader(&$p_header) - { - $v_result=1; - - // ----- Store the offset position of the file - $p_header['offset'] = ftell($this->zip_fd); - - // ----- Transform UNIX mtime to DOS format mdate/mtime - $v_date = getdate($p_header['mtime']); - $v_mtime = ($v_date['hours']<<11) + ($v_date['minutes']<<5) + $v_date['seconds']/2; - $v_mdate = (($v_date['year']-1980)<<9) + ($v_date['mon']<<5) + $v_date['mday']; - - // ----- Packed data - $v_binary_data = pack("VvvvvvVVVvv", 0x04034b50, $p_header['version_extracted'], $p_header['flag'], $p_header['compression'], $v_mtime, $v_mdate, $p_header['crc'], $p_header['compressed_size'], $p_header['size'], strlen($p_header['stored_filename']), $p_header['extra_len']); - - // ----- Write the first 148 bytes of the header in the archive - fputs($this->zip_fd, $v_binary_data, 30); - - // ----- Write the variable fields - if (strlen($p_header['stored_filename']) != 0) { - fputs($this->zip_fd, $p_header['stored_filename'], strlen($p_header['stored_filename'])); - } - if ($p_header['extra_len'] != 0) { - fputs($this->zip_fd, $p_header['extra'], $p_header['extra_len']); - } - - // ----- Return - return $v_result; - } - // -------------------------------------------------------------------------------- - - // -------------------------------------------------------------------------------- - // Function : privCreate() - // Description : - // Parameters : - // Return Values : - // -------------------------------------------------------------------------------- - - public function privWriteCentralFileHeader(&$p_header) - { - $v_result=1; - - // TBC - //for(reset($p_header); $key = key($p_header); next($p_header)) { - //} - - // ----- Transform UNIX mtime to DOS format mdate/mtime - $v_date = getdate($p_header['mtime']); - $v_mtime = ($v_date['hours']<<11) + ($v_date['minutes']<<5) + $v_date['seconds']/2; - $v_mdate = (($v_date['year']-1980)<<9) + ($v_date['mon']<<5) + $v_date['mday']; - - - // ----- Packed data - $v_binary_data = pack("VvvvvvvVVVvvvvvVV", 0x02014b50, $p_header['version'], $p_header['version_extracted'], $p_header['flag'], $p_header['compression'], $v_mtime, $v_mdate, $p_header['crc'], $p_header['compressed_size'], $p_header['size'], strlen($p_header['stored_filename']), $p_header['extra_len'], $p_header['comment_len'], $p_header['disk'], $p_header['internal'], $p_header['external'], $p_header['offset']); - - // ----- Write the 42 bytes of the header in the zip file - fputs($this->zip_fd, $v_binary_data, 46); - - // ----- Write the variable fields - if (strlen($p_header['stored_filename']) != 0) { - fputs($this->zip_fd, $p_header['stored_filename'], strlen($p_header['stored_filename'])); - } - if ($p_header['extra_len'] != 0) { - fputs($this->zip_fd, $p_header['extra'], $p_header['extra_len']); - } - if ($p_header['comment_len'] != 0) { - fputs($this->zip_fd, $p_header['comment'], $p_header['comment_len']); - } - - // ----- Return - return $v_result; - } - // -------------------------------------------------------------------------------- - - // -------------------------------------------------------------------------------- - // Function : privAdd() - // Description : - // Parameters : - // Return Values : - // -------------------------------------------------------------------------------- - - public function privWriteCentralHeader($p_nb_entries, $p_size, $p_offset, $p_comment) - { - $v_result = 1; - - // ----- Packed data - $v_binary_data = pack("VvvvvVVv", 0x06054b50, 0, 0, $p_nb_entries, $p_nb_entries, $p_size, $p_offset, strlen($p_comment)); - - // ----- Write the 22 bytes of the header in the zip file - fputs($this->zip_fd, $v_binary_data, 22); - - // ----- Write the variable fields - if (strlen($p_comment) != 0) { - fputs($this->zip_fd, $p_comment, strlen($p_comment)); - } - - // ----- Return - return $v_result; - } - // -------------------------------------------------------------------------------- - - // -------------------------------------------------------------------------------- - // Function : privOpenFd() - // Description : - // Parameters : - // -------------------------------------------------------------------------------- - - public function privCloseFd() - { - $v_result=1; - - if ($this->zip_fd != 0) { - @fclose($this->zip_fd); - } - $this->zip_fd = 0; - - // ----- Return - return $v_result; - } - // -------------------------------------------------------------------------------- - - // -------------------------------------------------------------------------------- - // Function : privCloseFd() - // Description : - // Parameters : - // -------------------------------------------------------------------------------- - - public function privSwapBackMagicQuotes() - { - $v_result=1; - - // ----- Look if function exists - if ((!function_exists("get_magic_quotes_runtime")) || (!function_exists("set_magic_quotes_runtime"))) { - return $v_result; - } - - // ----- Look if something to do - if ($this->magic_quotes_status != -1) { - return $v_result; - } - - // ----- Swap back magic_quotes - if ($this->magic_quotes_status == 1) { - @set_magic_quotes_runtime($this->magic_quotes_status); - } - - // ----- Return - return $v_result; - } - // -------------------------------------------------------------------------------- - - // -------------------------------------------------------------------------------- - // Function : privAddList() - // Description : - // $p_add_dir and $p_remove_dir will give the ability to memorize a path which is - // different from the real path of the file. This is usefull if you want to have PclTar - // running in any directory, and memorize relative path from an other directory. - // Parameters : - // $p_list : An array containing the file or directory names to add in the tar - // $p_result_list : list of added files with their properties (specially the status field) - // $p_add_dir : Path to add in the filename path archived - // $p_remove_dir : Path to remove in the filename path archived - // Return Values : - // -------------------------------------------------------------------------------- - // public function privAddList($p_list, &$p_result_list, $p_add_dir, $p_remove_dir, $p_remove_all_dir, &$p_options) - - public function add($p_filelist) - { - $v_result=1; - - // ----- Reset the error handler - $this->privErrorReset(); - - // ----- Set default values - $v_options = array(); - $v_options[PCLZIP_OPT_NO_COMPRESSION] = false; - - // ----- Look for variable options arguments - $v_size = func_num_args(); - - // ----- Look for arguments - if ($v_size > 1) { - // ----- Get the arguments - $v_arg_list = func_get_args(); - - // ----- Remove form the options list the first argument - array_shift($v_arg_list); - $v_size--; - - // ----- Look for first arg - if ((is_integer($v_arg_list[0])) && ($v_arg_list[0] > 77000)) { - // ----- Parse the options - $v_result = $this->privParseOptions($v_arg_list, $v_size, $v_options, array ( - PCLZIP_OPT_REMOVE_PATH => 'optional', - PCLZIP_OPT_REMOVE_ALL_PATH => 'optional', - PCLZIP_OPT_ADD_PATH => 'optional', - PCLZIP_CB_PRE_ADD => 'optional', - PCLZIP_CB_POST_ADD => 'optional', - PCLZIP_OPT_NO_COMPRESSION => 'optional', - PCLZIP_OPT_COMMENT => 'optional', - PCLZIP_OPT_ADD_COMMENT => 'optional', - PCLZIP_OPT_PREPEND_COMMENT => 'optional', - PCLZIP_OPT_TEMP_FILE_THRESHOLD => 'optional', - PCLZIP_OPT_TEMP_FILE_ON => 'optional', - PCLZIP_OPT_TEMP_FILE_OFF => 'optional' - //, PCLZIP_OPT_CRYPT => 'optional' - )); - if ($v_result != 1) { - return 0; - } - } else { - // ----- Look for 2 args - // Here we need to support the first historic synopsis of the - // method. - // ----- Get the first argument - $v_options[PCLZIP_OPT_ADD_PATH] = $v_add_path = $v_arg_list[0]; - - // ----- Look for the optional second argument - if ($v_size == 2) { - $v_options[PCLZIP_OPT_REMOVE_PATH] = $v_arg_list[1]; - } elseif ($v_size > 2) { - // ----- Error log - PclZip::privErrorLog(PCLZIP_ERR_INVALID_PARAMETER, "Invalid number / type of arguments"); - - // ----- Return - return 0; - } - } - } - - // ----- Look for default option values - $this->privOptionDefaultThreshold($v_options); - - // ----- Init - $v_string_list = array(); - $v_att_list = array(); - $v_filedescr_list = array(); - $p_result_list = array(); - - // ----- Look if the $p_filelist is really an array - if (is_array($p_filelist)) { - // ----- Look if the first element is also an array - // This will mean that this is a file description entry - if (isset($p_filelist[0]) && is_array($p_filelist[0])) { - $v_att_list = $p_filelist; - } else { - // ----- The list is a list of string names - $v_string_list = $p_filelist; - } - } elseif (is_string($p_filelist)) { - // ----- Look if the $p_filelist is a string - // ----- Create a list from the string - $v_string_list = explode(PCLZIP_SEPARATOR, $p_filelist); - } else { - // ----- Invalid variable type for $p_filelist - PclZip::privErrorLog(PCLZIP_ERR_INVALID_PARAMETER, "Invalid variable type '".gettype($p_filelist)."' for p_filelist"); - return 0; - } - - // ----- Reformat the string list - if (sizeof($v_string_list) != 0) { - foreach ($v_string_list as $v_string) { - $v_att_list[][PCLZIP_ATT_FILE_NAME] = $v_string; - } - } - - // ----- For each file in the list check the attributes - $v_supported_attributes = array( - PCLZIP_ATT_FILE_NAME => 'mandatory', - PCLZIP_ATT_FILE_NEW_SHORT_NAME => 'optional', - PCLZIP_ATT_FILE_NEW_FULL_NAME => 'optional', - PCLZIP_ATT_FILE_MTIME => 'optional', - PCLZIP_ATT_FILE_CONTENT => 'optional', - PCLZIP_ATT_FILE_COMMENT => 'optional', - ); - foreach ($v_att_list as $v_entry) { - $v_result = $this->privFileDescrParseAtt($v_entry, $v_filedescr_list[], $v_options, $v_supported_attributes); - if ($v_result != 1) { - return 0; - } - } - - // ----- Expand the filelist (expand directories) - $v_result = $this->privFileDescrExpand($v_filedescr_list, $v_options); - if ($v_result != 1) { - return 0; - } - - // ----- Call the create fct - $v_result = $this->privAdd($v_filedescr_list, $p_result_list, $v_options); - if ($v_result != 1) { - return 0; - } - - // ----- Return - return $p_result_list; - } - // -------------------------------------------------------------------------------- - - // -------------------------------------------------------------------------------- - // Function : privAddFileList() - // Description : - // Parameters : - // $p_filedescr_list : An array containing the file description - // or directory names to add in the zip - // $p_result_list : list of added files with their properties (specially the status field) - // Return Values : - // -------------------------------------------------------------------------------- - - public function privAdd($p_filedescr_list, &$p_result_list, &$p_options) - { - $v_result=1; - $v_list_detail = array(); - - // ----- Look if the archive exists or is empty - if ((!is_file($this->zipname)) || (filesize($this->zipname) == 0)) { - // ----- Do a create - $v_result = $this->privCreate($p_filedescr_list, $p_result_list, $p_options); - - // ----- Return - return $v_result; - } - // ----- Magic quotes trick - $this->privDisableMagicQuotes(); - - // ----- Open the zip file - if (($v_result=$this->privOpenFd('rb')) != 1) { - // ----- Magic quotes trick - $this->privSwapBackMagicQuotes(); - - // ----- Return - return $v_result; - } - - // ----- Read the central directory informations - $v_central_dir = array(); - if (($v_result = $this->privReadEndCentralDir($v_central_dir)) != 1) { - $this->privCloseFd(); - $this->privSwapBackMagicQuotes(); - return $v_result; - } - - // ----- Go to beginning of File - @rewind($this->zip_fd); - - // ----- Creates a temporay file - $v_zip_temp_name = PCLZIP_TEMPORARY_DIR.uniqid('pclzip-').'.tmp'; - - // ----- Open the temporary file in write mode - if (($v_zip_temp_fd = @fopen($v_zip_temp_name, 'wb')) == 0) { - $this->privCloseFd(); - $this->privSwapBackMagicQuotes(); - - PclZip::privErrorLog(PCLZIP_ERR_READ_OPEN_FAIL, 'Unable to open temporary file \''.$v_zip_temp_name.'\' in binary write mode'); - - // ----- Return - return PclZip::errorCode(); - } - - // ----- Copy the files from the archive to the temporary file - // TBC : Here I should better append the file and go back to erase the central dir - $v_size = $v_central_dir['offset']; - while ($v_size != 0) { - $v_read_size = ($v_size < PCLZIP_READ_BLOCK_SIZE ? $v_size : PCLZIP_READ_BLOCK_SIZE); - $v_buffer = fread($this->zip_fd, $v_read_size); - @fwrite($v_zip_temp_fd, $v_buffer, $v_read_size); - $v_size -= $v_read_size; - } - - // ----- Swap the file descriptor - // Here is a trick : I swap the temporary fd with the zip fd, in order to use - // the following methods on the temporary fil and not the real archive - $v_swap = $this->zip_fd; - $this->zip_fd = $v_zip_temp_fd; - $v_zip_temp_fd = $v_swap; - - // ----- Add the files - $v_header_list = array(); - if (($v_result = $this->privAddFileList($p_filedescr_list, $v_header_list, $p_options)) != 1) { - fclose($v_zip_temp_fd); - $this->privCloseFd(); - @unlink($v_zip_temp_name); - $this->privSwapBackMagicQuotes(); - - // ----- Return - return $v_result; - } - - // ----- Store the offset of the central dir - $v_offset = @ftell($this->zip_fd); - - // ----- Copy the block of file headers from the old archive - $v_size = $v_central_dir['size']; - while ($v_size != 0) { - $v_read_size = ($v_size < PCLZIP_READ_BLOCK_SIZE ? $v_size : PCLZIP_READ_BLOCK_SIZE); - $v_buffer = @fread($v_zip_temp_fd, $v_read_size); - @fwrite($this->zip_fd, $v_buffer, $v_read_size); - $v_size -= $v_read_size; - } - - // ----- Create the Central Dir files header - for ($i=0, $v_count=0; $i<sizeof($v_header_list); $i++) { - // ----- Create the file header - if ($v_header_list[$i]['status'] == 'ok') { - if (($v_result = $this->privWriteCentralFileHeader($v_header_list[$i])) != 1) { - fclose($v_zip_temp_fd); - $this->privCloseFd(); - @unlink($v_zip_temp_name); - $this->privSwapBackMagicQuotes(); - - // ----- Return - return $v_result; - } - $v_count++; - } - - // ----- Transform the header to a 'usable' info - $this->privConvertHeader2FileInfo($v_header_list[$i], $p_result_list[$i]); - } - - // ----- Zip file comment - $v_comment = $v_central_dir['comment']; - if (isset($p_options[PCLZIP_OPT_COMMENT])) { - $v_comment = $p_options[PCLZIP_OPT_COMMENT]; - } - if (isset($p_options[PCLZIP_OPT_ADD_COMMENT])) { - $v_comment = $v_comment.$p_options[PCLZIP_OPT_ADD_COMMENT]; - } - if (isset($p_options[PCLZIP_OPT_PREPEND_COMMENT])) { - $v_comment = $p_options[PCLZIP_OPT_PREPEND_COMMENT].$v_comment; - } - - // ----- Calculate the size of the central header - $v_size = @ftell($this->zip_fd)-$v_offset; - - // ----- Create the central dir footer - if (($v_result = $this->privWriteCentralHeader($v_count+$v_central_dir['entries'], $v_size, $v_offset, $v_comment)) != 1) { - // ----- Reset the file list - unset($v_header_list); - $this->privSwapBackMagicQuotes(); - - // ----- Return - return $v_result; - } - - // ----- Swap back the file descriptor - $v_swap = $this->zip_fd; - $this->zip_fd = $v_zip_temp_fd; - $v_zip_temp_fd = $v_swap; - - // ----- Close - $this->privCloseFd(); - - // ----- Close the temporary file - @fclose($v_zip_temp_fd); - - // ----- Magic quotes trick - $this->privSwapBackMagicQuotes(); - - // ----- Delete the zip file - // TBC : I should test the result ... - @unlink($this->zipname); - - // ----- Rename the temporary file - // TBC : I should test the result ... - //@rename($v_zip_temp_name, $this->zipname); - PclZipUtilRename($v_zip_temp_name, $this->zipname); - - // ----- Return - return $v_result; - } - // -------------------------------------------------------------------------------- - - // -------------------------------------------------------------------------------- - // Function : privAddFile() - // Description : - // Parameters : - // Return Values : - // -------------------------------------------------------------------------------- - - public function privReadEndCentralDir(&$p_central_dir) - { - $v_result=1; - - // ----- Go to the end of the zip file - $v_size = filesize($this->zipname); - @fseek($this->zip_fd, $v_size); - if (@ftell($this->zip_fd) != $v_size) { - // ----- Error log - PclZip::privErrorLog(PCLZIP_ERR_BAD_FORMAT, 'Unable to go to the end of the archive \''.$this->zipname.'\''); - - // ----- Return - return PclZip::errorCode(); - } - - // ----- First try : look if this is an archive with no commentaries (most of the time) - // in this case the end of central dir is at 22 bytes of the file end - $v_found = 0; - if ($v_size > 26) { - @fseek($this->zip_fd, $v_size-22); - if (($v_pos = @ftell($this->zip_fd)) != ($v_size-22)) { - // ----- Error log - PclZip::privErrorLog(PCLZIP_ERR_BAD_FORMAT, 'Unable to seek back to the middle of the archive \''.$this->zipname.'\''); - - // ----- Return - return PclZip::errorCode(); - } - - // ----- Read for bytes - $v_binary_data = @fread($this->zip_fd, 4); - $v_data = @unpack('Vid', $v_binary_data); - - // ----- Check signature - if ($v_data['id'] == 0x06054b50) { - $v_found = 1; - } - - $v_pos = ftell($this->zip_fd); - } - - // ----- Go back to the maximum possible size of the Central Dir End Record - if (!$v_found) { - $v_maximum_size = 65557; // 0xFFFF + 22; - if ($v_maximum_size > $v_size) { - $v_maximum_size = $v_size; - } - @fseek($this->zip_fd, $v_size-$v_maximum_size); - if (@ftell($this->zip_fd) != ($v_size-$v_maximum_size)) { - // ----- Error log - PclZip::privErrorLog(PCLZIP_ERR_BAD_FORMAT, 'Unable to seek back to the middle of the archive \''.$this->zipname.'\''); - - // ----- Return - return PclZip::errorCode(); - } - - // ----- Read byte per byte in order to find the signature - $v_pos = ftell($this->zip_fd); - $v_bytes = 0x00000000; - while ($v_pos < $v_size) { - // ----- Read a byte - $v_byte = @fread($this->zip_fd, 1); - - // ----- Add the byte - //$v_bytes = ($v_bytes << 8) | Ord($v_byte); - // Note we mask the old value down such that once shifted we can never end up with more than a 32bit number - // Otherwise on systems where we have 64bit integers the check below for the magic number will fail. - $v_bytes = (($v_bytes & 0xFFFFFF) << 8) | Ord($v_byte); - - // ----- Compare the bytes - if ($v_bytes == 0x504b0506) { - $v_pos++; - break; - } - - $v_pos++; - } - - // ----- Look if not found end of central dir - if ($v_pos == $v_size) { - // ----- Error log - PclZip::privErrorLog(PCLZIP_ERR_BAD_FORMAT, "Unable to find End of Central Dir Record signature"); - - // ----- Return - return PclZip::errorCode(); - } - } - - // ----- Read the first 18 bytes of the header - $v_binary_data = fread($this->zip_fd, 18); - - // ----- Look for invalid block size - if (strlen($v_binary_data) != 18) { - // ----- Error log - PclZip::privErrorLog(PCLZIP_ERR_BAD_FORMAT, "Invalid End of Central Dir Record size : ".strlen($v_binary_data)); - - // ----- Return - return PclZip::errorCode(); - } - - // ----- Extract the values - $v_data = unpack('vdisk/vdisk_start/vdisk_entries/ventries/Vsize/Voffset/vcomment_size', $v_binary_data); - - // ----- Check the global size - if (($v_pos + $v_data['comment_size'] + 18) != $v_size) { - // ----- Removed in release 2.2 see readme file - // The check of the file size is a little too strict. - // Some bugs where found when a zip is encrypted/decrypted with 'crypt'. - // While decrypted, zip has training 0 bytes - if (0) { - // ----- Error log - PclZip::privErrorLog(PCLZIP_ERR_BAD_FORMAT, 'The central dir is not at the end of the archive. Some trailing bytes exists after the archive.'); - - // ----- Return - return PclZip::errorCode(); - } - } - - // ----- Get comment - if ($v_data['comment_size'] != 0) { - $p_central_dir['comment'] = fread($this->zip_fd, $v_data['comment_size']); - } else { - $p_central_dir['comment'] = ''; - } - - $p_central_dir['entries'] = $v_data['entries']; - $p_central_dir['disk_entries'] = $v_data['disk_entries']; - $p_central_dir['offset'] = $v_data['offset']; - $p_central_dir['size'] = $v_data['size']; - $p_central_dir['disk'] = $v_data['disk']; - $p_central_dir['disk_start'] = $v_data['disk_start']; - - // TBC - //for(reset($p_central_dir); $key = key($p_central_dir); next($p_central_dir)) { - //} - - // ----- Return - return $v_result; - } - // -------------------------------------------------------------------------------- - - // -------------------------------------------------------------------------------- - // Function : privAddFileUsingTempFile() - // Description : - // Parameters : - // Return Values : - // -------------------------------------------------------------------------------- - - public function listContent() - { - $v_result=1; - - // ----- Reset the error handler - $this->privErrorReset(); - - // ----- Check archive - if (!$this->privCheckFormat()) { - return(0); - } - - // ----- Call the extracting fct - $p_list = array(); - if (($v_result = $this->privList($p_list)) != 1) { - unset($p_list); - return(0); - } - - // ----- Return - return $p_list; - } - // -------------------------------------------------------------------------------- - - // -------------------------------------------------------------------------------- - // Function : privCalculateStoredFilename() - // Description : - // Based on file descriptor properties and global options, this method - // calculate the filename that will be stored in the archive. - // Parameters : - // Return Values : - // -------------------------------------------------------------------------------- - - public function privCheckFormat($p_level = 0) - { - $v_result = true; - - // ----- Reset the file system cache - clearstatcache(); - - // ----- Reset the error handler - $this->privErrorReset(); - - // ----- Look if the file exits - if (!is_file($this->zipname)) { - // ----- Error log - PclZip::privErrorLog(PCLZIP_ERR_MISSING_FILE, "Missing archive file '".$this->zipname."'"); - return(false); - } - - // ----- Check that the file is readeable - if (!is_readable($this->zipname)) { - // ----- Error log - PclZip::privErrorLog(PCLZIP_ERR_READ_OPEN_FAIL, "Unable to read archive '".$this->zipname."'"); - return(false); - } - - // ----- Check the magic code - // TBC - - // ----- Check the central header - // TBC - - // ----- Check each file header - // TBC - - // ----- Return - return $v_result; - } - // -------------------------------------------------------------------------------- - - // -------------------------------------------------------------------------------- - // Function : privWriteFileHeader() - // Description : - // Parameters : - // Return Values : - // -------------------------------------------------------------------------------- - - public function privList(&$p_list) - { - $v_result = 1; - - // ----- Magic quotes trick - $this->privDisableMagicQuotes(); - - // ----- Open the zip file - if (($this->zip_fd = @fopen($this->zipname, 'rb')) == 0) { - // ----- Magic quotes trick - $this->privSwapBackMagicQuotes(); - - // ----- Error log - PclZip::privErrorLog(PCLZIP_ERR_READ_OPEN_FAIL, 'Unable to open archive \''.$this->zipname.'\' in binary read mode'); - - // ----- Return - return PclZip::errorCode(); - } - - // ----- Read the central directory informations - $v_central_dir = array(); - if (($v_result = $this->privReadEndCentralDir($v_central_dir)) != 1) { - $this->privSwapBackMagicQuotes(); - return $v_result; - } - - // ----- Go to beginning of Central Dir - @rewind($this->zip_fd); - if (@fseek($this->zip_fd, $v_central_dir['offset'])) { - $this->privSwapBackMagicQuotes(); - - // ----- Error log - PclZip::privErrorLog(PCLZIP_ERR_INVALID_ARCHIVE_ZIP, 'Invalid archive size'); - - // ----- Return - return PclZip::errorCode(); - } - - // ----- Read each entry - for ($i=0; $i<$v_central_dir['entries']; $i++) { - // ----- Read the file header - if (($v_result = $this->privReadCentralFileHeader($v_header)) != 1) { - $this->privSwapBackMagicQuotes(); - return $v_result; - } - $v_header['index'] = $i; - - // ----- Get the only interesting attributes - $this->privConvertHeader2FileInfo($v_header, $p_list[$i]); - unset($v_header); - } - - // ----- Close the zip file - $this->privCloseFd(); - - // ----- Magic quotes trick - $this->privSwapBackMagicQuotes(); - - // ----- Return - return $v_result; - } - // -------------------------------------------------------------------------------- - - // -------------------------------------------------------------------------------- - // Function : privWriteCentralFileHeader() - // Description : - // Parameters : - // Return Values : - // -------------------------------------------------------------------------------- - - public function privReadCentralFileHeader(&$p_header) - { - $v_result = 1; - - // ----- Read the 4 bytes signature - $v_binary_data = @fread($this->zip_fd, 4); - $v_data = unpack('Vid', $v_binary_data); - - // ----- Check signature - if ($v_data['id'] != 0x02014b50) { - // ----- Error log - PclZip::privErrorLog(PCLZIP_ERR_BAD_FORMAT, 'Invalid archive structure'); - - // ----- Return - return PclZip::errorCode(); - } - - // ----- Read the first 42 bytes of the header - $v_binary_data = fread($this->zip_fd, 42); - - // ----- Look for invalid block size - if (strlen($v_binary_data) != 42) { - $p_header['filename'] = ""; - $p_header['status'] = "invalid_header"; - - // ----- Error log - PclZip::privErrorLog(PCLZIP_ERR_BAD_FORMAT, "Invalid block size : ".strlen($v_binary_data)); - - // ----- Return - return PclZip::errorCode(); - } - - // ----- Extract the values - $p_header = unpack('vversion/vversion_extracted/vflag/vcompression/vmtime/vmdate/Vcrc/Vcompressed_size/Vsize/vfilename_len/vextra_len/vcomment_len/vdisk/vinternal/Vexternal/Voffset', $v_binary_data); - - // ----- Get filename - if ($p_header['filename_len'] != 0) { - $p_header['filename'] = fread($this->zip_fd, $p_header['filename_len']); - } else { - $p_header['filename'] = ''; - } - - // ----- Get extra - if ($p_header['extra_len'] != 0) { - $p_header['extra'] = fread($this->zip_fd, $p_header['extra_len']); - } else { - $p_header['extra'] = ''; - } - - // ----- Get comment - if ($p_header['comment_len'] != 0) { - $p_header['comment'] = fread($this->zip_fd, $p_header['comment_len']); - } else { - $p_header['comment'] = ''; - } - - // ----- Extract properties - - // ----- Recuperate date in UNIX format - //if ($p_header['mdate'] && $p_header['mtime']) - // TBC : bug : this was ignoring time with 0/0/0 - if (1) { - // ----- Extract time - $v_hour = ($p_header['mtime'] & 0xF800) >> 11; - $v_minute = ($p_header['mtime'] & 0x07E0) >> 5; - $v_seconde = ($p_header['mtime'] & 0x001F)*2; - - // ----- Extract date - $v_year = (($p_header['mdate'] & 0xFE00) >> 9) + 1980; - $v_month = ($p_header['mdate'] & 0x01E0) >> 5; - $v_day = $p_header['mdate'] & 0x001F; - - // ----- Get UNIX date format - $p_header['mtime'] = @mktime($v_hour, $v_minute, $v_seconde, $v_month, $v_day, $v_year); - - } else { - $p_header['mtime'] = time(); - } - - // ----- Set the stored filename - $p_header['stored_filename'] = $p_header['filename']; - - // ----- Set default status to ok - $p_header['status'] = 'ok'; - - // ----- Look if it is a directory - if (substr($p_header['filename'], -1) == '/') { - //$p_header['external'] = 0x41FF0010; - $p_header['external'] = 0x00000010; - } - - - // ----- Return - return $v_result; - } - // -------------------------------------------------------------------------------- - - // -------------------------------------------------------------------------------- - // Function : privWriteCentralHeader() - // Description : - // Parameters : - // Return Values : - // -------------------------------------------------------------------------------- - - public function extract() - { - $v_result=1; - - // ----- Reset the error handler - $this->privErrorReset(); - - // ----- Check archive - if (!$this->privCheckFormat()) { - return(0); - } - - // ----- Set default values - $v_options = array(); - // $v_path = "./"; - $v_path = ''; - $v_remove_path = ""; - $v_remove_all_path = false; - - // ----- Look for variable options arguments - $v_size = func_num_args(); - - // ----- Default values for option - $v_options[PCLZIP_OPT_EXTRACT_AS_STRING] = false; - - // ----- Look for arguments - if ($v_size > 0) { - // ----- Get the arguments - $v_arg_list = func_get_args(); - - // ----- Look for first arg - if ((is_integer($v_arg_list[0])) && ($v_arg_list[0] > 77000)) { - // ----- Parse the options - $v_result = $this->privParseOptions($v_arg_list, $v_size, $v_options, array ( - PCLZIP_OPT_PATH => 'optional', - PCLZIP_OPT_REMOVE_PATH => 'optional', - PCLZIP_OPT_REMOVE_ALL_PATH => 'optional', - PCLZIP_OPT_ADD_PATH => 'optional', - PCLZIP_CB_PRE_EXTRACT => 'optional', - PCLZIP_CB_POST_EXTRACT => 'optional', - PCLZIP_OPT_SET_CHMOD => 'optional', - PCLZIP_OPT_BY_NAME => 'optional', - PCLZIP_OPT_BY_EREG => 'optional', - PCLZIP_OPT_BY_PREG => 'optional', - PCLZIP_OPT_BY_INDEX => 'optional', - PCLZIP_OPT_EXTRACT_AS_STRING => 'optional', - PCLZIP_OPT_EXTRACT_IN_OUTPUT => 'optional', - PCLZIP_OPT_REPLACE_NEWER => 'optional', - PCLZIP_OPT_STOP_ON_ERROR => 'optional', - PCLZIP_OPT_EXTRACT_DIR_RESTRICTION => 'optional', - PCLZIP_OPT_TEMP_FILE_THRESHOLD => 'optional', - PCLZIP_OPT_TEMP_FILE_ON => 'optional', - PCLZIP_OPT_TEMP_FILE_OFF => 'optional' - )); - if ($v_result != 1) { - return 0; - } - - // ----- Set the arguments - if (isset($v_options[PCLZIP_OPT_PATH])) { - $v_path = $v_options[PCLZIP_OPT_PATH]; - } - if (isset($v_options[PCLZIP_OPT_REMOVE_PATH])) { - $v_remove_path = $v_options[PCLZIP_OPT_REMOVE_PATH]; - } - if (isset($v_options[PCLZIP_OPT_REMOVE_ALL_PATH])) { - $v_remove_all_path = $v_options[PCLZIP_OPT_REMOVE_ALL_PATH]; - } - if (isset($v_options[PCLZIP_OPT_ADD_PATH])) { - // ----- Check for '/' in last path char - if ((strlen($v_path) > 0) && (substr($v_path, -1) != '/')) { - $v_path .= '/'; - } - $v_path .= $v_options[PCLZIP_OPT_ADD_PATH]; - } - } else { - // ----- Look for 2 args - // Here we need to support the first historic synopsis of the - // method. - // ----- Get the first argument - $v_path = $v_arg_list[0]; - - // ----- Look for the optional second argument - if ($v_size == 2) { - $v_remove_path = $v_arg_list[1]; - } elseif ($v_size > 2) { - // ----- Error log - PclZip::privErrorLog(PCLZIP_ERR_INVALID_PARAMETER, "Invalid number / type of arguments"); - - // ----- Return - return 0; - } - } - } - - // ----- Look for default option values - $this->privOptionDefaultThreshold($v_options); - - // ----- Trace - - // ----- Call the extracting fct - $p_list = array(); - $v_result = $this->privExtractByRule($p_list, $v_path, $v_remove_path, $v_remove_all_path, $v_options); - if ($v_result < 1) { - unset($p_list); - return(0); - } - - // ----- Return - return $p_list; - } - // -------------------------------------------------------------------------------- - - // -------------------------------------------------------------------------------- - // Function : privList() - // Description : - // Parameters : - // Return Values : - // -------------------------------------------------------------------------------- - - public function privExtractByRule(&$p_file_list, $p_path, $p_remove_path, $p_remove_all_path, &$p_options) - { - $v_result=1; - - // ----- Magic quotes trick - $this->privDisableMagicQuotes(); - - // ----- Check the path - if (($p_path == "") || ((substr($p_path, 0, 1) != "/") && (substr($p_path, 0, 3) != "../") && (substr($p_path, 1, 2)!=":/"))) { - $p_path = "./".$p_path; - } - - // ----- Reduce the path last (and duplicated) '/' - if (($p_path != "./") && ($p_path != "/")) { - // ----- Look for the path end '/' - while (substr($p_path, -1) == "/") { - $p_path = substr($p_path, 0, strlen($p_path)-1); - } - } - - // ----- Look for path to remove format (should end by /) - if (($p_remove_path != "") && (substr($p_remove_path, -1) != '/')) { - $p_remove_path .= '/'; - } - $p_remove_path_size = strlen($p_remove_path); - - // ----- Open the zip file - if (($v_result = $this->privOpenFd('rb')) != 1) { - $this->privSwapBackMagicQuotes(); - return $v_result; - } - - // ----- Read the central directory informations - $v_central_dir = array(); - if (($v_result = $this->privReadEndCentralDir($v_central_dir)) != 1) { - // ----- Close the zip file - $this->privCloseFd(); - $this->privSwapBackMagicQuotes(); - - return $v_result; - } - - // ----- Start at beginning of Central Dir - $v_pos_entry = $v_central_dir['offset']; - - // ----- Read each entry - $j_start = 0; - for ($i=0, $v_nb_extracted=0; $i<$v_central_dir['entries']; $i++) { - // ----- Read next Central dir entry - @rewind($this->zip_fd); - if (@fseek($this->zip_fd, $v_pos_entry)) { - // ----- Close the zip file - $this->privCloseFd(); - $this->privSwapBackMagicQuotes(); - - // ----- Error log - PclZip::privErrorLog(PCLZIP_ERR_INVALID_ARCHIVE_ZIP, 'Invalid archive size'); - - // ----- Return - return PclZip::errorCode(); - } - - // ----- Read the file header - $v_header = array(); - if (($v_result = $this->privReadCentralFileHeader($v_header)) != 1) { - // ----- Close the zip file - $this->privCloseFd(); - $this->privSwapBackMagicQuotes(); - - return $v_result; - } - - // ----- Store the index - $v_header['index'] = $i; - - // ----- Store the file position - $v_pos_entry = ftell($this->zip_fd); - - // ----- Look for the specific extract rules - $v_extract = false; - - // ----- Look for extract by name rule - if ((isset($p_options[PCLZIP_OPT_BY_NAME])) && ($p_options[PCLZIP_OPT_BY_NAME] != 0)) { - // ----- Look if the filename is in the list - for ($j=0; ($j<sizeof($p_options[PCLZIP_OPT_BY_NAME])) && (!$v_extract); $j++) { - // ----- Look for a directory - if (substr($p_options[PCLZIP_OPT_BY_NAME][$j], -1) == "/") { - // ----- Look if the directory is in the filename path - if ((strlen($v_header['stored_filename']) > strlen($p_options[PCLZIP_OPT_BY_NAME][$j])) && (substr($v_header['stored_filename'], 0, strlen($p_options[PCLZIP_OPT_BY_NAME][$j])) == $p_options[PCLZIP_OPT_BY_NAME][$j])) { - $v_extract = true; - } - } elseif ($v_header['stored_filename'] == $p_options[PCLZIP_OPT_BY_NAME][$j]) { - // ----- Look for a filename - $v_extract = true; - } - } - } elseif ((isset($p_options[PCLZIP_OPT_BY_PREG])) && ($p_options[PCLZIP_OPT_BY_PREG] != "")) { - // ----- Look for extract by preg rule - if (preg_match($p_options[PCLZIP_OPT_BY_PREG], $v_header['stored_filename'])) { - $v_extract = true; - } - } elseif ((isset($p_options[PCLZIP_OPT_BY_INDEX])) && ($p_options[PCLZIP_OPT_BY_INDEX] != 0)) { - // ----- Look for extract by index rule - // ----- Look if the index is in the list - for ($j=$j_start; ($j<sizeof($p_options[PCLZIP_OPT_BY_INDEX])) && (!$v_extract); $j++) { - if (($i>=$p_options[PCLZIP_OPT_BY_INDEX][$j]['start']) && ($i<=$p_options[PCLZIP_OPT_BY_INDEX][$j]['end'])) { - $v_extract = true; - } - if ($i>=$p_options[PCLZIP_OPT_BY_INDEX][$j]['end']) { - $j_start = $j+1; - } - - if ($p_options[PCLZIP_OPT_BY_INDEX][$j]['start']>$i) { - break; - } - } - } else { - // ----- Look for no rule, which means extract all the archive - $v_extract = true; - } - - // ----- Check compression method - if (($v_extract) && (($v_header['compression'] != 8) && ($v_header['compression'] != 0))) { - $v_header['status'] = 'unsupported_compression'; - - // ----- Look for PCLZIP_OPT_STOP_ON_ERROR - if ((isset($p_options[PCLZIP_OPT_STOP_ON_ERROR])) && ($p_options[PCLZIP_OPT_STOP_ON_ERROR] === true)) { - $this->privSwapBackMagicQuotes(); - - PclZip::privErrorLog(PCLZIP_ERR_UNSUPPORTED_COMPRESSION, "Filename '".$v_header['stored_filename']."' is compressed by an unsupported compression method (".$v_header['compression'].") "); - - return PclZip::errorCode(); - } - } - - // ----- Check encrypted files - if (($v_extract) && (($v_header['flag'] & 1) == 1)) { - $v_header['status'] = 'unsupported_encryption'; - // ----- Look for PCLZIP_OPT_STOP_ON_ERROR - if ((isset($p_options[PCLZIP_OPT_STOP_ON_ERROR])) && ($p_options[PCLZIP_OPT_STOP_ON_ERROR] === true)) { - $this->privSwapBackMagicQuotes(); - - PclZip::privErrorLog(PCLZIP_ERR_UNSUPPORTED_ENCRYPTION, "Unsupported encryption for filename '".$v_header['stored_filename']."'"); - - return PclZip::errorCode(); - } - } - - // ----- Look for real extraction - if (($v_extract) && ($v_header['status'] != 'ok')) { - $v_result = $this->privConvertHeader2FileInfo($v_header, $p_file_list[$v_nb_extracted++]); - if ($v_result != 1) { - $this->privCloseFd(); - $this->privSwapBackMagicQuotes(); - return $v_result; - } - - $v_extract = false; - } - - // ----- Look for real extraction - if ($v_extract) { - // ----- Go to the file position - @rewind($this->zip_fd); - if (@fseek($this->zip_fd, $v_header['offset'])) { - // ----- Close the zip file - $this->privCloseFd(); - - $this->privSwapBackMagicQuotes(); - - // ----- Error log - PclZip::privErrorLog(PCLZIP_ERR_INVALID_ARCHIVE_ZIP, 'Invalid archive size'); - - // ----- Return - return PclZip::errorCode(); - } - - // ----- Look for extraction as string - if ($p_options[PCLZIP_OPT_EXTRACT_AS_STRING]) { - $v_string = ''; - - // ----- Extracting the file - $v_result1 = $this->privExtractFileAsString($v_header, $v_string, $p_options); - if ($v_result1 < 1) { - $this->privCloseFd(); - $this->privSwapBackMagicQuotes(); - return $v_result1; - } - - // ----- Get the only interesting attributes - if (($v_result = $this->privConvertHeader2FileInfo($v_header, $p_file_list[$v_nb_extracted])) != 1) { - // ----- Close the zip file - $this->privCloseFd(); - $this->privSwapBackMagicQuotes(); - - return $v_result; - } - - // ----- Set the file content - $p_file_list[$v_nb_extracted]['content'] = $v_string; - - // ----- Next extracted file - $v_nb_extracted++; - - // ----- Look for user callback abort - if ($v_result1 == 2) { - break; - } - } elseif ((isset($p_options[PCLZIP_OPT_EXTRACT_IN_OUTPUT])) && ($p_options[PCLZIP_OPT_EXTRACT_IN_OUTPUT])) { - // ----- Look for extraction in standard output - // ----- Extracting the file in standard output - $v_result1 = $this->privExtractFileInOutput($v_header, $p_options); - if ($v_result1 < 1) { - $this->privCloseFd(); - $this->privSwapBackMagicQuotes(); - return $v_result1; - } - - // ----- Get the only interesting attributes - if (($v_result = $this->privConvertHeader2FileInfo($v_header, $p_file_list[$v_nb_extracted++])) != 1) { - $this->privCloseFd(); - $this->privSwapBackMagicQuotes(); - return $v_result; - } - - // ----- Look for user callback abort - if ($v_result1 == 2) { - break; - } - } else { - // ----- Look for normal extraction - // ----- Extracting the file - $v_result1 = $this->privExtractFile($v_header, $p_path, $p_remove_path, $p_remove_all_path, $p_options); - if ($v_result1 < 1) { - $this->privCloseFd(); - $this->privSwapBackMagicQuotes(); - return $v_result1; - } - - // ----- Get the only interesting attributes - if (($v_result = $this->privConvertHeader2FileInfo($v_header, $p_file_list[$v_nb_extracted++])) != 1) { - // ----- Close the zip file - $this->privCloseFd(); - $this->privSwapBackMagicQuotes(); - - return $v_result; - } - - // ----- Look for user callback abort - if ($v_result1 == 2) { - break; - } - } - } - } - - // ----- Close the zip file - $this->privCloseFd(); - $this->privSwapBackMagicQuotes(); - - // ----- Return - return $v_result; - } - // -------------------------------------------------------------------------------- - - // -------------------------------------------------------------------------------- - // Function : privConvertHeader2FileInfo() - // Description : - // This function takes the file informations from the central directory - // entries and extract the interesting parameters that will be given back. - // The resulting file infos are set in the array $p_info - // $p_info['filename'] : Filename with full path. Given by user (add), - // extracted in the filesystem (extract). - // $p_info['stored_filename'] : Stored filename in the archive. - // $p_info['size'] = Size of the file. - // $p_info['compressed_size'] = Compressed size of the file. - // $p_info['mtime'] = Last modification date of the file. - // $p_info['comment'] = Comment associated with the file. - // $p_info['folder'] = true/false : indicates if the entry is a folder or not. - // $p_info['status'] = status of the action on the file. - // $p_info['crc'] = CRC of the file content. - // Parameters : - // Return Values : - // -------------------------------------------------------------------------------- - - public function privExtractFileAsString(&$p_entry, &$p_string, &$p_options) - { - $v_result=1; - - // ----- Read the file header - $v_header = array(); - if (($v_result = $this->privReadFileHeader($v_header)) != 1) { - // ----- Return - return $v_result; - } - - // ----- Check that the file header is coherent with $p_entry info - if ($this->privCheckFileHeaders($v_header, $p_entry) != 1) { - // TBC - } - - // ----- Look for pre-extract callback - if (isset($p_options[PCLZIP_CB_PRE_EXTRACT])) { - // ----- Generate a local information - $v_local_header = array(); - $this->privConvertHeader2FileInfo($p_entry, $v_local_header); - - // ----- Call the callback - // Here I do not use call_user_func() because I need to send a reference to the - // header. - // eval('$v_result = '.$p_options[PCLZIP_CB_PRE_EXTRACT].'(PCLZIP_CB_PRE_EXTRACT, $v_local_header);'); - $v_result = $p_options[PCLZIP_CB_PRE_EXTRACT](PCLZIP_CB_PRE_EXTRACT, $v_local_header); - if ($v_result == 0) { - // ----- Change the file status - $p_entry['status'] = "skipped"; - $v_result = 1; - } - - // ----- Look for abort result - if ($v_result == 2) { - // ----- This status is internal and will be changed in 'skipped' - $p_entry['status'] = "aborted"; - $v_result = PCLZIP_ERR_USER_ABORTED; - } - - // ----- Update the informations - // Only some fields can be modified - $p_entry['filename'] = $v_local_header['filename']; - } - - // ----- Look if extraction should be done - if ($p_entry['status'] == 'ok') { - // ----- Do the extraction (if not a folder) - if (!(($p_entry['external']&0x00000010)==0x00000010)) { - // ----- Look for not compressed file - // if ($p_entry['compressed_size'] == $p_entry['size']) - if ($p_entry['compression'] == 0) { - // ----- Reading the file - $p_string = @fread($this->zip_fd, $p_entry['compressed_size']); - } else { - // ----- Reading the file - $v_data = @fread($this->zip_fd, $p_entry['compressed_size']); - - // ----- Decompress the file - if (($p_string = @gzinflate($v_data)) === false) { - // TBC - } - } - // ----- Trace - } else { - // TBC : error : can not extract a folder in a string - } - } - - // ----- Change abort status - if ($p_entry['status'] == "aborted") { - $p_entry['status'] = "skipped"; - } elseif (isset($p_options[PCLZIP_CB_POST_EXTRACT])) { - // ----- Look for post-extract callback - // ----- Generate a local information - $v_local_header = array(); - $this->privConvertHeader2FileInfo($p_entry, $v_local_header); - - // ----- Swap the content to header - $v_local_header['content'] = $p_string; - $p_string = ''; - - // ----- Call the callback - // Here I do not use call_user_func() because I need to send a reference to the - // header. - // eval('$v_result = '.$p_options[PCLZIP_CB_POST_EXTRACT].'(PCLZIP_CB_POST_EXTRACT, $v_local_header);'); - $v_result = $p_options[PCLZIP_CB_POST_EXTRACT](PCLZIP_CB_POST_EXTRACT, $v_local_header); - - // ----- Swap back the content to header - $p_string = $v_local_header['content']; - unset($v_local_header['content']); - - // ----- Look for abort result - if ($v_result == 2) { - $v_result = PCLZIP_ERR_USER_ABORTED; - } - } - - // ----- Return - return $v_result; - } - // -------------------------------------------------------------------------------- - - // -------------------------------------------------------------------------------- - // Function : privExtractByRule() - // Description : - // Extract a file or directory depending of rules (by index, by name, ...) - // Parameters : - // $p_file_list : An array where will be placed the properties of each - // extracted file - // $p_path : Path to add while writing the extracted files - // $p_remove_path : Path to remove (from the file memorized path) while writing the - // extracted files. If the path does not match the file path, - // the file is extracted with its memorized path. - // $p_remove_path does not apply to 'list' mode. - // $p_path and $p_remove_path are commulative. - // Return Values : - // 1 on success,0 or less on error (see error code list) - // -------------------------------------------------------------------------------- - - public function privReadFileHeader(&$p_header) - { - $v_result=1; - - // ----- Read the 4 bytes signature - $v_binary_data = @fread($this->zip_fd, 4); - $v_data = unpack('Vid', $v_binary_data); - - // ----- Check signature - if ($v_data['id'] != 0x04034b50) { - // ----- Error log - PclZip::privErrorLog(PCLZIP_ERR_BAD_FORMAT, 'Invalid archive structure'); - - // ----- Return - return PclZip::errorCode(); - } - - // ----- Read the first 42 bytes of the header - $v_binary_data = fread($this->zip_fd, 26); - - // ----- Look for invalid block size - if (strlen($v_binary_data) != 26) { - $p_header['filename'] = ""; - $p_header['status'] = "invalid_header"; - - // ----- Error log - PclZip::privErrorLog(PCLZIP_ERR_BAD_FORMAT, "Invalid block size : ".strlen($v_binary_data)); - - // ----- Return - return PclZip::errorCode(); - } - - // ----- Extract the values - $v_data = unpack('vversion/vflag/vcompression/vmtime/vmdate/Vcrc/Vcompressed_size/Vsize/vfilename_len/vextra_len', $v_binary_data); - - // ----- Get filename - $p_header['filename'] = fread($this->zip_fd, $v_data['filename_len']); - - // ----- Get extra_fields - if ($v_data['extra_len'] != 0) { - $p_header['extra'] = fread($this->zip_fd, $v_data['extra_len']); - } else { - $p_header['extra'] = ''; - } - - // ----- Extract properties - $p_header['version_extracted'] = $v_data['version']; - $p_header['compression'] = $v_data['compression']; - $p_header['size'] = $v_data['size']; - $p_header['compressed_size'] = $v_data['compressed_size']; - $p_header['crc'] = $v_data['crc']; - $p_header['flag'] = $v_data['flag']; - $p_header['filename_len'] = $v_data['filename_len']; - - // ----- Recuperate date in UNIX format - $p_header['mdate'] = $v_data['mdate']; - $p_header['mtime'] = $v_data['mtime']; - if ($p_header['mdate'] && $p_header['mtime']) { - // ----- Extract time - $v_hour = ($p_header['mtime'] & 0xF800) >> 11; - $v_minute = ($p_header['mtime'] & 0x07E0) >> 5; - $v_seconde = ($p_header['mtime'] & 0x001F)*2; - - // ----- Extract date - $v_year = (($p_header['mdate'] & 0xFE00) >> 9) + 1980; - $v_month = ($p_header['mdate'] & 0x01E0) >> 5; - $v_day = $p_header['mdate'] & 0x001F; - - // ----- Get UNIX date format - $p_header['mtime'] = @mktime($v_hour, $v_minute, $v_seconde, $v_month, $v_day, $v_year); - - } else { - $p_header['mtime'] = time(); - } - - // TBC - //for(reset($v_data); $key = key($v_data); next($v_data)) { - //} - - // ----- Set the stored filename - $p_header['stored_filename'] = $p_header['filename']; - - // ----- Set the status field - $p_header['status'] = "ok"; - - // ----- Return - return $v_result; - } - // -------------------------------------------------------------------------------- - - // -------------------------------------------------------------------------------- - // Function : privExtractFile() - // Description : - // Parameters : - // Return Values : - // - // 1 : ... ? - // PCLZIP_ERR_USER_ABORTED(2) : User ask for extraction stop in callback - // -------------------------------------------------------------------------------- - - public function privCheckFileHeaders(&$p_local_header, &$p_central_header) - { - $v_result=1; - - // ----- Check the static values - // TBC - if ($p_local_header['filename'] != $p_central_header['filename']) { - } - if ($p_local_header['version_extracted'] != $p_central_header['version_extracted']) { - } - if ($p_local_header['flag'] != $p_central_header['flag']) { - } - if ($p_local_header['compression'] != $p_central_header['compression']) { - } - if ($p_local_header['mtime'] != $p_central_header['mtime']) { - } - if ($p_local_header['filename_len'] != $p_central_header['filename_len']) { - } - - // ----- Look for flag bit 3 - if (($p_local_header['flag'] & 8) == 8) { - $p_local_header['size'] = $p_central_header['size']; - $p_local_header['compressed_size'] = $p_central_header['compressed_size']; - $p_local_header['crc'] = $p_central_header['crc']; - } - - // ----- Return - return $v_result; - } - // -------------------------------------------------------------------------------- - - // -------------------------------------------------------------------------------- - // Function : privExtractFileUsingTempFile() - // Description : - // Parameters : - // Return Values : - // -------------------------------------------------------------------------------- - - public function privExtractFileInOutput(&$p_entry, &$p_options) - { - $v_result=1; - - // ----- Read the file header - if (($v_result = $this->privReadFileHeader($v_header)) != 1) { - return $v_result; - } - - // ----- Check that the file header is coherent with $p_entry info - if ($this->privCheckFileHeaders($v_header, $p_entry) != 1) { - // TBC - } - - // ----- Look for pre-extract callback - if (isset($p_options[PCLZIP_CB_PRE_EXTRACT])) { - // ----- Generate a local information - $v_local_header = array(); - $this->privConvertHeader2FileInfo($p_entry, $v_local_header); - - // ----- Call the callback - // Here I do not use call_user_func() because I need to send a reference to the - // header. - // eval('$v_result = '.$p_options[PCLZIP_CB_PRE_EXTRACT].'(PCLZIP_CB_PRE_EXTRACT, $v_local_header);'); - $v_result = $p_options[PCLZIP_CB_PRE_EXTRACT](PCLZIP_CB_PRE_EXTRACT, $v_local_header); - if ($v_result == 0) { - // ----- Change the file status - $p_entry['status'] = "skipped"; - $v_result = 1; - } - - // ----- Look for abort result - if ($v_result == 2) { - // ----- This status is internal and will be changed in 'skipped' - $p_entry['status'] = "aborted"; - $v_result = PCLZIP_ERR_USER_ABORTED; - } - - // ----- Update the informations - // Only some fields can be modified - $p_entry['filename'] = $v_local_header['filename']; - } - - // ----- Trace - - // ----- Look if extraction should be done - if ($p_entry['status'] == 'ok') { - // ----- Do the extraction (if not a folder) - if (!(($p_entry['external']&0x00000010)==0x00000010)) { - // ----- Look for not compressed file - if ($p_entry['compressed_size'] == $p_entry['size']) { - // ----- Read the file in a buffer (one shot) - $v_buffer = @fread($this->zip_fd, $p_entry['compressed_size']); - - // ----- Send the file to the output - echo $v_buffer; - unset($v_buffer); - } else { - // ----- Read the compressed file in a buffer (one shot) - $v_buffer = @fread($this->zip_fd, $p_entry['compressed_size']); - - // ----- Decompress the file - $v_file_content = gzinflate($v_buffer); - unset($v_buffer); - - // ----- Send the file to the output - echo $v_file_content; - unset($v_file_content); - } - } - } - - // ----- Change abort status - if ($p_entry['status'] == "aborted") { - $p_entry['status'] = "skipped"; - } elseif (isset($p_options[PCLZIP_CB_POST_EXTRACT])) { - // ----- Look for post-extract callback - - // ----- Generate a local information - $v_local_header = array(); - $this->privConvertHeader2FileInfo($p_entry, $v_local_header); - - // ----- Call the callback - // Here I do not use call_user_func() because I need to send a reference to the - // header. - // eval('$v_result = '.$p_options[PCLZIP_CB_POST_EXTRACT].'(PCLZIP_CB_POST_EXTRACT, $v_local_header);'); - $v_result = $p_options[PCLZIP_CB_POST_EXTRACT](PCLZIP_CB_POST_EXTRACT, $v_local_header); - - // ----- Look for abort result - if ($v_result == 2) { - $v_result = PCLZIP_ERR_USER_ABORTED; - } - } - - return $v_result; - } - // -------------------------------------------------------------------------------- - - // -------------------------------------------------------------------------------- - // Function : privExtractFileInOutput() - // Description : - // Parameters : - // Return Values : - // -------------------------------------------------------------------------------- - - public function privExtractFile(&$p_entry, $p_path, $p_remove_path, $p_remove_all_path, &$p_options) - { - $v_result=1; - - // ----- Read the file header - if (($v_result = $this->privReadFileHeader($v_header)) != 1) { - // ----- Return - return $v_result; - } - - - // ----- Check that the file header is coherent with $p_entry info - if ($this->privCheckFileHeaders($v_header, $p_entry) != 1) { - // TBC - } - - // ----- Look for all path to remove - if ($p_remove_all_path == true) { - // ----- Look for folder entry that not need to be extracted - if (($p_entry['external']&0x00000010)==0x00000010) { - $p_entry['status'] = "filtered"; - - return $v_result; - } - - // ----- Get the basename of the path - $p_entry['filename'] = basename($p_entry['filename']); - } elseif ($p_remove_path != "") { - // ----- Look for path to remove - if (PclZipUtilPathInclusion($p_remove_path, $p_entry['filename']) == 2) { - // ----- Change the file status - $p_entry['status'] = "filtered"; - - // ----- Return - return $v_result; - } - - $p_remove_path_size = strlen($p_remove_path); - if (substr($p_entry['filename'], 0, $p_remove_path_size) == $p_remove_path) { - // ----- Remove the path - $p_entry['filename'] = substr($p_entry['filename'], $p_remove_path_size); - } - } - - // ----- Add the path - if ($p_path != '') { - $p_entry['filename'] = $p_path."/".$p_entry['filename']; - } - - // ----- Check a base_dir_restriction - if (isset($p_options[PCLZIP_OPT_EXTRACT_DIR_RESTRICTION])) { - $v_inclusion = PclZipUtilPathInclusion($p_options[PCLZIP_OPT_EXTRACT_DIR_RESTRICTION], $p_entry['filename']); - if ($v_inclusion == 0) { - PclZip::privErrorLog(PCLZIP_ERR_DIRECTORY_RESTRICTION, "Filename '".$p_entry['filename']."' is outside PCLZIP_OPT_EXTRACT_DIR_RESTRICTION"); - - return PclZip::errorCode(); - } - } - - // ----- Look for pre-extract callback - if (isset($p_options[PCLZIP_CB_PRE_EXTRACT])) { - // ----- Generate a local information - $v_local_header = array(); - $this->privConvertHeader2FileInfo($p_entry, $v_local_header); - - // ----- Call the callback - // Here I do not use call_user_func() because I need to send a reference to the - // header. - // eval('$v_result = '.$p_options[PCLZIP_CB_PRE_EXTRACT].'(PCLZIP_CB_PRE_EXTRACT, $v_local_header);'); - $v_result = $p_options[PCLZIP_CB_PRE_EXTRACT](PCLZIP_CB_PRE_EXTRACT, $v_local_header); - if ($v_result == 0) { - // ----- Change the file status - $p_entry['status'] = "skipped"; - $v_result = 1; - } - - // ----- Look for abort result - if ($v_result == 2) { - // ----- This status is internal and will be changed in 'skipped' - $p_entry['status'] = "aborted"; - $v_result = PCLZIP_ERR_USER_ABORTED; - } - - // ----- Update the informations - // Only some fields can be modified - $p_entry['filename'] = $v_local_header['filename']; - } - - // ----- Look if extraction should be done - if ($p_entry['status'] == 'ok') { - // ----- Look for specific actions while the file exist - if (file_exists($p_entry['filename'])) { - // ----- Look if file is a directory - if (is_dir($p_entry['filename'])) { - // ----- Change the file status - $p_entry['status'] = "already_a_directory"; - - // ----- Look for PCLZIP_OPT_STOP_ON_ERROR - // For historical reason first PclZip implementation does not stop - // when this kind of error occurs. - if ((isset($p_options[PCLZIP_OPT_STOP_ON_ERROR])) && ($p_options[PCLZIP_OPT_STOP_ON_ERROR]===true)) { - PclZip::privErrorLog(PCLZIP_ERR_ALREADY_A_DIRECTORY, "Filename '".$p_entry['filename']."' is already used by an existing directory"); - return PclZip::errorCode(); - } - } elseif (!is_writeable($p_entry['filename'])) { - // ----- Look if file is write protected - // ----- Change the file status - $p_entry['status'] = "write_protected"; - - // ----- Look for PCLZIP_OPT_STOP_ON_ERROR - // For historical reason first PclZip implementation does not stop - // when this kind of error occurs. - if ((isset($p_options[PCLZIP_OPT_STOP_ON_ERROR])) && ($p_options[PCLZIP_OPT_STOP_ON_ERROR] === true)) { - PclZip::privErrorLog(PCLZIP_ERR_WRITE_OPEN_FAIL, "Filename '".$p_entry['filename']."' exists and is write protected"); - return PclZip::errorCode(); - } - } elseif (filemtime($p_entry['filename']) > $p_entry['mtime']) { - // ----- Look if the extracted file is older - // ----- Change the file status - if ((isset($p_options[PCLZIP_OPT_REPLACE_NEWER])) && ($p_options[PCLZIP_OPT_REPLACE_NEWER] === true)) { - } else { - $p_entry['status'] = "newer_exist"; - - // ----- Look for PCLZIP_OPT_STOP_ON_ERROR - // For historical reason first PclZip implementation does not stop - // when this kind of error occurs. - if ((isset($p_options[PCLZIP_OPT_STOP_ON_ERROR])) && ($p_options[PCLZIP_OPT_STOP_ON_ERROR] === true)) { - PclZip::privErrorLog(PCLZIP_ERR_WRITE_OPEN_FAIL, "Newer version of '".$p_entry['filename']."' exists and option PCLZIP_OPT_REPLACE_NEWER is not selected"); - return PclZip::errorCode(); - } - } - } else { - } - } else { - // ----- Check the directory availability and create it if necessary - if ((($p_entry['external']&0x00000010)==0x00000010) || (substr($p_entry['filename'], -1) == '/')) { - $v_dir_to_check = $p_entry['filename']; - } elseif (!strstr($p_entry['filename'], "/")) { - $v_dir_to_check = ""; - } else { - $v_dir_to_check = dirname($p_entry['filename']); - } - - if (($v_result = $this->privDirCheck($v_dir_to_check, (($p_entry['external']&0x00000010)==0x00000010))) != 1) { - // ----- Change the file status - $p_entry['status'] = "path_creation_fail"; - - // ----- Return - //return $v_result; - $v_result = 1; - } - } - } - - // ----- Look if extraction should be done - if ($p_entry['status'] == 'ok') { - // ----- Do the extraction (if not a folder) - if (!(($p_entry['external']&0x00000010) == 0x00000010)) { - // ----- Look for not compressed file - if ($p_entry['compression'] == 0) { - // ----- Opening destination file - if (($v_dest_file = @fopen($p_entry['filename'], 'wb')) == 0) { - // ----- Change the file status - $p_entry['status'] = "write_error"; - - // ----- Return - return $v_result; - } - - // ----- Read the file by PCLZIP_READ_BLOCK_SIZE octets blocks - $v_size = $p_entry['compressed_size']; - while ($v_size != 0) { - $v_read_size = ($v_size < PCLZIP_READ_BLOCK_SIZE ? $v_size : PCLZIP_READ_BLOCK_SIZE); - $v_buffer = @fread($this->zip_fd, $v_read_size); - /* Try to speed up the code - $v_binary_data = pack('a'.$v_read_size, $v_buffer); - @fwrite($v_dest_file, $v_binary_data, $v_read_size); - */ - @fwrite($v_dest_file, $v_buffer, $v_read_size); - $v_size -= $v_read_size; - } - - // ----- Closing the destination file - fclose($v_dest_file); - - // ----- Change the file mtime - touch($p_entry['filename'], $p_entry['mtime']); - } else { - // ----- TBC - // Need to be finished - if (($p_entry['flag'] & 1) == 1) { - PclZip::privErrorLog(PCLZIP_ERR_UNSUPPORTED_ENCRYPTION, 'File \''.$p_entry['filename'].'\' is encrypted. Encrypted files are not supported.'); - return PclZip::errorCode(); - } - - // ----- Look for using temporary file to unzip - if ((!isset($p_options[PCLZIP_OPT_TEMP_FILE_OFF])) && (isset($p_options[PCLZIP_OPT_TEMP_FILE_ON]) || (isset($p_options[PCLZIP_OPT_TEMP_FILE_THRESHOLD]) && ($p_options[PCLZIP_OPT_TEMP_FILE_THRESHOLD] <= $p_entry['size'])))) { - $v_result = $this->privExtractFileUsingTempFile($p_entry, $p_options); - if ($v_result < PCLZIP_ERR_NO_ERROR) { - return $v_result; - } - } else { - // ----- Look for extract in memory - // ----- Read the compressed file in a buffer (one shot) - $v_buffer = @fread($this->zip_fd, $p_entry['compressed_size']); - - // ----- Decompress the file - $v_file_content = @gzinflate($v_buffer); - unset($v_buffer); - if ($v_file_content === false) { - // ----- Change the file status - // TBC - $p_entry['status'] = "error"; - - return $v_result; - } - - // ----- Opening destination file - if (($v_dest_file = @fopen($p_entry['filename'], 'wb')) == 0) { - // ----- Change the file status - $p_entry['status'] = "write_error"; - - return $v_result; - } - - // ----- Write the uncompressed data - @fwrite($v_dest_file, $v_file_content, $p_entry['size']); - unset($v_file_content); - - // ----- Closing the destination file - @fclose($v_dest_file); - } - - // ----- Change the file mtime - @touch($p_entry['filename'], $p_entry['mtime']); - } - - // ----- Look for chmod option - if (isset($p_options[PCLZIP_OPT_SET_CHMOD])) { - // ----- Change the mode of the file - @chmod($p_entry['filename'], $p_options[PCLZIP_OPT_SET_CHMOD]); - } - } - } - - // ----- Change abort status - if ($p_entry['status'] == "aborted") { - $p_entry['status'] = "skipped"; - } elseif (isset($p_options[PCLZIP_CB_POST_EXTRACT])) { - // ----- Look for post-extract callback - // ----- Generate a local information - $v_local_header = array(); - $this->privConvertHeader2FileInfo($p_entry, $v_local_header); - - // ----- Call the callback - // Here I do not use call_user_func() because I need to send a reference to the - // header. - // eval('$v_result = '.$p_options[PCLZIP_CB_POST_EXTRACT].'(PCLZIP_CB_POST_EXTRACT, $v_local_header);'); - $v_result = $p_options[PCLZIP_CB_POST_EXTRACT](PCLZIP_CB_POST_EXTRACT, $v_local_header); - - // ----- Look for abort result - if ($v_result == 2) { - $v_result = PCLZIP_ERR_USER_ABORTED; - } - } - - // ----- Return - return $v_result; - } - // -------------------------------------------------------------------------------- - - // -------------------------------------------------------------------------------- - // Function : privExtractFileAsString() - // Description : - // Parameters : - // Return Values : - // -------------------------------------------------------------------------------- - - public function privDirCheck($p_dir, $p_is_dir = false) - { - $v_result = 1; - - // ----- Remove the final '/' - if (($p_is_dir) && (substr($p_dir, -1)=='/')) { - $p_dir = substr($p_dir, 0, strlen($p_dir)-1); - } - - // ----- Check the directory availability - if ((is_dir($p_dir)) || ($p_dir == "")) { - return 1; - } - - // ----- Extract parent directory - $p_parent_dir = dirname($p_dir); - - // ----- Just a check - if ($p_parent_dir != $p_dir) { - // ----- Look for parent directory - if ($p_parent_dir != "") { - if (($v_result = $this->privDirCheck($p_parent_dir)) != 1) { - return $v_result; - } - } - } - - // ----- Create the directory - if (!@mkdir($p_dir, 0777)) { - // ----- Error log - PclZip::privErrorLog(PCLZIP_ERR_DIR_CREATE_FAIL, "Unable to create directory '$p_dir'"); - - // ----- Return - return PclZip::errorCode(); - } - - // ----- Return - return $v_result; - } - // -------------------------------------------------------------------------------- - - // -------------------------------------------------------------------------------- - // Function : privReadFileHeader() - // Description : - // Parameters : - // Return Values : - // -------------------------------------------------------------------------------- - - public function privExtractFileUsingTempFile(&$p_entry, &$p_options) - { - $v_result=1; - - // ----- Creates a temporary file - $v_gzip_temp_name = PCLZIP_TEMPORARY_DIR.uniqid('pclzip-').'.gz'; - if (($v_dest_file = @fopen($v_gzip_temp_name, "wb")) == 0) { - fclose($v_file); - PclZip::privErrorLog(PCLZIP_ERR_WRITE_OPEN_FAIL, 'Unable to open temporary file \''.$v_gzip_temp_name.'\' in binary write mode'); - return PclZip::errorCode(); - } - - // ----- Write gz file format header - $v_binary_data = pack('va1a1Va1a1', 0x8b1f, Chr($p_entry['compression']), Chr(0x00), time(), Chr(0x00), Chr(3)); - @fwrite($v_dest_file, $v_binary_data, 10); - - // ----- Read the file by PCLZIP_READ_BLOCK_SIZE octets blocks - $v_size = $p_entry['compressed_size']; - while ($v_size != 0) { - $v_read_size = ($v_size < PCLZIP_READ_BLOCK_SIZE ? $v_size : PCLZIP_READ_BLOCK_SIZE); - $v_buffer = @fread($this->zip_fd, $v_read_size); - //$v_binary_data = pack('a'.$v_read_size, $v_buffer); - @fwrite($v_dest_file, $v_buffer, $v_read_size); - $v_size -= $v_read_size; - } - - // ----- Write gz file format footer - $v_binary_data = pack('VV', $p_entry['crc'], $p_entry['size']); - @fwrite($v_dest_file, $v_binary_data, 8); - - // ----- Close the temporary file - @fclose($v_dest_file); - - // ----- Opening destination file - if (($v_dest_file = @fopen($p_entry['filename'], 'wb')) == 0) { - $p_entry['status'] = "write_error"; - return $v_result; - } - - // ----- Open the temporary gz file - if (($v_src_file = @gzopen($v_gzip_temp_name, 'rb')) == 0) { - @fclose($v_dest_file); - $p_entry['status'] = "read_error"; - PclZip::privErrorLog(PCLZIP_ERR_READ_OPEN_FAIL, 'Unable to open temporary file \''.$v_gzip_temp_name.'\' in binary read mode'); - return PclZip::errorCode(); - } - - // ----- Read the file by PCLZIP_READ_BLOCK_SIZE octets blocks - $v_size = $p_entry['size']; - while ($v_size != 0) { - $v_read_size = ($v_size < PCLZIP_READ_BLOCK_SIZE ? $v_size : PCLZIP_READ_BLOCK_SIZE); - $v_buffer = @gzread($v_src_file, $v_read_size); - //$v_binary_data = pack('a'.$v_read_size, $v_buffer); - @fwrite($v_dest_file, $v_buffer, $v_read_size); - $v_size -= $v_read_size; - } - @fclose($v_dest_file); - @gzclose($v_src_file); - - // ----- Delete the temporary file - @unlink($v_gzip_temp_name); - - // ----- Return - return $v_result; - } - // -------------------------------------------------------------------------------- - - // -------------------------------------------------------------------------------- - // Function : privReadCentralFileHeader() - // Description : - // Parameters : - // Return Values : - // -------------------------------------------------------------------------------- - - public function extractByIndex($p_index) - { - $v_result=1; - - // ----- Reset the error handler - $this->privErrorReset(); - - // ----- Check archive - if (!$this->privCheckFormat()) { - return(0); - } - - // ----- Set default values - $v_options = array(); - // $v_path = "./"; - $v_path = ''; - $v_remove_path = ""; - $v_remove_all_path = false; - - // ----- Look for variable options arguments - $v_size = func_num_args(); - - // ----- Default values for option - $v_options[PCLZIP_OPT_EXTRACT_AS_STRING] = false; - - // ----- Look for arguments - if ($v_size > 1) { - // ----- Get the arguments - $v_arg_list = func_get_args(); - - // ----- Remove form the options list the first argument - array_shift($v_arg_list); - $v_size--; - - // ----- Look for first arg - if ((is_integer($v_arg_list[0])) && ($v_arg_list[0] > 77000)) { - // ----- Parse the options - $v_result = $this->privParseOptions($v_arg_list, $v_size, $v_options, array( - PCLZIP_OPT_PATH => 'optional', - PCLZIP_OPT_REMOVE_PATH => 'optional', - PCLZIP_OPT_REMOVE_ALL_PATH => 'optional', - PCLZIP_OPT_EXTRACT_AS_STRING => 'optional', - PCLZIP_OPT_ADD_PATH => 'optional', - PCLZIP_CB_PRE_EXTRACT => 'optional', - PCLZIP_CB_POST_EXTRACT => 'optional', - PCLZIP_OPT_SET_CHMOD => 'optional', - PCLZIP_OPT_REPLACE_NEWER => 'optional', - PCLZIP_OPT_STOP_ON_ERROR => 'optional', - PCLZIP_OPT_EXTRACT_DIR_RESTRICTION => 'optional', - PCLZIP_OPT_TEMP_FILE_THRESHOLD => 'optional', - PCLZIP_OPT_TEMP_FILE_ON => 'optional', - PCLZIP_OPT_TEMP_FILE_OFF => 'optional' - )); - if ($v_result != 1) { - return 0; - } - - // ----- Set the arguments - if (isset($v_options[PCLZIP_OPT_PATH])) { - $v_path = $v_options[PCLZIP_OPT_PATH]; - } - if (isset($v_options[PCLZIP_OPT_REMOVE_PATH])) { - $v_remove_path = $v_options[PCLZIP_OPT_REMOVE_PATH]; - } - if (isset($v_options[PCLZIP_OPT_REMOVE_ALL_PATH])) { - $v_remove_all_path = $v_options[PCLZIP_OPT_REMOVE_ALL_PATH]; - } - if (isset($v_options[PCLZIP_OPT_ADD_PATH])) { - // ----- Check for '/' in last path char - if ((strlen($v_path) > 0) && (substr($v_path, -1) != '/')) { - $v_path .= '/'; - } - $v_path .= $v_options[PCLZIP_OPT_ADD_PATH]; - } - if (!isset($v_options[PCLZIP_OPT_EXTRACT_AS_STRING])) { - $v_options[PCLZIP_OPT_EXTRACT_AS_STRING] = false; - } else { - } - } else { - // ----- Look for 2 args - // Here we need to support the first historic synopsis of the - // method. - - // ----- Get the first argument - $v_path = $v_arg_list[0]; - - // ----- Look for the optional second argument - if ($v_size == 2) { - $v_remove_path = $v_arg_list[1]; - } elseif ($v_size > 2) { - // ----- Error log - PclZip::privErrorLog(PCLZIP_ERR_INVALID_PARAMETER, "Invalid number / type of arguments"); - - // ----- Return - return 0; - } - } - } - - // ----- Trace - - // ----- Trick - // Here I want to reuse extractByRule(), so I need to parse the $p_index - // with privParseOptions() - $v_arg_trick = array (PCLZIP_OPT_BY_INDEX, $p_index); - $v_options_trick = array(); - $v_result = $this->privParseOptions($v_arg_trick, sizeof($v_arg_trick), $v_options_trick, array (PCLZIP_OPT_BY_INDEX => 'optional')); - if ($v_result != 1) { - return 0; - } - $v_options[PCLZIP_OPT_BY_INDEX] = $v_options_trick[PCLZIP_OPT_BY_INDEX]; - - // ----- Look for default option values - $this->privOptionDefaultThreshold($v_options); - - // ----- Call the extracting fct - if (($v_result = $this->privExtractByRule($p_list, $v_path, $v_remove_path, $v_remove_all_path, $v_options)) < 1) { - return(0); - } - - // ----- Return - return $p_list; - } - // -------------------------------------------------------------------------------- - - // -------------------------------------------------------------------------------- - // Function : privCheckFileHeaders() - // Description : - // Parameters : - // Return Values : - // 1 on success, - // 0 on error; - // -------------------------------------------------------------------------------- - - public function deleteByIndex($p_index) - { - - $p_list = $this->delete(PCLZIP_OPT_BY_INDEX, $p_index); - - // ----- Return - return $p_list; - } - // -------------------------------------------------------------------------------- - - // -------------------------------------------------------------------------------- - // Function : privReadEndCentralDir() - // Description : - // Parameters : - // Return Values : - // -------------------------------------------------------------------------------- - - public function delete() - { - $v_result=1; - - // ----- Reset the error handler - $this->privErrorReset(); - - // ----- Check archive - if (!$this->privCheckFormat()) { - return(0); - } - - // ----- Set default values - $v_options = array(); - - // ----- Look for variable options arguments - $v_size = func_num_args(); - - // ----- Look for arguments - if ($v_size > 0) { - // ----- Get the arguments - $v_arg_list = func_get_args(); - - // ----- Parse the options - $v_result = $this->privParseOptions($v_arg_list, $v_size, $v_options, array ( - PCLZIP_OPT_BY_NAME => 'optional', - PCLZIP_OPT_BY_EREG => 'optional', - PCLZIP_OPT_BY_PREG => 'optional', - PCLZIP_OPT_BY_INDEX => 'optional' - )); - if ($v_result != 1) { - return 0; - } - } - - // ----- Magic quotes trick - $this->privDisableMagicQuotes(); - - // ----- Call the delete fct - $v_list = array(); - if (($v_result = $this->privDeleteByRule($v_list, $v_options)) != 1) { - $this->privSwapBackMagicQuotes(); - unset($v_list); - return(0); - } - - // ----- Magic quotes trick - $this->privSwapBackMagicQuotes(); - - // ----- Return - return $v_list; - } - // -------------------------------------------------------------------------------- - - // -------------------------------------------------------------------------------- - // Function : privDeleteByRule() - // Description : - // Parameters : - // Return Values : - // -------------------------------------------------------------------------------- - - public function privDeleteByRule(&$p_result_list, &$p_options) - { - $v_result=1; - $v_list_detail = array(); - - // ----- Open the zip file - if (($v_result=$this->privOpenFd('rb')) != 1) { - // ----- Return - return $v_result; - } - - // ----- Read the central directory informations - $v_central_dir = array(); - if (($v_result = $this->privReadEndCentralDir($v_central_dir)) != 1) { - $this->privCloseFd(); - return $v_result; - } - - // ----- Go to beginning of File - @rewind($this->zip_fd); - - // ----- Scan all the files - // ----- Start at beginning of Central Dir - $v_pos_entry = $v_central_dir['offset']; - @rewind($this->zip_fd); - if (@fseek($this->zip_fd, $v_pos_entry)) { - // ----- Close the zip file - $this->privCloseFd(); - - // ----- Error log - PclZip::privErrorLog(PCLZIP_ERR_INVALID_ARCHIVE_ZIP, 'Invalid archive size'); - - // ----- Return - return PclZip::errorCode(); - } - - // ----- Read each entry - $v_header_list = array(); - $j_start = 0; - for ($i=0, $v_nb_extracted=0; $i<$v_central_dir['entries']; $i++) { - // ----- Read the file header - $v_header_list[$v_nb_extracted] = array(); - if (($v_result = $this->privReadCentralFileHeader($v_header_list[$v_nb_extracted])) != 1) { - // ----- Close the zip file - $this->privCloseFd(); - - return $v_result; - } - - - // ----- Store the index - $v_header_list[$v_nb_extracted]['index'] = $i; - - // ----- Look for the specific extract rules - $v_found = false; - - // ----- Look for extract by name rule - if ((isset($p_options[PCLZIP_OPT_BY_NAME])) && ($p_options[PCLZIP_OPT_BY_NAME] != 0)) { - // ----- Look if the filename is in the list - for ($j=0; ($j<sizeof($p_options[PCLZIP_OPT_BY_NAME])) && (!$v_found); $j++) { - // ----- Look for a directory - if (substr($p_options[PCLZIP_OPT_BY_NAME][$j], -1) == "/") { - // ----- Look if the directory is in the filename path - if ((strlen($v_header_list[$v_nb_extracted]['stored_filename']) > strlen($p_options[PCLZIP_OPT_BY_NAME][$j])) && (substr($v_header_list[$v_nb_extracted]['stored_filename'], 0, strlen($p_options[PCLZIP_OPT_BY_NAME][$j])) == $p_options[PCLZIP_OPT_BY_NAME][$j])) { - $v_found = true; - } elseif ((($v_header_list[$v_nb_extracted]['external']&0x00000010)==0x00000010) /* Indicates a folder */ && ($v_header_list[$v_nb_extracted]['stored_filename'].'/' == $p_options[PCLZIP_OPT_BY_NAME][$j])) { - $v_found = true; - } - } elseif ($v_header_list[$v_nb_extracted]['stored_filename'] == $p_options[PCLZIP_OPT_BY_NAME][$j]) { - // ----- Look for a filename - $v_found = true; - } - } - } elseif ((isset($p_options[PCLZIP_OPT_BY_PREG])) && ($p_options[PCLZIP_OPT_BY_PREG] != "")) { - // ----- Look for extract by preg rule - if (preg_match($p_options[PCLZIP_OPT_BY_PREG], $v_header_list[$v_nb_extracted]['stored_filename'])) { - $v_found = true; - } - } elseif ((isset($p_options[PCLZIP_OPT_BY_INDEX])) && ($p_options[PCLZIP_OPT_BY_INDEX] != 0)) { - // ----- Look for extract by index rule - // ----- Look if the index is in the list - for ($j=$j_start; ($j<sizeof($p_options[PCLZIP_OPT_BY_INDEX])) && (!$v_found); $j++) { - if (($i>=$p_options[PCLZIP_OPT_BY_INDEX][$j]['start']) && ($i<=$p_options[PCLZIP_OPT_BY_INDEX][$j]['end'])) { - $v_found = true; - } - if ($i>=$p_options[PCLZIP_OPT_BY_INDEX][$j]['end']) { - $j_start = $j+1; - } - if ($p_options[PCLZIP_OPT_BY_INDEX][$j]['start']>$i) { - break; - } - } - } else { - $v_found = true; - } - - // ----- Look for deletion - if ($v_found) { - unset($v_header_list[$v_nb_extracted]); - } else { - $v_nb_extracted++; - } - } - - // ----- Look if something need to be deleted - if ($v_nb_extracted > 0) { - // ----- Creates a temporay file - $v_zip_temp_name = PCLZIP_TEMPORARY_DIR.uniqid('pclzip-').'.tmp'; - - // ----- Creates a temporary zip archive - $v_temp_zip = new PclZip($v_zip_temp_name); - - // ----- Open the temporary zip file in write mode - if (($v_result = $v_temp_zip->privOpenFd('wb')) != 1) { - $this->privCloseFd(); - - // ----- Return - return $v_result; - } - - // ----- Look which file need to be kept - for ($i=0; $i<sizeof($v_header_list); $i++) { - // ----- Calculate the position of the header - @rewind($this->zip_fd); - if (@fseek($this->zip_fd, $v_header_list[$i]['offset'])) { - // ----- Close the zip file - $this->privCloseFd(); - $v_temp_zip->privCloseFd(); - @unlink($v_zip_temp_name); - - // ----- Error log - PclZip::privErrorLog(PCLZIP_ERR_INVALID_ARCHIVE_ZIP, 'Invalid archive size'); - - // ----- Return - return PclZip::errorCode(); - } - - // ----- Read the file header - $v_local_header = array(); - if (($v_result = $this->privReadFileHeader($v_local_header)) != 1) { - // ----- Close the zip file - $this->privCloseFd(); - $v_temp_zip->privCloseFd(); - @unlink($v_zip_temp_name); - - // ----- Return - return $v_result; - } - - // ----- Check that local file header is same as central file header - if ($this->privCheckFileHeaders($v_local_header, $v_header_list[$i]) != 1) { - // TBC - } - unset($v_local_header); - - // ----- Write the file header - if (($v_result = $v_temp_zip->privWriteFileHeader($v_header_list[$i])) != 1) { - // ----- Close the zip file - $this->privCloseFd(); - $v_temp_zip->privCloseFd(); - @unlink($v_zip_temp_name); - - // ----- Return - return $v_result; - } - - // ----- Read/write the data block - if (($v_result = PclZipUtilCopyBlock($this->zip_fd, $v_temp_zip->zip_fd, $v_header_list[$i]['compressed_size'])) != 1) { - // ----- Close the zip file - $this->privCloseFd(); - $v_temp_zip->privCloseFd(); - @unlink($v_zip_temp_name); - - // ----- Return - return $v_result; - } - } - - // ----- Store the offset of the central dir - $v_offset = @ftell($v_temp_zip->zip_fd); - - // ----- Re-Create the Central Dir files header - for ($i=0; $i<sizeof($v_header_list); $i++) { - // ----- Create the file header - if (($v_result = $v_temp_zip->privWriteCentralFileHeader($v_header_list[$i])) != 1) { - $v_temp_zip->privCloseFd(); - $this->privCloseFd(); - @unlink($v_zip_temp_name); - - // ----- Return - return $v_result; - } - - // ----- Transform the header to a 'usable' info - $v_temp_zip->privConvertHeader2FileInfo($v_header_list[$i], $p_result_list[$i]); - } - - - // ----- Zip file comment - $v_comment = ''; - if (isset($p_options[PCLZIP_OPT_COMMENT])) { - $v_comment = $p_options[PCLZIP_OPT_COMMENT]; - } - - // ----- Calculate the size of the central header - $v_size = @ftell($v_temp_zip->zip_fd)-$v_offset; - - // ----- Create the central dir footer - if (($v_result = $v_temp_zip->privWriteCentralHeader(sizeof($v_header_list), $v_size, $v_offset, $v_comment)) != 1) { - // ----- Reset the file list - unset($v_header_list); - $v_temp_zip->privCloseFd(); - $this->privCloseFd(); - @unlink($v_zip_temp_name); - - // ----- Return - return $v_result; - } - - // ----- Close - $v_temp_zip->privCloseFd(); - $this->privCloseFd(); - - // ----- Delete the zip file - // TBC : I should test the result ... - @unlink($this->zipname); - - // ----- Rename the temporary file - // TBC : I should test the result ... - //@rename($v_zip_temp_name, $this->zipname); - PclZipUtilRename($v_zip_temp_name, $this->zipname); - - // ----- Destroy the temporary archive - unset($v_temp_zip); - } elseif ($v_central_dir['entries'] != 0) { - // ----- Remove every files : reset the file - $this->privCloseFd(); - - if (($v_result = $this->privOpenFd('wb')) != 1) { - return $v_result; - } - - if (($v_result = $this->privWriteCentralHeader(0, 0, 0, '')) != 1) { - return $v_result; - } - - $this->privCloseFd(); - } - - // ----- Return - return $v_result; - } - // -------------------------------------------------------------------------------- - - // -------------------------------------------------------------------------------- - // Function : privDirCheck() - // Description : - // Check if a directory exists, if not it creates it and all the parents directory - // which may be useful. - // Parameters : - // $p_dir : Directory path to check. - // Return Values : - // 1 : OK - // -1 : Unable to create directory - // -------------------------------------------------------------------------------- - - public function properties() - { - - // ----- Reset the error handler - $this->privErrorReset(); - - // ----- Magic quotes trick - $this->privDisableMagicQuotes(); - - // ----- Check archive - if (!$this->privCheckFormat()) { - $this->privSwapBackMagicQuotes(); - return(0); - } - - // ----- Default properties - $v_prop = array(); - $v_prop['comment'] = ''; - $v_prop['nb'] = 0; - $v_prop['status'] = 'not_exist'; - - // ----- Look if file exists - if (@is_file($this->zipname)) { - // ----- Open the zip file - if (($this->zip_fd = @fopen($this->zipname, 'rb')) == 0) { - $this->privSwapBackMagicQuotes(); - - // ----- Error log - PclZip::privErrorLog(PCLZIP_ERR_READ_OPEN_FAIL, 'Unable to open archive \''.$this->zipname.'\' in binary read mode'); - - // ----- Return - return 0; - } - - // ----- Read the central directory informations - $v_central_dir = array(); - if (($v_result = $this->privReadEndCentralDir($v_central_dir)) != 1) { - $this->privSwapBackMagicQuotes(); - return 0; - } - - // ----- Close the zip file - $this->privCloseFd(); - - // ----- Set the user attributes - $v_prop['comment'] = $v_central_dir['comment']; - $v_prop['nb'] = $v_central_dir['entries']; - $v_prop['status'] = 'ok'; - } - - // ----- Magic quotes trick - $this->privSwapBackMagicQuotes(); - - // ----- Return - return $v_prop; - } - // -------------------------------------------------------------------------------- - - // -------------------------------------------------------------------------------- - // Function : privMerge() - // Description : - // If $p_archive_to_add does not exist, the function exit with a success result. - // Parameters : - // Return Values : - // -------------------------------------------------------------------------------- - - public function duplicate($p_archive) - { - $v_result = 1; - - // ----- Reset the error handler - $this->privErrorReset(); - - // ----- Look if the $p_archive is a PclZip object - if ((is_object($p_archive)) && (get_class($p_archive) == 'pclzip')) { - // ----- Duplicate the archive - $v_result = $this->privDuplicate($p_archive->zipname); - } elseif (is_string($p_archive)) { - // ----- Look if the $p_archive is a string (so a filename) - // ----- Check that $p_archive is a valid zip file - // TBC : Should also check the archive format - if (!is_file($p_archive)) { - // ----- Error log - PclZip::privErrorLog(PCLZIP_ERR_MISSING_FILE, "No file with filename '".$p_archive."'"); - $v_result = PCLZIP_ERR_MISSING_FILE; - } else { - // ----- Duplicate the archive - $v_result = $this->privDuplicate($p_archive); - } - } else { - // ----- Invalid variable - // ----- Error log - PclZip::privErrorLog(PCLZIP_ERR_INVALID_PARAMETER, "Invalid variable type p_archive_to_add"); - $v_result = PCLZIP_ERR_INVALID_PARAMETER; - } - - // ----- Return - return $v_result; - } - // -------------------------------------------------------------------------------- - - // -------------------------------------------------------------------------------- - // Function : privDuplicate() - // Description : - // Parameters : - // Return Values : - // -------------------------------------------------------------------------------- - - public function privDuplicate($p_archive_filename) - { - $v_result=1; - - // ----- Look if the $p_archive_filename exists - if (!is_file($p_archive_filename)) { - // ----- Nothing to duplicate, so duplicate is a success. - $v_result = 1; - - // ----- Return - return $v_result; - } - - // ----- Open the zip file - if (($v_result=$this->privOpenFd('wb')) != 1) { - // ----- Return - return $v_result; - } - - // ----- Open the temporary file in write mode - if (($v_zip_temp_fd = @fopen($p_archive_filename, 'rb')) == 0) { - $this->privCloseFd(); - - PclZip::privErrorLog(PCLZIP_ERR_READ_OPEN_FAIL, 'Unable to open archive file \''.$p_archive_filename.'\' in binary write mode'); - - // ----- Return - return PclZip::errorCode(); - } - - // ----- Copy the files from the archive to the temporary file - // TBC : Here I should better append the file and go back to erase the central dir - $v_size = filesize($p_archive_filename); - while ($v_size != 0) { - $v_read_size = ($v_size < PCLZIP_READ_BLOCK_SIZE ? $v_size : PCLZIP_READ_BLOCK_SIZE); - $v_buffer = fread($v_zip_temp_fd, $v_read_size); - @fwrite($this->zip_fd, $v_buffer, $v_read_size); - $v_size -= $v_read_size; - } - - // ----- Close - $this->privCloseFd(); - - // ----- Close the temporary file - @fclose($v_zip_temp_fd); - - // ----- Return - return $v_result; - } - // -------------------------------------------------------------------------------- - - // -------------------------------------------------------------------------------- - // Function : privErrorLog() - // Description : - // Parameters : - // -------------------------------------------------------------------------------- - - public function merge($p_archive_to_add) - { - $v_result = 1; - - // ----- Reset the error handler - $this->privErrorReset(); - - // ----- Check archive - if (!$this->privCheckFormat()) { - return(0); - } - - // ----- Look if the $p_archive_to_add is a PclZip object - if ((is_object($p_archive_to_add)) && (get_class($p_archive_to_add) == 'pclzip')) { - // ----- Merge the archive - $v_result = $this->privMerge($p_archive_to_add); - } elseif (is_string($p_archive_to_add)) { - // ----- Look if the $p_archive_to_add is a string (so a filename) - // ----- Create a temporary archive - $v_object_archive = new PclZip($p_archive_to_add); - - // ----- Merge the archive - $v_result = $this->privMerge($v_object_archive); - } else { - // ----- Invalid variable - // ----- Error log - PclZip::privErrorLog(PCLZIP_ERR_INVALID_PARAMETER, "Invalid variable type p_archive_to_add"); - $v_result = PCLZIP_ERR_INVALID_PARAMETER; - } - - // ----- Return - return $v_result; - } - // -------------------------------------------------------------------------------- - - // -------------------------------------------------------------------------------- - // Function : privErrorReset() - // Description : - // Parameters : - // -------------------------------------------------------------------------------- - - public function privMerge(&$p_archive_to_add) - { - $v_result=1; - - // ----- Look if the archive_to_add exists - if (!is_file($p_archive_to_add->zipname)) { - // ----- Nothing to merge, so merge is a success - $v_result = 1; - - // ----- Return - return $v_result; - } - - // ----- Look if the archive exists - if (!is_file($this->zipname)) { - // ----- Do a duplicate - $v_result = $this->privDuplicate($p_archive_to_add->zipname); - - // ----- Return - return $v_result; - } - - // ----- Open the zip file - if (($v_result=$this->privOpenFd('rb')) != 1) { - // ----- Return - return $v_result; - } - - // ----- Read the central directory informations - $v_central_dir = array(); - if (($v_result = $this->privReadEndCentralDir($v_central_dir)) != 1) { - $this->privCloseFd(); - return $v_result; - } - - // ----- Go to beginning of File - @rewind($this->zip_fd); - - // ----- Open the archive_to_add file - if (($v_result=$p_archive_to_add->privOpenFd('rb')) != 1) { - $this->privCloseFd(); - - // ----- Return - return $v_result; - } - - // ----- Read the central directory informations - $v_central_dir_to_add = array(); - if (($v_result = $p_archive_to_add->privReadEndCentralDir($v_central_dir_to_add)) != 1) { - $this->privCloseFd(); - $p_archive_to_add->privCloseFd(); - - return $v_result; - } - - // ----- Go to beginning of File - @rewind($p_archive_to_add->zip_fd); - - // ----- Creates a temporay file - $v_zip_temp_name = PCLZIP_TEMPORARY_DIR.uniqid('pclzip-').'.tmp'; - - // ----- Open the temporary file in write mode - if (($v_zip_temp_fd = @fopen($v_zip_temp_name, 'wb')) == 0) { - $this->privCloseFd(); - $p_archive_to_add->privCloseFd(); - - PclZip::privErrorLog(PCLZIP_ERR_READ_OPEN_FAIL, 'Unable to open temporary file \''.$v_zip_temp_name.'\' in binary write mode'); - - // ----- Return - return PclZip::errorCode(); - } - - // ----- Copy the files from the archive to the temporary file - // TBC : Here I should better append the file and go back to erase the central dir - $v_size = $v_central_dir['offset']; - while ($v_size != 0) { - $v_read_size = ($v_size < PCLZIP_READ_BLOCK_SIZE ? $v_size : PCLZIP_READ_BLOCK_SIZE); - $v_buffer = fread($this->zip_fd, $v_read_size); - @fwrite($v_zip_temp_fd, $v_buffer, $v_read_size); - $v_size -= $v_read_size; - } - - // ----- Copy the files from the archive_to_add into the temporary file - $v_size = $v_central_dir_to_add['offset']; - while ($v_size != 0) { - $v_read_size = ($v_size < PCLZIP_READ_BLOCK_SIZE ? $v_size : PCLZIP_READ_BLOCK_SIZE); - $v_buffer = fread($p_archive_to_add->zip_fd, $v_read_size); - @fwrite($v_zip_temp_fd, $v_buffer, $v_read_size); - $v_size -= $v_read_size; - } - - // ----- Store the offset of the central dir - $v_offset = @ftell($v_zip_temp_fd); - - // ----- Copy the block of file headers from the old archive - $v_size = $v_central_dir['size']; - while ($v_size != 0) { - $v_read_size = ($v_size < PCLZIP_READ_BLOCK_SIZE ? $v_size : PCLZIP_READ_BLOCK_SIZE); - $v_buffer = @fread($this->zip_fd, $v_read_size); - @fwrite($v_zip_temp_fd, $v_buffer, $v_read_size); - $v_size -= $v_read_size; - } - - // ----- Copy the block of file headers from the archive_to_add - $v_size = $v_central_dir_to_add['size']; - while ($v_size != 0) { - $v_read_size = ($v_size < PCLZIP_READ_BLOCK_SIZE ? $v_size : PCLZIP_READ_BLOCK_SIZE); - $v_buffer = @fread($p_archive_to_add->zip_fd, $v_read_size); - @fwrite($v_zip_temp_fd, $v_buffer, $v_read_size); - $v_size -= $v_read_size; - } - - // ----- Merge the file comments - $v_comment = $v_central_dir['comment'].' '.$v_central_dir_to_add['comment']; - - // ----- Calculate the size of the (new) central header - $v_size = @ftell($v_zip_temp_fd)-$v_offset; - - // ----- Swap the file descriptor - // Here is a trick : I swap the temporary fd with the zip fd, in order to use - // the following methods on the temporary fil and not the real archive fd - $v_swap = $this->zip_fd; - $this->zip_fd = $v_zip_temp_fd; - $v_zip_temp_fd = $v_swap; - - // ----- Create the central dir footer - if (($v_result = $this->privWriteCentralHeader($v_central_dir['entries']+$v_central_dir_to_add['entries'], $v_size, $v_offset, $v_comment)) != 1) { - $this->privCloseFd(); - $p_archive_to_add->privCloseFd(); - @fclose($v_zip_temp_fd); - $this->zip_fd = null; - - // ----- Reset the file list - unset($v_header_list); - - // ----- Return - return $v_result; - } - - // ----- Swap back the file descriptor - $v_swap = $this->zip_fd; - $this->zip_fd = $v_zip_temp_fd; - $v_zip_temp_fd = $v_swap; - - // ----- Close - $this->privCloseFd(); - $p_archive_to_add->privCloseFd(); - - // ----- Close the temporary file - @fclose($v_zip_temp_fd); - - // ----- Delete the zip file - // TBC : I should test the result ... - @unlink($this->zipname); - - // ----- Rename the temporary file - // TBC : I should test the result ... - //@rename($v_zip_temp_name, $this->zipname); - PclZipUtilRename($v_zip_temp_name, $this->zipname); - - // ----- Return - return $v_result; - } - // -------------------------------------------------------------------------------- - - // -------------------------------------------------------------------------------- - // Function : privDisableMagicQuotes() - // Description : - // Parameters : - // Return Values : - // -------------------------------------------------------------------------------- - - public function errorInfo($p_full = false) - { - if (PCLZIP_ERROR_EXTERNAL == 1) { - return(PclErrorString()); - } else { - if ($p_full) { - return($this->errorName(true)." : ".$this->error_string); - } else { - return($this->error_string." [code ".$this->error_code."]"); - } - } - } - // -------------------------------------------------------------------------------- - - // -------------------------------------------------------------------------------- - // Function : privSwapBackMagicQuotes() - // Description : - // Parameters : - // Return Values : - // -------------------------------------------------------------------------------- - - public function errorName($p_with_code = false) - { - $v_name = array( - PCLZIP_ERR_NO_ERROR => 'PCLZIP_ERR_NO_ERROR', - PCLZIP_ERR_WRITE_OPEN_FAIL => 'PCLZIP_ERR_WRITE_OPEN_FAIL', - PCLZIP_ERR_READ_OPEN_FAIL => 'PCLZIP_ERR_READ_OPEN_FAIL', - PCLZIP_ERR_INVALID_PARAMETER => 'PCLZIP_ERR_INVALID_PARAMETER', - PCLZIP_ERR_MISSING_FILE => 'PCLZIP_ERR_MISSING_FILE', - PCLZIP_ERR_FILENAME_TOO_LONG => 'PCLZIP_ERR_FILENAME_TOO_LONG', - PCLZIP_ERR_INVALID_ZIP => 'PCLZIP_ERR_INVALID_ZIP', - PCLZIP_ERR_BAD_EXTRACTED_FILE => 'PCLZIP_ERR_BAD_EXTRACTED_FILE', - PCLZIP_ERR_DIR_CREATE_FAIL => 'PCLZIP_ERR_DIR_CREATE_FAIL', - PCLZIP_ERR_BAD_EXTENSION => 'PCLZIP_ERR_BAD_EXTENSION', - PCLZIP_ERR_BAD_FORMAT => 'PCLZIP_ERR_BAD_FORMAT', - PCLZIP_ERR_DELETE_FILE_FAIL => 'PCLZIP_ERR_DELETE_FILE_FAIL', - PCLZIP_ERR_RENAME_FILE_FAIL => 'PCLZIP_ERR_RENAME_FILE_FAIL', - PCLZIP_ERR_BAD_CHECKSUM => 'PCLZIP_ERR_BAD_CHECKSUM', - PCLZIP_ERR_INVALID_ARCHIVE_ZIP => 'PCLZIP_ERR_INVALID_ARCHIVE_ZIP', - PCLZIP_ERR_MISSING_OPTION_VALUE => 'PCLZIP_ERR_MISSING_OPTION_VALUE', - PCLZIP_ERR_INVALID_OPTION_VALUE => 'PCLZIP_ERR_INVALID_OPTION_VALUE', - PCLZIP_ERR_UNSUPPORTED_COMPRESSION => 'PCLZIP_ERR_UNSUPPORTED_COMPRESSION', - PCLZIP_ERR_UNSUPPORTED_ENCRYPTION => 'PCLZIP_ERR_UNSUPPORTED_ENCRYPTION', - PCLZIP_ERR_INVALID_ATTRIBUTE_VALUE => 'PCLZIP_ERR_INVALID_ATTRIBUTE_VALUE', - PCLZIP_ERR_DIRECTORY_RESTRICTION => 'PCLZIP_ERR_DIRECTORY_RESTRICTION', - ); - - if (isset($v_name[$this->error_code])) { - $v_value = $v_name[$this->error_code]; - } else { - $v_value = 'NoName'; - } - - if ($p_with_code) { - return($v_value.' ('.$this->error_code.')'); - } else { - return($v_value); - } - } - // -------------------------------------------------------------------------------- -} -// End of class -// -------------------------------------------------------------------------------- - -// -------------------------------------------------------------------------------- -// Function : PclZipUtilPathReduction() -// Description : -// Parameters : -// Return Values : -// -------------------------------------------------------------------------------- -function PclZipUtilPathReduction($p_dir) -{ - $v_result = ""; - - // ----- Look for not empty path - if ($p_dir != "") { - // ----- Explode path by directory names - $v_list = explode("/", $p_dir); - - // ----- Study directories from last to first - $v_skip = 0; - for ($i=sizeof($v_list)-1; $i>=0; $i--) { - // ----- Look for current path - if ($v_list[$i] == ".") { - // ----- Ignore this directory - // Should be the first $i=0, but no check is done - } elseif ($v_list[$i] == "..") { - $v_skip++; - } elseif ($v_list[$i] == "") { - // ----- First '/' i.e. root slash - if ($i == 0) { - $v_result = "/".$v_result; - if ($v_skip > 0) { - // ----- It is an invalid path, so the path is not modified - // TBC - $v_result = $p_dir; - $v_skip = 0; - } - } elseif ($i == (sizeof($v_list)-1)) { - // ----- Last '/' i.e. indicates a directory - $v_result = $v_list[$i]; - } else { - // ----- Double '/' inside the path - // ----- Ignore only the double '//' in path, - // but not the first and last '/' - } - } else { - // ----- Look for item to skip - if ($v_skip > 0) { - $v_skip--; - } else { - $v_result = $v_list[$i].($i!=(sizeof($v_list)-1)?"/".$v_result:""); - } - } - } - - // ----- Look for skip - if ($v_skip > 0) { - while ($v_skip > 0) { - $v_result = '../'.$v_result; - $v_skip--; - } - } - } - - // ----- Return - return $v_result; -} -// -------------------------------------------------------------------------------- - -// -------------------------------------------------------------------------------- -// Function : PclZipUtilPathInclusion() -// Description : -// This function indicates if the path $p_path is under the $p_dir tree. Or, -// said in an other way, if the file or sub-dir $p_path is inside the dir -// $p_dir. -// The function indicates also if the path is exactly the same as the dir. -// This function supports path with duplicated '/' like '//', but does not -// support '.' or '..' statements. -// Parameters : -// Return Values : -// 0 if $p_path is not inside directory $p_dir -// 1 if $p_path is inside directory $p_dir -// 2 if $p_path is exactly the same as $p_dir -// -------------------------------------------------------------------------------- -function PclZipUtilPathInclusion($p_dir, $p_path) -{ - $v_result = 1; - - // ----- Look for path beginning by ./ - if (($p_dir == '.') || ((strlen($p_dir) >=2) && (substr($p_dir, 0, 2) == './'))) { - $p_dir = PclZipUtilTranslateWinPath(getcwd(), false).'/'.substr($p_dir, 1); - } - if (($p_path == '.') || ((strlen($p_path) >=2) && (substr($p_path, 0, 2) == './'))) { - $p_path = PclZipUtilTranslateWinPath(getcwd(), false).'/'.substr($p_path, 1); - } - - // ----- Explode dir and path by directory separator - $v_list_dir = explode("/", $p_dir); - $v_list_dir_size = sizeof($v_list_dir); - $v_list_path = explode("/", $p_path); - $v_list_path_size = sizeof($v_list_path); - - // ----- Study directories paths - $i = 0; - $j = 0; - while (($i < $v_list_dir_size) && ($j < $v_list_path_size) && ($v_result)) { - // ----- Look for empty dir (path reduction) - if ($v_list_dir[$i] == '') { - $i++; - continue; - } - if ($v_list_path[$j] == '') { - $j++; - continue; - } - - // ----- Compare the items - if (($v_list_dir[$i] != $v_list_path[$j]) && ($v_list_dir[$i] != '') && ($v_list_path[$j] != '')) { - $v_result = 0; - } - - // ----- Next items - $i++; - $j++; - } - - // ----- Look if everything seems to be the same - if ($v_result) { - // ----- Skip all the empty items - while (($j < $v_list_path_size) && ($v_list_path[$j] == '')) { - $j++; - } - while (($i < $v_list_dir_size) && ($v_list_dir[$i] == '')) { - $i++; - } - - if (($i >= $v_list_dir_size) && ($j >= $v_list_path_size)) { - // ----- There are exactly the same - $v_result = 2; - } elseif ($i < $v_list_dir_size) { - // ----- The path is shorter than the dir - $v_result = 0; - } - } - - // ----- Return - return $v_result; -} -// -------------------------------------------------------------------------------- - -// -------------------------------------------------------------------------------- -// Function : PclZipUtilCopyBlock() -// Description : -// Parameters : -// $p_mode : read/write compression mode -// 0 : src & dest normal -// 1 : src gzip, dest normal -// 2 : src normal, dest gzip -// 3 : src & dest gzip -// Return Values : -// -------------------------------------------------------------------------------- -function PclZipUtilCopyBlock($p_src, $p_dest, $p_size, $p_mode = 0) -{ - $v_result = 1; - - if ($p_mode==0) { - while ($p_size != 0) { - $v_read_size = ($p_size < PCLZIP_READ_BLOCK_SIZE ? $p_size : PCLZIP_READ_BLOCK_SIZE); - $v_buffer = @fread($p_src, $v_read_size); - @fwrite($p_dest, $v_buffer, $v_read_size); - $p_size -= $v_read_size; - } - } elseif ($p_mode==1) { - while ($p_size != 0) { - $v_read_size = ($p_size < PCLZIP_READ_BLOCK_SIZE ? $p_size : PCLZIP_READ_BLOCK_SIZE); - $v_buffer = @gzread($p_src, $v_read_size); - @fwrite($p_dest, $v_buffer, $v_read_size); - $p_size -= $v_read_size; - } - } elseif ($p_mode==2) { - while ($p_size != 0) { - $v_read_size = ($p_size < PCLZIP_READ_BLOCK_SIZE ? $p_size : PCLZIP_READ_BLOCK_SIZE); - $v_buffer = @fread($p_src, $v_read_size); - @gzwrite($p_dest, $v_buffer, $v_read_size); - $p_size -= $v_read_size; - } - } elseif ($p_mode==3) { - while ($p_size != 0) { - $v_read_size = ($p_size < PCLZIP_READ_BLOCK_SIZE ? $p_size : PCLZIP_READ_BLOCK_SIZE); - $v_buffer = @gzread($p_src, $v_read_size); - @gzwrite($p_dest, $v_buffer, $v_read_size); - $p_size -= $v_read_size; - } - } - - // ----- Return - return $v_result; -} -// -------------------------------------------------------------------------------- - -// -------------------------------------------------------------------------------- -// Function : PclZipUtilRename() -// Description : -// This function tries to do a simple rename() function. If it fails, it -// tries to copy the $p_src file in a new $p_dest file and then unlink the -// first one. -// Parameters : -// $p_src : Old filename -// $p_dest : New filename -// Return Values : -// 1 on success, 0 on failure. -// -------------------------------------------------------------------------------- -function PclZipUtilRename($p_src, $p_dest) -{ - $v_result = 1; - - // ----- Try to rename the files - if (!@rename($p_src, $p_dest)) { - // ----- Try to copy & unlink the src - if (!@copy($p_src, $p_dest)) { - $v_result = 0; - } elseif (!@unlink($p_src)) { - $v_result = 0; - } - } - - // ----- Return - return $v_result; -} -// -------------------------------------------------------------------------------- - -// -------------------------------------------------------------------------------- -// Function : PclZipUtilOptionText() -// Description : -// Translate option value in text. Mainly for debug purpose. -// Parameters : -// $p_option : the option value. -// Return Values : -// The option text value. -// -------------------------------------------------------------------------------- -function PclZipUtilOptionText($p_option) -{ - $v_list = get_defined_constants(); - for (reset($v_list); $v_key = key($v_list); next($v_list)) { - $v_prefix = substr($v_key, 0, 10); - if ((($v_prefix == 'PCLZIP_OPT') || ($v_prefix == 'PCLZIP_CB_') || ($v_prefix == 'PCLZIP_ATT')) && ($v_list[$v_key] == $p_option)) { - return $v_key; - } - } - - $v_result = 'Unknown'; - - return $v_result; -} -// -------------------------------------------------------------------------------- - -// -------------------------------------------------------------------------------- -// Function : PclZipUtilTranslateWinPath() -// Description : -// Translate windows path by replacing '\' by '/' and optionally removing -// drive letter. -// Parameters : -// $p_path : path to translate. -// $p_remove_disk_letter : true | false -// Return Values : -// The path translated. -// -------------------------------------------------------------------------------- -function PclZipUtilTranslateWinPath($p_path, $p_remove_disk_letter = true) -{ - if (stristr(php_uname(), 'windows')) { - // ----- Look for potential disk letter - if (($p_remove_disk_letter) && (($v_position = strpos($p_path, ':')) != false)) { - $p_path = substr($p_path, $v_position+1); - } - // ----- Change potential windows directory separator - if ((strpos($p_path, '\\') > 0) || (substr($p_path, 0, 1) == '\\')) { - $p_path = strtr($p_path, '\\', '/'); - } - } - return $p_path; -} diff --git a/Utils/PHPExcel/Shared/PCLZip/readme.txt b/Utils/PHPExcel/Shared/PCLZip/readme.txt deleted file mode 100644 index d1b11e2..0000000 --- a/Utils/PHPExcel/Shared/PCLZip/readme.txt +++ /dev/null @@ -1,421 +0,0 @@ -// -------------------------------------------------------------------------------- -// PclZip 2.8.2 - readme.txt -// -------------------------------------------------------------------------------- -// License GNU/LGPL - August 2009 -// Vincent Blavet - vincent@phpconcept.net -// http://www.phpconcept.net -// -------------------------------------------------------------------------------- -// $Id: readme.txt,v 1.60 2009/09/30 20:35:21 vblavet Exp $ -// -------------------------------------------------------------------------------- - - - -0 - Sommaire -============ - 1 - Introduction - 2 - What's new - 3 - Corrected bugs - 4 - Known bugs or limitations - 5 - License - 6 - Warning - 7 - Documentation - 8 - Author - 9 - Contribute - -1 - Introduction -================ - - PclZip is a library that allow you to manage a Zip archive. - - Full documentation about PclZip can be found here : http://www.phpconcept.net/pclzip - -2 - What's new -============== - - Version 2.8.2 : - - PCLZIP_CB_PRE_EXTRACT and PCLZIP_CB_POST_EXTRACT are now supported with - extraction as a string (PCLZIP_OPT_EXTRACT_AS_STRING). The string - can also be modified in the post-extract call back. - **Bugs correction : - - PCLZIP_OPT_REMOVE_ALL_PATH was not working correctly - - Remove use of eval() and do direct call to callback functions - - Correct support of 64bits systems (Thanks to WordPress team) - - Version 2.8.1 : - - Move option PCLZIP_OPT_BY_EREG to PCLZIP_OPT_BY_PREG because ereg() is - deprecated in PHP 5.3. When using option PCLZIP_OPT_BY_EREG, PclZip will - automatically replace it by PCLZIP_OPT_BY_PREG. - - Version 2.8 : - - Improve extraction of zip archive for large files by using temporary files - This feature is working like the one defined in r2.7. - Options are renamed : PCLZIP_OPT_TEMP_FILE_ON, PCLZIP_OPT_TEMP_FILE_OFF, - PCLZIP_OPT_TEMP_FILE_THRESHOLD - - Add a ratio constant PCLZIP_TEMPORARY_FILE_RATIO to configure the auto - sense of temporary file use. - - Bug correction : Reduce filepath in returned file list to remove ennoying - './/' preambule in file path. - - Version 2.7 : - - Improve creation of zip archive for large files : - PclZip will now autosense the configured memory and use temporary files - when large file is suspected. - This feature can also ne triggered by manual options in create() and add() - methods. 'PCLZIP_OPT_ADD_TEMP_FILE_ON' force the use of temporary files, - 'PCLZIP_OPT_ADD_TEMP_FILE_OFF' disable the autosense technic, - 'PCLZIP_OPT_ADD_TEMP_FILE_THRESHOLD' allow for configuration of a size - threshold to use temporary files. - Using "temporary files" rather than "memory" might take more time, but - might give the ability to zip very large files : - Tested on my win laptop with a 88Mo file : - Zip "in-memory" : 18sec (max_execution_time=30, memory_limit=180Mo) - Zip "tmporary-files" : 23sec (max_execution_time=30, memory_limit=30Mo) - - Replace use of mktime() by time() to limit the E_STRICT error messages. - - Bug correction : When adding files with full windows path (drive letter) - PclZip is now working. Before, if the drive letter is not the default - path, PclZip was not able to add the file. - - Version 2.6 : - - Code optimisation - - New attributes PCLZIP_ATT_FILE_COMMENT gives the ability to - add a comment for a specific file. (Don't really know if this is usefull) - - New attribute PCLZIP_ATT_FILE_CONTENT gives the ability to add a string - as a file. - - New attribute PCLZIP_ATT_FILE_MTIME modify the timestamp associated with - a file. - - Correct a bug. Files archived with a timestamp with 0h0m0s were extracted - with current time - - Add CRC value in the informations returned back for each file after an - action. - - Add missing closedir() statement. - - When adding a folder, and removing the path of this folder, files were - incorrectly added with a '/' at the beginning. Which means files are - related to root in unix systems. Corrected. - - Add conditional if before constant definition. This will allow users - to redefine constants without changing the file, and then improve - upgrade of pclzip code for new versions. - - Version 2.5 : - - Introduce the ability to add file/folder with individual properties (file descriptor). - This gives for example the ability to change the filename of a zipped file. - . Able to add files individually - . Able to change full name - . Able to change short name - . Compatible with global options - - New attributes : PCLZIP_ATT_FILE_NAME, PCLZIP_ATT_FILE_NEW_SHORT_NAME, PCLZIP_ATT_FILE_NEW_FULL_NAME - - New error code : PCLZIP_ERR_INVALID_ATTRIBUTE_VALUE - - Add a security control feature. PclZip can extract any file in any folder - of a system. People may use this to upload a zip file and try to override - a system file. The PCLZIP_OPT_EXTRACT_DIR_RESTRICTION will give the - ability to forgive any directory transversal behavior. - - New PCLZIP_OPT_EXTRACT_DIR_RESTRICTION : check extraction path - - New error code : PCLZIP_ERR_DIRECTORY_RESTRICTION - - Modification in PclZipUtilPathInclusion() : dir and path beginning with ./ will be prepend - by current path (getcwd()) - - Version 2.4 : - - Code improvment : try to speed up the code by removing unusefull call to pack() - - Correct bug in delete() : delete() should be called with no argument. This was not - the case in 2.3. This is corrected in 2.4. - - Correct a bug in path_inclusion function. When the path has several '../../', the - result was bad. - - Add a check for magic_quotes_runtime configuration. If enabled, PclZip will - disable it while working and det it back to its original value. - This resolve a lots of bad formated archive errors. - - Bug correction : PclZip now correctly unzip file in some specific situation, - when compressed content has same size as uncompressed content. - - Bug correction : When selecting option 'PCLZIP_OPT_REMOVE_ALL_PATH', - directories are not any more created. - - Code improvment : correct unclosed opendir(), better handling of . and .. in - loops. - - - Version 2.3 : - - Correct a bug with PHP5 : affecting the value 0xFE49FFE0 to a variable does not - give the same result in PHP4 and PHP5 .... - - Version 2.2 : - - Try development of PCLZIP_OPT_CRYPT ..... - However this becomes to a stop. To crypt/decrypt I need to multiply 2 long integers, - the result (greater than a long) is not supported by PHP. Even the use of bcmath - functions does not help. I did not find yet a solution ...; - - Add missing '/' at end of directory entries - - Check is a file is encrypted or not. Returns status 'unsupported_encryption' and/or - error code PCLZIP_ERR_UNSUPPORTED_ENCRYPTION. - - Corrected : Bad "version need to extract" field in local file header - - Add private method privCheckFileHeaders() in order to check local and central - file headers. PclZip is now supporting purpose bit flag bit 3. Purpose bit flag bit 3 gives - the ability to have a local file header without size, compressed size and crc filled. - - Add a generic status 'error' for file status - - Add control of compression type. PclZip only support deflate compression method. - Before v2.2, PclZip does not check the compression method used in an archive while - extracting. With v2.2 PclZip returns a new error status for a file using an unsupported - compression method. New status is "unsupported_compression". New error code is - PCLZIP_ERR_UNSUPPORTED_COMPRESSION. - - Add optional attribute PCLZIP_OPT_STOP_ON_ERROR. This will stop the extract of files - when errors like 'a folder with same name exists' or 'a newer file exists' or - 'a write protected file' exists, rather than set a status for the concerning file - and resume the extract of the zip. - - Add optional attribute PCLZIP_OPT_REPLACE_NEWER. This will force, during an extract' the - replacement of the file, even if a newer version of the file exists. - Note that today if a file with the same name already exists but is older it will be - replaced by the extracted one. - - Improve PclZipUtilOption() - - Support of zip archive with trailing bytes. Before 2.2, PclZip checks that the central - directory structure is the last data in the archive. Crypt encryption/decryption of - zip archive put trailing 0 bytes after decryption. PclZip is now supporting this. - - Version 2.1 : - - Add the ability to abort the extraction by using a user callback function. - The user can now return the value '2' in its callback which indicates to stop the - extraction. For a pre call-back extract is stopped before the extration of the current - file. For a post call back, the extraction is stopped after. - - Add the ability to extract a file (or several files) directly in the standard output. - This is done by the new parameter PCLZIP_OPT_EXTRACT_IN_OUTPUT with method extract(). - - Add support for parameters PCLZIP_OPT_COMMENT, PCLZIP_OPT_ADD_COMMENT, - PCLZIP_OPT_PREPEND_COMMENT. This will create, replace, add, or prepend comments - in the zip archive. - - When merging two archives, the comments are not any more lost, but merged, with a - blank space separator. - - Corrected bug : Files are not deleted when all files are asked to be deleted. - - Corrected bug : Folders with name '0' made PclZip to abort the create or add feature. - - - Version 2.0 : - ***** Warning : Some new features may break the backward compatibility for your scripts. - Please carefully read the readme file. - - Add the ability to delete by Index, name and regular expression. This feature is - performed by the method delete(), which uses the optional parameters - PCLZIP_OPT_BY_INDEX, PCLZIP_OPT_BY_NAME, PCLZIP_OPT_BY_EREG or PCLZIP_OPT_BY_PREG. - - Add the ability to extract by regular expression. To extract by regexp you must use the method - extract(), with the option PCLZIP_OPT_BY_EREG or PCLZIP_OPT_BY_PREG - (depending if you want to use ereg() or preg_match() syntax) followed by the - regular expression pattern. - - Add the ability to extract by index, directly with the extract() method. This is a - code improvment of the extractByIndex() method. - - Add the ability to extract by name. To extract by name you must use the method - extract(), with the option PCLZIP_OPT_BY_NAME followed by the filename to - extract or an array of filenames to extract. To extract all a folder, use the folder - name rather than the filename with a '/' at the end. - - Add the ability to add files without compression. This is done with a new attribute - which is PCLZIP_OPT_NO_COMPRESSION. - - Add the attribute PCLZIP_OPT_EXTRACT_AS_STRING, which allow to extract a file directly - in a string without using any file (or temporary file). - - Add constant PCLZIP_SEPARATOR for static configuration of filename separators in a single string. - The default separator is now a comma (,) and not any more a blank space. - THIS BREAK THE BACKWARD COMPATIBILITY : Please check if this may have an impact with - your script. - - Improve algorythm performance by removing the use of temporary files when adding or - extracting files in an archive. - - Add (correct) detection of empty filename zipping. This can occurs when the removed - path is the same - as a zipped dir. The dir is not zipped (['status'] = filtered), only its content. - - Add better support for windows paths (thanks for help from manus@manusfreedom.com). - - Corrected bug : When the archive file already exists with size=0, the add() method - fails. Corrected in 2.0. - - Remove the use of OS_WINDOWS constant. Use php_uname() function rather. - - Control the order of index ranges in extract by index feature. - - Change the internal management of folders (better handling of internal flag). - - - Version 1.3 : - - Removing the double include check. This is now done by include_once() and require_once() - PHP directives. - - Changing the error handling mecanism : Remove the use of an external error library. - The former PclError...() functions are replaced by internal equivalent methods. - By changing the environment variable PCLZIP_ERROR_EXTERNAL you can still use the former library. - Introducing the use of constants for error codes rather than integer values. This will help - in futur improvment. - Introduction of error handling functions like errorCode(), errorName() and errorInfo(). - - Remove the deprecated use of calling function with arguments passed by reference. - - Add the calling of extract(), extractByIndex(), create() and add() functions - with variable options rather than fixed arguments. - - Add the ability to remove all the file path while extracting or adding, - without any need to specify the path to remove. - This is available for extract(), extractByIndex(), create() and add() functionS by using - the new variable options parameters : - - PCLZIP_OPT_REMOVE_ALL_PATH : by indicating this option while calling the fct. - - Ability to change the mode of a file after the extraction (chmod()). - This is available for extract() and extractByIndex() functionS by using - the new variable options parameters. - - PCLZIP_OPT_SET_CHMOD : by setting the value of this option. - - Ability to definition call-back options. These call-back will be called during the adding, - or the extracting of file (extract(), extractByIndex(), create() and add() functions) : - - PCLZIP_CB_PRE_EXTRACT : will be called before each extraction of a file. The user - can trigerred the change the filename of the extracted file. The user can triggered the - skip of the extraction. This is adding a 'skipped' status in the file list result value. - - PCLZIP_CB_POST_EXTRACT : will be called after each extraction of a file. - Nothing can be triggered from that point. - - PCLZIP_CB_PRE_ADD : will be called before each add of a file. The user - can trigerred the change the stored filename of the added file. The user can triggered the - skip of the add. This is adding a 'skipped' status in the file list result value. - - PCLZIP_CB_POST_ADD : will be called after each add of a file. - Nothing can be triggered from that point. - - Two status are added in the file list returned as function result : skipped & filename_too_long - 'skipped' is used when a call-back function ask for skipping the file. - 'filename_too_long' is used while adding a file with a too long filename to archive (the file is - not added) - - Adding the function PclZipUtilPathInclusion(), that check the inclusion of a path into - a directory. - - Add a check of the presence of the archive file before some actions (like list, ...) - - Add the initialisation of field "index" in header array. This means that by - default index will be -1 when not explicitly set by the methods. - - Version 1.2 : - - Adding a duplicate function. - - Adding a merge function. The merge function is a "quick merge" function, - it just append the content of an archive at the end of the first one. There - is no check for duplicate files or more recent files. - - Improve the search of the central directory end. - - Version 1.1.2 : - - - Changing the license of PclZip. PclZip is now released under the GNU / LGPL license - (see License section). - - Adding the optional support of a static temporary directory. You will need to configure - the constant PCLZIP_TEMPORARY_DIR if you want to use this feature. - - Improving the rename() function. In some cases rename() does not work (different - Filesystems), so it will be replaced by a copy() + unlink() functions. - - Version 1.1.1 : - - - Maintenance release, no new feature. - - Version 1.1 : - - - New method Add() : adding files in the archive - - New method ExtractByIndex() : partial extract of the archive, files are identified by - their index in the archive - - New method DeleteByIndex() : delete some files/folder entries from the archive, - files are identified by their index in the archive. - - Adding a test of the zlib extension presence. If not present abort the script. - - Version 1.0.1 : - - - No new feature - - -3 - Corrected bugs -================== - - Corrected in Version 2.0 : - - Corrected : During an extraction, if a call-back fucntion is used and try to skip - a file, all the extraction process is stopped. - - Corrected in Version 1.3 : - - Corrected : Support of static synopsis for method extract() is broken. - - Corrected : invalid size of archive content field (0xFF) should be (0xFFFF). - - Corrected : When an extract is done with a remove_path parameter, the entry for - the directory with exactly the same path is not skipped/filtered. - - Corrected : extractByIndex() and deleteByIndex() were not managing index in the - right way. For example indexes '1,3-5,11' will only extract files 1 and 11. This - is due to a sort of the index resulting table that puts 11 before 3-5 (sort on - string and not interger). The sort is temporarilly removed, this means that - you must provide a sorted list of index ranges. - - Corrected in Version 1.2 : - - - Nothing. - - Corrected in Version 1.1.2 : - - - Corrected : Winzip is unable to delete or add new files in a PclZip created archives. - - Corrected in Version 1.1.1 : - - - Corrected : When archived file is not compressed (0% compression), the - extract method fails. - - Corrected in Version 1.1 : - - - Corrected : Adding a complete tree of folder may result in a bad archive - creation. - - Corrected in Version 1.0.1 : - - - Corrected : Error while compressing files greater than PCLZIP_READ_BLOCK_SIZE (default=1024). - - -4 - Known bugs or limitations -============================= - - Please publish bugs reports in SourceForge : - http://sourceforge.net/tracker/?group_id=40254&atid=427564 - - In Version 2.x : - - PclZip does only support file uncompressed or compressed with deflate (compression method 8) - - PclZip does not support password protected zip archive - - Some concern were seen when changing mtime of a file while archiving. - Seems to be linked to Daylight Saving Time (PclTest_changing_mtime). - - In Version 1.2 : - - - merge() methods does not check for duplicate files or last date of modifications. - - In Version 1.1 : - - - Limitation : Using 'extract' fields in the file header in the zip archive is not supported. - - WinZip is unable to delete a single file in a PclZip created archive. It is also unable to - add a file in a PclZip created archive. (Corrected in v.1.2) - - In Version 1.0.1 : - - - Adding a complete tree of folder may result in a bad archive - creation. (Corrected in V.1.1). - - Path given to methods must be in the unix format (/) and not the Windows format (\). - Workaround : Use only / directory separators. - - PclZip is using temporary files that are sometime the name of the file with a .tmp or .gz - added suffix. Files with these names may already exist and may be overwritten. - Workaround : none. - - PclZip does not check if the zlib extension is present. If it is absent, the zip - file is not created and the lib abort without warning. - Workaround : enable the zlib extension on the php install - - In Version 1.0 : - - - Error while compressing files greater than PCLZIP_READ_BLOCK_SIZE (default=1024). - (Corrected in v.1.0.1) - - Limitation : Multi-disk zip archive are not supported. - - -5 - License -=========== - - Since version 1.1.2, PclZip Library is released under GNU/LGPL license. - This library is free, so you can use it at no cost. - - HOWEVER, if you release a script, an application, a library or any kind of - code using PclZip library (or a part of it), YOU MUST : - - Indicate in the documentation (or a readme file), that your work - uses PclZip Library, and make a reference to the author and the web site - http://www.phpconcept.net - - Gives the ability to the final user to update the PclZip libary. - - I will also appreciate that you send me a mail (vincent@phpconcept.net), just to - be aware that someone is using PclZip. - - For more information about GNU/LGPL license : http://www.gnu.org - -6 - Warning -================= - - This library and the associated files are non commercial, non professional work. - It should not have unexpected results. However if any damage is caused by this software - the author can not be responsible. - The use of this software is at the risk of the user. - -7 - Documentation -================= - PclZip User Manuel is available in English on PhpConcept : http://www.phpconcept.net/pclzip/man/en/index.php - A Russian translation was done by Feskov Kuzma : http://php.russofile.ru/ru/authors/unsort/zip/ - -8 - Author -========== - - This software was written by Vincent Blavet (vincent@phpconcept.net) on its leasure time. - -9 - Contribute -============== - If you want to contribute to the development of PclZip, please contact vincent@phpconcept.net. - If you can help in financing PhpConcept hosting service, please go to - http://www.phpconcept.net/soutien.php diff --git a/Utils/PHPExcel/Shared/PasswordHasher.php b/Utils/PHPExcel/Shared/PasswordHasher.php deleted file mode 100644 index 946742b..0000000 --- a/Utils/PHPExcel/Shared/PasswordHasher.php +++ /dev/null @@ -1,67 +0,0 @@ -<?php -/** - * PHPExcel - * - * Copyright (c) 2006 - 2015 PHPExcel - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - * - * @category PHPExcel - * @package PHPExcel_Shared - * @copyright Copyright (c) 2006 - 2015 PHPExcel (http://www.codeplex.com/PHPExcel) - * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL - * @version ##VERSION##, ##DATE## - */ - - -/** - * PHPExcel_Shared_PasswordHasher - * - * @category PHPExcel - * @package PHPExcel_Shared - * @copyright Copyright (c) 2006 - 2015 PHPExcel (http://www.codeplex.com/PHPExcel) - */ -class PHPExcel_Shared_PasswordHasher -{ - /** - * Create a password hash from a given string. - * - * This method is based on the algorithm provided by - * Daniel Rentz of OpenOffice and the PEAR package - * Spreadsheet_Excel_Writer by Xavier Noguer <xnoguer@rezebra.com>. - * - * @param string $pPassword Password to hash - * @return string Hashed password - */ - public static function hashPassword($pPassword = '') - { - $password = 0x0000; - $charPos = 1; // char position - - // split the plain text password in its component characters - $chars = preg_split('//', $pPassword, -1, PREG_SPLIT_NO_EMPTY); - foreach ($chars as $char) { - $value = ord($char) << $charPos++; // shifted ASCII value - $rotated_bits = $value >> 15; // rotated bits beyond bit 15 - $value &= 0x7fff; // first 15 bits - $password ^= ($value | $rotated_bits); - } - - $password ^= strlen($pPassword); - $password ^= 0xCE4B; - - return(strtoupper(dechex($password))); - } -} diff --git a/Utils/PHPExcel/Shared/String.php b/Utils/PHPExcel/Shared/String.php deleted file mode 100644 index fa1a64e..0000000 --- a/Utils/PHPExcel/Shared/String.php +++ /dev/null @@ -1,819 +0,0 @@ -<?php - -/** - * PHPExcel_Shared_String - * - * Copyright (c) 2006 - 2015 PHPExcel - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - * - * @category PHPExcel - * @package PHPExcel_Shared - * @copyright Copyright (c) 2006 - 2015 PHPExcel (http://www.codeplex.com/PHPExcel) - * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL - * @version ##VERSION##, ##DATE## - */ -class PHPExcel_Shared_String -{ - /** Constants */ - /** Regular Expressions */ - // Fraction - const STRING_REGEXP_FRACTION = '(-?)(\d+)\s+(\d+\/\d+)'; - - - /** - * Control characters array - * - * @var string[] - */ - private static $controlCharacters = array(); - - /** - * SYLK Characters array - * - * $var array - */ - private static $SYLKCharacters = array(); - - /** - * Decimal separator - * - * @var string - */ - private static $decimalSeparator; - - /** - * Thousands separator - * - * @var string - */ - private static $thousandsSeparator; - - /** - * Currency code - * - * @var string - */ - private static $currencyCode; - - /** - * Is mbstring extension avalable? - * - * @var boolean - */ - private static $isMbstringEnabled; - - /** - * Is iconv extension avalable? - * - * @var boolean - */ - private static $isIconvEnabled; - - /** - * Build control characters array - */ - private static function buildControlCharacters() - { - for ($i = 0; $i <= 31; ++$i) { - if ($i != 9 && $i != 10 && $i != 13) { - $find = '_x' . sprintf('%04s', strtoupper(dechex($i))) . '_'; - $replace = chr($i); - self::$controlCharacters[$find] = $replace; - } - } - } - - /** - * Build SYLK characters array - */ - private static function buildSYLKCharacters() - { - self::$SYLKCharacters = array( - "\x1B 0" => chr(0), - "\x1B 1" => chr(1), - "\x1B 2" => chr(2), - "\x1B 3" => chr(3), - "\x1B 4" => chr(4), - "\x1B 5" => chr(5), - "\x1B 6" => chr(6), - "\x1B 7" => chr(7), - "\x1B 8" => chr(8), - "\x1B 9" => chr(9), - "\x1B :" => chr(10), - "\x1B ;" => chr(11), - "\x1B <" => chr(12), - "\x1B :" => chr(13), - "\x1B >" => chr(14), - "\x1B ?" => chr(15), - "\x1B!0" => chr(16), - "\x1B!1" => chr(17), - "\x1B!2" => chr(18), - "\x1B!3" => chr(19), - "\x1B!4" => chr(20), - "\x1B!5" => chr(21), - "\x1B!6" => chr(22), - "\x1B!7" => chr(23), - "\x1B!8" => chr(24), - "\x1B!9" => chr(25), - "\x1B!:" => chr(26), - "\x1B!;" => chr(27), - "\x1B!<" => chr(28), - "\x1B!=" => chr(29), - "\x1B!>" => chr(30), - "\x1B!?" => chr(31), - "\x1B'?" => chr(127), - "\x1B(0" => '€', // 128 in CP1252 - "\x1B(2" => '‚', // 130 in CP1252 - "\x1B(3" => 'ƒ', // 131 in CP1252 - "\x1B(4" => '„', // 132 in CP1252 - "\x1B(5" => '…', // 133 in CP1252 - "\x1B(6" => '†', // 134 in CP1252 - "\x1B(7" => '‡', // 135 in CP1252 - "\x1B(8" => 'ˆ', // 136 in CP1252 - "\x1B(9" => '‰', // 137 in CP1252 - "\x1B(:" => 'Š', // 138 in CP1252 - "\x1B(;" => '‹', // 139 in CP1252 - "\x1BNj" => 'Œ', // 140 in CP1252 - "\x1B(>" => 'Ž', // 142 in CP1252 - "\x1B)1" => '‘', // 145 in CP1252 - "\x1B)2" => '’', // 146 in CP1252 - "\x1B)3" => '“', // 147 in CP1252 - "\x1B)4" => '”', // 148 in CP1252 - "\x1B)5" => '•', // 149 in CP1252 - "\x1B)6" => '–', // 150 in CP1252 - "\x1B)7" => '—', // 151 in CP1252 - "\x1B)8" => '˜', // 152 in CP1252 - "\x1B)9" => '™', // 153 in CP1252 - "\x1B):" => 'š', // 154 in CP1252 - "\x1B);" => '›', // 155 in CP1252 - "\x1BNz" => 'œ', // 156 in CP1252 - "\x1B)>" => 'ž', // 158 in CP1252 - "\x1B)?" => 'Ÿ', // 159 in CP1252 - "\x1B*0" => ' ', // 160 in CP1252 - "\x1BN!" => '¡', // 161 in CP1252 - "\x1BN\"" => '¢', // 162 in CP1252 - "\x1BN#" => '£', // 163 in CP1252 - "\x1BN(" => '¤', // 164 in CP1252 - "\x1BN%" => '¥', // 165 in CP1252 - "\x1B*6" => '¦', // 166 in CP1252 - "\x1BN'" => '§', // 167 in CP1252 - "\x1BNH " => '¨', // 168 in CP1252 - "\x1BNS" => '©', // 169 in CP1252 - "\x1BNc" => 'ª', // 170 in CP1252 - "\x1BN+" => '«', // 171 in CP1252 - "\x1B*<" => '¬', // 172 in CP1252 - "\x1B*=" => '­', // 173 in CP1252 - "\x1BNR" => '®', // 174 in CP1252 - "\x1B*?" => '¯', // 175 in CP1252 - "\x1BN0" => '°', // 176 in CP1252 - "\x1BN1" => '±', // 177 in CP1252 - "\x1BN2" => '²', // 178 in CP1252 - "\x1BN3" => '³', // 179 in CP1252 - "\x1BNB " => '´', // 180 in CP1252 - "\x1BN5" => 'µ', // 181 in CP1252 - "\x1BN6" => '¶', // 182 in CP1252 - "\x1BN7" => '·', // 183 in CP1252 - "\x1B+8" => '¸', // 184 in CP1252 - "\x1BNQ" => '¹', // 185 in CP1252 - "\x1BNk" => 'º', // 186 in CP1252 - "\x1BN;" => '»', // 187 in CP1252 - "\x1BN<" => '¼', // 188 in CP1252 - "\x1BN=" => '½', // 189 in CP1252 - "\x1BN>" => '¾', // 190 in CP1252 - "\x1BN?" => '¿', // 191 in CP1252 - "\x1BNAA" => 'À', // 192 in CP1252 - "\x1BNBA" => 'Á', // 193 in CP1252 - "\x1BNCA" => 'Â', // 194 in CP1252 - "\x1BNDA" => 'Ã', // 195 in CP1252 - "\x1BNHA" => 'Ä', // 196 in CP1252 - "\x1BNJA" => 'Å', // 197 in CP1252 - "\x1BNa" => 'Æ', // 198 in CP1252 - "\x1BNKC" => 'Ç', // 199 in CP1252 - "\x1BNAE" => 'È', // 200 in CP1252 - "\x1BNBE" => 'É', // 201 in CP1252 - "\x1BNCE" => 'Ê', // 202 in CP1252 - "\x1BNHE" => 'Ë', // 203 in CP1252 - "\x1BNAI" => 'Ì', // 204 in CP1252 - "\x1BNBI" => 'Í', // 205 in CP1252 - "\x1BNCI" => 'Î', // 206 in CP1252 - "\x1BNHI" => 'Ï', // 207 in CP1252 - "\x1BNb" => 'Ð', // 208 in CP1252 - "\x1BNDN" => 'Ñ', // 209 in CP1252 - "\x1BNAO" => 'Ò', // 210 in CP1252 - "\x1BNBO" => 'Ó', // 211 in CP1252 - "\x1BNCO" => 'Ô', // 212 in CP1252 - "\x1BNDO" => 'Õ', // 213 in CP1252 - "\x1BNHO" => 'Ö', // 214 in CP1252 - "\x1B-7" => '×', // 215 in CP1252 - "\x1BNi" => 'Ø', // 216 in CP1252 - "\x1BNAU" => 'Ù', // 217 in CP1252 - "\x1BNBU" => 'Ú', // 218 in CP1252 - "\x1BNCU" => 'Û', // 219 in CP1252 - "\x1BNHU" => 'Ü', // 220 in CP1252 - "\x1B-=" => 'Ý', // 221 in CP1252 - "\x1BNl" => 'Þ', // 222 in CP1252 - "\x1BN{" => 'ß', // 223 in CP1252 - "\x1BNAa" => 'à', // 224 in CP1252 - "\x1BNBa" => 'á', // 225 in CP1252 - "\x1BNCa" => 'â', // 226 in CP1252 - "\x1BNDa" => 'ã', // 227 in CP1252 - "\x1BNHa" => 'ä', // 228 in CP1252 - "\x1BNJa" => 'å', // 229 in CP1252 - "\x1BNq" => 'æ', // 230 in CP1252 - "\x1BNKc" => 'ç', // 231 in CP1252 - "\x1BNAe" => 'è', // 232 in CP1252 - "\x1BNBe" => 'é', // 233 in CP1252 - "\x1BNCe" => 'ê', // 234 in CP1252 - "\x1BNHe" => 'ë', // 235 in CP1252 - "\x1BNAi" => 'ì', // 236 in CP1252 - "\x1BNBi" => 'í', // 237 in CP1252 - "\x1BNCi" => 'î', // 238 in CP1252 - "\x1BNHi" => 'ï', // 239 in CP1252 - "\x1BNs" => 'ð', // 240 in CP1252 - "\x1BNDn" => 'ñ', // 241 in CP1252 - "\x1BNAo" => 'ò', // 242 in CP1252 - "\x1BNBo" => 'ó', // 243 in CP1252 - "\x1BNCo" => 'ô', // 244 in CP1252 - "\x1BNDo" => 'õ', // 245 in CP1252 - "\x1BNHo" => 'ö', // 246 in CP1252 - "\x1B/7" => '÷', // 247 in CP1252 - "\x1BNy" => 'ø', // 248 in CP1252 - "\x1BNAu" => 'ù', // 249 in CP1252 - "\x1BNBu" => 'ú', // 250 in CP1252 - "\x1BNCu" => 'û', // 251 in CP1252 - "\x1BNHu" => 'ü', // 252 in CP1252 - "\x1B/=" => 'ý', // 253 in CP1252 - "\x1BN|" => 'þ', // 254 in CP1252 - "\x1BNHy" => 'ÿ', // 255 in CP1252 - ); - } - - /** - * Get whether mbstring extension is available - * - * @return boolean - */ - public static function getIsMbstringEnabled() - { - if (isset(self::$isMbstringEnabled)) { - return self::$isMbstringEnabled; - } - - self::$isMbstringEnabled = function_exists('mb_convert_encoding') ? - true : false; - - return self::$isMbstringEnabled; - } - - /** - * Get whether iconv extension is available - * - * @return boolean - */ - public static function getIsIconvEnabled() - { - if (isset(self::$isIconvEnabled)) { - return self::$isIconvEnabled; - } - - // Fail if iconv doesn't exist - if (!function_exists('iconv')) { - self::$isIconvEnabled = false; - return false; - } - - // Sometimes iconv is not working, and e.g. iconv('UTF-8', 'UTF-16LE', 'x') just returns false, - if (!@iconv('UTF-8', 'UTF-16LE', 'x')) { - self::$isIconvEnabled = false; - return false; - } - - // Sometimes iconv_substr('A', 0, 1, 'UTF-8') just returns false in PHP 5.2.0 - // we cannot use iconv in that case either (http://bugs.php.net/bug.php?id=37773) - if (!@iconv_substr('A', 0, 1, 'UTF-8')) { - self::$isIconvEnabled = false; - return false; - } - - // CUSTOM: IBM AIX iconv() does not work - if (defined('PHP_OS') && @stristr(PHP_OS, 'AIX') && defined('ICONV_IMPL') && (@strcasecmp(ICONV_IMPL, 'unknown') == 0) && defined('ICONV_VERSION') && (@strcasecmp(ICONV_VERSION, 'unknown') == 0)) { - self::$isIconvEnabled = false; - return false; - } - - // If we reach here no problems were detected with iconv - self::$isIconvEnabled = true; - return true; - } - - public static function buildCharacterSets() - { - if (empty(self::$controlCharacters)) { - self::buildControlCharacters(); - } - if (empty(self::$SYLKCharacters)) { - self::buildSYLKCharacters(); - } - } - - /** - * Convert from OpenXML escaped control character to PHP control character - * - * Excel 2007 team: - * ---------------- - * That's correct, control characters are stored directly in the shared-strings table. - * We do encode characters that cannot be represented in XML using the following escape sequence: - * _xHHHH_ where H represents a hexadecimal character in the character's value... - * So you could end up with something like _x0008_ in a string (either in a cell value (<v>) - * element or in the shared string <t> element. - * - * @param string $value Value to unescape - * @return string - */ - public static function ControlCharacterOOXML2PHP($value = '') - { - return str_replace(array_keys(self::$controlCharacters), array_values(self::$controlCharacters), $value); - } - - /** - * Convert from PHP control character to OpenXML escaped control character - * - * Excel 2007 team: - * ---------------- - * That's correct, control characters are stored directly in the shared-strings table. - * We do encode characters that cannot be represented in XML using the following escape sequence: - * _xHHHH_ where H represents a hexadecimal character in the character's value... - * So you could end up with something like _x0008_ in a string (either in a cell value (<v>) - * element or in the shared string <t> element. - * - * @param string $value Value to escape - * @return string - */ - public static function ControlCharacterPHP2OOXML($value = '') - { - return str_replace(array_values(self::$controlCharacters), array_keys(self::$controlCharacters), $value); - } - - /** - * Try to sanitize UTF8, stripping invalid byte sequences. Not perfect. Does not surrogate characters. - * - * @param string $value - * @return string - */ - public static function SanitizeUTF8($value) - { - if (self::getIsIconvEnabled()) { - $value = @iconv('UTF-8', 'UTF-8', $value); - return $value; - } - - if (self::getIsMbstringEnabled()) { - $value = mb_convert_encoding($value, 'UTF-8', 'UTF-8'); - return $value; - } - - // else, no conversion - return $value; - } - - /** - * Check if a string contains UTF8 data - * - * @param string $value - * @return boolean - */ - public static function IsUTF8($value = '') - { - return $value === '' || preg_match('/^./su', $value) === 1; - } - - /** - * Formats a numeric value as a string for output in various output writers forcing - * point as decimal separator in case locale is other than English. - * - * @param mixed $value - * @return string - */ - public static function FormatNumber($value) - { - if (is_float($value)) { - return str_replace(',', '.', $value); - } - return (string) $value; - } - - /** - * Converts a UTF-8 string into BIFF8 Unicode string data (8-bit string length) - * Writes the string using uncompressed notation, no rich text, no Asian phonetics - * If mbstring extension is not available, ASCII is assumed, and compressed notation is used - * although this will give wrong results for non-ASCII strings - * see OpenOffice.org's Documentation of the Microsoft Excel File Format, sect. 2.5.3 - * - * @param string $value UTF-8 encoded string - * @param mixed[] $arrcRuns Details of rich text runs in $value - * @return string - */ - public static function UTF8toBIFF8UnicodeShort($value, $arrcRuns = array()) - { - // character count - $ln = self::CountCharacters($value, 'UTF-8'); - // option flags - if (empty($arrcRuns)) { - $opt = (self::getIsIconvEnabled() || self::getIsMbstringEnabled()) ? - 0x0001 : 0x0000; - $data = pack('CC', $ln, $opt); - // characters - $data .= self::ConvertEncoding($value, 'UTF-16LE', 'UTF-8'); - } else { - $data = pack('vC', $ln, 0x09); - $data .= pack('v', count($arrcRuns)); - // characters - $data .= self::ConvertEncoding($value, 'UTF-16LE', 'UTF-8'); - foreach ($arrcRuns as $cRun) { - $data .= pack('v', $cRun['strlen']); - $data .= pack('v', $cRun['fontidx']); - } - } - return $data; - } - - /** - * Converts a UTF-8 string into BIFF8 Unicode string data (16-bit string length) - * Writes the string using uncompressed notation, no rich text, no Asian phonetics - * If mbstring extension is not available, ASCII is assumed, and compressed notation is used - * although this will give wrong results for non-ASCII strings - * see OpenOffice.org's Documentation of the Microsoft Excel File Format, sect. 2.5.3 - * - * @param string $value UTF-8 encoded string - * @return string - */ - public static function UTF8toBIFF8UnicodeLong($value) - { - // character count - $ln = self::CountCharacters($value, 'UTF-8'); - - // option flags - $opt = (self::getIsIconvEnabled() || self::getIsMbstringEnabled()) ? - 0x0001 : 0x0000; - - // characters - $chars = self::ConvertEncoding($value, 'UTF-16LE', 'UTF-8'); - - $data = pack('vC', $ln, $opt) . $chars; - return $data; - } - - /** - * Convert string from one encoding to another. First try mbstring, then iconv, finally strlen - * - * @param string $value - * @param string $to Encoding to convert to, e.g. 'UTF-8' - * @param string $from Encoding to convert from, e.g. 'UTF-16LE' - * @return string - */ - public static function ConvertEncoding($value, $to, $from) - { - if (self::getIsIconvEnabled()) { - return iconv($from, $to, $value); - } - - if (self::getIsMbstringEnabled()) { - return mb_convert_encoding($value, $to, $from); - } - - if ($from == 'UTF-16LE') { - return self::utf16_decode($value, false); - } elseif ($from == 'UTF-16BE') { - return self::utf16_decode($value); - } - // else, no conversion - return $value; - } - - /** - * Decode UTF-16 encoded strings. - * - * Can handle both BOM'ed data and un-BOM'ed data. - * Assumes Big-Endian byte order if no BOM is available. - * This function was taken from http://php.net/manual/en/function.utf8-decode.php - * and $bom_be parameter added. - * - * @param string $str UTF-16 encoded data to decode. - * @return string UTF-8 / ISO encoded data. - * @access public - * @version 0.2 / 2010-05-13 - * @author Rasmus Andersson {@link http://rasmusandersson.se/} - * @author vadik56 - */ - public static function utf16_decode($str, $bom_be = true) - { - if (strlen($str) < 2) { - return $str; - } - $c0 = ord($str{0}); - $c1 = ord($str{1}); - if ($c0 == 0xfe && $c1 == 0xff) { - $str = substr($str, 2); - } elseif ($c0 == 0xff && $c1 == 0xfe) { - $str = substr($str, 2); - $bom_be = false; - } - $len = strlen($str); - $newstr = ''; - for ($i=0; $i<$len; $i+=2) { - if ($bom_be) { - $val = ord($str{$i}) << 4; - $val += ord($str{$i+1}); - } else { - $val = ord($str{$i+1}) << 4; - $val += ord($str{$i}); - } - $newstr .= ($val == 0x228) ? "\n" : chr($val); - } - return $newstr; - } - - /** - * Get character count. First try mbstring, then iconv, finally strlen - * - * @param string $value - * @param string $enc Encoding - * @return int Character count - */ - public static function CountCharacters($value, $enc = 'UTF-8') - { - if (self::getIsMbstringEnabled()) { - return mb_strlen($value, $enc); - } - - if (self::getIsIconvEnabled()) { - return iconv_strlen($value, $enc); - } - - // else strlen - return strlen($value); - } - - /** - * Get a substring of a UTF-8 encoded string. First try mbstring, then iconv, finally strlen - * - * @param string $pValue UTF-8 encoded string - * @param int $pStart Start offset - * @param int $pLength Maximum number of characters in substring - * @return string - */ - public static function Substring($pValue = '', $pStart = 0, $pLength = 0) - { - if (self::getIsMbstringEnabled()) { - return mb_substr($pValue, $pStart, $pLength, 'UTF-8'); - } - - if (self::getIsIconvEnabled()) { - return iconv_substr($pValue, $pStart, $pLength, 'UTF-8'); - } - - // else substr - return substr($pValue, $pStart, $pLength); - } - - /** - * Convert a UTF-8 encoded string to upper case - * - * @param string $pValue UTF-8 encoded string - * @return string - */ - public static function StrToUpper($pValue = '') - { - if (function_exists('mb_convert_case')) { - return mb_convert_case($pValue, MB_CASE_UPPER, "UTF-8"); - } - return strtoupper($pValue); - } - - /** - * Convert a UTF-8 encoded string to lower case - * - * @param string $pValue UTF-8 encoded string - * @return string - */ - public static function StrToLower($pValue = '') - { - if (function_exists('mb_convert_case')) { - return mb_convert_case($pValue, MB_CASE_LOWER, "UTF-8"); - } - return strtolower($pValue); - } - - /** - * Convert a UTF-8 encoded string to title/proper case - * (uppercase every first character in each word, lower case all other characters) - * - * @param string $pValue UTF-8 encoded string - * @return string - */ - public static function StrToTitle($pValue = '') - { - if (function_exists('mb_convert_case')) { - return mb_convert_case($pValue, MB_CASE_TITLE, "UTF-8"); - } - return ucwords($pValue); - } - - public static function mb_is_upper($char) - { - return mb_strtolower($char, "UTF-8") != $char; - } - - public static function mb_str_split($string) - { - # Split at all position not after the start: ^ - # and not before the end: $ - return preg_split('/(?<!^)(?!$)/u', $string); - } - - /** - * Reverse the case of a string, so that all uppercase characters become lowercase - * and all lowercase characters become uppercase - * - * @param string $pValue UTF-8 encoded string - * @return string - */ - public static function StrCaseReverse($pValue = '') - { - if (self::getIsMbstringEnabled()) { - $characters = self::mb_str_split($pValue); - foreach ($characters as &$character) { - if (self::mb_is_upper($character)) { - $character = mb_strtolower($character, 'UTF-8'); - } else { - $character = mb_strtoupper($character, 'UTF-8'); - } - } - return implode('', $characters); - } - return strtolower($pValue) ^ strtoupper($pValue) ^ $pValue; - } - - /** - * Identify whether a string contains a fractional numeric value, - * and convert it to a numeric if it is - * - * @param string &$operand string value to test - * @return boolean - */ - public static function convertToNumberIfFraction(&$operand) - { - if (preg_match('/^'.self::STRING_REGEXP_FRACTION.'$/i', $operand, $match)) { - $sign = ($match[1] == '-') ? '-' : '+'; - $fractionFormula = '='.$sign.$match[2].$sign.$match[3]; - $operand = PHPExcel_Calculation::getInstance()->_calculateFormulaValue($fractionFormula); - return true; - } - return false; - } // function convertToNumberIfFraction() - - /** - * Get the decimal separator. If it has not yet been set explicitly, try to obtain number - * formatting information from locale. - * - * @return string - */ - public static function getDecimalSeparator() - { - if (!isset(self::$decimalSeparator)) { - $localeconv = localeconv(); - self::$decimalSeparator = ($localeconv['decimal_point'] != '') - ? $localeconv['decimal_point'] : $localeconv['mon_decimal_point']; - - if (self::$decimalSeparator == '') { - // Default to . - self::$decimalSeparator = '.'; - } - } - return self::$decimalSeparator; - } - - /** - * Set the decimal separator. Only used by PHPExcel_Style_NumberFormat::toFormattedString() - * to format output by PHPExcel_Writer_HTML and PHPExcel_Writer_PDF - * - * @param string $pValue Character for decimal separator - */ - public static function setDecimalSeparator($pValue = '.') - { - self::$decimalSeparator = $pValue; - } - - /** - * Get the thousands separator. If it has not yet been set explicitly, try to obtain number - * formatting information from locale. - * - * @return string - */ - public static function getThousandsSeparator() - { - if (!isset(self::$thousandsSeparator)) { - $localeconv = localeconv(); - self::$thousandsSeparator = ($localeconv['thousands_sep'] != '') - ? $localeconv['thousands_sep'] : $localeconv['mon_thousands_sep']; - - if (self::$thousandsSeparator == '') { - // Default to . - self::$thousandsSeparator = ','; - } - } - return self::$thousandsSeparator; - } - - /** - * Set the thousands separator. Only used by PHPExcel_Style_NumberFormat::toFormattedString() - * to format output by PHPExcel_Writer_HTML and PHPExcel_Writer_PDF - * - * @param string $pValue Character for thousands separator - */ - public static function setThousandsSeparator($pValue = ',') - { - self::$thousandsSeparator = $pValue; - } - - /** - * Get the currency code. If it has not yet been set explicitly, try to obtain the - * symbol information from locale. - * - * @return string - */ - public static function getCurrencyCode() - { - if (!isset(self::$currencyCode)) { - $localeconv = localeconv(); - self::$currencyCode = ($localeconv['currency_symbol'] != '') - ? $localeconv['currency_symbol'] : $localeconv['int_curr_symbol']; - - if (self::$currencyCode == '') { - // Default to $ - self::$currencyCode = '$'; - } - } - return self::$currencyCode; - } - - /** - * Set the currency code. Only used by PHPExcel_Style_NumberFormat::toFormattedString() - * to format output by PHPExcel_Writer_HTML and PHPExcel_Writer_PDF - * - * @param string $pValue Character for currency code - */ - public static function setCurrencyCode($pValue = '$') - { - self::$currencyCode = $pValue; - } - - /** - * Convert SYLK encoded string to UTF-8 - * - * @param string $pValue - * @return string UTF-8 encoded string - */ - public static function SYLKtoUTF8($pValue = '') - { - // If there is no escape character in the string there is nothing to do - if (strpos($pValue, '') === false) { - return $pValue; - } - - foreach (self::$SYLKCharacters as $k => $v) { - $pValue = str_replace($k, $v, $pValue); - } - - return $pValue; - } - - /** - * Retrieve any leading numeric part of a string, or return the full string if no leading numeric - * (handles basic integer or float, but not exponent or non decimal) - * - * @param string $value - * @return mixed string or only the leading numeric part of the string - */ - public static function testStringAsNumeric($value) - { - if (is_numeric($value)) { - return $value; - } - $v = floatval($value); - return (is_numeric(substr($value, 0, strlen($v)))) ? $v : $value; - } -} diff --git a/Utils/PHPExcel/Shared/TimeZone.php b/Utils/PHPExcel/Shared/TimeZone.php deleted file mode 100644 index 73373e0..0000000 --- a/Utils/PHPExcel/Shared/TimeZone.php +++ /dev/null @@ -1,144 +0,0 @@ -<?php - -/** - * PHPExcel - * - * Copyright (c) 2006 - 2015 PHPExcel - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - * - * @category PHPExcel - * @package PHPExcel_Shared - * @copyright Copyright (c) 2006 - 2015 PHPExcel (http://www.codeplex.com/PHPExcel) - * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL - * @version ##VERSION##, ##DATE## - */ - - -/** - * PHPExcel_Shared_TimeZone - * - * @category PHPExcel - * @package PHPExcel_Shared - * @copyright Copyright (c) 2006 - 2015 PHPExcel (http://www.codeplex.com/PHPExcel) - */ -class PHPExcel_Shared_TimeZone -{ - /* - * Default Timezone used for date/time conversions - * - * @private - * @var string - */ - protected static $timezone = 'UTC'; - - /** - * Validate a Timezone name - * - * @param string $timezone Time zone (e.g. 'Europe/London') - * @return boolean Success or failure - */ - public static function _validateTimeZone($timezone) - { - if (in_array($timezone, DateTimeZone::listIdentifiers())) { - return true; - } - return false; - } - - /** - * Set the Default Timezone used for date/time conversions - * - * @param string $timezone Time zone (e.g. 'Europe/London') - * @return boolean Success or failure - */ - public static function setTimeZone($timezone) - { - if (self::_validateTimezone($timezone)) { - self::$timezone = $timezone; - return true; - } - return false; - } - - - /** - * Return the Default Timezone used for date/time conversions - * - * @return string Timezone (e.g. 'Europe/London') - */ - public static function getTimeZone() - { - return self::$timezone; - } - - - /** - * Return the Timezone transition for the specified timezone and timestamp - * - * @param DateTimeZone $objTimezone The timezone for finding the transitions - * @param integer $timestamp PHP date/time value for finding the current transition - * @return array The current transition details - */ - private static function getTimezoneTransitions($objTimezone, $timestamp) - { - $allTransitions = $objTimezone->getTransitions(); - $transitions = array(); - foreach ($allTransitions as $key => $transition) { - if ($transition['ts'] > $timestamp) { - $transitions[] = ($key > 0) ? $allTransitions[$key - 1] : $transition; - break; - } - if (empty($transitions)) { - $transitions[] = end($allTransitions); - } - } - - return $transitions; - } - - /** - * Return the Timezone offset used for date/time conversions to/from UST - * This requires both the timezone and the calculated date/time to allow for local DST - * - * @param string $timezone The timezone for finding the adjustment to UST - * @param integer $timestamp PHP date/time value - * @return integer Number of seconds for timezone adjustment - * @throws PHPExcel_Exception - */ - public static function getTimeZoneAdjustment($timezone, $timestamp) - { - if ($timezone !== null) { - if (!self::_validateTimezone($timezone)) { - throw new PHPExcel_Exception("Invalid timezone " . $timezone); - } - } else { - $timezone = self::$timezone; - } - - if ($timezone == 'UST') { - return 0; - } - - $objTimezone = new DateTimeZone($timezone); - if (version_compare(PHP_VERSION, '5.3.0') >= 0) { - $transitions = $objTimezone->getTransitions($timestamp, $timestamp); - } else { - $transitions = self::getTimezoneTransitions($objTimezone, $timestamp); - } - - return (count($transitions) > 0) ? $transitions[0]['offset'] : 0; - } -} diff --git a/Utils/PHPExcel/Shared/XMLWriter.php b/Utils/PHPExcel/Shared/XMLWriter.php deleted file mode 100644 index 1dc119b..0000000 --- a/Utils/PHPExcel/Shared/XMLWriter.php +++ /dev/null @@ -1,124 +0,0 @@ -<?php - -if (!defined('DATE_W3C')) { - define('DATE_W3C', 'Y-m-d\TH:i:sP'); -} - -if (!defined('DEBUGMODE_ENABLED')) { - define('DEBUGMODE_ENABLED', false); -} - -/** - * PHPExcel_Shared_XMLWriter - * - * Copyright (c) 2006 - 2015 PHPExcel - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - * - * @category PHPExcel - * @package PHPExcel_Shared - * @copyright Copyright (c) 2006 - 2015 PHPExcel (http://www.codeplex.com/PHPExcel) - * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL - * @version ##VERSION##, ##DATE## - */ -class PHPExcel_Shared_XMLWriter extends XMLWriter -{ - /** Temporary storage method */ - const STORAGE_MEMORY = 1; - const STORAGE_DISK = 2; - - /** - * Temporary filename - * - * @var string - */ - private $tempFileName = ''; - - /** - * Create a new PHPExcel_Shared_XMLWriter instance - * - * @param int $pTemporaryStorage Temporary storage location - * @param string $pTemporaryStorageFolder Temporary storage folder - */ - public function __construct($pTemporaryStorage = self::STORAGE_MEMORY, $pTemporaryStorageFolder = null) - { - // Open temporary storage - if ($pTemporaryStorage == self::STORAGE_MEMORY) { - $this->openMemory(); - } else { - // Create temporary filename - if ($pTemporaryStorageFolder === null) { - $pTemporaryStorageFolder = PHPExcel_Shared_File::sys_get_temp_dir(); - } - $this->tempFileName = @tempnam($pTemporaryStorageFolder, 'xml'); - - // Open storage - if ($this->openUri($this->tempFileName) === false) { - // Fallback to memory... - $this->openMemory(); - } - } - - // Set default values - if (DEBUGMODE_ENABLED) { - $this->setIndent(true); - } - } - - /** - * Destructor - */ - public function __destruct() - { - // Unlink temporary files - if ($this->tempFileName != '') { - @unlink($this->tempFileName); - } - } - - /** - * Get written data - * - * @return $data - */ - public function getData() - { - if ($this->tempFileName == '') { - return $this->outputMemory(true); - } else { - $this->flush(); - return file_get_contents($this->tempFileName); - } - } - - /** - * Fallback method for writeRaw, introduced in PHP 5.2 - * - * @param string $text - * @return string - */ - public function writeRawData($text) - { - if (is_array($text)) { - $text = implode("\n", $text); - } - - if (method_exists($this, 'writeRaw')) { - return $this->writeRaw(htmlspecialchars($text)); - } - - return $this->text($text); - } -} diff --git a/Utils/PHPExcel/Shared/ZipArchive.php b/Utils/PHPExcel/Shared/ZipArchive.php deleted file mode 100644 index 9eac8ca..0000000 --- a/Utils/PHPExcel/Shared/ZipArchive.php +++ /dev/null @@ -1,163 +0,0 @@ -<?php - -if (!defined('PCLZIP_TEMPORARY_DIR')) { - define('PCLZIP_TEMPORARY_DIR', PHPExcel_Shared_File::sys_get_temp_dir() . DIRECTORY_SEPARATOR); -} -require_once PHPEXCEL_ROOT . 'PHPExcel/Shared/PCLZip/pclzip.lib.php'; - -/** - * PHPExcel_Shared_ZipArchive - * - * Copyright (c) 2006 - 2015 PHPExcel - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - * - * @category PHPExcel - * @package PHPExcel_Shared_ZipArchive - * @copyright Copyright (c) 2006 - 2015 PHPExcel (http://www.codeplex.com/PHPExcel) - * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL - * @version ##VERSION##, ##DATE## - */ -class PHPExcel_Shared_ZipArchive -{ - - /** constants */ - const OVERWRITE = 'OVERWRITE'; - const CREATE = 'CREATE'; - - - /** - * Temporary storage directory - * - * @var string - */ - private $tempDir; - - /** - * Zip Archive Stream Handle - * - * @var string - */ - private $zip; - - - /** - * Open a new zip archive - * - * @param string $fileName Filename for the zip archive - * @return boolean - */ - public function open($fileName) - { - $this->tempDir = PHPExcel_Shared_File::sys_get_temp_dir(); - $this->zip = new PclZip($fileName); - - return true; - } - - - /** - * Close this zip archive - * - */ - public function close() - { - } - - - /** - * Add a new file to the zip archive from a string of raw data. - * - * @param string $localname Directory/Name of the file to add to the zip archive - * @param string $contents String of data to add to the zip archive - */ - public function addFromString($localname, $contents) - { - $filenameParts = pathinfo($localname); - - $handle = fopen($this->tempDir.'/'.$filenameParts["basename"], "wb"); - fwrite($handle, $contents); - fclose($handle); - - $res = $this->zip->add($this->tempDir.'/'.$filenameParts["basename"], PCLZIP_OPT_REMOVE_PATH, $this->tempDir, PCLZIP_OPT_ADD_PATH, $filenameParts["dirname"]); - if ($res == 0) { - throw new PHPExcel_Writer_Exception("Error zipping files : " . $this->zip->errorInfo(true)); - } - - unlink($this->tempDir.'/'.$filenameParts["basename"]); - } - - /** - * Find if given fileName exist in archive (Emulate ZipArchive locateName()) - * - * @param string $fileName Filename for the file in zip archive - * @return boolean - */ - public function locateName($fileName) - { - $fileName = strtolower($fileName); - - $list = $this->zip->listContent(); - $listCount = count($list); - $index = -1; - for ($i = 0; $i < $listCount; ++$i) { - if (strtolower($list[$i]["filename"]) == $fileName || - strtolower($list[$i]["stored_filename"]) == $fileName) { - $index = $i; - break; - } - } - return ($index > -1) ? $index : false; - } - - /** - * Extract file from archive by given fileName (Emulate ZipArchive getFromName()) - * - * @param string $fileName Filename for the file in zip archive - * @return string $contents File string contents - */ - public function getFromName($fileName) - { - $index = $this->locateName($fileName); - - if ($index !== false) { - $extracted = $this->getFromIndex($index); - } else { - $fileName = substr($fileName, 1); - $index = $this->locateName($fileName); - if ($index === false) { - return false; - } - $extracted = $this->zip->getFromIndex($index); - } - - $contents = $extracted; - if ((is_array($extracted)) && ($extracted != 0)) { - $contents = $extracted[0]["content"]; - } - - return $contents; - } - - public function getFromIndex($index) { - $extracted = $this->zip->extractByIndex($index, PCLZIP_OPT_EXTRACT_AS_STRING); - $contents = ''; - if ((is_array($extracted)) && ($extracted != 0)) { - $contents = $extracted[0]["content"]; - } - - return $contents; - } -} diff --git a/Utils/PHPExcel/Shared/ZipStreamWrapper.php b/Utils/PHPExcel/Shared/ZipStreamWrapper.php deleted file mode 100644 index 2e0324c..0000000 --- a/Utils/PHPExcel/Shared/ZipStreamWrapper.php +++ /dev/null @@ -1,200 +0,0 @@ -<?php - -/** - * PHPExcel_Shared_ZipStreamWrapper - * - * Copyright (c) 2006 - 2015 PHPExcel - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - * - * @category PHPExcel - * @package PHPExcel_Shared - * @copyright Copyright (c) 2006 - 2015 PHPExcel (http://www.codeplex.com/PHPExcel) - * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL - * @version ##VERSION##, ##DATE## - */ -class PHPExcel_Shared_ZipStreamWrapper -{ - /** - * Internal ZipAcrhive - * - * @var ZipArchive - */ - private $archive; - - /** - * Filename in ZipAcrhive - * - * @var string - */ - private $fileNameInArchive = ''; - - /** - * Position in file - * - * @var int - */ - private $position = 0; - - /** - * Data - * - * @var mixed - */ - private $data = ''; - - /** - * Register wrapper - */ - public static function register() - { - @stream_wrapper_unregister('zip'); - @stream_wrapper_register('zip', __CLASS__); - } - - /** - * Implements support for fopen(). - * - * @param string $path resource name including scheme, e.g. - * @param string $mode only "r" is supported - * @param int $options mask of STREAM_REPORT_ERRORS and STREAM_USE_PATH - * @param string &$openedPath absolute path of the opened stream (out parameter) - * @return bool true on success - */ - public function stream_open($path, $mode, $options, &$opened_path) - { - // Check for mode - if ($mode{0} != 'r') { - throw new PHPExcel_Reader_Exception('Mode ' . $mode . ' is not supported. Only read mode is supported.'); - } - - $pos = strrpos($path, '#'); - $url['host'] = substr($path, 6, $pos - 6); // 6: strlen('zip://') - $url['fragment'] = substr($path, $pos + 1); - - // Open archive - $this->archive = new ZipArchive(); - $this->archive->open($url['host']); - - $this->fileNameInArchive = $url['fragment']; - $this->position = 0; - $this->data = $this->archive->getFromName($this->fileNameInArchive); - - return true; - } - - /** - * Implements support for fstat(). - * - * @return boolean - */ - public function statName() - { - return $this->fileNameInArchive; - } - - /** - * Implements support for fstat(). - * - * @return boolean - */ - public function url_stat() - { - return $this->statName($this->fileNameInArchive); - } - - /** - * Implements support for fstat(). - * - * @return boolean - */ - public function stream_stat() - { - return $this->archive->statName($this->fileNameInArchive); - } - - /** - * Implements support for fread(), fgets() etc. - * - * @param int $count maximum number of bytes to read - * @return string - */ - public function stream_read($count) - { - $ret = substr($this->data, $this->position, $count); - $this->position += strlen($ret); - return $ret; - } - - /** - * Returns the position of the file pointer, i.e. its offset into the file - * stream. Implements support for ftell(). - * - * @return int - */ - public function stream_tell() - { - return $this->position; - } - - /** - * EOF stream - * - * @return bool - */ - public function stream_eof() - { - return $this->position >= strlen($this->data); - } - - /** - * Seek stream - * - * @param int $offset byte offset - * @param int $whence SEEK_SET, SEEK_CUR or SEEK_END - * @return bool - */ - public function stream_seek($offset, $whence) - { - switch ($whence) { - case SEEK_SET: - if ($offset < strlen($this->data) && $offset >= 0) { - $this->position = $offset; - return true; - } else { - return false; - } - break; - case SEEK_CUR: - if ($offset >= 0) { - $this->position += $offset; - return true; - } else { - return false; - } - break; - case SEEK_END: - if (strlen($this->data) + $offset >= 0) { - $this->position = strlen($this->data) + $offset; - return true; - } else { - return false; - } - break; - default: - return false; - } - } -} diff --git a/Utils/PHPExcel/Shared/trend/bestFitClass.php b/Utils/PHPExcel/Shared/trend/bestFitClass.php deleted file mode 100644 index 2de029f..0000000 --- a/Utils/PHPExcel/Shared/trend/bestFitClass.php +++ /dev/null @@ -1,425 +0,0 @@ -<?php - -/** - * PHPExcel_Best_Fit - * - * Copyright (c) 2006 - 2015 PHPExcel - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - * - * @category PHPExcel - * @package PHPExcel_Shared_Trend - * @copyright Copyright (c) 2006 - 2015 PHPExcel (http://www.codeplex.com/PHPExcel) - * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL - * @version ##VERSION##, ##DATE## - */ -class PHPExcel_Best_Fit -{ - /** - * Indicator flag for a calculation error - * - * @var boolean - **/ - protected $error = false; - - /** - * Algorithm type to use for best-fit - * - * @var string - **/ - protected $bestFitType = 'undetermined'; - - /** - * Number of entries in the sets of x- and y-value arrays - * - * @var int - **/ - protected $valueCount = 0; - - /** - * X-value dataseries of values - * - * @var float[] - **/ - protected $xValues = array(); - - /** - * Y-value dataseries of values - * - * @var float[] - **/ - protected $yValues = array(); - - /** - * Flag indicating whether values should be adjusted to Y=0 - * - * @var boolean - **/ - protected $adjustToZero = false; - - /** - * Y-value series of best-fit values - * - * @var float[] - **/ - protected $yBestFitValues = array(); - - protected $goodnessOfFit = 1; - - protected $stdevOfResiduals = 0; - - protected $covariance = 0; - - protected $correlation = 0; - - protected $SSRegression = 0; - - protected $SSResiduals = 0; - - protected $DFResiduals = 0; - - protected $f = 0; - - protected $slope = 0; - - protected $slopeSE = 0; - - protected $intersect = 0; - - protected $intersectSE = 0; - - protected $xOffset = 0; - - protected $yOffset = 0; - - - public function getError() - { - return $this->error; - } - - - public function getBestFitType() - { - return $this->bestFitType; - } - - /** - * Return the Y-Value for a specified value of X - * - * @param float $xValue X-Value - * @return float Y-Value - */ - public function getValueOfYForX($xValue) - { - return false; - } - - /** - * Return the X-Value for a specified value of Y - * - * @param float $yValue Y-Value - * @return float X-Value - */ - public function getValueOfXForY($yValue) - { - return false; - } - - /** - * Return the original set of X-Values - * - * @return float[] X-Values - */ - public function getXValues() - { - return $this->xValues; - } - - /** - * Return the Equation of the best-fit line - * - * @param int $dp Number of places of decimal precision to display - * @return string - */ - public function getEquation($dp = 0) - { - return false; - } - - /** - * Return the Slope of the line - * - * @param int $dp Number of places of decimal precision to display - * @return string - */ - public function getSlope($dp = 0) - { - if ($dp != 0) { - return round($this->slope, $dp); - } - return $this->slope; - } - - /** - * Return the standard error of the Slope - * - * @param int $dp Number of places of decimal precision to display - * @return string - */ - public function getSlopeSE($dp = 0) - { - if ($dp != 0) { - return round($this->slopeSE, $dp); - } - return $this->slopeSE; - } - - /** - * Return the Value of X where it intersects Y = 0 - * - * @param int $dp Number of places of decimal precision to display - * @return string - */ - public function getIntersect($dp = 0) - { - if ($dp != 0) { - return round($this->intersect, $dp); - } - return $this->intersect; - } - - /** - * Return the standard error of the Intersect - * - * @param int $dp Number of places of decimal precision to display - * @return string - */ - public function getIntersectSE($dp = 0) - { - if ($dp != 0) { - return round($this->intersectSE, $dp); - } - return $this->intersectSE; - } - - /** - * Return the goodness of fit for this regression - * - * @param int $dp Number of places of decimal precision to return - * @return float - */ - public function getGoodnessOfFit($dp = 0) - { - if ($dp != 0) { - return round($this->goodnessOfFit, $dp); - } - return $this->goodnessOfFit; - } - - public function getGoodnessOfFitPercent($dp = 0) - { - if ($dp != 0) { - return round($this->goodnessOfFit * 100, $dp); - } - return $this->goodnessOfFit * 100; - } - - /** - * Return the standard deviation of the residuals for this regression - * - * @param int $dp Number of places of decimal precision to return - * @return float - */ - public function getStdevOfResiduals($dp = 0) - { - if ($dp != 0) { - return round($this->stdevOfResiduals, $dp); - } - return $this->stdevOfResiduals; - } - - public function getSSRegression($dp = 0) - { - if ($dp != 0) { - return round($this->SSRegression, $dp); - } - return $this->SSRegression; - } - - public function getSSResiduals($dp = 0) - { - if ($dp != 0) { - return round($this->SSResiduals, $dp); - } - return $this->SSResiduals; - } - - public function getDFResiduals($dp = 0) - { - if ($dp != 0) { - return round($this->DFResiduals, $dp); - } - return $this->DFResiduals; - } - - public function getF($dp = 0) - { - if ($dp != 0) { - return round($this->f, $dp); - } - return $this->f; - } - - public function getCovariance($dp = 0) - { - if ($dp != 0) { - return round($this->covariance, $dp); - } - return $this->covariance; - } - - public function getCorrelation($dp = 0) - { - if ($dp != 0) { - return round($this->correlation, $dp); - } - return $this->correlation; - } - - public function getYBestFitValues() - { - return $this->yBestFitValues; - } - - protected function calculateGoodnessOfFit($sumX, $sumY, $sumX2, $sumY2, $sumXY, $meanX, $meanY, $const) - { - $SSres = $SScov = $SScor = $SStot = $SSsex = 0.0; - foreach ($this->xValues as $xKey => $xValue) { - $bestFitY = $this->yBestFitValues[$xKey] = $this->getValueOfYForX($xValue); - - $SSres += ($this->yValues[$xKey] - $bestFitY) * ($this->yValues[$xKey] - $bestFitY); - if ($const) { - $SStot += ($this->yValues[$xKey] - $meanY) * ($this->yValues[$xKey] - $meanY); - } else { - $SStot += $this->yValues[$xKey] * $this->yValues[$xKey]; - } - $SScov += ($this->xValues[$xKey] - $meanX) * ($this->yValues[$xKey] - $meanY); - if ($const) { - $SSsex += ($this->xValues[$xKey] - $meanX) * ($this->xValues[$xKey] - $meanX); - } else { - $SSsex += $this->xValues[$xKey] * $this->xValues[$xKey]; - } - } - - $this->SSResiduals = $SSres; - $this->DFResiduals = $this->valueCount - 1 - $const; - - if ($this->DFResiduals == 0.0) { - $this->stdevOfResiduals = 0.0; - } else { - $this->stdevOfResiduals = sqrt($SSres / $this->DFResiduals); - } - if (($SStot == 0.0) || ($SSres == $SStot)) { - $this->goodnessOfFit = 1; - } else { - $this->goodnessOfFit = 1 - ($SSres / $SStot); - } - - $this->SSRegression = $this->goodnessOfFit * $SStot; - $this->covariance = $SScov / $this->valueCount; - $this->correlation = ($this->valueCount * $sumXY - $sumX * $sumY) / sqrt(($this->valueCount * $sumX2 - pow($sumX, 2)) * ($this->valueCount * $sumY2 - pow($sumY, 2))); - $this->slopeSE = $this->stdevOfResiduals / sqrt($SSsex); - $this->intersectSE = $this->stdevOfResiduals * sqrt(1 / ($this->valueCount - ($sumX * $sumX) / $sumX2)); - if ($this->SSResiduals != 0.0) { - if ($this->DFResiduals == 0.0) { - $this->f = 0.0; - } else { - $this->f = $this->SSRegression / ($this->SSResiduals / $this->DFResiduals); - } - } else { - if ($this->DFResiduals == 0.0) { - $this->f = 0.0; - } else { - $this->f = $this->SSRegression / $this->DFResiduals; - } - } - } - - protected function leastSquareFit($yValues, $xValues, $const) - { - // calculate sums - $x_sum = array_sum($xValues); - $y_sum = array_sum($yValues); - $meanX = $x_sum / $this->valueCount; - $meanY = $y_sum / $this->valueCount; - $mBase = $mDivisor = $xx_sum = $xy_sum = $yy_sum = 0.0; - for ($i = 0; $i < $this->valueCount; ++$i) { - $xy_sum += $xValues[$i] * $yValues[$i]; - $xx_sum += $xValues[$i] * $xValues[$i]; - $yy_sum += $yValues[$i] * $yValues[$i]; - - if ($const) { - $mBase += ($xValues[$i] - $meanX) * ($yValues[$i] - $meanY); - $mDivisor += ($xValues[$i] - $meanX) * ($xValues[$i] - $meanX); - } else { - $mBase += $xValues[$i] * $yValues[$i]; - $mDivisor += $xValues[$i] * $xValues[$i]; - } - } - - // calculate slope -// $this->slope = (($this->valueCount * $xy_sum) - ($x_sum * $y_sum)) / (($this->valueCount * $xx_sum) - ($x_sum * $x_sum)); - $this->slope = $mBase / $mDivisor; - - // calculate intersect -// $this->intersect = ($y_sum - ($this->slope * $x_sum)) / $this->valueCount; - if ($const) { - $this->intersect = $meanY - ($this->slope * $meanX); - } else { - $this->intersect = 0; - } - - $this->calculateGoodnessOfFit($x_sum, $y_sum, $xx_sum, $yy_sum, $xy_sum, $meanX, $meanY, $const); - } - - /** - * Define the regression - * - * @param float[] $yValues The set of Y-values for this regression - * @param float[] $xValues The set of X-values for this regression - * @param boolean $const - */ - public function __construct($yValues, $xValues = array(), $const = true) - { - // Calculate number of points - $nY = count($yValues); - $nX = count($xValues); - - // Define X Values if necessary - if ($nX == 0) { - $xValues = range(1, $nY); - $nX = $nY; - } elseif ($nY != $nX) { - // Ensure both arrays of points are the same size - $this->error = true; - return false; - } - - $this->valueCount = $nY; - $this->xValues = $xValues; - $this->yValues = $yValues; - } -} diff --git a/Utils/PHPExcel/Shared/trend/exponentialBestFitClass.php b/Utils/PHPExcel/Shared/trend/exponentialBestFitClass.php deleted file mode 100644 index 4448735..0000000 --- a/Utils/PHPExcel/Shared/trend/exponentialBestFitClass.php +++ /dev/null @@ -1,138 +0,0 @@ -<?php - -require_once(PHPEXCEL_ROOT . 'PHPExcel/Shared/trend/bestFitClass.php'); - -/** - * PHPExcel_Exponential_Best_Fit - * - * Copyright (c) 2006 - 2015 PHPExcel - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - * - * @category PHPExcel - * @package PHPExcel_Shared_Trend - * @copyright Copyright (c) 2006 - 2015 PHPExcel (http://www.codeplex.com/PHPExcel) - * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL - * @version ##VERSION##, ##DATE## - */ -class PHPExcel_Exponential_Best_Fit extends PHPExcel_Best_Fit -{ - /** - * Algorithm type to use for best-fit - * (Name of this trend class) - * - * @var string - **/ - protected $bestFitType = 'exponential'; - - /** - * Return the Y-Value for a specified value of X - * - * @param float $xValue X-Value - * @return float Y-Value - **/ - public function getValueOfYForX($xValue) - { - return $this->getIntersect() * pow($this->getSlope(), ($xValue - $this->xOffset)); - } - - /** - * Return the X-Value for a specified value of Y - * - * @param float $yValue Y-Value - * @return float X-Value - **/ - public function getValueOfXForY($yValue) - { - return log(($yValue + $this->yOffset) / $this->getIntersect()) / log($this->getSlope()); - } - - /** - * Return the Equation of the best-fit line - * - * @param int $dp Number of places of decimal precision to display - * @return string - **/ - public function getEquation($dp = 0) - { - $slope = $this->getSlope($dp); - $intersect = $this->getIntersect($dp); - - return 'Y = ' . $intersect . ' * ' . $slope . '^X'; - } - - /** - * Return the Slope of the line - * - * @param int $dp Number of places of decimal precision to display - * @return string - **/ - public function getSlope($dp = 0) - { - if ($dp != 0) { - return round(exp($this->_slope), $dp); - } - return exp($this->_slope); - } - - /** - * Return the Value of X where it intersects Y = 0 - * - * @param int $dp Number of places of decimal precision to display - * @return string - **/ - public function getIntersect($dp = 0) - { - if ($dp != 0) { - return round(exp($this->intersect), $dp); - } - return exp($this->intersect); - } - - /** - * Execute the regression and calculate the goodness of fit for a set of X and Y data values - * - * @param float[] $yValues The set of Y-values for this regression - * @param float[] $xValues The set of X-values for this regression - * @param boolean $const - */ - private function exponentialRegression($yValues, $xValues, $const) - { - foreach ($yValues as &$value) { - if ($value < 0.0) { - $value = 0 - log(abs($value)); - } elseif ($value > 0.0) { - $value = log($value); - } - } - unset($value); - - $this->leastSquareFit($yValues, $xValues, $const); - } - - /** - * Define the regression and calculate the goodness of fit for a set of X and Y data values - * - * @param float[] $yValues The set of Y-values for this regression - * @param float[] $xValues The set of X-values for this regression - * @param boolean $const - */ - public function __construct($yValues, $xValues = array(), $const = true) - { - if (parent::__construct($yValues, $xValues) !== false) { - $this->exponentialRegression($yValues, $xValues, $const); - } - } -} diff --git a/Utils/PHPExcel/Shared/trend/linearBestFitClass.php b/Utils/PHPExcel/Shared/trend/linearBestFitClass.php deleted file mode 100644 index 76b55b3..0000000 --- a/Utils/PHPExcel/Shared/trend/linearBestFitClass.php +++ /dev/null @@ -1,102 +0,0 @@ -<?php - -require_once(PHPEXCEL_ROOT . 'PHPExcel/Shared/trend/bestFitClass.php'); - -/** - * PHPExcel_Linear_Best_Fit - * - * Copyright (c) 2006 - 2015 PHPExcel - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - * - * @category PHPExcel - * @package PHPExcel_Shared_Trend - * @copyright Copyright (c) 2006 - 2015 PHPExcel (http://www.codeplex.com/PHPExcel) - * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL - * @version ##VERSION##, ##DATE## - */ -class PHPExcel_Linear_Best_Fit extends PHPExcel_Best_Fit -{ - /** - * Algorithm type to use for best-fit - * (Name of this trend class) - * - * @var string - **/ - protected $bestFitType = 'linear'; - - /** - * Return the Y-Value for a specified value of X - * - * @param float $xValue X-Value - * @return float Y-Value - **/ - public function getValueOfYForX($xValue) - { - return $this->getIntersect() + $this->getSlope() * $xValue; - } - - /** - * Return the X-Value for a specified value of Y - * - * @param float $yValue Y-Value - * @return float X-Value - **/ - public function getValueOfXForY($yValue) - { - return ($yValue - $this->getIntersect()) / $this->getSlope(); - } - - - /** - * Return the Equation of the best-fit line - * - * @param int $dp Number of places of decimal precision to display - * @return string - **/ - public function getEquation($dp = 0) - { - $slope = $this->getSlope($dp); - $intersect = $this->getIntersect($dp); - - return 'Y = ' . $intersect . ' + ' . $slope . ' * X'; - } - - /** - * Execute the regression and calculate the goodness of fit for a set of X and Y data values - * - * @param float[] $yValues The set of Y-values for this regression - * @param float[] $xValues The set of X-values for this regression - * @param boolean $const - */ - private function linearRegression($yValues, $xValues, $const) - { - $this->leastSquareFit($yValues, $xValues, $const); - } - - /** - * Define the regression and calculate the goodness of fit for a set of X and Y data values - * - * @param float[] $yValues The set of Y-values for this regression - * @param float[] $xValues The set of X-values for this regression - * @param boolean $const - */ - public function __construct($yValues, $xValues = array(), $const = true) - { - if (parent::__construct($yValues, $xValues) !== false) { - $this->linearRegression($yValues, $xValues, $const); - } - } -} diff --git a/Utils/PHPExcel/Shared/trend/logarithmicBestFitClass.php b/Utils/PHPExcel/Shared/trend/logarithmicBestFitClass.php deleted file mode 100644 index 221c538..0000000 --- a/Utils/PHPExcel/Shared/trend/logarithmicBestFitClass.php +++ /dev/null @@ -1,110 +0,0 @@ -<?php - -require_once(PHPEXCEL_ROOT . 'PHPExcel/Shared/trend/bestFitClass.php'); - -/** - * PHPExcel_Logarithmic_Best_Fit - * - * Copyright (c) 2006 - 2015 PHPExcel - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - * - * @category PHPExcel - * @package PHPExcel_Shared_Trend - * @copyright Copyright (c) 2006 - 2015 PHPExcel (http://www.codeplex.com/PHPExcel) - * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL - * @version ##VERSION##, ##DATE## - */ -class PHPExcel_Logarithmic_Best_Fit extends PHPExcel_Best_Fit -{ - /** - * Algorithm type to use for best-fit - * (Name of this trend class) - * - * @var string - **/ - protected $bestFitType = 'logarithmic'; - - /** - * Return the Y-Value for a specified value of X - * - * @param float $xValue X-Value - * @return float Y-Value - **/ - public function getValueOfYForX($xValue) - { - return $this->getIntersect() + $this->getSlope() * log($xValue - $this->xOffset); - } - - /** - * Return the X-Value for a specified value of Y - * - * @param float $yValue Y-Value - * @return float X-Value - **/ - public function getValueOfXForY($yValue) - { - return exp(($yValue - $this->getIntersect()) / $this->getSlope()); - } - - /** - * Return the Equation of the best-fit line - * - * @param int $dp Number of places of decimal precision to display - * @return string - **/ - public function getEquation($dp = 0) - { - $slope = $this->getSlope($dp); - $intersect = $this->getIntersect($dp); - - return 'Y = '.$intersect.' + '.$slope.' * log(X)'; - } - - /** - * Execute the regression and calculate the goodness of fit for a set of X and Y data values - * - * @param float[] $yValues The set of Y-values for this regression - * @param float[] $xValues The set of X-values for this regression - * @param boolean $const - */ - private function logarithmicRegression($yValues, $xValues, $const) - { - foreach ($xValues as &$value) { - if ($value < 0.0) { - $value = 0 - log(abs($value)); - } elseif ($value > 0.0) { - $value = log($value); - } - } - unset($value); - - $this->leastSquareFit($yValues, $xValues, $const); - } - - /** - * Define the regression and calculate the goodness of fit for a set of X and Y data values - * - * @param float[] $yValues The set of Y-values for this regression - * @param float[] $xValues The set of X-values for this regression - * @param boolean $const - */ - public function __construct($yValues, $xValues = array(), $const = true) - { - if (parent::__construct($yValues, $xValues) !== false) { - $this->logarithmicRegression($yValues, $xValues, $const); - } - } -} diff --git a/Utils/PHPExcel/Shared/trend/polynomialBestFitClass.php b/Utils/PHPExcel/Shared/trend/polynomialBestFitClass.php deleted file mode 100644 index 8a882b7..0000000 --- a/Utils/PHPExcel/Shared/trend/polynomialBestFitClass.php +++ /dev/null @@ -1,222 +0,0 @@ -<?php - -require_once PHPEXCEL_ROOT . 'PHPExcel/Shared/trend/bestFitClass.php'; -require_once PHPEXCEL_ROOT . 'PHPExcel/Shared/JAMA/Matrix.php'; - -/** - * PHPExcel_Polynomial_Best_Fit - * - * Copyright (c) 2006 - 2015 PHPExcel - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - * - * @category PHPExcel - * @package PHPExcel_Shared_Trend - * @copyright Copyright (c) 2006 - 2015 PHPExcel (http://www.codeplex.com/PHPExcel) - * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL - * @version ##VERSION##, ##DATE## - */ -class PHPExcel_Polynomial_Best_Fit extends PHPExcel_Best_Fit -{ - /** - * Algorithm type to use for best-fit - * (Name of this trend class) - * - * @var string - **/ - protected $bestFitType = 'polynomial'; - - /** - * Polynomial order - * - * @protected - * @var int - **/ - protected $order = 0; - - - /** - * Return the order of this polynomial - * - * @return int - **/ - public function getOrder() - { - return $this->order; - } - - - /** - * Return the Y-Value for a specified value of X - * - * @param float $xValue X-Value - * @return float Y-Value - **/ - public function getValueOfYForX($xValue) - { - $retVal = $this->getIntersect(); - $slope = $this->getSlope(); - foreach ($slope as $key => $value) { - if ($value != 0.0) { - $retVal += $value * pow($xValue, $key + 1); - } - } - return $retVal; - } - - - /** - * Return the X-Value for a specified value of Y - * - * @param float $yValue Y-Value - * @return float X-Value - **/ - public function getValueOfXForY($yValue) - { - return ($yValue - $this->getIntersect()) / $this->getSlope(); - } - - - /** - * Return the Equation of the best-fit line - * - * @param int $dp Number of places of decimal precision to display - * @return string - **/ - public function getEquation($dp = 0) - { - $slope = $this->getSlope($dp); - $intersect = $this->getIntersect($dp); - - $equation = 'Y = ' . $intersect; - foreach ($slope as $key => $value) { - if ($value != 0.0) { - $equation .= ' + ' . $value . ' * X'; - if ($key > 0) { - $equation .= '^' . ($key + 1); - } - } - } - return $equation; - } - - - /** - * Return the Slope of the line - * - * @param int $dp Number of places of decimal precision to display - * @return string - **/ - public function getSlope($dp = 0) - { - if ($dp != 0) { - $coefficients = array(); - foreach ($this->_slope as $coefficient) { - $coefficients[] = round($coefficient, $dp); - } - return $coefficients; - } - return $this->_slope; - } - - - public function getCoefficients($dp = 0) - { - return array_merge(array($this->getIntersect($dp)), $this->getSlope($dp)); - } - - - /** - * Execute the regression and calculate the goodness of fit for a set of X and Y data values - * - * @param int $order Order of Polynomial for this regression - * @param float[] $yValues The set of Y-values for this regression - * @param float[] $xValues The set of X-values for this regression - * @param boolean $const - */ - private function polynomialRegression($order, $yValues, $xValues, $const) - { - // calculate sums - $x_sum = array_sum($xValues); - $y_sum = array_sum($yValues); - $xx_sum = $xy_sum = 0; - for ($i = 0; $i < $this->valueCount; ++$i) { - $xy_sum += $xValues[$i] * $yValues[$i]; - $xx_sum += $xValues[$i] * $xValues[$i]; - $yy_sum += $yValues[$i] * $yValues[$i]; - } - /* - * This routine uses logic from the PHP port of polyfit version 0.1 - * written by Michael Bommarito and Paul Meagher - * - * The function fits a polynomial function of order $order through - * a series of x-y data points using least squares. - * - */ - for ($i = 0; $i < $this->valueCount; ++$i) { - for ($j = 0; $j <= $order; ++$j) { - $A[$i][$j] = pow($xValues[$i], $j); - } - } - for ($i=0; $i < $this->valueCount; ++$i) { - $B[$i] = array($yValues[$i]); - } - $matrixA = new Matrix($A); - $matrixB = new Matrix($B); - $C = $matrixA->solve($matrixB); - - $coefficients = array(); - for ($i = 0; $i < $C->m; ++$i) { - $r = $C->get($i, 0); - if (abs($r) <= pow(10, -9)) { - $r = 0; - } - $coefficients[] = $r; - } - - $this->intersect = array_shift($coefficients); - $this->_slope = $coefficients; - - $this->calculateGoodnessOfFit($x_sum, $y_sum, $xx_sum, $yy_sum, $xy_sum); - foreach ($this->xValues as $xKey => $xValue) { - $this->yBestFitValues[$xKey] = $this->getValueOfYForX($xValue); - } - } - - - /** - * Define the regression and calculate the goodness of fit for a set of X and Y data values - * - * @param int $order Order of Polynomial for this regression - * @param float[] $yValues The set of Y-values for this regression - * @param float[] $xValues The set of X-values for this regression - * @param boolean $const - */ - public function __construct($order, $yValues, $xValues = array(), $const = true) - { - if (parent::__construct($yValues, $xValues) !== false) { - if ($order < $this->valueCount) { - $this->bestFitType .= '_'.$order; - $this->order = $order; - $this->polynomialRegression($order, $yValues, $xValues, $const); - if (($this->getGoodnessOfFit() < 0.0) || ($this->getGoodnessOfFit() > 1.0)) { - $this->_error = true; - } - } else { - $this->_error = true; - } - } - } -} diff --git a/Utils/PHPExcel/Shared/trend/powerBestFitClass.php b/Utils/PHPExcel/Shared/trend/powerBestFitClass.php deleted file mode 100644 index 77c4734..0000000 --- a/Utils/PHPExcel/Shared/trend/powerBestFitClass.php +++ /dev/null @@ -1,138 +0,0 @@ -<?php - -require_once PHPEXCEL_ROOT . 'PHPExcel/Shared/trend/bestFitClass.php'; - -/** - * PHPExcel_Power_Best_Fit - * - * Copyright (c) 2006 - 2015 PHPExcel - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - * - * @category PHPExcel - * @package PHPExcel_Shared_Trend - * @copyright Copyright (c) 2006 - 2015 PHPExcel (http://www.codeplex.com/PHPExcel) - * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL - * @version ##VERSION##, ##DATE## - */ -class PHPExcel_Power_Best_Fit extends PHPExcel_Best_Fit -{ - /** - * Algorithm type to use for best-fit - * (Name of this trend class) - * - * @var string - **/ - protected $bestFitType = 'power'; - - - /** - * Return the Y-Value for a specified value of X - * - * @param float $xValue X-Value - * @return float Y-Value - **/ - public function getValueOfYForX($xValue) - { - return $this->getIntersect() * pow(($xValue - $this->xOffset), $this->getSlope()); - } - - - /** - * Return the X-Value for a specified value of Y - * - * @param float $yValue Y-Value - * @return float X-Value - **/ - public function getValueOfXForY($yValue) - { - return pow((($yValue + $this->yOffset) / $this->getIntersect()), (1 / $this->getSlope())); - } - - - /** - * Return the Equation of the best-fit line - * - * @param int $dp Number of places of decimal precision to display - * @return string - **/ - public function getEquation($dp = 0) - { - $slope = $this->getSlope($dp); - $intersect = $this->getIntersect($dp); - - return 'Y = ' . $intersect . ' * X^' . $slope; - } - - - /** - * Return the Value of X where it intersects Y = 0 - * - * @param int $dp Number of places of decimal precision to display - * @return string - **/ - public function getIntersect($dp = 0) - { - if ($dp != 0) { - return round(exp($this->intersect), $dp); - } - return exp($this->intersect); - } - - - /** - * Execute the regression and calculate the goodness of fit for a set of X and Y data values - * - * @param float[] $yValues The set of Y-values for this regression - * @param float[] $xValues The set of X-values for this regression - * @param boolean $const - */ - private function powerRegression($yValues, $xValues, $const) - { - foreach ($xValues as &$value) { - if ($value < 0.0) { - $value = 0 - log(abs($value)); - } elseif ($value > 0.0) { - $value = log($value); - } - } - unset($value); - foreach ($yValues as &$value) { - if ($value < 0.0) { - $value = 0 - log(abs($value)); - } elseif ($value > 0.0) { - $value = log($value); - } - } - unset($value); - - $this->leastSquareFit($yValues, $xValues, $const); - } - - - /** - * Define the regression and calculate the goodness of fit for a set of X and Y data values - * - * @param float[] $yValues The set of Y-values for this regression - * @param float[] $xValues The set of X-values for this regression - * @param boolean $const - */ - public function __construct($yValues, $xValues = array(), $const = true) - { - if (parent::__construct($yValues, $xValues) !== false) { - $this->powerRegression($yValues, $xValues, $const); - } - } -} diff --git a/Utils/PHPExcel/Shared/trend/trendClass.php b/Utils/PHPExcel/Shared/trend/trendClass.php deleted file mode 100644 index 715cd41..0000000 --- a/Utils/PHPExcel/Shared/trend/trendClass.php +++ /dev/null @@ -1,147 +0,0 @@ -<?php - -require_once PHPEXCEL_ROOT . 'PHPExcel/Shared/trend/linearBestFitClass.php'; -require_once PHPEXCEL_ROOT . 'PHPExcel/Shared/trend/logarithmicBestFitClass.php'; -require_once PHPEXCEL_ROOT . 'PHPExcel/Shared/trend/exponentialBestFitClass.php'; -require_once PHPEXCEL_ROOT . 'PHPExcel/Shared/trend/powerBestFitClass.php'; -require_once PHPEXCEL_ROOT . 'PHPExcel/Shared/trend/polynomialBestFitClass.php'; - -/** - * PHPExcel_trendClass - * - * Copyright (c) 2006 - 2015 PHPExcel - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - * - * @category PHPExcel - * @package PHPExcel_Shared_Trend - * @copyright Copyright (c) 2006 - 2015 PHPExcel (http://www.codeplex.com/PHPExcel) - * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL - * @version ##VERSION##, ##DATE## - */ -class trendClass -{ - const TREND_LINEAR = 'Linear'; - const TREND_LOGARITHMIC = 'Logarithmic'; - const TREND_EXPONENTIAL = 'Exponential'; - const TREND_POWER = 'Power'; - const TREND_POLYNOMIAL_2 = 'Polynomial_2'; - const TREND_POLYNOMIAL_3 = 'Polynomial_3'; - const TREND_POLYNOMIAL_4 = 'Polynomial_4'; - const TREND_POLYNOMIAL_5 = 'Polynomial_5'; - const TREND_POLYNOMIAL_6 = 'Polynomial_6'; - const TREND_BEST_FIT = 'Bestfit'; - const TREND_BEST_FIT_NO_POLY = 'Bestfit_no_Polynomials'; - - /** - * Names of the best-fit trend analysis methods - * - * @var string[] - **/ - private static $trendTypes = array( - self::TREND_LINEAR, - self::TREND_LOGARITHMIC, - self::TREND_EXPONENTIAL, - self::TREND_POWER - ); - - /** - * Names of the best-fit trend polynomial orders - * - * @var string[] - **/ - private static $trendTypePolynomialOrders = array( - self::TREND_POLYNOMIAL_2, - self::TREND_POLYNOMIAL_3, - self::TREND_POLYNOMIAL_4, - self::TREND_POLYNOMIAL_5, - self::TREND_POLYNOMIAL_6 - ); - - /** - * Cached results for each method when trying to identify which provides the best fit - * - * @var PHPExcel_Best_Fit[] - **/ - private static $trendCache = array(); - - - public static function calculate($trendType = self::TREND_BEST_FIT, $yValues, $xValues = array(), $const = true) - { - // Calculate number of points in each dataset - $nY = count($yValues); - $nX = count($xValues); - - // Define X Values if necessary - if ($nX == 0) { - $xValues = range(1, $nY); - $nX = $nY; - } elseif ($nY != $nX) { - // Ensure both arrays of points are the same size - trigger_error("trend(): Number of elements in coordinate arrays do not match.", E_USER_ERROR); - } - - $key = md5($trendType.$const.serialize($yValues).serialize($xValues)); - // Determine which trend method has been requested - switch ($trendType) { - // Instantiate and return the class for the requested trend method - case self::TREND_LINEAR: - case self::TREND_LOGARITHMIC: - case self::TREND_EXPONENTIAL: - case self::TREND_POWER: - if (!isset(self::$trendCache[$key])) { - $className = 'PHPExcel_'.$trendType.'_Best_Fit'; - self::$trendCache[$key] = new $className($yValues, $xValues, $const); - } - return self::$trendCache[$key]; - case self::TREND_POLYNOMIAL_2: - case self::TREND_POLYNOMIAL_3: - case self::TREND_POLYNOMIAL_4: - case self::TREND_POLYNOMIAL_5: - case self::TREND_POLYNOMIAL_6: - if (!isset(self::$trendCache[$key])) { - $order = substr($trendType, -1); - self::$trendCache[$key] = new PHPExcel_Polynomial_Best_Fit($order, $yValues, $xValues, $const); - } - return self::$trendCache[$key]; - case self::TREND_BEST_FIT: - case self::TREND_BEST_FIT_NO_POLY: - // If the request is to determine the best fit regression, then we test each trend line in turn - // Start by generating an instance of each available trend method - foreach (self::$trendTypes as $trendMethod) { - $className = 'PHPExcel_'.$trendMethod.'BestFit'; - $bestFit[$trendMethod] = new $className($yValues, $xValues, $const); - $bestFitValue[$trendMethod] = $bestFit[$trendMethod]->getGoodnessOfFit(); - } - if ($trendType != self::TREND_BEST_FIT_NO_POLY) { - foreach (self::$trendTypePolynomialOrders as $trendMethod) { - $order = substr($trendMethod, -1); - $bestFit[$trendMethod] = new PHPExcel_Polynomial_Best_Fit($order, $yValues, $xValues, $const); - if ($bestFit[$trendMethod]->getError()) { - unset($bestFit[$trendMethod]); - } else { - $bestFitValue[$trendMethod] = $bestFit[$trendMethod]->getGoodnessOfFit(); - } - } - } - // Determine which of our trend lines is the best fit, and then we return the instance of that trend class - arsort($bestFitValue); - $bestFitType = key($bestFitValue); - return $bestFit[$bestFitType]; - default: - return false; - } - } -} diff --git a/Utils/PHPExcel/Style.php b/Utils/PHPExcel/Style.php deleted file mode 100644 index 6b952ef..0000000 --- a/Utils/PHPExcel/Style.php +++ /dev/null @@ -1,644 +0,0 @@ -<?php - -/** - * PHPExcel_Style - * - * Copyright (c) 2006 - 2015 PHPExcel - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - * - * @category PHPExcel - * @package PHPExcel_Style - * @copyright Copyright (c) 2006 - 2015 PHPExcel (http://www.codeplex.com/PHPExcel) - * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL - * @version ##VERSION##, ##DATE## - */ -class PHPExcel_Style extends PHPExcel_Style_Supervisor implements PHPExcel_IComparable -{ - /** - * Font - * - * @var PHPExcel_Style_Font - */ - protected $font; - - /** - * Fill - * - * @var PHPExcel_Style_Fill - */ - protected $fill; - - /** - * Borders - * - * @var PHPExcel_Style_Borders - */ - protected $borders; - - /** - * Alignment - * - * @var PHPExcel_Style_Alignment - */ - protected $alignment; - - /** - * Number Format - * - * @var PHPExcel_Style_NumberFormat - */ - protected $numberFormat; - - /** - * Conditional styles - * - * @var PHPExcel_Style_Conditional[] - */ - protected $conditionalStyles; - - /** - * Protection - * - * @var PHPExcel_Style_Protection - */ - protected $protection; - - /** - * Index of style in collection. Only used for real style. - * - * @var int - */ - protected $index; - - /** - * Use Quote Prefix when displaying in cell editor. Only used for real style. - * - * @var boolean - */ - protected $quotePrefix = false; - - /** - * Create a new PHPExcel_Style - * - * @param boolean $isSupervisor Flag indicating if this is a supervisor or not - * Leave this value at default unless you understand exactly what - * its ramifications are - * @param boolean $isConditional Flag indicating if this is a conditional style or not - * Leave this value at default unless you understand exactly what - * its ramifications are - */ - public function __construct($isSupervisor = false, $isConditional = false) - { - // Supervisor? - $this->isSupervisor = $isSupervisor; - - // Initialise values - $this->conditionalStyles = array(); - $this->font = new PHPExcel_Style_Font($isSupervisor, $isConditional); - $this->fill = new PHPExcel_Style_Fill($isSupervisor, $isConditional); - $this->borders = new PHPExcel_Style_Borders($isSupervisor, $isConditional); - $this->alignment = new PHPExcel_Style_Alignment($isSupervisor, $isConditional); - $this->numberFormat = new PHPExcel_Style_NumberFormat($isSupervisor, $isConditional); - $this->protection = new PHPExcel_Style_Protection($isSupervisor, $isConditional); - - // bind parent if we are a supervisor - if ($isSupervisor) { - $this->font->bindParent($this); - $this->fill->bindParent($this); - $this->borders->bindParent($this); - $this->alignment->bindParent($this); - $this->numberFormat->bindParent($this); - $this->protection->bindParent($this); - } - } - - /** - * Get the shared style component for the currently active cell in currently active sheet. - * Only used for style supervisor - * - * @return PHPExcel_Style - */ - public function getSharedComponent() - { - $activeSheet = $this->getActiveSheet(); - $selectedCell = $this->getActiveCell(); // e.g. 'A1' - - if ($activeSheet->cellExists($selectedCell)) { - $xfIndex = $activeSheet->getCell($selectedCell)->getXfIndex(); - } else { - $xfIndex = 0; - } - - return $this->parent->getCellXfByIndex($xfIndex); - } - - /** - * Get parent. Only used for style supervisor - * - * @return PHPExcel - */ - public function getParent() - { - return $this->parent; - } - - /** - * Build style array from subcomponents - * - * @param array $array - * @return array - */ - public function getStyleArray($array) - { - return array('quotePrefix' => $array); - } - - /** - * Apply styles from array - * - * <code> - * $objPHPExcel->getActiveSheet()->getStyle('B2')->applyFromArray( - * array( - * 'font' => array( - * 'name' => 'Arial', - * 'bold' => true, - * 'italic' => false, - * 'underline' => PHPExcel_Style_Font::UNDERLINE_DOUBLE, - * 'strike' => false, - * 'color' => array( - * 'rgb' => '808080' - * ) - * ), - * 'borders' => array( - * 'bottom' => array( - * 'style' => PHPExcel_Style_Border::BORDER_DASHDOT, - * 'color' => array( - * 'rgb' => '808080' - * ) - * ), - * 'top' => array( - * 'style' => PHPExcel_Style_Border::BORDER_DASHDOT, - * 'color' => array( - * 'rgb' => '808080' - * ) - * ) - * ), - * 'quotePrefix' => true - * ) - * ); - * </code> - * - * @param array $pStyles Array containing style information - * @param boolean $pAdvanced Advanced mode for setting borders. - * @throws PHPExcel_Exception - * @return PHPExcel_Style - */ - public function applyFromArray($pStyles = null, $pAdvanced = true) - { - if (is_array($pStyles)) { - if ($this->isSupervisor) { - $pRange = $this->getSelectedCells(); - - // Uppercase coordinate - $pRange = strtoupper($pRange); - - // Is it a cell range or a single cell? - if (strpos($pRange, ':') === false) { - $rangeA = $pRange; - $rangeB = $pRange; - } else { - list($rangeA, $rangeB) = explode(':', $pRange); - } - - // Calculate range outer borders - $rangeStart = PHPExcel_Cell::coordinateFromString($rangeA); - $rangeEnd = PHPExcel_Cell::coordinateFromString($rangeB); - - // Translate column into index - $rangeStart[0] = PHPExcel_Cell::columnIndexFromString($rangeStart[0]) - 1; - $rangeEnd[0] = PHPExcel_Cell::columnIndexFromString($rangeEnd[0]) - 1; - - // Make sure we can loop upwards on rows and columns - if ($rangeStart[0] > $rangeEnd[0] && $rangeStart[1] > $rangeEnd[1]) { - $tmp = $rangeStart; - $rangeStart = $rangeEnd; - $rangeEnd = $tmp; - } - - // ADVANCED MODE: - if ($pAdvanced && isset($pStyles['borders'])) { - // 'allborders' is a shorthand property for 'outline' and 'inside' and - // it applies to components that have not been set explicitly - if (isset($pStyles['borders']['allborders'])) { - foreach (array('outline', 'inside') as $component) { - if (!isset($pStyles['borders'][$component])) { - $pStyles['borders'][$component] = $pStyles['borders']['allborders']; - } - } - unset($pStyles['borders']['allborders']); // not needed any more - } - // 'outline' is a shorthand property for 'top', 'right', 'bottom', 'left' - // it applies to components that have not been set explicitly - if (isset($pStyles['borders']['outline'])) { - foreach (array('top', 'right', 'bottom', 'left') as $component) { - if (!isset($pStyles['borders'][$component])) { - $pStyles['borders'][$component] = $pStyles['borders']['outline']; - } - } - unset($pStyles['borders']['outline']); // not needed any more - } - // 'inside' is a shorthand property for 'vertical' and 'horizontal' - // it applies to components that have not been set explicitly - if (isset($pStyles['borders']['inside'])) { - foreach (array('vertical', 'horizontal') as $component) { - if (!isset($pStyles['borders'][$component])) { - $pStyles['borders'][$component] = $pStyles['borders']['inside']; - } - } - unset($pStyles['borders']['inside']); // not needed any more - } - // width and height characteristics of selection, 1, 2, or 3 (for 3 or more) - $xMax = min($rangeEnd[0] - $rangeStart[0] + 1, 3); - $yMax = min($rangeEnd[1] - $rangeStart[1] + 1, 3); - - // loop through up to 3 x 3 = 9 regions - for ($x = 1; $x <= $xMax; ++$x) { - // start column index for region - $colStart = ($x == 3) ? - PHPExcel_Cell::stringFromColumnIndex($rangeEnd[0]) - : PHPExcel_Cell::stringFromColumnIndex($rangeStart[0] + $x - 1); - // end column index for region - $colEnd = ($x == 1) ? - PHPExcel_Cell::stringFromColumnIndex($rangeStart[0]) - : PHPExcel_Cell::stringFromColumnIndex($rangeEnd[0] - $xMax + $x); - - for ($y = 1; $y <= $yMax; ++$y) { - // which edges are touching the region - $edges = array(); - if ($x == 1) { - // are we at left edge - $edges[] = 'left'; - } - if ($x == $xMax) { - // are we at right edge - $edges[] = 'right'; - } - if ($y == 1) { - // are we at top edge? - $edges[] = 'top'; - } - if ($y == $yMax) { - // are we at bottom edge? - $edges[] = 'bottom'; - } - - // start row index for region - $rowStart = ($y == 3) ? - $rangeEnd[1] : $rangeStart[1] + $y - 1; - - // end row index for region - $rowEnd = ($y == 1) ? - $rangeStart[1] : $rangeEnd[1] - $yMax + $y; - - // build range for region - $range = $colStart . $rowStart . ':' . $colEnd . $rowEnd; - - // retrieve relevant style array for region - $regionStyles = $pStyles; - unset($regionStyles['borders']['inside']); - - // what are the inner edges of the region when looking at the selection - $innerEdges = array_diff(array('top', 'right', 'bottom', 'left'), $edges); - - // inner edges that are not touching the region should take the 'inside' border properties if they have been set - foreach ($innerEdges as $innerEdge) { - switch ($innerEdge) { - case 'top': - case 'bottom': - // should pick up 'horizontal' border property if set - if (isset($pStyles['borders']['horizontal'])) { - $regionStyles['borders'][$innerEdge] = $pStyles['borders']['horizontal']; - } else { - unset($regionStyles['borders'][$innerEdge]); - } - break; - case 'left': - case 'right': - // should pick up 'vertical' border property if set - if (isset($pStyles['borders']['vertical'])) { - $regionStyles['borders'][$innerEdge] = $pStyles['borders']['vertical']; - } else { - unset($regionStyles['borders'][$innerEdge]); - } - break; - } - } - - // apply region style to region by calling applyFromArray() in simple mode - $this->getActiveSheet()->getStyle($range)->applyFromArray($regionStyles, false); - } - } - return $this; - } - - // SIMPLE MODE: - // Selection type, inspect - if (preg_match('/^[A-Z]+1:[A-Z]+1048576$/', $pRange)) { - $selectionType = 'COLUMN'; - } elseif (preg_match('/^A[0-9]+:XFD[0-9]+$/', $pRange)) { - $selectionType = 'ROW'; - } else { - $selectionType = 'CELL'; - } - - // First loop through columns, rows, or cells to find out which styles are affected by this operation - switch ($selectionType) { - case 'COLUMN': - $oldXfIndexes = array(); - for ($col = $rangeStart[0]; $col <= $rangeEnd[0]; ++$col) { - $oldXfIndexes[$this->getActiveSheet()->getColumnDimensionByColumn($col)->getXfIndex()] = true; - } - break; - case 'ROW': - $oldXfIndexes = array(); - for ($row = $rangeStart[1]; $row <= $rangeEnd[1]; ++$row) { - if ($this->getActiveSheet()->getRowDimension($row)->getXfIndex() == null) { - $oldXfIndexes[0] = true; // row without explicit style should be formatted based on default style - } else { - $oldXfIndexes[$this->getActiveSheet()->getRowDimension($row)->getXfIndex()] = true; - } - } - break; - case 'CELL': - $oldXfIndexes = array(); - for ($col = $rangeStart[0]; $col <= $rangeEnd[0]; ++$col) { - for ($row = $rangeStart[1]; $row <= $rangeEnd[1]; ++$row) { - $oldXfIndexes[$this->getActiveSheet()->getCellByColumnAndRow($col, $row)->getXfIndex()] = true; - } - } - break; - } - - // clone each of the affected styles, apply the style array, and add the new styles to the workbook - $workbook = $this->getActiveSheet()->getParent(); - foreach ($oldXfIndexes as $oldXfIndex => $dummy) { - $style = $workbook->getCellXfByIndex($oldXfIndex); - $newStyle = clone $style; - $newStyle->applyFromArray($pStyles); - - if ($existingStyle = $workbook->getCellXfByHashCode($newStyle->getHashCode())) { - // there is already such cell Xf in our collection - $newXfIndexes[$oldXfIndex] = $existingStyle->getIndex(); - } else { - // we don't have such a cell Xf, need to add - $workbook->addCellXf($newStyle); - $newXfIndexes[$oldXfIndex] = $newStyle->getIndex(); - } - } - - // Loop through columns, rows, or cells again and update the XF index - switch ($selectionType) { - case 'COLUMN': - for ($col = $rangeStart[0]; $col <= $rangeEnd[0]; ++$col) { - $columnDimension = $this->getActiveSheet()->getColumnDimensionByColumn($col); - $oldXfIndex = $columnDimension->getXfIndex(); - $columnDimension->setXfIndex($newXfIndexes[$oldXfIndex]); - } - break; - - case 'ROW': - for ($row = $rangeStart[1]; $row <= $rangeEnd[1]; ++$row) { - $rowDimension = $this->getActiveSheet()->getRowDimension($row); - $oldXfIndex = $rowDimension->getXfIndex() === null ? - 0 : $rowDimension->getXfIndex(); // row without explicit style should be formatted based on default style - $rowDimension->setXfIndex($newXfIndexes[$oldXfIndex]); - } - break; - - case 'CELL': - for ($col = $rangeStart[0]; $col <= $rangeEnd[0]; ++$col) { - for ($row = $rangeStart[1]; $row <= $rangeEnd[1]; ++$row) { - $cell = $this->getActiveSheet()->getCellByColumnAndRow($col, $row); - $oldXfIndex = $cell->getXfIndex(); - $cell->setXfIndex($newXfIndexes[$oldXfIndex]); - } - } - break; - } - - } else { - // not a supervisor, just apply the style array directly on style object - if (array_key_exists('fill', $pStyles)) { - $this->getFill()->applyFromArray($pStyles['fill']); - } - if (array_key_exists('font', $pStyles)) { - $this->getFont()->applyFromArray($pStyles['font']); - } - if (array_key_exists('borders', $pStyles)) { - $this->getBorders()->applyFromArray($pStyles['borders']); - } - if (array_key_exists('alignment', $pStyles)) { - $this->getAlignment()->applyFromArray($pStyles['alignment']); - } - if (array_key_exists('numberformat', $pStyles)) { - $this->getNumberFormat()->applyFromArray($pStyles['numberformat']); - } - if (array_key_exists('protection', $pStyles)) { - $this->getProtection()->applyFromArray($pStyles['protection']); - } - if (array_key_exists('quotePrefix', $pStyles)) { - $this->quotePrefix = $pStyles['quotePrefix']; - } - } - } else { - throw new PHPExcel_Exception("Invalid style array passed."); - } - return $this; - } - - /** - * Get Fill - * - * @return PHPExcel_Style_Fill - */ - public function getFill() - { - return $this->fill; - } - - /** - * Get Font - * - * @return PHPExcel_Style_Font - */ - public function getFont() - { - return $this->font; - } - - /** - * Set font - * - * @param PHPExcel_Style_Font $font - * @return PHPExcel_Style - */ - public function setFont(PHPExcel_Style_Font $font) - { - $this->font = $font; - return $this; - } - - /** - * Get Borders - * - * @return PHPExcel_Style_Borders - */ - public function getBorders() - { - return $this->borders; - } - - /** - * Get Alignment - * - * @return PHPExcel_Style_Alignment - */ - public function getAlignment() - { - return $this->alignment; - } - - /** - * Get Number Format - * - * @return PHPExcel_Style_NumberFormat - */ - public function getNumberFormat() - { - return $this->numberFormat; - } - - /** - * Get Conditional Styles. Only used on supervisor. - * - * @return PHPExcel_Style_Conditional[] - */ - public function getConditionalStyles() - { - return $this->getActiveSheet()->getConditionalStyles($this->getActiveCell()); - } - - /** - * Set Conditional Styles. Only used on supervisor. - * - * @param PHPExcel_Style_Conditional[] $pValue Array of condtional styles - * @return PHPExcel_Style - */ - public function setConditionalStyles($pValue = null) - { - if (is_array($pValue)) { - $this->getActiveSheet()->setConditionalStyles($this->getSelectedCells(), $pValue); - } - return $this; - } - - /** - * Get Protection - * - * @return PHPExcel_Style_Protection - */ - public function getProtection() - { - return $this->protection; - } - - /** - * Get quote prefix - * - * @return boolean - */ - public function getQuotePrefix() - { - if ($this->isSupervisor) { - return $this->getSharedComponent()->getQuotePrefix(); - } - return $this->quotePrefix; - } - - /** - * Set quote prefix - * - * @param boolean $pValue - */ - public function setQuotePrefix($pValue) - { - if ($pValue == '') { - $pValue = false; - } - if ($this->isSupervisor) { - $styleArray = array('quotePrefix' => $pValue); - $this->getActiveSheet()->getStyle($this->getSelectedCells())->applyFromArray($styleArray); - } else { - $this->quotePrefix = (boolean) $pValue; - } - return $this; - } - - /** - * Get hash code - * - * @return string Hash code - */ - public function getHashCode() - { - $hashConditionals = ''; - foreach ($this->conditionalStyles as $conditional) { - $hashConditionals .= $conditional->getHashCode(); - } - - return md5( - $this->fill->getHashCode() . - $this->font->getHashCode() . - $this->borders->getHashCode() . - $this->alignment->getHashCode() . - $this->numberFormat->getHashCode() . - $hashConditionals . - $this->protection->getHashCode() . - ($this->quotePrefix ? 't' : 'f') . - __CLASS__ - ); - } - - /** - * Get own index in style collection - * - * @return int - */ - public function getIndex() - { - return $this->index; - } - - /** - * Set own index in style collection - * - * @param int $pValue - */ - public function setIndex($pValue) - { - $this->index = $pValue; - } -} diff --git a/Utils/PHPExcel/Style/Alignment.php b/Utils/PHPExcel/Style/Alignment.php deleted file mode 100644 index bfc4947..0000000 --- a/Utils/PHPExcel/Style/Alignment.php +++ /dev/null @@ -1,464 +0,0 @@ -<?php -/** - * PHPExcel_Style_Alignment - * - * Copyright (c) 2006 - 2015 PHPExcel - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - * - * @category PHPExcel - * @package PHPExcel_Style - * @copyright Copyright (c) 2006 - 2015 PHPExcel (http://www.codeplex.com/PHPExcel) - * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL - * @version ##VERSION##, ##DATE## - */ -class PHPExcel_Style_Alignment extends PHPExcel_Style_Supervisor implements PHPExcel_IComparable -{ - /* Horizontal alignment styles */ - const HORIZONTAL_GENERAL = 'general'; - const HORIZONTAL_LEFT = 'left'; - const HORIZONTAL_RIGHT = 'right'; - const HORIZONTAL_CENTER = 'center'; - const HORIZONTAL_CENTER_CONTINUOUS = 'centerContinuous'; - const HORIZONTAL_JUSTIFY = 'justify'; - const HORIZONTAL_FILL = 'fill'; - const HORIZONTAL_DISTRIBUTED = 'distributed'; // Excel2007 only - - /* Vertical alignment styles */ - const VERTICAL_BOTTOM = 'bottom'; - const VERTICAL_TOP = 'top'; - const VERTICAL_CENTER = 'center'; - const VERTICAL_JUSTIFY = 'justify'; - const VERTICAL_DISTRIBUTED = 'distributed'; // Excel2007 only - - /* Read order */ - const READORDER_CONTEXT = 0; - const READORDER_LTR = 1; - const READORDER_RTL = 2; - - /** - * Horizontal alignment - * - * @var string - */ - protected $horizontal = PHPExcel_Style_Alignment::HORIZONTAL_GENERAL; - - /** - * Vertical alignment - * - * @var string - */ - protected $vertical = PHPExcel_Style_Alignment::VERTICAL_BOTTOM; - - /** - * Text rotation - * - * @var integer - */ - protected $textRotation = 0; - - /** - * Wrap text - * - * @var boolean - */ - protected $wrapText = false; - - /** - * Shrink to fit - * - * @var boolean - */ - protected $shrinkToFit = false; - - /** - * Indent - only possible with horizontal alignment left and right - * - * @var integer - */ - protected $indent = 0; - - /** - * Read order - * - * @var integer - */ - protected $readorder = 0; - - /** - * Create a new PHPExcel_Style_Alignment - * - * @param boolean $isSupervisor Flag indicating if this is a supervisor or not - * Leave this value at default unless you understand exactly what - * its ramifications are - * @param boolean $isConditional Flag indicating if this is a conditional style or not - * Leave this value at default unless you understand exactly what - * its ramifications are - */ - public function __construct($isSupervisor = false, $isConditional = false) - { - // Supervisor? - parent::__construct($isSupervisor); - - if ($isConditional) { - $this->horizontal = null; - $this->vertical = null; - $this->textRotation = null; - } - } - - /** - * Get the shared style component for the currently active cell in currently active sheet. - * Only used for style supervisor - * - * @return PHPExcel_Style_Alignment - */ - public function getSharedComponent() - { - return $this->parent->getSharedComponent()->getAlignment(); - } - - /** - * Build style array from subcomponents - * - * @param array $array - * @return array - */ - public function getStyleArray($array) - { - return array('alignment' => $array); - } - - /** - * Apply styles from array - * - * <code> - * $objPHPExcel->getActiveSheet()->getStyle('B2')->getAlignment()->applyFromArray( - * array( - * 'horizontal' => PHPExcel_Style_Alignment::HORIZONTAL_CENTER, - * 'vertical' => PHPExcel_Style_Alignment::VERTICAL_CENTER, - * 'rotation' => 0, - * 'wrap' => TRUE - * ) - * ); - * </code> - * - * @param array $pStyles Array containing style information - * @throws PHPExcel_Exception - * @return PHPExcel_Style_Alignment - */ - public function applyFromArray($pStyles = null) - { - if (is_array($pStyles)) { - if ($this->isSupervisor) { - $this->getActiveSheet()->getStyle($this->getSelectedCells()) - ->applyFromArray($this->getStyleArray($pStyles)); - } else { - if (isset($pStyles['horizontal'])) { - $this->setHorizontal($pStyles['horizontal']); - } - if (isset($pStyles['vertical'])) { - $this->setVertical($pStyles['vertical']); - } - if (isset($pStyles['rotation'])) { - $this->setTextRotation($pStyles['rotation']); - } - if (isset($pStyles['wrap'])) { - $this->setWrapText($pStyles['wrap']); - } - if (isset($pStyles['shrinkToFit'])) { - $this->setShrinkToFit($pStyles['shrinkToFit']); - } - if (isset($pStyles['indent'])) { - $this->setIndent($pStyles['indent']); - } - if (isset($pStyles['readorder'])) { - $this->setReadorder($pStyles['readorder']); - } - } - } else { - throw new PHPExcel_Exception("Invalid style array passed."); - } - return $this; - } - - /** - * Get Horizontal - * - * @return string - */ - public function getHorizontal() - { - if ($this->isSupervisor) { - return $this->getSharedComponent()->getHorizontal(); - } - return $this->horizontal; - } - - /** - * Set Horizontal - * - * @param string $pValue - * @return PHPExcel_Style_Alignment - */ - public function setHorizontal($pValue = PHPExcel_Style_Alignment::HORIZONTAL_GENERAL) - { - if ($pValue == '') { - $pValue = PHPExcel_Style_Alignment::HORIZONTAL_GENERAL; - } - - if ($this->isSupervisor) { - $styleArray = $this->getStyleArray(array('horizontal' => $pValue)); - $this->getActiveSheet()->getStyle($this->getSelectedCells())->applyFromArray($styleArray); - } else { - $this->horizontal = $pValue; - } - return $this; - } - - /** - * Get Vertical - * - * @return string - */ - public function getVertical() - { - if ($this->isSupervisor) { - return $this->getSharedComponent()->getVertical(); - } - return $this->vertical; - } - - /** - * Set Vertical - * - * @param string $pValue - * @return PHPExcel_Style_Alignment - */ - public function setVertical($pValue = PHPExcel_Style_Alignment::VERTICAL_BOTTOM) - { - if ($pValue == '') { - $pValue = PHPExcel_Style_Alignment::VERTICAL_BOTTOM; - } - - if ($this->isSupervisor) { - $styleArray = $this->getStyleArray(array('vertical' => $pValue)); - $this->getActiveSheet()->getStyle($this->getSelectedCells())->applyFromArray($styleArray); - } else { - $this->vertical = $pValue; - } - return $this; - } - - /** - * Get TextRotation - * - * @return int - */ - public function getTextRotation() - { - if ($this->isSupervisor) { - return $this->getSharedComponent()->getTextRotation(); - } - return $this->textRotation; - } - - /** - * Set TextRotation - * - * @param int $pValue - * @throws PHPExcel_Exception - * @return PHPExcel_Style_Alignment - */ - public function setTextRotation($pValue = 0) - { - // Excel2007 value 255 => PHPExcel value -165 - if ($pValue == 255) { - $pValue = -165; - } - - // Set rotation - if (($pValue >= -90 && $pValue <= 90) || $pValue == -165) { - if ($this->isSupervisor) { - $styleArray = $this->getStyleArray(array('rotation' => $pValue)); - $this->getActiveSheet()->getStyle($this->getSelectedCells())->applyFromArray($styleArray); - } else { - $this->textRotation = $pValue; - } - } else { - throw new PHPExcel_Exception("Text rotation should be a value between -90 and 90."); - } - - return $this; - } - - /** - * Get Wrap Text - * - * @return boolean - */ - public function getWrapText() - { - if ($this->isSupervisor) { - return $this->getSharedComponent()->getWrapText(); - } - return $this->wrapText; - } - - /** - * Set Wrap Text - * - * @param boolean $pValue - * @return PHPExcel_Style_Alignment - */ - public function setWrapText($pValue = false) - { - if ($pValue == '') { - $pValue = false; - } - if ($this->isSupervisor) { - $styleArray = $this->getStyleArray(array('wrap' => $pValue)); - $this->getActiveSheet()->getStyle($this->getSelectedCells())->applyFromArray($styleArray); - } else { - $this->wrapText = $pValue; - } - return $this; - } - - /** - * Get Shrink to fit - * - * @return boolean - */ - public function getShrinkToFit() - { - if ($this->isSupervisor) { - return $this->getSharedComponent()->getShrinkToFit(); - } - return $this->shrinkToFit; - } - - /** - * Set Shrink to fit - * - * @param boolean $pValue - * @return PHPExcel_Style_Alignment - */ - public function setShrinkToFit($pValue = false) - { - if ($pValue == '') { - $pValue = false; - } - if ($this->isSupervisor) { - $styleArray = $this->getStyleArray(array('shrinkToFit' => $pValue)); - $this->getActiveSheet()->getStyle($this->getSelectedCells())->applyFromArray($styleArray); - } else { - $this->shrinkToFit = $pValue; - } - return $this; - } - - /** - * Get indent - * - * @return int - */ - public function getIndent() - { - if ($this->isSupervisor) { - return $this->getSharedComponent()->getIndent(); - } - return $this->indent; - } - - /** - * Set indent - * - * @param int $pValue - * @return PHPExcel_Style_Alignment - */ - public function setIndent($pValue = 0) - { - if ($pValue > 0) { - if ($this->getHorizontal() != self::HORIZONTAL_GENERAL && - $this->getHorizontal() != self::HORIZONTAL_LEFT && - $this->getHorizontal() != self::HORIZONTAL_RIGHT) { - $pValue = 0; // indent not supported - } - } - if ($this->isSupervisor) { - $styleArray = $this->getStyleArray(array('indent' => $pValue)); - $this->getActiveSheet()->getStyle($this->getSelectedCells())->applyFromArray($styleArray); - } else { - $this->indent = $pValue; - } - return $this; - } - - /** - * Get read order - * - * @return integer - */ - public function getReadorder() - { - if ($this->isSupervisor) { - return $this->getSharedComponent()->getReadorder(); - } - return $this->readorder; - } - - /** - * Set read order - * - * @param int $pValue - * @return PHPExcel_Style_Alignment - */ - public function setReadorder($pValue = 0) - { - if ($pValue < 0 || $pValue > 2) { - $pValue = 0; - } - if ($this->isSupervisor) { - $styleArray = $this->getStyleArray(array('readorder' => $pValue)); - $this->getActiveSheet()->getStyle($this->getSelectedCells())->applyFromArray($styleArray); - } else { - $this->readorder = $pValue; - } - return $this; - } - - /** - * Get hash code - * - * @return string Hash code - */ - public function getHashCode() - { - if ($this->isSupervisor) { - return $this->getSharedComponent()->getHashCode(); - } - return md5( - $this->horizontal . - $this->vertical . - $this->textRotation . - ($this->wrapText ? 't' : 'f') . - ($this->shrinkToFit ? 't' : 'f') . - $this->indent . - $this->readorder . - __CLASS__ - ); - } -} diff --git a/Utils/PHPExcel/Style/Border.php b/Utils/PHPExcel/Style/Border.php deleted file mode 100644 index 55efc50..0000000 --- a/Utils/PHPExcel/Style/Border.php +++ /dev/null @@ -1,282 +0,0 @@ -<?php - -/** - * PHPExcel_Style_Border - * - * Copyright (c) 2006 - 2015 PHPExcel - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - * - * @category PHPExcel - * @package PHPExcel_Style - * @copyright Copyright (c) 2006 - 2015 PHPExcel (http://www.codeplex.com/PHPExcel) - * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL - * @version ##VERSION##, ##DATE## - */ -class PHPExcel_Style_Border extends PHPExcel_Style_Supervisor implements PHPExcel_IComparable -{ - /* Border style */ - const BORDER_NONE = 'none'; - const BORDER_DASHDOT = 'dashDot'; - const BORDER_DASHDOTDOT = 'dashDotDot'; - const BORDER_DASHED = 'dashed'; - const BORDER_DOTTED = 'dotted'; - const BORDER_DOUBLE = 'double'; - const BORDER_HAIR = 'hair'; - const BORDER_MEDIUM = 'medium'; - const BORDER_MEDIUMDASHDOT = 'mediumDashDot'; - const BORDER_MEDIUMDASHDOTDOT = 'mediumDashDotDot'; - const BORDER_MEDIUMDASHED = 'mediumDashed'; - const BORDER_SLANTDASHDOT = 'slantDashDot'; - const BORDER_THICK = 'thick'; - const BORDER_THIN = 'thin'; - - /** - * Border style - * - * @var string - */ - protected $borderStyle = PHPExcel_Style_Border::BORDER_NONE; - - /** - * Border color - * - * @var PHPExcel_Style_Color - */ - protected $color; - - /** - * Parent property name - * - * @var string - */ - protected $parentPropertyName; - - /** - * Create a new PHPExcel_Style_Border - * - * @param boolean $isSupervisor Flag indicating if this is a supervisor or not - * Leave this value at default unless you understand exactly what - * its ramifications are - * @param boolean $isConditional Flag indicating if this is a conditional style or not - * Leave this value at default unless you understand exactly what - * its ramifications are - */ - public function __construct($isSupervisor = false, $isConditional = false) - { - // Supervisor? - parent::__construct($isSupervisor); - - // Initialise values - $this->color = new PHPExcel_Style_Color(PHPExcel_Style_Color::COLOR_BLACK, $isSupervisor); - - // bind parent if we are a supervisor - if ($isSupervisor) { - $this->color->bindParent($this, 'color'); - } - } - - /** - * Bind parent. Only used for supervisor - * - * @param PHPExcel_Style_Borders $parent - * @param string $parentPropertyName - * @return PHPExcel_Style_Border - */ - public function bindParent($parent, $parentPropertyName = null) - { - $this->parent = $parent; - $this->parentPropertyName = $parentPropertyName; - return $this; - } - - /** - * Get the shared style component for the currently active cell in currently active sheet. - * Only used for style supervisor - * - * @return PHPExcel_Style_Border - * @throws PHPExcel_Exception - */ - public function getSharedComponent() - { - switch ($this->parentPropertyName) { - case 'allBorders': - case 'horizontal': - case 'inside': - case 'outline': - case 'vertical': - throw new PHPExcel_Exception('Cannot get shared component for a pseudo-border.'); - break; - case 'bottom': - return $this->parent->getSharedComponent()->getBottom(); - case 'diagonal': - return $this->parent->getSharedComponent()->getDiagonal(); - case 'left': - return $this->parent->getSharedComponent()->getLeft(); - case 'right': - return $this->parent->getSharedComponent()->getRight(); - case 'top': - return $this->parent->getSharedComponent()->getTop(); - } - } - - /** - * Build style array from subcomponents - * - * @param array $array - * @return array - */ - public function getStyleArray($array) - { - switch ($this->parentPropertyName) { - case 'allBorders': - case 'bottom': - case 'diagonal': - case 'horizontal': - case 'inside': - case 'left': - case 'outline': - case 'right': - case 'top': - case 'vertical': - $key = strtolower('vertical'); - break; - } - return $this->parent->getStyleArray(array($key => $array)); - } - - /** - * Apply styles from array - * - * <code> - * $objPHPExcel->getActiveSheet()->getStyle('B2')->getBorders()->getTop()->applyFromArray( - * array( - * 'style' => PHPExcel_Style_Border::BORDER_DASHDOT, - * 'color' => array( - * 'rgb' => '808080' - * ) - * ) - * ); - * </code> - * - * @param array $pStyles Array containing style information - * @throws PHPExcel_Exception - * @return PHPExcel_Style_Border - */ - public function applyFromArray($pStyles = null) - { - if (is_array($pStyles)) { - if ($this->isSupervisor) { - $this->getActiveSheet()->getStyle($this->getSelectedCells())->applyFromArray($this->getStyleArray($pStyles)); - } else { - if (isset($pStyles['style'])) { - $this->setBorderStyle($pStyles['style']); - } - if (isset($pStyles['color'])) { - $this->getColor()->applyFromArray($pStyles['color']); - } - } - } else { - throw new PHPExcel_Exception("Invalid style array passed."); - } - return $this; - } - - /** - * Get Border style - * - * @return string - */ - public function getBorderStyle() - { - if ($this->isSupervisor) { - return $this->getSharedComponent()->getBorderStyle(); - } - return $this->borderStyle; - } - - /** - * Set Border style - * - * @param string|boolean $pValue - * When passing a boolean, FALSE equates PHPExcel_Style_Border::BORDER_NONE - * and TRUE to PHPExcel_Style_Border::BORDER_MEDIUM - * @return PHPExcel_Style_Border - */ - public function setBorderStyle($pValue = PHPExcel_Style_Border::BORDER_NONE) - { - - if (empty($pValue)) { - $pValue = PHPExcel_Style_Border::BORDER_NONE; - } elseif (is_bool($pValue) && $pValue) { - $pValue = PHPExcel_Style_Border::BORDER_MEDIUM; - } - if ($this->isSupervisor) { - $styleArray = $this->getStyleArray(array('style' => $pValue)); - $this->getActiveSheet()->getStyle($this->getSelectedCells())->applyFromArray($styleArray); - } else { - $this->borderStyle = $pValue; - } - return $this; - } - - /** - * Get Border Color - * - * @return PHPExcel_Style_Color - */ - public function getColor() - { - return $this->color; - } - - /** - * Set Border Color - * - * @param PHPExcel_Style_Color $pValue - * @throws PHPExcel_Exception - * @return PHPExcel_Style_Border - */ - public function setColor(PHPExcel_Style_Color $pValue = null) - { - // make sure parameter is a real color and not a supervisor - $color = $pValue->getIsSupervisor() ? $pValue->getSharedComponent() : $pValue; - - if ($this->isSupervisor) { - $styleArray = $this->getColor()->getStyleArray(array('argb' => $color->getARGB())); - $this->getActiveSheet()->getStyle($this->getSelectedCells())->applyFromArray($styleArray); - } else { - $this->color = $color; - } - return $this; - } - - /** - * Get hash code - * - * @return string Hash code - */ - public function getHashCode() - { - if ($this->isSupervisor) { - return $this->getSharedComponent()->getHashCode(); - } - return md5( - $this->borderStyle . - $this->color->getHashCode() . - __CLASS__ - ); - } -} diff --git a/Utils/PHPExcel/Style/Borders.php b/Utils/PHPExcel/Style/Borders.php deleted file mode 100644 index ad3ac2e..0000000 --- a/Utils/PHPExcel/Style/Borders.php +++ /dev/null @@ -1,429 +0,0 @@ -<?php - -/** - * PHPExcel_Style_Borders - * - * Copyright (c) 2006 - 2015 PHPExcel - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - * - * @category PHPExcel - * @package PHPExcel_Style - * @copyright Copyright (c) 2006 - 2015 PHPExcel (http://www.codeplex.com/PHPExcel) - * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL - * @version ##VERSION##, ##DATE## - */ -class PHPExcel_Style_Borders extends PHPExcel_Style_Supervisor implements PHPExcel_IComparable -{ - /* Diagonal directions */ - const DIAGONAL_NONE = 0; - const DIAGONAL_UP = 1; - const DIAGONAL_DOWN = 2; - const DIAGONAL_BOTH = 3; - - /** - * Left - * - * @var PHPExcel_Style_Border - */ - protected $left; - - /** - * Right - * - * @var PHPExcel_Style_Border - */ - protected $right; - - /** - * Top - * - * @var PHPExcel_Style_Border - */ - protected $top; - - /** - * Bottom - * - * @var PHPExcel_Style_Border - */ - protected $bottom; - - /** - * Diagonal - * - * @var PHPExcel_Style_Border - */ - protected $diagonal; - - /** - * DiagonalDirection - * - * @var int - */ - protected $diagonalDirection; - - /** - * All borders psedo-border. Only applies to supervisor. - * - * @var PHPExcel_Style_Border - */ - protected $allBorders; - - /** - * Outline psedo-border. Only applies to supervisor. - * - * @var PHPExcel_Style_Border - */ - protected $outline; - - /** - * Inside psedo-border. Only applies to supervisor. - * - * @var PHPExcel_Style_Border - */ - protected $inside; - - /** - * Vertical pseudo-border. Only applies to supervisor. - * - * @var PHPExcel_Style_Border - */ - protected $vertical; - - /** - * Horizontal pseudo-border. Only applies to supervisor. - * - * @var PHPExcel_Style_Border - */ - protected $horizontal; - - /** - * Create a new PHPExcel_Style_Borders - * - * @param boolean $isSupervisor Flag indicating if this is a supervisor or not - * Leave this value at default unless you understand exactly what - * its ramifications are - * @param boolean $isConditional Flag indicating if this is a conditional style or not - * Leave this value at default unless you understand exactly what - * its ramifications are - */ - public function __construct($isSupervisor = false, $isConditional = false) - { - // Supervisor? - parent::__construct($isSupervisor); - - // Initialise values - $this->left = new PHPExcel_Style_Border($isSupervisor, $isConditional); - $this->right = new PHPExcel_Style_Border($isSupervisor, $isConditional); - $this->top = new PHPExcel_Style_Border($isSupervisor, $isConditional); - $this->bottom = new PHPExcel_Style_Border($isSupervisor, $isConditional); - $this->diagonal = new PHPExcel_Style_Border($isSupervisor, $isConditional); - $this->diagonalDirection = PHPExcel_Style_Borders::DIAGONAL_NONE; - - // Specially for supervisor - if ($isSupervisor) { - // Initialize pseudo-borders - $this->allBorders = new PHPExcel_Style_Border(true); - $this->outline = new PHPExcel_Style_Border(true); - $this->inside = new PHPExcel_Style_Border(true); - $this->vertical = new PHPExcel_Style_Border(true); - $this->horizontal = new PHPExcel_Style_Border(true); - - // bind parent if we are a supervisor - $this->left->bindParent($this, 'left'); - $this->right->bindParent($this, 'right'); - $this->top->bindParent($this, 'top'); - $this->bottom->bindParent($this, 'bottom'); - $this->diagonal->bindParent($this, 'diagonal'); - $this->allBorders->bindParent($this, 'allBorders'); - $this->outline->bindParent($this, 'outline'); - $this->inside->bindParent($this, 'inside'); - $this->vertical->bindParent($this, 'vertical'); - $this->horizontal->bindParent($this, 'horizontal'); - } - } - - /** - * Apply styles from array - * - * <code> - * $objPHPExcel->getActiveSheet()->getStyle('B2')->getBorders()->applyFromArray( - * array( - * 'bottom' => array( - * 'style' => PHPExcel_Style_Border::BORDER_DASHDOT, - * 'color' => array( - * 'rgb' => '808080' - * ) - * ), - * 'top' => array( - * 'style' => PHPExcel_Style_Border::BORDER_DASHDOT, - * 'color' => array( - * 'rgb' => '808080' - * ) - * ) - * ) - * ); - * </code> - * <code> - * $objPHPExcel->getActiveSheet()->getStyle('B2')->getBorders()->applyFromArray( - * array( - * 'allborders' => array( - * 'style' => PHPExcel_Style_Border::BORDER_DASHDOT, - * 'color' => array( - * 'rgb' => '808080' - * ) - * ) - * ) - * ); - * </code> - * - * @param array $pStyles Array containing style information - * @throws PHPExcel_Exception - * @return PHPExcel_Style_Borders - */ - public function applyFromArray($pStyles = null) - { - if (is_array($pStyles)) { - if ($this->isSupervisor) { - $this->getActiveSheet()->getStyle($this->getSelectedCells())->applyFromArray($this->getStyleArray($pStyles)); - } else { - if (array_key_exists('left', $pStyles)) { - $this->getLeft()->applyFromArray($pStyles['left']); - } - if (array_key_exists('right', $pStyles)) { - $this->getRight()->applyFromArray($pStyles['right']); - } - if (array_key_exists('top', $pStyles)) { - $this->getTop()->applyFromArray($pStyles['top']); - } - if (array_key_exists('bottom', $pStyles)) { - $this->getBottom()->applyFromArray($pStyles['bottom']); - } - if (array_key_exists('diagonal', $pStyles)) { - $this->getDiagonal()->applyFromArray($pStyles['diagonal']); - } - if (array_key_exists('diagonaldirection', $pStyles)) { - $this->setDiagonalDirection($pStyles['diagonaldirection']); - } - if (array_key_exists('allborders', $pStyles)) { - $this->getLeft()->applyFromArray($pStyles['allborders']); - $this->getRight()->applyFromArray($pStyles['allborders']); - $this->getTop()->applyFromArray($pStyles['allborders']); - $this->getBottom()->applyFromArray($pStyles['allborders']); - } - } - } else { - throw new PHPExcel_Exception("Invalid style array passed."); - } - return $this; - } - - /** - * Build style array from subcomponents - * - * @param array $array - * @return array - */ - public function getStyleArray($array) - { - return array('borders' => $array); - } - - /** - * Get Left - * - * @return PHPExcel_Style_Border - */ - public function getLeft() - { - return $this->left; - } - - /** - * Get Right - * - * @return PHPExcel_Style_Border - */ - public function getRight() - { - return $this->right; - } - - /** - * Get Top - * - * @return PHPExcel_Style_Border - */ - public function getTop() - { - return $this->top; - } - - /** - * Get Bottom - * - * @return PHPExcel_Style_Border - */ - public function getBottom() - { - return $this->bottom; - } - - /** - * Get Diagonal - * - * @return PHPExcel_Style_Border - */ - public function getDiagonal() - { - return $this->diagonal; - } - - /** - * Get AllBorders (pseudo-border). Only applies to supervisor. - * - * @return PHPExcel_Style_Border - * @throws PHPExcel_Exception - */ - public function getAllBorders() - { - if (!$this->isSupervisor) { - throw new PHPExcel_Exception('Can only get pseudo-border for supervisor.'); - } - return $this->allBorders; - } - - /** - * Get Outline (pseudo-border). Only applies to supervisor. - * - * @return boolean - * @throws PHPExcel_Exception - */ - public function getOutline() - { - if (!$this->isSupervisor) { - throw new PHPExcel_Exception('Can only get pseudo-border for supervisor.'); - } - return $this->outline; - } - - /** - * Get Inside (pseudo-border). Only applies to supervisor. - * - * @return boolean - * @throws PHPExcel_Exception - */ - public function getInside() - { - if (!$this->isSupervisor) { - throw new PHPExcel_Exception('Can only get pseudo-border for supervisor.'); - } - return $this->inside; - } - - /** - * Get Vertical (pseudo-border). Only applies to supervisor. - * - * @return PHPExcel_Style_Border - * @throws PHPExcel_Exception - */ - public function getVertical() - { - if (!$this->isSupervisor) { - throw new PHPExcel_Exception('Can only get pseudo-border for supervisor.'); - } - return $this->vertical; - } - - /** - * Get Horizontal (pseudo-border). Only applies to supervisor. - * - * @return PHPExcel_Style_Border - * @throws PHPExcel_Exception - */ - public function getHorizontal() - { - if (!$this->isSupervisor) { - throw new PHPExcel_Exception('Can only get pseudo-border for supervisor.'); - } - return $this->horizontal; - } - - /** - * Get hash code - * - * @return string Hash code - */ - public function getHashCode() - { - if ($this->isSupervisor) { - return $this->getSharedComponent()->getHashcode(); - } - return md5( - $this->getLeft()->getHashCode() . - $this->getRight()->getHashCode() . - $this->getTop()->getHashCode() . - $this->getBottom()->getHashCode() . - $this->getDiagonal()->getHashCode() . - $this->getDiagonalDirection() . - __CLASS__ - ); - } - - /** - * Get the shared style component for the currently active cell in currently active sheet. - * Only used for style supervisor - * - * @return PHPExcel_Style_Borders - */ - public function getSharedComponent() - { - return $this->parent->getSharedComponent()->getBorders(); - } - - /** - * Get DiagonalDirection - * - * @return int - */ - public function getDiagonalDirection() - { - if ($this->isSupervisor) { - return $this->getSharedComponent()->getDiagonalDirection(); - } - return $this->diagonalDirection; - } - - /** - * Set DiagonalDirection - * - * @param int $pValue - * @return PHPExcel_Style_Borders - */ - public function setDiagonalDirection($pValue = PHPExcel_Style_Borders::DIAGONAL_NONE) - { - if ($pValue == '') { - $pValue = PHPExcel_Style_Borders::DIAGONAL_NONE; - } - if ($this->isSupervisor) { - $styleArray = $this->getStyleArray(array('diagonaldirection' => $pValue)); - $this->getActiveSheet()->getStyle($this->getSelectedCells())->applyFromArray($styleArray); - } else { - $this->diagonalDirection = $pValue; - } - return $this; - } -} diff --git a/Utils/PHPExcel/Style/Color.php b/Utils/PHPExcel/Style/Color.php deleted file mode 100644 index 9c7790f..0000000 --- a/Utils/PHPExcel/Style/Color.php +++ /dev/null @@ -1,443 +0,0 @@ -<?php - -/** - * PHPExcel_Style_Color - * - * Copyright (c) 2006 - 2015 PHPExcel - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - * - * @category PHPExcel - * @package PHPExcel_Style - * @copyright Copyright (c) 2006 - 2015 PHPExcel (http://www.codeplex.com/PHPExcel) - * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL - * @version ##VERSION##, ##DATE## - */ -class PHPExcel_Style_Color extends PHPExcel_Style_Supervisor implements PHPExcel_IComparable -{ - /* Colors */ - const COLOR_BLACK = 'FF000000'; - const COLOR_WHITE = 'FFFFFFFF'; - const COLOR_RED = 'FFFF0000'; - const COLOR_DARKRED = 'FF800000'; - const COLOR_BLUE = 'FF0000FF'; - const COLOR_DARKBLUE = 'FF000080'; - const COLOR_GREEN = 'FF00FF00'; - const COLOR_DARKGREEN = 'FF008000'; - const COLOR_YELLOW = 'FFFFFF00'; - const COLOR_DARKYELLOW = 'FF808000'; - - /** - * Indexed colors array - * - * @var array - */ - protected static $indexedColors; - - /** - * ARGB - Alpha RGB - * - * @var string - */ - protected $argb = null; - - /** - * Parent property name - * - * @var string - */ - protected $parentPropertyName; - - - /** - * Create a new PHPExcel_Style_Color - * - * @param string $pARGB ARGB value for the colour - * @param boolean $isSupervisor Flag indicating if this is a supervisor or not - * Leave this value at default unless you understand exactly what - * its ramifications are - * @param boolean $isConditional Flag indicating if this is a conditional style or not - * Leave this value at default unless you understand exactly what - * its ramifications are - */ - public function __construct($pARGB = PHPExcel_Style_Color::COLOR_BLACK, $isSupervisor = false, $isConditional = false) - { - // Supervisor? - parent::__construct($isSupervisor); - - // Initialise values - if (!$isConditional) { - $this->argb = $pARGB; - } - } - - /** - * Bind parent. Only used for supervisor - * - * @param mixed $parent - * @param string $parentPropertyName - * @return PHPExcel_Style_Color - */ - public function bindParent($parent, $parentPropertyName = null) - { - $this->parent = $parent; - $this->parentPropertyName = $parentPropertyName; - return $this; - } - - /** - * Get the shared style component for the currently active cell in currently active sheet. - * Only used for style supervisor - * - * @return PHPExcel_Style_Color - */ - public function getSharedComponent() - { - switch ($this->parentPropertyName) { - case 'endColor': - return $this->parent->getSharedComponent()->getEndColor(); - case 'color': - return $this->parent->getSharedComponent()->getColor(); - case 'startColor': - return $this->parent->getSharedComponent()->getStartColor(); - } - } - - /** - * Build style array from subcomponents - * - * @param array $array - * @return array - */ - public function getStyleArray($array) - { - switch ($this->parentPropertyName) { - case 'endColor': - $key = 'endcolor'; - break; - case 'color': - $key = 'color'; - break; - case 'startColor': - $key = 'startcolor'; - break; - - } - return $this->parent->getStyleArray(array($key => $array)); - } - - /** - * Apply styles from array - * - * <code> - * $objPHPExcel->getActiveSheet()->getStyle('B2')->getFont()->getColor()->applyFromArray( array('rgb' => '808080') ); - * </code> - * - * @param array $pStyles Array containing style information - * @throws PHPExcel_Exception - * @return PHPExcel_Style_Color - */ - public function applyFromArray($pStyles = null) - { - if (is_array($pStyles)) { - if ($this->isSupervisor) { - $this->getActiveSheet()->getStyle($this->getSelectedCells())->applyFromArray($this->getStyleArray($pStyles)); - } else { - if (array_key_exists('rgb', $pStyles)) { - $this->setRGB($pStyles['rgb']); - } - if (array_key_exists('argb', $pStyles)) { - $this->setARGB($pStyles['argb']); - } - } - } else { - throw new PHPExcel_Exception("Invalid style array passed."); - } - return $this; - } - - /** - * Get ARGB - * - * @return string - */ - public function getARGB() - { - if ($this->isSupervisor) { - return $this->getSharedComponent()->getARGB(); - } - return $this->argb; - } - - /** - * Set ARGB - * - * @param string $pValue - * @return PHPExcel_Style_Color - */ - public function setARGB($pValue = PHPExcel_Style_Color::COLOR_BLACK) - { - if ($pValue == '') { - $pValue = PHPExcel_Style_Color::COLOR_BLACK; - } - if ($this->isSupervisor) { - $styleArray = $this->getStyleArray(array('argb' => $pValue)); - $this->getActiveSheet()->getStyle($this->getSelectedCells())->applyFromArray($styleArray); - } else { - $this->argb = $pValue; - } - return $this; - } - - /** - * Get RGB - * - * @return string - */ - public function getRGB() - { - if ($this->isSupervisor) { - return $this->getSharedComponent()->getRGB(); - } - return substr($this->argb, 2); - } - - /** - * Set RGB - * - * @param string $pValue RGB value - * @return PHPExcel_Style_Color - */ - public function setRGB($pValue = '000000') - { - if ($pValue == '') { - $pValue = '000000'; - } - if ($this->isSupervisor) { - $styleArray = $this->getStyleArray(array('argb' => 'FF' . $pValue)); - $this->getActiveSheet()->getStyle($this->getSelectedCells())->applyFromArray($styleArray); - } else { - $this->argb = 'FF' . $pValue; - } - return $this; - } - - /** - * Get a specified colour component of an RGB value - * - * @private - * @param string $RGB The colour as an RGB value (e.g. FF00CCCC or CCDDEE - * @param int $offset Position within the RGB value to extract - * @param boolean $hex Flag indicating whether the component should be returned as a hex or a - * decimal value - * @return string The extracted colour component - */ - private static function getColourComponent($RGB, $offset, $hex = true) - { - $colour = substr($RGB, $offset, 2); - if (!$hex) { - $colour = hexdec($colour); - } - return $colour; - } - - /** - * Get the red colour component of an RGB value - * - * @param string $RGB The colour as an RGB value (e.g. FF00CCCC or CCDDEE - * @param boolean $hex Flag indicating whether the component should be returned as a hex or a - * decimal value - * @return string The red colour component - */ - public static function getRed($RGB, $hex = true) - { - return self::getColourComponent($RGB, strlen($RGB) - 6, $hex); - } - - /** - * Get the green colour component of an RGB value - * - * @param string $RGB The colour as an RGB value (e.g. FF00CCCC or CCDDEE - * @param boolean $hex Flag indicating whether the component should be returned as a hex or a - * decimal value - * @return string The green colour component - */ - public static function getGreen($RGB, $hex = true) - { - return self::getColourComponent($RGB, strlen($RGB) - 4, $hex); - } - - /** - * Get the blue colour component of an RGB value - * - * @param string $RGB The colour as an RGB value (e.g. FF00CCCC or CCDDEE - * @param boolean $hex Flag indicating whether the component should be returned as a hex or a - * decimal value - * @return string The blue colour component - */ - public static function getBlue($RGB, $hex = true) - { - return self::getColourComponent($RGB, strlen($RGB) - 2, $hex); - } - - /** - * Adjust the brightness of a color - * - * @param string $hex The colour as an RGBA or RGB value (e.g. FF00CCCC or CCDDEE) - * @param float $adjustPercentage The percentage by which to adjust the colour as a float from -1 to 1 - * @return string The adjusted colour as an RGBA or RGB value (e.g. FF00CCCC or CCDDEE) - */ - public static function changeBrightness($hex, $adjustPercentage) - { - $rgba = (strlen($hex) == 8); - - $red = self::getRed($hex, false); - $green = self::getGreen($hex, false); - $blue = self::getBlue($hex, false); - if ($adjustPercentage > 0) { - $red += (255 - $red) * $adjustPercentage; - $green += (255 - $green) * $adjustPercentage; - $blue += (255 - $blue) * $adjustPercentage; - } else { - $red += $red * $adjustPercentage; - $green += $green * $adjustPercentage; - $blue += $blue * $adjustPercentage; - } - - if ($red < 0) { - $red = 0; - } elseif ($red > 255) { - $red = 255; - } - if ($green < 0) { - $green = 0; - } elseif ($green > 255) { - $green = 255; - } - if ($blue < 0) { - $blue = 0; - } elseif ($blue > 255) { - $blue = 255; - } - - $rgb = strtoupper( - str_pad(dechex($red), 2, '0', 0) . - str_pad(dechex($green), 2, '0', 0) . - str_pad(dechex($blue), 2, '0', 0) - ); - return (($rgba) ? 'FF' : '') . $rgb; - } - - /** - * Get indexed color - * - * @param int $pIndex Index entry point into the colour array - * @param boolean $background Flag to indicate whether default background or foreground colour - * should be returned if the indexed colour doesn't exist - * @return PHPExcel_Style_Color - */ - public static function indexedColor($pIndex, $background = false) - { - // Clean parameter - $pIndex = intval($pIndex); - - // Indexed colors - if (is_null(self::$indexedColors)) { - self::$indexedColors = array( - 1 => 'FF000000', // System Colour #1 - Black - 2 => 'FFFFFFFF', // System Colour #2 - White - 3 => 'FFFF0000', // System Colour #3 - Red - 4 => 'FF00FF00', // System Colour #4 - Green - 5 => 'FF0000FF', // System Colour #5 - Blue - 6 => 'FFFFFF00', // System Colour #6 - Yellow - 7 => 'FFFF00FF', // System Colour #7- Magenta - 8 => 'FF00FFFF', // System Colour #8- Cyan - 9 => 'FF800000', // Standard Colour #9 - 10 => 'FF008000', // Standard Colour #10 - 11 => 'FF000080', // Standard Colour #11 - 12 => 'FF808000', // Standard Colour #12 - 13 => 'FF800080', // Standard Colour #13 - 14 => 'FF008080', // Standard Colour #14 - 15 => 'FFC0C0C0', // Standard Colour #15 - 16 => 'FF808080', // Standard Colour #16 - 17 => 'FF9999FF', // Chart Fill Colour #17 - 18 => 'FF993366', // Chart Fill Colour #18 - 19 => 'FFFFFFCC', // Chart Fill Colour #19 - 20 => 'FFCCFFFF', // Chart Fill Colour #20 - 21 => 'FF660066', // Chart Fill Colour #21 - 22 => 'FFFF8080', // Chart Fill Colour #22 - 23 => 'FF0066CC', // Chart Fill Colour #23 - 24 => 'FFCCCCFF', // Chart Fill Colour #24 - 25 => 'FF000080', // Chart Line Colour #25 - 26 => 'FFFF00FF', // Chart Line Colour #26 - 27 => 'FFFFFF00', // Chart Line Colour #27 - 28 => 'FF00FFFF', // Chart Line Colour #28 - 29 => 'FF800080', // Chart Line Colour #29 - 30 => 'FF800000', // Chart Line Colour #30 - 31 => 'FF008080', // Chart Line Colour #31 - 32 => 'FF0000FF', // Chart Line Colour #32 - 33 => 'FF00CCFF', // Standard Colour #33 - 34 => 'FFCCFFFF', // Standard Colour #34 - 35 => 'FFCCFFCC', // Standard Colour #35 - 36 => 'FFFFFF99', // Standard Colour #36 - 37 => 'FF99CCFF', // Standard Colour #37 - 38 => 'FFFF99CC', // Standard Colour #38 - 39 => 'FFCC99FF', // Standard Colour #39 - 40 => 'FFFFCC99', // Standard Colour #40 - 41 => 'FF3366FF', // Standard Colour #41 - 42 => 'FF33CCCC', // Standard Colour #42 - 43 => 'FF99CC00', // Standard Colour #43 - 44 => 'FFFFCC00', // Standard Colour #44 - 45 => 'FFFF9900', // Standard Colour #45 - 46 => 'FFFF6600', // Standard Colour #46 - 47 => 'FF666699', // Standard Colour #47 - 48 => 'FF969696', // Standard Colour #48 - 49 => 'FF003366', // Standard Colour #49 - 50 => 'FF339966', // Standard Colour #50 - 51 => 'FF003300', // Standard Colour #51 - 52 => 'FF333300', // Standard Colour #52 - 53 => 'FF993300', // Standard Colour #53 - 54 => 'FF993366', // Standard Colour #54 - 55 => 'FF333399', // Standard Colour #55 - 56 => 'FF333333' // Standard Colour #56 - ); - } - - if (array_key_exists($pIndex, self::$indexedColors)) { - return new PHPExcel_Style_Color(self::$indexedColors[$pIndex]); - } - - if ($background) { - return new PHPExcel_Style_Color(self::COLOR_WHITE); - } - return new PHPExcel_Style_Color(self::COLOR_BLACK); - } - - /** - * Get hash code - * - * @return string Hash code - */ - public function getHashCode() - { - if ($this->isSupervisor) { - return $this->getSharedComponent()->getHashCode(); - } - return md5( - $this->argb . - __CLASS__ - ); - } -} diff --git a/Utils/PHPExcel/Style/Conditional.php b/Utils/PHPExcel/Style/Conditional.php deleted file mode 100644 index 331362b..0000000 --- a/Utils/PHPExcel/Style/Conditional.php +++ /dev/null @@ -1,293 +0,0 @@ -<?php -/** - * PHPExcel - * - * Copyright (c) 2006 - 2015 PHPExcel - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - * - * @category PHPExcel - * @package PHPExcel_Style - * @copyright Copyright (c) 2006 - 2015 PHPExcel (http://www.codeplex.com/PHPExcel) - * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL - * @version ##VERSION##, ##DATE## - */ - - -/** - * PHPExcel_Style_Conditional - * - * @category PHPExcel - * @package PHPExcel_Style - * @copyright Copyright (c) 2006 - 2015 PHPExcel (http://www.codeplex.com/PHPExcel) - */ -class PHPExcel_Style_Conditional implements PHPExcel_IComparable -{ - /* Condition types */ - const CONDITION_NONE = 'none'; - const CONDITION_CELLIS = 'cellIs'; - const CONDITION_CONTAINSTEXT = 'containsText'; - const CONDITION_EXPRESSION = 'expression'; - - /* Operator types */ - const OPERATOR_NONE = ''; - const OPERATOR_BEGINSWITH = 'beginsWith'; - const OPERATOR_ENDSWITH = 'endsWith'; - const OPERATOR_EQUAL = 'equal'; - const OPERATOR_GREATERTHAN = 'greaterThan'; - const OPERATOR_GREATERTHANOREQUAL = 'greaterThanOrEqual'; - const OPERATOR_LESSTHAN = 'lessThan'; - const OPERATOR_LESSTHANOREQUAL = 'lessThanOrEqual'; - const OPERATOR_NOTEQUAL = 'notEqual'; - const OPERATOR_CONTAINSTEXT = 'containsText'; - const OPERATOR_NOTCONTAINS = 'notContains'; - const OPERATOR_BETWEEN = 'between'; - - /** - * Condition type - * - * @var int - */ - private $conditionType; - - /** - * Operator type - * - * @var int - */ - private $operatorType; - - /** - * Text - * - * @var string - */ - private $text; - - /** - * Condition - * - * @var string[] - */ - private $condition = array(); - - /** - * Style - * - * @var PHPExcel_Style - */ - private $style; - - /** - * Create a new PHPExcel_Style_Conditional - */ - public function __construct() - { - // Initialise values - $this->conditionType = PHPExcel_Style_Conditional::CONDITION_NONE; - $this->operatorType = PHPExcel_Style_Conditional::OPERATOR_NONE; - $this->text = null; - $this->condition = array(); - $this->style = new PHPExcel_Style(false, true); - } - - /** - * Get Condition type - * - * @return string - */ - public function getConditionType() - { - return $this->conditionType; - } - - /** - * Set Condition type - * - * @param string $pValue PHPExcel_Style_Conditional condition type - * @return PHPExcel_Style_Conditional - */ - public function setConditionType($pValue = PHPExcel_Style_Conditional::CONDITION_NONE) - { - $this->conditionType = $pValue; - return $this; - } - - /** - * Get Operator type - * - * @return string - */ - public function getOperatorType() - { - return $this->operatorType; - } - - /** - * Set Operator type - * - * @param string $pValue PHPExcel_Style_Conditional operator type - * @return PHPExcel_Style_Conditional - */ - public function setOperatorType($pValue = PHPExcel_Style_Conditional::OPERATOR_NONE) - { - $this->operatorType = $pValue; - return $this; - } - - /** - * Get text - * - * @return string - */ - public function getText() - { - return $this->text; - } - - /** - * Set text - * - * @param string $value - * @return PHPExcel_Style_Conditional - */ - public function setText($value = null) - { - $this->text = $value; - return $this; - } - - /** - * Get Condition - * - * @deprecated Deprecated, use getConditions instead - * @return string - */ - public function getCondition() - { - if (isset($this->condition[0])) { - return $this->condition[0]; - } - - return ''; - } - - /** - * Set Condition - * - * @deprecated Deprecated, use setConditions instead - * @param string $pValue Condition - * @return PHPExcel_Style_Conditional - */ - public function setCondition($pValue = '') - { - if (!is_array($pValue)) { - $pValue = array($pValue); - } - - return $this->setConditions($pValue); - } - - /** - * Get Conditions - * - * @return string[] - */ - public function getConditions() - { - return $this->condition; - } - - /** - * Set Conditions - * - * @param string[] $pValue Condition - * @return PHPExcel_Style_Conditional - */ - public function setConditions($pValue) - { - if (!is_array($pValue)) { - $pValue = array($pValue); - } - $this->condition = $pValue; - return $this; - } - - /** - * Add Condition - * - * @param string $pValue Condition - * @return PHPExcel_Style_Conditional - */ - public function addCondition($pValue = '') - { - $this->condition[] = $pValue; - return $this; - } - - /** - * Get Style - * - * @return PHPExcel_Style - */ - public function getStyle() - { - return $this->style; - } - - /** - * Set Style - * - * @param PHPExcel_Style $pValue - * @throws PHPExcel_Exception - * @return PHPExcel_Style_Conditional - */ - public function setStyle(PHPExcel_Style $pValue = null) - { - $this->style = $pValue; - return $this; - } - - /** - * Get hash code - * - * @return string Hash code - */ - public function getHashCode() - { - return md5( - $this->conditionType . - $this->operatorType . - implode(';', $this->condition) . - $this->style->getHashCode() . - __CLASS__ - ); - } - - /** - * Implement PHP __clone to create a deep clone, not just a shallow copy. - */ - public function __clone() - { - $vars = get_object_vars($this); - foreach ($vars as $key => $value) { - if (is_object($value)) { - $this->$key = clone $value; - } else { - $this->$key = $value; - } - } - } -} diff --git a/Utils/PHPExcel/Style/Fill.php b/Utils/PHPExcel/Style/Fill.php deleted file mode 100644 index c2b9bcc..0000000 --- a/Utils/PHPExcel/Style/Fill.php +++ /dev/null @@ -1,322 +0,0 @@ -<?php - -/** - * PHPExcel_Style_Fill - * - * Copyright (c) 2006 - 2015 PHPExcel - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - * - * @category PHPExcel - * @package PHPExcel_Style - * @copyright Copyright (c) 2006 - 2015 PHPExcel (http://www.codeplex.com/PHPExcel) - * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL - * @version ##VERSION##, ##DATE## - */ -class PHPExcel_Style_Fill extends PHPExcel_Style_Supervisor implements PHPExcel_IComparable -{ - /* Fill types */ - const FILL_NONE = 'none'; - const FILL_SOLID = 'solid'; - const FILL_GRADIENT_LINEAR = 'linear'; - const FILL_GRADIENT_PATH = 'path'; - const FILL_PATTERN_DARKDOWN = 'darkDown'; - const FILL_PATTERN_DARKGRAY = 'darkGray'; - const FILL_PATTERN_DARKGRID = 'darkGrid'; - const FILL_PATTERN_DARKHORIZONTAL = 'darkHorizontal'; - const FILL_PATTERN_DARKTRELLIS = 'darkTrellis'; - const FILL_PATTERN_DARKUP = 'darkUp'; - const FILL_PATTERN_DARKVERTICAL = 'darkVertical'; - const FILL_PATTERN_GRAY0625 = 'gray0625'; - const FILL_PATTERN_GRAY125 = 'gray125'; - const FILL_PATTERN_LIGHTDOWN = 'lightDown'; - const FILL_PATTERN_LIGHTGRAY = 'lightGray'; - const FILL_PATTERN_LIGHTGRID = 'lightGrid'; - const FILL_PATTERN_LIGHTHORIZONTAL = 'lightHorizontal'; - const FILL_PATTERN_LIGHTTRELLIS = 'lightTrellis'; - const FILL_PATTERN_LIGHTUP = 'lightUp'; - const FILL_PATTERN_LIGHTVERTICAL = 'lightVertical'; - const FILL_PATTERN_MEDIUMGRAY = 'mediumGray'; - - /** - * Fill type - * - * @var string - */ - protected $fillType = PHPExcel_Style_Fill::FILL_NONE; - - /** - * Rotation - * - * @var double - */ - protected $rotation = 0; - - /** - * Start color - * - * @var PHPExcel_Style_Color - */ - protected $startColor; - - /** - * End color - * - * @var PHPExcel_Style_Color - */ - protected $endColor; - - /** - * Create a new PHPExcel_Style_Fill - * - * @param boolean $isSupervisor Flag indicating if this is a supervisor or not - * Leave this value at default unless you understand exactly what - * its ramifications are - * @param boolean $isConditional Flag indicating if this is a conditional style or not - * Leave this value at default unless you understand exactly what - * its ramifications are - */ - public function __construct($isSupervisor = false, $isConditional = false) - { - // Supervisor? - parent::__construct($isSupervisor); - - // Initialise values - if ($isConditional) { - $this->fillType = null; - } - $this->startColor = new PHPExcel_Style_Color(PHPExcel_Style_Color::COLOR_WHITE, $isSupervisor, $isConditional); - $this->endColor = new PHPExcel_Style_Color(PHPExcel_Style_Color::COLOR_BLACK, $isSupervisor, $isConditional); - - // bind parent if we are a supervisor - if ($isSupervisor) { - $this->startColor->bindParent($this, 'startColor'); - $this->endColor->bindParent($this, 'endColor'); - } - } - - /** - * Apply styles from array - * - * <code> - * $objPHPExcel->getActiveSheet()->getStyle('B2')->getFill()->applyFromArray( - * array( - * 'type' => PHPExcel_Style_Fill::FILL_GRADIENT_LINEAR, - * 'rotation' => 0, - * 'startcolor' => array( - * 'rgb' => '000000' - * ), - * 'endcolor' => array( - * 'argb' => 'FFFFFFFF' - * ) - * ) - * ); - * </code> - * - * @param array $pStyles Array containing style information - * @throws PHPExcel_Exception - * @return PHPExcel_Style_Fill - */ - public function applyFromArray($pStyles = null) - { - if (is_array($pStyles)) { - if ($this->isSupervisor) { - $this->getActiveSheet()->getStyle($this->getSelectedCells())->applyFromArray($this->getStyleArray($pStyles)); - } else { - if (array_key_exists('type', $pStyles)) { - $this->setFillType($pStyles['type']); - } - if (array_key_exists('rotation', $pStyles)) { - $this->setRotation($pStyles['rotation']); - } - if (array_key_exists('startcolor', $pStyles)) { - $this->getStartColor()->applyFromArray($pStyles['startcolor']); - } - if (array_key_exists('endcolor', $pStyles)) { - $this->getEndColor()->applyFromArray($pStyles['endcolor']); - } - if (array_key_exists('color', $pStyles)) { - $this->getStartColor()->applyFromArray($pStyles['color']); - } - } - } else { - throw new PHPExcel_Exception("Invalid style array passed."); - } - return $this; - } - - /** - * Build style array from subcomponents - * - * @param array $array - * @return array - */ - public function getStyleArray($array) - { - return array('fill' => $array); - } - - /** - * Get Start Color - * - * @return PHPExcel_Style_Color - */ - public function getStartColor() - { - return $this->startColor; - } - - /** - * Set Start Color - * - * @param PHPExcel_Style_Color $pValue - * @throws PHPExcel_Exception - * @return PHPExcel_Style_Fill - */ - public function setStartColor(PHPExcel_Style_Color $pValue = null) - { - // make sure parameter is a real color and not a supervisor - $color = $pValue->getIsSupervisor() ? $pValue->getSharedComponent() : $pValue; - - if ($this->isSupervisor) { - $styleArray = $this->getStartColor()->getStyleArray(array('argb' => $color->getARGB())); - $this->getActiveSheet()->getStyle($this->getSelectedCells())->applyFromArray($styleArray); - } else { - $this->startColor = $color; - } - return $this; - } - - /** - * Get End Color - * - * @return PHPExcel_Style_Color - */ - public function getEndColor() - { - return $this->endColor; - } - - /** - * Set End Color - * - * @param PHPExcel_Style_Color $pValue - * @throws PHPExcel_Exception - * @return PHPExcel_Style_Fill - */ - public function setEndColor(PHPExcel_Style_Color $pValue = null) - { - // make sure parameter is a real color and not a supervisor - $color = $pValue->getIsSupervisor() ? $pValue->getSharedComponent() : $pValue; - - if ($this->isSupervisor) { - $styleArray = $this->getEndColor()->getStyleArray(array('argb' => $color->getARGB())); - $this->getActiveSheet()->getStyle($this->getSelectedCells())->applyFromArray($styleArray); - } else { - $this->endColor = $color; - } - return $this; - } - - /** - * Get hash code - * - * @return string Hash code - */ - public function getHashCode() - { - if ($this->isSupervisor) { - return $this->getSharedComponent()->getHashCode(); - } - return md5( - $this->getFillType() . - $this->getRotation() . - $this->getStartColor()->getHashCode() . - $this->getEndColor()->getHashCode() . - __CLASS__ - ); - } - - /** - * Get the shared style component for the currently active cell in currently active sheet. - * Only used for style supervisor - * - * @return PHPExcel_Style_Fill - */ - public function getSharedComponent() - { - return $this->parent->getSharedComponent()->getFill(); - } - - /** - * Get Fill Type - * - * @return string - */ - public function getFillType() - { - if ($this->isSupervisor) { - return $this->getSharedComponent()->getFillType(); - } - return $this->fillType; - } - - /** - * Set Fill Type - * - * @param string $pValue PHPExcel_Style_Fill fill type - * @return PHPExcel_Style_Fill - */ - public function setFillType($pValue = PHPExcel_Style_Fill::FILL_NONE) - { - if ($this->isSupervisor) { - $styleArray = $this->getStyleArray(array('type' => $pValue)); - $this->getActiveSheet()->getStyle($this->getSelectedCells())->applyFromArray($styleArray); - } else { - $this->fillType = $pValue; - } - return $this; - } - - /** - * Get Rotation - * - * @return double - */ - public function getRotation() - { - if ($this->isSupervisor) { - return $this->getSharedComponent()->getRotation(); - } - return $this->rotation; - } - - /** - * Set Rotation - * - * @param double $pValue - * @return PHPExcel_Style_Fill - */ - public function setRotation($pValue = 0) - { - if ($this->isSupervisor) { - $styleArray = $this->getStyleArray(array('rotation' => $pValue)); - $this->getActiveSheet()->getStyle($this->getSelectedCells())->applyFromArray($styleArray); - } else { - $this->rotation = $pValue; - } - return $this; - } -} diff --git a/Utils/PHPExcel/Style/Font.php b/Utils/PHPExcel/Style/Font.php deleted file mode 100644 index 9566e1d..0000000 --- a/Utils/PHPExcel/Style/Font.php +++ /dev/null @@ -1,543 +0,0 @@ -<?php - -/** - * PHPExcel_Style_Font - * - * Copyright (c) 2006 - 2015 PHPExcel - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - * - * @category PHPExcel - * @package PHPExcel_Style - * @copyright Copyright (c) 2006 - 2015 PHPExcel (http://www.codeplex.com/PHPExcel) - * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL - * @version ##VERSION##, ##DATE## - */ -class PHPExcel_Style_Font extends PHPExcel_Style_Supervisor implements PHPExcel_IComparable -{ - /* Underline types */ - const UNDERLINE_NONE = 'none'; - const UNDERLINE_DOUBLE = 'double'; - const UNDERLINE_DOUBLEACCOUNTING = 'doubleAccounting'; - const UNDERLINE_SINGLE = 'single'; - const UNDERLINE_SINGLEACCOUNTING = 'singleAccounting'; - - /** - * Font Name - * - * @var string - */ - protected $name = 'Calibri'; - - /** - * Font Size - * - * @var float - */ - protected $size = 11; - - /** - * Bold - * - * @var boolean - */ - protected $bold = false; - - /** - * Italic - * - * @var boolean - */ - protected $italic = false; - - /** - * Superscript - * - * @var boolean - */ - protected $superScript = false; - - /** - * Subscript - * - * @var boolean - */ - protected $subScript = false; - - /** - * Underline - * - * @var string - */ - protected $underline = self::UNDERLINE_NONE; - - /** - * Strikethrough - * - * @var boolean - */ - protected $strikethrough = false; - - /** - * Foreground color - * - * @var PHPExcel_Style_Color - */ - protected $color; - - /** - * Create a new PHPExcel_Style_Font - * - * @param boolean $isSupervisor Flag indicating if this is a supervisor or not - * Leave this value at default unless you understand exactly what - * its ramifications are - * @param boolean $isConditional Flag indicating if this is a conditional style or not - * Leave this value at default unless you understand exactly what - * its ramifications are - */ - public function __construct($isSupervisor = false, $isConditional = false) - { - // Supervisor? - parent::__construct($isSupervisor); - - // Initialise values - if ($isConditional) { - $this->name = null; - $this->size = null; - $this->bold = null; - $this->italic = null; - $this->superScript = null; - $this->subScript = null; - $this->underline = null; - $this->strikethrough = null; - $this->color = new PHPExcel_Style_Color(PHPExcel_Style_Color::COLOR_BLACK, $isSupervisor, $isConditional); - } else { - $this->color = new PHPExcel_Style_Color(PHPExcel_Style_Color::COLOR_BLACK, $isSupervisor); - } - // bind parent if we are a supervisor - if ($isSupervisor) { - $this->color->bindParent($this, 'color'); - } - } - - /** - * Get the shared style component for the currently active cell in currently active sheet. - * Only used for style supervisor - * - * @return PHPExcel_Style_Font - */ - public function getSharedComponent() - { - return $this->parent->getSharedComponent()->getFont(); - } - - /** - * Build style array from subcomponents - * - * @param array $array - * @return array - */ - public function getStyleArray($array) - { - return array('font' => $array); - } - - /** - * Apply styles from array - * - * <code> - * $objPHPExcel->getActiveSheet()->getStyle('B2')->getFont()->applyFromArray( - * array( - * 'name' => 'Arial', - * 'bold' => TRUE, - * 'italic' => FALSE, - * 'underline' => PHPExcel_Style_Font::UNDERLINE_DOUBLE, - * 'strike' => FALSE, - * 'color' => array( - * 'rgb' => '808080' - * ) - * ) - * ); - * </code> - * - * @param array $pStyles Array containing style information - * @throws PHPExcel_Exception - * @return PHPExcel_Style_Font - */ - public function applyFromArray($pStyles = null) - { - if (is_array($pStyles)) { - if ($this->isSupervisor) { - $this->getActiveSheet()->getStyle($this->getSelectedCells())->applyFromArray($this->getStyleArray($pStyles)); - } else { - if (array_key_exists('name', $pStyles)) { - $this->setName($pStyles['name']); - } - if (array_key_exists('bold', $pStyles)) { - $this->setBold($pStyles['bold']); - } - if (array_key_exists('italic', $pStyles)) { - $this->setItalic($pStyles['italic']); - } - if (array_key_exists('superScript', $pStyles)) { - $this->setSuperScript($pStyles['superScript']); - } - if (array_key_exists('subScript', $pStyles)) { - $this->setSubScript($pStyles['subScript']); - } - if (array_key_exists('underline', $pStyles)) { - $this->setUnderline($pStyles['underline']); - } - if (array_key_exists('strike', $pStyles)) { - $this->setStrikethrough($pStyles['strike']); - } - if (array_key_exists('color', $pStyles)) { - $this->getColor()->applyFromArray($pStyles['color']); - } - if (array_key_exists('size', $pStyles)) { - $this->setSize($pStyles['size']); - } - } - } else { - throw new PHPExcel_Exception("Invalid style array passed."); - } - return $this; - } - - /** - * Get Name - * - * @return string - */ - public function getName() - { - if ($this->isSupervisor) { - return $this->getSharedComponent()->getName(); - } - return $this->name; - } - - /** - * Set Name - * - * @param string $pValue - * @return PHPExcel_Style_Font - */ - public function setName($pValue = 'Calibri') - { - if ($pValue == '') { - $pValue = 'Calibri'; - } - if ($this->isSupervisor) { - $styleArray = $this->getStyleArray(array('name' => $pValue)); - $this->getActiveSheet()->getStyle($this->getSelectedCells())->applyFromArray($styleArray); - } else { - $this->name = $pValue; - } - return $this; - } - - /** - * Get Size - * - * @return double - */ - public function getSize() - { - if ($this->isSupervisor) { - return $this->getSharedComponent()->getSize(); - } - return $this->size; - } - - /** - * Set Size - * - * @param double $pValue - * @return PHPExcel_Style_Font - */ - public function setSize($pValue = 10) - { - if ($pValue == '') { - $pValue = 10; - } - if ($this->isSupervisor) { - $styleArray = $this->getStyleArray(array('size' => $pValue)); - $this->getActiveSheet()->getStyle($this->getSelectedCells())->applyFromArray($styleArray); - } else { - $this->size = $pValue; - } - return $this; - } - - /** - * Get Bold - * - * @return boolean - */ - public function getBold() - { - if ($this->isSupervisor) { - return $this->getSharedComponent()->getBold(); - } - return $this->bold; - } - - /** - * Set Bold - * - * @param boolean $pValue - * @return PHPExcel_Style_Font - */ - public function setBold($pValue = false) - { - if ($pValue == '') { - $pValue = false; - } - if ($this->isSupervisor) { - $styleArray = $this->getStyleArray(array('bold' => $pValue)); - $this->getActiveSheet()->getStyle($this->getSelectedCells())->applyFromArray($styleArray); - } else { - $this->bold = $pValue; - } - return $this; - } - - /** - * Get Italic - * - * @return boolean - */ - public function getItalic() - { - if ($this->isSupervisor) { - return $this->getSharedComponent()->getItalic(); - } - return $this->italic; - } - - /** - * Set Italic - * - * @param boolean $pValue - * @return PHPExcel_Style_Font - */ - public function setItalic($pValue = false) - { - if ($pValue == '') { - $pValue = false; - } - if ($this->isSupervisor) { - $styleArray = $this->getStyleArray(array('italic' => $pValue)); - $this->getActiveSheet()->getStyle($this->getSelectedCells())->applyFromArray($styleArray); - } else { - $this->italic = $pValue; - } - return $this; - } - - /** - * Get SuperScript - * - * @return boolean - */ - public function getSuperScript() - { - if ($this->isSupervisor) { - return $this->getSharedComponent()->getSuperScript(); - } - return $this->superScript; - } - - /** - * Set SuperScript - * - * @param boolean $pValue - * @return PHPExcel_Style_Font - */ - public function setSuperScript($pValue = false) - { - if ($pValue == '') { - $pValue = false; - } - if ($this->isSupervisor) { - $styleArray = $this->getStyleArray(array('superScript' => $pValue)); - $this->getActiveSheet()->getStyle($this->getSelectedCells())->applyFromArray($styleArray); - } else { - $this->superScript = $pValue; - $this->subScript = !$pValue; - } - return $this; - } - - /** - * Get SubScript - * - * @return boolean - */ - public function getSubScript() - { - if ($this->isSupervisor) { - return $this->getSharedComponent()->getSubScript(); - } - return $this->subScript; - } - - /** - * Set SubScript - * - * @param boolean $pValue - * @return PHPExcel_Style_Font - */ - public function setSubScript($pValue = false) - { - if ($pValue == '') { - $pValue = false; - } - if ($this->isSupervisor) { - $styleArray = $this->getStyleArray(array('subScript' => $pValue)); - $this->getActiveSheet()->getStyle($this->getSelectedCells())->applyFromArray($styleArray); - } else { - $this->subScript = $pValue; - $this->superScript = !$pValue; - } - return $this; - } - - /** - * Get Underline - * - * @return string - */ - public function getUnderline() - { - if ($this->isSupervisor) { - return $this->getSharedComponent()->getUnderline(); - } - return $this->underline; - } - - /** - * Set Underline - * - * @param string|boolean $pValue PHPExcel_Style_Font underline type - * If a boolean is passed, then TRUE equates to UNDERLINE_SINGLE, - * false equates to UNDERLINE_NONE - * @return PHPExcel_Style_Font - */ - public function setUnderline($pValue = self::UNDERLINE_NONE) - { - if (is_bool($pValue)) { - $pValue = ($pValue) ? self::UNDERLINE_SINGLE : self::UNDERLINE_NONE; - } elseif ($pValue == '') { - $pValue = self::UNDERLINE_NONE; - } - if ($this->isSupervisor) { - $styleArray = $this->getStyleArray(array('underline' => $pValue)); - $this->getActiveSheet()->getStyle($this->getSelectedCells())->applyFromArray($styleArray); - } else { - $this->underline = $pValue; - } - return $this; - } - - /** - * Get Strikethrough - * - * @return boolean - */ - public function getStrikethrough() - { - if ($this->isSupervisor) { - return $this->getSharedComponent()->getStrikethrough(); - } - return $this->strikethrough; - } - - /** - * Set Strikethrough - * - * @param boolean $pValue - * @return PHPExcel_Style_Font - */ - public function setStrikethrough($pValue = false) - { - if ($pValue == '') { - $pValue = false; - } - if ($this->isSupervisor) { - $styleArray = $this->getStyleArray(array('strike' => $pValue)); - $this->getActiveSheet()->getStyle($this->getSelectedCells())->applyFromArray($styleArray); - } else { - $this->strikethrough = $pValue; - } - return $this; - } - - /** - * Get Color - * - * @return PHPExcel_Style_Color - */ - public function getColor() - { - return $this->color; - } - - /** - * Set Color - * - * @param PHPExcel_Style_Color $pValue - * @throws PHPExcel_Exception - * @return PHPExcel_Style_Font - */ - public function setColor(PHPExcel_Style_Color $pValue = null) - { - // make sure parameter is a real color and not a supervisor - $color = $pValue->getIsSupervisor() ? $pValue->getSharedComponent() : $pValue; - - if ($this->isSupervisor) { - $styleArray = $this->getColor()->getStyleArray(array('argb' => $color->getARGB())); - $this->getActiveSheet()->getStyle($this->getSelectedCells())->applyFromArray($styleArray); - } else { - $this->color = $color; - } - return $this; - } - - /** - * Get hash code - * - * @return string Hash code - */ - public function getHashCode() - { - if ($this->isSupervisor) { - return $this->getSharedComponent()->getHashCode(); - } - return md5( - $this->name . - $this->size . - ($this->bold ? 't' : 'f') . - ($this->italic ? 't' : 'f') . - ($this->superScript ? 't' : 'f') . - ($this->subScript ? 't' : 'f') . - $this->underline . - ($this->strikethrough ? 't' : 'f') . - $this->color->getHashCode() . - __CLASS__ - ); - } -} diff --git a/Utils/PHPExcel/Style/NumberFormat.php b/Utils/PHPExcel/Style/NumberFormat.php deleted file mode 100644 index 1b72cda..0000000 --- a/Utils/PHPExcel/Style/NumberFormat.php +++ /dev/null @@ -1,751 +0,0 @@ -<?php - -/** - * PHPExcel_Style_NumberFormat - * - * Copyright (c) 2006 - 2015 PHPExcel - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - * - * @category PHPExcel - * @package PHPExcel_Style - * @copyright Copyright (c) 2006 - 2015 PHPExcel (http://www.codeplex.com/PHPExcel) - * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL - * @version ##VERSION##, ##DATE## - */ -class PHPExcel_Style_NumberFormat extends PHPExcel_Style_Supervisor implements PHPExcel_IComparable -{ - /* Pre-defined formats */ - const FORMAT_GENERAL = 'General'; - - const FORMAT_TEXT = '@'; - - const FORMAT_NUMBER = '0'; - const FORMAT_NUMBER_00 = '0.00'; - const FORMAT_NUMBER_COMMA_SEPARATED1 = '#,##0.00'; - const FORMAT_NUMBER_COMMA_SEPARATED2 = '#,##0.00_-'; - - const FORMAT_PERCENTAGE = '0%'; - const FORMAT_PERCENTAGE_00 = '0.00%'; - - const FORMAT_DATE_YYYYMMDD2 = 'yyyy-mm-dd'; - const FORMAT_DATE_YYYYMMDD = 'yy-mm-dd'; - const FORMAT_DATE_DDMMYYYY = 'dd/mm/yy'; - const FORMAT_DATE_DMYSLASH = 'd/m/y'; - const FORMAT_DATE_DMYMINUS = 'd-m-y'; - const FORMAT_DATE_DMMINUS = 'd-m'; - const FORMAT_DATE_MYMINUS = 'm-y'; - const FORMAT_DATE_XLSX14 = 'mm-dd-yy'; - const FORMAT_DATE_XLSX15 = 'd-mmm-yy'; - const FORMAT_DATE_XLSX16 = 'd-mmm'; - const FORMAT_DATE_XLSX17 = 'mmm-yy'; - const FORMAT_DATE_XLSX22 = 'm/d/yy h:mm'; - const FORMAT_DATE_DATETIME = 'd/m/y h:mm'; - const FORMAT_DATE_TIME1 = 'h:mm AM/PM'; - const FORMAT_DATE_TIME2 = 'h:mm:ss AM/PM'; - const FORMAT_DATE_TIME3 = 'h:mm'; - const FORMAT_DATE_TIME4 = 'h:mm:ss'; - const FORMAT_DATE_TIME5 = 'mm:ss'; - const FORMAT_DATE_TIME6 = 'h:mm:ss'; - const FORMAT_DATE_TIME7 = 'i:s.S'; - const FORMAT_DATE_TIME8 = 'h:mm:ss;@'; - const FORMAT_DATE_YYYYMMDDSLASH = 'yy/mm/dd;@'; - - const FORMAT_CURRENCY_USD_SIMPLE = '"$"#,##0.00_-'; - const FORMAT_CURRENCY_USD = '$#,##0_-'; - const FORMAT_CURRENCY_EUR_SIMPLE = '[$EUR ]#,##0.00_-'; - - /** - * Excel built-in number formats - * - * @var array - */ - protected static $builtInFormats; - - /** - * Excel built-in number formats (flipped, for faster lookups) - * - * @var array - */ - protected static $flippedBuiltInFormats; - - /** - * Format Code - * - * @var string - */ - protected $formatCode = PHPExcel_Style_NumberFormat::FORMAT_GENERAL; - - /** - * Built-in format Code - * - * @var string - */ - protected $builtInFormatCode = 0; - - /** - * Create a new PHPExcel_Style_NumberFormat - * - * @param boolean $isSupervisor Flag indicating if this is a supervisor or not - * Leave this value at default unless you understand exactly what - * its ramifications are - * @param boolean $isConditional Flag indicating if this is a conditional style or not - * Leave this value at default unless you understand exactly what - * its ramifications are - */ - public function __construct($isSupervisor = false, $isConditional = false) - { - // Supervisor? - parent::__construct($isSupervisor); - - if ($isConditional) { - $this->formatCode = null; - $this->builtInFormatCode = false; - } - } - - /** - * Get the shared style component for the currently active cell in currently active sheet. - * Only used for style supervisor - * - * @return PHPExcel_Style_NumberFormat - */ - public function getSharedComponent() - { - return $this->parent->getSharedComponent()->getNumberFormat(); - } - - /** - * Build style array from subcomponents - * - * @param array $array - * @return array - */ - public function getStyleArray($array) - { - return array('numberformat' => $array); - } - - /** - * Apply styles from array - * - * <code> - * $objPHPExcel->getActiveSheet()->getStyle('B2')->getNumberFormat()->applyFromArray( - * array( - * 'code' => PHPExcel_Style_NumberFormat::FORMAT_CURRENCY_EUR_SIMPLE - * ) - * ); - * </code> - * - * @param array $pStyles Array containing style information - * @throws PHPExcel_Exception - * @return PHPExcel_Style_NumberFormat - */ - public function applyFromArray($pStyles = null) - { - if (is_array($pStyles)) { - if ($this->isSupervisor) { - $this->getActiveSheet()->getStyle($this->getSelectedCells())->applyFromArray($this->getStyleArray($pStyles)); - } else { - if (array_key_exists('code', $pStyles)) { - $this->setFormatCode($pStyles['code']); - } - } - } else { - throw new PHPExcel_Exception("Invalid style array passed."); - } - return $this; - } - - /** - * Get Format Code - * - * @return string - */ - public function getFormatCode() - { - if ($this->isSupervisor) { - return $this->getSharedComponent()->getFormatCode(); - } - if ($this->builtInFormatCode !== false) { - return self::builtInFormatCode($this->builtInFormatCode); - } - return $this->formatCode; - } - - /** - * Set Format Code - * - * @param string $pValue - * @return PHPExcel_Style_NumberFormat - */ - public function setFormatCode($pValue = PHPExcel_Style_NumberFormat::FORMAT_GENERAL) - { - if ($pValue == '') { - $pValue = PHPExcel_Style_NumberFormat::FORMAT_GENERAL; - } - if ($this->isSupervisor) { - $styleArray = $this->getStyleArray(array('code' => $pValue)); - $this->getActiveSheet()->getStyle($this->getSelectedCells())->applyFromArray($styleArray); - } else { - $this->formatCode = $pValue; - $this->builtInFormatCode = self::builtInFormatCodeIndex($pValue); - } - return $this; - } - - /** - * Get Built-In Format Code - * - * @return int - */ - public function getBuiltInFormatCode() - { - if ($this->isSupervisor) { - return $this->getSharedComponent()->getBuiltInFormatCode(); - } - return $this->builtInFormatCode; - } - - /** - * Set Built-In Format Code - * - * @param int $pValue - * @return PHPExcel_Style_NumberFormat - */ - public function setBuiltInFormatCode($pValue = 0) - { - - if ($this->isSupervisor) { - $styleArray = $this->getStyleArray(array('code' => self::builtInFormatCode($pValue))); - $this->getActiveSheet()->getStyle($this->getSelectedCells())->applyFromArray($styleArray); - } else { - $this->builtInFormatCode = $pValue; - $this->formatCode = self::builtInFormatCode($pValue); - } - return $this; - } - - /** - * Fill built-in format codes - */ - private static function fillBuiltInFormatCodes() - { - // [MS-OI29500: Microsoft Office Implementation Information for ISO/IEC-29500 Standard Compliance] - // 18.8.30. numFmt (Number Format) - // - // The ECMA standard defines built-in format IDs - // 14: "mm-dd-yy" - // 22: "m/d/yy h:mm" - // 37: "#,##0 ;(#,##0)" - // 38: "#,##0 ;[Red](#,##0)" - // 39: "#,##0.00;(#,##0.00)" - // 40: "#,##0.00;[Red](#,##0.00)" - // 47: "mmss.0" - // KOR fmt 55: "yyyy-mm-dd" - // Excel defines built-in format IDs - // 14: "m/d/yyyy" - // 22: "m/d/yyyy h:mm" - // 37: "#,##0_);(#,##0)" - // 38: "#,##0_);[Red](#,##0)" - // 39: "#,##0.00_);(#,##0.00)" - // 40: "#,##0.00_);[Red](#,##0.00)" - // 47: "mm:ss.0" - // KOR fmt 55: "yyyy/mm/dd" - - // Built-in format codes - if (is_null(self::$builtInFormats)) { - self::$builtInFormats = array(); - - // General - self::$builtInFormats[0] = PHPExcel_Style_NumberFormat::FORMAT_GENERAL; - self::$builtInFormats[1] = '0'; - self::$builtInFormats[2] = '0.00'; - self::$builtInFormats[3] = '#,##0'; - self::$builtInFormats[4] = '#,##0.00'; - - self::$builtInFormats[9] = '0%'; - self::$builtInFormats[10] = '0.00%'; - self::$builtInFormats[11] = '0.00E+00'; - self::$builtInFormats[12] = '# ?/?'; - self::$builtInFormats[13] = '# ??/??'; - self::$builtInFormats[14] = 'm/d/yyyy'; // Despite ECMA 'mm-dd-yy'; - self::$builtInFormats[15] = 'd-mmm-yy'; - self::$builtInFormats[16] = 'd-mmm'; - self::$builtInFormats[17] = 'mmm-yy'; - self::$builtInFormats[18] = 'h:mm AM/PM'; - self::$builtInFormats[19] = 'h:mm:ss AM/PM'; - self::$builtInFormats[20] = 'h:mm'; - self::$builtInFormats[21] = 'h:mm:ss'; - self::$builtInFormats[22] = 'm/d/yyyy h:mm'; // Despite ECMA 'm/d/yy h:mm'; - - self::$builtInFormats[37] = '#,##0_);(#,##0)'; // Despite ECMA '#,##0 ;(#,##0)'; - self::$builtInFormats[38] = '#,##0_);[Red](#,##0)'; // Despite ECMA '#,##0 ;[Red](#,##0)'; - self::$builtInFormats[39] = '#,##0.00_);(#,##0.00)'; // Despite ECMA '#,##0.00;(#,##0.00)'; - self::$builtInFormats[40] = '#,##0.00_);[Red](#,##0.00)'; // Despite ECMA '#,##0.00;[Red](#,##0.00)'; - - self::$builtInFormats[44] = '_("$"* #,##0.00_);_("$"* \(#,##0.00\);_("$"* "-"??_);_(@_)'; - self::$builtInFormats[45] = 'mm:ss'; - self::$builtInFormats[46] = '[h]:mm:ss'; - self::$builtInFormats[47] = 'mm:ss.0'; // Despite ECMA 'mmss.0'; - self::$builtInFormats[48] = '##0.0E+0'; - self::$builtInFormats[49] = '@'; - - // CHT - self::$builtInFormats[27] = '[$-404]e/m/d'; - self::$builtInFormats[30] = 'm/d/yy'; - self::$builtInFormats[36] = '[$-404]e/m/d'; - self::$builtInFormats[50] = '[$-404]e/m/d'; - self::$builtInFormats[57] = '[$-404]e/m/d'; - - // THA - self::$builtInFormats[59] = 't0'; - self::$builtInFormats[60] = 't0.00'; - self::$builtInFormats[61] = 't#,##0'; - self::$builtInFormats[62] = 't#,##0.00'; - self::$builtInFormats[67] = 't0%'; - self::$builtInFormats[68] = 't0.00%'; - self::$builtInFormats[69] = 't# ?/?'; - self::$builtInFormats[70] = 't# ??/??'; - - // Flip array (for faster lookups) - self::$flippedBuiltInFormats = array_flip(self::$builtInFormats); - } - } - - /** - * Get built-in format code - * - * @param int $pIndex - * @return string - */ - public static function builtInFormatCode($pIndex) - { - // Clean parameter - $pIndex = intval($pIndex); - - // Ensure built-in format codes are available - self::fillBuiltInFormatCodes(); - // Lookup format code - if (isset(self::$builtInFormats[$pIndex])) { - return self::$builtInFormats[$pIndex]; - } - - return ''; - } - - /** - * Get built-in format code index - * - * @param string $formatCode - * @return int|boolean - */ - public static function builtInFormatCodeIndex($formatCode) - { - // Ensure built-in format codes are available - self::fillBuiltInFormatCodes(); - - // Lookup format code - if (isset(self::$flippedBuiltInFormats[$formatCode])) { - return self::$flippedBuiltInFormats[$formatCode]; - } - - return false; - } - - /** - * Get hash code - * - * @return string Hash code - */ - public function getHashCode() - { - if ($this->isSupervisor) { - return $this->getSharedComponent()->getHashCode(); - } - return md5( - $this->formatCode . - $this->builtInFormatCode . - __CLASS__ - ); - } - - /** - * Search/replace values to convert Excel date/time format masks to PHP format masks - * - * @var array - */ - private static $dateFormatReplacements = array( - // first remove escapes related to non-format characters - '\\' => '', - // 12-hour suffix - 'am/pm' => 'A', - // 4-digit year - 'e' => 'Y', - 'yyyy' => 'Y', - // 2-digit year - 'yy' => 'y', - // first letter of month - no php equivalent - 'mmmmm' => 'M', - // full month name - 'mmmm' => 'F', - // short month name - 'mmm' => 'M', - // mm is minutes if time, but can also be month w/leading zero - // so we try to identify times be the inclusion of a : separator in the mask - // It isn't perfect, but the best way I know how - ':mm' => ':i', - 'mm:' => 'i:', - // month leading zero - 'mm' => 'm', - // month no leading zero - 'm' => 'n', - // full day of week name - 'dddd' => 'l', - // short day of week name - 'ddd' => 'D', - // days leading zero - 'dd' => 'd', - // days no leading zero - 'd' => 'j', - // seconds - 'ss' => 's', - // fractional seconds - no php equivalent - '.s' => '' - ); - /** - * Search/replace values to convert Excel date/time format masks hours to PHP format masks (24 hr clock) - * - * @var array - */ - private static $dateFormatReplacements24 = array( - 'hh' => 'H', - 'h' => 'G' - ); - /** - * Search/replace values to convert Excel date/time format masks hours to PHP format masks (12 hr clock) - * - * @var array - */ - private static $dateFormatReplacements12 = array( - 'hh' => 'h', - 'h' => 'g' - ); - - private static function setLowercaseCallback($matches) { - return mb_strtolower($matches[0]); - } - - private static function escapeQuotesCallback($matches) { - return '\\' . implode('\\', str_split($matches[1])); - } - - private static function formatAsDate(&$value, &$format) - { - // strip off first part containing e.g. [$-F800] or [$USD-409] - // general syntax: [$<Currency string>-<language info>] - // language info is in hexadecimal - $format = preg_replace('/^(\[\$[A-Z]*-[0-9A-F]*\])/i', '', $format); - - // OpenOffice.org uses upper-case number formats, e.g. 'YYYY', convert to lower-case; - // but we don't want to change any quoted strings - $format = preg_replace_callback('/(?:^|")([^"]*)(?:$|")/', array('self', 'setLowercaseCallback'), $format); - - // Only process the non-quoted blocks for date format characters - $blocks = explode('"', $format); - foreach($blocks as $key => &$block) { - if ($key % 2 == 0) { - $block = strtr($block, self::$dateFormatReplacements); - if (!strpos($block, 'A')) { - // 24-hour time format - $block = strtr($block, self::$dateFormatReplacements24); - } else { - // 12-hour time format - $block = strtr($block, self::$dateFormatReplacements12); - } - } - } - $format = implode('"', $blocks); - - // escape any quoted characters so that DateTime format() will render them correctly - $format = preg_replace_callback('/"(.*)"/U', array('self', 'escapeQuotesCallback'), $format); - - $dateObj = PHPExcel_Shared_Date::ExcelToPHPObject($value); - $value = $dateObj->format($format); - } - - private static function formatAsPercentage(&$value, &$format) - { - if ($format === self::FORMAT_PERCENTAGE) { - $value = round((100 * $value), 0) . '%'; - } else { - if (preg_match('/\.[#0]+/i', $format, $m)) { - $s = substr($m[0], 0, 1) . (strlen($m[0]) - 1); - $format = str_replace($m[0], $s, $format); - } - if (preg_match('/^[#0]+/', $format, $m)) { - $format = str_replace($m[0], strlen($m[0]), $format); - } - $format = '%' . str_replace('%', 'f%%', $format); - - $value = sprintf($format, 100 * $value); - } - } - - private static function formatAsFraction(&$value, &$format) - { - $sign = ($value < 0) ? '-' : ''; - - $integerPart = floor(abs($value)); - $decimalPart = trim(fmod(abs($value), 1), '0.'); - $decimalLength = strlen($decimalPart); - $decimalDivisor = pow(10, $decimalLength); - - $GCD = PHPExcel_Calculation_MathTrig::GCD($decimalPart, $decimalDivisor); - - $adjustedDecimalPart = $decimalPart/$GCD; - $adjustedDecimalDivisor = $decimalDivisor/$GCD; - - if ((strpos($format, '0') !== false) || (strpos($format, '#') !== false) || (substr($format, 0, 3) == '? ?')) { - if ($integerPart == 0) { - $integerPart = ''; - } - $value = "$sign$integerPart $adjustedDecimalPart/$adjustedDecimalDivisor"; - } else { - $adjustedDecimalPart += $integerPart * $adjustedDecimalDivisor; - $value = "$sign$adjustedDecimalPart/$adjustedDecimalDivisor"; - } - } - - private static function complexNumberFormatMask($number, $mask, $level = 0) - { - $sign = ($number < 0.0); - $number = abs($number); - if (strpos($mask, '.') !== false) { - $numbers = explode('.', $number . '.0'); - $masks = explode('.', $mask . '.0'); - $result1 = self::complexNumberFormatMask($numbers[0], $masks[0], 1); - $result2 = strrev(self::complexNumberFormatMask(strrev($numbers[1]), strrev($masks[1]), 1)); - return (($sign) ? '-' : '') . $result1 . '.' . $result2; - } - - $r = preg_match_all('/0+/', $mask, $result, PREG_OFFSET_CAPTURE); - if ($r > 1) { - $result = array_reverse($result[0]); - - foreach ($result as $block) { - $divisor = 1 . $block[0]; - $size = strlen($block[0]); - $offset = $block[1]; - - $blockValue = sprintf( - '%0' . $size . 'd', - fmod($number, $divisor) - ); - $number = floor($number / $divisor); - $mask = substr_replace($mask, $blockValue, $offset, $size); - } - if ($number > 0) { - $mask = substr_replace($mask, $number, $offset, 0); - } - $result = $mask; - } else { - $result = $number; - } - - return (($sign) ? '-' : '') . $result; - } - - /** - * Convert a value in a pre-defined format to a PHP string - * - * @param mixed $value Value to format - * @param string $format Format code - * @param array $callBack Callback function for additional formatting of string - * @return string Formatted string - */ - public static function toFormattedString($value = '0', $format = PHPExcel_Style_NumberFormat::FORMAT_GENERAL, $callBack = null) - { - // For now we do not treat strings although section 4 of a format code affects strings - if (!is_numeric($value)) { - return $value; - } - - // For 'General' format code, we just pass the value although this is not entirely the way Excel does it, - // it seems to round numbers to a total of 10 digits. - if (($format === PHPExcel_Style_NumberFormat::FORMAT_GENERAL) || ($format === PHPExcel_Style_NumberFormat::FORMAT_TEXT)) { - return $value; - } - - // Convert any other escaped characters to quoted strings, e.g. (\T to "T") - $format = preg_replace('/(\\\(.))(?=(?:[^"]|"[^"]*")*$)/u', '"${2}"', $format); - - // Get the sections, there can be up to four sections, separated with a semi-colon (but only if not a quoted literal) - $sections = preg_split('/(;)(?=(?:[^"]|"[^"]*")*$)/u', $format); - - // Extract the relevant section depending on whether number is positive, negative, or zero? - // Text not supported yet. - // Here is how the sections apply to various values in Excel: - // 1 section: [POSITIVE/NEGATIVE/ZERO/TEXT] - // 2 sections: [POSITIVE/ZERO/TEXT] [NEGATIVE] - // 3 sections: [POSITIVE/TEXT] [NEGATIVE] [ZERO] - // 4 sections: [POSITIVE] [NEGATIVE] [ZERO] [TEXT] - switch (count($sections)) { - case 1: - $format = $sections[0]; - break; - case 2: - $format = ($value >= 0) ? $sections[0] : $sections[1]; - $value = abs($value); // Use the absolute value - break; - case 3: - $format = ($value > 0) ? - $sections[0] : ( ($value < 0) ? - $sections[1] : $sections[2]); - $value = abs($value); // Use the absolute value - break; - case 4: - $format = ($value > 0) ? - $sections[0] : ( ($value < 0) ? - $sections[1] : $sections[2]); - $value = abs($value); // Use the absolute value - break; - default: - // something is wrong, just use first section - $format = $sections[0]; - break; - } - - // In Excel formats, "_" is used to add spacing, - // The following character indicates the size of the spacing, which we can't do in HTML, so we just use a standard space - $format = preg_replace('/_./', ' ', $format); - - // Save format with color information for later use below - $formatColor = $format; - - // Strip color information - $color_regex = '/^\\[[a-zA-Z]+\\]/'; - $format = preg_replace($color_regex, '', $format); - - // Let's begin inspecting the format and converting the value to a formatted string - - // Check for date/time characters (not inside quotes) - if (preg_match('/(\[\$[A-Z]*-[0-9A-F]*\])*[hmsdy](?=(?:[^"]|"[^"]*")*$)/miu', $format, $matches)) { - // datetime format - self::formatAsDate($value, $format); - } elseif (preg_match('/%$/', $format)) { - // % number format - self::formatAsPercentage($value, $format); - } else { - if ($format === self::FORMAT_CURRENCY_EUR_SIMPLE) { - $value = 'EUR ' . sprintf('%1.2f', $value); - } else { - // Some non-number strings are quoted, so we'll get rid of the quotes, likewise any positional * symbols - $format = str_replace(array('"', '*'), '', $format); - - // Find out if we need thousands separator - // This is indicated by a comma enclosed by a digit placeholder: - // #,# or 0,0 - $useThousands = preg_match('/(#,#|0,0)/', $format); - if ($useThousands) { - $format = preg_replace('/0,0/', '00', $format); - $format = preg_replace('/#,#/', '##', $format); - } - - // Scale thousands, millions,... - // This is indicated by a number of commas after a digit placeholder: - // #, or 0.0,, - $scale = 1; // same as no scale - $matches = array(); - if (preg_match('/(#|0)(,+)/', $format, $matches)) { - $scale = pow(1000, strlen($matches[2])); - - // strip the commas - $format = preg_replace('/0,+/', '0', $format); - $format = preg_replace('/#,+/', '#', $format); - } - - if (preg_match('/#?.*\?\/\?/', $format, $m)) { - //echo 'Format mask is fractional '.$format.' <br />'; - if ($value != (int)$value) { - self::formatAsFraction($value, $format); - } - - } else { - // Handle the number itself - - // scale number - $value = $value / $scale; - - // Strip # - $format = preg_replace('/\\#/', '0', $format); - - $n = "/\[[^\]]+\]/"; - $m = preg_replace($n, '', $format); - $number_regex = "/(0+)(\.?)(0*)/"; - if (preg_match($number_regex, $m, $matches)) { - $left = $matches[1]; - $dec = $matches[2]; - $right = $matches[3]; - - // minimun width of formatted number (including dot) - $minWidth = strlen($left) + strlen($dec) + strlen($right); - if ($useThousands) { - $value = number_format( - $value, - strlen($right), - PHPExcel_Shared_String::getDecimalSeparator(), - PHPExcel_Shared_String::getThousandsSeparator() - ); - $value = preg_replace($number_regex, $value, $format); - } else { - if (preg_match('/[0#]E[+-]0/i', $format)) { - // Scientific format - $value = sprintf('%5.2E', $value); - } elseif (preg_match('/0([^\d\.]+)0/', $format)) { - $value = self::complexNumberFormatMask($value, $format); - } else { - $sprintf_pattern = "%0$minWidth." . strlen($right) . "f"; - $value = sprintf($sprintf_pattern, $value); - $value = preg_replace($number_regex, $value, $format); - } - } - } - } - if (preg_match('/\[\$(.*)\]/u', $format, $m)) { - // Currency or Accounting - $currencyFormat = $m[0]; - $currencyCode = $m[1]; - list($currencyCode) = explode('-', $currencyCode); - if ($currencyCode == '') { - $currencyCode = PHPExcel_Shared_String::getCurrencyCode(); - } - $value = preg_replace('/\[\$([^\]]*)\]/u', $currencyCode, $value); - } - } - } - - // Escape any escaped slashes to a single slash - $format = preg_replace("/\\\\/u", '\\', $format); - - // Additional formatting provided by callback function - if ($callBack !== null) { - list($writerInstance, $function) = $callBack; - $value = $writerInstance->$function($value, $formatColor); - } - - return $value; - } -} diff --git a/Utils/PHPExcel/Style/Protection.php b/Utils/PHPExcel/Style/Protection.php deleted file mode 100644 index d5568f6..0000000 --- a/Utils/PHPExcel/Style/Protection.php +++ /dev/null @@ -1,204 +0,0 @@ -<?php - -/** - * PHPExcel_Style_Protection - * - * Copyright (c) 2006 - 2015 PHPExcel - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - * - * @category PHPExcel - * @package PHPExcel_Style - * @copyright Copyright (c) 2006 - 2015 PHPExcel (http://www.codeplex.com/PHPExcel) - * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL - * @version ##VERSION##, ##DATE## - */ -class PHPExcel_Style_Protection extends PHPExcel_Style_Supervisor implements PHPExcel_IComparable -{ - /** Protection styles */ - const PROTECTION_INHERIT = 'inherit'; - const PROTECTION_PROTECTED = 'protected'; - const PROTECTION_UNPROTECTED = 'unprotected'; - - /** - * Locked - * - * @var string - */ - protected $locked; - - /** - * Hidden - * - * @var string - */ - protected $hidden; - - /** - * Create a new PHPExcel_Style_Protection - * - * @param boolean $isSupervisor Flag indicating if this is a supervisor or not - * Leave this value at default unless you understand exactly what - * its ramifications are - * @param boolean $isConditional Flag indicating if this is a conditional style or not - * Leave this value at default unless you understand exactly what - * its ramifications are - */ - public function __construct($isSupervisor = false, $isConditional = false) - { - // Supervisor? - parent::__construct($isSupervisor); - - // Initialise values - if (!$isConditional) { - $this->locked = self::PROTECTION_INHERIT; - $this->hidden = self::PROTECTION_INHERIT; - } - } - - /** - * Get the shared style component for the currently active cell in currently active sheet. - * Only used for style supervisor - * - * @return PHPExcel_Style_Protection - */ - public function getSharedComponent() - { - return $this->parent->getSharedComponent()->getProtection(); - } - - /** - * Build style array from subcomponents - * - * @param array $array - * @return array - */ - public function getStyleArray($array) - { - return array('protection' => $array); - } - - /** - * Apply styles from array - * - * <code> - * $objPHPExcel->getActiveSheet()->getStyle('B2')->getLocked()->applyFromArray( - * array( - * 'locked' => TRUE, - * 'hidden' => FALSE - * ) - * ); - * </code> - * - * @param array $pStyles Array containing style information - * @throws PHPExcel_Exception - * @return PHPExcel_Style_Protection - */ - public function applyFromArray($pStyles = null) - { - if (is_array($pStyles)) { - if ($this->isSupervisor) { - $this->getActiveSheet()->getStyle($this->getSelectedCells())->applyFromArray($this->getStyleArray($pStyles)); - } else { - if (isset($pStyles['locked'])) { - $this->setLocked($pStyles['locked']); - } - if (isset($pStyles['hidden'])) { - $this->setHidden($pStyles['hidden']); - } - } - } else { - throw new PHPExcel_Exception("Invalid style array passed."); - } - return $this; - } - - /** - * Get locked - * - * @return string - */ - public function getLocked() - { - if ($this->isSupervisor) { - return $this->getSharedComponent()->getLocked(); - } - return $this->locked; - } - - /** - * Set locked - * - * @param string $pValue - * @return PHPExcel_Style_Protection - */ - public function setLocked($pValue = self::PROTECTION_INHERIT) - { - if ($this->isSupervisor) { - $styleArray = $this->getStyleArray(array('locked' => $pValue)); - $this->getActiveSheet()->getStyle($this->getSelectedCells())->applyFromArray($styleArray); - } else { - $this->locked = $pValue; - } - return $this; - } - - /** - * Get hidden - * - * @return string - */ - public function getHidden() - { - if ($this->isSupervisor) { - return $this->getSharedComponent()->getHidden(); - } - return $this->hidden; - } - - /** - * Set hidden - * - * @param string $pValue - * @return PHPExcel_Style_Protection - */ - public function setHidden($pValue = self::PROTECTION_INHERIT) - { - if ($this->isSupervisor) { - $styleArray = $this->getStyleArray(array('hidden' => $pValue)); - $this->getActiveSheet()->getStyle($this->getSelectedCells())->applyFromArray($styleArray); - } else { - $this->hidden = $pValue; - } - return $this; - } - - /** - * Get hash code - * - * @return string Hash code - */ - public function getHashCode() - { - if ($this->isSupervisor) { - return $this->getSharedComponent()->getHashCode(); - } - return md5( - $this->locked . - $this->hidden . - __CLASS__ - ); - } -} diff --git a/Utils/PHPExcel/Style/Supervisor.php b/Utils/PHPExcel/Style/Supervisor.php deleted file mode 100644 index a90e1c6..0000000 --- a/Utils/PHPExcel/Style/Supervisor.php +++ /dev/null @@ -1,125 +0,0 @@ -<?php - -/** - * PHPExcel_Style_Supervisor - * - * Copyright (c) 2006 - 2015 PHPExcel - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - * - * @category PHPExcel - * @package PHPExcel_Style - * @copyright Copyright (c) 2006 - 2015 PHPExcel (http://www.codeplex.com/PHPExcel) - * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL - * @version ##VERSION##, ##DATE## - */ -abstract class PHPExcel_Style_Supervisor -{ - /** - * Supervisor? - * - * @var boolean - */ - protected $isSupervisor; - - /** - * Parent. Only used for supervisor - * - * @var PHPExcel_Style - */ - protected $parent; - - /** - * Create a new PHPExcel_Style_Alignment - * - * @param boolean $isSupervisor Flag indicating if this is a supervisor or not - * Leave this value at default unless you understand exactly what - * its ramifications are - */ - public function __construct($isSupervisor = false) - { - // Supervisor? - $this->isSupervisor = $isSupervisor; - } - - /** - * Bind parent. Only used for supervisor - * - * @param PHPExcel $parent - * @return PHPExcel_Style_Supervisor - */ - public function bindParent($parent, $parentPropertyName = null) - { - $this->parent = $parent; - return $this; - } - - /** - * Is this a supervisor or a cell style component? - * - * @return boolean - */ - public function getIsSupervisor() - { - return $this->isSupervisor; - } - - /** - * Get the currently active sheet. Only used for supervisor - * - * @return PHPExcel_Worksheet - */ - public function getActiveSheet() - { - return $this->parent->getActiveSheet(); - } - - /** - * Get the currently active cell coordinate in currently active sheet. - * Only used for supervisor - * - * @return string E.g. 'A1' - */ - public function getSelectedCells() - { - return $this->getActiveSheet()->getSelectedCells(); - } - - /** - * Get the currently active cell coordinate in currently active sheet. - * Only used for supervisor - * - * @return string E.g. 'A1' - */ - public function getActiveCell() - { - return $this->getActiveSheet()->getActiveCell(); - } - - /** - * Implement PHP __clone to create a deep clone, not just a shallow copy. - */ - public function __clone() - { - $vars = get_object_vars($this); - foreach ($vars as $key => $value) { - if ((is_object($value)) && ($key != 'parent')) { - $this->$key = clone $value; - } else { - $this->$key = $value; - } - } - } -} diff --git a/Utils/PHPExcel/Worksheet.php b/Utils/PHPExcel/Worksheet.php deleted file mode 100644 index 483aa00..0000000 --- a/Utils/PHPExcel/Worksheet.php +++ /dev/null @@ -1,2968 +0,0 @@ -<?php - -/** - * PHPExcel_Worksheet - * - * Copyright (c) 2006 - 2015 PHPExcel - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - * - * @category PHPExcel - * @package PHPExcel_Worksheet - * @copyright Copyright (c) 2006 - 2015 PHPExcel (http://www.codeplex.com/PHPExcel) - * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL - * @version ##VERSION##, ##DATE## - */ -class PHPExcel_Worksheet implements PHPExcel_IComparable -{ - /* Break types */ - const BREAK_NONE = 0; - const BREAK_ROW = 1; - const BREAK_COLUMN = 2; - - /* Sheet state */ - const SHEETSTATE_VISIBLE = 'visible'; - const SHEETSTATE_HIDDEN = 'hidden'; - const SHEETSTATE_VERYHIDDEN = 'veryHidden'; - - /** - * Invalid characters in sheet title - * - * @var array - */ - private static $invalidCharacters = array('*', ':', '/', '\\', '?', '[', ']'); - - /** - * Parent spreadsheet - * - * @var PHPExcel - */ - private $parent; - - /** - * Cacheable collection of cells - * - * @var PHPExcel_CachedObjectStorage_xxx - */ - private $cellCollection; - - /** - * Collection of row dimensions - * - * @var PHPExcel_Worksheet_RowDimension[] - */ - private $rowDimensions = array(); - - /** - * Default row dimension - * - * @var PHPExcel_Worksheet_RowDimension - */ - private $defaultRowDimension; - - /** - * Collection of column dimensions - * - * @var PHPExcel_Worksheet_ColumnDimension[] - */ - private $columnDimensions = array(); - - /** - * Default column dimension - * - * @var PHPExcel_Worksheet_ColumnDimension - */ - private $defaultColumnDimension = null; - - /** - * Collection of drawings - * - * @var PHPExcel_Worksheet_BaseDrawing[] - */ - private $drawingCollection = null; - - /** - * Collection of Chart objects - * - * @var PHPExcel_Chart[] - */ - private $chartCollection = array(); - - /** - * Worksheet title - * - * @var string - */ - private $title; - - /** - * Sheet state - * - * @var string - */ - private $sheetState; - - /** - * Page setup - * - * @var PHPExcel_Worksheet_PageSetup - */ - private $pageSetup; - - /** - * Page margins - * - * @var PHPExcel_Worksheet_PageMargins - */ - private $pageMargins; - - /** - * Page header/footer - * - * @var PHPExcel_Worksheet_HeaderFooter - */ - private $headerFooter; - - /** - * Sheet view - * - * @var PHPExcel_Worksheet_SheetView - */ - private $sheetView; - - /** - * Protection - * - * @var PHPExcel_Worksheet_Protection - */ - private $protection; - - /** - * Collection of styles - * - * @var PHPExcel_Style[] - */ - private $styles = array(); - - /** - * Conditional styles. Indexed by cell coordinate, e.g. 'A1' - * - * @var array - */ - private $conditionalStylesCollection = array(); - - /** - * Is the current cell collection sorted already? - * - * @var boolean - */ - private $cellCollectionIsSorted = false; - - /** - * Collection of breaks - * - * @var array - */ - private $breaks = array(); - - /** - * Collection of merged cell ranges - * - * @var array - */ - private $mergeCells = array(); - - /** - * Collection of protected cell ranges - * - * @var array - */ - private $protectedCells = array(); - - /** - * Autofilter Range and selection - * - * @var PHPExcel_Worksheet_AutoFilter - */ - private $autoFilter; - - /** - * Freeze pane - * - * @var string - */ - private $freezePane = ''; - - /** - * Show gridlines? - * - * @var boolean - */ - private $showGridlines = true; - - /** - * Print gridlines? - * - * @var boolean - */ - private $printGridlines = false; - - /** - * Show row and column headers? - * - * @var boolean - */ - private $showRowColHeaders = true; - - /** - * Show summary below? (Row/Column outline) - * - * @var boolean - */ - private $showSummaryBelow = true; - - /** - * Show summary right? (Row/Column outline) - * - * @var boolean - */ - private $showSummaryRight = true; - - /** - * Collection of comments - * - * @var PHPExcel_Comment[] - */ - private $comments = array(); - - /** - * Active cell. (Only one!) - * - * @var string - */ - private $activeCell = 'A1'; - - /** - * Selected cells - * - * @var string - */ - private $selectedCells = 'A1'; - - /** - * Cached highest column - * - * @var string - */ - private $cachedHighestColumn = 'A'; - - /** - * Cached highest row - * - * @var int - */ - private $cachedHighestRow = 1; - - /** - * Right-to-left? - * - * @var boolean - */ - private $rightToLeft = false; - - /** - * Hyperlinks. Indexed by cell coordinate, e.g. 'A1' - * - * @var array - */ - private $hyperlinkCollection = array(); - - /** - * Data validation objects. Indexed by cell coordinate, e.g. 'A1' - * - * @var array - */ - private $dataValidationCollection = array(); - - /** - * Tab color - * - * @var PHPExcel_Style_Color - */ - private $tabColor; - - /** - * Dirty flag - * - * @var boolean - */ - private $dirty = true; - - /** - * Hash - * - * @var string - */ - private $hash; - - /** - * CodeName - * - * @var string - */ - private $codeName = null; - - /** - * Create a new worksheet - * - * @param PHPExcel $pParent - * @param string $pTitle - */ - public function __construct(PHPExcel $pParent = null, $pTitle = 'Worksheet') - { - // Set parent and title - $this->parent = $pParent; - $this->setTitle($pTitle, false); - // setTitle can change $pTitle - $this->setCodeName($this->getTitle()); - $this->setSheetState(PHPExcel_Worksheet::SHEETSTATE_VISIBLE); - - $this->cellCollection = PHPExcel_CachedObjectStorageFactory::getInstance($this); - // Set page setup - $this->pageSetup = new PHPExcel_Worksheet_PageSetup(); - // Set page margins - $this->pageMargins = new PHPExcel_Worksheet_PageMargins(); - // Set page header/footer - $this->headerFooter = new PHPExcel_Worksheet_HeaderFooter(); - // Set sheet view - $this->sheetView = new PHPExcel_Worksheet_SheetView(); - // Drawing collection - $this->drawingCollection = new ArrayObject(); - // Chart collection - $this->chartCollection = new ArrayObject(); - // Protection - $this->protection = new PHPExcel_Worksheet_Protection(); - // Default row dimension - $this->defaultRowDimension = new PHPExcel_Worksheet_RowDimension(null); - // Default column dimension - $this->defaultColumnDimension = new PHPExcel_Worksheet_ColumnDimension(null); - $this->autoFilter = new PHPExcel_Worksheet_AutoFilter(null, $this); - } - - - /** - * Disconnect all cells from this PHPExcel_Worksheet object, - * typically so that the worksheet object can be unset - * - */ - public function disconnectCells() - { - if ($this->cellCollection !== null) { - $this->cellCollection->unsetWorksheetCells(); - $this->cellCollection = null; - } - // detach ourself from the workbook, so that it can then delete this worksheet successfully - $this->parent = null; - } - - /** - * Code to execute when this worksheet is unset() - * - */ - public function __destruct() - { - PHPExcel_Calculation::getInstance($this->parent)->clearCalculationCacheForWorksheet($this->title); - - $this->disconnectCells(); - } - - /** - * Return the cache controller for the cell collection - * - * @return PHPExcel_CachedObjectStorage_xxx - */ - public function getCellCacheController() - { - return $this->cellCollection; - } - - - /** - * Get array of invalid characters for sheet title - * - * @return array - */ - public static function getInvalidCharacters() - { - return self::$invalidCharacters; - } - - /** - * Check sheet code name for valid Excel syntax - * - * @param string $pValue The string to check - * @return string The valid string - * @throws Exception - */ - private static function checkSheetCodeName($pValue) - { - $CharCount = PHPExcel_Shared_String::CountCharacters($pValue); - if ($CharCount == 0) { - throw new PHPExcel_Exception('Sheet code name cannot be empty.'); - } - // Some of the printable ASCII characters are invalid: * : / \ ? [ ] and first and last characters cannot be a "'" - if ((str_replace(self::$invalidCharacters, '', $pValue) !== $pValue) || - (PHPExcel_Shared_String::Substring($pValue, -1, 1)=='\'') || - (PHPExcel_Shared_String::Substring($pValue, 0, 1)=='\'')) { - throw new PHPExcel_Exception('Invalid character found in sheet code name'); - } - - // Maximum 31 characters allowed for sheet title - if ($CharCount > 31) { - throw new PHPExcel_Exception('Maximum 31 characters allowed in sheet code name.'); - } - - return $pValue; - } - - /** - * Check sheet title for valid Excel syntax - * - * @param string $pValue The string to check - * @return string The valid string - * @throws PHPExcel_Exception - */ - private static function checkSheetTitle($pValue) - { - // Some of the printable ASCII characters are invalid: * : / \ ? [ ] - if (str_replace(self::$invalidCharacters, '', $pValue) !== $pValue) { - throw new PHPExcel_Exception('Invalid character found in sheet title'); - } - - // Maximum 31 characters allowed for sheet title - if (PHPExcel_Shared_String::CountCharacters($pValue) > 31) { - throw new PHPExcel_Exception('Maximum 31 characters allowed in sheet title.'); - } - - return $pValue; - } - - /** - * Get collection of cells - * - * @param boolean $pSorted Also sort the cell collection? - * @return PHPExcel_Cell[] - */ - public function getCellCollection($pSorted = true) - { - if ($pSorted) { - // Re-order cell collection - return $this->sortCellCollection(); - } - if ($this->cellCollection !== null) { - return $this->cellCollection->getCellList(); - } - return array(); - } - - /** - * Sort collection of cells - * - * @return PHPExcel_Worksheet - */ - public function sortCellCollection() - { - if ($this->cellCollection !== null) { - return $this->cellCollection->getSortedCellList(); - } - return array(); - } - - /** - * Get collection of row dimensions - * - * @return PHPExcel_Worksheet_RowDimension[] - */ - public function getRowDimensions() - { - return $this->rowDimensions; - } - - /** - * Get default row dimension - * - * @return PHPExcel_Worksheet_RowDimension - */ - public function getDefaultRowDimension() - { - return $this->defaultRowDimension; - } - - /** - * Get collection of column dimensions - * - * @return PHPExcel_Worksheet_ColumnDimension[] - */ - public function getColumnDimensions() - { - return $this->columnDimensions; - } - - /** - * Get default column dimension - * - * @return PHPExcel_Worksheet_ColumnDimension - */ - public function getDefaultColumnDimension() - { - return $this->defaultColumnDimension; - } - - /** - * Get collection of drawings - * - * @return PHPExcel_Worksheet_BaseDrawing[] - */ - public function getDrawingCollection() - { - return $this->drawingCollection; - } - - /** - * Get collection of charts - * - * @return PHPExcel_Chart[] - */ - public function getChartCollection() - { - return $this->chartCollection; - } - - /** - * Add chart - * - * @param PHPExcel_Chart $pChart - * @param int|null $iChartIndex Index where chart should go (0,1,..., or null for last) - * @return PHPExcel_Chart - */ - public function addChart(PHPExcel_Chart $pChart = null, $iChartIndex = null) - { - $pChart->setWorksheet($this); - if (is_null($iChartIndex)) { - $this->chartCollection[] = $pChart; - } else { - // Insert the chart at the requested index - array_splice($this->chartCollection, $iChartIndex, 0, array($pChart)); - } - - return $pChart; - } - - /** - * Return the count of charts on this worksheet - * - * @return int The number of charts - */ - public function getChartCount() - { - return count($this->chartCollection); - } - - /** - * Get a chart by its index position - * - * @param string $index Chart index position - * @return false|PHPExcel_Chart - * @throws PHPExcel_Exception - */ - public function getChartByIndex($index = null) - { - $chartCount = count($this->chartCollection); - if ($chartCount == 0) { - return false; - } - if (is_null($index)) { - $index = --$chartCount; - } - if (!isset($this->chartCollection[$index])) { - return false; - } - - return $this->chartCollection[$index]; - } - - /** - * Return an array of the names of charts on this worksheet - * - * @return string[] The names of charts - * @throws PHPExcel_Exception - */ - public function getChartNames() - { - $chartNames = array(); - foreach ($this->chartCollection as $chart) { - $chartNames[] = $chart->getName(); - } - return $chartNames; - } - - /** - * Get a chart by name - * - * @param string $chartName Chart name - * @return false|PHPExcel_Chart - * @throws PHPExcel_Exception - */ - public function getChartByName($chartName = '') - { - $chartCount = count($this->chartCollection); - if ($chartCount == 0) { - return false; - } - foreach ($this->chartCollection as $index => $chart) { - if ($chart->getName() == $chartName) { - return $this->chartCollection[$index]; - } - } - return false; - } - - /** - * Refresh column dimensions - * - * @return PHPExcel_Worksheet - */ - public function refreshColumnDimensions() - { - $currentColumnDimensions = $this->getColumnDimensions(); - $newColumnDimensions = array(); - - foreach ($currentColumnDimensions as $objColumnDimension) { - $newColumnDimensions[$objColumnDimension->getColumnIndex()] = $objColumnDimension; - } - - $this->columnDimensions = $newColumnDimensions; - - return $this; - } - - /** - * Refresh row dimensions - * - * @return PHPExcel_Worksheet - */ - public function refreshRowDimensions() - { - $currentRowDimensions = $this->getRowDimensions(); - $newRowDimensions = array(); - - foreach ($currentRowDimensions as $objRowDimension) { - $newRowDimensions[$objRowDimension->getRowIndex()] = $objRowDimension; - } - - $this->rowDimensions = $newRowDimensions; - - return $this; - } - - /** - * Calculate worksheet dimension - * - * @return string String containing the dimension of this worksheet - */ - public function calculateWorksheetDimension() - { - // Return - return 'A1' . ':' . $this->getHighestColumn() . $this->getHighestRow(); - } - - /** - * Calculate worksheet data dimension - * - * @return string String containing the dimension of this worksheet that actually contain data - */ - public function calculateWorksheetDataDimension() - { - // Return - return 'A1' . ':' . $this->getHighestDataColumn() . $this->getHighestDataRow(); - } - - /** - * Calculate widths for auto-size columns - * - * @param boolean $calculateMergeCells Calculate merge cell width - * @return PHPExcel_Worksheet; - */ - public function calculateColumnWidths($calculateMergeCells = false) - { - // initialize $autoSizes array - $autoSizes = array(); - foreach ($this->getColumnDimensions() as $colDimension) { - if ($colDimension->getAutoSize()) { - $autoSizes[$colDimension->getColumnIndex()] = -1; - } - } - - // There is only something to do if there are some auto-size columns - if (!empty($autoSizes)) { - // build list of cells references that participate in a merge - $isMergeCell = array(); - foreach ($this->getMergeCells() as $cells) { - foreach (PHPExcel_Cell::extractAllCellReferencesInRange($cells) as $cellReference) { - $isMergeCell[$cellReference] = true; - } - } - - // loop through all cells in the worksheet - foreach ($this->getCellCollection(false) as $cellID) { - $cell = $this->getCell($cellID, false); - if ($cell !== null && isset($autoSizes[$this->cellCollection->getCurrentColumn()])) { - // Determine width if cell does not participate in a merge - if (!isset($isMergeCell[$this->cellCollection->getCurrentAddress()])) { - // Calculated value - // To formatted string - $cellValue = PHPExcel_Style_NumberFormat::toFormattedString( - $cell->getCalculatedValue(), - $this->getParent()->getCellXfByIndex($cell->getXfIndex())->getNumberFormat()->getFormatCode() - ); - - $autoSizes[$this->cellCollection->getCurrentColumn()] = max( - (float) $autoSizes[$this->cellCollection->getCurrentColumn()], - (float)PHPExcel_Shared_Font::calculateColumnWidth( - $this->getParent()->getCellXfByIndex($cell->getXfIndex())->getFont(), - $cellValue, - $this->getParent()->getCellXfByIndex($cell->getXfIndex())->getAlignment()->getTextRotation(), - $this->getDefaultStyle()->getFont() - ) - ); - } - } - } - - // adjust column widths - foreach ($autoSizes as $columnIndex => $width) { - if ($width == -1) { - $width = $this->getDefaultColumnDimension()->getWidth(); - } - $this->getColumnDimension($columnIndex)->setWidth($width); - } - } - - return $this; - } - - /** - * Get parent - * - * @return PHPExcel - */ - public function getParent() - { - return $this->parent; - } - - /** - * Re-bind parent - * - * @param PHPExcel $parent - * @return PHPExcel_Worksheet - */ - public function rebindParent(PHPExcel $parent) - { - if ($this->parent !== null) { - $namedRanges = $this->parent->getNamedRanges(); - foreach ($namedRanges as $namedRange) { - $parent->addNamedRange($namedRange); - } - - $this->parent->removeSheetByIndex( - $this->parent->getIndex($this) - ); - } - $this->parent = $parent; - - return $this; - } - - /** - * Get title - * - * @return string - */ - public function getTitle() - { - return $this->title; - } - - /** - * Set title - * - * @param string $pValue String containing the dimension of this worksheet - * @param string $updateFormulaCellReferences boolean Flag indicating whether cell references in formulae should - * be updated to reflect the new sheet name. - * This should be left as the default true, unless you are - * certain that no formula cells on any worksheet contain - * references to this worksheet - * @return PHPExcel_Worksheet - */ - public function setTitle($pValue = 'Worksheet', $updateFormulaCellReferences = true) - { - // Is this a 'rename' or not? - if ($this->getTitle() == $pValue) { - return $this; - } - - // Syntax check - self::checkSheetTitle($pValue); - - // Old title - $oldTitle = $this->getTitle(); - - if ($this->parent) { - // Is there already such sheet name? - if ($this->parent->sheetNameExists($pValue)) { - // Use name, but append with lowest possible integer - - if (PHPExcel_Shared_String::CountCharacters($pValue) > 29) { - $pValue = PHPExcel_Shared_String::Substring($pValue, 0, 29); - } - $i = 1; - while ($this->parent->sheetNameExists($pValue . ' ' . $i)) { - ++$i; - if ($i == 10) { - if (PHPExcel_Shared_String::CountCharacters($pValue) > 28) { - $pValue = PHPExcel_Shared_String::Substring($pValue, 0, 28); - } - } elseif ($i == 100) { - if (PHPExcel_Shared_String::CountCharacters($pValue) > 27) { - $pValue = PHPExcel_Shared_String::Substring($pValue, 0, 27); - } - } - } - - $altTitle = $pValue . ' ' . $i; - return $this->setTitle($altTitle, $updateFormulaCellReferences); - } - } - - // Set title - $this->title = $pValue; - $this->dirty = true; - - if ($this->parent && $this->parent->getCalculationEngine()) { - // New title - $newTitle = $this->getTitle(); - $this->parent->getCalculationEngine() - ->renameCalculationCacheForWorksheet($oldTitle, $newTitle); - if ($updateFormulaCellReferences) { - PHPExcel_ReferenceHelper::getInstance()->updateNamedFormulas($this->parent, $oldTitle, $newTitle); - } - } - - return $this; - } - - /** - * Get sheet state - * - * @return string Sheet state (visible, hidden, veryHidden) - */ - public function getSheetState() - { - return $this->sheetState; - } - - /** - * Set sheet state - * - * @param string $value Sheet state (visible, hidden, veryHidden) - * @return PHPExcel_Worksheet - */ - public function setSheetState($value = PHPExcel_Worksheet::SHEETSTATE_VISIBLE) - { - $this->sheetState = $value; - return $this; - } - - /** - * Get page setup - * - * @return PHPExcel_Worksheet_PageSetup - */ - public function getPageSetup() - { - return $this->pageSetup; - } - - /** - * Set page setup - * - * @param PHPExcel_Worksheet_PageSetup $pValue - * @return PHPExcel_Worksheet - */ - public function setPageSetup(PHPExcel_Worksheet_PageSetup $pValue) - { - $this->pageSetup = $pValue; - return $this; - } - - /** - * Get page margins - * - * @return PHPExcel_Worksheet_PageMargins - */ - public function getPageMargins() - { - return $this->pageMargins; - } - - /** - * Set page margins - * - * @param PHPExcel_Worksheet_PageMargins $pValue - * @return PHPExcel_Worksheet - */ - public function setPageMargins(PHPExcel_Worksheet_PageMargins $pValue) - { - $this->pageMargins = $pValue; - return $this; - } - - /** - * Get page header/footer - * - * @return PHPExcel_Worksheet_HeaderFooter - */ - public function getHeaderFooter() - { - return $this->headerFooter; - } - - /** - * Set page header/footer - * - * @param PHPExcel_Worksheet_HeaderFooter $pValue - * @return PHPExcel_Worksheet - */ - public function setHeaderFooter(PHPExcel_Worksheet_HeaderFooter $pValue) - { - $this->headerFooter = $pValue; - return $this; - } - - /** - * Get sheet view - * - * @return PHPExcel_Worksheet_SheetView - */ - public function getSheetView() - { - return $this->sheetView; - } - - /** - * Set sheet view - * - * @param PHPExcel_Worksheet_SheetView $pValue - * @return PHPExcel_Worksheet - */ - public function setSheetView(PHPExcel_Worksheet_SheetView $pValue) - { - $this->sheetView = $pValue; - return $this; - } - - /** - * Get Protection - * - * @return PHPExcel_Worksheet_Protection - */ - public function getProtection() - { - return $this->protection; - } - - /** - * Set Protection - * - * @param PHPExcel_Worksheet_Protection $pValue - * @return PHPExcel_Worksheet - */ - public function setProtection(PHPExcel_Worksheet_Protection $pValue) - { - $this->protection = $pValue; - $this->dirty = true; - - return $this; - } - - /** - * Get highest worksheet column - * - * @param string $row Return the data highest column for the specified row, - * or the highest column of any row if no row number is passed - * @return string Highest column name - */ - public function getHighestColumn($row = null) - { - if ($row == null) { - return $this->cachedHighestColumn; - } - return $this->getHighestDataColumn($row); - } - - /** - * Get highest worksheet column that contains data - * - * @param string $row Return the highest data column for the specified row, - * or the highest data column of any row if no row number is passed - * @return string Highest column name that contains data - */ - public function getHighestDataColumn($row = null) - { - return $this->cellCollection->getHighestColumn($row); - } - - /** - * Get highest worksheet row - * - * @param string $column Return the highest data row for the specified column, - * or the highest row of any column if no column letter is passed - * @return int Highest row number - */ - public function getHighestRow($column = null) - { - if ($column == null) { - return $this->cachedHighestRow; - } - return $this->getHighestDataRow($column); - } - - /** - * Get highest worksheet row that contains data - * - * @param string $column Return the highest data row for the specified column, - * or the highest data row of any column if no column letter is passed - * @return string Highest row number that contains data - */ - public function getHighestDataRow($column = null) - { - return $this->cellCollection->getHighestRow($column); - } - - /** - * Get highest worksheet column and highest row that have cell records - * - * @return array Highest column name and highest row number - */ - public function getHighestRowAndColumn() - { - return $this->cellCollection->getHighestRowAndColumn(); - } - - /** - * Set a cell value - * - * @param string $pCoordinate Coordinate of the cell - * @param mixed $pValue Value of the cell - * @param bool $returnCell Return the worksheet (false, default) or the cell (true) - * @return PHPExcel_Worksheet|PHPExcel_Cell Depending on the last parameter being specified - */ - public function setCellValue($pCoordinate = 'A1', $pValue = null, $returnCell = false) - { - $cell = $this->getCell(strtoupper($pCoordinate))->setValue($pValue); - return ($returnCell) ? $cell : $this; - } - - /** - * Set a cell value by using numeric cell coordinates - * - * @param string $pColumn Numeric column coordinate of the cell (A = 0) - * @param string $pRow Numeric row coordinate of the cell - * @param mixed $pValue Value of the cell - * @param bool $returnCell Return the worksheet (false, default) or the cell (true) - * @return PHPExcel_Worksheet|PHPExcel_Cell Depending on the last parameter being specified - */ - public function setCellValueByColumnAndRow($pColumn = 0, $pRow = 1, $pValue = null, $returnCell = false) - { - $cell = $this->getCellByColumnAndRow($pColumn, $pRow)->setValue($pValue); - return ($returnCell) ? $cell : $this; - } - - /** - * Set a cell value - * - * @param string $pCoordinate Coordinate of the cell - * @param mixed $pValue Value of the cell - * @param string $pDataType Explicit data type - * @param bool $returnCell Return the worksheet (false, default) or the cell (true) - * @return PHPExcel_Worksheet|PHPExcel_Cell Depending on the last parameter being specified - */ - public function setCellValueExplicit($pCoordinate = 'A1', $pValue = null, $pDataType = PHPExcel_Cell_DataType::TYPE_STRING, $returnCell = false) - { - // Set value - $cell = $this->getCell(strtoupper($pCoordinate))->setValueExplicit($pValue, $pDataType); - return ($returnCell) ? $cell : $this; - } - - /** - * Set a cell value by using numeric cell coordinates - * - * @param string $pColumn Numeric column coordinate of the cell - * @param string $pRow Numeric row coordinate of the cell - * @param mixed $pValue Value of the cell - * @param string $pDataType Explicit data type - * @param bool $returnCell Return the worksheet (false, default) or the cell (true) - * @return PHPExcel_Worksheet|PHPExcel_Cell Depending on the last parameter being specified - */ - public function setCellValueExplicitByColumnAndRow($pColumn = 0, $pRow = 1, $pValue = null, $pDataType = PHPExcel_Cell_DataType::TYPE_STRING, $returnCell = false) - { - $cell = $this->getCellByColumnAndRow($pColumn, $pRow)->setValueExplicit($pValue, $pDataType); - return ($returnCell) ? $cell : $this; - } - - /** - * Get cell at a specific coordinate - * - * @param string $pCoordinate Coordinate of the cell - * @param boolean $createIfNotExists Flag indicating whether a new cell should be created if it doesn't - * already exist, or a null should be returned instead - * @throws PHPExcel_Exception - * @return null|PHPExcel_Cell Cell that was found/created or null - */ - public function getCell($pCoordinate = 'A1', $createIfNotExists = true) - { - // Check cell collection - if ($this->cellCollection->isDataSet(strtoupper($pCoordinate))) { - return $this->cellCollection->getCacheData($pCoordinate); - } - - // Worksheet reference? - if (strpos($pCoordinate, '!') !== false) { - $worksheetReference = PHPExcel_Worksheet::extractSheetTitle($pCoordinate, true); - return $this->parent->getSheetByName($worksheetReference[0])->getCell(strtoupper($worksheetReference[1]), $createIfNotExists); - } - - // Named range? - if ((!preg_match('/^'.PHPExcel_Calculation::CALCULATION_REGEXP_CELLREF.'$/i', $pCoordinate, $matches)) && - (preg_match('/^'.PHPExcel_Calculation::CALCULATION_REGEXP_NAMEDRANGE.'$/i', $pCoordinate, $matches))) { - $namedRange = PHPExcel_NamedRange::resolveRange($pCoordinate, $this); - if ($namedRange !== null) { - $pCoordinate = $namedRange->getRange(); - return $namedRange->getWorksheet()->getCell($pCoordinate, $createIfNotExists); - } - } - - // Uppercase coordinate - $pCoordinate = strtoupper($pCoordinate); - - if (strpos($pCoordinate, ':') !== false || strpos($pCoordinate, ',') !== false) { - throw new PHPExcel_Exception('Cell coordinate can not be a range of cells.'); - } elseif (strpos($pCoordinate, '$') !== false) { - throw new PHPExcel_Exception('Cell coordinate must not be absolute.'); - } - - // Create new cell object, if required - return $createIfNotExists ? $this->createNewCell($pCoordinate) : null; - } - - /** - * Get cell at a specific coordinate by using numeric cell coordinates - * - * @param string $pColumn Numeric column coordinate of the cell (starting from 0) - * @param string $pRow Numeric row coordinate of the cell - * @param boolean $createIfNotExists Flag indicating whether a new cell should be created if it doesn't - * already exist, or a null should be returned instead - * @return null|PHPExcel_Cell Cell that was found/created or null - */ - public function getCellByColumnAndRow($pColumn = 0, $pRow = 1, $createIfNotExists = true) - { - $columnLetter = PHPExcel_Cell::stringFromColumnIndex($pColumn); - $coordinate = $columnLetter . $pRow; - - if ($this->cellCollection->isDataSet($coordinate)) { - return $this->cellCollection->getCacheData($coordinate); - } - - // Create new cell object, if required - return $createIfNotExists ? $this->createNewCell($coordinate) : null; - } - - /** - * Create a new cell at the specified coordinate - * - * @param string $pCoordinate Coordinate of the cell - * @return PHPExcel_Cell Cell that was created - */ - private function createNewCell($pCoordinate) - { - $cell = $this->cellCollection->addCacheData( - $pCoordinate, - new PHPExcel_Cell(null, PHPExcel_Cell_DataType::TYPE_NULL, $this) - ); - $this->cellCollectionIsSorted = false; - - // Coordinates - $aCoordinates = PHPExcel_Cell::coordinateFromString($pCoordinate); - if (PHPExcel_Cell::columnIndexFromString($this->cachedHighestColumn) < PHPExcel_Cell::columnIndexFromString($aCoordinates[0])) { - $this->cachedHighestColumn = $aCoordinates[0]; - } - $this->cachedHighestRow = max($this->cachedHighestRow, $aCoordinates[1]); - - // Cell needs appropriate xfIndex from dimensions records - // but don't create dimension records if they don't already exist - $rowDimension = $this->getRowDimension($aCoordinates[1], false); - $columnDimension = $this->getColumnDimension($aCoordinates[0], false); - - if ($rowDimension !== null && $rowDimension->getXfIndex() > 0) { - // then there is a row dimension with explicit style, assign it to the cell - $cell->setXfIndex($rowDimension->getXfIndex()); - } elseif ($columnDimension !== null && $columnDimension->getXfIndex() > 0) { - // then there is a column dimension, assign it to the cell - $cell->setXfIndex($columnDimension->getXfIndex()); - } - - return $cell; - } - - /** - * Does the cell at a specific coordinate exist? - * - * @param string $pCoordinate Coordinate of the cell - * @throws PHPExcel_Exception - * @return boolean - */ - public function cellExists($pCoordinate = 'A1') - { - // Worksheet reference? - if (strpos($pCoordinate, '!') !== false) { - $worksheetReference = PHPExcel_Worksheet::extractSheetTitle($pCoordinate, true); - return $this->parent->getSheetByName($worksheetReference[0])->cellExists(strtoupper($worksheetReference[1])); - } - - // Named range? - if ((!preg_match('/^'.PHPExcel_Calculation::CALCULATION_REGEXP_CELLREF.'$/i', $pCoordinate, $matches)) && - (preg_match('/^'.PHPExcel_Calculation::CALCULATION_REGEXP_NAMEDRANGE.'$/i', $pCoordinate, $matches))) { - $namedRange = PHPExcel_NamedRange::resolveRange($pCoordinate, $this); - if ($namedRange !== null) { - $pCoordinate = $namedRange->getRange(); - if ($this->getHashCode() != $namedRange->getWorksheet()->getHashCode()) { - if (!$namedRange->getLocalOnly()) { - return $namedRange->getWorksheet()->cellExists($pCoordinate); - } else { - throw new PHPExcel_Exception('Named range ' . $namedRange->getName() . ' is not accessible from within sheet ' . $this->getTitle()); - } - } - } else { - return false; - } - } - - // Uppercase coordinate - $pCoordinate = strtoupper($pCoordinate); - - if (strpos($pCoordinate, ':') !== false || strpos($pCoordinate, ',') !== false) { - throw new PHPExcel_Exception('Cell coordinate can not be a range of cells.'); - } elseif (strpos($pCoordinate, '$') !== false) { - throw new PHPExcel_Exception('Cell coordinate must not be absolute.'); - } else { - // Coordinates - $aCoordinates = PHPExcel_Cell::coordinateFromString($pCoordinate); - - // Cell exists? - return $this->cellCollection->isDataSet($pCoordinate); - } - } - - /** - * Cell at a specific coordinate by using numeric cell coordinates exists? - * - * @param string $pColumn Numeric column coordinate of the cell - * @param string $pRow Numeric row coordinate of the cell - * @return boolean - */ - public function cellExistsByColumnAndRow($pColumn = 0, $pRow = 1) - { - return $this->cellExists(PHPExcel_Cell::stringFromColumnIndex($pColumn) . $pRow); - } - - /** - * Get row dimension at a specific row - * - * @param int $pRow Numeric index of the row - * @return PHPExcel_Worksheet_RowDimension - */ - public function getRowDimension($pRow = 1, $create = true) - { - // Found - $found = null; - - // Get row dimension - if (!isset($this->rowDimensions[$pRow])) { - if (!$create) { - return null; - } - $this->rowDimensions[$pRow] = new PHPExcel_Worksheet_RowDimension($pRow); - - $this->cachedHighestRow = max($this->cachedHighestRow, $pRow); - } - return $this->rowDimensions[$pRow]; - } - - /** - * Get column dimension at a specific column - * - * @param string $pColumn String index of the column - * @return PHPExcel_Worksheet_ColumnDimension - */ - public function getColumnDimension($pColumn = 'A', $create = true) - { - // Uppercase coordinate - $pColumn = strtoupper($pColumn); - - // Fetch dimensions - if (!isset($this->columnDimensions[$pColumn])) { - if (!$create) { - return null; - } - $this->columnDimensions[$pColumn] = new PHPExcel_Worksheet_ColumnDimension($pColumn); - - if (PHPExcel_Cell::columnIndexFromString($this->cachedHighestColumn) < PHPExcel_Cell::columnIndexFromString($pColumn)) { - $this->cachedHighestColumn = $pColumn; - } - } - return $this->columnDimensions[$pColumn]; - } - - /** - * Get column dimension at a specific column by using numeric cell coordinates - * - * @param string $pColumn Numeric column coordinate of the cell - * @return PHPExcel_Worksheet_ColumnDimension - */ - public function getColumnDimensionByColumn($pColumn = 0) - { - return $this->getColumnDimension(PHPExcel_Cell::stringFromColumnIndex($pColumn)); - } - - /** - * Get styles - * - * @return PHPExcel_Style[] - */ - public function getStyles() - { - return $this->styles; - } - - /** - * Get default style of workbook. - * - * @deprecated - * @return PHPExcel_Style - * @throws PHPExcel_Exception - */ - public function getDefaultStyle() - { - return $this->parent->getDefaultStyle(); - } - - /** - * Set default style - should only be used by PHPExcel_IReader implementations! - * - * @deprecated - * @param PHPExcel_Style $pValue - * @throws PHPExcel_Exception - * @return PHPExcel_Worksheet - */ - public function setDefaultStyle(PHPExcel_Style $pValue) - { - $this->parent->getDefaultStyle()->applyFromArray(array( - 'font' => array( - 'name' => $pValue->getFont()->getName(), - 'size' => $pValue->getFont()->getSize(), - ), - )); - return $this; - } - - /** - * Get style for cell - * - * @param string $pCellCoordinate Cell coordinate (or range) to get style for - * @return PHPExcel_Style - * @throws PHPExcel_Exception - */ - public function getStyle($pCellCoordinate = 'A1') - { - // set this sheet as active - $this->parent->setActiveSheetIndex($this->parent->getIndex($this)); - - // set cell coordinate as active - $this->setSelectedCells(strtoupper($pCellCoordinate)); - - return $this->parent->getCellXfSupervisor(); - } - - /** - * Get conditional styles for a cell - * - * @param string $pCoordinate - * @return PHPExcel_Style_Conditional[] - */ - public function getConditionalStyles($pCoordinate = 'A1') - { - $pCoordinate = strtoupper($pCoordinate); - if (!isset($this->conditionalStylesCollection[$pCoordinate])) { - $this->conditionalStylesCollection[$pCoordinate] = array(); - } - return $this->conditionalStylesCollection[$pCoordinate]; - } - - /** - * Do conditional styles exist for this cell? - * - * @param string $pCoordinate - * @return boolean - */ - public function conditionalStylesExists($pCoordinate = 'A1') - { - if (isset($this->conditionalStylesCollection[strtoupper($pCoordinate)])) { - return true; - } - return false; - } - - /** - * Removes conditional styles for a cell - * - * @param string $pCoordinate - * @return PHPExcel_Worksheet - */ - public function removeConditionalStyles($pCoordinate = 'A1') - { - unset($this->conditionalStylesCollection[strtoupper($pCoordinate)]); - return $this; - } - - /** - * Get collection of conditional styles - * - * @return array - */ - public function getConditionalStylesCollection() - { - return $this->conditionalStylesCollection; - } - - /** - * Set conditional styles - * - * @param $pCoordinate string E.g. 'A1' - * @param $pValue PHPExcel_Style_Conditional[] - * @return PHPExcel_Worksheet - */ - public function setConditionalStyles($pCoordinate = 'A1', $pValue) - { - $this->conditionalStylesCollection[strtoupper($pCoordinate)] = $pValue; - return $this; - } - - /** - * Get style for cell by using numeric cell coordinates - * - * @param int $pColumn Numeric column coordinate of the cell - * @param int $pRow Numeric row coordinate of the cell - * @param int pColumn2 Numeric column coordinate of the range cell - * @param int pRow2 Numeric row coordinate of the range cell - * @return PHPExcel_Style - */ - public function getStyleByColumnAndRow($pColumn = 0, $pRow = 1, $pColumn2 = null, $pRow2 = null) - { - if (!is_null($pColumn2) && !is_null($pRow2)) { - $cellRange = PHPExcel_Cell::stringFromColumnIndex($pColumn) . $pRow . ':' . PHPExcel_Cell::stringFromColumnIndex($pColumn2) . $pRow2; - return $this->getStyle($cellRange); - } - - return $this->getStyle(PHPExcel_Cell::stringFromColumnIndex($pColumn) . $pRow); - } - - /** - * Set shared cell style to a range of cells - * - * Please note that this will overwrite existing cell styles for cells in range! - * - * @deprecated - * @param PHPExcel_Style $pSharedCellStyle Cell style to share - * @param string $pRange Range of cells (i.e. "A1:B10"), or just one cell (i.e. "A1") - * @throws PHPExcel_Exception - * @return PHPExcel_Worksheet - */ - public function setSharedStyle(PHPExcel_Style $pSharedCellStyle = null, $pRange = '') - { - $this->duplicateStyle($pSharedCellStyle, $pRange); - return $this; - } - - /** - * Duplicate cell style to a range of cells - * - * Please note that this will overwrite existing cell styles for cells in range! - * - * @param PHPExcel_Style $pCellStyle Cell style to duplicate - * @param string $pRange Range of cells (i.e. "A1:B10"), or just one cell (i.e. "A1") - * @throws PHPExcel_Exception - * @return PHPExcel_Worksheet - */ - public function duplicateStyle(PHPExcel_Style $pCellStyle = null, $pRange = '') - { - // make sure we have a real style and not supervisor - $style = $pCellStyle->getIsSupervisor() ? $pCellStyle->getSharedComponent() : $pCellStyle; - - // Add the style to the workbook if necessary - $workbook = $this->parent; - if ($existingStyle = $this->parent->getCellXfByHashCode($pCellStyle->getHashCode())) { - // there is already such cell Xf in our collection - $xfIndex = $existingStyle->getIndex(); - } else { - // we don't have such a cell Xf, need to add - $workbook->addCellXf($pCellStyle); - $xfIndex = $pCellStyle->getIndex(); - } - - // Calculate range outer borders - list($rangeStart, $rangeEnd) = PHPExcel_Cell::rangeBoundaries($pRange . ':' . $pRange); - - // Make sure we can loop upwards on rows and columns - if ($rangeStart[0] > $rangeEnd[0] && $rangeStart[1] > $rangeEnd[1]) { - $tmp = $rangeStart; - $rangeStart = $rangeEnd; - $rangeEnd = $tmp; - } - - // Loop through cells and apply styles - for ($col = $rangeStart[0]; $col <= $rangeEnd[0]; ++$col) { - for ($row = $rangeStart[1]; $row <= $rangeEnd[1]; ++$row) { - $this->getCell(PHPExcel_Cell::stringFromColumnIndex($col - 1) . $row)->setXfIndex($xfIndex); - } - } - - return $this; - } - - /** - * Duplicate conditional style to a range of cells - * - * Please note that this will overwrite existing cell styles for cells in range! - * - * @param array of PHPExcel_Style_Conditional $pCellStyle Cell style to duplicate - * @param string $pRange Range of cells (i.e. "A1:B10"), or just one cell (i.e. "A1") - * @throws PHPExcel_Exception - * @return PHPExcel_Worksheet - */ - public function duplicateConditionalStyle(array $pCellStyle = null, $pRange = '') - { - foreach ($pCellStyle as $cellStyle) { - if (!($cellStyle instanceof PHPExcel_Style_Conditional)) { - throw new PHPExcel_Exception('Style is not a conditional style'); - } - } - - // Calculate range outer borders - list($rangeStart, $rangeEnd) = PHPExcel_Cell::rangeBoundaries($pRange . ':' . $pRange); - - // Make sure we can loop upwards on rows and columns - if ($rangeStart[0] > $rangeEnd[0] && $rangeStart[1] > $rangeEnd[1]) { - $tmp = $rangeStart; - $rangeStart = $rangeEnd; - $rangeEnd = $tmp; - } - - // Loop through cells and apply styles - for ($col = $rangeStart[0]; $col <= $rangeEnd[0]; ++$col) { - for ($row = $rangeStart[1]; $row <= $rangeEnd[1]; ++$row) { - $this->setConditionalStyles(PHPExcel_Cell::stringFromColumnIndex($col - 1) . $row, $pCellStyle); - } - } - - return $this; - } - - /** - * Duplicate cell style array to a range of cells - * - * Please note that this will overwrite existing cell styles for cells in range, - * if they are in the styles array. For example, if you decide to set a range of - * cells to font bold, only include font bold in the styles array. - * - * @deprecated - * @param array $pStyles Array containing style information - * @param string $pRange Range of cells (i.e. "A1:B10"), or just one cell (i.e. "A1") - * @param boolean $pAdvanced Advanced mode for setting borders. - * @throws PHPExcel_Exception - * @return PHPExcel_Worksheet - */ - public function duplicateStyleArray($pStyles = null, $pRange = '', $pAdvanced = true) - { - $this->getStyle($pRange)->applyFromArray($pStyles, $pAdvanced); - return $this; - } - - /** - * Set break on a cell - * - * @param string $pCell Cell coordinate (e.g. A1) - * @param int $pBreak Break type (type of PHPExcel_Worksheet::BREAK_*) - * @throws PHPExcel_Exception - * @return PHPExcel_Worksheet - */ - public function setBreak($pCell = 'A1', $pBreak = PHPExcel_Worksheet::BREAK_NONE) - { - // Uppercase coordinate - $pCell = strtoupper($pCell); - - if ($pCell != '') { - if ($pBreak == PHPExcel_Worksheet::BREAK_NONE) { - if (isset($this->breaks[$pCell])) { - unset($this->breaks[$pCell]); - } - } else { - $this->breaks[$pCell] = $pBreak; - } - } else { - throw new PHPExcel_Exception('No cell coordinate specified.'); - } - - return $this; - } - - /** - * Set break on a cell by using numeric cell coordinates - * - * @param integer $pColumn Numeric column coordinate of the cell - * @param integer $pRow Numeric row coordinate of the cell - * @param integer $pBreak Break type (type of PHPExcel_Worksheet::BREAK_*) - * @return PHPExcel_Worksheet - */ - public function setBreakByColumnAndRow($pColumn = 0, $pRow = 1, $pBreak = PHPExcel_Worksheet::BREAK_NONE) - { - return $this->setBreak(PHPExcel_Cell::stringFromColumnIndex($pColumn) . $pRow, $pBreak); - } - - /** - * Get breaks - * - * @return array[] - */ - public function getBreaks() - { - return $this->breaks; - } - - /** - * Set merge on a cell range - * - * @param string $pRange Cell range (e.g. A1:E1) - * @throws PHPExcel_Exception - * @return PHPExcel_Worksheet - */ - public function mergeCells($pRange = 'A1:A1') - { - // Uppercase coordinate - $pRange = strtoupper($pRange); - - if (strpos($pRange, ':') !== false) { - $this->mergeCells[$pRange] = $pRange; - - // make sure cells are created - - // get the cells in the range - $aReferences = PHPExcel_Cell::extractAllCellReferencesInRange($pRange); - - // create upper left cell if it does not already exist - $upperLeft = $aReferences[0]; - if (!$this->cellExists($upperLeft)) { - $this->getCell($upperLeft)->setValueExplicit(null, PHPExcel_Cell_DataType::TYPE_NULL); - } - - // Blank out the rest of the cells in the range (if they exist) - $count = count($aReferences); - for ($i = 1; $i < $count; $i++) { - if ($this->cellExists($aReferences[$i])) { - $this->getCell($aReferences[$i])->setValueExplicit(null, PHPExcel_Cell_DataType::TYPE_NULL); - } - } - } else { - throw new PHPExcel_Exception('Merge must be set on a range of cells.'); - } - - return $this; - } - - /** - * Set merge on a cell range by using numeric cell coordinates - * - * @param int $pColumn1 Numeric column coordinate of the first cell - * @param int $pRow1 Numeric row coordinate of the first cell - * @param int $pColumn2 Numeric column coordinate of the last cell - * @param int $pRow2 Numeric row coordinate of the last cell - * @throws PHPExcel_Exception - * @return PHPExcel_Worksheet - */ - public function mergeCellsByColumnAndRow($pColumn1 = 0, $pRow1 = 1, $pColumn2 = 0, $pRow2 = 1) - { - $cellRange = PHPExcel_Cell::stringFromColumnIndex($pColumn1) . $pRow1 . ':' . PHPExcel_Cell::stringFromColumnIndex($pColumn2) . $pRow2; - return $this->mergeCells($cellRange); - } - - /** - * Remove merge on a cell range - * - * @param string $pRange Cell range (e.g. A1:E1) - * @throws PHPExcel_Exception - * @return PHPExcel_Worksheet - */ - public function unmergeCells($pRange = 'A1:A1') - { - // Uppercase coordinate - $pRange = strtoupper($pRange); - - if (strpos($pRange, ':') !== false) { - if (isset($this->mergeCells[$pRange])) { - unset($this->mergeCells[$pRange]); - } else { - throw new PHPExcel_Exception('Cell range ' . $pRange . ' not known as merged.'); - } - } else { - throw new PHPExcel_Exception('Merge can only be removed from a range of cells.'); - } - - return $this; - } - - /** - * Remove merge on a cell range by using numeric cell coordinates - * - * @param int $pColumn1 Numeric column coordinate of the first cell - * @param int $pRow1 Numeric row coordinate of the first cell - * @param int $pColumn2 Numeric column coordinate of the last cell - * @param int $pRow2 Numeric row coordinate of the last cell - * @throws PHPExcel_Exception - * @return PHPExcel_Worksheet - */ - public function unmergeCellsByColumnAndRow($pColumn1 = 0, $pRow1 = 1, $pColumn2 = 0, $pRow2 = 1) - { - $cellRange = PHPExcel_Cell::stringFromColumnIndex($pColumn1) . $pRow1 . ':' . PHPExcel_Cell::stringFromColumnIndex($pColumn2) . $pRow2; - return $this->unmergeCells($cellRange); - } - - /** - * Get merge cells array. - * - * @return array[] - */ - public function getMergeCells() - { - return $this->mergeCells; - } - - /** - * Set merge cells array for the entire sheet. Use instead mergeCells() to merge - * a single cell range. - * - * @param array - */ - public function setMergeCells($pValue = array()) - { - $this->mergeCells = $pValue; - return $this; - } - - /** - * Set protection on a cell range - * - * @param string $pRange Cell (e.g. A1) or cell range (e.g. A1:E1) - * @param string $pPassword Password to unlock the protection - * @param boolean $pAlreadyHashed If the password has already been hashed, set this to true - * @throws PHPExcel_Exception - * @return PHPExcel_Worksheet - */ - public function protectCells($pRange = 'A1', $pPassword = '', $pAlreadyHashed = false) - { - // Uppercase coordinate - $pRange = strtoupper($pRange); - - if (!$pAlreadyHashed) { - $pPassword = PHPExcel_Shared_PasswordHasher::hashPassword($pPassword); - } - $this->protectedCells[$pRange] = $pPassword; - - return $this; - } - - /** - * Set protection on a cell range by using numeric cell coordinates - * - * @param int $pColumn1 Numeric column coordinate of the first cell - * @param int $pRow1 Numeric row coordinate of the first cell - * @param int $pColumn2 Numeric column coordinate of the last cell - * @param int $pRow2 Numeric row coordinate of the last cell - * @param string $pPassword Password to unlock the protection - * @param boolean $pAlreadyHashed If the password has already been hashed, set this to true - * @throws PHPExcel_Exception - * @return PHPExcel_Worksheet - */ - public function protectCellsByColumnAndRow($pColumn1 = 0, $pRow1 = 1, $pColumn2 = 0, $pRow2 = 1, $pPassword = '', $pAlreadyHashed = false) - { - $cellRange = PHPExcel_Cell::stringFromColumnIndex($pColumn1) . $pRow1 . ':' . PHPExcel_Cell::stringFromColumnIndex($pColumn2) . $pRow2; - return $this->protectCells($cellRange, $pPassword, $pAlreadyHashed); - } - - /** - * Remove protection on a cell range - * - * @param string $pRange Cell (e.g. A1) or cell range (e.g. A1:E1) - * @throws PHPExcel_Exception - * @return PHPExcel_Worksheet - */ - public function unprotectCells($pRange = 'A1') - { - // Uppercase coordinate - $pRange = strtoupper($pRange); - - if (isset($this->protectedCells[$pRange])) { - unset($this->protectedCells[$pRange]); - } else { - throw new PHPExcel_Exception('Cell range ' . $pRange . ' not known as protected.'); - } - return $this; - } - - /** - * Remove protection on a cell range by using numeric cell coordinates - * - * @param int $pColumn1 Numeric column coordinate of the first cell - * @param int $pRow1 Numeric row coordinate of the first cell - * @param int $pColumn2 Numeric column coordinate of the last cell - * @param int $pRow2 Numeric row coordinate of the last cell - * @param string $pPassword Password to unlock the protection - * @param boolean $pAlreadyHashed If the password has already been hashed, set this to true - * @throws PHPExcel_Exception - * @return PHPExcel_Worksheet - */ - public function unprotectCellsByColumnAndRow($pColumn1 = 0, $pRow1 = 1, $pColumn2 = 0, $pRow2 = 1, $pPassword = '', $pAlreadyHashed = false) - { - $cellRange = PHPExcel_Cell::stringFromColumnIndex($pColumn1) . $pRow1 . ':' . PHPExcel_Cell::stringFromColumnIndex($pColumn2) . $pRow2; - return $this->unprotectCells($cellRange, $pPassword, $pAlreadyHashed); - } - - /** - * Get protected cells - * - * @return array[] - */ - public function getProtectedCells() - { - return $this->protectedCells; - } - - /** - * Get Autofilter - * - * @return PHPExcel_Worksheet_AutoFilter - */ - public function getAutoFilter() - { - return $this->autoFilter; - } - - /** - * Set AutoFilter - * - * @param PHPExcel_Worksheet_AutoFilter|string $pValue - * A simple string containing a Cell range like 'A1:E10' is permitted for backward compatibility - * @throws PHPExcel_Exception - * @return PHPExcel_Worksheet - */ - public function setAutoFilter($pValue) - { - $pRange = strtoupper($pValue); - if (is_string($pValue)) { - $this->autoFilter->setRange($pValue); - } elseif (is_object($pValue) && ($pValue instanceof PHPExcel_Worksheet_AutoFilter)) { - $this->autoFilter = $pValue; - } - return $this; - } - - /** - * Set Autofilter Range by using numeric cell coordinates - * - * @param integer $pColumn1 Numeric column coordinate of the first cell - * @param integer $pRow1 Numeric row coordinate of the first cell - * @param integer $pColumn2 Numeric column coordinate of the second cell - * @param integer $pRow2 Numeric row coordinate of the second cell - * @throws PHPExcel_Exception - * @return PHPExcel_Worksheet - */ - public function setAutoFilterByColumnAndRow($pColumn1 = 0, $pRow1 = 1, $pColumn2 = 0, $pRow2 = 1) - { - return $this->setAutoFilter( - PHPExcel_Cell::stringFromColumnIndex($pColumn1) . $pRow1 - . ':' . - PHPExcel_Cell::stringFromColumnIndex($pColumn2) . $pRow2 - ); - } - - /** - * Remove autofilter - * - * @return PHPExcel_Worksheet - */ - public function removeAutoFilter() - { - $this->autoFilter->setRange(null); - return $this; - } - - /** - * Get Freeze Pane - * - * @return string - */ - public function getFreezePane() - { - return $this->freezePane; - } - - /** - * Freeze Pane - * - * @param string $pCell Cell (i.e. A2) - * Examples: - * A2 will freeze the rows above cell A2 (i.e row 1) - * B1 will freeze the columns to the left of cell B1 (i.e column A) - * B2 will freeze the rows above and to the left of cell A2 - * (i.e row 1 and column A) - * @throws PHPExcel_Exception - * @return PHPExcel_Worksheet - */ - public function freezePane($pCell = '') - { - // Uppercase coordinate - $pCell = strtoupper($pCell); - if (strpos($pCell, ':') === false && strpos($pCell, ',') === false) { - $this->freezePane = $pCell; - } else { - throw new PHPExcel_Exception('Freeze pane can not be set on a range of cells.'); - } - return $this; - } - - /** - * Freeze Pane by using numeric cell coordinates - * - * @param int $pColumn Numeric column coordinate of the cell - * @param int $pRow Numeric row coordinate of the cell - * @throws PHPExcel_Exception - * @return PHPExcel_Worksheet - */ - public function freezePaneByColumnAndRow($pColumn = 0, $pRow = 1) - { - return $this->freezePane(PHPExcel_Cell::stringFromColumnIndex($pColumn) . $pRow); - } - - /** - * Unfreeze Pane - * - * @return PHPExcel_Worksheet - */ - public function unfreezePane() - { - return $this->freezePane(''); - } - - /** - * Insert a new row, updating all possible related data - * - * @param int $pBefore Insert before this one - * @param int $pNumRows Number of rows to insert - * @throws PHPExcel_Exception - * @return PHPExcel_Worksheet - */ - public function insertNewRowBefore($pBefore = 1, $pNumRows = 1) - { - if ($pBefore >= 1) { - $objReferenceHelper = PHPExcel_ReferenceHelper::getInstance(); - $objReferenceHelper->insertNewBefore('A' . $pBefore, 0, $pNumRows, $this); - } else { - throw new PHPExcel_Exception("Rows can only be inserted before at least row 1."); - } - return $this; - } - - /** - * Insert a new column, updating all possible related data - * - * @param int $pBefore Insert before this one - * @param int $pNumCols Number of columns to insert - * @throws PHPExcel_Exception - * @return PHPExcel_Worksheet - */ - public function insertNewColumnBefore($pBefore = 'A', $pNumCols = 1) - { - if (!is_numeric($pBefore)) { - $objReferenceHelper = PHPExcel_ReferenceHelper::getInstance(); - $objReferenceHelper->insertNewBefore($pBefore . '1', $pNumCols, 0, $this); - } else { - throw new PHPExcel_Exception("Column references should not be numeric."); - } - return $this; - } - - /** - * Insert a new column, updating all possible related data - * - * @param int $pBefore Insert before this one (numeric column coordinate of the cell) - * @param int $pNumCols Number of columns to insert - * @throws PHPExcel_Exception - * @return PHPExcel_Worksheet - */ - public function insertNewColumnBeforeByIndex($pBefore = 0, $pNumCols = 1) - { - if ($pBefore >= 0) { - return $this->insertNewColumnBefore(PHPExcel_Cell::stringFromColumnIndex($pBefore), $pNumCols); - } else { - throw new PHPExcel_Exception("Columns can only be inserted before at least column A (0)."); - } - } - - /** - * Delete a row, updating all possible related data - * - * @param int $pRow Remove starting with this one - * @param int $pNumRows Number of rows to remove - * @throws PHPExcel_Exception - * @return PHPExcel_Worksheet - */ - public function removeRow($pRow = 1, $pNumRows = 1) - { - if ($pRow >= 1) { - $highestRow = $this->getHighestDataRow(); - $objReferenceHelper = PHPExcel_ReferenceHelper::getInstance(); - $objReferenceHelper->insertNewBefore('A' . ($pRow + $pNumRows), 0, -$pNumRows, $this); - for ($r = 0; $r < $pNumRows; ++$r) { - $this->getCellCacheController()->removeRow($highestRow); - --$highestRow; - } - } else { - throw new PHPExcel_Exception("Rows to be deleted should at least start from row 1."); - } - return $this; - } - - /** - * Remove a column, updating all possible related data - * - * @param string $pColumn Remove starting with this one - * @param int $pNumCols Number of columns to remove - * @throws PHPExcel_Exception - * @return PHPExcel_Worksheet - */ - public function removeColumn($pColumn = 'A', $pNumCols = 1) - { - if (!is_numeric($pColumn)) { - $highestColumn = $this->getHighestDataColumn(); - $pColumn = PHPExcel_Cell::stringFromColumnIndex(PHPExcel_Cell::columnIndexFromString($pColumn) - 1 + $pNumCols); - $objReferenceHelper = PHPExcel_ReferenceHelper::getInstance(); - $objReferenceHelper->insertNewBefore($pColumn . '1', -$pNumCols, 0, $this); - for ($c = 0; $c < $pNumCols; ++$c) { - $this->getCellCacheController()->removeColumn($highestColumn); - $highestColumn = PHPExcel_Cell::stringFromColumnIndex(PHPExcel_Cell::columnIndexFromString($highestColumn) - 2); - } - } else { - throw new PHPExcel_Exception("Column references should not be numeric."); - } - return $this; - } - - /** - * Remove a column, updating all possible related data - * - * @param int $pColumn Remove starting with this one (numeric column coordinate of the cell) - * @param int $pNumCols Number of columns to remove - * @throws PHPExcel_Exception - * @return PHPExcel_Worksheet - */ - public function removeColumnByIndex($pColumn = 0, $pNumCols = 1) - { - if ($pColumn >= 0) { - return $this->removeColumn(PHPExcel_Cell::stringFromColumnIndex($pColumn), $pNumCols); - } else { - throw new PHPExcel_Exception("Columns to be deleted should at least start from column 0"); - } - } - - /** - * Show gridlines? - * - * @return boolean - */ - public function getShowGridlines() - { - return $this->showGridlines; - } - - /** - * Set show gridlines - * - * @param boolean $pValue Show gridlines (true/false) - * @return PHPExcel_Worksheet - */ - public function setShowGridlines($pValue = false) - { - $this->showGridlines = $pValue; - return $this; - } - - /** - * Print gridlines? - * - * @return boolean - */ - public function getPrintGridlines() - { - return $this->printGridlines; - } - - /** - * Set print gridlines - * - * @param boolean $pValue Print gridlines (true/false) - * @return PHPExcel_Worksheet - */ - public function setPrintGridlines($pValue = false) - { - $this->printGridlines = $pValue; - return $this; - } - - /** - * Show row and column headers? - * - * @return boolean - */ - public function getShowRowColHeaders() - { - return $this->showRowColHeaders; - } - - /** - * Set show row and column headers - * - * @param boolean $pValue Show row and column headers (true/false) - * @return PHPExcel_Worksheet - */ - public function setShowRowColHeaders($pValue = false) - { - $this->showRowColHeaders = $pValue; - return $this; - } - - /** - * Show summary below? (Row/Column outlining) - * - * @return boolean - */ - public function getShowSummaryBelow() - { - return $this->showSummaryBelow; - } - - /** - * Set show summary below - * - * @param boolean $pValue Show summary below (true/false) - * @return PHPExcel_Worksheet - */ - public function setShowSummaryBelow($pValue = true) - { - $this->showSummaryBelow = $pValue; - return $this; - } - - /** - * Show summary right? (Row/Column outlining) - * - * @return boolean - */ - public function getShowSummaryRight() - { - return $this->showSummaryRight; - } - - /** - * Set show summary right - * - * @param boolean $pValue Show summary right (true/false) - * @return PHPExcel_Worksheet - */ - public function setShowSummaryRight($pValue = true) - { - $this->showSummaryRight = $pValue; - return $this; - } - - /** - * Get comments - * - * @return PHPExcel_Comment[] - */ - public function getComments() - { - return $this->comments; - } - - /** - * Set comments array for the entire sheet. - * - * @param array of PHPExcel_Comment - * @return PHPExcel_Worksheet - */ - public function setComments($pValue = array()) - { - $this->comments = $pValue; - - return $this; - } - - /** - * Get comment for cell - * - * @param string $pCellCoordinate Cell coordinate to get comment for - * @return PHPExcel_Comment - * @throws PHPExcel_Exception - */ - public function getComment($pCellCoordinate = 'A1') - { - // Uppercase coordinate - $pCellCoordinate = strtoupper($pCellCoordinate); - - if (strpos($pCellCoordinate, ':') !== false || strpos($pCellCoordinate, ',') !== false) { - throw new PHPExcel_Exception('Cell coordinate string can not be a range of cells.'); - } elseif (strpos($pCellCoordinate, '$') !== false) { - throw new PHPExcel_Exception('Cell coordinate string must not be absolute.'); - } elseif ($pCellCoordinate == '') { - throw new PHPExcel_Exception('Cell coordinate can not be zero-length string.'); - } else { - // Check if we already have a comment for this cell. - // If not, create a new comment. - if (isset($this->comments[$pCellCoordinate])) { - return $this->comments[$pCellCoordinate]; - } else { - $newComment = new PHPExcel_Comment(); - $this->comments[$pCellCoordinate] = $newComment; - return $newComment; - } - } - } - - /** - * Get comment for cell by using numeric cell coordinates - * - * @param int $pColumn Numeric column coordinate of the cell - * @param int $pRow Numeric row coordinate of the cell - * @return PHPExcel_Comment - */ - public function getCommentByColumnAndRow($pColumn = 0, $pRow = 1) - { - return $this->getComment(PHPExcel_Cell::stringFromColumnIndex($pColumn) . $pRow); - } - - /** - * Get selected cell - * - * @deprecated - * @return string - */ - public function getSelectedCell() - { - return $this->getSelectedCells(); - } - - /** - * Get active cell - * - * @return string Example: 'A1' - */ - public function getActiveCell() - { - return $this->activeCell; - } - - /** - * Get selected cells - * - * @return string - */ - public function getSelectedCells() - { - return $this->selectedCells; - } - - /** - * Selected cell - * - * @param string $pCoordinate Cell (i.e. A1) - * @return PHPExcel_Worksheet - */ - public function setSelectedCell($pCoordinate = 'A1') - { - return $this->setSelectedCells($pCoordinate); - } - - /** - * Select a range of cells. - * - * @param string $pCoordinate Cell range, examples: 'A1', 'B2:G5', 'A:C', '3:6' - * @throws PHPExcel_Exception - * @return PHPExcel_Worksheet - */ - public function setSelectedCells($pCoordinate = 'A1') - { - // Uppercase coordinate - $pCoordinate = strtoupper($pCoordinate); - - // Convert 'A' to 'A:A' - $pCoordinate = preg_replace('/^([A-Z]+)$/', '${1}:${1}', $pCoordinate); - - // Convert '1' to '1:1' - $pCoordinate = preg_replace('/^([0-9]+)$/', '${1}:${1}', $pCoordinate); - - // Convert 'A:C' to 'A1:C1048576' - $pCoordinate = preg_replace('/^([A-Z]+):([A-Z]+)$/', '${1}1:${2}1048576', $pCoordinate); - - // Convert '1:3' to 'A1:XFD3' - $pCoordinate = preg_replace('/^([0-9]+):([0-9]+)$/', 'A${1}:XFD${2}', $pCoordinate); - - if (strpos($pCoordinate, ':') !== false || strpos($pCoordinate, ',') !== false) { - list($first, ) = PHPExcel_Cell::splitRange($pCoordinate); - $this->activeCell = $first[0]; - } else { - $this->activeCell = $pCoordinate; - } - $this->selectedCells = $pCoordinate; - return $this; - } - - /** - * Selected cell by using numeric cell coordinates - * - * @param int $pColumn Numeric column coordinate of the cell - * @param int $pRow Numeric row coordinate of the cell - * @throws PHPExcel_Exception - * @return PHPExcel_Worksheet - */ - public function setSelectedCellByColumnAndRow($pColumn = 0, $pRow = 1) - { - return $this->setSelectedCells(PHPExcel_Cell::stringFromColumnIndex($pColumn) . $pRow); - } - - /** - * Get right-to-left - * - * @return boolean - */ - public function getRightToLeft() - { - return $this->rightToLeft; - } - - /** - * Set right-to-left - * - * @param boolean $value Right-to-left true/false - * @return PHPExcel_Worksheet - */ - public function setRightToLeft($value = false) - { - $this->rightToLeft = $value; - return $this; - } - - /** - * Fill worksheet from values in array - * - * @param array $source Source array - * @param mixed $nullValue Value in source array that stands for blank cell - * @param string $startCell Insert array starting from this cell address as the top left coordinate - * @param boolean $strictNullComparison Apply strict comparison when testing for null values in the array - * @throws PHPExcel_Exception - * @return PHPExcel_Worksheet - */ - public function fromArray($source = null, $nullValue = null, $startCell = 'A1', $strictNullComparison = false) - { - if (is_array($source)) { - // Convert a 1-D array to 2-D (for ease of looping) - if (!is_array(end($source))) { - $source = array($source); - } - - // start coordinate - list ($startColumn, $startRow) = PHPExcel_Cell::coordinateFromString($startCell); - - // Loop through $source - foreach ($source as $rowData) { - $currentColumn = $startColumn; - foreach ($rowData as $cellValue) { - if ($strictNullComparison) { - if ($cellValue !== $nullValue) { - // Set cell value - $this->getCell($currentColumn . $startRow)->setValue($cellValue); - } - } else { - if ($cellValue != $nullValue) { - // Set cell value - $this->getCell($currentColumn . $startRow)->setValue($cellValue); - } - } - ++$currentColumn; - } - ++$startRow; - } - } else { - throw new PHPExcel_Exception("Parameter \$source should be an array."); - } - return $this; - } - - /** - * Create array from a range of cells - * - * @param string $pRange Range of cells (i.e. "A1:B10"), or just one cell (i.e. "A1") - * @param mixed $nullValue Value returned in the array entry if a cell doesn't exist - * @param boolean $calculateFormulas Should formulas be calculated? - * @param boolean $formatData Should formatting be applied to cell values? - * @param boolean $returnCellRef False - Return a simple array of rows and columns indexed by number counting from zero - * True - Return rows and columns indexed by their actual row and column IDs - * @return array - */ - public function rangeToArray($pRange = 'A1', $nullValue = null, $calculateFormulas = true, $formatData = true, $returnCellRef = false) - { - // Returnvalue - $returnValue = array(); - // Identify the range that we need to extract from the worksheet - list($rangeStart, $rangeEnd) = PHPExcel_Cell::rangeBoundaries($pRange); - $minCol = PHPExcel_Cell::stringFromColumnIndex($rangeStart[0] -1); - $minRow = $rangeStart[1]; - $maxCol = PHPExcel_Cell::stringFromColumnIndex($rangeEnd[0] -1); - $maxRow = $rangeEnd[1]; - - $maxCol++; - // Loop through rows - $r = -1; - for ($row = $minRow; $row <= $maxRow; ++$row) { - $rRef = ($returnCellRef) ? $row : ++$r; - $c = -1; - // Loop through columns in the current row - for ($col = $minCol; $col != $maxCol; ++$col) { - $cRef = ($returnCellRef) ? $col : ++$c; - // Using getCell() will create a new cell if it doesn't already exist. We don't want that to happen - // so we test and retrieve directly against cellCollection - if ($this->cellCollection->isDataSet($col.$row)) { - // Cell exists - $cell = $this->cellCollection->getCacheData($col.$row); - if ($cell->getValue() !== null) { - if ($cell->getValue() instanceof PHPExcel_RichText) { - $returnValue[$rRef][$cRef] = $cell->getValue()->getPlainText(); - } else { - if ($calculateFormulas) { - $returnValue[$rRef][$cRef] = $cell->getCalculatedValue(); - } else { - $returnValue[$rRef][$cRef] = $cell->getValue(); - } - } - - if ($formatData) { - $style = $this->parent->getCellXfByIndex($cell->getXfIndex()); - $returnValue[$rRef][$cRef] = PHPExcel_Style_NumberFormat::toFormattedString( - $returnValue[$rRef][$cRef], - ($style && $style->getNumberFormat()) ? $style->getNumberFormat()->getFormatCode() : PHPExcel_Style_NumberFormat::FORMAT_GENERAL - ); - } - } else { - // Cell holds a NULL - $returnValue[$rRef][$cRef] = $nullValue; - } - } else { - // Cell doesn't exist - $returnValue[$rRef][$cRef] = $nullValue; - } - } - } - - // Return - return $returnValue; - } - - - /** - * Create array from a range of cells - * - * @param string $pNamedRange Name of the Named Range - * @param mixed $nullValue Value returned in the array entry if a cell doesn't exist - * @param boolean $calculateFormulas Should formulas be calculated? - * @param boolean $formatData Should formatting be applied to cell values? - * @param boolean $returnCellRef False - Return a simple array of rows and columns indexed by number counting from zero - * True - Return rows and columns indexed by their actual row and column IDs - * @return array - * @throws PHPExcel_Exception - */ - public function namedRangeToArray($pNamedRange = '', $nullValue = null, $calculateFormulas = true, $formatData = true, $returnCellRef = false) - { - $namedRange = PHPExcel_NamedRange::resolveRange($pNamedRange, $this); - if ($namedRange !== null) { - $pWorkSheet = $namedRange->getWorksheet(); - $pCellRange = $namedRange->getRange(); - - return $pWorkSheet->rangeToArray($pCellRange, $nullValue, $calculateFormulas, $formatData, $returnCellRef); - } - - throw new PHPExcel_Exception('Named Range '.$pNamedRange.' does not exist.'); - } - - - /** - * Create array from worksheet - * - * @param mixed $nullValue Value returned in the array entry if a cell doesn't exist - * @param boolean $calculateFormulas Should formulas be calculated? - * @param boolean $formatData Should formatting be applied to cell values? - * @param boolean $returnCellRef False - Return a simple array of rows and columns indexed by number counting from zero - * True - Return rows and columns indexed by their actual row and column IDs - * @return array - */ - public function toArray($nullValue = null, $calculateFormulas = true, $formatData = true, $returnCellRef = false) - { - // Garbage collect... - $this->garbageCollect(); - - // Identify the range that we need to extract from the worksheet - $maxCol = $this->getHighestColumn(); - $maxRow = $this->getHighestRow(); - // Return - return $this->rangeToArray('A1:'.$maxCol.$maxRow, $nullValue, $calculateFormulas, $formatData, $returnCellRef); - } - - /** - * Get row iterator - * - * @param integer $startRow The row number at which to start iterating - * @param integer $endRow The row number at which to stop iterating - * - * @return PHPExcel_Worksheet_RowIterator - */ - public function getRowIterator($startRow = 1, $endRow = null) - { - return new PHPExcel_Worksheet_RowIterator($this, $startRow, $endRow); - } - - /** - * Get column iterator - * - * @param string $startColumn The column address at which to start iterating - * @param string $endColumn The column address at which to stop iterating - * - * @return PHPExcel_Worksheet_ColumnIterator - */ - public function getColumnIterator($startColumn = 'A', $endColumn = null) - { - return new PHPExcel_Worksheet_ColumnIterator($this, $startColumn, $endColumn); - } - - /** - * Run PHPExcel garabage collector. - * - * @return PHPExcel_Worksheet - */ - public function garbageCollect() - { - // Flush cache - $this->cellCollection->getCacheData('A1'); - // Build a reference table from images -// $imageCoordinates = array(); -// $iterator = $this->getDrawingCollection()->getIterator(); -// while ($iterator->valid()) { -// $imageCoordinates[$iterator->current()->getCoordinates()] = true; -// -// $iterator->next(); -// } -// - // Lookup highest column and highest row if cells are cleaned - $colRow = $this->cellCollection->getHighestRowAndColumn(); - $highestRow = $colRow['row']; - $highestColumn = PHPExcel_Cell::columnIndexFromString($colRow['column']); - - // Loop through column dimensions - foreach ($this->columnDimensions as $dimension) { - $highestColumn = max($highestColumn, PHPExcel_Cell::columnIndexFromString($dimension->getColumnIndex())); - } - - // Loop through row dimensions - foreach ($this->rowDimensions as $dimension) { - $highestRow = max($highestRow, $dimension->getRowIndex()); - } - - // Cache values - if ($highestColumn < 0) { - $this->cachedHighestColumn = 'A'; - } else { - $this->cachedHighestColumn = PHPExcel_Cell::stringFromColumnIndex(--$highestColumn); - } - $this->cachedHighestRow = $highestRow; - - // Return - return $this; - } - - /** - * Get hash code - * - * @return string Hash code - */ - public function getHashCode() - { - if ($this->dirty) { - $this->hash = md5($this->title . $this->autoFilter . ($this->protection->isProtectionEnabled() ? 't' : 'f') . __CLASS__); - $this->dirty = false; - } - return $this->hash; - } - - /** - * Extract worksheet title from range. - * - * Example: extractSheetTitle("testSheet!A1") ==> 'A1' - * Example: extractSheetTitle("'testSheet 1'!A1", true) ==> array('testSheet 1', 'A1'); - * - * @param string $pRange Range to extract title from - * @param bool $returnRange Return range? (see example) - * @return mixed - */ - public static function extractSheetTitle($pRange, $returnRange = false) - { - // Sheet title included? - if (($sep = strpos($pRange, '!')) === false) { - return ''; - } - - if ($returnRange) { - return array(trim(substr($pRange, 0, $sep), "'"), substr($pRange, $sep + 1)); - } - - return substr($pRange, $sep + 1); - } - - /** - * Get hyperlink - * - * @param string $pCellCoordinate Cell coordinate to get hyperlink for - */ - public function getHyperlink($pCellCoordinate = 'A1') - { - // return hyperlink if we already have one - if (isset($this->hyperlinkCollection[$pCellCoordinate])) { - return $this->hyperlinkCollection[$pCellCoordinate]; - } - - // else create hyperlink - $this->hyperlinkCollection[$pCellCoordinate] = new PHPExcel_Cell_Hyperlink(); - return $this->hyperlinkCollection[$pCellCoordinate]; - } - - /** - * Set hyperlnk - * - * @param string $pCellCoordinate Cell coordinate to insert hyperlink - * @param PHPExcel_Cell_Hyperlink $pHyperlink - * @return PHPExcel_Worksheet - */ - public function setHyperlink($pCellCoordinate = 'A1', PHPExcel_Cell_Hyperlink $pHyperlink = null) - { - if ($pHyperlink === null) { - unset($this->hyperlinkCollection[$pCellCoordinate]); - } else { - $this->hyperlinkCollection[$pCellCoordinate] = $pHyperlink; - } - return $this; - } - - /** - * Hyperlink at a specific coordinate exists? - * - * @param string $pCoordinate - * @return boolean - */ - public function hyperlinkExists($pCoordinate = 'A1') - { - return isset($this->hyperlinkCollection[$pCoordinate]); - } - - /** - * Get collection of hyperlinks - * - * @return PHPExcel_Cell_Hyperlink[] - */ - public function getHyperlinkCollection() - { - return $this->hyperlinkCollection; - } - - /** - * Get data validation - * - * @param string $pCellCoordinate Cell coordinate to get data validation for - */ - public function getDataValidation($pCellCoordinate = 'A1') - { - // return data validation if we already have one - if (isset($this->dataValidationCollection[$pCellCoordinate])) { - return $this->dataValidationCollection[$pCellCoordinate]; - } - - // else create data validation - $this->dataValidationCollection[$pCellCoordinate] = new PHPExcel_Cell_DataValidation(); - return $this->dataValidationCollection[$pCellCoordinate]; - } - - /** - * Set data validation - * - * @param string $pCellCoordinate Cell coordinate to insert data validation - * @param PHPExcel_Cell_DataValidation $pDataValidation - * @return PHPExcel_Worksheet - */ - public function setDataValidation($pCellCoordinate = 'A1', PHPExcel_Cell_DataValidation $pDataValidation = null) - { - if ($pDataValidation === null) { - unset($this->dataValidationCollection[$pCellCoordinate]); - } else { - $this->dataValidationCollection[$pCellCoordinate] = $pDataValidation; - } - return $this; - } - - /** - * Data validation at a specific coordinate exists? - * - * @param string $pCoordinate - * @return boolean - */ - public function dataValidationExists($pCoordinate = 'A1') - { - return isset($this->dataValidationCollection[$pCoordinate]); - } - - /** - * Get collection of data validations - * - * @return PHPExcel_Cell_DataValidation[] - */ - public function getDataValidationCollection() - { - return $this->dataValidationCollection; - } - - /** - * Accepts a range, returning it as a range that falls within the current highest row and column of the worksheet - * - * @param string $range - * @return string Adjusted range value - */ - public function shrinkRangeToFit($range) - { - $maxCol = $this->getHighestColumn(); - $maxRow = $this->getHighestRow(); - $maxCol = PHPExcel_Cell::columnIndexFromString($maxCol); - - $rangeBlocks = explode(' ', $range); - foreach ($rangeBlocks as &$rangeSet) { - $rangeBoundaries = PHPExcel_Cell::getRangeBoundaries($rangeSet); - - if (PHPExcel_Cell::columnIndexFromString($rangeBoundaries[0][0]) > $maxCol) { - $rangeBoundaries[0][0] = PHPExcel_Cell::stringFromColumnIndex($maxCol); - } - if ($rangeBoundaries[0][1] > $maxRow) { - $rangeBoundaries[0][1] = $maxRow; - } - if (PHPExcel_Cell::columnIndexFromString($rangeBoundaries[1][0]) > $maxCol) { - $rangeBoundaries[1][0] = PHPExcel_Cell::stringFromColumnIndex($maxCol); - } - if ($rangeBoundaries[1][1] > $maxRow) { - $rangeBoundaries[1][1] = $maxRow; - } - $rangeSet = $rangeBoundaries[0][0].$rangeBoundaries[0][1].':'.$rangeBoundaries[1][0].$rangeBoundaries[1][1]; - } - unset($rangeSet); - $stRange = implode(' ', $rangeBlocks); - - return $stRange; - } - - /** - * Get tab color - * - * @return PHPExcel_Style_Color - */ - public function getTabColor() - { - if ($this->tabColor === null) { - $this->tabColor = new PHPExcel_Style_Color(); - } - return $this->tabColor; - } - - /** - * Reset tab color - * - * @return PHPExcel_Worksheet - */ - public function resetTabColor() - { - $this->tabColor = null; - unset($this->tabColor); - - return $this; - } - - /** - * Tab color set? - * - * @return boolean - */ - public function isTabColorSet() - { - return ($this->tabColor !== null); - } - - /** - * Copy worksheet (!= clone!) - * - * @return PHPExcel_Worksheet - */ - public function copy() - { - $copied = clone $this; - - return $copied; - } - - /** - * Implement PHP __clone to create a deep clone, not just a shallow copy. - */ - public function __clone() - { - foreach ($this as $key => $val) { - if ($key == 'parent') { - continue; - } - - if (is_object($val) || (is_array($val))) { - if ($key == 'cellCollection') { - $newCollection = clone $this->cellCollection; - $newCollection->copyCellCollection($this); - $this->cellCollection = $newCollection; - } elseif ($key == 'drawingCollection') { - $newCollection = clone $this->drawingCollection; - $this->drawingCollection = $newCollection; - } elseif (($key == 'autoFilter') && ($this->autoFilter instanceof PHPExcel_Worksheet_AutoFilter)) { - $newAutoFilter = clone $this->autoFilter; - $this->autoFilter = $newAutoFilter; - $this->autoFilter->setParent($this); - } else { - $this->{$key} = unserialize(serialize($val)); - } - } - } - } -/** - * Define the code name of the sheet - * - * @param null|string Same rule as Title minus space not allowed (but, like Excel, change silently space to underscore) - * @return objWorksheet - * @throws PHPExcel_Exception - */ - public function setCodeName($pValue = null) - { - // Is this a 'rename' or not? - if ($this->getCodeName() == $pValue) { - return $this; - } - $pValue = str_replace(' ', '_', $pValue);//Excel does this automatically without flinching, we are doing the same - // Syntax check - // throw an exception if not valid - self::checkSheetCodeName($pValue); - - // We use the same code that setTitle to find a valid codeName else not using a space (Excel don't like) but a '_' - - if ($this->getParent()) { - // Is there already such sheet name? - if ($this->getParent()->sheetCodeNameExists($pValue)) { - // Use name, but append with lowest possible integer - - if (PHPExcel_Shared_String::CountCharacters($pValue) > 29) { - $pValue = PHPExcel_Shared_String::Substring($pValue, 0, 29); - } - $i = 1; - while ($this->getParent()->sheetCodeNameExists($pValue . '_' . $i)) { - ++$i; - if ($i == 10) { - if (PHPExcel_Shared_String::CountCharacters($pValue) > 28) { - $pValue = PHPExcel_Shared_String::Substring($pValue, 0, 28); - } - } elseif ($i == 100) { - if (PHPExcel_Shared_String::CountCharacters($pValue) > 27) { - $pValue = PHPExcel_Shared_String::Substring($pValue, 0, 27); - } - } - } - - $pValue = $pValue . '_' . $i;// ok, we have a valid name - //codeName is'nt used in formula : no need to call for an update - //return $this->setTitle($altTitle, $updateFormulaCellReferences); - } - } - - $this->codeName=$pValue; - return $this; - } - /** - * Return the code name of the sheet - * - * @return null|string - */ - public function getCodeName() - { - return $this->codeName; - } - /** - * Sheet has a code name ? - * @return boolean - */ - public function hasCodeName() - { - return !(is_null($this->codeName)); - } -} diff --git a/Utils/PHPExcel/Worksheet/AutoFilter.php b/Utils/PHPExcel/Worksheet/AutoFilter.php deleted file mode 100644 index 6ec8a44..0000000 --- a/Utils/PHPExcel/Worksheet/AutoFilter.php +++ /dev/null @@ -1,846 +0,0 @@ -<?php - -/** - * PHPExcel_Worksheet_AutoFilter - * - * Copyright (c) 2006 - 2015 PHPExcel - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - * - * @category PHPExcel - * @package PHPExcel_Worksheet - * @copyright Copyright (c) 2006 - 2015 PHPExcel (http://www.codeplex.com/PHPExcel) - * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL - * @version ##VERSION##, ##DATE## - */ -class PHPExcel_Worksheet_AutoFilter -{ - /** - * Autofilter Worksheet - * - * @var PHPExcel_Worksheet - */ - private $workSheet; - - - /** - * Autofilter Range - * - * @var string - */ - private $range = ''; - - - /** - * Autofilter Column Ruleset - * - * @var array of PHPExcel_Worksheet_AutoFilter_Column - */ - private $columns = array(); - - - /** - * Create a new PHPExcel_Worksheet_AutoFilter - * - * @param string $pRange Cell range (i.e. A1:E10) - * @param PHPExcel_Worksheet $pSheet - */ - public function __construct($pRange = '', PHPExcel_Worksheet $pSheet = null) - { - $this->range = $pRange; - $this->workSheet = $pSheet; - } - - /** - * Get AutoFilter Parent Worksheet - * - * @return PHPExcel_Worksheet - */ - public function getParent() - { - return $this->workSheet; - } - - /** - * Set AutoFilter Parent Worksheet - * - * @param PHPExcel_Worksheet $pSheet - * @return PHPExcel_Worksheet_AutoFilter - */ - public function setParent(PHPExcel_Worksheet $pSheet = null) - { - $this->workSheet = $pSheet; - - return $this; - } - - /** - * Get AutoFilter Range - * - * @return string - */ - public function getRange() - { - return $this->range; - } - - /** - * Set AutoFilter Range - * - * @param string $pRange Cell range (i.e. A1:E10) - * @throws PHPExcel_Exception - * @return PHPExcel_Worksheet_AutoFilter - */ - public function setRange($pRange = '') - { - // Uppercase coordinate - $cellAddress = explode('!', strtoupper($pRange)); - if (count($cellAddress) > 1) { - list($worksheet, $pRange) = $cellAddress; - } - - if (strpos($pRange, ':') !== false) { - $this->range = $pRange; - } elseif (empty($pRange)) { - $this->range = ''; - } else { - throw new PHPExcel_Exception('Autofilter must be set on a range of cells.'); - } - - if (empty($pRange)) { - // Discard all column rules - $this->columns = array(); - } else { - // Discard any column rules that are no longer valid within this range - list($rangeStart, $rangeEnd) = PHPExcel_Cell::rangeBoundaries($this->range); - foreach ($this->columns as $key => $value) { - $colIndex = PHPExcel_Cell::columnIndexFromString($key); - if (($rangeStart[0] > $colIndex) || ($rangeEnd[0] < $colIndex)) { - unset($this->columns[$key]); - } - } - } - - return $this; - } - - /** - * Get all AutoFilter Columns - * - * @throws PHPExcel_Exception - * @return array of PHPExcel_Worksheet_AutoFilter_Column - */ - public function getColumns() - { - return $this->columns; - } - - /** - * Validate that the specified column is in the AutoFilter range - * - * @param string $column Column name (e.g. A) - * @throws PHPExcel_Exception - * @return integer The column offset within the autofilter range - */ - public function testColumnInRange($column) - { - if (empty($this->range)) { - throw new PHPExcel_Exception("No autofilter range is defined."); - } - - $columnIndex = PHPExcel_Cell::columnIndexFromString($column); - list($rangeStart, $rangeEnd) = PHPExcel_Cell::rangeBoundaries($this->range); - if (($rangeStart[0] > $columnIndex) || ($rangeEnd[0] < $columnIndex)) { - throw new PHPExcel_Exception("Column is outside of current autofilter range."); - } - - return $columnIndex - $rangeStart[0]; - } - - /** - * Get a specified AutoFilter Column Offset within the defined AutoFilter range - * - * @param string $pColumn Column name (e.g. A) - * @throws PHPExcel_Exception - * @return integer The offset of the specified column within the autofilter range - */ - public function getColumnOffset($pColumn) - { - return $this->testColumnInRange($pColumn); - } - - /** - * Get a specified AutoFilter Column - * - * @param string $pColumn Column name (e.g. A) - * @throws PHPExcel_Exception - * @return PHPExcel_Worksheet_AutoFilter_Column - */ - public function getColumn($pColumn) - { - $this->testColumnInRange($pColumn); - - if (!isset($this->columns[$pColumn])) { - $this->columns[$pColumn] = new PHPExcel_Worksheet_AutoFilter_Column($pColumn, $this); - } - - return $this->columns[$pColumn]; - } - - /** - * Get a specified AutoFilter Column by it's offset - * - * @param integer $pColumnOffset Column offset within range (starting from 0) - * @throws PHPExcel_Exception - * @return PHPExcel_Worksheet_AutoFilter_Column - */ - public function getColumnByOffset($pColumnOffset = 0) - { - list($rangeStart, $rangeEnd) = PHPExcel_Cell::rangeBoundaries($this->range); - $pColumn = PHPExcel_Cell::stringFromColumnIndex($rangeStart[0] + $pColumnOffset - 1); - - return $this->getColumn($pColumn); - } - - /** - * Set AutoFilter - * - * @param PHPExcel_Worksheet_AutoFilter_Column|string $pColumn - * A simple string containing a Column ID like 'A' is permitted - * @throws PHPExcel_Exception - * @return PHPExcel_Worksheet_AutoFilter - */ - public function setColumn($pColumn) - { - if ((is_string($pColumn)) && (!empty($pColumn))) { - $column = $pColumn; - } elseif (is_object($pColumn) && ($pColumn instanceof PHPExcel_Worksheet_AutoFilter_Column)) { - $column = $pColumn->getColumnIndex(); - } else { - throw new PHPExcel_Exception("Column is not within the autofilter range."); - } - $this->testColumnInRange($column); - - if (is_string($pColumn)) { - $this->columns[$pColumn] = new PHPExcel_Worksheet_AutoFilter_Column($pColumn, $this); - } elseif (is_object($pColumn) && ($pColumn instanceof PHPExcel_Worksheet_AutoFilter_Column)) { - $pColumn->setParent($this); - $this->columns[$column] = $pColumn; - } - ksort($this->columns); - - return $this; - } - - /** - * Clear a specified AutoFilter Column - * - * @param string $pColumn Column name (e.g. A) - * @throws PHPExcel_Exception - * @return PHPExcel_Worksheet_AutoFilter - */ - public function clearColumn($pColumn) - { - $this->testColumnInRange($pColumn); - - if (isset($this->columns[$pColumn])) { - unset($this->columns[$pColumn]); - } - - return $this; - } - - /** - * Shift an AutoFilter Column Rule to a different column - * - * Note: This method bypasses validation of the destination column to ensure it is within this AutoFilter range. - * Nor does it verify whether any column rule already exists at $toColumn, but will simply overrideany existing value. - * Use with caution. - * - * @param string $fromColumn Column name (e.g. A) - * @param string $toColumn Column name (e.g. B) - * @return PHPExcel_Worksheet_AutoFilter - */ - public function shiftColumn($fromColumn = null, $toColumn = null) - { - $fromColumn = strtoupper($fromColumn); - $toColumn = strtoupper($toColumn); - - if (($fromColumn !== null) && (isset($this->columns[$fromColumn])) && ($toColumn !== null)) { - $this->columns[$fromColumn]->setParent(); - $this->columns[$fromColumn]->setColumnIndex($toColumn); - $this->columns[$toColumn] = $this->columns[$fromColumn]; - $this->columns[$toColumn]->setParent($this); - unset($this->columns[$fromColumn]); - - ksort($this->columns); - } - - return $this; - } - - - /** - * Test if cell value is in the defined set of values - * - * @param mixed $cellValue - * @param mixed[] $dataSet - * @return boolean - */ - private static function filterTestInSimpleDataSet($cellValue, $dataSet) - { - $dataSetValues = $dataSet['filterValues']; - $blanks = $dataSet['blanks']; - if (($cellValue == '') || ($cellValue === null)) { - return $blanks; - } - return in_array($cellValue, $dataSetValues); - } - - /** - * Test if cell value is in the defined set of Excel date values - * - * @param mixed $cellValue - * @param mixed[] $dataSet - * @return boolean - */ - private static function filterTestInDateGroupSet($cellValue, $dataSet) - { - $dateSet = $dataSet['filterValues']; - $blanks = $dataSet['blanks']; - if (($cellValue == '') || ($cellValue === null)) { - return $blanks; - } - - if (is_numeric($cellValue)) { - $dateValue = PHPExcel_Shared_Date::ExcelToPHP($cellValue); - if ($cellValue < 1) { - // Just the time part - $dtVal = date('His', $dateValue); - $dateSet = $dateSet['time']; - } elseif ($cellValue == floor($cellValue)) { - // Just the date part - $dtVal = date('Ymd', $dateValue); - $dateSet = $dateSet['date']; - } else { - // date and time parts - $dtVal = date('YmdHis', $dateValue); - $dateSet = $dateSet['dateTime']; - } - foreach ($dateSet as $dateValue) { - // Use of substr to extract value at the appropriate group level - if (substr($dtVal, 0, strlen($dateValue)) == $dateValue) { - return true; - } - } - } - return false; - } - - /** - * Test if cell value is within a set of values defined by a ruleset - * - * @param mixed $cellValue - * @param mixed[] $ruleSet - * @return boolean - */ - private static function filterTestInCustomDataSet($cellValue, $ruleSet) - { - $dataSet = $ruleSet['filterRules']; - $join = $ruleSet['join']; - $customRuleForBlanks = isset($ruleSet['customRuleForBlanks']) ? $ruleSet['customRuleForBlanks'] : false; - - if (!$customRuleForBlanks) { - // Blank cells are always ignored, so return a FALSE - if (($cellValue == '') || ($cellValue === null)) { - return false; - } - } - $returnVal = ($join == PHPExcel_Worksheet_AutoFilter_Column::AUTOFILTER_COLUMN_JOIN_AND); - foreach ($dataSet as $rule) { - if (is_numeric($rule['value'])) { - // Numeric values are tested using the appropriate operator - switch ($rule['operator']) { - case PHPExcel_Worksheet_AutoFilter_Column_Rule::AUTOFILTER_COLUMN_RULE_EQUAL: - $retVal = ($cellValue == $rule['value']); - break; - case PHPExcel_Worksheet_AutoFilter_Column_Rule::AUTOFILTER_COLUMN_RULE_NOTEQUAL: - $retVal = ($cellValue != $rule['value']); - break; - case PHPExcel_Worksheet_AutoFilter_Column_Rule::AUTOFILTER_COLUMN_RULE_GREATERTHAN: - $retVal = ($cellValue > $rule['value']); - break; - case PHPExcel_Worksheet_AutoFilter_Column_Rule::AUTOFILTER_COLUMN_RULE_GREATERTHANOREQUAL: - $retVal = ($cellValue >= $rule['value']); - break; - case PHPExcel_Worksheet_AutoFilter_Column_Rule::AUTOFILTER_COLUMN_RULE_LESSTHAN: - $retVal = ($cellValue < $rule['value']); - break; - case PHPExcel_Worksheet_AutoFilter_Column_Rule::AUTOFILTER_COLUMN_RULE_LESSTHANOREQUAL: - $retVal = ($cellValue <= $rule['value']); - break; - } - } elseif ($rule['value'] == '') { - switch ($rule['operator']) { - case PHPExcel_Worksheet_AutoFilter_Column_Rule::AUTOFILTER_COLUMN_RULE_EQUAL: - $retVal = (($cellValue == '') || ($cellValue === null)); - break; - case PHPExcel_Worksheet_AutoFilter_Column_Rule::AUTOFILTER_COLUMN_RULE_NOTEQUAL: - $retVal = (($cellValue != '') && ($cellValue !== null)); - break; - default: - $retVal = true; - break; - } - } else { - // String values are always tested for equality, factoring in for wildcards (hence a regexp test) - $retVal = preg_match('/^'.$rule['value'].'$/i', $cellValue); - } - // If there are multiple conditions, then we need to test both using the appropriate join operator - switch ($join) { - case PHPExcel_Worksheet_AutoFilter_Column::AUTOFILTER_COLUMN_JOIN_OR: - $returnVal = $returnVal || $retVal; - // Break as soon as we have a TRUE match for OR joins, - // to avoid unnecessary additional code execution - if ($returnVal) { - return $returnVal; - } - break; - case PHPExcel_Worksheet_AutoFilter_Column::AUTOFILTER_COLUMN_JOIN_AND: - $returnVal = $returnVal && $retVal; - break; - } - } - - return $returnVal; - } - - /** - * Test if cell date value is matches a set of values defined by a set of months - * - * @param mixed $cellValue - * @param mixed[] $monthSet - * @return boolean - */ - private static function filterTestInPeriodDateSet($cellValue, $monthSet) - { - // Blank cells are always ignored, so return a FALSE - if (($cellValue == '') || ($cellValue === null)) { - return false; - } - - if (is_numeric($cellValue)) { - $dateValue = date('m', PHPExcel_Shared_Date::ExcelToPHP($cellValue)); - if (in_array($dateValue, $monthSet)) { - return true; - } - } - - return false; - } - - /** - * Search/Replace arrays to convert Excel wildcard syntax to a regexp syntax for preg_matching - * - * @var array - */ - private static $fromReplace = array('\*', '\?', '~~', '~.*', '~.?'); - private static $toReplace = array('.*', '.', '~', '\*', '\?'); - - - /** - * Convert a dynamic rule daterange to a custom filter range expression for ease of calculation - * - * @param string $dynamicRuleType - * @param PHPExcel_Worksheet_AutoFilter_Column &$filterColumn - * @return mixed[] - */ - private function dynamicFilterDateRange($dynamicRuleType, &$filterColumn) - { - $rDateType = PHPExcel_Calculation_Functions::getReturnDateType(); - PHPExcel_Calculation_Functions::setReturnDateType(PHPExcel_Calculation_Functions::RETURNDATE_PHP_NUMERIC); - $val = $maxVal = null; - - $ruleValues = array(); - $baseDate = PHPExcel_Calculation_DateTime::DATENOW(); - // Calculate start/end dates for the required date range based on current date - switch ($dynamicRuleType) { - case PHPExcel_Worksheet_AutoFilter_Column_Rule::AUTOFILTER_RULETYPE_DYNAMIC_LASTWEEK: - $baseDate = strtotime('-7 days', $baseDate); - break; - case PHPExcel_Worksheet_AutoFilter_Column_Rule::AUTOFILTER_RULETYPE_DYNAMIC_NEXTWEEK: - $baseDate = strtotime('-7 days', $baseDate); - break; - case PHPExcel_Worksheet_AutoFilter_Column_Rule::AUTOFILTER_RULETYPE_DYNAMIC_LASTMONTH: - $baseDate = strtotime('-1 month', gmmktime(0, 0, 0, 1, date('m', $baseDate), date('Y', $baseDate))); - break; - case PHPExcel_Worksheet_AutoFilter_Column_Rule::AUTOFILTER_RULETYPE_DYNAMIC_NEXTMONTH: - $baseDate = strtotime('+1 month', gmmktime(0, 0, 0, 1, date('m', $baseDate), date('Y', $baseDate))); - break; - case PHPExcel_Worksheet_AutoFilter_Column_Rule::AUTOFILTER_RULETYPE_DYNAMIC_LASTQUARTER: - $baseDate = strtotime('-3 month', gmmktime(0, 0, 0, 1, date('m', $baseDate), date('Y', $baseDate))); - break; - case PHPExcel_Worksheet_AutoFilter_Column_Rule::AUTOFILTER_RULETYPE_DYNAMIC_NEXTQUARTER: - $baseDate = strtotime('+3 month', gmmktime(0, 0, 0, 1, date('m', $baseDate), date('Y', $baseDate))); - break; - case PHPExcel_Worksheet_AutoFilter_Column_Rule::AUTOFILTER_RULETYPE_DYNAMIC_LASTYEAR: - $baseDate = strtotime('-1 year', gmmktime(0, 0, 0, 1, date('m', $baseDate), date('Y', $baseDate))); - break; - case PHPExcel_Worksheet_AutoFilter_Column_Rule::AUTOFILTER_RULETYPE_DYNAMIC_NEXTYEAR: - $baseDate = strtotime('+1 year', gmmktime(0, 0, 0, 1, date('m', $baseDate), date('Y', $baseDate))); - break; - } - - switch ($dynamicRuleType) { - case PHPExcel_Worksheet_AutoFilter_Column_Rule::AUTOFILTER_RULETYPE_DYNAMIC_TODAY: - case PHPExcel_Worksheet_AutoFilter_Column_Rule::AUTOFILTER_RULETYPE_DYNAMIC_YESTERDAY: - case PHPExcel_Worksheet_AutoFilter_Column_Rule::AUTOFILTER_RULETYPE_DYNAMIC_TOMORROW: - $maxVal = (int) PHPExcel_Shared_Date::PHPtoExcel(strtotime('+1 day', $baseDate)); - $val = (int) PHPExcel_Shared_Date::PHPToExcel($baseDate); - break; - case PHPExcel_Worksheet_AutoFilter_Column_Rule::AUTOFILTER_RULETYPE_DYNAMIC_YEARTODATE: - $maxVal = (int) PHPExcel_Shared_Date::PHPtoExcel(strtotime('+1 day', $baseDate)); - $val = (int) PHPExcel_Shared_Date::PHPToExcel(gmmktime(0, 0, 0, 1, 1, date('Y', $baseDate))); - break; - case PHPExcel_Worksheet_AutoFilter_Column_Rule::AUTOFILTER_RULETYPE_DYNAMIC_THISYEAR: - case PHPExcel_Worksheet_AutoFilter_Column_Rule::AUTOFILTER_RULETYPE_DYNAMIC_LASTYEAR: - case PHPExcel_Worksheet_AutoFilter_Column_Rule::AUTOFILTER_RULETYPE_DYNAMIC_NEXTYEAR: - $maxVal = (int) PHPExcel_Shared_Date::PHPToExcel(gmmktime(0, 0, 0, 31, 12, date('Y', $baseDate))); - ++$maxVal; - $val = (int) PHPExcel_Shared_Date::PHPToExcel(gmmktime(0, 0, 0, 1, 1, date('Y', $baseDate))); - break; - case PHPExcel_Worksheet_AutoFilter_Column_Rule::AUTOFILTER_RULETYPE_DYNAMIC_THISQUARTER: - case PHPExcel_Worksheet_AutoFilter_Column_Rule::AUTOFILTER_RULETYPE_DYNAMIC_LASTQUARTER: - case PHPExcel_Worksheet_AutoFilter_Column_Rule::AUTOFILTER_RULETYPE_DYNAMIC_NEXTQUARTER: - $thisMonth = date('m', $baseDate); - $thisQuarter = floor(--$thisMonth / 3); - $maxVal = (int) PHPExcel_Shared_Date::PHPtoExcel(gmmktime(0, 0, 0, date('t', $baseDate), (1+$thisQuarter)*3, date('Y', $baseDate))); - ++$maxVal; - $val = (int) PHPExcel_Shared_Date::PHPToExcel(gmmktime(0, 0, 0, 1, 1+$thisQuarter*3, date('Y', $baseDate))); - break; - case PHPExcel_Worksheet_AutoFilter_Column_Rule::AUTOFILTER_RULETYPE_DYNAMIC_THISMONTH: - case PHPExcel_Worksheet_AutoFilter_Column_Rule::AUTOFILTER_RULETYPE_DYNAMIC_LASTMONTH: - case PHPExcel_Worksheet_AutoFilter_Column_Rule::AUTOFILTER_RULETYPE_DYNAMIC_NEXTMONTH: - $maxVal = (int) PHPExcel_Shared_Date::PHPtoExcel(gmmktime(0, 0, 0, date('t', $baseDate), date('m', $baseDate), date('Y', $baseDate))); - ++$maxVal; - $val = (int) PHPExcel_Shared_Date::PHPToExcel(gmmktime(0, 0, 0, 1, date('m', $baseDate), date('Y', $baseDate))); - break; - case PHPExcel_Worksheet_AutoFilter_Column_Rule::AUTOFILTER_RULETYPE_DYNAMIC_THISWEEK: - case PHPExcel_Worksheet_AutoFilter_Column_Rule::AUTOFILTER_RULETYPE_DYNAMIC_LASTWEEK: - case PHPExcel_Worksheet_AutoFilter_Column_Rule::AUTOFILTER_RULETYPE_DYNAMIC_NEXTWEEK: - $dayOfWeek = date('w', $baseDate); - $val = (int) PHPExcel_Shared_Date::PHPToExcel($baseDate) - $dayOfWeek; - $maxVal = $val + 7; - break; - } - - switch ($dynamicRuleType) { - // Adjust Today dates for Yesterday and Tomorrow - case PHPExcel_Worksheet_AutoFilter_Column_Rule::AUTOFILTER_RULETYPE_DYNAMIC_YESTERDAY: - --$maxVal; - --$val; - break; - case PHPExcel_Worksheet_AutoFilter_Column_Rule::AUTOFILTER_RULETYPE_DYNAMIC_TOMORROW: - ++$maxVal; - ++$val; - break; - } - - // Set the filter column rule attributes ready for writing - $filterColumn->setAttributes(array('val' => $val, 'maxVal' => $maxVal)); - - // Set the rules for identifying rows for hide/show - $ruleValues[] = array('operator' => PHPExcel_Worksheet_AutoFilter_Column_Rule::AUTOFILTER_COLUMN_RULE_GREATERTHANOREQUAL, 'value' => $val); - $ruleValues[] = array('operator' => PHPExcel_Worksheet_AutoFilter_Column_Rule::AUTOFILTER_COLUMN_RULE_LESSTHAN, 'value' => $maxVal); - PHPExcel_Calculation_Functions::setReturnDateType($rDateType); - - return array('method' => 'filterTestInCustomDataSet', 'arguments' => array('filterRules' => $ruleValues, 'join' => PHPExcel_Worksheet_AutoFilter_Column::AUTOFILTER_COLUMN_JOIN_AND)); - } - - private function calculateTopTenValue($columnID, $startRow, $endRow, $ruleType, $ruleValue) - { - $range = $columnID.$startRow.':'.$columnID.$endRow; - $dataValues = PHPExcel_Calculation_Functions::flattenArray($this->workSheet->rangeToArray($range, null, true, false)); - - $dataValues = array_filter($dataValues); - if ($ruleType == PHPExcel_Worksheet_AutoFilter_Column_Rule::AUTOFILTER_COLUMN_RULE_TOPTEN_TOP) { - rsort($dataValues); - } else { - sort($dataValues); - } - - return array_pop(array_slice($dataValues, 0, $ruleValue)); - } - - /** - * Apply the AutoFilter rules to the AutoFilter Range - * - * @throws PHPExcel_Exception - * @return PHPExcel_Worksheet_AutoFilter - */ - public function showHideRows() - { - list($rangeStart, $rangeEnd) = PHPExcel_Cell::rangeBoundaries($this->range); - - // The heading row should always be visible -// echo 'AutoFilter Heading Row ', $rangeStart[1],' is always SHOWN',PHP_EOL; - $this->workSheet->getRowDimension($rangeStart[1])->setVisible(true); - - $columnFilterTests = array(); - foreach ($this->columns as $columnID => $filterColumn) { - $rules = $filterColumn->getRules(); - switch ($filterColumn->getFilterType()) { - case PHPExcel_Worksheet_AutoFilter_Column::AUTOFILTER_FILTERTYPE_FILTER: - $ruleValues = array(); - // Build a list of the filter value selections - foreach ($rules as $rule) { - $ruleType = $rule->getRuleType(); - $ruleValues[] = $rule->getValue(); - } - // Test if we want to include blanks in our filter criteria - $blanks = false; - $ruleDataSet = array_filter($ruleValues); - if (count($ruleValues) != count($ruleDataSet)) { - $blanks = true; - } - if ($ruleType == PHPExcel_Worksheet_AutoFilter_Column_Rule::AUTOFILTER_RULETYPE_FILTER) { - // Filter on absolute values - $columnFilterTests[$columnID] = array( - 'method' => 'filterTestInSimpleDataSet', - 'arguments' => array('filterValues' => $ruleDataSet, 'blanks' => $blanks) - ); - } else { - // Filter on date group values - $arguments = array( - 'date' => array(), - 'time' => array(), - 'dateTime' => array(), - ); - foreach ($ruleDataSet as $ruleValue) { - $date = $time = ''; - if ((isset($ruleValue[PHPExcel_Worksheet_AutoFilter_Column_Rule::AUTOFILTER_RULETYPE_DATEGROUP_YEAR])) && - ($ruleValue[PHPExcel_Worksheet_AutoFilter_Column_Rule::AUTOFILTER_RULETYPE_DATEGROUP_YEAR] !== '')) { - $date .= sprintf('%04d', $ruleValue[PHPExcel_Worksheet_AutoFilter_Column_Rule::AUTOFILTER_RULETYPE_DATEGROUP_YEAR]); - } - if ((isset($ruleValue[PHPExcel_Worksheet_AutoFilter_Column_Rule::AUTOFILTER_RULETYPE_DATEGROUP_MONTH])) && - ($ruleValue[PHPExcel_Worksheet_AutoFilter_Column_Rule::AUTOFILTER_RULETYPE_DATEGROUP_MONTH] != '')) { - $date .= sprintf('%02d', $ruleValue[PHPExcel_Worksheet_AutoFilter_Column_Rule::AUTOFILTER_RULETYPE_DATEGROUP_MONTH]); - } - if ((isset($ruleValue[PHPExcel_Worksheet_AutoFilter_Column_Rule::AUTOFILTER_RULETYPE_DATEGROUP_DAY])) && - ($ruleValue[PHPExcel_Worksheet_AutoFilter_Column_Rule::AUTOFILTER_RULETYPE_DATEGROUP_DAY] !== '')) { - $date .= sprintf('%02d', $ruleValue[PHPExcel_Worksheet_AutoFilter_Column_Rule::AUTOFILTER_RULETYPE_DATEGROUP_DAY]); - } - if ((isset($ruleValue[PHPExcel_Worksheet_AutoFilter_Column_Rule::AUTOFILTER_RULETYPE_DATEGROUP_HOUR])) && - ($ruleValue[PHPExcel_Worksheet_AutoFilter_Column_Rule::AUTOFILTER_RULETYPE_DATEGROUP_HOUR] !== '')) { - $time .= sprintf('%02d', $ruleValue[PHPExcel_Worksheet_AutoFilter_Column_Rule::AUTOFILTER_RULETYPE_DATEGROUP_HOUR]); - } - if ((isset($ruleValue[PHPExcel_Worksheet_AutoFilter_Column_Rule::AUTOFILTER_RULETYPE_DATEGROUP_MINUTE])) && - ($ruleValue[PHPExcel_Worksheet_AutoFilter_Column_Rule::AUTOFILTER_RULETYPE_DATEGROUP_MINUTE] !== '')) { - $time .= sprintf('%02d', $ruleValue[PHPExcel_Worksheet_AutoFilter_Column_Rule::AUTOFILTER_RULETYPE_DATEGROUP_MINUTE]); - } - if ((isset($ruleValue[PHPExcel_Worksheet_AutoFilter_Column_Rule::AUTOFILTER_RULETYPE_DATEGROUP_SECOND])) && - ($ruleValue[PHPExcel_Worksheet_AutoFilter_Column_Rule::AUTOFILTER_RULETYPE_DATEGROUP_SECOND] !== '')) { - $time .= sprintf('%02d', $ruleValue[PHPExcel_Worksheet_AutoFilter_Column_Rule::AUTOFILTER_RULETYPE_DATEGROUP_SECOND]); - } - $dateTime = $date . $time; - $arguments['date'][] = $date; - $arguments['time'][] = $time; - $arguments['dateTime'][] = $dateTime; - } - // Remove empty elements - $arguments['date'] = array_filter($arguments['date']); - $arguments['time'] = array_filter($arguments['time']); - $arguments['dateTime'] = array_filter($arguments['dateTime']); - $columnFilterTests[$columnID] = array( - 'method' => 'filterTestInDateGroupSet', - 'arguments' => array('filterValues' => $arguments, 'blanks' => $blanks) - ); - } - break; - case PHPExcel_Worksheet_AutoFilter_Column::AUTOFILTER_FILTERTYPE_CUSTOMFILTER: - $customRuleForBlanks = false; - $ruleValues = array(); - // Build a list of the filter value selections - foreach ($rules as $rule) { - $ruleType = $rule->getRuleType(); - $ruleValue = $rule->getValue(); - if (!is_numeric($ruleValue)) { - // Convert to a regexp allowing for regexp reserved characters, wildcards and escaped wildcards - $ruleValue = preg_quote($ruleValue); - $ruleValue = str_replace(self::$fromReplace, self::$toReplace, $ruleValue); - if (trim($ruleValue) == '') { - $customRuleForBlanks = true; - $ruleValue = trim($ruleValue); - } - } - $ruleValues[] = array('operator' => $rule->getOperator(), 'value' => $ruleValue); - } - $join = $filterColumn->getJoin(); - $columnFilterTests[$columnID] = array( - 'method' => 'filterTestInCustomDataSet', - 'arguments' => array('filterRules' => $ruleValues, 'join' => $join, 'customRuleForBlanks' => $customRuleForBlanks) - ); - break; - case PHPExcel_Worksheet_AutoFilter_Column::AUTOFILTER_FILTERTYPE_DYNAMICFILTER: - $ruleValues = array(); - foreach ($rules as $rule) { - // We should only ever have one Dynamic Filter Rule anyway - $dynamicRuleType = $rule->getGrouping(); - if (($dynamicRuleType == PHPExcel_Worksheet_AutoFilter_Column_Rule::AUTOFILTER_RULETYPE_DYNAMIC_ABOVEAVERAGE) || - ($dynamicRuleType == PHPExcel_Worksheet_AutoFilter_Column_Rule::AUTOFILTER_RULETYPE_DYNAMIC_BELOWAVERAGE)) { - // Number (Average) based - // Calculate the average - $averageFormula = '=AVERAGE('.$columnID.($rangeStart[1]+1).':'.$columnID.$rangeEnd[1].')'; - $average = PHPExcel_Calculation::getInstance()->calculateFormula($averageFormula, null, $this->workSheet->getCell('A1')); - // Set above/below rule based on greaterThan or LessTan - $operator = ($dynamicRuleType === PHPExcel_Worksheet_AutoFilter_Column_Rule::AUTOFILTER_RULETYPE_DYNAMIC_ABOVEAVERAGE) - ? PHPExcel_Worksheet_AutoFilter_Column_Rule::AUTOFILTER_COLUMN_RULE_GREATERTHAN - : PHPExcel_Worksheet_AutoFilter_Column_Rule::AUTOFILTER_COLUMN_RULE_LESSTHAN; - $ruleValues[] = array('operator' => $operator, - 'value' => $average - ); - $columnFilterTests[$columnID] = array( - 'method' => 'filterTestInCustomDataSet', - 'arguments' => array('filterRules' => $ruleValues, 'join' => PHPExcel_Worksheet_AutoFilter_Column::AUTOFILTER_COLUMN_JOIN_OR) - ); - } else { - // Date based - if ($dynamicRuleType{0} == 'M' || $dynamicRuleType{0} == 'Q') { - // Month or Quarter - sscanf($dynamicRuleType, '%[A-Z]%d', $periodType, $period); - if ($periodType == 'M') { - $ruleValues = array($period); - } else { - --$period; - $periodEnd = (1+$period)*3; - $periodStart = 1+$period*3; - $ruleValues = range($periodStart, $periodEnd); - } - $columnFilterTests[$columnID] = array( - 'method' => 'filterTestInPeriodDateSet', - 'arguments' => $ruleValues - ); - $filterColumn->setAttributes(array()); - } else { - // Date Range - $columnFilterTests[$columnID] = $this->dynamicFilterDateRange($dynamicRuleType, $filterColumn); - break; - } - } - } - break; - case PHPExcel_Worksheet_AutoFilter_Column::AUTOFILTER_FILTERTYPE_TOPTENFILTER: - $ruleValues = array(); - $dataRowCount = $rangeEnd[1] - $rangeStart[1]; - foreach ($rules as $rule) { - // We should only ever have one Dynamic Filter Rule anyway - $toptenRuleType = $rule->getGrouping(); - $ruleValue = $rule->getValue(); - $ruleOperator = $rule->getOperator(); - } - if ($ruleOperator === PHPExcel_Worksheet_AutoFilter_Column_Rule::AUTOFILTER_COLUMN_RULE_TOPTEN_PERCENT) { - $ruleValue = floor($ruleValue * ($dataRowCount / 100)); - } - if ($ruleValue < 1) { - $ruleValue = 1; - } - if ($ruleValue > 500) { - $ruleValue = 500; - } - - $maxVal = $this->calculateTopTenValue($columnID, $rangeStart[1]+1, $rangeEnd[1], $toptenRuleType, $ruleValue); - - $operator = ($toptenRuleType == PHPExcel_Worksheet_AutoFilter_Column_Rule::AUTOFILTER_COLUMN_RULE_TOPTEN_TOP) - ? PHPExcel_Worksheet_AutoFilter_Column_Rule::AUTOFILTER_COLUMN_RULE_GREATERTHANOREQUAL - : PHPExcel_Worksheet_AutoFilter_Column_Rule::AUTOFILTER_COLUMN_RULE_LESSTHANOREQUAL; - $ruleValues[] = array('operator' => $operator, 'value' => $maxVal); - $columnFilterTests[$columnID] = array( - 'method' => 'filterTestInCustomDataSet', - 'arguments' => array('filterRules' => $ruleValues, 'join' => PHPExcel_Worksheet_AutoFilter_Column::AUTOFILTER_COLUMN_JOIN_OR) - ); - $filterColumn->setAttributes(array('maxVal' => $maxVal)); - break; - } - } - -// echo 'Column Filter Test CRITERIA',PHP_EOL; -// var_dump($columnFilterTests); -// - // Execute the column tests for each row in the autoFilter range to determine show/hide, - for ($row = $rangeStart[1]+1; $row <= $rangeEnd[1]; ++$row) { -// echo 'Testing Row = ', $row,PHP_EOL; - $result = true; - foreach ($columnFilterTests as $columnID => $columnFilterTest) { -// echo 'Testing cell ', $columnID.$row,PHP_EOL; - $cellValue = $this->workSheet->getCell($columnID.$row)->getCalculatedValue(); -// echo 'Value is ', $cellValue,PHP_EOL; - // Execute the filter test - $result = $result && - call_user_func_array( - array('PHPExcel_Worksheet_AutoFilter', $columnFilterTest['method']), - array($cellValue, $columnFilterTest['arguments']) - ); -// echo (($result) ? 'VALID' : 'INVALID'),PHP_EOL; - // If filter test has resulted in FALSE, exit the loop straightaway rather than running any more tests - if (!$result) { - break; - } - } - // Set show/hide for the row based on the result of the autoFilter result -// echo (($result) ? 'SHOW' : 'HIDE'),PHP_EOL; - $this->workSheet->getRowDimension($row)->setVisible($result); - } - - return $this; - } - - - /** - * Implement PHP __clone to create a deep clone, not just a shallow copy. - */ - public function __clone() - { - $vars = get_object_vars($this); - foreach ($vars as $key => $value) { - if (is_object($value)) { - if ($key == 'workSheet') { - // Detach from worksheet - $this->{$key} = null; - } else { - $this->{$key} = clone $value; - } - } elseif ((is_array($value)) && ($key == 'columns')) { - // The columns array of PHPExcel_Worksheet_AutoFilter objects - $this->{$key} = array(); - foreach ($value as $k => $v) { - $this->{$key}[$k] = clone $v; - // attach the new cloned Column to this new cloned Autofilter object - $this->{$key}[$k]->setParent($this); - } - } else { - $this->{$key} = $value; - } - } - } - - /** - * toString method replicates previous behavior by returning the range if object is - * referenced as a property of its parent. - */ - public function __toString() - { - return (string) $this->range; - } -} diff --git a/Utils/PHPExcel/Worksheet/AutoFilter/Column.php b/Utils/PHPExcel/Worksheet/AutoFilter/Column.php deleted file mode 100644 index d64fd81..0000000 --- a/Utils/PHPExcel/Worksheet/AutoFilter/Column.php +++ /dev/null @@ -1,405 +0,0 @@ -<?php - -/** - * PHPExcel_Worksheet_AutoFilter_Column - * - * Copyright (c) 2006 - 2015 PHPExcel - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - * - * @category PHPExcel - * @package PHPExcel_Worksheet - * @copyright Copyright (c) 2006 - 2015 PHPExcel (http://www.codeplex.com/PHPExcel) - * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL - * @version ##VERSION##, ##DATE## - */ -class PHPExcel_Worksheet_AutoFilter_Column -{ - const AUTOFILTER_FILTERTYPE_FILTER = 'filters'; - const AUTOFILTER_FILTERTYPE_CUSTOMFILTER = 'customFilters'; - // Supports no more than 2 rules, with an And/Or join criteria - // if more than 1 rule is defined - const AUTOFILTER_FILTERTYPE_DYNAMICFILTER = 'dynamicFilter'; - // Even though the filter rule is constant, the filtered data can vary - // e.g. filtered by date = TODAY - const AUTOFILTER_FILTERTYPE_TOPTENFILTER = 'top10'; - - /** - * Types of autofilter rules - * - * @var string[] - */ - private static $filterTypes = array( - // Currently we're not handling - // colorFilter - // extLst - // iconFilter - self::AUTOFILTER_FILTERTYPE_FILTER, - self::AUTOFILTER_FILTERTYPE_CUSTOMFILTER, - self::AUTOFILTER_FILTERTYPE_DYNAMICFILTER, - self::AUTOFILTER_FILTERTYPE_TOPTENFILTER, - ); - - /* Multiple Rule Connections */ - const AUTOFILTER_COLUMN_JOIN_AND = 'and'; - const AUTOFILTER_COLUMN_JOIN_OR = 'or'; - - /** - * Join options for autofilter rules - * - * @var string[] - */ - private static $ruleJoins = array( - self::AUTOFILTER_COLUMN_JOIN_AND, - self::AUTOFILTER_COLUMN_JOIN_OR, - ); - - /** - * Autofilter - * - * @var PHPExcel_Worksheet_AutoFilter - */ - private $parent; - - - /** - * Autofilter Column Index - * - * @var string - */ - private $columnIndex = ''; - - - /** - * Autofilter Column Filter Type - * - * @var string - */ - private $filterType = self::AUTOFILTER_FILTERTYPE_FILTER; - - - /** - * Autofilter Multiple Rules And/Or - * - * @var string - */ - private $join = self::AUTOFILTER_COLUMN_JOIN_OR; - - - /** - * Autofilter Column Rules - * - * @var array of PHPExcel_Worksheet_AutoFilter_Column_Rule - */ - private $ruleset = array(); - - - /** - * Autofilter Column Dynamic Attributes - * - * @var array of mixed - */ - private $attributes = array(); - - - /** - * Create a new PHPExcel_Worksheet_AutoFilter_Column - * - * @param string $pColumn Column (e.g. A) - * @param PHPExcel_Worksheet_AutoFilter $pParent Autofilter for this column - */ - public function __construct($pColumn, PHPExcel_Worksheet_AutoFilter $pParent = null) - { - $this->columnIndex = $pColumn; - $this->parent = $pParent; - } - - /** - * Get AutoFilter Column Index - * - * @return string - */ - public function getColumnIndex() - { - return $this->columnIndex; - } - - /** - * Set AutoFilter Column Index - * - * @param string $pColumn Column (e.g. A) - * @throws PHPExcel_Exception - * @return PHPExcel_Worksheet_AutoFilter_Column - */ - public function setColumnIndex($pColumn) - { - // Uppercase coordinate - $pColumn = strtoupper($pColumn); - if ($this->parent !== null) { - $this->parent->testColumnInRange($pColumn); - } - - $this->columnIndex = $pColumn; - - return $this; - } - - /** - * Get this Column's AutoFilter Parent - * - * @return PHPExcel_Worksheet_AutoFilter - */ - public function getParent() - { - return $this->parent; - } - - /** - * Set this Column's AutoFilter Parent - * - * @param PHPExcel_Worksheet_AutoFilter - * @return PHPExcel_Worksheet_AutoFilter_Column - */ - public function setParent(PHPExcel_Worksheet_AutoFilter $pParent = null) - { - $this->parent = $pParent; - - return $this; - } - - /** - * Get AutoFilter Type - * - * @return string - */ - public function getFilterType() - { - return $this->filterType; - } - - /** - * Set AutoFilter Type - * - * @param string $pFilterType - * @throws PHPExcel_Exception - * @return PHPExcel_Worksheet_AutoFilter_Column - */ - public function setFilterType($pFilterType = self::AUTOFILTER_FILTERTYPE_FILTER) - { - if (!in_array($pFilterType, self::$filterTypes)) { - throw new PHPExcel_Exception('Invalid filter type for column AutoFilter.'); - } - - $this->filterType = $pFilterType; - - return $this; - } - - /** - * Get AutoFilter Multiple Rules And/Or Join - * - * @return string - */ - public function getJoin() - { - return $this->join; - } - - /** - * Set AutoFilter Multiple Rules And/Or - * - * @param string $pJoin And/Or - * @throws PHPExcel_Exception - * @return PHPExcel_Worksheet_AutoFilter_Column - */ - public function setJoin($pJoin = self::AUTOFILTER_COLUMN_JOIN_OR) - { - // Lowercase And/Or - $pJoin = strtolower($pJoin); - if (!in_array($pJoin, self::$ruleJoins)) { - throw new PHPExcel_Exception('Invalid rule connection for column AutoFilter.'); - } - - $this->join = $pJoin; - - return $this; - } - - /** - * Set AutoFilter Attributes - * - * @param string[] $pAttributes - * @throws PHPExcel_Exception - * @return PHPExcel_Worksheet_AutoFilter_Column - */ - public function setAttributes($pAttributes = array()) - { - $this->attributes = $pAttributes; - - return $this; - } - - /** - * Set An AutoFilter Attribute - * - * @param string $pName Attribute Name - * @param string $pValue Attribute Value - * @throws PHPExcel_Exception - * @return PHPExcel_Worksheet_AutoFilter_Column - */ - public function setAttribute($pName, $pValue) - { - $this->attributes[$pName] = $pValue; - - return $this; - } - - /** - * Get AutoFilter Column Attributes - * - * @return string - */ - public function getAttributes() - { - return $this->attributes; - } - - /** - * Get specific AutoFilter Column Attribute - * - * @param string $pName Attribute Name - * @return string - */ - public function getAttribute($pName) - { - if (isset($this->attributes[$pName])) { - return $this->attributes[$pName]; - } - return null; - } - - /** - * Get all AutoFilter Column Rules - * - * @throws PHPExcel_Exception - * @return array of PHPExcel_Worksheet_AutoFilter_Column_Rule - */ - public function getRules() - { - return $this->ruleset; - } - - /** - * Get a specified AutoFilter Column Rule - * - * @param integer $pIndex Rule index in the ruleset array - * @return PHPExcel_Worksheet_AutoFilter_Column_Rule - */ - public function getRule($pIndex) - { - if (!isset($this->ruleset[$pIndex])) { - $this->ruleset[$pIndex] = new PHPExcel_Worksheet_AutoFilter_Column_Rule($this); - } - return $this->ruleset[$pIndex]; - } - - /** - * Create a new AutoFilter Column Rule in the ruleset - * - * @return PHPExcel_Worksheet_AutoFilter_Column_Rule - */ - public function createRule() - { - $this->ruleset[] = new PHPExcel_Worksheet_AutoFilter_Column_Rule($this); - - return end($this->ruleset); - } - - /** - * Add a new AutoFilter Column Rule to the ruleset - * - * @param PHPExcel_Worksheet_AutoFilter_Column_Rule $pRule - * @param boolean $returnRule Flag indicating whether the rule object or the column object should be returned - * @return PHPExcel_Worksheet_AutoFilter_Column|PHPExcel_Worksheet_AutoFilter_Column_Rule - */ - public function addRule(PHPExcel_Worksheet_AutoFilter_Column_Rule $pRule, $returnRule = true) - { - $pRule->setParent($this); - $this->ruleset[] = $pRule; - - return ($returnRule) ? $pRule : $this; - } - - /** - * Delete a specified AutoFilter Column Rule - * If the number of rules is reduced to 1, then we reset And/Or logic to Or - * - * @param integer $pIndex Rule index in the ruleset array - * @return PHPExcel_Worksheet_AutoFilter_Column - */ - public function deleteRule($pIndex) - { - if (isset($this->ruleset[$pIndex])) { - unset($this->ruleset[$pIndex]); - // If we've just deleted down to a single rule, then reset And/Or joining to Or - if (count($this->ruleset) <= 1) { - $this->setJoin(self::AUTOFILTER_COLUMN_JOIN_OR); - } - } - - return $this; - } - - /** - * Delete all AutoFilter Column Rules - * - * @return PHPExcel_Worksheet_AutoFilter_Column - */ - public function clearRules() - { - $this->ruleset = array(); - $this->setJoin(self::AUTOFILTER_COLUMN_JOIN_OR); - - return $this; - } - - /** - * Implement PHP __clone to create a deep clone, not just a shallow copy. - */ - public function __clone() - { - $vars = get_object_vars($this); - foreach ($vars as $key => $value) { - if (is_object($value)) { - if ($key == 'parent') { - // Detach from autofilter parent - $this->$key = null; - } else { - $this->$key = clone $value; - } - } elseif ((is_array($value)) && ($key == 'ruleset')) { - // The columns array of PHPExcel_Worksheet_AutoFilter objects - $this->$key = array(); - foreach ($value as $k => $v) { - $this->$key[$k] = clone $v; - // attach the new cloned Rule to this new cloned Autofilter Cloned object - $this->$key[$k]->setParent($this); - } - } else { - $this->$key = $value; - } - } - } -} diff --git a/Utils/PHPExcel/Worksheet/AutoFilter/Column/Rule.php b/Utils/PHPExcel/Worksheet/AutoFilter/Column/Rule.php deleted file mode 100644 index 39ad18b..0000000 --- a/Utils/PHPExcel/Worksheet/AutoFilter/Column/Rule.php +++ /dev/null @@ -1,468 +0,0 @@ -<?php - -/** - * PHPExcel_Worksheet_AutoFilter_Column_Rule - * - * Copyright (c) 2006 - 2015 PHPExcel - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - * - * @category PHPExcel - * @package PHPExcel_Worksheet - * @copyright Copyright (c) 2006 - 2015 PHPExcel (http://www.codeplex.com/PHPExcel) - * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL - * @version ##VERSION##, ##DATE## - */ -class PHPExcel_Worksheet_AutoFilter_Column_Rule -{ - const AUTOFILTER_RULETYPE_FILTER = 'filter'; - const AUTOFILTER_RULETYPE_DATEGROUP = 'dateGroupItem'; - const AUTOFILTER_RULETYPE_CUSTOMFILTER = 'customFilter'; - const AUTOFILTER_RULETYPE_DYNAMICFILTER = 'dynamicFilter'; - const AUTOFILTER_RULETYPE_TOPTENFILTER = 'top10Filter'; - - private static $ruleTypes = array( - // Currently we're not handling - // colorFilter - // extLst - // iconFilter - self::AUTOFILTER_RULETYPE_FILTER, - self::AUTOFILTER_RULETYPE_DATEGROUP, - self::AUTOFILTER_RULETYPE_CUSTOMFILTER, - self::AUTOFILTER_RULETYPE_DYNAMICFILTER, - self::AUTOFILTER_RULETYPE_TOPTENFILTER, - ); - - const AUTOFILTER_RULETYPE_DATEGROUP_YEAR = 'year'; - const AUTOFILTER_RULETYPE_DATEGROUP_MONTH = 'month'; - const AUTOFILTER_RULETYPE_DATEGROUP_DAY = 'day'; - const AUTOFILTER_RULETYPE_DATEGROUP_HOUR = 'hour'; - const AUTOFILTER_RULETYPE_DATEGROUP_MINUTE = 'minute'; - const AUTOFILTER_RULETYPE_DATEGROUP_SECOND = 'second'; - - private static $dateTimeGroups = array( - self::AUTOFILTER_RULETYPE_DATEGROUP_YEAR, - self::AUTOFILTER_RULETYPE_DATEGROUP_MONTH, - self::AUTOFILTER_RULETYPE_DATEGROUP_DAY, - self::AUTOFILTER_RULETYPE_DATEGROUP_HOUR, - self::AUTOFILTER_RULETYPE_DATEGROUP_MINUTE, - self::AUTOFILTER_RULETYPE_DATEGROUP_SECOND, - ); - - const AUTOFILTER_RULETYPE_DYNAMIC_YESTERDAY = 'yesterday'; - const AUTOFILTER_RULETYPE_DYNAMIC_TODAY = 'today'; - const AUTOFILTER_RULETYPE_DYNAMIC_TOMORROW = 'tomorrow'; - const AUTOFILTER_RULETYPE_DYNAMIC_YEARTODATE = 'yearToDate'; - const AUTOFILTER_RULETYPE_DYNAMIC_THISYEAR = 'thisYear'; - const AUTOFILTER_RULETYPE_DYNAMIC_THISQUARTER = 'thisQuarter'; - const AUTOFILTER_RULETYPE_DYNAMIC_THISMONTH = 'thisMonth'; - const AUTOFILTER_RULETYPE_DYNAMIC_THISWEEK = 'thisWeek'; - const AUTOFILTER_RULETYPE_DYNAMIC_LASTYEAR = 'lastYear'; - const AUTOFILTER_RULETYPE_DYNAMIC_LASTQUARTER = 'lastQuarter'; - const AUTOFILTER_RULETYPE_DYNAMIC_LASTMONTH = 'lastMonth'; - const AUTOFILTER_RULETYPE_DYNAMIC_LASTWEEK = 'lastWeek'; - const AUTOFILTER_RULETYPE_DYNAMIC_NEXTYEAR = 'nextYear'; - const AUTOFILTER_RULETYPE_DYNAMIC_NEXTQUARTER = 'nextQuarter'; - const AUTOFILTER_RULETYPE_DYNAMIC_NEXTMONTH = 'nextMonth'; - const AUTOFILTER_RULETYPE_DYNAMIC_NEXTWEEK = 'nextWeek'; - const AUTOFILTER_RULETYPE_DYNAMIC_MONTH_1 = 'M1'; - const AUTOFILTER_RULETYPE_DYNAMIC_JANUARY = self::AUTOFILTER_RULETYPE_DYNAMIC_MONTH_1; - const AUTOFILTER_RULETYPE_DYNAMIC_MONTH_2 = 'M2'; - const AUTOFILTER_RULETYPE_DYNAMIC_FEBRUARY = self::AUTOFILTER_RULETYPE_DYNAMIC_MONTH_2; - const AUTOFILTER_RULETYPE_DYNAMIC_MONTH_3 = 'M3'; - const AUTOFILTER_RULETYPE_DYNAMIC_MARCH = self::AUTOFILTER_RULETYPE_DYNAMIC_MONTH_3; - const AUTOFILTER_RULETYPE_DYNAMIC_MONTH_4 = 'M4'; - const AUTOFILTER_RULETYPE_DYNAMIC_APRIL = self::AUTOFILTER_RULETYPE_DYNAMIC_MONTH_4; - const AUTOFILTER_RULETYPE_DYNAMIC_MONTH_5 = 'M5'; - const AUTOFILTER_RULETYPE_DYNAMIC_MAY = self::AUTOFILTER_RULETYPE_DYNAMIC_MONTH_5; - const AUTOFILTER_RULETYPE_DYNAMIC_MONTH_6 = 'M6'; - const AUTOFILTER_RULETYPE_DYNAMIC_JUNE = self::AUTOFILTER_RULETYPE_DYNAMIC_MONTH_6; - const AUTOFILTER_RULETYPE_DYNAMIC_MONTH_7 = 'M7'; - const AUTOFILTER_RULETYPE_DYNAMIC_JULY = self::AUTOFILTER_RULETYPE_DYNAMIC_MONTH_7; - const AUTOFILTER_RULETYPE_DYNAMIC_MONTH_8 = 'M8'; - const AUTOFILTER_RULETYPE_DYNAMIC_AUGUST = self::AUTOFILTER_RULETYPE_DYNAMIC_MONTH_8; - const AUTOFILTER_RULETYPE_DYNAMIC_MONTH_9 = 'M9'; - const AUTOFILTER_RULETYPE_DYNAMIC_SEPTEMBER = self::AUTOFILTER_RULETYPE_DYNAMIC_MONTH_9; - const AUTOFILTER_RULETYPE_DYNAMIC_MONTH_10 = 'M10'; - const AUTOFILTER_RULETYPE_DYNAMIC_OCTOBER = self::AUTOFILTER_RULETYPE_DYNAMIC_MONTH_10; - const AUTOFILTER_RULETYPE_DYNAMIC_MONTH_11 = 'M11'; - const AUTOFILTER_RULETYPE_DYNAMIC_NOVEMBER = self::AUTOFILTER_RULETYPE_DYNAMIC_MONTH_11; - const AUTOFILTER_RULETYPE_DYNAMIC_MONTH_12 = 'M12'; - const AUTOFILTER_RULETYPE_DYNAMIC_DECEMBER = self::AUTOFILTER_RULETYPE_DYNAMIC_MONTH_12; - const AUTOFILTER_RULETYPE_DYNAMIC_QUARTER_1 = 'Q1'; - const AUTOFILTER_RULETYPE_DYNAMIC_QUARTER_2 = 'Q2'; - const AUTOFILTER_RULETYPE_DYNAMIC_QUARTER_3 = 'Q3'; - const AUTOFILTER_RULETYPE_DYNAMIC_QUARTER_4 = 'Q4'; - const AUTOFILTER_RULETYPE_DYNAMIC_ABOVEAVERAGE = 'aboveAverage'; - const AUTOFILTER_RULETYPE_DYNAMIC_BELOWAVERAGE = 'belowAverage'; - - private static $dynamicTypes = array( - self::AUTOFILTER_RULETYPE_DYNAMIC_YESTERDAY, - self::AUTOFILTER_RULETYPE_DYNAMIC_TODAY, - self::AUTOFILTER_RULETYPE_DYNAMIC_TOMORROW, - self::AUTOFILTER_RULETYPE_DYNAMIC_YEARTODATE, - self::AUTOFILTER_RULETYPE_DYNAMIC_THISYEAR, - self::AUTOFILTER_RULETYPE_DYNAMIC_THISQUARTER, - self::AUTOFILTER_RULETYPE_DYNAMIC_THISMONTH, - self::AUTOFILTER_RULETYPE_DYNAMIC_THISWEEK, - self::AUTOFILTER_RULETYPE_DYNAMIC_LASTYEAR, - self::AUTOFILTER_RULETYPE_DYNAMIC_LASTQUARTER, - self::AUTOFILTER_RULETYPE_DYNAMIC_LASTMONTH, - self::AUTOFILTER_RULETYPE_DYNAMIC_LASTWEEK, - self::AUTOFILTER_RULETYPE_DYNAMIC_NEXTYEAR, - self::AUTOFILTER_RULETYPE_DYNAMIC_NEXTQUARTER, - self::AUTOFILTER_RULETYPE_DYNAMIC_NEXTMONTH, - self::AUTOFILTER_RULETYPE_DYNAMIC_NEXTWEEK, - self::AUTOFILTER_RULETYPE_DYNAMIC_MONTH_1, - self::AUTOFILTER_RULETYPE_DYNAMIC_MONTH_2, - self::AUTOFILTER_RULETYPE_DYNAMIC_MONTH_3, - self::AUTOFILTER_RULETYPE_DYNAMIC_MONTH_4, - self::AUTOFILTER_RULETYPE_DYNAMIC_MONTH_5, - self::AUTOFILTER_RULETYPE_DYNAMIC_MONTH_6, - self::AUTOFILTER_RULETYPE_DYNAMIC_MONTH_7, - self::AUTOFILTER_RULETYPE_DYNAMIC_MONTH_8, - self::AUTOFILTER_RULETYPE_DYNAMIC_MONTH_9, - self::AUTOFILTER_RULETYPE_DYNAMIC_MONTH_10, - self::AUTOFILTER_RULETYPE_DYNAMIC_MONTH_11, - self::AUTOFILTER_RULETYPE_DYNAMIC_MONTH_12, - self::AUTOFILTER_RULETYPE_DYNAMIC_QUARTER_1, - self::AUTOFILTER_RULETYPE_DYNAMIC_QUARTER_2, - self::AUTOFILTER_RULETYPE_DYNAMIC_QUARTER_3, - self::AUTOFILTER_RULETYPE_DYNAMIC_QUARTER_4, - self::AUTOFILTER_RULETYPE_DYNAMIC_ABOVEAVERAGE, - self::AUTOFILTER_RULETYPE_DYNAMIC_BELOWAVERAGE, - ); - - /* - * The only valid filter rule operators for filter and customFilter types are: - * <xsd:enumeration value="equal"/> - * <xsd:enumeration value="lessThan"/> - * <xsd:enumeration value="lessThanOrEqual"/> - * <xsd:enumeration value="notEqual"/> - * <xsd:enumeration value="greaterThanOrEqual"/> - * <xsd:enumeration value="greaterThan"/> - */ - const AUTOFILTER_COLUMN_RULE_EQUAL = 'equal'; - const AUTOFILTER_COLUMN_RULE_NOTEQUAL = 'notEqual'; - const AUTOFILTER_COLUMN_RULE_GREATERTHAN = 'greaterThan'; - const AUTOFILTER_COLUMN_RULE_GREATERTHANOREQUAL = 'greaterThanOrEqual'; - const AUTOFILTER_COLUMN_RULE_LESSTHAN = 'lessThan'; - const AUTOFILTER_COLUMN_RULE_LESSTHANOREQUAL = 'lessThanOrEqual'; - - private static $operators = array( - self::AUTOFILTER_COLUMN_RULE_EQUAL, - self::AUTOFILTER_COLUMN_RULE_NOTEQUAL, - self::AUTOFILTER_COLUMN_RULE_GREATERTHAN, - self::AUTOFILTER_COLUMN_RULE_GREATERTHANOREQUAL, - self::AUTOFILTER_COLUMN_RULE_LESSTHAN, - self::AUTOFILTER_COLUMN_RULE_LESSTHANOREQUAL, - ); - - const AUTOFILTER_COLUMN_RULE_TOPTEN_BY_VALUE = 'byValue'; - const AUTOFILTER_COLUMN_RULE_TOPTEN_PERCENT = 'byPercent'; - - private static $topTenValue = array( - self::AUTOFILTER_COLUMN_RULE_TOPTEN_BY_VALUE, - self::AUTOFILTER_COLUMN_RULE_TOPTEN_PERCENT, - ); - - const AUTOFILTER_COLUMN_RULE_TOPTEN_TOP = 'top'; - const AUTOFILTER_COLUMN_RULE_TOPTEN_BOTTOM = 'bottom'; - - private static $topTenType = array( - self::AUTOFILTER_COLUMN_RULE_TOPTEN_TOP, - self::AUTOFILTER_COLUMN_RULE_TOPTEN_BOTTOM, - ); - - - /* Rule Operators (Numeric, Boolean etc) */ -// const AUTOFILTER_COLUMN_RULE_BETWEEN = 'between'; // greaterThanOrEqual 1 && lessThanOrEqual 2 - /* Rule Operators (Numeric Special) which are translated to standard numeric operators with calculated values */ -// const AUTOFILTER_COLUMN_RULE_TOPTEN = 'topTen'; // greaterThan calculated value -// const AUTOFILTER_COLUMN_RULE_TOPTENPERCENT = 'topTenPercent'; // greaterThan calculated value -// const AUTOFILTER_COLUMN_RULE_ABOVEAVERAGE = 'aboveAverage'; // Value is calculated as the average -// const AUTOFILTER_COLUMN_RULE_BELOWAVERAGE = 'belowAverage'; // Value is calculated as the average - /* Rule Operators (String) which are set as wild-carded values */ -// const AUTOFILTER_COLUMN_RULE_BEGINSWITH = 'beginsWith'; // A* -// const AUTOFILTER_COLUMN_RULE_ENDSWITH = 'endsWith'; // *Z -// const AUTOFILTER_COLUMN_RULE_CONTAINS = 'contains'; // *B* -// const AUTOFILTER_COLUMN_RULE_DOESNTCONTAIN = 'notEqual'; // notEqual *B* - /* Rule Operators (Date Special) which are translated to standard numeric operators with calculated values */ -// const AUTOFILTER_COLUMN_RULE_BEFORE = 'lessThan'; -// const AUTOFILTER_COLUMN_RULE_AFTER = 'greaterThan'; -// const AUTOFILTER_COLUMN_RULE_YESTERDAY = 'yesterday'; -// const AUTOFILTER_COLUMN_RULE_TODAY = 'today'; -// const AUTOFILTER_COLUMN_RULE_TOMORROW = 'tomorrow'; -// const AUTOFILTER_COLUMN_RULE_LASTWEEK = 'lastWeek'; -// const AUTOFILTER_COLUMN_RULE_THISWEEK = 'thisWeek'; -// const AUTOFILTER_COLUMN_RULE_NEXTWEEK = 'nextWeek'; -// const AUTOFILTER_COLUMN_RULE_LASTMONTH = 'lastMonth'; -// const AUTOFILTER_COLUMN_RULE_THISMONTH = 'thisMonth'; -// const AUTOFILTER_COLUMN_RULE_NEXTMONTH = 'nextMonth'; -// const AUTOFILTER_COLUMN_RULE_LASTQUARTER = 'lastQuarter'; -// const AUTOFILTER_COLUMN_RULE_THISQUARTER = 'thisQuarter'; -// const AUTOFILTER_COLUMN_RULE_NEXTQUARTER = 'nextQuarter'; -// const AUTOFILTER_COLUMN_RULE_LASTYEAR = 'lastYear'; -// const AUTOFILTER_COLUMN_RULE_THISYEAR = 'thisYear'; -// const AUTOFILTER_COLUMN_RULE_NEXTYEAR = 'nextYear'; -// const AUTOFILTER_COLUMN_RULE_YEARTODATE = 'yearToDate'; // <dynamicFilter val="40909" type="yearToDate" maxVal="41113"/> -// const AUTOFILTER_COLUMN_RULE_ALLDATESINMONTH = 'allDatesInMonth'; // <dynamicFilter type="M2"/> for Month/February -// const AUTOFILTER_COLUMN_RULE_ALLDATESINQUARTER = 'allDatesInQuarter'; // <dynamicFilter type="Q2"/> for Quarter 2 - - /** - * Autofilter Column - * - * @var PHPExcel_Worksheet_AutoFilter_Column - */ - private $parent = null; - - - /** - * Autofilter Rule Type - * - * @var string - */ - private $ruleType = self::AUTOFILTER_RULETYPE_FILTER; - - - /** - * Autofilter Rule Value - * - * @var string - */ - private $value = ''; - - /** - * Autofilter Rule Operator - * - * @var string - */ - private $operator = self::AUTOFILTER_COLUMN_RULE_EQUAL; - - /** - * DateTimeGrouping Group Value - * - * @var string - */ - private $grouping = ''; - - - /** - * Create a new PHPExcel_Worksheet_AutoFilter_Column_Rule - * - * @param PHPExcel_Worksheet_AutoFilter_Column $pParent - */ - public function __construct(PHPExcel_Worksheet_AutoFilter_Column $pParent = null) - { - $this->parent = $pParent; - } - - /** - * Get AutoFilter Rule Type - * - * @return string - */ - public function getRuleType() - { - return $this->ruleType; - } - - /** - * Set AutoFilter Rule Type - * - * @param string $pRuleType - * @throws PHPExcel_Exception - * @return PHPExcel_Worksheet_AutoFilter_Column - */ - public function setRuleType($pRuleType = self::AUTOFILTER_RULETYPE_FILTER) - { - if (!in_array($pRuleType, self::$ruleTypes)) { - throw new PHPExcel_Exception('Invalid rule type for column AutoFilter Rule.'); - } - - $this->ruleType = $pRuleType; - - return $this; - } - - /** - * Get AutoFilter Rule Value - * - * @return string - */ - public function getValue() - { - return $this->value; - } - - /** - * Set AutoFilter Rule Value - * - * @param string|string[] $pValue - * @throws PHPExcel_Exception - * @return PHPExcel_Worksheet_AutoFilter_Column_Rule - */ - public function setValue($pValue = '') - { - if (is_array($pValue)) { - $grouping = -1; - foreach ($pValue as $key => $value) { - // Validate array entries - if (!in_array($key, self::$dateTimeGroups)) { - // Remove any invalid entries from the value array - unset($pValue[$key]); - } else { - // Work out what the dateTime grouping will be - $grouping = max($grouping, array_search($key, self::$dateTimeGroups)); - } - } - if (count($pValue) == 0) { - throw new PHPExcel_Exception('Invalid rule value for column AutoFilter Rule.'); - } - // Set the dateTime grouping that we've anticipated - $this->setGrouping(self::$dateTimeGroups[$grouping]); - } - $this->value = $pValue; - - return $this; - } - - /** - * Get AutoFilter Rule Operator - * - * @return string - */ - public function getOperator() - { - return $this->operator; - } - - /** - * Set AutoFilter Rule Operator - * - * @param string $pOperator - * @throws PHPExcel_Exception - * @return PHPExcel_Worksheet_AutoFilter_Column_Rule - */ - public function setOperator($pOperator = self::AUTOFILTER_COLUMN_RULE_EQUAL) - { - if (empty($pOperator)) { - $pOperator = self::AUTOFILTER_COLUMN_RULE_EQUAL; - } - if ((!in_array($pOperator, self::$operators)) && - (!in_array($pOperator, self::$topTenValue))) { - throw new PHPExcel_Exception('Invalid operator for column AutoFilter Rule.'); - } - $this->operator = $pOperator; - - return $this; - } - - /** - * Get AutoFilter Rule Grouping - * - * @return string - */ - public function getGrouping() - { - return $this->grouping; - } - - /** - * Set AutoFilter Rule Grouping - * - * @param string $pGrouping - * @throws PHPExcel_Exception - * @return PHPExcel_Worksheet_AutoFilter_Column_Rule - */ - public function setGrouping($pGrouping = null) - { - if (($pGrouping !== null) && - (!in_array($pGrouping, self::$dateTimeGroups)) && - (!in_array($pGrouping, self::$dynamicTypes)) && - (!in_array($pGrouping, self::$topTenType))) { - throw new PHPExcel_Exception('Invalid rule type for column AutoFilter Rule.'); - } - $this->grouping = $pGrouping; - - return $this; - } - - /** - * Set AutoFilter Rule - * - * @param string $pOperator - * @param string|string[] $pValue - * @param string $pGrouping - * @throws PHPExcel_Exception - * @return PHPExcel_Worksheet_AutoFilter_Column_Rule - */ - public function setRule($pOperator = self::AUTOFILTER_COLUMN_RULE_EQUAL, $pValue = '', $pGrouping = null) - { - $this->setOperator($pOperator); - $this->setValue($pValue); - // Only set grouping if it's been passed in as a user-supplied argument, - // otherwise we're calculating it when we setValue() and don't want to overwrite that - // If the user supplies an argumnet for grouping, then on their own head be it - if ($pGrouping !== null) { - $this->setGrouping($pGrouping); - } - - return $this; - } - - /** - * Get this Rule's AutoFilter Column Parent - * - * @return PHPExcel_Worksheet_AutoFilter_Column - */ - public function getParent() - { - return $this->parent; - } - - /** - * Set this Rule's AutoFilter Column Parent - * - * @param PHPExcel_Worksheet_AutoFilter_Column - * @return PHPExcel_Worksheet_AutoFilter_Column_Rule - */ - public function setParent(PHPExcel_Worksheet_AutoFilter_Column $pParent = null) - { - $this->parent = $pParent; - - return $this; - } - - /** - * Implement PHP __clone to create a deep clone, not just a shallow copy. - */ - public function __clone() - { - $vars = get_object_vars($this); - foreach ($vars as $key => $value) { - if (is_object($value)) { - if ($key == 'parent') { - // Detach from autofilter column parent - $this->$key = null; - } else { - $this->$key = clone $value; - } - } else { - $this->$key = $value; - } - } - } -} diff --git a/Utils/PHPExcel/Worksheet/BaseDrawing.php b/Utils/PHPExcel/Worksheet/BaseDrawing.php deleted file mode 100644 index 9ad15c7..0000000 --- a/Utils/PHPExcel/Worksheet/BaseDrawing.php +++ /dev/null @@ -1,507 +0,0 @@ -<?php - -/** - * PHPExcel_Worksheet_BaseDrawing - * - * Copyright (c) 2006 - 2015 PHPExcel - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - * - * @category PHPExcel - * @package PHPExcel_Worksheet - * @copyright Copyright (c) 2006 - 2015 PHPExcel (http://www.codeplex.com/PHPExcel) - * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL - * @version ##VERSION##, ##DATE## - */ -class PHPExcel_Worksheet_BaseDrawing implements PHPExcel_IComparable -{ - /** - * Image counter - * - * @var int - */ - private static $imageCounter = 0; - - /** - * Image index - * - * @var int - */ - private $imageIndex = 0; - - /** - * Name - * - * @var string - */ - protected $name; - - /** - * Description - * - * @var string - */ - protected $description; - - /** - * Worksheet - * - * @var PHPExcel_Worksheet - */ - protected $worksheet; - - /** - * Coordinates - * - * @var string - */ - protected $coordinates; - - /** - * Offset X - * - * @var int - */ - protected $offsetX; - - /** - * Offset Y - * - * @var int - */ - protected $offsetY; - - /** - * Width - * - * @var int - */ - protected $width; - - /** - * Height - * - * @var int - */ - protected $height; - - /** - * Proportional resize - * - * @var boolean - */ - protected $resizeProportional; - - /** - * Rotation - * - * @var int - */ - protected $rotation; - - /** - * Shadow - * - * @var PHPExcel_Worksheet_Drawing_Shadow - */ - protected $shadow; - - /** - * Create a new PHPExcel_Worksheet_BaseDrawing - */ - public function __construct() - { - // Initialise values - $this->name = ''; - $this->description = ''; - $this->worksheet = null; - $this->coordinates = 'A1'; - $this->offsetX = 0; - $this->offsetY = 0; - $this->width = 0; - $this->height = 0; - $this->resizeProportional = true; - $this->rotation = 0; - $this->shadow = new PHPExcel_Worksheet_Drawing_Shadow(); - - // Set image index - self::$imageCounter++; - $this->imageIndex = self::$imageCounter; - } - - /** - * Get image index - * - * @return int - */ - public function getImageIndex() - { - return $this->imageIndex; - } - - /** - * Get Name - * - * @return string - */ - public function getName() - { - return $this->name; - } - - /** - * Set Name - * - * @param string $pValue - * @return PHPExcel_Worksheet_BaseDrawing - */ - public function setName($pValue = '') - { - $this->name = $pValue; - return $this; - } - - /** - * Get Description - * - * @return string - */ - public function getDescription() - { - return $this->description; - } - - /** - * Set Description - * - * @param string $pValue - * @return PHPExcel_Worksheet_BaseDrawing - */ - public function setDescription($pValue = '') - { - $this->description = $pValue; - return $this; - } - - /** - * Get Worksheet - * - * @return PHPExcel_Worksheet - */ - public function getWorksheet() - { - return $this->worksheet; - } - - /** - * Set Worksheet - * - * @param PHPExcel_Worksheet $pValue - * @param bool $pOverrideOld If a Worksheet has already been assigned, overwrite it and remove image from old Worksheet? - * @throws PHPExcel_Exception - * @return PHPExcel_Worksheet_BaseDrawing - */ - public function setWorksheet(PHPExcel_Worksheet $pValue = null, $pOverrideOld = false) - { - if (is_null($this->worksheet)) { - // Add drawing to PHPExcel_Worksheet - $this->worksheet = $pValue; - $this->worksheet->getCell($this->coordinates); - $this->worksheet->getDrawingCollection()->append($this); - } else { - if ($pOverrideOld) { - // Remove drawing from old PHPExcel_Worksheet - $iterator = $this->worksheet->getDrawingCollection()->getIterator(); - - while ($iterator->valid()) { - if ($iterator->current()->getHashCode() == $this->getHashCode()) { - $this->worksheet->getDrawingCollection()->offsetUnset($iterator->key()); - $this->worksheet = null; - break; - } - } - - // Set new PHPExcel_Worksheet - $this->setWorksheet($pValue); - } else { - throw new PHPExcel_Exception("A PHPExcel_Worksheet has already been assigned. Drawings can only exist on one PHPExcel_Worksheet."); - } - } - return $this; - } - - /** - * Get Coordinates - * - * @return string - */ - public function getCoordinates() - { - return $this->coordinates; - } - - /** - * Set Coordinates - * - * @param string $pValue - * @return PHPExcel_Worksheet_BaseDrawing - */ - public function setCoordinates($pValue = 'A1') - { - $this->coordinates = $pValue; - return $this; - } - - /** - * Get OffsetX - * - * @return int - */ - public function getOffsetX() - { - return $this->offsetX; - } - - /** - * Set OffsetX - * - * @param int $pValue - * @return PHPExcel_Worksheet_BaseDrawing - */ - public function setOffsetX($pValue = 0) - { - $this->offsetX = $pValue; - return $this; - } - - /** - * Get OffsetY - * - * @return int - */ - public function getOffsetY() - { - return $this->offsetY; - } - - /** - * Set OffsetY - * - * @param int $pValue - * @return PHPExcel_Worksheet_BaseDrawing - */ - public function setOffsetY($pValue = 0) - { - $this->offsetY = $pValue; - return $this; - } - - /** - * Get Width - * - * @return int - */ - public function getWidth() - { - return $this->width; - } - - /** - * Set Width - * - * @param int $pValue - * @return PHPExcel_Worksheet_BaseDrawing - */ - public function setWidth($pValue = 0) - { - // Resize proportional? - if ($this->resizeProportional && $pValue != 0) { - $ratio = $this->height / ($this->width != 0 ? $this->width : 1); - $this->height = round($ratio * $pValue); - } - - // Set width - $this->width = $pValue; - - return $this; - } - - /** - * Get Height - * - * @return int - */ - public function getHeight() - { - return $this->height; - } - - /** - * Set Height - * - * @param int $pValue - * @return PHPExcel_Worksheet_BaseDrawing - */ - public function setHeight($pValue = 0) - { - // Resize proportional? - if ($this->resizeProportional && $pValue != 0) { - $ratio = $this->width / ($this->height != 0 ? $this->height : 1); - $this->width = round($ratio * $pValue); - } - - // Set height - $this->height = $pValue; - - return $this; - } - - /** - * Set width and height with proportional resize - * Example: - * <code> - * $objDrawing->setResizeProportional(true); - * $objDrawing->setWidthAndHeight(160,120); - * </code> - * - * @author Vincent@luo MSN:kele_100@hotmail.com - * @param int $width - * @param int $height - * @return PHPExcel_Worksheet_BaseDrawing - */ - public function setWidthAndHeight($width = 0, $height = 0) - { - $xratio = $width / ($this->width != 0 ? $this->width : 1); - $yratio = $height / ($this->height != 0 ? $this->height : 1); - if ($this->resizeProportional && !($width == 0 || $height == 0)) { - if (($xratio * $this->height) < $height) { - $this->height = ceil($xratio * $this->height); - $this->width = $width; - } else { - $this->width = ceil($yratio * $this->width); - $this->height = $height; - } - } else { - $this->width = $width; - $this->height = $height; - } - - return $this; - } - - /** - * Get ResizeProportional - * - * @return boolean - */ - public function getResizeProportional() - { - return $this->resizeProportional; - } - - /** - * Set ResizeProportional - * - * @param boolean $pValue - * @return PHPExcel_Worksheet_BaseDrawing - */ - public function setResizeProportional($pValue = true) - { - $this->resizeProportional = $pValue; - return $this; - } - - /** - * Get Rotation - * - * @return int - */ - public function getRotation() - { - return $this->rotation; - } - - /** - * Set Rotation - * - * @param int $pValue - * @return PHPExcel_Worksheet_BaseDrawing - */ - public function setRotation($pValue = 0) - { - $this->rotation = $pValue; - return $this; - } - - /** - * Get Shadow - * - * @return PHPExcel_Worksheet_Drawing_Shadow - */ - public function getShadow() - { - return $this->shadow; - } - - /** - * Set Shadow - * - * @param PHPExcel_Worksheet_Drawing_Shadow $pValue - * @throws PHPExcel_Exception - * @return PHPExcel_Worksheet_BaseDrawing - */ - public function setShadow(PHPExcel_Worksheet_Drawing_Shadow $pValue = null) - { - $this->shadow = $pValue; - return $this; - } - - /** - * Get hash code - * - * @return string Hash code - */ - public function getHashCode() - { - return md5( - $this->name . - $this->description . - $this->worksheet->getHashCode() . - $this->coordinates . - $this->offsetX . - $this->offsetY . - $this->width . - $this->height . - $this->rotation . - $this->shadow->getHashCode() . - __CLASS__ - ); - } - - /** - * Implement PHP __clone to create a deep clone, not just a shallow copy. - */ - public function __clone() - { - $vars = get_object_vars($this); - foreach ($vars as $key => $value) { - if (is_object($value)) { - $this->$key = clone $value; - } else { - $this->$key = $value; - } - } - } -} diff --git a/Utils/PHPExcel/Worksheet/CellIterator.php b/Utils/PHPExcel/Worksheet/CellIterator.php deleted file mode 100644 index 151c17f..0000000 --- a/Utils/PHPExcel/Worksheet/CellIterator.php +++ /dev/null @@ -1,88 +0,0 @@ -<?php - -/** - * PHPExcel_Worksheet_CellIterator - * - * Copyright (c) 2006 - 2015 PHPExcel - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - * - * @category PHPExcel - * @package PHPExcel_Worksheet - * @copyright Copyright (c) 2006 - 2015 PHPExcel (http://www.codeplex.com/PHPExcel) - * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL - * @version ##VERSION##, ##DATE## - */ -abstract class PHPExcel_Worksheet_CellIterator -{ - /** - * PHPExcel_Worksheet to iterate - * - * @var PHPExcel_Worksheet - */ - protected $subject; - - /** - * Current iterator position - * - * @var mixed - */ - protected $position = null; - - /** - * Iterate only existing cells - * - * @var boolean - */ - protected $onlyExistingCells = false; - - /** - * Destructor - */ - public function __destruct() - { - unset($this->subject); - } - - /** - * Get loop only existing cells - * - * @return boolean - */ - public function getIterateOnlyExistingCells() - { - return $this->onlyExistingCells; - } - - /** - * Validate start/end values for "IterateOnlyExistingCells" mode, and adjust if necessary - * - * @throws PHPExcel_Exception - */ - abstract protected function adjustForExistingOnlyRange(); - - /** - * Set the iterator to loop only existing cells - * - * @param boolean $value - * @throws PHPExcel_Exception - */ - public function setIterateOnlyExistingCells($value = true) - { - $this->onlyExistingCells = (boolean) $value; - - $this->adjustForExistingOnlyRange(); - } -} diff --git a/Utils/PHPExcel/Worksheet/Column.php b/Utils/PHPExcel/Worksheet/Column.php deleted file mode 100644 index 8c561fa..0000000 --- a/Utils/PHPExcel/Worksheet/Column.php +++ /dev/null @@ -1,86 +0,0 @@ -<?php - -/** - * PHPExcel_Worksheet_Column - * - * Copyright (c) 2006 - 2015 PHPExcel - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - * - * @category PHPExcel - * @package PHPExcel_Worksheet - * @copyright Copyright (c) 2006 - 2015 PHPExcel (http://www.codeplex.com/PHPExcel) - * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL - * @version ##VERSION##, ##DATE## - */ -class PHPExcel_Worksheet_Column -{ - /** - * PHPExcel_Worksheet - * - * @var PHPExcel_Worksheet - */ - private $parent; - - /** - * Column index - * - * @var string - */ - private $columnIndex; - - /** - * Create a new column - * - * @param PHPExcel_Worksheet $parent - * @param string $columnIndex - */ - public function __construct(PHPExcel_Worksheet $parent = null, $columnIndex = 'A') - { - // Set parent and column index - $this->parent = $parent; - $this->columnIndex = $columnIndex; - } - - /** - * Destructor - */ - public function __destruct() - { - unset($this->parent); - } - - /** - * Get column index - * - * @return int - */ - public function getColumnIndex() - { - return $this->columnIndex; - } - - /** - * Get cell iterator - * - * @param integer $startRow The row number at which to start iterating - * @param integer $endRow Optionally, the row number at which to stop iterating - * @return PHPExcel_Worksheet_CellIterator - */ - public function getCellIterator($startRow = 1, $endRow = null) - { - return new PHPExcel_Worksheet_ColumnCellIterator($this->parent, $this->columnIndex, $startRow, $endRow); - } -} diff --git a/Utils/PHPExcel/Worksheet/ColumnCellIterator.php b/Utils/PHPExcel/Worksheet/ColumnCellIterator.php deleted file mode 100644 index 8dbb3e0..0000000 --- a/Utils/PHPExcel/Worksheet/ColumnCellIterator.php +++ /dev/null @@ -1,216 +0,0 @@ -<?php - -/** - * PHPExcel_Worksheet_ColumnCellIterator - * - * Copyright (c) 2006 - 2015 PHPExcel - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - * - * @category PHPExcel - * @package PHPExcel_Worksheet - * @copyright Copyright (c) 2006 - 2015 PHPExcel (http://www.codeplex.com/PHPExcel) - * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL - * @version ##VERSION##, ##DATE## - */ -class PHPExcel_Worksheet_ColumnCellIterator extends PHPExcel_Worksheet_CellIterator implements Iterator -{ - /** - * Column index - * - * @var string - */ - protected $columnIndex; - - /** - * Start position - * - * @var int - */ - protected $startRow = 1; - - /** - * End position - * - * @var int - */ - protected $endRow = 1; - - /** - * Create a new row iterator - * - * @param PHPExcel_Worksheet $subject The worksheet to iterate over - * @param string $columnIndex The column that we want to iterate - * @param integer $startRow The row number at which to start iterating - * @param integer $endRow Optionally, the row number at which to stop iterating - */ - public function __construct(PHPExcel_Worksheet $subject = null, $columnIndex = 'A', $startRow = 1, $endRow = null) - { - // Set subject - $this->subject = $subject; - $this->columnIndex = PHPExcel_Cell::columnIndexFromString($columnIndex) - 1; - $this->resetEnd($endRow); - $this->resetStart($startRow); - } - - /** - * (Re)Set the end row - * - * @param integer $endRow The row number at which to stop iterating - * @return PHPExcel_Worksheet_ColumnCellIterator - * @throws PHPExcel_Exception - */ - public function resetEnd($endRow = null) - { - $this->endRow = ($endRow) ? $endRow : $this->subject->getHighestRow(); - $this->adjustForExistingOnlyRange(); - - return $this; - } - - /** - * Validate start/end values for "IterateOnlyExistingCells" mode, and adjust if necessary - * - * @throws PHPExcel_Exception - */ - protected function adjustForExistingOnlyRange() - { - if ($this->onlyExistingCells) { - while ((!$this->subject->cellExistsByColumnAndRow($this->columnIndex, $this->startRow)) && - ($this->startRow <= $this->endRow)) { - ++$this->startRow; - } - if ($this->startRow > $this->endRow) { - throw new PHPExcel_Exception('No cells exist within the specified range'); - } - while ((!$this->subject->cellExistsByColumnAndRow($this->columnIndex, $this->endRow)) && - ($this->endRow >= $this->startRow)) { - --$this->endRow; - } - if ($this->endRow < $this->startRow) { - throw new PHPExcel_Exception('No cells exist within the specified range'); - } - } - } - - /** - * (Re)Set the start row and the current row pointer - * - * @param integer $startRow The row number at which to start iterating - * @return PHPExcel_Worksheet_ColumnCellIterator - * @throws PHPExcel_Exception - */ - public function resetStart($startRow = 1) - { - $this->startRow = $startRow; - $this->adjustForExistingOnlyRange(); - $this->seek($startRow); - - return $this; - } - - /** - * Set the row pointer to the selected row - * - * @param integer $row The row number to set the current pointer at - * @return PHPExcel_Worksheet_ColumnCellIterator - * @throws PHPExcel_Exception - */ - public function seek($row = 1) - { - if (($row < $this->startRow) || ($row > $this->endRow)) { - throw new PHPExcel_Exception("Row $row is out of range ({$this->startRow} - {$this->endRow})"); - } elseif ($this->onlyExistingCells && !($this->subject->cellExistsByColumnAndRow($this->columnIndex, $row))) { - throw new PHPExcel_Exception('In "IterateOnlyExistingCells" mode and Cell does not exist'); - } - $this->position = $row; - - return $this; - } - - /** - * Destructor - */ - public function __destruct() - { - unset($this->subject); - } - - /** - * Rewind the iterator to the starting row - */ - public function rewind() - { - $this->position = $this->startRow; - } - - /** - * Return the current cell in this worksheet column - * - * @return PHPExcel_Worksheet_Row - */ - public function current() - { - return $this->subject->getCellByColumnAndRow($this->columnIndex, $this->position); - } - - /** - * Return the current iterator key - * - * @return int - */ - public function key() - { - return $this->position; - } - - /** - * Set the iterator to its next value - */ - public function next() - { - do { - ++$this->position; - } while (($this->onlyExistingCells) && - (!$this->subject->cellExistsByColumnAndRow($this->columnIndex, $this->position)) && - ($this->position <= $this->endRow)); - } - - /** - * Set the iterator to its previous value - */ - public function prev() - { - if ($this->position <= $this->startRow) { - throw new PHPExcel_Exception("Row is already at the beginning of range ({$this->startRow} - {$this->endRow})"); - } - - do { - --$this->position; - } while (($this->onlyExistingCells) && - (!$this->subject->cellExistsByColumnAndRow($this->columnIndex, $this->position)) && - ($this->position >= $this->startRow)); - } - - /** - * Indicate if more rows exist in the worksheet range of rows that we're iterating - * - * @return boolean - */ - public function valid() - { - return $this->position <= $this->endRow; - } -} diff --git a/Utils/PHPExcel/Worksheet/ColumnDimension.php b/Utils/PHPExcel/Worksheet/ColumnDimension.php deleted file mode 100644 index 405b825..0000000 --- a/Utils/PHPExcel/Worksheet/ColumnDimension.php +++ /dev/null @@ -1,132 +0,0 @@ -<?php - -/** - * PHPExcel_Worksheet_ColumnDimension - * - * Copyright (c) 2006 - 2015 PHPExcel - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - * - * @category PHPExcel - * @package PHPExcel_Worksheet - * @copyright Copyright (c) 2006 - 2015 PHPExcel (http://www.codeplex.com/PHPExcel) - * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL - * @version ##VERSION##, ##DATE## - */ -class PHPExcel_Worksheet_ColumnDimension extends PHPExcel_Worksheet_Dimension -{ - /** - * Column index - * - * @var int - */ - private $columnIndex; - - /** - * Column width - * - * When this is set to a negative value, the column width should be ignored by IWriter - * - * @var double - */ - private $width = -1; - - /** - * Auto size? - * - * @var bool - */ - private $autoSize = false; - - /** - * Create a new PHPExcel_Worksheet_ColumnDimension - * - * @param string $pIndex Character column index - */ - public function __construct($pIndex = 'A') - { - // Initialise values - $this->columnIndex = $pIndex; - - // set dimension as unformatted by default - parent::__construct(0); - } - - /** - * Get ColumnIndex - * - * @return string - */ - public function getColumnIndex() - { - return $this->columnIndex; - } - - /** - * Set ColumnIndex - * - * @param string $pValue - * @return PHPExcel_Worksheet_ColumnDimension - */ - public function setColumnIndex($pValue) - { - $this->columnIndex = $pValue; - return $this; - } - - /** - * Get Width - * - * @return double - */ - public function getWidth() - { - return $this->width; - } - - /** - * Set Width - * - * @param double $pValue - * @return PHPExcel_Worksheet_ColumnDimension - */ - public function setWidth($pValue = -1) - { - $this->width = $pValue; - return $this; - } - - /** - * Get Auto Size - * - * @return bool - */ - public function getAutoSize() - { - return $this->autoSize; - } - - /** - * Set Auto Size - * - * @param bool $pValue - * @return PHPExcel_Worksheet_ColumnDimension - */ - public function setAutoSize($pValue = false) - { - $this->autoSize = $pValue; - return $this; - } -} diff --git a/Utils/PHPExcel/Worksheet/ColumnIterator.php b/Utils/PHPExcel/Worksheet/ColumnIterator.php deleted file mode 100644 index 0db3e53..0000000 --- a/Utils/PHPExcel/Worksheet/ColumnIterator.php +++ /dev/null @@ -1,201 +0,0 @@ -<?php - -/** - * PHPExcel_Worksheet_ColumnIterator - * - * Copyright (c) 2006 - 2015 PHPExcel - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - * - * @category PHPExcel - * @package PHPExcel_Worksheet - * @copyright Copyright (c) 2006 - 2015 PHPExcel (http://www.codeplex.com/PHPExcel) - * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL - * @version ##VERSION##, ##DATE## - */ -class PHPExcel_Worksheet_ColumnIterator implements Iterator -{ - /** - * PHPExcel_Worksheet to iterate - * - * @var PHPExcel_Worksheet - */ - private $subject; - - /** - * Current iterator position - * - * @var int - */ - private $position = 0; - - /** - * Start position - * - * @var int - */ - private $startColumn = 0; - - - /** - * End position - * - * @var int - */ - private $endColumn = 0; - - - /** - * Create a new column iterator - * - * @param PHPExcel_Worksheet $subject The worksheet to iterate over - * @param string $startColumn The column address at which to start iterating - * @param string $endColumn Optionally, the column address at which to stop iterating - */ - public function __construct(PHPExcel_Worksheet $subject = null, $startColumn = 'A', $endColumn = null) - { - // Set subject - $this->subject = $subject; - $this->resetEnd($endColumn); - $this->resetStart($startColumn); - } - - /** - * Destructor - */ - public function __destruct() - { - unset($this->subject); - } - - /** - * (Re)Set the start column and the current column pointer - * - * @param integer $startColumn The column address at which to start iterating - * @return PHPExcel_Worksheet_ColumnIterator - * @throws PHPExcel_Exception - */ - public function resetStart($startColumn = 'A') - { - $startColumnIndex = PHPExcel_Cell::columnIndexFromString($startColumn) - 1; - if ($startColumnIndex > PHPExcel_Cell::columnIndexFromString($this->subject->getHighestColumn()) - 1) { - throw new PHPExcel_Exception("Start column ({$startColumn}) is beyond highest column ({$this->subject->getHighestColumn()})"); - } - - $this->startColumn = $startColumnIndex; - if ($this->endColumn < $this->startColumn) { - $this->endColumn = $this->startColumn; - } - $this->seek($startColumn); - - return $this; - } - - /** - * (Re)Set the end column - * - * @param string $endColumn The column address at which to stop iterating - * @return PHPExcel_Worksheet_ColumnIterator - */ - public function resetEnd($endColumn = null) - { - $endColumn = ($endColumn) ? $endColumn : $this->subject->getHighestColumn(); - $this->endColumn = PHPExcel_Cell::columnIndexFromString($endColumn) - 1; - - return $this; - } - - /** - * Set the column pointer to the selected column - * - * @param string $column The column address to set the current pointer at - * @return PHPExcel_Worksheet_ColumnIterator - * @throws PHPExcel_Exception - */ - public function seek($column = 'A') - { - $column = PHPExcel_Cell::columnIndexFromString($column) - 1; - if (($column < $this->startColumn) || ($column > $this->endColumn)) { - throw new PHPExcel_Exception("Column $column is out of range ({$this->startColumn} - {$this->endColumn})"); - } - $this->position = $column; - - return $this; - } - - /** - * Rewind the iterator to the starting column - */ - public function rewind() - { - $this->position = $this->startColumn; - } - - /** - * Return the current column in this worksheet - * - * @return PHPExcel_Worksheet_Column - */ - public function current() - { - return new PHPExcel_Worksheet_Column($this->subject, PHPExcel_Cell::stringFromColumnIndex($this->position)); - } - - /** - * Return the current iterator key - * - * @return string - */ - public function key() - { - return PHPExcel_Cell::stringFromColumnIndex($this->position); - } - - /** - * Set the iterator to its next value - */ - public function next() - { - ++$this->position; - } - - /** - * Set the iterator to its previous value - * - * @throws PHPExcel_Exception - */ - public function prev() - { - if ($this->position <= $this->startColumn) { - throw new PHPExcel_Exception( - "Column is already at the beginning of range (" . - PHPExcel_Cell::stringFromColumnIndex($this->endColumn) . " - " . - PHPExcel_Cell::stringFromColumnIndex($this->endColumn) . ")" - ); - } - - --$this->position; - } - - /** - * Indicate if more columns exist in the worksheet range of columns that we're iterating - * - * @return boolean - */ - public function valid() - { - return $this->position <= $this->endColumn; - } -} diff --git a/Utils/PHPExcel/Worksheet/Dimension.php b/Utils/PHPExcel/Worksheet/Dimension.php deleted file mode 100644 index 84f692c..0000000 --- a/Utils/PHPExcel/Worksheet/Dimension.php +++ /dev/null @@ -1,178 +0,0 @@ -<?php - -/** - * PHPExcel_Worksheet_Dimension - * - * Copyright (c) 2006 - 2015 PHPExcel - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - * - * @category PHPExcel - * @package PHPExcel_Worksheet - * @copyright Copyright (c) 2006 - 2015 PHPExcel (http://www.codeplex.com/PHPExcel) - * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL - * @version ##VERSION##, ##DATE## - */ -abstract class PHPExcel_Worksheet_Dimension -{ - /** - * Visible? - * - * @var bool - */ - private $visible = true; - - /** - * Outline level - * - * @var int - */ - private $outlineLevel = 0; - - /** - * Collapsed - * - * @var bool - */ - private $collapsed = false; - - /** - * Index to cellXf. Null value means row has no explicit cellXf format. - * - * @var int|null - */ - private $xfIndex; - - /** - * Create a new PHPExcel_Worksheet_Dimension - * - * @param int $pIndex Numeric row index - */ - public function __construct($initialValue = null) - { - // set dimension as unformatted by default - $this->xfIndex = $initialValue; - } - - /** - * Get Visible - * - * @return bool - */ - public function getVisible() - { - return $this->visible; - } - - /** - * Set Visible - * - * @param bool $pValue - * @return PHPExcel_Worksheet_Dimension - */ - public function setVisible($pValue = true) - { - $this->visible = $pValue; - return $this; - } - - /** - * Get Outline Level - * - * @return int - */ - public function getOutlineLevel() - { - return $this->outlineLevel; - } - - /** - * Set Outline Level - * - * Value must be between 0 and 7 - * - * @param int $pValue - * @throws PHPExcel_Exception - * @return PHPExcel_Worksheet_Dimension - */ - public function setOutlineLevel($pValue) - { - if ($pValue < 0 || $pValue > 7) { - throw new PHPExcel_Exception("Outline level must range between 0 and 7."); - } - - $this->outlineLevel = $pValue; - return $this; - } - - /** - * Get Collapsed - * - * @return bool - */ - public function getCollapsed() - { - return $this->collapsed; - } - - /** - * Set Collapsed - * - * @param bool $pValue - * @return PHPExcel_Worksheet_Dimension - */ - public function setCollapsed($pValue = true) - { - $this->collapsed = $pValue; - return $this; - } - - /** - * Get index to cellXf - * - * @return int - */ - public function getXfIndex() - { - return $this->xfIndex; - } - - /** - * Set index to cellXf - * - * @param int $pValue - * @return PHPExcel_Worksheet_Dimension - */ - public function setXfIndex($pValue = 0) - { - $this->xfIndex = $pValue; - return $this; - } - - /** - * Implement PHP __clone to create a deep clone, not just a shallow copy. - */ - public function __clone() - { - $vars = get_object_vars($this); - foreach ($vars as $key => $value) { - if (is_object($value)) { - $this->$key = clone $value; - } else { - $this->$key = $value; - } - } - } -} diff --git a/Utils/PHPExcel/Worksheet/Drawing.php b/Utils/PHPExcel/Worksheet/Drawing.php deleted file mode 100644 index e39d3eb..0000000 --- a/Utils/PHPExcel/Worksheet/Drawing.php +++ /dev/null @@ -1,147 +0,0 @@ -<?php - -/** - * PHPExcel_Worksheet_Drawing - * - * Copyright (c) 2006 - 2015 PHPExcel - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - * - * @category PHPExcel - * @package PHPExcel_Worksheet_Drawing - * @copyright Copyright (c) 2006 - 2015 PHPExcel (http://www.codeplex.com/PHPExcel) - * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL - * @version ##VERSION##, ##DATE## - */ -class PHPExcel_Worksheet_Drawing extends PHPExcel_Worksheet_BaseDrawing implements PHPExcel_IComparable -{ - /** - * Path - * - * @var string - */ - private $path; - - /** - * Create a new PHPExcel_Worksheet_Drawing - */ - public function __construct() - { - // Initialise values - $this->path = ''; - - // Initialize parent - parent::__construct(); - } - - /** - * Get Filename - * - * @return string - */ - public function getFilename() - { - return basename($this->path); - } - - /** - * Get indexed filename (using image index) - * - * @return string - */ - public function getIndexedFilename() - { - $fileName = $this->getFilename(); - $fileName = str_replace(' ', '_', $fileName); - return str_replace('.' . $this->getExtension(), '', $fileName) . $this->getImageIndex() . '.' . $this->getExtension(); - } - - /** - * Get Extension - * - * @return string - */ - public function getExtension() - { - $exploded = explode(".", basename($this->path)); - return $exploded[count($exploded) - 1]; - } - - /** - * Get Path - * - * @return string - */ - public function getPath() - { - return $this->path; - } - - /** - * Set Path - * - * @param string $pValue File path - * @param boolean $pVerifyFile Verify file - * @throws PHPExcel_Exception - * @return PHPExcel_Worksheet_Drawing - */ - public function setPath($pValue = '', $pVerifyFile = true) - { - if ($pVerifyFile) { - if (file_exists($pValue)) { - $this->path = $pValue; - - if ($this->width == 0 && $this->height == 0) { - // Get width/height - list($this->width, $this->height) = getimagesize($pValue); - } - } else { - throw new PHPExcel_Exception("File $pValue not found!"); - } - } else { - $this->path = $pValue; - } - return $this; - } - - /** - * Get hash code - * - * @return string Hash code - */ - public function getHashCode() - { - return md5( - $this->path . - parent::getHashCode() . - __CLASS__ - ); - } - - /** - * Implement PHP __clone to create a deep clone, not just a shallow copy. - */ - public function __clone() - { - $vars = get_object_vars($this); - foreach ($vars as $key => $value) { - if (is_object($value)) { - $this->$key = clone $value; - } else { - $this->$key = $value; - } - } - } -} diff --git a/Utils/PHPExcel/Worksheet/Drawing/Shadow.php b/Utils/PHPExcel/Worksheet/Drawing/Shadow.php deleted file mode 100644 index 84db91d..0000000 --- a/Utils/PHPExcel/Worksheet/Drawing/Shadow.php +++ /dev/null @@ -1,296 +0,0 @@ -<?php - -/** - * PHPExcel_Worksheet_Drawing_Shadow - * - * Copyright (c) 2006 - 2015 PHPExcel - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - * - * @category PHPExcel - * @package PHPExcel_Worksheet_Drawing - * @copyright Copyright (c) 2006 - 2015 PHPExcel (http://www.codeplex.com/PHPExcel) - * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL - * @version ##VERSION##, ##DATE## - */ -class PHPExcel_Worksheet_Drawing_Shadow implements PHPExcel_IComparable -{ - /* Shadow alignment */ - const SHADOW_BOTTOM = 'b'; - const SHADOW_BOTTOM_LEFT = 'bl'; - const SHADOW_BOTTOM_RIGHT = 'br'; - const SHADOW_CENTER = 'ctr'; - const SHADOW_LEFT = 'l'; - const SHADOW_TOP = 't'; - const SHADOW_TOP_LEFT = 'tl'; - const SHADOW_TOP_RIGHT = 'tr'; - - /** - * Visible - * - * @var boolean - */ - private $visible; - - /** - * Blur radius - * - * Defaults to 6 - * - * @var int - */ - private $blurRadius; - - /** - * Shadow distance - * - * Defaults to 2 - * - * @var int - */ - private $distance; - - /** - * Shadow direction (in degrees) - * - * @var int - */ - private $direction; - - /** - * Shadow alignment - * - * @var int - */ - private $alignment; - - /** - * Color - * - * @var PHPExcel_Style_Color - */ - private $color; - - /** - * Alpha - * - * @var int - */ - private $alpha; - - /** - * Create a new PHPExcel_Worksheet_Drawing_Shadow - */ - public function __construct() - { - // Initialise values - $this->visible = false; - $this->blurRadius = 6; - $this->distance = 2; - $this->direction = 0; - $this->alignment = PHPExcel_Worksheet_Drawing_Shadow::SHADOW_BOTTOM_RIGHT; - $this->color = new PHPExcel_Style_Color(PHPExcel_Style_Color::COLOR_BLACK); - $this->alpha = 50; - } - - /** - * Get Visible - * - * @return boolean - */ - public function getVisible() - { - return $this->visible; - } - - /** - * Set Visible - * - * @param boolean $pValue - * @return PHPExcel_Worksheet_Drawing_Shadow - */ - public function setVisible($pValue = false) - { - $this->visible = $pValue; - return $this; - } - - /** - * Get Blur radius - * - * @return int - */ - public function getBlurRadius() - { - return $this->blurRadius; - } - - /** - * Set Blur radius - * - * @param int $pValue - * @return PHPExcel_Worksheet_Drawing_Shadow - */ - public function setBlurRadius($pValue = 6) - { - $this->blurRadius = $pValue; - return $this; - } - - /** - * Get Shadow distance - * - * @return int - */ - public function getDistance() - { - return $this->distance; - } - - /** - * Set Shadow distance - * - * @param int $pValue - * @return PHPExcel_Worksheet_Drawing_Shadow - */ - public function setDistance($pValue = 2) - { - $this->distance = $pValue; - return $this; - } - - /** - * Get Shadow direction (in degrees) - * - * @return int - */ - public function getDirection() - { - return $this->direction; - } - - /** - * Set Shadow direction (in degrees) - * - * @param int $pValue - * @return PHPExcel_Worksheet_Drawing_Shadow - */ - public function setDirection($pValue = 0) - { - $this->direction = $pValue; - return $this; - } - - /** - * Get Shadow alignment - * - * @return int - */ - public function getAlignment() - { - return $this->alignment; - } - - /** - * Set Shadow alignment - * - * @param int $pValue - * @return PHPExcel_Worksheet_Drawing_Shadow - */ - public function setAlignment($pValue = 0) - { - $this->alignment = $pValue; - return $this; - } - - /** - * Get Color - * - * @return PHPExcel_Style_Color - */ - public function getColor() - { - return $this->color; - } - - /** - * Set Color - * - * @param PHPExcel_Style_Color $pValue - * @throws PHPExcel_Exception - * @return PHPExcel_Worksheet_Drawing_Shadow - */ - public function setColor(PHPExcel_Style_Color $pValue = null) - { - $this->color = $pValue; - return $this; - } - - /** - * Get Alpha - * - * @return int - */ - public function getAlpha() - { - return $this->alpha; - } - - /** - * Set Alpha - * - * @param int $pValue - * @return PHPExcel_Worksheet_Drawing_Shadow - */ - public function setAlpha($pValue = 0) - { - $this->alpha = $pValue; - return $this; - } - - /** - * Get hash code - * - * @return string Hash code - */ - public function getHashCode() - { - return md5( - ($this->visible ? 't' : 'f') . - $this->blurRadius . - $this->distance . - $this->direction . - $this->alignment . - $this->color->getHashCode() . - $this->alpha . - __CLASS__ - ); - } - - /** - * Implement PHP __clone to create a deep clone, not just a shallow copy. - */ - public function __clone() - { - $vars = get_object_vars($this); - foreach ($vars as $key => $value) { - if (is_object($value)) { - $this->$key = clone $value; - } else { - $this->$key = $value; - } - } - } -} diff --git a/Utils/PHPExcel/Worksheet/HeaderFooter.php b/Utils/PHPExcel/Worksheet/HeaderFooter.php deleted file mode 100644 index 3a88923..0000000 --- a/Utils/PHPExcel/Worksheet/HeaderFooter.php +++ /dev/null @@ -1,494 +0,0 @@ -<?php -/** - * PHPExcel_Worksheet_HeaderFooter - * - * Copyright (c) 2006 - 2015 PHPExcel - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not,241 write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - * - * @category PHPExcel - * @package PHPExcel_Worksheet - * @copyright Copyright (c) 2006 - 2015 PHPExcel (http://www.codeplex.com/PHPExcel) - * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL - * @version ##VERSION##, ##DATE## - * - * <code> - * Header/Footer Formatting Syntax taken from Office Open XML Part 4 - Markup Language Reference, page 1970: - * - * There are a number of formatting codes that can be written inline with the actual header / footer text, which - * affect the formatting in the header or footer. - * - * Example: This example shows the text "Center Bold Header" on the first line (center section), and the date on - * the second line (center section). - * &CCenter &"-,Bold"Bold&"-,Regular"Header_x000A_&D - * - * General Rules: - * There is no required order in which these codes must appear. - * - * The first occurrence of the following codes turns the formatting ON, the second occurrence turns it OFF again: - * - strikethrough - * - superscript - * - subscript - * Superscript and subscript cannot both be ON at same time. Whichever comes first wins and the other is ignored, - * while the first is ON. - * &L - code for "left section" (there are three header / footer locations, "left", "center", and "right"). When - * two or more occurrences of this section marker exist, the contents from all markers are concatenated, in the - * order of appearance, and placed into the left section. - * &P - code for "current page #" - * &N - code for "total pages" - * &font size - code for "text font size", where font size is a font size in points. - * &K - code for "text font color" - * RGB Color is specified as RRGGBB - * Theme Color is specifed as TTSNN where TT is the theme color Id, S is either "+" or "-" of the tint/shade - * value, NN is the tint/shade value. - * &S - code for "text strikethrough" on / off - * &X - code for "text super script" on / off - * &Y - code for "text subscript" on / off - * &C - code for "center section". When two or more occurrences of this section marker exist, the contents - * from all markers are concatenated, in the order of appearance, and placed into the center section. - * - * &D - code for "date" - * &T - code for "time" - * &G - code for "picture as background" - * &U - code for "text single underline" - * &E - code for "double underline" - * &R - code for "right section". When two or more occurrences of this section marker exist, the contents - * from all markers are concatenated, in the order of appearance, and placed into the right section. - * &Z - code for "this workbook's file path" - * &F - code for "this workbook's file name" - * &A - code for "sheet tab name" - * &+ - code for add to page #. - * &- - code for subtract from page #. - * &"font name,font type" - code for "text font name" and "text font type", where font name and font type - * are strings specifying the name and type of the font, separated by a comma. When a hyphen appears in font - * name, it means "none specified". Both of font name and font type can be localized values. - * &"-,Bold" - code for "bold font style" - * &B - also means "bold font style". - * &"-,Regular" - code for "regular font style" - * &"-,Italic" - code for "italic font style" - * &I - also means "italic font style" - * &"-,Bold Italic" code for "bold italic font style" - * &O - code for "outline style" - * &H - code for "shadow style" - * </code> - * - */ -class PHPExcel_Worksheet_HeaderFooter -{ - /* Header/footer image location */ - const IMAGE_HEADER_LEFT = 'LH'; - const IMAGE_HEADER_CENTER = 'CH'; - const IMAGE_HEADER_RIGHT = 'RH'; - const IMAGE_FOOTER_LEFT = 'LF'; - const IMAGE_FOOTER_CENTER = 'CF'; - const IMAGE_FOOTER_RIGHT = 'RF'; - - /** - * OddHeader - * - * @var string - */ - private $oddHeader = ''; - - /** - * OddFooter - * - * @var string - */ - private $oddFooter = ''; - - /** - * EvenHeader - * - * @var string - */ - private $evenHeader = ''; - - /** - * EvenFooter - * - * @var string - */ - private $evenFooter = ''; - - /** - * FirstHeader - * - * @var string - */ - private $firstHeader = ''; - - /** - * FirstFooter - * - * @var string - */ - private $firstFooter = ''; - - /** - * Different header for Odd/Even, defaults to false - * - * @var boolean - */ - private $differentOddEven = false; - - /** - * Different header for first page, defaults to false - * - * @var boolean - */ - private $differentFirst = false; - - /** - * Scale with document, defaults to true - * - * @var boolean - */ - private $scaleWithDocument = true; - - /** - * Align with margins, defaults to true - * - * @var boolean - */ - private $alignWithMargins = true; - - /** - * Header/footer images - * - * @var PHPExcel_Worksheet_HeaderFooterDrawing[] - */ - private $headerFooterImages = array(); - - /** - * Create a new PHPExcel_Worksheet_HeaderFooter - */ - public function __construct() - { - } - - /** - * Get OddHeader - * - * @return string - */ - public function getOddHeader() - { - return $this->oddHeader; - } - - /** - * Set OddHeader - * - * @param string $pValue - * @return PHPExcel_Worksheet_HeaderFooter - */ - public function setOddHeader($pValue) - { - $this->oddHeader = $pValue; - return $this; - } - - /** - * Get OddFooter - * - * @return string - */ - public function getOddFooter() - { - return $this->oddFooter; - } - - /** - * Set OddFooter - * - * @param string $pValue - * @return PHPExcel_Worksheet_HeaderFooter - */ - public function setOddFooter($pValue) - { - $this->oddFooter = $pValue; - return $this; - } - - /** - * Get EvenHeader - * - * @return string - */ - public function getEvenHeader() - { - return $this->evenHeader; - } - - /** - * Set EvenHeader - * - * @param string $pValue - * @return PHPExcel_Worksheet_HeaderFooter - */ - public function setEvenHeader($pValue) - { - $this->evenHeader = $pValue; - return $this; - } - - /** - * Get EvenFooter - * - * @return string - */ - public function getEvenFooter() - { - return $this->evenFooter; - } - - /** - * Set EvenFooter - * - * @param string $pValue - * @return PHPExcel_Worksheet_HeaderFooter - */ - public function setEvenFooter($pValue) - { - $this->evenFooter = $pValue; - return $this; - } - - /** - * Get FirstHeader - * - * @return string - */ - public function getFirstHeader() - { - return $this->firstHeader; - } - - /** - * Set FirstHeader - * - * @param string $pValue - * @return PHPExcel_Worksheet_HeaderFooter - */ - public function setFirstHeader($pValue) - { - $this->firstHeader = $pValue; - return $this; - } - - /** - * Get FirstFooter - * - * @return string - */ - public function getFirstFooter() - { - return $this->firstFooter; - } - - /** - * Set FirstFooter - * - * @param string $pValue - * @return PHPExcel_Worksheet_HeaderFooter - */ - public function setFirstFooter($pValue) - { - $this->firstFooter = $pValue; - return $this; - } - - /** - * Get DifferentOddEven - * - * @return boolean - */ - public function getDifferentOddEven() - { - return $this->differentOddEven; - } - - /** - * Set DifferentOddEven - * - * @param boolean $pValue - * @return PHPExcel_Worksheet_HeaderFooter - */ - public function setDifferentOddEven($pValue = false) - { - $this->differentOddEven = $pValue; - return $this; - } - - /** - * Get DifferentFirst - * - * @return boolean - */ - public function getDifferentFirst() - { - return $this->differentFirst; - } - - /** - * Set DifferentFirst - * - * @param boolean $pValue - * @return PHPExcel_Worksheet_HeaderFooter - */ - public function setDifferentFirst($pValue = false) - { - $this->differentFirst = $pValue; - return $this; - } - - /** - * Get ScaleWithDocument - * - * @return boolean - */ - public function getScaleWithDocument() - { - return $this->scaleWithDocument; - } - - /** - * Set ScaleWithDocument - * - * @param boolean $pValue - * @return PHPExcel_Worksheet_HeaderFooter - */ - public function setScaleWithDocument($pValue = true) - { - $this->scaleWithDocument = $pValue; - return $this; - } - - /** - * Get AlignWithMargins - * - * @return boolean - */ - public function getAlignWithMargins() - { - return $this->alignWithMargins; - } - - /** - * Set AlignWithMargins - * - * @param boolean $pValue - * @return PHPExcel_Worksheet_HeaderFooter - */ - public function setAlignWithMargins($pValue = true) - { - $this->alignWithMargins = $pValue; - return $this; - } - - /** - * Add header/footer image - * - * @param PHPExcel_Worksheet_HeaderFooterDrawing $image - * @param string $location - * @throws PHPExcel_Exception - * @return PHPExcel_Worksheet_HeaderFooter - */ - public function addImage(PHPExcel_Worksheet_HeaderFooterDrawing $image = null, $location = self::IMAGE_HEADER_LEFT) - { - $this->headerFooterImages[$location] = $image; - return $this; - } - - /** - * Remove header/footer image - * - * @param string $location - * @throws PHPExcel_Exception - * @return PHPExcel_Worksheet_HeaderFooter - */ - public function removeImage($location = self::IMAGE_HEADER_LEFT) - { - if (isset($this->headerFooterImages[$location])) { - unset($this->headerFooterImages[$location]); - } - return $this; - } - - /** - * Set header/footer images - * - * @param PHPExcel_Worksheet_HeaderFooterDrawing[] $images - * @throws PHPExcel_Exception - * @return PHPExcel_Worksheet_HeaderFooter - */ - public function setImages($images) - { - if (!is_array($images)) { - throw new PHPExcel_Exception('Invalid parameter!'); - } - - $this->headerFooterImages = $images; - return $this; - } - - /** - * Get header/footer images - * - * @return PHPExcel_Worksheet_HeaderFooterDrawing[] - */ - public function getImages() - { - // Sort array - $images = array(); - if (isset($this->headerFooterImages[self::IMAGE_HEADER_LEFT])) { - $images[self::IMAGE_HEADER_LEFT] = $this->headerFooterImages[self::IMAGE_HEADER_LEFT]; - } - if (isset($this->headerFooterImages[self::IMAGE_HEADER_CENTER])) { - $images[self::IMAGE_HEADER_CENTER] = $this->headerFooterImages[self::IMAGE_HEADER_CENTER]; - } - if (isset($this->headerFooterImages[self::IMAGE_HEADER_RIGHT])) { - $images[self::IMAGE_HEADER_RIGHT] = $this->headerFooterImages[self::IMAGE_HEADER_RIGHT]; - } - if (isset($this->headerFooterImages[self::IMAGE_FOOTER_LEFT])) { - $images[self::IMAGE_FOOTER_LEFT] = $this->headerFooterImages[self::IMAGE_FOOTER_LEFT]; - } - if (isset($this->headerFooterImages[self::IMAGE_FOOTER_CENTER])) { - $images[self::IMAGE_FOOTER_CENTER] = $this->headerFooterImages[self::IMAGE_FOOTER_CENTER]; - } - if (isset($this->headerFooterImages[self::IMAGE_FOOTER_RIGHT])) { - $images[self::IMAGE_FOOTER_RIGHT] = $this->headerFooterImages[self::IMAGE_FOOTER_RIGHT]; - } - $this->headerFooterImages = $images; - - return $this->headerFooterImages; - } - - /** - * Implement PHP __clone to create a deep clone, not just a shallow copy. - */ - public function __clone() - { - $vars = get_object_vars($this); - foreach ($vars as $key => $value) { - if (is_object($value)) { - $this->$key = clone $value; - } else { - $this->$key = $value; - } - } - } -} diff --git a/Utils/PHPExcel/Worksheet/HeaderFooterDrawing.php b/Utils/PHPExcel/Worksheet/HeaderFooterDrawing.php deleted file mode 100644 index a491f4b..0000000 --- a/Utils/PHPExcel/Worksheet/HeaderFooterDrawing.php +++ /dev/null @@ -1,361 +0,0 @@ -<?php - -/** - * PHPExcel_Worksheet_HeaderFooterDrawing - * - * Copyright (c) 2006 - 2015 PHPExcel - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - * - * @category PHPExcel - * @package PHPExcel_Worksheet - * @copyright Copyright (c) 2006 - 2015 PHPExcel (http://www.codeplex.com/PHPExcel) - * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL - * @version ##VERSION##, ##DATE## - */ -class PHPExcel_Worksheet_HeaderFooterDrawing extends PHPExcel_Worksheet_Drawing implements PHPExcel_IComparable -{ - /** - * Path - * - * @var string - */ - private $path; - - /** - * Name - * - * @var string - */ - protected $name; - - /** - * Offset X - * - * @var int - */ - protected $offsetX; - - /** - * Offset Y - * - * @var int - */ - protected $offsetY; - - /** - * Width - * - * @var int - */ - protected $width; - - /** - * Height - * - * @var int - */ - protected $height; - - /** - * Proportional resize - * - * @var boolean - */ - protected $resizeProportional; - - /** - * Create a new PHPExcel_Worksheet_HeaderFooterDrawing - */ - public function __construct() - { - // Initialise values - $this->path = ''; - $this->name = ''; - $this->offsetX = 0; - $this->offsetY = 0; - $this->width = 0; - $this->height = 0; - $this->resizeProportional = true; - } - - /** - * Get Name - * - * @return string - */ - public function getName() - { - return $this->name; - } - - /** - * Set Name - * - * @param string $pValue - * @return PHPExcel_Worksheet_HeaderFooterDrawing - */ - public function setName($pValue = '') - { - $this->name = $pValue; - return $this; - } - - /** - * Get OffsetX - * - * @return int - */ - public function getOffsetX() - { - return $this->offsetX; - } - - /** - * Set OffsetX - * - * @param int $pValue - * @return PHPExcel_Worksheet_HeaderFooterDrawing - */ - public function setOffsetX($pValue = 0) - { - $this->offsetX = $pValue; - return $this; - } - - /** - * Get OffsetY - * - * @return int - */ - public function getOffsetY() - { - return $this->offsetY; - } - - /** - * Set OffsetY - * - * @param int $pValue - * @return PHPExcel_Worksheet_HeaderFooterDrawing - */ - public function setOffsetY($pValue = 0) - { - $this->offsetY = $pValue; - return $this; - } - - /** - * Get Width - * - * @return int - */ - public function getWidth() - { - return $this->width; - } - - /** - * Set Width - * - * @param int $pValue - * @return PHPExcel_Worksheet_HeaderFooterDrawing - */ - public function setWidth($pValue = 0) - { - // Resize proportional? - if ($this->resizeProportional && $pValue != 0) { - $ratio = $this->width / $this->height; - $this->height = round($ratio * $pValue); - } - - // Set width - $this->width = $pValue; - - return $this; - } - - /** - * Get Height - * - * @return int - */ - public function getHeight() - { - return $this->height; - } - - /** - * Set Height - * - * @param int $pValue - * @return PHPExcel_Worksheet_HeaderFooterDrawing - */ - public function setHeight($pValue = 0) - { - // Resize proportional? - if ($this->resizeProportional && $pValue != 0) { - $ratio = $this->width / $this->height; - $this->width = round($ratio * $pValue); - } - - // Set height - $this->height = $pValue; - - return $this; - } - - /** - * Set width and height with proportional resize - * Example: - * <code> - * $objDrawing->setResizeProportional(true); - * $objDrawing->setWidthAndHeight(160,120); - * </code> - * - * @author Vincent@luo MSN:kele_100@hotmail.com - * @param int $width - * @param int $height - * @return PHPExcel_Worksheet_HeaderFooterDrawing - */ - public function setWidthAndHeight($width = 0, $height = 0) - { - $xratio = $width / $this->width; - $yratio = $height / $this->height; - if ($this->resizeProportional && !($width == 0 || $height == 0)) { - if (($xratio * $this->height) < $height) { - $this->height = ceil($xratio * $this->height); - $this->width = $width; - } else { - $this->width = ceil($yratio * $this->width); - $this->height = $height; - } - } - return $this; - } - - /** - * Get ResizeProportional - * - * @return boolean - */ - public function getResizeProportional() - { - return $this->resizeProportional; - } - - /** - * Set ResizeProportional - * - * @param boolean $pValue - * @return PHPExcel_Worksheet_HeaderFooterDrawing - */ - public function setResizeProportional($pValue = true) - { - $this->resizeProportional = $pValue; - return $this; - } - - /** - * Get Filename - * - * @return string - */ - public function getFilename() - { - return basename($this->path); - } - - /** - * Get Extension - * - * @return string - */ - public function getExtension() - { - $parts = explode(".", basename($this->path)); - return end($parts); - } - - /** - * Get Path - * - * @return string - */ - public function getPath() - { - return $this->path; - } - - /** - * Set Path - * - * @param string $pValue File path - * @param boolean $pVerifyFile Verify file - * @throws PHPExcel_Exception - * @return PHPExcel_Worksheet_HeaderFooterDrawing - */ - public function setPath($pValue = '', $pVerifyFile = true) - { - if ($pVerifyFile) { - if (file_exists($pValue)) { - $this->path = $pValue; - - if ($this->width == 0 && $this->height == 0) { - // Get width/height - list($this->width, $this->height) = getimagesize($pValue); - } - } else { - throw new PHPExcel_Exception("File $pValue not found!"); - } - } else { - $this->path = $pValue; - } - return $this; - } - - /** - * Get hash code - * - * @return string Hash code - */ - public function getHashCode() - { - return md5( - $this->path . - $this->name . - $this->offsetX . - $this->offsetY . - $this->width . - $this->height . - __CLASS__ - ); - } - - /** - * Implement PHP __clone to create a deep clone, not just a shallow copy. - */ - public function __clone() - { - $vars = get_object_vars($this); - foreach ($vars as $key => $value) { - if (is_object($value)) { - $this->$key = clone $value; - } else { - $this->$key = $value; - } - } - } -} diff --git a/Utils/PHPExcel/Worksheet/MemoryDrawing.php b/Utils/PHPExcel/Worksheet/MemoryDrawing.php deleted file mode 100644 index 0ae6e0d..0000000 --- a/Utils/PHPExcel/Worksheet/MemoryDrawing.php +++ /dev/null @@ -1,201 +0,0 @@ -<?php - -/** - * PHPExcel_Worksheet_MemoryDrawing - * - * Copyright (c) 2006 - 2015 PHPExcel - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - * - * @category PHPExcel - * @package PHPExcel_Worksheet - * @copyright Copyright (c) 2006 - 2015 PHPExcel (http://www.codeplex.com/PHPExcel) - * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL - * @version ##VERSION##, ##DATE## - */ -class PHPExcel_Worksheet_MemoryDrawing extends PHPExcel_Worksheet_BaseDrawing implements PHPExcel_IComparable -{ - /* Rendering functions */ - const RENDERING_DEFAULT = 'imagepng'; - const RENDERING_PNG = 'imagepng'; - const RENDERING_GIF = 'imagegif'; - const RENDERING_JPEG = 'imagejpeg'; - - /* MIME types */ - const MIMETYPE_DEFAULT = 'image/png'; - const MIMETYPE_PNG = 'image/png'; - const MIMETYPE_GIF = 'image/gif'; - const MIMETYPE_JPEG = 'image/jpeg'; - - /** - * Image resource - * - * @var resource - */ - private $imageResource; - - /** - * Rendering function - * - * @var string - */ - private $renderingFunction; - - /** - * Mime type - * - * @var string - */ - private $mimeType; - - /** - * Unique name - * - * @var string - */ - private $uniqueName; - - /** - * Create a new PHPExcel_Worksheet_MemoryDrawing - */ - public function __construct() - { - // Initialise values - $this->imageResource = null; - $this->renderingFunction = self::RENDERING_DEFAULT; - $this->mimeType = self::MIMETYPE_DEFAULT; - $this->uniqueName = md5(rand(0, 9999). time() . rand(0, 9999)); - - // Initialize parent - parent::__construct(); - } - - /** - * Get image resource - * - * @return resource - */ - public function getImageResource() - { - return $this->imageResource; - } - - /** - * Set image resource - * - * @param $value resource - * @return PHPExcel_Worksheet_MemoryDrawing - */ - public function setImageResource($value = null) - { - $this->imageResource = $value; - - if (!is_null($this->imageResource)) { - // Get width/height - $this->width = imagesx($this->imageResource); - $this->height = imagesy($this->imageResource); - } - return $this; - } - - /** - * Get rendering function - * - * @return string - */ - public function getRenderingFunction() - { - return $this->renderingFunction; - } - - /** - * Set rendering function - * - * @param string $value - * @return PHPExcel_Worksheet_MemoryDrawing - */ - public function setRenderingFunction($value = PHPExcel_Worksheet_MemoryDrawing::RENDERING_DEFAULT) - { - $this->renderingFunction = $value; - return $this; - } - - /** - * Get indexed filename (using image index) - * - * @return string - */ - public function getIndexedFilename() - { - $extension = strtolower($this->getMimeType()); - $extension = explode('/', $extension); - $extension = $extension[1]; - - return $this->uniqueName . $this->getImageIndex() . '.' . $extension; - } - - /** - * Get mime type - * - * @return string - */ - public function getMimeType() - { - return $this->mimeType; - } - - /** - * Set mime type - * - * @param string $value - * @return PHPExcel_Worksheet_MemoryDrawing - */ - public function setMimeType($value = PHPExcel_Worksheet_MemoryDrawing::MIMETYPE_DEFAULT) - { - $this->mimeType = $value; - return $this; - } - - /** - * Get hash code - * - * @return string Hash code - */ - public function getHashCode() - { - return md5( - $this->renderingFunction . - $this->mimeType . - $this->uniqueName . - parent::getHashCode() . - __CLASS__ - ); - } - - /** - * Implement PHP __clone to create a deep clone, not just a shallow copy. - */ - public function __clone() - { - $vars = get_object_vars($this); - foreach ($vars as $key => $value) { - if (is_object($value)) { - $this->$key = clone $value; - } else { - $this->$key = $value; - } - } - } -} diff --git a/Utils/PHPExcel/Worksheet/PageMargins.php b/Utils/PHPExcel/Worksheet/PageMargins.php deleted file mode 100644 index 70f5ee0..0000000 --- a/Utils/PHPExcel/Worksheet/PageMargins.php +++ /dev/null @@ -1,233 +0,0 @@ -<?php -/** - * PHPExcel - * - * Copyright (c) 2006 - 2015 PHPExcel - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - * - * @category PHPExcel - * @package PHPExcel_Worksheet - * @copyright Copyright (c) 2006 - 2015 PHPExcel (http://www.codeplex.com/PHPExcel) - * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL - * @version ##VERSION##, ##DATE## - */ - - -/** - * PHPExcel_Worksheet_PageMargins - * - * @category PHPExcel - * @package PHPExcel_Worksheet - * @copyright Copyright (c) 2006 - 2015 PHPExcel (http://www.codeplex.com/PHPExcel) - */ -class PHPExcel_Worksheet_PageMargins -{ - /** - * Left - * - * @var double - */ - private $left = 0.7; - - /** - * Right - * - * @var double - */ - private $right = 0.7; - - /** - * Top - * - * @var double - */ - private $top = 0.75; - - /** - * Bottom - * - * @var double - */ - private $bottom = 0.75; - - /** - * Header - * - * @var double - */ - private $header = 0.3; - - /** - * Footer - * - * @var double - */ - private $footer = 0.3; - - /** - * Create a new PHPExcel_Worksheet_PageMargins - */ - public function __construct() - { - } - - /** - * Get Left - * - * @return double - */ - public function getLeft() - { - return $this->left; - } - - /** - * Set Left - * - * @param double $pValue - * @return PHPExcel_Worksheet_PageMargins - */ - public function setLeft($pValue) - { - $this->left = $pValue; - return $this; - } - - /** - * Get Right - * - * @return double - */ - public function getRight() - { - return $this->right; - } - - /** - * Set Right - * - * @param double $pValue - * @return PHPExcel_Worksheet_PageMargins - */ - public function setRight($pValue) - { - $this->right = $pValue; - return $this; - } - - /** - * Get Top - * - * @return double - */ - public function getTop() - { - return $this->top; - } - - /** - * Set Top - * - * @param double $pValue - * @return PHPExcel_Worksheet_PageMargins - */ - public function setTop($pValue) - { - $this->top = $pValue; - return $this; - } - - /** - * Get Bottom - * - * @return double - */ - public function getBottom() - { - return $this->bottom; - } - - /** - * Set Bottom - * - * @param double $pValue - * @return PHPExcel_Worksheet_PageMargins - */ - public function setBottom($pValue) - { - $this->bottom = $pValue; - return $this; - } - - /** - * Get Header - * - * @return double - */ - public function getHeader() - { - return $this->header; - } - - /** - * Set Header - * - * @param double $pValue - * @return PHPExcel_Worksheet_PageMargins - */ - public function setHeader($pValue) - { - $this->header = $pValue; - return $this; - } - - /** - * Get Footer - * - * @return double - */ - public function getFooter() - { - return $this->footer; - } - - /** - * Set Footer - * - * @param double $pValue - * @return PHPExcel_Worksheet_PageMargins - */ - public function setFooter($pValue) - { - $this->footer = $pValue; - return $this; - } - - /** - * Implement PHP __clone to create a deep clone, not just a shallow copy. - */ - public function __clone() - { - $vars = get_object_vars($this); - foreach ($vars as $key => $value) { - if (is_object($value)) { - $this->$key = clone $value; - } else { - $this->$key = $value; - } - } - } -} diff --git a/Utils/PHPExcel/Worksheet/PageSetup.php b/Utils/PHPExcel/Worksheet/PageSetup.php deleted file mode 100644 index c67053e..0000000 --- a/Utils/PHPExcel/Worksheet/PageSetup.php +++ /dev/null @@ -1,839 +0,0 @@ -<?php -/** - * PHPExcel - * - * Copyright (c) 2006 - 2015 PHPExcel - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - * - * @category PHPExcel - * @package PHPExcel_Worksheet - * @copyright Copyright (c) 2006 - 2015 PHPExcel (http://www.codeplex.com/PHPExcel) - * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL - * @version ##VERSION##, ##DATE## - */ - - -/** - * PHPExcel_Worksheet_PageSetup - * - * <code> - * Paper size taken from Office Open XML Part 4 - Markup Language Reference, page 1988: - * - * 1 = Letter paper (8.5 in. by 11 in.) - * 2 = Letter small paper (8.5 in. by 11 in.) - * 3 = Tabloid paper (11 in. by 17 in.) - * 4 = Ledger paper (17 in. by 11 in.) - * 5 = Legal paper (8.5 in. by 14 in.) - * 6 = Statement paper (5.5 in. by 8.5 in.) - * 7 = Executive paper (7.25 in. by 10.5 in.) - * 8 = A3 paper (297 mm by 420 mm) - * 9 = A4 paper (210 mm by 297 mm) - * 10 = A4 small paper (210 mm by 297 mm) - * 11 = A5 paper (148 mm by 210 mm) - * 12 = B4 paper (250 mm by 353 mm) - * 13 = B5 paper (176 mm by 250 mm) - * 14 = Folio paper (8.5 in. by 13 in.) - * 15 = Quarto paper (215 mm by 275 mm) - * 16 = Standard paper (10 in. by 14 in.) - * 17 = Standard paper (11 in. by 17 in.) - * 18 = Note paper (8.5 in. by 11 in.) - * 19 = #9 envelope (3.875 in. by 8.875 in.) - * 20 = #10 envelope (4.125 in. by 9.5 in.) - * 21 = #11 envelope (4.5 in. by 10.375 in.) - * 22 = #12 envelope (4.75 in. by 11 in.) - * 23 = #14 envelope (5 in. by 11.5 in.) - * 24 = C paper (17 in. by 22 in.) - * 25 = D paper (22 in. by 34 in.) - * 26 = E paper (34 in. by 44 in.) - * 27 = DL envelope (110 mm by 220 mm) - * 28 = C5 envelope (162 mm by 229 mm) - * 29 = C3 envelope (324 mm by 458 mm) - * 30 = C4 envelope (229 mm by 324 mm) - * 31 = C6 envelope (114 mm by 162 mm) - * 32 = C65 envelope (114 mm by 229 mm) - * 33 = B4 envelope (250 mm by 353 mm) - * 34 = B5 envelope (176 mm by 250 mm) - * 35 = B6 envelope (176 mm by 125 mm) - * 36 = Italy envelope (110 mm by 230 mm) - * 37 = Monarch envelope (3.875 in. by 7.5 in.). - * 38 = 6 3/4 envelope (3.625 in. by 6.5 in.) - * 39 = US standard fanfold (14.875 in. by 11 in.) - * 40 = German standard fanfold (8.5 in. by 12 in.) - * 41 = German legal fanfold (8.5 in. by 13 in.) - * 42 = ISO B4 (250 mm by 353 mm) - * 43 = Japanese double postcard (200 mm by 148 mm) - * 44 = Standard paper (9 in. by 11 in.) - * 45 = Standard paper (10 in. by 11 in.) - * 46 = Standard paper (15 in. by 11 in.) - * 47 = Invite envelope (220 mm by 220 mm) - * 50 = Letter extra paper (9.275 in. by 12 in.) - * 51 = Legal extra paper (9.275 in. by 15 in.) - * 52 = Tabloid extra paper (11.69 in. by 18 in.) - * 53 = A4 extra paper (236 mm by 322 mm) - * 54 = Letter transverse paper (8.275 in. by 11 in.) - * 55 = A4 transverse paper (210 mm by 297 mm) - * 56 = Letter extra transverse paper (9.275 in. by 12 in.) - * 57 = SuperA/SuperA/A4 paper (227 mm by 356 mm) - * 58 = SuperB/SuperB/A3 paper (305 mm by 487 mm) - * 59 = Letter plus paper (8.5 in. by 12.69 in.) - * 60 = A4 plus paper (210 mm by 330 mm) - * 61 = A5 transverse paper (148 mm by 210 mm) - * 62 = JIS B5 transverse paper (182 mm by 257 mm) - * 63 = A3 extra paper (322 mm by 445 mm) - * 64 = A5 extra paper (174 mm by 235 mm) - * 65 = ISO B5 extra paper (201 mm by 276 mm) - * 66 = A2 paper (420 mm by 594 mm) - * 67 = A3 transverse paper (297 mm by 420 mm) - * 68 = A3 extra transverse paper (322 mm by 445 mm) - * </code> - * - * @category PHPExcel - * @package PHPExcel_Worksheet - * @copyright Copyright (c) 2006 - 2015 PHPExcel (http://www.codeplex.com/PHPExcel) - */ -class PHPExcel_Worksheet_PageSetup -{ - /* Paper size */ - const PAPERSIZE_LETTER = 1; - const PAPERSIZE_LETTER_SMALL = 2; - const PAPERSIZE_TABLOID = 3; - const PAPERSIZE_LEDGER = 4; - const PAPERSIZE_LEGAL = 5; - const PAPERSIZE_STATEMENT = 6; - const PAPERSIZE_EXECUTIVE = 7; - const PAPERSIZE_A3 = 8; - const PAPERSIZE_A4 = 9; - const PAPERSIZE_A4_SMALL = 10; - const PAPERSIZE_A5 = 11; - const PAPERSIZE_B4 = 12; - const PAPERSIZE_B5 = 13; - const PAPERSIZE_FOLIO = 14; - const PAPERSIZE_QUARTO = 15; - const PAPERSIZE_STANDARD_1 = 16; - const PAPERSIZE_STANDARD_2 = 17; - const PAPERSIZE_NOTE = 18; - const PAPERSIZE_NO9_ENVELOPE = 19; - const PAPERSIZE_NO10_ENVELOPE = 20; - const PAPERSIZE_NO11_ENVELOPE = 21; - const PAPERSIZE_NO12_ENVELOPE = 22; - const PAPERSIZE_NO14_ENVELOPE = 23; - const PAPERSIZE_C = 24; - const PAPERSIZE_D = 25; - const PAPERSIZE_E = 26; - const PAPERSIZE_DL_ENVELOPE = 27; - const PAPERSIZE_C5_ENVELOPE = 28; - const PAPERSIZE_C3_ENVELOPE = 29; - const PAPERSIZE_C4_ENVELOPE = 30; - const PAPERSIZE_C6_ENVELOPE = 31; - const PAPERSIZE_C65_ENVELOPE = 32; - const PAPERSIZE_B4_ENVELOPE = 33; - const PAPERSIZE_B5_ENVELOPE = 34; - const PAPERSIZE_B6_ENVELOPE = 35; - const PAPERSIZE_ITALY_ENVELOPE = 36; - const PAPERSIZE_MONARCH_ENVELOPE = 37; - const PAPERSIZE_6_3_4_ENVELOPE = 38; - const PAPERSIZE_US_STANDARD_FANFOLD = 39; - const PAPERSIZE_GERMAN_STANDARD_FANFOLD = 40; - const PAPERSIZE_GERMAN_LEGAL_FANFOLD = 41; - const PAPERSIZE_ISO_B4 = 42; - const PAPERSIZE_JAPANESE_DOUBLE_POSTCARD = 43; - const PAPERSIZE_STANDARD_PAPER_1 = 44; - const PAPERSIZE_STANDARD_PAPER_2 = 45; - const PAPERSIZE_STANDARD_PAPER_3 = 46; - const PAPERSIZE_INVITE_ENVELOPE = 47; - const PAPERSIZE_LETTER_EXTRA_PAPER = 48; - const PAPERSIZE_LEGAL_EXTRA_PAPER = 49; - const PAPERSIZE_TABLOID_EXTRA_PAPER = 50; - const PAPERSIZE_A4_EXTRA_PAPER = 51; - const PAPERSIZE_LETTER_TRANSVERSE_PAPER = 52; - const PAPERSIZE_A4_TRANSVERSE_PAPER = 53; - const PAPERSIZE_LETTER_EXTRA_TRANSVERSE_PAPER = 54; - const PAPERSIZE_SUPERA_SUPERA_A4_PAPER = 55; - const PAPERSIZE_SUPERB_SUPERB_A3_PAPER = 56; - const PAPERSIZE_LETTER_PLUS_PAPER = 57; - const PAPERSIZE_A4_PLUS_PAPER = 58; - const PAPERSIZE_A5_TRANSVERSE_PAPER = 59; - const PAPERSIZE_JIS_B5_TRANSVERSE_PAPER = 60; - const PAPERSIZE_A3_EXTRA_PAPER = 61; - const PAPERSIZE_A5_EXTRA_PAPER = 62; - const PAPERSIZE_ISO_B5_EXTRA_PAPER = 63; - const PAPERSIZE_A2_PAPER = 64; - const PAPERSIZE_A3_TRANSVERSE_PAPER = 65; - const PAPERSIZE_A3_EXTRA_TRANSVERSE_PAPER = 66; - - /* Page orientation */ - const ORIENTATION_DEFAULT = 'default'; - const ORIENTATION_LANDSCAPE = 'landscape'; - const ORIENTATION_PORTRAIT = 'portrait'; - - /* Print Range Set Method */ - const SETPRINTRANGE_OVERWRITE = 'O'; - const SETPRINTRANGE_INSERT = 'I'; - - - /** - * Paper size - * - * @var int - */ - private $paperSize = PHPExcel_Worksheet_PageSetup::PAPERSIZE_LETTER; - - /** - * Orientation - * - * @var string - */ - private $orientation = PHPExcel_Worksheet_PageSetup::ORIENTATION_DEFAULT; - - /** - * Scale (Print Scale) - * - * Print scaling. Valid values range from 10 to 400 - * This setting is overridden when fitToWidth and/or fitToHeight are in use - * - * @var int? - */ - private $scale = 100; - - /** - * Fit To Page - * Whether scale or fitToWith / fitToHeight applies - * - * @var boolean - */ - private $fitToPage = false; - - /** - * Fit To Height - * Number of vertical pages to fit on - * - * @var int? - */ - private $fitToHeight = 1; - - /** - * Fit To Width - * Number of horizontal pages to fit on - * - * @var int? - */ - private $fitToWidth = 1; - - /** - * Columns to repeat at left - * - * @var array Containing start column and end column, empty array if option unset - */ - private $columnsToRepeatAtLeft = array('', ''); - - /** - * Rows to repeat at top - * - * @var array Containing start row number and end row number, empty array if option unset - */ - private $rowsToRepeatAtTop = array(0, 0); - - /** - * Center page horizontally - * - * @var boolean - */ - private $horizontalCentered = false; - - /** - * Center page vertically - * - * @var boolean - */ - private $verticalCentered = false; - - /** - * Print area - * - * @var string - */ - private $printArea = null; - - /** - * First page number - * - * @var int - */ - private $firstPageNumber = null; - - /** - * Create a new PHPExcel_Worksheet_PageSetup - */ - public function __construct() - { - } - - /** - * Get Paper Size - * - * @return int - */ - public function getPaperSize() - { - return $this->paperSize; - } - - /** - * Set Paper Size - * - * @param int $pValue - * @return PHPExcel_Worksheet_PageSetup - */ - public function setPaperSize($pValue = PHPExcel_Worksheet_PageSetup::PAPERSIZE_LETTER) - { - $this->paperSize = $pValue; - return $this; - } - - /** - * Get Orientation - * - * @return string - */ - public function getOrientation() - { - return $this->orientation; - } - - /** - * Set Orientation - * - * @param string $pValue - * @return PHPExcel_Worksheet_PageSetup - */ - public function setOrientation($pValue = PHPExcel_Worksheet_PageSetup::ORIENTATION_DEFAULT) - { - $this->orientation = $pValue; - return $this; - } - - /** - * Get Scale - * - * @return int? - */ - public function getScale() - { - return $this->scale; - } - - /** - * Set Scale - * - * Print scaling. Valid values range from 10 to 400 - * This setting is overridden when fitToWidth and/or fitToHeight are in use - * - * @param int? $pValue - * @param boolean $pUpdate Update fitToPage so scaling applies rather than fitToHeight / fitToWidth - * @return PHPExcel_Worksheet_PageSetup - * @throws PHPExcel_Exception - */ - public function setScale($pValue = 100, $pUpdate = true) - { - // Microsoft Office Excel 2007 only allows setting a scale between 10 and 400 via the user interface, - // but it is apparently still able to handle any scale >= 0, where 0 results in 100 - if (($pValue >= 0) || is_null($pValue)) { - $this->scale = $pValue; - if ($pUpdate) { - $this->fitToPage = false; - } - } else { - throw new PHPExcel_Exception("Scale must not be negative"); - } - return $this; - } - - /** - * Get Fit To Page - * - * @return boolean - */ - public function getFitToPage() - { - return $this->fitToPage; - } - - /** - * Set Fit To Page - * - * @param boolean $pValue - * @return PHPExcel_Worksheet_PageSetup - */ - public function setFitToPage($pValue = true) - { - $this->fitToPage = $pValue; - return $this; - } - - /** - * Get Fit To Height - * - * @return int? - */ - public function getFitToHeight() - { - return $this->fitToHeight; - } - - /** - * Set Fit To Height - * - * @param int? $pValue - * @param boolean $pUpdate Update fitToPage so it applies rather than scaling - * @return PHPExcel_Worksheet_PageSetup - */ - public function setFitToHeight($pValue = 1, $pUpdate = true) - { - $this->fitToHeight = $pValue; - if ($pUpdate) { - $this->fitToPage = true; - } - return $this; - } - - /** - * Get Fit To Width - * - * @return int? - */ - public function getFitToWidth() - { - return $this->fitToWidth; - } - - /** - * Set Fit To Width - * - * @param int? $pValue - * @param boolean $pUpdate Update fitToPage so it applies rather than scaling - * @return PHPExcel_Worksheet_PageSetup - */ - public function setFitToWidth($pValue = 1, $pUpdate = true) - { - $this->fitToWidth = $pValue; - if ($pUpdate) { - $this->fitToPage = true; - } - return $this; - } - - /** - * Is Columns to repeat at left set? - * - * @return boolean - */ - public function isColumnsToRepeatAtLeftSet() - { - if (is_array($this->columnsToRepeatAtLeft)) { - if ($this->columnsToRepeatAtLeft[0] != '' && $this->columnsToRepeatAtLeft[1] != '') { - return true; - } - } - - return false; - } - - /** - * Get Columns to repeat at left - * - * @return array Containing start column and end column, empty array if option unset - */ - public function getColumnsToRepeatAtLeft() - { - return $this->columnsToRepeatAtLeft; - } - - /** - * Set Columns to repeat at left - * - * @param array $pValue Containing start column and end column, empty array if option unset - * @return PHPExcel_Worksheet_PageSetup - */ - public function setColumnsToRepeatAtLeft($pValue = null) - { - if (is_array($pValue)) { - $this->columnsToRepeatAtLeft = $pValue; - } - return $this; - } - - /** - * Set Columns to repeat at left by start and end - * - * @param string $pStart - * @param string $pEnd - * @return PHPExcel_Worksheet_PageSetup - */ - public function setColumnsToRepeatAtLeftByStartAndEnd($pStart = 'A', $pEnd = 'A') - { - $this->columnsToRepeatAtLeft = array($pStart, $pEnd); - return $this; - } - - /** - * Is Rows to repeat at top set? - * - * @return boolean - */ - public function isRowsToRepeatAtTopSet() - { - if (is_array($this->rowsToRepeatAtTop)) { - if ($this->rowsToRepeatAtTop[0] != 0 && $this->rowsToRepeatAtTop[1] != 0) { - return true; - } - } - - return false; - } - - /** - * Get Rows to repeat at top - * - * @return array Containing start column and end column, empty array if option unset - */ - public function getRowsToRepeatAtTop() - { - return $this->rowsToRepeatAtTop; - } - - /** - * Set Rows to repeat at top - * - * @param array $pValue Containing start column and end column, empty array if option unset - * @return PHPExcel_Worksheet_PageSetup - */ - public function setRowsToRepeatAtTop($pValue = null) - { - if (is_array($pValue)) { - $this->rowsToRepeatAtTop = $pValue; - } - return $this; - } - - /** - * Set Rows to repeat at top by start and end - * - * @param int $pStart - * @param int $pEnd - * @return PHPExcel_Worksheet_PageSetup - */ - public function setRowsToRepeatAtTopByStartAndEnd($pStart = 1, $pEnd = 1) - { - $this->rowsToRepeatAtTop = array($pStart, $pEnd); - return $this; - } - - /** - * Get center page horizontally - * - * @return bool - */ - public function getHorizontalCentered() - { - return $this->horizontalCentered; - } - - /** - * Set center page horizontally - * - * @param bool $value - * @return PHPExcel_Worksheet_PageSetup - */ - public function setHorizontalCentered($value = false) - { - $this->horizontalCentered = $value; - return $this; - } - - /** - * Get center page vertically - * - * @return bool - */ - public function getVerticalCentered() - { - return $this->verticalCentered; - } - - /** - * Set center page vertically - * - * @param bool $value - * @return PHPExcel_Worksheet_PageSetup - */ - public function setVerticalCentered($value = false) - { - $this->verticalCentered = $value; - return $this; - } - - /** - * Get print area - * - * @param int $index Identifier for a specific print area range if several ranges have been set - * Default behaviour, or a index value of 0, will return all ranges as a comma-separated string - * Otherwise, the specific range identified by the value of $index will be returned - * Print areas are numbered from 1 - * @throws PHPExcel_Exception - * @return string - */ - public function getPrintArea($index = 0) - { - if ($index == 0) { - return $this->printArea; - } - $printAreas = explode(',', $this->printArea); - if (isset($printAreas[$index-1])) { - return $printAreas[$index-1]; - } - throw new PHPExcel_Exception("Requested Print Area does not exist"); - } - - /** - * Is print area set? - * - * @param int $index Identifier for a specific print area range if several ranges have been set - * Default behaviour, or an index value of 0, will identify whether any print range is set - * Otherwise, existence of the range identified by the value of $index will be returned - * Print areas are numbered from 1 - * @return boolean - */ - public function isPrintAreaSet($index = 0) - { - if ($index == 0) { - return !is_null($this->printArea); - } - $printAreas = explode(',', $this->printArea); - return isset($printAreas[$index-1]); - } - - /** - * Clear a print area - * - * @param int $index Identifier for a specific print area range if several ranges have been set - * Default behaviour, or an index value of 0, will clear all print ranges that are set - * Otherwise, the range identified by the value of $index will be removed from the series - * Print areas are numbered from 1 - * @return PHPExcel_Worksheet_PageSetup - */ - public function clearPrintArea($index = 0) - { - if ($index == 0) { - $this->printArea = null; - } else { - $printAreas = explode(',', $this->printArea); - if (isset($printAreas[$index-1])) { - unset($printAreas[$index-1]); - $this->printArea = implode(',', $printAreas); - } - } - - return $this; - } - - /** - * Set print area. e.g. 'A1:D10' or 'A1:D10,G5:M20' - * - * @param string $value - * @param int $index Identifier for a specific print area range allowing several ranges to be set - * When the method is "O"verwrite, then a positive integer index will overwrite that indexed - * entry in the print areas list; a negative index value will identify which entry to - * overwrite working bacward through the print area to the list, with the last entry as -1. - * Specifying an index value of 0, will overwrite <b>all</b> existing print ranges. - * When the method is "I"nsert, then a positive index will insert after that indexed entry in - * the print areas list, while a negative index will insert before the indexed entry. - * Specifying an index value of 0, will always append the new print range at the end of the - * list. - * Print areas are numbered from 1 - * @param string $method Determines the method used when setting multiple print areas - * Default behaviour, or the "O" method, overwrites existing print area - * The "I" method, inserts the new print area before any specified index, or at the end of the list - * @return PHPExcel_Worksheet_PageSetup - * @throws PHPExcel_Exception - */ - public function setPrintArea($value, $index = 0, $method = self::SETPRINTRANGE_OVERWRITE) - { - if (strpos($value, '!') !== false) { - throw new PHPExcel_Exception('Cell coordinate must not specify a worksheet.'); - } elseif (strpos($value, ':') === false) { - throw new PHPExcel_Exception('Cell coordinate must be a range of cells.'); - } elseif (strpos($value, '$') !== false) { - throw new PHPExcel_Exception('Cell coordinate must not be absolute.'); - } - $value = strtoupper($value); - - if ($method == self::SETPRINTRANGE_OVERWRITE) { - if ($index == 0) { - $this->printArea = $value; - } else { - $printAreas = explode(',', $this->printArea); - if ($index < 0) { - $index = count($printAreas) - abs($index) + 1; - } - if (($index <= 0) || ($index > count($printAreas))) { - throw new PHPExcel_Exception('Invalid index for setting print range.'); - } - $printAreas[$index-1] = $value; - $this->printArea = implode(',', $printAreas); - } - } elseif ($method == self::SETPRINTRANGE_INSERT) { - if ($index == 0) { - $this->printArea .= ($this->printArea == '') ? $value : ','.$value; - } else { - $printAreas = explode(',', $this->printArea); - if ($index < 0) { - $index = abs($index) - 1; - } - if ($index > count($printAreas)) { - throw new PHPExcel_Exception('Invalid index for setting print range.'); - } - $printAreas = array_merge(array_slice($printAreas, 0, $index), array($value), array_slice($printAreas, $index)); - $this->printArea = implode(',', $printAreas); - } - } else { - throw new PHPExcel_Exception('Invalid method for setting print range.'); - } - - return $this; - } - - /** - * Add a new print area (e.g. 'A1:D10' or 'A1:D10,G5:M20') to the list of print areas - * - * @param string $value - * @param int $index Identifier for a specific print area range allowing several ranges to be set - * A positive index will insert after that indexed entry in the print areas list, while a - * negative index will insert before the indexed entry. - * Specifying an index value of 0, will always append the new print range at the end of the - * list. - * Print areas are numbered from 1 - * @return PHPExcel_Worksheet_PageSetup - * @throws PHPExcel_Exception - */ - public function addPrintArea($value, $index = -1) - { - return $this->setPrintArea($value, $index, self::SETPRINTRANGE_INSERT); - } - - /** - * Set print area - * - * @param int $column1 Column 1 - * @param int $row1 Row 1 - * @param int $column2 Column 2 - * @param int $row2 Row 2 - * @param int $index Identifier for a specific print area range allowing several ranges to be set - * When the method is "O"verwrite, then a positive integer index will overwrite that indexed - * entry in the print areas list; a negative index value will identify which entry to - * overwrite working bacward through the print area to the list, with the last entry as -1. - * Specifying an index value of 0, will overwrite <b>all</b> existing print ranges. - * When the method is "I"nsert, then a positive index will insert after that indexed entry in - * the print areas list, while a negative index will insert before the indexed entry. - * Specifying an index value of 0, will always append the new print range at the end of the - * list. - * Print areas are numbered from 1 - * @param string $method Determines the method used when setting multiple print areas - * Default behaviour, or the "O" method, overwrites existing print area - * The "I" method, inserts the new print area before any specified index, or at the end of the list - * @return PHPExcel_Worksheet_PageSetup - * @throws PHPExcel_Exception - */ - public function setPrintAreaByColumnAndRow($column1, $row1, $column2, $row2, $index = 0, $method = self::SETPRINTRANGE_OVERWRITE) - { - return $this->setPrintArea( - PHPExcel_Cell::stringFromColumnIndex($column1) . $row1 . ':' . PHPExcel_Cell::stringFromColumnIndex($column2) . $row2, - $index, - $method - ); - } - - /** - * Add a new print area to the list of print areas - * - * @param int $column1 Start Column for the print area - * @param int $row1 Start Row for the print area - * @param int $column2 End Column for the print area - * @param int $row2 End Row for the print area - * @param int $index Identifier for a specific print area range allowing several ranges to be set - * A positive index will insert after that indexed entry in the print areas list, while a - * negative index will insert before the indexed entry. - * Specifying an index value of 0, will always append the new print range at the end of the - * list. - * Print areas are numbered from 1 - * @return PHPExcel_Worksheet_PageSetup - * @throws PHPExcel_Exception - */ - public function addPrintAreaByColumnAndRow($column1, $row1, $column2, $row2, $index = -1) - { - return $this->setPrintArea( - PHPExcel_Cell::stringFromColumnIndex($column1) . $row1 . ':' . PHPExcel_Cell::stringFromColumnIndex($column2) . $row2, - $index, - self::SETPRINTRANGE_INSERT - ); - } - - /** - * Get first page number - * - * @return int - */ - public function getFirstPageNumber() - { - return $this->firstPageNumber; - } - - /** - * Set first page number - * - * @param int $value - * @return PHPExcel_Worksheet_HeaderFooter - */ - public function setFirstPageNumber($value = null) - { - $this->firstPageNumber = $value; - return $this; - } - - /** - * Reset first page number - * - * @return PHPExcel_Worksheet_HeaderFooter - */ - public function resetFirstPageNumber() - { - return $this->setFirstPageNumber(null); - } - - /** - * Implement PHP __clone to create a deep clone, not just a shallow copy. - */ - public function __clone() - { - $vars = get_object_vars($this); - foreach ($vars as $key => $value) { - if (is_object($value)) { - $this->$key = clone $value; - } else { - $this->$key = $value; - } - } - } -} diff --git a/Utils/PHPExcel/Worksheet/Protection.php b/Utils/PHPExcel/Worksheet/Protection.php deleted file mode 100644 index 00633ee..0000000 --- a/Utils/PHPExcel/Worksheet/Protection.php +++ /dev/null @@ -1,581 +0,0 @@ -<?php -/** - * PHPExcel - * - * Copyright (c) 2006 - 2015 PHPExcel - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - * - * @category PHPExcel - * @package PHPExcel_Worksheet - * @copyright Copyright (c) 2006 - 2015 PHPExcel (http://www.codeplex.com/PHPExcel) - * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL - * @version ##VERSION##, ##DATE## - */ - - -/** - * PHPExcel_Worksheet_Protection - * - * @category PHPExcel - * @package PHPExcel_Worksheet - * @copyright Copyright (c) 2006 - 2015 PHPExcel (http://www.codeplex.com/PHPExcel) - */ -class PHPExcel_Worksheet_Protection -{ - /** - * Sheet - * - * @var boolean - */ - private $sheet = false; - - /** - * Objects - * - * @var boolean - */ - private $objects = false; - - /** - * Scenarios - * - * @var boolean - */ - private $scenarios = false; - - /** - * Format cells - * - * @var boolean - */ - private $formatCells = false; - - /** - * Format columns - * - * @var boolean - */ - private $formatColumns = false; - - /** - * Format rows - * - * @var boolean - */ - private $formatRows = false; - - /** - * Insert columns - * - * @var boolean - */ - private $insertColumns = false; - - /** - * Insert rows - * - * @var boolean - */ - private $insertRows = false; - - /** - * Insert hyperlinks - * - * @var boolean - */ - private $insertHyperlinks = false; - - /** - * Delete columns - * - * @var boolean - */ - private $deleteColumns = false; - - /** - * Delete rows - * - * @var boolean - */ - private $deleteRows = false; - - /** - * Select locked cells - * - * @var boolean - */ - private $selectLockedCells = false; - - /** - * Sort - * - * @var boolean - */ - private $sort = false; - - /** - * AutoFilter - * - * @var boolean - */ - private $autoFilter = false; - - /** - * Pivot tables - * - * @var boolean - */ - private $pivotTables = false; - - /** - * Select unlocked cells - * - * @var boolean - */ - private $selectUnlockedCells = false; - - /** - * Password - * - * @var string - */ - private $password = ''; - - /** - * Create a new PHPExcel_Worksheet_Protection - */ - public function __construct() - { - } - - /** - * Is some sort of protection enabled? - * - * @return boolean - */ - public function isProtectionEnabled() - { - return $this->sheet || - $this->objects || - $this->scenarios || - $this->formatCells || - $this->formatColumns || - $this->formatRows || - $this->insertColumns || - $this->insertRows || - $this->insertHyperlinks || - $this->deleteColumns || - $this->deleteRows || - $this->selectLockedCells || - $this->sort || - $this->autoFilter || - $this->pivotTables || - $this->selectUnlockedCells; - } - - /** - * Get Sheet - * - * @return boolean - */ - public function getSheet() - { - return $this->sheet; - } - - /** - * Set Sheet - * - * @param boolean $pValue - * @return PHPExcel_Worksheet_Protection - */ - public function setSheet($pValue = false) - { - $this->sheet = $pValue; - return $this; - } - - /** - * Get Objects - * - * @return boolean - */ - public function getObjects() - { - return $this->objects; - } - - /** - * Set Objects - * - * @param boolean $pValue - * @return PHPExcel_Worksheet_Protection - */ - public function setObjects($pValue = false) - { - $this->objects = $pValue; - return $this; - } - - /** - * Get Scenarios - * - * @return boolean - */ - public function getScenarios() - { - return $this->scenarios; - } - - /** - * Set Scenarios - * - * @param boolean $pValue - * @return PHPExcel_Worksheet_Protection - */ - public function setScenarios($pValue = false) - { - $this->scenarios = $pValue; - return $this; - } - - /** - * Get FormatCells - * - * @return boolean - */ - public function getFormatCells() - { - return $this->formatCells; - } - - /** - * Set FormatCells - * - * @param boolean $pValue - * @return PHPExcel_Worksheet_Protection - */ - public function setFormatCells($pValue = false) - { - $this->formatCells = $pValue; - return $this; - } - - /** - * Get FormatColumns - * - * @return boolean - */ - public function getFormatColumns() - { - return $this->formatColumns; - } - - /** - * Set FormatColumns - * - * @param boolean $pValue - * @return PHPExcel_Worksheet_Protection - */ - public function setFormatColumns($pValue = false) - { - $this->formatColumns = $pValue; - return $this; - } - - /** - * Get FormatRows - * - * @return boolean - */ - public function getFormatRows() - { - return $this->formatRows; - } - - /** - * Set FormatRows - * - * @param boolean $pValue - * @return PHPExcel_Worksheet_Protection - */ - public function setFormatRows($pValue = false) - { - $this->formatRows = $pValue; - return $this; - } - - /** - * Get InsertColumns - * - * @return boolean - */ - public function getInsertColumns() - { - return $this->insertColumns; - } - - /** - * Set InsertColumns - * - * @param boolean $pValue - * @return PHPExcel_Worksheet_Protection - */ - public function setInsertColumns($pValue = false) - { - $this->insertColumns = $pValue; - return $this; - } - - /** - * Get InsertRows - * - * @return boolean - */ - public function getInsertRows() - { - return $this->insertRows; - } - - /** - * Set InsertRows - * - * @param boolean $pValue - * @return PHPExcel_Worksheet_Protection - */ - public function setInsertRows($pValue = false) - { - $this->insertRows = $pValue; - return $this; - } - - /** - * Get InsertHyperlinks - * - * @return boolean - */ - public function getInsertHyperlinks() - { - return $this->insertHyperlinks; - } - - /** - * Set InsertHyperlinks - * - * @param boolean $pValue - * @return PHPExcel_Worksheet_Protection - */ - public function setInsertHyperlinks($pValue = false) - { - $this->insertHyperlinks = $pValue; - return $this; - } - - /** - * Get DeleteColumns - * - * @return boolean - */ - public function getDeleteColumns() - { - return $this->deleteColumns; - } - - /** - * Set DeleteColumns - * - * @param boolean $pValue - * @return PHPExcel_Worksheet_Protection - */ - public function setDeleteColumns($pValue = false) - { - $this->deleteColumns = $pValue; - return $this; - } - - /** - * Get DeleteRows - * - * @return boolean - */ - public function getDeleteRows() - { - return $this->deleteRows; - } - - /** - * Set DeleteRows - * - * @param boolean $pValue - * @return PHPExcel_Worksheet_Protection - */ - public function setDeleteRows($pValue = false) - { - $this->deleteRows = $pValue; - return $this; - } - - /** - * Get SelectLockedCells - * - * @return boolean - */ - public function getSelectLockedCells() - { - return $this->selectLockedCells; - } - - /** - * Set SelectLockedCells - * - * @param boolean $pValue - * @return PHPExcel_Worksheet_Protection - */ - public function setSelectLockedCells($pValue = false) - { - $this->selectLockedCells = $pValue; - return $this; - } - - /** - * Get Sort - * - * @return boolean - */ - public function getSort() - { - return $this->sort; - } - - /** - * Set Sort - * - * @param boolean $pValue - * @return PHPExcel_Worksheet_Protection - */ - public function setSort($pValue = false) - { - $this->sort = $pValue; - return $this; - } - - /** - * Get AutoFilter - * - * @return boolean - */ - public function getAutoFilter() - { - return $this->autoFilter; - } - - /** - * Set AutoFilter - * - * @param boolean $pValue - * @return PHPExcel_Worksheet_Protection - */ - public function setAutoFilter($pValue = false) - { - $this->autoFilter = $pValue; - return $this; - } - - /** - * Get PivotTables - * - * @return boolean - */ - public function getPivotTables() - { - return $this->pivotTables; - } - - /** - * Set PivotTables - * - * @param boolean $pValue - * @return PHPExcel_Worksheet_Protection - */ - public function setPivotTables($pValue = false) - { - $this->pivotTables = $pValue; - return $this; - } - - /** - * Get SelectUnlockedCells - * - * @return boolean - */ - public function getSelectUnlockedCells() - { - return $this->selectUnlockedCells; - } - - /** - * Set SelectUnlockedCells - * - * @param boolean $pValue - * @return PHPExcel_Worksheet_Protection - */ - public function setSelectUnlockedCells($pValue = false) - { - $this->selectUnlockedCells = $pValue; - return $this; - } - - /** - * Get Password (hashed) - * - * @return string - */ - public function getPassword() - { - return $this->password; - } - - /** - * Set Password - * - * @param string $pValue - * @param boolean $pAlreadyHashed If the password has already been hashed, set this to true - * @return PHPExcel_Worksheet_Protection - */ - public function setPassword($pValue = '', $pAlreadyHashed = false) - { - if (!$pAlreadyHashed) { - $pValue = PHPExcel_Shared_PasswordHasher::hashPassword($pValue); - } - $this->password = $pValue; - return $this; - } - - /** - * Implement PHP __clone to create a deep clone, not just a shallow copy. - */ - public function __clone() - { - $vars = get_object_vars($this); - foreach ($vars as $key => $value) { - if (is_object($value)) { - $this->$key = clone $value; - } else { - $this->$key = $value; - } - } - } -} diff --git a/Utils/PHPExcel/Worksheet/Row.php b/Utils/PHPExcel/Worksheet/Row.php deleted file mode 100644 index 4f6034f..0000000 --- a/Utils/PHPExcel/Worksheet/Row.php +++ /dev/null @@ -1,86 +0,0 @@ -<?php - -/** - * PHPExcel_Worksheet_Row - * - * Copyright (c) 2006 - 2015 PHPExcel - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - * - * @category PHPExcel - * @package PHPExcel_Worksheet - * @copyright Copyright (c) 2006 - 2015 PHPExcel (http://www.codeplex.com/PHPExcel) - * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL - * @version ##VERSION##, ##DATE## - */ -class PHPExcel_Worksheet_Row -{ - /** - * PHPExcel_Worksheet - * - * @var PHPExcel_Worksheet - */ - private $parent; - - /** - * Row index - * - * @var int - */ - private $rowIndex = 0; - - /** - * Create a new row - * - * @param PHPExcel_Worksheet $parent - * @param int $rowIndex - */ - public function __construct(PHPExcel_Worksheet $parent = null, $rowIndex = 1) - { - // Set parent and row index - $this->parent = $parent; - $this->rowIndex = $rowIndex; - } - - /** - * Destructor - */ - public function __destruct() - { - unset($this->parent); - } - - /** - * Get row index - * - * @return int - */ - public function getRowIndex() - { - return $this->rowIndex; - } - - /** - * Get cell iterator - * - * @param string $startColumn The column address at which to start iterating - * @param string $endColumn Optionally, the column address at which to stop iterating - * @return PHPExcel_Worksheet_CellIterator - */ - public function getCellIterator($startColumn = 'A', $endColumn = null) - { - return new PHPExcel_Worksheet_RowCellIterator($this->parent, $this->rowIndex, $startColumn, $endColumn); - } -} diff --git a/Utils/PHPExcel/Worksheet/RowCellIterator.php b/Utils/PHPExcel/Worksheet/RowCellIterator.php deleted file mode 100644 index 90eb9c9..0000000 --- a/Utils/PHPExcel/Worksheet/RowCellIterator.php +++ /dev/null @@ -1,225 +0,0 @@ -<?php - -/** - * PHPExcel_Worksheet_RowCellIterator - * - * Copyright (c) 2006 - 2015 PHPExcel - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - * - * @category PHPExcel - * @package PHPExcel_Worksheet - * @copyright Copyright (c) 2006 - 2015 PHPExcel (http://www.codeplex.com/PHPExcel) - * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL - * @version ##VERSION##, ##DATE## - */ -class PHPExcel_Worksheet_RowCellIterator extends PHPExcel_Worksheet_CellIterator implements Iterator -{ - /** - * Row index - * - * @var int - */ - protected $rowIndex; - - /** - * Start position - * - * @var int - */ - protected $startColumn = 0; - - /** - * End position - * - * @var int - */ - protected $endColumn = 0; - - /** - * Create a new column iterator - * - * @param PHPExcel_Worksheet $subject The worksheet to iterate over - * @param integer $rowIndex The row that we want to iterate - * @param string $startColumn The column address at which to start iterating - * @param string $endColumn Optionally, the column address at which to stop iterating - */ - public function __construct(PHPExcel_Worksheet $subject = null, $rowIndex = 1, $startColumn = 'A', $endColumn = null) - { - // Set subject and row index - $this->subject = $subject; - $this->rowIndex = $rowIndex; - $this->resetEnd($endColumn); - $this->resetStart($startColumn); - } - - /** - * Destructor - */ - public function __destruct() - { - unset($this->subject); - } - - /** - * (Re)Set the start column and the current column pointer - * - * @param integer $startColumn The column address at which to start iterating - * @return PHPExcel_Worksheet_RowCellIterator - * @throws PHPExcel_Exception - */ - public function resetStart($startColumn = 'A') - { - $startColumnIndex = PHPExcel_Cell::columnIndexFromString($startColumn) - 1; - $this->startColumn = $startColumnIndex; - $this->adjustForExistingOnlyRange(); - $this->seek(PHPExcel_Cell::stringFromColumnIndex($this->startColumn)); - - return $this; - } - - /** - * (Re)Set the end column - * - * @param string $endColumn The column address at which to stop iterating - * @return PHPExcel_Worksheet_RowCellIterator - * @throws PHPExcel_Exception - */ - public function resetEnd($endColumn = null) - { - $endColumn = ($endColumn) ? $endColumn : $this->subject->getHighestColumn(); - $this->endColumn = PHPExcel_Cell::columnIndexFromString($endColumn) - 1; - $this->adjustForExistingOnlyRange(); - - return $this; - } - - /** - * Set the column pointer to the selected column - * - * @param string $column The column address to set the current pointer at - * @return PHPExcel_Worksheet_RowCellIterator - * @throws PHPExcel_Exception - */ - public function seek($column = 'A') - { - $column = PHPExcel_Cell::columnIndexFromString($column) - 1; - if (($column < $this->startColumn) || ($column > $this->endColumn)) { - throw new PHPExcel_Exception("Column $column is out of range ({$this->startColumn} - {$this->endColumn})"); - } elseif ($this->onlyExistingCells && !($this->subject->cellExistsByColumnAndRow($column, $this->rowIndex))) { - throw new PHPExcel_Exception('In "IterateOnlyExistingCells" mode and Cell does not exist'); - } - $this->position = $column; - - return $this; - } - - /** - * Rewind the iterator to the starting column - */ - public function rewind() - { - $this->position = $this->startColumn; - } - - /** - * Return the current cell in this worksheet row - * - * @return PHPExcel_Cell - */ - public function current() - { - return $this->subject->getCellByColumnAndRow($this->position, $this->rowIndex); - } - - /** - * Return the current iterator key - * - * @return string - */ - public function key() - { - return PHPExcel_Cell::stringFromColumnIndex($this->position); - } - - /** - * Set the iterator to its next value - */ - public function next() - { - do { - ++$this->position; - } while (($this->onlyExistingCells) && - (!$this->subject->cellExistsByColumnAndRow($this->position, $this->rowIndex)) && - ($this->position <= $this->endColumn)); - } - - /** - * Set the iterator to its previous value - * - * @throws PHPExcel_Exception - */ - public function prev() - { - if ($this->position <= $this->startColumn) { - throw new PHPExcel_Exception( - "Column is already at the beginning of range (" . - PHPExcel_Cell::stringFromColumnIndex($this->endColumn) . " - " . - PHPExcel_Cell::stringFromColumnIndex($this->endColumn) . ")" - ); - } - - do { - --$this->position; - } while (($this->onlyExistingCells) && - (!$this->subject->cellExistsByColumnAndRow($this->position, $this->rowIndex)) && - ($this->position >= $this->startColumn)); - } - - /** - * Indicate if more columns exist in the worksheet range of columns that we're iterating - * - * @return boolean - */ - public function valid() - { - return $this->position <= $this->endColumn; - } - - /** - * Validate start/end values for "IterateOnlyExistingCells" mode, and adjust if necessary - * - * @throws PHPExcel_Exception - */ - protected function adjustForExistingOnlyRange() - { - if ($this->onlyExistingCells) { - while ((!$this->subject->cellExistsByColumnAndRow($this->startColumn, $this->rowIndex)) && - ($this->startColumn <= $this->endColumn)) { - ++$this->startColumn; - } - if ($this->startColumn > $this->endColumn) { - throw new PHPExcel_Exception('No cells exist within the specified range'); - } - while ((!$this->subject->cellExistsByColumnAndRow($this->endColumn, $this->rowIndex)) && - ($this->endColumn >= $this->startColumn)) { - --$this->endColumn; - } - if ($this->endColumn < $this->startColumn) { - throw new PHPExcel_Exception('No cells exist within the specified range'); - } - } - } -} diff --git a/Utils/PHPExcel/Worksheet/RowDimension.php b/Utils/PHPExcel/Worksheet/RowDimension.php deleted file mode 100644 index c147486..0000000 --- a/Utils/PHPExcel/Worksheet/RowDimension.php +++ /dev/null @@ -1,132 +0,0 @@ -<?php - -/** - * PHPExcel_Worksheet_RowDimension - * - * Copyright (c) 2006 - 2015 PHPExcel - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - * - * @category PHPExcel - * @package PHPExcel_Worksheet - * @copyright Copyright (c) 2006 - 2015 PHPExcel (http://www.codeplex.com/PHPExcel) - * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL - * @version ##VERSION##, ##DATE## - */ -class PHPExcel_Worksheet_RowDimension extends PHPExcel_Worksheet_Dimension -{ - /** - * Row index - * - * @var int - */ - private $rowIndex; - - /** - * Row height (in pt) - * - * When this is set to a negative value, the row height should be ignored by IWriter - * - * @var double - */ - private $height = -1; - - /** - * ZeroHeight for Row? - * - * @var bool - */ - private $zeroHeight = false; - - /** - * Create a new PHPExcel_Worksheet_RowDimension - * - * @param int $pIndex Numeric row index - */ - public function __construct($pIndex = 0) - { - // Initialise values - $this->rowIndex = $pIndex; - - // set dimension as unformatted by default - parent::__construct(null); - } - - /** - * Get Row Index - * - * @return int - */ - public function getRowIndex() - { - return $this->rowIndex; - } - - /** - * Set Row Index - * - * @param int $pValue - * @return PHPExcel_Worksheet_RowDimension - */ - public function setRowIndex($pValue) - { - $this->rowIndex = $pValue; - return $this; - } - - /** - * Get Row Height - * - * @return double - */ - public function getRowHeight() - { - return $this->height; - } - - /** - * Set Row Height - * - * @param double $pValue - * @return PHPExcel_Worksheet_RowDimension - */ - public function setRowHeight($pValue = -1) - { - $this->height = $pValue; - return $this; - } - - /** - * Get ZeroHeight - * - * @return bool - */ - public function getZeroHeight() - { - return $this->zeroHeight; - } - - /** - * Set ZeroHeight - * - * @param bool $pValue - * @return PHPExcel_Worksheet_RowDimension - */ - public function setZeroHeight($pValue = false) - { - $this->zeroHeight = $pValue; - return $this; - } -} diff --git a/Utils/PHPExcel/Worksheet/RowIterator.php b/Utils/PHPExcel/Worksheet/RowIterator.php deleted file mode 100644 index 9ddb3e0..0000000 --- a/Utils/PHPExcel/Worksheet/RowIterator.php +++ /dev/null @@ -1,192 +0,0 @@ -<?php - -/** - * PHPExcel_Worksheet_RowIterator - * - * Copyright (c) 2006 - 2015 PHPExcel - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - * - * @category PHPExcel - * @package PHPExcel_Worksheet - * @copyright Copyright (c) 2006 - 2015 PHPExcel (http://www.codeplex.com/PHPExcel) - * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL - * @version ##VERSION##, ##DATE## - */ -class PHPExcel_Worksheet_RowIterator implements Iterator -{ - /** - * PHPExcel_Worksheet to iterate - * - * @var PHPExcel_Worksheet - */ - private $subject; - - /** - * Current iterator position - * - * @var int - */ - private $position = 1; - - /** - * Start position - * - * @var int - */ - private $startRow = 1; - - - /** - * End position - * - * @var int - */ - private $endRow = 1; - - - /** - * Create a new row iterator - * - * @param PHPExcel_Worksheet $subject The worksheet to iterate over - * @param integer $startRow The row number at which to start iterating - * @param integer $endRow Optionally, the row number at which to stop iterating - */ - public function __construct(PHPExcel_Worksheet $subject, $startRow = 1, $endRow = null) - { - // Set subject - $this->subject = $subject; - $this->resetEnd($endRow); - $this->resetStart($startRow); - } - - /** - * Destructor - */ - public function __destruct() - { - unset($this->subject); - } - - /** - * (Re)Set the start row and the current row pointer - * - * @param integer $startRow The row number at which to start iterating - * @return PHPExcel_Worksheet_RowIterator - * @throws PHPExcel_Exception - */ - public function resetStart($startRow = 1) - { - if ($startRow > $this->subject->getHighestRow()) { - throw new PHPExcel_Exception("Start row ({$startRow}) is beyond highest row ({$this->subject->getHighestRow()})"); - } - - $this->startRow = $startRow; - if ($this->endRow < $this->startRow) { - $this->endRow = $this->startRow; - } - $this->seek($startRow); - - return $this; - } - - /** - * (Re)Set the end row - * - * @param integer $endRow The row number at which to stop iterating - * @return PHPExcel_Worksheet_RowIterator - */ - public function resetEnd($endRow = null) - { - $this->endRow = ($endRow) ? $endRow : $this->subject->getHighestRow(); - - return $this; - } - - /** - * Set the row pointer to the selected row - * - * @param integer $row The row number to set the current pointer at - * @return PHPExcel_Worksheet_RowIterator - * @throws PHPExcel_Exception - */ - public function seek($row = 1) - { - if (($row < $this->startRow) || ($row > $this->endRow)) { - throw new PHPExcel_Exception("Row $row is out of range ({$this->startRow} - {$this->endRow})"); - } - $this->position = $row; - - return $this; - } - - /** - * Rewind the iterator to the starting row - */ - public function rewind() - { - $this->position = $this->startRow; - } - - /** - * Return the current row in this worksheet - * - * @return PHPExcel_Worksheet_Row - */ - public function current() - { - return new PHPExcel_Worksheet_Row($this->subject, $this->position); - } - - /** - * Return the current iterator key - * - * @return int - */ - public function key() - { - return $this->position; - } - - /** - * Set the iterator to its next value - */ - public function next() - { - ++$this->position; - } - - /** - * Set the iterator to its previous value - */ - public function prev() - { - if ($this->position <= $this->startRow) { - throw new PHPExcel_Exception("Row is already at the beginning of range ({$this->startRow} - {$this->endRow})"); - } - - --$this->position; - } - - /** - * Indicate if more rows exist in the worksheet range of rows that we're iterating - * - * @return boolean - */ - public function valid() - { - return $this->position <= $this->endRow; - } -} diff --git a/Utils/PHPExcel/Worksheet/SheetView.php b/Utils/PHPExcel/Worksheet/SheetView.php deleted file mode 100644 index 5aaef3b..0000000 --- a/Utils/PHPExcel/Worksheet/SheetView.php +++ /dev/null @@ -1,187 +0,0 @@ -<?php - -/** - * PHPExcel_Worksheet_SheetView - * - * Copyright (c) 2006 - 2015 PHPExcel - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - * - * @category PHPExcel - * @package PHPExcel_Worksheet - * @copyright Copyright (c) 2006 - 2015 PHPExcel (http://www.codeplex.com/PHPExcel) - * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL - * @version ##VERSION##, ##DATE## - */ -class PHPExcel_Worksheet_SheetView -{ - - /* Sheet View types */ - const SHEETVIEW_NORMAL = 'normal'; - const SHEETVIEW_PAGE_LAYOUT = 'pageLayout'; - const SHEETVIEW_PAGE_BREAK_PREVIEW = 'pageBreakPreview'; - - private static $sheetViewTypes = array( - self::SHEETVIEW_NORMAL, - self::SHEETVIEW_PAGE_LAYOUT, - self::SHEETVIEW_PAGE_BREAK_PREVIEW, - ); - - /** - * ZoomScale - * - * Valid values range from 10 to 400. - * - * @var int - */ - private $zoomScale = 100; - - /** - * ZoomScaleNormal - * - * Valid values range from 10 to 400. - * - * @var int - */ - private $zoomScaleNormal = 100; - - /** - * View - * - * Valid values range from 10 to 400. - * - * @var string - */ - private $sheetviewType = self::SHEETVIEW_NORMAL; - - /** - * Create a new PHPExcel_Worksheet_SheetView - */ - public function __construct() - { - } - - /** - * Get ZoomScale - * - * @return int - */ - public function getZoomScale() - { - return $this->zoomScale; - } - - /** - * Set ZoomScale - * - * Valid values range from 10 to 400. - * - * @param int $pValue - * @throws PHPExcel_Exception - * @return PHPExcel_Worksheet_SheetView - */ - public function setZoomScale($pValue = 100) - { - // Microsoft Office Excel 2007 only allows setting a scale between 10 and 400 via the user interface, - // but it is apparently still able to handle any scale >= 1 - if (($pValue >= 1) || is_null($pValue)) { - $this->zoomScale = $pValue; - } else { - throw new PHPExcel_Exception("Scale must be greater than or equal to 1."); - } - return $this; - } - - /** - * Get ZoomScaleNormal - * - * @return int - */ - public function getZoomScaleNormal() - { - return $this->zoomScaleNormal; - } - - /** - * Set ZoomScale - * - * Valid values range from 10 to 400. - * - * @param int $pValue - * @throws PHPExcel_Exception - * @return PHPExcel_Worksheet_SheetView - */ - public function setZoomScaleNormal($pValue = 100) - { - if (($pValue >= 1) || is_null($pValue)) { - $this->zoomScaleNormal = $pValue; - } else { - throw new PHPExcel_Exception("Scale must be greater than or equal to 1."); - } - return $this; - } - - /** - * Get View - * - * @return string - */ - public function getView() - { - return $this->sheetviewType; - } - - /** - * Set View - * - * Valid values are - * 'normal' self::SHEETVIEW_NORMAL - * 'pageLayout' self::SHEETVIEW_PAGE_LAYOUT - * 'pageBreakPreview' self::SHEETVIEW_PAGE_BREAK_PREVIEW - * - * @param string $pValue - * @throws PHPExcel_Exception - * @return PHPExcel_Worksheet_SheetView - */ - public function setView($pValue = null) - { - // MS Excel 2007 allows setting the view to 'normal', 'pageLayout' or 'pageBreakPreview' via the user interface - if ($pValue === null) { - $pValue = self::SHEETVIEW_NORMAL; - } - if (in_array($pValue, self::$sheetViewTypes)) { - $this->sheetviewType = $pValue; - } else { - throw new PHPExcel_Exception("Invalid sheetview layout type."); - } - - return $this; - } - - /** - * Implement PHP __clone to create a deep clone, not just a shallow copy. - */ - public function __clone() - { - $vars = get_object_vars($this); - foreach ($vars as $key => $value) { - if (is_object($value)) { - $this->$key = clone $value; - } else { - $this->$key = $value; - } - } - } -} diff --git a/Utils/PHPExcel/WorksheetIterator.php b/Utils/PHPExcel/WorksheetIterator.php deleted file mode 100644 index cb1b281..0000000 --- a/Utils/PHPExcel/WorksheetIterator.php +++ /dev/null @@ -1,108 +0,0 @@ -<?php - -/** - * PHPExcel_WorksheetIterator - * - * Copyright (c) 2006 - 2015 PHPExcel - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - * - * @category PHPExcel - * @package PHPExcel - * @copyright Copyright (c) 2006 - 2015 PHPExcel (http://www.codeplex.com/PHPExcel) - * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL - * @version ##VERSION##, ##DATE## - */ -class PHPExcel_WorksheetIterator implements Iterator -{ - /** - * Spreadsheet to iterate - * - * @var PHPExcel - */ - private $subject; - - /** - * Current iterator position - * - * @var int - */ - private $position = 0; - - /** - * Create a new worksheet iterator - * - * @param PHPExcel $subject - */ - public function __construct(PHPExcel $subject = null) - { - // Set subject - $this->subject = $subject; - } - - /** - * Destructor - */ - public function __destruct() - { - unset($this->subject); - } - - /** - * Rewind iterator - */ - public function rewind() - { - $this->position = 0; - } - - /** - * Current PHPExcel_Worksheet - * - * @return PHPExcel_Worksheet - */ - public function current() - { - return $this->subject->getSheet($this->position); - } - - /** - * Current key - * - * @return int - */ - public function key() - { - return $this->position; - } - - /** - * Next value - */ - public function next() - { - ++$this->position; - } - - /** - * More PHPExcel_Worksheet instances available? - * - * @return boolean - */ - public function valid() - { - return $this->position < $this->subject->getSheetCount(); - } -} diff --git a/Utils/PHPExcel/Writer/Abstract.php b/Utils/PHPExcel/Writer/Abstract.php deleted file mode 100644 index 2a797a9..0000000 --- a/Utils/PHPExcel/Writer/Abstract.php +++ /dev/null @@ -1,157 +0,0 @@ -<?php - -/** - * PHPExcel_Writer_Abstract - * - * Copyright (c) 2006 - 2015 PHPExcel - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - * - * @category PHPExcel - * @package PHPExcel_Writer - * @copyright Copyright (c) 2006 - 2015 PHPExcel (http://www.codeplex.com/PHPExcel) - * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL - * @version ##VERSION##, ##DATE## - */ -abstract class PHPExcel_Writer_Abstract implements PHPExcel_Writer_IWriter -{ - /** - * Write charts that are defined in the workbook? - * Identifies whether the Writer should write definitions for any charts that exist in the PHPExcel object; - * - * @var boolean - */ - protected $includeCharts = false; - - /** - * Pre-calculate formulas - * Forces PHPExcel to recalculate all formulae in a workbook when saving, so that the pre-calculated values are - * immediately available to MS Excel or other office spreadsheet viewer when opening the file - * - * @var boolean - */ - protected $preCalculateFormulas = true; - - /** - * Use disk caching where possible? - * - * @var boolean - */ - protected $_useDiskCaching = false; - - /** - * Disk caching directory - * - * @var string - */ - protected $_diskCachingDirectory = './'; - - /** - * Write charts in workbook? - * If this is true, then the Writer will write definitions for any charts that exist in the PHPExcel object. - * If false (the default) it will ignore any charts defined in the PHPExcel object. - * - * @return boolean - */ - public function getIncludeCharts() - { - return $this->includeCharts; - } - - /** - * Set write charts in workbook - * Set to true, to advise the Writer to include any charts that exist in the PHPExcel object. - * Set to false (the default) to ignore charts. - * - * @param boolean $pValue - * @return PHPExcel_Writer_IWriter - */ - public function setIncludeCharts($pValue = false) - { - $this->includeCharts = (boolean) $pValue; - return $this; - } - - /** - * Get Pre-Calculate Formulas flag - * If this is true (the default), then the writer will recalculate all formulae in a workbook when saving, - * so that the pre-calculated values are immediately available to MS Excel or other office spreadsheet - * viewer when opening the file - * If false, then formulae are not calculated on save. This is faster for saving in PHPExcel, but slower - * when opening the resulting file in MS Excel, because Excel has to recalculate the formulae itself - * - * @return boolean - */ - public function getPreCalculateFormulas() - { - return $this->preCalculateFormulas; - } - - /** - * Set Pre-Calculate Formulas - * Set to true (the default) to advise the Writer to calculate all formulae on save - * Set to false to prevent precalculation of formulae on save. - * - * @param boolean $pValue Pre-Calculate Formulas? - * @return PHPExcel_Writer_IWriter - */ - public function setPreCalculateFormulas($pValue = true) - { - $this->preCalculateFormulas = (boolean) $pValue; - return $this; - } - - /** - * Get use disk caching where possible? - * - * @return boolean - */ - public function getUseDiskCaching() - { - return $this->_useDiskCaching; - } - - /** - * Set use disk caching where possible? - * - * @param boolean $pValue - * @param string $pDirectory Disk caching directory - * @throws PHPExcel_Writer_Exception when directory does not exist - * @return PHPExcel_Writer_Excel2007 - */ - public function setUseDiskCaching($pValue = false, $pDirectory = null) - { - $this->_useDiskCaching = $pValue; - - if ($pDirectory !== null) { - if (is_dir($pDirectory)) { - $this->_diskCachingDirectory = $pDirectory; - } else { - throw new PHPExcel_Writer_Exception("Directory does not exist: $pDirectory"); - } - } - return $this; - } - - /** - * Get disk caching directory - * - * @return string - */ - public function getDiskCachingDirectory() - { - return $this->_diskCachingDirectory; - } -} diff --git a/Utils/PHPExcel/Writer/CSV.php b/Utils/PHPExcel/Writer/CSV.php deleted file mode 100644 index 3b4ea95..0000000 --- a/Utils/PHPExcel/Writer/CSV.php +++ /dev/null @@ -1,317 +0,0 @@ -<?php - -/** - * PHPExcel_Writer_CSV - * - * Copyright (c) 2006 - 2015 PHPExcel - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - * - * @category PHPExcel - * @package PHPExcel_Writer_CSV - * @copyright Copyright (c) 2006 - 2015 PHPExcel (http://www.codeplex.com/PHPExcel) - * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL - * @version ##VERSION##, ##DATE## - */ -class PHPExcel_Writer_CSV extends PHPExcel_Writer_Abstract implements PHPExcel_Writer_IWriter -{ - /** - * PHPExcel object - * - * @var PHPExcel - */ - private $phpExcel; - - /** - * Delimiter - * - * @var string - */ - private $delimiter = ','; - - /** - * Enclosure - * - * @var string - */ - private $enclosure = '"'; - - /** - * Line ending - * - * @var string - */ - private $lineEnding = PHP_EOL; - - /** - * Sheet index to write - * - * @var int - */ - private $sheetIndex = 0; - - /** - * Whether to write a BOM (for UTF8). - * - * @var boolean - */ - private $useBOM = false; - - /** - * Whether to write a fully Excel compatible CSV file. - * - * @var boolean - */ - private $excelCompatibility = false; - - /** - * Create a new PHPExcel_Writer_CSV - * - * @param PHPExcel $phpExcel PHPExcel object - */ - public function __construct(PHPExcel $phpExcel) - { - $this->phpExcel = $phpExcel; - } - - /** - * Save PHPExcel to file - * - * @param string $pFilename - * @throws PHPExcel_Writer_Exception - */ - public function save($pFilename = null) - { - // Fetch sheet - $sheet = $this->phpExcel->getSheet($this->sheetIndex); - - $saveDebugLog = PHPExcel_Calculation::getInstance($this->phpExcel)->getDebugLog()->getWriteDebugLog(); - PHPExcel_Calculation::getInstance($this->phpExcel)->getDebugLog()->setWriteDebugLog(false); - $saveArrayReturnType = PHPExcel_Calculation::getArrayReturnType(); - PHPExcel_Calculation::setArrayReturnType(PHPExcel_Calculation::RETURN_ARRAY_AS_VALUE); - - // Open file - $fileHandle = fopen($pFilename, 'wb+'); - if ($fileHandle === false) { - throw new PHPExcel_Writer_Exception("Could not open file $pFilename for writing."); - } - - if ($this->excelCompatibility) { - fwrite($fileHandle, "\xEF\xBB\xBF"); // Enforce UTF-8 BOM Header - $this->setEnclosure('"'); // Set enclosure to " - $this->setDelimiter(";"); // Set delimiter to a semi-colon - $this->setLineEnding("\r\n"); - fwrite($fileHandle, 'sep=' . $this->getDelimiter() . $this->lineEnding); - } elseif ($this->useBOM) { - // Write the UTF-8 BOM code if required - fwrite($fileHandle, "\xEF\xBB\xBF"); - } - - // Identify the range that we need to extract from the worksheet - $maxCol = $sheet->getHighestDataColumn(); - $maxRow = $sheet->getHighestDataRow(); - - // Write rows to file - for ($row = 1; $row <= $maxRow; ++$row) { - // Convert the row to an array... - $cellsArray = $sheet->rangeToArray('A'.$row.':'.$maxCol.$row, '', $this->preCalculateFormulas); - // ... and write to the file - $this->writeLine($fileHandle, $cellsArray[0]); - } - - // Close file - fclose($fileHandle); - - PHPExcel_Calculation::setArrayReturnType($saveArrayReturnType); - PHPExcel_Calculation::getInstance($this->phpExcel)->getDebugLog()->setWriteDebugLog($saveDebugLog); - } - - /** - * Get delimiter - * - * @return string - */ - public function getDelimiter() - { - return $this->delimiter; - } - - /** - * Set delimiter - * - * @param string $pValue Delimiter, defaults to , - * @return PHPExcel_Writer_CSV - */ - public function setDelimiter($pValue = ',') - { - $this->delimiter = $pValue; - return $this; - } - - /** - * Write line to CSV file - * - * @param mixed $pFileHandle PHP filehandle - * @param array $pValues Array containing values in a row - * @throws PHPExcel_Writer_Exception - */ - private function writeLine($pFileHandle = null, $pValues = null) - { - if (is_array($pValues)) { - // No leading delimiter - $writeDelimiter = false; - - // Build the line - $line = ''; - - foreach ($pValues as $element) { - // Escape enclosures - $element = str_replace($this->enclosure, $this->enclosure . $this->enclosure, $element); - - // Add delimiter - if ($writeDelimiter) { - $line .= $this->delimiter; - } else { - $writeDelimiter = true; - } - - // Add enclosed string - $line .= $this->enclosure . $element . $this->enclosure; - } - - // Add line ending - $line .= $this->lineEnding; - - // Write to file - fwrite($pFileHandle, $line); - } else { - throw new PHPExcel_Writer_Exception("Invalid data row passed to CSV writer."); - } - } - - /** - * Get enclosure - * - * @return string - */ - public function getEnclosure() - { - return $this->enclosure; - } - - /** - * Set enclosure - * - * @param string $pValue Enclosure, defaults to " - * @return PHPExcel_Writer_CSV - */ - public function setEnclosure($pValue = '"') - { - if ($pValue == '') { - $pValue = null; - } - $this->enclosure = $pValue; - return $this; - } - - /** - * Get line ending - * - * @return string - */ - public function getLineEnding() - { - return $this->lineEnding; - } - - /** - * Set line ending - * - * @param string $pValue Line ending, defaults to OS line ending (PHP_EOL) - * @return PHPExcel_Writer_CSV - */ - public function setLineEnding($pValue = PHP_EOL) - { - $this->lineEnding = $pValue; - return $this; - } - - /** - * Get whether BOM should be used - * - * @return boolean - */ - public function getUseBOM() - { - return $this->useBOM; - } - - /** - * Set whether BOM should be used - * - * @param boolean $pValue Use UTF-8 byte-order mark? Defaults to false - * @return PHPExcel_Writer_CSV - */ - public function setUseBOM($pValue = false) - { - $this->useBOM = $pValue; - return $this; - } - - /** - * Get whether the file should be saved with full Excel Compatibility - * - * @return boolean - */ - public function getExcelCompatibility() - { - return $this->excelCompatibility; - } - - /** - * Set whether the file should be saved with full Excel Compatibility - * - * @param boolean $pValue Set the file to be written as a fully Excel compatible csv file - * Note that this overrides other settings such as useBOM, enclosure and delimiter - * @return PHPExcel_Writer_CSV - */ - public function setExcelCompatibility($pValue = false) - { - $this->excelCompatibility = $pValue; - return $this; - } - - /** - * Get sheet index - * - * @return int - */ - public function getSheetIndex() - { - return $this->sheetIndex; - } - - /** - * Set sheet index - * - * @param int $pValue Sheet index - * @return PHPExcel_Writer_CSV - */ - public function setSheetIndex($pValue = 0) - { - $this->sheetIndex = $pValue; - return $this; - } -} diff --git a/Utils/PHPExcel/Writer/Excel2007.php b/Utils/PHPExcel/Writer/Excel2007.php deleted file mode 100644 index 11d354b..0000000 --- a/Utils/PHPExcel/Writer/Excel2007.php +++ /dev/null @@ -1,533 +0,0 @@ -<?php - -/** - * PHPExcel_Writer_Excel2007 - * - * Copyright (c) 2006 - 2015 PHPExcel - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - * - * @category PHPExcel - * @package PHPExcel_Writer_Excel2007 - * @copyright Copyright (c) 2006 - 2015 PHPExcel (http://www.codeplex.com/PHPExcel) - * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL - * @version ##VERSION##, ##DATE## - */ -class PHPExcel_Writer_Excel2007 extends PHPExcel_Writer_Abstract implements PHPExcel_Writer_IWriter -{ - /** - * Pre-calculate formulas - * Forces PHPExcel to recalculate all formulae in a workbook when saving, so that the pre-calculated values are - * immediately available to MS Excel or other office spreadsheet viewer when opening the file - * - * Overrides the default TRUE for this specific writer for performance reasons - * - * @var boolean - */ - protected $preCalculateFormulas = false; - - /** - * Office2003 compatibility - * - * @var boolean - */ - private $office2003compatibility = false; - - /** - * Private writer parts - * - * @var PHPExcel_Writer_Excel2007_WriterPart[] - */ - private $writerParts = array(); - - /** - * Private PHPExcel - * - * @var PHPExcel - */ - private $spreadSheet; - - /** - * Private string table - * - * @var string[] - */ - private $stringTable = array(); - - /** - * Private unique PHPExcel_Style_Conditional HashTable - * - * @var PHPExcel_HashTable - */ - private $stylesConditionalHashTable; - - /** - * Private unique PHPExcel_Style HashTable - * - * @var PHPExcel_HashTable - */ - private $styleHashTable; - - /** - * Private unique PHPExcel_Style_Fill HashTable - * - * @var PHPExcel_HashTable - */ - private $fillHashTable; - - /** - * Private unique PHPExcel_Style_Font HashTable - * - * @var PHPExcel_HashTable - */ - private $fontHashTable; - - /** - * Private unique PHPExcel_Style_Borders HashTable - * - * @var PHPExcel_HashTable - */ - private $bordersHashTable ; - - /** - * Private unique PHPExcel_Style_NumberFormat HashTable - * - * @var PHPExcel_HashTable - */ - private $numFmtHashTable; - - /** - * Private unique PHPExcel_Worksheet_BaseDrawing HashTable - * - * @var PHPExcel_HashTable - */ - private $drawingHashTable; - - /** - * Create a new PHPExcel_Writer_Excel2007 - * - * @param PHPExcel $pPHPExcel - */ - public function __construct(PHPExcel $pPHPExcel = null) - { - // Assign PHPExcel - $this->setPHPExcel($pPHPExcel); - - $writerPartsArray = array( 'stringtable' => 'PHPExcel_Writer_Excel2007_StringTable', - 'contenttypes' => 'PHPExcel_Writer_Excel2007_ContentTypes', - 'docprops' => 'PHPExcel_Writer_Excel2007_DocProps', - 'rels' => 'PHPExcel_Writer_Excel2007_Rels', - 'theme' => 'PHPExcel_Writer_Excel2007_Theme', - 'style' => 'PHPExcel_Writer_Excel2007_Style', - 'workbook' => 'PHPExcel_Writer_Excel2007_Workbook', - 'worksheet' => 'PHPExcel_Writer_Excel2007_Worksheet', - 'drawing' => 'PHPExcel_Writer_Excel2007_Drawing', - 'comments' => 'PHPExcel_Writer_Excel2007_Comments', - 'chart' => 'PHPExcel_Writer_Excel2007_Chart', - 'relsvba' => 'PHPExcel_Writer_Excel2007_RelsVBA', - 'relsribbonobjects' => 'PHPExcel_Writer_Excel2007_RelsRibbon' - ); - - // Initialise writer parts - // and Assign their parent IWriters - foreach ($writerPartsArray as $writer => $class) { - $this->writerParts[$writer] = new $class($this); - } - - $hashTablesArray = array( 'stylesConditionalHashTable', 'fillHashTable', 'fontHashTable', - 'bordersHashTable', 'numFmtHashTable', 'drawingHashTable', - 'styleHashTable' - ); - - // Set HashTable variables - foreach ($hashTablesArray as $tableName) { - $this->$tableName = new PHPExcel_HashTable(); - } - } - - /** - * Get writer part - * - * @param string $pPartName Writer part name - * @return PHPExcel_Writer_Excel2007_WriterPart - */ - public function getWriterPart($pPartName = '') - { - if ($pPartName != '' && isset($this->writerParts[strtolower($pPartName)])) { - return $this->writerParts[strtolower($pPartName)]; - } else { - return null; - } - } - - /** - * Save PHPExcel to file - * - * @param string $pFilename - * @throws PHPExcel_Writer_Exception - */ - public function save($pFilename = null) - { - if ($this->spreadSheet !== null) { - // garbage collect - $this->spreadSheet->garbageCollect(); - - // If $pFilename is php://output or php://stdout, make it a temporary file... - $originalFilename = $pFilename; - if (strtolower($pFilename) == 'php://output' || strtolower($pFilename) == 'php://stdout') { - $pFilename = @tempnam(PHPExcel_Shared_File::sys_get_temp_dir(), 'phpxltmp'); - if ($pFilename == '') { - $pFilename = $originalFilename; - } - } - - $saveDebugLog = PHPExcel_Calculation::getInstance($this->spreadSheet)->getDebugLog()->getWriteDebugLog(); - PHPExcel_Calculation::getInstance($this->spreadSheet)->getDebugLog()->setWriteDebugLog(false); - $saveDateReturnType = PHPExcel_Calculation_Functions::getReturnDateType(); - PHPExcel_Calculation_Functions::setReturnDateType(PHPExcel_Calculation_Functions::RETURNDATE_EXCEL); - - // Create string lookup table - $this->stringTable = array(); - for ($i = 0; $i < $this->spreadSheet->getSheetCount(); ++$i) { - $this->stringTable = $this->getWriterPart('StringTable')->createStringTable($this->spreadSheet->getSheet($i), $this->stringTable); - } - - // Create styles dictionaries - $this->styleHashTable->addFromSource($this->getWriterPart('Style')->allStyles($this->spreadSheet)); - $this->stylesConditionalHashTable->addFromSource($this->getWriterPart('Style')->allConditionalStyles($this->spreadSheet)); - $this->fillHashTable->addFromSource($this->getWriterPart('Style')->allFills($this->spreadSheet)); - $this->fontHashTable->addFromSource($this->getWriterPart('Style')->allFonts($this->spreadSheet)); - $this->bordersHashTable->addFromSource($this->getWriterPart('Style')->allBorders($this->spreadSheet)); - $this->numFmtHashTable->addFromSource($this->getWriterPart('Style')->allNumberFormats($this->spreadSheet)); - - // Create drawing dictionary - $this->drawingHashTable->addFromSource($this->getWriterPart('Drawing')->allDrawings($this->spreadSheet)); - - // Create new ZIP file and open it for writing - $zipClass = PHPExcel_Settings::getZipClass(); - $objZip = new $zipClass(); - - // Retrieve OVERWRITE and CREATE constants from the instantiated zip class - // This method of accessing constant values from a dynamic class should work with all appropriate versions of PHP - $ro = new ReflectionObject($objZip); - $zipOverWrite = $ro->getConstant('OVERWRITE'); - $zipCreate = $ro->getConstant('CREATE'); - - if (file_exists($pFilename)) { - unlink($pFilename); - } - // Try opening the ZIP file - if ($objZip->open($pFilename, $zipOverWrite) !== true) { - if ($objZip->open($pFilename, $zipCreate) !== true) { - throw new PHPExcel_Writer_Exception("Could not open " . $pFilename . " for writing."); - } - } - - // Add [Content_Types].xml to ZIP file - $objZip->addFromString('[Content_Types].xml', $this->getWriterPart('ContentTypes')->writeContentTypes($this->spreadSheet, $this->includeCharts)); - - //if hasMacros, add the vbaProject.bin file, Certificate file(if exists) - if ($this->spreadSheet->hasMacros()) { - $macrosCode=$this->spreadSheet->getMacrosCode(); - if (!is_null($macrosCode)) {// we have the code ? - $objZip->addFromString('xl/vbaProject.bin', $macrosCode);//allways in 'xl', allways named vbaProject.bin - if ($this->spreadSheet->hasMacrosCertificate()) {//signed macros ? - // Yes : add the certificate file and the related rels file - $objZip->addFromString('xl/vbaProjectSignature.bin', $this->spreadSheet->getMacrosCertificate()); - $objZip->addFromString('xl/_rels/vbaProject.bin.rels', $this->getWriterPart('RelsVBA')->writeVBARelationships($this->spreadSheet)); - } - } - } - //a custom UI in this workbook ? add it ("base" xml and additional objects (pictures) and rels) - if ($this->spreadSheet->hasRibbon()) { - $tmpRibbonTarget=$this->spreadSheet->getRibbonXMLData('target'); - $objZip->addFromString($tmpRibbonTarget, $this->spreadSheet->getRibbonXMLData('data')); - if ($this->spreadSheet->hasRibbonBinObjects()) { - $tmpRootPath=dirname($tmpRibbonTarget).'/'; - $ribbonBinObjects=$this->spreadSheet->getRibbonBinObjects('data');//the files to write - foreach ($ribbonBinObjects as $aPath => $aContent) { - $objZip->addFromString($tmpRootPath.$aPath, $aContent); - } - //the rels for files - $objZip->addFromString($tmpRootPath.'_rels/'.basename($tmpRibbonTarget).'.rels', $this->getWriterPart('RelsRibbonObjects')->writeRibbonRelationships($this->spreadSheet)); - } - } - - // Add relationships to ZIP file - $objZip->addFromString('_rels/.rels', $this->getWriterPart('Rels')->writeRelationships($this->spreadSheet)); - $objZip->addFromString('xl/_rels/workbook.xml.rels', $this->getWriterPart('Rels')->writeWorkbookRelationships($this->spreadSheet)); - - // Add document properties to ZIP file - $objZip->addFromString('docProps/app.xml', $this->getWriterPart('DocProps')->writeDocPropsApp($this->spreadSheet)); - $objZip->addFromString('docProps/core.xml', $this->getWriterPart('DocProps')->writeDocPropsCore($this->spreadSheet)); - $customPropertiesPart = $this->getWriterPart('DocProps')->writeDocPropsCustom($this->spreadSheet); - if ($customPropertiesPart !== null) { - $objZip->addFromString('docProps/custom.xml', $customPropertiesPart); - } - - // Add theme to ZIP file - $objZip->addFromString('xl/theme/theme1.xml', $this->getWriterPart('Theme')->writeTheme($this->spreadSheet)); - - // Add string table to ZIP file - $objZip->addFromString('xl/sharedStrings.xml', $this->getWriterPart('StringTable')->writeStringTable($this->stringTable)); - - // Add styles to ZIP file - $objZip->addFromString('xl/styles.xml', $this->getWriterPart('Style')->writeStyles($this->spreadSheet)); - - // Add workbook to ZIP file - $objZip->addFromString('xl/workbook.xml', $this->getWriterPart('Workbook')->writeWorkbook($this->spreadSheet, $this->preCalculateFormulas)); - - $chartCount = 0; - // Add worksheets - for ($i = 0; $i < $this->spreadSheet->getSheetCount(); ++$i) { - $objZip->addFromString('xl/worksheets/sheet' . ($i + 1) . '.xml', $this->getWriterPart('Worksheet')->writeWorksheet($this->spreadSheet->getSheet($i), $this->stringTable, $this->includeCharts)); - if ($this->includeCharts) { - $charts = $this->spreadSheet->getSheet($i)->getChartCollection(); - if (count($charts) > 0) { - foreach ($charts as $chart) { - $objZip->addFromString('xl/charts/chart' . ($chartCount + 1) . '.xml', $this->getWriterPart('Chart')->writeChart($chart, $this->preCalculateFormulas)); - $chartCount++; - } - } - } - } - - $chartRef1 = $chartRef2 = 0; - // Add worksheet relationships (drawings, ...) - for ($i = 0; $i < $this->spreadSheet->getSheetCount(); ++$i) { - // Add relationships - $objZip->addFromString('xl/worksheets/_rels/sheet' . ($i + 1) . '.xml.rels', $this->getWriterPart('Rels')->writeWorksheetRelationships($this->spreadSheet->getSheet($i), ($i + 1), $this->includeCharts)); - - $drawings = $this->spreadSheet->getSheet($i)->getDrawingCollection(); - $drawingCount = count($drawings); - if ($this->includeCharts) { - $chartCount = $this->spreadSheet->getSheet($i)->getChartCount(); - } - - // Add drawing and image relationship parts - if (($drawingCount > 0) || ($chartCount > 0)) { - // Drawing relationships - $objZip->addFromString('xl/drawings/_rels/drawing' . ($i + 1) . '.xml.rels', $this->getWriterPart('Rels')->writeDrawingRelationships($this->spreadSheet->getSheet($i), $chartRef1, $this->includeCharts)); - - // Drawings - $objZip->addFromString('xl/drawings/drawing' . ($i + 1) . '.xml', $this->getWriterPart('Drawing')->writeDrawings($this->spreadSheet->getSheet($i), $chartRef2, $this->includeCharts)); - } - - // Add comment relationship parts - if (count($this->spreadSheet->getSheet($i)->getComments()) > 0) { - // VML Comments - $objZip->addFromString('xl/drawings/vmlDrawing' . ($i + 1) . '.vml', $this->getWriterPart('Comments')->writeVMLComments($this->spreadSheet->getSheet($i))); - - // Comments - $objZip->addFromString('xl/comments' . ($i + 1) . '.xml', $this->getWriterPart('Comments')->writeComments($this->spreadSheet->getSheet($i))); - } - - // Add header/footer relationship parts - if (count($this->spreadSheet->getSheet($i)->getHeaderFooter()->getImages()) > 0) { - // VML Drawings - $objZip->addFromString('xl/drawings/vmlDrawingHF' . ($i + 1) . '.vml', $this->getWriterPart('Drawing')->writeVMLHeaderFooterImages($this->spreadSheet->getSheet($i))); - - // VML Drawing relationships - $objZip->addFromString('xl/drawings/_rels/vmlDrawingHF' . ($i + 1) . '.vml.rels', $this->getWriterPart('Rels')->writeHeaderFooterDrawingRelationships($this->spreadSheet->getSheet($i))); - - // Media - foreach ($this->spreadSheet->getSheet($i)->getHeaderFooter()->getImages() as $image) { - $objZip->addFromString('xl/media/' . $image->getIndexedFilename(), file_get_contents($image->getPath())); - } - } - } - - // Add media - for ($i = 0; $i < $this->getDrawingHashTable()->count(); ++$i) { - if ($this->getDrawingHashTable()->getByIndex($i) instanceof PHPExcel_Worksheet_Drawing) { - $imageContents = null; - $imagePath = $this->getDrawingHashTable()->getByIndex($i)->getPath(); - if (strpos($imagePath, 'zip://') !== false) { - $imagePath = substr($imagePath, 6); - $imagePathSplitted = explode('#', $imagePath); - - $imageZip = new ZipArchive(); - $imageZip->open($imagePathSplitted[0]); - $imageContents = $imageZip->getFromName($imagePathSplitted[1]); - $imageZip->close(); - unset($imageZip); - } else { - $imageContents = file_get_contents($imagePath); - } - - $objZip->addFromString('xl/media/' . str_replace(' ', '_', $this->getDrawingHashTable()->getByIndex($i)->getIndexedFilename()), $imageContents); - } elseif ($this->getDrawingHashTable()->getByIndex($i) instanceof PHPExcel_Worksheet_MemoryDrawing) { - ob_start(); - call_user_func( - $this->getDrawingHashTable()->getByIndex($i)->getRenderingFunction(), - $this->getDrawingHashTable()->getByIndex($i)->getImageResource() - ); - $imageContents = ob_get_contents(); - ob_end_clean(); - - $objZip->addFromString('xl/media/' . str_replace(' ', '_', $this->getDrawingHashTable()->getByIndex($i)->getIndexedFilename()), $imageContents); - } - } - - PHPExcel_Calculation_Functions::setReturnDateType($saveDateReturnType); - PHPExcel_Calculation::getInstance($this->spreadSheet)->getDebugLog()->setWriteDebugLog($saveDebugLog); - - // Close file - if ($objZip->close() === false) { - throw new PHPExcel_Writer_Exception("Could not close zip file $pFilename."); - } - - // If a temporary file was used, copy it to the correct file stream - if ($originalFilename != $pFilename) { - if (copy($pFilename, $originalFilename) === false) { - throw new PHPExcel_Writer_Exception("Could not copy temporary zip file $pFilename to $originalFilename."); - } - @unlink($pFilename); - } - } else { - throw new PHPExcel_Writer_Exception("PHPExcel object unassigned."); - } - } - - /** - * Get PHPExcel object - * - * @return PHPExcel - * @throws PHPExcel_Writer_Exception - */ - public function getPHPExcel() - { - if ($this->spreadSheet !== null) { - return $this->spreadSheet; - } else { - throw new PHPExcel_Writer_Exception("No PHPExcel object assigned."); - } - } - - /** - * Set PHPExcel object - * - * @param PHPExcel $pPHPExcel PHPExcel object - * @throws PHPExcel_Writer_Exception - * @return PHPExcel_Writer_Excel2007 - */ - public function setPHPExcel(PHPExcel $pPHPExcel = null) - { - $this->spreadSheet = $pPHPExcel; - return $this; - } - - /** - * Get string table - * - * @return string[] - */ - public function getStringTable() - { - return $this->stringTable; - } - - /** - * Get PHPExcel_Style HashTable - * - * @return PHPExcel_HashTable - */ - public function getStyleHashTable() - { - return $this->styleHashTable; - } - - /** - * Get PHPExcel_Style_Conditional HashTable - * - * @return PHPExcel_HashTable - */ - public function getStylesConditionalHashTable() - { - return $this->stylesConditionalHashTable; - } - - /** - * Get PHPExcel_Style_Fill HashTable - * - * @return PHPExcel_HashTable - */ - public function getFillHashTable() - { - return $this->fillHashTable; - } - - /** - * Get PHPExcel_Style_Font HashTable - * - * @return PHPExcel_HashTable - */ - public function getFontHashTable() - { - return $this->fontHashTable; - } - - /** - * Get PHPExcel_Style_Borders HashTable - * - * @return PHPExcel_HashTable - */ - public function getBordersHashTable() - { - return $this->bordersHashTable; - } - - /** - * Get PHPExcel_Style_NumberFormat HashTable - * - * @return PHPExcel_HashTable - */ - public function getNumFmtHashTable() - { - return $this->numFmtHashTable; - } - - /** - * Get PHPExcel_Worksheet_BaseDrawing HashTable - * - * @return PHPExcel_HashTable - */ - public function getDrawingHashTable() - { - return $this->drawingHashTable; - } - - /** - * Get Office2003 compatibility - * - * @return boolean - */ - public function getOffice2003Compatibility() - { - return $this->office2003compatibility; - } - - /** - * Set Office2003 compatibility - * - * @param boolean $pValue Office2003 compatibility? - * @return PHPExcel_Writer_Excel2007 - */ - public function setOffice2003Compatibility($pValue = false) - { - $this->office2003compatibility = $pValue; - return $this; - } -} diff --git a/Utils/PHPExcel/Writer/Excel2007/Chart.php b/Utils/PHPExcel/Writer/Excel2007/Chart.php deleted file mode 100644 index c0f86bf..0000000 --- a/Utils/PHPExcel/Writer/Excel2007/Chart.php +++ /dev/null @@ -1,1518 +0,0 @@ -<?php - -/** - * PHPExcel_Writer_Excel2007_Chart - * - * Copyright (c) 2006 - 2015 PHPExcel - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - * - * @category PHPExcel - * @package PHPExcel_Writer_Excel2007 - * @copyright Copyright (c) 2006 - 2015 PHPExcel (http://www.codeplex.com/PHPExcel) - * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL - * @version ##VERSION##, ##DATE## - */ -class PHPExcel_Writer_Excel2007_Chart extends PHPExcel_Writer_Excel2007_WriterPart -{ - protected $calculateCellValues; - - /** - * Write charts to XML format - * - * @param PHPExcel_Chart $pChart - * - * @return string XML Output - * @throws PHPExcel_Writer_Exception - */ - public function writeChart(PHPExcel_Chart $pChart = null, $calculateCellValues = true) - { - $this->calculateCellValues = $calculateCellValues; - - // Create XML writer - $objWriter = null; - if ($this->getParentWriter()->getUseDiskCaching()) { - $objWriter = new PHPExcel_Shared_XMLWriter(PHPExcel_Shared_XMLWriter::STORAGE_DISK, $this->getParentWriter()->getDiskCachingDirectory()); - } else { - $objWriter = new PHPExcel_Shared_XMLWriter(PHPExcel_Shared_XMLWriter::STORAGE_MEMORY); - } - // Ensure that data series values are up-to-date before we save - if ($this->calculateCellValues) { - $pChart->refresh(); - } - - // XML header - $objWriter->startDocument('1.0', 'UTF-8', 'yes'); - - // c:chartSpace - $objWriter->startElement('c:chartSpace'); - $objWriter->writeAttribute('xmlns:c', 'http://schemas.openxmlformats.org/drawingml/2006/chart'); - $objWriter->writeAttribute('xmlns:a', 'http://schemas.openxmlformats.org/drawingml/2006/main'); - $objWriter->writeAttribute('xmlns:r', 'http://schemas.openxmlformats.org/officeDocument/2006/relationships'); - - $objWriter->startElement('c:date1904'); - $objWriter->writeAttribute('val', 0); - $objWriter->endElement(); - $objWriter->startElement('c:lang'); - $objWriter->writeAttribute('val', "en-GB"); - $objWriter->endElement(); - $objWriter->startElement('c:roundedCorners'); - $objWriter->writeAttribute('val', 0); - $objWriter->endElement(); - - $this->writeAlternateContent($objWriter); - - $objWriter->startElement('c:chart'); - - $this->writeTitle($pChart->getTitle(), $objWriter); - - $objWriter->startElement('c:autoTitleDeleted'); - $objWriter->writeAttribute('val', 0); - $objWriter->endElement(); - - $this->writePlotArea($pChart->getPlotArea(), $pChart->getXAxisLabel(), $pChart->getYAxisLabel(), $objWriter, $pChart->getWorksheet(), $pChart->getChartAxisX(), $pChart->getChartAxisY(), $pChart->getMajorGridlines(), $pChart->getMinorGridlines()); - - $this->writeLegend($pChart->getLegend(), $objWriter); - - $objWriter->startElement('c:plotVisOnly'); - $objWriter->writeAttribute('val', 1); - $objWriter->endElement(); - - $objWriter->startElement('c:dispBlanksAs'); - $objWriter->writeAttribute('val', "gap"); - $objWriter->endElement(); - - $objWriter->startElement('c:showDLblsOverMax'); - $objWriter->writeAttribute('val', 0); - $objWriter->endElement(); - - $objWriter->endElement(); - - $this->writePrintSettings($objWriter); - - $objWriter->endElement(); - - // Return - return $objWriter->getData(); - } - - /** - * Write Chart Title - * - * @param PHPExcel_Chart_Title $title - * @param PHPExcel_Shared_XMLWriter $objWriter XML Writer - * - * @throws PHPExcel_Writer_Exception - */ - private function writeTitle(PHPExcel_Chart_Title $title = null, $objWriter) - { - if (is_null($title)) { - return; - } - - $objWriter->startElement('c:title'); - $objWriter->startElement('c:tx'); - $objWriter->startElement('c:rich'); - - $objWriter->startElement('a:bodyPr'); - $objWriter->endElement(); - - $objWriter->startElement('a:lstStyle'); - $objWriter->endElement(); - - $objWriter->startElement('a:p'); - - $caption = $title->getCaption(); - if ((is_array($caption)) && (count($caption) > 0)) { - $caption = $caption[0]; - } - $this->getParentWriter()->getWriterPart('stringtable')->writeRichTextForCharts($objWriter, $caption, 'a'); - - $objWriter->endElement(); - $objWriter->endElement(); - $objWriter->endElement(); - - $this->writeLayout($title->getLayout(), $objWriter); - - $objWriter->startElement('c:overlay'); - $objWriter->writeAttribute('val', 0); - $objWriter->endElement(); - - $objWriter->endElement(); - } - - /** - * Write Chart Legend - * - * @param PHPExcel_Chart_Legend $legend - * @param PHPExcel_Shared_XMLWriter $objWriter XML Writer - * - * @throws PHPExcel_Writer_Exception - */ - private function writeLegend(PHPExcel_Chart_Legend $legend = null, $objWriter) - { - if (is_null($legend)) { - return; - } - - $objWriter->startElement('c:legend'); - - $objWriter->startElement('c:legendPos'); - $objWriter->writeAttribute('val', $legend->getPosition()); - $objWriter->endElement(); - - $this->writeLayout($legend->getLayout(), $objWriter); - - $objWriter->startElement('c:overlay'); - $objWriter->writeAttribute('val', ($legend->getOverlay()) ? '1' : '0'); - $objWriter->endElement(); - - $objWriter->startElement('c:txPr'); - $objWriter->startElement('a:bodyPr'); - $objWriter->endElement(); - - $objWriter->startElement('a:lstStyle'); - $objWriter->endElement(); - - $objWriter->startElement('a:p'); - $objWriter->startElement('a:pPr'); - $objWriter->writeAttribute('rtl', 0); - - $objWriter->startElement('a:defRPr'); - $objWriter->endElement(); - $objWriter->endElement(); - - $objWriter->startElement('a:endParaRPr'); - $objWriter->writeAttribute('lang', "en-US"); - $objWriter->endElement(); - - $objWriter->endElement(); - $objWriter->endElement(); - - $objWriter->endElement(); - } - - /** - * Write Chart Plot Area - * - * @param PHPExcel_Chart_PlotArea $plotArea - * @param PHPExcel_Chart_Title $xAxisLabel - * @param PHPExcel_Chart_Title $yAxisLabel - * @param PHPExcel_Chart_Axis $xAxis - * @param PHPExcel_Chart_Axis $yAxis - * @param PHPExcel_Shared_XMLWriter $objWriter XML Writer - * - * @throws PHPExcel_Writer_Exception - */ - private function writePlotArea(PHPExcel_Chart_PlotArea $plotArea, PHPExcel_Chart_Title $xAxisLabel = null, PHPExcel_Chart_Title $yAxisLabel = null, $objWriter, PHPExcel_Worksheet $pSheet, PHPExcel_Chart_Axis $xAxis, PHPExcel_Chart_Axis $yAxis, PHPExcel_Chart_GridLines $majorGridlines, PHPExcel_Chart_GridLines $minorGridlines) - { - if (is_null($plotArea)) { - return; - } - - $id1 = $id2 = 0; - $this->_seriesIndex = 0; - $objWriter->startElement('c:plotArea'); - - $layout = $plotArea->getLayout(); - - $this->writeLayout($layout, $objWriter); - - $chartTypes = self::getChartType($plotArea); - $catIsMultiLevelSeries = $valIsMultiLevelSeries = false; - $plotGroupingType = ''; - foreach ($chartTypes as $chartType) { - $objWriter->startElement('c:' . $chartType); - - $groupCount = $plotArea->getPlotGroupCount(); - for ($i = 0; $i < $groupCount; ++$i) { - $plotGroup = $plotArea->getPlotGroupByIndex($i); - $groupType = $plotGroup->getPlotType(); - if ($groupType == $chartType) { - $plotStyle = $plotGroup->getPlotStyle(); - if ($groupType === PHPExcel_Chart_DataSeries::TYPE_RADARCHART) { - $objWriter->startElement('c:radarStyle'); - $objWriter->writeAttribute('val', $plotStyle); - $objWriter->endElement(); - } elseif ($groupType === PHPExcel_Chart_DataSeries::TYPE_SCATTERCHART) { - $objWriter->startElement('c:scatterStyle'); - $objWriter->writeAttribute('val', $plotStyle); - $objWriter->endElement(); - } - - $this->writePlotGroup($plotGroup, $chartType, $objWriter, $catIsMultiLevelSeries, $valIsMultiLevelSeries, $plotGroupingType, $pSheet); - } - } - - $this->writeDataLabels($objWriter, $layout); - - if ($chartType === PHPExcel_Chart_DataSeries::TYPE_LINECHART) { - // Line only, Line3D can't be smoothed - - $objWriter->startElement('c:smooth'); - $objWriter->writeAttribute('val', (integer) $plotGroup->getSmoothLine()); - $objWriter->endElement(); - } elseif (($chartType === PHPExcel_Chart_DataSeries::TYPE_BARCHART) ||($chartType === PHPExcel_Chart_DataSeries::TYPE_BARCHART_3D)) { - $objWriter->startElement('c:gapWidth'); - $objWriter->writeAttribute('val', 150); - $objWriter->endElement(); - - if ($plotGroupingType == 'percentStacked' || $plotGroupingType == 'stacked') { - $objWriter->startElement('c:overlap'); - $objWriter->writeAttribute('val', 100); - $objWriter->endElement(); - } - } elseif ($chartType === PHPExcel_Chart_DataSeries::TYPE_BUBBLECHART) { - $objWriter->startElement('c:bubbleScale'); - $objWriter->writeAttribute('val', 25); - $objWriter->endElement(); - - $objWriter->startElement('c:showNegBubbles'); - $objWriter->writeAttribute('val', 0); - $objWriter->endElement(); - } elseif ($chartType === PHPExcel_Chart_DataSeries::TYPE_STOCKCHART) { - $objWriter->startElement('c:hiLowLines'); - $objWriter->endElement(); - - $objWriter->startElement('c:upDownBars'); - - $objWriter->startElement('c:gapWidth'); - $objWriter->writeAttribute('val', 300); - $objWriter->endElement(); - - $objWriter->startElement('c:upBars'); - $objWriter->endElement(); - - $objWriter->startElement('c:downBars'); - $objWriter->endElement(); - - $objWriter->endElement(); - } - - // Generate 2 unique numbers to use for axId values - // $id1 = $id2 = rand(10000000,99999999); - // do { - // $id2 = rand(10000000,99999999); - // } while ($id1 == $id2); - $id1 = '75091328'; - $id2 = '75089408'; - - if (($chartType !== PHPExcel_Chart_DataSeries::TYPE_PIECHART) && ($chartType !== PHPExcel_Chart_DataSeries::TYPE_PIECHART_3D) && ($chartType !== PHPExcel_Chart_DataSeries::TYPE_DONUTCHART)) { - $objWriter->startElement('c:axId'); - $objWriter->writeAttribute('val', $id1); - $objWriter->endElement(); - $objWriter->startElement('c:axId'); - $objWriter->writeAttribute('val', $id2); - $objWriter->endElement(); - } else { - $objWriter->startElement('c:firstSliceAng'); - $objWriter->writeAttribute('val', 0); - $objWriter->endElement(); - - if ($chartType === PHPExcel_Chart_DataSeries::TYPE_DONUTCHART) { - $objWriter->startElement('c:holeSize'); - $objWriter->writeAttribute('val', 50); - $objWriter->endElement(); - } - } - - $objWriter->endElement(); - } - - if (($chartType !== PHPExcel_Chart_DataSeries::TYPE_PIECHART) && ($chartType !== PHPExcel_Chart_DataSeries::TYPE_PIECHART_3D) && ($chartType !== PHPExcel_Chart_DataSeries::TYPE_DONUTCHART)) { - if ($chartType === PHPExcel_Chart_DataSeries::TYPE_BUBBLECHART) { - $this->writeValueAxis($objWriter, $plotArea, $xAxisLabel, $chartType, $id1, $id2, $catIsMultiLevelSeries, $xAxis, $yAxis, $majorGridlines, $minorGridlines); - } else { - $this->writeCategoryAxis($objWriter, $plotArea, $xAxisLabel, $chartType, $id1, $id2, $catIsMultiLevelSeries, $xAxis, $yAxis); - } - - $this->writeValueAxis($objWriter, $plotArea, $yAxisLabel, $chartType, $id1, $id2, $valIsMultiLevelSeries, $xAxis, $yAxis, $majorGridlines, $minorGridlines); - } - - $objWriter->endElement(); - } - - /** - * Write Data Labels - * - * @param PHPExcel_Shared_XMLWriter $objWriter XML Writer - * @param PHPExcel_Chart_Layout $chartLayout Chart layout - * - * @throws PHPExcel_Writer_Exception - */ - private function writeDataLabels($objWriter, $chartLayout) - { - $objWriter->startElement('c:dLbls'); - - $objWriter->startElement('c:showLegendKey'); - $showLegendKey = (empty($chartLayout)) ? 0 : $chartLayout->getShowLegendKey(); - $objWriter->writeAttribute('val', ((empty($showLegendKey)) ? 0 : 1)); - $objWriter->endElement(); - - $objWriter->startElement('c:showVal'); - $showVal = (empty($chartLayout)) ? 0 : $chartLayout->getShowVal(); - $objWriter->writeAttribute('val', ((empty($showVal)) ? 0 : 1)); - $objWriter->endElement(); - - $objWriter->startElement('c:showCatName'); - $showCatName = (empty($chartLayout)) ? 0 : $chartLayout->getShowCatName(); - $objWriter->writeAttribute('val', ((empty($showCatName)) ? 0 : 1)); - $objWriter->endElement(); - - $objWriter->startElement('c:showSerName'); - $showSerName = (empty($chartLayout)) ? 0 : $chartLayout->getShowSerName(); - $objWriter->writeAttribute('val', ((empty($showSerName)) ? 0 : 1)); - $objWriter->endElement(); - - $objWriter->startElement('c:showPercent'); - $showPercent = (empty($chartLayout)) ? 0 : $chartLayout->getShowPercent(); - $objWriter->writeAttribute('val', ((empty($showPercent)) ? 0 : 1)); - $objWriter->endElement(); - - $objWriter->startElement('c:showBubbleSize'); - $showBubbleSize = (empty($chartLayout)) ? 0 : $chartLayout->getShowBubbleSize(); - $objWriter->writeAttribute('val', ((empty($showBubbleSize)) ? 0 : 1)); - $objWriter->endElement(); - - $objWriter->startElement('c:showLeaderLines'); - $showLeaderLines = (empty($chartLayout)) ? 1 : $chartLayout->getShowLeaderLines(); - $objWriter->writeAttribute('val', ((empty($showLeaderLines)) ? 0 : 1)); - $objWriter->endElement(); - - $objWriter->endElement(); - } - - /** - * Write Category Axis - * - * @param PHPExcel_Shared_XMLWriter $objWriter XML Writer - * @param PHPExcel_Chart_PlotArea $plotArea - * @param PHPExcel_Chart_Title $xAxisLabel - * @param string $groupType Chart type - * @param string $id1 - * @param string $id2 - * @param boolean $isMultiLevelSeries - * - * @throws PHPExcel_Writer_Exception - */ - private function writeCategoryAxis($objWriter, PHPExcel_Chart_PlotArea $plotArea, $xAxisLabel, $groupType, $id1, $id2, $isMultiLevelSeries, $xAxis, $yAxis) - { - $objWriter->startElement('c:catAx'); - - if ($id1 > 0) { - $objWriter->startElement('c:axId'); - $objWriter->writeAttribute('val', $id1); - $objWriter->endElement(); - } - - $objWriter->startElement('c:scaling'); - $objWriter->startElement('c:orientation'); - $objWriter->writeAttribute('val', $yAxis->getAxisOptionsProperty('orientation')); - $objWriter->endElement(); - $objWriter->endElement(); - - $objWriter->startElement('c:delete'); - $objWriter->writeAttribute('val', 0); - $objWriter->endElement(); - - $objWriter->startElement('c:axPos'); - $objWriter->writeAttribute('val', "b"); - $objWriter->endElement(); - - if (!is_null($xAxisLabel)) { - $objWriter->startElement('c:title'); - $objWriter->startElement('c:tx'); - $objWriter->startElement('c:rich'); - - $objWriter->startElement('a:bodyPr'); - $objWriter->endElement(); - - $objWriter->startElement('a:lstStyle'); - $objWriter->endElement(); - - $objWriter->startElement('a:p'); - $objWriter->startElement('a:r'); - - $caption = $xAxisLabel->getCaption(); - if (is_array($caption)) { - $caption = $caption[0]; - } - $objWriter->startElement('a:t'); - // $objWriter->writeAttribute('xml:space', 'preserve'); - $objWriter->writeRawData(PHPExcel_Shared_String::ControlCharacterPHP2OOXML($caption)); - $objWriter->endElement(); - - $objWriter->endElement(); - $objWriter->endElement(); - $objWriter->endElement(); - $objWriter->endElement(); - - $layout = $xAxisLabel->getLayout(); - $this->writeLayout($layout, $objWriter); - - $objWriter->startElement('c:overlay'); - $objWriter->writeAttribute('val', 0); - $objWriter->endElement(); - - $objWriter->endElement(); - } - - $objWriter->startElement('c:numFmt'); - $objWriter->writeAttribute('formatCode', $yAxis->getAxisNumberFormat()); - $objWriter->writeAttribute('sourceLinked', $yAxis->getAxisNumberSourceLinked()); - $objWriter->endElement(); - - $objWriter->startElement('c:majorTickMark'); - $objWriter->writeAttribute('val', $yAxis->getAxisOptionsProperty('major_tick_mark')); - $objWriter->endElement(); - - $objWriter->startElement('c:minorTickMark'); - $objWriter->writeAttribute('val', $yAxis->getAxisOptionsProperty('minor_tick_mark')); - $objWriter->endElement(); - - $objWriter->startElement('c:tickLblPos'); - $objWriter->writeAttribute('val', $yAxis->getAxisOptionsProperty('axis_labels')); - $objWriter->endElement(); - - if ($id2 > 0) { - $objWriter->startElement('c:crossAx'); - $objWriter->writeAttribute('val', $id2); - $objWriter->endElement(); - - $objWriter->startElement('c:crosses'); - $objWriter->writeAttribute('val', $yAxis->getAxisOptionsProperty('horizontal_crosses')); - $objWriter->endElement(); - } - - $objWriter->startElement('c:auto'); - $objWriter->writeAttribute('val', 1); - $objWriter->endElement(); - - $objWriter->startElement('c:lblAlgn'); - $objWriter->writeAttribute('val', "ctr"); - $objWriter->endElement(); - - $objWriter->startElement('c:lblOffset'); - $objWriter->writeAttribute('val', 100); - $objWriter->endElement(); - - if ($isMultiLevelSeries) { - $objWriter->startElement('c:noMultiLvlLbl'); - $objWriter->writeAttribute('val', 0); - $objWriter->endElement(); - } - $objWriter->endElement(); - } - - /** - * Write Value Axis - * - * @param PHPExcel_Shared_XMLWriter $objWriter XML Writer - * @param PHPExcel_Chart_PlotArea $plotArea - * @param PHPExcel_Chart_Title $yAxisLabel - * @param string $groupType Chart type - * @param string $id1 - * @param string $id2 - * @param boolean $isMultiLevelSeries - * - * @throws PHPExcel_Writer_Exception - */ - private function writeValueAxis($objWriter, PHPExcel_Chart_PlotArea $plotArea, $yAxisLabel, $groupType, $id1, $id2, $isMultiLevelSeries, $xAxis, $yAxis, $majorGridlines, $minorGridlines) - { - $objWriter->startElement('c:valAx'); - - if ($id2 > 0) { - $objWriter->startElement('c:axId'); - $objWriter->writeAttribute('val', $id2); - $objWriter->endElement(); - } - - $objWriter->startElement('c:scaling'); - $objWriter->startElement('c:orientation'); - $objWriter->writeAttribute('val', $xAxis->getAxisOptionsProperty('orientation')); - - if (!is_null($xAxis->getAxisOptionsProperty('maximum'))) { - $objWriter->startElement('c:max'); - $objWriter->writeAttribute('val', $xAxis->getAxisOptionsProperty('maximum')); - $objWriter->endElement(); - } - - if (!is_null($xAxis->getAxisOptionsProperty('minimum'))) { - $objWriter->startElement('c:min'); - $objWriter->writeAttribute('val', $xAxis->getAxisOptionsProperty('minimum')); - $objWriter->endElement(); - } - - $objWriter->endElement(); - $objWriter->endElement(); - - $objWriter->startElement('c:delete'); - $objWriter->writeAttribute('val', 0); - $objWriter->endElement(); - - $objWriter->startElement('c:axPos'); - $objWriter->writeAttribute('val', "l"); - $objWriter->endElement(); - - $objWriter->startElement('c:majorGridlines'); - $objWriter->startElement('c:spPr'); - - if (!is_null($majorGridlines->getLineColorProperty('value'))) { - $objWriter->startElement('a:ln'); - $objWriter->writeAttribute('w', $majorGridlines->getLineStyleProperty('width')); - $objWriter->startElement('a:solidFill'); - $objWriter->startElement("a:{$majorGridlines->getLineColorProperty('type')}"); - $objWriter->writeAttribute('val', $majorGridlines->getLineColorProperty('value')); - $objWriter->startElement('a:alpha'); - $objWriter->writeAttribute('val', $majorGridlines->getLineColorProperty('alpha')); - $objWriter->endElement(); //end alpha - $objWriter->endElement(); //end srgbClr - $objWriter->endElement(); //end solidFill - - $objWriter->startElement('a:prstDash'); - $objWriter->writeAttribute('val', $majorGridlines->getLineStyleProperty('dash')); - $objWriter->endElement(); - - if ($majorGridlines->getLineStyleProperty('join') == 'miter') { - $objWriter->startElement('a:miter'); - $objWriter->writeAttribute('lim', '800000'); - $objWriter->endElement(); - } else { - $objWriter->startElement('a:bevel'); - $objWriter->endElement(); - } - - if (!is_null($majorGridlines->getLineStyleProperty(array('arrow', 'head', 'type')))) { - $objWriter->startElement('a:headEnd'); - $objWriter->writeAttribute('type', $majorGridlines->getLineStyleProperty(array('arrow', 'head', 'type'))); - $objWriter->writeAttribute('w', $majorGridlines->getLineStyleArrowParameters('head', 'w')); - $objWriter->writeAttribute('len', $majorGridlines->getLineStyleArrowParameters('head', 'len')); - $objWriter->endElement(); - } - - if (!is_null($majorGridlines->getLineStyleProperty(array('arrow', 'end', 'type')))) { - $objWriter->startElement('a:tailEnd'); - $objWriter->writeAttribute('type', $majorGridlines->getLineStyleProperty(array('arrow', 'end', 'type'))); - $objWriter->writeAttribute('w', $majorGridlines->getLineStyleArrowParameters('end', 'w')); - $objWriter->writeAttribute('len', $majorGridlines->getLineStyleArrowParameters('end', 'len')); - $objWriter->endElement(); - } - $objWriter->endElement(); //end ln - } - $objWriter->startElement('a:effectLst'); - - if (!is_null($majorGridlines->getGlowSize())) { - $objWriter->startElement('a:glow'); - $objWriter->writeAttribute('rad', $majorGridlines->getGlowSize()); - $objWriter->startElement("a:{$majorGridlines->getGlowColor('type')}"); - $objWriter->writeAttribute('val', $majorGridlines->getGlowColor('value')); - $objWriter->startElement('a:alpha'); - $objWriter->writeAttribute('val', $majorGridlines->getGlowColor('alpha')); - $objWriter->endElement(); //end alpha - $objWriter->endElement(); //end schemeClr - $objWriter->endElement(); //end glow - } - - if (!is_null($majorGridlines->getShadowProperty('presets'))) { - $objWriter->startElement("a:{$majorGridlines->getShadowProperty('effect')}"); - if (!is_null($majorGridlines->getShadowProperty('blur'))) { - $objWriter->writeAttribute('blurRad', $majorGridlines->getShadowProperty('blur')); - } - if (!is_null($majorGridlines->getShadowProperty('distance'))) { - $objWriter->writeAttribute('dist', $majorGridlines->getShadowProperty('distance')); - } - if (!is_null($majorGridlines->getShadowProperty('direction'))) { - $objWriter->writeAttribute('dir', $majorGridlines->getShadowProperty('direction')); - } - if (!is_null($majorGridlines->getShadowProperty('algn'))) { - $objWriter->writeAttribute('algn', $majorGridlines->getShadowProperty('algn')); - } - if (!is_null($majorGridlines->getShadowProperty(array('size', 'sx')))) { - $objWriter->writeAttribute('sx', $majorGridlines->getShadowProperty(array('size', 'sx'))); - } - if (!is_null($majorGridlines->getShadowProperty(array('size', 'sy')))) { - $objWriter->writeAttribute('sy', $majorGridlines->getShadowProperty(array('size', 'sy'))); - } - if (!is_null($majorGridlines->getShadowProperty(array('size', 'kx')))) { - $objWriter->writeAttribute('kx', $majorGridlines->getShadowProperty(array('size', 'kx'))); - } - if (!is_null($majorGridlines->getShadowProperty('rotWithShape'))) { - $objWriter->writeAttribute('rotWithShape', $majorGridlines->getShadowProperty('rotWithShape')); - } - $objWriter->startElement("a:{$majorGridlines->getShadowProperty(array('color', 'type'))}"); - $objWriter->writeAttribute('val', $majorGridlines->getShadowProperty(array('color', 'value'))); - - $objWriter->startElement('a:alpha'); - $objWriter->writeAttribute('val', $majorGridlines->getShadowProperty(array('color', 'alpha'))); - $objWriter->endElement(); //end alpha - - $objWriter->endElement(); //end color:type - $objWriter->endElement(); //end shadow - } - - if (!is_null($majorGridlines->getSoftEdgesSize())) { - $objWriter->startElement('a:softEdge'); - $objWriter->writeAttribute('rad', $majorGridlines->getSoftEdgesSize()); - $objWriter->endElement(); //end softEdge - } - - $objWriter->endElement(); //end effectLst - $objWriter->endElement(); //end spPr - $objWriter->endElement(); //end majorGridLines - - if ($minorGridlines->getObjectState()) { - $objWriter->startElement('c:minorGridlines'); - $objWriter->startElement('c:spPr'); - - if (!is_null($minorGridlines->getLineColorProperty('value'))) { - $objWriter->startElement('a:ln'); - $objWriter->writeAttribute('w', $minorGridlines->getLineStyleProperty('width')); - $objWriter->startElement('a:solidFill'); - $objWriter->startElement("a:{$minorGridlines->getLineColorProperty('type')}"); - $objWriter->writeAttribute('val', $minorGridlines->getLineColorProperty('value')); - $objWriter->startElement('a:alpha'); - $objWriter->writeAttribute('val', $minorGridlines->getLineColorProperty('alpha')); - $objWriter->endElement(); //end alpha - $objWriter->endElement(); //end srgbClr - $objWriter->endElement(); //end solidFill - - $objWriter->startElement('a:prstDash'); - $objWriter->writeAttribute('val', $minorGridlines->getLineStyleProperty('dash')); - $objWriter->endElement(); - - if ($minorGridlines->getLineStyleProperty('join') == 'miter') { - $objWriter->startElement('a:miter'); - $objWriter->writeAttribute('lim', '800000'); - $objWriter->endElement(); - } else { - $objWriter->startElement('a:bevel'); - $objWriter->endElement(); - } - - if (!is_null($minorGridlines->getLineStyleProperty(array('arrow', 'head', 'type')))) { - $objWriter->startElement('a:headEnd'); - $objWriter->writeAttribute('type', $minorGridlines->getLineStyleProperty(array('arrow', 'head', 'type'))); - $objWriter->writeAttribute('w', $minorGridlines->getLineStyleArrowParameters('head', 'w')); - $objWriter->writeAttribute('len', $minorGridlines->getLineStyleArrowParameters('head', 'len')); - $objWriter->endElement(); - } - - if (!is_null($minorGridlines->getLineStyleProperty(array('arrow', 'end', 'type')))) { - $objWriter->startElement('a:tailEnd'); - $objWriter->writeAttribute('type', $minorGridlines->getLineStyleProperty(array('arrow', 'end', 'type'))); - $objWriter->writeAttribute('w', $minorGridlines->getLineStyleArrowParameters('end', 'w')); - $objWriter->writeAttribute('len', $minorGridlines->getLineStyleArrowParameters('end', 'len')); - $objWriter->endElement(); - } - $objWriter->endElement(); //end ln - } - - $objWriter->startElement('a:effectLst'); - - if (!is_null($minorGridlines->getGlowSize())) { - $objWriter->startElement('a:glow'); - $objWriter->writeAttribute('rad', $minorGridlines->getGlowSize()); - $objWriter->startElement("a:{$minorGridlines->getGlowColor('type')}"); - $objWriter->writeAttribute('val', $minorGridlines->getGlowColor('value')); - $objWriter->startElement('a:alpha'); - $objWriter->writeAttribute('val', $minorGridlines->getGlowColor('alpha')); - $objWriter->endElement(); //end alpha - $objWriter->endElement(); //end schemeClr - $objWriter->endElement(); //end glow - } - - if (!is_null($minorGridlines->getShadowProperty('presets'))) { - $objWriter->startElement("a:{$minorGridlines->getShadowProperty('effect')}"); - if (!is_null($minorGridlines->getShadowProperty('blur'))) { - $objWriter->writeAttribute('blurRad', $minorGridlines->getShadowProperty('blur')); - } - if (!is_null($minorGridlines->getShadowProperty('distance'))) { - $objWriter->writeAttribute('dist', $minorGridlines->getShadowProperty('distance')); - } - if (!is_null($minorGridlines->getShadowProperty('direction'))) { - $objWriter->writeAttribute('dir', $minorGridlines->getShadowProperty('direction')); - } - if (!is_null($minorGridlines->getShadowProperty('algn'))) { - $objWriter->writeAttribute('algn', $minorGridlines->getShadowProperty('algn')); - } - if (!is_null($minorGridlines->getShadowProperty(array('size', 'sx')))) { - $objWriter->writeAttribute('sx', $minorGridlines->getShadowProperty(array('size', 'sx'))); - } - if (!is_null($minorGridlines->getShadowProperty(array('size', 'sy')))) { - $objWriter->writeAttribute('sy', $minorGridlines->getShadowProperty(array('size', 'sy'))); - } - if (!is_null($minorGridlines->getShadowProperty(array('size', 'kx')))) { - $objWriter->writeAttribute('kx', $minorGridlines->getShadowProperty(array('size', 'kx'))); - } - if (!is_null($minorGridlines->getShadowProperty('rotWithShape'))) { - $objWriter->writeAttribute('rotWithShape', $minorGridlines->getShadowProperty('rotWithShape')); - } - $objWriter->startElement("a:{$minorGridlines->getShadowProperty(array('color', 'type'))}"); - $objWriter->writeAttribute('val', $minorGridlines->getShadowProperty(array('color', 'value'))); - $objWriter->startElement('a:alpha'); - $objWriter->writeAttribute('val', $minorGridlines->getShadowProperty(array('color', 'alpha'))); - $objWriter->endElement(); //end alpha - $objWriter->endElement(); //end color:type - $objWriter->endElement(); //end shadow - } - - if (!is_null($minorGridlines->getSoftEdgesSize())) { - $objWriter->startElement('a:softEdge'); - $objWriter->writeAttribute('rad', $minorGridlines->getSoftEdgesSize()); - $objWriter->endElement(); //end softEdge - } - - $objWriter->endElement(); //end effectLst - $objWriter->endElement(); //end spPr - $objWriter->endElement(); //end minorGridLines - } - - if (!is_null($yAxisLabel)) { - $objWriter->startElement('c:title'); - $objWriter->startElement('c:tx'); - $objWriter->startElement('c:rich'); - - $objWriter->startElement('a:bodyPr'); - $objWriter->endElement(); - - $objWriter->startElement('a:lstStyle'); - $objWriter->endElement(); - - $objWriter->startElement('a:p'); - $objWriter->startElement('a:r'); - - $caption = $yAxisLabel->getCaption(); - if (is_array($caption)) { - $caption = $caption[0]; - } - - $objWriter->startElement('a:t'); - // $objWriter->writeAttribute('xml:space', 'preserve'); - $objWriter->writeRawData(PHPExcel_Shared_String::ControlCharacterPHP2OOXML($caption)); - $objWriter->endElement(); - - $objWriter->endElement(); - $objWriter->endElement(); - $objWriter->endElement(); - $objWriter->endElement(); - - if ($groupType !== PHPExcel_Chart_DataSeries::TYPE_BUBBLECHART) { - $layout = $yAxisLabel->getLayout(); - $this->writeLayout($layout, $objWriter); - } - - $objWriter->startElement('c:overlay'); - $objWriter->writeAttribute('val', 0); - $objWriter->endElement(); - - $objWriter->endElement(); - } - - $objWriter->startElement('c:numFmt'); - $objWriter->writeAttribute('formatCode', $xAxis->getAxisNumberFormat()); - $objWriter->writeAttribute('sourceLinked', $xAxis->getAxisNumberSourceLinked()); - $objWriter->endElement(); - - $objWriter->startElement('c:majorTickMark'); - $objWriter->writeAttribute('val', $xAxis->getAxisOptionsProperty('major_tick_mark')); - $objWriter->endElement(); - - $objWriter->startElement('c:minorTickMark'); - $objWriter->writeAttribute('val', $xAxis->getAxisOptionsProperty('minor_tick_mark')); - $objWriter->endElement(); - - $objWriter->startElement('c:tickLblPos'); - $objWriter->writeAttribute('val', $xAxis->getAxisOptionsProperty('axis_labels')); - $objWriter->endElement(); - - $objWriter->startElement('c:spPr'); - - if (!is_null($xAxis->getFillProperty('value'))) { - $objWriter->startElement('a:solidFill'); - $objWriter->startElement("a:" . $xAxis->getFillProperty('type')); - $objWriter->writeAttribute('val', $xAxis->getFillProperty('value')); - $objWriter->startElement('a:alpha'); - $objWriter->writeAttribute('val', $xAxis->getFillProperty('alpha')); - $objWriter->endElement(); - $objWriter->endElement(); - $objWriter->endElement(); - } - - $objWriter->startElement('a:ln'); - - $objWriter->writeAttribute('w', $xAxis->getLineStyleProperty('width')); - $objWriter->writeAttribute('cap', $xAxis->getLineStyleProperty('cap')); - $objWriter->writeAttribute('cmpd', $xAxis->getLineStyleProperty('compound')); - - if (!is_null($xAxis->getLineProperty('value'))) { - $objWriter->startElement('a:solidFill'); - $objWriter->startElement("a:" . $xAxis->getLineProperty('type')); - $objWriter->writeAttribute('val', $xAxis->getLineProperty('value')); - $objWriter->startElement('a:alpha'); - $objWriter->writeAttribute('val', $xAxis->getLineProperty('alpha')); - $objWriter->endElement(); - $objWriter->endElement(); - $objWriter->endElement(); - } - - $objWriter->startElement('a:prstDash'); - $objWriter->writeAttribute('val', $xAxis->getLineStyleProperty('dash')); - $objWriter->endElement(); - - if ($xAxis->getLineStyleProperty('join') == 'miter') { - $objWriter->startElement('a:miter'); - $objWriter->writeAttribute('lim', '800000'); - $objWriter->endElement(); - } else { - $objWriter->startElement('a:bevel'); - $objWriter->endElement(); - } - - if (!is_null($xAxis->getLineStyleProperty(array('arrow', 'head', 'type')))) { - $objWriter->startElement('a:headEnd'); - $objWriter->writeAttribute('type', $xAxis->getLineStyleProperty(array('arrow', 'head', 'type'))); - $objWriter->writeAttribute('w', $xAxis->getLineStyleArrowWidth('head')); - $objWriter->writeAttribute('len', $xAxis->getLineStyleArrowLength('head')); - $objWriter->endElement(); - } - - if (!is_null($xAxis->getLineStyleProperty(array('arrow', 'end', 'type')))) { - $objWriter->startElement('a:tailEnd'); - $objWriter->writeAttribute('type', $xAxis->getLineStyleProperty(array('arrow', 'end', 'type'))); - $objWriter->writeAttribute('w', $xAxis->getLineStyleArrowWidth('end')); - $objWriter->writeAttribute('len', $xAxis->getLineStyleArrowLength('end')); - $objWriter->endElement(); - } - - $objWriter->endElement(); - - $objWriter->startElement('a:effectLst'); - - if (!is_null($xAxis->getGlowProperty('size'))) { - $objWriter->startElement('a:glow'); - $objWriter->writeAttribute('rad', $xAxis->getGlowProperty('size')); - $objWriter->startElement("a:{$xAxis->getGlowProperty(array('color','type'))}"); - $objWriter->writeAttribute('val', $xAxis->getGlowProperty(array('color','value'))); - $objWriter->startElement('a:alpha'); - $objWriter->writeAttribute('val', $xAxis->getGlowProperty(array('color','alpha'))); - $objWriter->endElement(); - $objWriter->endElement(); - $objWriter->endElement(); - } - - if (!is_null($xAxis->getShadowProperty('presets'))) { - $objWriter->startElement("a:{$xAxis->getShadowProperty('effect')}"); - - if (!is_null($xAxis->getShadowProperty('blur'))) { - $objWriter->writeAttribute('blurRad', $xAxis->getShadowProperty('blur')); - } - if (!is_null($xAxis->getShadowProperty('distance'))) { - $objWriter->writeAttribute('dist', $xAxis->getShadowProperty('distance')); - } - if (!is_null($xAxis->getShadowProperty('direction'))) { - $objWriter->writeAttribute('dir', $xAxis->getShadowProperty('direction')); - } - if (!is_null($xAxis->getShadowProperty('algn'))) { - $objWriter->writeAttribute('algn', $xAxis->getShadowProperty('algn')); - } - if (!is_null($xAxis->getShadowProperty(array('size','sx')))) { - $objWriter->writeAttribute('sx', $xAxis->getShadowProperty(array('size','sx'))); - } - if (!is_null($xAxis->getShadowProperty(array('size','sy')))) { - $objWriter->writeAttribute('sy', $xAxis->getShadowProperty(array('size','sy'))); - } - if (!is_null($xAxis->getShadowProperty(array('size','kx')))) { - $objWriter->writeAttribute('kx', $xAxis->getShadowProperty(array('size','kx'))); - } - if (!is_null($xAxis->getShadowProperty('rotWithShape'))) { - $objWriter->writeAttribute('rotWithShape', $xAxis->getShadowProperty('rotWithShape')); - } - - $objWriter->startElement("a:{$xAxis->getShadowProperty(array('color','type'))}"); - $objWriter->writeAttribute('val', $xAxis->getShadowProperty(array('color','value'))); - $objWriter->startElement('a:alpha'); - $objWriter->writeAttribute('val', $xAxis->getShadowProperty(array('color','alpha'))); - $objWriter->endElement(); - $objWriter->endElement(); - - $objWriter->endElement(); - } - - if (!is_null($xAxis->getSoftEdgesSize())) { - $objWriter->startElement('a:softEdge'); - $objWriter->writeAttribute('rad', $xAxis->getSoftEdgesSize()); - $objWriter->endElement(); - } - - $objWriter->endElement(); //effectList - $objWriter->endElement(); //end spPr - - if ($id1 > 0) { - $objWriter->startElement('c:crossAx'); - $objWriter->writeAttribute('val', $id2); - $objWriter->endElement(); - - if (!is_null($xAxis->getAxisOptionsProperty('horizontal_crosses_value'))) { - $objWriter->startElement('c:crossesAt'); - $objWriter->writeAttribute('val', $xAxis->getAxisOptionsProperty('horizontal_crosses_value')); - $objWriter->endElement(); - } else { - $objWriter->startElement('c:crosses'); - $objWriter->writeAttribute('val', $xAxis->getAxisOptionsProperty('horizontal_crosses')); - $objWriter->endElement(); - } - - $objWriter->startElement('c:crossBetween'); - $objWriter->writeAttribute('val', "midCat"); - $objWriter->endElement(); - - if (!is_null($xAxis->getAxisOptionsProperty('major_unit'))) { - $objWriter->startElement('c:majorUnit'); - $objWriter->writeAttribute('val', $xAxis->getAxisOptionsProperty('major_unit')); - $objWriter->endElement(); - } - - if (!is_null($xAxis->getAxisOptionsProperty('minor_unit'))) { - $objWriter->startElement('c:minorUnit'); - $objWriter->writeAttribute('val', $xAxis->getAxisOptionsProperty('minor_unit')); - $objWriter->endElement(); - } - } - - if ($isMultiLevelSeries) { - if ($groupType !== PHPExcel_Chart_DataSeries::TYPE_BUBBLECHART) { - $objWriter->startElement('c:noMultiLvlLbl'); - $objWriter->writeAttribute('val', 0); - $objWriter->endElement(); - } - } - - $objWriter->endElement(); - } - - /** - * Get the data series type(s) for a chart plot series - * - * @param PHPExcel_Chart_PlotArea $plotArea - * - * @return string|array - * @throws PHPExcel_Writer_Exception - */ - private static function getChartType($plotArea) - { - $groupCount = $plotArea->getPlotGroupCount(); - - if ($groupCount == 1) { - $chartType = array($plotArea->getPlotGroupByIndex(0)->getPlotType()); - } else { - $chartTypes = array(); - for ($i = 0; $i < $groupCount; ++$i) { - $chartTypes[] = $plotArea->getPlotGroupByIndex($i)->getPlotType(); - } - $chartType = array_unique($chartTypes); - if (count($chartTypes) == 0) { - throw new PHPExcel_Writer_Exception('Chart is not yet implemented'); - } - } - - return $chartType; - } - - /** - * Write Plot Group (series of related plots) - * - * @param PHPExcel_Chart_DataSeries $plotGroup - * @param string $groupType Type of plot for dataseries - * @param PHPExcel_Shared_XMLWriter $objWriter XML Writer - * @param boolean &$catIsMultiLevelSeries Is category a multi-series category - * @param boolean &$valIsMultiLevelSeries Is value set a multi-series set - * @param string &$plotGroupingType Type of grouping for multi-series values - * @param PHPExcel_Worksheet $pSheet - * - * @throws PHPExcel_Writer_Exception - */ - private function writePlotGroup($plotGroup, $groupType, $objWriter, &$catIsMultiLevelSeries, &$valIsMultiLevelSeries, &$plotGroupingType, PHPExcel_Worksheet $pSheet) - { - if (is_null($plotGroup)) { - return; - } - - if (($groupType == PHPExcel_Chart_DataSeries::TYPE_BARCHART) || ($groupType == PHPExcel_Chart_DataSeries::TYPE_BARCHART_3D)) { - $objWriter->startElement('c:barDir'); - $objWriter->writeAttribute('val', $plotGroup->getPlotDirection()); - $objWriter->endElement(); - } - - if (!is_null($plotGroup->getPlotGrouping())) { - $plotGroupingType = $plotGroup->getPlotGrouping(); - $objWriter->startElement('c:grouping'); - $objWriter->writeAttribute('val', $plotGroupingType); - $objWriter->endElement(); - } - - // Get these details before the loop, because we can use the count to check for varyColors - $plotSeriesOrder = $plotGroup->getPlotOrder(); - $plotSeriesCount = count($plotSeriesOrder); - - if (($groupType !== PHPExcel_Chart_DataSeries::TYPE_RADARCHART) && ($groupType !== PHPExcel_Chart_DataSeries::TYPE_STOCKCHART)) { - if ($groupType !== PHPExcel_Chart_DataSeries::TYPE_LINECHART) { - if (($groupType == PHPExcel_Chart_DataSeries::TYPE_PIECHART) || ($groupType == PHPExcel_Chart_DataSeries::TYPE_PIECHART_3D) || ($groupType == PHPExcel_Chart_DataSeries::TYPE_DONUTCHART) || ($plotSeriesCount > 1)) { - $objWriter->startElement('c:varyColors'); - $objWriter->writeAttribute('val', 1); - $objWriter->endElement(); - } else { - $objWriter->startElement('c:varyColors'); - $objWriter->writeAttribute('val', 0); - $objWriter->endElement(); - } - } - } - - foreach ($plotSeriesOrder as $plotSeriesIdx => $plotSeriesRef) { - $objWriter->startElement('c:ser'); - - $objWriter->startElement('c:idx'); - $objWriter->writeAttribute('val', $this->_seriesIndex + $plotSeriesIdx); - $objWriter->endElement(); - - $objWriter->startElement('c:order'); - $objWriter->writeAttribute('val', $this->_seriesIndex + $plotSeriesRef); - $objWriter->endElement(); - - if (($groupType == PHPExcel_Chart_DataSeries::TYPE_PIECHART) || ($groupType == PHPExcel_Chart_DataSeries::TYPE_PIECHART_3D) || ($groupType == PHPExcel_Chart_DataSeries::TYPE_DONUTCHART)) { - $objWriter->startElement('c:dPt'); - $objWriter->startElement('c:idx'); - $objWriter->writeAttribute('val', 3); - $objWriter->endElement(); - - $objWriter->startElement('c:bubble3D'); - $objWriter->writeAttribute('val', 0); - $objWriter->endElement(); - - $objWriter->startElement('c:spPr'); - $objWriter->startElement('a:solidFill'); - $objWriter->startElement('a:srgbClr'); - $objWriter->writeAttribute('val', 'FF9900'); - $objWriter->endElement(); - $objWriter->endElement(); - $objWriter->endElement(); - $objWriter->endElement(); - } - - // Labels - $plotSeriesLabel = $plotGroup->getPlotLabelByIndex($plotSeriesRef); - if ($plotSeriesLabel && ($plotSeriesLabel->getPointCount() > 0)) { - $objWriter->startElement('c:tx'); - $objWriter->startElement('c:strRef'); - $this->writePlotSeriesLabel($plotSeriesLabel, $objWriter); - $objWriter->endElement(); - $objWriter->endElement(); - } - - // Formatting for the points - if (($groupType == PHPExcel_Chart_DataSeries::TYPE_LINECHART) || ($groupType == PHPExcel_Chart_DataSeries::TYPE_STOCKCHART)) { - $objWriter->startElement('c:spPr'); - $objWriter->startElement('a:ln'); - $objWriter->writeAttribute('w', 12700); - if ($groupType == PHPExcel_Chart_DataSeries::TYPE_STOCKCHART) { - $objWriter->startElement('a:noFill'); - $objWriter->endElement(); - } - $objWriter->endElement(); - $objWriter->endElement(); - } - - $plotSeriesValues = $plotGroup->getPlotValuesByIndex($plotSeriesRef); - if ($plotSeriesValues) { - $plotSeriesMarker = $plotSeriesValues->getPointMarker(); - if ($plotSeriesMarker) { - $objWriter->startElement('c:marker'); - $objWriter->startElement('c:symbol'); - $objWriter->writeAttribute('val', $plotSeriesMarker); - $objWriter->endElement(); - - if ($plotSeriesMarker !== 'none') { - $objWriter->startElement('c:size'); - $objWriter->writeAttribute('val', 3); - $objWriter->endElement(); - } - - $objWriter->endElement(); - } - } - - if (($groupType === PHPExcel_Chart_DataSeries::TYPE_BARCHART) || ($groupType === PHPExcel_Chart_DataSeries::TYPE_BARCHART_3D) || ($groupType === PHPExcel_Chart_DataSeries::TYPE_BUBBLECHART)) { - $objWriter->startElement('c:invertIfNegative'); - $objWriter->writeAttribute('val', 0); - $objWriter->endElement(); - } - - // Category Labels - $plotSeriesCategory = $plotGroup->getPlotCategoryByIndex($plotSeriesRef); - if ($plotSeriesCategory && ($plotSeriesCategory->getPointCount() > 0)) { - $catIsMultiLevelSeries = $catIsMultiLevelSeries || $plotSeriesCategory->isMultiLevelSeries(); - - if (($groupType == PHPExcel_Chart_DataSeries::TYPE_PIECHART) || ($groupType == PHPExcel_Chart_DataSeries::TYPE_PIECHART_3D) || ($groupType == PHPExcel_Chart_DataSeries::TYPE_DONUTCHART)) { - if (!is_null($plotGroup->getPlotStyle())) { - $plotStyle = $plotGroup->getPlotStyle(); - if ($plotStyle) { - $objWriter->startElement('c:explosion'); - $objWriter->writeAttribute('val', 25); - $objWriter->endElement(); - } - } - } - - if (($groupType === PHPExcel_Chart_DataSeries::TYPE_BUBBLECHART) || ($groupType === PHPExcel_Chart_DataSeries::TYPE_SCATTERCHART)) { - $objWriter->startElement('c:xVal'); - } else { - $objWriter->startElement('c:cat'); - } - - $this->writePlotSeriesValues($plotSeriesCategory, $objWriter, $groupType, 'str', $pSheet); - $objWriter->endElement(); - } - - // Values - if ($plotSeriesValues) { - $valIsMultiLevelSeries = $valIsMultiLevelSeries || $plotSeriesValues->isMultiLevelSeries(); - - if (($groupType === PHPExcel_Chart_DataSeries::TYPE_BUBBLECHART) || ($groupType === PHPExcel_Chart_DataSeries::TYPE_SCATTERCHART)) { - $objWriter->startElement('c:yVal'); - } else { - $objWriter->startElement('c:val'); - } - - $this->writePlotSeriesValues($plotSeriesValues, $objWriter, $groupType, 'num', $pSheet); - $objWriter->endElement(); - } - - if ($groupType === PHPExcel_Chart_DataSeries::TYPE_BUBBLECHART) { - $this->writeBubbles($plotSeriesValues, $objWriter, $pSheet); - } - - $objWriter->endElement(); - } - - $this->_seriesIndex += $plotSeriesIdx + 1; - } - - /** - * Write Plot Series Label - * - * @param PHPExcel_Chart_DataSeriesValues $plotSeriesLabel - * @param PHPExcel_Shared_XMLWriter $objWriter XML Writer - * - * @throws PHPExcel_Writer_Exception - */ - private function writePlotSeriesLabel($plotSeriesLabel, $objWriter) - { - if (is_null($plotSeriesLabel)) { - return; - } - - $objWriter->startElement('c:f'); - $objWriter->writeRawData($plotSeriesLabel->getDataSource()); - $objWriter->endElement(); - - $objWriter->startElement('c:strCache'); - $objWriter->startElement('c:ptCount'); - $objWriter->writeAttribute('val', $plotSeriesLabel->getPointCount()); - $objWriter->endElement(); - - foreach ($plotSeriesLabel->getDataValues() as $plotLabelKey => $plotLabelValue) { - $objWriter->startElement('c:pt'); - $objWriter->writeAttribute('idx', $plotLabelKey); - - $objWriter->startElement('c:v'); - $objWriter->writeRawData($plotLabelValue); - $objWriter->endElement(); - $objWriter->endElement(); - } - $objWriter->endElement(); - } - - /** - * Write Plot Series Values - * - * @param PHPExcel_Chart_DataSeriesValues $plotSeriesValues - * @param PHPExcel_Shared_XMLWriter $objWriter XML Writer - * @param string $groupType Type of plot for dataseries - * @param string $dataType Datatype of series values - * @param PHPExcel_Worksheet $pSheet - * - * @throws PHPExcel_Writer_Exception - */ - private function writePlotSeriesValues($plotSeriesValues, $objWriter, $groupType, $dataType = 'str', PHPExcel_Worksheet $pSheet) - { - if (is_null($plotSeriesValues)) { - return; - } - - if ($plotSeriesValues->isMultiLevelSeries()) { - $levelCount = $plotSeriesValues->multiLevelCount(); - - $objWriter->startElement('c:multiLvlStrRef'); - - $objWriter->startElement('c:f'); - $objWriter->writeRawData($plotSeriesValues->getDataSource()); - $objWriter->endElement(); - - $objWriter->startElement('c:multiLvlStrCache'); - - $objWriter->startElement('c:ptCount'); - $objWriter->writeAttribute('val', $plotSeriesValues->getPointCount()); - $objWriter->endElement(); - - for ($level = 0; $level < $levelCount; ++$level) { - $objWriter->startElement('c:lvl'); - - foreach ($plotSeriesValues->getDataValues() as $plotSeriesKey => $plotSeriesValue) { - if (isset($plotSeriesValue[$level])) { - $objWriter->startElement('c:pt'); - $objWriter->writeAttribute('idx', $plotSeriesKey); - - $objWriter->startElement('c:v'); - $objWriter->writeRawData($plotSeriesValue[$level]); - $objWriter->endElement(); - $objWriter->endElement(); - } - } - - $objWriter->endElement(); - } - - $objWriter->endElement(); - - $objWriter->endElement(); - } else { - $objWriter->startElement('c:' . $dataType . 'Ref'); - - $objWriter->startElement('c:f'); - $objWriter->writeRawData($plotSeriesValues->getDataSource()); - $objWriter->endElement(); - - $objWriter->startElement('c:' . $dataType . 'Cache'); - - if (($groupType != PHPExcel_Chart_DataSeries::TYPE_PIECHART) && ($groupType != PHPExcel_Chart_DataSeries::TYPE_PIECHART_3D) && ($groupType != PHPExcel_Chart_DataSeries::TYPE_DONUTCHART)) { - if (($plotSeriesValues->getFormatCode() !== null) && ($plotSeriesValues->getFormatCode() !== '')) { - $objWriter->startElement('c:formatCode'); - $objWriter->writeRawData($plotSeriesValues->getFormatCode()); - $objWriter->endElement(); - } - } - - $objWriter->startElement('c:ptCount'); - $objWriter->writeAttribute('val', $plotSeriesValues->getPointCount()); - $objWriter->endElement(); - - $dataValues = $plotSeriesValues->getDataValues(); - if (!empty($dataValues)) { - if (is_array($dataValues)) { - foreach ($dataValues as $plotSeriesKey => $plotSeriesValue) { - $objWriter->startElement('c:pt'); - $objWriter->writeAttribute('idx', $plotSeriesKey); - - $objWriter->startElement('c:v'); - $objWriter->writeRawData($plotSeriesValue); - $objWriter->endElement(); - $objWriter->endElement(); - } - } - } - - $objWriter->endElement(); - - $objWriter->endElement(); - } - } - - /** - * Write Bubble Chart Details - * - * @param PHPExcel_Chart_DataSeriesValues $plotSeriesValues - * @param PHPExcel_Shared_XMLWriter $objWriter XML Writer - * - * @throws PHPExcel_Writer_Exception - */ - private function writeBubbles($plotSeriesValues, $objWriter, PHPExcel_Worksheet $pSheet) - { - if (is_null($plotSeriesValues)) { - return; - } - - $objWriter->startElement('c:bubbleSize'); - $objWriter->startElement('c:numLit'); - - $objWriter->startElement('c:formatCode'); - $objWriter->writeRawData('General'); - $objWriter->endElement(); - - $objWriter->startElement('c:ptCount'); - $objWriter->writeAttribute('val', $plotSeriesValues->getPointCount()); - $objWriter->endElement(); - - $dataValues = $plotSeriesValues->getDataValues(); - if (!empty($dataValues)) { - if (is_array($dataValues)) { - foreach ($dataValues as $plotSeriesKey => $plotSeriesValue) { - $objWriter->startElement('c:pt'); - $objWriter->writeAttribute('idx', $plotSeriesKey); - $objWriter->startElement('c:v'); - $objWriter->writeRawData(1); - $objWriter->endElement(); - $objWriter->endElement(); - } - } - } - - $objWriter->endElement(); - $objWriter->endElement(); - - $objWriter->startElement('c:bubble3D'); - $objWriter->writeAttribute('val', 0); - $objWriter->endElement(); - } - - /** - * Write Layout - * - * @param PHPExcel_Chart_Layout $layout - * @param PHPExcel_Shared_XMLWriter $objWriter XML Writer - * - * @throws PHPExcel_Writer_Exception - */ - private function writeLayout(PHPExcel_Chart_Layout $layout = null, $objWriter) - { - $objWriter->startElement('c:layout'); - - if (!is_null($layout)) { - $objWriter->startElement('c:manualLayout'); - - $layoutTarget = $layout->getLayoutTarget(); - if (!is_null($layoutTarget)) { - $objWriter->startElement('c:layoutTarget'); - $objWriter->writeAttribute('val', $layoutTarget); - $objWriter->endElement(); - } - - $xMode = $layout->getXMode(); - if (!is_null($xMode)) { - $objWriter->startElement('c:xMode'); - $objWriter->writeAttribute('val', $xMode); - $objWriter->endElement(); - } - - $yMode = $layout->getYMode(); - if (!is_null($yMode)) { - $objWriter->startElement('c:yMode'); - $objWriter->writeAttribute('val', $yMode); - $objWriter->endElement(); - } - - $x = $layout->getXPosition(); - if (!is_null($x)) { - $objWriter->startElement('c:x'); - $objWriter->writeAttribute('val', $x); - $objWriter->endElement(); - } - - $y = $layout->getYPosition(); - if (!is_null($y)) { - $objWriter->startElement('c:y'); - $objWriter->writeAttribute('val', $y); - $objWriter->endElement(); - } - - $w = $layout->getWidth(); - if (!is_null($w)) { - $objWriter->startElement('c:w'); - $objWriter->writeAttribute('val', $w); - $objWriter->endElement(); - } - - $h = $layout->getHeight(); - if (!is_null($h)) { - $objWriter->startElement('c:h'); - $objWriter->writeAttribute('val', $h); - $objWriter->endElement(); - } - - $objWriter->endElement(); - } - - $objWriter->endElement(); - } - - /** - * Write Alternate Content block - * - * @param PHPExcel_Shared_XMLWriter $objWriter XML Writer - * - * @throws PHPExcel_Writer_Exception - */ - private function writeAlternateContent($objWriter) - { - $objWriter->startElement('mc:AlternateContent'); - $objWriter->writeAttribute('xmlns:mc', 'http://schemas.openxmlformats.org/markup-compatibility/2006'); - - $objWriter->startElement('mc:Choice'); - $objWriter->writeAttribute('xmlns:c14', 'http://schemas.microsoft.com/office/drawing/2007/8/2/chart'); - $objWriter->writeAttribute('Requires', 'c14'); - - $objWriter->startElement('c14:style'); - $objWriter->writeAttribute('val', '102'); - $objWriter->endElement(); - $objWriter->endElement(); - - $objWriter->startElement('mc:Fallback'); - $objWriter->startElement('c:style'); - $objWriter->writeAttribute('val', '2'); - $objWriter->endElement(); - $objWriter->endElement(); - - $objWriter->endElement(); - } - - /** - * Write Printer Settings - * - * @param PHPExcel_Shared_XMLWriter $objWriter XML Writer - * - * @throws PHPExcel_Writer_Exception - */ - private function writePrintSettings($objWriter) - { - $objWriter->startElement('c:printSettings'); - - $objWriter->startElement('c:headerFooter'); - $objWriter->endElement(); - - $objWriter->startElement('c:pageMargins'); - $objWriter->writeAttribute('footer', 0.3); - $objWriter->writeAttribute('header', 0.3); - $objWriter->writeAttribute('r', 0.7); - $objWriter->writeAttribute('l', 0.7); - $objWriter->writeAttribute('t', 0.75); - $objWriter->writeAttribute('b', 0.75); - $objWriter->endElement(); - - $objWriter->startElement('c:pageSetup'); - $objWriter->writeAttribute('orientation', "portrait"); - $objWriter->endElement(); - - $objWriter->endElement(); - } -} diff --git a/Utils/PHPExcel/Writer/Excel2007/Comments.php b/Utils/PHPExcel/Writer/Excel2007/Comments.php deleted file mode 100644 index 7139f6c..0000000 --- a/Utils/PHPExcel/Writer/Excel2007/Comments.php +++ /dev/null @@ -1,260 +0,0 @@ -<?php - -/** - * PHPExcel_Writer_Excel2007_Comments - * - * Copyright (c) 2006 - 2015 PHPExcel - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - * - * @category PHPExcel - * @package PHPExcel_Writer_Excel2007 - * @copyright Copyright (c) 2006 - 2015 PHPExcel (http://www.codeplex.com/PHPExcel) - * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL - * @version ##VERSION##, ##DATE## - */ -class PHPExcel_Writer_Excel2007_Comments extends PHPExcel_Writer_Excel2007_WriterPart -{ - /** - * Write comments to XML format - * - * @param PHPExcel_Worksheet $pWorksheet - * @return string XML Output - * @throws PHPExcel_Writer_Exception - */ - public function writeComments(PHPExcel_Worksheet $pWorksheet = null) - { - // Create XML writer - $objWriter = null; - if ($this->getParentWriter()->getUseDiskCaching()) { - $objWriter = new PHPExcel_Shared_XMLWriter(PHPExcel_Shared_XMLWriter::STORAGE_DISK, $this->getParentWriter()->getDiskCachingDirectory()); - } else { - $objWriter = new PHPExcel_Shared_XMLWriter(PHPExcel_Shared_XMLWriter::STORAGE_MEMORY); - } - - // XML header - $objWriter->startDocument('1.0', 'UTF-8', 'yes'); - - // Comments cache - $comments = $pWorksheet->getComments(); - - // Authors cache - $authors = array(); - $authorId = 0; - foreach ($comments as $comment) { - if (!isset($authors[$comment->getAuthor()])) { - $authors[$comment->getAuthor()] = $authorId++; - } - } - - // comments - $objWriter->startElement('comments'); - $objWriter->writeAttribute('xmlns', 'http://schemas.openxmlformats.org/spreadsheetml/2006/main'); - - // Loop through authors - $objWriter->startElement('authors'); - foreach ($authors as $author => $index) { - $objWriter->writeElement('author', $author); - } - $objWriter->endElement(); - - // Loop through comments - $objWriter->startElement('commentList'); - foreach ($comments as $key => $value) { - $this->writeComment($objWriter, $key, $value, $authors); - } - $objWriter->endElement(); - - $objWriter->endElement(); - - // Return - return $objWriter->getData(); - } - - /** - * Write comment to XML format - * - * @param PHPExcel_Shared_XMLWriter $objWriter XML Writer - * @param string $pCellReference Cell reference - * @param PHPExcel_Comment $pComment Comment - * @param array $pAuthors Array of authors - * @throws PHPExcel_Writer_Exception - */ - private function writeComment(PHPExcel_Shared_XMLWriter $objWriter = null, $pCellReference = 'A1', PHPExcel_Comment $pComment = null, $pAuthors = null) - { - // comment - $objWriter->startElement('comment'); - $objWriter->writeAttribute('ref', $pCellReference); - $objWriter->writeAttribute('authorId', $pAuthors[$pComment->getAuthor()]); - - // text - $objWriter->startElement('text'); - $this->getParentWriter()->getWriterPart('stringtable')->writeRichText($objWriter, $pComment->getText()); - $objWriter->endElement(); - - $objWriter->endElement(); - } - - /** - * Write VML comments to XML format - * - * @param PHPExcel_Worksheet $pWorksheet - * @return string XML Output - * @throws PHPExcel_Writer_Exception - */ - public function writeVMLComments(PHPExcel_Worksheet $pWorksheet = null) - { - // Create XML writer - $objWriter = null; - if ($this->getParentWriter()->getUseDiskCaching()) { - $objWriter = new PHPExcel_Shared_XMLWriter(PHPExcel_Shared_XMLWriter::STORAGE_DISK, $this->getParentWriter()->getDiskCachingDirectory()); - } else { - $objWriter = new PHPExcel_Shared_XMLWriter(PHPExcel_Shared_XMLWriter::STORAGE_MEMORY); - } - - // XML header - $objWriter->startDocument('1.0', 'UTF-8', 'yes'); - - // Comments cache - $comments = $pWorksheet->getComments(); - - // xml - $objWriter->startElement('xml'); - $objWriter->writeAttribute('xmlns:v', 'urn:schemas-microsoft-com:vml'); - $objWriter->writeAttribute('xmlns:o', 'urn:schemas-microsoft-com:office:office'); - $objWriter->writeAttribute('xmlns:x', 'urn:schemas-microsoft-com:office:excel'); - - // o:shapelayout - $objWriter->startElement('o:shapelayout'); - $objWriter->writeAttribute('v:ext', 'edit'); - - // o:idmap - $objWriter->startElement('o:idmap'); - $objWriter->writeAttribute('v:ext', 'edit'); - $objWriter->writeAttribute('data', '1'); - $objWriter->endElement(); - - $objWriter->endElement(); - - // v:shapetype - $objWriter->startElement('v:shapetype'); - $objWriter->writeAttribute('id', '_x0000_t202'); - $objWriter->writeAttribute('coordsize', '21600,21600'); - $objWriter->writeAttribute('o:spt', '202'); - $objWriter->writeAttribute('path', 'm,l,21600r21600,l21600,xe'); - - // v:stroke - $objWriter->startElement('v:stroke'); - $objWriter->writeAttribute('joinstyle', 'miter'); - $objWriter->endElement(); - - // v:path - $objWriter->startElement('v:path'); - $objWriter->writeAttribute('gradientshapeok', 't'); - $objWriter->writeAttribute('o:connecttype', 'rect'); - $objWriter->endElement(); - - $objWriter->endElement(); - - // Loop through comments - foreach ($comments as $key => $value) { - $this->writeVMLComment($objWriter, $key, $value); - } - - $objWriter->endElement(); - - // Return - return $objWriter->getData(); - } - - /** - * Write VML comment to XML format - * - * @param PHPExcel_Shared_XMLWriter $objWriter XML Writer - * @param string $pCellReference Cell reference - * @param PHPExcel_Comment $pComment Comment - * @throws PHPExcel_Writer_Exception - */ - private function writeVMLComment(PHPExcel_Shared_XMLWriter $objWriter = null, $pCellReference = 'A1', PHPExcel_Comment $pComment = null) - { - // Metadata - list($column, $row) = PHPExcel_Cell::coordinateFromString($pCellReference); - $column = PHPExcel_Cell::columnIndexFromString($column); - $id = 1024 + $column + $row; - $id = substr($id, 0, 4); - - // v:shape - $objWriter->startElement('v:shape'); - $objWriter->writeAttribute('id', '_x0000_s' . $id); - $objWriter->writeAttribute('type', '#_x0000_t202'); - $objWriter->writeAttribute('style', 'position:absolute;margin-left:' . $pComment->getMarginLeft() . ';margin-top:' . $pComment->getMarginTop() . ';width:' . $pComment->getWidth() . ';height:' . $pComment->getHeight() . ';z-index:1;visibility:' . ($pComment->getVisible() ? 'visible' : 'hidden')); - $objWriter->writeAttribute('fillcolor', '#' . $pComment->getFillColor()->getRGB()); - $objWriter->writeAttribute('o:insetmode', 'auto'); - - // v:fill - $objWriter->startElement('v:fill'); - $objWriter->writeAttribute('color2', '#' . $pComment->getFillColor()->getRGB()); - $objWriter->endElement(); - - // v:shadow - $objWriter->startElement('v:shadow'); - $objWriter->writeAttribute('on', 't'); - $objWriter->writeAttribute('color', 'black'); - $objWriter->writeAttribute('obscured', 't'); - $objWriter->endElement(); - - // v:path - $objWriter->startElement('v:path'); - $objWriter->writeAttribute('o:connecttype', 'none'); - $objWriter->endElement(); - - // v:textbox - $objWriter->startElement('v:textbox'); - $objWriter->writeAttribute('style', 'mso-direction-alt:auto'); - - // div - $objWriter->startElement('div'); - $objWriter->writeAttribute('style', 'text-align:left'); - $objWriter->endElement(); - - $objWriter->endElement(); - - // x:ClientData - $objWriter->startElement('x:ClientData'); - $objWriter->writeAttribute('ObjectType', 'Note'); - - // x:MoveWithCells - $objWriter->writeElement('x:MoveWithCells', ''); - - // x:SizeWithCells - $objWriter->writeElement('x:SizeWithCells', ''); - - // x:Anchor - //$objWriter->writeElement('x:Anchor', $column . ', 15, ' . ($row - 2) . ', 10, ' . ($column + 4) . ', 15, ' . ($row + 5) . ', 18'); - - // x:AutoFill - $objWriter->writeElement('x:AutoFill', 'False'); - - // x:Row - $objWriter->writeElement('x:Row', ($row - 1)); - - // x:Column - $objWriter->writeElement('x:Column', ($column - 1)); - - $objWriter->endElement(); - - $objWriter->endElement(); - } -} diff --git a/Utils/PHPExcel/Writer/Excel2007/ContentTypes.php b/Utils/PHPExcel/Writer/Excel2007/ContentTypes.php deleted file mode 100644 index b611185..0000000 --- a/Utils/PHPExcel/Writer/Excel2007/ContentTypes.php +++ /dev/null @@ -1,240 +0,0 @@ -<?php - -/** - * PHPExcel_Writer_Excel2007_ContentTypes - * - * Copyright (c) 2006 - 2015 PHPExcel - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - * - * @category PHPExcel - * @package PHPExcel_Writer_Excel2007 - * @copyright Copyright (c) 2006 - 2015 PHPExcel (http://www.codeplex.com/PHPExcel) - * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL - * @version ##VERSION##, ##DATE## - */ -class PHPExcel_Writer_Excel2007_ContentTypes extends PHPExcel_Writer_Excel2007_WriterPart -{ - /** - * Write content types to XML format - * - * @param PHPExcel $pPHPExcel - * @param boolean $includeCharts Flag indicating if we should include drawing details for charts - * @return string XML Output - * @throws PHPExcel_Writer_Exception - */ - public function writeContentTypes(PHPExcel $pPHPExcel = null, $includeCharts = false) - { - // Create XML writer - $objWriter = null; - if ($this->getParentWriter()->getUseDiskCaching()) { - $objWriter = new PHPExcel_Shared_XMLWriter(PHPExcel_Shared_XMLWriter::STORAGE_DISK, $this->getParentWriter()->getDiskCachingDirectory()); - } else { - $objWriter = new PHPExcel_Shared_XMLWriter(PHPExcel_Shared_XMLWriter::STORAGE_MEMORY); - } - - // XML header - $objWriter->startDocument('1.0', 'UTF-8', 'yes'); - - // Types - $objWriter->startElement('Types'); - $objWriter->writeAttribute('xmlns', 'http://schemas.openxmlformats.org/package/2006/content-types'); - - // Theme - $this->writeOverrideContentType($objWriter, '/xl/theme/theme1.xml', 'application/vnd.openxmlformats-officedocument.theme+xml'); - - // Styles - $this->writeOverrideContentType($objWriter, '/xl/styles.xml', 'application/vnd.openxmlformats-officedocument.spreadsheetml.styles+xml'); - - // Rels - $this->writeDefaultContentType($objWriter, 'rels', 'application/vnd.openxmlformats-package.relationships+xml'); - - // XML - $this->writeDefaultContentType($objWriter, 'xml', 'application/xml'); - - // VML - $this->writeDefaultContentType($objWriter, 'vml', 'application/vnd.openxmlformats-officedocument.vmlDrawing'); - - // Workbook - if ($pPHPExcel->hasMacros()) { //Macros in workbook ? - // Yes : not standard content but "macroEnabled" - $this->writeOverrideContentType($objWriter, '/xl/workbook.xml', 'application/vnd.ms-excel.sheet.macroEnabled.main+xml'); - //... and define a new type for the VBA project - $this->writeDefaultContentType($objWriter, 'bin', 'application/vnd.ms-office.vbaProject'); - if ($pPHPExcel->hasMacrosCertificate()) {// signed macros ? - // Yes : add needed information - $this->writeOverrideContentType($objWriter, '/xl/vbaProjectSignature.bin', 'application/vnd.ms-office.vbaProjectSignature'); - } - } else {// no macros in workbook, so standard type - $this->writeOverrideContentType($objWriter, '/xl/workbook.xml', 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet.main+xml'); - } - - // DocProps - $this->writeOverrideContentType($objWriter, '/docProps/app.xml', 'application/vnd.openxmlformats-officedocument.extended-properties+xml'); - - $this->writeOverrideContentType($objWriter, '/docProps/core.xml', 'application/vnd.openxmlformats-package.core-properties+xml'); - - $customPropertyList = $pPHPExcel->getProperties()->getCustomProperties(); - if (!empty($customPropertyList)) { - $this->writeOverrideContentType($objWriter, '/docProps/custom.xml', 'application/vnd.openxmlformats-officedocument.custom-properties+xml'); - } - - // Worksheets - $sheetCount = $pPHPExcel->getSheetCount(); - for ($i = 0; $i < $sheetCount; ++$i) { - $this->writeOverrideContentType($objWriter, '/xl/worksheets/sheet' . ($i + 1) . '.xml', 'application/vnd.openxmlformats-officedocument.spreadsheetml.worksheet+xml'); - } - - // Shared strings - $this->writeOverrideContentType($objWriter, '/xl/sharedStrings.xml', 'application/vnd.openxmlformats-officedocument.spreadsheetml.sharedStrings+xml'); - - // Add worksheet relationship content types - $chart = 1; - for ($i = 0; $i < $sheetCount; ++$i) { - $drawings = $pPHPExcel->getSheet($i)->getDrawingCollection(); - $drawingCount = count($drawings); - $chartCount = ($includeCharts) ? $pPHPExcel->getSheet($i)->getChartCount() : 0; - - // We need a drawing relationship for the worksheet if we have either drawings or charts - if (($drawingCount > 0) || ($chartCount > 0)) { - $this->writeOverrideContentType($objWriter, '/xl/drawings/drawing' . ($i + 1) . '.xml', 'application/vnd.openxmlformats-officedocument.drawing+xml'); - } - - // If we have charts, then we need a chart relationship for every individual chart - if ($chartCount > 0) { - for ($c = 0; $c < $chartCount; ++$c) { - $this->writeOverrideContentType($objWriter, '/xl/charts/chart' . $chart++ . '.xml', 'application/vnd.openxmlformats-officedocument.drawingml.chart+xml'); - } - } - } - - // Comments - for ($i = 0; $i < $sheetCount; ++$i) { - if (count($pPHPExcel->getSheet($i)->getComments()) > 0) { - $this->writeOverrideContentType($objWriter, '/xl/comments' . ($i + 1) . '.xml', 'application/vnd.openxmlformats-officedocument.spreadsheetml.comments+xml'); - } - } - - // Add media content-types - $aMediaContentTypes = array(); - $mediaCount = $this->getParentWriter()->getDrawingHashTable()->count(); - for ($i = 0; $i < $mediaCount; ++$i) { - $extension = ''; - $mimeType = ''; - - if ($this->getParentWriter()->getDrawingHashTable()->getByIndex($i) instanceof PHPExcel_Worksheet_Drawing) { - $extension = strtolower($this->getParentWriter()->getDrawingHashTable()->getByIndex($i)->getExtension()); - $mimeType = $this->getImageMimeType($this->getParentWriter()->getDrawingHashTable()->getByIndex($i)->getPath()); - } elseif ($this->getParentWriter()->getDrawingHashTable()->getByIndex($i) instanceof PHPExcel_Worksheet_MemoryDrawing) { - $extension = strtolower($this->getParentWriter()->getDrawingHashTable()->getByIndex($i)->getMimeType()); - $extension = explode('/', $extension); - $extension = $extension[1]; - - $mimeType = $this->getParentWriter()->getDrawingHashTable()->getByIndex($i)->getMimeType(); - } - - if (!isset( $aMediaContentTypes[$extension])) { - $aMediaContentTypes[$extension] = $mimeType; - - $this->writeDefaultContentType($objWriter, $extension, $mimeType); - } - } - if ($pPHPExcel->hasRibbonBinObjects()) { - // Some additional objects in the ribbon ? - // we need to write "Extension" but not already write for media content - $tabRibbonTypes=array_diff($pPHPExcel->getRibbonBinObjects('types'), array_keys($aMediaContentTypes)); - foreach ($tabRibbonTypes as $aRibbonType) { - $mimeType='image/.'.$aRibbonType;//we wrote $mimeType like customUI Editor - $this->writeDefaultContentType($objWriter, $aRibbonType, $mimeType); - } - } - $sheetCount = $pPHPExcel->getSheetCount(); - for ($i = 0; $i < $sheetCount; ++$i) { - if (count($pPHPExcel->getSheet()->getHeaderFooter()->getImages()) > 0) { - foreach ($pPHPExcel->getSheet()->getHeaderFooter()->getImages() as $image) { - if (!isset( $aMediaContentTypes[strtolower($image->getExtension())])) { - $aMediaContentTypes[strtolower($image->getExtension())] = $this->getImageMimeType($image->getPath()); - - $this->writeDefaultContentType($objWriter, strtolower($image->getExtension()), $aMediaContentTypes[strtolower($image->getExtension())]); - } - } - } - } - - $objWriter->endElement(); - - // Return - return $objWriter->getData(); - } - - /** - * Write Override content type - * - * @param PHPExcel_Shared_XMLWriter $objWriter XML Writer - * @param string $pPartname Part name - * @param string $pContentType Content type - * @throws PHPExcel_Writer_Exception - */ - private function writeOverrideContentType(PHPExcel_Shared_XMLWriter $objWriter = null, $pPartname = '', $pContentType = '') - { - if ($pPartname != '' && $pContentType != '') { - // Write content type - $objWriter->startElement('Override'); - $objWriter->writeAttribute('PartName', $pPartname); - $objWriter->writeAttribute('ContentType', $pContentType); - $objWriter->endElement(); - } else { - throw new PHPExcel_Writer_Exception("Invalid parameters passed."); - } - } - - /** - * Write Default content type - * - * @param PHPExcel_Shared_XMLWriter $objWriter XML Writer - * @param string $pPartname Part name - * @param string $pContentType Content type - * @throws PHPExcel_Writer_Exception - */ - private function writeDefaultContentType(PHPExcel_Shared_XMLWriter $objWriter = null, $pPartname = '', $pContentType = '') - { - if ($pPartname != '' && $pContentType != '') { - // Write content type - $objWriter->startElement('Default'); - $objWriter->writeAttribute('Extension', $pPartname); - $objWriter->writeAttribute('ContentType', $pContentType); - $objWriter->endElement(); - } else { - throw new PHPExcel_Writer_Exception("Invalid parameters passed."); - } - } - - /** - * Get image mime type - * - * @param string $pFile Filename - * @return string Mime Type - * @throws PHPExcel_Writer_Exception - */ - private function getImageMimeType($pFile = '') - { - if (PHPExcel_Shared_File::file_exists($pFile)) { - $image = getimagesize($pFile); - return image_type_to_mime_type($image[2]); - } else { - throw new PHPExcel_Writer_Exception("File $pFile does not exist"); - } - } -} diff --git a/Utils/PHPExcel/Writer/Excel2007/DocProps.php b/Utils/PHPExcel/Writer/Excel2007/DocProps.php deleted file mode 100644 index fef3d93..0000000 --- a/Utils/PHPExcel/Writer/Excel2007/DocProps.php +++ /dev/null @@ -1,262 +0,0 @@ -<?php - -/** - * PHPExcel_Writer_Excel2007_DocProps - * - * Copyright (c) 2006 - 2015 PHPExcel - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - * - * @category PHPExcel - * @package PHPExcel_Writer_Excel2007 - * @copyright Copyright (c) 2006 - 2015 PHPExcel (http://www.codeplex.com/PHPExcel) - * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL - * @version ##VERSION##, ##DATE## - */ -class PHPExcel_Writer_Excel2007_DocProps extends PHPExcel_Writer_Excel2007_WriterPart -{ - /** - * Write docProps/app.xml to XML format - * - * @param PHPExcel $pPHPExcel - * @return string XML Output - * @throws PHPExcel_Writer_Exception - */ - public function writeDocPropsApp(PHPExcel $pPHPExcel = null) - { - // Create XML writer - $objWriter = null; - if ($this->getParentWriter()->getUseDiskCaching()) { - $objWriter = new PHPExcel_Shared_XMLWriter(PHPExcel_Shared_XMLWriter::STORAGE_DISK, $this->getParentWriter()->getDiskCachingDirectory()); - } else { - $objWriter = new PHPExcel_Shared_XMLWriter(PHPExcel_Shared_XMLWriter::STORAGE_MEMORY); - } - - // XML header - $objWriter->startDocument('1.0', 'UTF-8', 'yes'); - - // Properties - $objWriter->startElement('Properties'); - $objWriter->writeAttribute('xmlns', 'http://schemas.openxmlformats.org/officeDocument/2006/extended-properties'); - $objWriter->writeAttribute('xmlns:vt', 'http://schemas.openxmlformats.org/officeDocument/2006/docPropsVTypes'); - - // Application - $objWriter->writeElement('Application', 'Microsoft Excel'); - - // DocSecurity - $objWriter->writeElement('DocSecurity', '0'); - - // ScaleCrop - $objWriter->writeElement('ScaleCrop', 'false'); - - // HeadingPairs - $objWriter->startElement('HeadingPairs'); - - // Vector - $objWriter->startElement('vt:vector'); - $objWriter->writeAttribute('size', '2'); - $objWriter->writeAttribute('baseType', 'variant'); - - // Variant - $objWriter->startElement('vt:variant'); - $objWriter->writeElement('vt:lpstr', 'Worksheets'); - $objWriter->endElement(); - - // Variant - $objWriter->startElement('vt:variant'); - $objWriter->writeElement('vt:i4', $pPHPExcel->getSheetCount()); - $objWriter->endElement(); - - $objWriter->endElement(); - - $objWriter->endElement(); - - // TitlesOfParts - $objWriter->startElement('TitlesOfParts'); - - // Vector - $objWriter->startElement('vt:vector'); - $objWriter->writeAttribute('size', $pPHPExcel->getSheetCount()); - $objWriter->writeAttribute('baseType', 'lpstr'); - - $sheetCount = $pPHPExcel->getSheetCount(); - for ($i = 0; $i < $sheetCount; ++$i) { - $objWriter->writeElement('vt:lpstr', $pPHPExcel->getSheet($i)->getTitle()); - } - - $objWriter->endElement(); - - $objWriter->endElement(); - - // Company - $objWriter->writeElement('Company', $pPHPExcel->getProperties()->getCompany()); - - // Company - $objWriter->writeElement('Manager', $pPHPExcel->getProperties()->getManager()); - - // LinksUpToDate - $objWriter->writeElement('LinksUpToDate', 'false'); - - // SharedDoc - $objWriter->writeElement('SharedDoc', 'false'); - - // HyperlinksChanged - $objWriter->writeElement('HyperlinksChanged', 'false'); - - // AppVersion - $objWriter->writeElement('AppVersion', '12.0000'); - - $objWriter->endElement(); - - // Return - return $objWriter->getData(); - } - - /** - * Write docProps/core.xml to XML format - * - * @param PHPExcel $pPHPExcel - * @return string XML Output - * @throws PHPExcel_Writer_Exception - */ - public function writeDocPropsCore(PHPExcel $pPHPExcel = null) - { - // Create XML writer - $objWriter = null; - if ($this->getParentWriter()->getUseDiskCaching()) { - $objWriter = new PHPExcel_Shared_XMLWriter(PHPExcel_Shared_XMLWriter::STORAGE_DISK, $this->getParentWriter()->getDiskCachingDirectory()); - } else { - $objWriter = new PHPExcel_Shared_XMLWriter(PHPExcel_Shared_XMLWriter::STORAGE_MEMORY); - } - - // XML header - $objWriter->startDocument('1.0', 'UTF-8', 'yes'); - - // cp:coreProperties - $objWriter->startElement('cp:coreProperties'); - $objWriter->writeAttribute('xmlns:cp', 'http://schemas.openxmlformats.org/package/2006/metadata/core-properties'); - $objWriter->writeAttribute('xmlns:dc', 'http://purl.org/dc/elements/1.1/'); - $objWriter->writeAttribute('xmlns:dcterms', 'http://purl.org/dc/terms/'); - $objWriter->writeAttribute('xmlns:dcmitype', 'http://purl.org/dc/dcmitype/'); - $objWriter->writeAttribute('xmlns:xsi', 'http://www.w3.org/2001/XMLSchema-instance'); - - // dc:creator - $objWriter->writeElement('dc:creator', $pPHPExcel->getProperties()->getCreator()); - - // cp:lastModifiedBy - $objWriter->writeElement('cp:lastModifiedBy', $pPHPExcel->getProperties()->getLastModifiedBy()); - - // dcterms:created - $objWriter->startElement('dcterms:created'); - $objWriter->writeAttribute('xsi:type', 'dcterms:W3CDTF'); - $objWriter->writeRawData(date(DATE_W3C, $pPHPExcel->getProperties()->getCreated())); - $objWriter->endElement(); - - // dcterms:modified - $objWriter->startElement('dcterms:modified'); - $objWriter->writeAttribute('xsi:type', 'dcterms:W3CDTF'); - $objWriter->writeRawData(date(DATE_W3C, $pPHPExcel->getProperties()->getModified())); - $objWriter->endElement(); - - // dc:title - $objWriter->writeElement('dc:title', $pPHPExcel->getProperties()->getTitle()); - - // dc:description - $objWriter->writeElement('dc:description', $pPHPExcel->getProperties()->getDescription()); - - // dc:subject - $objWriter->writeElement('dc:subject', $pPHPExcel->getProperties()->getSubject()); - - // cp:keywords - $objWriter->writeElement('cp:keywords', $pPHPExcel->getProperties()->getKeywords()); - - // cp:category - $objWriter->writeElement('cp:category', $pPHPExcel->getProperties()->getCategory()); - - $objWriter->endElement(); - - // Return - return $objWriter->getData(); - } - - /** - * Write docProps/custom.xml to XML format - * - * @param PHPExcel $pPHPExcel - * @return string XML Output - * @throws PHPExcel_Writer_Exception - */ - public function writeDocPropsCustom(PHPExcel $pPHPExcel = null) - { - $customPropertyList = $pPHPExcel->getProperties()->getCustomProperties(); - if (empty($customPropertyList)) { - return; - } - - // Create XML writer - $objWriter = null; - if ($this->getParentWriter()->getUseDiskCaching()) { - $objWriter = new PHPExcel_Shared_XMLWriter(PHPExcel_Shared_XMLWriter::STORAGE_DISK, $this->getParentWriter()->getDiskCachingDirectory()); - } else { - $objWriter = new PHPExcel_Shared_XMLWriter(PHPExcel_Shared_XMLWriter::STORAGE_MEMORY); - } - - // XML header - $objWriter->startDocument('1.0', 'UTF-8', 'yes'); - - // cp:coreProperties - $objWriter->startElement('Properties'); - $objWriter->writeAttribute('xmlns', 'http://schemas.openxmlformats.org/officeDocument/2006/custom-properties'); - $objWriter->writeAttribute('xmlns:vt', 'http://schemas.openxmlformats.org/officeDocument/2006/docPropsVTypes'); - - - foreach ($customPropertyList as $key => $customProperty) { - $propertyValue = $pPHPExcel->getProperties()->getCustomPropertyValue($customProperty); - $propertyType = $pPHPExcel->getProperties()->getCustomPropertyType($customProperty); - - $objWriter->startElement('property'); - $objWriter->writeAttribute('fmtid', '{D5CDD505-2E9C-101B-9397-08002B2CF9AE}'); - $objWriter->writeAttribute('pid', $key+2); - $objWriter->writeAttribute('name', $customProperty); - - switch ($propertyType) { - case 'i': - $objWriter->writeElement('vt:i4', $propertyValue); - break; - case 'f': - $objWriter->writeElement('vt:r8', $propertyValue); - break; - case 'b': - $objWriter->writeElement('vt:bool', ($propertyValue) ? 'true' : 'false'); - break; - case 'd': - $objWriter->startElement('vt:filetime'); - $objWriter->writeRawData(date(DATE_W3C, $propertyValue)); - $objWriter->endElement(); - break; - default: - $objWriter->writeElement('vt:lpwstr', $propertyValue); - break; - } - - $objWriter->endElement(); - } - - - $objWriter->endElement(); - - return $objWriter->getData(); - } -} diff --git a/Utils/PHPExcel/Writer/Excel2007/Drawing.php b/Utils/PHPExcel/Writer/Excel2007/Drawing.php deleted file mode 100644 index 2814388..0000000 --- a/Utils/PHPExcel/Writer/Excel2007/Drawing.php +++ /dev/null @@ -1,589 +0,0 @@ -<?php - -/** - * PHPExcel_Writer_Excel2007_Drawing - * - * Copyright (c) 2006 - 2015 PHPExcel - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - * - * @category PHPExcel - * @package PHPExcel_Writer_Excel2007 - * @copyright Copyright (c) 2006 - 2015 PHPExcel (http://www.codeplex.com/PHPExcel) - * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL - * @version ##VERSION##, ##DATE## - */ -class PHPExcel_Writer_Excel2007_Drawing extends PHPExcel_Writer_Excel2007_WriterPart -{ - /** - * Write drawings to XML format - * - * @param PHPExcel_Worksheet $pWorksheet - * @param int &$chartRef Chart ID - * @param boolean $includeCharts Flag indicating if we should include drawing details for charts - * @return string XML Output - * @throws PHPExcel_Writer_Exception - */ - public function writeDrawings(PHPExcel_Worksheet $pWorksheet = null, &$chartRef, $includeCharts = false) - { - // Create XML writer - $objWriter = null; - if ($this->getParentWriter()->getUseDiskCaching()) { - $objWriter = new PHPExcel_Shared_XMLWriter(PHPExcel_Shared_XMLWriter::STORAGE_DISK, $this->getParentWriter()->getDiskCachingDirectory()); - } else { - $objWriter = new PHPExcel_Shared_XMLWriter(PHPExcel_Shared_XMLWriter::STORAGE_MEMORY); - } - - // XML header - $objWriter->startDocument('1.0', 'UTF-8', 'yes'); - - // xdr:wsDr - $objWriter->startElement('xdr:wsDr'); - $objWriter->writeAttribute('xmlns:xdr', 'http://schemas.openxmlformats.org/drawingml/2006/spreadsheetDrawing'); - $objWriter->writeAttribute('xmlns:a', 'http://schemas.openxmlformats.org/drawingml/2006/main'); - - // Loop through images and write drawings - $i = 1; - $iterator = $pWorksheet->getDrawingCollection()->getIterator(); - while ($iterator->valid()) { - $this->writeDrawing($objWriter, $iterator->current(), $i); - - $iterator->next(); - ++$i; - } - - if ($includeCharts) { - $chartCount = $pWorksheet->getChartCount(); - // Loop through charts and write the chart position - if ($chartCount > 0) { - for ($c = 0; $c < $chartCount; ++$c) { - $this->writeChart($objWriter, $pWorksheet->getChartByIndex($c), $c+$i); - } - } - } - - $objWriter->endElement(); - - // Return - return $objWriter->getData(); - } - - /** - * Write drawings to XML format - * - * @param PHPExcel_Shared_XMLWriter $objWriter XML Writer - * @param PHPExcel_Chart $pChart - * @param int $pRelationId - * @throws PHPExcel_Writer_Exception - */ - public function writeChart(PHPExcel_Shared_XMLWriter $objWriter = null, PHPExcel_Chart $pChart = null, $pRelationId = -1) - { - $tl = $pChart->getTopLeftPosition(); - $tl['colRow'] = PHPExcel_Cell::coordinateFromString($tl['cell']); - $br = $pChart->getBottomRightPosition(); - $br['colRow'] = PHPExcel_Cell::coordinateFromString($br['cell']); - - $objWriter->startElement('xdr:twoCellAnchor'); - - $objWriter->startElement('xdr:from'); - $objWriter->writeElement('xdr:col', PHPExcel_Cell::columnIndexFromString($tl['colRow'][0]) - 1); - $objWriter->writeElement('xdr:colOff', PHPExcel_Shared_Drawing::pixelsToEMU($tl['xOffset'])); - $objWriter->writeElement('xdr:row', $tl['colRow'][1] - 1); - $objWriter->writeElement('xdr:rowOff', PHPExcel_Shared_Drawing::pixelsToEMU($tl['yOffset'])); - $objWriter->endElement(); - $objWriter->startElement('xdr:to'); - $objWriter->writeElement('xdr:col', PHPExcel_Cell::columnIndexFromString($br['colRow'][0]) - 1); - $objWriter->writeElement('xdr:colOff', PHPExcel_Shared_Drawing::pixelsToEMU($br['xOffset'])); - $objWriter->writeElement('xdr:row', $br['colRow'][1] - 1); - $objWriter->writeElement('xdr:rowOff', PHPExcel_Shared_Drawing::pixelsToEMU($br['yOffset'])); - $objWriter->endElement(); - - $objWriter->startElement('xdr:graphicFrame'); - $objWriter->writeAttribute('macro', ''); - $objWriter->startElement('xdr:nvGraphicFramePr'); - $objWriter->startElement('xdr:cNvPr'); - $objWriter->writeAttribute('name', 'Chart '.$pRelationId); - $objWriter->writeAttribute('id', 1025 * $pRelationId); - $objWriter->endElement(); - $objWriter->startElement('xdr:cNvGraphicFramePr'); - $objWriter->startElement('a:graphicFrameLocks'); - $objWriter->endElement(); - $objWriter->endElement(); - $objWriter->endElement(); - - $objWriter->startElement('xdr:xfrm'); - $objWriter->startElement('a:off'); - $objWriter->writeAttribute('x', '0'); - $objWriter->writeAttribute('y', '0'); - $objWriter->endElement(); - $objWriter->startElement('a:ext'); - $objWriter->writeAttribute('cx', '0'); - $objWriter->writeAttribute('cy', '0'); - $objWriter->endElement(); - $objWriter->endElement(); - - $objWriter->startElement('a:graphic'); - $objWriter->startElement('a:graphicData'); - $objWriter->writeAttribute('uri', 'http://schemas.openxmlformats.org/drawingml/2006/chart'); - $objWriter->startElement('c:chart'); - $objWriter->writeAttribute('xmlns:c', 'http://schemas.openxmlformats.org/drawingml/2006/chart'); - $objWriter->writeAttribute('xmlns:r', 'http://schemas.openxmlformats.org/officeDocument/2006/relationships'); - $objWriter->writeAttribute('r:id', 'rId'.$pRelationId); - $objWriter->endElement(); - $objWriter->endElement(); - $objWriter->endElement(); - $objWriter->endElement(); - - $objWriter->startElement('xdr:clientData'); - $objWriter->endElement(); - - $objWriter->endElement(); - } - - /** - * Write drawings to XML format - * - * @param PHPExcel_Shared_XMLWriter $objWriter XML Writer - * @param PHPExcel_Worksheet_BaseDrawing $pDrawing - * @param int $pRelationId - * @throws PHPExcel_Writer_Exception - */ - public function writeDrawing(PHPExcel_Shared_XMLWriter $objWriter = null, PHPExcel_Worksheet_BaseDrawing $pDrawing = null, $pRelationId = -1) - { - if ($pRelationId >= 0) { - // xdr:oneCellAnchor - $objWriter->startElement('xdr:oneCellAnchor'); - // Image location - $aCoordinates = PHPExcel_Cell::coordinateFromString($pDrawing->getCoordinates()); - $aCoordinates[0] = PHPExcel_Cell::columnIndexFromString($aCoordinates[0]); - - // xdr:from - $objWriter->startElement('xdr:from'); - $objWriter->writeElement('xdr:col', $aCoordinates[0] - 1); - $objWriter->writeElement('xdr:colOff', PHPExcel_Shared_Drawing::pixelsToEMU($pDrawing->getOffsetX())); - $objWriter->writeElement('xdr:row', $aCoordinates[1] - 1); - $objWriter->writeElement('xdr:rowOff', PHPExcel_Shared_Drawing::pixelsToEMU($pDrawing->getOffsetY())); - $objWriter->endElement(); - - // xdr:ext - $objWriter->startElement('xdr:ext'); - $objWriter->writeAttribute('cx', PHPExcel_Shared_Drawing::pixelsToEMU($pDrawing->getWidth())); - $objWriter->writeAttribute('cy', PHPExcel_Shared_Drawing::pixelsToEMU($pDrawing->getHeight())); - $objWriter->endElement(); - - // xdr:pic - $objWriter->startElement('xdr:pic'); - - // xdr:nvPicPr - $objWriter->startElement('xdr:nvPicPr'); - - // xdr:cNvPr - $objWriter->startElement('xdr:cNvPr'); - $objWriter->writeAttribute('id', $pRelationId); - $objWriter->writeAttribute('name', $pDrawing->getName()); - $objWriter->writeAttribute('descr', $pDrawing->getDescription()); - $objWriter->endElement(); - - // xdr:cNvPicPr - $objWriter->startElement('xdr:cNvPicPr'); - - // a:picLocks - $objWriter->startElement('a:picLocks'); - $objWriter->writeAttribute('noChangeAspect', '1'); - $objWriter->endElement(); - - $objWriter->endElement(); - - $objWriter->endElement(); - - // xdr:blipFill - $objWriter->startElement('xdr:blipFill'); - - // a:blip - $objWriter->startElement('a:blip'); - $objWriter->writeAttribute('xmlns:r', 'http://schemas.openxmlformats.org/officeDocument/2006/relationships'); - $objWriter->writeAttribute('r:embed', 'rId' . $pRelationId); - $objWriter->endElement(); - - // a:stretch - $objWriter->startElement('a:stretch'); - $objWriter->writeElement('a:fillRect', null); - $objWriter->endElement(); - - $objWriter->endElement(); - - // xdr:spPr - $objWriter->startElement('xdr:spPr'); - - // a:xfrm - $objWriter->startElement('a:xfrm'); - $objWriter->writeAttribute('rot', PHPExcel_Shared_Drawing::degreesToAngle($pDrawing->getRotation())); - $objWriter->endElement(); - - // a:prstGeom - $objWriter->startElement('a:prstGeom'); - $objWriter->writeAttribute('prst', 'rect'); - - // a:avLst - $objWriter->writeElement('a:avLst', null); - - $objWriter->endElement(); - -// // a:solidFill -// $objWriter->startElement('a:solidFill'); - -// // a:srgbClr -// $objWriter->startElement('a:srgbClr'); -// $objWriter->writeAttribute('val', 'FFFFFF'); - -///* SHADE -// // a:shade -// $objWriter->startElement('a:shade'); -// $objWriter->writeAttribute('val', '85000'); -// $objWriter->endElement(); -//*/ - -// $objWriter->endElement(); - -// $objWriter->endElement(); -/* - // a:ln - $objWriter->startElement('a:ln'); - $objWriter->writeAttribute('w', '88900'); - $objWriter->writeAttribute('cap', 'sq'); - - // a:solidFill - $objWriter->startElement('a:solidFill'); - - // a:srgbClr - $objWriter->startElement('a:srgbClr'); - $objWriter->writeAttribute('val', 'FFFFFF'); - $objWriter->endElement(); - - $objWriter->endElement(); - - // a:miter - $objWriter->startElement('a:miter'); - $objWriter->writeAttribute('lim', '800000'); - $objWriter->endElement(); - - $objWriter->endElement(); -*/ - - if ($pDrawing->getShadow()->getVisible()) { - // a:effectLst - $objWriter->startElement('a:effectLst'); - - // a:outerShdw - $objWriter->startElement('a:outerShdw'); - $objWriter->writeAttribute('blurRad', PHPExcel_Shared_Drawing::pixelsToEMU($pDrawing->getShadow()->getBlurRadius())); - $objWriter->writeAttribute('dist', PHPExcel_Shared_Drawing::pixelsToEMU($pDrawing->getShadow()->getDistance())); - $objWriter->writeAttribute('dir', PHPExcel_Shared_Drawing::degreesToAngle($pDrawing->getShadow()->getDirection())); - $objWriter->writeAttribute('algn', $pDrawing->getShadow()->getAlignment()); - $objWriter->writeAttribute('rotWithShape', '0'); - - // a:srgbClr - $objWriter->startElement('a:srgbClr'); - $objWriter->writeAttribute('val', $pDrawing->getShadow()->getColor()->getRGB()); - - // a:alpha - $objWriter->startElement('a:alpha'); - $objWriter->writeAttribute('val', $pDrawing->getShadow()->getAlpha() * 1000); - $objWriter->endElement(); - - $objWriter->endElement(); - - $objWriter->endElement(); - - $objWriter->endElement(); - } -/* - - // a:scene3d - $objWriter->startElement('a:scene3d'); - - // a:camera - $objWriter->startElement('a:camera'); - $objWriter->writeAttribute('prst', 'orthographicFront'); - $objWriter->endElement(); - - // a:lightRig - $objWriter->startElement('a:lightRig'); - $objWriter->writeAttribute('rig', 'twoPt'); - $objWriter->writeAttribute('dir', 't'); - - // a:rot - $objWriter->startElement('a:rot'); - $objWriter->writeAttribute('lat', '0'); - $objWriter->writeAttribute('lon', '0'); - $objWriter->writeAttribute('rev', '0'); - $objWriter->endElement(); - - $objWriter->endElement(); - - $objWriter->endElement(); -*/ -/* - // a:sp3d - $objWriter->startElement('a:sp3d'); - - // a:bevelT - $objWriter->startElement('a:bevelT'); - $objWriter->writeAttribute('w', '25400'); - $objWriter->writeAttribute('h', '19050'); - $objWriter->endElement(); - - // a:contourClr - $objWriter->startElement('a:contourClr'); - - // a:srgbClr - $objWriter->startElement('a:srgbClr'); - $objWriter->writeAttribute('val', 'FFFFFF'); - $objWriter->endElement(); - - $objWriter->endElement(); - - $objWriter->endElement(); -*/ - $objWriter->endElement(); - - $objWriter->endElement(); - - // xdr:clientData - $objWriter->writeElement('xdr:clientData', null); - - $objWriter->endElement(); - } else { - throw new PHPExcel_Writer_Exception("Invalid parameters passed."); - } - } - - /** - * Write VML header/footer images to XML format - * - * @param PHPExcel_Worksheet $pWorksheet - * @return string XML Output - * @throws PHPExcel_Writer_Exception - */ - public function writeVMLHeaderFooterImages(PHPExcel_Worksheet $pWorksheet = null) - { - // Create XML writer - $objWriter = null; - if ($this->getParentWriter()->getUseDiskCaching()) { - $objWriter = new PHPExcel_Shared_XMLWriter(PHPExcel_Shared_XMLWriter::STORAGE_DISK, $this->getParentWriter()->getDiskCachingDirectory()); - } else { - $objWriter = new PHPExcel_Shared_XMLWriter(PHPExcel_Shared_XMLWriter::STORAGE_MEMORY); - } - - // XML header - $objWriter->startDocument('1.0', 'UTF-8', 'yes'); - - // Header/footer images - $images = $pWorksheet->getHeaderFooter()->getImages(); - - // xml - $objWriter->startElement('xml'); - $objWriter->writeAttribute('xmlns:v', 'urn:schemas-microsoft-com:vml'); - $objWriter->writeAttribute('xmlns:o', 'urn:schemas-microsoft-com:office:office'); - $objWriter->writeAttribute('xmlns:x', 'urn:schemas-microsoft-com:office:excel'); - - // o:shapelayout - $objWriter->startElement('o:shapelayout'); - $objWriter->writeAttribute('v:ext', 'edit'); - - // o:idmap - $objWriter->startElement('o:idmap'); - $objWriter->writeAttribute('v:ext', 'edit'); - $objWriter->writeAttribute('data', '1'); - $objWriter->endElement(); - - $objWriter->endElement(); - - // v:shapetype - $objWriter->startElement('v:shapetype'); - $objWriter->writeAttribute('id', '_x0000_t75'); - $objWriter->writeAttribute('coordsize', '21600,21600'); - $objWriter->writeAttribute('o:spt', '75'); - $objWriter->writeAttribute('o:preferrelative', 't'); - $objWriter->writeAttribute('path', 'm@4@5l@4@11@9@11@9@5xe'); - $objWriter->writeAttribute('filled', 'f'); - $objWriter->writeAttribute('stroked', 'f'); - - // v:stroke - $objWriter->startElement('v:stroke'); - $objWriter->writeAttribute('joinstyle', 'miter'); - $objWriter->endElement(); - - // v:formulas - $objWriter->startElement('v:formulas'); - - // v:f - $objWriter->startElement('v:f'); - $objWriter->writeAttribute('eqn', 'if lineDrawn pixelLineWidth 0'); - $objWriter->endElement(); - - // v:f - $objWriter->startElement('v:f'); - $objWriter->writeAttribute('eqn', 'sum @0 1 0'); - $objWriter->endElement(); - - // v:f - $objWriter->startElement('v:f'); - $objWriter->writeAttribute('eqn', 'sum 0 0 @1'); - $objWriter->endElement(); - - // v:f - $objWriter->startElement('v:f'); - $objWriter->writeAttribute('eqn', 'prod @2 1 2'); - $objWriter->endElement(); - - // v:f - $objWriter->startElement('v:f'); - $objWriter->writeAttribute('eqn', 'prod @3 21600 pixelWidth'); - $objWriter->endElement(); - - // v:f - $objWriter->startElement('v:f'); - $objWriter->writeAttribute('eqn', 'prod @3 21600 pixelHeight'); - $objWriter->endElement(); - - // v:f - $objWriter->startElement('v:f'); - $objWriter->writeAttribute('eqn', 'sum @0 0 1'); - $objWriter->endElement(); - - // v:f - $objWriter->startElement('v:f'); - $objWriter->writeAttribute('eqn', 'prod @6 1 2'); - $objWriter->endElement(); - - // v:f - $objWriter->startElement('v:f'); - $objWriter->writeAttribute('eqn', 'prod @7 21600 pixelWidth'); - $objWriter->endElement(); - - // v:f - $objWriter->startElement('v:f'); - $objWriter->writeAttribute('eqn', 'sum @8 21600 0'); - $objWriter->endElement(); - - // v:f - $objWriter->startElement('v:f'); - $objWriter->writeAttribute('eqn', 'prod @7 21600 pixelHeight'); - $objWriter->endElement(); - - // v:f - $objWriter->startElement('v:f'); - $objWriter->writeAttribute('eqn', 'sum @10 21600 0'); - $objWriter->endElement(); - - $objWriter->endElement(); - - // v:path - $objWriter->startElement('v:path'); - $objWriter->writeAttribute('o:extrusionok', 'f'); - $objWriter->writeAttribute('gradientshapeok', 't'); - $objWriter->writeAttribute('o:connecttype', 'rect'); - $objWriter->endElement(); - - // o:lock - $objWriter->startElement('o:lock'); - $objWriter->writeAttribute('v:ext', 'edit'); - $objWriter->writeAttribute('aspectratio', 't'); - $objWriter->endElement(); - - $objWriter->endElement(); - - // Loop through images - foreach ($images as $key => $value) { - $this->writeVMLHeaderFooterImage($objWriter, $key, $value); - } - - $objWriter->endElement(); - - // Return - return $objWriter->getData(); - } - - /** - * Write VML comment to XML format - * - * @param PHPExcel_Shared_XMLWriter $objWriter XML Writer - * @param string $pReference Reference - * @param PHPExcel_Worksheet_HeaderFooterDrawing $pImage Image - * @throws PHPExcel_Writer_Exception - */ - private function writeVMLHeaderFooterImage(PHPExcel_Shared_XMLWriter $objWriter = null, $pReference = '', PHPExcel_Worksheet_HeaderFooterDrawing $pImage = null) - { - // Calculate object id - preg_match('{(\d+)}', md5($pReference), $m); - $id = 1500 + (substr($m[1], 0, 2) * 1); - - // Calculate offset - $width = $pImage->getWidth(); - $height = $pImage->getHeight(); - $marginLeft = $pImage->getOffsetX(); - $marginTop = $pImage->getOffsetY(); - - // v:shape - $objWriter->startElement('v:shape'); - $objWriter->writeAttribute('id', $pReference); - $objWriter->writeAttribute('o:spid', '_x0000_s' . $id); - $objWriter->writeAttribute('type', '#_x0000_t75'); - $objWriter->writeAttribute('style', "position:absolute;margin-left:{$marginLeft}px;margin-top:{$marginTop}px;width:{$width}px;height:{$height}px;z-index:1"); - - // v:imagedata - $objWriter->startElement('v:imagedata'); - $objWriter->writeAttribute('o:relid', 'rId' . $pReference); - $objWriter->writeAttribute('o:title', $pImage->getName()); - $objWriter->endElement(); - - // o:lock - $objWriter->startElement('o:lock'); - $objWriter->writeAttribute('v:ext', 'edit'); - $objWriter->writeAttribute('rotation', 't'); - $objWriter->endElement(); - - $objWriter->endElement(); - } - - - /** - * Get an array of all drawings - * - * @param PHPExcel $pPHPExcel - * @return PHPExcel_Worksheet_Drawing[] All drawings in PHPExcel - * @throws PHPExcel_Writer_Exception - */ - public function allDrawings(PHPExcel $pPHPExcel = null) - { - // Get an array of all drawings - $aDrawings = array(); - - // Loop through PHPExcel - $sheetCount = $pPHPExcel->getSheetCount(); - for ($i = 0; $i < $sheetCount; ++$i) { - // Loop through images and add to array - $iterator = $pPHPExcel->getSheet($i)->getDrawingCollection()->getIterator(); - while ($iterator->valid()) { - $aDrawings[] = $iterator->current(); - - $iterator->next(); - } - } - - return $aDrawings; - } -} diff --git a/Utils/PHPExcel/Writer/Excel2007/Rels.php b/Utils/PHPExcel/Writer/Excel2007/Rels.php deleted file mode 100644 index 14ff337..0000000 --- a/Utils/PHPExcel/Writer/Excel2007/Rels.php +++ /dev/null @@ -1,424 +0,0 @@ -<?php - -/** - * PHPExcel_Writer_Excel2007_Rels - * - * Copyright (c) 2006 - 2015 PHPExcel - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - * - * @category PHPExcel - * @package PHPExcel_Writer_Excel2007 - * @copyright Copyright (c) 2006 - 2015 PHPExcel (http://www.codeplex.com/PHPExcel) - * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL - * @version ##VERSION##, ##DATE## - */ -class PHPExcel_Writer_Excel2007_Rels extends PHPExcel_Writer_Excel2007_WriterPart -{ - /** - * Write relationships to XML format - * - * @param PHPExcel $pPHPExcel - * @return string XML Output - * @throws PHPExcel_Writer_Exception - */ - public function writeRelationships(PHPExcel $pPHPExcel = null) - { - // Create XML writer - $objWriter = null; - if ($this->getParentWriter()->getUseDiskCaching()) { - $objWriter = new PHPExcel_Shared_XMLWriter(PHPExcel_Shared_XMLWriter::STORAGE_DISK, $this->getParentWriter()->getDiskCachingDirectory()); - } else { - $objWriter = new PHPExcel_Shared_XMLWriter(PHPExcel_Shared_XMLWriter::STORAGE_MEMORY); - } - - // XML header - $objWriter->startDocument('1.0', 'UTF-8', 'yes'); - - // Relationships - $objWriter->startElement('Relationships'); - $objWriter->writeAttribute('xmlns', 'http://schemas.openxmlformats.org/package/2006/relationships'); - - $customPropertyList = $pPHPExcel->getProperties()->getCustomProperties(); - if (!empty($customPropertyList)) { - // Relationship docProps/app.xml - $this->writeRelationship( - $objWriter, - 4, - 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/custom-properties', - 'docProps/custom.xml' - ); - - } - - // Relationship docProps/app.xml - $this->writeRelationship( - $objWriter, - 3, - 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/extended-properties', - 'docProps/app.xml' - ); - - // Relationship docProps/core.xml - $this->writeRelationship( - $objWriter, - 2, - 'http://schemas.openxmlformats.org/package/2006/relationships/metadata/core-properties', - 'docProps/core.xml' - ); - - // Relationship xl/workbook.xml - $this->writeRelationship( - $objWriter, - 1, - 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/officeDocument', - 'xl/workbook.xml' - ); - // a custom UI in workbook ? - if ($pPHPExcel->hasRibbon()) { - $this->writeRelationShip( - $objWriter, - 5, - 'http://schemas.microsoft.com/office/2006/relationships/ui/extensibility', - $pPHPExcel->getRibbonXMLData('target') - ); - } - - $objWriter->endElement(); - - return $objWriter->getData(); - } - - /** - * Write workbook relationships to XML format - * - * @param PHPExcel $pPHPExcel - * @return string XML Output - * @throws PHPExcel_Writer_Exception - */ - public function writeWorkbookRelationships(PHPExcel $pPHPExcel = null) - { - // Create XML writer - $objWriter = null; - if ($this->getParentWriter()->getUseDiskCaching()) { - $objWriter = new PHPExcel_Shared_XMLWriter(PHPExcel_Shared_XMLWriter::STORAGE_DISK, $this->getParentWriter()->getDiskCachingDirectory()); - } else { - $objWriter = new PHPExcel_Shared_XMLWriter(PHPExcel_Shared_XMLWriter::STORAGE_MEMORY); - } - - // XML header - $objWriter->startDocument('1.0', 'UTF-8', 'yes'); - - // Relationships - $objWriter->startElement('Relationships'); - $objWriter->writeAttribute('xmlns', 'http://schemas.openxmlformats.org/package/2006/relationships'); - - // Relationship styles.xml - $this->writeRelationship( - $objWriter, - 1, - 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/styles', - 'styles.xml' - ); - - // Relationship theme/theme1.xml - $this->writeRelationship( - $objWriter, - 2, - 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/theme', - 'theme/theme1.xml' - ); - - // Relationship sharedStrings.xml - $this->writeRelationship( - $objWriter, - 3, - 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/sharedStrings', - 'sharedStrings.xml' - ); - - // Relationships with sheets - $sheetCount = $pPHPExcel->getSheetCount(); - for ($i = 0; $i < $sheetCount; ++$i) { - $this->writeRelationship( - $objWriter, - ($i + 1 + 3), - 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/worksheet', - 'worksheets/sheet' . ($i + 1) . '.xml' - ); - } - // Relationships for vbaProject if needed - // id : just after the last sheet - if ($pPHPExcel->hasMacros()) { - $this->writeRelationShip( - $objWriter, - ($i + 1 + 3), - 'http://schemas.microsoft.com/office/2006/relationships/vbaProject', - 'vbaProject.bin' - ); - ++$i;//increment i if needed for an another relation - } - - $objWriter->endElement(); - - return $objWriter->getData(); - } - - /** - * Write worksheet relationships to XML format - * - * Numbering is as follows: - * rId1 - Drawings - * rId_hyperlink_x - Hyperlinks - * - * @param PHPExcel_Worksheet $pWorksheet - * @param int $pWorksheetId - * @param boolean $includeCharts Flag indicating if we should write charts - * @return string XML Output - * @throws PHPExcel_Writer_Exception - */ - public function writeWorksheetRelationships(PHPExcel_Worksheet $pWorksheet = null, $pWorksheetId = 1, $includeCharts = false) - { - // Create XML writer - $objWriter = null; - if ($this->getParentWriter()->getUseDiskCaching()) { - $objWriter = new PHPExcel_Shared_XMLWriter(PHPExcel_Shared_XMLWriter::STORAGE_DISK, $this->getParentWriter()->getDiskCachingDirectory()); - } else { - $objWriter = new PHPExcel_Shared_XMLWriter(PHPExcel_Shared_XMLWriter::STORAGE_MEMORY); - } - - // XML header - $objWriter->startDocument('1.0', 'UTF-8', 'yes'); - - // Relationships - $objWriter->startElement('Relationships'); - $objWriter->writeAttribute('xmlns', 'http://schemas.openxmlformats.org/package/2006/relationships'); - - // Write drawing relationships? - $d = 0; - if ($includeCharts) { - $charts = $pWorksheet->getChartCollection(); - } else { - $charts = array(); - } - if (($pWorksheet->getDrawingCollection()->count() > 0) || - (count($charts) > 0)) { - $this->writeRelationship( - $objWriter, - ++$d, - 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/drawing', - '../drawings/drawing' . $pWorksheetId . '.xml' - ); - } - - // Write chart relationships? -// $chartCount = 0; -// $charts = $pWorksheet->getChartCollection(); -// echo 'Chart Rels: ' , count($charts) , '<br />'; -// if (count($charts) > 0) { -// foreach ($charts as $chart) { -// $this->writeRelationship( -// $objWriter, -// ++$d, -// 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/chart', -// '../charts/chart' . ++$chartCount . '.xml' -// ); -// } -// } -// - // Write hyperlink relationships? - $i = 1; - foreach ($pWorksheet->getHyperlinkCollection() as $hyperlink) { - if (!$hyperlink->isInternal()) { - $this->writeRelationship( - $objWriter, - '_hyperlink_' . $i, - 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/hyperlink', - $hyperlink->getUrl(), - 'External' - ); - - ++$i; - } - } - - // Write comments relationship? - $i = 1; - if (count($pWorksheet->getComments()) > 0) { - $this->writeRelationship( - $objWriter, - '_comments_vml' . $i, - 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/vmlDrawing', - '../drawings/vmlDrawing' . $pWorksheetId . '.vml' - ); - - $this->writeRelationship( - $objWriter, - '_comments' . $i, - 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/comments', - '../comments' . $pWorksheetId . '.xml' - ); - } - - // Write header/footer relationship? - $i = 1; - if (count($pWorksheet->getHeaderFooter()->getImages()) > 0) { - $this->writeRelationship( - $objWriter, - '_headerfooter_vml' . $i, - 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/vmlDrawing', - '../drawings/vmlDrawingHF' . $pWorksheetId . '.vml' - ); - } - - $objWriter->endElement(); - - return $objWriter->getData(); - } - - /** - * Write drawing relationships to XML format - * - * @param PHPExcel_Worksheet $pWorksheet - * @param int &$chartRef Chart ID - * @param boolean $includeCharts Flag indicating if we should write charts - * @return string XML Output - * @throws PHPExcel_Writer_Exception - */ - public function writeDrawingRelationships(PHPExcel_Worksheet $pWorksheet = null, &$chartRef, $includeCharts = false) - { - // Create XML writer - $objWriter = null; - if ($this->getParentWriter()->getUseDiskCaching()) { - $objWriter = new PHPExcel_Shared_XMLWriter(PHPExcel_Shared_XMLWriter::STORAGE_DISK, $this->getParentWriter()->getDiskCachingDirectory()); - } else { - $objWriter = new PHPExcel_Shared_XMLWriter(PHPExcel_Shared_XMLWriter::STORAGE_MEMORY); - } - - // XML header - $objWriter->startDocument('1.0', 'UTF-8', 'yes'); - - // Relationships - $objWriter->startElement('Relationships'); - $objWriter->writeAttribute('xmlns', 'http://schemas.openxmlformats.org/package/2006/relationships'); - - // Loop through images and write relationships - $i = 1; - $iterator = $pWorksheet->getDrawingCollection()->getIterator(); - while ($iterator->valid()) { - if ($iterator->current() instanceof PHPExcel_Worksheet_Drawing - || $iterator->current() instanceof PHPExcel_Worksheet_MemoryDrawing) { - // Write relationship for image drawing - $this->writeRelationship( - $objWriter, - $i, - 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/image', - '../media/' . str_replace(' ', '', $iterator->current()->getIndexedFilename()) - ); - } - - $iterator->next(); - ++$i; - } - - if ($includeCharts) { - // Loop through charts and write relationships - $chartCount = $pWorksheet->getChartCount(); - if ($chartCount > 0) { - for ($c = 0; $c < $chartCount; ++$c) { - $this->writeRelationship( - $objWriter, - $i++, - 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/chart', - '../charts/chart' . ++$chartRef . '.xml' - ); - } - } - } - - $objWriter->endElement(); - - return $objWriter->getData(); - } - - /** - * Write header/footer drawing relationships to XML format - * - * @param PHPExcel_Worksheet $pWorksheet - * @return string XML Output - * @throws PHPExcel_Writer_Exception - */ - public function writeHeaderFooterDrawingRelationships(PHPExcel_Worksheet $pWorksheet = null) - { - // Create XML writer - $objWriter = null; - if ($this->getParentWriter()->getUseDiskCaching()) { - $objWriter = new PHPExcel_Shared_XMLWriter(PHPExcel_Shared_XMLWriter::STORAGE_DISK, $this->getParentWriter()->getDiskCachingDirectory()); - } else { - $objWriter = new PHPExcel_Shared_XMLWriter(PHPExcel_Shared_XMLWriter::STORAGE_MEMORY); - } - - // XML header - $objWriter->startDocument('1.0', 'UTF-8', 'yes'); - - // Relationships - $objWriter->startElement('Relationships'); - $objWriter->writeAttribute('xmlns', 'http://schemas.openxmlformats.org/package/2006/relationships'); - - // Loop through images and write relationships - foreach ($pWorksheet->getHeaderFooter()->getImages() as $key => $value) { - // Write relationship for image drawing - $this->writeRelationship( - $objWriter, - $key, - 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/image', - '../media/' . $value->getIndexedFilename() - ); - } - - $objWriter->endElement(); - - return $objWriter->getData(); - } - - /** - * Write Override content type - * - * @param PHPExcel_Shared_XMLWriter $objWriter XML Writer - * @param int $pId Relationship ID. rId will be prepended! - * @param string $pType Relationship type - * @param string $pTarget Relationship target - * @param string $pTargetMode Relationship target mode - * @throws PHPExcel_Writer_Exception - */ - private function writeRelationship(PHPExcel_Shared_XMLWriter $objWriter = null, $pId = 1, $pType = '', $pTarget = '', $pTargetMode = '') - { - if ($pType != '' && $pTarget != '') { - // Write relationship - $objWriter->startElement('Relationship'); - $objWriter->writeAttribute('Id', 'rId' . $pId); - $objWriter->writeAttribute('Type', $pType); - $objWriter->writeAttribute('Target', $pTarget); - - if ($pTargetMode != '') { - $objWriter->writeAttribute('TargetMode', $pTargetMode); - } - - $objWriter->endElement(); - } else { - throw new PHPExcel_Writer_Exception("Invalid parameters passed."); - } - } -} diff --git a/Utils/PHPExcel/Writer/Excel2007/RelsRibbon.php b/Utils/PHPExcel/Writer/Excel2007/RelsRibbon.php deleted file mode 100644 index 5a4a9fc..0000000 --- a/Utils/PHPExcel/Writer/Excel2007/RelsRibbon.php +++ /dev/null @@ -1,67 +0,0 @@ -<?php - -/** - * PHPExcel_Writer_Excel2007_RelsRibbon - * - * Copyright (c) 2006 - 2015 PHPExcel - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - * - * @category PHPExcel - * @package PHPExcel_Writer_Excel2007 - * @copyright Copyright (c) 2006 - 2015 PHPExcel (http://www.codeplex.com/PHPExcel) - * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL - * @version ##VERSION##, ##DATE## - */ -class PHPExcel_Writer_Excel2007_RelsRibbon extends PHPExcel_Writer_Excel2007_WriterPart -{ - /** - * Write relationships for additional objects of custom UI (ribbon) - * - * @param PHPExcel $pPHPExcel - * @return string XML Output - * @throws PHPExcel_Writer_Exception - */ - public function writeRibbonRelationships(PHPExcel $pPHPExcel = null) - { - // Create XML writer - $objWriter = null; - if ($this->getParentWriter()->getUseDiskCaching()) { - $objWriter = new PHPExcel_Shared_XMLWriter(PHPExcel_Shared_XMLWriter::STORAGE_DISK, $this->getParentWriter()->getDiskCachingDirectory()); - } else { - $objWriter = new PHPExcel_Shared_XMLWriter(PHPExcel_Shared_XMLWriter::STORAGE_MEMORY); - } - - // XML header - $objWriter->startDocument('1.0', 'UTF-8', 'yes'); - - // Relationships - $objWriter->startElement('Relationships'); - $objWriter->writeAttribute('xmlns', 'http://schemas.openxmlformats.org/package/2006/relationships'); - $localRels = $pPHPExcel->getRibbonBinObjects('names'); - if (is_array($localRels)) { - foreach ($localRels as $aId => $aTarget) { - $objWriter->startElement('Relationship'); - $objWriter->writeAttribute('Id', $aId); - $objWriter->writeAttribute('Type', 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/image'); - $objWriter->writeAttribute('Target', $aTarget); - $objWriter->endElement(); - } - } - $objWriter->endElement(); - - return $objWriter->getData(); - } -} diff --git a/Utils/PHPExcel/Writer/Excel2007/RelsVBA.php b/Utils/PHPExcel/Writer/Excel2007/RelsVBA.php deleted file mode 100644 index bee0e64..0000000 --- a/Utils/PHPExcel/Writer/Excel2007/RelsVBA.php +++ /dev/null @@ -1,63 +0,0 @@ -<?php - -/** - * PHPExcel_Writer_Excel2007_RelsVBA - * - * Copyright (c) 2006 - 2015 PHPExcel - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - * - * @category PHPExcel - * @package PHPExcel_Writer_Excel2007 - * @copyright Copyright (c) 2006 - 2015 PHPExcel (http://www.codeplex.com/PHPExcel) - * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL - * @version ##VERSION##, ##DATE## - */ -class PHPExcel_Writer_Excel2007_RelsVBA extends PHPExcel_Writer_Excel2007_WriterPart -{ - /** - * Write relationships for a signed VBA Project - * - * @param PHPExcel $pPHPExcel - * @return string XML Output - * @throws PHPExcel_Writer_Exception - */ - public function writeVBARelationships(PHPExcel $pPHPExcel = null) - { - // Create XML writer - $objWriter = null; - if ($this->getParentWriter()->getUseDiskCaching()) { - $objWriter = new PHPExcel_Shared_XMLWriter(PHPExcel_Shared_XMLWriter::STORAGE_DISK, $this->getParentWriter()->getDiskCachingDirectory()); - } else { - $objWriter = new PHPExcel_Shared_XMLWriter(PHPExcel_Shared_XMLWriter::STORAGE_MEMORY); - } - - // XML header - $objWriter->startDocument('1.0', 'UTF-8', 'yes'); - - // Relationships - $objWriter->startElement('Relationships'); - $objWriter->writeAttribute('xmlns', 'http://schemas.openxmlformats.org/package/2006/relationships'); - $objWriter->startElement('Relationship'); - $objWriter->writeAttribute('Id', 'rId1'); - $objWriter->writeAttribute('Type', 'http://schemas.microsoft.com/office/2006/relationships/vbaProjectSignature'); - $objWriter->writeAttribute('Target', 'vbaProjectSignature.bin'); - $objWriter->endElement(); - $objWriter->endElement(); - - return $objWriter->getData(); - - } -} diff --git a/Utils/PHPExcel/Writer/Excel2007/StringTable.php b/Utils/PHPExcel/Writer/Excel2007/StringTable.php deleted file mode 100644 index b171287..0000000 --- a/Utils/PHPExcel/Writer/Excel2007/StringTable.php +++ /dev/null @@ -1,313 +0,0 @@ -<?php - -/** - * PHPExcel_Writer_Excel2007_StringTable - * - * Copyright (c) 2006 - 2015 PHPExcel - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - * - * @category PHPExcel - * @package PHPExcel_Writer_Excel2007 - * @copyright Copyright (c) 2006 - 2015 PHPExcel (http://www.codeplex.com/PHPExcel) - * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL - * @version ##VERSION##, ##DATE## - */ -class PHPExcel_Writer_Excel2007_StringTable extends PHPExcel_Writer_Excel2007_WriterPart -{ - /** - * Create worksheet stringtable - * - * @param PHPExcel_Worksheet $pSheet Worksheet - * @param string[] $pExistingTable Existing table to eventually merge with - * @return string[] String table for worksheet - * @throws PHPExcel_Writer_Exception - */ - public function createStringTable($pSheet = null, $pExistingTable = null) - { - if ($pSheet !== null) { - // Create string lookup table - $aStringTable = array(); - $cellCollection = null; - $aFlippedStringTable = null; // For faster lookup - - // Is an existing table given? - if (($pExistingTable !== null) && is_array($pExistingTable)) { - $aStringTable = $pExistingTable; - } - - // Fill index array - $aFlippedStringTable = $this->flipStringTable($aStringTable); - - // Loop through cells - foreach ($pSheet->getCellCollection() as $cellID) { - $cell = $pSheet->getCell($cellID); - $cellValue = $cell->getValue(); - if (!is_object($cellValue) && - ($cellValue !== null) && - $cellValue !== '' && - !isset($aFlippedStringTable[$cellValue]) && - ($cell->getDataType() == PHPExcel_Cell_DataType::TYPE_STRING || $cell->getDataType() == PHPExcel_Cell_DataType::TYPE_STRING2 || $cell->getDataType() == PHPExcel_Cell_DataType::TYPE_NULL)) { - $aStringTable[] = $cellValue; - $aFlippedStringTable[$cellValue] = true; - } elseif ($cellValue instanceof PHPExcel_RichText && - ($cellValue !== null) && - !isset($aFlippedStringTable[$cellValue->getHashCode()])) { - $aStringTable[] = $cellValue; - $aFlippedStringTable[$cellValue->getHashCode()] = true; - } - } - - return $aStringTable; - } else { - throw new PHPExcel_Writer_Exception("Invalid PHPExcel_Worksheet object passed."); - } - } - - /** - * Flip string table (for index searching) - * - * @param array $stringTable Stringtable - * @return array - */ - public function flipStringTable($stringTable = array()) - { - // Return value - $returnValue = array(); - - // Loop through stringtable and add flipped items to $returnValue - foreach ($stringTable as $key => $value) { - if (! $value instanceof PHPExcel_RichText) { - $returnValue[$value] = $key; - } elseif ($value instanceof PHPExcel_RichText) { - $returnValue[$value->getHashCode()] = $key; - } - } - - return $returnValue; - } - - /** - * Write string table to XML format - * - * @param string[] $pStringTable - * @return string XML Output - * @throws PHPExcel_Writer_Exception - */ - public function writeStringTable($pStringTable = null) - { - if ($pStringTable !== null) { - // Create XML writer - $objWriter = null; - if ($this->getParentWriter()->getUseDiskCaching()) { - $objWriter = new PHPExcel_Shared_XMLWriter(PHPExcel_Shared_XMLWriter::STORAGE_DISK, $this->getParentWriter()->getDiskCachingDirectory()); - } else { - $objWriter = new PHPExcel_Shared_XMLWriter(PHPExcel_Shared_XMLWriter::STORAGE_MEMORY); - } - - // XML header - $objWriter->startDocument('1.0', 'UTF-8', 'yes'); - - // String table - $objWriter->startElement('sst'); - $objWriter->writeAttribute('xmlns', 'http://schemas.openxmlformats.org/spreadsheetml/2006/main'); - $objWriter->writeAttribute('uniqueCount', count($pStringTable)); - - // Loop through string table - foreach ($pStringTable as $textElement) { - $objWriter->startElement('si'); - - if (! $textElement instanceof PHPExcel_RichText) { - $textToWrite = PHPExcel_Shared_String::ControlCharacterPHP2OOXML($textElement); - $objWriter->startElement('t'); - if ($textToWrite !== trim($textToWrite)) { - $objWriter->writeAttribute('xml:space', 'preserve'); - } - $objWriter->writeRawData($textToWrite); - $objWriter->endElement(); - } elseif ($textElement instanceof PHPExcel_RichText) { - $this->writeRichText($objWriter, $textElement); - } - - $objWriter->endElement(); - } - - $objWriter->endElement(); - - return $objWriter->getData(); - } else { - throw new PHPExcel_Writer_Exception("Invalid string table array passed."); - } - } - - /** - * Write Rich Text - * - * @param PHPExcel_Shared_XMLWriter $objWriter XML Writer - * @param PHPExcel_RichText $pRichText Rich text - * @param string $prefix Optional Namespace prefix - * @throws PHPExcel_Writer_Exception - */ - public function writeRichText(PHPExcel_Shared_XMLWriter $objWriter = null, PHPExcel_RichText $pRichText = null, $prefix = null) - { - if ($prefix !== null) { - $prefix .= ':'; - } - - // Loop through rich text elements - $elements = $pRichText->getRichTextElements(); - foreach ($elements as $element) { - // r - $objWriter->startElement($prefix.'r'); - - // rPr - if ($element instanceof PHPExcel_RichText_Run) { - // rPr - $objWriter->startElement($prefix.'rPr'); - - // rFont - $objWriter->startElement($prefix.'rFont'); - $objWriter->writeAttribute('val', $element->getFont()->getName()); - $objWriter->endElement(); - - // Bold - $objWriter->startElement($prefix.'b'); - $objWriter->writeAttribute('val', ($element->getFont()->getBold() ? 'true' : 'false')); - $objWriter->endElement(); - - // Italic - $objWriter->startElement($prefix.'i'); - $objWriter->writeAttribute('val', ($element->getFont()->getItalic() ? 'true' : 'false')); - $objWriter->endElement(); - - // Superscript / subscript - if ($element->getFont()->getSuperScript() || $element->getFont()->getSubScript()) { - $objWriter->startElement($prefix.'vertAlign'); - if ($element->getFont()->getSuperScript()) { - $objWriter->writeAttribute('val', 'superscript'); - } elseif ($element->getFont()->getSubScript()) { - $objWriter->writeAttribute('val', 'subscript'); - } - $objWriter->endElement(); - } - - // Strikethrough - $objWriter->startElement($prefix.'strike'); - $objWriter->writeAttribute('val', ($element->getFont()->getStrikethrough() ? 'true' : 'false')); - $objWriter->endElement(); - - // Color - $objWriter->startElement($prefix.'color'); - $objWriter->writeAttribute('rgb', $element->getFont()->getColor()->getARGB()); - $objWriter->endElement(); - - // Size - $objWriter->startElement($prefix.'sz'); - $objWriter->writeAttribute('val', $element->getFont()->getSize()); - $objWriter->endElement(); - - // Underline - $objWriter->startElement($prefix.'u'); - $objWriter->writeAttribute('val', $element->getFont()->getUnderline()); - $objWriter->endElement(); - - $objWriter->endElement(); - } - - // t - $objWriter->startElement($prefix.'t'); - $objWriter->writeAttribute('xml:space', 'preserve'); - $objWriter->writeRawData(PHPExcel_Shared_String::ControlCharacterPHP2OOXML($element->getText())); - $objWriter->endElement(); - - $objWriter->endElement(); - } - } - - /** - * Write Rich Text - * - * @param PHPExcel_Shared_XMLWriter $objWriter XML Writer - * @param string|PHPExcel_RichText $pRichText text string or Rich text - * @param string $prefix Optional Namespace prefix - * @throws PHPExcel_Writer_Exception - */ - public function writeRichTextForCharts(PHPExcel_Shared_XMLWriter $objWriter = null, $pRichText = null, $prefix = null) - { - if (!$pRichText instanceof PHPExcel_RichText) { - $textRun = $pRichText; - $pRichText = new PHPExcel_RichText(); - $pRichText->createTextRun($textRun); - } - - if ($prefix !== null) { - $prefix .= ':'; - } - - // Loop through rich text elements - $elements = $pRichText->getRichTextElements(); - foreach ($elements as $element) { - // r - $objWriter->startElement($prefix.'r'); - - // rPr - $objWriter->startElement($prefix.'rPr'); - - // Bold - $objWriter->writeAttribute('b', ($element->getFont()->getBold() ? 1 : 0)); - // Italic - $objWriter->writeAttribute('i', ($element->getFont()->getItalic() ? 1 : 0)); - // Underline - $underlineType = $element->getFont()->getUnderline(); - switch ($underlineType) { - case 'single': - $underlineType = 'sng'; - break; - case 'double': - $underlineType = 'dbl'; - break; - } - $objWriter->writeAttribute('u', $underlineType); - // Strikethrough - $objWriter->writeAttribute('strike', ($element->getFont()->getStrikethrough() ? 'sngStrike' : 'noStrike')); - - // rFont - $objWriter->startElement($prefix.'latin'); - $objWriter->writeAttribute('typeface', $element->getFont()->getName()); - $objWriter->endElement(); - - // Superscript / subscript -// if ($element->getFont()->getSuperScript() || $element->getFont()->getSubScript()) { -// $objWriter->startElement($prefix.'vertAlign'); -// if ($element->getFont()->getSuperScript()) { -// $objWriter->writeAttribute('val', 'superscript'); -// } elseif ($element->getFont()->getSubScript()) { -// $objWriter->writeAttribute('val', 'subscript'); -// } -// $objWriter->endElement(); -// } -// - $objWriter->endElement(); - - // t - $objWriter->startElement($prefix.'t'); -// $objWriter->writeAttribute('xml:space', 'preserve'); // Excel2010 accepts, Excel2007 complains - $objWriter->writeRawData(PHPExcel_Shared_String::ControlCharacterPHP2OOXML($element->getText())); - $objWriter->endElement(); - - $objWriter->endElement(); - } - } -} diff --git a/Utils/PHPExcel/Writer/Excel2007/Style.php b/Utils/PHPExcel/Writer/Excel2007/Style.php deleted file mode 100644 index d3f0af7..0000000 --- a/Utils/PHPExcel/Writer/Excel2007/Style.php +++ /dev/null @@ -1,696 +0,0 @@ -<?php - -/** - * PHPExcel_Writer_Excel2007_Style - * - * Copyright (c) 2006 - 2015 PHPExcel - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - * - * @category PHPExcel - * @package PHPExcel_Writer_Excel2007 - * @copyright Copyright (c) 2006 - 2015 PHPExcel (http://www.codeplex.com/PHPExcel) - * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL - * @version ##VERSION##, ##DATE## - */ -class PHPExcel_Writer_Excel2007_Style extends PHPExcel_Writer_Excel2007_WriterPart -{ - /** - * Write styles to XML format - * - * @param PHPExcel $pPHPExcel - * @return string XML Output - * @throws PHPExcel_Writer_Exception - */ - public function writeStyles(PHPExcel $pPHPExcel = null) - { - // Create XML writer - $objWriter = null; - if ($this->getParentWriter()->getUseDiskCaching()) { - $objWriter = new PHPExcel_Shared_XMLWriter(PHPExcel_Shared_XMLWriter::STORAGE_DISK, $this->getParentWriter()->getDiskCachingDirectory()); - } else { - $objWriter = new PHPExcel_Shared_XMLWriter(PHPExcel_Shared_XMLWriter::STORAGE_MEMORY); - } - - // XML header - $objWriter->startDocument('1.0', 'UTF-8', 'yes'); - - // styleSheet - $objWriter->startElement('styleSheet'); - $objWriter->writeAttribute('xml:space', 'preserve'); - $objWriter->writeAttribute('xmlns', 'http://schemas.openxmlformats.org/spreadsheetml/2006/main'); - - // numFmts - $objWriter->startElement('numFmts'); - $objWriter->writeAttribute('count', $this->getParentWriter()->getNumFmtHashTable()->count()); - - // numFmt - for ($i = 0; $i < $this->getParentWriter()->getNumFmtHashTable()->count(); ++$i) { - $this->writeNumFmt($objWriter, $this->getParentWriter()->getNumFmtHashTable()->getByIndex($i), $i); - } - - $objWriter->endElement(); - - // fonts - $objWriter->startElement('fonts'); - $objWriter->writeAttribute('count', $this->getParentWriter()->getFontHashTable()->count()); - - // font - for ($i = 0; $i < $this->getParentWriter()->getFontHashTable()->count(); ++$i) { - $this->writeFont($objWriter, $this->getParentWriter()->getFontHashTable()->getByIndex($i)); - } - - $objWriter->endElement(); - - // fills - $objWriter->startElement('fills'); - $objWriter->writeAttribute('count', $this->getParentWriter()->getFillHashTable()->count()); - - // fill - for ($i = 0; $i < $this->getParentWriter()->getFillHashTable()->count(); ++$i) { - $this->writeFill($objWriter, $this->getParentWriter()->getFillHashTable()->getByIndex($i)); - } - - $objWriter->endElement(); - - // borders - $objWriter->startElement('borders'); - $objWriter->writeAttribute('count', $this->getParentWriter()->getBordersHashTable()->count()); - - // border - for ($i = 0; $i < $this->getParentWriter()->getBordersHashTable()->count(); ++$i) { - $this->writeBorder($objWriter, $this->getParentWriter()->getBordersHashTable()->getByIndex($i)); - } - - $objWriter->endElement(); - - // cellStyleXfs - $objWriter->startElement('cellStyleXfs'); - $objWriter->writeAttribute('count', 1); - - // xf - $objWriter->startElement('xf'); - $objWriter->writeAttribute('numFmtId', 0); - $objWriter->writeAttribute('fontId', 0); - $objWriter->writeAttribute('fillId', 0); - $objWriter->writeAttribute('borderId', 0); - $objWriter->endElement(); - - $objWriter->endElement(); - - // cellXfs - $objWriter->startElement('cellXfs'); - $objWriter->writeAttribute('count', count($pPHPExcel->getCellXfCollection())); - - // xf - foreach ($pPHPExcel->getCellXfCollection() as $cellXf) { - $this->writeCellStyleXf($objWriter, $cellXf, $pPHPExcel); - } - - $objWriter->endElement(); - - // cellStyles - $objWriter->startElement('cellStyles'); - $objWriter->writeAttribute('count', 1); - - // cellStyle - $objWriter->startElement('cellStyle'); - $objWriter->writeAttribute('name', 'Normal'); - $objWriter->writeAttribute('xfId', 0); - $objWriter->writeAttribute('builtinId', 0); - $objWriter->endElement(); - - $objWriter->endElement(); - - // dxfs - $objWriter->startElement('dxfs'); - $objWriter->writeAttribute('count', $this->getParentWriter()->getStylesConditionalHashTable()->count()); - - // dxf - for ($i = 0; $i < $this->getParentWriter()->getStylesConditionalHashTable()->count(); ++$i) { - $this->writeCellStyleDxf($objWriter, $this->getParentWriter()->getStylesConditionalHashTable()->getByIndex($i)->getStyle()); - } - - $objWriter->endElement(); - - // tableStyles - $objWriter->startElement('tableStyles'); - $objWriter->writeAttribute('defaultTableStyle', 'TableStyleMedium9'); - $objWriter->writeAttribute('defaultPivotStyle', 'PivotTableStyle1'); - $objWriter->endElement(); - - $objWriter->endElement(); - - // Return - return $objWriter->getData(); - } - - /** - * Write Fill - * - * @param PHPExcel_Shared_XMLWriter $objWriter XML Writer - * @param PHPExcel_Style_Fill $pFill Fill style - * @throws PHPExcel_Writer_Exception - */ - private function writeFill(PHPExcel_Shared_XMLWriter $objWriter = null, PHPExcel_Style_Fill $pFill = null) - { - // Check if this is a pattern type or gradient type - if ($pFill->getFillType() === PHPExcel_Style_Fill::FILL_GRADIENT_LINEAR || - $pFill->getFillType() === PHPExcel_Style_Fill::FILL_GRADIENT_PATH) { - // Gradient fill - $this->writeGradientFill($objWriter, $pFill); - } elseif ($pFill->getFillType() !== null) { - // Pattern fill - $this->writePatternFill($objWriter, $pFill); - } - } - - /** - * Write Gradient Fill - * - * @param PHPExcel_Shared_XMLWriter $objWriter XML Writer - * @param PHPExcel_Style_Fill $pFill Fill style - * @throws PHPExcel_Writer_Exception - */ - private function writeGradientFill(PHPExcel_Shared_XMLWriter $objWriter = null, PHPExcel_Style_Fill $pFill = null) - { - // fill - $objWriter->startElement('fill'); - - // gradientFill - $objWriter->startElement('gradientFill'); - $objWriter->writeAttribute('type', $pFill->getFillType()); - $objWriter->writeAttribute('degree', $pFill->getRotation()); - - // stop - $objWriter->startElement('stop'); - $objWriter->writeAttribute('position', '0'); - - // color - $objWriter->startElement('color'); - $objWriter->writeAttribute('rgb', $pFill->getStartColor()->getARGB()); - $objWriter->endElement(); - - $objWriter->endElement(); - - // stop - $objWriter->startElement('stop'); - $objWriter->writeAttribute('position', '1'); - - // color - $objWriter->startElement('color'); - $objWriter->writeAttribute('rgb', $pFill->getEndColor()->getARGB()); - $objWriter->endElement(); - - $objWriter->endElement(); - - $objWriter->endElement(); - - $objWriter->endElement(); - } - - /** - * Write Pattern Fill - * - * @param PHPExcel_Shared_XMLWriter $objWriter XML Writer - * @param PHPExcel_Style_Fill $pFill Fill style - * @throws PHPExcel_Writer_Exception - */ - private function writePatternFill(PHPExcel_Shared_XMLWriter $objWriter = null, PHPExcel_Style_Fill $pFill = null) - { - // fill - $objWriter->startElement('fill'); - - // patternFill - $objWriter->startElement('patternFill'); - $objWriter->writeAttribute('patternType', $pFill->getFillType()); - - if ($pFill->getFillType() !== PHPExcel_Style_Fill::FILL_NONE) { - // fgColor - if ($pFill->getStartColor()->getARGB()) { - $objWriter->startElement('fgColor'); - $objWriter->writeAttribute('rgb', $pFill->getStartColor()->getARGB()); - $objWriter->endElement(); - } - } - if ($pFill->getFillType() !== PHPExcel_Style_Fill::FILL_NONE) { - // bgColor - if ($pFill->getEndColor()->getARGB()) { - $objWriter->startElement('bgColor'); - $objWriter->writeAttribute('rgb', $pFill->getEndColor()->getARGB()); - $objWriter->endElement(); - } - } - - $objWriter->endElement(); - - $objWriter->endElement(); - } - - /** - * Write Font - * - * @param PHPExcel_Shared_XMLWriter $objWriter XML Writer - * @param PHPExcel_Style_Font $pFont Font style - * @throws PHPExcel_Writer_Exception - */ - private function writeFont(PHPExcel_Shared_XMLWriter $objWriter = null, PHPExcel_Style_Font $pFont = null) - { - // font - $objWriter->startElement('font'); - // Weird! The order of these elements actually makes a difference when opening Excel2007 - // files in Excel2003 with the compatibility pack. It's not documented behaviour, - // and makes for a real WTF! - - // Bold. We explicitly write this element also when false (like MS Office Excel 2007 does - // for conditional formatting). Otherwise it will apparently not be picked up in conditional - // formatting style dialog - if ($pFont->getBold() !== null) { - $objWriter->startElement('b'); - $objWriter->writeAttribute('val', $pFont->getBold() ? '1' : '0'); - $objWriter->endElement(); - } - - // Italic - if ($pFont->getItalic() !== null) { - $objWriter->startElement('i'); - $objWriter->writeAttribute('val', $pFont->getItalic() ? '1' : '0'); - $objWriter->endElement(); - } - - // Strikethrough - if ($pFont->getStrikethrough() !== null) { - $objWriter->startElement('strike'); - $objWriter->writeAttribute('val', $pFont->getStrikethrough() ? '1' : '0'); - $objWriter->endElement(); - } - - // Underline - if ($pFont->getUnderline() !== null) { - $objWriter->startElement('u'); - $objWriter->writeAttribute('val', $pFont->getUnderline()); - $objWriter->endElement(); - } - - // Superscript / subscript - if ($pFont->getSuperScript() === true || $pFont->getSubScript() === true) { - $objWriter->startElement('vertAlign'); - if ($pFont->getSuperScript() === true) { - $objWriter->writeAttribute('val', 'superscript'); - } elseif ($pFont->getSubScript() === true) { - $objWriter->writeAttribute('val', 'subscript'); - } - $objWriter->endElement(); - } - - // Size - if ($pFont->getSize() !== null) { - $objWriter->startElement('sz'); - $objWriter->writeAttribute('val', $pFont->getSize()); - $objWriter->endElement(); - } - - // Foreground color - if ($pFont->getColor()->getARGB() !== null) { - $objWriter->startElement('color'); - $objWriter->writeAttribute('rgb', $pFont->getColor()->getARGB()); - $objWriter->endElement(); - } - - // Name - if ($pFont->getName() !== null) { - $objWriter->startElement('name'); - $objWriter->writeAttribute('val', $pFont->getName()); - $objWriter->endElement(); - } - - $objWriter->endElement(); - } - - /** - * Write Border - * - * @param PHPExcel_Shared_XMLWriter $objWriter XML Writer - * @param PHPExcel_Style_Borders $pBorders Borders style - * @throws PHPExcel_Writer_Exception - */ - private function writeBorder(PHPExcel_Shared_XMLWriter $objWriter = null, PHPExcel_Style_Borders $pBorders = null) - { - // Write border - $objWriter->startElement('border'); - // Diagonal? - switch ($pBorders->getDiagonalDirection()) { - case PHPExcel_Style_Borders::DIAGONAL_UP: - $objWriter->writeAttribute('diagonalUp', 'true'); - $objWriter->writeAttribute('diagonalDown', 'false'); - break; - case PHPExcel_Style_Borders::DIAGONAL_DOWN: - $objWriter->writeAttribute('diagonalUp', 'false'); - $objWriter->writeAttribute('diagonalDown', 'true'); - break; - case PHPExcel_Style_Borders::DIAGONAL_BOTH: - $objWriter->writeAttribute('diagonalUp', 'true'); - $objWriter->writeAttribute('diagonalDown', 'true'); - break; - } - - // BorderPr - $this->writeBorderPr($objWriter, 'left', $pBorders->getLeft()); - $this->writeBorderPr($objWriter, 'right', $pBorders->getRight()); - $this->writeBorderPr($objWriter, 'top', $pBorders->getTop()); - $this->writeBorderPr($objWriter, 'bottom', $pBorders->getBottom()); - $this->writeBorderPr($objWriter, 'diagonal', $pBorders->getDiagonal()); - $objWriter->endElement(); - } - - /** - * Write Cell Style Xf - * - * @param PHPExcel_Shared_XMLWriter $objWriter XML Writer - * @param PHPExcel_Style $pStyle Style - * @param PHPExcel $pPHPExcel Workbook - * @throws PHPExcel_Writer_Exception - */ - private function writeCellStyleXf(PHPExcel_Shared_XMLWriter $objWriter = null, PHPExcel_Style $pStyle = null, PHPExcel $pPHPExcel = null) - { - // xf - $objWriter->startElement('xf'); - $objWriter->writeAttribute('xfId', 0); - $objWriter->writeAttribute('fontId', (int)$this->getParentWriter()->getFontHashTable()->getIndexForHashCode($pStyle->getFont()->getHashCode())); - if ($pStyle->getQuotePrefix()) { - $objWriter->writeAttribute('quotePrefix', 1); - } - - if ($pStyle->getNumberFormat()->getBuiltInFormatCode() === false) { - $objWriter->writeAttribute('numFmtId', (int)($this->getParentWriter()->getNumFmtHashTable()->getIndexForHashCode($pStyle->getNumberFormat()->getHashCode()) + 164)); - } else { - $objWriter->writeAttribute('numFmtId', (int)$pStyle->getNumberFormat()->getBuiltInFormatCode()); - } - - $objWriter->writeAttribute('fillId', (int)$this->getParentWriter()->getFillHashTable()->getIndexForHashCode($pStyle->getFill()->getHashCode())); - $objWriter->writeAttribute('borderId', (int)$this->getParentWriter()->getBordersHashTable()->getIndexForHashCode($pStyle->getBorders()->getHashCode())); - - // Apply styles? - $objWriter->writeAttribute('applyFont', ($pPHPExcel->getDefaultStyle()->getFont()->getHashCode() != $pStyle->getFont()->getHashCode()) ? '1' : '0'); - $objWriter->writeAttribute('applyNumberFormat', ($pPHPExcel->getDefaultStyle()->getNumberFormat()->getHashCode() != $pStyle->getNumberFormat()->getHashCode()) ? '1' : '0'); - $objWriter->writeAttribute('applyFill', ($pPHPExcel->getDefaultStyle()->getFill()->getHashCode() != $pStyle->getFill()->getHashCode()) ? '1' : '0'); - $objWriter->writeAttribute('applyBorder', ($pPHPExcel->getDefaultStyle()->getBorders()->getHashCode() != $pStyle->getBorders()->getHashCode()) ? '1' : '0'); - $objWriter->writeAttribute('applyAlignment', ($pPHPExcel->getDefaultStyle()->getAlignment()->getHashCode() != $pStyle->getAlignment()->getHashCode()) ? '1' : '0'); - if ($pStyle->getProtection()->getLocked() != PHPExcel_Style_Protection::PROTECTION_INHERIT || $pStyle->getProtection()->getHidden() != PHPExcel_Style_Protection::PROTECTION_INHERIT) { - $objWriter->writeAttribute('applyProtection', 'true'); - } - - // alignment - $objWriter->startElement('alignment'); - $objWriter->writeAttribute('horizontal', $pStyle->getAlignment()->getHorizontal()); - $objWriter->writeAttribute('vertical', $pStyle->getAlignment()->getVertical()); - - $textRotation = 0; - if ($pStyle->getAlignment()->getTextRotation() >= 0) { - $textRotation = $pStyle->getAlignment()->getTextRotation(); - } elseif ($pStyle->getAlignment()->getTextRotation() < 0) { - $textRotation = 90 - $pStyle->getAlignment()->getTextRotation(); - } - $objWriter->writeAttribute('textRotation', $textRotation); - - $objWriter->writeAttribute('wrapText', ($pStyle->getAlignment()->getWrapText() ? 'true' : 'false')); - $objWriter->writeAttribute('shrinkToFit', ($pStyle->getAlignment()->getShrinkToFit() ? 'true' : 'false')); - - if ($pStyle->getAlignment()->getIndent() > 0) { - $objWriter->writeAttribute('indent', $pStyle->getAlignment()->getIndent()); - } - if ($pStyle->getAlignment()->getReadorder() > 0) { - $objWriter->writeAttribute('readingOrder', $pStyle->getAlignment()->getReadorder()); - } - $objWriter->endElement(); - - // protection - if ($pStyle->getProtection()->getLocked() != PHPExcel_Style_Protection::PROTECTION_INHERIT || $pStyle->getProtection()->getHidden() != PHPExcel_Style_Protection::PROTECTION_INHERIT) { - $objWriter->startElement('protection'); - if ($pStyle->getProtection()->getLocked() != PHPExcel_Style_Protection::PROTECTION_INHERIT) { - $objWriter->writeAttribute('locked', ($pStyle->getProtection()->getLocked() == PHPExcel_Style_Protection::PROTECTION_PROTECTED ? 'true' : 'false')); - } - if ($pStyle->getProtection()->getHidden() != PHPExcel_Style_Protection::PROTECTION_INHERIT) { - $objWriter->writeAttribute('hidden', ($pStyle->getProtection()->getHidden() == PHPExcel_Style_Protection::PROTECTION_PROTECTED ? 'true' : 'false')); - } - $objWriter->endElement(); - } - - $objWriter->endElement(); - } - - /** - * Write Cell Style Dxf - * - * @param PHPExcel_Shared_XMLWriter $objWriter XML Writer - * @param PHPExcel_Style $pStyle Style - * @throws PHPExcel_Writer_Exception - */ - private function writeCellStyleDxf(PHPExcel_Shared_XMLWriter $objWriter = null, PHPExcel_Style $pStyle = null) - { - // dxf - $objWriter->startElement('dxf'); - - // font - $this->writeFont($objWriter, $pStyle->getFont()); - - // numFmt - $this->writeNumFmt($objWriter, $pStyle->getNumberFormat()); - - // fill - $this->writeFill($objWriter, $pStyle->getFill()); - - // alignment - $objWriter->startElement('alignment'); - if ($pStyle->getAlignment()->getHorizontal() !== null) { - $objWriter->writeAttribute('horizontal', $pStyle->getAlignment()->getHorizontal()); - } - if ($pStyle->getAlignment()->getVertical() !== null) { - $objWriter->writeAttribute('vertical', $pStyle->getAlignment()->getVertical()); - } - - if ($pStyle->getAlignment()->getTextRotation() !== null) { - $textRotation = 0; - if ($pStyle->getAlignment()->getTextRotation() >= 0) { - $textRotation = $pStyle->getAlignment()->getTextRotation(); - } elseif ($pStyle->getAlignment()->getTextRotation() < 0) { - $textRotation = 90 - $pStyle->getAlignment()->getTextRotation(); - } - $objWriter->writeAttribute('textRotation', $textRotation); - } - $objWriter->endElement(); - - // border - $this->writeBorder($objWriter, $pStyle->getBorders()); - - // protection - if (($pStyle->getProtection()->getLocked() !== null) || ($pStyle->getProtection()->getHidden() !== null)) { - if ($pStyle->getProtection()->getLocked() !== PHPExcel_Style_Protection::PROTECTION_INHERIT || - $pStyle->getProtection()->getHidden() !== PHPExcel_Style_Protection::PROTECTION_INHERIT) { - $objWriter->startElement('protection'); - if (($pStyle->getProtection()->getLocked() !== null) && - ($pStyle->getProtection()->getLocked() !== PHPExcel_Style_Protection::PROTECTION_INHERIT)) { - $objWriter->writeAttribute('locked', ($pStyle->getProtection()->getLocked() == PHPExcel_Style_Protection::PROTECTION_PROTECTED ? 'true' : 'false')); - } - if (($pStyle->getProtection()->getHidden() !== null) && - ($pStyle->getProtection()->getHidden() !== PHPExcel_Style_Protection::PROTECTION_INHERIT)) { - $objWriter->writeAttribute('hidden', ($pStyle->getProtection()->getHidden() == PHPExcel_Style_Protection::PROTECTION_PROTECTED ? 'true' : 'false')); - } - $objWriter->endElement(); - } - } - - $objWriter->endElement(); - } - - /** - * Write BorderPr - * - * @param PHPExcel_Shared_XMLWriter $objWriter XML Writer - * @param string $pName Element name - * @param PHPExcel_Style_Border $pBorder Border style - * @throws PHPExcel_Writer_Exception - */ - private function writeBorderPr(PHPExcel_Shared_XMLWriter $objWriter = null, $pName = 'left', PHPExcel_Style_Border $pBorder = null) - { - // Write BorderPr - if ($pBorder->getBorderStyle() != PHPExcel_Style_Border::BORDER_NONE) { - $objWriter->startElement($pName); - $objWriter->writeAttribute('style', $pBorder->getBorderStyle()); - - // color - $objWriter->startElement('color'); - $objWriter->writeAttribute('rgb', $pBorder->getColor()->getARGB()); - $objWriter->endElement(); - - $objWriter->endElement(); - } - } - - /** - * Write NumberFormat - * - * @param PHPExcel_Shared_XMLWriter $objWriter XML Writer - * @param PHPExcel_Style_NumberFormat $pNumberFormat Number Format - * @param int $pId Number Format identifier - * @throws PHPExcel_Writer_Exception - */ - private function writeNumFmt(PHPExcel_Shared_XMLWriter $objWriter = null, PHPExcel_Style_NumberFormat $pNumberFormat = null, $pId = 0) - { - // Translate formatcode - $formatCode = $pNumberFormat->getFormatCode(); - - // numFmt - if ($formatCode !== null) { - $objWriter->startElement('numFmt'); - $objWriter->writeAttribute('numFmtId', ($pId + 164)); - $objWriter->writeAttribute('formatCode', $formatCode); - $objWriter->endElement(); - } - } - - /** - * Get an array of all styles - * - * @param PHPExcel $pPHPExcel - * @return PHPExcel_Style[] All styles in PHPExcel - * @throws PHPExcel_Writer_Exception - */ - public function allStyles(PHPExcel $pPHPExcel = null) - { - return $pPHPExcel->getCellXfCollection(); - } - - /** - * Get an array of all conditional styles - * - * @param PHPExcel $pPHPExcel - * @return PHPExcel_Style_Conditional[] All conditional styles in PHPExcel - * @throws PHPExcel_Writer_Exception - */ - public function allConditionalStyles(PHPExcel $pPHPExcel = null) - { - // Get an array of all styles - $aStyles = array(); - - $sheetCount = $pPHPExcel->getSheetCount(); - for ($i = 0; $i < $sheetCount; ++$i) { - foreach ($pPHPExcel->getSheet($i)->getConditionalStylesCollection() as $conditionalStyles) { - foreach ($conditionalStyles as $conditionalStyle) { - $aStyles[] = $conditionalStyle; - } - } - } - - return $aStyles; - } - - /** - * Get an array of all fills - * - * @param PHPExcel $pPHPExcel - * @return PHPExcel_Style_Fill[] All fills in PHPExcel - * @throws PHPExcel_Writer_Exception - */ - public function allFills(PHPExcel $pPHPExcel = null) - { - // Get an array of unique fills - $aFills = array(); - - // Two first fills are predefined - $fill0 = new PHPExcel_Style_Fill(); - $fill0->setFillType(PHPExcel_Style_Fill::FILL_NONE); - $aFills[] = $fill0; - - $fill1 = new PHPExcel_Style_Fill(); - $fill1->setFillType(PHPExcel_Style_Fill::FILL_PATTERN_GRAY125); - $aFills[] = $fill1; - // The remaining fills - $aStyles = $this->allStyles($pPHPExcel); - foreach ($aStyles as $style) { - if (!array_key_exists($style->getFill()->getHashCode(), $aFills)) { - $aFills[ $style->getFill()->getHashCode() ] = $style->getFill(); - } - } - - return $aFills; - } - - /** - * Get an array of all fonts - * - * @param PHPExcel $pPHPExcel - * @return PHPExcel_Style_Font[] All fonts in PHPExcel - * @throws PHPExcel_Writer_Exception - */ - public function allFonts(PHPExcel $pPHPExcel = null) - { - // Get an array of unique fonts - $aFonts = array(); - $aStyles = $this->allStyles($pPHPExcel); - - foreach ($aStyles as $style) { - if (!array_key_exists($style->getFont()->getHashCode(), $aFonts)) { - $aFonts[ $style->getFont()->getHashCode() ] = $style->getFont(); - } - } - - return $aFonts; - } - - /** - * Get an array of all borders - * - * @param PHPExcel $pPHPExcel - * @return PHPExcel_Style_Borders[] All borders in PHPExcel - * @throws PHPExcel_Writer_Exception - */ - public function allBorders(PHPExcel $pPHPExcel = null) - { - // Get an array of unique borders - $aBorders = array(); - $aStyles = $this->allStyles($pPHPExcel); - - foreach ($aStyles as $style) { - if (!array_key_exists($style->getBorders()->getHashCode(), $aBorders)) { - $aBorders[ $style->getBorders()->getHashCode() ] = $style->getBorders(); - } - } - - return $aBorders; - } - - /** - * Get an array of all number formats - * - * @param PHPExcel $pPHPExcel - * @return PHPExcel_Style_NumberFormat[] All number formats in PHPExcel - * @throws PHPExcel_Writer_Exception - */ - public function allNumberFormats(PHPExcel $pPHPExcel = null) - { - // Get an array of unique number formats - $aNumFmts = array(); - $aStyles = $this->allStyles($pPHPExcel); - - foreach ($aStyles as $style) { - if ($style->getNumberFormat()->getBuiltInFormatCode() === false && !array_key_exists($style->getNumberFormat()->getHashCode(), $aNumFmts)) { - $aNumFmts[ $style->getNumberFormat()->getHashCode() ] = $style->getNumberFormat(); - } - } - - return $aNumFmts; - } -} diff --git a/Utils/PHPExcel/Writer/Excel2007/Theme.php b/Utils/PHPExcel/Writer/Excel2007/Theme.php deleted file mode 100644 index 223e402..0000000 --- a/Utils/PHPExcel/Writer/Excel2007/Theme.php +++ /dev/null @@ -1,869 +0,0 @@ -<?php -/** - * PHPExcel - * - * Copyright (c) 2006 - 2015 PHPExcel - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - * - * @category PHPExcel - * @package PHPExcel_Writer_Excel2007 - * @copyright Copyright (c) 2006 - 2015 PHPExcel (http://www.codeplex.com/PHPExcel) - * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL - * @version ##VERSION##, ##DATE## - */ - - -/** - * PHPExcel_Writer_Excel2007_Theme - * - * @category PHPExcel - * @package PHPExcel_Writer_Excel2007 - * @copyright Copyright (c) 2006 - 2015 PHPExcel (http://www.codeplex.com/PHPExcel) - */ -class PHPExcel_Writer_Excel2007_Theme extends PHPExcel_Writer_Excel2007_WriterPart -{ - /** - * Map of Major fonts to write - * @static array of string - * - */ - private static $majorFonts = array( - 'Jpan' => 'MS Pゴシック', - 'Hang' => '맑은 고딕', - 'Hans' => '宋体', - 'Hant' => '新細明體', - 'Arab' => 'Times New Roman', - 'Hebr' => 'Times New Roman', - 'Thai' => 'Tahoma', - 'Ethi' => 'Nyala', - 'Beng' => 'Vrinda', - 'Gujr' => 'Shruti', - 'Khmr' => 'MoolBoran', - 'Knda' => 'Tunga', - 'Guru' => 'Raavi', - 'Cans' => 'Euphemia', - 'Cher' => 'Plantagenet Cherokee', - 'Yiii' => 'Microsoft Yi Baiti', - 'Tibt' => 'Microsoft Himalaya', - 'Thaa' => 'MV Boli', - 'Deva' => 'Mangal', - 'Telu' => 'Gautami', - 'Taml' => 'Latha', - 'Syrc' => 'Estrangelo Edessa', - 'Orya' => 'Kalinga', - 'Mlym' => 'Kartika', - 'Laoo' => 'DokChampa', - 'Sinh' => 'Iskoola Pota', - 'Mong' => 'Mongolian Baiti', - 'Viet' => 'Times New Roman', - 'Uigh' => 'Microsoft Uighur', - 'Geor' => 'Sylfaen', - ); - - /** - * Map of Minor fonts to write - * @static array of string - * - */ - private static $minorFonts = array( - 'Jpan' => 'MS Pゴシック', - 'Hang' => '맑은 고딕', - 'Hans' => '宋体', - 'Hant' => '新細明體', - 'Arab' => 'Arial', - 'Hebr' => 'Arial', - 'Thai' => 'Tahoma', - 'Ethi' => 'Nyala', - 'Beng' => 'Vrinda', - 'Gujr' => 'Shruti', - 'Khmr' => 'DaunPenh', - 'Knda' => 'Tunga', - 'Guru' => 'Raavi', - 'Cans' => 'Euphemia', - 'Cher' => 'Plantagenet Cherokee', - 'Yiii' => 'Microsoft Yi Baiti', - 'Tibt' => 'Microsoft Himalaya', - 'Thaa' => 'MV Boli', - 'Deva' => 'Mangal', - 'Telu' => 'Gautami', - 'Taml' => 'Latha', - 'Syrc' => 'Estrangelo Edessa', - 'Orya' => 'Kalinga', - 'Mlym' => 'Kartika', - 'Laoo' => 'DokChampa', - 'Sinh' => 'Iskoola Pota', - 'Mong' => 'Mongolian Baiti', - 'Viet' => 'Arial', - 'Uigh' => 'Microsoft Uighur', - 'Geor' => 'Sylfaen', - ); - - /** - * Map of core colours - * @static array of string - * - */ - private static $colourScheme = array( - 'dk2' => '1F497D', - 'lt2' => 'EEECE1', - 'accent1' => '4F81BD', - 'accent2' => 'C0504D', - 'accent3' => '9BBB59', - 'accent4' => '8064A2', - 'accent5' => '4BACC6', - 'accent6' => 'F79646', - 'hlink' => '0000FF', - 'folHlink' => '800080', - ); - - /** - * Write theme to XML format - * - * @param PHPExcel $pPHPExcel - * @return string XML Output - * @throws PHPExcel_Writer_Exception - */ - public function writeTheme(PHPExcel $pPHPExcel = null) - { - // Create XML writer - $objWriter = null; - if ($this->getParentWriter()->getUseDiskCaching()) { - $objWriter = new PHPExcel_Shared_XMLWriter(PHPExcel_Shared_XMLWriter::STORAGE_DISK, $this->getParentWriter()->getDiskCachingDirectory()); - } else { - $objWriter = new PHPExcel_Shared_XMLWriter(PHPExcel_Shared_XMLWriter::STORAGE_MEMORY); - } - - // XML header - $objWriter->startDocument('1.0', 'UTF-8', 'yes'); - - // a:theme - $objWriter->startElement('a:theme'); - $objWriter->writeAttribute('xmlns:a', 'http://schemas.openxmlformats.org/drawingml/2006/main'); - $objWriter->writeAttribute('name', 'Office Theme'); - - // a:themeElements - $objWriter->startElement('a:themeElements'); - - // a:clrScheme - $objWriter->startElement('a:clrScheme'); - $objWriter->writeAttribute('name', 'Office'); - - // a:dk1 - $objWriter->startElement('a:dk1'); - - // a:sysClr - $objWriter->startElement('a:sysClr'); - $objWriter->writeAttribute('val', 'windowText'); - $objWriter->writeAttribute('lastClr', '000000'); - $objWriter->endElement(); - - $objWriter->endElement(); - - // a:lt1 - $objWriter->startElement('a:lt1'); - - // a:sysClr - $objWriter->startElement('a:sysClr'); - $objWriter->writeAttribute('val', 'window'); - $objWriter->writeAttribute('lastClr', 'FFFFFF'); - $objWriter->endElement(); - - $objWriter->endElement(); - - // a:dk2 - $this->writeColourScheme($objWriter); - - $objWriter->endElement(); - - // a:fontScheme - $objWriter->startElement('a:fontScheme'); - $objWriter->writeAttribute('name', 'Office'); - - // a:majorFont - $objWriter->startElement('a:majorFont'); - $this->writeFonts($objWriter, 'Cambria', self::$majorFonts); - $objWriter->endElement(); - - // a:minorFont - $objWriter->startElement('a:minorFont'); - $this->writeFonts($objWriter, 'Calibri', self::$minorFonts); - $objWriter->endElement(); - - $objWriter->endElement(); - - // a:fmtScheme - $objWriter->startElement('a:fmtScheme'); - $objWriter->writeAttribute('name', 'Office'); - - // a:fillStyleLst - $objWriter->startElement('a:fillStyleLst'); - - // a:solidFill - $objWriter->startElement('a:solidFill'); - - // a:schemeClr - $objWriter->startElement('a:schemeClr'); - $objWriter->writeAttribute('val', 'phClr'); - $objWriter->endElement(); - - $objWriter->endElement(); - - // a:gradFill - $objWriter->startElement('a:gradFill'); - $objWriter->writeAttribute('rotWithShape', '1'); - - // a:gsLst - $objWriter->startElement('a:gsLst'); - - // a:gs - $objWriter->startElement('a:gs'); - $objWriter->writeAttribute('pos', '0'); - - // a:schemeClr - $objWriter->startElement('a:schemeClr'); - $objWriter->writeAttribute('val', 'phClr'); - - // a:tint - $objWriter->startElement('a:tint'); - $objWriter->writeAttribute('val', '50000'); - $objWriter->endElement(); - - // a:satMod - $objWriter->startElement('a:satMod'); - $objWriter->writeAttribute('val', '300000'); - $objWriter->endElement(); - - $objWriter->endElement(); - - $objWriter->endElement(); - - // a:gs - $objWriter->startElement('a:gs'); - $objWriter->writeAttribute('pos', '35000'); - - // a:schemeClr - $objWriter->startElement('a:schemeClr'); - $objWriter->writeAttribute('val', 'phClr'); - - // a:tint - $objWriter->startElement('a:tint'); - $objWriter->writeAttribute('val', '37000'); - $objWriter->endElement(); - - // a:satMod - $objWriter->startElement('a:satMod'); - $objWriter->writeAttribute('val', '300000'); - $objWriter->endElement(); - - $objWriter->endElement(); - - $objWriter->endElement(); - - // a:gs - $objWriter->startElement('a:gs'); - $objWriter->writeAttribute('pos', '100000'); - - // a:schemeClr - $objWriter->startElement('a:schemeClr'); - $objWriter->writeAttribute('val', 'phClr'); - - // a:tint - $objWriter->startElement('a:tint'); - $objWriter->writeAttribute('val', '15000'); - $objWriter->endElement(); - - // a:satMod - $objWriter->startElement('a:satMod'); - $objWriter->writeAttribute('val', '350000'); - $objWriter->endElement(); - - $objWriter->endElement(); - - $objWriter->endElement(); - - $objWriter->endElement(); - - // a:lin - $objWriter->startElement('a:lin'); - $objWriter->writeAttribute('ang', '16200000'); - $objWriter->writeAttribute('scaled', '1'); - $objWriter->endElement(); - - $objWriter->endElement(); - - // a:gradFill - $objWriter->startElement('a:gradFill'); - $objWriter->writeAttribute('rotWithShape', '1'); - - // a:gsLst - $objWriter->startElement('a:gsLst'); - - // a:gs - $objWriter->startElement('a:gs'); - $objWriter->writeAttribute('pos', '0'); - - // a:schemeClr - $objWriter->startElement('a:schemeClr'); - $objWriter->writeAttribute('val', 'phClr'); - - // a:shade - $objWriter->startElement('a:shade'); - $objWriter->writeAttribute('val', '51000'); - $objWriter->endElement(); - - // a:satMod - $objWriter->startElement('a:satMod'); - $objWriter->writeAttribute('val', '130000'); - $objWriter->endElement(); - - $objWriter->endElement(); - - $objWriter->endElement(); - - // a:gs - $objWriter->startElement('a:gs'); - $objWriter->writeAttribute('pos', '80000'); - - // a:schemeClr - $objWriter->startElement('a:schemeClr'); - $objWriter->writeAttribute('val', 'phClr'); - - // a:shade - $objWriter->startElement('a:shade'); - $objWriter->writeAttribute('val', '93000'); - $objWriter->endElement(); - - // a:satMod - $objWriter->startElement('a:satMod'); - $objWriter->writeAttribute('val', '130000'); - $objWriter->endElement(); - - $objWriter->endElement(); - - $objWriter->endElement(); - - // a:gs - $objWriter->startElement('a:gs'); - $objWriter->writeAttribute('pos', '100000'); - - // a:schemeClr - $objWriter->startElement('a:schemeClr'); - $objWriter->writeAttribute('val', 'phClr'); - - // a:shade - $objWriter->startElement('a:shade'); - $objWriter->writeAttribute('val', '94000'); - $objWriter->endElement(); - - // a:satMod - $objWriter->startElement('a:satMod'); - $objWriter->writeAttribute('val', '135000'); - $objWriter->endElement(); - - $objWriter->endElement(); - - $objWriter->endElement(); - - $objWriter->endElement(); - - // a:lin - $objWriter->startElement('a:lin'); - $objWriter->writeAttribute('ang', '16200000'); - $objWriter->writeAttribute('scaled', '0'); - $objWriter->endElement(); - - $objWriter->endElement(); - - $objWriter->endElement(); - - // a:lnStyleLst - $objWriter->startElement('a:lnStyleLst'); - - // a:ln - $objWriter->startElement('a:ln'); - $objWriter->writeAttribute('w', '9525'); - $objWriter->writeAttribute('cap', 'flat'); - $objWriter->writeAttribute('cmpd', 'sng'); - $objWriter->writeAttribute('algn', 'ctr'); - - // a:solidFill - $objWriter->startElement('a:solidFill'); - - // a:schemeClr - $objWriter->startElement('a:schemeClr'); - $objWriter->writeAttribute('val', 'phClr'); - - // a:shade - $objWriter->startElement('a:shade'); - $objWriter->writeAttribute('val', '95000'); - $objWriter->endElement(); - - // a:satMod - $objWriter->startElement('a:satMod'); - $objWriter->writeAttribute('val', '105000'); - $objWriter->endElement(); - - $objWriter->endElement(); - - $objWriter->endElement(); - - // a:prstDash - $objWriter->startElement('a:prstDash'); - $objWriter->writeAttribute('val', 'solid'); - $objWriter->endElement(); - - $objWriter->endElement(); - - // a:ln - $objWriter->startElement('a:ln'); - $objWriter->writeAttribute('w', '25400'); - $objWriter->writeAttribute('cap', 'flat'); - $objWriter->writeAttribute('cmpd', 'sng'); - $objWriter->writeAttribute('algn', 'ctr'); - - // a:solidFill - $objWriter->startElement('a:solidFill'); - - // a:schemeClr - $objWriter->startElement('a:schemeClr'); - $objWriter->writeAttribute('val', 'phClr'); - $objWriter->endElement(); - - $objWriter->endElement(); - - // a:prstDash - $objWriter->startElement('a:prstDash'); - $objWriter->writeAttribute('val', 'solid'); - $objWriter->endElement(); - - $objWriter->endElement(); - - // a:ln - $objWriter->startElement('a:ln'); - $objWriter->writeAttribute('w', '38100'); - $objWriter->writeAttribute('cap', 'flat'); - $objWriter->writeAttribute('cmpd', 'sng'); - $objWriter->writeAttribute('algn', 'ctr'); - - // a:solidFill - $objWriter->startElement('a:solidFill'); - - // a:schemeClr - $objWriter->startElement('a:schemeClr'); - $objWriter->writeAttribute('val', 'phClr'); - $objWriter->endElement(); - - $objWriter->endElement(); - - // a:prstDash - $objWriter->startElement('a:prstDash'); - $objWriter->writeAttribute('val', 'solid'); - $objWriter->endElement(); - - $objWriter->endElement(); - - $objWriter->endElement(); - - - - // a:effectStyleLst - $objWriter->startElement('a:effectStyleLst'); - - // a:effectStyle - $objWriter->startElement('a:effectStyle'); - - // a:effectLst - $objWriter->startElement('a:effectLst'); - - // a:outerShdw - $objWriter->startElement('a:outerShdw'); - $objWriter->writeAttribute('blurRad', '40000'); - $objWriter->writeAttribute('dist', '20000'); - $objWriter->writeAttribute('dir', '5400000'); - $objWriter->writeAttribute('rotWithShape', '0'); - - // a:srgbClr - $objWriter->startElement('a:srgbClr'); - $objWriter->writeAttribute('val', '000000'); - - // a:alpha - $objWriter->startElement('a:alpha'); - $objWriter->writeAttribute('val', '38000'); - $objWriter->endElement(); - - $objWriter->endElement(); - - $objWriter->endElement(); - - $objWriter->endElement(); - - $objWriter->endElement(); - - // a:effectStyle - $objWriter->startElement('a:effectStyle'); - - // a:effectLst - $objWriter->startElement('a:effectLst'); - - // a:outerShdw - $objWriter->startElement('a:outerShdw'); - $objWriter->writeAttribute('blurRad', '40000'); - $objWriter->writeAttribute('dist', '23000'); - $objWriter->writeAttribute('dir', '5400000'); - $objWriter->writeAttribute('rotWithShape', '0'); - - // a:srgbClr - $objWriter->startElement('a:srgbClr'); - $objWriter->writeAttribute('val', '000000'); - - // a:alpha - $objWriter->startElement('a:alpha'); - $objWriter->writeAttribute('val', '35000'); - $objWriter->endElement(); - - $objWriter->endElement(); - - $objWriter->endElement(); - - $objWriter->endElement(); - - $objWriter->endElement(); - - // a:effectStyle - $objWriter->startElement('a:effectStyle'); - - // a:effectLst - $objWriter->startElement('a:effectLst'); - - // a:outerShdw - $objWriter->startElement('a:outerShdw'); - $objWriter->writeAttribute('blurRad', '40000'); - $objWriter->writeAttribute('dist', '23000'); - $objWriter->writeAttribute('dir', '5400000'); - $objWriter->writeAttribute('rotWithShape', '0'); - - // a:srgbClr - $objWriter->startElement('a:srgbClr'); - $objWriter->writeAttribute('val', '000000'); - - // a:alpha - $objWriter->startElement('a:alpha'); - $objWriter->writeAttribute('val', '35000'); - $objWriter->endElement(); - - $objWriter->endElement(); - - $objWriter->endElement(); - - $objWriter->endElement(); - - // a:scene3d - $objWriter->startElement('a:scene3d'); - - // a:camera - $objWriter->startElement('a:camera'); - $objWriter->writeAttribute('prst', 'orthographicFront'); - - // a:rot - $objWriter->startElement('a:rot'); - $objWriter->writeAttribute('lat', '0'); - $objWriter->writeAttribute('lon', '0'); - $objWriter->writeAttribute('rev', '0'); - $objWriter->endElement(); - - $objWriter->endElement(); - - // a:lightRig - $objWriter->startElement('a:lightRig'); - $objWriter->writeAttribute('rig', 'threePt'); - $objWriter->writeAttribute('dir', 't'); - - // a:rot - $objWriter->startElement('a:rot'); - $objWriter->writeAttribute('lat', '0'); - $objWriter->writeAttribute('lon', '0'); - $objWriter->writeAttribute('rev', '1200000'); - $objWriter->endElement(); - - $objWriter->endElement(); - - $objWriter->endElement(); - - // a:sp3d - $objWriter->startElement('a:sp3d'); - - // a:bevelT - $objWriter->startElement('a:bevelT'); - $objWriter->writeAttribute('w', '63500'); - $objWriter->writeAttribute('h', '25400'); - $objWriter->endElement(); - - $objWriter->endElement(); - - $objWriter->endElement(); - - $objWriter->endElement(); - - // a:bgFillStyleLst - $objWriter->startElement('a:bgFillStyleLst'); - - // a:solidFill - $objWriter->startElement('a:solidFill'); - - // a:schemeClr - $objWriter->startElement('a:schemeClr'); - $objWriter->writeAttribute('val', 'phClr'); - $objWriter->endElement(); - - $objWriter->endElement(); - - // a:gradFill - $objWriter->startElement('a:gradFill'); - $objWriter->writeAttribute('rotWithShape', '1'); - - // a:gsLst - $objWriter->startElement('a:gsLst'); - - // a:gs - $objWriter->startElement('a:gs'); - $objWriter->writeAttribute('pos', '0'); - - // a:schemeClr - $objWriter->startElement('a:schemeClr'); - $objWriter->writeAttribute('val', 'phClr'); - - // a:tint - $objWriter->startElement('a:tint'); - $objWriter->writeAttribute('val', '40000'); - $objWriter->endElement(); - - // a:satMod - $objWriter->startElement('a:satMod'); - $objWriter->writeAttribute('val', '350000'); - $objWriter->endElement(); - - $objWriter->endElement(); - - $objWriter->endElement(); - - // a:gs - $objWriter->startElement('a:gs'); - $objWriter->writeAttribute('pos', '40000'); - - // a:schemeClr - $objWriter->startElement('a:schemeClr'); - $objWriter->writeAttribute('val', 'phClr'); - - // a:tint - $objWriter->startElement('a:tint'); - $objWriter->writeAttribute('val', '45000'); - $objWriter->endElement(); - - // a:shade - $objWriter->startElement('a:shade'); - $objWriter->writeAttribute('val', '99000'); - $objWriter->endElement(); - - // a:satMod - $objWriter->startElement('a:satMod'); - $objWriter->writeAttribute('val', '350000'); - $objWriter->endElement(); - - $objWriter->endElement(); - - $objWriter->endElement(); - - // a:gs - $objWriter->startElement('a:gs'); - $objWriter->writeAttribute('pos', '100000'); - - // a:schemeClr - $objWriter->startElement('a:schemeClr'); - $objWriter->writeAttribute('val', 'phClr'); - - // a:shade - $objWriter->startElement('a:shade'); - $objWriter->writeAttribute('val', '20000'); - $objWriter->endElement(); - - // a:satMod - $objWriter->startElement('a:satMod'); - $objWriter->writeAttribute('val', '255000'); - $objWriter->endElement(); - - $objWriter->endElement(); - - $objWriter->endElement(); - - $objWriter->endElement(); - - // a:path - $objWriter->startElement('a:path'); - $objWriter->writeAttribute('path', 'circle'); - - // a:fillToRect - $objWriter->startElement('a:fillToRect'); - $objWriter->writeAttribute('l', '50000'); - $objWriter->writeAttribute('t', '-80000'); - $objWriter->writeAttribute('r', '50000'); - $objWriter->writeAttribute('b', '180000'); - $objWriter->endElement(); - - $objWriter->endElement(); - - $objWriter->endElement(); - - // a:gradFill - $objWriter->startElement('a:gradFill'); - $objWriter->writeAttribute('rotWithShape', '1'); - - // a:gsLst - $objWriter->startElement('a:gsLst'); - - // a:gs - $objWriter->startElement('a:gs'); - $objWriter->writeAttribute('pos', '0'); - - // a:schemeClr - $objWriter->startElement('a:schemeClr'); - $objWriter->writeAttribute('val', 'phClr'); - - // a:tint - $objWriter->startElement('a:tint'); - $objWriter->writeAttribute('val', '80000'); - $objWriter->endElement(); - - // a:satMod - $objWriter->startElement('a:satMod'); - $objWriter->writeAttribute('val', '300000'); - $objWriter->endElement(); - - $objWriter->endElement(); - - $objWriter->endElement(); - - // a:gs - $objWriter->startElement('a:gs'); - $objWriter->writeAttribute('pos', '100000'); - - // a:schemeClr - $objWriter->startElement('a:schemeClr'); - $objWriter->writeAttribute('val', 'phClr'); - - // a:shade - $objWriter->startElement('a:shade'); - $objWriter->writeAttribute('val', '30000'); - $objWriter->endElement(); - - // a:satMod - $objWriter->startElement('a:satMod'); - $objWriter->writeAttribute('val', '200000'); - $objWriter->endElement(); - - $objWriter->endElement(); - - $objWriter->endElement(); - - $objWriter->endElement(); - - // a:path - $objWriter->startElement('a:path'); - $objWriter->writeAttribute('path', 'circle'); - - // a:fillToRect - $objWriter->startElement('a:fillToRect'); - $objWriter->writeAttribute('l', '50000'); - $objWriter->writeAttribute('t', '50000'); - $objWriter->writeAttribute('r', '50000'); - $objWriter->writeAttribute('b', '50000'); - $objWriter->endElement(); - - $objWriter->endElement(); - - $objWriter->endElement(); - - $objWriter->endElement(); - - $objWriter->endElement(); - - $objWriter->endElement(); - - // a:objectDefaults - $objWriter->writeElement('a:objectDefaults', null); - - // a:extraClrSchemeLst - $objWriter->writeElement('a:extraClrSchemeLst', null); - - $objWriter->endElement(); - - // Return - return $objWriter->getData(); - } - - /** - * Write fonts to XML format - * - * @param PHPExcel_Shared_XMLWriter $objWriter - * @param string $latinFont - * @param array of string $fontSet - * @return string XML Output - * @throws PHPExcel_Writer_Exception - */ - private function writeFonts($objWriter, $latinFont, $fontSet) - { - // a:latin - $objWriter->startElement('a:latin'); - $objWriter->writeAttribute('typeface', $latinFont); - $objWriter->endElement(); - - // a:ea - $objWriter->startElement('a:ea'); - $objWriter->writeAttribute('typeface', ''); - $objWriter->endElement(); - - // a:cs - $objWriter->startElement('a:cs'); - $objWriter->writeAttribute('typeface', ''); - $objWriter->endElement(); - - foreach ($fontSet as $fontScript => $typeface) { - $objWriter->startElement('a:font'); - $objWriter->writeAttribute('script', $fontScript); - $objWriter->writeAttribute('typeface', $typeface); - $objWriter->endElement(); - } - } - - /** - * Write colour scheme to XML format - * - * @param PHPExcel_Shared_XMLWriter $objWriter - * @return string XML Output - * @throws PHPExcel_Writer_Exception - */ - private function writeColourScheme($objWriter) - { - foreach (self::$colourScheme as $colourName => $colourValue) { - $objWriter->startElement('a:'.$colourName); - - $objWriter->startElement('a:srgbClr'); - $objWriter->writeAttribute('val', $colourValue); - $objWriter->endElement(); - - $objWriter->endElement(); - } - } -} diff --git a/Utils/PHPExcel/Writer/Excel2007/Workbook.php b/Utils/PHPExcel/Writer/Excel2007/Workbook.php deleted file mode 100644 index 4ac2d55..0000000 --- a/Utils/PHPExcel/Writer/Excel2007/Workbook.php +++ /dev/null @@ -1,448 +0,0 @@ -<?php - -/** - * PHPExcel_Writer_Excel2007_Workbook - * - * Copyright (c) 2006 - 2015 PHPExcel - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - * - * @category PHPExcel - * @package PHPExcel_Writer_Excel2007 - * @copyright Copyright (c) 2006 - 2015 PHPExcel (http://www.codeplex.com/PHPExcel) - * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL - * @version ##VERSION##, ##DATE## - */ -class PHPExcel_Writer_Excel2007_Workbook extends PHPExcel_Writer_Excel2007_WriterPart -{ - /** - * Write workbook to XML format - * - * @param PHPExcel $pPHPExcel - * @param boolean $recalcRequired Indicate whether formulas should be recalculated before writing - * @return string XML Output - * @throws PHPExcel_Writer_Exception - */ - public function writeWorkbook(PHPExcel $pPHPExcel = null, $recalcRequired = false) - { - // Create XML writer - $objWriter = null; - if ($this->getParentWriter()->getUseDiskCaching()) { - $objWriter = new PHPExcel_Shared_XMLWriter(PHPExcel_Shared_XMLWriter::STORAGE_DISK, $this->getParentWriter()->getDiskCachingDirectory()); - } else { - $objWriter = new PHPExcel_Shared_XMLWriter(PHPExcel_Shared_XMLWriter::STORAGE_MEMORY); - } - - // XML header - $objWriter->startDocument('1.0', 'UTF-8', 'yes'); - - // workbook - $objWriter->startElement('workbook'); - $objWriter->writeAttribute('xml:space', 'preserve'); - $objWriter->writeAttribute('xmlns', 'http://schemas.openxmlformats.org/spreadsheetml/2006/main'); - $objWriter->writeAttribute('xmlns:r', 'http://schemas.openxmlformats.org/officeDocument/2006/relationships'); - - // fileVersion - $this->writeFileVersion($objWriter); - - // workbookPr - $this->writeWorkbookPr($objWriter); - - // workbookProtection - $this->writeWorkbookProtection($objWriter, $pPHPExcel); - - // bookViews - if ($this->getParentWriter()->getOffice2003Compatibility() === false) { - $this->writeBookViews($objWriter, $pPHPExcel); - } - - // sheets - $this->writeSheets($objWriter, $pPHPExcel); - - // definedNames - $this->writeDefinedNames($objWriter, $pPHPExcel); - - // calcPr - $this->writeCalcPr($objWriter, $recalcRequired); - - $objWriter->endElement(); - - // Return - return $objWriter->getData(); - } - - /** - * Write file version - * - * @param PHPExcel_Shared_XMLWriter $objWriter XML Writer - * @throws PHPExcel_Writer_Exception - */ - private function writeFileVersion(PHPExcel_Shared_XMLWriter $objWriter = null) - { - $objWriter->startElement('fileVersion'); - $objWriter->writeAttribute('appName', 'xl'); - $objWriter->writeAttribute('lastEdited', '4'); - $objWriter->writeAttribute('lowestEdited', '4'); - $objWriter->writeAttribute('rupBuild', '4505'); - $objWriter->endElement(); - } - - /** - * Write WorkbookPr - * - * @param PHPExcel_Shared_XMLWriter $objWriter XML Writer - * @throws PHPExcel_Writer_Exception - */ - private function writeWorkbookPr(PHPExcel_Shared_XMLWriter $objWriter = null) - { - $objWriter->startElement('workbookPr'); - - if (PHPExcel_Shared_Date::getExcelCalendar() == PHPExcel_Shared_Date::CALENDAR_MAC_1904) { - $objWriter->writeAttribute('date1904', '1'); - } - - $objWriter->writeAttribute('codeName', 'ThisWorkbook'); - - $objWriter->endElement(); - } - - /** - * Write WorkbookProtection - * - * @param PHPExcel_Shared_XMLWriter $objWriter XML Writer - * @param PHPExcel $pPHPExcel - * @throws PHPExcel_Writer_Exception - */ - private function writeWorkbookProtection(PHPExcel_Shared_XMLWriter $objWriter = null, PHPExcel $pPHPExcel = null) - { - if ($pPHPExcel->getSecurity()->isSecurityEnabled()) { - $objWriter->startElement('workbookProtection'); - $objWriter->writeAttribute('lockRevision', ($pPHPExcel->getSecurity()->getLockRevision() ? 'true' : 'false')); - $objWriter->writeAttribute('lockStructure', ($pPHPExcel->getSecurity()->getLockStructure() ? 'true' : 'false')); - $objWriter->writeAttribute('lockWindows', ($pPHPExcel->getSecurity()->getLockWindows() ? 'true' : 'false')); - - if ($pPHPExcel->getSecurity()->getRevisionsPassword() != '') { - $objWriter->writeAttribute('revisionsPassword', $pPHPExcel->getSecurity()->getRevisionsPassword()); - } - - if ($pPHPExcel->getSecurity()->getWorkbookPassword() != '') { - $objWriter->writeAttribute('workbookPassword', $pPHPExcel->getSecurity()->getWorkbookPassword()); - } - - $objWriter->endElement(); - } - } - - /** - * Write BookViews - * - * @param PHPExcel_Shared_XMLWriter $objWriter XML Writer - * @param PHPExcel $pPHPExcel - * @throws PHPExcel_Writer_Exception - */ - private function writeBookViews(PHPExcel_Shared_XMLWriter $objWriter = null, PHPExcel $pPHPExcel = null) - { - // bookViews - $objWriter->startElement('bookViews'); - - // workbookView - $objWriter->startElement('workbookView'); - - $objWriter->writeAttribute('activeTab', $pPHPExcel->getActiveSheetIndex()); - $objWriter->writeAttribute('autoFilterDateGrouping', '1'); - $objWriter->writeAttribute('firstSheet', '0'); - $objWriter->writeAttribute('minimized', '0'); - $objWriter->writeAttribute('showHorizontalScroll', '1'); - $objWriter->writeAttribute('showSheetTabs', '1'); - $objWriter->writeAttribute('showVerticalScroll', '1'); - $objWriter->writeAttribute('tabRatio', '600'); - $objWriter->writeAttribute('visibility', 'visible'); - - $objWriter->endElement(); - - $objWriter->endElement(); - } - - /** - * Write sheets - * - * @param PHPExcel_Shared_XMLWriter $objWriter XML Writer - * @param PHPExcel $pPHPExcel - * @throws PHPExcel_Writer_Exception - */ - private function writeSheets(PHPExcel_Shared_XMLWriter $objWriter = null, PHPExcel $pPHPExcel = null) - { - // Write sheets - $objWriter->startElement('sheets'); - $sheetCount = $pPHPExcel->getSheetCount(); - for ($i = 0; $i < $sheetCount; ++$i) { - // sheet - $this->writeSheet( - $objWriter, - $pPHPExcel->getSheet($i)->getTitle(), - ($i + 1), - ($i + 1 + 3), - $pPHPExcel->getSheet($i)->getSheetState() - ); - } - - $objWriter->endElement(); - } - - /** - * Write sheet - * - * @param PHPExcel_Shared_XMLWriter $objWriter XML Writer - * @param string $pSheetname Sheet name - * @param int $pSheetId Sheet id - * @param int $pRelId Relationship ID - * @param string $sheetState Sheet state (visible, hidden, veryHidden) - * @throws PHPExcel_Writer_Exception - */ - private function writeSheet(PHPExcel_Shared_XMLWriter $objWriter = null, $pSheetname = '', $pSheetId = 1, $pRelId = 1, $sheetState = 'visible') - { - if ($pSheetname != '') { - // Write sheet - $objWriter->startElement('sheet'); - $objWriter->writeAttribute('name', $pSheetname); - $objWriter->writeAttribute('sheetId', $pSheetId); - if ($sheetState != 'visible' && $sheetState != '') { - $objWriter->writeAttribute('state', $sheetState); - } - $objWriter->writeAttribute('r:id', 'rId' . $pRelId); - $objWriter->endElement(); - } else { - throw new PHPExcel_Writer_Exception("Invalid parameters passed."); - } - } - - /** - * Write Defined Names - * - * @param PHPExcel_Shared_XMLWriter $objWriter XML Writer - * @param PHPExcel $pPHPExcel - * @throws PHPExcel_Writer_Exception - */ - private function writeDefinedNames(PHPExcel_Shared_XMLWriter $objWriter = null, PHPExcel $pPHPExcel = null) - { - // Write defined names - $objWriter->startElement('definedNames'); - - // Named ranges - if (count($pPHPExcel->getNamedRanges()) > 0) { - // Named ranges - $this->writeNamedRanges($objWriter, $pPHPExcel); - } - - // Other defined names - $sheetCount = $pPHPExcel->getSheetCount(); - for ($i = 0; $i < $sheetCount; ++$i) { - // definedName for autoFilter - $this->writeDefinedNameForAutofilter($objWriter, $pPHPExcel->getSheet($i), $i); - - // definedName for Print_Titles - $this->writeDefinedNameForPrintTitles($objWriter, $pPHPExcel->getSheet($i), $i); - - // definedName for Print_Area - $this->writeDefinedNameForPrintArea($objWriter, $pPHPExcel->getSheet($i), $i); - } - - $objWriter->endElement(); - } - - /** - * Write named ranges - * - * @param PHPExcel_Shared_XMLWriter $objWriter XML Writer - * @param PHPExcel $pPHPExcel - * @throws PHPExcel_Writer_Exception - */ - private function writeNamedRanges(PHPExcel_Shared_XMLWriter $objWriter = null, PHPExcel $pPHPExcel) - { - // Loop named ranges - $namedRanges = $pPHPExcel->getNamedRanges(); - foreach ($namedRanges as $namedRange) { - $this->writeDefinedNameForNamedRange($objWriter, $namedRange); - } - } - - /** - * Write Defined Name for named range - * - * @param PHPExcel_Shared_XMLWriter $objWriter XML Writer - * @param PHPExcel_NamedRange $pNamedRange - * @throws PHPExcel_Writer_Exception - */ - private function writeDefinedNameForNamedRange(PHPExcel_Shared_XMLWriter $objWriter = null, PHPExcel_NamedRange $pNamedRange) - { - // definedName for named range - $objWriter->startElement('definedName'); - $objWriter->writeAttribute('name', $pNamedRange->getName()); - if ($pNamedRange->getLocalOnly()) { - $objWriter->writeAttribute('localSheetId', $pNamedRange->getScope()->getParent()->getIndex($pNamedRange->getScope())); - } - - // Create absolute coordinate and write as raw text - $range = PHPExcel_Cell::splitRange($pNamedRange->getRange()); - for ($i = 0; $i < count($range); $i++) { - $range[$i][0] = '\'' . str_replace("'", "''", $pNamedRange->getWorksheet()->getTitle()) . '\'!' . PHPExcel_Cell::absoluteReference($range[$i][0]); - if (isset($range[$i][1])) { - $range[$i][1] = PHPExcel_Cell::absoluteReference($range[$i][1]); - } - } - $range = PHPExcel_Cell::buildRange($range); - - $objWriter->writeRawData($range); - - $objWriter->endElement(); - } - - /** - * Write Defined Name for autoFilter - * - * @param PHPExcel_Shared_XMLWriter $objWriter XML Writer - * @param PHPExcel_Worksheet $pSheet - * @param int $pSheetId - * @throws PHPExcel_Writer_Exception - */ - private function writeDefinedNameForAutofilter(PHPExcel_Shared_XMLWriter $objWriter = null, PHPExcel_Worksheet $pSheet = null, $pSheetId = 0) - { - // definedName for autoFilter - $autoFilterRange = $pSheet->getAutoFilter()->getRange(); - if (!empty($autoFilterRange)) { - $objWriter->startElement('definedName'); - $objWriter->writeAttribute('name', '_xlnm._FilterDatabase'); - $objWriter->writeAttribute('localSheetId', $pSheetId); - $objWriter->writeAttribute('hidden', '1'); - - // Create absolute coordinate and write as raw text - $range = PHPExcel_Cell::splitRange($autoFilterRange); - $range = $range[0]; - // Strip any worksheet ref so we can make the cell ref absolute - if (strpos($range[0], '!') !== false) { - list($ws, $range[0]) = explode('!', $range[0]); - } - - $range[0] = PHPExcel_Cell::absoluteCoordinate($range[0]); - $range[1] = PHPExcel_Cell::absoluteCoordinate($range[1]); - $range = implode(':', $range); - - $objWriter->writeRawData('\'' . str_replace("'", "''", $pSheet->getTitle()) . '\'!' . $range); - - $objWriter->endElement(); - } - } - - /** - * Write Defined Name for PrintTitles - * - * @param PHPExcel_Shared_XMLWriter $objWriter XML Writer - * @param PHPExcel_Worksheet $pSheet - * @param int $pSheetId - * @throws PHPExcel_Writer_Exception - */ - private function writeDefinedNameForPrintTitles(PHPExcel_Shared_XMLWriter $objWriter = null, PHPExcel_Worksheet $pSheet = null, $pSheetId = 0) - { - // definedName for PrintTitles - if ($pSheet->getPageSetup()->isColumnsToRepeatAtLeftSet() || $pSheet->getPageSetup()->isRowsToRepeatAtTopSet()) { - $objWriter->startElement('definedName'); - $objWriter->writeAttribute('name', '_xlnm.Print_Titles'); - $objWriter->writeAttribute('localSheetId', $pSheetId); - - // Setting string - $settingString = ''; - - // Columns to repeat - if ($pSheet->getPageSetup()->isColumnsToRepeatAtLeftSet()) { - $repeat = $pSheet->getPageSetup()->getColumnsToRepeatAtLeft(); - - $settingString .= '\'' . str_replace("'", "''", $pSheet->getTitle()) . '\'!$' . $repeat[0] . ':$' . $repeat[1]; - } - - // Rows to repeat - if ($pSheet->getPageSetup()->isRowsToRepeatAtTopSet()) { - if ($pSheet->getPageSetup()->isColumnsToRepeatAtLeftSet()) { - $settingString .= ','; - } - - $repeat = $pSheet->getPageSetup()->getRowsToRepeatAtTop(); - - $settingString .= '\'' . str_replace("'", "''", $pSheet->getTitle()) . '\'!$' . $repeat[0] . ':$' . $repeat[1]; - } - - $objWriter->writeRawData($settingString); - - $objWriter->endElement(); - } - } - - /** - * Write Defined Name for PrintTitles - * - * @param PHPExcel_Shared_XMLWriter $objWriter XML Writer - * @param PHPExcel_Worksheet $pSheet - * @param int $pSheetId - * @throws PHPExcel_Writer_Exception - */ - private function writeDefinedNameForPrintArea(PHPExcel_Shared_XMLWriter $objWriter = null, PHPExcel_Worksheet $pSheet = null, $pSheetId = 0) - { - // definedName for PrintArea - if ($pSheet->getPageSetup()->isPrintAreaSet()) { - $objWriter->startElement('definedName'); - $objWriter->writeAttribute('name', '_xlnm.Print_Area'); - $objWriter->writeAttribute('localSheetId', $pSheetId); - - // Setting string - $settingString = ''; - - // Print area - $printArea = PHPExcel_Cell::splitRange($pSheet->getPageSetup()->getPrintArea()); - - $chunks = array(); - foreach ($printArea as $printAreaRect) { - $printAreaRect[0] = PHPExcel_Cell::absoluteReference($printAreaRect[0]); - $printAreaRect[1] = PHPExcel_Cell::absoluteReference($printAreaRect[1]); - $chunks[] = '\'' . str_replace("'", "''", $pSheet->getTitle()) . '\'!' . implode(':', $printAreaRect); - } - - $objWriter->writeRawData(implode(',', $chunks)); - - $objWriter->endElement(); - } - } - - /** - * Write calcPr - * - * @param PHPExcel_Shared_XMLWriter $objWriter XML Writer - * @param boolean $recalcRequired Indicate whether formulas should be recalculated before writing - * @throws PHPExcel_Writer_Exception - */ - private function writeCalcPr(PHPExcel_Shared_XMLWriter $objWriter = null, $recalcRequired = true) - { - $objWriter->startElement('calcPr'); - - // Set the calcid to a higher value than Excel itself will use, otherwise Excel will always recalc - // If MS Excel does do a recalc, then users opening a file in MS Excel will be prompted to save on exit - // because the file has changed - $objWriter->writeAttribute('calcId', '999999'); - $objWriter->writeAttribute('calcMode', 'auto'); - // fullCalcOnLoad isn't needed if we've recalculating for the save - $objWriter->writeAttribute('calcCompleted', ($recalcRequired) ? 1 : 0); - $objWriter->writeAttribute('fullCalcOnLoad', ($recalcRequired) ? 0 : 1); - - $objWriter->endElement(); - } -} diff --git a/Utils/PHPExcel/Writer/Excel2007/Worksheet.php b/Utils/PHPExcel/Writer/Excel2007/Worksheet.php deleted file mode 100644 index c211403..0000000 --- a/Utils/PHPExcel/Writer/Excel2007/Worksheet.php +++ /dev/null @@ -1,1219 +0,0 @@ -<?php -/** - * PHPExcel - * - * Copyright (c) 2006 - 2015 PHPExcel - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - * - * @category PHPExcel - * @package PHPExcel_Writer_Excel2007 - * @copyright Copyright (c) 2006 - 2015 PHPExcel (http://www.codeplex.com/PHPExcel) - * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL - * @version ##VERSION##, ##DATE## - */ - - -/** - * PHPExcel_Writer_Excel2007_Worksheet - * - * @category PHPExcel - * @package PHPExcel_Writer_Excel2007 - * @copyright Copyright (c) 2006 - 2015 PHPExcel (http://www.codeplex.com/PHPExcel) - */ -class PHPExcel_Writer_Excel2007_Worksheet extends PHPExcel_Writer_Excel2007_WriterPart -{ - /** - * Write worksheet to XML format - * - * @param PHPExcel_Worksheet $pSheet - * @param string[] $pStringTable - * @param boolean $includeCharts Flag indicating if we should write charts - * @return string XML Output - * @throws PHPExcel_Writer_Exception - */ - public function writeWorksheet($pSheet = null, $pStringTable = null, $includeCharts = false) - { - if (!is_null($pSheet)) { - // Create XML writer - $objWriter = null; - if ($this->getParentWriter()->getUseDiskCaching()) { - $objWriter = new PHPExcel_Shared_XMLWriter(PHPExcel_Shared_XMLWriter::STORAGE_DISK, $this->getParentWriter()->getDiskCachingDirectory()); - } else { - $objWriter = new PHPExcel_Shared_XMLWriter(PHPExcel_Shared_XMLWriter::STORAGE_MEMORY); - } - - // XML header - $objWriter->startDocument('1.0', 'UTF-8', 'yes'); - - // Worksheet - $objWriter->startElement('worksheet'); - $objWriter->writeAttribute('xml:space', 'preserve'); - $objWriter->writeAttribute('xmlns', 'http://schemas.openxmlformats.org/spreadsheetml/2006/main'); - $objWriter->writeAttribute('xmlns:r', 'http://schemas.openxmlformats.org/officeDocument/2006/relationships'); - - // sheetPr - $this->writeSheetPr($objWriter, $pSheet); - - // Dimension - $this->writeDimension($objWriter, $pSheet); - - // sheetViews - $this->writeSheetViews($objWriter, $pSheet); - - // sheetFormatPr - $this->writeSheetFormatPr($objWriter, $pSheet); - - // cols - $this->writeCols($objWriter, $pSheet); - - // sheetData - $this->writeSheetData($objWriter, $pSheet, $pStringTable); - - // sheetProtection - $this->writeSheetProtection($objWriter, $pSheet); - - // protectedRanges - $this->writeProtectedRanges($objWriter, $pSheet); - - // autoFilter - $this->writeAutoFilter($objWriter, $pSheet); - - // mergeCells - $this->writeMergeCells($objWriter, $pSheet); - - // conditionalFormatting - $this->writeConditionalFormatting($objWriter, $pSheet); - - // dataValidations - $this->writeDataValidations($objWriter, $pSheet); - - // hyperlinks - $this->writeHyperlinks($objWriter, $pSheet); - - // Print options - $this->writePrintOptions($objWriter, $pSheet); - - // Page margins - $this->writePageMargins($objWriter, $pSheet); - - // Page setup - $this->writePageSetup($objWriter, $pSheet); - - // Header / footer - $this->writeHeaderFooter($objWriter, $pSheet); - - // Breaks - $this->writeBreaks($objWriter, $pSheet); - - // Drawings and/or Charts - $this->writeDrawings($objWriter, $pSheet, $includeCharts); - - // LegacyDrawing - $this->writeLegacyDrawing($objWriter, $pSheet); - - // LegacyDrawingHF - $this->writeLegacyDrawingHF($objWriter, $pSheet); - - $objWriter->endElement(); - - // Return - return $objWriter->getData(); - } else { - throw new PHPExcel_Writer_Exception("Invalid PHPExcel_Worksheet object passed."); - } - } - - /** - * Write SheetPr - * - * @param PHPExcel_Shared_XMLWriter $objWriter XML Writer - * @param PHPExcel_Worksheet $pSheet Worksheet - * @throws PHPExcel_Writer_Exception - */ - private function writeSheetPr(PHPExcel_Shared_XMLWriter $objWriter = null, PHPExcel_Worksheet $pSheet = null) - { - // sheetPr - $objWriter->startElement('sheetPr'); - //$objWriter->writeAttribute('codeName', $pSheet->getTitle()); - if ($pSheet->getParent()->hasMacros()) {//if the workbook have macros, we need to have codeName for the sheet - if ($pSheet->hasCodeName()==false) { - $pSheet->setCodeName($pSheet->getTitle()); - } - $objWriter->writeAttribute('codeName', $pSheet->getCodeName()); - } - $autoFilterRange = $pSheet->getAutoFilter()->getRange(); - if (!empty($autoFilterRange)) { - $objWriter->writeAttribute('filterMode', 1); - $pSheet->getAutoFilter()->showHideRows(); - } - - // tabColor - if ($pSheet->isTabColorSet()) { - $objWriter->startElement('tabColor'); - $objWriter->writeAttribute('rgb', $pSheet->getTabColor()->getARGB()); - $objWriter->endElement(); - } - - // outlinePr - $objWriter->startElement('outlinePr'); - $objWriter->writeAttribute('summaryBelow', ($pSheet->getShowSummaryBelow() ? '1' : '0')); - $objWriter->writeAttribute('summaryRight', ($pSheet->getShowSummaryRight() ? '1' : '0')); - $objWriter->endElement(); - - // pageSetUpPr - if ($pSheet->getPageSetup()->getFitToPage()) { - $objWriter->startElement('pageSetUpPr'); - $objWriter->writeAttribute('fitToPage', '1'); - $objWriter->endElement(); - } - - $objWriter->endElement(); - } - - /** - * Write Dimension - * - * @param PHPExcel_Shared_XMLWriter $objWriter XML Writer - * @param PHPExcel_Worksheet $pSheet Worksheet - * @throws PHPExcel_Writer_Exception - */ - private function writeDimension(PHPExcel_Shared_XMLWriter $objWriter = null, PHPExcel_Worksheet $pSheet = null) - { - // dimension - $objWriter->startElement('dimension'); - $objWriter->writeAttribute('ref', $pSheet->calculateWorksheetDimension()); - $objWriter->endElement(); - } - - /** - * Write SheetViews - * - * @param PHPExcel_Shared_XMLWriter $objWriter XML Writer - * @param PHPExcel_Worksheet $pSheet Worksheet - * @throws PHPExcel_Writer_Exception - */ - private function writeSheetViews(PHPExcel_Shared_XMLWriter $objWriter = null, PHPExcel_Worksheet $pSheet = null) - { - // sheetViews - $objWriter->startElement('sheetViews'); - - // Sheet selected? - $sheetSelected = false; - if ($this->getParentWriter()->getPHPExcel()->getIndex($pSheet) == $this->getParentWriter()->getPHPExcel()->getActiveSheetIndex()) { - $sheetSelected = true; - } - - // sheetView - $objWriter->startElement('sheetView'); - $objWriter->writeAttribute('tabSelected', $sheetSelected ? '1' : '0'); - $objWriter->writeAttribute('workbookViewId', '0'); - - // Zoom scales - if ($pSheet->getSheetView()->getZoomScale() != 100) { - $objWriter->writeAttribute('zoomScale', $pSheet->getSheetView()->getZoomScale()); - } - if ($pSheet->getSheetView()->getZoomScaleNormal() != 100) { - $objWriter->writeAttribute('zoomScaleNormal', $pSheet->getSheetView()->getZoomScaleNormal()); - } - - // View Layout Type - if ($pSheet->getSheetView()->getView() !== PHPExcel_Worksheet_SheetView::SHEETVIEW_NORMAL) { - $objWriter->writeAttribute('view', $pSheet->getSheetView()->getView()); - } - - // Gridlines - if ($pSheet->getShowGridlines()) { - $objWriter->writeAttribute('showGridLines', 'true'); - } else { - $objWriter->writeAttribute('showGridLines', 'false'); - } - - // Row and column headers - if ($pSheet->getShowRowColHeaders()) { - $objWriter->writeAttribute('showRowColHeaders', '1'); - } else { - $objWriter->writeAttribute('showRowColHeaders', '0'); - } - - // Right-to-left - if ($pSheet->getRightToLeft()) { - $objWriter->writeAttribute('rightToLeft', 'true'); - } - - $activeCell = $pSheet->getActiveCell(); - - // Pane - $pane = ''; - $topLeftCell = $pSheet->getFreezePane(); - if (($topLeftCell != '') && ($topLeftCell != 'A1')) { - $activeCell = empty($activeCell) ? $topLeftCell : $activeCell; - // Calculate freeze coordinates - $xSplit = $ySplit = 0; - - list($xSplit, $ySplit) = PHPExcel_Cell::coordinateFromString($topLeftCell); - $xSplit = PHPExcel_Cell::columnIndexFromString($xSplit); - - // pane - $pane = 'topRight'; - $objWriter->startElement('pane'); - if ($xSplit > 1) { - $objWriter->writeAttribute('xSplit', $xSplit - 1); - } - if ($ySplit > 1) { - $objWriter->writeAttribute('ySplit', $ySplit - 1); - $pane = ($xSplit > 1) ? 'bottomRight' : 'bottomLeft'; - } - $objWriter->writeAttribute('topLeftCell', $topLeftCell); - $objWriter->writeAttribute('activePane', $pane); - $objWriter->writeAttribute('state', 'frozen'); - $objWriter->endElement(); - - if (($xSplit > 1) && ($ySplit > 1)) { - // Write additional selections if more than two panes (ie both an X and a Y split) - $objWriter->startElement('selection'); - $objWriter->writeAttribute('pane', 'topRight'); - $objWriter->endElement(); - $objWriter->startElement('selection'); - $objWriter->writeAttribute('pane', 'bottomLeft'); - $objWriter->endElement(); - } - } - - // Selection -// if ($pane != '') { - // Only need to write selection element if we have a split pane - // We cheat a little by over-riding the active cell selection, setting it to the split cell - $objWriter->startElement('selection'); - if ($pane != '') { - $objWriter->writeAttribute('pane', $pane); - } - $objWriter->writeAttribute('activeCell', $activeCell); - $objWriter->writeAttribute('sqref', $activeCell); - $objWriter->endElement(); -// } - - $objWriter->endElement(); - - $objWriter->endElement(); - } - - /** - * Write SheetFormatPr - * - * @param PHPExcel_Shared_XMLWriter $objWriter XML Writer - * @param PHPExcel_Worksheet $pSheet Worksheet - * @throws PHPExcel_Writer_Exception - */ - private function writeSheetFormatPr(PHPExcel_Shared_XMLWriter $objWriter = null, PHPExcel_Worksheet $pSheet = null) - { - // sheetFormatPr - $objWriter->startElement('sheetFormatPr'); - - // Default row height - if ($pSheet->getDefaultRowDimension()->getRowHeight() >= 0) { - $objWriter->writeAttribute('customHeight', 'true'); - $objWriter->writeAttribute('defaultRowHeight', PHPExcel_Shared_String::FormatNumber($pSheet->getDefaultRowDimension()->getRowHeight())); - } else { - $objWriter->writeAttribute('defaultRowHeight', '14.4'); - } - - // Set Zero Height row - if ((string)$pSheet->getDefaultRowDimension()->getZeroHeight() == '1' || - strtolower((string)$pSheet->getDefaultRowDimension()->getZeroHeight()) == 'true') { - $objWriter->writeAttribute('zeroHeight', '1'); - } - - // Default column width - if ($pSheet->getDefaultColumnDimension()->getWidth() >= 0) { - $objWriter->writeAttribute('defaultColWidth', PHPExcel_Shared_String::FormatNumber($pSheet->getDefaultColumnDimension()->getWidth())); - } - - // Outline level - row - $outlineLevelRow = 0; - foreach ($pSheet->getRowDimensions() as $dimension) { - if ($dimension->getOutlineLevel() > $outlineLevelRow) { - $outlineLevelRow = $dimension->getOutlineLevel(); - } - } - $objWriter->writeAttribute('outlineLevelRow', (int)$outlineLevelRow); - - // Outline level - column - $outlineLevelCol = 0; - foreach ($pSheet->getColumnDimensions() as $dimension) { - if ($dimension->getOutlineLevel() > $outlineLevelCol) { - $outlineLevelCol = $dimension->getOutlineLevel(); - } - } - $objWriter->writeAttribute('outlineLevelCol', (int)$outlineLevelCol); - - $objWriter->endElement(); - } - - /** - * Write Cols - * - * @param PHPExcel_Shared_XMLWriter $objWriter XML Writer - * @param PHPExcel_Worksheet $pSheet Worksheet - * @throws PHPExcel_Writer_Exception - */ - private function writeCols(PHPExcel_Shared_XMLWriter $objWriter = null, PHPExcel_Worksheet $pSheet = null) - { - // cols - if (count($pSheet->getColumnDimensions()) > 0) { - $objWriter->startElement('cols'); - - $pSheet->calculateColumnWidths(); - - // Loop through column dimensions - foreach ($pSheet->getColumnDimensions() as $colDimension) { - // col - $objWriter->startElement('col'); - $objWriter->writeAttribute('min', PHPExcel_Cell::columnIndexFromString($colDimension->getColumnIndex())); - $objWriter->writeAttribute('max', PHPExcel_Cell::columnIndexFromString($colDimension->getColumnIndex())); - - if ($colDimension->getWidth() < 0) { - // No width set, apply default of 10 - $objWriter->writeAttribute('width', '9.10'); - } else { - // Width set - $objWriter->writeAttribute('width', PHPExcel_Shared_String::FormatNumber($colDimension->getWidth())); - } - - // Column visibility - if ($colDimension->getVisible() == false) { - $objWriter->writeAttribute('hidden', 'true'); - } - - // Auto size? - if ($colDimension->getAutoSize()) { - $objWriter->writeAttribute('bestFit', 'true'); - } - - // Custom width? - if ($colDimension->getWidth() != $pSheet->getDefaultColumnDimension()->getWidth()) { - $objWriter->writeAttribute('customWidth', 'true'); - } - - // Collapsed - if ($colDimension->getCollapsed() == true) { - $objWriter->writeAttribute('collapsed', 'true'); - } - - // Outline level - if ($colDimension->getOutlineLevel() > 0) { - $objWriter->writeAttribute('outlineLevel', $colDimension->getOutlineLevel()); - } - - // Style - $objWriter->writeAttribute('style', $colDimension->getXfIndex()); - - $objWriter->endElement(); - } - - $objWriter->endElement(); - } - } - - /** - * Write SheetProtection - * - * @param PHPExcel_Shared_XMLWriter $objWriter XML Writer - * @param PHPExcel_Worksheet $pSheet Worksheet - * @throws PHPExcel_Writer_Exception - */ - private function writeSheetProtection(PHPExcel_Shared_XMLWriter $objWriter = null, PHPExcel_Worksheet $pSheet = null) - { - // sheetProtection - $objWriter->startElement('sheetProtection'); - - if ($pSheet->getProtection()->getPassword() != '') { - $objWriter->writeAttribute('password', $pSheet->getProtection()->getPassword()); - } - - $objWriter->writeAttribute('sheet', ($pSheet->getProtection()->getSheet() ? 'true' : 'false')); - $objWriter->writeAttribute('objects', ($pSheet->getProtection()->getObjects() ? 'true' : 'false')); - $objWriter->writeAttribute('scenarios', ($pSheet->getProtection()->getScenarios() ? 'true' : 'false')); - $objWriter->writeAttribute('formatCells', ($pSheet->getProtection()->getFormatCells() ? 'true' : 'false')); - $objWriter->writeAttribute('formatColumns', ($pSheet->getProtection()->getFormatColumns() ? 'true' : 'false')); - $objWriter->writeAttribute('formatRows', ($pSheet->getProtection()->getFormatRows() ? 'true' : 'false')); - $objWriter->writeAttribute('insertColumns', ($pSheet->getProtection()->getInsertColumns() ? 'true' : 'false')); - $objWriter->writeAttribute('insertRows', ($pSheet->getProtection()->getInsertRows() ? 'true' : 'false')); - $objWriter->writeAttribute('insertHyperlinks', ($pSheet->getProtection()->getInsertHyperlinks() ? 'true' : 'false')); - $objWriter->writeAttribute('deleteColumns', ($pSheet->getProtection()->getDeleteColumns() ? 'true' : 'false')); - $objWriter->writeAttribute('deleteRows', ($pSheet->getProtection()->getDeleteRows() ? 'true' : 'false')); - $objWriter->writeAttribute('selectLockedCells', ($pSheet->getProtection()->getSelectLockedCells() ? 'true' : 'false')); - $objWriter->writeAttribute('sort', ($pSheet->getProtection()->getSort() ? 'true' : 'false')); - $objWriter->writeAttribute('autoFilter', ($pSheet->getProtection()->getAutoFilter() ? 'true' : 'false')); - $objWriter->writeAttribute('pivotTables', ($pSheet->getProtection()->getPivotTables() ? 'true' : 'false')); - $objWriter->writeAttribute('selectUnlockedCells', ($pSheet->getProtection()->getSelectUnlockedCells() ? 'true' : 'false')); - $objWriter->endElement(); - } - - /** - * Write ConditionalFormatting - * - * @param PHPExcel_Shared_XMLWriter $objWriter XML Writer - * @param PHPExcel_Worksheet $pSheet Worksheet - * @throws PHPExcel_Writer_Exception - */ - private function writeConditionalFormatting(PHPExcel_Shared_XMLWriter $objWriter = null, PHPExcel_Worksheet $pSheet = null) - { - // Conditional id - $id = 1; - - // Loop through styles in the current worksheet - foreach ($pSheet->getConditionalStylesCollection() as $cellCoordinate => $conditionalStyles) { - foreach ($conditionalStyles as $conditional) { - // WHY was this again? - // if ($this->getParentWriter()->getStylesConditionalHashTable()->getIndexForHashCode($conditional->getHashCode()) == '') { - // continue; - // } - if ($conditional->getConditionType() != PHPExcel_Style_Conditional::CONDITION_NONE) { - // conditionalFormatting - $objWriter->startElement('conditionalFormatting'); - $objWriter->writeAttribute('sqref', $cellCoordinate); - - // cfRule - $objWriter->startElement('cfRule'); - $objWriter->writeAttribute('type', $conditional->getConditionType()); - $objWriter->writeAttribute('dxfId', $this->getParentWriter()->getStylesConditionalHashTable()->getIndexForHashCode($conditional->getHashCode())); - $objWriter->writeAttribute('priority', $id++); - - if (($conditional->getConditionType() == PHPExcel_Style_Conditional::CONDITION_CELLIS || $conditional->getConditionType() == PHPExcel_Style_Conditional::CONDITION_CONTAINSTEXT) - && $conditional->getOperatorType() != PHPExcel_Style_Conditional::OPERATOR_NONE) { - $objWriter->writeAttribute('operator', $conditional->getOperatorType()); - } - - if ($conditional->getConditionType() == PHPExcel_Style_Conditional::CONDITION_CONTAINSTEXT - && !is_null($conditional->getText())) { - $objWriter->writeAttribute('text', $conditional->getText()); - } - - if ($conditional->getConditionType() == PHPExcel_Style_Conditional::CONDITION_CONTAINSTEXT - && $conditional->getOperatorType() == PHPExcel_Style_Conditional::OPERATOR_CONTAINSTEXT - && !is_null($conditional->getText())) { - $objWriter->writeElement('formula', 'NOT(ISERROR(SEARCH("' . $conditional->getText() . '",' . $cellCoordinate . ')))'); - } elseif ($conditional->getConditionType() == PHPExcel_Style_Conditional::CONDITION_CONTAINSTEXT - && $conditional->getOperatorType() == PHPExcel_Style_Conditional::OPERATOR_BEGINSWITH - && !is_null($conditional->getText())) { - $objWriter->writeElement('formula', 'LEFT(' . $cellCoordinate . ',' . strlen($conditional->getText()) . ')="' . $conditional->getText() . '"'); - } elseif ($conditional->getConditionType() == PHPExcel_Style_Conditional::CONDITION_CONTAINSTEXT - && $conditional->getOperatorType() == PHPExcel_Style_Conditional::OPERATOR_ENDSWITH - && !is_null($conditional->getText())) { - $objWriter->writeElement('formula', 'RIGHT(' . $cellCoordinate . ',' . strlen($conditional->getText()) . ')="' . $conditional->getText() . '"'); - } elseif ($conditional->getConditionType() == PHPExcel_Style_Conditional::CONDITION_CONTAINSTEXT - && $conditional->getOperatorType() == PHPExcel_Style_Conditional::OPERATOR_NOTCONTAINS - && !is_null($conditional->getText())) { - $objWriter->writeElement('formula', 'ISERROR(SEARCH("' . $conditional->getText() . '",' . $cellCoordinate . '))'); - } elseif ($conditional->getConditionType() == PHPExcel_Style_Conditional::CONDITION_CELLIS - || $conditional->getConditionType() == PHPExcel_Style_Conditional::CONDITION_CONTAINSTEXT - || $conditional->getConditionType() == PHPExcel_Style_Conditional::CONDITION_EXPRESSION) { - foreach ($conditional->getConditions() as $formula) { - // Formula - $objWriter->writeElement('formula', $formula); - } - } - - $objWriter->endElement(); - - $objWriter->endElement(); - } - } - } - } - - /** - * Write DataValidations - * - * @param PHPExcel_Shared_XMLWriter $objWriter XML Writer - * @param PHPExcel_Worksheet $pSheet Worksheet - * @throws PHPExcel_Writer_Exception - */ - private function writeDataValidations(PHPExcel_Shared_XMLWriter $objWriter = null, PHPExcel_Worksheet $pSheet = null) - { - // Datavalidation collection - $dataValidationCollection = $pSheet->getDataValidationCollection(); - - // Write data validations? - if (!empty($dataValidationCollection)) { - $objWriter->startElement('dataValidations'); - $objWriter->writeAttribute('count', count($dataValidationCollection)); - - foreach ($dataValidationCollection as $coordinate => $dv) { - $objWriter->startElement('dataValidation'); - - if ($dv->getType() != '') { - $objWriter->writeAttribute('type', $dv->getType()); - } - - if ($dv->getErrorStyle() != '') { - $objWriter->writeAttribute('errorStyle', $dv->getErrorStyle()); - } - - if ($dv->getOperator() != '') { - $objWriter->writeAttribute('operator', $dv->getOperator()); - } - - $objWriter->writeAttribute('allowBlank', ($dv->getAllowBlank() ? '1' : '0')); - $objWriter->writeAttribute('showDropDown', (!$dv->getShowDropDown() ? '1' : '0')); - $objWriter->writeAttribute('showInputMessage', ($dv->getShowInputMessage() ? '1' : '0')); - $objWriter->writeAttribute('showErrorMessage', ($dv->getShowErrorMessage() ? '1' : '0')); - - if ($dv->getErrorTitle() !== '') { - $objWriter->writeAttribute('errorTitle', $dv->getErrorTitle()); - } - if ($dv->getError() !== '') { - $objWriter->writeAttribute('error', $dv->getError()); - } - if ($dv->getPromptTitle() !== '') { - $objWriter->writeAttribute('promptTitle', $dv->getPromptTitle()); - } - if ($dv->getPrompt() !== '') { - $objWriter->writeAttribute('prompt', $dv->getPrompt()); - } - - $objWriter->writeAttribute('sqref', $coordinate); - - if ($dv->getFormula1() !== '') { - $objWriter->writeElement('formula1', $dv->getFormula1()); - } - if ($dv->getFormula2() !== '') { - $objWriter->writeElement('formula2', $dv->getFormula2()); - } - - $objWriter->endElement(); - } - - $objWriter->endElement(); - } - } - - /** - * Write Hyperlinks - * - * @param PHPExcel_Shared_XMLWriter $objWriter XML Writer - * @param PHPExcel_Worksheet $pSheet Worksheet - * @throws PHPExcel_Writer_Exception - */ - private function writeHyperlinks(PHPExcel_Shared_XMLWriter $objWriter = null, PHPExcel_Worksheet $pSheet = null) - { - // Hyperlink collection - $hyperlinkCollection = $pSheet->getHyperlinkCollection(); - - // Relation ID - $relationId = 1; - - // Write hyperlinks? - if (!empty($hyperlinkCollection)) { - $objWriter->startElement('hyperlinks'); - - foreach ($hyperlinkCollection as $coordinate => $hyperlink) { - $objWriter->startElement('hyperlink'); - - $objWriter->writeAttribute('ref', $coordinate); - if (!$hyperlink->isInternal()) { - $objWriter->writeAttribute('r:id', 'rId_hyperlink_' . $relationId); - ++$relationId; - } else { - $objWriter->writeAttribute('location', str_replace('sheet://', '', $hyperlink->getUrl())); - } - - if ($hyperlink->getTooltip() != '') { - $objWriter->writeAttribute('tooltip', $hyperlink->getTooltip()); - } - - $objWriter->endElement(); - } - - $objWriter->endElement(); - } - } - - /** - * Write ProtectedRanges - * - * @param PHPExcel_Shared_XMLWriter $objWriter XML Writer - * @param PHPExcel_Worksheet $pSheet Worksheet - * @throws PHPExcel_Writer_Exception - */ - private function writeProtectedRanges(PHPExcel_Shared_XMLWriter $objWriter = null, PHPExcel_Worksheet $pSheet = null) - { - if (count($pSheet->getProtectedCells()) > 0) { - // protectedRanges - $objWriter->startElement('protectedRanges'); - - // Loop protectedRanges - foreach ($pSheet->getProtectedCells() as $protectedCell => $passwordHash) { - // protectedRange - $objWriter->startElement('protectedRange'); - $objWriter->writeAttribute('name', 'p' . md5($protectedCell)); - $objWriter->writeAttribute('sqref', $protectedCell); - if (!empty($passwordHash)) { - $objWriter->writeAttribute('password', $passwordHash); - } - $objWriter->endElement(); - } - - $objWriter->endElement(); - } - } - - /** - * Write MergeCells - * - * @param PHPExcel_Shared_XMLWriter $objWriter XML Writer - * @param PHPExcel_Worksheet $pSheet Worksheet - * @throws PHPExcel_Writer_Exception - */ - private function writeMergeCells(PHPExcel_Shared_XMLWriter $objWriter = null, PHPExcel_Worksheet $pSheet = null) - { - if (count($pSheet->getMergeCells()) > 0) { - // mergeCells - $objWriter->startElement('mergeCells'); - - // Loop mergeCells - foreach ($pSheet->getMergeCells() as $mergeCell) { - // mergeCell - $objWriter->startElement('mergeCell'); - $objWriter->writeAttribute('ref', $mergeCell); - $objWriter->endElement(); - } - - $objWriter->endElement(); - } - } - - /** - * Write PrintOptions - * - * @param PHPExcel_Shared_XMLWriter $objWriter XML Writer - * @param PHPExcel_Worksheet $pSheet Worksheet - * @throws PHPExcel_Writer_Exception - */ - private function writePrintOptions(PHPExcel_Shared_XMLWriter $objWriter = null, PHPExcel_Worksheet $pSheet = null) - { - // printOptions - $objWriter->startElement('printOptions'); - - $objWriter->writeAttribute('gridLines', ($pSheet->getPrintGridlines() ? 'true': 'false')); - $objWriter->writeAttribute('gridLinesSet', 'true'); - - if ($pSheet->getPageSetup()->getHorizontalCentered()) { - $objWriter->writeAttribute('horizontalCentered', 'true'); - } - - if ($pSheet->getPageSetup()->getVerticalCentered()) { - $objWriter->writeAttribute('verticalCentered', 'true'); - } - - $objWriter->endElement(); - } - - /** - * Write PageMargins - * - * @param PHPExcel_Shared_XMLWriter $objWriter XML Writer - * @param PHPExcel_Worksheet $pSheet Worksheet - * @throws PHPExcel_Writer_Exception - */ - private function writePageMargins(PHPExcel_Shared_XMLWriter $objWriter = null, PHPExcel_Worksheet $pSheet = null) - { - // pageMargins - $objWriter->startElement('pageMargins'); - $objWriter->writeAttribute('left', PHPExcel_Shared_String::FormatNumber($pSheet->getPageMargins()->getLeft())); - $objWriter->writeAttribute('right', PHPExcel_Shared_String::FormatNumber($pSheet->getPageMargins()->getRight())); - $objWriter->writeAttribute('top', PHPExcel_Shared_String::FormatNumber($pSheet->getPageMargins()->getTop())); - $objWriter->writeAttribute('bottom', PHPExcel_Shared_String::FormatNumber($pSheet->getPageMargins()->getBottom())); - $objWriter->writeAttribute('header', PHPExcel_Shared_String::FormatNumber($pSheet->getPageMargins()->getHeader())); - $objWriter->writeAttribute('footer', PHPExcel_Shared_String::FormatNumber($pSheet->getPageMargins()->getFooter())); - $objWriter->endElement(); - } - - /** - * Write AutoFilter - * - * @param PHPExcel_Shared_XMLWriter $objWriter XML Writer - * @param PHPExcel_Worksheet $pSheet Worksheet - * @throws PHPExcel_Writer_Exception - */ - private function writeAutoFilter(PHPExcel_Shared_XMLWriter $objWriter = null, PHPExcel_Worksheet $pSheet = null) - { - $autoFilterRange = $pSheet->getAutoFilter()->getRange(); - if (!empty($autoFilterRange)) { - // autoFilter - $objWriter->startElement('autoFilter'); - - // Strip any worksheet reference from the filter coordinates - $range = PHPExcel_Cell::splitRange($autoFilterRange); - $range = $range[0]; - // Strip any worksheet ref - if (strpos($range[0], '!') !== false) { - list($ws, $range[0]) = explode('!', $range[0]); - } - $range = implode(':', $range); - - $objWriter->writeAttribute('ref', str_replace('$', '', $range)); - - $columns = $pSheet->getAutoFilter()->getColumns(); - if (count($columns > 0)) { - foreach ($columns as $columnID => $column) { - $rules = $column->getRules(); - if (count($rules) > 0) { - $objWriter->startElement('filterColumn'); - $objWriter->writeAttribute('colId', $pSheet->getAutoFilter()->getColumnOffset($columnID)); - - $objWriter->startElement($column->getFilterType()); - if ($column->getJoin() == PHPExcel_Worksheet_AutoFilter_Column::AUTOFILTER_COLUMN_JOIN_AND) { - $objWriter->writeAttribute('and', 1); - } - - foreach ($rules as $rule) { - if (($column->getFilterType() === PHPExcel_Worksheet_AutoFilter_Column::AUTOFILTER_FILTERTYPE_FILTER) && - ($rule->getOperator() === PHPExcel_Worksheet_AutoFilter_Column_Rule::AUTOFILTER_COLUMN_RULE_EQUAL) && - ($rule->getValue() === '')) { - // Filter rule for Blanks - $objWriter->writeAttribute('blank', 1); - } elseif ($rule->getRuleType() === PHPExcel_Worksheet_AutoFilter_Column_Rule::AUTOFILTER_RULETYPE_DYNAMICFILTER) { - // Dynamic Filter Rule - $objWriter->writeAttribute('type', $rule->getGrouping()); - $val = $column->getAttribute('val'); - if ($val !== null) { - $objWriter->writeAttribute('val', $val); - } - $maxVal = $column->getAttribute('maxVal'); - if ($maxVal !== null) { - $objWriter->writeAttribute('maxVal', $maxVal); - } - } elseif ($rule->getRuleType() === PHPExcel_Worksheet_AutoFilter_Column_Rule::AUTOFILTER_RULETYPE_TOPTENFILTER) { - // Top 10 Filter Rule - $objWriter->writeAttribute('val', $rule->getValue()); - $objWriter->writeAttribute('percent', (($rule->getOperator() === PHPExcel_Worksheet_AutoFilter_Column_Rule::AUTOFILTER_COLUMN_RULE_TOPTEN_PERCENT) ? '1' : '0')); - $objWriter->writeAttribute('top', (($rule->getGrouping() === PHPExcel_Worksheet_AutoFilter_Column_Rule::AUTOFILTER_COLUMN_RULE_TOPTEN_TOP) ? '1': '0')); - } else { - // Filter, DateGroupItem or CustomFilter - $objWriter->startElement($rule->getRuleType()); - - if ($rule->getOperator() !== PHPExcel_Worksheet_AutoFilter_Column_Rule::AUTOFILTER_COLUMN_RULE_EQUAL) { - $objWriter->writeAttribute('operator', $rule->getOperator()); - } - if ($rule->getRuleType() === PHPExcel_Worksheet_AutoFilter_Column_Rule::AUTOFILTER_RULETYPE_DATEGROUP) { - // Date Group filters - foreach ($rule->getValue() as $key => $value) { - if ($value > '') { - $objWriter->writeAttribute($key, $value); - } - } - $objWriter->writeAttribute('dateTimeGrouping', $rule->getGrouping()); - } else { - $objWriter->writeAttribute('val', $rule->getValue()); - } - - $objWriter->endElement(); - } - } - - $objWriter->endElement(); - - $objWriter->endElement(); - } - } - } - $objWriter->endElement(); - } - } - - /** - * Write PageSetup - * - * @param PHPExcel_Shared_XMLWriter $objWriter XML Writer - * @param PHPExcel_Worksheet $pSheet Worksheet - * @throws PHPExcel_Writer_Exception - */ - private function writePageSetup(PHPExcel_Shared_XMLWriter $objWriter = null, PHPExcel_Worksheet $pSheet = null) - { - // pageSetup - $objWriter->startElement('pageSetup'); - $objWriter->writeAttribute('paperSize', $pSheet->getPageSetup()->getPaperSize()); - $objWriter->writeAttribute('orientation', $pSheet->getPageSetup()->getOrientation()); - - if (!is_null($pSheet->getPageSetup()->getScale())) { - $objWriter->writeAttribute('scale', $pSheet->getPageSetup()->getScale()); - } - if (!is_null($pSheet->getPageSetup()->getFitToHeight())) { - $objWriter->writeAttribute('fitToHeight', $pSheet->getPageSetup()->getFitToHeight()); - } else { - $objWriter->writeAttribute('fitToHeight', '0'); - } - if (!is_null($pSheet->getPageSetup()->getFitToWidth())) { - $objWriter->writeAttribute('fitToWidth', $pSheet->getPageSetup()->getFitToWidth()); - } else { - $objWriter->writeAttribute('fitToWidth', '0'); - } - if (!is_null($pSheet->getPageSetup()->getFirstPageNumber())) { - $objWriter->writeAttribute('firstPageNumber', $pSheet->getPageSetup()->getFirstPageNumber()); - $objWriter->writeAttribute('useFirstPageNumber', '1'); - } - - $objWriter->endElement(); - } - - /** - * Write Header / Footer - * - * @param PHPExcel_Shared_XMLWriter $objWriter XML Writer - * @param PHPExcel_Worksheet $pSheet Worksheet - * @throws PHPExcel_Writer_Exception - */ - private function writeHeaderFooter(PHPExcel_Shared_XMLWriter $objWriter = null, PHPExcel_Worksheet $pSheet = null) - { - // headerFooter - $objWriter->startElement('headerFooter'); - $objWriter->writeAttribute('differentOddEven', ($pSheet->getHeaderFooter()->getDifferentOddEven() ? 'true' : 'false')); - $objWriter->writeAttribute('differentFirst', ($pSheet->getHeaderFooter()->getDifferentFirst() ? 'true' : 'false')); - $objWriter->writeAttribute('scaleWithDoc', ($pSheet->getHeaderFooter()->getScaleWithDocument() ? 'true' : 'false')); - $objWriter->writeAttribute('alignWithMargins', ($pSheet->getHeaderFooter()->getAlignWithMargins() ? 'true' : 'false')); - - $objWriter->writeElement('oddHeader', $pSheet->getHeaderFooter()->getOddHeader()); - $objWriter->writeElement('oddFooter', $pSheet->getHeaderFooter()->getOddFooter()); - $objWriter->writeElement('evenHeader', $pSheet->getHeaderFooter()->getEvenHeader()); - $objWriter->writeElement('evenFooter', $pSheet->getHeaderFooter()->getEvenFooter()); - $objWriter->writeElement('firstHeader', $pSheet->getHeaderFooter()->getFirstHeader()); - $objWriter->writeElement('firstFooter', $pSheet->getHeaderFooter()->getFirstFooter()); - $objWriter->endElement(); - } - - /** - * Write Breaks - * - * @param PHPExcel_Shared_XMLWriter $objWriter XML Writer - * @param PHPExcel_Worksheet $pSheet Worksheet - * @throws PHPExcel_Writer_Exception - */ - private function writeBreaks(PHPExcel_Shared_XMLWriter $objWriter = null, PHPExcel_Worksheet $pSheet = null) - { - // Get row and column breaks - $aRowBreaks = array(); - $aColumnBreaks = array(); - foreach ($pSheet->getBreaks() as $cell => $breakType) { - if ($breakType == PHPExcel_Worksheet::BREAK_ROW) { - $aRowBreaks[] = $cell; - } elseif ($breakType == PHPExcel_Worksheet::BREAK_COLUMN) { - $aColumnBreaks[] = $cell; - } - } - - // rowBreaks - if (!empty($aRowBreaks)) { - $objWriter->startElement('rowBreaks'); - $objWriter->writeAttribute('count', count($aRowBreaks)); - $objWriter->writeAttribute('manualBreakCount', count($aRowBreaks)); - - foreach ($aRowBreaks as $cell) { - $coords = PHPExcel_Cell::coordinateFromString($cell); - - $objWriter->startElement('brk'); - $objWriter->writeAttribute('id', $coords[1]); - $objWriter->writeAttribute('man', '1'); - $objWriter->endElement(); - } - - $objWriter->endElement(); - } - - // Second, write column breaks - if (!empty($aColumnBreaks)) { - $objWriter->startElement('colBreaks'); - $objWriter->writeAttribute('count', count($aColumnBreaks)); - $objWriter->writeAttribute('manualBreakCount', count($aColumnBreaks)); - - foreach ($aColumnBreaks as $cell) { - $coords = PHPExcel_Cell::coordinateFromString($cell); - - $objWriter->startElement('brk'); - $objWriter->writeAttribute('id', PHPExcel_Cell::columnIndexFromString($coords[0]) - 1); - $objWriter->writeAttribute('man', '1'); - $objWriter->endElement(); - } - - $objWriter->endElement(); - } - } - - /** - * Write SheetData - * - * @param PHPExcel_Shared_XMLWriter $objWriter XML Writer - * @param PHPExcel_Worksheet $pSheet Worksheet - * @param string[] $pStringTable String table - * @throws PHPExcel_Writer_Exception - */ - private function writeSheetData(PHPExcel_Shared_XMLWriter $objWriter = null, PHPExcel_Worksheet $pSheet = null, $pStringTable = null) - { - if (is_array($pStringTable)) { - // Flipped stringtable, for faster index searching - $aFlippedStringTable = $this->getParentWriter()->getWriterPart('stringtable')->flipStringTable($pStringTable); - - // sheetData - $objWriter->startElement('sheetData'); - - // Get column count - $colCount = PHPExcel_Cell::columnIndexFromString($pSheet->getHighestColumn()); - - // Highest row number - $highestRow = $pSheet->getHighestRow(); - - // Loop through cells - $cellsByRow = array(); - foreach ($pSheet->getCellCollection() as $cellID) { - $cellAddress = PHPExcel_Cell::coordinateFromString($cellID); - $cellsByRow[$cellAddress[1]][] = $cellID; - } - - $currentRow = 0; - while ($currentRow++ < $highestRow) { - // Get row dimension - $rowDimension = $pSheet->getRowDimension($currentRow); - - // Write current row? - $writeCurrentRow = isset($cellsByRow[$currentRow]) || $rowDimension->getRowHeight() >= 0 || $rowDimension->getVisible() == false || $rowDimension->getCollapsed() == true || $rowDimension->getOutlineLevel() > 0 || $rowDimension->getXfIndex() !== null; - - if ($writeCurrentRow) { - // Start a new row - $objWriter->startElement('row'); - $objWriter->writeAttribute('r', $currentRow); - $objWriter->writeAttribute('spans', '1:' . $colCount); - - // Row dimensions - if ($rowDimension->getRowHeight() >= 0) { - $objWriter->writeAttribute('customHeight', '1'); - $objWriter->writeAttribute('ht', PHPExcel_Shared_String::FormatNumber($rowDimension->getRowHeight())); - } - - // Row visibility - if ($rowDimension->getVisible() == false) { - $objWriter->writeAttribute('hidden', 'true'); - } - - // Collapsed - if ($rowDimension->getCollapsed() == true) { - $objWriter->writeAttribute('collapsed', 'true'); - } - - // Outline level - if ($rowDimension->getOutlineLevel() > 0) { - $objWriter->writeAttribute('outlineLevel', $rowDimension->getOutlineLevel()); - } - - // Style - if ($rowDimension->getXfIndex() !== null) { - $objWriter->writeAttribute('s', $rowDimension->getXfIndex()); - $objWriter->writeAttribute('customFormat', '1'); - } - - // Write cells - if (isset($cellsByRow[$currentRow])) { - foreach ($cellsByRow[$currentRow] as $cellAddress) { - // Write cell - $this->writeCell($objWriter, $pSheet, $cellAddress, $pStringTable, $aFlippedStringTable); - } - } - - // End row - $objWriter->endElement(); - } - } - - $objWriter->endElement(); - } else { - throw new PHPExcel_Writer_Exception("Invalid parameters passed."); - } - } - - /** - * Write Cell - * - * @param PHPExcel_Shared_XMLWriter $objWriter XML Writer - * @param PHPExcel_Worksheet $pSheet Worksheet - * @param PHPExcel_Cell $pCellAddress Cell Address - * @param string[] $pStringTable String table - * @param string[] $pFlippedStringTable String table (flipped), for faster index searching - * @throws PHPExcel_Writer_Exception - */ - private function writeCell(PHPExcel_Shared_XMLWriter $objWriter = null, PHPExcel_Worksheet $pSheet = null, $pCellAddress = null, $pStringTable = null, $pFlippedStringTable = null) - { - if (is_array($pStringTable) && is_array($pFlippedStringTable)) { - // Cell - $pCell = $pSheet->getCell($pCellAddress); - $objWriter->startElement('c'); - $objWriter->writeAttribute('r', $pCellAddress); - - // Sheet styles - if ($pCell->getXfIndex() != '') { - $objWriter->writeAttribute('s', $pCell->getXfIndex()); - } - - // If cell value is supplied, write cell value - $cellValue = $pCell->getValue(); - if (is_object($cellValue) || $cellValue !== '') { - // Map type - $mappedType = $pCell->getDataType(); - - // Write data type depending on its type - switch (strtolower($mappedType)) { - case 'inlinestr': // Inline string - case 's': // String - case 'b': // Boolean - $objWriter->writeAttribute('t', $mappedType); - break; - case 'f': // Formula - $calculatedValue = ($this->getParentWriter()->getPreCalculateFormulas()) ? - $pCell->getCalculatedValue() : - $cellValue; - if (is_string($calculatedValue)) { - $objWriter->writeAttribute('t', 'str'); - } - break; - case 'e': // Error - $objWriter->writeAttribute('t', $mappedType); - } - - // Write data depending on its type - switch (strtolower($mappedType)) { - case 'inlinestr': // Inline string - if (! $cellValue instanceof PHPExcel_RichText) { - $objWriter->writeElement('t', PHPExcel_Shared_String::ControlCharacterPHP2OOXML(htmlspecialchars($cellValue))); - } elseif ($cellValue instanceof PHPExcel_RichText) { - $objWriter->startElement('is'); - $this->getParentWriter()->getWriterPart('stringtable')->writeRichText($objWriter, $cellValue); - $objWriter->endElement(); - } - - break; - case 's': // String - if (! $cellValue instanceof PHPExcel_RichText) { - if (isset($pFlippedStringTable[$cellValue])) { - $objWriter->writeElement('v', $pFlippedStringTable[$cellValue]); - } - } elseif ($cellValue instanceof PHPExcel_RichText) { - $objWriter->writeElement('v', $pFlippedStringTable[$cellValue->getHashCode()]); - } - - break; - case 'f': // Formula - $attributes = $pCell->getFormulaAttributes(); - if ($attributes['t'] == 'array') { - $objWriter->startElement('f'); - $objWriter->writeAttribute('t', 'array'); - $objWriter->writeAttribute('ref', $pCellAddress); - $objWriter->writeAttribute('aca', '1'); - $objWriter->writeAttribute('ca', '1'); - $objWriter->text(substr($cellValue, 1)); - $objWriter->endElement(); - } else { - $objWriter->writeElement('f', substr($cellValue, 1)); - } - if ($this->getParentWriter()->getOffice2003Compatibility() === false) { - if ($this->getParentWriter()->getPreCalculateFormulas()) { -// $calculatedValue = $pCell->getCalculatedValue(); - if (!is_array($calculatedValue) && substr($calculatedValue, 0, 1) != '#') { - $objWriter->writeElement('v', PHPExcel_Shared_String::FormatNumber($calculatedValue)); - } else { - $objWriter->writeElement('v', '0'); - } - } else { - $objWriter->writeElement('v', '0'); - } - } - break; - case 'n': // Numeric - // force point as decimal separator in case current locale uses comma - $objWriter->writeElement('v', str_replace(',', '.', $cellValue)); - break; - case 'b': // Boolean - $objWriter->writeElement('v', ($cellValue ? '1' : '0')); - break; - case 'e': // Error - if (substr($cellValue, 0, 1) == '=') { - $objWriter->writeElement('f', substr($cellValue, 1)); - $objWriter->writeElement('v', substr($cellValue, 1)); - } else { - $objWriter->writeElement('v', $cellValue); - } - - break; - } - } - - $objWriter->endElement(); - } else { - throw new PHPExcel_Writer_Exception("Invalid parameters passed."); - } - } - - /** - * Write Drawings - * - * @param PHPExcel_Shared_XMLWriter $objWriter XML Writer - * @param PHPExcel_Worksheet $pSheet Worksheet - * @param boolean $includeCharts Flag indicating if we should include drawing details for charts - * @throws PHPExcel_Writer_Exception - */ - private function writeDrawings(PHPExcel_Shared_XMLWriter $objWriter = null, PHPExcel_Worksheet $pSheet = null, $includeCharts = false) - { - $chartCount = ($includeCharts) ? $pSheet->getChartCollection()->count() : 0; - // If sheet contains drawings, add the relationships - if (($pSheet->getDrawingCollection()->count() > 0) || - ($chartCount > 0)) { - $objWriter->startElement('drawing'); - $objWriter->writeAttribute('r:id', 'rId1'); - $objWriter->endElement(); - } - } - - /** - * Write LegacyDrawing - * - * @param PHPExcel_Shared_XMLWriter $objWriter XML Writer - * @param PHPExcel_Worksheet $pSheet Worksheet - * @throws PHPExcel_Writer_Exception - */ - private function writeLegacyDrawing(PHPExcel_Shared_XMLWriter $objWriter = null, PHPExcel_Worksheet $pSheet = null) - { - // If sheet contains comments, add the relationships - if (count($pSheet->getComments()) > 0) { - $objWriter->startElement('legacyDrawing'); - $objWriter->writeAttribute('r:id', 'rId_comments_vml1'); - $objWriter->endElement(); - } - } - - /** - * Write LegacyDrawingHF - * - * @param PHPExcel_Shared_XMLWriter $objWriter XML Writer - * @param PHPExcel_Worksheet $pSheet Worksheet - * @throws PHPExcel_Writer_Exception - */ - private function writeLegacyDrawingHF(PHPExcel_Shared_XMLWriter $objWriter = null, PHPExcel_Worksheet $pSheet = null) - { - // If sheet contains images, add the relationships - if (count($pSheet->getHeaderFooter()->getImages()) > 0) { - $objWriter->startElement('legacyDrawingHF'); - $objWriter->writeAttribute('r:id', 'rId_headerfooter_vml1'); - $objWriter->endElement(); - } - } -} diff --git a/Utils/PHPExcel/Writer/Excel2007/WriterPart.php b/Utils/PHPExcel/Writer/Excel2007/WriterPart.php deleted file mode 100644 index 806ebe5..0000000 --- a/Utils/PHPExcel/Writer/Excel2007/WriterPart.php +++ /dev/null @@ -1,75 +0,0 @@ -<?php - -/** - * PHPExcel_Writer_Excel2007_WriterPart - * - * Copyright (c) 2006 - 2015 PHPExcel - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - * - * @category PHPExcel - * @package PHPExcel_Writer_Excel2007 - * @copyright Copyright (c) 2006 - 2015 PHPExcel (http://www.codeplex.com/PHPExcel) - * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL - * @version ##VERSION##, ##DATE## - */ -abstract class PHPExcel_Writer_Excel2007_WriterPart -{ - /** - * Parent IWriter object - * - * @var PHPExcel_Writer_IWriter - */ - private $parentWriter; - - /** - * Set parent IWriter object - * - * @param PHPExcel_Writer_IWriter $pWriter - * @throws PHPExcel_Writer_Exception - */ - public function setParentWriter(PHPExcel_Writer_IWriter $pWriter = null) - { - $this->parentWriter = $pWriter; - } - - /** - * Get parent IWriter object - * - * @return PHPExcel_Writer_IWriter - * @throws PHPExcel_Writer_Exception - */ - public function getParentWriter() - { - if (!is_null($this->parentWriter)) { - return $this->parentWriter; - } else { - throw new PHPExcel_Writer_Exception("No parent PHPExcel_Writer_IWriter assigned."); - } - } - - /** - * Set parent IWriter object - * - * @param PHPExcel_Writer_IWriter $pWriter - * @throws PHPExcel_Writer_Exception - */ - public function __construct(PHPExcel_Writer_IWriter $pWriter = null) - { - if (!is_null($pWriter)) { - $this->parentWriter = $pWriter; - } - } -} diff --git a/Utils/PHPExcel/Writer/Excel5.php b/Utils/PHPExcel/Writer/Excel5.php deleted file mode 100644 index 2dede81..0000000 --- a/Utils/PHPExcel/Writer/Excel5.php +++ /dev/null @@ -1,904 +0,0 @@ -<?php - -/** - * PHPExcel_Writer_Excel5 - * - * Copyright (c) 2006 - 2015 PHPExcel - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - * - * @category PHPExcel - * @package PHPExcel_Writer_Excel5 - * @copyright Copyright (c) 2006 - 2015 PHPExcel (http://www.codeplex.com/PHPExcel) - * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL - * @version ##VERSION##, ##DATE## - */ -class PHPExcel_Writer_Excel5 extends PHPExcel_Writer_Abstract implements PHPExcel_Writer_IWriter -{ - /** - * PHPExcel object - * - * @var PHPExcel - */ - private $phpExcel; - - /** - * Total number of shared strings in workbook - * - * @var int - */ - private $strTotal = 0; - - /** - * Number of unique shared strings in workbook - * - * @var int - */ - private $strUnique = 0; - - /** - * Array of unique shared strings in workbook - * - * @var array - */ - private $strTable = array(); - - /** - * Color cache. Mapping between RGB value and color index. - * - * @var array - */ - private $colors; - - /** - * Formula parser - * - * @var PHPExcel_Writer_Excel5_Parser - */ - private $parser; - - /** - * Identifier clusters for drawings. Used in MSODRAWINGGROUP record. - * - * @var array - */ - private $IDCLs; - - /** - * Basic OLE object summary information - * - * @var array - */ - private $summaryInformation; - - /** - * Extended OLE object document summary information - * - * @var array - */ - private $documentSummaryInformation; - - /** - * Create a new PHPExcel_Writer_Excel5 - * - * @param PHPExcel $phpExcel PHPExcel object - */ - public function __construct(PHPExcel $phpExcel) - { - $this->phpExcel = $phpExcel; - - $this->parser = new PHPExcel_Writer_Excel5_Parser(); - } - - /** - * Save PHPExcel to file - * - * @param string $pFilename - * @throws PHPExcel_Writer_Exception - */ - public function save($pFilename = null) - { - - // garbage collect - $this->phpExcel->garbageCollect(); - - $saveDebugLog = PHPExcel_Calculation::getInstance($this->phpExcel)->getDebugLog()->getWriteDebugLog(); - PHPExcel_Calculation::getInstance($this->phpExcel)->getDebugLog()->setWriteDebugLog(false); - $saveDateReturnType = PHPExcel_Calculation_Functions::getReturnDateType(); - PHPExcel_Calculation_Functions::setReturnDateType(PHPExcel_Calculation_Functions::RETURNDATE_EXCEL); - - // initialize colors array - $this->colors = array(); - - // Initialise workbook writer - $this->writerWorkbook = new PHPExcel_Writer_Excel5_Workbook($this->phpExcel, $this->strTotal, $this->strUnique, $this->strTable, $this->colors, $this->parser); - - // Initialise worksheet writers - $countSheets = $this->phpExcel->getSheetCount(); - for ($i = 0; $i < $countSheets; ++$i) { - $this->writerWorksheets[$i] = new PHPExcel_Writer_Excel5_Worksheet($this->strTotal, $this->strUnique, $this->strTable, $this->colors, $this->parser, $this->preCalculateFormulas, $this->phpExcel->getSheet($i)); - } - - // build Escher objects. Escher objects for workbooks needs to be build before Escher object for workbook. - $this->buildWorksheetEschers(); - $this->buildWorkbookEscher(); - - // add 15 identical cell style Xfs - // for now, we use the first cellXf instead of cellStyleXf - $cellXfCollection = $this->phpExcel->getCellXfCollection(); - for ($i = 0; $i < 15; ++$i) { - $this->writerWorkbook->addXfWriter($cellXfCollection[0], true); - } - - // add all the cell Xfs - foreach ($this->phpExcel->getCellXfCollection() as $style) { - $this->writerWorkbook->addXfWriter($style, false); - } - - // add fonts from rich text eleemnts - for ($i = 0; $i < $countSheets; ++$i) { - foreach ($this->writerWorksheets[$i]->phpSheet->getCellCollection() as $cellID) { - $cell = $this->writerWorksheets[$i]->phpSheet->getCell($cellID); - $cVal = $cell->getValue(); - if ($cVal instanceof PHPExcel_RichText) { - $elements = $cVal->getRichTextElements(); - foreach ($elements as $element) { - if ($element instanceof PHPExcel_RichText_Run) { - $font = $element->getFont(); - $this->writerWorksheets[$i]->fontHashIndex[$font->getHashCode()] = $this->writerWorkbook->addFont($font); - } - } - } - } - } - - // initialize OLE file - $workbookStreamName = 'Workbook'; - $OLE = new PHPExcel_Shared_OLE_PPS_File(PHPExcel_Shared_OLE::Asc2Ucs($workbookStreamName)); - - // Write the worksheet streams before the global workbook stream, - // because the byte sizes of these are needed in the global workbook stream - $worksheetSizes = array(); - for ($i = 0; $i < $countSheets; ++$i) { - $this->writerWorksheets[$i]->close(); - $worksheetSizes[] = $this->writerWorksheets[$i]->_datasize; - } - - // add binary data for global workbook stream - $OLE->append($this->writerWorkbook->writeWorkbook($worksheetSizes)); - - // add binary data for sheet streams - for ($i = 0; $i < $countSheets; ++$i) { - $OLE->append($this->writerWorksheets[$i]->getData()); - } - - $this->documentSummaryInformation = $this->writeDocumentSummaryInformation(); - // initialize OLE Document Summary Information - if (isset($this->documentSummaryInformation) && !empty($this->documentSummaryInformation)) { - $OLE_DocumentSummaryInformation = new PHPExcel_Shared_OLE_PPS_File(PHPExcel_Shared_OLE::Asc2Ucs(chr(5) . 'DocumentSummaryInformation')); - $OLE_DocumentSummaryInformation->append($this->documentSummaryInformation); - } - - $this->summaryInformation = $this->writeSummaryInformation(); - // initialize OLE Summary Information - if (isset($this->summaryInformation) && !empty($this->summaryInformation)) { - $OLE_SummaryInformation = new PHPExcel_Shared_OLE_PPS_File(PHPExcel_Shared_OLE::Asc2Ucs(chr(5) . 'SummaryInformation')); - $OLE_SummaryInformation->append($this->summaryInformation); - } - - // define OLE Parts - $arrRootData = array($OLE); - // initialize OLE Properties file - if (isset($OLE_SummaryInformation)) { - $arrRootData[] = $OLE_SummaryInformation; - } - // initialize OLE Extended Properties file - if (isset($OLE_DocumentSummaryInformation)) { - $arrRootData[] = $OLE_DocumentSummaryInformation; - } - - $root = new PHPExcel_Shared_OLE_PPS_Root(time(), time(), $arrRootData); - // save the OLE file - $res = $root->save($pFilename); - - PHPExcel_Calculation_Functions::setReturnDateType($saveDateReturnType); - PHPExcel_Calculation::getInstance($this->phpExcel)->getDebugLog()->setWriteDebugLog($saveDebugLog); - } - - /** - * Set temporary storage directory - * - * @deprecated - * @param string $pValue Temporary storage directory - * @throws PHPExcel_Writer_Exception when directory does not exist - * @return PHPExcel_Writer_Excel5 - */ - public function setTempDir($pValue = '') - { - return $this; - } - - /** - * Build the Worksheet Escher objects - * - */ - private function buildWorksheetEschers() - { - // 1-based index to BstoreContainer - $blipIndex = 0; - $lastReducedSpId = 0; - $lastSpId = 0; - - foreach ($this->phpExcel->getAllsheets() as $sheet) { - // sheet index - $sheetIndex = $sheet->getParent()->getIndex($sheet); - - $escher = null; - - // check if there are any shapes for this sheet - $filterRange = $sheet->getAutoFilter()->getRange(); - if (count($sheet->getDrawingCollection()) == 0 && empty($filterRange)) { - continue; - } - - // create intermediate Escher object - $escher = new PHPExcel_Shared_Escher(); - - // dgContainer - $dgContainer = new PHPExcel_Shared_Escher_DgContainer(); - - // set the drawing index (we use sheet index + 1) - $dgId = $sheet->getParent()->getIndex($sheet) + 1; - $dgContainer->setDgId($dgId); - $escher->setDgContainer($dgContainer); - - // spgrContainer - $spgrContainer = new PHPExcel_Shared_Escher_DgContainer_SpgrContainer(); - $dgContainer->setSpgrContainer($spgrContainer); - - // add one shape which is the group shape - $spContainer = new PHPExcel_Shared_Escher_DgContainer_SpgrContainer_SpContainer(); - $spContainer->setSpgr(true); - $spContainer->setSpType(0); - $spContainer->setSpId(($sheet->getParent()->getIndex($sheet) + 1) << 10); - $spgrContainer->addChild($spContainer); - - // add the shapes - - $countShapes[$sheetIndex] = 0; // count number of shapes (minus group shape), in sheet - - foreach ($sheet->getDrawingCollection() as $drawing) { - ++$blipIndex; - - ++$countShapes[$sheetIndex]; - - // add the shape - $spContainer = new PHPExcel_Shared_Escher_DgContainer_SpgrContainer_SpContainer(); - - // set the shape type - $spContainer->setSpType(0x004B); - // set the shape flag - $spContainer->setSpFlag(0x02); - - // set the shape index (we combine 1-based sheet index and $countShapes to create unique shape index) - $reducedSpId = $countShapes[$sheetIndex]; - $spId = $reducedSpId - | ($sheet->getParent()->getIndex($sheet) + 1) << 10; - $spContainer->setSpId($spId); - - // keep track of last reducedSpId - $lastReducedSpId = $reducedSpId; - - // keep track of last spId - $lastSpId = $spId; - - // set the BLIP index - $spContainer->setOPT(0x4104, $blipIndex); - - // set coordinates and offsets, client anchor - $coordinates = $drawing->getCoordinates(); - $offsetX = $drawing->getOffsetX(); - $offsetY = $drawing->getOffsetY(); - $width = $drawing->getWidth(); - $height = $drawing->getHeight(); - - $twoAnchor = PHPExcel_Shared_Excel5::oneAnchor2twoAnchor($sheet, $coordinates, $offsetX, $offsetY, $width, $height); - - $spContainer->setStartCoordinates($twoAnchor['startCoordinates']); - $spContainer->setStartOffsetX($twoAnchor['startOffsetX']); - $spContainer->setStartOffsetY($twoAnchor['startOffsetY']); - $spContainer->setEndCoordinates($twoAnchor['endCoordinates']); - $spContainer->setEndOffsetX($twoAnchor['endOffsetX']); - $spContainer->setEndOffsetY($twoAnchor['endOffsetY']); - - $spgrContainer->addChild($spContainer); - } - - // AutoFilters - if (!empty($filterRange)) { - $rangeBounds = PHPExcel_Cell::rangeBoundaries($filterRange); - $iNumColStart = $rangeBounds[0][0]; - $iNumColEnd = $rangeBounds[1][0]; - - $iInc = $iNumColStart; - while ($iInc <= $iNumColEnd) { - ++$countShapes[$sheetIndex]; - - // create an Drawing Object for the dropdown - $oDrawing = new PHPExcel_Worksheet_BaseDrawing(); - // get the coordinates of drawing - $cDrawing = PHPExcel_Cell::stringFromColumnIndex($iInc - 1) . $rangeBounds[0][1]; - $oDrawing->setCoordinates($cDrawing); - $oDrawing->setWorksheet($sheet); - - // add the shape - $spContainer = new PHPExcel_Shared_Escher_DgContainer_SpgrContainer_SpContainer(); - // set the shape type - $spContainer->setSpType(0x00C9); - // set the shape flag - $spContainer->setSpFlag(0x01); - - // set the shape index (we combine 1-based sheet index and $countShapes to create unique shape index) - $reducedSpId = $countShapes[$sheetIndex]; - $spId = $reducedSpId - | ($sheet->getParent()->getIndex($sheet) + 1) << 10; - $spContainer->setSpId($spId); - - // keep track of last reducedSpId - $lastReducedSpId = $reducedSpId; - - // keep track of last spId - $lastSpId = $spId; - - $spContainer->setOPT(0x007F, 0x01040104); // Protection -> fLockAgainstGrouping - $spContainer->setOPT(0x00BF, 0x00080008); // Text -> fFitTextToShape - $spContainer->setOPT(0x01BF, 0x00010000); // Fill Style -> fNoFillHitTest - $spContainer->setOPT(0x01FF, 0x00080000); // Line Style -> fNoLineDrawDash - $spContainer->setOPT(0x03BF, 0x000A0000); // Group Shape -> fPrint - - // set coordinates and offsets, client anchor - $endCoordinates = PHPExcel_Cell::stringFromColumnIndex(PHPExcel_Cell::stringFromColumnIndex($iInc - 1)); - $endCoordinates .= $rangeBounds[0][1] + 1; - - $spContainer->setStartCoordinates($cDrawing); - $spContainer->setStartOffsetX(0); - $spContainer->setStartOffsetY(0); - $spContainer->setEndCoordinates($endCoordinates); - $spContainer->setEndOffsetX(0); - $spContainer->setEndOffsetY(0); - - $spgrContainer->addChild($spContainer); - $iInc++; - } - } - - // identifier clusters, used for workbook Escher object - $this->IDCLs[$dgId] = $lastReducedSpId; - - // set last shape index - $dgContainer->setLastSpId($lastSpId); - - // set the Escher object - $this->writerWorksheets[$sheetIndex]->setEscher($escher); - } - } - - /** - * Build the Escher object corresponding to the MSODRAWINGGROUP record - */ - private function buildWorkbookEscher() - { - $escher = null; - - // any drawings in this workbook? - $found = false; - foreach ($this->phpExcel->getAllSheets() as $sheet) { - if (count($sheet->getDrawingCollection()) > 0) { - $found = true; - break; - } - } - - // nothing to do if there are no drawings - if (!$found) { - return; - } - - // if we reach here, then there are drawings in the workbook - $escher = new PHPExcel_Shared_Escher(); - - // dggContainer - $dggContainer = new PHPExcel_Shared_Escher_DggContainer(); - $escher->setDggContainer($dggContainer); - - // set IDCLs (identifier clusters) - $dggContainer->setIDCLs($this->IDCLs); - - // this loop is for determining maximum shape identifier of all drawing - $spIdMax = 0; - $totalCountShapes = 0; - $countDrawings = 0; - - foreach ($this->phpExcel->getAllsheets() as $sheet) { - $sheetCountShapes = 0; // count number of shapes (minus group shape), in sheet - - if (count($sheet->getDrawingCollection()) > 0) { - ++$countDrawings; - - foreach ($sheet->getDrawingCollection() as $drawing) { - ++$sheetCountShapes; - ++$totalCountShapes; - - $spId = $sheetCountShapes | ($this->phpExcel->getIndex($sheet) + 1) << 10; - $spIdMax = max($spId, $spIdMax); - } - } - } - - $dggContainer->setSpIdMax($spIdMax + 1); - $dggContainer->setCDgSaved($countDrawings); - $dggContainer->setCSpSaved($totalCountShapes + $countDrawings); // total number of shapes incl. one group shapes per drawing - - // bstoreContainer - $bstoreContainer = new PHPExcel_Shared_Escher_DggContainer_BstoreContainer(); - $dggContainer->setBstoreContainer($bstoreContainer); - - // the BSE's (all the images) - foreach ($this->phpExcel->getAllsheets() as $sheet) { - foreach ($sheet->getDrawingCollection() as $drawing) { - if ($drawing instanceof PHPExcel_Worksheet_Drawing) { - $filename = $drawing->getPath(); - - list($imagesx, $imagesy, $imageFormat) = getimagesize($filename); - - switch ($imageFormat) { - case 1: // GIF, not supported by BIFF8, we convert to PNG - $blipType = PHPExcel_Shared_Escher_DggContainer_BstoreContainer_BSE::BLIPTYPE_PNG; - ob_start(); - imagepng(imagecreatefromgif($filename)); - $blipData = ob_get_contents(); - ob_end_clean(); - break; - case 2: // JPEG - $blipType = PHPExcel_Shared_Escher_DggContainer_BstoreContainer_BSE::BLIPTYPE_JPEG; - $blipData = file_get_contents($filename); - break; - case 3: // PNG - $blipType = PHPExcel_Shared_Escher_DggContainer_BstoreContainer_BSE::BLIPTYPE_PNG; - $blipData = file_get_contents($filename); - break; - case 6: // Windows DIB (BMP), we convert to PNG - $blipType = PHPExcel_Shared_Escher_DggContainer_BstoreContainer_BSE::BLIPTYPE_PNG; - ob_start(); - imagepng(PHPExcel_Shared_Drawing::imagecreatefrombmp($filename)); - $blipData = ob_get_contents(); - ob_end_clean(); - break; - default: - continue 2; - } - - $blip = new PHPExcel_Shared_Escher_DggContainer_BstoreContainer_BSE_Blip(); - $blip->setData($blipData); - - $BSE = new PHPExcel_Shared_Escher_DggContainer_BstoreContainer_BSE(); - $BSE->setBlipType($blipType); - $BSE->setBlip($blip); - - $bstoreContainer->addBSE($BSE); - } elseif ($drawing instanceof PHPExcel_Worksheet_MemoryDrawing) { - switch ($drawing->getRenderingFunction()) { - case PHPExcel_Worksheet_MemoryDrawing::RENDERING_JPEG: - $blipType = PHPExcel_Shared_Escher_DggContainer_BstoreContainer_BSE::BLIPTYPE_JPEG; - $renderingFunction = 'imagejpeg'; - break; - case PHPExcel_Worksheet_MemoryDrawing::RENDERING_GIF: - case PHPExcel_Worksheet_MemoryDrawing::RENDERING_PNG: - case PHPExcel_Worksheet_MemoryDrawing::RENDERING_DEFAULT: - $blipType = PHPExcel_Shared_Escher_DggContainer_BstoreContainer_BSE::BLIPTYPE_PNG; - $renderingFunction = 'imagepng'; - break; - } - - ob_start(); - call_user_func($renderingFunction, $drawing->getImageResource()); - $blipData = ob_get_contents(); - ob_end_clean(); - - $blip = new PHPExcel_Shared_Escher_DggContainer_BstoreContainer_BSE_Blip(); - $blip->setData($blipData); - - $BSE = new PHPExcel_Shared_Escher_DggContainer_BstoreContainer_BSE(); - $BSE->setBlipType($blipType); - $BSE->setBlip($blip); - - $bstoreContainer->addBSE($BSE); - } - } - } - - // Set the Escher object - $this->writerWorkbook->setEscher($escher); - } - - /** - * Build the OLE Part for DocumentSummary Information - * @return string - */ - private function writeDocumentSummaryInformation() - { - // offset: 0; size: 2; must be 0xFE 0xFF (UTF-16 LE byte order mark) - $data = pack('v', 0xFFFE); - // offset: 2; size: 2; - $data .= pack('v', 0x0000); - // offset: 4; size: 2; OS version - $data .= pack('v', 0x0106); - // offset: 6; size: 2; OS indicator - $data .= pack('v', 0x0002); - // offset: 8; size: 16 - $data .= pack('VVVV', 0x00, 0x00, 0x00, 0x00); - // offset: 24; size: 4; section count - $data .= pack('V', 0x0001); - - // offset: 28; size: 16; first section's class id: 02 d5 cd d5 9c 2e 1b 10 93 97 08 00 2b 2c f9 ae - $data .= pack('vvvvvvvv', 0xD502, 0xD5CD, 0x2E9C, 0x101B, 0x9793, 0x0008, 0x2C2B, 0xAEF9); - // offset: 44; size: 4; offset of the start - $data .= pack('V', 0x30); - - // SECTION - $dataSection = array(); - $dataSection_NumProps = 0; - $dataSection_Summary = ''; - $dataSection_Content = ''; - - // GKPIDDSI_CODEPAGE: CodePage - $dataSection[] = array('summary'=> array('pack' => 'V', 'data' => 0x01), - 'offset' => array('pack' => 'V'), - 'type' => array('pack' => 'V', 'data' => 0x02), // 2 byte signed integer - 'data' => array('data' => 1252)); - $dataSection_NumProps++; - - // GKPIDDSI_CATEGORY : Category - if ($this->phpExcel->getProperties()->getCategory()) { - $dataProp = $this->phpExcel->getProperties()->getCategory(); - $dataSection[] = array('summary'=> array('pack' => 'V', 'data' => 0x02), - 'offset' => array('pack' => 'V'), - 'type' => array('pack' => 'V', 'data' => 0x1E), - 'data' => array('data' => $dataProp, 'length' => strlen($dataProp))); - $dataSection_NumProps++; - } - // GKPIDDSI_VERSION :Version of the application that wrote the property storage - $dataSection[] = array('summary'=> array('pack' => 'V', 'data' => 0x17), - 'offset' => array('pack' => 'V'), - 'type' => array('pack' => 'V', 'data' => 0x03), - 'data' => array('pack' => 'V', 'data' => 0x000C0000)); - $dataSection_NumProps++; - // GKPIDDSI_SCALE : FALSE - $dataSection[] = array('summary'=> array('pack' => 'V', 'data' => 0x0B), - 'offset' => array('pack' => 'V'), - 'type' => array('pack' => 'V', 'data' => 0x0B), - 'data' => array('data' => false)); - $dataSection_NumProps++; - // GKPIDDSI_LINKSDIRTY : True if any of the values for the linked properties have changed outside of the application - $dataSection[] = array('summary'=> array('pack' => 'V', 'data' => 0x10), - 'offset' => array('pack' => 'V'), - 'type' => array('pack' => 'V', 'data' => 0x0B), - 'data' => array('data' => false)); - $dataSection_NumProps++; - // GKPIDDSI_SHAREDOC : FALSE - $dataSection[] = array('summary'=> array('pack' => 'V', 'data' => 0x13), - 'offset' => array('pack' => 'V'), - 'type' => array('pack' => 'V', 'data' => 0x0B), - 'data' => array('data' => false)); - $dataSection_NumProps++; - // GKPIDDSI_HYPERLINKSCHANGED : True if any of the values for the _PID_LINKS (hyperlink text) have changed outside of the application - $dataSection[] = array('summary'=> array('pack' => 'V', 'data' => 0x16), - 'offset' => array('pack' => 'V'), - 'type' => array('pack' => 'V', 'data' => 0x0B), - 'data' => array('data' => false)); - $dataSection_NumProps++; - - // GKPIDDSI_DOCSPARTS - // MS-OSHARED p75 (2.3.3.2.2.1) - // Structure is VtVecUnalignedLpstrValue (2.3.3.1.9) - // cElements - $dataProp = pack('v', 0x0001); - $dataProp .= pack('v', 0x0000); - // array of UnalignedLpstr - // cch - $dataProp .= pack('v', 0x000A); - $dataProp .= pack('v', 0x0000); - // value - $dataProp .= 'Worksheet'.chr(0); - - $dataSection[] = array('summary'=> array('pack' => 'V', 'data' => 0x0D), - 'offset' => array('pack' => 'V'), - 'type' => array('pack' => 'V', 'data' => 0x101E), - 'data' => array('data' => $dataProp, 'length' => strlen($dataProp))); - $dataSection_NumProps++; - - // GKPIDDSI_HEADINGPAIR - // VtVecHeadingPairValue - // cElements - $dataProp = pack('v', 0x0002); - $dataProp .= pack('v', 0x0000); - // Array of vtHeadingPair - // vtUnalignedString - headingString - // stringType - $dataProp .= pack('v', 0x001E); - // padding - $dataProp .= pack('v', 0x0000); - // UnalignedLpstr - // cch - $dataProp .= pack('v', 0x0013); - $dataProp .= pack('v', 0x0000); - // value - $dataProp .= 'Feuilles de calcul'; - // vtUnalignedString - headingParts - // wType : 0x0003 = 32 bit signed integer - $dataProp .= pack('v', 0x0300); - // padding - $dataProp .= pack('v', 0x0000); - // value - $dataProp .= pack('v', 0x0100); - $dataProp .= pack('v', 0x0000); - $dataProp .= pack('v', 0x0000); - $dataProp .= pack('v', 0x0000); - - $dataSection[] = array('summary'=> array('pack' => 'V', 'data' => 0x0C), - 'offset' => array('pack' => 'V'), - 'type' => array('pack' => 'V', 'data' => 0x100C), - 'data' => array('data' => $dataProp, 'length' => strlen($dataProp))); - $dataSection_NumProps++; - - // 4 Section Length - // 4 Property count - // 8 * $dataSection_NumProps (8 = ID (4) + OffSet(4)) - $dataSection_Content_Offset = 8 + $dataSection_NumProps * 8; - foreach ($dataSection as $dataProp) { - // Summary - $dataSection_Summary .= pack($dataProp['summary']['pack'], $dataProp['summary']['data']); - // Offset - $dataSection_Summary .= pack($dataProp['offset']['pack'], $dataSection_Content_Offset); - // DataType - $dataSection_Content .= pack($dataProp['type']['pack'], $dataProp['type']['data']); - // Data - if ($dataProp['type']['data'] == 0x02) { // 2 byte signed integer - $dataSection_Content .= pack('V', $dataProp['data']['data']); - - $dataSection_Content_Offset += 4 + 4; - } elseif ($dataProp['type']['data'] == 0x03) { // 4 byte signed integer - $dataSection_Content .= pack('V', $dataProp['data']['data']); - - $dataSection_Content_Offset += 4 + 4; - } elseif ($dataProp['type']['data'] == 0x0B) { // Boolean - if ($dataProp['data']['data'] == false) { - $dataSection_Content .= pack('V', 0x0000); - } else { - $dataSection_Content .= pack('V', 0x0001); - } - $dataSection_Content_Offset += 4 + 4; - } elseif ($dataProp['type']['data'] == 0x1E) { // null-terminated string prepended by dword string length - // Null-terminated string - $dataProp['data']['data'] .= chr(0); - $dataProp['data']['length'] += 1; - // Complete the string with null string for being a %4 - $dataProp['data']['length'] = $dataProp['data']['length'] + ((4 - $dataProp['data']['length'] % 4)==4 ? 0 : (4 - $dataProp['data']['length'] % 4)); - $dataProp['data']['data'] = str_pad($dataProp['data']['data'], $dataProp['data']['length'], chr(0), STR_PAD_RIGHT); - - $dataSection_Content .= pack('V', $dataProp['data']['length']); - $dataSection_Content .= $dataProp['data']['data']; - - $dataSection_Content_Offset += 4 + 4 + strlen($dataProp['data']['data']); - } elseif ($dataProp['type']['data'] == 0x40) { // Filetime (64-bit value representing the number of 100-nanosecond intervals since January 1, 1601) - $dataSection_Content .= $dataProp['data']['data']; - - $dataSection_Content_Offset += 4 + 8; - } else { - // Data Type Not Used at the moment - $dataSection_Content .= $dataProp['data']['data']; - - $dataSection_Content_Offset += 4 + $dataProp['data']['length']; - } - } - // Now $dataSection_Content_Offset contains the size of the content - - // section header - // offset: $secOffset; size: 4; section length - // + x Size of the content (summary + content) - $data .= pack('V', $dataSection_Content_Offset); - // offset: $secOffset+4; size: 4; property count - $data .= pack('V', $dataSection_NumProps); - // Section Summary - $data .= $dataSection_Summary; - // Section Content - $data .= $dataSection_Content; - - return $data; - } - - /** - * Build the OLE Part for Summary Information - * @return string - */ - private function writeSummaryInformation() - { - // offset: 0; size: 2; must be 0xFE 0xFF (UTF-16 LE byte order mark) - $data = pack('v', 0xFFFE); - // offset: 2; size: 2; - $data .= pack('v', 0x0000); - // offset: 4; size: 2; OS version - $data .= pack('v', 0x0106); - // offset: 6; size: 2; OS indicator - $data .= pack('v', 0x0002); - // offset: 8; size: 16 - $data .= pack('VVVV', 0x00, 0x00, 0x00, 0x00); - // offset: 24; size: 4; section count - $data .= pack('V', 0x0001); - - // offset: 28; size: 16; first section's class id: e0 85 9f f2 f9 4f 68 10 ab 91 08 00 2b 27 b3 d9 - $data .= pack('vvvvvvvv', 0x85E0, 0xF29F, 0x4FF9, 0x1068, 0x91AB, 0x0008, 0x272B, 0xD9B3); - // offset: 44; size: 4; offset of the start - $data .= pack('V', 0x30); - - // SECTION - $dataSection = array(); - $dataSection_NumProps = 0; - $dataSection_Summary = ''; - $dataSection_Content = ''; - - // CodePage : CP-1252 - $dataSection[] = array('summary'=> array('pack' => 'V', 'data' => 0x01), - 'offset' => array('pack' => 'V'), - 'type' => array('pack' => 'V', 'data' => 0x02), // 2 byte signed integer - 'data' => array('data' => 1252)); - $dataSection_NumProps++; - - // Title - if ($this->phpExcel->getProperties()->getTitle()) { - $dataProp = $this->phpExcel->getProperties()->getTitle(); - $dataSection[] = array('summary'=> array('pack' => 'V', 'data' => 0x02), - 'offset' => array('pack' => 'V'), - 'type' => array('pack' => 'V', 'data' => 0x1E), // null-terminated string prepended by dword string length - 'data' => array('data' => $dataProp, 'length' => strlen($dataProp))); - $dataSection_NumProps++; - } - // Subject - if ($this->phpExcel->getProperties()->getSubject()) { - $dataProp = $this->phpExcel->getProperties()->getSubject(); - $dataSection[] = array('summary'=> array('pack' => 'V', 'data' => 0x03), - 'offset' => array('pack' => 'V'), - 'type' => array('pack' => 'V', 'data' => 0x1E), // null-terminated string prepended by dword string length - 'data' => array('data' => $dataProp, 'length' => strlen($dataProp))); - $dataSection_NumProps++; - } - // Author (Creator) - if ($this->phpExcel->getProperties()->getCreator()) { - $dataProp = $this->phpExcel->getProperties()->getCreator(); - $dataSection[] = array('summary'=> array('pack' => 'V', 'data' => 0x04), - 'offset' => array('pack' => 'V'), - 'type' => array('pack' => 'V', 'data' => 0x1E), // null-terminated string prepended by dword string length - 'data' => array('data' => $dataProp, 'length' => strlen($dataProp))); - $dataSection_NumProps++; - } - // Keywords - if ($this->phpExcel->getProperties()->getKeywords()) { - $dataProp = $this->phpExcel->getProperties()->getKeywords(); - $dataSection[] = array('summary'=> array('pack' => 'V', 'data' => 0x05), - 'offset' => array('pack' => 'V'), - 'type' => array('pack' => 'V', 'data' => 0x1E), // null-terminated string prepended by dword string length - 'data' => array('data' => $dataProp, 'length' => strlen($dataProp))); - $dataSection_NumProps++; - } - // Comments (Description) - if ($this->phpExcel->getProperties()->getDescription()) { - $dataProp = $this->phpExcel->getProperties()->getDescription(); - $dataSection[] = array('summary'=> array('pack' => 'V', 'data' => 0x06), - 'offset' => array('pack' => 'V'), - 'type' => array('pack' => 'V', 'data' => 0x1E), // null-terminated string prepended by dword string length - 'data' => array('data' => $dataProp, 'length' => strlen($dataProp))); - $dataSection_NumProps++; - } - // Last Saved By (LastModifiedBy) - if ($this->phpExcel->getProperties()->getLastModifiedBy()) { - $dataProp = $this->phpExcel->getProperties()->getLastModifiedBy(); - $dataSection[] = array('summary'=> array('pack' => 'V', 'data' => 0x08), - 'offset' => array('pack' => 'V'), - 'type' => array('pack' => 'V', 'data' => 0x1E), // null-terminated string prepended by dword string length - 'data' => array('data' => $dataProp, 'length' => strlen($dataProp))); - $dataSection_NumProps++; - } - // Created Date/Time - if ($this->phpExcel->getProperties()->getCreated()) { - $dataProp = $this->phpExcel->getProperties()->getCreated(); - $dataSection[] = array('summary'=> array('pack' => 'V', 'data' => 0x0C), - 'offset' => array('pack' => 'V'), - 'type' => array('pack' => 'V', 'data' => 0x40), // Filetime (64-bit value representing the number of 100-nanosecond intervals since January 1, 1601) - 'data' => array('data' => PHPExcel_Shared_OLE::LocalDate2OLE($dataProp))); - $dataSection_NumProps++; - } - // Modified Date/Time - if ($this->phpExcel->getProperties()->getModified()) { - $dataProp = $this->phpExcel->getProperties()->getModified(); - $dataSection[] = array('summary'=> array('pack' => 'V', 'data' => 0x0D), - 'offset' => array('pack' => 'V'), - 'type' => array('pack' => 'V', 'data' => 0x40), // Filetime (64-bit value representing the number of 100-nanosecond intervals since January 1, 1601) - 'data' => array('data' => PHPExcel_Shared_OLE::LocalDate2OLE($dataProp))); - $dataSection_NumProps++; - } - // Security - $dataSection[] = array('summary'=> array('pack' => 'V', 'data' => 0x13), - 'offset' => array('pack' => 'V'), - 'type' => array('pack' => 'V', 'data' => 0x03), // 4 byte signed integer - 'data' => array('data' => 0x00)); - $dataSection_NumProps++; - - - // 4 Section Length - // 4 Property count - // 8 * $dataSection_NumProps (8 = ID (4) + OffSet(4)) - $dataSection_Content_Offset = 8 + $dataSection_NumProps * 8; - foreach ($dataSection as $dataProp) { - // Summary - $dataSection_Summary .= pack($dataProp['summary']['pack'], $dataProp['summary']['data']); - // Offset - $dataSection_Summary .= pack($dataProp['offset']['pack'], $dataSection_Content_Offset); - // DataType - $dataSection_Content .= pack($dataProp['type']['pack'], $dataProp['type']['data']); - // Data - if ($dataProp['type']['data'] == 0x02) { // 2 byte signed integer - $dataSection_Content .= pack('V', $dataProp['data']['data']); - - $dataSection_Content_Offset += 4 + 4; - } elseif ($dataProp['type']['data'] == 0x03) { // 4 byte signed integer - $dataSection_Content .= pack('V', $dataProp['data']['data']); - - $dataSection_Content_Offset += 4 + 4; - } elseif ($dataProp['type']['data'] == 0x1E) { // null-terminated string prepended by dword string length - // Null-terminated string - $dataProp['data']['data'] .= chr(0); - $dataProp['data']['length'] += 1; - // Complete the string with null string for being a %4 - $dataProp['data']['length'] = $dataProp['data']['length'] + ((4 - $dataProp['data']['length'] % 4)==4 ? 0 : (4 - $dataProp['data']['length'] % 4)); - $dataProp['data']['data'] = str_pad($dataProp['data']['data'], $dataProp['data']['length'], chr(0), STR_PAD_RIGHT); - - $dataSection_Content .= pack('V', $dataProp['data']['length']); - $dataSection_Content .= $dataProp['data']['data']; - - $dataSection_Content_Offset += 4 + 4 + strlen($dataProp['data']['data']); - } elseif ($dataProp['type']['data'] == 0x40) { // Filetime (64-bit value representing the number of 100-nanosecond intervals since January 1, 1601) - $dataSection_Content .= $dataProp['data']['data']; - - $dataSection_Content_Offset += 4 + 8; - } else { - // Data Type Not Used at the moment - } - } - // Now $dataSection_Content_Offset contains the size of the content - - // section header - // offset: $secOffset; size: 4; section length - // + x Size of the content (summary + content) - $data .= pack('V', $dataSection_Content_Offset); - // offset: $secOffset+4; size: 4; property count - $data .= pack('V', $dataSection_NumProps); - // Section Summary - $data .= $dataSection_Summary; - // Section Content - $data .= $dataSection_Content; - - return $data; - } -} diff --git a/Utils/PHPExcel/Writer/Excel5/BIFFwriter.php b/Utils/PHPExcel/Writer/Excel5/BIFFwriter.php deleted file mode 100644 index a795752..0000000 --- a/Utils/PHPExcel/Writer/Excel5/BIFFwriter.php +++ /dev/null @@ -1,246 +0,0 @@ -<?php - -/** - * PHPExcel_Writer_Excel5_BIFFwriter - * - * Copyright (c) 2006 - 2015 PHPExcel - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - * - * @category PHPExcel - * @package PHPExcel_Writer_Excel5 - * @copyright Copyright (c) 2006 - 2015 PHPExcel (http://www.codeplex.com/PHPExcel) - * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL - * @version ##VERSION##, ##DATE## - */ - -// Original file header of PEAR::Spreadsheet_Excel_Writer_BIFFwriter (used as the base for this class): -// ----------------------------------------------------------------------------------------- -// * Module written/ported by Xavier Noguer <xnoguer@rezebra.com> -// * -// * The majority of this is _NOT_ my code. I simply ported it from the -// * PERL Spreadsheet::WriteExcel module. -// * -// * The author of the Spreadsheet::WriteExcel module is John McNamara -// * <jmcnamara@cpan.org> -// * -// * I _DO_ maintain this code, and John McNamara has nothing to do with the -// * porting of this code to PHP. Any questions directly related to this -// * class library should be directed to me. -// * -// * License Information: -// * -// * Spreadsheet_Excel_Writer: A library for generating Excel Spreadsheets -// * Copyright (c) 2002-2003 Xavier Noguer xnoguer@rezebra.com -// * -// * This library is free software; you can redistribute it and/or -// * modify it under the terms of the GNU Lesser General Public -// * License as published by the Free Software Foundation; either -// * version 2.1 of the License, or (at your option) any later version. -// * -// * This library is distributed in the hope that it will be useful, -// * but WITHOUT ANY WARRANTY; without even the implied warranty of -// * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// * Lesser General Public License for more details. -// * -// * You should have received a copy of the GNU Lesser General Public -// * License along with this library; if not, write to the Free Software -// * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -// */ -class PHPExcel_Writer_Excel5_BIFFwriter -{ - /** - * The byte order of this architecture. 0 => little endian, 1 => big endian - * @var integer - */ - private static $byteOrder; - - /** - * The string containing the data of the BIFF stream - * @var string - */ - public $_data; - - /** - * The size of the data in bytes. Should be the same as strlen($this->_data) - * @var integer - */ - public $_datasize; - - /** - * The maximum length for a BIFF record (excluding record header and length field). See addContinue() - * @var integer - * @see addContinue() - */ - private $limit = 8224; - - /** - * Constructor - */ - public function __construct() - { - $this->_data = ''; - $this->_datasize = 0; -// $this->limit = 8224; - } - - /** - * Determine the byte order and store it as class data to avoid - * recalculating it for each call to new(). - * - * @return int - */ - public static function getByteOrder() - { - if (!isset(self::$byteOrder)) { - // Check if "pack" gives the required IEEE 64bit float - $teststr = pack("d", 1.2345); - $number = pack("C8", 0x8D, 0x97, 0x6E, 0x12, 0x83, 0xC0, 0xF3, 0x3F); - if ($number == $teststr) { - $byte_order = 0; // Little Endian - } elseif ($number == strrev($teststr)) { - $byte_order = 1; // Big Endian - } else { - // Give up. I'll fix this in a later version. - throw new PHPExcel_Writer_Exception("Required floating point format not supported on this platform."); - } - self::$byteOrder = $byte_order; - } - - return self::$byteOrder; - } - - /** - * General storage function - * - * @param string $data binary data to append - * @access private - */ - protected function append($data) - { - if (strlen($data) - 4 > $this->limit) { - $data = $this->addContinue($data); - } - $this->_data .= $data; - $this->_datasize += strlen($data); - } - - /** - * General storage function like append, but returns string instead of modifying $this->_data - * - * @param string $data binary data to write - * @return string - */ - public function writeData($data) - { - if (strlen($data) - 4 > $this->limit) { - $data = $this->addContinue($data); - } - $this->_datasize += strlen($data); - - return $data; - } - - /** - * Writes Excel BOF record to indicate the beginning of a stream or - * sub-stream in the BIFF file. - * - * @param integer $type Type of BIFF file to write: 0x0005 Workbook, - * 0x0010 Worksheet. - * @access private - */ - protected function storeBof($type) - { - $record = 0x0809; // Record identifier (BIFF5-BIFF8) - $length = 0x0010; - - // by inspection of real files, MS Office Excel 2007 writes the following - $unknown = pack("VV", 0x000100D1, 0x00000406); - - $build = 0x0DBB; // Excel 97 - $year = 0x07CC; // Excel 97 - - $version = 0x0600; // BIFF8 - - $header = pack("vv", $record, $length); - $data = pack("vvvv", $version, $type, $build, $year); - $this->append($header . $data . $unknown); - } - - /** - * Writes Excel EOF record to indicate the end of a BIFF stream. - * - * @access private - */ - protected function storeEof() - { - $record = 0x000A; // Record identifier - $length = 0x0000; // Number of bytes to follow - - $header = pack("vv", $record, $length); - $this->append($header); - } - - /** - * Writes Excel EOF record to indicate the end of a BIFF stream. - * - * @access private - */ - public function writeEof() - { - $record = 0x000A; // Record identifier - $length = 0x0000; // Number of bytes to follow - $header = pack("vv", $record, $length); - return $this->writeData($header); - } - - /** - * Excel limits the size of BIFF records. In Excel 5 the limit is 2084 bytes. In - * Excel 97 the limit is 8228 bytes. Records that are longer than these limits - * must be split up into CONTINUE blocks. - * - * This function takes a long BIFF record and inserts CONTINUE records as - * necessary. - * - * @param string $data The original binary data to be written - * @return string A very convenient string of continue blocks - * @access private - */ - private function addContinue($data) - { - $limit = $this->limit; - $record = 0x003C; // Record identifier - - // The first 2080/8224 bytes remain intact. However, we have to change - // the length field of the record. - $tmp = substr($data, 0, 2) . pack("v", $limit) . substr($data, 4, $limit); - - $header = pack("vv", $record, $limit); // Headers for continue records - - // Retrieve chunks of 2080/8224 bytes +4 for the header. - $data_length = strlen($data); - for ($i = $limit + 4; $i < ($data_length - $limit); $i += $limit) { - $tmp .= $header; - $tmp .= substr($data, $i, $limit); - } - - // Retrieve the last chunk of data - $header = pack("vv", $record, strlen($data) - $i); - $tmp .= $header; - $tmp .= substr($data, $i, strlen($data) - $i); - - return $tmp; - } -} diff --git a/Utils/PHPExcel/Writer/Excel5/Escher.php b/Utils/PHPExcel/Writer/Excel5/Escher.php deleted file mode 100644 index c37fda9..0000000 --- a/Utils/PHPExcel/Writer/Excel5/Escher.php +++ /dev/null @@ -1,523 +0,0 @@ -<?php -/** - * PHPExcel - * - * Copyright (c) 2006 - 2015 PHPExcel - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - * - * @category PHPExcel - * @package PHPExcel_Writer_Excel5 - * @copyright Copyright (c) 2006 - 2015 PHPExcel (http://www.codeplex.com/PHPExcel) - * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL - * @version ##VERSION##, ##DATE## - */ - - -/** - * PHPExcel_Shared_Escher_DggContainer_BstoreContainer - * - * @category PHPExcel - * @package PHPExcel_Writer_Excel5 - * @copyright Copyright (c) 2006 - 2015 PHPExcel (http://www.codeplex.com/PHPExcel) - */ -class PHPExcel_Writer_Excel5_Escher -{ - /** - * The object we are writing - */ - private $object; - - /** - * The written binary data - */ - private $data; - - /** - * Shape offsets. Positions in binary stream where a new shape record begins - * - * @var array - */ - private $spOffsets; - - /** - * Shape types. - * - * @var array - */ - private $spTypes; - - /** - * Constructor - * - * @param mixed - */ - public function __construct($object) - { - $this->object = $object; - } - - /** - * Process the object to be written - */ - public function close() - { - // initialize - $this->data = ''; - - switch (get_class($this->object)) { - case 'PHPExcel_Shared_Escher': - if ($dggContainer = $this->object->getDggContainer()) { - $writer = new PHPExcel_Writer_Excel5_Escher($dggContainer); - $this->data = $writer->close(); - } elseif ($dgContainer = $this->object->getDgContainer()) { - $writer = new PHPExcel_Writer_Excel5_Escher($dgContainer); - $this->data = $writer->close(); - $this->spOffsets = $writer->getSpOffsets(); - $this->spTypes = $writer->getSpTypes(); - } - break; - case 'PHPExcel_Shared_Escher_DggContainer': - // this is a container record - - // initialize - $innerData = ''; - - // write the dgg - $recVer = 0x0; - $recInstance = 0x0000; - $recType = 0xF006; - - $recVerInstance = $recVer; - $recVerInstance |= $recInstance << 4; - - // dgg data - $dggData = - pack( - 'VVVV', - $this->object->getSpIdMax(), // maximum shape identifier increased by one - $this->object->getCDgSaved() + 1, // number of file identifier clusters increased by one - $this->object->getCSpSaved(), - $this->object->getCDgSaved() // count total number of drawings saved - ); - - // add file identifier clusters (one per drawing) - $IDCLs = $this->object->getIDCLs(); - - foreach ($IDCLs as $dgId => $maxReducedSpId) { - $dggData .= pack('VV', $dgId, $maxReducedSpId + 1); - } - - $header = pack('vvV', $recVerInstance, $recType, strlen($dggData)); - $innerData .= $header . $dggData; - - // write the bstoreContainer - if ($bstoreContainer = $this->object->getBstoreContainer()) { - $writer = new PHPExcel_Writer_Excel5_Escher($bstoreContainer); - $innerData .= $writer->close(); - } - - // write the record - $recVer = 0xF; - $recInstance = 0x0000; - $recType = 0xF000; - $length = strlen($innerData); - - $recVerInstance = $recVer; - $recVerInstance |= $recInstance << 4; - - $header = pack('vvV', $recVerInstance, $recType, $length); - - $this->data = $header . $innerData; - break; - case 'PHPExcel_Shared_Escher_DggContainer_BstoreContainer': - // this is a container record - - // initialize - $innerData = ''; - - // treat the inner data - if ($BSECollection = $this->object->getBSECollection()) { - foreach ($BSECollection as $BSE) { - $writer = new PHPExcel_Writer_Excel5_Escher($BSE); - $innerData .= $writer->close(); - } - } - - // write the record - $recVer = 0xF; - $recInstance = count($this->object->getBSECollection()); - $recType = 0xF001; - $length = strlen($innerData); - - $recVerInstance = $recVer; - $recVerInstance |= $recInstance << 4; - - $header = pack('vvV', $recVerInstance, $recType, $length); - - $this->data = $header . $innerData; - break; - case 'PHPExcel_Shared_Escher_DggContainer_BstoreContainer_BSE': - // this is a semi-container record - - // initialize - $innerData = ''; - - // here we treat the inner data - if ($blip = $this->object->getBlip()) { - $writer = new PHPExcel_Writer_Excel5_Escher($blip); - $innerData .= $writer->close(); - } - - // initialize - $data = ''; - - $btWin32 = $this->object->getBlipType(); - $btMacOS = $this->object->getBlipType(); - $data .= pack('CC', $btWin32, $btMacOS); - - $rgbUid = pack('VVVV', 0, 0, 0, 0); // todo - $data .= $rgbUid; - - $tag = 0; - $size = strlen($innerData); - $cRef = 1; - $foDelay = 0; //todo - $unused1 = 0x0; - $cbName = 0x0; - $unused2 = 0x0; - $unused3 = 0x0; - $data .= pack('vVVVCCCC', $tag, $size, $cRef, $foDelay, $unused1, $cbName, $unused2, $unused3); - - $data .= $innerData; - - // write the record - $recVer = 0x2; - $recInstance = $this->object->getBlipType(); - $recType = 0xF007; - $length = strlen($data); - - $recVerInstance = $recVer; - $recVerInstance |= $recInstance << 4; - - $header = pack('vvV', $recVerInstance, $recType, $length); - - $this->data = $header; - - $this->data .= $data; - break; - case 'PHPExcel_Shared_Escher_DggContainer_BstoreContainer_BSE_Blip': - // this is an atom record - - // write the record - switch ($this->object->getParent()->getBlipType()) { - case PHPExcel_Shared_Escher_DggContainer_BstoreContainer_BSE::BLIPTYPE_JPEG: - // initialize - $innerData = ''; - - $rgbUid1 = pack('VVVV', 0, 0, 0, 0); // todo - $innerData .= $rgbUid1; - - $tag = 0xFF; // todo - $innerData .= pack('C', $tag); - - $innerData .= $this->object->getData(); - - $recVer = 0x0; - $recInstance = 0x46A; - $recType = 0xF01D; - $length = strlen($innerData); - - $recVerInstance = $recVer; - $recVerInstance |= $recInstance << 4; - - $header = pack('vvV', $recVerInstance, $recType, $length); - - $this->data = $header; - - $this->data .= $innerData; - break; - - case PHPExcel_Shared_Escher_DggContainer_BstoreContainer_BSE::BLIPTYPE_PNG: - // initialize - $innerData = ''; - - $rgbUid1 = pack('VVVV', 0, 0, 0, 0); // todo - $innerData .= $rgbUid1; - - $tag = 0xFF; // todo - $innerData .= pack('C', $tag); - - $innerData .= $this->object->getData(); - - $recVer = 0x0; - $recInstance = 0x6E0; - $recType = 0xF01E; - $length = strlen($innerData); - - $recVerInstance = $recVer; - $recVerInstance |= $recInstance << 4; - - $header = pack('vvV', $recVerInstance, $recType, $length); - - $this->data = $header; - - $this->data .= $innerData; - break; - } - break; - case 'PHPExcel_Shared_Escher_DgContainer': - // this is a container record - - // initialize - $innerData = ''; - - // write the dg - $recVer = 0x0; - $recInstance = $this->object->getDgId(); - $recType = 0xF008; - $length = 8; - - $recVerInstance = $recVer; - $recVerInstance |= $recInstance << 4; - - $header = pack('vvV', $recVerInstance, $recType, $length); - - // number of shapes in this drawing (including group shape) - $countShapes = count($this->object->getSpgrContainer()->getChildren()); - $innerData .= $header . pack('VV', $countShapes, $this->object->getLastSpId()); - //$innerData .= $header . pack('VV', 0, 0); - - // write the spgrContainer - if ($spgrContainer = $this->object->getSpgrContainer()) { - $writer = new PHPExcel_Writer_Excel5_Escher($spgrContainer); - $innerData .= $writer->close(); - - // get the shape offsets relative to the spgrContainer record - $spOffsets = $writer->getSpOffsets(); - $spTypes = $writer->getSpTypes(); - - // save the shape offsets relative to dgContainer - foreach ($spOffsets as & $spOffset) { - $spOffset += 24; // add length of dgContainer header data (8 bytes) plus dg data (16 bytes) - } - - $this->spOffsets = $spOffsets; - $this->spTypes = $spTypes; - } - - // write the record - $recVer = 0xF; - $recInstance = 0x0000; - $recType = 0xF002; - $length = strlen($innerData); - - $recVerInstance = $recVer; - $recVerInstance |= $recInstance << 4; - - $header = pack('vvV', $recVerInstance, $recType, $length); - - $this->data = $header . $innerData; - break; - case 'PHPExcel_Shared_Escher_DgContainer_SpgrContainer': - // this is a container record - - // initialize - $innerData = ''; - - // initialize spape offsets - $totalSize = 8; - $spOffsets = array(); - $spTypes = array(); - - // treat the inner data - foreach ($this->object->getChildren() as $spContainer) { - $writer = new PHPExcel_Writer_Excel5_Escher($spContainer); - $spData = $writer->close(); - $innerData .= $spData; - - // save the shape offsets (where new shape records begin) - $totalSize += strlen($spData); - $spOffsets[] = $totalSize; - - $spTypes = array_merge($spTypes, $writer->getSpTypes()); - } - - // write the record - $recVer = 0xF; - $recInstance = 0x0000; - $recType = 0xF003; - $length = strlen($innerData); - - $recVerInstance = $recVer; - $recVerInstance |= $recInstance << 4; - - $header = pack('vvV', $recVerInstance, $recType, $length); - - $this->data = $header . $innerData; - $this->spOffsets = $spOffsets; - $this->spTypes = $spTypes; - break; - case 'PHPExcel_Shared_Escher_DgContainer_SpgrContainer_SpContainer': - // initialize - $data = ''; - - // build the data - - // write group shape record, if necessary? - if ($this->object->getSpgr()) { - $recVer = 0x1; - $recInstance = 0x0000; - $recType = 0xF009; - $length = 0x00000010; - - $recVerInstance = $recVer; - $recVerInstance |= $recInstance << 4; - - $header = pack('vvV', $recVerInstance, $recType, $length); - - $data .= $header . pack('VVVV', 0, 0, 0, 0); - } - $this->spTypes[] = ($this->object->getSpType()); - - // write the shape record - $recVer = 0x2; - $recInstance = $this->object->getSpType(); // shape type - $recType = 0xF00A; - $length = 0x00000008; - - $recVerInstance = $recVer; - $recVerInstance |= $recInstance << 4; - - $header = pack('vvV', $recVerInstance, $recType, $length); - - $data .= $header . pack('VV', $this->object->getSpId(), $this->object->getSpgr() ? 0x0005 : 0x0A00); - - - // the options - if ($this->object->getOPTCollection()) { - $optData = ''; - - $recVer = 0x3; - $recInstance = count($this->object->getOPTCollection()); - $recType = 0xF00B; - foreach ($this->object->getOPTCollection() as $property => $value) { - $optData .= pack('vV', $property, $value); - } - $length = strlen($optData); - - $recVerInstance = $recVer; - $recVerInstance |= $recInstance << 4; - - $header = pack('vvV', $recVerInstance, $recType, $length); - $data .= $header . $optData; - } - - // the client anchor - if ($this->object->getStartCoordinates()) { - $clientAnchorData = ''; - - $recVer = 0x0; - $recInstance = 0x0; - $recType = 0xF010; - - // start coordinates - list($column, $row) = PHPExcel_Cell::coordinateFromString($this->object->getStartCoordinates()); - $c1 = PHPExcel_Cell::columnIndexFromString($column) - 1; - $r1 = $row - 1; - - // start offsetX - $startOffsetX = $this->object->getStartOffsetX(); - - // start offsetY - $startOffsetY = $this->object->getStartOffsetY(); - - // end coordinates - list($column, $row) = PHPExcel_Cell::coordinateFromString($this->object->getEndCoordinates()); - $c2 = PHPExcel_Cell::columnIndexFromString($column) - 1; - $r2 = $row - 1; - - // end offsetX - $endOffsetX = $this->object->getEndOffsetX(); - - // end offsetY - $endOffsetY = $this->object->getEndOffsetY(); - - $clientAnchorData = pack('vvvvvvvvv', $this->object->getSpFlag(), $c1, $startOffsetX, $r1, $startOffsetY, $c2, $endOffsetX, $r2, $endOffsetY); - - $length = strlen($clientAnchorData); - - $recVerInstance = $recVer; - $recVerInstance |= $recInstance << 4; - - $header = pack('vvV', $recVerInstance, $recType, $length); - $data .= $header . $clientAnchorData; - } - - // the client data, just empty for now - if (!$this->object->getSpgr()) { - $clientDataData = ''; - - $recVer = 0x0; - $recInstance = 0x0; - $recType = 0xF011; - - $length = strlen($clientDataData); - - $recVerInstance = $recVer; - $recVerInstance |= $recInstance << 4; - - $header = pack('vvV', $recVerInstance, $recType, $length); - $data .= $header . $clientDataData; - } - - // write the record - $recVer = 0xF; - $recInstance = 0x0000; - $recType = 0xF004; - $length = strlen($data); - - $recVerInstance = $recVer; - $recVerInstance |= $recInstance << 4; - - $header = pack('vvV', $recVerInstance, $recType, $length); - - $this->data = $header . $data; - break; - } - - return $this->data; - } - - /** - * Gets the shape offsets - * - * @return array - */ - public function getSpOffsets() - { - return $this->spOffsets; - } - - /** - * Gets the shape types - * - * @return array - */ - public function getSpTypes() - { - return $this->spTypes; - } -} diff --git a/Utils/PHPExcel/Writer/Excel5/Font.php b/Utils/PHPExcel/Writer/Excel5/Font.php deleted file mode 100644 index 76aa8ca..0000000 --- a/Utils/PHPExcel/Writer/Excel5/Font.php +++ /dev/null @@ -1,164 +0,0 @@ -<?php - -/** - * PHPExcel_Writer_Excel5_Font - * - * Copyright (c) 2006 - 2015 PHPExcel - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - * - * @category PHPExcel - * @package PHPExcel_Writer_Excel5 - * @copyright Copyright (c) 2006 - 2015 PHPExcel (http://www.codeplex.com/PHPExcel) - * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL - * @version ##VERSION##, ##DATE## - */ -class PHPExcel_Writer_Excel5_Font -{ - /** - * Map of BIFF2-BIFF8 codes for underline styles - * @static array of int - * - */ - private static $mapUnderline = array( - PHPExcel_Style_Font::UNDERLINE_NONE => 0x00, - PHPExcel_Style_Font::UNDERLINE_SINGLE => 0x01, - PHPExcel_Style_Font::UNDERLINE_DOUBLE => 0x02, - PHPExcel_Style_Font::UNDERLINE_SINGLEACCOUNTING => 0x21, - PHPExcel_Style_Font::UNDERLINE_DOUBLEACCOUNTING => 0x22, - ); - /** - * Color index - * - * @var int - */ - private $colorIndex; - /** - * Font - * - * @var PHPExcel_Style_Font - */ - private $font; - - /** - * Constructor - * - * @param PHPExcel_Style_Font $font - */ - public function __construct(PHPExcel_Style_Font $font = null) - { - $this->colorIndex = 0x7FFF; - $this->font = $font; - } - - /** - * Set the color index - * - * @param int $colorIndex - */ - public function setColorIndex($colorIndex) - { - $this->colorIndex = $colorIndex; - } - - /** - * Get font record data - * - * @return string - */ - public function writeFont() - { - $font_outline = 0; - $font_shadow = 0; - - $icv = $this->colorIndex; // Index to color palette - if ($this->font->getSuperScript()) { - $sss = 1; - } elseif ($this->font->getSubScript()) { - $sss = 2; - } else { - $sss = 0; - } - $bFamily = 0; // Font family - $bCharSet = PHPExcel_Shared_Font::getCharsetFromFontName($this->font->getName()); // Character set - - $record = 0x31; // Record identifier - $reserved = 0x00; // Reserved - $grbit = 0x00; // Font attributes - if ($this->font->getItalic()) { - $grbit |= 0x02; - } - if ($this->font->getStrikethrough()) { - $grbit |= 0x08; - } - if ($font_outline) { - $grbit |= 0x10; - } - if ($font_shadow) { - $grbit |= 0x20; - } - - $data = pack( - "vvvvvCCCC", - // Fontsize (in twips) - $this->font->getSize() * 20, - $grbit, - // Colour - $icv, - // Font weight - self::mapBold($this->font->getBold()), - // Superscript/Subscript - $sss, - self::mapUnderline($this->font->getUnderline()), - $bFamily, - $bCharSet, - $reserved - ); - $data .= PHPExcel_Shared_String::UTF8toBIFF8UnicodeShort($this->font->getName()); - - $length = strlen($data); - $header = pack("vv", $record, $length); - - return($header . $data); - } - - /** - * Map to BIFF5-BIFF8 codes for bold - * - * @param boolean $bold - * @return int - */ - private static function mapBold($bold) - { - if ($bold) { - return 0x2BC; // 700 = Bold font weight - } - return 0x190; // 400 = Normal font weight - } - - /** - * Map underline - * - * @param string - * @return int - */ - private static function mapUnderline($underline) - { - if (isset(self::$mapUnderline[$underline])) { - return self::$mapUnderline[$underline]; - } - return 0x00; - } -} diff --git a/Utils/PHPExcel/Writer/Excel5/Parser.php b/Utils/PHPExcel/Writer/Excel5/Parser.php deleted file mode 100644 index 0cf1c1d..0000000 --- a/Utils/PHPExcel/Writer/Excel5/Parser.php +++ /dev/null @@ -1,1531 +0,0 @@ -<?php - -/** - * PHPExcel_Writer_Excel5_Parser - * - * Copyright (c) 2006 - 2015 PHPExcel - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - * - * @category PHPExcel - * @package PHPExcel_Writer_Excel5 - * @copyright Copyright (c) 2006 - 2015 PHPExcel (http://www.codeplex.com/PHPExcel) - * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL - * @version ##VERSION##, ##DATE## - */ - -// Original file header of PEAR::Spreadsheet_Excel_Writer_Parser (used as the base for this class): -// ----------------------------------------------------------------------------------------- -// * Class for parsing Excel formulas -// * -// * License Information: -// * -// * Spreadsheet_Excel_Writer: A library for generating Excel Spreadsheets -// * Copyright (c) 2002-2003 Xavier Noguer xnoguer@rezebra.com -// * -// * This library is free software; you can redistribute it and/or -// * modify it under the terms of the GNU Lesser General Public -// * License as published by the Free Software Foundation; either -// * version 2.1 of the License, or (at your option) any later version. -// * -// * This library is distributed in the hope that it will be useful, -// * but WITHOUT ANY WARRANTY; without even the implied warranty of -// * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// * Lesser General Public License for more details. -// * -// * You should have received a copy of the GNU Lesser General Public -// * License along with this library; if not, write to the Free Software -// * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -// */ -class PHPExcel_Writer_Excel5_Parser -{ - /** Constants */ - // Sheet title in unquoted form - // Invalid sheet title characters cannot occur in the sheet title: - // *:/\?[] - // Moreover, there are valid sheet title characters that cannot occur in unquoted form (there may be more?) - // +-% '^&<>=,;#()"{} - const REGEX_SHEET_TITLE_UNQUOTED = '[^\*\:\/\\\\\?\[\]\+\-\% \\\'\^\&\<\>\=\,\;\#\(\)\"\{\}]+'; - - // Sheet title in quoted form (without surrounding quotes) - // Invalid sheet title characters cannot occur in the sheet title: - // *:/\?[] (usual invalid sheet title characters) - // Single quote is represented as a pair '' - const REGEX_SHEET_TITLE_QUOTED = '(([^\*\:\/\\\\\?\[\]\\\'])+|(\\\'\\\')+)+'; - - /** - * The index of the character we are currently looking at - * @var integer - */ - public $currentCharacter; - - /** - * The token we are working on. - * @var string - */ - public $currentToken; - - /** - * The formula to parse - * @var string - */ - private $formula; - - /** - * The character ahead of the current char - * @var string - */ - public $lookAhead; - - /** - * The parse tree to be generated - * @var string - */ - private $parseTree; - - /** - * Array of external sheets - * @var array - */ - private $externalSheets; - - /** - * Array of sheet references in the form of REF structures - * @var array - */ - public $references; - - /** - * The class constructor - * - */ - public function __construct() - { - $this->currentCharacter = 0; - $this->currentToken = ''; // The token we are working on. - $this->formula = ''; // The formula to parse. - $this->lookAhead = ''; // The character ahead of the current char. - $this->parseTree = ''; // The parse tree to be generated. - $this->initializeHashes(); // Initialize the hashes: ptg's and function's ptg's - $this->externalSheets = array(); - $this->references = array(); - } - - /** - * Initialize the ptg and function hashes. - * - * @access private - */ - private function initializeHashes() - { - // The Excel ptg indices - $this->ptg = array( - 'ptgExp' => 0x01, - 'ptgTbl' => 0x02, - 'ptgAdd' => 0x03, - 'ptgSub' => 0x04, - 'ptgMul' => 0x05, - 'ptgDiv' => 0x06, - 'ptgPower' => 0x07, - 'ptgConcat' => 0x08, - 'ptgLT' => 0x09, - 'ptgLE' => 0x0A, - 'ptgEQ' => 0x0B, - 'ptgGE' => 0x0C, - 'ptgGT' => 0x0D, - 'ptgNE' => 0x0E, - 'ptgIsect' => 0x0F, - 'ptgUnion' => 0x10, - 'ptgRange' => 0x11, - 'ptgUplus' => 0x12, - 'ptgUminus' => 0x13, - 'ptgPercent' => 0x14, - 'ptgParen' => 0x15, - 'ptgMissArg' => 0x16, - 'ptgStr' => 0x17, - 'ptgAttr' => 0x19, - 'ptgSheet' => 0x1A, - 'ptgEndSheet' => 0x1B, - 'ptgErr' => 0x1C, - 'ptgBool' => 0x1D, - 'ptgInt' => 0x1E, - 'ptgNum' => 0x1F, - 'ptgArray' => 0x20, - 'ptgFunc' => 0x21, - 'ptgFuncVar' => 0x22, - 'ptgName' => 0x23, - 'ptgRef' => 0x24, - 'ptgArea' => 0x25, - 'ptgMemArea' => 0x26, - 'ptgMemErr' => 0x27, - 'ptgMemNoMem' => 0x28, - 'ptgMemFunc' => 0x29, - 'ptgRefErr' => 0x2A, - 'ptgAreaErr' => 0x2B, - 'ptgRefN' => 0x2C, - 'ptgAreaN' => 0x2D, - 'ptgMemAreaN' => 0x2E, - 'ptgMemNoMemN' => 0x2F, - 'ptgNameX' => 0x39, - 'ptgRef3d' => 0x3A, - 'ptgArea3d' => 0x3B, - 'ptgRefErr3d' => 0x3C, - 'ptgAreaErr3d' => 0x3D, - 'ptgArrayV' => 0x40, - 'ptgFuncV' => 0x41, - 'ptgFuncVarV' => 0x42, - 'ptgNameV' => 0x43, - 'ptgRefV' => 0x44, - 'ptgAreaV' => 0x45, - 'ptgMemAreaV' => 0x46, - 'ptgMemErrV' => 0x47, - 'ptgMemNoMemV' => 0x48, - 'ptgMemFuncV' => 0x49, - 'ptgRefErrV' => 0x4A, - 'ptgAreaErrV' => 0x4B, - 'ptgRefNV' => 0x4C, - 'ptgAreaNV' => 0x4D, - 'ptgMemAreaNV' => 0x4E, - 'ptgMemNoMemN' => 0x4F, - 'ptgFuncCEV' => 0x58, - 'ptgNameXV' => 0x59, - 'ptgRef3dV' => 0x5A, - 'ptgArea3dV' => 0x5B, - 'ptgRefErr3dV' => 0x5C, - 'ptgAreaErr3d' => 0x5D, - 'ptgArrayA' => 0x60, - 'ptgFuncA' => 0x61, - 'ptgFuncVarA' => 0x62, - 'ptgNameA' => 0x63, - 'ptgRefA' => 0x64, - 'ptgAreaA' => 0x65, - 'ptgMemAreaA' => 0x66, - 'ptgMemErrA' => 0x67, - 'ptgMemNoMemA' => 0x68, - 'ptgMemFuncA' => 0x69, - 'ptgRefErrA' => 0x6A, - 'ptgAreaErrA' => 0x6B, - 'ptgRefNA' => 0x6C, - 'ptgAreaNA' => 0x6D, - 'ptgMemAreaNA' => 0x6E, - 'ptgMemNoMemN' => 0x6F, - 'ptgFuncCEA' => 0x78, - 'ptgNameXA' => 0x79, - 'ptgRef3dA' => 0x7A, - 'ptgArea3dA' => 0x7B, - 'ptgRefErr3dA' => 0x7C, - 'ptgAreaErr3d' => 0x7D - ); - - // Thanks to Michael Meeks and Gnumeric for the initial arg values. - // - // The following hash was generated by "function_locale.pl" in the distro. - // Refer to function_locale.pl for non-English function names. - // - // The array elements are as follow: - // ptg: The Excel function ptg code. - // args: The number of arguments that the function takes: - // >=0 is a fixed number of arguments. - // -1 is a variable number of arguments. - // class: The reference, value or array class of the function args. - // vol: The function is volatile. - // - $this->functions = array( - // function ptg args class vol - 'COUNT' => array( 0, -1, 0, 0 ), - 'IF' => array( 1, -1, 1, 0 ), - 'ISNA' => array( 2, 1, 1, 0 ), - 'ISERROR' => array( 3, 1, 1, 0 ), - 'SUM' => array( 4, -1, 0, 0 ), - 'AVERAGE' => array( 5, -1, 0, 0 ), - 'MIN' => array( 6, -1, 0, 0 ), - 'MAX' => array( 7, -1, 0, 0 ), - 'ROW' => array( 8, -1, 0, 0 ), - 'COLUMN' => array( 9, -1, 0, 0 ), - 'NA' => array( 10, 0, 0, 0 ), - 'NPV' => array( 11, -1, 1, 0 ), - 'STDEV' => array( 12, -1, 0, 0 ), - 'DOLLAR' => array( 13, -1, 1, 0 ), - 'FIXED' => array( 14, -1, 1, 0 ), - 'SIN' => array( 15, 1, 1, 0 ), - 'COS' => array( 16, 1, 1, 0 ), - 'TAN' => array( 17, 1, 1, 0 ), - 'ATAN' => array( 18, 1, 1, 0 ), - 'PI' => array( 19, 0, 1, 0 ), - 'SQRT' => array( 20, 1, 1, 0 ), - 'EXP' => array( 21, 1, 1, 0 ), - 'LN' => array( 22, 1, 1, 0 ), - 'LOG10' => array( 23, 1, 1, 0 ), - 'ABS' => array( 24, 1, 1, 0 ), - 'INT' => array( 25, 1, 1, 0 ), - 'SIGN' => array( 26, 1, 1, 0 ), - 'ROUND' => array( 27, 2, 1, 0 ), - 'LOOKUP' => array( 28, -1, 0, 0 ), - 'INDEX' => array( 29, -1, 0, 1 ), - 'REPT' => array( 30, 2, 1, 0 ), - 'MID' => array( 31, 3, 1, 0 ), - 'LEN' => array( 32, 1, 1, 0 ), - 'VALUE' => array( 33, 1, 1, 0 ), - 'TRUE' => array( 34, 0, 1, 0 ), - 'FALSE' => array( 35, 0, 1, 0 ), - 'AND' => array( 36, -1, 0, 0 ), - 'OR' => array( 37, -1, 0, 0 ), - 'NOT' => array( 38, 1, 1, 0 ), - 'MOD' => array( 39, 2, 1, 0 ), - 'DCOUNT' => array( 40, 3, 0, 0 ), - 'DSUM' => array( 41, 3, 0, 0 ), - 'DAVERAGE' => array( 42, 3, 0, 0 ), - 'DMIN' => array( 43, 3, 0, 0 ), - 'DMAX' => array( 44, 3, 0, 0 ), - 'DSTDEV' => array( 45, 3, 0, 0 ), - 'VAR' => array( 46, -1, 0, 0 ), - 'DVAR' => array( 47, 3, 0, 0 ), - 'TEXT' => array( 48, 2, 1, 0 ), - 'LINEST' => array( 49, -1, 0, 0 ), - 'TREND' => array( 50, -1, 0, 0 ), - 'LOGEST' => array( 51, -1, 0, 0 ), - 'GROWTH' => array( 52, -1, 0, 0 ), - 'PV' => array( 56, -1, 1, 0 ), - 'FV' => array( 57, -1, 1, 0 ), - 'NPER' => array( 58, -1, 1, 0 ), - 'PMT' => array( 59, -1, 1, 0 ), - 'RATE' => array( 60, -1, 1, 0 ), - 'MIRR' => array( 61, 3, 0, 0 ), - 'IRR' => array( 62, -1, 0, 0 ), - 'RAND' => array( 63, 0, 1, 1 ), - 'MATCH' => array( 64, -1, 0, 0 ), - 'DATE' => array( 65, 3, 1, 0 ), - 'TIME' => array( 66, 3, 1, 0 ), - 'DAY' => array( 67, 1, 1, 0 ), - 'MONTH' => array( 68, 1, 1, 0 ), - 'YEAR' => array( 69, 1, 1, 0 ), - 'WEEKDAY' => array( 70, -1, 1, 0 ), - 'HOUR' => array( 71, 1, 1, 0 ), - 'MINUTE' => array( 72, 1, 1, 0 ), - 'SECOND' => array( 73, 1, 1, 0 ), - 'NOW' => array( 74, 0, 1, 1 ), - 'AREAS' => array( 75, 1, 0, 1 ), - 'ROWS' => array( 76, 1, 0, 1 ), - 'COLUMNS' => array( 77, 1, 0, 1 ), - 'OFFSET' => array( 78, -1, 0, 1 ), - 'SEARCH' => array( 82, -1, 1, 0 ), - 'TRANSPOSE' => array( 83, 1, 1, 0 ), - 'TYPE' => array( 86, 1, 1, 0 ), - 'ATAN2' => array( 97, 2, 1, 0 ), - 'ASIN' => array( 98, 1, 1, 0 ), - 'ACOS' => array( 99, 1, 1, 0 ), - 'CHOOSE' => array( 100, -1, 1, 0 ), - 'HLOOKUP' => array( 101, -1, 0, 0 ), - 'VLOOKUP' => array( 102, -1, 0, 0 ), - 'ISREF' => array( 105, 1, 0, 0 ), - 'LOG' => array( 109, -1, 1, 0 ), - 'CHAR' => array( 111, 1, 1, 0 ), - 'LOWER' => array( 112, 1, 1, 0 ), - 'UPPER' => array( 113, 1, 1, 0 ), - 'PROPER' => array( 114, 1, 1, 0 ), - 'LEFT' => array( 115, -1, 1, 0 ), - 'RIGHT' => array( 116, -1, 1, 0 ), - 'EXACT' => array( 117, 2, 1, 0 ), - 'TRIM' => array( 118, 1, 1, 0 ), - 'REPLACE' => array( 119, 4, 1, 0 ), - 'SUBSTITUTE' => array( 120, -1, 1, 0 ), - 'CODE' => array( 121, 1, 1, 0 ), - 'FIND' => array( 124, -1, 1, 0 ), - 'CELL' => array( 125, -1, 0, 1 ), - 'ISERR' => array( 126, 1, 1, 0 ), - 'ISTEXT' => array( 127, 1, 1, 0 ), - 'ISNUMBER' => array( 128, 1, 1, 0 ), - 'ISBLANK' => array( 129, 1, 1, 0 ), - 'T' => array( 130, 1, 0, 0 ), - 'N' => array( 131, 1, 0, 0 ), - 'DATEVALUE' => array( 140, 1, 1, 0 ), - 'TIMEVALUE' => array( 141, 1, 1, 0 ), - 'SLN' => array( 142, 3, 1, 0 ), - 'SYD' => array( 143, 4, 1, 0 ), - 'DDB' => array( 144, -1, 1, 0 ), - 'INDIRECT' => array( 148, -1, 1, 1 ), - 'CALL' => array( 150, -1, 1, 0 ), - 'CLEAN' => array( 162, 1, 1, 0 ), - 'MDETERM' => array( 163, 1, 2, 0 ), - 'MINVERSE' => array( 164, 1, 2, 0 ), - 'MMULT' => array( 165, 2, 2, 0 ), - 'IPMT' => array( 167, -1, 1, 0 ), - 'PPMT' => array( 168, -1, 1, 0 ), - 'COUNTA' => array( 169, -1, 0, 0 ), - 'PRODUCT' => array( 183, -1, 0, 0 ), - 'FACT' => array( 184, 1, 1, 0 ), - 'DPRODUCT' => array( 189, 3, 0, 0 ), - 'ISNONTEXT' => array( 190, 1, 1, 0 ), - 'STDEVP' => array( 193, -1, 0, 0 ), - 'VARP' => array( 194, -1, 0, 0 ), - 'DSTDEVP' => array( 195, 3, 0, 0 ), - 'DVARP' => array( 196, 3, 0, 0 ), - 'TRUNC' => array( 197, -1, 1, 0 ), - 'ISLOGICAL' => array( 198, 1, 1, 0 ), - 'DCOUNTA' => array( 199, 3, 0, 0 ), - 'USDOLLAR' => array( 204, -1, 1, 0 ), - 'FINDB' => array( 205, -1, 1, 0 ), - 'SEARCHB' => array( 206, -1, 1, 0 ), - 'REPLACEB' => array( 207, 4, 1, 0 ), - 'LEFTB' => array( 208, -1, 1, 0 ), - 'RIGHTB' => array( 209, -1, 1, 0 ), - 'MIDB' => array( 210, 3, 1, 0 ), - 'LENB' => array( 211, 1, 1, 0 ), - 'ROUNDUP' => array( 212, 2, 1, 0 ), - 'ROUNDDOWN' => array( 213, 2, 1, 0 ), - 'ASC' => array( 214, 1, 1, 0 ), - 'DBCS' => array( 215, 1, 1, 0 ), - 'RANK' => array( 216, -1, 0, 0 ), - 'ADDRESS' => array( 219, -1, 1, 0 ), - 'DAYS360' => array( 220, -1, 1, 0 ), - 'TODAY' => array( 221, 0, 1, 1 ), - 'VDB' => array( 222, -1, 1, 0 ), - 'MEDIAN' => array( 227, -1, 0, 0 ), - 'SUMPRODUCT' => array( 228, -1, 2, 0 ), - 'SINH' => array( 229, 1, 1, 0 ), - 'COSH' => array( 230, 1, 1, 0 ), - 'TANH' => array( 231, 1, 1, 0 ), - 'ASINH' => array( 232, 1, 1, 0 ), - 'ACOSH' => array( 233, 1, 1, 0 ), - 'ATANH' => array( 234, 1, 1, 0 ), - 'DGET' => array( 235, 3, 0, 0 ), - 'INFO' => array( 244, 1, 1, 1 ), - 'DB' => array( 247, -1, 1, 0 ), - 'FREQUENCY' => array( 252, 2, 0, 0 ), - 'ERROR.TYPE' => array( 261, 1, 1, 0 ), - 'REGISTER.ID' => array( 267, -1, 1, 0 ), - 'AVEDEV' => array( 269, -1, 0, 0 ), - 'BETADIST' => array( 270, -1, 1, 0 ), - 'GAMMALN' => array( 271, 1, 1, 0 ), - 'BETAINV' => array( 272, -1, 1, 0 ), - 'BINOMDIST' => array( 273, 4, 1, 0 ), - 'CHIDIST' => array( 274, 2, 1, 0 ), - 'CHIINV' => array( 275, 2, 1, 0 ), - 'COMBIN' => array( 276, 2, 1, 0 ), - 'CONFIDENCE' => array( 277, 3, 1, 0 ), - 'CRITBINOM' => array( 278, 3, 1, 0 ), - 'EVEN' => array( 279, 1, 1, 0 ), - 'EXPONDIST' => array( 280, 3, 1, 0 ), - 'FDIST' => array( 281, 3, 1, 0 ), - 'FINV' => array( 282, 3, 1, 0 ), - 'FISHER' => array( 283, 1, 1, 0 ), - 'FISHERINV' => array( 284, 1, 1, 0 ), - 'FLOOR' => array( 285, 2, 1, 0 ), - 'GAMMADIST' => array( 286, 4, 1, 0 ), - 'GAMMAINV' => array( 287, 3, 1, 0 ), - 'CEILING' => array( 288, 2, 1, 0 ), - 'HYPGEOMDIST' => array( 289, 4, 1, 0 ), - 'LOGNORMDIST' => array( 290, 3, 1, 0 ), - 'LOGINV' => array( 291, 3, 1, 0 ), - 'NEGBINOMDIST' => array( 292, 3, 1, 0 ), - 'NORMDIST' => array( 293, 4, 1, 0 ), - 'NORMSDIST' => array( 294, 1, 1, 0 ), - 'NORMINV' => array( 295, 3, 1, 0 ), - 'NORMSINV' => array( 296, 1, 1, 0 ), - 'STANDARDIZE' => array( 297, 3, 1, 0 ), - 'ODD' => array( 298, 1, 1, 0 ), - 'PERMUT' => array( 299, 2, 1, 0 ), - 'POISSON' => array( 300, 3, 1, 0 ), - 'TDIST' => array( 301, 3, 1, 0 ), - 'WEIBULL' => array( 302, 4, 1, 0 ), - 'SUMXMY2' => array( 303, 2, 2, 0 ), - 'SUMX2MY2' => array( 304, 2, 2, 0 ), - 'SUMX2PY2' => array( 305, 2, 2, 0 ), - 'CHITEST' => array( 306, 2, 2, 0 ), - 'CORREL' => array( 307, 2, 2, 0 ), - 'COVAR' => array( 308, 2, 2, 0 ), - 'FORECAST' => array( 309, 3, 2, 0 ), - 'FTEST' => array( 310, 2, 2, 0 ), - 'INTERCEPT' => array( 311, 2, 2, 0 ), - 'PEARSON' => array( 312, 2, 2, 0 ), - 'RSQ' => array( 313, 2, 2, 0 ), - 'STEYX' => array( 314, 2, 2, 0 ), - 'SLOPE' => array( 315, 2, 2, 0 ), - 'TTEST' => array( 316, 4, 2, 0 ), - 'PROB' => array( 317, -1, 2, 0 ), - 'DEVSQ' => array( 318, -1, 0, 0 ), - 'GEOMEAN' => array( 319, -1, 0, 0 ), - 'HARMEAN' => array( 320, -1, 0, 0 ), - 'SUMSQ' => array( 321, -1, 0, 0 ), - 'KURT' => array( 322, -1, 0, 0 ), - 'SKEW' => array( 323, -1, 0, 0 ), - 'ZTEST' => array( 324, -1, 0, 0 ), - 'LARGE' => array( 325, 2, 0, 0 ), - 'SMALL' => array( 326, 2, 0, 0 ), - 'QUARTILE' => array( 327, 2, 0, 0 ), - 'PERCENTILE' => array( 328, 2, 0, 0 ), - 'PERCENTRANK' => array( 329, -1, 0, 0 ), - 'MODE' => array( 330, -1, 2, 0 ), - 'TRIMMEAN' => array( 331, 2, 0, 0 ), - 'TINV' => array( 332, 2, 1, 0 ), - 'CONCATENATE' => array( 336, -1, 1, 0 ), - 'POWER' => array( 337, 2, 1, 0 ), - 'RADIANS' => array( 342, 1, 1, 0 ), - 'DEGREES' => array( 343, 1, 1, 0 ), - 'SUBTOTAL' => array( 344, -1, 0, 0 ), - 'SUMIF' => array( 345, -1, 0, 0 ), - 'COUNTIF' => array( 346, 2, 0, 0 ), - 'COUNTBLANK' => array( 347, 1, 0, 0 ), - 'ISPMT' => array( 350, 4, 1, 0 ), - 'DATEDIF' => array( 351, 3, 1, 0 ), - 'DATESTRING' => array( 352, 1, 1, 0 ), - 'NUMBERSTRING' => array( 353, 2, 1, 0 ), - 'ROMAN' => array( 354, -1, 1, 0 ), - 'GETPIVOTDATA' => array( 358, -1, 0, 0 ), - 'HYPERLINK' => array( 359, -1, 1, 0 ), - 'PHONETIC' => array( 360, 1, 0, 0 ), - 'AVERAGEA' => array( 361, -1, 0, 0 ), - 'MAXA' => array( 362, -1, 0, 0 ), - 'MINA' => array( 363, -1, 0, 0 ), - 'STDEVPA' => array( 364, -1, 0, 0 ), - 'VARPA' => array( 365, -1, 0, 0 ), - 'STDEVA' => array( 366, -1, 0, 0 ), - 'VARA' => array( 367, -1, 0, 0 ), - 'BAHTTEXT' => array( 368, 1, 0, 0 ), - ); - } - - /** - * Convert a token to the proper ptg value. - * - * @access private - * @param mixed $token The token to convert. - * @return mixed the converted token on success - */ - private function convert($token) - { - if (preg_match("/\"([^\"]|\"\"){0,255}\"/", $token)) { - return $this->convertString($token); - - } elseif (is_numeric($token)) { - return $this->convertNumber($token); - - // match references like A1 or $A$1 - } elseif (preg_match('/^\$?([A-Ia-i]?[A-Za-z])\$?(\d+)$/', $token)) { - return $this->convertRef2d($token); - - // match external references like Sheet1!A1 or Sheet1:Sheet2!A1 or Sheet1!$A$1 or Sheet1:Sheet2!$A$1 - } elseif (preg_match("/^" . self::REGEX_SHEET_TITLE_UNQUOTED . "(\:" . self::REGEX_SHEET_TITLE_UNQUOTED . ")?\!\\$?[A-Ia-i]?[A-Za-z]\\$?(\d+)$/u", $token)) { - return $this->convertRef3d($token); - - // match external references like 'Sheet1'!A1 or 'Sheet1:Sheet2'!A1 or 'Sheet1'!$A$1 or 'Sheet1:Sheet2'!$A$1 - } elseif (preg_match("/^'" . self::REGEX_SHEET_TITLE_QUOTED . "(\:" . self::REGEX_SHEET_TITLE_QUOTED . ")?'\!\\$?[A-Ia-i]?[A-Za-z]\\$?(\d+)$/u", $token)) { - return $this->convertRef3d($token); - - // match ranges like A1:B2 or $A$1:$B$2 - } elseif (preg_match('/^(\$)?[A-Ia-i]?[A-Za-z](\$)?(\d+)\:(\$)?[A-Ia-i]?[A-Za-z](\$)?(\d+)$/', $token)) { - return $this->convertRange2d($token); - - // match external ranges like Sheet1!A1:B2 or Sheet1:Sheet2!A1:B2 or Sheet1!$A$1:$B$2 or Sheet1:Sheet2!$A$1:$B$2 - } elseif (preg_match("/^" . self::REGEX_SHEET_TITLE_UNQUOTED . "(\:" . self::REGEX_SHEET_TITLE_UNQUOTED . ")?\!\\$?([A-Ia-i]?[A-Za-z])?\\$?(\d+)\:\\$?([A-Ia-i]?[A-Za-z])?\\$?(\d+)$/u", $token)) { - return $this->convertRange3d($token); - - // match external ranges like 'Sheet1'!A1:B2 or 'Sheet1:Sheet2'!A1:B2 or 'Sheet1'!$A$1:$B$2 or 'Sheet1:Sheet2'!$A$1:$B$2 - } elseif (preg_match("/^'" . self::REGEX_SHEET_TITLE_QUOTED . "(\:" . self::REGEX_SHEET_TITLE_QUOTED . ")?'\!\\$?([A-Ia-i]?[A-Za-z])?\\$?(\d+)\:\\$?([A-Ia-i]?[A-Za-z])?\\$?(\d+)$/u", $token)) { - return $this->convertRange3d($token); - - // operators (including parentheses) - } elseif (isset($this->ptg[$token])) { - return pack("C", $this->ptg[$token]); - - // match error codes - } elseif (preg_match("/^#[A-Z0\/]{3,5}[!?]{1}$/", $token) or $token == '#N/A') { - return $this->convertError($token); - - // commented so argument number can be processed correctly. See toReversePolish(). - /*elseif (preg_match("/[A-Z0-9\xc0-\xdc\.]+/", $token)) - { - return($this->convertFunction($token, $this->_func_args)); - }*/ - - // if it's an argument, ignore the token (the argument remains) - } elseif ($token == 'arg') { - return ''; - } - - // TODO: use real error codes - throw new PHPExcel_Writer_Exception("Unknown token $token"); - } - - /** - * Convert a number token to ptgInt or ptgNum - * - * @access private - * @param mixed $num an integer or double for conversion to its ptg value - */ - private function convertNumber($num) - { - // Integer in the range 0..2**16-1 - if ((preg_match("/^\d+$/", $num)) and ($num <= 65535)) { - return pack("Cv", $this->ptg['ptgInt'], $num); - } else { // A float - if (PHPExcel_Writer_Excel5_BIFFwriter::getByteOrder()) { // if it's Big Endian - $num = strrev($num); - } - return pack("Cd", $this->ptg['ptgNum'], $num); - } - } - - /** - * Convert a string token to ptgStr - * - * @access private - * @param string $string A string for conversion to its ptg value. - * @return mixed the converted token on success - */ - private function convertString($string) - { - // chop away beggining and ending quotes - $string = substr($string, 1, strlen($string) - 2); - if (strlen($string) > 255) { - throw new PHPExcel_Writer_Exception("String is too long"); - } - - return pack('C', $this->ptg['ptgStr']) . PHPExcel_Shared_String::UTF8toBIFF8UnicodeShort($string); - } - - /** - * Convert a function to a ptgFunc or ptgFuncVarV depending on the number of - * args that it takes. - * - * @access private - * @param string $token The name of the function for convertion to ptg value. - * @param integer $num_args The number of arguments the function receives. - * @return string The packed ptg for the function - */ - private function convertFunction($token, $num_args) - { - $args = $this->functions[$token][1]; -// $volatile = $this->functions[$token][3]; - - // Fixed number of args eg. TIME($i, $j, $k). - if ($args >= 0) { - return pack("Cv", $this->ptg['ptgFuncV'], $this->functions[$token][0]); - } - // Variable number of args eg. SUM($i, $j, $k, ..). - if ($args == -1) { - return pack("CCv", $this->ptg['ptgFuncVarV'], $num_args, $this->functions[$token][0]); - } - } - - /** - * Convert an Excel range such as A1:D4 to a ptgRefV. - * - * @access private - * @param string $range An Excel range in the A1:A2 - * @param int $class - */ - private function convertRange2d($range, $class = 0) - { - - // TODO: possible class value 0,1,2 check Formula.pm - // Split the range into 2 cell refs - if (preg_match('/^(\$)?([A-Ia-i]?[A-Za-z])(\$)?(\d+)\:(\$)?([A-Ia-i]?[A-Za-z])(\$)?(\d+)$/', $range)) { - list($cell1, $cell2) = explode(':', $range); - } else { - // TODO: use real error codes - throw new PHPExcel_Writer_Exception("Unknown range separator"); - } - - // Convert the cell references - list($row1, $col1) = $this->cellToPackedRowcol($cell1); - list($row2, $col2) = $this->cellToPackedRowcol($cell2); - - // The ptg value depends on the class of the ptg. - if ($class == 0) { - $ptgArea = pack("C", $this->ptg['ptgArea']); - } elseif ($class == 1) { - $ptgArea = pack("C", $this->ptg['ptgAreaV']); - } elseif ($class == 2) { - $ptgArea = pack("C", $this->ptg['ptgAreaA']); - } else { - // TODO: use real error codes - throw new PHPExcel_Writer_Exception("Unknown class $class"); - } - return $ptgArea . $row1 . $row2 . $col1. $col2; - } - - /** - * Convert an Excel 3d range such as "Sheet1!A1:D4" or "Sheet1:Sheet2!A1:D4" to - * a ptgArea3d. - * - * @access private - * @param string $token An Excel range in the Sheet1!A1:A2 format. - * @return mixed The packed ptgArea3d token on success. - */ - private function convertRange3d($token) - { -// $class = 0; // formulas like Sheet1!$A$1:$A$2 in list type data validation need this class (0x3B) - - // Split the ref at the ! symbol - list($ext_ref, $range) = explode('!', $token); - - // Convert the external reference part (different for BIFF8) - $ext_ref = $this->getRefIndex($ext_ref); - - // Split the range into 2 cell refs - list($cell1, $cell2) = explode(':', $range); - - // Convert the cell references - if (preg_match("/^(\\$)?[A-Ia-i]?[A-Za-z](\\$)?(\d+)$/", $cell1)) { - list($row1, $col1) = $this->cellToPackedRowcol($cell1); - list($row2, $col2) = $this->cellToPackedRowcol($cell2); - } else { // It's a rows range (like 26:27) - list($row1, $col1, $row2, $col2) = $this->rangeToPackedRange($cell1.':'.$cell2); - } - - // The ptg value depends on the class of the ptg. -// if ($class == 0) { - $ptgArea = pack("C", $this->ptg['ptgArea3d']); -// } elseif ($class == 1) { -// $ptgArea = pack("C", $this->ptg['ptgArea3dV']); -// } elseif ($class == 2) { -// $ptgArea = pack("C", $this->ptg['ptgArea3dA']); -// } else { -// throw new PHPExcel_Writer_Exception("Unknown class $class"); -// } - - return $ptgArea . $ext_ref . $row1 . $row2 . $col1. $col2; - } - - /** - * Convert an Excel reference such as A1, $B2, C$3 or $D$4 to a ptgRefV. - * - * @access private - * @param string $cell An Excel cell reference - * @return string The cell in packed() format with the corresponding ptg - */ - private function convertRef2d($cell) - { -// $class = 2; // as far as I know, this is magick. - - // Convert the cell reference - $cell_array = $this->cellToPackedRowcol($cell); - list($row, $col) = $cell_array; - - // The ptg value depends on the class of the ptg. -// if ($class == 0) { -// $ptgRef = pack("C", $this->ptg['ptgRef']); -// } elseif ($class == 1) { -// $ptgRef = pack("C", $this->ptg['ptgRefV']); -// } elseif ($class == 2) { - $ptgRef = pack("C", $this->ptg['ptgRefA']); -// } else { -// // TODO: use real error codes -// throw new PHPExcel_Writer_Exception("Unknown class $class"); -// } - return $ptgRef.$row.$col; - } - - /** - * Convert an Excel 3d reference such as "Sheet1!A1" or "Sheet1:Sheet2!A1" to a - * ptgRef3d. - * - * @access private - * @param string $cell An Excel cell reference - * @return mixed The packed ptgRef3d token on success. - */ - private function convertRef3d($cell) - { -// $class = 2; // as far as I know, this is magick. - - // Split the ref at the ! symbol - list($ext_ref, $cell) = explode('!', $cell); - - // Convert the external reference part (different for BIFF8) - $ext_ref = $this->getRefIndex($ext_ref); - - // Convert the cell reference part - list($row, $col) = $this->cellToPackedRowcol($cell); - - // The ptg value depends on the class of the ptg. -// if ($class == 0) { -// $ptgRef = pack("C", $this->ptg['ptgRef3d']); -// } elseif ($class == 1) { -// $ptgRef = pack("C", $this->ptg['ptgRef3dV']); -// } elseif ($class == 2) { - $ptgRef = pack("C", $this->ptg['ptgRef3dA']); -// } else { -// throw new PHPExcel_Writer_Exception("Unknown class $class"); -// } - - return $ptgRef . $ext_ref. $row . $col; - } - - /** - * Convert an error code to a ptgErr - * - * @access private - * @param string $errorCode The error code for conversion to its ptg value - * @return string The error code ptgErr - */ - private function convertError($errorCode) - { - switch ($errorCode) { - case '#NULL!': - return pack("C", 0x00); - case '#DIV/0!': - return pack("C", 0x07); - case '#VALUE!': - return pack("C", 0x0F); - case '#REF!': - return pack("C", 0x17); - case '#NAME?': - return pack("C", 0x1D); - case '#NUM!': - return pack("C", 0x24); - case '#N/A': - return pack("C", 0x2A); - } - return pack("C", 0xFF); - } - - /** - * Convert the sheet name part of an external reference, for example "Sheet1" or - * "Sheet1:Sheet2", to a packed structure. - * - * @access private - * @param string $ext_ref The name of the external reference - * @return string The reference index in packed() format - */ - private function packExtRef($ext_ref) - { - $ext_ref = preg_replace("/^'/", '', $ext_ref); // Remove leading ' if any. - $ext_ref = preg_replace("/'$/", '', $ext_ref); // Remove trailing ' if any. - - // Check if there is a sheet range eg., Sheet1:Sheet2. - if (preg_match("/:/", $ext_ref)) { - list($sheet_name1, $sheet_name2) = explode(':', $ext_ref); - - $sheet1 = $this->getSheetIndex($sheet_name1); - if ($sheet1 == -1) { - throw new PHPExcel_Writer_Exception("Unknown sheet name $sheet_name1 in formula"); - } - $sheet2 = $this->getSheetIndex($sheet_name2); - if ($sheet2 == -1) { - throw new PHPExcel_Writer_Exception("Unknown sheet name $sheet_name2 in formula"); - } - - // Reverse max and min sheet numbers if necessary - if ($sheet1 > $sheet2) { - list($sheet1, $sheet2) = array($sheet2, $sheet1); - } - } else { // Single sheet name only. - $sheet1 = $this->getSheetIndex($ext_ref); - if ($sheet1 == -1) { - throw new PHPExcel_Writer_Exception("Unknown sheet name $ext_ref in formula"); - } - $sheet2 = $sheet1; - } - - // References are stored relative to 0xFFFF. - $offset = -1 - $sheet1; - - return pack('vdvv', $offset, 0x00, $sheet1, $sheet2); - } - - /** - * Look up the REF index that corresponds to an external sheet name - * (or range). If it doesn't exist yet add it to the workbook's references - * array. It assumes all sheet names given must exist. - * - * @access private - * @param string $ext_ref The name of the external reference - * @return mixed The reference index in packed() format on success - */ - private function getRefIndex($ext_ref) - { - $ext_ref = preg_replace("/^'/", '', $ext_ref); // Remove leading ' if any. - $ext_ref = preg_replace("/'$/", '', $ext_ref); // Remove trailing ' if any. - $ext_ref = str_replace('\'\'', '\'', $ext_ref); // Replace escaped '' with ' - - // Check if there is a sheet range eg., Sheet1:Sheet2. - if (preg_match("/:/", $ext_ref)) { - list($sheet_name1, $sheet_name2) = explode(':', $ext_ref); - - $sheet1 = $this->getSheetIndex($sheet_name1); - if ($sheet1 == -1) { - throw new PHPExcel_Writer_Exception("Unknown sheet name $sheet_name1 in formula"); - } - $sheet2 = $this->getSheetIndex($sheet_name2); - if ($sheet2 == -1) { - throw new PHPExcel_Writer_Exception("Unknown sheet name $sheet_name2 in formula"); - } - - // Reverse max and min sheet numbers if necessary - if ($sheet1 > $sheet2) { - list($sheet1, $sheet2) = array($sheet2, $sheet1); - } - } else { // Single sheet name only. - $sheet1 = $this->getSheetIndex($ext_ref); - if ($sheet1 == -1) { - throw new PHPExcel_Writer_Exception("Unknown sheet name $ext_ref in formula"); - } - $sheet2 = $sheet1; - } - - // assume all references belong to this document - $supbook_index = 0x00; - $ref = pack('vvv', $supbook_index, $sheet1, $sheet2); - $totalreferences = count($this->references); - $index = -1; - for ($i = 0; $i < $totalreferences; ++$i) { - if ($ref == $this->references[$i]) { - $index = $i; - break; - } - } - // if REF was not found add it to references array - if ($index == -1) { - $this->references[$totalreferences] = $ref; - $index = $totalreferences; - } - - return pack('v', $index); - } - - /** - * Look up the index that corresponds to an external sheet name. The hash of - * sheet names is updated by the addworksheet() method of the - * PHPExcel_Writer_Excel5_Workbook class. - * - * @access private - * @param string $sheet_name Sheet name - * @return integer The sheet index, -1 if the sheet was not found - */ - private function getSheetIndex($sheet_name) - { - if (!isset($this->externalSheets[$sheet_name])) { - return -1; - } else { - return $this->externalSheets[$sheet_name]; - } - } - - /** - * This method is used to update the array of sheet names. It is - * called by the addWorksheet() method of the - * PHPExcel_Writer_Excel5_Workbook class. - * - * @access public - * @see PHPExcel_Writer_Excel5_Workbook::addWorksheet() - * @param string $name The name of the worksheet being added - * @param integer $index The index of the worksheet being added - */ - public function setExtSheet($name, $index) - { - $this->externalSheets[$name] = $index; - } - - /** - * pack() row and column into the required 3 or 4 byte format. - * - * @access private - * @param string $cell The Excel cell reference to be packed - * @return array Array containing the row and column in packed() format - */ - private function cellToPackedRowcol($cell) - { - $cell = strtoupper($cell); - list($row, $col, $row_rel, $col_rel) = $this->cellToRowcol($cell); - if ($col >= 256) { - throw new PHPExcel_Writer_Exception("Column in: $cell greater than 255"); - } - if ($row >= 65536) { - throw new PHPExcel_Writer_Exception("Row in: $cell greater than 65536 "); - } - - // Set the high bits to indicate if row or col are relative. - $col |= $col_rel << 14; - $col |= $row_rel << 15; - $col = pack('v', $col); - - $row = pack('v', $row); - - return array($row, $col); - } - - /** - * pack() row range into the required 3 or 4 byte format. - * Just using maximum col/rows, which is probably not the correct solution - * - * @access private - * @param string $range The Excel range to be packed - * @return array Array containing (row1,col1,row2,col2) in packed() format - */ - private function rangeToPackedRange($range) - { - preg_match('/(\$)?(\d+)\:(\$)?(\d+)/', $range, $match); - // return absolute rows if there is a $ in the ref - $row1_rel = empty($match[1]) ? 1 : 0; - $row1 = $match[2]; - $row2_rel = empty($match[3]) ? 1 : 0; - $row2 = $match[4]; - // Convert 1-index to zero-index - --$row1; - --$row2; - // Trick poor inocent Excel - $col1 = 0; - $col2 = 65535; // FIXME: maximum possible value for Excel 5 (change this!!!) - - // FIXME: this changes for BIFF8 - if (($row1 >= 65536) or ($row2 >= 65536)) { - throw new PHPExcel_Writer_Exception("Row in: $range greater than 65536 "); - } - - // Set the high bits to indicate if rows are relative. - $col1 |= $row1_rel << 15; - $col2 |= $row2_rel << 15; - $col1 = pack('v', $col1); - $col2 = pack('v', $col2); - - $row1 = pack('v', $row1); - $row2 = pack('v', $row2); - - return array($row1, $col1, $row2, $col2); - } - - /** - * Convert an Excel cell reference such as A1 or $B2 or C$3 or $D$4 to a zero - * indexed row and column number. Also returns two (0,1) values to indicate - * whether the row or column are relative references. - * - * @access private - * @param string $cell The Excel cell reference in A1 format. - * @return array - */ - private function cellToRowcol($cell) - { - preg_match('/(\$)?([A-I]?[A-Z])(\$)?(\d+)/', $cell, $match); - // return absolute column if there is a $ in the ref - $col_rel = empty($match[1]) ? 1 : 0; - $col_ref = $match[2]; - $row_rel = empty($match[3]) ? 1 : 0; - $row = $match[4]; - - // Convert base26 column string to a number. - $expn = strlen($col_ref) - 1; - $col = 0; - $col_ref_length = strlen($col_ref); - for ($i = 0; $i < $col_ref_length; ++$i) { - $col += (ord($col_ref{$i}) - 64) * pow(26, $expn); - --$expn; - } - - // Convert 1-index to zero-index - --$row; - --$col; - - return array($row, $col, $row_rel, $col_rel); - } - - /** - * Advance to the next valid token. - * - * @access private - */ - private function advance() - { - $i = $this->currentCharacter; - $formula_length = strlen($this->formula); - // eat up white spaces - if ($i < $formula_length) { - while ($this->formula{$i} == " ") { - ++$i; - } - - if ($i < ($formula_length - 1)) { - $this->lookAhead = $this->formula{$i+1}; - } - $token = ''; - } - - while ($i < $formula_length) { - $token .= $this->formula{$i}; - - if ($i < ($formula_length - 1)) { - $this->lookAhead = $this->formula{$i+1}; - } else { - $this->lookAhead = ''; - } - - if ($this->match($token) != '') { - //if ($i < strlen($this->formula) - 1) { - // $this->lookAhead = $this->formula{$i+1}; - //} - $this->currentCharacter = $i + 1; - $this->currentToken = $token; - return 1; - } - - if ($i < ($formula_length - 2)) { - $this->lookAhead = $this->formula{$i+2}; - } else { // if we run out of characters lookAhead becomes empty - $this->lookAhead = ''; - } - ++$i; - } - //die("Lexical error ".$this->currentCharacter); - } - - /** - * Checks if it's a valid token. - * - * @access private - * @param mixed $token The token to check. - * @return mixed The checked token or false on failure - */ - private function match($token) - { - switch ($token) { - case "+": - case "-": - case "*": - case "/": - case "(": - case ")": - case ",": - case ";": - case ">=": - case "<=": - case "=": - case "<>": - case "^": - case "&": - case "%": - return $token; - break; - case ">": - if ($this->lookAhead == '=') { // it's a GE token - break; - } - return $token; - break; - case "<": - // it's a LE or a NE token - if (($this->lookAhead == '=') or ($this->lookAhead == '>')) { - break; - } - return $token; - break; - default: - // if it's a reference A1 or $A$1 or $A1 or A$1 - if (preg_match('/^\$?[A-Ia-i]?[A-Za-z]\$?[0-9]+$/', $token) and !preg_match("/[0-9]/", $this->lookAhead) and ($this->lookAhead != ':') and ($this->lookAhead != '.') and ($this->lookAhead != '!')) { - return $token; - } elseif (preg_match("/^" . self::REGEX_SHEET_TITLE_UNQUOTED . "(\:" . self::REGEX_SHEET_TITLE_UNQUOTED . ")?\!\\$?[A-Ia-i]?[A-Za-z]\\$?[0-9]+$/u", $token) and !preg_match("/[0-9]/", $this->lookAhead) and ($this->lookAhead != ':') and ($this->lookAhead != '.')) { - // If it's an external reference (Sheet1!A1 or Sheet1:Sheet2!A1 or Sheet1!$A$1 or Sheet1:Sheet2!$A$1) - return $token; - } elseif (preg_match("/^'" . self::REGEX_SHEET_TITLE_QUOTED . "(\:" . self::REGEX_SHEET_TITLE_QUOTED . ")?'\!\\$?[A-Ia-i]?[A-Za-z]\\$?[0-9]+$/u", $token) and !preg_match("/[0-9]/", $this->lookAhead) and ($this->lookAhead != ':') and ($this->lookAhead != '.')) { - // If it's an external reference ('Sheet1'!A1 or 'Sheet1:Sheet2'!A1 or 'Sheet1'!$A$1 or 'Sheet1:Sheet2'!$A$1) - return $token; - } elseif (preg_match('/^(\$)?[A-Ia-i]?[A-Za-z](\$)?[0-9]+:(\$)?[A-Ia-i]?[A-Za-z](\$)?[0-9]+$/', $token) && !preg_match("/[0-9]/", $this->lookAhead)) { - // if it's a range A1:A2 or $A$1:$A$2 - return $token; - } elseif (preg_match("/^" . self::REGEX_SHEET_TITLE_UNQUOTED . "(\:" . self::REGEX_SHEET_TITLE_UNQUOTED . ")?\!\\$?([A-Ia-i]?[A-Za-z])?\\$?[0-9]+:\\$?([A-Ia-i]?[A-Za-z])?\\$?[0-9]+$/u", $token) and !preg_match("/[0-9]/", $this->lookAhead)) { - // If it's an external range like Sheet1!A1:B2 or Sheet1:Sheet2!A1:B2 or Sheet1!$A$1:$B$2 or Sheet1:Sheet2!$A$1:$B$2 - return $token; - } elseif (preg_match("/^'" . self::REGEX_SHEET_TITLE_QUOTED . "(\:" . self::REGEX_SHEET_TITLE_QUOTED . ")?'\!\\$?([A-Ia-i]?[A-Za-z])?\\$?[0-9]+:\\$?([A-Ia-i]?[A-Za-z])?\\$?[0-9]+$/u", $token) and !preg_match("/[0-9]/", $this->lookAhead)) { - // If it's an external range like 'Sheet1'!A1:B2 or 'Sheet1:Sheet2'!A1:B2 or 'Sheet1'!$A$1:$B$2 or 'Sheet1:Sheet2'!$A$1:$B$2 - return $token; - } elseif (is_numeric($token) and (!is_numeric($token.$this->lookAhead) or ($this->lookAhead == '')) and ($this->lookAhead != '!') and ($this->lookAhead != ':')) { - // If it's a number (check that it's not a sheet name or range) - return $token; - } elseif (preg_match("/\"([^\"]|\"\"){0,255}\"/", $token) and $this->lookAhead != '"' and (substr_count($token, '"')%2 == 0)) { - // If it's a string (of maximum 255 characters) - return $token; - } elseif (preg_match("/^#[A-Z0\/]{3,5}[!?]{1}$/", $token) or $token == '#N/A') { - // If it's an error code - return $token; - } elseif (preg_match("/^[A-Z0-9\xc0-\xdc\.]+$/i", $token) and ($this->lookAhead == "(")) { - // if it's a function call - return $token; - } elseif (substr($token, -1) == ')') { - // It's an argument of some description (e.g. a named range), - // precise nature yet to be determined - return $token; - } - return ''; - } - } - - /** - * The parsing method. It parses a formula. - * - * @access public - * @param string $formula The formula to parse, without the initial equal - * sign (=). - * @return mixed true on success - */ - public function parse($formula) - { - $this->currentCharacter = 0; - $this->formula = $formula; - $this->lookAhead = isset($formula{1}) ? $formula{1} : ''; - $this->advance(); - $this->parseTree = $this->condition(); - return true; - } - - /** - * It parses a condition. It assumes the following rule: - * Cond -> Expr [(">" | "<") Expr] - * - * @access private - * @return mixed The parsed ptg'd tree on success - */ - private function condition() - { - $result = $this->expression(); - if ($this->currentToken == "<") { - $this->advance(); - $result2 = $this->expression(); - $result = $this->createTree('ptgLT', $result, $result2); - } elseif ($this->currentToken == ">") { - $this->advance(); - $result2 = $this->expression(); - $result = $this->createTree('ptgGT', $result, $result2); - } elseif ($this->currentToken == "<=") { - $this->advance(); - $result2 = $this->expression(); - $result = $this->createTree('ptgLE', $result, $result2); - } elseif ($this->currentToken == ">=") { - $this->advance(); - $result2 = $this->expression(); - $result = $this->createTree('ptgGE', $result, $result2); - } elseif ($this->currentToken == "=") { - $this->advance(); - $result2 = $this->expression(); - $result = $this->createTree('ptgEQ', $result, $result2); - } elseif ($this->currentToken == "<>") { - $this->advance(); - $result2 = $this->expression(); - $result = $this->createTree('ptgNE', $result, $result2); - } elseif ($this->currentToken == "&") { - $this->advance(); - $result2 = $this->expression(); - $result = $this->createTree('ptgConcat', $result, $result2); - } - return $result; - } - - /** - * It parses a expression. It assumes the following rule: - * Expr -> Term [("+" | "-") Term] - * -> "string" - * -> "-" Term : Negative value - * -> "+" Term : Positive value - * -> Error code - * - * @access private - * @return mixed The parsed ptg'd tree on success - */ - private function expression() - { - // If it's a string return a string node - if (preg_match("/\"([^\"]|\"\"){0,255}\"/", $this->currentToken)) { - $tmp = str_replace('""', '"', $this->currentToken); - if (($tmp == '"') || ($tmp == '')) { - // Trap for "" that has been used for an empty string - $tmp = '""'; - } - $result = $this->createTree($tmp, '', ''); - $this->advance(); - return $result; - // If it's an error code - } elseif (preg_match("/^#[A-Z0\/]{3,5}[!?]{1}$/", $this->currentToken) or $this->currentToken == '#N/A') { - $result = $this->createTree($this->currentToken, 'ptgErr', ''); - $this->advance(); - return $result; - // If it's a negative value - } elseif ($this->currentToken == "-") { - // catch "-" Term - $this->advance(); - $result2 = $this->expression(); - $result = $this->createTree('ptgUminus', $result2, ''); - return $result; - // If it's a positive value - } elseif ($this->currentToken == "+") { - // catch "+" Term - $this->advance(); - $result2 = $this->expression(); - $result = $this->createTree('ptgUplus', $result2, ''); - return $result; - } - $result = $this->term(); - while (($this->currentToken == "+") or - ($this->currentToken == "-") or - ($this->currentToken == "^")) { - /**/ - if ($this->currentToken == "+") { - $this->advance(); - $result2 = $this->term(); - $result = $this->createTree('ptgAdd', $result, $result2); - } elseif ($this->currentToken == "-") { - $this->advance(); - $result2 = $this->term(); - $result = $this->createTree('ptgSub', $result, $result2); - } else { - $this->advance(); - $result2 = $this->term(); - $result = $this->createTree('ptgPower', $result, $result2); - } - } - return $result; - } - - /** - * This function just introduces a ptgParen element in the tree, so that Excel - * doesn't get confused when working with a parenthesized formula afterwards. - * - * @access private - * @see fact() - * @return array The parsed ptg'd tree - */ - private function parenthesizedExpression() - { - $result = $this->createTree('ptgParen', $this->expression(), ''); - return $result; - } - - /** - * It parses a term. It assumes the following rule: - * Term -> Fact [("*" | "/") Fact] - * - * @access private - * @return mixed The parsed ptg'd tree on success - */ - private function term() - { - $result = $this->fact(); - while (($this->currentToken == "*") or - ($this->currentToken == "/")) { - /**/ - if ($this->currentToken == "*") { - $this->advance(); - $result2 = $this->fact(); - $result = $this->createTree('ptgMul', $result, $result2); - } else { - $this->advance(); - $result2 = $this->fact(); - $result = $this->createTree('ptgDiv', $result, $result2); - } - } - return $result; - } - - /** - * It parses a factor. It assumes the following rule: - * Fact -> ( Expr ) - * | CellRef - * | CellRange - * | Number - * | Function - * - * @access private - * @return mixed The parsed ptg'd tree on success - */ - private function fact() - { - if ($this->currentToken == "(") { - $this->advance(); // eat the "(" - $result = $this->parenthesizedExpression(); - if ($this->currentToken != ")") { - throw new PHPExcel_Writer_Exception("')' token expected."); - } - $this->advance(); // eat the ")" - return $result; - } - // if it's a reference - if (preg_match('/^\$?[A-Ia-i]?[A-Za-z]\$?[0-9]+$/', $this->currentToken)) { - $result = $this->createTree($this->currentToken, '', ''); - $this->advance(); - return $result; - } elseif (preg_match("/^" . self::REGEX_SHEET_TITLE_UNQUOTED . "(\:" . self::REGEX_SHEET_TITLE_UNQUOTED . ")?\!\\$?[A-Ia-i]?[A-Za-z]\\$?[0-9]+$/u", $this->currentToken)) { - // If it's an external reference (Sheet1!A1 or Sheet1:Sheet2!A1 or Sheet1!$A$1 or Sheet1:Sheet2!$A$1) - $result = $this->createTree($this->currentToken, '', ''); - $this->advance(); - return $result; - } elseif (preg_match("/^'" . self::REGEX_SHEET_TITLE_QUOTED . "(\:" . self::REGEX_SHEET_TITLE_QUOTED . ")?'\!\\$?[A-Ia-i]?[A-Za-z]\\$?[0-9]+$/u", $this->currentToken)) { - // If it's an external reference ('Sheet1'!A1 or 'Sheet1:Sheet2'!A1 or 'Sheet1'!$A$1 or 'Sheet1:Sheet2'!$A$1) - $result = $this->createTree($this->currentToken, '', ''); - $this->advance(); - return $result; - } elseif (preg_match('/^(\$)?[A-Ia-i]?[A-Za-z](\$)?[0-9]+:(\$)?[A-Ia-i]?[A-Za-z](\$)?[0-9]+$/', $this->currentToken) or - preg_match('/^(\$)?[A-Ia-i]?[A-Za-z](\$)?[0-9]+\.\.(\$)?[A-Ia-i]?[A-Za-z](\$)?[0-9]+$/', $this->currentToken)) { - // if it's a range A1:B2 or $A$1:$B$2 - // must be an error? - $result = $this->createTree($this->currentToken, '', ''); - $this->advance(); - return $result; - } elseif (preg_match("/^" . self::REGEX_SHEET_TITLE_UNQUOTED . "(\:" . self::REGEX_SHEET_TITLE_UNQUOTED . ")?\!\\$?([A-Ia-i]?[A-Za-z])?\\$?[0-9]+:\\$?([A-Ia-i]?[A-Za-z])?\\$?[0-9]+$/u", $this->currentToken)) { - // If it's an external range (Sheet1!A1:B2 or Sheet1:Sheet2!A1:B2 or Sheet1!$A$1:$B$2 or Sheet1:Sheet2!$A$1:$B$2) - // must be an error? - //$result = $this->currentToken; - $result = $this->createTree($this->currentToken, '', ''); - $this->advance(); - return $result; - } elseif (preg_match("/^'" . self::REGEX_SHEET_TITLE_QUOTED . "(\:" . self::REGEX_SHEET_TITLE_QUOTED . ")?'\!\\$?([A-Ia-i]?[A-Za-z])?\\$?[0-9]+:\\$?([A-Ia-i]?[A-Za-z])?\\$?[0-9]+$/u", $this->currentToken)) { - // If it's an external range ('Sheet1'!A1:B2 or 'Sheet1'!A1:B2 or 'Sheet1'!$A$1:$B$2 or 'Sheet1'!$A$1:$B$2) - // must be an error? - //$result = $this->currentToken; - $result = $this->createTree($this->currentToken, '', ''); - $this->advance(); - return $result; - } elseif (is_numeric($this->currentToken)) { - // If it's a number or a percent - if ($this->lookAhead == '%') { - $result = $this->createTree('ptgPercent', $this->currentToken, ''); - $this->advance(); // Skip the percentage operator once we've pre-built that tree - } else { - $result = $this->createTree($this->currentToken, '', ''); - } - $this->advance(); - return $result; - } elseif (preg_match("/^[A-Z0-9\xc0-\xdc\.]+$/i", $this->currentToken)) { - // if it's a function call - $result = $this->func(); - return $result; - } - throw new PHPExcel_Writer_Exception("Syntax error: ".$this->currentToken.", lookahead: ".$this->lookAhead.", current char: ".$this->currentCharacter); - } - - /** - * It parses a function call. It assumes the following rule: - * Func -> ( Expr [,Expr]* ) - * - * @access private - * @return mixed The parsed ptg'd tree on success - */ - private function func() - { - $num_args = 0; // number of arguments received - $function = strtoupper($this->currentToken); - $result = ''; // initialize result - $this->advance(); - $this->advance(); // eat the "(" - while ($this->currentToken != ')') { - /**/ - if ($num_args > 0) { - if ($this->currentToken == "," || $this->currentToken == ";") { - $this->advance(); // eat the "," or ";" - } else { - throw new PHPExcel_Writer_Exception("Syntax error: comma expected in function $function, arg #{$num_args}"); - } - $result2 = $this->condition(); - $result = $this->createTree('arg', $result, $result2); - } else { // first argument - $result2 = $this->condition(); - $result = $this->createTree('arg', '', $result2); - } - ++$num_args; - } - if (!isset($this->functions[$function])) { - throw new PHPExcel_Writer_Exception("Function $function() doesn't exist"); - } - $args = $this->functions[$function][1]; - // If fixed number of args eg. TIME($i, $j, $k). Check that the number of args is valid. - if (($args >= 0) and ($args != $num_args)) { - throw new PHPExcel_Writer_Exception("Incorrect number of arguments in function $function() "); - } - - $result = $this->createTree($function, $result, $num_args); - $this->advance(); // eat the ")" - return $result; - } - - /** - * Creates a tree. In fact an array which may have one or two arrays (sub-trees) - * as elements. - * - * @access private - * @param mixed $value The value of this node. - * @param mixed $left The left array (sub-tree) or a final node. - * @param mixed $right The right array (sub-tree) or a final node. - * @return array A tree - */ - private function createTree($value, $left, $right) - { - return array('value' => $value, 'left' => $left, 'right' => $right); - } - - /** - * Builds a string containing the tree in reverse polish notation (What you - * would use in a HP calculator stack). - * The following tree: - * - * + - * / \ - * 2 3 - * - * produces: "23+" - * - * The following tree: - * - * + - * / \ - * 3 * - * / \ - * 6 A1 - * - * produces: "36A1*+" - * - * In fact all operands, functions, references, etc... are written as ptg's - * - * @access public - * @param array $tree The optional tree to convert. - * @return string The tree in reverse polish notation - */ - public function toReversePolish($tree = array()) - { - $polish = ""; // the string we are going to return - if (empty($tree)) { // If it's the first call use parseTree - $tree = $this->parseTree; - } - - if (is_array($tree['left'])) { - $converted_tree = $this->toReversePolish($tree['left']); - $polish .= $converted_tree; - } elseif ($tree['left'] != '') { // It's a final node - $converted_tree = $this->convert($tree['left']); - $polish .= $converted_tree; - } - if (is_array($tree['right'])) { - $converted_tree = $this->toReversePolish($tree['right']); - $polish .= $converted_tree; - } elseif ($tree['right'] != '') { // It's a final node - $converted_tree = $this->convert($tree['right']); - $polish .= $converted_tree; - } - // if it's a function convert it here (so we can set it's arguments) - if (preg_match("/^[A-Z0-9\xc0-\xdc\.]+$/", $tree['value']) and - !preg_match('/^([A-Ia-i]?[A-Za-z])(\d+)$/', $tree['value']) and - !preg_match("/^[A-Ia-i]?[A-Za-z](\d+)\.\.[A-Ia-i]?[A-Za-z](\d+)$/", $tree['value']) and - !is_numeric($tree['value']) and - !isset($this->ptg[$tree['value']])) { - // left subtree for a function is always an array. - if ($tree['left'] != '') { - $left_tree = $this->toReversePolish($tree['left']); - } else { - $left_tree = ''; - } - // add it's left subtree and return. - return $left_tree.$this->convertFunction($tree['value'], $tree['right']); - } else { - $converted_tree = $this->convert($tree['value']); - } - $polish .= $converted_tree; - return $polish; - } -} diff --git a/Utils/PHPExcel/Writer/Excel5/Workbook.php b/Utils/PHPExcel/Writer/Excel5/Workbook.php deleted file mode 100644 index 8b06843..0000000 --- a/Utils/PHPExcel/Writer/Excel5/Workbook.php +++ /dev/null @@ -1,1444 +0,0 @@ -<?php - -/** - * PHPExcel_Writer_Excel5_Workbook - * - * Copyright (c) 2006 - 2015 PHPExcel - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - * - * @category PHPExcel - * @package PHPExcel_Writer_Excel5 - * @copyright Copyright (c) 2006 - 2015 PHPExcel (http://www.codeplex.com/PHPExcel) - * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL - * @version ##VERSION##, ##DATE## - */ - -// Original file header of PEAR::Spreadsheet_Excel_Writer_Workbook (used as the base for this class): -// ----------------------------------------------------------------------------------------- -// /* -// * Module written/ported by Xavier Noguer <xnoguer@rezebra.com> -// * -// * The majority of this is _NOT_ my code. I simply ported it from the -// * PERL Spreadsheet::WriteExcel module. -// * -// * The author of the Spreadsheet::WriteExcel module is John McNamara -// * <jmcnamara@cpan.org> -// * -// * I _DO_ maintain this code, and John McNamara has nothing to do with the -// * porting of this code to PHP. Any questions directly related to this -// * class library should be directed to me. -// * -// * License Information: -// * -// * Spreadsheet_Excel_Writer: A library for generating Excel Spreadsheets -// * Copyright (c) 2002-2003 Xavier Noguer xnoguer@rezebra.com -// * -// * This library is free software; you can redistribute it and/or -// * modify it under the terms of the GNU Lesser General Public -// * License as published by the Free Software Foundation; either -// * version 2.1 of the License, or (at your option) any later version. -// * -// * This library is distributed in the hope that it will be useful, -// * but WITHOUT ANY WARRANTY; without even the implied warranty of -// * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// * Lesser General Public License for more details. -// * -// * You should have received a copy of the GNU Lesser General Public -// * License along with this library; if not, write to the Free Software -// * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -// */ -class PHPExcel_Writer_Excel5_Workbook extends PHPExcel_Writer_Excel5_BIFFwriter -{ - /** - * Formula parser - * - * @var PHPExcel_Writer_Excel5_Parser - */ - private $parser; - - /** - * The BIFF file size for the workbook. - * @var integer - * @see calcSheetOffsets() - */ - private $biffSize; - - /** - * XF Writers - * @var PHPExcel_Writer_Excel5_Xf[] - */ - private $xfWriters = array(); - - /** - * Array containing the colour palette - * @var array - */ - private $palette; - - /** - * The codepage indicates the text encoding used for strings - * @var integer - */ - private $codepage; - - /** - * The country code used for localization - * @var integer - */ - private $countryCode; - - /** - * Workbook - * @var PHPExcel - */ - private $phpExcel; - - /** - * Fonts writers - * - * @var PHPExcel_Writer_Excel5_Font[] - */ - private $fontWriters = array(); - - /** - * Added fonts. Maps from font's hash => index in workbook - * - * @var array - */ - private $addedFonts = array(); - - /** - * Shared number formats - * - * @var array - */ - private $numberFormats = array(); - - /** - * Added number formats. Maps from numberFormat's hash => index in workbook - * - * @var array - */ - private $addedNumberFormats = array(); - - /** - * Sizes of the binary worksheet streams - * - * @var array - */ - private $worksheetSizes = array(); - - /** - * Offsets of the binary worksheet streams relative to the start of the global workbook stream - * - * @var array - */ - private $worksheetOffsets = array(); - - /** - * Total number of shared strings in workbook - * - * @var int - */ - private $stringTotal; - - /** - * Number of unique shared strings in workbook - * - * @var int - */ - private $stringUnique; - - /** - * Array of unique shared strings in workbook - * - * @var array - */ - private $stringTable; - - /** - * Color cache - */ - private $colors; - - /** - * Escher object corresponding to MSODRAWINGGROUP - * - * @var PHPExcel_Shared_Escher - */ - private $escher; - - - /** - * Class constructor - * - * @param PHPExcel $phpExcel The Workbook - * @param int &$str_total Total number of strings - * @param int &$str_unique Total number of unique strings - * @param array &$str_table String Table - * @param array &$colors Colour Table - * @param mixed $parser The formula parser created for the Workbook - */ - public function __construct(PHPExcel $phpExcel = null, &$str_total, &$str_unique, &$str_table, &$colors, $parser) - { - // It needs to call its parent's constructor explicitly - parent::__construct(); - - $this->parser = $parser; - $this->biffSize = 0; - $this->palette = array(); - $this->countryCode = -1; - - $this->stringTotal = &$str_total; - $this->stringUnique = &$str_unique; - $this->stringTable = &$str_table; - $this->colors = &$colors; - $this->setPaletteXl97(); - - $this->phpExcel = $phpExcel; - - // set BIFFwriter limit for CONTINUE records - // $this->_limit = 8224; - $this->codepage = 0x04B0; - - // Add empty sheets and Build color cache - $countSheets = $phpExcel->getSheetCount(); - for ($i = 0; $i < $countSheets; ++$i) { - $phpSheet = $phpExcel->getSheet($i); - - $this->parser->setExtSheet($phpSheet->getTitle(), $i); // Register worksheet name with parser - - $supbook_index = 0x00; - $ref = pack('vvv', $supbook_index, $i, $i); - $this->parser->references[] = $ref; // Register reference with parser - - // Sheet tab colors? - if ($phpSheet->isTabColorSet()) { - $this->addColor($phpSheet->getTabColor()->getRGB()); - } - } - - } - - /** - * Add a new XF writer - * - * @param PHPExcel_Style - * @param boolean Is it a style XF? - * @return int Index to XF record - */ - public function addXfWriter($style, $isStyleXf = false) - { - $xfWriter = new PHPExcel_Writer_Excel5_Xf($style); - $xfWriter->setIsStyleXf($isStyleXf); - - // Add the font if not already added - $fontIndex = $this->addFont($style->getFont()); - - // Assign the font index to the xf record - $xfWriter->setFontIndex($fontIndex); - - // Background colors, best to treat these after the font so black will come after white in custom palette - $xfWriter->setFgColor($this->addColor($style->getFill()->getStartColor()->getRGB())); - $xfWriter->setBgColor($this->addColor($style->getFill()->getEndColor()->getRGB())); - $xfWriter->setBottomColor($this->addColor($style->getBorders()->getBottom()->getColor()->getRGB())); - $xfWriter->setTopColor($this->addColor($style->getBorders()->getTop()->getColor()->getRGB())); - $xfWriter->setRightColor($this->addColor($style->getBorders()->getRight()->getColor()->getRGB())); - $xfWriter->setLeftColor($this->addColor($style->getBorders()->getLeft()->getColor()->getRGB())); - $xfWriter->setDiagColor($this->addColor($style->getBorders()->getDiagonal()->getColor()->getRGB())); - - // Add the number format if it is not a built-in one and not already added - if ($style->getNumberFormat()->getBuiltInFormatCode() === false) { - $numberFormatHashCode = $style->getNumberFormat()->getHashCode(); - - if (isset($this->addedNumberFormats[$numberFormatHashCode])) { - $numberFormatIndex = $this->addedNumberFormats[$numberFormatHashCode]; - } else { - $numberFormatIndex = 164 + count($this->numberFormats); - $this->numberFormats[$numberFormatIndex] = $style->getNumberFormat(); - $this->addedNumberFormats[$numberFormatHashCode] = $numberFormatIndex; - } - } else { - $numberFormatIndex = (int) $style->getNumberFormat()->getBuiltInFormatCode(); - } - - // Assign the number format index to xf record - $xfWriter->setNumberFormatIndex($numberFormatIndex); - - $this->xfWriters[] = $xfWriter; - - $xfIndex = count($this->xfWriters) - 1; - return $xfIndex; - } - - /** - * Add a font to added fonts - * - * @param PHPExcel_Style_Font $font - * @return int Index to FONT record - */ - public function addFont(PHPExcel_Style_Font $font) - { - $fontHashCode = $font->getHashCode(); - if (isset($this->addedFonts[$fontHashCode])) { - $fontIndex = $this->addedFonts[$fontHashCode]; - } else { - $countFonts = count($this->fontWriters); - $fontIndex = ($countFonts < 4) ? $countFonts : $countFonts + 1; - - $fontWriter = new PHPExcel_Writer_Excel5_Font($font); - $fontWriter->setColorIndex($this->addColor($font->getColor()->getRGB())); - $this->fontWriters[] = $fontWriter; - - $this->addedFonts[$fontHashCode] = $fontIndex; - } - return $fontIndex; - } - - /** - * Alter color palette adding a custom color - * - * @param string $rgb E.g. 'FF00AA' - * @return int Color index - */ - private function addColor($rgb) - { - if (!isset($this->colors[$rgb])) { - if (count($this->colors) < 57) { - // then we add a custom color altering the palette - $colorIndex = 8 + count($this->colors); - $this->palette[$colorIndex] = - array( - hexdec(substr($rgb, 0, 2)), - hexdec(substr($rgb, 2, 2)), - hexdec(substr($rgb, 4)), - 0 - ); - $this->colors[$rgb] = $colorIndex; - } else { - // no room for more custom colors, just map to black - $colorIndex = 0; - } - } else { - // fetch already added custom color - $colorIndex = $this->colors[$rgb]; - } - - return $colorIndex; - } - - /** - * Sets the colour palette to the Excel 97+ default. - * - * @access private - */ - private function setPaletteXl97() - { - $this->palette = array( - 0x08 => array(0x00, 0x00, 0x00, 0x00), - 0x09 => array(0xff, 0xff, 0xff, 0x00), - 0x0A => array(0xff, 0x00, 0x00, 0x00), - 0x0B => array(0x00, 0xff, 0x00, 0x00), - 0x0C => array(0x00, 0x00, 0xff, 0x00), - 0x0D => array(0xff, 0xff, 0x00, 0x00), - 0x0E => array(0xff, 0x00, 0xff, 0x00), - 0x0F => array(0x00, 0xff, 0xff, 0x00), - 0x10 => array(0x80, 0x00, 0x00, 0x00), - 0x11 => array(0x00, 0x80, 0x00, 0x00), - 0x12 => array(0x00, 0x00, 0x80, 0x00), - 0x13 => array(0x80, 0x80, 0x00, 0x00), - 0x14 => array(0x80, 0x00, 0x80, 0x00), - 0x15 => array(0x00, 0x80, 0x80, 0x00), - 0x16 => array(0xc0, 0xc0, 0xc0, 0x00), - 0x17 => array(0x80, 0x80, 0x80, 0x00), - 0x18 => array(0x99, 0x99, 0xff, 0x00), - 0x19 => array(0x99, 0x33, 0x66, 0x00), - 0x1A => array(0xff, 0xff, 0xcc, 0x00), - 0x1B => array(0xcc, 0xff, 0xff, 0x00), - 0x1C => array(0x66, 0x00, 0x66, 0x00), - 0x1D => array(0xff, 0x80, 0x80, 0x00), - 0x1E => array(0x00, 0x66, 0xcc, 0x00), - 0x1F => array(0xcc, 0xcc, 0xff, 0x00), - 0x20 => array(0x00, 0x00, 0x80, 0x00), - 0x21 => array(0xff, 0x00, 0xff, 0x00), - 0x22 => array(0xff, 0xff, 0x00, 0x00), - 0x23 => array(0x00, 0xff, 0xff, 0x00), - 0x24 => array(0x80, 0x00, 0x80, 0x00), - 0x25 => array(0x80, 0x00, 0x00, 0x00), - 0x26 => array(0x00, 0x80, 0x80, 0x00), - 0x27 => array(0x00, 0x00, 0xff, 0x00), - 0x28 => array(0x00, 0xcc, 0xff, 0x00), - 0x29 => array(0xcc, 0xff, 0xff, 0x00), - 0x2A => array(0xcc, 0xff, 0xcc, 0x00), - 0x2B => array(0xff, 0xff, 0x99, 0x00), - 0x2C => array(0x99, 0xcc, 0xff, 0x00), - 0x2D => array(0xff, 0x99, 0xcc, 0x00), - 0x2E => array(0xcc, 0x99, 0xff, 0x00), - 0x2F => array(0xff, 0xcc, 0x99, 0x00), - 0x30 => array(0x33, 0x66, 0xff, 0x00), - 0x31 => array(0x33, 0xcc, 0xcc, 0x00), - 0x32 => array(0x99, 0xcc, 0x00, 0x00), - 0x33 => array(0xff, 0xcc, 0x00, 0x00), - 0x34 => array(0xff, 0x99, 0x00, 0x00), - 0x35 => array(0xff, 0x66, 0x00, 0x00), - 0x36 => array(0x66, 0x66, 0x99, 0x00), - 0x37 => array(0x96, 0x96, 0x96, 0x00), - 0x38 => array(0x00, 0x33, 0x66, 0x00), - 0x39 => array(0x33, 0x99, 0x66, 0x00), - 0x3A => array(0x00, 0x33, 0x00, 0x00), - 0x3B => array(0x33, 0x33, 0x00, 0x00), - 0x3C => array(0x99, 0x33, 0x00, 0x00), - 0x3D => array(0x99, 0x33, 0x66, 0x00), - 0x3E => array(0x33, 0x33, 0x99, 0x00), - 0x3F => array(0x33, 0x33, 0x33, 0x00), - ); - } - - /** - * Assemble worksheets into a workbook and send the BIFF data to an OLE - * storage. - * - * @param array $pWorksheetSizes The sizes in bytes of the binary worksheet streams - * @return string Binary data for workbook stream - */ - public function writeWorkbook($pWorksheetSizes = null) - { - $this->worksheetSizes = $pWorksheetSizes; - - // Calculate the number of selected worksheet tabs and call the finalization - // methods for each worksheet - $total_worksheets = $this->phpExcel->getSheetCount(); - - // Add part 1 of the Workbook globals, what goes before the SHEET records - $this->storeBof(0x0005); - $this->writeCodepage(); - $this->writeWindow1(); - - $this->writeDateMode(); - $this->writeAllFonts(); - $this->writeAllNumberFormats(); - $this->writeAllXfs(); - $this->writeAllStyles(); - $this->writePalette(); - - // Prepare part 3 of the workbook global stream, what goes after the SHEET records - $part3 = ''; - if ($this->countryCode != -1) { - $part3 .= $this->writeCountry(); - } - $part3 .= $this->writeRecalcId(); - - $part3 .= $this->writeSupbookInternal(); - /* TODO: store external SUPBOOK records and XCT and CRN records - in case of external references for BIFF8 */ - $part3 .= $this->writeExternalsheetBiff8(); - $part3 .= $this->writeAllDefinedNamesBiff8(); - $part3 .= $this->writeMsoDrawingGroup(); - $part3 .= $this->writeSharedStringsTable(); - - $part3 .= $this->writeEof(); - - // Add part 2 of the Workbook globals, the SHEET records - $this->calcSheetOffsets(); - for ($i = 0; $i < $total_worksheets; ++$i) { - $this->writeBoundSheet($this->phpExcel->getSheet($i), $this->worksheetOffsets[$i]); - } - - // Add part 3 of the Workbook globals - $this->_data .= $part3; - - return $this->_data; - } - - /** - * Calculate offsets for Worksheet BOF records. - * - * @access private - */ - private function calcSheetOffsets() - { - $boundsheet_length = 10; // fixed length for a BOUNDSHEET record - - // size of Workbook globals part 1 + 3 - $offset = $this->_datasize; - - // add size of Workbook globals part 2, the length of the SHEET records - $total_worksheets = count($this->phpExcel->getAllSheets()); - foreach ($this->phpExcel->getWorksheetIterator() as $sheet) { - $offset += $boundsheet_length + strlen(PHPExcel_Shared_String::UTF8toBIFF8UnicodeShort($sheet->getTitle())); - } - - // add the sizes of each of the Sheet substreams, respectively - for ($i = 0; $i < $total_worksheets; ++$i) { - $this->worksheetOffsets[$i] = $offset; - $offset += $this->worksheetSizes[$i]; - } - $this->biffSize = $offset; - } - - /** - * Store the Excel FONT records. - */ - private function writeAllFonts() - { - foreach ($this->fontWriters as $fontWriter) { - $this->append($fontWriter->writeFont()); - } - } - - /** - * Store user defined numerical formats i.e. FORMAT records - */ - private function writeAllNumberFormats() - { - foreach ($this->numberFormats as $numberFormatIndex => $numberFormat) { - $this->writeNumberFormat($numberFormat->getFormatCode(), $numberFormatIndex); - } - } - - /** - * Write all XF records. - */ - private function writeAllXfs() - { - foreach ($this->xfWriters as $xfWriter) { - $this->append($xfWriter->writeXf()); - } - } - - /** - * Write all STYLE records. - */ - private function writeAllStyles() - { - $this->writeStyle(); - } - - /** - * Write the EXTERNCOUNT and EXTERNSHEET records. These are used as indexes for - * the NAME records. - */ - private function writeExternals() - { - $countSheets = $this->phpExcel->getSheetCount(); - // Create EXTERNCOUNT with number of worksheets - $this->writeExternalCount($countSheets); - - // Create EXTERNSHEET for each worksheet - for ($i = 0; $i < $countSheets; ++$i) { - $this->writeExternalSheet($this->phpExcel->getSheet($i)->getTitle()); - } - } - - /** - * Write the NAME record to define the print area and the repeat rows and cols. - */ - private function writeNames() - { - // total number of sheets - $total_worksheets = $this->phpExcel->getSheetCount(); - - // Create the print area NAME records - for ($i = 0; $i < $total_worksheets; ++$i) { - $sheetSetup = $this->phpExcel->getSheet($i)->getPageSetup(); - // Write a Name record if the print area has been defined - if ($sheetSetup->isPrintAreaSet()) { - // Print area - $printArea = PHPExcel_Cell::splitRange($sheetSetup->getPrintArea()); - $printArea = $printArea[0]; - $printArea[0] = PHPExcel_Cell::coordinateFromString($printArea[0]); - $printArea[1] = PHPExcel_Cell::coordinateFromString($printArea[1]); - - $print_rowmin = $printArea[0][1] - 1; - $print_rowmax = $printArea[1][1] - 1; - $print_colmin = PHPExcel_Cell::columnIndexFromString($printArea[0][0]) - 1; - $print_colmax = PHPExcel_Cell::columnIndexFromString($printArea[1][0]) - 1; - - $this->writeNameShort( - $i, // sheet index - 0x06, // NAME type - $print_rowmin, - $print_rowmax, - $print_colmin, - $print_colmax - ); - } - } - - // Create the print title NAME records - for ($i = 0; $i < $total_worksheets; ++$i) { - $sheetSetup = $this->phpExcel->getSheet($i)->getPageSetup(); - - // simultaneous repeatColumns repeatRows - if ($sheetSetup->isColumnsToRepeatAtLeftSet() && $sheetSetup->isRowsToRepeatAtTopSet()) { - $repeat = $sheetSetup->getColumnsToRepeatAtLeft(); - $colmin = PHPExcel_Cell::columnIndexFromString($repeat[0]) - 1; - $colmax = PHPExcel_Cell::columnIndexFromString($repeat[1]) - 1; - - $repeat = $sheetSetup->getRowsToRepeatAtTop(); - $rowmin = $repeat[0] - 1; - $rowmax = $repeat[1] - 1; - - $this->writeNameLong( - $i, // sheet index - 0x07, // NAME type - $rowmin, - $rowmax, - $colmin, - $colmax - ); - - // (exclusive) either repeatColumns or repeatRows - } elseif ($sheetSetup->isColumnsToRepeatAtLeftSet() || $sheetSetup->isRowsToRepeatAtTopSet()) { - // Columns to repeat - if ($sheetSetup->isColumnsToRepeatAtLeftSet()) { - $repeat = $sheetSetup->getColumnsToRepeatAtLeft(); - $colmin = PHPExcel_Cell::columnIndexFromString($repeat[0]) - 1; - $colmax = PHPExcel_Cell::columnIndexFromString($repeat[1]) - 1; - } else { - $colmin = 0; - $colmax = 255; - } - - // Rows to repeat - if ($sheetSetup->isRowsToRepeatAtTopSet()) { - $repeat = $sheetSetup->getRowsToRepeatAtTop(); - $rowmin = $repeat[0] - 1; - $rowmax = $repeat[1] - 1; - } else { - $rowmin = 0; - $rowmax = 65535; - } - - $this->writeNameShort( - $i, // sheet index - 0x07, // NAME type - $rowmin, - $rowmax, - $colmin, - $colmax - ); - } - } - } - - /** - * Writes all the DEFINEDNAME records (BIFF8). - * So far this is only used for repeating rows/columns (print titles) and print areas - */ - private function writeAllDefinedNamesBiff8() - { - $chunk = ''; - - // Named ranges - if (count($this->phpExcel->getNamedRanges()) > 0) { - // Loop named ranges - $namedRanges = $this->phpExcel->getNamedRanges(); - foreach ($namedRanges as $namedRange) { - // Create absolute coordinate - $range = PHPExcel_Cell::splitRange($namedRange->getRange()); - for ($i = 0; $i < count($range); $i++) { - $range[$i][0] = '\'' . str_replace("'", "''", $namedRange->getWorksheet()->getTitle()) . '\'!' . PHPExcel_Cell::absoluteCoordinate($range[$i][0]); - if (isset($range[$i][1])) { - $range[$i][1] = PHPExcel_Cell::absoluteCoordinate($range[$i][1]); - } - } - $range = PHPExcel_Cell::buildRange($range); // e.g. Sheet1!$A$1:$B$2 - - // parse formula - try { - $error = $this->parser->parse($range); - $formulaData = $this->parser->toReversePolish(); - - // make sure tRef3d is of type tRef3dR (0x3A) - if (isset($formulaData{0}) and ($formulaData{0} == "\x7A" or $formulaData{0} == "\x5A")) { - $formulaData = "\x3A" . substr($formulaData, 1); - } - - if ($namedRange->getLocalOnly()) { - // local scope - $scope = $this->phpExcel->getIndex($namedRange->getScope()) + 1; - } else { - // global scope - $scope = 0; - } - $chunk .= $this->writeData($this->writeDefinedNameBiff8($namedRange->getName(), $formulaData, $scope, false)); - - } catch (PHPExcel_Exception $e) { - // do nothing - } - } - } - - // total number of sheets - $total_worksheets = $this->phpExcel->getSheetCount(); - - // write the print titles (repeating rows, columns), if any - for ($i = 0; $i < $total_worksheets; ++$i) { - $sheetSetup = $this->phpExcel->getSheet($i)->getPageSetup(); - // simultaneous repeatColumns repeatRows - if ($sheetSetup->isColumnsToRepeatAtLeftSet() && $sheetSetup->isRowsToRepeatAtTopSet()) { - $repeat = $sheetSetup->getColumnsToRepeatAtLeft(); - $colmin = PHPExcel_Cell::columnIndexFromString($repeat[0]) - 1; - $colmax = PHPExcel_Cell::columnIndexFromString($repeat[1]) - 1; - - $repeat = $sheetSetup->getRowsToRepeatAtTop(); - $rowmin = $repeat[0] - 1; - $rowmax = $repeat[1] - 1; - - // construct formula data manually - $formulaData = pack('Cv', 0x29, 0x17); // tMemFunc - $formulaData .= pack('Cvvvvv', 0x3B, $i, 0, 65535, $colmin, $colmax); // tArea3d - $formulaData .= pack('Cvvvvv', 0x3B, $i, $rowmin, $rowmax, 0, 255); // tArea3d - $formulaData .= pack('C', 0x10); // tList - - // store the DEFINEDNAME record - $chunk .= $this->writeData($this->writeDefinedNameBiff8(pack('C', 0x07), $formulaData, $i + 1, true)); - - // (exclusive) either repeatColumns or repeatRows - } elseif ($sheetSetup->isColumnsToRepeatAtLeftSet() || $sheetSetup->isRowsToRepeatAtTopSet()) { - // Columns to repeat - if ($sheetSetup->isColumnsToRepeatAtLeftSet()) { - $repeat = $sheetSetup->getColumnsToRepeatAtLeft(); - $colmin = PHPExcel_Cell::columnIndexFromString($repeat[0]) - 1; - $colmax = PHPExcel_Cell::columnIndexFromString($repeat[1]) - 1; - } else { - $colmin = 0; - $colmax = 255; - } - // Rows to repeat - if ($sheetSetup->isRowsToRepeatAtTopSet()) { - $repeat = $sheetSetup->getRowsToRepeatAtTop(); - $rowmin = $repeat[0] - 1; - $rowmax = $repeat[1] - 1; - } else { - $rowmin = 0; - $rowmax = 65535; - } - - // construct formula data manually because parser does not recognize absolute 3d cell references - $formulaData = pack('Cvvvvv', 0x3B, $i, $rowmin, $rowmax, $colmin, $colmax); - - // store the DEFINEDNAME record - $chunk .= $this->writeData($this->writeDefinedNameBiff8(pack('C', 0x07), $formulaData, $i + 1, true)); - } - } - - // write the print areas, if any - for ($i = 0; $i < $total_worksheets; ++$i) { - $sheetSetup = $this->phpExcel->getSheet($i)->getPageSetup(); - if ($sheetSetup->isPrintAreaSet()) { - // Print area, e.g. A3:J6,H1:X20 - $printArea = PHPExcel_Cell::splitRange($sheetSetup->getPrintArea()); - $countPrintArea = count($printArea); - - $formulaData = ''; - for ($j = 0; $j < $countPrintArea; ++$j) { - $printAreaRect = $printArea[$j]; // e.g. A3:J6 - $printAreaRect[0] = PHPExcel_Cell::coordinateFromString($printAreaRect[0]); - $printAreaRect[1] = PHPExcel_Cell::coordinateFromString($printAreaRect[1]); - - $print_rowmin = $printAreaRect[0][1] - 1; - $print_rowmax = $printAreaRect[1][1] - 1; - $print_colmin = PHPExcel_Cell::columnIndexFromString($printAreaRect[0][0]) - 1; - $print_colmax = PHPExcel_Cell::columnIndexFromString($printAreaRect[1][0]) - 1; - - // construct formula data manually because parser does not recognize absolute 3d cell references - $formulaData .= pack('Cvvvvv', 0x3B, $i, $print_rowmin, $print_rowmax, $print_colmin, $print_colmax); - - if ($j > 0) { - $formulaData .= pack('C', 0x10); // list operator token ',' - } - } - - // store the DEFINEDNAME record - $chunk .= $this->writeData($this->writeDefinedNameBiff8(pack('C', 0x06), $formulaData, $i + 1, true)); - } - } - - // write autofilters, if any - for ($i = 0; $i < $total_worksheets; ++$i) { - $sheetAutoFilter = $this->phpExcel->getSheet($i)->getAutoFilter(); - $autoFilterRange = $sheetAutoFilter->getRange(); - if (!empty($autoFilterRange)) { - $rangeBounds = PHPExcel_Cell::rangeBoundaries($autoFilterRange); - - //Autofilter built in name - $name = pack('C', 0x0D); - - $chunk .= $this->writeData($this->writeShortNameBiff8($name, $i + 1, $rangeBounds, true)); - } - } - - return $chunk; - } - - /** - * Write a DEFINEDNAME record for BIFF8 using explicit binary formula data - * - * @param string $name The name in UTF-8 - * @param string $formulaData The binary formula data - * @param string $sheetIndex 1-based sheet index the defined name applies to. 0 = global - * @param boolean $isBuiltIn Built-in name? - * @return string Complete binary record data - */ - private function writeDefinedNameBiff8($name, $formulaData, $sheetIndex = 0, $isBuiltIn = false) - { - $record = 0x0018; - - // option flags - $options = $isBuiltIn ? 0x20 : 0x00; - - // length of the name, character count - $nlen = PHPExcel_Shared_String::CountCharacters($name); - - // name with stripped length field - $name = substr(PHPExcel_Shared_String::UTF8toBIFF8UnicodeLong($name), 2); - - // size of the formula (in bytes) - $sz = strlen($formulaData); - - // combine the parts - $data = pack('vCCvvvCCCC', $options, 0, $nlen, $sz, 0, $sheetIndex, 0, 0, 0, 0) - . $name . $formulaData; - $length = strlen($data); - - $header = pack('vv', $record, $length); - - return $header . $data; - } - - /** - * Write a short NAME record - * - * @param string $name - * @param string $sheetIndex 1-based sheet index the defined name applies to. 0 = global - * @param integer[][] $rangeBounds range boundaries - * @param boolean $isHidden - * @return string Complete binary record data - * */ - private function writeShortNameBiff8($name, $sheetIndex = 0, $rangeBounds, $isHidden = false) - { - $record = 0x0018; - - // option flags - $options = ($isHidden ? 0x21 : 0x00); - - $extra = pack( - 'Cvvvvv', - 0x3B, - $sheetIndex - 1, - $rangeBounds[0][1] - 1, - $rangeBounds[1][1] - 1, - $rangeBounds[0][0] - 1, - $rangeBounds[1][0] - 1 - ); - - // size of the formula (in bytes) - $sz = strlen($extra); - - // combine the parts - $data = pack('vCCvvvCCCCC', $options, 0, 1, $sz, 0, $sheetIndex, 0, 0, 0, 0, 0) - . $name . $extra; - $length = strlen($data); - - $header = pack('vv', $record, $length); - - return $header . $data; - } - - /** - * Stores the CODEPAGE biff record. - */ - private function writeCodepage() - { - $record = 0x0042; // Record identifier - $length = 0x0002; // Number of bytes to follow - $cv = $this->codepage; // The code page - - $header = pack('vv', $record, $length); - $data = pack('v', $cv); - - $this->append($header . $data); - } - - /** - * Write Excel BIFF WINDOW1 record. - */ - private function writeWindow1() - { - $record = 0x003D; // Record identifier - $length = 0x0012; // Number of bytes to follow - - $xWn = 0x0000; // Horizontal position of window - $yWn = 0x0000; // Vertical position of window - $dxWn = 0x25BC; // Width of window - $dyWn = 0x1572; // Height of window - - $grbit = 0x0038; // Option flags - - // not supported by PHPExcel, so there is only one selected sheet, the active - $ctabsel = 1; // Number of workbook tabs selected - - $wTabRatio = 0x0258; // Tab to scrollbar ratio - - // not supported by PHPExcel, set to 0 - $itabFirst = 0; // 1st displayed worksheet - $itabCur = $this->phpExcel->getActiveSheetIndex(); // Active worksheet - - $header = pack("vv", $record, $length); - $data = pack("vvvvvvvvv", $xWn, $yWn, $dxWn, $dyWn, $grbit, $itabCur, $itabFirst, $ctabsel, $wTabRatio); - $this->append($header . $data); - } - - /** - * Writes Excel BIFF BOUNDSHEET record. - * - * @param PHPExcel_Worksheet $sheet Worksheet name - * @param integer $offset Location of worksheet BOF - */ - private function writeBoundSheet($sheet, $offset) - { - $sheetname = $sheet->getTitle(); - $record = 0x0085; // Record identifier - - // sheet state - switch ($sheet->getSheetState()) { - case PHPExcel_Worksheet::SHEETSTATE_VISIBLE: - $ss = 0x00; - break; - case PHPExcel_Worksheet::SHEETSTATE_HIDDEN: - $ss = 0x01; - break; - case PHPExcel_Worksheet::SHEETSTATE_VERYHIDDEN: - $ss = 0x02; - break; - default: - $ss = 0x00; - break; - } - - // sheet type - $st = 0x00; - - $grbit = 0x0000; // Visibility and sheet type - - $data = pack("VCC", $offset, $ss, $st); - $data .= PHPExcel_Shared_String::UTF8toBIFF8UnicodeShort($sheetname); - - $length = strlen($data); - $header = pack("vv", $record, $length); - $this->append($header . $data); - } - - /** - * Write Internal SUPBOOK record - */ - private function writeSupbookInternal() - { - $record = 0x01AE; // Record identifier - $length = 0x0004; // Bytes to follow - - $header = pack("vv", $record, $length); - $data = pack("vv", $this->phpExcel->getSheetCount(), 0x0401); - return $this->writeData($header . $data); - } - - /** - * Writes the Excel BIFF EXTERNSHEET record. These references are used by - * formulas. - * - */ - private function writeExternalsheetBiff8() - { - $totalReferences = count($this->parser->references); - $record = 0x0017; // Record identifier - $length = 2 + 6 * $totalReferences; // Number of bytes to follow - - $supbook_index = 0; // FIXME: only using internal SUPBOOK record - $header = pack("vv", $record, $length); - $data = pack('v', $totalReferences); - for ($i = 0; $i < $totalReferences; ++$i) { - $data .= $this->parser->references[$i]; - } - return $this->writeData($header . $data); - } - - /** - * Write Excel BIFF STYLE records. - */ - private function writeStyle() - { - $record = 0x0293; // Record identifier - $length = 0x0004; // Bytes to follow - - $ixfe = 0x8000; // Index to cell style XF - $BuiltIn = 0x00; // Built-in style - $iLevel = 0xff; // Outline style level - - $header = pack("vv", $record, $length); - $data = pack("vCC", $ixfe, $BuiltIn, $iLevel); - $this->append($header . $data); - } - - /** - * Writes Excel FORMAT record for non "built-in" numerical formats. - * - * @param string $format Custom format string - * @param integer $ifmt Format index code - */ - private function writeNumberFormat($format, $ifmt) - { - $record = 0x041E; // Record identifier - - $numberFormatString = PHPExcel_Shared_String::UTF8toBIFF8UnicodeLong($format); - $length = 2 + strlen($numberFormatString); // Number of bytes to follow - - - $header = pack("vv", $record, $length); - $data = pack("v", $ifmt) . $numberFormatString; - $this->append($header . $data); - } - - /** - * Write DATEMODE record to indicate the date system in use (1904 or 1900). - */ - private function writeDateMode() - { - $record = 0x0022; // Record identifier - $length = 0x0002; // Bytes to follow - - $f1904 = (PHPExcel_Shared_Date::getExcelCalendar() == PHPExcel_Shared_Date::CALENDAR_MAC_1904) - ? 1 - : 0; // Flag for 1904 date system - - $header = pack("vv", $record, $length); - $data = pack("v", $f1904); - $this->append($header . $data); - } - - /** - * Write BIFF record EXTERNCOUNT to indicate the number of external sheet - * references in the workbook. - * - * Excel only stores references to external sheets that are used in NAME. - * The workbook NAME record is required to define the print area and the repeat - * rows and columns. - * - * A similar method is used in Worksheet.php for a slightly different purpose. - * - * @param integer $cxals Number of external references - */ - private function writeExternalCount($cxals) - { - $record = 0x0016; // Record identifier - $length = 0x0002; // Number of bytes to follow - - $header = pack("vv", $record, $length); - $data = pack("v", $cxals); - $this->append($header . $data); - } - - /** - * Writes the Excel BIFF EXTERNSHEET record. These references are used by - * formulas. NAME record is required to define the print area and the repeat - * rows and columns. - * - * A similar method is used in Worksheet.php for a slightly different purpose. - * - * @param string $sheetname Worksheet name - */ - private function writeExternalSheet($sheetname) - { - $record = 0x0017; // Record identifier - $length = 0x02 + strlen($sheetname); // Number of bytes to follow - - $cch = strlen($sheetname); // Length of sheet name - $rgch = 0x03; // Filename encoding - - $header = pack("vv", $record, $length); - $data = pack("CC", $cch, $rgch); - $this->append($header . $data . $sheetname); - } - - /** - * Store the NAME record in the short format that is used for storing the print - * area, repeat rows only and repeat columns only. - * - * @param integer $index Sheet index - * @param integer $type Built-in name type - * @param integer $rowmin Start row - * @param integer $rowmax End row - * @param integer $colmin Start colum - * @param integer $colmax End column - */ - private function writeNameShort($index, $type, $rowmin, $rowmax, $colmin, $colmax) - { - $record = 0x0018; // Record identifier - $length = 0x0024; // Number of bytes to follow - - $grbit = 0x0020; // Option flags - $chKey = 0x00; // Keyboard shortcut - $cch = 0x01; // Length of text name - $cce = 0x0015; // Length of text definition - $ixals = $index + 1; // Sheet index - $itab = $ixals; // Equal to ixals - $cchCustMenu = 0x00; // Length of cust menu text - $cchDescription = 0x00; // Length of description text - $cchHelptopic = 0x00; // Length of help topic text - $cchStatustext = 0x00; // Length of status bar text - $rgch = $type; // Built-in name type - - $unknown03 = 0x3b; - $unknown04 = 0xffff - $index; - $unknown05 = 0x0000; - $unknown06 = 0x0000; - $unknown07 = 0x1087; - $unknown08 = 0x8005; - - $header = pack("vv", $record, $length); - $data = pack("v", $grbit); - $data .= pack("C", $chKey); - $data .= pack("C", $cch); - $data .= pack("v", $cce); - $data .= pack("v", $ixals); - $data .= pack("v", $itab); - $data .= pack("C", $cchCustMenu); - $data .= pack("C", $cchDescription); - $data .= pack("C", $cchHelptopic); - $data .= pack("C", $cchStatustext); - $data .= pack("C", $rgch); - $data .= pack("C", $unknown03); - $data .= pack("v", $unknown04); - $data .= pack("v", $unknown05); - $data .= pack("v", $unknown06); - $data .= pack("v", $unknown07); - $data .= pack("v", $unknown08); - $data .= pack("v", $index); - $data .= pack("v", $index); - $data .= pack("v", $rowmin); - $data .= pack("v", $rowmax); - $data .= pack("C", $colmin); - $data .= pack("C", $colmax); - $this->append($header . $data); - } - - /** - * Store the NAME record in the long format that is used for storing the repeat - * rows and columns when both are specified. This shares a lot of code with - * writeNameShort() but we use a separate method to keep the code clean. - * Code abstraction for reuse can be carried too far, and I should know. ;-) - * - * @param integer $index Sheet index - * @param integer $type Built-in name type - * @param integer $rowmin Start row - * @param integer $rowmax End row - * @param integer $colmin Start colum - * @param integer $colmax End column - */ - private function writeNameLong($index, $type, $rowmin, $rowmax, $colmin, $colmax) - { - $record = 0x0018; // Record identifier - $length = 0x003d; // Number of bytes to follow - $grbit = 0x0020; // Option flags - $chKey = 0x00; // Keyboard shortcut - $cch = 0x01; // Length of text name - $cce = 0x002e; // Length of text definition - $ixals = $index + 1; // Sheet index - $itab = $ixals; // Equal to ixals - $cchCustMenu = 0x00; // Length of cust menu text - $cchDescription = 0x00; // Length of description text - $cchHelptopic = 0x00; // Length of help topic text - $cchStatustext = 0x00; // Length of status bar text - $rgch = $type; // Built-in name type - - $unknown01 = 0x29; - $unknown02 = 0x002b; - $unknown03 = 0x3b; - $unknown04 = 0xffff-$index; - $unknown05 = 0x0000; - $unknown06 = 0x0000; - $unknown07 = 0x1087; - $unknown08 = 0x8008; - - $header = pack("vv", $record, $length); - $data = pack("v", $grbit); - $data .= pack("C", $chKey); - $data .= pack("C", $cch); - $data .= pack("v", $cce); - $data .= pack("v", $ixals); - $data .= pack("v", $itab); - $data .= pack("C", $cchCustMenu); - $data .= pack("C", $cchDescription); - $data .= pack("C", $cchHelptopic); - $data .= pack("C", $cchStatustext); - $data .= pack("C", $rgch); - $data .= pack("C", $unknown01); - $data .= pack("v", $unknown02); - // Column definition - $data .= pack("C", $unknown03); - $data .= pack("v", $unknown04); - $data .= pack("v", $unknown05); - $data .= pack("v", $unknown06); - $data .= pack("v", $unknown07); - $data .= pack("v", $unknown08); - $data .= pack("v", $index); - $data .= pack("v", $index); - $data .= pack("v", 0x0000); - $data .= pack("v", 0x3fff); - $data .= pack("C", $colmin); - $data .= pack("C", $colmax); - // Row definition - $data .= pack("C", $unknown03); - $data .= pack("v", $unknown04); - $data .= pack("v", $unknown05); - $data .= pack("v", $unknown06); - $data .= pack("v", $unknown07); - $data .= pack("v", $unknown08); - $data .= pack("v", $index); - $data .= pack("v", $index); - $data .= pack("v", $rowmin); - $data .= pack("v", $rowmax); - $data .= pack("C", 0x00); - $data .= pack("C", 0xff); - // End of data - $data .= pack("C", 0x10); - $this->append($header . $data); - } - - /** - * Stores the COUNTRY record for localization - * - * @return string - */ - private function writeCountry() - { - $record = 0x008C; // Record identifier - $length = 4; // Number of bytes to follow - - $header = pack('vv', $record, $length); - /* using the same country code always for simplicity */ - $data = pack('vv', $this->countryCode, $this->countryCode); - //$this->append($header . $data); - return $this->writeData($header . $data); - } - - /** - * Write the RECALCID record - * - * @return string - */ - private function writeRecalcId() - { - $record = 0x01C1; // Record identifier - $length = 8; // Number of bytes to follow - - $header = pack('vv', $record, $length); - - // by inspection of real Excel files, MS Office Excel 2007 writes this - $data = pack('VV', 0x000001C1, 0x00001E667); - - return $this->writeData($header . $data); - } - - /** - * Stores the PALETTE biff record. - */ - private function writePalette() - { - $aref = $this->palette; - - $record = 0x0092; // Record identifier - $length = 2 + 4 * count($aref); // Number of bytes to follow - $ccv = count($aref); // Number of RGB values to follow - $data = ''; // The RGB data - - // Pack the RGB data - foreach ($aref as $color) { - foreach ($color as $byte) { - $data .= pack("C", $byte); - } - } - - $header = pack("vvv", $record, $length, $ccv); - $this->append($header . $data); - } - - /** - * Handling of the SST continue blocks is complicated by the need to include an - * additional continuation byte depending on whether the string is split between - * blocks or whether it starts at the beginning of the block. (There are also - * additional complications that will arise later when/if Rich Strings are - * supported). - * - * The Excel documentation says that the SST record should be followed by an - * EXTSST record. The EXTSST record is a hash table that is used to optimise - * access to SST. However, despite the documentation it doesn't seem to be - * required so we will ignore it. - * - * @return string Binary data - */ - private function writeSharedStringsTable() - { - // maximum size of record data (excluding record header) - $continue_limit = 8224; - - // initialize array of record data blocks - $recordDatas = array(); - - // start SST record data block with total number of strings, total number of unique strings - $recordData = pack("VV", $this->stringTotal, $this->stringUnique); - - // loop through all (unique) strings in shared strings table - foreach (array_keys($this->stringTable) as $string) { - // here $string is a BIFF8 encoded string - - // length = character count - $headerinfo = unpack("vlength/Cencoding", $string); - - // currently, this is always 1 = uncompressed - $encoding = $headerinfo["encoding"]; - - // initialize finished writing current $string - $finished = false; - - while ($finished === false) { - // normally, there will be only one cycle, but if string cannot immediately be written as is - // there will be need for more than one cylcle, if string longer than one record data block, there - // may be need for even more cycles - - if (strlen($recordData) + strlen($string) <= $continue_limit) { - // then we can write the string (or remainder of string) without any problems - $recordData .= $string; - - if (strlen($recordData) + strlen($string) == $continue_limit) { - // we close the record data block, and initialize a new one - $recordDatas[] = $recordData; - $recordData = ''; - } - - // we are finished writing this string - $finished = true; - } else { - // special treatment writing the string (or remainder of the string) - // If the string is very long it may need to be written in more than one CONTINUE record. - - // check how many bytes more there is room for in the current record - $space_remaining = $continue_limit - strlen($recordData); - - // minimum space needed - // uncompressed: 2 byte string length length field + 1 byte option flags + 2 byte character - // compressed: 2 byte string length length field + 1 byte option flags + 1 byte character - $min_space_needed = ($encoding == 1) ? 5 : 4; - - // We have two cases - // 1. space remaining is less than minimum space needed - // here we must waste the space remaining and move to next record data block - // 2. space remaining is greater than or equal to minimum space needed - // here we write as much as we can in the current block, then move to next record data block - - // 1. space remaining is less than minimum space needed - if ($space_remaining < $min_space_needed) { - // we close the block, store the block data - $recordDatas[] = $recordData; - - // and start new record data block where we start writing the string - $recordData = ''; - - // 2. space remaining is greater than or equal to minimum space needed - } else { - // initialize effective remaining space, for Unicode strings this may need to be reduced by 1, see below - $effective_space_remaining = $space_remaining; - - // for uncompressed strings, sometimes effective space remaining is reduced by 1 - if ($encoding == 1 && (strlen($string) - $space_remaining) % 2 == 1) { - --$effective_space_remaining; - } - - // one block fininshed, store the block data - $recordData .= substr($string, 0, $effective_space_remaining); - - $string = substr($string, $effective_space_remaining); // for next cycle in while loop - $recordDatas[] = $recordData; - - // start new record data block with the repeated option flags - $recordData = pack('C', $encoding); - } - } - } - } - - // Store the last record data block unless it is empty - // if there was no need for any continue records, this will be the for SST record data block itself - if (strlen($recordData) > 0) { - $recordDatas[] = $recordData; - } - - // combine into one chunk with all the blocks SST, CONTINUE,... - $chunk = ''; - foreach ($recordDatas as $i => $recordData) { - // first block should have the SST record header, remaing should have CONTINUE header - $record = ($i == 0) ? 0x00FC : 0x003C; - - $header = pack("vv", $record, strlen($recordData)); - $data = $header . $recordData; - - $chunk .= $this->writeData($data); - } - - return $chunk; - } - - /** - * Writes the MSODRAWINGGROUP record if needed. Possibly split using CONTINUE records. - */ - private function writeMsoDrawingGroup() - { - // write the Escher stream if necessary - if (isset($this->escher)) { - $writer = new PHPExcel_Writer_Excel5_Escher($this->escher); - $data = $writer->close(); - - $record = 0x00EB; - $length = strlen($data); - $header = pack("vv", $record, $length); - - return $this->writeData($header . $data); - } else { - return ''; - } - } - - /** - * Get Escher object - * - * @return PHPExcel_Shared_Escher - */ - public function getEscher() - { - return $this->escher; - } - - /** - * Set Escher object - * - * @param PHPExcel_Shared_Escher $pValue - */ - public function setEscher(PHPExcel_Shared_Escher $pValue = null) - { - $this->escher = $pValue; - } -} diff --git a/Utils/PHPExcel/Writer/Excel5/Worksheet.php b/Utils/PHPExcel/Writer/Excel5/Worksheet.php deleted file mode 100644 index 151fe1b..0000000 --- a/Utils/PHPExcel/Writer/Excel5/Worksheet.php +++ /dev/null @@ -1,4220 +0,0 @@ -<?php - -/** - * PHPExcel_Writer_Excel5_Worksheet - * - * Copyright (c) 2006 - 2015 PHPExcel - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - * - * @category PHPExcel - * @package PHPExcel_Writer_Excel5 - * @copyright Copyright (c) 2006 - 2015 PHPExcel (http://www.codeplex.com/PHPExcel) - * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL - * @version ##VERSION##, ##DATE## - */ - -// Original file header of PEAR::Spreadsheet_Excel_Writer_Worksheet (used as the base for this class): -// ----------------------------------------------------------------------------------------- -// /* -// * Module written/ported by Xavier Noguer <xnoguer@rezebra.com> -// * -// * The majority of this is _NOT_ my code. I simply ported it from the -// * PERL Spreadsheet::WriteExcel module. -// * -// * The author of the Spreadsheet::WriteExcel module is John McNamara -// * <jmcnamara@cpan.org> -// * -// * I _DO_ maintain this code, and John McNamara has nothing to do with the -// * porting of this code to PHP. Any questions directly related to this -// * class library should be directed to me. -// * -// * License Information: -// * -// * Spreadsheet_Excel_Writer: A library for generating Excel Spreadsheets -// * Copyright (c) 2002-2003 Xavier Noguer xnoguer@rezebra.com -// * -// * This library is free software; you can redistribute it and/or -// * modify it under the terms of the GNU Lesser General Public -// * License as published by the Free Software Foundation; either -// * version 2.1 of the License, or (at your option) any later version. -// * -// * This library is distributed in the hope that it will be useful, -// * but WITHOUT ANY WARRANTY; without even the implied warranty of -// * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// * Lesser General Public License for more details. -// * -// * You should have received a copy of the GNU Lesser General Public -// * License along with this library; if not, write to the Free Software -// * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -// */ -class PHPExcel_Writer_Excel5_Worksheet extends PHPExcel_Writer_Excel5_BIFFwriter -{ - /** - * Sheet object - * @var PHPExcel_Worksheet - */ - public $phpSheet; - /** - * Array of font hashes associated to FONT records index - * - * @var array - */ - public $fontHashIndex; - /** - * Formula parser - * - * @var PHPExcel_Writer_Excel5_Parser - */ - private $parser; - /** - * Maximum number of characters for a string (LABEL record in BIFF5) - * @var integer - */ - private $xlsStringMaxLength; - /** - * Array containing format information for columns - * @var array - */ - private $columnInfo; - /** - * Array containing the selected area for the worksheet - * @var array - */ - private $selection; - /** - * The active pane for the worksheet - * @var integer - */ - private $activePane; - /** - * Whether to use outline. - * @var integer - */ - private $outlineOn; - /** - * Auto outline styles. - * @var bool - */ - private $outlineStyle; - /** - * Whether to have outline summary below. - * @var bool - */ - private $outlineBelow; - /** - * Whether to have outline summary at the right. - * @var bool - */ - private $outlineRight; - /** - * Reference to the total number of strings in the workbook - * @var integer - */ - private $stringTotal; - /** - * Reference to the number of unique strings in the workbook - * @var integer - */ - private $stringUnique; - /** - * Reference to the array containing all the unique strings in the workbook - * @var array - */ - private $stringTable; - /** - * Color cache - */ - private $colors; - /** - * Index of first used row (at least 0) - * @var int - */ - private $firstRowIndex; - /** - * Index of last used row. (no used rows means -1) - * @var int - */ - private $lastRowIndex; - /** - * Index of first used column (at least 0) - * @var int - */ - private $firstColumnIndex; - /** - * Index of last used column (no used columns means -1) - * @var int - */ - private $lastColumnIndex; - /** - * Count cell style Xfs - * - * @var int - */ - private $countCellStyleXfs; - /** - * Escher object corresponding to MSODRAWING - * - * @var PHPExcel_Shared_Escher - */ - private $escher; - - /** - * Constructor - * - * @param int &$str_total Total number of strings - * @param int &$str_unique Total number of unique strings - * @param array &$str_table String Table - * @param array &$colors Colour Table - * @param mixed $parser The formula parser created for the Workbook - * @param boolean $preCalculateFormulas Flag indicating whether formulas should be calculated or just written - * @param string $phpSheet The worksheet to write - * @param PHPExcel_Worksheet $phpSheet - */ - public function __construct(&$str_total, &$str_unique, &$str_table, &$colors, $parser, $preCalculateFormulas, $phpSheet) - { - // It needs to call its parent's constructor explicitly - parent::__construct(); - - // change BIFFwriter limit for CONTINUE records -// $this->_limit = 8224; - - - $this->_preCalculateFormulas = $preCalculateFormulas; - $this->stringTotal = &$str_total; - $this->stringUnique = &$str_unique; - $this->stringTable = &$str_table; - $this->colors = &$colors; - $this->parser = $parser; - - $this->phpSheet = $phpSheet; - - //$this->ext_sheets = array(); - //$this->offset = 0; - $this->xlsStringMaxLength = 255; - $this->columnInfo = array(); - $this->selection = array(0,0,0,0); - $this->activePane = 3; - - $this->_print_headers = 0; - - $this->outlineStyle = 0; - $this->outlineBelow = 1; - $this->outlineRight = 1; - $this->outlineOn = 1; - - $this->fontHashIndex = array(); - - // calculate values for DIMENSIONS record - $minR = 1; - $minC = 'A'; - - $maxR = $this->phpSheet->getHighestRow(); - $maxC = $this->phpSheet->getHighestColumn(); - - // Determine lowest and highest column and row -// $this->firstRowIndex = ($minR > 65535) ? 65535 : $minR; - $this->lastRowIndex = ($maxR > 65535) ? 65535 : $maxR ; - - $this->firstColumnIndex = PHPExcel_Cell::columnIndexFromString($minC); - $this->lastColumnIndex = PHPExcel_Cell::columnIndexFromString($maxC); - -// if ($this->firstColumnIndex > 255) $this->firstColumnIndex = 255; - if ($this->lastColumnIndex > 255) { - $this->lastColumnIndex = 255; - } - - $this->countCellStyleXfs = count($phpSheet->getParent()->getCellStyleXfCollection()); - } - - /** - * Add data to the beginning of the workbook (note the reverse order) - * and to the end of the workbook. - * - * @access public - * @see PHPExcel_Writer_Excel5_Workbook::storeWorkbook() - */ - public function close() - { - $phpSheet = $this->phpSheet; - - $num_sheets = $phpSheet->getParent()->getSheetCount(); - - // Write BOF record - $this->storeBof(0x0010); - - // Write PRINTHEADERS - $this->writePrintHeaders(); - - // Write PRINTGRIDLINES - $this->writePrintGridlines(); - - // Write GRIDSET - $this->writeGridset(); - - // Calculate column widths - $phpSheet->calculateColumnWidths(); - - // Column dimensions - if (($defaultWidth = $phpSheet->getDefaultColumnDimension()->getWidth()) < 0) { - $defaultWidth = PHPExcel_Shared_Font::getDefaultColumnWidthByFont($phpSheet->getParent()->getDefaultStyle()->getFont()); - } - - $columnDimensions = $phpSheet->getColumnDimensions(); - $maxCol = $this->lastColumnIndex -1; - for ($i = 0; $i <= $maxCol; ++$i) { - $hidden = 0; - $level = 0; - $xfIndex = 15; // there are 15 cell style Xfs - - $width = $defaultWidth; - - $columnLetter = PHPExcel_Cell::stringFromColumnIndex($i); - if (isset($columnDimensions[$columnLetter])) { - $columnDimension = $columnDimensions[$columnLetter]; - if ($columnDimension->getWidth() >= 0) { - $width = $columnDimension->getWidth(); - } - $hidden = $columnDimension->getVisible() ? 0 : 1; - $level = $columnDimension->getOutlineLevel(); - $xfIndex = $columnDimension->getXfIndex() + 15; // there are 15 cell style Xfs - } - - // Components of columnInfo: - // $firstcol first column on the range - // $lastcol last column on the range - // $width width to set - // $xfIndex The optional cell style Xf index to apply to the columns - // $hidden The optional hidden atribute - // $level The optional outline level - $this->columnInfo[] = array($i, $i, $width, $xfIndex, $hidden, $level); - } - - // Write GUTS - $this->writeGuts(); - - // Write DEFAULTROWHEIGHT - $this->writeDefaultRowHeight(); - // Write WSBOOL - $this->writeWsbool(); - // Write horizontal and vertical page breaks - $this->writeBreaks(); - // Write page header - $this->writeHeader(); - // Write page footer - $this->writeFooter(); - // Write page horizontal centering - $this->writeHcenter(); - // Write page vertical centering - $this->writeVcenter(); - // Write left margin - $this->writeMarginLeft(); - // Write right margin - $this->writeMarginRight(); - // Write top margin - $this->writeMarginTop(); - // Write bottom margin - $this->writeMarginBottom(); - // Write page setup - $this->writeSetup(); - // Write sheet protection - $this->writeProtect(); - // Write SCENPROTECT - $this->writeScenProtect(); - // Write OBJECTPROTECT - $this->writeObjectProtect(); - // Write sheet password - $this->writePassword(); - // Write DEFCOLWIDTH record - $this->writeDefcol(); - - // Write the COLINFO records if they exist - if (!empty($this->columnInfo)) { - $colcount = count($this->columnInfo); - for ($i = 0; $i < $colcount; ++$i) { - $this->writeColinfo($this->columnInfo[$i]); - } - } - $autoFilterRange = $phpSheet->getAutoFilter()->getRange(); - if (!empty($autoFilterRange)) { - // Write AUTOFILTERINFO - $this->writeAutoFilterInfo(); - } - - // Write sheet dimensions - $this->writeDimensions(); - - // Row dimensions - foreach ($phpSheet->getRowDimensions() as $rowDimension) { - $xfIndex = $rowDimension->getXfIndex() + 15; // there are 15 cellXfs - $this->writeRow($rowDimension->getRowIndex() - 1, $rowDimension->getRowHeight(), $xfIndex, ($rowDimension->getVisible() ? '0' : '1'), $rowDimension->getOutlineLevel()); - } - - // Write Cells - foreach ($phpSheet->getCellCollection() as $cellID) { - $cell = $phpSheet->getCell($cellID); - $row = $cell->getRow() - 1; - $column = PHPExcel_Cell::columnIndexFromString($cell->getColumn()) - 1; - - // Don't break Excel! -// if ($row + 1 > 65536 or $column + 1 > 256) { - if ($row > 65535 || $column > 255) { - break; - } - - // Write cell value - $xfIndex = $cell->getXfIndex() + 15; // there are 15 cell style Xfs - - $cVal = $cell->getValue(); - if ($cVal instanceof PHPExcel_RichText) { - // $this->writeString($row, $column, $cVal->getPlainText(), $xfIndex); - $arrcRun = array(); - $str_len = PHPExcel_Shared_String::CountCharacters($cVal->getPlainText(), 'UTF-8'); - $str_pos = 0; - $elements = $cVal->getRichTextElements(); - foreach ($elements as $element) { - // FONT Index - if ($element instanceof PHPExcel_RichText_Run) { - $str_fontidx = $this->fontHashIndex[$element->getFont()->getHashCode()]; - } else { - $str_fontidx = 0; - } - $arrcRun[] = array('strlen' => $str_pos, 'fontidx' => $str_fontidx); - // Position FROM - $str_pos += PHPExcel_Shared_String::CountCharacters($element->getText(), 'UTF-8'); - } - $this->writeRichTextString($row, $column, $cVal->getPlainText(), $xfIndex, $arrcRun); - } else { - switch ($cell->getDatatype()) { - case PHPExcel_Cell_DataType::TYPE_STRING: - case PHPExcel_Cell_DataType::TYPE_NULL: - if ($cVal === '' || $cVal === null) { - $this->writeBlank($row, $column, $xfIndex); - } else { - $this->writeString($row, $column, $cVal, $xfIndex); - } - break; - - case PHPExcel_Cell_DataType::TYPE_NUMERIC: - $this->writeNumber($row, $column, $cVal, $xfIndex); - break; - - case PHPExcel_Cell_DataType::TYPE_FORMULA: - $calculatedValue = $this->_preCalculateFormulas ? - $cell->getCalculatedValue() : null; - $this->writeFormula($row, $column, $cVal, $xfIndex, $calculatedValue); - break; - - case PHPExcel_Cell_DataType::TYPE_BOOL: - $this->writeBoolErr($row, $column, $cVal, 0, $xfIndex); - break; - - case PHPExcel_Cell_DataType::TYPE_ERROR: - $this->writeBoolErr($row, $column, self::mapErrorCode($cVal), 1, $xfIndex); - break; - - } - } - } - - // Append - $this->writeMsoDrawing(); - - // Write WINDOW2 record - $this->writeWindow2(); - - // Write PLV record - $this->writePageLayoutView(); - - // Write ZOOM record - $this->writeZoom(); - if ($phpSheet->getFreezePane()) { - $this->writePanes(); - } - - // Write SELECTION record - $this->writeSelection(); - - // Write MergedCellsTable Record - $this->writeMergedCells(); - - // Hyperlinks - foreach ($phpSheet->getHyperLinkCollection() as $coordinate => $hyperlink) { - list($column, $row) = PHPExcel_Cell::coordinateFromString($coordinate); - - $url = $hyperlink->getUrl(); - - if (strpos($url, 'sheet://') !== false) { - // internal to current workbook - $url = str_replace('sheet://', 'internal:', $url); - - } elseif (preg_match('/^(http:|https:|ftp:|mailto:)/', $url)) { - // URL - // $url = $url; - - } else { - // external (local file) - $url = 'external:' . $url; - } - - $this->writeUrl($row - 1, PHPExcel_Cell::columnIndexFromString($column) - 1, $url); - } - - $this->writeDataValidity(); - $this->writeSheetLayout(); - - // Write SHEETPROTECTION record - $this->writeSheetProtection(); - $this->writeRangeProtection(); - - $arrConditionalStyles = $phpSheet->getConditionalStylesCollection(); - if (!empty($arrConditionalStyles)) { - $arrConditional = array(); - // @todo CFRule & CFHeader - // Write CFHEADER record - $this->writeCFHeader(); - // Write ConditionalFormattingTable records - foreach ($arrConditionalStyles as $cellCoordinate => $conditionalStyles) { - foreach ($conditionalStyles as $conditional) { - if ($conditional->getConditionType() == PHPExcel_Style_Conditional::CONDITION_EXPRESSION - || $conditional->getConditionType() == PHPExcel_Style_Conditional::CONDITION_CELLIS) { - if (!in_array($conditional->getHashCode(), $arrConditional)) { - $arrConditional[] = $conditional->getHashCode(); - // Write CFRULE record - $this->writeCFRule($conditional); - } - } - } - } - } - - $this->storeEof(); - } - - /** - * Write the PRINTHEADERS BIFF record. - */ - private function writePrintHeaders() - { - $record = 0x002a; // Record identifier - $length = 0x0002; // Bytes to follow - - $fPrintRwCol = $this->_print_headers; // Boolean flag - - $header = pack("vv", $record, $length); - $data = pack("v", $fPrintRwCol); - $this->append($header . $data); - } - - /** - * Write the PRINTGRIDLINES BIFF record. Must be used in conjunction with the - * GRIDSET record. - */ - private function writePrintGridlines() - { - $record = 0x002b; // Record identifier - $length = 0x0002; // Bytes to follow - - $fPrintGrid = $this->phpSheet->getPrintGridlines() ? 1 : 0; // Boolean flag - - $header = pack("vv", $record, $length); - $data = pack("v", $fPrintGrid); - $this->append($header . $data); - } - - /** - * Write the GRIDSET BIFF record. Must be used in conjunction with the - * PRINTGRIDLINES record. - */ - private function writeGridset() - { - $record = 0x0082; // Record identifier - $length = 0x0002; // Bytes to follow - - $fGridSet = !$this->phpSheet->getPrintGridlines(); // Boolean flag - - $header = pack("vv", $record, $length); - $data = pack("v", $fGridSet); - $this->append($header . $data); - } - - /** - * Write the GUTS BIFF record. This is used to configure the gutter margins - * where Excel outline symbols are displayed. The visibility of the gutters is - * controlled by a flag in WSBOOL. - * - * @see writeWsbool() - */ - private function writeGuts() - { - $record = 0x0080; // Record identifier - $length = 0x0008; // Bytes to follow - - $dxRwGut = 0x0000; // Size of row gutter - $dxColGut = 0x0000; // Size of col gutter - - // determine maximum row outline level - $maxRowOutlineLevel = 0; - foreach ($this->phpSheet->getRowDimensions() as $rowDimension) { - $maxRowOutlineLevel = max($maxRowOutlineLevel, $rowDimension->getOutlineLevel()); - } - - $col_level = 0; - - // Calculate the maximum column outline level. The equivalent calculation - // for the row outline level is carried out in writeRow(). - $colcount = count($this->columnInfo); - for ($i = 0; $i < $colcount; ++$i) { - $col_level = max($this->columnInfo[$i][5], $col_level); - } - - // Set the limits for the outline levels (0 <= x <= 7). - $col_level = max(0, min($col_level, 7)); - - // The displayed level is one greater than the max outline levels - if ($maxRowOutlineLevel) { - ++$maxRowOutlineLevel; - } - if ($col_level) { - ++$col_level; - } - - $header = pack("vv", $record, $length); - $data = pack("vvvv", $dxRwGut, $dxColGut, $maxRowOutlineLevel, $col_level); - - $this->append($header.$data); - } - - /** - * Write BIFF record DEFAULTROWHEIGHT. - */ - private function writeDefaultRowHeight() - { - $defaultRowHeight = $this->phpSheet->getDefaultRowDimension()->getRowHeight(); - - if ($defaultRowHeight < 0) { - return; - } - - // convert to twips - $defaultRowHeight = (int) 20 * $defaultRowHeight; - - $record = 0x0225; // Record identifier - $length = 0x0004; // Number of bytes to follow - - $header = pack("vv", $record, $length); - $data = pack("vv", 1, $defaultRowHeight); - $this->append($header . $data); - } - - /** - * Write the WSBOOL BIFF record, mainly for fit-to-page. Used in conjunction - * with the SETUP record. - */ - private function writeWsbool() - { - $record = 0x0081; // Record identifier - $length = 0x0002; // Bytes to follow - $grbit = 0x0000; - - // The only option that is of interest is the flag for fit to page. So we - // set all the options in one go. - // - // Set the option flags - $grbit |= 0x0001; // Auto page breaks visible - if ($this->outlineStyle) { - $grbit |= 0x0020; // Auto outline styles - } - if ($this->phpSheet->getShowSummaryBelow()) { - $grbit |= 0x0040; // Outline summary below - } - if ($this->phpSheet->getShowSummaryRight()) { - $grbit |= 0x0080; // Outline summary right - } - if ($this->phpSheet->getPageSetup()->getFitToPage()) { - $grbit |= 0x0100; // Page setup fit to page - } - if ($this->outlineOn) { - $grbit |= 0x0400; // Outline symbols displayed - } - - $header = pack("vv", $record, $length); - $data = pack("v", $grbit); - $this->append($header . $data); - } - - /** - * Write the HORIZONTALPAGEBREAKS and VERTICALPAGEBREAKS BIFF records. - */ - private function writeBreaks() - { - // initialize - $vbreaks = array(); - $hbreaks = array(); - - foreach ($this->phpSheet->getBreaks() as $cell => $breakType) { - // Fetch coordinates - $coordinates = PHPExcel_Cell::coordinateFromString($cell); - - // Decide what to do by the type of break - switch ($breakType) { - case PHPExcel_Worksheet::BREAK_COLUMN: - // Add to list of vertical breaks - $vbreaks[] = PHPExcel_Cell::columnIndexFromString($coordinates[0]) - 1; - break; - case PHPExcel_Worksheet::BREAK_ROW: - // Add to list of horizontal breaks - $hbreaks[] = $coordinates[1]; - break; - case PHPExcel_Worksheet::BREAK_NONE: - default: - // Nothing to do - break; - } - } - - //horizontal page breaks - if (!empty($hbreaks)) { - // Sort and filter array of page breaks - sort($hbreaks, SORT_NUMERIC); - if ($hbreaks[0] == 0) { // don't use first break if it's 0 - array_shift($hbreaks); - } - - $record = 0x001b; // Record identifier - $cbrk = count($hbreaks); // Number of page breaks - $length = 2 + 6 * $cbrk; // Bytes to follow - - $header = pack("vv", $record, $length); - $data = pack("v", $cbrk); - - // Append each page break - foreach ($hbreaks as $hbreak) { - $data .= pack("vvv", $hbreak, 0x0000, 0x00ff); - } - - $this->append($header . $data); - } - - // vertical page breaks - if (!empty($vbreaks)) { - // 1000 vertical pagebreaks appears to be an internal Excel 5 limit. - // It is slightly higher in Excel 97/200, approx. 1026 - $vbreaks = array_slice($vbreaks, 0, 1000); - - // Sort and filter array of page breaks - sort($vbreaks, SORT_NUMERIC); - if ($vbreaks[0] == 0) { // don't use first break if it's 0 - array_shift($vbreaks); - } - - $record = 0x001a; // Record identifier - $cbrk = count($vbreaks); // Number of page breaks - $length = 2 + 6 * $cbrk; // Bytes to follow - - $header = pack("vv", $record, $length); - $data = pack("v", $cbrk); - - // Append each page break - foreach ($vbreaks as $vbreak) { - $data .= pack("vvv", $vbreak, 0x0000, 0xffff); - } - - $this->append($header . $data); - } - } - - /** - * Store the header caption BIFF record. - */ - private function writeHeader() - { - $record = 0x0014; // Record identifier - - /* removing for now - // need to fix character count (multibyte!) - if (strlen($this->phpSheet->getHeaderFooter()->getOddHeader()) <= 255) { - $str = $this->phpSheet->getHeaderFooter()->getOddHeader(); // header string - } else { - $str = ''; - } - */ - - $recordData = PHPExcel_Shared_String::UTF8toBIFF8UnicodeLong($this->phpSheet->getHeaderFooter()->getOddHeader()); - $length = strlen($recordData); - - $header = pack("vv", $record, $length); - - $this->append($header . $recordData); - } - - /** - * Store the footer caption BIFF record. - */ - private function writeFooter() - { - $record = 0x0015; // Record identifier - - /* removing for now - // need to fix character count (multibyte!) - if (strlen($this->phpSheet->getHeaderFooter()->getOddFooter()) <= 255) { - $str = $this->phpSheet->getHeaderFooter()->getOddFooter(); - } else { - $str = ''; - } - */ - - $recordData = PHPExcel_Shared_String::UTF8toBIFF8UnicodeLong($this->phpSheet->getHeaderFooter()->getOddFooter()); - $length = strlen($recordData); - - $header = pack("vv", $record, $length); - - $this->append($header . $recordData); - } - - /** - * Store the horizontal centering HCENTER BIFF record. - * - * @access private - */ - private function writeHcenter() - { - $record = 0x0083; // Record identifier - $length = 0x0002; // Bytes to follow - - $fHCenter = $this->phpSheet->getPageSetup()->getHorizontalCentered() ? 1 : 0; // Horizontal centering - - $header = pack("vv", $record, $length); - $data = pack("v", $fHCenter); - - $this->append($header.$data); - } - - /** - * Store the vertical centering VCENTER BIFF record. - */ - private function writeVcenter() - { - $record = 0x0084; // Record identifier - $length = 0x0002; // Bytes to follow - - $fVCenter = $this->phpSheet->getPageSetup()->getVerticalCentered() ? 1 : 0; // Horizontal centering - - $header = pack("vv", $record, $length); - $data = pack("v", $fVCenter); - $this->append($header . $data); - } - - /** - * Store the LEFTMARGIN BIFF record. - */ - private function writeMarginLeft() - { - $record = 0x0026; // Record identifier - $length = 0x0008; // Bytes to follow - - $margin = $this->phpSheet->getPageMargins()->getLeft(); // Margin in inches - - $header = pack("vv", $record, $length); - $data = pack("d", $margin); - if (self::getByteOrder()) { // if it's Big Endian - $data = strrev($data); - } - - $this->append($header . $data); - } - - /** - * Store the RIGHTMARGIN BIFF record. - */ - private function writeMarginRight() - { - $record = 0x0027; // Record identifier - $length = 0x0008; // Bytes to follow - - $margin = $this->phpSheet->getPageMargins()->getRight(); // Margin in inches - - $header = pack("vv", $record, $length); - $data = pack("d", $margin); - if (self::getByteOrder()) { // if it's Big Endian - $data = strrev($data); - } - - $this->append($header . $data); - } - - /** - * Store the TOPMARGIN BIFF record. - */ - private function writeMarginTop() - { - $record = 0x0028; // Record identifier - $length = 0x0008; // Bytes to follow - - $margin = $this->phpSheet->getPageMargins()->getTop(); // Margin in inches - - $header = pack("vv", $record, $length); - $data = pack("d", $margin); - if (self::getByteOrder()) { // if it's Big Endian - $data = strrev($data); - } - - $this->append($header . $data); - } - - /** - * Store the BOTTOMMARGIN BIFF record. - */ - private function writeMarginBottom() - { - $record = 0x0029; // Record identifier - $length = 0x0008; // Bytes to follow - - $margin = $this->phpSheet->getPageMargins()->getBottom(); // Margin in inches - - $header = pack("vv", $record, $length); - $data = pack("d", $margin); - if (self::getByteOrder()) { // if it's Big Endian - $data = strrev($data); - } - - $this->append($header . $data); - } - - /** - * Store the page setup SETUP BIFF record. - */ - private function writeSetup() - { - $record = 0x00A1; // Record identifier - $length = 0x0022; // Number of bytes to follow - - $iPaperSize = $this->phpSheet->getPageSetup()->getPaperSize(); // Paper size - - $iScale = $this->phpSheet->getPageSetup()->getScale() ? - $this->phpSheet->getPageSetup()->getScale() : 100; // Print scaling factor - - $iPageStart = 0x01; // Starting page number - $iFitWidth = (int) $this->phpSheet->getPageSetup()->getFitToWidth(); // Fit to number of pages wide - $iFitHeight = (int) $this->phpSheet->getPageSetup()->getFitToHeight(); // Fit to number of pages high - $grbit = 0x00; // Option flags - $iRes = 0x0258; // Print resolution - $iVRes = 0x0258; // Vertical print resolution - - $numHdr = $this->phpSheet->getPageMargins()->getHeader(); // Header Margin - - $numFtr = $this->phpSheet->getPageMargins()->getFooter(); // Footer Margin - $iCopies = 0x01; // Number of copies - - $fLeftToRight = 0x0; // Print over then down - - // Page orientation - $fLandscape = ($this->phpSheet->getPageSetup()->getOrientation() == PHPExcel_Worksheet_PageSetup::ORIENTATION_LANDSCAPE) ? - 0x0 : 0x1; - - $fNoPls = 0x0; // Setup not read from printer - $fNoColor = 0x0; // Print black and white - $fDraft = 0x0; // Print draft quality - $fNotes = 0x0; // Print notes - $fNoOrient = 0x0; // Orientation not set - $fUsePage = 0x0; // Use custom starting page - - $grbit = $fLeftToRight; - $grbit |= $fLandscape << 1; - $grbit |= $fNoPls << 2; - $grbit |= $fNoColor << 3; - $grbit |= $fDraft << 4; - $grbit |= $fNotes << 5; - $grbit |= $fNoOrient << 6; - $grbit |= $fUsePage << 7; - - $numHdr = pack("d", $numHdr); - $numFtr = pack("d", $numFtr); - if (self::getByteOrder()) { // if it's Big Endian - $numHdr = strrev($numHdr); - $numFtr = strrev($numFtr); - } - - $header = pack("vv", $record, $length); - $data1 = pack("vvvvvvvv", $iPaperSize, $iScale, $iPageStart, $iFitWidth, $iFitHeight, $grbit, $iRes, $iVRes); - $data2 = $numHdr.$numFtr; - $data3 = pack("v", $iCopies); - $this->append($header . $data1 . $data2 . $data3); - } - - /** - * Set the Biff PROTECT record to indicate that the worksheet is protected. - */ - private function writeProtect() - { - // Exit unless sheet protection has been specified - if (!$this->phpSheet->getProtection()->getSheet()) { - return; - } - - $record = 0x0012; // Record identifier - $length = 0x0002; // Bytes to follow - - $fLock = 1; // Worksheet is protected - - $header = pack("vv", $record, $length); - $data = pack("v", $fLock); - - $this->append($header.$data); - } - - /** - * Write SCENPROTECT - */ - private function writeScenProtect() - { - // Exit if sheet protection is not active - if (!$this->phpSheet->getProtection()->getSheet()) { - return; - } - - // Exit if scenarios are not protected - if (!$this->phpSheet->getProtection()->getScenarios()) { - return; - } - - $record = 0x00DD; // Record identifier - $length = 0x0002; // Bytes to follow - - $header = pack('vv', $record, $length); - $data = pack('v', 1); - - $this->append($header . $data); - } - - /** - * Write OBJECTPROTECT - */ - private function writeObjectProtect() - { - // Exit if sheet protection is not active - if (!$this->phpSheet->getProtection()->getSheet()) { - return; - } - - // Exit if objects are not protected - if (!$this->phpSheet->getProtection()->getObjects()) { - return; - } - - $record = 0x0063; // Record identifier - $length = 0x0002; // Bytes to follow - - $header = pack('vv', $record, $length); - $data = pack('v', 1); - - $this->append($header . $data); - } - - /** - * Write the worksheet PASSWORD record. - */ - private function writePassword() - { - // Exit unless sheet protection and password have been specified - if (!$this->phpSheet->getProtection()->getSheet() || !$this->phpSheet->getProtection()->getPassword()) { - return; - } - - $record = 0x0013; // Record identifier - $length = 0x0002; // Bytes to follow - - $wPassword = hexdec($this->phpSheet->getProtection()->getPassword()); // Encoded password - - $header = pack("vv", $record, $length); - $data = pack("v", $wPassword); - - $this->append($header . $data); - } - - /** - * Write BIFF record DEFCOLWIDTH if COLINFO records are in use. - */ - private function writeDefcol() - { - $defaultColWidth = 8; - - $record = 0x0055; // Record identifier - $length = 0x0002; // Number of bytes to follow - - $header = pack("vv", $record, $length); - $data = pack("v", $defaultColWidth); - $this->append($header . $data); - } - - /** - * Write BIFF record COLINFO to define column widths - * - * Note: The SDK says the record length is 0x0B but Excel writes a 0x0C - * length record. - * - * @param array $col_array This is the only parameter received and is composed of the following: - * 0 => First formatted column, - * 1 => Last formatted column, - * 2 => Col width (8.43 is Excel default), - * 3 => The optional XF format of the column, - * 4 => Option flags. - * 5 => Optional outline level - */ - private function writeColinfo($col_array) - { - if (isset($col_array[0])) { - $colFirst = $col_array[0]; - } - if (isset($col_array[1])) { - $colLast = $col_array[1]; - } - if (isset($col_array[2])) { - $coldx = $col_array[2]; - } else { - $coldx = 8.43; - } - if (isset($col_array[3])) { - $xfIndex = $col_array[3]; - } else { - $xfIndex = 15; - } - if (isset($col_array[4])) { - $grbit = $col_array[4]; - } else { - $grbit = 0; - } - if (isset($col_array[5])) { - $level = $col_array[5]; - } else { - $level = 0; - } - $record = 0x007D; // Record identifier - $length = 0x000C; // Number of bytes to follow - - $coldx *= 256; // Convert to units of 1/256 of a char - - $ixfe = $xfIndex; - $reserved = 0x0000; // Reserved - - $level = max(0, min($level, 7)); - $grbit |= $level << 8; - - $header = pack("vv", $record, $length); - $data = pack("vvvvvv", $colFirst, $colLast, $coldx, $ixfe, $grbit, $reserved); - $this->append($header.$data); - } - - /** - * Write the AUTOFILTERINFO BIFF record. This is used to configure the number of autofilter select used in the sheet. - */ - private function writeAutoFilterInfo() - { - $record = 0x009D; // Record identifier - $length = 0x0002; // Bytes to follow - - $rangeBounds = PHPExcel_Cell::rangeBoundaries($this->phpSheet->getAutoFilter()->getRange()); - $iNumFilters = 1 + $rangeBounds[1][0] - $rangeBounds[0][0]; - - $header = pack("vv", $record, $length); - $data = pack("v", $iNumFilters); - $this->append($header . $data); - } - - /** - * Writes Excel DIMENSIONS to define the area in which there is data. - */ - private function writeDimensions() - { - $record = 0x0200; // Record identifier - - $length = 0x000E; - $data = pack('VVvvv', $this->firstRowIndex, $this->lastRowIndex + 1, $this->firstColumnIndex, $this->lastColumnIndex + 1, 0x0000); // reserved - - $header = pack("vv", $record, $length); - $this->append($header.$data); - } - - /** - * This method is used to set the height and format for a row. - * - * @param integer $row The row to set - * @param integer $height Height we are giving to the row. - * Use null to set XF without setting height - * @param integer $xfIndex The optional cell style Xf index to apply to the columns - * @param bool $hidden The optional hidden attribute - * @param integer $level The optional outline level for row, in range [0,7] - */ - private function writeRow($row, $height, $xfIndex, $hidden = false, $level = 0) - { - $record = 0x0208; // Record identifier - $length = 0x0010; // Number of bytes to follow - - $colMic = 0x0000; // First defined column - $colMac = 0x0000; // Last defined column - $irwMac = 0x0000; // Used by Excel to optimise loading - $reserved = 0x0000; // Reserved - $grbit = 0x0000; // Option flags - $ixfe = $xfIndex; - - if ($height < 0) { - $height = null; - } - - // Use writeRow($row, null, $XF) to set XF format without setting height - if ($height != null) { - $miyRw = $height * 20; // row height - } else { - $miyRw = 0xff; // default row height is 256 - } - - // Set the options flags. fUnsynced is used to show that the font and row - // heights are not compatible. This is usually the case for WriteExcel. - // The collapsed flag 0x10 doesn't seem to be used to indicate that a row - // is collapsed. Instead it is used to indicate that the previous row is - // collapsed. The zero height flag, 0x20, is used to collapse a row. - - $grbit |= $level; - if ($hidden) { - $grbit |= 0x0030; - } - if ($height !== null) { - $grbit |= 0x0040; // fUnsynced - } - if ($xfIndex !== 0xF) { - $grbit |= 0x0080; - } - $grbit |= 0x0100; - - $header = pack("vv", $record, $length); - $data = pack("vvvvvvvv", $row, $colMic, $colMac, $miyRw, $irwMac, $reserved, $grbit, $ixfe); - $this->append($header.$data); - } - - /** - * Write a LABELSST record or a LABEL record. Which one depends on BIFF version - * It differs from writeString by the writing of rich text strings. - * @param int $row Row index (0-based) - * @param int $col Column index (0-based) - * @param string $str The string - * @param mixed $xfIndex The XF format index for the cell - * @param array $arrcRun Index to Font record and characters beginning - */ - private function writeRichTextString($row, $col, $str, $xfIndex, $arrcRun) - { - $record = 0x00FD; // Record identifier - $length = 0x000A; // Bytes to follow - $str = PHPExcel_Shared_String::UTF8toBIFF8UnicodeShort($str, $arrcRun); - - /* check if string is already present */ - if (!isset($this->stringTable[$str])) { - $this->stringTable[$str] = $this->stringUnique++; - } - $this->stringTotal++; - - $header = pack('vv', $record, $length); - $data = pack('vvvV', $row, $col, $xfIndex, $this->stringTable[$str]); - $this->append($header.$data); - } - - /** - * Write a blank cell to the specified row and column (zero indexed). - * A blank cell is used to specify formatting without adding a string - * or a number. - * - * A blank cell without a format serves no purpose. Therefore, we don't write - * a BLANK record unless a format is specified. - * - * Returns 0 : normal termination (including no format) - * -1 : insufficient number of arguments - * -2 : row or column out of range - * - * @param integer $row Zero indexed row - * @param integer $col Zero indexed column - * @param mixed $xfIndex The XF format index - */ - public function writeBlank($row, $col, $xfIndex) - { - $record = 0x0201; // Record identifier - $length = 0x0006; // Number of bytes to follow - - $header = pack("vv", $record, $length); - $data = pack("vvv", $row, $col, $xfIndex); - $this->append($header . $data); - return 0; - } - - /** - * Write a LABELSST record or a LABEL record. Which one depends on BIFF version - * - * @param int $row Row index (0-based) - * @param int $col Column index (0-based) - * @param string $str The string - * @param int $xfIndex Index to XF record - */ - private function writeString($row, $col, $str, $xfIndex) - { - $this->writeLabelSst($row, $col, $str, $xfIndex); - } - - /** - * Write a string to the specified row and column (zero indexed). - * This is the BIFF8 version (no 255 chars limit). - * $format is optional. - * Returns 0 : normal termination - * -2 : row or column out of range - * -3 : long string truncated to 255 chars - * - * @access public - * @param integer $row Zero indexed row - * @param integer $col Zero indexed column - * @param string $str The string to write - * @param mixed $xfIndex The XF format index for the cell - * @return integer - */ - private function writeLabelSst($row, $col, $str, $xfIndex) - { - $record = 0x00FD; // Record identifier - $length = 0x000A; // Bytes to follow - - $str = PHPExcel_Shared_String::UTF8toBIFF8UnicodeLong($str); - - /* check if string is already present */ - if (!isset($this->stringTable[$str])) { - $this->stringTable[$str] = $this->stringUnique++; - } - $this->stringTotal++; - - $header = pack('vv', $record, $length); - $data = pack('vvvV', $row, $col, $xfIndex, $this->stringTable[$str]); - $this->append($header.$data); - } - - /** - * Write a double to the specified row and column (zero indexed). - * An integer can be written as a double. Excel will display an - * integer. $format is optional. - * - * Returns 0 : normal termination - * -2 : row or column out of range - * - * @param integer $row Zero indexed row - * @param integer $col Zero indexed column - * @param float $num The number to write - * @param mixed $xfIndex The optional XF format - * @return integer - */ - private function writeNumber($row, $col, $num, $xfIndex) - { - $record = 0x0203; // Record identifier - $length = 0x000E; // Number of bytes to follow - - $header = pack("vv", $record, $length); - $data = pack("vvv", $row, $col, $xfIndex); - $xl_double = pack("d", $num); - if (self::getByteOrder()) { // if it's Big Endian - $xl_double = strrev($xl_double); - } - - $this->append($header.$data.$xl_double); - return(0); - } - - /** - * Write a formula to the specified row and column (zero indexed). - * The textual representation of the formula is passed to the parser in - * Parser.php which returns a packed binary string. - * - * Returns 0 : normal termination - * -1 : formula errors (bad formula) - * -2 : row or column out of range - * - * @param integer $row Zero indexed row - * @param integer $col Zero indexed column - * @param string $formula The formula text string - * @param mixed $xfIndex The XF format index - * @param mixed $calculatedValue Calculated value - * @return integer - */ - private function writeFormula($row, $col, $formula, $xfIndex, $calculatedValue) - { - $record = 0x0006; // Record identifier - - // Initialize possible additional value for STRING record that should be written after the FORMULA record? - $stringValue = null; - - // calculated value - if (isset($calculatedValue)) { - // Since we can't yet get the data type of the calculated value, - // we use best effort to determine data type - if (is_bool($calculatedValue)) { - // Boolean value - $num = pack('CCCvCv', 0x01, 0x00, (int)$calculatedValue, 0x00, 0x00, 0xFFFF); - } elseif (is_int($calculatedValue) || is_float($calculatedValue)) { - // Numeric value - $num = pack('d', $calculatedValue); - } elseif (is_string($calculatedValue)) { - if (array_key_exists($calculatedValue, PHPExcel_Cell_DataType::getErrorCodes())) { - // Error value - $num = pack('CCCvCv', 0x02, 0x00, self::mapErrorCode($calculatedValue), 0x00, 0x00, 0xFFFF); - } elseif ($calculatedValue === '') { - // Empty string (and BIFF8) - $num = pack('CCCvCv', 0x03, 0x00, 0x00, 0x00, 0x00, 0xFFFF); - } else { - // Non-empty string value (or empty string BIFF5) - $stringValue = $calculatedValue; - $num = pack('CCCvCv', 0x00, 0x00, 0x00, 0x00, 0x00, 0xFFFF); - } - } else { - // We are really not supposed to reach here - $num = pack('d', 0x00); - } - } else { - $num = pack('d', 0x00); - } - - $grbit = 0x03; // Option flags - $unknown = 0x0000; // Must be zero - - // Strip the '=' or '@' sign at the beginning of the formula string - if ($formula{0} == '=') { - $formula = substr($formula, 1); - } else { - // Error handling - $this->writeString($row, $col, 'Unrecognised character for formula'); - return -1; - } - - // Parse the formula using the parser in Parser.php - try { - $error = $this->parser->parse($formula); - $formula = $this->parser->toReversePolish(); - - $formlen = strlen($formula); // Length of the binary string - $length = 0x16 + $formlen; // Length of the record data - - $header = pack("vv", $record, $length); - - $data = pack("vvv", $row, $col, $xfIndex) - . $num - . pack("vVv", $grbit, $unknown, $formlen); - $this->append($header . $data . $formula); - - // Append also a STRING record if necessary - if ($stringValue !== null) { - $this->writeStringRecord($stringValue); - } - - return 0; - - } catch (PHPExcel_Exception $e) { - // do nothing - } - - } - - /** - * Map Error code - * - * @param string $errorCode - * @return int - */ - private static function mapErrorCode($errorCode) - { - switch ($errorCode) { - case '#NULL!': - return 0x00; - case '#DIV/0!': - return 0x07; - case '#VALUE!': - return 0x0F; - case '#REF!': - return 0x17; - case '#NAME?': - return 0x1D; - case '#NUM!': - return 0x24; - case '#N/A': - return 0x2A; - } - - return 0; - } - - /** - * Write a STRING record. This - * - * @param string $stringValue - */ - private function writeStringRecord($stringValue) - { - $record = 0x0207; // Record identifier - $data = PHPExcel_Shared_String::UTF8toBIFF8UnicodeLong($stringValue); - - $length = strlen($data); - $header = pack('vv', $record, $length); - - $this->append($header . $data); - } - - /** - * Write a boolean or an error type to the specified row and column (zero indexed) - * - * @param int $row Row index (0-based) - * @param int $col Column index (0-based) - * @param int $value - * @param boolean $isError Error or Boolean? - * @param int $xfIndex - */ - private function writeBoolErr($row, $col, $value, $isError, $xfIndex) - { - $record = 0x0205; - $length = 8; - - $header = pack("vv", $record, $length); - $data = pack("vvvCC", $row, $col, $xfIndex, $value, $isError); - $this->append($header . $data); - return 0; - } - - /** - * Write MSODRAWING record - */ - private function writeMsoDrawing() - { - // write the Escher stream if necessary - if (isset($this->escher)) { - $writer = new PHPExcel_Writer_Excel5_Escher($this->escher); - $data = $writer->close(); - $spOffsets = $writer->getSpOffsets(); - $spTypes = $writer->getSpTypes(); - // write the neccesary MSODRAWING, OBJ records - - // split the Escher stream - $spOffsets[0] = 0; - $nm = count($spOffsets) - 1; // number of shapes excluding first shape - for ($i = 1; $i <= $nm; ++$i) { - // MSODRAWING record - $record = 0x00EC; // Record identifier - - // chunk of Escher stream for one shape - $dataChunk = substr($data, $spOffsets[$i -1], $spOffsets[$i] - $spOffsets[$i - 1]); - - $length = strlen($dataChunk); - $header = pack("vv", $record, $length); - - $this->append($header . $dataChunk); - - // OBJ record - $record = 0x005D; // record identifier - $objData = ''; - - // ftCmo - if ($spTypes[$i] == 0x00C9) { - // Add ftCmo (common object data) subobject - $objData .= - pack( - 'vvvvvVVV', - 0x0015, // 0x0015 = ftCmo - 0x0012, // length of ftCmo data - 0x0014, // object type, 0x0014 = filter - $i, // object id number, Excel seems to use 1-based index, local for the sheet - 0x2101, // option flags, 0x2001 is what OpenOffice.org uses - 0, // reserved - 0, // reserved - 0 // reserved - ); - - // Add ftSbs Scroll bar subobject - $objData .= pack('vv', 0x00C, 0x0014); - $objData .= pack('H*', '0000000000000000640001000A00000010000100'); - // Add ftLbsData (List box data) subobject - $objData .= pack('vv', 0x0013, 0x1FEE); - $objData .= pack('H*', '00000000010001030000020008005700'); - } else { - // Add ftCmo (common object data) subobject - $objData .= - pack( - 'vvvvvVVV', - 0x0015, // 0x0015 = ftCmo - 0x0012, // length of ftCmo data - 0x0008, // object type, 0x0008 = picture - $i, // object id number, Excel seems to use 1-based index, local for the sheet - 0x6011, // option flags, 0x6011 is what OpenOffice.org uses - 0, // reserved - 0, // reserved - 0 // reserved - ); - } - - // ftEnd - $objData .= - pack( - 'vv', - 0x0000, // 0x0000 = ftEnd - 0x0000 // length of ftEnd data - ); - - $length = strlen($objData); - $header = pack('vv', $record, $length); - $this->append($header . $objData); - } - } - } - - /** - * Write BIFF record Window2. - */ - private function writeWindow2() - { - $record = 0x023E; // Record identifier - $length = 0x0012; - - $grbit = 0x00B6; // Option flags - $rwTop = 0x0000; // Top row visible in window - $colLeft = 0x0000; // Leftmost column visible in window - - - // The options flags that comprise $grbit - $fDspFmla = 0; // 0 - bit - $fDspGrid = $this->phpSheet->getShowGridlines() ? 1 : 0; // 1 - $fDspRwCol = $this->phpSheet->getShowRowColHeaders() ? 1 : 0; // 2 - $fFrozen = $this->phpSheet->getFreezePane() ? 1 : 0; // 3 - $fDspZeros = 1; // 4 - $fDefaultHdr = 1; // 5 - $fArabic = $this->phpSheet->getRightToLeft() ? 1 : 0; // 6 - $fDspGuts = $this->outlineOn; // 7 - $fFrozenNoSplit = 0; // 0 - bit - // no support in PHPExcel for selected sheet, therefore sheet is only selected if it is the active sheet - $fSelected = ($this->phpSheet === $this->phpSheet->getParent()->getActiveSheet()) ? 1 : 0; - $fPaged = 1; // 2 - $fPageBreakPreview = $this->phpSheet->getSheetView()->getView() === PHPExcel_Worksheet_SheetView::SHEETVIEW_PAGE_BREAK_PREVIEW; - - $grbit = $fDspFmla; - $grbit |= $fDspGrid << 1; - $grbit |= $fDspRwCol << 2; - $grbit |= $fFrozen << 3; - $grbit |= $fDspZeros << 4; - $grbit |= $fDefaultHdr << 5; - $grbit |= $fArabic << 6; - $grbit |= $fDspGuts << 7; - $grbit |= $fFrozenNoSplit << 8; - $grbit |= $fSelected << 9; - $grbit |= $fPaged << 10; - $grbit |= $fPageBreakPreview << 11; - - $header = pack("vv", $record, $length); - $data = pack("vvv", $grbit, $rwTop, $colLeft); - - // FIXME !!! - $rgbHdr = 0x0040; // Row/column heading and gridline color index - $zoom_factor_page_break = ($fPageBreakPreview ? $this->phpSheet->getSheetView()->getZoomScale() : 0x0000); - $zoom_factor_normal = $this->phpSheet->getSheetView()->getZoomScaleNormal(); - - $data .= pack("vvvvV", $rgbHdr, 0x0000, $zoom_factor_page_break, $zoom_factor_normal, 0x00000000); - - $this->append($header.$data); - } - - /** - * Write PLV Record - */ - private function writePageLayoutView() - { - $record = 0x088B; // Record identifier - $length = 0x0010; // Bytes to follow - - $rt = 0x088B; // 2 - $grbitFrt = 0x0000; // 2 - $reserved = 0x0000000000000000; // 8 - $wScalvePLV = $this->phpSheet->getSheetView()->getZoomScale(); // 2 - - // The options flags that comprise $grbit - if ($this->phpSheet->getSheetView()->getView() == PHPExcel_Worksheet_SheetView::SHEETVIEW_PAGE_LAYOUT) { - $fPageLayoutView = 1; - } else { - $fPageLayoutView = 0; - } - $fRulerVisible = 0; - $fWhitespaceHidden = 0; - - $grbit = $fPageLayoutView; // 2 - $grbit |= $fRulerVisible << 1; - $grbit |= $fWhitespaceHidden << 3; - - $header = pack("vv", $record, $length); - $data = pack("vvVVvv", $rt, $grbitFrt, 0x00000000, 0x00000000, $wScalvePLV, $grbit); - $this->append($header . $data); - } - - /** - * Store the window zoom factor. This should be a reduced fraction but for - * simplicity we will store all fractions with a numerator of 100. - */ - private function writeZoom() - { - // If scale is 100 we don't need to write a record - if ($this->phpSheet->getSheetView()->getZoomScale() == 100) { - return; - } - - $record = 0x00A0; // Record identifier - $length = 0x0004; // Bytes to follow - - $header = pack("vv", $record, $length); - $data = pack("vv", $this->phpSheet->getSheetView()->getZoomScale(), 100); - $this->append($header . $data); - } - - /** - * Writes the Excel BIFF PANE record. - * The panes can either be frozen or thawed (unfrozen). - * Frozen panes are specified in terms of an integer number of rows and columns. - * Thawed panes are specified in terms of Excel's units for rows and columns. - */ - private function writePanes() - { - $panes = array(); - if ($freezePane = $this->phpSheet->getFreezePane()) { - list($column, $row) = PHPExcel_Cell::coordinateFromString($freezePane); - $panes[0] = $row - 1; - $panes[1] = PHPExcel_Cell::columnIndexFromString($column) - 1; - } else { - // thaw panes - return; - } - - $y = isset($panes[0]) ? $panes[0] : null; - $x = isset($panes[1]) ? $panes[1] : null; - $rwTop = isset($panes[2]) ? $panes[2] : null; - $colLeft = isset($panes[3]) ? $panes[3] : null; - if (count($panes) > 4) { // if Active pane was received - $pnnAct = $panes[4]; - } else { - $pnnAct = null; - } - $record = 0x0041; // Record identifier - $length = 0x000A; // Number of bytes to follow - - // Code specific to frozen or thawed panes. - if ($this->phpSheet->getFreezePane()) { - // Set default values for $rwTop and $colLeft - if (!isset($rwTop)) { - $rwTop = $y; - } - if (!isset($colLeft)) { - $colLeft = $x; - } - } else { - // Set default values for $rwTop and $colLeft - if (!isset($rwTop)) { - $rwTop = 0; - } - if (!isset($colLeft)) { - $colLeft = 0; - } - - // Convert Excel's row and column units to the internal units. - // The default row height is 12.75 - // The default column width is 8.43 - // The following slope and intersection values were interpolated. - // - $y = 20*$y + 255; - $x = 113.879*$x + 390; - } - - - // Determine which pane should be active. There is also the undocumented - // option to override this should it be necessary: may be removed later. - // - if (!isset($pnnAct)) { - if ($x != 0 && $y != 0) { - $pnnAct = 0; // Bottom right - } - if ($x != 0 && $y == 0) { - $pnnAct = 1; // Top right - } - if ($x == 0 && $y != 0) { - $pnnAct = 2; // Bottom left - } - if ($x == 0 && $y == 0) { - $pnnAct = 3; // Top left - } - } - - $this->activePane = $pnnAct; // Used in writeSelection - - $header = pack("vv", $record, $length); - $data = pack("vvvvv", $x, $y, $rwTop, $colLeft, $pnnAct); - $this->append($header . $data); - } - - /** - * Write BIFF record SELECTION. - */ - private function writeSelection() - { - // look up the selected cell range - $selectedCells = $this->phpSheet->getSelectedCells(); - $selectedCells = PHPExcel_Cell::splitRange($this->phpSheet->getSelectedCells()); - $selectedCells = $selectedCells[0]; - if (count($selectedCells) == 2) { - list($first, $last) = $selectedCells; - } else { - $first = $selectedCells[0]; - $last = $selectedCells[0]; - } - - list($colFirst, $rwFirst) = PHPExcel_Cell::coordinateFromString($first); - $colFirst = PHPExcel_Cell::columnIndexFromString($colFirst) - 1; // base 0 column index - --$rwFirst; // base 0 row index - - list($colLast, $rwLast) = PHPExcel_Cell::coordinateFromString($last); - $colLast = PHPExcel_Cell::columnIndexFromString($colLast) - 1; // base 0 column index - --$rwLast; // base 0 row index - - // make sure we are not out of bounds - $colFirst = min($colFirst, 255); - $colLast = min($colLast, 255); - - $rwFirst = min($rwFirst, 65535); - $rwLast = min($rwLast, 65535); - - $record = 0x001D; // Record identifier - $length = 0x000F; // Number of bytes to follow - - $pnn = $this->activePane; // Pane position - $rwAct = $rwFirst; // Active row - $colAct = $colFirst; // Active column - $irefAct = 0; // Active cell ref - $cref = 1; // Number of refs - - if (!isset($rwLast)) { - $rwLast = $rwFirst; // Last row in reference - } - if (!isset($colLast)) { - $colLast = $colFirst; // Last col in reference - } - - // Swap last row/col for first row/col as necessary - if ($rwFirst > $rwLast) { - list($rwFirst, $rwLast) = array($rwLast, $rwFirst); - } - - if ($colFirst > $colLast) { - list($colFirst, $colLast) = array($colLast, $colFirst); - } - - $header = pack("vv", $record, $length); - $data = pack("CvvvvvvCC", $pnn, $rwAct, $colAct, $irefAct, $cref, $rwFirst, $rwLast, $colFirst, $colLast); - $this->append($header . $data); - } - - /** - * Store the MERGEDCELLS records for all ranges of merged cells - */ - private function writeMergedCells() - { - $mergeCells = $this->phpSheet->getMergeCells(); - $countMergeCells = count($mergeCells); - - if ($countMergeCells == 0) { - return; - } - - // maximum allowed number of merged cells per record - $maxCountMergeCellsPerRecord = 1027; - - // record identifier - $record = 0x00E5; - - // counter for total number of merged cells treated so far by the writer - $i = 0; - - // counter for number of merged cells written in record currently being written - $j = 0; - - // initialize record data - $recordData = ''; - - // loop through the merged cells - foreach ($mergeCells as $mergeCell) { - ++$i; - ++$j; - - // extract the row and column indexes - $range = PHPExcel_Cell::splitRange($mergeCell); - list($first, $last) = $range[0]; - list($firstColumn, $firstRow) = PHPExcel_Cell::coordinateFromString($first); - list($lastColumn, $lastRow) = PHPExcel_Cell::coordinateFromString($last); - - $recordData .= pack('vvvv', $firstRow - 1, $lastRow - 1, PHPExcel_Cell::columnIndexFromString($firstColumn) - 1, PHPExcel_Cell::columnIndexFromString($lastColumn) - 1); - - // flush record if we have reached limit for number of merged cells, or reached final merged cell - if ($j == $maxCountMergeCellsPerRecord or $i == $countMergeCells) { - $recordData = pack('v', $j) . $recordData; - $length = strlen($recordData); - $header = pack('vv', $record, $length); - $this->append($header . $recordData); - - // initialize for next record, if any - $recordData = ''; - $j = 0; - } - } - } - - /** - * Write a hyperlink. - * This is comprised of two elements: the visible label and - * the invisible link. The visible label is the same as the link unless an - * alternative string is specified. The label is written using the - * writeString() method. Therefore the 255 characters string limit applies. - * $string and $format are optional. - * - * The hyperlink can be to a http, ftp, mail, internal sheet (not yet), or external - * directory url. - * - * Returns 0 : normal termination - * -2 : row or column out of range - * -3 : long string truncated to 255 chars - * - * @param integer $row Row - * @param integer $col Column - * @param string $url URL string - * @return integer - */ - private function writeUrl($row, $col, $url) - { - // Add start row and col to arg list - return($this->writeUrlRange($row, $col, $row, $col, $url)); - } - - /** - * This is the more general form of writeUrl(). It allows a hyperlink to be - * written to a range of cells. This function also decides the type of hyperlink - * to be written. These are either, Web (http, ftp, mailto), Internal - * (Sheet1!A1) or external ('c:\temp\foo.xls#Sheet1!A1'). - * - * @access private - * @see writeUrl() - * @param integer $row1 Start row - * @param integer $col1 Start column - * @param integer $row2 End row - * @param integer $col2 End column - * @param string $url URL string - * @return integer - */ - public function writeUrlRange($row1, $col1, $row2, $col2, $url) - { - // Check for internal/external sheet links or default to web link - if (preg_match('[^internal:]', $url)) { - return($this->writeUrlInternal($row1, $col1, $row2, $col2, $url)); - } - if (preg_match('[^external:]', $url)) { - return($this->writeUrlExternal($row1, $col1, $row2, $col2, $url)); - } - return($this->writeUrlWeb($row1, $col1, $row2, $col2, $url)); - } - - /** - * Used to write internal reference hyperlinks such as "Sheet1!A1". - * - * @access private - * @see writeUrl() - * @param integer $row1 Start row - * @param integer $col1 Start column - * @param integer $row2 End row - * @param integer $col2 End column - * @param string $url URL string - * @return integer - */ - public function writeUrlInternal($row1, $col1, $row2, $col2, $url) - { - $record = 0x01B8; // Record identifier - $length = 0x00000; // Bytes to follow - - // Strip URL type - $url = preg_replace('/^internal:/', '', $url); - - // Pack the undocumented parts of the hyperlink stream - $unknown1 = pack("H*", "D0C9EA79F9BACE118C8200AA004BA90B02000000"); - - // Pack the option flags - $options = pack("V", 0x08); - - // Convert the URL type and to a null terminated wchar string - $url .= "\0"; - - // character count - $url_len = PHPExcel_Shared_String::CountCharacters($url); - $url_len = pack('V', $url_len); - - $url = PHPExcel_Shared_String::ConvertEncoding($url, 'UTF-16LE', 'UTF-8'); - - // Calculate the data length - $length = 0x24 + strlen($url); - - // Pack the header data - $header = pack("vv", $record, $length); - $data = pack("vvvv", $row1, $row2, $col1, $col2); - - // Write the packed data - $this->append($header . $data . - $unknown1 . $options . - $url_len . $url); - return 0; - } - - /** - * Write links to external directory names such as 'c:\foo.xls', - * c:\foo.xls#Sheet1!A1', '../../foo.xls'. and '../../foo.xls#Sheet1!A1'. - * - * Note: Excel writes some relative links with the $dir_long string. We ignore - * these cases for the sake of simpler code. - * - * @access private - * @see writeUrl() - * @param integer $row1 Start row - * @param integer $col1 Start column - * @param integer $row2 End row - * @param integer $col2 End column - * @param string $url URL string - * @return integer - */ - public function writeUrlExternal($row1, $col1, $row2, $col2, $url) - { - // Network drives are different. We will handle them separately - // MS/Novell network drives and shares start with \\ - if (preg_match('[^external:\\\\]', $url)) { - return; //($this->writeUrlExternal_net($row1, $col1, $row2, $col2, $url, $str, $format)); - } - - $record = 0x01B8; // Record identifier - $length = 0x00000; // Bytes to follow - - // Strip URL type and change Unix dir separator to Dos style (if needed) - // - $url = preg_replace('/^external:/', '', $url); - $url = preg_replace('/\//', "\\", $url); - - // Determine if the link is relative or absolute: - // relative if link contains no dir separator, "somefile.xls" - // relative if link starts with up-dir, "..\..\somefile.xls" - // otherwise, absolute - - $absolute = 0x00; // relative path - if (preg_match('/^[A-Z]:/', $url)) { - $absolute = 0x02; // absolute path on Windows, e.g. C:\... - } - $link_type = 0x01 | $absolute; - - // Determine if the link contains a sheet reference and change some of the - // parameters accordingly. - // Split the dir name and sheet name (if it exists) - $dir_long = $url; - if (preg_match("/\#/", $url)) { - $link_type |= 0x08; - } - - - // Pack the link type - $link_type = pack("V", $link_type); - - // Calculate the up-level dir count e.g.. (..\..\..\ == 3) - $up_count = preg_match_all("/\.\.\\\/", $dir_long, $useless); - $up_count = pack("v", $up_count); - - // Store the short dos dir name (null terminated) - $dir_short = preg_replace("/\.\.\\\/", '', $dir_long) . "\0"; - - // Store the long dir name as a wchar string (non-null terminated) - $dir_long = $dir_long . "\0"; - - // Pack the lengths of the dir strings - $dir_short_len = pack("V", strlen($dir_short)); - $dir_long_len = pack("V", strlen($dir_long)); - $stream_len = pack("V", 0); //strlen($dir_long) + 0x06); - - // Pack the undocumented parts of the hyperlink stream - $unknown1 = pack("H*", 'D0C9EA79F9BACE118C8200AA004BA90B02000000'); - $unknown2 = pack("H*", '0303000000000000C000000000000046'); - $unknown3 = pack("H*", 'FFFFADDE000000000000000000000000000000000000000'); - $unknown4 = pack("v", 0x03); - - // Pack the main data stream - $data = pack("vvvv", $row1, $row2, $col1, $col2) . - $unknown1 . - $link_type . - $unknown2 . - $up_count . - $dir_short_len. - $dir_short . - $unknown3 . - $stream_len ;/*. - $dir_long_len . - $unknown4 . - $dir_long . - $sheet_len . - $sheet ;*/ - - // Pack the header data - $length = strlen($data); - $header = pack("vv", $record, $length); - - // Write the packed data - $this->append($header. $data); - return 0; - } - - /** - * Used to write http, ftp and mailto hyperlinks. - * The link type ($options) is 0x03 is the same as absolute dir ref without - * sheet. However it is differentiated by the $unknown2 data stream. - * - * @access private - * @see writeUrl() - * @param integer $row1 Start row - * @param integer $col1 Start column - * @param integer $row2 End row - * @param integer $col2 End column - * @param string $url URL string - * @return integer - */ - public function writeUrlWeb($row1, $col1, $row2, $col2, $url) - { - $record = 0x01B8; // Record identifier - $length = 0x00000; // Bytes to follow - - // Pack the undocumented parts of the hyperlink stream - $unknown1 = pack("H*", "D0C9EA79F9BACE118C8200AA004BA90B02000000"); - $unknown2 = pack("H*", "E0C9EA79F9BACE118C8200AA004BA90B"); - - // Pack the option flags - $options = pack("V", 0x03); - - // Convert URL to a null terminated wchar string - $url = join("\0", preg_split("''", $url, -1, PREG_SPLIT_NO_EMPTY)); - $url = $url . "\0\0\0"; - - // Pack the length of the URL - $url_len = pack("V", strlen($url)); - - // Calculate the data length - $length = 0x34 + strlen($url); - - // Pack the header data - $header = pack("vv", $record, $length); - $data = pack("vvvv", $row1, $row2, $col1, $col2); - - // Write the packed data - $this->append($header . $data . - $unknown1 . $options . - $unknown2 . $url_len . $url); - return 0; - } - - /** - * Store the DATAVALIDATIONS and DATAVALIDATION records. - */ - private function writeDataValidity() - { - // Datavalidation collection - $dataValidationCollection = $this->phpSheet->getDataValidationCollection(); - - // Write data validations? - if (!empty($dataValidationCollection)) { - // DATAVALIDATIONS record - $record = 0x01B2; // Record identifier - $length = 0x0012; // Bytes to follow - - $grbit = 0x0000; // Prompt box at cell, no cached validity data at DV records - $horPos = 0x00000000; // Horizontal position of prompt box, if fixed position - $verPos = 0x00000000; // Vertical position of prompt box, if fixed position - $objId = 0xFFFFFFFF; // Object identifier of drop down arrow object, or -1 if not visible - - $header = pack('vv', $record, $length); - $data = pack('vVVVV', $grbit, $horPos, $verPos, $objId, count($dataValidationCollection)); - $this->append($header.$data); - - // DATAVALIDATION records - $record = 0x01BE; // Record identifier - - foreach ($dataValidationCollection as $cellCoordinate => $dataValidation) { - // initialize record data - $data = ''; - - // options - $options = 0x00000000; - - // data type - $type = $dataValidation->getType(); - switch ($type) { - case PHPExcel_Cell_DataValidation::TYPE_NONE: - $type = 0x00; - break; - case PHPExcel_Cell_DataValidation::TYPE_WHOLE: - $type = 0x01; - break; - case PHPExcel_Cell_DataValidation::TYPE_DECIMAL: - $type = 0x02; - break; - case PHPExcel_Cell_DataValidation::TYPE_LIST: - $type = 0x03; - break; - case PHPExcel_Cell_DataValidation::TYPE_DATE: - $type = 0x04; - break; - case PHPExcel_Cell_DataValidation::TYPE_TIME: - $type = 0x05; - break; - case PHPExcel_Cell_DataValidation::TYPE_TEXTLENGTH: - $type = 0x06; - break; - case PHPExcel_Cell_DataValidation::TYPE_CUSTOM: - $type = 0x07; - break; - } - $options |= $type << 0; - - // error style - $errorStyle = $dataValidation->getType(); - switch ($errorStyle) { - case PHPExcel_Cell_DataValidation::STYLE_STOP: - $errorStyle = 0x00; - break; - case PHPExcel_Cell_DataValidation::STYLE_WARNING: - $errorStyle = 0x01; - break; - case PHPExcel_Cell_DataValidation::STYLE_INFORMATION: - $errorStyle = 0x02; - break; - } - $options |= $errorStyle << 4; - - // explicit formula? - if ($type == 0x03 && preg_match('/^\".*\"$/', $dataValidation->getFormula1())) { - $options |= 0x01 << 7; - } - - // empty cells allowed - $options |= $dataValidation->getAllowBlank() << 8; - - // show drop down - $options |= (!$dataValidation->getShowDropDown()) << 9; - - // show input message - $options |= $dataValidation->getShowInputMessage() << 18; - - // show error message - $options |= $dataValidation->getShowErrorMessage() << 19; - - // condition operator - $operator = $dataValidation->getOperator(); - switch ($operator) { - case PHPExcel_Cell_DataValidation::OPERATOR_BETWEEN: - $operator = 0x00; - break; - case PHPExcel_Cell_DataValidation::OPERATOR_NOTBETWEEN: - $operator = 0x01; - break; - case PHPExcel_Cell_DataValidation::OPERATOR_EQUAL: - $operator = 0x02; - break; - case PHPExcel_Cell_DataValidation::OPERATOR_NOTEQUAL: - $operator = 0x03; - break; - case PHPExcel_Cell_DataValidation::OPERATOR_GREATERTHAN: - $operator = 0x04; - break; - case PHPExcel_Cell_DataValidation::OPERATOR_LESSTHAN: - $operator = 0x05; - break; - case PHPExcel_Cell_DataValidation::OPERATOR_GREATERTHANOREQUAL: - $operator = 0x06; - break; - case PHPExcel_Cell_DataValidation::OPERATOR_LESSTHANOREQUAL: - $operator = 0x07; - break; - } - $options |= $operator << 20; - - $data = pack('V', $options); - - // prompt title - $promptTitle = $dataValidation->getPromptTitle() !== '' ? - $dataValidation->getPromptTitle() : chr(0); - $data .= PHPExcel_Shared_String::UTF8toBIFF8UnicodeLong($promptTitle); - - // error title - $errorTitle = $dataValidation->getErrorTitle() !== '' ? - $dataValidation->getErrorTitle() : chr(0); - $data .= PHPExcel_Shared_String::UTF8toBIFF8UnicodeLong($errorTitle); - - // prompt text - $prompt = $dataValidation->getPrompt() !== '' ? - $dataValidation->getPrompt() : chr(0); - $data .= PHPExcel_Shared_String::UTF8toBIFF8UnicodeLong($prompt); - - // error text - $error = $dataValidation->getError() !== '' ? - $dataValidation->getError() : chr(0); - $data .= PHPExcel_Shared_String::UTF8toBIFF8UnicodeLong($error); - - // formula 1 - try { - $formula1 = $dataValidation->getFormula1(); - if ($type == 0x03) { // list type - $formula1 = str_replace(',', chr(0), $formula1); - } - $this->parser->parse($formula1); - $formula1 = $this->parser->toReversePolish(); - $sz1 = strlen($formula1); - } catch (PHPExcel_Exception $e) { - $sz1 = 0; - $formula1 = ''; - } - $data .= pack('vv', $sz1, 0x0000); - $data .= $formula1; - - // formula 2 - try { - $formula2 = $dataValidation->getFormula2(); - if ($formula2 === '') { - throw new PHPExcel_Writer_Exception('No formula2'); - } - $this->parser->parse($formula2); - $formula2 = $this->parser->toReversePolish(); - $sz2 = strlen($formula2); - } catch (PHPExcel_Exception $e) { - $sz2 = 0; - $formula2 = ''; - } - $data .= pack('vv', $sz2, 0x0000); - $data .= $formula2; - - // cell range address list - $data .= pack('v', 0x0001); - $data .= $this->writeBIFF8CellRangeAddressFixed($cellCoordinate); - - $length = strlen($data); - $header = pack("vv", $record, $length); - - $this->append($header . $data); - } - } - } - - /** - * Write a cell range address in BIFF8 - * always fixed range - * See section 2.5.14 in OpenOffice.org's Documentation of the Microsoft Excel File Format - * - * @param string $range E.g. 'A1' or 'A1:B6' - * @return string Binary data - */ - private function writeBIFF8CellRangeAddressFixed($range = 'A1') - { - $explodes = explode(':', $range); - - // extract first cell, e.g. 'A1' - $firstCell = $explodes[0]; - - // extract last cell, e.g. 'B6' - if (count($explodes) == 1) { - $lastCell = $firstCell; - } else { - $lastCell = $explodes[1]; - } - - $firstCellCoordinates = PHPExcel_Cell::coordinateFromString($firstCell); // e.g. array(0, 1) - $lastCellCoordinates = PHPExcel_Cell::coordinateFromString($lastCell); // e.g. array(1, 6) - - return pack('vvvv', $firstCellCoordinates[1] - 1, $lastCellCoordinates[1] - 1, PHPExcel_Cell::columnIndexFromString($firstCellCoordinates[0]) - 1, PHPExcel_Cell::columnIndexFromString($lastCellCoordinates[0]) - 1); - } - - /** - * Write SHEETLAYOUT record - */ - private function writeSheetLayout() - { - if (!$this->phpSheet->isTabColorSet()) { - return; - } - - $recordData = pack( - 'vvVVVvv', - 0x0862, - 0x0000, // unused - 0x00000000, // unused - 0x00000000, // unused - 0x00000014, // size of record data - $this->colors[$this->phpSheet->getTabColor()->getRGB()], // color index - 0x0000 // unused - ); - - $length = strlen($recordData); - - $record = 0x0862; // Record identifier - $header = pack('vv', $record, $length); - $this->append($header . $recordData); - } - - /** - * Write SHEETPROTECTION - */ - private function writeSheetProtection() - { - // record identifier - $record = 0x0867; - - // prepare options - $options = (int) !$this->phpSheet->getProtection()->getObjects() - | (int) !$this->phpSheet->getProtection()->getScenarios() << 1 - | (int) !$this->phpSheet->getProtection()->getFormatCells() << 2 - | (int) !$this->phpSheet->getProtection()->getFormatColumns() << 3 - | (int) !$this->phpSheet->getProtection()->getFormatRows() << 4 - | (int) !$this->phpSheet->getProtection()->getInsertColumns() << 5 - | (int) !$this->phpSheet->getProtection()->getInsertRows() << 6 - | (int) !$this->phpSheet->getProtection()->getInsertHyperlinks() << 7 - | (int) !$this->phpSheet->getProtection()->getDeleteColumns() << 8 - | (int) !$this->phpSheet->getProtection()->getDeleteRows() << 9 - | (int) !$this->phpSheet->getProtection()->getSelectLockedCells() << 10 - | (int) !$this->phpSheet->getProtection()->getSort() << 11 - | (int) !$this->phpSheet->getProtection()->getAutoFilter() << 12 - | (int) !$this->phpSheet->getProtection()->getPivotTables() << 13 - | (int) !$this->phpSheet->getProtection()->getSelectUnlockedCells() << 14 ; - - // record data - $recordData = pack( - 'vVVCVVvv', - 0x0867, // repeated record identifier - 0x0000, // not used - 0x0000, // not used - 0x00, // not used - 0x01000200, // unknown data - 0xFFFFFFFF, // unknown data - $options, // options - 0x0000 // not used - ); - - $length = strlen($recordData); - $header = pack('vv', $record, $length); - - $this->append($header . $recordData); - } - - /** - * Write BIFF record RANGEPROTECTION - * - * Openoffice.org's Documentaion of the Microsoft Excel File Format uses term RANGEPROTECTION for these records - * Microsoft Office Excel 97-2007 Binary File Format Specification uses term FEAT for these records - */ - private function writeRangeProtection() - { - foreach ($this->phpSheet->getProtectedCells() as $range => $password) { - // number of ranges, e.g. 'A1:B3 C20:D25' - $cellRanges = explode(' ', $range); - $cref = count($cellRanges); - - $recordData = pack( - 'vvVVvCVvVv', - 0x0868, - 0x00, - 0x0000, - 0x0000, - 0x02, - 0x0, - 0x0000, - $cref, - 0x0000, - 0x00 - ); - - foreach ($cellRanges as $cellRange) { - $recordData .= $this->writeBIFF8CellRangeAddressFixed($cellRange); - } - - // the rgbFeat structure - $recordData .= pack( - 'VV', - 0x0000, - hexdec($password) - ); - - $recordData .= PHPExcel_Shared_String::UTF8toBIFF8UnicodeLong('p' . md5($recordData)); - - $length = strlen($recordData); - - $record = 0x0868; // Record identifier - $header = pack("vv", $record, $length); - $this->append($header . $recordData); - } - } - - /** - * Write CFHeader record - */ - private function writeCFHeader() - { - $record = 0x01B0; // Record identifier - $length = 0x0016; // Bytes to follow - - $numColumnMin = null; - $numColumnMax = null; - $numRowMin = null; - $numRowMax = null; - $arrConditional = array(); - foreach ($this->phpSheet->getConditionalStylesCollection() as $cellCoordinate => $conditionalStyles) { - foreach ($conditionalStyles as $conditional) { - if ($conditional->getConditionType() == PHPExcel_Style_Conditional::CONDITION_EXPRESSION - || $conditional->getConditionType() == PHPExcel_Style_Conditional::CONDITION_CELLIS) { - if (!in_array($conditional->getHashCode(), $arrConditional)) { - $arrConditional[] = $conditional->getHashCode(); - } - // Cells - $arrCoord = PHPExcel_Cell::coordinateFromString($cellCoordinate); - if (!is_numeric($arrCoord[0])) { - $arrCoord[0] = PHPExcel_Cell::columnIndexFromString($arrCoord[0]); - } - if (is_null($numColumnMin) || ($numColumnMin > $arrCoord[0])) { - $numColumnMin = $arrCoord[0]; - } - if (is_null($numColumnMax) || ($numColumnMax < $arrCoord[0])) { - $numColumnMax = $arrCoord[0]; - } - if (is_null($numRowMin) || ($numRowMin > $arrCoord[1])) { - $numRowMin = $arrCoord[1]; - } - if (is_null($numRowMax) || ($numRowMax < $arrCoord[1])) { - $numRowMax = $arrCoord[1]; - } - } - } - } - $needRedraw = 1; - $cellRange = pack('vvvv', $numRowMin-1, $numRowMax-1, $numColumnMin-1, $numColumnMax-1); - - $header = pack('vv', $record, $length); - $data = pack('vv', count($arrConditional), $needRedraw); - $data .= $cellRange; - $data .= pack('v', 0x0001); - $data .= $cellRange; - $this->append($header . $data); - } - - /** - * Write CFRule Record - * @param PHPExcel_Style_Conditional $conditional - */ - private function writeCFRule(PHPExcel_Style_Conditional $conditional) - { - $record = 0x01B1; // Record identifier - - // $type : Type of the CF - // $operatorType : Comparison operator - if ($conditional->getConditionType() == PHPExcel_Style_Conditional::CONDITION_EXPRESSION) { - $type = 0x02; - $operatorType = 0x00; - } elseif ($conditional->getConditionType() == PHPExcel_Style_Conditional::CONDITION_CELLIS) { - $type = 0x01; - - switch ($conditional->getOperatorType()) { - case PHPExcel_Style_Conditional::OPERATOR_NONE: - $operatorType = 0x00; - break; - case PHPExcel_Style_Conditional::OPERATOR_EQUAL: - $operatorType = 0x03; - break; - case PHPExcel_Style_Conditional::OPERATOR_GREATERTHAN: - $operatorType = 0x05; - break; - case PHPExcel_Style_Conditional::OPERATOR_GREATERTHANOREQUAL: - $operatorType = 0x07; - break; - case PHPExcel_Style_Conditional::OPERATOR_LESSTHAN: - $operatorType = 0x06; - break; - case PHPExcel_Style_Conditional::OPERATOR_LESSTHANOREQUAL: - $operatorType = 0x08; - break; - case PHPExcel_Style_Conditional::OPERATOR_NOTEQUAL: - $operatorType = 0x04; - break; - case PHPExcel_Style_Conditional::OPERATOR_BETWEEN: - $operatorType = 0x01; - break; - // not OPERATOR_NOTBETWEEN 0x02 - } - } - - // $szValue1 : size of the formula data for first value or formula - // $szValue2 : size of the formula data for second value or formula - $arrConditions = $conditional->getConditions(); - $numConditions = sizeof($arrConditions); - if ($numConditions == 1) { - $szValue1 = ($arrConditions[0] <= 65535 ? 3 : 0x0000); - $szValue2 = 0x0000; - $operand1 = pack('Cv', 0x1E, $arrConditions[0]); - $operand2 = null; - } elseif ($numConditions == 2 && ($conditional->getOperatorType() == PHPExcel_Style_Conditional::OPERATOR_BETWEEN)) { - $szValue1 = ($arrConditions[0] <= 65535 ? 3 : 0x0000); - $szValue2 = ($arrConditions[1] <= 65535 ? 3 : 0x0000); - $operand1 = pack('Cv', 0x1E, $arrConditions[0]); - $operand2 = pack('Cv', 0x1E, $arrConditions[1]); - } else { - $szValue1 = 0x0000; - $szValue2 = 0x0000; - $operand1 = null; - $operand2 = null; - } - - // $flags : Option flags - // Alignment - $bAlignHz = ($conditional->getStyle()->getAlignment()->getHorizontal() == null ? 1 : 0); - $bAlignVt = ($conditional->getStyle()->getAlignment()->getVertical() == null ? 1 : 0); - $bAlignWrapTx = ($conditional->getStyle()->getAlignment()->getWrapText() == false ? 1 : 0); - $bTxRotation = ($conditional->getStyle()->getAlignment()->getTextRotation() == null ? 1 : 0); - $bIndent = ($conditional->getStyle()->getAlignment()->getIndent() == 0 ? 1 : 0); - $bShrinkToFit = ($conditional->getStyle()->getAlignment()->getShrinkToFit() == false ? 1 : 0); - if ($bAlignHz == 0 || $bAlignVt == 0 || $bAlignWrapTx == 0 || $bTxRotation == 0 || $bIndent == 0 || $bShrinkToFit == 0) { - $bFormatAlign = 1; - } else { - $bFormatAlign = 0; - } - // Protection - $bProtLocked = ($conditional->getStyle()->getProtection()->getLocked() == null ? 1 : 0); - $bProtHidden = ($conditional->getStyle()->getProtection()->getHidden() == null ? 1 : 0); - if ($bProtLocked == 0 || $bProtHidden == 0) { - $bFormatProt = 1; - } else { - $bFormatProt = 0; - } - // Border - $bBorderLeft = ($conditional->getStyle()->getBorders()->getLeft()->getColor()->getARGB() == PHPExcel_Style_Color::COLOR_BLACK - && $conditional->getStyle()->getBorders()->getLeft()->getBorderStyle() == PHPExcel_Style_Border::BORDER_NONE ? 1 : 0); - $bBorderRight = ($conditional->getStyle()->getBorders()->getRight()->getColor()->getARGB() == PHPExcel_Style_Color::COLOR_BLACK - && $conditional->getStyle()->getBorders()->getRight()->getBorderStyle() == PHPExcel_Style_Border::BORDER_NONE ? 1 : 0); - $bBorderTop = ($conditional->getStyle()->getBorders()->getTop()->getColor()->getARGB() == PHPExcel_Style_Color::COLOR_BLACK - && $conditional->getStyle()->getBorders()->getTop()->getBorderStyle() == PHPExcel_Style_Border::BORDER_NONE ? 1 : 0); - $bBorderBottom = ($conditional->getStyle()->getBorders()->getBottom()->getColor()->getARGB() == PHPExcel_Style_Color::COLOR_BLACK - && $conditional->getStyle()->getBorders()->getBottom()->getBorderStyle() == PHPExcel_Style_Border::BORDER_NONE ? 1 : 0); - if ($bBorderLeft == 0 || $bBorderRight == 0 || $bBorderTop == 0 || $bBorderBottom == 0) { - $bFormatBorder = 1; - } else { - $bFormatBorder = 0; - } - // Pattern - $bFillStyle = ($conditional->getStyle()->getFill()->getFillType() == null ? 0 : 1); - $bFillColor = ($conditional->getStyle()->getFill()->getStartColor()->getARGB() == null ? 0 : 1); - $bFillColorBg = ($conditional->getStyle()->getFill()->getEndColor()->getARGB() == null ? 0 : 1); - if ($bFillStyle == 0 || $bFillColor == 0 || $bFillColorBg == 0) { - $bFormatFill = 1; - } else { - $bFormatFill = 0; - } - // Font - if ($conditional->getStyle()->getFont()->getName() != null - || $conditional->getStyle()->getFont()->getSize() != null - || $conditional->getStyle()->getFont()->getBold() != null - || $conditional->getStyle()->getFont()->getItalic() != null - || $conditional->getStyle()->getFont()->getSuperScript() != null - || $conditional->getStyle()->getFont()->getSubScript() != null - || $conditional->getStyle()->getFont()->getUnderline() != null - || $conditional->getStyle()->getFont()->getStrikethrough() != null - || $conditional->getStyle()->getFont()->getColor()->getARGB() != null) { - $bFormatFont = 1; - } else { - $bFormatFont = 0; - } - // Alignment - $flags = 0; - $flags |= (1 == $bAlignHz ? 0x00000001 : 0); - $flags |= (1 == $bAlignVt ? 0x00000002 : 0); - $flags |= (1 == $bAlignWrapTx ? 0x00000004 : 0); - $flags |= (1 == $bTxRotation ? 0x00000008 : 0); - // Justify last line flag - $flags |= (1 == 1 ? 0x00000010 : 0); - $flags |= (1 == $bIndent ? 0x00000020 : 0); - $flags |= (1 == $bShrinkToFit ? 0x00000040 : 0); - // Default - $flags |= (1 == 1 ? 0x00000080 : 0); - // Protection - $flags |= (1 == $bProtLocked ? 0x00000100 : 0); - $flags |= (1 == $bProtHidden ? 0x00000200 : 0); - // Border - $flags |= (1 == $bBorderLeft ? 0x00000400 : 0); - $flags |= (1 == $bBorderRight ? 0x00000800 : 0); - $flags |= (1 == $bBorderTop ? 0x00001000 : 0); - $flags |= (1 == $bBorderBottom ? 0x00002000 : 0); - $flags |= (1 == 1 ? 0x00004000 : 0); // Top left to Bottom right border - $flags |= (1 == 1 ? 0x00008000 : 0); // Bottom left to Top right border - // Pattern - $flags |= (1 == $bFillStyle ? 0x00010000 : 0); - $flags |= (1 == $bFillColor ? 0x00020000 : 0); - $flags |= (1 == $bFillColorBg ? 0x00040000 : 0); - $flags |= (1 == 1 ? 0x00380000 : 0); - // Font - $flags |= (1 == $bFormatFont ? 0x04000000 : 0); - // Alignment: - $flags |= (1 == $bFormatAlign ? 0x08000000 : 0); - // Border - $flags |= (1 == $bFormatBorder ? 0x10000000 : 0); - // Pattern - $flags |= (1 == $bFormatFill ? 0x20000000 : 0); - // Protection - $flags |= (1 == $bFormatProt ? 0x40000000 : 0); - // Text direction - $flags |= (1 == 0 ? 0x80000000 : 0); - - // Data Blocks - if ($bFormatFont == 1) { - // Font Name - if ($conditional->getStyle()->getFont()->getName() == null) { - $dataBlockFont = pack('VVVVVVVV', 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000); - $dataBlockFont .= pack('VVVVVVVV', 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000); - } else { - $dataBlockFont = PHPExcel_Shared_String::UTF8toBIFF8UnicodeLong($conditional->getStyle()->getFont()->getName()); - } - // Font Size - if ($conditional->getStyle()->getFont()->getSize() == null) { - $dataBlockFont .= pack('V', 20 * 11); - } else { - $dataBlockFont .= pack('V', 20 * $conditional->getStyle()->getFont()->getSize()); - } - // Font Options - $dataBlockFont .= pack('V', 0); - // Font weight - if ($conditional->getStyle()->getFont()->getBold() == true) { - $dataBlockFont .= pack('v', 0x02BC); - } else { - $dataBlockFont .= pack('v', 0x0190); - } - // Escapement type - if ($conditional->getStyle()->getFont()->getSubScript() == true) { - $dataBlockFont .= pack('v', 0x02); - $fontEscapement = 0; - } elseif ($conditional->getStyle()->getFont()->getSuperScript() == true) { - $dataBlockFont .= pack('v', 0x01); - $fontEscapement = 0; - } else { - $dataBlockFont .= pack('v', 0x00); - $fontEscapement = 1; - } - // Underline type - switch ($conditional->getStyle()->getFont()->getUnderline()) { - case PHPExcel_Style_Font::UNDERLINE_NONE: - $dataBlockFont .= pack('C', 0x00); - $fontUnderline = 0; - break; - case PHPExcel_Style_Font::UNDERLINE_DOUBLE: - $dataBlockFont .= pack('C', 0x02); - $fontUnderline = 0; - break; - case PHPExcel_Style_Font::UNDERLINE_DOUBLEACCOUNTING: - $dataBlockFont .= pack('C', 0x22); - $fontUnderline = 0; - break; - case PHPExcel_Style_Font::UNDERLINE_SINGLE: - $dataBlockFont .= pack('C', 0x01); - $fontUnderline = 0; - break; - case PHPExcel_Style_Font::UNDERLINE_SINGLEACCOUNTING: - $dataBlockFont .= pack('C', 0x21); - $fontUnderline = 0; - break; - default: $dataBlockFont .= pack('C', 0x00); - $fontUnderline = 1; - break; - } - // Not used (3) - $dataBlockFont .= pack('vC', 0x0000, 0x00); - // Font color index - switch ($conditional->getStyle()->getFont()->getColor()->getRGB()) { - case '000000': - $colorIdx = 0x08; - break; - case 'FFFFFF': - $colorIdx = 0x09; - break; - case 'FF0000': - $colorIdx = 0x0A; - break; - case '00FF00': - $colorIdx = 0x0B; - break; - case '0000FF': - $colorIdx = 0x0C; - break; - case 'FFFF00': - $colorIdx = 0x0D; - break; - case 'FF00FF': - $colorIdx = 0x0E; - break; - case '00FFFF': - $colorIdx = 0x0F; - break; - case '800000': - $colorIdx = 0x10; - break; - case '008000': - $colorIdx = 0x11; - break; - case '000080': - $colorIdx = 0x12; - break; - case '808000': - $colorIdx = 0x13; - break; - case '800080': - $colorIdx = 0x14; - break; - case '008080': - $colorIdx = 0x15; - break; - case 'C0C0C0': - $colorIdx = 0x16; - break; - case '808080': - $colorIdx = 0x17; - break; - case '9999FF': - $colorIdx = 0x18; - break; - case '993366': - $colorIdx = 0x19; - break; - case 'FFFFCC': - $colorIdx = 0x1A; - break; - case 'CCFFFF': - $colorIdx = 0x1B; - break; - case '660066': - $colorIdx = 0x1C; - break; - case 'FF8080': - $colorIdx = 0x1D; - break; - case '0066CC': - $colorIdx = 0x1E; - break; - case 'CCCCFF': - $colorIdx = 0x1F; - break; - case '000080': - $colorIdx = 0x20; - break; - case 'FF00FF': - $colorIdx = 0x21; - break; - case 'FFFF00': - $colorIdx = 0x22; - break; - case '00FFFF': - $colorIdx = 0x23; - break; - case '800080': - $colorIdx = 0x24; - break; - case '800000': - $colorIdx = 0x25; - break; - case '008080': - $colorIdx = 0x26; - break; - case '0000FF': - $colorIdx = 0x27; - break; - case '00CCFF': - $colorIdx = 0x28; - break; - case 'CCFFFF': - $colorIdx = 0x29; - break; - case 'CCFFCC': - $colorIdx = 0x2A; - break; - case 'FFFF99': - $colorIdx = 0x2B; - break; - case '99CCFF': - $colorIdx = 0x2C; - break; - case 'FF99CC': - $colorIdx = 0x2D; - break; - case 'CC99FF': - $colorIdx = 0x2E; - break; - case 'FFCC99': - $colorIdx = 0x2F; - break; - case '3366FF': - $colorIdx = 0x30; - break; - case '33CCCC': - $colorIdx = 0x31; - break; - case '99CC00': - $colorIdx = 0x32; - break; - case 'FFCC00': - $colorIdx = 0x33; - break; - case 'FF9900': - $colorIdx = 0x34; - break; - case 'FF6600': - $colorIdx = 0x35; - break; - case '666699': - $colorIdx = 0x36; - break; - case '969696': - $colorIdx = 0x37; - break; - case '003366': - $colorIdx = 0x38; - break; - case '339966': - $colorIdx = 0x39; - break; - case '003300': - $colorIdx = 0x3A; - break; - case '333300': - $colorIdx = 0x3B; - break; - case '993300': - $colorIdx = 0x3C; - break; - case '993366': - $colorIdx = 0x3D; - break; - case '333399': - $colorIdx = 0x3E; - break; - case '333333': - $colorIdx = 0x3F; - break; - default: - $colorIdx = 0x00; - break; - } - $dataBlockFont .= pack('V', $colorIdx); - // Not used (4) - $dataBlockFont .= pack('V', 0x00000000); - // Options flags for modified font attributes - $optionsFlags = 0; - $optionsFlagsBold = ($conditional->getStyle()->getFont()->getBold() == null ? 1 : 0); - $optionsFlags |= (1 == $optionsFlagsBold ? 0x00000002 : 0); - $optionsFlags |= (1 == 1 ? 0x00000008 : 0); - $optionsFlags |= (1 == 1 ? 0x00000010 : 0); - $optionsFlags |= (1 == 0 ? 0x00000020 : 0); - $optionsFlags |= (1 == 1 ? 0x00000080 : 0); - $dataBlockFont .= pack('V', $optionsFlags); - // Escapement type - $dataBlockFont .= pack('V', $fontEscapement); - // Underline type - $dataBlockFont .= pack('V', $fontUnderline); - // Always - $dataBlockFont .= pack('V', 0x00000000); - // Always - $dataBlockFont .= pack('V', 0x00000000); - // Not used (8) - $dataBlockFont .= pack('VV', 0x00000000, 0x00000000); - // Always - $dataBlockFont .= pack('v', 0x0001); - } - if ($bFormatAlign == 1) { - $blockAlign = 0; - // Alignment and text break - switch ($conditional->getStyle()->getAlignment()->getHorizontal()) { - case PHPExcel_Style_Alignment::HORIZONTAL_GENERAL: - $blockAlign = 0; - break; - case PHPExcel_Style_Alignment::HORIZONTAL_LEFT: - $blockAlign = 1; - break; - case PHPExcel_Style_Alignment::HORIZONTAL_RIGHT: - $blockAlign = 3; - break; - case PHPExcel_Style_Alignment::HORIZONTAL_CENTER: - $blockAlign = 2; - break; - case PHPExcel_Style_Alignment::HORIZONTAL_CENTER_CONTINUOUS: - $blockAlign = 6; - break; - case PHPExcel_Style_Alignment::HORIZONTAL_JUSTIFY: - $blockAlign = 5; - break; - } - if ($conditional->getStyle()->getAlignment()->getWrapText() == true) { - $blockAlign |= 1 << 3; - } else { - $blockAlign |= 0 << 3; - } - switch ($conditional->getStyle()->getAlignment()->getVertical()) { - case PHPExcel_Style_Alignment::VERTICAL_BOTTOM: - $blockAlign = 2 << 4; - break; - case PHPExcel_Style_Alignment::VERTICAL_TOP: - $blockAlign = 0 << 4; - break; - case PHPExcel_Style_Alignment::VERTICAL_CENTER: - $blockAlign = 1 << 4; - break; - case PHPExcel_Style_Alignment::VERTICAL_JUSTIFY: - $blockAlign = 3 << 4; - break; - } - $blockAlign |= 0 << 7; - - // Text rotation angle - $blockRotation = $conditional->getStyle()->getAlignment()->getTextRotation(); - - // Indentation - $blockIndent = $conditional->getStyle()->getAlignment()->getIndent(); - if ($conditional->getStyle()->getAlignment()->getShrinkToFit() == true) { - $blockIndent |= 1 << 4; - } else { - $blockIndent |= 0 << 4; - } - $blockIndent |= 0 << 6; - - // Relative indentation - $blockIndentRelative = 255; - - $dataBlockAlign = pack('CCvvv', $blockAlign, $blockRotation, $blockIndent, $blockIndentRelative, 0x0000); - } - if ($bFormatBorder == 1) { - $blockLineStyle = 0; - switch ($conditional->getStyle()->getBorders()->getLeft()->getBorderStyle()) { - case PHPExcel_Style_Border::BORDER_NONE: - $blockLineStyle |= 0x00; - break; - case PHPExcel_Style_Border::BORDER_THIN: - $blockLineStyle |= 0x01; - break; - case PHPExcel_Style_Border::BORDER_MEDIUM: - $blockLineStyle |= 0x02; - break; - case PHPExcel_Style_Border::BORDER_DASHED: - $blockLineStyle |= 0x03; - break; - case PHPExcel_Style_Border::BORDER_DOTTED: - $blockLineStyle |= 0x04; - break; - case PHPExcel_Style_Border::BORDER_THICK: - $blockLineStyle |= 0x05; - break; - case PHPExcel_Style_Border::BORDER_DOUBLE: - $blockLineStyle |= 0x06; - break; - case PHPExcel_Style_Border::BORDER_HAIR: - $blockLineStyle |= 0x07; - break; - case PHPExcel_Style_Border::BORDER_MEDIUMDASHED: - $blockLineStyle |= 0x08; - break; - case PHPExcel_Style_Border::BORDER_DASHDOT: - $blockLineStyle |= 0x09; - break; - case PHPExcel_Style_Border::BORDER_MEDIUMDASHDOT: - $blockLineStyle |= 0x0A; - break; - case PHPExcel_Style_Border::BORDER_DASHDOTDOT: - $blockLineStyle |= 0x0B; - break; - case PHPExcel_Style_Border::BORDER_MEDIUMDASHDOTDOT: - $blockLineStyle |= 0x0C; - break; - case PHPExcel_Style_Border::BORDER_SLANTDASHDOT: - $blockLineStyle |= 0x0D; - break; - } - switch ($conditional->getStyle()->getBorders()->getRight()->getBorderStyle()) { - case PHPExcel_Style_Border::BORDER_NONE: - $blockLineStyle |= 0x00 << 4; - break; - case PHPExcel_Style_Border::BORDER_THIN: - $blockLineStyle |= 0x01 << 4; - break; - case PHPExcel_Style_Border::BORDER_MEDIUM: - $blockLineStyle |= 0x02 << 4; - break; - case PHPExcel_Style_Border::BORDER_DASHED: - $blockLineStyle |= 0x03 << 4; - break; - case PHPExcel_Style_Border::BORDER_DOTTED: - $blockLineStyle |= 0x04 << 4; - break; - case PHPExcel_Style_Border::BORDER_THICK: - $blockLineStyle |= 0x05 << 4; - break; - case PHPExcel_Style_Border::BORDER_DOUBLE: - $blockLineStyle |= 0x06 << 4; - break; - case PHPExcel_Style_Border::BORDER_HAIR: - $blockLineStyle |= 0x07 << 4; - break; - case PHPExcel_Style_Border::BORDER_MEDIUMDASHED: - $blockLineStyle |= 0x08 << 4; - break; - case PHPExcel_Style_Border::BORDER_DASHDOT: - $blockLineStyle |= 0x09 << 4; - break; - case PHPExcel_Style_Border::BORDER_MEDIUMDASHDOT: - $blockLineStyle |= 0x0A << 4; - break; - case PHPExcel_Style_Border::BORDER_DASHDOTDOT: - $blockLineStyle |= 0x0B << 4; - break; - case PHPExcel_Style_Border::BORDER_MEDIUMDASHDOTDOT: - $blockLineStyle |= 0x0C << 4; - break; - case PHPExcel_Style_Border::BORDER_SLANTDASHDOT: - $blockLineStyle |= 0x0D << 4; - break; - } - switch ($conditional->getStyle()->getBorders()->getTop()->getBorderStyle()) { - case PHPExcel_Style_Border::BORDER_NONE: - $blockLineStyle |= 0x00 << 8; - break; - case PHPExcel_Style_Border::BORDER_THIN: - $blockLineStyle |= 0x01 << 8; - break; - case PHPExcel_Style_Border::BORDER_MEDIUM: - $blockLineStyle |= 0x02 << 8; - break; - case PHPExcel_Style_Border::BORDER_DASHED: - $blockLineStyle |= 0x03 << 8; - break; - case PHPExcel_Style_Border::BORDER_DOTTED: - $blockLineStyle |= 0x04 << 8; - break; - case PHPExcel_Style_Border::BORDER_THICK: - $blockLineStyle |= 0x05 << 8; - break; - case PHPExcel_Style_Border::BORDER_DOUBLE: - $blockLineStyle |= 0x06 << 8; - break; - case PHPExcel_Style_Border::BORDER_HAIR: - $blockLineStyle |= 0x07 << 8; - break; - case PHPExcel_Style_Border::BORDER_MEDIUMDASHED: - $blockLineStyle |= 0x08 << 8; - break; - case PHPExcel_Style_Border::BORDER_DASHDOT: - $blockLineStyle |= 0x09 << 8; - break; - case PHPExcel_Style_Border::BORDER_MEDIUMDASHDOT: - $blockLineStyle |= 0x0A << 8; - break; - case PHPExcel_Style_Border::BORDER_DASHDOTDOT: - $blockLineStyle |= 0x0B << 8; - break; - case PHPExcel_Style_Border::BORDER_MEDIUMDASHDOTDOT: - $blockLineStyle |= 0x0C << 8; - break; - case PHPExcel_Style_Border::BORDER_SLANTDASHDOT: - $blockLineStyle |= 0x0D << 8; - break; - } - switch ($conditional->getStyle()->getBorders()->getBottom()->getBorderStyle()) { - case PHPExcel_Style_Border::BORDER_NONE: - $blockLineStyle |= 0x00 << 12; - break; - case PHPExcel_Style_Border::BORDER_THIN: - $blockLineStyle |= 0x01 << 12; - break; - case PHPExcel_Style_Border::BORDER_MEDIUM: - $blockLineStyle |= 0x02 << 12; - break; - case PHPExcel_Style_Border::BORDER_DASHED: - $blockLineStyle |= 0x03 << 12; - break; - case PHPExcel_Style_Border::BORDER_DOTTED: - $blockLineStyle |= 0x04 << 12; - break; - case PHPExcel_Style_Border::BORDER_THICK: - $blockLineStyle |= 0x05 << 12; - break; - case PHPExcel_Style_Border::BORDER_DOUBLE: - $blockLineStyle |= 0x06 << 12; - break; - case PHPExcel_Style_Border::BORDER_HAIR: - $blockLineStyle |= 0x07 << 12; - break; - case PHPExcel_Style_Border::BORDER_MEDIUMDASHED: - $blockLineStyle |= 0x08 << 12; - break; - case PHPExcel_Style_Border::BORDER_DASHDOT: - $blockLineStyle |= 0x09 << 12; - break; - case PHPExcel_Style_Border::BORDER_MEDIUMDASHDOT: - $blockLineStyle |= 0x0A << 12; - break; - case PHPExcel_Style_Border::BORDER_DASHDOTDOT: - $blockLineStyle |= 0x0B << 12; - break; - case PHPExcel_Style_Border::BORDER_MEDIUMDASHDOTDOT: - $blockLineStyle |= 0x0C << 12; - break; - case PHPExcel_Style_Border::BORDER_SLANTDASHDOT: - $blockLineStyle |= 0x0D << 12; - break; - } - //@todo writeCFRule() => $blockLineStyle => Index Color for left line - //@todo writeCFRule() => $blockLineStyle => Index Color for right line - //@todo writeCFRule() => $blockLineStyle => Top-left to bottom-right on/off - //@todo writeCFRule() => $blockLineStyle => Bottom-left to top-right on/off - $blockColor = 0; - //@todo writeCFRule() => $blockColor => Index Color for top line - //@todo writeCFRule() => $blockColor => Index Color for bottom line - //@todo writeCFRule() => $blockColor => Index Color for diagonal line - switch ($conditional->getStyle()->getBorders()->getDiagonal()->getBorderStyle()) { - case PHPExcel_Style_Border::BORDER_NONE: - $blockColor |= 0x00 << 21; - break; - case PHPExcel_Style_Border::BORDER_THIN: - $blockColor |= 0x01 << 21; - break; - case PHPExcel_Style_Border::BORDER_MEDIUM: - $blockColor |= 0x02 << 21; - break; - case PHPExcel_Style_Border::BORDER_DASHED: - $blockColor |= 0x03 << 21; - break; - case PHPExcel_Style_Border::BORDER_DOTTED: - $blockColor |= 0x04 << 21; - break; - case PHPExcel_Style_Border::BORDER_THICK: - $blockColor |= 0x05 << 21; - break; - case PHPExcel_Style_Border::BORDER_DOUBLE: - $blockColor |= 0x06 << 21; - break; - case PHPExcel_Style_Border::BORDER_HAIR: - $blockColor |= 0x07 << 21; - break; - case PHPExcel_Style_Border::BORDER_MEDIUMDASHED: - $blockColor |= 0x08 << 21; - break; - case PHPExcel_Style_Border::BORDER_DASHDOT: - $blockColor |= 0x09 << 21; - break; - case PHPExcel_Style_Border::BORDER_MEDIUMDASHDOT: - $blockColor |= 0x0A << 21; - break; - case PHPExcel_Style_Border::BORDER_DASHDOTDOT: - $blockColor |= 0x0B << 21; - break; - case PHPExcel_Style_Border::BORDER_MEDIUMDASHDOTDOT: - $blockColor |= 0x0C << 21; - break; - case PHPExcel_Style_Border::BORDER_SLANTDASHDOT: - $blockColor |= 0x0D << 21; - break; - } - $dataBlockBorder = pack('vv', $blockLineStyle, $blockColor); - } - if ($bFormatFill == 1) { - // Fill Patern Style - $blockFillPatternStyle = 0; - switch ($conditional->getStyle()->getFill()->getFillType()) { - case PHPExcel_Style_Fill::FILL_NONE: - $blockFillPatternStyle = 0x00; - break; - case PHPExcel_Style_Fill::FILL_SOLID: - $blockFillPatternStyle = 0x01; - break; - case PHPExcel_Style_Fill::FILL_PATTERN_MEDIUMGRAY: - $blockFillPatternStyle = 0x02; - break; - case PHPExcel_Style_Fill::FILL_PATTERN_DARKGRAY: - $blockFillPatternStyle = 0x03; - break; - case PHPExcel_Style_Fill::FILL_PATTERN_LIGHTGRAY: - $blockFillPatternStyle = 0x04; - break; - case PHPExcel_Style_Fill::FILL_PATTERN_DARKHORIZONTAL: - $blockFillPatternStyle = 0x05; - break; - case PHPExcel_Style_Fill::FILL_PATTERN_DARKVERTICAL: - $blockFillPatternStyle = 0x06; - break; - case PHPExcel_Style_Fill::FILL_PATTERN_DARKDOWN: - $blockFillPatternStyle = 0x07; - break; - case PHPExcel_Style_Fill::FILL_PATTERN_DARKUP: - $blockFillPatternStyle = 0x08; - break; - case PHPExcel_Style_Fill::FILL_PATTERN_DARKGRID: - $blockFillPatternStyle = 0x09; - break; - case PHPExcel_Style_Fill::FILL_PATTERN_DARKTRELLIS: - $blockFillPatternStyle = 0x0A; - break; - case PHPExcel_Style_Fill::FILL_PATTERN_LIGHTHORIZONTAL: - $blockFillPatternStyle = 0x0B; - break; - case PHPExcel_Style_Fill::FILL_PATTERN_LIGHTVERTICAL: - $blockFillPatternStyle = 0x0C; - break; - case PHPExcel_Style_Fill::FILL_PATTERN_LIGHTDOWN: - $blockFillPatternStyle = 0x0D; - break; - case PHPExcel_Style_Fill::FILL_PATTERN_LIGHTUP: - $blockFillPatternStyle = 0x0E; - break; - case PHPExcel_Style_Fill::FILL_PATTERN_LIGHTGRID: - $blockFillPatternStyle = 0x0F; - break; - case PHPExcel_Style_Fill::FILL_PATTERN_LIGHTTRELLIS: - $blockFillPatternStyle = 0x10; - break; - case PHPExcel_Style_Fill::FILL_PATTERN_GRAY125: - $blockFillPatternStyle = 0x11; - break; - case PHPExcel_Style_Fill::FILL_PATTERN_GRAY0625: - $blockFillPatternStyle = 0x12; - break; - case PHPExcel_Style_Fill::FILL_GRADIENT_LINEAR: - $blockFillPatternStyle = 0x00; - break; // does not exist in BIFF8 - case PHPExcel_Style_Fill::FILL_GRADIENT_PATH: - $blockFillPatternStyle = 0x00; - break; // does not exist in BIFF8 - default: - $blockFillPatternStyle = 0x00; - break; - } - // Color - switch ($conditional->getStyle()->getFill()->getStartColor()->getRGB()) { - case '000000': - $colorIdxBg = 0x08; - break; - case 'FFFFFF': - $colorIdxBg = 0x09; - break; - case 'FF0000': - $colorIdxBg = 0x0A; - break; - case '00FF00': - $colorIdxBg = 0x0B; - break; - case '0000FF': - $colorIdxBg = 0x0C; - break; - case 'FFFF00': - $colorIdxBg = 0x0D; - break; - case 'FF00FF': - $colorIdxBg = 0x0E; - break; - case '00FFFF': - $colorIdxBg = 0x0F; - break; - case '800000': - $colorIdxBg = 0x10; - break; - case '008000': - $colorIdxBg = 0x11; - break; - case '000080': - $colorIdxBg = 0x12; - break; - case '808000': - $colorIdxBg = 0x13; - break; - case '800080': - $colorIdxBg = 0x14; - break; - case '008080': - $colorIdxBg = 0x15; - break; - case 'C0C0C0': - $colorIdxBg = 0x16; - break; - case '808080': - $colorIdxBg = 0x17; - break; - case '9999FF': - $colorIdxBg = 0x18; - break; - case '993366': - $colorIdxBg = 0x19; - break; - case 'FFFFCC': - $colorIdxBg = 0x1A; - break; - case 'CCFFFF': - $colorIdxBg = 0x1B; - break; - case '660066': - $colorIdxBg = 0x1C; - break; - case 'FF8080': - $colorIdxBg = 0x1D; - break; - case '0066CC': - $colorIdxBg = 0x1E; - break; - case 'CCCCFF': - $colorIdxBg = 0x1F; - break; - case '000080': - $colorIdxBg = 0x20; - break; - case 'FF00FF': - $colorIdxBg = 0x21; - break; - case 'FFFF00': - $colorIdxBg = 0x22; - break; - case '00FFFF': - $colorIdxBg = 0x23; - break; - case '800080': - $colorIdxBg = 0x24; - break; - case '800000': - $colorIdxBg = 0x25; - break; - case '008080': - $colorIdxBg = 0x26; - break; - case '0000FF': - $colorIdxBg = 0x27; - break; - case '00CCFF': - $colorIdxBg = 0x28; - break; - case 'CCFFFF': - $colorIdxBg = 0x29; - break; - case 'CCFFCC': - $colorIdxBg = 0x2A; - break; - case 'FFFF99': - $colorIdxBg = 0x2B; - break; - case '99CCFF': - $colorIdxBg = 0x2C; - break; - case 'FF99CC': - $colorIdxBg = 0x2D; - break; - case 'CC99FF': - $colorIdxBg = 0x2E; - break; - case 'FFCC99': - $colorIdxBg = 0x2F; - break; - case '3366FF': - $colorIdxBg = 0x30; - break; - case '33CCCC': - $colorIdxBg = 0x31; - break; - case '99CC00': - $colorIdxBg = 0x32; - break; - case 'FFCC00': - $colorIdxBg = 0x33; - break; - case 'FF9900': - $colorIdxBg = 0x34; - break; - case 'FF6600': - $colorIdxBg = 0x35; - break; - case '666699': - $colorIdxBg = 0x36; - break; - case '969696': - $colorIdxBg = 0x37; - break; - case '003366': - $colorIdxBg = 0x38; - break; - case '339966': - $colorIdxBg = 0x39; - break; - case '003300': - $colorIdxBg = 0x3A; - break; - case '333300': - $colorIdxBg = 0x3B; - break; - case '993300': - $colorIdxBg = 0x3C; - break; - case '993366': - $colorIdxBg = 0x3D; - break; - case '333399': - $colorIdxBg = 0x3E; - break; - case '333333': - $colorIdxBg = 0x3F; - break; - default: - $colorIdxBg = 0x41; - break; - } - // Fg Color - switch ($conditional->getStyle()->getFill()->getEndColor()->getRGB()) { - case '000000': - $colorIdxFg = 0x08; - break; - case 'FFFFFF': - $colorIdxFg = 0x09; - break; - case 'FF0000': - $colorIdxFg = 0x0A; - break; - case '00FF00': - $colorIdxFg = 0x0B; - break; - case '0000FF': - $colorIdxFg = 0x0C; - break; - case 'FFFF00': - $colorIdxFg = 0x0D; - break; - case 'FF00FF': - $colorIdxFg = 0x0E; - break; - case '00FFFF': - $colorIdxFg = 0x0F; - break; - case '800000': - $colorIdxFg = 0x10; - break; - case '008000': - $colorIdxFg = 0x11; - break; - case '000080': - $colorIdxFg = 0x12; - break; - case '808000': - $colorIdxFg = 0x13; - break; - case '800080': - $colorIdxFg = 0x14; - break; - case '008080': - $colorIdxFg = 0x15; - break; - case 'C0C0C0': - $colorIdxFg = 0x16; - break; - case '808080': - $colorIdxFg = 0x17; - break; - case '9999FF': - $colorIdxFg = 0x18; - break; - case '993366': - $colorIdxFg = 0x19; - break; - case 'FFFFCC': - $colorIdxFg = 0x1A; - break; - case 'CCFFFF': - $colorIdxFg = 0x1B; - break; - case '660066': - $colorIdxFg = 0x1C; - break; - case 'FF8080': - $colorIdxFg = 0x1D; - break; - case '0066CC': - $colorIdxFg = 0x1E; - break; - case 'CCCCFF': - $colorIdxFg = 0x1F; - break; - case '000080': - $colorIdxFg = 0x20; - break; - case 'FF00FF': - $colorIdxFg = 0x21; - break; - case 'FFFF00': - $colorIdxFg = 0x22; - break; - case '00FFFF': - $colorIdxFg = 0x23; - break; - case '800080': - $colorIdxFg = 0x24; - break; - case '800000': - $colorIdxFg = 0x25; - break; - case '008080': - $colorIdxFg = 0x26; - break; - case '0000FF': - $colorIdxFg = 0x27; - break; - case '00CCFF': - $colorIdxFg = 0x28; - break; - case 'CCFFFF': - $colorIdxFg = 0x29; - break; - case 'CCFFCC': - $colorIdxFg = 0x2A; - break; - case 'FFFF99': - $colorIdxFg = 0x2B; - break; - case '99CCFF': - $colorIdxFg = 0x2C; - break; - case 'FF99CC': - $colorIdxFg = 0x2D; - break; - case 'CC99FF': - $colorIdxFg = 0x2E; - break; - case 'FFCC99': - $colorIdxFg = 0x2F; - break; - case '3366FF': - $colorIdxFg = 0x30; - break; - case '33CCCC': - $colorIdxFg = 0x31; - break; - case '99CC00': - $colorIdxFg = 0x32; - break; - case 'FFCC00': - $colorIdxFg = 0x33; - break; - case 'FF9900': - $colorIdxFg = 0x34; - break; - case 'FF6600': - $colorIdxFg = 0x35; - break; - case '666699': - $colorIdxFg = 0x36; - break; - case '969696': - $colorIdxFg = 0x37; - break; - case '003366': - $colorIdxFg = 0x38; - break; - case '339966': - $colorIdxFg = 0x39; - break; - case '003300': - $colorIdxFg = 0x3A; - break; - case '333300': - $colorIdxFg = 0x3B; - break; - case '993300': - $colorIdxFg = 0x3C; - break; - case '993366': - $colorIdxFg = 0x3D; - break; - case '333399': - $colorIdxFg = 0x3E; - break; - case '333333': - $colorIdxFg = 0x3F; - break; - default: - $colorIdxFg = 0x40; - break; - } - $dataBlockFill = pack('v', $blockFillPatternStyle); - $dataBlockFill .= pack('v', $colorIdxFg | ($colorIdxBg << 7)); - } - if ($bFormatProt == 1) { - $dataBlockProtection = 0; - if ($conditional->getStyle()->getProtection()->getLocked() == PHPExcel_Style_Protection::PROTECTION_PROTECTED) { - $dataBlockProtection = 1; - } - if ($conditional->getStyle()->getProtection()->getHidden() == PHPExcel_Style_Protection::PROTECTION_PROTECTED) { - $dataBlockProtection = 1 << 1; - } - } - - $data = pack('CCvvVv', $type, $operatorType, $szValue1, $szValue2, $flags, 0x0000); - if ($bFormatFont == 1) { // Block Formatting : OK - $data .= $dataBlockFont; - } - if ($bFormatAlign == 1) { - $data .= $dataBlockAlign; - } - if ($bFormatBorder == 1) { - $data .= $dataBlockBorder; - } - if ($bFormatFill == 1) { // Block Formatting : OK - $data .= $dataBlockFill; - } - if ($bFormatProt == 1) { - $data .= $dataBlockProtection; - } - if (!is_null($operand1)) { - $data .= $operand1; - } - if (!is_null($operand2)) { - $data .= $operand2; - } - $header = pack('vv', $record, strlen($data)); - $this->append($header . $data); - } - - /** - * Retrieves data from memory in one chunk, or from disk in $buffer - * sized chunks. - * - * @return string The data - */ - public function getData() - { - $buffer = 4096; - - // Return data stored in memory - if (isset($this->_data)) { - $tmp = $this->_data; - unset($this->_data); - return $tmp; - } - // No data to return - return false; - } - - /** - * Set the option to print the row and column headers on the printed page. - * - * @access public - * @param integer $print Whether to print the headers or not. Defaults to 1 (print). - */ - public function printRowColHeaders($print = 1) - { - $this->_print_headers = $print; - } - - /** - * This method sets the properties for outlining and grouping. The defaults - * correspond to Excel's defaults. - * - * @param bool $visible - * @param bool $symbols_below - * @param bool $symbols_right - * @param bool $auto_style - */ - public function setOutline($visible = true, $symbols_below = true, $symbols_right = true, $auto_style = false) - { - $this->outlineOn = $visible; - $this->outlineBelow = $symbols_below; - $this->outlineRight = $symbols_right; - $this->outlineStyle = $auto_style; - - // Ensure this is a boolean vale for Window2 - if ($this->outlineOn) { - $this->outlineOn = 1; - } - } - - /** - * Insert a 24bit bitmap image in a worksheet. - * - * @access public - * @param integer $row The row we are going to insert the bitmap into - * @param integer $col The column we are going to insert the bitmap into - * @param mixed $bitmap The bitmap filename or GD-image resource - * @param integer $x The horizontal position (offset) of the image inside the cell. - * @param integer $y The vertical position (offset) of the image inside the cell. - * @param float $scale_x The horizontal scale - * @param float $scale_y The vertical scale - */ - public function insertBitmap($row, $col, $bitmap, $x = 0, $y = 0, $scale_x = 1, $scale_y = 1) - { - $bitmap_array = (is_resource($bitmap) ? $this->processBitmapGd($bitmap) : $this->processBitmap($bitmap)); - list($width, $height, $size, $data) = $bitmap_array; //$this->processBitmap($bitmap); - - // Scale the frame of the image. - $width *= $scale_x; - $height *= $scale_y; - - // Calculate the vertices of the image and write the OBJ record - $this->positionImage($col, $row, $x, $y, $width, $height); - - // Write the IMDATA record to store the bitmap data - $record = 0x007f; - $length = 8 + $size; - $cf = 0x09; - $env = 0x01; - $lcb = $size; - - $header = pack("vvvvV", $record, $length, $cf, $env, $lcb); - $this->append($header.$data); - } - - /** - * Convert a GD-image into the internal format. - * - * @access private - * @param resource $image The image to process - * @return array Array with data and properties of the bitmap - */ - public function processBitmapGd($image) - { - $width = imagesx($image); - $height = imagesy($image); - - $data = pack("Vvvvv", 0x000c, $width, $height, 0x01, 0x18); - for ($j=$height; $j--;) { - for ($i=0; $i < $width; ++$i) { - $color = imagecolorsforindex($image, imagecolorat($image, $i, $j)); - foreach (array("red", "green", "blue") as $key) { - $color[$key] = $color[$key] + round((255 - $color[$key]) * $color["alpha"] / 127); - } - $data .= chr($color["blue"]) . chr($color["green"]) . chr($color["red"]); - } - if (3*$width % 4) { - $data .= str_repeat("\x00", 4 - 3*$width % 4); - } - } - - return array($width, $height, strlen($data), $data); - } - - /** - * Convert a 24 bit bitmap into the modified internal format used by Windows. - * This is described in BITMAPCOREHEADER and BITMAPCOREINFO structures in the - * MSDN library. - * - * @access private - * @param string $bitmap The bitmap to process - * @return array Array with data and properties of the bitmap - */ - public function processBitmap($bitmap) - { - // Open file. - $bmp_fd = @fopen($bitmap, "rb"); - if (!$bmp_fd) { - throw new PHPExcel_Writer_Exception("Couldn't import $bitmap"); - } - - // Slurp the file into a string. - $data = fread($bmp_fd, filesize($bitmap)); - - // Check that the file is big enough to be a bitmap. - if (strlen($data) <= 0x36) { - throw new PHPExcel_Writer_Exception("$bitmap doesn't contain enough data.\n"); - } - - // The first 2 bytes are used to identify the bitmap. - $identity = unpack("A2ident", $data); - if ($identity['ident'] != "BM") { - throw new PHPExcel_Writer_Exception("$bitmap doesn't appear to be a valid bitmap image.\n"); - } - - // Remove bitmap data: ID. - $data = substr($data, 2); - - // Read and remove the bitmap size. This is more reliable than reading - // the data size at offset 0x22. - // - $size_array = unpack("Vsa", substr($data, 0, 4)); - $size = $size_array['sa']; - $data = substr($data, 4); - $size -= 0x36; // Subtract size of bitmap header. - $size += 0x0C; // Add size of BIFF header. - - // Remove bitmap data: reserved, offset, header length. - $data = substr($data, 12); - - // Read and remove the bitmap width and height. Verify the sizes. - $width_and_height = unpack("V2", substr($data, 0, 8)); - $width = $width_and_height[1]; - $height = $width_and_height[2]; - $data = substr($data, 8); - if ($width > 0xFFFF) { - throw new PHPExcel_Writer_Exception("$bitmap: largest image width supported is 65k.\n"); - } - if ($height > 0xFFFF) { - throw new PHPExcel_Writer_Exception("$bitmap: largest image height supported is 65k.\n"); - } - - // Read and remove the bitmap planes and bpp data. Verify them. - $planes_and_bitcount = unpack("v2", substr($data, 0, 4)); - $data = substr($data, 4); - if ($planes_and_bitcount[2] != 24) { // Bitcount - throw new PHPExcel_Writer_Exception("$bitmap isn't a 24bit true color bitmap.\n"); - } - if ($planes_and_bitcount[1] != 1) { - throw new PHPExcel_Writer_Exception("$bitmap: only 1 plane supported in bitmap image.\n"); - } - - // Read and remove the bitmap compression. Verify compression. - $compression = unpack("Vcomp", substr($data, 0, 4)); - $data = substr($data, 4); - - //$compression = 0; - if ($compression['comp'] != 0) { - throw new PHPExcel_Writer_Exception("$bitmap: compression not supported in bitmap image.\n"); - } - - // Remove bitmap data: data size, hres, vres, colours, imp. colours. - $data = substr($data, 20); - - // Add the BITMAPCOREHEADER data - $header = pack("Vvvvv", 0x000c, $width, $height, 0x01, 0x18); - $data = $header . $data; - - return (array($width, $height, $size, $data)); - } - - /** - * Calculate the vertices that define the position of the image as required by - * the OBJ record. - * - * +------------+------------+ - * | A | B | - * +-----+------------+------------+ - * | |(x1,y1) | | - * | 1 |(A1)._______|______ | - * | | | | | - * | | | | | - * +-----+----| BITMAP |-----+ - * | | | | | - * | 2 | |______________. | - * | | | (B2)| - * | | | (x2,y2)| - * +---- +------------+------------+ - * - * Example of a bitmap that covers some of the area from cell A1 to cell B2. - * - * Based on the width and height of the bitmap we need to calculate 8 vars: - * $col_start, $row_start, $col_end, $row_end, $x1, $y1, $x2, $y2. - * The width and height of the cells are also variable and have to be taken into - * account. - * The values of $col_start and $row_start are passed in from the calling - * function. The values of $col_end and $row_end are calculated by subtracting - * the width and height of the bitmap from the width and height of the - * underlying cells. - * The vertices are expressed as a percentage of the underlying cell width as - * follows (rhs values are in pixels): - * - * x1 = X / W *1024 - * y1 = Y / H *256 - * x2 = (X-1) / W *1024 - * y2 = (Y-1) / H *256 - * - * Where: X is distance from the left side of the underlying cell - * Y is distance from the top of the underlying cell - * W is the width of the cell - * H is the height of the cell - * The SDK incorrectly states that the height should be expressed as a - * percentage of 1024. - * - * @access private - * @param integer $col_start Col containing upper left corner of object - * @param integer $row_start Row containing top left corner of object - * @param integer $x1 Distance to left side of object - * @param integer $y1 Distance to top of object - * @param integer $width Width of image frame - * @param integer $height Height of image frame - */ - public function positionImage($col_start, $row_start, $x1, $y1, $width, $height) - { - // Initialise end cell to the same as the start cell - $col_end = $col_start; // Col containing lower right corner of object - $row_end = $row_start; // Row containing bottom right corner of object - - // Zero the specified offset if greater than the cell dimensions - if ($x1 >= PHPExcel_Shared_Excel5::sizeCol($this->phpSheet, PHPExcel_Cell::stringFromColumnIndex($col_start))) { - $x1 = 0; - } - if ($y1 >= PHPExcel_Shared_Excel5::sizeRow($this->phpSheet, $row_start + 1)) { - $y1 = 0; - } - - $width = $width + $x1 -1; - $height = $height + $y1 -1; - - // Subtract the underlying cell widths to find the end cell of the image - while ($width >= PHPExcel_Shared_Excel5::sizeCol($this->phpSheet, PHPExcel_Cell::stringFromColumnIndex($col_end))) { - $width -= PHPExcel_Shared_Excel5::sizeCol($this->phpSheet, PHPExcel_Cell::stringFromColumnIndex($col_end)); - ++$col_end; - } - - // Subtract the underlying cell heights to find the end cell of the image - while ($height >= PHPExcel_Shared_Excel5::sizeRow($this->phpSheet, $row_end + 1)) { - $height -= PHPExcel_Shared_Excel5::sizeRow($this->phpSheet, $row_end + 1); - ++$row_end; - } - - // Bitmap isn't allowed to start or finish in a hidden cell, i.e. a cell - // with zero eight or width. - // - if (PHPExcel_Shared_Excel5::sizeCol($this->phpSheet, PHPExcel_Cell::stringFromColumnIndex($col_start)) == 0) { - return; - } - if (PHPExcel_Shared_Excel5::sizeCol($this->phpSheet, PHPExcel_Cell::stringFromColumnIndex($col_end)) == 0) { - return; - } - if (PHPExcel_Shared_Excel5::sizeRow($this->phpSheet, $row_start + 1) == 0) { - return; - } - if (PHPExcel_Shared_Excel5::sizeRow($this->phpSheet, $row_end + 1) == 0) { - return; - } - - // Convert the pixel values to the percentage value expected by Excel - $x1 = $x1 / PHPExcel_Shared_Excel5::sizeCol($this->phpSheet, PHPExcel_Cell::stringFromColumnIndex($col_start)) * 1024; - $y1 = $y1 / PHPExcel_Shared_Excel5::sizeRow($this->phpSheet, $row_start + 1) * 256; - $x2 = $width / PHPExcel_Shared_Excel5::sizeCol($this->phpSheet, PHPExcel_Cell::stringFromColumnIndex($col_end)) * 1024; // Distance to right side of object - $y2 = $height / PHPExcel_Shared_Excel5::sizeRow($this->phpSheet, $row_end + 1) * 256; // Distance to bottom of object - - $this->writeObjPicture($col_start, $x1, $row_start, $y1, $col_end, $x2, $row_end, $y2); - } - - /** - * Store the OBJ record that precedes an IMDATA record. This could be generalise - * to support other Excel objects. - * - * @param integer $colL Column containing upper left corner of object - * @param integer $dxL Distance from left side of cell - * @param integer $rwT Row containing top left corner of object - * @param integer $dyT Distance from top of cell - * @param integer $colR Column containing lower right corner of object - * @param integer $dxR Distance from right of cell - * @param integer $rwB Row containing bottom right corner of object - * @param integer $dyB Distance from bottom of cell - */ - private function writeObjPicture($colL, $dxL, $rwT, $dyT, $colR, $dxR, $rwB, $dyB) - { - $record = 0x005d; // Record identifier - $length = 0x003c; // Bytes to follow - - $cObj = 0x0001; // Count of objects in file (set to 1) - $OT = 0x0008; // Object type. 8 = Picture - $id = 0x0001; // Object ID - $grbit = 0x0614; // Option flags - - $cbMacro = 0x0000; // Length of FMLA structure - $Reserved1 = 0x0000; // Reserved - $Reserved2 = 0x0000; // Reserved - - $icvBack = 0x09; // Background colour - $icvFore = 0x09; // Foreground colour - $fls = 0x00; // Fill pattern - $fAuto = 0x00; // Automatic fill - $icv = 0x08; // Line colour - $lns = 0xff; // Line style - $lnw = 0x01; // Line weight - $fAutoB = 0x00; // Automatic border - $frs = 0x0000; // Frame style - $cf = 0x0009; // Image format, 9 = bitmap - $Reserved3 = 0x0000; // Reserved - $cbPictFmla = 0x0000; // Length of FMLA structure - $Reserved4 = 0x0000; // Reserved - $grbit2 = 0x0001; // Option flags - $Reserved5 = 0x0000; // Reserved - - - $header = pack("vv", $record, $length); - $data = pack("V", $cObj); - $data .= pack("v", $OT); - $data .= pack("v", $id); - $data .= pack("v", $grbit); - $data .= pack("v", $colL); - $data .= pack("v", $dxL); - $data .= pack("v", $rwT); - $data .= pack("v", $dyT); - $data .= pack("v", $colR); - $data .= pack("v", $dxR); - $data .= pack("v", $rwB); - $data .= pack("v", $dyB); - $data .= pack("v", $cbMacro); - $data .= pack("V", $Reserved1); - $data .= pack("v", $Reserved2); - $data .= pack("C", $icvBack); - $data .= pack("C", $icvFore); - $data .= pack("C", $fls); - $data .= pack("C", $fAuto); - $data .= pack("C", $icv); - $data .= pack("C", $lns); - $data .= pack("C", $lnw); - $data .= pack("C", $fAutoB); - $data .= pack("v", $frs); - $data .= pack("V", $cf); - $data .= pack("v", $Reserved3); - $data .= pack("v", $cbPictFmla); - $data .= pack("v", $Reserved4); - $data .= pack("v", $grbit2); - $data .= pack("V", $Reserved5); - - $this->append($header . $data); - } - - /** - * Get Escher object - * - * @return PHPExcel_Shared_Escher - */ - public function getEscher() - { - return $this->escher; - } - - /** - * Set Escher object - * - * @param PHPExcel_Shared_Escher $pValue - */ - public function setEscher(PHPExcel_Shared_Escher $pValue = null) - { - $this->escher = $pValue; - } - - /** - * Write a string to the specified row and column (zero indexed). - * NOTE: there is an Excel 5 defined limit of 255 characters. - * $format is optional. - * Returns 0 : normal termination - * -2 : row or column out of range - * -3 : long string truncated to 255 chars - * - * @access public - * @param integer $row Zero indexed row - * @param integer $col Zero indexed column - * @param string $str The string to write - * @param mixed $xfIndex The XF format index for the cell - * @return integer - */ - private function writeLabel($row, $col, $str, $xfIndex) - { - $strlen = strlen($str); - $record = 0x0204; // Record identifier - $length = 0x0008 + $strlen; // Bytes to follow - - $str_error = 0; - - if ($strlen > $this->xlsStringMaxLength) { // LABEL must be < 255 chars - $str = substr($str, 0, $this->xlsStringMaxLength); - $length = 0x0008 + $this->xlsStringMaxLength; - $strlen = $this->xlsStringMaxLength; - $str_error = -3; - } - - $header = pack("vv", $record, $length); - $data = pack("vvvv", $row, $col, $xfIndex, $strlen); - $this->append($header . $data . $str); - return($str_error); - } - - /** - * Writes a note associated with the cell given by the row and column. - * NOTE records don't have a length limit. - * - * @param integer $row Zero indexed row - * @param integer $col Zero indexed column - * @param string $note The note to write - */ - private function writeNote($row, $col, $note) - { - $note_length = strlen($note); - $record = 0x001C; // Record identifier - $max_length = 2048; // Maximun length for a NOTE record - - // Length for this record is no more than 2048 + 6 - $length = 0x0006 + min($note_length, 2048); - $header = pack("vv", $record, $length); - $data = pack("vvv", $row, $col, $note_length); - $this->append($header . $data . substr($note, 0, 2048)); - - for ($i = $max_length; $i < $note_length; $i += $max_length) { - $chunk = substr($note, $i, $max_length); - $length = 0x0006 + strlen($chunk); - $header = pack("vv", $record, $length); - $data = pack("vvv", -1, 0, strlen($chunk)); - $this->append($header.$data.$chunk); - } - return(0); - } - - /** - * Write BIFF record EXTERNCOUNT to indicate the number of external sheet - * references in a worksheet. - * - * Excel only stores references to external sheets that are used in formulas. - * For simplicity we store references to all the sheets in the workbook - * regardless of whether they are used or not. This reduces the overall - * complexity and eliminates the need for a two way dialogue between the formula - * parser the worksheet objects. - * - * @param integer $count The number of external sheet references in this worksheet - */ - private function writeExterncount($count) - { - $record = 0x0016; // Record identifier - $length = 0x0002; // Number of bytes to follow - - $header = pack("vv", $record, $length); - $data = pack("v", $count); - $this->append($header . $data); - } - - /** - * Writes the Excel BIFF EXTERNSHEET record. These references are used by - * formulas. A formula references a sheet name via an index. Since we store a - * reference to all of the external worksheets the EXTERNSHEET index is the same - * as the worksheet index. - * - * @param string $sheetname The name of a external worksheet - */ - private function writeExternsheet($sheetname) - { - $record = 0x0017; // Record identifier - - // References to the current sheet are encoded differently to references to - // external sheets. - // - if ($this->phpSheet->getTitle() == $sheetname) { - $sheetname = ''; - $length = 0x02; // The following 2 bytes - $cch = 1; // The following byte - $rgch = 0x02; // Self reference - } else { - $length = 0x02 + strlen($sheetname); - $cch = strlen($sheetname); - $rgch = 0x03; // Reference to a sheet in the current workbook - } - - $header = pack("vv", $record, $length); - $data = pack("CC", $cch, $rgch); - $this->append($header . $data . $sheetname); - } -} diff --git a/Utils/PHPExcel/Writer/Excel5/Xf.php b/Utils/PHPExcel/Writer/Excel5/Xf.php deleted file mode 100644 index e41589a..0000000 --- a/Utils/PHPExcel/Writer/Excel5/Xf.php +++ /dev/null @@ -1,557 +0,0 @@ -<?php - -/** - * PHPExcel_Writer_Excel5_Xf - * - * Copyright (c) 2006 - 2015 PHPExcel - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - * - * @category PHPExcel - * @package PHPExcel_Writer_Excel5 - * @copyright Copyright (c) 2006 - 2015 PHPExcel (http://www.codeplex.com/PHPExcel) - * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL - * @version ##VERSION##, ##DATE## - */ - -// Original file header of PEAR::Spreadsheet_Excel_Writer_Format (used as the base for this class): -// ----------------------------------------------------------------------------------------- -// /* -// * Module written/ported by Xavier Noguer <xnoguer@rezebra.com> -// * -// * The majority of this is _NOT_ my code. I simply ported it from the -// * PERL Spreadsheet::WriteExcel module. -// * -// * The author of the Spreadsheet::WriteExcel module is John McNamara -// * <jmcnamara@cpan.org> -// * -// * I _DO_ maintain this code, and John McNamara has nothing to do with the -// * porting of this code to PHP. Any questions directly related to this -// * class library should be directed to me. -// * -// * License Information: -// * -// * Spreadsheet_Excel_Writer: A library for generating Excel Spreadsheets -// * Copyright (c) 2002-2003 Xavier Noguer xnoguer@rezebra.com -// * -// * This library is free software; you can redistribute it and/or -// * modify it under the terms of the GNU Lesser General Public -// * License as published by the Free Software Foundation; either -// * version 2.1 of the License, or (at your option) any later version. -// * -// * This library is distributed in the hope that it will be useful, -// * but WITHOUT ANY WARRANTY; without even the implied warranty of -// * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// * Lesser General Public License for more details. -// * -// * You should have received a copy of the GNU Lesser General Public -// * License along with this library; if not, write to the Free Software -// * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -// */ -class PHPExcel_Writer_Excel5_Xf -{ - /** - * Style XF or a cell XF ? - * - * @var boolean - */ - private $isStyleXf; - - /** - * Index to the FONT record. Index 4 does not exist - * @var integer - */ - private $fontIndex; - - /** - * An index (2 bytes) to a FORMAT record (number format). - * @var integer - */ - private $numberFormatIndex; - - /** - * 1 bit, apparently not used. - * @var integer - */ - private $textJustLast; - - /** - * The cell's foreground color. - * @var integer - */ - private $foregroundColor; - - /** - * The cell's background color. - * @var integer - */ - private $backgroundColor; - - /** - * Color of the bottom border of the cell. - * @var integer - */ - private $bottomBorderColor; - - /** - * Color of the top border of the cell. - * @var integer - */ - private $topBorderColor; - - /** - * Color of the left border of the cell. - * @var integer - */ - private $leftBorderColor; - - /** - * Color of the right border of the cell. - * @var integer - */ - private $rightBorderColor; - - /** - * Constructor - * - * @access public - * @param PHPExcel_Style The XF format - */ - public function __construct(PHPExcel_Style $style = null) - { - $this->isStyleXf = false; - $this->fontIndex = 0; - - $this->numberFormatIndex = 0; - - $this->textJustLast = 0; - - $this->foregroundColor = 0x40; - $this->backgroundColor = 0x41; - - $this->_diag = 0; - - $this->bottomBorderColor = 0x40; - $this->topBorderColor = 0x40; - $this->leftBorderColor = 0x40; - $this->rightBorderColor = 0x40; - $this->_diag_color = 0x40; - $this->_style = $style; - - } - - - /** - * Generate an Excel BIFF XF record (style or cell). - * - * @return string The XF record - */ - public function writeXf() - { - // Set the type of the XF record and some of the attributes. - if ($this->isStyleXf) { - $style = 0xFFF5; - } else { - $style = self::mapLocked($this->_style->getProtection()->getLocked()); - $style |= self::mapHidden($this->_style->getProtection()->getHidden()) << 1; - } - - // Flags to indicate if attributes have been set. - $atr_num = ($this->numberFormatIndex != 0)?1:0; - $atr_fnt = ($this->fontIndex != 0)?1:0; - $atr_alc = ((int) $this->_style->getAlignment()->getWrapText()) ? 1 : 0; - $atr_bdr = (self::mapBorderStyle($this->_style->getBorders()->getBottom()->getBorderStyle()) || - self::mapBorderStyle($this->_style->getBorders()->getTop()->getBorderStyle()) || - self::mapBorderStyle($this->_style->getBorders()->getLeft()->getBorderStyle()) || - self::mapBorderStyle($this->_style->getBorders()->getRight()->getBorderStyle()))?1:0; - $atr_pat = (($this->foregroundColor != 0x40) || - ($this->backgroundColor != 0x41) || - self::mapFillType($this->_style->getFill()->getFillType()))?1:0; - $atr_prot = self::mapLocked($this->_style->getProtection()->getLocked()) - | self::mapHidden($this->_style->getProtection()->getHidden()); - - // Zero the default border colour if the border has not been set. - if (self::mapBorderStyle($this->_style->getBorders()->getBottom()->getBorderStyle()) == 0) { - $this->bottomBorderColor = 0; - } - if (self::mapBorderStyle($this->_style->getBorders()->getTop()->getBorderStyle()) == 0) { - $this->topBorderColor = 0; - } - if (self::mapBorderStyle($this->_style->getBorders()->getRight()->getBorderStyle()) == 0) { - $this->rightBorderColor = 0; - } - if (self::mapBorderStyle($this->_style->getBorders()->getLeft()->getBorderStyle()) == 0) { - $this->leftBorderColor = 0; - } - if (self::mapBorderStyle($this->_style->getBorders()->getDiagonal()->getBorderStyle()) == 0) { - $this->_diag_color = 0; - } - - $record = 0x00E0; // Record identifier - $length = 0x0014; // Number of bytes to follow - - $ifnt = $this->fontIndex; // Index to FONT record - $ifmt = $this->numberFormatIndex; // Index to FORMAT record - - $align = $this->mapHAlign($this->_style->getAlignment()->getHorizontal()); // Alignment - $align |= (int) $this->_style->getAlignment()->getWrapText() << 3; - $align |= self::mapVAlign($this->_style->getAlignment()->getVertical()) << 4; - $align |= $this->textJustLast << 7; - - $used_attrib = $atr_num << 2; - $used_attrib |= $atr_fnt << 3; - $used_attrib |= $atr_alc << 4; - $used_attrib |= $atr_bdr << 5; - $used_attrib |= $atr_pat << 6; - $used_attrib |= $atr_prot << 7; - - $icv = $this->foregroundColor; // fg and bg pattern colors - $icv |= $this->backgroundColor << 7; - - $border1 = self::mapBorderStyle($this->_style->getBorders()->getLeft()->getBorderStyle()); // Border line style and color - $border1 |= self::mapBorderStyle($this->_style->getBorders()->getRight()->getBorderStyle()) << 4; - $border1 |= self::mapBorderStyle($this->_style->getBorders()->getTop()->getBorderStyle()) << 8; - $border1 |= self::mapBorderStyle($this->_style->getBorders()->getBottom()->getBorderStyle()) << 12; - $border1 |= $this->leftBorderColor << 16; - $border1 |= $this->rightBorderColor << 23; - - $diagonalDirection = $this->_style->getBorders()->getDiagonalDirection(); - $diag_tl_to_rb = $diagonalDirection == PHPExcel_Style_Borders::DIAGONAL_BOTH - || $diagonalDirection == PHPExcel_Style_Borders::DIAGONAL_DOWN; - $diag_tr_to_lb = $diagonalDirection == PHPExcel_Style_Borders::DIAGONAL_BOTH - || $diagonalDirection == PHPExcel_Style_Borders::DIAGONAL_UP; - $border1 |= $diag_tl_to_rb << 30; - $border1 |= $diag_tr_to_lb << 31; - - $border2 = $this->topBorderColor; // Border color - $border2 |= $this->bottomBorderColor << 7; - $border2 |= $this->_diag_color << 14; - $border2 |= self::mapBorderStyle($this->_style->getBorders()->getDiagonal()->getBorderStyle()) << 21; - $border2 |= self::mapFillType($this->_style->getFill()->getFillType()) << 26; - - $header = pack("vv", $record, $length); - - //BIFF8 options: identation, shrinkToFit and text direction - $biff8_options = $this->_style->getAlignment()->getIndent(); - $biff8_options |= (int) $this->_style->getAlignment()->getShrinkToFit() << 4; - - $data = pack("vvvC", $ifnt, $ifmt, $style, $align); - $data .= pack("CCC", self::mapTextRotation($this->_style->getAlignment()->getTextRotation()), $biff8_options, $used_attrib); - $data .= pack("VVv", $border1, $border2, $icv); - - return($header . $data); - } - - /** - * Is this a style XF ? - * - * @param boolean $value - */ - public function setIsStyleXf($value) - { - $this->isStyleXf = $value; - } - - /** - * Sets the cell's bottom border color - * - * @access public - * @param int $colorIndex Color index - */ - public function setBottomColor($colorIndex) - { - $this->bottomBorderColor = $colorIndex; - } - - /** - * Sets the cell's top border color - * - * @access public - * @param int $colorIndex Color index - */ - public function setTopColor($colorIndex) - { - $this->topBorderColor = $colorIndex; - } - - /** - * Sets the cell's left border color - * - * @access public - * @param int $colorIndex Color index - */ - public function setLeftColor($colorIndex) - { - $this->leftBorderColor = $colorIndex; - } - - /** - * Sets the cell's right border color - * - * @access public - * @param int $colorIndex Color index - */ - public function setRightColor($colorIndex) - { - $this->rightBorderColor = $colorIndex; - } - - /** - * Sets the cell's diagonal border color - * - * @access public - * @param int $colorIndex Color index - */ - public function setDiagColor($colorIndex) - { - $this->_diag_color = $colorIndex; - } - - - /** - * Sets the cell's foreground color - * - * @access public - * @param int $colorIndex Color index - */ - public function setFgColor($colorIndex) - { - $this->foregroundColor = $colorIndex; - } - - /** - * Sets the cell's background color - * - * @access public - * @param int $colorIndex Color index - */ - public function setBgColor($colorIndex) - { - $this->backgroundColor = $colorIndex; - } - - /** - * Sets the index to the number format record - * It can be date, time, currency, etc... - * - * @access public - * @param integer $numberFormatIndex Index to format record - */ - public function setNumberFormatIndex($numberFormatIndex) - { - $this->numberFormatIndex = $numberFormatIndex; - } - - /** - * Set the font index. - * - * @param int $value Font index, note that value 4 does not exist - */ - public function setFontIndex($value) - { - $this->fontIndex = $value; - } - - /** - * Map of BIFF2-BIFF8 codes for border styles - * @static array of int - * - */ - private static $mapBorderStyles = array( - PHPExcel_Style_Border::BORDER_NONE => 0x00, - PHPExcel_Style_Border::BORDER_THIN => 0x01, - PHPExcel_Style_Border::BORDER_MEDIUM => 0x02, - PHPExcel_Style_Border::BORDER_DASHED => 0x03, - PHPExcel_Style_Border::BORDER_DOTTED => 0x04, - PHPExcel_Style_Border::BORDER_THICK => 0x05, - PHPExcel_Style_Border::BORDER_DOUBLE => 0x06, - PHPExcel_Style_Border::BORDER_HAIR => 0x07, - PHPExcel_Style_Border::BORDER_MEDIUMDASHED => 0x08, - PHPExcel_Style_Border::BORDER_DASHDOT => 0x09, - PHPExcel_Style_Border::BORDER_MEDIUMDASHDOT => 0x0A, - PHPExcel_Style_Border::BORDER_DASHDOTDOT => 0x0B, - PHPExcel_Style_Border::BORDER_MEDIUMDASHDOTDOT => 0x0C, - PHPExcel_Style_Border::BORDER_SLANTDASHDOT => 0x0D, - ); - - /** - * Map border style - * - * @param string $borderStyle - * @return int - */ - private static function mapBorderStyle($borderStyle) - { - if (isset(self::$mapBorderStyles[$borderStyle])) { - return self::$mapBorderStyles[$borderStyle]; - } - return 0x00; - } - - /** - * Map of BIFF2-BIFF8 codes for fill types - * @static array of int - * - */ - private static $mapFillTypes = array( - PHPExcel_Style_Fill::FILL_NONE => 0x00, - PHPExcel_Style_Fill::FILL_SOLID => 0x01, - PHPExcel_Style_Fill::FILL_PATTERN_MEDIUMGRAY => 0x02, - PHPExcel_Style_Fill::FILL_PATTERN_DARKGRAY => 0x03, - PHPExcel_Style_Fill::FILL_PATTERN_LIGHTGRAY => 0x04, - PHPExcel_Style_Fill::FILL_PATTERN_DARKHORIZONTAL => 0x05, - PHPExcel_Style_Fill::FILL_PATTERN_DARKVERTICAL => 0x06, - PHPExcel_Style_Fill::FILL_PATTERN_DARKDOWN => 0x07, - PHPExcel_Style_Fill::FILL_PATTERN_DARKUP => 0x08, - PHPExcel_Style_Fill::FILL_PATTERN_DARKGRID => 0x09, - PHPExcel_Style_Fill::FILL_PATTERN_DARKTRELLIS => 0x0A, - PHPExcel_Style_Fill::FILL_PATTERN_LIGHTHORIZONTAL => 0x0B, - PHPExcel_Style_Fill::FILL_PATTERN_LIGHTVERTICAL => 0x0C, - PHPExcel_Style_Fill::FILL_PATTERN_LIGHTDOWN => 0x0D, - PHPExcel_Style_Fill::FILL_PATTERN_LIGHTUP => 0x0E, - PHPExcel_Style_Fill::FILL_PATTERN_LIGHTGRID => 0x0F, - PHPExcel_Style_Fill::FILL_PATTERN_LIGHTTRELLIS => 0x10, - PHPExcel_Style_Fill::FILL_PATTERN_GRAY125 => 0x11, - PHPExcel_Style_Fill::FILL_PATTERN_GRAY0625 => 0x12, - PHPExcel_Style_Fill::FILL_GRADIENT_LINEAR => 0x00, // does not exist in BIFF8 - PHPExcel_Style_Fill::FILL_GRADIENT_PATH => 0x00, // does not exist in BIFF8 - ); - - /** - * Map fill type - * - * @param string $fillType - * @return int - */ - private static function mapFillType($fillType) - { - if (isset(self::$mapFillTypes[$fillType])) { - return self::$mapFillTypes[$fillType]; - } - return 0x00; - } - - /** - * Map of BIFF2-BIFF8 codes for horizontal alignment - * @static array of int - * - */ - private static $mapHAlignments = array( - PHPExcel_Style_Alignment::HORIZONTAL_GENERAL => 0, - PHPExcel_Style_Alignment::HORIZONTAL_LEFT => 1, - PHPExcel_Style_Alignment::HORIZONTAL_CENTER => 2, - PHPExcel_Style_Alignment::HORIZONTAL_RIGHT => 3, - PHPExcel_Style_Alignment::HORIZONTAL_FILL => 4, - PHPExcel_Style_Alignment::HORIZONTAL_JUSTIFY => 5, - PHPExcel_Style_Alignment::HORIZONTAL_CENTER_CONTINUOUS => 6, - ); - - /** - * Map to BIFF2-BIFF8 codes for horizontal alignment - * - * @param string $hAlign - * @return int - */ - private function mapHAlign($hAlign) - { - if (isset(self::$mapHAlignments[$hAlign])) { - return self::$mapHAlignments[$hAlign]; - } - return 0; - } - - /** - * Map of BIFF2-BIFF8 codes for vertical alignment - * @static array of int - * - */ - private static $mapVAlignments = array( - PHPExcel_Style_Alignment::VERTICAL_TOP => 0, - PHPExcel_Style_Alignment::VERTICAL_CENTER => 1, - PHPExcel_Style_Alignment::VERTICAL_BOTTOM => 2, - PHPExcel_Style_Alignment::VERTICAL_JUSTIFY => 3, - ); - - /** - * Map to BIFF2-BIFF8 codes for vertical alignment - * - * @param string $vAlign - * @return int - */ - private static function mapVAlign($vAlign) - { - if (isset(self::$mapVAlignments[$vAlign])) { - return self::$mapVAlignments[$vAlign]; - } - return 2; - } - - /** - * Map to BIFF8 codes for text rotation angle - * - * @param int $textRotation - * @return int - */ - private static function mapTextRotation($textRotation) - { - if ($textRotation >= 0) { - return $textRotation; - } elseif ($textRotation == -165) { - return 255; - } elseif ($textRotation < 0) { - return 90 - $textRotation; - } - } - - /** - * Map locked - * - * @param string - * @return int - */ - private static function mapLocked($locked) - { - switch ($locked) { - case PHPExcel_Style_Protection::PROTECTION_INHERIT: - return 1; - case PHPExcel_Style_Protection::PROTECTION_PROTECTED: - return 1; - case PHPExcel_Style_Protection::PROTECTION_UNPROTECTED: - return 0; - default: - return 1; - } - } - - /** - * Map hidden - * - * @param string - * @return int - */ - private static function mapHidden($hidden) - { - switch ($hidden) { - case PHPExcel_Style_Protection::PROTECTION_INHERIT: - return 0; - case PHPExcel_Style_Protection::PROTECTION_PROTECTED: - return 1; - case PHPExcel_Style_Protection::PROTECTION_UNPROTECTED: - return 0; - default: - return 0; - } - } -} diff --git a/Utils/PHPExcel/Writer/Exception.php b/Utils/PHPExcel/Writer/Exception.php deleted file mode 100644 index bfa0056..0000000 --- a/Utils/PHPExcel/Writer/Exception.php +++ /dev/null @@ -1,46 +0,0 @@ -<?php - -/** - * PHPExcel_Writer_Exception - * - * Copyright (c) 2006 - 2015 PHPExcel - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - * - * @category PHPExcel - * @package PHPExcel_Writer - * @copyright Copyright (c) 2006 - 2015 PHPExcel (http://www.codeplex.com/PHPExcel) - * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL - * @version ##VERSION##, ##DATE## - */ -class PHPExcel_Writer_Exception extends PHPExcel_Exception -{ - /** - * Error handler callback - * - * @param mixed $code - * @param mixed $string - * @param mixed $file - * @param mixed $line - * @param mixed $context - */ - public static function errorHandlerCallback($code, $string, $file, $line, $context) - { - $e = new self($string, $code); - $e->line = $line; - $e->file = $file; - throw $e; - } -} diff --git a/Utils/PHPExcel/Writer/HTML.php b/Utils/PHPExcel/Writer/HTML.php deleted file mode 100644 index 7a41bb5..0000000 --- a/Utils/PHPExcel/Writer/HTML.php +++ /dev/null @@ -1,1596 +0,0 @@ -<?php - -/** - * PHPExcel_Writer_HTML - * - * Copyright (c) 2006 - 2015 PHPExcel - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - * - * @category PHPExcel - * @package PHPExcel_Writer_HTML - * @copyright Copyright (c) 2006 - 2015 PHPExcel (http://www.codeplex.com/PHPExcel) - * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL - * @version ##VERSION##, ##DATE## - */ -class PHPExcel_Writer_HTML extends PHPExcel_Writer_Abstract implements PHPExcel_Writer_IWriter -{ - /** - * PHPExcel object - * - * @var PHPExcel - */ - protected $phpExcel; - - /** - * Sheet index to write - * - * @var int - */ - private $sheetIndex = 0; - - /** - * Images root - * - * @var string - */ - private $imagesRoot = '.'; - - /** - * embed images, or link to images - * - * @var boolean - */ - private $embedImages = false; - - /** - * Use inline CSS? - * - * @var boolean - */ - private $useInlineCss = false; - - /** - * Array of CSS styles - * - * @var array - */ - private $cssStyles; - - /** - * Array of column widths in points - * - * @var array - */ - private $columnWidths; - - /** - * Default font - * - * @var PHPExcel_Style_Font - */ - private $defaultFont; - - /** - * Flag whether spans have been calculated - * - * @var boolean - */ - private $spansAreCalculated = false; - - /** - * Excel cells that should not be written as HTML cells - * - * @var array - */ - private $isSpannedCell = array(); - - /** - * Excel cells that are upper-left corner in a cell merge - * - * @var array - */ - private $isBaseCell = array(); - - /** - * Excel rows that should not be written as HTML rows - * - * @var array - */ - private $isSpannedRow = array(); - - /** - * Is the current writer creating PDF? - * - * @var boolean - */ - protected $isPdf = false; - - /** - * Generate the Navigation block - * - * @var boolean - */ - private $generateSheetNavigationBlock = true; - - /** - * Create a new PHPExcel_Writer_HTML - * - * @param PHPExcel $phpExcel PHPExcel object - */ - public function __construct(PHPExcel $phpExcel) - { - $this->phpExcel = $phpExcel; - $this->defaultFont = $this->phpExcel->getDefaultStyle()->getFont(); - } - - /** - * Save PHPExcel to file - * - * @param string $pFilename - * @throws PHPExcel_Writer_Exception - */ - public function save($pFilename = null) - { - // garbage collect - $this->phpExcel->garbageCollect(); - - $saveDebugLog = PHPExcel_Calculation::getInstance($this->phpExcel)->getDebugLog()->getWriteDebugLog(); - PHPExcel_Calculation::getInstance($this->phpExcel)->getDebugLog()->setWriteDebugLog(false); - $saveArrayReturnType = PHPExcel_Calculation::getArrayReturnType(); - PHPExcel_Calculation::setArrayReturnType(PHPExcel_Calculation::RETURN_ARRAY_AS_VALUE); - - // Build CSS - $this->buildCSS(!$this->useInlineCss); - - // Open file - $fileHandle = fopen($pFilename, 'wb+'); - if ($fileHandle === false) { - throw new PHPExcel_Writer_Exception("Could not open file $pFilename for writing."); - } - - // Write headers - fwrite($fileHandle, $this->generateHTMLHeader(!$this->useInlineCss)); - - // Write navigation (tabs) - if ((!$this->isPdf) && ($this->generateSheetNavigationBlock)) { - fwrite($fileHandle, $this->generateNavigation()); - } - - // Write data - fwrite($fileHandle, $this->generateSheetData()); - - // Write footer - fwrite($fileHandle, $this->generateHTMLFooter()); - - // Close file - fclose($fileHandle); - - PHPExcel_Calculation::setArrayReturnType($saveArrayReturnType); - PHPExcel_Calculation::getInstance($this->phpExcel)->getDebugLog()->setWriteDebugLog($saveDebugLog); - } - - /** - * Map VAlign - * - * @param string $vAlign Vertical alignment - * @return string - */ - private function mapVAlign($vAlign) - { - switch ($vAlign) { - case PHPExcel_Style_Alignment::VERTICAL_BOTTOM: - return 'bottom'; - case PHPExcel_Style_Alignment::VERTICAL_TOP: - return 'top'; - case PHPExcel_Style_Alignment::VERTICAL_CENTER: - case PHPExcel_Style_Alignment::VERTICAL_JUSTIFY: - return 'middle'; - default: - return 'baseline'; - } - } - - /** - * Map HAlign - * - * @param string $hAlign Horizontal alignment - * @return string|false - */ - private function mapHAlign($hAlign) - { - switch ($hAlign) { - case PHPExcel_Style_Alignment::HORIZONTAL_GENERAL: - return false; - case PHPExcel_Style_Alignment::HORIZONTAL_LEFT: - return 'left'; - case PHPExcel_Style_Alignment::HORIZONTAL_RIGHT: - return 'right'; - case PHPExcel_Style_Alignment::HORIZONTAL_CENTER: - case PHPExcel_Style_Alignment::HORIZONTAL_CENTER_CONTINUOUS: - return 'center'; - case PHPExcel_Style_Alignment::HORIZONTAL_JUSTIFY: - return 'justify'; - default: - return false; - } - } - - /** - * Map border style - * - * @param int $borderStyle Sheet index - * @return string - */ - private function mapBorderStyle($borderStyle) - { - switch ($borderStyle) { - case PHPExcel_Style_Border::BORDER_NONE: - return 'none'; - case PHPExcel_Style_Border::BORDER_DASHDOT: - return '1px dashed'; - case PHPExcel_Style_Border::BORDER_DASHDOTDOT: - return '1px dotted'; - case PHPExcel_Style_Border::BORDER_DASHED: - return '1px dashed'; - case PHPExcel_Style_Border::BORDER_DOTTED: - return '1px dotted'; - case PHPExcel_Style_Border::BORDER_DOUBLE: - return '3px double'; - case PHPExcel_Style_Border::BORDER_HAIR: - return '1px solid'; - case PHPExcel_Style_Border::BORDER_MEDIUM: - return '2px solid'; - case PHPExcel_Style_Border::BORDER_MEDIUMDASHDOT: - return '2px dashed'; - case PHPExcel_Style_Border::BORDER_MEDIUMDASHDOTDOT: - return '2px dotted'; - case PHPExcel_Style_Border::BORDER_MEDIUMDASHED: - return '2px dashed'; - case PHPExcel_Style_Border::BORDER_SLANTDASHDOT: - return '2px dashed'; - case PHPExcel_Style_Border::BORDER_THICK: - return '3px solid'; - case PHPExcel_Style_Border::BORDER_THIN: - return '1px solid'; - default: - // map others to thin - return '1px solid'; - } - } - - /** - * Get sheet index - * - * @return int - */ - public function getSheetIndex() - { - return $this->sheetIndex; - } - - /** - * Set sheet index - * - * @param int $pValue Sheet index - * @return PHPExcel_Writer_HTML - */ - public function setSheetIndex($pValue = 0) - { - $this->sheetIndex = $pValue; - return $this; - } - - /** - * Get sheet index - * - * @return boolean - */ - public function getGenerateSheetNavigationBlock() - { - return $this->generateSheetNavigationBlock; - } - - /** - * Set sheet index - * - * @param boolean $pValue Flag indicating whether the sheet navigation block should be generated or not - * @return PHPExcel_Writer_HTML - */ - public function setGenerateSheetNavigationBlock($pValue = true) - { - $this->generateSheetNavigationBlock = (bool) $pValue; - return $this; - } - - /** - * Write all sheets (resets sheetIndex to NULL) - */ - public function writeAllSheets() - { - $this->sheetIndex = null; - return $this; - } - - /** - * Generate HTML header - * - * @param boolean $pIncludeStyles Include styles? - * @return string - * @throws PHPExcel_Writer_Exception - */ - public function generateHTMLHeader($pIncludeStyles = false) - { - // PHPExcel object known? - if (is_null($this->phpExcel)) { - throw new PHPExcel_Writer_Exception('Internal PHPExcel object not set to an instance of an object.'); - } - - // Construct HTML - $properties = $this->phpExcel->getProperties(); - $html = '<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">' . PHP_EOL; - $html .= '<!-- Generated by PHPExcel - http://www.phpexcel.net -->' . PHP_EOL; - $html .= '<html>' . PHP_EOL; - $html .= ' <head>' . PHP_EOL; - $html .= ' <meta http-equiv="Content-Type" content="text/html; charset=utf-8">' . PHP_EOL; - if ($properties->getTitle() > '') { - $html .= ' <title>' . htmlspecialchars($properties->getTitle()) . '</title>' . PHP_EOL; - } - if ($properties->getCreator() > '') { - $html .= ' <meta name="author" content="' . htmlspecialchars($properties->getCreator()) . '" />' . PHP_EOL; - } - if ($properties->getTitle() > '') { - $html .= ' <meta name="title" content="' . htmlspecialchars($properties->getTitle()) . '" />' . PHP_EOL; - } - if ($properties->getDescription() > '') { - $html .= ' <meta name="description" content="' . htmlspecialchars($properties->getDescription()) . '" />' . PHP_EOL; - } - if ($properties->getSubject() > '') { - $html .= ' <meta name="subject" content="' . htmlspecialchars($properties->getSubject()) . '" />' . PHP_EOL; - } - if ($properties->getKeywords() > '') { - $html .= ' <meta name="keywords" content="' . htmlspecialchars($properties->getKeywords()) . '" />' . PHP_EOL; - } - if ($properties->getCategory() > '') { - $html .= ' <meta name="category" content="' . htmlspecialchars($properties->getCategory()) . '" />' . PHP_EOL; - } - if ($properties->getCompany() > '') { - $html .= ' <meta name="company" content="' . htmlspecialchars($properties->getCompany()) . '" />' . PHP_EOL; - } - if ($properties->getManager() > '') { - $html .= ' <meta name="manager" content="' . htmlspecialchars($properties->getManager()) . '" />' . PHP_EOL; - } - - if ($pIncludeStyles) { - $html .= $this->generateStyles(true); - } - - $html .= ' </head>' . PHP_EOL; - $html .= '' . PHP_EOL; - $html .= ' <body>' . PHP_EOL; - - return $html; - } - - /** - * Generate sheet data - * - * @return string - * @throws PHPExcel_Writer_Exception - */ - public function generateSheetData() - { - // PHPExcel object known? - if (is_null($this->phpExcel)) { - throw new PHPExcel_Writer_Exception('Internal PHPExcel object not set to an instance of an object.'); - } - - // Ensure that Spans have been calculated? - if (!$this->spansAreCalculated) { - $this->calculateSpans(); - } - - // Fetch sheets - $sheets = array(); - if (is_null($this->sheetIndex)) { - $sheets = $this->phpExcel->getAllSheets(); - } else { - $sheets[] = $this->phpExcel->getSheet($this->sheetIndex); - } - - // Construct HTML - $html = ''; - - // Loop all sheets - $sheetId = 0; - foreach ($sheets as $sheet) { - // Write table header - $html .= $this->generateTableHeader($sheet); - - // Get worksheet dimension - $dimension = explode(':', $sheet->calculateWorksheetDimension()); - $dimension[0] = PHPExcel_Cell::coordinateFromString($dimension[0]); - $dimension[0][0] = PHPExcel_Cell::columnIndexFromString($dimension[0][0]) - 1; - $dimension[1] = PHPExcel_Cell::coordinateFromString($dimension[1]); - $dimension[1][0] = PHPExcel_Cell::columnIndexFromString($dimension[1][0]) - 1; - - // row min,max - $rowMin = $dimension[0][1]; - $rowMax = $dimension[1][1]; - - // calculate start of <tbody>, <thead> - $tbodyStart = $rowMin; - $theadStart = $theadEnd = 0; // default: no <thead> no </thead> - if ($sheet->getPageSetup()->isRowsToRepeatAtTopSet()) { - $rowsToRepeatAtTop = $sheet->getPageSetup()->getRowsToRepeatAtTop(); - - // we can only support repeating rows that start at top row - if ($rowsToRepeatAtTop[0] == 1) { - $theadStart = $rowsToRepeatAtTop[0]; - $theadEnd = $rowsToRepeatAtTop[1]; - $tbodyStart = $rowsToRepeatAtTop[1] + 1; - } - } - - // Loop through cells - $row = $rowMin-1; - while ($row++ < $rowMax) { - // <thead> ? - if ($row == $theadStart) { - $html .= ' <thead>' . PHP_EOL; - $cellType = 'th'; - } - - // <tbody> ? - if ($row == $tbodyStart) { - $html .= ' <tbody>' . PHP_EOL; - $cellType = 'td'; - } - - // Write row if there are HTML table cells in it - if (!isset($this->isSpannedRow[$sheet->getParent()->getIndex($sheet)][$row])) { - // Start a new rowData - $rowData = array(); - // Loop through columns - $column = $dimension[0][0] - 1; - while ($column++ < $dimension[1][0]) { - // Cell exists? - if ($sheet->cellExistsByColumnAndRow($column, $row)) { - $rowData[$column] = PHPExcel_Cell::stringFromColumnIndex($column) . $row; - } else { - $rowData[$column] = ''; - } - } - $html .= $this->generateRow($sheet, $rowData, $row - 1, $cellType); - } - - // </thead> ? - if ($row == $theadEnd) { - $html .= ' </thead>' . PHP_EOL; - } - } - $html .= $this->extendRowsForChartsAndImages($sheet, $row); - - // Close table body. - $html .= ' </tbody>' . PHP_EOL; - - // Write table footer - $html .= $this->generateTableFooter(); - - // Writing PDF? - if ($this->isPdf) { - if (is_null($this->sheetIndex) && $sheetId + 1 < $this->phpExcel->getSheetCount()) { - $html .= '<div style="page-break-before:always" />'; - } - } - - // Next sheet - ++$sheetId; - } - - return $html; - } - - /** - * Generate sheet tabs - * - * @return string - * @throws PHPExcel_Writer_Exception - */ - public function generateNavigation() - { - // PHPExcel object known? - if (is_null($this->phpExcel)) { - throw new PHPExcel_Writer_Exception('Internal PHPExcel object not set to an instance of an object.'); - } - - // Fetch sheets - $sheets = array(); - if (is_null($this->sheetIndex)) { - $sheets = $this->phpExcel->getAllSheets(); - } else { - $sheets[] = $this->phpExcel->getSheet($this->sheetIndex); - } - - // Construct HTML - $html = ''; - - // Only if there are more than 1 sheets - if (count($sheets) > 1) { - // Loop all sheets - $sheetId = 0; - - $html .= '<ul class="navigation">' . PHP_EOL; - - foreach ($sheets as $sheet) { - $html .= ' <li class="sheet' . $sheetId . '"><a href="#sheet' . $sheetId . '">' . $sheet->getTitle() . '</a></li>' . PHP_EOL; - ++$sheetId; - } - - $html .= '</ul>' . PHP_EOL; - } - - return $html; - } - - private function extendRowsForChartsAndImages(PHPExcel_Worksheet $pSheet, $row) - { - $rowMax = $row; - $colMax = 'A'; - if ($this->includeCharts) { - foreach ($pSheet->getChartCollection() as $chart) { - if ($chart instanceof PHPExcel_Chart) { - $chartCoordinates = $chart->getTopLeftPosition(); - $chartTL = PHPExcel_Cell::coordinateFromString($chartCoordinates['cell']); - $chartCol = PHPExcel_Cell::columnIndexFromString($chartTL[0]); - if ($chartTL[1] > $rowMax) { - $rowMax = $chartTL[1]; - if ($chartCol > PHPExcel_Cell::columnIndexFromString($colMax)) { - $colMax = $chartTL[0]; - } - } - } - } - } - - foreach ($pSheet->getDrawingCollection() as $drawing) { - if ($drawing instanceof PHPExcel_Worksheet_Drawing) { - $imageTL = PHPExcel_Cell::coordinateFromString($drawing->getCoordinates()); - $imageCol = PHPExcel_Cell::columnIndexFromString($imageTL[0]); - if ($imageTL[1] > $rowMax) { - $rowMax = $imageTL[1]; - if ($imageCol > PHPExcel_Cell::columnIndexFromString($colMax)) { - $colMax = $imageTL[0]; - } - } - } - } - - $html = ''; - $colMax++; - while ($row <= $rowMax) { - $html .= '<tr>'; - for ($col = 'A'; $col != $colMax; ++$col) { - $html .= '<td>'; - $html .= $this->writeImageInCell($pSheet, $col.$row); - if ($this->includeCharts) { - $html .= $this->writeChartInCell($pSheet, $col.$row); - } - $html .= '</td>'; - } - ++$row; - $html .= '</tr>'; - } - return $html; - } - - - /** - * Generate image tag in cell - * - * @param PHPExcel_Worksheet $pSheet PHPExcel_Worksheet - * @param string $coordinates Cell coordinates - * @return string - * @throws PHPExcel_Writer_Exception - */ - private function writeImageInCell(PHPExcel_Worksheet $pSheet, $coordinates) - { - // Construct HTML - $html = ''; - - // Write images - foreach ($pSheet->getDrawingCollection() as $drawing) { - if ($drawing instanceof PHPExcel_Worksheet_Drawing) { - if ($drawing->getCoordinates() == $coordinates) { - $filename = $drawing->getPath(); - - // Strip off eventual '.' - if (substr($filename, 0, 1) == '.') { - $filename = substr($filename, 1); - } - - // Prepend images root - $filename = $this->getImagesRoot() . $filename; - - // Strip off eventual '.' - if (substr($filename, 0, 1) == '.' && substr($filename, 0, 2) != './') { - $filename = substr($filename, 1); - } - - // Convert UTF8 data to PCDATA - $filename = htmlspecialchars($filename); - - $html .= PHP_EOL; - if ((!$this->embedImages) || ($this->isPdf)) { - $imageData = $filename; - } else { - $imageDetails = getimagesize($filename); - if ($fp = fopen($filename, "rb", 0)) { - $picture = fread($fp, filesize($filename)); - fclose($fp); - // base64 encode the binary data, then break it - // into chunks according to RFC 2045 semantics - $base64 = chunk_split(base64_encode($picture)); - $imageData = 'data:'.$imageDetails['mime'].';base64,' . $base64; - } else { - $imageData = $filename; - } - } - - $html .= '<div style="position: relative;">'; - $html .= '<img style="position: absolute; z-index: 1; left: ' . - $drawing->getOffsetX() . 'px; top: ' . $drawing->getOffsetY() . 'px; width: ' . - $drawing->getWidth() . 'px; height: ' . $drawing->getHeight() . 'px;" src="' . - $imageData . '" border="0" />'; - $html .= '</div>'; - } - } - } - - return $html; - } - - /** - * Generate chart tag in cell - * - * @param PHPExcel_Worksheet $pSheet PHPExcel_Worksheet - * @param string $coordinates Cell coordinates - * @return string - * @throws PHPExcel_Writer_Exception - */ - private function writeChartInCell(PHPExcel_Worksheet $pSheet, $coordinates) - { - // Construct HTML - $html = ''; - - // Write charts - foreach ($pSheet->getChartCollection() as $chart) { - if ($chart instanceof PHPExcel_Chart) { - $chartCoordinates = $chart->getTopLeftPosition(); - if ($chartCoordinates['cell'] == $coordinates) { - $chartFileName = PHPExcel_Shared_File::sys_get_temp_dir().'/'.uniqid().'.png'; - if (!$chart->render($chartFileName)) { - return; - } - - $html .= PHP_EOL; - $imageDetails = getimagesize($chartFileName); - if ($fp = fopen($chartFileName, "rb", 0)) { - $picture = fread($fp, filesize($chartFileName)); - fclose($fp); - // base64 encode the binary data, then break it - // into chunks according to RFC 2045 semantics - $base64 = chunk_split(base64_encode($picture)); - $imageData = 'data:'.$imageDetails['mime'].';base64,' . $base64; - - $html .= '<div style="position: relative;">'; - $html .= '<img style="position: absolute; z-index: 1; left: ' . $chartCoordinates['xOffset'] . 'px; top: ' . $chartCoordinates['yOffset'] . 'px; width: ' . $imageDetails[0] . 'px; height: ' . $imageDetails[1] . 'px;" src="' . $imageData . '" border="0" />' . PHP_EOL; - $html .= '</div>'; - - unlink($chartFileName); - } - } - } - } - - // Return - return $html; - } - - /** - * Generate CSS styles - * - * @param boolean $generateSurroundingHTML Generate surrounding HTML tags? (&lt;style&gt; and &lt;/style&gt;) - * @return string - * @throws PHPExcel_Writer_Exception - */ - public function generateStyles($generateSurroundingHTML = true) - { - // PHPExcel object known? - if (is_null($this->phpExcel)) { - throw new PHPExcel_Writer_Exception('Internal PHPExcel object not set to an instance of an object.'); - } - - // Build CSS - $css = $this->buildCSS($generateSurroundingHTML); - - // Construct HTML - $html = ''; - - // Start styles - if ($generateSurroundingHTML) { - $html .= ' <style type="text/css">' . PHP_EOL; - $html .= ' html { ' . $this->assembleCSS($css['html']) . ' }' . PHP_EOL; - } - - // Write all other styles - foreach ($css as $styleName => $styleDefinition) { - if ($styleName != 'html') { - $html .= ' ' . $styleName . ' { ' . $this->assembleCSS($styleDefinition) . ' }' . PHP_EOL; - } - } - - // End styles - if ($generateSurroundingHTML) { - $html .= ' </style>' . PHP_EOL; - } - - // Return - return $html; - } - - /** - * Build CSS styles - * - * @param boolean $generateSurroundingHTML Generate surrounding HTML style? (html { }) - * @return array - * @throws PHPExcel_Writer_Exception - */ - public function buildCSS($generateSurroundingHTML = true) - { - // PHPExcel object known? - if (is_null($this->phpExcel)) { - throw new PHPExcel_Writer_Exception('Internal PHPExcel object not set to an instance of an object.'); - } - - // Cached? - if (!is_null($this->cssStyles)) { - return $this->cssStyles; - } - - // Ensure that spans have been calculated - if (!$this->spansAreCalculated) { - $this->calculateSpans(); - } - - // Construct CSS - $css = array(); - - // Start styles - if ($generateSurroundingHTML) { - // html { } - $css['html']['font-family'] = 'Calibri, Arial, Helvetica, sans-serif'; - $css['html']['font-size'] = '11pt'; - $css['html']['background-color'] = 'white'; - } - - - // table { } - $css['table']['border-collapse'] = 'collapse'; - if (!$this->isPdf) { - $css['table']['page-break-after'] = 'always'; - } - - // .gridlines td { } - $css['.gridlines td']['border'] = '1px dotted black'; - $css['.gridlines th']['border'] = '1px dotted black'; - - // .b {} - $css['.b']['text-align'] = 'center'; // BOOL - - // .e {} - $css['.e']['text-align'] = 'center'; // ERROR - - // .f {} - $css['.f']['text-align'] = 'right'; // FORMULA - - // .inlineStr {} - $css['.inlineStr']['text-align'] = 'left'; // INLINE - - // .n {} - $css['.n']['text-align'] = 'right'; // NUMERIC - - // .s {} - $css['.s']['text-align'] = 'left'; // STRING - - // Calculate cell style hashes - foreach ($this->phpExcel->getCellXfCollection() as $index => $style) { - $css['td.style' . $index] = $this->createCSSStyle($style); - $css['th.style' . $index] = $this->createCSSStyle($style); - } - - // Fetch sheets - $sheets = array(); - if (is_null($this->sheetIndex)) { - $sheets = $this->phpExcel->getAllSheets(); - } else { - $sheets[] = $this->phpExcel->getSheet($this->sheetIndex); - } - - // Build styles per sheet - foreach ($sheets as $sheet) { - // Calculate hash code - $sheetIndex = $sheet->getParent()->getIndex($sheet); - - // Build styles - // Calculate column widths - $sheet->calculateColumnWidths(); - - // col elements, initialize - $highestColumnIndex = PHPExcel_Cell::columnIndexFromString($sheet->getHighestColumn()) - 1; - $column = -1; - while ($column++ < $highestColumnIndex) { - $this->columnWidths[$sheetIndex][$column] = 42; // approximation - $css['table.sheet' . $sheetIndex . ' col.col' . $column]['width'] = '42pt'; - } - - // col elements, loop through columnDimensions and set width - foreach ($sheet->getColumnDimensions() as $columnDimension) { - if (($width = PHPExcel_Shared_Drawing::cellDimensionToPixels($columnDimension->getWidth(), $this->defaultFont)) >= 0) { - $width = PHPExcel_Shared_Drawing::pixelsToPoints($width); - $column = PHPExcel_Cell::columnIndexFromString($columnDimension->getColumnIndex()) - 1; - $this->columnWidths[$sheetIndex][$column] = $width; - $css['table.sheet' . $sheetIndex . ' col.col' . $column]['width'] = $width . 'pt'; - - if ($columnDimension->getVisible() === false) { - $css['table.sheet' . $sheetIndex . ' col.col' . $column]['visibility'] = 'collapse'; - $css['table.sheet' . $sheetIndex . ' col.col' . $column]['*display'] = 'none'; // target IE6+7 - } - } - } - - // Default row height - $rowDimension = $sheet->getDefaultRowDimension(); - - // table.sheetN tr { } - $css['table.sheet' . $sheetIndex . ' tr'] = array(); - - if ($rowDimension->getRowHeight() == -1) { - $pt_height = PHPExcel_Shared_Font::getDefaultRowHeightByFont($this->phpExcel->getDefaultStyle()->getFont()); - } else { - $pt_height = $rowDimension->getRowHeight(); - } - $css['table.sheet' . $sheetIndex . ' tr']['height'] = $pt_height . 'pt'; - if ($rowDimension->getVisible() === false) { - $css['table.sheet' . $sheetIndex . ' tr']['display'] = 'none'; - $css['table.sheet' . $sheetIndex . ' tr']['visibility'] = 'hidden'; - } - - // Calculate row heights - foreach ($sheet->getRowDimensions() as $rowDimension) { - $row = $rowDimension->getRowIndex() - 1; - - // table.sheetN tr.rowYYYYYY { } - $css['table.sheet' . $sheetIndex . ' tr.row' . $row] = array(); - - if ($rowDimension->getRowHeight() == -1) { - $pt_height = PHPExcel_Shared_Font::getDefaultRowHeightByFont($this->phpExcel->getDefaultStyle()->getFont()); - } else { - $pt_height = $rowDimension->getRowHeight(); - } - $css['table.sheet' . $sheetIndex . ' tr.row' . $row]['height'] = $pt_height . 'pt'; - if ($rowDimension->getVisible() === false) { - $css['table.sheet' . $sheetIndex . ' tr.row' . $row]['display'] = 'none'; - $css['table.sheet' . $sheetIndex . ' tr.row' . $row]['visibility'] = 'hidden'; - } - } - } - - // Cache - if (is_null($this->cssStyles)) { - $this->cssStyles = $css; - } - - // Return - return $css; - } - - /** - * Create CSS style - * - * @param PHPExcel_Style $pStyle PHPExcel_Style - * @return array - */ - private function createCSSStyle(PHPExcel_Style $pStyle) - { - // Construct CSS - $css = ''; - - // Create CSS - $css = array_merge( - $this->createCSSStyleAlignment($pStyle->getAlignment()), - $this->createCSSStyleBorders($pStyle->getBorders()), - $this->createCSSStyleFont($pStyle->getFont()), - $this->createCSSStyleFill($pStyle->getFill()) - ); - - // Return - return $css; - } - - /** - * Create CSS style (PHPExcel_Style_Alignment) - * - * @param PHPExcel_Style_Alignment $pStyle PHPExcel_Style_Alignment - * @return array - */ - private function createCSSStyleAlignment(PHPExcel_Style_Alignment $pStyle) - { - // Construct CSS - $css = array(); - - // Create CSS - $css['vertical-align'] = $this->mapVAlign($pStyle->getVertical()); - if ($textAlign = $this->mapHAlign($pStyle->getHorizontal())) { - $css['text-align'] = $textAlign; - if (in_array($textAlign, array('left', 'right'))) { - $css['padding-'.$textAlign] = (string)((int)$pStyle->getIndent() * 9).'px'; - } - } - - return $css; - } - - /** - * Create CSS style (PHPExcel_Style_Font) - * - * @param PHPExcel_Style_Font $pStyle PHPExcel_Style_Font - * @return array - */ - private function createCSSStyleFont(PHPExcel_Style_Font $pStyle) - { - // Construct CSS - $css = array(); - - // Create CSS - if ($pStyle->getBold()) { - $css['font-weight'] = 'bold'; - } - if ($pStyle->getUnderline() != PHPExcel_Style_Font::UNDERLINE_NONE && $pStyle->getStrikethrough()) { - $css['text-decoration'] = 'underline line-through'; - } elseif ($pStyle->getUnderline() != PHPExcel_Style_Font::UNDERLINE_NONE) { - $css['text-decoration'] = 'underline'; - } elseif ($pStyle->getStrikethrough()) { - $css['text-decoration'] = 'line-through'; - } - if ($pStyle->getItalic()) { - $css['font-style'] = 'italic'; - } - - $css['color'] = '#' . $pStyle->getColor()->getRGB(); - $css['font-family'] = '\'' . $pStyle->getName() . '\''; - $css['font-size'] = $pStyle->getSize() . 'pt'; - - return $css; - } - - /** - * Create CSS style (PHPExcel_Style_Borders) - * - * @param PHPExcel_Style_Borders $pStyle PHPExcel_Style_Borders - * @return array - */ - private function createCSSStyleBorders(PHPExcel_Style_Borders $pStyle) - { - // Construct CSS - $css = array(); - - // Create CSS - $css['border-bottom'] = $this->createCSSStyleBorder($pStyle->getBottom()); - $css['border-top'] = $this->createCSSStyleBorder($pStyle->getTop()); - $css['border-left'] = $this->createCSSStyleBorder($pStyle->getLeft()); - $css['border-right'] = $this->createCSSStyleBorder($pStyle->getRight()); - - return $css; - } - - /** - * Create CSS style (PHPExcel_Style_Border) - * - * @param PHPExcel_Style_Border $pStyle PHPExcel_Style_Border - * @return string - */ - private function createCSSStyleBorder(PHPExcel_Style_Border $pStyle) - { - // Create CSS -// $css = $this->mapBorderStyle($pStyle->getBorderStyle()) . ' #' . $pStyle->getColor()->getRGB(); - // Create CSS - add !important to non-none border styles for merged cells - $borderStyle = $this->mapBorderStyle($pStyle->getBorderStyle()); - $css = $borderStyle . ' #' . $pStyle->getColor()->getRGB() . (($borderStyle == 'none') ? '' : ' !important'); - - return $css; - } - - /** - * Create CSS style (PHPExcel_Style_Fill) - * - * @param PHPExcel_Style_Fill $pStyle PHPExcel_Style_Fill - * @return array - */ - private function createCSSStyleFill(PHPExcel_Style_Fill $pStyle) - { - // Construct HTML - $css = array(); - - // Create CSS - $value = $pStyle->getFillType() == PHPExcel_Style_Fill::FILL_NONE ? - 'white' : '#' . $pStyle->getStartColor()->getRGB(); - $css['background-color'] = $value; - - return $css; - } - - /** - * Generate HTML footer - */ - public function generateHTMLFooter() - { - // Construct HTML - $html = ''; - $html .= ' </body>' . PHP_EOL; - $html .= '</html>' . PHP_EOL; - - return $html; - } - - /** - * Generate table header - * - * @param PHPExcel_Worksheet $pSheet The worksheet for the table we are writing - * @return string - * @throws PHPExcel_Writer_Exception - */ - private function generateTableHeader($pSheet) - { - $sheetIndex = $pSheet->getParent()->getIndex($pSheet); - - // Construct HTML - $html = ''; - $html .= $this->setMargins($pSheet); - - if (!$this->useInlineCss) { - $gridlines = $pSheet->getShowGridlines() ? ' gridlines' : ''; - $html .= ' <table border="0" cellpadding="0" cellspacing="0" id="sheet' . $sheetIndex . '" class="sheet' . $sheetIndex . $gridlines . '">' . PHP_EOL; - } else { - $style = isset($this->cssStyles['table']) ? - $this->assembleCSS($this->cssStyles['table']) : ''; - - if ($this->isPdf && $pSheet->getShowGridlines()) { - $html .= ' <table border="1" cellpadding="1" id="sheet' . $sheetIndex . '" cellspacing="1" style="' . $style . '">' . PHP_EOL; - } else { - $html .= ' <table border="0" cellpadding="1" id="sheet' . $sheetIndex . '" cellspacing="0" style="' . $style . '">' . PHP_EOL; - } - } - - // Write <col> elements - $highestColumnIndex = PHPExcel_Cell::columnIndexFromString($pSheet->getHighestColumn()) - 1; - $i = -1; - while ($i++ < $highestColumnIndex) { - if (!$this->isPdf) { - if (!$this->useInlineCss) { - $html .= ' <col class="col' . $i . '">' . PHP_EOL; - } else { - $style = isset($this->cssStyles['table.sheet' . $sheetIndex . ' col.col' . $i]) ? - $this->assembleCSS($this->cssStyles['table.sheet' . $sheetIndex . ' col.col' . $i]) : ''; - $html .= ' <col style="' . $style . '">' . PHP_EOL; - } - } - } - - return $html; - } - - /** - * Generate table footer - * - * @throws PHPExcel_Writer_Exception - */ - private function generateTableFooter() - { - $html = ' </table>' . PHP_EOL; - - return $html; - } - - /** - * Generate row - * - * @param PHPExcel_Worksheet $pSheet PHPExcel_Worksheet - * @param array $pValues Array containing cells in a row - * @param int $pRow Row number (0-based) - * @return string - * @throws PHPExcel_Writer_Exception - */ - private function generateRow(PHPExcel_Worksheet $pSheet, $pValues = null, $pRow = 0, $cellType = 'td') - { - if (is_array($pValues)) { - // Construct HTML - $html = ''; - - // Sheet index - $sheetIndex = $pSheet->getParent()->getIndex($pSheet); - - // DomPDF and breaks - if ($this->isPdf && count($pSheet->getBreaks()) > 0) { - $breaks = $pSheet->getBreaks(); - - // check if a break is needed before this row - if (isset($breaks['A' . $pRow])) { - // close table: </table> - $html .= $this->generateTableFooter(); - - // insert page break - $html .= '<div style="page-break-before:always" />'; - - // open table again: <table> + <col> etc. - $html .= $this->generateTableHeader($pSheet); - } - } - - // Write row start - if (!$this->useInlineCss) { - $html .= ' <tr class="row' . $pRow . '">' . PHP_EOL; - } else { - $style = isset($this->cssStyles['table.sheet' . $sheetIndex . ' tr.row' . $pRow]) - ? $this->assembleCSS($this->cssStyles['table.sheet' . $sheetIndex . ' tr.row' . $pRow]) : ''; - - $html .= ' <tr style="' . $style . '">' . PHP_EOL; - } - - // Write cells - $colNum = 0; - foreach ($pValues as $cellAddress) { - $cell = ($cellAddress > '') ? $pSheet->getCell($cellAddress) : ''; - $coordinate = PHPExcel_Cell::stringFromColumnIndex($colNum) . ($pRow + 1); - if (!$this->useInlineCss) { - $cssClass = ''; - $cssClass = 'column' . $colNum; - } else { - $cssClass = array(); - if ($cellType == 'th') { - if (isset($this->cssStyles['table.sheet' . $sheetIndex . ' th.column' . $colNum])) { - $this->cssStyles['table.sheet' . $sheetIndex . ' th.column' . $colNum]; - } - } else { - if (isset($this->cssStyles['table.sheet' . $sheetIndex . ' td.column' . $colNum])) { - $this->cssStyles['table.sheet' . $sheetIndex . ' td.column' . $colNum]; - } - } - } - $colSpan = 1; - $rowSpan = 1; - - // initialize - $cellData = '&nbsp;'; - - // PHPExcel_Cell - if ($cell instanceof PHPExcel_Cell) { - $cellData = ''; - if (is_null($cell->getParent())) { - $cell->attach($pSheet); - } - // Value - if ($cell->getValue() instanceof PHPExcel_RichText) { - // Loop through rich text elements - $elements = $cell->getValue()->getRichTextElements(); - foreach ($elements as $element) { - // Rich text start? - if ($element instanceof PHPExcel_RichText_Run) { - $cellData .= '<span style="' . $this->assembleCSS($this->createCSSStyleFont($element->getFont())) . '">'; - - if ($element->getFont()->getSuperScript()) { - $cellData .= '<sup>'; - } elseif ($element->getFont()->getSubScript()) { - $cellData .= '<sub>'; - } - } - - // Convert UTF8 data to PCDATA - $cellText = $element->getText(); - $cellData .= htmlspecialchars($cellText); - - if ($element instanceof PHPExcel_RichText_Run) { - if ($element->getFont()->getSuperScript()) { - $cellData .= '</sup>'; - } elseif ($element->getFont()->getSubScript()) { - $cellData .= '</sub>'; - } - - $cellData .= '</span>'; - } - } - } else { - if ($this->preCalculateFormulas) { - $cellData = PHPExcel_Style_NumberFormat::toFormattedString( - $cell->getCalculatedValue(), - $pSheet->getParent()->getCellXfByIndex($cell->getXfIndex())->getNumberFormat()->getFormatCode(), - array($this, 'formatColor') - ); - } else { - $cellData = PHPExcel_Style_NumberFormat::toFormattedString( - $cell->getValue(), - $pSheet->getParent()->getCellXfByIndex($cell->getXfIndex())->getNumberFormat()->getFormatCode(), - array($this, 'formatColor') - ); - } - $cellData = htmlspecialchars($cellData); - if ($pSheet->getParent()->getCellXfByIndex($cell->getXfIndex())->getFont()->getSuperScript()) { - $cellData = '<sup>'.$cellData.'</sup>'; - } elseif ($pSheet->getParent()->getCellXfByIndex($cell->getXfIndex())->getFont()->getSubScript()) { - $cellData = '<sub>'.$cellData.'</sub>'; - } - } - - // Converts the cell content so that spaces occuring at beginning of each new line are replaced by &nbsp; - // Example: " Hello\n to the world" is converted to "&nbsp;&nbsp;Hello\n&nbsp;to the world" - $cellData = preg_replace("/(?m)(?:^|\\G) /", '&nbsp;', $cellData); - - // convert newline "\n" to '<br>' - $cellData = nl2br($cellData); - - // Extend CSS class? - if (!$this->useInlineCss) { - $cssClass .= ' style' . $cell->getXfIndex(); - $cssClass .= ' ' . $cell->getDataType(); - } else { - if ($cellType == 'th') { - if (isset($this->cssStyles['th.style' . $cell->getXfIndex()])) { - $cssClass = array_merge($cssClass, $this->cssStyles['th.style' . $cell->getXfIndex()]); - } - } else { - if (isset($this->cssStyles['td.style' . $cell->getXfIndex()])) { - $cssClass = array_merge($cssClass, $this->cssStyles['td.style' . $cell->getXfIndex()]); - } - } - - // General horizontal alignment: Actual horizontal alignment depends on dataType - $sharedStyle = $pSheet->getParent()->getCellXfByIndex($cell->getXfIndex()); - if ($sharedStyle->getAlignment()->getHorizontal() == PHPExcel_Style_Alignment::HORIZONTAL_GENERAL - && isset($this->cssStyles['.' . $cell->getDataType()]['text-align'])) { - $cssClass['text-align'] = $this->cssStyles['.' . $cell->getDataType()]['text-align']; - } - } - } - - // Hyperlink? - if ($pSheet->hyperlinkExists($coordinate) && !$pSheet->getHyperlink($coordinate)->isInternal()) { - $cellData = '<a href="' . htmlspecialchars($pSheet->getHyperlink($coordinate)->getUrl()) . '" title="' . htmlspecialchars($pSheet->getHyperlink($coordinate)->getTooltip()) . '">' . $cellData . '</a>'; - } - - // Should the cell be written or is it swallowed by a rowspan or colspan? - $writeCell = !(isset($this->isSpannedCell[$pSheet->getParent()->getIndex($pSheet)][$pRow + 1][$colNum]) - && $this->isSpannedCell[$pSheet->getParent()->getIndex($pSheet)][$pRow + 1][$colNum]); - - // Colspan and Rowspan - $colspan = 1; - $rowspan = 1; - if (isset($this->isBaseCell[$pSheet->getParent()->getIndex($pSheet)][$pRow + 1][$colNum])) { - $spans = $this->isBaseCell[$pSheet->getParent()->getIndex($pSheet)][$pRow + 1][$colNum]; - $rowSpan = $spans['rowspan']; - $colSpan = $spans['colspan']; - - // Also apply style from last cell in merge to fix borders - - // relies on !important for non-none border declarations in createCSSStyleBorder - $endCellCoord = PHPExcel_Cell::stringFromColumnIndex($colNum + $colSpan - 1) . ($pRow + $rowSpan); - if (!$this->useInlineCss) { - $cssClass .= ' style' . $pSheet->getCell($endCellCoord)->getXfIndex(); - } - } - - // Write - if ($writeCell) { - // Column start - $html .= ' <' . $cellType; - if (!$this->useInlineCss) { - $html .= ' class="' . $cssClass . '"'; - } else { - //** Necessary redundant code for the sake of PHPExcel_Writer_PDF ** - // We must explicitly write the width of the <td> element because TCPDF - // does not recognize e.g. <col style="width:42pt"> - $width = 0; - $i = $colNum - 1; - $e = $colNum + $colSpan - 1; - while ($i++ < $e) { - if (isset($this->columnWidths[$sheetIndex][$i])) { - $width += $this->columnWidths[$sheetIndex][$i]; - } - } - $cssClass['width'] = $width . 'pt'; - - // We must also explicitly write the height of the <td> element because TCPDF - // does not recognize e.g. <tr style="height:50pt"> - if (isset($this->cssStyles['table.sheet' . $sheetIndex . ' tr.row' . $pRow]['height'])) { - $height = $this->cssStyles['table.sheet' . $sheetIndex . ' tr.row' . $pRow]['height']; - $cssClass['height'] = $height; - } - //** end of redundant code ** - - $html .= ' style="' . $this->assembleCSS($cssClass) . '"'; - } - if ($colSpan > 1) { - $html .= ' colspan="' . $colSpan . '"'; - } - if ($rowSpan > 1) { - $html .= ' rowspan="' . $rowSpan . '"'; - } - $html .= '>'; - - // Image? - $html .= $this->writeImageInCell($pSheet, $coordinate); - - // Chart? - if ($this->includeCharts) { - $html .= $this->writeChartInCell($pSheet, $coordinate); - } - - // Cell data - $html .= $cellData; - - // Column end - $html .= '</'.$cellType.'>' . PHP_EOL; - } - - // Next column - ++$colNum; - } - - // Write row end - $html .= ' </tr>' . PHP_EOL; - - // Return - return $html; - } else { - throw new PHPExcel_Writer_Exception("Invalid parameters passed."); - } - } - - /** - * Takes array where of CSS properties / values and converts to CSS string - * - * @param array - * @return string - */ - private function assembleCSS($pValue = array()) - { - $pairs = array(); - foreach ($pValue as $property => $value) { - $pairs[] = $property . ':' . $value; - } - $string = implode('; ', $pairs); - - return $string; - } - - /** - * Get images root - * - * @return string - */ - public function getImagesRoot() - { - return $this->imagesRoot; - } - - /** - * Set images root - * - * @param string $pValue - * @return PHPExcel_Writer_HTML - */ - public function setImagesRoot($pValue = '.') - { - $this->imagesRoot = $pValue; - return $this; - } - - /** - * Get embed images - * - * @return boolean - */ - public function getEmbedImages() - { - return $this->embedImages; - } - - /** - * Set embed images - * - * @param boolean $pValue - * @return PHPExcel_Writer_HTML - */ - public function setEmbedImages($pValue = '.') - { - $this->embedImages = $pValue; - return $this; - } - - /** - * Get use inline CSS? - * - * @return boolean - */ - public function getUseInlineCss() - { - return $this->useInlineCss; - } - - /** - * Set use inline CSS? - * - * @param boolean $pValue - * @return PHPExcel_Writer_HTML - */ - public function setUseInlineCss($pValue = false) - { - $this->useInlineCss = $pValue; - return $this; - } - - /** - * Add color to formatted string as inline style - * - * @param string $pValue Plain formatted value without color - * @param string $pFormat Format code - * @return string - */ - public function formatColor($pValue, $pFormat) - { - // Color information, e.g. [Red] is always at the beginning - $color = null; // initialize - $matches = array(); - - $color_regex = '/^\\[[a-zA-Z]+\\]/'; - if (preg_match($color_regex, $pFormat, $matches)) { - $color = str_replace('[', '', $matches[0]); - $color = str_replace(']', '', $color); - $color = strtolower($color); - } - - // convert to PCDATA - $value = htmlspecialchars($pValue); - - // color span tag - if ($color !== null) { - $value = '<span style="color:' . $color . '">' . $value . '</span>'; - } - - return $value; - } - - /** - * Calculate information about HTML colspan and rowspan which is not always the same as Excel's - */ - private function calculateSpans() - { - // Identify all cells that should be omitted in HTML due to cell merge. - // In HTML only the upper-left cell should be written and it should have - // appropriate rowspan / colspan attribute - $sheetIndexes = $this->sheetIndex !== null ? - array($this->sheetIndex) : range(0, $this->phpExcel->getSheetCount() - 1); - - foreach ($sheetIndexes as $sheetIndex) { - $sheet = $this->phpExcel->getSheet($sheetIndex); - - $candidateSpannedRow = array(); - - // loop through all Excel merged cells - foreach ($sheet->getMergeCells() as $cells) { - list($cells,) = PHPExcel_Cell::splitRange($cells); - $first = $cells[0]; - $last = $cells[1]; - - list($fc, $fr) = PHPExcel_Cell::coordinateFromString($first); - $fc = PHPExcel_Cell::columnIndexFromString($fc) - 1; - - list($lc, $lr) = PHPExcel_Cell::coordinateFromString($last); - $lc = PHPExcel_Cell::columnIndexFromString($lc) - 1; - - // loop through the individual cells in the individual merge - $r = $fr - 1; - while ($r++ < $lr) { - // also, flag this row as a HTML row that is candidate to be omitted - $candidateSpannedRow[$r] = $r; - - $c = $fc - 1; - while ($c++ < $lc) { - if (!($c == $fc && $r == $fr)) { - // not the upper-left cell (should not be written in HTML) - $this->isSpannedCell[$sheetIndex][$r][$c] = array( - 'baseCell' => array($fr, $fc), - ); - } else { - // upper-left is the base cell that should hold the colspan/rowspan attribute - $this->isBaseCell[$sheetIndex][$r][$c] = array( - 'xlrowspan' => $lr - $fr + 1, // Excel rowspan - 'rowspan' => $lr - $fr + 1, // HTML rowspan, value may change - 'xlcolspan' => $lc - $fc + 1, // Excel colspan - 'colspan' => $lc - $fc + 1, // HTML colspan, value may change - ); - } - } - } - } - - // Identify which rows should be omitted in HTML. These are the rows where all the cells - // participate in a merge and the where base cells are somewhere above. - $countColumns = PHPExcel_Cell::columnIndexFromString($sheet->getHighestColumn()); - foreach ($candidateSpannedRow as $rowIndex) { - if (isset($this->isSpannedCell[$sheetIndex][$rowIndex])) { - if (count($this->isSpannedCell[$sheetIndex][$rowIndex]) == $countColumns) { - $this->isSpannedRow[$sheetIndex][$rowIndex] = $rowIndex; - }; - } - } - - // For each of the omitted rows we found above, the affected rowspans should be subtracted by 1 - if (isset($this->isSpannedRow[$sheetIndex])) { - foreach ($this->isSpannedRow[$sheetIndex] as $rowIndex) { - $adjustedBaseCells = array(); - $c = -1; - $e = $countColumns - 1; - while ($c++ < $e) { - $baseCell = $this->isSpannedCell[$sheetIndex][$rowIndex][$c]['baseCell']; - - if (!in_array($baseCell, $adjustedBaseCells)) { - // subtract rowspan by 1 - --$this->isBaseCell[$sheetIndex][ $baseCell[0] ][ $baseCell[1] ]['rowspan']; - $adjustedBaseCells[] = $baseCell; - } - } - } - } - - // TODO: Same for columns - } - - // We have calculated the spans - $this->spansAreCalculated = true; - } - - private function setMargins(PHPExcel_Worksheet $pSheet) - { - $htmlPage = '@page { '; - $htmlBody = 'body { '; - - $left = PHPExcel_Shared_String::FormatNumber($pSheet->getPageMargins()->getLeft()) . 'in; '; - $htmlPage .= 'margin-left: ' . $left; - $htmlBody .= 'margin-left: ' . $left; - $right = PHPExcel_Shared_String::FormatNumber($pSheet->getPageMargins()->getRight()) . 'in; '; - $htmlPage .= 'margin-right: ' . $right; - $htmlBody .= 'margin-right: ' . $right; - $top = PHPExcel_Shared_String::FormatNumber($pSheet->getPageMargins()->getTop()) . 'in; '; - $htmlPage .= 'margin-top: ' . $top; - $htmlBody .= 'margin-top: ' . $top; - $bottom = PHPExcel_Shared_String::FormatNumber($pSheet->getPageMargins()->getBottom()) . 'in; '; - $htmlPage .= 'margin-bottom: ' . $bottom; - $htmlBody .= 'margin-bottom: ' . $bottom; - - $htmlPage .= "}\n"; - $htmlBody .= "}\n"; - - return "<style>\n" . $htmlPage . $htmlBody . "</style>\n"; - } -} diff --git a/Utils/PHPExcel/Writer/IWriter.php b/Utils/PHPExcel/Writer/IWriter.php deleted file mode 100644 index c7cfe74..0000000 --- a/Utils/PHPExcel/Writer/IWriter.php +++ /dev/null @@ -1,37 +0,0 @@ -<?php - -/** - * PHPExcel_Writer_IWriter - * - * Copyright (c) 2006 - 2015 PHPExcel - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - * - * @category PHPExcel - * @package PHPExcel_Writer - * @copyright Copyright (c) 2006 - 2015 PHPExcel (http://www.codeplex.com/PHPExcel) - * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL - * @version ##VERSION##, ##DATE## - */ -interface PHPExcel_Writer_IWriter -{ - /** - * Save PHPExcel to file - * - * @param string $pFilename Name of the file to save - * @throws PHPExcel_Writer_Exception - */ - public function save($pFilename = null); -} diff --git a/Utils/PHPExcel/Writer/OpenDocument.php b/Utils/PHPExcel/Writer/OpenDocument.php deleted file mode 100644 index 912ba9d..0000000 --- a/Utils/PHPExcel/Writer/OpenDocument.php +++ /dev/null @@ -1,190 +0,0 @@ -<?php - -/** - * PHPExcel_Writer_OpenDocument - * - * Copyright (c) 2006 - 2015 PHPExcel - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - * - * @category PHPExcel - * @package PHPExcel_Writer_OpenDocument - * @copyright Copyright (c) 2006 - 2015 PHPExcel (http://www.codeplex.com/PHPExcel) - * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL - * @version ##VERSION##, ##DATE## - */ -class PHPExcel_Writer_OpenDocument extends PHPExcel_Writer_Abstract implements PHPExcel_Writer_IWriter -{ - /** - * Private writer parts - * - * @var PHPExcel_Writer_OpenDocument_WriterPart[] - */ - private $writerParts = array(); - - /** - * Private PHPExcel - * - * @var PHPExcel - */ - private $spreadSheet; - - /** - * Create a new PHPExcel_Writer_OpenDocument - * - * @param PHPExcel $pPHPExcel - */ - public function __construct(PHPExcel $pPHPExcel = null) - { - $this->setPHPExcel($pPHPExcel); - - $writerPartsArray = array( - 'content' => 'PHPExcel_Writer_OpenDocument_Content', - 'meta' => 'PHPExcel_Writer_OpenDocument_Meta', - 'meta_inf' => 'PHPExcel_Writer_OpenDocument_MetaInf', - 'mimetype' => 'PHPExcel_Writer_OpenDocument_Mimetype', - 'settings' => 'PHPExcel_Writer_OpenDocument_Settings', - 'styles' => 'PHPExcel_Writer_OpenDocument_Styles', - 'thumbnails' => 'PHPExcel_Writer_OpenDocument_Thumbnails' - ); - - foreach ($writerPartsArray as $writer => $class) { - $this->writerParts[$writer] = new $class($this); - } - } - - /** - * Get writer part - * - * @param string $pPartName Writer part name - * @return PHPExcel_Writer_Excel2007_WriterPart - */ - public function getWriterPart($pPartName = '') - { - if ($pPartName != '' && isset($this->writerParts[strtolower($pPartName)])) { - return $this->writerParts[strtolower($pPartName)]; - } else { - return null; - } - } - - /** - * Save PHPExcel to file - * - * @param string $pFilename - * @throws PHPExcel_Writer_Exception - */ - public function save($pFilename = null) - { - if (!$this->spreadSheet) { - throw new PHPExcel_Writer_Exception('PHPExcel object unassigned.'); - } - - // garbage collect - $this->spreadSheet->garbageCollect(); - - // If $pFilename is php://output or php://stdout, make it a temporary file... - $originalFilename = $pFilename; - if (strtolower($pFilename) == 'php://output' || strtolower($pFilename) == 'php://stdout') { - $pFilename = @tempnam(PHPExcel_Shared_File::sys_get_temp_dir(), 'phpxltmp'); - if ($pFilename == '') { - $pFilename = $originalFilename; - } - } - - $objZip = $this->createZip($pFilename); - - $objZip->addFromString('META-INF/manifest.xml', $this->getWriterPart('meta_inf')->writeManifest()); - $objZip->addFromString('Thumbnails/thumbnail.png', $this->getWriterPart('thumbnails')->writeThumbnail()); - $objZip->addFromString('content.xml', $this->getWriterPart('content')->write()); - $objZip->addFromString('meta.xml', $this->getWriterPart('meta')->write()); - $objZip->addFromString('mimetype', $this->getWriterPart('mimetype')->write()); - $objZip->addFromString('settings.xml', $this->getWriterPart('settings')->write()); - $objZip->addFromString('styles.xml', $this->getWriterPart('styles')->write()); - - // Close file - if ($objZip->close() === false) { - throw new PHPExcel_Writer_Exception("Could not close zip file $pFilename."); - } - - // If a temporary file was used, copy it to the correct file stream - if ($originalFilename != $pFilename) { - if (copy($pFilename, $originalFilename) === false) { - throw new PHPExcel_Writer_Exception("Could not copy temporary zip file $pFilename to $originalFilename."); - } - @unlink($pFilename); - } - } - - /** - * Create zip object - * - * @param string $pFilename - * @throws PHPExcel_Writer_Exception - * @return ZipArchive - */ - private function createZip($pFilename) - { - // Create new ZIP file and open it for writing - $zipClass = PHPExcel_Settings::getZipClass(); - $objZip = new $zipClass(); - - // Retrieve OVERWRITE and CREATE constants from the instantiated zip class - // This method of accessing constant values from a dynamic class should work with all appropriate versions of PHP - $ro = new ReflectionObject($objZip); - $zipOverWrite = $ro->getConstant('OVERWRITE'); - $zipCreate = $ro->getConstant('CREATE'); - - if (file_exists($pFilename)) { - unlink($pFilename); - } - // Try opening the ZIP file - if ($objZip->open($pFilename, $zipOverWrite) !== true) { - if ($objZip->open($pFilename, $zipCreate) !== true) { - throw new PHPExcel_Writer_Exception("Could not open $pFilename for writing."); - } - } - - return $objZip; - } - - /** - * Get PHPExcel object - * - * @return PHPExcel - * @throws PHPExcel_Writer_Exception - */ - public function getPHPExcel() - { - if ($this->spreadSheet !== null) { - return $this->spreadSheet; - } else { - throw new PHPExcel_Writer_Exception('No PHPExcel assigned.'); - } - } - - /** - * Set PHPExcel object - * - * @param PHPExcel $pPHPExcel PHPExcel object - * @throws PHPExcel_Writer_Exception - * @return PHPExcel_Writer_Excel2007 - */ - public function setPHPExcel(PHPExcel $pPHPExcel = null) - { - $this->spreadSheet = $pPHPExcel; - return $this; - } -} diff --git a/Utils/PHPExcel/Writer/OpenDocument/Cell/Comment.php b/Utils/PHPExcel/Writer/OpenDocument/Cell/Comment.php deleted file mode 100644 index f1e98a1..0000000 --- a/Utils/PHPExcel/Writer/OpenDocument/Cell/Comment.php +++ /dev/null @@ -1,63 +0,0 @@ -<?php -/** - * PHPExcel - * - * Copyright (c) 2006 - 2015 PHPExcel - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - * - * @category PHPExcel - * @package PHPExcel_Writer_OpenDocument - * @copyright Copyright (c) 2006 - 2015 PHPExcel (http://www.codeplex.com/PHPExcel) - * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL - * @version ##VERSION##, ##DATE## - */ - - -/** - * PHPExcel_Writer_OpenDocument_Cell_Comment - * - * @category PHPExcel - * @package PHPExcel_Writer_OpenDocument - * @copyright Copyright (c) 2006 - 2015 PHPExcel (http://www.codeplex.com/PHPExcel) - * @author Alexander Pervakov <frost-nzcr4@jagmort.com> - */ -class PHPExcel_Writer_OpenDocument_Cell_Comment -{ - public static function write(PHPExcel_Shared_XMLWriter $objWriter, PHPExcel_Cell $cell) - { - $comments = $cell->getWorksheet()->getComments(); - if (!isset($comments[$cell->getCoordinate()])) { - return; - } - $comment = $comments[$cell->getCoordinate()]; - - $objWriter->startElement('office:annotation'); - //$objWriter->writeAttribute('draw:style-name', 'gr1'); - //$objWriter->writeAttribute('draw:text-style-name', 'P1'); - $objWriter->writeAttribute('svg:width', $comment->getWidth()); - $objWriter->writeAttribute('svg:height', $comment->getHeight()); - $objWriter->writeAttribute('svg:x', $comment->getMarginLeft()); - $objWriter->writeAttribute('svg:y', $comment->getMarginTop()); - //$objWriter->writeAttribute('draw:caption-point-x', $comment->getMarginLeft()); - //$objWriter->writeAttribute('draw:caption-point-y', $comment->getMarginTop()); - $objWriter->writeElement('dc:creator', $comment->getAuthor()); - // TODO: Not realized in PHPExcel_Comment yet. - //$objWriter->writeElement('dc:date', $comment->getDate()); - $objWriter->writeElement('text:p', $comment->getText()->getPlainText()); - //$objWriter->writeAttribute('draw:text-style-name', 'P1'); - $objWriter->endElement(); - } -} diff --git a/Utils/PHPExcel/Writer/OpenDocument/Content.php b/Utils/PHPExcel/Writer/OpenDocument/Content.php deleted file mode 100644 index a34b167..0000000 --- a/Utils/PHPExcel/Writer/OpenDocument/Content.php +++ /dev/null @@ -1,272 +0,0 @@ -<?php -/** - * PHPExcel - * - * Copyright (c) 2006 - 2015 PHPExcel - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - * - * @category PHPExcel - * @package PHPExcel_Writer_OpenDocument - * @copyright Copyright (c) 2006 - 2015 PHPExcel (http://www.codeplex.com/PHPExcel) - * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL - * @version ##VERSION##, ##DATE## - */ - - -/** - * PHPExcel_Writer_OpenDocument_Content - * - * @category PHPExcel - * @package PHPExcel_Writer_OpenDocument - * @copyright Copyright (c) 2006 - 2015 PHPExcel (http://www.codeplex.com/PHPExcel) - * @author Alexander Pervakov <frost-nzcr4@jagmort.com> - */ -class PHPExcel_Writer_OpenDocument_Content extends PHPExcel_Writer_OpenDocument_WriterPart -{ - const NUMBER_COLS_REPEATED_MAX = 1024; - const NUMBER_ROWS_REPEATED_MAX = 1048576; - - /** - * Write content.xml to XML format - * - * @param PHPExcel $pPHPExcel - * @return string XML Output - * @throws PHPExcel_Writer_Exception - */ - public function write(PHPExcel $pPHPExcel = null) - { - if (!$pPHPExcel) { - $pPHPExcel = $this->getParentWriter()->getPHPExcel(); /* @var $pPHPExcel PHPExcel */ - } - - $objWriter = null; - if ($this->getParentWriter()->getUseDiskCaching()) { - $objWriter = new PHPExcel_Shared_XMLWriter(PHPExcel_Shared_XMLWriter::STORAGE_DISK, $this->getParentWriter()->getDiskCachingDirectory()); - } else { - $objWriter = new PHPExcel_Shared_XMLWriter(PHPExcel_Shared_XMLWriter::STORAGE_MEMORY); - } - - // XML header - $objWriter->startDocument('1.0', 'UTF-8'); - - // Content - $objWriter->startElement('office:document-content'); - $objWriter->writeAttribute('xmlns:office', 'urn:oasis:names:tc:opendocument:xmlns:office:1.0'); - $objWriter->writeAttribute('xmlns:style', 'urn:oasis:names:tc:opendocument:xmlns:style:1.0'); - $objWriter->writeAttribute('xmlns:text', 'urn:oasis:names:tc:opendocument:xmlns:text:1.0'); - $objWriter->writeAttribute('xmlns:table', 'urn:oasis:names:tc:opendocument:xmlns:table:1.0'); - $objWriter->writeAttribute('xmlns:draw', 'urn:oasis:names:tc:opendocument:xmlns:drawing:1.0'); - $objWriter->writeAttribute('xmlns:fo', 'urn:oasis:names:tc:opendocument:xmlns:xsl-fo-compatible:1.0'); - $objWriter->writeAttribute('xmlns:xlink', 'http://www.w3.org/1999/xlink'); - $objWriter->writeAttribute('xmlns:dc', 'http://purl.org/dc/elements/1.1/'); - $objWriter->writeAttribute('xmlns:meta', 'urn:oasis:names:tc:opendocument:xmlns:meta:1.0'); - $objWriter->writeAttribute('xmlns:number', 'urn:oasis:names:tc:opendocument:xmlns:datastyle:1.0'); - $objWriter->writeAttribute('xmlns:presentation', 'urn:oasis:names:tc:opendocument:xmlns:presentation:1.0'); - $objWriter->writeAttribute('xmlns:svg', 'urn:oasis:names:tc:opendocument:xmlns:svg-compatible:1.0'); - $objWriter->writeAttribute('xmlns:chart', 'urn:oasis:names:tc:opendocument:xmlns:chart:1.0'); - $objWriter->writeAttribute('xmlns:dr3d', 'urn:oasis:names:tc:opendocument:xmlns:dr3d:1.0'); - $objWriter->writeAttribute('xmlns:math', 'http://www.w3.org/1998/Math/MathML'); - $objWriter->writeAttribute('xmlns:form', 'urn:oasis:names:tc:opendocument:xmlns:form:1.0'); - $objWriter->writeAttribute('xmlns:script', 'urn:oasis:names:tc:opendocument:xmlns:script:1.0'); - $objWriter->writeAttribute('xmlns:ooo', 'http://openoffice.org/2004/office'); - $objWriter->writeAttribute('xmlns:ooow', 'http://openoffice.org/2004/writer'); - $objWriter->writeAttribute('xmlns:oooc', 'http://openoffice.org/2004/calc'); - $objWriter->writeAttribute('xmlns:dom', 'http://www.w3.org/2001/xml-events'); - $objWriter->writeAttribute('xmlns:xforms', 'http://www.w3.org/2002/xforms'); - $objWriter->writeAttribute('xmlns:xsd', 'http://www.w3.org/2001/XMLSchema'); - $objWriter->writeAttribute('xmlns:xsi', 'http://www.w3.org/2001/XMLSchema-instance'); - $objWriter->writeAttribute('xmlns:rpt', 'http://openoffice.org/2005/report'); - $objWriter->writeAttribute('xmlns:of', 'urn:oasis:names:tc:opendocument:xmlns:of:1.2'); - $objWriter->writeAttribute('xmlns:xhtml', 'http://www.w3.org/1999/xhtml'); - $objWriter->writeAttribute('xmlns:grddl', 'http://www.w3.org/2003/g/data-view#'); - $objWriter->writeAttribute('xmlns:tableooo', 'http://openoffice.org/2009/table'); - $objWriter->writeAttribute('xmlns:field', 'urn:openoffice:names:experimental:ooo-ms-interop:xmlns:field:1.0'); - $objWriter->writeAttribute('xmlns:formx', 'urn:openoffice:names:experimental:ooxml-odf-interop:xmlns:form:1.0'); - $objWriter->writeAttribute('xmlns:css3t', 'http://www.w3.org/TR/css3-text/'); - $objWriter->writeAttribute('office:version', '1.2'); - - $objWriter->writeElement('office:scripts'); - $objWriter->writeElement('office:font-face-decls'); - $objWriter->writeElement('office:automatic-styles'); - - $objWriter->startElement('office:body'); - $objWriter->startElement('office:spreadsheet'); - $objWriter->writeElement('table:calculation-settings'); - $this->writeSheets($objWriter); - $objWriter->writeElement('table:named-expressions'); - $objWriter->endElement(); - $objWriter->endElement(); - $objWriter->endElement(); - - return $objWriter->getData(); - } - - /** - * Write sheets - * - * @param PHPExcel_Shared_XMLWriter $objWriter - */ - private function writeSheets(PHPExcel_Shared_XMLWriter $objWriter) - { - $pPHPExcel = $this->getParentWriter()->getPHPExcel(); /* @var $pPHPExcel PHPExcel */ - - $sheet_count = $pPHPExcel->getSheetCount(); - for ($i = 0; $i < $sheet_count; $i++) { - //$this->getWriterPart('Worksheet')->writeWorksheet()); - $objWriter->startElement('table:table'); - $objWriter->writeAttribute('table:name', $pPHPExcel->getSheet($i)->getTitle()); - $objWriter->writeElement('office:forms'); - $objWriter->startElement('table:table-column'); - $objWriter->writeAttribute('table:number-columns-repeated', self::NUMBER_COLS_REPEATED_MAX); - $objWriter->endElement(); - $this->writeRows($objWriter, $pPHPExcel->getSheet($i)); - $objWriter->endElement(); - } - } - - /** - * Write rows of the specified sheet - * - * @param PHPExcel_Shared_XMLWriter $objWriter - * @param PHPExcel_Worksheet $sheet - */ - private function writeRows(PHPExcel_Shared_XMLWriter $objWriter, PHPExcel_Worksheet $sheet) - { - $number_rows_repeated = self::NUMBER_ROWS_REPEATED_MAX; - $span_row = 0; - $rows = $sheet->getRowIterator(); - while ($rows->valid()) { - $number_rows_repeated--; - $row = $rows->current(); - if ($row->getCellIterator()->valid()) { - if ($span_row) { - $objWriter->startElement('table:table-row'); - if ($span_row > 1) { - $objWriter->writeAttribute('table:number-rows-repeated', $span_row); - } - $objWriter->startElement('table:table-cell'); - $objWriter->writeAttribute('table:number-columns-repeated', self::NUMBER_COLS_REPEATED_MAX); - $objWriter->endElement(); - $objWriter->endElement(); - $span_row = 0; - } - $objWriter->startElement('table:table-row'); - $this->writeCells($objWriter, $row); - $objWriter->endElement(); - } else { - $span_row++; - } - $rows->next(); - } - } - - /** - * Write cells of the specified row - * - * @param PHPExcel_Shared_XMLWriter $objWriter - * @param PHPExcel_Worksheet_Row $row - * @throws PHPExcel_Writer_Exception - */ - private function writeCells(PHPExcel_Shared_XMLWriter $objWriter, PHPExcel_Worksheet_Row $row) - { - $number_cols_repeated = self::NUMBER_COLS_REPEATED_MAX; - $prev_column = -1; - $cells = $row->getCellIterator(); - while ($cells->valid()) { - $cell = $cells->current(); - $column = PHPExcel_Cell::columnIndexFromString($cell->getColumn()) - 1; - - $this->writeCellSpan($objWriter, $column, $prev_column); - $objWriter->startElement('table:table-cell'); - - switch ($cell->getDataType()) { - case PHPExcel_Cell_DataType::TYPE_BOOL: - $objWriter->writeAttribute('office:value-type', 'boolean'); - $objWriter->writeAttribute('office:value', $cell->getValue()); - $objWriter->writeElement('text:p', $cell->getValue()); - break; - - case PHPExcel_Cell_DataType::TYPE_ERROR: - throw new PHPExcel_Writer_Exception('Writing of error not implemented yet.'); - break; - - case PHPExcel_Cell_DataType::TYPE_FORMULA: - try { - $formula_value = $cell->getCalculatedValue(); - } catch (Exception $e) { - $formula_value = $cell->getValue(); - } - $objWriter->writeAttribute('table:formula', 'of:' . $cell->getValue()); - if (is_numeric($formula_value)) { - $objWriter->writeAttribute('office:value-type', 'float'); - } else { - $objWriter->writeAttribute('office:value-type', 'string'); - } - $objWriter->writeAttribute('office:value', $formula_value); - $objWriter->writeElement('text:p', $formula_value); - break; - - case PHPExcel_Cell_DataType::TYPE_INLINE: - throw new PHPExcel_Writer_Exception('Writing of inline not implemented yet.'); - break; - - case PHPExcel_Cell_DataType::TYPE_NUMERIC: - $objWriter->writeAttribute('office:value-type', 'float'); - $objWriter->writeAttribute('office:value', $cell->getValue()); - $objWriter->writeElement('text:p', $cell->getValue()); - break; - - case PHPExcel_Cell_DataType::TYPE_STRING: - $objWriter->writeAttribute('office:value-type', 'string'); - $objWriter->writeElement('text:p', $cell->getValue()); - break; - } - PHPExcel_Writer_OpenDocument_Cell_Comment::write($objWriter, $cell); - $objWriter->endElement(); - $prev_column = $column; - $cells->next(); - } - $number_cols_repeated = $number_cols_repeated - $prev_column - 1; - if ($number_cols_repeated > 0) { - if ($number_cols_repeated > 1) { - $objWriter->startElement('table:table-cell'); - $objWriter->writeAttribute('table:number-columns-repeated', $number_cols_repeated); - $objWriter->endElement(); - } else { - $objWriter->writeElement('table:table-cell'); - } - } - } - - /** - * Write span - * - * @param PHPExcel_Shared_XMLWriter $objWriter - * @param integer $curColumn - * @param integer $prevColumn - */ - private function writeCellSpan(PHPExcel_Shared_XMLWriter $objWriter, $curColumn, $prevColumn) - { - $diff = $curColumn - $prevColumn - 1; - if (1 === $diff) { - $objWriter->writeElement('table:table-cell'); - } elseif ($diff > 1) { - $objWriter->startElement('table:table-cell'); - $objWriter->writeAttribute('table:number-columns-repeated', $diff); - $objWriter->endElement(); - } - } -} diff --git a/Utils/PHPExcel/Writer/OpenDocument/Meta.php b/Utils/PHPExcel/Writer/OpenDocument/Meta.php deleted file mode 100644 index 1a5c5fd..0000000 --- a/Utils/PHPExcel/Writer/OpenDocument/Meta.php +++ /dev/null @@ -1,95 +0,0 @@ -<?php - -/** - * PHPExcel_Writer_OpenDocument_Meta - * - * Copyright (c) 2006 - 2015 PHPExcel - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - * - * @category PHPExcel - * @package PHPExcel_Writer_OpenDocument - * @copyright Copyright (c) 2006 - 2015 PHPExcel (http://www.codeplex.com/PHPExcel) - * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL - * @version ##VERSION##, ##DATE## - */ -class PHPExcel_Writer_OpenDocument_Meta extends PHPExcel_Writer_OpenDocument_WriterPart -{ - /** - * Write meta.xml to XML format - * - * @param PHPExcel $pPHPExcel - * @return string XML Output - * @throws PHPExcel_Writer_Exception - */ - public function write(PHPExcel $pPHPExcel = null) - { - if (!$pPHPExcel) { - $pPHPExcel = $this->getParentWriter()->getPHPExcel(); - } - - $objWriter = null; - if ($this->getParentWriter()->getUseDiskCaching()) { - $objWriter = new PHPExcel_Shared_XMLWriter(PHPExcel_Shared_XMLWriter::STORAGE_DISK, $this->getParentWriter()->getDiskCachingDirectory()); - } else { - $objWriter = new PHPExcel_Shared_XMLWriter(PHPExcel_Shared_XMLWriter::STORAGE_MEMORY); - } - - // XML header - $objWriter->startDocument('1.0', 'UTF-8'); - - // Meta - $objWriter->startElement('office:document-meta'); - - $objWriter->writeAttribute('xmlns:office', 'urn:oasis:names:tc:opendocument:xmlns:office:1.0'); - $objWriter->writeAttribute('xmlns:xlink', 'http://www.w3.org/1999/xlink'); - $objWriter->writeAttribute('xmlns:dc', 'http://purl.org/dc/elements/1.1/'); - $objWriter->writeAttribute('xmlns:meta', 'urn:oasis:names:tc:opendocument:xmlns:meta:1.0'); - $objWriter->writeAttribute('xmlns:ooo', 'http://openoffice.org/2004/office'); - $objWriter->writeAttribute('xmlns:grddl', 'http://www.w3.org/2003/g/data-view#'); - $objWriter->writeAttribute('office:version', '1.2'); - - $objWriter->startElement('office:meta'); - - $objWriter->writeElement('meta:initial-creator', $pPHPExcel->getProperties()->getCreator()); - $objWriter->writeElement('dc:creator', $pPHPExcel->getProperties()->getCreator()); - $objWriter->writeElement('meta:creation-date', date(DATE_W3C, $pPHPExcel->getProperties()->getCreated())); - $objWriter->writeElement('dc:date', date(DATE_W3C, $pPHPExcel->getProperties()->getCreated())); - $objWriter->writeElement('dc:title', $pPHPExcel->getProperties()->getTitle()); - $objWriter->writeElement('dc:description', $pPHPExcel->getProperties()->getDescription()); - $objWriter->writeElement('dc:subject', $pPHPExcel->getProperties()->getSubject()); - $keywords = explode(' ', $pPHPExcel->getProperties()->getKeywords()); - foreach ($keywords as $keyword) { - $objWriter->writeElement('meta:keyword', $keyword); - } - - //<meta:document-statistic meta:table-count="XXX" meta:cell-count="XXX" meta:object-count="XXX"/> - $objWriter->startElement('meta:user-defined'); - $objWriter->writeAttribute('meta:name', 'Company'); - $objWriter->writeRaw($pPHPExcel->getProperties()->getCompany()); - $objWriter->endElement(); - - $objWriter->startElement('meta:user-defined'); - $objWriter->writeAttribute('meta:name', 'category'); - $objWriter->writeRaw($pPHPExcel->getProperties()->getCategory()); - $objWriter->endElement(); - - $objWriter->endElement(); - - $objWriter->endElement(); - - return $objWriter->getData(); - } -} diff --git a/Utils/PHPExcel/Writer/OpenDocument/MetaInf.php b/Utils/PHPExcel/Writer/OpenDocument/MetaInf.php deleted file mode 100644 index c43b723..0000000 --- a/Utils/PHPExcel/Writer/OpenDocument/MetaInf.php +++ /dev/null @@ -1,87 +0,0 @@ -<?php - -/** - * PHPExcel_Writer_OpenDocument_MetaInf - * - * Copyright (c) 2006 - 2015 PHPExcel - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - * - * @category PHPExcel - * @package PHPExcel_Writer_OpenDocument - * @copyright Copyright (c) 2006 - 2015 PHPExcel (http://www.codeplex.com/PHPExcel) - * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL - * @version ##VERSION##, ##DATE## - */ -class PHPExcel_Writer_OpenDocument_MetaInf extends PHPExcel_Writer_OpenDocument_WriterPart -{ - /** - * Write META-INF/manifest.xml to XML format - * - * @param PHPExcel $pPHPExcel - * @return string XML Output - * @throws PHPExcel_Writer_Exception - */ - public function writeManifest(PHPExcel $pPHPExcel = null) - { - if (!$pPHPExcel) { - $pPHPExcel = $this->getParentWriter()->getPHPExcel(); - } - - $objWriter = null; - if ($this->getParentWriter()->getUseDiskCaching()) { - $objWriter = new PHPExcel_Shared_XMLWriter(PHPExcel_Shared_XMLWriter::STORAGE_DISK, $this->getParentWriter()->getDiskCachingDirectory()); - } else { - $objWriter = new PHPExcel_Shared_XMLWriter(PHPExcel_Shared_XMLWriter::STORAGE_MEMORY); - } - - // XML header - $objWriter->startDocument('1.0', 'UTF-8'); - - // Manifest - $objWriter->startElement('manifest:manifest'); - $objWriter->writeAttribute('xmlns:manifest', 'urn:oasis:names:tc:opendocument:xmlns:manifest:1.0'); - $objWriter->writeAttribute('manifest:version', '1.2'); - - $objWriter->startElement('manifest:file-entry'); - $objWriter->writeAttribute('manifest:full-path', '/'); - $objWriter->writeAttribute('manifest:version', '1.2'); - $objWriter->writeAttribute('manifest:media-type', 'application/vnd.oasis.opendocument.spreadsheet'); - $objWriter->endElement(); - $objWriter->startElement('manifest:file-entry'); - $objWriter->writeAttribute('manifest:full-path', 'meta.xml'); - $objWriter->writeAttribute('manifest:media-type', 'text/xml'); - $objWriter->endElement(); - $objWriter->startElement('manifest:file-entry'); - $objWriter->writeAttribute('manifest:full-path', 'settings.xml'); - $objWriter->writeAttribute('manifest:media-type', 'text/xml'); - $objWriter->endElement(); - $objWriter->startElement('manifest:file-entry'); - $objWriter->writeAttribute('manifest:full-path', 'content.xml'); - $objWriter->writeAttribute('manifest:media-type', 'text/xml'); - $objWriter->endElement(); - $objWriter->startElement('manifest:file-entry'); - $objWriter->writeAttribute('manifest:full-path', 'Thumbnails/thumbnail.png'); - $objWriter->writeAttribute('manifest:media-type', 'image/png'); - $objWriter->endElement(); - $objWriter->startElement('manifest:file-entry'); - $objWriter->writeAttribute('manifest:full-path', 'styles.xml'); - $objWriter->writeAttribute('manifest:media-type', 'text/xml'); - $objWriter->endElement(); - $objWriter->endElement(); - - return $objWriter->getData(); - } -} diff --git a/Utils/PHPExcel/Writer/OpenDocument/Mimetype.php b/Utils/PHPExcel/Writer/OpenDocument/Mimetype.php deleted file mode 100644 index d51a8b9..0000000 --- a/Utils/PHPExcel/Writer/OpenDocument/Mimetype.php +++ /dev/null @@ -1,41 +0,0 @@ -<?php - -/** - * PHPExcel - * - * PHPExcel_Writer_OpenDocument_Mimetype - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - * - * @category PHPExcel - * @package PHPExcel_Writer_OpenDocument - * @copyright Copyright (c) 2006 - 2015 PHPExcel (http://www.codeplex.com/PHPExcel) - * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL - * @version ##VERSION##, ##DATE## - */ -class PHPExcel_Writer_OpenDocument_Mimetype extends PHPExcel_Writer_OpenDocument_WriterPart -{ - /** - * Write mimetype to plain text format - * - * @param PHPExcel $pPHPExcel - * @return string XML Output - * @throws PHPExcel_Writer_Exception - */ - public function write(PHPExcel $pPHPExcel = null) - { - return 'application/vnd.oasis.opendocument.spreadsheet'; - } -} diff --git a/Utils/PHPExcel/Writer/OpenDocument/Settings.php b/Utils/PHPExcel/Writer/OpenDocument/Settings.php deleted file mode 100644 index 84161b6..0000000 --- a/Utils/PHPExcel/Writer/OpenDocument/Settings.php +++ /dev/null @@ -1,76 +0,0 @@ -<?php - -/** - * PHPExcel_Writer_OpenDocument_Settings - * - * Copyright (c) 2006 - 2015 PHPExcel - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - * - * @category PHPExcel - * @package PHPExcel_Writer_OpenDocument - * @copyright Copyright (c) 2006 - 2015 PHPExcel (http://www.codeplex.com/PHPExcel) - * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL - * @version ##VERSION##, ##DATE## - */ -class PHPExcel_Writer_OpenDocument_Settings extends PHPExcel_Writer_OpenDocument_WriterPart -{ - /** - * Write settings.xml to XML format - * - * @param PHPExcel $pPHPExcel - * @return string XML Output - * @throws PHPExcel_Writer_Exception - */ - public function write(PHPExcel $pPHPExcel = null) - { - if (!$pPHPExcel) { - $pPHPExcel = $this->getParentWriter()->getPHPExcel(); - } - - $objWriter = null; - if ($this->getParentWriter()->getUseDiskCaching()) { - $objWriter = new PHPExcel_Shared_XMLWriter(PHPExcel_Shared_XMLWriter::STORAGE_DISK, $this->getParentWriter()->getDiskCachingDirectory()); - } else { - $objWriter = new PHPExcel_Shared_XMLWriter(PHPExcel_Shared_XMLWriter::STORAGE_MEMORY); - } - - // XML header - $objWriter->startDocument('1.0', 'UTF-8'); - - // Settings - $objWriter->startElement('office:document-settings'); - $objWriter->writeAttribute('xmlns:office', 'urn:oasis:names:tc:opendocument:xmlns:office:1.0'); - $objWriter->writeAttribute('xmlns:xlink', 'http://www.w3.org/1999/xlink'); - $objWriter->writeAttribute('xmlns:config', 'urn:oasis:names:tc:opendocument:xmlns:config:1.0'); - $objWriter->writeAttribute('xmlns:ooo', 'http://openoffice.org/2004/office'); - $objWriter->writeAttribute('office:version', '1.2'); - - $objWriter->startElement('office:settings'); - $objWriter->startElement('config:config-item-set'); - $objWriter->writeAttribute('config:name', 'ooo:view-settings'); - $objWriter->startElement('config:config-item-map-indexed'); - $objWriter->writeAttribute('config:name', 'Views'); - $objWriter->endElement(); - $objWriter->endElement(); - $objWriter->startElement('config:config-item-set'); - $objWriter->writeAttribute('config:name', 'ooo:configuration-settings'); - $objWriter->endElement(); - $objWriter->endElement(); - $objWriter->endElement(); - - return $objWriter->getData(); - } -} diff --git a/Utils/PHPExcel/Writer/OpenDocument/Styles.php b/Utils/PHPExcel/Writer/OpenDocument/Styles.php deleted file mode 100644 index cc6e25b..0000000 --- a/Utils/PHPExcel/Writer/OpenDocument/Styles.php +++ /dev/null @@ -1,92 +0,0 @@ -<?php - -/** - * PHPExcel_Writer_OpenDocument_Styles - * - * Copyright (c) 2006 - 2015 PHPExcel - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - * - * @category PHPExcel - * @package PHPExcel_Writer_OpenDocument - * @copyright Copyright (c) 2006 - 2015 PHPExcel (http://www.codeplex.com/PHPExcel) - * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL - * @version ##VERSION##, ##DATE## - */ -class PHPExcel_Writer_OpenDocument_Styles extends PHPExcel_Writer_OpenDocument_WriterPart -{ - /** - * Write styles.xml to XML format - * - * @param PHPExcel $pPHPExcel - * @return string XML Output - * @throws PHPExcel_Writer_Exception - */ - public function write(PHPExcel $pPHPExcel = null) - { - if (!$pPHPExcel) { - $pPHPExcel = $this->getParentWriter()->getPHPExcel(); - } - - $objWriter = null; - if ($this->getParentWriter()->getUseDiskCaching()) { - $objWriter = new PHPExcel_Shared_XMLWriter(PHPExcel_Shared_XMLWriter::STORAGE_DISK, $this->getParentWriter()->getDiskCachingDirectory()); - } else { - $objWriter = new PHPExcel_Shared_XMLWriter(PHPExcel_Shared_XMLWriter::STORAGE_MEMORY); - } - - // XML header - $objWriter->startDocument('1.0', 'UTF-8'); - - // Content - $objWriter->startElement('office:document-styles'); - $objWriter->writeAttribute('xmlns:office', 'urn:oasis:names:tc:opendocument:xmlns:office:1.0'); - $objWriter->writeAttribute('xmlns:style', 'urn:oasis:names:tc:opendocument:xmlns:style:1.0'); - $objWriter->writeAttribute('xmlns:text', 'urn:oasis:names:tc:opendocument:xmlns:text:1.0'); - $objWriter->writeAttribute('xmlns:table', 'urn:oasis:names:tc:opendocument:xmlns:table:1.0'); - $objWriter->writeAttribute('xmlns:draw', 'urn:oasis:names:tc:opendocument:xmlns:drawing:1.0'); - $objWriter->writeAttribute('xmlns:fo', 'urn:oasis:names:tc:opendocument:xmlns:xsl-fo-compatible:1.0'); - $objWriter->writeAttribute('xmlns:xlink', 'http://www.w3.org/1999/xlink'); - $objWriter->writeAttribute('xmlns:dc', 'http://purl.org/dc/elements/1.1/'); - $objWriter->writeAttribute('xmlns:meta', 'urn:oasis:names:tc:opendocument:xmlns:meta:1.0'); - $objWriter->writeAttribute('xmlns:number', 'urn:oasis:names:tc:opendocument:xmlns:datastyle:1.0'); - $objWriter->writeAttribute('xmlns:presentation', 'urn:oasis:names:tc:opendocument:xmlns:presentation:1.0'); - $objWriter->writeAttribute('xmlns:svg', 'urn:oasis:names:tc:opendocument:xmlns:svg-compatible:1.0'); - $objWriter->writeAttribute('xmlns:chart', 'urn:oasis:names:tc:opendocument:xmlns:chart:1.0'); - $objWriter->writeAttribute('xmlns:dr3d', 'urn:oasis:names:tc:opendocument:xmlns:dr3d:1.0'); - $objWriter->writeAttribute('xmlns:math', 'http://www.w3.org/1998/Math/MathML'); - $objWriter->writeAttribute('xmlns:form', 'urn:oasis:names:tc:opendocument:xmlns:form:1.0'); - $objWriter->writeAttribute('xmlns:script', 'urn:oasis:names:tc:opendocument:xmlns:script:1.0'); - $objWriter->writeAttribute('xmlns:ooo', 'http://openoffice.org/2004/office'); - $objWriter->writeAttribute('xmlns:ooow', 'http://openoffice.org/2004/writer'); - $objWriter->writeAttribute('xmlns:oooc', 'http://openoffice.org/2004/calc'); - $objWriter->writeAttribute('xmlns:dom', 'http://www.w3.org/2001/xml-events'); - $objWriter->writeAttribute('xmlns:rpt', 'http://openoffice.org/2005/report'); - $objWriter->writeAttribute('xmlns:of', 'urn:oasis:names:tc:opendocument:xmlns:of:1.2'); - $objWriter->writeAttribute('xmlns:xhtml', 'http://www.w3.org/1999/xhtml'); - $objWriter->writeAttribute('xmlns:grddl', 'http://www.w3.org/2003/g/data-view#'); - $objWriter->writeAttribute('xmlns:tableooo', 'http://openoffice.org/2009/table'); - $objWriter->writeAttribute('xmlns:css3t', 'http://www.w3.org/TR/css3-text/'); - $objWriter->writeAttribute('office:version', '1.2'); - - $objWriter->writeElement('office:font-face-decls'); - $objWriter->writeElement('office:styles'); - $objWriter->writeElement('office:automatic-styles'); - $objWriter->writeElement('office:master-styles'); - $objWriter->endElement(); - - return $objWriter->getData(); - } -} diff --git a/Utils/PHPExcel/Writer/OpenDocument/Thumbnails.php b/Utils/PHPExcel/Writer/OpenDocument/Thumbnails.php deleted file mode 100644 index 54247ae..0000000 --- a/Utils/PHPExcel/Writer/OpenDocument/Thumbnails.php +++ /dev/null @@ -1,41 +0,0 @@ -<?php - -/** - * PHPExcel_Writer_OpenDocument_Thumbnails - * - * Copyright (c) 2006 - 2015 PHPExcel - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - * - * @category PHPExcel - * @package PHPExcel_Writer_OpenDocument - * @copyright Copyright (c) 2006 - 2015 PHPExcel (http://www.codeplex.com/PHPExcel) - * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL - * @version ##VERSION##, ##DATE## - */ -class PHPExcel_Writer_OpenDocument_Thumbnails extends PHPExcel_Writer_OpenDocument_WriterPart -{ - /** - * Write Thumbnails/thumbnail.png to PNG format - * - * @param PHPExcel $pPHPExcel - * @return string XML Output - * @throws PHPExcel_Writer_Exception - */ - public function writeThumbnail(PHPExcel $pPHPExcel = null) - { - return ''; - } -} diff --git a/Utils/PHPExcel/Writer/OpenDocument/WriterPart.php b/Utils/PHPExcel/Writer/OpenDocument/WriterPart.php deleted file mode 100644 index 562787a..0000000 --- a/Utils/PHPExcel/Writer/OpenDocument/WriterPart.php +++ /dev/null @@ -1,30 +0,0 @@ -<?php - -/** - * PHPExcel_Writer_OpenDocument_WriterPart - * - * Copyright (c) 2006 - 2015 PHPExcel - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - * - * @category PHPExcel - * @package PHPExcel_Writer_OpenDocument - * @copyright Copyright (c) 2006 - 2015 PHPExcel (http://www.codeplex.com/PHPExcel) - * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL - * @version ##VERSION##, ##DATE## - */ -abstract class PHPExcel_Writer_OpenDocument_WriterPart extends PHPExcel_Writer_Excel2007_WriterPart -{ -} diff --git a/Utils/PHPExcel/Writer/PDF.php b/Utils/PHPExcel/Writer/PDF.php deleted file mode 100644 index 579edfa..0000000 --- a/Utils/PHPExcel/Writer/PDF.php +++ /dev/null @@ -1,89 +0,0 @@ -<?php - -/** - * PHPExcel_Writer_PDF - * - * Copyright (c) 2006 - 2015 PHPExcel - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - * - * @category PHPExcel - * @package PHPExcel_Writer_PDF - * @copyright Copyright (c) 2006 - 2015 PHPExcel (http://www.codeplex.com/PHPExcel) - * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL - * @version ##VERSION##, ##DATE## - */ -class PHPExcel_Writer_PDF implements PHPExcel_Writer_IWriter -{ - - /** - * The wrapper for the requested PDF rendering engine - * - * @var PHPExcel_Writer_PDF_Core - */ - private $renderer = null; - - /** - * Instantiate a new renderer of the configured type within this container class - * - * @param PHPExcel $phpExcel PHPExcel object - * @throws PHPExcel_Writer_Exception when PDF library is not configured - */ - public function __construct(PHPExcel $phpExcel) - { - $pdfLibraryName = PHPExcel_Settings::getPdfRendererName(); - if (is_null($pdfLibraryName)) { - throw new PHPExcel_Writer_Exception("PDF Rendering library has not been defined."); - } - - $pdfLibraryPath = PHPExcel_Settings::getPdfRendererPath(); - if (is_null($pdfLibraryName)) { - throw new PHPExcel_Writer_Exception("PDF Rendering library path has not been defined."); - } - $includePath = str_replace('\\', '/', get_include_path()); - $rendererPath = str_replace('\\', '/', $pdfLibraryPath); - if (strpos($rendererPath, $includePath) === false) { - set_include_path(get_include_path() . PATH_SEPARATOR . $pdfLibraryPath); - } - - $rendererName = 'PHPExcel_Writer_PDF_' . $pdfLibraryName; - $this->renderer = new $rendererName($phpExcel); - } - - - /** - * Magic method to handle direct calls to the configured PDF renderer wrapper class. - * - * @param string $name Renderer library method name - * @param mixed[] $arguments Array of arguments to pass to the renderer method - * @return mixed Returned data from the PDF renderer wrapper method - */ - public function __call($name, $arguments) - { - if ($this->renderer === null) { - throw new PHPExcel_Writer_Exception("PDF Rendering library has not been defined."); - } - - return call_user_func_array(array($this->renderer, $name), $arguments); - } - - /** - * {@inheritdoc} - */ - public function save($pFilename = null) - { - $this->renderer->save($pFilename); - } -} diff --git a/Utils/PHPExcel/Writer/PDF/Core.php b/Utils/PHPExcel/Writer/PDF/Core.php deleted file mode 100644 index 4fed84a..0000000 --- a/Utils/PHPExcel/Writer/PDF/Core.php +++ /dev/null @@ -1,355 +0,0 @@ -<?php - -/** - * PHPExcel_Writer_PDF_Core - * - * Copyright (c) 2006 - 2015 PHPExcel - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - * - * @category PHPExcel - * @package PHPExcel_Writer_PDF - * @copyright Copyright (c) 2006 - 2015 PHPExcel (http://www.codeplex.com/PHPExcel) - * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL - * @version ##VERSION##, ##DATE## - */ -abstract class PHPExcel_Writer_PDF_Core extends PHPExcel_Writer_HTML -{ - /** - * Temporary storage directory - * - * @var string - */ - protected $tempDir = ''; - - /** - * Font - * - * @var string - */ - protected $font = 'freesans'; - - /** - * Orientation (Over-ride) - * - * @var string - */ - protected $orientation; - - /** - * Paper size (Over-ride) - * - * @var int - */ - protected $paperSize; - - - /** - * Temporary storage for Save Array Return type - * - * @var string - */ - private $saveArrayReturnType; - - /** - * Paper Sizes xRef List - * - * @var array - */ - protected static $paperSizes = array( - PHPExcel_Worksheet_PageSetup::PAPERSIZE_LETTER - => 'LETTER', // (8.5 in. by 11 in.) - PHPExcel_Worksheet_PageSetup::PAPERSIZE_LETTER_SMALL - => 'LETTER', // (8.5 in. by 11 in.) - PHPExcel_Worksheet_PageSetup::PAPERSIZE_TABLOID - => array(792.00, 1224.00), // (11 in. by 17 in.) - PHPExcel_Worksheet_PageSetup::PAPERSIZE_LEDGER - => array(1224.00, 792.00), // (17 in. by 11 in.) - PHPExcel_Worksheet_PageSetup::PAPERSIZE_LEGAL - => 'LEGAL', // (8.5 in. by 14 in.) - PHPExcel_Worksheet_PageSetup::PAPERSIZE_STATEMENT - => array(396.00, 612.00), // (5.5 in. by 8.5 in.) - PHPExcel_Worksheet_PageSetup::PAPERSIZE_EXECUTIVE - => 'EXECUTIVE', // (7.25 in. by 10.5 in.) - PHPExcel_Worksheet_PageSetup::PAPERSIZE_A3 - => 'A3', // (297 mm by 420 mm) - PHPExcel_Worksheet_PageSetup::PAPERSIZE_A4 - => 'A4', // (210 mm by 297 mm) - PHPExcel_Worksheet_PageSetup::PAPERSIZE_A4_SMALL - => 'A4', // (210 mm by 297 mm) - PHPExcel_Worksheet_PageSetup::PAPERSIZE_A5 - => 'A5', // (148 mm by 210 mm) - PHPExcel_Worksheet_PageSetup::PAPERSIZE_B4 - => 'B4', // (250 mm by 353 mm) - PHPExcel_Worksheet_PageSetup::PAPERSIZE_B5 - => 'B5', // (176 mm by 250 mm) - PHPExcel_Worksheet_PageSetup::PAPERSIZE_FOLIO - => 'FOLIO', // (8.5 in. by 13 in.) - PHPExcel_Worksheet_PageSetup::PAPERSIZE_QUARTO - => array(609.45, 779.53), // (215 mm by 275 mm) - PHPExcel_Worksheet_PageSetup::PAPERSIZE_STANDARD_1 - => array(720.00, 1008.00), // (10 in. by 14 in.) - PHPExcel_Worksheet_PageSetup::PAPERSIZE_STANDARD_2 - => array(792.00, 1224.00), // (11 in. by 17 in.) - PHPExcel_Worksheet_PageSetup::PAPERSIZE_NOTE - => 'LETTER', // (8.5 in. by 11 in.) - PHPExcel_Worksheet_PageSetup::PAPERSIZE_NO9_ENVELOPE - => array(279.00, 639.00), // (3.875 in. by 8.875 in.) - PHPExcel_Worksheet_PageSetup::PAPERSIZE_NO10_ENVELOPE - => array(297.00, 684.00), // (4.125 in. by 9.5 in.) - PHPExcel_Worksheet_PageSetup::PAPERSIZE_NO11_ENVELOPE - => array(324.00, 747.00), // (4.5 in. by 10.375 in.) - PHPExcel_Worksheet_PageSetup::PAPERSIZE_NO12_ENVELOPE - => array(342.00, 792.00), // (4.75 in. by 11 in.) - PHPExcel_Worksheet_PageSetup::PAPERSIZE_NO14_ENVELOPE - => array(360.00, 828.00), // (5 in. by 11.5 in.) - PHPExcel_Worksheet_PageSetup::PAPERSIZE_C - => array(1224.00, 1584.00), // (17 in. by 22 in.) - PHPExcel_Worksheet_PageSetup::PAPERSIZE_D - => array(1584.00, 2448.00), // (22 in. by 34 in.) - PHPExcel_Worksheet_PageSetup::PAPERSIZE_E - => array(2448.00, 3168.00), // (34 in. by 44 in.) - PHPExcel_Worksheet_PageSetup::PAPERSIZE_DL_ENVELOPE - => array(311.81, 623.62), // (110 mm by 220 mm) - PHPExcel_Worksheet_PageSetup::PAPERSIZE_C5_ENVELOPE - => 'C5', // (162 mm by 229 mm) - PHPExcel_Worksheet_PageSetup::PAPERSIZE_C3_ENVELOPE - => 'C3', // (324 mm by 458 mm) - PHPExcel_Worksheet_PageSetup::PAPERSIZE_C4_ENVELOPE - => 'C4', // (229 mm by 324 mm) - PHPExcel_Worksheet_PageSetup::PAPERSIZE_C6_ENVELOPE - => 'C6', // (114 mm by 162 mm) - PHPExcel_Worksheet_PageSetup::PAPERSIZE_C65_ENVELOPE - => array(323.15, 649.13), // (114 mm by 229 mm) - PHPExcel_Worksheet_PageSetup::PAPERSIZE_B4_ENVELOPE - => 'B4', // (250 mm by 353 mm) - PHPExcel_Worksheet_PageSetup::PAPERSIZE_B5_ENVELOPE - => 'B5', // (176 mm by 250 mm) - PHPExcel_Worksheet_PageSetup::PAPERSIZE_B6_ENVELOPE - => array(498.90, 354.33), // (176 mm by 125 mm) - PHPExcel_Worksheet_PageSetup::PAPERSIZE_ITALY_ENVELOPE - => array(311.81, 651.97), // (110 mm by 230 mm) - PHPExcel_Worksheet_PageSetup::PAPERSIZE_MONARCH_ENVELOPE - => array(279.00, 540.00), // (3.875 in. by 7.5 in.) - PHPExcel_Worksheet_PageSetup::PAPERSIZE_6_3_4_ENVELOPE - => array(261.00, 468.00), // (3.625 in. by 6.5 in.) - PHPExcel_Worksheet_PageSetup::PAPERSIZE_US_STANDARD_FANFOLD - => array(1071.00, 792.00), // (14.875 in. by 11 in.) - PHPExcel_Worksheet_PageSetup::PAPERSIZE_GERMAN_STANDARD_FANFOLD - => array(612.00, 864.00), // (8.5 in. by 12 in.) - PHPExcel_Worksheet_PageSetup::PAPERSIZE_GERMAN_LEGAL_FANFOLD - => 'FOLIO', // (8.5 in. by 13 in.) - PHPExcel_Worksheet_PageSetup::PAPERSIZE_ISO_B4 - => 'B4', // (250 mm by 353 mm) - PHPExcel_Worksheet_PageSetup::PAPERSIZE_JAPANESE_DOUBLE_POSTCARD - => array(566.93, 419.53), // (200 mm by 148 mm) - PHPExcel_Worksheet_PageSetup::PAPERSIZE_STANDARD_PAPER_1 - => array(648.00, 792.00), // (9 in. by 11 in.) - PHPExcel_Worksheet_PageSetup::PAPERSIZE_STANDARD_PAPER_2 - => array(720.00, 792.00), // (10 in. by 11 in.) - PHPExcel_Worksheet_PageSetup::PAPERSIZE_STANDARD_PAPER_3 - => array(1080.00, 792.00), // (15 in. by 11 in.) - PHPExcel_Worksheet_PageSetup::PAPERSIZE_INVITE_ENVELOPE - => array(623.62, 623.62), // (220 mm by 220 mm) - PHPExcel_Worksheet_PageSetup::PAPERSIZE_LETTER_EXTRA_PAPER - => array(667.80, 864.00), // (9.275 in. by 12 in.) - PHPExcel_Worksheet_PageSetup::PAPERSIZE_LEGAL_EXTRA_PAPER - => array(667.80, 1080.00), // (9.275 in. by 15 in.) - PHPExcel_Worksheet_PageSetup::PAPERSIZE_TABLOID_EXTRA_PAPER - => array(841.68, 1296.00), // (11.69 in. by 18 in.) - PHPExcel_Worksheet_PageSetup::PAPERSIZE_A4_EXTRA_PAPER - => array(668.98, 912.76), // (236 mm by 322 mm) - PHPExcel_Worksheet_PageSetup::PAPERSIZE_LETTER_TRANSVERSE_PAPER - => array(595.80, 792.00), // (8.275 in. by 11 in.) - PHPExcel_Worksheet_PageSetup::PAPERSIZE_A4_TRANSVERSE_PAPER - => 'A4', // (210 mm by 297 mm) - PHPExcel_Worksheet_PageSetup::PAPERSIZE_LETTER_EXTRA_TRANSVERSE_PAPER - => array(667.80, 864.00), // (9.275 in. by 12 in.) - PHPExcel_Worksheet_PageSetup::PAPERSIZE_SUPERA_SUPERA_A4_PAPER - => array(643.46, 1009.13), // (227 mm by 356 mm) - PHPExcel_Worksheet_PageSetup::PAPERSIZE_SUPERB_SUPERB_A3_PAPER - => array(864.57, 1380.47), // (305 mm by 487 mm) - PHPExcel_Worksheet_PageSetup::PAPERSIZE_LETTER_PLUS_PAPER - => array(612.00, 913.68), // (8.5 in. by 12.69 in.) - PHPExcel_Worksheet_PageSetup::PAPERSIZE_A4_PLUS_PAPER - => array(595.28, 935.43), // (210 mm by 330 mm) - PHPExcel_Worksheet_PageSetup::PAPERSIZE_A5_TRANSVERSE_PAPER - => 'A5', // (148 mm by 210 mm) - PHPExcel_Worksheet_PageSetup::PAPERSIZE_JIS_B5_TRANSVERSE_PAPER - => array(515.91, 728.50), // (182 mm by 257 mm) - PHPExcel_Worksheet_PageSetup::PAPERSIZE_A3_EXTRA_PAPER - => array(912.76, 1261.42), // (322 mm by 445 mm) - PHPExcel_Worksheet_PageSetup::PAPERSIZE_A5_EXTRA_PAPER - => array(493.23, 666.14), // (174 mm by 235 mm) - PHPExcel_Worksheet_PageSetup::PAPERSIZE_ISO_B5_EXTRA_PAPER - => array(569.76, 782.36), // (201 mm by 276 mm) - PHPExcel_Worksheet_PageSetup::PAPERSIZE_A2_PAPER - => 'A2', // (420 mm by 594 mm) - PHPExcel_Worksheet_PageSetup::PAPERSIZE_A3_TRANSVERSE_PAPER - => 'A3', // (297 mm by 420 mm) - PHPExcel_Worksheet_PageSetup::PAPERSIZE_A3_EXTRA_TRANSVERSE_PAPER - => array(912.76, 1261.42) // (322 mm by 445 mm) - ); - - /** - * Create a new PHPExcel_Writer_PDF - * - * @param PHPExcel $phpExcel PHPExcel object - */ - public function __construct(PHPExcel $phpExcel) - { - parent::__construct($phpExcel); - $this->setUseInlineCss(true); - $this->tempDir = PHPExcel_Shared_File::sys_get_temp_dir(); - } - - /** - * Get Font - * - * @return string - */ - public function getFont() - { - return $this->font; - } - - /** - * Set font. Examples: - * 'arialunicid0-chinese-simplified' - * 'arialunicid0-chinese-traditional' - * 'arialunicid0-korean' - * 'arialunicid0-japanese' - * - * @param string $fontName - */ - public function setFont($fontName) - { - $this->font = $fontName; - return $this; - } - - /** - * Get Paper Size - * - * @return int - */ - public function getPaperSize() - { - return $this->paperSize; - } - - /** - * Set Paper Size - * - * @param string $pValue Paper size - * @return PHPExcel_Writer_PDF - */ - public function setPaperSize($pValue = PHPExcel_Worksheet_PageSetup::PAPERSIZE_LETTER) - { - $this->paperSize = $pValue; - return $this; - } - - /** - * Get Orientation - * - * @return string - */ - public function getOrientation() - { - return $this->orientation; - } - - /** - * Set Orientation - * - * @param string $pValue Page orientation - * @return PHPExcel_Writer_PDF - */ - public function setOrientation($pValue = PHPExcel_Worksheet_PageSetup::ORIENTATION_DEFAULT) - { - $this->orientation = $pValue; - return $this; - } - - /** - * Get temporary storage directory - * - * @return string - */ - public function getTempDir() - { - return $this->tempDir; - } - - /** - * Set temporary storage directory - * - * @param string $pValue Temporary storage directory - * @throws PHPExcel_Writer_Exception when directory does not exist - * @return PHPExcel_Writer_PDF - */ - public function setTempDir($pValue = '') - { - if (is_dir($pValue)) { - $this->tempDir = $pValue; - } else { - throw new PHPExcel_Writer_Exception("Directory does not exist: $pValue"); - } - return $this; - } - - /** - * Save PHPExcel to PDF file, pre-save - * - * @param string $pFilename Name of the file to save as - * @throws PHPExcel_Writer_Exception - */ - protected function prepareForSave($pFilename = null) - { - // garbage collect - $this->phpExcel->garbageCollect(); - - $this->saveArrayReturnType = PHPExcel_Calculation::getArrayReturnType(); - PHPExcel_Calculation::setArrayReturnType(PHPExcel_Calculation::RETURN_ARRAY_AS_VALUE); - - // Open file - $fileHandle = fopen($pFilename, 'w'); - if ($fileHandle === false) { - throw new PHPExcel_Writer_Exception("Could not open file $pFilename for writing."); - } - - // Set PDF - $this->isPdf = true; - // Build CSS - $this->buildCSS(true); - - return $fileHandle; - } - - /** - * Save PHPExcel to PDF file, post-save - * - * @param resource $fileHandle - * @throws PHPExcel_Writer_Exception - */ - protected function restoreStateAfterSave($fileHandle) - { - // Close file - fclose($fileHandle); - - PHPExcel_Calculation::setArrayReturnType($this->saveArrayReturnType); - } -} diff --git a/Utils/PHPExcel/Writer/PDF/DomPDF.php b/Utils/PHPExcel/Writer/PDF/DomPDF.php deleted file mode 100644 index 1b9946f..0000000 --- a/Utils/PHPExcel/Writer/PDF/DomPDF.php +++ /dev/null @@ -1,108 +0,0 @@ -<?php - -/** Require DomPDF library */ -$pdfRendererClassFile = PHPExcel_Settings::getPdfRendererPath() . '/autoload.inc.php'; -if (file_exists($pdfRendererClassFile)) { - require_once $pdfRendererClassFile; -} else { - throw new PHPExcel_Writer_Exception('Unable to load PDF Rendering library'); -} - -/** - * PHPExcel_Writer_PDF_DomPDF - * - * Copyright (c) 2006 - 2015 PHPExcel - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - * - * @category PHPExcel - * @package PHPExcel_Writer_PDF - * @copyright Copyright (c) 2006 - 2015 PHPExcel (http://www.codeplex.com/PHPExcel) - * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL - * @version ##VERSION##, ##DATE## - */ -class PHPExcel_Writer_PDF_DomPDF extends PHPExcel_Writer_PDF_Core implements PHPExcel_Writer_IWriter -{ - /** - * Create a new PHPExcel_Writer_PDF - * - * @param PHPExcel $phpExcel PHPExcel object - */ - public function __construct(PHPExcel $phpExcel) - { - parent::__construct($phpExcel); - } - - /** - * Save PHPExcel to file - * - * @param string $pFilename Name of the file to save as - * @throws PHPExcel_Writer_Exception - */ - public function save($pFilename = null) - { - $fileHandle = parent::prepareForSave($pFilename); - - // Default PDF paper size - $paperSize = 'LETTER'; // Letter (8.5 in. by 11 in.) - - // Check for paper size and page orientation - if (is_null($this->getSheetIndex())) { - $orientation = ($this->phpExcel->getSheet(0)->getPageSetup()->getOrientation() - == PHPExcel_Worksheet_PageSetup::ORIENTATION_LANDSCAPE) ? 'L' : 'P'; - $printPaperSize = $this->phpExcel->getSheet(0)->getPageSetup()->getPaperSize(); - $printMargins = $this->phpExcel->getSheet(0)->getPageMargins(); - } else { - $orientation = ($this->phpExcel->getSheet($this->getSheetIndex())->getPageSetup()->getOrientation() - == PHPExcel_Worksheet_PageSetup::ORIENTATION_LANDSCAPE) ? 'L' : 'P'; - $printPaperSize = $this->phpExcel->getSheet($this->getSheetIndex())->getPageSetup()->getPaperSize(); - $printMargins = $this->phpExcel->getSheet($this->getSheetIndex())->getPageMargins(); - } - - $orientation = ($orientation == 'L') ? 'landscape' : 'portrait'; - - // Override Page Orientation - if (!is_null($this->getOrientation())) { - $orientation = ($this->getOrientation() == PHPExcel_Worksheet_PageSetup::ORIENTATION_DEFAULT) - ? PHPExcel_Worksheet_PageSetup::ORIENTATION_PORTRAIT - : $this->getOrientation(); - } - // Override Paper Size - if (!is_null($this->getPaperSize())) { - $printPaperSize = $this->getPaperSize(); - } - - if (isset(self::$paperSizes[$printPaperSize])) { - $paperSize = self::$paperSizes[$printPaperSize]; - } - - - // Create PDF - $pdf = new \Dompdf\Dompdf(); - $pdf->setPaper(strtolower($paperSize), $orientation); - - $pdf->loadHtml( - $this->generateHTMLHeader(false) . - $this->generateSheetData() . - $this->generateHTMLFooter() - ); - $pdf->render(); - - // Write to file - fwrite($fileHandle, $pdf->output()); - - parent::restoreStateAfterSave($fileHandle); - } -} diff --git a/Utils/PHPExcel/Writer/PDF/mPDF.php b/Utils/PHPExcel/Writer/PDF/mPDF.php deleted file mode 100644 index e4e6057..0000000 --- a/Utils/PHPExcel/Writer/PDF/mPDF.php +++ /dev/null @@ -1,118 +0,0 @@ -<?php - -/** Require mPDF library */ -$pdfRendererClassFile = PHPExcel_Settings::getPdfRendererPath() . '/mpdf.php'; -if (file_exists($pdfRendererClassFile)) { - require_once $pdfRendererClassFile; -} else { - throw new PHPExcel_Writer_Exception('Unable to load PDF Rendering library'); -} - -/** - * PHPExcel_Writer_PDF_mPDF - * - * Copyright (c) 2006 - 2015 PHPExcel - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - * - * @category PHPExcel - * @package PHPExcel_Writer_PDF - * @copyright Copyright (c) 2006 - 2015 PHPExcel (http://www.codeplex.com/PHPExcel) - * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL - * @version ##VERSION##, ##DATE## - */ -class PHPExcel_Writer_PDF_mPDF extends PHPExcel_Writer_PDF_Core implements PHPExcel_Writer_IWriter -{ - /** - * Create a new PHPExcel_Writer_PDF - * - * @param PHPExcel $phpExcel PHPExcel object - */ - public function __construct(PHPExcel $phpExcel) - { - parent::__construct($phpExcel); - } - - /** - * Save PHPExcel to file - * - * @param string $pFilename Name of the file to save as - * @throws PHPExcel_Writer_Exception - */ - public function save($pFilename = null) - { - $fileHandle = parent::prepareForSave($pFilename); - - // Default PDF paper size - $paperSize = 'LETTER'; // Letter (8.5 in. by 11 in.) - - // Check for paper size and page orientation - if (is_null($this->getSheetIndex())) { - $orientation = ($this->phpExcel->getSheet(0)->getPageSetup()->getOrientation() - == PHPExcel_Worksheet_PageSetup::ORIENTATION_LANDSCAPE) ? 'L' : 'P'; - $printPaperSize = $this->phpExcel->getSheet(0)->getPageSetup()->getPaperSize(); - $printMargins = $this->phpExcel->getSheet(0)->getPageMargins(); - } else { - $orientation = ($this->phpExcel->getSheet($this->getSheetIndex())->getPageSetup()->getOrientation() - == PHPExcel_Worksheet_PageSetup::ORIENTATION_LANDSCAPE) ? 'L' : 'P'; - $printPaperSize = $this->phpExcel->getSheet($this->getSheetIndex())->getPageSetup()->getPaperSize(); - $printMargins = $this->phpExcel->getSheet($this->getSheetIndex())->getPageMargins(); - } - $this->setOrientation($orientation); - - // Override Page Orientation - if (!is_null($this->getOrientation())) { - $orientation = ($this->getOrientation() == PHPExcel_Worksheet_PageSetup::ORIENTATION_DEFAULT) - ? PHPExcel_Worksheet_PageSetup::ORIENTATION_PORTRAIT - : $this->getOrientation(); - } - $orientation = strtoupper($orientation); - - // Override Paper Size - if (!is_null($this->getPaperSize())) { - $printPaperSize = $this->getPaperSize(); - } - - if (isset(self::$paperSizes[$printPaperSize])) { - $paperSize = self::$paperSizes[$printPaperSize]; - } - - - // Create PDF - $pdf = new mpdf(); - $ortmp = $orientation; - $pdf->_setPageSize(strtoupper($paperSize), $ortmp); - $pdf->DefOrientation = $orientation; - $pdf->AddPage($orientation); - - // Document info - $pdf->SetTitle($this->phpExcel->getProperties()->getTitle()); - $pdf->SetAuthor($this->phpExcel->getProperties()->getCreator()); - $pdf->SetSubject($this->phpExcel->getProperties()->getSubject()); - $pdf->SetKeywords($this->phpExcel->getProperties()->getKeywords()); - $pdf->SetCreator($this->phpExcel->getProperties()->getCreator()); - - $pdf->WriteHTML( - $this->generateHTMLHeader(false) . - $this->generateSheetData() . - $this->generateHTMLFooter() - ); - - // Write to file - fwrite($fileHandle, $pdf->Output('', 'S')); - - parent::restoreStateAfterSave($fileHandle); - } -} diff --git a/Utils/PHPExcel/Writer/PDF/tcPDF.php b/Utils/PHPExcel/Writer/PDF/tcPDF.php deleted file mode 100644 index dea33a3..0000000 --- a/Utils/PHPExcel/Writer/PDF/tcPDF.php +++ /dev/null @@ -1,123 +0,0 @@ -<?php - -/** Require tcPDF library */ -$pdfRendererClassFile = PHPExcel_Settings::getPdfRendererPath() . '/tcpdf.php'; -if (file_exists($pdfRendererClassFile)) { - $k_path_url = PHPExcel_Settings::getPdfRendererPath(); - require_once $pdfRendererClassFile; -} else { - throw new PHPExcel_Writer_Exception('Unable to load PDF Rendering library'); -} - -/** - * PHPExcel_Writer_PDF_tcPDF - * - * Copyright (c) 2006 - 2015 PHPExcel - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - * - * @category PHPExcel - * @package PHPExcel_Writer_PDF - * @copyright Copyright (c) 2006 - 2015 PHPExcel (http://www.codeplex.com/PHPExcel) - * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL - * @version ##VERSION##, ##DATE## - */ -class PHPExcel_Writer_PDF_tcPDF extends PHPExcel_Writer_PDF_Core implements PHPExcel_Writer_IWriter -{ - /** - * Create a new PHPExcel_Writer_PDF - * - * @param PHPExcel $phpExcel PHPExcel object - */ - public function __construct(PHPExcel $phpExcel) - { - parent::__construct($phpExcel); - } - - /** - * Save PHPExcel to file - * - * @param string $pFilename Name of the file to save as - * @throws PHPExcel_Writer_Exception - */ - public function save($pFilename = null) - { - $fileHandle = parent::prepareForSave($pFilename); - - // Default PDF paper size - $paperSize = 'LETTER'; // Letter (8.5 in. by 11 in.) - - // Check for paper size and page orientation - if (is_null($this->getSheetIndex())) { - $orientation = ($this->phpExcel->getSheet(0)->getPageSetup()->getOrientation() - == PHPExcel_Worksheet_PageSetup::ORIENTATION_LANDSCAPE) ? 'L' : 'P'; - $printPaperSize = $this->phpExcel->getSheet(0)->getPageSetup()->getPaperSize(); - $printMargins = $this->phpExcel->getSheet(0)->getPageMargins(); - } else { - $orientation = ($this->phpExcel->getSheet($this->getSheetIndex())->getPageSetup()->getOrientation() - == PHPExcel_Worksheet_PageSetup::ORIENTATION_LANDSCAPE) ? 'L' : 'P'; - $printPaperSize = $this->phpExcel->getSheet($this->getSheetIndex())->getPageSetup()->getPaperSize(); - $printMargins = $this->phpExcel->getSheet($this->getSheetIndex())->getPageMargins(); - } - - // Override Page Orientation - if (!is_null($this->getOrientation())) { - $orientation = ($this->getOrientation() == PHPExcel_Worksheet_PageSetup::ORIENTATION_LANDSCAPE) - ? 'L' - : 'P'; - } - // Override Paper Size - if (!is_null($this->getPaperSize())) { - $printPaperSize = $this->getPaperSize(); - } - - if (isset(self::$paperSizes[$printPaperSize])) { - $paperSize = self::$paperSizes[$printPaperSize]; - } - - - // Create PDF - $pdf = new TCPDF($orientation, 'pt', $paperSize); - $pdf->setFontSubsetting(false); - // Set margins, converting inches to points (using 72 dpi) - $pdf->SetMargins($printMargins->getLeft() * 72, $printMargins->getTop() * 72, $printMargins->getRight() * 72); - $pdf->SetAutoPageBreak(true, $printMargins->getBottom() * 72); - - $pdf->setPrintHeader(false); - $pdf->setPrintFooter(false); - - $pdf->AddPage(); - - // Set the appropriate font - $pdf->SetFont($this->getFont()); - $pdf->writeHTML( - $this->generateHTMLHeader(false) . - $this->generateSheetData() . - $this->generateHTMLFooter() - ); - - // Document info - $pdf->SetTitle($this->phpExcel->getProperties()->getTitle()); - $pdf->SetAuthor($this->phpExcel->getProperties()->getCreator()); - $pdf->SetSubject($this->phpExcel->getProperties()->getSubject()); - $pdf->SetKeywords($this->phpExcel->getProperties()->getKeywords()); - $pdf->SetCreator($this->phpExcel->getProperties()->getCreator()); - - // Write to file - fwrite($fileHandle, $pdf->output($pFilename, 'S')); - - parent::restoreStateAfterSave($fileHandle); - } -} diff --git a/Utils/PHPExcel/locale/bg/config b/Utils/PHPExcel/locale/bg/config deleted file mode 100644 index 4cecddb..0000000 --- a/Utils/PHPExcel/locale/bg/config +++ /dev/null @@ -1,49 +0,0 @@ -## -## PHPExcel -## - -## Copyright (c) 2006 - 2013 PHPExcel -## -## This library is free software; you can redistribute it and/or -## modify it under the terms of the GNU Lesser General Public -## License as published by the Free Software Foundation; either -## version 2.1 of the License, or (at your option) any later version. -## -## This library is distributed in the hope that it will be useful, -## but WITHOUT ANY WARRANTY; without even the implied warranty of -## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -## Lesser General Public License for more details. -## -## You should have received a copy of the GNU Lesser General Public -## License along with this library; if not, write to the Free Software -## Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA -## -## @category PHPExcel -## @package PHPExcel_Settings -## @copyright Copyright (c) 2006 - 2013 PHPExcel (http://www.codeplex.com/PHPExcel) -## @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL -## @version ##VERSION##, ##DATE## -## -## - - -ArgumentSeparator = ; - - -## -## (For future use) -## -currencySymbol = лв - - -## -## Excel Error Codes (For future use) - -## -NULL = #ПРАЗНО! -DIV0 = #ДЕЛ/0! -VALUE = #СТОЙНОСТ! -REF = #РЕФ! -NAME = #ИМЕ? -NUM = #ЧИСЛО! -NA = #Н/Д diff --git a/Utils/PHPExcel/locale/cs/config b/Utils/PHPExcel/locale/cs/config deleted file mode 100644 index 6c25d42..0000000 --- a/Utils/PHPExcel/locale/cs/config +++ /dev/null @@ -1,48 +0,0 @@ -## -## PHPExcel -## - -## Copyright (c) 2006 - 2013 PHPExcel -## -## This library is free software; you can redistribute it and/or -## modify it under the terms of the GNU Lesser General Public -## License as published by the Free Software Foundation; either -## version 2.1 of the License, or (at your option) any later version. -## -## This library is distributed in the hope that it will be useful, -## but WITHOUT ANY WARRANTY; without even the implied warranty of -## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -## Lesser General Public License for more details. -## -## You should have received a copy of the GNU Lesser General Public -## License along with this library; if not, write to the Free Software -## Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA -## -## @category PHPExcel -## @package PHPExcel_Settings -## @copyright Copyright (c) 2006 - 2013 PHPExcel (http://www.codeplex.com/PHPExcel) -## @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL -## @version ##VERSION##, ##DATE## -## -## - - -ArgumentSeparator = ; - - -## -## (For future use) -## -currencySymbol = Kč - - -## -## Excel Error Codes (For future use) -## -NULL = #NULL! -DIV0 = #DIV/0! -VALUE = #HODNOTA! -REF = #REF! -NAME = #NÁZEV? -NUM = #NUM! -NA = #N/A diff --git a/Utils/PHPExcel/locale/cs/functions b/Utils/PHPExcel/locale/cs/functions deleted file mode 100644 index 4207530..0000000 --- a/Utils/PHPExcel/locale/cs/functions +++ /dev/null @@ -1,439 +0,0 @@ -## -## PHPExcel -## - -## Copyright (c) 2006 - 2013 PHPExcel -## -## This library is free software; you can redistribute it and/or -## modify it under the terms of the GNU Lesser General Public -## License as published by the Free Software Foundation; either -## version 2.1 of the License, or (at your option) any later version. -## -## This library is distributed in the hope that it will be useful, -## but WITHOUT ANY WARRANTY; without even the implied warranty of -## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -## Lesser General Public License for more details. -## -## You should have received a copy of the GNU Lesser General Public -## License along with this library; if not, write to the Free Software -## Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA -## -## @category PHPExcel -## @package PHPExcel_Calculation -## @copyright Copyright (c) 2006 - 2013 PHPExcel (http://www.codeplex.com/PHPExcel) -## @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL -## @version ##VERSION##, ##DATE## -## -## Data in this file derived from http://www.piuha.fi/excel-function-name-translation/ -## -## - - -## -## Add-in and Automation functions Funkce doplňků a automatizace -## -GETPIVOTDATA = ZÍSKATKONTDATA ## Vrátí data uložená v kontingenční tabulce. Pomocí funkce ZÍSKATKONTDATA můžete načíst souhrnná data z kontingenční tabulky, pokud jsou tato data v kontingenční sestavě zobrazena. - - -## -## Cube functions Funkce pro práci s krychlemi -## -CUBEKPIMEMBER = CUBEKPIMEMBER ## Vrátí název, vlastnost a velikost klíčového ukazatele výkonu (KUV) a zobrazí v buňce název a vlastnost. Klíčový ukazatel výkonu je kvantifikovatelná veličina, například hrubý měsíční zisk nebo čtvrtletní obrat na zaměstnance, která se používá pro sledování výkonnosti organizace. -CUBEMEMBER = CUBEMEMBER ## Vrátí člen nebo n-tici v hierarchii krychle. Slouží k ověření, zda v krychli existuje člen nebo n-tice. -CUBEMEMBERPROPERTY = CUBEMEMBERPROPERTY ## Vrátí hodnotu vlastnosti člena v krychli. Slouží k ověření, zda v krychli existuje člen s daným názvem, a k vrácení konkrétní vlastnosti tohoto člena. -CUBERANKEDMEMBER = CUBERANKEDMEMBER ## Vrátí n-tý nebo pořadový člen sady. Použijte ji pro vrácení jednoho nebo více prvků sady, například obchodníka s nejvyšším obratem nebo deseti nejlepších studentů. -CUBESET = CUBESET ## Definuje vypočtenou sadu členů nebo n-tic odesláním výrazu sady do krychle na serveru, který vytvoří sadu a potom ji vrátí do aplikace Microsoft Office Excel. -CUBESETCOUNT = CUBESETCOUNT ## Vrátí počet položek v množině -CUBEVALUE = CUBEVALUE ## Vrátí úhrnnou hodnotu z krychle. - - -## -## Database functions Funkce databáze -## -DAVERAGE = DPRŮMĚR ## Vrátí průměr vybraných položek databáze. -DCOUNT = DPOČET ## Spočítá buňky databáze obsahující čísla. -DCOUNTA = DPOČET2 ## Spočítá buňky databáze, které nejsou prázdné. -DGET = DZÍSKAT ## Extrahuje z databáze jeden záznam splňující zadaná kritéria. -DMAX = DMAX ## Vrátí maximální hodnotu z vybraných položek databáze. -DMIN = DMIN ## Vrátí minimální hodnotu z vybraných položek databáze. -DPRODUCT = DSOUČIN ## Vynásobí hodnoty určitého pole záznamů v databázi, které splňují daná kritéria. -DSTDEV = DSMODCH.VÝBĚR ## Odhadne směrodatnou odchylku výběru vybraných položek databáze. -DSTDEVP = DSMODCH ## Vypočte směrodatnou odchylku základního souboru vybraných položek databáze. -DSUM = DSUMA ## Sečte čísla ve sloupcovém poli záznamů databáze, která splňují daná kritéria. -DVAR = DVAR.VÝBĚR ## Odhadne rozptyl výběru vybraných položek databáze. -DVARP = DVAR ## Vypočte rozptyl základního souboru vybraných položek databáze. - - -## -## Date and time functions Funkce data a času -## -DATE = DATUM ## Vrátí pořadové číslo určitého data. -DATEVALUE = DATUMHODN ## Převede datum ve formě textu na pořadové číslo. -DAY = DEN ## Převede pořadové číslo na den v měsíci. -DAYS360 = ROK360 ## Vrátí počet dní mezi dvěma daty na základě roku s 360 dny. -EDATE = EDATE ## Vrátí pořadové číslo data, které označuje určený počet měsíců před nebo po počátečním datu. -EOMONTH = EOMONTH ## Vrátí pořadové číslo posledního dne měsíce před nebo po zadaném počtu měsíců. -HOUR = HODINA ## Převede pořadové číslo na hodinu. -MINUTE = MINUTA ## Převede pořadové číslo na minutu. -MONTH = MĚSÍC ## Převede pořadové číslo na měsíc. -NETWORKDAYS = NETWORKDAYS ## Vrátí počet celých pracovních dní mezi dvěma daty. -NOW = NYNÍ ## Vrátí pořadové číslo aktuálního data a času. -SECOND = SEKUNDA ## Převede pořadové číslo na sekundu. -TIME = ČAS ## Vrátí pořadové číslo určitého času. -TIMEVALUE = ČASHODN ## Převede čas ve formě textu na pořadové číslo. -TODAY = DNES ## Vrátí pořadové číslo dnešního data. -WEEKDAY = DENTÝDNE ## Převede pořadové číslo na den v týdnu. -WEEKNUM = WEEKNUM ## Převede pořadové číslo na číslo představující číselnou pozici týdne v roce. -WORKDAY = WORKDAY ## Vrátí pořadové číslo data před nebo po zadaném počtu pracovních dní. -YEAR = ROK ## Převede pořadové číslo na rok. -YEARFRAC = YEARFRAC ## Vrátí část roku vyjádřenou zlomkem a představující počet celých dní mezi počátečním a koncovým datem. - - -## -## Engineering functions Inženýrské funkce (Technické funkce) -## -BESSELI = BESSELI ## Vrátí modifikovanou Besselovu funkci In(x). -BESSELJ = BESSELJ ## Vrátí modifikovanou Besselovu funkci Jn(x). -BESSELK = BESSELK ## Vrátí modifikovanou Besselovu funkci Kn(x). -BESSELY = BESSELY ## Vrátí Besselovu funkci Yn(x). -BIN2DEC = BIN2DEC ## Převede binární číslo na desítkové. -BIN2HEX = BIN2HEX ## Převede binární číslo na šestnáctkové. -BIN2OCT = BIN2OCT ## Převede binární číslo na osmičkové. -COMPLEX = COMPLEX ## Převede reálnou a imaginární část na komplexní číslo. -CONVERT = CONVERT ## Převede číslo do jiného jednotkového měrného systému. -DEC2BIN = DEC2BIN ## Převede desítkového čísla na dvojkové -DEC2HEX = DEC2HEX ## Převede desítkové číslo na šestnáctkové. -DEC2OCT = DEC2OCT ## Převede desítkové číslo na osmičkové. -DELTA = DELTA ## Testuje rovnost dvou hodnot. -ERF = ERF ## Vrátí chybovou funkci. -ERFC = ERFC ## Vrátí doplňkovou chybovou funkci. -GESTEP = GESTEP ## Testuje, zda je číslo větší než mezní hodnota. -HEX2BIN = HEX2BIN ## Převede šestnáctkové číslo na binární. -HEX2DEC = HEX2DEC ## Převede šestnáctkové číslo na desítkové. -HEX2OCT = HEX2OCT ## Převede šestnáctkové číslo na osmičkové. -IMABS = IMABS ## Vrátí absolutní hodnotu (modul) komplexního čísla. -IMAGINARY = IMAGINARY ## Vrátí imaginární část komplexního čísla. -IMARGUMENT = IMARGUMENT ## Vrátí argument théta, úhel vyjádřený v radiánech. -IMCONJUGATE = IMCONJUGATE ## Vrátí komplexně sdružené číslo ke komplexnímu číslu. -IMCOS = IMCOS ## Vrátí kosinus komplexního čísla. -IMDIV = IMDIV ## Vrátí podíl dvou komplexních čísel. -IMEXP = IMEXP ## Vrátí exponenciální tvar komplexního čísla. -IMLN = IMLN ## Vrátí přirozený logaritmus komplexního čísla. -IMLOG10 = IMLOG10 ## Vrátí dekadický logaritmus komplexního čísla. -IMLOG2 = IMLOG2 ## Vrátí logaritmus komplexního čísla při základu 2. -IMPOWER = IMPOWER ## Vrátí komplexní číslo umocněné na celé číslo. -IMPRODUCT = IMPRODUCT ## Vrátí součin komplexních čísel. -IMREAL = IMREAL ## Vrátí reálnou část komplexního čísla. -IMSIN = IMSIN ## Vrátí sinus komplexního čísla. -IMSQRT = IMSQRT ## Vrátí druhou odmocninu komplexního čísla. -IMSUB = IMSUB ## Vrátí rozdíl mezi dvěma komplexními čísly. -IMSUM = IMSUM ## Vrátí součet dvou komplexních čísel. -OCT2BIN = OCT2BIN ## Převede osmičkové číslo na binární. -OCT2DEC = OCT2DEC ## Převede osmičkové číslo na desítkové. -OCT2HEX = OCT2HEX ## Převede osmičkové číslo na šestnáctkové. - - -## -## Financial functions Finanční funkce -## -ACCRINT = ACCRINT ## Vrátí nahromaděný úrok z cenného papíru, ze kterého je úrok placen v pravidelných termínech. -ACCRINTM = ACCRINTM ## Vrátí nahromaděný úrok z cenného papíru, ze kterého je úrok placen k datu splatnosti. -AMORDEGRC = AMORDEGRC ## Vrátí lineární amortizaci v každém účetním období pomocí koeficientu amortizace. -AMORLINC = AMORLINC ## Vrátí lineární amortizaci v každém účetním období. -COUPDAYBS = COUPDAYBS ## Vrátí počet dnů od začátku období placení kupónů do data splatnosti. -COUPDAYS = COUPDAYS ## Vrátí počet dnů v období placení kupónů, které obsahuje den zúčtování. -COUPDAYSNC = COUPDAYSNC ## Vrátí počet dnů od data zúčtování do následujícího data placení kupónu. -COUPNCD = COUPNCD ## Vrátí následující datum placení kupónu po datu zúčtování. -COUPNUM = COUPNUM ## Vrátí počet kupónů splatných mezi datem zúčtování a datem splatnosti. -COUPPCD = COUPPCD ## Vrátí předchozí datum placení kupónu před datem zúčtování. -CUMIPMT = CUMIPMT ## Vrátí kumulativní úrok splacený mezi dvěma obdobími. -CUMPRINC = CUMPRINC ## Vrátí kumulativní jistinu splacenou mezi dvěma obdobími půjčky. -DB = ODPIS.ZRYCH ## Vrátí odpis aktiva za určité období pomocí degresivní metody odpisu s pevným zůstatkem. -DDB = ODPIS.ZRYCH2 ## Vrátí odpis aktiva za určité období pomocí dvojité degresivní metody odpisu nebo jiné metody, kterou zadáte. -DISC = DISC ## Vrátí diskontní sazbu cenného papíru. -DOLLARDE = DOLLARDE ## Převede částku v korunách vyjádřenou zlomkem na částku v korunách vyjádřenou desetinným číslem. -DOLLARFR = DOLLARFR ## Převede částku v korunách vyjádřenou desetinným číslem na částku v korunách vyjádřenou zlomkem. -DURATION = DURATION ## Vrátí roční dobu cenného papíru s pravidelnými úrokovými sazbami. -EFFECT = EFFECT ## Vrátí efektivní roční úrokovou sazbu. -FV = BUDHODNOTA ## Vrátí budoucí hodnotu investice. -FVSCHEDULE = FVSCHEDULE ## Vrátí budoucí hodnotu počáteční jistiny po použití série sazeb složitého úroku. -INTRATE = INTRATE ## Vrátí úrokovou sazbu plně investovaného cenného papíru. -IPMT = PLATBA.ÚROK ## Vrátí výšku úroku investice za dané období. -IRR = MÍRA.VÝNOSNOSTI ## Vrátí vnitřní výnosové procento série peněžních toků. -ISPMT = ISPMT ## Vypočte výši úroku z investice zaplaceného během určitého období. -MDURATION = MDURATION ## Vrátí Macauleyho modifikovanou dobu cenného papíru o nominální hodnotě 100 Kč. -MIRR = MOD.MÍRA.VÝNOSNOSTI ## Vrátí vnitřní sazbu výnosu, přičemž kladné a záporné hodnoty peněžních prostředků jsou financovány podle různých sazeb. -NOMINAL = NOMINAL ## Vrátí nominální roční úrokovou sazbu. -NPER = POČET.OBDOBÍ ## Vrátí počet období pro investici. -NPV = ČISTÁ.SOUČHODNOTA ## Vrátí čistou současnou hodnotu investice vypočítanou na základě série pravidelných peněžních toků a diskontní sazby. -ODDFPRICE = ODDFPRICE ## Vrátí cenu cenného papíru o nominální hodnotě 100 Kč s odlišným prvním obdobím. -ODDFYIELD = ODDFYIELD ## Vrátí výnos cenného papíru s odlišným prvním obdobím. -ODDLPRICE = ODDLPRICE ## Vrátí cenu cenného papíru o nominální hodnotě 100 Kč s odlišným posledním obdobím. -ODDLYIELD = ODDLYIELD ## Vrátí výnos cenného papíru s odlišným posledním obdobím. -PMT = PLATBA ## Vrátí hodnotu pravidelné splátky anuity. -PPMT = PLATBA.ZÁKLAD ## Vrátí hodnotu splátky jistiny pro zadanou investici za dané období. -PRICE = PRICE ## Vrátí cenu cenného papíru o nominální hodnotě 100 Kč, ze kterého je úrok placen v pravidelných termínech. -PRICEDISC = PRICEDISC ## Vrátí cenu diskontního cenného papíru o nominální hodnotě 100 Kč. -PRICEMAT = PRICEMAT ## Vrátí cenu cenného papíru o nominální hodnotě 100 Kč, ze kterého je úrok placen k datu splatnosti. -PV = SOUČHODNOTA ## Vrátí současnou hodnotu investice. -RATE = ÚROKOVÁ.MÍRA ## Vrátí úrokovou sazbu vztaženou na období anuity. -RECEIVED = RECEIVED ## Vrátí částku obdrženou k datu splatnosti plně investovaného cenného papíru. -SLN = ODPIS.LIN ## Vrátí přímé odpisy aktiva pro jedno období. -SYD = ODPIS.NELIN ## Vrátí směrné číslo ročních odpisů aktiva pro zadané období. -TBILLEQ = TBILLEQ ## Vrátí výnos směnky státní pokladny ekvivalentní výnosu obligace. -TBILLPRICE = TBILLPRICE ## Vrátí cenu směnky státní pokladny o nominální hodnotě 100 Kč. -TBILLYIELD = TBILLYIELD ## Vrátí výnos směnky státní pokladny. -VDB = ODPIS.ZA.INT ## Vrátí odpis aktiva pro určité období nebo část období pomocí degresivní metody odpisu. -XIRR = XIRR ## Vrátí vnitřní výnosnost pro harmonogram peněžních toků, který nemusí být nutně periodický. -XNPV = XNPV ## Vrátí čistou současnou hodnotu pro harmonogram peněžních toků, který nemusí být nutně periodický. -YIELD = YIELD ## Vrátí výnos cenného papíru, ze kterého je úrok placen v pravidelných termínech. -YIELDDISC = YIELDDISC ## Vrátí roční výnos diskontního cenného papíru, například směnky státní pokladny. -YIELDMAT = YIELDMAT ## Vrátí roční výnos cenného papíru, ze kterého je úrok placen k datu splatnosti. - - -## -## Information functions Informační funkce -## -CELL = POLÍČKO ## Vrátí informace o formátování, umístění nebo obsahu buňky. -ERROR.TYPE = CHYBA.TYP ## Vrátí číslo odpovídající typu chyby. -INFO = O.PROSTŘEDÍ ## Vrátí informace o aktuálním pracovním prostředí. -ISBLANK = JE.PRÁZDNÉ ## Vrátí hodnotu PRAVDA, pokud se argument hodnota odkazuje na prázdnou buňku. -ISERR = JE.CHYBA ## Vrátí hodnotu PRAVDA, pokud je argument hodnota libovolná chybová hodnota (kromě #N/A). -ISERROR = JE.CHYBHODN ## Vrátí hodnotu PRAVDA, pokud je argument hodnota libovolná chybová hodnota. -ISEVEN = ISEVEN ## Vrátí hodnotu PRAVDA, pokud je číslo sudé. -ISLOGICAL = JE.LOGHODN ## Vrátí hodnotu PRAVDA, pokud je argument hodnota logická hodnota. -ISNA = JE.NEDEF ## Vrátí hodnotu PRAVDA, pokud je argument hodnota chybová hodnota #N/A. -ISNONTEXT = JE.NETEXT ## Vrátí hodnotu PRAVDA, pokud argument hodnota není text. -ISNUMBER = JE.ČÍSLO ## Vrátí hodnotu PRAVDA, pokud je argument hodnota číslo. -ISODD = ISODD ## Vrátí hodnotu PRAVDA, pokud je číslo liché. -ISREF = JE.ODKAZ ## Vrátí hodnotu PRAVDA, pokud je argument hodnota odkaz. -ISTEXT = JE.TEXT ## Vrátí hodnotu PRAVDA, pokud je argument hodnota text. -N = N ## Vrátí hodnotu převedenou na číslo. -NA = NEDEF ## Vrátí chybovou hodnotu #N/A. -TYPE = TYP ## Vrátí číslo označující datový typ hodnoty. - - -## -## Logical functions Logické funkce -## -AND = A ## Vrátí hodnotu PRAVDA, mají-li všechny argumenty hodnotu PRAVDA. -FALSE = NEPRAVDA ## Vrátí logickou hodnotu NEPRAVDA. -IF = KDYŽ ## Určí, který logický test má proběhnout. -IFERROR = IFERROR ## Pokud je vzorec vyhodnocen jako chyba, vrátí zadanou hodnotu. V opačném případě vrátí výsledek vzorce. -NOT = NE ## Provede logickou negaci argumentu funkce. -OR = NEBO ## Vrátí hodnotu PRAVDA, je-li alespoň jeden argument roven hodnotě PRAVDA. -TRUE = PRAVDA ## Vrátí logickou hodnotu PRAVDA. - - -## -## Lookup and reference functions Vyhledávací funkce -## -ADDRESS = ODKAZ ## Vrátí textový odkaz na jednu buňku listu. -AREAS = POČET.BLOKŮ ## Vrátí počet oblastí v odkazu. -CHOOSE = ZVOLIT ## Zvolí hodnotu ze seznamu hodnot. -COLUMN = SLOUPEC ## Vrátí číslo sloupce odkazu. -COLUMNS = SLOUPCE ## Vrátí počet sloupců v odkazu. -HLOOKUP = VVYHLEDAT ## Prohledá horní řádek matice a vrátí hodnotu určené buňky. -HYPERLINK = HYPERTEXTOVÝ.ODKAZ ## Vytvoří zástupce nebo odkaz, který otevře dokument uložený na síťovém serveru, v síti intranet nebo Internet. -INDEX = INDEX ## Pomocí rejstříku zvolí hodnotu z odkazu nebo matice. -INDIRECT = NEPŘÍMÝ.ODKAZ ## Vrátí odkaz určený textovou hodnotou. -LOOKUP = VYHLEDAT ## Vyhledá hodnoty ve vektoru nebo matici. -MATCH = POZVYHLEDAT ## Vyhledá hodnoty v odkazu nebo matici. -OFFSET = POSUN ## Vrátí posun odkazu od zadaného odkazu. -ROW = ŘÁDEK ## Vrátí číslo řádku odkazu. -ROWS = ŘÁDKY ## Vrátí počet řádků v odkazu. -RTD = RTD ## Načte data reálného času z programu, který podporuje automatizaci modelu COM (Automatizace: Způsob práce s objekty určité aplikace z jiné aplikace nebo nástroje pro vývoj. Automatizace (dříve nazývaná automatizace OLE) je počítačovým standardem a je funkcí modelu COM (Component Object Model).). -TRANSPOSE = TRANSPOZICE ## Vrátí transponovanou matici. -VLOOKUP = SVYHLEDAT ## Prohledá první sloupec matice, přesune kurzor v řádku a vrátí hodnotu buňky. - - -## -## Math and trigonometry functions Matematické a trigonometrické funkce -## -ABS = ABS ## Vrátí absolutní hodnotu čísla. -ACOS = ARCCOS ## Vrátí arkuskosinus čísla. -ACOSH = ARCCOSH ## Vrátí hyperbolický arkuskosinus čísla. -ASIN = ARCSIN ## Vrátí arkussinus čísla. -ASINH = ARCSINH ## Vrátí hyperbolický arkussinus čísla. -ATAN = ARCTG ## Vrátí arkustangens čísla. -ATAN2 = ARCTG2 ## Vrátí arkustangens x-ové a y-ové souřadnice. -ATANH = ARCTGH ## Vrátí hyperbolický arkustangens čísla. -CEILING = ZAOKR.NAHORU ## Zaokrouhlí číslo na nejbližší celé číslo nebo na nejbližší násobek zadané hodnoty. -COMBIN = KOMBINACE ## Vrátí počet kombinací pro daný počet položek. -COS = COS ## Vrátí kosinus čísla. -COSH = COSH ## Vrátí hyperbolický kosinus čísla. -DEGREES = DEGREES ## Převede radiány na stupně. -EVEN = ZAOKROUHLIT.NA.SUDÉ ## Zaokrouhlí číslo nahoru na nejbližší celé sudé číslo. -EXP = EXP ## Vrátí základ přirozeného logaritmu e umocněný na zadané číslo. -FACT = FAKTORIÁL ## Vrátí faktoriál čísla. -FACTDOUBLE = FACTDOUBLE ## Vrátí dvojitý faktoriál čísla. -FLOOR = ZAOKR.DOLŮ ## Zaokrouhlí číslo dolů, směrem k nule. -GCD = GCD ## Vrátí největší společný dělitel. -INT = CELÁ.ČÁST ## Zaokrouhlí číslo dolů na nejbližší celé číslo. -LCM = LCM ## Vrátí nejmenší společný násobek. -LN = LN ## Vrátí přirozený logaritmus čísla. -LOG = LOGZ ## Vrátí logaritmus čísla při zadaném základu. -LOG10 = LOG ## Vrátí dekadický logaritmus čísla. -MDETERM = DETERMINANT ## Vrátí determinant matice. -MINVERSE = INVERZE ## Vrátí inverzní matici. -MMULT = SOUČIN.MATIC ## Vrátí součin dvou matic. -MOD = MOD ## Vrátí zbytek po dělení. -MROUND = MROUND ## Vrátí číslo zaokrouhlené na požadovaný násobek. -MULTINOMIAL = MULTINOMIAL ## Vrátí mnohočlen z množiny čísel. -ODD = ZAOKROUHLIT.NA.LICHÉ ## Zaokrouhlí číslo nahoru na nejbližší celé liché číslo. -PI = PI ## Vrátí hodnotu čísla pí. -POWER = POWER ## Umocní číslo na zadanou mocninu. -PRODUCT = SOUČIN ## Vynásobí argumenty funkce. -QUOTIENT = QUOTIENT ## Vrátí celou část dělení. -RADIANS = RADIANS ## Převede stupně na radiány. -RAND = NÁHČÍSLO ## Vrátí náhodné číslo mezi 0 a 1. -RANDBETWEEN = RANDBETWEEN ## Vrátí náhodné číslo mezi zadanými čísly. -ROMAN = ROMAN ## Převede arabskou číslici na římskou ve formátu textu. -ROUND = ZAOKROUHLIT ## Zaokrouhlí číslo na zadaný počet číslic. -ROUNDDOWN = ROUNDDOWN ## Zaokrouhlí číslo dolů, směrem k nule. -ROUNDUP = ROUNDUP ## Zaokrouhlí číslo nahoru, směrem od nuly. -SERIESSUM = SERIESSUM ## Vrátí součet mocninné řady určené podle vzorce. -SIGN = SIGN ## Vrátí znaménko čísla. -SIN = SIN ## Vrátí sinus daného úhlu. -SINH = SINH ## Vrátí hyperbolický sinus čísla. -SQRT = ODMOCNINA ## Vrátí kladnou druhou odmocninu. -SQRTPI = SQRTPI ## Vrátí druhou odmocninu výrazu (číslo * pí). -SUBTOTAL = SUBTOTAL ## Vrátí souhrn v seznamu nebo databázi. -SUM = SUMA ## Sečte argumenty funkce. -SUMIF = SUMIF ## Sečte buňky vybrané podle zadaných kritérií. -SUMIFS = SUMIFS ## Sečte buňky určené více zadanými podmínkami. -SUMPRODUCT = SOUČIN.SKALÁRNÍ ## Vrátí součet součinů odpovídajících prvků matic. -SUMSQ = SUMA.ČTVERCŮ ## Vrátí součet čtverců argumentů. -SUMX2MY2 = SUMX2MY2 ## Vrátí součet rozdílu čtverců odpovídajících hodnot ve dvou maticích. -SUMX2PY2 = SUMX2PY2 ## Vrátí součet součtu čtverců odpovídajících hodnot ve dvou maticích. -SUMXMY2 = SUMXMY2 ## Vrátí součet čtverců rozdílů odpovídajících hodnot ve dvou maticích. -TAN = TGTG ## Vrátí tangens čísla. -TANH = TGH ## Vrátí hyperbolický tangens čísla. -TRUNC = USEKNOUT ## Zkrátí číslo na celé číslo. - - -## -## Statistical functions Statistické funkce -## -AVEDEV = PRŮMODCHYLKA ## Vrátí průměrnou hodnotu absolutních odchylek datových bodů od jejich střední hodnoty. -AVERAGE = PRŮMĚR ## Vrátí průměrnou hodnotu argumentů. -AVERAGEA = AVERAGEA ## Vrátí průměrnou hodnotu argumentů včetně čísel, textu a logických hodnot. -AVERAGEIF = AVERAGEIF ## Vrátí průměrnou hodnotu (aritmetický průměr) všech buněk v oblasti, které vyhovují příslušné podmínce. -AVERAGEIFS = AVERAGEIFS ## Vrátí průměrnou hodnotu (aritmetický průměr) všech buněk vyhovujících několika podmínkám. -BETADIST = BETADIST ## Vrátí hodnotu součtového rozdělení beta. -BETAINV = BETAINV ## Vrátí inverzní hodnotu součtového rozdělení pro zadané rozdělení beta. -BINOMDIST = BINOMDIST ## Vrátí hodnotu binomického rozdělení pravděpodobnosti jednotlivých veličin. -CHIDIST = CHIDIST ## Vrátí jednostrannou pravděpodobnost rozdělení chí-kvadrát. -CHIINV = CHIINV ## Vrátí hodnotu funkce inverzní k distribuční funkci jednostranné pravděpodobnosti rozdělení chí-kvadrát. -CHITEST = CHITEST ## Vrátí test nezávislosti. -CONFIDENCE = CONFIDENCE ## Vrátí interval spolehlivosti pro střední hodnotu základního souboru. -CORREL = CORREL ## Vrátí korelační koeficient mezi dvěma množinami dat. -COUNT = POČET ## Vrátí počet čísel v seznamu argumentů. -COUNTA = POČET2 ## Vrátí počet hodnot v seznamu argumentů. -COUNTBLANK = COUNTBLANK ## Spočítá počet prázdných buněk v oblasti. -COUNTIF = COUNTIF ## Spočítá buňky v oblasti, které odpovídají zadaným kritériím. -COUNTIFS = COUNTIFS ## Spočítá buňky v oblasti, které odpovídají více kritériím. -COVAR = COVAR ## Vrátí hodnotu kovariance, průměrnou hodnotu součinů párových odchylek -CRITBINOM = CRITBINOM ## Vrátí nejmenší hodnotu, pro kterou má součtové binomické rozdělení hodnotu větší nebo rovnu hodnotě kritéria. -DEVSQ = DEVSQ ## Vrátí součet čtverců odchylek. -EXPONDIST = EXPONDIST ## Vrátí hodnotu exponenciálního rozdělení. -FDIST = FDIST ## Vrátí hodnotu rozdělení pravděpodobnosti F. -FINV = FINV ## Vrátí hodnotu inverzní funkce k distribuční funkci rozdělení F. -FISHER = FISHER ## Vrátí hodnotu Fisherovy transformace. -FISHERINV = FISHERINV ## Vrátí hodnotu inverzní funkce k Fisherově transformaci. -FORECAST = FORECAST ## Vrátí hodnotu lineárního trendu. -FREQUENCY = ČETNOSTI ## Vrátí četnost rozdělení jako svislou matici. -FTEST = FTEST ## Vrátí výsledek F-testu. -GAMMADIST = GAMMADIST ## Vrátí hodnotu rozdělení gama. -GAMMAINV = GAMMAINV ## Vrátí hodnotu inverzní funkce k distribuční funkci součtového rozdělení gama. -GAMMALN = GAMMALN ## Vrátí přirozený logaritmus funkce gama, Γ(x). -GEOMEAN = GEOMEAN ## Vrátí geometrický průměr. -GROWTH = LOGLINTREND ## Vrátí hodnoty exponenciálního trendu. -HARMEAN = HARMEAN ## Vrátí harmonický průměr. -HYPGEOMDIST = HYPGEOMDIST ## Vrátí hodnotu hypergeometrického rozdělení. -INTERCEPT = INTERCEPT ## Vrátí úsek lineární regresní čáry. -KURT = KURT ## Vrátí hodnotu excesu množiny dat. -LARGE = LARGE ## Vrátí k-tou největší hodnotu množiny dat. -LINEST = LINREGRESE ## Vrátí parametry lineárního trendu. -LOGEST = LOGLINREGRESE ## Vrátí parametry exponenciálního trendu. -LOGINV = LOGINV ## Vrátí inverzní funkci k distribuční funkci logaritmicko-normálního rozdělení. -LOGNORMDIST = LOGNORMDIST ## Vrátí hodnotu součtového logaritmicko-normálního rozdělení. -MAX = MAX ## Vrátí maximální hodnotu seznamu argumentů. -MAXA = MAXA ## Vrátí maximální hodnotu seznamu argumentů včetně čísel, textu a logických hodnot. -MEDIAN = MEDIAN ## Vrátí střední hodnotu zadaných čísel. -MIN = MIN ## Vrátí minimální hodnotu seznamu argumentů. -MINA = MINA ## Vrátí nejmenší hodnotu v seznamu argumentů včetně čísel, textu a logických hodnot. -MODE = MODE ## Vrátí hodnotu, která se v množině dat vyskytuje nejčastěji. -NEGBINOMDIST = NEGBINOMDIST ## Vrátí hodnotu negativního binomického rozdělení. -NORMDIST = NORMDIST ## Vrátí hodnotu normálního součtového rozdělení. -NORMINV = NORMINV ## Vrátí inverzní funkci k funkci normálního součtového rozdělení. -NORMSDIST = NORMSDIST ## Vrátí hodnotu standardního normálního součtového rozdělení. -NORMSINV = NORMSINV ## Vrátí inverzní funkci k funkci standardního normálního součtového rozdělení. -PEARSON = PEARSON ## Vrátí Pearsonův výsledný momentový korelační koeficient. -PERCENTILE = PERCENTIL ## Vrátí hodnotu k-tého percentilu hodnot v oblasti. -PERCENTRANK = PERCENTRANK ## Vrátí pořadí hodnoty v množině dat vyjádřené procentuální částí množiny dat. -PERMUT = PERMUTACE ## Vrátí počet permutací pro zadaný počet objektů. -POISSON = POISSON ## Vrátí hodnotu distribuční funkce Poissonova rozdělení. -PROB = PROB ## Vrátí pravděpodobnost výskytu hodnot v oblasti mezi dvěma mezními hodnotami. -QUARTILE = QUARTIL ## Vrátí hodnotu kvartilu množiny dat. -RANK = RANK ## Vrátí pořadí čísla v seznamu čísel. -RSQ = RKQ ## Vrátí druhou mocninu Pearsonova výsledného momentového korelačního koeficientu. -SKEW = SKEW ## Vrátí zešikmení rozdělení. -SLOPE = SLOPE ## Vrátí směrnici lineární regresní čáry. -SMALL = SMALL ## Vrátí k-tou nejmenší hodnotu množiny dat. -STANDARDIZE = STANDARDIZE ## Vrátí normalizovanou hodnotu. -STDEV = SMODCH.VÝBĚR ## Vypočte směrodatnou odchylku výběru. -STDEVA = STDEVA ## Vypočte směrodatnou odchylku výběru včetně čísel, textu a logických hodnot. -STDEVP = SMODCH ## Vypočte směrodatnou odchylku základního souboru. -STDEVPA = STDEVPA ## Vypočte směrodatnou odchylku základního souboru včetně čísel, textu a logických hodnot. -STEYX = STEYX ## Vrátí standardní chybu předpovězené hodnoty y pro každou hodnotu x v regresi. -TDIST = TDIST ## Vrátí hodnotu Studentova t-rozdělení. -TINV = TINV ## Vrátí inverzní funkci k distribuční funkci Studentova t-rozdělení. -TREND = LINTREND ## Vrátí hodnoty lineárního trendu. -TRIMMEAN = TRIMMEAN ## Vrátí střední hodnotu vnitřní části množiny dat. -TTEST = TTEST ## Vrátí pravděpodobnost spojenou se Studentovým t-testem. -VAR = VAR.VÝBĚR ## Vypočte rozptyl výběru. -VARA = VARA ## Vypočte rozptyl výběru včetně čísel, textu a logických hodnot. -VARP = VAR ## Vypočte rozptyl základního souboru. -VARPA = VARPA ## Vypočte rozptyl základního souboru včetně čísel, textu a logických hodnot. -WEIBULL = WEIBULL ## Vrátí hodnotu Weibullova rozdělení. -ZTEST = ZTEST ## Vrátí jednostrannou P-hodnotu z-testu. - - -## -## Text functions Textové funkce -## -ASC = ASC ## Změní znaky s plnou šířkou (dvoubajtové)v řetězci znaků na znaky s poloviční šířkou (jednobajtové). -BAHTTEXT = BAHTTEXT ## Převede číslo na text ve formátu, měny ß (baht). -CHAR = ZNAK ## Vrátí znak určený číslem kódu. -CLEAN = VYČISTIT ## Odebere z textu všechny netisknutelné znaky. -CODE = KÓD ## Vrátí číselný kód prvního znaku zadaného textového řetězce. -CONCATENATE = CONCATENATE ## Spojí několik textových položek do jedné. -DOLLAR = KČ ## Převede číslo na text ve formátu měny Kč (česká koruna). -EXACT = STEJNÉ ## Zkontroluje, zda jsou dvě textové hodnoty shodné. -FIND = NAJÍT ## Nalezne textovou hodnotu uvnitř jiné (rozlišuje malá a velká písmena). -FINDB = FINDB ## Nalezne textovou hodnotu uvnitř jiné (rozlišuje malá a velká písmena). -FIXED = ZAOKROUHLIT.NA.TEXT ## Zformátuje číslo jako text s pevným počtem desetinných míst. -JIS = JIS ## Změní znaky s poloviční šířkou (jednobajtové) v řetězci znaků na znaky s plnou šířkou (dvoubajtové). -LEFT = ZLEVA ## Vrátí první znaky textové hodnoty umístěné nejvíce vlevo. -LEFTB = LEFTB ## Vrátí první znaky textové hodnoty umístěné nejvíce vlevo. -LEN = DÉLKA ## Vrátí počet znaků textového řetězce. -LENB = LENB ## Vrátí počet znaků textového řetězce. -LOWER = MALÁ ## Převede text na malá písmena. -MID = ČÁST ## Vrátí určitý počet znaků textového řetězce počínaje zadaným místem. -MIDB = MIDB ## Vrátí určitý počet znaků textového řetězce počínaje zadaným místem. -PHONETIC = ZVUKOVÉ ## Extrahuje fonetické znaky (furigana) z textového řetězce. -PROPER = VELKÁ2 ## Převede první písmeno každého slova textové hodnoty na velké. -REPLACE = NAHRADIT ## Nahradí znaky uvnitř textu. -REPLACEB = NAHRADITB ## Nahradí znaky uvnitř textu. -REPT = OPAKOVAT ## Zopakuje text podle zadaného počtu opakování. -RIGHT = ZPRAVA ## Vrátí první znaky textové hodnoty umístěné nejvíce vpravo. -RIGHTB = RIGHTB ## Vrátí první znaky textové hodnoty umístěné nejvíce vpravo. -SEARCH = HLEDAT ## Nalezne textovou hodnotu uvnitř jiné (malá a velká písmena nejsou rozlišována). -SEARCHB = SEARCHB ## Nalezne textovou hodnotu uvnitř jiné (malá a velká písmena nejsou rozlišována). -SUBSTITUTE = DOSADIT ## V textovém řetězci nahradí starý text novým. -T = T ## Převede argumenty na text. -TEXT = HODNOTA.NA.TEXT ## Zformátuje číslo a převede ho na text. -TRIM = PROČISTIT ## Odstraní z textu mezery. -UPPER = VELKÁ ## Převede text na velká písmena. -VALUE = HODNOTA ## Převede textový argument na číslo. diff --git a/Utils/PHPExcel/locale/da/config b/Utils/PHPExcel/locale/da/config deleted file mode 100644 index 27cb201..0000000 --- a/Utils/PHPExcel/locale/da/config +++ /dev/null @@ -1,50 +0,0 @@ -## -## PHPExcel -## - -## Copyright (c) 2006 - 2013 PHPExcel -## -## This library is free software; you can redistribute it and/or -## modify it under the terms of the GNU Lesser General Public -## License as published by the Free Software Foundation; either -## version 2.1 of the License, or (at your option) any later version. -## -## This library is distributed in the hope that it will be useful, -## but WITHOUT ANY WARRANTY; without even the implied warranty of -## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -## Lesser General Public License for more details. -## -## You should have received a copy of the GNU Lesser General Public -## License along with this library; if not, write to the Free Software -## Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA -## -## @category PHPExcel -## @package PHPExcel_Settings -## @copyright Copyright (c) 2006 - 2013 PHPExcel (http://www.codeplex.com/PHPExcel) -## @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL -## @version ##VERSION##, ##DATE## -## -## - - -ArgumentSeparator = ; - - -## -## (For future use) -## -currencySymbol = kr - - - -## -## Excel Error Codes (For future use) - -## -NULL = #NUL! -DIV0 = #DIVISION/0! -VALUE = #VÆRDI! -REF = #REFERENCE! -NAME = #NAVN? -NUM = #NUM! -NA = #I/T diff --git a/Utils/PHPExcel/locale/da/functions b/Utils/PHPExcel/locale/da/functions deleted file mode 100644 index 9617d1f..0000000 --- a/Utils/PHPExcel/locale/da/functions +++ /dev/null @@ -1,439 +0,0 @@ -## -## PHPExcel -## - -## Copyright (c) 2006 - 2013 PHPExcel -## -## This library is free software; you can redistribute it and/or -## modify it under the terms of the GNU Lesser General Public -## License as published by the Free Software Foundation; either -## version 2.1 of the License, or (at your option) any later version. -## -## This library is distributed in the hope that it will be useful, -## but WITHOUT ANY WARRANTY; without even the implied warranty of -## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -## Lesser General Public License for more details. -## -## You should have received a copy of the GNU Lesser General Public -## License along with this library; if not, write to the Free Software -## Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA -## -## @category PHPExcel -## @package PHPExcel_Calculation -## @copyright Copyright (c) 2006 - 2013 PHPExcel (http://www.codeplex.com/PHPExcel) -## @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL -## @version ##VERSION##, ##DATE## -## -## Data in this file derived from http://www.piuha.fi/excel-function-name-translation/ -## -## - - -## -## Add-in and Automation functions Tilføjelsesprogram- og automatiseringsfunktioner -## -GETPIVOTDATA = HENTPIVOTDATA ## Returnerer data, der er lagret i en pivottabelrapport - - -## -## Cube functions Kubefunktioner -## -CUBEKPIMEMBER = KUBE.KPI.MEDLEM ## Returnerer navn, egenskab og mål for en KPI-indikator og viser navnet og egenskaben i cellen. En KPI-indikator er en målbar størrelse, f.eks. bruttooverskud pr. måned eller personaleudskiftning pr. kvartal, der bruges til at overvåge en organisations præstationer. -CUBEMEMBER = KUBE.MEDLEM ## Returnerer et medlem eller en tupel fra kubehierarkiet. Bruges til at validere, om et medlem eller en tupel findes i kuben. -CUBEMEMBERPROPERTY = KUBEMEDLEM.EGENSKAB ## Returnerer værdien af en egenskab for et medlem i kuben. Bruges til at validere, om et medlemsnavn findes i kuben, og returnere den angivne egenskab for medlemmet. -CUBERANKEDMEMBER = KUBEMEDLEM.RANG ## Returnerer det n'te eller rangordnede medlem i et sæt. Bruges til at returnere et eller flere elementer i et sæt, f.eks. topsælgere eller de 10 bedste elever. -CUBESET = KUBESÆT ## Definerer et beregnet sæt medlemmer eller tupler ved at sende et sætudtryk til kuben på serveren, som opretter sættet og returnerer det til Microsoft Office Excel. -CUBESETCOUNT = KUBESÆT.TÆL ## Returnerer antallet af elementer i et sæt. -CUBEVALUE = KUBEVÆRDI ## Returnerer en sammenlagt (aggregeret) værdi fra en kube. - - -## -## Database functions Databasefunktioner -## -DAVERAGE = DMIDDEL ## Returnerer gennemsnittet af markerede databaseposter -DCOUNT = DTÆL ## Tæller de celler, der indeholder tal, i en database -DCOUNTA = DTÆLV ## Tæller udfyldte celler i en database -DGET = DHENT ## Uddrager en enkelt post, der opfylder de angivne kriterier, fra en database -DMAX = DMAKS ## Returnerer den største værdi blandt markerede databaseposter -DMIN = DMIN ## Returnerer den mindste værdi blandt markerede databaseposter -DPRODUCT = DPRODUKT ## Ganger værdierne i et bestemt felt med poster, der opfylder kriterierne i en database -DSTDEV = DSTDAFV ## Beregner et skøn over standardafvigelsen baseret på en stikprøve af markerede databaseposter -DSTDEVP = DSTDAFVP ## Beregner standardafvigelsen baseret på hele populationen af markerede databaseposter -DSUM = DSUM ## Sammenlægger de tal i feltkolonnen i databasen, der opfylder kriterierne -DVAR = DVARIANS ## Beregner varians baseret på en stikprøve af markerede databaseposter -DVARP = DVARIANSP ## Beregner varians baseret på hele populationen af markerede databaseposter - - -## -## Date and time functions Dato- og klokkeslætsfunktioner -## -DATE = DATO ## Returnerer serienummeret for en bestemt dato -DATEVALUE = DATOVÆRDI ## Konverterer en dato i form af tekst til et serienummer -DAY = DAG ## Konverterer et serienummer til en dag i måneden -DAYS360 = DAGE360 ## Beregner antallet af dage mellem to datoer på grundlag af et år med 360 dage -EDATE = EDATO ## Returnerer serienummeret for den dato, der ligger det angivne antal måneder før eller efter startdatoen -EOMONTH = SLUT.PÅ.MÅNED ## Returnerer serienummeret på den sidste dag i måneden før eller efter et angivet antal måneder -HOUR = TIME ## Konverterer et serienummer til en time -MINUTE = MINUT ## Konverterer et serienummer til et minut -MONTH = MÅNED ## Konverterer et serienummer til en måned -NETWORKDAYS = ANTAL.ARBEJDSDAGE ## Returnerer antallet af hele arbejdsdage mellem to datoer -NOW = NU ## Returnerer serienummeret for den aktuelle dato eller det aktuelle klokkeslæt -SECOND = SEKUND ## Konverterer et serienummer til et sekund -TIME = KLOKKESLÆT ## Returnerer serienummeret for et bestemt klokkeslæt -TIMEVALUE = TIDSVÆRDI ## Konverterer et klokkeslæt i form af tekst til et serienummer -TODAY = IDAG ## Returnerer serienummeret for dags dato -WEEKDAY = UGEDAG ## Konverterer et serienummer til en ugedag -WEEKNUM = UGE.NR ## Konverterer et serienummer til et tal, der angiver ugenummeret i året -WORKDAY = ARBEJDSDAG ## Returnerer serienummeret for dagen før eller efter det angivne antal arbejdsdage -YEAR = ÅR ## Konverterer et serienummer til et år -YEARFRAC = ÅR.BRØK ## Returnerer årsbrøken, der repræsenterer antallet af hele dage mellem startdato og slutdato - - -## -## Engineering functions Tekniske funktioner -## -BESSELI = BESSELI ## Returnerer den modificerede Bessel-funktion In(x) -BESSELJ = BESSELJ ## Returnerer Bessel-funktionen Jn(x) -BESSELK = BESSELK ## Returnerer den modificerede Bessel-funktion Kn(x) -BESSELY = BESSELY ## Returnerer Bessel-funktionen Yn(x) -BIN2DEC = BIN.TIL.DEC ## Konverterer et binært tal til et decimaltal -BIN2HEX = BIN.TIL.HEX ## Konverterer et binært tal til et heksadecimalt tal -BIN2OCT = BIN.TIL.OKT ## Konverterer et binært tal til et oktaltal. -COMPLEX = KOMPLEKS ## Konverterer reelle og imaginære koefficienter til et komplekst tal -CONVERT = KONVERTER ## Konverterer et tal fra én måleenhed til en anden -DEC2BIN = DEC.TIL.BIN ## Konverterer et decimaltal til et binært tal -DEC2HEX = DEC.TIL.HEX ## Konverterer et decimaltal til et heksadecimalt tal -DEC2OCT = DEC.TIL.OKT ## Konverterer et decimaltal til et oktaltal -DELTA = DELTA ## Tester, om to værdier er ens -ERF = FEJLFUNK ## Returner fejlfunktionen -ERFC = FEJLFUNK.KOMP ## Returnerer den komplementære fejlfunktion -GESTEP = GETRIN ## Tester, om et tal er større end en grænseværdi -HEX2BIN = HEX.TIL.BIN ## Konverterer et heksadecimalt tal til et binært tal -HEX2DEC = HEX.TIL.DEC ## Konverterer et decimaltal til et heksadecimalt tal -HEX2OCT = HEX.TIL.OKT ## Konverterer et heksadecimalt tal til et oktaltal -IMABS = IMAGABS ## Returnerer den absolutte værdi (modulus) for et komplekst tal -IMAGINARY = IMAGINÆR ## Returnerer den imaginære koefficient for et komplekst tal -IMARGUMENT = IMAGARGUMENT ## Returnerer argumentet theta, en vinkel udtrykt i radianer -IMCONJUGATE = IMAGKONJUGERE ## Returnerer den komplekse konjugation af et komplekst tal -IMCOS = IMAGCOS ## Returnerer et komplekst tals cosinus -IMDIV = IMAGDIV ## Returnerer kvotienten for to komplekse tal -IMEXP = IMAGEKSP ## Returnerer et komplekst tals eksponentialfunktion -IMLN = IMAGLN ## Returnerer et komplekst tals naturlige logaritme -IMLOG10 = IMAGLOG10 ## Returnerer et komplekst tals sædvanlige logaritme (titalslogaritme) -IMLOG2 = IMAGLOG2 ## Returnerer et komplekst tals sædvanlige logaritme (totalslogaritme) -IMPOWER = IMAGPOTENS ## Returnerer et komplekst tal opløftet i en heltalspotens -IMPRODUCT = IMAGPRODUKT ## Returnerer produktet af komplekse tal -IMREAL = IMAGREELT ## Returnerer den reelle koefficient for et komplekst tal -IMSIN = IMAGSIN ## Returnerer et komplekst tals sinus -IMSQRT = IMAGKVROD ## Returnerer et komplekst tals kvadratrod -IMSUB = IMAGSUB ## Returnerer forskellen mellem to komplekse tal -IMSUM = IMAGSUM ## Returnerer summen af komplekse tal -OCT2BIN = OKT.TIL.BIN ## Konverterer et oktaltal til et binært tal -OCT2DEC = OKT.TIL.DEC ## Konverterer et oktaltal til et decimaltal -OCT2HEX = OKT.TIL.HEX ## Konverterer et oktaltal til et heksadecimalt tal - - -## -## Financial functions Finansielle funktioner -## -ACCRINT = PÅLØBRENTE ## Returnerer den påløbne rente for et værdipapir med periodiske renteudbetalinger -ACCRINTM = PÅLØBRENTE.UDLØB ## Returnerer den påløbne rente for et værdipapir, hvor renteudbetalingen finder sted ved papirets udløb -AMORDEGRC = AMORDEGRC ## Returnerer afskrivningsbeløbet for hver regnskabsperiode ved hjælp af en afskrivningskoefficient -AMORLINC = AMORLINC ## Returnerer afskrivningsbeløbet for hver regnskabsperiode -COUPDAYBS = KUPONDAGE.SA ## Returnerer antallet af dage fra starten af kuponperioden til afregningsdatoen -COUPDAYS = KUPONDAGE.A ## Returnerer antallet af dage fra begyndelsen af kuponperioden til afregningsdatoen -COUPDAYSNC = KUPONDAGE.ANK ## Returnerer antallet af dage i den kuponperiode, der indeholder afregningsdatoen -COUPNCD = KUPONDAG.NÆSTE ## Returnerer den næste kupondato efter afregningsdatoen -COUPNUM = KUPONBETALINGER ## Returnerer antallet af kuponudbetalinger mellem afregnings- og udløbsdatoen -COUPPCD = KUPONDAG.FORRIGE ## Returnerer den forrige kupondato før afregningsdatoen -CUMIPMT = AKKUM.RENTE ## Returnerer den akkumulerede rente, der betales på et lån mellem to perioder -CUMPRINC = AKKUM.HOVEDSTOL ## Returnerer den akkumulerede nedbringelse af hovedstol mellem to perioder -DB = DB ## Returnerer afskrivningen på et aktiv i en angivet periode ved anvendelse af saldometoden -DDB = DSA ## Returnerer afskrivningsbeløbet for et aktiv over en bestemt periode ved anvendelse af dobbeltsaldometoden eller en anden afskrivningsmetode, som du angiver -DISC = DISKONTO ## Returnerer et værdipapirs diskonto -DOLLARDE = KR.DECIMAL ## Konverterer en kronepris udtrykt som brøk til en kronepris udtrykt som decimaltal -DOLLARFR = KR.BRØK ## Konverterer en kronepris udtrykt som decimaltal til en kronepris udtrykt som brøk -DURATION = VARIGHED ## Returnerer den årlige løbetid for et værdipapir med periodiske renteudbetalinger -EFFECT = EFFEKTIV.RENTE ## Returnerer den årlige effektive rente -FV = FV ## Returnerer fremtidsværdien af en investering -FVSCHEDULE = FVTABEL ## Returnerer den fremtidige værdi af en hovedstol, når der er tilskrevet rente og rentes rente efter forskellige rentesatser -INTRATE = RENTEFOD ## Returnerer renten på et fuldt ud investeret værdipapir -IPMT = R.YDELSE ## Returnerer renten fra en investering for en given periode -IRR = IA ## Returnerer den interne rente for en række pengestrømme -ISPMT = ISPMT ## Beregner den betalte rente i løbet af en bestemt investeringsperiode -MDURATION = MVARIGHED ## Returnerer Macauleys modificerede løbetid for et værdipapir med en formodet pari på kr. 100 -MIRR = MIA ## Returnerer den interne forrentning, hvor positive og negative pengestrømme finansieres til forskellig rente -NOMINAL = NOMINEL ## Returnerer den årlige nominelle rente -NPER = NPER ## Returnerer antallet af perioder for en investering -NPV = NUTIDSVÆRDI ## Returnerer nettonutidsværdien for en investering baseret på en række periodiske pengestrømme og en diskonteringssats -ODDFPRICE = ULIGE.KURS.PÅLYDENDE ## Returnerer kursen pr. kr. 100 nominel værdi for et værdipapir med en ulige (kort eller lang) første periode -ODDFYIELD = ULIGE.FØRSTE.AFKAST ## Returnerer afkastet for et værdipapir med ulige første periode -ODDLPRICE = ULIGE.SIDSTE.KURS ## Returnerer kursen pr. kr. 100 nominel værdi for et værdipapir med ulige sidste periode -ODDLYIELD = ULIGE.SIDSTE.AFKAST ## Returnerer afkastet for et værdipapir med ulige sidste periode -PMT = YDELSE ## Returnerer renten fra en investering for en given periode -PPMT = H.YDELSE ## Returnerer ydelsen på hovedstolen for en investering i en given periode -PRICE = KURS ## Returnerer kursen pr. kr 100 nominel værdi for et værdipapir med periodiske renteudbetalinger -PRICEDISC = KURS.DISKONTO ## Returnerer kursen pr. kr 100 nominel værdi for et diskonteret værdipapir -PRICEMAT = KURS.UDLØB ## Returnerer kursen pr. kr 100 nominel værdi for et værdipapir, hvor renten udbetales ved papirets udløb -PV = NV ## Returnerer den nuværende værdi af en investering -RATE = RENTE ## Returnerer renten i hver periode for en annuitet -RECEIVED = MODTAGET.VED.UDLØB ## Returnerer det beløb, der modtages ved udløbet af et fuldt ud investeret værdipapir -SLN = LA ## Returnerer den lineære afskrivning for et aktiv i en enkelt periode -SYD = ÅRSAFSKRIVNING ## Returnerer den årlige afskrivning på et aktiv i en bestemt periode -TBILLEQ = STATSOBLIGATION ## Returnerer det obligationsækvivalente afkast for en statsobligation -TBILLPRICE = STATSOBLIGATION.KURS ## Returnerer kursen pr. kr 100 nominel værdi for en statsobligation -TBILLYIELD = STATSOBLIGATION.AFKAST ## Returnerer en afkastet på en statsobligation -VDB = VSA ## Returnerer afskrivningen på et aktiv i en angivet periode, herunder delperioder, ved brug af dobbeltsaldometoden -XIRR = INTERN.RENTE ## Returnerer den interne rente for en plan over pengestrømme, der ikke behøver at være periodiske -XNPV = NETTO.NUTIDSVÆRDI ## Returnerer nutidsværdien for en plan over pengestrømme, der ikke behøver at være periodiske -YIELD = AFKAST ## Returnerer afkastet for et værdipapir med periodiske renteudbetalinger -YIELDDISC = AFKAST.DISKONTO ## Returnerer det årlige afkast for et diskonteret værdipapir, f.eks. en statsobligation -YIELDMAT = AFKAST.UDLØBSDATO ## Returnerer det årlige afkast for et værdipapir, hvor renten udbetales ved papirets udløb - - -## -## Information functions Informationsfunktioner -## -CELL = CELLE ## Returnerer oplysninger om formatering, placering eller indhold af en celle -ERROR.TYPE = FEJLTYPE ## Returnerer et tal, der svarer til en fejltype -INFO = INFO ## Returnerer oplysninger om det aktuelle operativmiljø -ISBLANK = ER.TOM ## Returnerer SAND, hvis værdien er tom -ISERR = ER.FJL ## Returnerer SAND, hvis værdien er en fejlværdi undtagen #I/T -ISERROR = ER.FEJL ## Returnerer SAND, hvis værdien er en fejlværdi -ISEVEN = ER.LIGE ## Returnerer SAND, hvis tallet er lige -ISLOGICAL = ER.LOGISK ## Returnerer SAND, hvis værdien er en logisk værdi -ISNA = ER.IKKE.TILGÆNGELIG ## Returnerer SAND, hvis værdien er fejlværdien #I/T -ISNONTEXT = ER.IKKE.TEKST ## Returnerer SAND, hvis værdien ikke er tekst -ISNUMBER = ER.TAL ## Returnerer SAND, hvis værdien er et tal -ISODD = ER.ULIGE ## Returnerer SAND, hvis tallet er ulige -ISREF = ER.REFERENCE ## Returnerer SAND, hvis værdien er en reference -ISTEXT = ER.TEKST ## Returnerer SAND, hvis værdien er tekst -N = TAL ## Returnerer en værdi konverteret til et tal -NA = IKKE.TILGÆNGELIG ## Returnerer fejlværdien #I/T -TYPE = VÆRDITYPE ## Returnerer et tal, der angiver datatypen for en værdi - - -## -## Logical functions Logiske funktioner -## -AND = OG ## Returnerer SAND, hvis alle argumenterne er sande -FALSE = FALSK ## Returnerer den logiske værdi FALSK -IF = HVIS ## Angiver en logisk test, der skal udføres -IFERROR = HVIS.FEJL ## Returnerer en værdi, du angiver, hvis en formel evauleres som en fejl. Returnerer i modsat fald resultatet af formlen -NOT = IKKE ## Vender argumentets logik om -OR = ELLER ## Returneret værdien SAND, hvis mindst ét argument er sandt -TRUE = SAND ## Returnerer den logiske værdi SAND - - -## -## Lookup and reference functions Opslags- og referencefunktioner -## -ADDRESS = ADRESSE ## Returnerer en reference som tekst til en enkelt celle i et regneark -AREAS = OMRÅDER ## Returnerer antallet af områder i en reference -CHOOSE = VÆLG ## Vælger en værdi på en liste med værdier -COLUMN = KOLONNE ## Returnerer kolonnenummeret i en reference -COLUMNS = KOLONNER ## Returnerer antallet af kolonner i en reference -HLOOKUP = VOPSLAG ## Søger i den øverste række af en matrix og returnerer værdien af den angivne celle -HYPERLINK = HYPERLINK ## Opretter en genvej kaldet et hyperlink, der åbner et dokument, som er lagret på en netværksserver, på et intranet eller på internettet -INDEX = INDEKS ## Anvender et indeks til at vælge en værdi fra en reference eller en matrix -INDIRECT = INDIREKTE ## Returnerer en reference, der er angivet af en tekstværdi -LOOKUP = SLÅ.OP ## Søger værdier i en vektor eller en matrix -MATCH = SAMMENLIGN ## Søger værdier i en reference eller en matrix -OFFSET = FORSKYDNING ## Returnerer en reference forskudt i forhold til en given reference -ROW = RÆKKE ## Returnerer rækkenummeret for en reference -ROWS = RÆKKER ## Returnerer antallet af rækker i en reference -RTD = RTD ## Henter realtidsdata fra et program, der understøtter COM-automatisering (Automation: En metode til at arbejde med objekter fra et andet program eller udviklingsværktøj. Automation, som tidligere blev kaldt OLE Automation, er en industristandard og en funktion i COM (Component Object Model).) -TRANSPOSE = TRANSPONER ## Returnerer en transponeret matrix -VLOOKUP = LOPSLAG ## Søger i øverste række af en matrix og flytter på tværs af rækken for at returnere en celleværdi - - -## -## Math and trigonometry functions Matematiske og trigonometriske funktioner -## -ABS = ABS ## Returnerer den absolutte værdi af et tal -ACOS = ARCCOS ## Returnerer et tals arcus cosinus -ACOSH = ARCCOSH ## Returnerer den inverse hyperbolske cosinus af tal -ASIN = ARCSIN ## Returnerer et tals arcus sinus -ASINH = ARCSINH ## Returnerer den inverse hyperbolske sinus for tal -ATAN = ARCTAN ## Returnerer et tals arcus tangens -ATAN2 = ARCTAN2 ## Returnerer de angivne x- og y-koordinaters arcus tangens -ATANH = ARCTANH ## Returnerer et tals inverse hyperbolske tangens -CEILING = AFRUND.LOFT ## Afrunder et tal til nærmeste heltal eller til nærmeste multiplum af betydning -COMBIN = KOMBIN ## Returnerer antallet af kombinationer for et givet antal objekter -COS = COS ## Returnerer et tals cosinus -COSH = COSH ## Returnerer den inverse hyperbolske cosinus af et tal -DEGREES = GRADER ## Konverterer radianer til grader -EVEN = LIGE ## Runder et tal op til nærmeste lige heltal -EXP = EKSP ## Returnerer e opløftet til en potens af et angivet tal -FACT = FAKULTET ## Returnerer et tals fakultet -FACTDOUBLE = DOBBELT.FAKULTET ## Returnerer et tals dobbelte fakultet -FLOOR = AFRUND.GULV ## Runder et tal ned mod nul -GCD = STØRSTE.FÆLLES.DIVISOR ## Returnerer den største fælles divisor -INT = HELTAL ## Nedrunder et tal til det nærmeste heltal -LCM = MINDSTE.FÆLLES.MULTIPLUM ## Returnerer det mindste fælles multiplum -LN = LN ## Returnerer et tals naturlige logaritme -LOG = LOG ## Returnerer logaritmen for et tal på grundlag af et angivet grundtal -LOG10 = LOG10 ## Returnerer titalslogaritmen af et tal -MDETERM = MDETERM ## Returnerer determinanten for en matrix -MINVERSE = MINVERT ## Returnerer den inverse matrix for en matrix -MMULT = MPRODUKT ## Returnerer matrixproduktet af to matrixer -MOD = REST ## Returnerer restværdien fra division -MROUND = MAFRUND ## Returnerer et tal afrundet til det ønskede multiplum -MULTINOMIAL = MULTINOMIAL ## Returnerer et multinomialt talsæt -ODD = ULIGE ## Runder et tal op til nærmeste ulige heltal -PI = PI ## Returnerer værdien af pi -POWER = POTENS ## Returnerer resultatet af et tal opløftet til en potens -PRODUCT = PRODUKT ## Multiplicerer argumenterne -QUOTIENT = KVOTIENT ## Returnerer heltalsdelen ved division -RADIANS = RADIANER ## Konverterer grader til radianer -RAND = SLUMP ## Returnerer et tilfældigt tal mellem 0 og 1 -RANDBETWEEN = SLUMP.MELLEM ## Returnerer et tilfældigt tal mellem de tal, der angives -ROMAN = ROMERTAL ## Konverterer et arabertal til romertal som tekst -ROUND = AFRUND ## Afrunder et tal til et angivet antal decimaler -ROUNDDOWN = RUND.NED ## Runder et tal ned mod nul -ROUNDUP = RUND.OP ## Runder et tal op, væk fra 0 (nul) -SERIESSUM = SERIESUM ## Returnerer summen af en potensserie baseret på en formel -SIGN = FORTEGN ## Returnerer et tals fortegn -SIN = SIN ## Returnerer en given vinkels sinusværdi -SINH = SINH ## Returnerer den hyperbolske sinus af et tal -SQRT = KVROD ## Returnerer en positiv kvadratrod -SQRTPI = KVRODPI ## Returnerer kvadratroden af (tal * pi;) -SUBTOTAL = SUBTOTAL ## Returnerer en subtotal på en liste eller i en database -SUM = SUM ## Lægger argumenterne sammen -SUMIF = SUM.HVIS ## Lægger de celler sammen, der er specificeret af et givet kriterium. -SUMIFS = SUM.HVISER ## Lægger de celler i et område sammen, der opfylder flere kriterier. -SUMPRODUCT = SUMPRODUKT ## Returnerer summen af produkter af ens matrixkomponenter -SUMSQ = SUMKV ## Returnerer summen af argumenternes kvadrater -SUMX2MY2 = SUMX2MY2 ## Returnerer summen af differensen mellem kvadrater af ens værdier i to matrixer -SUMX2PY2 = SUMX2PY2 ## Returnerer summen af summen af kvadrater af tilsvarende værdier i to matrixer -SUMXMY2 = SUMXMY2 ## Returnerer summen af kvadrater af differenser mellem ens værdier i to matrixer -TAN = TAN ## Returnerer et tals tangens -TANH = TANH ## Returnerer et tals hyperbolske tangens -TRUNC = AFKORT ## Afkorter et tal til et heltal - - -## -## Statistical functions Statistiske funktioner -## -AVEDEV = MAD ## Returnerer den gennemsnitlige numeriske afvigelse fra stikprøvens middelværdi -AVERAGE = MIDDEL ## Returnerer middelværdien af argumenterne -AVERAGEA = MIDDELV ## Returnerer middelværdien af argumenterne og medtager tal, tekst og logiske værdier -AVERAGEIF = MIDDEL.HVIS ## Returnerer gennemsnittet (den aritmetiske middelværdi) af alle de celler, der opfylder et givet kriterium, i et område -AVERAGEIFS = MIDDEL.HVISER ## Returnerer gennemsnittet (den aritmetiske middelværdi) af alle de celler, der opfylder flere kriterier. -BETADIST = BETAFORDELING ## Returnerer den kumulative betafordelingsfunktion -BETAINV = BETAINV ## Returnerer den inverse kumulative fordelingsfunktion for en angivet betafordeling -BINOMDIST = BINOMIALFORDELING ## Returnerer punktsandsynligheden for binomialfordelingen -CHIDIST = CHIFORDELING ## Returnerer fraktilsandsynligheden for en chi2-fordeling -CHIINV = CHIINV ## Returnerer den inverse fraktilsandsynlighed for en chi2-fordeling -CHITEST = CHITEST ## Foretager en test for uafhængighed -CONFIDENCE = KONFIDENSINTERVAL ## Returnerer et konfidensinterval for en population -CORREL = KORRELATION ## Returnerer korrelationskoefficienten mellem to datasæt -COUNT = TÆL ## Tæller antallet af tal på en liste med argumenter -COUNTA = TÆLV ## Tæller antallet af værdier på en liste med argumenter -COUNTBLANK = ANTAL.BLANKE ## Tæller antallet af tomme celler i et område -COUNTIF = TÆLHVIS ## Tæller antallet af celler, som opfylder de givne kriterier, i et område -COUNTIFS = TÆL.HVISER ## Tæller antallet af de celler, som opfylder flere kriterier, i et område -COVAR = KOVARIANS ## Beregner kovariansen mellem to stokastiske variabler -CRITBINOM = KRITBINOM ## Returnerer den mindste værdi for x, for hvilken det gælder, at fordelingsfunktionen er mindre end eller lig med kriterieværdien. -DEVSQ = SAK ## Returnerer summen af de kvadrerede afvigelser fra middelværdien -EXPONDIST = EKSPFORDELING ## Returnerer eksponentialfordelingen -FDIST = FFORDELING ## Returnerer fraktilsandsynligheden for F-fordelingen -FINV = FINV ## Returnerer den inverse fraktilsandsynlighed for F-fordelingen -FISHER = FISHER ## Returnerer Fisher-transformationen -FISHERINV = FISHERINV ## Returnerer den inverse Fisher-transformation -FORECAST = PROGNOSE ## Returnerer en prognoseværdi baseret på lineær tendens -FREQUENCY = FREKVENS ## Returnerer en frekvensfordeling i en søjlevektor -FTEST = FTEST ## Returnerer resultatet af en F-test til sammenligning af varians -GAMMADIST = GAMMAFORDELING ## Returnerer fordelingsfunktionen for gammafordelingen -GAMMAINV = GAMMAINV ## Returnerer den inverse fordelingsfunktion for gammafordelingen -GAMMALN = GAMMALN ## Returnerer den naturlige logaritme til gammafordelingen, G(x) -GEOMEAN = GEOMIDDELVÆRDI ## Returnerer det geometriske gennemsnit -GROWTH = FORØGELSE ## Returnerer værdier langs en eksponentiel tendens -HARMEAN = HARMIDDELVÆRDI ## Returnerer det harmoniske gennemsnit -HYPGEOMDIST = HYPGEOFORDELING ## Returnerer punktsandsynligheden i en hypergeometrisk fordeling -INTERCEPT = SKÆRING ## Returnerer afskæringsværdien på y-aksen i en lineær regression -KURT = TOPSTEJL ## Returnerer kurtosisværdien for en stokastisk variabel -LARGE = STOR ## Returnerer den k'te største værdi i et datasæt -LINEST = LINREGR ## Returnerer parameterestimaterne for en lineær tendens -LOGEST = LOGREGR ## Returnerer parameterestimaterne for en eksponentiel tendens -LOGINV = LOGINV ## Returnerer den inverse fordelingsfunktion for lognormalfordelingen -LOGNORMDIST = LOGNORMFORDELING ## Returnerer fordelingsfunktionen for lognormalfordelingen -MAX = MAKS ## Returnerer den maksimale værdi på en liste med argumenter. -MAXA = MAKSV ## Returnerer den maksimale værdi på en liste med argumenter og medtager tal, tekst og logiske værdier -MEDIAN = MEDIAN ## Returnerer medianen for de angivne tal -MIN = MIN ## Returnerer den mindste værdi på en liste med argumenter. -MINA = MINV ## Returnerer den mindste værdi på en liste med argumenter og medtager tal, tekst og logiske værdier -MODE = HYPPIGST ## Returnerer den hyppigste værdi i et datasæt -NEGBINOMDIST = NEGBINOMFORDELING ## Returnerer den negative binomialfordeling -NORMDIST = NORMFORDELING ## Returnerer fordelingsfunktionen for normalfordelingen -NORMINV = NORMINV ## Returnerer den inverse fordelingsfunktion for normalfordelingen -NORMSDIST = STANDARDNORMFORDELING ## Returnerer fordelingsfunktionen for standardnormalfordelingen -NORMSINV = STANDARDNORMINV ## Returnerer den inverse fordelingsfunktion for standardnormalfordelingen -PEARSON = PEARSON ## Returnerer Pearsons korrelationskoefficient -PERCENTILE = FRAKTIL ## Returnerer den k'te fraktil for datasættet -PERCENTRANK = PROCENTPLADS ## Returnerer den procentuelle rang for en given værdi i et datasæt -PERMUT = PERMUT ## Returnerer antallet af permutationer for et givet sæt objekter -POISSON = POISSON ## Returnerer fordelingsfunktionen for en Poisson-fordeling -PROB = SANDSYNLIGHED ## Returnerer intervalsandsynligheden -QUARTILE = KVARTIL ## Returnerer kvartilen i et givet datasæt -RANK = PLADS ## Returnerer rangen for et tal på en liste med tal -RSQ = FORKLARINGSGRAD ## Returnerer R2-værdien fra en simpel lineær regression -SKEW = SKÆVHED ## Returnerer skævheden for en stokastisk variabel -SLOPE = HÆLDNING ## Returnerer estimatet på hældningen fra en simpel lineær regression -SMALL = MINDSTE ## Returnerer den k'te mindste værdi i datasættet -STANDARDIZE = STANDARDISER ## Returnerer en standardiseret værdi -STDEV = STDAFV ## Estimerer standardafvigelsen på basis af en stikprøve -STDEVA = STDAFVV ## Beregner standardafvigelsen på basis af en prøve og medtager tal, tekst og logiske værdier -STDEVP = STDAFVP ## Beregner standardafvigelsen på basis af en hel population -STDEVPA = STDAFVPV ## Beregner standardafvigelsen på basis af en hel population og medtager tal, tekst og logiske værdier -STEYX = STFYX ## Returnerer standardafvigelsen for de estimerede y-værdier i den simple lineære regression -TDIST = TFORDELING ## Returnerer fordelingsfunktionen for Student's t-fordeling -TINV = TINV ## Returnerer den inverse fordelingsfunktion for Student's t-fordeling -TREND = TENDENS ## Returnerer værdi under antagelse af en lineær tendens -TRIMMEAN = TRIMMIDDELVÆRDI ## Returnerer den trimmede middelværdi for datasættet -TTEST = TTEST ## Returnerer den sandsynlighed, der er forbundet med Student's t-test -VAR = VARIANS ## Beregner variansen på basis af en prøve -VARA = VARIANSV ## Beregner variansen på basis af en prøve og medtager tal, tekst og logiske værdier -VARP = VARIANSP ## Beregner variansen på basis af hele populationen -VARPA = VARIANSPV ## Beregner variansen på basis af hele populationen og medtager tal, tekst og logiske værdier -WEIBULL = WEIBULL ## Returnerer fordelingsfunktionen for Weibull-fordelingen -ZTEST = ZTEST ## Returnerer sandsynlighedsværdien ved en en-sidet z-test - - -## -## Text functions Tekstfunktioner -## -ASC = ASC ## Ændrer engelske tegn i fuld bredde (dobbelt-byte) eller katakana i en tegnstreng til tegn i halv bredde (enkelt-byte) -BAHTTEXT = BAHTTEKST ## Konverterer et tal til tekst ved hjælp af valutaformatet ß (baht) -CHAR = TEGN ## Returnerer det tegn, der svarer til kodenummeret -CLEAN = RENS ## Fjerner alle tegn, der ikke kan udskrives, fra tekst -CODE = KODE ## Returnerer en numerisk kode for det første tegn i en tekststreng -CONCATENATE = SAMMENKÆDNING ## Sammenkæder adskillige tekstelementer til ét tekstelement -DOLLAR = KR ## Konverterer et tal til tekst ved hjælp af valutaformatet kr. (kroner) -EXACT = EKSAKT ## Kontrollerer, om to tekstværdier er identiske -FIND = FIND ## Søger efter en tekstværdi i en anden tekstværdi (der skelnes mellem store og små bogstaver) -FINDB = FINDB ## Søger efter en tekstværdi i en anden tekstværdi (der skelnes mellem store og små bogstaver) -FIXED = FAST ## Formaterer et tal som tekst med et fast antal decimaler -JIS = JIS ## Ændrer engelske tegn i halv bredde (enkelt-byte) eller katakana i en tegnstreng til tegn i fuld bredde (dobbelt-byte) -LEFT = VENSTRE ## Returnerer tegnet længst til venstre i en tekstværdi -LEFTB = VENSTREB ## Returnerer tegnet længst til venstre i en tekstværdi -LEN = LÆNGDE ## Returnerer antallet af tegn i en tekststreng -LENB = LÆNGDEB ## Returnerer antallet af tegn i en tekststreng -LOWER = SMÅ.BOGSTAVER ## Konverterer tekst til små bogstaver -MID = MIDT ## Returnerer et bestemt antal tegn fra en tekststreng fra og med den angivne startposition -MIDB = MIDTB ## Returnerer et bestemt antal tegn fra en tekststreng fra og med den angivne startposition -PHONETIC = FONETISK ## Uddrager de fonetiske (furigana) tegn fra en tekststreng -PROPER = STORT.FORBOGSTAV ## Konverterer første bogstav i hvert ord i teksten til stort bogstav -REPLACE = ERSTAT ## Erstatter tegn i tekst -REPLACEB = ERSTATB ## Erstatter tegn i tekst -REPT = GENTAG ## Gentager tekst et givet antal gange -RIGHT = HØJRE ## Returnerer tegnet længste til højre i en tekstværdi -RIGHTB = HØJREB ## Returnerer tegnet længste til højre i en tekstværdi -SEARCH = SØG ## Søger efter en tekstværdi i en anden tekstværdi (der skelnes ikke mellem store og små bogstaver) -SEARCHB = SØGB ## Søger efter en tekstværdi i en anden tekstværdi (der skelnes ikke mellem store og små bogstaver) -SUBSTITUTE = UDSKIFT ## Udskifter gammel tekst med ny tekst i en tekststreng -T = T ## Konverterer argumenterne til tekst -TEXT = TEKST ## Formaterer et tal og konverterer det til tekst -TRIM = FJERN.OVERFLØDIGE.BLANKE ## Fjerner mellemrum fra tekst -UPPER = STORE.BOGSTAVER ## Konverterer tekst til store bogstaver -VALUE = VÆRDI ## Konverterer et tekstargument til et tal diff --git a/Utils/PHPExcel/locale/de/config b/Utils/PHPExcel/locale/de/config deleted file mode 100644 index 593690d..0000000 --- a/Utils/PHPExcel/locale/de/config +++ /dev/null @@ -1,49 +0,0 @@ -## -## PHPExcel -## - -## Copyright (c) 2006 - 2013 PHPExcel -## -## This library is free software; you can redistribute it and/or -## modify it under the terms of the GNU Lesser General Public -## License as published by the Free Software Foundation; either -## version 2.1 of the License, or (at your option) any later version. -## -## This library is distributed in the hope that it will be useful, -## but WITHOUT ANY WARRANTY; without even the implied warranty of -## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -## Lesser General Public License for more details. -## -## You should have received a copy of the GNU Lesser General Public -## License along with this library; if not, write to the Free Software -## Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA -## -## @category PHPExcel -## @package PHPExcel_Settings -## @copyright Copyright (c) 2006 - 2013 PHPExcel (http://www.codeplex.com/PHPExcel) -## @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL -## @version ##VERSION##, ##DATE## -## -## - - -ArgumentSeparator = ; - - -## -## (For future use) -## -currencySymbol = € - - -## -## Excel Error Codes (For future use) - -## -NULL = #NULL! -DIV0 = #DIV/0! -VALUE = #WERT! -REF = #BEZUG! -NAME = #NAME? -NUM = #ZAHL! -NA = #NV diff --git a/Utils/PHPExcel/locale/de/functions b/Utils/PHPExcel/locale/de/functions deleted file mode 100644 index 6f915f7..0000000 --- a/Utils/PHPExcel/locale/de/functions +++ /dev/null @@ -1,439 +0,0 @@ -## -## PHPExcel -## - -## Copyright (c) 2006 - 2013 PHPExcel -## -## This library is free software; you can redistribute it and/or -## modify it under the terms of the GNU Lesser General Public -## License as published by the Free Software Foundation; either -## version 2.1 of the License, or (at your option) any later version. -## -## This library is distributed in the hope that it will be useful, -## but WITHOUT ANY WARRANTY; without even the implied warranty of -## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -## Lesser General Public License for more details. -## -## You should have received a copy of the GNU Lesser General Public -## License along with this library; if not, write to the Free Software -## Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA -## -## @category PHPExcel -## @package PHPExcel_Calculation -## @copyright Copyright (c) 2006 - 2013 PHPExcel (http://www.codeplex.com/PHPExcel) -## @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL -## @version ##VERSION##, ##DATE## -## -## Data in this file derived from http://www.piuha.fi/excel-function-name-translation/ -## -## - - -## -## Add-in and Automation functions Add-In- und Automatisierungsfunktionen -## -GETPIVOTDATA = PIVOTDATENZUORDNEN ## In einem PivotTable-Bericht gespeicherte Daten werden zurückgegeben. - - -## -## Cube functions Cubefunktionen -## -CUBEKPIMEMBER = CUBEKPIELEMENT ## Gibt Name, Eigenschaft und Measure eines Key Performance Indicators (KPI) zurück und zeigt den Namen und die Eigenschaft in der Zelle an. Ein KPI ist ein quantifizierbares Maß, wie z. B. der monatliche Bruttogewinn oder die vierteljährliche Mitarbeiterfluktuation, mit dessen Hilfe das Leistungsverhalten eines Unternehmens überwacht werden kann. -CUBEMEMBER = CUBEELEMENT ## Gibt ein Element oder ein Tuple in einer Cubehierarchie zurück. Wird verwendet, um zu überprüfen, ob das Element oder Tuple im Cube vorhanden ist. -CUBEMEMBERPROPERTY = CUBEELEMENTEIGENSCHAFT ## Gibt den Wert einer Elementeigenschaft im Cube zurück. Wird verwendet, um zu überprüfen, ob ein Elementname im Cube vorhanden ist, und um die für dieses Element angegebene Eigenschaft zurückzugeben. -CUBERANKEDMEMBER = CUBERANGELEMENT ## Gibt das n-te oder n-rangige Element in einer Menge zurück. Wird verwendet, um mindestens ein Element in einer Menge zurückzugeben, wie z. B. bester Vertriebsmitarbeiter oder 10 beste Kursteilnehmer. -CUBESET = CUBEMENGE ## Definiert eine berechnete Menge Elemente oder Tuples durch Senden eines Mengenausdrucks an den Cube auf dem Server, der die Menge erstellt und an Microsoft Office Excel zurückgibt. -CUBESETCOUNT = CUBEMENGENANZAHL ## Gibt die Anzahl der Elemente in einer Menge zurück. -CUBEVALUE = CUBEWERT ## Gibt einen Aggregatwert aus einem Cube zurück. - - -## -## Database functions Datenbankfunktionen -## -DAVERAGE = DBMITTELWERT ## Gibt den Mittelwert der ausgewählten Datenbankeinträge zurück -DCOUNT = DBANZAHL ## Zählt die Zellen mit Zahlen in einer Datenbank -DCOUNTA = DBANZAHL2 ## Zählt nicht leere Zellen in einer Datenbank -DGET = DBAUSZUG ## Extrahiert aus einer Datenbank einen einzelnen Datensatz, der den angegebenen Kriterien entspricht -DMAX = DBMAX ## Gibt den größten Wert aus ausgewählten Datenbankeinträgen zurück -DMIN = DBMIN ## Gibt den kleinsten Wert aus ausgewählten Datenbankeinträgen zurück -DPRODUCT = DBPRODUKT ## Multipliziert die Werte in einem bestimmten Feld mit Datensätzen, die den Kriterien in einer Datenbank entsprechen -DSTDEV = DBSTDABW ## Schätzt die Standardabweichung auf der Grundlage einer Stichprobe aus ausgewählten Datenbankeinträgen -DSTDEVP = DBSTDABWN ## Berechnet die Standardabweichung auf der Grundlage der Grundgesamtheit ausgewählter Datenbankeinträge -DSUM = DBSUMME ## Addiert die Zahlen in der Feldspalte mit Datensätzen in der Datenbank, die den Kriterien entsprechen -DVAR = DBVARIANZ ## Schätzt die Varianz auf der Grundlage ausgewählter Datenbankeinträge -DVARP = DBVARIANZEN ## Berechnet die Varianz auf der Grundlage der Grundgesamtheit ausgewählter Datenbankeinträge - - -## -## Date and time functions Datums- und Zeitfunktionen -## -DATE = DATUM ## Gibt die fortlaufende Zahl eines bestimmten Datums zurück -DATEVALUE = DATWERT ## Wandelt ein Datum in Form von Text in eine fortlaufende Zahl um -DAY = TAG ## Wandelt eine fortlaufende Zahl in den Tag des Monats um -DAYS360 = TAGE360 ## Berechnet die Anzahl der Tage zwischen zwei Datumsangaben ausgehend von einem Jahr, das 360 Tage hat -EDATE = EDATUM ## Gibt die fortlaufende Zahl des Datums zurück, bei dem es sich um die angegebene Anzahl von Monaten vor oder nach dem Anfangstermin handelt -EOMONTH = MONATSENDE ## Gibt die fortlaufende Zahl des letzten Tags des Monats vor oder nach einer festgelegten Anzahl von Monaten zurück -HOUR = STUNDE ## Wandelt eine fortlaufende Zahl in eine Stunde um -MINUTE = MINUTE ## Wandelt eine fortlaufende Zahl in eine Minute um -MONTH = MONAT ## Wandelt eine fortlaufende Zahl in einen Monat um -NETWORKDAYS = NETTOARBEITSTAGE ## Gibt die Anzahl von ganzen Arbeitstagen zwischen zwei Datumswerten zurück -NOW = JETZT ## Gibt die fortlaufende Zahl des aktuellen Datums und der aktuellen Uhrzeit zurück -SECOND = SEKUNDE ## Wandelt eine fortlaufende Zahl in eine Sekunde um -TIME = ZEIT ## Gibt die fortlaufende Zahl einer bestimmten Uhrzeit zurück -TIMEVALUE = ZEITWERT ## Wandelt eine Uhrzeit in Form von Text in eine fortlaufende Zahl um -TODAY = HEUTE ## Gibt die fortlaufende Zahl des heutigen Datums zurück -WEEKDAY = WOCHENTAG ## Wandelt eine fortlaufende Zahl in den Wochentag um -WEEKNUM = KALENDERWOCHE ## Wandelt eine fortlaufende Zahl in eine Zahl um, die angibt, in welche Woche eines Jahres das angegebene Datum fällt -WORKDAY = ARBEITSTAG ## Gibt die fortlaufende Zahl des Datums vor oder nach einer bestimmten Anzahl von Arbeitstagen zurück -YEAR = JAHR ## Wandelt eine fortlaufende Zahl in ein Jahr um -YEARFRAC = BRTEILJAHRE ## Gibt die Anzahl der ganzen Tage zwischen Ausgangsdatum und Enddatum in Bruchteilen von Jahren zurück - - -## -## Engineering functions Konstruktionsfunktionen -## -BESSELI = BESSELI ## Gibt die geänderte Besselfunktion In(x) zurück -BESSELJ = BESSELJ ## Gibt die Besselfunktion Jn(x) zurück -BESSELK = BESSELK ## Gibt die geänderte Besselfunktion Kn(x) zurück -BESSELY = BESSELY ## Gibt die Besselfunktion Yn(x) zurück -BIN2DEC = BININDEZ ## Wandelt eine binäre Zahl (Dualzahl) in eine dezimale Zahl um -BIN2HEX = BININHEX ## Wandelt eine binäre Zahl (Dualzahl) in eine hexadezimale Zahl um -BIN2OCT = BININOKT ## Wandelt eine binäre Zahl (Dualzahl) in eine oktale Zahl um -COMPLEX = KOMPLEXE ## Wandelt den Real- und Imaginärteil in eine komplexe Zahl um -CONVERT = UMWANDELN ## Wandelt eine Zahl von einem Maßsystem in ein anderes um -DEC2BIN = DEZINBIN ## Wandelt eine dezimale Zahl in eine binäre Zahl (Dualzahl) um -DEC2HEX = DEZINHEX ## Wandelt eine dezimale Zahl in eine hexadezimale Zahl um -DEC2OCT = DEZINOKT ## Wandelt eine dezimale Zahl in eine oktale Zahl um -DELTA = DELTA ## Überprüft, ob zwei Werte gleich sind -ERF = GAUSSFEHLER ## Gibt die Gauss'sche Fehlerfunktion zurück -ERFC = GAUSSFKOMPL ## Gibt das Komplement zur Gauss'schen Fehlerfunktion zurück -GESTEP = GGANZZAHL ## Überprüft, ob eine Zahl größer als ein gegebener Schwellenwert ist -HEX2BIN = HEXINBIN ## Wandelt eine hexadezimale Zahl in eine Binärzahl um -HEX2DEC = HEXINDEZ ## Wandelt eine hexadezimale Zahl in eine dezimale Zahl um -HEX2OCT = HEXINOKT ## Wandelt eine hexadezimale Zahl in eine Oktalzahl um -IMABS = IMABS ## Gibt den Absolutbetrag (Modulo) einer komplexen Zahl zurück -IMAGINARY = IMAGINÄRTEIL ## Gibt den Imaginärteil einer komplexen Zahl zurück -IMARGUMENT = IMARGUMENT ## Gibt das Argument Theta zurück, einen Winkel, der als Bogenmaß ausgedrückt wird -IMCONJUGATE = IMKONJUGIERTE ## Gibt die konjugierte komplexe Zahl zu einer komplexen Zahl zurück -IMCOS = IMCOS ## Gibt den Kosinus einer komplexen Zahl zurück -IMDIV = IMDIV ## Gibt den Quotienten zweier komplexer Zahlen zurück -IMEXP = IMEXP ## Gibt die algebraische Form einer in exponentieller Schreibweise vorliegenden komplexen Zahl zurück -IMLN = IMLN ## Gibt den natürlichen Logarithmus einer komplexen Zahl zurück -IMLOG10 = IMLOG10 ## Gibt den Logarithmus einer komplexen Zahl zur Basis 10 zurück -IMLOG2 = IMLOG2 ## Gibt den Logarithmus einer komplexen Zahl zur Basis 2 zurück -IMPOWER = IMAPOTENZ ## Potenziert eine komplexe Zahl mit einer ganzen Zahl -IMPRODUCT = IMPRODUKT ## Gibt das Produkt von komplexen Zahlen zurück -IMREAL = IMREALTEIL ## Gibt den Realteil einer komplexen Zahl zurück -IMSIN = IMSIN ## Gibt den Sinus einer komplexen Zahl zurück -IMSQRT = IMWURZEL ## Gibt die Quadratwurzel einer komplexen Zahl zurück -IMSUB = IMSUB ## Gibt die Differenz zwischen zwei komplexen Zahlen zurück -IMSUM = IMSUMME ## Gibt die Summe von komplexen Zahlen zurück -OCT2BIN = OKTINBIN ## Wandelt eine oktale Zahl in eine binäre Zahl (Dualzahl) um -OCT2DEC = OKTINDEZ ## Wandelt eine oktale Zahl in eine dezimale Zahl um -OCT2HEX = OKTINHEX ## Wandelt eine oktale Zahl in eine hexadezimale Zahl um - - -## -## Financial functions Finanzmathematische Funktionen -## -ACCRINT = AUFGELZINS ## Gibt die aufgelaufenen Zinsen (Stückzinsen) eines Wertpapiers mit periodischen Zinszahlungen zurück -ACCRINTM = AUFGELZINSF ## Gibt die aufgelaufenen Zinsen (Stückzinsen) eines Wertpapiers zurück, die bei Fälligkeit ausgezahlt werden -AMORDEGRC = AMORDEGRK ## Gibt die Abschreibung für die einzelnen Abschreibungszeiträume mithilfe eines Abschreibungskoeffizienten zurück -AMORLINC = AMORLINEARK ## Gibt die Abschreibung für die einzelnen Abschreibungszeiträume zurück -COUPDAYBS = ZINSTERMTAGVA ## Gibt die Anzahl der Tage vom Anfang des Zinstermins bis zum Abrechnungstermin zurück -COUPDAYS = ZINSTERMTAGE ## Gibt die Anzahl der Tage der Zinsperiode zurück, die den Abrechnungstermin einschließt -COUPDAYSNC = ZINSTERMTAGNZ ## Gibt die Anzahl der Tage vom Abrechnungstermin bis zum nächsten Zinstermin zurück -COUPNCD = ZINSTERMNZ ## Gibt das Datum des ersten Zinstermins nach dem Abrechnungstermin zurück -COUPNUM = ZINSTERMZAHL ## Gibt die Anzahl der Zinstermine zwischen Abrechnungs- und Fälligkeitsdatum zurück -COUPPCD = ZINSTERMVZ ## Gibt das Datum des letzten Zinstermins vor dem Abrechnungstermin zurück -CUMIPMT = KUMZINSZ ## Berechnet die kumulierten Zinsen, die zwischen zwei Perioden zu zahlen sind -CUMPRINC = KUMKAPITAL ## Berechnet die aufgelaufene Tilgung eines Darlehens, die zwischen zwei Perioden zu zahlen ist -DB = GDA2 ## Gibt die geometrisch-degressive Abschreibung eines Wirtschaftsguts für eine bestimmte Periode zurück -DDB = GDA ## Gibt die Abschreibung eines Anlageguts für einen angegebenen Zeitraum unter Verwendung der degressiven Doppelraten-Abschreibung oder eines anderen von Ihnen angegebenen Abschreibungsverfahrens zurück -DISC = DISAGIO ## Gibt den in Prozent ausgedrückten Abzinsungssatz eines Wertpapiers zurück -DOLLARDE = NOTIERUNGDEZ ## Wandelt eine Notierung, die als Dezimalbruch ausgedrückt wurde, in eine Dezimalzahl um -DOLLARFR = NOTIERUNGBRU ## Wandelt eine Notierung, die als Dezimalzahl ausgedrückt wurde, in einen Dezimalbruch um -DURATION = DURATION ## Gibt die jährliche Duration eines Wertpapiers mit periodischen Zinszahlungen zurück -EFFECT = EFFEKTIV ## Gibt die jährliche Effektivverzinsung zurück -FV = ZW ## Gibt den zukünftigen Wert (Endwert) einer Investition zurück -FVSCHEDULE = ZW2 ## Gibt den aufgezinsten Wert des Anfangskapitals für eine Reihe periodisch unterschiedlicher Zinssätze zurück -INTRATE = ZINSSATZ ## Gibt den Zinssatz eines voll investierten Wertpapiers zurück -IPMT = ZINSZ ## Gibt die Zinszahlung einer Investition für die angegebene Periode zurück -IRR = IKV ## Gibt den internen Zinsfuß einer Investition ohne Finanzierungskosten oder Reinvestitionsgewinne zurück -ISPMT = ISPMT ## Berechnet die während eines bestimmten Zeitraums für eine Investition gezahlten Zinsen -MDURATION = MDURATION ## Gibt die geänderte Dauer für ein Wertpapier mit einem angenommenen Nennwert von 100 € zurück -MIRR = QIKV ## Gibt den internen Zinsfuß zurück, wobei positive und negative Zahlungen zu unterschiedlichen Sätzen finanziert werden -NOMINAL = NOMINAL ## Gibt die jährliche Nominalverzinsung zurück -NPER = ZZR ## Gibt die Anzahl der Zahlungsperioden einer Investition zurück -NPV = NBW ## Gibt den Nettobarwert einer Investition auf Basis periodisch anfallender Zahlungen und eines Abzinsungsfaktors zurück -ODDFPRICE = UNREGER.KURS ## Gibt den Kurs pro 100 € Nennwert eines Wertpapiers mit einem unregelmäßigen ersten Zinstermin zurück -ODDFYIELD = UNREGER.REND ## Gibt die Rendite eines Wertpapiers mit einem unregelmäßigen ersten Zinstermin zurück -ODDLPRICE = UNREGLE.KURS ## Gibt den Kurs pro 100 € Nennwert eines Wertpapiers mit einem unregelmäßigen letzten Zinstermin zurück -ODDLYIELD = UNREGLE.REND ## Gibt die Rendite eines Wertpapiers mit einem unregelmäßigen letzten Zinstermin zurück -PMT = RMZ ## Gibt die periodische Zahlung für eine Annuität zurück -PPMT = KAPZ ## Gibt die Kapitalrückzahlung einer Investition für eine angegebene Periode zurück -PRICE = KURS ## Gibt den Kurs pro 100 € Nennwert eines Wertpapiers zurück, das periodisch Zinsen auszahlt -PRICEDISC = KURSDISAGIO ## Gibt den Kurs pro 100 € Nennwert eines unverzinslichen Wertpapiers zurück -PRICEMAT = KURSFÄLLIG ## Gibt den Kurs pro 100 € Nennwert eines Wertpapiers zurück, das Zinsen am Fälligkeitsdatum auszahlt -PV = BW ## Gibt den Barwert einer Investition zurück -RATE = ZINS ## Gibt den Zinssatz pro Zeitraum einer Annuität zurück -RECEIVED = AUSZAHLUNG ## Gibt den Auszahlungsbetrag eines voll investierten Wertpapiers am Fälligkeitstermin zurück -SLN = LIA ## Gibt die lineare Abschreibung eines Wirtschaftsguts pro Periode zurück -SYD = DIA ## Gibt die arithmetisch-degressive Abschreibung eines Wirtschaftsguts für eine bestimmte Periode zurück -TBILLEQ = TBILLÄQUIV ## Gibt die Rendite für ein Wertpapier zurück -TBILLPRICE = TBILLKURS ## Gibt den Kurs pro 100 € Nennwert eines Wertpapiers zurück -TBILLYIELD = TBILLRENDITE ## Gibt die Rendite für ein Wertpapier zurück -VDB = VDB ## Gibt die degressive Abschreibung eines Wirtschaftsguts für eine bestimmte Periode oder Teilperiode zurück -XIRR = XINTZINSFUSS ## Gibt den internen Zinsfuß einer Reihe nicht periodisch anfallender Zahlungen zurück -XNPV = XKAPITALWERT ## Gibt den Nettobarwert (Kapitalwert) einer Reihe nicht periodisch anfallender Zahlungen zurück -YIELD = RENDITE ## Gibt die Rendite eines Wertpapiers zurück, das periodisch Zinsen auszahlt -YIELDDISC = RENDITEDIS ## Gibt die jährliche Rendite eines unverzinslichen Wertpapiers zurück -YIELDMAT = RENDITEFÄLL ## Gibt die jährliche Rendite eines Wertpapiers zurück, das Zinsen am Fälligkeitsdatum auszahlt - - -## -## Information functions Informationsfunktionen -## -CELL = ZELLE ## Gibt Informationen zu Formatierung, Position oder Inhalt einer Zelle zurück -ERROR.TYPE = FEHLER.TYP ## Gibt eine Zahl zurück, die einem Fehlertyp entspricht -INFO = INFO ## Gibt Informationen zur aktuellen Betriebssystemumgebung zurück -ISBLANK = ISTLEER ## Gibt WAHR zurück, wenn der Wert leer ist -ISERR = ISTFEHL ## Gibt WAHR zurück, wenn der Wert ein beliebiger Fehlerwert außer #N/V ist -ISERROR = ISTFEHLER ## Gibt WAHR zurück, wenn der Wert ein beliebiger Fehlerwert ist -ISEVEN = ISTGERADE ## Gibt WAHR zurück, wenn es sich um eine gerade Zahl handelt -ISLOGICAL = ISTLOG ## Gibt WAHR zurück, wenn der Wert ein Wahrheitswert ist -ISNA = ISTNV ## Gibt WAHR zurück, wenn der Wert der Fehlerwert #N/V ist -ISNONTEXT = ISTKTEXT ## Gibt WAHR zurück, wenn der Wert ein Element ist, das keinen Text enthält -ISNUMBER = ISTZAHL ## Gibt WAHR zurück, wenn der Wert eine Zahl ist -ISODD = ISTUNGERADE ## Gibt WAHR zurück, wenn es sich um eine ungerade Zahl handelt -ISREF = ISTBEZUG ## Gibt WAHR zurück, wenn der Wert ein Bezug ist -ISTEXT = ISTTEXT ## Gibt WAHR zurück, wenn der Wert ein Element ist, das Text enthält -N = N ## Gibt den in eine Zahl umgewandelten Wert zurück -NA = NV ## Gibt den Fehlerwert #NV zurück -TYPE = TYP ## Gibt eine Zahl zurück, die den Datentyp des angegebenen Werts anzeigt - - -## -## Logical functions Logische Funktionen -## -AND = UND ## Gibt WAHR zurück, wenn alle zugehörigen Argumente WAHR sind -FALSE = FALSCH ## Gibt den Wahrheitswert FALSCH zurück -IF = WENN ## Gibt einen logischen Test zum Ausführen an -IFERROR = WENNFEHLER ## Gibt einen von Ihnen festgelegten Wert zurück, wenn die Auswertung der Formel zu einem Fehler führt; andernfalls wird das Ergebnis der Formel zurückgegeben -NOT = NICHT ## Kehrt den Wahrheitswert der zugehörigen Argumente um -OR = ODER ## Gibt WAHR zurück, wenn ein Argument WAHR ist -TRUE = WAHR ## Gibt den Wahrheitswert WAHR zurück - - -## -## Lookup and reference functions Nachschlage- und Verweisfunktionen -## -ADDRESS = ADRESSE ## Gibt einen Bezug auf eine einzelne Zelle in einem Tabellenblatt als Text zurück -AREAS = BEREICHE ## Gibt die Anzahl der innerhalb eines Bezugs aufgeführten Bereiche zurück -CHOOSE = WAHL ## Wählt einen Wert aus eine Liste mit Werten aus -COLUMN = SPALTE ## Gibt die Spaltennummer eines Bezugs zurück -COLUMNS = SPALTEN ## Gibt die Anzahl der Spalten in einem Bezug zurück -HLOOKUP = HVERWEIS ## Sucht in der obersten Zeile einer Matrix und gibt den Wert der angegebenen Zelle zurück -HYPERLINK = HYPERLINK ## Erstellt eine Verknüpfung, über die ein auf einem Netzwerkserver, in einem Intranet oder im Internet gespeichertes Dokument geöffnet wird -INDEX = INDEX ## Verwendet einen Index, um einen Wert aus einem Bezug oder einer Matrix auszuwählen -INDIRECT = INDIREKT ## Gibt einen Bezug zurück, der von einem Textwert angegeben wird -LOOKUP = LOOKUP ## Sucht Werte in einem Vektor oder einer Matrix -MATCH = VERGLEICH ## Sucht Werte in einem Bezug oder einer Matrix -OFFSET = BEREICH.VERSCHIEBEN ## Gibt einen Bezugoffset aus einem gegebenen Bezug zurück -ROW = ZEILE ## Gibt die Zeilennummer eines Bezugs zurück -ROWS = ZEILEN ## Gibt die Anzahl der Zeilen in einem Bezug zurück -RTD = RTD ## Ruft Echtzeitdaten von einem Programm ab, das die COM-Automatisierung (Automatisierung: Ein Verfahren, bei dem aus einer Anwendung oder einem Entwicklungstool heraus mit den Objekten einer anderen Anwendung gearbeitet wird. Die früher als OLE-Automatisierung bezeichnete Automatisierung ist ein Industriestandard und eine Funktion von COM (Component Object Model).) unterstützt -TRANSPOSE = MTRANS ## Gibt die transponierte Matrix einer Matrix zurück -VLOOKUP = SVERWEIS ## Sucht in der ersten Spalte einer Matrix und arbeitet sich durch die Zeile, um den Wert einer Zelle zurückzugeben - - -## -## Math and trigonometry functions Mathematische und trigonometrische Funktionen -## -ABS = ABS ## Gibt den Absolutwert einer Zahl zurück -ACOS = ARCCOS ## Gibt den Arkuskosinus einer Zahl zurück -ACOSH = ARCCOSHYP ## Gibt den umgekehrten hyperbolischen Kosinus einer Zahl zurück -ASIN = ARCSIN ## Gibt den Arkussinus einer Zahl zurück -ASINH = ARCSINHYP ## Gibt den umgekehrten hyperbolischen Sinus einer Zahl zurück -ATAN = ARCTAN ## Gibt den Arkustangens einer Zahl zurück -ATAN2 = ARCTAN2 ## Gibt den Arkustangens einer x- und einer y-Koordinate zurück -ATANH = ARCTANHYP ## Gibt den umgekehrten hyperbolischen Tangens einer Zahl zurück -CEILING = OBERGRENZE ## Rundet eine Zahl auf die nächste ganze Zahl oder das nächste Vielfache von Schritt -COMBIN = KOMBINATIONEN ## Gibt die Anzahl der Kombinationen für eine bestimmte Anzahl von Objekten zurück -COS = COS ## Gibt den Kosinus einer Zahl zurück -COSH = COSHYP ## Gibt den hyperbolischen Kosinus einer Zahl zurück -DEGREES = GRAD ## Wandelt Bogenmaß (Radiant) in Grad um -EVEN = GERADE ## Rundet eine Zahl auf die nächste gerade ganze Zahl auf -EXP = EXP ## Potenziert die Basis e mit der als Argument angegebenen Zahl -FACT = FAKULTÄT ## Gibt die Fakultät einer Zahl zurück -FACTDOUBLE = ZWEIFAKULTÄT ## Gibt die Fakultät zu Zahl mit Schrittlänge 2 zurück -FLOOR = UNTERGRENZE ## Rundet die Zahl auf Anzahl_Stellen ab -GCD = GGT ## Gibt den größten gemeinsamen Teiler zurück -INT = GANZZAHL ## Rundet eine Zahl auf die nächstkleinere ganze Zahl ab -LCM = KGV ## Gibt das kleinste gemeinsame Vielfache zurück -LN = LN ## Gibt den natürlichen Logarithmus einer Zahl zurück -LOG = LOG ## Gibt den Logarithmus einer Zahl zu der angegebenen Basis zurück -LOG10 = LOG10 ## Gibt den Logarithmus einer Zahl zur Basis 10 zurück -MDETERM = MDET ## Gibt die Determinante einer Matrix zurück -MINVERSE = MINV ## Gibt die inverse Matrix einer Matrix zurück -MMULT = MMULT ## Gibt das Produkt zweier Matrizen zurück -MOD = REST ## Gibt den Rest einer Division zurück -MROUND = VRUNDEN ## Gibt eine auf das gewünschte Vielfache gerundete Zahl zurück -MULTINOMIAL = POLYNOMIAL ## Gibt den Polynomialkoeffizienten einer Gruppe von Zahlen zurück -ODD = UNGERADE ## Rundet eine Zahl auf die nächste ungerade ganze Zahl auf -PI = PI ## Gibt den Wert Pi zurück -POWER = POTENZ ## Gibt als Ergebnis eine potenzierte Zahl zurück -PRODUCT = PRODUKT ## Multipliziert die zugehörigen Argumente -QUOTIENT = QUOTIENT ## Gibt den ganzzahligen Anteil einer Division zurück -RADIANS = BOGENMASS ## Wandelt Grad in Bogenmaß (Radiant) um -RAND = ZUFALLSZAHL ## Gibt eine Zufallszahl zwischen 0 und 1 zurück -RANDBETWEEN = ZUFALLSBEREICH ## Gibt eine Zufallszahl aus dem festgelegten Bereich zurück -ROMAN = RÖMISCH ## Wandelt eine arabische Zahl in eine römische Zahl als Text um -ROUND = RUNDEN ## Rundet eine Zahl auf eine bestimmte Anzahl von Dezimalstellen -ROUNDDOWN = ABRUNDEN ## Rundet die Zahl auf Anzahl_Stellen ab -ROUNDUP = AUFRUNDEN ## Rundet die Zahl auf Anzahl_Stellen auf -SERIESSUM = POTENZREIHE ## Gibt die Summe von Potenzen (zur Berechnung von Potenzreihen und dichotomen Wahrscheinlichkeiten) zurück -SIGN = VORZEICHEN ## Gibt das Vorzeichen einer Zahl zurück -SIN = SIN ## Gibt den Sinus einer Zahl zurück -SINH = SINHYP ## Gibt den hyperbolischen Sinus einer Zahl zurück -SQRT = WURZEL ## Gibt die Quadratwurzel einer Zahl zurück -SQRTPI = WURZELPI ## Gibt die Wurzel aus der mit Pi (pi) multiplizierten Zahl zurück -SUBTOTAL = TEILERGEBNIS ## Gibt ein Teilergebnis in einer Liste oder Datenbank zurück -SUM = SUMME ## Addiert die zugehörigen Argumente -SUMIF = SUMMEWENN ## Addiert Zahlen, die mit den Suchkriterien übereinstimmen -SUMIFS = SUMMEWENNS ## Die Zellen, die mehrere Kriterien erfüllen, werden in einem Bereich hinzugefügt -SUMPRODUCT = SUMMENPRODUKT ## Gibt die Summe der Produkte zusammengehöriger Matrixkomponenten zurück -SUMSQ = QUADRATESUMME ## Gibt die Summe der quadrierten Argumente zurück -SUMX2MY2 = SUMMEX2MY2 ## Gibt die Summe der Differenzen der Quadrate für zusammengehörige Komponenten zweier Matrizen zurück -SUMX2PY2 = SUMMEX2PY2 ## Gibt die Summe der Quadrate für zusammengehörige Komponenten zweier Matrizen zurück -SUMXMY2 = SUMMEXMY2 ## Gibt die Summe der quadrierten Differenzen für zusammengehörige Komponenten zweier Matrizen zurück -TAN = TAN ## Gibt den Tangens einer Zahl zurück -TANH = TANHYP ## Gibt den hyperbolischen Tangens einer Zahl zurück -TRUNC = KÜRZEN ## Schneidet die Kommastellen einer Zahl ab und gibt als Ergebnis eine ganze Zahl zurück - - -## -## Statistical functions Statistische Funktionen -## -AVEDEV = MITTELABW ## Gibt die durchschnittliche absolute Abweichung einer Reihe von Merkmalsausprägungen und ihrem Mittelwert zurück -AVERAGE = MITTELWERT ## Gibt den Mittelwert der zugehörigen Argumente zurück -AVERAGEA = MITTELWERTA ## Gibt den Mittelwert der zugehörigen Argumente, die Zahlen, Text und Wahrheitswerte enthalten, zurück -AVERAGEIF = MITTELWERTWENN ## Der Durchschnittswert (arithmetisches Mittel) für alle Zellen in einem Bereich, die einem angegebenen Kriterium entsprechen, wird zurückgegeben -AVERAGEIFS = MITTELWERTWENNS ## Gibt den Durchschnittswert (arithmetisches Mittel) aller Zellen zurück, die mehreren Kriterien entsprechen -BETADIST = BETAVERT ## Gibt die Werte der kumulierten Betaverteilungsfunktion zurück -BETAINV = BETAINV ## Gibt das Quantil der angegebenen Betaverteilung zurück -BINOMDIST = BINOMVERT ## Gibt Wahrscheinlichkeiten einer binomialverteilten Zufallsvariablen zurück -CHIDIST = CHIVERT ## Gibt Werte der Verteilungsfunktion (1-Alpha) einer Chi-Quadrat-verteilten Zufallsgröße zurück -CHIINV = CHIINV ## Gibt Quantile der Verteilungsfunktion (1-Alpha) der Chi-Quadrat-Verteilung zurück -CHITEST = CHITEST ## Gibt die Teststatistik eines Unabhängigkeitstests zurück -CONFIDENCE = KONFIDENZ ## Ermöglicht die Berechnung des 1-Alpha Konfidenzintervalls für den Erwartungswert einer Zufallsvariablen -CORREL = KORREL ## Gibt den Korrelationskoeffizienten zweier Reihen von Merkmalsausprägungen zurück -COUNT = ANZAHL ## Gibt die Anzahl der Zahlen in der Liste mit Argumenten an -COUNTA = ANZAHL2 ## Gibt die Anzahl der Werte in der Liste mit Argumenten an -COUNTBLANK = ANZAHLLEEREZELLEN ## Gibt die Anzahl der leeren Zellen in einem Bereich an -COUNTIF = ZÄHLENWENN ## Gibt die Anzahl der Zellen in einem Bereich an, deren Inhalte mit den Suchkriterien übereinstimmen -COUNTIFS = ZÄHLENWENNS ## Gibt die Anzahl der Zellen in einem Bereich an, deren Inhalte mit mehreren Suchkriterien übereinstimmen -COVAR = KOVAR ## Gibt die Kovarianz zurück, den Mittelwert der für alle Datenpunktpaare gebildeten Produkte der Abweichungen -CRITBINOM = KRITBINOM ## Gibt den kleinsten Wert zurück, für den die kumulierten Wahrscheinlichkeiten der Binomialverteilung kleiner oder gleich einer Grenzwahrscheinlichkeit sind -DEVSQ = SUMQUADABW ## Gibt die Summe der quadrierten Abweichungen der Datenpunkte von ihrem Stichprobenmittelwert zurück -EXPONDIST = EXPONVERT ## Gibt Wahrscheinlichkeiten einer exponential verteilten Zufallsvariablen zurück -FDIST = FVERT ## Gibt Werte der Verteilungsfunktion (1-Alpha) einer F-verteilten Zufallsvariablen zurück -FINV = FINV ## Gibt Quantile der F-Verteilung zurück -FISHER = FISHER ## Gibt die Fisher-Transformation zurück -FISHERINV = FISHERINV ## Gibt die Umkehrung der Fisher-Transformation zurück -FORECAST = PROGNOSE ## Gibt einen Wert zurück, der sich aus einem linearen Trend ergibt -FREQUENCY = HÄUFIGKEIT ## Gibt eine Häufigkeitsverteilung als vertikale Matrix zurück -FTEST = FTEST ## Gibt die Teststatistik eines F-Tests zurück -GAMMADIST = GAMMAVERT ## Gibt Wahrscheinlichkeiten einer gammaverteilten Zufallsvariablen zurück -GAMMAINV = GAMMAINV ## Gibt Quantile der Gammaverteilung zurück -GAMMALN = GAMMALN ## Gibt den natürlichen Logarithmus der Gammafunktion zurück, Γ(x) -GEOMEAN = GEOMITTEL ## Gibt das geometrische Mittel zurück -GROWTH = VARIATION ## Gibt Werte zurück, die sich aus einem exponentiellen Trend ergeben -HARMEAN = HARMITTEL ## Gibt das harmonische Mittel zurück -HYPGEOMDIST = HYPGEOMVERT ## Gibt Wahrscheinlichkeiten einer hypergeometrisch-verteilten Zufallsvariablen zurück -INTERCEPT = ACHSENABSCHNITT ## Gibt den Schnittpunkt der Regressionsgeraden zurück -KURT = KURT ## Gibt die Kurtosis (Exzess) einer Datengruppe zurück -LARGE = KGRÖSSTE ## Gibt den k-größten Wert einer Datengruppe zurück -LINEST = RGP ## Gibt die Parameter eines linearen Trends zurück -LOGEST = RKP ## Gibt die Parameter eines exponentiellen Trends zurück -LOGINV = LOGINV ## Gibt Quantile der Lognormalverteilung zurück -LOGNORMDIST = LOGNORMVERT ## Gibt Werte der Verteilungsfunktion einer lognormalverteilten Zufallsvariablen zurück -MAX = MAX ## Gibt den Maximalwert einer Liste mit Argumenten zurück -MAXA = MAXA ## Gibt den Maximalwert einer Liste mit Argumenten zurück, die Zahlen, Text und Wahrheitswerte enthalten -MEDIAN = MEDIAN ## Gibt den Median der angegebenen Zahlen zurück -MIN = MIN ## Gibt den Minimalwert einer Liste mit Argumenten zurück -MINA = MINA ## Gibt den kleinsten Wert einer Liste mit Argumenten zurück, die Zahlen, Text und Wahrheitswerte enthalten -MODE = MODALWERT ## Gibt den am häufigsten vorkommenden Wert in einer Datengruppe zurück -NEGBINOMDIST = NEGBINOMVERT ## Gibt Wahrscheinlichkeiten einer negativen, binominal verteilten Zufallsvariablen zurück -NORMDIST = NORMVERT ## Gibt Wahrscheinlichkeiten einer normal verteilten Zufallsvariablen zurück -NORMINV = NORMINV ## Gibt Quantile der Normalverteilung zurück -NORMSDIST = STANDNORMVERT ## Gibt Werte der Verteilungsfunktion einer standardnormalverteilten Zufallsvariablen zurück -NORMSINV = STANDNORMINV ## Gibt Quantile der Standardnormalverteilung zurück -PEARSON = PEARSON ## Gibt den Pearsonschen Korrelationskoeffizienten zurück -PERCENTILE = QUANTIL ## Gibt das Alpha-Quantil einer Gruppe von Daten zurück -PERCENTRANK = QUANTILSRANG ## Gibt den prozentualen Rang (Alpha) eines Werts in einer Datengruppe zurück -PERMUT = VARIATIONEN ## Gibt die Anzahl der Möglichkeiten zurück, um k Elemente aus einer Menge von n Elementen ohne Zurücklegen zu ziehen -POISSON = POISSON ## Gibt Wahrscheinlichkeiten einer poissonverteilten Zufallsvariablen zurück -PROB = WAHRSCHBEREICH ## Gibt die Wahrscheinlichkeit für ein von zwei Werten eingeschlossenes Intervall zurück -QUARTILE = QUARTILE ## Gibt die Quartile der Datengruppe zurück -RANK = RANG ## Gibt den Rang zurück, den eine Zahl innerhalb einer Liste von Zahlen einnimmt -RSQ = BESTIMMTHEITSMASS ## Gibt das Quadrat des Pearsonschen Korrelationskoeffizienten zurück -SKEW = SCHIEFE ## Gibt die Schiefe einer Verteilung zurück -SLOPE = STEIGUNG ## Gibt die Steigung der Regressionsgeraden zurück -SMALL = KKLEINSTE ## Gibt den k-kleinsten Wert einer Datengruppe zurück -STANDARDIZE = STANDARDISIERUNG ## Gibt den standardisierten Wert zurück -STDEV = STABW ## Schätzt die Standardabweichung ausgehend von einer Stichprobe -STDEVA = STABWA ## Schätzt die Standardabweichung ausgehend von einer Stichprobe, die Zahlen, Text und Wahrheitswerte enthält -STDEVP = STABWN ## Berechnet die Standardabweichung ausgehend von der Grundgesamtheit -STDEVPA = STABWNA ## Berechnet die Standardabweichung ausgehend von der Grundgesamtheit, die Zahlen, Text und Wahrheitswerte enthält -STEYX = STFEHLERYX ## Gibt den Standardfehler der geschätzten y-Werte für alle x-Werte der Regression zurück -TDIST = TVERT ## Gibt Werte der Verteilungsfunktion (1-Alpha) einer (Student) t-verteilten Zufallsvariablen zurück -TINV = TINV ## Gibt Quantile der t-Verteilung zurück -TREND = TREND ## Gibt Werte zurück, die sich aus einem linearen Trend ergeben -TRIMMEAN = GESTUTZTMITTEL ## Gibt den Mittelwert einer Datengruppe zurück, ohne die Randwerte zu berücksichtigen -TTEST = TTEST ## Gibt die Teststatistik eines Student'schen t-Tests zurück -VAR = VARIANZ ## Schätzt die Varianz ausgehend von einer Stichprobe -VARA = VARIANZA ## Schätzt die Varianz ausgehend von einer Stichprobe, die Zahlen, Text und Wahrheitswerte enthält -VARP = VARIANZEN ## Berechnet die Varianz ausgehend von der Grundgesamtheit -VARPA = VARIANZENA ## Berechnet die Varianz ausgehend von der Grundgesamtheit, die Zahlen, Text und Wahrheitswerte enthält -WEIBULL = WEIBULL ## Gibt Wahrscheinlichkeiten einer weibullverteilten Zufallsvariablen zurück -ZTEST = GTEST ## Gibt den einseitigen Wahrscheinlichkeitswert für einen Gausstest (Normalverteilung) zurück - - -## -## Text functions Textfunktionen -## -ASC = ASC ## Konvertiert DB-Text in einer Zeichenfolge (lateinische Buchstaben oder Katakana) in SB-Text -BAHTTEXT = BAHTTEXT ## Wandelt eine Zahl in Text im Währungsformat ß (Baht) um -CHAR = ZEICHEN ## Gibt das der Codezahl entsprechende Zeichen zurück -CLEAN = SÄUBERN ## Löscht alle nicht druckbaren Zeichen aus einem Text -CODE = CODE ## Gibt die Codezahl des ersten Zeichens in einem Text zurück -CONCATENATE = VERKETTEN ## Verknüpft mehrere Textelemente zu einem Textelement -DOLLAR = DM ## Wandelt eine Zahl in Text im Währungsformat € (Euro) um -EXACT = IDENTISCH ## Prüft, ob zwei Textwerte identisch sind -FIND = FINDEN ## Sucht nach einem Textwert, der in einem anderen Textwert enthalten ist (Groß-/Kleinschreibung wird unterschieden) -FINDB = FINDENB ## Sucht nach einem Textwert, der in einem anderen Textwert enthalten ist (Groß-/Kleinschreibung wird unterschieden) -FIXED = FEST ## Formatiert eine Zahl als Text mit einer festen Anzahl von Dezimalstellen -JIS = JIS ## Konvertiert SB-Text in einer Zeichenfolge (lateinische Buchstaben oder Katakana) in DB-Text -LEFT = LINKS ## Gibt die Zeichen ganz links in einem Textwert zurück -LEFTB = LINKSB ## Gibt die Zeichen ganz links in einem Textwert zurück -LEN = LÄNGE ## Gibt die Anzahl der Zeichen in einer Zeichenfolge zurück -LENB = LÄNGEB ## Gibt die Anzahl der Zeichen in einer Zeichenfolge zurück -LOWER = KLEIN ## Wandelt Text in Kleinbuchstaben um -MID = TEIL ## Gibt eine bestimmte Anzahl Zeichen aus einer Zeichenfolge ab der von Ihnen angegebenen Stelle zurück -MIDB = TEILB ## Gibt eine bestimmte Anzahl Zeichen aus einer Zeichenfolge ab der von Ihnen angegebenen Stelle zurück -PHONETIC = PHONETIC ## Extrahiert die phonetischen (Furigana-)Zeichen aus einer Textzeichenfolge -PROPER = GROSS2 ## Wandelt den ersten Buchstaben aller Wörter eines Textwerts in Großbuchstaben um -REPLACE = ERSETZEN ## Ersetzt Zeichen in Text -REPLACEB = ERSETZENB ## Ersetzt Zeichen in Text -REPT = WIEDERHOLEN ## Wiederholt einen Text so oft wie angegeben -RIGHT = RECHTS ## Gibt die Zeichen ganz rechts in einem Textwert zurück -RIGHTB = RECHTSB ## Gibt die Zeichen ganz rechts in einem Textwert zurück -SEARCH = SUCHEN ## Sucht nach einem Textwert, der in einem anderen Textwert enthalten ist (Groß-/Kleinschreibung wird nicht unterschieden) -SEARCHB = SUCHENB ## Sucht nach einem Textwert, der in einem anderen Textwert enthalten ist (Groß-/Kleinschreibung wird nicht unterschieden) -SUBSTITUTE = WECHSELN ## Ersetzt in einer Zeichenfolge neuen Text gegen alten -T = T ## Wandelt die zugehörigen Argumente in Text um -TEXT = TEXT ## Formatiert eine Zahl und wandelt sie in Text um -TRIM = GLÄTTEN ## Entfernt Leerzeichen aus Text -UPPER = GROSS ## Wandelt Text in Großbuchstaben um -VALUE = WERT ## Wandelt ein Textargument in eine Zahl um diff --git a/Utils/PHPExcel/locale/en/uk/config b/Utils/PHPExcel/locale/en/uk/config deleted file mode 100644 index 069bb0a..0000000 --- a/Utils/PHPExcel/locale/en/uk/config +++ /dev/null @@ -1,33 +0,0 @@ -## -## PHPExcel -## - -## Copyright (c) 2006 - 2013 PHPExcel -## -## This library is free software; you can redistribute it and/or -## modify it under the terms of the GNU Lesser General Public -## License as published by the Free Software Foundation; either -## version 2.1 of the License, or (at your option) any later version. -## -## This library is distributed in the hope that it will be useful, -## but WITHOUT ANY WARRANTY; without even the implied warranty of -## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -## Lesser General Public License for more details. -## -## You should have received a copy of the GNU Lesser General Public -## License along with this library; if not, write to the Free Software -## Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA -## -## @category PHPExcel -## @package PHPExcel_Settings -## @copyright Copyright (c) 2006 - 2013 PHPExcel (http://www.codeplex.com/PHPExcel) -## @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL -## @version ##VERSION##, ##DATE## -## -## - - -## -## (For future use) -## -currencySymbol = £ diff --git a/Utils/PHPExcel/locale/es/config b/Utils/PHPExcel/locale/es/config deleted file mode 100644 index 3b4031e..0000000 --- a/Utils/PHPExcel/locale/es/config +++ /dev/null @@ -1,49 +0,0 @@ -## -## PHPExcel -## - -## Copyright (c) 2006 - 2013 PHPExcel -## -## This library is free software; you can redistribute it and/or -## modify it under the terms of the GNU Lesser General Public -## License as published by the Free Software Foundation; either -## version 2.1 of the License, or (at your option) any later version. -## -## This library is distributed in the hope that it will be useful, -## but WITHOUT ANY WARRANTY; without even the implied warranty of -## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -## Lesser General Public License for more details. -## -## You should have received a copy of the GNU Lesser General Public -## License along with this library; if not, write to the Free Software -## Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA -## -## @category PHPExcel -## @package PHPExcel_Settings -## @copyright Copyright (c) 2006 - 2013 PHPExcel (http://www.codeplex.com/PHPExcel) -## @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL -## @version ##VERSION##, ##DATE## -## -## - - -ArgumentSeparator = ; - - -## -## (For future use) -## -currencySymbol = $ ## I'm surprised that the Excel Documentation suggests $ rather than € - - -## -## Excel Error Codes (For future use) - -## -NULL = #¡NULO! -DIV0 = #¡DIV/0! -VALUE = #¡VALOR! -REF = #¡REF! -NAME = #¿NOMBRE? -NUM = #¡NÚM! -NA = #N/A diff --git a/Utils/PHPExcel/locale/es/functions b/Utils/PHPExcel/locale/es/functions deleted file mode 100644 index b5a087f..0000000 --- a/Utils/PHPExcel/locale/es/functions +++ /dev/null @@ -1,439 +0,0 @@ -## -## PHPExcel -## - -## Copyright (c) 2006 - 2013 PHPExcel -## -## This library is free software; you can redistribute it and/or -## modify it under the terms of the GNU Lesser General Public -## License as published by the Free Software Foundation; either -## version 2.1 of the License, or (at your option) any later version. -## -## This library is distributed in the hope that it will be useful, -## but WITHOUT ANY WARRANTY; without even the implied warranty of -## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -## Lesser General Public License for more details. -## -## You should have received a copy of the GNU Lesser General Public -## License along with this library; if not, write to the Free Software -## Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA -## -## @category PHPExcel -## @package PHPExcel_Calculation -## @copyright Copyright (c) 2006 - 2013 PHPExcel (http://www.codeplex.com/PHPExcel) -## @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL -## @version ##VERSION##, ##DATE## -## -## Data in this file derived from http://www.piuha.fi/excel-function-name-translation/ -## -## - - -## -## Add-in and Automation functions Funciones de complementos y automatización -## -GETPIVOTDATA = IMPORTARDATOSDINAMICOS ## Devuelve los datos almacenados en un informe de tabla dinámica. - - -## -## Cube functions Funciones de cubo -## -CUBEKPIMEMBER = MIEMBROKPICUBO ## Devuelve un nombre, propiedad y medida de indicador de rendimiento clave (KPI) y muestra el nombre y la propiedad en la celda. Un KPI es una medida cuantificable, como los beneficios brutos mensuales o la facturación trimestral por empleado, que se usa para supervisar el rendimiento de una organización. -CUBEMEMBER = MIEMBROCUBO ## Devuelve un miembro o tupla en una jerarquía de cubo. Se usa para validar la existencia del miembro o la tupla en el cubo. -CUBEMEMBERPROPERTY = PROPIEDADMIEMBROCUBO ## Devuelve el valor de una propiedad de miembro del cubo Se usa para validar la existencia de un nombre de miembro en el cubo y para devolver la propiedad especificada para este miembro. -CUBERANKEDMEMBER = MIEMBRORANGOCUBO ## Devuelve el miembro n, o clasificado, de un conjunto. Se usa para devolver uno o más elementos de un conjunto, por ejemplo, el representante con mejores ventas o los diez mejores alumnos. -CUBESET = CONJUNTOCUBO ## Define un conjunto calculado de miembros o tuplas mediante el envío de una expresión de conjunto al cubo en el servidor, lo que crea el conjunto y, después, devuelve dicho conjunto a Microsoft Office Excel. -CUBESETCOUNT = RECUENTOCONJUNTOCUBO ## Devuelve el número de elementos de un conjunto. -CUBEVALUE = VALORCUBO ## Devuelve un valor agregado de un cubo. - - -## -## Database functions Funciones de base de datos -## -DAVERAGE = BDPROMEDIO ## Devuelve el promedio de las entradas seleccionadas en la base de datos. -DCOUNT = BDCONTAR ## Cuenta el número de celdas que contienen números en una base de datos. -DCOUNTA = BDCONTARA ## Cuenta el número de celdas no vacías en una base de datos. -DGET = BDEXTRAER ## Extrae de una base de datos un único registro que cumple los criterios especificados. -DMAX = BDMAX ## Devuelve el valor máximo de las entradas seleccionadas de la base de datos. -DMIN = BDMIN ## Devuelve el valor mínimo de las entradas seleccionadas de la base de datos. -DPRODUCT = BDPRODUCTO ## Multiplica los valores de un campo concreto de registros de una base de datos que cumplen los criterios especificados. -DSTDEV = BDDESVEST ## Calcula la desviación estándar a partir de una muestra de entradas seleccionadas en la base de datos. -DSTDEVP = BDDESVESTP ## Calcula la desviación estándar en función de la población total de las entradas seleccionadas de la base de datos. -DSUM = BDSUMA ## Suma los números de la columna de campo de los registros de la base de datos que cumplen los criterios. -DVAR = BDVAR ## Calcula la varianza a partir de una muestra de entradas seleccionadas de la base de datos. -DVARP = BDVARP ## Calcula la varianza a partir de la población total de entradas seleccionadas de la base de datos. - - -## -## Date and time functions Funciones de fecha y hora -## -DATE = FECHA ## Devuelve el número de serie correspondiente a una fecha determinada. -DATEVALUE = FECHANUMERO ## Convierte una fecha con formato de texto en un valor de número de serie. -DAY = DIA ## Convierte un número de serie en un valor de día del mes. -DAYS360 = DIAS360 ## Calcula el número de días entre dos fechas a partir de un año de 360 días. -EDATE = FECHA.MES ## Devuelve el número de serie de la fecha equivalente al número indicado de meses anteriores o posteriores a la fecha inicial. -EOMONTH = FIN.MES ## Devuelve el número de serie correspondiente al último día del mes anterior o posterior a un número de meses especificado. -HOUR = HORA ## Convierte un número de serie en un valor de hora. -MINUTE = MINUTO ## Convierte un número de serie en un valor de minuto. -MONTH = MES ## Convierte un número de serie en un valor de mes. -NETWORKDAYS = DIAS.LAB ## Devuelve el número de todos los días laborables existentes entre dos fechas. -NOW = AHORA ## Devuelve el número de serie correspondiente a la fecha y hora actuales. -SECOND = SEGUNDO ## Convierte un número de serie en un valor de segundo. -TIME = HORA ## Devuelve el número de serie correspondiente a una hora determinada. -TIMEVALUE = HORANUMERO ## Convierte una hora con formato de texto en un valor de número de serie. -TODAY = HOY ## Devuelve el número de serie correspondiente al día actual. -WEEKDAY = DIASEM ## Convierte un número de serie en un valor de día de la semana. -WEEKNUM = NUM.DE.SEMANA ## Convierte un número de serie en un número que representa el lugar numérico correspondiente a una semana de un año. -WORKDAY = DIA.LAB ## Devuelve el número de serie de la fecha que tiene lugar antes o después de un número determinado de días laborables. -YEAR = AÑO ## Convierte un número de serie en un valor de año. -YEARFRAC = FRAC.AÑO ## Devuelve la fracción de año que representa el número total de días existentes entre el valor de fecha_inicial y el de fecha_final. - - -## -## Engineering functions Funciones de ingeniería -## -BESSELI = BESSELI ## Devuelve la función Bessel In(x) modificada. -BESSELJ = BESSELJ ## Devuelve la función Bessel Jn(x). -BESSELK = BESSELK ## Devuelve la función Bessel Kn(x) modificada. -BESSELY = BESSELY ## Devuelve la función Bessel Yn(x). -BIN2DEC = BIN.A.DEC ## Convierte un número binario en decimal. -BIN2HEX = BIN.A.HEX ## Convierte un número binario en hexadecimal. -BIN2OCT = BIN.A.OCT ## Convierte un número binario en octal. -COMPLEX = COMPLEJO ## Convierte coeficientes reales e imaginarios en un número complejo. -CONVERT = CONVERTIR ## Convierte un número de un sistema de medida a otro. -DEC2BIN = DEC.A.BIN ## Convierte un número decimal en binario. -DEC2HEX = DEC.A.HEX ## Convierte un número decimal en hexadecimal. -DEC2OCT = DEC.A.OCT ## Convierte un número decimal en octal. -DELTA = DELTA ## Comprueba si dos valores son iguales. -ERF = FUN.ERROR ## Devuelve la función de error. -ERFC = FUN.ERROR.COMPL ## Devuelve la función de error complementario. -GESTEP = MAYOR.O.IGUAL ## Comprueba si un número es mayor que un valor de umbral. -HEX2BIN = HEX.A.BIN ## Convierte un número hexadecimal en binario. -HEX2DEC = HEX.A.DEC ## Convierte un número hexadecimal en decimal. -HEX2OCT = HEX.A.OCT ## Convierte un número hexadecimal en octal. -IMABS = IM.ABS ## Devuelve el valor absoluto (módulo) de un número complejo. -IMAGINARY = IMAGINARIO ## Devuelve el coeficiente imaginario de un número complejo. -IMARGUMENT = IM.ANGULO ## Devuelve el argumento theta, un ángulo expresado en radianes. -IMCONJUGATE = IM.CONJUGADA ## Devuelve la conjugada compleja de un número complejo. -IMCOS = IM.COS ## Devuelve el coseno de un número complejo. -IMDIV = IM.DIV ## Devuelve el cociente de dos números complejos. -IMEXP = IM.EXP ## Devuelve el valor exponencial de un número complejo. -IMLN = IM.LN ## Devuelve el logaritmo natural (neperiano) de un número complejo. -IMLOG10 = IM.LOG10 ## Devuelve el logaritmo en base 10 de un número complejo. -IMLOG2 = IM.LOG2 ## Devuelve el logaritmo en base 2 de un número complejo. -IMPOWER = IM.POT ## Devuelve un número complejo elevado a una potencia entera. -IMPRODUCT = IM.PRODUCT ## Devuelve el producto de números complejos. -IMREAL = IM.REAL ## Devuelve el coeficiente real de un número complejo. -IMSIN = IM.SENO ## Devuelve el seno de un número complejo. -IMSQRT = IM.RAIZ2 ## Devuelve la raíz cuadrada de un número complejo. -IMSUB = IM.SUSTR ## Devuelve la diferencia entre dos números complejos. -IMSUM = IM.SUM ## Devuelve la suma de números complejos. -OCT2BIN = OCT.A.BIN ## Convierte un número octal en binario. -OCT2DEC = OCT.A.DEC ## Convierte un número octal en decimal. -OCT2HEX = OCT.A.HEX ## Convierte un número octal en hexadecimal. - - -## -## Financial functions Funciones financieras -## -ACCRINT = INT.ACUM ## Devuelve el interés acumulado de un valor bursátil con pagos de interés periódicos. -ACCRINTM = INT.ACUM.V ## Devuelve el interés acumulado de un valor bursátil con pagos de interés al vencimiento. -AMORDEGRC = AMORTIZ.PROGRE ## Devuelve la amortización de cada período contable mediante el uso de un coeficiente de amortización. -AMORLINC = AMORTIZ.LIN ## Devuelve la amortización de cada uno de los períodos contables. -COUPDAYBS = CUPON.DIAS.L1 ## Devuelve el número de días desde el principio del período de un cupón hasta la fecha de liquidación. -COUPDAYS = CUPON.DIAS ## Devuelve el número de días del período (entre dos cupones) donde se encuentra la fecha de liquidación. -COUPDAYSNC = CUPON.DIAS.L2 ## Devuelve el número de días desde la fecha de liquidación hasta la fecha del próximo cupón. -COUPNCD = CUPON.FECHA.L2 ## Devuelve la fecha del próximo cupón después de la fecha de liquidación. -COUPNUM = CUPON.NUM ## Devuelve el número de pagos de cupón entre la fecha de liquidación y la fecha de vencimiento. -COUPPCD = CUPON.FECHA.L1 ## Devuelve la fecha de cupón anterior a la fecha de liquidación. -CUMIPMT = PAGO.INT.ENTRE ## Devuelve el interés acumulado pagado entre dos períodos. -CUMPRINC = PAGO.PRINC.ENTRE ## Devuelve el capital acumulado pagado de un préstamo entre dos períodos. -DB = DB ## Devuelve la amortización de un bien durante un período específico a través del método de amortización de saldo fijo. -DDB = DDB ## Devuelve la amortización de un bien durante un período específico a través del método de amortización por doble disminución de saldo u otro método que se especifique. -DISC = TASA.DESC ## Devuelve la tasa de descuento de un valor bursátil. -DOLLARDE = MONEDA.DEC ## Convierte una cotización de un valor bursátil expresada en forma fraccionaria en una cotización de un valor bursátil expresada en forma decimal. -DOLLARFR = MONEDA.FRAC ## Convierte una cotización de un valor bursátil expresada en forma decimal en una cotización de un valor bursátil expresada en forma fraccionaria. -DURATION = DURACION ## Devuelve la duración anual de un valor bursátil con pagos de interés periódico. -EFFECT = INT.EFECTIVO ## Devuelve la tasa de interés anual efectiva. -FV = VF ## Devuelve el valor futuro de una inversión. -FVSCHEDULE = VF.PLAN ## Devuelve el valor futuro de un capital inicial después de aplicar una serie de tasas de interés compuesto. -INTRATE = TASA.INT ## Devuelve la tasa de interés para la inversión total de un valor bursátil. -IPMT = PAGOINT ## Devuelve el pago de intereses de una inversión durante un período determinado. -IRR = TIR ## Devuelve la tasa interna de retorno para una serie de flujos de efectivo periódicos. -ISPMT = INT.PAGO.DIR ## Calcula el interés pagado durante un período específico de una inversión. -MDURATION = DURACION.MODIF ## Devuelve la duración de Macauley modificada de un valor bursátil con un valor nominal supuesto de 100 $. -MIRR = TIRM ## Devuelve la tasa interna de retorno donde se financian flujos de efectivo positivos y negativos a tasas diferentes. -NOMINAL = TASA.NOMINAL ## Devuelve la tasa nominal de interés anual. -NPER = NPER ## Devuelve el número de períodos de una inversión. -NPV = VNA ## Devuelve el valor neto actual de una inversión en función de una serie de flujos periódicos de efectivo y una tasa de descuento. -ODDFPRICE = PRECIO.PER.IRREGULAR.1 ## Devuelve el precio por un valor nominal de 100 $ de un valor bursátil con un primer período impar. -ODDFYIELD = RENDTO.PER.IRREGULAR.1 ## Devuelve el rendimiento de un valor bursátil con un primer período impar. -ODDLPRICE = PRECIO.PER.IRREGULAR.2 ## Devuelve el precio por un valor nominal de 100 $ de un valor bursátil con un último período impar. -ODDLYIELD = RENDTO.PER.IRREGULAR.2 ## Devuelve el rendimiento de un valor bursátil con un último período impar. -PMT = PAGO ## Devuelve el pago periódico de una anualidad. -PPMT = PAGOPRIN ## Devuelve el pago de capital de una inversión durante un período determinado. -PRICE = PRECIO ## Devuelve el precio por un valor nominal de 100 $ de un valor bursátil que paga una tasa de interés periódico. -PRICEDISC = PRECIO.DESCUENTO ## Devuelve el precio por un valor nominal de 100 $ de un valor bursátil con descuento. -PRICEMAT = PRECIO.VENCIMIENTO ## Devuelve el precio por un valor nominal de 100 $ de un valor bursátil que paga interés a su vencimiento. -PV = VALACT ## Devuelve el valor actual de una inversión. -RATE = TASA ## Devuelve la tasa de interés por período de una anualidad. -RECEIVED = CANTIDAD.RECIBIDA ## Devuelve la cantidad recibida al vencimiento de un valor bursátil completamente invertido. -SLN = SLN ## Devuelve la amortización por método directo de un bien en un período dado. -SYD = SYD ## Devuelve la amortización por suma de dígitos de los años de un bien durante un período especificado. -TBILLEQ = LETRA.DE.TES.EQV.A.BONO ## Devuelve el rendimiento de un bono equivalente a una letra del Tesoro (de EE.UU.) -TBILLPRICE = LETRA.DE.TES.PRECIO ## Devuelve el precio por un valor nominal de 100 $ de una letra del Tesoro (de EE.UU.) -TBILLYIELD = LETRA.DE.TES.RENDTO ## Devuelve el rendimiento de una letra del Tesoro (de EE.UU.) -VDB = DVS ## Devuelve la amortización de un bien durante un período específico o parcial a través del método de cálculo del saldo en disminución. -XIRR = TIR.NO.PER ## Devuelve la tasa interna de retorno para un flujo de efectivo que no es necesariamente periódico. -XNPV = VNA.NO.PER ## Devuelve el valor neto actual para un flujo de efectivo que no es necesariamente periódico. -YIELD = RENDTO ## Devuelve el rendimiento de un valor bursátil que paga intereses periódicos. -YIELDDISC = RENDTO.DESC ## Devuelve el rendimiento anual de un valor bursátil con descuento; por ejemplo, una letra del Tesoro (de EE.UU.) -YIELDMAT = RENDTO.VENCTO ## Devuelve el rendimiento anual de un valor bursátil que paga intereses al vencimiento. - - -## -## Information functions Funciones de información -## -CELL = CELDA ## Devuelve información acerca del formato, la ubicación o el contenido de una celda. -ERROR.TYPE = TIPO.DE.ERROR ## Devuelve un número que corresponde a un tipo de error. -INFO = INFO ## Devuelve información acerca del entorno operativo en uso. -ISBLANK = ESBLANCO ## Devuelve VERDADERO si el valor está en blanco. -ISERR = ESERR ## Devuelve VERDADERO si el valor es cualquier valor de error excepto #N/A. -ISERROR = ESERROR ## Devuelve VERDADERO si el valor es cualquier valor de error. -ISEVEN = ES.PAR ## Devuelve VERDADERO si el número es par. -ISLOGICAL = ESLOGICO ## Devuelve VERDADERO si el valor es un valor lógico. -ISNA = ESNOD ## Devuelve VERDADERO si el valor es el valor de error #N/A. -ISNONTEXT = ESNOTEXTO ## Devuelve VERDADERO si el valor no es texto. -ISNUMBER = ESNUMERO ## Devuelve VERDADERO si el valor es un número. -ISODD = ES.IMPAR ## Devuelve VERDADERO si el número es impar. -ISREF = ESREF ## Devuelve VERDADERO si el valor es una referencia. -ISTEXT = ESTEXTO ## Devuelve VERDADERO si el valor es texto. -N = N ## Devuelve un valor convertido en un número. -NA = ND ## Devuelve el valor de error #N/A. -TYPE = TIPO ## Devuelve un número que indica el tipo de datos de un valor. - - -## -## Logical functions Funciones lógicas -## -AND = Y ## Devuelve VERDADERO si todos sus argumentos son VERDADERO. -FALSE = FALSO ## Devuelve el valor lógico FALSO. -IF = SI ## Especifica una prueba lógica que realizar. -IFERROR = SI.ERROR ## Devuelve un valor que se especifica si una fórmula lo evalúa como un error; de lo contrario, devuelve el resultado de la fórmula. -NOT = NO ## Invierte el valor lógico del argumento. -OR = O ## Devuelve VERDADERO si cualquier argumento es VERDADERO. -TRUE = VERDADERO ## Devuelve el valor lógico VERDADERO. - - -## -## Lookup and reference functions Funciones de búsqueda y referencia -## -ADDRESS = DIRECCION ## Devuelve una referencia como texto a una sola celda de una hoja de cálculo. -AREAS = AREAS ## Devuelve el número de áreas de una referencia. -CHOOSE = ELEGIR ## Elige un valor de una lista de valores. -COLUMN = COLUMNA ## Devuelve el número de columna de una referencia. -COLUMNS = COLUMNAS ## Devuelve el número de columnas de una referencia. -HLOOKUP = BUSCARH ## Busca en la fila superior de una matriz y devuelve el valor de la celda indicada. -HYPERLINK = HIPERVINCULO ## Crea un acceso directo o un salto que abre un documento almacenado en un servidor de red, en una intranet o en Internet. -INDEX = INDICE ## Usa un índice para elegir un valor de una referencia o matriz. -INDIRECT = INDIRECTO ## Devuelve una referencia indicada por un valor de texto. -LOOKUP = BUSCAR ## Busca valores de un vector o una matriz. -MATCH = COINCIDIR ## Busca valores de una referencia o matriz. -OFFSET = DESREF ## Devuelve un desplazamiento de referencia respecto a una referencia dada. -ROW = FILA ## Devuelve el número de fila de una referencia. -ROWS = FILAS ## Devuelve el número de filas de una referencia. -RTD = RDTR ## Recupera datos en tiempo real desde un programa compatible con la automatización COM (automatización: modo de trabajar con los objetos de una aplicación desde otra aplicación o herramienta de entorno. La automatización, antes denominada automatización OLE, es un estándar de la industria y una función del Modelo de objetos componentes (COM).). -TRANSPOSE = TRANSPONER ## Devuelve la transposición de una matriz. -VLOOKUP = BUSCARV ## Busca en la primera columna de una matriz y se mueve en horizontal por la fila para devolver el valor de una celda. - - -## -## Math and trigonometry functions Funciones matemáticas y trigonométricas -## -ABS = ABS ## Devuelve el valor absoluto de un número. -ACOS = ACOS ## Devuelve el arcocoseno de un número. -ACOSH = ACOSH ## Devuelve el coseno hiperbólico inverso de un número. -ASIN = ASENO ## Devuelve el arcoseno de un número. -ASINH = ASENOH ## Devuelve el seno hiperbólico inverso de un número. -ATAN = ATAN ## Devuelve la arcotangente de un número. -ATAN2 = ATAN2 ## Devuelve la arcotangente de las coordenadas "x" e "y". -ATANH = ATANH ## Devuelve la tangente hiperbólica inversa de un número. -CEILING = MULTIPLO.SUPERIOR ## Redondea un número al entero más próximo o al múltiplo significativo más cercano. -COMBIN = COMBINAT ## Devuelve el número de combinaciones para un número determinado de objetos. -COS = COS ## Devuelve el coseno de un número. -COSH = COSH ## Devuelve el coseno hiperbólico de un número. -DEGREES = GRADOS ## Convierte radianes en grados. -EVEN = REDONDEA.PAR ## Redondea un número hasta el entero par más próximo. -EXP = EXP ## Devuelve e elevado a la potencia de un número dado. -FACT = FACT ## Devuelve el factorial de un número. -FACTDOUBLE = FACT.DOBLE ## Devuelve el factorial doble de un número. -FLOOR = MULTIPLO.INFERIOR ## Redondea un número hacia abajo, en dirección hacia cero. -GCD = M.C.D ## Devuelve el máximo común divisor. -INT = ENTERO ## Redondea un número hacia abajo hasta el entero más próximo. -LCM = M.C.M ## Devuelve el mínimo común múltiplo. -LN = LN ## Devuelve el logaritmo natural (neperiano) de un número. -LOG = LOG ## Devuelve el logaritmo de un número en una base especificada. -LOG10 = LOG10 ## Devuelve el logaritmo en base 10 de un número. -MDETERM = MDETERM ## Devuelve la determinante matricial de una matriz. -MINVERSE = MINVERSA ## Devuelve la matriz inversa de una matriz. -MMULT = MMULT ## Devuelve el producto de matriz de dos matrices. -MOD = RESIDUO ## Devuelve el resto de la división. -MROUND = REDOND.MULT ## Devuelve un número redondeado al múltiplo deseado. -MULTINOMIAL = MULTINOMIAL ## Devuelve el polinomio de un conjunto de números. -ODD = REDONDEA.IMPAR ## Redondea un número hacia arriba hasta el entero impar más próximo. -PI = PI ## Devuelve el valor de pi. -POWER = POTENCIA ## Devuelve el resultado de elevar un número a una potencia. -PRODUCT = PRODUCTO ## Multiplica sus argumentos. -QUOTIENT = COCIENTE ## Devuelve la parte entera de una división. -RADIANS = RADIANES ## Convierte grados en radianes. -RAND = ALEATORIO ## Devuelve un número aleatorio entre 0 y 1. -RANDBETWEEN = ALEATORIO.ENTRE ## Devuelve un número aleatorio entre los números que especifique. -ROMAN = NUMERO.ROMANO ## Convierte un número arábigo en número romano, con formato de texto. -ROUND = REDONDEAR ## Redondea un número al número de decimales especificado. -ROUNDDOWN = REDONDEAR.MENOS ## Redondea un número hacia abajo, en dirección hacia cero. -ROUNDUP = REDONDEAR.MAS ## Redondea un número hacia arriba, en dirección contraria a cero. -SERIESSUM = SUMA.SERIES ## Devuelve la suma de una serie de potencias en función de la fórmula. -SIGN = SIGNO ## Devuelve el signo de un número. -SIN = SENO ## Devuelve el seno de un ángulo determinado. -SINH = SENOH ## Devuelve el seno hiperbólico de un número. -SQRT = RAIZ ## Devuelve la raíz cuadrada positiva de un número. -SQRTPI = RAIZ2PI ## Devuelve la raíz cuadrada de un número multiplicado por PI (número * pi). -SUBTOTAL = SUBTOTALES ## Devuelve un subtotal en una lista o base de datos. -SUM = SUMA ## Suma sus argumentos. -SUMIF = SUMAR.SI ## Suma las celdas especificadas que cumplen unos criterios determinados. -SUMIFS = SUMAR.SI.CONJUNTO ## Suma las celdas de un rango que cumplen varios criterios. -SUMPRODUCT = SUMAPRODUCTO ## Devuelve la suma de los productos de los correspondientes componentes de matriz. -SUMSQ = SUMA.CUADRADOS ## Devuelve la suma de los cuadrados de los argumentos. -SUMX2MY2 = SUMAX2MENOSY2 ## Devuelve la suma de la diferencia de los cuadrados de los valores correspondientes de dos matrices. -SUMX2PY2 = SUMAX2MASY2 ## Devuelve la suma de la suma de los cuadrados de los valores correspondientes de dos matrices. -SUMXMY2 = SUMAXMENOSY2 ## Devuelve la suma de los cuadrados de las diferencias de los valores correspondientes de dos matrices. -TAN = TAN ## Devuelve la tangente de un número. -TANH = TANH ## Devuelve la tangente hiperbólica de un número. -TRUNC = TRUNCAR ## Trunca un número a un entero. - - -## -## Statistical functions Funciones estadísticas -## -AVEDEV = DESVPROM ## Devuelve el promedio de las desviaciones absolutas de la media de los puntos de datos. -AVERAGE = PROMEDIO ## Devuelve el promedio de sus argumentos. -AVERAGEA = PROMEDIOA ## Devuelve el promedio de sus argumentos, incluidos números, texto y valores lógicos. -AVERAGEIF = PROMEDIO.SI ## Devuelve el promedio (media aritmética) de todas las celdas de un rango que cumplen unos criterios determinados. -AVERAGEIFS = PROMEDIO.SI.CONJUNTO ## Devuelve el promedio (media aritmética) de todas las celdas que cumplen múltiples criterios. -BETADIST = DISTR.BETA ## Devuelve la función de distribución beta acumulativa. -BETAINV = DISTR.BETA.INV ## Devuelve la función inversa de la función de distribución acumulativa de una distribución beta especificada. -BINOMDIST = DISTR.BINOM ## Devuelve la probabilidad de una variable aleatoria discreta siguiendo una distribución binomial. -CHIDIST = DISTR.CHI ## Devuelve la probabilidad de una variable aleatoria continua siguiendo una distribución chi cuadrado de una sola cola. -CHIINV = PRUEBA.CHI.INV ## Devuelve la función inversa de la probabilidad de una variable aleatoria continua siguiendo una distribución chi cuadrado de una sola cola. -CHITEST = PRUEBA.CHI ## Devuelve la prueba de independencia. -CONFIDENCE = INTERVALO.CONFIANZA ## Devuelve el intervalo de confianza de la media de una población. -CORREL = COEF.DE.CORREL ## Devuelve el coeficiente de correlación entre dos conjuntos de datos. -COUNT = CONTAR ## Cuenta cuántos números hay en la lista de argumentos. -COUNTA = CONTARA ## Cuenta cuántos valores hay en la lista de argumentos. -COUNTBLANK = CONTAR.BLANCO ## Cuenta el número de celdas en blanco de un rango. -COUNTIF = CONTAR.SI ## Cuenta el número de celdas, dentro del rango, que cumplen el criterio especificado. -COUNTIFS = CONTAR.SI.CONJUNTO ## Cuenta el número de celdas, dentro del rango, que cumplen varios criterios. -COVAR = COVAR ## Devuelve la covarianza, que es el promedio de los productos de las desviaciones para cada pareja de puntos de datos. -CRITBINOM = BINOM.CRIT ## Devuelve el menor valor cuya distribución binomial acumulativa es menor o igual a un valor de criterio. -DEVSQ = DESVIA2 ## Devuelve la suma de los cuadrados de las desviaciones. -EXPONDIST = DISTR.EXP ## Devuelve la distribución exponencial. -FDIST = DISTR.F ## Devuelve la distribución de probabilidad F. -FINV = DISTR.F.INV ## Devuelve la función inversa de la distribución de probabilidad F. -FISHER = FISHER ## Devuelve la transformación Fisher. -FISHERINV = PRUEBA.FISHER.INV ## Devuelve la función inversa de la transformación Fisher. -FORECAST = PRONOSTICO ## Devuelve un valor en una tendencia lineal. -FREQUENCY = FRECUENCIA ## Devuelve una distribución de frecuencia como una matriz vertical. -FTEST = PRUEBA.F ## Devuelve el resultado de una prueba F. -GAMMADIST = DISTR.GAMMA ## Devuelve la distribución gamma. -GAMMAINV = DISTR.GAMMA.INV ## Devuelve la función inversa de la distribución gamma acumulativa. -GAMMALN = GAMMA.LN ## Devuelve el logaritmo natural de la función gamma, G(x). -GEOMEAN = MEDIA.GEOM ## Devuelve la media geométrica. -GROWTH = CRECIMIENTO ## Devuelve valores en una tendencia exponencial. -HARMEAN = MEDIA.ARMO ## Devuelve la media armónica. -HYPGEOMDIST = DISTR.HIPERGEOM ## Devuelve la distribución hipergeométrica. -INTERCEPT = INTERSECCION.EJE ## Devuelve la intersección de la línea de regresión lineal. -KURT = CURTOSIS ## Devuelve la curtosis de un conjunto de datos. -LARGE = K.ESIMO.MAYOR ## Devuelve el k-ésimo mayor valor de un conjunto de datos. -LINEST = ESTIMACION.LINEAL ## Devuelve los parámetros de una tendencia lineal. -LOGEST = ESTIMACION.LOGARITMICA ## Devuelve los parámetros de una tendencia exponencial. -LOGINV = DISTR.LOG.INV ## Devuelve la función inversa de la distribución logarítmico-normal. -LOGNORMDIST = DISTR.LOG.NORM ## Devuelve la distribución logarítmico-normal acumulativa. -MAX = MAX ## Devuelve el valor máximo de una lista de argumentos. -MAXA = MAXA ## Devuelve el valor máximo de una lista de argumentos, incluidos números, texto y valores lógicos. -MEDIAN = MEDIANA ## Devuelve la mediana de los números dados. -MIN = MIN ## Devuelve el valor mínimo de una lista de argumentos. -MINA = MINA ## Devuelve el valor mínimo de una lista de argumentos, incluidos números, texto y valores lógicos. -MODE = MODA ## Devuelve el valor más común de un conjunto de datos. -NEGBINOMDIST = NEGBINOMDIST ## Devuelve la distribución binomial negativa. -NORMDIST = DISTR.NORM ## Devuelve la distribución normal acumulativa. -NORMINV = DISTR.NORM.INV ## Devuelve la función inversa de la distribución normal acumulativa. -NORMSDIST = DISTR.NORM.ESTAND ## Devuelve la distribución normal estándar acumulativa. -NORMSINV = DISTR.NORM.ESTAND.INV ## Devuelve la función inversa de la distribución normal estándar acumulativa. -PEARSON = PEARSON ## Devuelve el coeficiente de momento de correlación de producto Pearson. -PERCENTILE = PERCENTIL ## Devuelve el k-ésimo percentil de los valores de un rango. -PERCENTRANK = RANGO.PERCENTIL ## Devuelve el rango porcentual de un valor de un conjunto de datos. -PERMUT = PERMUTACIONES ## Devuelve el número de permutaciones de un número determinado de objetos. -POISSON = POISSON ## Devuelve la distribución de Poisson. -PROB = PROBABILIDAD ## Devuelve la probabilidad de que los valores de un rango se encuentren entre dos límites. -QUARTILE = CUARTIL ## Devuelve el cuartil de un conjunto de datos. -RANK = JERARQUIA ## Devuelve la jerarquía de un número en una lista de números. -RSQ = COEFICIENTE.R2 ## Devuelve el cuadrado del coeficiente de momento de correlación de producto Pearson. -SKEW = COEFICIENTE.ASIMETRIA ## Devuelve la asimetría de una distribución. -SLOPE = PENDIENTE ## Devuelve la pendiente de la línea de regresión lineal. -SMALL = K.ESIMO.MENOR ## Devuelve el k-ésimo menor valor de un conjunto de datos. -STANDARDIZE = NORMALIZACION ## Devuelve un valor normalizado. -STDEV = DESVEST ## Calcula la desviación estándar a partir de una muestra. -STDEVA = DESVESTA ## Calcula la desviación estándar a partir de una muestra, incluidos números, texto y valores lógicos. -STDEVP = DESVESTP ## Calcula la desviación estándar en función de toda la población. -STDEVPA = DESVESTPA ## Calcula la desviación estándar en función de toda la población, incluidos números, texto y valores lógicos. -STEYX = ERROR.TIPICO.XY ## Devuelve el error estándar del valor de "y" previsto para cada "x" de la regresión. -TDIST = DISTR.T ## Devuelve la distribución de t de Student. -TINV = DISTR.T.INV ## Devuelve la función inversa de la distribución de t de Student. -TREND = TENDENCIA ## Devuelve valores en una tendencia lineal. -TRIMMEAN = MEDIA.ACOTADA ## Devuelve la media del interior de un conjunto de datos. -TTEST = PRUEBA.T ## Devuelve la probabilidad asociada a una prueba t de Student. -VAR = VAR ## Calcula la varianza en función de una muestra. -VARA = VARA ## Calcula la varianza en función de una muestra, incluidos números, texto y valores lógicos. -VARP = VARP ## Calcula la varianza en función de toda la población. -VARPA = VARPA ## Calcula la varianza en función de toda la población, incluidos números, texto y valores lógicos. -WEIBULL = DIST.WEIBULL ## Devuelve la distribución de Weibull. -ZTEST = PRUEBA.Z ## Devuelve el valor de una probabilidad de una cola de una prueba z. - - -## -## Text functions Funciones de texto -## -ASC = ASC ## Convierte las letras inglesas o katakana de ancho completo (de dos bytes) dentro de una cadena de caracteres en caracteres de ancho medio (de un byte). -BAHTTEXT = TEXTOBAHT ## Convierte un número en texto, con el formato de moneda ß (Baht). -CHAR = CARACTER ## Devuelve el carácter especificado por el número de código. -CLEAN = LIMPIAR ## Quita del texto todos los caracteres no imprimibles. -CODE = CODIGO ## Devuelve un código numérico del primer carácter de una cadena de texto. -CONCATENATE = CONCATENAR ## Concatena varios elementos de texto en uno solo. -DOLLAR = MONEDA ## Convierte un número en texto, con el formato de moneda $ (dólar). -EXACT = IGUAL ## Comprueba si dos valores de texto son idénticos. -FIND = ENCONTRAR ## Busca un valor de texto dentro de otro (distingue mayúsculas de minúsculas). -FINDB = ENCONTRARB ## Busca un valor de texto dentro de otro (distingue mayúsculas de minúsculas). -FIXED = DECIMAL ## Da formato a un número como texto con un número fijo de decimales. -JIS = JIS ## Convierte las letras inglesas o katakana de ancho medio (de un byte) dentro de una cadena de caracteres en caracteres de ancho completo (de dos bytes). -LEFT = IZQUIERDA ## Devuelve los caracteres del lado izquierdo de un valor de texto. -LEFTB = IZQUIERDAB ## Devuelve los caracteres del lado izquierdo de un valor de texto. -LEN = LARGO ## Devuelve el número de caracteres de una cadena de texto. -LENB = LARGOB ## Devuelve el número de caracteres de una cadena de texto. -LOWER = MINUSC ## Pone el texto en minúsculas. -MID = EXTRAE ## Devuelve un número específico de caracteres de una cadena de texto que comienza en la posición que se especifique. -MIDB = EXTRAEB ## Devuelve un número específico de caracteres de una cadena de texto que comienza en la posición que se especifique. -PHONETIC = FONETICO ## Extrae los caracteres fonéticos (furigana) de una cadena de texto. -PROPER = NOMPROPIO ## Pone en mayúscula la primera letra de cada palabra de un valor de texto. -REPLACE = REEMPLAZAR ## Reemplaza caracteres de texto. -REPLACEB = REEMPLAZARB ## Reemplaza caracteres de texto. -REPT = REPETIR ## Repite el texto un número determinado de veces. -RIGHT = DERECHA ## Devuelve los caracteres del lado derecho de un valor de texto. -RIGHTB = DERECHAB ## Devuelve los caracteres del lado derecho de un valor de texto. -SEARCH = HALLAR ## Busca un valor de texto dentro de otro (no distingue mayúsculas de minúsculas). -SEARCHB = HALLARB ## Busca un valor de texto dentro de otro (no distingue mayúsculas de minúsculas). -SUBSTITUTE = SUSTITUIR ## Sustituye texto nuevo por texto antiguo en una cadena de texto. -T = T ## Convierte sus argumentos a texto. -TEXT = TEXTO ## Da formato a un número y lo convierte en texto. -TRIM = ESPACIOS ## Quita los espacios del texto. -UPPER = MAYUSC ## Pone el texto en mayúsculas. -VALUE = VALOR ## Convierte un argumento de texto en un número. diff --git a/Utils/PHPExcel/locale/fi/config b/Utils/PHPExcel/locale/fi/config deleted file mode 100644 index 2691b0f..0000000 --- a/Utils/PHPExcel/locale/fi/config +++ /dev/null @@ -1,49 +0,0 @@ -## -## PHPExcel -## - -## Copyright (c) 2006 - 2013 PHPExcel -## -## This library is free software; you can redistribute it and/or -## modify it under the terms of the GNU Lesser General Public -## License as published by the Free Software Foundation; either -## version 2.1 of the License, or (at your option) any later version. -## -## This library is distributed in the hope that it will be useful, -## but WITHOUT ANY WARRANTY; without even the implied warranty of -## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -## Lesser General Public License for more details. -## -## You should have received a copy of the GNU Lesser General Public -## License along with this library; if not, write to the Free Software -## Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA -## -## @category PHPExcel -## @package PHPExcel_Settings -## @copyright Copyright (c) 2006 - 2013 PHPExcel (http://www.codeplex.com/PHPExcel) -## @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL -## @version ##VERSION##, ##DATE## -## -## - - -ArgumentSeparator = ; - - -## -## (For future use) -## -currencySymbol = $ # Symbol not known, should it be a € (Euro)? - - -## -## Excel Error Codes (For future use) - -## -NULL = #TYHJÄ! -DIV0 = #JAKO/0! -VALUE = #ARVO! -REF = #VIITTAUS! -NAME = #NIMI? -NUM = #LUKU! -NA = #PUUTTUU diff --git a/Utils/PHPExcel/locale/fi/functions b/Utils/PHPExcel/locale/fi/functions deleted file mode 100644 index 3166e34..0000000 --- a/Utils/PHPExcel/locale/fi/functions +++ /dev/null @@ -1,439 +0,0 @@ -## -## PHPExcel -## - -## Copyright (c) 2006 - 2013 PHPExcel -## -## This library is free software; you can redistribute it and/or -## modify it under the terms of the GNU Lesser General Public -## License as published by the Free Software Foundation; either -## version 2.1 of the License, or (at your option) any later version. -## -## This library is distributed in the hope that it will be useful, -## but WITHOUT ANY WARRANTY; without even the implied warranty of -## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -## Lesser General Public License for more details. -## -## You should have received a copy of the GNU Lesser General Public -## License along with this library; if not, write to the Free Software -## Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA -## -## @category PHPExcel -## @package PHPExcel_Calculation -## @copyright Copyright (c) 2006 - 2013 PHPExcel (http://www.codeplex.com/PHPExcel) -## @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL -## @version ##VERSION##, ##DATE## -## -## Data in this file derived from http://www.piuha.fi/excel-function-name-translation/ -## -## - - -## -## Add-in and Automation functions Apuohjelma- ja automaatiofunktiot -## -GETPIVOTDATA = NOUDA.PIVOT.TIEDOT ## Palauttaa pivot-taulukkoraporttiin tallennettuja tietoja. - - -## -## Cube functions Kuutiofunktiot -## -CUBEKPIMEMBER = KUUTIOKPIJÄSEN ## Palauttaa suorituskykyilmaisimen (KPI) nimen, ominaisuuden sekä mitan ja näyttää nimen sekä ominaisuuden solussa. KPI on mitattavissa oleva suure, kuten kuukauden bruttotuotto tai vuosineljänneksen työntekijäkohtainen liikevaihto, joiden avulla tarkkaillaan organisaation suorituskykyä. -CUBEMEMBER = KUUTIONJÄSEN ## Palauttaa kuutiohierarkian jäsenen tai monikon. Tällä funktiolla voit tarkistaa, että jäsen tai monikko on olemassa kuutiossa. -CUBEMEMBERPROPERTY = KUUTIONJÄSENENOMINAISUUS ## Palauttaa kuution jäsenominaisuuden arvon. Tällä funktiolla voit tarkistaa, että nimi on olemassa kuutiossa, ja palauttaa tämän jäsenen määritetyn ominaisuuden. -CUBERANKEDMEMBER = KUUTIONLUOKITELTUJÄSEN ## Palauttaa joukon n:nnen jäsenen. Tällä funktiolla voit palauttaa joukosta elementtejä, kuten parhaan myyjän tai 10 parasta opiskelijaa. -CUBESET = KUUTIOJOUKKO ## Määrittää lasketun jäsen- tai monikkojoukon lähettämällä joukon lausekkeita palvelimessa olevalle kuutiolle. Palvelin luo joukon ja palauttaa sen Microsoft Office Excelille. -CUBESETCOUNT = KUUTIOJOUKKOJENMÄÄRÄ ## Palauttaa joukon kohteiden määrän. -CUBEVALUE = KUUTIONARVO ## Palauttaa koostetun arvon kuutiosta. - - -## -## Database functions Tietokantafunktiot -## -DAVERAGE = TKESKIARVO ## Palauttaa valittujen tietokantamerkintöjen keskiarvon. -DCOUNT = TLASKE ## Laskee tietokannan lukuja sisältävien solujen määrän. -DCOUNTA = TLASKEA ## Laskee tietokannan tietoja sisältävien solujen määrän. -DGET = TNOUDA ## Hakee määritettyjä ehtoja vastaavan tietueen tietokannasta. -DMAX = TMAKS ## Palauttaa suurimman arvon tietokannasta valittujen arvojen joukosta. -DMIN = TMIN ## Palauttaa pienimmän arvon tietokannasta valittujen arvojen joukosta. -DPRODUCT = TTULO ## Kertoo määritetyn ehdon täyttävien tietokannan tietueiden tietyssä kentässä olevat arvot. -DSTDEV = TKESKIHAJONTA ## Laskee keskihajonnan tietokannasta valituista arvoista muodostuvan otoksen perusteella. -DSTDEVP = TKESKIHAJONTAP ## Laskee keskihajonnan tietokannasta valittujen arvojen koko populaation perusteella. -DSUM = TSUMMA ## Lisää luvut määritetyn ehdon täyttävien tietokannan tietueiden kenttäsarakkeeseen. -DVAR = TVARIANSSI ## Laskee varianssin tietokannasta valittujen arvojen otoksen perusteella. -DVARP = TVARIANSSIP ## Laskee varianssin tietokannasta valittujen arvojen koko populaation perusteella. - - -## -## Date and time functions Päivämäärä- ja aikafunktiot -## -DATE = PÄIVÄYS ## Palauttaa annetun päivämäärän järjestysluvun. -DATEVALUE = PÄIVÄYSARVO ## Muuntaa tekstimuodossa olevan päivämäärän järjestysluvuksi. -DAY = PÄIVÄ ## Muuntaa järjestysluvun kuukauden päiväksi. -DAYS360 = PÄIVÄT360 ## Laskee kahden päivämäärän välisten päivien määrän käyttäen perustana 360-päiväistä vuotta. -EDATE = PÄIVÄ.KUUKAUSI ## Palauttaa järjestyslukuna päivämäärän, joka poikkeaa aloituspäivän päivämäärästä annetun kuukausimäärän verran joko eteen- tai taaksepäin. -EOMONTH = KUUKAUSI.LOPPU ## Palauttaa järjestyslukuna sen kuukauden viimeisen päivämäärän, joka poikkeaa annetun kuukausimäärän verran eteen- tai taaksepäin. -HOUR = TUNNIT ## Muuntaa järjestysluvun tunneiksi. -MINUTE = MINUUTIT ## Muuntaa järjestysluvun minuuteiksi. -MONTH = KUUKAUSI ## Muuntaa järjestysluvun kuukausiksi. -NETWORKDAYS = TYÖPÄIVÄT ## Palauttaa kahden päivämäärän välissä olevien täysien työpäivien määrän. -NOW = NYT ## Palauttaa kuluvan päivämäärän ja ajan järjestysnumeron. -SECOND = SEKUNNIT ## Muuntaa järjestysluvun sekunneiksi. -TIME = AIKA ## Palauttaa annetun kellonajan järjestysluvun. -TIMEVALUE = AIKA_ARVO ## Muuntaa tekstimuodossa olevan kellonajan järjestysluvuksi. -TODAY = TÄMÄ.PÄIVÄ ## Palauttaa kuluvan päivän päivämäärän järjestysluvun. -WEEKDAY = VIIKONPÄIVÄ ## Muuntaa järjestysluvun viikonpäiväksi. -WEEKNUM = VIIKKO.NRO ## Muuntaa järjestysluvun luvuksi, joka ilmaisee viikon järjestysluvun vuoden alusta laskettuna. -WORKDAY = TYÖPÄIVÄ ## Palauttaa järjestysluvun päivämäärälle, joka sijaitsee annettujen työpäivien verran eteen tai taaksepäin. -YEAR = VUOSI ## Muuntaa järjestysluvun vuosiksi. -YEARFRAC = VUOSI.OSA ## Palauttaa määritettyjen päivämäärien (aloituspäivä ja lopetuspäivä) välisen osan vuodesta. - - -## -## Engineering functions Tekniset funktiot -## -BESSELI = BESSELI ## Palauttaa muunnetun Bessel-funktion In(x). -BESSELJ = BESSELJ ## Palauttaa Bessel-funktion Jn(x). -BESSELK = BESSELK ## Palauttaa muunnetun Bessel-funktion Kn(x). -BESSELY = BESSELY ## Palauttaa Bessel-funktion Yn(x). -BIN2DEC = BINDES ## Muuntaa binaariluvun desimaaliluvuksi. -BIN2HEX = BINHEKSA ## Muuntaa binaariluvun heksadesimaaliluvuksi. -BIN2OCT = BINOKT ## Muuntaa binaariluvun oktaaliluvuksi. -COMPLEX = KOMPLEKSI ## Muuntaa reaali- ja imaginaariosien kertoimet kompleksiluvuksi. -CONVERT = MUUNNA ## Muuntaa luvun toisen mittajärjestelmän mukaiseksi. -DEC2BIN = DESBIN ## Muuntaa desimaaliluvun binaariluvuksi. -DEC2HEX = DESHEKSA ## Muuntaa kymmenjärjestelmän luvun heksadesimaaliluvuksi. -DEC2OCT = DESOKT ## Muuntaa kymmenjärjestelmän luvun oktaaliluvuksi. -DELTA = SAMA.ARVO ## Tarkistaa, ovatko kaksi arvoa yhtä suuria. -ERF = VIRHEFUNKTIO ## Palauttaa virhefunktion. -ERFC = VIRHEFUNKTIO.KOMPLEMENTTI ## Palauttaa komplementtivirhefunktion. -GESTEP = RAJA ## Testaa, onko luku suurempi kuin kynnysarvo. -HEX2BIN = HEKSABIN ## Muuntaa heksadesimaaliluvun binaariluvuksi. -HEX2DEC = HEKSADES ## Muuntaa heksadesimaaliluvun desimaaliluvuksi. -HEX2OCT = HEKSAOKT ## Muuntaa heksadesimaaliluvun oktaaliluvuksi. -IMABS = KOMPLEKSI.ITSEISARVO ## Palauttaa kompleksiluvun itseisarvon (moduluksen). -IMAGINARY = KOMPLEKSI.IMAG ## Palauttaa kompleksiluvun imaginaariosan kertoimen. -IMARGUMENT = KOMPLEKSI.ARG ## Palauttaa theeta-argumentin, joka on radiaaneina annettu kulma. -IMCONJUGATE = KOMPLEKSI.KONJ ## Palauttaa kompleksiluvun konjugaattiluvun. -IMCOS = KOMPLEKSI.COS ## Palauttaa kompleksiluvun kosinin. -IMDIV = KOMPLEKSI.OSAM ## Palauttaa kahden kompleksiluvun osamäärän. -IMEXP = KOMPLEKSI.EKSP ## Palauttaa kompleksiluvun eksponentin. -IMLN = KOMPLEKSI.LN ## Palauttaa kompleksiluvun luonnollisen logaritmin. -IMLOG10 = KOMPLEKSI.LOG10 ## Palauttaa kompleksiluvun kymmenkantaisen logaritmin. -IMLOG2 = KOMPLEKSI.LOG2 ## Palauttaa kompleksiluvun kaksikantaisen logaritmin. -IMPOWER = KOMPLEKSI.POT ## Palauttaa kokonaislukupotenssiin korotetun kompleksiluvun. -IMPRODUCT = KOMPLEKSI.TULO ## Palauttaa kompleksilukujen tulon. -IMREAL = KOMPLEKSI.REAALI ## Palauttaa kompleksiluvun reaaliosan kertoimen. -IMSIN = KOMPLEKSI.SIN ## Palauttaa kompleksiluvun sinin. -IMSQRT = KOMPLEKSI.NELIÖJ ## Palauttaa kompleksiluvun neliöjuuren. -IMSUB = KOMPLEKSI.EROTUS ## Palauttaa kahden kompleksiluvun erotuksen. -IMSUM = KOMPLEKSI.SUM ## Palauttaa kompleksilukujen summan. -OCT2BIN = OKTBIN ## Muuntaa oktaaliluvun binaariluvuksi. -OCT2DEC = OKTDES ## Muuntaa oktaaliluvun desimaaliluvuksi. -OCT2HEX = OKTHEKSA ## Muuntaa oktaaliluvun heksadesimaaliluvuksi. - - -## -## Financial functions Rahoitusfunktiot -## -ACCRINT = KERTYNYT.KORKO ## Laskee arvopaperille kertyneen koron, kun korko kertyy säännöllisin väliajoin. -ACCRINTM = KERTYNYT.KORKO.LOPUSSA ## Laskee arvopaperille kertyneen koron, kun korko maksetaan eräpäivänä. -AMORDEGRC = AMORDEGRC ## Laskee kunkin laskentakauden poiston poistokerrointa käyttämällä. -AMORLINC = AMORLINC ## Palauttaa kunkin laskentakauden poiston. -COUPDAYBS = KORKOPÄIVÄT.ALUSTA ## Palauttaa koronmaksukauden aloituspäivän ja tilityspäivän välisen ajanjakson päivien määrän. -COUPDAYS = KORKOPÄIVÄT ## Palauttaa päivien määrän koronmaksukaudelta, johon tilityspäivä kuuluu. -COUPDAYSNC = KORKOPÄIVÄT.SEURAAVA ## Palauttaa tilityspäivän ja seuraavan koronmaksupäivän välisen ajanjakson päivien määrän. -COUPNCD = KORKOMAKSU.SEURAAVA ## Palauttaa tilityspäivän jälkeisen seuraavan koronmaksupäivän. -COUPNUM = KORKOPÄIVÄJAKSOT ## Palauttaa arvopaperin ostopäivän ja erääntymispäivän välisten koronmaksupäivien määrän. -COUPPCD = KORKOPÄIVÄ.EDELLINEN ## Palauttaa tilityspäivää edeltävän koronmaksupäivän. -CUMIPMT = MAKSETTU.KORKO ## Palauttaa kahden jakson välisenä aikana kertyneen koron. -CUMPRINC = MAKSETTU.LYHENNYS ## Palauttaa lainalle kahden jakson välisenä aikana kertyneen lyhennyksen. -DB = DB ## Palauttaa kauden kirjanpidollisen poiston amerikkalaisen DB-menetelmän (Fixed-declining balance) mukaan. -DDB = DDB ## Palauttaa kauden kirjanpidollisen poiston amerikkalaisen DDB-menetelmän (Double-Declining Balance) tai jonkin muun määrittämäsi menetelmän mukaan. -DISC = DISKONTTOKORKO ## Palauttaa arvopaperin diskonttokoron. -DOLLARDE = VALUUTTA.DES ## Muuntaa murtolukuna ilmoitetun valuuttamäärän desimaaliluvuksi. -DOLLARFR = VALUUTTA.MURTO ## Muuntaa desimaalilukuna ilmaistun valuuttamäärän murtoluvuksi. -DURATION = KESTO ## Palauttaa keston arvopaperille, jonka koronmaksu tapahtuu säännöllisesti. -EFFECT = KORKO.EFEKT ## Palauttaa todellisen vuosikoron. -FV = TULEVA.ARVO ## Palauttaa sijoituksen tulevan arvon. -FVSCHEDULE = TULEVA.ARVO.ERIKORKO ## Palauttaa pääoman tulevan arvon, kun pääomalle on kertynyt korkoa vaihtelevasti. -INTRATE = KORKO.ARVOPAPERI ## Palauttaa arvopaperin korkokannan täysin sijoitetulle arvopaperille. -IPMT = IPMT ## Laskee sijoitukselle tai lainalle tiettynä ajanjaksona kertyvän koron. -IRR = SISÄINEN.KORKO ## Laskee sisäisen korkokannan kassavirrasta muodostuvalle sarjalle. -ISPMT = ONMAKSU ## Laskee sijoituksen maksetun koron tietyllä jaksolla. -MDURATION = KESTO.MUUNN ## Palauttaa muunnetun Macauley-keston arvopaperille, jonka oletettu nimellisarvo on 100 euroa. -MIRR = MSISÄINEN ## Palauttaa sisäisen korkokannan, kun positiivisten ja negatiivisten kassavirtojen rahoituskorko on erilainen. -NOMINAL = KORKO.VUOSI ## Palauttaa vuosittaisen nimelliskoron. -NPER = NJAKSO ## Palauttaa sijoituksen jaksojen määrän. -NPV = NNA ## Palauttaa sijoituksen nykyarvon toistuvista kassavirroista muodostuvan sarjan ja diskonttokoron perusteella. -ODDFPRICE = PARITON.ENS.NIMELLISARVO ## Palauttaa arvopaperin hinnan tilanteessa, jossa ensimmäinen jakso on pariton. -ODDFYIELD = PARITON.ENS.TUOTTO ## Palauttaa arvopaperin tuoton tilanteessa, jossa ensimmäinen jakso on pariton. -ODDLPRICE = PARITON.VIIM.NIMELLISARVO ## Palauttaa arvopaperin hinnan tilanteessa, jossa viimeinen jakso on pariton. -ODDLYIELD = PARITON.VIIM.TUOTTO ## Palauttaa arvopaperin tuoton tilanteessa, jossa viimeinen jakso on pariton. -PMT = MAKSU ## Palauttaa annuiteetin kausittaisen maksuerän. -PPMT = PPMT ## Laskee sijoitukselle tai lainalle tiettynä ajanjaksona maksettavan lyhennyksen. -PRICE = HINTA ## Palauttaa hinnan 100 euron nimellisarvoa kohden arvopaperille, jonka korko maksetaan säännöllisin väliajoin. -PRICEDISC = HINTA.DISK ## Palauttaa diskontatun arvopaperin hinnan 100 euron nimellisarvoa kohden. -PRICEMAT = HINTA.LUNASTUS ## Palauttaa hinnan 100 euron nimellisarvoa kohden arvopaperille, jonka korko maksetaan erääntymispäivänä. -PV = NA ## Palauttaa sijoituksen nykyarvon. -RATE = KORKO ## Palauttaa annuiteetin kausittaisen korkokannan. -RECEIVED = SAATU.HINTA ## Palauttaa arvopaperin tuoton erääntymispäivänä kokonaan maksetulle sijoitukselle. -SLN = STP ## Palauttaa sijoituksen tasapoiston yhdeltä jaksolta. -SYD = VUOSIPOISTO ## Palauttaa sijoituksen vuosipoiston annettuna kautena amerikkalaisen SYD-menetelmän (Sum-of-Year's Digits) avulla. -TBILLEQ = OBLIG.TUOTTOPROS ## Palauttaa valtion obligaation tuoton vastaavana joukkovelkakirjan tuottona. -TBILLPRICE = OBLIG.HINTA ## Palauttaa obligaation hinnan 100 euron nimellisarvoa kohden. -TBILLYIELD = OBLIG.TUOTTO ## Palauttaa obligaation tuoton. -VDB = VDB ## Palauttaa annetun kauden tai kauden osan kirjanpidollisen poiston amerikkalaisen DB-menetelmän (Fixed-declining balance) mukaan. -XIRR = SISÄINEN.KORKO.JAKSOTON ## Palauttaa sisäisen korkokannan kassavirtojen sarjoille, jotka eivät välttämättä ole säännöllisiä. -XNPV = NNA.JAKSOTON ## Palauttaa nettonykyarvon kassavirtasarjalle, joka ei välttämättä ole kausittainen. -YIELD = TUOTTO ## Palauttaa tuoton arvopaperille, jonka korko maksetaan säännöllisin väliajoin. -YIELDDISC = TUOTTO.DISK ## Palauttaa diskontatun arvopaperin, kuten obligaation, vuosittaisen tuoton. -YIELDMAT = TUOTTO.ERÄP ## Palauttaa erääntymispäivänään korkoa tuottavan arvopaperin vuosittaisen tuoton. - - -## -## Information functions Erikoisfunktiot -## -CELL = SOLU ## Palauttaa tietoja solun muotoilusta, sijainnista ja sisällöstä. -ERROR.TYPE = VIRHEEN.LAJI ## Palauttaa virhetyyppiä vastaavan luvun. -INFO = KUVAUS ## Palauttaa tietoja nykyisestä käyttöympäristöstä. -ISBLANK = ONTYHJÄ ## Palauttaa arvon TOSI, jos arvo on tyhjä. -ISERR = ONVIRH ## Palauttaa arvon TOSI, jos arvo on mikä tahansa virhearvo paitsi arvo #PUUTTUU!. -ISERROR = ONVIRHE ## Palauttaa arvon TOSI, jos arvo on mikä tahansa virhearvo. -ISEVEN = ONPARILLINEN ## Palauttaa arvon TOSI, jos arvo on parillinen. -ISLOGICAL = ONTOTUUS ## Palauttaa arvon TOSI, jos arvo on mikä tahansa looginen arvo. -ISNA = ONPUUTTUU ## Palauttaa arvon TOSI, jos virhearvo on #PUUTTUU!. -ISNONTEXT = ONEI_TEKSTI ## Palauttaa arvon TOSI, jos arvo ei ole teksti. -ISNUMBER = ONLUKU ## Palauttaa arvon TOSI, jos arvo on luku. -ISODD = ONPARITON ## Palauttaa arvon TOSI, jos arvo on pariton. -ISREF = ONVIITT ## Palauttaa arvon TOSI, jos arvo on viittaus. -ISTEXT = ONTEKSTI ## Palauttaa arvon TOSI, jos arvo on teksti. -N = N ## Palauttaa arvon luvuksi muunnettuna. -NA = PUUTTUU ## Palauttaa virhearvon #PUUTTUU!. -TYPE = TYYPPI ## Palauttaa luvun, joka ilmaisee arvon tietotyypin. - - -## -## Logical functions Loogiset funktiot -## -AND = JA ## Palauttaa arvon TOSI, jos kaikkien argumenttien arvo on TOSI. -FALSE = EPÄTOSI ## Palauttaa totuusarvon EPÄTOSI. -IF = JOS ## Määrittää suoritettavan loogisen testin. -IFERROR = JOSVIRHE ## Palauttaa määrittämäsi arvon, jos kaavan tulos on virhe; muussa tapauksessa palauttaa kaavan tuloksen. -NOT = EI ## Kääntää argumentin loogisen arvon. -OR = TAI ## Palauttaa arvon TOSI, jos minkä tahansa argumentin arvo on TOSI. -TRUE = TOSI ## Palauttaa totuusarvon TOSI. - - -## -## Lookup and reference functions Haku- ja viitefunktiot -## -ADDRESS = OSOITE ## Palauttaa laskentataulukon soluun osoittavan viittauksen tekstinä. -AREAS = ALUEET ## Palauttaa viittauksessa olevien alueiden määrän. -CHOOSE = VALITSE.INDEKSI ## Valitsee arvon arvoluettelosta. -COLUMN = SARAKE ## Palauttaa viittauksen sarakenumeron. -COLUMNS = SARAKKEET ## Palauttaa viittauksessa olevien sarakkeiden määrän. -HLOOKUP = VHAKU ## Suorittaa haun matriisin ylimmältä riviltä ja palauttaa määritetyn solun arvon. -HYPERLINK = HYPERLINKKI ## Luo pikakuvakkeen tai tekstin, joka avaa verkkopalvelimeen, intranetiin tai Internetiin tallennetun tiedoston. -INDEX = INDEKSI ## Valitsee arvon viittauksesta tai matriisista indeksin mukaan. -INDIRECT = EPÄSUORA ## Palauttaa tekstiarvona ilmaistun viittauksen. -LOOKUP = HAKU ## Etsii arvoja vektorista tai matriisista. -MATCH = VASTINE ## Etsii arvoja viittauksesta tai matriisista. -OFFSET = SIIRTYMÄ ## Palauttaa annetun viittauksen siirtymän. -ROW = RIVI ## Palauttaa viittauksen rivinumeron. -ROWS = RIVIT ## Palauttaa viittauksessa olevien rivien määrän. -RTD = RTD ## Noutaa COM-automaatiota (automaatio: Tapa käsitellä sovelluksen objekteja toisesta sovelluksesta tai kehitystyökalusta. Automaatio, jota aiemmin kutsuttiin OLE-automaatioksi, on teollisuusstandardi ja COM-mallin (Component Object Model) ominaisuus.) tukevasta ohjelmasta reaaliaikaisia tietoja. -TRANSPOSE = TRANSPONOI ## Palauttaa matriisin käänteismatriisin. -VLOOKUP = PHAKU ## Suorittaa haun matriisin ensimmäisestä sarakkeesta ja palauttaa rivillä olevan solun arvon. - - -## -## Math and trigonometry functions Matemaattiset ja trigonometriset funktiot -## -ABS = ITSEISARVO ## Palauttaa luvun itseisarvon. -ACOS = ACOS ## Palauttaa luvun arkuskosinin. -ACOSH = ACOSH ## Palauttaa luvun käänteisen hyperbolisen kosinin. -ASIN = ASIN ## Palauttaa luvun arkussinin. -ASINH = ASINH ## Palauttaa luvun käänteisen hyperbolisen sinin. -ATAN = ATAN ## Palauttaa luvun arkustangentin. -ATAN2 = ATAN2 ## Palauttaa arkustangentin x- ja y-koordinaatin perusteella. -ATANH = ATANH ## Palauttaa luvun käänteisen hyperbolisen tangentin. -CEILING = PYÖRISTÄ.KERR.YLÖS ## Pyöristää luvun lähimpään kokonaislukuun tai tarkkuusargumentin lähimpään kerrannaiseen. -COMBIN = KOMBINAATIO ## Palauttaa mahdollisten kombinaatioiden määrän annetulle objektien määrälle. -COS = COS ## Palauttaa luvun kosinin. -COSH = COSH ## Palauttaa luvun hyperbolisen kosinin. -DEGREES = ASTEET ## Muuntaa radiaanit asteiksi. -EVEN = PARILLINEN ## Pyöristää luvun ylöspäin lähimpään parilliseen kokonaislukuun. -EXP = EKSPONENTTI ## Palauttaa e:n korotettuna annetun luvun osoittamaan potenssiin. -FACT = KERTOMA ## Palauttaa luvun kertoman. -FACTDOUBLE = KERTOMA.OSA ## Palauttaa luvun osakertoman. -FLOOR = PYÖRISTÄ.KERR.ALAS ## Pyöristää luvun alaspäin (nollaa kohti). -GCD = SUURIN.YHT.TEKIJÄ ## Palauttaa suurimman yhteisen tekijän. -INT = KOKONAISLUKU ## Pyöristää luvun alaspäin lähimpään kokonaislukuun. -LCM = PIENIN.YHT.JAETTAVA ## Palauttaa pienimmän yhteisen tekijän. -LN = LUONNLOG ## Palauttaa luvun luonnollisen logaritmin. -LOG = LOG ## Laskee luvun logaritmin käyttämällä annettua kantalukua. -LOG10 = LOG10 ## Palauttaa luvun kymmenkantaisen logaritmin. -MDETERM = MDETERM ## Palauttaa matriisin matriisideterminantin. -MINVERSE = MKÄÄNTEINEN ## Palauttaa matriisin käänteismatriisin. -MMULT = MKERRO ## Palauttaa kahden matriisin tulon. -MOD = JAKOJ ## Palauttaa jakolaskun jäännöksen. -MROUND = PYÖRISTÄ.KERR ## Palauttaa luvun pyöristettynä annetun luvun kerrannaiseen. -MULTINOMIAL = MULTINOMI ## Palauttaa lukujoukon multinomin. -ODD = PARITON ## Pyöristää luvun ylöspäin lähimpään parittomaan kokonaislukuun. -PI = PII ## Palauttaa piin arvon. -POWER = POTENSSI ## Palauttaa luvun korotettuna haluttuun potenssiin. -PRODUCT = TULO ## Kertoo annetut argumentit. -QUOTIENT = OSAMÄÄRÄ ## Palauttaa osamäärän kokonaislukuosan. -RADIANS = RADIAANIT ## Muuntaa asteet radiaaneiksi. -RAND = SATUNNAISLUKU ## Palauttaa satunnaisluvun väliltä 0–1. -RANDBETWEEN = SATUNNAISLUKU.VÄLILTÄ ## Palauttaa satunnaisluvun määritettyjen lukujen väliltä. -ROMAN = ROMAN ## Muuntaa arabialaisen numeron tekstimuotoiseksi roomalaiseksi numeroksi. -ROUND = PYÖRISTÄ ## Pyöristää luvun annettuun määrään desimaaleja. -ROUNDDOWN = PYÖRISTÄ.DES.ALAS ## Pyöristää luvun alaspäin (nollaa kohti). -ROUNDUP = PYÖRISTÄ.DES.YLÖS ## Pyöristää luvun ylöspäin (poispäin nollasta). -SERIESSUM = SARJA.SUMMA ## Palauttaa kaavaan perustuvan potenssisarjan arvon. -SIGN = ETUMERKKI ## Palauttaa luvun etumerkin. -SIN = SIN ## Palauttaa annetun kulman sinin. -SINH = SINH ## Palauttaa luvun hyperbolisen sinin. -SQRT = NELIÖJUURI ## Palauttaa positiivisen neliöjuuren. -SQRTPI = NELIÖJUURI.PII ## Palauttaa tulon (luku * pii) neliöjuuren. -SUBTOTAL = VÄLISUMMA ## Palauttaa luettelon tai tietokannan välisumman. -SUM = SUMMA ## Laskee yhteen annetut argumentit. -SUMIF = SUMMA.JOS ## Laskee ehdot täyttävien solujen summan. -SUMIFS = SUMMA.JOS.JOUKKO ## Laskee yhteen solualueen useita ehtoja vastaavat solut. -SUMPRODUCT = TULOJEN.SUMMA ## Palauttaa matriisin toisiaan vastaavien osien tulojen summan. -SUMSQ = NELIÖSUMMA ## Palauttaa argumenttien neliöiden summan. -SUMX2MY2 = NELIÖSUMMIEN.EROTUS ## Palauttaa kahden matriisin toisiaan vastaavien arvojen laskettujen neliösummien erotuksen. -SUMX2PY2 = NELIÖSUMMIEN.SUMMA ## Palauttaa kahden matriisin toisiaan vastaavien arvojen neliösummien summan. -SUMXMY2 = EROTUSTEN.NELIÖSUMMA ## Palauttaa kahden matriisin toisiaan vastaavien arvojen erotusten neliösumman. -TAN = TAN ## Palauttaa luvun tangentin. -TANH = TANH ## Palauttaa luvun hyperbolisen tangentin. -TRUNC = KATKAISE ## Katkaisee luvun kokonaisluvuksi. - - -## -## Statistical functions Tilastolliset funktiot -## -AVEDEV = KESKIPOIKKEAMA ## Palauttaa hajontojen itseisarvojen keskiarvon. -AVERAGE = KESKIARVO ## Palauttaa argumenttien keskiarvon. -AVERAGEA = KESKIARVOA ## Palauttaa argumenttien, mukaan lukien lukujen, tekstin ja loogisten arvojen, keskiarvon. -AVERAGEIF = KESKIARVO.JOS ## Palauttaa alueen niiden solujen keskiarvon (aritmeettisen keskiarvon), jotka täyttävät annetut ehdot. -AVERAGEIFS = KESKIARVO.JOS.JOUKKO ## Palauttaa niiden solujen keskiarvon (aritmeettisen keskiarvon), jotka vastaavat useita ehtoja. -BETADIST = BEETAJAKAUMA ## Palauttaa kumulatiivisen beetajakaumafunktion arvon. -BETAINV = BEETAJAKAUMA.KÄÄNT ## Palauttaa määritetyn beetajakauman käänteisen kumulatiivisen jakaumafunktion arvon. -BINOMDIST = BINOMIJAKAUMA ## Palauttaa yksittäisen termin binomijakaumatodennäköisyyden. -CHIDIST = CHIJAKAUMA ## Palauttaa yksisuuntaisen chi-neliön jakauman todennäköisyyden. -CHIINV = CHIJAKAUMA.KÄÄNT ## Palauttaa yksisuuntaisen chi-neliön jakauman todennäköisyyden käänteisarvon. -CHITEST = CHITESTI ## Palauttaa riippumattomuustestin tuloksen. -CONFIDENCE = LUOTTAMUSVÄLI ## Palauttaa luottamusvälin populaation keskiarvolle. -CORREL = KORRELAATIO ## Palauttaa kahden arvojoukon korrelaatiokertoimen. -COUNT = LASKE ## Laskee argumenttiluettelossa olevien lukujen määrän. -COUNTA = LASKE.A ## Laskee argumenttiluettelossa olevien arvojen määrän. -COUNTBLANK = LASKE.TYHJÄT ## Laskee alueella olevien tyhjien solujen määrän. -COUNTIF = LASKE.JOS ## Laskee alueella olevien sellaisten solujen määrän, joiden sisältö vastaa annettuja ehtoja. -COUNTIFS = LASKE.JOS.JOUKKO ## Laskee alueella olevien sellaisten solujen määrän, joiden sisältö vastaa useita ehtoja. -COVAR = KOVARIANSSI ## Palauttaa kovarianssin, joka on keskiarvo havaintoaineiston kunkin pisteparin poikkeamien tuloista. -CRITBINOM = BINOMIJAKAUMA.KRIT ## Palauttaa pienimmän arvon, jossa binomijakauman kertymäfunktion arvo on pienempi tai yhtä suuri kuin vertailuarvo. -DEVSQ = OIKAISTU.NELIÖSUMMA ## Palauttaa keskipoikkeamien neliösumman. -EXPONDIST = EKSPONENTIAALIJAKAUMA ## Palauttaa eksponentiaalijakauman. -FDIST = FJAKAUMA ## Palauttaa F-todennäköisyysjakauman. -FINV = FJAKAUMA.KÄÄNT ## Palauttaa F-todennäköisyysjakauman käänteisfunktion. -FISHER = FISHER ## Palauttaa Fisher-muunnoksen. -FISHERINV = FISHER.KÄÄNT ## Palauttaa käänteisen Fisher-muunnoksen. -FORECAST = ENNUSTE ## Palauttaa lineaarisen trendin arvon. -FREQUENCY = TAAJUUS ## Palauttaa frekvenssijakautuman pystysuuntaisena matriisina. -FTEST = FTESTI ## Palauttaa F-testin tuloksen. -GAMMADIST = GAMMAJAKAUMA ## Palauttaa gammajakauman. -GAMMAINV = GAMMAJAKAUMA.KÄÄNT ## Palauttaa käänteisen gammajakauman kertymäfunktion. -GAMMALN = GAMMALN ## Palauttaa gammafunktion luonnollisen logaritmin G(x). -GEOMEAN = KESKIARVO.GEOM ## Palauttaa geometrisen keskiarvon. -GROWTH = KASVU ## Palauttaa eksponentiaalisen trendin arvon. -HARMEAN = KESKIARVO.HARM ## Palauttaa harmonisen keskiarvon. -HYPGEOMDIST = HYPERGEOM.JAKAUMA ## Palauttaa hypergeometrisen jakauman. -INTERCEPT = LEIKKAUSPISTE ## Palauttaa lineaarisen regressiosuoran leikkauspisteen. -KURT = KURT ## Palauttaa tietoalueen vinous-arvon eli huipukkuuden. -LARGE = SUURI ## Palauttaa tietojoukon k:nneksi suurimman arvon. -LINEST = LINREGR ## Palauttaa lineaarisen trendin parametrit. -LOGEST = LOGREGR ## Palauttaa eksponentiaalisen trendin parametrit. -LOGINV = LOGNORM.JAKAUMA.KÄÄNT ## Palauttaa lognormeeratun jakauman käänteisfunktion. -LOGNORMDIST = LOGNORM.JAKAUMA ## Palauttaa lognormaalisen jakauman kertymäfunktion. -MAX = MAKS ## Palauttaa suurimman arvon argumenttiluettelosta. -MAXA = MAKSA ## Palauttaa argumenttien, mukaan lukien lukujen, tekstin ja loogisten arvojen, suurimman arvon. -MEDIAN = MEDIAANI ## Palauttaa annettujen lukujen mediaanin. -MIN = MIN ## Palauttaa pienimmän arvon argumenttiluettelosta. -MINA = MINA ## Palauttaa argumenttien, mukaan lukien lukujen, tekstin ja loogisten arvojen, pienimmän arvon. -MODE = MOODI ## Palauttaa tietojoukossa useimmin esiintyvän arvon. -NEGBINOMDIST = BINOMIJAKAUMA.NEG ## Palauttaa negatiivisen binomijakauman. -NORMDIST = NORM.JAKAUMA ## Palauttaa normaalijakauman kertymäfunktion. -NORMINV = NORM.JAKAUMA.KÄÄNT ## Palauttaa käänteisen normaalijakauman kertymäfunktion. -NORMSDIST = NORM.JAKAUMA.NORMIT ## Palauttaa normitetun normaalijakauman kertymäfunktion. -NORMSINV = NORM.JAKAUMA.NORMIT.KÄÄNT ## Palauttaa normitetun normaalijakauman kertymäfunktion käänteisarvon. -PEARSON = PEARSON ## Palauttaa Pearsonin tulomomenttikorrelaatiokertoimen. -PERCENTILE = PROSENTTIPISTE ## Palauttaa alueen arvojen k:nnen prosenttipisteen. -PERCENTRANK = PROSENTTIJÄRJESTYS ## Palauttaa tietojoukon arvon prosentuaalisen järjestysluvun. -PERMUT = PERMUTAATIO ## Palauttaa mahdollisten permutaatioiden määrän annetulle objektien määrälle. -POISSON = POISSON ## Palauttaa Poissonin todennäköisyysjakauman. -PROB = TODENNÄKÖISYYS ## Palauttaa todennäköisyyden sille, että arvot ovat tietyltä väliltä. -QUARTILE = NELJÄNNES ## Palauttaa tietoalueen neljänneksen. -RANK = ARVON.MUKAAN ## Palauttaa luvun paikan lukuarvoluettelossa. -RSQ = PEARSON.NELIÖ ## Palauttaa Pearsonin tulomomenttikorrelaatiokertoimen neliön. -SKEW = JAKAUMAN.VINOUS ## Palauttaa jakauman vinouden. -SLOPE = KULMAKERROIN ## Palauttaa lineaarisen regressiosuoran kulmakertoimen. -SMALL = PIENI ## Palauttaa tietojoukon k:nneksi pienimmän arvon. -STANDARDIZE = NORMITA ## Palauttaa normitetun arvon. -STDEV = KESKIHAJONTA ## Laskee populaation keskihajonnan otoksen perusteella. -STDEVA = KESKIHAJONTAA ## Laskee populaation keskihajonnan otoksen perusteella, mukaan lukien luvut, tekstin ja loogiset arvot. -STDEVP = KESKIHAJONTAP ## Laskee normaalijakautuman koko populaation perusteella. -STDEVPA = KESKIHAJONTAPA ## Laskee populaation keskihajonnan koko populaation perusteella, mukaan lukien luvut, tekstin ja totuusarvot. -STEYX = KESKIVIRHE ## Palauttaa regression kutakin x-arvoa vastaavan ennustetun y-arvon keskivirheen. -TDIST = TJAKAUMA ## Palauttaa t-jakautuman. -TINV = TJAKAUMA.KÄÄNT ## Palauttaa käänteisen t-jakauman. -TREND = SUUNTAUS ## Palauttaa lineaarisen trendin arvoja. -TRIMMEAN = KESKIARVO.TASATTU ## Palauttaa tietojoukon tasatun keskiarvon. -TTEST = TTESTI ## Palauttaa t-testiin liittyvän todennäköisyyden. -VAR = VAR ## Arvioi populaation varianssia otoksen perusteella. -VARA = VARA ## Laskee populaation varianssin otoksen perusteella, mukaan lukien luvut, tekstin ja loogiset arvot. -VARP = VARP ## Laskee varianssin koko populaation perusteella. -VARPA = VARPA ## Laskee populaation varianssin koko populaation perusteella, mukaan lukien luvut, tekstin ja totuusarvot. -WEIBULL = WEIBULL ## Palauttaa Weibullin jakauman. -ZTEST = ZTESTI ## Palauttaa z-testin yksisuuntaisen todennäköisyysarvon. - - -## -## Text functions Tekstifunktiot -## -ASC = ASC ## Muuntaa merkkijonossa olevat englanninkieliset DBCS- tai katakana-merkit SBCS-merkeiksi. -BAHTTEXT = BAHTTEKSTI ## Muuntaa luvun tekstiksi ß (baht) -valuuttamuotoa käyttämällä. -CHAR = MERKKI ## Palauttaa koodin lukua vastaavan merkin. -CLEAN = SIIVOA ## Poistaa tekstistä kaikki tulostumattomat merkit. -CODE = KOODI ## Palauttaa tekstimerkkijonon ensimmäisen merkin numerokoodin. -CONCATENATE = KETJUTA ## Yhdistää useat merkkijonot yhdeksi merkkijonoksi. -DOLLAR = VALUUTTA ## Muuntaa luvun tekstiksi $ (dollari) -valuuttamuotoa käyttämällä. -EXACT = VERTAA ## Tarkistaa, ovatko kaksi tekstiarvoa samanlaiset. -FIND = ETSI ## Etsii tekstiarvon toisen tekstin sisältä (tunnistaa isot ja pienet kirjaimet). -FINDB = ETSIB ## Etsii tekstiarvon toisen tekstin sisältä (tunnistaa isot ja pienet kirjaimet). -FIXED = KIINTEÄ ## Muotoilee luvun tekstiksi, jossa on kiinteä määrä desimaaleja. -JIS = JIS ## Muuntaa merkkijonossa olevat englanninkieliset SBCS- tai katakana-merkit DBCS-merkeiksi. -LEFT = VASEN ## Palauttaa tekstiarvon vasemmanpuoliset merkit. -LEFTB = VASENB ## Palauttaa tekstiarvon vasemmanpuoliset merkit. -LEN = PITUUS ## Palauttaa tekstimerkkijonon merkkien määrän. -LENB = PITUUSB ## Palauttaa tekstimerkkijonon merkkien määrän. -LOWER = PIENET ## Muuntaa tekstin pieniksi kirjaimiksi. -MID = POIMI.TEKSTI ## Palauttaa määritetyn määrän merkkejä merkkijonosta alkaen annetusta kohdasta. -MIDB = POIMI.TEKSTIB ## Palauttaa määritetyn määrän merkkejä merkkijonosta alkaen annetusta kohdasta. -PHONETIC = FONEETTINEN ## Hakee foneettiset (furigana) merkit merkkijonosta. -PROPER = ERISNIMI ## Muuttaa merkkijonon kunkin sanan ensimmäisen kirjaimen isoksi. -REPLACE = KORVAA ## Korvaa tekstissä olevat merkit. -REPLACEB = KORVAAB ## Korvaa tekstissä olevat merkit. -REPT = TOISTA ## Toistaa tekstin annetun määrän kertoja. -RIGHT = OIKEA ## Palauttaa tekstiarvon oikeanpuoliset merkit. -RIGHTB = OIKEAB ## Palauttaa tekstiarvon oikeanpuoliset merkit. -SEARCH = KÄY.LÄPI ## Etsii tekstiarvon toisen tekstin sisältä (isot ja pienet kirjaimet tulkitaan samoiksi merkeiksi). -SEARCHB = KÄY.LÄPIB ## Etsii tekstiarvon toisen tekstin sisältä (isot ja pienet kirjaimet tulkitaan samoiksi merkeiksi). -SUBSTITUTE = VAIHDA ## Korvaa merkkijonossa olevan tekstin toisella. -T = T ## Muuntaa argumentit tekstiksi. -TEXT = TEKSTI ## Muotoilee luvun ja muuntaa sen tekstiksi. -TRIM = POISTA.VÄLIT ## Poistaa välilyönnit tekstistä. -UPPER = ISOT ## Muuntaa tekstin isoiksi kirjaimiksi. -VALUE = ARVO ## Muuntaa tekstiargumentin luvuksi. diff --git a/Utils/PHPExcel/locale/fr/config b/Utils/PHPExcel/locale/fr/config deleted file mode 100644 index 5737507..0000000 --- a/Utils/PHPExcel/locale/fr/config +++ /dev/null @@ -1,49 +0,0 @@ -## -## PHPExcel -## - -## Copyright (c) 2006 - 2013 PHPExcel -## -## This library is free software; you can redistribute it and/or -## modify it under the terms of the GNU Lesser General Public -## License as published by the Free Software Foundation; either -## version 2.1 of the License, or (at your option) any later version. -## -## This library is distributed in the hope that it will be useful, -## but WITHOUT ANY WARRANTY; without even the implied warranty of -## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -## Lesser General Public License for more details. -## -## You should have received a copy of the GNU Lesser General Public -## License along with this library; if not, write to the Free Software -## Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA -## -## @category PHPExcel -## @package PHPExcel_Settings -## @copyright Copyright (c) 2006 - 2013 PHPExcel (http://www.codeplex.com/PHPExcel) -## @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL -## @version ##VERSION##, ##DATE## -## -## - - -ArgumentSeparator = ; - - -## -## (For future use) -## -currencySymbol = € - - -## -## Excel Error Codes (For future use) - -## -NULL = #NUL! -DIV0 = #DIV/0! -VALUE = #VALEUR! -REF = #REF! -NAME = #NOM? -NUM = #NOMBRE! -NA = #N/A diff --git a/Utils/PHPExcel/locale/fr/functions b/Utils/PHPExcel/locale/fr/functions deleted file mode 100644 index 20d6674..0000000 --- a/Utils/PHPExcel/locale/fr/functions +++ /dev/null @@ -1,439 +0,0 @@ -## -## PHPExcel -## - -## Copyright (c) 2006 - 2013 PHPExcel -## -## This library is free software; you can redistribute it and/or -## modify it under the terms of the GNU Lesser General Public -## License as published by the Free Software Foundation; either -## version 2.1 of the License, or (at your option) any later version. -## -## This library is distributed in the hope that it will be useful, -## but WITHOUT ANY WARRANTY; without even the implied warranty of -## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -## Lesser General Public License for more details. -## -## You should have received a copy of the GNU Lesser General Public -## License along with this library; if not, write to the Free Software -## Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA -## -## @category PHPExcel -## @package PHPExcel_Calculation -## @copyright Copyright (c) 2006 - 2013 PHPExcel (http://www.codeplex.com/PHPExcel) -## @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL -## @version ##VERSION##, ##DATE## -## -## Data in this file derived from http://www.piuha.fi/excel-function-name-translation/ -## -## - - -## -## Add-in and Automation functions Fonctions de complément et d’automatisation -## -GETPIVOTDATA = LIREDONNEESTABCROISDYNAMIQUE ## Renvoie les données stockées dans un rapport de tableau croisé dynamique. - - -## -## Cube functions Fonctions Cube -## -CUBEKPIMEMBER = MEMBREKPICUBE ## Renvoie un nom, une propriété et une mesure d’indicateur de performance clé et affiche le nom et la propriété dans la cellule. Un indicateur de performance clé est une mesure quantifiable, telle que la marge bénéficiaire brute mensuelle ou la rotation trimestrielle du personnel, utilisée pour évaluer les performances d’une entreprise. -CUBEMEMBER = MEMBRECUBE ## Renvoie un membre ou un uplet dans une hiérarchie de cubes. Utilisez cette fonction pour valider l’existence du membre ou de l’uplet dans le cube. -CUBEMEMBERPROPERTY = PROPRIETEMEMBRECUBE ## Renvoie la valeur d’une propriété de membre du cube. Utilisez cette fonction pour valider l’existence d’un nom de membre dans le cube et pour renvoyer la propriété spécifiée pour ce membre. -CUBERANKEDMEMBER = RANGMEMBRECUBE ## Renvoie le nième membre ou le membre placé à un certain rang dans un ensemble. Utilisez cette fonction pour renvoyer un ou plusieurs éléments d’un ensemble, tels que les meilleurs vendeurs ou les 10 meilleurs étudiants. -CUBESET = JEUCUBE ## Définit un ensemble calculé de membres ou d’uplets en envoyant une expression définie au cube sur le serveur qui crée l’ensemble et le renvoie à Microsoft Office Excel. -CUBESETCOUNT = NBJEUCUBE ## Renvoie le nombre d’éléments dans un jeu. -CUBEVALUE = VALEURCUBE ## Renvoie une valeur d’agrégation issue d’un cube. - - -## -## Database functions Fonctions de base de données -## -DAVERAGE = BDMOYENNE ## Renvoie la moyenne des entrées de base de données sélectionnées. -DCOUNT = BCOMPTE ## Compte le nombre de cellules d’une base de données qui contiennent des nombres. -DCOUNTA = BDNBVAL ## Compte les cellules non vides d’une base de données. -DGET = BDLIRE ## Extrait d’une base de données un enregistrement unique répondant aux critères spécifiés. -DMAX = BDMAX ## Renvoie la valeur maximale des entrées de base de données sélectionnées. -DMIN = BDMIN ## Renvoie la valeur minimale des entrées de base de données sélectionnées. -DPRODUCT = BDPRODUIT ## Multiplie les valeurs d’un champ particulier des enregistrements d’une base de données, qui répondent aux critères spécifiés. -DSTDEV = BDECARTYPE ## Calcule l’écart type pour un échantillon d’entrées de base de données sélectionnées. -DSTDEVP = BDECARTYPEP ## Calcule l’écart type pour l’ensemble d’une population d’entrées de base de données sélectionnées. -DSUM = BDSOMME ## Ajoute les nombres dans la colonne de champ des enregistrements de la base de données, qui répondent aux critères. -DVAR = BDVAR ## Calcule la variance pour un échantillon d’entrées de base de données sélectionnées. -DVARP = BDVARP ## Calcule la variance pour l’ensemble d’une population d’entrées de base de données sélectionnées. - - -## -## Date and time functions Fonctions de date et d’heure -## -DATE = DATE ## Renvoie le numéro de série d’une date précise. -DATEVALUE = DATEVAL ## Convertit une date représentée sous forme de texte en numéro de série. -DAY = JOUR ## Convertit un numéro de série en jour du mois. -DAYS360 = JOURS360 ## Calcule le nombre de jours qui séparent deux dates sur la base d’une année de 360 jours. -EDATE = MOIS.DECALER ## Renvoie le numéro séquentiel de la date qui représente une date spécifiée (l’argument date_départ), corrigée en plus ou en moins du nombre de mois indiqué. -EOMONTH = FIN.MOIS ## Renvoie le numéro séquentiel de la date du dernier jour du mois précédant ou suivant la date_départ du nombre de mois indiqué. -HOUR = HEURE ## Convertit un numéro de série en heure. -MINUTE = MINUTE ## Convertit un numéro de série en minute. -MONTH = MOIS ## Convertit un numéro de série en mois. -NETWORKDAYS = NB.JOURS.OUVRES ## Renvoie le nombre de jours ouvrés entiers compris entre deux dates. -NOW = MAINTENANT ## Renvoie le numéro de série de la date et de l’heure du jour. -SECOND = SECONDE ## Convertit un numéro de série en seconde. -TIME = TEMPS ## Renvoie le numéro de série d’une heure précise. -TIMEVALUE = TEMPSVAL ## Convertit une date représentée sous forme de texte en numéro de série. -TODAY = AUJOURDHUI ## Renvoie le numéro de série de la date du jour. -WEEKDAY = JOURSEM ## Convertit un numéro de série en jour de la semaine. -WEEKNUM = NO.SEMAINE ## Convertit un numéro de série en un numéro représentant l’ordre de la semaine dans l’année. -WORKDAY = SERIE.JOUR.OUVRE ## Renvoie le numéro de série de la date avant ou après le nombre de jours ouvrés spécifiés. -YEAR = ANNEE ## Convertit un numéro de série en année. -YEARFRAC = FRACTION.ANNEE ## Renvoie la fraction de l’année représentant le nombre de jours entre la date de début et la date de fin. - - -## -## Engineering functions Fonctions d’ingénierie -## -BESSELI = BESSELI ## Renvoie la fonction Bessel modifiée In(x). -BESSELJ = BESSELJ ## Renvoie la fonction Bessel Jn(x). -BESSELK = BESSELK ## Renvoie la fonction Bessel modifiée Kn(x). -BESSELY = BESSELY ## Renvoie la fonction Bessel Yn(x). -BIN2DEC = BINDEC ## Convertit un nombre binaire en nombre décimal. -BIN2HEX = BINHEX ## Convertit un nombre binaire en nombre hexadécimal. -BIN2OCT = BINOCT ## Convertit un nombre binaire en nombre octal. -COMPLEX = COMPLEXE ## Convertit des coefficients réel et imaginaire en un nombre complexe. -CONVERT = CONVERT ## Convertit un nombre d’une unité de mesure à une autre. -DEC2BIN = DECBIN ## Convertit un nombre décimal en nombre binaire. -DEC2HEX = DECHEX ## Convertit un nombre décimal en nombre hexadécimal. -DEC2OCT = DECOCT ## Convertit un nombre décimal en nombre octal. -DELTA = DELTA ## Teste l’égalité de deux nombres. -ERF = ERF ## Renvoie la valeur de la fonction d’erreur. -ERFC = ERFC ## Renvoie la valeur de la fonction d’erreur complémentaire. -GESTEP = SUP.SEUIL ## Teste si un nombre est supérieur à une valeur de seuil. -HEX2BIN = HEXBIN ## Convertit un nombre hexadécimal en nombre binaire. -HEX2DEC = HEXDEC ## Convertit un nombre hexadécimal en nombre décimal. -HEX2OCT = HEXOCT ## Convertit un nombre hexadécimal en nombre octal. -IMABS = COMPLEXE.MODULE ## Renvoie la valeur absolue (module) d’un nombre complexe. -IMAGINARY = COMPLEXE.IMAGINAIRE ## Renvoie le coefficient imaginaire d’un nombre complexe. -IMARGUMENT = COMPLEXE.ARGUMENT ## Renvoie l’argument thêta, un angle exprimé en radians. -IMCONJUGATE = COMPLEXE.CONJUGUE ## Renvoie le nombre complexe conjugué d’un nombre complexe. -IMCOS = IMCOS ## Renvoie le cosinus d’un nombre complexe. -IMDIV = COMPLEXE.DIV ## Renvoie le quotient de deux nombres complexes. -IMEXP = COMPLEXE.EXP ## Renvoie la fonction exponentielle d’un nombre complexe. -IMLN = COMPLEXE.LN ## Renvoie le logarithme népérien d’un nombre complexe. -IMLOG10 = COMPLEXE.LOG10 ## Calcule le logarithme en base 10 d’un nombre complexe. -IMLOG2 = COMPLEXE.LOG2 ## Calcule le logarithme en base 2 d’un nombre complexe. -IMPOWER = COMPLEXE.PUISSANCE ## Renvoie un nombre complexe élevé à une puissance entière. -IMPRODUCT = COMPLEXE.PRODUIT ## Renvoie le produit de plusieurs nombres complexes. -IMREAL = COMPLEXE.REEL ## Renvoie le coefficient réel d’un nombre complexe. -IMSIN = COMPLEXE.SIN ## Renvoie le sinus d’un nombre complexe. -IMSQRT = COMPLEXE.RACINE ## Renvoie la racine carrée d’un nombre complexe. -IMSUB = COMPLEXE.DIFFERENCE ## Renvoie la différence entre deux nombres complexes. -IMSUM = COMPLEXE.SOMME ## Renvoie la somme de plusieurs nombres complexes. -OCT2BIN = OCTBIN ## Convertit un nombre octal en nombre binaire. -OCT2DEC = OCTDEC ## Convertit un nombre octal en nombre décimal. -OCT2HEX = OCTHEX ## Convertit un nombre octal en nombre hexadécimal. - - -## -## Financial functions Fonctions financières -## -ACCRINT = INTERET.ACC ## Renvoie l’intérêt couru non échu d’un titre dont l’intérêt est perçu périodiquement. -ACCRINTM = INTERET.ACC.MAT ## Renvoie l’intérêt couru non échu d’un titre dont l’intérêt est perçu à l’échéance. -AMORDEGRC = AMORDEGRC ## Renvoie l’amortissement correspondant à chaque période comptable en utilisant un coefficient d’amortissement. -AMORLINC = AMORLINC ## Renvoie l’amortissement d’un bien à la fin d’une période fiscale donnée. -COUPDAYBS = NB.JOURS.COUPON.PREC ## Renvoie le nombre de jours entre le début de la période de coupon et la date de liquidation. -COUPDAYS = NB.JOURS.COUPONS ## Renvoie le nombre de jours pour la période du coupon contenant la date de liquidation. -COUPDAYSNC = NB.JOURS.COUPON.SUIV ## Renvoie le nombre de jours entre la date de liquidation et la date du coupon suivant la date de liquidation. -COUPNCD = DATE.COUPON.SUIV ## Renvoie la première date de coupon ultérieure à la date de règlement. -COUPNUM = NB.COUPONS ## Renvoie le nombre de coupons dus entre la date de règlement et la date d’échéance. -COUPPCD = DATE.COUPON.PREC ## Renvoie la date de coupon précédant la date de règlement. -CUMIPMT = CUMUL.INTER ## Renvoie l’intérêt cumulé payé sur un emprunt entre deux périodes. -CUMPRINC = CUMUL.PRINCPER ## Renvoie le montant cumulé des remboursements du capital d’un emprunt effectués entre deux périodes. -DB = DB ## Renvoie l’amortissement d’un bien pour une période spécifiée en utilisant la méthode de l’amortissement dégressif à taux fixe. -DDB = DDB ## Renvoie l’amortissement d’un bien pour toute période spécifiée, en utilisant la méthode de l’amortissement dégressif à taux double ou selon un coefficient à spécifier. -DISC = TAUX.ESCOMPTE ## Calcule le taux d’escompte d’une transaction. -DOLLARDE = PRIX.DEC ## Convertit un prix en euros, exprimé sous forme de fraction, en un prix en euros exprimé sous forme de nombre décimal. -DOLLARFR = PRIX.FRAC ## Convertit un prix en euros, exprimé sous forme de nombre décimal, en un prix en euros exprimé sous forme de fraction. -DURATION = DUREE ## Renvoie la durée, en années, d’un titre dont l’intérêt est perçu périodiquement. -EFFECT = TAUX.EFFECTIF ## Renvoie le taux d’intérêt annuel effectif. -FV = VC ## Renvoie la valeur future d’un investissement. -FVSCHEDULE = VC.PAIEMENTS ## Calcule la valeur future d’un investissement en appliquant une série de taux d’intérêt composites. -INTRATE = TAUX.INTERET ## Affiche le taux d’intérêt d’un titre totalement investi. -IPMT = INTPER ## Calcule le montant des intérêts d’un investissement pour une période donnée. -IRR = TRI ## Calcule le taux de rentabilité interne d’un investissement pour une succession de trésoreries. -ISPMT = ISPMT ## Calcule le montant des intérêts d’un investissement pour une période donnée. -MDURATION = DUREE.MODIFIEE ## Renvoie la durée de Macauley modifiée pour un titre ayant une valeur nominale hypothétique de 100_euros. -MIRR = TRIM ## Calcule le taux de rentabilité interne lorsque les paiements positifs et négatifs sont financés à des taux différents. -NOMINAL = TAUX.NOMINAL ## Calcule le taux d’intérêt nominal annuel. -NPER = NPM ## Renvoie le nombre de versements nécessaires pour rembourser un emprunt. -NPV = VAN ## Calcule la valeur actuelle nette d’un investissement basé sur une série de décaissements et un taux d’escompte. -ODDFPRICE = PRIX.PCOUPON.IRREG ## Renvoie le prix par tranche de valeur nominale de 100 euros d’un titre dont la première période de coupon est irrégulière. -ODDFYIELD = REND.PCOUPON.IRREG ## Renvoie le taux de rendement d’un titre dont la première période de coupon est irrégulière. -ODDLPRICE = PRIX.DCOUPON.IRREG ## Renvoie le prix par tranche de valeur nominale de 100 euros d’un titre dont la première période de coupon est irrégulière. -ODDLYIELD = REND.DCOUPON.IRREG ## Renvoie le taux de rendement d’un titre dont la dernière période de coupon est irrégulière. -PMT = VPM ## Calcule le paiement périodique d’un investissement donné. -PPMT = PRINCPER ## Calcule, pour une période donnée, la part de remboursement du principal d’un investissement. -PRICE = PRIX.TITRE ## Renvoie le prix d’un titre rapportant des intérêts périodiques, pour une valeur nominale de 100 euros. -PRICEDISC = VALEUR.ENCAISSEMENT ## Renvoie la valeur d’encaissement d’un escompte commercial, pour une valeur nominale de 100 euros. -PRICEMAT = PRIX.TITRE.ECHEANCE ## Renvoie le prix d’un titre dont la valeur nominale est 100 euros et qui rapporte des intérêts à l’échéance. -PV = PV ## Calcule la valeur actuelle d’un investissement. -RATE = TAUX ## Calcule le taux d’intérêt par période pour une annuité. -RECEIVED = VALEUR.NOMINALE ## Renvoie la valeur nominale à échéance d’un effet de commerce. -SLN = AMORLIN ## Calcule l’amortissement linéaire d’un bien pour une période donnée. -SYD = SYD ## Calcule l’amortissement d’un bien pour une période donnée sur la base de la méthode américaine Sum-of-Years Digits (amortissement dégressif à taux décroissant appliqué à une valeur constante). -TBILLEQ = TAUX.ESCOMPTE.R ## Renvoie le taux d’escompte rationnel d’un bon du Trésor. -TBILLPRICE = PRIX.BON.TRESOR ## Renvoie le prix d’un bon du Trésor d’une valeur nominale de 100 euros. -TBILLYIELD = RENDEMENT.BON.TRESOR ## Calcule le taux de rendement d’un bon du Trésor. -VDB = VDB ## Renvoie l’amortissement d’un bien pour une période spécifiée ou partielle en utilisant une méthode de l’amortissement dégressif à taux fixe. -XIRR = TRI.PAIEMENTS ## Calcule le taux de rentabilité interne d’un ensemble de paiements non périodiques. -XNPV = VAN.PAIEMENTS ## Renvoie la valeur actuelle nette d’un ensemble de paiements non périodiques. -YIELD = RENDEMENT.TITRE ## Calcule le rendement d’un titre rapportant des intérêts périodiquement. -YIELDDISC = RENDEMENT.SIMPLE ## Calcule le taux de rendement d’un emprunt à intérêt simple (par exemple, un bon du Trésor). -YIELDMAT = RENDEMENT.TITRE.ECHEANCE ## Renvoie le rendement annuel d’un titre qui rapporte des intérêts à l’échéance. - - -## -## Information functions Fonctions d’information -## -CELL = CELLULE ## Renvoie des informations sur la mise en forme, l’emplacement et le contenu d’une cellule. -ERROR.TYPE = TYPE.ERREUR ## Renvoie un nombre correspondant à un type d’erreur. -INFO = INFORMATIONS ## Renvoie des informations sur l’environnement d’exploitation actuel. -ISBLANK = ESTVIDE ## Renvoie VRAI si l’argument valeur est vide. -ISERR = ESTERR ## Renvoie VRAI si l’argument valeur fait référence à une valeur d’erreur, sauf #N/A. -ISERROR = ESTERREUR ## Renvoie VRAI si l’argument valeur fait référence à une valeur d’erreur. -ISEVEN = EST.PAIR ## Renvoie VRAI si le chiffre est pair. -ISLOGICAL = ESTLOGIQUE ## Renvoie VRAI si l’argument valeur fait référence à une valeur logique. -ISNA = ESTNA ## Renvoie VRAI si l’argument valeur fait référence à la valeur d’erreur #N/A. -ISNONTEXT = ESTNONTEXTE ## Renvoie VRAI si l’argument valeur ne se présente pas sous forme de texte. -ISNUMBER = ESTNUM ## Renvoie VRAI si l’argument valeur représente un nombre. -ISODD = EST.IMPAIR ## Renvoie VRAI si le chiffre est impair. -ISREF = ESTREF ## Renvoie VRAI si l’argument valeur est une référence. -ISTEXT = ESTTEXTE ## Renvoie VRAI si l’argument valeur se présente sous forme de texte. -N = N ## Renvoie une valeur convertie en nombre. -NA = NA ## Renvoie la valeur d’erreur #N/A. -TYPE = TYPE ## Renvoie un nombre indiquant le type de données d’une valeur. - - -## -## Logical functions Fonctions logiques -## -AND = ET ## Renvoie VRAI si tous ses arguments sont VRAI. -FALSE = FAUX ## Renvoie la valeur logique FAUX. -IF = SI ## Spécifie un test logique à effectuer. -IFERROR = SIERREUR ## Renvoie une valeur que vous spécifiez si une formule génère une erreur ; sinon, elle renvoie le résultat de la formule. -NOT = NON ## Inverse la logique de cet argument. -OR = OU ## Renvoie VRAI si un des arguments est VRAI. -TRUE = VRAI ## Renvoie la valeur logique VRAI. - - -## -## Lookup and reference functions Fonctions de recherche et de référence -## -ADDRESS = ADRESSE ## Renvoie une référence sous forme de texte à une seule cellule d’une feuille de calcul. -AREAS = ZONES ## Renvoie le nombre de zones dans une référence. -CHOOSE = CHOISIR ## Choisit une valeur dans une liste. -COLUMN = COLONNE ## Renvoie le numéro de colonne d’une référence. -COLUMNS = COLONNES ## Renvoie le nombre de colonnes dans une référence. -HLOOKUP = RECHERCHEH ## Effectue une recherche dans la première ligne d’une matrice et renvoie la valeur de la cellule indiquée. -HYPERLINK = LIEN_HYPERTEXTE ## Crée un raccourci ou un renvoi qui ouvre un document stocké sur un serveur réseau, sur un réseau Intranet ou sur Internet. -INDEX = INDEX ## Utilise un index pour choisir une valeur provenant d’une référence ou d’une matrice. -INDIRECT = INDIRECT ## Renvoie une référence indiquée par une valeur de texte. -LOOKUP = RECHERCHE ## Recherche des valeurs dans un vecteur ou une matrice. -MATCH = EQUIV ## Recherche des valeurs dans une référence ou une matrice. -OFFSET = DECALER ## Renvoie une référence décalée par rapport à une référence donnée. -ROW = LIGNE ## Renvoie le numéro de ligne d’une référence. -ROWS = LIGNES ## Renvoie le nombre de lignes dans une référence. -RTD = RTD ## Extrait les données en temps réel à partir d’un programme prenant en charge l’automation COM (Automation : utilisation des objets d'une application à partir d'une autre application ou d'un autre outil de développement. Autrefois appelée OLE Automation, Automation est une norme industrielle et une fonctionnalité du modèle d'objet COM (Component Object Model).). -TRANSPOSE = TRANSPOSE ## Renvoie la transposition d’une matrice. -VLOOKUP = RECHERCHEV ## Effectue une recherche dans la première colonne d’une matrice et se déplace sur la ligne pour renvoyer la valeur d’une cellule. - - -## -## Math and trigonometry functions Fonctions mathématiques et trigonométriques -## -ABS = ABS ## Renvoie la valeur absolue d’un nombre. -ACOS = ACOS ## Renvoie l’arccosinus d’un nombre. -ACOSH = ACOSH ## Renvoie le cosinus hyperbolique inverse d’un nombre. -ASIN = ASIN ## Renvoie l’arcsinus d’un nombre. -ASINH = ASINH ## Renvoie le sinus hyperbolique inverse d’un nombre. -ATAN = ATAN ## Renvoie l’arctangente d’un nombre. -ATAN2 = ATAN2 ## Renvoie l’arctangente des coordonnées x et y. -ATANH = ATANH ## Renvoie la tangente hyperbolique inverse d’un nombre. -CEILING = PLAFOND ## Arrondit un nombre au nombre entier le plus proche ou au multiple le plus proche de l’argument précision en s’éloignant de zéro. -COMBIN = COMBIN ## Renvoie le nombre de combinaisons que l’on peut former avec un nombre donné d’objets. -COS = COS ## Renvoie le cosinus d’un nombre. -COSH = COSH ## Renvoie le cosinus hyperbolique d’un nombre. -DEGREES = DEGRES ## Convertit des radians en degrés. -EVEN = PAIR ## Arrondit un nombre au nombre entier pair le plus proche en s’éloignant de zéro. -EXP = EXP ## Renvoie e élevé à la puissance d’un nombre donné. -FACT = FACT ## Renvoie la factorielle d’un nombre. -FACTDOUBLE = FACTDOUBLE ## Renvoie la factorielle double d’un nombre. -FLOOR = PLANCHER ## Arrondit un nombre en tendant vers 0 (zéro). -GCD = PGCD ## Renvoie le plus grand commun diviseur. -INT = ENT ## Arrondit un nombre à l’entier immédiatement inférieur. -LCM = PPCM ## Renvoie le plus petit commun multiple. -LN = LN ## Renvoie le logarithme népérien d’un nombre. -LOG = LOG ## Renvoie le logarithme d’un nombre dans la base spécifiée. -LOG10 = LOG10 ## Calcule le logarithme en base 10 d’un nombre. -MDETERM = DETERMAT ## Renvoie le déterminant d’une matrice. -MINVERSE = INVERSEMAT ## Renvoie la matrice inverse d’une matrice. -MMULT = PRODUITMAT ## Renvoie le produit de deux matrices. -MOD = MOD ## Renvoie le reste d’une division. -MROUND = ARRONDI.AU.MULTIPLE ## Donne l’arrondi d’un nombre au multiple spécifié. -MULTINOMIAL = MULTINOMIALE ## Calcule la multinomiale d’un ensemble de nombres. -ODD = IMPAIR ## Renvoie le nombre, arrondi à la valeur du nombre entier impair le plus proche en s’éloignant de zéro. -PI = PI ## Renvoie la valeur de pi. -POWER = PUISSANCE ## Renvoie la valeur du nombre élevé à une puissance. -PRODUCT = PRODUIT ## Multiplie ses arguments. -QUOTIENT = QUOTIENT ## Renvoie la partie entière du résultat d’une division. -RADIANS = RADIANS ## Convertit des degrés en radians. -RAND = ALEA ## Renvoie un nombre aléatoire compris entre 0 et 1. -RANDBETWEEN = ALEA.ENTRE.BORNES ## Renvoie un nombre aléatoire entre les nombres que vous spécifiez. -ROMAN = ROMAIN ## Convertit des chiffres arabes en chiffres romains, sous forme de texte. -ROUND = ARRONDI ## Arrondit un nombre au nombre de chiffres indiqué. -ROUNDDOWN = ARRONDI.INF ## Arrondit un nombre en tendant vers 0 (zéro). -ROUNDUP = ARRONDI.SUP ## Arrondit un nombre à l’entier supérieur, en s’éloignant de zéro. -SERIESSUM = SOMME.SERIES ## Renvoie la somme d’une série géométrique en s’appuyant sur la formule suivante : -SIGN = SIGNE ## Renvoie le signe d’un nombre. -SIN = SIN ## Renvoie le sinus d’un angle donné. -SINH = SINH ## Renvoie le sinus hyperbolique d’un nombre. -SQRT = RACINE ## Renvoie la racine carrée d’un nombre. -SQRTPI = RACINE.PI ## Renvoie la racine carrée de (nombre * pi). -SUBTOTAL = SOUS.TOTAL ## Renvoie un sous-total dans une liste ou une base de données. -SUM = SOMME ## Calcule la somme de ses arguments. -SUMIF = SOMME.SI ## Additionne les cellules spécifiées si elles répondent à un critère donné. -SUMIFS = SOMME.SI.ENS ## Ajoute les cellules d’une plage qui répondent à plusieurs critères. -SUMPRODUCT = SOMMEPROD ## Multiplie les valeurs correspondantes des matrices spécifiées et calcule la somme de ces produits. -SUMSQ = SOMME.CARRES ## Renvoie la somme des carrés des arguments. -SUMX2MY2 = SOMME.X2MY2 ## Renvoie la somme de la différence des carrés des valeurs correspondantes de deux matrices. -SUMX2PY2 = SOMME.X2PY2 ## Renvoie la somme de la somme des carrés des valeurs correspondantes de deux matrices. -SUMXMY2 = SOMME.XMY2 ## Renvoie la somme des carrés des différences entre les valeurs correspondantes de deux matrices. -TAN = TAN ## Renvoie la tangente d’un nombre. -TANH = TANH ## Renvoie la tangente hyperbolique d’un nombre. -TRUNC = TRONQUE ## Renvoie la partie entière d’un nombre. - - -## -## Statistical functions Fonctions statistiques -## -AVEDEV = ECART.MOYEN ## Renvoie la moyenne des écarts absolus observés dans la moyenne des points de données. -AVERAGE = MOYENNE ## Renvoie la moyenne de ses arguments. -AVERAGEA = AVERAGEA ## Renvoie la moyenne de ses arguments, nombres, texte et valeurs logiques inclus. -AVERAGEIF = MOYENNE.SI ## Renvoie la moyenne (arithmétique) de toutes les cellules d’une plage qui répondent à des critères donnés. -AVERAGEIFS = MOYENNE.SI.ENS ## Renvoie la moyenne (arithmétique) de toutes les cellules qui répondent à plusieurs critères. -BETADIST = LOI.BETA ## Renvoie la fonction de distribution cumulée. -BETAINV = BETA.INVERSE ## Renvoie l’inverse de la fonction de distribution cumulée pour une distribution bêta spécifiée. -BINOMDIST = LOI.BINOMIALE ## Renvoie la probabilité d’une variable aléatoire discrète suivant la loi binomiale. -CHIDIST = LOI.KHIDEUX ## Renvoie la probabilité unilatérale de la distribution khi-deux. -CHIINV = KHIDEUX.INVERSE ## Renvoie l’inverse de la probabilité unilatérale de la distribution khi-deux. -CHITEST = TEST.KHIDEUX ## Renvoie le test d’indépendance. -CONFIDENCE = INTERVALLE.CONFIANCE ## Renvoie l’intervalle de confiance pour une moyenne de population. -CORREL = COEFFICIENT.CORRELATION ## Renvoie le coefficient de corrélation entre deux séries de données. -COUNT = NB ## Détermine les nombres compris dans la liste des arguments. -COUNTA = NBVAL ## Détermine le nombre de valeurs comprises dans la liste des arguments. -COUNTBLANK = NB.VIDE ## Compte le nombre de cellules vides dans une plage. -COUNTIF = NB.SI ## Compte le nombre de cellules qui répondent à un critère donné dans une plage. -COUNTIFS = NB.SI.ENS ## Compte le nombre de cellules à l’intérieur d’une plage qui répondent à plusieurs critères. -COVAR = COVARIANCE ## Renvoie la covariance, moyenne des produits des écarts pour chaque série d’observations. -CRITBINOM = CRITERE.LOI.BINOMIALE ## Renvoie la plus petite valeur pour laquelle la distribution binomiale cumulée est inférieure ou égale à une valeur de critère. -DEVSQ = SOMME.CARRES.ECARTS ## Renvoie la somme des carrés des écarts. -EXPONDIST = LOI.EXPONENTIELLE ## Renvoie la distribution exponentielle. -FDIST = LOI.F ## Renvoie la distribution de probabilité F. -FINV = INVERSE.LOI.F ## Renvoie l’inverse de la distribution de probabilité F. -FISHER = FISHER ## Renvoie la transformation de Fisher. -FISHERINV = FISHER.INVERSE ## Renvoie l’inverse de la transformation de Fisher. -FORECAST = PREVISION ## Calcule une valeur par rapport à une tendance linéaire. -FREQUENCY = FREQUENCE ## Calcule la fréquence d’apparition des valeurs dans une plage de valeurs, puis renvoie des nombres sous forme de matrice verticale. -FTEST = TEST.F ## Renvoie le résultat d’un test F. -GAMMADIST = LOI.GAMMA ## Renvoie la probabilité d’une variable aléatoire suivant une loi Gamma. -GAMMAINV = LOI.GAMMA.INVERSE ## Renvoie, pour une probabilité donnée, la valeur d’une variable aléatoire suivant une loi Gamma. -GAMMALN = LNGAMMA ## Renvoie le logarithme népérien de la fonction Gamma, G(x) -GEOMEAN = MOYENNE.GEOMETRIQUE ## Renvoie la moyenne géométrique. -GROWTH = CROISSANCE ## Calcule des valeurs par rapport à une tendance exponentielle. -HARMEAN = MOYENNE.HARMONIQUE ## Renvoie la moyenne harmonique. -HYPGEOMDIST = LOI.HYPERGEOMETRIQUE ## Renvoie la probabilité d’une variable aléatoire discrète suivant une loi hypergéométrique. -INTERCEPT = ORDONNEE.ORIGINE ## Renvoie l’ordonnée à l’origine d’une droite de régression linéaire. -KURT = KURTOSIS ## Renvoie le kurtosis d’une série de données. -LARGE = GRANDE.VALEUR ## Renvoie la k-ième plus grande valeur d’une série de données. -LINEST = DROITEREG ## Renvoie les paramètres d’une tendance linéaire. -LOGEST = LOGREG ## Renvoie les paramètres d’une tendance exponentielle. -LOGINV = LOI.LOGNORMALE.INVERSE ## Renvoie l’inverse de la probabilité pour une variable aléatoire suivant la loi lognormale. -LOGNORMDIST = LOI.LOGNORMALE ## Renvoie la probabilité d’une variable aléatoire continue suivant une loi lognormale. -MAX = MAX ## Renvoie la valeur maximale contenue dans une liste d’arguments. -MAXA = MAXA ## Renvoie la valeur maximale d’une liste d’arguments, nombres, texte et valeurs logiques inclus. -MEDIAN = MEDIANE ## Renvoie la valeur médiane des nombres donnés. -MIN = MIN ## Renvoie la valeur minimale contenue dans une liste d’arguments. -MINA = MINA ## Renvoie la plus petite valeur d’une liste d’arguments, nombres, texte et valeurs logiques inclus. -MODE = MODE ## Renvoie la valeur la plus courante d’une série de données. -NEGBINOMDIST = LOI.BINOMIALE.NEG ## Renvoie la probabilité d’une variable aléatoire discrète suivant une loi binomiale négative. -NORMDIST = LOI.NORMALE ## Renvoie la probabilité d’une variable aléatoire continue suivant une loi normale. -NORMINV = LOI.NORMALE.INVERSE ## Renvoie, pour une probabilité donnée, la valeur d’une variable aléatoire suivant une loi normale standard. -NORMSDIST = LOI.NORMALE.STANDARD ## Renvoie la probabilité d’une variable aléatoire continue suivant une loi normale standard. -NORMSINV = LOI.NORMALE.STANDARD.INVERSE ## Renvoie l’inverse de la distribution cumulée normale standard. -PEARSON = PEARSON ## Renvoie le coefficient de corrélation d’échantillonnage de Pearson. -PERCENTILE = CENTILE ## Renvoie le k-ième centile des valeurs d’une plage. -PERCENTRANK = RANG.POURCENTAGE ## Renvoie le rang en pourcentage d’une valeur d’une série de données. -PERMUT = PERMUTATION ## Renvoie le nombre de permutations pour un nombre donné d’objets. -POISSON = LOI.POISSON ## Renvoie la probabilité d’une variable aléatoire suivant une loi de Poisson. -PROB = PROBABILITE ## Renvoie la probabilité que des valeurs d’une plage soient comprises entre deux limites. -QUARTILE = QUARTILE ## Renvoie le quartile d’une série de données. -RANK = RANG ## Renvoie le rang d’un nombre contenu dans une liste. -RSQ = COEFFICIENT.DETERMINATION ## Renvoie la valeur du coefficient de détermination R^2 d’une régression linéaire. -SKEW = COEFFICIENT.ASYMETRIE ## Renvoie l’asymétrie d’une distribution. -SLOPE = PENTE ## Renvoie la pente d’une droite de régression linéaire. -SMALL = PETITE.VALEUR ## Renvoie la k-ième plus petite valeur d’une série de données. -STANDARDIZE = CENTREE.REDUITE ## Renvoie une valeur centrée réduite. -STDEV = ECARTYPE ## Évalue l’écart type d’une population en se basant sur un échantillon de cette population. -STDEVA = STDEVA ## Évalue l’écart type d’une population en se basant sur un échantillon de cette population, nombres, texte et valeurs logiques inclus. -STDEVP = ECARTYPEP ## Calcule l’écart type d’une population à partir de la population entière. -STDEVPA = STDEVPA ## Calcule l’écart type d’une population à partir de l’ensemble de la population, nombres, texte et valeurs logiques inclus. -STEYX = ERREUR.TYPE.XY ## Renvoie l’erreur type de la valeur y prévue pour chaque x de la régression. -TDIST = LOI.STUDENT ## Renvoie la probabilité d’une variable aléatoire suivant une loi T de Student. -TINV = LOI.STUDENT.INVERSE ## Renvoie, pour une probabilité donnée, la valeur d’une variable aléatoire suivant une loi T de Student. -TREND = TENDANCE ## Renvoie des valeurs par rapport à une tendance linéaire. -TRIMMEAN = MOYENNE.REDUITE ## Renvoie la moyenne de l’intérieur d’une série de données. -TTEST = TEST.STUDENT ## Renvoie la probabilité associée à un test T de Student. -VAR = VAR ## Calcule la variance sur la base d’un échantillon. -VARA = VARA ## Estime la variance d’une population en se basant sur un échantillon de cette population, nombres, texte et valeurs logiques incluses. -VARP = VAR.P ## Calcule la variance sur la base de l’ensemble de la population. -VARPA = VARPA ## Calcule la variance d’une population en se basant sur la population entière, nombres, texte et valeurs logiques inclus. -WEIBULL = LOI.WEIBULL ## Renvoie la probabilité d’une variable aléatoire suivant une loi de Weibull. -ZTEST = TEST.Z ## Renvoie la valeur de probabilité unilatérale d’un test z. - - -## -## Text functions Fonctions de texte -## -ASC = ASC ## Change les caractères anglais ou katakana à pleine chasse (codés sur deux octets) à l’intérieur d’une chaîne de caractères en caractères à demi-chasse (codés sur un octet). -BAHTTEXT = BAHTTEXT ## Convertit un nombre en texte en utilisant le format monétaire ß (baht). -CHAR = CAR ## Renvoie le caractère spécifié par le code numérique. -CLEAN = EPURAGE ## Supprime tous les caractères de contrôle du texte. -CODE = CODE ## Renvoie le numéro de code du premier caractère du texte. -CONCATENATE = CONCATENER ## Assemble plusieurs éléments textuels de façon à n’en former qu’un seul. -DOLLAR = EURO ## Convertit un nombre en texte en utilisant le format monétaire € (euro). -EXACT = EXACT ## Vérifie si deux valeurs de texte sont identiques. -FIND = TROUVE ## Trouve un valeur textuelle dans une autre, en respectant la casse. -FINDB = TROUVERB ## Trouve un valeur textuelle dans une autre, en respectant la casse. -FIXED = CTXT ## Convertit un nombre au format texte avec un nombre de décimales spécifié. -JIS = JIS ## Change les caractères anglais ou katakana à demi-chasse (codés sur un octet) à l’intérieur d’une chaîne de caractères en caractères à à pleine chasse (codés sur deux octets). -LEFT = GAUCHE ## Renvoie des caractères situés à l’extrême gauche d’une chaîne de caractères. -LEFTB = GAUCHEB ## Renvoie des caractères situés à l’extrême gauche d’une chaîne de caractères. -LEN = NBCAR ## Renvoie le nombre de caractères contenus dans une chaîne de texte. -LENB = LENB ## Renvoie le nombre de caractères contenus dans une chaîne de texte. -LOWER = MINUSCULE ## Convertit le texte en minuscules. -MID = STXT ## Renvoie un nombre déterminé de caractères d’une chaîne de texte à partir de la position que vous indiquez. -MIDB = STXTB ## Renvoie un nombre déterminé de caractères d’une chaîne de texte à partir de la position que vous indiquez. -PHONETIC = PHONETIQUE ## Extrait les caractères phonétiques (furigana) d’une chaîne de texte. -PROPER = NOMPROPRE ## Met en majuscules la première lettre de chaque mot dans une chaîne textuelle. -REPLACE = REMPLACER ## Remplace des caractères dans un texte. -REPLACEB = REMPLACERB ## Remplace des caractères dans un texte. -REPT = REPT ## Répète un texte un certain nombre de fois. -RIGHT = DROITE ## Renvoie des caractères situés à l’extrême droite d’une chaîne de caractères. -RIGHTB = DROITEB ## Renvoie des caractères situés à l’extrême droite d’une chaîne de caractères. -SEARCH = CHERCHE ## Trouve un texte dans un autre texte (sans respecter la casse). -SEARCHB = CHERCHERB ## Trouve un texte dans un autre texte (sans respecter la casse). -SUBSTITUTE = SUBSTITUE ## Remplace l’ancien texte d’une chaîne de caractères par un nouveau. -T = T ## Convertit ses arguments en texte. -TEXT = TEXTE ## Convertit un nombre au format texte. -TRIM = SUPPRESPACE ## Supprime les espaces du texte. -UPPER = MAJUSCULE ## Convertit le texte en majuscules. -VALUE = CNUM ## Convertit un argument textuel en nombre diff --git a/Utils/PHPExcel/locale/hu/config b/Utils/PHPExcel/locale/hu/config deleted file mode 100644 index 80b4b94..0000000 --- a/Utils/PHPExcel/locale/hu/config +++ /dev/null @@ -1,48 +0,0 @@ -## -## PHPExcel -## - -## Copyright (c) 2006 - 2013 PHPExcel -## -## This library is free software; you can redistribute it and/or -## modify it under the terms of the GNU Lesser General Public -## License as published by the Free Software Foundation; either -## version 2.1 of the License, or (at your option) any later version. -## -## This library is distributed in the hope that it will be useful, -## but WITHOUT ANY WARRANTY; without even the implied warranty of -## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -## Lesser General Public License for more details. -## -## You should have received a copy of the GNU Lesser General Public -## License along with this library; if not, write to the Free Software -## Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA -## -## @category PHPExcel -## @package PHPExcel_Settings -## @copyright Copyright (c) 2006 - 2013 PHPExcel (http://www.codeplex.com/PHPExcel) -## @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL -## @version ##VERSION##, ##DATE## -## -## - - -ArgumentSeparator = ; - - -## -## (For future use) -## -currencySymbol = Ft - - -## -## Excel Error Codes (For future use) -## -NULL = #NULLA! -DIV0 = #ZÉRÓOSZTÓ! -VALUE = #ÉRTÉK! -REF = #HIV! -NAME = #NÉV? -NUM = #SZÁM! -NA = #HIÁNYZIK diff --git a/Utils/PHPExcel/locale/hu/functions b/Utils/PHPExcel/locale/hu/functions deleted file mode 100644 index 23bdc58..0000000 --- a/Utils/PHPExcel/locale/hu/functions +++ /dev/null @@ -1,439 +0,0 @@ -## -## PHPExcel -## - -## Copyright (c) 2006 - 2013 PHPExcel -## -## This library is free software; you can redistribute it and/or -## modify it under the terms of the GNU Lesser General Public -## License as published by the Free Software Foundation; either -## version 2.1 of the License, or (at your option) any later version. -## -## This library is distributed in the hope that it will be useful, -## but WITHOUT ANY WARRANTY; without even the implied warranty of -## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -## Lesser General Public License for more details. -## -## You should have received a copy of the GNU Lesser General Public -## License along with this library; if not, write to the Free Software -## Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA -## -## @category PHPExcel -## @package PHPExcel_Calculation -## @copyright Copyright (c) 2006 - 2013 PHPExcel (http://www.codeplex.com/PHPExcel) -## @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL -## @version ##VERSION##, ##DATE## -## -## Data in this file derived from http://www.piuha.fi/excel-function-name-translation/ -## -## - - -## -## Add-in and Automation functions Bővítmények és automatizálási függvények -## -GETPIVOTDATA = KIMUTATÁSADATOT.VESZ ## A kimutatásokban tárolt adatok visszaadására használható. - - -## -## Cube functions Kockafüggvények -## -CUBEKPIMEMBER = KOCKA.FŐTELJMUT ## Egy fő teljesítménymutató (KPI) nevét, tulajdonságát és mértékegységét adja eredményül, a nevet és a tulajdonságot megjeleníti a cellában. A KPI-k számszerűsíthető mérési lehetőséget jelentenek – ilyen mutató például a havi bruttó nyereség vagy az egy alkalmazottra jutó negyedéves forgalom –, egy szervezet teljesítményének nyomonkövetésére használhatók. -CUBEMEMBER = KOCKA.TAG ## Kockahierachia tagját vagy rekordját adja eredményül. Ellenőrizhető vele, hogy szerepel-e a kockában az adott tag vagy rekord. -CUBEMEMBERPROPERTY = KOCKA.TAG.TUL ## A kocka egyik tagtulajdonságának értékét adja eredményül. Használatával ellenőrizhető, hogy szerepel-e egy tagnév a kockában, eredménye pedig az erre a tagra vonatkozó, megadott tulajdonság. -CUBERANKEDMEMBER = KOCKA.HALM.ELEM ## Egy halmaz rangsor szerinti n-edik tagját adja eredményül. Használatával egy halmaz egy vagy több elemét kaphatja meg, például a legnagyobb teljesítményű üzletkötőt vagy a 10 legjobb tanulót. -CUBESET = KOCKA.HALM ## Számított tagok vagy rekordok halmazát adja eredményül, ehhez egy beállított kifejezést elküld a kiszolgálón található kockának, majd ezt a halmazt adja vissza a Microsoft Office Excel alkalmazásnak. -CUBESETCOUNT = KOCKA.HALM.DB ## Egy halmaz elemszámát adja eredményül. -CUBEVALUE = KOCKA.ÉRTÉK ## Kockából összesített értéket ad eredményül. - - -## -## Database functions Adatbázis-kezelő függvények -## -DAVERAGE = AB.ÁTLAG ## A kijelölt adatbáziselemek átlagát számítja ki. -DCOUNT = AB.DARAB ## Megszámolja, hogy az adatbázisban hány cella tartalmaz számokat. -DCOUNTA = AB.DARAB2 ## Megszámolja az adatbázisban lévő nem üres cellákat. -DGET = AB.MEZŐ ## Egy adatbázisból egyetlen olyan rekordot ad vissza, amely megfelel a megadott feltételeknek. -DMAX = AB.MAX ## A kiválasztott adatbáziselemek közül a legnagyobb értéket adja eredményül. -DMIN = AB.MIN ## A kijelölt adatbáziselemek közül a legkisebb értéket adja eredményül. -DPRODUCT = AB.SZORZAT ## Az adatbázis megadott feltételeknek eleget tevő rekordjaira összeszorozza a megadott mezőben található számértékeket, és eredményül ezt a szorzatot adja. -DSTDEV = AB.SZÓRÁS ## A kijelölt adatbáziselemek egy mintája alapján megbecsüli a szórást. -DSTDEVP = AB.SZÓRÁS2 ## A kijelölt adatbáziselemek teljes sokasága alapján kiszámítja a szórást. -DSUM = AB.SZUM ## Összeadja a feltételnek megfelelő adatbázisrekordok mezőoszlopában a számokat. -DVAR = AB.VAR ## A kijelölt adatbáziselemek mintája alapján becslést ad a szórásnégyzetre. -DVARP = AB.VAR2 ## A kijelölt adatbáziselemek teljes sokasága alapján kiszámítja a szórásnégyzetet. - - -## -## Date and time functions Dátumfüggvények -## -DATE = DÁTUM ## Adott dátum dátumértékét adja eredményül. -DATEVALUE = DÁTUMÉRTÉK ## Szövegként megadott dátumot dátumértékké alakít át. -DAY = NAP ## Dátumértéket a hónap egy napjává (0-31) alakít. -DAYS360 = NAP360 ## Két dátum közé eső napok számát számítja ki a 360 napos év alapján. -EDATE = EDATE ## Adott dátumnál adott számú hónappal korábbi vagy későbbi dátum dátumértékét adja eredményül. -EOMONTH = EOMONTH ## Adott dátumnál adott számú hónappal korábbi vagy későbbi hónap utolsó napjának dátumértékét adja eredményül. -HOUR = ÓRA ## Időértéket órákká alakít. -MINUTE = PERC ## Időértéket percekké alakít. -MONTH = HÓNAP ## Időértéket hónapokká alakít. -NETWORKDAYS = NETWORKDAYS ## Két dátum között a teljes munkanapok számát adja meg. -NOW = MOST ## A napi dátum dátumértékét és a pontos idő időértékét adja eredményül. -SECOND = MPERC ## Időértéket másodpercekké alakít át. -TIME = IDŐ ## Adott időpont időértékét adja meg. -TIMEVALUE = IDŐÉRTÉK ## Szövegként megadott időpontot időértékké alakít át. -TODAY = MA ## A napi dátum dátumértékét adja eredményül. -WEEKDAY = HÉT.NAPJA ## Dátumértéket a hét napjává alakítja át. -WEEKNUM = WEEKNUM ## Visszatérési értéke egy szám, amely azt mutatja meg, hogy a megadott dátum az év hányadik hetére esik. -WORKDAY = WORKDAY ## Adott dátumnál adott munkanappal korábbi vagy későbbi dátum dátumértékét adja eredményül. -YEAR = ÉV ## Sorszámot évvé alakít át. -YEARFRAC = YEARFRAC ## Az adott dátumok közötti teljes napok számát törtévként adja meg. - - -## -## Engineering functions Mérnöki függvények -## -BESSELI = BESSELI ## Az In(x) módosított Bessel-függvény értékét adja eredményül. -BESSELJ = BESSELJ ## A Jn(x) Bessel-függvény értékét adja eredményül. -BESSELK = BESSELK ## A Kn(x) módosított Bessel-függvény értékét adja eredményül. -BESSELY = BESSELY ## Az Yn(x) módosított Bessel-függvény értékét adja eredményül. -BIN2DEC = BIN2DEC ## Bináris számot decimálissá alakít át. -BIN2HEX = BIN2HEX ## Bináris számot hexadecimálissá alakít át. -BIN2OCT = BIN2OCT ## Bináris számot oktálissá alakít át. -COMPLEX = COMPLEX ## Valós és képzetes részből komplex számot képez. -CONVERT = CONVERT ## Mértékegységeket vált át. -DEC2BIN = DEC2BIN ## Decimális számot binárissá alakít át. -DEC2HEX = DEC2HEX ## Decimális számot hexadecimálissá alakít át. -DEC2OCT = DEC2OCT ## Decimális számot oktálissá alakít át. -DELTA = DELTA ## Azt vizsgálja, hogy két érték egyenlő-e. -ERF = ERF ## A hibafüggvény értékét adja eredményül. -ERFC = ERFC ## A kiegészített hibafüggvény értékét adja eredményül. -GESTEP = GESTEP ## Azt vizsgálja, hogy egy szám nagyobb-e adott küszöbértéknél. -HEX2BIN = HEX2BIN ## Hexadecimális számot binárissá alakít át. -HEX2DEC = HEX2DEC ## Hexadecimális számot decimálissá alakít át. -HEX2OCT = HEX2OCT ## Hexadecimális számot oktálissá alakít át. -IMABS = IMABS ## Komplex szám abszolút értékét (modulusát) adja eredményül. -IMAGINARY = IMAGINARY ## Komplex szám képzetes részét adja eredményül. -IMARGUMENT = IMARGUMENT ## A komplex szám radiánban kifejezett théta argumentumát adja eredményül. -IMCONJUGATE = IMCONJUGATE ## Komplex szám komplex konjugáltját adja eredményül. -IMCOS = IMCOS ## Komplex szám koszinuszát adja eredményül. -IMDIV = IMDIV ## Két komplex szám hányadosát adja eredményül. -IMEXP = IMEXP ## Az e szám komplex kitevőjű hatványát adja eredményül. -IMLN = IMLN ## Komplex szám természetes logaritmusát adja eredményül. -IMLOG10 = IMLOG10 ## Komplex szám tízes alapú logaritmusát adja eredményül. -IMLOG2 = IMLOG2 ## Komplex szám kettes alapú logaritmusát adja eredményül. -IMPOWER = IMPOWER ## Komplex szám hatványát adja eredményül. -IMPRODUCT = IMPRODUCT ## Komplex számok szorzatát adja eredményül. -IMREAL = IMREAL ## Komplex szám valós részét adja eredményül. -IMSIN = IMSIN ## Komplex szám szinuszát adja eredményül. -IMSQRT = IMSQRT ## Komplex szám négyzetgyökét adja eredményül. -IMSUB = IMSUB ## Két komplex szám különbségét adja eredményül. -IMSUM = IMSUM ## Komplex számok összegét adja eredményül. -OCT2BIN = OCT2BIN ## Oktális számot binárissá alakít át. -OCT2DEC = OCT2DEC ## Oktális számot decimálissá alakít át. -OCT2HEX = OCT2HEX ## Oktális számot hexadecimálissá alakít át. - - -## -## Financial functions Pénzügyi függvények -## -ACCRINT = ACCRINT ## Periodikusan kamatozó értékpapír felszaporodott kamatát adja eredményül. -ACCRINTM = ACCRINTM ## Lejáratkor kamatozó értékpapír felszaporodott kamatát adja eredményül. -AMORDEGRC = AMORDEGRC ## Állóeszköz lineáris értékcsökkenését adja meg az egyes könyvelési időszakokra vonatkozóan. -AMORLINC = AMORLINC ## Az egyes könyvelési időszakokban az értékcsökkenést adja meg. -COUPDAYBS = COUPDAYBS ## A szelvényidőszak kezdetétől a kifizetés időpontjáig eltelt napokat adja vissza. -COUPDAYS = COUPDAYS ## A kifizetés időpontját magában foglaló szelvényperiódus hosszát adja meg napokban. -COUPDAYSNC = COUPDAYSNC ## A kifizetés időpontja és a legközelebbi szelvénydátum közötti napok számát adja meg. -COUPNCD = COUPNCD ## A kifizetést követő legelső szelvénydátumot adja eredményül. -COUPNUM = COUPNUM ## A kifizetés és a lejárat időpontja között kifizetendő szelvények számát adja eredményül. -COUPPCD = COUPPCD ## A kifizetés előtti utolsó szelvénydátumot adja eredményül. -CUMIPMT = CUMIPMT ## Két fizetési időszak között kifizetett kamat halmozott értékét adja eredményül. -CUMPRINC = CUMPRINC ## Két fizetési időszak között kifizetett részletek halmozott (kamatot nem tartalmazó) értékét adja eredményül. -DB = KCS2 ## Eszköz adott időszak alatti értékcsökkenését számítja ki a lineáris leírási modell alkalmazásával. -DDB = KCSA ## Eszköz értékcsökkenését számítja ki adott időszakra vonatkozóan a progresszív vagy egyéb megadott leírási modell alkalmazásával. -DISC = DISC ## Értékpapír leszámítolási kamatlábát adja eredményül. -DOLLARDE = DOLLARDE ## Egy közönséges törtként megadott számot tizedes törtté alakít át. -DOLLARFR = DOLLARFR ## Tizedes törtként megadott számot közönséges törtté alakít át. -DURATION = DURATION ## Periodikus kamatfizetésű értékpapír éves kamatérzékenységét adja eredményül. -EFFECT = EFFECT ## Az éves tényleges kamatláb értékét adja eredményül. -FV = JBÉ ## Befektetés jövőbeli értékét számítja ki. -FVSCHEDULE = FVSCHEDULE ## A kezdőtőke adott kamatlábak szerint megnövelt jövőbeli értékét adja eredményül. -INTRATE = INTRATE ## A lejáratig teljesen lekötött értékpapír kamatrátáját adja eredményül. -IPMT = RRÉSZLET ## Hiteltörlesztésen belül a tőketörlesztés nagyságát számítja ki adott időszakra. -IRR = BMR ## A befektetés belső megtérülési rátáját számítja ki pénzáramláshoz. -ISPMT = LRÉSZLETKAMAT ## A befektetés adott időszakára fizetett kamatot számítja ki. -MDURATION = MDURATION ## Egy 100 Ft névértékű értékpapír Macauley-féle módosított kamatérzékenységét adja eredményül. -MIRR = MEGTÉRÜLÉS ## A befektetés belső megtérülési rátáját számítja ki a költségek és a bevételek különböző kamatlába mellett. -NOMINAL = NOMINAL ## Az éves névleges kamatláb értékét adja eredményül. -NPER = PER.SZÁM ## A törlesztési időszakok számát adja meg. -NPV = NMÉ ## Befektetéshez kapcsolódó pénzáramlás nettó jelenértékét számítja ki ismert pénzáramlás és kamatláb mellett. -ODDFPRICE = ODDFPRICE ## Egy 100 Ft névértékű, a futamidő elején töredék-időszakos értékpapír árát adja eredményül. -ODDFYIELD = ODDFYIELD ## A futamidő elején töredék-időszakos értékpapír hozamát adja eredményül. -ODDLPRICE = ODDLPRICE ## Egy 100 Ft névértékű, a futamidő végén töredék-időszakos értékpapír árát adja eredményül. -ODDLYIELD = ODDLYIELD ## A futamidő végén töredék-időszakos értékpapír hozamát adja eredményül. -PMT = RÉSZLET ## A törlesztési időszakra vonatkozó törlesztési összeget számítja ki. -PPMT = PRÉSZLET ## Hiteltörlesztésen belül a tőketörlesztés nagyságát számítja ki adott időszakra. -PRICE = PRICE ## Egy 100 Ft névértékű, periodikusan kamatozó értékpapír árát adja eredményül. -PRICEDISC = PRICEDISC ## Egy 100 Ft névértékű leszámítolt értékpapír árát adja eredményül. -PRICEMAT = PRICEMAT ## Egy 100 Ft névértékű, a lejáratkor kamatozó értékpapír árát adja eredményül. -PV = MÉ ## Befektetés jelenlegi értékét számítja ki. -RATE = RÁTA ## Egy törlesztési időszakban az egy időszakra eső kamatláb nagyságát számítja ki. -RECEIVED = RECEIVED ## A lejáratig teljesen lekötött értékpapír lejáratakor kapott összegét adja eredményül. -SLN = LCSA ## Tárgyi eszköz egy időszakra eső amortizációját adja meg bruttó érték szerinti lineáris leírási kulcsot alkalmazva. -SYD = SYD ## Tárgyi eszköz értékcsökkenését számítja ki adott időszakra az évek számjegyösszegével dolgozó módszer alapján. -TBILLEQ = TBILLEQ ## Kincstárjegy kötvény-egyenértékű hozamát adja eredményül. -TBILLPRICE = TBILLPRICE ## Egy 100 Ft névértékű kincstárjegy árát adja eredményül. -TBILLYIELD = TBILLYIELD ## Kincstárjegy hozamát adja eredményül. -VDB = ÉCSRI ## Tárgyi eszköz amortizációját számítja ki megadott vagy részidőszakra a csökkenő egyenleg módszerének alkalmazásával. -XIRR = XIRR ## Ütemezett készpénzforgalom (cash flow) belső megtérülési kamatrátáját adja eredményül. -XNPV = XNPV ## Ütemezett készpénzforgalom (cash flow) nettó jelenlegi értékét adja eredményül. -YIELD = YIELD ## Periodikusan kamatozó értékpapír hozamát adja eredményül. -YIELDDISC = YIELDDISC ## Leszámítolt értékpapír (például kincstárjegy) éves hozamát adja eredményül. -YIELDMAT = YIELDMAT ## Lejáratkor kamatozó értékpapír éves hozamát adja eredményül. - - -## -## Information functions Információs függvények -## -CELL = CELLA ## Egy cella formátumára, elhelyezkedésére vagy tartalmára vonatkozó adatokat ad eredményül. -ERROR.TYPE = HIBA.TÍPUS ## Egy hibatípushoz tartozó számot ad eredményül. -INFO = INFÓ ## A rendszer- és munkakörnyezet pillanatnyi állapotáról ad felvilágosítást. -ISBLANK = ÜRES ## Eredménye IGAZ, ha az érték üres. -ISERR = HIBA ## Eredménye IGAZ, ha az érték valamelyik hibaérték a #HIÁNYZIK kivételével. -ISERROR = HIBÁS ## Eredménye IGAZ, ha az érték valamelyik hibaérték. -ISEVEN = ISEVEN ## Eredménye IGAZ, ha argumentuma páros szám. -ISLOGICAL = LOGIKAI ## Eredménye IGAZ, ha az érték logikai érték. -ISNA = NINCS ## Eredménye IGAZ, ha az érték a #HIÁNYZIK hibaérték. -ISNONTEXT = NEM.SZÖVEG ## Eredménye IGAZ, ha az érték nem szöveg. -ISNUMBER = SZÁM ## Eredménye IGAZ, ha az érték szám. -ISODD = ISODD ## Eredménye IGAZ, ha argumentuma páratlan szám. -ISREF = HIVATKOZÁS ## Eredménye IGAZ, ha az érték hivatkozás. -ISTEXT = SZÖVEG.E ## Eredménye IGAZ, ha az érték szöveg. -N = N ## Argumentumának értékét számmá alakítja. -NA = HIÁNYZIK ## Eredménye a #HIÁNYZIK hibaérték. -TYPE = TÍPUS ## Érték adattípusának azonosítószámát adja eredményül. - - -## -## Logical functions Logikai függvények -## -AND = ÉS ## Eredménye IGAZ, ha minden argumentuma IGAZ. -FALSE = HAMIS ## A HAMIS logikai értéket adja eredményül. -IF = HA ## Logikai vizsgálatot hajt végre. -IFERROR = HAHIBA ## A megadott értéket adja vissza, ha egy képlet hibához vezet; más esetben a képlet értékét adja eredményül. -NOT = NEM ## Argumentuma értékének ellentettjét adja eredményül. -OR = VAGY ## Eredménye IGAZ, ha bármely argumentuma IGAZ. -TRUE = IGAZ ## Az IGAZ logikai értéket adja eredményül. - - -## -## Lookup and reference functions Keresési és hivatkozási függvények -## -ADDRESS = CÍM ## A munkalap egy cellájára való hivatkozást adja szövegként eredményül. -AREAS = TERÜLET ## Hivatkozásban a területek számát adja eredményül. -CHOOSE = VÁLASZT ## Értékek listájából választ ki egy elemet. -COLUMN = OSZLOP ## Egy hivatkozás oszlopszámát adja eredményül. -COLUMNS = OSZLOPOK ## A hivatkozásban található oszlopok számát adja eredményül. -HLOOKUP = VKERES ## A megadott tömb felső sorában adott értékű elemet keres, és a megtalált elem oszlopából adott sorban elhelyezkedő értékkel tér vissza. -HYPERLINK = HIPERHIVATKOZÁS ## Hálózati kiszolgálón, intraneten vagy az interneten tárolt dokumentumot megnyitó parancsikont vagy hivatkozást hoz létre. -INDEX = INDEX ## Tömb- vagy hivatkozás indexszel megadott értékét adja vissza. -INDIRECT = INDIREKT ## Szöveg megadott hivatkozást ad eredményül. -LOOKUP = KERES ## Vektorban vagy tömbben keres meg értékeket. -MATCH = HOL.VAN ## Hivatkozásban vagy tömbben értékeket keres. -OFFSET = OFSZET ## Hivatkozás egy másik hivatkozástól számított távolságát adja meg. -ROW = SOR ## Egy hivatkozás sorának számát adja meg. -ROWS = SOROK ## Egy hivatkozás sorainak számát adja meg. -RTD = RTD ## Valós idejű adatokat keres vissza a COM automatizmust (automatizálás: Egy alkalmazás objektumaival való munka másik alkalmazásból vagy fejlesztőeszközből. A korábban OLE automatizmusnak nevezett automatizálás iparági szabvány, a Component Object Model (COM) szolgáltatása.) támogató programból. -TRANSPOSE = TRANSZPONÁLÁS ## Egy tömb transzponáltját adja eredményül. -VLOOKUP = FKERES ## A megadott tömb bal szélső oszlopában megkeres egy értéket, majd annak sora és a megadott oszlop metszéspontjában levő értéked adja eredményül. - - -## -## Math and trigonometry functions Matematikai és trigonometrikus függvények -## -ABS = ABS ## Egy szám abszolút értékét adja eredményül. -ACOS = ARCCOS ## Egy szám arkusz koszinuszát számítja ki. -ACOSH = ACOSH ## Egy szám inverz koszinusz hiperbolikuszát számítja ki. -ASIN = ARCSIN ## Egy szám arkusz szinuszát számítja ki. -ASINH = ASINH ## Egy szám inverz szinusz hiperbolikuszát számítja ki. -ATAN = ARCTAN ## Egy szám arkusz tangensét számítja ki. -ATAN2 = ARCTAN2 ## X és y koordináták alapján számítja ki az arkusz tangens értéket. -ATANH = ATANH ## A szám inverz tangens hiperbolikuszát számítja ki. -CEILING = PLAFON ## Egy számot a legközelebbi egészre vagy a pontosságként megadott érték legközelebb eső többszörösére kerekít. -COMBIN = KOMBINÁCIÓK ## Adott számú objektum összes lehetséges kombinációinak számát számítja ki. -COS = COS ## Egy szám koszinuszát számítja ki. -COSH = COSH ## Egy szám koszinusz hiperbolikuszát számítja ki. -DEGREES = FOK ## Radiánt fokká alakít át. -EVEN = PÁROS ## Egy számot a legközelebbi páros egész számra kerekít. -EXP = KITEVŐ ## Az e adott kitevőjű hatványát adja eredményül. -FACT = FAKT ## Egy szám faktoriálisát számítja ki. -FACTDOUBLE = FACTDOUBLE ## Egy szám dupla faktoriálisát adja eredményül. -FLOOR = PADLÓ ## Egy számot lefelé, a nulla felé kerekít. -GCD = GCD ## A legnagyobb közös osztót adja eredményül. -INT = INT ## Egy számot lefelé kerekít a legközelebbi egészre. -LCM = LCM ## A legkisebb közös többszöröst adja eredményül. -LN = LN ## Egy szám természetes logaritmusát számítja ki. -LOG = LOG ## Egy szám adott alapú logaritmusát számítja ki. -LOG10 = LOG10 ## Egy szám 10-es alapú logaritmusát számítja ki. -MDETERM = MDETERM ## Egy tömb mátrix-determinánsát számítja ki. -MINVERSE = INVERZ.MÁTRIX ## Egy tömb mátrix inverzét adja eredményül. -MMULT = MSZORZAT ## Két tömb mátrix-szorzatát adja meg. -MOD = MARADÉK ## Egy szám osztási maradékát adja eredményül. -MROUND = MROUND ## A kívánt többszörösére kerekített értéket ad eredményül. -MULTINOMIAL = MULTINOMIAL ## Számhalmaz multinomiálisát adja eredményül. -ODD = PÁRATLAN ## Egy számot a legközelebbi páratlan számra kerekít. -PI = PI ## A pi matematikai állandót adja vissza. -POWER = HATVÁNY ## Egy szám adott kitevőjű hatványát számítja ki. -PRODUCT = SZORZAT ## Argumentumai szorzatát számítja ki. -QUOTIENT = QUOTIENT ## Egy hányados egész részét adja eredményül. -RADIANS = RADIÁN ## Fokot radiánná alakít át. -RAND = VÉL ## Egy 0 és 1 közötti véletlen számot ad eredményül. -RANDBETWEEN = RANDBETWEEN ## Megadott számok közé eső véletlen számot állít elő. -ROMAN = RÓMAI ## Egy számot római számokkal kifejezve szövegként ad eredményül. -ROUND = KEREKÍTÉS ## Egy számot adott számú számjegyre kerekít. -ROUNDDOWN = KEREKÍTÉS.LE ## Egy számot lefelé, a nulla felé kerekít. -ROUNDUP = KEREKÍTÉS.FEL ## Egy számot felfelé, a nullától távolabbra kerekít. -SERIESSUM = SERIESSUM ## Hatványsor összegét adja eredményül. -SIGN = ELŐJEL ## Egy szám előjelét adja meg. -SIN = SIN ## Egy szög szinuszát számítja ki. -SINH = SINH ## Egy szám szinusz hiperbolikuszát számítja ki. -SQRT = GYÖK ## Egy szám pozitív négyzetgyökét számítja ki. -SQRTPI = SQRTPI ## A (szám*pi) négyzetgyökét adja eredményül. -SUBTOTAL = RÉSZÖSSZEG ## Lista vagy adatbázis részösszegét adja eredményül. -SUM = SZUM ## Összeadja az argumentumlistájában lévő számokat. -SUMIF = SZUMHA ## A megadott feltételeknek eleget tevő cellákban található értékeket adja össze. -SUMIFS = SZUMHATÖBB ## Több megadott feltételnek eleget tévő tartománycellák összegét adja eredményül. -SUMPRODUCT = SZORZATÖSSZEG ## A megfelelő tömbelemek szorzatának összegét számítja ki. -SUMSQ = NÉGYZETÖSSZEG ## Argumentumai négyzetének összegét számítja ki. -SUMX2MY2 = SZUMX2BŐLY2 ## Két tömb megfelelő elemei négyzetének különbségét összegzi. -SUMX2PY2 = SZUMX2MEGY2 ## Két tömb megfelelő elemei négyzetének összegét összegzi. -SUMXMY2 = SZUMXBŐLY2 ## Két tömb megfelelő elemei különbségének négyzetösszegét számítja ki. -TAN = TAN ## Egy szám tangensét számítja ki. -TANH = TANH ## Egy szám tangens hiperbolikuszát számítja ki. -TRUNC = CSONK ## Egy számot egésszé csonkít. - - -## -## Statistical functions Statisztikai függvények -## -AVEDEV = ÁTL.ELTÉRÉS ## Az adatpontoknak átlaguktól való átlagos abszolút eltérését számítja ki. -AVERAGE = ÁTLAG ## Argumentumai átlagát számítja ki. -AVERAGEA = ÁTLAGA ## Argumentumai átlagát számítja ki (beleértve a számokat, szöveget és logikai értékeket). -AVERAGEIF = ÁTLAGHA ## A megadott feltételnek eleget tévő tartomány celláinak átlagát (számtani közepét) adja eredményül. -AVERAGEIFS = ÁTLAGHATÖBB ## A megadott feltételeknek eleget tévő cellák átlagát (számtani közepét) adja eredményül. -BETADIST = BÉTA.ELOSZLÁS ## A béta-eloszlás függvényt számítja ki. -BETAINV = INVERZ.BÉTA ## Adott béta-eloszláshoz kiszámítja a béta eloszlásfüggvény inverzét. -BINOMDIST = BINOM.ELOSZLÁS ## A diszkrét binomiális eloszlás valószínűségértékét számítja ki. -CHIDIST = KHI.ELOSZLÁS ## A khi-négyzet-eloszlás egyszélű valószínűségértékét számítja ki. -CHIINV = INVERZ.KHI ## A khi-négyzet-eloszlás egyszélű valószínűségértékének inverzét számítja ki. -CHITEST = KHI.PRÓBA ## Függetlenségvizsgálatot hajt végre. -CONFIDENCE = MEGBÍZHATÓSÁG ## Egy statisztikai sokaság várható értékének megbízhatósági intervallumát adja eredményül. -CORREL = KORREL ## Két adathalmaz korrelációs együtthatóját számítja ki. -COUNT = DARAB ## Megszámolja, hogy argumentumlistájában hány szám található. -COUNTA = DARAB2 ## Megszámolja, hogy argumentumlistájában hány érték található. -COUNTBLANK = DARABÜRES ## Egy tartományban összeszámolja az üres cellákat. -COUNTIF = DARABTELI ## Egy tartományban összeszámolja azokat a cellákat, amelyek eleget tesznek a megadott feltételnek. -COUNTIFS = DARABHATÖBB ## Egy tartományban összeszámolja azokat a cellákat, amelyek eleget tesznek több feltételnek. -COVAR = KOVAR ## A kovarianciát, azaz a páronkénti eltérések szorzatának átlagát számítja ki. -CRITBINOM = KRITBINOM ## Azt a legkisebb számot adja eredményül, amelyre a binomiális eloszlásfüggvény értéke nem kisebb egy adott határértéknél. -DEVSQ = SQ ## Az átlagtól való eltérések négyzetének összegét számítja ki. -EXPONDIST = EXP.ELOSZLÁS ## Az exponenciális eloszlás értékét számítja ki. -FDIST = F.ELOSZLÁS ## Az F-eloszlás értékét számítja ki. -FINV = INVERZ.F ## Az F-eloszlás inverzének értékét számítja ki. -FISHER = FISHER ## Fisher-transzformációt hajt végre. -FISHERINV = INVERZ.FISHER ## A Fisher-transzformáció inverzét hajtja végre. -FORECAST = ELŐREJELZÉS ## Az ismert értékek alapján lineáris regresszióval becsült értéket ad eredményül. -FREQUENCY = GYAKORISÁG ## A gyakorisági vagy empirikus eloszlás értékét függőleges tömbként adja eredményül. -FTEST = F.PRÓBA ## Az F-próba értékét adja eredményül. -GAMMADIST = GAMMA.ELOSZLÁS ## A gamma-eloszlás értékét számítja ki. -GAMMAINV = INVERZ.GAMMA ## A gamma-eloszlás eloszlásfüggvénye inverzének értékét számítja ki. -GAMMALN = GAMMALN ## A gamma-függvény természetes logaritmusát számítja ki. -GEOMEAN = MÉRTANI.KÖZÉP ## Argumentumai mértani középértékét számítja ki. -GROWTH = NÖV ## Exponenciális regresszió alapján ad becslést. -HARMEAN = HARM.KÖZÉP ## Argumentumai harmonikus átlagát számítja ki. -HYPGEOMDIST = HIPERGEOM.ELOSZLÁS ## A hipergeometriai eloszlás értékét számítja ki. -INTERCEPT = METSZ ## A regressziós egyenes y tengellyel való metszéspontját határozza meg. -KURT = CSÚCSOSSÁG ## Egy adathalmaz csúcsosságát számítja ki. -LARGE = NAGY ## Egy adathalmaz k-adik legnagyobb elemét adja eredményül. -LINEST = LIN.ILL ## A legkisebb négyzetek módszerével az adatokra illesztett egyenes paramétereit határozza meg. -LOGEST = LOG.ILL ## Az adatokra illesztett exponenciális görbe paramétereit határozza meg. -LOGINV = INVERZ.LOG.ELOSZLÁS ## A lognormális eloszlás inverzét számítja ki. -LOGNORMDIST = LOG.ELOSZLÁS ## A lognormális eloszlásfüggvény értékét számítja ki. -MAX = MAX ## Az argumentumai között szereplő legnagyobb számot adja meg. -MAXA = MAX2 ## Az argumentumai között szereplő legnagyobb számot adja meg (beleértve a számokat, szöveget és logikai értékeket). -MEDIAN = MEDIÁN ## Adott számhalmaz mediánját számítja ki. -MIN = MIN ## Az argumentumai között szereplő legkisebb számot adja meg. -MINA = MIN2 ## Az argumentumai között szereplő legkisebb számot adja meg, beleértve a számokat, szöveget és logikai értékeket. -MODE = MÓDUSZ ## Egy adathalmazból kiválasztja a leggyakrabban előforduló számot. -NEGBINOMDIST = NEGBINOM.ELOSZL ## A negatív binomiális eloszlás értékét számítja ki. -NORMDIST = NORM.ELOSZL ## A normális eloszlás értékét számítja ki. -NORMINV = INVERZ.NORM ## A normális eloszlás eloszlásfüggvénye inverzének értékét számítja ki. -NORMSDIST = STNORMELOSZL ## A standard normális eloszlás eloszlásfüggvényének értékét számítja ki. -NORMSINV = INVERZ.STNORM ## A standard normális eloszlás eloszlásfüggvénye inverzének értékét számítja ki. -PEARSON = PEARSON ## A Pearson-féle korrelációs együtthatót számítja ki. -PERCENTILE = PERCENTILIS ## Egy tartományban található értékek k-adik percentilisét, azaz százalékosztályát adja eredményül. -PERCENTRANK = SZÁZALÉKRANG ## Egy értéknek egy adathalmazon belül vett százalékos rangját (elhelyezkedését) számítja ki. -PERMUT = VARIÁCIÓK ## Adott számú objektum k-ad osztályú ismétlés nélküli variációinak számát számítja ki. -POISSON = POISSON ## A Poisson-eloszlás értékét számítja ki. -PROB = VALÓSZÍNŰSÉG ## Annak valószínűségét számítja ki, hogy adott értékek két határérték közé esnek. -QUARTILE = KVARTILIS ## Egy adathalmaz kvartilisét (negyedszintjét) számítja ki. -RANK = SORSZÁM ## Kiszámítja, hogy egy szám hányadik egy számsorozatban. -RSQ = RNÉGYZET ## Kiszámítja a Pearson-féle szorzatmomentum korrelációs együtthatójának négyzetét. -SKEW = FERDESÉG ## Egy eloszlás ferdeségét határozza meg. -SLOPE = MEREDEKSÉG ## Egy lineáris regressziós egyenes meredekségét számítja ki. -SMALL = KICSI ## Egy adathalmaz k-adik legkisebb elemét adja meg. -STANDARDIZE = NORMALIZÁLÁS ## Normalizált értéket ad eredményül. -STDEV = SZÓRÁS ## Egy statisztikai sokaság mintájából kiszámítja annak szórását. -STDEVA = SZÓRÁSA ## Egy statisztikai sokaság mintájából kiszámítja annak szórását (beleértve a számokat, szöveget és logikai értékeket). -STDEVP = SZÓRÁSP ## Egy statisztikai sokaság egészéből kiszámítja annak szórását. -STDEVPA = SZÓRÁSPA ## Egy statisztikai sokaság egészéből kiszámítja annak szórását (beleértve számokat, szöveget és logikai értékeket). -STEYX = STHIBAYX ## Egy regresszió esetén az egyes x-értékek alapján meghatározott y-értékek standard hibáját számítja ki. -TDIST = T.ELOSZLÁS ## A Student-féle t-eloszlás értékét számítja ki. -TINV = INVERZ.T ## A Student-féle t-eloszlás inverzét számítja ki. -TREND = TREND ## Lineáris trend értékeit számítja ki. -TRIMMEAN = RÉSZÁTLAG ## Egy adathalmaz középső részének átlagát számítja ki. -TTEST = T.PRÓBA ## A Student-féle t-próbához tartozó valószínűséget számítja ki. -VAR = VAR ## Minta alapján becslést ad a varianciára. -VARA = VARA ## Minta alapján becslést ad a varianciára (beleértve számokat, szöveget és logikai értékeket). -VARP = VARP ## Egy statisztikai sokaság varianciáját számítja ki. -VARPA = VARPA ## Egy statisztikai sokaság varianciáját számítja ki (beleértve számokat, szöveget és logikai értékeket). -WEIBULL = WEIBULL ## A Weibull-féle eloszlás értékét számítja ki. -ZTEST = Z.PRÓBA ## Az egyszélű z-próbával kapott valószínűségértéket számítja ki. - - -## -## Text functions Szövegműveletekhez használható függvények -## -ASC = ASC ## Szöveg teljes szélességű (kétbájtos) latin és katakana karaktereit félszélességű (egybájtos) karakterekké alakítja. -BAHTTEXT = BAHTSZÖVEG ## Számot szöveggé alakít a ß (baht) pénznemformátum használatával. -CHAR = KARAKTER ## A kódszámmal meghatározott karaktert adja eredményül. -CLEAN = TISZTÍT ## A szövegből eltávolítja az összes nem nyomtatható karaktert. -CODE = KÓD ## Karaktersorozat első karakterének numerikus kódját adja eredményül. -CONCATENATE = ÖSSZEFŰZ ## Több szövegelemet egyetlen szöveges elemmé fűz össze. -DOLLAR = FORINT ## Számot pénznem formátumú szöveggé alakít át. -EXACT = AZONOS ## Megvizsgálja, hogy két érték azonos-e. -FIND = SZÖVEG.TALÁL ## Karaktersorozatot keres egy másikban (a kis- és nagybetűk megkülönböztetésével). -FINDB = SZÖVEG.TALÁL2 ## Karaktersorozatot keres egy másikban (a kis- és nagybetűk megkülönböztetésével). -FIXED = FIX ## Számot szöveges formátumúra alakít adott számú tizedesjegyre kerekítve. -JIS = JIS ## A félszélességű (egybájtos) latin és a katakana karaktereket teljes szélességű (kétbájtos) karakterekké alakítja. -LEFT = BAL ## Szöveg bal szélső karaktereit adja eredményül. -LEFTB = BAL2 ## Szöveg bal szélső karaktereit adja eredményül. -LEN = HOSSZ ## Szöveg karakterekben mért hosszát adja eredményül. -LENB = HOSSZ2 ## Szöveg karakterekben mért hosszát adja eredményül. -LOWER = KISBETŰ ## Szöveget kisbetűssé alakít át. -MID = KÖZÉP ## A szöveg adott pozíciójától kezdve megadott számú karaktert ad vissza eredményként. -MIDB = KÖZÉP2 ## A szöveg adott pozíciójától kezdve megadott számú karaktert ad vissza eredményként. -PHONETIC = PHONETIC ## Szöveg furigana (fonetikus) karaktereit adja vissza. -PROPER = TNÉV ## Szöveg minden szavának kezdőbetűjét nagybetűsre cseréli. -REPLACE = CSERE ## A szövegen belül karaktereket cserél. -REPLACEB = CSERE2 ## A szövegen belül karaktereket cserél. -REPT = SOKSZOR ## Megadott számú alkalommal megismétel egy szövegrészt. -RIGHT = JOBB ## Szövegrész jobb szélső karaktereit adja eredményül. -RIGHTB = JOBB2 ## Szövegrész jobb szélső karaktereit adja eredményül. -SEARCH = SZÖVEG.KERES ## Karaktersorozatot keres egy másikban (a kis- és nagybetűk között nem tesz különbséget). -SEARCHB = SZÖVEG.KERES2 ## Karaktersorozatot keres egy másikban (a kis- és nagybetűk között nem tesz különbséget). -SUBSTITUTE = HELYETTE ## Szövegben adott karaktereket másikra cserél. -T = T ## Argumentumát szöveggé alakítja át. -TEXT = SZÖVEG ## Számértéket alakít át adott számformátumú szöveggé. -TRIM = TRIM ## A szövegből eltávolítja a szóközöket. -UPPER = NAGYBETŰS ## Szöveget nagybetűssé alakít át. -VALUE = ÉRTÉK ## Szöveget számmá alakít át. diff --git a/Utils/PHPExcel/locale/it/config b/Utils/PHPExcel/locale/it/config deleted file mode 100644 index b414fdf..0000000 --- a/Utils/PHPExcel/locale/it/config +++ /dev/null @@ -1,49 +0,0 @@ -## -## PHPExcel -## - -## Copyright (c) 2006 - 2013 PHPExcel -## -## This library is free software; you can redistribute it and/or -## modify it under the terms of the GNU Lesser General Public -## License as published by the Free Software Foundation; either -## version 2.1 of the License, or (at your option) any later version. -## -## This library is distributed in the hope that it will be useful, -## but WITHOUT ANY WARRANTY; without even the implied warranty of -## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -## Lesser General Public License for more details. -## -## You should have received a copy of the GNU Lesser General Public -## License along with this library; if not, write to the Free Software -## Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA -## -## @category PHPExcel -## @package PHPExcel_Settings -## @copyright Copyright (c) 2006 - 2013 PHPExcel (http://www.codeplex.com/PHPExcel) -## @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL -## @version ##VERSION##, ##DATE## -## -## - - -ArgumentSeparator = ; - - -## -## (For future use) -## -currencySymbol = € - - -## -## Excel Error Codes (For future use) - -## -NULL = #NULLO! -DIV0 = #DIV/0! -VALUE = #VALORE! -REF = #RIF! -NAME = #NOME? -NUM = #NUM! -NA = #N/D diff --git a/Utils/PHPExcel/locale/it/functions b/Utils/PHPExcel/locale/it/functions deleted file mode 100644 index 74e2c44..0000000 --- a/Utils/PHPExcel/locale/it/functions +++ /dev/null @@ -1,439 +0,0 @@ -## -## PHPExcel -## - -## Copyright (c) 2006 - 2013 PHPExcel -## -## This library is free software; you can redistribute it and/or -## modify it under the terms of the GNU Lesser General Public -## License as published by the Free Software Foundation; either -## version 2.1 of the License, or (at your option) any later version. -## -## This library is distributed in the hope that it will be useful, -## but WITHOUT ANY WARRANTY; without even the implied warranty of -## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -## Lesser General Public License for more details. -## -## You should have received a copy of the GNU Lesser General Public -## License along with this library; if not, write to the Free Software -## Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA -## -## @category PHPExcel -## @package PHPExcel_Calculation -## @copyright Copyright (c) 2006 - 2013 PHPExcel (http://www.codeplex.com/PHPExcel) -## @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL -## @version ##VERSION##, ##DATE## -## -## Data in this file derived from http://www.piuha.fi/excel-function-name-translation/ -## -## - - -## -## Add-in and Automation functions Funzioni di automazione e dei componenti aggiuntivi -## -GETPIVOTDATA = INFO.DATI.TAB.PIVOT ## Restituisce i dati memorizzati in un rapporto di tabella pivot - - -## -## Cube functions Funzioni cubo -## -CUBEKPIMEMBER = MEMBRO.KPI.CUBO ## Restituisce il nome, la proprietà e la misura di un indicatore di prestazioni chiave (KPI) e visualizza il nome e la proprietà nella cella. Un KPI è una misura quantificabile, ad esempio l'utile lordo mensile o il fatturato trimestrale dei dipendenti, utilizzata per il monitoraggio delle prestazioni di un'organizzazione. -CUBEMEMBER = MEMBRO.CUBO ## Restituisce un membro o una tupla in una gerarchia di cubi. Consente di verificare l'esistenza del membro o della tupla nel cubo. -CUBEMEMBERPROPERTY = PROPRIETÀ.MEMBRO.CUBO ## Restituisce il valore di una proprietà di un membro del cubo. Consente di verificare l'esistenza di un nome di membro all'interno del cubo e di restituire la proprietà specificata per tale membro. -CUBERANKEDMEMBER = MEMBRO.CUBO.CON.RANGO ## Restituisce l'n-esimo membro o il membro ordinato di un insieme. Consente di restituire uno o più elementi in un insieme, ad esempio l'agente di vendita migliore o i primi 10 studenti. -CUBESET = SET.CUBO ## Definisce un insieme di tuple o membri calcolati mediante l'invio di un'espressione di insieme al cubo sul server. In questo modo l'insieme viene creato e restituito a Microsoft Office Excel. -CUBESETCOUNT = CONTA.SET.CUBO ## Restituisce il numero di elementi di un insieme. -CUBEVALUE = VALORE.CUBO ## Restituisce un valore aggregato da un cubo. - - -## -## Database functions Funzioni di database -## -DAVERAGE = DB.MEDIA ## Restituisce la media di voci del database selezionate -DCOUNT = DB.CONTA.NUMERI ## Conta le celle di un database contenenti numeri -DCOUNTA = DB.CONTA.VALORI ## Conta le celle non vuote in un database -DGET = DB.VALORI ## Estrae da un database un singolo record che soddisfa i criteri specificati -DMAX = DB.MAX ## Restituisce il valore massimo dalle voci selezionate in un database -DMIN = DB.MIN ## Restituisce il valore minimo dalle voci di un database selezionate -DPRODUCT = DB.PRODOTTO ## Moltiplica i valori in un determinato campo di record che soddisfano i criteri del database -DSTDEV = DB.DEV.ST ## Restituisce una stima della deviazione standard sulla base di un campione di voci di un database selezionate -DSTDEVP = DB.DEV.ST.POP ## Calcola la deviazione standard sulla base di tutte le voci di un database selezionate -DSUM = DB.SOMMA ## Aggiunge i numeri nel campo colonna di record del database che soddisfa determinati criteri -DVAR = DB.VAR ## Restituisce una stima della varianza sulla base di un campione da voci di un database selezionate -DVARP = DB.VAR.POP ## Calcola la varianza sulla base di tutte le voci di un database selezionate - - -## -## Date and time functions Funzioni data e ora -## -DATE = DATA ## Restituisce il numero seriale di una determinata data -DATEVALUE = DATA.VALORE ## Converte una data sotto forma di testo in un numero seriale -DAY = GIORNO ## Converte un numero seriale in un giorno del mese -DAYS360 = GIORNO360 ## Calcola il numero di giorni compreso tra due date basandosi su un anno di 360 giorni -EDATE = DATA.MESE ## Restituisce il numero seriale della data che rappresenta il numero di mesi prima o dopo la data di inizio -EOMONTH = FINE.MESE ## Restituisce il numero seriale dell'ultimo giorno del mese, prima o dopo un determinato numero di mesi -HOUR = ORA ## Converte un numero seriale in un'ora -MINUTE = MINUTO ## Converte un numero seriale in un minuto -MONTH = MESE ## Converte un numero seriale in un mese -NETWORKDAYS = GIORNI.LAVORATIVI.TOT ## Restituisce il numero di tutti i giorni lavorativi compresi fra due date -NOW = ADESSO ## Restituisce il numero seriale della data e dell'ora corrente -SECOND = SECONDO ## Converte un numero seriale in un secondo -TIME = ORARIO ## Restituisce il numero seriale di una determinata ora -TIMEVALUE = ORARIO.VALORE ## Converte un orario in forma di testo in un numero seriale -TODAY = OGGI ## Restituisce il numero seriale relativo alla data odierna -WEEKDAY = GIORNO.SETTIMANA ## Converte un numero seriale in un giorno della settimana -WEEKNUM = NUM.SETTIMANA ## Converte un numero seriale in un numero che rappresenta la posizione numerica di una settimana nell'anno -WORKDAY = GIORNO.LAVORATIVO ## Restituisce il numero della data prima o dopo un determinato numero di giorni lavorativi -YEAR = ANNO ## Converte un numero seriale in un anno -YEARFRAC = FRAZIONE.ANNO ## Restituisce la frazione dell'anno che rappresenta il numero dei giorni compresi tra una data_ iniziale e una data_finale - - -## -## Engineering functions Funzioni ingegneristiche -## -BESSELI = BESSEL.I ## Restituisce la funzione di Bessel modificata In(x) -BESSELJ = BESSEL.J ## Restituisce la funzione di Bessel Jn(x) -BESSELK = BESSEL.K ## Restituisce la funzione di Bessel modificata Kn(x) -BESSELY = BESSEL.Y ## Restituisce la funzione di Bessel Yn(x) -BIN2DEC = BINARIO.DECIMALE ## Converte un numero binario in decimale -BIN2HEX = BINARIO.HEX ## Converte un numero binario in esadecimale -BIN2OCT = BINARIO.OCT ## Converte un numero binario in ottale -COMPLEX = COMPLESSO ## Converte i coefficienti reali e immaginari in numeri complessi -CONVERT = CONVERTI ## Converte un numero da un sistema di misura in un altro -DEC2BIN = DECIMALE.BINARIO ## Converte un numero decimale in binario -DEC2HEX = DECIMALE.HEX ## Converte un numero decimale in esadecimale -DEC2OCT = DECIMALE.OCT ## Converte un numero decimale in ottale -DELTA = DELTA ## Verifica se due valori sono uguali -ERF = FUNZ.ERRORE ## Restituisce la funzione di errore -ERFC = FUNZ.ERRORE.COMP ## Restituisce la funzione di errore complementare -GESTEP = SOGLIA ## Verifica se un numero è maggiore del valore di soglia -HEX2BIN = HEX.BINARIO ## Converte un numero esadecimale in binario -HEX2DEC = HEX.DECIMALE ## Converte un numero esadecimale in decimale -HEX2OCT = HEX.OCT ## Converte un numero esadecimale in ottale -IMABS = COMP.MODULO ## Restituisce il valore assoluto (modulo) di un numero complesso -IMAGINARY = COMP.IMMAGINARIO ## Restituisce il coefficiente immaginario di un numero complesso -IMARGUMENT = COMP.ARGOMENTO ## Restituisce l'argomento theta, un angolo espresso in radianti -IMCONJUGATE = COMP.CONIUGATO ## Restituisce il complesso coniugato del numero complesso -IMCOS = COMP.COS ## Restituisce il coseno di un numero complesso -IMDIV = COMP.DIV ## Restituisce il quoziente di due numeri complessi -IMEXP = COMP.EXP ## Restituisce il valore esponenziale di un numero complesso -IMLN = COMP.LN ## Restituisce il logaritmo naturale di un numero complesso -IMLOG10 = COMP.LOG10 ## Restituisce il logaritmo in base 10 di un numero complesso -IMLOG2 = COMP.LOG2 ## Restituisce un logaritmo in base 2 di un numero complesso -IMPOWER = COMP.POTENZA ## Restituisce il numero complesso elevato a una potenza intera -IMPRODUCT = COMP.PRODOTTO ## Restituisce il prodotto di numeri complessi compresi tra 2 e 29 -IMREAL = COMP.PARTE.REALE ## Restituisce il coefficiente reale di un numero complesso -IMSIN = COMP.SEN ## Restituisce il seno di un numero complesso -IMSQRT = COMP.RADQ ## Restituisce la radice quadrata di un numero complesso -IMSUB = COMP.DIFF ## Restituisce la differenza fra due numeri complessi -IMSUM = COMP.SOMMA ## Restituisce la somma di numeri complessi -OCT2BIN = OCT.BINARIO ## Converte un numero ottale in binario -OCT2DEC = OCT.DECIMALE ## Converte un numero ottale in decimale -OCT2HEX = OCT.HEX ## Converte un numero ottale in esadecimale - - -## -## Financial functions Funzioni finanziarie -## -ACCRINT = INT.MATURATO.PER ## Restituisce l'interesse maturato di un titolo che paga interessi periodici -ACCRINTM = INT.MATURATO.SCAD ## Restituisce l'interesse maturato di un titolo che paga interessi alla scadenza -AMORDEGRC = AMMORT.DEGR ## Restituisce l'ammortamento per ogni periodo contabile utilizzando un coefficiente di ammortamento -AMORLINC = AMMORT.PER ## Restituisce l'ammortamento per ogni periodo contabile -COUPDAYBS = GIORNI.CED.INIZ.LIQ ## Restituisce il numero dei giorni che vanno dall'inizio del periodo di durata della cedola alla data di liquidazione -COUPDAYS = GIORNI.CED ## Restituisce il numero dei giorni relativi al periodo della cedola che contiene la data di liquidazione -COUPDAYSNC = GIORNI.CED.NUOVA ## Restituisce il numero di giorni che vanno dalla data di liquidazione alla data della cedola successiva -COUPNCD = DATA.CED.SUCC ## Restituisce un numero che rappresenta la data della cedola successiva alla data di liquidazione -COUPNUM = NUM.CED ## Restituisce il numero di cedole pagabili fra la data di liquidazione e la data di scadenza -COUPPCD = DATA.CED.PREC ## Restituisce un numero che rappresenta la data della cedola precedente alla data di liquidazione -CUMIPMT = INT.CUMUL ## Restituisce l'interesse cumulativo pagato fra due periodi -CUMPRINC = CAP.CUM ## Restituisce il capitale cumulativo pagato per estinguere un debito fra due periodi -DB = DB ## Restituisce l'ammortamento di un bene per un periodo specificato utilizzando il metodo di ammortamento a quote fisse decrescenti -DDB = AMMORT ## Restituisce l'ammortamento di un bene per un periodo specificato utilizzando il metodo di ammortamento a doppie quote decrescenti o altri metodi specificati -DISC = TASSO.SCONTO ## Restituisce il tasso di sconto per un titolo -DOLLARDE = VALUTA.DEC ## Converte un prezzo valuta, espresso come frazione, in prezzo valuta, espresso come numero decimale -DOLLARFR = VALUTA.FRAZ ## Converte un prezzo valuta, espresso come numero decimale, in prezzo valuta, espresso come frazione -DURATION = DURATA ## Restituisce la durata annuale di un titolo con i pagamenti di interesse periodico -EFFECT = EFFETTIVO ## Restituisce l'effettivo tasso di interesse annuo -FV = VAL.FUT ## Restituisce il valore futuro di un investimento -FVSCHEDULE = VAL.FUT.CAPITALE ## Restituisce il valore futuro di un capitale iniziale dopo aver applicato una serie di tassi di interesse composti -INTRATE = TASSO.INT ## Restituisce il tasso di interesse per un titolo interamente investito -IPMT = INTERESSI ## Restituisce il valore degli interessi per un investimento relativo a un periodo specifico -IRR = TIR.COST ## Restituisce il tasso di rendimento interno per una serie di flussi di cassa -ISPMT = INTERESSE.RATA ## Calcola l'interesse di un investimento pagato durante un periodo specifico -MDURATION = DURATA.M ## Restituisce la durata Macauley modificata per un titolo con un valore presunto di € 100 -MIRR = TIR.VAR ## Restituisce il tasso di rendimento interno in cui i flussi di cassa positivi e negativi sono finanziati a tassi differenti -NOMINAL = NOMINALE ## Restituisce il tasso di interesse nominale annuale -NPER = NUM.RATE ## Restituisce un numero di periodi relativi a un investimento -NPV = VAN ## Restituisce il valore attuale netto di un investimento basato su una serie di flussi di cassa periodici e sul tasso di sconto -ODDFPRICE = PREZZO.PRIMO.IRR ## Restituisce il prezzo di un titolo dal valore nominale di € 100 avente il primo periodo di durata irregolare -ODDFYIELD = REND.PRIMO.IRR ## Restituisce il rendimento di un titolo avente il primo periodo di durata irregolare -ODDLPRICE = PREZZO.ULTIMO.IRR ## Restituisce il prezzo di un titolo dal valore nominale di € 100 avente l'ultimo periodo di durata irregolare -ODDLYIELD = REND.ULTIMO.IRR ## Restituisce il rendimento di un titolo avente l'ultimo periodo di durata irregolare -PMT = RATA ## Restituisce il pagamento periodico di una rendita annua -PPMT = P.RATA ## Restituisce il pagamento sul capitale di un investimento per un dato periodo -PRICE = PREZZO ## Restituisce il prezzo di un titolo dal valore nominale di € 100 che paga interessi periodici -PRICEDISC = PREZZO.SCONT ## Restituisce il prezzo di un titolo scontato dal valore nominale di € 100 -PRICEMAT = PREZZO.SCAD ## Restituisce il prezzo di un titolo dal valore nominale di € 100 che paga gli interessi alla scadenza -PV = VA ## Restituisce il valore attuale di un investimento -RATE = TASSO ## Restituisce il tasso di interesse per un periodo di un'annualità -RECEIVED = RICEV.SCAD ## Restituisce l'ammontare ricevuto alla scadenza di un titolo interamente investito -SLN = AMMORT.COST ## Restituisce l'ammortamento a quote costanti di un bene per un singolo periodo -SYD = AMMORT.ANNUO ## Restituisce l'ammortamento a somma degli anni di un bene per un periodo specificato -TBILLEQ = BOT.EQUIV ## Restituisce il rendimento equivalente ad un'obbligazione per un Buono ordinario del Tesoro -TBILLPRICE = BOT.PREZZO ## Restituisce il prezzo di un Buono del Tesoro dal valore nominale di € 100 -TBILLYIELD = BOT.REND ## Restituisce il rendimento di un Buono del Tesoro -VDB = AMMORT.VAR ## Restituisce l'ammortamento di un bene per un periodo specificato o parziale utilizzando il metodo a doppie quote proporzionali ai valori residui -XIRR = TIR.X ## Restituisce il tasso di rendimento interno di un impiego di flussi di cassa -XNPV = VAN.X ## Restituisce il valore attuale netto di un impiego di flussi di cassa non necessariamente periodici -YIELD = REND ## Restituisce il rendimento di un titolo che frutta interessi periodici -YIELDDISC = REND.TITOLI.SCONT ## Restituisce il rendimento annuale di un titolo scontato, ad esempio un Buono del Tesoro -YIELDMAT = REND.SCAD ## Restituisce il rendimento annuo di un titolo che paga interessi alla scadenza - - -## -## Information functions Funzioni relative alle informazioni -## -CELL = CELLA ## Restituisce le informazioni sulla formattazione, la posizione o i contenuti di una cella -ERROR.TYPE = ERRORE.TIPO ## Restituisce un numero che corrisponde a un tipo di errore -INFO = INFO ## Restituisce le informazioni sull'ambiente operativo corrente -ISBLANK = VAL.VUOTO ## Restituisce VERO se il valore è vuoto -ISERR = VAL.ERR ## Restituisce VERO se il valore è un valore di errore qualsiasi tranne #N/D -ISERROR = VAL.ERRORE ## Restituisce VERO se il valore è un valore di errore qualsiasi -ISEVEN = VAL.PARI ## Restituisce VERO se il numero è pari -ISLOGICAL = VAL.LOGICO ## Restituisce VERO se il valore è un valore logico -ISNA = VAL.NON.DISP ## Restituisce VERO se il valore è un valore di errore #N/D -ISNONTEXT = VAL.NON.TESTO ## Restituisce VERO se il valore non è in formato testo -ISNUMBER = VAL.NUMERO ## Restituisce VERO se il valore è un numero -ISODD = VAL.DISPARI ## Restituisce VERO se il numero è dispari -ISREF = VAL.RIF ## Restituisce VERO se il valore è un riferimento -ISTEXT = VAL.TESTO ## Restituisce VERO se il valore è in formato testo -N = NUM ## Restituisce un valore convertito in numero -NA = NON.DISP ## Restituisce il valore di errore #N/D -TYPE = TIPO ## Restituisce un numero che indica il tipo di dati relativi a un valore - - -## -## Logical functions Funzioni logiche -## -AND = E ## Restituisce VERO se tutti gli argomenti sono VERO -FALSE = FALSO ## Restituisce il valore logico FALSO -IF = SE ## Specifica un test logico da eseguire -IFERROR = SE.ERRORE ## Restituisce un valore specificato se una formula fornisce un errore come risultato; in caso contrario, restituisce il risultato della formula -NOT = NON ## Inverte la logica degli argomenti -OR = O ## Restituisce VERO se un argomento qualsiasi è VERO -TRUE = VERO ## Restituisce il valore logico VERO - - -## -## Lookup and reference functions Funzioni di ricerca e di riferimento -## -ADDRESS = INDIRIZZO ## Restituisce un riferimento come testo in una singola cella di un foglio di lavoro -AREAS = AREE ## Restituisce il numero di aree in un riferimento -CHOOSE = SCEGLI ## Sceglie un valore da un elenco di valori -COLUMN = RIF.COLONNA ## Restituisce il numero di colonna di un riferimento -COLUMNS = COLONNE ## Restituisce il numero di colonne in un riferimento -HLOOKUP = CERCA.ORIZZ ## Effettua una ricerca nella riga superiore di una matrice e restituisce il valore della cella specificata -HYPERLINK = COLLEG.IPERTESTUALE ## Crea un collegamento che apre un documento memorizzato in un server di rete, una rete Intranet o Internet -INDEX = INDICE ## Utilizza un indice per scegliere un valore da un riferimento o da una matrice -INDIRECT = INDIRETTO ## Restituisce un riferimento specificato da un valore testo -LOOKUP = CERCA ## Ricerca i valori in un vettore o in una matrice -MATCH = CONFRONTA ## Ricerca i valori in un riferimento o in una matrice -OFFSET = SCARTO ## Restituisce uno scarto di riferimento da un riferimento dato -ROW = RIF.RIGA ## Restituisce il numero di riga di un riferimento -ROWS = RIGHE ## Restituisce il numero delle righe in un riferimento -RTD = DATITEMPOREALE ## Recupera dati in tempo reale da un programma che supporta l'automazione COM (automazione: Metodo per utilizzare gli oggetti di un'applicazione da un'altra applicazione o da un altro strumento di sviluppo. Precedentemente nota come automazione OLE, l'automazione è uno standard del settore e una caratteristica del modello COM (Component Object Model).) -TRANSPOSE = MATR.TRASPOSTA ## Restituisce la trasposizione di una matrice -VLOOKUP = CERCA.VERT ## Effettua una ricerca nella prima colonna di una matrice e si sposta attraverso la riga per restituire il valore di una cella - - -## -## Math and trigonometry functions Funzioni matematiche e trigonometriche -## -ABS = ASS ## Restituisce il valore assoluto di un numero. -ACOS = ARCCOS ## Restituisce l'arcocoseno di un numero -ACOSH = ARCCOSH ## Restituisce l'inverso del coseno iperbolico di un numero -ASIN = ARCSEN ## Restituisce l'arcoseno di un numero -ASINH = ARCSENH ## Restituisce l'inverso del seno iperbolico di un numero -ATAN = ARCTAN ## Restituisce l'arcotangente di un numero -ATAN2 = ARCTAN.2 ## Restituisce l'arcotangente delle coordinate x e y specificate -ATANH = ARCTANH ## Restituisce l'inverso della tangente iperbolica di un numero -CEILING = ARROTONDA.ECCESSO ## Arrotonda un numero per eccesso all'intero più vicino o al multiplo più vicino a peso -COMBIN = COMBINAZIONE ## Restituisce il numero di combinazioni possibili per un numero assegnato di elementi -COS = COS ## Restituisce il coseno dell'angolo specificato -COSH = COSH ## Restituisce il coseno iperbolico di un numero -DEGREES = GRADI ## Converte i radianti in gradi -EVEN = PARI ## Arrotonda il valore assoluto di un numero per eccesso al più vicino intero pari -EXP = ESP ## Restituisce il numero e elevato alla potenza di num -FACT = FATTORIALE ## Restituisce il fattoriale di un numero -FACTDOUBLE = FATT.DOPPIO ## Restituisce il fattoriale doppio di un numero -FLOOR = ARROTONDA.DIFETTO ## Arrotonda un numero per difetto al multiplo più vicino a zero -GCD = MCD ## Restituisce il massimo comune divisore -INT = INT ## Arrotonda un numero per difetto al numero intero più vicino -LCM = MCM ## Restituisce il minimo comune multiplo -LN = LN ## Restituisce il logaritmo naturale di un numero -LOG = LOG ## Restituisce il logaritmo di un numero in una specificata base -LOG10 = LOG10 ## Restituisce il logaritmo in base 10 di un numero -MDETERM = MATR.DETERM ## Restituisce il determinante di una matrice -MINVERSE = MATR.INVERSA ## Restituisce l'inverso di una matrice -MMULT = MATR.PRODOTTO ## Restituisce il prodotto di due matrici -MOD = RESTO ## Restituisce il resto della divisione -MROUND = ARROTONDA.MULTIPLO ## Restituisce un numero arrotondato al multiplo desiderato -MULTINOMIAL = MULTINOMIALE ## Restituisce il multinomiale di un insieme di numeri -ODD = DISPARI ## Arrotonda un numero per eccesso al più vicino intero dispari -PI = PI.GRECO ## Restituisce il valore di pi greco -POWER = POTENZA ## Restituisce il risultato di un numero elevato a potenza -PRODUCT = PRODOTTO ## Moltiplica i suoi argomenti -QUOTIENT = QUOZIENTE ## Restituisce la parte intera di una divisione -RADIANS = RADIANTI ## Converte i gradi in radianti -RAND = CASUALE ## Restituisce un numero casuale compreso tra 0 e 1 -RANDBETWEEN = CASUALE.TRA ## Restituisce un numero casuale compreso tra i numeri specificati -ROMAN = ROMANO ## Restituisce il numero come numero romano sotto forma di testo -ROUND = ARROTONDA ## Arrotonda il numero al numero di cifre specificato -ROUNDDOWN = ARROTONDA.PER.DIF ## Arrotonda il valore assoluto di un numero per difetto -ROUNDUP = ARROTONDA.PER.ECC ## Arrotonda il valore assoluto di un numero per eccesso -SERIESSUM = SOMMA.SERIE ## Restituisce la somma di una serie di potenze in base alla formula -SIGN = SEGNO ## Restituisce il segno di un numero -SIN = SEN ## Restituisce il seno di un dato angolo -SINH = SENH ## Restituisce il seno iperbolico di un numero -SQRT = RADQ ## Restituisce una radice quadrata -SQRTPI = RADQ.PI.GRECO ## Restituisce la radice quadrata di un numero (numero * pi greco) -SUBTOTAL = SUBTOTALE ## Restituisce un subtotale in un elenco o in un database -SUM = SOMMA ## Somma i suoi argomenti -SUMIF = SOMMA.SE ## Somma le celle specificate da un dato criterio -SUMIFS = SOMMA.PIÙ.SE ## Somma le celle in un intervallo che soddisfano più criteri -SUMPRODUCT = MATR.SOMMA.PRODOTTO ## Restituisce la somma dei prodotti dei componenti corrispondenti della matrice -SUMSQ = SOMMA.Q ## Restituisce la somma dei quadrati degli argomenti -SUMX2MY2 = SOMMA.DIFF.Q ## Restituisce la somma della differenza dei quadrati dei corrispondenti elementi in due matrici -SUMX2PY2 = SOMMA.SOMMA.Q ## Restituisce la somma della somma dei quadrati dei corrispondenti elementi in due matrici -SUMXMY2 = SOMMA.Q.DIFF ## Restituisce la somma dei quadrati delle differenze dei corrispondenti elementi in due matrici -TAN = TAN ## Restituisce la tangente di un numero -TANH = TANH ## Restituisce la tangente iperbolica di un numero -TRUNC = TRONCA ## Tronca la parte decimale di un numero - - -## -## Statistical functions Funzioni statistiche -## -AVEDEV = MEDIA.DEV ## Restituisce la media delle deviazioni assolute delle coordinate rispetto alla loro media -AVERAGE = MEDIA ## Restituisce la media degli argomenti -AVERAGEA = MEDIA.VALORI ## Restituisce la media degli argomenti, inclusi i numeri, il testo e i valori logici -AVERAGEIF = MEDIA.SE ## Restituisce la media aritmetica di tutte le celle in un intervallo che soddisfano un determinato criterio -AVERAGEIFS = MEDIA.PIÙ.SE ## Restituisce la media aritmetica di tutte le celle che soddisfano più criteri -BETADIST = DISTRIB.BETA ## Restituisce la funzione di distribuzione cumulativa beta -BETAINV = INV.BETA ## Restituisce l'inverso della funzione di distribuzione cumulativa per una distribuzione beta specificata -BINOMDIST = DISTRIB.BINOM ## Restituisce la distribuzione binomiale per il termine individuale -CHIDIST = DISTRIB.CHI ## Restituisce la probabilità a una coda per la distribuzione del chi quadrato -CHIINV = INV.CHI ## Restituisce l'inverso della probabilità ad una coda per la distribuzione del chi quadrato -CHITEST = TEST.CHI ## Restituisce il test per l'indipendenza -CONFIDENCE = CONFIDENZA ## Restituisce l'intervallo di confidenza per una popolazione -CORREL = CORRELAZIONE ## Restituisce il coefficiente di correlazione tra due insiemi di dati -COUNT = CONTA.NUMERI ## Conta la quantità di numeri nell'elenco di argomenti -COUNTA = CONTA.VALORI ## Conta il numero di valori nell'elenco di argomenti -COUNTBLANK = CONTA.VUOTE ## Conta il numero di celle vuote all'interno di un intervallo -COUNTIF = CONTA.SE ## Conta il numero di celle all'interno di un intervallo che soddisfa i criteri specificati -COUNTIFS = CONTA.PIÙ.SE ## Conta il numero di celle in un intervallo che soddisfano più criteri. -COVAR = COVARIANZA ## Calcola la covarianza, la media dei prodotti delle deviazioni accoppiate -CRITBINOM = CRIT.BINOM ## Restituisce il più piccolo valore per il quale la distribuzione cumulativa binomiale risulta maggiore o uguale ad un valore di criterio -DEVSQ = DEV.Q ## Restituisce la somma dei quadrati delle deviazioni -EXPONDIST = DISTRIB.EXP ## Restituisce la distribuzione esponenziale -FDIST = DISTRIB.F ## Restituisce la distribuzione di probabilità F -FINV = INV.F ## Restituisce l'inverso della distribuzione della probabilità F -FISHER = FISHER ## Restituisce la trasformazione di Fisher -FISHERINV = INV.FISHER ## Restituisce l'inverso della trasformazione di Fisher -FORECAST = PREVISIONE ## Restituisce i valori lungo una tendenza lineare -FREQUENCY = FREQUENZA ## Restituisce la distribuzione di frequenza come matrice verticale -FTEST = TEST.F ## Restituisce il risultato di un test F -GAMMADIST = DISTRIB.GAMMA ## Restituisce la distribuzione gamma -GAMMAINV = INV.GAMMA ## Restituisce l'inverso della distribuzione cumulativa gamma -GAMMALN = LN.GAMMA ## Restituisce il logaritmo naturale della funzione gamma, G(x) -GEOMEAN = MEDIA.GEOMETRICA ## Restituisce la media geometrica -GROWTH = CRESCITA ## Restituisce i valori lungo una linea di tendenza esponenziale -HARMEAN = MEDIA.ARMONICA ## Restituisce la media armonica -HYPGEOMDIST = DISTRIB.IPERGEOM ## Restituisce la distribuzione ipergeometrica -INTERCEPT = INTERCETTA ## Restituisce l'intercetta della retta di regressione lineare -KURT = CURTOSI ## Restituisce la curtosi di un insieme di dati -LARGE = GRANDE ## Restituisce il k-esimo valore più grande in un insieme di dati -LINEST = REGR.LIN ## Restituisce i parametri di una tendenza lineare -LOGEST = REGR.LOG ## Restituisce i parametri di una linea di tendenza esponenziale -LOGINV = INV.LOGNORM ## Restituisce l'inverso di una distribuzione lognormale -LOGNORMDIST = DISTRIB.LOGNORM ## Restituisce la distribuzione lognormale cumulativa -MAX = MAX ## Restituisce il valore massimo in un elenco di argomenti -MAXA = MAX.VALORI ## Restituisce il valore massimo in un elenco di argomenti, inclusi i numeri, il testo e i valori logici -MEDIAN = MEDIANA ## Restituisce la mediana dei numeri specificati -MIN = MIN ## Restituisce il valore minimo in un elenco di argomenti -MINA = MIN.VALORI ## Restituisce il più piccolo valore in un elenco di argomenti, inclusi i numeri, il testo e i valori logici -MODE = MODA ## Restituisce il valore più comune in un insieme di dati -NEGBINOMDIST = DISTRIB.BINOM.NEG ## Restituisce la distribuzione binomiale negativa -NORMDIST = DISTRIB.NORM ## Restituisce la distribuzione cumulativa normale -NORMINV = INV.NORM ## Restituisce l'inverso della distribuzione cumulativa normale standard -NORMSDIST = DISTRIB.NORM.ST ## Restituisce la distribuzione cumulativa normale standard -NORMSINV = INV.NORM.ST ## Restituisce l'inverso della distribuzione cumulativa normale -PEARSON = PEARSON ## Restituisce il coefficiente del momento di correlazione di Pearson -PERCENTILE = PERCENTILE ## Restituisce il k-esimo dato percentile di valori in un intervallo -PERCENTRANK = PERCENT.RANGO ## Restituisce il rango di un valore in un insieme di dati come percentuale -PERMUT = PERMUTAZIONE ## Restituisce il numero delle permutazioni per un determinato numero di oggetti -POISSON = POISSON ## Restituisce la distribuzione di Poisson -PROB = PROBABILITÀ ## Calcola la probabilità che dei valori in un intervallo siano compresi tra due limiti -QUARTILE = QUARTILE ## Restituisce il quartile di un insieme di dati -RANK = RANGO ## Restituisce il rango di un numero in un elenco di numeri -RSQ = RQ ## Restituisce la radice quadrata del coefficiente di momento di correlazione di Pearson -SKEW = ASIMMETRIA ## Restituisce il grado di asimmetria di una distribuzione -SLOPE = PENDENZA ## Restituisce la pendenza di una retta di regressione lineare -SMALL = PICCOLO ## Restituisce il k-esimo valore più piccolo in un insieme di dati -STANDARDIZE = NORMALIZZA ## Restituisce un valore normalizzato -STDEV = DEV.ST ## Restituisce una stima della deviazione standard sulla base di un campione -STDEVA = DEV.ST.VALORI ## Restituisce una stima della deviazione standard sulla base di un campione, inclusi i numeri, il testo e i valori logici -STDEVP = DEV.ST.POP ## Calcola la deviazione standard sulla base di un'intera popolazione -STDEVPA = DEV.ST.POP.VALORI ## Calcola la deviazione standard sulla base sull'intera popolazione, inclusi i numeri, il testo e i valori logici -STEYX = ERR.STD.YX ## Restituisce l'errore standard del valore previsto per y per ogni valore x nella regressione -TDIST = DISTRIB.T ## Restituisce la distribuzione t di Student -TINV = INV.T ## Restituisce l'inversa della distribuzione t di Student -TREND = TENDENZA ## Restituisce i valori lungo una linea di tendenza lineare -TRIMMEAN = MEDIA.TRONCATA ## Restituisce la media della parte interna di un insieme di dati -TTEST = TEST.T ## Restituisce la probabilità associata ad un test t di Student -VAR = VAR ## Stima la varianza sulla base di un campione -VARA = VAR.VALORI ## Stima la varianza sulla base di un campione, inclusi i numeri, il testo e i valori logici -VARP = VAR.POP ## Calcola la varianza sulla base dell'intera popolazione -VARPA = VAR.POP.VALORI ## Calcola la deviazione standard sulla base sull'intera popolazione, inclusi i numeri, il testo e i valori logici -WEIBULL = WEIBULL ## Restituisce la distribuzione di Weibull -ZTEST = TEST.Z ## Restituisce il valore di probabilità a una coda per un test z - - -## -## Text functions Funzioni di testo -## -ASC = ASC ## Modifica le lettere inglesi o il katakana a doppio byte all'interno di una stringa di caratteri in caratteri a singolo byte -BAHTTEXT = BAHTTESTO ## Converte un numero in testo, utilizzando il formato valuta ß (baht) -CHAR = CODICE.CARATT ## Restituisce il carattere specificato dal numero di codice -CLEAN = LIBERA ## Elimina dal testo tutti i caratteri che non è possibile stampare -CODE = CODICE ## Restituisce il codice numerico del primo carattere di una stringa di testo -CONCATENATE = CONCATENA ## Unisce diversi elementi di testo in un unico elemento di testo -DOLLAR = VALUTA ## Converte un numero in testo, utilizzando il formato valuta € (euro) -EXACT = IDENTICO ## Verifica se due valori di testo sono uguali -FIND = TROVA ## Rileva un valore di testo all'interno di un altro (distinzione tra maiuscole e minuscole) -FINDB = TROVA.B ## Rileva un valore di testo all'interno di un altro (distinzione tra maiuscole e minuscole) -FIXED = FISSO ## Formatta un numero come testo con un numero fisso di decimali -JIS = ORDINAMENTO.JIS ## Modifica le lettere inglesi o i caratteri katakana a byte singolo all'interno di una stringa di caratteri in caratteri a byte doppio. -LEFT = SINISTRA ## Restituisce il carattere più a sinistra di un valore di testo -LEFTB = SINISTRA.B ## Restituisce il carattere più a sinistra di un valore di testo -LEN = LUNGHEZZA ## Restituisce il numero di caratteri di una stringa di testo -LENB = LUNB ## Restituisce il numero di caratteri di una stringa di testo -LOWER = MINUSC ## Converte il testo in lettere minuscole -MID = MEDIA ## Restituisce un numero specifico di caratteri di una stringa di testo a partire dalla posizione specificata -MIDB = MEDIA.B ## Restituisce un numero specifico di caratteri di una stringa di testo a partire dalla posizione specificata -PHONETIC = FURIGANA ## Estrae i caratteri fonetici (furigana) da una stringa di testo. -PROPER = MAIUSC.INIZ ## Converte in maiuscolo la prima lettera di ogni parola di un valore di testo -REPLACE = RIMPIAZZA ## Sostituisce i caratteri all'interno di un testo -REPLACEB = SOSTITUISCI.B ## Sostituisce i caratteri all'interno di un testo -REPT = RIPETI ## Ripete un testo per un dato numero di volte -RIGHT = DESTRA ## Restituisce il carattere più a destra di un valore di testo -RIGHTB = DESTRA.B ## Restituisce il carattere più a destra di un valore di testo -SEARCH = RICERCA ## Rileva un valore di testo all'interno di un altro (non è sensibile alle maiuscole e minuscole) -SEARCHB = CERCA.B ## Rileva un valore di testo all'interno di un altro (non è sensibile alle maiuscole e minuscole) -SUBSTITUTE = SOSTITUISCI ## Sostituisce il nuovo testo al testo contenuto in una stringa -T = T ## Converte gli argomenti in testo -TEXT = TESTO ## Formatta un numero e lo converte in testo -TRIM = ANNULLA.SPAZI ## Elimina gli spazi dal testo -UPPER = MAIUSC ## Converte il testo in lettere maiuscole -VALUE = VALORE ## Converte un argomento di testo in numero diff --git a/Utils/PHPExcel/locale/nl/config b/Utils/PHPExcel/locale/nl/config deleted file mode 100644 index 02ce82b..0000000 --- a/Utils/PHPExcel/locale/nl/config +++ /dev/null @@ -1,49 +0,0 @@ -## -## PHPExcel -## - -## Copyright (c) 2006 - 2013 PHPExcel -## -## This library is free software; you can redistribute it and/or -## modify it under the terms of the GNU Lesser General Public -## License as published by the Free Software Foundation; either -## version 2.1 of the License, or (at your option) any later version. -## -## This library is distributed in the hope that it will be useful, -## but WITHOUT ANY WARRANTY; without even the implied warranty of -## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -## Lesser General Public License for more details. -## -## You should have received a copy of the GNU Lesser General Public -## License along with this library; if not, write to the Free Software -## Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA -## -## @category PHPExcel -## @package PHPExcel_Settings -## @copyright Copyright (c) 2006 - 2013 PHPExcel (http://www.codeplex.com/PHPExcel) -## @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL -## @version ##VERSION##, ##DATE## -## -## - - -ArgumentSeparator = ; - - -## -## (For future use) -## -currencySymbol = € - - -## -## Excel Error Codes (For future use) - -## -NULL = #LEEG! -DIV0 = #DEEL/0! -VALUE = #WAARDE! -REF = #VERW! -NAME = #NAAM? -NUM = #GETAL! -NA = #N/B diff --git a/Utils/PHPExcel/locale/nl/functions b/Utils/PHPExcel/locale/nl/functions deleted file mode 100644 index 7b05a65..0000000 --- a/Utils/PHPExcel/locale/nl/functions +++ /dev/null @@ -1,439 +0,0 @@ -## -## PHPExcel -## - -## Copyright (c) 2006 - 2013 PHPExcel -## -## This library is free software; you can redistribute it and/or -## modify it under the terms of the GNU Lesser General Public -## License as published by the Free Software Foundation; either -## version 2.1 of the License, or (at your option) any later version. -## -## This library is distributed in the hope that it will be useful, -## but WITHOUT ANY WARRANTY; without even the implied warranty of -## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -## Lesser General Public License for more details. -## -## You should have received a copy of the GNU Lesser General Public -## License along with this library; if not, write to the Free Software -## Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA -## -## @category PHPExcel -## @package PHPExcel_Calculation -## @copyright Copyright (c) 2006 - 2013 PHPExcel (http://www.codeplex.com/PHPExcel) -## @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL -## @version ##VERSION##, ##DATE## -## -## Data in this file derived from http://www.piuha.fi/excel-function-name-translation/ -## -## - - -## -## Add-in and Automation functions Automatiseringsfuncties en functies in invoegtoepassingen -## -GETPIVOTDATA = DRAAITABEL.OPHALEN ## Geeft gegevens uit een draaitabelrapport als resultaat - - -## -## Cube functions Kubusfuncties -## -CUBEKPIMEMBER = KUBUSKPILID ## Retourneert de naam, eigenschap en waarde van een KPI (prestatie-indicator) en geeft de naam en de eigenschap in de cel weer. Een KPI is een meetbare waarde, zoals de maandelijkse brutowinst of de omzet per kwartaal per werknemer, die wordt gebruikt om de prestaties van een organisatie te bewaken -CUBEMEMBER = KUBUSLID ## Retourneert een lid of tupel in een kubushiërarchie. Wordt gebruikt om te controleren of het lid of de tupel in de kubus aanwezig is -CUBEMEMBERPROPERTY = KUBUSLIDEIGENSCHAP ## Retourneert de waarde van een lideigenschap in de kubus. Wordt gebruikt om te controleren of de lidnaam in de kubus bestaat en retourneert de opgegeven eigenschap voor dit lid -CUBERANKEDMEMBER = KUBUSGERANGCHIKTLID ## Retourneert het zoveelste, gerangschikte lid in een set. Wordt gebruikt om een of meer elementen in een set te retourneren, zoals de tien beste verkopers of de tien beste studenten -CUBESET = KUBUSSET ## Definieert een berekende set leden of tupels door een ingestelde expressie naar de kubus op de server te sturen, alwaar de set wordt gemaakt en vervolgens wordt geretourneerd naar Microsoft Office Excel -CUBESETCOUNT = KUBUSSETAANTAL ## Retourneert het aantal onderdelen in een set -CUBEVALUE = KUBUSWAARDE ## Retourneert een samengestelde waarde van een kubus - - -## -## Database functions Databasefuncties -## -DAVERAGE = DBGEMIDDELDE ## Berekent de gemiddelde waarde in geselecteerde databasegegevens -DCOUNT = DBAANTAL ## Telt de cellen met getallen in een database -DCOUNTA = DBAANTALC ## Telt de niet-lege cellen in een database -DGET = DBLEZEN ## Retourneert één record dat voldoet aan de opgegeven criteria uit een database -DMAX = DBMAX ## Retourneert de maximumwaarde in de geselecteerde databasegegevens -DMIN = DBMIN ## Retourneert de minimumwaarde in de geselecteerde databasegegevens -DPRODUCT = DBPRODUCT ## Vermenigvuldigt de waarden in een bepaald veld van de records die voldoen aan de criteria in een database -DSTDEV = DBSTDEV ## Maakt een schatting van de standaarddeviatie op basis van een steekproef uit geselecteerde databasegegevens -DSTDEVP = DBSTDEVP ## Berekent de standaarddeviatie op basis van de volledige populatie van geselecteerde databasegegevens -DSUM = DBSOM ## Telt de getallen uit een kolom records in de database op die voldoen aan de criteria -DVAR = DBVAR ## Maakt een schatting van de variantie op basis van een steekproef uit geselecteerde databasegegevens -DVARP = DBVARP ## Berekent de variantie op basis van de volledige populatie van geselecteerde databasegegevens - - -## -## Date and time functions Datum- en tijdfuncties -## -DATE = DATUM ## Geeft als resultaat het seriële getal van een opgegeven datum -DATEVALUE = DATUMWAARDE ## Converteert een datum in de vorm van tekst naar een serieel getal -DAY = DAG ## Converteert een serieel getal naar een dag van de maand -DAYS360 = DAGEN360 ## Berekent het aantal dagen tussen twee datums op basis van een jaar met 360 dagen -EDATE = ZELFDE.DAG ## Geeft als resultaat het seriële getal van een datum die het opgegeven aantal maanden voor of na de begindatum ligt -EOMONTH = LAATSTE.DAG ## Geeft als resultaat het seriële getal van de laatste dag van de maand voor of na het opgegeven aantal maanden -HOUR = UUR ## Converteert een serieel getal naar uren -MINUTE = MINUUT ## Converteert een serieel naar getal minuten -MONTH = MAAND ## Converteert een serieel getal naar een maand -NETWORKDAYS = NETTO.WERKDAGEN ## Geeft als resultaat het aantal hele werkdagen tussen twee datums -NOW = NU ## Geeft als resultaat het seriële getal van de huidige datum en tijd -SECOND = SECONDE ## Converteert een serieel getal naar seconden -TIME = TIJD ## Geeft als resultaat het seriële getal van een bepaald tijdstip -TIMEVALUE = TIJDWAARDE ## Converteert de tijd in de vorm van tekst naar een serieel getal -TODAY = VANDAAG ## Geeft als resultaat het seriële getal van de huidige datum -WEEKDAY = WEEKDAG ## Converteert een serieel getal naar een weekdag -WEEKNUM = WEEKNUMMER ## Converteert een serieel getal naar een weeknummer -WORKDAY = WERKDAG ## Geeft als resultaat het seriële getal van de datum voor of na een bepaald aantal werkdagen -YEAR = JAAR ## Converteert een serieel getal naar een jaar -YEARFRAC = JAAR.DEEL ## Geeft als resultaat het gedeelte van het jaar, uitgedrukt in het aantal hele dagen tussen begindatum en einddatum - - -## -## Engineering functions Technische functies -## -BESSELI = BESSEL.Y ## Geeft als resultaat de gewijzigde Bessel-functie In(x) -BESSELJ = BESSEL.J ## Geeft als resultaat de Bessel-functie Jn(x) -BESSELK = BESSEL.K ## Geeft als resultaat de gewijzigde Bessel-functie Kn(x) -BESSELY = BESSEL.Y ## Geeft als resultaat de gewijzigde Bessel-functie Yn(x) -BIN2DEC = BIN.N.DEC ## Converteert een binair getal naar een decimaal getal -BIN2HEX = BIN.N.HEX ## Converteert een binair getal naar een hexadecimaal getal -BIN2OCT = BIN.N.OCT ## Converteert een binair getal naar een octaal getal -COMPLEX = COMPLEX ## Converteert reële en imaginaire coëfficiënten naar een complex getal -CONVERT = CONVERTEREN ## Converteert een getal in de ene maateenheid naar een getal in een andere maateenheid -DEC2BIN = DEC.N.BIN ## Converteert een decimaal getal naar een binair getal -DEC2HEX = DEC.N.HEX ## Converteert een decimaal getal naar een hexadecimaal getal -DEC2OCT = DEC.N.OCT ## Converteert een decimaal getal naar een octaal getal -DELTA = DELTA ## Test of twee waarden gelijk zijn -ERF = FOUTFUNCTIE ## Geeft als resultaat de foutfunctie -ERFC = FOUT.COMPLEMENT ## Geeft als resultaat de complementaire foutfunctie -GESTEP = GROTER.DAN ## Test of een getal groter is dan de drempelwaarde -HEX2BIN = HEX.N.BIN ## Converteert een hexadecimaal getal naar een binair getal -HEX2DEC = HEX.N.DEC ## Converteert een hexadecimaal getal naar een decimaal getal -HEX2OCT = HEX.N.OCT ## Converteert een hexadecimaal getal naar een octaal getal -IMABS = C.ABS ## Geeft als resultaat de absolute waarde (modulus) van een complex getal -IMAGINARY = C.IM.DEEL ## Geeft als resultaat de imaginaire coëfficiënt van een complex getal -IMARGUMENT = C.ARGUMENT ## Geeft als resultaat het argument thèta, een hoek uitgedrukt in radialen -IMCONJUGATE = C.TOEGEVOEGD ## Geeft als resultaat het complexe toegevoegde getal van een complex getal -IMCOS = C.COS ## Geeft als resultaat de cosinus van een complex getal -IMDIV = C.QUOTIENT ## Geeft als resultaat het quotiënt van twee complexe getallen -IMEXP = C.EXP ## Geeft als resultaat de exponent van een complex getal -IMLN = C.LN ## Geeft als resultaat de natuurlijke logaritme van een complex getal -IMLOG10 = C.LOG10 ## Geeft als resultaat de logaritme met grondtal 10 van een complex getal -IMLOG2 = C.LOG2 ## Geeft als resultaat de logaritme met grondtal 2 van een complex getal -IMPOWER = C.MACHT ## Geeft als resultaat een complex getal dat is verheven tot de macht van een geheel getal -IMPRODUCT = C.PRODUCT ## Geeft als resultaat het product van complexe getallen -IMREAL = C.REEEL.DEEL ## Geeft als resultaat de reële coëfficiënt van een complex getal -IMSIN = C.SIN ## Geeft als resultaat de sinus van een complex getal -IMSQRT = C.WORTEL ## Geeft als resultaat de vierkantswortel van een complex getal -IMSUB = C.VERSCHIL ## Geeft als resultaat het verschil tussen twee complexe getallen -IMSUM = C.SOM ## Geeft als resultaat de som van complexe getallen -OCT2BIN = OCT.N.BIN ## Converteert een octaal getal naar een binair getal -OCT2DEC = OCT.N.DEC ## Converteert een octaal getal naar een decimaal getal -OCT2HEX = OCT.N.HEX ## Converteert een octaal getal naar een hexadecimaal getal - - -## -## Financial functions Financiële functies -## -ACCRINT = SAMENG.RENTE ## Berekent de opgelopen rente voor een waardepapier waarvan de rente periodiek wordt uitgekeerd -ACCRINTM = SAMENG.RENTE.V ## Berekent de opgelopen rente voor een waardepapier waarvan de rente op de vervaldatum wordt uitgekeerd -AMORDEGRC = AMORDEGRC ## Geeft als resultaat de afschrijving voor elke boekingsperiode door een afschrijvingscoëfficiënt toe te passen -AMORLINC = AMORLINC ## Berekent de afschrijving voor elke boekingsperiode -COUPDAYBS = COUP.DAGEN.BB ## Berekent het aantal dagen vanaf het begin van de coupontermijn tot de stortingsdatum -COUPDAYS = COUP.DAGEN ## Geeft als resultaat het aantal dagen in de coupontermijn waarin de stortingsdatum valt -COUPDAYSNC = COUP.DAGEN.VV ## Geeft als resultaat het aantal dagen vanaf de stortingsdatum tot de volgende couponvervaldatum -COUPNCD = COUP.DATUM.NB ## Geeft als resultaat de volgende coupondatum na de stortingsdatum -COUPNUM = COUP.AANTAL ## Geeft als resultaat het aantal coupons dat nog moet worden uitbetaald tussen de stortingsdatum en de vervaldatum -COUPPCD = COUP.DATUM.VB ## Geeft als resultaat de vorige couponvervaldatum vóór de stortingsdatum -CUMIPMT = CUM.RENTE ## Geeft als resultaat de cumulatieve rente die tussen twee termijnen is uitgekeerd -CUMPRINC = CUM.HOOFDSOM ## Geeft als resultaat de cumulatieve hoofdsom van een lening die tussen twee termijnen is terugbetaald -DB = DB ## Geeft als resultaat de afschrijving van activa voor een bepaalde periode met behulp van de 'fixed declining balance'-methode -DDB = DDB ## Geeft als resultaat de afschrijving van activa over een bepaalde termijn met behulp van de 'double declining balance'-methode of een andere methode die u opgeeft -DISC = DISCONTO ## Geeft als resultaat het discontopercentage voor een waardepapier -DOLLARDE = EURO.DE ## Converteert een prijs in euro's, uitgedrukt in een breuk, naar een prijs in euro's, uitgedrukt in een decimaal getal -DOLLARFR = EURO.BR ## Converteert een prijs in euro's, uitgedrukt in een decimaal getal, naar een prijs in euro's, uitgedrukt in een breuk -DURATION = DUUR ## Geeft als resultaat de gewogen gemiddelde looptijd voor een waardepapier met periodieke rentebetalingen -EFFECT = EFFECT.RENTE ## Geeft als resultaat het effectieve jaarlijkse rentepercentage -FV = TW ## Geeft als resultaat de toekomstige waarde van een investering -FVSCHEDULE = TOEK.WAARDE2 ## Geeft als resultaat de toekomstige waarde van een bepaalde hoofdsom na het toepassen van een reeks samengestelde rentepercentages -INTRATE = RENTEPERCENTAGE ## Geeft als resultaat het rentepercentage voor een volgestort waardepapier -IPMT = IBET ## Geeft als resultaat de te betalen rente voor een investering over een bepaalde termijn -IRR = IR ## Geeft als resultaat de interne rentabiliteit voor een reeks cashflows -ISPMT = ISBET ## Geeft als resultaat de rente die is betaald tijdens een bepaalde termijn van een investering -MDURATION = AANG.DUUR ## Geeft als resultaat de aangepaste Macauley-looptijd voor een waardepapier, aangenomen dat de nominale waarde € 100 bedraagt -MIRR = GIR ## Geeft als resultaat de interne rentabiliteit voor een serie cashflows, waarbij voor betalingen een ander rentepercentage geldt dan voor inkomsten -NOMINAL = NOMINALE.RENTE ## Geeft als resultaat het nominale jaarlijkse rentepercentage -NPER = NPER ## Geeft als resultaat het aantal termijnen van een investering -NPV = NHW ## Geeft als resultaat de netto huidige waarde van een investering op basis van een reeks periodieke cashflows en een discontopercentage -ODDFPRICE = AFW.ET.PRIJS ## Geeft als resultaat de prijs per € 100 nominale waarde voor een waardepapier met een afwijkende eerste termijn -ODDFYIELD = AFW.ET.REND ## Geeft als resultaat het rendement voor een waardepapier met een afwijkende eerste termijn -ODDLPRICE = AFW.LT.PRIJS ## Geeft als resultaat de prijs per € 100 nominale waarde voor een waardepapier met een afwijkende laatste termijn -ODDLYIELD = AFW.LT.REND ## Geeft als resultaat het rendement voor een waardepapier met een afwijkende laatste termijn -PMT = BET ## Geeft als resultaat de periodieke betaling voor een annuïteit -PPMT = PBET ## Geeft als resultaat de afbetaling op de hoofdsom voor een bepaalde termijn -PRICE = PRIJS.NOM ## Geeft als resultaat de prijs per € 100 nominale waarde voor een waardepapier waarvan de rente periodiek wordt uitgekeerd -PRICEDISC = PRIJS.DISCONTO ## Geeft als resultaat de prijs per € 100 nominale waarde voor een verdisconteerd waardepapier -PRICEMAT = PRIJS.VERVALDAG ## Geeft als resultaat de prijs per € 100 nominale waarde voor een waardepapier waarvan de rente wordt uitgekeerd op de vervaldatum -PV = HW ## Geeft als resultaat de huidige waarde van een investering -RATE = RENTE ## Geeft als resultaat het periodieke rentepercentage voor een annuïteit -RECEIVED = OPBRENGST ## Geeft als resultaat het bedrag dat op de vervaldatum wordt uitgekeerd voor een volgestort waardepapier -SLN = LIN.AFSCHR ## Geeft als resultaat de lineaire afschrijving van activa over één termijn -SYD = SYD ## Geeft als resultaat de afschrijving van activa over een bepaalde termijn met behulp van de 'Sum-Of-Years-Digits'-methode -TBILLEQ = SCHATK.OBL ## Geeft als resultaat het rendement op schatkistpapier, dat op dezelfde manier wordt berekend als het rendement op obligaties -TBILLPRICE = SCHATK.PRIJS ## Bepaalt de prijs per € 100 nominale waarde voor schatkistpapier -TBILLYIELD = SCHATK.REND ## Berekent het rendement voor schatkistpapier -VDB = VDB ## Geeft als resultaat de afschrijving van activa over een gehele of gedeeltelijke termijn met behulp van de 'declining balance'-methode -XIRR = IR.SCHEMA ## Berekent de interne rentabiliteit voor een betalingsschema van cashflows -XNPV = NHW2 ## Berekent de huidige nettowaarde voor een betalingsschema van cashflows -YIELD = RENDEMENT ## Geeft als resultaat het rendement voor een waardepapier waarvan de rente periodiek wordt uitgekeerd -YIELDDISC = REND.DISCONTO ## Geeft als resultaat het jaarlijkse rendement voor een verdisconteerd waardepapier, bijvoorbeeld schatkistpapier -YIELDMAT = REND.VERVAL ## Geeft als resultaat het jaarlijkse rendement voor een waardepapier waarvan de rente wordt uitgekeerd op de vervaldatum - - -## -## Information functions Informatiefuncties -## -CELL = CEL ## Geeft als resultaat informatie over de opmaak, locatie of inhoud van een cel -ERROR.TYPE = TYPE.FOUT ## Geeft als resultaat een getal dat overeenkomt met een van de foutwaarden van Microsoft Excel -INFO = INFO ## Geeft als resultaat informatie over de huidige besturingsomgeving -ISBLANK = ISLEEG ## Geeft als resultaat WAAR als de waarde leeg is -ISERR = ISFOUT2 ## Geeft als resultaat WAAR als de waarde een foutwaarde is, met uitzondering van #N/B -ISERROR = ISFOUT ## Geeft als resultaat WAAR als de waarde een foutwaarde is -ISEVEN = IS.EVEN ## Geeft als resultaat WAAR als het getal even is -ISLOGICAL = ISLOGISCH ## Geeft als resultaat WAAR als de waarde een logische waarde is -ISNA = ISNB ## Geeft als resultaat WAAR als de waarde de foutwaarde #N/B is -ISNONTEXT = ISGEENTEKST ## Geeft als resultaat WAAR als de waarde geen tekst is -ISNUMBER = ISGETAL ## Geeft als resultaat WAAR als de waarde een getal is -ISODD = IS.ONEVEN ## Geeft als resultaat WAAR als het getal oneven is -ISREF = ISVERWIJZING ## Geeft als resultaat WAAR als de waarde een verwijzing is -ISTEXT = ISTEKST ## Geeft als resultaat WAAR als de waarde tekst is -N = N ## Geeft als resultaat een waarde die is geconverteerd naar een getal -NA = NB ## Geeft als resultaat de foutwaarde #N/B -TYPE = TYPE ## Geeft als resultaat een getal dat het gegevenstype van een waarde aangeeft - - -## -## Logical functions Logische functies -## -AND = EN ## Geeft als resultaat WAAR als alle argumenten WAAR zijn -FALSE = ONWAAR ## Geeft als resultaat de logische waarde ONWAAR -IF = ALS ## Geeft een logische test aan -IFERROR = ALS.FOUT ## Retourneert een waarde die u opgeeft als een formule een fout oplevert, anders wordt het resultaat van de formule geretourneerd -NOT = NIET ## Keert de logische waarde van het argument om -OR = OF ## Geeft als resultaat WAAR als minimaal een van de argumenten WAAR is -TRUE = WAAR ## Geeft als resultaat de logische waarde WAAR - - -## -## Lookup and reference functions Zoek- en verwijzingsfuncties -## -ADDRESS = ADRES ## Geeft als resultaat een verwijzing, in de vorm van tekst, naar één bepaalde cel in een werkblad -AREAS = BEREIKEN ## Geeft als resultaat het aantal bereiken in een verwijzing -CHOOSE = KIEZEN ## Kiest een waarde uit een lijst met waarden -COLUMN = KOLOM ## Geeft als resultaat het kolomnummer van een verwijzing -COLUMNS = KOLOMMEN ## Geeft als resultaat het aantal kolommen in een verwijzing -HLOOKUP = HORIZ.ZOEKEN ## Zoekt in de bovenste rij van een matrix naar een bepaalde waarde en geeft als resultaat de gevonden waarde in de opgegeven cel -HYPERLINK = HYPERLINK ## Maakt een snelkoppeling of een sprong waarmee een document wordt geopend dat is opgeslagen op een netwerkserver, een intranet of op internet -INDEX = INDEX ## Kiest met een index een waarde uit een verwijzing of een matrix -INDIRECT = INDIRECT ## Geeft als resultaat een verwijzing die wordt aangegeven met een tekstwaarde -LOOKUP = ZOEKEN ## Zoekt naar bepaalde waarden in een vector of een matrix -MATCH = VERGELIJKEN ## Zoekt naar bepaalde waarden in een verwijzing of een matrix -OFFSET = VERSCHUIVING ## Geeft als resultaat een nieuwe verwijzing die is verschoven ten opzichte van een bepaalde verwijzing -ROW = RIJ ## Geeft als resultaat het rijnummer van een verwijzing -ROWS = RIJEN ## Geeft als resultaat het aantal rijen in een verwijzing -RTD = RTG ## Haalt realtimegegevens op uit een programma dat COM-automatisering (automatisering: een methode waarmee de ene toepassing objecten van een andere toepassing of ontwikkelprogramma kan besturen. Automatisering werd vroeger OLE-automatisering genoemd. Automatisering is een industrienorm die deel uitmaakt van het Component Object Model (COM).) ondersteunt -TRANSPOSE = TRANSPONEREN ## Geeft als resultaat de getransponeerde van een matrix -VLOOKUP = VERT.ZOEKEN ## Zoekt in de meest linkse kolom van een matrix naar een bepaalde waarde en geeft als resultaat de waarde in de opgegeven cel - - -## -## Math and trigonometry functions Wiskundige en trigonometrische functies -## -ABS = ABS ## Geeft als resultaat de absolute waarde van een getal -ACOS = BOOGCOS ## Geeft als resultaat de boogcosinus van een getal -ACOSH = BOOGCOSH ## Geeft als resultaat de inverse cosinus hyperbolicus van een getal -ASIN = BOOGSIN ## Geeft als resultaat de boogsinus van een getal -ASINH = BOOGSINH ## Geeft als resultaat de inverse sinus hyperbolicus van een getal -ATAN = BOOGTAN ## Geeft als resultaat de boogtangens van een getal -ATAN2 = BOOGTAN2 ## Geeft als resultaat de boogtangens van de x- en y-coördinaten -ATANH = BOOGTANH ## Geeft als resultaat de inverse tangens hyperbolicus van een getal -CEILING = AFRONDEN.BOVEN ## Rondt de absolute waarde van een getal naar boven af op het dichtstbijzijnde gehele getal of het dichtstbijzijnde significante veelvoud -COMBIN = COMBINATIES ## Geeft als resultaat het aantal combinaties voor een bepaald aantal objecten -COS = COS ## Geeft als resultaat de cosinus van een getal -COSH = COSH ## Geeft als resultaat de cosinus hyperbolicus van een getal -DEGREES = GRADEN ## Converteert radialen naar graden -EVEN = EVEN ## Rondt het getal af op het dichtstbijzijnde gehele even getal -EXP = EXP ## Verheft e tot de macht van een bepaald getal -FACT = FACULTEIT ## Geeft als resultaat de faculteit van een getal -FACTDOUBLE = DUBBELE.FACULTEIT ## Geeft als resultaat de dubbele faculteit van een getal -FLOOR = AFRONDEN.BENEDEN ## Rondt de absolute waarde van een getal naar beneden af -GCD = GGD ## Geeft als resultaat de grootste gemene deler -INT = INTEGER ## Rondt een getal naar beneden af op het dichtstbijzijnde gehele getal -LCM = KGV ## Geeft als resultaat het kleinste gemene veelvoud -LN = LN ## Geeft als resultaat de natuurlijke logaritme van een getal -LOG = LOG ## Geeft als resultaat de logaritme met het opgegeven grondtal van een getal -LOG10 = LOG10 ## Geeft als resultaat de logaritme met grondtal 10 van een getal -MDETERM = DETERMINANTMAT ## Geeft als resultaat de determinant van een matrix -MINVERSE = INVERSEMAT ## Geeft als resultaat de inverse van een matrix -MMULT = PRODUCTMAT ## Geeft als resultaat het product van twee matrices -MOD = REST ## Geeft als resultaat het restgetal van een deling -MROUND = AFRONDEN.N.VEELVOUD ## Geeft als resultaat een getal afgerond op het gewenste veelvoud -MULTINOMIAL = MULTINOMIAAL ## Geeft als resultaat de multinomiaalcoëfficiënt van een reeks getallen -ODD = ONEVEN ## Rondt de absolute waarde van het getal naar boven af op het dichtstbijzijnde gehele oneven getal -PI = PI ## Geeft als resultaat de waarde van pi -POWER = MACHT ## Verheft een getal tot een macht -PRODUCT = PRODUCT ## Vermenigvuldigt de argumenten met elkaar -QUOTIENT = QUOTIENT ## Geeft als resultaat de uitkomst van een deling als geheel getal -RADIANS = RADIALEN ## Converteert graden naar radialen -RAND = ASELECT ## Geeft als resultaat een willekeurig getal tussen 0 en 1 -RANDBETWEEN = ASELECTTUSSEN ## Geeft een willekeurig getal tussen de getallen die u hebt opgegeven -ROMAN = ROMEINS ## Converteert een Arabisch getal naar een Romeins getal en geeft het resultaat weer in de vorm van tekst -ROUND = AFRONDEN ## Rondt een getal af op het opgegeven aantal decimalen -ROUNDDOWN = AFRONDEN.NAAR.BENEDEN ## Rondt de absolute waarde van een getal naar beneden af -ROUNDUP = AFRONDEN.NAAR.BOVEN ## Rondt de absolute waarde van een getal naar boven af -SERIESSUM = SOM.MACHTREEKS ## Geeft als resultaat de som van een machtreeks die is gebaseerd op de formule -SIGN = POS.NEG ## Geeft als resultaat het teken van een getal -SIN = SIN ## Geeft als resultaat de sinus van de opgegeven hoek -SINH = SINH ## Geeft als resultaat de sinus hyperbolicus van een getal -SQRT = WORTEL ## Geeft als resultaat de positieve vierkantswortel van een getal -SQRTPI = WORTEL.PI ## Geeft als resultaat de vierkantswortel van (getal * pi) -SUBTOTAL = SUBTOTAAL ## Geeft als resultaat een subtotaal voor een bereik -SUM = SOM ## Telt de argumenten op -SUMIF = SOM.ALS ## Telt de getallen bij elkaar op die voldoen aan een bepaald criterium -SUMIFS = SOMMEN.ALS ## Telt de cellen in een bereik op die aan meerdere criteria voldoen -SUMPRODUCT = SOMPRODUCT ## Geeft als resultaat de som van de producten van de corresponderende matrixelementen -SUMSQ = KWADRATENSOM ## Geeft als resultaat de som van de kwadraten van de argumenten -SUMX2MY2 = SOM.X2MINY2 ## Geeft als resultaat de som van het verschil tussen de kwadraten van corresponderende waarden in twee matrices -SUMX2PY2 = SOM.X2PLUSY2 ## Geeft als resultaat de som van de kwadratensom van corresponderende waarden in twee matrices -SUMXMY2 = SOM.XMINY.2 ## Geeft als resultaat de som van de kwadraten van de verschillen tussen de corresponderende waarden in twee matrices -TAN = TAN ## Geeft als resultaat de tangens van een getal -TANH = TANH ## Geeft als resultaat de tangens hyperbolicus van een getal -TRUNC = GEHEEL ## Kapt een getal af tot een geheel getal - - -## -## Statistical functions Statistische functies -## -AVEDEV = GEM.DEVIATIE ## Geeft als resultaat het gemiddelde van de absolute deviaties van gegevenspunten ten opzichte van hun gemiddelde waarde -AVERAGE = GEMIDDELDE ## Geeft als resultaat het gemiddelde van de argumenten -AVERAGEA = GEMIDDELDEA ## Geeft als resultaat het gemiddelde van de argumenten, inclusief getallen, tekst en logische waarden -AVERAGEIF = GEMIDDELDE.ALS ## Geeft het gemiddelde (rekenkundig gemiddelde) als resultaat van alle cellen in een bereik die voldoen aan de opgegeven criteria -AVERAGEIFS = GEMIDDELDEN.ALS ## Geeft het gemiddelde (rekenkundig gemiddelde) als resultaat van alle cellen die aan meerdere criteria voldoen -BETADIST = BETA.VERD ## Geeft als resultaat de cumulatieve bèta-verdelingsfunctie -BETAINV = BETA.INV ## Geeft als resultaat de inverse van de cumulatieve verdelingsfunctie voor een gegeven bèta-verdeling -BINOMDIST = BINOMIALE.VERD ## Geeft als resultaat de binomiale verdeling -CHIDIST = CHI.KWADRAAT ## Geeft als resultaat de eenzijdige kans van de chi-kwadraatverdeling -CHIINV = CHI.KWADRAAT.INV ## Geeft als resultaat de inverse van een eenzijdige kans van de chi-kwadraatverdeling -CHITEST = CHI.TOETS ## Geeft als resultaat de onafhankelijkheidstoets -CONFIDENCE = BETROUWBAARHEID ## Geeft als resultaat het betrouwbaarheidsinterval van een gemiddelde waarde voor de elementen van een populatie -CORREL = CORRELATIE ## Geeft als resultaat de correlatiecoëfficiënt van twee gegevensverzamelingen -COUNT = AANTAL ## Telt het aantal getallen in de argumentenlijst -COUNTA = AANTALARG ## Telt het aantal waarden in de argumentenlijst -COUNTBLANK = AANTAL.LEGE.CELLEN ## Telt het aantal lege cellen in een bereik -COUNTIF = AANTAL.ALS ## Telt in een bereik het aantal cellen die voldoen aan een bepaald criterium -COUNTIFS = AANTALLEN.ALS ## Telt in een bereik het aantal cellen die voldoen aan meerdere criteria -COVAR = COVARIANTIE ## Geeft als resultaat de covariantie, het gemiddelde van de producten van de gepaarde deviaties -CRITBINOM = CRIT.BINOM ## Geeft als resultaat de kleinste waarde waarvoor de binomiale verdeling kleiner is dan of gelijk is aan het criterium -DEVSQ = DEV.KWAD ## Geeft als resultaat de som van de deviaties in het kwadraat -EXPONDIST = EXPON.VERD ## Geeft als resultaat de exponentiële verdeling -FDIST = F.VERDELING ## Geeft als resultaat de F-verdeling -FINV = F.INVERSE ## Geeft als resultaat de inverse van de F-verdeling -FISHER = FISHER ## Geeft als resultaat de Fisher-transformatie -FISHERINV = FISHER.INV ## Geeft als resultaat de inverse van de Fisher-transformatie -FORECAST = VOORSPELLEN ## Geeft als resultaat een waarde op basis van een lineaire trend -FREQUENCY = FREQUENTIE ## Geeft als resultaat een frequentieverdeling in de vorm van een verticale matrix -FTEST = F.TOETS ## Geeft als resultaat een F-toets -GAMMADIST = GAMMA.VERD ## Geeft als resultaat de gamma-verdeling -GAMMAINV = GAMMA.INV ## Geeft als resultaat de inverse van de cumulatieve gamma-verdeling -GAMMALN = GAMMA.LN ## Geeft als resultaat de natuurlijke logaritme van de gamma-functie, G(x) -GEOMEAN = MEETK.GEM ## Geeft als resultaat het meetkundige gemiddelde -GROWTH = GROEI ## Geeft als resultaat de waarden voor een exponentiële trend -HARMEAN = HARM.GEM ## Geeft als resultaat het harmonische gemiddelde -HYPGEOMDIST = HYPERGEO.VERD ## Geeft als resultaat de hypergeometrische verdeling -INTERCEPT = SNIJPUNT ## Geeft als resultaat het snijpunt van de lineaire regressielijn met de y-as -KURT = KURTOSIS ## Geeft als resultaat de kurtosis van een gegevensverzameling -LARGE = GROOTSTE ## Geeft als resultaat de op k-1 na grootste waarde in een gegevensverzameling -LINEST = LIJNSCH ## Geeft als resultaat de parameters van een lineaire trend -LOGEST = LOGSCH ## Geeft als resultaat de parameters van een exponentiële trend -LOGINV = LOG.NORM.INV ## Geeft als resultaat de inverse van de logaritmische normale verdeling -LOGNORMDIST = LOG.NORM.VERD ## Geeft als resultaat de cumulatieve logaritmische normale verdeling -MAX = MAX ## Geeft als resultaat de maximumwaarde in een lijst met argumenten -MAXA = MAXA ## Geeft als resultaat de maximumwaarde in een lijst met argumenten, inclusief getallen, tekst en logische waarden -MEDIAN = MEDIAAN ## Geeft als resultaat de mediaan van de opgegeven getallen -MIN = MIN ## Geeft als resultaat de minimumwaarde in een lijst met argumenten -MINA = MINA ## Geeft als resultaat de minimumwaarde in een lijst met argumenten, inclusief getallen, tekst en logische waarden -MODE = MODUS ## Geeft als resultaat de meest voorkomende waarde in een gegevensverzameling -NEGBINOMDIST = NEG.BINOM.VERD ## Geeft als resultaat de negatieve binomiaalverdeling -NORMDIST = NORM.VERD ## Geeft als resultaat de cumulatieve normale verdeling -NORMINV = NORM.INV ## Geeft als resultaat de inverse van de cumulatieve standaardnormale verdeling -NORMSDIST = STAND.NORM.VERD ## Geeft als resultaat de cumulatieve standaardnormale verdeling -NORMSINV = STAND.NORM.INV ## Geeft als resultaat de inverse van de cumulatieve normale verdeling -PEARSON = PEARSON ## Geeft als resultaat de correlatiecoëfficiënt van Pearson -PERCENTILE = PERCENTIEL ## Geeft als resultaat het k-de percentiel van waarden in een bereik -PERCENTRANK = PERCENT.RANG ## Geeft als resultaat de positie, in procenten uitgedrukt, van een waarde in de rangorde van een gegevensverzameling -PERMUT = PERMUTATIES ## Geeft als resultaat het aantal permutaties voor een gegeven aantal objecten -POISSON = POISSON ## Geeft als resultaat de Poisson-verdeling -PROB = KANS ## Geeft als resultaat de kans dat waarden zich tussen twee grenzen bevinden -QUARTILE = KWARTIEL ## Geeft als resultaat het kwartiel van een gegevensverzameling -RANK = RANG ## Geeft als resultaat het rangnummer van een getal in een lijst getallen -RSQ = R.KWADRAAT ## Geeft als resultaat het kwadraat van de Pearson-correlatiecoëfficiënt -SKEW = SCHEEFHEID ## Geeft als resultaat de mate van asymmetrie van een verdeling -SLOPE = RICHTING ## Geeft als resultaat de richtingscoëfficiënt van een lineaire regressielijn -SMALL = KLEINSTE ## Geeft als resultaat de op k-1 na kleinste waarde in een gegevensverzameling -STANDARDIZE = NORMALISEREN ## Geeft als resultaat een genormaliseerde waarde -STDEV = STDEV ## Maakt een schatting van de standaarddeviatie op basis van een steekproef -STDEVA = STDEVA ## Maakt een schatting van de standaarddeviatie op basis van een steekproef, inclusief getallen, tekst en logische waarden -STDEVP = STDEVP ## Berekent de standaarddeviatie op basis van de volledige populatie -STDEVPA = STDEVPA ## Berekent de standaarddeviatie op basis van de volledige populatie, inclusief getallen, tekst en logische waarden -STEYX = STAND.FOUT.YX ## Geeft als resultaat de standaardfout in de voorspelde y-waarde voor elke x in een regressie -TDIST = T.VERD ## Geeft als resultaat de Student T-verdeling -TINV = T.INV ## Geeft als resultaat de inverse van de Student T-verdeling -TREND = TREND ## Geeft als resultaat de waarden voor een lineaire trend -TRIMMEAN = GETRIMD.GEM ## Geeft als resultaat het gemiddelde van waarden in een gegevensverzameling -TTEST = T.TOETS ## Geeft als resultaat de kans met behulp van de Student T-toets -VAR = VAR ## Maakt een schatting van de variantie op basis van een steekproef -VARA = VARA ## Maakt een schatting van de variantie op basis van een steekproef, inclusief getallen, tekst en logische waarden -VARP = VARP ## Berekent de variantie op basis van de volledige populatie -VARPA = VARPA ## Berekent de standaarddeviatie op basis van de volledige populatie, inclusief getallen, tekst en logische waarden -WEIBULL = WEIBULL ## Geeft als resultaat de Weibull-verdeling -ZTEST = Z.TOETS ## Geeft als resultaat de eenzijdige kanswaarde van een Z-toets - - -## -## Text functions Tekstfuncties -## -ASC = ASC ## Wijzigt Nederlandse letters of katakanatekens over de volle breedte (dubbel-bytetekens) binnen een tekenreeks in tekens over de halve breedte (enkel-bytetekens) -BAHTTEXT = BAHT.TEKST ## Converteert een getal naar tekst met de valutanotatie ß (baht) -CHAR = TEKEN ## Geeft als resultaat het teken dat hoort bij de opgegeven code -CLEAN = WISSEN.CONTROL ## Verwijdert alle niet-afdrukbare tekens uit een tekst -CODE = CODE ## Geeft als resultaat de numerieke code voor het eerste teken in een tekenreeks -CONCATENATE = TEKST.SAMENVOEGEN ## Voegt verschillende tekstfragmenten samen tot één tekstfragment -DOLLAR = EURO ## Converteert een getal naar tekst met de valutanotatie € (euro) -EXACT = GELIJK ## Controleert of twee tekenreeksen identiek zijn -FIND = VIND.ALLES ## Zoekt een bepaalde tekenreeks in een tekst (waarbij onderscheid wordt gemaakt tussen hoofdletters en kleine letters) -FINDB = VIND.ALLES.B ## Zoekt een bepaalde tekenreeks in een tekst (waarbij onderscheid wordt gemaakt tussen hoofdletters en kleine letters) -FIXED = VAST ## Maakt een getal als tekst met een vast aantal decimalen op -JIS = JIS ## Wijzigt Nederlandse letters of katakanatekens over de halve breedte (enkel-bytetekens) binnen een tekenreeks in tekens over de volle breedte (dubbel-bytetekens) -LEFT = LINKS ## Geeft als resultaat de meest linkse tekens in een tekenreeks -LEFTB = LINKSB ## Geeft als resultaat de meest linkse tekens in een tekenreeks -LEN = LENGTE ## Geeft als resultaat het aantal tekens in een tekenreeks -LENB = LENGTEB ## Geeft als resultaat het aantal tekens in een tekenreeks -LOWER = KLEINE.LETTERS ## Zet tekst om in kleine letters -MID = MIDDEN ## Geeft als resultaat een bepaald aantal tekens van een tekenreeks vanaf de positie die u opgeeft -MIDB = DEELB ## Geeft als resultaat een bepaald aantal tekens van een tekenreeks vanaf de positie die u opgeeft -PHONETIC = FONETISCH ## Haalt de fonetische tekens (furigana) uit een tekenreeks op -PROPER = BEGINLETTERS ## Zet de eerste letter van elk woord in een tekst om in een hoofdletter -REPLACE = VERVANG ## Vervangt tekens binnen een tekst -REPLACEB = VERVANGENB ## Vervangt tekens binnen een tekst -REPT = HERHALING ## Herhaalt een tekst een aantal malen -RIGHT = RECHTS ## Geeft als resultaat de meest rechtse tekens in een tekenreeks -RIGHTB = RECHTSB ## Geeft als resultaat de meest rechtse tekens in een tekenreeks -SEARCH = VIND.SPEC ## Zoekt een bepaalde tekenreeks in een tekst (waarbij geen onderscheid wordt gemaakt tussen hoofdletters en kleine letters) -SEARCHB = VIND.SPEC.B ## Zoekt een bepaalde tekenreeks in een tekst (waarbij geen onderscheid wordt gemaakt tussen hoofdletters en kleine letters) -SUBSTITUTE = SUBSTITUEREN ## Vervangt oude tekst door nieuwe tekst in een tekenreeks -T = T ## Converteert de argumenten naar tekst -TEXT = TEKST ## Maakt een getal op en converteert het getal naar tekst -TRIM = SPATIES.WISSEN ## Verwijdert de spaties uit een tekst -UPPER = HOOFDLETTERS ## Zet tekst om in hoofdletters -VALUE = WAARDE ## Converteert tekst naar een getal diff --git a/Utils/PHPExcel/locale/no/config b/Utils/PHPExcel/locale/no/config deleted file mode 100644 index 8a0bb77..0000000 --- a/Utils/PHPExcel/locale/no/config +++ /dev/null @@ -1,49 +0,0 @@ -## -## PHPExcel -## - -## Copyright (c) 2006 - 2013 PHPExcel -## -## This library is free software; you can redistribute it and/or -## modify it under the terms of the GNU Lesser General Public -## License as published by the Free Software Foundation; either -## version 2.1 of the License, or (at your option) any later version. -## -## This library is distributed in the hope that it will be useful, -## but WITHOUT ANY WARRANTY; without even the implied warranty of -## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -## Lesser General Public License for more details. -## -## You should have received a copy of the GNU Lesser General Public -## License along with this library; if not, write to the Free Software -## Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA -## -## @category PHPExcel -## @package PHPExcel_Settings -## @copyright Copyright (c) 2006 - 2013 PHPExcel (http://www.codeplex.com/PHPExcel) -## @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL -## @version ##VERSION##, ##DATE## -## -## - - -ArgumentSeparator = ; - - -## -## (For future use) -## -currencySymbol = kr - - -## -## Excel Error Codes (For future use) - -## -NULL = #NULL! -DIV0 = #DIV/0! -VALUE = #VERDI! -REF = #REF! -NAME = #NAVN? -NUM = #NUM! -NA = #I/T diff --git a/Utils/PHPExcel/locale/no/functions b/Utils/PHPExcel/locale/no/functions deleted file mode 100644 index 472772c..0000000 --- a/Utils/PHPExcel/locale/no/functions +++ /dev/null @@ -1,439 +0,0 @@ -## -## PHPExcel -## - -## Copyright (c) 2006 - 2013 PHPExcel -## -## This library is free software; you can redistribute it and/or -## modify it under the terms of the GNU Lesser General Public -## License as published by the Free Software Foundation; either -## version 2.1 of the License, or (at your option) any later version. -## -## This library is distributed in the hope that it will be useful, -## but WITHOUT ANY WARRANTY; without even the implied warranty of -## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -## Lesser General Public License for more details. -## -## You should have received a copy of the GNU Lesser General Public -## License along with this library; if not, write to the Free Software -## Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA -## -## @category PHPExcel -## @package PHPExcel_Calculation -## @copyright Copyright (c) 2006 - 2013 PHPExcel (http://www.codeplex.com/PHPExcel) -## @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL -## @version ##VERSION##, ##DATE## -## -## Data in this file derived from http://www.piuha.fi/excel-function-name-translation/ -## -## - - -## -## Add-in and Automation functions Funksjonene Tillegg og Automatisering -## -GETPIVOTDATA = HENTPIVOTDATA ## Returnerer data som er lagret i en pivottabellrapport - - -## -## Cube functions Kubefunksjoner -## -CUBEKPIMEMBER = KUBEKPIMEDLEM ## Returnerer navnet, egenskapen og målet for en viktig ytelsesindikator (KPI), og viser navnet og egenskapen i cellen. En KPI er en målbar enhet, for eksempel månedlig bruttoinntjening eller kvartalsvis inntjening per ansatt, og brukes til å overvåke ytelsen i en organisasjon. -CUBEMEMBER = KUBEMEDLEM ## Returnerer et medlem eller en tuppel i et kubehierarki. Brukes til å validere at medlemmet eller tuppelen finnes i kuben. -CUBEMEMBERPROPERTY = KUBEMEDLEMEGENSKAP ## Returnerer verdien til en medlemsegenskap i kuben. Brukes til å validere at et medlemsnavn finnes i kuben, og til å returnere den angitte egenskapen for dette medlemmet. -CUBERANKEDMEMBER = KUBERANGERTMEDLEM ## Returnerer det n-te, eller rangerte, medlemmet i et sett. Brukes til å returnere ett eller flere elementer i et sett, for eksempel de 10 beste studentene. -CUBESET = KUBESETT ## Definerer et beregnet sett av medlemmer eller tuppeler ved å sende et settuttrykk til kuben på serveren, noe som oppretter settet og deretter returnerer dette settet til Microsoft Office Excel. -CUBESETCOUNT = KUBESETTANTALL ## Returnerer antallet elementer i et sett. -CUBEVALUE = KUBEVERDI ## Returnerer en aggregert verdi fra en kube. - - -## -## Database functions Databasefunksjoner -## -DAVERAGE = DGJENNOMSNITT ## Returnerer gjennomsnittet av merkede databaseposter -DCOUNT = DANTALL ## Teller celler som inneholder tall i en database -DCOUNTA = DANTALLA ## Teller celler som ikke er tomme i en database -DGET = DHENT ## Trekker ut fra en database en post som oppfyller angitte vilkår -DMAX = DMAKS ## Returnerer maksimumsverdien fra merkede databaseposter -DMIN = DMIN ## Returnerer minimumsverdien fra merkede databaseposter -DPRODUCT = DPRODUKT ## Multipliserer verdiene i et bestemt felt med poster som oppfyller vilkårene i en database -DSTDEV = DSTDAV ## Estimerer standardavviket basert på et utvalg av merkede databaseposter -DSTDEVP = DSTAVP ## Beregner standardavviket basert på at merkede databaseposter utgjør hele populasjonen -DSUM = DSUMMER ## Legger til tallene i feltkolonnen med poster, i databasen som oppfyller vilkårene -DVAR = DVARIANS ## Estimerer variansen basert på et utvalg av merkede databaseposter -DVARP = DVARIANSP ## Beregner variansen basert på at merkede databaseposter utgjør hele populasjonen - - -## -## Date and time functions Dato- og tidsfunksjoner -## -DATE = DATO ## Returnerer serienummeret som svarer til en bestemt dato -DATEVALUE = DATOVERDI ## Konverterer en dato med tekstformat til et serienummer -DAY = DAG ## Konverterer et serienummer til en dag i måneden -DAYS360 = DAGER360 ## Beregner antall dager mellom to datoer basert på et år med 360 dager -EDATE = DAG.ETTER ## Returnerer serienummeret som svarer til datoen som er det indikerte antall måneder før eller etter startdatoen -EOMONTH = MÅNEDSSLUTT ## Returnerer serienummeret som svarer til siste dag i måneden, før eller etter et angitt antall måneder -HOUR = TIME ## Konverterer et serienummer til en time -MINUTE = MINUTT ## Konverterer et serienummer til et minutt -MONTH = MÅNED ## Konverterer et serienummer til en måned -NETWORKDAYS = NETT.ARBEIDSDAGER ## Returnerer antall hele arbeidsdager mellom to datoer -NOW = NÅ ## Returnerer serienummeret som svarer til gjeldende dato og klokkeslett -SECOND = SEKUND ## Konverterer et serienummer til et sekund -TIME = TID ## Returnerer serienummeret som svarer til et bestemt klokkeslett -TIMEVALUE = TIDSVERDI ## Konverterer et klokkeslett i tekstformat til et serienummer -TODAY = IDAG ## Returnerer serienummeret som svarer til dagens dato -WEEKDAY = UKEDAG ## Konverterer et serienummer til en ukedag -WEEKNUM = UKENR ## Konverterer et serienummer til et tall som representerer hvilket nummer uken har i et år -WORKDAY = ARBEIDSDAG ## Returnerer serienummeret som svarer til datoen før eller etter et angitt antall arbeidsdager -YEAR = ÅR ## Konverterer et serienummer til et år -YEARFRAC = ÅRDEL ## Returnerer brøkdelen for året, som svarer til antall hele dager mellom startdato og sluttdato - - -## -## Engineering functions Tekniske funksjoner -## -BESSELI = BESSELI ## Returnerer den endrede Bessel-funksjonen In(x) -BESSELJ = BESSELJ ## Returnerer Bessel-funksjonen Jn(x) -BESSELK = BESSELK ## Returnerer den endrede Bessel-funksjonen Kn(x) -BESSELY = BESSELY ## Returnerer Bessel-funksjonen Yn(x) -BIN2DEC = BINTILDES ## Konverterer et binært tall til et desimaltall -BIN2HEX = BINTILHEKS ## Konverterer et binært tall til et heksadesimaltall -BIN2OCT = BINTILOKT ## Konverterer et binært tall til et oktaltall -COMPLEX = KOMPLEKS ## Konverterer reelle og imaginære koeffisienter til et komplekst tall -CONVERT = KONVERTER ## Konverterer et tall fra ett målsystem til et annet -DEC2BIN = DESTILBIN ## Konverterer et desimaltall til et binærtall -DEC2HEX = DESTILHEKS ## Konverterer et heltall i 10-tallsystemet til et heksadesimalt tall -DEC2OCT = DESTILOKT ## Konverterer et heltall i 10-tallsystemet til et oktaltall -DELTA = DELTA ## Undersøker om to verdier er like -ERF = FEILF ## Returnerer feilfunksjonen -ERFC = FEILFK ## Returnerer den komplementære feilfunksjonen -GESTEP = GRENSEVERDI ## Tester om et tall er større enn en terskelverdi -HEX2BIN = HEKSTILBIN ## Konverterer et heksadesimaltall til et binært tall -HEX2DEC = HEKSTILDES ## Konverterer et heksadesimalt tall til et heltall i 10-tallsystemet -HEX2OCT = HEKSTILOKT ## Konverterer et heksadesimalt tall til et oktaltall -IMABS = IMABS ## Returnerer absoluttverdien (koeffisienten) til et komplekst tall -IMAGINARY = IMAGINÆR ## Returnerer den imaginære koeffisienten til et komplekst tall -IMARGUMENT = IMARGUMENT ## Returnerer argumentet theta, som er en vinkel uttrykt i radianer -IMCONJUGATE = IMKONJUGERT ## Returnerer den komplekse konjugaten til et komplekst tall -IMCOS = IMCOS ## Returnerer cosinus til et komplekst tall -IMDIV = IMDIV ## Returnerer kvotienten til to komplekse tall -IMEXP = IMEKSP ## Returnerer eksponenten til et komplekst tall -IMLN = IMLN ## Returnerer den naturlige logaritmen for et komplekst tall -IMLOG10 = IMLOG10 ## Returnerer logaritmen med grunntall 10 for et komplekst tall -IMLOG2 = IMLOG2 ## Returnerer logaritmen med grunntall 2 for et komplekst tall -IMPOWER = IMOPPHØY ## Returnerer et komplekst tall opphøyd til en heltallspotens -IMPRODUCT = IMPRODUKT ## Returnerer produktet av komplekse tall -IMREAL = IMREELL ## Returnerer den reelle koeffisienten til et komplekst tall -IMSIN = IMSIN ## Returnerer sinus til et komplekst tall -IMSQRT = IMROT ## Returnerer kvadratroten av et komplekst tall -IMSUB = IMSUB ## Returnerer differansen mellom to komplekse tall -IMSUM = IMSUMMER ## Returnerer summen av komplekse tall -OCT2BIN = OKTTILBIN ## Konverterer et oktaltall til et binært tall -OCT2DEC = OKTTILDES ## Konverterer et oktaltall til et desimaltall -OCT2HEX = OKTTILHEKS ## Konverterer et oktaltall til et heksadesimaltall - - -## -## Financial functions Økonomiske funksjoner -## -ACCRINT = PÅLØPT.PERIODISK.RENTE ## Returnerer påløpte renter for et verdipapir som betaler periodisk rente -ACCRINTM = PÅLØPT.FORFALLSRENTE ## Returnerer den påløpte renten for et verdipapir som betaler rente ved forfall -AMORDEGRC = AMORDEGRC ## Returnerer avskrivningen for hver regnskapsperiode ved hjelp av en avskrivingskoeffisient -AMORLINC = AMORLINC ## Returnerer avskrivingen for hver regnskapsperiode -COUPDAYBS = OBLIG.DAGER.FF ## Returnerer antall dager fra begynnelsen av den rentebærende perioden til innløsningsdatoen -COUPDAYS = OBLIG.DAGER ## Returnerer antall dager i den rentebærende perioden som inneholder innløsningsdatoen -COUPDAYSNC = OBLIG.DAGER.NF ## Returnerer antall dager fra betalingsdato til neste renteinnbetalingsdato -COUPNCD = OBLIG.DAGER.EF ## Returnerer obligasjonsdatoen som kommer etter oppgjørsdatoen -COUPNUM = OBLIG.ANTALL ## Returnerer antall obligasjoner som skal betales mellom oppgjørsdatoen og forfallsdatoen -COUPPCD = OBLIG.DAG.FORRIGE ## Returnerer obligasjonsdatoen som kommer før oppgjørsdatoen -CUMIPMT = SAMLET.RENTE ## Returnerer den kumulative renten som er betalt mellom to perioder -CUMPRINC = SAMLET.HOVEDSTOL ## Returnerer den kumulative hovedstolen som er betalt for et lån mellom to perioder -DB = DAVSKR ## Returnerer avskrivningen for et aktivum i en angitt periode, foretatt med fast degressiv avskrivning -DDB = DEGRAVS ## Returnerer avskrivningen for et aktivum for en gitt periode, ved hjelp av dobbel degressiv avskrivning eller en metode som du selv angir -DISC = DISKONTERT ## Returnerer diskonteringsraten for et verdipapir -DOLLARDE = DOLLARDE ## Konverterer en valutapris uttrykt som en brøk, til en valutapris uttrykt som et desimaltall -DOLLARFR = DOLLARBR ## Konverterer en valutapris uttrykt som et desimaltall, til en valutapris uttrykt som en brøk -DURATION = VARIGHET ## Returnerer årlig varighet for et verdipapir med renter som betales periodisk -EFFECT = EFFEKTIV.RENTE ## Returnerer den effektive årlige rentesatsen -FV = SLUTTVERDI ## Returnerer fremtidig verdi for en investering -FVSCHEDULE = SVPLAN ## Returnerer den fremtidige verdien av en inngående hovedstol etter å ha anvendt en serie med sammensatte rentesatser -INTRATE = RENTESATS ## Returnerer rentefoten av et fullfinansiert verdipapir -IPMT = RAVDRAG ## Returnerer betalte renter på en investering for en gitt periode -IRR = IR ## Returnerer internrenten for en serie kontantstrømmer -ISPMT = ER.AVDRAG ## Beregner renten som er betalt for en investering i løpet av en bestemt periode -MDURATION = MVARIGHET ## Returnerer Macauleys modifiserte varighet for et verdipapir med en antatt pålydende verdi på kr 100,00 -MIRR = MODIR ## Returnerer internrenten der positive og negative kontantstrømmer finansieres med forskjellige satser -NOMINAL = NOMINELL ## Returnerer årlig nominell rentesats -NPER = PERIODER ## Returnerer antall perioder for en investering -NPV = NNV ## Returnerer netto nåverdi for en investering, basert på en serie periodiske kontantstrømmer og en rentesats -ODDFPRICE = AVVIKFP.PRIS ## Returnerer pris pålydende kr 100 for et verdipapir med en odde første periode -ODDFYIELD = AVVIKFP.AVKASTNING ## Returnerer avkastingen for et verdipapir med en odde første periode -ODDLPRICE = AVVIKSP.PRIS ## Returnerer pris pålydende kr 100 for et verdipapir med en odde siste periode -ODDLYIELD = AVVIKSP.AVKASTNING ## Returnerer avkastingen for et verdipapir med en odde siste periode -PMT = AVDRAG ## Returnerer periodisk betaling for en annuitet -PPMT = AMORT ## Returnerer betalingen på hovedstolen for en investering i en gitt periode -PRICE = PRIS ## Returnerer prisen per pålydende kr 100 for et verdipapir som gir periodisk avkastning -PRICEDISC = PRIS.DISKONTERT ## Returnerer prisen per pålydende kr 100 for et diskontert verdipapir -PRICEMAT = PRIS.FORFALL ## Returnerer prisen per pålydende kr 100 av et verdipapir som betaler rente ved forfall -PV = NÅVERDI ## Returnerer nåverdien av en investering -RATE = RENTE ## Returnerer rentesatsen per periode for en annuitet -RECEIVED = MOTTATT.AVKAST ## Returnerer summen som mottas ved forfallsdato for et fullinvestert verdipapir -SLN = LINAVS ## Returnerer den lineære avskrivningen for et aktivum i én periode -SYD = ÅRSAVS ## Returnerer årsavskrivningen for et aktivum i en angitt periode -TBILLEQ = TBILLEKV ## Returnerer den obligasjonsekvivalente avkastningen for en statsobligasjon -TBILLPRICE = TBILLPRIS ## Returnerer prisen per pålydende kr 100 for en statsobligasjon -TBILLYIELD = TBILLAVKASTNING ## Returnerer avkastningen til en statsobligasjon -VDB = VERDIAVS ## Returnerer avskrivningen for et aktivum i en angitt periode eller delperiode, ved hjelp av degressiv avskrivning -XIRR = XIR ## Returnerer internrenten for en serie kontantstrømmer som ikke nødvendigvis er periodiske -XNPV = XNNV ## Returnerer netto nåverdi for en serie kontantstrømmer som ikke nødvendigvis er periodiske -YIELD = AVKAST ## Returnerer avkastningen på et verdipapir som betaler periodisk rente -YIELDDISC = AVKAST.DISKONTERT ## Returnerer årlig avkastning for et diskontert verdipapir, for eksempel en statskasseveksel -YIELDMAT = AVKAST.FORFALL ## Returnerer den årlige avkastningen for et verdipapir som betaler rente ved forfallsdato - - -## -## Information functions Informasjonsfunksjoner -## -CELL = CELLE ## Returnerer informasjon om formatering, plassering eller innholdet til en celle -ERROR.TYPE = FEIL.TYPE ## Returnerer et tall som svarer til en feiltype -INFO = INFO ## Returnerer informasjon om gjeldende operativmiljø -ISBLANK = ERTOM ## Returnerer SANN hvis verdien er tom -ISERR = ERFEIL ## Returnerer SANN hvis verdien er en hvilken som helst annen feilverdi enn #I/T -ISERROR = ERFEIL ## Returnerer SANN hvis verdien er en hvilken som helst feilverdi -ISEVEN = ERPARTALL ## Returnerer SANN hvis tallet er et partall -ISLOGICAL = ERLOGISK ## Returnerer SANN hvis verdien er en logisk verdi -ISNA = ERIT ## Returnerer SANN hvis verdien er feilverdien #I/T -ISNONTEXT = ERIKKETEKST ## Returnerer SANN hvis verdien ikke er tekst -ISNUMBER = ERTALL ## Returnerer SANN hvis verdien er et tall -ISODD = ERODDETALL ## Returnerer SANN hvis tallet er et oddetall -ISREF = ERREF ## Returnerer SANN hvis verdien er en referanse -ISTEXT = ERTEKST ## Returnerer SANN hvis verdien er tekst -N = N ## Returnerer en verdi som er konvertert til et tall -NA = IT ## Returnerer feilverdien #I/T -TYPE = VERDITYPE ## Returnerer et tall som indikerer datatypen til en verdi - - -## -## Logical functions Logiske funksjoner -## -AND = OG ## Returnerer SANN hvis alle argumentene er lik SANN -FALSE = USANN ## Returnerer den logiske verdien USANN -IF = HVIS ## Angir en logisk test som skal utføres -IFERROR = HVISFEIL ## Returnerer en verdi du angir hvis en formel evaluerer til en feil. Ellers returnerer den resultatet av formelen. -NOT = IKKE ## Reverserer logikken til argumentet -OR = ELLER ## Returnerer SANN hvis ett eller flere argumenter er lik SANN -TRUE = SANN ## Returnerer den logiske verdien SANN - - -## -## Lookup and reference functions Oppslag- og referansefunksjoner -## -ADDRESS = ADRESSE ## Returnerer en referanse som tekst til en enkelt celle i et regneark -AREAS = OMRÅDER ## Returnerer antall områder i en referanse -CHOOSE = VELG ## Velger en verdi fra en liste med verdier -COLUMN = KOLONNE ## Returnerer kolonnenummeret for en referanse -COLUMNS = KOLONNER ## Returnerer antall kolonner i en referanse -HLOOKUP = FINN.KOLONNE ## Leter i den øverste raden i en matrise og returnerer verdien for den angitte cellen -HYPERLINK = HYPERKOBLING ## Oppretter en snarvei eller et hopp som åpner et dokument som er lagret på en nettverksserver, et intranett eller Internett -INDEX = INDEKS ## Bruker en indeks til å velge en verdi fra en referanse eller matrise -INDIRECT = INDIREKTE ## Returnerer en referanse angitt av en tekstverdi -LOOKUP = SLÅ.OPP ## Slår opp verdier i en vektor eller matrise -MATCH = SAMMENLIGNE ## Slår opp verdier i en referanse eller matrise -OFFSET = FORSKYVNING ## Returnerer en referanseforskyvning fra en gitt referanse -ROW = RAD ## Returnerer radnummeret for en referanse -ROWS = RADER ## Returnerer antall rader i en referanse -RTD = RTD ## Henter sanntidsdata fra et program som støtter COM-automatisering (automatisering: En måte å arbeide på med programobjekter fra et annet program- eller utviklingsverktøy. Tidligere kalt OLE-automatisering. Automatisering er en bransjestandard og en funksjon i Component Object Model (COM).) -TRANSPOSE = TRANSPONER ## Returnerer transponeringen av en matrise -VLOOKUP = FINN.RAD ## Leter i den første kolonnen i en matrise og flytter bortover raden for å returnere verdien til en celle - - -## -## Math and trigonometry functions Matematikk- og trigonometrifunksjoner -## -ABS = ABS ## Returnerer absoluttverdien til et tall -ACOS = ARCCOS ## Returnerer arcus cosinus til et tall -ACOSH = ARCCOSH ## Returnerer den inverse hyperbolske cosinus til et tall -ASIN = ARCSIN ## Returnerer arcus sinus til et tall -ASINH = ARCSINH ## Returnerer den inverse hyperbolske sinus til et tall -ATAN = ARCTAN ## Returnerer arcus tangens til et tall -ATAN2 = ARCTAN2 ## Returnerer arcus tangens fra x- og y-koordinater -ATANH = ARCTANH ## Returnerer den inverse hyperbolske tangens til et tall -CEILING = AVRUND.GJELDENDE.MULTIPLUM ## Runder av et tall til nærmeste heltall eller til nærmeste signifikante multiplum -COMBIN = KOMBINASJON ## Returnerer antall kombinasjoner for ett gitt antall objekter -COS = COS ## Returnerer cosinus til et tall -COSH = COSH ## Returnerer den hyperbolske cosinus til et tall -DEGREES = GRADER ## Konverterer radianer til grader -EVEN = AVRUND.TIL.PARTALL ## Runder av et tall oppover til nærmeste heltall som er et partall -EXP = EKSP ## Returnerer e opphøyd i en angitt potens -FACT = FAKULTET ## Returnerer fakultet til et tall -FACTDOUBLE = DOBBELFAKT ## Returnerer et talls doble fakultet -FLOOR = AVRUND.GJELDENDE.MULTIPLUM.NED ## Avrunder et tall nedover, mot null -GCD = SFF ## Returnerer høyeste felles divisor -INT = HELTALL ## Avrunder et tall nedover til nærmeste heltall -LCM = MFM ## Returnerer minste felles multiplum -LN = LN ## Returnerer den naturlige logaritmen til et tall -LOG = LOG ## Returnerer logaritmen for et tall til et angitt grunntall -LOG10 = LOG10 ## Returnerer logaritmen med grunntall 10 for et tall -MDETERM = MDETERM ## Returnerer matrisedeterminanten til en matrise -MINVERSE = MINVERS ## Returnerer den inverse matrisen til en matrise -MMULT = MMULT ## Returnerer matriseproduktet av to matriser -MOD = REST ## Returnerer resten fra en divisjon -MROUND = MRUND ## Returnerer et tall avrundet til det ønskede multiplum -MULTINOMIAL = MULTINOMINELL ## Returnerer det multinominelle for et sett med tall -ODD = AVRUND.TIL.ODDETALL ## Runder av et tall oppover til nærmeste heltall som er et oddetall -PI = PI ## Returnerer verdien av pi -POWER = OPPHØYD.I ## Returnerer resultatet av et tall opphøyd i en potens -PRODUCT = PRODUKT ## Multipliserer argumentene -QUOTIENT = KVOTIENT ## Returnerer heltallsdelen av en divisjon -RADIANS = RADIANER ## Konverterer grader til radianer -RAND = TILFELDIG ## Returnerer et tilfeldig tall mellom 0 og 1 -RANDBETWEEN = TILFELDIGMELLOM ## Returnerer et tilfeldig tall innenfor et angitt område -ROMAN = ROMERTALL ## Konverterer vanlige tall til romertall, som tekst -ROUND = AVRUND ## Avrunder et tall til et angitt antall sifre -ROUNDDOWN = AVRUND.NED ## Avrunder et tall nedover, mot null -ROUNDUP = AVRUND.OPP ## Runder av et tall oppover, bort fra null -SERIESSUM = SUMMER.REKKE ## Returnerer summen av en geometrisk rekke, basert på formelen -SIGN = FORTEGN ## Returnerer fortegnet for et tall -SIN = SIN ## Returnerer sinus til en gitt vinkel -SINH = SINH ## Returnerer den hyperbolske sinus til et tall -SQRT = ROT ## Returnerer en positiv kvadratrot -SQRTPI = ROTPI ## Returnerer kvadratroten av (tall * pi) -SUBTOTAL = DELSUM ## Returnerer en delsum i en liste eller database -SUM = SUMMER ## Legger sammen argumentene -SUMIF = SUMMERHVIS ## Legger sammen cellene angitt ved et gitt vilkår -SUMIFS = SUMMER.HVIS.SETT ## Legger sammen cellene i et område som oppfyller flere vilkår -SUMPRODUCT = SUMMERPRODUKT ## Returnerer summen av produktene av tilsvarende matrisekomponenter -SUMSQ = SUMMERKVADRAT ## Returnerer kvadratsummen av argumentene -SUMX2MY2 = SUMMERX2MY2 ## Returnerer summen av differansen av kvadratene for tilsvarende verdier i to matriser -SUMX2PY2 = SUMMERX2PY2 ## Returnerer summen av kvadratsummene for tilsvarende verdier i to matriser -SUMXMY2 = SUMMERXMY2 ## Returnerer summen av kvadratene av differansen for tilsvarende verdier i to matriser -TAN = TAN ## Returnerer tangens for et tall -TANH = TANH ## Returnerer den hyperbolske tangens for et tall -TRUNC = AVKORT ## Korter av et tall til et heltall - - -## -## Statistical functions Statistiske funksjoner -## -AVEDEV = GJENNOMSNITTSAVVIK ## Returnerer datapunktenes gjennomsnittlige absoluttavvik fra middelverdien -AVERAGE = GJENNOMSNITT ## Returnerer gjennomsnittet for argumentene -AVERAGEA = GJENNOMSNITTA ## Returnerer gjennomsnittet for argumentene, inkludert tall, tekst og logiske verdier -AVERAGEIF = GJENNOMSNITTHVIS ## Returnerer gjennomsnittet (aritmetisk gjennomsnitt) av alle cellene i et område som oppfyller et bestemt vilkår -AVERAGEIFS = GJENNOMSNITT.HVIS.SETT ## Returnerer gjennomsnittet (aritmetisk middelverdi) av alle celler som oppfyller flere vilkår. -BETADIST = BETA.FORDELING ## Returnerer den kumulative betafordelingsfunksjonen -BETAINV = INVERS.BETA.FORDELING ## Returnerer den inverse verdien til fordelingsfunksjonen for en angitt betafordeling -BINOMDIST = BINOM.FORDELING ## Returnerer den individuelle binomiske sannsynlighetsfordelingen -CHIDIST = KJI.FORDELING ## Returnerer den ensidige sannsynligheten for en kjikvadrert fordeling -CHIINV = INVERS.KJI.FORDELING ## Returnerer den inverse av den ensidige sannsynligheten for den kjikvadrerte fordelingen -CHITEST = KJI.TEST ## Utfører testen for uavhengighet -CONFIDENCE = KONFIDENS ## Returnerer konfidensintervallet til gjennomsnittet for en populasjon -CORREL = KORRELASJON ## Returnerer korrelasjonskoeffisienten mellom to datasett -COUNT = ANTALL ## Teller hvor mange tall som er i argumentlisten -COUNTA = ANTALLA ## Teller hvor mange verdier som er i argumentlisten -COUNTBLANK = TELLBLANKE ## Teller antall tomme celler i et område. -COUNTIF = ANTALL.HVIS ## Teller antall celler i et område som oppfyller gitte vilkår -COUNTIFS = ANTALL.HVIS.SETT ## Teller antallet ikke-tomme celler i et område som oppfyller flere vilkår -COVAR = KOVARIANS ## Returnerer kovariansen, gjennomsnittet av produktene av parvise avvik -CRITBINOM = GRENSE.BINOM ## Returnerer den minste verdien der den kumulative binomiske fordelingen er mindre enn eller lik en vilkårsverdi -DEVSQ = AVVIK.KVADRERT ## Returnerer summen av kvadrerte avvik -EXPONDIST = EKSP.FORDELING ## Returnerer eksponentialfordelingen -FDIST = FFORDELING ## Returnerer F-sannsynlighetsfordelingen -FINV = FFORDELING.INVERS ## Returnerer den inverse av den sannsynlige F-fordelingen -FISHER = FISHER ## Returnerer Fisher-transformasjonen -FISHERINV = FISHERINV ## Returnerer den inverse av Fisher-transformasjonen -FORECAST = PROGNOSE ## Returnerer en verdi langs en lineær trend -FREQUENCY = FREKVENS ## Returnerer en frekvensdistribusjon som en loddrett matrise -FTEST = FTEST ## Returnerer resultatet av en F-test -GAMMADIST = GAMMAFORDELING ## Returnerer gammafordelingen -GAMMAINV = GAMMAINV ## Returnerer den inverse av den gammakumulative fordelingen -GAMMALN = GAMMALN ## Returnerer den naturlige logaritmen til gammafunksjonen G(x) -GEOMEAN = GJENNOMSNITT.GEOMETRISK ## Returnerer den geometriske middelverdien -GROWTH = VEKST ## Returnerer verdier langs en eksponentiell trend -HARMEAN = GJENNOMSNITT.HARMONISK ## Returnerer den harmoniske middelverdien -HYPGEOMDIST = HYPGEOM.FORDELING ## Returnerer den hypergeometriske fordelingen -INTERCEPT = SKJÆRINGSPUNKT ## Returnerer skjæringspunktet til den lineære regresjonslinjen -KURT = KURT ## Returnerer kurtosen til et datasett -LARGE = N.STØRST ## Returnerer den n-te største verdien i et datasett -LINEST = RETTLINJE ## Returnerer parameterne til en lineær trend -LOGEST = KURVE ## Returnerer parameterne til en eksponentiell trend -LOGINV = LOGINV ## Returnerer den inverse lognormale fordelingen -LOGNORMDIST = LOGNORMFORD ## Returnerer den kumulative lognormale fordelingen -MAX = STØRST ## Returnerer maksimumsverdien i en argumentliste -MAXA = MAKSA ## Returnerer maksimumsverdien i en argumentliste, inkludert tall, tekst og logiske verdier -MEDIAN = MEDIAN ## Returnerer medianen til tallene som er gitt -MIN = MIN ## Returnerer minimumsverdien i en argumentliste -MINA = MINA ## Returnerer den minste verdien i en argumentliste, inkludert tall, tekst og logiske verdier -MODE = MODUS ## Returnerer den vanligste verdien i et datasett -NEGBINOMDIST = NEGBINOM.FORDELING ## Returnerer den negative binomiske fordelingen -NORMDIST = NORMALFORDELING ## Returnerer den kumulative normalfordelingen -NORMINV = NORMINV ## Returnerer den inverse kumulative normalfordelingen -NORMSDIST = NORMSFORDELING ## Returnerer standard kumulativ normalfordeling -NORMSINV = NORMSINV ## Returnerer den inverse av den den kumulative standard normalfordelingen -PEARSON = PEARSON ## Returnerer produktmomentkorrelasjonskoeffisienten, Pearson -PERCENTILE = PERSENTIL ## Returnerer den n-te persentil av verdiene i et område -PERCENTRANK = PROSENTDEL ## Returnerer prosentrangeringen av en verdi i et datasett -PERMUT = PERMUTER ## Returnerer antall permutasjoner for et gitt antall objekter -POISSON = POISSON ## Returnerer Poissons sannsynlighetsfordeling -PROB = SANNSYNLIG ## Returnerer sannsynligheten for at verdier i et område ligger mellom to grenser -QUARTILE = KVARTIL ## Returnerer kvartilen til et datasett -RANK = RANG ## Returnerer rangeringen av et tall, eller plassen tallet har i en rekke -RSQ = RKVADRAT ## Returnerer kvadratet av produktmomentkorrelasjonskoeffisienten (Pearsons r) -SKEW = SKJEVFORDELING ## Returnerer skjevheten i en fordeling -SLOPE = STIGNINGSTALL ## Returnerer stigningtallet for den lineære regresjonslinjen -SMALL = N.MINST ## Returnerer den n-te minste verdien i et datasett -STANDARDIZE = NORMALISER ## Returnerer en normalisert verdi -STDEV = STDAV ## Estimere standardavvik på grunnlag av et utvalg -STDEVA = STDAVVIKA ## Estimerer standardavvik basert på et utvalg, inkludert tall, tekst og logiske verdier -STDEVP = STDAVP ## Beregner standardavvik basert på hele populasjonen -STDEVPA = STDAVVIKPA ## Beregner standardavvik basert på hele populasjonen, inkludert tall, tekst og logiske verdier -STEYX = STANDARDFEIL ## Returnerer standardfeilen for den predikerte y-verdien for hver x i regresjonen -TDIST = TFORDELING ## Returnerer en Student t-fordeling -TINV = TINV ## Returnerer den inverse Student t-fordelingen -TREND = TREND ## Returnerer verdier langs en lineær trend -TRIMMEAN = TRIMMET.GJENNOMSNITT ## Returnerer den interne middelverdien til et datasett -TTEST = TTEST ## Returnerer sannsynligheten assosiert med en Student t-test -VAR = VARIANS ## Estimerer varians basert på et utvalg -VARA = VARIANSA ## Estimerer varians basert på et utvalg, inkludert tall, tekst og logiske verdier -VARP = VARIANSP ## Beregner varians basert på hele populasjonen -VARPA = VARIANSPA ## Beregner varians basert på hele populasjonen, inkludert tall, tekst og logiske verdier -WEIBULL = WEIBULL.FORDELING ## Returnerer Weibull-fordelingen -ZTEST = ZTEST ## Returnerer den ensidige sannsynlighetsverdien for en z-test - - -## -## Text functions Tekstfunksjoner -## -ASC = STIGENDE ## Endrer fullbreddes (dobbeltbyte) engelske bokstaver eller katakana i en tegnstreng, til halvbreddes (enkeltbyte) tegn -BAHTTEXT = BAHTTEKST ## Konverterer et tall til tekst, og bruker valutaformatet ß (baht) -CHAR = TEGNKODE ## Returnerer tegnet som svarer til kodenummeret -CLEAN = RENSK ## Fjerner alle tegn som ikke kan skrives ut, fra teksten -CODE = KODE ## Returnerer en numerisk kode for det første tegnet i en tekststreng -CONCATENATE = KJEDE.SAMMEN ## Slår sammen flere tekstelementer til ett tekstelement -DOLLAR = VALUTA ## Konverterer et tall til tekst, og bruker valutaformatet $ (dollar) -EXACT = EKSAKT ## Kontrollerer om to tekstverdier er like -FIND = FINN ## Finner en tekstverdi inne i en annen (skiller mellom store og små bokstaver) -FINDB = FINNB ## Finner en tekstverdi inne i en annen (skiller mellom store og små bokstaver) -FIXED = FASTSATT ## Formaterer et tall som tekst med et bestemt antall desimaler -JIS = JIS ## Endrer halvbreddes (enkeltbyte) engelske bokstaver eller katakana i en tegnstreng, til fullbreddes (dobbeltbyte) tegn -LEFT = VENSTRE ## Returnerer tegnene lengst til venstre i en tekstverdi -LEFTB = VENSTREB ## Returnerer tegnene lengst til venstre i en tekstverdi -LEN = LENGDE ## Returnerer antall tegn i en tekststreng -LENB = LENGDEB ## Returnerer antall tegn i en tekststreng -LOWER = SMÅ ## Konverterer tekst til små bokstaver -MID = DELTEKST ## Returnerer et angitt antall tegn fra en tekststreng, og begynner fra posisjonen du angir -MIDB = DELTEKSTB ## Returnerer et angitt antall tegn fra en tekststreng, og begynner fra posisjonen du angir -PHONETIC = FURIGANA ## Trekker ut fonetiske tegn (furigana) fra en tekststreng -PROPER = STOR.FORBOKSTAV ## Gir den første bokstaven i hvert ord i en tekstverdi stor forbokstav -REPLACE = ERSTATT ## Erstatter tegn i en tekst -REPLACEB = ERSTATTB ## Erstatter tegn i en tekst -REPT = GJENTA ## Gjentar tekst et gitt antall ganger -RIGHT = HØYRE ## Returnerer tegnene lengst til høyre i en tekstverdi -RIGHTB = HØYREB ## Returnerer tegnene lengst til høyre i en tekstverdi -SEARCH = SØK ## Finner en tekstverdi inne i en annen (skiller ikke mellom store og små bokstaver) -SEARCHB = SØKB ## Finner en tekstverdi inne i en annen (skiller ikke mellom store og små bokstaver) -SUBSTITUTE = BYTT.UT ## Bytter ut gammel tekst med ny tekst i en tekststreng -T = T ## Konverterer argumentene til tekst -TEXT = TEKST ## Formaterer et tall og konverterer det til tekst -TRIM = TRIMME ## Fjerner mellomrom fra tekst -UPPER = STORE ## Konverterer tekst til store bokstaver -VALUE = VERDI ## Konverterer et tekstargument til et tall diff --git a/Utils/PHPExcel/locale/pl/config b/Utils/PHPExcel/locale/pl/config deleted file mode 100644 index 453942f..0000000 --- a/Utils/PHPExcel/locale/pl/config +++ /dev/null @@ -1,49 +0,0 @@ -## -## PHPExcel -## - -## Copyright (c) 2006 - 2013 PHPExcel -## -## This library is free software; you can redistribute it and/or -## modify it under the terms of the GNU Lesser General Public -## License as published by the Free Software Foundation; either -## version 2.1 of the License, or (at your option) any later version. -## -## This library is distributed in the hope that it will be useful, -## but WITHOUT ANY WARRANTY; without even the implied warranty of -## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -## Lesser General Public License for more details. -## -## You should have received a copy of the GNU Lesser General Public -## License along with this library; if not, write to the Free Software -## Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA -## -## @category PHPExcel -## @package PHPExcel_Settings -## @copyright Copyright (c) 2006 - 2013 PHPExcel (http://www.codeplex.com/PHPExcel) -## @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL -## @version ##VERSION##, ##DATE## -## -## - - -ArgumentSeparator = ; - - -## -## (For future use) -## -currencySymbol = zł - - -## -## Excel Error Codes (For future use) - -## -NULL = #ZERO! -DIV0 = #DZIEL/0! -VALUE = #ARG! -REF = #ADR! -NAME = #NAZWA? -NUM = #LICZBA! -NA = #N/D! diff --git a/Utils/PHPExcel/locale/pl/functions b/Utils/PHPExcel/locale/pl/functions deleted file mode 100644 index 0274551..0000000 --- a/Utils/PHPExcel/locale/pl/functions +++ /dev/null @@ -1,439 +0,0 @@ -## -## PHPExcel -## - -## Copyright (c) 2006 - 2013 PHPExcel -## -## This library is free software; you can redistribute it and/or -## modify it under the terms of the GNU Lesser General Public -## License as published by the Free Software Foundation; either -## version 2.1 of the License, or (at your option) any later version. -## -## This library is distributed in the hope that it will be useful, -## but WITHOUT ANY WARRANTY; without even the implied warranty of -## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -## Lesser General Public License for more details. -## -## You should have received a copy of the GNU Lesser General Public -## License along with this library; if not, write to the Free Software -## Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA -## -## @category PHPExcel -## @package PHPExcel_Calculation -## @copyright Copyright (c) 2006 - 2013 PHPExcel (http://www.codeplex.com/PHPExcel) -## @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL -## @version ##VERSION##, ##DATE## -## -## Data in this file derived from http://www.piuha.fi/excel-function-name-translation/ -## -## - - -## -## Add-in and Automation functions Funkcje dodatków i automatyzacji -## -GETPIVOTDATA = WEŹDANETABELI ## Zwraca dane przechowywane w raporcie tabeli przestawnej. - - -## -## Cube functions Funkcje modułów -## -CUBEKPIMEMBER = ELEMENT.KPI.MODUŁU ## Zwraca nazwę, właściwość i miarę kluczowego wskaźnika wydajności (KPI) oraz wyświetla nazwę i właściwość w komórce. Wskaźnik KPI jest miarą ilościową, taką jak miesięczny zysk brutto lub kwartalna fluktuacja pracowników, używaną do monitorowania wydajności organizacji. -CUBEMEMBER = ELEMENT.MODUŁU ## Zwraca element lub krotkę z hierarchii modułu. Służy do sprawdzania, czy element lub krotka istnieje w module. -CUBEMEMBERPROPERTY = WŁAŚCIWOŚĆ.ELEMENTU.MODUŁU ## Zwraca wartość właściwości elementu w module. Służy do sprawdzania, czy nazwa elementu istnieje w module, i zwracania określonej właściwości dla tego elementu. -CUBERANKEDMEMBER = USZEREGOWANY.ELEMENT.MODUŁU ## Zwraca n-ty (albo uszeregowany) element zestawu. Służy do zwracania elementu lub elementów zestawu, na przykład najlepszego sprzedawcy lub 10 najlepszych studentów. -CUBESET = ZESTAW.MODUŁÓW ## Definiuje obliczony zestaw elementów lub krotek, wysyłając wyrażenie zestawu do serwera modułu, który tworzy zestaw i zwraca go do programu Microsoft Office Excel. -CUBESETCOUNT = LICZNIK.MODUŁÓW.ZESTAWU ## Zwraca liczbę elementów zestawu. -CUBEVALUE = WARTOŚĆ.MODUŁU ## Zwraca zagregowaną wartość z modułu. - - -## -## Database functions Funkcje baz danych -## -DAVERAGE = BD.ŚREDNIA ## Zwraca wartość średniej wybranych wpisów bazy danych. -DCOUNT = BD.ILE.REKORDÓW ## Zlicza komórki zawierające liczby w bazie danych. -DCOUNTA = BD.ILE.REKORDÓW.A ## Zlicza niepuste komórki w bazie danych. -DGET = BD.POLE ## Wyodrębnia z bazy danych jeden rekord spełniający określone kryteria. -DMAX = BD.MAX ## Zwraca wartość maksymalną z wybranych wpisów bazy danych. -DMIN = BD.MIN ## Zwraca wartość minimalną z wybranych wpisów bazy danych. -DPRODUCT = BD.ILOCZYN ## Mnoży wartości w konkretnym, spełniającym kryteria polu rekordów bazy danych. -DSTDEV = BD.ODCH.STANDARD ## Szacuje odchylenie standardowe na podstawie próbki z wybranych wpisów bazy danych. -DSTDEVP = BD.ODCH.STANDARD.POPUL ## Oblicza odchylenie standardowe na podstawie całej populacji wybranych wpisów bazy danych. -DSUM = BD.SUMA ## Dodaje liczby w kolumnie pól rekordów bazy danych, które spełniają kryteria. -DVAR = BD.WARIANCJA ## Szacuje wariancję na podstawie próbki z wybranych wpisów bazy danych. -DVARP = BD.WARIANCJA.POPUL ## Oblicza wariancję na podstawie całej populacji wybranych wpisów bazy danych. - - -## -## Date and time functions Funkcje dat, godzin i czasu -## -DATE = DATA ## Zwraca liczbę seryjną dla wybranej daty. -DATEVALUE = DATA.WARTOŚĆ ## Konwertuje datę w formie tekstu na liczbę seryjną. -DAY = DZIEŃ ## Konwertuje liczbę seryjną na dzień miesiąca. -DAYS360 = DNI.360 ## Oblicza liczbę dni między dwiema datami na podstawie roku 360-dniowego. -EDATE = UPŁDNI ## Zwraca liczbę seryjną daty jako wskazaną liczbę miesięcy przed określoną datą początkową lub po niej. -EOMONTH = EOMONTH ## Zwraca liczbę seryjną ostatniego dnia miesiąca przed określoną liczbą miesięcy lub po niej. -HOUR = GODZINA ## Konwertuje liczbę seryjną na godzinę. -MINUTE = MINUTA ## Konwertuje liczbę seryjną na minutę. -MONTH = MIESIĄC ## Konwertuje liczbę seryjną na miesiąc. -NETWORKDAYS = NETWORKDAYS ## Zwraca liczbę pełnych dni roboczych między dwiema datami. -NOW = TERAZ ## Zwraca liczbę seryjną bieżącej daty i godziny. -SECOND = SEKUNDA ## Konwertuje liczbę seryjną na sekundę. -TIME = CZAS ## Zwraca liczbę seryjną określonego czasu. -TIMEVALUE = CZAS.WARTOŚĆ ## Konwertuje czas w formie tekstu na liczbę seryjną. -TODAY = DZIŚ ## Zwraca liczbę seryjną dla daty bieżącej. -WEEKDAY = DZIEŃ.TYG ## Konwertuje liczbę seryjną na dzień tygodnia. -WEEKNUM = WEEKNUM ## Konwertuje liczbę seryjną na liczbę reprezentującą numer tygodnia w roku. -WORKDAY = WORKDAY ## Zwraca liczbę seryjną dla daty przed określoną liczbą dni roboczych lub po niej. -YEAR = ROK ## Konwertuje liczbę seryjną na rok. -YEARFRAC = YEARFRAC ## Zwraca część roku reprezentowaną przez pełną liczbę dni między datą początkową a datą końcową. - - -## -## Engineering functions Funkcje inżynierskie -## -BESSELI = BESSELI ## Zwraca wartość zmodyfikowanej funkcji Bessela In(x). -BESSELJ = BESSELJ ## Zwraca wartość funkcji Bessela Jn(x). -BESSELK = BESSELK ## Zwraca wartość zmodyfikowanej funkcji Bessela Kn(x). -BESSELY = BESSELY ## Zwraca wartość funkcji Bessela Yn(x). -BIN2DEC = BIN2DEC ## Konwertuje liczbę w postaci dwójkowej na liczbę w postaci dziesiętnej. -BIN2HEX = BIN2HEX ## Konwertuje liczbę w postaci dwójkowej na liczbę w postaci szesnastkowej. -BIN2OCT = BIN2OCT ## Konwertuje liczbę w postaci dwójkowej na liczbę w postaci ósemkowej. -COMPLEX = COMPLEX ## Konwertuje część rzeczywistą i urojoną na liczbę zespoloną. -CONVERT = CONVERT ## Konwertuje liczbę z jednego systemu miar na inny. -DEC2BIN = DEC2BIN ## Konwertuje liczbę w postaci dziesiętnej na postać dwójkową. -DEC2HEX = DEC2HEX ## Konwertuje liczbę w postaci dziesiętnej na liczbę w postaci szesnastkowej. -DEC2OCT = DEC2OCT ## Konwertuje liczbę w postaci dziesiętnej na liczbę w postaci ósemkowej. -DELTA = DELTA ## Sprawdza, czy dwie wartości są równe. -ERF = ERF ## Zwraca wartość funkcji błędu. -ERFC = ERFC ## Zwraca wartość komplementarnej funkcji błędu. -GESTEP = GESTEP ## Sprawdza, czy liczba jest większa niż wartość progowa. -HEX2BIN = HEX2BIN ## Konwertuje liczbę w postaci szesnastkowej na liczbę w postaci dwójkowej. -HEX2DEC = HEX2DEC ## Konwertuje liczbę w postaci szesnastkowej na liczbę w postaci dziesiętnej. -HEX2OCT = HEX2OCT ## Konwertuje liczbę w postaci szesnastkowej na liczbę w postaci ósemkowej. -IMABS = IMABS ## Zwraca wartość bezwzględną (moduł) liczby zespolonej. -IMAGINARY = IMAGINARY ## Zwraca wartość części urojonej liczby zespolonej. -IMARGUMENT = IMARGUMENT ## Zwraca wartość argumentu liczby zespolonej, przy czym kąt wyrażony jest w radianach. -IMCONJUGATE = IMCONJUGATE ## Zwraca wartość liczby sprzężonej danej liczby zespolonej. -IMCOS = IMCOS ## Zwraca wartość cosinusa liczby zespolonej. -IMDIV = IMDIV ## Zwraca wartość ilorazu dwóch liczb zespolonych. -IMEXP = IMEXP ## Zwraca postać wykładniczą liczby zespolonej. -IMLN = IMLN ## Zwraca wartość logarytmu naturalnego liczby zespolonej. -IMLOG10 = IMLOG10 ## Zwraca wartość logarytmu dziesiętnego liczby zespolonej. -IMLOG2 = IMLOG2 ## Zwraca wartość logarytmu liczby zespolonej przy podstawie 2. -IMPOWER = IMPOWER ## Zwraca wartość liczby zespolonej podniesionej do potęgi całkowitej. -IMPRODUCT = IMPRODUCT ## Zwraca wartość iloczynu liczb zespolonych. -IMREAL = IMREAL ## Zwraca wartość części rzeczywistej liczby zespolonej. -IMSIN = IMSIN ## Zwraca wartość sinusa liczby zespolonej. -IMSQRT = IMSQRT ## Zwraca wartość pierwiastka kwadratowego z liczby zespolonej. -IMSUB = IMSUB ## Zwraca wartość różnicy dwóch liczb zespolonych. -IMSUM = IMSUM ## Zwraca wartość sumy liczb zespolonych. -OCT2BIN = OCT2BIN ## Konwertuje liczbę w postaci ósemkowej na liczbę w postaci dwójkowej. -OCT2DEC = OCT2DEC ## Konwertuje liczbę w postaci ósemkowej na liczbę w postaci dziesiętnej. -OCT2HEX = OCT2HEX ## Konwertuje liczbę w postaci ósemkowej na liczbę w postaci szesnastkowej. - - -## -## Financial functions Funkcje finansowe -## -ACCRINT = ACCRINT ## Zwraca narosłe odsetki dla papieru wartościowego z oprocentowaniem okresowym. -ACCRINTM = ACCRINTM ## Zwraca narosłe odsetki dla papieru wartościowego z oprocentowaniem w terminie wykupu. -AMORDEGRC = AMORDEGRC ## Zwraca amortyzację dla każdego okresu rozliczeniowego z wykorzystaniem współczynnika amortyzacji. -AMORLINC = AMORLINC ## Zwraca amortyzację dla każdego okresu rozliczeniowego. -COUPDAYBS = COUPDAYBS ## Zwraca liczbę dni od początku okresu dywidendy do dnia rozliczeniowego. -COUPDAYS = COUPDAYS ## Zwraca liczbę dni w okresie dywidendy, z uwzględnieniem dnia rozliczeniowego. -COUPDAYSNC = COUPDAYSNC ## Zwraca liczbę dni od dnia rozliczeniowego do daty następnego dnia dywidendy. -COUPNCD = COUPNCD ## Zwraca dzień następnej dywidendy po dniu rozliczeniowym. -COUPNUM = COUPNUM ## Zwraca liczbę dywidend płatnych między dniem rozliczeniowym a dniem wykupu. -COUPPCD = COUPPCD ## Zwraca dzień poprzedniej dywidendy przed dniem rozliczeniowym. -CUMIPMT = CUMIPMT ## Zwraca wartość procentu składanego płatnego między dwoma okresami. -CUMPRINC = CUMPRINC ## Zwraca wartość kapitału skumulowanego spłaty pożyczki między dwoma okresami. -DB = DB ## Zwraca amortyzację środka trwałego w danym okresie metodą degresywną z zastosowaniem stałej bazowej. -DDB = DDB ## Zwraca amortyzację środka trwałego za podany okres metodą degresywną z zastosowaniem podwójnej bazowej lub metodą określoną przez użytkownika. -DISC = DISC ## Zwraca wartość stopy dyskontowej papieru wartościowego. -DOLLARDE = DOLLARDE ## Konwertuje cenę w postaci ułamkowej na cenę wyrażoną w postaci dziesiętnej. -DOLLARFR = DOLLARFR ## Konwertuje cenę wyrażoną w postaci dziesiętnej na cenę wyrażoną w postaci ułamkowej. -DURATION = DURATION ## Zwraca wartość rocznego przychodu z papieru wartościowego o okresowych wypłatach oprocentowania. -EFFECT = EFFECT ## Zwraca wartość efektywnej rocznej stopy procentowej. -FV = FV ## Zwraca przyszłą wartość lokaty. -FVSCHEDULE = FVSCHEDULE ## Zwraca przyszłą wartość kapitału początkowego wraz z szeregiem procentów składanych. -INTRATE = INTRATE ## Zwraca wartość stopy procentowej papieru wartościowego całkowicie ulokowanego. -IPMT = IPMT ## Zwraca wysokość spłaty oprocentowania lokaty za dany okres. -IRR = IRR ## Zwraca wartość wewnętrznej stopy zwrotu dla serii przepływów gotówkowych. -ISPMT = ISPMT ## Oblicza wysokość spłaty oprocentowania za dany okres lokaty. -MDURATION = MDURATION ## Zwraca wartość zmodyfikowanego okresu Macauleya dla papieru wartościowego o założonej wartości nominalnej 100 zł. -MIRR = MIRR ## Zwraca wartość wewnętrznej stopy zwrotu dla przypadku, gdy dodatnie i ujemne przepływy gotówkowe mają różne stopy. -NOMINAL = NOMINAL ## Zwraca wysokość nominalnej rocznej stopy procentowej. -NPER = NPER ## Zwraca liczbę okresów dla lokaty. -NPV = NPV ## Zwraca wartość bieżącą netto lokaty na podstawie szeregu okresowych przepływów gotówkowych i stopy dyskontowej. -ODDFPRICE = ODDFPRICE ## Zwraca cenę za 100 zł wartości nominalnej papieru wartościowego z nietypowym pierwszym okresem. -ODDFYIELD = ODDFYIELD ## Zwraca rentowność papieru wartościowego z nietypowym pierwszym okresem. -ODDLPRICE = ODDLPRICE ## Zwraca cenę za 100 zł wartości nominalnej papieru wartościowego z nietypowym ostatnim okresem. -ODDLYIELD = ODDLYIELD ## Zwraca rentowność papieru wartościowego z nietypowym ostatnim okresem. -PMT = PMT ## Zwraca wartość okresowej płatności raty rocznej. -PPMT = PPMT ## Zwraca wysokość spłaty kapitału w przypadku lokaty dla danego okresu. -PRICE = PRICE ## Zwraca cenę za 100 zł wartości nominalnej papieru wartościowego z oprocentowaniem okresowym. -PRICEDISC = PRICEDISC ## Zwraca cenę za 100 zł wartości nominalnej papieru wartościowego zdyskontowanego. -PRICEMAT = PRICEMAT ## Zwraca cenę za 100 zł wartości nominalnej papieru wartościowego z oprocentowaniem w terminie wykupu. -PV = PV ## Zwraca wartość bieżącą lokaty. -RATE = RATE ## Zwraca wysokość stopy procentowej w okresie raty rocznej. -RECEIVED = RECEIVED ## Zwraca wartość kapitału otrzymanego przy wykupie papieru wartościowego całkowicie ulokowanego. -SLN = SLN ## Zwraca amortyzację środka trwałego za jeden okres metodą liniową. -SYD = SYD ## Zwraca amortyzację środka trwałego za dany okres metodą sumy cyfr lat amortyzacji. -TBILLEQ = TBILLEQ ## Zwraca rentowność ekwiwalentu obligacji dla bonu skarbowego. -TBILLPRICE = TBILLPRICE ## Zwraca cenę za 100 zł wartości nominalnej bonu skarbowego. -TBILLYIELD = TBILLYIELD ## Zwraca rentowność bonu skarbowego. -VDB = VDB ## Oblicza amortyzację środka trwałego w danym okresie lub jego części metodą degresywną. -XIRR = XIRR ## Zwraca wartość wewnętrznej stopy zwrotu dla serii rozłożonych w czasie przepływów gotówkowych, niekoniecznie okresowych. -XNPV = XNPV ## Zwraca wartość bieżącą netto dla serii rozłożonych w czasie przepływów gotówkowych, niekoniecznie okresowych. -YIELD = YIELD ## Zwraca rentowność papieru wartościowego z oprocentowaniem okresowym. -YIELDDISC = YIELDDISC ## Zwraca roczną rentowność zdyskontowanego papieru wartościowego, na przykład bonu skarbowego. -YIELDMAT = YIELDMAT ## Zwraca roczną rentowność papieru wartościowego oprocentowanego przy wykupie. - - -## -## Information functions Funkcje informacyjne -## -CELL = KOMÓRKA ## Zwraca informacje o formacie, położeniu lub zawartości komórki. -ERROR.TYPE = NR.BŁĘDU ## Zwraca liczbę odpowiadającą typowi błędu. -INFO = INFO ## Zwraca informację o aktualnym środowisku pracy. -ISBLANK = CZY.PUSTA ## Zwraca wartość PRAWDA, jeśli wartość jest pusta. -ISERR = CZY.BŁ ## Zwraca wartość PRAWDA, jeśli wartość jest dowolną wartością błędu, z wyjątkiem #N/D!. -ISERROR = CZY.BŁĄD ## Zwraca wartość PRAWDA, jeśli wartość jest dowolną wartością błędu. -ISEVEN = ISEVEN ## Zwraca wartość PRAWDA, jeśli liczba jest parzysta. -ISLOGICAL = CZY.LOGICZNA ## Zwraca wartość PRAWDA, jeśli wartość jest wartością logiczną. -ISNA = CZY.BRAK ## Zwraca wartość PRAWDA, jeśli wartość jest wartością błędu #N/D!. -ISNONTEXT = CZY.NIE.TEKST ## Zwraca wartość PRAWDA, jeśli wartość nie jest tekstem. -ISNUMBER = CZY.LICZBA ## Zwraca wartość PRAWDA, jeśli wartość jest liczbą. -ISODD = ISODD ## Zwraca wartość PRAWDA, jeśli liczba jest nieparzysta. -ISREF = CZY.ADR ## Zwraca wartość PRAWDA, jeśli wartość jest odwołaniem. -ISTEXT = CZY.TEKST ## Zwraca wartość PRAWDA, jeśli wartość jest tekstem. -N = L ## Zwraca wartość przekonwertowaną na postać liczbową. -NA = BRAK ## Zwraca wartość błędu #N/D!. -TYPE = TYP ## Zwraca liczbę wskazującą typ danych wartości. - - -## -## Logical functions Funkcje logiczne -## -AND = ORAZ ## Zwraca wartość PRAWDA, jeśli wszystkie argumenty mają wartość PRAWDA. -FALSE = FAŁSZ ## Zwraca wartość logiczną FAŁSZ. -IF = JEŻELI ## Określa warunek logiczny do sprawdzenia. -IFERROR = JEŻELI.BŁĄD ## Zwraca określoną wartość, jeśli wynikiem obliczenia formuły jest błąd; w przeciwnym przypadku zwraca wynik formuły. -NOT = NIE ## Odwraca wartość logiczną argumentu. -OR = LUB ## Zwraca wartość PRAWDA, jeśli co najmniej jeden z argumentów ma wartość PRAWDA. -TRUE = PRAWDA ## Zwraca wartość logiczną PRAWDA. - - -## -## Lookup and reference functions Funkcje wyszukiwania i odwołań -## -ADDRESS = ADRES ## Zwraca odwołanie do jednej komórki w arkuszu jako wartość tekstową. -AREAS = OBSZARY ## Zwraca liczbę obszarów występujących w odwołaniu. -CHOOSE = WYBIERZ ## Wybiera wartość z listy wartości. -COLUMN = NR.KOLUMNY ## Zwraca numer kolumny z odwołania. -COLUMNS = LICZBA.KOLUMN ## Zwraca liczbę kolumn dla danego odwołania. -HLOOKUP = WYSZUKAJ.POZIOMO ## Przegląda górny wiersz tablicy i zwraca wartość wskazanej komórki. -HYPERLINK = HIPERŁĄCZE ## Tworzy skrót lub skok, który pozwala otwierać dokument przechowywany na serwerze sieciowym, w sieci intranet lub w Internecie. -INDEX = INDEKS ## Używa indeksu do wybierania wartości z odwołania lub tablicy. -INDIRECT = ADR.POŚR ## Zwraca odwołanie określone przez wartość tekstową. -LOOKUP = WYSZUKAJ ## Wyszukuje wartości w wektorze lub tablicy. -MATCH = PODAJ.POZYCJĘ ## Wyszukuje wartości w odwołaniu lub w tablicy. -OFFSET = PRZESUNIĘCIE ## Zwraca adres przesunięty od danego odwołania. -ROW = WIERSZ ## Zwraca numer wiersza odwołania. -ROWS = ILE.WIERSZY ## Zwraca liczbę wierszy dla danego odwołania. -RTD = RTD ## Pobiera dane w czasie rzeczywistym z programu obsługującego automatyzację COM (Automatyzacja: Sposób pracy z obiektami aplikacji pochodzącymi z innej aplikacji lub narzędzia projektowania. Nazywana wcześniej Automatyzacją OLE, Automatyzacja jest standardem przemysłowym i funkcją obiektowego modelu składników (COM, Component Object Model).). -TRANSPOSE = TRANSPONUJ ## Zwraca transponowaną tablicę. -VLOOKUP = WYSZUKAJ.PIONOWO ## Przeszukuje pierwszą kolumnę tablicy i przechodzi wzdłuż wiersza, aby zwrócić wartość komórki. - - -## -## Math and trigonometry functions Funkcje matematyczne i trygonometryczne -## -ABS = MODUŁ.LICZBY ## Zwraca wartość absolutną liczby. -ACOS = ACOS ## Zwraca arcus cosinus liczby. -ACOSH = ACOSH ## Zwraca arcus cosinus hiperboliczny liczby. -ASIN = ASIN ## Zwraca arcus sinus liczby. -ASINH = ASINH ## Zwraca arcus sinus hiperboliczny liczby. -ATAN = ATAN ## Zwraca arcus tangens liczby. -ATAN2 = ATAN2 ## Zwraca arcus tangens liczby na podstawie współrzędnych x i y. -ATANH = ATANH ## Zwraca arcus tangens hiperboliczny liczby. -CEILING = ZAOKR.W.GÓRĘ ## Zaokrągla liczbę do najbliższej liczby całkowitej lub do najbliższej wielokrotności dokładności. -COMBIN = KOMBINACJE ## Zwraca liczbę kombinacji dla danej liczby obiektów. -COS = COS ## Zwraca cosinus liczby. -COSH = COSH ## Zwraca cosinus hiperboliczny liczby. -DEGREES = STOPNIE ## Konwertuje radiany na stopnie. -EVEN = ZAOKR.DO.PARZ ## Zaokrągla liczbę w górę do najbliższej liczby parzystej. -EXP = EXP ## Zwraca wartość liczby e podniesionej do potęgi określonej przez podaną liczbę. -FACT = SILNIA ## Zwraca silnię liczby. -FACTDOUBLE = FACTDOUBLE ## Zwraca podwójną silnię liczby. -FLOOR = ZAOKR.W.DÓŁ ## Zaokrągla liczbę w dół, w kierunku zera. -GCD = GCD ## Zwraca największy wspólny dzielnik. -INT = ZAOKR.DO.CAŁK ## Zaokrągla liczbę w dół do najbliższej liczby całkowitej. -LCM = LCM ## Zwraca najmniejszą wspólną wielokrotność. -LN = LN ## Zwraca logarytm naturalny podanej liczby. -LOG = LOG ## Zwraca logarytm danej liczby przy zadanej podstawie. -LOG10 = LOG10 ## Zwraca logarytm dziesiętny liczby. -MDETERM = WYZNACZNIK.MACIERZY ## Zwraca wyznacznik macierzy tablicy. -MINVERSE = MACIERZ.ODW ## Zwraca odwrotność macierzy tablicy. -MMULT = MACIERZ.ILOCZYN ## Zwraca iloczyn macierzy dwóch tablic. -MOD = MOD ## Zwraca resztę z dzielenia. -MROUND = MROUND ## Zwraca liczbę zaokrągloną do żądanej wielokrotności. -MULTINOMIAL = MULTINOMIAL ## Zwraca wielomian dla zbioru liczb. -ODD = ZAOKR.DO.NPARZ ## Zaokrągla liczbę w górę do najbliższej liczby nieparzystej. -PI = PI ## Zwraca wartość liczby Pi. -POWER = POTĘGA ## Zwraca liczbę podniesioną do potęgi. -PRODUCT = ILOCZYN ## Mnoży argumenty. -QUOTIENT = QUOTIENT ## Zwraca iloraz (całkowity). -RADIANS = RADIANY ## Konwertuje stopnie na radiany. -RAND = LOS ## Zwraca liczbę pseudolosową z zakresu od 0 do 1. -RANDBETWEEN = RANDBETWEEN ## Zwraca liczbę pseudolosową z zakresu określonego przez podane argumenty. -ROMAN = RZYMSKIE ## Konwertuje liczbę arabską na rzymską jako tekst. -ROUND = ZAOKR ## Zaokrągla liczbę do określonej liczby cyfr. -ROUNDDOWN = ZAOKR.DÓŁ ## Zaokrągla liczbę w dół, w kierunku zera. -ROUNDUP = ZAOKR.GÓRA ## Zaokrągla liczbę w górę, w kierunku od zera. -SERIESSUM = SERIESSUM ## Zwraca sumę szeregu potęgowego na podstawie wzoru. -SIGN = ZNAK.LICZBY ## Zwraca znak liczby. -SIN = SIN ## Zwraca sinus danego kąta. -SINH = SINH ## Zwraca sinus hiperboliczny liczby. -SQRT = PIERWIASTEK ## Zwraca dodatni pierwiastek kwadratowy. -SQRTPI = SQRTPI ## Zwraca pierwiastek kwadratowy iloczynu (liczba * Pi). -SUBTOTAL = SUMY.POŚREDNIE ## Zwraca sumę częściową listy lub bazy danych. -SUM = SUMA ## Dodaje argumenty. -SUMIF = SUMA.JEŻELI ## Dodaje komórki określone przez podane kryterium. -SUMIFS = SUMA.WARUNKÓW ## Dodaje komórki w zakresie, które spełniają wiele kryteriów. -SUMPRODUCT = SUMA.ILOCZYNÓW ## Zwraca sumę iloczynów odpowiednich elementów tablicy. -SUMSQ = SUMA.KWADRATÓW ## Zwraca sumę kwadratów argumentów. -SUMX2MY2 = SUMA.X2.M.Y2 ## Zwraca sumę różnic kwadratów odpowiednich wartości w dwóch tablicach. -SUMX2PY2 = SUMA.X2.P.Y2 ## Zwraca sumę sum kwadratów odpowiednich wartości w dwóch tablicach. -SUMXMY2 = SUMA.XMY.2 ## Zwraca sumę kwadratów różnic odpowiednich wartości w dwóch tablicach. -TAN = TAN ## Zwraca tangens liczby. -TANH = TANH ## Zwraca tangens hiperboliczny liczby. -TRUNC = LICZBA.CAŁK ## Przycina liczbę do wartości całkowitej. - - -## -## Statistical functions Funkcje statystyczne -## -AVEDEV = ODCH.ŚREDNIE ## Zwraca średnią wartość odchyleń absolutnych punktów danych od ich wartości średniej. -AVERAGE = ŚREDNIA ## Zwraca wartość średnią argumentów. -AVERAGEA = ŚREDNIA.A ## Zwraca wartość średnią argumentów, z uwzględnieniem liczb, tekstów i wartości logicznych. -AVERAGEIF = ŚREDNIA.JEŻELI ## Zwraca średnią (średnią arytmetyczną) wszystkich komórek w zakresie, które spełniają podane kryteria. -AVERAGEIFS = ŚREDNIA.WARUNKÓW ## Zwraca średnią (średnią arytmetyczną) wszystkich komórek, które spełniają jedno lub więcej kryteriów. -BETADIST = ROZKŁAD.BETA ## Zwraca skumulowaną funkcję gęstości prawdopodobieństwa beta. -BETAINV = ROZKŁAD.BETA.ODW ## Zwraca odwrotność skumulowanej funkcji gęstości prawdopodobieństwa beta. -BINOMDIST = ROZKŁAD.DWUM ## Zwraca pojedynczy składnik dwumianowego rozkładu prawdopodobieństwa. -CHIDIST = ROZKŁAD.CHI ## Zwraca wartość jednostronnego prawdopodobieństwa rozkładu chi-kwadrat. -CHIINV = ROZKŁAD.CHI.ODW ## Zwraca odwrotność wartości jednostronnego prawdopodobieństwa rozkładu chi-kwadrat. -CHITEST = TEST.CHI ## Zwraca test niezależności. -CONFIDENCE = UFNOŚĆ ## Zwraca interwał ufności dla średniej populacji. -CORREL = WSP.KORELACJI ## Zwraca współczynnik korelacji dwóch zbiorów danych. -COUNT = ILE.LICZB ## Zlicza liczby znajdujące się na liście argumentów. -COUNTA = ILE.NIEPUSTYCH ## Zlicza wartości znajdujące się na liście argumentów. -COUNTBLANK = LICZ.PUSTE ## Zwraca liczbę pustych komórek w pewnym zakresie. -COUNTIF = LICZ.JEŻELI ## Zlicza komórki wewnątrz zakresu, które spełniają podane kryteria. -COUNTIFS = LICZ.WARUNKI ## Zlicza komórki wewnątrz zakresu, które spełniają wiele kryteriów. -COVAR = KOWARIANCJA ## Zwraca kowariancję, czyli średnią wartość iloczynów odpowiednich odchyleń. -CRITBINOM = PRÓG.ROZKŁAD.DWUM ## Zwraca najmniejszą wartość, dla której skumulowany rozkład dwumianowy jest mniejszy niż wartość kryterium lub równy jej. -DEVSQ = ODCH.KWADRATOWE ## Zwraca sumę kwadratów odchyleń. -EXPONDIST = ROZKŁAD.EXP ## Zwraca rozkład wykładniczy. -FDIST = ROZKŁAD.F ## Zwraca rozkład prawdopodobieństwa F. -FINV = ROZKŁAD.F.ODW ## Zwraca odwrotność rozkładu prawdopodobieństwa F. -FISHER = ROZKŁAD.FISHER ## Zwraca transformację Fishera. -FISHERINV = ROZKŁAD.FISHER.ODW ## Zwraca odwrotność transformacji Fishera. -FORECAST = REGLINX ## Zwraca wartość trendu liniowego. -FREQUENCY = CZĘSTOŚĆ ## Zwraca rozkład częstotliwości jako tablicę pionową. -FTEST = TEST.F ## Zwraca wynik testu F. -GAMMADIST = ROZKŁAD.GAMMA ## Zwraca rozkład gamma. -GAMMAINV = ROZKŁAD.GAMMA.ODW ## Zwraca odwrotność skumulowanego rozkładu gamma. -GAMMALN = ROZKŁAD.LIN.GAMMA ## Zwraca logarytm naturalny funkcji gamma, Γ(x). -GEOMEAN = ŚREDNIA.GEOMETRYCZNA ## Zwraca średnią geometryczną. -GROWTH = REGEXPW ## Zwraca wartości trendu wykładniczego. -HARMEAN = ŚREDNIA.HARMONICZNA ## Zwraca średnią harmoniczną. -HYPGEOMDIST = ROZKŁAD.HIPERGEOM ## Zwraca rozkład hipergeometryczny. -INTERCEPT = ODCIĘTA ## Zwraca punkt przecięcia osi pionowej z linią regresji liniowej. -KURT = KURTOZA ## Zwraca kurtozę zbioru danych. -LARGE = MAX.K ## Zwraca k-tą największą wartość ze zbioru danych. -LINEST = REGLINP ## Zwraca parametry trendu liniowego. -LOGEST = REGEXPP ## Zwraca parametry trendu wykładniczego. -LOGINV = ROZKŁAD.LOG.ODW ## Zwraca odwrotność rozkładu logarytmu naturalnego. -LOGNORMDIST = ROZKŁAD.LOG ## Zwraca skumulowany rozkład logarytmu naturalnego. -MAX = MAX ## Zwraca maksymalną wartość listy argumentów. -MAXA = MAX.A ## Zwraca maksymalną wartość listy argumentów, z uwzględnieniem liczb, tekstów i wartości logicznych. -MEDIAN = MEDIANA ## Zwraca medianę podanych liczb. -MIN = MIN ## Zwraca minimalną wartość listy argumentów. -MINA = MIN.A ## Zwraca najmniejszą wartość listy argumentów, z uwzględnieniem liczb, tekstów i wartości logicznych. -MODE = WYST.NAJCZĘŚCIEJ ## Zwraca wartość najczęściej występującą w zbiorze danych. -NEGBINOMDIST = ROZKŁAD.DWUM.PRZEC ## Zwraca ujemny rozkład dwumianowy. -NORMDIST = ROZKŁAD.NORMALNY ## Zwraca rozkład normalny skumulowany. -NORMINV = ROZKŁAD.NORMALNY.ODW ## Zwraca odwrotność rozkładu normalnego skumulowanego. -NORMSDIST = ROZKŁAD.NORMALNY.S ## Zwraca standardowy rozkład normalny skumulowany. -NORMSINV = ROZKŁAD.NORMALNY.S.ODW ## Zwraca odwrotność standardowego rozkładu normalnego skumulowanego. -PEARSON = PEARSON ## Zwraca współczynnik korelacji momentu iloczynu Pearsona. -PERCENTILE = PERCENTYL ## Wyznacza k-ty percentyl wartości w zakresie. -PERCENTRANK = PROCENT.POZYCJA ## Zwraca procentową pozycję wartości w zbiorze danych. -PERMUT = PERMUTACJE ## Zwraca liczbę permutacji dla danej liczby obiektów. -POISSON = ROZKŁAD.POISSON ## Zwraca rozkład Poissona. -PROB = PRAWDPD ## Zwraca prawdopodobieństwo, że wartości w zakresie leżą pomiędzy dwiema granicami. -QUARTILE = KWARTYL ## Wyznacza kwartyl zbioru danych. -RANK = POZYCJA ## Zwraca pozycję liczby na liście liczb. -RSQ = R.KWADRAT ## Zwraca kwadrat współczynnika korelacji momentu iloczynu Pearsona. -SKEW = SKOŚNOŚĆ ## Zwraca skośność rozkładu. -SLOPE = NACHYLENIE ## Zwraca nachylenie linii regresji liniowej. -SMALL = MIN.K ## Zwraca k-tą najmniejszą wartość ze zbioru danych. -STANDARDIZE = NORMALIZUJ ## Zwraca wartość znormalizowaną. -STDEV = ODCH.STANDARDOWE ## Szacuje odchylenie standardowe na podstawie próbki. -STDEVA = ODCH.STANDARDOWE.A ## Szacuje odchylenie standardowe na podstawie próbki, z uwzględnieniem liczb, tekstów i wartości logicznych. -STDEVP = ODCH.STANDARD.POPUL ## Oblicza odchylenie standardowe na podstawie całej populacji. -STDEVPA = ODCH.STANDARD.POPUL.A ## Oblicza odchylenie standardowe na podstawie całej populacji, z uwzględnieniem liczb, teksów i wartości logicznych. -STEYX = REGBŁSTD ## Zwraca błąd standardowy przewidzianej wartości y dla każdej wartości x w regresji. -TDIST = ROZKŁAD.T ## Zwraca rozkład t-Studenta. -TINV = ROZKŁAD.T.ODW ## Zwraca odwrotność rozkładu t-Studenta. -TREND = REGLINW ## Zwraca wartości trendu liniowego. -TRIMMEAN = ŚREDNIA.WEWN ## Zwraca średnią wartość dla wnętrza zbioru danych. -TTEST = TEST.T ## Zwraca prawdopodobieństwo związane z testem t-Studenta. -VAR = WARIANCJA ## Szacuje wariancję na podstawie próbki. -VARA = WARIANCJA.A ## Szacuje wariancję na podstawie próbki, z uwzględnieniem liczb, tekstów i wartości logicznych. -VARP = WARIANCJA.POPUL ## Oblicza wariancję na podstawie całej populacji. -VARPA = WARIANCJA.POPUL.A ## Oblicza wariancję na podstawie całej populacji, z uwzględnieniem liczb, tekstów i wartości logicznych. -WEIBULL = ROZKŁAD.WEIBULL ## Zwraca rozkład Weibulla. -ZTEST = TEST.Z ## Zwraca wartość jednostronnego prawdopodobieństwa testu z. - - -## -## Text functions Funkcje tekstowe -## -ASC = ASC ## Zamienia litery angielskie lub katakana o pełnej szerokości (dwubajtowe) w ciągu znaków na znaki o szerokości połówkowej (jednobajtowe). -BAHTTEXT = BAHTTEXT ## Konwertuje liczbę na tekst, stosując format walutowy ß (baht). -CHAR = ZNAK ## Zwraca znak o podanym numerze kodu. -CLEAN = OCZYŚĆ ## Usuwa z tekstu wszystkie znaki, które nie mogą być drukowane. -CODE = KOD ## Zwraca kod numeryczny pierwszego znaku w ciągu tekstowym. -CONCATENATE = ZŁĄCZ.TEKSTY ## Łączy kilka oddzielnych tekstów w jeden tekst. -DOLLAR = KWOTA ## Konwertuje liczbę na tekst, stosując format walutowy $ (dolar). -EXACT = PORÓWNAJ ## Sprawdza identyczność dwóch wartości tekstowych. -FIND = ZNAJDŹ ## Znajduje jedną wartość tekstową wewnątrz innej (z uwzględnieniem wielkich i małych liter). -FINDB = ZNAJDŹB ## Znajduje jedną wartość tekstową wewnątrz innej (z uwzględnieniem wielkich i małych liter). -FIXED = ZAOKR.DO.TEKST ## Formatuje liczbę jako tekst przy stałej liczbie miejsc dziesiętnych. -JIS = JIS ## Zmienia litery angielskie lub katakana o szerokości połówkowej (jednobajtowe) w ciągu znaków na znaki o pełnej szerokości (dwubajtowe). -LEFT = LEWY ## Zwraca skrajne lewe znaki z wartości tekstowej. -LEFTB = LEWYB ## Zwraca skrajne lewe znaki z wartości tekstowej. -LEN = DŁ ## Zwraca liczbę znaków ciągu tekstowego. -LENB = DŁ.B ## Zwraca liczbę znaków ciągu tekstowego. -LOWER = LITERY.MAŁE ## Konwertuje wielkie litery tekstu na małe litery. -MID = FRAGMENT.TEKSTU ## Zwraca określoną liczbę znaków z ciągu tekstowego, zaczynając od zadanej pozycji. -MIDB = FRAGMENT.TEKSTU.B ## Zwraca określoną liczbę znaków z ciągu tekstowego, zaczynając od zadanej pozycji. -PHONETIC = PHONETIC ## Wybiera znaki fonetyczne (furigana) z ciągu tekstowego. -PROPER = Z.WIELKIEJ.LITERY ## Zastępuje pierwszą literę każdego wyrazu tekstu wielką literą. -REPLACE = ZASTĄP ## Zastępuje znaki w tekście. -REPLACEB = ZASTĄP.B ## Zastępuje znaki w tekście. -REPT = POWT ## Powiela tekst daną liczbę razy. -RIGHT = PRAWY ## Zwraca skrajne prawe znaki z wartości tekstowej. -RIGHTB = PRAWYB ## Zwraca skrajne prawe znaki z wartości tekstowej. -SEARCH = SZUKAJ.TEKST ## Wyszukuje jedną wartość tekstową wewnątrz innej (bez uwzględniania wielkości liter). -SEARCHB = SZUKAJ.TEKST.B ## Wyszukuje jedną wartość tekstową wewnątrz innej (bez uwzględniania wielkości liter). -SUBSTITUTE = PODSTAW ## Podstawia nowy tekst w miejsce poprzedniego tekstu w ciągu tekstowym. -T = T ## Konwertuje argumenty na tekst. -TEXT = TEKST ## Formatuje liczbę i konwertuje ją na tekst. -TRIM = USUŃ.ZBĘDNE.ODSTĘPY ## Usuwa spacje z tekstu. -UPPER = LITERY.WIELKIE ## Konwertuje znaki tekstu na wielkie litery. -VALUE = WARTOŚĆ ## Konwertuje argument tekstowy na liczbę. diff --git a/Utils/PHPExcel/locale/pt/br/config b/Utils/PHPExcel/locale/pt/br/config deleted file mode 100644 index 32aee46..0000000 --- a/Utils/PHPExcel/locale/pt/br/config +++ /dev/null @@ -1,49 +0,0 @@ -## -## PHPExcel -## - -## Copyright (c) 2006 - 2013 PHPExcel -## -## This library is free software; you can redistribute it and/or -## modify it under the terms of the GNU Lesser General Public -## License as published by the Free Software Foundation; either -## version 2.1 of the License, or (at your option) any later version. -## -## This library is distributed in the hope that it will be useful, -## but WITHOUT ANY WARRANTY; without even the implied warranty of -## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -## Lesser General Public License for more details. -## -## You should have received a copy of the GNU Lesser General Public -## License along with this library; if not, write to the Free Software -## Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA -## -## @category PHPExcel -## @package PHPExcel_Settings -## @copyright Copyright (c) 2006 - 2013 PHPExcel (http://www.codeplex.com/PHPExcel) -## @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL -## @version ##VERSION##, ##DATE## -## -## - - -ArgumentSeparator = ; - - -## -## (For future use) -## -currencySymbol = R$ - - -## -## Excel Error Codes (For future use) - -## -NULL = #NULO! -DIV0 = #DIV/0! -VALUE = #VALOR! -REF = #REF! -NAME = #NOME? -NUM = #NÚM! -NA = #N/D diff --git a/Utils/PHPExcel/locale/pt/br/functions b/Utils/PHPExcel/locale/pt/br/functions deleted file mode 100644 index a062a7f..0000000 --- a/Utils/PHPExcel/locale/pt/br/functions +++ /dev/null @@ -1,408 +0,0 @@ -## -## Add-in and Automation functions Funções Suplemento e Automação -## -GETPIVOTDATA = INFODADOSTABELADINÂMICA ## Retorna os dados armazenados em um relatório de tabela dinâmica - - -## -## Cube functions Funções de Cubo -## -CUBEKPIMEMBER = MEMBROKPICUBO ## Retorna o nome de um KPI (indicador de desempenho-chave), uma propriedade e uma medida e exibe o nome e a propriedade na célula. Um KPI é uma medida quantificável, como o lucro bruto mensal ou a rotatividade trimestral dos funcionários, usada para monitorar o desempenho de uma organização. -CUBEMEMBER = MEMBROCUBO ## Retorna um membro ou tupla em uma hierarquia de cubo. Use para validar se o membro ou tupla existe no cubo. -CUBEMEMBERPROPERTY = PROPRIEDADEMEMBROCUBO ## Retorna o valor da propriedade de um membro no cubo. Usada para validar a existência do nome do membro no cubo e para retornar a propriedade especificada para esse membro. -CUBERANKEDMEMBER = MEMBROCLASSIFICADOCUBO ## Retorna o enésimo membro, ou o membro ordenado, em um conjunto. Use para retornar um ou mais elementos em um conjunto, assim como o melhor vendedor ou os dez melhores alunos. -CUBESET = CONJUNTOCUBO ## Define um conjunto calculado de membros ou tuplas enviando uma expressão do conjunto para o cubo no servidor, que cria o conjunto e o retorna para o Microsoft Office Excel. -CUBESETCOUNT = CONTAGEMCONJUNTOCUBO ## Retorna o número de itens em um conjunto. -CUBEVALUE = VALORCUBO ## Retorna um valor agregado de um cubo. - - -## -## Database functions Funções de banco de dados -## -DAVERAGE = BDMÉDIA ## Retorna a média das entradas selecionadas de um banco de dados -DCOUNT = BDCONTAR ## Conta as células que contêm números em um banco de dados -DCOUNTA = BDCONTARA ## Conta células não vazias em um banco de dados -DGET = BDEXTRAIR ## Extrai de um banco de dados um único registro que corresponde a um critério específico -DMAX = BDMÁX ## Retorna o valor máximo de entradas selecionadas de um banco de dados -DMIN = BDMÍN ## Retorna o valor mínimo de entradas selecionadas de um banco de dados -DPRODUCT = BDMULTIPL ## Multiplica os valores em um campo específico de registros que correspondem ao critério em um banco de dados -DSTDEV = BDEST ## Estima o desvio padrão com base em uma amostra de entradas selecionadas de um banco de dados -DSTDEVP = BDDESVPA ## Calcula o desvio padrão com base na população inteira de entradas selecionadas de um banco de dados -DSUM = BDSOMA ## Adiciona os números à coluna de campos de registros do banco de dados que correspondem ao critério -DVAR = BDVAREST ## Estima a variância com base em uma amostra de entradas selecionadas de um banco de dados -DVARP = BDVARP ## Calcula a variância com base na população inteira de entradas selecionadas de um banco de dados - - -## -## Date and time functions Funções de data e hora -## -DATE = DATA ## Retorna o número de série de uma data específica -DATEVALUE = DATA.VALOR ## Converte uma data na forma de texto para um número de série -DAY = DIA ## Converte um número de série em um dia do mês -DAYS360 = DIAS360 ## Calcula o número de dias entre duas datas com base em um ano de 360 dias -EDATE = DATAM ## Retorna o número de série da data que é o número indicado de meses antes ou depois da data inicial -EOMONTH = FIMMÊS ## Retorna o número de série do último dia do mês antes ou depois de um número especificado de meses -HOUR = HORA ## Converte um número de série em uma hora -MINUTE = MINUTO ## Converte um número de série em um minuto -MONTH = MÊS ## Converte um número de série em um mês -NETWORKDAYS = DIATRABALHOTOTAL ## Retorna o número de dias úteis inteiros entre duas datas -NOW = AGORA ## Retorna o número de série seqüencial da data e hora atuais -SECOND = SEGUNDO ## Converte um número de série em um segundo -TIME = HORA ## Retorna o número de série de uma hora específica -TIMEVALUE = VALOR.TEMPO ## Converte um horário na forma de texto para um número de série -TODAY = HOJE ## Retorna o número de série da data de hoje -WEEKDAY = DIA.DA.SEMANA ## Converte um número de série em um dia da semana -WEEKNUM = NÚMSEMANA ## Converte um número de série em um número que representa onde a semana cai numericamente em um ano -WORKDAY = DIATRABALHO ## Retorna o número de série da data antes ou depois de um número específico de dias úteis -YEAR = ANO ## Converte um número de série em um ano -YEARFRAC = FRAÇÃOANO ## Retorna a fração do ano que representa o número de dias entre data_inicial e data_final - - -## -## Engineering functions Funções de engenharia -## -BESSELI = BESSELI ## Retorna a função de Bessel In(x) modificada -BESSELJ = BESSELJ ## Retorna a função de Bessel Jn(x) -BESSELK = BESSELK ## Retorna a função de Bessel Kn(x) modificada -BESSELY = BESSELY ## Retorna a função de Bessel Yn(x) -BIN2DEC = BIN2DEC ## Converte um número binário em decimal -BIN2HEX = BIN2HEX ## Converte um número binário em hexadecimal -BIN2OCT = BIN2OCT ## Converte um número binário em octal -COMPLEX = COMPLEX ## Converte coeficientes reais e imaginários e um número complexo -CONVERT = CONVERTER ## Converte um número de um sistema de medida para outro -DEC2BIN = DECABIN ## Converte um número decimal em binário -DEC2HEX = DECAHEX ## Converte um número decimal em hexadecimal -DEC2OCT = DECAOCT ## Converte um número decimal em octal -DELTA = DELTA ## Testa se dois valores são iguais -ERF = FUNERRO ## Retorna a função de erro -ERFC = FUNERROCOMPL ## Retorna a função de erro complementar -GESTEP = DEGRAU ## Testa se um número é maior do que um valor limite -HEX2BIN = HEXABIN ## Converte um número hexadecimal em binário -HEX2DEC = HEXADEC ## Converte um número hexadecimal em decimal -HEX2OCT = HEXAOCT ## Converte um número hexadecimal em octal -IMABS = IMABS ## Retorna o valor absoluto (módulo) de um número complexo -IMAGINARY = IMAGINÁRIO ## Retorna o coeficiente imaginário de um número complexo -IMARGUMENT = IMARG ## Retorna o argumento teta, um ângulo expresso em radianos -IMCONJUGATE = IMCONJ ## Retorna o conjugado complexo de um número complexo -IMCOS = IMCOS ## Retorna o cosseno de um número complexo -IMDIV = IMDIV ## Retorna o quociente de dois números complexos -IMEXP = IMEXP ## Retorna o exponencial de um número complexo -IMLN = IMLN ## Retorna o logaritmo natural de um número complexo -IMLOG10 = IMLOG10 ## Retorna o logaritmo de base 10 de um número complexo -IMLOG2 = IMLOG2 ## Retorna o logaritmo de base 2 de um número complexo -IMPOWER = IMPOT ## Retorna um número complexo elevado a uma potência inteira -IMPRODUCT = IMPROD ## Retorna o produto de números complexos -IMREAL = IMREAL ## Retorna o coeficiente real de um número complexo -IMSIN = IMSENO ## Retorna o seno de um número complexo -IMSQRT = IMRAIZ ## Retorna a raiz quadrada de um número complexo -IMSUB = IMSUBTR ## Retorna a diferença entre dois números complexos -IMSUM = IMSOMA ## Retorna a soma de números complexos -OCT2BIN = OCTABIN ## Converte um número octal em binário -OCT2DEC = OCTADEC ## Converte um número octal em decimal -OCT2HEX = OCTAHEX ## Converte um número octal em hexadecimal - - -## -## Financial functions Funções financeiras -## -ACCRINT = JUROSACUM ## Retorna a taxa de juros acumulados de um título que paga uma taxa periódica de juros -ACCRINTM = JUROSACUMV ## Retorna os juros acumulados de um título que paga juros no vencimento -AMORDEGRC = AMORDEGRC ## Retorna a depreciação para cada período contábil usando o coeficiente de depreciação -AMORLINC = AMORLINC ## Retorna a depreciação para cada período contábil -COUPDAYBS = CUPDIASINLIQ ## Retorna o número de dias do início do período de cupom até a data de liquidação -COUPDAYS = CUPDIAS ## Retorna o número de dias no período de cupom que contém a data de quitação -COUPDAYSNC = CUPDIASPRÓX ## Retorna o número de dias da data de liquidação até a data do próximo cupom -COUPNCD = CUPDATAPRÓX ## Retorna a próxima data de cupom após a data de quitação -COUPNUM = CUPNÚM ## Retorna o número de cupons pagáveis entre as datas de quitação e vencimento -COUPPCD = CUPDATAANT ## Retorna a data de cupom anterior à data de quitação -CUMIPMT = PGTOJURACUM ## Retorna os juros acumulados pagos entre dois períodos -CUMPRINC = PGTOCAPACUM ## Retorna o capital acumulado pago sobre um empréstimo entre dois períodos -DB = BD ## Retorna a depreciação de um ativo para um período especificado, usando o método de balanço de declínio fixo -DDB = BDD ## Retorna a depreciação de um ativo com relação a um período especificado usando o método de saldos decrescentes duplos ou qualquer outro método especificado por você -DISC = DESC ## Retorna a taxa de desconto de um título -DOLLARDE = MOEDADEC ## Converte um preço em formato de moeda, na forma fracionária, em um preço na forma decimal -DOLLARFR = MOEDAFRA ## Converte um preço, apresentado na forma decimal, em um preço apresentado na forma fracionária -DURATION = DURAÇÃO ## Retorna a duração anual de um título com pagamentos de juros periódicos -EFFECT = EFETIVA ## Retorna a taxa de juros anual efetiva -FV = VF ## Retorna o valor futuro de um investimento -FVSCHEDULE = VFPLANO ## Retorna o valor futuro de um capital inicial após a aplicação de uma série de taxas de juros compostas -INTRATE = TAXAJUROS ## Retorna a taxa de juros de um título totalmente investido -IPMT = IPGTO ## Retorna o pagamento de juros para um investimento em um determinado período -IRR = TIR ## Retorna a taxa interna de retorno de uma série de fluxos de caixa -ISPMT = ÉPGTO ## Calcula os juros pagos durante um período específico de um investimento -MDURATION = MDURAÇÃO ## Retorna a duração de Macauley modificada para um título com um valor de paridade equivalente a R$ 100 -MIRR = MTIR ## Calcula a taxa interna de retorno em que fluxos de caixa positivos e negativos são financiados com diferentes taxas -NOMINAL = NOMINAL ## Retorna a taxa de juros nominal anual -NPER = NPER ## Retorna o número de períodos de um investimento -NPV = VPL ## Retorna o valor líquido atual de um investimento com base em uma série de fluxos de caixa periódicos e em uma taxa de desconto -ODDFPRICE = PREÇOPRIMINC ## Retorna o preço por R$ 100 de valor nominal de um título com um primeiro período indefinido -ODDFYIELD = LUCROPRIMINC ## Retorna o rendimento de um título com um primeiro período indefinido -ODDLPRICE = PREÇOÚLTINC ## Retorna o preço por R$ 100 de valor nominal de um título com um último período de cupom indefinido -ODDLYIELD = LUCROÚLTINC ## Retorna o rendimento de um título com um último período indefinido -PMT = PGTO ## Retorna o pagamento periódico de uma anuidade -PPMT = PPGTO ## Retorna o pagamento de capital para determinado período de investimento -PRICE = PREÇO ## Retorna a preço por R$ 100,00 de valor nominal de um título que paga juros periódicos -PRICEDISC = PREÇODESC ## Retorna o preço por R$ 100,00 de valor nominal de um título descontado -PRICEMAT = PREÇOVENC ## Retorna o preço por R$ 100,00 de valor nominal de um título que paga juros no vencimento -PV = VP ## Retorna o valor presente de um investimento -RATE = TAXA ## Retorna a taxa de juros por período de uma anuidade -RECEIVED = RECEBER ## Retorna a quantia recebida no vencimento de um título totalmente investido -SLN = DPD ## Retorna a depreciação em linha reta de um ativo durante um período -SYD = SDA ## Retorna a depreciação dos dígitos da soma dos anos de um ativo para um período especificado -TBILLEQ = OTN ## Retorna o rendimento de um título equivalente a uma obrigação do Tesouro -TBILLPRICE = OTNVALOR ## Retorna o preço por R$ 100,00 de valor nominal de uma obrigação do Tesouro -TBILLYIELD = OTNLUCRO ## Retorna o rendimento de uma obrigação do Tesouro -VDB = BDV ## Retorna a depreciação de um ativo para um período especificado ou parcial usando um método de balanço declinante -XIRR = XTIR ## Fornece a taxa interna de retorno para um programa de fluxos de caixa que não é necessariamente periódico -XNPV = XVPL ## Retorna o valor presente líquido de um programa de fluxos de caixa que não é necessariamente periódico -YIELD = LUCRO ## Retorna o lucro de um título que paga juros periódicos -YIELDDISC = LUCRODESC ## Retorna o rendimento anual de um título descontado. Por exemplo, uma obrigação do Tesouro -YIELDMAT = LUCROVENC ## Retorna o lucro anual de um título que paga juros no vencimento - - -## -## Information functions Funções de informação -## -CELL = CÉL ## Retorna informações sobre formatação, localização ou conteúdo de uma célula -ERROR.TYPE = TIPO.ERRO ## Retorna um número correspondente a um tipo de erro -INFO = INFORMAÇÃO ## Retorna informações sobre o ambiente operacional atual -ISBLANK = ÉCÉL.VAZIA ## Retorna VERDADEIRO se o valor for vazio -ISERR = ÉERRO ## Retorna VERDADEIRO se o valor for um valor de erro diferente de #N/D -ISERROR = ÉERROS ## Retorna VERDADEIRO se o valor for um valor de erro -ISEVEN = ÉPAR ## Retorna VERDADEIRO se o número for par -ISLOGICAL = ÉLÓGICO ## Retorna VERDADEIRO se o valor for um valor lógico -ISNA = É.NÃO.DISP ## Retorna VERDADEIRO se o valor for o valor de erro #N/D -ISNONTEXT = É.NÃO.TEXTO ## Retorna VERDADEIRO se o valor for diferente de texto -ISNUMBER = ÉNÚM ## Retorna VERDADEIRO se o valor for um número -ISODD = ÉIMPAR ## Retorna VERDADEIRO se o número for ímpar -ISREF = ÉREF ## Retorna VERDADEIRO se o valor for uma referência -ISTEXT = ÉTEXTO ## Retorna VERDADEIRO se o valor for texto -N = N ## Retorna um valor convertido em um número -NA = NÃO.DISP ## Retorna o valor de erro #N/D -TYPE = TIPO ## Retorna um número indicando o tipo de dados de um valor - - -## -## Logical functions Funções lógicas -## -AND = E ## Retorna VERDADEIRO se todos os seus argumentos forem VERDADEIROS -FALSE = FALSO ## Retorna o valor lógico FALSO -IF = SE ## Especifica um teste lógico a ser executado -IFERROR = SEERRO ## Retornará um valor que você especifica se uma fórmula for avaliada para um erro; do contrário, retornará o resultado da fórmula -NOT = NÃO ## Inverte o valor lógico do argumento -OR = OU ## Retorna VERDADEIRO se um dos argumentos for VERDADEIRO -TRUE = VERDADEIRO ## Retorna o valor lógico VERDADEIRO - - -## -## Lookup and reference functions Funções de pesquisa e referência -## -ADDRESS = ENDEREÇO ## Retorna uma referência como texto para uma única célula em uma planilha -AREAS = ÁREAS ## Retorna o número de áreas em uma referência -CHOOSE = ESCOLHER ## Escolhe um valor a partir de uma lista de valores -COLUMN = COL ## Retorna o número da coluna de uma referência -COLUMNS = COLS ## Retorna o número de colunas em uma referência -HLOOKUP = PROCH ## Procura na linha superior de uma matriz e retorna o valor da célula especificada -HYPERLINK = HYPERLINK ## Cria um atalho ou salto que abre um documento armazenado em um servidor de rede, uma intranet ou na Internet -INDEX = ÍNDICE ## Usa um índice para escolher um valor de uma referência ou matriz -INDIRECT = INDIRETO ## Retorna uma referência indicada por um valor de texto -LOOKUP = PROC ## Procura valores em um vetor ou em uma matriz -MATCH = CORRESP ## Procura valores em uma referência ou em uma matriz -OFFSET = DESLOC ## Retorna um deslocamento de referência com base em uma determinada referência -ROW = LIN ## Retorna o número da linha de uma referência -ROWS = LINS ## Retorna o número de linhas em uma referência -RTD = RTD ## Recupera dados em tempo real de um programa que ofereça suporte a automação COM (automação: uma forma de trabalhar com objetos de um aplicativo a partir de outro aplicativo ou ferramenta de desenvolvimento. Chamada inicialmente de automação OLE, a automação é um padrão industrial e um recurso do modelo de objeto componente (COM).) -TRANSPOSE = TRANSPOR ## Retorna a transposição de uma matriz -VLOOKUP = PROCV ## Procura na primeira coluna de uma matriz e move ao longo da linha para retornar o valor de uma célula - - -## -## Math and trigonometry functions Funções matemáticas e trigonométricas -## -ABS = ABS ## Retorna o valor absoluto de um número -ACOS = ACOS ## Retorna o arco cosseno de um número -ACOSH = ACOSH ## Retorna o cosseno hiperbólico inverso de um número -ASIN = ASEN ## Retorna o arco seno de um número -ASINH = ASENH ## Retorna o seno hiperbólico inverso de um número -ATAN = ATAN ## Retorna o arco tangente de um número -ATAN2 = ATAN2 ## Retorna o arco tangente das coordenadas x e y especificadas -ATANH = ATANH ## Retorna a tangente hiperbólica inversa de um número -CEILING = TETO ## Arredonda um número para o inteiro mais próximo ou para o múltiplo mais próximo de significância -COMBIN = COMBIN ## Retorna o número de combinações de um determinado número de objetos -COS = COS ## Retorna o cosseno de um número -COSH = COSH ## Retorna o cosseno hiperbólico de um número -DEGREES = GRAUS ## Converte radianos em graus -EVEN = PAR ## Arredonda um número para cima até o inteiro par mais próximo -EXP = EXP ## Retorna e elevado à potência de um número especificado -FACT = FATORIAL ## Retorna o fatorial de um número -FACTDOUBLE = FATDUPLO ## Retorna o fatorial duplo de um número -FLOOR = ARREDMULTB ## Arredonda um número para baixo até zero -GCD = MDC ## Retorna o máximo divisor comum -INT = INT ## Arredonda um número para baixo até o número inteiro mais próximo -LCM = MMC ## Retorna o mínimo múltiplo comum -LN = LN ## Retorna o logaritmo natural de um número -LOG = LOG ## Retorna o logaritmo de um número de uma base especificada -LOG10 = LOG10 ## Retorna o logaritmo de base 10 de um número -MDETERM = MATRIZ.DETERM ## Retorna o determinante de uma matriz de uma variável do tipo matriz -MINVERSE = MATRIZ.INVERSO ## Retorna a matriz inversa de uma matriz -MMULT = MATRIZ.MULT ## Retorna o produto de duas matrizes -MOD = RESTO ## Retorna o resto da divisão -MROUND = MARRED ## Retorna um número arredondado ao múltiplo desejado -MULTINOMIAL = MULTINOMIAL ## Retorna o multinomial de um conjunto de números -ODD = ÍMPAR ## Arredonda um número para cima até o inteiro ímpar mais próximo -PI = PI ## Retorna o valor de Pi -POWER = POTÊNCIA ## Fornece o resultado de um número elevado a uma potência -PRODUCT = MULT ## Multiplica seus argumentos -QUOTIENT = QUOCIENTE ## Retorna a parte inteira de uma divisão -RADIANS = RADIANOS ## Converte graus em radianos -RAND = ALEATÓRIO ## Retorna um número aleatório entre 0 e 1 -RANDBETWEEN = ALEATÓRIOENTRE ## Retorna um número aleatório entre os números especificados -ROMAN = ROMANO ## Converte um algarismo arábico em romano, como texto -ROUND = ARRED ## Arredonda um número até uma quantidade especificada de dígitos -ROUNDDOWN = ARREDONDAR.PARA.BAIXO ## Arredonda um número para baixo até zero -ROUNDUP = ARREDONDAR.PARA.CIMA ## Arredonda um número para cima, afastando-o de zero -SERIESSUM = SOMASEQÜÊNCIA ## Retorna a soma de uma série polinomial baseada na fórmula -SIGN = SINAL ## Retorna o sinal de um número -SIN = SEN ## Retorna o seno de um ângulo dado -SINH = SENH ## Retorna o seno hiperbólico de um número -SQRT = RAIZ ## Retorna uma raiz quadrada positiva -SQRTPI = RAIZPI ## Retorna a raiz quadrada de (núm* pi) -SUBTOTAL = SUBTOTAL ## Retorna um subtotal em uma lista ou em um banco de dados -SUM = SOMA ## Soma seus argumentos -SUMIF = SOMASE ## Adiciona as células especificadas por um determinado critério -SUMIFS = SOMASE ## Adiciona as células em um intervalo que atende a vários critérios -SUMPRODUCT = SOMARPRODUTO ## Retorna a soma dos produtos de componentes correspondentes de matrizes -SUMSQ = SOMAQUAD ## Retorna a soma dos quadrados dos argumentos -SUMX2MY2 = SOMAX2DY2 ## Retorna a soma da diferença dos quadrados dos valores correspondentes em duas matrizes -SUMX2PY2 = SOMAX2SY2 ## Retorna a soma da soma dos quadrados dos valores correspondentes em duas matrizes -SUMXMY2 = SOMAXMY2 ## Retorna a soma dos quadrados das diferenças dos valores correspondentes em duas matrizes -TAN = TAN ## Retorna a tangente de um número -TANH = TANH ## Retorna a tangente hiperbólica de um número -TRUNC = TRUNCAR ## Trunca um número para um inteiro - - -## -## Statistical functions Funções estatísticas -## -AVEDEV = DESV.MÉDIO ## Retorna a média aritmética dos desvios médios dos pontos de dados a partir de sua média -AVERAGE = MÉDIA ## Retorna a média dos argumentos -AVERAGEA = MÉDIAA ## Retorna a média dos argumentos, inclusive números, texto e valores lógicos -AVERAGEIF = MÉDIASE ## Retorna a média (média aritmética) de todas as células em um intervalo que atendem a um determinado critério -AVERAGEIFS = MÉDIASES ## Retorna a média (média aritmética) de todas as células que atendem a múltiplos critérios. -BETADIST = DISTBETA ## Retorna a função de distribuição cumulativa beta -BETAINV = BETA.ACUM.INV ## Retorna o inverso da função de distribuição cumulativa para uma distribuição beta especificada -BINOMDIST = DISTRBINOM ## Retorna a probabilidade de distribuição binomial do termo individual -CHIDIST = DIST.QUI ## Retorna a probabilidade unicaudal da distribuição qui-quadrada -CHIINV = INV.QUI ## Retorna o inverso da probabilidade uni-caudal da distribuição qui-quadrada -CHITEST = TESTE.QUI ## Retorna o teste para independência -CONFIDENCE = INT.CONFIANÇA ## Retorna o intervalo de confiança para uma média da população -CORREL = CORREL ## Retorna o coeficiente de correlação entre dois conjuntos de dados -COUNT = CONT.NÚM ## Calcula quantos números há na lista de argumentos -COUNTA = CONT.VALORES ## Calcula quantos valores há na lista de argumentos -COUNTBLANK = CONTAR.VAZIO ## Conta o número de células vazias no intervalo especificado -COUNTIF = CONT.SE ## Calcula o número de células não vazias em um intervalo que corresponde a determinados critérios -COUNTIFS = CONT.SES ## Conta o número de células dentro de um intervalo que atende a múltiplos critérios -COVAR = COVAR ## Retorna a covariância, a média dos produtos dos desvios pares -CRITBINOM = CRIT.BINOM ## Retorna o menor valor para o qual a distribuição binomial cumulativa é menor ou igual ao valor padrão -DEVSQ = DESVQ ## Retorna a soma dos quadrados dos desvios -EXPONDIST = DISTEXPON ## Retorna a distribuição exponencial -FDIST = DISTF ## Retorna a distribuição de probabilidade F -FINV = INVF ## Retorna o inverso da distribuição de probabilidades F -FISHER = FISHER ## Retorna a transformação Fisher -FISHERINV = FISHERINV ## Retorna o inverso da transformação Fisher -FORECAST = PREVISÃO ## Retorna um valor ao longo de uma linha reta -FREQUENCY = FREQÜÊNCIA ## Retorna uma distribuição de freqüência como uma matriz vertical -FTEST = TESTEF ## Retorna o resultado de um teste F -GAMMADIST = DISTGAMA ## Retorna a distribuição gama -GAMMAINV = INVGAMA ## Retorna o inverso da distribuição cumulativa gama -GAMMALN = LNGAMA ## Retorna o logaritmo natural da função gama, G(x) -GEOMEAN = MÉDIA.GEOMÉTRICA ## Retorna a média geométrica -GROWTH = CRESCIMENTO ## Retorna valores ao longo de uma tendência exponencial -HARMEAN = MÉDIA.HARMÔNICA ## Retorna a média harmônica -HYPGEOMDIST = DIST.HIPERGEOM ## Retorna a distribuição hipergeométrica -INTERCEPT = INTERCEPÇÃO ## Retorna a intercepção da linha de regressão linear -KURT = CURT ## Retorna a curtose de um conjunto de dados -LARGE = MAIOR ## Retorna o maior valor k-ésimo de um conjunto de dados -LINEST = PROJ.LIN ## Retorna os parâmetros de uma tendência linear -LOGEST = PROJ.LOG ## Retorna os parâmetros de uma tendência exponencial -LOGINV = INVLOG ## Retorna o inverso da distribuição lognormal -LOGNORMDIST = DIST.LOGNORMAL ## Retorna a distribuição lognormal cumulativa -MAX = MÁXIMO ## Retorna o valor máximo em uma lista de argumentos -MAXA = MÁXIMOA ## Retorna o maior valor em uma lista de argumentos, inclusive números, texto e valores lógicos -MEDIAN = MED ## Retorna a mediana dos números indicados -MIN = MÍNIMO ## Retorna o valor mínimo em uma lista de argumentos -MINA = MÍNIMOA ## Retorna o menor valor em uma lista de argumentos, inclusive números, texto e valores lógicos -MODE = MODO ## Retorna o valor mais comum em um conjunto de dados -NEGBINOMDIST = DIST.BIN.NEG ## Retorna a distribuição binomial negativa -NORMDIST = DIST.NORM ## Retorna a distribuição cumulativa normal -NORMINV = INV.NORM ## Retorna o inverso da distribuição cumulativa normal -NORMSDIST = DIST.NORMP ## Retorna a distribuição cumulativa normal padrão -NORMSINV = INV.NORMP ## Retorna o inverso da distribuição cumulativa normal padrão -PEARSON = PEARSON ## Retorna o coeficiente de correlação do momento do produto Pearson -PERCENTILE = PERCENTIL ## Retorna o k-ésimo percentil de valores em um intervalo -PERCENTRANK = ORDEM.PORCENTUAL ## Retorna a ordem percentual de um valor em um conjunto de dados -PERMUT = PERMUT ## Retorna o número de permutações de um determinado número de objetos -POISSON = POISSON ## Retorna a distribuição Poisson -PROB = PROB ## Retorna a probabilidade de valores em um intervalo estarem entre dois limites -QUARTILE = QUARTIL ## Retorna o quartil do conjunto de dados -RANK = ORDEM ## Retorna a posição de um número em uma lista de números -RSQ = RQUAD ## Retorna o quadrado do coeficiente de correlação do momento do produto de Pearson -SKEW = DISTORÇÃO ## Retorna a distorção de uma distribuição -SLOPE = INCLINAÇÃO ## Retorna a inclinação da linha de regressão linear -SMALL = MENOR ## Retorna o menor valor k-ésimo do conjunto de dados -STANDARDIZE = PADRONIZAR ## Retorna um valor normalizado -STDEV = DESVPAD ## Estima o desvio padrão com base em uma amostra -STDEVA = DESVPADA ## Estima o desvio padrão com base em uma amostra, inclusive números, texto e valores lógicos -STDEVP = DESVPADP ## Calcula o desvio padrão com base na população total -STDEVPA = DESVPADPA ## Calcula o desvio padrão com base na população total, inclusive números, texto e valores lógicos -STEYX = EPADYX ## Retorna o erro padrão do valor-y previsto para cada x da regressão -TDIST = DISTT ## Retorna a distribuição t de Student -TINV = INVT ## Retorna o inverso da distribuição t de Student -TREND = TENDÊNCIA ## Retorna valores ao longo de uma tendência linear -TRIMMEAN = MÉDIA.INTERNA ## Retorna a média do interior de um conjunto de dados -TTEST = TESTET ## Retorna a probabilidade associada ao teste t de Student -VAR = VAR ## Estima a variância com base em uma amostra -VARA = VARA ## Estima a variância com base em uma amostra, inclusive números, texto e valores lógicos -VARP = VARP ## Calcula a variância com base na população inteira -VARPA = VARPA ## Calcula a variância com base na população total, inclusive números, texto e valores lógicos -WEIBULL = WEIBULL ## Retorna a distribuição Weibull -ZTEST = TESTEZ ## Retorna o valor de probabilidade uni-caudal de um teste-z - - -## -## Text functions Funções de texto -## -ASC = ASC ## Altera letras do inglês ou katakana de largura total (bytes duplos) dentro de uma seqüência de caracteres para caracteres de meia largura (byte único) -BAHTTEXT = BAHTTEXT ## Converte um número em um texto, usando o formato de moeda ß (baht) -CHAR = CARACT ## Retorna o caractere especificado pelo número de código -CLEAN = TIRAR ## Remove todos os caracteres do texto que não podem ser impressos -CODE = CÓDIGO ## Retorna um código numérico para o primeiro caractere de uma seqüência de caracteres de texto -CONCATENATE = CONCATENAR ## Agrupa vários itens de texto em um único item de texto -DOLLAR = MOEDA ## Converte um número em texto, usando o formato de moeda $ (dólar) -EXACT = EXATO ## Verifica se dois valores de texto são idênticos -FIND = PROCURAR ## Procura um valor de texto dentro de outro (diferencia maiúsculas de minúsculas) -FINDB = PROCURARB ## Procura um valor de texto dentro de outro (diferencia maiúsculas de minúsculas) -FIXED = DEF.NÚM.DEC ## Formata um número como texto com um número fixo de decimais -JIS = JIS ## Altera letras do inglês ou katakana de meia largura (byte único) dentro de uma seqüência de caracteres para caracteres de largura total (bytes duplos) -LEFT = ESQUERDA ## Retorna os caracteres mais à esquerda de um valor de texto -LEFTB = ESQUERDAB ## Retorna os caracteres mais à esquerda de um valor de texto -LEN = NÚM.CARACT ## Retorna o número de caracteres em uma seqüência de texto -LENB = NÚM.CARACTB ## Retorna o número de caracteres em uma seqüência de texto -LOWER = MINÚSCULA ## Converte texto para minúsculas -MID = EXT.TEXTO ## Retorna um número específico de caracteres de uma seqüência de texto começando na posição especificada -MIDB = EXT.TEXTOB ## Retorna um número específico de caracteres de uma seqüência de texto começando na posição especificada -PHONETIC = FONÉTICA ## Extrai os caracteres fonéticos (furigana) de uma seqüência de caracteres de texto -PROPER = PRI.MAIÚSCULA ## Coloca a primeira letra de cada palavra em maiúscula em um valor de texto -REPLACE = MUDAR ## Muda os caracteres dentro do texto -REPLACEB = MUDARB ## Muda os caracteres dentro do texto -REPT = REPT ## Repete o texto um determinado número de vezes -RIGHT = DIREITA ## Retorna os caracteres mais à direita de um valor de texto -RIGHTB = DIREITAB ## Retorna os caracteres mais à direita de um valor de texto -SEARCH = LOCALIZAR ## Localiza um valor de texto dentro de outro (não diferencia maiúsculas de minúsculas) -SEARCHB = LOCALIZARB ## Localiza um valor de texto dentro de outro (não diferencia maiúsculas de minúsculas) -SUBSTITUTE = SUBSTITUIR ## Substitui um novo texto por um texto antigo em uma seqüência de texto -T = T ## Converte os argumentos em texto -TEXT = TEXTO ## Formata um número e o converte em texto -TRIM = ARRUMAR ## Remove espaços do texto -UPPER = MAIÚSCULA ## Converte o texto em maiúsculas -VALUE = VALOR ## Converte um argumento de texto em um número diff --git a/Utils/PHPExcel/locale/pt/config b/Utils/PHPExcel/locale/pt/config deleted file mode 100644 index 9a001ee..0000000 --- a/Utils/PHPExcel/locale/pt/config +++ /dev/null @@ -1,49 +0,0 @@ -## -## PHPExcel -## - -## Copyright (c) 2006 - 2013 PHPExcel -## -## This library is free software; you can redistribute it and/or -## modify it under the terms of the GNU Lesser General Public -## License as published by the Free Software Foundation; either -## version 2.1 of the License, or (at your option) any later version. -## -## This library is distributed in the hope that it will be useful, -## but WITHOUT ANY WARRANTY; without even the implied warranty of -## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -## Lesser General Public License for more details. -## -## You should have received a copy of the GNU Lesser General Public -## License along with this library; if not, write to the Free Software -## Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA -## -## @category PHPExcel -## @package PHPExcel_Settings -## @copyright Copyright (c) 2006 - 2013 PHPExcel (http://www.codeplex.com/PHPExcel) -## @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL -## @version ##VERSION##, ##DATE## -## -## - - -ArgumentSeparator = ; - - -## -## (For future use) -## -currencySymbol = € - - -## -## Excel Error Codes (For future use) - -## -NULL = #NULO! -DIV0 = #DIV/0! -VALUE = #VALOR! -REF = #REF! -NAME = #NOME? -NUM = #NÚM! -NA = #N/D diff --git a/Utils/PHPExcel/locale/pt/functions b/Utils/PHPExcel/locale/pt/functions deleted file mode 100644 index ba4eb47..0000000 --- a/Utils/PHPExcel/locale/pt/functions +++ /dev/null @@ -1,408 +0,0 @@ -## -## Add-in and Automation functions Funções de Suplemento e Automatização -## -GETPIVOTDATA = OBTERDADOSDIN ## Devolve dados armazenados num relatório de Tabela Dinâmica - - -## -## Cube functions Funções de cubo -## -CUBEKPIMEMBER = MEMBROKPICUBO ## Devolve o nome, propriedade e medição de um KPI (key performance indicator) e apresenta o nome e a propriedade na célula. Um KPI é uma medida quantificável, como, por exemplo, o lucro mensal bruto ou a rotatividade trimestral de pessoal, utilizada para monitorizar o desempenho de uma organização. -CUBEMEMBER = MEMBROCUBO ## Devolve um membro ou cadeia de identificação numa hierarquia de cubo. Utilizada para validar a existência do membro ou cadeia de identificação no cubo. -CUBEMEMBERPROPERTY = PROPRIEDADEMEMBROCUBO ## Devolve o valor de uma propriedade de membro no cubo. Utilizada para validar a existência de um nome de membro no cubo e para devolver a propriedade especificada para esse membro. -CUBERANKEDMEMBER = MEMBROCLASSIFICADOCUBO ## Devolve o enésimo ou a classificação mais alta num conjunto. Utilizada para devolver um ou mais elementos num conjunto, tal como o melhor vendedor ou os 10 melhores alunos. -CUBESET = CONJUNTOCUBO ## Define um conjunto calculado de membros ou cadeias de identificação enviando uma expressão de conjunto para o cubo no servidor, que cria o conjunto e, em seguida, devolve o conjunto ao Microsoft Office Excel. -CUBESETCOUNT = CONTARCONJUNTOCUBO ## Devolve o número de itens num conjunto. -CUBEVALUE = VALORCUBO ## Devolve um valor agregado do cubo. - - -## -## Database functions Funções de base de dados -## -DAVERAGE = BDMÉDIA ## Devolve a média das entradas da base de dados seleccionadas -DCOUNT = BDCONTAR ## Conta as células que contêm números numa base de dados -DCOUNTA = BDCONTAR.VAL ## Conta as células que não estejam em branco numa base de dados -DGET = BDOBTER ## Extrai de uma base de dados um único registo que corresponde aos critérios especificados -DMAX = BDMÁX ## Devolve o valor máximo das entradas da base de dados seleccionadas -DMIN = BDMÍN ## Devolve o valor mínimo das entradas da base de dados seleccionadas -DPRODUCT = BDMULTIPL ## Multiplica os valores de um determinado campo de registos que correspondem aos critérios numa base de dados -DSTDEV = BDDESVPAD ## Calcula o desvio-padrão com base numa amostra de entradas da base de dados seleccionadas -DSTDEVP = BDDESVPADP ## Calcula o desvio-padrão com base na população total das entradas da base de dados seleccionadas -DSUM = BDSOMA ## Adiciona os números na coluna de campo dos registos de base de dados que correspondem aos critérios -DVAR = BDVAR ## Calcula a variância com base numa amostra das entradas de base de dados seleccionadas -DVARP = BDVARP ## Calcula a variância com base na população total das entradas de base de dados seleccionadas - - -## -## Date and time functions Funções de data e hora -## -DATE = DATA ## Devolve o número de série de uma determinada data -DATEVALUE = DATA.VALOR ## Converte uma data em forma de texto num número de série -DAY = DIA ## Converte um número de série num dia do mês -DAYS360 = DIAS360 ## Calcula o número de dias entre duas datas com base num ano com 360 dias -EDATE = DATAM ## Devolve um número de série de data que corresponde ao número de meses indicado antes ou depois da data de início -EOMONTH = FIMMÊS ## Devolve o número de série do último dia do mês antes ou depois de um número de meses especificado -HOUR = HORA ## Converte um número de série numa hora -MINUTE = MINUTO ## Converte um número de série num minuto -MONTH = MÊS ## Converte um número de série num mês -NETWORKDAYS = DIATRABALHOTOTAL ## Devolve o número total de dias úteis entre duas datas -NOW = AGORA ## Devolve o número de série da data e hora actuais -SECOND = SEGUNDO ## Converte um número de série num segundo -TIME = TEMPO ## Devolve o número de série de um determinado tempo -TIMEVALUE = VALOR.TEMPO ## Converte um tempo em forma de texto num número de série -TODAY = HOJE ## Devolve o número de série da data actual -WEEKDAY = DIA.SEMANA ## Converte um número de série num dia da semana -WEEKNUM = NÚMSEMANA ## Converte um número de série num número que representa o número da semana num determinado ano -WORKDAY = DIA.TRABALHO ## Devolve o número de série da data antes ou depois de um número de dias úteis especificado -YEAR = ANO ## Converte um número de série num ano -YEARFRAC = FRACÇÃOANO ## Devolve a fracção de ano que representa o número de dias inteiros entre a data_de_início e a data_de_fim - - -## -## Engineering functions Funções de engenharia -## -BESSELI = BESSELI ## Devolve a função de Bessel modificada In(x) -BESSELJ = BESSELJ ## Devolve a função de Bessel Jn(x) -BESSELK = BESSELK ## Devolve a função de Bessel modificada Kn(x) -BESSELY = BESSELY ## Devolve a função de Bessel Yn(x) -BIN2DEC = BINADEC ## Converte um número binário em decimal -BIN2HEX = BINAHEX ## Converte um número binário em hexadecimal -BIN2OCT = BINAOCT ## Converte um número binário em octal -COMPLEX = COMPLEXO ## Converte coeficientes reais e imaginários num número complexo -CONVERT = CONVERTER ## Converte um número de um sistema de medida noutro -DEC2BIN = DECABIN ## Converte um número decimal em binário -DEC2HEX = DECAHEX ## Converte um número decimal em hexadecimal -DEC2OCT = DECAOCT ## Converte um número decimal em octal -DELTA = DELTA ## Testa se dois valores são iguais -ERF = FUNCERRO ## Devolve a função de erro -ERFC = FUNCERROCOMPL ## Devolve a função de erro complementar -GESTEP = DEGRAU ## Testa se um número é maior do que um valor limite -HEX2BIN = HEXABIN ## Converte um número hexadecimal em binário -HEX2DEC = HEXADEC ## Converte um número hexadecimal em decimal -HEX2OCT = HEXAOCT ## Converte um número hexadecimal em octal -IMABS = IMABS ## Devolve o valor absoluto (módulo) de um número complexo -IMAGINARY = IMAGINÁRIO ## Devolve o coeficiente imaginário de um número complexo -IMARGUMENT = IMARG ## Devolve o argumento Teta, um ângulo expresso em radianos -IMCONJUGATE = IMCONJ ## Devolve o conjugado complexo de um número complexo -IMCOS = IMCOS ## Devolve o co-seno de um número complexo -IMDIV = IMDIV ## Devolve o quociente de dois números complexos -IMEXP = IMEXP ## Devolve o exponencial de um número complexo -IMLN = IMLN ## Devolve o logaritmo natural de um número complexo -IMLOG10 = IMLOG10 ## Devolve o logaritmo de base 10 de um número complexo -IMLOG2 = IMLOG2 ## Devolve o logaritmo de base 2 de um número complexo -IMPOWER = IMPOT ## Devolve um número complexo elevado a uma potência inteira -IMPRODUCT = IMPROD ## Devolve o produto de números complexos -IMREAL = IMREAL ## Devolve o coeficiente real de um número complexo -IMSIN = IMSENO ## Devolve o seno de um número complexo -IMSQRT = IMRAIZ ## Devolve a raiz quadrada de um número complexo -IMSUB = IMSUBTR ## Devolve a diferença entre dois números complexos -IMSUM = IMSOMA ## Devolve a soma de números complexos -OCT2BIN = OCTABIN ## Converte um número octal em binário -OCT2DEC = OCTADEC ## Converte um número octal em decimal -OCT2HEX = OCTAHEX ## Converte um número octal em hexadecimal - - -## -## Financial functions Funções financeiras -## -ACCRINT = JUROSACUM ## Devolve os juros acumulados de um título que paga juros periódicos -ACCRINTM = JUROSACUMV ## Devolve os juros acumulados de um título que paga juros no vencimento -AMORDEGRC = AMORDEGRC ## Devolve a depreciação correspondente a cada período contabilístico utilizando um coeficiente de depreciação -AMORLINC = AMORLINC ## Devolve a depreciação correspondente a cada período contabilístico -COUPDAYBS = CUPDIASINLIQ ## Devolve o número de dias entre o início do período do cupão e a data de regularização -COUPDAYS = CUPDIAS ## Devolve o número de dias no período do cupão que contém a data de regularização -COUPDAYSNC = CUPDIASPRÓX ## Devolve o número de dias entre a data de regularização e a data do cupão seguinte -COUPNCD = CUPDATAPRÓX ## Devolve a data do cupão seguinte após a data de regularização -COUPNUM = CUPNÚM ## Devolve o número de cupões a serem pagos entre a data de regularização e a data de vencimento -COUPPCD = CUPDATAANT ## Devolve a data do cupão anterior antes da data de regularização -CUMIPMT = PGTOJURACUM ## Devolve os juros cumulativos pagos entre dois períodos -CUMPRINC = PGTOCAPACUM ## Devolve o capital cumulativo pago a título de empréstimo entre dois períodos -DB = BD ## Devolve a depreciação de um activo relativo a um período especificado utilizando o método das quotas degressivas fixas -DDB = BDD ## Devolve a depreciação de um activo relativo a um período especificado utilizando o método das quotas degressivas duplas ou qualquer outro método especificado -DISC = DESC ## Devolve a taxa de desconto de um título -DOLLARDE = MOEDADEC ## Converte um preço em unidade monetária, expresso como uma fracção, num preço em unidade monetária, expresso como um número decimal -DOLLARFR = MOEDAFRA ## Converte um preço em unidade monetária, expresso como um número decimal, num preço em unidade monetária, expresso como uma fracção -DURATION = DURAÇÃO ## Devolve a duração anual de um título com pagamentos de juros periódicos -EFFECT = EFECTIVA ## Devolve a taxa de juros anual efectiva -FV = VF ## Devolve o valor futuro de um investimento -FVSCHEDULE = VFPLANO ## Devolve o valor futuro de um capital inicial após a aplicação de uma série de taxas de juro compostas -INTRATE = TAXAJUROS ## Devolve a taxa de juros de um título investido na totalidade -IPMT = IPGTO ## Devolve o pagamento dos juros de um investimento durante um determinado período -IRR = TIR ## Devolve a taxa de rentabilidade interna para uma série de fluxos monetários -ISPMT = É.PGTO ## Calcula os juros pagos durante um período específico de um investimento -MDURATION = MDURAÇÃO ## Devolve a duração modificada de Macauley de um título com um valor de paridade equivalente a € 100 -MIRR = MTIR ## Devolve a taxa interna de rentabilidade em que os fluxos monetários positivos e negativos são financiados com taxas diferentes -NOMINAL = NOMINAL ## Devolve a taxa de juros nominal anual -NPER = NPER ## Devolve o número de períodos de um investimento -NPV = VAL ## Devolve o valor actual líquido de um investimento com base numa série de fluxos monetários periódicos e numa taxa de desconto -ODDFPRICE = PREÇOPRIMINC ## Devolve o preço por € 100 do valor nominal de um título com um período inicial incompleto -ODDFYIELD = LUCROPRIMINC ## Devolve o lucro de um título com um período inicial incompleto -ODDLPRICE = PREÇOÚLTINC ## Devolve o preço por € 100 do valor nominal de um título com um período final incompleto -ODDLYIELD = LUCROÚLTINC ## Devolve o lucro de um título com um período final incompleto -PMT = PGTO ## Devolve o pagamento periódico de uma anuidade -PPMT = PPGTO ## Devolve o pagamento sobre o capital de um investimento num determinado período -PRICE = PREÇO ## Devolve o preço por € 100 do valor nominal de um título que paga juros periódicos -PRICEDISC = PREÇODESC ## Devolve o preço por € 100 do valor nominal de um título descontado -PRICEMAT = PREÇOVENC ## Devolve o preço por € 100 do valor nominal de um título que paga juros no vencimento -PV = VA ## Devolve o valor actual de um investimento -RATE = TAXA ## Devolve a taxa de juros por período de uma anuidade -RECEIVED = RECEBER ## Devolve o montante recebido no vencimento de um título investido na totalidade -SLN = AMORT ## Devolve uma depreciação linear de um activo durante um período -SYD = AMORTD ## Devolve a depreciação por algarismos da soma dos anos de um activo durante um período especificado -TBILLEQ = OTN ## Devolve o lucro de um título equivalente a uma Obrigação do Tesouro -TBILLPRICE = OTNVALOR ## Devolve o preço por € 100 de valor nominal de uma Obrigação do Tesouro -TBILLYIELD = OTNLUCRO ## Devolve o lucro de uma Obrigação do Tesouro -VDB = BDV ## Devolve a depreciação de um activo relativo a um período específico ou parcial utilizando um método de quotas degressivas -XIRR = XTIR ## Devolve a taxa interna de rentabilidade de um plano de fluxos monetários que não seja necessariamente periódica -XNPV = XVAL ## Devolve o valor actual líquido de um plano de fluxos monetários que não seja necessariamente periódico -YIELD = LUCRO ## Devolve o lucro de um título que paga juros periódicos -YIELDDISC = LUCRODESC ## Devolve o lucro anual de um título emitido abaixo do valor nominal, por exemplo, uma Obrigação do Tesouro -YIELDMAT = LUCROVENC ## Devolve o lucro anual de um título que paga juros na data de vencimento - - -## -## Information functions Funções de informação -## -CELL = CÉL ## Devolve informações sobre a formatação, localização ou conteúdo de uma célula -ERROR.TYPE = TIPO.ERRO ## Devolve um número correspondente a um tipo de erro -INFO = INFORMAÇÃO ## Devolve informações sobre o ambiente de funcionamento actual -ISBLANK = É.CÉL.VAZIA ## Devolve VERDADEIRO se o valor estiver em branco -ISERR = É.ERROS ## Devolve VERDADEIRO se o valor for um valor de erro diferente de #N/D -ISERROR = É.ERRO ## Devolve VERDADEIRO se o valor for um valor de erro -ISEVEN = ÉPAR ## Devolve VERDADEIRO se o número for par -ISLOGICAL = É.LÓGICO ## Devolve VERDADEIRO se o valor for lógico -ISNA = É.NÃO.DISP ## Devolve VERDADEIRO se o valor for o valor de erro #N/D -ISNONTEXT = É.NÃO.TEXTO ## Devolve VERDADEIRO se o valor não for texto -ISNUMBER = É.NÚM ## Devolve VERDADEIRO se o valor for um número -ISODD = ÉÍMPAR ## Devolve VERDADEIRO se o número for ímpar -ISREF = É.REF ## Devolve VERDADEIRO se o valor for uma referência -ISTEXT = É.TEXTO ## Devolve VERDADEIRO se o valor for texto -N = N ## Devolve um valor convertido num número -NA = NÃO.DISP ## Devolve o valor de erro #N/D -TYPE = TIPO ## Devolve um número que indica o tipo de dados de um valor - - -## -## Logical functions Funções lógicas -## -AND = E ## Devolve VERDADEIRO se todos os respectivos argumentos corresponderem a VERDADEIRO -FALSE = FALSO ## Devolve o valor lógico FALSO -IF = SE ## Especifica um teste lógico a ser executado -IFERROR = SE.ERRO ## Devolve um valor definido pelo utilizador se ocorrer um erro na fórmula, e devolve o resultado da fórmula se não ocorrer nenhum erro -NOT = NÃO ## Inverte a lógica do respectivo argumento -OR = OU ## Devolve VERDADEIRO se qualquer argumento for VERDADEIRO -TRUE = VERDADEIRO ## Devolve o valor lógico VERDADEIRO - - -## -## Lookup and reference functions Funções de pesquisa e referência -## -ADDRESS = ENDEREÇO ## Devolve uma referência a uma única célula numa folha de cálculo como texto -AREAS = ÁREAS ## Devolve o número de áreas numa referência -CHOOSE = SELECCIONAR ## Selecciona um valor a partir de uma lista de valores -COLUMN = COL ## Devolve o número da coluna de uma referência -COLUMNS = COLS ## Devolve o número de colunas numa referência -HLOOKUP = PROCH ## Procura na linha superior de uma matriz e devolve o valor da célula indicada -HYPERLINK = HIPERLIGAÇÃO ## Cria um atalho ou hiperligação que abre um documento armazenado num servidor de rede, numa intranet ou na Internet -INDEX = ÍNDICE ## Utiliza um índice para escolher um valor de uma referência ou de uma matriz -INDIRECT = INDIRECTO ## Devolve uma referência indicada por um valor de texto -LOOKUP = PROC ## Procura valores num vector ou numa matriz -MATCH = CORRESP ## Procura valores numa referência ou numa matriz -OFFSET = DESLOCAMENTO ## Devolve o deslocamento de referência de uma determinada referência -ROW = LIN ## Devolve o número da linha de uma referência -ROWS = LINS ## Devolve o número de linhas numa referência -RTD = RTD ## Obtém dados em tempo real a partir de um programa que suporte automatização COM (automatização: modo de trabalhar com objectos de uma aplicação a partir de outra aplicação ou ferramenta de desenvolvimento. Anteriormente conhecida como automatização OLE, a automatização é uma norma da indústria de software e uma funcionalidade COM (Component Object Model).) -TRANSPOSE = TRANSPOR ## Devolve a transposição de uma matriz -VLOOKUP = PROCV ## Procura na primeira coluna de uma matriz e percorre a linha para devolver o valor de uma célula - - -## -## Math and trigonometry functions Funções matemáticas e trigonométricas -## -ABS = ABS ## Devolve o valor absoluto de um número -ACOS = ACOS ## Devolve o arco de co-seno de um número -ACOSH = ACOSH ## Devolve o co-seno hiperbólico inverso de um número -ASIN = ASEN ## Devolve o arco de seno de um número -ASINH = ASENH ## Devolve o seno hiperbólico inverso de um número -ATAN = ATAN ## Devolve o arco de tangente de um número -ATAN2 = ATAN2 ## Devolve o arco de tangente das coordenadas x e y -ATANH = ATANH ## Devolve a tangente hiperbólica inversa de um número -CEILING = ARRED.EXCESSO ## Arredonda um número para o número inteiro mais próximo ou para o múltiplo de significância mais próximo -COMBIN = COMBIN ## Devolve o número de combinações de um determinado número de objectos -COS = COS ## Devolve o co-seno de um número -COSH = COSH ## Devolve o co-seno hiperbólico de um número -DEGREES = GRAUS ## Converte radianos em graus -EVEN = PAR ## Arredonda um número por excesso para o número inteiro mais próximo -EXP = EXP ## Devolve e elevado à potência de um determinado número -FACT = FACTORIAL ## Devolve o factorial de um número -FACTDOUBLE = FACTDUPLO ## Devolve o factorial duplo de um número -FLOOR = ARRED.DEFEITO ## Arredonda um número por defeito até zero -GCD = MDC ## Devolve o maior divisor comum -INT = INT ## Arredonda um número por defeito para o número inteiro mais próximo -LCM = MMC ## Devolve o mínimo múltiplo comum -LN = LN ## Devolve o logaritmo natural de um número -LOG = LOG ## Devolve o logaritmo de um número com uma base especificada -LOG10 = LOG10 ## Devolve o logaritmo de base 10 de um número -MDETERM = MATRIZ.DETERM ## Devolve o determinante matricial de uma matriz -MINVERSE = MATRIZ.INVERSA ## Devolve o inverso matricial de uma matriz -MMULT = MATRIZ.MULT ## Devolve o produto matricial de duas matrizes -MOD = RESTO ## Devolve o resto da divisão -MROUND = MARRED ## Devolve um número arredondado para o múltiplo pretendido -MULTINOMIAL = POLINOMIAL ## Devolve o polinomial de um conjunto de números -ODD = ÍMPAR ## Arredonda por excesso um número para o número inteiro ímpar mais próximo -PI = PI ## Devolve o valor de pi -POWER = POTÊNCIA ## Devolve o resultado de um número elevado a uma potência -PRODUCT = PRODUTO ## Multiplica os respectivos argumentos -QUOTIENT = QUOCIENTE ## Devolve a parte inteira de uma divisão -RADIANS = RADIANOS ## Converte graus em radianos -RAND = ALEATÓRIO ## Devolve um número aleatório entre 0 e 1 -RANDBETWEEN = ALEATÓRIOENTRE ## Devolve um número aleatório entre os números especificados -ROMAN = ROMANO ## Converte um número árabe em romano, como texto -ROUND = ARRED ## Arredonda um número para um número de dígitos especificado -ROUNDDOWN = ARRED.PARA.BAIXO ## Arredonda um número por defeito até zero -ROUNDUP = ARRED.PARA.CIMA ## Arredonda um número por excesso, afastando-o de zero -SERIESSUM = SOMASÉRIE ## Devolve a soma de uma série de potências baseada na fórmula -SIGN = SINAL ## Devolve o sinal de um número -SIN = SEN ## Devolve o seno de um determinado ângulo -SINH = SENH ## Devolve o seno hiperbólico de um número -SQRT = RAIZQ ## Devolve uma raiz quadrada positiva -SQRTPI = RAIZPI ## Devolve a raiz quadrada de (núm * pi) -SUBTOTAL = SUBTOTAL ## Devolve um subtotal numa lista ou base de dados -SUM = SOMA ## Adiciona os respectivos argumentos -SUMIF = SOMA.SE ## Adiciona as células especificadas por um determinado critério -SUMIFS = SOMA.SE.S ## Adiciona as células num intervalo que cumpre vários critérios -SUMPRODUCT = SOMARPRODUTO ## Devolve a soma dos produtos de componentes de matrizes correspondentes -SUMSQ = SOMARQUAD ## Devolve a soma dos quadrados dos argumentos -SUMX2MY2 = SOMAX2DY2 ## Devolve a soma da diferença dos quadrados dos valores correspondentes em duas matrizes -SUMX2PY2 = SOMAX2SY2 ## Devolve a soma da soma dos quadrados dos valores correspondentes em duas matrizes -SUMXMY2 = SOMAXMY2 ## Devolve a soma dos quadrados da diferença dos valores correspondentes em duas matrizes -TAN = TAN ## Devolve a tangente de um número -TANH = TANH ## Devolve a tangente hiperbólica de um número -TRUNC = TRUNCAR ## Trunca um número para um número inteiro - - -## -## Statistical functions Funções estatísticas -## -AVEDEV = DESV.MÉDIO ## Devolve a média aritmética dos desvios absolutos à média dos pontos de dados -AVERAGE = MÉDIA ## Devolve a média dos respectivos argumentos -AVERAGEA = MÉDIAA ## Devolve uma média dos respectivos argumentos, incluindo números, texto e valores lógicos -AVERAGEIF = MÉDIA.SE ## Devolve a média aritmética de todas as células num intervalo que cumprem determinado critério -AVERAGEIFS = MÉDIA.SE.S ## Devolve a média aritmética de todas as células que cumprem múltiplos critérios -BETADIST = DISTBETA ## Devolve a função de distribuição cumulativa beta -BETAINV = BETA.ACUM.INV ## Devolve o inverso da função de distribuição cumulativa relativamente a uma distribuição beta específica -BINOMDIST = DISTRBINOM ## Devolve a probabilidade de distribuição binomial de termo individual -CHIDIST = DIST.CHI ## Devolve a probabilidade unicaudal da distribuição qui-quadrada -CHIINV = INV.CHI ## Devolve o inverso da probabilidade unicaudal da distribuição qui-quadrada -CHITEST = TESTE.CHI ## Devolve o teste para independência -CONFIDENCE = INT.CONFIANÇA ## Devolve o intervalo de confiança correspondente a uma média de população -CORREL = CORREL ## Devolve o coeficiente de correlação entre dois conjuntos de dados -COUNT = CONTAR ## Conta os números que existem na lista de argumentos -COUNTA = CONTAR.VAL ## Conta os valores que existem na lista de argumentos -COUNTBLANK = CONTAR.VAZIO ## Conta o número de células em branco num intervalo -COUNTIF = CONTAR.SE ## Calcula o número de células num intervalo que corresponde aos critérios determinados -COUNTIFS = CONTAR.SE.S ## Conta o número de células num intervalo que cumprem múltiplos critérios -COVAR = COVAR ## Devolve a covariância, que é a média dos produtos de desvios de pares -CRITBINOM = CRIT.BINOM ## Devolve o menor valor em que a distribuição binomial cumulativa é inferior ou igual a um valor de critério -DEVSQ = DESVQ ## Devolve a soma dos quadrados dos desvios -EXPONDIST = DISTEXPON ## Devolve a distribuição exponencial -FDIST = DISTF ## Devolve a distribuição da probabilidade F -FINV = INVF ## Devolve o inverso da distribuição da probabilidade F -FISHER = FISHER ## Devolve a transformação Fisher -FISHERINV = FISHERINV ## Devolve o inverso da transformação Fisher -FORECAST = PREVISÃO ## Devolve um valor ao longo de uma tendência linear -FREQUENCY = FREQUÊNCIA ## Devolve uma distribuição de frequência como uma matriz vertical -FTEST = TESTEF ## Devolve o resultado de um teste F -GAMMADIST = DISTGAMA ## Devolve a distribuição gama -GAMMAINV = INVGAMA ## Devolve o inverso da distribuição gama cumulativa -GAMMALN = LNGAMA ## Devolve o logaritmo natural da função gama, Γ(x) -GEOMEAN = MÉDIA.GEOMÉTRICA ## Devolve a média geométrica -GROWTH = CRESCIMENTO ## Devolve valores ao longo de uma tendência exponencial -HARMEAN = MÉDIA.HARMÓNICA ## Devolve a média harmónica -HYPGEOMDIST = DIST.HIPERGEOM ## Devolve a distribuição hipergeométrica -INTERCEPT = INTERCEPTAR ## Devolve a intercepção da linha de regressão linear -KURT = CURT ## Devolve a curtose de um conjunto de dados -LARGE = MAIOR ## Devolve o maior valor k-ésimo de um conjunto de dados -LINEST = PROJ.LIN ## Devolve os parâmetros de uma tendência linear -LOGEST = PROJ.LOG ## Devolve os parâmetros de uma tendência exponencial -LOGINV = INVLOG ## Devolve o inverso da distribuição normal logarítmica -LOGNORMDIST = DIST.NORMALLOG ## Devolve a distribuição normal logarítmica cumulativa -MAX = MÁXIMO ## Devolve o valor máximo numa lista de argumentos -MAXA = MÁXIMOA ## Devolve o valor máximo numa lista de argumentos, incluindo números, texto e valores lógicos -MEDIAN = MED ## Devolve a mediana dos números indicados -MIN = MÍNIMO ## Devolve o valor mínimo numa lista de argumentos -MINA = MÍNIMOA ## Devolve o valor mínimo numa lista de argumentos, incluindo números, texto e valores lógicos -MODE = MODA ## Devolve o valor mais comum num conjunto de dados -NEGBINOMDIST = DIST.BIN.NEG ## Devolve a distribuição binominal negativa -NORMDIST = DIST.NORM ## Devolve a distribuição cumulativa normal -NORMINV = INV.NORM ## Devolve o inverso da distribuição cumulativa normal -NORMSDIST = DIST.NORMP ## Devolve a distribuição cumulativa normal padrão -NORMSINV = INV.NORMP ## Devolve o inverso da distribuição cumulativa normal padrão -PEARSON = PEARSON ## Devolve o coeficiente de correlação momento/produto de Pearson -PERCENTILE = PERCENTIL ## Devolve o k-ésimo percentil de valores num intervalo -PERCENTRANK = ORDEM.PERCENTUAL ## Devolve a ordem percentual de um valor num conjunto de dados -PERMUT = PERMUTAR ## Devolve o número de permutações de um determinado número de objectos -POISSON = POISSON ## Devolve a distribuição de Poisson -PROB = PROB ## Devolve a probabilidade dos valores num intervalo se encontrarem entre dois limites -QUARTILE = QUARTIL ## Devolve o quartil de um conjunto de dados -RANK = ORDEM ## Devolve a ordem de um número numa lista numérica -RSQ = RQUAD ## Devolve o quadrado do coeficiente de correlação momento/produto de Pearson -SKEW = DISTORÇÃO ## Devolve a distorção de uma distribuição -SLOPE = DECLIVE ## Devolve o declive da linha de regressão linear -SMALL = MENOR ## Devolve o menor valor de k-ésimo de um conjunto de dados -STANDARDIZE = NORMALIZAR ## Devolve um valor normalizado -STDEV = DESVPAD ## Calcula o desvio-padrão com base numa amostra -STDEVA = DESVPADA ## Calcula o desvio-padrão com base numa amostra, incluindo números, texto e valores lógicos -STDEVP = DESVPADP ## Calcula o desvio-padrão com base na população total -STDEVPA = DESVPADPA ## Calcula o desvio-padrão com base na população total, incluindo números, texto e valores lógicos -STEYX = EPADYX ## Devolve o erro-padrão do valor de y previsto para cada x na regressão -TDIST = DISTT ## Devolve a distribuição t de Student -TINV = INVT ## Devolve o inverso da distribuição t de Student -TREND = TENDÊNCIA ## Devolve valores ao longo de uma tendência linear -TRIMMEAN = MÉDIA.INTERNA ## Devolve a média do interior de um conjunto de dados -TTEST = TESTET ## Devolve a probabilidade associada ao teste t de Student -VAR = VAR ## Calcula a variância com base numa amostra -VARA = VARA ## Calcula a variância com base numa amostra, incluindo números, texto e valores lógicos -VARP = VARP ## Calcula a variância com base na população total -VARPA = VARPA ## Calcula a variância com base na população total, incluindo números, texto e valores lógicos -WEIBULL = WEIBULL ## Devolve a distribuição Weibull -ZTEST = TESTEZ ## Devolve o valor de probabilidade unicaudal de um teste-z - - -## -## Text functions Funções de texto -## -ASC = ASC ## Altera letras ou katakana de largura total (byte duplo) numa cadeia de caracteres para caracteres de largura média (byte único) -BAHTTEXT = TEXTO.BAHT ## Converte um número em texto, utilizando o formato monetário ß (baht) -CHAR = CARÁCT ## Devolve o carácter especificado pelo número de código -CLEAN = LIMPAR ## Remove do texto todos os caracteres não imprimíveis -CODE = CÓDIGO ## Devolve um código numérico correspondente ao primeiro carácter numa cadeia de texto -CONCATENATE = CONCATENAR ## Agrupa vários itens de texto num único item de texto -DOLLAR = MOEDA ## Converte um número em texto, utilizando o formato monetário € (Euro) -EXACT = EXACTO ## Verifica se dois valores de texto são idênticos -FIND = LOCALIZAR ## Localiza um valor de texto dentro de outro (sensível às maiúsculas e minúsculas) -FINDB = LOCALIZARB ## Localiza um valor de texto dentro de outro (sensível às maiúsculas e minúsculas) -FIXED = FIXA ## Formata um número como texto com um número fixo de decimais -JIS = JIS ## Altera letras ou katakana de largura média (byte único) numa cadeia de caracteres para caracteres de largura total (byte duplo) -LEFT = ESQUERDA ## Devolve os caracteres mais à esquerda de um valor de texto -LEFTB = ESQUERDAB ## Devolve os caracteres mais à esquerda de um valor de texto -LEN = NÚM.CARACT ## Devolve o número de caracteres de uma cadeia de texto -LENB = NÚM.CARACTB ## Devolve o número de caracteres de uma cadeia de texto -LOWER = MINÚSCULAS ## Converte o texto em minúsculas -MID = SEG.TEXTO ## Devolve um número específico de caracteres de uma cadeia de texto, a partir da posição especificada -MIDB = SEG.TEXTOB ## Devolve um número específico de caracteres de uma cadeia de texto, a partir da posição especificada -PHONETIC = FONÉTICA ## Retira os caracteres fonéticos (furigana) de uma cadeia de texto -PROPER = INICIAL.MAIÚSCULA ## Coloca em maiúsculas a primeira letra de cada palavra de um valor de texto -REPLACE = SUBSTITUIR ## Substitui caracteres no texto -REPLACEB = SUBSTITUIRB ## Substitui caracteres no texto -REPT = REPETIR ## Repete texto um determinado número de vezes -RIGHT = DIREITA ## Devolve os caracteres mais à direita de um valor de texto -RIGHTB = DIREITAB ## Devolve os caracteres mais à direita de um valor de texto -SEARCH = PROCURAR ## Localiza um valor de texto dentro de outro (não sensível a maiúsculas e minúsculas) -SEARCHB = PROCURARB ## Localiza um valor de texto dentro de outro (não sensível a maiúsculas e minúsculas) -SUBSTITUTE = SUBST ## Substitui texto novo por texto antigo numa cadeia de texto -T = T ## Converte os respectivos argumentos em texto -TEXT = TEXTO ## Formata um número e converte-o em texto -TRIM = COMPACTAR ## Remove espaços do texto -UPPER = MAIÚSCULAS ## Converte texto em maiúsculas -VALUE = VALOR ## Converte um argumento de texto num número diff --git a/Utils/PHPExcel/locale/ru/config b/Utils/PHPExcel/locale/ru/config deleted file mode 100644 index e66d6cc..0000000 --- a/Utils/PHPExcel/locale/ru/config +++ /dev/null @@ -1,49 +0,0 @@ -## -## PHPExcel -## - -## Copyright (c) 2006 - 2013 PHPExcel -## -## This library is free software; you can redistribute it and/or -## modify it under the terms of the GNU Lesser General Public -## License as published by the Free Software Foundation; either -## version 2.1 of the License, or (at your option) any later version. -## -## This library is distributed in the hope that it will be useful, -## but WITHOUT ANY WARRANTY; without even the implied warranty of -## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -## Lesser General Public License for more details. -## -## You should have received a copy of the GNU Lesser General Public -## License along with this library; if not, write to the Free Software -## Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA -## -## @category PHPExcel -## @package PHPExcel_Settings -## @copyright Copyright (c) 2006 - 2013 PHPExcel (http://www.codeplex.com/PHPExcel) -## @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL -## @version ##VERSION##, ##DATE## -## -## - - -ArgumentSeparator = ; - - -## -## (For future use) -## -currencySymbol = р - - -## -## Excel Error Codes (For future use) - -## -NULL = #ПУСТО! -DIV0 = #ДЕЛ/0! -VALUE = #ЗНАЧ! -REF = #ССЫЛ! -NAME = #ИМЯ? -NUM = #ЧИСЛО! -NA = #Н/Д diff --git a/Utils/PHPExcel/locale/ru/functions b/Utils/PHPExcel/locale/ru/functions deleted file mode 100644 index c2d2ade..0000000 --- a/Utils/PHPExcel/locale/ru/functions +++ /dev/null @@ -1,439 +0,0 @@ -## -## PHPExcel -## - -## Copyright (c) 2006 - 2013 PHPExcel -## -## This library is free software; you can redistribute it and/or -## modify it under the terms of the GNU Lesser General Public -## License as published by the Free Software Foundation; either -## version 2.1 of the License, or (at your option) any later version. -## -## This library is distributed in the hope that it will be useful, -## but WITHOUT ANY WARRANTY; without even the implied warranty of -## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -## Lesser General Public License for more details. -## -## You should have received a copy of the GNU Lesser General Public -## License along with this library; if not, write to the Free Software -## Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA -## -## @category PHPExcel -## @package PHPExcel_Calculation -## @copyright Copyright (c) 2006 - 2013 PHPExcel (http://www.codeplex.com/PHPExcel) -## @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL -## @version ##VERSION##, ##DATE## -## -## Data in this file derived from information provided by web-junior (http://www.web-junior.net/) -## -## - - -## -## Add-in and Automation functions Функции надстроек и автоматизации -## -GETPIVOTDATA = ПОЛУЧИТЬ.ДАННЫЕ.СВОДНОЙ.ТАБЛИЦЫ ## Возвращает данные, хранящиеся в отчете сводной таблицы. - - -## -## Cube functions Функции Куб -## -CUBEKPIMEMBER = КУБЭЛЕМЕНТКИП ## Возвращает свойство ключевого индикатора производительности «(КИП)» и отображает имя «КИП» в ячейке. «КИП» представляет собой количественную величину, такую как ежемесячная валовая прибыль или ежеквартальная текучесть кадров, используемой для контроля эффективности работы организации. -CUBEMEMBER = КУБЭЛЕМЕНТ ## Возвращает элемент или кортеж из куба. Используется для проверки существования элемента или кортежа в кубе. -CUBEMEMBERPROPERTY = КУБСВОЙСТВОЭЛЕМЕНТА ## Возвращает значение свойства элемента из куба. Используется для проверки существования имени элемента в кубе и возвращает указанное свойство для этого элемента. -CUBERANKEDMEMBER = КУБПОРЭЛЕМЕНТ ## Возвращает n-ый или ранжированный элемент в множество. Используется для возвращения одного или нескольких элементов в множество, например, лучшего продавца или 10 лучших студентов. -CUBESET = КУБМНОЖ ## Определяет вычислительное множество элементов или кортежей, отправляя на сервер выражение, которое создает множество, а затем возвращает его в Microsoft Office Excel. -CUBESETCOUNT = КУБЧИСЛОЭЛМНОЖ ## Возвращает число элементов множества. -CUBEVALUE = КУБЗНАЧЕНИЕ ## Возвращает обобщенное значение из куба. - - -## -## Database functions Функции для работы с базами данных -## -DAVERAGE = ДСРЗНАЧ ## Возвращает среднее значение выбранных записей базы данных. -DCOUNT = БСЧЁТ ## Подсчитывает количество числовых ячеек в базе данных. -DCOUNTA = БСЧЁТА ## Подсчитывает количество непустых ячеек в базе данных. -DGET = БИЗВЛЕЧЬ ## Извлекает из базы данных одну запись, удовлетворяющую заданному условию. -DMAX = ДМАКС ## Возвращает максимальное значение среди выделенных записей базы данных. -DMIN = ДМИН ## Возвращает минимальное значение среди выделенных записей базы данных. -DPRODUCT = БДПРОИЗВЕД ## Перемножает значения определенного поля в записях базы данных, удовлетворяющих условию. -DSTDEV = ДСТАНДОТКЛ ## Оценивает стандартное отклонение по выборке для выделенных записей базы данных. -DSTDEVP = ДСТАНДОТКЛП ## Вычисляет стандартное отклонение по генеральной совокупности для выделенных записей базы данных -DSUM = БДСУММ ## Суммирует числа в поле для записей базы данных, удовлетворяющих условию. -DVAR = БДДИСП ## Оценивает дисперсию по выборке из выделенных записей базы данных -DVARP = БДДИСПП ## Вычисляет дисперсию по генеральной совокупности для выделенных записей базы данных - - -## -## Date and time functions Функции даты и времени -## -DATE = ДАТА ## Возвращает заданную дату в числовом формате. -DATEVALUE = ДАТАЗНАЧ ## Преобразует дату из текстового формата в числовой формат. -DAY = ДЕНЬ ## Преобразует дату в числовом формате в день месяца. -DAYS360 = ДНЕЙ360 ## Вычисляет количество дней между двумя датами на основе 360-дневного года. -EDATE = ДАТАМЕС ## Возвращает дату в числовом формате, отстоящую на заданное число месяцев вперед или назад от начальной даты. -EOMONTH = КОНМЕСЯЦА ## Возвращает дату в числовом формате для последнего дня месяца, отстоящего вперед или назад на заданное число месяцев. -HOUR = ЧАС ## Преобразует дату в числовом формате в часы. -MINUTE = МИНУТЫ ## Преобразует дату в числовом формате в минуты. -MONTH = МЕСЯЦ ## Преобразует дату в числовом формате в месяцы. -NETWORKDAYS = ЧИСТРАБДНИ ## Возвращает количество рабочих дней между двумя датами. -NOW = ТДАТА ## Возвращает текущую дату и время в числовом формате. -SECOND = СЕКУНДЫ ## Преобразует дату в числовом формате в секунды. -TIME = ВРЕМЯ ## Возвращает заданное время в числовом формате. -TIMEVALUE = ВРЕМЗНАЧ ## Преобразует время из текстового формата в числовой формат. -TODAY = СЕГОДНЯ ## Возвращает текущую дату в числовом формате. -WEEKDAY = ДЕНЬНЕД ## Преобразует дату в числовом формате в день недели. -WEEKNUM = НОМНЕДЕЛИ ## Преобразует числовое представление в число, которое указывает, на какую неделю года приходится указанная дата. -WORKDAY = РАБДЕНЬ ## Возвращает дату в числовом формате, отстоящую вперед или назад на заданное количество рабочих дней. -YEAR = ГОД ## Преобразует дату в числовом формате в год. -YEARFRAC = ДОЛЯГОДА ## Возвращает долю года, которую составляет количество дней между начальной и конечной датами. - - -## -## Engineering functions Инженерные функции -## -BESSELI = БЕССЕЛЬ.I ## Возвращает модифицированную функцию Бесселя In(x). -BESSELJ = БЕССЕЛЬ.J ## Возвращает функцию Бесселя Jn(x). -BESSELK = БЕССЕЛЬ.K ## Возвращает модифицированную функцию Бесселя Kn(x). -BESSELY = БЕССЕЛЬ.Y ## Возвращает функцию Бесселя Yn(x). -BIN2DEC = ДВ.В.ДЕС ## Преобразует двоичное число в десятичное. -BIN2HEX = ДВ.В.ШЕСТН ## Преобразует двоичное число в шестнадцатеричное. -BIN2OCT = ДВ.В.ВОСЬМ ## Преобразует двоичное число в восьмеричное. -COMPLEX = КОМПЛЕКСН ## Преобразует коэффициенты при вещественной и мнимой частях комплексного числа в комплексное число. -CONVERT = ПРЕОБР ## Преобразует число из одной системы единиц измерения в другую. -DEC2BIN = ДЕС.В.ДВ ## Преобразует десятичное число в двоичное. -DEC2HEX = ДЕС.В.ШЕСТН ## Преобразует десятичное число в шестнадцатеричное. -DEC2OCT = ДЕС.В.ВОСЬМ ## Преобразует десятичное число в восьмеричное. -DELTA = ДЕЛЬТА ## Проверяет равенство двух значений. -ERF = ФОШ ## Возвращает функцию ошибки. -ERFC = ДФОШ ## Возвращает дополнительную функцию ошибки. -GESTEP = ПОРОГ ## Проверяет, не превышает ли данное число порогового значения. -HEX2BIN = ШЕСТН.В.ДВ ## Преобразует шестнадцатеричное число в двоичное. -HEX2DEC = ШЕСТН.В.ДЕС ## Преобразует шестнадцатеричное число в десятичное. -HEX2OCT = ШЕСТН.В.ВОСЬМ ## Преобразует шестнадцатеричное число в восьмеричное. -IMABS = МНИМ.ABS ## Возвращает абсолютную величину (модуль) комплексного числа. -IMAGINARY = МНИМ.ЧАСТЬ ## Возвращает коэффициент при мнимой части комплексного числа. -IMARGUMENT = МНИМ.АРГУМЕНТ ## Возвращает значение аргумента комплексного числа (тета) — угол, выраженный в радианах. -IMCONJUGATE = МНИМ.СОПРЯЖ ## Возвращает комплексно-сопряженное комплексное число. -IMCOS = МНИМ.COS ## Возвращает косинус комплексного числа. -IMDIV = МНИМ.ДЕЛ ## Возвращает частное от деления двух комплексных чисел. -IMEXP = МНИМ.EXP ## Возвращает экспоненту комплексного числа. -IMLN = МНИМ.LN ## Возвращает натуральный логарифм комплексного числа. -IMLOG10 = МНИМ.LOG10 ## Возвращает обычный (десятичный) логарифм комплексного числа. -IMLOG2 = МНИМ.LOG2 ## Возвращает двоичный логарифм комплексного числа. -IMPOWER = МНИМ.СТЕПЕНЬ ## Возвращает комплексное число, возведенное в целую степень. -IMPRODUCT = МНИМ.ПРОИЗВЕД ## Возвращает произведение от 2 до 29 комплексных чисел. -IMREAL = МНИМ.ВЕЩ ## Возвращает коэффициент при вещественной части комплексного числа. -IMSIN = МНИМ.SIN ## Возвращает синус комплексного числа. -IMSQRT = МНИМ.КОРЕНЬ ## Возвращает значение квадратного корня из комплексного числа. -IMSUB = МНИМ.РАЗН ## Возвращает разность двух комплексных чисел. -IMSUM = МНИМ.СУММ ## Возвращает сумму комплексных чисел. -OCT2BIN = ВОСЬМ.В.ДВ ## Преобразует восьмеричное число в двоичное. -OCT2DEC = ВОСЬМ.В.ДЕС ## Преобразует восьмеричное число в десятичное. -OCT2HEX = ВОСЬМ.В.ШЕСТН ## Преобразует восьмеричное число в шестнадцатеричное. - - -## -## Financial functions Финансовые функции -## -ACCRINT = НАКОПДОХОД ## Возвращает накопленный процент по ценным бумагам с периодической выплатой процентов. -ACCRINTM = НАКОПДОХОДПОГАШ ## Возвращает накопленный процент по ценным бумагам, проценты по которым выплачиваются в срок погашения. -AMORDEGRC = АМОРУМ ## Возвращает величину амортизации для каждого периода, используя коэффициент амортизации. -AMORLINC = АМОРУВ ## Возвращает величину амортизации для каждого периода. -COUPDAYBS = ДНЕЙКУПОНДО ## Возвращает количество дней от начала действия купона до даты соглашения. -COUPDAYS = ДНЕЙКУПОН ## Возвращает число дней в периоде купона, содержащем дату соглашения. -COUPDAYSNC = ДНЕЙКУПОНПОСЛЕ ## Возвращает число дней от даты соглашения до срока следующего купона. -COUPNCD = ДАТАКУПОНПОСЛЕ ## Возвращает следующую дату купона после даты соглашения. -COUPNUM = ЧИСЛКУПОН ## Возвращает количество купонов, которые могут быть оплачены между датой соглашения и сроком вступления в силу. -COUPPCD = ДАТАКУПОНДО ## Возвращает предыдущую дату купона перед датой соглашения. -CUMIPMT = ОБЩПЛАТ ## Возвращает общую выплату, произведенную между двумя периодическими выплатами. -CUMPRINC = ОБЩДОХОД ## Возвращает общую выплату по займу между двумя периодами. -DB = ФУО ## Возвращает величину амортизации актива для заданного периода, рассчитанную методом фиксированного уменьшения остатка. -DDB = ДДОБ ## Возвращает величину амортизации актива за данный период, используя метод двойного уменьшения остатка или иной явно указанный метод. -DISC = СКИДКА ## Возвращает норму скидки для ценных бумаг. -DOLLARDE = РУБЛЬ.ДЕС ## Преобразует цену в рублях, выраженную в виде дроби, в цену в рублях, выраженную десятичным числом. -DOLLARFR = РУБЛЬ.ДРОБЬ ## Преобразует цену в рублях, выраженную десятичным числом, в цену в рублях, выраженную в виде дроби. -DURATION = ДЛИТ ## Возвращает ежегодную продолжительность действия ценных бумаг с периодическими выплатами по процентам. -EFFECT = ЭФФЕКТ ## Возвращает действующие ежегодные процентные ставки. -FV = БС ## Возвращает будущую стоимость инвестиции. -FVSCHEDULE = БЗРАСПИС ## Возвращает будущую стоимость первоначальной основной суммы после начисления ряда сложных процентов. -INTRATE = ИНОРМА ## Возвращает процентную ставку для полностью инвестированных ценных бумаг. -IPMT = ПРПЛТ ## Возвращает величину выплаты прибыли на вложения за данный период. -IRR = ВСД ## Возвращает внутреннюю ставку доходности для ряда потоков денежных средств. -ISPMT = ПРОЦПЛАТ ## Вычисляет выплаты за указанный период инвестиции. -MDURATION = МДЛИТ ## Возвращает модифицированную длительность Маколея для ценных бумаг с предполагаемой номинальной стоимостью 100 рублей. -MIRR = МВСД ## Возвращает внутреннюю ставку доходности, при которой положительные и отрицательные денежные потоки имеют разные значения ставки. -NOMINAL = НОМИНАЛ ## Возвращает номинальную годовую процентную ставку. -NPER = КПЕР ## Возвращает общее количество периодов выплаты для данного вклада. -NPV = ЧПС ## Возвращает чистую приведенную стоимость инвестиции, основанной на серии периодических денежных потоков и ставке дисконтирования. -ODDFPRICE = ЦЕНАПЕРВНЕРЕГ ## Возвращает цену за 100 рублей нарицательной стоимости ценных бумаг с нерегулярным первым периодом. -ODDFYIELD = ДОХОДПЕРВНЕРЕГ ## Возвращает доход по ценным бумагам с нерегулярным первым периодом. -ODDLPRICE = ЦЕНАПОСЛНЕРЕГ ## Возвращает цену за 100 рублей нарицательной стоимости ценных бумаг с нерегулярным последним периодом. -ODDLYIELD = ДОХОДПОСЛНЕРЕГ ## Возвращает доход по ценным бумагам с нерегулярным последним периодом. -PMT = ПЛТ ## Возвращает величину выплаты за один период аннуитета. -PPMT = ОСПЛТ ## Возвращает величину выплат в погашение основной суммы по инвестиции за заданный период. -PRICE = ЦЕНА ## Возвращает цену за 100 рублей нарицательной стоимости ценных бумаг, по которым производится периодическая выплата процентов. -PRICEDISC = ЦЕНАСКИДКА ## Возвращает цену за 100 рублей номинальной стоимости ценных бумаг, на которые сделана скидка. -PRICEMAT = ЦЕНАПОГАШ ## Возвращает цену за 100 рублей номинальной стоимости ценных бумаг, проценты по которым выплачиваются в срок погашения. -PV = ПС ## Возвращает приведенную (к текущему моменту) стоимость инвестиции. -RATE = СТАВКА ## Возвращает процентную ставку по аннуитету за один период. -RECEIVED = ПОЛУЧЕНО ## Возвращает сумму, полученную к сроку погашения полностью обеспеченных ценных бумаг. -SLN = АПЛ ## Возвращает величину линейной амортизации актива за один период. -SYD = АСЧ ## Возвращает величину амортизации актива за данный период, рассчитанную методом суммы годовых чисел. -TBILLEQ = РАВНОКЧЕК ## Возвращает эквивалентный облигации доход по казначейскому чеку. -TBILLPRICE = ЦЕНАКЧЕК ## Возвращает цену за 100 рублей нарицательной стоимости для казначейского чека. -TBILLYIELD = ДОХОДКЧЕК ## Возвращает доход по казначейскому чеку. -VDB = ПУО ## Возвращает величину амортизации актива для указанного или частичного периода при использовании метода сокращающегося баланса. -XIRR = ЧИСТВНДОХ ## Возвращает внутреннюю ставку доходности для графика денежных потоков, которые не обязательно носят периодический характер. -XNPV = ЧИСТНЗ ## Возвращает чистую приведенную стоимость для денежных потоков, которые не обязательно являются периодическими. -YIELD = ДОХОД ## Возвращает доход от ценных бумаг, по которым производятся периодические выплаты процентов. -YIELDDISC = ДОХОДСКИДКА ## Возвращает годовой доход по ценным бумагам, на которые сделана скидка (пример — казначейские чеки). -YIELDMAT = ДОХОДПОГАШ ## Возвращает годовой доход от ценных бумаг, проценты по которым выплачиваются в срок погашения. - - -## -## Information functions Информационные функции -## -CELL = ЯЧЕЙКА ## Возвращает информацию о формате, расположении или содержимом ячейки. -ERROR.TYPE = ТИП.ОШИБКИ ## Возвращает числовой код, соответствующий типу ошибки. -INFO = ИНФОРМ ## Возвращает информацию о текущей операционной среде. -ISBLANK = ЕПУСТО ## Возвращает значение ИСТИНА, если аргумент является ссылкой на пустую ячейку. -ISERR = ЕОШ ## Возвращает значение ИСТИНА, если аргумент ссылается на любое значение ошибки, кроме #Н/Д. -ISERROR = ЕОШИБКА ## Возвращает значение ИСТИНА, если аргумент ссылается на любое значение ошибки. -ISEVEN = ЕЧЁТН ## Возвращает значение ИСТИНА, если значение аргумента является четным числом. -ISLOGICAL = ЕЛОГИЧ ## Возвращает значение ИСТИНА, если аргумент ссылается на логическое значение. -ISNA = ЕНД ## Возвращает значение ИСТИНА, если аргумент ссылается на значение ошибки #Н/Д. -ISNONTEXT = ЕНЕТЕКСТ ## Возвращает значение ИСТИНА, если значение аргумента не является текстом. -ISNUMBER = ЕЧИСЛО ## Возвращает значение ИСТИНА, если аргумент ссылается на число. -ISODD = ЕНЕЧЁТ ## Возвращает значение ИСТИНА, если значение аргумента является нечетным числом. -ISREF = ЕССЫЛКА ## Возвращает значение ИСТИНА, если значение аргумента является ссылкой. -ISTEXT = ЕТЕКСТ ## Возвращает значение ИСТИНА, если значение аргумента является текстом. -N = Ч ## Возвращает значение, преобразованное в число. -NA = НД ## Возвращает значение ошибки #Н/Д. -TYPE = ТИП ## Возвращает число, обозначающее тип данных значения. - - -## -## Logical functions Логические функции -## -AND = И ## Renvoie VRAI si tous ses arguments sont VRAI. -FALSE = ЛОЖЬ ## Возвращает логическое значение ЛОЖЬ. -IF = ЕСЛИ ## Выполняет проверку условия. -IFERROR = ЕСЛИОШИБКА ## Возвращает введённое значение, если вычисление по формуле вызывает ошибку; в противном случае функция возвращает результат вычисления. -NOT = НЕ ## Меняет логическое значение своего аргумента на противоположное. -OR = ИЛИ ## Возвращает значение ИСТИНА, если хотя бы один аргумент имеет значение ИСТИНА. -TRUE = ИСТИНА ## Возвращает логическое значение ИСТИНА. - - -## -## Lookup and reference functions Функции ссылки и поиска -## -ADDRESS = АДРЕС ## Возвращает ссылку на отдельную ячейку листа в виде текста. -AREAS = ОБЛАСТИ ## Возвращает количество областей в ссылке. -CHOOSE = ВЫБОР ## Выбирает значение из списка значений по индексу. -COLUMN = СТОЛБЕЦ ## Возвращает номер столбца, на который указывает ссылка. -COLUMNS = ЧИСЛСТОЛБ ## Возвращает количество столбцов в ссылке. -HLOOKUP = ГПР ## Ищет в первой строке массива и возвращает значение отмеченной ячейки -HYPERLINK = ГИПЕРССЫЛКА ## Создает ссылку, открывающую документ, который находится на сервере сети, в интрасети или в Интернете. -INDEX = ИНДЕКС ## Использует индекс для выбора значения из ссылки или массива. -INDIRECT = ДВССЫЛ ## Возвращает ссылку, заданную текстовым значением. -LOOKUP = ПРОСМОТР ## Ищет значения в векторе или массиве. -MATCH = ПОИСКПОЗ ## Ищет значения в ссылке или массиве. -OFFSET = СМЕЩ ## Возвращает смещение ссылки относительно заданной ссылки. -ROW = СТРОКА ## Возвращает номер строки, определяемой ссылкой. -ROWS = ЧСТРОК ## Возвращает количество строк в ссылке. -RTD = ДРВ ## Извлекает данные реального времени из программ, поддерживающих автоматизацию COM (Программирование объектов. Стандартное средство для работы с объектами некоторого приложения из другого приложения или средства разработки. Программирование объектов (ранее называемое программированием OLE) является функцией модели COM (Component Object Model, модель компонентных объектов).). -TRANSPOSE = ТРАНСП ## Возвращает транспонированный массив. -VLOOKUP = ВПР ## Ищет значение в первом столбце массива и возвращает значение из ячейки в найденной строке и указанном столбце. - - -## -## Math and trigonometry functions Математические и тригонометрические функции -## -ABS = ABS ## Возвращает модуль (абсолютную величину) числа. -ACOS = ACOS ## Возвращает арккосинус числа. -ACOSH = ACOSH ## Возвращает гиперболический арккосинус числа. -ASIN = ASIN ## Возвращает арксинус числа. -ASINH = ASINH ## Возвращает гиперболический арксинус числа. -ATAN = ATAN ## Возвращает арктангенс числа. -ATAN2 = ATAN2 ## Возвращает арктангенс для заданных координат x и y. -ATANH = ATANH ## Возвращает гиперболический арктангенс числа. -CEILING = ОКРВВЕРХ ## Округляет число до ближайшего целого или до ближайшего кратного указанному значению. -COMBIN = ЧИСЛКОМБ ## Возвращает количество комбинаций для заданного числа объектов. -COS = COS ## Возвращает косинус числа. -COSH = COSH ## Возвращает гиперболический косинус числа. -DEGREES = ГРАДУСЫ ## Преобразует радианы в градусы. -EVEN = ЧЁТН ## Округляет число до ближайшего четного целого. -EXP = EXP ## Возвращает число e, возведенное в указанную степень. -FACT = ФАКТР ## Возвращает факториал числа. -FACTDOUBLE = ДВФАКТР ## Возвращает двойной факториал числа. -FLOOR = ОКРВНИЗ ## Округляет число до ближайшего меньшего по модулю значения. -GCD = НОД ## Возвращает наибольший общий делитель. -INT = ЦЕЛОЕ ## Округляет число до ближайшего меньшего целого. -LCM = НОК ## Возвращает наименьшее общее кратное. -LN = LN ## Возвращает натуральный логарифм числа. -LOG = LOG ## Возвращает логарифм числа по заданному основанию. -LOG10 = LOG10 ## Возвращает десятичный логарифм числа. -MDETERM = МОПРЕД ## Возвращает определитель матрицы массива. -MINVERSE = МОБР ## Возвращает обратную матрицу массива. -MMULT = МУМНОЖ ## Возвращает произведение матриц двух массивов. -MOD = ОСТАТ ## Возвращает остаток от деления. -MROUND = ОКРУГЛТ ## Возвращает число, округленное с требуемой точностью. -MULTINOMIAL = МУЛЬТИНОМ ## Возвращает мультиномиальный коэффициент множества чисел. -ODD = НЕЧЁТ ## Округляет число до ближайшего нечетного целого. -PI = ПИ ## Возвращает число пи. -POWER = СТЕПЕНЬ ## Возвращает результат возведения числа в степень. -PRODUCT = ПРОИЗВЕД ## Возвращает произведение аргументов. -QUOTIENT = ЧАСТНОЕ ## Возвращает целую часть частного при делении. -RADIANS = РАДИАНЫ ## Преобразует градусы в радианы. -RAND = СЛЧИС ## Возвращает случайное число в интервале от 0 до 1. -RANDBETWEEN = СЛУЧМЕЖДУ ## Возвращает случайное число в интервале между двумя заданными числами. -ROMAN = РИМСКОЕ ## Преобразует арабские цифры в римские в виде текста. -ROUND = ОКРУГЛ ## Округляет число до указанного количества десятичных разрядов. -ROUNDDOWN = ОКРУГЛВНИЗ ## Округляет число до ближайшего меньшего по модулю значения. -ROUNDUP = ОКРУГЛВВЕРХ ## Округляет число до ближайшего большего по модулю значения. -SERIESSUM = РЯД.СУММ ## Возвращает сумму степенного ряда, вычисленную по формуле. -SIGN = ЗНАК ## Возвращает знак числа. -SIN = SIN ## Возвращает синус заданного угла. -SINH = SINH ## Возвращает гиперболический синус числа. -SQRT = КОРЕНЬ ## Возвращает положительное значение квадратного корня. -SQRTPI = КОРЕНЬПИ ## Возвращает квадратный корень из значения выражения (число * ПИ). -SUBTOTAL = ПРОМЕЖУТОЧНЫЕ.ИТОГИ ## Возвращает промежуточный итог в списке или базе данных. -SUM = СУММ ## Суммирует аргументы. -SUMIF = СУММЕСЛИ ## Суммирует ячейки, удовлетворяющие заданному условию. -SUMIFS = СУММЕСЛИМН ## Суммирует диапазон ячеек, удовлетворяющих нескольким условиям. -SUMPRODUCT = СУММПРОИЗВ ## Возвращает сумму произведений соответствующих элементов массивов. -SUMSQ = СУММКВ ## Возвращает сумму квадратов аргументов. -SUMX2MY2 = СУММРАЗНКВ ## Возвращает сумму разностей квадратов соответствующих значений в двух массивах. -SUMX2PY2 = СУММСУММКВ ## Возвращает сумму сумм квадратов соответствующих элементов двух массивов. -SUMXMY2 = СУММКВРАЗН ## Возвращает сумму квадратов разностей соответствующих значений в двух массивах. -TAN = TAN ## Возвращает тангенс числа. -TANH = TANH ## Возвращает гиперболический тангенс числа. -TRUNC = ОТБР ## Отбрасывает дробную часть числа. - - -## -## Statistical functions Статистические функции -## -AVEDEV = СРОТКЛ ## Возвращает среднее арифметическое абсолютных значений отклонений точек данных от среднего. -AVERAGE = СРЗНАЧ ## Возвращает среднее арифметическое аргументов. -AVERAGEA = СРЗНАЧА ## Возвращает среднее арифметическое аргументов, включая числа, текст и логические значения. -AVERAGEIF = СРЗНАЧЕСЛИ ## Возвращает среднее значение (среднее арифметическое) всех ячеек в диапазоне, которые удовлетворяют данному условию. -AVERAGEIFS = СРЗНАЧЕСЛИМН ## Возвращает среднее значение (среднее арифметическое) всех ячеек, которые удовлетворяют нескольким условиям. -BETADIST = БЕТАРАСП ## Возвращает интегральную функцию бета-распределения. -BETAINV = БЕТАОБР ## Возвращает обратную интегральную функцию указанного бета-распределения. -BINOMDIST = БИНОМРАСП ## Возвращает отдельное значение биномиального распределения. -CHIDIST = ХИ2РАСП ## Возвращает одностороннюю вероятность распределения хи-квадрат. -CHIINV = ХИ2ОБР ## Возвращает обратное значение односторонней вероятности распределения хи-квадрат. -CHITEST = ХИ2ТЕСТ ## Возвращает тест на независимость. -CONFIDENCE = ДОВЕРИТ ## Возвращает доверительный интервал для среднего значения по генеральной совокупности. -CORREL = КОРРЕЛ ## Возвращает коэффициент корреляции между двумя множествами данных. -COUNT = СЧЁТ ## Подсчитывает количество чисел в списке аргументов. -COUNTA = СЧЁТЗ ## Подсчитывает количество значений в списке аргументов. -COUNTBLANK = СЧИТАТЬПУСТОТЫ ## Подсчитывает количество пустых ячеек в диапазоне -COUNTIF = СЧЁТЕСЛИ ## Подсчитывает количество ячеек в диапазоне, удовлетворяющих заданному условию -COUNTIFS = СЧЁТЕСЛИМН ## Подсчитывает количество ячеек внутри диапазона, удовлетворяющих нескольким условиям. -COVAR = КОВАР ## Возвращает ковариацию, среднее произведений парных отклонений -CRITBINOM = КРИТБИНОМ ## Возвращает наименьшее значение, для которого интегральное биномиальное распределение меньше или равно заданному критерию. -DEVSQ = КВАДРОТКЛ ## Возвращает сумму квадратов отклонений. -EXPONDIST = ЭКСПРАСП ## Возвращает экспоненциальное распределение. -FDIST = FРАСП ## Возвращает F-распределение вероятности. -FINV = FРАСПОБР ## Возвращает обратное значение для F-распределения вероятности. -FISHER = ФИШЕР ## Возвращает преобразование Фишера. -FISHERINV = ФИШЕРОБР ## Возвращает обратное преобразование Фишера. -FORECAST = ПРЕДСКАЗ ## Возвращает значение линейного тренда. -FREQUENCY = ЧАСТОТА ## Возвращает распределение частот в виде вертикального массива. -FTEST = ФТЕСТ ## Возвращает результат F-теста. -GAMMADIST = ГАММАРАСП ## Возвращает гамма-распределение. -GAMMAINV = ГАММАОБР ## Возвращает обратное гамма-распределение. -GAMMALN = ГАММАНЛОГ ## Возвращает натуральный логарифм гамма функции, Γ(x). -GEOMEAN = СРГЕОМ ## Возвращает среднее геометрическое. -GROWTH = РОСТ ## Возвращает значения в соответствии с экспоненциальным трендом. -HARMEAN = СРГАРМ ## Возвращает среднее гармоническое. -HYPGEOMDIST = ГИПЕРГЕОМЕТ ## Возвращает гипергеометрическое распределение. -INTERCEPT = ОТРЕЗОК ## Возвращает отрезок, отсекаемый на оси линией линейной регрессии. -KURT = ЭКСЦЕСС ## Возвращает эксцесс множества данных. -LARGE = НАИБОЛЬШИЙ ## Возвращает k-ое наибольшее значение в множестве данных. -LINEST = ЛИНЕЙН ## Возвращает параметры линейного тренда. -LOGEST = ЛГРФПРИБЛ ## Возвращает параметры экспоненциального тренда. -LOGINV = ЛОГНОРМОБР ## Возвращает обратное логарифмическое нормальное распределение. -LOGNORMDIST = ЛОГНОРМРАСП ## Возвращает интегральное логарифмическое нормальное распределение. -MAX = МАКС ## Возвращает наибольшее значение в списке аргументов. -MAXA = МАКСА ## Возвращает наибольшее значение в списке аргументов, включая числа, текст и логические значения. -MEDIAN = МЕДИАНА ## Возвращает медиану заданных чисел. -MIN = МИН ## Возвращает наименьшее значение в списке аргументов. -MINA = МИНА ## Возвращает наименьшее значение в списке аргументов, включая числа, текст и логические значения. -MODE = МОДА ## Возвращает значение моды множества данных. -NEGBINOMDIST = ОТРБИНОМРАСП ## Возвращает отрицательное биномиальное распределение. -NORMDIST = НОРМРАСП ## Возвращает нормальную функцию распределения. -NORMINV = НОРМОБР ## Возвращает обратное нормальное распределение. -NORMSDIST = НОРМСТРАСП ## Возвращает стандартное нормальное интегральное распределение. -NORMSINV = НОРМСТОБР ## Возвращает обратное значение стандартного нормального распределения. -PEARSON = ПИРСОН ## Возвращает коэффициент корреляции Пирсона. -PERCENTILE = ПЕРСЕНТИЛЬ ## Возвращает k-ую персентиль для значений диапазона. -PERCENTRANK = ПРОЦЕНТРАНГ ## Возвращает процентную норму значения в множестве данных. -PERMUT = ПЕРЕСТ ## Возвращает количество перестановок для заданного числа объектов. -POISSON = ПУАССОН ## Возвращает распределение Пуассона. -PROB = ВЕРОЯТНОСТЬ ## Возвращает вероятность того, что значение из диапазона находится внутри заданных пределов. -QUARTILE = КВАРТИЛЬ ## Возвращает квартиль множества данных. -RANK = РАНГ ## Возвращает ранг числа в списке чисел. -RSQ = КВПИРСОН ## Возвращает квадрат коэффициента корреляции Пирсона. -SKEW = СКОС ## Возвращает асимметрию распределения. -SLOPE = НАКЛОН ## Возвращает наклон линии линейной регрессии. -SMALL = НАИМЕНЬШИЙ ## Возвращает k-ое наименьшее значение в множестве данных. -STANDARDIZE = НОРМАЛИЗАЦИЯ ## Возвращает нормализованное значение. -STDEV = СТАНДОТКЛОН ## Оценивает стандартное отклонение по выборке. -STDEVA = СТАНДОТКЛОНА ## Оценивает стандартное отклонение по выборке, включая числа, текст и логические значения. -STDEVP = СТАНДОТКЛОНП ## Вычисляет стандартное отклонение по генеральной совокупности. -STDEVPA = СТАНДОТКЛОНПА ## Вычисляет стандартное отклонение по генеральной совокупности, включая числа, текст и логические значения. -STEYX = СТОШYX ## Возвращает стандартную ошибку предсказанных значений y для каждого значения x в регрессии. -TDIST = СТЬЮДРАСП ## Возвращает t-распределение Стьюдента. -TINV = СТЬЮДРАСПОБР ## Возвращает обратное t-распределение Стьюдента. -TREND = ТЕНДЕНЦИЯ ## Возвращает значения в соответствии с линейным трендом. -TRIMMEAN = УРЕЗСРЕДНЕЕ ## Возвращает среднее внутренности множества данных. -TTEST = ТТЕСТ ## Возвращает вероятность, соответствующую критерию Стьюдента. -VAR = ДИСП ## Оценивает дисперсию по выборке. -VARA = ДИСПА ## Оценивает дисперсию по выборке, включая числа, текст и логические значения. -VARP = ДИСПР ## Вычисляет дисперсию для генеральной совокупности. -VARPA = ДИСПРА ## Вычисляет дисперсию для генеральной совокупности, включая числа, текст и логические значения. -WEIBULL = ВЕЙБУЛЛ ## Возвращает распределение Вейбулла. -ZTEST = ZТЕСТ ## Возвращает двустороннее P-значение z-теста. - - -## -## Text functions Текстовые функции -## -ASC = ASC ## Для языков с двухбайтовыми наборами знаков (например, катакана) преобразует полноширинные (двухбайтовые) знаки в полуширинные (однобайтовые). -BAHTTEXT = БАТТЕКСТ ## Преобразует число в текст, используя денежный формат ß (БАТ). -CHAR = СИМВОЛ ## Возвращает знак с заданным кодом. -CLEAN = ПЕЧСИМВ ## Удаляет все непечатаемые знаки из текста. -CODE = КОДСИМВ ## Возвращает числовой код первого знака в текстовой строке. -CONCATENATE = СЦЕПИТЬ ## Объединяет несколько текстовых элементов в один. -DOLLAR = РУБЛЬ ## Преобразует число в текст, используя денежный формат. -EXACT = СОВПАД ## Проверяет идентичность двух текстовых значений. -FIND = НАЙТИ ## Ищет вхождения одного текстового значения в другом (с учетом регистра). -FINDB = НАЙТИБ ## Ищет вхождения одного текстового значения в другом (с учетом регистра). -FIXED = ФИКСИРОВАННЫЙ ## Форматирует число и преобразует его в текст с заданным числом десятичных знаков. -JIS = JIS ## Для языков с двухбайтовыми наборами знаков (например, катакана) преобразует полуширинные (однобайтовые) знаки в текстовой строке в полноширинные (двухбайтовые). -LEFT = ЛЕВСИМВ ## Возвращает крайние слева знаки текстового значения. -LEFTB = ЛЕВБ ## Возвращает крайние слева знаки текстового значения. -LEN = ДЛСТР ## Возвращает количество знаков в текстовой строке. -LENB = ДЛИНБ ## Возвращает количество знаков в текстовой строке. -LOWER = СТРОЧН ## Преобразует все буквы текста в строчные. -MID = ПСТР ## Возвращает заданное число знаков из строки текста, начиная с указанной позиции. -MIDB = ПСТРБ ## Возвращает заданное число знаков из строки текста, начиная с указанной позиции. -PHONETIC = PHONETIC ## Извлекает фонетические (фуригана) знаки из текстовой строки. -PROPER = ПРОПНАЧ ## Преобразует первую букву в каждом слове текста в прописную. -REPLACE = ЗАМЕНИТЬ ## Заменяет знаки в тексте. -REPLACEB = ЗАМЕНИТЬБ ## Заменяет знаки в тексте. -REPT = ПОВТОР ## Повторяет текст заданное число раз. -RIGHT = ПРАВСИМВ ## Возвращает крайние справа знаки текстовой строки. -RIGHTB = ПРАВБ ## Возвращает крайние справа знаки текстовой строки. -SEARCH = ПОИСК ## Ищет вхождения одного текстового значения в другом (без учета регистра). -SEARCHB = ПОИСКБ ## Ищет вхождения одного текстового значения в другом (без учета регистра). -SUBSTITUTE = ПОДСТАВИТЬ ## Заменяет в текстовой строке старый текст новым. -T = Т ## Преобразует аргументы в текст. -TEXT = ТЕКСТ ## Форматирует число и преобразует его в текст. -TRIM = СЖПРОБЕЛЫ ## Удаляет из текста пробелы. -UPPER = ПРОПИСН ## Преобразует все буквы текста в прописные. -VALUE = ЗНАЧЕН ## Преобразует текстовый аргумент в число. diff --git a/Utils/PHPExcel/locale/sv/config b/Utils/PHPExcel/locale/sv/config deleted file mode 100644 index fe561ff..0000000 --- a/Utils/PHPExcel/locale/sv/config +++ /dev/null @@ -1,49 +0,0 @@ -## -## PHPExcel -## - -## Copyright (c) 2006 - 2013 PHPExcel -## -## This library is free software; you can redistribute it and/or -## modify it under the terms of the GNU Lesser General Public -## License as published by the Free Software Foundation; either -## version 2.1 of the License, or (at your option) any later version. -## -## This library is distributed in the hope that it will be useful, -## but WITHOUT ANY WARRANTY; without even the implied warranty of -## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -## Lesser General Public License for more details. -## -## You should have received a copy of the GNU Lesser General Public -## License along with this library; if not, write to the Free Software -## Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA -## -## @category PHPExcel -## @package PHPExcel_Settings -## @copyright Copyright (c) 2006 - 2013 PHPExcel (http://www.codeplex.com/PHPExcel) -## @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL -## @version ##VERSION##, ##DATE## -## -## - - -ArgumentSeparator = ; - - -## -## (For future use) -## -currencySymbol = kr - - -## -## Excel Error Codes (For future use) - -## -NULL = #Skärning! -DIV0 = #Division/0! -VALUE = #Värdefel! -REF = #Referens! -NAME = #Namn? -NUM = #Ogiltigt! -NA = #Saknas! diff --git a/Utils/PHPExcel/locale/sv/functions b/Utils/PHPExcel/locale/sv/functions deleted file mode 100644 index 73b2deb..0000000 --- a/Utils/PHPExcel/locale/sv/functions +++ /dev/null @@ -1,408 +0,0 @@ -## -## Add-in and Automation functions Tilläggs- och automatiseringsfunktioner -## -GETPIVOTDATA = HÄMTA.PIVOTDATA ## Returnerar data som lagrats i en pivottabellrapport - - -## -## Cube functions Kubfunktioner -## -CUBEKPIMEMBER = KUBKPIMEDLEM ## Returnerar namn, egenskap och mått för en KPI och visar namnet och egenskapen i cellen. En KPI, eller prestandaindikator, är ett kvantifierbart mått, t.ex. månatlig bruttovinst eller personalomsättning per kvartal, som används för att analysera ett företags resultat. -CUBEMEMBER = KUBMEDLEM ## Returnerar en medlem eller ett par i en kubhierarki. Används för att verifiera att medlemmen eller paret finns i kuben. -CUBEMEMBERPROPERTY = KUBMEDLEMSEGENSKAP ## Returnerar värdet för en medlemsegenskap i kuben. Används för att verifiera att ett medlemsnamn finns i kuben, samt för att returnera den angivna egenskapen för medlemmen. -CUBERANKEDMEMBER = KUBRANGORDNADMEDLEM ## Returnerar den n:te, eller rangordnade, medlemmen i en uppsättning. Används för att returnera ett eller flera element i en uppsättning, till exempelvis den bästa försäljaren eller de tio bästa eleverna. -CUBESET = KUBINSTÄLLNING ## Definierar en beräknad uppsättning medlemmar eller par genom att skicka ett bestämt uttryck till kuben på servern, som skapar uppsättningen och sedan returnerar den till Microsoft Office Excel. -CUBESETCOUNT = KUBINSTÄLLNINGANTAL ## Returnerar antalet objekt i en uppsättning. -CUBEVALUE = KUBVÄRDE ## Returnerar ett mängdvärde från en kub. - - -## -## Database functions Databasfunktioner -## -DAVERAGE = DMEDEL ## Returnerar medelvärdet av databasposterna -DCOUNT = DANTAL ## Räknar antalet celler som innehåller tal i en databas -DCOUNTA = DANTALV ## Räknar ifyllda celler i en databas -DGET = DHÄMTA ## Hämtar en enstaka post från en databas som uppfyller de angivna villkoren -DMAX = DMAX ## Returnerar det största värdet från databasposterna -DMIN = DMIN ## Returnerar det minsta värdet från databasposterna -DPRODUCT = DPRODUKT ## Multiplicerar värdena i ett visst fält i poster som uppfyller villkoret -DSTDEV = DSTDAV ## Uppskattar standardavvikelsen baserat på ett urval av databasposterna -DSTDEVP = DSTDAVP ## Beräknar standardavvikelsen utifrån hela populationen av valda databasposter -DSUM = DSUMMA ## Summerar talen i kolumnfält i databasposter som uppfyller villkoret -DVAR = DVARIANS ## Uppskattar variansen baserat på ett urval av databasposterna -DVARP = DVARIANSP ## Beräknar variansen utifrån hela populationen av valda databasposter - - -## -## Date and time functions Tid- och datumfunktioner -## -DATE = DATUM ## Returnerar ett serienummer för ett visst datum -DATEVALUE = DATUMVÄRDE ## Konverterar ett datum i textformat till ett serienummer -DAY = DAG ## Konverterar ett serienummer till dag i månaden -DAYS360 = DAGAR360 ## Beräknar antalet dagar mellan två datum baserat på ett 360-dagarsår -EDATE = EDATUM ## Returnerar serienumret för ett datum som infaller ett visst antal månader före eller efter startdatumet -EOMONTH = SLUTMÅNAD ## Returnerar serienumret för sista dagen i månaden ett visst antal månader tidigare eller senare -HOUR = TIMME ## Konverterar ett serienummer till en timme -MINUTE = MINUT ## Konverterar ett serienummer till en minut -MONTH = MÅNAD ## Konverterar ett serienummer till en månad -NETWORKDAYS = NETTOARBETSDAGAR ## Returnerar antalet hela arbetsdagar mellan två datum -NOW = NU ## Returnerar serienumret för dagens datum och aktuell tid -SECOND = SEKUND ## Konverterar ett serienummer till en sekund -TIME = KLOCKSLAG ## Returnerar serienumret för en viss tid -TIMEVALUE = TIDVÄRDE ## Konverterar en tid i textformat till ett serienummer -TODAY = IDAG ## Returnerar serienumret för dagens datum -WEEKDAY = VECKODAG ## Konverterar ett serienummer till en dag i veckan -WEEKNUM = VECKONR ## Konverterar ett serienummer till ett veckonummer -WORKDAY = ARBETSDAGAR ## Returnerar serienumret för ett datum ett visst antal arbetsdagar tidigare eller senare -YEAR = ÅR ## Konverterar ett serienummer till ett år -YEARFRAC = ÅRDEL ## Returnerar en del av ett år som representerar antalet hela dagar mellan start- och slutdatum - - -## -## Engineering functions Tekniska funktioner -## -BESSELI = BESSELI ## Returnerar den modifierade Bessel-funktionen In(x) -BESSELJ = BESSELJ ## Returnerar Bessel-funktionen Jn(x) -BESSELK = BESSELK ## Returnerar den modifierade Bessel-funktionen Kn(x) -BESSELY = BESSELY ## Returnerar Bessel-funktionen Yn(x) -BIN2DEC = BIN.TILL.DEC ## Omvandlar ett binärt tal till decimalt -BIN2HEX = BIN.TILL.HEX ## Omvandlar ett binärt tal till hexadecimalt -BIN2OCT = BIN.TILL.OKT ## Omvandlar ett binärt tal till oktalt -COMPLEX = KOMPLEX ## Omvandlar reella och imaginära koefficienter till ett komplext tal -CONVERT = KONVERTERA ## Omvandlar ett tal från ett måttsystem till ett annat -DEC2BIN = DEC.TILL.BIN ## Omvandlar ett decimalt tal till binärt -DEC2HEX = DEC.TILL.HEX ## Omvandlar ett decimalt tal till hexadecimalt -DEC2OCT = DEC.TILL.OKT ## Omvandlar ett decimalt tal till oktalt -DELTA = DELTA ## Testar om två värden är lika -ERF = FELF ## Returnerar felfunktionen -ERFC = FELFK ## Returnerar den komplementära felfunktionen -GESTEP = SLSTEG ## Testar om ett tal är större än ett tröskelvärde -HEX2BIN = HEX.TILL.BIN ## Omvandlar ett hexadecimalt tal till binärt -HEX2DEC = HEX.TILL.DEC ## Omvandlar ett hexadecimalt tal till decimalt -HEX2OCT = HEX.TILL.OKT ## Omvandlar ett hexadecimalt tal till oktalt -IMABS = IMABS ## Returnerar absolutvärdet (modulus) för ett komplext tal -IMAGINARY = IMAGINÄR ## Returnerar den imaginära koefficienten för ett komplext tal -IMARGUMENT = IMARGUMENT ## Returnerar det komplexa talets argument, en vinkel uttryckt i radianer -IMCONJUGATE = IMKONJUGAT ## Returnerar det komplexa talets konjugat -IMCOS = IMCOS ## Returnerar cosinus för ett komplext tal -IMDIV = IMDIV ## Returnerar kvoten för två komplexa tal -IMEXP = IMEUPPHÖJT ## Returnerar exponenten för ett komplext tal -IMLN = IMLN ## Returnerar den naturliga logaritmen för ett komplext tal -IMLOG10 = IMLOG10 ## Returnerar 10-logaritmen för ett komplext tal -IMLOG2 = IMLOG2 ## Returnerar 2-logaritmen för ett komplext tal -IMPOWER = IMUPPHÖJT ## Returnerar ett komplext tal upphöjt till en exponent -IMPRODUCT = IMPRODUKT ## Returnerar produkten av komplexa tal -IMREAL = IMREAL ## Returnerar den reella koefficienten för ett komplext tal -IMSIN = IMSIN ## Returnerar sinus för ett komplext tal -IMSQRT = IMROT ## Returnerar kvadratroten av ett komplext tal -IMSUB = IMDIFF ## Returnerar differensen mellan två komplexa tal -IMSUM = IMSUM ## Returnerar summan av komplexa tal -OCT2BIN = OKT.TILL.BIN ## Omvandlar ett oktalt tal till binärt -OCT2DEC = OKT.TILL.DEC ## Omvandlar ett oktalt tal till decimalt -OCT2HEX = OKT.TILL.HEX ## Omvandlar ett oktalt tal till hexadecimalt - - -## -## Financial functions Finansiella funktioner -## -ACCRINT = UPPLRÄNTA ## Returnerar den upplupna räntan för värdepapper med periodisk ränta -ACCRINTM = UPPLOBLRÄNTA ## Returnerar den upplupna räntan för ett värdepapper som ger avkastning på förfallodagen -AMORDEGRC = AMORDEGRC ## Returnerar avskrivningen för varje redovisningsperiod med hjälp av en avskrivningskoefficient -AMORLINC = AMORLINC ## Returnerar avskrivningen för varje redovisningsperiod -COUPDAYBS = KUPDAGBB ## Returnerar antal dagar från början av kupongperioden till likviddagen -COUPDAYS = KUPDAGARS ## Returnerar antalet dagar i kupongperioden som innehåller betalningsdatumet -COUPDAYSNC = KUPDAGNK ## Returnerar antalet dagar från betalningsdatumet till nästa kupongdatum -COUPNCD = KUPNKD ## Returnerar nästa kupongdatum efter likviddagen -COUPNUM = KUPANT ## Returnerar kuponger som förfaller till betalning mellan likviddagen och förfallodagen -COUPPCD = KUPFKD ## Returnerar föregående kupongdatum före likviddagen -CUMIPMT = KUMRÄNTA ## Returnerar den ackumulerade räntan som betalats mellan två perioder -CUMPRINC = KUMPRIS ## Returnerar det ackumulerade kapitalbeloppet som betalats på ett lån mellan två perioder -DB = DB ## Returnerar avskrivningen för en tillgång under en angiven tid enligt metoden för fast degressiv avskrivning -DDB = DEGAVSKR ## Returnerar en tillgångs värdeminskning under en viss period med hjälp av dubbel degressiv avskrivning eller någon annan metod som du anger -DISC = DISK ## Returnerar diskonteringsräntan för ett värdepapper -DOLLARDE = DECTAL ## Omvandlar ett pris uttryckt som ett bråk till ett decimaltal -DOLLARFR = BRÅK ## Omvandlar ett pris i kronor uttryckt som ett decimaltal till ett bråk -DURATION = LÖPTID ## Returnerar den årliga löptiden för en säkerhet med periodiska räntebetalningar -EFFECT = EFFRÄNTA ## Returnerar den årliga effektiva räntesatsen -FV = SLUTVÄRDE ## Returnerar det framtida värdet på en investering -FVSCHEDULE = FÖRRÄNTNING ## Returnerar det framtida värdet av ett begynnelsekapital beräknat på olika räntenivåer -INTRATE = ÅRSRÄNTA ## Returnerar räntesatsen för ett betalt värdepapper -IPMT = RBETALNING ## Returnerar räntedelen av en betalning för en given period -IRR = IR ## Returnerar internräntan för en serie betalningar -ISPMT = RALÅN ## Beräknar räntan som har betalats under en specifik betalningsperiod -MDURATION = MLÖPTID ## Returnerar den modifierade Macauley-löptiden för ett värdepapper med det antagna nominella värdet 100 kr -MIRR = MODIR ## Returnerar internräntan där positiva och negativa betalningar finansieras med olika räntor -NOMINAL = NOMRÄNTA ## Returnerar den årliga nominella räntesatsen -NPER = PERIODER ## Returnerar antalet perioder för en investering -NPV = NETNUVÄRDE ## Returnerar nuvärdet av en serie periodiska betalningar vid en given diskonteringsränta -ODDFPRICE = UDDAFPRIS ## Returnerar priset per 100 kr nominellt värde för ett värdepapper med en udda första period -ODDFYIELD = UDDAFAVKASTNING ## Returnerar avkastningen för en säkerhet med en udda första period -ODDLPRICE = UDDASPRIS ## Returnerar priset per 100 kr nominellt värde för ett värdepapper med en udda sista period -ODDLYIELD = UDDASAVKASTNING ## Returnerar avkastningen för en säkerhet med en udda sista period -PMT = BETALNING ## Returnerar den periodiska betalningen för en annuitet -PPMT = AMORT ## Returnerar amorteringsdelen av en annuitetsbetalning för en given period -PRICE = PRIS ## Returnerar priset per 100 kr nominellt värde för ett värdepapper som ger periodisk ränta -PRICEDISC = PRISDISK ## Returnerar priset per 100 kr nominellt värde för ett diskonterat värdepapper -PRICEMAT = PRISFÖRF ## Returnerar priset per 100 kr nominellt värde för ett värdepapper som ger ränta på förfallodagen -PV = PV ## Returnerar nuvärdet av en serie lika stora periodiska betalningar -RATE = RÄNTA ## Returnerar räntesatsen per period i en annuitet -RECEIVED = BELOPP ## Returnerar beloppet som utdelas på förfallodagen för ett betalat värdepapper -SLN = LINAVSKR ## Returnerar den linjära avskrivningen för en tillgång under en period -SYD = ÅRSAVSKR ## Returnerar den årliga avskrivningssumman för en tillgång under en angiven period -TBILLEQ = SSVXEKV ## Returnerar avkastningen motsvarande en obligation för en statsskuldväxel -TBILLPRICE = SSVXPRIS ## Returnerar priset per 100 kr nominellt värde för en statsskuldväxel -TBILLYIELD = SSVXRÄNTA ## Returnerar avkastningen för en statsskuldväxel -VDB = VDEGRAVSKR ## Returnerar avskrivningen för en tillgång under en angiven period (med degressiv avskrivning) -XIRR = XIRR ## Returnerar internräntan för en serie betalningar som inte nödvändigtvis är periodiska -XNPV = XNUVÄRDE ## Returnerar det nuvarande nettovärdet för en serie betalningar som inte nödvändigtvis är periodiska -YIELD = NOMAVK ## Returnerar avkastningen för ett värdepapper som ger periodisk ränta -YIELDDISC = NOMAVKDISK ## Returnerar den årliga avkastningen för diskonterade värdepapper, exempelvis en statsskuldväxel -YIELDMAT = NOMAVKFÖRF ## Returnerar den årliga avkastningen för ett värdepapper som ger ränta på förfallodagen - - -## -## Information functions Informationsfunktioner -## -CELL = CELL ## Returnerar information om formatering, plats och innehåll i en cell -ERROR.TYPE = FEL.TYP ## Returnerar ett tal som motsvarar ett felvärde -INFO = INFO ## Returnerar information om operativsystemet -ISBLANK = ÄRREF ## Returnerar SANT om värdet är tomt -ISERR = Ä ## Returnerar SANT om värdet är ett felvärde annat än #SAKNAS! -ISERROR = ÄRFEL ## Returnerar SANT om värdet är ett felvärde -ISEVEN = ÄRJÄMN ## Returnerar SANT om talet är jämnt -ISLOGICAL = ÄREJTEXT ## Returnerar SANT om värdet är ett logiskt värde -ISNA = ÄRLOGISK ## Returnerar SANT om värdet är felvärdet #SAKNAS! -ISNONTEXT = ÄRSAKNAD ## Returnerar SANT om värdet inte är text -ISNUMBER = ÄRTAL ## Returnerar SANT om värdet är ett tal -ISODD = ÄRUDDA ## Returnerar SANT om talet är udda -ISREF = ÄRTOM ## Returnerar SANT om värdet är en referens -ISTEXT = ÄRTEXT ## Returnerar SANT om värdet är text -N = N ## Returnerar ett värde omvandlat till ett tal -NA = SAKNAS ## Returnerar felvärdet #SAKNAS! -TYPE = VÄRDETYP ## Returnerar ett tal som anger värdets datatyp - - -## -## Logical functions Logiska funktioner -## -AND = OCH ## Returnerar SANT om alla argument är sanna -FALSE = FALSKT ## Returnerar det logiska värdet FALSKT -IF = OM ## Anger vilket logiskt test som ska utföras -IFERROR = OMFEL ## Returnerar ett värde som du anger om en formel utvärderar till ett fel; annars returneras resultatet av formeln -NOT = ICKE ## Inverterar logiken för argumenten -OR = ELLER ## Returnerar SANT om något argument är SANT -TRUE = SANT ## Returnerar det logiska värdet SANT - - -## -## Lookup and reference functions Sök- och referensfunktioner -## -ADDRESS = ADRESS ## Returnerar en referens som text till en enstaka cell i ett kalkylblad -AREAS = OMRÅDEN ## Returnerar antalet områden i en referens -CHOOSE = VÄLJ ## Väljer ett värde i en lista över värden -COLUMN = KOLUMN ## Returnerar kolumnnumret för en referens -COLUMNS = KOLUMNER ## Returnerar antalet kolumner i en referens -HLOOKUP = LETAKOLUMN ## Söker i den översta raden i en matris och returnerar värdet för angiven cell -HYPERLINK = HYPERLÄNK ## Skapar en genväg eller ett hopp till ett dokument i nätverket, i ett intranät eller på Internet -INDEX = INDEX ## Använder ett index för ett välja ett värde i en referens eller matris -INDIRECT = INDIREKT ## Returnerar en referens som anges av ett textvärde -LOOKUP = LETAUPP ## Letar upp värden i en vektor eller matris -MATCH = PASSA ## Letar upp värden i en referens eller matris -OFFSET = FÖRSKJUTNING ## Returnerar en referens förskjuten i förhållande till en given referens -ROW = RAD ## Returnerar radnumret för en referens -ROWS = RADER ## Returnerar antalet rader i en referens -RTD = RTD ## Hämtar realtidsdata från ett program som stöder COM-automation (Automation: Ett sätt att arbeta med ett programs objekt från ett annat program eller utvecklingsverktyg. Detta kallades tidigare för OLE Automation, och är en branschstandard och ingår i Component Object Model (COM).) -TRANSPOSE = TRANSPONERA ## Transponerar en matris -VLOOKUP = LETARAD ## Letar i den första kolumnen i en matris och flyttar över raden för att returnera värdet för en cell - - -## -## Math and trigonometry functions Matematiska och trigonometriska funktioner -## -ABS = ABS ## Returnerar absolutvärdet av ett tal -ACOS = ARCCOS ## Returnerar arcus cosinus för ett tal -ACOSH = ARCCOSH ## Returnerar inverterad hyperbolisk cosinus för ett tal -ASIN = ARCSIN ## Returnerar arcus cosinus för ett tal -ASINH = ARCSINH ## Returnerar hyperbolisk arcus sinus för ett tal -ATAN = ARCTAN ## Returnerar arcus tangens för ett tal -ATAN2 = ARCTAN2 ## Returnerar arcus tangens för en x- och en y- koordinat -ATANH = ARCTANH ## Returnerar hyperbolisk arcus tangens för ett tal -CEILING = RUNDA.UPP ## Avrundar ett tal till närmaste heltal eller närmaste signifikanta multipel -COMBIN = KOMBIN ## Returnerar antalet kombinationer för ett givet antal objekt -COS = COS ## Returnerar cosinus för ett tal -COSH = COSH ## Returnerar hyperboliskt cosinus för ett tal -DEGREES = GRADER ## Omvandlar radianer till grader -EVEN = JÄMN ## Avrundar ett tal uppåt till närmaste heltal -EXP = EXP ## Returnerar e upphöjt till ett givet tal -FACT = FAKULTET ## Returnerar fakulteten för ett tal -FACTDOUBLE = DUBBELFAKULTET ## Returnerar dubbelfakulteten för ett tal -FLOOR = RUNDA.NED ## Avrundar ett tal nedåt mot noll -GCD = SGD ## Returnerar den största gemensamma nämnaren -INT = HELTAL ## Avrundar ett tal nedåt till närmaste heltal -LCM = MGM ## Returnerar den minsta gemensamma multipeln -LN = LN ## Returnerar den naturliga logaritmen för ett tal -LOG = LOG ## Returnerar logaritmen för ett tal för en given bas -LOG10 = LOG10 ## Returnerar 10-logaritmen för ett tal -MDETERM = MDETERM ## Returnerar matrisen som är avgörandet av en matris -MINVERSE = MINVERT ## Returnerar matrisinversen av en matris -MMULT = MMULT ## Returnerar matrisprodukten av två matriser -MOD = REST ## Returnerar resten vid en division -MROUND = MAVRUNDA ## Returnerar ett tal avrundat till en given multipel -MULTINOMIAL = MULTINOMIAL ## Returnerar multinomialen för en uppsättning tal -ODD = UDDA ## Avrundar ett tal uppåt till närmaste udda heltal -PI = PI ## Returnerar värdet pi -POWER = UPPHÖJT.TILL ## Returnerar resultatet av ett tal upphöjt till en exponent -PRODUCT = PRODUKT ## Multiplicerar argumenten -QUOTIENT = KVOT ## Returnerar heltalsdelen av en division -RADIANS = RADIANER ## Omvandlar grader till radianer -RAND = SLUMP ## Returnerar ett slumptal mellan 0 och 1 -RANDBETWEEN = SLUMP.MELLAN ## Returnerar ett slumptal mellan de tal som du anger -ROMAN = ROMERSK ## Omvandlar vanliga (arabiska) siffror till romerska som text -ROUND = AVRUNDA ## Avrundar ett tal till ett angivet antal siffror -ROUNDDOWN = AVRUNDA.NEDÅT ## Avrundar ett tal nedåt mot noll -ROUNDUP = AVRUNDA.UPPÅT ## Avrundar ett tal uppåt, från noll -SERIESSUM = SERIESUMMA ## Returnerar summan av en potensserie baserat på formeln -SIGN = TECKEN ## Returnerar tecknet för ett tal -SIN = SIN ## Returnerar sinus för en given vinkel -SINH = SINH ## Returnerar hyperbolisk sinus för ett tal -SQRT = ROT ## Returnerar den positiva kvadratroten -SQRTPI = ROTPI ## Returnerar kvadratroten för (tal * pi) -SUBTOTAL = DELSUMMA ## Returnerar en delsumma i en lista eller databas -SUM = SUMMA ## Summerar argumenten -SUMIF = SUMMA.OM ## Summerar celler enligt ett angivet villkor -SUMIFS = SUMMA.OMF ## Lägger till cellerna i ett område som uppfyller flera kriterier -SUMPRODUCT = PRODUKTSUMMA ## Returnerar summan av produkterna i motsvarande matriskomponenter -SUMSQ = KVADRATSUMMA ## Returnerar summan av argumentens kvadrater -SUMX2MY2 = SUMMAX2MY2 ## Returnerar summan av differensen mellan kvadraterna för motsvarande värden i två matriser -SUMX2PY2 = SUMMAX2PY2 ## Returnerar summan av summan av kvadraterna av motsvarande värden i två matriser -SUMXMY2 = SUMMAXMY2 ## Returnerar summan av kvadraten av skillnaden mellan motsvarande värden i två matriser -TAN = TAN ## Returnerar tangens för ett tal -TANH = TANH ## Returnerar hyperbolisk tangens för ett tal -TRUNC = AVKORTA ## Avkortar ett tal till ett heltal - - -## -## Statistical functions Statistiska funktioner -## -AVEDEV = MEDELAVV ## Returnerar medelvärdet för datapunkters absoluta avvikelse från deras medelvärde -AVERAGE = MEDEL ## Returnerar medelvärdet av argumenten -AVERAGEA = AVERAGEA ## Returnerar medelvärdet av argumenten, inklusive tal, text och logiska värden -AVERAGEIF = MEDELOM ## Returnerar medelvärdet (aritmetiskt medelvärde) för alla celler i ett område som uppfyller ett givet kriterium -AVERAGEIFS = MEDELOMF ## Returnerar medelvärdet (det aritmetiska medelvärdet) för alla celler som uppfyller flera villkor. -BETADIST = BETAFÖRD ## Returnerar den kumulativa betafördelningsfunktionen -BETAINV = BETAINV ## Returnerar inversen till den kumulativa fördelningsfunktionen för en viss betafördelning -BINOMDIST = BINOMFÖRD ## Returnerar den individuella binomialfördelningen -CHIDIST = CHI2FÖRD ## Returnerar den ensidiga sannolikheten av c2-fördelningen -CHIINV = CHI2INV ## Returnerar inversen av chi2-fördelningen -CHITEST = CHI2TEST ## Returnerar oberoendetesten -CONFIDENCE = KONFIDENS ## Returnerar konfidensintervallet för en populations medelvärde -CORREL = KORREL ## Returnerar korrelationskoefficienten mellan två datamängder -COUNT = ANTAL ## Räknar hur många tal som finns bland argumenten -COUNTA = ANTALV ## Räknar hur många värden som finns bland argumenten -COUNTBLANK = ANTAL.TOMMA ## Räknar antalet tomma celler i ett område -COUNTIF = ANTAL.OM ## Räknar antalet celler i ett område som uppfyller angivna villkor. -COUNTIFS = ANTAL.OMF ## Räknar antalet celler i ett område som uppfyller flera villkor. -COVAR = KOVAR ## Returnerar kovariansen, d.v.s. medelvärdet av produkterna för parade avvikelser -CRITBINOM = KRITBINOM ## Returnerar det minsta värdet för vilket den kumulativa binomialfördelningen är mindre än eller lika med ett villkorsvärde -DEVSQ = KVADAVV ## Returnerar summan av kvadrater på avvikelser -EXPONDIST = EXPONFÖRD ## Returnerar exponentialfördelningen -FDIST = FFÖRD ## Returnerar F-sannolikhetsfördelningen -FINV = FINV ## Returnerar inversen till F-sannolikhetsfördelningen -FISHER = FISHER ## Returnerar Fisher-transformationen -FISHERINV = FISHERINV ## Returnerar inversen till Fisher-transformationen -FORECAST = PREDIKTION ## Returnerar ett värde längs en linjär trendlinje -FREQUENCY = FREKVENS ## Returnerar en frekvensfördelning som en lodrät matris -FTEST = FTEST ## Returnerar resultatet av en F-test -GAMMADIST = GAMMAFÖRD ## Returnerar gammafördelningen -GAMMAINV = GAMMAINV ## Returnerar inversen till den kumulativa gammafördelningen -GAMMALN = GAMMALN ## Returnerar den naturliga logaritmen för gammafunktionen, G(x) -GEOMEAN = GEOMEDEL ## Returnerar det geometriska medelvärdet -GROWTH = EXPTREND ## Returnerar värden längs en exponentiell trend -HARMEAN = HARMMEDEL ## Returnerar det harmoniska medelvärdet -HYPGEOMDIST = HYPGEOMFÖRD ## Returnerar den hypergeometriska fördelningen -INTERCEPT = SKÄRNINGSPUNKT ## Returnerar skärningspunkten för en linjär regressionslinje -KURT = TOPPIGHET ## Returnerar toppigheten av en mängd data -LARGE = STÖRSTA ## Returnerar det n:te största värdet i en mängd data -LINEST = REGR ## Returnerar parametrar till en linjär trendlinje -LOGEST = EXPREGR ## Returnerar parametrarna i en exponentiell trend -LOGINV = LOGINV ## Returnerar inversen till den lognormala fördelningen -LOGNORMDIST = LOGNORMFÖRD ## Returnerar den kumulativa lognormala fördelningen -MAX = MAX ## Returnerar det största värdet i en lista av argument -MAXA = MAXA ## Returnerar det största värdet i en lista av argument, inklusive tal, text och logiska värden -MEDIAN = MEDIAN ## Returnerar medianen för angivna tal -MIN = MIN ## Returnerar det minsta värdet i en lista med argument -MINA = MINA ## Returnerar det minsta värdet i en lista över argument, inklusive tal, text och logiska värden -MODE = TYPVÄRDE ## Returnerar det vanligaste värdet i en datamängd -NEGBINOMDIST = NEGBINOMFÖRD ## Returnerar den negativa binomialfördelningen -NORMDIST = NORMFÖRD ## Returnerar den kumulativa normalfördelningen -NORMINV = NORMINV ## Returnerar inversen till den kumulativa normalfördelningen -NORMSDIST = NORMSFÖRD ## Returnerar den kumulativa standardnormalfördelningen -NORMSINV = NORMSINV ## Returnerar inversen till den kumulativa standardnormalfördelningen -PEARSON = PEARSON ## Returnerar korrelationskoefficienten till Pearsons momentprodukt -PERCENTILE = PERCENTIL ## Returnerar den n:te percentilen av värden i ett område -PERCENTRANK = PROCENTRANG ## Returnerar procentrangen för ett värde i en datamängd -PERMUT = PERMUT ## Returnerar antal permutationer för ett givet antal objekt -POISSON = POISSON ## Returnerar Poisson-fördelningen -PROB = SANNOLIKHET ## Returnerar sannolikheten att värden i ett område ligger mellan två gränser -QUARTILE = KVARTIL ## Returnerar kvartilen av en mängd data -RANK = RANG ## Returnerar rangordningen för ett tal i en lista med tal -RSQ = RKV ## Returnerar kvadraten av Pearsons produktmomentkorrelationskoefficient -SKEW = SNEDHET ## Returnerar snedheten för en fördelning -SLOPE = LUTNING ## Returnerar lutningen på en linjär regressionslinje -SMALL = MINSTA ## Returnerar det n:te minsta värdet i en mängd data -STANDARDIZE = STANDARDISERA ## Returnerar ett normaliserat värde -STDEV = STDAV ## Uppskattar standardavvikelsen baserat på ett urval -STDEVA = STDEVA ## Uppskattar standardavvikelsen baserat på ett urval, inklusive tal, text och logiska värden -STDEVP = STDAVP ## Beräknar standardavvikelsen baserat på hela populationen -STDEVPA = STDEVPA ## Beräknar standardavvikelsen baserat på hela populationen, inklusive tal, text och logiska värden -STEYX = STDFELYX ## Returnerar standardfelet för ett förutspått y-värde för varje x-värde i regressionen -TDIST = TFÖRD ## Returnerar Students t-fördelning -TINV = TINV ## Returnerar inversen till Students t-fördelning -TREND = TREND ## Returnerar värden längs en linjär trend -TRIMMEAN = TRIMMEDEL ## Returnerar medelvärdet av mittpunkterna i en datamängd -TTEST = TTEST ## Returnerar sannolikheten beräknad ur Students t-test -VAR = VARIANS ## Uppskattar variansen baserat på ett urval -VARA = VARA ## Uppskattar variansen baserat på ett urval, inklusive tal, text och logiska värden -VARP = VARIANSP ## Beräknar variansen baserat på hela populationen -VARPA = VARPA ## Beräknar variansen baserat på hela populationen, inklusive tal, text och logiska värden -WEIBULL = WEIBULL ## Returnerar Weibull-fördelningen -ZTEST = ZTEST ## Returnerar det ensidiga sannolikhetsvärdet av ett z-test - - -## -## Text functions Textfunktioner -## -ASC = ASC ## Ändrar helbredds (dubbel byte) engelska bokstäver eller katakana inom en teckensträng till tecken med halvt breddsteg (enkel byte) -BAHTTEXT = BAHTTEXT ## Omvandlar ett tal till text med valutaformatet ß (baht) -CHAR = TECKENKOD ## Returnerar tecknet som anges av kod -CLEAN = STÄDA ## Tar bort alla icke utskrivbara tecken i en text -CODE = KOD ## Returnerar en numerisk kod för det första tecknet i en textsträng -CONCATENATE = SAMMANFOGA ## Sammanfogar flera textdelar till en textsträng -DOLLAR = VALUTA ## Omvandlar ett tal till text med valutaformat -EXACT = EXAKT ## Kontrollerar om två textvärden är identiska -FIND = HITTA ## Hittar en text i en annan (skiljer på gemener och versaler) -FINDB = HITTAB ## Hittar en text i en annan (skiljer på gemener och versaler) -FIXED = FASTTAL ## Formaterar ett tal som text med ett fast antal decimaler -JIS = JIS ## Ändrar halvbredds (enkel byte) engelska bokstäver eller katakana inom en teckensträng till tecken med helt breddsteg (dubbel byte) -LEFT = VÄNSTER ## Returnerar tecken längst till vänster i en sträng -LEFTB = VÄNSTERB ## Returnerar tecken längst till vänster i en sträng -LEN = LÄNGD ## Returnerar antalet tecken i en textsträng -LENB = LÄNGDB ## Returnerar antalet tecken i en textsträng -LOWER = GEMENER ## Omvandlar text till gemener -MID = EXTEXT ## Returnerar angivet antal tecken från en text med början vid den position som du anger -MIDB = EXTEXTB ## Returnerar angivet antal tecken från en text med början vid den position som du anger -PHONETIC = PHONETIC ## Returnerar de fonetiska (furigana) tecknen i en textsträng -PROPER = INITIAL ## Ändrar första bokstaven i varje ord i ett textvärde till versal -REPLACE = ERSÄTT ## Ersätter tecken i text -REPLACEB = ERSÄTTB ## Ersätter tecken i text -REPT = REP ## Upprepar en text ett bestämt antal gånger -RIGHT = HÖGER ## Returnerar tecken längst till höger i en sträng -RIGHTB = HÖGERB ## Returnerar tecken längst till höger i en sträng -SEARCH = SÖK ## Hittar ett textvärde i ett annat (skiljer inte på gemener och versaler) -SEARCHB = SÖKB ## Hittar ett textvärde i ett annat (skiljer inte på gemener och versaler) -SUBSTITUTE = BYT.UT ## Ersätter gammal text med ny text i en textsträng -T = T ## Omvandlar argumenten till text -TEXT = TEXT ## Formaterar ett tal och omvandlar det till text -TRIM = RENSA ## Tar bort blanksteg från text -UPPER = VERSALER ## Omvandlar text till versaler -VALUE = TEXTNUM ## Omvandlar ett textargument till ett tal diff --git a/Utils/PHPExcel/locale/tr/config b/Utils/PHPExcel/locale/tr/config deleted file mode 100644 index 78ce977..0000000 --- a/Utils/PHPExcel/locale/tr/config +++ /dev/null @@ -1,49 +0,0 @@ -## -## PHPExcel -## - -## Copyright (c) 2006 - 2013 PHPExcel -## -## This library is free software; you can redistribute it and/or -## modify it under the terms of the GNU Lesser General Public -## License as published by the Free Software Foundation; either -## version 2.1 of the License, or (at your option) any later version. -## -## This library is distributed in the hope that it will be useful, -## but WITHOUT ANY WARRANTY; without even the implied warranty of -## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -## Lesser General Public License for more details. -## -## You should have received a copy of the GNU Lesser General Public -## License along with this library; if not, write to the Free Software -## Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA -## -## @category PHPExcel -## @package PHPExcel_Settings -## @copyright Copyright (c) 2006 - 2013 PHPExcel (http://www.codeplex.com/PHPExcel) -## @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL -## @version ##VERSION##, ##DATE## -## -## - - -ArgumentSeparator = ; - - -## -## (For future use) -## -currencySymbol = YTL - - -## -## Excel Error Codes (For future use) - -## -NULL = #BOŞ! -DIV0 = #SAYI/0! -VALUE = #DEĞER! -REF = #BAŞV! -NAME = #AD? -NUM = #SAYI! -NA = #YOK diff --git a/Utils/PHPExcel/locale/tr/functions b/Utils/PHPExcel/locale/tr/functions deleted file mode 100644 index 5a69116..0000000 --- a/Utils/PHPExcel/locale/tr/functions +++ /dev/null @@ -1,439 +0,0 @@ -## -## PHPExcel -## - -## Copyright (c) 2006 - 2013 PHPExcel -## -## This library is free software; you can redistribute it and/or -## modify it under the terms of the GNU Lesser General Public -## License as published by the Free Software Foundation; either -## version 2.1 of the License, or (at your option) any later version. -## -## This library is distributed in the hope that it will be useful, -## but WITHOUT ANY WARRANTY; without even the implied warranty of -## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -## Lesser General Public License for more details. -## -## You should have received a copy of the GNU Lesser General Public -## License along with this library; if not, write to the Free Software -## Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA -## -## @category PHPExcel -## @package PHPExcel_Calculation -## @copyright Copyright (c) 2006 - 2013 PHPExcel (http://www.codeplex.com/PHPExcel) -## @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL -## @version ##VERSION##, ##DATE## -## -## Data in this file derived from http://www.piuha.fi/excel-function-name-translation/ -## -## - - -## -## Add-in and Automation functions Eklenti ve Otomasyon fonksiyonları -## -GETPIVOTDATA = ÖZETVERİAL ## Bir Özet Tablo raporunda saklanan verileri verir. - - -## -## Cube functions Küp işlevleri -## -CUBEKPIMEMBER = KÜPKPIÜYE ## Kilit performans göstergesi (KPI-Key Performance Indicator) adını, özelliğini ve ölçüsünü verir ve hücredeki ad ve özelliği gösterir. KPI, bir kurumun performansını izlemek için kullanılan aylık brüt kâr ya da üç aylık çalışan giriş çıkışları gibi ölçülebilen bir birimdir. -CUBEMEMBER = KÜPÜYE ## Bir küp hiyerarşisinde bir üyeyi veya kaydı verir. Üye veya kaydın küpte varolduğunu doğrulamak için kullanılır. -CUBEMEMBERPROPERTY = KÜPÜYEÖZELLİĞİ ## Bir küpte bir üyenin özelliğinin değerini verir. Küp içinde üye adının varlığını doğrulamak ve bu üyenin belli özelliklerini getirmek için kullanılır. -CUBERANKEDMEMBER = KÜPÜYESIRASI ## Bir küme içindeki üyenin derecesini veya kaçıncı olduğunu verir. En iyi satış elemanı, veya en iyi on öğrenci gibi bir kümedeki bir veya daha fazla öğeyi getirmek için kullanılır. -CUBESET = KÜPKÜME ## Kümeyi oluşturan ve ardından bu kümeyi Microsoft Office Excel'e getiren sunucudaki küpe küme ifadelerini göndererek hesaplanan üye veya kayıt kümesini tanımlar. -CUBESETCOUNT = KÜPKÜMESAY ## Bir kümedeki öğelerin sayısını getirir. -CUBEVALUE = KÜPDEĞER ## Bir küpten toplam değeri getirir. - - -## -## Database functions Veritabanı işlevleri -## -DAVERAGE = VSEÇORT ## Seçili veritabanı girdilerinin ortalamasını verir. -DCOUNT = VSEÇSAY ## Veritabanında sayı içeren hücre sayısını hesaplar. -DCOUNTA = VSEÇSAYDOLU ## Veritabanındaki boş olmayan hücreleri sayar. -DGET = VAL ## Veritabanından, belirtilen ölçütlerle eşleşen tek bir rapor çıkarır. -DMAX = VSEÇMAK ## Seçili veritabanı girişlerinin en yüksek değerini verir. -DMIN = VSEÇMİN ## Seçili veritabanı girişlerinin en düşük değerini verir. -DPRODUCT = VSEÇÇARP ## Kayıtların belli bir alanında bulunan, bir veritabanındaki ölçütlerle eşleşen değerleri çarpar. -DSTDEV = VSEÇSTDSAPMA ## Seçili veritabanı girişlerinden oluşan bir örneğe dayanarak, standart sapmayı tahmin eder. -DSTDEVP = VSEÇSTDSAPMAS ## Standart sapmayı, seçili veritabanı girişlerinin tüm popülasyonunu esas alarak hesaplar. -DSUM = VSEÇTOPLA ## Kayıtların alan sütununda bulunan, ölçütle eşleşen sayıları toplar. -DVAR = VSEÇVAR ## Seçili veritabanı girişlerinden oluşan bir örneği esas alarak farkı tahmin eder. -DVARP = VSEÇVARS ## Seçili veritabanı girişlerinin tüm popülasyonunu esas alarak farkı hesaplar. - - -## -## Date and time functions Tarih ve saat işlevleri -## -DATE = TARİH ## Belirli bir tarihin seri numarasını verir. -DATEVALUE = TARİHSAYISI ## Metin biçimindeki bir tarihi seri numarasına dönüştürür. -DAY = GÜN ## Seri numarasını, ayın bir gününe dönüştürür. -DAYS360 = GÜN360 ## İki tarih arasındaki gün sayısını, 360 günlük yılı esas alarak hesaplar. -EDATE = SERİTARİH ## Başlangıç tarihinden itibaren, belirtilen ay sayısından önce veya sonraki tarihin seri numarasını verir. -EOMONTH = SERİAY ## Belirtilen sayıda ay önce veya sonraki ayın son gününün seri numarasını verir. -HOUR = SAAT ## Bir seri numarasını saate dönüştürür. -MINUTE = DAKİKA ## Bir seri numarasını dakikaya dönüştürür. -MONTH = AY ## Bir seri numarasını aya dönüştürür. -NETWORKDAYS = TAMİŞGÜNÜ ## İki tarih arasındaki tam çalışma günlerinin sayısını verir. -NOW = ŞİMDİ ## Geçerli tarihin ve saatin seri numarasını verir. -SECOND = SANİYE ## Bir seri numarasını saniyeye dönüştürür. -TIME = ZAMAN ## Belirli bir zamanın seri numarasını verir. -TIMEVALUE = ZAMANSAYISI ## Metin biçimindeki zamanı seri numarasına dönüştürür. -TODAY = BUGÜN ## Bugünün tarihini seri numarasına dönüştürür. -WEEKDAY = HAFTANINGÜNÜ ## Bir seri numarasını, haftanın gününe dönüştürür. -WEEKNUM = HAFTASAY ## Dizisel değerini, haftanın yıl içinde bulunduğu konumu sayısal olarak gösteren sayıya dönüştürür. -WORKDAY = İŞGÜNÜ ## Belirtilen sayıda çalışma günü öncesinin ya da sonrasının tarihinin seri numarasını verir. -YEAR = YIL ## Bir seri numarasını yıla dönüştürür. -YEARFRAC = YILORAN ## Başlangıç_tarihi ve bitiş_tarihi arasındaki tam günleri gösteren yıl kesrini verir. - - -## -## Engineering functions Mühendislik işlevleri -## -BESSELI = BESSELI ## Değiştirilmiş Bessel fonksiyonu In(x)'i verir. -BESSELJ = BESSELJ ## Bessel fonksiyonu Jn(x)'i verir. -BESSELK = BESSELK ## Değiştirilmiş Bessel fonksiyonu Kn(x)'i verir. -BESSELY = BESSELY ## Bessel fonksiyonu Yn(x)'i verir. -BIN2DEC = BIN2DEC ## İkili bir sayıyı, ondalık sayıya dönüştürür. -BIN2HEX = BIN2HEX ## İkili bir sayıyı, onaltılıya dönüştürür. -BIN2OCT = BIN2OCT ## İkili bir sayıyı, sekizliye dönüştürür. -COMPLEX = KARMAŞIK ## Gerçek ve sanal katsayıları, karmaşık sayıya dönüştürür. -CONVERT = ÇEVİR ## Bir sayıyı, bir ölçüm sisteminden bir başka ölçüm sistemine dönüştürür. -DEC2BIN = DEC2BIN ## Ondalık bir sayıyı, ikiliye dönüştürür. -DEC2HEX = DEC2HEX ## Ondalık bir sayıyı, onaltılıya dönüştürür. -DEC2OCT = DEC2OCT ## Ondalık bir sayıyı sekizliğe dönüştürür. -DELTA = DELTA ## İki değerin eşit olup olmadığını sınar. -ERF = HATAİŞLEV ## Hata işlevini verir. -ERFC = TÜMHATAİŞLEV ## Tümleyici hata işlevini verir. -GESTEP = BESINIR ## Bir sayının eşik değerinden büyük olup olmadığını sınar. -HEX2BIN = HEX2BIN ## Onaltılı bir sayıyı ikiliye dönüştürür. -HEX2DEC = HEX2DEC ## Onaltılı bir sayıyı ondalığa dönüştürür. -HEX2OCT = HEX2OCT ## Onaltılı bir sayıyı sekizliğe dönüştürür. -IMABS = SANMUTLAK ## Karmaşık bir sayının mutlak değerini (modül) verir. -IMAGINARY = SANAL ## Karmaşık bir sayının sanal katsayısını verir. -IMARGUMENT = SANBAĞ_DEĞİŞKEN ## Radyanlarla belirtilen bir açı olan teta bağımsız değişkenini verir. -IMCONJUGATE = SANEŞLENEK ## Karmaşık bir sayının karmaşık eşleniğini verir. -IMCOS = SANCOS ## Karmaşık bir sayının kosinüsünü verir. -IMDIV = SANBÖL ## İki karmaşık sayının bölümünü verir. -IMEXP = SANÜS ## Karmaşık bir sayının üssünü verir. -IMLN = SANLN ## Karmaşık bir sayının doğal logaritmasını verir. -IMLOG10 = SANLOG10 ## Karmaşık bir sayının, 10 tabanında logaritmasını verir. -IMLOG2 = SANLOG2 ## Karmaşık bir sayının 2 tabanında logaritmasını verir. -IMPOWER = SANÜSSÜ ## Karmaşık bir sayıyı, bir tamsayı üssüne yükseltilmiş olarak verir. -IMPRODUCT = SANÇARP ## Karmaşık sayıların çarpımını verir. -IMREAL = SANGERÇEK ## Karmaşık bir sayının, gerçek katsayısını verir. -IMSIN = SANSIN ## Karmaşık bir sayının sinüsünü verir. -IMSQRT = SANKAREKÖK ## Karmaşık bir sayının karekökünü verir. -IMSUB = SANÇIKAR ## İki karmaşık sayının farkını verir. -IMSUM = SANTOPLA ## Karmaşık sayıların toplamını verir. -OCT2BIN = OCT2BIN ## Sekizli bir sayıyı ikiliye dönüştürür. -OCT2DEC = OCT2DEC ## Sekizli bir sayıyı ondalığa dönüştürür. -OCT2HEX = OCT2HEX ## Sekizli bir sayıyı onaltılıya dönüştürür. - - -## -## Financial functions Finansal fonksiyonlar -## -ACCRINT = GERÇEKFAİZ ## Dönemsel faiz ödeyen hisse senedine ilişkin tahakkuk eden faizi getirir. -ACCRINTM = GERÇEKFAİZV ## Vadesinde ödeme yapan bir tahvilin tahakkuk etmiş faizini verir. -AMORDEGRC = AMORDEGRC ## Yıpranma katsayısı kullanarak her hesap döneminin değer kaybını verir. -AMORLINC = AMORLINC ## Her hesap dönemi içindeki yıpranmayı verir. -COUPDAYBS = KUPONGÜNBD ## Kupon süresinin başlangıcından alış tarihine kadar olan süredeki gün sayısını verir. -COUPDAYS = KUPONGÜN ## Kupon süresindeki, gün sayısını, alış tarihini de içermek üzere, verir. -COUPDAYSNC = KUPONGÜNDSK ## Alış tarihinden bir sonraki kupon tarihine kadar olan gün sayısını verir. -COUPNCD = KUPONGÜNSKT ## Alış tarihinden bir sonraki kupon tarihini verir. -COUPNUM = KUPONSAYI ## Alış tarihiyle vade tarihi arasında ödenecek kuponların sayısını verir. -COUPPCD = KUPONGÜNÖKT ## Alış tarihinden bir önceki kupon tarihini verir. -CUMIPMT = AİÇVERİMORANI ## İki dönem arasında ödenen kümülatif faizi verir. -CUMPRINC = ANA_PARA_ÖDEMESİ ## İki dönem arasında bir borç üzerine ödenen birikimli temeli verir. -DB = AZALANBAKİYE ## Bir malın belirtilen bir süre içindeki yıpranmasını, sabit azalan bakiye yöntemini kullanarak verir. -DDB = ÇİFTAZALANBAKİYE ## Bir malın belirtilen bir süre içindeki yıpranmasını, çift azalan bakiye yöntemi ya da sizin belirttiğiniz başka bir yöntemi kullanarak verir. -DISC = İNDİRİM ## Bir tahvilin indirim oranını verir. -DOLLARDE = LİRAON ## Kesir olarak tanımlanmış lira fiyatını, ondalık sayı olarak tanımlanmış lira fiyatına dönüştürür. -DOLLARFR = LİRAKES ## Ondalık sayı olarak tanımlanmış lira fiyatını, kesir olarak tanımlanmış lira fiyatına dönüştürür. -DURATION = SÜRE ## Belli aralıklarla faiz ödemesi yapan bir tahvilin yıllık süresini verir. -EFFECT = ETKİN ## Efektif yıllık faiz oranını verir. -FV = ANBD ## Bir yatırımın gelecekteki değerini verir. -FVSCHEDULE = GDPROGRAM ## Bir seri birleşik faiz oranı uyguladıktan sonra, bir başlangıçtaki anaparanın gelecekteki değerini verir. -INTRATE = FAİZORANI ## Tam olarak yatırım yapılmış bir tahvilin faiz oranını verir. -IPMT = FAİZTUTARI ## Bir yatırımın verilen bir süre için faiz ödemesini verir. -IRR = İÇ_VERİM_ORANI ## Bir para akışı serisi için, iç verim oranını verir. -ISPMT = ISPMT ## Yatırımın belirli bir dönemi boyunca ödenen faizi hesaplar. -MDURATION = MSÜRE ## Varsayılan par değeri 10.000.000 lira olan bir tahvil için Macauley değiştirilmiş süreyi verir. -MIRR = D_İÇ_VERİM_ORANI ## Pozitif ve negatif para akışlarının farklı oranlarda finanse edildiği durumlarda, iç verim oranını verir. -NOMINAL = NOMİNAL ## Yıllık nominal faiz oranını verir. -NPER = DÖNEM_SAYISI ## Bir yatırımın dönem sayısını verir. -NPV = NBD ## Bir yatırımın bugünkü net değerini, bir dönemsel para akışları serisine ve bir indirim oranına bağlı olarak verir. -ODDFPRICE = TEKYDEĞER ## Tek bir ilk dönemi olan bir tahvilin değerini, her 100.000.000 lirada bir verir. -ODDFYIELD = TEKYÖDEME ## Tek bir ilk dönemi olan bir tahvilin ödemesini verir. -ODDLPRICE = TEKSDEĞER ## Tek bir son dönemi olan bir tahvilin fiyatını her 10.000.000 lirada bir verir. -ODDLYIELD = TEKSÖDEME ## Tek bir son dönemi olan bir tahvilin ödemesini verir. -PMT = DEVRESEL_ÖDEME ## Bir yıllık dönemsel ödemeyi verir. -PPMT = ANA_PARA_ÖDEMESİ ## Verilen bir süre için, bir yatırımın anaparasına dayanan ödemeyi verir. -PRICE = DEĞER ## Dönemsel faiz ödeyen bir tahvilin fiyatını 10.000.00 liralık değer başına verir. -PRICEDISC = DEĞERİND ## İndirimli bir tahvilin fiyatını 10.000.000 liralık nominal değer başına verir. -PRICEMAT = DEĞERVADE ## Faizini vade sonunda ödeyen bir tahvilin fiyatını 10.000.000 nominal değer başına verir. -PV = BD ## Bir yatırımın bugünkü değerini verir. -RATE = FAİZ_ORANI ## Bir yıllık dönem başına düşen faiz oranını verir. -RECEIVED = GETİRİ ## Tam olarak yatırılmış bir tahvilin vadesinin bitiminde alınan miktarı verir. -SLN = DA ## Bir malın bir dönem içindeki doğrusal yıpranmasını verir. -SYD = YAT ## Bir malın belirli bir dönem için olan amortismanını verir. -TBILLEQ = HTAHEŞ ## Bir Hazine bonosunun bono eşdeğeri ödemesini verir. -TBILLPRICE = HTAHDEĞER ## Bir Hazine bonosunun değerini, 10.000.000 liralık nominal değer başına verir. -TBILLYIELD = HTAHÖDEME ## Bir Hazine bonosunun ödemesini verir. -VDB = DAB ## Bir malın amortismanını, belirlenmiş ya da kısmi bir dönem için, bir azalan bakiye yöntemi kullanarak verir. -XIRR = AİÇVERİMORANI ## Dönemsel olması gerekmeyen bir para akışları programı için, iç verim oranını verir. -XNPV = ANBD ## Dönemsel olması gerekmeyen bir para akışları programı için, bugünkü net değeri verir. -YIELD = ÖDEME ## Belirli aralıklarla faiz ödeyen bir tahvilin ödemesini verir. -YIELDDISC = ÖDEMEİND ## İndirimli bir tahvilin yıllık ödemesini verir; örneğin, bir Hazine bonosunun. -YIELDMAT = ÖDEMEVADE ## Vadesinin bitiminde faiz ödeyen bir tahvilin yıllık ödemesini verir. - - -## -## Information functions Bilgi fonksiyonları -## -CELL = HÜCRE ## Bir hücrenin biçimlendirmesi, konumu ya da içeriği hakkında bilgi verir. -ERROR.TYPE = HATA.TİPİ ## Bir hata türüne ilişkin sayıları verir. -INFO = BİLGİ ## Geçerli işletim ortamı hakkında bilgi verir. -ISBLANK = EBOŞSA ## Değer boşsa, DOĞRU verir. -ISERR = EHATA ## Değer, #YOK dışındaki bir hata değeriyse, DOĞRU verir. -ISERROR = EHATALIYSA ## Değer, herhangi bir hata değeriyse, DOĞRU verir. -ISEVEN = ÇİFTTİR ## Sayı çiftse, DOĞRU verir. -ISLOGICAL = EMANTIKSALSA ## Değer, mantıksal bir değerse, DOĞRU verir. -ISNA = EYOKSA ## Değer, #YOK hata değeriyse, DOĞRU verir. -ISNONTEXT = EMETİNDEĞİLSE ## Değer, metin değilse, DOĞRU verir. -ISNUMBER = ESAYIYSA ## Değer, bir sayıysa, DOĞRU verir. -ISODD = TEKTİR ## Sayı tekse, DOĞRU verir. -ISREF = EREFSE ## Değer bir başvuruysa, DOĞRU verir. -ISTEXT = EMETİNSE ## Değer bir metinse DOĞRU verir. -N = N ## Sayıya dönüştürülmüş bir değer verir. -NA = YOKSAY ## #YOK hata değerini verir. -TYPE = TİP ## Bir değerin veri türünü belirten bir sayı verir. - - -## -## Logical functions Mantıksal fonksiyonlar -## -AND = VE ## Bütün bağımsız değişkenleri DOĞRU ise, DOĞRU verir. -FALSE = YANLIŞ ## YANLIŞ mantıksal değerini verir. -IF = EĞER ## Gerçekleştirilecek bir mantıksal sınama belirtir. -IFERROR = EĞERHATA ## Formül hatalıysa belirttiğiniz değeri verir; bunun dışındaki durumlarda formülün sonucunu verir. -NOT = DEĞİL ## Bağımsız değişkeninin mantığını tersine çevirir. -OR = YADA ## Bağımsız değişkenlerden herhangi birisi DOĞRU ise, DOĞRU verir. -TRUE = DOĞRU ## DOĞRU mantıksal değerini verir. - - -## -## Lookup and reference functions Arama ve Başvuru fonksiyonları -## -ADDRESS = ADRES ## Bir başvuruyu, çalışma sayfasındaki tek bir hücreye metin olarak verir. -AREAS = ALANSAY ## Renvoie le nombre de zones dans une référence. -CHOOSE = ELEMAN ## Değerler listesinden bir değer seçer. -COLUMN = SÜTUN ## Bir başvurunun sütun sayısını verir. -COLUMNS = SÜTUNSAY ## Bir başvurudaki sütunların sayısını verir. -HLOOKUP = YATAYARA ## Bir dizinin en üst satırına bakar ve belirtilen hücrenin değerini verir. -HYPERLINK = KÖPRÜ ## Bir ağ sunucusunda, bir intranette ya da Internet'te depolanan bir belgeyi açan bir kısayol ya da atlama oluşturur. -INDEX = İNDİS ## Başvurudan veya diziden bir değer seçmek için, bir dizin kullanır. -INDIRECT = DOLAYLI ## Metin değeriyle belirtilen bir başvuru verir. -LOOKUP = ARA ## Bir vektördeki veya dizideki değerleri arar. -MATCH = KAÇINCI ## Bir başvurudaki veya dizideki değerleri arar. -OFFSET = KAYDIR ## Verilen bir başvurudan, bir başvuru kaydırmayı verir. -ROW = SATIR ## Bir başvurunun satır sayısını verir. -ROWS = SATIRSAY ## Bir başvurudaki satırların sayısını verir. -RTD = RTD ## COM otomasyonunu destekleyen programdan gerçek zaman verileri alır. -TRANSPOSE = DEVRİK_DÖNÜŞÜM ## Bir dizinin devrik dönüşümünü verir. -VLOOKUP = DÜŞEYARA ## Bir dizinin ilk sütununa bakar ve bir hücrenin değerini vermek için satır boyunca hareket eder. - - -## -## Math and trigonometry functions Matematik ve trigonometri fonksiyonları -## -ABS = MUTLAK ## Bir sayının mutlak değerini verir. -ACOS = ACOS ## Bir sayının ark kosinüsünü verir. -ACOSH = ACOSH ## Bir sayının ters hiperbolik kosinüsünü verir. -ASIN = ASİN ## Bir sayının ark sinüsünü verir. -ASINH = ASİNH ## Bir sayının ters hiperbolik sinüsünü verir. -ATAN = ATAN ## Bir sayının ark tanjantını verir. -ATAN2 = ATAN2 ## Ark tanjantı, x- ve y- koordinatlarından verir. -ATANH = ATANH ## Bir sayının ters hiperbolik tanjantını verir. -CEILING = TAVANAYUVARLA ## Bir sayıyı, en yakın tamsayıya ya da en yakın katına yuvarlar. -COMBIN = KOMBİNASYON ## Verilen sayıda öğenin kombinasyon sayısını verir. -COS = COS ## Bir sayının kosinüsünü verir. -COSH = COSH ## Bir sayının hiperbolik kosinüsünü verir. -DEGREES = DERECE ## Radyanları dereceye dönüştürür. -EVEN = ÇİFT ## Bir sayıyı, en yakın daha büyük çift tamsayıya yuvarlar. -EXP = ÜS ## e'yi, verilen bir sayının üssüne yükseltilmiş olarak verir. -FACT = ÇARPINIM ## Bir sayının faktörünü verir. -FACTDOUBLE = ÇİFTFAKTÖR ## Bir sayının çift çarpınımını verir. -FLOOR = TABANAYUVARLA ## Bir sayıyı, daha küçük sayıya, sıfıra yakınsayarak yuvarlar. -GCD = OBEB ## En büyük ortak böleni verir. -INT = TAMSAYI ## Bir sayıyı aşağıya doğru en yakın tamsayıya yuvarlar. -LCM = OKEK ## En küçük ortak katı verir. -LN = LN ## Bir sayının doğal logaritmasını verir. -LOG = LOG ## Bir sayının, belirtilen bir tabandaki logaritmasını verir. -LOG10 = LOG10 ## Bir sayının 10 tabanında logaritmasını verir. -MDETERM = DETERMİNANT ## Bir dizinin dizey determinantını verir. -MINVERSE = DİZEY_TERS ## Bir dizinin dizey tersini verir. -MMULT = DÇARP ## İki dizinin dizey çarpımını verir. -MOD = MODÜLO ## Bölmeden kalanı verir. -MROUND = KYUVARLA ## İstenen kata yuvarlanmış bir sayı verir. -MULTINOMIAL = ÇOKTERİMLİ ## Bir sayılar kümesinin çok terimlisini verir. -ODD = TEK ## Bir sayıyı en yakın daha büyük tek sayıya yuvarlar. -PI = Pİ ## Pi değerini verir. -POWER = KUVVET ## Bir üsse yükseltilmiş sayının sonucunu verir. -PRODUCT = ÇARPIM ## Bağımsız değişkenlerini çarpar. -QUOTIENT = BÖLÜM ## Bir bölme işleminin tamsayı kısmını verir. -RADIANS = RADYAN ## Dereceleri radyanlara dönüştürür. -RAND = S_SAYI_ÜRET ## 0 ile 1 arasında rastgele bir sayı verir. -RANDBETWEEN = RASTGELEARALIK ## Belirttiğiniz sayılar arasında rastgele bir sayı verir. -ROMAN = ROMEN ## Bir normal rakamı, metin olarak, romen rakamına çevirir. -ROUND = YUVARLA ## Bir sayıyı, belirtilen basamak sayısına yuvarlar. -ROUNDDOWN = AŞAĞIYUVARLA ## Bir sayıyı, daha küçük sayıya, sıfıra yakınsayarak yuvarlar. -ROUNDUP = YUKARIYUVARLA ## Bir sayıyı daha büyük sayıya, sıfırdan ıraksayarak yuvarlar. -SERIESSUM = SERİTOPLA ## Bir üs serisinin toplamını, formüle bağlı olarak verir. -SIGN = İŞARET ## Bir sayının işaretini verir. -SIN = SİN ## Verilen bir açının sinüsünü verir. -SINH = SİNH ## Bir sayının hiperbolik sinüsünü verir. -SQRT = KAREKÖK ## Pozitif bir karekök verir. -SQRTPI = KAREKÖKPİ ## (* Pi sayısının) kare kökünü verir. -SUBTOTAL = ALTTOPLAM ## Bir listedeki ya da veritabanındaki bir alt toplamı verir. -SUM = TOPLA ## Bağımsız değişkenlerini toplar. -SUMIF = ETOPLA ## Verilen ölçütle belirlenen hücreleri toplar. -SUMIFS = SUMIFS ## Bir aralıktaki, birden fazla ölçüte uyan hücreleri ekler. -SUMPRODUCT = TOPLA.ÇARPIM ## İlişkili dizi bileşenlerinin çarpımlarının toplamını verir. -SUMSQ = TOPKARE ## Bağımsız değişkenlerin karelerinin toplamını verir. -SUMX2MY2 = TOPX2EY2 ## İki dizideki ilişkili değerlerin farkının toplamını verir. -SUMX2PY2 = TOPX2AY2 ## İki dizideki ilişkili değerlerin karelerinin toplamının toplamını verir. -SUMXMY2 = TOPXEY2 ## İki dizideki ilişkili değerlerin farklarının karelerinin toplamını verir. -TAN = TAN ## Bir sayının tanjantını verir. -TANH = TANH ## Bir sayının hiperbolik tanjantını verir. -TRUNC = NSAT ## Bir sayının, tamsayı durumuna gelecek şekilde, fazlalıklarını atar. - - -## -## Statistical functions İstatistiksel fonksiyonlar -## -AVEDEV = ORTSAP ## Veri noktalarının ortalamalarından mutlak sapmalarının ortalamasını verir. -AVERAGE = ORTALAMA ## Bağımsız değişkenlerinin ortalamasını verir. -AVERAGEA = ORTALAMAA ## Bağımsız değişkenlerinin, sayılar, metin ve mantıksal değerleri içermek üzere ortalamasını verir. -AVERAGEIF = EĞERORTALAMA ## Verili ölçütü karşılayan bir aralıktaki bütün hücrelerin ortalamasını (aritmetik ortalama) hesaplar. -AVERAGEIFS = EĞERLERORTALAMA ## Birden çok ölçüte uyan tüm hücrelerin ortalamasını (aritmetik ortalama) hesaplar. -BETADIST = BETADAĞ ## Beta birikimli dağılım fonksiyonunu verir. -BETAINV = BETATERS ## Belirli bir beta dağılımı için birikimli dağılım fonksiyonunun tersini verir. -BINOMDIST = BİNOMDAĞ ## Tek terimli binom dağılımı olasılığını verir. -CHIDIST = KİKAREDAĞ ## Kikare dağılımın tek kuyruklu olasılığını verir. -CHIINV = KİKARETERS ## Kikare dağılımın kuyruklu olasılığının tersini verir. -CHITEST = KİKARETEST ## Bağımsızlık sınamalarını verir. -CONFIDENCE = GÜVENİRLİK ## Bir popülasyon ortalaması için güvenirlik aralığını verir. -CORREL = KORELASYON ## İki veri kümesi arasındaki bağlantı katsayısını verir. -COUNT = BAĞ_DEĞ_SAY ## Bağımsız değişkenler listesinde kaç tane sayı bulunduğunu sayar. -COUNTA = BAĞ_DEĞ_DOLU_SAY ## Bağımsız değişkenler listesinde kaç tane değer bulunduğunu sayar. -COUNTBLANK = BOŞLUKSAY ## Aralıktaki boş hücre sayısını hesaplar. -COUNTIF = EĞERSAY ## Verilen ölçütlere uyan bir aralık içindeki hücreleri sayar. -COUNTIFS = ÇOKEĞERSAY ## Birden çok ölçüte uyan bir aralık içindeki hücreleri sayar. -COVAR = KOVARYANS ## Eşleştirilmiş sapmaların ortalaması olan kovaryansı verir. -CRITBINOM = KRİTİKBİNOM ## Birikimli binom dağılımının bir ölçüt değerinden küçük veya ölçüt değerine eşit olduğu en küçük değeri verir. -DEVSQ = SAPKARE ## Sapmaların karelerinin toplamını verir. -EXPONDIST = ÜSTELDAĞ ## Üstel dağılımı verir. -FDIST = FDAĞ ## F olasılık dağılımını verir. -FINV = FTERS ## F olasılık dağılımının tersini verir. -FISHER = FISHER ## Fisher dönüşümünü verir. -FISHERINV = FISHERTERS ## Fisher dönüşümünün tersini verir. -FORECAST = TAHMİN ## Bir doğrusal eğilim boyunca bir değer verir. -FREQUENCY = SIKLIK ## Bir sıklık dağılımını, dikey bir dizi olarak verir. -FTEST = FTEST ## Bir F-test'in sonucunu verir. -GAMMADIST = GAMADAĞ ## Gama dağılımını verir. -GAMMAINV = GAMATERS ## Gama kümülatif dağılımının tersini verir. -GAMMALN = GAMALN ## Gama fonksiyonunun (?(x)) doğal logaritmasını verir. -GEOMEAN = GEOORT ## Geometrik ortayı verir. -GROWTH = BÜYÜME ## Üstel bir eğilim boyunca değerler verir. -HARMEAN = HARORT ## Harmonik ortayı verir. -HYPGEOMDIST = HİPERGEOMDAĞ ## Hipergeometrik dağılımı verir. -INTERCEPT = KESMENOKTASI ## Doğrusal çakıştırma çizgisinin kesişme noktasını verir. -KURT = BASIKLIK ## Bir veri kümesinin basıklığını verir. -LARGE = BÜYÜK ## Bir veri kümesinde k. en büyük değeri verir. -LINEST = DOT ## Doğrusal bir eğilimin parametrelerini verir. -LOGEST = LOT ## Üstel bir eğilimin parametrelerini verir. -LOGINV = LOGTERS ## Bir lognormal dağılımının tersini verir. -LOGNORMDIST = LOGNORMDAĞ ## Birikimli lognormal dağılımını verir. -MAX = MAK ## Bir bağımsız değişkenler listesindeki en büyük değeri verir. -MAXA = MAKA ## Bir bağımsız değişkenler listesindeki, sayılar, metin ve mantıksal değerleri içermek üzere, en büyük değeri verir. -MEDIAN = ORTANCA ## Belirtilen sayıların orta değerini verir. -MIN = MİN ## Bir bağımsız değişkenler listesindeki en küçük değeri verir. -MINA = MİNA ## Bir bağımsız değişkenler listesindeki, sayılar, metin ve mantıksal değerleri de içermek üzere, en küçük değeri verir. -MODE = ENÇOK_OLAN ## Bir veri kümesindeki en sık rastlanan değeri verir. -NEGBINOMDIST = NEGBİNOMDAĞ ## Negatif binom dağılımını verir. -NORMDIST = NORMDAĞ ## Normal birikimli dağılımı verir. -NORMINV = NORMTERS ## Normal kümülatif dağılımın tersini verir. -NORMSDIST = NORMSDAĞ ## Standart normal birikimli dağılımı verir. -NORMSINV = NORMSTERS ## Standart normal birikimli dağılımın tersini verir. -PEARSON = PEARSON ## Pearson çarpım moment korelasyon katsayısını verir. -PERCENTILE = YÜZDEBİRLİK ## Bir aralık içerisinde bulunan değerlerin k. frekans toplamını verir. -PERCENTRANK = YÜZDERANK ## Bir veri kümesindeki bir değerin yüzde mertebesini verir. -PERMUT = PERMÜTASYON ## Verilen sayıda nesne için permütasyon sayısını verir. -POISSON = POISSON ## Poisson dağılımını verir. -PROB = OLASILIK ## Bir aralıktaki değerlerin iki sınır arasında olması olasılığını verir. -QUARTILE = DÖRTTEBİRLİK ## Bir veri kümesinin dörtte birliğini verir. -RANK = RANK ## Bir sayılar listesinde bir sayının mertebesini verir. -RSQ = RKARE ## Pearson çarpım moment korelasyon katsayısının karesini verir. -SKEW = ÇARPIKLIK ## Bir dağılımın çarpıklığını verir. -SLOPE = EĞİM ## Doğrusal çakışma çizgisinin eğimini verir. -SMALL = KÜÇÜK ## Bir veri kümesinde k. en küçük değeri verir. -STANDARDIZE = STANDARTLAŞTIRMA ## Normalleştirilmiş bir değer verir. -STDEV = STDSAPMA ## Bir örneğe dayanarak standart sapmayı tahmin eder. -STDEVA = STDSAPMAA ## Standart sapmayı, sayılar, metin ve mantıksal değerleri içermek üzere, bir örneğe bağlı olarak tahmin eder. -STDEVP = STDSAPMAS ## Standart sapmayı, tüm popülasyona bağlı olarak hesaplar. -STDEVPA = STDSAPMASA ## Standart sapmayı, sayılar, metin ve mantıksal değerleri içermek üzere, tüm popülasyona bağlı olarak hesaplar. -STEYX = STHYX ## Regresyondaki her x için tahmini y değerinin standart hatasını verir. -TDIST = TDAĞ ## T-dağılımını verir. -TINV = TTERS ## T-dağılımının tersini verir. -TREND = EĞİLİM ## Doğrusal bir eğilim boyunca değerler verir. -TRIMMEAN = KIRPORTALAMA ## Bir veri kümesinin içinin ortalamasını verir. -TTEST = TTEST ## T-test'le ilişkilendirilmiş olasılığı verir. -VAR = VAR ## Varyansı, bir örneğe bağlı olarak tahmin eder. -VARA = VARA ## Varyansı, sayılar, metin ve mantıksal değerleri içermek üzere, bir örneğe bağlı olarak tahmin eder. -VARP = VARS ## Varyansı, tüm popülasyona dayanarak hesaplar. -VARPA = VARSA ## Varyansı, sayılar, metin ve mantıksal değerleri içermek üzere, tüm popülasyona bağlı olarak hesaplar. -WEIBULL = WEIBULL ## Weibull dağılımını hesaplar. -ZTEST = ZTEST ## Z-testinin tek kuyruklu olasılık değerini hesaplar. - - -## -## Text functions Metin fonksiyonları -## -ASC = ASC ## Bir karakter dizesindeki çift enli (iki bayt) İngilizce harfleri veya katakanayı yarım enli (tek bayt) karakterlerle değiştirir. -BAHTTEXT = BAHTTEXT ## Sayıyı, ß (baht) para birimi biçimini kullanarak metne dönüştürür. -CHAR = DAMGA ## Kod sayısıyla belirtilen karakteri verir. -CLEAN = TEMİZ ## Metindeki bütün yazdırılamaz karakterleri kaldırır. -CODE = KOD ## Bir metin dizesindeki ilk karakter için sayısal bir kod verir. -CONCATENATE = BİRLEŞTİR ## Pek çok metin öğesini bir metin öğesi olarak birleştirir. -DOLLAR = LİRA ## Bir sayıyı YTL (yeni Türk lirası) para birimi biçimini kullanarak metne dönüştürür. -EXACT = ÖZDEŞ ## İki metin değerinin özdeş olup olmadığını anlamak için, değerleri denetler. -FIND = BUL ## Bir metin değerini, bir başkasının içinde bulur (büyük küçük harf duyarlıdır). -FINDB = BULB ## Bir metin değerini, bir başkasının içinde bulur (büyük küçük harf duyarlıdır). -FIXED = SAYIDÜZENLE ## Bir sayıyı, sabit sayıda ondalıkla, metin olarak biçimlendirir. -JIS = JIS ## Bir karakter dizesindeki tek enli (tek bayt) İngilizce harfleri veya katakanayı çift enli (iki bayt) karakterlerle değiştirir. -LEFT = SOL ## Bir metin değerinden en soldaki karakterleri verir. -LEFTB = SOLB ## Bir metin değerinden en soldaki karakterleri verir. -LEN = UZUNLUK ## Bir metin dizesindeki karakter sayısını verir. -LENB = UZUNLUKB ## Bir metin dizesindeki karakter sayısını verir. -LOWER = KÜÇÜKHARF ## Metni küçük harfe çevirir. -MID = ORTA ## Bir metin dizesinden belirli sayıda karakteri, belirttiğiniz konumdan başlamak üzere verir. -MIDB = ORTAB ## Bir metin dizesinden belirli sayıda karakteri, belirttiğiniz konumdan başlamak üzere verir. -PHONETIC = SES ## Metin dizesinden ses (furigana) karakterlerini ayıklar. -PROPER = YAZIM.DÜZENİ ## Bir metin değerinin her bir sözcüğünün ilk harfini büyük harfe çevirir. -REPLACE = DEĞİŞTİR ## Metnin içindeki karakterleri değiştirir. -REPLACEB = DEĞİŞTİRB ## Metnin içindeki karakterleri değiştirir. -REPT = YİNELE ## Metni belirtilen sayıda yineler. -RIGHT = SAĞ ## Bir metin değerinden en sağdaki karakterleri verir. -RIGHTB = SAĞB ## Bir metin değerinden en sağdaki karakterleri verir. -SEARCH = BUL ## Bir metin değerini, bir başkasının içinde bulur (büyük küçük harf duyarlı değildir). -SEARCHB = BULB ## Bir metin değerini, bir başkasının içinde bulur (büyük küçük harf duyarlı değildir). -SUBSTITUTE = YERİNEKOY ## Bir metin dizesinde, eski metnin yerine yeni metin koyar. -T = M ## Bağımsız değerlerini metne dönüştürür. -TEXT = METNEÇEVİR ## Bir sayıyı biçimlendirir ve metne dönüştürür. -TRIM = KIRP ## Metindeki boşlukları kaldırır. -UPPER = BÜYÜKHARF ## Metni büyük harfe çevirir. -VALUE = SAYIYAÇEVİR ## Bir metin bağımsız değişkenini sayıya dönüştürür. diff --git a/Utils/PHPHtmlParser/Autoloader.php b/Utils/PHPHtmlParser/Autoloader.php deleted file mode 100644 index 54fde70..0000000 --- a/Utils/PHPHtmlParser/Autoloader.php +++ /dev/null @@ -1,46 +0,0 @@ -<?php - -PHPHtmlParser_Autoloader::register(); -class PHPHtmlParser_Autoloader { - /** - * Register the Autoloader with SPL - * - */ - public static function register() - { - if (function_exists('__phphtmlparserautoload')) { - // Register any existing autoloader function with SPL, so we don't get any clashes - spl_autoload_register('__phphtmlparserautoload'); - } - // Register ourselves with SPL - if (version_compare(PHP_VERSION, '5.3.0') >= 0) { - return spl_autoload_register(array('PHPHtmlParser_Autoloader', 'load'), true, true); - } else { - return spl_autoload_register(array('PHPHtmlParser_Autoloader', 'load')); - } - } - - /** - * Autoload a class identified by name - * - * @param string $pClassName Name of the object to load - */ - public static function load($pClassName) - { - if ((class_exists($pClassName, false)) || (strpos($pClassName, 'PHPHtmlParser') !== 0)) { - // Either already loaded, or not a PHPHtmlParser class request - return false; - } - - $pClassFilePath = dirname(dirname(__FILE__)) . DIRECTORY_SEPARATOR . - str_replace('\\', DIRECTORY_SEPARATOR, str_replace('_', DIRECTORY_SEPARATOR, $pClassName)) . - '.php'; - - if ((file_exists($pClassFilePath) === false) || (is_readable($pClassFilePath) === false)) { - // Can't load - return false; - } - - require($pClassFilePath); - } -} diff --git a/Utils/PHPHtmlParser/Content.php b/Utils/PHPHtmlParser/Content.php deleted file mode 100644 index aa0dfe5..0000000 --- a/Utils/PHPHtmlParser/Content.php +++ /dev/null @@ -1,252 +0,0 @@ -<?php -namespace PHPHtmlParser; - -/** - * Class Content - * - * @package PHPHtmlParser - */ -class Content -{ - - /** - * The content string. - * - * @var string - */ - protected $content; - - /** - * The size of the content. - * - * @var integer - */ - protected $size; - - /** - * The current position we are in the content. - * - * @var integer - */ - protected $pos; - - /** - * The following 4 strings are tags that are important to us. - * - * @var string - */ - protected $blank = " \t\r\n"; - protected $equal = ' =/>'; - protected $slash = " />\r\n\t"; - protected $attr = ' >'; - - /** - * Content constructor. - * - * @param $content - */ - public function __construct($content) - { - $this->content = $content; - $this->size = strlen($content); - $this->pos = 0; - } - - /** - * Returns the current position of the content. - * - * @return int - */ - public function getPosition() - { - return $this->pos; - } - - /** - * Gets the current character we are at. - * - * @param int $char - * @return string - */ - public function char($char = null) - { - $pos = $this->pos; - if ( ! is_null($char)) { - $pos = $char; - } - - if ( ! isset($this->content[$pos])) { - return ''; - } - - return $this->content[$pos]; - } - - /** - * Moves the current position forward. - * - * @param int $count - * @return $this - */ - public function fastForward($count) - { - $this->pos += $count; - - return $this; - } - - /** - * Moves the current position backward. - * - * @param int $count - * @return $this - */ - public function rewind($count) - { - $this->pos -= $count; - if ($this->pos < 0) { - $this->pos = 0; - } - - return $this; - } - - /** - * Copy the content until we find the given string. - * - * @param string $string - * @param bool $char - * @param bool $escape - * @return string - */ - public function copyUntil($string, $char = false, $escape = false) - { - if ($this->pos >= $this->size) { - // nothing left - return ''; - } - - if ($escape) { - $position = $this->pos; - $found = false; - while ( ! $found) { - $position = strpos($this->content, $string, $position); - if ($position === false) { - // reached the end - $found = true; - continue; - } - - if ($this->char($position - 1) == '\\') { - // this character is escaped - ++$position; - continue; - } - - $found = true; - } - } elseif ($char) { - $position = strcspn($this->content, $string, $this->pos); - $position += $this->pos; - } else { - $position = strpos($this->content, $string, $this->pos); - } - - if ($position === false) { - // could not find character, just return the remaining of the content - $return = substr($this->content, $this->pos, $this->size - $this->pos); - $this->pos = $this->size; - - return $return; - } - - if ($position == $this->pos) { - // we are at the right place - return ''; - } - - $return = substr($this->content, $this->pos, $position - $this->pos); - // set the new position - $this->pos = $position; - - return $return; - } - - /** - * Copies the content until the string is found and return it - * unless the 'unless' is found in the substring. - * - * @param string $string - * @param string $unless - * @return string - */ - public function copyUntilUnless($string, $unless) - { - $lastPos = $this->pos; - $this->fastForward(1); - $foundString = $this->copyUntil($string, true, true); - - $position = strcspn($foundString, $unless); - if ($position == strlen($foundString)) { - return $string.$foundString; - } - // rewind changes and return nothing - $this->pos = $lastPos; - - return ''; - } - - /** - * Copies the content until it reaches the token string., - * - * @param string $token - * @param bool $char - * @param bool $escape - * @return string - * @uses $this->copyUntil() - */ - public function copyByToken($token, $char = false, $escape = false) - { - $string = $this->$token; - - return $this->copyUntil($string, $char, $escape); - } - - /** - * Skip a given set of characters. - * - * @param string $string - * @param bool $copy - * @return $this|string - */ - public function skip($string, $copy = false) - { - $len = strspn($this->content, $string, $this->pos); - - // make it chainable if they don't want a copy - $return = $this; - if ($copy) { - $return = substr($this->content, $this->pos, $len); - } - - // update the position - $this->pos += $len; - - return $return; - } - - /** - * Skip a given token of pre-defined characters. - * - * @param string $token - * @param bool $copy - * @return null|string - * @uses $this->skip() - */ - public function skipByToken($token, $copy = false) - { - $string = $this->$token; - - return $this->skip($string, $copy); - } -} diff --git a/Utils/PHPHtmlParser/Curl.php b/Utils/PHPHtmlParser/Curl.php deleted file mode 100644 index a6fcb95..0000000 --- a/Utils/PHPHtmlParser/Curl.php +++ /dev/null @@ -1,41 +0,0 @@ -<?php -namespace PHPHtmlParser; - -use PHPHtmlParser\Exceptions\CurlException; - -/** - * Class Curl - * - * @package PHPHtmlParser - */ -class Curl implements CurlInterface -{ - - /** - * A simple curl implementation to get the content of the url. - * - * @param string $url - * @return string - * @throws CurlException - */ - public function get($url) - { - $ch = curl_init($url); - - if ( ! ini_get('open_basedir')) { - curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true); - } - - curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); - curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 5); - - $content = curl_exec($ch); - if ($content === false) { - // there was a problem - $error = curl_error($ch); - throw new CurlException('Error retrieving "'.$url.'" ('.$error.')'); - } - - return $content; - } -} diff --git a/Utils/PHPHtmlParser/CurlInterface.php b/Utils/PHPHtmlParser/CurlInterface.php deleted file mode 100644 index 6f3f095..0000000 --- a/Utils/PHPHtmlParser/CurlInterface.php +++ /dev/null @@ -1,19 +0,0 @@ -<?php -namespace PHPHtmlParser; - -/** - * Interface CurlInterface - * - * @package PHPHtmlParser - */ -interface CurlInterface -{ - - /** - * This method should return the content of the url in a string - * - * @param string $url - * @return string - */ - public function get($url); -} diff --git a/Utils/PHPHtmlParser/Dom.php b/Utils/PHPHtmlParser/Dom.php deleted file mode 100644 index f3e17ff..0000000 --- a/Utils/PHPHtmlParser/Dom.php +++ /dev/null @@ -1,648 +0,0 @@ -<?php -namespace PHPHtmlParser; - -use PHPHtmlParser\Dom\AbstractNode; -use PHPHtmlParser\Dom\HtmlNode; -use PHPHtmlParser\Dom\TextNode; -use PHPHtmlParser\Exceptions\NotLoadedException; -use PHPHtmlParser\Exceptions\StrictException; -use stringEncode\Encode; - -/** - * Class Dom - * - * @package PHPHtmlParser - */ -class Dom -{ - - /** - * The charset we would like the output to be in. - * - * @var string - */ - protected $defaultCharset = 'UTF-8'; - - /** - * Contains the root node of this dom tree. - * - * @var HtmlNode - */ - public $root; - - /** - * The raw version of the document string. - * - * @var string - */ - protected $raw; - - /** - * The document string. - * - * @var Content - */ - protected $content = null; - - /** - * The original file size of the document. - * - * @var int - */ - protected $rawSize; - - /** - * The size of the document after it is cleaned. - * - * @var int - */ - protected $size; - - /** - * A global options array to be used by all load calls. - * - * @var array - */ - protected $globalOptions = []; - - /** - * A persistent option object to be used for all options in the - * parsing of the file. - * - * @var Options - */ - protected $options; - - /** - * A list of tags which will always be self closing - * - * @var array - */ - protected $selfClosing = [ - 'img', - 'br', - 'input', - 'meta', - 'link', - 'hr', - 'base', - 'embed', - 'spacer', - ]; - - /** - * Returns the inner html of the root node. - * - * @return string - */ - public function __toString() - { - return $this->root->innerHtml(); - } - - /** - * A simple wrapper around the root node. - * - * @param string $name - * @return mixed - */ - public function __get($name) - { - return $this->root->$name; - } - - /** - * Attempts to load the dom from any resource, string, file, or URL. - * - * @param string $str - * @param array $options - * @return $this - */ - public function load($str, $options = []) - { - // check if it's a file - if (strpos($str, "\n") === false && is_file($str)) { - return $this->loadFromFile($str, $options); - } - // check if it's a url - if (preg_match("/^https?:\/\//i", $str)) { - return $this->loadFromUrl($str, $options); - } - - return $this->loadStr($str, $options); - } - - /** - * Loads the dom from a document file/url - * - * @param string $file - * @param array $options - * @return $this - */ - public function loadFromFile($file, $options = []) - { - return $this->loadStr(file_get_contents($file), $options); - } - - /** - * Use a curl interface implementation to attempt to load - * the content from a url. - * - * @param string $url - * @param array $options - * @param CurlInterface $curl - * @return $this - */ - public function loadFromUrl($url, $options = [], CurlInterface $curl = null) - { - if (is_null($curl)) { - // use the default curl interface - $curl = new Curl; - } - $content = $curl->get($url); - - return $this->loadStr($content, $options); - } - - /** - * Parsers the html of the given string. Used for load(), loadFromFile(), - * and loadFromUrl(). - * - * @param string $str - * @param array $option - * @return $this - */ - public function loadStr($str, $option) - { - $this->options = new Options; - $this->options->setOptions($this->globalOptions) - ->setOptions($option); - - $this->rawSize = strlen($str); - $this->raw = $str; - - $html = $this->clean($str); - - $this->size = strlen($str); - $this->content = new Content($html); - - $this->parse(); - $this->detectCharset(); - - return $this; - } - - /** - * Sets a global options array to be used by all load calls. - * - * @param array $options - * @return $this - */ - public function setOptions(array $options) - { - $this->globalOptions = $options; - - return $this; - } - - /** - * Find elements by css selector on the root node. - * - * @param string $selector - * @param int $nth - * @return array - */ - public function find($selector, $nth = null) - { - $this->isLoaded(); - - return $this->root->find($selector, $nth); - } - - /** - * Adds the tag (or tags in an array) to the list of tags that will always - * be self closing. - * - * @param string|array $tag - * @return $this - */ - public function addSelfClosingTag($tag) - { - if ( ! is_array($tag)) { - $tag = [$tag]; - } - foreach ($tag as $value) { - $this->selfClosing[] = $value; - } - - return $this; - } - - /** - * Removes the tag (or tags in an array) from the list of tags that will - * always be self closing. - * - * @param string|array $tag - * @return $this - */ - public function removeSelfClosingTag($tag) - { - if ( ! is_array($tag)) { - $tag = [$tag]; - } - $this->selfClosing = array_diff($this->selfClosing, $tag); - - return $this; - } - - /** - * Sets the list of self closing tags to empty. - * - * @return $this - */ - public function clearSelfClosingTags() - { - $this->selfClosing = []; - - return $this; - } - - /** - * Simple wrapper function that returns the first child. - * - * @return \PHPHtmlParser\Dom\AbstractNode - */ - public function firstChild() - { - $this->isLoaded(); - - return $this->root->firstChild(); - } - - /** - * Simple wrapper function that returns the last child. - * - * @return \PHPHtmlParser\Dom\AbstractNode - */ - public function lastChild() - { - $this->isLoaded(); - - return $this->root->lastChild(); - } - - /** - * Simple wrapper function that returns an element by the - * id. - * - * @param string $id - * @return \PHPHtmlParser\Dom\AbstractNode - */ - public function getElementById($id) - { - $this->isLoaded(); - - return $this->find('#'.$id, 0); - } - - /** - * Simple wrapper function that returns all elements by - * tag name. - * - * @param string $name - * @return array - */ - public function getElementsByTag($name) - { - $this->isLoaded(); - - return $this->find($name); - } - - /** - * Simple wrapper function that returns all elements by - * class name. - * - * @param string $class - * @return array - */ - public function getElementsByClass($class) - { - $this->isLoaded(); - - return $this->find('.'.$class); - } - - /** - * Checks if the load methods have been called. - * - * @throws NotLoadedException - */ - protected function isLoaded() - { - if (is_null($this->content)) { - throw new NotLoadedException('Content is not loaded!'); - } - } - - /** - * Cleans the html of any none-html information. - * - * @param string $str - * @return string - */ - protected function clean($str) - { - if ($this->options->get('cleanupInput') != true) { - // skip entire cleanup step - return $str; - } - - // remove white space before closing tags - $str = mb_eregi_replace("'\s+>", "'>", $str); - $str = mb_eregi_replace('"\s+>', '">', $str); - - // clean out the \n\r - $replace = ' '; - if ($this->options->get('preserveLineBreaks')) { - $replace = '&#10;'; - } - $str = str_replace(["\r\n", "\r", "\n"], $replace, $str); - - // strip the doctype - $str = mb_eregi_replace("<!doctype(.*?)>", '', $str); - - // strip out comments - $str = mb_eregi_replace("<!--(.*?)-->", '', $str); - - // strip out cdata - $str = mb_eregi_replace("<!\[CDATA\[(.*?)\]\]>", '', $str); - - // strip out <script> tags - if ($this->options->get('removeScripts') == true) { - $str = mb_eregi_replace("<\s*script[^>]*[^/]>(.*?)<\s*/\s*script\s*>", '', $str); - $str = mb_eregi_replace("<\s*script\s*>(.*?)<\s*/\s*script\s*>", '', $str); - } - - // strip out <style> tags - if ($this->options->get('removeStyles') == true) { - $str = mb_eregi_replace("<\s*style[^>]*[^/]>(.*?)<\s*/\s*style\s*>", '', $str); - $str = mb_eregi_replace("<\s*style\s*>(.*?)<\s*/\s*style\s*>", '', $str); - } - - // strip out server side scripts - $str = mb_eregi_replace("(<\?)(.*?)(\?>)", '', $str); - - // strip smarty scripts - $str = mb_eregi_replace("(\{\w)(.*?)(\})", '', $str); - - return $str; - } - - /** - * Attempts to parse the html in content. - */ - protected function parse() - { - // add the root node - $this->root = new HtmlNode('root'); - $activeNode = $this->root; - while ( ! is_null($activeNode)) { - $str = $this->content->copyUntil('<'); - if ($str == '') { - $info = $this->parseTag(); - if ( ! $info['status']) { - // we are done here - $activeNode = null; - continue; - } - - // check if it was a closing tag - if ($info['closing']) { - $originalNode = $activeNode; - while ($activeNode->getTag()->name() != $info['tag']) { - $activeNode = $activeNode->getParent(); - if (is_null($activeNode)) { - // we could not find opening tag - $activeNode = $originalNode; - break; - } - } - if ( ! is_null($activeNode)) { - $activeNode = $activeNode->getParent(); - } - continue; - } - - if ( ! isset($info['node'])) { - continue; - } - - /** @var AbstractNode $node */ - $node = $info['node']; - $activeNode->addChild($node); - - // check if node is self closing - if ( ! $node->getTag()->isSelfClosing()) { - $activeNode = $node; - } - } else if ($this->options->whitespaceTextNode || - trim($str) != '' - ) { - // we found text we care about - $textNode = new TextNode($str); - $activeNode->addChild($textNode); - } - } - } - - /** - * Attempt to parse a tag out of the content. - * - * @return array - * @throws StrictException - */ - protected function parseTag() - { - $return = [ - 'status' => false, - 'closing' => false, - 'node' => null, - ]; - if ($this->content->char() != '<') { - // we are not at the beginning of a tag - return $return; - } - - // check if this is a closing tag - if ($this->content->fastForward(1)->char() == '/') { - // end tag - $tag = $this->content->fastForward(1) - ->copyByToken('slash', true); - // move to end of tag - $this->content->copyUntil('>'); - $this->content->fastForward(1); - - // check if this closing tag counts - $tag = strtolower($tag); - if (in_array($tag, $this->selfClosing)) { - $return['status'] = true; - - return $return; - } else { - $return['status'] = true; - $return['closing'] = true; - $return['tag'] = strtolower($tag); - } - - return $return; - } - - $tag = strtolower($this->content->copyByToken('slash', true)); - $node = new HtmlNode($tag); - - // attributes - while ($this->content->char() != '>' && - $this->content->char() != '/') { - $space = $this->content->skipByToken('blank', true); - if (empty($space)) { - $this->content->fastForward(1); - continue; - } - - $name = $this->content->copyByToken('equal', true); - if ($name == '/') { - break; - } - - if (empty($name)) { - $this->content->fastForward(1); - continue; - } - - $this->content->skipByToken('blank'); - if ($this->content->char() == '=') { - $attr = []; - $this->content->fastForward(1) - ->skipByToken('blank'); - switch ($this->content->char()) { - case '"': - $attr['doubleQuote'] = true; - $this->content->fastForward(1); - $string = $this->content->copyUntil('"', true, true); - do { - $moreString = $this->content->copyUntilUnless('"', '=>'); - $string .= $moreString; - } while ( ! empty($moreString)); - $attr['value'] = $string; - $this->content->fastForward(1); - $node->getTag()->$name = $attr; - break; - case "'": - $attr['doubleQuote'] = false; - $this->content->fastForward(1); - $string = $this->content->copyUntil("'", true, true); - do { - $moreString = $this->content->copyUntilUnless("'", '=>'); - $string .= $moreString; - } while ( ! empty($moreString)); - $attr['value'] = $string; - $this->content->fastForward(1); - $node->getTag()->$name = $attr; - break; - default: - $attr['doubleQuote'] = true; - $attr['value'] = $this->content->copyByToken('attr', true); - $node->getTag()->$name = $attr; - break; - } - } else { - // no value attribute - if ($this->options->strict) { - // can't have this in strict html - $character = $this->content->getPosition(); - throw new StrictException("Tag '$tag' has an attribute '$name' with out a value! (character #$character)"); - } - $node->getTag()->$name = [ - 'value' => null, - 'doubleQuote' => true, - ]; - if ($this->content->char() != '>') { - $this->content->rewind(1); - } - } - } - - $this->content->skipByToken('blank'); - if ($this->content->char() == '/') { - // self closing tag - $node->getTag()->selfClosing(); - $this->content->fastForward(1); - } elseif (in_array($tag, $this->selfClosing)) { - - // Should be a self closing tag, check if we are strict - if ($this->options->strict) { - $character = $this->content->getPosition(); - throw new StrictException("Tag '$tag' is not self closing! (character #$character)"); - } - - // We force self closing on this tag. - $node->getTag()->selfClosing(); - } - - $this->content->fastForward(1); - - $return['status'] = true; - $return['node'] = $node; - - return $return; - } - - /** - * Attempts to detect the charset that the html was sent in. - * - * @return bool - */ - protected function detectCharset() - { - // set the default - $encode = new Encode; - $encode->from($this->defaultCharset); - $encode->to($this->defaultCharset); - - if ( ! is_null($this->options->enforceEncoding)) { - // they want to enforce the given encoding - $encode->from($this->options->enforceEncoding); - $encode->to($this->options->enforceEncoding); - - return false; - } - - $meta = $this->root->find('meta[http-equiv=Content-Type]', 0); - if (is_null($meta)) { - // could not find meta tag - $this->root->propagateEncoding($encode); - - return false; - } - $content = $meta->content; - if (empty($content)) { - // could not find content - $this->root->propagateEncoding($encode); - - return false; - } - $matches = []; - if (preg_match('/charset=(.+)/', $content, $matches)) { - $encode->from(trim($matches[1])); - $this->root->propagateEncoding($encode); - - return true; - } - - // no charset found - $this->root->propagateEncoding($encode); - - return false; - } -} diff --git a/Utils/PHPHtmlParser/Dom/AbstractNode.php b/Utils/PHPHtmlParser/Dom/AbstractNode.php deleted file mode 100644 index 8549a46..0000000 --- a/Utils/PHPHtmlParser/Dom/AbstractNode.php +++ /dev/null @@ -1,410 +0,0 @@ -<?php -namespace PHPHtmlParser\Dom; - -use PHPHtmlParser\Exceptions\CircularException; -use PHPHtmlParser\Exceptions\ParentNotFoundException; -use PHPHtmlParser\Selector; -use stringEncode\Encode; - -/** - * Dom node object. - * - * @property string outerhtml - * @property string innerhtml - * @property string text - * @property \PHPHtmlParser\Dom\Tag tag - * @property InnerNode parent - */ -abstract class AbstractNode -{ - - /** - * Contains the tag name/type - * - * @var \PHPHtmlParser\Dom\Tag - */ - protected $tag; - - /** - * Contains a list of attributes on this tag. - * - * @var array - */ - protected $attr = []; - - /** - * Contains the parent Node. - * - * @var InnerNode - */ - protected $parent = null; - - /** - * The unique id of the class. Given by PHP. - * - * @var string - */ - protected $id; - - /** - * The encoding class used to encode strings. - * - * @var mixed - */ - protected $encode; - - /** - * Creates a unique spl hash for this node. - */ - public function __construct() - { - $this->id = spl_object_hash($this); - } - - /** - * Magic get method for attributes and certain methods. - * - * @param string $key - * @return mixed - */ - public function __get($key) - { - // check attribute first - if ( ! is_null($this->getAttribute($key))) { - return $this->getAttribute($key); - } - switch (strtolower($key)) { - case 'outerhtml': - return $this->outerHtml(); - case 'innerhtml': - return $this->innerHtml(); - case 'text': - return $this->text(); - case 'tag': - return $this->getTag(); - case 'parent': - $this->getParent(); - } - - return null; - } - - /** - * Attempts to clear out any object references. - */ - public function __destruct() - { - $this->tag = null; - $this->attr = []; - $this->parent = null; - $this->children = []; - } - - /** - * Simply calls the outer text method. - * - * @return string - */ - public function __toString() - { - return $this->outerHtml(); - } - - /** - * Returns the id of this object. - */ - public function id() - { - return $this->id; - } - - /** - * Returns the parent of node. - * - * @return AbstractNode - */ - public function getParent() - { - return $this->parent; - } - - /** - * Sets the parent node. - * - * @param InnerNode $parent - * @return $this - * @throws CircularException - */ - public function setParent(InnerNode $parent) - { - // remove from old parent - if ( ! is_null($this->parent)) { - if ($this->parent->id() == $parent->id()) { - // already the parent - return $this; - } - - $this->parent->removeChild($this->id); - } - - $this->parent = $parent; - - // assign child to parent - $this->parent->addChild($this); - - //clear any cache - $this->clear(); - - return $this; - } - - /** - * Removes this node and all its children from the - * DOM tree. - * - * @return void - */ - public function delete() - { - if ( ! is_null($this->parent)) { - $this->parent->removeChild($this->id); - } - - $this->parent = null; - } - - /** - * Sets the encoding class to this node. - * - * @param Encode $encode - * @return void - */ - public function propagateEncoding(Encode $encode) - { - $this->encode = $encode; - $this->tag->setEncoding($encode); - } - - /** - * Checks if the given node id is an ancestor of - * the current node. - * - * @param int $id - * @return bool - */ - public function isAncestor($id) - { - if ( ! is_null($this->getAncestor($id))) { - return true; - } - - return false; - } - - /** - * Attempts to get an ancestor node by the given id. - * - * @param int $id - * @return null|AbstractNode - */ - public function getAncestor($id) - { - if ( ! is_null($this->parent)) { - if ($this->parent->id() == $id) { - return $this->parent; - } - - return $this->parent->getAncestor($id); - } - - return null; - } - - /** - * Attempts to get the next sibling. - * - * @return AbstractNode - * @throws ParentNotFoundException - */ - public function nextSibling() - { - if (is_null($this->parent)) { - throw new ParentNotFoundException('Parent is not set for this node.'); - } - - return $this->parent->nextChild($this->id); - } - - /** - * Attempts to get the previous sibling - * - * @return AbstractNode - * @throws ParentNotFoundException - */ - public function previousSibling() - { - if (is_null($this->parent)) { - throw new ParentNotFoundException('Parent is not set for this node.'); - } - - return $this->parent->previousChild($this->id); - } - - /** - * Gets the tag object of this node. - * - * @return Tag - */ - public function getTag() - { - return $this->tag; - } - - /** - * A wrapper method that simply calls the getAttribute method - * on the tag of this node. - * - * @return array - */ - public function getAttributes() - { - $attributes = $this->tag->getAttributes(); - foreach ($attributes as $name => $info) { - $attributes[$name] = $info['value']; - } - - return $attributes; - } - - /** - * A wrapper method that simply calls the getAttribute method - * on the tag of this node. - * - * @param string $key - * @return mixed - */ - public function getAttribute($key) - { - $attribute = $this->tag->getAttribute($key); - if ( ! is_null($attribute)) { - $attribute = $attribute['value']; - } - - return $attribute; - } - - /** - * A wrapper method that simply calls the setAttribute method - * on the tag of this node. - * - * @param string $key - * @param string $value - * @return $this - */ - public function setAttribute($key, $value) - { - $this->tag->setAttribute($key, $value); - - return $this; - } - - /** - * A wrapper method that simply calls the removeAttribute method - * on the tag of this node. - * - * @param string $key - * @return void - */ - public function removeAttribute($key) - { - $this->tag->removeAttribute($key); - } - - /** - * A wrapper method that simply calls the removeAllAttributes - * method on the tag of this node. - * - * @return void - */ - public function removeAllAttributes() - { - $this->tag->removeAllAttributes(); - } - - /** - * Function to locate a specific ancestor tag in the path to the root. - * - * @param string $tag - * @return AbstractNode - * @throws ParentNotFoundException - */ - public function ancestorByTag($tag) - { - // Start by including ourselves in the comparison. - $node = $this; - - while ( ! is_null($node)) { - if ($node->tag->name() == $tag) { - return $node; - } - - $node = $node->getParent(); - } - - throw new ParentNotFoundException('Could not find an ancestor with "'.$tag.'" tag'); - } - - /** - * Find elements by css selector - * - * @param string $selector - * @param int $nth - * @return array|AbstractNode - */ - public function find($selector, $nth = null) - { - $selector = new Selector($selector); - $nodes = $selector->find($this); - - if ( ! is_null($nth)) { - // return nth-element or array - if (isset($nodes[$nth])) { - return $nodes[$nth]; - } - - return null; - } - - return $nodes; - } - - /** - * Gets the inner html of this node. - * - * @return string - */ - abstract public function innerHtml(); - - /** - * Gets the html of this node, including it's own - * tag. - * - * @return string - */ - abstract public function outerHtml(); - - /** - * Gets the text of this node (if there is any text). - * - * @return string - */ - abstract public function text(); - - /** - * Call this when something in the node tree has changed. Like a child has been added - * or a parent has been changed. - * - * @return void - */ - abstract protected function clear(); -} diff --git a/Utils/PHPHtmlParser/Dom/ArrayNode.php b/Utils/PHPHtmlParser/Dom/ArrayNode.php deleted file mode 100644 index 5ced08e..0000000 --- a/Utils/PHPHtmlParser/Dom/ArrayNode.php +++ /dev/null @@ -1,41 +0,0 @@ -<?php -namespace PHPHtmlParser\Dom; - -use Countable; -use ArrayIterator; -use IteratorAggregate; - -/** - * Dom node object which will allow users to use it as - * an array. - */ -abstract class ArrayNode extends AbstractNode implements IteratorAggregate, Countable -{ - - /** - * Gets the iterator - * - * @return ArrayIterator - */ - public function getIterator() - { - return new ArrayIterator($this->getIteratorArray()); - } - - /** - * Returns the count of the iterator array. - * - * @return int - */ - public function count() - { - return count($this->getIteratorArray()); - } - - /** - * Returns the array to be used the the iterator. - * - * @return array - */ - abstract protected function getIteratorArray(); -} diff --git a/Utils/PHPHtmlParser/Dom/Collection.php b/Utils/PHPHtmlParser/Dom/Collection.php deleted file mode 100644 index 70532e4..0000000 --- a/Utils/PHPHtmlParser/Dom/Collection.php +++ /dev/null @@ -1,168 +0,0 @@ -<?php -namespace PHPHtmlParser\Dom; - -use ArrayAccess; -use ArrayIterator; -use Countable; -use IteratorAggregate; -use PHPHtmlParser\Exceptions\EmptyCollectionException; - -/** - * Class Collection - * - * @package PHPHtmlParser\Dom - */ -class Collection implements IteratorAggregate, ArrayAccess, Countable -{ - - /** - * The collection of Nodes. - * - * @param array - */ - protected $collection = []; - - /** - * Attempts to call the method on the first node in - * the collection. - * - * @param string $method - * @param array $arguments - * @return mixed; - * @throws EmptyCollectionException - */ - public function __call($method, $arguments) - { - $node = reset($this->collection); - if ($node instanceof AbstractNode) { - return call_user_func_array([$node, $method], $arguments); - } else { - throw new EmptyCollectionException('The collection does not contain any Nodes.'); - } - } - - /** - * Attempts to apply the magic get to the first node - * in the collection. - * - * @param mixed $key - * @return mixed - * @throws EmptyCollectionException - */ - public function __get($key) - { - $node = reset($this->collection); - if ($node instanceof AbstractNode) { - return $node->$key; - } else { - throw new EmptyCollectionException('The collection does not contain any Nodes.'); - } - } - - /** - * Applies the magic string method to the first node in - * the collection. - * - * @return string - * @throws EmptyCollectionException - */ - public function __toString() - { - $node = reset($this->collection); - if ($node instanceof AbstractNode) { - return (string)$node; - } else { - throw new EmptyCollectionException('The collection does not contain any Nodes.'); - } - } - - /** - * Returns the count of the collection. - * - * @return int - */ - public function count() - { - return count($this->collection); - } - - /** - * Returns an iterator for the collection. - * - * @return ArrayIterator - */ - public function getIterator() - { - return new ArrayIterator($this->collection); - } - - /** - * Set an attribute by the given offset - * - * @param mixed $offset - * @param mixed $value - */ - public function offsetSet($offset, $value) - { - if (is_null($offset)) { - $this->collection[] = $value; - } else { - $this->collection[$offset] = $value; - } - } - - /** - * Checks if an offset exists. - * - * @param mixed $offset - * @return bool - */ - public function offsetExists($offset) - { - return isset($this->collection[$offset]); - } - - /** - * Unset a collection Node. - * - * @param mixed $offset - */ - public function offsetUnset($offset) - { - unset($this->collection[$offset]); - } - - /** - * Gets a node at the given offset, or null - * - * @param mixed $offset - * @return mixed - */ - public function offsetGet($offset) - { - return isset($this->collection[$offset]) ? $this->collection[$offset] : null; - } - - /** - * Returns this collection as an array. - * - * @return array - */ - public function toArray() - { - return $this->collection; - } - - /** - * Similar to jQuery "each" method. Calls the callback with each - * Node in this collection. - * - * @param callback $callback - */ - public function each($callback) - { - foreach ($this->collection as $key => $value) { - $callback($value, $key); - } - } -} diff --git a/Utils/PHPHtmlParser/Dom/HtmlNode.php b/Utils/PHPHtmlParser/Dom/HtmlNode.php deleted file mode 100644 index 42b4169..0000000 --- a/Utils/PHPHtmlParser/Dom/HtmlNode.php +++ /dev/null @@ -1,200 +0,0 @@ -<?php -namespace PHPHtmlParser\Dom; - -use PHPHtmlParser\Exceptions\UnknownChildTypeException; -use PHPHtmlParser\Exceptions\ChildNotFoundException; - -/** - * Class HtmlNode - * - * @package PHPHtmlParser\Dom - */ -class HtmlNode extends InnerNode -{ - - /** - * Remembers what the innerHtml was if it was scanned previously. - */ - protected $innerHtml = null; - - /** - * Remembers what the outerHtml was if it was scanned previously. - * - * @var string - */ - protected $outerHtml = null; - - /** - * Remembers what the text was if it was scanned previously. - * - * @var string - */ - protected $text = null; - - /** - * Remembers what the text was when we looked into all our - * children nodes. - * - * @var string - */ - protected $textWithChildren = null; - - /** - * Sets up the tag of this node. - * - * @param $tag - */ - public function __construct($tag) - { - if ( ! $tag instanceof Tag) { - $tag = new Tag($tag); - } - $this->tag = $tag; - parent::__construct(); - } - - /** - * Gets the inner html of this node. - * - * @return string - * @throws UnknownChildTypeException - */ - public function innerHtml() - { - if ( ! $this->hasChildren()) { - // no children - return ''; - } - - if ( ! is_null($this->innerHtml)) { - // we already know the result. - return $this->innerHtml; - } - - $child = $this->firstChild(); - $string = ''; - - // continue to loop until we are out of children - while ( ! is_null($child)) { - if ($child instanceof TextNode) { - $string .= $child->text(); - } elseif ($child instanceof HtmlNode) { - $string .= $child->outerHtml(); - } else { - throw new UnknownChildTypeException('Unknown child type "'.get_class($child).'" found in node'); - } - - try { - $child = $this->nextChild($child->id()); - } catch (ChildNotFoundException $e) { - // no more children - $child = null; - } - } - - // remember the results - $this->innerHtml = $string; - - return $string; - } - - /** - * Gets the html of this node, including it's own - * tag. - * - * @return string - */ - public function outerHtml() - { - // special handling for root - if ($this->tag->name() == 'root') { - return $this->innerHtml(); - } - - if ( ! is_null($this->outerHtml)) { - // we already know the results. - return $this->outerHtml; - } - - $return = $this->tag->makeOpeningTag(); - if ($this->tag->isSelfClosing()) { - // ignore any children... there should not be any though - return $return; - } - - // get the inner html - $return .= $this->innerHtml(); - - // add closing tag - $return .= $this->tag->makeClosingTag(); - - // remember the results - $this->outerHtml = $return; - - return $return; - } - - /** - * Gets the text of this node (if there is any text). Or get all the text - * in this node, including children. - * - * @param bool $lookInChildren - * @return string - */ - public function text($lookInChildren = false) - { - if ($lookInChildren) { - if ( ! is_null($this->textWithChildren)) { - // we already know the results. - return $this->textWithChildren; - } - } elseif ( ! is_null($this->text)) { - // we already know the results. - return $this->text; - } - - // find out if this node has any text children - $text = ''; - foreach ($this->children as $child) { - /** @var AbstractNode $node */ - $node = $child['node']; - if ($node instanceof TextNode) { - $text .= $child['node']->text; - } elseif ($lookInChildren && - $node instanceof HtmlNode - ) { - $text .= $node->text($lookInChildren); - } - } - - // remember our result - if ($lookInChildren) { - $this->textWithChildren = $text; - } else { - $this->text = $text; - } - - return $text; - } - - /** - * Call this when something in the node tree has changed. Like a child has been added - * or a parent has been changed. - */ - protected function clear() - { - $this->innerHtml = null; - $this->outerHtml = null; - $this->text = null; - } - - /** - * Returns all children of this html node. - * - * @return array - */ - protected function getIteratorArray() - { - return $this->getChildren(); - } -} diff --git a/Utils/PHPHtmlParser/Dom/InnerNode.php b/Utils/PHPHtmlParser/Dom/InnerNode.php deleted file mode 100644 index 6f45846..0000000 --- a/Utils/PHPHtmlParser/Dom/InnerNode.php +++ /dev/null @@ -1,317 +0,0 @@ -<?php -namespace PHPHtmlParser\Dom; - -use PHPHtmlParser\Exceptions\ChildNotFoundException; -use PHPHtmlParser\Exceptions\CircularException; -use stringEncode\Encode; - -/** - * Inner node of the html tree, might have children. - * - * @package PHPHtmlParser\Dom - */ -abstract class InnerNode extends ArrayNode -{ - - /** - * An array of all the children. - * - * @var array - */ - protected $children = []; - - /** - * Sets the encoding class to this node and propagates it - * to all its children. - * - * @param Encode $encode - * @return void - */ - public function propagateEncoding(Encode $encode) - { - $this->encode = $encode; - $this->tag->setEncoding($encode); - // check children - foreach ($this->children as $id => $child) { - /** @var AbstractNode $node */ - $node = $child['node']; - $node->propagateEncoding($encode); - } - } - - /** - * Checks if this node has children. - * - * @return bool - */ - public function hasChildren() - { - return ! empty($this->children); - } - - /** - * Returns the child by id. - * - * @param int $id - * @return AbstractNode - * @throws ChildNotFoundException - */ - public function getChild($id) - { - if ( ! isset($this->children[$id])) { - throw new ChildNotFoundException("Child '$id' not found in this node."); - } - - return $this->children[$id]['node']; - } - - /** - * Returns a new array of child nodes - * - * @return array - */ - public function getChildren() - { - $nodes = []; - try { - $child = $this->firstChild(); - do { - $nodes[] = $child; - $child = $this->nextChild($child->id()); - } while ( ! is_null($child)); - } catch (ChildNotFoundException $e) { - // we are done looking for children - } - - return $nodes; - } - - /** - * Counts children - * - * @return int - */ - public function countChildren() - { - return count($this->children); - } - - /** - * Adds a child node to this node and returns the id of the child for this - * parent. - * - * @param AbstractNode $child - * @return bool - * @throws CircularException - */ - public function addChild(AbstractNode $child) - { - $key = null; - - // check integrity - if ($this->isAncestor($child->id())) { - throw new CircularException('Can not add child. It is my ancestor.'); - } - - // check if child is itself - if ($child->id() == $this->id) { - throw new CircularException('Can not set itself as a child.'); - } - - if ($this->hasChildren()) { - if (isset($this->children[$child->id()])) { - // we already have this child - return false; - } - $sibling = $this->lastChild(); - $key = $sibling->id(); - $this->children[$key]['next'] = $child->id(); - } - - // add the child - $this->children[$child->id()] = [ - 'node' => $child, - 'next' => null, - 'prev' => $key, - ]; - - // tell child I am the new parent - $child->setParent($this); - - //clear any cache - $this->clear(); - - return true; - } - - /** - * Removes the child by id. - * - * @param int $id - * @return $this - */ - public function removeChild($id) - { - if ( ! isset($this->children[$id])) { - return $this; - } - - // handle moving next and previous assignments. - $next = $this->children[$id]['next']; - $prev = $this->children[$id]['prev']; - if ( ! is_null($next)) { - $this->children[$next]['prev'] = $prev; - } - if ( ! is_null($prev)) { - $this->children[$prev]['next'] = $next; - } - - // remove the child - unset($this->children[$id]); - - //clear any cache - $this->clear(); - - return $this; - } - - /** - * Attempts to get the next child. - * - * @param int $id - * @return AbstractNode - * @uses $this->getChild() - * @throws ChildNotFoundException - */ - public function nextChild($id) - { - $child = $this->getChild($id); - $next = $this->children[$child->id()]['next']; - - return $this->getChild($next); - } - - /** - * Attempts to get the previous child. - * - * @param int $id - * @return AbstractNode - * @uses $this->getChild() - * @throws ChildNotFoundException - */ - public function previousChild($id) - { - $child = $this->getchild($id); - $next = $this->children[$child->id()]['prev']; - - return $this->getChild($next); - } - - /** - * Checks if the given node id is a child of the - * current node. - * - * @param int $id - * @return bool - */ - public function isChild($id) - { - foreach ($this->children as $childId => $child) { - if ($id == $childId) { - return true; - } - } - - return false; - } - - /** - * Removes the child with id $childId and replace it with the new child - * $newChild. - * - * @param int $childId - * @param AbstractNode $newChild - * @throws ChildNotFoundException - */ - public function replaceChild($childId, AbstractNode $newChild) - { - $oldChild = $this->getChild($childId); - $keys = array_keys($this->children); - $index = array_search($childId, $keys, true); - $keys[$index] = $newChild->id(); - $this->children = array_combine($keys, $this->children); - $this->children[$newChild->id()] = $newChild; - unset($oldChild); - } - - /** - * Shortcut to return the first child. - * - * @return AbstractNode - * @uses $this->getChild() - */ - public function firstChild() - { - reset($this->children); - $key = key($this->children); - - return $this->getChild($key); - } - - /** - * Attempts to get the last child. - * - * @return AbstractNode - */ - public function lastChild() - { - end($this->children); - $key = key($this->children); - - return $this->getChild($key); - } - - /** - * Checks if the given node id is a descendant of the - * current node. - * - * @param int $id - * @return bool - */ - public function isDescendant($id) - { - if ($this->isChild($id)) { - return true; - } - - foreach ($this->children as $childId => $child) { - /** @var InnerNode $node */ - $node = $child['node']; - if ($node instanceof InnerNode && - $node->hasChildren() && - $node->isDescendant($id) - ) { - return true; - } - } - - return false; - } - - /** - * Sets the parent node. - * - * @param InnerNode $parent - * @return $this - * @throws CircularException - */ - public function setParent(InnerNode $parent) - { - // check integrity - if ($this->isDescendant($parent->id())) { - throw new CircularException('Can not add descendant "'.$parent->id().'" as my parent.'); - } - - return parent::setParent($parent); - } -} \ No newline at end of file diff --git a/Utils/PHPHtmlParser/Dom/LeafNode.php b/Utils/PHPHtmlParser/Dom/LeafNode.php deleted file mode 100644 index d8c8eb5..0000000 --- a/Utils/PHPHtmlParser/Dom/LeafNode.php +++ /dev/null @@ -1,13 +0,0 @@ -<?php -namespace PHPHtmlParser\Dom; - - -/** - * Class LeafNode - * - * @package PHPHtmlParser - */ -abstract class LeafNode extends AbstractNode -{ - -} \ No newline at end of file diff --git a/Utils/PHPHtmlParser/Dom/MockNode.php b/Utils/PHPHtmlParser/Dom/MockNode.php deleted file mode 100644 index 7029a18..0000000 --- a/Utils/PHPHtmlParser/Dom/MockNode.php +++ /dev/null @@ -1,54 +0,0 @@ -<?php -namespace PHPHtmlParser\Dom; - -/** - * This mock object is used solely for testing the abstract - * class Node with out any potential side effects caused - * by testing a supper class of Node. - * - * This object is not to be used for any other reason. - */ -class MockNode extends InnerNode -{ - - /** - * Mock of innner html. - */ - public function innerHtml() - { - } - - /** - * Mock of outer html. - */ - public function outerHtml() - { - } - - /** - * Mock of text. - */ - public function text() - { - } - - /** - * Clear content of this node - */ - protected function clear() - { - $this->innerHtml = null; - $this->outerHtml = null; - $this->text = null; - } - - /** - * Returns all children of this html node. - * - * @return array - */ - protected function getIteratorArray() - { - return $this->getChildren(); - } -} diff --git a/Utils/PHPHtmlParser/Dom/Tag.php b/Utils/PHPHtmlParser/Dom/Tag.php deleted file mode 100644 index 4365955..0000000 --- a/Utils/PHPHtmlParser/Dom/Tag.php +++ /dev/null @@ -1,270 +0,0 @@ -<?php -namespace PHPHtmlParser\Dom; - -use PHPHtmlParser\Dom; -use stringEncode\Encode; - -/** - * Class Tag - * - * @package PHPHtmlParser\Dom - */ -class Tag -{ - - /** - * The name of the tag. - * - * @var string - */ - protected $name; - - /** - * The attributes of the tag. - * - * @var array - */ - protected $attr = []; - - /** - * Is this tag self closing. - * - * @var bool - */ - protected $selfClosing = false; - - /** - * Tag noise - */ - protected $noise = ''; - - /** - * The encoding class to... encode the tags - * - * @var mixed - */ - protected $encode = null; - - /** - * Sets up the tag with a name. - * - * @param $name - */ - public function __construct($name) - { - $this->name = $name; - } - - /** - * Magic method to get any of the attributes. - * - * @param string $key - * @return mixed - */ - public function __get($key) - { - return $this->getAttribute($key); - } - - /** - * Magic method to set any attribute. - * - * @param string $key - * @param mixed $value - */ - public function __set($key, $value) - { - $this->setAttribute($key, $value); - } - - /** - * Returns the name of this tag. - * - * @return string - */ - public function name() - { - return $this->name; - } - - /** - * Sets the tag to be self closing. - * - * @return $this - */ - public function selfClosing() - { - $this->selfClosing = true; - - return $this; - } - - /** - * Checks if the tag is self closing. - * - * @return bool - */ - public function isSelfClosing() - { - return $this->selfClosing; - } - - /** - * Sets the encoding type to be used. - * - * @param Encode $encode - */ - public function setEncoding(Encode $encode) - { - $this->encode = $encode; - } - - /** - * Sets the noise for this tag (if any) - * - * @param $noise - * @return $this - */ - public function noise($noise) - { - $this->noise = $noise; - - return $this; - } - - /** - * Set an attribute for this tag. - * - * @param string $key - * @param string|array $value - * @return $this - */ - public function setAttribute($key, $value) - { - $key = strtolower($key); - if ( ! is_array($value)) { - $value = [ - 'value' => $value, - 'doubleQuote' => true, - ]; - } - $this->attr[$key] = $value; - - return $this; - } - - /** - * Removes an attribute from this tag. - * - * @param $key - * @return void - */ - public function removeAttribute($key) - { - $key = strtolower($key); - unset($this->attr[$key]); - } - - /** - * Removes all attributes on this tag. - * - * @return void - */ - public function removeAllAttributes() - { - $this->attr = []; - } - - /** - * Sets the attributes for this tag - * - * @param array $attr - * @return $this - */ - public function setAttributes(array $attr) - { - foreach ($attr as $key => $value) { - $this->setAttribute($key, $value); - } - - return $this; - } - - /** - * Returns all attributes of this tag. - * - * @return array - */ - public function getAttributes() - { - $return = []; - foreach ($this->attr as $attr => $info) { - $return[$attr] = $this->getAttribute($attr); - } - - return $return; - } - - /** - * Returns an attribute by the key - * - * @param string $key - * @return mixed - */ - public function getAttribute($key) - { - if ( ! isset($this->attr[$key])) { - return null; - } - $value = $this->attr[$key]['value']; - if (is_string($value) && ! is_null($this->encode)) { - // convert charset - $this->attr[$key]['value'] = $this->encode->convert($value); - } - - return $this->attr[$key]; - } - - /** - * Generates the opening tag for this object. - * - * @return string - */ - public function makeOpeningTag() - { - $return = '<'.$this->name; - - // add the attributes - foreach ($this->attr as $key => $info) { - $info = $this->getAttribute($key); - $val = $info['value']; - if (is_null($val)) { - $return .= ' '.$key; - } elseif ($info['doubleQuote']) { - $return .= ' '.$key.'="'.$val.'"'; - } else { - $return .= ' '.$key.'=\''.$val.'\''; - } - } - - if ($this->selfClosing) { - return $return.' />'; - } else { - return $return.'>'; - } - } - - /** - * Generates the closing tag for this object. - * - * @return string - */ - public function makeClosingTag() - { - if ($this->selfClosing) { - return ''; - } - - return '</'.$this->name.'>'; - } -} diff --git a/Utils/PHPHtmlParser/Dom/TextNode.php b/Utils/PHPHtmlParser/Dom/TextNode.php deleted file mode 100644 index 0a3d877..0000000 --- a/Utils/PHPHtmlParser/Dom/TextNode.php +++ /dev/null @@ -1,105 +0,0 @@ -<?php -namespace PHPHtmlParser\Dom; - -/** - * Class TextNode - * - * @package PHPHtmlParser\Dom - */ -class TextNode extends LeafNode -{ - - /** - * This is a text node. - * - * @var Tag - */ - protected $tag; - - /** - * This is the text in this node. - * - * @var string - */ - protected $text; - - /** - * This is the converted version of the text. - * - * @var string - */ - protected $convertedText = null; - - /** - * Sets the text for this node. - * - * @param string $text - */ - public function __construct($text) - { - // remove double spaces - $text = mb_ereg_replace('\s+', ' ', $text); - - // restore line breaks - $text = str_replace('&#10;', "\n", $text); - - $this->text = $text; - $this->tag = new Tag('text'); - parent::__construct(); - } - - /** - * Returns the text of this node. - * - * @return string - */ - public function text() - { - // convert charset - if ( ! is_null($this->encode)) { - if ( ! is_null($this->convertedText)) { - // we already know the converted value - return $this->convertedText; - } - $text = $this->encode->convert($this->text); - - // remember the conversion - $this->convertedText = $text; - - return $text; - } else { - return $this->text; - } - } - - /** - * This node has no html, just return the text. - * - * @return string - * @uses $this->text() - */ - public function innerHtml() - { - return $this->text(); - } - - /** - * This node has no html, just return the text. - * - * @return string - * @uses $this->text() - */ - public function outerHtml() - { - return $this->text(); - } - - /** - * Call this when something in the node tree has changed. Like a child has been added - * or a parent has been changed. - */ - protected function clear() - { - $this->convertedText = null; - } -} diff --git a/Utils/PHPHtmlParser/Exceptions/ChildNotFoundException.php b/Utils/PHPHtmlParser/Exceptions/ChildNotFoundException.php deleted file mode 100644 index d1c8c13..0000000 --- a/Utils/PHPHtmlParser/Exceptions/ChildNotFoundException.php +++ /dev/null @@ -1,12 +0,0 @@ -<?php -namespace PHPHtmlParser\Exceptions; - -/** - * Class ChildNotFoundException - * - * @package PHPHtmlParser\Exceptions - */ -final class ChildNotFoundException extends \Exception -{ -} - diff --git a/Utils/PHPHtmlParser/Exceptions/CircularException.php b/Utils/PHPHtmlParser/Exceptions/CircularException.php deleted file mode 100644 index 46dcf94..0000000 --- a/Utils/PHPHtmlParser/Exceptions/CircularException.php +++ /dev/null @@ -1,11 +0,0 @@ -<?php -namespace PHPHtmlParser\Exceptions; - -/** - * Class CircularException - * - * @package PHPHtmlParser\Exceptions - */ -final class CircularException extends \Exception -{ -} diff --git a/Utils/PHPHtmlParser/Exceptions/CurlException.php b/Utils/PHPHtmlParser/Exceptions/CurlException.php deleted file mode 100644 index af34404..0000000 --- a/Utils/PHPHtmlParser/Exceptions/CurlException.php +++ /dev/null @@ -1,11 +0,0 @@ -<?php -namespace PHPHtmlParser\Exceptions; - -/** - * Class CurlException - * - * @package PHPHtmlParser\Exceptions - */ -class CurlException extends \Exception -{ -} diff --git a/Utils/PHPHtmlParser/Exceptions/EmptyCollectionException.php b/Utils/PHPHtmlParser/Exceptions/EmptyCollectionException.php deleted file mode 100644 index 2e71e98..0000000 --- a/Utils/PHPHtmlParser/Exceptions/EmptyCollectionException.php +++ /dev/null @@ -1,11 +0,0 @@ -<?php -namespace PHPHtmlParser\Exceptions; - -/** - * Class EmptyCollectionException - * - * @package PHPHtmlParser\Exceptions - */ -final class EmptyCollectionException extends \Exception -{ -} diff --git a/Utils/PHPHtmlParser/Exceptions/NotLoadedException.php b/Utils/PHPHtmlParser/Exceptions/NotLoadedException.php deleted file mode 100644 index 8dd5357..0000000 --- a/Utils/PHPHtmlParser/Exceptions/NotLoadedException.php +++ /dev/null @@ -1,11 +0,0 @@ -<?php -namespace PHPHtmlParser\Exceptions; - -/** - * Class NotLoadedException - * - * @package PHPHtmlParser\Exceptions - */ -final class NotLoadedException extends \Exception -{ -} diff --git a/Utils/PHPHtmlParser/Exceptions/ParentNotFoundException.php b/Utils/PHPHtmlParser/Exceptions/ParentNotFoundException.php deleted file mode 100644 index 5574a87..0000000 --- a/Utils/PHPHtmlParser/Exceptions/ParentNotFoundException.php +++ /dev/null @@ -1,11 +0,0 @@ -<?php -namespace PHPHtmlParser\Exceptions; - -/** - * Class ParentNotFoundException - * - * @package PHPHtmlParser\Exceptions - */ -final class ParentNotFoundException extends \Exception -{ -} diff --git a/Utils/PHPHtmlParser/Exceptions/StrictException.php b/Utils/PHPHtmlParser/Exceptions/StrictException.php deleted file mode 100644 index e32be41..0000000 --- a/Utils/PHPHtmlParser/Exceptions/StrictException.php +++ /dev/null @@ -1,11 +0,0 @@ -<?php -namespace PHPHtmlParser\Exceptions; - -/** - * Class StrictException - * - * @package PHPHtmlParser\Exceptions - */ -final class StrictException extends \Exception -{ -} diff --git a/Utils/PHPHtmlParser/Exceptions/UnknownChildTypeException.php b/Utils/PHPHtmlParser/Exceptions/UnknownChildTypeException.php deleted file mode 100644 index 6437e91..0000000 --- a/Utils/PHPHtmlParser/Exceptions/UnknownChildTypeException.php +++ /dev/null @@ -1,11 +0,0 @@ -<?php -namespace PHPHtmlParser\Exceptions; - -/** - * Class UnknownChildTypeException - * - * @package PHPHtmlParser\Exceptions - */ -final class UnknownChildTypeException extends \Exception -{ -} diff --git a/Utils/PHPHtmlParser/Options.php b/Utils/PHPHtmlParser/Options.php deleted file mode 100644 index ac84ac2..0000000 --- a/Utils/PHPHtmlParser/Options.php +++ /dev/null @@ -1,87 +0,0 @@ -<?php -namespace PHPHtmlParser; - -/** - * Class Options - * - * @package PHPHtmlParser - * @property bool whitespaceTextNode - * @property bool strict - * @property bool enforceEncoding - */ -class Options -{ - - /** - * The default options array - * - * @param array - */ - protected $defaults = [ - 'whitespaceTextNode' => true, - 'strict' => false, - 'enforceEncoding' => null, - 'cleanupInput' => true, - 'removeScripts' => true, - 'removeStyles' => true, - 'preserveLineBreaks' => false, - ]; - - /** - * The list of all current options set. - * - * @param array - */ - protected $options = []; - - /** - * Sets the default options in the options array - */ - public function __construct() - { - $this->options = $this->defaults; - } - - /** - * A magic get to call the get() method. - * - * @param string $key - * @return mixed - * @uses $this->get() - */ - public function __get($key) - { - return $this->get($key); - } - - /** - * Sets a new options param to override the current option array. - * - * @param array $options - * @return $this - */ - public function setOptions(array $options) - { - foreach ($options as $key => $option) { - $this->options[$key] = $option; - } - - return $this; - } - - /** - * Gets the value associated to the key, or null if the key is not - * found. - * - * @param string - * @return mixed - */ - public function get($key) - { - if (isset($this->options[$key])) { - return $this->options[$key]; - } - - return null; - } -} diff --git a/Utils/PHPHtmlParser/Selector.php b/Utils/PHPHtmlParser/Selector.php deleted file mode 100644 index e0e1ac7..0000000 --- a/Utils/PHPHtmlParser/Selector.php +++ /dev/null @@ -1,378 +0,0 @@ -<?php -namespace PHPHtmlParser; - -use PHPHtmlParser\Dom\AbstractNode; -use PHPHtmlParser\Dom\Collection; -use PHPHtmlParser\Dom\InnerNode; -use PHPHtmlParser\Dom\LeafNode; -use PHPHtmlParser\Exceptions\ChildNotFoundException; - -/** - * Class Selector - * - * @package PHPHtmlParser - */ -class Selector -{ - - /** - * Pattern of CSS selectors, modified from 'mootools' - * - * @var string - */ - protected $pattern = "/([\w-:\*>]*)(?:\#([\w-]+)|\.([\w-]+))?(?:\[@?(!?[\w-:]+)(?:([!*^$]?=)[\"']?(.*?)[\"']?)?\])?([\/, ]+)/is"; - - protected $selectors = []; - - /** - * Constructs with the selector string - * - * @param string $selector - */ - public function __construct($selector) - { - $this->parseSelectorString($selector); - } - - /** - * Returns the selectors that where found in __construct - * - * @return array - */ - public function getSelectors() - { - return $this->selectors; - } - - /** - * Attempts to find the selectors starting from the given - * node object. - * - * @param AbstractNode $node - * @return Collection - */ - public function find(AbstractNode $node) - { - $results = new Collection; - foreach ($this->selectors as $selector) { - $nodes = [$node]; - if (count($selector) == 0) { - continue; - } - - $options = []; - foreach ($selector as $rule) { - if ($rule['alterNext']) { - $options[] = $this->alterNext($rule); - continue; - } - $nodes = $this->seek($nodes, $rule, $options); - // clear the options - $options = []; - } - - // this is the final set of nodes - foreach ($nodes as $result) { - $results[] = $result; - } - } - - return $results; - } - - /** - * Parses the selector string - * - * @param string $selector - */ - protected function parseSelectorString($selector) - { - $matches = []; - preg_match_all($this->pattern, trim($selector).' ', $matches, PREG_SET_ORDER); - - // skip tbody - $result = []; - foreach ($matches as $match) { - // default values - $tag = strtolower(trim($match[1])); - $operator = '='; - $key = null; - $value = null; - $noKey = false; - $alterNext = false; - - // check for elements that alter the behavior of the next element - if ($tag == '>') { - $alterNext = true; - } - - // check for id selector - if ( ! empty($match[2])) { - $key = 'id'; - $value = $match[2]; - } - - // check for class selector - if ( ! empty($match[3])) { - $key = 'class'; - $value = $match[3]; - } - - // and final attribute selector - if ( ! empty($match[4])) { - $key = strtolower($match[4]); - } - if ( ! empty($match[5])) { - $operator = $match[5]; - } - if ( ! empty($match[6])) { - $value = $match[6]; - } - - // check for elements that do not have a specified attribute - if (isset($key[0]) && $key[0] == '!') { - $key = substr($key, 1); - $noKey = true; - } - - $result[] = [ - 'tag' => $tag, - 'key' => $key, - 'value' => $value, - 'operator' => $operator, - 'noKey' => $noKey, - 'alterNext' => $alterNext, - ]; - if (trim($match[7]) == ',') { - $this->selectors[] = $result; - $result = []; - } - } - - // save last results - if (count($result) > 0) { - $this->selectors[] = $result; - } - } - - /** - * Attempts to find all children that match the rule - * given. - * - * @param array $nodes - * @param array $rule - * @param array $options - * @return array - * @recursive - */ - protected function seek(array $nodes, array $rule, array $options) - { - // XPath index - if (count($rule['tag']) > 0 && - count($rule['key']) > 0 && - is_numeric($rule['key']) - ) { - $count = 0; - /** @var AbstractNode $node */ - foreach ($nodes as $node) { - if ($rule['tag'] == '*' || - $rule['tag'] == $node->getTag()->name() - ) { - ++$count; - if ($count == $rule['key']) { - // found the node we wanted - return [$node]; - } - } - } - - return []; - } - - $options = $this->flattenOptions($options); - - $return = []; - /** @var InnerNode $node */ - foreach ($nodes as $node) { - // check if we are a leaf - if ($node instanceof LeafNode || - ! $node->hasChildren() - ) { - continue; - } - - $children = []; - $child = $node->firstChild(); - while ( ! is_null($child)) { - // wild card, grab all - if ($rule['tag'] == '*' && is_null($rule['key'])) { - $return[] = $child; - try { - $child = $node->nextChild($child->id()); - } catch (ChildNotFoundException $e) { - // no more children - $child = null; - } - continue; - } - - $pass = true; - // check tag - if ( ! empty($rule['tag']) && $rule['tag'] != $child->getTag()->name() && - $rule['tag'] != '*' - ) { - // child failed tag check - $pass = false; - } - - // check key - if ($pass && ! is_null($rule['key'])) { - if ($rule['noKey']) { - if ( ! is_null($child->getAttribute($rule['key']))) { - $pass = false; - } - } else { - if ($rule['key'] != 'plaintext' && - is_null($child->getAttribute($rule['key'])) - ) { - $pass = false; - } - } - } - - // compare values - if ($pass && ! is_null($rule['key']) && - ! is_null($rule['value']) && $rule['value'] != '*' - ) { - if ($rule['key'] == 'plaintext') { - // plaintext search - $nodeValue = $child->text(); - } else { - // normal search - $nodeValue = $child->getAttribute($rule['key']); - } - - $check = $this->match($rule['operator'], $rule['value'], $nodeValue); - - // handle multiple classes - if ( ! $check && $rule['key'] == 'class') { - $childClasses = explode(' ', $child->getAttribute('class')); - foreach ($childClasses as $class) { - if ( ! empty($class)) { - $check = $this->match($rule['operator'], $rule['value'], $class); - } - if ($check) { - break; - } - } - } - - if ( ! $check) { - $pass = false; - } - } - - if ($pass) { - // it passed all checks - $return[] = $child; - } else { - // this child failed to be matched - if ($child instanceof InnerNode && - $child->hasChildren() - ) { - // we still want to check its children - $children[] = $child; - } - } - - try { - // get next child - $child = $node->nextChild($child->id()); - } catch (ChildNotFoundException $e) { - // no more children - $child = null; - } - } - - if (( ! isset($options['checkGrandChildren']) || - $options['checkGrandChildren']) - && count($children) > 0 - ) { - // we have children that failed but are not leaves. - $matches = $this->seek($children, $rule, $options); - foreach ($matches as $match) { - $return[] = $match; - } - } - } - - return $return; - } - - /** - * Attempts to match the given arguments with the given operator. - * - * @param string $operator - * @param string $pattern - * @param string $value - * @return bool - */ - protected function match($operator, $pattern, $value) - { - $value = strtolower($value); - $pattern = strtolower($pattern); - switch ($operator) { - case '=': - return $value === $pattern; - case '!=': - return $value !== $pattern; - case '^=': - return preg_match('/^'.preg_quote($pattern, '/').'/', $value); - case '$=': - return preg_match('/'.preg_quote($pattern, '/').'$/', $value); - case '*=': - if ($pattern[0] == '/') { - return preg_match($pattern, $value); - } - - return preg_match("/".$pattern."/i", $value); - } - - return false; - } - - /** - * Attempts to figure out what the alteration will be for - * the next element. - * - * @param array $rule - * @return array - */ - protected function alterNext($rule) - { - $options = []; - if ($rule['tag'] == '>') { - $options['checkGrandChildren'] = false; - } - - return $options; - } - - /** - * Flattens the option array. - * - * @param array $optionsArray - * @return array - */ - protected function flattenOptions(array $optionsArray) - { - $options = []; - foreach ($optionsArray as $optionArray) { - foreach ($optionArray as $key => $option) { - $options[$key] = $option; - } - } - - return $options; - } -} diff --git a/Utils/PHPHtmlParser/StaticDom.php b/Utils/PHPHtmlParser/StaticDom.php deleted file mode 100644 index 2d41d4d..0000000 --- a/Utils/PHPHtmlParser/StaticDom.php +++ /dev/null @@ -1,113 +0,0 @@ -<?php -namespace PHPHtmlParser; - -use PHPHtmlParser\Exceptions\NotLoadedException; - -/** - * Class StaticDom - * - * @package PHPHtmlParser - */ -final class StaticDom -{ - - private static $dom = null; - - /** - * Attempts to call the given method on the most recent created dom - * from bellow. - * - * @param string $method - * @param array $arguments - * @throws NotLoadedException - * @return mixed - */ - public static function __callStatic($method, $arguments) - { - if (self::$dom instanceof Dom) { - return call_user_func_array([self::$dom, $method], $arguments); - } else { - throw new NotLoadedException('The dom is not loaded. Can not call a dom method.'); - } - } - - /** - * Call this to mount the static facade. The facade allows you to use - * this object as a $className. - * - * @param string $className - * @param Dom $dom - * @return bool - */ - public static function mount($className = 'Dom', Dom $dom = null) - { - if (class_exists($className)) { - return false; - } - class_alias(__CLASS__, $className); - if ($dom instanceof Dom) { - self::$dom = $dom; - } - - return true; - } - - /** - * Creates a new dom object and calls load() on the - * new object. - * - * @param string $str - * @return $this - */ - public static function load($str) - { - $dom = new Dom; - self::$dom = $dom; - - return $dom->load($str); - } - - /** - * Creates a new dom object and calls loadFromFile() on the - * new object. - * - * @param string $file - * @return $this - */ - public static function loadFromFile($file) - { - $dom = new Dom; - self::$dom = $dom; - - return $dom->loadFromFile($file); - } - - /** - * Creates a new dom object and calls loadFromUrl() on the - * new object. - * - * @param string $url - * @param array $options - * @param CurlInterface $curl - * @return $this - */ - public static function loadFromUrl($url, $options = [], CurlInterface $curl = null) - { - $dom = new Dom; - self::$dom = $dom; - if (is_null($curl)) { - // use the default curl interface - $curl = new Curl; - } - - return $dom->loadFromUrl($url, $options, $curl); - } - - /** - * Sets the $dom variable to null. - */ - public static function unload() - { - self::$dom = null; - } -} diff --git a/Utils/PHPThumb/GD.class.php b/Utils/PHPThumb/GD.class.php deleted file mode 100644 index 7e65ea9..0000000 --- a/Utils/PHPThumb/GD.class.php +++ /dev/null @@ -1,1410 +0,0 @@ -<?php - -namespace Utils\PHPThumb; - -/** - * PhpThumb : PHP Thumb Library <http://phpthumb.gxdlabs.com> - * Copyright (c) 2009, Ian Selby/Gen X Design - * - * Author(s): Ian Selby <ian@gen-x-design.com> - * - * Licensed under the MIT License - * Redistributions of files must retain the above copyright notice. - * - * @author Ian Selby <ian@gen-x-design.com> - * @copyright Copyright (c) 2009 Gen X Design - * @link http://phpthumb.gxdlabs.com - * @license http://www.opensource.org/licenses/mit-license.php The MIT License - */ - -class GD extends PHPThumb -{ - /** - * The prior image (before manipulation) - * - * @var resource - */ - protected $oldImage; - - /** - * The working image (used during manipulation) - * - * @var resource - */ - protected $workingImage; - - /** - * The current dimensions of the image - * - * @var array - */ - protected $currentDimensions; - - /** - * The new, calculated dimensions of the image - * - * @var array - */ - protected $newDimensions; - - /** - * The options for this class - * - * This array contains various options that determine the behavior in - * various functions throughout the class. Functions note which specific - * option key / values are used in their documentation - * - * @var array - */ - protected $options; - - /** - * The maximum width an image can be after resizing (in pixels) - * - * @var int - */ - protected $maxWidth; - - /** - * The maximum height an image can be after resizing (in pixels) - * - * @var int - */ - protected $maxHeight; - - /** - * The percentage to resize the image by - * - * @var int - */ - protected $percent; - - /** - * @param string $fileName - * @param array $options - * @param array $plugins - */ - public function __construct($fileName, $options = array(), array $plugins = array()) - { - parent::__construct($fileName, $options, $plugins); - - $this->determineFormat(); - $this->verifyFormatCompatiblity(); - - switch ($this->format) { - case 'GIF': - $this->oldImage = imagecreatefromgif($this->fileName); - break; - case 'JPG': - $this->oldImage = imagecreatefromjpeg($this->fileName); - break; - case 'PNG': - $this->oldImage = imagecreatefrompng($this->fileName); - break; - case 'STRING': - $this->oldImage = imagecreatefromstring($this->fileName); - break; - } - - $this->currentDimensions = array ( - 'width' => imagesx($this->oldImage), - 'height' => imagesy($this->oldImage) - ); - } - - public function __destruct() - { - if (is_resource($this->oldImage)) { - imagedestroy($this->oldImage); - } - - if (is_resource($this->workingImage)) { - imagedestroy($this->workingImage); - } - } - - /** - * Pad an image to desired dimensions. Moves the image into the center and fills the rest with $color. - * @param $width - * @param $height - * @param array $color - * @return GD - */ - public function pad($width, $height, $color = array(255, 255, 255)) - { - // no resize - woohoo! - if ($width == $this->currentDimensions['width'] && $height == $this->currentDimensions['height']) { - return $this; - } - - // create the working image - if (function_exists('imagecreatetruecolor')) { - $this->workingImage = imagecreatetruecolor($width, $height); - } else { - $this->workingImage = imagecreate($width, $height); - } - - // create the fill color - $fillColor = imagecolorallocate( - $this->workingImage, - $color[0], - $color[1], - $color[2] - ); - - // fill our working image with the fill color - imagefill( - $this->workingImage, - 0, - 0, - $fillColor - ); - - // copy the image into the center of our working image - imagecopyresampled( - $this->workingImage, - $this->oldImage, - intval(($width-$this->currentDimensions['width']) / 2), - intval(($height-$this->currentDimensions['height']) / 2), - 0, - 0, - $this->currentDimensions['width'], - $this->currentDimensions['height'], - $this->currentDimensions['width'], - $this->currentDimensions['height'] - ); - - // update all the variables and resources to be correct - $this->oldImage = $this->workingImage; - $this->currentDimensions['width'] = $width; - $this->currentDimensions['height'] = $height; - - return $this; - } - - /** - * Resizes an image to be no larger than $maxWidth or $maxHeight - * - * If either param is set to zero, then that dimension will not be considered as a part of the resize. - * Additionally, if $this->options['resizeUp'] is set to true (false by default), then this function will - * also scale the image up to the maximum dimensions provided. - * - * @param int $maxWidth The maximum width of the image in pixels - * @param int $maxHeight The maximum height of the image in pixels - * @return \Utils\PHPThumb\GD - */ - public function resize($maxWidth = 0, $maxHeight = 0) - { - // make sure our arguments are valid - if (!is_numeric($maxWidth)) { - throw new \InvalidArgumentException('$maxWidth must be numeric'); - } - - if (!is_numeric($maxHeight)) { - throw new \InvalidArgumentException('$maxHeight must be numeric'); - } - - // make sure we're not exceeding our image size if we're not supposed to - if ($this->options['resizeUp'] === false) { - $this->maxHeight = (intval($maxHeight) > $this->currentDimensions['height']) ? $this->currentDimensions['height'] : $maxHeight; - $this->maxWidth = (intval($maxWidth) > $this->currentDimensions['width']) ? $this->currentDimensions['width'] : $maxWidth; - } else { - $this->maxHeight = intval($maxHeight); - $this->maxWidth = intval($maxWidth); - } - - // get the new dimensions... - $this->calcImageSize($this->currentDimensions['width'], $this->currentDimensions['height']); - - // create the working image - if (function_exists('imagecreatetruecolor')) { - $this->workingImage = imagecreatetruecolor($this->newDimensions['newWidth'], $this->newDimensions['newHeight']); - } else { - $this->workingImage = imagecreate($this->newDimensions['newWidth'], $this->newDimensions['newHeight']); - } - - $this->preserveAlpha(); - - // and create the newly sized image - imagecopyresampled( - $this->workingImage, - $this->oldImage, - 0, - 0, - 0, - 0, - $this->newDimensions['newWidth'], - $this->newDimensions['newHeight'], - $this->currentDimensions['width'], - $this->currentDimensions['height'] - ); - - // update all the variables and resources to be correct - $this->oldImage = $this->workingImage; - $this->currentDimensions['width'] = $this->newDimensions['newWidth']; - $this->currentDimensions['height'] = $this->newDimensions['newHeight']; - - return $this; - } - - /** - * Adaptively Resizes the Image - * - * This function attempts to get the image to as close to the provided dimensions as possible, and then crops the - * remaining overflow (from the center) to get the image to be the size specified - * - * @param int $maxWidth - * @param int $maxHeight - * @return \Utils\PHPThumb\GD - */ - public function adaptiveResize($width, $height) - { - // make sure our arguments are valid - if ((!is_numeric($width) || $width == 0) && (!is_numeric($height) || $height == 0)) { - throw new \InvalidArgumentException('$width and $height must be numeric and greater than zero'); - } - - if (!is_numeric($width) || $width == 0) { - $width = ($height * $this->currentDimensions['width']) / $this->currentDimensions['height']; - } - - if (!is_numeric($height) || $height == 0) { - $height = ($width * $this->currentDimensions['height']) / $this->currentDimensions['width']; - } - - // make sure we're not exceeding our image size if we're not supposed to - if ($this->options['resizeUp'] === false) { - $this->maxHeight = (intval($height) > $this->currentDimensions['height']) ? $this->currentDimensions['height'] : $height; - $this->maxWidth = (intval($width) > $this->currentDimensions['width']) ? $this->currentDimensions['width'] : $width; - } else { - $this->maxHeight = intval($height); - $this->maxWidth = intval($width); - } - - $this->calcImageSizeStrict($this->currentDimensions['width'], $this->currentDimensions['height']); - - // resize the image to be close to our desired dimensions - $this->resize($this->newDimensions['newWidth'], $this->newDimensions['newHeight']); - - // reset the max dimensions... - if ($this->options['resizeUp'] === false) { - $this->maxHeight = (intval($height) > $this->currentDimensions['height']) ? $this->currentDimensions['height'] : $height; - $this->maxWidth = (intval($width) > $this->currentDimensions['width']) ? $this->currentDimensions['width'] : $width; - } else { - $this->maxHeight = intval($height); - $this->maxWidth = intval($width); - } - - // create the working image - if (function_exists('imagecreatetruecolor')) { - $this->workingImage = imagecreatetruecolor($this->maxWidth, $this->maxHeight); - } else { - $this->workingImage = imagecreate($this->maxWidth, $this->maxHeight); - } - - $this->preserveAlpha(); - - $cropWidth = $this->maxWidth; - $cropHeight = $this->maxHeight; - $cropX = 0; - $cropY = 0; - - // now, figure out how to crop the rest of the image... - if ($this->currentDimensions['width'] > $this->maxWidth) { - $cropX = intval(($this->currentDimensions['width'] - $this->maxWidth) / 2); - } elseif ($this->currentDimensions['height'] > $this->maxHeight) { - $cropY = intval(($this->currentDimensions['height'] - $this->maxHeight) / 2); - } - - imagecopyresampled( - $this->workingImage, - $this->oldImage, - 0, - 0, - $cropX, - $cropY, - $cropWidth, - $cropHeight, - $cropWidth, - $cropHeight - ); - - // update all the variables and resources to be correct - $this->oldImage = $this->workingImage; - $this->currentDimensions['width'] = $this->maxWidth; - $this->currentDimensions['height'] = $this->maxHeight; - - return $this; - } - - /** - * Adaptively Resizes the Image and Crops Using a Percentage - * - * This function attempts to get the image to as close to the provided dimensions as possible, and then crops the - * remaining overflow using a provided percentage to get the image to be the size specified. - * - * The percentage mean different things depending on the orientation of the original image. - * - * For Landscape images: - * --------------------- - * - * A percentage of 1 would crop the image all the way to the left, which would be the same as - * using adaptiveResizeQuadrant() with $quadrant = 'L' - * - * A percentage of 50 would crop the image to the center which would be the same as using - * adaptiveResizeQuadrant() with $quadrant = 'C', or even the original adaptiveResize() - * - * A percentage of 100 would crop the image to the image all the way to the right, etc, etc. - * Note that you can use any percentage between 1 and 100. - * - * For Portrait images: - * -------------------- - * - * This works the same as for Landscape images except that a percentage of 1 means top and 100 means bottom - * - * @param int $maxWidth - * @param int $maxHeight - * @param int $percent - * @return \Utils\PHPThumb\GD - */ - public function adaptiveResizePercent($width, $height, $percent = 50) - { - // make sure our arguments are valid - if (!is_numeric($width) || $width == 0) { - throw new \InvalidArgumentException('$width must be numeric and greater than zero'); - } - - if (!is_numeric($height) || $height == 0) { - throw new \InvalidArgumentException('$height must be numeric and greater than zero'); - } - - // make sure we're not exceeding our image size if we're not supposed to - if ($this->options['resizeUp'] === false) { - $this->maxHeight = (intval($height) > $this->currentDimensions['height']) ? $this->currentDimensions['height'] : $height; - $this->maxWidth = (intval($width) > $this->currentDimensions['width']) ? $this->currentDimensions['width'] : $width; - } else { - $this->maxHeight = intval($height); - $this->maxWidth = intval($width); - } - - $this->calcImageSizeStrict($this->currentDimensions['width'], $this->currentDimensions['height']); - - // resize the image to be close to our desired dimensions - $this->resize($this->newDimensions['newWidth'], $this->newDimensions['newHeight']); - - // reset the max dimensions... - if ($this->options['resizeUp'] === false) { - $this->maxHeight = (intval($height) > $this->currentDimensions['height']) ? $this->currentDimensions['height'] : $height; - $this->maxWidth = (intval($width) > $this->currentDimensions['width']) ? $this->currentDimensions['width'] : $width; - } else { - $this->maxHeight = intval($height); - $this->maxWidth = intval($width); - } - - // create the working image - if (function_exists('imagecreatetruecolor')) { - $this->workingImage = imagecreatetruecolor($this->maxWidth, $this->maxHeight); - } else { - $this->workingImage = imagecreate($this->maxWidth, $this->maxHeight); - } - - $this->preserveAlpha(); - - $cropWidth = $this->maxWidth; - $cropHeight = $this->maxHeight; - $cropX = 0; - $cropY = 0; - - // Crop the rest of the image using the quadrant - - if ($percent > 100) { - $percent = 100; - } elseif ($percent < 1) { - $percent = 1; - } - - if ($this->currentDimensions['width'] > $this->maxWidth) { - // Image is landscape - $maxCropX = $this->currentDimensions['width'] - $this->maxWidth; - $cropX = intval(($percent / 100) * $maxCropX); - - } elseif ($this->currentDimensions['height'] > $this->maxHeight) { - // Image is portrait - $maxCropY = $this->currentDimensions['height'] - $this->maxHeight; - $cropY = intval(($percent / 100) * $maxCropY); - } - - imagecopyresampled( - $this->workingImage, - $this->oldImage, - 0, - 0, - $cropX, - $cropY, - $cropWidth, - $cropHeight, - $cropWidth, - $cropHeight - ); - - // update all the variables and resources to be correct - $this->oldImage = $this->workingImage; - $this->currentDimensions['width'] = $this->maxWidth; - $this->currentDimensions['height'] = $this->maxHeight; - - return $this; - } - - /** - * Adaptively Resizes the Image and Crops Using a Quadrant - * - * This function attempts to get the image to as close to the provided dimensions as possible, and then crops the - * remaining overflow using the quadrant to get the image to be the size specified. - * - * The quadrants available are Top, Bottom, Center, Left, and Right: - * - * - * +---+---+---+ - * | | T | | - * +---+---+---+ - * | L | C | R | - * +---+---+---+ - * | | B | | - * +---+---+---+ - * - * Note that if your image is Landscape and you choose either of the Top or Bottom quadrants (which won't - * make sence since only the Left and Right would be available, then the Center quadrant will be used - * to crop. This would have exactly the same result as using adaptiveResize(). - * The same goes if your image is portrait and you choose either the Left or Right quadrants. - * - * @param int $maxWidth - * @param int $maxHeight - * @param string $quadrant T, B, C, L, R - * @return \Utils\PHPThumb\GD - */ - public function adaptiveResizeQuadrant($width, $height, $quadrant = 'C') - { - // make sure our arguments are valid - if (!is_numeric($width) || $width == 0) { - throw new \InvalidArgumentException('$width must be numeric and greater than zero'); - } - - if (!is_numeric($height) || $height == 0) { - throw new \InvalidArgumentException('$height must be numeric and greater than zero'); - } - - // make sure we're not exceeding our image size if we're not supposed to - if ($this->options['resizeUp'] === false) { - $this->maxHeight = (intval($height) > $this->currentDimensions['height']) ? $this->currentDimensions['height'] : $height; - $this->maxWidth = (intval($width) > $this->currentDimensions['width']) ? $this->currentDimensions['width'] : $width; - } else { - $this->maxHeight = intval($height); - $this->maxWidth = intval($width); - } - - $this->calcImageSizeStrict($this->currentDimensions['width'], $this->currentDimensions['height']); - - // resize the image to be close to our desired dimensions - $this->resize($this->newDimensions['newWidth'], $this->newDimensions['newHeight']); - - // reset the max dimensions... - if ($this->options['resizeUp'] === false) { - $this->maxHeight = (intval($height) > $this->currentDimensions['height']) ? $this->currentDimensions['height'] : $height; - $this->maxWidth = (intval($width) > $this->currentDimensions['width']) ? $this->currentDimensions['width'] : $width; - } else { - $this->maxHeight = intval($height); - $this->maxWidth = intval($width); - } - - // create the working image - if (function_exists('imagecreatetruecolor')) { - $this->workingImage = imagecreatetruecolor($this->maxWidth, $this->maxHeight); - } else { - $this->workingImage = imagecreate($this->maxWidth, $this->maxHeight); - } - - $this->preserveAlpha(); - - $cropWidth = $this->maxWidth; - $cropHeight = $this->maxHeight; - $cropX = 0; - $cropY = 0; - - // Crop the rest of the image using the quadrant - - if ($this->currentDimensions['width'] > $this->maxWidth) { - // Image is landscape - switch ($quadrant) { - case 'L': - $cropX = 0; - break; - case 'R': - $cropX = intval(($this->currentDimensions['width'] - $this->maxWidth)); - break; - case 'C': - default: - $cropX = intval(($this->currentDimensions['width'] - $this->maxWidth) / 2); - break; - } - } elseif ($this->currentDimensions['height'] > $this->maxHeight) { - // Image is portrait - switch ($quadrant) { - case 'T': - $cropY = 0; - break; - case 'B': - $cropY = intval(($this->currentDimensions['height'] - $this->maxHeight)); - break; - case 'C': - default: - $cropY = intval(($this->currentDimensions['height'] - $this->maxHeight) / 2); - break; - } - } - - imagecopyresampled( - $this->workingImage, - $this->oldImage, - 0, - 0, - $cropX, - $cropY, - $cropWidth, - $cropHeight, - $cropWidth, - $cropHeight - ); - - // update all the variables and resources to be correct - $this->oldImage = $this->workingImage; - $this->currentDimensions['width'] = $this->maxWidth; - $this->currentDimensions['height'] = $this->maxHeight; - - return $this; - } - - /** - * Resizes an image by a given percent uniformly, - * Percentage should be whole number representation (i.e. 1-100) - * - * @param int $percent - * @return GD - * @throws \InvalidArgumentException - */ - public function resizePercent($percent = 0) - { - if (!is_numeric($percent)) { - throw new \InvalidArgumentException ('$percent must be numeric'); - } - - $this->percent = intval($percent); - - $this->calcImageSizePercent($this->currentDimensions['width'], $this->currentDimensions['height']); - - if (function_exists('imagecreatetruecolor')) { - $this->workingImage = imagecreatetruecolor($this->newDimensions['newWidth'], $this->newDimensions['newHeight']); - } else { - $this->workingImage = imagecreate($this->newDimensions['newWidth'], $this->newDimensions['newHeight']); - } - - $this->preserveAlpha(); - - imagecopyresampled( - $this->workingImage, - $this->oldImage, - 0, - 0, - 0, - 0, - $this->newDimensions['newWidth'], - $this->newDimensions['newHeight'], - $this->currentDimensions['width'], - $this->currentDimensions['height'] - ); - - $this->oldImage = $this->workingImage; - $this->currentDimensions['width'] = $this->newDimensions['newWidth']; - $this->currentDimensions['height'] = $this->newDimensions['newHeight']; - - return $this; - } - - /** - * Crops an image from the center with provided dimensions - * - * If no height is given, the width will be used as a height, thus creating a square crop - * - * @param int $cropWidth - * @param int $cropHeight - * @return \Utils\PHPThumb\GD - */ - public function cropFromCenter($cropWidth, $cropHeight = null) - { - if (!is_numeric($cropWidth)) { - throw new \InvalidArgumentException('$cropWidth must be numeric'); - } - - if ($cropHeight !== null && !is_numeric($cropHeight)) { - throw new \InvalidArgumentException('$cropHeight must be numeric'); - } - - if ($cropHeight === null) { - $cropHeight = $cropWidth; - } - - $cropWidth = ($this->currentDimensions['width'] < $cropWidth) ? $this->currentDimensions['width'] : $cropWidth; - $cropHeight = ($this->currentDimensions['height'] < $cropHeight) ? $this->currentDimensions['height'] : $cropHeight; - - $cropX = intval(($this->currentDimensions['width'] - $cropWidth) / 2); - $cropY = intval(($this->currentDimensions['height'] - $cropHeight) / 2); - - $this->crop($cropX, $cropY, $cropWidth, $cropHeight); - - return $this; - } - - /** - * Vanilla Cropping - Crops from x,y with specified width and height - * - * @param int $startX - * @param int $startY - * @param int $cropWidth - * @param int $cropHeight - * @return \Utils\PHPThumb\GD - */ - public function crop($startX, $startY, $cropWidth, $cropHeight) - { - // validate input - if (!is_numeric($startX)) { - throw new \InvalidArgumentException('$startX must be numeric'); - } - - if (!is_numeric($startY)) { - throw new \InvalidArgumentException('$startY must be numeric'); - } - - if (!is_numeric($cropWidth)) { - throw new \InvalidArgumentException('$cropWidth must be numeric'); - } - - if (!is_numeric($cropHeight)) { - throw new \InvalidArgumentException('$cropHeight must be numeric'); - } - - // do some calculations - $cropWidth = ($this->currentDimensions['width'] < $cropWidth) ? $this->currentDimensions['width'] : $cropWidth; - $cropHeight = ($this->currentDimensions['height'] < $cropHeight) ? $this->currentDimensions['height'] : $cropHeight; - - // ensure everything's in bounds - if (($startX + $cropWidth) > $this->currentDimensions['width']) { - $startX = ($this->currentDimensions['width'] - $cropWidth); - } - - if (($startY + $cropHeight) > $this->currentDimensions['height']) { - $startY = ($this->currentDimensions['height'] - $cropHeight); - } - - if ($startX < 0) { - $startX = 0; - } - - if ($startY < 0) { - $startY = 0; - } - - // create the working image - if (function_exists('imagecreatetruecolor')) { - $this->workingImage = imagecreatetruecolor($cropWidth, $cropHeight); - } else { - $this->workingImage = imagecreate($cropWidth, $cropHeight); - } - - $this->preserveAlpha(); - - imagecopyresampled( - $this->workingImage, - $this->oldImage, - 0, - 0, - $startX, - $startY, - $cropWidth, - $cropHeight, - $cropWidth, - $cropHeight - ); - - $this->oldImage = $this->workingImage; - $this->currentDimensions['width'] = $cropWidth; - $this->currentDimensions['height'] = $cropHeight; - - return $this; - } - - /** - * Rotates image either 90 degrees clockwise or counter-clockwise - * - * @param string $direction - * @return \Utils\PHPThumb\GD - */ - public function rotateImage($direction = 'CW') - { - if ($direction == 'CW') { - $this->rotateImageNDegrees(90); - } else { - $this->rotateImageNDegrees(-90); - } - - return $this; - } - - /** - * Rotates image specified number of degrees - * - * @param int $degrees - * @return \Utils\PHPThumb\GD - */ - public function rotateImageNDegrees($degrees) - { - if (!is_numeric($degrees)) { - throw new \InvalidArgumentException('$degrees must be numeric'); - } - - if (!function_exists('imagerotate')) { - throw new \RuntimeException('Your version of GD does not support image rotation'); - } - - $this->workingImage = imagerotate($this->oldImage, $degrees, 0); - - $newWidth = $this->currentDimensions['height']; - $newHeight = $this->currentDimensions['width']; - $this->oldImage = $this->workingImage; - $this->currentDimensions['width'] = $newWidth; - $this->currentDimensions['height'] = $newHeight; - - return $this; - } - - /** - * Applies a filter to the image - * - * @param int $filter - * @return \Utils\PHPThumb\GD - */ - public function imageFilter($filter, $arg1 = false, $arg2 = false, $arg3 = false, $arg4 = false) - { - if (!is_numeric($filter)) { - throw new \InvalidArgumentException('$filter must be numeric'); - } - - if (!function_exists('imagefilter')) { - throw new \RuntimeException('Your version of GD does not support image filters'); - } - - $result = false; - if ($arg1 === false) { - $result = imagefilter($this->oldImage, $filter); - } elseif ($arg2 === false) { - $result = imagefilter($this->oldImage, $filter, $arg1); - } elseif ($arg3 === false) { - $result = imagefilter($this->oldImage, $filter, $arg1, $arg2); - } elseif ($arg4 === false) { - $result = imagefilter($this->oldImage, $filter, $arg1, $arg2, $arg3); - } else { - $result = imagefilter($this->oldImage, $filter, $arg1, $arg2, $arg3, $arg4); - } - - if (!$result) { - throw new \RuntimeException('GD imagefilter failed'); - } - - $this->workingImage = $this->oldImage; - - return $this; - } - - /** - * Shows an image - * - * This function will show the current image by first sending the appropriate header - * for the format, and then outputting the image data. If headers have already been sent, - * a runtime exception will be thrown - * - * @param bool $rawData Whether or not the raw image stream should be output - * @return \Utils\PHPThumb\GD - */ - public function show($rawData = false) - { - //Execute any plugins - if ($this->plugins) { - foreach ($this->plugins as $plugin) { - /* @var $plugin \Utils\PHPThumb\PluginInterface */ - $plugin->execute($this); - } - } - - if (headers_sent() && php_sapi_name() != 'cli') { - throw new \RuntimeException('Cannot show image, headers have already been sent'); - } - - // When the interlace option equals true or false call imageinterlace else leave it to default - if ($this->options['interlace'] === true) { - imageinterlace($this->oldImage, 1); - } elseif ($this->options['interlace'] === false) { - imageinterlace($this->oldImage, 0); - } - - switch ($this->format) { - case 'GIF': - if ($rawData === false) { - header('Content-type: image/gif'); - } - imagegif($this->oldImage); - break; - case 'JPG': - if ($rawData === false) { - header('Content-type: image/jpeg'); - } - imagejpeg($this->oldImage, null, $this->options['jpegQuality']); - break; - case 'PNG': - case 'STRING': - if ($rawData === false) { - header('Content-type: image/png'); - } - imagepng($this->oldImage); - break; - } - - return $this; - } - - /** - * Returns the Working Image as a String - * - * This function is useful for getting the raw image data as a string for storage in - * a database, or other similar things. - * - * @return string - */ - public function getImageAsString() - { - $data = null; - ob_start(); - $this->show(true); - $data = ob_get_contents(); - ob_end_clean(); - - return $data; - } - - /** - * Saves an image - * - * This function will make sure the target directory is writeable, and then save the image. - * - * If the target directory is not writeable, the function will try to correct the permissions (if allowed, this - * is set as an option ($this->options['correctPermissions']). If the target cannot be made writeable, then a - * \RuntimeException is thrown. - * - * @param string $fileName The full path and filename of the image to save - * @param string $format The format to save the image in (optional, must be one of [GIF,JPG,PNG] - * @return \Utils\PHPThumb\GD - */ - public function save($fileName, $format = null) - { - $validFormats = array('GIF', 'JPG', 'PNG'); - $format = ($format !== null) ? strtoupper($format) : $this->format; - - if (!in_array($format, $validFormats)) { - throw new \InvalidArgumentException("Invalid format type specified in save function: {$format}"); - } - - // make sure the directory is writeable - if (!is_writeable(dirname($fileName))) { - // try to correct the permissions - if ($this->options['correctPermissions'] === true) { - @chmod(dirname($fileName), 0777); - - // throw an exception if not writeable - if (!is_writeable(dirname($fileName))) { - throw new \RuntimeException("File is not writeable, and could not correct permissions: {$fileName}"); - } - } else { // throw an exception if not writeable - throw new \RuntimeException("File not writeable: {$fileName}"); - } - } - - // When the interlace option equals true or false call imageinterlace else leave it to default - if ($this->options['interlace'] === true) { - imageinterlace($this->oldImage, 1); - } elseif ($this->options['interlace'] === false) { - imageinterlace($this->oldImage, 0); - } - - switch ($format) { - case 'GIF': - imagegif($this->oldImage, $fileName); - break; - case 'JPG': - imagejpeg($this->oldImage, $fileName, $this->options['jpegQuality']); - break; - case 'PNG': - imagepng($this->oldImage, $fileName); - break; - } - - return $this; - } - - ################################# - # ----- GETTERS / SETTERS ----- # - ################################# - - /** - * Sets options for all operations. - * @param array $options - * @return GD - */ - public function setOptions(array $options = array()) - { - // we've yet to init the default options, so create them here - if (sizeof($this->options) == 0) { - $defaultOptions = array( - 'resizeUp' => false, - 'jpegQuality' => 100, - 'correctPermissions' => false, - 'preserveAlpha' => true, - 'alphaMaskColor' => array (255, 255, 255), - 'preserveTransparency' => true, - 'transparencyMaskColor' => array (0, 0, 0), - 'interlace' => null - ); - } else { // otherwise, let's use what we've got already - $defaultOptions = $this->options; - } - - $this->options = array_merge($defaultOptions, $options); - - return $this; - } - - /** - * Returns $currentDimensions. - * - * @see \Utils\PHPThumb\GD::$currentDimensions - */ - public function getCurrentDimensions() - { - return $this->currentDimensions; - } - - /** - * @param $currentDimensions - * @return GD - */ - public function setCurrentDimensions($currentDimensions) - { - $this->currentDimensions = $currentDimensions; - - return $this; - } - - /** - * @return int - */ - public function getMaxHeight() - { - return $this->maxHeight; - } - - /** - * @param $maxHeight - * @return GD - */ - public function setMaxHeight($maxHeight) - { - $this->maxHeight = $maxHeight; - - return $this; - } - - /** - * @return int - */ - public function getMaxWidth() - { - return $this->maxWidth; - } - - /** - * @param $maxWidth - * @return GD - */ - public function setMaxWidth($maxWidth) - { - $this->maxWidth = $maxWidth; - - return $this; - } - - /** - * Returns $newDimensions. - * - * @see \Utils\PHPThumb\GD::$newDimensions - */ - public function getNewDimensions() - { - return $this->newDimensions; - } - - /** - * Sets $newDimensions. - * - * @param object $newDimensions - * @see \Utils\PHPThumb\GD::$newDimensions - */ - public function setNewDimensions($newDimensions) - { - $this->newDimensions = $newDimensions; - - return $this; - } - - /** - * Returns $options. - * - * @see \Utils\PHPThumb\GD::$options - */ - public function getOptions() - { - return $this->options; - } - - /** - * Returns $percent. - * - * @see \Utils\PHPThumb\GD::$percent - */ - public function getPercent() - { - return $this->percent; - } - - /** - * Sets $percent. - * - * @param object $percent - * @see \Utils\PHPThumb\GD::$percent - */ - public function setPercent($percent) - { - $this->percent = $percent; - - return $this; - } - - /** - * Returns $oldImage. - * - * @see \Utils\PHPThumb\GD::$oldImage - */ - public function getOldImage() - { - return $this->oldImage; - } - - /** - * Sets $oldImage. - * - * @param object $oldImage - * @see \Utils\PHPThumb\GD::$oldImage - */ - public function setOldImage($oldImage) - { - $this->oldImage = $oldImage; - - return $this; - } - - /** - * Returns $workingImage. - * - * @see \Utils\PHPThumb\GD::$workingImage - */ - public function getWorkingImage() - { - return $this->workingImage; - } - - /** - * Sets $workingImage. - * - * @param object $workingImage - * @see \Utils\PHPThumb\GD::$workingImage - */ - public function setWorkingImage($workingImage) - { - $this->workingImage = $workingImage; - - return $this; - } - - - ################################# - # ----- UTILITY FUNCTIONS ----- # - ################################# - - /** - * Calculates a new width and height for the image based on $this->maxWidth and the provided dimensions - * - * @return array - * @param int $width - * @param int $height - */ - protected function calcWidth($width, $height) - { - $newWidthPercentage = (100 * $this->maxWidth) / $width; - $newHeight = ($height * $newWidthPercentage) / 100; - - return array( - 'newWidth' => intval($this->maxWidth), - 'newHeight' => intval($newHeight) - ); - } - - /** - * Calculates a new width and height for the image based on $this->maxWidth and the provided dimensions - * - * @return array - * @param int $width - * @param int $height - */ - protected function calcHeight($width, $height) - { - $newHeightPercentage = (100 * $this->maxHeight) / $height; - $newWidth = ($width * $newHeightPercentage) / 100; - - return array( - 'newWidth' => ceil($newWidth), - 'newHeight' => ceil($this->maxHeight) - ); - } - - /** - * Calculates a new width and height for the image based on $this->percent and the provided dimensions - * - * @return array - * @param int $width - * @param int $height - */ - protected function calcPercent($width, $height) - { - $newWidth = ($width * $this->percent) / 100; - $newHeight = ($height * $this->percent) / 100; - - return array( - 'newWidth' => ceil($newWidth), - 'newHeight' => ceil($newHeight) - ); - } - - /** - * Calculates the new image dimensions - * - * These calculations are based on both the provided dimensions and $this->maxWidth and $this->maxHeight - * - * @param int $width - * @param int $height - */ - protected function calcImageSize($width, $height) - { - $newSize = array( - 'newWidth' => $width, - 'newHeight' => $height - ); - - if ($this->maxWidth > 0) { - $newSize = $this->calcWidth($width, $height); - - if ($this->maxHeight > 0 && $newSize['newHeight'] > $this->maxHeight) { - $newSize = $this->calcHeight($newSize['newWidth'], $newSize['newHeight']); - } - } - - if ($this->maxHeight > 0) { - $newSize = $this->calcHeight($width, $height); - - if ($this->maxWidth > 0 && $newSize['newWidth'] > $this->maxWidth) { - $newSize = $this->calcWidth($newSize['newWidth'], $newSize['newHeight']); - } - } - - $this->newDimensions = $newSize; - } - - /** - * Calculates new image dimensions, not allowing the width and height to be less than either the max width or height - * - * @param int $width - * @param int $height - */ - protected function calcImageSizeStrict($width, $height) - { - // first, we need to determine what the longest resize dimension is.. - if ($this->maxWidth >= $this->maxHeight) { - // and determine the longest original dimension - if ($width > $height) { - $newDimensions = $this->calcHeight($width, $height); - - if ($newDimensions['newWidth'] < $this->maxWidth) { - $newDimensions = $this->calcWidth($width, $height); - } - } elseif ($height >= $width) { - $newDimensions = $this->calcWidth($width, $height); - - if ($newDimensions['newHeight'] < $this->maxHeight) { - $newDimensions = $this->calcHeight($width, $height); - } - } - } elseif ($this->maxHeight > $this->maxWidth) { - if ($width >= $height) { - $newDimensions = $this->calcWidth($width, $height); - - if ($newDimensions['newHeight'] < $this->maxHeight) { - $newDimensions = $this->calcHeight($width, $height); - } - } elseif ($height > $width) { - $newDimensions = $this->calcHeight($width, $height); - - if ($newDimensions['newWidth'] < $this->maxWidth) { - $newDimensions = $this->calcWidth($width, $height); - } - } - } - - $this->newDimensions = $newDimensions; - } - - /** - * Calculates new dimensions based on $this->percent and the provided dimensions - * - * @param int $width - * @param int $height - */ - protected function calcImageSizePercent($width, $height) - { - if ($this->percent > 0) { - $this->newDimensions = $this->calcPercent($width, $height); - } - } - - /** - * Determines the file format by mime-type - * - * This function will throw exceptions for invalid images / mime-types - * - */ - protected function determineFormat() - { - $formatInfo = getimagesize($this->fileName); - - // non-image files will return false - if ($formatInfo === false) { - if ($this->remoteImage) { - throw new \Exception("Could not determine format of remote image: {$this->fileName}"); - } else { - throw new \Exception("File is not a valid image: {$this->fileName}"); - } - } - - $mimeType = isset($formatInfo['mime']) ? $formatInfo['mime'] : null; - - switch ($mimeType) { - case 'image/gif': - $this->format = 'GIF'; - break; - case 'image/jpeg': - $this->format = 'JPG'; - break; - case 'image/png': - $this->format = 'PNG'; - break; - default: - throw new \Exception("Image format not supported: {$mimeType}"); - } - } - - /** - * Makes sure the correct GD implementation exists for the file type - * - */ - protected function verifyFormatCompatiblity() - { - $isCompatible = true; - $gdInfo = gd_info(); - - switch ($this->format) { - case 'GIF': - $isCompatible = $gdInfo['GIF Create Support']; - break; - case 'JPG': - $isCompatible = (isset($gdInfo['JPG Support']) || isset($gdInfo['JPEG Support'])) ? true : false; - break; - case 'PNG': - $isCompatible = $gdInfo[$this->format . ' Support']; - break; - default: - $isCompatible = false; - } - - if (!$isCompatible) { - // one last check for "JPEG" instead - $isCompatible = $gdInfo['JPEG Support']; - - if (!$isCompatible) { - throw new \Exception("Your GD installation does not support {$this->format} image types"); - } - } - } - - /** - * Preserves the alpha or transparency for PNG and GIF files - * - * Alpha / transparency will not be preserved if the appropriate options are set to false. - * Also, the GIF transparency is pretty skunky (the results aren't awesome), but it works like a - * champ... that's the nature of GIFs tho, so no huge surprise. - * - * This functionality was originally suggested by commenter Aimi (no links / site provided) - Thanks! :) - * - */ - protected function preserveAlpha() - { - if ($this->format == 'PNG' && $this->options['preserveAlpha'] === true) { - imagealphablending($this->workingImage, false); - - $colorTransparent = imagecolorallocatealpha( - $this->workingImage, - $this->options['alphaMaskColor'][0], - $this->options['alphaMaskColor'][1], - $this->options['alphaMaskColor'][2], - 0 - ); - - imagefill($this->workingImage, 0, 0, $colorTransparent); - imagesavealpha($this->workingImage, true); - } - // preserve transparency in GIFs... this is usually pretty rough tho - if ($this->format == 'GIF' && $this->options['preserveTransparency'] === true) { - $colorTransparent = imagecolorallocate( - $this->workingImage, - $this->options['transparencyMaskColor'][0], - $this->options['transparencyMaskColor'][1], - $this->options['transparencyMaskColor'][2] - ); - - imagecolortransparent($this->workingImage, $colorTransparent); - imagetruecolortopalette($this->workingImage, true, 256); - } - } -} \ No newline at end of file diff --git a/Utils/PHPThumb/PHPThumb.class.php b/Utils/PHPThumb/PHPThumb.class.php deleted file mode 100644 index 2efd476..0000000 --- a/Utils/PHPThumb/PHPThumb.class.php +++ /dev/null @@ -1,143 +0,0 @@ -<?php - -namespace Utils\PHPThumb; - -/** - * PhpThumb : PHP Thumb Library <http://phpthumb.gxdlabs.com> - * Copyright (c) 2009, Ian Selby/Gen X Design - * - * Author(s): Ian Selby <ian@gen-x-design.com> - * - * Licensed under the MIT License - * Redistributions of files must retain the above copyright notice. - * - * @author Ian Selby <ian@gen-x-design.com> - * @copyright Copyright (c) 2009 Gen X Design - * @link http://phpthumb.gxdlabs.com - * @license http://www.opensource.org/licenses/mit-license.php The MIT License - */ - -abstract class PHPThumb -{ - /** - * The name of the file we're manipulating - * This must include the path to the file (absolute paths recommended) - * - * @var string - */ - protected $fileName; - - /** - * What the file format is (mime-type) - * - * @var string - */ - protected $format; - - /** - * Whether or not the image is hosted remotely - * - * @var bool - */ - protected $remoteImage; - - /** - * An array of attached plugins to execute in order. - * @var array - */ - protected $plugins; - - /** - * @param $fileName - * @param array $options - * @param array $plugins - */ - public function __construct($fileName, array $options = array(), array $plugins = array()) - { - $this->fileName = $fileName; - $this->remoteImage = false; - - if(!$this->validateRequestedResource($fileName)) { - throw new \InvalidArgumentException("Image file not found: {$fileName}"); - } - - $this->setOptions($options); - - $this->plugins = $plugins; - } - - abstract public function setOptions(array $options = array()); - - /** - * Check the provided filename/url. If it is a url, validate that it is properly - * formatted. If it is a file, check to make sure that it actually exists on - * the filesystem. - * - * @param $filename - * @return bool - */ - protected function validateRequestedResource($filename) - { - if(false !== filter_var($filename, FILTER_VALIDATE_URL)) { - $this->remoteImage = true; - return true; - } - - if(file_exists($filename)) { - return true; - } - - return false; - } - - /** - * Returns the filename. - * @return string - */ - public function getFileName() - { - return $this->fileName; - } - - /** - * Sets the filename. - * @param $fileName - * @return PHPThumb - */ - public function setFileName($fileName) - { - $this->fileName = $fileName; - - return $this; - } - - /** - * Returns the format. - * @return string - */ - public function getFormat() - { - return $this->format; - } - - /** - * Sets the format. - * @param $format - * @return PHPThumb - */ - public function setFormat($format) - { - $this->format = $format; - - return $this; - } - - /** - * Returns whether the image exists remotely, i.e. it was loaded via a URL. - * @return bool - */ - public function getIsRemoteImage() - { - return $this->remoteImage; - } -} \ No newline at end of file diff --git a/Utils/PHPThumb/PluginInterface.class.php b/Utils/PHPThumb/PluginInterface.class.php deleted file mode 100644 index 9a6be19..0000000 --- a/Utils/PHPThumb/PluginInterface.class.php +++ /dev/null @@ -1,12 +0,0 @@ -<?php - -namespace Utils\PHPThumb; - -interface PluginInterface -{ - /** - * @param PHPThumb $phpthumb - * @return PHPThumb - */ - public function execute($phpthumb); -} diff --git a/Utils/PHPThumb/Plugins/Reflection.class.php b/Utils/PHPThumb/Plugins/Reflection.class.php deleted file mode 100644 index e4c7448..0000000 --- a/Utils/PHPThumb/Plugins/Reflection.class.php +++ /dev/null @@ -1,261 +0,0 @@ -<?php - -namespace Utils\PHPThumb\Plugins; - - /** - * GD Reflection Lib Plugin Definition File - * - * This file contains the plugin definition for the GD Reflection Lib for PHP Thumb - * - * PHP Version 5.3 with GD 2.0+ - * PhpThumb : PHP Thumb Library <http://phpthumb.gxdlabs.com> - * Copyright (c) 2009, Ian Selby/Gen X Design - * - * Author(s): Ian Selby <ian@gen-x-design.com> - * - * Licensed under the MIT License - * Redistributions of files must retain the above copyright notice. - * - * @author Ian Selby <ian@gen-x-design.com> - * @copyright Copyright (c) 2009 Gen X Design - * @link http://phpthumb.gxdlabs.com - * @license http://www.opensource.org/licenses/mit-license.php The MIT License - * @version 3.0 - * @package PhpThumb - * @filesource - */ - -/** - * GD Reflection Lib Plugin - * - * This plugin allows you to create those fun Apple(tm)-style reflections in your images - * - * @package PhpThumb - * @subpackage Plugins - */ -class Reflection implements \Utils\PHPThumb\PluginInterface -{ - protected $currentDimensions; - protected $workingImage; - protected $newImage; - protected $options; - - protected $percent; - protected $reflection; - protected $white; - protected $border; - protected $borderColor; - - public function __construct($percent, $reflection, $white, $border, $borderColor) - { - $this->percent = $percent; - $this->reflection = $reflection; - $this->white = $white; - $this->border = $border; - $this->borderColor = $borderColor; - } - - /** - * @param \Utils\PHPThumb\PHPThumb $phpthumb - * @return \Utils\PHPThumb\PHPThumb - */ - public function execute($phpthumb) - { - $this->currentDimensions = $phpthumb->getCurrentDimensions(); - $this->workingImage = $phpthumb->getWorkingImage(); - $this->newImage = $phpthumb->getOldImage(); - $this->options = $phpthumb->getOptions(); - - $width = $this->currentDimensions['width']; - $height = $this->currentDimensions['height']; - $this->reflectionHeight = intval($height * ($this->reflection / 100)); - $newHeight = $height + $this->reflectionHeight; - $reflectedPart = $height * ($this->percent / 100); - - $this->workingImage = imagecreatetruecolor($width, $newHeight); - - imagealphablending($this->workingImage, true); - - $colorToPaint = imagecolorallocatealpha( - $this->workingImage, - 255, - 255, - 255, - 0 - ); - - imagefilledrectangle( - $this->workingImage, - 0, - 0, - $width, - $newHeight, - $colorToPaint - ); - - imagecopyresampled( - $this->workingImage, - $this->newImage, - 0, - 0, - 0, - $reflectedPart, - $width, - $this->reflectionHeight, - $width, - ($height - $reflectedPart) - ); - - $this->imageFlipVertical(); - - imagecopy( - $this->workingImage, - $this->newImage, - 0, - 0, - 0, - 0, - $width, - $height - ); - - imagealphablending($this->workingImage, true); - - for ($i = 0; $i < $this->reflectionHeight; $i++) { - $colorToPaint = imagecolorallocatealpha( - $this->workingImage, - 255, - 255, - 255, - ($i / $this->reflectionHeight * -1 + 1) * $this->white - ); - - imagefilledrectangle( - $this->workingImage, - 0, - $height + $i, - $width, - $height + $i, - $colorToPaint - ); - } - - if ($this->border == true) { - $rgb = $this->hex2rgb($this->borderColor, false); - $colorToPaint = imagecolorallocate($this->workingImage, $rgb[0], $rgb[1], $rgb[2]); - - //top line - imageline( - $this->workingImage, - 0, - 0, - $width, - 0, - $colorToPaint - ); - - //bottom line - imageline( - $this->workingImage, - 0, - $height, - $width, - $height, - $colorToPaint - ); - - //left line - imageline( - $this->workingImage, - 0, - 0, - 0, - $height, - $colorToPaint - ); - - //right line - imageline( - $this->workingImage, - $width - 1, - 0, - $width - 1, - $height, - $colorToPaint - ); - } - - if ($phpthumb->getFormat() == 'PNG') { - $colorTransparent = imagecolorallocatealpha( - $this->workingImage, - $this->options['alphaMaskColor'][0], - $this->options['alphaMaskColor'][1], - $this->options['alphaMaskColor'][2], - 0 - ); - - imagefill($this->workingImage, 0, 0, $colorTransparent); - imagesavealpha($this->workingImage, true); - } - - $phpthumb->setOldImage($this->workingImage); - $this->currentDimensions['width'] = $width; - $this->currentDimensions['height'] = $newHeight; - $phpthumb->setCurrentDimensions($this->currentDimensions); - - return $phpthumb; - } - - /** - * Flips the image vertically - * - */ - protected function imageFlipVertical () - { - $x_i = imagesx($this->workingImage); - $y_i = imagesy($this->workingImage); - - for ($x = 0; $x < $x_i; $x++) { - for ($y = 0; $y < $y_i; $y++) { - imagecopy( - $this->workingImage, - $this->workingImage, - $x, - $y_i - $y - 1, - $x, - $y, - 1, - 1 - ); - } - } - } - - /** - * Converts a hex color to rgb tuples - * - * @return mixed - * @param string $hex - * @param bool $asString - */ - protected function hex2rgb ($hex, $asString = false) - { - // strip off any leading # - if (0 === strpos($hex, '#')) { - $hex = substr($hex, 1); - } elseif (0 === strpos($hex, '&H')) { - $hex = substr($hex, 2); - } - - // break into hex 3-tuple - $cutpoint = ceil(strlen($hex) / 2)-1; - $rgb = explode(':', wordwrap($hex, $cutpoint, ':', $cutpoint), 3); - - // convert each tuple to decimal - $rgb[0] = (isset($rgb[0]) ? hexdec($rgb[0]) : 0); - $rgb[1] = (isset($rgb[1]) ? hexdec($rgb[1]) : 0); - $rgb[2] = (isset($rgb[2]) ? hexdec($rgb[2]) : 0); - - return ($asString ? "{$rgb[0]} {$rgb[1]} {$rgb[2]}" : $rgb); - } -} \ No newline at end of file diff --git a/Utils/SabberwormCSS/CSSList/AtRuleBlockList.class.php b/Utils/SabberwormCSS/CSSList/AtRuleBlockList.class.php deleted file mode 100644 index 3a9fefb..0000000 --- a/Utils/SabberwormCSS/CSSList/AtRuleBlockList.class.php +++ /dev/null @@ -1,48 +0,0 @@ -<?php - -namespace Utils\SabberwormCSS\CSSList; - -use Utils\SabberwormCSS\Property\AtRule; - -/** - * A BlockList constructed by an unknown @-rule. @media rules are rendered into AtRuleBlockList objects. - */ -class AtRuleBlockList extends CSSBlockList implements AtRule { - - private $sType; - private $sArgs; - - public function __construct($sType, $sArgs = '', $iLineNo = 0) { - parent::__construct($iLineNo); - $this->sType = $sType; - $this->sArgs = $sArgs; - } - - public function atRuleName() { - return $this->sType; - } - - public function atRuleArgs() { - return $this->sArgs; - } - - public function __toString() { - return $this->render(new \Utils\SabberwormCSS\OutputFormat()); - } - - public function render(\Utils\SabberwormCSS\OutputFormat $oOutputFormat) { - $sArgs = $this->sArgs; - if($sArgs) { - $sArgs = ' ' . $sArgs; - } - $sResult = "@{$this->sType}$sArgs{$oOutputFormat->spaceBeforeOpeningBrace()}{"; - $sResult .= parent::render($oOutputFormat); - $sResult .= '}'; - return $sResult; - } - - public function isRootList() { - return false; - } - -} \ No newline at end of file diff --git a/Utils/SabberwormCSS/CSSList/CSSBlockList.class.php b/Utils/SabberwormCSS/CSSList/CSSBlockList.class.php deleted file mode 100644 index 29ae002..0000000 --- a/Utils/SabberwormCSS/CSSList/CSSBlockList.class.php +++ /dev/null @@ -1,82 +0,0 @@ -<?php - -namespace Utils\SabberwormCSS\CSSList; - -use Utils\SabberwormCSS\RuleSet\DeclarationBlock; -use Utils\SabberwormCSS\RuleSet\RuleSet; -use Utils\SabberwormCSS\Property\Selector; -use Utils\SabberwormCSS\Rule\Rule; -use Utils\SabberwormCSS\Value\ValueList; -use Utils\SabberwormCSS\Value\CSSFunction; - -/** - * A CSSBlockList is a CSSList whose DeclarationBlocks are guaranteed to contain valid declaration blocks or at-rules. - * Most CSSLists conform to this category but some at-rules (such as @keyframes) do not. - */ -abstract class CSSBlockList extends CSSList { - public function __construct($iLineNo = 0) { - parent::__construct($iLineNo); - } - - protected function allDeclarationBlocks(&$aResult) { - foreach ($this->aContents as $mContent) { - if ($mContent instanceof DeclarationBlock) { - $aResult[] = $mContent; - } else if ($mContent instanceof CSSBlockList) { - $mContent->allDeclarationBlocks($aResult); - } - } - } - - protected function allRuleSets(&$aResult) { - foreach ($this->aContents as $mContent) { - if ($mContent instanceof RuleSet) { - $aResult[] = $mContent; - } else if ($mContent instanceof CSSBlockList) { - $mContent->allRuleSets($aResult); - } - } - } - - protected function allValues($oElement, &$aResult, $sSearchString = null, $bSearchInFunctionArguments = false) { - if ($oElement instanceof CSSBlockList) { - foreach ($oElement->getContents() as $oContent) { - $this->allValues($oContent, $aResult, $sSearchString, $bSearchInFunctionArguments); - } - } else if ($oElement instanceof RuleSet) { - foreach ($oElement->getRules($sSearchString) as $oRule) { - $this->allValues($oRule, $aResult, $sSearchString, $bSearchInFunctionArguments); - } - } else if ($oElement instanceof Rule) { - $this->allValues($oElement->getValue(), $aResult, $sSearchString, $bSearchInFunctionArguments); - } else if ($oElement instanceof ValueList) { - if ($bSearchInFunctionArguments || !($oElement instanceof CSSFunction)) { - foreach ($oElement->getListComponents() as $mComponent) { - $this->allValues($mComponent, $aResult, $sSearchString, $bSearchInFunctionArguments); - } - } - } else { - //Non-List Value or CSSString (CSS identifier) - $aResult[] = $oElement; - } - } - - protected function allSelectors(&$aResult, $sSpecificitySearch = null) { - $aDeclarationBlocks = array(); - $this->allDeclarationBlocks($aDeclarationBlocks); - foreach ($aDeclarationBlocks as $oBlock) { - foreach ($oBlock->getSelectors() as $oSelector) { - if ($sSpecificitySearch === null) { - $aResult[] = $oSelector; - } else { - $sComparison = "\$bRes = {$oSelector->getSpecificity()} $sSpecificitySearch;"; - eval($sComparison); - if ($bRes) { - $aResult[] = $oSelector; - } - } - } - } - } - -} diff --git a/Utils/SabberwormCSS/CSSList/CSSList.class.php b/Utils/SabberwormCSS/CSSList/CSSList.class.php deleted file mode 100644 index 1584b92..0000000 --- a/Utils/SabberwormCSS/CSSList/CSSList.class.php +++ /dev/null @@ -1,157 +0,0 @@ -<?php - -namespace Utils\SabberwormCSS\CSSList; - -use Utils\SabberwormCSS\Renderable; -use Utils\SabberwormCSS\RuleSet\DeclarationBlock; -use Utils\SabberwormCSS\RuleSet\RuleSet; -use Utils\SabberwormCSS\Property\Selector; -use Utils\SabberwormCSS\Comment\Commentable; - -/** - * A CSSList is the most generic container available. Its contents include RuleSet as well as other CSSList objects. - * Also, it may contain Import and Charset objects stemming from @-rules. - */ -abstract class CSSList implements Renderable, Commentable { - - protected $aComments; - protected $aContents; - protected $iLineNo; - - public function __construct($iLineNo = 0) { - $this->aComments = array(); - $this->aContents = array(); - $this->iLineNo = $iLineNo; - } - - /** - * @return int - */ - public function getLineNo() { - return $this->iLineNo; - } - - public function append($oItem) { - $this->aContents[] = $oItem; - } - - /** - * Removes an item from the CSS list. - * @param RuleSet|Import|Charset|CSSList $oItemToRemove May be a RuleSet (most likely a DeclarationBlock), a Import, a Charset or another CSSList (most likely a MediaQuery) - */ - public function remove($oItemToRemove) { - $iKey = array_search($oItemToRemove, $this->aContents, true); - if ($iKey !== false) { - unset($this->aContents[$iKey]); - return true; - } - return false; - } - - /** - * Set the contents. - * @param array $aContents Objects to set as content. - */ - public function setContents(array $aContents) { - $this->aContents = array(); - foreach ($aContents as $content) { - $this->append($content); - } - } - - /** - * Removes a declaration block from the CSS list if it matches all given selectors. - * @param array|string $mSelector The selectors to match. - * @param boolean $bRemoveAll Whether to stop at the first declaration block found or remove all blocks - */ - public function removeDeclarationBlockBySelector($mSelector, $bRemoveAll = false) { - if ($mSelector instanceof DeclarationBlock) { - $mSelector = $mSelector->getSelectors(); - } - if (!is_array($mSelector)) { - $mSelector = explode(',', $mSelector); - } - foreach ($mSelector as $iKey => &$mSel) { - if (!($mSel instanceof Selector)) { - $mSel = new Selector($mSel); - } - } - foreach ($this->aContents as $iKey => $mItem) { - if (!($mItem instanceof DeclarationBlock)) { - continue; - } - if ($mItem->getSelectors() == $mSelector) { - unset($this->aContents[$iKey]); - if (!$bRemoveAll) { - return; - } - } - } - } - - public function __toString() { - return $this->render(new \Utils\SabberwormCSS\OutputFormat()); - } - - public function render(\Utils\SabberwormCSS\OutputFormat $oOutputFormat) { - $sResult = ''; - $bIsFirst = true; - $oNextLevel = $oOutputFormat; - if(!$this->isRootList()) { - $oNextLevel = $oOutputFormat->nextLevel(); - } - foreach ($this->aContents as $oContent) { - $sRendered = $oOutputFormat->safely(function() use ($oNextLevel, $oContent) { - return $oContent->render($oNextLevel); - }); - if($sRendered === null) { - continue; - } - if($bIsFirst) { - $bIsFirst = false; - $sResult .= $oNextLevel->spaceBeforeBlocks(); - } else { - $sResult .= $oNextLevel->spaceBetweenBlocks(); - } - $sResult .= $sRendered; - } - - if(!$bIsFirst) { - // Had some output - $sResult .= $oOutputFormat->spaceAfterBlocks(); - } - - return $sResult; - } - - /** - * Return true if the list can not be further outdented. Only important when rendering. - */ - public abstract function isRootList(); - - public function getContents() { - return $this->aContents; - } - - /** - * @param array $aComments Array of comments. - */ - public function addComments(array $aComments) { - $this->aComments = array_merge($this->aComments, $aComments); - } - - /** - * @return array - */ - public function getComments() { - return $this->aComments; - } - - /** - * @param array $aComments Array containing Comment objects. - */ - public function setComments(array $aComments) { - $this->aComments = $aComments; - } - -} diff --git a/Utils/SabberwormCSS/CSSList/Document.class.php b/Utils/SabberwormCSS/CSSList/Document.class.php deleted file mode 100644 index f6ecf08..0000000 --- a/Utils/SabberwormCSS/CSSList/Document.class.php +++ /dev/null @@ -1,105 +0,0 @@ -<?php - -namespace Utils\SabberwormCSS\CSSList; - -/** - * The root CSSList of a parsed file. Contains all top-level css contents, mostly declaration blocks, but also any @-rules encountered. - */ -class Document extends CSSBlockList { - /** - * Document constructor. - * @param int $iLineNo - */ - public function __construct($iLineNo = 0) { - parent::__construct($iLineNo); - } - - /** - * Gets all DeclarationBlock objects recursively. - */ - public function getAllDeclarationBlocks() { - $aResult = array(); - $this->allDeclarationBlocks($aResult); - return $aResult; - } - - /** - * @deprecated use getAllDeclarationBlocks() - */ - public function getAllSelectors() { - return $this->getAllDeclarationBlocks(); - } - - /** - * Returns all RuleSet objects found recursively in the tree. - */ - public function getAllRuleSets() { - $aResult = array(); - $this->allRuleSets($aResult); - return $aResult; - } - - /** - * Returns all Value objects found recursively in the tree. - * @param (object|string) $mElement the CSSList or RuleSet to start the search from (defaults to the whole document). If a string is given, it is used as rule name filter (@see{RuleSet->getRules()}). - * @param (bool) $bSearchInFunctionArguments whether to also return Value objects used as Function arguments. - */ - public function getAllValues($mElement = null, $bSearchInFunctionArguments = false) { - $sSearchString = null; - if ($mElement === null) { - $mElement = $this; - } else if (is_string($mElement)) { - $sSearchString = $mElement; - $mElement = $this; - } - $aResult = array(); - $this->allValues($mElement, $aResult, $sSearchString, $bSearchInFunctionArguments); - return $aResult; - } - - /** - * Returns all Selector objects found recursively in the tree. - * Note that this does not yield the full DeclarationBlock that the selector belongs to (and, currently, there is no way to get to that). - * @param $sSpecificitySearch An optional filter by specificity. May contain a comparison operator and a number or just a number (defaults to "=="). - * @example getSelectorsBySpecificity('>= 100') - */ - public function getSelectorsBySpecificity($sSpecificitySearch = null) { - if (is_numeric($sSpecificitySearch) || is_numeric($sSpecificitySearch[0])) { - $sSpecificitySearch = "== $sSpecificitySearch"; - } - $aResult = array(); - $this->allSelectors($aResult, $sSpecificitySearch); - return $aResult; - } - - /** - * Expands all shorthand properties to their long value - */ - public function expandShorthands() { - foreach ($this->getAllDeclarationBlocks() as $oDeclaration) { - $oDeclaration->expandShorthands(); - } - } - - /** - * Create shorthands properties whenever possible - */ - public function createShorthands() { - foreach ($this->getAllDeclarationBlocks() as $oDeclaration) { - $oDeclaration->createShorthands(); - } - } - - // Override render() to make format argument optional - public function render(\Utils\SabberwormCSS\OutputFormat $oOutputFormat = null) { - if($oOutputFormat === null) { - $oOutputFormat = new \Utils\SabberwormCSS\OutputFormat(); - } - return parent::render($oOutputFormat); - } - - public function isRootList() { - return true; - } - -} \ No newline at end of file diff --git a/Utils/SabberwormCSS/CSSList/KeyFrame.class.php b/Utils/SabberwormCSS/CSSList/KeyFrame.class.php deleted file mode 100644 index 8b5689d..0000000 --- a/Utils/SabberwormCSS/CSSList/KeyFrame.class.php +++ /dev/null @@ -1,56 +0,0 @@ -<?php - -namespace Utils\SabberwormCSS\CSSList; - -use Utils\SabberwormCSS\Property\AtRule; - -class KeyFrame extends CSSList implements AtRule { - - private $vendorKeyFrame; - private $animationName; - - public function __construct($iLineNo = 0) { - parent::__construct($iLineNo); - $this->vendorKeyFrame = null; - $this->animationName = null; - } - - public function setVendorKeyFrame($vendorKeyFrame) { - $this->vendorKeyFrame = $vendorKeyFrame; - } - - public function getVendorKeyFrame() { - return $this->vendorKeyFrame; - } - - public function setAnimationName($animationName) { - $this->animationName = $animationName; - } - - public function getAnimationName() { - return $this->animationName; - } - - public function __toString() { - return $this->render(new \Utils\SabberwormCSS\OutputFormat()); - } - - public function render(\Utils\SabberwormCSS\OutputFormat $oOutputFormat) { - $sResult = "@{$this->vendorKeyFrame} {$this->animationName}{$oOutputFormat->spaceBeforeOpeningBrace()}{"; - $sResult .= parent::render($oOutputFormat); - $sResult .= '}'; - return $sResult; - } - - public function isRootList() { - return false; - } - - public function atRuleName() { - return $this->vendorKeyFrame; - } - - public function atRuleArgs() { - return $this->animationName; - } -} diff --git a/Utils/SabberwormCSS/Comment/Comment.class.php b/Utils/SabberwormCSS/Comment/Comment.class.php deleted file mode 100644 index 031b28a..0000000 --- a/Utils/SabberwormCSS/Comment/Comment.class.php +++ /dev/null @@ -1,51 +0,0 @@ -<?php - -namespace Utils\SabberwormCSS\Comment; - -use Utils\SabberwormCSS\Renderable; - -class Comment implements Renderable { - protected $iLineNo; - protected $sComment; - - public function __construct($sComment = '', $iLineNo = 0) { - $this->sComment = $sComment; - $this->iLineNo = $iLineNo; - } - - /** - * @return string - */ - public function getComment() { - return $this->sComment; - } - - /** - * @return int - */ - public function getLineNo() { - return $this->iLineNo; - } - - /** - * @return string - */ - public function setComment($sComment) { - $this->sComment = $sComment; - } - - /** - * @return string - */ - public function __toString() { - return $this->render(new \Utils\SabberwormCSS\OutputFormat()); - } - - /** - * @return string - */ - public function render(\Utils\SabberwormCSS\OutputFormat $oOutputFormat) { - return '/*' . $this->sComment . '*/'; - } - -} diff --git a/Utils/SabberwormCSS/Comment/Commentable.class.php b/Utils/SabberwormCSS/Comment/Commentable.class.php deleted file mode 100644 index ce2a343..0000000 --- a/Utils/SabberwormCSS/Comment/Commentable.class.php +++ /dev/null @@ -1,23 +0,0 @@ -<?php - -namespace Utils\SabberwormCSS\Comment; - -interface Commentable { - - /** - * @param array $aComments Array of comments. - */ - public function addComments(array $aComments); - - /** - * @return array - */ - public function getComments(); - - /** - * @param array $aComments Array containing Comment objects. - */ - public function setComments(array $aComments); - - -} diff --git a/Utils/SabberwormCSS/OutputFormat.class.php b/Utils/SabberwormCSS/OutputFormat.class.php deleted file mode 100644 index 4e65fef..0000000 --- a/Utils/SabberwormCSS/OutputFormat.class.php +++ /dev/null @@ -1,289 +0,0 @@ -<?php - -namespace Utils\SabberwormCSS; - -use Utils\SabberwormCSS\Parsing\OutputException; - -class OutputFormat { - /** - * Value format - */ - // " means double-quote, ' means single-quote - public $sStringQuotingType = '"'; - // Output RGB colors in hash notation if possible - public $bRGBHashNotation = true; - - /** - * Declaration format - */ - // Semicolon after the last rule of a declaration block can be omitted. To do that, set this false. - public $bSemicolonAfterLastRule = true; - - /** - * Spacing - * Note that these strings are not sanity-checked: the value should only consist of whitespace - * Any newline character will be indented according to the current level. - * The triples (After, Before, Between) can be set using a wildcard (e.g. `$oFormat->set('Space*Rules', "\n");`) - */ - public $sSpaceAfterRuleName = ' '; - - public $sSpaceBeforeRules = ''; - public $sSpaceAfterRules = ''; - public $sSpaceBetweenRules = ''; - - public $sSpaceBeforeBlocks = ''; - public $sSpaceAfterBlocks = ''; - public $sSpaceBetweenBlocks = "\n"; - - // This is what’s printed before and after the comma if a declaration block contains multiple selectors. - public $sSpaceBeforeSelectorSeparator = ''; - public $sSpaceAfterSelectorSeparator = ' '; - // This is what’s printed after the comma of value lists - public $sSpaceBeforeListArgumentSeparator = ''; - public $sSpaceAfterListArgumentSeparator = ''; - - public $sSpaceBeforeOpeningBrace = ' '; - - /** - * Indentation - */ - // Indentation character(s) per level. Only applicable if newlines are used in any of the spacing settings. - public $sIndentation = "\t"; - - /** - * Output exceptions. - */ - public $bIgnoreExceptions = false; - - - private $oFormatter = null; - private $oNextLevelFormat = null; - private $iIndentationLevel = 0; - - public function __construct() { - } - - public function get($sName) { - $aVarPrefixes = array('a', 's', 'm', 'b', 'f', 'o', 'c', 'i'); - foreach($aVarPrefixes as $sPrefix) { - $sFieldName = $sPrefix.ucfirst($sName); - if(isset($this->$sFieldName)) { - return $this->$sFieldName; - } - } - return null; - } - - public function set($aNames, $mValue) { - $aVarPrefixes = array('a', 's', 'm', 'b', 'f', 'o', 'c', 'i'); - if(is_string($aNames) && strpos($aNames, '*') !== false) { - $aNames = array(str_replace('*', 'Before', $aNames), str_replace('*', 'Between', $aNames), str_replace('*', 'After', $aNames)); - } else if(!is_array($aNames)) { - $aNames = array($aNames); - } - foreach($aVarPrefixes as $sPrefix) { - $bDidReplace = false; - foreach($aNames as $sName) { - $sFieldName = $sPrefix.ucfirst($sName); - if(isset($this->$sFieldName)) { - $this->$sFieldName = $mValue; - $bDidReplace = true; - } - } - if($bDidReplace) { - return $this; - } - } - // Break the chain so the user knows this option is invalid - return false; - } - - public function __call($sMethodName, $aArguments) { - if(strpos($sMethodName, 'set') === 0) { - return $this->set(substr($sMethodName, 3), $aArguments[0]); - } else if(strpos($sMethodName, 'get') === 0) { - return $this->get(substr($sMethodName, 3)); - } else if(method_exists('\\Utils\\SabberwormCSS\\OutputFormatter', $sMethodName)) { - return call_user_func_array(array($this->getFormatter(), $sMethodName), $aArguments); - } else { - throw new \Exception('Unknown OutputFormat method called: '.$sMethodName); - } - } - - public function indentWithTabs($iNumber = 1) { - return $this->setIndentation(str_repeat("\t", $iNumber)); - } - - public function indentWithSpaces($iNumber = 2) { - return $this->setIndentation(str_repeat(" ", $iNumber)); - } - - public function nextLevel() { - if($this->oNextLevelFormat === null) { - $this->oNextLevelFormat = clone $this; - $this->oNextLevelFormat->iIndentationLevel++; - $this->oNextLevelFormat->oFormatter = null; - } - return $this->oNextLevelFormat; - } - - public function beLenient() { - $this->bIgnoreExceptions = true; - } - - public function getFormatter() { - if($this->oFormatter === null) { - $this->oFormatter = new OutputFormatter($this); - } - return $this->oFormatter; - } - - public function level() { - return $this->iIndentationLevel; - } - - public static function create() { - return new OutputFormat(); - } - - public static function createCompact() { - return self::create()->set('Space*Rules', "")->set('Space*Blocks', "")->setSpaceAfterRuleName('')->setSpaceBeforeOpeningBrace('')->setSpaceAfterSelectorSeparator(''); - } - - public static function createPretty() { - return self::create()->set('Space*Rules', "\n")->set('Space*Blocks', "\n")->setSpaceBetweenBlocks("\n\n")->set('SpaceAfterListArgumentSeparator', array('default' => '', ',' => ' ')); - } -} - -class OutputFormatter { - private $oFormat; - - public function __construct(OutputFormat $oFormat) { - $this->oFormat = $oFormat; - } - - public function space($sName, $sType = null) { - $sSpaceString = $this->oFormat->get("Space$sName"); - // If $sSpaceString is an array, we have multple values configured depending on the type of object the space applies to - if(is_array($sSpaceString)) { - if($sType !== null && isset($sSpaceString[$sType])) { - $sSpaceString = $sSpaceString[$sType]; - } else { - $sSpaceString = reset($sSpaceString); - } - } - return $this->prepareSpace($sSpaceString); - } - - public function spaceAfterRuleName() { - return $this->space('AfterRuleName'); - } - - public function spaceBeforeRules() { - return $this->space('BeforeRules'); - } - - public function spaceAfterRules() { - return $this->space('AfterRules'); - } - - public function spaceBetweenRules() { - return $this->space('BetweenRules'); - } - - public function spaceBeforeBlocks() { - return $this->space('BeforeBlocks'); - } - - public function spaceAfterBlocks() { - return $this->space('AfterBlocks'); - } - - public function spaceBetweenBlocks() { - return $this->space('BetweenBlocks'); - } - - public function spaceBeforeSelectorSeparator() { - return $this->space('BeforeSelectorSeparator'); - } - - public function spaceAfterSelectorSeparator() { - return $this->space('AfterSelectorSeparator'); - } - - public function spaceBeforeListArgumentSeparator($sSeparator) { - return $this->space('BeforeListArgumentSeparator', $sSeparator); - } - - public function spaceAfterListArgumentSeparator($sSeparator) { - return $this->space('AfterListArgumentSeparator', $sSeparator); - } - - public function spaceBeforeOpeningBrace() { - return $this->space('BeforeOpeningBrace'); - } - - /** - * Runs the given code, either swallowing or passing exceptions, depending on the bIgnoreExceptions setting. - */ - public function safely($cCode) { - if($this->oFormat->get('IgnoreExceptions')) { - // If output exceptions are ignored, run the code with exception guards - try { - return $cCode(); - } catch (OutputException $e) { - return null; - } //Do nothing - } else { - // Run the code as-is - return $cCode(); - } - } - - /** - * Clone of the implode function but calls ->render with the current output format instead of __toString() - */ - public function implode($sSeparator, $aValues, $bIncreaseLevel = false) { - $sResult = ''; - $oFormat = $this->oFormat; - if($bIncreaseLevel) { - $oFormat = $oFormat->nextLevel(); - } - $bIsFirst = true; - foreach($aValues as $mValue) { - if($bIsFirst) { - $bIsFirst = false; - } else { - $sResult .= $sSeparator; - } - if($mValue instanceof \Utils\SabberwormCSS\Renderable) { - $sResult .= $mValue->render($oFormat); - } else { - $sResult .= $mValue; - } - } - return $sResult; - } - - public function removeLastSemicolon($sString) { - if($this->oFormat->get('SemicolonAfterLastRule')) { - return $sString; - } - $sString = explode(';', $sString); - if(count($sString) < 2) { - return $sString[0]; - } - $sLast = array_pop($sString); - $sNextToLast = array_pop($sString); - array_push($sString, $sNextToLast.$sLast); - return implode(';', $sString); - } - - private function prepareSpace($sSpaceString) { - return str_replace("\n", "\n".$this->indent(), $sSpaceString); - } - - private function indent() { - return str_repeat($this->oFormat->sIndentation, $this->oFormat->level()); - } -} \ No newline at end of file diff --git a/Utils/SabberwormCSS/Parser.class.php b/Utils/SabberwormCSS/Parser.class.php deleted file mode 100644 index ad48c31..0000000 --- a/Utils/SabberwormCSS/Parser.class.php +++ /dev/null @@ -1,728 +0,0 @@ -<?php - -namespace Utils\SabberwormCSS; - -use Utils\SabberwormCSS\CSSList\CSSList; -use Utils\SabberwormCSS\CSSList\Document; -use Utils\SabberwormCSS\CSSList\KeyFrame; -use Utils\SabberwormCSS\Parsing\SourceException; -use Utils\SabberwormCSS\Property\AtRule; -use Utils\SabberwormCSS\Property\Import; -use Utils\SabberwormCSS\Property\Charset; -use Utils\SabberwormCSS\Property\CSSNamespace; -use Utils\SabberwormCSS\RuleSet\AtRuleSet; -use Utils\SabberwormCSS\CSSList\AtRuleBlockList; -use Utils\SabberwormCSS\RuleSet\DeclarationBlock; -use Utils\SabberwormCSS\Value\CSSFunction; -use Utils\SabberwormCSS\Value\RuleValueList; -use Utils\SabberwormCSS\Value\Size; -use Utils\SabberwormCSS\Value\Color; -use Utils\SabberwormCSS\Value\URL; -use Utils\SabberwormCSS\Value\CSSString; -use Utils\SabberwormCSS\Rule\Rule; -use Utils\SabberwormCSS\Parsing\UnexpectedTokenException; -use Utils\SabberwormCSS\Comment\Comment; - -/** - * Parser class parses CSS from text into a data structure. - */ -class Parser { - - private $sText; - private $aText; - private $iCurrentPosition; - private $oParserSettings; - private $sCharset; - private $iLength; - private $blockRules; - private $aSizeUnits; - private $iLineNo; - - /** - * Parser constructor. - * Note that that iLineNo starts from 1 and not 0 - * - * @param $sText - * @param Settings|null $oParserSettings - * @param int $iLineNo - */ - public function __construct($sText, Settings $oParserSettings = null, $iLineNo = 1) { - $this->sText = $sText; - $this->iCurrentPosition = 0; - $this->iLineNo = $iLineNo; - if ($oParserSettings === null) { - $oParserSettings = Settings::create(); - } - $this->oParserSettings = $oParserSettings; - $this->blockRules = explode('/', AtRule::BLOCK_RULES); - - foreach (explode('/', Size::ABSOLUTE_SIZE_UNITS.'/'.Size::RELATIVE_SIZE_UNITS.'/'.Size::NON_SIZE_UNITS) as $val) { - $iSize = strlen($val); - if(!isset($this->aSizeUnits[$iSize])) { - $this->aSizeUnits[$iSize] = array(); - } - $this->aSizeUnits[$iSize][strtolower($val)] = $val; - } - ksort($this->aSizeUnits, SORT_NUMERIC); - } - - public function setCharset($sCharset) { - $this->sCharset = $sCharset; - $this->aText = $this->strsplit($this->sText); - $this->iLength = count($this->aText); - } - - public function getCharset() { - return $this->sCharset; - } - - public function parse() { - $this->setCharset($this->oParserSettings->sDefaultCharset); - $oResult = new Document($this->iLineNo); - $this->parseDocument($oResult); - return $oResult; - } - - private function parseDocument(Document $oDocument) { - $this->parseList($oDocument, true); - } - - private function parseList(CSSList $oList, $bIsRoot = false) { - while (!$this->isEnd()) { - $comments = $this->consumeWhiteSpace(); - $oListItem = null; - if($this->oParserSettings->bLenientParsing) { - try { - $oListItem = $this->parseListItem($oList, $bIsRoot); - } catch (UnexpectedTokenException $e) { - $oListItem = false; - } - } else { - $oListItem = $this->parseListItem($oList, $bIsRoot); - } - if($oListItem === null) { - // List parsing finished - return; - } - if($oListItem) { - $oListItem->setComments($comments); - $oList->append($oListItem); - } - } - if (!$bIsRoot) { - throw new SourceException("Unexpected end of document", $this->iLineNo); - } - } - - private function parseListItem(CSSList $oList, $bIsRoot = false) { - if ($this->comes('@')) { - $oAtRule = $this->parseAtRule(); - if($oAtRule instanceof Charset) { - if(!$bIsRoot) { - throw new UnexpectedTokenException('@charset may only occur in root document', '', 'custom', $this->iLineNo); - } - if(count($oList->getContents()) > 0) { - throw new UnexpectedTokenException('@charset must be the first parseable token in a document', '', 'custom', $this->iLineNo); - } - $this->setCharset($oAtRule->getCharset()->getString()); - } - return $oAtRule; - } else if ($this->comes('}')) { - $this->consume('}'); - if ($bIsRoot) { - throw new SourceException("Unopened {", $this->iLineNo); - } else { - return null; - } - } else { - return $this->parseSelector(); - } - } - - private function parseAtRule() { - $this->consume('@'); - $sIdentifier = $this->parseIdentifier(false); - $iIdentifierLineNum = $this->iLineNo; - $this->consumeWhiteSpace(); - if ($sIdentifier === 'import') { - $oLocation = $this->parseURLValue(); - $this->consumeWhiteSpace(); - $sMediaQuery = null; - if (!$this->comes(';')) { - $sMediaQuery = $this->consumeUntil(';'); - } - $this->consume(';'); - return new Import($oLocation, $sMediaQuery, $iIdentifierLineNum); - } else if ($sIdentifier === 'charset') { - $sCharset = $this->parseStringValue(); - $this->consumeWhiteSpace(); - $this->consume(';'); - return new Charset($sCharset, $iIdentifierLineNum); - } else if ($this->identifierIs($sIdentifier, 'keyframes')) { - $oResult = new KeyFrame($iIdentifierLineNum); - $oResult->setVendorKeyFrame($sIdentifier); - $oResult->setAnimationName(trim($this->consumeUntil('{', false, true))); - $this->parseList($oResult); - return $oResult; - } else if ($sIdentifier === 'namespace') { - $sPrefix = null; - $mUrl = $this->parsePrimitiveValue(); - if (!$this->comes(';')) { - $sPrefix = $mUrl; - $mUrl = $this->parsePrimitiveValue(); - } - $this->consume(';'); - if ($sPrefix !== null && !is_string($sPrefix)) { - throw new UnexpectedTokenException('Wrong namespace prefix', $sPrefix, 'custom', $iIdentifierLineNum); - } - if (!($mUrl instanceof CSSString || $mUrl instanceof URL)) { - throw new UnexpectedTokenException('Wrong namespace url of invalid type', $mUrl, 'custom', $iIdentifierLineNum); - } - return new CSSNamespace($mUrl, $sPrefix, $iIdentifierLineNum); - } else { - //Unknown other at rule (font-face or such) - $sArgs = trim($this->consumeUntil('{', false, true)); - $bUseRuleSet = true; - foreach($this->blockRules as $sBlockRuleName) { - if($this->identifierIs($sIdentifier, $sBlockRuleName)) { - $bUseRuleSet = false; - break; - } - } - if($bUseRuleSet) { - $oAtRule = new AtRuleSet($sIdentifier, $sArgs, $iIdentifierLineNum); - $this->parseRuleSet($oAtRule); - } else { - $oAtRule = new AtRuleBlockList($sIdentifier, $sArgs, $iIdentifierLineNum); - $this->parseList($oAtRule); - } - return $oAtRule; - } - } - - private function parseIdentifier($bAllowFunctions = true, $bIgnoreCase = true) { - $sResult = $this->parseCharacter(true); - if ($sResult === null) { - throw new UnexpectedTokenException($sResult, $this->peek(5), 'identifier', $this->iLineNo); - } - $sCharacter = null; - while (($sCharacter = $this->parseCharacter(true)) !== null) { - $sResult .= $sCharacter; - } - if ($bIgnoreCase) { - $sResult = $this->strtolower($sResult); - } - if ($bAllowFunctions && $this->comes('(')) { - $this->consume('('); - $aArguments = $this->parseValue(array('=', ' ', ',')); - $sResult = new CSSFunction($sResult, $aArguments, ',', $this->iLineNo); - $this->consume(')'); - } - return $sResult; - } - - private function parseStringValue() { - $sBegin = $this->peek(); - $sQuote = null; - if ($sBegin === "'") { - $sQuote = "'"; - } else if ($sBegin === '"') { - $sQuote = '"'; - } - if ($sQuote !== null) { - $this->consume($sQuote); - } - $sResult = ""; - $sContent = null; - if ($sQuote === null) { - //Unquoted strings end in whitespace or with braces, brackets, parentheses - while (!preg_match('/[\\s{}()<>\\[\\]]/isu', $this->peek())) { - $sResult .= $this->parseCharacter(false); - } - } else { - while (!$this->comes($sQuote)) { - $sContent = $this->parseCharacter(false); - if ($sContent === null) { - throw new SourceException("Non-well-formed quoted string {$this->peek(3)}", $this->iLineNo); - } - $sResult .= $sContent; - } - $this->consume($sQuote); - } - return new CSSString($sResult, $this->iLineNo); - } - - private function parseCharacter($bIsForIdentifier) { - if ($this->peek() === '\\') { - if ($bIsForIdentifier && $this->oParserSettings->bLenientParsing && ($this->comes('\0') || $this->comes('\9'))) { - // Non-strings can contain \0 or \9 which is an IE hack supported in lenient parsing. - return null; - } - $this->consume('\\'); - if ($this->comes('\n') || $this->comes('\r')) { - return ''; - } - if (preg_match('/[0-9a-fA-F]/Su', $this->peek()) === 0) { - return $this->consume(1); - } - $sUnicode = $this->consumeExpression('/^[0-9a-fA-F]{1,6}/u', 6); - if ($this->strlen($sUnicode) < 6) { - //Consume whitespace after incomplete unicode escape - if (preg_match('/\\s/isSu', $this->peek())) { - if ($this->comes('\r\n')) { - $this->consume(2); - } else { - $this->consume(1); - } - } - } - $iUnicode = intval($sUnicode, 16); - $sUtf32 = ""; - for ($i = 0; $i < 4; ++$i) { - $sUtf32 .= chr($iUnicode & 0xff); - $iUnicode = $iUnicode >> 8; - } - return iconv('utf-32le', $this->sCharset, $sUtf32); - } - if ($bIsForIdentifier) { - $peek = ord($this->peek()); - // Ranges: a-z A-Z 0-9 - _ - if (($peek >= 97 && $peek <= 122) || - ($peek >= 65 && $peek <= 90) || - ($peek >= 48 && $peek <= 57) || - ($peek === 45) || - ($peek === 95) || - ($peek > 0xa1)) { - return $this->consume(1); - } - } else { - return $this->consume(1); - } - return null; - } - - private function parseSelector() { - $aComments = array(); - $oResult = new DeclarationBlock($this->iLineNo); - $oResult->setSelector($this->consumeUntil('{', false, true, $aComments)); - $oResult->setComments($aComments); - $this->parseRuleSet($oResult); - return $oResult; - } - - private function parseRuleSet($oRuleSet) { - while ($this->comes(';')) { - $this->consume(';'); - } - while (!$this->comes('}')) { - $oRule = null; - if($this->oParserSettings->bLenientParsing) { - try { - $oRule = $this->parseRule(); - } catch (UnexpectedTokenException $e) { - try { - $sConsume = $this->consumeUntil(array("\n", ";", '}'), true); - // We need to “unfind” the matches to the end of the ruleSet as this will be matched later - if($this->streql(substr($sConsume, -1), '}')) { - --$this->iCurrentPosition; - } else { - while ($this->comes(';')) { - $this->consume(';'); - } - } - } catch (UnexpectedTokenException $e) { - // We’ve reached the end of the document. Just close the RuleSet. - return; - } - } - } else { - $oRule = $this->parseRule(); - } - if($oRule) { - $oRuleSet->addRule($oRule); - } - } - $this->consume('}'); - } - - private function parseRule() { - $aComments = $this->consumeWhiteSpace(); - $oRule = new Rule($this->parseIdentifier(), $this->iLineNo); - $oRule->setComments($aComments); - $oRule->addComments($this->consumeWhiteSpace()); - $this->consume(':'); - $oValue = $this->parseValue(self::listDelimiterForRule($oRule->getRule())); - $oRule->setValue($oValue); - if ($this->oParserSettings->bLenientParsing) { - while ($this->comes('\\')) { - $this->consume('\\'); - $oRule->addIeHack($this->consume()); - $this->consumeWhiteSpace(); - } - } - if ($this->comes('!')) { - $this->consume('!'); - $this->consumeWhiteSpace(); - $this->consume('important'); - $oRule->setIsImportant(true); - } - while ($this->comes(';')) { - $this->consume(';'); - } - return $oRule; - } - - private function parseValue($aListDelimiters) { - $aStack = array(); - $this->consumeWhiteSpace(); - //Build a list of delimiters and parsed values - while (!($this->comes('}') || $this->comes(';') || $this->comes('!') || $this->comes(')') || $this->comes('\\'))) { - if (count($aStack) > 0) { - $bFoundDelimiter = false; - foreach ($aListDelimiters as $sDelimiter) { - if ($this->comes($sDelimiter)) { - array_push($aStack, $this->consume($sDelimiter)); - $this->consumeWhiteSpace(); - $bFoundDelimiter = true; - break; - } - } - if (!$bFoundDelimiter) { - //Whitespace was the list delimiter - array_push($aStack, ' '); - } - } - array_push($aStack, $this->parsePrimitiveValue()); - $this->consumeWhiteSpace(); - } - //Convert the list to list objects - foreach ($aListDelimiters as $sDelimiter) { - if (count($aStack) === 1) { - return $aStack[0]; - } - $iStartPosition = null; - while (($iStartPosition = array_search($sDelimiter, $aStack, true)) !== false) { - $iLength = 2; //Number of elements to be joined - for ($i = $iStartPosition + 2; $i < count($aStack); $i+=2, ++$iLength) { - if ($sDelimiter !== $aStack[$i]) { - break; - } - } - $oList = new RuleValueList($sDelimiter, $this->iLineNo); - for ($i = $iStartPosition - 1; $i - $iStartPosition + 1 < $iLength * 2; $i+=2) { - $oList->addListComponent($aStack[$i]); - } - array_splice($aStack, $iStartPosition - 1, $iLength * 2 - 1, array($oList)); - } - } - return $aStack[0]; - } - - private static function listDelimiterForRule($sRule) { - if (preg_match('/^font($|-)/', $sRule)) { - return array(',', '/', ' '); - } - return array(',', ' ', '/'); - } - - private function parsePrimitiveValue() { - $oValue = null; - $this->consumeWhiteSpace(); - if (is_numeric($this->peek()) || ($this->comes('-.') && is_numeric($this->peek(1, 2))) || (($this->comes('-') || $this->comes('.')) && is_numeric($this->peek(1, 1)))) { - $oValue = $this->parseNumericValue(); - } else if ($this->comes('#') || $this->comes('rgb', true) || $this->comes('hsl', true)) { - $oValue = $this->parseColorValue(); - } else if ($this->comes('url', true)) { - $oValue = $this->parseURLValue(); - } else if ($this->comes("'") || $this->comes('"')) { - $oValue = $this->parseStringValue(); - } else if ($this->comes("progid:") && $this->oParserSettings->bLenientParsing) { - $oValue = $this->parseMicrosoftFilter(); - } else { - $oValue = $this->parseIdentifier(true, false); - } - $this->consumeWhiteSpace(); - return $oValue; - } - - private function parseNumericValue($bForColor = false) { - $sSize = ''; - if ($this->comes('-')) { - $sSize .= $this->consume('-'); - } - while (is_numeric($this->peek()) || $this->comes('.')) { - if ($this->comes('.')) { - $sSize .= $this->consume('.'); - } else { - $sSize .= $this->consume(1); - } - } - - $sUnit = null; - foreach ($this->aSizeUnits as $iLength => &$aValues) { - $sKey = strtolower($this->peek($iLength)); - if(array_key_exists($sKey, $aValues)) { - if (($sUnit = $aValues[$sKey]) !== null) { - $this->consume($iLength); - break; - } - } - } - return new Size(floatval($sSize), $sUnit, $bForColor, $this->iLineNo); - } - - private function parseColorValue() { - $aColor = array(); - if ($this->comes('#')) { - $this->consume('#'); - $sValue = $this->parseIdentifier(false); - if ($this->strlen($sValue) === 3) { - $sValue = $sValue[0] . $sValue[0] . $sValue[1] . $sValue[1] . $sValue[2] . $sValue[2]; - } - $aColor = array('r' => new Size(intval($sValue[0] . $sValue[1], 16), null, true, $this->iLineNo), 'g' => new Size(intval($sValue[2] . $sValue[3], 16), null, true, $this->iLineNo), 'b' => new Size(intval($sValue[4] . $sValue[5], 16), null, true, $this->iLineNo)); - } else { - $sColorMode = $this->parseIdentifier(false); - $this->consumeWhiteSpace(); - $this->consume('('); - $iLength = $this->strlen($sColorMode); - for ($i = 0; $i < $iLength; ++$i) { - $this->consumeWhiteSpace(); - $aColor[$sColorMode[$i]] = $this->parseNumericValue(true); - $this->consumeWhiteSpace(); - if ($i < ($iLength - 1)) { - $this->consume(','); - } - } - $this->consume(')'); - } - return new Color($aColor, $this->iLineNo); - } - - private function parseMicrosoftFilter() { - $sFunction = $this->consumeUntil('(', false, true); - $aArguments = $this->parseValue(array(',', '=')); - return new CSSFunction($sFunction, $aArguments, ',', $this->iLineNo); - } - - private function parseURLValue() { - $bUseUrl = $this->comes('url', true); - if ($bUseUrl) { - $this->consume('url'); - $this->consumeWhiteSpace(); - $this->consume('('); - } - $this->consumeWhiteSpace(); - $oResult = new URL($this->parseStringValue(), $this->iLineNo); - if ($bUseUrl) { - $this->consumeWhiteSpace(); - $this->consume(')'); - } - return $oResult; - } - - /** - * Tests an identifier for a given value. Since identifiers are all keywords, they can be vendor-prefixed. We need to check for these versions too. - */ - private function identifierIs($sIdentifier, $sMatch) { - return (strcasecmp($sIdentifier, $sMatch) === 0) - ?: preg_match("/^(-\\w+-)?$sMatch$/i", $sIdentifier) === 1; - } - - private function comes($sString, $bCaseInsensitive = false) { - $sPeek = $this->peek(strlen($sString)); - return ($sPeek == '') - ? false - : $this->streql($sPeek, $sString, $bCaseInsensitive); - } - - private function peek($iLength = 1, $iOffset = 0) { - $iOffset += $this->iCurrentPosition; - if ($iOffset >= $this->iLength) { - return ''; - } - return $this->substr($iOffset, $iLength); - } - - private function consume($mValue = 1) { - if (is_string($mValue)) { - $iLineCount = substr_count($mValue, "\n"); - $iLength = $this->strlen($mValue); - if (!$this->streql($this->substr($this->iCurrentPosition, $iLength), $mValue)) { - throw new UnexpectedTokenException($mValue, $this->peek(max($iLength, 5)), $this->iLineNo); - } - $this->iLineNo += $iLineCount; - $this->iCurrentPosition += $this->strlen($mValue); - return $mValue; - } else { - if ($this->iCurrentPosition + $mValue > $this->iLength) { - throw new UnexpectedTokenException($mValue, $this->peek(5), 'count', $this->iLineNo); - } - $sResult = $this->substr($this->iCurrentPosition, $mValue); - $iLineCount = substr_count($sResult, "\n"); - $this->iLineNo += $iLineCount; - $this->iCurrentPosition += $mValue; - return $sResult; - } - } - - private function consumeExpression($mExpression, $iMaxLength = null) { - $aMatches = null; - $sInput = $iMaxLength !== null ? $this->peek($iMaxLength) : $this->inputLeft(); - if (preg_match($mExpression, $sInput, $aMatches, PREG_OFFSET_CAPTURE) === 1) { - return $this->consume($aMatches[0][0]); - } - throw new UnexpectedTokenException($mExpression, $this->peek(5), 'expression', $this->iLineNo); - } - - private function consumeWhiteSpace() { - $comments = array(); - do { - while (preg_match('/\\s/isSu', $this->peek()) === 1) { - $this->consume(1); - } - if($this->oParserSettings->bLenientParsing) { - try { - $oComment = $this->consumeComment(); - } catch(UnexpectedTokenException $e) { - // When we can’t find the end of a comment, we assume the document is finished. - $this->iCurrentPosition = $this->iLength; - return; - } - } else { - $oComment = $this->consumeComment(); - } - if ($oComment !== false) { - $comments[] = $oComment; - } - } while($oComment !== false); - return $comments; - } - - /** - * @return false|Comment - */ - private function consumeComment() { - $mComment = false; - if ($this->comes('/*')) { - $iLineNo = $this->iLineNo; - $this->consume(1); - $mComment = ''; - while (($char = $this->consume(1)) !== '') { - $mComment .= $char; - if ($this->comes('*/')) { - $this->consume(2); - break; - } - } - } - - if ($mComment !== false) { - // We skip the * which was included in the comment. - return new Comment(substr($mComment, 1), $iLineNo); - } - - return $mComment; - } - - private function isEnd() { - return $this->iCurrentPosition >= $this->iLength; - } - - private function consumeUntil($aEnd, $bIncludeEnd = false, $consumeEnd = false, array &$comments = array()) { - $aEnd = is_array($aEnd) ? $aEnd : array($aEnd); - $out = ''; - $start = $this->iCurrentPosition; - - while (($char = $this->consume(1)) !== '') { - if (in_array($char, $aEnd)) { - if ($bIncludeEnd) { - $out .= $char; - } elseif (!$consumeEnd) { - $this->iCurrentPosition -= $this->strlen($char); - } - return $out; - } - $out .= $char; - if ($comment = $this->consumeComment()) { - $comments[] = $comment; - } - } - - $this->iCurrentPosition = $start; - throw new UnexpectedTokenException('One of ("'.implode('","', $aEnd).'")', $this->peek(5), 'search', $this->iLineNo); - } - - private function inputLeft() { - return $this->substr($this->iCurrentPosition, -1); - } - - private function substr($iStart, $iLength) { - if ($iLength < 0) { - $iLength = $this->iLength - $iStart + $iLength; - } - if ($iStart + $iLength > $this->iLength) { - $iLength = $this->iLength - $iStart; - } - $sResult = ''; - while ($iLength > 0) { - $sResult .= $this->aText[$iStart]; - $iStart++; - $iLength--; - } - return $sResult; - } - - private function strlen($sString) { - if ($this->oParserSettings->bMultibyteSupport) { - return mb_strlen($sString, $this->sCharset); - } else { - return strlen($sString); - } - } - - private function streql($sString1, $sString2, $bCaseInsensitive = true) { - if($bCaseInsensitive) { - return $this->strtolower($sString1) === $this->strtolower($sString2); - } else { - return $sString1 === $sString2; - } - } - - private function strtolower($sString) { - if ($this->oParserSettings->bMultibyteSupport) { - return mb_strtolower($sString, $this->sCharset); - } else { - return strtolower($sString); - } - } - - private function strsplit($sString) { - if ($this->oParserSettings->bMultibyteSupport) { - if ($this->streql($this->sCharset, 'utf-8')) { - return preg_split('//u', $sString, null, PREG_SPLIT_NO_EMPTY); - } else { - $iLength = mb_strlen($sString, $this->sCharset); - $aResult = array(); - for ($i = 0; $i < $iLength; ++$i) { - $aResult[] = mb_substr($sString, $i, 1, $this->sCharset); - } - return $aResult; - } - } else { - if($sString === '') { - return array(); - } else { - return str_split($sString); - } - } - } - - private function strpos($sString, $sNeedle, $iOffset) { - if ($this->oParserSettings->bMultibyteSupport) { - return mb_strpos($sString, $sNeedle, $iOffset, $this->sCharset); - } else { - return strpos($sString, $sNeedle, $iOffset); - } - } - -} diff --git a/Utils/SabberwormCSS/Parsing/OutputException.class.php b/Utils/SabberwormCSS/Parsing/OutputException.class.php deleted file mode 100644 index f1e7360..0000000 --- a/Utils/SabberwormCSS/Parsing/OutputException.class.php +++ /dev/null @@ -1,12 +0,0 @@ -<?php - -namespace Utils\SabberwormCSS\Parsing; - -/** -* Thrown if the CSS parsers attempts to print something invalid -*/ -class OutputException extends SourceException { - public function __construct($sMessage, $iLineNo = 0) { - parent::__construct($sMessage, $iLineNo); - } -} \ No newline at end of file diff --git a/Utils/SabberwormCSS/Parsing/SourceException.class.php b/Utils/SabberwormCSS/Parsing/SourceException.class.php deleted file mode 100644 index d6e6a7b..0000000 --- a/Utils/SabberwormCSS/Parsing/SourceException.class.php +++ /dev/null @@ -1,18 +0,0 @@ -<?php - -namespace Utils\SabberwormCSS\Parsing; - -class SourceException extends \Exception { - private $iLineNo; - public function __construct($sMessage, $iLineNo = 0) { - $this->iLineNo = $iLineNo; - if (!empty($iLineNo)) { - $sMessage .= " [line no: $iLineNo]"; - } - parent::__construct($sMessage); - } - - public function getLineNo() { - return $this->iLineNo; - } -} \ No newline at end of file diff --git a/Utils/SabberwormCSS/Parsing/UnexpectedTokenException.class.php b/Utils/SabberwormCSS/Parsing/UnexpectedTokenException.class.php deleted file mode 100644 index acfe82e..0000000 --- a/Utils/SabberwormCSS/Parsing/UnexpectedTokenException.class.php +++ /dev/null @@ -1,31 +0,0 @@ -<?php - -namespace Utils\SabberwormCSS\Parsing; - -/** -* Thrown if the CSS parsers encounters a token it did not expect -*/ -class UnexpectedTokenException extends SourceException { - private $sExpected; - private $sFound; - // Possible values: literal, identifier, count, expression, search - private $sMatchType; - - public function __construct($sExpected, $sFound, $sMatchType = 'literal', $iLineNo = 0) { - $this->sExpected = $sExpected; - $this->sFound = $sFound; - $this->sMatchType = $sMatchType; - $sMessage = "Token “{$sExpected}” ({$sMatchType}) not found. Got “{$sFound}”."; - if($this->sMatchType === 'search') { - $sMessage = "Search for “{$sExpected}” returned no results. Context: “{$sFound}”."; - } else if($this->sMatchType === 'count') { - $sMessage = "Next token was expected to have {$sExpected} chars. Context: “{$sFound}”."; - } else if($this->sMatchType === 'identifier') { - $sMessage = "Identifier expected. Got “{$sFound}”"; - } else if($this->sMatchType === 'custom') { - $sMessage = trim("$sExpected $sFound"); - } - - parent::__construct($sMessage, $iLineNo); - } -} \ No newline at end of file diff --git a/Utils/SabberwormCSS/Property/AtRule.class.php b/Utils/SabberwormCSS/Property/AtRule.class.php deleted file mode 100644 index 38fc907..0000000 --- a/Utils/SabberwormCSS/Property/AtRule.class.php +++ /dev/null @@ -1,15 +0,0 @@ -<?php - -namespace Utils\SabberwormCSS\Property; - -use Utils\SabberwormCSS\Renderable; -use Utils\SabberwormCSS\Comment\Commentable; - -interface AtRule extends Renderable, Commentable { - const BLOCK_RULES = 'media/document/supports/region-style/font-feature-values'; - // Since there are more set rules than block rules, we’re whitelisting the block rules and have anything else be treated as a set rule. - const SET_RULES = 'font-face/counter-style/page/swash/styleset/annotation'; //…and more font-specific ones (to be used inside font-feature-values) - - public function atRuleName(); - public function atRuleArgs(); -} \ No newline at end of file diff --git a/Utils/SabberwormCSS/Property/CSSNamespace.class.php b/Utils/SabberwormCSS/Property/CSSNamespace.class.php deleted file mode 100644 index 1047539..0000000 --- a/Utils/SabberwormCSS/Property/CSSNamespace.class.php +++ /dev/null @@ -1,75 +0,0 @@ -<?php - -namespace Utils\SabberwormCSS\Property; - -/** -* CSSNamespace represents an @namespace rule. -*/ -class CSSNamespace implements AtRule { - private $mUrl; - private $sPrefix; - private $iLineNo; - protected $aComments; - - public function __construct($mUrl, $sPrefix = null, $iLineNo = 0) { - $this->mUrl = $mUrl; - $this->sPrefix = $sPrefix; - $this->iLineNo = $iLineNo; - $this->aComments = array(); - } - - /** - * @return int - */ - public function getLineNo() { - return $this->iLineNo; - } - - public function __toString() { - return $this->render(new \Utils\SabberwormCSS\OutputFormat()); - } - - public function render(\Utils\SabberwormCSS\OutputFormat $oOutputFormat) { - return '@namespace '.($this->sPrefix === null ? '' : $this->sPrefix.' ').$this->mUrl->render($oOutputFormat).';'; - } - - public function getUrl() { - return $this->mUrl; - } - - public function getPrefix() { - return $this->sPrefix; - } - - public function setUrl($mUrl) { - $this->mUrl = $mUrl; - } - - public function setPrefix($sPrefix) { - $this->sPrefix = $sPrefix; - } - - public function atRuleName() { - return 'namespace'; - } - - public function atRuleArgs() { - $aResult = array($this->mUrl); - if($this->sPrefix) { - array_unshift($aResult, $this->sPrefix); - } - return $aResult; - } - - public function addComments(array $aComments) { - $this->aComments = array_merge($this->aComments, $aComments); - } - - public function getComments() { - return $this->aComments; - } - - public function setComments(array $aComments) { - $this->aComments = $aComments; - } -} \ No newline at end of file diff --git a/Utils/SabberwormCSS/Property/Charset.class.php b/Utils/SabberwormCSS/Property/Charset.class.php deleted file mode 100644 index e1c9c63..0000000 --- a/Utils/SabberwormCSS/Property/Charset.class.php +++ /dev/null @@ -1,66 +0,0 @@ -<?php - -namespace Utils\SabberwormCSS\Property; - -/** - * Class representing an @charset rule. - * The following restrictions apply: - * • May not be found in any CSSList other than the Document. - * • May only appear at the very top of a Document’s contents. - * • Must not appear more than once. - */ -class Charset implements AtRule { - - private $sCharset; - protected $iLineNo; - protected $aComment; - - public function __construct($sCharset, $iLineNo = 0) { - $this->sCharset = $sCharset; - $this->iLineNo = $iLineNo; - $this->aComments = array(); - } - - /** - * @return int - */ - public function getLineNo() { - return $this->iLineNo; - } - - public function setCharset($sCharset) { - $this->sCharset = $sCharset; - } - - public function getCharset() { - return $this->sCharset; - } - - public function __toString() { - return $this->render(new \Utils\SabberwormCSS\OutputFormat()); - } - - public function render(\Utils\SabberwormCSS\OutputFormat $oOutputFormat) { - return "@charset {$this->sCharset->render($oOutputFormat)};"; - } - - public function atRuleName() { - return 'charset'; - } - - public function atRuleArgs() { - return $this->sCharset; - } - - public function addComments(array $aComments) { - $this->aComments = array_merge($this->aComments, $aComments); - } - - public function getComments() { - return $this->aComments; - } - - public function setComments(array $aComments) { - $this->aComments = $aComments; - } -} \ No newline at end of file diff --git a/Utils/SabberwormCSS/Property/Import.class.php b/Utils/SabberwormCSS/Property/Import.class.php deleted file mode 100644 index a82ad13..0000000 --- a/Utils/SabberwormCSS/Property/Import.class.php +++ /dev/null @@ -1,69 +0,0 @@ -<?php - -namespace Utils\SabberwormCSS\Property; - -use Utils\SabberwormCSS\Value\URL; - -/** -* Class representing an @import rule. -*/ -class Import implements AtRule { - private $oLocation; - private $sMediaQuery; - protected $iLineNo; - protected $aComments; - - public function __construct(URL $oLocation, $sMediaQuery, $iLineNo = 0) { - $this->oLocation = $oLocation; - $this->sMediaQuery = $sMediaQuery; - $this->iLineNo = $iLineNo; - $this->aComments = array(); - } - - /** - * @return int - */ - public function getLineNo() { - return $this->iLineNo; - } - - public function setLocation($oLocation) { - $this->oLocation = $oLocation; - } - - public function getLocation() { - return $this->oLocation; - } - - public function __toString() { - return $this->render(new \Utils\SabberwormCSS\OutputFormat()); - } - - public function render(\Utils\SabberwormCSS\OutputFormat $oOutputFormat) { - return "@import ".$this->oLocation->render($oOutputFormat).($this->sMediaQuery === null ? '' : ' '.$this->sMediaQuery).';'; - } - - public function atRuleName() { - return 'import'; - } - - public function atRuleArgs() { - $aResult = array($this->oLocation); - if($this->sMediaQuery) { - array_push($aResult, $this->sMediaQuery); - } - return $aResult; - } - - public function addComments(array $aComments) { - $this->aComments = array_merge($this->aComments, $aComments); - } - - public function getComments() { - return $this->aComments; - } - - public function setComments(array $aComments) { - $this->aComments = $aComments; - } -} \ No newline at end of file diff --git a/Utils/SabberwormCSS/Property/Selector.class.php b/Utils/SabberwormCSS/Property/Selector.class.php deleted file mode 100644 index 7395058..0000000 --- a/Utils/SabberwormCSS/Property/Selector.class.php +++ /dev/null @@ -1,74 +0,0 @@ -<?php - -namespace Utils\SabberwormCSS\Property; - -/** - * Class representing a single CSS selector. Selectors have to be split by the comma prior to being passed into this class. - */ -class Selector { - - //Regexes for specificity calculations - const NON_ID_ATTRIBUTES_AND_PSEUDO_CLASSES_RX = '/ - (\.[\w]+) # classes - | - \[(\w+) # attributes - | - (\:( # pseudo classes - link|visited|active - |hover|focus - |lang - |target - |enabled|disabled|checked|indeterminate - |root - |nth-child|nth-last-child|nth-of-type|nth-last-of-type - |first-child|last-child|first-of-type|last-of-type - |only-child|only-of-type - |empty|contains - )) - /ix'; - - const ELEMENTS_AND_PSEUDO_ELEMENTS_RX = '/ - ((^|[\s\+\>\~]+)[\w]+ # elements - | - \:{1,2}( # pseudo-elements - after|before|first-letter|first-line|selection - )) - /ix'; - - private $sSelector; - private $iSpecificity; - - public function __construct($sSelector, $bCalculateSpecificity = false) { - $this->setSelector($sSelector); - if ($bCalculateSpecificity) { - $this->getSpecificity(); - } - } - - public function getSelector() { - return $this->sSelector; - } - - public function setSelector($sSelector) { - $this->sSelector = trim($sSelector); - $this->iSpecificity = null; - } - - public function __toString() { - return $this->getSelector(); - } - - public function getSpecificity() { - if ($this->iSpecificity === null) { - $a = 0; - /// @todo should exclude \# as well as "#" - $aMatches = null; - $b = substr_count($this->sSelector, '#'); - $c = preg_match_all(self::NON_ID_ATTRIBUTES_AND_PSEUDO_CLASSES_RX, $this->sSelector, $aMatches); - $d = preg_match_all(self::ELEMENTS_AND_PSEUDO_ELEMENTS_RX, $this->sSelector, $aMatches); - $this->iSpecificity = ($a * 1000) + ($b * 100) + ($c * 10) + $d; - } - return $this->iSpecificity; - } - -} diff --git a/Utils/SabberwormCSS/Renderable.class.php b/Utils/SabberwormCSS/Renderable.class.php deleted file mode 100644 index 42842ff..0000000 --- a/Utils/SabberwormCSS/Renderable.class.php +++ /dev/null @@ -1,9 +0,0 @@ -<?php - -namespace Utils\SabberwormCSS; - -interface Renderable { - public function __toString(); - public function render(\Utils\SabberwormCSS\OutputFormat $oOutputFormat); - public function getLineNo(); -} \ No newline at end of file diff --git a/Utils/SabberwormCSS/Rule/Rule.class.php b/Utils/SabberwormCSS/Rule/Rule.class.php deleted file mode 100644 index a24aff7..0000000 --- a/Utils/SabberwormCSS/Rule/Rule.class.php +++ /dev/null @@ -1,197 +0,0 @@ -<?php - -namespace Utils\SabberwormCSS\Rule; - -use Utils\SabberwormCSS\Renderable; -use Utils\SabberwormCSS\Value\RuleValueList; -use Utils\SabberwormCSS\Value\Value; -use Utils\SabberwormCSS\Comment\Commentable; - -/** - * RuleSets contains Rule objects which always have a key and a value. - * In CSS, Rules are expressed as follows: “key: value[0][0] value[0][1], value[1][0] value[1][1];” - */ -class Rule implements Renderable, Commentable { - - private $sRule; - private $mValue; - private $bIsImportant; - private $aIeHack; - protected $iLineNo; - protected $aComments; - - public function __construct($sRule, $iLineNo = 0) { - $this->sRule = $sRule; - $this->mValue = null; - $this->bIsImportant = false; - $this->aIeHack = array(); - $this->iLineNo = $iLineNo; - $this->aComments = array(); - } - - /** - * @return int - */ - public function getLineNo() { - return $this->iLineNo; - } - - public function setRule($sRule) { - $this->sRule = $sRule; - } - - public function getRule() { - return $this->sRule; - } - - public function getValue() { - return $this->mValue; - } - - public function setValue($mValue) { - $this->mValue = $mValue; - } - - /** - * @deprecated Old-Style 2-dimensional array given. Retained for (some) backwards-compatibility. Use setValue() instead and wrapp the value inside a RuleValueList if necessary. - */ - public function setValues($aSpaceSeparatedValues) { - $oSpaceSeparatedList = null; - if (count($aSpaceSeparatedValues) > 1) { - $oSpaceSeparatedList = new RuleValueList(' ', $this->iLineNo); - } - foreach ($aSpaceSeparatedValues as $aCommaSeparatedValues) { - $oCommaSeparatedList = null; - if (count($aCommaSeparatedValues) > 1) { - $oCommaSeparatedList = new RuleValueList(',', $this->iLineNo); - } - foreach ($aCommaSeparatedValues as $mValue) { - if (!$oSpaceSeparatedList && !$oCommaSeparatedList) { - $this->mValue = $mValue; - return $mValue; - } - if ($oCommaSeparatedList) { - $oCommaSeparatedList->addListComponent($mValue); - } else { - $oSpaceSeparatedList->addListComponent($mValue); - } - } - if (!$oSpaceSeparatedList) { - $this->mValue = $oCommaSeparatedList; - return $oCommaSeparatedList; - } else { - $oSpaceSeparatedList->addListComponent($oCommaSeparatedList); - } - } - $this->mValue = $oSpaceSeparatedList; - return $oSpaceSeparatedList; - } - - /** - * @deprecated Old-Style 2-dimensional array returned. Retained for (some) backwards-compatibility. Use getValue() instead and check for the existance of a (nested set of) ValueList object(s). - */ - public function getValues() { - if (!$this->mValue instanceof RuleValueList) { - return array(array($this->mValue)); - } - if ($this->mValue->getListSeparator() === ',') { - return array($this->mValue->getListComponents()); - } - $aResult = array(); - foreach ($this->mValue->getListComponents() as $mValue) { - if (!$mValue instanceof RuleValueList || $mValue->getListSeparator() !== ',') { - $aResult[] = array($mValue); - continue; - } - if ($this->mValue->getListSeparator() === ' ' || count($aResult) === 0) { - $aResult[] = array(); - } - foreach ($mValue->getListComponents() as $mValue) { - $aResult[count($aResult) - 1][] = $mValue; - } - } - return $aResult; - } - - /** - * Adds a value to the existing value. Value will be appended if a RuleValueList exists of the given type. Otherwise, the existing value will be wrapped by one. - */ - public function addValue($mValue, $sType = ' ') { - if (!is_array($mValue)) { - $mValue = array($mValue); - } - if (!$this->mValue instanceof RuleValueList || $this->mValue->getListSeparator() !== $sType) { - $mCurrentValue = $this->mValue; - $this->mValue = new RuleValueList($sType, $this->iLineNo); - if ($mCurrentValue) { - $this->mValue->addListComponent($mCurrentValue); - } - } - foreach ($mValue as $mValueItem) { - $this->mValue->addListComponent($mValueItem); - } - } - - public function addIeHack($iModifier) { - $this->aIeHack[] = $iModifier; - } - - public function setIeHack(array $aModifiers) { - $this->aIeHack = $aModifiers; - } - - public function getIeHack() { - return $this->aIeHack; - } - - public function setIsImportant($bIsImportant) { - $this->bIsImportant = $bIsImportant; - } - - public function getIsImportant() { - return $this->bIsImportant; - } - - public function __toString() { - return $this->render(new \Utils\SabberwormCSS\OutputFormat()); - } - - public function render(\Utils\SabberwormCSS\OutputFormat $oOutputFormat) { - $sResult = "{$this->sRule}:{$oOutputFormat->spaceAfterRuleName()}"; - if ($this->mValue instanceof Value) { //Can also be a ValueList - $sResult .= $this->mValue->render($oOutputFormat); - } else { - $sResult .= $this->mValue; - } - if (!empty($this->aIeHack)) { - $sResult .= ' \\' . implode('\\', $this->aIeHack); - } - if ($this->bIsImportant) { - $sResult .= ' !important'; - } - $sResult .= ';'; - return $sResult; - } - - /** - * @param array $aComments Array of comments. - */ - public function addComments(array $aComments) { - $this->aComments = array_merge($this->aComments, $aComments); - } - - /** - * @return array - */ - public function getComments() { - return $this->aComments; - } - - /** - * @param array $aComments Array containing Comment objects. - */ - public function setComments(array $aComments) { - $this->aComments = $aComments; - } - -} diff --git a/Utils/SabberwormCSS/RuleSet/AtRuleSet.class.php b/Utils/SabberwormCSS/RuleSet/AtRuleSet.class.php deleted file mode 100644 index 9750f34..0000000 --- a/Utils/SabberwormCSS/RuleSet/AtRuleSet.class.php +++ /dev/null @@ -1,44 +0,0 @@ -<?php - -namespace Utils\SabberwormCSS\RuleSet; - -use Utils\SabberwormCSS\Property\AtRule; - -/** - * A RuleSet constructed by an unknown @-rule. @font-face rules are rendered into AtRuleSet objects. - */ -class AtRuleSet extends RuleSet implements AtRule { - - private $sType; - private $sArgs; - - public function __construct($sType, $sArgs = '', $iLineNo = 0) { - parent::__construct($iLineNo); - $this->sType = $sType; - $this->sArgs = $sArgs; - } - - public function atRuleName() { - return $this->sType; - } - - public function atRuleArgs() { - return $this->sArgs; - } - - public function __toString() { - return $this->render(new \Utils\SabberwormCSS\OutputFormat()); - } - - public function render(\Utils\SabberwormCSS\OutputFormat $oOutputFormat) { - $sArgs = $this->sArgs; - if($sArgs) { - $sArgs = ' ' . $sArgs; - } - $sResult = "@{$this->sType}$sArgs{$oOutputFormat->spaceBeforeOpeningBrace()}{"; - $sResult .= parent::render($oOutputFormat); - $sResult .= '}'; - return $sResult; - } - -} \ No newline at end of file diff --git a/Utils/SabberwormCSS/RuleSet/DeclarationBlock.class.php b/Utils/SabberwormCSS/RuleSet/DeclarationBlock.class.php deleted file mode 100644 index c508052..0000000 --- a/Utils/SabberwormCSS/RuleSet/DeclarationBlock.class.php +++ /dev/null @@ -1,608 +0,0 @@ -<?php - -namespace Utils\SabberwormCSS\RuleSet; - -use Utils\SabberwormCSS\Property\Selector; -use Utils\SabberwormCSS\Rule\Rule; -use Utils\SabberwormCSS\Value\RuleValueList; -use Utils\SabberwormCSS\Value\Value; -use Utils\SabberwormCSS\Value\Size; -use Utils\SabberwormCSS\Value\Color; -use Utils\SabberwormCSS\Value\URL; -use Utils\SabberwormCSS\Parsing\OutputException; - -/** - * Declaration blocks are the parts of a css file which denote the rules belonging to a selector. - * Declaration blocks usually appear directly inside a Document or another CSSList (mostly a MediaQuery). - */ -class DeclarationBlock extends RuleSet { - - private $aSelectors; - - public function __construct($iLineNo = 0) { - parent::__construct($iLineNo); - $this->aSelectors = array(); - } - - public function setSelectors($mSelector) { - if (is_array($mSelector)) { - $this->aSelectors = $mSelector; - } else { - $this->aSelectors = explode(',', $mSelector); - } - foreach ($this->aSelectors as $iKey => $mSelector) { - if (!($mSelector instanceof Selector)) { - $this->aSelectors[$iKey] = new Selector($mSelector); - } - } - } - - // remove one of the selector of the block - public function removeSelector($mSelector) { - if($mSelector instanceof Selector) { - $mSelector = $mSelector->getSelector(); - } - foreach($this->aSelectors as $iKey => $oSelector) { - if($oSelector->getSelector() === $mSelector) { - unset($this->aSelectors[$iKey]); - return true; - } - } - return false; - } - - /** - * @deprecated use getSelectors() - */ - public function getSelector() { - return $this->getSelectors(); - } - - /** - * @deprecated use setSelectors() - */ - public function setSelector($mSelector) { - $this->setSelectors($mSelector); - } - - public function getSelectors() { - return $this->aSelectors; - } - - /** - * Split shorthand declarations (e.g. +margin+ or +font+) into their constituent parts. - * */ - public function expandShorthands() { - // border must be expanded before dimensions - $this->expandBorderShorthand(); - $this->expandDimensionsShorthand(); - $this->expandFontShorthand(); - $this->expandBackgroundShorthand(); - $this->expandListStyleShorthand(); - } - - /** - * Create shorthand declarations (e.g. +margin+ or +font+) whenever possible. - * */ - public function createShorthands() { - $this->createBackgroundShorthand(); - $this->createDimensionsShorthand(); - // border must be shortened after dimensions - $this->createBorderShorthand(); - $this->createFontShorthand(); - $this->createListStyleShorthand(); - } - - /** - * Split shorthand border declarations (e.g. <tt>border: 1px red;</tt>) - * Additional splitting happens in expandDimensionsShorthand - * Multiple borders are not yet supported as of 3 - * */ - public function expandBorderShorthand() { - $aBorderRules = array( - 'border', 'border-left', 'border-right', 'border-top', 'border-bottom' - ); - $aBorderSizes = array( - 'thin', 'medium', 'thick' - ); - $aRules = $this->getRulesAssoc(); - foreach ($aBorderRules as $sBorderRule) { - if (!isset($aRules[$sBorderRule])) - continue; - $oRule = $aRules[$sBorderRule]; - $mRuleValue = $oRule->getValue(); - $aValues = array(); - if (!$mRuleValue instanceof RuleValueList) { - $aValues[] = $mRuleValue; - } else { - $aValues = $mRuleValue->getListComponents(); - } - foreach ($aValues as $mValue) { - if ($mValue instanceof Value) { - $mNewValue = clone $mValue; - } else { - $mNewValue = $mValue; - } - if ($mValue instanceof Size) { - $sNewRuleName = $sBorderRule . "-width"; - } else if ($mValue instanceof Color) { - $sNewRuleName = $sBorderRule . "-color"; - } else { - if (in_array($mValue, $aBorderSizes)) { - $sNewRuleName = $sBorderRule . "-width"; - } else/* if(in_array($mValue, $aBorderStyles)) */ { - $sNewRuleName = $sBorderRule . "-style"; - } - } - $oNewRule = new Rule($sNewRuleName, $this->iLineNo); - $oNewRule->setIsImportant($oRule->getIsImportant()); - $oNewRule->addValue(array($mNewValue)); - $this->addRule($oNewRule); - } - $this->removeRule($sBorderRule); - } - } - - /** - * Split shorthand dimensional declarations (e.g. <tt>margin: 0px auto;</tt>) - * into their constituent parts. - * Handles margin, padding, border-color, border-style and border-width. - * */ - public function expandDimensionsShorthand() { - $aExpansions = array( - 'margin' => 'margin-%s', - 'padding' => 'padding-%s', - 'border-color' => 'border-%s-color', - 'border-style' => 'border-%s-style', - 'border-width' => 'border-%s-width' - ); - $aRules = $this->getRulesAssoc(); - foreach ($aExpansions as $sProperty => $sExpanded) { - if (!isset($aRules[$sProperty])) - continue; - $oRule = $aRules[$sProperty]; - $mRuleValue = $oRule->getValue(); - $aValues = array(); - if (!$mRuleValue instanceof RuleValueList) { - $aValues[] = $mRuleValue; - } else { - $aValues = $mRuleValue->getListComponents(); - } - $top = $right = $bottom = $left = null; - switch (count($aValues)) { - case 1: - $top = $right = $bottom = $left = $aValues[0]; - break; - case 2: - $top = $bottom = $aValues[0]; - $left = $right = $aValues[1]; - break; - case 3: - $top = $aValues[0]; - $left = $right = $aValues[1]; - $bottom = $aValues[2]; - break; - case 4: - $top = $aValues[0]; - $right = $aValues[1]; - $bottom = $aValues[2]; - $left = $aValues[3]; - break; - } - foreach (array('top', 'right', 'bottom', 'left') as $sPosition) { - $oNewRule = new Rule(sprintf($sExpanded, $sPosition), $this->iLineNo); - $oNewRule->setIsImportant($oRule->getIsImportant()); - $oNewRule->addValue(${$sPosition}); - $this->addRule($oNewRule); - } - $this->removeRule($sProperty); - } - } - - /** - * Convert shorthand font declarations - * (e.g. <tt>font: 300 italic 11px/14px verdana, helvetica, sans-serif;</tt>) - * into their constituent parts. - * */ - public function expandFontShorthand() { - $aRules = $this->getRulesAssoc(); - if (!isset($aRules['font'])) - return; - $oRule = $aRules['font']; - // reset properties to 'normal' per http://www.w3.org/TR/21/fonts.html#font-shorthand - $aFontProperties = array( - 'font-style' => 'normal', - 'font-variant' => 'normal', - 'font-weight' => 'normal', - 'font-size' => 'normal', - 'line-height' => 'normal' - ); - $mRuleValue = $oRule->getValue(); - $aValues = array(); - if (!$mRuleValue instanceof RuleValueList) { - $aValues[] = $mRuleValue; - } else { - $aValues = $mRuleValue->getListComponents(); - } - foreach ($aValues as $mValue) { - if (!$mValue instanceof Value) { - $mValue = mb_strtolower($mValue); - } - if (in_array($mValue, array('normal', 'inherit'))) { - foreach (array('font-style', 'font-weight', 'font-variant') as $sProperty) { - if (!isset($aFontProperties[$sProperty])) { - $aFontProperties[$sProperty] = $mValue; - } - } - } else if (in_array($mValue, array('italic', 'oblique'))) { - $aFontProperties['font-style'] = $mValue; - } else if ($mValue == 'small-caps') { - $aFontProperties['font-variant'] = $mValue; - } else if ( - in_array($mValue, array('bold', 'bolder', 'lighter')) - || ($mValue instanceof Size - && in_array($mValue->getSize(), range(100, 900, 100))) - ) { - $aFontProperties['font-weight'] = $mValue; - } else if ($mValue instanceof RuleValueList && $mValue->getListSeparator() == '/') { - list($oSize, $oHeight) = $mValue->getListComponents(); - $aFontProperties['font-size'] = $oSize; - $aFontProperties['line-height'] = $oHeight; - } else if ($mValue instanceof Size && $mValue->getUnit() !== null) { - $aFontProperties['font-size'] = $mValue; - } else { - $aFontProperties['font-family'] = $mValue; - } - } - foreach ($aFontProperties as $sProperty => $mValue) { - $oNewRule = new Rule($sProperty, $this->iLineNo); - $oNewRule->addValue($mValue); - $oNewRule->setIsImportant($oRule->getIsImportant()); - $this->addRule($oNewRule); - } - $this->removeRule('font'); - } - - /* - * Convert shorthand background declarations - * (e.g. <tt>background: url("chess.png") gray 50% repeat fixed;</tt>) - * into their constituent parts. - * @see http://www.w3.org/TR/21/colors.html#propdef-background - * */ - - public function expandBackgroundShorthand() { - $aRules = $this->getRulesAssoc(); - if (!isset($aRules['background'])) - return; - $oRule = $aRules['background']; - $aBgProperties = array( - 'background-color' => array('transparent'), 'background-image' => array('none'), - 'background-repeat' => array('repeat'), 'background-attachment' => array('scroll'), - 'background-position' => array(new Size(0, '%', null, false, $this->iLineNo), new Size(0, '%', null, false, $this->iLineNo)) - ); - $mRuleValue = $oRule->getValue(); - $aValues = array(); - if (!$mRuleValue instanceof RuleValueList) { - $aValues[] = $mRuleValue; - } else { - $aValues = $mRuleValue->getListComponents(); - } - if (count($aValues) == 1 && $aValues[0] == 'inherit') { - foreach ($aBgProperties as $sProperty => $mValue) { - $oNewRule = new Rule($sProperty, $this->iLineNo); - $oNewRule->addValue('inherit'); - $oNewRule->setIsImportant($oRule->getIsImportant()); - $this->addRule($oNewRule); - } - $this->removeRule('background'); - return; - } - $iNumBgPos = 0; - foreach ($aValues as $mValue) { - if (!$mValue instanceof Value) { - $mValue = mb_strtolower($mValue); - } - if ($mValue instanceof URL) { - $aBgProperties['background-image'] = $mValue; - } else if ($mValue instanceof Color) { - $aBgProperties['background-color'] = $mValue; - } else if (in_array($mValue, array('scroll', 'fixed'))) { - $aBgProperties['background-attachment'] = $mValue; - } else if (in_array($mValue, array('repeat', 'no-repeat', 'repeat-x', 'repeat-y'))) { - $aBgProperties['background-repeat'] = $mValue; - } else if (in_array($mValue, array('left', 'center', 'right', 'top', 'bottom')) - || $mValue instanceof Size - ) { - if ($iNumBgPos == 0) { - $aBgProperties['background-position'][0] = $mValue; - $aBgProperties['background-position'][1] = 'center'; - } else { - $aBgProperties['background-position'][$iNumBgPos] = $mValue; - } - $iNumBgPos++; - } - } - foreach ($aBgProperties as $sProperty => $mValue) { - $oNewRule = new Rule($sProperty, $this->iLineNo); - $oNewRule->setIsImportant($oRule->getIsImportant()); - $oNewRule->addValue($mValue); - $this->addRule($oNewRule); - } - $this->removeRule('background'); - } - - public function expandListStyleShorthand() { - $aListProperties = array( - 'list-style-type' => 'disc', - 'list-style-position' => 'outside', - 'list-style-image' => 'none' - ); - $aListStyleTypes = array( - 'none', 'disc', 'circle', 'square', 'decimal-leading-zero', 'decimal', - 'lower-roman', 'upper-roman', 'lower-greek', 'lower-alpha', 'lower-latin', - 'upper-alpha', 'upper-latin', 'hebrew', 'armenian', 'georgian', 'cjk-ideographic', - 'hiragana', 'hira-gana-iroha', 'katakana-iroha', 'katakana' - ); - $aListStylePositions = array( - 'inside', 'outside' - ); - $aRules = $this->getRulesAssoc(); - if (!isset($aRules['list-style'])) - return; - $oRule = $aRules['list-style']; - $mRuleValue = $oRule->getValue(); - $aValues = array(); - if (!$mRuleValue instanceof RuleValueList) { - $aValues[] = $mRuleValue; - } else { - $aValues = $mRuleValue->getListComponents(); - } - if (count($aValues) == 1 && $aValues[0] == 'inherit') { - foreach ($aListProperties as $sProperty => $mValue) { - $oNewRule = new Rule($sProperty, $this->iLineNo); - $oNewRule->addValue('inherit'); - $oNewRule->setIsImportant($oRule->getIsImportant()); - $this->addRule($oNewRule); - } - $this->removeRule('list-style'); - return; - } - foreach ($aValues as $mValue) { - if (!$mValue instanceof Value) { - $mValue = mb_strtolower($mValue); - } - if ($mValue instanceof Url) { - $aListProperties['list-style-image'] = $mValue; - } else if (in_array($mValue, $aListStyleTypes)) { - $aListProperties['list-style-types'] = $mValue; - } else if (in_array($mValue, $aListStylePositions)) { - $aListProperties['list-style-position'] = $mValue; - } - } - foreach ($aListProperties as $sProperty => $mValue) { - $oNewRule = new Rule($sProperty, $this->iLineNo); - $oNewRule->setIsImportant($oRule->getIsImportant()); - $oNewRule->addValue($mValue); - $this->addRule($oNewRule); - } - $this->removeRule('list-style'); - } - - public function createShorthandProperties(array $aProperties, $sShorthand) { - $aRules = $this->getRulesAssoc(); - $aNewValues = array(); - foreach ($aProperties as $sProperty) { - if (!isset($aRules[$sProperty])) - continue; - $oRule = $aRules[$sProperty]; - if (!$oRule->getIsImportant()) { - $mRuleValue = $oRule->getValue(); - $aValues = array(); - if (!$mRuleValue instanceof RuleValueList) { - $aValues[] = $mRuleValue; - } else { - $aValues = $mRuleValue->getListComponents(); - } - foreach ($aValues as $mValue) { - $aNewValues[] = $mValue; - } - $this->removeRule($sProperty); - } - } - if (count($aNewValues)) { - $oNewRule = new Rule($sShorthand, $this->iLineNo); - foreach ($aNewValues as $mValue) { - $oNewRule->addValue($mValue); - } - $this->addRule($oNewRule); - } - } - - public function createBackgroundShorthand() { - $aProperties = array( - 'background-color', 'background-image', 'background-repeat', - 'background-position', 'background-attachment' - ); - $this->createShorthandProperties($aProperties, 'background'); - } - - public function createListStyleShorthand() { - $aProperties = array( - 'list-style-type', 'list-style-position', 'list-style-image' - ); - $this->createShorthandProperties($aProperties, 'list-style'); - } - - /** - * Combine border-color, border-style and border-width into border - * Should be run after create_dimensions_shorthand! - * */ - public function createBorderShorthand() { - $aProperties = array( - 'border-width', 'border-style', 'border-color' - ); - $this->createShorthandProperties($aProperties, 'border'); - } - - /* - * Looks for long format CSS dimensional properties - * (margin, padding, border-color, border-style and border-width) - * and converts them into shorthand CSS properties. - * */ - - public function createDimensionsShorthand() { - $aPositions = array('top', 'right', 'bottom', 'left'); - $aExpansions = array( - 'margin' => 'margin-%s', - 'padding' => 'padding-%s', - 'border-color' => 'border-%s-color', - 'border-style' => 'border-%s-style', - 'border-width' => 'border-%s-width' - ); - $aRules = $this->getRulesAssoc(); - foreach ($aExpansions as $sProperty => $sExpanded) { - $aFoldable = array(); - foreach ($aRules as $sRuleName => $oRule) { - foreach ($aPositions as $sPosition) { - if ($sRuleName == sprintf($sExpanded, $sPosition)) { - $aFoldable[$sRuleName] = $oRule; - } - } - } - // All four dimensions must be present - if (count($aFoldable) == 4) { - $aValues = array(); - foreach ($aPositions as $sPosition) { - $oRule = $aRules[sprintf($sExpanded, $sPosition)]; - $mRuleValue = $oRule->getValue(); - $aRuleValues = array(); - if (!$mRuleValue instanceof RuleValueList) { - $aRuleValues[] = $mRuleValue; - } else { - $aRuleValues = $mRuleValue->getListComponents(); - } - $aValues[$sPosition] = $aRuleValues; - } - $oNewRule = new Rule($sProperty, $this->iLineNo); - if ((string) $aValues['left'][0] == (string) $aValues['right'][0]) { - if ((string) $aValues['top'][0] == (string) $aValues['bottom'][0]) { - if ((string) $aValues['top'][0] == (string) $aValues['left'][0]) { - // All 4 sides are equal - $oNewRule->addValue($aValues['top']); - } else { - // Top and bottom are equal, left and right are equal - $oNewRule->addValue($aValues['top']); - $oNewRule->addValue($aValues['left']); - } - } else { - // Only left and right are equal - $oNewRule->addValue($aValues['top']); - $oNewRule->addValue($aValues['left']); - $oNewRule->addValue($aValues['bottom']); - } - } else { - // No sides are equal - $oNewRule->addValue($aValues['top']); - $oNewRule->addValue($aValues['left']); - $oNewRule->addValue($aValues['bottom']); - $oNewRule->addValue($aValues['right']); - } - $this->addRule($oNewRule); - foreach ($aPositions as $sPosition) { - $this->removeRule(sprintf($sExpanded, $sPosition)); - } - } - } - } - - /** - * Looks for long format CSS font properties (e.g. <tt>font-weight</tt>) and - * tries to convert them into a shorthand CSS <tt>font</tt> property. - * At least font-size AND font-family must be present in order to create a shorthand declaration. - * */ - public function createFontShorthand() { - $aFontProperties = array( - 'font-style', 'font-variant', 'font-weight', 'font-size', 'line-height', 'font-family' - ); - $aRules = $this->getRulesAssoc(); - if (!isset($aRules['font-size']) || !isset($aRules['font-family'])) { - return; - } - $oNewRule = new Rule('font', $this->iLineNo); - foreach (array('font-style', 'font-variant', 'font-weight') as $sProperty) { - if (isset($aRules[$sProperty])) { - $oRule = $aRules[$sProperty]; - $mRuleValue = $oRule->getValue(); - $aValues = array(); - if (!$mRuleValue instanceof RuleValueList) { - $aValues[] = $mRuleValue; - } else { - $aValues = $mRuleValue->getListComponents(); - } - if ($aValues[0] !== 'normal') { - $oNewRule->addValue($aValues[0]); - } - } - } - // Get the font-size value - $oRule = $aRules['font-size']; - $mRuleValue = $oRule->getValue(); - $aFSValues = array(); - if (!$mRuleValue instanceof RuleValueList) { - $aFSValues[] = $mRuleValue; - } else { - $aFSValues = $mRuleValue->getListComponents(); - } - // But wait to know if we have line-height to add it - if (isset($aRules['line-height'])) { - $oRule = $aRules['line-height']; - $mRuleValue = $oRule->getValue(); - $aLHValues = array(); - if (!$mRuleValue instanceof RuleValueList) { - $aLHValues[] = $mRuleValue; - } else { - $aLHValues = $mRuleValue->getListComponents(); - } - if ($aLHValues[0] !== 'normal') { - $val = new RuleValueList('/', $this->iLineNo); - $val->addListComponent($aFSValues[0]); - $val->addListComponent($aLHValues[0]); - $oNewRule->addValue($val); - } - } else { - $oNewRule->addValue($aFSValues[0]); - } - $oRule = $aRules['font-family']; - $mRuleValue = $oRule->getValue(); - $aFFValues = array(); - if (!$mRuleValue instanceof RuleValueList) { - $aFFValues[] = $mRuleValue; - } else { - $aFFValues = $mRuleValue->getListComponents(); - } - $oFFValue = new RuleValueList(',', $this->iLineNo); - $oFFValue->setListComponents($aFFValues); - $oNewRule->addValue($oFFValue); - - $this->addRule($oNewRule); - foreach ($aFontProperties as $sProperty) { - $this->removeRule($sProperty); - } - } - - public function __toString() { - return $this->render(new \Utils\SabberwormCSS\OutputFormat()); - } - - public function render(\Utils\SabberwormCSS\OutputFormat $oOutputFormat) { - if(count($this->aSelectors) === 0) { - // If all the selectors have been removed, this declaration block becomes invalid - throw new OutputException("Attempt to print declaration block with missing selector", $this->iLineNo); - } - $sResult = $oOutputFormat->implode($oOutputFormat->spaceBeforeSelectorSeparator() . ',' . $oOutputFormat->spaceAfterSelectorSeparator(), $this->aSelectors) . $oOutputFormat->spaceBeforeOpeningBrace() . '{'; - $sResult .= parent::render($oOutputFormat); - $sResult .= '}'; - return $sResult; - } - -} diff --git a/Utils/SabberwormCSS/RuleSet/RuleSet.class.php b/Utils/SabberwormCSS/RuleSet/RuleSet.class.php deleted file mode 100644 index 105aa2f..0000000 --- a/Utils/SabberwormCSS/RuleSet/RuleSet.class.php +++ /dev/null @@ -1,173 +0,0 @@ -<?php - -namespace Utils\SabberwormCSS\RuleSet; - -use Utils\SabberwormCSS\Rule\Rule; -use Utils\SabberwormCSS\Renderable; -use Utils\SabberwormCSS\Comment\Commentable; - -/** - * RuleSet is a generic superclass denoting rules. The typical example for rule sets are declaration block. - * However, unknown At-Rules (like @font-face) are also rule sets. - */ -abstract class RuleSet implements Renderable, Commentable { - - private $aRules; - protected $iLineNo; - protected $aComments; - - public function __construct($iLineNo = 0) { - $this->aRules = array(); - $this->iLineNo = $iLineNo; - $this->aComments = array(); - } - - /** - * @return int - */ - public function getLineNo() { - return $this->iLineNo; - } - - public function addRule(Rule $oRule, Rule $oSibling = null) { - $sRule = $oRule->getRule(); - if(!isset($this->aRules[$sRule])) { - $this->aRules[$sRule] = array(); - } - - $iPosition = count($this->aRules[$sRule]); - - if ($oSibling !== null) { - $iSiblingPos = array_search($oSibling, $this->aRules[$sRule], true); - if ($iSiblingPos !== false) { - $iPosition = $iSiblingPos; - } - } - - array_splice($this->aRules[$sRule], $iPosition, 0, array($oRule)); - } - - /** - * Returns all rules matching the given rule name - * @param (null|string|Rule) $mRule pattern to search for. If null, returns all rules. if the pattern ends with a dash, all rules starting with the pattern are returned as well as one matching the pattern with the dash excluded. passing a Rule behaves like calling getRules($mRule->getRule()). - * @example $oRuleSet->getRules('font-') //returns an array of all rules either beginning with font- or matching font. - * @example $oRuleSet->getRules('font') //returns array(0 => $oRule, …) or array(). - */ - public function getRules($mRule = null) { - if ($mRule instanceof Rule) { - $mRule = $mRule->getRule(); - } - $aResult = array(); - foreach($this->aRules as $sName => $aRules) { - // Either no search rule is given or the search rule matches the found rule exactly or the search rule ends in “-” and the found rule starts with the search rule. - if(!$mRule || $sName === $mRule || (strrpos($mRule, '-') === strlen($mRule) - strlen('-') && (strpos($sName, $mRule) === 0 || $sName === substr($mRule, 0, -1)))) { - $aResult = array_merge($aResult, $aRules); - } - } - return $aResult; - } - - /** - * Override all the rules of this set. - * @param array $aRules The rules to override with. - */ - public function setRules(array $aRules) { - $this->aRules = array(); - foreach ($aRules as $rule) { - $this->addRule($rule); - } - } - - /** - * Returns all rules matching the given pattern and returns them in an associative array with the rule’s name as keys. This method exists mainly for backwards-compatibility and is really only partially useful. - * @param (string) $mRule pattern to search for. If null, returns all rules. if the pattern ends with a dash, all rules starting with the pattern are returned as well as one matching the pattern with the dash excluded. passing a Rule behaves like calling getRules($mRule->getRule()). - * Note: This method loses some information: Calling this (with an argument of 'background-') on a declaration block like { background-color: green; background-color; rgba(0, 127, 0, 0.7); } will only yield an associative array containing the rgba-valued rule while @link{getRules()} would yield an indexed array containing both. - */ - public function getRulesAssoc($mRule = null) { - $aResult = array(); - foreach($this->getRules($mRule) as $oRule) { - $aResult[$oRule->getRule()] = $oRule; - } - return $aResult; - } - - /** - * Remove a rule from this RuleSet. This accepts all the possible values that @link{getRules()} accepts. If given a Rule, it will only remove this particular rule (by identity). If given a name, it will remove all rules by that name. Note: this is different from pre-v.2.0 behaviour of PHP-CSS-Parser, where passing a Rule instance would remove all rules with the same name. To get the old behvaiour, use removeRule($oRule->getRule()). - * @param (null|string|Rule) $mRule pattern to remove. If $mRule is null, all rules are removed. If the pattern ends in a dash, all rules starting with the pattern are removed as well as one matching the pattern with the dash excluded. Passing a Rule behaves matches by identity. - */ - public function removeRule($mRule) { - if($mRule instanceof Rule) { - $sRule = $mRule->getRule(); - if(!isset($this->aRules[$sRule])) { - return; - } - foreach($this->aRules[$sRule] as $iKey => $oRule) { - if($oRule === $mRule) { - unset($this->aRules[$sRule][$iKey]); - } - } - } else { - foreach($this->aRules as $sName => $aRules) { - // Either no search rule is given or the search rule matches the found rule exactly or the search rule ends in “-” and the found rule starts with the search rule or equals it (without the trailing dash). - if(!$mRule || $sName === $mRule || (strrpos($mRule, '-') === strlen($mRule) - strlen('-') && (strpos($sName, $mRule) === 0 || $sName === substr($mRule, 0, -1)))) { - unset($this->aRules[$sName]); - } - } - } - } - - public function __toString() { - return $this->render(new \Utils\SabberwormCSS\OutputFormat()); - } - - public function render(\Utils\SabberwormCSS\OutputFormat $oOutputFormat) { - $sResult = ''; - $bIsFirst = true; - foreach ($this->aRules as $aRules) { - foreach($aRules as $oRule) { - $sRendered = $oOutputFormat->safely(function() use ($oRule, $oOutputFormat) { - return $oRule->render($oOutputFormat->nextLevel()); - }); - if($sRendered === null) { - continue; - } - if($bIsFirst) { - $bIsFirst = false; - $sResult .= $oOutputFormat->nextLevel()->spaceBeforeRules(); - } else { - $sResult .= $oOutputFormat->nextLevel()->spaceBetweenRules(); - } - $sResult .= $sRendered; - } - } - - if(!$bIsFirst) { - // Had some output - $sResult .= $oOutputFormat->spaceAfterRules(); - } - - return $oOutputFormat->removeLastSemicolon($sResult); - } - - /** - * @param array $aComments Array of comments. - */ - public function addComments(array $aComments) { - $this->aComments = array_merge($this->aComments, $aComments); - } - - /** - * @return array - */ - public function getComments() { - return $this->aComments; - } - - /** - * @param array $aComments Array containing Comment objects. - */ - public function setComments(array $aComments) { - $this->aComments = $aComments; - } - -} diff --git a/Utils/SabberwormCSS/Settings.class.php b/Utils/SabberwormCSS/Settings.class.php deleted file mode 100644 index f71663d..0000000 --- a/Utils/SabberwormCSS/Settings.class.php +++ /dev/null @@ -1,54 +0,0 @@ -<?php - -namespace Utils\SabberwormCSS; - -use Utils\SabberwormCSS\Rule\Rule; - -/** - * Parser settings class. - * - * Configure parser behaviour here. - */ -class Settings { - /** - * Multi-byte string support. If true (mbstring extension must be enabled), will use (slower) mb_strlen, mb_convert_case, mb_substr and mb_strpos functions. Otherwise, the normal (ASCII-Only) functions will be used. - */ - public $bMultibyteSupport; - - /** - * The default charset for the CSS if no `@charset` rule is found. Defaults to utf-8. - */ - public $sDefaultCharset = 'utf-8'; - - /** - * Lenient parsing. When used (which is true by default), the parser will not choke on unexpected tokens but simply ignore them. - */ - public $bLenientParsing = true; - - private function __construct() { - $this->bMultibyteSupport = extension_loaded('mbstring'); - } - - public static function create() { - return new Settings(); - } - - public function withMultibyteSupport($bMultibyteSupport = true) { - $this->bMultibyteSupport = $bMultibyteSupport; - return $this; - } - - public function withDefaultCharset($sDefaultCharset) { - $this->sDefaultCharset = $sDefaultCharset; - return $this; - } - - public function withLenientParsing($bLenientParsing = true) { - $this->bLenientParsing = $bLenientParsing; - return $this; - } - - public function beStrict() { - return $this->withLenientParsing(false); - } -} \ No newline at end of file diff --git a/Utils/SabberwormCSS/Value/CSSFunction.class.php b/Utils/SabberwormCSS/Value/CSSFunction.class.php deleted file mode 100644 index 753da8e..0000000 --- a/Utils/SabberwormCSS/Value/CSSFunction.class.php +++ /dev/null @@ -1,40 +0,0 @@ -<?php - -namespace Utils\SabberwormCSS\Value; - -class CSSFunction extends ValueList { - - private $sName; - - public function __construct($sName, $aArguments, $sSeparator = ',', $iLineNo = 0) { - if($aArguments instanceof RuleValueList) { - $sSeparator = $aArguments->getListSeparator(); - $aArguments = $aArguments->getListComponents(); - } - $this->sName = $sName; - $this->iLineNo = $iLineNo; - parent::__construct($aArguments, $sSeparator, $iLineNo); - } - - public function getName() { - return $this->sName; - } - - public function setName($sName) { - $this->sName = $sName; - } - - public function getArguments() { - return $this->aComponents; - } - - public function __toString() { - return $this->render(new \Utils\SabberwormCSS\OutputFormat()); - } - - public function render(\Utils\SabberwormCSS\OutputFormat $oOutputFormat) { - $aArguments = parent::render($oOutputFormat); - return "{$this->sName}({$aArguments})"; - } - -} \ No newline at end of file diff --git a/Utils/SabberwormCSS/Value/CSSString.class.php b/Utils/SabberwormCSS/Value/CSSString.class.php deleted file mode 100644 index 67b8835..0000000 --- a/Utils/SabberwormCSS/Value/CSSString.class.php +++ /dev/null @@ -1,32 +0,0 @@ -<?php - -namespace Utils\SabberwormCSS\Value; - -class CSSString extends PrimitiveValue { - - private $sString; - - public function __construct($sString, $iLineNo = 0) { - $this->sString = $sString; - parent::__construct($iLineNo); - } - - public function setString($sString) { - $this->sString = $sString; - } - - public function getString() { - return $this->sString; - } - - public function __toString() { - return $this->render(new \Utils\SabberwormCSS\OutputFormat()); - } - - public function render(\Utils\SabberwormCSS\OutputFormat $oOutputFormat) { - $sString = addslashes($this->sString); - $sString = str_replace("\n", '\A', $sString); - return $oOutputFormat->getStringQuotingType() . $sString . $oOutputFormat->getStringQuotingType(); - } - -} \ No newline at end of file diff --git a/Utils/SabberwormCSS/Value/Color.class.php b/Utils/SabberwormCSS/Value/Color.class.php deleted file mode 100644 index ba24a5c..0000000 --- a/Utils/SabberwormCSS/Value/Color.class.php +++ /dev/null @@ -1,41 +0,0 @@ -<?php - -namespace Utils\SabberwormCSS\Value; - -class Color extends CSSFunction { - - public function __construct($aColor, $iLineNo = 0) { - parent::__construct(implode('', array_keys($aColor)), $aColor, ',', $iLineNo); - } - - public function getColor() { - return $this->aComponents; - } - - public function setColor($aColor) { - $this->setName(implode('', array_keys($aColor))); - $this->aComponents = $aColor; - } - - public function getColorDescription() { - return $this->getName(); - } - - public function __toString() { - return $this->render(new \Utils\SabberwormCSS\OutputFormat()); - } - - public function render(\Utils\SabberwormCSS\OutputFormat $oOutputFormat) { - // Shorthand RGB color values - if($oOutputFormat->getRGBHashNotation() && implode('', array_keys($this->aComponents)) === 'rgb') { - $sResult = sprintf( - '%02x%02x%02x', - $this->aComponents['r']->getSize(), - $this->aComponents['g']->getSize(), - $this->aComponents['b']->getSize() - ); - return '#'.(($sResult[0] == $sResult[1]) && ($sResult[2] == $sResult[3]) && ($sResult[4] == $sResult[5]) ? "$sResult[0]$sResult[2]$sResult[4]" : $sResult); - } - return parent::render($oOutputFormat); - } -} diff --git a/Utils/SabberwormCSS/Value/PrimitiveValue.class.php b/Utils/SabberwormCSS/Value/PrimitiveValue.class.php deleted file mode 100644 index e051dfa..0000000 --- a/Utils/SabberwormCSS/Value/PrimitiveValue.class.php +++ /dev/null @@ -1,10 +0,0 @@ -<?php - -namespace Utils\SabberwormCSS\Value; - -abstract class PrimitiveValue extends Value { - public function __construct($iLineNo = 0) { - parent::__construct($iLineNo); - } - -} \ No newline at end of file diff --git a/Utils/SabberwormCSS/Value/RuleValueList.class.php b/Utils/SabberwormCSS/Value/RuleValueList.class.php deleted file mode 100644 index 2ffbf84..0000000 --- a/Utils/SabberwormCSS/Value/RuleValueList.class.php +++ /dev/null @@ -1,9 +0,0 @@ -<?php - -namespace Utils\SabberwormCSS\Value; - -class RuleValueList extends ValueList { - public function __construct($sSeparator = ',', $iLineNo = 0) { - parent::__construct(array(), $sSeparator, $iLineNo); - } -} \ No newline at end of file diff --git a/Utils/SabberwormCSS/Value/Size.class.php b/Utils/SabberwormCSS/Value/Size.class.php deleted file mode 100644 index 86a8341..0000000 --- a/Utils/SabberwormCSS/Value/Size.class.php +++ /dev/null @@ -1,73 +0,0 @@ -<?php - -namespace Utils\SabberwormCSS\Value; - -class Size extends PrimitiveValue { - - const ABSOLUTE_SIZE_UNITS = 'px/cm/mm/mozmm/in/pt/pc/vh/vw/vm/vmin/vmax/rem'; //vh/vw/vm(ax)/vmin/rem are absolute insofar as they don’t scale to the immediate parent (only the viewport) - const RELATIVE_SIZE_UNITS = '%/em/ex/ch/fr'; - const NON_SIZE_UNITS = 'deg/grad/rad/s/ms/turns/Hz/kHz'; - - private $fSize; - private $sUnit; - private $bIsColorComponent; - - public function __construct($fSize, $sUnit = null, $bIsColorComponent = false, $iLineNo = 0) { - parent::__construct($iLineNo); - $this->fSize = floatval($fSize); - $this->sUnit = $sUnit; - $this->bIsColorComponent = $bIsColorComponent; - } - - public function setUnit($sUnit) { - $this->sUnit = $sUnit; - } - - public function getUnit() { - return $this->sUnit; - } - - public function setSize($fSize) { - $this->fSize = floatval($fSize); - } - - public function getSize() { - return $this->fSize; - } - - public function isColorComponent() { - return $this->bIsColorComponent; - } - - /** - * Returns whether the number stored in this Size really represents a size (as in a length of something on screen). - * @return false if the unit an angle, a duration, a frequency or the number is a component in a Color object. - */ - public function isSize() { - if (in_array($this->sUnit, explode('/', self::NON_SIZE_UNITS))) { - return false; - } - return !$this->isColorComponent(); - } - - public function isRelative() { - if (in_array($this->sUnit, explode('/', self::RELATIVE_SIZE_UNITS))) { - return true; - } - if ($this->sUnit === null && $this->fSize != 0) { - return true; - } - return false; - } - - public function __toString() { - return $this->render(new \Utils\SabberwormCSS\OutputFormat()); - } - - public function render(\Utils\SabberwormCSS\OutputFormat $oOutputFormat) { - $l = localeconv(); - $sPoint = preg_quote($l['decimal_point'], '/'); - return preg_replace(array("/$sPoint/", "/^(-?)0\./"), array('.', '$1.'), $this->fSize) . ($this->sUnit === null ? '' : $this->sUnit); - } - -} diff --git a/Utils/SabberwormCSS/Value/URL.class.php b/Utils/SabberwormCSS/Value/URL.class.php deleted file mode 100644 index 1299948..0000000 --- a/Utils/SabberwormCSS/Value/URL.class.php +++ /dev/null @@ -1,31 +0,0 @@ -<?php - -namespace Utils\SabberwormCSS\Value; - - -class URL extends PrimitiveValue { - - private $oURL; - - public function __construct(CSSString $oURL, $iLineNo = 0) { - parent::__construct($iLineNo); - $this->oURL = $oURL; - } - - public function setURL(CSSString $oURL) { - $this->oURL = $oURL; - } - - public function getURL() { - return $this->oURL; - } - - public function __toString() { - return $this->render(new \Utils\SabberwormCSS\OutputFormat()); - } - - public function render(\Utils\SabberwormCSS\OutputFormat $oOutputFormat) { - return "url({$this->oURL->render($oOutputFormat)})"; - } - -} \ No newline at end of file diff --git a/Utils/SabberwormCSS/Value/Value.class.php b/Utils/SabberwormCSS/Value/Value.class.php deleted file mode 100644 index 369ba38..0000000 --- a/Utils/SabberwormCSS/Value/Value.class.php +++ /dev/null @@ -1,24 +0,0 @@ -<?php - -namespace Utils\SabberwormCSS\Value; - -use Utils\SabberwormCSS\Renderable; - -abstract class Value implements Renderable { - protected $iLineNo; - - public function __construct($iLineNo = 0) { - $this->iLineNo = $iLineNo; - } - - /** - * @return int - */ - public function getLineNo() { - return $this->iLineNo; - } - - //Methods are commented out because re-declaring them here is a fatal error in PHP < 5.3.9 - //public abstract function __toString(); - //public abstract function render(\Utils\SabberwormCSS\OutputFormat $oOutputFormat); -} diff --git a/Utils/SabberwormCSS/Value/ValueList.class.php b/Utils/SabberwormCSS/Value/ValueList.class.php deleted file mode 100644 index 0b55994..0000000 --- a/Utils/SabberwormCSS/Value/ValueList.class.php +++ /dev/null @@ -1,47 +0,0 @@ -<?php - -namespace Utils\SabberwormCSS\Value; - -abstract class ValueList extends Value { - - protected $aComponents; - protected $sSeparator; - - public function __construct($aComponents = array(), $sSeparator = ',', $iLineNo = 0) { - parent::__construct($iLineNo); - if (!is_array($aComponents)) { - $aComponents = array($aComponents); - } - $this->aComponents = $aComponents; - $this->sSeparator = $sSeparator; - } - - public function addListComponent($mComponent) { - $this->aComponents[] = $mComponent; - } - - public function getListComponents() { - return $this->aComponents; - } - - public function setListComponents($aComponents) { - $this->aComponents = $aComponents; - } - - public function getListSeparator() { - return $this->sSeparator; - } - - public function setListSeparator($sSeparator) { - $this->sSeparator = $sSeparator; - } - - public function __toString() { - return $this->render(new \Utils\SabberwormCSS\OutputFormat()); - } - - public function render(\Utils\SabberwormCSS\OutputFormat $oOutputFormat) { - return $oOutputFormat->implode($oOutputFormat->spaceBeforeListArgumentSeparator($this->sSeparator) . $this->sSeparator . $oOutputFormat->spaceAfterListArgumentSeparator($this->sSeparator), $this->aComponents); - } - -} diff --git a/Utils/Template.class.php b/Utils/Template.class.php index a72327c..8773dd4 100644 --- a/Utils/Template.class.php +++ b/Utils/Template.class.php @@ -257,7 +257,6 @@ public function load_template() { } if(!property_exists($this, 'css')) $this->css = array(); if(!$this->isAmp) { - $this->css[] = 'https://cdnjs.cloudflare.com/ajax/libs/bootstrap-select/1.6.2/css/bootstrap-select.min.css'; $this->css[] = 'https://cdnjs.cloudflare.com/ajax/libs/flag-icon-css/0.8.2/css/flag-icon.min.css'; $menuRight = '<div class="dropdown"> <button class="btn btn-secondary dropdown-toggle" type="button" id="dropdownMenuButton" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false"><span class="flag-icon flag-icon-' . ($currentLanguage['flag'] == 'en' ? 'us' : $currentLanguage['flag']) . '"></span> ' . $currentLanguage['native'] . '</button> @@ -278,9 +277,9 @@ public function load_template() { //Set the main javascripts if(!$this->isAmp) { - $mainJavascripts = 'jquery.min.js,bootstrap.min.js,main.js'; + $mainJavascripts = 'jquery.min.js,tether.min.js,bootstrap.min.js,main.js'; loadJs($mainJavascripts, $this->from_cache, false); - $this->MAIN_JAVASCRIPTS = '<script defer="defer" type="text/javascript" src="' . _FOLDER_URL_ . 'js/' . md5($mainJavascripts) . '.js" id="mainjs" data-appdir="' . _FOLDER_URL_ . '"></script>'; + $this->MAIN_JAVASCRIPTS = '<script defer="defer" type="text/javascript" src="' . _FOLDER_URL_ . 'cache/js/' . md5($mainJavascripts) . '.js" id="mainjs" data-appdir="' . _FOLDER_URL_ . '"></script>'; } //Set the content values to replace inside html template @@ -298,7 +297,7 @@ public function load_template() { $js = array(); $replacement = ''; foreach($this->js AS $fjs) { - if(strpos($fjs, '//') !== false) $replacement .= ' <script defer type="text/javascript" src="' . $fjs . '"></script>' . PHP_EOL; + if(strpos($fjs, '//') !== false) $replacement .= ' <script defer="defer" type="text/javascript" src="' . $fjs . '"></script>' . PHP_EOL; } foreach($this->js AS $fjs) { if(strpos($fjs, '//') === false) $js[] = $fjs; @@ -307,7 +306,7 @@ public function load_template() { $scripts = implode(",", $js); loadJs($scripts, $this->from_cache); $replacement .= /** @lang text */ - ' <script defer="defer" type="text/javascript" src="' . _FOLDER_URL_ . 'js/' . md5($scripts) . '.js"></script>' . PHP_EOL; + ' <script defer="defer" type="text/javascript" src="' . _FOLDER_URL_ . 'cache/js/' . md5($scripts) . '.js"></script>' . PHP_EOL; } $pos = strripos($this->template, "</script>"); $this->template = substr_replace($this->template, "\n" . $replacement, $pos + 9, 0); @@ -330,7 +329,7 @@ public function load_template() { $this->template = substr_replace($this->template, $replacement, $pos, 0); if(!empty($scripts)) { loadCss($scripts, $this->from_cache, false); - $cssLR = '<link rel="stylesheet" type="text/css" href="' . _FOLDER_URL_ . 'css/' . md5($scripts) . '.css" id="cssdeferred" />'; + $cssLR = '<link rel="stylesheet" type="text/css" href="' . _FOLDER_URL_ . 'cache/css/' . md5($scripts) . '.css" id="cssdeferred" />'; } } if(!$this->isAmp) $footer = /** @lang text */ diff --git a/Utils/functions.php b/Utils/functions.php index 40d2d4c..e26210d 100644 --- a/Utils/functions.php +++ b/Utils/functions.php @@ -69,7 +69,6 @@ public static function getUserLanguage($user = false) { */ public static function setUserLanguage($language) { $_SESSION['userLanguage'] = $language; - echo $_SESSION['userLanguage']; exit; return setcookie('language', $language, time() + 60 * 60 * 24 * 30); } @@ -323,6 +322,7 @@ public static function getCache() { } } namespace { + require dirname(__DIR__) . '/vendor/autoload.php'; //Uncomment these lines if you want to redirect user to https from http and / or with www. prefix /*$protocol = (@$_SERVER["HTTPS"] == "on")?"https://":"http://"; if (isset($_SERVER['HTTP_HOST']) && substr($_SERVER['HTTP_HOST'], 0, 4) !== 'www.' && substr($_SERVER['HTTP_HOST'], 0, 4) !== 'cne.') { diff --git a/Utils/scripts.php b/Utils/scripts.php index 91b5c7f..0e9eb64 100644 --- a/Utils/scripts.php +++ b/Utils/scripts.php @@ -14,31 +14,60 @@ function loadJs($js, $fromCache = true, $return = true) { $buffer = ""; if(count($scripts) > 0) { foreach($scripts as $script) { - if(file_exists(dirname(dirname(__FILE__)) . '/js/' . $script)) $buffer .= file_get_contents(dirname(dirname(__FILE__)) . '/js/' . $script) . PHP_EOL; + switch($script) { + case 'jquery.min.js': + $fileName = _APP_DIR_ . 'vendor/components/jquery/' . $script; + break; + case 'jquery-ui.min.js': + $fileName = _APP_DIR_ . 'vendor/components/jqueryui/' . $script; + break; + case 'bootstrap.min.js': + $fileName = _APP_DIR_ . 'vendor/twbs/bootstrap/dist/js/' . $script; + break; + default: + if(strpos($script, 'Module/') !== 0) $fileName = _APP_DIR_ . 'assets/js/' . $script; + else $fileName = _APP_DIR_ . $script; + break; + } + if(file_exists($fileName)) $buffer .= file_get_contents($fileName) . PHP_EOL; } } - require_once(dirname(dirname(__FILE__)) . '/Utils/JShrink/Minifier.class.php'); - $buffer = \Utils\JShrink\Minifier::minify($buffer, array('flaggedComments' => false)); + $buffer = \JShrink\Minifier::minify($buffer, array('flaggedComments' => false)); if($cache) $cache->set(_CACHE_PREFIX_ . 'javaScript' . $md5Value, $buffer); } } if($fromCache) { - if(file_exists(dirname(dirname(__FILE__)) . '/js/' . $md5Value . '.js')) return ($return)?file_get_contents(dirname(dirname(__FILE__)) . '/js/' . $md5Value . '.js'):true; - else file_put_contents(dirname(dirname(__FILE__)) . '/js/' . $md5Value . '.js', $buffer); + if(!file_exists(_APP_DIR_ . 'cache/')) mkdir(_APP_DIR_ . 'cache/', 0775, true); + if(!file_exists(_APP_DIR_ . 'cache/js/')) mkdir(_APP_DIR_ . 'cache/js/', 0775, true); + $cacheFile = _APP_DIR_ . 'cache/js/' . $md5Value . '.js'; + if(file_exists($cacheFile)) return ($return)?file_get_contents($cacheFile):true; + else file_put_contents($cacheFile, $buffer); } return ($return)?$buffer:true; } -function loadCss($css, $fromCache = true, $return = true, $filename = '') { +function loadCss($css, $fromCache = true, $return = true, $saveFileName = '') { $cache = Util::getCache(); $scripts=explode(',', $css); - $md5Value = (empty($filename))?md5($css):$filename; + $md5Value = (empty($saveFileName))?md5($css):$saveFileName; $buffer = ''; if(!$cache || !($buffer = $cache->get(_CACHE_PREFIX_ . 'css' . $md5Value))) { if(!$cache || empty($buffer)) { $buffer = ""; if(count($scripts) > 0) { foreach($scripts as $script) { - if(file_exists(dirname(dirname(__FILE__)) . '/css/' . $script)) $buffer .= file_get_contents(dirname(dirname(__FILE__)) . '/css/' . $script) . PHP_EOL; + switch($script) { + case 'bootstrap.css': + $fileName = _APP_DIR_ . 'vendor/twbs/bootstrap/dist/css/' . $script; + break; + case 'font-awesome.css': + $fileName = _APP_DIR_ . 'vendor/components/font-awesome/css/' . $script; + break; + default: + if(strpos($script, 'Module/') !== 0) $fileName = _APP_DIR_ . 'assets/css/' . $script; + else $fileName = _APP_DIR_ . $script; + break; + } + if(file_exists($fileName)) $buffer .= file_get_contents($fileName) . PHP_EOL; } } // Remove comments @@ -52,8 +81,11 @@ function loadCss($css, $fromCache = true, $return = true, $filename = '') { } } if($fromCache) { - if(file_exists(dirname(dirname(__FILE__)) . '/css/' . $md5Value . '.css')) return ($return)?file_get_contents(dirname(dirname(__FILE__)) . '/css/' . $md5Value . '.css'):true; - else file_put_contents(dirname(dirname(__FILE__)) . '/css/' . $md5Value . '.css', $buffer); + if(!file_exists(_APP_DIR_ . 'cache/')) mkdir(_APP_DIR_ . 'cache/', 0775, true); + if(!file_exists(_APP_DIR_ . 'cache/css/')) mkdir(_APP_DIR_ . 'cache/css/', 0775, true); + $cacheFile = _APP_DIR_ . 'cache/css/' . $md5Value . '.css'; + if(file_exists($cacheFile)) return ($return)?file_get_contents($cacheFile):true; + else file_put_contents($cacheFile, $buffer); } return ($return)?$buffer:true; } @@ -77,7 +109,7 @@ function loadCss($css, $fromCache = true, $return = true, $filename = '') { header("content-type: text/css"); header('Cache-Control: public'); header('Expires: '.gmdate('D, d M Y H:i:s \G\M\T', time() + 2592000)); - $buffer = loadCss('bootstrap.css,font-montserrat.css,font-awesome.css,_main.css', true, true, 'main'); + $buffer = loadCss('bootstrap.css,font-montserrat.css,font-awesome.css,main.css', true, true, 'main'); echo $buffer; exit; } \ No newline at end of file diff --git a/Utils/stringEncode/Autoloader.php b/Utils/stringEncode/Autoloader.php deleted file mode 100644 index f2b82d2..0000000 --- a/Utils/stringEncode/Autoloader.php +++ /dev/null @@ -1,46 +0,0 @@ -<?php - -stringEncode_Autoloader::register(); -class stringEncode_Autoloader { - /** - * Register the Autoloader with SPL - * - */ - public static function register() - { - if (function_exists('__stringEncodeautoload')) { - // Register any existing autoloader function with SPL, so we don't get any clashes - spl_autoload_register('__stringEncodeautoload'); - } - // Register ourselves with SPL - if (version_compare(PHP_VERSION, '5.3.0') >= 0) { - return spl_autoload_register(array('stringEncode_Autoloader', 'load'), true, true); - } else { - return spl_autoload_register(array('stringEncode_Autoloader', 'load')); - } - } - - /** - * Autoload a class identified by name - * - * @param string $pClassName Name of the object to load - */ - public static function load($pClassName) - { - if ((class_exists($pClassName, false)) || (strpos($pClassName, 'stringEncode') !== 0)) { - // Either already loaded, or not a stringEncode class request - return false; - } - - $pClassFilePath = dirname(dirname(__FILE__)) . DIRECTORY_SEPARATOR . - str_replace('\\', DIRECTORY_SEPARATOR, str_replace('_', DIRECTORY_SEPARATOR, $pClassName)) . - '.php'; - - if ((file_exists($pClassFilePath) === false) || (is_readable($pClassFilePath) === false)) { - // Can't load - return false; - } - - require($pClassFilePath); - } -} diff --git a/Utils/stringEncode/Encode.php b/Utils/stringEncode/Encode.php deleted file mode 100644 index 6778fbb..0000000 --- a/Utils/stringEncode/Encode.php +++ /dev/null @@ -1,121 +0,0 @@ -<?php -namespace stringEncode; - -class Encode { - - /** - * The encoding that the string is currently in. - * - * @var string - */ - protected $from; - - /** - * The encoding that we would like the string to be in. - * - * @var string - */ - protected $to; - - /** - * Sets the default charsets for thie package. - */ - public function __construct() - { - // default from encoding - $this->from = 'CP1252'; - - // default to encoding - $this->to = 'UTF-8'; - } - - /** - * Sets the charset that we will be converting to. - * - * @param string $charset - * @chainable - */ - public function to($charset) - { - $this->to = strtoupper($charset); - return $this; - } - - /** - * Sets the charset that we will be converting from. - * - * @param string $charset - * @chainable - */ - public function from($charset) - { - $this->from = strtoupper($charset); - } - - /** - * Returns the to and from charset that we will be using. - * - * @return array - */ - public function charset() - { - return [ - 'from' => $this->from, - 'to' => $this->to, - ]; - } - - /** - * Attempts to detect the encoding of the given string from the encodingList. - * - * @param string $str - * @param array $encodingList - * @return bool - */ - public function detect($str, $encodingList = ['UTF-8', 'CP1252']) - { - $charset = mb_detect_encoding($str, $encodingList); - if ($charset === false) - { - // could not detect charset - return false; - } - - $this->from = $charset; - return true; - } - - /** - * Attempts to convert the string to the proper charset. - * - * @return string - */ - public function convert($str) - { - if ($this->from != $this->to) - { - $str = iconv($this->from, $this->to, $str); - } - - if ($str === false) - { - // the convertion was a failure - throw new Exception('The convertion from "'.$this->from.'" to "'.$this->to.'" was a failure.'); - } - - // deal with BOM issue for utf-8 text - if ($this->to == 'UTF-8') - { - if (substr($str, 0, 3) == "\xef\xbb\xbf") - { - $str = substr($str, 3); - } - if (substr($str, -3, 3) == "\xef\xbb\xbf") - { - $str = substr($str, 0, -3); - } - } - - return $str; - } -} diff --git a/Utils/stringEncode/Exception.php b/Utils/stringEncode/Exception.php deleted file mode 100644 index b8a3dfb..0000000 --- a/Utils/stringEncode/Exception.php +++ /dev/null @@ -1,4 +0,0 @@ -<?php -namespace stringEncode; - -class Exception extends \Exception {} diff --git a/admin/Template.class.php b/admin/Template.class.php index 33782a2..1e5eea3 100644 --- a/admin/Template.class.php +++ b/admin/Template.class.php @@ -89,7 +89,7 @@ public function loadTemplate() { public function getLinks() { $return = array(); - $return[] = AdminPage::createLink(array('href' => '/' . basename(dirname(__FILE__)) . '/', 'text' => __('Statistics'), 'class' => 'dashboard'), empty($this->currentUrl)?'/' . basename(dirname(__FILE__)) . '/':$this->currentUrl); + $return[] = AdminPage::createLink(array('href' => _FOLDER_URL_ . basename(dirname(__FILE__)) . '/', 'text' => __('Statistics'), 'class' => 'dashboard'), empty($this->currentUrl)?'/' . basename(dirname(__FILE__)) . '/':$this->currentUrl); $admins_permissions = new Model('admins_permissions'); $admins_permissions->admin = AdminController::getCurrentUser()->id; $admins_permissions = $admins_permissions->get(); diff --git a/admin/bower_components/Ionicons/.bower.json b/admin/bower_components/Ionicons/.bower.json deleted file mode 100644 index 8d8c0e3..0000000 --- a/admin/bower_components/Ionicons/.bower.json +++ /dev/null @@ -1,41 +0,0 @@ -{ - "ignore": [ - "**/.*", - "builder", - "node_modules", - "bower_components", - "test", - "tests" - ], - "version": "2.0.1", - "name": "Ionicons", - "license": "MIT", - "authors": [ - "Ben Sperry <ben@drifty.com>", - "Adam Bradley <adam@drifty.com>", - "Max Lynch <max@drifty.com>" - ], - "keywords": [ - "fonts", - "icon font", - "icons", - "ionic", - "web font" - ], - "main": [ - "css/ionicons.css", - "fonts/*" - ], - "homepage": "https://github.com/driftyco/ionicons", - "description": "Ionicons - free and beautiful icons from the creators of Ionic Framework", - "_release": "2.0.1", - "_resolution": { - "type": "version", - "tag": "v2.0.1", - "commit": "ecb4b806831005c25b97ed9089fbb1d7dcc0879c" - }, - "_source": "https://github.com/driftyco/ionicons.git", - "_target": "^2.0.1", - "_originalSource": "ionicons", - "_direct": true -} \ No newline at end of file diff --git a/admin/bower_components/Ionicons/LICENSE b/admin/bower_components/Ionicons/LICENSE deleted file mode 100644 index 18ab118..0000000 --- a/admin/bower_components/Ionicons/LICENSE +++ /dev/null @@ -1,21 +0,0 @@ -The MIT License (MIT) - -Copyright (c) 2014 Drifty (http://drifty.com/) - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -THE SOFTWARE. diff --git a/admin/bower_components/Ionicons/bower.json b/admin/bower_components/Ionicons/bower.json deleted file mode 100644 index 9417a8e..0000000 --- a/admin/bower_components/Ionicons/bower.json +++ /dev/null @@ -1,31 +0,0 @@ -{ - "ignore": [ - "**/.*", - "builder", - "node_modules", - "bower_components", - "test", - "tests" - ], - "version": "2.0.0", - "name": "Ionicons", - "license": "MIT", - "authors": [ - "Ben Sperry <ben@drifty.com>", - "Adam Bradley <adam@drifty.com>", - "Max Lynch <max@drifty.com>" - ], - "keywords": [ - "fonts", - "icon font", - "icons", - "ionic", - "web font" - ], - "main": [ - "css/ionicons.css", - "fonts/*" - ], - "homepage": "https://github.com/driftyco/ionicons", - "description": "Ionicons - free and beautiful icons from the creators of Ionic Framework" -} \ No newline at end of file diff --git a/admin/bower_components/Ionicons/cheatsheet.html b/admin/bower_components/Ionicons/cheatsheet.html deleted file mode 100644 index d775806..0000000 --- a/admin/bower_components/Ionicons/cheatsheet.html +++ /dev/null @@ -1,28009 +0,0 @@ -<!DOCTYPE html> -<html> -<head> - <title>Ionicons v2.0.0 Cheatsheet</title> - <style> - * { - -moz-box-sizing: border-box; - -webkit-box-sizing: border-box; - box-sizing: border-box; - margin: 0; - padding: 0; - -webkit-touch-callout: none; - -webkit-user-select: none; - -khtml-user-select: none; - -moz-user-select: none; - -ms-user-select: none; - user-select: none; - } - - body { - background: #fff; - color: #444; - font: 16px/1.5 "Helvetica Neue", Helvetica, Arial, sans-serif; - } - - a, a:visited { - color: #888; - text-decoration: underline; - } - a:hover, a:focus { color: #000; } - - header { - border-bottom: 2px solid #ddd; - margin-bottom: 20px; - overflow: hidden; - padding: 20px 0; - } - - header h1 { - color: #888; - float: left; - font-size: 36px; - font-weight: 300; - } - - header a { - float: right; - font-size: 14px; - } - - .container { - margin: 0 auto; - max-width: 1200px; - min-width: 960px; - padding: 0 20px; - width: 95%; - } - - .icon-row { - border-bottom: 1px dotted #ccc; - padding: 10px 0 20px; - margin-bottom: 20px; - } - .ion { - -webkit-touch-callout: text; - -webkit-user-select: text; - -khtml-user-select: text; - -moz-user-select: text; - -ms-user-select: text; - user-select: text; - } - - .preview-icon { vertical-align: bottom; } - - .preview-scale { - color: #888; - font-size: 12px; - margin-top: 5px; - } - - .step { - display: inline-block; - line-height: 1; - position: relative; - width: 10%; - } - - .step i { - -webkit-transition: opacity .3s; - -moz-transition: opacity .3s; - -ms-transition: opacity .3s; - -o-transition: opacity .3s; - transition: opacity .3s; - } - - .step:hover i { opacity: .3; } - - .size-12 { font-size: 12px; } - .size-14 { font-size: 14px; } - .size-16 { font-size: 16px; } - .size-18 { font-size: 18px; } - .size-21 { font-size: 21px; } - .size-24 { font-size: 24px; } - .size-32 { font-size: 32px; } - .size-48 { font-size: 48px; } - .size-64 { font-size: 64px; } - .size-96 { font-size: 96px; } - - .usage { margin-top: 10px; } - .usage input { - font-family: monospace; - margin-right: 3px; - padding: 2px 5px; - text-align: center; - -webkit-touch-callout: text; - -webkit-user-select: text; - -khtml-user-select: text; - -moz-user-select: text; - -ms-user-select: text; - user-select: text; - } - - .usage label { - font-size: 12px; - text-align: right; - padding: 0 3px 0 60px; - } - .usage label:first-child { padding-left: 0; } - .usage .name { width: 180px; } - .usage .html { width: 80px; } - .usage .css { width: 80px; } - - footer { - color: #888; - font-size: 12px; - padding: 20px 0; - } - </style> - <link href="css/ionicons.css" rel="stylesheet" type="text/css" /> -</head> - -<body> - <div class="container"> - <header> - <h1>Ionicons v2.0.0 Cheatsheet, 733 icons:</h1> - <p><a href="http://ionicons.com/">Ionicons Homepage</a></p> - </header> - <div class="content"> - <div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-alert"></i> - </span><span class="step size-14"> - <i class="icon ion-alert"></i> - </span><span class="step size-16"> - <i class="icon ion-alert"></i> - </span><span class="step size-18"> - <i class="icon ion-alert"></i> - </span><span class="step size-21"> - <i class="icon ion-alert"></i> - </span><span class="step size-24"> - <i class="icon ion-alert"></i> - </span><span class="step size-32"> - <i class="icon ion-alert"></i> - </span><span class="step size-48"> - <i class="icon ion-alert"></i> - </span><span class="step size-64"> - <i class="icon ion-alert"></i> - </span><span class="step size-96"> - <i class="icon ion-alert"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-alert" /> - - <label>Selectable:</label> - <span class="ion">&#xf101;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf101;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f101" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-alert-circled"></i> - </span><span class="step size-14"> - <i class="icon ion-alert-circled"></i> - </span><span class="step size-16"> - <i class="icon ion-alert-circled"></i> - </span><span class="step size-18"> - <i class="icon ion-alert-circled"></i> - </span><span class="step size-21"> - <i class="icon ion-alert-circled"></i> - </span><span class="step size-24"> - <i class="icon ion-alert-circled"></i> - </span><span class="step size-32"> - <i class="icon ion-alert-circled"></i> - </span><span class="step size-48"> - <i class="icon ion-alert-circled"></i> - </span><span class="step size-64"> - <i class="icon ion-alert-circled"></i> - </span><span class="step size-96"> - <i class="icon ion-alert-circled"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-alert-circled" /> - - <label>Selectable:</label> - <span class="ion">&#xf100;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf100;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f100" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-android-add"></i> - </span><span class="step size-14"> - <i class="icon ion-android-add"></i> - </span><span class="step size-16"> - <i class="icon ion-android-add"></i> - </span><span class="step size-18"> - <i class="icon ion-android-add"></i> - </span><span class="step size-21"> - <i class="icon ion-android-add"></i> - </span><span class="step size-24"> - <i class="icon ion-android-add"></i> - </span><span class="step size-32"> - <i class="icon ion-android-add"></i> - </span><span class="step size-48"> - <i class="icon ion-android-add"></i> - </span><span class="step size-64"> - <i class="icon ion-android-add"></i> - </span><span class="step size-96"> - <i class="icon ion-android-add"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-android-add" /> - - <label>Selectable:</label> - <span class="ion">&#xf2c7;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf2c7;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f2c7" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-android-add-circle"></i> - </span><span class="step size-14"> - <i class="icon ion-android-add-circle"></i> - </span><span class="step size-16"> - <i class="icon ion-android-add-circle"></i> - </span><span class="step size-18"> - <i class="icon ion-android-add-circle"></i> - </span><span class="step size-21"> - <i class="icon ion-android-add-circle"></i> - </span><span class="step size-24"> - <i class="icon ion-android-add-circle"></i> - </span><span class="step size-32"> - <i class="icon ion-android-add-circle"></i> - </span><span class="step size-48"> - <i class="icon ion-android-add-circle"></i> - </span><span class="step size-64"> - <i class="icon ion-android-add-circle"></i> - </span><span class="step size-96"> - <i class="icon ion-android-add-circle"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-android-add-circle" /> - - <label>Selectable:</label> - <span class="ion">&#xf359;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf359;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f359" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-android-alarm-clock"></i> - </span><span class="step size-14"> - <i class="icon ion-android-alarm-clock"></i> - </span><span class="step size-16"> - <i class="icon ion-android-alarm-clock"></i> - </span><span class="step size-18"> - <i class="icon ion-android-alarm-clock"></i> - </span><span class="step size-21"> - <i class="icon ion-android-alarm-clock"></i> - </span><span class="step size-24"> - <i class="icon ion-android-alarm-clock"></i> - </span><span class="step size-32"> - <i class="icon ion-android-alarm-clock"></i> - </span><span class="step size-48"> - <i class="icon ion-android-alarm-clock"></i> - </span><span class="step size-64"> - <i class="icon ion-android-alarm-clock"></i> - </span><span class="step size-96"> - <i class="icon ion-android-alarm-clock"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-android-alarm-clock" /> - - <label>Selectable:</label> - <span class="ion">&#xf35a;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf35a;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f35a" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-android-alert"></i> - </span><span class="step size-14"> - <i class="icon ion-android-alert"></i> - </span><span class="step size-16"> - <i class="icon ion-android-alert"></i> - </span><span class="step size-18"> - <i class="icon ion-android-alert"></i> - </span><span class="step size-21"> - <i class="icon ion-android-alert"></i> - </span><span class="step size-24"> - <i class="icon ion-android-alert"></i> - </span><span class="step size-32"> - <i class="icon ion-android-alert"></i> - </span><span class="step size-48"> - <i class="icon ion-android-alert"></i> - </span><span class="step size-64"> - <i class="icon ion-android-alert"></i> - </span><span class="step size-96"> - <i class="icon ion-android-alert"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-android-alert" /> - - <label>Selectable:</label> - <span class="ion">&#xf35b;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf35b;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f35b" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-android-apps"></i> - </span><span class="step size-14"> - <i class="icon ion-android-apps"></i> - </span><span class="step size-16"> - <i class="icon ion-android-apps"></i> - </span><span class="step size-18"> - <i class="icon ion-android-apps"></i> - </span><span class="step size-21"> - <i class="icon ion-android-apps"></i> - </span><span class="step size-24"> - <i class="icon ion-android-apps"></i> - </span><span class="step size-32"> - <i class="icon ion-android-apps"></i> - </span><span class="step size-48"> - <i class="icon ion-android-apps"></i> - </span><span class="step size-64"> - <i class="icon ion-android-apps"></i> - </span><span class="step size-96"> - <i class="icon ion-android-apps"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-android-apps" /> - - <label>Selectable:</label> - <span class="ion">&#xf35c;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf35c;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f35c" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-android-archive"></i> - </span><span class="step size-14"> - <i class="icon ion-android-archive"></i> - </span><span class="step size-16"> - <i class="icon ion-android-archive"></i> - </span><span class="step size-18"> - <i class="icon ion-android-archive"></i> - </span><span class="step size-21"> - <i class="icon ion-android-archive"></i> - </span><span class="step size-24"> - <i class="icon ion-android-archive"></i> - </span><span class="step size-32"> - <i class="icon ion-android-archive"></i> - </span><span class="step size-48"> - <i class="icon ion-android-archive"></i> - </span><span class="step size-64"> - <i class="icon ion-android-archive"></i> - </span><span class="step size-96"> - <i class="icon ion-android-archive"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-android-archive" /> - - <label>Selectable:</label> - <span class="ion">&#xf2c9;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf2c9;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f2c9" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-android-arrow-back"></i> - </span><span class="step size-14"> - <i class="icon ion-android-arrow-back"></i> - </span><span class="step size-16"> - <i class="icon ion-android-arrow-back"></i> - </span><span class="step size-18"> - <i class="icon ion-android-arrow-back"></i> - </span><span class="step size-21"> - <i class="icon ion-android-arrow-back"></i> - </span><span class="step size-24"> - <i class="icon ion-android-arrow-back"></i> - </span><span class="step size-32"> - <i class="icon ion-android-arrow-back"></i> - </span><span class="step size-48"> - <i class="icon ion-android-arrow-back"></i> - </span><span class="step size-64"> - <i class="icon ion-android-arrow-back"></i> - </span><span class="step size-96"> - <i class="icon ion-android-arrow-back"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-android-arrow-back" /> - - <label>Selectable:</label> - <span class="ion">&#xf2ca;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf2ca;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f2ca" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-android-arrow-down"></i> - </span><span class="step size-14"> - <i class="icon ion-android-arrow-down"></i> - </span><span class="step size-16"> - <i class="icon ion-android-arrow-down"></i> - </span><span class="step size-18"> - <i class="icon ion-android-arrow-down"></i> - </span><span class="step size-21"> - <i class="icon ion-android-arrow-down"></i> - </span><span class="step size-24"> - <i class="icon ion-android-arrow-down"></i> - </span><span class="step size-32"> - <i class="icon ion-android-arrow-down"></i> - </span><span class="step size-48"> - <i class="icon ion-android-arrow-down"></i> - </span><span class="step size-64"> - <i class="icon ion-android-arrow-down"></i> - </span><span class="step size-96"> - <i class="icon ion-android-arrow-down"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-android-arrow-down" /> - - <label>Selectable:</label> - <span class="ion">&#xf35d;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf35d;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f35d" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-android-arrow-dropdown"></i> - </span><span class="step size-14"> - <i class="icon ion-android-arrow-dropdown"></i> - </span><span class="step size-16"> - <i class="icon ion-android-arrow-dropdown"></i> - </span><span class="step size-18"> - <i class="icon ion-android-arrow-dropdown"></i> - </span><span class="step size-21"> - <i class="icon ion-android-arrow-dropdown"></i> - </span><span class="step size-24"> - <i class="icon ion-android-arrow-dropdown"></i> - </span><span class="step size-32"> - <i class="icon ion-android-arrow-dropdown"></i> - </span><span class="step size-48"> - <i class="icon ion-android-arrow-dropdown"></i> - </span><span class="step size-64"> - <i class="icon ion-android-arrow-dropdown"></i> - </span><span class="step size-96"> - <i class="icon ion-android-arrow-dropdown"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-android-arrow-dropdown" /> - - <label>Selectable:</label> - <span class="ion">&#xf35f;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf35f;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f35f" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-android-arrow-dropdown-circle"></i> - </span><span class="step size-14"> - <i class="icon ion-android-arrow-dropdown-circle"></i> - </span><span class="step size-16"> - <i class="icon ion-android-arrow-dropdown-circle"></i> - </span><span class="step size-18"> - <i class="icon ion-android-arrow-dropdown-circle"></i> - </span><span class="step size-21"> - <i class="icon ion-android-arrow-dropdown-circle"></i> - </span><span class="step size-24"> - <i class="icon ion-android-arrow-dropdown-circle"></i> - </span><span class="step size-32"> - <i class="icon ion-android-arrow-dropdown-circle"></i> - </span><span class="step size-48"> - <i class="icon ion-android-arrow-dropdown-circle"></i> - </span><span class="step size-64"> - <i class="icon ion-android-arrow-dropdown-circle"></i> - </span><span class="step size-96"> - <i class="icon ion-android-arrow-dropdown-circle"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-android-arrow-dropdown-circle" /> - - <label>Selectable:</label> - <span class="ion">&#xf35e;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf35e;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f35e" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-android-arrow-dropleft"></i> - </span><span class="step size-14"> - <i class="icon ion-android-arrow-dropleft"></i> - </span><span class="step size-16"> - <i class="icon ion-android-arrow-dropleft"></i> - </span><span class="step size-18"> - <i class="icon ion-android-arrow-dropleft"></i> - </span><span class="step size-21"> - <i class="icon ion-android-arrow-dropleft"></i> - </span><span class="step size-24"> - <i class="icon ion-android-arrow-dropleft"></i> - </span><span class="step size-32"> - <i class="icon ion-android-arrow-dropleft"></i> - </span><span class="step size-48"> - <i class="icon ion-android-arrow-dropleft"></i> - </span><span class="step size-64"> - <i class="icon ion-android-arrow-dropleft"></i> - </span><span class="step size-96"> - <i class="icon ion-android-arrow-dropleft"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-android-arrow-dropleft" /> - - <label>Selectable:</label> - <span class="ion">&#xf361;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf361;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f361" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-android-arrow-dropleft-circle"></i> - </span><span class="step size-14"> - <i class="icon ion-android-arrow-dropleft-circle"></i> - </span><span class="step size-16"> - <i class="icon ion-android-arrow-dropleft-circle"></i> - </span><span class="step size-18"> - <i class="icon ion-android-arrow-dropleft-circle"></i> - </span><span class="step size-21"> - <i class="icon ion-android-arrow-dropleft-circle"></i> - </span><span class="step size-24"> - <i class="icon ion-android-arrow-dropleft-circle"></i> - </span><span class="step size-32"> - <i class="icon ion-android-arrow-dropleft-circle"></i> - </span><span class="step size-48"> - <i class="icon ion-android-arrow-dropleft-circle"></i> - </span><span class="step size-64"> - <i class="icon ion-android-arrow-dropleft-circle"></i> - </span><span class="step size-96"> - <i class="icon ion-android-arrow-dropleft-circle"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-android-arrow-dropleft-circle" /> - - <label>Selectable:</label> - <span class="ion">&#xf360;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf360;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f360" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-android-arrow-dropright"></i> - </span><span class="step size-14"> - <i class="icon ion-android-arrow-dropright"></i> - </span><span class="step size-16"> - <i class="icon ion-android-arrow-dropright"></i> - </span><span class="step size-18"> - <i class="icon ion-android-arrow-dropright"></i> - </span><span class="step size-21"> - <i class="icon ion-android-arrow-dropright"></i> - </span><span class="step size-24"> - <i class="icon ion-android-arrow-dropright"></i> - </span><span class="step size-32"> - <i class="icon ion-android-arrow-dropright"></i> - </span><span class="step size-48"> - <i class="icon ion-android-arrow-dropright"></i> - </span><span class="step size-64"> - <i class="icon ion-android-arrow-dropright"></i> - </span><span class="step size-96"> - <i class="icon ion-android-arrow-dropright"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-android-arrow-dropright" /> - - <label>Selectable:</label> - <span class="ion">&#xf363;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf363;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f363" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-android-arrow-dropright-circle"></i> - </span><span class="step size-14"> - <i class="icon ion-android-arrow-dropright-circle"></i> - </span><span class="step size-16"> - <i class="icon ion-android-arrow-dropright-circle"></i> - </span><span class="step size-18"> - <i class="icon ion-android-arrow-dropright-circle"></i> - </span><span class="step size-21"> - <i class="icon ion-android-arrow-dropright-circle"></i> - </span><span class="step size-24"> - <i class="icon ion-android-arrow-dropright-circle"></i> - </span><span class="step size-32"> - <i class="icon ion-android-arrow-dropright-circle"></i> - </span><span class="step size-48"> - <i class="icon ion-android-arrow-dropright-circle"></i> - </span><span class="step size-64"> - <i class="icon ion-android-arrow-dropright-circle"></i> - </span><span class="step size-96"> - <i class="icon ion-android-arrow-dropright-circle"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-android-arrow-dropright-circle" /> - - <label>Selectable:</label> - <span class="ion">&#xf362;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf362;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f362" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-android-arrow-dropup"></i> - </span><span class="step size-14"> - <i class="icon ion-android-arrow-dropup"></i> - </span><span class="step size-16"> - <i class="icon ion-android-arrow-dropup"></i> - </span><span class="step size-18"> - <i class="icon ion-android-arrow-dropup"></i> - </span><span class="step size-21"> - <i class="icon ion-android-arrow-dropup"></i> - </span><span class="step size-24"> - <i class="icon ion-android-arrow-dropup"></i> - </span><span class="step size-32"> - <i class="icon ion-android-arrow-dropup"></i> - </span><span class="step size-48"> - <i class="icon ion-android-arrow-dropup"></i> - </span><span class="step size-64"> - <i class="icon ion-android-arrow-dropup"></i> - </span><span class="step size-96"> - <i class="icon ion-android-arrow-dropup"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-android-arrow-dropup" /> - - <label>Selectable:</label> - <span class="ion">&#xf365;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf365;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f365" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-android-arrow-dropup-circle"></i> - </span><span class="step size-14"> - <i class="icon ion-android-arrow-dropup-circle"></i> - </span><span class="step size-16"> - <i class="icon ion-android-arrow-dropup-circle"></i> - </span><span class="step size-18"> - <i class="icon ion-android-arrow-dropup-circle"></i> - </span><span class="step size-21"> - <i class="icon ion-android-arrow-dropup-circle"></i> - </span><span class="step size-24"> - <i class="icon ion-android-arrow-dropup-circle"></i> - </span><span class="step size-32"> - <i class="icon ion-android-arrow-dropup-circle"></i> - </span><span class="step size-48"> - <i class="icon ion-android-arrow-dropup-circle"></i> - </span><span class="step size-64"> - <i class="icon ion-android-arrow-dropup-circle"></i> - </span><span class="step size-96"> - <i class="icon ion-android-arrow-dropup-circle"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-android-arrow-dropup-circle" /> - - <label>Selectable:</label> - <span class="ion">&#xf364;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf364;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f364" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-android-arrow-forward"></i> - </span><span class="step size-14"> - <i class="icon ion-android-arrow-forward"></i> - </span><span class="step size-16"> - <i class="icon ion-android-arrow-forward"></i> - </span><span class="step size-18"> - <i class="icon ion-android-arrow-forward"></i> - </span><span class="step size-21"> - <i class="icon ion-android-arrow-forward"></i> - </span><span class="step size-24"> - <i class="icon ion-android-arrow-forward"></i> - </span><span class="step size-32"> - <i class="icon ion-android-arrow-forward"></i> - </span><span class="step size-48"> - <i class="icon ion-android-arrow-forward"></i> - </span><span class="step size-64"> - <i class="icon ion-android-arrow-forward"></i> - </span><span class="step size-96"> - <i class="icon ion-android-arrow-forward"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-android-arrow-forward" /> - - <label>Selectable:</label> - <span class="ion">&#xf30f;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf30f;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f30f" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-android-arrow-up"></i> - </span><span class="step size-14"> - <i class="icon ion-android-arrow-up"></i> - </span><span class="step size-16"> - <i class="icon ion-android-arrow-up"></i> - </span><span class="step size-18"> - <i class="icon ion-android-arrow-up"></i> - </span><span class="step size-21"> - <i class="icon ion-android-arrow-up"></i> - </span><span class="step size-24"> - <i class="icon ion-android-arrow-up"></i> - </span><span class="step size-32"> - <i class="icon ion-android-arrow-up"></i> - </span><span class="step size-48"> - <i class="icon ion-android-arrow-up"></i> - </span><span class="step size-64"> - <i class="icon ion-android-arrow-up"></i> - </span><span class="step size-96"> - <i class="icon ion-android-arrow-up"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-android-arrow-up" /> - - <label>Selectable:</label> - <span class="ion">&#xf366;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf366;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f366" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-android-attach"></i> - </span><span class="step size-14"> - <i class="icon ion-android-attach"></i> - </span><span class="step size-16"> - <i class="icon ion-android-attach"></i> - </span><span class="step size-18"> - <i class="icon ion-android-attach"></i> - </span><span class="step size-21"> - <i class="icon ion-android-attach"></i> - </span><span class="step size-24"> - <i class="icon ion-android-attach"></i> - </span><span class="step size-32"> - <i class="icon ion-android-attach"></i> - </span><span class="step size-48"> - <i class="icon ion-android-attach"></i> - </span><span class="step size-64"> - <i class="icon ion-android-attach"></i> - </span><span class="step size-96"> - <i class="icon ion-android-attach"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-android-attach" /> - - <label>Selectable:</label> - <span class="ion">&#xf367;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf367;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f367" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-android-bar"></i> - </span><span class="step size-14"> - <i class="icon ion-android-bar"></i> - </span><span class="step size-16"> - <i class="icon ion-android-bar"></i> - </span><span class="step size-18"> - <i class="icon ion-android-bar"></i> - </span><span class="step size-21"> - <i class="icon ion-android-bar"></i> - </span><span class="step size-24"> - <i class="icon ion-android-bar"></i> - </span><span class="step size-32"> - <i class="icon ion-android-bar"></i> - </span><span class="step size-48"> - <i class="icon ion-android-bar"></i> - </span><span class="step size-64"> - <i class="icon ion-android-bar"></i> - </span><span class="step size-96"> - <i class="icon ion-android-bar"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-android-bar" /> - - <label>Selectable:</label> - <span class="ion">&#xf368;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf368;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f368" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-android-bicycle"></i> - </span><span class="step size-14"> - <i class="icon ion-android-bicycle"></i> - </span><span class="step size-16"> - <i class="icon ion-android-bicycle"></i> - </span><span class="step size-18"> - <i class="icon ion-android-bicycle"></i> - </span><span class="step size-21"> - <i class="icon ion-android-bicycle"></i> - </span><span class="step size-24"> - <i class="icon ion-android-bicycle"></i> - </span><span class="step size-32"> - <i class="icon ion-android-bicycle"></i> - </span><span class="step size-48"> - <i class="icon ion-android-bicycle"></i> - </span><span class="step size-64"> - <i class="icon ion-android-bicycle"></i> - </span><span class="step size-96"> - <i class="icon ion-android-bicycle"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-android-bicycle" /> - - <label>Selectable:</label> - <span class="ion">&#xf369;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf369;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f369" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-android-boat"></i> - </span><span class="step size-14"> - <i class="icon ion-android-boat"></i> - </span><span class="step size-16"> - <i class="icon ion-android-boat"></i> - </span><span class="step size-18"> - <i class="icon ion-android-boat"></i> - </span><span class="step size-21"> - <i class="icon ion-android-boat"></i> - </span><span class="step size-24"> - <i class="icon ion-android-boat"></i> - </span><span class="step size-32"> - <i class="icon ion-android-boat"></i> - </span><span class="step size-48"> - <i class="icon ion-android-boat"></i> - </span><span class="step size-64"> - <i class="icon ion-android-boat"></i> - </span><span class="step size-96"> - <i class="icon ion-android-boat"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-android-boat" /> - - <label>Selectable:</label> - <span class="ion">&#xf36a;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf36a;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f36a" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-android-bookmark"></i> - </span><span class="step size-14"> - <i class="icon ion-android-bookmark"></i> - </span><span class="step size-16"> - <i class="icon ion-android-bookmark"></i> - </span><span class="step size-18"> - <i class="icon ion-android-bookmark"></i> - </span><span class="step size-21"> - <i class="icon ion-android-bookmark"></i> - </span><span class="step size-24"> - <i class="icon ion-android-bookmark"></i> - </span><span class="step size-32"> - <i class="icon ion-android-bookmark"></i> - </span><span class="step size-48"> - <i class="icon ion-android-bookmark"></i> - </span><span class="step size-64"> - <i class="icon ion-android-bookmark"></i> - </span><span class="step size-96"> - <i class="icon ion-android-bookmark"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-android-bookmark" /> - - <label>Selectable:</label> - <span class="ion">&#xf36b;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf36b;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f36b" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-android-bulb"></i> - </span><span class="step size-14"> - <i class="icon ion-android-bulb"></i> - </span><span class="step size-16"> - <i class="icon ion-android-bulb"></i> - </span><span class="step size-18"> - <i class="icon ion-android-bulb"></i> - </span><span class="step size-21"> - <i class="icon ion-android-bulb"></i> - </span><span class="step size-24"> - <i class="icon ion-android-bulb"></i> - </span><span class="step size-32"> - <i class="icon ion-android-bulb"></i> - </span><span class="step size-48"> - <i class="icon ion-android-bulb"></i> - </span><span class="step size-64"> - <i class="icon ion-android-bulb"></i> - </span><span class="step size-96"> - <i class="icon ion-android-bulb"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-android-bulb" /> - - <label>Selectable:</label> - <span class="ion">&#xf36c;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf36c;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f36c" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-android-bus"></i> - </span><span class="step size-14"> - <i class="icon ion-android-bus"></i> - </span><span class="step size-16"> - <i class="icon ion-android-bus"></i> - </span><span class="step size-18"> - <i class="icon ion-android-bus"></i> - </span><span class="step size-21"> - <i class="icon ion-android-bus"></i> - </span><span class="step size-24"> - <i class="icon ion-android-bus"></i> - </span><span class="step size-32"> - <i class="icon ion-android-bus"></i> - </span><span class="step size-48"> - <i class="icon ion-android-bus"></i> - </span><span class="step size-64"> - <i class="icon ion-android-bus"></i> - </span><span class="step size-96"> - <i class="icon ion-android-bus"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-android-bus" /> - - <label>Selectable:</label> - <span class="ion">&#xf36d;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf36d;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f36d" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-android-calendar"></i> - </span><span class="step size-14"> - <i class="icon ion-android-calendar"></i> - </span><span class="step size-16"> - <i class="icon ion-android-calendar"></i> - </span><span class="step size-18"> - <i class="icon ion-android-calendar"></i> - </span><span class="step size-21"> - <i class="icon ion-android-calendar"></i> - </span><span class="step size-24"> - <i class="icon ion-android-calendar"></i> - </span><span class="step size-32"> - <i class="icon ion-android-calendar"></i> - </span><span class="step size-48"> - <i class="icon ion-android-calendar"></i> - </span><span class="step size-64"> - <i class="icon ion-android-calendar"></i> - </span><span class="step size-96"> - <i class="icon ion-android-calendar"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-android-calendar" /> - - <label>Selectable:</label> - <span class="ion">&#xf2d1;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf2d1;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f2d1" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-android-call"></i> - </span><span class="step size-14"> - <i class="icon ion-android-call"></i> - </span><span class="step size-16"> - <i class="icon ion-android-call"></i> - </span><span class="step size-18"> - <i class="icon ion-android-call"></i> - </span><span class="step size-21"> - <i class="icon ion-android-call"></i> - </span><span class="step size-24"> - <i class="icon ion-android-call"></i> - </span><span class="step size-32"> - <i class="icon ion-android-call"></i> - </span><span class="step size-48"> - <i class="icon ion-android-call"></i> - </span><span class="step size-64"> - <i class="icon ion-android-call"></i> - </span><span class="step size-96"> - <i class="icon ion-android-call"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-android-call" /> - - <label>Selectable:</label> - <span class="ion">&#xf2d2;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf2d2;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f2d2" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-android-camera"></i> - </span><span class="step size-14"> - <i class="icon ion-android-camera"></i> - </span><span class="step size-16"> - <i class="icon ion-android-camera"></i> - </span><span class="step size-18"> - <i class="icon ion-android-camera"></i> - </span><span class="step size-21"> - <i class="icon ion-android-camera"></i> - </span><span class="step size-24"> - <i class="icon ion-android-camera"></i> - </span><span class="step size-32"> - <i class="icon ion-android-camera"></i> - </span><span class="step size-48"> - <i class="icon ion-android-camera"></i> - </span><span class="step size-64"> - <i class="icon ion-android-camera"></i> - </span><span class="step size-96"> - <i class="icon ion-android-camera"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-android-camera" /> - - <label>Selectable:</label> - <span class="ion">&#xf2d3;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf2d3;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f2d3" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-android-cancel"></i> - </span><span class="step size-14"> - <i class="icon ion-android-cancel"></i> - </span><span class="step size-16"> - <i class="icon ion-android-cancel"></i> - </span><span class="step size-18"> - <i class="icon ion-android-cancel"></i> - </span><span class="step size-21"> - <i class="icon ion-android-cancel"></i> - </span><span class="step size-24"> - <i class="icon ion-android-cancel"></i> - </span><span class="step size-32"> - <i class="icon ion-android-cancel"></i> - </span><span class="step size-48"> - <i class="icon ion-android-cancel"></i> - </span><span class="step size-64"> - <i class="icon ion-android-cancel"></i> - </span><span class="step size-96"> - <i class="icon ion-android-cancel"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-android-cancel" /> - - <label>Selectable:</label> - <span class="ion">&#xf36e;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf36e;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f36e" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-android-car"></i> - </span><span class="step size-14"> - <i class="icon ion-android-car"></i> - </span><span class="step size-16"> - <i class="icon ion-android-car"></i> - </span><span class="step size-18"> - <i class="icon ion-android-car"></i> - </span><span class="step size-21"> - <i class="icon ion-android-car"></i> - </span><span class="step size-24"> - <i class="icon ion-android-car"></i> - </span><span class="step size-32"> - <i class="icon ion-android-car"></i> - </span><span class="step size-48"> - <i class="icon ion-android-car"></i> - </span><span class="step size-64"> - <i class="icon ion-android-car"></i> - </span><span class="step size-96"> - <i class="icon ion-android-car"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-android-car" /> - - <label>Selectable:</label> - <span class="ion">&#xf36f;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf36f;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f36f" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-android-cart"></i> - </span><span class="step size-14"> - <i class="icon ion-android-cart"></i> - </span><span class="step size-16"> - <i class="icon ion-android-cart"></i> - </span><span class="step size-18"> - <i class="icon ion-android-cart"></i> - </span><span class="step size-21"> - <i class="icon ion-android-cart"></i> - </span><span class="step size-24"> - <i class="icon ion-android-cart"></i> - </span><span class="step size-32"> - <i class="icon ion-android-cart"></i> - </span><span class="step size-48"> - <i class="icon ion-android-cart"></i> - </span><span class="step size-64"> - <i class="icon ion-android-cart"></i> - </span><span class="step size-96"> - <i class="icon ion-android-cart"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-android-cart" /> - - <label>Selectable:</label> - <span class="ion">&#xf370;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf370;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f370" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-android-chat"></i> - </span><span class="step size-14"> - <i class="icon ion-android-chat"></i> - </span><span class="step size-16"> - <i class="icon ion-android-chat"></i> - </span><span class="step size-18"> - <i class="icon ion-android-chat"></i> - </span><span class="step size-21"> - <i class="icon ion-android-chat"></i> - </span><span class="step size-24"> - <i class="icon ion-android-chat"></i> - </span><span class="step size-32"> - <i class="icon ion-android-chat"></i> - </span><span class="step size-48"> - <i class="icon ion-android-chat"></i> - </span><span class="step size-64"> - <i class="icon ion-android-chat"></i> - </span><span class="step size-96"> - <i class="icon ion-android-chat"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-android-chat" /> - - <label>Selectable:</label> - <span class="ion">&#xf2d4;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf2d4;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f2d4" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-android-checkbox"></i> - </span><span class="step size-14"> - <i class="icon ion-android-checkbox"></i> - </span><span class="step size-16"> - <i class="icon ion-android-checkbox"></i> - </span><span class="step size-18"> - <i class="icon ion-android-checkbox"></i> - </span><span class="step size-21"> - <i class="icon ion-android-checkbox"></i> - </span><span class="step size-24"> - <i class="icon ion-android-checkbox"></i> - </span><span class="step size-32"> - <i class="icon ion-android-checkbox"></i> - </span><span class="step size-48"> - <i class="icon ion-android-checkbox"></i> - </span><span class="step size-64"> - <i class="icon ion-android-checkbox"></i> - </span><span class="step size-96"> - <i class="icon ion-android-checkbox"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-android-checkbox" /> - - <label>Selectable:</label> - <span class="ion">&#xf374;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf374;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f374" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-android-checkbox-blank"></i> - </span><span class="step size-14"> - <i class="icon ion-android-checkbox-blank"></i> - </span><span class="step size-16"> - <i class="icon ion-android-checkbox-blank"></i> - </span><span class="step size-18"> - <i class="icon ion-android-checkbox-blank"></i> - </span><span class="step size-21"> - <i class="icon ion-android-checkbox-blank"></i> - </span><span class="step size-24"> - <i class="icon ion-android-checkbox-blank"></i> - </span><span class="step size-32"> - <i class="icon ion-android-checkbox-blank"></i> - </span><span class="step size-48"> - <i class="icon ion-android-checkbox-blank"></i> - </span><span class="step size-64"> - <i class="icon ion-android-checkbox-blank"></i> - </span><span class="step size-96"> - <i class="icon ion-android-checkbox-blank"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-android-checkbox-blank" /> - - <label>Selectable:</label> - <span class="ion">&#xf371;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf371;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f371" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-android-checkbox-outline"></i> - </span><span class="step size-14"> - <i class="icon ion-android-checkbox-outline"></i> - </span><span class="step size-16"> - <i class="icon ion-android-checkbox-outline"></i> - </span><span class="step size-18"> - <i class="icon ion-android-checkbox-outline"></i> - </span><span class="step size-21"> - <i class="icon ion-android-checkbox-outline"></i> - </span><span class="step size-24"> - <i class="icon ion-android-checkbox-outline"></i> - </span><span class="step size-32"> - <i class="icon ion-android-checkbox-outline"></i> - </span><span class="step size-48"> - <i class="icon ion-android-checkbox-outline"></i> - </span><span class="step size-64"> - <i class="icon ion-android-checkbox-outline"></i> - </span><span class="step size-96"> - <i class="icon ion-android-checkbox-outline"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-android-checkbox-outline" /> - - <label>Selectable:</label> - <span class="ion">&#xf373;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf373;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f373" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-android-checkbox-outline-blank"></i> - </span><span class="step size-14"> - <i class="icon ion-android-checkbox-outline-blank"></i> - </span><span class="step size-16"> - <i class="icon ion-android-checkbox-outline-blank"></i> - </span><span class="step size-18"> - <i class="icon ion-android-checkbox-outline-blank"></i> - </span><span class="step size-21"> - <i class="icon ion-android-checkbox-outline-blank"></i> - </span><span class="step size-24"> - <i class="icon ion-android-checkbox-outline-blank"></i> - </span><span class="step size-32"> - <i class="icon ion-android-checkbox-outline-blank"></i> - </span><span class="step size-48"> - <i class="icon ion-android-checkbox-outline-blank"></i> - </span><span class="step size-64"> - <i class="icon ion-android-checkbox-outline-blank"></i> - </span><span class="step size-96"> - <i class="icon ion-android-checkbox-outline-blank"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-android-checkbox-outline-blank" /> - - <label>Selectable:</label> - <span class="ion">&#xf372;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf372;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f372" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-android-checkmark-circle"></i> - </span><span class="step size-14"> - <i class="icon ion-android-checkmark-circle"></i> - </span><span class="step size-16"> - <i class="icon ion-android-checkmark-circle"></i> - </span><span class="step size-18"> - <i class="icon ion-android-checkmark-circle"></i> - </span><span class="step size-21"> - <i class="icon ion-android-checkmark-circle"></i> - </span><span class="step size-24"> - <i class="icon ion-android-checkmark-circle"></i> - </span><span class="step size-32"> - <i class="icon ion-android-checkmark-circle"></i> - </span><span class="step size-48"> - <i class="icon ion-android-checkmark-circle"></i> - </span><span class="step size-64"> - <i class="icon ion-android-checkmark-circle"></i> - </span><span class="step size-96"> - <i class="icon ion-android-checkmark-circle"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-android-checkmark-circle" /> - - <label>Selectable:</label> - <span class="ion">&#xf375;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf375;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f375" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-android-clipboard"></i> - </span><span class="step size-14"> - <i class="icon ion-android-clipboard"></i> - </span><span class="step size-16"> - <i class="icon ion-android-clipboard"></i> - </span><span class="step size-18"> - <i class="icon ion-android-clipboard"></i> - </span><span class="step size-21"> - <i class="icon ion-android-clipboard"></i> - </span><span class="step size-24"> - <i class="icon ion-android-clipboard"></i> - </span><span class="step size-32"> - <i class="icon ion-android-clipboard"></i> - </span><span class="step size-48"> - <i class="icon ion-android-clipboard"></i> - </span><span class="step size-64"> - <i class="icon ion-android-clipboard"></i> - </span><span class="step size-96"> - <i class="icon ion-android-clipboard"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-android-clipboard" /> - - <label>Selectable:</label> - <span class="ion">&#xf376;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf376;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f376" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-android-close"></i> - </span><span class="step size-14"> - <i class="icon ion-android-close"></i> - </span><span class="step size-16"> - <i class="icon ion-android-close"></i> - </span><span class="step size-18"> - <i class="icon ion-android-close"></i> - </span><span class="step size-21"> - <i class="icon ion-android-close"></i> - </span><span class="step size-24"> - <i class="icon ion-android-close"></i> - </span><span class="step size-32"> - <i class="icon ion-android-close"></i> - </span><span class="step size-48"> - <i class="icon ion-android-close"></i> - </span><span class="step size-64"> - <i class="icon ion-android-close"></i> - </span><span class="step size-96"> - <i class="icon ion-android-close"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-android-close" /> - - <label>Selectable:</label> - <span class="ion">&#xf2d7;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf2d7;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f2d7" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-android-cloud"></i> - </span><span class="step size-14"> - <i class="icon ion-android-cloud"></i> - </span><span class="step size-16"> - <i class="icon ion-android-cloud"></i> - </span><span class="step size-18"> - <i class="icon ion-android-cloud"></i> - </span><span class="step size-21"> - <i class="icon ion-android-cloud"></i> - </span><span class="step size-24"> - <i class="icon ion-android-cloud"></i> - </span><span class="step size-32"> - <i class="icon ion-android-cloud"></i> - </span><span class="step size-48"> - <i class="icon ion-android-cloud"></i> - </span><span class="step size-64"> - <i class="icon ion-android-cloud"></i> - </span><span class="step size-96"> - <i class="icon ion-android-cloud"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-android-cloud" /> - - <label>Selectable:</label> - <span class="ion">&#xf37a;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf37a;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f37a" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-android-cloud-circle"></i> - </span><span class="step size-14"> - <i class="icon ion-android-cloud-circle"></i> - </span><span class="step size-16"> - <i class="icon ion-android-cloud-circle"></i> - </span><span class="step size-18"> - <i class="icon ion-android-cloud-circle"></i> - </span><span class="step size-21"> - <i class="icon ion-android-cloud-circle"></i> - </span><span class="step size-24"> - <i class="icon ion-android-cloud-circle"></i> - </span><span class="step size-32"> - <i class="icon ion-android-cloud-circle"></i> - </span><span class="step size-48"> - <i class="icon ion-android-cloud-circle"></i> - </span><span class="step size-64"> - <i class="icon ion-android-cloud-circle"></i> - </span><span class="step size-96"> - <i class="icon ion-android-cloud-circle"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-android-cloud-circle" /> - - <label>Selectable:</label> - <span class="ion">&#xf377;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf377;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f377" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-android-cloud-done"></i> - </span><span class="step size-14"> - <i class="icon ion-android-cloud-done"></i> - </span><span class="step size-16"> - <i class="icon ion-android-cloud-done"></i> - </span><span class="step size-18"> - <i class="icon ion-android-cloud-done"></i> - </span><span class="step size-21"> - <i class="icon ion-android-cloud-done"></i> - </span><span class="step size-24"> - <i class="icon ion-android-cloud-done"></i> - </span><span class="step size-32"> - <i class="icon ion-android-cloud-done"></i> - </span><span class="step size-48"> - <i class="icon ion-android-cloud-done"></i> - </span><span class="step size-64"> - <i class="icon ion-android-cloud-done"></i> - </span><span class="step size-96"> - <i class="icon ion-android-cloud-done"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-android-cloud-done" /> - - <label>Selectable:</label> - <span class="ion">&#xf378;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf378;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f378" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-android-cloud-outline"></i> - </span><span class="step size-14"> - <i class="icon ion-android-cloud-outline"></i> - </span><span class="step size-16"> - <i class="icon ion-android-cloud-outline"></i> - </span><span class="step size-18"> - <i class="icon ion-android-cloud-outline"></i> - </span><span class="step size-21"> - <i class="icon ion-android-cloud-outline"></i> - </span><span class="step size-24"> - <i class="icon ion-android-cloud-outline"></i> - </span><span class="step size-32"> - <i class="icon ion-android-cloud-outline"></i> - </span><span class="step size-48"> - <i class="icon ion-android-cloud-outline"></i> - </span><span class="step size-64"> - <i class="icon ion-android-cloud-outline"></i> - </span><span class="step size-96"> - <i class="icon ion-android-cloud-outline"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-android-cloud-outline" /> - - <label>Selectable:</label> - <span class="ion">&#xf379;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf379;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f379" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-android-color-palette"></i> - </span><span class="step size-14"> - <i class="icon ion-android-color-palette"></i> - </span><span class="step size-16"> - <i class="icon ion-android-color-palette"></i> - </span><span class="step size-18"> - <i class="icon ion-android-color-palette"></i> - </span><span class="step size-21"> - <i class="icon ion-android-color-palette"></i> - </span><span class="step size-24"> - <i class="icon ion-android-color-palette"></i> - </span><span class="step size-32"> - <i class="icon ion-android-color-palette"></i> - </span><span class="step size-48"> - <i class="icon ion-android-color-palette"></i> - </span><span class="step size-64"> - <i class="icon ion-android-color-palette"></i> - </span><span class="step size-96"> - <i class="icon ion-android-color-palette"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-android-color-palette" /> - - <label>Selectable:</label> - <span class="ion">&#xf37b;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf37b;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f37b" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-android-compass"></i> - </span><span class="step size-14"> - <i class="icon ion-android-compass"></i> - </span><span class="step size-16"> - <i class="icon ion-android-compass"></i> - </span><span class="step size-18"> - <i class="icon ion-android-compass"></i> - </span><span class="step size-21"> - <i class="icon ion-android-compass"></i> - </span><span class="step size-24"> - <i class="icon ion-android-compass"></i> - </span><span class="step size-32"> - <i class="icon ion-android-compass"></i> - </span><span class="step size-48"> - <i class="icon ion-android-compass"></i> - </span><span class="step size-64"> - <i class="icon ion-android-compass"></i> - </span><span class="step size-96"> - <i class="icon ion-android-compass"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-android-compass" /> - - <label>Selectable:</label> - <span class="ion">&#xf37c;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf37c;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f37c" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-android-contact"></i> - </span><span class="step size-14"> - <i class="icon ion-android-contact"></i> - </span><span class="step size-16"> - <i class="icon ion-android-contact"></i> - </span><span class="step size-18"> - <i class="icon ion-android-contact"></i> - </span><span class="step size-21"> - <i class="icon ion-android-contact"></i> - </span><span class="step size-24"> - <i class="icon ion-android-contact"></i> - </span><span class="step size-32"> - <i class="icon ion-android-contact"></i> - </span><span class="step size-48"> - <i class="icon ion-android-contact"></i> - </span><span class="step size-64"> - <i class="icon ion-android-contact"></i> - </span><span class="step size-96"> - <i class="icon ion-android-contact"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-android-contact" /> - - <label>Selectable:</label> - <span class="ion">&#xf2d8;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf2d8;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f2d8" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-android-contacts"></i> - </span><span class="step size-14"> - <i class="icon ion-android-contacts"></i> - </span><span class="step size-16"> - <i class="icon ion-android-contacts"></i> - </span><span class="step size-18"> - <i class="icon ion-android-contacts"></i> - </span><span class="step size-21"> - <i class="icon ion-android-contacts"></i> - </span><span class="step size-24"> - <i class="icon ion-android-contacts"></i> - </span><span class="step size-32"> - <i class="icon ion-android-contacts"></i> - </span><span class="step size-48"> - <i class="icon ion-android-contacts"></i> - </span><span class="step size-64"> - <i class="icon ion-android-contacts"></i> - </span><span class="step size-96"> - <i class="icon ion-android-contacts"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-android-contacts" /> - - <label>Selectable:</label> - <span class="ion">&#xf2d9;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf2d9;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f2d9" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-android-contract"></i> - </span><span class="step size-14"> - <i class="icon ion-android-contract"></i> - </span><span class="step size-16"> - <i class="icon ion-android-contract"></i> - </span><span class="step size-18"> - <i class="icon ion-android-contract"></i> - </span><span class="step size-21"> - <i class="icon ion-android-contract"></i> - </span><span class="step size-24"> - <i class="icon ion-android-contract"></i> - </span><span class="step size-32"> - <i class="icon ion-android-contract"></i> - </span><span class="step size-48"> - <i class="icon ion-android-contract"></i> - </span><span class="step size-64"> - <i class="icon ion-android-contract"></i> - </span><span class="step size-96"> - <i class="icon ion-android-contract"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-android-contract" /> - - <label>Selectable:</label> - <span class="ion">&#xf37d;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf37d;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f37d" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-android-create"></i> - </span><span class="step size-14"> - <i class="icon ion-android-create"></i> - </span><span class="step size-16"> - <i class="icon ion-android-create"></i> - </span><span class="step size-18"> - <i class="icon ion-android-create"></i> - </span><span class="step size-21"> - <i class="icon ion-android-create"></i> - </span><span class="step size-24"> - <i class="icon ion-android-create"></i> - </span><span class="step size-32"> - <i class="icon ion-android-create"></i> - </span><span class="step size-48"> - <i class="icon ion-android-create"></i> - </span><span class="step size-64"> - <i class="icon ion-android-create"></i> - </span><span class="step size-96"> - <i class="icon ion-android-create"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-android-create" /> - - <label>Selectable:</label> - <span class="ion">&#xf37e;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf37e;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f37e" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-android-delete"></i> - </span><span class="step size-14"> - <i class="icon ion-android-delete"></i> - </span><span class="step size-16"> - <i class="icon ion-android-delete"></i> - </span><span class="step size-18"> - <i class="icon ion-android-delete"></i> - </span><span class="step size-21"> - <i class="icon ion-android-delete"></i> - </span><span class="step size-24"> - <i class="icon ion-android-delete"></i> - </span><span class="step size-32"> - <i class="icon ion-android-delete"></i> - </span><span class="step size-48"> - <i class="icon ion-android-delete"></i> - </span><span class="step size-64"> - <i class="icon ion-android-delete"></i> - </span><span class="step size-96"> - <i class="icon ion-android-delete"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-android-delete" /> - - <label>Selectable:</label> - <span class="ion">&#xf37f;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf37f;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f37f" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-android-desktop"></i> - </span><span class="step size-14"> - <i class="icon ion-android-desktop"></i> - </span><span class="step size-16"> - <i class="icon ion-android-desktop"></i> - </span><span class="step size-18"> - <i class="icon ion-android-desktop"></i> - </span><span class="step size-21"> - <i class="icon ion-android-desktop"></i> - </span><span class="step size-24"> - <i class="icon ion-android-desktop"></i> - </span><span class="step size-32"> - <i class="icon ion-android-desktop"></i> - </span><span class="step size-48"> - <i class="icon ion-android-desktop"></i> - </span><span class="step size-64"> - <i class="icon ion-android-desktop"></i> - </span><span class="step size-96"> - <i class="icon ion-android-desktop"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-android-desktop" /> - - <label>Selectable:</label> - <span class="ion">&#xf380;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf380;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f380" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-android-document"></i> - </span><span class="step size-14"> - <i class="icon ion-android-document"></i> - </span><span class="step size-16"> - <i class="icon ion-android-document"></i> - </span><span class="step size-18"> - <i class="icon ion-android-document"></i> - </span><span class="step size-21"> - <i class="icon ion-android-document"></i> - </span><span class="step size-24"> - <i class="icon ion-android-document"></i> - </span><span class="step size-32"> - <i class="icon ion-android-document"></i> - </span><span class="step size-48"> - <i class="icon ion-android-document"></i> - </span><span class="step size-64"> - <i class="icon ion-android-document"></i> - </span><span class="step size-96"> - <i class="icon ion-android-document"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-android-document" /> - - <label>Selectable:</label> - <span class="ion">&#xf381;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf381;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f381" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-android-done"></i> - </span><span class="step size-14"> - <i class="icon ion-android-done"></i> - </span><span class="step size-16"> - <i class="icon ion-android-done"></i> - </span><span class="step size-18"> - <i class="icon ion-android-done"></i> - </span><span class="step size-21"> - <i class="icon ion-android-done"></i> - </span><span class="step size-24"> - <i class="icon ion-android-done"></i> - </span><span class="step size-32"> - <i class="icon ion-android-done"></i> - </span><span class="step size-48"> - <i class="icon ion-android-done"></i> - </span><span class="step size-64"> - <i class="icon ion-android-done"></i> - </span><span class="step size-96"> - <i class="icon ion-android-done"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-android-done" /> - - <label>Selectable:</label> - <span class="ion">&#xf383;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf383;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f383" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-android-done-all"></i> - </span><span class="step size-14"> - <i class="icon ion-android-done-all"></i> - </span><span class="step size-16"> - <i class="icon ion-android-done-all"></i> - </span><span class="step size-18"> - <i class="icon ion-android-done-all"></i> - </span><span class="step size-21"> - <i class="icon ion-android-done-all"></i> - </span><span class="step size-24"> - <i class="icon ion-android-done-all"></i> - </span><span class="step size-32"> - <i class="icon ion-android-done-all"></i> - </span><span class="step size-48"> - <i class="icon ion-android-done-all"></i> - </span><span class="step size-64"> - <i class="icon ion-android-done-all"></i> - </span><span class="step size-96"> - <i class="icon ion-android-done-all"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-android-done-all" /> - - <label>Selectable:</label> - <span class="ion">&#xf382;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf382;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f382" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-android-download"></i> - </span><span class="step size-14"> - <i class="icon ion-android-download"></i> - </span><span class="step size-16"> - <i class="icon ion-android-download"></i> - </span><span class="step size-18"> - <i class="icon ion-android-download"></i> - </span><span class="step size-21"> - <i class="icon ion-android-download"></i> - </span><span class="step size-24"> - <i class="icon ion-android-download"></i> - </span><span class="step size-32"> - <i class="icon ion-android-download"></i> - </span><span class="step size-48"> - <i class="icon ion-android-download"></i> - </span><span class="step size-64"> - <i class="icon ion-android-download"></i> - </span><span class="step size-96"> - <i class="icon ion-android-download"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-android-download" /> - - <label>Selectable:</label> - <span class="ion">&#xf2dd;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf2dd;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f2dd" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-android-drafts"></i> - </span><span class="step size-14"> - <i class="icon ion-android-drafts"></i> - </span><span class="step size-16"> - <i class="icon ion-android-drafts"></i> - </span><span class="step size-18"> - <i class="icon ion-android-drafts"></i> - </span><span class="step size-21"> - <i class="icon ion-android-drafts"></i> - </span><span class="step size-24"> - <i class="icon ion-android-drafts"></i> - </span><span class="step size-32"> - <i class="icon ion-android-drafts"></i> - </span><span class="step size-48"> - <i class="icon ion-android-drafts"></i> - </span><span class="step size-64"> - <i class="icon ion-android-drafts"></i> - </span><span class="step size-96"> - <i class="icon ion-android-drafts"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-android-drafts" /> - - <label>Selectable:</label> - <span class="ion">&#xf384;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf384;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f384" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-android-exit"></i> - </span><span class="step size-14"> - <i class="icon ion-android-exit"></i> - </span><span class="step size-16"> - <i class="icon ion-android-exit"></i> - </span><span class="step size-18"> - <i class="icon ion-android-exit"></i> - </span><span class="step size-21"> - <i class="icon ion-android-exit"></i> - </span><span class="step size-24"> - <i class="icon ion-android-exit"></i> - </span><span class="step size-32"> - <i class="icon ion-android-exit"></i> - </span><span class="step size-48"> - <i class="icon ion-android-exit"></i> - </span><span class="step size-64"> - <i class="icon ion-android-exit"></i> - </span><span class="step size-96"> - <i class="icon ion-android-exit"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-android-exit" /> - - <label>Selectable:</label> - <span class="ion">&#xf385;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf385;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f385" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-android-expand"></i> - </span><span class="step size-14"> - <i class="icon ion-android-expand"></i> - </span><span class="step size-16"> - <i class="icon ion-android-expand"></i> - </span><span class="step size-18"> - <i class="icon ion-android-expand"></i> - </span><span class="step size-21"> - <i class="icon ion-android-expand"></i> - </span><span class="step size-24"> - <i class="icon ion-android-expand"></i> - </span><span class="step size-32"> - <i class="icon ion-android-expand"></i> - </span><span class="step size-48"> - <i class="icon ion-android-expand"></i> - </span><span class="step size-64"> - <i class="icon ion-android-expand"></i> - </span><span class="step size-96"> - <i class="icon ion-android-expand"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-android-expand" /> - - <label>Selectable:</label> - <span class="ion">&#xf386;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf386;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f386" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-android-favorite"></i> - </span><span class="step size-14"> - <i class="icon ion-android-favorite"></i> - </span><span class="step size-16"> - <i class="icon ion-android-favorite"></i> - </span><span class="step size-18"> - <i class="icon ion-android-favorite"></i> - </span><span class="step size-21"> - <i class="icon ion-android-favorite"></i> - </span><span class="step size-24"> - <i class="icon ion-android-favorite"></i> - </span><span class="step size-32"> - <i class="icon ion-android-favorite"></i> - </span><span class="step size-48"> - <i class="icon ion-android-favorite"></i> - </span><span class="step size-64"> - <i class="icon ion-android-favorite"></i> - </span><span class="step size-96"> - <i class="icon ion-android-favorite"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-android-favorite" /> - - <label>Selectable:</label> - <span class="ion">&#xf388;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf388;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f388" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-android-favorite-outline"></i> - </span><span class="step size-14"> - <i class="icon ion-android-favorite-outline"></i> - </span><span class="step size-16"> - <i class="icon ion-android-favorite-outline"></i> - </span><span class="step size-18"> - <i class="icon ion-android-favorite-outline"></i> - </span><span class="step size-21"> - <i class="icon ion-android-favorite-outline"></i> - </span><span class="step size-24"> - <i class="icon ion-android-favorite-outline"></i> - </span><span class="step size-32"> - <i class="icon ion-android-favorite-outline"></i> - </span><span class="step size-48"> - <i class="icon ion-android-favorite-outline"></i> - </span><span class="step size-64"> - <i class="icon ion-android-favorite-outline"></i> - </span><span class="step size-96"> - <i class="icon ion-android-favorite-outline"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-android-favorite-outline" /> - - <label>Selectable:</label> - <span class="ion">&#xf387;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf387;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f387" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-android-film"></i> - </span><span class="step size-14"> - <i class="icon ion-android-film"></i> - </span><span class="step size-16"> - <i class="icon ion-android-film"></i> - </span><span class="step size-18"> - <i class="icon ion-android-film"></i> - </span><span class="step size-21"> - <i class="icon ion-android-film"></i> - </span><span class="step size-24"> - <i class="icon ion-android-film"></i> - </span><span class="step size-32"> - <i class="icon ion-android-film"></i> - </span><span class="step size-48"> - <i class="icon ion-android-film"></i> - </span><span class="step size-64"> - <i class="icon ion-android-film"></i> - </span><span class="step size-96"> - <i class="icon ion-android-film"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-android-film" /> - - <label>Selectable:</label> - <span class="ion">&#xf389;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf389;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f389" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-android-folder"></i> - </span><span class="step size-14"> - <i class="icon ion-android-folder"></i> - </span><span class="step size-16"> - <i class="icon ion-android-folder"></i> - </span><span class="step size-18"> - <i class="icon ion-android-folder"></i> - </span><span class="step size-21"> - <i class="icon ion-android-folder"></i> - </span><span class="step size-24"> - <i class="icon ion-android-folder"></i> - </span><span class="step size-32"> - <i class="icon ion-android-folder"></i> - </span><span class="step size-48"> - <i class="icon ion-android-folder"></i> - </span><span class="step size-64"> - <i class="icon ion-android-folder"></i> - </span><span class="step size-96"> - <i class="icon ion-android-folder"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-android-folder" /> - - <label>Selectable:</label> - <span class="ion">&#xf2e0;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf2e0;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f2e0" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-android-folder-open"></i> - </span><span class="step size-14"> - <i class="icon ion-android-folder-open"></i> - </span><span class="step size-16"> - <i class="icon ion-android-folder-open"></i> - </span><span class="step size-18"> - <i class="icon ion-android-folder-open"></i> - </span><span class="step size-21"> - <i class="icon ion-android-folder-open"></i> - </span><span class="step size-24"> - <i class="icon ion-android-folder-open"></i> - </span><span class="step size-32"> - <i class="icon ion-android-folder-open"></i> - </span><span class="step size-48"> - <i class="icon ion-android-folder-open"></i> - </span><span class="step size-64"> - <i class="icon ion-android-folder-open"></i> - </span><span class="step size-96"> - <i class="icon ion-android-folder-open"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-android-folder-open" /> - - <label>Selectable:</label> - <span class="ion">&#xf38a;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf38a;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f38a" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-android-funnel"></i> - </span><span class="step size-14"> - <i class="icon ion-android-funnel"></i> - </span><span class="step size-16"> - <i class="icon ion-android-funnel"></i> - </span><span class="step size-18"> - <i class="icon ion-android-funnel"></i> - </span><span class="step size-21"> - <i class="icon ion-android-funnel"></i> - </span><span class="step size-24"> - <i class="icon ion-android-funnel"></i> - </span><span class="step size-32"> - <i class="icon ion-android-funnel"></i> - </span><span class="step size-48"> - <i class="icon ion-android-funnel"></i> - </span><span class="step size-64"> - <i class="icon ion-android-funnel"></i> - </span><span class="step size-96"> - <i class="icon ion-android-funnel"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-android-funnel" /> - - <label>Selectable:</label> - <span class="ion">&#xf38b;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf38b;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f38b" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-android-globe"></i> - </span><span class="step size-14"> - <i class="icon ion-android-globe"></i> - </span><span class="step size-16"> - <i class="icon ion-android-globe"></i> - </span><span class="step size-18"> - <i class="icon ion-android-globe"></i> - </span><span class="step size-21"> - <i class="icon ion-android-globe"></i> - </span><span class="step size-24"> - <i class="icon ion-android-globe"></i> - </span><span class="step size-32"> - <i class="icon ion-android-globe"></i> - </span><span class="step size-48"> - <i class="icon ion-android-globe"></i> - </span><span class="step size-64"> - <i class="icon ion-android-globe"></i> - </span><span class="step size-96"> - <i class="icon ion-android-globe"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-android-globe" /> - - <label>Selectable:</label> - <span class="ion">&#xf38c;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf38c;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f38c" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-android-hand"></i> - </span><span class="step size-14"> - <i class="icon ion-android-hand"></i> - </span><span class="step size-16"> - <i class="icon ion-android-hand"></i> - </span><span class="step size-18"> - <i class="icon ion-android-hand"></i> - </span><span class="step size-21"> - <i class="icon ion-android-hand"></i> - </span><span class="step size-24"> - <i class="icon ion-android-hand"></i> - </span><span class="step size-32"> - <i class="icon ion-android-hand"></i> - </span><span class="step size-48"> - <i class="icon ion-android-hand"></i> - </span><span class="step size-64"> - <i class="icon ion-android-hand"></i> - </span><span class="step size-96"> - <i class="icon ion-android-hand"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-android-hand" /> - - <label>Selectable:</label> - <span class="ion">&#xf2e3;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf2e3;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f2e3" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-android-hangout"></i> - </span><span class="step size-14"> - <i class="icon ion-android-hangout"></i> - </span><span class="step size-16"> - <i class="icon ion-android-hangout"></i> - </span><span class="step size-18"> - <i class="icon ion-android-hangout"></i> - </span><span class="step size-21"> - <i class="icon ion-android-hangout"></i> - </span><span class="step size-24"> - <i class="icon ion-android-hangout"></i> - </span><span class="step size-32"> - <i class="icon ion-android-hangout"></i> - </span><span class="step size-48"> - <i class="icon ion-android-hangout"></i> - </span><span class="step size-64"> - <i class="icon ion-android-hangout"></i> - </span><span class="step size-96"> - <i class="icon ion-android-hangout"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-android-hangout" /> - - <label>Selectable:</label> - <span class="ion">&#xf38d;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf38d;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f38d" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-android-happy"></i> - </span><span class="step size-14"> - <i class="icon ion-android-happy"></i> - </span><span class="step size-16"> - <i class="icon ion-android-happy"></i> - </span><span class="step size-18"> - <i class="icon ion-android-happy"></i> - </span><span class="step size-21"> - <i class="icon ion-android-happy"></i> - </span><span class="step size-24"> - <i class="icon ion-android-happy"></i> - </span><span class="step size-32"> - <i class="icon ion-android-happy"></i> - </span><span class="step size-48"> - <i class="icon ion-android-happy"></i> - </span><span class="step size-64"> - <i class="icon ion-android-happy"></i> - </span><span class="step size-96"> - <i class="icon ion-android-happy"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-android-happy" /> - - <label>Selectable:</label> - <span class="ion">&#xf38e;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf38e;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f38e" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-android-home"></i> - </span><span class="step size-14"> - <i class="icon ion-android-home"></i> - </span><span class="step size-16"> - <i class="icon ion-android-home"></i> - </span><span class="step size-18"> - <i class="icon ion-android-home"></i> - </span><span class="step size-21"> - <i class="icon ion-android-home"></i> - </span><span class="step size-24"> - <i class="icon ion-android-home"></i> - </span><span class="step size-32"> - <i class="icon ion-android-home"></i> - </span><span class="step size-48"> - <i class="icon ion-android-home"></i> - </span><span class="step size-64"> - <i class="icon ion-android-home"></i> - </span><span class="step size-96"> - <i class="icon ion-android-home"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-android-home" /> - - <label>Selectable:</label> - <span class="ion">&#xf38f;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf38f;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f38f" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-android-image"></i> - </span><span class="step size-14"> - <i class="icon ion-android-image"></i> - </span><span class="step size-16"> - <i class="icon ion-android-image"></i> - </span><span class="step size-18"> - <i class="icon ion-android-image"></i> - </span><span class="step size-21"> - <i class="icon ion-android-image"></i> - </span><span class="step size-24"> - <i class="icon ion-android-image"></i> - </span><span class="step size-32"> - <i class="icon ion-android-image"></i> - </span><span class="step size-48"> - <i class="icon ion-android-image"></i> - </span><span class="step size-64"> - <i class="icon ion-android-image"></i> - </span><span class="step size-96"> - <i class="icon ion-android-image"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-android-image" /> - - <label>Selectable:</label> - <span class="ion">&#xf2e4;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf2e4;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f2e4" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-android-laptop"></i> - </span><span class="step size-14"> - <i class="icon ion-android-laptop"></i> - </span><span class="step size-16"> - <i class="icon ion-android-laptop"></i> - </span><span class="step size-18"> - <i class="icon ion-android-laptop"></i> - </span><span class="step size-21"> - <i class="icon ion-android-laptop"></i> - </span><span class="step size-24"> - <i class="icon ion-android-laptop"></i> - </span><span class="step size-32"> - <i class="icon ion-android-laptop"></i> - </span><span class="step size-48"> - <i class="icon ion-android-laptop"></i> - </span><span class="step size-64"> - <i class="icon ion-android-laptop"></i> - </span><span class="step size-96"> - <i class="icon ion-android-laptop"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-android-laptop" /> - - <label>Selectable:</label> - <span class="ion">&#xf390;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf390;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f390" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-android-list"></i> - </span><span class="step size-14"> - <i class="icon ion-android-list"></i> - </span><span class="step size-16"> - <i class="icon ion-android-list"></i> - </span><span class="step size-18"> - <i class="icon ion-android-list"></i> - </span><span class="step size-21"> - <i class="icon ion-android-list"></i> - </span><span class="step size-24"> - <i class="icon ion-android-list"></i> - </span><span class="step size-32"> - <i class="icon ion-android-list"></i> - </span><span class="step size-48"> - <i class="icon ion-android-list"></i> - </span><span class="step size-64"> - <i class="icon ion-android-list"></i> - </span><span class="step size-96"> - <i class="icon ion-android-list"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-android-list" /> - - <label>Selectable:</label> - <span class="ion">&#xf391;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf391;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f391" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-android-locate"></i> - </span><span class="step size-14"> - <i class="icon ion-android-locate"></i> - </span><span class="step size-16"> - <i class="icon ion-android-locate"></i> - </span><span class="step size-18"> - <i class="icon ion-android-locate"></i> - </span><span class="step size-21"> - <i class="icon ion-android-locate"></i> - </span><span class="step size-24"> - <i class="icon ion-android-locate"></i> - </span><span class="step size-32"> - <i class="icon ion-android-locate"></i> - </span><span class="step size-48"> - <i class="icon ion-android-locate"></i> - </span><span class="step size-64"> - <i class="icon ion-android-locate"></i> - </span><span class="step size-96"> - <i class="icon ion-android-locate"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-android-locate" /> - - <label>Selectable:</label> - <span class="ion">&#xf2e9;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf2e9;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f2e9" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-android-lock"></i> - </span><span class="step size-14"> - <i class="icon ion-android-lock"></i> - </span><span class="step size-16"> - <i class="icon ion-android-lock"></i> - </span><span class="step size-18"> - <i class="icon ion-android-lock"></i> - </span><span class="step size-21"> - <i class="icon ion-android-lock"></i> - </span><span class="step size-24"> - <i class="icon ion-android-lock"></i> - </span><span class="step size-32"> - <i class="icon ion-android-lock"></i> - </span><span class="step size-48"> - <i class="icon ion-android-lock"></i> - </span><span class="step size-64"> - <i class="icon ion-android-lock"></i> - </span><span class="step size-96"> - <i class="icon ion-android-lock"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-android-lock" /> - - <label>Selectable:</label> - <span class="ion">&#xf392;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf392;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f392" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-android-mail"></i> - </span><span class="step size-14"> - <i class="icon ion-android-mail"></i> - </span><span class="step size-16"> - <i class="icon ion-android-mail"></i> - </span><span class="step size-18"> - <i class="icon ion-android-mail"></i> - </span><span class="step size-21"> - <i class="icon ion-android-mail"></i> - </span><span class="step size-24"> - <i class="icon ion-android-mail"></i> - </span><span class="step size-32"> - <i class="icon ion-android-mail"></i> - </span><span class="step size-48"> - <i class="icon ion-android-mail"></i> - </span><span class="step size-64"> - <i class="icon ion-android-mail"></i> - </span><span class="step size-96"> - <i class="icon ion-android-mail"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-android-mail" /> - - <label>Selectable:</label> - <span class="ion">&#xf2eb;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf2eb;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f2eb" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-android-map"></i> - </span><span class="step size-14"> - <i class="icon ion-android-map"></i> - </span><span class="step size-16"> - <i class="icon ion-android-map"></i> - </span><span class="step size-18"> - <i class="icon ion-android-map"></i> - </span><span class="step size-21"> - <i class="icon ion-android-map"></i> - </span><span class="step size-24"> - <i class="icon ion-android-map"></i> - </span><span class="step size-32"> - <i class="icon ion-android-map"></i> - </span><span class="step size-48"> - <i class="icon ion-android-map"></i> - </span><span class="step size-64"> - <i class="icon ion-android-map"></i> - </span><span class="step size-96"> - <i class="icon ion-android-map"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-android-map" /> - - <label>Selectable:</label> - <span class="ion">&#xf393;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf393;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f393" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-android-menu"></i> - </span><span class="step size-14"> - <i class="icon ion-android-menu"></i> - </span><span class="step size-16"> - <i class="icon ion-android-menu"></i> - </span><span class="step size-18"> - <i class="icon ion-android-menu"></i> - </span><span class="step size-21"> - <i class="icon ion-android-menu"></i> - </span><span class="step size-24"> - <i class="icon ion-android-menu"></i> - </span><span class="step size-32"> - <i class="icon ion-android-menu"></i> - </span><span class="step size-48"> - <i class="icon ion-android-menu"></i> - </span><span class="step size-64"> - <i class="icon ion-android-menu"></i> - </span><span class="step size-96"> - <i class="icon ion-android-menu"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-android-menu" /> - - <label>Selectable:</label> - <span class="ion">&#xf394;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf394;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f394" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-android-microphone"></i> - </span><span class="step size-14"> - <i class="icon ion-android-microphone"></i> - </span><span class="step size-16"> - <i class="icon ion-android-microphone"></i> - </span><span class="step size-18"> - <i class="icon ion-android-microphone"></i> - </span><span class="step size-21"> - <i class="icon ion-android-microphone"></i> - </span><span class="step size-24"> - <i class="icon ion-android-microphone"></i> - </span><span class="step size-32"> - <i class="icon ion-android-microphone"></i> - </span><span class="step size-48"> - <i class="icon ion-android-microphone"></i> - </span><span class="step size-64"> - <i class="icon ion-android-microphone"></i> - </span><span class="step size-96"> - <i class="icon ion-android-microphone"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-android-microphone" /> - - <label>Selectable:</label> - <span class="ion">&#xf2ec;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf2ec;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f2ec" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-android-microphone-off"></i> - </span><span class="step size-14"> - <i class="icon ion-android-microphone-off"></i> - </span><span class="step size-16"> - <i class="icon ion-android-microphone-off"></i> - </span><span class="step size-18"> - <i class="icon ion-android-microphone-off"></i> - </span><span class="step size-21"> - <i class="icon ion-android-microphone-off"></i> - </span><span class="step size-24"> - <i class="icon ion-android-microphone-off"></i> - </span><span class="step size-32"> - <i class="icon ion-android-microphone-off"></i> - </span><span class="step size-48"> - <i class="icon ion-android-microphone-off"></i> - </span><span class="step size-64"> - <i class="icon ion-android-microphone-off"></i> - </span><span class="step size-96"> - <i class="icon ion-android-microphone-off"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-android-microphone-off" /> - - <label>Selectable:</label> - <span class="ion">&#xf395;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf395;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f395" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-android-more-horizontal"></i> - </span><span class="step size-14"> - <i class="icon ion-android-more-horizontal"></i> - </span><span class="step size-16"> - <i class="icon ion-android-more-horizontal"></i> - </span><span class="step size-18"> - <i class="icon ion-android-more-horizontal"></i> - </span><span class="step size-21"> - <i class="icon ion-android-more-horizontal"></i> - </span><span class="step size-24"> - <i class="icon ion-android-more-horizontal"></i> - </span><span class="step size-32"> - <i class="icon ion-android-more-horizontal"></i> - </span><span class="step size-48"> - <i class="icon ion-android-more-horizontal"></i> - </span><span class="step size-64"> - <i class="icon ion-android-more-horizontal"></i> - </span><span class="step size-96"> - <i class="icon ion-android-more-horizontal"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-android-more-horizontal" /> - - <label>Selectable:</label> - <span class="ion">&#xf396;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf396;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f396" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-android-more-vertical"></i> - </span><span class="step size-14"> - <i class="icon ion-android-more-vertical"></i> - </span><span class="step size-16"> - <i class="icon ion-android-more-vertical"></i> - </span><span class="step size-18"> - <i class="icon ion-android-more-vertical"></i> - </span><span class="step size-21"> - <i class="icon ion-android-more-vertical"></i> - </span><span class="step size-24"> - <i class="icon ion-android-more-vertical"></i> - </span><span class="step size-32"> - <i class="icon ion-android-more-vertical"></i> - </span><span class="step size-48"> - <i class="icon ion-android-more-vertical"></i> - </span><span class="step size-64"> - <i class="icon ion-android-more-vertical"></i> - </span><span class="step size-96"> - <i class="icon ion-android-more-vertical"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-android-more-vertical" /> - - <label>Selectable:</label> - <span class="ion">&#xf397;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf397;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f397" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-android-navigate"></i> - </span><span class="step size-14"> - <i class="icon ion-android-navigate"></i> - </span><span class="step size-16"> - <i class="icon ion-android-navigate"></i> - </span><span class="step size-18"> - <i class="icon ion-android-navigate"></i> - </span><span class="step size-21"> - <i class="icon ion-android-navigate"></i> - </span><span class="step size-24"> - <i class="icon ion-android-navigate"></i> - </span><span class="step size-32"> - <i class="icon ion-android-navigate"></i> - </span><span class="step size-48"> - <i class="icon ion-android-navigate"></i> - </span><span class="step size-64"> - <i class="icon ion-android-navigate"></i> - </span><span class="step size-96"> - <i class="icon ion-android-navigate"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-android-navigate" /> - - <label>Selectable:</label> - <span class="ion">&#xf398;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf398;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f398" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-android-notifications"></i> - </span><span class="step size-14"> - <i class="icon ion-android-notifications"></i> - </span><span class="step size-16"> - <i class="icon ion-android-notifications"></i> - </span><span class="step size-18"> - <i class="icon ion-android-notifications"></i> - </span><span class="step size-21"> - <i class="icon ion-android-notifications"></i> - </span><span class="step size-24"> - <i class="icon ion-android-notifications"></i> - </span><span class="step size-32"> - <i class="icon ion-android-notifications"></i> - </span><span class="step size-48"> - <i class="icon ion-android-notifications"></i> - </span><span class="step size-64"> - <i class="icon ion-android-notifications"></i> - </span><span class="step size-96"> - <i class="icon ion-android-notifications"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-android-notifications" /> - - <label>Selectable:</label> - <span class="ion">&#xf39b;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf39b;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f39b" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-android-notifications-none"></i> - </span><span class="step size-14"> - <i class="icon ion-android-notifications-none"></i> - </span><span class="step size-16"> - <i class="icon ion-android-notifications-none"></i> - </span><span class="step size-18"> - <i class="icon ion-android-notifications-none"></i> - </span><span class="step size-21"> - <i class="icon ion-android-notifications-none"></i> - </span><span class="step size-24"> - <i class="icon ion-android-notifications-none"></i> - </span><span class="step size-32"> - <i class="icon ion-android-notifications-none"></i> - </span><span class="step size-48"> - <i class="icon ion-android-notifications-none"></i> - </span><span class="step size-64"> - <i class="icon ion-android-notifications-none"></i> - </span><span class="step size-96"> - <i class="icon ion-android-notifications-none"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-android-notifications-none" /> - - <label>Selectable:</label> - <span class="ion">&#xf399;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf399;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f399" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-android-notifications-off"></i> - </span><span class="step size-14"> - <i class="icon ion-android-notifications-off"></i> - </span><span class="step size-16"> - <i class="icon ion-android-notifications-off"></i> - </span><span class="step size-18"> - <i class="icon ion-android-notifications-off"></i> - </span><span class="step size-21"> - <i class="icon ion-android-notifications-off"></i> - </span><span class="step size-24"> - <i class="icon ion-android-notifications-off"></i> - </span><span class="step size-32"> - <i class="icon ion-android-notifications-off"></i> - </span><span class="step size-48"> - <i class="icon ion-android-notifications-off"></i> - </span><span class="step size-64"> - <i class="icon ion-android-notifications-off"></i> - </span><span class="step size-96"> - <i class="icon ion-android-notifications-off"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-android-notifications-off" /> - - <label>Selectable:</label> - <span class="ion">&#xf39a;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf39a;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f39a" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-android-open"></i> - </span><span class="step size-14"> - <i class="icon ion-android-open"></i> - </span><span class="step size-16"> - <i class="icon ion-android-open"></i> - </span><span class="step size-18"> - <i class="icon ion-android-open"></i> - </span><span class="step size-21"> - <i class="icon ion-android-open"></i> - </span><span class="step size-24"> - <i class="icon ion-android-open"></i> - </span><span class="step size-32"> - <i class="icon ion-android-open"></i> - </span><span class="step size-48"> - <i class="icon ion-android-open"></i> - </span><span class="step size-64"> - <i class="icon ion-android-open"></i> - </span><span class="step size-96"> - <i class="icon ion-android-open"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-android-open" /> - - <label>Selectable:</label> - <span class="ion">&#xf39c;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf39c;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f39c" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-android-options"></i> - </span><span class="step size-14"> - <i class="icon ion-android-options"></i> - </span><span class="step size-16"> - <i class="icon ion-android-options"></i> - </span><span class="step size-18"> - <i class="icon ion-android-options"></i> - </span><span class="step size-21"> - <i class="icon ion-android-options"></i> - </span><span class="step size-24"> - <i class="icon ion-android-options"></i> - </span><span class="step size-32"> - <i class="icon ion-android-options"></i> - </span><span class="step size-48"> - <i class="icon ion-android-options"></i> - </span><span class="step size-64"> - <i class="icon ion-android-options"></i> - </span><span class="step size-96"> - <i class="icon ion-android-options"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-android-options" /> - - <label>Selectable:</label> - <span class="ion">&#xf39d;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf39d;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f39d" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-android-people"></i> - </span><span class="step size-14"> - <i class="icon ion-android-people"></i> - </span><span class="step size-16"> - <i class="icon ion-android-people"></i> - </span><span class="step size-18"> - <i class="icon ion-android-people"></i> - </span><span class="step size-21"> - <i class="icon ion-android-people"></i> - </span><span class="step size-24"> - <i class="icon ion-android-people"></i> - </span><span class="step size-32"> - <i class="icon ion-android-people"></i> - </span><span class="step size-48"> - <i class="icon ion-android-people"></i> - </span><span class="step size-64"> - <i class="icon ion-android-people"></i> - </span><span class="step size-96"> - <i class="icon ion-android-people"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-android-people" /> - - <label>Selectable:</label> - <span class="ion">&#xf39e;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf39e;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f39e" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-android-person"></i> - </span><span class="step size-14"> - <i class="icon ion-android-person"></i> - </span><span class="step size-16"> - <i class="icon ion-android-person"></i> - </span><span class="step size-18"> - <i class="icon ion-android-person"></i> - </span><span class="step size-21"> - <i class="icon ion-android-person"></i> - </span><span class="step size-24"> - <i class="icon ion-android-person"></i> - </span><span class="step size-32"> - <i class="icon ion-android-person"></i> - </span><span class="step size-48"> - <i class="icon ion-android-person"></i> - </span><span class="step size-64"> - <i class="icon ion-android-person"></i> - </span><span class="step size-96"> - <i class="icon ion-android-person"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-android-person" /> - - <label>Selectable:</label> - <span class="ion">&#xf3a0;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf3a0;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f3a0" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-android-person-add"></i> - </span><span class="step size-14"> - <i class="icon ion-android-person-add"></i> - </span><span class="step size-16"> - <i class="icon ion-android-person-add"></i> - </span><span class="step size-18"> - <i class="icon ion-android-person-add"></i> - </span><span class="step size-21"> - <i class="icon ion-android-person-add"></i> - </span><span class="step size-24"> - <i class="icon ion-android-person-add"></i> - </span><span class="step size-32"> - <i class="icon ion-android-person-add"></i> - </span><span class="step size-48"> - <i class="icon ion-android-person-add"></i> - </span><span class="step size-64"> - <i class="icon ion-android-person-add"></i> - </span><span class="step size-96"> - <i class="icon ion-android-person-add"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-android-person-add" /> - - <label>Selectable:</label> - <span class="ion">&#xf39f;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf39f;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f39f" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-android-phone-landscape"></i> - </span><span class="step size-14"> - <i class="icon ion-android-phone-landscape"></i> - </span><span class="step size-16"> - <i class="icon ion-android-phone-landscape"></i> - </span><span class="step size-18"> - <i class="icon ion-android-phone-landscape"></i> - </span><span class="step size-21"> - <i class="icon ion-android-phone-landscape"></i> - </span><span class="step size-24"> - <i class="icon ion-android-phone-landscape"></i> - </span><span class="step size-32"> - <i class="icon ion-android-phone-landscape"></i> - </span><span class="step size-48"> - <i class="icon ion-android-phone-landscape"></i> - </span><span class="step size-64"> - <i class="icon ion-android-phone-landscape"></i> - </span><span class="step size-96"> - <i class="icon ion-android-phone-landscape"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-android-phone-landscape" /> - - <label>Selectable:</label> - <span class="ion">&#xf3a1;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf3a1;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f3a1" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-android-phone-portrait"></i> - </span><span class="step size-14"> - <i class="icon ion-android-phone-portrait"></i> - </span><span class="step size-16"> - <i class="icon ion-android-phone-portrait"></i> - </span><span class="step size-18"> - <i class="icon ion-android-phone-portrait"></i> - </span><span class="step size-21"> - <i class="icon ion-android-phone-portrait"></i> - </span><span class="step size-24"> - <i class="icon ion-android-phone-portrait"></i> - </span><span class="step size-32"> - <i class="icon ion-android-phone-portrait"></i> - </span><span class="step size-48"> - <i class="icon ion-android-phone-portrait"></i> - </span><span class="step size-64"> - <i class="icon ion-android-phone-portrait"></i> - </span><span class="step size-96"> - <i class="icon ion-android-phone-portrait"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-android-phone-portrait" /> - - <label>Selectable:</label> - <span class="ion">&#xf3a2;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf3a2;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f3a2" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-android-pin"></i> - </span><span class="step size-14"> - <i class="icon ion-android-pin"></i> - </span><span class="step size-16"> - <i class="icon ion-android-pin"></i> - </span><span class="step size-18"> - <i class="icon ion-android-pin"></i> - </span><span class="step size-21"> - <i class="icon ion-android-pin"></i> - </span><span class="step size-24"> - <i class="icon ion-android-pin"></i> - </span><span class="step size-32"> - <i class="icon ion-android-pin"></i> - </span><span class="step size-48"> - <i class="icon ion-android-pin"></i> - </span><span class="step size-64"> - <i class="icon ion-android-pin"></i> - </span><span class="step size-96"> - <i class="icon ion-android-pin"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-android-pin" /> - - <label>Selectable:</label> - <span class="ion">&#xf3a3;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf3a3;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f3a3" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-android-plane"></i> - </span><span class="step size-14"> - <i class="icon ion-android-plane"></i> - </span><span class="step size-16"> - <i class="icon ion-android-plane"></i> - </span><span class="step size-18"> - <i class="icon ion-android-plane"></i> - </span><span class="step size-21"> - <i class="icon ion-android-plane"></i> - </span><span class="step size-24"> - <i class="icon ion-android-plane"></i> - </span><span class="step size-32"> - <i class="icon ion-android-plane"></i> - </span><span class="step size-48"> - <i class="icon ion-android-plane"></i> - </span><span class="step size-64"> - <i class="icon ion-android-plane"></i> - </span><span class="step size-96"> - <i class="icon ion-android-plane"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-android-plane" /> - - <label>Selectable:</label> - <span class="ion">&#xf3a4;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf3a4;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f3a4" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-android-playstore"></i> - </span><span class="step size-14"> - <i class="icon ion-android-playstore"></i> - </span><span class="step size-16"> - <i class="icon ion-android-playstore"></i> - </span><span class="step size-18"> - <i class="icon ion-android-playstore"></i> - </span><span class="step size-21"> - <i class="icon ion-android-playstore"></i> - </span><span class="step size-24"> - <i class="icon ion-android-playstore"></i> - </span><span class="step size-32"> - <i class="icon ion-android-playstore"></i> - </span><span class="step size-48"> - <i class="icon ion-android-playstore"></i> - </span><span class="step size-64"> - <i class="icon ion-android-playstore"></i> - </span><span class="step size-96"> - <i class="icon ion-android-playstore"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-android-playstore" /> - - <label>Selectable:</label> - <span class="ion">&#xf2f0;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf2f0;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f2f0" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-android-print"></i> - </span><span class="step size-14"> - <i class="icon ion-android-print"></i> - </span><span class="step size-16"> - <i class="icon ion-android-print"></i> - </span><span class="step size-18"> - <i class="icon ion-android-print"></i> - </span><span class="step size-21"> - <i class="icon ion-android-print"></i> - </span><span class="step size-24"> - <i class="icon ion-android-print"></i> - </span><span class="step size-32"> - <i class="icon ion-android-print"></i> - </span><span class="step size-48"> - <i class="icon ion-android-print"></i> - </span><span class="step size-64"> - <i class="icon ion-android-print"></i> - </span><span class="step size-96"> - <i class="icon ion-android-print"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-android-print" /> - - <label>Selectable:</label> - <span class="ion">&#xf3a5;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf3a5;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f3a5" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-android-radio-button-off"></i> - </span><span class="step size-14"> - <i class="icon ion-android-radio-button-off"></i> - </span><span class="step size-16"> - <i class="icon ion-android-radio-button-off"></i> - </span><span class="step size-18"> - <i class="icon ion-android-radio-button-off"></i> - </span><span class="step size-21"> - <i class="icon ion-android-radio-button-off"></i> - </span><span class="step size-24"> - <i class="icon ion-android-radio-button-off"></i> - </span><span class="step size-32"> - <i class="icon ion-android-radio-button-off"></i> - </span><span class="step size-48"> - <i class="icon ion-android-radio-button-off"></i> - </span><span class="step size-64"> - <i class="icon ion-android-radio-button-off"></i> - </span><span class="step size-96"> - <i class="icon ion-android-radio-button-off"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-android-radio-button-off" /> - - <label>Selectable:</label> - <span class="ion">&#xf3a6;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf3a6;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f3a6" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-android-radio-button-on"></i> - </span><span class="step size-14"> - <i class="icon ion-android-radio-button-on"></i> - </span><span class="step size-16"> - <i class="icon ion-android-radio-button-on"></i> - </span><span class="step size-18"> - <i class="icon ion-android-radio-button-on"></i> - </span><span class="step size-21"> - <i class="icon ion-android-radio-button-on"></i> - </span><span class="step size-24"> - <i class="icon ion-android-radio-button-on"></i> - </span><span class="step size-32"> - <i class="icon ion-android-radio-button-on"></i> - </span><span class="step size-48"> - <i class="icon ion-android-radio-button-on"></i> - </span><span class="step size-64"> - <i class="icon ion-android-radio-button-on"></i> - </span><span class="step size-96"> - <i class="icon ion-android-radio-button-on"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-android-radio-button-on" /> - - <label>Selectable:</label> - <span class="ion">&#xf3a7;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf3a7;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f3a7" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-android-refresh"></i> - </span><span class="step size-14"> - <i class="icon ion-android-refresh"></i> - </span><span class="step size-16"> - <i class="icon ion-android-refresh"></i> - </span><span class="step size-18"> - <i class="icon ion-android-refresh"></i> - </span><span class="step size-21"> - <i class="icon ion-android-refresh"></i> - </span><span class="step size-24"> - <i class="icon ion-android-refresh"></i> - </span><span class="step size-32"> - <i class="icon ion-android-refresh"></i> - </span><span class="step size-48"> - <i class="icon ion-android-refresh"></i> - </span><span class="step size-64"> - <i class="icon ion-android-refresh"></i> - </span><span class="step size-96"> - <i class="icon ion-android-refresh"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-android-refresh" /> - - <label>Selectable:</label> - <span class="ion">&#xf3a8;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf3a8;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f3a8" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-android-remove"></i> - </span><span class="step size-14"> - <i class="icon ion-android-remove"></i> - </span><span class="step size-16"> - <i class="icon ion-android-remove"></i> - </span><span class="step size-18"> - <i class="icon ion-android-remove"></i> - </span><span class="step size-21"> - <i class="icon ion-android-remove"></i> - </span><span class="step size-24"> - <i class="icon ion-android-remove"></i> - </span><span class="step size-32"> - <i class="icon ion-android-remove"></i> - </span><span class="step size-48"> - <i class="icon ion-android-remove"></i> - </span><span class="step size-64"> - <i class="icon ion-android-remove"></i> - </span><span class="step size-96"> - <i class="icon ion-android-remove"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-android-remove" /> - - <label>Selectable:</label> - <span class="ion">&#xf2f4;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf2f4;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f2f4" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-android-remove-circle"></i> - </span><span class="step size-14"> - <i class="icon ion-android-remove-circle"></i> - </span><span class="step size-16"> - <i class="icon ion-android-remove-circle"></i> - </span><span class="step size-18"> - <i class="icon ion-android-remove-circle"></i> - </span><span class="step size-21"> - <i class="icon ion-android-remove-circle"></i> - </span><span class="step size-24"> - <i class="icon ion-android-remove-circle"></i> - </span><span class="step size-32"> - <i class="icon ion-android-remove-circle"></i> - </span><span class="step size-48"> - <i class="icon ion-android-remove-circle"></i> - </span><span class="step size-64"> - <i class="icon ion-android-remove-circle"></i> - </span><span class="step size-96"> - <i class="icon ion-android-remove-circle"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-android-remove-circle" /> - - <label>Selectable:</label> - <span class="ion">&#xf3a9;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf3a9;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f3a9" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-android-restaurant"></i> - </span><span class="step size-14"> - <i class="icon ion-android-restaurant"></i> - </span><span class="step size-16"> - <i class="icon ion-android-restaurant"></i> - </span><span class="step size-18"> - <i class="icon ion-android-restaurant"></i> - </span><span class="step size-21"> - <i class="icon ion-android-restaurant"></i> - </span><span class="step size-24"> - <i class="icon ion-android-restaurant"></i> - </span><span class="step size-32"> - <i class="icon ion-android-restaurant"></i> - </span><span class="step size-48"> - <i class="icon ion-android-restaurant"></i> - </span><span class="step size-64"> - <i class="icon ion-android-restaurant"></i> - </span><span class="step size-96"> - <i class="icon ion-android-restaurant"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-android-restaurant" /> - - <label>Selectable:</label> - <span class="ion">&#xf3aa;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf3aa;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f3aa" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-android-sad"></i> - </span><span class="step size-14"> - <i class="icon ion-android-sad"></i> - </span><span class="step size-16"> - <i class="icon ion-android-sad"></i> - </span><span class="step size-18"> - <i class="icon ion-android-sad"></i> - </span><span class="step size-21"> - <i class="icon ion-android-sad"></i> - </span><span class="step size-24"> - <i class="icon ion-android-sad"></i> - </span><span class="step size-32"> - <i class="icon ion-android-sad"></i> - </span><span class="step size-48"> - <i class="icon ion-android-sad"></i> - </span><span class="step size-64"> - <i class="icon ion-android-sad"></i> - </span><span class="step size-96"> - <i class="icon ion-android-sad"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-android-sad" /> - - <label>Selectable:</label> - <span class="ion">&#xf3ab;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf3ab;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f3ab" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-android-search"></i> - </span><span class="step size-14"> - <i class="icon ion-android-search"></i> - </span><span class="step size-16"> - <i class="icon ion-android-search"></i> - </span><span class="step size-18"> - <i class="icon ion-android-search"></i> - </span><span class="step size-21"> - <i class="icon ion-android-search"></i> - </span><span class="step size-24"> - <i class="icon ion-android-search"></i> - </span><span class="step size-32"> - <i class="icon ion-android-search"></i> - </span><span class="step size-48"> - <i class="icon ion-android-search"></i> - </span><span class="step size-64"> - <i class="icon ion-android-search"></i> - </span><span class="step size-96"> - <i class="icon ion-android-search"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-android-search" /> - - <label>Selectable:</label> - <span class="ion">&#xf2f5;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf2f5;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f2f5" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-android-send"></i> - </span><span class="step size-14"> - <i class="icon ion-android-send"></i> - </span><span class="step size-16"> - <i class="icon ion-android-send"></i> - </span><span class="step size-18"> - <i class="icon ion-android-send"></i> - </span><span class="step size-21"> - <i class="icon ion-android-send"></i> - </span><span class="step size-24"> - <i class="icon ion-android-send"></i> - </span><span class="step size-32"> - <i class="icon ion-android-send"></i> - </span><span class="step size-48"> - <i class="icon ion-android-send"></i> - </span><span class="step size-64"> - <i class="icon ion-android-send"></i> - </span><span class="step size-96"> - <i class="icon ion-android-send"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-android-send" /> - - <label>Selectable:</label> - <span class="ion">&#xf2f6;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf2f6;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f2f6" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-android-settings"></i> - </span><span class="step size-14"> - <i class="icon ion-android-settings"></i> - </span><span class="step size-16"> - <i class="icon ion-android-settings"></i> - </span><span class="step size-18"> - <i class="icon ion-android-settings"></i> - </span><span class="step size-21"> - <i class="icon ion-android-settings"></i> - </span><span class="step size-24"> - <i class="icon ion-android-settings"></i> - </span><span class="step size-32"> - <i class="icon ion-android-settings"></i> - </span><span class="step size-48"> - <i class="icon ion-android-settings"></i> - </span><span class="step size-64"> - <i class="icon ion-android-settings"></i> - </span><span class="step size-96"> - <i class="icon ion-android-settings"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-android-settings" /> - - <label>Selectable:</label> - <span class="ion">&#xf2f7;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf2f7;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f2f7" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-android-share"></i> - </span><span class="step size-14"> - <i class="icon ion-android-share"></i> - </span><span class="step size-16"> - <i class="icon ion-android-share"></i> - </span><span class="step size-18"> - <i class="icon ion-android-share"></i> - </span><span class="step size-21"> - <i class="icon ion-android-share"></i> - </span><span class="step size-24"> - <i class="icon ion-android-share"></i> - </span><span class="step size-32"> - <i class="icon ion-android-share"></i> - </span><span class="step size-48"> - <i class="icon ion-android-share"></i> - </span><span class="step size-64"> - <i class="icon ion-android-share"></i> - </span><span class="step size-96"> - <i class="icon ion-android-share"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-android-share" /> - - <label>Selectable:</label> - <span class="ion">&#xf2f8;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf2f8;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f2f8" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-android-share-alt"></i> - </span><span class="step size-14"> - <i class="icon ion-android-share-alt"></i> - </span><span class="step size-16"> - <i class="icon ion-android-share-alt"></i> - </span><span class="step size-18"> - <i class="icon ion-android-share-alt"></i> - </span><span class="step size-21"> - <i class="icon ion-android-share-alt"></i> - </span><span class="step size-24"> - <i class="icon ion-android-share-alt"></i> - </span><span class="step size-32"> - <i class="icon ion-android-share-alt"></i> - </span><span class="step size-48"> - <i class="icon ion-android-share-alt"></i> - </span><span class="step size-64"> - <i class="icon ion-android-share-alt"></i> - </span><span class="step size-96"> - <i class="icon ion-android-share-alt"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-android-share-alt" /> - - <label>Selectable:</label> - <span class="ion">&#xf3ac;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf3ac;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f3ac" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-android-star"></i> - </span><span class="step size-14"> - <i class="icon ion-android-star"></i> - </span><span class="step size-16"> - <i class="icon ion-android-star"></i> - </span><span class="step size-18"> - <i class="icon ion-android-star"></i> - </span><span class="step size-21"> - <i class="icon ion-android-star"></i> - </span><span class="step size-24"> - <i class="icon ion-android-star"></i> - </span><span class="step size-32"> - <i class="icon ion-android-star"></i> - </span><span class="step size-48"> - <i class="icon ion-android-star"></i> - </span><span class="step size-64"> - <i class="icon ion-android-star"></i> - </span><span class="step size-96"> - <i class="icon ion-android-star"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-android-star" /> - - <label>Selectable:</label> - <span class="ion">&#xf2fc;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf2fc;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f2fc" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-android-star-half"></i> - </span><span class="step size-14"> - <i class="icon ion-android-star-half"></i> - </span><span class="step size-16"> - <i class="icon ion-android-star-half"></i> - </span><span class="step size-18"> - <i class="icon ion-android-star-half"></i> - </span><span class="step size-21"> - <i class="icon ion-android-star-half"></i> - </span><span class="step size-24"> - <i class="icon ion-android-star-half"></i> - </span><span class="step size-32"> - <i class="icon ion-android-star-half"></i> - </span><span class="step size-48"> - <i class="icon ion-android-star-half"></i> - </span><span class="step size-64"> - <i class="icon ion-android-star-half"></i> - </span><span class="step size-96"> - <i class="icon ion-android-star-half"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-android-star-half" /> - - <label>Selectable:</label> - <span class="ion">&#xf3ad;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf3ad;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f3ad" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-android-star-outline"></i> - </span><span class="step size-14"> - <i class="icon ion-android-star-outline"></i> - </span><span class="step size-16"> - <i class="icon ion-android-star-outline"></i> - </span><span class="step size-18"> - <i class="icon ion-android-star-outline"></i> - </span><span class="step size-21"> - <i class="icon ion-android-star-outline"></i> - </span><span class="step size-24"> - <i class="icon ion-android-star-outline"></i> - </span><span class="step size-32"> - <i class="icon ion-android-star-outline"></i> - </span><span class="step size-48"> - <i class="icon ion-android-star-outline"></i> - </span><span class="step size-64"> - <i class="icon ion-android-star-outline"></i> - </span><span class="step size-96"> - <i class="icon ion-android-star-outline"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-android-star-outline" /> - - <label>Selectable:</label> - <span class="ion">&#xf3ae;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf3ae;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f3ae" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-android-stopwatch"></i> - </span><span class="step size-14"> - <i class="icon ion-android-stopwatch"></i> - </span><span class="step size-16"> - <i class="icon ion-android-stopwatch"></i> - </span><span class="step size-18"> - <i class="icon ion-android-stopwatch"></i> - </span><span class="step size-21"> - <i class="icon ion-android-stopwatch"></i> - </span><span class="step size-24"> - <i class="icon ion-android-stopwatch"></i> - </span><span class="step size-32"> - <i class="icon ion-android-stopwatch"></i> - </span><span class="step size-48"> - <i class="icon ion-android-stopwatch"></i> - </span><span class="step size-64"> - <i class="icon ion-android-stopwatch"></i> - </span><span class="step size-96"> - <i class="icon ion-android-stopwatch"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-android-stopwatch" /> - - <label>Selectable:</label> - <span class="ion">&#xf2fd;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf2fd;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f2fd" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-android-subway"></i> - </span><span class="step size-14"> - <i class="icon ion-android-subway"></i> - </span><span class="step size-16"> - <i class="icon ion-android-subway"></i> - </span><span class="step size-18"> - <i class="icon ion-android-subway"></i> - </span><span class="step size-21"> - <i class="icon ion-android-subway"></i> - </span><span class="step size-24"> - <i class="icon ion-android-subway"></i> - </span><span class="step size-32"> - <i class="icon ion-android-subway"></i> - </span><span class="step size-48"> - <i class="icon ion-android-subway"></i> - </span><span class="step size-64"> - <i class="icon ion-android-subway"></i> - </span><span class="step size-96"> - <i class="icon ion-android-subway"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-android-subway" /> - - <label>Selectable:</label> - <span class="ion">&#xf3af;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf3af;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f3af" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-android-sunny"></i> - </span><span class="step size-14"> - <i class="icon ion-android-sunny"></i> - </span><span class="step size-16"> - <i class="icon ion-android-sunny"></i> - </span><span class="step size-18"> - <i class="icon ion-android-sunny"></i> - </span><span class="step size-21"> - <i class="icon ion-android-sunny"></i> - </span><span class="step size-24"> - <i class="icon ion-android-sunny"></i> - </span><span class="step size-32"> - <i class="icon ion-android-sunny"></i> - </span><span class="step size-48"> - <i class="icon ion-android-sunny"></i> - </span><span class="step size-64"> - <i class="icon ion-android-sunny"></i> - </span><span class="step size-96"> - <i class="icon ion-android-sunny"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-android-sunny" /> - - <label>Selectable:</label> - <span class="ion">&#xf3b0;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf3b0;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f3b0" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-android-sync"></i> - </span><span class="step size-14"> - <i class="icon ion-android-sync"></i> - </span><span class="step size-16"> - <i class="icon ion-android-sync"></i> - </span><span class="step size-18"> - <i class="icon ion-android-sync"></i> - </span><span class="step size-21"> - <i class="icon ion-android-sync"></i> - </span><span class="step size-24"> - <i class="icon ion-android-sync"></i> - </span><span class="step size-32"> - <i class="icon ion-android-sync"></i> - </span><span class="step size-48"> - <i class="icon ion-android-sync"></i> - </span><span class="step size-64"> - <i class="icon ion-android-sync"></i> - </span><span class="step size-96"> - <i class="icon ion-android-sync"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-android-sync" /> - - <label>Selectable:</label> - <span class="ion">&#xf3b1;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf3b1;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f3b1" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-android-textsms"></i> - </span><span class="step size-14"> - <i class="icon ion-android-textsms"></i> - </span><span class="step size-16"> - <i class="icon ion-android-textsms"></i> - </span><span class="step size-18"> - <i class="icon ion-android-textsms"></i> - </span><span class="step size-21"> - <i class="icon ion-android-textsms"></i> - </span><span class="step size-24"> - <i class="icon ion-android-textsms"></i> - </span><span class="step size-32"> - <i class="icon ion-android-textsms"></i> - </span><span class="step size-48"> - <i class="icon ion-android-textsms"></i> - </span><span class="step size-64"> - <i class="icon ion-android-textsms"></i> - </span><span class="step size-96"> - <i class="icon ion-android-textsms"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-android-textsms" /> - - <label>Selectable:</label> - <span class="ion">&#xf3b2;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf3b2;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f3b2" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-android-time"></i> - </span><span class="step size-14"> - <i class="icon ion-android-time"></i> - </span><span class="step size-16"> - <i class="icon ion-android-time"></i> - </span><span class="step size-18"> - <i class="icon ion-android-time"></i> - </span><span class="step size-21"> - <i class="icon ion-android-time"></i> - </span><span class="step size-24"> - <i class="icon ion-android-time"></i> - </span><span class="step size-32"> - <i class="icon ion-android-time"></i> - </span><span class="step size-48"> - <i class="icon ion-android-time"></i> - </span><span class="step size-64"> - <i class="icon ion-android-time"></i> - </span><span class="step size-96"> - <i class="icon ion-android-time"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-android-time" /> - - <label>Selectable:</label> - <span class="ion">&#xf3b3;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf3b3;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f3b3" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-android-train"></i> - </span><span class="step size-14"> - <i class="icon ion-android-train"></i> - </span><span class="step size-16"> - <i class="icon ion-android-train"></i> - </span><span class="step size-18"> - <i class="icon ion-android-train"></i> - </span><span class="step size-21"> - <i class="icon ion-android-train"></i> - </span><span class="step size-24"> - <i class="icon ion-android-train"></i> - </span><span class="step size-32"> - <i class="icon ion-android-train"></i> - </span><span class="step size-48"> - <i class="icon ion-android-train"></i> - </span><span class="step size-64"> - <i class="icon ion-android-train"></i> - </span><span class="step size-96"> - <i class="icon ion-android-train"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-android-train" /> - - <label>Selectable:</label> - <span class="ion">&#xf3b4;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf3b4;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f3b4" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-android-unlock"></i> - </span><span class="step size-14"> - <i class="icon ion-android-unlock"></i> - </span><span class="step size-16"> - <i class="icon ion-android-unlock"></i> - </span><span class="step size-18"> - <i class="icon ion-android-unlock"></i> - </span><span class="step size-21"> - <i class="icon ion-android-unlock"></i> - </span><span class="step size-24"> - <i class="icon ion-android-unlock"></i> - </span><span class="step size-32"> - <i class="icon ion-android-unlock"></i> - </span><span class="step size-48"> - <i class="icon ion-android-unlock"></i> - </span><span class="step size-64"> - <i class="icon ion-android-unlock"></i> - </span><span class="step size-96"> - <i class="icon ion-android-unlock"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-android-unlock" /> - - <label>Selectable:</label> - <span class="ion">&#xf3b5;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf3b5;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f3b5" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-android-upload"></i> - </span><span class="step size-14"> - <i class="icon ion-android-upload"></i> - </span><span class="step size-16"> - <i class="icon ion-android-upload"></i> - </span><span class="step size-18"> - <i class="icon ion-android-upload"></i> - </span><span class="step size-21"> - <i class="icon ion-android-upload"></i> - </span><span class="step size-24"> - <i class="icon ion-android-upload"></i> - </span><span class="step size-32"> - <i class="icon ion-android-upload"></i> - </span><span class="step size-48"> - <i class="icon ion-android-upload"></i> - </span><span class="step size-64"> - <i class="icon ion-android-upload"></i> - </span><span class="step size-96"> - <i class="icon ion-android-upload"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-android-upload" /> - - <label>Selectable:</label> - <span class="ion">&#xf3b6;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf3b6;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f3b6" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-android-volume-down"></i> - </span><span class="step size-14"> - <i class="icon ion-android-volume-down"></i> - </span><span class="step size-16"> - <i class="icon ion-android-volume-down"></i> - </span><span class="step size-18"> - <i class="icon ion-android-volume-down"></i> - </span><span class="step size-21"> - <i class="icon ion-android-volume-down"></i> - </span><span class="step size-24"> - <i class="icon ion-android-volume-down"></i> - </span><span class="step size-32"> - <i class="icon ion-android-volume-down"></i> - </span><span class="step size-48"> - <i class="icon ion-android-volume-down"></i> - </span><span class="step size-64"> - <i class="icon ion-android-volume-down"></i> - </span><span class="step size-96"> - <i class="icon ion-android-volume-down"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-android-volume-down" /> - - <label>Selectable:</label> - <span class="ion">&#xf3b7;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf3b7;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f3b7" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-android-volume-mute"></i> - </span><span class="step size-14"> - <i class="icon ion-android-volume-mute"></i> - </span><span class="step size-16"> - <i class="icon ion-android-volume-mute"></i> - </span><span class="step size-18"> - <i class="icon ion-android-volume-mute"></i> - </span><span class="step size-21"> - <i class="icon ion-android-volume-mute"></i> - </span><span class="step size-24"> - <i class="icon ion-android-volume-mute"></i> - </span><span class="step size-32"> - <i class="icon ion-android-volume-mute"></i> - </span><span class="step size-48"> - <i class="icon ion-android-volume-mute"></i> - </span><span class="step size-64"> - <i class="icon ion-android-volume-mute"></i> - </span><span class="step size-96"> - <i class="icon ion-android-volume-mute"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-android-volume-mute" /> - - <label>Selectable:</label> - <span class="ion">&#xf3b8;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf3b8;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f3b8" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-android-volume-off"></i> - </span><span class="step size-14"> - <i class="icon ion-android-volume-off"></i> - </span><span class="step size-16"> - <i class="icon ion-android-volume-off"></i> - </span><span class="step size-18"> - <i class="icon ion-android-volume-off"></i> - </span><span class="step size-21"> - <i class="icon ion-android-volume-off"></i> - </span><span class="step size-24"> - <i class="icon ion-android-volume-off"></i> - </span><span class="step size-32"> - <i class="icon ion-android-volume-off"></i> - </span><span class="step size-48"> - <i class="icon ion-android-volume-off"></i> - </span><span class="step size-64"> - <i class="icon ion-android-volume-off"></i> - </span><span class="step size-96"> - <i class="icon ion-android-volume-off"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-android-volume-off" /> - - <label>Selectable:</label> - <span class="ion">&#xf3b9;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf3b9;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f3b9" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-android-volume-up"></i> - </span><span class="step size-14"> - <i class="icon ion-android-volume-up"></i> - </span><span class="step size-16"> - <i class="icon ion-android-volume-up"></i> - </span><span class="step size-18"> - <i class="icon ion-android-volume-up"></i> - </span><span class="step size-21"> - <i class="icon ion-android-volume-up"></i> - </span><span class="step size-24"> - <i class="icon ion-android-volume-up"></i> - </span><span class="step size-32"> - <i class="icon ion-android-volume-up"></i> - </span><span class="step size-48"> - <i class="icon ion-android-volume-up"></i> - </span><span class="step size-64"> - <i class="icon ion-android-volume-up"></i> - </span><span class="step size-96"> - <i class="icon ion-android-volume-up"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-android-volume-up" /> - - <label>Selectable:</label> - <span class="ion">&#xf3ba;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf3ba;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f3ba" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-android-walk"></i> - </span><span class="step size-14"> - <i class="icon ion-android-walk"></i> - </span><span class="step size-16"> - <i class="icon ion-android-walk"></i> - </span><span class="step size-18"> - <i class="icon ion-android-walk"></i> - </span><span class="step size-21"> - <i class="icon ion-android-walk"></i> - </span><span class="step size-24"> - <i class="icon ion-android-walk"></i> - </span><span class="step size-32"> - <i class="icon ion-android-walk"></i> - </span><span class="step size-48"> - <i class="icon ion-android-walk"></i> - </span><span class="step size-64"> - <i class="icon ion-android-walk"></i> - </span><span class="step size-96"> - <i class="icon ion-android-walk"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-android-walk" /> - - <label>Selectable:</label> - <span class="ion">&#xf3bb;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf3bb;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f3bb" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-android-warning"></i> - </span><span class="step size-14"> - <i class="icon ion-android-warning"></i> - </span><span class="step size-16"> - <i class="icon ion-android-warning"></i> - </span><span class="step size-18"> - <i class="icon ion-android-warning"></i> - </span><span class="step size-21"> - <i class="icon ion-android-warning"></i> - </span><span class="step size-24"> - <i class="icon ion-android-warning"></i> - </span><span class="step size-32"> - <i class="icon ion-android-warning"></i> - </span><span class="step size-48"> - <i class="icon ion-android-warning"></i> - </span><span class="step size-64"> - <i class="icon ion-android-warning"></i> - </span><span class="step size-96"> - <i class="icon ion-android-warning"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-android-warning" /> - - <label>Selectable:</label> - <span class="ion">&#xf3bc;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf3bc;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f3bc" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-android-watch"></i> - </span><span class="step size-14"> - <i class="icon ion-android-watch"></i> - </span><span class="step size-16"> - <i class="icon ion-android-watch"></i> - </span><span class="step size-18"> - <i class="icon ion-android-watch"></i> - </span><span class="step size-21"> - <i class="icon ion-android-watch"></i> - </span><span class="step size-24"> - <i class="icon ion-android-watch"></i> - </span><span class="step size-32"> - <i class="icon ion-android-watch"></i> - </span><span class="step size-48"> - <i class="icon ion-android-watch"></i> - </span><span class="step size-64"> - <i class="icon ion-android-watch"></i> - </span><span class="step size-96"> - <i class="icon ion-android-watch"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-android-watch" /> - - <label>Selectable:</label> - <span class="ion">&#xf3bd;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf3bd;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f3bd" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-android-wifi"></i> - </span><span class="step size-14"> - <i class="icon ion-android-wifi"></i> - </span><span class="step size-16"> - <i class="icon ion-android-wifi"></i> - </span><span class="step size-18"> - <i class="icon ion-android-wifi"></i> - </span><span class="step size-21"> - <i class="icon ion-android-wifi"></i> - </span><span class="step size-24"> - <i class="icon ion-android-wifi"></i> - </span><span class="step size-32"> - <i class="icon ion-android-wifi"></i> - </span><span class="step size-48"> - <i class="icon ion-android-wifi"></i> - </span><span class="step size-64"> - <i class="icon ion-android-wifi"></i> - </span><span class="step size-96"> - <i class="icon ion-android-wifi"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-android-wifi" /> - - <label>Selectable:</label> - <span class="ion">&#xf305;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf305;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f305" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-aperture"></i> - </span><span class="step size-14"> - <i class="icon ion-aperture"></i> - </span><span class="step size-16"> - <i class="icon ion-aperture"></i> - </span><span class="step size-18"> - <i class="icon ion-aperture"></i> - </span><span class="step size-21"> - <i class="icon ion-aperture"></i> - </span><span class="step size-24"> - <i class="icon ion-aperture"></i> - </span><span class="step size-32"> - <i class="icon ion-aperture"></i> - </span><span class="step size-48"> - <i class="icon ion-aperture"></i> - </span><span class="step size-64"> - <i class="icon ion-aperture"></i> - </span><span class="step size-96"> - <i class="icon ion-aperture"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-aperture" /> - - <label>Selectable:</label> - <span class="ion">&#xf313;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf313;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f313" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-archive"></i> - </span><span class="step size-14"> - <i class="icon ion-archive"></i> - </span><span class="step size-16"> - <i class="icon ion-archive"></i> - </span><span class="step size-18"> - <i class="icon ion-archive"></i> - </span><span class="step size-21"> - <i class="icon ion-archive"></i> - </span><span class="step size-24"> - <i class="icon ion-archive"></i> - </span><span class="step size-32"> - <i class="icon ion-archive"></i> - </span><span class="step size-48"> - <i class="icon ion-archive"></i> - </span><span class="step size-64"> - <i class="icon ion-archive"></i> - </span><span class="step size-96"> - <i class="icon ion-archive"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-archive" /> - - <label>Selectable:</label> - <span class="ion">&#xf102;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf102;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f102" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-arrow-down-a"></i> - </span><span class="step size-14"> - <i class="icon ion-arrow-down-a"></i> - </span><span class="step size-16"> - <i class="icon ion-arrow-down-a"></i> - </span><span class="step size-18"> - <i class="icon ion-arrow-down-a"></i> - </span><span class="step size-21"> - <i class="icon ion-arrow-down-a"></i> - </span><span class="step size-24"> - <i class="icon ion-arrow-down-a"></i> - </span><span class="step size-32"> - <i class="icon ion-arrow-down-a"></i> - </span><span class="step size-48"> - <i class="icon ion-arrow-down-a"></i> - </span><span class="step size-64"> - <i class="icon ion-arrow-down-a"></i> - </span><span class="step size-96"> - <i class="icon ion-arrow-down-a"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-arrow-down-a" /> - - <label>Selectable:</label> - <span class="ion">&#xf103;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf103;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f103" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-arrow-down-b"></i> - </span><span class="step size-14"> - <i class="icon ion-arrow-down-b"></i> - </span><span class="step size-16"> - <i class="icon ion-arrow-down-b"></i> - </span><span class="step size-18"> - <i class="icon ion-arrow-down-b"></i> - </span><span class="step size-21"> - <i class="icon ion-arrow-down-b"></i> - </span><span class="step size-24"> - <i class="icon ion-arrow-down-b"></i> - </span><span class="step size-32"> - <i class="icon ion-arrow-down-b"></i> - </span><span class="step size-48"> - <i class="icon ion-arrow-down-b"></i> - </span><span class="step size-64"> - <i class="icon ion-arrow-down-b"></i> - </span><span class="step size-96"> - <i class="icon ion-arrow-down-b"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-arrow-down-b" /> - - <label>Selectable:</label> - <span class="ion">&#xf104;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf104;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f104" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-arrow-down-c"></i> - </span><span class="step size-14"> - <i class="icon ion-arrow-down-c"></i> - </span><span class="step size-16"> - <i class="icon ion-arrow-down-c"></i> - </span><span class="step size-18"> - <i class="icon ion-arrow-down-c"></i> - </span><span class="step size-21"> - <i class="icon ion-arrow-down-c"></i> - </span><span class="step size-24"> - <i class="icon ion-arrow-down-c"></i> - </span><span class="step size-32"> - <i class="icon ion-arrow-down-c"></i> - </span><span class="step size-48"> - <i class="icon ion-arrow-down-c"></i> - </span><span class="step size-64"> - <i class="icon ion-arrow-down-c"></i> - </span><span class="step size-96"> - <i class="icon ion-arrow-down-c"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-arrow-down-c" /> - - <label>Selectable:</label> - <span class="ion">&#xf105;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf105;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f105" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-arrow-expand"></i> - </span><span class="step size-14"> - <i class="icon ion-arrow-expand"></i> - </span><span class="step size-16"> - <i class="icon ion-arrow-expand"></i> - </span><span class="step size-18"> - <i class="icon ion-arrow-expand"></i> - </span><span class="step size-21"> - <i class="icon ion-arrow-expand"></i> - </span><span class="step size-24"> - <i class="icon ion-arrow-expand"></i> - </span><span class="step size-32"> - <i class="icon ion-arrow-expand"></i> - </span><span class="step size-48"> - <i class="icon ion-arrow-expand"></i> - </span><span class="step size-64"> - <i class="icon ion-arrow-expand"></i> - </span><span class="step size-96"> - <i class="icon ion-arrow-expand"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-arrow-expand" /> - - <label>Selectable:</label> - <span class="ion">&#xf25e;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf25e;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f25e" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-arrow-graph-down-left"></i> - </span><span class="step size-14"> - <i class="icon ion-arrow-graph-down-left"></i> - </span><span class="step size-16"> - <i class="icon ion-arrow-graph-down-left"></i> - </span><span class="step size-18"> - <i class="icon ion-arrow-graph-down-left"></i> - </span><span class="step size-21"> - <i class="icon ion-arrow-graph-down-left"></i> - </span><span class="step size-24"> - <i class="icon ion-arrow-graph-down-left"></i> - </span><span class="step size-32"> - <i class="icon ion-arrow-graph-down-left"></i> - </span><span class="step size-48"> - <i class="icon ion-arrow-graph-down-left"></i> - </span><span class="step size-64"> - <i class="icon ion-arrow-graph-down-left"></i> - </span><span class="step size-96"> - <i class="icon ion-arrow-graph-down-left"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-arrow-graph-down-left" /> - - <label>Selectable:</label> - <span class="ion">&#xf25f;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf25f;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f25f" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-arrow-graph-down-right"></i> - </span><span class="step size-14"> - <i class="icon ion-arrow-graph-down-right"></i> - </span><span class="step size-16"> - <i class="icon ion-arrow-graph-down-right"></i> - </span><span class="step size-18"> - <i class="icon ion-arrow-graph-down-right"></i> - </span><span class="step size-21"> - <i class="icon ion-arrow-graph-down-right"></i> - </span><span class="step size-24"> - <i class="icon ion-arrow-graph-down-right"></i> - </span><span class="step size-32"> - <i class="icon ion-arrow-graph-down-right"></i> - </span><span class="step size-48"> - <i class="icon ion-arrow-graph-down-right"></i> - </span><span class="step size-64"> - <i class="icon ion-arrow-graph-down-right"></i> - </span><span class="step size-96"> - <i class="icon ion-arrow-graph-down-right"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-arrow-graph-down-right" /> - - <label>Selectable:</label> - <span class="ion">&#xf260;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf260;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f260" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-arrow-graph-up-left"></i> - </span><span class="step size-14"> - <i class="icon ion-arrow-graph-up-left"></i> - </span><span class="step size-16"> - <i class="icon ion-arrow-graph-up-left"></i> - </span><span class="step size-18"> - <i class="icon ion-arrow-graph-up-left"></i> - </span><span class="step size-21"> - <i class="icon ion-arrow-graph-up-left"></i> - </span><span class="step size-24"> - <i class="icon ion-arrow-graph-up-left"></i> - </span><span class="step size-32"> - <i class="icon ion-arrow-graph-up-left"></i> - </span><span class="step size-48"> - <i class="icon ion-arrow-graph-up-left"></i> - </span><span class="step size-64"> - <i class="icon ion-arrow-graph-up-left"></i> - </span><span class="step size-96"> - <i class="icon ion-arrow-graph-up-left"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-arrow-graph-up-left" /> - - <label>Selectable:</label> - <span class="ion">&#xf261;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf261;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f261" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-arrow-graph-up-right"></i> - </span><span class="step size-14"> - <i class="icon ion-arrow-graph-up-right"></i> - </span><span class="step size-16"> - <i class="icon ion-arrow-graph-up-right"></i> - </span><span class="step size-18"> - <i class="icon ion-arrow-graph-up-right"></i> - </span><span class="step size-21"> - <i class="icon ion-arrow-graph-up-right"></i> - </span><span class="step size-24"> - <i class="icon ion-arrow-graph-up-right"></i> - </span><span class="step size-32"> - <i class="icon ion-arrow-graph-up-right"></i> - </span><span class="step size-48"> - <i class="icon ion-arrow-graph-up-right"></i> - </span><span class="step size-64"> - <i class="icon ion-arrow-graph-up-right"></i> - </span><span class="step size-96"> - <i class="icon ion-arrow-graph-up-right"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-arrow-graph-up-right" /> - - <label>Selectable:</label> - <span class="ion">&#xf262;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf262;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f262" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-arrow-left-a"></i> - </span><span class="step size-14"> - <i class="icon ion-arrow-left-a"></i> - </span><span class="step size-16"> - <i class="icon ion-arrow-left-a"></i> - </span><span class="step size-18"> - <i class="icon ion-arrow-left-a"></i> - </span><span class="step size-21"> - <i class="icon ion-arrow-left-a"></i> - </span><span class="step size-24"> - <i class="icon ion-arrow-left-a"></i> - </span><span class="step size-32"> - <i class="icon ion-arrow-left-a"></i> - </span><span class="step size-48"> - <i class="icon ion-arrow-left-a"></i> - </span><span class="step size-64"> - <i class="icon ion-arrow-left-a"></i> - </span><span class="step size-96"> - <i class="icon ion-arrow-left-a"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-arrow-left-a" /> - - <label>Selectable:</label> - <span class="ion">&#xf106;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf106;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f106" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-arrow-left-b"></i> - </span><span class="step size-14"> - <i class="icon ion-arrow-left-b"></i> - </span><span class="step size-16"> - <i class="icon ion-arrow-left-b"></i> - </span><span class="step size-18"> - <i class="icon ion-arrow-left-b"></i> - </span><span class="step size-21"> - <i class="icon ion-arrow-left-b"></i> - </span><span class="step size-24"> - <i class="icon ion-arrow-left-b"></i> - </span><span class="step size-32"> - <i class="icon ion-arrow-left-b"></i> - </span><span class="step size-48"> - <i class="icon ion-arrow-left-b"></i> - </span><span class="step size-64"> - <i class="icon ion-arrow-left-b"></i> - </span><span class="step size-96"> - <i class="icon ion-arrow-left-b"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-arrow-left-b" /> - - <label>Selectable:</label> - <span class="ion">&#xf107;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf107;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f107" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-arrow-left-c"></i> - </span><span class="step size-14"> - <i class="icon ion-arrow-left-c"></i> - </span><span class="step size-16"> - <i class="icon ion-arrow-left-c"></i> - </span><span class="step size-18"> - <i class="icon ion-arrow-left-c"></i> - </span><span class="step size-21"> - <i class="icon ion-arrow-left-c"></i> - </span><span class="step size-24"> - <i class="icon ion-arrow-left-c"></i> - </span><span class="step size-32"> - <i class="icon ion-arrow-left-c"></i> - </span><span class="step size-48"> - <i class="icon ion-arrow-left-c"></i> - </span><span class="step size-64"> - <i class="icon ion-arrow-left-c"></i> - </span><span class="step size-96"> - <i class="icon ion-arrow-left-c"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-arrow-left-c" /> - - <label>Selectable:</label> - <span class="ion">&#xf108;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf108;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f108" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-arrow-move"></i> - </span><span class="step size-14"> - <i class="icon ion-arrow-move"></i> - </span><span class="step size-16"> - <i class="icon ion-arrow-move"></i> - </span><span class="step size-18"> - <i class="icon ion-arrow-move"></i> - </span><span class="step size-21"> - <i class="icon ion-arrow-move"></i> - </span><span class="step size-24"> - <i class="icon ion-arrow-move"></i> - </span><span class="step size-32"> - <i class="icon ion-arrow-move"></i> - </span><span class="step size-48"> - <i class="icon ion-arrow-move"></i> - </span><span class="step size-64"> - <i class="icon ion-arrow-move"></i> - </span><span class="step size-96"> - <i class="icon ion-arrow-move"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-arrow-move" /> - - <label>Selectable:</label> - <span class="ion">&#xf263;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf263;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f263" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-arrow-resize"></i> - </span><span class="step size-14"> - <i class="icon ion-arrow-resize"></i> - </span><span class="step size-16"> - <i class="icon ion-arrow-resize"></i> - </span><span class="step size-18"> - <i class="icon ion-arrow-resize"></i> - </span><span class="step size-21"> - <i class="icon ion-arrow-resize"></i> - </span><span class="step size-24"> - <i class="icon ion-arrow-resize"></i> - </span><span class="step size-32"> - <i class="icon ion-arrow-resize"></i> - </span><span class="step size-48"> - <i class="icon ion-arrow-resize"></i> - </span><span class="step size-64"> - <i class="icon ion-arrow-resize"></i> - </span><span class="step size-96"> - <i class="icon ion-arrow-resize"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-arrow-resize" /> - - <label>Selectable:</label> - <span class="ion">&#xf264;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf264;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f264" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-arrow-return-left"></i> - </span><span class="step size-14"> - <i class="icon ion-arrow-return-left"></i> - </span><span class="step size-16"> - <i class="icon ion-arrow-return-left"></i> - </span><span class="step size-18"> - <i class="icon ion-arrow-return-left"></i> - </span><span class="step size-21"> - <i class="icon ion-arrow-return-left"></i> - </span><span class="step size-24"> - <i class="icon ion-arrow-return-left"></i> - </span><span class="step size-32"> - <i class="icon ion-arrow-return-left"></i> - </span><span class="step size-48"> - <i class="icon ion-arrow-return-left"></i> - </span><span class="step size-64"> - <i class="icon ion-arrow-return-left"></i> - </span><span class="step size-96"> - <i class="icon ion-arrow-return-left"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-arrow-return-left" /> - - <label>Selectable:</label> - <span class="ion">&#xf265;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf265;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f265" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-arrow-return-right"></i> - </span><span class="step size-14"> - <i class="icon ion-arrow-return-right"></i> - </span><span class="step size-16"> - <i class="icon ion-arrow-return-right"></i> - </span><span class="step size-18"> - <i class="icon ion-arrow-return-right"></i> - </span><span class="step size-21"> - <i class="icon ion-arrow-return-right"></i> - </span><span class="step size-24"> - <i class="icon ion-arrow-return-right"></i> - </span><span class="step size-32"> - <i class="icon ion-arrow-return-right"></i> - </span><span class="step size-48"> - <i class="icon ion-arrow-return-right"></i> - </span><span class="step size-64"> - <i class="icon ion-arrow-return-right"></i> - </span><span class="step size-96"> - <i class="icon ion-arrow-return-right"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-arrow-return-right" /> - - <label>Selectable:</label> - <span class="ion">&#xf266;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf266;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f266" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-arrow-right-a"></i> - </span><span class="step size-14"> - <i class="icon ion-arrow-right-a"></i> - </span><span class="step size-16"> - <i class="icon ion-arrow-right-a"></i> - </span><span class="step size-18"> - <i class="icon ion-arrow-right-a"></i> - </span><span class="step size-21"> - <i class="icon ion-arrow-right-a"></i> - </span><span class="step size-24"> - <i class="icon ion-arrow-right-a"></i> - </span><span class="step size-32"> - <i class="icon ion-arrow-right-a"></i> - </span><span class="step size-48"> - <i class="icon ion-arrow-right-a"></i> - </span><span class="step size-64"> - <i class="icon ion-arrow-right-a"></i> - </span><span class="step size-96"> - <i class="icon ion-arrow-right-a"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-arrow-right-a" /> - - <label>Selectable:</label> - <span class="ion">&#xf109;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf109;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f109" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-arrow-right-b"></i> - </span><span class="step size-14"> - <i class="icon ion-arrow-right-b"></i> - </span><span class="step size-16"> - <i class="icon ion-arrow-right-b"></i> - </span><span class="step size-18"> - <i class="icon ion-arrow-right-b"></i> - </span><span class="step size-21"> - <i class="icon ion-arrow-right-b"></i> - </span><span class="step size-24"> - <i class="icon ion-arrow-right-b"></i> - </span><span class="step size-32"> - <i class="icon ion-arrow-right-b"></i> - </span><span class="step size-48"> - <i class="icon ion-arrow-right-b"></i> - </span><span class="step size-64"> - <i class="icon ion-arrow-right-b"></i> - </span><span class="step size-96"> - <i class="icon ion-arrow-right-b"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-arrow-right-b" /> - - <label>Selectable:</label> - <span class="ion">&#xf10a;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf10a;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f10a" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-arrow-right-c"></i> - </span><span class="step size-14"> - <i class="icon ion-arrow-right-c"></i> - </span><span class="step size-16"> - <i class="icon ion-arrow-right-c"></i> - </span><span class="step size-18"> - <i class="icon ion-arrow-right-c"></i> - </span><span class="step size-21"> - <i class="icon ion-arrow-right-c"></i> - </span><span class="step size-24"> - <i class="icon ion-arrow-right-c"></i> - </span><span class="step size-32"> - <i class="icon ion-arrow-right-c"></i> - </span><span class="step size-48"> - <i class="icon ion-arrow-right-c"></i> - </span><span class="step size-64"> - <i class="icon ion-arrow-right-c"></i> - </span><span class="step size-96"> - <i class="icon ion-arrow-right-c"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-arrow-right-c" /> - - <label>Selectable:</label> - <span class="ion">&#xf10b;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf10b;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f10b" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-arrow-shrink"></i> - </span><span class="step size-14"> - <i class="icon ion-arrow-shrink"></i> - </span><span class="step size-16"> - <i class="icon ion-arrow-shrink"></i> - </span><span class="step size-18"> - <i class="icon ion-arrow-shrink"></i> - </span><span class="step size-21"> - <i class="icon ion-arrow-shrink"></i> - </span><span class="step size-24"> - <i class="icon ion-arrow-shrink"></i> - </span><span class="step size-32"> - <i class="icon ion-arrow-shrink"></i> - </span><span class="step size-48"> - <i class="icon ion-arrow-shrink"></i> - </span><span class="step size-64"> - <i class="icon ion-arrow-shrink"></i> - </span><span class="step size-96"> - <i class="icon ion-arrow-shrink"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-arrow-shrink" /> - - <label>Selectable:</label> - <span class="ion">&#xf267;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf267;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f267" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-arrow-swap"></i> - </span><span class="step size-14"> - <i class="icon ion-arrow-swap"></i> - </span><span class="step size-16"> - <i class="icon ion-arrow-swap"></i> - </span><span class="step size-18"> - <i class="icon ion-arrow-swap"></i> - </span><span class="step size-21"> - <i class="icon ion-arrow-swap"></i> - </span><span class="step size-24"> - <i class="icon ion-arrow-swap"></i> - </span><span class="step size-32"> - <i class="icon ion-arrow-swap"></i> - </span><span class="step size-48"> - <i class="icon ion-arrow-swap"></i> - </span><span class="step size-64"> - <i class="icon ion-arrow-swap"></i> - </span><span class="step size-96"> - <i class="icon ion-arrow-swap"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-arrow-swap" /> - - <label>Selectable:</label> - <span class="ion">&#xf268;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf268;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f268" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-arrow-up-a"></i> - </span><span class="step size-14"> - <i class="icon ion-arrow-up-a"></i> - </span><span class="step size-16"> - <i class="icon ion-arrow-up-a"></i> - </span><span class="step size-18"> - <i class="icon ion-arrow-up-a"></i> - </span><span class="step size-21"> - <i class="icon ion-arrow-up-a"></i> - </span><span class="step size-24"> - <i class="icon ion-arrow-up-a"></i> - </span><span class="step size-32"> - <i class="icon ion-arrow-up-a"></i> - </span><span class="step size-48"> - <i class="icon ion-arrow-up-a"></i> - </span><span class="step size-64"> - <i class="icon ion-arrow-up-a"></i> - </span><span class="step size-96"> - <i class="icon ion-arrow-up-a"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-arrow-up-a" /> - - <label>Selectable:</label> - <span class="ion">&#xf10c;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf10c;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f10c" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-arrow-up-b"></i> - </span><span class="step size-14"> - <i class="icon ion-arrow-up-b"></i> - </span><span class="step size-16"> - <i class="icon ion-arrow-up-b"></i> - </span><span class="step size-18"> - <i class="icon ion-arrow-up-b"></i> - </span><span class="step size-21"> - <i class="icon ion-arrow-up-b"></i> - </span><span class="step size-24"> - <i class="icon ion-arrow-up-b"></i> - </span><span class="step size-32"> - <i class="icon ion-arrow-up-b"></i> - </span><span class="step size-48"> - <i class="icon ion-arrow-up-b"></i> - </span><span class="step size-64"> - <i class="icon ion-arrow-up-b"></i> - </span><span class="step size-96"> - <i class="icon ion-arrow-up-b"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-arrow-up-b" /> - - <label>Selectable:</label> - <span class="ion">&#xf10d;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf10d;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f10d" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-arrow-up-c"></i> - </span><span class="step size-14"> - <i class="icon ion-arrow-up-c"></i> - </span><span class="step size-16"> - <i class="icon ion-arrow-up-c"></i> - </span><span class="step size-18"> - <i class="icon ion-arrow-up-c"></i> - </span><span class="step size-21"> - <i class="icon ion-arrow-up-c"></i> - </span><span class="step size-24"> - <i class="icon ion-arrow-up-c"></i> - </span><span class="step size-32"> - <i class="icon ion-arrow-up-c"></i> - </span><span class="step size-48"> - <i class="icon ion-arrow-up-c"></i> - </span><span class="step size-64"> - <i class="icon ion-arrow-up-c"></i> - </span><span class="step size-96"> - <i class="icon ion-arrow-up-c"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-arrow-up-c" /> - - <label>Selectable:</label> - <span class="ion">&#xf10e;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf10e;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f10e" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-asterisk"></i> - </span><span class="step size-14"> - <i class="icon ion-asterisk"></i> - </span><span class="step size-16"> - <i class="icon ion-asterisk"></i> - </span><span class="step size-18"> - <i class="icon ion-asterisk"></i> - </span><span class="step size-21"> - <i class="icon ion-asterisk"></i> - </span><span class="step size-24"> - <i class="icon ion-asterisk"></i> - </span><span class="step size-32"> - <i class="icon ion-asterisk"></i> - </span><span class="step size-48"> - <i class="icon ion-asterisk"></i> - </span><span class="step size-64"> - <i class="icon ion-asterisk"></i> - </span><span class="step size-96"> - <i class="icon ion-asterisk"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-asterisk" /> - - <label>Selectable:</label> - <span class="ion">&#xf314;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf314;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f314" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-at"></i> - </span><span class="step size-14"> - <i class="icon ion-at"></i> - </span><span class="step size-16"> - <i class="icon ion-at"></i> - </span><span class="step size-18"> - <i class="icon ion-at"></i> - </span><span class="step size-21"> - <i class="icon ion-at"></i> - </span><span class="step size-24"> - <i class="icon ion-at"></i> - </span><span class="step size-32"> - <i class="icon ion-at"></i> - </span><span class="step size-48"> - <i class="icon ion-at"></i> - </span><span class="step size-64"> - <i class="icon ion-at"></i> - </span><span class="step size-96"> - <i class="icon ion-at"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-at" /> - - <label>Selectable:</label> - <span class="ion">&#xf10f;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf10f;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f10f" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-backspace"></i> - </span><span class="step size-14"> - <i class="icon ion-backspace"></i> - </span><span class="step size-16"> - <i class="icon ion-backspace"></i> - </span><span class="step size-18"> - <i class="icon ion-backspace"></i> - </span><span class="step size-21"> - <i class="icon ion-backspace"></i> - </span><span class="step size-24"> - <i class="icon ion-backspace"></i> - </span><span class="step size-32"> - <i class="icon ion-backspace"></i> - </span><span class="step size-48"> - <i class="icon ion-backspace"></i> - </span><span class="step size-64"> - <i class="icon ion-backspace"></i> - </span><span class="step size-96"> - <i class="icon ion-backspace"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-backspace" /> - - <label>Selectable:</label> - <span class="ion">&#xf3bf;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf3bf;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f3bf" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-backspace-outline"></i> - </span><span class="step size-14"> - <i class="icon ion-backspace-outline"></i> - </span><span class="step size-16"> - <i class="icon ion-backspace-outline"></i> - </span><span class="step size-18"> - <i class="icon ion-backspace-outline"></i> - </span><span class="step size-21"> - <i class="icon ion-backspace-outline"></i> - </span><span class="step size-24"> - <i class="icon ion-backspace-outline"></i> - </span><span class="step size-32"> - <i class="icon ion-backspace-outline"></i> - </span><span class="step size-48"> - <i class="icon ion-backspace-outline"></i> - </span><span class="step size-64"> - <i class="icon ion-backspace-outline"></i> - </span><span class="step size-96"> - <i class="icon ion-backspace-outline"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-backspace-outline" /> - - <label>Selectable:</label> - <span class="ion">&#xf3be;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf3be;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f3be" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-bag"></i> - </span><span class="step size-14"> - <i class="icon ion-bag"></i> - </span><span class="step size-16"> - <i class="icon ion-bag"></i> - </span><span class="step size-18"> - <i class="icon ion-bag"></i> - </span><span class="step size-21"> - <i class="icon ion-bag"></i> - </span><span class="step size-24"> - <i class="icon ion-bag"></i> - </span><span class="step size-32"> - <i class="icon ion-bag"></i> - </span><span class="step size-48"> - <i class="icon ion-bag"></i> - </span><span class="step size-64"> - <i class="icon ion-bag"></i> - </span><span class="step size-96"> - <i class="icon ion-bag"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-bag" /> - - <label>Selectable:</label> - <span class="ion">&#xf110;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf110;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f110" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-battery-charging"></i> - </span><span class="step size-14"> - <i class="icon ion-battery-charging"></i> - </span><span class="step size-16"> - <i class="icon ion-battery-charging"></i> - </span><span class="step size-18"> - <i class="icon ion-battery-charging"></i> - </span><span class="step size-21"> - <i class="icon ion-battery-charging"></i> - </span><span class="step size-24"> - <i class="icon ion-battery-charging"></i> - </span><span class="step size-32"> - <i class="icon ion-battery-charging"></i> - </span><span class="step size-48"> - <i class="icon ion-battery-charging"></i> - </span><span class="step size-64"> - <i class="icon ion-battery-charging"></i> - </span><span class="step size-96"> - <i class="icon ion-battery-charging"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-battery-charging" /> - - <label>Selectable:</label> - <span class="ion">&#xf111;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf111;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f111" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-battery-empty"></i> - </span><span class="step size-14"> - <i class="icon ion-battery-empty"></i> - </span><span class="step size-16"> - <i class="icon ion-battery-empty"></i> - </span><span class="step size-18"> - <i class="icon ion-battery-empty"></i> - </span><span class="step size-21"> - <i class="icon ion-battery-empty"></i> - </span><span class="step size-24"> - <i class="icon ion-battery-empty"></i> - </span><span class="step size-32"> - <i class="icon ion-battery-empty"></i> - </span><span class="step size-48"> - <i class="icon ion-battery-empty"></i> - </span><span class="step size-64"> - <i class="icon ion-battery-empty"></i> - </span><span class="step size-96"> - <i class="icon ion-battery-empty"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-battery-empty" /> - - <label>Selectable:</label> - <span class="ion">&#xf112;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf112;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f112" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-battery-full"></i> - </span><span class="step size-14"> - <i class="icon ion-battery-full"></i> - </span><span class="step size-16"> - <i class="icon ion-battery-full"></i> - </span><span class="step size-18"> - <i class="icon ion-battery-full"></i> - </span><span class="step size-21"> - <i class="icon ion-battery-full"></i> - </span><span class="step size-24"> - <i class="icon ion-battery-full"></i> - </span><span class="step size-32"> - <i class="icon ion-battery-full"></i> - </span><span class="step size-48"> - <i class="icon ion-battery-full"></i> - </span><span class="step size-64"> - <i class="icon ion-battery-full"></i> - </span><span class="step size-96"> - <i class="icon ion-battery-full"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-battery-full" /> - - <label>Selectable:</label> - <span class="ion">&#xf113;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf113;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f113" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-battery-half"></i> - </span><span class="step size-14"> - <i class="icon ion-battery-half"></i> - </span><span class="step size-16"> - <i class="icon ion-battery-half"></i> - </span><span class="step size-18"> - <i class="icon ion-battery-half"></i> - </span><span class="step size-21"> - <i class="icon ion-battery-half"></i> - </span><span class="step size-24"> - <i class="icon ion-battery-half"></i> - </span><span class="step size-32"> - <i class="icon ion-battery-half"></i> - </span><span class="step size-48"> - <i class="icon ion-battery-half"></i> - </span><span class="step size-64"> - <i class="icon ion-battery-half"></i> - </span><span class="step size-96"> - <i class="icon ion-battery-half"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-battery-half" /> - - <label>Selectable:</label> - <span class="ion">&#xf114;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf114;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f114" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-battery-low"></i> - </span><span class="step size-14"> - <i class="icon ion-battery-low"></i> - </span><span class="step size-16"> - <i class="icon ion-battery-low"></i> - </span><span class="step size-18"> - <i class="icon ion-battery-low"></i> - </span><span class="step size-21"> - <i class="icon ion-battery-low"></i> - </span><span class="step size-24"> - <i class="icon ion-battery-low"></i> - </span><span class="step size-32"> - <i class="icon ion-battery-low"></i> - </span><span class="step size-48"> - <i class="icon ion-battery-low"></i> - </span><span class="step size-64"> - <i class="icon ion-battery-low"></i> - </span><span class="step size-96"> - <i class="icon ion-battery-low"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-battery-low" /> - - <label>Selectable:</label> - <span class="ion">&#xf115;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf115;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f115" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-beaker"></i> - </span><span class="step size-14"> - <i class="icon ion-beaker"></i> - </span><span class="step size-16"> - <i class="icon ion-beaker"></i> - </span><span class="step size-18"> - <i class="icon ion-beaker"></i> - </span><span class="step size-21"> - <i class="icon ion-beaker"></i> - </span><span class="step size-24"> - <i class="icon ion-beaker"></i> - </span><span class="step size-32"> - <i class="icon ion-beaker"></i> - </span><span class="step size-48"> - <i class="icon ion-beaker"></i> - </span><span class="step size-64"> - <i class="icon ion-beaker"></i> - </span><span class="step size-96"> - <i class="icon ion-beaker"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-beaker" /> - - <label>Selectable:</label> - <span class="ion">&#xf269;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf269;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f269" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-beer"></i> - </span><span class="step size-14"> - <i class="icon ion-beer"></i> - </span><span class="step size-16"> - <i class="icon ion-beer"></i> - </span><span class="step size-18"> - <i class="icon ion-beer"></i> - </span><span class="step size-21"> - <i class="icon ion-beer"></i> - </span><span class="step size-24"> - <i class="icon ion-beer"></i> - </span><span class="step size-32"> - <i class="icon ion-beer"></i> - </span><span class="step size-48"> - <i class="icon ion-beer"></i> - </span><span class="step size-64"> - <i class="icon ion-beer"></i> - </span><span class="step size-96"> - <i class="icon ion-beer"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-beer" /> - - <label>Selectable:</label> - <span class="ion">&#xf26a;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf26a;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f26a" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-bluetooth"></i> - </span><span class="step size-14"> - <i class="icon ion-bluetooth"></i> - </span><span class="step size-16"> - <i class="icon ion-bluetooth"></i> - </span><span class="step size-18"> - <i class="icon ion-bluetooth"></i> - </span><span class="step size-21"> - <i class="icon ion-bluetooth"></i> - </span><span class="step size-24"> - <i class="icon ion-bluetooth"></i> - </span><span class="step size-32"> - <i class="icon ion-bluetooth"></i> - </span><span class="step size-48"> - <i class="icon ion-bluetooth"></i> - </span><span class="step size-64"> - <i class="icon ion-bluetooth"></i> - </span><span class="step size-96"> - <i class="icon ion-bluetooth"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-bluetooth" /> - - <label>Selectable:</label> - <span class="ion">&#xf116;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf116;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f116" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-bonfire"></i> - </span><span class="step size-14"> - <i class="icon ion-bonfire"></i> - </span><span class="step size-16"> - <i class="icon ion-bonfire"></i> - </span><span class="step size-18"> - <i class="icon ion-bonfire"></i> - </span><span class="step size-21"> - <i class="icon ion-bonfire"></i> - </span><span class="step size-24"> - <i class="icon ion-bonfire"></i> - </span><span class="step size-32"> - <i class="icon ion-bonfire"></i> - </span><span class="step size-48"> - <i class="icon ion-bonfire"></i> - </span><span class="step size-64"> - <i class="icon ion-bonfire"></i> - </span><span class="step size-96"> - <i class="icon ion-bonfire"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-bonfire" /> - - <label>Selectable:</label> - <span class="ion">&#xf315;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf315;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f315" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-bookmark"></i> - </span><span class="step size-14"> - <i class="icon ion-bookmark"></i> - </span><span class="step size-16"> - <i class="icon ion-bookmark"></i> - </span><span class="step size-18"> - <i class="icon ion-bookmark"></i> - </span><span class="step size-21"> - <i class="icon ion-bookmark"></i> - </span><span class="step size-24"> - <i class="icon ion-bookmark"></i> - </span><span class="step size-32"> - <i class="icon ion-bookmark"></i> - </span><span class="step size-48"> - <i class="icon ion-bookmark"></i> - </span><span class="step size-64"> - <i class="icon ion-bookmark"></i> - </span><span class="step size-96"> - <i class="icon ion-bookmark"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-bookmark" /> - - <label>Selectable:</label> - <span class="ion">&#xf26b;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf26b;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f26b" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-bowtie"></i> - </span><span class="step size-14"> - <i class="icon ion-bowtie"></i> - </span><span class="step size-16"> - <i class="icon ion-bowtie"></i> - </span><span class="step size-18"> - <i class="icon ion-bowtie"></i> - </span><span class="step size-21"> - <i class="icon ion-bowtie"></i> - </span><span class="step size-24"> - <i class="icon ion-bowtie"></i> - </span><span class="step size-32"> - <i class="icon ion-bowtie"></i> - </span><span class="step size-48"> - <i class="icon ion-bowtie"></i> - </span><span class="step size-64"> - <i class="icon ion-bowtie"></i> - </span><span class="step size-96"> - <i class="icon ion-bowtie"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-bowtie" /> - - <label>Selectable:</label> - <span class="ion">&#xf3c0;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf3c0;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f3c0" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-briefcase"></i> - </span><span class="step size-14"> - <i class="icon ion-briefcase"></i> - </span><span class="step size-16"> - <i class="icon ion-briefcase"></i> - </span><span class="step size-18"> - <i class="icon ion-briefcase"></i> - </span><span class="step size-21"> - <i class="icon ion-briefcase"></i> - </span><span class="step size-24"> - <i class="icon ion-briefcase"></i> - </span><span class="step size-32"> - <i class="icon ion-briefcase"></i> - </span><span class="step size-48"> - <i class="icon ion-briefcase"></i> - </span><span class="step size-64"> - <i class="icon ion-briefcase"></i> - </span><span class="step size-96"> - <i class="icon ion-briefcase"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-briefcase" /> - - <label>Selectable:</label> - <span class="ion">&#xf26c;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf26c;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f26c" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-bug"></i> - </span><span class="step size-14"> - <i class="icon ion-bug"></i> - </span><span class="step size-16"> - <i class="icon ion-bug"></i> - </span><span class="step size-18"> - <i class="icon ion-bug"></i> - </span><span class="step size-21"> - <i class="icon ion-bug"></i> - </span><span class="step size-24"> - <i class="icon ion-bug"></i> - </span><span class="step size-32"> - <i class="icon ion-bug"></i> - </span><span class="step size-48"> - <i class="icon ion-bug"></i> - </span><span class="step size-64"> - <i class="icon ion-bug"></i> - </span><span class="step size-96"> - <i class="icon ion-bug"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-bug" /> - - <label>Selectable:</label> - <span class="ion">&#xf2be;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf2be;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f2be" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-calculator"></i> - </span><span class="step size-14"> - <i class="icon ion-calculator"></i> - </span><span class="step size-16"> - <i class="icon ion-calculator"></i> - </span><span class="step size-18"> - <i class="icon ion-calculator"></i> - </span><span class="step size-21"> - <i class="icon ion-calculator"></i> - </span><span class="step size-24"> - <i class="icon ion-calculator"></i> - </span><span class="step size-32"> - <i class="icon ion-calculator"></i> - </span><span class="step size-48"> - <i class="icon ion-calculator"></i> - </span><span class="step size-64"> - <i class="icon ion-calculator"></i> - </span><span class="step size-96"> - <i class="icon ion-calculator"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-calculator" /> - - <label>Selectable:</label> - <span class="ion">&#xf26d;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf26d;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f26d" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-calendar"></i> - </span><span class="step size-14"> - <i class="icon ion-calendar"></i> - </span><span class="step size-16"> - <i class="icon ion-calendar"></i> - </span><span class="step size-18"> - <i class="icon ion-calendar"></i> - </span><span class="step size-21"> - <i class="icon ion-calendar"></i> - </span><span class="step size-24"> - <i class="icon ion-calendar"></i> - </span><span class="step size-32"> - <i class="icon ion-calendar"></i> - </span><span class="step size-48"> - <i class="icon ion-calendar"></i> - </span><span class="step size-64"> - <i class="icon ion-calendar"></i> - </span><span class="step size-96"> - <i class="icon ion-calendar"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-calendar" /> - - <label>Selectable:</label> - <span class="ion">&#xf117;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf117;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f117" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-camera"></i> - </span><span class="step size-14"> - <i class="icon ion-camera"></i> - </span><span class="step size-16"> - <i class="icon ion-camera"></i> - </span><span class="step size-18"> - <i class="icon ion-camera"></i> - </span><span class="step size-21"> - <i class="icon ion-camera"></i> - </span><span class="step size-24"> - <i class="icon ion-camera"></i> - </span><span class="step size-32"> - <i class="icon ion-camera"></i> - </span><span class="step size-48"> - <i class="icon ion-camera"></i> - </span><span class="step size-64"> - <i class="icon ion-camera"></i> - </span><span class="step size-96"> - <i class="icon ion-camera"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-camera" /> - - <label>Selectable:</label> - <span class="ion">&#xf118;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf118;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f118" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-card"></i> - </span><span class="step size-14"> - <i class="icon ion-card"></i> - </span><span class="step size-16"> - <i class="icon ion-card"></i> - </span><span class="step size-18"> - <i class="icon ion-card"></i> - </span><span class="step size-21"> - <i class="icon ion-card"></i> - </span><span class="step size-24"> - <i class="icon ion-card"></i> - </span><span class="step size-32"> - <i class="icon ion-card"></i> - </span><span class="step size-48"> - <i class="icon ion-card"></i> - </span><span class="step size-64"> - <i class="icon ion-card"></i> - </span><span class="step size-96"> - <i class="icon ion-card"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-card" /> - - <label>Selectable:</label> - <span class="ion">&#xf119;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf119;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f119" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-cash"></i> - </span><span class="step size-14"> - <i class="icon ion-cash"></i> - </span><span class="step size-16"> - <i class="icon ion-cash"></i> - </span><span class="step size-18"> - <i class="icon ion-cash"></i> - </span><span class="step size-21"> - <i class="icon ion-cash"></i> - </span><span class="step size-24"> - <i class="icon ion-cash"></i> - </span><span class="step size-32"> - <i class="icon ion-cash"></i> - </span><span class="step size-48"> - <i class="icon ion-cash"></i> - </span><span class="step size-64"> - <i class="icon ion-cash"></i> - </span><span class="step size-96"> - <i class="icon ion-cash"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-cash" /> - - <label>Selectable:</label> - <span class="ion">&#xf316;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf316;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f316" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-chatbox"></i> - </span><span class="step size-14"> - <i class="icon ion-chatbox"></i> - </span><span class="step size-16"> - <i class="icon ion-chatbox"></i> - </span><span class="step size-18"> - <i class="icon ion-chatbox"></i> - </span><span class="step size-21"> - <i class="icon ion-chatbox"></i> - </span><span class="step size-24"> - <i class="icon ion-chatbox"></i> - </span><span class="step size-32"> - <i class="icon ion-chatbox"></i> - </span><span class="step size-48"> - <i class="icon ion-chatbox"></i> - </span><span class="step size-64"> - <i class="icon ion-chatbox"></i> - </span><span class="step size-96"> - <i class="icon ion-chatbox"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-chatbox" /> - - <label>Selectable:</label> - <span class="ion">&#xf11b;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf11b;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f11b" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-chatbox-working"></i> - </span><span class="step size-14"> - <i class="icon ion-chatbox-working"></i> - </span><span class="step size-16"> - <i class="icon ion-chatbox-working"></i> - </span><span class="step size-18"> - <i class="icon ion-chatbox-working"></i> - </span><span class="step size-21"> - <i class="icon ion-chatbox-working"></i> - </span><span class="step size-24"> - <i class="icon ion-chatbox-working"></i> - </span><span class="step size-32"> - <i class="icon ion-chatbox-working"></i> - </span><span class="step size-48"> - <i class="icon ion-chatbox-working"></i> - </span><span class="step size-64"> - <i class="icon ion-chatbox-working"></i> - </span><span class="step size-96"> - <i class="icon ion-chatbox-working"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-chatbox-working" /> - - <label>Selectable:</label> - <span class="ion">&#xf11a;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf11a;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f11a" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-chatboxes"></i> - </span><span class="step size-14"> - <i class="icon ion-chatboxes"></i> - </span><span class="step size-16"> - <i class="icon ion-chatboxes"></i> - </span><span class="step size-18"> - <i class="icon ion-chatboxes"></i> - </span><span class="step size-21"> - <i class="icon ion-chatboxes"></i> - </span><span class="step size-24"> - <i class="icon ion-chatboxes"></i> - </span><span class="step size-32"> - <i class="icon ion-chatboxes"></i> - </span><span class="step size-48"> - <i class="icon ion-chatboxes"></i> - </span><span class="step size-64"> - <i class="icon ion-chatboxes"></i> - </span><span class="step size-96"> - <i class="icon ion-chatboxes"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-chatboxes" /> - - <label>Selectable:</label> - <span class="ion">&#xf11c;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf11c;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f11c" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-chatbubble"></i> - </span><span class="step size-14"> - <i class="icon ion-chatbubble"></i> - </span><span class="step size-16"> - <i class="icon ion-chatbubble"></i> - </span><span class="step size-18"> - <i class="icon ion-chatbubble"></i> - </span><span class="step size-21"> - <i class="icon ion-chatbubble"></i> - </span><span class="step size-24"> - <i class="icon ion-chatbubble"></i> - </span><span class="step size-32"> - <i class="icon ion-chatbubble"></i> - </span><span class="step size-48"> - <i class="icon ion-chatbubble"></i> - </span><span class="step size-64"> - <i class="icon ion-chatbubble"></i> - </span><span class="step size-96"> - <i class="icon ion-chatbubble"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-chatbubble" /> - - <label>Selectable:</label> - <span class="ion">&#xf11e;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf11e;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f11e" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-chatbubble-working"></i> - </span><span class="step size-14"> - <i class="icon ion-chatbubble-working"></i> - </span><span class="step size-16"> - <i class="icon ion-chatbubble-working"></i> - </span><span class="step size-18"> - <i class="icon ion-chatbubble-working"></i> - </span><span class="step size-21"> - <i class="icon ion-chatbubble-working"></i> - </span><span class="step size-24"> - <i class="icon ion-chatbubble-working"></i> - </span><span class="step size-32"> - <i class="icon ion-chatbubble-working"></i> - </span><span class="step size-48"> - <i class="icon ion-chatbubble-working"></i> - </span><span class="step size-64"> - <i class="icon ion-chatbubble-working"></i> - </span><span class="step size-96"> - <i class="icon ion-chatbubble-working"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-chatbubble-working" /> - - <label>Selectable:</label> - <span class="ion">&#xf11d;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf11d;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f11d" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-chatbubbles"></i> - </span><span class="step size-14"> - <i class="icon ion-chatbubbles"></i> - </span><span class="step size-16"> - <i class="icon ion-chatbubbles"></i> - </span><span class="step size-18"> - <i class="icon ion-chatbubbles"></i> - </span><span class="step size-21"> - <i class="icon ion-chatbubbles"></i> - </span><span class="step size-24"> - <i class="icon ion-chatbubbles"></i> - </span><span class="step size-32"> - <i class="icon ion-chatbubbles"></i> - </span><span class="step size-48"> - <i class="icon ion-chatbubbles"></i> - </span><span class="step size-64"> - <i class="icon ion-chatbubbles"></i> - </span><span class="step size-96"> - <i class="icon ion-chatbubbles"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-chatbubbles" /> - - <label>Selectable:</label> - <span class="ion">&#xf11f;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf11f;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f11f" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-checkmark"></i> - </span><span class="step size-14"> - <i class="icon ion-checkmark"></i> - </span><span class="step size-16"> - <i class="icon ion-checkmark"></i> - </span><span class="step size-18"> - <i class="icon ion-checkmark"></i> - </span><span class="step size-21"> - <i class="icon ion-checkmark"></i> - </span><span class="step size-24"> - <i class="icon ion-checkmark"></i> - </span><span class="step size-32"> - <i class="icon ion-checkmark"></i> - </span><span class="step size-48"> - <i class="icon ion-checkmark"></i> - </span><span class="step size-64"> - <i class="icon ion-checkmark"></i> - </span><span class="step size-96"> - <i class="icon ion-checkmark"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-checkmark" /> - - <label>Selectable:</label> - <span class="ion">&#xf122;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf122;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f122" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-checkmark-circled"></i> - </span><span class="step size-14"> - <i class="icon ion-checkmark-circled"></i> - </span><span class="step size-16"> - <i class="icon ion-checkmark-circled"></i> - </span><span class="step size-18"> - <i class="icon ion-checkmark-circled"></i> - </span><span class="step size-21"> - <i class="icon ion-checkmark-circled"></i> - </span><span class="step size-24"> - <i class="icon ion-checkmark-circled"></i> - </span><span class="step size-32"> - <i class="icon ion-checkmark-circled"></i> - </span><span class="step size-48"> - <i class="icon ion-checkmark-circled"></i> - </span><span class="step size-64"> - <i class="icon ion-checkmark-circled"></i> - </span><span class="step size-96"> - <i class="icon ion-checkmark-circled"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-checkmark-circled" /> - - <label>Selectable:</label> - <span class="ion">&#xf120;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf120;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f120" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-checkmark-round"></i> - </span><span class="step size-14"> - <i class="icon ion-checkmark-round"></i> - </span><span class="step size-16"> - <i class="icon ion-checkmark-round"></i> - </span><span class="step size-18"> - <i class="icon ion-checkmark-round"></i> - </span><span class="step size-21"> - <i class="icon ion-checkmark-round"></i> - </span><span class="step size-24"> - <i class="icon ion-checkmark-round"></i> - </span><span class="step size-32"> - <i class="icon ion-checkmark-round"></i> - </span><span class="step size-48"> - <i class="icon ion-checkmark-round"></i> - </span><span class="step size-64"> - <i class="icon ion-checkmark-round"></i> - </span><span class="step size-96"> - <i class="icon ion-checkmark-round"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-checkmark-round" /> - - <label>Selectable:</label> - <span class="ion">&#xf121;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf121;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f121" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-chevron-down"></i> - </span><span class="step size-14"> - <i class="icon ion-chevron-down"></i> - </span><span class="step size-16"> - <i class="icon ion-chevron-down"></i> - </span><span class="step size-18"> - <i class="icon ion-chevron-down"></i> - </span><span class="step size-21"> - <i class="icon ion-chevron-down"></i> - </span><span class="step size-24"> - <i class="icon ion-chevron-down"></i> - </span><span class="step size-32"> - <i class="icon ion-chevron-down"></i> - </span><span class="step size-48"> - <i class="icon ion-chevron-down"></i> - </span><span class="step size-64"> - <i class="icon ion-chevron-down"></i> - </span><span class="step size-96"> - <i class="icon ion-chevron-down"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-chevron-down" /> - - <label>Selectable:</label> - <span class="ion">&#xf123;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf123;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f123" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-chevron-left"></i> - </span><span class="step size-14"> - <i class="icon ion-chevron-left"></i> - </span><span class="step size-16"> - <i class="icon ion-chevron-left"></i> - </span><span class="step size-18"> - <i class="icon ion-chevron-left"></i> - </span><span class="step size-21"> - <i class="icon ion-chevron-left"></i> - </span><span class="step size-24"> - <i class="icon ion-chevron-left"></i> - </span><span class="step size-32"> - <i class="icon ion-chevron-left"></i> - </span><span class="step size-48"> - <i class="icon ion-chevron-left"></i> - </span><span class="step size-64"> - <i class="icon ion-chevron-left"></i> - </span><span class="step size-96"> - <i class="icon ion-chevron-left"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-chevron-left" /> - - <label>Selectable:</label> - <span class="ion">&#xf124;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf124;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f124" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-chevron-right"></i> - </span><span class="step size-14"> - <i class="icon ion-chevron-right"></i> - </span><span class="step size-16"> - <i class="icon ion-chevron-right"></i> - </span><span class="step size-18"> - <i class="icon ion-chevron-right"></i> - </span><span class="step size-21"> - <i class="icon ion-chevron-right"></i> - </span><span class="step size-24"> - <i class="icon ion-chevron-right"></i> - </span><span class="step size-32"> - <i class="icon ion-chevron-right"></i> - </span><span class="step size-48"> - <i class="icon ion-chevron-right"></i> - </span><span class="step size-64"> - <i class="icon ion-chevron-right"></i> - </span><span class="step size-96"> - <i class="icon ion-chevron-right"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-chevron-right" /> - - <label>Selectable:</label> - <span class="ion">&#xf125;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf125;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f125" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-chevron-up"></i> - </span><span class="step size-14"> - <i class="icon ion-chevron-up"></i> - </span><span class="step size-16"> - <i class="icon ion-chevron-up"></i> - </span><span class="step size-18"> - <i class="icon ion-chevron-up"></i> - </span><span class="step size-21"> - <i class="icon ion-chevron-up"></i> - </span><span class="step size-24"> - <i class="icon ion-chevron-up"></i> - </span><span class="step size-32"> - <i class="icon ion-chevron-up"></i> - </span><span class="step size-48"> - <i class="icon ion-chevron-up"></i> - </span><span class="step size-64"> - <i class="icon ion-chevron-up"></i> - </span><span class="step size-96"> - <i class="icon ion-chevron-up"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-chevron-up" /> - - <label>Selectable:</label> - <span class="ion">&#xf126;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf126;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f126" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-clipboard"></i> - </span><span class="step size-14"> - <i class="icon ion-clipboard"></i> - </span><span class="step size-16"> - <i class="icon ion-clipboard"></i> - </span><span class="step size-18"> - <i class="icon ion-clipboard"></i> - </span><span class="step size-21"> - <i class="icon ion-clipboard"></i> - </span><span class="step size-24"> - <i class="icon ion-clipboard"></i> - </span><span class="step size-32"> - <i class="icon ion-clipboard"></i> - </span><span class="step size-48"> - <i class="icon ion-clipboard"></i> - </span><span class="step size-64"> - <i class="icon ion-clipboard"></i> - </span><span class="step size-96"> - <i class="icon ion-clipboard"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-clipboard" /> - - <label>Selectable:</label> - <span class="ion">&#xf127;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf127;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f127" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-clock"></i> - </span><span class="step size-14"> - <i class="icon ion-clock"></i> - </span><span class="step size-16"> - <i class="icon ion-clock"></i> - </span><span class="step size-18"> - <i class="icon ion-clock"></i> - </span><span class="step size-21"> - <i class="icon ion-clock"></i> - </span><span class="step size-24"> - <i class="icon ion-clock"></i> - </span><span class="step size-32"> - <i class="icon ion-clock"></i> - </span><span class="step size-48"> - <i class="icon ion-clock"></i> - </span><span class="step size-64"> - <i class="icon ion-clock"></i> - </span><span class="step size-96"> - <i class="icon ion-clock"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-clock" /> - - <label>Selectable:</label> - <span class="ion">&#xf26e;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf26e;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f26e" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-close"></i> - </span><span class="step size-14"> - <i class="icon ion-close"></i> - </span><span class="step size-16"> - <i class="icon ion-close"></i> - </span><span class="step size-18"> - <i class="icon ion-close"></i> - </span><span class="step size-21"> - <i class="icon ion-close"></i> - </span><span class="step size-24"> - <i class="icon ion-close"></i> - </span><span class="step size-32"> - <i class="icon ion-close"></i> - </span><span class="step size-48"> - <i class="icon ion-close"></i> - </span><span class="step size-64"> - <i class="icon ion-close"></i> - </span><span class="step size-96"> - <i class="icon ion-close"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-close" /> - - <label>Selectable:</label> - <span class="ion">&#xf12a;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf12a;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f12a" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-close-circled"></i> - </span><span class="step size-14"> - <i class="icon ion-close-circled"></i> - </span><span class="step size-16"> - <i class="icon ion-close-circled"></i> - </span><span class="step size-18"> - <i class="icon ion-close-circled"></i> - </span><span class="step size-21"> - <i class="icon ion-close-circled"></i> - </span><span class="step size-24"> - <i class="icon ion-close-circled"></i> - </span><span class="step size-32"> - <i class="icon ion-close-circled"></i> - </span><span class="step size-48"> - <i class="icon ion-close-circled"></i> - </span><span class="step size-64"> - <i class="icon ion-close-circled"></i> - </span><span class="step size-96"> - <i class="icon ion-close-circled"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-close-circled" /> - - <label>Selectable:</label> - <span class="ion">&#xf128;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf128;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f128" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-close-round"></i> - </span><span class="step size-14"> - <i class="icon ion-close-round"></i> - </span><span class="step size-16"> - <i class="icon ion-close-round"></i> - </span><span class="step size-18"> - <i class="icon ion-close-round"></i> - </span><span class="step size-21"> - <i class="icon ion-close-round"></i> - </span><span class="step size-24"> - <i class="icon ion-close-round"></i> - </span><span class="step size-32"> - <i class="icon ion-close-round"></i> - </span><span class="step size-48"> - <i class="icon ion-close-round"></i> - </span><span class="step size-64"> - <i class="icon ion-close-round"></i> - </span><span class="step size-96"> - <i class="icon ion-close-round"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-close-round" /> - - <label>Selectable:</label> - <span class="ion">&#xf129;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf129;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f129" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-closed-captioning"></i> - </span><span class="step size-14"> - <i class="icon ion-closed-captioning"></i> - </span><span class="step size-16"> - <i class="icon ion-closed-captioning"></i> - </span><span class="step size-18"> - <i class="icon ion-closed-captioning"></i> - </span><span class="step size-21"> - <i class="icon ion-closed-captioning"></i> - </span><span class="step size-24"> - <i class="icon ion-closed-captioning"></i> - </span><span class="step size-32"> - <i class="icon ion-closed-captioning"></i> - </span><span class="step size-48"> - <i class="icon ion-closed-captioning"></i> - </span><span class="step size-64"> - <i class="icon ion-closed-captioning"></i> - </span><span class="step size-96"> - <i class="icon ion-closed-captioning"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-closed-captioning" /> - - <label>Selectable:</label> - <span class="ion">&#xf317;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf317;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f317" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-cloud"></i> - </span><span class="step size-14"> - <i class="icon ion-cloud"></i> - </span><span class="step size-16"> - <i class="icon ion-cloud"></i> - </span><span class="step size-18"> - <i class="icon ion-cloud"></i> - </span><span class="step size-21"> - <i class="icon ion-cloud"></i> - </span><span class="step size-24"> - <i class="icon ion-cloud"></i> - </span><span class="step size-32"> - <i class="icon ion-cloud"></i> - </span><span class="step size-48"> - <i class="icon ion-cloud"></i> - </span><span class="step size-64"> - <i class="icon ion-cloud"></i> - </span><span class="step size-96"> - <i class="icon ion-cloud"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-cloud" /> - - <label>Selectable:</label> - <span class="ion">&#xf12b;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf12b;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f12b" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-code"></i> - </span><span class="step size-14"> - <i class="icon ion-code"></i> - </span><span class="step size-16"> - <i class="icon ion-code"></i> - </span><span class="step size-18"> - <i class="icon ion-code"></i> - </span><span class="step size-21"> - <i class="icon ion-code"></i> - </span><span class="step size-24"> - <i class="icon ion-code"></i> - </span><span class="step size-32"> - <i class="icon ion-code"></i> - </span><span class="step size-48"> - <i class="icon ion-code"></i> - </span><span class="step size-64"> - <i class="icon ion-code"></i> - </span><span class="step size-96"> - <i class="icon ion-code"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-code" /> - - <label>Selectable:</label> - <span class="ion">&#xf271;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf271;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f271" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-code-download"></i> - </span><span class="step size-14"> - <i class="icon ion-code-download"></i> - </span><span class="step size-16"> - <i class="icon ion-code-download"></i> - </span><span class="step size-18"> - <i class="icon ion-code-download"></i> - </span><span class="step size-21"> - <i class="icon ion-code-download"></i> - </span><span class="step size-24"> - <i class="icon ion-code-download"></i> - </span><span class="step size-32"> - <i class="icon ion-code-download"></i> - </span><span class="step size-48"> - <i class="icon ion-code-download"></i> - </span><span class="step size-64"> - <i class="icon ion-code-download"></i> - </span><span class="step size-96"> - <i class="icon ion-code-download"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-code-download" /> - - <label>Selectable:</label> - <span class="ion">&#xf26f;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf26f;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f26f" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-code-working"></i> - </span><span class="step size-14"> - <i class="icon ion-code-working"></i> - </span><span class="step size-16"> - <i class="icon ion-code-working"></i> - </span><span class="step size-18"> - <i class="icon ion-code-working"></i> - </span><span class="step size-21"> - <i class="icon ion-code-working"></i> - </span><span class="step size-24"> - <i class="icon ion-code-working"></i> - </span><span class="step size-32"> - <i class="icon ion-code-working"></i> - </span><span class="step size-48"> - <i class="icon ion-code-working"></i> - </span><span class="step size-64"> - <i class="icon ion-code-working"></i> - </span><span class="step size-96"> - <i class="icon ion-code-working"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-code-working" /> - - <label>Selectable:</label> - <span class="ion">&#xf270;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf270;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f270" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-coffee"></i> - </span><span class="step size-14"> - <i class="icon ion-coffee"></i> - </span><span class="step size-16"> - <i class="icon ion-coffee"></i> - </span><span class="step size-18"> - <i class="icon ion-coffee"></i> - </span><span class="step size-21"> - <i class="icon ion-coffee"></i> - </span><span class="step size-24"> - <i class="icon ion-coffee"></i> - </span><span class="step size-32"> - <i class="icon ion-coffee"></i> - </span><span class="step size-48"> - <i class="icon ion-coffee"></i> - </span><span class="step size-64"> - <i class="icon ion-coffee"></i> - </span><span class="step size-96"> - <i class="icon ion-coffee"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-coffee" /> - - <label>Selectable:</label> - <span class="ion">&#xf272;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf272;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f272" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-compass"></i> - </span><span class="step size-14"> - <i class="icon ion-compass"></i> - </span><span class="step size-16"> - <i class="icon ion-compass"></i> - </span><span class="step size-18"> - <i class="icon ion-compass"></i> - </span><span class="step size-21"> - <i class="icon ion-compass"></i> - </span><span class="step size-24"> - <i class="icon ion-compass"></i> - </span><span class="step size-32"> - <i class="icon ion-compass"></i> - </span><span class="step size-48"> - <i class="icon ion-compass"></i> - </span><span class="step size-64"> - <i class="icon ion-compass"></i> - </span><span class="step size-96"> - <i class="icon ion-compass"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-compass" /> - - <label>Selectable:</label> - <span class="ion">&#xf273;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf273;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f273" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-compose"></i> - </span><span class="step size-14"> - <i class="icon ion-compose"></i> - </span><span class="step size-16"> - <i class="icon ion-compose"></i> - </span><span class="step size-18"> - <i class="icon ion-compose"></i> - </span><span class="step size-21"> - <i class="icon ion-compose"></i> - </span><span class="step size-24"> - <i class="icon ion-compose"></i> - </span><span class="step size-32"> - <i class="icon ion-compose"></i> - </span><span class="step size-48"> - <i class="icon ion-compose"></i> - </span><span class="step size-64"> - <i class="icon ion-compose"></i> - </span><span class="step size-96"> - <i class="icon ion-compose"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-compose" /> - - <label>Selectable:</label> - <span class="ion">&#xf12c;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf12c;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f12c" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-connection-bars"></i> - </span><span class="step size-14"> - <i class="icon ion-connection-bars"></i> - </span><span class="step size-16"> - <i class="icon ion-connection-bars"></i> - </span><span class="step size-18"> - <i class="icon ion-connection-bars"></i> - </span><span class="step size-21"> - <i class="icon ion-connection-bars"></i> - </span><span class="step size-24"> - <i class="icon ion-connection-bars"></i> - </span><span class="step size-32"> - <i class="icon ion-connection-bars"></i> - </span><span class="step size-48"> - <i class="icon ion-connection-bars"></i> - </span><span class="step size-64"> - <i class="icon ion-connection-bars"></i> - </span><span class="step size-96"> - <i class="icon ion-connection-bars"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-connection-bars" /> - - <label>Selectable:</label> - <span class="ion">&#xf274;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf274;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f274" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-contrast"></i> - </span><span class="step size-14"> - <i class="icon ion-contrast"></i> - </span><span class="step size-16"> - <i class="icon ion-contrast"></i> - </span><span class="step size-18"> - <i class="icon ion-contrast"></i> - </span><span class="step size-21"> - <i class="icon ion-contrast"></i> - </span><span class="step size-24"> - <i class="icon ion-contrast"></i> - </span><span class="step size-32"> - <i class="icon ion-contrast"></i> - </span><span class="step size-48"> - <i class="icon ion-contrast"></i> - </span><span class="step size-64"> - <i class="icon ion-contrast"></i> - </span><span class="step size-96"> - <i class="icon ion-contrast"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-contrast" /> - - <label>Selectable:</label> - <span class="ion">&#xf275;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf275;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f275" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-crop"></i> - </span><span class="step size-14"> - <i class="icon ion-crop"></i> - </span><span class="step size-16"> - <i class="icon ion-crop"></i> - </span><span class="step size-18"> - <i class="icon ion-crop"></i> - </span><span class="step size-21"> - <i class="icon ion-crop"></i> - </span><span class="step size-24"> - <i class="icon ion-crop"></i> - </span><span class="step size-32"> - <i class="icon ion-crop"></i> - </span><span class="step size-48"> - <i class="icon ion-crop"></i> - </span><span class="step size-64"> - <i class="icon ion-crop"></i> - </span><span class="step size-96"> - <i class="icon ion-crop"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-crop" /> - - <label>Selectable:</label> - <span class="ion">&#xf3c1;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf3c1;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f3c1" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-cube"></i> - </span><span class="step size-14"> - <i class="icon ion-cube"></i> - </span><span class="step size-16"> - <i class="icon ion-cube"></i> - </span><span class="step size-18"> - <i class="icon ion-cube"></i> - </span><span class="step size-21"> - <i class="icon ion-cube"></i> - </span><span class="step size-24"> - <i class="icon ion-cube"></i> - </span><span class="step size-32"> - <i class="icon ion-cube"></i> - </span><span class="step size-48"> - <i class="icon ion-cube"></i> - </span><span class="step size-64"> - <i class="icon ion-cube"></i> - </span><span class="step size-96"> - <i class="icon ion-cube"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-cube" /> - - <label>Selectable:</label> - <span class="ion">&#xf318;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf318;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f318" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-disc"></i> - </span><span class="step size-14"> - <i class="icon ion-disc"></i> - </span><span class="step size-16"> - <i class="icon ion-disc"></i> - </span><span class="step size-18"> - <i class="icon ion-disc"></i> - </span><span class="step size-21"> - <i class="icon ion-disc"></i> - </span><span class="step size-24"> - <i class="icon ion-disc"></i> - </span><span class="step size-32"> - <i class="icon ion-disc"></i> - </span><span class="step size-48"> - <i class="icon ion-disc"></i> - </span><span class="step size-64"> - <i class="icon ion-disc"></i> - </span><span class="step size-96"> - <i class="icon ion-disc"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-disc" /> - - <label>Selectable:</label> - <span class="ion">&#xf12d;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf12d;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f12d" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-document"></i> - </span><span class="step size-14"> - <i class="icon ion-document"></i> - </span><span class="step size-16"> - <i class="icon ion-document"></i> - </span><span class="step size-18"> - <i class="icon ion-document"></i> - </span><span class="step size-21"> - <i class="icon ion-document"></i> - </span><span class="step size-24"> - <i class="icon ion-document"></i> - </span><span class="step size-32"> - <i class="icon ion-document"></i> - </span><span class="step size-48"> - <i class="icon ion-document"></i> - </span><span class="step size-64"> - <i class="icon ion-document"></i> - </span><span class="step size-96"> - <i class="icon ion-document"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-document" /> - - <label>Selectable:</label> - <span class="ion">&#xf12f;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf12f;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f12f" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-document-text"></i> - </span><span class="step size-14"> - <i class="icon ion-document-text"></i> - </span><span class="step size-16"> - <i class="icon ion-document-text"></i> - </span><span class="step size-18"> - <i class="icon ion-document-text"></i> - </span><span class="step size-21"> - <i class="icon ion-document-text"></i> - </span><span class="step size-24"> - <i class="icon ion-document-text"></i> - </span><span class="step size-32"> - <i class="icon ion-document-text"></i> - </span><span class="step size-48"> - <i class="icon ion-document-text"></i> - </span><span class="step size-64"> - <i class="icon ion-document-text"></i> - </span><span class="step size-96"> - <i class="icon ion-document-text"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-document-text" /> - - <label>Selectable:</label> - <span class="ion">&#xf12e;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf12e;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f12e" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-drag"></i> - </span><span class="step size-14"> - <i class="icon ion-drag"></i> - </span><span class="step size-16"> - <i class="icon ion-drag"></i> - </span><span class="step size-18"> - <i class="icon ion-drag"></i> - </span><span class="step size-21"> - <i class="icon ion-drag"></i> - </span><span class="step size-24"> - <i class="icon ion-drag"></i> - </span><span class="step size-32"> - <i class="icon ion-drag"></i> - </span><span class="step size-48"> - <i class="icon ion-drag"></i> - </span><span class="step size-64"> - <i class="icon ion-drag"></i> - </span><span class="step size-96"> - <i class="icon ion-drag"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-drag" /> - - <label>Selectable:</label> - <span class="ion">&#xf130;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf130;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f130" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-earth"></i> - </span><span class="step size-14"> - <i class="icon ion-earth"></i> - </span><span class="step size-16"> - <i class="icon ion-earth"></i> - </span><span class="step size-18"> - <i class="icon ion-earth"></i> - </span><span class="step size-21"> - <i class="icon ion-earth"></i> - </span><span class="step size-24"> - <i class="icon ion-earth"></i> - </span><span class="step size-32"> - <i class="icon ion-earth"></i> - </span><span class="step size-48"> - <i class="icon ion-earth"></i> - </span><span class="step size-64"> - <i class="icon ion-earth"></i> - </span><span class="step size-96"> - <i class="icon ion-earth"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-earth" /> - - <label>Selectable:</label> - <span class="ion">&#xf276;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf276;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f276" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-easel"></i> - </span><span class="step size-14"> - <i class="icon ion-easel"></i> - </span><span class="step size-16"> - <i class="icon ion-easel"></i> - </span><span class="step size-18"> - <i class="icon ion-easel"></i> - </span><span class="step size-21"> - <i class="icon ion-easel"></i> - </span><span class="step size-24"> - <i class="icon ion-easel"></i> - </span><span class="step size-32"> - <i class="icon ion-easel"></i> - </span><span class="step size-48"> - <i class="icon ion-easel"></i> - </span><span class="step size-64"> - <i class="icon ion-easel"></i> - </span><span class="step size-96"> - <i class="icon ion-easel"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-easel" /> - - <label>Selectable:</label> - <span class="ion">&#xf3c2;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf3c2;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f3c2" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-edit"></i> - </span><span class="step size-14"> - <i class="icon ion-edit"></i> - </span><span class="step size-16"> - <i class="icon ion-edit"></i> - </span><span class="step size-18"> - <i class="icon ion-edit"></i> - </span><span class="step size-21"> - <i class="icon ion-edit"></i> - </span><span class="step size-24"> - <i class="icon ion-edit"></i> - </span><span class="step size-32"> - <i class="icon ion-edit"></i> - </span><span class="step size-48"> - <i class="icon ion-edit"></i> - </span><span class="step size-64"> - <i class="icon ion-edit"></i> - </span><span class="step size-96"> - <i class="icon ion-edit"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-edit" /> - - <label>Selectable:</label> - <span class="ion">&#xf2bf;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf2bf;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f2bf" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-egg"></i> - </span><span class="step size-14"> - <i class="icon ion-egg"></i> - </span><span class="step size-16"> - <i class="icon ion-egg"></i> - </span><span class="step size-18"> - <i class="icon ion-egg"></i> - </span><span class="step size-21"> - <i class="icon ion-egg"></i> - </span><span class="step size-24"> - <i class="icon ion-egg"></i> - </span><span class="step size-32"> - <i class="icon ion-egg"></i> - </span><span class="step size-48"> - <i class="icon ion-egg"></i> - </span><span class="step size-64"> - <i class="icon ion-egg"></i> - </span><span class="step size-96"> - <i class="icon ion-egg"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-egg" /> - - <label>Selectable:</label> - <span class="ion">&#xf277;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf277;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f277" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-eject"></i> - </span><span class="step size-14"> - <i class="icon ion-eject"></i> - </span><span class="step size-16"> - <i class="icon ion-eject"></i> - </span><span class="step size-18"> - <i class="icon ion-eject"></i> - </span><span class="step size-21"> - <i class="icon ion-eject"></i> - </span><span class="step size-24"> - <i class="icon ion-eject"></i> - </span><span class="step size-32"> - <i class="icon ion-eject"></i> - </span><span class="step size-48"> - <i class="icon ion-eject"></i> - </span><span class="step size-64"> - <i class="icon ion-eject"></i> - </span><span class="step size-96"> - <i class="icon ion-eject"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-eject" /> - - <label>Selectable:</label> - <span class="ion">&#xf131;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf131;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f131" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-email"></i> - </span><span class="step size-14"> - <i class="icon ion-email"></i> - </span><span class="step size-16"> - <i class="icon ion-email"></i> - </span><span class="step size-18"> - <i class="icon ion-email"></i> - </span><span class="step size-21"> - <i class="icon ion-email"></i> - </span><span class="step size-24"> - <i class="icon ion-email"></i> - </span><span class="step size-32"> - <i class="icon ion-email"></i> - </span><span class="step size-48"> - <i class="icon ion-email"></i> - </span><span class="step size-64"> - <i class="icon ion-email"></i> - </span><span class="step size-96"> - <i class="icon ion-email"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-email" /> - - <label>Selectable:</label> - <span class="ion">&#xf132;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf132;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f132" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-email-unread"></i> - </span><span class="step size-14"> - <i class="icon ion-email-unread"></i> - </span><span class="step size-16"> - <i class="icon ion-email-unread"></i> - </span><span class="step size-18"> - <i class="icon ion-email-unread"></i> - </span><span class="step size-21"> - <i class="icon ion-email-unread"></i> - </span><span class="step size-24"> - <i class="icon ion-email-unread"></i> - </span><span class="step size-32"> - <i class="icon ion-email-unread"></i> - </span><span class="step size-48"> - <i class="icon ion-email-unread"></i> - </span><span class="step size-64"> - <i class="icon ion-email-unread"></i> - </span><span class="step size-96"> - <i class="icon ion-email-unread"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-email-unread" /> - - <label>Selectable:</label> - <span class="ion">&#xf3c3;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf3c3;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f3c3" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-erlenmeyer-flask"></i> - </span><span class="step size-14"> - <i class="icon ion-erlenmeyer-flask"></i> - </span><span class="step size-16"> - <i class="icon ion-erlenmeyer-flask"></i> - </span><span class="step size-18"> - <i class="icon ion-erlenmeyer-flask"></i> - </span><span class="step size-21"> - <i class="icon ion-erlenmeyer-flask"></i> - </span><span class="step size-24"> - <i class="icon ion-erlenmeyer-flask"></i> - </span><span class="step size-32"> - <i class="icon ion-erlenmeyer-flask"></i> - </span><span class="step size-48"> - <i class="icon ion-erlenmeyer-flask"></i> - </span><span class="step size-64"> - <i class="icon ion-erlenmeyer-flask"></i> - </span><span class="step size-96"> - <i class="icon ion-erlenmeyer-flask"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-erlenmeyer-flask" /> - - <label>Selectable:</label> - <span class="ion">&#xf3c5;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf3c5;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f3c5" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-erlenmeyer-flask-bubbles"></i> - </span><span class="step size-14"> - <i class="icon ion-erlenmeyer-flask-bubbles"></i> - </span><span class="step size-16"> - <i class="icon ion-erlenmeyer-flask-bubbles"></i> - </span><span class="step size-18"> - <i class="icon ion-erlenmeyer-flask-bubbles"></i> - </span><span class="step size-21"> - <i class="icon ion-erlenmeyer-flask-bubbles"></i> - </span><span class="step size-24"> - <i class="icon ion-erlenmeyer-flask-bubbles"></i> - </span><span class="step size-32"> - <i class="icon ion-erlenmeyer-flask-bubbles"></i> - </span><span class="step size-48"> - <i class="icon ion-erlenmeyer-flask-bubbles"></i> - </span><span class="step size-64"> - <i class="icon ion-erlenmeyer-flask-bubbles"></i> - </span><span class="step size-96"> - <i class="icon ion-erlenmeyer-flask-bubbles"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-erlenmeyer-flask-bubbles" /> - - <label>Selectable:</label> - <span class="ion">&#xf3c4;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf3c4;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f3c4" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-eye"></i> - </span><span class="step size-14"> - <i class="icon ion-eye"></i> - </span><span class="step size-16"> - <i class="icon ion-eye"></i> - </span><span class="step size-18"> - <i class="icon ion-eye"></i> - </span><span class="step size-21"> - <i class="icon ion-eye"></i> - </span><span class="step size-24"> - <i class="icon ion-eye"></i> - </span><span class="step size-32"> - <i class="icon ion-eye"></i> - </span><span class="step size-48"> - <i class="icon ion-eye"></i> - </span><span class="step size-64"> - <i class="icon ion-eye"></i> - </span><span class="step size-96"> - <i class="icon ion-eye"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-eye" /> - - <label>Selectable:</label> - <span class="ion">&#xf133;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf133;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f133" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-eye-disabled"></i> - </span><span class="step size-14"> - <i class="icon ion-eye-disabled"></i> - </span><span class="step size-16"> - <i class="icon ion-eye-disabled"></i> - </span><span class="step size-18"> - <i class="icon ion-eye-disabled"></i> - </span><span class="step size-21"> - <i class="icon ion-eye-disabled"></i> - </span><span class="step size-24"> - <i class="icon ion-eye-disabled"></i> - </span><span class="step size-32"> - <i class="icon ion-eye-disabled"></i> - </span><span class="step size-48"> - <i class="icon ion-eye-disabled"></i> - </span><span class="step size-64"> - <i class="icon ion-eye-disabled"></i> - </span><span class="step size-96"> - <i class="icon ion-eye-disabled"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-eye-disabled" /> - - <label>Selectable:</label> - <span class="ion">&#xf306;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf306;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f306" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-female"></i> - </span><span class="step size-14"> - <i class="icon ion-female"></i> - </span><span class="step size-16"> - <i class="icon ion-female"></i> - </span><span class="step size-18"> - <i class="icon ion-female"></i> - </span><span class="step size-21"> - <i class="icon ion-female"></i> - </span><span class="step size-24"> - <i class="icon ion-female"></i> - </span><span class="step size-32"> - <i class="icon ion-female"></i> - </span><span class="step size-48"> - <i class="icon ion-female"></i> - </span><span class="step size-64"> - <i class="icon ion-female"></i> - </span><span class="step size-96"> - <i class="icon ion-female"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-female" /> - - <label>Selectable:</label> - <span class="ion">&#xf278;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf278;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f278" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-filing"></i> - </span><span class="step size-14"> - <i class="icon ion-filing"></i> - </span><span class="step size-16"> - <i class="icon ion-filing"></i> - </span><span class="step size-18"> - <i class="icon ion-filing"></i> - </span><span class="step size-21"> - <i class="icon ion-filing"></i> - </span><span class="step size-24"> - <i class="icon ion-filing"></i> - </span><span class="step size-32"> - <i class="icon ion-filing"></i> - </span><span class="step size-48"> - <i class="icon ion-filing"></i> - </span><span class="step size-64"> - <i class="icon ion-filing"></i> - </span><span class="step size-96"> - <i class="icon ion-filing"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-filing" /> - - <label>Selectable:</label> - <span class="ion">&#xf134;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf134;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f134" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-film-marker"></i> - </span><span class="step size-14"> - <i class="icon ion-film-marker"></i> - </span><span class="step size-16"> - <i class="icon ion-film-marker"></i> - </span><span class="step size-18"> - <i class="icon ion-film-marker"></i> - </span><span class="step size-21"> - <i class="icon ion-film-marker"></i> - </span><span class="step size-24"> - <i class="icon ion-film-marker"></i> - </span><span class="step size-32"> - <i class="icon ion-film-marker"></i> - </span><span class="step size-48"> - <i class="icon ion-film-marker"></i> - </span><span class="step size-64"> - <i class="icon ion-film-marker"></i> - </span><span class="step size-96"> - <i class="icon ion-film-marker"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-film-marker" /> - - <label>Selectable:</label> - <span class="ion">&#xf135;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf135;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f135" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-fireball"></i> - </span><span class="step size-14"> - <i class="icon ion-fireball"></i> - </span><span class="step size-16"> - <i class="icon ion-fireball"></i> - </span><span class="step size-18"> - <i class="icon ion-fireball"></i> - </span><span class="step size-21"> - <i class="icon ion-fireball"></i> - </span><span class="step size-24"> - <i class="icon ion-fireball"></i> - </span><span class="step size-32"> - <i class="icon ion-fireball"></i> - </span><span class="step size-48"> - <i class="icon ion-fireball"></i> - </span><span class="step size-64"> - <i class="icon ion-fireball"></i> - </span><span class="step size-96"> - <i class="icon ion-fireball"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-fireball" /> - - <label>Selectable:</label> - <span class="ion">&#xf319;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf319;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f319" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-flag"></i> - </span><span class="step size-14"> - <i class="icon ion-flag"></i> - </span><span class="step size-16"> - <i class="icon ion-flag"></i> - </span><span class="step size-18"> - <i class="icon ion-flag"></i> - </span><span class="step size-21"> - <i class="icon ion-flag"></i> - </span><span class="step size-24"> - <i class="icon ion-flag"></i> - </span><span class="step size-32"> - <i class="icon ion-flag"></i> - </span><span class="step size-48"> - <i class="icon ion-flag"></i> - </span><span class="step size-64"> - <i class="icon ion-flag"></i> - </span><span class="step size-96"> - <i class="icon ion-flag"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-flag" /> - - <label>Selectable:</label> - <span class="ion">&#xf279;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf279;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f279" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-flame"></i> - </span><span class="step size-14"> - <i class="icon ion-flame"></i> - </span><span class="step size-16"> - <i class="icon ion-flame"></i> - </span><span class="step size-18"> - <i class="icon ion-flame"></i> - </span><span class="step size-21"> - <i class="icon ion-flame"></i> - </span><span class="step size-24"> - <i class="icon ion-flame"></i> - </span><span class="step size-32"> - <i class="icon ion-flame"></i> - </span><span class="step size-48"> - <i class="icon ion-flame"></i> - </span><span class="step size-64"> - <i class="icon ion-flame"></i> - </span><span class="step size-96"> - <i class="icon ion-flame"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-flame" /> - - <label>Selectable:</label> - <span class="ion">&#xf31a;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf31a;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f31a" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-flash"></i> - </span><span class="step size-14"> - <i class="icon ion-flash"></i> - </span><span class="step size-16"> - <i class="icon ion-flash"></i> - </span><span class="step size-18"> - <i class="icon ion-flash"></i> - </span><span class="step size-21"> - <i class="icon ion-flash"></i> - </span><span class="step size-24"> - <i class="icon ion-flash"></i> - </span><span class="step size-32"> - <i class="icon ion-flash"></i> - </span><span class="step size-48"> - <i class="icon ion-flash"></i> - </span><span class="step size-64"> - <i class="icon ion-flash"></i> - </span><span class="step size-96"> - <i class="icon ion-flash"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-flash" /> - - <label>Selectable:</label> - <span class="ion">&#xf137;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf137;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f137" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-flash-off"></i> - </span><span class="step size-14"> - <i class="icon ion-flash-off"></i> - </span><span class="step size-16"> - <i class="icon ion-flash-off"></i> - </span><span class="step size-18"> - <i class="icon ion-flash-off"></i> - </span><span class="step size-21"> - <i class="icon ion-flash-off"></i> - </span><span class="step size-24"> - <i class="icon ion-flash-off"></i> - </span><span class="step size-32"> - <i class="icon ion-flash-off"></i> - </span><span class="step size-48"> - <i class="icon ion-flash-off"></i> - </span><span class="step size-64"> - <i class="icon ion-flash-off"></i> - </span><span class="step size-96"> - <i class="icon ion-flash-off"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-flash-off" /> - - <label>Selectable:</label> - <span class="ion">&#xf136;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf136;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f136" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-folder"></i> - </span><span class="step size-14"> - <i class="icon ion-folder"></i> - </span><span class="step size-16"> - <i class="icon ion-folder"></i> - </span><span class="step size-18"> - <i class="icon ion-folder"></i> - </span><span class="step size-21"> - <i class="icon ion-folder"></i> - </span><span class="step size-24"> - <i class="icon ion-folder"></i> - </span><span class="step size-32"> - <i class="icon ion-folder"></i> - </span><span class="step size-48"> - <i class="icon ion-folder"></i> - </span><span class="step size-64"> - <i class="icon ion-folder"></i> - </span><span class="step size-96"> - <i class="icon ion-folder"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-folder" /> - - <label>Selectable:</label> - <span class="ion">&#xf139;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf139;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f139" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-fork"></i> - </span><span class="step size-14"> - <i class="icon ion-fork"></i> - </span><span class="step size-16"> - <i class="icon ion-fork"></i> - </span><span class="step size-18"> - <i class="icon ion-fork"></i> - </span><span class="step size-21"> - <i class="icon ion-fork"></i> - </span><span class="step size-24"> - <i class="icon ion-fork"></i> - </span><span class="step size-32"> - <i class="icon ion-fork"></i> - </span><span class="step size-48"> - <i class="icon ion-fork"></i> - </span><span class="step size-64"> - <i class="icon ion-fork"></i> - </span><span class="step size-96"> - <i class="icon ion-fork"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-fork" /> - - <label>Selectable:</label> - <span class="ion">&#xf27a;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf27a;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f27a" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-fork-repo"></i> - </span><span class="step size-14"> - <i class="icon ion-fork-repo"></i> - </span><span class="step size-16"> - <i class="icon ion-fork-repo"></i> - </span><span class="step size-18"> - <i class="icon ion-fork-repo"></i> - </span><span class="step size-21"> - <i class="icon ion-fork-repo"></i> - </span><span class="step size-24"> - <i class="icon ion-fork-repo"></i> - </span><span class="step size-32"> - <i class="icon ion-fork-repo"></i> - </span><span class="step size-48"> - <i class="icon ion-fork-repo"></i> - </span><span class="step size-64"> - <i class="icon ion-fork-repo"></i> - </span><span class="step size-96"> - <i class="icon ion-fork-repo"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-fork-repo" /> - - <label>Selectable:</label> - <span class="ion">&#xf2c0;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf2c0;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f2c0" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-forward"></i> - </span><span class="step size-14"> - <i class="icon ion-forward"></i> - </span><span class="step size-16"> - <i class="icon ion-forward"></i> - </span><span class="step size-18"> - <i class="icon ion-forward"></i> - </span><span class="step size-21"> - <i class="icon ion-forward"></i> - </span><span class="step size-24"> - <i class="icon ion-forward"></i> - </span><span class="step size-32"> - <i class="icon ion-forward"></i> - </span><span class="step size-48"> - <i class="icon ion-forward"></i> - </span><span class="step size-64"> - <i class="icon ion-forward"></i> - </span><span class="step size-96"> - <i class="icon ion-forward"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-forward" /> - - <label>Selectable:</label> - <span class="ion">&#xf13a;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf13a;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f13a" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-funnel"></i> - </span><span class="step size-14"> - <i class="icon ion-funnel"></i> - </span><span class="step size-16"> - <i class="icon ion-funnel"></i> - </span><span class="step size-18"> - <i class="icon ion-funnel"></i> - </span><span class="step size-21"> - <i class="icon ion-funnel"></i> - </span><span class="step size-24"> - <i class="icon ion-funnel"></i> - </span><span class="step size-32"> - <i class="icon ion-funnel"></i> - </span><span class="step size-48"> - <i class="icon ion-funnel"></i> - </span><span class="step size-64"> - <i class="icon ion-funnel"></i> - </span><span class="step size-96"> - <i class="icon ion-funnel"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-funnel" /> - - <label>Selectable:</label> - <span class="ion">&#xf31b;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf31b;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f31b" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-gear-a"></i> - </span><span class="step size-14"> - <i class="icon ion-gear-a"></i> - </span><span class="step size-16"> - <i class="icon ion-gear-a"></i> - </span><span class="step size-18"> - <i class="icon ion-gear-a"></i> - </span><span class="step size-21"> - <i class="icon ion-gear-a"></i> - </span><span class="step size-24"> - <i class="icon ion-gear-a"></i> - </span><span class="step size-32"> - <i class="icon ion-gear-a"></i> - </span><span class="step size-48"> - <i class="icon ion-gear-a"></i> - </span><span class="step size-64"> - <i class="icon ion-gear-a"></i> - </span><span class="step size-96"> - <i class="icon ion-gear-a"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-gear-a" /> - - <label>Selectable:</label> - <span class="ion">&#xf13d;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf13d;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f13d" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-gear-b"></i> - </span><span class="step size-14"> - <i class="icon ion-gear-b"></i> - </span><span class="step size-16"> - <i class="icon ion-gear-b"></i> - </span><span class="step size-18"> - <i class="icon ion-gear-b"></i> - </span><span class="step size-21"> - <i class="icon ion-gear-b"></i> - </span><span class="step size-24"> - <i class="icon ion-gear-b"></i> - </span><span class="step size-32"> - <i class="icon ion-gear-b"></i> - </span><span class="step size-48"> - <i class="icon ion-gear-b"></i> - </span><span class="step size-64"> - <i class="icon ion-gear-b"></i> - </span><span class="step size-96"> - <i class="icon ion-gear-b"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-gear-b" /> - - <label>Selectable:</label> - <span class="ion">&#xf13e;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf13e;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f13e" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-grid"></i> - </span><span class="step size-14"> - <i class="icon ion-grid"></i> - </span><span class="step size-16"> - <i class="icon ion-grid"></i> - </span><span class="step size-18"> - <i class="icon ion-grid"></i> - </span><span class="step size-21"> - <i class="icon ion-grid"></i> - </span><span class="step size-24"> - <i class="icon ion-grid"></i> - </span><span class="step size-32"> - <i class="icon ion-grid"></i> - </span><span class="step size-48"> - <i class="icon ion-grid"></i> - </span><span class="step size-64"> - <i class="icon ion-grid"></i> - </span><span class="step size-96"> - <i class="icon ion-grid"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-grid" /> - - <label>Selectable:</label> - <span class="ion">&#xf13f;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf13f;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f13f" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-hammer"></i> - </span><span class="step size-14"> - <i class="icon ion-hammer"></i> - </span><span class="step size-16"> - <i class="icon ion-hammer"></i> - </span><span class="step size-18"> - <i class="icon ion-hammer"></i> - </span><span class="step size-21"> - <i class="icon ion-hammer"></i> - </span><span class="step size-24"> - <i class="icon ion-hammer"></i> - </span><span class="step size-32"> - <i class="icon ion-hammer"></i> - </span><span class="step size-48"> - <i class="icon ion-hammer"></i> - </span><span class="step size-64"> - <i class="icon ion-hammer"></i> - </span><span class="step size-96"> - <i class="icon ion-hammer"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-hammer" /> - - <label>Selectable:</label> - <span class="ion">&#xf27b;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf27b;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f27b" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-happy"></i> - </span><span class="step size-14"> - <i class="icon ion-happy"></i> - </span><span class="step size-16"> - <i class="icon ion-happy"></i> - </span><span class="step size-18"> - <i class="icon ion-happy"></i> - </span><span class="step size-21"> - <i class="icon ion-happy"></i> - </span><span class="step size-24"> - <i class="icon ion-happy"></i> - </span><span class="step size-32"> - <i class="icon ion-happy"></i> - </span><span class="step size-48"> - <i class="icon ion-happy"></i> - </span><span class="step size-64"> - <i class="icon ion-happy"></i> - </span><span class="step size-96"> - <i class="icon ion-happy"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-happy" /> - - <label>Selectable:</label> - <span class="ion">&#xf31c;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf31c;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f31c" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-happy-outline"></i> - </span><span class="step size-14"> - <i class="icon ion-happy-outline"></i> - </span><span class="step size-16"> - <i class="icon ion-happy-outline"></i> - </span><span class="step size-18"> - <i class="icon ion-happy-outline"></i> - </span><span class="step size-21"> - <i class="icon ion-happy-outline"></i> - </span><span class="step size-24"> - <i class="icon ion-happy-outline"></i> - </span><span class="step size-32"> - <i class="icon ion-happy-outline"></i> - </span><span class="step size-48"> - <i class="icon ion-happy-outline"></i> - </span><span class="step size-64"> - <i class="icon ion-happy-outline"></i> - </span><span class="step size-96"> - <i class="icon ion-happy-outline"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-happy-outline" /> - - <label>Selectable:</label> - <span class="ion">&#xf3c6;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf3c6;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f3c6" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-headphone"></i> - </span><span class="step size-14"> - <i class="icon ion-headphone"></i> - </span><span class="step size-16"> - <i class="icon ion-headphone"></i> - </span><span class="step size-18"> - <i class="icon ion-headphone"></i> - </span><span class="step size-21"> - <i class="icon ion-headphone"></i> - </span><span class="step size-24"> - <i class="icon ion-headphone"></i> - </span><span class="step size-32"> - <i class="icon ion-headphone"></i> - </span><span class="step size-48"> - <i class="icon ion-headphone"></i> - </span><span class="step size-64"> - <i class="icon ion-headphone"></i> - </span><span class="step size-96"> - <i class="icon ion-headphone"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-headphone" /> - - <label>Selectable:</label> - <span class="ion">&#xf140;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf140;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f140" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-heart"></i> - </span><span class="step size-14"> - <i class="icon ion-heart"></i> - </span><span class="step size-16"> - <i class="icon ion-heart"></i> - </span><span class="step size-18"> - <i class="icon ion-heart"></i> - </span><span class="step size-21"> - <i class="icon ion-heart"></i> - </span><span class="step size-24"> - <i class="icon ion-heart"></i> - </span><span class="step size-32"> - <i class="icon ion-heart"></i> - </span><span class="step size-48"> - <i class="icon ion-heart"></i> - </span><span class="step size-64"> - <i class="icon ion-heart"></i> - </span><span class="step size-96"> - <i class="icon ion-heart"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-heart" /> - - <label>Selectable:</label> - <span class="ion">&#xf141;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf141;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f141" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-heart-broken"></i> - </span><span class="step size-14"> - <i class="icon ion-heart-broken"></i> - </span><span class="step size-16"> - <i class="icon ion-heart-broken"></i> - </span><span class="step size-18"> - <i class="icon ion-heart-broken"></i> - </span><span class="step size-21"> - <i class="icon ion-heart-broken"></i> - </span><span class="step size-24"> - <i class="icon ion-heart-broken"></i> - </span><span class="step size-32"> - <i class="icon ion-heart-broken"></i> - </span><span class="step size-48"> - <i class="icon ion-heart-broken"></i> - </span><span class="step size-64"> - <i class="icon ion-heart-broken"></i> - </span><span class="step size-96"> - <i class="icon ion-heart-broken"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-heart-broken" /> - - <label>Selectable:</label> - <span class="ion">&#xf31d;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf31d;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f31d" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-help"></i> - </span><span class="step size-14"> - <i class="icon ion-help"></i> - </span><span class="step size-16"> - <i class="icon ion-help"></i> - </span><span class="step size-18"> - <i class="icon ion-help"></i> - </span><span class="step size-21"> - <i class="icon ion-help"></i> - </span><span class="step size-24"> - <i class="icon ion-help"></i> - </span><span class="step size-32"> - <i class="icon ion-help"></i> - </span><span class="step size-48"> - <i class="icon ion-help"></i> - </span><span class="step size-64"> - <i class="icon ion-help"></i> - </span><span class="step size-96"> - <i class="icon ion-help"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-help" /> - - <label>Selectable:</label> - <span class="ion">&#xf143;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf143;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f143" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-help-buoy"></i> - </span><span class="step size-14"> - <i class="icon ion-help-buoy"></i> - </span><span class="step size-16"> - <i class="icon ion-help-buoy"></i> - </span><span class="step size-18"> - <i class="icon ion-help-buoy"></i> - </span><span class="step size-21"> - <i class="icon ion-help-buoy"></i> - </span><span class="step size-24"> - <i class="icon ion-help-buoy"></i> - </span><span class="step size-32"> - <i class="icon ion-help-buoy"></i> - </span><span class="step size-48"> - <i class="icon ion-help-buoy"></i> - </span><span class="step size-64"> - <i class="icon ion-help-buoy"></i> - </span><span class="step size-96"> - <i class="icon ion-help-buoy"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-help-buoy" /> - - <label>Selectable:</label> - <span class="ion">&#xf27c;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf27c;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f27c" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-help-circled"></i> - </span><span class="step size-14"> - <i class="icon ion-help-circled"></i> - </span><span class="step size-16"> - <i class="icon ion-help-circled"></i> - </span><span class="step size-18"> - <i class="icon ion-help-circled"></i> - </span><span class="step size-21"> - <i class="icon ion-help-circled"></i> - </span><span class="step size-24"> - <i class="icon ion-help-circled"></i> - </span><span class="step size-32"> - <i class="icon ion-help-circled"></i> - </span><span class="step size-48"> - <i class="icon ion-help-circled"></i> - </span><span class="step size-64"> - <i class="icon ion-help-circled"></i> - </span><span class="step size-96"> - <i class="icon ion-help-circled"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-help-circled" /> - - <label>Selectable:</label> - <span class="ion">&#xf142;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf142;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f142" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-home"></i> - </span><span class="step size-14"> - <i class="icon ion-home"></i> - </span><span class="step size-16"> - <i class="icon ion-home"></i> - </span><span class="step size-18"> - <i class="icon ion-home"></i> - </span><span class="step size-21"> - <i class="icon ion-home"></i> - </span><span class="step size-24"> - <i class="icon ion-home"></i> - </span><span class="step size-32"> - <i class="icon ion-home"></i> - </span><span class="step size-48"> - <i class="icon ion-home"></i> - </span><span class="step size-64"> - <i class="icon ion-home"></i> - </span><span class="step size-96"> - <i class="icon ion-home"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-home" /> - - <label>Selectable:</label> - <span class="ion">&#xf144;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf144;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f144" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-icecream"></i> - </span><span class="step size-14"> - <i class="icon ion-icecream"></i> - </span><span class="step size-16"> - <i class="icon ion-icecream"></i> - </span><span class="step size-18"> - <i class="icon ion-icecream"></i> - </span><span class="step size-21"> - <i class="icon ion-icecream"></i> - </span><span class="step size-24"> - <i class="icon ion-icecream"></i> - </span><span class="step size-32"> - <i class="icon ion-icecream"></i> - </span><span class="step size-48"> - <i class="icon ion-icecream"></i> - </span><span class="step size-64"> - <i class="icon ion-icecream"></i> - </span><span class="step size-96"> - <i class="icon ion-icecream"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-icecream" /> - - <label>Selectable:</label> - <span class="ion">&#xf27d;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf27d;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f27d" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-image"></i> - </span><span class="step size-14"> - <i class="icon ion-image"></i> - </span><span class="step size-16"> - <i class="icon ion-image"></i> - </span><span class="step size-18"> - <i class="icon ion-image"></i> - </span><span class="step size-21"> - <i class="icon ion-image"></i> - </span><span class="step size-24"> - <i class="icon ion-image"></i> - </span><span class="step size-32"> - <i class="icon ion-image"></i> - </span><span class="step size-48"> - <i class="icon ion-image"></i> - </span><span class="step size-64"> - <i class="icon ion-image"></i> - </span><span class="step size-96"> - <i class="icon ion-image"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-image" /> - - <label>Selectable:</label> - <span class="ion">&#xf147;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf147;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f147" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-images"></i> - </span><span class="step size-14"> - <i class="icon ion-images"></i> - </span><span class="step size-16"> - <i class="icon ion-images"></i> - </span><span class="step size-18"> - <i class="icon ion-images"></i> - </span><span class="step size-21"> - <i class="icon ion-images"></i> - </span><span class="step size-24"> - <i class="icon ion-images"></i> - </span><span class="step size-32"> - <i class="icon ion-images"></i> - </span><span class="step size-48"> - <i class="icon ion-images"></i> - </span><span class="step size-64"> - <i class="icon ion-images"></i> - </span><span class="step size-96"> - <i class="icon ion-images"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-images" /> - - <label>Selectable:</label> - <span class="ion">&#xf148;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf148;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f148" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-information"></i> - </span><span class="step size-14"> - <i class="icon ion-information"></i> - </span><span class="step size-16"> - <i class="icon ion-information"></i> - </span><span class="step size-18"> - <i class="icon ion-information"></i> - </span><span class="step size-21"> - <i class="icon ion-information"></i> - </span><span class="step size-24"> - <i class="icon ion-information"></i> - </span><span class="step size-32"> - <i class="icon ion-information"></i> - </span><span class="step size-48"> - <i class="icon ion-information"></i> - </span><span class="step size-64"> - <i class="icon ion-information"></i> - </span><span class="step size-96"> - <i class="icon ion-information"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-information" /> - - <label>Selectable:</label> - <span class="ion">&#xf14a;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf14a;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f14a" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-information-circled"></i> - </span><span class="step size-14"> - <i class="icon ion-information-circled"></i> - </span><span class="step size-16"> - <i class="icon ion-information-circled"></i> - </span><span class="step size-18"> - <i class="icon ion-information-circled"></i> - </span><span class="step size-21"> - <i class="icon ion-information-circled"></i> - </span><span class="step size-24"> - <i class="icon ion-information-circled"></i> - </span><span class="step size-32"> - <i class="icon ion-information-circled"></i> - </span><span class="step size-48"> - <i class="icon ion-information-circled"></i> - </span><span class="step size-64"> - <i class="icon ion-information-circled"></i> - </span><span class="step size-96"> - <i class="icon ion-information-circled"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-information-circled" /> - - <label>Selectable:</label> - <span class="ion">&#xf149;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf149;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f149" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-ionic"></i> - </span><span class="step size-14"> - <i class="icon ion-ionic"></i> - </span><span class="step size-16"> - <i class="icon ion-ionic"></i> - </span><span class="step size-18"> - <i class="icon ion-ionic"></i> - </span><span class="step size-21"> - <i class="icon ion-ionic"></i> - </span><span class="step size-24"> - <i class="icon ion-ionic"></i> - </span><span class="step size-32"> - <i class="icon ion-ionic"></i> - </span><span class="step size-48"> - <i class="icon ion-ionic"></i> - </span><span class="step size-64"> - <i class="icon ion-ionic"></i> - </span><span class="step size-96"> - <i class="icon ion-ionic"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-ionic" /> - - <label>Selectable:</label> - <span class="ion">&#xf14b;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf14b;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f14b" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-ios-alarm"></i> - </span><span class="step size-14"> - <i class="icon ion-ios-alarm"></i> - </span><span class="step size-16"> - <i class="icon ion-ios-alarm"></i> - </span><span class="step size-18"> - <i class="icon ion-ios-alarm"></i> - </span><span class="step size-21"> - <i class="icon ion-ios-alarm"></i> - </span><span class="step size-24"> - <i class="icon ion-ios-alarm"></i> - </span><span class="step size-32"> - <i class="icon ion-ios-alarm"></i> - </span><span class="step size-48"> - <i class="icon ion-ios-alarm"></i> - </span><span class="step size-64"> - <i class="icon ion-ios-alarm"></i> - </span><span class="step size-96"> - <i class="icon ion-ios-alarm"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-ios-alarm" /> - - <label>Selectable:</label> - <span class="ion">&#xf3c8;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf3c8;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f3c8" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-ios-alarm-outline"></i> - </span><span class="step size-14"> - <i class="icon ion-ios-alarm-outline"></i> - </span><span class="step size-16"> - <i class="icon ion-ios-alarm-outline"></i> - </span><span class="step size-18"> - <i class="icon ion-ios-alarm-outline"></i> - </span><span class="step size-21"> - <i class="icon ion-ios-alarm-outline"></i> - </span><span class="step size-24"> - <i class="icon ion-ios-alarm-outline"></i> - </span><span class="step size-32"> - <i class="icon ion-ios-alarm-outline"></i> - </span><span class="step size-48"> - <i class="icon ion-ios-alarm-outline"></i> - </span><span class="step size-64"> - <i class="icon ion-ios-alarm-outline"></i> - </span><span class="step size-96"> - <i class="icon ion-ios-alarm-outline"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-ios-alarm-outline" /> - - <label>Selectable:</label> - <span class="ion">&#xf3c7;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf3c7;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f3c7" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-ios-albums"></i> - </span><span class="step size-14"> - <i class="icon ion-ios-albums"></i> - </span><span class="step size-16"> - <i class="icon ion-ios-albums"></i> - </span><span class="step size-18"> - <i class="icon ion-ios-albums"></i> - </span><span class="step size-21"> - <i class="icon ion-ios-albums"></i> - </span><span class="step size-24"> - <i class="icon ion-ios-albums"></i> - </span><span class="step size-32"> - <i class="icon ion-ios-albums"></i> - </span><span class="step size-48"> - <i class="icon ion-ios-albums"></i> - </span><span class="step size-64"> - <i class="icon ion-ios-albums"></i> - </span><span class="step size-96"> - <i class="icon ion-ios-albums"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-ios-albums" /> - - <label>Selectable:</label> - <span class="ion">&#xf3ca;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf3ca;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f3ca" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-ios-albums-outline"></i> - </span><span class="step size-14"> - <i class="icon ion-ios-albums-outline"></i> - </span><span class="step size-16"> - <i class="icon ion-ios-albums-outline"></i> - </span><span class="step size-18"> - <i class="icon ion-ios-albums-outline"></i> - </span><span class="step size-21"> - <i class="icon ion-ios-albums-outline"></i> - </span><span class="step size-24"> - <i class="icon ion-ios-albums-outline"></i> - </span><span class="step size-32"> - <i class="icon ion-ios-albums-outline"></i> - </span><span class="step size-48"> - <i class="icon ion-ios-albums-outline"></i> - </span><span class="step size-64"> - <i class="icon ion-ios-albums-outline"></i> - </span><span class="step size-96"> - <i class="icon ion-ios-albums-outline"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-ios-albums-outline" /> - - <label>Selectable:</label> - <span class="ion">&#xf3c9;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf3c9;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f3c9" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-ios-americanfootball"></i> - </span><span class="step size-14"> - <i class="icon ion-ios-americanfootball"></i> - </span><span class="step size-16"> - <i class="icon ion-ios-americanfootball"></i> - </span><span class="step size-18"> - <i class="icon ion-ios-americanfootball"></i> - </span><span class="step size-21"> - <i class="icon ion-ios-americanfootball"></i> - </span><span class="step size-24"> - <i class="icon ion-ios-americanfootball"></i> - </span><span class="step size-32"> - <i class="icon ion-ios-americanfootball"></i> - </span><span class="step size-48"> - <i class="icon ion-ios-americanfootball"></i> - </span><span class="step size-64"> - <i class="icon ion-ios-americanfootball"></i> - </span><span class="step size-96"> - <i class="icon ion-ios-americanfootball"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-ios-americanfootball" /> - - <label>Selectable:</label> - <span class="ion">&#xf3cc;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf3cc;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f3cc" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-ios-americanfootball-outline"></i> - </span><span class="step size-14"> - <i class="icon ion-ios-americanfootball-outline"></i> - </span><span class="step size-16"> - <i class="icon ion-ios-americanfootball-outline"></i> - </span><span class="step size-18"> - <i class="icon ion-ios-americanfootball-outline"></i> - </span><span class="step size-21"> - <i class="icon ion-ios-americanfootball-outline"></i> - </span><span class="step size-24"> - <i class="icon ion-ios-americanfootball-outline"></i> - </span><span class="step size-32"> - <i class="icon ion-ios-americanfootball-outline"></i> - </span><span class="step size-48"> - <i class="icon ion-ios-americanfootball-outline"></i> - </span><span class="step size-64"> - <i class="icon ion-ios-americanfootball-outline"></i> - </span><span class="step size-96"> - <i class="icon ion-ios-americanfootball-outline"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-ios-americanfootball-outline" /> - - <label>Selectable:</label> - <span class="ion">&#xf3cb;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf3cb;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f3cb" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-ios-analytics"></i> - </span><span class="step size-14"> - <i class="icon ion-ios-analytics"></i> - </span><span class="step size-16"> - <i class="icon ion-ios-analytics"></i> - </span><span class="step size-18"> - <i class="icon ion-ios-analytics"></i> - </span><span class="step size-21"> - <i class="icon ion-ios-analytics"></i> - </span><span class="step size-24"> - <i class="icon ion-ios-analytics"></i> - </span><span class="step size-32"> - <i class="icon ion-ios-analytics"></i> - </span><span class="step size-48"> - <i class="icon ion-ios-analytics"></i> - </span><span class="step size-64"> - <i class="icon ion-ios-analytics"></i> - </span><span class="step size-96"> - <i class="icon ion-ios-analytics"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-ios-analytics" /> - - <label>Selectable:</label> - <span class="ion">&#xf3ce;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf3ce;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f3ce" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-ios-analytics-outline"></i> - </span><span class="step size-14"> - <i class="icon ion-ios-analytics-outline"></i> - </span><span class="step size-16"> - <i class="icon ion-ios-analytics-outline"></i> - </span><span class="step size-18"> - <i class="icon ion-ios-analytics-outline"></i> - </span><span class="step size-21"> - <i class="icon ion-ios-analytics-outline"></i> - </span><span class="step size-24"> - <i class="icon ion-ios-analytics-outline"></i> - </span><span class="step size-32"> - <i class="icon ion-ios-analytics-outline"></i> - </span><span class="step size-48"> - <i class="icon ion-ios-analytics-outline"></i> - </span><span class="step size-64"> - <i class="icon ion-ios-analytics-outline"></i> - </span><span class="step size-96"> - <i class="icon ion-ios-analytics-outline"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-ios-analytics-outline" /> - - <label>Selectable:</label> - <span class="ion">&#xf3cd;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf3cd;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f3cd" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-ios-arrow-back"></i> - </span><span class="step size-14"> - <i class="icon ion-ios-arrow-back"></i> - </span><span class="step size-16"> - <i class="icon ion-ios-arrow-back"></i> - </span><span class="step size-18"> - <i class="icon ion-ios-arrow-back"></i> - </span><span class="step size-21"> - <i class="icon ion-ios-arrow-back"></i> - </span><span class="step size-24"> - <i class="icon ion-ios-arrow-back"></i> - </span><span class="step size-32"> - <i class="icon ion-ios-arrow-back"></i> - </span><span class="step size-48"> - <i class="icon ion-ios-arrow-back"></i> - </span><span class="step size-64"> - <i class="icon ion-ios-arrow-back"></i> - </span><span class="step size-96"> - <i class="icon ion-ios-arrow-back"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-ios-arrow-back" /> - - <label>Selectable:</label> - <span class="ion">&#xf3cf;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf3cf;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f3cf" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-ios-arrow-down"></i> - </span><span class="step size-14"> - <i class="icon ion-ios-arrow-down"></i> - </span><span class="step size-16"> - <i class="icon ion-ios-arrow-down"></i> - </span><span class="step size-18"> - <i class="icon ion-ios-arrow-down"></i> - </span><span class="step size-21"> - <i class="icon ion-ios-arrow-down"></i> - </span><span class="step size-24"> - <i class="icon ion-ios-arrow-down"></i> - </span><span class="step size-32"> - <i class="icon ion-ios-arrow-down"></i> - </span><span class="step size-48"> - <i class="icon ion-ios-arrow-down"></i> - </span><span class="step size-64"> - <i class="icon ion-ios-arrow-down"></i> - </span><span class="step size-96"> - <i class="icon ion-ios-arrow-down"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-ios-arrow-down" /> - - <label>Selectable:</label> - <span class="ion">&#xf3d0;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf3d0;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f3d0" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-ios-arrow-forward"></i> - </span><span class="step size-14"> - <i class="icon ion-ios-arrow-forward"></i> - </span><span class="step size-16"> - <i class="icon ion-ios-arrow-forward"></i> - </span><span class="step size-18"> - <i class="icon ion-ios-arrow-forward"></i> - </span><span class="step size-21"> - <i class="icon ion-ios-arrow-forward"></i> - </span><span class="step size-24"> - <i class="icon ion-ios-arrow-forward"></i> - </span><span class="step size-32"> - <i class="icon ion-ios-arrow-forward"></i> - </span><span class="step size-48"> - <i class="icon ion-ios-arrow-forward"></i> - </span><span class="step size-64"> - <i class="icon ion-ios-arrow-forward"></i> - </span><span class="step size-96"> - <i class="icon ion-ios-arrow-forward"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-ios-arrow-forward" /> - - <label>Selectable:</label> - <span class="ion">&#xf3d1;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf3d1;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f3d1" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-ios-arrow-left"></i> - </span><span class="step size-14"> - <i class="icon ion-ios-arrow-left"></i> - </span><span class="step size-16"> - <i class="icon ion-ios-arrow-left"></i> - </span><span class="step size-18"> - <i class="icon ion-ios-arrow-left"></i> - </span><span class="step size-21"> - <i class="icon ion-ios-arrow-left"></i> - </span><span class="step size-24"> - <i class="icon ion-ios-arrow-left"></i> - </span><span class="step size-32"> - <i class="icon ion-ios-arrow-left"></i> - </span><span class="step size-48"> - <i class="icon ion-ios-arrow-left"></i> - </span><span class="step size-64"> - <i class="icon ion-ios-arrow-left"></i> - </span><span class="step size-96"> - <i class="icon ion-ios-arrow-left"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-ios-arrow-left" /> - - <label>Selectable:</label> - <span class="ion">&#xf3d2;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf3d2;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f3d2" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-ios-arrow-right"></i> - </span><span class="step size-14"> - <i class="icon ion-ios-arrow-right"></i> - </span><span class="step size-16"> - <i class="icon ion-ios-arrow-right"></i> - </span><span class="step size-18"> - <i class="icon ion-ios-arrow-right"></i> - </span><span class="step size-21"> - <i class="icon ion-ios-arrow-right"></i> - </span><span class="step size-24"> - <i class="icon ion-ios-arrow-right"></i> - </span><span class="step size-32"> - <i class="icon ion-ios-arrow-right"></i> - </span><span class="step size-48"> - <i class="icon ion-ios-arrow-right"></i> - </span><span class="step size-64"> - <i class="icon ion-ios-arrow-right"></i> - </span><span class="step size-96"> - <i class="icon ion-ios-arrow-right"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-ios-arrow-right" /> - - <label>Selectable:</label> - <span class="ion">&#xf3d3;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf3d3;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f3d3" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-ios-arrow-thin-down"></i> - </span><span class="step size-14"> - <i class="icon ion-ios-arrow-thin-down"></i> - </span><span class="step size-16"> - <i class="icon ion-ios-arrow-thin-down"></i> - </span><span class="step size-18"> - <i class="icon ion-ios-arrow-thin-down"></i> - </span><span class="step size-21"> - <i class="icon ion-ios-arrow-thin-down"></i> - </span><span class="step size-24"> - <i class="icon ion-ios-arrow-thin-down"></i> - </span><span class="step size-32"> - <i class="icon ion-ios-arrow-thin-down"></i> - </span><span class="step size-48"> - <i class="icon ion-ios-arrow-thin-down"></i> - </span><span class="step size-64"> - <i class="icon ion-ios-arrow-thin-down"></i> - </span><span class="step size-96"> - <i class="icon ion-ios-arrow-thin-down"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-ios-arrow-thin-down" /> - - <label>Selectable:</label> - <span class="ion">&#xf3d4;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf3d4;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f3d4" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-ios-arrow-thin-left"></i> - </span><span class="step size-14"> - <i class="icon ion-ios-arrow-thin-left"></i> - </span><span class="step size-16"> - <i class="icon ion-ios-arrow-thin-left"></i> - </span><span class="step size-18"> - <i class="icon ion-ios-arrow-thin-left"></i> - </span><span class="step size-21"> - <i class="icon ion-ios-arrow-thin-left"></i> - </span><span class="step size-24"> - <i class="icon ion-ios-arrow-thin-left"></i> - </span><span class="step size-32"> - <i class="icon ion-ios-arrow-thin-left"></i> - </span><span class="step size-48"> - <i class="icon ion-ios-arrow-thin-left"></i> - </span><span class="step size-64"> - <i class="icon ion-ios-arrow-thin-left"></i> - </span><span class="step size-96"> - <i class="icon ion-ios-arrow-thin-left"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-ios-arrow-thin-left" /> - - <label>Selectable:</label> - <span class="ion">&#xf3d5;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf3d5;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f3d5" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-ios-arrow-thin-right"></i> - </span><span class="step size-14"> - <i class="icon ion-ios-arrow-thin-right"></i> - </span><span class="step size-16"> - <i class="icon ion-ios-arrow-thin-right"></i> - </span><span class="step size-18"> - <i class="icon ion-ios-arrow-thin-right"></i> - </span><span class="step size-21"> - <i class="icon ion-ios-arrow-thin-right"></i> - </span><span class="step size-24"> - <i class="icon ion-ios-arrow-thin-right"></i> - </span><span class="step size-32"> - <i class="icon ion-ios-arrow-thin-right"></i> - </span><span class="step size-48"> - <i class="icon ion-ios-arrow-thin-right"></i> - </span><span class="step size-64"> - <i class="icon ion-ios-arrow-thin-right"></i> - </span><span class="step size-96"> - <i class="icon ion-ios-arrow-thin-right"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-ios-arrow-thin-right" /> - - <label>Selectable:</label> - <span class="ion">&#xf3d6;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf3d6;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f3d6" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-ios-arrow-thin-up"></i> - </span><span class="step size-14"> - <i class="icon ion-ios-arrow-thin-up"></i> - </span><span class="step size-16"> - <i class="icon ion-ios-arrow-thin-up"></i> - </span><span class="step size-18"> - <i class="icon ion-ios-arrow-thin-up"></i> - </span><span class="step size-21"> - <i class="icon ion-ios-arrow-thin-up"></i> - </span><span class="step size-24"> - <i class="icon ion-ios-arrow-thin-up"></i> - </span><span class="step size-32"> - <i class="icon ion-ios-arrow-thin-up"></i> - </span><span class="step size-48"> - <i class="icon ion-ios-arrow-thin-up"></i> - </span><span class="step size-64"> - <i class="icon ion-ios-arrow-thin-up"></i> - </span><span class="step size-96"> - <i class="icon ion-ios-arrow-thin-up"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-ios-arrow-thin-up" /> - - <label>Selectable:</label> - <span class="ion">&#xf3d7;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf3d7;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f3d7" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-ios-arrow-up"></i> - </span><span class="step size-14"> - <i class="icon ion-ios-arrow-up"></i> - </span><span class="step size-16"> - <i class="icon ion-ios-arrow-up"></i> - </span><span class="step size-18"> - <i class="icon ion-ios-arrow-up"></i> - </span><span class="step size-21"> - <i class="icon ion-ios-arrow-up"></i> - </span><span class="step size-24"> - <i class="icon ion-ios-arrow-up"></i> - </span><span class="step size-32"> - <i class="icon ion-ios-arrow-up"></i> - </span><span class="step size-48"> - <i class="icon ion-ios-arrow-up"></i> - </span><span class="step size-64"> - <i class="icon ion-ios-arrow-up"></i> - </span><span class="step size-96"> - <i class="icon ion-ios-arrow-up"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-ios-arrow-up" /> - - <label>Selectable:</label> - <span class="ion">&#xf3d8;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf3d8;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f3d8" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-ios-at"></i> - </span><span class="step size-14"> - <i class="icon ion-ios-at"></i> - </span><span class="step size-16"> - <i class="icon ion-ios-at"></i> - </span><span class="step size-18"> - <i class="icon ion-ios-at"></i> - </span><span class="step size-21"> - <i class="icon ion-ios-at"></i> - </span><span class="step size-24"> - <i class="icon ion-ios-at"></i> - </span><span class="step size-32"> - <i class="icon ion-ios-at"></i> - </span><span class="step size-48"> - <i class="icon ion-ios-at"></i> - </span><span class="step size-64"> - <i class="icon ion-ios-at"></i> - </span><span class="step size-96"> - <i class="icon ion-ios-at"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-ios-at" /> - - <label>Selectable:</label> - <span class="ion">&#xf3da;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf3da;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f3da" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-ios-at-outline"></i> - </span><span class="step size-14"> - <i class="icon ion-ios-at-outline"></i> - </span><span class="step size-16"> - <i class="icon ion-ios-at-outline"></i> - </span><span class="step size-18"> - <i class="icon ion-ios-at-outline"></i> - </span><span class="step size-21"> - <i class="icon ion-ios-at-outline"></i> - </span><span class="step size-24"> - <i class="icon ion-ios-at-outline"></i> - </span><span class="step size-32"> - <i class="icon ion-ios-at-outline"></i> - </span><span class="step size-48"> - <i class="icon ion-ios-at-outline"></i> - </span><span class="step size-64"> - <i class="icon ion-ios-at-outline"></i> - </span><span class="step size-96"> - <i class="icon ion-ios-at-outline"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-ios-at-outline" /> - - <label>Selectable:</label> - <span class="ion">&#xf3d9;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf3d9;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f3d9" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-ios-barcode"></i> - </span><span class="step size-14"> - <i class="icon ion-ios-barcode"></i> - </span><span class="step size-16"> - <i class="icon ion-ios-barcode"></i> - </span><span class="step size-18"> - <i class="icon ion-ios-barcode"></i> - </span><span class="step size-21"> - <i class="icon ion-ios-barcode"></i> - </span><span class="step size-24"> - <i class="icon ion-ios-barcode"></i> - </span><span class="step size-32"> - <i class="icon ion-ios-barcode"></i> - </span><span class="step size-48"> - <i class="icon ion-ios-barcode"></i> - </span><span class="step size-64"> - <i class="icon ion-ios-barcode"></i> - </span><span class="step size-96"> - <i class="icon ion-ios-barcode"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-ios-barcode" /> - - <label>Selectable:</label> - <span class="ion">&#xf3dc;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf3dc;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f3dc" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-ios-barcode-outline"></i> - </span><span class="step size-14"> - <i class="icon ion-ios-barcode-outline"></i> - </span><span class="step size-16"> - <i class="icon ion-ios-barcode-outline"></i> - </span><span class="step size-18"> - <i class="icon ion-ios-barcode-outline"></i> - </span><span class="step size-21"> - <i class="icon ion-ios-barcode-outline"></i> - </span><span class="step size-24"> - <i class="icon ion-ios-barcode-outline"></i> - </span><span class="step size-32"> - <i class="icon ion-ios-barcode-outline"></i> - </span><span class="step size-48"> - <i class="icon ion-ios-barcode-outline"></i> - </span><span class="step size-64"> - <i class="icon ion-ios-barcode-outline"></i> - </span><span class="step size-96"> - <i class="icon ion-ios-barcode-outline"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-ios-barcode-outline" /> - - <label>Selectable:</label> - <span class="ion">&#xf3db;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf3db;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f3db" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-ios-baseball"></i> - </span><span class="step size-14"> - <i class="icon ion-ios-baseball"></i> - </span><span class="step size-16"> - <i class="icon ion-ios-baseball"></i> - </span><span class="step size-18"> - <i class="icon ion-ios-baseball"></i> - </span><span class="step size-21"> - <i class="icon ion-ios-baseball"></i> - </span><span class="step size-24"> - <i class="icon ion-ios-baseball"></i> - </span><span class="step size-32"> - <i class="icon ion-ios-baseball"></i> - </span><span class="step size-48"> - <i class="icon ion-ios-baseball"></i> - </span><span class="step size-64"> - <i class="icon ion-ios-baseball"></i> - </span><span class="step size-96"> - <i class="icon ion-ios-baseball"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-ios-baseball" /> - - <label>Selectable:</label> - <span class="ion">&#xf3de;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf3de;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f3de" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-ios-baseball-outline"></i> - </span><span class="step size-14"> - <i class="icon ion-ios-baseball-outline"></i> - </span><span class="step size-16"> - <i class="icon ion-ios-baseball-outline"></i> - </span><span class="step size-18"> - <i class="icon ion-ios-baseball-outline"></i> - </span><span class="step size-21"> - <i class="icon ion-ios-baseball-outline"></i> - </span><span class="step size-24"> - <i class="icon ion-ios-baseball-outline"></i> - </span><span class="step size-32"> - <i class="icon ion-ios-baseball-outline"></i> - </span><span class="step size-48"> - <i class="icon ion-ios-baseball-outline"></i> - </span><span class="step size-64"> - <i class="icon ion-ios-baseball-outline"></i> - </span><span class="step size-96"> - <i class="icon ion-ios-baseball-outline"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-ios-baseball-outline" /> - - <label>Selectable:</label> - <span class="ion">&#xf3dd;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf3dd;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f3dd" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-ios-basketball"></i> - </span><span class="step size-14"> - <i class="icon ion-ios-basketball"></i> - </span><span class="step size-16"> - <i class="icon ion-ios-basketball"></i> - </span><span class="step size-18"> - <i class="icon ion-ios-basketball"></i> - </span><span class="step size-21"> - <i class="icon ion-ios-basketball"></i> - </span><span class="step size-24"> - <i class="icon ion-ios-basketball"></i> - </span><span class="step size-32"> - <i class="icon ion-ios-basketball"></i> - </span><span class="step size-48"> - <i class="icon ion-ios-basketball"></i> - </span><span class="step size-64"> - <i class="icon ion-ios-basketball"></i> - </span><span class="step size-96"> - <i class="icon ion-ios-basketball"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-ios-basketball" /> - - <label>Selectable:</label> - <span class="ion">&#xf3e0;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf3e0;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f3e0" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-ios-basketball-outline"></i> - </span><span class="step size-14"> - <i class="icon ion-ios-basketball-outline"></i> - </span><span class="step size-16"> - <i class="icon ion-ios-basketball-outline"></i> - </span><span class="step size-18"> - <i class="icon ion-ios-basketball-outline"></i> - </span><span class="step size-21"> - <i class="icon ion-ios-basketball-outline"></i> - </span><span class="step size-24"> - <i class="icon ion-ios-basketball-outline"></i> - </span><span class="step size-32"> - <i class="icon ion-ios-basketball-outline"></i> - </span><span class="step size-48"> - <i class="icon ion-ios-basketball-outline"></i> - </span><span class="step size-64"> - <i class="icon ion-ios-basketball-outline"></i> - </span><span class="step size-96"> - <i class="icon ion-ios-basketball-outline"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-ios-basketball-outline" /> - - <label>Selectable:</label> - <span class="ion">&#xf3df;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf3df;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f3df" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-ios-bell"></i> - </span><span class="step size-14"> - <i class="icon ion-ios-bell"></i> - </span><span class="step size-16"> - <i class="icon ion-ios-bell"></i> - </span><span class="step size-18"> - <i class="icon ion-ios-bell"></i> - </span><span class="step size-21"> - <i class="icon ion-ios-bell"></i> - </span><span class="step size-24"> - <i class="icon ion-ios-bell"></i> - </span><span class="step size-32"> - <i class="icon ion-ios-bell"></i> - </span><span class="step size-48"> - <i class="icon ion-ios-bell"></i> - </span><span class="step size-64"> - <i class="icon ion-ios-bell"></i> - </span><span class="step size-96"> - <i class="icon ion-ios-bell"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-ios-bell" /> - - <label>Selectable:</label> - <span class="ion">&#xf3e2;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf3e2;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f3e2" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-ios-bell-outline"></i> - </span><span class="step size-14"> - <i class="icon ion-ios-bell-outline"></i> - </span><span class="step size-16"> - <i class="icon ion-ios-bell-outline"></i> - </span><span class="step size-18"> - <i class="icon ion-ios-bell-outline"></i> - </span><span class="step size-21"> - <i class="icon ion-ios-bell-outline"></i> - </span><span class="step size-24"> - <i class="icon ion-ios-bell-outline"></i> - </span><span class="step size-32"> - <i class="icon ion-ios-bell-outline"></i> - </span><span class="step size-48"> - <i class="icon ion-ios-bell-outline"></i> - </span><span class="step size-64"> - <i class="icon ion-ios-bell-outline"></i> - </span><span class="step size-96"> - <i class="icon ion-ios-bell-outline"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-ios-bell-outline" /> - - <label>Selectable:</label> - <span class="ion">&#xf3e1;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf3e1;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f3e1" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-ios-body"></i> - </span><span class="step size-14"> - <i class="icon ion-ios-body"></i> - </span><span class="step size-16"> - <i class="icon ion-ios-body"></i> - </span><span class="step size-18"> - <i class="icon ion-ios-body"></i> - </span><span class="step size-21"> - <i class="icon ion-ios-body"></i> - </span><span class="step size-24"> - <i class="icon ion-ios-body"></i> - </span><span class="step size-32"> - <i class="icon ion-ios-body"></i> - </span><span class="step size-48"> - <i class="icon ion-ios-body"></i> - </span><span class="step size-64"> - <i class="icon ion-ios-body"></i> - </span><span class="step size-96"> - <i class="icon ion-ios-body"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-ios-body" /> - - <label>Selectable:</label> - <span class="ion">&#xf3e4;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf3e4;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f3e4" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-ios-body-outline"></i> - </span><span class="step size-14"> - <i class="icon ion-ios-body-outline"></i> - </span><span class="step size-16"> - <i class="icon ion-ios-body-outline"></i> - </span><span class="step size-18"> - <i class="icon ion-ios-body-outline"></i> - </span><span class="step size-21"> - <i class="icon ion-ios-body-outline"></i> - </span><span class="step size-24"> - <i class="icon ion-ios-body-outline"></i> - </span><span class="step size-32"> - <i class="icon ion-ios-body-outline"></i> - </span><span class="step size-48"> - <i class="icon ion-ios-body-outline"></i> - </span><span class="step size-64"> - <i class="icon ion-ios-body-outline"></i> - </span><span class="step size-96"> - <i class="icon ion-ios-body-outline"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-ios-body-outline" /> - - <label>Selectable:</label> - <span class="ion">&#xf3e3;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf3e3;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f3e3" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-ios-bolt"></i> - </span><span class="step size-14"> - <i class="icon ion-ios-bolt"></i> - </span><span class="step size-16"> - <i class="icon ion-ios-bolt"></i> - </span><span class="step size-18"> - <i class="icon ion-ios-bolt"></i> - </span><span class="step size-21"> - <i class="icon ion-ios-bolt"></i> - </span><span class="step size-24"> - <i class="icon ion-ios-bolt"></i> - </span><span class="step size-32"> - <i class="icon ion-ios-bolt"></i> - </span><span class="step size-48"> - <i class="icon ion-ios-bolt"></i> - </span><span class="step size-64"> - <i class="icon ion-ios-bolt"></i> - </span><span class="step size-96"> - <i class="icon ion-ios-bolt"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-ios-bolt" /> - - <label>Selectable:</label> - <span class="ion">&#xf3e6;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf3e6;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f3e6" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-ios-bolt-outline"></i> - </span><span class="step size-14"> - <i class="icon ion-ios-bolt-outline"></i> - </span><span class="step size-16"> - <i class="icon ion-ios-bolt-outline"></i> - </span><span class="step size-18"> - <i class="icon ion-ios-bolt-outline"></i> - </span><span class="step size-21"> - <i class="icon ion-ios-bolt-outline"></i> - </span><span class="step size-24"> - <i class="icon ion-ios-bolt-outline"></i> - </span><span class="step size-32"> - <i class="icon ion-ios-bolt-outline"></i> - </span><span class="step size-48"> - <i class="icon ion-ios-bolt-outline"></i> - </span><span class="step size-64"> - <i class="icon ion-ios-bolt-outline"></i> - </span><span class="step size-96"> - <i class="icon ion-ios-bolt-outline"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-ios-bolt-outline" /> - - <label>Selectable:</label> - <span class="ion">&#xf3e5;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf3e5;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f3e5" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-ios-book"></i> - </span><span class="step size-14"> - <i class="icon ion-ios-book"></i> - </span><span class="step size-16"> - <i class="icon ion-ios-book"></i> - </span><span class="step size-18"> - <i class="icon ion-ios-book"></i> - </span><span class="step size-21"> - <i class="icon ion-ios-book"></i> - </span><span class="step size-24"> - <i class="icon ion-ios-book"></i> - </span><span class="step size-32"> - <i class="icon ion-ios-book"></i> - </span><span class="step size-48"> - <i class="icon ion-ios-book"></i> - </span><span class="step size-64"> - <i class="icon ion-ios-book"></i> - </span><span class="step size-96"> - <i class="icon ion-ios-book"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-ios-book" /> - - <label>Selectable:</label> - <span class="ion">&#xf3e8;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf3e8;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f3e8" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-ios-book-outline"></i> - </span><span class="step size-14"> - <i class="icon ion-ios-book-outline"></i> - </span><span class="step size-16"> - <i class="icon ion-ios-book-outline"></i> - </span><span class="step size-18"> - <i class="icon ion-ios-book-outline"></i> - </span><span class="step size-21"> - <i class="icon ion-ios-book-outline"></i> - </span><span class="step size-24"> - <i class="icon ion-ios-book-outline"></i> - </span><span class="step size-32"> - <i class="icon ion-ios-book-outline"></i> - </span><span class="step size-48"> - <i class="icon ion-ios-book-outline"></i> - </span><span class="step size-64"> - <i class="icon ion-ios-book-outline"></i> - </span><span class="step size-96"> - <i class="icon ion-ios-book-outline"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-ios-book-outline" /> - - <label>Selectable:</label> - <span class="ion">&#xf3e7;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf3e7;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f3e7" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-ios-bookmarks"></i> - </span><span class="step size-14"> - <i class="icon ion-ios-bookmarks"></i> - </span><span class="step size-16"> - <i class="icon ion-ios-bookmarks"></i> - </span><span class="step size-18"> - <i class="icon ion-ios-bookmarks"></i> - </span><span class="step size-21"> - <i class="icon ion-ios-bookmarks"></i> - </span><span class="step size-24"> - <i class="icon ion-ios-bookmarks"></i> - </span><span class="step size-32"> - <i class="icon ion-ios-bookmarks"></i> - </span><span class="step size-48"> - <i class="icon ion-ios-bookmarks"></i> - </span><span class="step size-64"> - <i class="icon ion-ios-bookmarks"></i> - </span><span class="step size-96"> - <i class="icon ion-ios-bookmarks"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-ios-bookmarks" /> - - <label>Selectable:</label> - <span class="ion">&#xf3ea;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf3ea;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f3ea" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-ios-bookmarks-outline"></i> - </span><span class="step size-14"> - <i class="icon ion-ios-bookmarks-outline"></i> - </span><span class="step size-16"> - <i class="icon ion-ios-bookmarks-outline"></i> - </span><span class="step size-18"> - <i class="icon ion-ios-bookmarks-outline"></i> - </span><span class="step size-21"> - <i class="icon ion-ios-bookmarks-outline"></i> - </span><span class="step size-24"> - <i class="icon ion-ios-bookmarks-outline"></i> - </span><span class="step size-32"> - <i class="icon ion-ios-bookmarks-outline"></i> - </span><span class="step size-48"> - <i class="icon ion-ios-bookmarks-outline"></i> - </span><span class="step size-64"> - <i class="icon ion-ios-bookmarks-outline"></i> - </span><span class="step size-96"> - <i class="icon ion-ios-bookmarks-outline"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-ios-bookmarks-outline" /> - - <label>Selectable:</label> - <span class="ion">&#xf3e9;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf3e9;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f3e9" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-ios-box"></i> - </span><span class="step size-14"> - <i class="icon ion-ios-box"></i> - </span><span class="step size-16"> - <i class="icon ion-ios-box"></i> - </span><span class="step size-18"> - <i class="icon ion-ios-box"></i> - </span><span class="step size-21"> - <i class="icon ion-ios-box"></i> - </span><span class="step size-24"> - <i class="icon ion-ios-box"></i> - </span><span class="step size-32"> - <i class="icon ion-ios-box"></i> - </span><span class="step size-48"> - <i class="icon ion-ios-box"></i> - </span><span class="step size-64"> - <i class="icon ion-ios-box"></i> - </span><span class="step size-96"> - <i class="icon ion-ios-box"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-ios-box" /> - - <label>Selectable:</label> - <span class="ion">&#xf3ec;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf3ec;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f3ec" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-ios-box-outline"></i> - </span><span class="step size-14"> - <i class="icon ion-ios-box-outline"></i> - </span><span class="step size-16"> - <i class="icon ion-ios-box-outline"></i> - </span><span class="step size-18"> - <i class="icon ion-ios-box-outline"></i> - </span><span class="step size-21"> - <i class="icon ion-ios-box-outline"></i> - </span><span class="step size-24"> - <i class="icon ion-ios-box-outline"></i> - </span><span class="step size-32"> - <i class="icon ion-ios-box-outline"></i> - </span><span class="step size-48"> - <i class="icon ion-ios-box-outline"></i> - </span><span class="step size-64"> - <i class="icon ion-ios-box-outline"></i> - </span><span class="step size-96"> - <i class="icon ion-ios-box-outline"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-ios-box-outline" /> - - <label>Selectable:</label> - <span class="ion">&#xf3eb;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf3eb;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f3eb" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-ios-briefcase"></i> - </span><span class="step size-14"> - <i class="icon ion-ios-briefcase"></i> - </span><span class="step size-16"> - <i class="icon ion-ios-briefcase"></i> - </span><span class="step size-18"> - <i class="icon ion-ios-briefcase"></i> - </span><span class="step size-21"> - <i class="icon ion-ios-briefcase"></i> - </span><span class="step size-24"> - <i class="icon ion-ios-briefcase"></i> - </span><span class="step size-32"> - <i class="icon ion-ios-briefcase"></i> - </span><span class="step size-48"> - <i class="icon ion-ios-briefcase"></i> - </span><span class="step size-64"> - <i class="icon ion-ios-briefcase"></i> - </span><span class="step size-96"> - <i class="icon ion-ios-briefcase"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-ios-briefcase" /> - - <label>Selectable:</label> - <span class="ion">&#xf3ee;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf3ee;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f3ee" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-ios-briefcase-outline"></i> - </span><span class="step size-14"> - <i class="icon ion-ios-briefcase-outline"></i> - </span><span class="step size-16"> - <i class="icon ion-ios-briefcase-outline"></i> - </span><span class="step size-18"> - <i class="icon ion-ios-briefcase-outline"></i> - </span><span class="step size-21"> - <i class="icon ion-ios-briefcase-outline"></i> - </span><span class="step size-24"> - <i class="icon ion-ios-briefcase-outline"></i> - </span><span class="step size-32"> - <i class="icon ion-ios-briefcase-outline"></i> - </span><span class="step size-48"> - <i class="icon ion-ios-briefcase-outline"></i> - </span><span class="step size-64"> - <i class="icon ion-ios-briefcase-outline"></i> - </span><span class="step size-96"> - <i class="icon ion-ios-briefcase-outline"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-ios-briefcase-outline" /> - - <label>Selectable:</label> - <span class="ion">&#xf3ed;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf3ed;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f3ed" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-ios-browsers"></i> - </span><span class="step size-14"> - <i class="icon ion-ios-browsers"></i> - </span><span class="step size-16"> - <i class="icon ion-ios-browsers"></i> - </span><span class="step size-18"> - <i class="icon ion-ios-browsers"></i> - </span><span class="step size-21"> - <i class="icon ion-ios-browsers"></i> - </span><span class="step size-24"> - <i class="icon ion-ios-browsers"></i> - </span><span class="step size-32"> - <i class="icon ion-ios-browsers"></i> - </span><span class="step size-48"> - <i class="icon ion-ios-browsers"></i> - </span><span class="step size-64"> - <i class="icon ion-ios-browsers"></i> - </span><span class="step size-96"> - <i class="icon ion-ios-browsers"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-ios-browsers" /> - - <label>Selectable:</label> - <span class="ion">&#xf3f0;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf3f0;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f3f0" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-ios-browsers-outline"></i> - </span><span class="step size-14"> - <i class="icon ion-ios-browsers-outline"></i> - </span><span class="step size-16"> - <i class="icon ion-ios-browsers-outline"></i> - </span><span class="step size-18"> - <i class="icon ion-ios-browsers-outline"></i> - </span><span class="step size-21"> - <i class="icon ion-ios-browsers-outline"></i> - </span><span class="step size-24"> - <i class="icon ion-ios-browsers-outline"></i> - </span><span class="step size-32"> - <i class="icon ion-ios-browsers-outline"></i> - </span><span class="step size-48"> - <i class="icon ion-ios-browsers-outline"></i> - </span><span class="step size-64"> - <i class="icon ion-ios-browsers-outline"></i> - </span><span class="step size-96"> - <i class="icon ion-ios-browsers-outline"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-ios-browsers-outline" /> - - <label>Selectable:</label> - <span class="ion">&#xf3ef;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf3ef;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f3ef" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-ios-calculator"></i> - </span><span class="step size-14"> - <i class="icon ion-ios-calculator"></i> - </span><span class="step size-16"> - <i class="icon ion-ios-calculator"></i> - </span><span class="step size-18"> - <i class="icon ion-ios-calculator"></i> - </span><span class="step size-21"> - <i class="icon ion-ios-calculator"></i> - </span><span class="step size-24"> - <i class="icon ion-ios-calculator"></i> - </span><span class="step size-32"> - <i class="icon ion-ios-calculator"></i> - </span><span class="step size-48"> - <i class="icon ion-ios-calculator"></i> - </span><span class="step size-64"> - <i class="icon ion-ios-calculator"></i> - </span><span class="step size-96"> - <i class="icon ion-ios-calculator"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-ios-calculator" /> - - <label>Selectable:</label> - <span class="ion">&#xf3f2;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf3f2;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f3f2" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-ios-calculator-outline"></i> - </span><span class="step size-14"> - <i class="icon ion-ios-calculator-outline"></i> - </span><span class="step size-16"> - <i class="icon ion-ios-calculator-outline"></i> - </span><span class="step size-18"> - <i class="icon ion-ios-calculator-outline"></i> - </span><span class="step size-21"> - <i class="icon ion-ios-calculator-outline"></i> - </span><span class="step size-24"> - <i class="icon ion-ios-calculator-outline"></i> - </span><span class="step size-32"> - <i class="icon ion-ios-calculator-outline"></i> - </span><span class="step size-48"> - <i class="icon ion-ios-calculator-outline"></i> - </span><span class="step size-64"> - <i class="icon ion-ios-calculator-outline"></i> - </span><span class="step size-96"> - <i class="icon ion-ios-calculator-outline"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-ios-calculator-outline" /> - - <label>Selectable:</label> - <span class="ion">&#xf3f1;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf3f1;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f3f1" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-ios-calendar"></i> - </span><span class="step size-14"> - <i class="icon ion-ios-calendar"></i> - </span><span class="step size-16"> - <i class="icon ion-ios-calendar"></i> - </span><span class="step size-18"> - <i class="icon ion-ios-calendar"></i> - </span><span class="step size-21"> - <i class="icon ion-ios-calendar"></i> - </span><span class="step size-24"> - <i class="icon ion-ios-calendar"></i> - </span><span class="step size-32"> - <i class="icon ion-ios-calendar"></i> - </span><span class="step size-48"> - <i class="icon ion-ios-calendar"></i> - </span><span class="step size-64"> - <i class="icon ion-ios-calendar"></i> - </span><span class="step size-96"> - <i class="icon ion-ios-calendar"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-ios-calendar" /> - - <label>Selectable:</label> - <span class="ion">&#xf3f4;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf3f4;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f3f4" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-ios-calendar-outline"></i> - </span><span class="step size-14"> - <i class="icon ion-ios-calendar-outline"></i> - </span><span class="step size-16"> - <i class="icon ion-ios-calendar-outline"></i> - </span><span class="step size-18"> - <i class="icon ion-ios-calendar-outline"></i> - </span><span class="step size-21"> - <i class="icon ion-ios-calendar-outline"></i> - </span><span class="step size-24"> - <i class="icon ion-ios-calendar-outline"></i> - </span><span class="step size-32"> - <i class="icon ion-ios-calendar-outline"></i> - </span><span class="step size-48"> - <i class="icon ion-ios-calendar-outline"></i> - </span><span class="step size-64"> - <i class="icon ion-ios-calendar-outline"></i> - </span><span class="step size-96"> - <i class="icon ion-ios-calendar-outline"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-ios-calendar-outline" /> - - <label>Selectable:</label> - <span class="ion">&#xf3f3;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf3f3;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f3f3" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-ios-camera"></i> - </span><span class="step size-14"> - <i class="icon ion-ios-camera"></i> - </span><span class="step size-16"> - <i class="icon ion-ios-camera"></i> - </span><span class="step size-18"> - <i class="icon ion-ios-camera"></i> - </span><span class="step size-21"> - <i class="icon ion-ios-camera"></i> - </span><span class="step size-24"> - <i class="icon ion-ios-camera"></i> - </span><span class="step size-32"> - <i class="icon ion-ios-camera"></i> - </span><span class="step size-48"> - <i class="icon ion-ios-camera"></i> - </span><span class="step size-64"> - <i class="icon ion-ios-camera"></i> - </span><span class="step size-96"> - <i class="icon ion-ios-camera"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-ios-camera" /> - - <label>Selectable:</label> - <span class="ion">&#xf3f6;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf3f6;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f3f6" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-ios-camera-outline"></i> - </span><span class="step size-14"> - <i class="icon ion-ios-camera-outline"></i> - </span><span class="step size-16"> - <i class="icon ion-ios-camera-outline"></i> - </span><span class="step size-18"> - <i class="icon ion-ios-camera-outline"></i> - </span><span class="step size-21"> - <i class="icon ion-ios-camera-outline"></i> - </span><span class="step size-24"> - <i class="icon ion-ios-camera-outline"></i> - </span><span class="step size-32"> - <i class="icon ion-ios-camera-outline"></i> - </span><span class="step size-48"> - <i class="icon ion-ios-camera-outline"></i> - </span><span class="step size-64"> - <i class="icon ion-ios-camera-outline"></i> - </span><span class="step size-96"> - <i class="icon ion-ios-camera-outline"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-ios-camera-outline" /> - - <label>Selectable:</label> - <span class="ion">&#xf3f5;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf3f5;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f3f5" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-ios-cart"></i> - </span><span class="step size-14"> - <i class="icon ion-ios-cart"></i> - </span><span class="step size-16"> - <i class="icon ion-ios-cart"></i> - </span><span class="step size-18"> - <i class="icon ion-ios-cart"></i> - </span><span class="step size-21"> - <i class="icon ion-ios-cart"></i> - </span><span class="step size-24"> - <i class="icon ion-ios-cart"></i> - </span><span class="step size-32"> - <i class="icon ion-ios-cart"></i> - </span><span class="step size-48"> - <i class="icon ion-ios-cart"></i> - </span><span class="step size-64"> - <i class="icon ion-ios-cart"></i> - </span><span class="step size-96"> - <i class="icon ion-ios-cart"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-ios-cart" /> - - <label>Selectable:</label> - <span class="ion">&#xf3f8;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf3f8;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f3f8" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-ios-cart-outline"></i> - </span><span class="step size-14"> - <i class="icon ion-ios-cart-outline"></i> - </span><span class="step size-16"> - <i class="icon ion-ios-cart-outline"></i> - </span><span class="step size-18"> - <i class="icon ion-ios-cart-outline"></i> - </span><span class="step size-21"> - <i class="icon ion-ios-cart-outline"></i> - </span><span class="step size-24"> - <i class="icon ion-ios-cart-outline"></i> - </span><span class="step size-32"> - <i class="icon ion-ios-cart-outline"></i> - </span><span class="step size-48"> - <i class="icon ion-ios-cart-outline"></i> - </span><span class="step size-64"> - <i class="icon ion-ios-cart-outline"></i> - </span><span class="step size-96"> - <i class="icon ion-ios-cart-outline"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-ios-cart-outline" /> - - <label>Selectable:</label> - <span class="ion">&#xf3f7;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf3f7;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f3f7" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-ios-chatboxes"></i> - </span><span class="step size-14"> - <i class="icon ion-ios-chatboxes"></i> - </span><span class="step size-16"> - <i class="icon ion-ios-chatboxes"></i> - </span><span class="step size-18"> - <i class="icon ion-ios-chatboxes"></i> - </span><span class="step size-21"> - <i class="icon ion-ios-chatboxes"></i> - </span><span class="step size-24"> - <i class="icon ion-ios-chatboxes"></i> - </span><span class="step size-32"> - <i class="icon ion-ios-chatboxes"></i> - </span><span class="step size-48"> - <i class="icon ion-ios-chatboxes"></i> - </span><span class="step size-64"> - <i class="icon ion-ios-chatboxes"></i> - </span><span class="step size-96"> - <i class="icon ion-ios-chatboxes"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-ios-chatboxes" /> - - <label>Selectable:</label> - <span class="ion">&#xf3fa;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf3fa;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f3fa" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-ios-chatboxes-outline"></i> - </span><span class="step size-14"> - <i class="icon ion-ios-chatboxes-outline"></i> - </span><span class="step size-16"> - <i class="icon ion-ios-chatboxes-outline"></i> - </span><span class="step size-18"> - <i class="icon ion-ios-chatboxes-outline"></i> - </span><span class="step size-21"> - <i class="icon ion-ios-chatboxes-outline"></i> - </span><span class="step size-24"> - <i class="icon ion-ios-chatboxes-outline"></i> - </span><span class="step size-32"> - <i class="icon ion-ios-chatboxes-outline"></i> - </span><span class="step size-48"> - <i class="icon ion-ios-chatboxes-outline"></i> - </span><span class="step size-64"> - <i class="icon ion-ios-chatboxes-outline"></i> - </span><span class="step size-96"> - <i class="icon ion-ios-chatboxes-outline"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-ios-chatboxes-outline" /> - - <label>Selectable:</label> - <span class="ion">&#xf3f9;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf3f9;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f3f9" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-ios-chatbubble"></i> - </span><span class="step size-14"> - <i class="icon ion-ios-chatbubble"></i> - </span><span class="step size-16"> - <i class="icon ion-ios-chatbubble"></i> - </span><span class="step size-18"> - <i class="icon ion-ios-chatbubble"></i> - </span><span class="step size-21"> - <i class="icon ion-ios-chatbubble"></i> - </span><span class="step size-24"> - <i class="icon ion-ios-chatbubble"></i> - </span><span class="step size-32"> - <i class="icon ion-ios-chatbubble"></i> - </span><span class="step size-48"> - <i class="icon ion-ios-chatbubble"></i> - </span><span class="step size-64"> - <i class="icon ion-ios-chatbubble"></i> - </span><span class="step size-96"> - <i class="icon ion-ios-chatbubble"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-ios-chatbubble" /> - - <label>Selectable:</label> - <span class="ion">&#xf3fc;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf3fc;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f3fc" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-ios-chatbubble-outline"></i> - </span><span class="step size-14"> - <i class="icon ion-ios-chatbubble-outline"></i> - </span><span class="step size-16"> - <i class="icon ion-ios-chatbubble-outline"></i> - </span><span class="step size-18"> - <i class="icon ion-ios-chatbubble-outline"></i> - </span><span class="step size-21"> - <i class="icon ion-ios-chatbubble-outline"></i> - </span><span class="step size-24"> - <i class="icon ion-ios-chatbubble-outline"></i> - </span><span class="step size-32"> - <i class="icon ion-ios-chatbubble-outline"></i> - </span><span class="step size-48"> - <i class="icon ion-ios-chatbubble-outline"></i> - </span><span class="step size-64"> - <i class="icon ion-ios-chatbubble-outline"></i> - </span><span class="step size-96"> - <i class="icon ion-ios-chatbubble-outline"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-ios-chatbubble-outline" /> - - <label>Selectable:</label> - <span class="ion">&#xf3fb;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf3fb;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f3fb" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-ios-checkmark"></i> - </span><span class="step size-14"> - <i class="icon ion-ios-checkmark"></i> - </span><span class="step size-16"> - <i class="icon ion-ios-checkmark"></i> - </span><span class="step size-18"> - <i class="icon ion-ios-checkmark"></i> - </span><span class="step size-21"> - <i class="icon ion-ios-checkmark"></i> - </span><span class="step size-24"> - <i class="icon ion-ios-checkmark"></i> - </span><span class="step size-32"> - <i class="icon ion-ios-checkmark"></i> - </span><span class="step size-48"> - <i class="icon ion-ios-checkmark"></i> - </span><span class="step size-64"> - <i class="icon ion-ios-checkmark"></i> - </span><span class="step size-96"> - <i class="icon ion-ios-checkmark"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-ios-checkmark" /> - - <label>Selectable:</label> - <span class="ion">&#xf3ff;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf3ff;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f3ff" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-ios-checkmark-empty"></i> - </span><span class="step size-14"> - <i class="icon ion-ios-checkmark-empty"></i> - </span><span class="step size-16"> - <i class="icon ion-ios-checkmark-empty"></i> - </span><span class="step size-18"> - <i class="icon ion-ios-checkmark-empty"></i> - </span><span class="step size-21"> - <i class="icon ion-ios-checkmark-empty"></i> - </span><span class="step size-24"> - <i class="icon ion-ios-checkmark-empty"></i> - </span><span class="step size-32"> - <i class="icon ion-ios-checkmark-empty"></i> - </span><span class="step size-48"> - <i class="icon ion-ios-checkmark-empty"></i> - </span><span class="step size-64"> - <i class="icon ion-ios-checkmark-empty"></i> - </span><span class="step size-96"> - <i class="icon ion-ios-checkmark-empty"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-ios-checkmark-empty" /> - - <label>Selectable:</label> - <span class="ion">&#xf3fd;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf3fd;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f3fd" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-ios-checkmark-outline"></i> - </span><span class="step size-14"> - <i class="icon ion-ios-checkmark-outline"></i> - </span><span class="step size-16"> - <i class="icon ion-ios-checkmark-outline"></i> - </span><span class="step size-18"> - <i class="icon ion-ios-checkmark-outline"></i> - </span><span class="step size-21"> - <i class="icon ion-ios-checkmark-outline"></i> - </span><span class="step size-24"> - <i class="icon ion-ios-checkmark-outline"></i> - </span><span class="step size-32"> - <i class="icon ion-ios-checkmark-outline"></i> - </span><span class="step size-48"> - <i class="icon ion-ios-checkmark-outline"></i> - </span><span class="step size-64"> - <i class="icon ion-ios-checkmark-outline"></i> - </span><span class="step size-96"> - <i class="icon ion-ios-checkmark-outline"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-ios-checkmark-outline" /> - - <label>Selectable:</label> - <span class="ion">&#xf3fe;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf3fe;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f3fe" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-ios-circle-filled"></i> - </span><span class="step size-14"> - <i class="icon ion-ios-circle-filled"></i> - </span><span class="step size-16"> - <i class="icon ion-ios-circle-filled"></i> - </span><span class="step size-18"> - <i class="icon ion-ios-circle-filled"></i> - </span><span class="step size-21"> - <i class="icon ion-ios-circle-filled"></i> - </span><span class="step size-24"> - <i class="icon ion-ios-circle-filled"></i> - </span><span class="step size-32"> - <i class="icon ion-ios-circle-filled"></i> - </span><span class="step size-48"> - <i class="icon ion-ios-circle-filled"></i> - </span><span class="step size-64"> - <i class="icon ion-ios-circle-filled"></i> - </span><span class="step size-96"> - <i class="icon ion-ios-circle-filled"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-ios-circle-filled" /> - - <label>Selectable:</label> - <span class="ion">&#xf400;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf400;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f400" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-ios-circle-outline"></i> - </span><span class="step size-14"> - <i class="icon ion-ios-circle-outline"></i> - </span><span class="step size-16"> - <i class="icon ion-ios-circle-outline"></i> - </span><span class="step size-18"> - <i class="icon ion-ios-circle-outline"></i> - </span><span class="step size-21"> - <i class="icon ion-ios-circle-outline"></i> - </span><span class="step size-24"> - <i class="icon ion-ios-circle-outline"></i> - </span><span class="step size-32"> - <i class="icon ion-ios-circle-outline"></i> - </span><span class="step size-48"> - <i class="icon ion-ios-circle-outline"></i> - </span><span class="step size-64"> - <i class="icon ion-ios-circle-outline"></i> - </span><span class="step size-96"> - <i class="icon ion-ios-circle-outline"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-ios-circle-outline" /> - - <label>Selectable:</label> - <span class="ion">&#xf401;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf401;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f401" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-ios-clock"></i> - </span><span class="step size-14"> - <i class="icon ion-ios-clock"></i> - </span><span class="step size-16"> - <i class="icon ion-ios-clock"></i> - </span><span class="step size-18"> - <i class="icon ion-ios-clock"></i> - </span><span class="step size-21"> - <i class="icon ion-ios-clock"></i> - </span><span class="step size-24"> - <i class="icon ion-ios-clock"></i> - </span><span class="step size-32"> - <i class="icon ion-ios-clock"></i> - </span><span class="step size-48"> - <i class="icon ion-ios-clock"></i> - </span><span class="step size-64"> - <i class="icon ion-ios-clock"></i> - </span><span class="step size-96"> - <i class="icon ion-ios-clock"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-ios-clock" /> - - <label>Selectable:</label> - <span class="ion">&#xf403;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf403;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f403" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-ios-clock-outline"></i> - </span><span class="step size-14"> - <i class="icon ion-ios-clock-outline"></i> - </span><span class="step size-16"> - <i class="icon ion-ios-clock-outline"></i> - </span><span class="step size-18"> - <i class="icon ion-ios-clock-outline"></i> - </span><span class="step size-21"> - <i class="icon ion-ios-clock-outline"></i> - </span><span class="step size-24"> - <i class="icon ion-ios-clock-outline"></i> - </span><span class="step size-32"> - <i class="icon ion-ios-clock-outline"></i> - </span><span class="step size-48"> - <i class="icon ion-ios-clock-outline"></i> - </span><span class="step size-64"> - <i class="icon ion-ios-clock-outline"></i> - </span><span class="step size-96"> - <i class="icon ion-ios-clock-outline"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-ios-clock-outline" /> - - <label>Selectable:</label> - <span class="ion">&#xf402;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf402;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f402" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-ios-close"></i> - </span><span class="step size-14"> - <i class="icon ion-ios-close"></i> - </span><span class="step size-16"> - <i class="icon ion-ios-close"></i> - </span><span class="step size-18"> - <i class="icon ion-ios-close"></i> - </span><span class="step size-21"> - <i class="icon ion-ios-close"></i> - </span><span class="step size-24"> - <i class="icon ion-ios-close"></i> - </span><span class="step size-32"> - <i class="icon ion-ios-close"></i> - </span><span class="step size-48"> - <i class="icon ion-ios-close"></i> - </span><span class="step size-64"> - <i class="icon ion-ios-close"></i> - </span><span class="step size-96"> - <i class="icon ion-ios-close"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-ios-close" /> - - <label>Selectable:</label> - <span class="ion">&#xf406;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf406;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f406" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-ios-close-empty"></i> - </span><span class="step size-14"> - <i class="icon ion-ios-close-empty"></i> - </span><span class="step size-16"> - <i class="icon ion-ios-close-empty"></i> - </span><span class="step size-18"> - <i class="icon ion-ios-close-empty"></i> - </span><span class="step size-21"> - <i class="icon ion-ios-close-empty"></i> - </span><span class="step size-24"> - <i class="icon ion-ios-close-empty"></i> - </span><span class="step size-32"> - <i class="icon ion-ios-close-empty"></i> - </span><span class="step size-48"> - <i class="icon ion-ios-close-empty"></i> - </span><span class="step size-64"> - <i class="icon ion-ios-close-empty"></i> - </span><span class="step size-96"> - <i class="icon ion-ios-close-empty"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-ios-close-empty" /> - - <label>Selectable:</label> - <span class="ion">&#xf404;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf404;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f404" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-ios-close-outline"></i> - </span><span class="step size-14"> - <i class="icon ion-ios-close-outline"></i> - </span><span class="step size-16"> - <i class="icon ion-ios-close-outline"></i> - </span><span class="step size-18"> - <i class="icon ion-ios-close-outline"></i> - </span><span class="step size-21"> - <i class="icon ion-ios-close-outline"></i> - </span><span class="step size-24"> - <i class="icon ion-ios-close-outline"></i> - </span><span class="step size-32"> - <i class="icon ion-ios-close-outline"></i> - </span><span class="step size-48"> - <i class="icon ion-ios-close-outline"></i> - </span><span class="step size-64"> - <i class="icon ion-ios-close-outline"></i> - </span><span class="step size-96"> - <i class="icon ion-ios-close-outline"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-ios-close-outline" /> - - <label>Selectable:</label> - <span class="ion">&#xf405;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf405;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f405" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-ios-cloud"></i> - </span><span class="step size-14"> - <i class="icon ion-ios-cloud"></i> - </span><span class="step size-16"> - <i class="icon ion-ios-cloud"></i> - </span><span class="step size-18"> - <i class="icon ion-ios-cloud"></i> - </span><span class="step size-21"> - <i class="icon ion-ios-cloud"></i> - </span><span class="step size-24"> - <i class="icon ion-ios-cloud"></i> - </span><span class="step size-32"> - <i class="icon ion-ios-cloud"></i> - </span><span class="step size-48"> - <i class="icon ion-ios-cloud"></i> - </span><span class="step size-64"> - <i class="icon ion-ios-cloud"></i> - </span><span class="step size-96"> - <i class="icon ion-ios-cloud"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-ios-cloud" /> - - <label>Selectable:</label> - <span class="ion">&#xf40c;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf40c;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f40c" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-ios-cloud-download"></i> - </span><span class="step size-14"> - <i class="icon ion-ios-cloud-download"></i> - </span><span class="step size-16"> - <i class="icon ion-ios-cloud-download"></i> - </span><span class="step size-18"> - <i class="icon ion-ios-cloud-download"></i> - </span><span class="step size-21"> - <i class="icon ion-ios-cloud-download"></i> - </span><span class="step size-24"> - <i class="icon ion-ios-cloud-download"></i> - </span><span class="step size-32"> - <i class="icon ion-ios-cloud-download"></i> - </span><span class="step size-48"> - <i class="icon ion-ios-cloud-download"></i> - </span><span class="step size-64"> - <i class="icon ion-ios-cloud-download"></i> - </span><span class="step size-96"> - <i class="icon ion-ios-cloud-download"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-ios-cloud-download" /> - - <label>Selectable:</label> - <span class="ion">&#xf408;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf408;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f408" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-ios-cloud-download-outline"></i> - </span><span class="step size-14"> - <i class="icon ion-ios-cloud-download-outline"></i> - </span><span class="step size-16"> - <i class="icon ion-ios-cloud-download-outline"></i> - </span><span class="step size-18"> - <i class="icon ion-ios-cloud-download-outline"></i> - </span><span class="step size-21"> - <i class="icon ion-ios-cloud-download-outline"></i> - </span><span class="step size-24"> - <i class="icon ion-ios-cloud-download-outline"></i> - </span><span class="step size-32"> - <i class="icon ion-ios-cloud-download-outline"></i> - </span><span class="step size-48"> - <i class="icon ion-ios-cloud-download-outline"></i> - </span><span class="step size-64"> - <i class="icon ion-ios-cloud-download-outline"></i> - </span><span class="step size-96"> - <i class="icon ion-ios-cloud-download-outline"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-ios-cloud-download-outline" /> - - <label>Selectable:</label> - <span class="ion">&#xf407;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf407;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f407" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-ios-cloud-outline"></i> - </span><span class="step size-14"> - <i class="icon ion-ios-cloud-outline"></i> - </span><span class="step size-16"> - <i class="icon ion-ios-cloud-outline"></i> - </span><span class="step size-18"> - <i class="icon ion-ios-cloud-outline"></i> - </span><span class="step size-21"> - <i class="icon ion-ios-cloud-outline"></i> - </span><span class="step size-24"> - <i class="icon ion-ios-cloud-outline"></i> - </span><span class="step size-32"> - <i class="icon ion-ios-cloud-outline"></i> - </span><span class="step size-48"> - <i class="icon ion-ios-cloud-outline"></i> - </span><span class="step size-64"> - <i class="icon ion-ios-cloud-outline"></i> - </span><span class="step size-96"> - <i class="icon ion-ios-cloud-outline"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-ios-cloud-outline" /> - - <label>Selectable:</label> - <span class="ion">&#xf409;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf409;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f409" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-ios-cloud-upload"></i> - </span><span class="step size-14"> - <i class="icon ion-ios-cloud-upload"></i> - </span><span class="step size-16"> - <i class="icon ion-ios-cloud-upload"></i> - </span><span class="step size-18"> - <i class="icon ion-ios-cloud-upload"></i> - </span><span class="step size-21"> - <i class="icon ion-ios-cloud-upload"></i> - </span><span class="step size-24"> - <i class="icon ion-ios-cloud-upload"></i> - </span><span class="step size-32"> - <i class="icon ion-ios-cloud-upload"></i> - </span><span class="step size-48"> - <i class="icon ion-ios-cloud-upload"></i> - </span><span class="step size-64"> - <i class="icon ion-ios-cloud-upload"></i> - </span><span class="step size-96"> - <i class="icon ion-ios-cloud-upload"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-ios-cloud-upload" /> - - <label>Selectable:</label> - <span class="ion">&#xf40b;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf40b;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f40b" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-ios-cloud-upload-outline"></i> - </span><span class="step size-14"> - <i class="icon ion-ios-cloud-upload-outline"></i> - </span><span class="step size-16"> - <i class="icon ion-ios-cloud-upload-outline"></i> - </span><span class="step size-18"> - <i class="icon ion-ios-cloud-upload-outline"></i> - </span><span class="step size-21"> - <i class="icon ion-ios-cloud-upload-outline"></i> - </span><span class="step size-24"> - <i class="icon ion-ios-cloud-upload-outline"></i> - </span><span class="step size-32"> - <i class="icon ion-ios-cloud-upload-outline"></i> - </span><span class="step size-48"> - <i class="icon ion-ios-cloud-upload-outline"></i> - </span><span class="step size-64"> - <i class="icon ion-ios-cloud-upload-outline"></i> - </span><span class="step size-96"> - <i class="icon ion-ios-cloud-upload-outline"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-ios-cloud-upload-outline" /> - - <label>Selectable:</label> - <span class="ion">&#xf40a;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf40a;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f40a" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-ios-cloudy"></i> - </span><span class="step size-14"> - <i class="icon ion-ios-cloudy"></i> - </span><span class="step size-16"> - <i class="icon ion-ios-cloudy"></i> - </span><span class="step size-18"> - <i class="icon ion-ios-cloudy"></i> - </span><span class="step size-21"> - <i class="icon ion-ios-cloudy"></i> - </span><span class="step size-24"> - <i class="icon ion-ios-cloudy"></i> - </span><span class="step size-32"> - <i class="icon ion-ios-cloudy"></i> - </span><span class="step size-48"> - <i class="icon ion-ios-cloudy"></i> - </span><span class="step size-64"> - <i class="icon ion-ios-cloudy"></i> - </span><span class="step size-96"> - <i class="icon ion-ios-cloudy"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-ios-cloudy" /> - - <label>Selectable:</label> - <span class="ion">&#xf410;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf410;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f410" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-ios-cloudy-night"></i> - </span><span class="step size-14"> - <i class="icon ion-ios-cloudy-night"></i> - </span><span class="step size-16"> - <i class="icon ion-ios-cloudy-night"></i> - </span><span class="step size-18"> - <i class="icon ion-ios-cloudy-night"></i> - </span><span class="step size-21"> - <i class="icon ion-ios-cloudy-night"></i> - </span><span class="step size-24"> - <i class="icon ion-ios-cloudy-night"></i> - </span><span class="step size-32"> - <i class="icon ion-ios-cloudy-night"></i> - </span><span class="step size-48"> - <i class="icon ion-ios-cloudy-night"></i> - </span><span class="step size-64"> - <i class="icon ion-ios-cloudy-night"></i> - </span><span class="step size-96"> - <i class="icon ion-ios-cloudy-night"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-ios-cloudy-night" /> - - <label>Selectable:</label> - <span class="ion">&#xf40e;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf40e;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f40e" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-ios-cloudy-night-outline"></i> - </span><span class="step size-14"> - <i class="icon ion-ios-cloudy-night-outline"></i> - </span><span class="step size-16"> - <i class="icon ion-ios-cloudy-night-outline"></i> - </span><span class="step size-18"> - <i class="icon ion-ios-cloudy-night-outline"></i> - </span><span class="step size-21"> - <i class="icon ion-ios-cloudy-night-outline"></i> - </span><span class="step size-24"> - <i class="icon ion-ios-cloudy-night-outline"></i> - </span><span class="step size-32"> - <i class="icon ion-ios-cloudy-night-outline"></i> - </span><span class="step size-48"> - <i class="icon ion-ios-cloudy-night-outline"></i> - </span><span class="step size-64"> - <i class="icon ion-ios-cloudy-night-outline"></i> - </span><span class="step size-96"> - <i class="icon ion-ios-cloudy-night-outline"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-ios-cloudy-night-outline" /> - - <label>Selectable:</label> - <span class="ion">&#xf40d;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf40d;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f40d" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-ios-cloudy-outline"></i> - </span><span class="step size-14"> - <i class="icon ion-ios-cloudy-outline"></i> - </span><span class="step size-16"> - <i class="icon ion-ios-cloudy-outline"></i> - </span><span class="step size-18"> - <i class="icon ion-ios-cloudy-outline"></i> - </span><span class="step size-21"> - <i class="icon ion-ios-cloudy-outline"></i> - </span><span class="step size-24"> - <i class="icon ion-ios-cloudy-outline"></i> - </span><span class="step size-32"> - <i class="icon ion-ios-cloudy-outline"></i> - </span><span class="step size-48"> - <i class="icon ion-ios-cloudy-outline"></i> - </span><span class="step size-64"> - <i class="icon ion-ios-cloudy-outline"></i> - </span><span class="step size-96"> - <i class="icon ion-ios-cloudy-outline"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-ios-cloudy-outline" /> - - <label>Selectable:</label> - <span class="ion">&#xf40f;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf40f;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f40f" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-ios-cog"></i> - </span><span class="step size-14"> - <i class="icon ion-ios-cog"></i> - </span><span class="step size-16"> - <i class="icon ion-ios-cog"></i> - </span><span class="step size-18"> - <i class="icon ion-ios-cog"></i> - </span><span class="step size-21"> - <i class="icon ion-ios-cog"></i> - </span><span class="step size-24"> - <i class="icon ion-ios-cog"></i> - </span><span class="step size-32"> - <i class="icon ion-ios-cog"></i> - </span><span class="step size-48"> - <i class="icon ion-ios-cog"></i> - </span><span class="step size-64"> - <i class="icon ion-ios-cog"></i> - </span><span class="step size-96"> - <i class="icon ion-ios-cog"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-ios-cog" /> - - <label>Selectable:</label> - <span class="ion">&#xf412;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf412;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f412" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-ios-cog-outline"></i> - </span><span class="step size-14"> - <i class="icon ion-ios-cog-outline"></i> - </span><span class="step size-16"> - <i class="icon ion-ios-cog-outline"></i> - </span><span class="step size-18"> - <i class="icon ion-ios-cog-outline"></i> - </span><span class="step size-21"> - <i class="icon ion-ios-cog-outline"></i> - </span><span class="step size-24"> - <i class="icon ion-ios-cog-outline"></i> - </span><span class="step size-32"> - <i class="icon ion-ios-cog-outline"></i> - </span><span class="step size-48"> - <i class="icon ion-ios-cog-outline"></i> - </span><span class="step size-64"> - <i class="icon ion-ios-cog-outline"></i> - </span><span class="step size-96"> - <i class="icon ion-ios-cog-outline"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-ios-cog-outline" /> - - <label>Selectable:</label> - <span class="ion">&#xf411;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf411;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f411" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-ios-color-filter"></i> - </span><span class="step size-14"> - <i class="icon ion-ios-color-filter"></i> - </span><span class="step size-16"> - <i class="icon ion-ios-color-filter"></i> - </span><span class="step size-18"> - <i class="icon ion-ios-color-filter"></i> - </span><span class="step size-21"> - <i class="icon ion-ios-color-filter"></i> - </span><span class="step size-24"> - <i class="icon ion-ios-color-filter"></i> - </span><span class="step size-32"> - <i class="icon ion-ios-color-filter"></i> - </span><span class="step size-48"> - <i class="icon ion-ios-color-filter"></i> - </span><span class="step size-64"> - <i class="icon ion-ios-color-filter"></i> - </span><span class="step size-96"> - <i class="icon ion-ios-color-filter"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-ios-color-filter" /> - - <label>Selectable:</label> - <span class="ion">&#xf414;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf414;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f414" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-ios-color-filter-outline"></i> - </span><span class="step size-14"> - <i class="icon ion-ios-color-filter-outline"></i> - </span><span class="step size-16"> - <i class="icon ion-ios-color-filter-outline"></i> - </span><span class="step size-18"> - <i class="icon ion-ios-color-filter-outline"></i> - </span><span class="step size-21"> - <i class="icon ion-ios-color-filter-outline"></i> - </span><span class="step size-24"> - <i class="icon ion-ios-color-filter-outline"></i> - </span><span class="step size-32"> - <i class="icon ion-ios-color-filter-outline"></i> - </span><span class="step size-48"> - <i class="icon ion-ios-color-filter-outline"></i> - </span><span class="step size-64"> - <i class="icon ion-ios-color-filter-outline"></i> - </span><span class="step size-96"> - <i class="icon ion-ios-color-filter-outline"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-ios-color-filter-outline" /> - - <label>Selectable:</label> - <span class="ion">&#xf413;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf413;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f413" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-ios-color-wand"></i> - </span><span class="step size-14"> - <i class="icon ion-ios-color-wand"></i> - </span><span class="step size-16"> - <i class="icon ion-ios-color-wand"></i> - </span><span class="step size-18"> - <i class="icon ion-ios-color-wand"></i> - </span><span class="step size-21"> - <i class="icon ion-ios-color-wand"></i> - </span><span class="step size-24"> - <i class="icon ion-ios-color-wand"></i> - </span><span class="step size-32"> - <i class="icon ion-ios-color-wand"></i> - </span><span class="step size-48"> - <i class="icon ion-ios-color-wand"></i> - </span><span class="step size-64"> - <i class="icon ion-ios-color-wand"></i> - </span><span class="step size-96"> - <i class="icon ion-ios-color-wand"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-ios-color-wand" /> - - <label>Selectable:</label> - <span class="ion">&#xf416;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf416;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f416" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-ios-color-wand-outline"></i> - </span><span class="step size-14"> - <i class="icon ion-ios-color-wand-outline"></i> - </span><span class="step size-16"> - <i class="icon ion-ios-color-wand-outline"></i> - </span><span class="step size-18"> - <i class="icon ion-ios-color-wand-outline"></i> - </span><span class="step size-21"> - <i class="icon ion-ios-color-wand-outline"></i> - </span><span class="step size-24"> - <i class="icon ion-ios-color-wand-outline"></i> - </span><span class="step size-32"> - <i class="icon ion-ios-color-wand-outline"></i> - </span><span class="step size-48"> - <i class="icon ion-ios-color-wand-outline"></i> - </span><span class="step size-64"> - <i class="icon ion-ios-color-wand-outline"></i> - </span><span class="step size-96"> - <i class="icon ion-ios-color-wand-outline"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-ios-color-wand-outline" /> - - <label>Selectable:</label> - <span class="ion">&#xf415;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf415;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f415" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-ios-compose"></i> - </span><span class="step size-14"> - <i class="icon ion-ios-compose"></i> - </span><span class="step size-16"> - <i class="icon ion-ios-compose"></i> - </span><span class="step size-18"> - <i class="icon ion-ios-compose"></i> - </span><span class="step size-21"> - <i class="icon ion-ios-compose"></i> - </span><span class="step size-24"> - <i class="icon ion-ios-compose"></i> - </span><span class="step size-32"> - <i class="icon ion-ios-compose"></i> - </span><span class="step size-48"> - <i class="icon ion-ios-compose"></i> - </span><span class="step size-64"> - <i class="icon ion-ios-compose"></i> - </span><span class="step size-96"> - <i class="icon ion-ios-compose"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-ios-compose" /> - - <label>Selectable:</label> - <span class="ion">&#xf418;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf418;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f418" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-ios-compose-outline"></i> - </span><span class="step size-14"> - <i class="icon ion-ios-compose-outline"></i> - </span><span class="step size-16"> - <i class="icon ion-ios-compose-outline"></i> - </span><span class="step size-18"> - <i class="icon ion-ios-compose-outline"></i> - </span><span class="step size-21"> - <i class="icon ion-ios-compose-outline"></i> - </span><span class="step size-24"> - <i class="icon ion-ios-compose-outline"></i> - </span><span class="step size-32"> - <i class="icon ion-ios-compose-outline"></i> - </span><span class="step size-48"> - <i class="icon ion-ios-compose-outline"></i> - </span><span class="step size-64"> - <i class="icon ion-ios-compose-outline"></i> - </span><span class="step size-96"> - <i class="icon ion-ios-compose-outline"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-ios-compose-outline" /> - - <label>Selectable:</label> - <span class="ion">&#xf417;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf417;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f417" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-ios-contact"></i> - </span><span class="step size-14"> - <i class="icon ion-ios-contact"></i> - </span><span class="step size-16"> - <i class="icon ion-ios-contact"></i> - </span><span class="step size-18"> - <i class="icon ion-ios-contact"></i> - </span><span class="step size-21"> - <i class="icon ion-ios-contact"></i> - </span><span class="step size-24"> - <i class="icon ion-ios-contact"></i> - </span><span class="step size-32"> - <i class="icon ion-ios-contact"></i> - </span><span class="step size-48"> - <i class="icon ion-ios-contact"></i> - </span><span class="step size-64"> - <i class="icon ion-ios-contact"></i> - </span><span class="step size-96"> - <i class="icon ion-ios-contact"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-ios-contact" /> - - <label>Selectable:</label> - <span class="ion">&#xf41a;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf41a;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f41a" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-ios-contact-outline"></i> - </span><span class="step size-14"> - <i class="icon ion-ios-contact-outline"></i> - </span><span class="step size-16"> - <i class="icon ion-ios-contact-outline"></i> - </span><span class="step size-18"> - <i class="icon ion-ios-contact-outline"></i> - </span><span class="step size-21"> - <i class="icon ion-ios-contact-outline"></i> - </span><span class="step size-24"> - <i class="icon ion-ios-contact-outline"></i> - </span><span class="step size-32"> - <i class="icon ion-ios-contact-outline"></i> - </span><span class="step size-48"> - <i class="icon ion-ios-contact-outline"></i> - </span><span class="step size-64"> - <i class="icon ion-ios-contact-outline"></i> - </span><span class="step size-96"> - <i class="icon ion-ios-contact-outline"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-ios-contact-outline" /> - - <label>Selectable:</label> - <span class="ion">&#xf419;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf419;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f419" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-ios-copy"></i> - </span><span class="step size-14"> - <i class="icon ion-ios-copy"></i> - </span><span class="step size-16"> - <i class="icon ion-ios-copy"></i> - </span><span class="step size-18"> - <i class="icon ion-ios-copy"></i> - </span><span class="step size-21"> - <i class="icon ion-ios-copy"></i> - </span><span class="step size-24"> - <i class="icon ion-ios-copy"></i> - </span><span class="step size-32"> - <i class="icon ion-ios-copy"></i> - </span><span class="step size-48"> - <i class="icon ion-ios-copy"></i> - </span><span class="step size-64"> - <i class="icon ion-ios-copy"></i> - </span><span class="step size-96"> - <i class="icon ion-ios-copy"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-ios-copy" /> - - <label>Selectable:</label> - <span class="ion">&#xf41c;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf41c;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f41c" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-ios-copy-outline"></i> - </span><span class="step size-14"> - <i class="icon ion-ios-copy-outline"></i> - </span><span class="step size-16"> - <i class="icon ion-ios-copy-outline"></i> - </span><span class="step size-18"> - <i class="icon ion-ios-copy-outline"></i> - </span><span class="step size-21"> - <i class="icon ion-ios-copy-outline"></i> - </span><span class="step size-24"> - <i class="icon ion-ios-copy-outline"></i> - </span><span class="step size-32"> - <i class="icon ion-ios-copy-outline"></i> - </span><span class="step size-48"> - <i class="icon ion-ios-copy-outline"></i> - </span><span class="step size-64"> - <i class="icon ion-ios-copy-outline"></i> - </span><span class="step size-96"> - <i class="icon ion-ios-copy-outline"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-ios-copy-outline" /> - - <label>Selectable:</label> - <span class="ion">&#xf41b;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf41b;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f41b" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-ios-crop"></i> - </span><span class="step size-14"> - <i class="icon ion-ios-crop"></i> - </span><span class="step size-16"> - <i class="icon ion-ios-crop"></i> - </span><span class="step size-18"> - <i class="icon ion-ios-crop"></i> - </span><span class="step size-21"> - <i class="icon ion-ios-crop"></i> - </span><span class="step size-24"> - <i class="icon ion-ios-crop"></i> - </span><span class="step size-32"> - <i class="icon ion-ios-crop"></i> - </span><span class="step size-48"> - <i class="icon ion-ios-crop"></i> - </span><span class="step size-64"> - <i class="icon ion-ios-crop"></i> - </span><span class="step size-96"> - <i class="icon ion-ios-crop"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-ios-crop" /> - - <label>Selectable:</label> - <span class="ion">&#xf41e;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf41e;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f41e" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-ios-crop-strong"></i> - </span><span class="step size-14"> - <i class="icon ion-ios-crop-strong"></i> - </span><span class="step size-16"> - <i class="icon ion-ios-crop-strong"></i> - </span><span class="step size-18"> - <i class="icon ion-ios-crop-strong"></i> - </span><span class="step size-21"> - <i class="icon ion-ios-crop-strong"></i> - </span><span class="step size-24"> - <i class="icon ion-ios-crop-strong"></i> - </span><span class="step size-32"> - <i class="icon ion-ios-crop-strong"></i> - </span><span class="step size-48"> - <i class="icon ion-ios-crop-strong"></i> - </span><span class="step size-64"> - <i class="icon ion-ios-crop-strong"></i> - </span><span class="step size-96"> - <i class="icon ion-ios-crop-strong"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-ios-crop-strong" /> - - <label>Selectable:</label> - <span class="ion">&#xf41d;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf41d;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f41d" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-ios-download"></i> - </span><span class="step size-14"> - <i class="icon ion-ios-download"></i> - </span><span class="step size-16"> - <i class="icon ion-ios-download"></i> - </span><span class="step size-18"> - <i class="icon ion-ios-download"></i> - </span><span class="step size-21"> - <i class="icon ion-ios-download"></i> - </span><span class="step size-24"> - <i class="icon ion-ios-download"></i> - </span><span class="step size-32"> - <i class="icon ion-ios-download"></i> - </span><span class="step size-48"> - <i class="icon ion-ios-download"></i> - </span><span class="step size-64"> - <i class="icon ion-ios-download"></i> - </span><span class="step size-96"> - <i class="icon ion-ios-download"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-ios-download" /> - - <label>Selectable:</label> - <span class="ion">&#xf420;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf420;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f420" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-ios-download-outline"></i> - </span><span class="step size-14"> - <i class="icon ion-ios-download-outline"></i> - </span><span class="step size-16"> - <i class="icon ion-ios-download-outline"></i> - </span><span class="step size-18"> - <i class="icon ion-ios-download-outline"></i> - </span><span class="step size-21"> - <i class="icon ion-ios-download-outline"></i> - </span><span class="step size-24"> - <i class="icon ion-ios-download-outline"></i> - </span><span class="step size-32"> - <i class="icon ion-ios-download-outline"></i> - </span><span class="step size-48"> - <i class="icon ion-ios-download-outline"></i> - </span><span class="step size-64"> - <i class="icon ion-ios-download-outline"></i> - </span><span class="step size-96"> - <i class="icon ion-ios-download-outline"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-ios-download-outline" /> - - <label>Selectable:</label> - <span class="ion">&#xf41f;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf41f;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f41f" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-ios-drag"></i> - </span><span class="step size-14"> - <i class="icon ion-ios-drag"></i> - </span><span class="step size-16"> - <i class="icon ion-ios-drag"></i> - </span><span class="step size-18"> - <i class="icon ion-ios-drag"></i> - </span><span class="step size-21"> - <i class="icon ion-ios-drag"></i> - </span><span class="step size-24"> - <i class="icon ion-ios-drag"></i> - </span><span class="step size-32"> - <i class="icon ion-ios-drag"></i> - </span><span class="step size-48"> - <i class="icon ion-ios-drag"></i> - </span><span class="step size-64"> - <i class="icon ion-ios-drag"></i> - </span><span class="step size-96"> - <i class="icon ion-ios-drag"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-ios-drag" /> - - <label>Selectable:</label> - <span class="ion">&#xf421;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf421;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f421" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-ios-email"></i> - </span><span class="step size-14"> - <i class="icon ion-ios-email"></i> - </span><span class="step size-16"> - <i class="icon ion-ios-email"></i> - </span><span class="step size-18"> - <i class="icon ion-ios-email"></i> - </span><span class="step size-21"> - <i class="icon ion-ios-email"></i> - </span><span class="step size-24"> - <i class="icon ion-ios-email"></i> - </span><span class="step size-32"> - <i class="icon ion-ios-email"></i> - </span><span class="step size-48"> - <i class="icon ion-ios-email"></i> - </span><span class="step size-64"> - <i class="icon ion-ios-email"></i> - </span><span class="step size-96"> - <i class="icon ion-ios-email"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-ios-email" /> - - <label>Selectable:</label> - <span class="ion">&#xf423;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf423;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f423" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-ios-email-outline"></i> - </span><span class="step size-14"> - <i class="icon ion-ios-email-outline"></i> - </span><span class="step size-16"> - <i class="icon ion-ios-email-outline"></i> - </span><span class="step size-18"> - <i class="icon ion-ios-email-outline"></i> - </span><span class="step size-21"> - <i class="icon ion-ios-email-outline"></i> - </span><span class="step size-24"> - <i class="icon ion-ios-email-outline"></i> - </span><span class="step size-32"> - <i class="icon ion-ios-email-outline"></i> - </span><span class="step size-48"> - <i class="icon ion-ios-email-outline"></i> - </span><span class="step size-64"> - <i class="icon ion-ios-email-outline"></i> - </span><span class="step size-96"> - <i class="icon ion-ios-email-outline"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-ios-email-outline" /> - - <label>Selectable:</label> - <span class="ion">&#xf422;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf422;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f422" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-ios-eye"></i> - </span><span class="step size-14"> - <i class="icon ion-ios-eye"></i> - </span><span class="step size-16"> - <i class="icon ion-ios-eye"></i> - </span><span class="step size-18"> - <i class="icon ion-ios-eye"></i> - </span><span class="step size-21"> - <i class="icon ion-ios-eye"></i> - </span><span class="step size-24"> - <i class="icon ion-ios-eye"></i> - </span><span class="step size-32"> - <i class="icon ion-ios-eye"></i> - </span><span class="step size-48"> - <i class="icon ion-ios-eye"></i> - </span><span class="step size-64"> - <i class="icon ion-ios-eye"></i> - </span><span class="step size-96"> - <i class="icon ion-ios-eye"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-ios-eye" /> - - <label>Selectable:</label> - <span class="ion">&#xf425;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf425;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f425" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-ios-eye-outline"></i> - </span><span class="step size-14"> - <i class="icon ion-ios-eye-outline"></i> - </span><span class="step size-16"> - <i class="icon ion-ios-eye-outline"></i> - </span><span class="step size-18"> - <i class="icon ion-ios-eye-outline"></i> - </span><span class="step size-21"> - <i class="icon ion-ios-eye-outline"></i> - </span><span class="step size-24"> - <i class="icon ion-ios-eye-outline"></i> - </span><span class="step size-32"> - <i class="icon ion-ios-eye-outline"></i> - </span><span class="step size-48"> - <i class="icon ion-ios-eye-outline"></i> - </span><span class="step size-64"> - <i class="icon ion-ios-eye-outline"></i> - </span><span class="step size-96"> - <i class="icon ion-ios-eye-outline"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-ios-eye-outline" /> - - <label>Selectable:</label> - <span class="ion">&#xf424;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf424;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f424" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-ios-fastforward"></i> - </span><span class="step size-14"> - <i class="icon ion-ios-fastforward"></i> - </span><span class="step size-16"> - <i class="icon ion-ios-fastforward"></i> - </span><span class="step size-18"> - <i class="icon ion-ios-fastforward"></i> - </span><span class="step size-21"> - <i class="icon ion-ios-fastforward"></i> - </span><span class="step size-24"> - <i class="icon ion-ios-fastforward"></i> - </span><span class="step size-32"> - <i class="icon ion-ios-fastforward"></i> - </span><span class="step size-48"> - <i class="icon ion-ios-fastforward"></i> - </span><span class="step size-64"> - <i class="icon ion-ios-fastforward"></i> - </span><span class="step size-96"> - <i class="icon ion-ios-fastforward"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-ios-fastforward" /> - - <label>Selectable:</label> - <span class="ion">&#xf427;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf427;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f427" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-ios-fastforward-outline"></i> - </span><span class="step size-14"> - <i class="icon ion-ios-fastforward-outline"></i> - </span><span class="step size-16"> - <i class="icon ion-ios-fastforward-outline"></i> - </span><span class="step size-18"> - <i class="icon ion-ios-fastforward-outline"></i> - </span><span class="step size-21"> - <i class="icon ion-ios-fastforward-outline"></i> - </span><span class="step size-24"> - <i class="icon ion-ios-fastforward-outline"></i> - </span><span class="step size-32"> - <i class="icon ion-ios-fastforward-outline"></i> - </span><span class="step size-48"> - <i class="icon ion-ios-fastforward-outline"></i> - </span><span class="step size-64"> - <i class="icon ion-ios-fastforward-outline"></i> - </span><span class="step size-96"> - <i class="icon ion-ios-fastforward-outline"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-ios-fastforward-outline" /> - - <label>Selectable:</label> - <span class="ion">&#xf426;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf426;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f426" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-ios-filing"></i> - </span><span class="step size-14"> - <i class="icon ion-ios-filing"></i> - </span><span class="step size-16"> - <i class="icon ion-ios-filing"></i> - </span><span class="step size-18"> - <i class="icon ion-ios-filing"></i> - </span><span class="step size-21"> - <i class="icon ion-ios-filing"></i> - </span><span class="step size-24"> - <i class="icon ion-ios-filing"></i> - </span><span class="step size-32"> - <i class="icon ion-ios-filing"></i> - </span><span class="step size-48"> - <i class="icon ion-ios-filing"></i> - </span><span class="step size-64"> - <i class="icon ion-ios-filing"></i> - </span><span class="step size-96"> - <i class="icon ion-ios-filing"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-ios-filing" /> - - <label>Selectable:</label> - <span class="ion">&#xf429;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf429;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f429" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-ios-filing-outline"></i> - </span><span class="step size-14"> - <i class="icon ion-ios-filing-outline"></i> - </span><span class="step size-16"> - <i class="icon ion-ios-filing-outline"></i> - </span><span class="step size-18"> - <i class="icon ion-ios-filing-outline"></i> - </span><span class="step size-21"> - <i class="icon ion-ios-filing-outline"></i> - </span><span class="step size-24"> - <i class="icon ion-ios-filing-outline"></i> - </span><span class="step size-32"> - <i class="icon ion-ios-filing-outline"></i> - </span><span class="step size-48"> - <i class="icon ion-ios-filing-outline"></i> - </span><span class="step size-64"> - <i class="icon ion-ios-filing-outline"></i> - </span><span class="step size-96"> - <i class="icon ion-ios-filing-outline"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-ios-filing-outline" /> - - <label>Selectable:</label> - <span class="ion">&#xf428;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf428;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f428" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-ios-film"></i> - </span><span class="step size-14"> - <i class="icon ion-ios-film"></i> - </span><span class="step size-16"> - <i class="icon ion-ios-film"></i> - </span><span class="step size-18"> - <i class="icon ion-ios-film"></i> - </span><span class="step size-21"> - <i class="icon ion-ios-film"></i> - </span><span class="step size-24"> - <i class="icon ion-ios-film"></i> - </span><span class="step size-32"> - <i class="icon ion-ios-film"></i> - </span><span class="step size-48"> - <i class="icon ion-ios-film"></i> - </span><span class="step size-64"> - <i class="icon ion-ios-film"></i> - </span><span class="step size-96"> - <i class="icon ion-ios-film"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-ios-film" /> - - <label>Selectable:</label> - <span class="ion">&#xf42b;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf42b;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f42b" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-ios-film-outline"></i> - </span><span class="step size-14"> - <i class="icon ion-ios-film-outline"></i> - </span><span class="step size-16"> - <i class="icon ion-ios-film-outline"></i> - </span><span class="step size-18"> - <i class="icon ion-ios-film-outline"></i> - </span><span class="step size-21"> - <i class="icon ion-ios-film-outline"></i> - </span><span class="step size-24"> - <i class="icon ion-ios-film-outline"></i> - </span><span class="step size-32"> - <i class="icon ion-ios-film-outline"></i> - </span><span class="step size-48"> - <i class="icon ion-ios-film-outline"></i> - </span><span class="step size-64"> - <i class="icon ion-ios-film-outline"></i> - </span><span class="step size-96"> - <i class="icon ion-ios-film-outline"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-ios-film-outline" /> - - <label>Selectable:</label> - <span class="ion">&#xf42a;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf42a;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f42a" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-ios-flag"></i> - </span><span class="step size-14"> - <i class="icon ion-ios-flag"></i> - </span><span class="step size-16"> - <i class="icon ion-ios-flag"></i> - </span><span class="step size-18"> - <i class="icon ion-ios-flag"></i> - </span><span class="step size-21"> - <i class="icon ion-ios-flag"></i> - </span><span class="step size-24"> - <i class="icon ion-ios-flag"></i> - </span><span class="step size-32"> - <i class="icon ion-ios-flag"></i> - </span><span class="step size-48"> - <i class="icon ion-ios-flag"></i> - </span><span class="step size-64"> - <i class="icon ion-ios-flag"></i> - </span><span class="step size-96"> - <i class="icon ion-ios-flag"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-ios-flag" /> - - <label>Selectable:</label> - <span class="ion">&#xf42d;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf42d;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f42d" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-ios-flag-outline"></i> - </span><span class="step size-14"> - <i class="icon ion-ios-flag-outline"></i> - </span><span class="step size-16"> - <i class="icon ion-ios-flag-outline"></i> - </span><span class="step size-18"> - <i class="icon ion-ios-flag-outline"></i> - </span><span class="step size-21"> - <i class="icon ion-ios-flag-outline"></i> - </span><span class="step size-24"> - <i class="icon ion-ios-flag-outline"></i> - </span><span class="step size-32"> - <i class="icon ion-ios-flag-outline"></i> - </span><span class="step size-48"> - <i class="icon ion-ios-flag-outline"></i> - </span><span class="step size-64"> - <i class="icon ion-ios-flag-outline"></i> - </span><span class="step size-96"> - <i class="icon ion-ios-flag-outline"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-ios-flag-outline" /> - - <label>Selectable:</label> - <span class="ion">&#xf42c;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf42c;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f42c" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-ios-flame"></i> - </span><span class="step size-14"> - <i class="icon ion-ios-flame"></i> - </span><span class="step size-16"> - <i class="icon ion-ios-flame"></i> - </span><span class="step size-18"> - <i class="icon ion-ios-flame"></i> - </span><span class="step size-21"> - <i class="icon ion-ios-flame"></i> - </span><span class="step size-24"> - <i class="icon ion-ios-flame"></i> - </span><span class="step size-32"> - <i class="icon ion-ios-flame"></i> - </span><span class="step size-48"> - <i class="icon ion-ios-flame"></i> - </span><span class="step size-64"> - <i class="icon ion-ios-flame"></i> - </span><span class="step size-96"> - <i class="icon ion-ios-flame"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-ios-flame" /> - - <label>Selectable:</label> - <span class="ion">&#xf42f;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf42f;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f42f" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-ios-flame-outline"></i> - </span><span class="step size-14"> - <i class="icon ion-ios-flame-outline"></i> - </span><span class="step size-16"> - <i class="icon ion-ios-flame-outline"></i> - </span><span class="step size-18"> - <i class="icon ion-ios-flame-outline"></i> - </span><span class="step size-21"> - <i class="icon ion-ios-flame-outline"></i> - </span><span class="step size-24"> - <i class="icon ion-ios-flame-outline"></i> - </span><span class="step size-32"> - <i class="icon ion-ios-flame-outline"></i> - </span><span class="step size-48"> - <i class="icon ion-ios-flame-outline"></i> - </span><span class="step size-64"> - <i class="icon ion-ios-flame-outline"></i> - </span><span class="step size-96"> - <i class="icon ion-ios-flame-outline"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-ios-flame-outline" /> - - <label>Selectable:</label> - <span class="ion">&#xf42e;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf42e;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f42e" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-ios-flask"></i> - </span><span class="step size-14"> - <i class="icon ion-ios-flask"></i> - </span><span class="step size-16"> - <i class="icon ion-ios-flask"></i> - </span><span class="step size-18"> - <i class="icon ion-ios-flask"></i> - </span><span class="step size-21"> - <i class="icon ion-ios-flask"></i> - </span><span class="step size-24"> - <i class="icon ion-ios-flask"></i> - </span><span class="step size-32"> - <i class="icon ion-ios-flask"></i> - </span><span class="step size-48"> - <i class="icon ion-ios-flask"></i> - </span><span class="step size-64"> - <i class="icon ion-ios-flask"></i> - </span><span class="step size-96"> - <i class="icon ion-ios-flask"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-ios-flask" /> - - <label>Selectable:</label> - <span class="ion">&#xf431;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf431;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f431" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-ios-flask-outline"></i> - </span><span class="step size-14"> - <i class="icon ion-ios-flask-outline"></i> - </span><span class="step size-16"> - <i class="icon ion-ios-flask-outline"></i> - </span><span class="step size-18"> - <i class="icon ion-ios-flask-outline"></i> - </span><span class="step size-21"> - <i class="icon ion-ios-flask-outline"></i> - </span><span class="step size-24"> - <i class="icon ion-ios-flask-outline"></i> - </span><span class="step size-32"> - <i class="icon ion-ios-flask-outline"></i> - </span><span class="step size-48"> - <i class="icon ion-ios-flask-outline"></i> - </span><span class="step size-64"> - <i class="icon ion-ios-flask-outline"></i> - </span><span class="step size-96"> - <i class="icon ion-ios-flask-outline"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-ios-flask-outline" /> - - <label>Selectable:</label> - <span class="ion">&#xf430;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf430;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f430" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-ios-flower"></i> - </span><span class="step size-14"> - <i class="icon ion-ios-flower"></i> - </span><span class="step size-16"> - <i class="icon ion-ios-flower"></i> - </span><span class="step size-18"> - <i class="icon ion-ios-flower"></i> - </span><span class="step size-21"> - <i class="icon ion-ios-flower"></i> - </span><span class="step size-24"> - <i class="icon ion-ios-flower"></i> - </span><span class="step size-32"> - <i class="icon ion-ios-flower"></i> - </span><span class="step size-48"> - <i class="icon ion-ios-flower"></i> - </span><span class="step size-64"> - <i class="icon ion-ios-flower"></i> - </span><span class="step size-96"> - <i class="icon ion-ios-flower"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-ios-flower" /> - - <label>Selectable:</label> - <span class="ion">&#xf433;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf433;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f433" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-ios-flower-outline"></i> - </span><span class="step size-14"> - <i class="icon ion-ios-flower-outline"></i> - </span><span class="step size-16"> - <i class="icon ion-ios-flower-outline"></i> - </span><span class="step size-18"> - <i class="icon ion-ios-flower-outline"></i> - </span><span class="step size-21"> - <i class="icon ion-ios-flower-outline"></i> - </span><span class="step size-24"> - <i class="icon ion-ios-flower-outline"></i> - </span><span class="step size-32"> - <i class="icon ion-ios-flower-outline"></i> - </span><span class="step size-48"> - <i class="icon ion-ios-flower-outline"></i> - </span><span class="step size-64"> - <i class="icon ion-ios-flower-outline"></i> - </span><span class="step size-96"> - <i class="icon ion-ios-flower-outline"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-ios-flower-outline" /> - - <label>Selectable:</label> - <span class="ion">&#xf432;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf432;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f432" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-ios-folder"></i> - </span><span class="step size-14"> - <i class="icon ion-ios-folder"></i> - </span><span class="step size-16"> - <i class="icon ion-ios-folder"></i> - </span><span class="step size-18"> - <i class="icon ion-ios-folder"></i> - </span><span class="step size-21"> - <i class="icon ion-ios-folder"></i> - </span><span class="step size-24"> - <i class="icon ion-ios-folder"></i> - </span><span class="step size-32"> - <i class="icon ion-ios-folder"></i> - </span><span class="step size-48"> - <i class="icon ion-ios-folder"></i> - </span><span class="step size-64"> - <i class="icon ion-ios-folder"></i> - </span><span class="step size-96"> - <i class="icon ion-ios-folder"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-ios-folder" /> - - <label>Selectable:</label> - <span class="ion">&#xf435;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf435;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f435" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-ios-folder-outline"></i> - </span><span class="step size-14"> - <i class="icon ion-ios-folder-outline"></i> - </span><span class="step size-16"> - <i class="icon ion-ios-folder-outline"></i> - </span><span class="step size-18"> - <i class="icon ion-ios-folder-outline"></i> - </span><span class="step size-21"> - <i class="icon ion-ios-folder-outline"></i> - </span><span class="step size-24"> - <i class="icon ion-ios-folder-outline"></i> - </span><span class="step size-32"> - <i class="icon ion-ios-folder-outline"></i> - </span><span class="step size-48"> - <i class="icon ion-ios-folder-outline"></i> - </span><span class="step size-64"> - <i class="icon ion-ios-folder-outline"></i> - </span><span class="step size-96"> - <i class="icon ion-ios-folder-outline"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-ios-folder-outline" /> - - <label>Selectable:</label> - <span class="ion">&#xf434;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf434;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f434" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-ios-football"></i> - </span><span class="step size-14"> - <i class="icon ion-ios-football"></i> - </span><span class="step size-16"> - <i class="icon ion-ios-football"></i> - </span><span class="step size-18"> - <i class="icon ion-ios-football"></i> - </span><span class="step size-21"> - <i class="icon ion-ios-football"></i> - </span><span class="step size-24"> - <i class="icon ion-ios-football"></i> - </span><span class="step size-32"> - <i class="icon ion-ios-football"></i> - </span><span class="step size-48"> - <i class="icon ion-ios-football"></i> - </span><span class="step size-64"> - <i class="icon ion-ios-football"></i> - </span><span class="step size-96"> - <i class="icon ion-ios-football"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-ios-football" /> - - <label>Selectable:</label> - <span class="ion">&#xf437;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf437;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f437" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-ios-football-outline"></i> - </span><span class="step size-14"> - <i class="icon ion-ios-football-outline"></i> - </span><span class="step size-16"> - <i class="icon ion-ios-football-outline"></i> - </span><span class="step size-18"> - <i class="icon ion-ios-football-outline"></i> - </span><span class="step size-21"> - <i class="icon ion-ios-football-outline"></i> - </span><span class="step size-24"> - <i class="icon ion-ios-football-outline"></i> - </span><span class="step size-32"> - <i class="icon ion-ios-football-outline"></i> - </span><span class="step size-48"> - <i class="icon ion-ios-football-outline"></i> - </span><span class="step size-64"> - <i class="icon ion-ios-football-outline"></i> - </span><span class="step size-96"> - <i class="icon ion-ios-football-outline"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-ios-football-outline" /> - - <label>Selectable:</label> - <span class="ion">&#xf436;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf436;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f436" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-ios-game-controller-a"></i> - </span><span class="step size-14"> - <i class="icon ion-ios-game-controller-a"></i> - </span><span class="step size-16"> - <i class="icon ion-ios-game-controller-a"></i> - </span><span class="step size-18"> - <i class="icon ion-ios-game-controller-a"></i> - </span><span class="step size-21"> - <i class="icon ion-ios-game-controller-a"></i> - </span><span class="step size-24"> - <i class="icon ion-ios-game-controller-a"></i> - </span><span class="step size-32"> - <i class="icon ion-ios-game-controller-a"></i> - </span><span class="step size-48"> - <i class="icon ion-ios-game-controller-a"></i> - </span><span class="step size-64"> - <i class="icon ion-ios-game-controller-a"></i> - </span><span class="step size-96"> - <i class="icon ion-ios-game-controller-a"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-ios-game-controller-a" /> - - <label>Selectable:</label> - <span class="ion">&#xf439;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf439;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f439" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-ios-game-controller-a-outline"></i> - </span><span class="step size-14"> - <i class="icon ion-ios-game-controller-a-outline"></i> - </span><span class="step size-16"> - <i class="icon ion-ios-game-controller-a-outline"></i> - </span><span class="step size-18"> - <i class="icon ion-ios-game-controller-a-outline"></i> - </span><span class="step size-21"> - <i class="icon ion-ios-game-controller-a-outline"></i> - </span><span class="step size-24"> - <i class="icon ion-ios-game-controller-a-outline"></i> - </span><span class="step size-32"> - <i class="icon ion-ios-game-controller-a-outline"></i> - </span><span class="step size-48"> - <i class="icon ion-ios-game-controller-a-outline"></i> - </span><span class="step size-64"> - <i class="icon ion-ios-game-controller-a-outline"></i> - </span><span class="step size-96"> - <i class="icon ion-ios-game-controller-a-outline"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-ios-game-controller-a-outline" /> - - <label>Selectable:</label> - <span class="ion">&#xf438;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf438;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f438" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-ios-game-controller-b"></i> - </span><span class="step size-14"> - <i class="icon ion-ios-game-controller-b"></i> - </span><span class="step size-16"> - <i class="icon ion-ios-game-controller-b"></i> - </span><span class="step size-18"> - <i class="icon ion-ios-game-controller-b"></i> - </span><span class="step size-21"> - <i class="icon ion-ios-game-controller-b"></i> - </span><span class="step size-24"> - <i class="icon ion-ios-game-controller-b"></i> - </span><span class="step size-32"> - <i class="icon ion-ios-game-controller-b"></i> - </span><span class="step size-48"> - <i class="icon ion-ios-game-controller-b"></i> - </span><span class="step size-64"> - <i class="icon ion-ios-game-controller-b"></i> - </span><span class="step size-96"> - <i class="icon ion-ios-game-controller-b"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-ios-game-controller-b" /> - - <label>Selectable:</label> - <span class="ion">&#xf43b;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf43b;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f43b" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-ios-game-controller-b-outline"></i> - </span><span class="step size-14"> - <i class="icon ion-ios-game-controller-b-outline"></i> - </span><span class="step size-16"> - <i class="icon ion-ios-game-controller-b-outline"></i> - </span><span class="step size-18"> - <i class="icon ion-ios-game-controller-b-outline"></i> - </span><span class="step size-21"> - <i class="icon ion-ios-game-controller-b-outline"></i> - </span><span class="step size-24"> - <i class="icon ion-ios-game-controller-b-outline"></i> - </span><span class="step size-32"> - <i class="icon ion-ios-game-controller-b-outline"></i> - </span><span class="step size-48"> - <i class="icon ion-ios-game-controller-b-outline"></i> - </span><span class="step size-64"> - <i class="icon ion-ios-game-controller-b-outline"></i> - </span><span class="step size-96"> - <i class="icon ion-ios-game-controller-b-outline"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-ios-game-controller-b-outline" /> - - <label>Selectable:</label> - <span class="ion">&#xf43a;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf43a;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f43a" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-ios-gear"></i> - </span><span class="step size-14"> - <i class="icon ion-ios-gear"></i> - </span><span class="step size-16"> - <i class="icon ion-ios-gear"></i> - </span><span class="step size-18"> - <i class="icon ion-ios-gear"></i> - </span><span class="step size-21"> - <i class="icon ion-ios-gear"></i> - </span><span class="step size-24"> - <i class="icon ion-ios-gear"></i> - </span><span class="step size-32"> - <i class="icon ion-ios-gear"></i> - </span><span class="step size-48"> - <i class="icon ion-ios-gear"></i> - </span><span class="step size-64"> - <i class="icon ion-ios-gear"></i> - </span><span class="step size-96"> - <i class="icon ion-ios-gear"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-ios-gear" /> - - <label>Selectable:</label> - <span class="ion">&#xf43d;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf43d;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f43d" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-ios-gear-outline"></i> - </span><span class="step size-14"> - <i class="icon ion-ios-gear-outline"></i> - </span><span class="step size-16"> - <i class="icon ion-ios-gear-outline"></i> - </span><span class="step size-18"> - <i class="icon ion-ios-gear-outline"></i> - </span><span class="step size-21"> - <i class="icon ion-ios-gear-outline"></i> - </span><span class="step size-24"> - <i class="icon ion-ios-gear-outline"></i> - </span><span class="step size-32"> - <i class="icon ion-ios-gear-outline"></i> - </span><span class="step size-48"> - <i class="icon ion-ios-gear-outline"></i> - </span><span class="step size-64"> - <i class="icon ion-ios-gear-outline"></i> - </span><span class="step size-96"> - <i class="icon ion-ios-gear-outline"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-ios-gear-outline" /> - - <label>Selectable:</label> - <span class="ion">&#xf43c;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf43c;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f43c" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-ios-glasses"></i> - </span><span class="step size-14"> - <i class="icon ion-ios-glasses"></i> - </span><span class="step size-16"> - <i class="icon ion-ios-glasses"></i> - </span><span class="step size-18"> - <i class="icon ion-ios-glasses"></i> - </span><span class="step size-21"> - <i class="icon ion-ios-glasses"></i> - </span><span class="step size-24"> - <i class="icon ion-ios-glasses"></i> - </span><span class="step size-32"> - <i class="icon ion-ios-glasses"></i> - </span><span class="step size-48"> - <i class="icon ion-ios-glasses"></i> - </span><span class="step size-64"> - <i class="icon ion-ios-glasses"></i> - </span><span class="step size-96"> - <i class="icon ion-ios-glasses"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-ios-glasses" /> - - <label>Selectable:</label> - <span class="ion">&#xf43f;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf43f;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f43f" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-ios-glasses-outline"></i> - </span><span class="step size-14"> - <i class="icon ion-ios-glasses-outline"></i> - </span><span class="step size-16"> - <i class="icon ion-ios-glasses-outline"></i> - </span><span class="step size-18"> - <i class="icon ion-ios-glasses-outline"></i> - </span><span class="step size-21"> - <i class="icon ion-ios-glasses-outline"></i> - </span><span class="step size-24"> - <i class="icon ion-ios-glasses-outline"></i> - </span><span class="step size-32"> - <i class="icon ion-ios-glasses-outline"></i> - </span><span class="step size-48"> - <i class="icon ion-ios-glasses-outline"></i> - </span><span class="step size-64"> - <i class="icon ion-ios-glasses-outline"></i> - </span><span class="step size-96"> - <i class="icon ion-ios-glasses-outline"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-ios-glasses-outline" /> - - <label>Selectable:</label> - <span class="ion">&#xf43e;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf43e;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f43e" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-ios-grid-view"></i> - </span><span class="step size-14"> - <i class="icon ion-ios-grid-view"></i> - </span><span class="step size-16"> - <i class="icon ion-ios-grid-view"></i> - </span><span class="step size-18"> - <i class="icon ion-ios-grid-view"></i> - </span><span class="step size-21"> - <i class="icon ion-ios-grid-view"></i> - </span><span class="step size-24"> - <i class="icon ion-ios-grid-view"></i> - </span><span class="step size-32"> - <i class="icon ion-ios-grid-view"></i> - </span><span class="step size-48"> - <i class="icon ion-ios-grid-view"></i> - </span><span class="step size-64"> - <i class="icon ion-ios-grid-view"></i> - </span><span class="step size-96"> - <i class="icon ion-ios-grid-view"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-ios-grid-view" /> - - <label>Selectable:</label> - <span class="ion">&#xf441;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf441;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f441" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-ios-grid-view-outline"></i> - </span><span class="step size-14"> - <i class="icon ion-ios-grid-view-outline"></i> - </span><span class="step size-16"> - <i class="icon ion-ios-grid-view-outline"></i> - </span><span class="step size-18"> - <i class="icon ion-ios-grid-view-outline"></i> - </span><span class="step size-21"> - <i class="icon ion-ios-grid-view-outline"></i> - </span><span class="step size-24"> - <i class="icon ion-ios-grid-view-outline"></i> - </span><span class="step size-32"> - <i class="icon ion-ios-grid-view-outline"></i> - </span><span class="step size-48"> - <i class="icon ion-ios-grid-view-outline"></i> - </span><span class="step size-64"> - <i class="icon ion-ios-grid-view-outline"></i> - </span><span class="step size-96"> - <i class="icon ion-ios-grid-view-outline"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-ios-grid-view-outline" /> - - <label>Selectable:</label> - <span class="ion">&#xf440;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf440;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f440" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-ios-heart"></i> - </span><span class="step size-14"> - <i class="icon ion-ios-heart"></i> - </span><span class="step size-16"> - <i class="icon ion-ios-heart"></i> - </span><span class="step size-18"> - <i class="icon ion-ios-heart"></i> - </span><span class="step size-21"> - <i class="icon ion-ios-heart"></i> - </span><span class="step size-24"> - <i class="icon ion-ios-heart"></i> - </span><span class="step size-32"> - <i class="icon ion-ios-heart"></i> - </span><span class="step size-48"> - <i class="icon ion-ios-heart"></i> - </span><span class="step size-64"> - <i class="icon ion-ios-heart"></i> - </span><span class="step size-96"> - <i class="icon ion-ios-heart"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-ios-heart" /> - - <label>Selectable:</label> - <span class="ion">&#xf443;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf443;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f443" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-ios-heart-outline"></i> - </span><span class="step size-14"> - <i class="icon ion-ios-heart-outline"></i> - </span><span class="step size-16"> - <i class="icon ion-ios-heart-outline"></i> - </span><span class="step size-18"> - <i class="icon ion-ios-heart-outline"></i> - </span><span class="step size-21"> - <i class="icon ion-ios-heart-outline"></i> - </span><span class="step size-24"> - <i class="icon ion-ios-heart-outline"></i> - </span><span class="step size-32"> - <i class="icon ion-ios-heart-outline"></i> - </span><span class="step size-48"> - <i class="icon ion-ios-heart-outline"></i> - </span><span class="step size-64"> - <i class="icon ion-ios-heart-outline"></i> - </span><span class="step size-96"> - <i class="icon ion-ios-heart-outline"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-ios-heart-outline" /> - - <label>Selectable:</label> - <span class="ion">&#xf442;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf442;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f442" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-ios-help"></i> - </span><span class="step size-14"> - <i class="icon ion-ios-help"></i> - </span><span class="step size-16"> - <i class="icon ion-ios-help"></i> - </span><span class="step size-18"> - <i class="icon ion-ios-help"></i> - </span><span class="step size-21"> - <i class="icon ion-ios-help"></i> - </span><span class="step size-24"> - <i class="icon ion-ios-help"></i> - </span><span class="step size-32"> - <i class="icon ion-ios-help"></i> - </span><span class="step size-48"> - <i class="icon ion-ios-help"></i> - </span><span class="step size-64"> - <i class="icon ion-ios-help"></i> - </span><span class="step size-96"> - <i class="icon ion-ios-help"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-ios-help" /> - - <label>Selectable:</label> - <span class="ion">&#xf446;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf446;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f446" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-ios-help-empty"></i> - </span><span class="step size-14"> - <i class="icon ion-ios-help-empty"></i> - </span><span class="step size-16"> - <i class="icon ion-ios-help-empty"></i> - </span><span class="step size-18"> - <i class="icon ion-ios-help-empty"></i> - </span><span class="step size-21"> - <i class="icon ion-ios-help-empty"></i> - </span><span class="step size-24"> - <i class="icon ion-ios-help-empty"></i> - </span><span class="step size-32"> - <i class="icon ion-ios-help-empty"></i> - </span><span class="step size-48"> - <i class="icon ion-ios-help-empty"></i> - </span><span class="step size-64"> - <i class="icon ion-ios-help-empty"></i> - </span><span class="step size-96"> - <i class="icon ion-ios-help-empty"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-ios-help-empty" /> - - <label>Selectable:</label> - <span class="ion">&#xf444;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf444;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f444" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-ios-help-outline"></i> - </span><span class="step size-14"> - <i class="icon ion-ios-help-outline"></i> - </span><span class="step size-16"> - <i class="icon ion-ios-help-outline"></i> - </span><span class="step size-18"> - <i class="icon ion-ios-help-outline"></i> - </span><span class="step size-21"> - <i class="icon ion-ios-help-outline"></i> - </span><span class="step size-24"> - <i class="icon ion-ios-help-outline"></i> - </span><span class="step size-32"> - <i class="icon ion-ios-help-outline"></i> - </span><span class="step size-48"> - <i class="icon ion-ios-help-outline"></i> - </span><span class="step size-64"> - <i class="icon ion-ios-help-outline"></i> - </span><span class="step size-96"> - <i class="icon ion-ios-help-outline"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-ios-help-outline" /> - - <label>Selectable:</label> - <span class="ion">&#xf445;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf445;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f445" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-ios-home"></i> - </span><span class="step size-14"> - <i class="icon ion-ios-home"></i> - </span><span class="step size-16"> - <i class="icon ion-ios-home"></i> - </span><span class="step size-18"> - <i class="icon ion-ios-home"></i> - </span><span class="step size-21"> - <i class="icon ion-ios-home"></i> - </span><span class="step size-24"> - <i class="icon ion-ios-home"></i> - </span><span class="step size-32"> - <i class="icon ion-ios-home"></i> - </span><span class="step size-48"> - <i class="icon ion-ios-home"></i> - </span><span class="step size-64"> - <i class="icon ion-ios-home"></i> - </span><span class="step size-96"> - <i class="icon ion-ios-home"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-ios-home" /> - - <label>Selectable:</label> - <span class="ion">&#xf448;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf448;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f448" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-ios-home-outline"></i> - </span><span class="step size-14"> - <i class="icon ion-ios-home-outline"></i> - </span><span class="step size-16"> - <i class="icon ion-ios-home-outline"></i> - </span><span class="step size-18"> - <i class="icon ion-ios-home-outline"></i> - </span><span class="step size-21"> - <i class="icon ion-ios-home-outline"></i> - </span><span class="step size-24"> - <i class="icon ion-ios-home-outline"></i> - </span><span class="step size-32"> - <i class="icon ion-ios-home-outline"></i> - </span><span class="step size-48"> - <i class="icon ion-ios-home-outline"></i> - </span><span class="step size-64"> - <i class="icon ion-ios-home-outline"></i> - </span><span class="step size-96"> - <i class="icon ion-ios-home-outline"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-ios-home-outline" /> - - <label>Selectable:</label> - <span class="ion">&#xf447;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf447;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f447" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-ios-infinite"></i> - </span><span class="step size-14"> - <i class="icon ion-ios-infinite"></i> - </span><span class="step size-16"> - <i class="icon ion-ios-infinite"></i> - </span><span class="step size-18"> - <i class="icon ion-ios-infinite"></i> - </span><span class="step size-21"> - <i class="icon ion-ios-infinite"></i> - </span><span class="step size-24"> - <i class="icon ion-ios-infinite"></i> - </span><span class="step size-32"> - <i class="icon ion-ios-infinite"></i> - </span><span class="step size-48"> - <i class="icon ion-ios-infinite"></i> - </span><span class="step size-64"> - <i class="icon ion-ios-infinite"></i> - </span><span class="step size-96"> - <i class="icon ion-ios-infinite"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-ios-infinite" /> - - <label>Selectable:</label> - <span class="ion">&#xf44a;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf44a;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f44a" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-ios-infinite-outline"></i> - </span><span class="step size-14"> - <i class="icon ion-ios-infinite-outline"></i> - </span><span class="step size-16"> - <i class="icon ion-ios-infinite-outline"></i> - </span><span class="step size-18"> - <i class="icon ion-ios-infinite-outline"></i> - </span><span class="step size-21"> - <i class="icon ion-ios-infinite-outline"></i> - </span><span class="step size-24"> - <i class="icon ion-ios-infinite-outline"></i> - </span><span class="step size-32"> - <i class="icon ion-ios-infinite-outline"></i> - </span><span class="step size-48"> - <i class="icon ion-ios-infinite-outline"></i> - </span><span class="step size-64"> - <i class="icon ion-ios-infinite-outline"></i> - </span><span class="step size-96"> - <i class="icon ion-ios-infinite-outline"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-ios-infinite-outline" /> - - <label>Selectable:</label> - <span class="ion">&#xf449;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf449;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f449" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-ios-information"></i> - </span><span class="step size-14"> - <i class="icon ion-ios-information"></i> - </span><span class="step size-16"> - <i class="icon ion-ios-information"></i> - </span><span class="step size-18"> - <i class="icon ion-ios-information"></i> - </span><span class="step size-21"> - <i class="icon ion-ios-information"></i> - </span><span class="step size-24"> - <i class="icon ion-ios-information"></i> - </span><span class="step size-32"> - <i class="icon ion-ios-information"></i> - </span><span class="step size-48"> - <i class="icon ion-ios-information"></i> - </span><span class="step size-64"> - <i class="icon ion-ios-information"></i> - </span><span class="step size-96"> - <i class="icon ion-ios-information"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-ios-information" /> - - <label>Selectable:</label> - <span class="ion">&#xf44d;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf44d;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f44d" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-ios-information-empty"></i> - </span><span class="step size-14"> - <i class="icon ion-ios-information-empty"></i> - </span><span class="step size-16"> - <i class="icon ion-ios-information-empty"></i> - </span><span class="step size-18"> - <i class="icon ion-ios-information-empty"></i> - </span><span class="step size-21"> - <i class="icon ion-ios-information-empty"></i> - </span><span class="step size-24"> - <i class="icon ion-ios-information-empty"></i> - </span><span class="step size-32"> - <i class="icon ion-ios-information-empty"></i> - </span><span class="step size-48"> - <i class="icon ion-ios-information-empty"></i> - </span><span class="step size-64"> - <i class="icon ion-ios-information-empty"></i> - </span><span class="step size-96"> - <i class="icon ion-ios-information-empty"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-ios-information-empty" /> - - <label>Selectable:</label> - <span class="ion">&#xf44b;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf44b;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f44b" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-ios-information-outline"></i> - </span><span class="step size-14"> - <i class="icon ion-ios-information-outline"></i> - </span><span class="step size-16"> - <i class="icon ion-ios-information-outline"></i> - </span><span class="step size-18"> - <i class="icon ion-ios-information-outline"></i> - </span><span class="step size-21"> - <i class="icon ion-ios-information-outline"></i> - </span><span class="step size-24"> - <i class="icon ion-ios-information-outline"></i> - </span><span class="step size-32"> - <i class="icon ion-ios-information-outline"></i> - </span><span class="step size-48"> - <i class="icon ion-ios-information-outline"></i> - </span><span class="step size-64"> - <i class="icon ion-ios-information-outline"></i> - </span><span class="step size-96"> - <i class="icon ion-ios-information-outline"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-ios-information-outline" /> - - <label>Selectable:</label> - <span class="ion">&#xf44c;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf44c;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f44c" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-ios-ionic-outline"></i> - </span><span class="step size-14"> - <i class="icon ion-ios-ionic-outline"></i> - </span><span class="step size-16"> - <i class="icon ion-ios-ionic-outline"></i> - </span><span class="step size-18"> - <i class="icon ion-ios-ionic-outline"></i> - </span><span class="step size-21"> - <i class="icon ion-ios-ionic-outline"></i> - </span><span class="step size-24"> - <i class="icon ion-ios-ionic-outline"></i> - </span><span class="step size-32"> - <i class="icon ion-ios-ionic-outline"></i> - </span><span class="step size-48"> - <i class="icon ion-ios-ionic-outline"></i> - </span><span class="step size-64"> - <i class="icon ion-ios-ionic-outline"></i> - </span><span class="step size-96"> - <i class="icon ion-ios-ionic-outline"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-ios-ionic-outline" /> - - <label>Selectable:</label> - <span class="ion">&#xf44e;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf44e;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f44e" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-ios-keypad"></i> - </span><span class="step size-14"> - <i class="icon ion-ios-keypad"></i> - </span><span class="step size-16"> - <i class="icon ion-ios-keypad"></i> - </span><span class="step size-18"> - <i class="icon ion-ios-keypad"></i> - </span><span class="step size-21"> - <i class="icon ion-ios-keypad"></i> - </span><span class="step size-24"> - <i class="icon ion-ios-keypad"></i> - </span><span class="step size-32"> - <i class="icon ion-ios-keypad"></i> - </span><span class="step size-48"> - <i class="icon ion-ios-keypad"></i> - </span><span class="step size-64"> - <i class="icon ion-ios-keypad"></i> - </span><span class="step size-96"> - <i class="icon ion-ios-keypad"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-ios-keypad" /> - - <label>Selectable:</label> - <span class="ion">&#xf450;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf450;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f450" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-ios-keypad-outline"></i> - </span><span class="step size-14"> - <i class="icon ion-ios-keypad-outline"></i> - </span><span class="step size-16"> - <i class="icon ion-ios-keypad-outline"></i> - </span><span class="step size-18"> - <i class="icon ion-ios-keypad-outline"></i> - </span><span class="step size-21"> - <i class="icon ion-ios-keypad-outline"></i> - </span><span class="step size-24"> - <i class="icon ion-ios-keypad-outline"></i> - </span><span class="step size-32"> - <i class="icon ion-ios-keypad-outline"></i> - </span><span class="step size-48"> - <i class="icon ion-ios-keypad-outline"></i> - </span><span class="step size-64"> - <i class="icon ion-ios-keypad-outline"></i> - </span><span class="step size-96"> - <i class="icon ion-ios-keypad-outline"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-ios-keypad-outline" /> - - <label>Selectable:</label> - <span class="ion">&#xf44f;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf44f;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f44f" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-ios-lightbulb"></i> - </span><span class="step size-14"> - <i class="icon ion-ios-lightbulb"></i> - </span><span class="step size-16"> - <i class="icon ion-ios-lightbulb"></i> - </span><span class="step size-18"> - <i class="icon ion-ios-lightbulb"></i> - </span><span class="step size-21"> - <i class="icon ion-ios-lightbulb"></i> - </span><span class="step size-24"> - <i class="icon ion-ios-lightbulb"></i> - </span><span class="step size-32"> - <i class="icon ion-ios-lightbulb"></i> - </span><span class="step size-48"> - <i class="icon ion-ios-lightbulb"></i> - </span><span class="step size-64"> - <i class="icon ion-ios-lightbulb"></i> - </span><span class="step size-96"> - <i class="icon ion-ios-lightbulb"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-ios-lightbulb" /> - - <label>Selectable:</label> - <span class="ion">&#xf452;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf452;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f452" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-ios-lightbulb-outline"></i> - </span><span class="step size-14"> - <i class="icon ion-ios-lightbulb-outline"></i> - </span><span class="step size-16"> - <i class="icon ion-ios-lightbulb-outline"></i> - </span><span class="step size-18"> - <i class="icon ion-ios-lightbulb-outline"></i> - </span><span class="step size-21"> - <i class="icon ion-ios-lightbulb-outline"></i> - </span><span class="step size-24"> - <i class="icon ion-ios-lightbulb-outline"></i> - </span><span class="step size-32"> - <i class="icon ion-ios-lightbulb-outline"></i> - </span><span class="step size-48"> - <i class="icon ion-ios-lightbulb-outline"></i> - </span><span class="step size-64"> - <i class="icon ion-ios-lightbulb-outline"></i> - </span><span class="step size-96"> - <i class="icon ion-ios-lightbulb-outline"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-ios-lightbulb-outline" /> - - <label>Selectable:</label> - <span class="ion">&#xf451;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf451;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f451" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-ios-list"></i> - </span><span class="step size-14"> - <i class="icon ion-ios-list"></i> - </span><span class="step size-16"> - <i class="icon ion-ios-list"></i> - </span><span class="step size-18"> - <i class="icon ion-ios-list"></i> - </span><span class="step size-21"> - <i class="icon ion-ios-list"></i> - </span><span class="step size-24"> - <i class="icon ion-ios-list"></i> - </span><span class="step size-32"> - <i class="icon ion-ios-list"></i> - </span><span class="step size-48"> - <i class="icon ion-ios-list"></i> - </span><span class="step size-64"> - <i class="icon ion-ios-list"></i> - </span><span class="step size-96"> - <i class="icon ion-ios-list"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-ios-list" /> - - <label>Selectable:</label> - <span class="ion">&#xf454;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf454;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f454" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-ios-list-outline"></i> - </span><span class="step size-14"> - <i class="icon ion-ios-list-outline"></i> - </span><span class="step size-16"> - <i class="icon ion-ios-list-outline"></i> - </span><span class="step size-18"> - <i class="icon ion-ios-list-outline"></i> - </span><span class="step size-21"> - <i class="icon ion-ios-list-outline"></i> - </span><span class="step size-24"> - <i class="icon ion-ios-list-outline"></i> - </span><span class="step size-32"> - <i class="icon ion-ios-list-outline"></i> - </span><span class="step size-48"> - <i class="icon ion-ios-list-outline"></i> - </span><span class="step size-64"> - <i class="icon ion-ios-list-outline"></i> - </span><span class="step size-96"> - <i class="icon ion-ios-list-outline"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-ios-list-outline" /> - - <label>Selectable:</label> - <span class="ion">&#xf453;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf453;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f453" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-ios-location"></i> - </span><span class="step size-14"> - <i class="icon ion-ios-location"></i> - </span><span class="step size-16"> - <i class="icon ion-ios-location"></i> - </span><span class="step size-18"> - <i class="icon ion-ios-location"></i> - </span><span class="step size-21"> - <i class="icon ion-ios-location"></i> - </span><span class="step size-24"> - <i class="icon ion-ios-location"></i> - </span><span class="step size-32"> - <i class="icon ion-ios-location"></i> - </span><span class="step size-48"> - <i class="icon ion-ios-location"></i> - </span><span class="step size-64"> - <i class="icon ion-ios-location"></i> - </span><span class="step size-96"> - <i class="icon ion-ios-location"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-ios-location" /> - - <label>Selectable:</label> - <span class="ion">&#xf456;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf456;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f456" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-ios-location-outline"></i> - </span><span class="step size-14"> - <i class="icon ion-ios-location-outline"></i> - </span><span class="step size-16"> - <i class="icon ion-ios-location-outline"></i> - </span><span class="step size-18"> - <i class="icon ion-ios-location-outline"></i> - </span><span class="step size-21"> - <i class="icon ion-ios-location-outline"></i> - </span><span class="step size-24"> - <i class="icon ion-ios-location-outline"></i> - </span><span class="step size-32"> - <i class="icon ion-ios-location-outline"></i> - </span><span class="step size-48"> - <i class="icon ion-ios-location-outline"></i> - </span><span class="step size-64"> - <i class="icon ion-ios-location-outline"></i> - </span><span class="step size-96"> - <i class="icon ion-ios-location-outline"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-ios-location-outline" /> - - <label>Selectable:</label> - <span class="ion">&#xf455;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf455;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f455" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-ios-locked"></i> - </span><span class="step size-14"> - <i class="icon ion-ios-locked"></i> - </span><span class="step size-16"> - <i class="icon ion-ios-locked"></i> - </span><span class="step size-18"> - <i class="icon ion-ios-locked"></i> - </span><span class="step size-21"> - <i class="icon ion-ios-locked"></i> - </span><span class="step size-24"> - <i class="icon ion-ios-locked"></i> - </span><span class="step size-32"> - <i class="icon ion-ios-locked"></i> - </span><span class="step size-48"> - <i class="icon ion-ios-locked"></i> - </span><span class="step size-64"> - <i class="icon ion-ios-locked"></i> - </span><span class="step size-96"> - <i class="icon ion-ios-locked"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-ios-locked" /> - - <label>Selectable:</label> - <span class="ion">&#xf458;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf458;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f458" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-ios-locked-outline"></i> - </span><span class="step size-14"> - <i class="icon ion-ios-locked-outline"></i> - </span><span class="step size-16"> - <i class="icon ion-ios-locked-outline"></i> - </span><span class="step size-18"> - <i class="icon ion-ios-locked-outline"></i> - </span><span class="step size-21"> - <i class="icon ion-ios-locked-outline"></i> - </span><span class="step size-24"> - <i class="icon ion-ios-locked-outline"></i> - </span><span class="step size-32"> - <i class="icon ion-ios-locked-outline"></i> - </span><span class="step size-48"> - <i class="icon ion-ios-locked-outline"></i> - </span><span class="step size-64"> - <i class="icon ion-ios-locked-outline"></i> - </span><span class="step size-96"> - <i class="icon ion-ios-locked-outline"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-ios-locked-outline" /> - - <label>Selectable:</label> - <span class="ion">&#xf457;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf457;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f457" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-ios-loop"></i> - </span><span class="step size-14"> - <i class="icon ion-ios-loop"></i> - </span><span class="step size-16"> - <i class="icon ion-ios-loop"></i> - </span><span class="step size-18"> - <i class="icon ion-ios-loop"></i> - </span><span class="step size-21"> - <i class="icon ion-ios-loop"></i> - </span><span class="step size-24"> - <i class="icon ion-ios-loop"></i> - </span><span class="step size-32"> - <i class="icon ion-ios-loop"></i> - </span><span class="step size-48"> - <i class="icon ion-ios-loop"></i> - </span><span class="step size-64"> - <i class="icon ion-ios-loop"></i> - </span><span class="step size-96"> - <i class="icon ion-ios-loop"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-ios-loop" /> - - <label>Selectable:</label> - <span class="ion">&#xf45a;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf45a;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f45a" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-ios-loop-strong"></i> - </span><span class="step size-14"> - <i class="icon ion-ios-loop-strong"></i> - </span><span class="step size-16"> - <i class="icon ion-ios-loop-strong"></i> - </span><span class="step size-18"> - <i class="icon ion-ios-loop-strong"></i> - </span><span class="step size-21"> - <i class="icon ion-ios-loop-strong"></i> - </span><span class="step size-24"> - <i class="icon ion-ios-loop-strong"></i> - </span><span class="step size-32"> - <i class="icon ion-ios-loop-strong"></i> - </span><span class="step size-48"> - <i class="icon ion-ios-loop-strong"></i> - </span><span class="step size-64"> - <i class="icon ion-ios-loop-strong"></i> - </span><span class="step size-96"> - <i class="icon ion-ios-loop-strong"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-ios-loop-strong" /> - - <label>Selectable:</label> - <span class="ion">&#xf459;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf459;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f459" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-ios-medical"></i> - </span><span class="step size-14"> - <i class="icon ion-ios-medical"></i> - </span><span class="step size-16"> - <i class="icon ion-ios-medical"></i> - </span><span class="step size-18"> - <i class="icon ion-ios-medical"></i> - </span><span class="step size-21"> - <i class="icon ion-ios-medical"></i> - </span><span class="step size-24"> - <i class="icon ion-ios-medical"></i> - </span><span class="step size-32"> - <i class="icon ion-ios-medical"></i> - </span><span class="step size-48"> - <i class="icon ion-ios-medical"></i> - </span><span class="step size-64"> - <i class="icon ion-ios-medical"></i> - </span><span class="step size-96"> - <i class="icon ion-ios-medical"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-ios-medical" /> - - <label>Selectable:</label> - <span class="ion">&#xf45c;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf45c;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f45c" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-ios-medical-outline"></i> - </span><span class="step size-14"> - <i class="icon ion-ios-medical-outline"></i> - </span><span class="step size-16"> - <i class="icon ion-ios-medical-outline"></i> - </span><span class="step size-18"> - <i class="icon ion-ios-medical-outline"></i> - </span><span class="step size-21"> - <i class="icon ion-ios-medical-outline"></i> - </span><span class="step size-24"> - <i class="icon ion-ios-medical-outline"></i> - </span><span class="step size-32"> - <i class="icon ion-ios-medical-outline"></i> - </span><span class="step size-48"> - <i class="icon ion-ios-medical-outline"></i> - </span><span class="step size-64"> - <i class="icon ion-ios-medical-outline"></i> - </span><span class="step size-96"> - <i class="icon ion-ios-medical-outline"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-ios-medical-outline" /> - - <label>Selectable:</label> - <span class="ion">&#xf45b;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf45b;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f45b" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-ios-medkit"></i> - </span><span class="step size-14"> - <i class="icon ion-ios-medkit"></i> - </span><span class="step size-16"> - <i class="icon ion-ios-medkit"></i> - </span><span class="step size-18"> - <i class="icon ion-ios-medkit"></i> - </span><span class="step size-21"> - <i class="icon ion-ios-medkit"></i> - </span><span class="step size-24"> - <i class="icon ion-ios-medkit"></i> - </span><span class="step size-32"> - <i class="icon ion-ios-medkit"></i> - </span><span class="step size-48"> - <i class="icon ion-ios-medkit"></i> - </span><span class="step size-64"> - <i class="icon ion-ios-medkit"></i> - </span><span class="step size-96"> - <i class="icon ion-ios-medkit"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-ios-medkit" /> - - <label>Selectable:</label> - <span class="ion">&#xf45e;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf45e;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f45e" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-ios-medkit-outline"></i> - </span><span class="step size-14"> - <i class="icon ion-ios-medkit-outline"></i> - </span><span class="step size-16"> - <i class="icon ion-ios-medkit-outline"></i> - </span><span class="step size-18"> - <i class="icon ion-ios-medkit-outline"></i> - </span><span class="step size-21"> - <i class="icon ion-ios-medkit-outline"></i> - </span><span class="step size-24"> - <i class="icon ion-ios-medkit-outline"></i> - </span><span class="step size-32"> - <i class="icon ion-ios-medkit-outline"></i> - </span><span class="step size-48"> - <i class="icon ion-ios-medkit-outline"></i> - </span><span class="step size-64"> - <i class="icon ion-ios-medkit-outline"></i> - </span><span class="step size-96"> - <i class="icon ion-ios-medkit-outline"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-ios-medkit-outline" /> - - <label>Selectable:</label> - <span class="ion">&#xf45d;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf45d;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f45d" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-ios-mic"></i> - </span><span class="step size-14"> - <i class="icon ion-ios-mic"></i> - </span><span class="step size-16"> - <i class="icon ion-ios-mic"></i> - </span><span class="step size-18"> - <i class="icon ion-ios-mic"></i> - </span><span class="step size-21"> - <i class="icon ion-ios-mic"></i> - </span><span class="step size-24"> - <i class="icon ion-ios-mic"></i> - </span><span class="step size-32"> - <i class="icon ion-ios-mic"></i> - </span><span class="step size-48"> - <i class="icon ion-ios-mic"></i> - </span><span class="step size-64"> - <i class="icon ion-ios-mic"></i> - </span><span class="step size-96"> - <i class="icon ion-ios-mic"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-ios-mic" /> - - <label>Selectable:</label> - <span class="ion">&#xf461;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf461;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f461" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-ios-mic-off"></i> - </span><span class="step size-14"> - <i class="icon ion-ios-mic-off"></i> - </span><span class="step size-16"> - <i class="icon ion-ios-mic-off"></i> - </span><span class="step size-18"> - <i class="icon ion-ios-mic-off"></i> - </span><span class="step size-21"> - <i class="icon ion-ios-mic-off"></i> - </span><span class="step size-24"> - <i class="icon ion-ios-mic-off"></i> - </span><span class="step size-32"> - <i class="icon ion-ios-mic-off"></i> - </span><span class="step size-48"> - <i class="icon ion-ios-mic-off"></i> - </span><span class="step size-64"> - <i class="icon ion-ios-mic-off"></i> - </span><span class="step size-96"> - <i class="icon ion-ios-mic-off"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-ios-mic-off" /> - - <label>Selectable:</label> - <span class="ion">&#xf45f;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf45f;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f45f" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-ios-mic-outline"></i> - </span><span class="step size-14"> - <i class="icon ion-ios-mic-outline"></i> - </span><span class="step size-16"> - <i class="icon ion-ios-mic-outline"></i> - </span><span class="step size-18"> - <i class="icon ion-ios-mic-outline"></i> - </span><span class="step size-21"> - <i class="icon ion-ios-mic-outline"></i> - </span><span class="step size-24"> - <i class="icon ion-ios-mic-outline"></i> - </span><span class="step size-32"> - <i class="icon ion-ios-mic-outline"></i> - </span><span class="step size-48"> - <i class="icon ion-ios-mic-outline"></i> - </span><span class="step size-64"> - <i class="icon ion-ios-mic-outline"></i> - </span><span class="step size-96"> - <i class="icon ion-ios-mic-outline"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-ios-mic-outline" /> - - <label>Selectable:</label> - <span class="ion">&#xf460;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf460;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f460" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-ios-minus"></i> - </span><span class="step size-14"> - <i class="icon ion-ios-minus"></i> - </span><span class="step size-16"> - <i class="icon ion-ios-minus"></i> - </span><span class="step size-18"> - <i class="icon ion-ios-minus"></i> - </span><span class="step size-21"> - <i class="icon ion-ios-minus"></i> - </span><span class="step size-24"> - <i class="icon ion-ios-minus"></i> - </span><span class="step size-32"> - <i class="icon ion-ios-minus"></i> - </span><span class="step size-48"> - <i class="icon ion-ios-minus"></i> - </span><span class="step size-64"> - <i class="icon ion-ios-minus"></i> - </span><span class="step size-96"> - <i class="icon ion-ios-minus"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-ios-minus" /> - - <label>Selectable:</label> - <span class="ion">&#xf464;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf464;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f464" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-ios-minus-empty"></i> - </span><span class="step size-14"> - <i class="icon ion-ios-minus-empty"></i> - </span><span class="step size-16"> - <i class="icon ion-ios-minus-empty"></i> - </span><span class="step size-18"> - <i class="icon ion-ios-minus-empty"></i> - </span><span class="step size-21"> - <i class="icon ion-ios-minus-empty"></i> - </span><span class="step size-24"> - <i class="icon ion-ios-minus-empty"></i> - </span><span class="step size-32"> - <i class="icon ion-ios-minus-empty"></i> - </span><span class="step size-48"> - <i class="icon ion-ios-minus-empty"></i> - </span><span class="step size-64"> - <i class="icon ion-ios-minus-empty"></i> - </span><span class="step size-96"> - <i class="icon ion-ios-minus-empty"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-ios-minus-empty" /> - - <label>Selectable:</label> - <span class="ion">&#xf462;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf462;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f462" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-ios-minus-outline"></i> - </span><span class="step size-14"> - <i class="icon ion-ios-minus-outline"></i> - </span><span class="step size-16"> - <i class="icon ion-ios-minus-outline"></i> - </span><span class="step size-18"> - <i class="icon ion-ios-minus-outline"></i> - </span><span class="step size-21"> - <i class="icon ion-ios-minus-outline"></i> - </span><span class="step size-24"> - <i class="icon ion-ios-minus-outline"></i> - </span><span class="step size-32"> - <i class="icon ion-ios-minus-outline"></i> - </span><span class="step size-48"> - <i class="icon ion-ios-minus-outline"></i> - </span><span class="step size-64"> - <i class="icon ion-ios-minus-outline"></i> - </span><span class="step size-96"> - <i class="icon ion-ios-minus-outline"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-ios-minus-outline" /> - - <label>Selectable:</label> - <span class="ion">&#xf463;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf463;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f463" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-ios-monitor"></i> - </span><span class="step size-14"> - <i class="icon ion-ios-monitor"></i> - </span><span class="step size-16"> - <i class="icon ion-ios-monitor"></i> - </span><span class="step size-18"> - <i class="icon ion-ios-monitor"></i> - </span><span class="step size-21"> - <i class="icon ion-ios-monitor"></i> - </span><span class="step size-24"> - <i class="icon ion-ios-monitor"></i> - </span><span class="step size-32"> - <i class="icon ion-ios-monitor"></i> - </span><span class="step size-48"> - <i class="icon ion-ios-monitor"></i> - </span><span class="step size-64"> - <i class="icon ion-ios-monitor"></i> - </span><span class="step size-96"> - <i class="icon ion-ios-monitor"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-ios-monitor" /> - - <label>Selectable:</label> - <span class="ion">&#xf466;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf466;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f466" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-ios-monitor-outline"></i> - </span><span class="step size-14"> - <i class="icon ion-ios-monitor-outline"></i> - </span><span class="step size-16"> - <i class="icon ion-ios-monitor-outline"></i> - </span><span class="step size-18"> - <i class="icon ion-ios-monitor-outline"></i> - </span><span class="step size-21"> - <i class="icon ion-ios-monitor-outline"></i> - </span><span class="step size-24"> - <i class="icon ion-ios-monitor-outline"></i> - </span><span class="step size-32"> - <i class="icon ion-ios-monitor-outline"></i> - </span><span class="step size-48"> - <i class="icon ion-ios-monitor-outline"></i> - </span><span class="step size-64"> - <i class="icon ion-ios-monitor-outline"></i> - </span><span class="step size-96"> - <i class="icon ion-ios-monitor-outline"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-ios-monitor-outline" /> - - <label>Selectable:</label> - <span class="ion">&#xf465;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf465;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f465" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-ios-moon"></i> - </span><span class="step size-14"> - <i class="icon ion-ios-moon"></i> - </span><span class="step size-16"> - <i class="icon ion-ios-moon"></i> - </span><span class="step size-18"> - <i class="icon ion-ios-moon"></i> - </span><span class="step size-21"> - <i class="icon ion-ios-moon"></i> - </span><span class="step size-24"> - <i class="icon ion-ios-moon"></i> - </span><span class="step size-32"> - <i class="icon ion-ios-moon"></i> - </span><span class="step size-48"> - <i class="icon ion-ios-moon"></i> - </span><span class="step size-64"> - <i class="icon ion-ios-moon"></i> - </span><span class="step size-96"> - <i class="icon ion-ios-moon"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-ios-moon" /> - - <label>Selectable:</label> - <span class="ion">&#xf468;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf468;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f468" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-ios-moon-outline"></i> - </span><span class="step size-14"> - <i class="icon ion-ios-moon-outline"></i> - </span><span class="step size-16"> - <i class="icon ion-ios-moon-outline"></i> - </span><span class="step size-18"> - <i class="icon ion-ios-moon-outline"></i> - </span><span class="step size-21"> - <i class="icon ion-ios-moon-outline"></i> - </span><span class="step size-24"> - <i class="icon ion-ios-moon-outline"></i> - </span><span class="step size-32"> - <i class="icon ion-ios-moon-outline"></i> - </span><span class="step size-48"> - <i class="icon ion-ios-moon-outline"></i> - </span><span class="step size-64"> - <i class="icon ion-ios-moon-outline"></i> - </span><span class="step size-96"> - <i class="icon ion-ios-moon-outline"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-ios-moon-outline" /> - - <label>Selectable:</label> - <span class="ion">&#xf467;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf467;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f467" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-ios-more"></i> - </span><span class="step size-14"> - <i class="icon ion-ios-more"></i> - </span><span class="step size-16"> - <i class="icon ion-ios-more"></i> - </span><span class="step size-18"> - <i class="icon ion-ios-more"></i> - </span><span class="step size-21"> - <i class="icon ion-ios-more"></i> - </span><span class="step size-24"> - <i class="icon ion-ios-more"></i> - </span><span class="step size-32"> - <i class="icon ion-ios-more"></i> - </span><span class="step size-48"> - <i class="icon ion-ios-more"></i> - </span><span class="step size-64"> - <i class="icon ion-ios-more"></i> - </span><span class="step size-96"> - <i class="icon ion-ios-more"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-ios-more" /> - - <label>Selectable:</label> - <span class="ion">&#xf46a;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf46a;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f46a" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-ios-more-outline"></i> - </span><span class="step size-14"> - <i class="icon ion-ios-more-outline"></i> - </span><span class="step size-16"> - <i class="icon ion-ios-more-outline"></i> - </span><span class="step size-18"> - <i class="icon ion-ios-more-outline"></i> - </span><span class="step size-21"> - <i class="icon ion-ios-more-outline"></i> - </span><span class="step size-24"> - <i class="icon ion-ios-more-outline"></i> - </span><span class="step size-32"> - <i class="icon ion-ios-more-outline"></i> - </span><span class="step size-48"> - <i class="icon ion-ios-more-outline"></i> - </span><span class="step size-64"> - <i class="icon ion-ios-more-outline"></i> - </span><span class="step size-96"> - <i class="icon ion-ios-more-outline"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-ios-more-outline" /> - - <label>Selectable:</label> - <span class="ion">&#xf469;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf469;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f469" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-ios-musical-note"></i> - </span><span class="step size-14"> - <i class="icon ion-ios-musical-note"></i> - </span><span class="step size-16"> - <i class="icon ion-ios-musical-note"></i> - </span><span class="step size-18"> - <i class="icon ion-ios-musical-note"></i> - </span><span class="step size-21"> - <i class="icon ion-ios-musical-note"></i> - </span><span class="step size-24"> - <i class="icon ion-ios-musical-note"></i> - </span><span class="step size-32"> - <i class="icon ion-ios-musical-note"></i> - </span><span class="step size-48"> - <i class="icon ion-ios-musical-note"></i> - </span><span class="step size-64"> - <i class="icon ion-ios-musical-note"></i> - </span><span class="step size-96"> - <i class="icon ion-ios-musical-note"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-ios-musical-note" /> - - <label>Selectable:</label> - <span class="ion">&#xf46b;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf46b;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f46b" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-ios-musical-notes"></i> - </span><span class="step size-14"> - <i class="icon ion-ios-musical-notes"></i> - </span><span class="step size-16"> - <i class="icon ion-ios-musical-notes"></i> - </span><span class="step size-18"> - <i class="icon ion-ios-musical-notes"></i> - </span><span class="step size-21"> - <i class="icon ion-ios-musical-notes"></i> - </span><span class="step size-24"> - <i class="icon ion-ios-musical-notes"></i> - </span><span class="step size-32"> - <i class="icon ion-ios-musical-notes"></i> - </span><span class="step size-48"> - <i class="icon ion-ios-musical-notes"></i> - </span><span class="step size-64"> - <i class="icon ion-ios-musical-notes"></i> - </span><span class="step size-96"> - <i class="icon ion-ios-musical-notes"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-ios-musical-notes" /> - - <label>Selectable:</label> - <span class="ion">&#xf46c;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf46c;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f46c" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-ios-navigate"></i> - </span><span class="step size-14"> - <i class="icon ion-ios-navigate"></i> - </span><span class="step size-16"> - <i class="icon ion-ios-navigate"></i> - </span><span class="step size-18"> - <i class="icon ion-ios-navigate"></i> - </span><span class="step size-21"> - <i class="icon ion-ios-navigate"></i> - </span><span class="step size-24"> - <i class="icon ion-ios-navigate"></i> - </span><span class="step size-32"> - <i class="icon ion-ios-navigate"></i> - </span><span class="step size-48"> - <i class="icon ion-ios-navigate"></i> - </span><span class="step size-64"> - <i class="icon ion-ios-navigate"></i> - </span><span class="step size-96"> - <i class="icon ion-ios-navigate"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-ios-navigate" /> - - <label>Selectable:</label> - <span class="ion">&#xf46e;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf46e;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f46e" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-ios-navigate-outline"></i> - </span><span class="step size-14"> - <i class="icon ion-ios-navigate-outline"></i> - </span><span class="step size-16"> - <i class="icon ion-ios-navigate-outline"></i> - </span><span class="step size-18"> - <i class="icon ion-ios-navigate-outline"></i> - </span><span class="step size-21"> - <i class="icon ion-ios-navigate-outline"></i> - </span><span class="step size-24"> - <i class="icon ion-ios-navigate-outline"></i> - </span><span class="step size-32"> - <i class="icon ion-ios-navigate-outline"></i> - </span><span class="step size-48"> - <i class="icon ion-ios-navigate-outline"></i> - </span><span class="step size-64"> - <i class="icon ion-ios-navigate-outline"></i> - </span><span class="step size-96"> - <i class="icon ion-ios-navigate-outline"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-ios-navigate-outline" /> - - <label>Selectable:</label> - <span class="ion">&#xf46d;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf46d;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f46d" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-ios-nutrition"></i> - </span><span class="step size-14"> - <i class="icon ion-ios-nutrition"></i> - </span><span class="step size-16"> - <i class="icon ion-ios-nutrition"></i> - </span><span class="step size-18"> - <i class="icon ion-ios-nutrition"></i> - </span><span class="step size-21"> - <i class="icon ion-ios-nutrition"></i> - </span><span class="step size-24"> - <i class="icon ion-ios-nutrition"></i> - </span><span class="step size-32"> - <i class="icon ion-ios-nutrition"></i> - </span><span class="step size-48"> - <i class="icon ion-ios-nutrition"></i> - </span><span class="step size-64"> - <i class="icon ion-ios-nutrition"></i> - </span><span class="step size-96"> - <i class="icon ion-ios-nutrition"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-ios-nutrition" /> - - <label>Selectable:</label> - <span class="ion">&#xf470;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf470;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f470" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-ios-nutrition-outline"></i> - </span><span class="step size-14"> - <i class="icon ion-ios-nutrition-outline"></i> - </span><span class="step size-16"> - <i class="icon ion-ios-nutrition-outline"></i> - </span><span class="step size-18"> - <i class="icon ion-ios-nutrition-outline"></i> - </span><span class="step size-21"> - <i class="icon ion-ios-nutrition-outline"></i> - </span><span class="step size-24"> - <i class="icon ion-ios-nutrition-outline"></i> - </span><span class="step size-32"> - <i class="icon ion-ios-nutrition-outline"></i> - </span><span class="step size-48"> - <i class="icon ion-ios-nutrition-outline"></i> - </span><span class="step size-64"> - <i class="icon ion-ios-nutrition-outline"></i> - </span><span class="step size-96"> - <i class="icon ion-ios-nutrition-outline"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-ios-nutrition-outline" /> - - <label>Selectable:</label> - <span class="ion">&#xf46f;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf46f;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f46f" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-ios-paper"></i> - </span><span class="step size-14"> - <i class="icon ion-ios-paper"></i> - </span><span class="step size-16"> - <i class="icon ion-ios-paper"></i> - </span><span class="step size-18"> - <i class="icon ion-ios-paper"></i> - </span><span class="step size-21"> - <i class="icon ion-ios-paper"></i> - </span><span class="step size-24"> - <i class="icon ion-ios-paper"></i> - </span><span class="step size-32"> - <i class="icon ion-ios-paper"></i> - </span><span class="step size-48"> - <i class="icon ion-ios-paper"></i> - </span><span class="step size-64"> - <i class="icon ion-ios-paper"></i> - </span><span class="step size-96"> - <i class="icon ion-ios-paper"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-ios-paper" /> - - <label>Selectable:</label> - <span class="ion">&#xf472;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf472;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f472" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-ios-paper-outline"></i> - </span><span class="step size-14"> - <i class="icon ion-ios-paper-outline"></i> - </span><span class="step size-16"> - <i class="icon ion-ios-paper-outline"></i> - </span><span class="step size-18"> - <i class="icon ion-ios-paper-outline"></i> - </span><span class="step size-21"> - <i class="icon ion-ios-paper-outline"></i> - </span><span class="step size-24"> - <i class="icon ion-ios-paper-outline"></i> - </span><span class="step size-32"> - <i class="icon ion-ios-paper-outline"></i> - </span><span class="step size-48"> - <i class="icon ion-ios-paper-outline"></i> - </span><span class="step size-64"> - <i class="icon ion-ios-paper-outline"></i> - </span><span class="step size-96"> - <i class="icon ion-ios-paper-outline"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-ios-paper-outline" /> - - <label>Selectable:</label> - <span class="ion">&#xf471;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf471;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f471" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-ios-paperplane"></i> - </span><span class="step size-14"> - <i class="icon ion-ios-paperplane"></i> - </span><span class="step size-16"> - <i class="icon ion-ios-paperplane"></i> - </span><span class="step size-18"> - <i class="icon ion-ios-paperplane"></i> - </span><span class="step size-21"> - <i class="icon ion-ios-paperplane"></i> - </span><span class="step size-24"> - <i class="icon ion-ios-paperplane"></i> - </span><span class="step size-32"> - <i class="icon ion-ios-paperplane"></i> - </span><span class="step size-48"> - <i class="icon ion-ios-paperplane"></i> - </span><span class="step size-64"> - <i class="icon ion-ios-paperplane"></i> - </span><span class="step size-96"> - <i class="icon ion-ios-paperplane"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-ios-paperplane" /> - - <label>Selectable:</label> - <span class="ion">&#xf474;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf474;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f474" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-ios-paperplane-outline"></i> - </span><span class="step size-14"> - <i class="icon ion-ios-paperplane-outline"></i> - </span><span class="step size-16"> - <i class="icon ion-ios-paperplane-outline"></i> - </span><span class="step size-18"> - <i class="icon ion-ios-paperplane-outline"></i> - </span><span class="step size-21"> - <i class="icon ion-ios-paperplane-outline"></i> - </span><span class="step size-24"> - <i class="icon ion-ios-paperplane-outline"></i> - </span><span class="step size-32"> - <i class="icon ion-ios-paperplane-outline"></i> - </span><span class="step size-48"> - <i class="icon ion-ios-paperplane-outline"></i> - </span><span class="step size-64"> - <i class="icon ion-ios-paperplane-outline"></i> - </span><span class="step size-96"> - <i class="icon ion-ios-paperplane-outline"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-ios-paperplane-outline" /> - - <label>Selectable:</label> - <span class="ion">&#xf473;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf473;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f473" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-ios-partlysunny"></i> - </span><span class="step size-14"> - <i class="icon ion-ios-partlysunny"></i> - </span><span class="step size-16"> - <i class="icon ion-ios-partlysunny"></i> - </span><span class="step size-18"> - <i class="icon ion-ios-partlysunny"></i> - </span><span class="step size-21"> - <i class="icon ion-ios-partlysunny"></i> - </span><span class="step size-24"> - <i class="icon ion-ios-partlysunny"></i> - </span><span class="step size-32"> - <i class="icon ion-ios-partlysunny"></i> - </span><span class="step size-48"> - <i class="icon ion-ios-partlysunny"></i> - </span><span class="step size-64"> - <i class="icon ion-ios-partlysunny"></i> - </span><span class="step size-96"> - <i class="icon ion-ios-partlysunny"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-ios-partlysunny" /> - - <label>Selectable:</label> - <span class="ion">&#xf476;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf476;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f476" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-ios-partlysunny-outline"></i> - </span><span class="step size-14"> - <i class="icon ion-ios-partlysunny-outline"></i> - </span><span class="step size-16"> - <i class="icon ion-ios-partlysunny-outline"></i> - </span><span class="step size-18"> - <i class="icon ion-ios-partlysunny-outline"></i> - </span><span class="step size-21"> - <i class="icon ion-ios-partlysunny-outline"></i> - </span><span class="step size-24"> - <i class="icon ion-ios-partlysunny-outline"></i> - </span><span class="step size-32"> - <i class="icon ion-ios-partlysunny-outline"></i> - </span><span class="step size-48"> - <i class="icon ion-ios-partlysunny-outline"></i> - </span><span class="step size-64"> - <i class="icon ion-ios-partlysunny-outline"></i> - </span><span class="step size-96"> - <i class="icon ion-ios-partlysunny-outline"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-ios-partlysunny-outline" /> - - <label>Selectable:</label> - <span class="ion">&#xf475;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf475;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f475" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-ios-pause"></i> - </span><span class="step size-14"> - <i class="icon ion-ios-pause"></i> - </span><span class="step size-16"> - <i class="icon ion-ios-pause"></i> - </span><span class="step size-18"> - <i class="icon ion-ios-pause"></i> - </span><span class="step size-21"> - <i class="icon ion-ios-pause"></i> - </span><span class="step size-24"> - <i class="icon ion-ios-pause"></i> - </span><span class="step size-32"> - <i class="icon ion-ios-pause"></i> - </span><span class="step size-48"> - <i class="icon ion-ios-pause"></i> - </span><span class="step size-64"> - <i class="icon ion-ios-pause"></i> - </span><span class="step size-96"> - <i class="icon ion-ios-pause"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-ios-pause" /> - - <label>Selectable:</label> - <span class="ion">&#xf478;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf478;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f478" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-ios-pause-outline"></i> - </span><span class="step size-14"> - <i class="icon ion-ios-pause-outline"></i> - </span><span class="step size-16"> - <i class="icon ion-ios-pause-outline"></i> - </span><span class="step size-18"> - <i class="icon ion-ios-pause-outline"></i> - </span><span class="step size-21"> - <i class="icon ion-ios-pause-outline"></i> - </span><span class="step size-24"> - <i class="icon ion-ios-pause-outline"></i> - </span><span class="step size-32"> - <i class="icon ion-ios-pause-outline"></i> - </span><span class="step size-48"> - <i class="icon ion-ios-pause-outline"></i> - </span><span class="step size-64"> - <i class="icon ion-ios-pause-outline"></i> - </span><span class="step size-96"> - <i class="icon ion-ios-pause-outline"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-ios-pause-outline" /> - - <label>Selectable:</label> - <span class="ion">&#xf477;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf477;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f477" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-ios-paw"></i> - </span><span class="step size-14"> - <i class="icon ion-ios-paw"></i> - </span><span class="step size-16"> - <i class="icon ion-ios-paw"></i> - </span><span class="step size-18"> - <i class="icon ion-ios-paw"></i> - </span><span class="step size-21"> - <i class="icon ion-ios-paw"></i> - </span><span class="step size-24"> - <i class="icon ion-ios-paw"></i> - </span><span class="step size-32"> - <i class="icon ion-ios-paw"></i> - </span><span class="step size-48"> - <i class="icon ion-ios-paw"></i> - </span><span class="step size-64"> - <i class="icon ion-ios-paw"></i> - </span><span class="step size-96"> - <i class="icon ion-ios-paw"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-ios-paw" /> - - <label>Selectable:</label> - <span class="ion">&#xf47a;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf47a;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f47a" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-ios-paw-outline"></i> - </span><span class="step size-14"> - <i class="icon ion-ios-paw-outline"></i> - </span><span class="step size-16"> - <i class="icon ion-ios-paw-outline"></i> - </span><span class="step size-18"> - <i class="icon ion-ios-paw-outline"></i> - </span><span class="step size-21"> - <i class="icon ion-ios-paw-outline"></i> - </span><span class="step size-24"> - <i class="icon ion-ios-paw-outline"></i> - </span><span class="step size-32"> - <i class="icon ion-ios-paw-outline"></i> - </span><span class="step size-48"> - <i class="icon ion-ios-paw-outline"></i> - </span><span class="step size-64"> - <i class="icon ion-ios-paw-outline"></i> - </span><span class="step size-96"> - <i class="icon ion-ios-paw-outline"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-ios-paw-outline" /> - - <label>Selectable:</label> - <span class="ion">&#xf479;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf479;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f479" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-ios-people"></i> - </span><span class="step size-14"> - <i class="icon ion-ios-people"></i> - </span><span class="step size-16"> - <i class="icon ion-ios-people"></i> - </span><span class="step size-18"> - <i class="icon ion-ios-people"></i> - </span><span class="step size-21"> - <i class="icon ion-ios-people"></i> - </span><span class="step size-24"> - <i class="icon ion-ios-people"></i> - </span><span class="step size-32"> - <i class="icon ion-ios-people"></i> - </span><span class="step size-48"> - <i class="icon ion-ios-people"></i> - </span><span class="step size-64"> - <i class="icon ion-ios-people"></i> - </span><span class="step size-96"> - <i class="icon ion-ios-people"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-ios-people" /> - - <label>Selectable:</label> - <span class="ion">&#xf47c;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf47c;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f47c" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-ios-people-outline"></i> - </span><span class="step size-14"> - <i class="icon ion-ios-people-outline"></i> - </span><span class="step size-16"> - <i class="icon ion-ios-people-outline"></i> - </span><span class="step size-18"> - <i class="icon ion-ios-people-outline"></i> - </span><span class="step size-21"> - <i class="icon ion-ios-people-outline"></i> - </span><span class="step size-24"> - <i class="icon ion-ios-people-outline"></i> - </span><span class="step size-32"> - <i class="icon ion-ios-people-outline"></i> - </span><span class="step size-48"> - <i class="icon ion-ios-people-outline"></i> - </span><span class="step size-64"> - <i class="icon ion-ios-people-outline"></i> - </span><span class="step size-96"> - <i class="icon ion-ios-people-outline"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-ios-people-outline" /> - - <label>Selectable:</label> - <span class="ion">&#xf47b;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf47b;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f47b" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-ios-person"></i> - </span><span class="step size-14"> - <i class="icon ion-ios-person"></i> - </span><span class="step size-16"> - <i class="icon ion-ios-person"></i> - </span><span class="step size-18"> - <i class="icon ion-ios-person"></i> - </span><span class="step size-21"> - <i class="icon ion-ios-person"></i> - </span><span class="step size-24"> - <i class="icon ion-ios-person"></i> - </span><span class="step size-32"> - <i class="icon ion-ios-person"></i> - </span><span class="step size-48"> - <i class="icon ion-ios-person"></i> - </span><span class="step size-64"> - <i class="icon ion-ios-person"></i> - </span><span class="step size-96"> - <i class="icon ion-ios-person"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-ios-person" /> - - <label>Selectable:</label> - <span class="ion">&#xf47e;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf47e;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f47e" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-ios-person-outline"></i> - </span><span class="step size-14"> - <i class="icon ion-ios-person-outline"></i> - </span><span class="step size-16"> - <i class="icon ion-ios-person-outline"></i> - </span><span class="step size-18"> - <i class="icon ion-ios-person-outline"></i> - </span><span class="step size-21"> - <i class="icon ion-ios-person-outline"></i> - </span><span class="step size-24"> - <i class="icon ion-ios-person-outline"></i> - </span><span class="step size-32"> - <i class="icon ion-ios-person-outline"></i> - </span><span class="step size-48"> - <i class="icon ion-ios-person-outline"></i> - </span><span class="step size-64"> - <i class="icon ion-ios-person-outline"></i> - </span><span class="step size-96"> - <i class="icon ion-ios-person-outline"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-ios-person-outline" /> - - <label>Selectable:</label> - <span class="ion">&#xf47d;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf47d;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f47d" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-ios-personadd"></i> - </span><span class="step size-14"> - <i class="icon ion-ios-personadd"></i> - </span><span class="step size-16"> - <i class="icon ion-ios-personadd"></i> - </span><span class="step size-18"> - <i class="icon ion-ios-personadd"></i> - </span><span class="step size-21"> - <i class="icon ion-ios-personadd"></i> - </span><span class="step size-24"> - <i class="icon ion-ios-personadd"></i> - </span><span class="step size-32"> - <i class="icon ion-ios-personadd"></i> - </span><span class="step size-48"> - <i class="icon ion-ios-personadd"></i> - </span><span class="step size-64"> - <i class="icon ion-ios-personadd"></i> - </span><span class="step size-96"> - <i class="icon ion-ios-personadd"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-ios-personadd" /> - - <label>Selectable:</label> - <span class="ion">&#xf480;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf480;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f480" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-ios-personadd-outline"></i> - </span><span class="step size-14"> - <i class="icon ion-ios-personadd-outline"></i> - </span><span class="step size-16"> - <i class="icon ion-ios-personadd-outline"></i> - </span><span class="step size-18"> - <i class="icon ion-ios-personadd-outline"></i> - </span><span class="step size-21"> - <i class="icon ion-ios-personadd-outline"></i> - </span><span class="step size-24"> - <i class="icon ion-ios-personadd-outline"></i> - </span><span class="step size-32"> - <i class="icon ion-ios-personadd-outline"></i> - </span><span class="step size-48"> - <i class="icon ion-ios-personadd-outline"></i> - </span><span class="step size-64"> - <i class="icon ion-ios-personadd-outline"></i> - </span><span class="step size-96"> - <i class="icon ion-ios-personadd-outline"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-ios-personadd-outline" /> - - <label>Selectable:</label> - <span class="ion">&#xf47f;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf47f;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f47f" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-ios-photos"></i> - </span><span class="step size-14"> - <i class="icon ion-ios-photos"></i> - </span><span class="step size-16"> - <i class="icon ion-ios-photos"></i> - </span><span class="step size-18"> - <i class="icon ion-ios-photos"></i> - </span><span class="step size-21"> - <i class="icon ion-ios-photos"></i> - </span><span class="step size-24"> - <i class="icon ion-ios-photos"></i> - </span><span class="step size-32"> - <i class="icon ion-ios-photos"></i> - </span><span class="step size-48"> - <i class="icon ion-ios-photos"></i> - </span><span class="step size-64"> - <i class="icon ion-ios-photos"></i> - </span><span class="step size-96"> - <i class="icon ion-ios-photos"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-ios-photos" /> - - <label>Selectable:</label> - <span class="ion">&#xf482;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf482;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f482" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-ios-photos-outline"></i> - </span><span class="step size-14"> - <i class="icon ion-ios-photos-outline"></i> - </span><span class="step size-16"> - <i class="icon ion-ios-photos-outline"></i> - </span><span class="step size-18"> - <i class="icon ion-ios-photos-outline"></i> - </span><span class="step size-21"> - <i class="icon ion-ios-photos-outline"></i> - </span><span class="step size-24"> - <i class="icon ion-ios-photos-outline"></i> - </span><span class="step size-32"> - <i class="icon ion-ios-photos-outline"></i> - </span><span class="step size-48"> - <i class="icon ion-ios-photos-outline"></i> - </span><span class="step size-64"> - <i class="icon ion-ios-photos-outline"></i> - </span><span class="step size-96"> - <i class="icon ion-ios-photos-outline"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-ios-photos-outline" /> - - <label>Selectable:</label> - <span class="ion">&#xf481;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf481;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f481" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-ios-pie"></i> - </span><span class="step size-14"> - <i class="icon ion-ios-pie"></i> - </span><span class="step size-16"> - <i class="icon ion-ios-pie"></i> - </span><span class="step size-18"> - <i class="icon ion-ios-pie"></i> - </span><span class="step size-21"> - <i class="icon ion-ios-pie"></i> - </span><span class="step size-24"> - <i class="icon ion-ios-pie"></i> - </span><span class="step size-32"> - <i class="icon ion-ios-pie"></i> - </span><span class="step size-48"> - <i class="icon ion-ios-pie"></i> - </span><span class="step size-64"> - <i class="icon ion-ios-pie"></i> - </span><span class="step size-96"> - <i class="icon ion-ios-pie"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-ios-pie" /> - - <label>Selectable:</label> - <span class="ion">&#xf484;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf484;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f484" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-ios-pie-outline"></i> - </span><span class="step size-14"> - <i class="icon ion-ios-pie-outline"></i> - </span><span class="step size-16"> - <i class="icon ion-ios-pie-outline"></i> - </span><span class="step size-18"> - <i class="icon ion-ios-pie-outline"></i> - </span><span class="step size-21"> - <i class="icon ion-ios-pie-outline"></i> - </span><span class="step size-24"> - <i class="icon ion-ios-pie-outline"></i> - </span><span class="step size-32"> - <i class="icon ion-ios-pie-outline"></i> - </span><span class="step size-48"> - <i class="icon ion-ios-pie-outline"></i> - </span><span class="step size-64"> - <i class="icon ion-ios-pie-outline"></i> - </span><span class="step size-96"> - <i class="icon ion-ios-pie-outline"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-ios-pie-outline" /> - - <label>Selectable:</label> - <span class="ion">&#xf483;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf483;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f483" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-ios-pint"></i> - </span><span class="step size-14"> - <i class="icon ion-ios-pint"></i> - </span><span class="step size-16"> - <i class="icon ion-ios-pint"></i> - </span><span class="step size-18"> - <i class="icon ion-ios-pint"></i> - </span><span class="step size-21"> - <i class="icon ion-ios-pint"></i> - </span><span class="step size-24"> - <i class="icon ion-ios-pint"></i> - </span><span class="step size-32"> - <i class="icon ion-ios-pint"></i> - </span><span class="step size-48"> - <i class="icon ion-ios-pint"></i> - </span><span class="step size-64"> - <i class="icon ion-ios-pint"></i> - </span><span class="step size-96"> - <i class="icon ion-ios-pint"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-ios-pint" /> - - <label>Selectable:</label> - <span class="ion">&#xf486;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf486;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f486" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-ios-pint-outline"></i> - </span><span class="step size-14"> - <i class="icon ion-ios-pint-outline"></i> - </span><span class="step size-16"> - <i class="icon ion-ios-pint-outline"></i> - </span><span class="step size-18"> - <i class="icon ion-ios-pint-outline"></i> - </span><span class="step size-21"> - <i class="icon ion-ios-pint-outline"></i> - </span><span class="step size-24"> - <i class="icon ion-ios-pint-outline"></i> - </span><span class="step size-32"> - <i class="icon ion-ios-pint-outline"></i> - </span><span class="step size-48"> - <i class="icon ion-ios-pint-outline"></i> - </span><span class="step size-64"> - <i class="icon ion-ios-pint-outline"></i> - </span><span class="step size-96"> - <i class="icon ion-ios-pint-outline"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-ios-pint-outline" /> - - <label>Selectable:</label> - <span class="ion">&#xf485;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf485;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f485" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-ios-play"></i> - </span><span class="step size-14"> - <i class="icon ion-ios-play"></i> - </span><span class="step size-16"> - <i class="icon ion-ios-play"></i> - </span><span class="step size-18"> - <i class="icon ion-ios-play"></i> - </span><span class="step size-21"> - <i class="icon ion-ios-play"></i> - </span><span class="step size-24"> - <i class="icon ion-ios-play"></i> - </span><span class="step size-32"> - <i class="icon ion-ios-play"></i> - </span><span class="step size-48"> - <i class="icon ion-ios-play"></i> - </span><span class="step size-64"> - <i class="icon ion-ios-play"></i> - </span><span class="step size-96"> - <i class="icon ion-ios-play"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-ios-play" /> - - <label>Selectable:</label> - <span class="ion">&#xf488;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf488;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f488" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-ios-play-outline"></i> - </span><span class="step size-14"> - <i class="icon ion-ios-play-outline"></i> - </span><span class="step size-16"> - <i class="icon ion-ios-play-outline"></i> - </span><span class="step size-18"> - <i class="icon ion-ios-play-outline"></i> - </span><span class="step size-21"> - <i class="icon ion-ios-play-outline"></i> - </span><span class="step size-24"> - <i class="icon ion-ios-play-outline"></i> - </span><span class="step size-32"> - <i class="icon ion-ios-play-outline"></i> - </span><span class="step size-48"> - <i class="icon ion-ios-play-outline"></i> - </span><span class="step size-64"> - <i class="icon ion-ios-play-outline"></i> - </span><span class="step size-96"> - <i class="icon ion-ios-play-outline"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-ios-play-outline" /> - - <label>Selectable:</label> - <span class="ion">&#xf487;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf487;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f487" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-ios-plus"></i> - </span><span class="step size-14"> - <i class="icon ion-ios-plus"></i> - </span><span class="step size-16"> - <i class="icon ion-ios-plus"></i> - </span><span class="step size-18"> - <i class="icon ion-ios-plus"></i> - </span><span class="step size-21"> - <i class="icon ion-ios-plus"></i> - </span><span class="step size-24"> - <i class="icon ion-ios-plus"></i> - </span><span class="step size-32"> - <i class="icon ion-ios-plus"></i> - </span><span class="step size-48"> - <i class="icon ion-ios-plus"></i> - </span><span class="step size-64"> - <i class="icon ion-ios-plus"></i> - </span><span class="step size-96"> - <i class="icon ion-ios-plus"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-ios-plus" /> - - <label>Selectable:</label> - <span class="ion">&#xf48b;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf48b;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f48b" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-ios-plus-empty"></i> - </span><span class="step size-14"> - <i class="icon ion-ios-plus-empty"></i> - </span><span class="step size-16"> - <i class="icon ion-ios-plus-empty"></i> - </span><span class="step size-18"> - <i class="icon ion-ios-plus-empty"></i> - </span><span class="step size-21"> - <i class="icon ion-ios-plus-empty"></i> - </span><span class="step size-24"> - <i class="icon ion-ios-plus-empty"></i> - </span><span class="step size-32"> - <i class="icon ion-ios-plus-empty"></i> - </span><span class="step size-48"> - <i class="icon ion-ios-plus-empty"></i> - </span><span class="step size-64"> - <i class="icon ion-ios-plus-empty"></i> - </span><span class="step size-96"> - <i class="icon ion-ios-plus-empty"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-ios-plus-empty" /> - - <label>Selectable:</label> - <span class="ion">&#xf489;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf489;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f489" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-ios-plus-outline"></i> - </span><span class="step size-14"> - <i class="icon ion-ios-plus-outline"></i> - </span><span class="step size-16"> - <i class="icon ion-ios-plus-outline"></i> - </span><span class="step size-18"> - <i class="icon ion-ios-plus-outline"></i> - </span><span class="step size-21"> - <i class="icon ion-ios-plus-outline"></i> - </span><span class="step size-24"> - <i class="icon ion-ios-plus-outline"></i> - </span><span class="step size-32"> - <i class="icon ion-ios-plus-outline"></i> - </span><span class="step size-48"> - <i class="icon ion-ios-plus-outline"></i> - </span><span class="step size-64"> - <i class="icon ion-ios-plus-outline"></i> - </span><span class="step size-96"> - <i class="icon ion-ios-plus-outline"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-ios-plus-outline" /> - - <label>Selectable:</label> - <span class="ion">&#xf48a;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf48a;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f48a" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-ios-pricetag"></i> - </span><span class="step size-14"> - <i class="icon ion-ios-pricetag"></i> - </span><span class="step size-16"> - <i class="icon ion-ios-pricetag"></i> - </span><span class="step size-18"> - <i class="icon ion-ios-pricetag"></i> - </span><span class="step size-21"> - <i class="icon ion-ios-pricetag"></i> - </span><span class="step size-24"> - <i class="icon ion-ios-pricetag"></i> - </span><span class="step size-32"> - <i class="icon ion-ios-pricetag"></i> - </span><span class="step size-48"> - <i class="icon ion-ios-pricetag"></i> - </span><span class="step size-64"> - <i class="icon ion-ios-pricetag"></i> - </span><span class="step size-96"> - <i class="icon ion-ios-pricetag"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-ios-pricetag" /> - - <label>Selectable:</label> - <span class="ion">&#xf48d;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf48d;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f48d" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-ios-pricetag-outline"></i> - </span><span class="step size-14"> - <i class="icon ion-ios-pricetag-outline"></i> - </span><span class="step size-16"> - <i class="icon ion-ios-pricetag-outline"></i> - </span><span class="step size-18"> - <i class="icon ion-ios-pricetag-outline"></i> - </span><span class="step size-21"> - <i class="icon ion-ios-pricetag-outline"></i> - </span><span class="step size-24"> - <i class="icon ion-ios-pricetag-outline"></i> - </span><span class="step size-32"> - <i class="icon ion-ios-pricetag-outline"></i> - </span><span class="step size-48"> - <i class="icon ion-ios-pricetag-outline"></i> - </span><span class="step size-64"> - <i class="icon ion-ios-pricetag-outline"></i> - </span><span class="step size-96"> - <i class="icon ion-ios-pricetag-outline"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-ios-pricetag-outline" /> - - <label>Selectable:</label> - <span class="ion">&#xf48c;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf48c;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f48c" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-ios-pricetags"></i> - </span><span class="step size-14"> - <i class="icon ion-ios-pricetags"></i> - </span><span class="step size-16"> - <i class="icon ion-ios-pricetags"></i> - </span><span class="step size-18"> - <i class="icon ion-ios-pricetags"></i> - </span><span class="step size-21"> - <i class="icon ion-ios-pricetags"></i> - </span><span class="step size-24"> - <i class="icon ion-ios-pricetags"></i> - </span><span class="step size-32"> - <i class="icon ion-ios-pricetags"></i> - </span><span class="step size-48"> - <i class="icon ion-ios-pricetags"></i> - </span><span class="step size-64"> - <i class="icon ion-ios-pricetags"></i> - </span><span class="step size-96"> - <i class="icon ion-ios-pricetags"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-ios-pricetags" /> - - <label>Selectable:</label> - <span class="ion">&#xf48f;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf48f;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f48f" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-ios-pricetags-outline"></i> - </span><span class="step size-14"> - <i class="icon ion-ios-pricetags-outline"></i> - </span><span class="step size-16"> - <i class="icon ion-ios-pricetags-outline"></i> - </span><span class="step size-18"> - <i class="icon ion-ios-pricetags-outline"></i> - </span><span class="step size-21"> - <i class="icon ion-ios-pricetags-outline"></i> - </span><span class="step size-24"> - <i class="icon ion-ios-pricetags-outline"></i> - </span><span class="step size-32"> - <i class="icon ion-ios-pricetags-outline"></i> - </span><span class="step size-48"> - <i class="icon ion-ios-pricetags-outline"></i> - </span><span class="step size-64"> - <i class="icon ion-ios-pricetags-outline"></i> - </span><span class="step size-96"> - <i class="icon ion-ios-pricetags-outline"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-ios-pricetags-outline" /> - - <label>Selectable:</label> - <span class="ion">&#xf48e;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf48e;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f48e" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-ios-printer"></i> - </span><span class="step size-14"> - <i class="icon ion-ios-printer"></i> - </span><span class="step size-16"> - <i class="icon ion-ios-printer"></i> - </span><span class="step size-18"> - <i class="icon ion-ios-printer"></i> - </span><span class="step size-21"> - <i class="icon ion-ios-printer"></i> - </span><span class="step size-24"> - <i class="icon ion-ios-printer"></i> - </span><span class="step size-32"> - <i class="icon ion-ios-printer"></i> - </span><span class="step size-48"> - <i class="icon ion-ios-printer"></i> - </span><span class="step size-64"> - <i class="icon ion-ios-printer"></i> - </span><span class="step size-96"> - <i class="icon ion-ios-printer"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-ios-printer" /> - - <label>Selectable:</label> - <span class="ion">&#xf491;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf491;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f491" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-ios-printer-outline"></i> - </span><span class="step size-14"> - <i class="icon ion-ios-printer-outline"></i> - </span><span class="step size-16"> - <i class="icon ion-ios-printer-outline"></i> - </span><span class="step size-18"> - <i class="icon ion-ios-printer-outline"></i> - </span><span class="step size-21"> - <i class="icon ion-ios-printer-outline"></i> - </span><span class="step size-24"> - <i class="icon ion-ios-printer-outline"></i> - </span><span class="step size-32"> - <i class="icon ion-ios-printer-outline"></i> - </span><span class="step size-48"> - <i class="icon ion-ios-printer-outline"></i> - </span><span class="step size-64"> - <i class="icon ion-ios-printer-outline"></i> - </span><span class="step size-96"> - <i class="icon ion-ios-printer-outline"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-ios-printer-outline" /> - - <label>Selectable:</label> - <span class="ion">&#xf490;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf490;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f490" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-ios-pulse"></i> - </span><span class="step size-14"> - <i class="icon ion-ios-pulse"></i> - </span><span class="step size-16"> - <i class="icon ion-ios-pulse"></i> - </span><span class="step size-18"> - <i class="icon ion-ios-pulse"></i> - </span><span class="step size-21"> - <i class="icon ion-ios-pulse"></i> - </span><span class="step size-24"> - <i class="icon ion-ios-pulse"></i> - </span><span class="step size-32"> - <i class="icon ion-ios-pulse"></i> - </span><span class="step size-48"> - <i class="icon ion-ios-pulse"></i> - </span><span class="step size-64"> - <i class="icon ion-ios-pulse"></i> - </span><span class="step size-96"> - <i class="icon ion-ios-pulse"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-ios-pulse" /> - - <label>Selectable:</label> - <span class="ion">&#xf493;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf493;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f493" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-ios-pulse-strong"></i> - </span><span class="step size-14"> - <i class="icon ion-ios-pulse-strong"></i> - </span><span class="step size-16"> - <i class="icon ion-ios-pulse-strong"></i> - </span><span class="step size-18"> - <i class="icon ion-ios-pulse-strong"></i> - </span><span class="step size-21"> - <i class="icon ion-ios-pulse-strong"></i> - </span><span class="step size-24"> - <i class="icon ion-ios-pulse-strong"></i> - </span><span class="step size-32"> - <i class="icon ion-ios-pulse-strong"></i> - </span><span class="step size-48"> - <i class="icon ion-ios-pulse-strong"></i> - </span><span class="step size-64"> - <i class="icon ion-ios-pulse-strong"></i> - </span><span class="step size-96"> - <i class="icon ion-ios-pulse-strong"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-ios-pulse-strong" /> - - <label>Selectable:</label> - <span class="ion">&#xf492;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf492;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f492" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-ios-rainy"></i> - </span><span class="step size-14"> - <i class="icon ion-ios-rainy"></i> - </span><span class="step size-16"> - <i class="icon ion-ios-rainy"></i> - </span><span class="step size-18"> - <i class="icon ion-ios-rainy"></i> - </span><span class="step size-21"> - <i class="icon ion-ios-rainy"></i> - </span><span class="step size-24"> - <i class="icon ion-ios-rainy"></i> - </span><span class="step size-32"> - <i class="icon ion-ios-rainy"></i> - </span><span class="step size-48"> - <i class="icon ion-ios-rainy"></i> - </span><span class="step size-64"> - <i class="icon ion-ios-rainy"></i> - </span><span class="step size-96"> - <i class="icon ion-ios-rainy"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-ios-rainy" /> - - <label>Selectable:</label> - <span class="ion">&#xf495;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf495;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f495" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-ios-rainy-outline"></i> - </span><span class="step size-14"> - <i class="icon ion-ios-rainy-outline"></i> - </span><span class="step size-16"> - <i class="icon ion-ios-rainy-outline"></i> - </span><span class="step size-18"> - <i class="icon ion-ios-rainy-outline"></i> - </span><span class="step size-21"> - <i class="icon ion-ios-rainy-outline"></i> - </span><span class="step size-24"> - <i class="icon ion-ios-rainy-outline"></i> - </span><span class="step size-32"> - <i class="icon ion-ios-rainy-outline"></i> - </span><span class="step size-48"> - <i class="icon ion-ios-rainy-outline"></i> - </span><span class="step size-64"> - <i class="icon ion-ios-rainy-outline"></i> - </span><span class="step size-96"> - <i class="icon ion-ios-rainy-outline"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-ios-rainy-outline" /> - - <label>Selectable:</label> - <span class="ion">&#xf494;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf494;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f494" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-ios-recording"></i> - </span><span class="step size-14"> - <i class="icon ion-ios-recording"></i> - </span><span class="step size-16"> - <i class="icon ion-ios-recording"></i> - </span><span class="step size-18"> - <i class="icon ion-ios-recording"></i> - </span><span class="step size-21"> - <i class="icon ion-ios-recording"></i> - </span><span class="step size-24"> - <i class="icon ion-ios-recording"></i> - </span><span class="step size-32"> - <i class="icon ion-ios-recording"></i> - </span><span class="step size-48"> - <i class="icon ion-ios-recording"></i> - </span><span class="step size-64"> - <i class="icon ion-ios-recording"></i> - </span><span class="step size-96"> - <i class="icon ion-ios-recording"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-ios-recording" /> - - <label>Selectable:</label> - <span class="ion">&#xf497;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf497;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f497" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-ios-recording-outline"></i> - </span><span class="step size-14"> - <i class="icon ion-ios-recording-outline"></i> - </span><span class="step size-16"> - <i class="icon ion-ios-recording-outline"></i> - </span><span class="step size-18"> - <i class="icon ion-ios-recording-outline"></i> - </span><span class="step size-21"> - <i class="icon ion-ios-recording-outline"></i> - </span><span class="step size-24"> - <i class="icon ion-ios-recording-outline"></i> - </span><span class="step size-32"> - <i class="icon ion-ios-recording-outline"></i> - </span><span class="step size-48"> - <i class="icon ion-ios-recording-outline"></i> - </span><span class="step size-64"> - <i class="icon ion-ios-recording-outline"></i> - </span><span class="step size-96"> - <i class="icon ion-ios-recording-outline"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-ios-recording-outline" /> - - <label>Selectable:</label> - <span class="ion">&#xf496;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf496;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f496" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-ios-redo"></i> - </span><span class="step size-14"> - <i class="icon ion-ios-redo"></i> - </span><span class="step size-16"> - <i class="icon ion-ios-redo"></i> - </span><span class="step size-18"> - <i class="icon ion-ios-redo"></i> - </span><span class="step size-21"> - <i class="icon ion-ios-redo"></i> - </span><span class="step size-24"> - <i class="icon ion-ios-redo"></i> - </span><span class="step size-32"> - <i class="icon ion-ios-redo"></i> - </span><span class="step size-48"> - <i class="icon ion-ios-redo"></i> - </span><span class="step size-64"> - <i class="icon ion-ios-redo"></i> - </span><span class="step size-96"> - <i class="icon ion-ios-redo"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-ios-redo" /> - - <label>Selectable:</label> - <span class="ion">&#xf499;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf499;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f499" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-ios-redo-outline"></i> - </span><span class="step size-14"> - <i class="icon ion-ios-redo-outline"></i> - </span><span class="step size-16"> - <i class="icon ion-ios-redo-outline"></i> - </span><span class="step size-18"> - <i class="icon ion-ios-redo-outline"></i> - </span><span class="step size-21"> - <i class="icon ion-ios-redo-outline"></i> - </span><span class="step size-24"> - <i class="icon ion-ios-redo-outline"></i> - </span><span class="step size-32"> - <i class="icon ion-ios-redo-outline"></i> - </span><span class="step size-48"> - <i class="icon ion-ios-redo-outline"></i> - </span><span class="step size-64"> - <i class="icon ion-ios-redo-outline"></i> - </span><span class="step size-96"> - <i class="icon ion-ios-redo-outline"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-ios-redo-outline" /> - - <label>Selectable:</label> - <span class="ion">&#xf498;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf498;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f498" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-ios-refresh"></i> - </span><span class="step size-14"> - <i class="icon ion-ios-refresh"></i> - </span><span class="step size-16"> - <i class="icon ion-ios-refresh"></i> - </span><span class="step size-18"> - <i class="icon ion-ios-refresh"></i> - </span><span class="step size-21"> - <i class="icon ion-ios-refresh"></i> - </span><span class="step size-24"> - <i class="icon ion-ios-refresh"></i> - </span><span class="step size-32"> - <i class="icon ion-ios-refresh"></i> - </span><span class="step size-48"> - <i class="icon ion-ios-refresh"></i> - </span><span class="step size-64"> - <i class="icon ion-ios-refresh"></i> - </span><span class="step size-96"> - <i class="icon ion-ios-refresh"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-ios-refresh" /> - - <label>Selectable:</label> - <span class="ion">&#xf49c;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf49c;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f49c" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-ios-refresh-empty"></i> - </span><span class="step size-14"> - <i class="icon ion-ios-refresh-empty"></i> - </span><span class="step size-16"> - <i class="icon ion-ios-refresh-empty"></i> - </span><span class="step size-18"> - <i class="icon ion-ios-refresh-empty"></i> - </span><span class="step size-21"> - <i class="icon ion-ios-refresh-empty"></i> - </span><span class="step size-24"> - <i class="icon ion-ios-refresh-empty"></i> - </span><span class="step size-32"> - <i class="icon ion-ios-refresh-empty"></i> - </span><span class="step size-48"> - <i class="icon ion-ios-refresh-empty"></i> - </span><span class="step size-64"> - <i class="icon ion-ios-refresh-empty"></i> - </span><span class="step size-96"> - <i class="icon ion-ios-refresh-empty"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-ios-refresh-empty" /> - - <label>Selectable:</label> - <span class="ion">&#xf49a;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf49a;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f49a" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-ios-refresh-outline"></i> - </span><span class="step size-14"> - <i class="icon ion-ios-refresh-outline"></i> - </span><span class="step size-16"> - <i class="icon ion-ios-refresh-outline"></i> - </span><span class="step size-18"> - <i class="icon ion-ios-refresh-outline"></i> - </span><span class="step size-21"> - <i class="icon ion-ios-refresh-outline"></i> - </span><span class="step size-24"> - <i class="icon ion-ios-refresh-outline"></i> - </span><span class="step size-32"> - <i class="icon ion-ios-refresh-outline"></i> - </span><span class="step size-48"> - <i class="icon ion-ios-refresh-outline"></i> - </span><span class="step size-64"> - <i class="icon ion-ios-refresh-outline"></i> - </span><span class="step size-96"> - <i class="icon ion-ios-refresh-outline"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-ios-refresh-outline" /> - - <label>Selectable:</label> - <span class="ion">&#xf49b;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf49b;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f49b" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-ios-reload"></i> - </span><span class="step size-14"> - <i class="icon ion-ios-reload"></i> - </span><span class="step size-16"> - <i class="icon ion-ios-reload"></i> - </span><span class="step size-18"> - <i class="icon ion-ios-reload"></i> - </span><span class="step size-21"> - <i class="icon ion-ios-reload"></i> - </span><span class="step size-24"> - <i class="icon ion-ios-reload"></i> - </span><span class="step size-32"> - <i class="icon ion-ios-reload"></i> - </span><span class="step size-48"> - <i class="icon ion-ios-reload"></i> - </span><span class="step size-64"> - <i class="icon ion-ios-reload"></i> - </span><span class="step size-96"> - <i class="icon ion-ios-reload"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-ios-reload" /> - - <label>Selectable:</label> - <span class="ion">&#xf49d;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf49d;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f49d" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-ios-reverse-camera"></i> - </span><span class="step size-14"> - <i class="icon ion-ios-reverse-camera"></i> - </span><span class="step size-16"> - <i class="icon ion-ios-reverse-camera"></i> - </span><span class="step size-18"> - <i class="icon ion-ios-reverse-camera"></i> - </span><span class="step size-21"> - <i class="icon ion-ios-reverse-camera"></i> - </span><span class="step size-24"> - <i class="icon ion-ios-reverse-camera"></i> - </span><span class="step size-32"> - <i class="icon ion-ios-reverse-camera"></i> - </span><span class="step size-48"> - <i class="icon ion-ios-reverse-camera"></i> - </span><span class="step size-64"> - <i class="icon ion-ios-reverse-camera"></i> - </span><span class="step size-96"> - <i class="icon ion-ios-reverse-camera"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-ios-reverse-camera" /> - - <label>Selectable:</label> - <span class="ion">&#xf49f;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf49f;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f49f" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-ios-reverse-camera-outline"></i> - </span><span class="step size-14"> - <i class="icon ion-ios-reverse-camera-outline"></i> - </span><span class="step size-16"> - <i class="icon ion-ios-reverse-camera-outline"></i> - </span><span class="step size-18"> - <i class="icon ion-ios-reverse-camera-outline"></i> - </span><span class="step size-21"> - <i class="icon ion-ios-reverse-camera-outline"></i> - </span><span class="step size-24"> - <i class="icon ion-ios-reverse-camera-outline"></i> - </span><span class="step size-32"> - <i class="icon ion-ios-reverse-camera-outline"></i> - </span><span class="step size-48"> - <i class="icon ion-ios-reverse-camera-outline"></i> - </span><span class="step size-64"> - <i class="icon ion-ios-reverse-camera-outline"></i> - </span><span class="step size-96"> - <i class="icon ion-ios-reverse-camera-outline"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-ios-reverse-camera-outline" /> - - <label>Selectable:</label> - <span class="ion">&#xf49e;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf49e;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f49e" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-ios-rewind"></i> - </span><span class="step size-14"> - <i class="icon ion-ios-rewind"></i> - </span><span class="step size-16"> - <i class="icon ion-ios-rewind"></i> - </span><span class="step size-18"> - <i class="icon ion-ios-rewind"></i> - </span><span class="step size-21"> - <i class="icon ion-ios-rewind"></i> - </span><span class="step size-24"> - <i class="icon ion-ios-rewind"></i> - </span><span class="step size-32"> - <i class="icon ion-ios-rewind"></i> - </span><span class="step size-48"> - <i class="icon ion-ios-rewind"></i> - </span><span class="step size-64"> - <i class="icon ion-ios-rewind"></i> - </span><span class="step size-96"> - <i class="icon ion-ios-rewind"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-ios-rewind" /> - - <label>Selectable:</label> - <span class="ion">&#xf4a1;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf4a1;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f4a1" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-ios-rewind-outline"></i> - </span><span class="step size-14"> - <i class="icon ion-ios-rewind-outline"></i> - </span><span class="step size-16"> - <i class="icon ion-ios-rewind-outline"></i> - </span><span class="step size-18"> - <i class="icon ion-ios-rewind-outline"></i> - </span><span class="step size-21"> - <i class="icon ion-ios-rewind-outline"></i> - </span><span class="step size-24"> - <i class="icon ion-ios-rewind-outline"></i> - </span><span class="step size-32"> - <i class="icon ion-ios-rewind-outline"></i> - </span><span class="step size-48"> - <i class="icon ion-ios-rewind-outline"></i> - </span><span class="step size-64"> - <i class="icon ion-ios-rewind-outline"></i> - </span><span class="step size-96"> - <i class="icon ion-ios-rewind-outline"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-ios-rewind-outline" /> - - <label>Selectable:</label> - <span class="ion">&#xf4a0;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf4a0;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f4a0" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-ios-rose"></i> - </span><span class="step size-14"> - <i class="icon ion-ios-rose"></i> - </span><span class="step size-16"> - <i class="icon ion-ios-rose"></i> - </span><span class="step size-18"> - <i class="icon ion-ios-rose"></i> - </span><span class="step size-21"> - <i class="icon ion-ios-rose"></i> - </span><span class="step size-24"> - <i class="icon ion-ios-rose"></i> - </span><span class="step size-32"> - <i class="icon ion-ios-rose"></i> - </span><span class="step size-48"> - <i class="icon ion-ios-rose"></i> - </span><span class="step size-64"> - <i class="icon ion-ios-rose"></i> - </span><span class="step size-96"> - <i class="icon ion-ios-rose"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-ios-rose" /> - - <label>Selectable:</label> - <span class="ion">&#xf4a3;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf4a3;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f4a3" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-ios-rose-outline"></i> - </span><span class="step size-14"> - <i class="icon ion-ios-rose-outline"></i> - </span><span class="step size-16"> - <i class="icon ion-ios-rose-outline"></i> - </span><span class="step size-18"> - <i class="icon ion-ios-rose-outline"></i> - </span><span class="step size-21"> - <i class="icon ion-ios-rose-outline"></i> - </span><span class="step size-24"> - <i class="icon ion-ios-rose-outline"></i> - </span><span class="step size-32"> - <i class="icon ion-ios-rose-outline"></i> - </span><span class="step size-48"> - <i class="icon ion-ios-rose-outline"></i> - </span><span class="step size-64"> - <i class="icon ion-ios-rose-outline"></i> - </span><span class="step size-96"> - <i class="icon ion-ios-rose-outline"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-ios-rose-outline" /> - - <label>Selectable:</label> - <span class="ion">&#xf4a2;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf4a2;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f4a2" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-ios-search"></i> - </span><span class="step size-14"> - <i class="icon ion-ios-search"></i> - </span><span class="step size-16"> - <i class="icon ion-ios-search"></i> - </span><span class="step size-18"> - <i class="icon ion-ios-search"></i> - </span><span class="step size-21"> - <i class="icon ion-ios-search"></i> - </span><span class="step size-24"> - <i class="icon ion-ios-search"></i> - </span><span class="step size-32"> - <i class="icon ion-ios-search"></i> - </span><span class="step size-48"> - <i class="icon ion-ios-search"></i> - </span><span class="step size-64"> - <i class="icon ion-ios-search"></i> - </span><span class="step size-96"> - <i class="icon ion-ios-search"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-ios-search" /> - - <label>Selectable:</label> - <span class="ion">&#xf4a5;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf4a5;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f4a5" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-ios-search-strong"></i> - </span><span class="step size-14"> - <i class="icon ion-ios-search-strong"></i> - </span><span class="step size-16"> - <i class="icon ion-ios-search-strong"></i> - </span><span class="step size-18"> - <i class="icon ion-ios-search-strong"></i> - </span><span class="step size-21"> - <i class="icon ion-ios-search-strong"></i> - </span><span class="step size-24"> - <i class="icon ion-ios-search-strong"></i> - </span><span class="step size-32"> - <i class="icon ion-ios-search-strong"></i> - </span><span class="step size-48"> - <i class="icon ion-ios-search-strong"></i> - </span><span class="step size-64"> - <i class="icon ion-ios-search-strong"></i> - </span><span class="step size-96"> - <i class="icon ion-ios-search-strong"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-ios-search-strong" /> - - <label>Selectable:</label> - <span class="ion">&#xf4a4;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf4a4;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f4a4" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-ios-settings"></i> - </span><span class="step size-14"> - <i class="icon ion-ios-settings"></i> - </span><span class="step size-16"> - <i class="icon ion-ios-settings"></i> - </span><span class="step size-18"> - <i class="icon ion-ios-settings"></i> - </span><span class="step size-21"> - <i class="icon ion-ios-settings"></i> - </span><span class="step size-24"> - <i class="icon ion-ios-settings"></i> - </span><span class="step size-32"> - <i class="icon ion-ios-settings"></i> - </span><span class="step size-48"> - <i class="icon ion-ios-settings"></i> - </span><span class="step size-64"> - <i class="icon ion-ios-settings"></i> - </span><span class="step size-96"> - <i class="icon ion-ios-settings"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-ios-settings" /> - - <label>Selectable:</label> - <span class="ion">&#xf4a7;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf4a7;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f4a7" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-ios-settings-strong"></i> - </span><span class="step size-14"> - <i class="icon ion-ios-settings-strong"></i> - </span><span class="step size-16"> - <i class="icon ion-ios-settings-strong"></i> - </span><span class="step size-18"> - <i class="icon ion-ios-settings-strong"></i> - </span><span class="step size-21"> - <i class="icon ion-ios-settings-strong"></i> - </span><span class="step size-24"> - <i class="icon ion-ios-settings-strong"></i> - </span><span class="step size-32"> - <i class="icon ion-ios-settings-strong"></i> - </span><span class="step size-48"> - <i class="icon ion-ios-settings-strong"></i> - </span><span class="step size-64"> - <i class="icon ion-ios-settings-strong"></i> - </span><span class="step size-96"> - <i class="icon ion-ios-settings-strong"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-ios-settings-strong" /> - - <label>Selectable:</label> - <span class="ion">&#xf4a6;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf4a6;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f4a6" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-ios-shuffle"></i> - </span><span class="step size-14"> - <i class="icon ion-ios-shuffle"></i> - </span><span class="step size-16"> - <i class="icon ion-ios-shuffle"></i> - </span><span class="step size-18"> - <i class="icon ion-ios-shuffle"></i> - </span><span class="step size-21"> - <i class="icon ion-ios-shuffle"></i> - </span><span class="step size-24"> - <i class="icon ion-ios-shuffle"></i> - </span><span class="step size-32"> - <i class="icon ion-ios-shuffle"></i> - </span><span class="step size-48"> - <i class="icon ion-ios-shuffle"></i> - </span><span class="step size-64"> - <i class="icon ion-ios-shuffle"></i> - </span><span class="step size-96"> - <i class="icon ion-ios-shuffle"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-ios-shuffle" /> - - <label>Selectable:</label> - <span class="ion">&#xf4a9;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf4a9;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f4a9" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-ios-shuffle-strong"></i> - </span><span class="step size-14"> - <i class="icon ion-ios-shuffle-strong"></i> - </span><span class="step size-16"> - <i class="icon ion-ios-shuffle-strong"></i> - </span><span class="step size-18"> - <i class="icon ion-ios-shuffle-strong"></i> - </span><span class="step size-21"> - <i class="icon ion-ios-shuffle-strong"></i> - </span><span class="step size-24"> - <i class="icon ion-ios-shuffle-strong"></i> - </span><span class="step size-32"> - <i class="icon ion-ios-shuffle-strong"></i> - </span><span class="step size-48"> - <i class="icon ion-ios-shuffle-strong"></i> - </span><span class="step size-64"> - <i class="icon ion-ios-shuffle-strong"></i> - </span><span class="step size-96"> - <i class="icon ion-ios-shuffle-strong"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-ios-shuffle-strong" /> - - <label>Selectable:</label> - <span class="ion">&#xf4a8;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf4a8;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f4a8" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-ios-skipbackward"></i> - </span><span class="step size-14"> - <i class="icon ion-ios-skipbackward"></i> - </span><span class="step size-16"> - <i class="icon ion-ios-skipbackward"></i> - </span><span class="step size-18"> - <i class="icon ion-ios-skipbackward"></i> - </span><span class="step size-21"> - <i class="icon ion-ios-skipbackward"></i> - </span><span class="step size-24"> - <i class="icon ion-ios-skipbackward"></i> - </span><span class="step size-32"> - <i class="icon ion-ios-skipbackward"></i> - </span><span class="step size-48"> - <i class="icon ion-ios-skipbackward"></i> - </span><span class="step size-64"> - <i class="icon ion-ios-skipbackward"></i> - </span><span class="step size-96"> - <i class="icon ion-ios-skipbackward"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-ios-skipbackward" /> - - <label>Selectable:</label> - <span class="ion">&#xf4ab;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf4ab;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f4ab" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-ios-skipbackward-outline"></i> - </span><span class="step size-14"> - <i class="icon ion-ios-skipbackward-outline"></i> - </span><span class="step size-16"> - <i class="icon ion-ios-skipbackward-outline"></i> - </span><span class="step size-18"> - <i class="icon ion-ios-skipbackward-outline"></i> - </span><span class="step size-21"> - <i class="icon ion-ios-skipbackward-outline"></i> - </span><span class="step size-24"> - <i class="icon ion-ios-skipbackward-outline"></i> - </span><span class="step size-32"> - <i class="icon ion-ios-skipbackward-outline"></i> - </span><span class="step size-48"> - <i class="icon ion-ios-skipbackward-outline"></i> - </span><span class="step size-64"> - <i class="icon ion-ios-skipbackward-outline"></i> - </span><span class="step size-96"> - <i class="icon ion-ios-skipbackward-outline"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-ios-skipbackward-outline" /> - - <label>Selectable:</label> - <span class="ion">&#xf4aa;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf4aa;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f4aa" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-ios-skipforward"></i> - </span><span class="step size-14"> - <i class="icon ion-ios-skipforward"></i> - </span><span class="step size-16"> - <i class="icon ion-ios-skipforward"></i> - </span><span class="step size-18"> - <i class="icon ion-ios-skipforward"></i> - </span><span class="step size-21"> - <i class="icon ion-ios-skipforward"></i> - </span><span class="step size-24"> - <i class="icon ion-ios-skipforward"></i> - </span><span class="step size-32"> - <i class="icon ion-ios-skipforward"></i> - </span><span class="step size-48"> - <i class="icon ion-ios-skipforward"></i> - </span><span class="step size-64"> - <i class="icon ion-ios-skipforward"></i> - </span><span class="step size-96"> - <i class="icon ion-ios-skipforward"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-ios-skipforward" /> - - <label>Selectable:</label> - <span class="ion">&#xf4ad;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf4ad;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f4ad" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-ios-skipforward-outline"></i> - </span><span class="step size-14"> - <i class="icon ion-ios-skipforward-outline"></i> - </span><span class="step size-16"> - <i class="icon ion-ios-skipforward-outline"></i> - </span><span class="step size-18"> - <i class="icon ion-ios-skipforward-outline"></i> - </span><span class="step size-21"> - <i class="icon ion-ios-skipforward-outline"></i> - </span><span class="step size-24"> - <i class="icon ion-ios-skipforward-outline"></i> - </span><span class="step size-32"> - <i class="icon ion-ios-skipforward-outline"></i> - </span><span class="step size-48"> - <i class="icon ion-ios-skipforward-outline"></i> - </span><span class="step size-64"> - <i class="icon ion-ios-skipforward-outline"></i> - </span><span class="step size-96"> - <i class="icon ion-ios-skipforward-outline"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-ios-skipforward-outline" /> - - <label>Selectable:</label> - <span class="ion">&#xf4ac;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf4ac;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f4ac" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-ios-snowy"></i> - </span><span class="step size-14"> - <i class="icon ion-ios-snowy"></i> - </span><span class="step size-16"> - <i class="icon ion-ios-snowy"></i> - </span><span class="step size-18"> - <i class="icon ion-ios-snowy"></i> - </span><span class="step size-21"> - <i class="icon ion-ios-snowy"></i> - </span><span class="step size-24"> - <i class="icon ion-ios-snowy"></i> - </span><span class="step size-32"> - <i class="icon ion-ios-snowy"></i> - </span><span class="step size-48"> - <i class="icon ion-ios-snowy"></i> - </span><span class="step size-64"> - <i class="icon ion-ios-snowy"></i> - </span><span class="step size-96"> - <i class="icon ion-ios-snowy"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-ios-snowy" /> - - <label>Selectable:</label> - <span class="ion">&#xf4ae;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf4ae;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f4ae" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-ios-speedometer"></i> - </span><span class="step size-14"> - <i class="icon ion-ios-speedometer"></i> - </span><span class="step size-16"> - <i class="icon ion-ios-speedometer"></i> - </span><span class="step size-18"> - <i class="icon ion-ios-speedometer"></i> - </span><span class="step size-21"> - <i class="icon ion-ios-speedometer"></i> - </span><span class="step size-24"> - <i class="icon ion-ios-speedometer"></i> - </span><span class="step size-32"> - <i class="icon ion-ios-speedometer"></i> - </span><span class="step size-48"> - <i class="icon ion-ios-speedometer"></i> - </span><span class="step size-64"> - <i class="icon ion-ios-speedometer"></i> - </span><span class="step size-96"> - <i class="icon ion-ios-speedometer"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-ios-speedometer" /> - - <label>Selectable:</label> - <span class="ion">&#xf4b0;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf4b0;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f4b0" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-ios-speedometer-outline"></i> - </span><span class="step size-14"> - <i class="icon ion-ios-speedometer-outline"></i> - </span><span class="step size-16"> - <i class="icon ion-ios-speedometer-outline"></i> - </span><span class="step size-18"> - <i class="icon ion-ios-speedometer-outline"></i> - </span><span class="step size-21"> - <i class="icon ion-ios-speedometer-outline"></i> - </span><span class="step size-24"> - <i class="icon ion-ios-speedometer-outline"></i> - </span><span class="step size-32"> - <i class="icon ion-ios-speedometer-outline"></i> - </span><span class="step size-48"> - <i class="icon ion-ios-speedometer-outline"></i> - </span><span class="step size-64"> - <i class="icon ion-ios-speedometer-outline"></i> - </span><span class="step size-96"> - <i class="icon ion-ios-speedometer-outline"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-ios-speedometer-outline" /> - - <label>Selectable:</label> - <span class="ion">&#xf4af;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf4af;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f4af" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-ios-star"></i> - </span><span class="step size-14"> - <i class="icon ion-ios-star"></i> - </span><span class="step size-16"> - <i class="icon ion-ios-star"></i> - </span><span class="step size-18"> - <i class="icon ion-ios-star"></i> - </span><span class="step size-21"> - <i class="icon ion-ios-star"></i> - </span><span class="step size-24"> - <i class="icon ion-ios-star"></i> - </span><span class="step size-32"> - <i class="icon ion-ios-star"></i> - </span><span class="step size-48"> - <i class="icon ion-ios-star"></i> - </span><span class="step size-64"> - <i class="icon ion-ios-star"></i> - </span><span class="step size-96"> - <i class="icon ion-ios-star"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-ios-star" /> - - <label>Selectable:</label> - <span class="ion">&#xf4b3;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf4b3;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f4b3" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-ios-star-half"></i> - </span><span class="step size-14"> - <i class="icon ion-ios-star-half"></i> - </span><span class="step size-16"> - <i class="icon ion-ios-star-half"></i> - </span><span class="step size-18"> - <i class="icon ion-ios-star-half"></i> - </span><span class="step size-21"> - <i class="icon ion-ios-star-half"></i> - </span><span class="step size-24"> - <i class="icon ion-ios-star-half"></i> - </span><span class="step size-32"> - <i class="icon ion-ios-star-half"></i> - </span><span class="step size-48"> - <i class="icon ion-ios-star-half"></i> - </span><span class="step size-64"> - <i class="icon ion-ios-star-half"></i> - </span><span class="step size-96"> - <i class="icon ion-ios-star-half"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-ios-star-half" /> - - <label>Selectable:</label> - <span class="ion">&#xf4b1;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf4b1;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f4b1" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-ios-star-outline"></i> - </span><span class="step size-14"> - <i class="icon ion-ios-star-outline"></i> - </span><span class="step size-16"> - <i class="icon ion-ios-star-outline"></i> - </span><span class="step size-18"> - <i class="icon ion-ios-star-outline"></i> - </span><span class="step size-21"> - <i class="icon ion-ios-star-outline"></i> - </span><span class="step size-24"> - <i class="icon ion-ios-star-outline"></i> - </span><span class="step size-32"> - <i class="icon ion-ios-star-outline"></i> - </span><span class="step size-48"> - <i class="icon ion-ios-star-outline"></i> - </span><span class="step size-64"> - <i class="icon ion-ios-star-outline"></i> - </span><span class="step size-96"> - <i class="icon ion-ios-star-outline"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-ios-star-outline" /> - - <label>Selectable:</label> - <span class="ion">&#xf4b2;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf4b2;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f4b2" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-ios-stopwatch"></i> - </span><span class="step size-14"> - <i class="icon ion-ios-stopwatch"></i> - </span><span class="step size-16"> - <i class="icon ion-ios-stopwatch"></i> - </span><span class="step size-18"> - <i class="icon ion-ios-stopwatch"></i> - </span><span class="step size-21"> - <i class="icon ion-ios-stopwatch"></i> - </span><span class="step size-24"> - <i class="icon ion-ios-stopwatch"></i> - </span><span class="step size-32"> - <i class="icon ion-ios-stopwatch"></i> - </span><span class="step size-48"> - <i class="icon ion-ios-stopwatch"></i> - </span><span class="step size-64"> - <i class="icon ion-ios-stopwatch"></i> - </span><span class="step size-96"> - <i class="icon ion-ios-stopwatch"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-ios-stopwatch" /> - - <label>Selectable:</label> - <span class="ion">&#xf4b5;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf4b5;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f4b5" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-ios-stopwatch-outline"></i> - </span><span class="step size-14"> - <i class="icon ion-ios-stopwatch-outline"></i> - </span><span class="step size-16"> - <i class="icon ion-ios-stopwatch-outline"></i> - </span><span class="step size-18"> - <i class="icon ion-ios-stopwatch-outline"></i> - </span><span class="step size-21"> - <i class="icon ion-ios-stopwatch-outline"></i> - </span><span class="step size-24"> - <i class="icon ion-ios-stopwatch-outline"></i> - </span><span class="step size-32"> - <i class="icon ion-ios-stopwatch-outline"></i> - </span><span class="step size-48"> - <i class="icon ion-ios-stopwatch-outline"></i> - </span><span class="step size-64"> - <i class="icon ion-ios-stopwatch-outline"></i> - </span><span class="step size-96"> - <i class="icon ion-ios-stopwatch-outline"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-ios-stopwatch-outline" /> - - <label>Selectable:</label> - <span class="ion">&#xf4b4;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf4b4;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f4b4" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-ios-sunny"></i> - </span><span class="step size-14"> - <i class="icon ion-ios-sunny"></i> - </span><span class="step size-16"> - <i class="icon ion-ios-sunny"></i> - </span><span class="step size-18"> - <i class="icon ion-ios-sunny"></i> - </span><span class="step size-21"> - <i class="icon ion-ios-sunny"></i> - </span><span class="step size-24"> - <i class="icon ion-ios-sunny"></i> - </span><span class="step size-32"> - <i class="icon ion-ios-sunny"></i> - </span><span class="step size-48"> - <i class="icon ion-ios-sunny"></i> - </span><span class="step size-64"> - <i class="icon ion-ios-sunny"></i> - </span><span class="step size-96"> - <i class="icon ion-ios-sunny"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-ios-sunny" /> - - <label>Selectable:</label> - <span class="ion">&#xf4b7;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf4b7;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f4b7" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-ios-sunny-outline"></i> - </span><span class="step size-14"> - <i class="icon ion-ios-sunny-outline"></i> - </span><span class="step size-16"> - <i class="icon ion-ios-sunny-outline"></i> - </span><span class="step size-18"> - <i class="icon ion-ios-sunny-outline"></i> - </span><span class="step size-21"> - <i class="icon ion-ios-sunny-outline"></i> - </span><span class="step size-24"> - <i class="icon ion-ios-sunny-outline"></i> - </span><span class="step size-32"> - <i class="icon ion-ios-sunny-outline"></i> - </span><span class="step size-48"> - <i class="icon ion-ios-sunny-outline"></i> - </span><span class="step size-64"> - <i class="icon ion-ios-sunny-outline"></i> - </span><span class="step size-96"> - <i class="icon ion-ios-sunny-outline"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-ios-sunny-outline" /> - - <label>Selectable:</label> - <span class="ion">&#xf4b6;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf4b6;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f4b6" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-ios-telephone"></i> - </span><span class="step size-14"> - <i class="icon ion-ios-telephone"></i> - </span><span class="step size-16"> - <i class="icon ion-ios-telephone"></i> - </span><span class="step size-18"> - <i class="icon ion-ios-telephone"></i> - </span><span class="step size-21"> - <i class="icon ion-ios-telephone"></i> - </span><span class="step size-24"> - <i class="icon ion-ios-telephone"></i> - </span><span class="step size-32"> - <i class="icon ion-ios-telephone"></i> - </span><span class="step size-48"> - <i class="icon ion-ios-telephone"></i> - </span><span class="step size-64"> - <i class="icon ion-ios-telephone"></i> - </span><span class="step size-96"> - <i class="icon ion-ios-telephone"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-ios-telephone" /> - - <label>Selectable:</label> - <span class="ion">&#xf4b9;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf4b9;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f4b9" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-ios-telephone-outline"></i> - </span><span class="step size-14"> - <i class="icon ion-ios-telephone-outline"></i> - </span><span class="step size-16"> - <i class="icon ion-ios-telephone-outline"></i> - </span><span class="step size-18"> - <i class="icon ion-ios-telephone-outline"></i> - </span><span class="step size-21"> - <i class="icon ion-ios-telephone-outline"></i> - </span><span class="step size-24"> - <i class="icon ion-ios-telephone-outline"></i> - </span><span class="step size-32"> - <i class="icon ion-ios-telephone-outline"></i> - </span><span class="step size-48"> - <i class="icon ion-ios-telephone-outline"></i> - </span><span class="step size-64"> - <i class="icon ion-ios-telephone-outline"></i> - </span><span class="step size-96"> - <i class="icon ion-ios-telephone-outline"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-ios-telephone-outline" /> - - <label>Selectable:</label> - <span class="ion">&#xf4b8;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf4b8;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f4b8" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-ios-tennisball"></i> - </span><span class="step size-14"> - <i class="icon ion-ios-tennisball"></i> - </span><span class="step size-16"> - <i class="icon ion-ios-tennisball"></i> - </span><span class="step size-18"> - <i class="icon ion-ios-tennisball"></i> - </span><span class="step size-21"> - <i class="icon ion-ios-tennisball"></i> - </span><span class="step size-24"> - <i class="icon ion-ios-tennisball"></i> - </span><span class="step size-32"> - <i class="icon ion-ios-tennisball"></i> - </span><span class="step size-48"> - <i class="icon ion-ios-tennisball"></i> - </span><span class="step size-64"> - <i class="icon ion-ios-tennisball"></i> - </span><span class="step size-96"> - <i class="icon ion-ios-tennisball"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-ios-tennisball" /> - - <label>Selectable:</label> - <span class="ion">&#xf4bb;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf4bb;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f4bb" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-ios-tennisball-outline"></i> - </span><span class="step size-14"> - <i class="icon ion-ios-tennisball-outline"></i> - </span><span class="step size-16"> - <i class="icon ion-ios-tennisball-outline"></i> - </span><span class="step size-18"> - <i class="icon ion-ios-tennisball-outline"></i> - </span><span class="step size-21"> - <i class="icon ion-ios-tennisball-outline"></i> - </span><span class="step size-24"> - <i class="icon ion-ios-tennisball-outline"></i> - </span><span class="step size-32"> - <i class="icon ion-ios-tennisball-outline"></i> - </span><span class="step size-48"> - <i class="icon ion-ios-tennisball-outline"></i> - </span><span class="step size-64"> - <i class="icon ion-ios-tennisball-outline"></i> - </span><span class="step size-96"> - <i class="icon ion-ios-tennisball-outline"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-ios-tennisball-outline" /> - - <label>Selectable:</label> - <span class="ion">&#xf4ba;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf4ba;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f4ba" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-ios-thunderstorm"></i> - </span><span class="step size-14"> - <i class="icon ion-ios-thunderstorm"></i> - </span><span class="step size-16"> - <i class="icon ion-ios-thunderstorm"></i> - </span><span class="step size-18"> - <i class="icon ion-ios-thunderstorm"></i> - </span><span class="step size-21"> - <i class="icon ion-ios-thunderstorm"></i> - </span><span class="step size-24"> - <i class="icon ion-ios-thunderstorm"></i> - </span><span class="step size-32"> - <i class="icon ion-ios-thunderstorm"></i> - </span><span class="step size-48"> - <i class="icon ion-ios-thunderstorm"></i> - </span><span class="step size-64"> - <i class="icon ion-ios-thunderstorm"></i> - </span><span class="step size-96"> - <i class="icon ion-ios-thunderstorm"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-ios-thunderstorm" /> - - <label>Selectable:</label> - <span class="ion">&#xf4bd;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf4bd;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f4bd" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-ios-thunderstorm-outline"></i> - </span><span class="step size-14"> - <i class="icon ion-ios-thunderstorm-outline"></i> - </span><span class="step size-16"> - <i class="icon ion-ios-thunderstorm-outline"></i> - </span><span class="step size-18"> - <i class="icon ion-ios-thunderstorm-outline"></i> - </span><span class="step size-21"> - <i class="icon ion-ios-thunderstorm-outline"></i> - </span><span class="step size-24"> - <i class="icon ion-ios-thunderstorm-outline"></i> - </span><span class="step size-32"> - <i class="icon ion-ios-thunderstorm-outline"></i> - </span><span class="step size-48"> - <i class="icon ion-ios-thunderstorm-outline"></i> - </span><span class="step size-64"> - <i class="icon ion-ios-thunderstorm-outline"></i> - </span><span class="step size-96"> - <i class="icon ion-ios-thunderstorm-outline"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-ios-thunderstorm-outline" /> - - <label>Selectable:</label> - <span class="ion">&#xf4bc;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf4bc;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f4bc" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-ios-time"></i> - </span><span class="step size-14"> - <i class="icon ion-ios-time"></i> - </span><span class="step size-16"> - <i class="icon ion-ios-time"></i> - </span><span class="step size-18"> - <i class="icon ion-ios-time"></i> - </span><span class="step size-21"> - <i class="icon ion-ios-time"></i> - </span><span class="step size-24"> - <i class="icon ion-ios-time"></i> - </span><span class="step size-32"> - <i class="icon ion-ios-time"></i> - </span><span class="step size-48"> - <i class="icon ion-ios-time"></i> - </span><span class="step size-64"> - <i class="icon ion-ios-time"></i> - </span><span class="step size-96"> - <i class="icon ion-ios-time"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-ios-time" /> - - <label>Selectable:</label> - <span class="ion">&#xf4bf;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf4bf;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f4bf" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-ios-time-outline"></i> - </span><span class="step size-14"> - <i class="icon ion-ios-time-outline"></i> - </span><span class="step size-16"> - <i class="icon ion-ios-time-outline"></i> - </span><span class="step size-18"> - <i class="icon ion-ios-time-outline"></i> - </span><span class="step size-21"> - <i class="icon ion-ios-time-outline"></i> - </span><span class="step size-24"> - <i class="icon ion-ios-time-outline"></i> - </span><span class="step size-32"> - <i class="icon ion-ios-time-outline"></i> - </span><span class="step size-48"> - <i class="icon ion-ios-time-outline"></i> - </span><span class="step size-64"> - <i class="icon ion-ios-time-outline"></i> - </span><span class="step size-96"> - <i class="icon ion-ios-time-outline"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-ios-time-outline" /> - - <label>Selectable:</label> - <span class="ion">&#xf4be;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf4be;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f4be" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-ios-timer"></i> - </span><span class="step size-14"> - <i class="icon ion-ios-timer"></i> - </span><span class="step size-16"> - <i class="icon ion-ios-timer"></i> - </span><span class="step size-18"> - <i class="icon ion-ios-timer"></i> - </span><span class="step size-21"> - <i class="icon ion-ios-timer"></i> - </span><span class="step size-24"> - <i class="icon ion-ios-timer"></i> - </span><span class="step size-32"> - <i class="icon ion-ios-timer"></i> - </span><span class="step size-48"> - <i class="icon ion-ios-timer"></i> - </span><span class="step size-64"> - <i class="icon ion-ios-timer"></i> - </span><span class="step size-96"> - <i class="icon ion-ios-timer"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-ios-timer" /> - - <label>Selectable:</label> - <span class="ion">&#xf4c1;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf4c1;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f4c1" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-ios-timer-outline"></i> - </span><span class="step size-14"> - <i class="icon ion-ios-timer-outline"></i> - </span><span class="step size-16"> - <i class="icon ion-ios-timer-outline"></i> - </span><span class="step size-18"> - <i class="icon ion-ios-timer-outline"></i> - </span><span class="step size-21"> - <i class="icon ion-ios-timer-outline"></i> - </span><span class="step size-24"> - <i class="icon ion-ios-timer-outline"></i> - </span><span class="step size-32"> - <i class="icon ion-ios-timer-outline"></i> - </span><span class="step size-48"> - <i class="icon ion-ios-timer-outline"></i> - </span><span class="step size-64"> - <i class="icon ion-ios-timer-outline"></i> - </span><span class="step size-96"> - <i class="icon ion-ios-timer-outline"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-ios-timer-outline" /> - - <label>Selectable:</label> - <span class="ion">&#xf4c0;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf4c0;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f4c0" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-ios-toggle"></i> - </span><span class="step size-14"> - <i class="icon ion-ios-toggle"></i> - </span><span class="step size-16"> - <i class="icon ion-ios-toggle"></i> - </span><span class="step size-18"> - <i class="icon ion-ios-toggle"></i> - </span><span class="step size-21"> - <i class="icon ion-ios-toggle"></i> - </span><span class="step size-24"> - <i class="icon ion-ios-toggle"></i> - </span><span class="step size-32"> - <i class="icon ion-ios-toggle"></i> - </span><span class="step size-48"> - <i class="icon ion-ios-toggle"></i> - </span><span class="step size-64"> - <i class="icon ion-ios-toggle"></i> - </span><span class="step size-96"> - <i class="icon ion-ios-toggle"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-ios-toggle" /> - - <label>Selectable:</label> - <span class="ion">&#xf4c3;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf4c3;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f4c3" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-ios-toggle-outline"></i> - </span><span class="step size-14"> - <i class="icon ion-ios-toggle-outline"></i> - </span><span class="step size-16"> - <i class="icon ion-ios-toggle-outline"></i> - </span><span class="step size-18"> - <i class="icon ion-ios-toggle-outline"></i> - </span><span class="step size-21"> - <i class="icon ion-ios-toggle-outline"></i> - </span><span class="step size-24"> - <i class="icon ion-ios-toggle-outline"></i> - </span><span class="step size-32"> - <i class="icon ion-ios-toggle-outline"></i> - </span><span class="step size-48"> - <i class="icon ion-ios-toggle-outline"></i> - </span><span class="step size-64"> - <i class="icon ion-ios-toggle-outline"></i> - </span><span class="step size-96"> - <i class="icon ion-ios-toggle-outline"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-ios-toggle-outline" /> - - <label>Selectable:</label> - <span class="ion">&#xf4c2;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf4c2;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f4c2" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-ios-trash"></i> - </span><span class="step size-14"> - <i class="icon ion-ios-trash"></i> - </span><span class="step size-16"> - <i class="icon ion-ios-trash"></i> - </span><span class="step size-18"> - <i class="icon ion-ios-trash"></i> - </span><span class="step size-21"> - <i class="icon ion-ios-trash"></i> - </span><span class="step size-24"> - <i class="icon ion-ios-trash"></i> - </span><span class="step size-32"> - <i class="icon ion-ios-trash"></i> - </span><span class="step size-48"> - <i class="icon ion-ios-trash"></i> - </span><span class="step size-64"> - <i class="icon ion-ios-trash"></i> - </span><span class="step size-96"> - <i class="icon ion-ios-trash"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-ios-trash" /> - - <label>Selectable:</label> - <span class="ion">&#xf4c5;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf4c5;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f4c5" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-ios-trash-outline"></i> - </span><span class="step size-14"> - <i class="icon ion-ios-trash-outline"></i> - </span><span class="step size-16"> - <i class="icon ion-ios-trash-outline"></i> - </span><span class="step size-18"> - <i class="icon ion-ios-trash-outline"></i> - </span><span class="step size-21"> - <i class="icon ion-ios-trash-outline"></i> - </span><span class="step size-24"> - <i class="icon ion-ios-trash-outline"></i> - </span><span class="step size-32"> - <i class="icon ion-ios-trash-outline"></i> - </span><span class="step size-48"> - <i class="icon ion-ios-trash-outline"></i> - </span><span class="step size-64"> - <i class="icon ion-ios-trash-outline"></i> - </span><span class="step size-96"> - <i class="icon ion-ios-trash-outline"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-ios-trash-outline" /> - - <label>Selectable:</label> - <span class="ion">&#xf4c4;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf4c4;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f4c4" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-ios-undo"></i> - </span><span class="step size-14"> - <i class="icon ion-ios-undo"></i> - </span><span class="step size-16"> - <i class="icon ion-ios-undo"></i> - </span><span class="step size-18"> - <i class="icon ion-ios-undo"></i> - </span><span class="step size-21"> - <i class="icon ion-ios-undo"></i> - </span><span class="step size-24"> - <i class="icon ion-ios-undo"></i> - </span><span class="step size-32"> - <i class="icon ion-ios-undo"></i> - </span><span class="step size-48"> - <i class="icon ion-ios-undo"></i> - </span><span class="step size-64"> - <i class="icon ion-ios-undo"></i> - </span><span class="step size-96"> - <i class="icon ion-ios-undo"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-ios-undo" /> - - <label>Selectable:</label> - <span class="ion">&#xf4c7;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf4c7;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f4c7" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-ios-undo-outline"></i> - </span><span class="step size-14"> - <i class="icon ion-ios-undo-outline"></i> - </span><span class="step size-16"> - <i class="icon ion-ios-undo-outline"></i> - </span><span class="step size-18"> - <i class="icon ion-ios-undo-outline"></i> - </span><span class="step size-21"> - <i class="icon ion-ios-undo-outline"></i> - </span><span class="step size-24"> - <i class="icon ion-ios-undo-outline"></i> - </span><span class="step size-32"> - <i class="icon ion-ios-undo-outline"></i> - </span><span class="step size-48"> - <i class="icon ion-ios-undo-outline"></i> - </span><span class="step size-64"> - <i class="icon ion-ios-undo-outline"></i> - </span><span class="step size-96"> - <i class="icon ion-ios-undo-outline"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-ios-undo-outline" /> - - <label>Selectable:</label> - <span class="ion">&#xf4c6;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf4c6;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f4c6" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-ios-unlocked"></i> - </span><span class="step size-14"> - <i class="icon ion-ios-unlocked"></i> - </span><span class="step size-16"> - <i class="icon ion-ios-unlocked"></i> - </span><span class="step size-18"> - <i class="icon ion-ios-unlocked"></i> - </span><span class="step size-21"> - <i class="icon ion-ios-unlocked"></i> - </span><span class="step size-24"> - <i class="icon ion-ios-unlocked"></i> - </span><span class="step size-32"> - <i class="icon ion-ios-unlocked"></i> - </span><span class="step size-48"> - <i class="icon ion-ios-unlocked"></i> - </span><span class="step size-64"> - <i class="icon ion-ios-unlocked"></i> - </span><span class="step size-96"> - <i class="icon ion-ios-unlocked"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-ios-unlocked" /> - - <label>Selectable:</label> - <span class="ion">&#xf4c9;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf4c9;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f4c9" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-ios-unlocked-outline"></i> - </span><span class="step size-14"> - <i class="icon ion-ios-unlocked-outline"></i> - </span><span class="step size-16"> - <i class="icon ion-ios-unlocked-outline"></i> - </span><span class="step size-18"> - <i class="icon ion-ios-unlocked-outline"></i> - </span><span class="step size-21"> - <i class="icon ion-ios-unlocked-outline"></i> - </span><span class="step size-24"> - <i class="icon ion-ios-unlocked-outline"></i> - </span><span class="step size-32"> - <i class="icon ion-ios-unlocked-outline"></i> - </span><span class="step size-48"> - <i class="icon ion-ios-unlocked-outline"></i> - </span><span class="step size-64"> - <i class="icon ion-ios-unlocked-outline"></i> - </span><span class="step size-96"> - <i class="icon ion-ios-unlocked-outline"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-ios-unlocked-outline" /> - - <label>Selectable:</label> - <span class="ion">&#xf4c8;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf4c8;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f4c8" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-ios-upload"></i> - </span><span class="step size-14"> - <i class="icon ion-ios-upload"></i> - </span><span class="step size-16"> - <i class="icon ion-ios-upload"></i> - </span><span class="step size-18"> - <i class="icon ion-ios-upload"></i> - </span><span class="step size-21"> - <i class="icon ion-ios-upload"></i> - </span><span class="step size-24"> - <i class="icon ion-ios-upload"></i> - </span><span class="step size-32"> - <i class="icon ion-ios-upload"></i> - </span><span class="step size-48"> - <i class="icon ion-ios-upload"></i> - </span><span class="step size-64"> - <i class="icon ion-ios-upload"></i> - </span><span class="step size-96"> - <i class="icon ion-ios-upload"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-ios-upload" /> - - <label>Selectable:</label> - <span class="ion">&#xf4cb;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf4cb;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f4cb" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-ios-upload-outline"></i> - </span><span class="step size-14"> - <i class="icon ion-ios-upload-outline"></i> - </span><span class="step size-16"> - <i class="icon ion-ios-upload-outline"></i> - </span><span class="step size-18"> - <i class="icon ion-ios-upload-outline"></i> - </span><span class="step size-21"> - <i class="icon ion-ios-upload-outline"></i> - </span><span class="step size-24"> - <i class="icon ion-ios-upload-outline"></i> - </span><span class="step size-32"> - <i class="icon ion-ios-upload-outline"></i> - </span><span class="step size-48"> - <i class="icon ion-ios-upload-outline"></i> - </span><span class="step size-64"> - <i class="icon ion-ios-upload-outline"></i> - </span><span class="step size-96"> - <i class="icon ion-ios-upload-outline"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-ios-upload-outline" /> - - <label>Selectable:</label> - <span class="ion">&#xf4ca;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf4ca;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f4ca" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-ios-videocam"></i> - </span><span class="step size-14"> - <i class="icon ion-ios-videocam"></i> - </span><span class="step size-16"> - <i class="icon ion-ios-videocam"></i> - </span><span class="step size-18"> - <i class="icon ion-ios-videocam"></i> - </span><span class="step size-21"> - <i class="icon ion-ios-videocam"></i> - </span><span class="step size-24"> - <i class="icon ion-ios-videocam"></i> - </span><span class="step size-32"> - <i class="icon ion-ios-videocam"></i> - </span><span class="step size-48"> - <i class="icon ion-ios-videocam"></i> - </span><span class="step size-64"> - <i class="icon ion-ios-videocam"></i> - </span><span class="step size-96"> - <i class="icon ion-ios-videocam"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-ios-videocam" /> - - <label>Selectable:</label> - <span class="ion">&#xf4cd;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf4cd;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f4cd" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-ios-videocam-outline"></i> - </span><span class="step size-14"> - <i class="icon ion-ios-videocam-outline"></i> - </span><span class="step size-16"> - <i class="icon ion-ios-videocam-outline"></i> - </span><span class="step size-18"> - <i class="icon ion-ios-videocam-outline"></i> - </span><span class="step size-21"> - <i class="icon ion-ios-videocam-outline"></i> - </span><span class="step size-24"> - <i class="icon ion-ios-videocam-outline"></i> - </span><span class="step size-32"> - <i class="icon ion-ios-videocam-outline"></i> - </span><span class="step size-48"> - <i class="icon ion-ios-videocam-outline"></i> - </span><span class="step size-64"> - <i class="icon ion-ios-videocam-outline"></i> - </span><span class="step size-96"> - <i class="icon ion-ios-videocam-outline"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-ios-videocam-outline" /> - - <label>Selectable:</label> - <span class="ion">&#xf4cc;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf4cc;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f4cc" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-ios-volume-high"></i> - </span><span class="step size-14"> - <i class="icon ion-ios-volume-high"></i> - </span><span class="step size-16"> - <i class="icon ion-ios-volume-high"></i> - </span><span class="step size-18"> - <i class="icon ion-ios-volume-high"></i> - </span><span class="step size-21"> - <i class="icon ion-ios-volume-high"></i> - </span><span class="step size-24"> - <i class="icon ion-ios-volume-high"></i> - </span><span class="step size-32"> - <i class="icon ion-ios-volume-high"></i> - </span><span class="step size-48"> - <i class="icon ion-ios-volume-high"></i> - </span><span class="step size-64"> - <i class="icon ion-ios-volume-high"></i> - </span><span class="step size-96"> - <i class="icon ion-ios-volume-high"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-ios-volume-high" /> - - <label>Selectable:</label> - <span class="ion">&#xf4ce;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf4ce;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f4ce" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-ios-volume-low"></i> - </span><span class="step size-14"> - <i class="icon ion-ios-volume-low"></i> - </span><span class="step size-16"> - <i class="icon ion-ios-volume-low"></i> - </span><span class="step size-18"> - <i class="icon ion-ios-volume-low"></i> - </span><span class="step size-21"> - <i class="icon ion-ios-volume-low"></i> - </span><span class="step size-24"> - <i class="icon ion-ios-volume-low"></i> - </span><span class="step size-32"> - <i class="icon ion-ios-volume-low"></i> - </span><span class="step size-48"> - <i class="icon ion-ios-volume-low"></i> - </span><span class="step size-64"> - <i class="icon ion-ios-volume-low"></i> - </span><span class="step size-96"> - <i class="icon ion-ios-volume-low"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-ios-volume-low" /> - - <label>Selectable:</label> - <span class="ion">&#xf4cf;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf4cf;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f4cf" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-ios-wineglass"></i> - </span><span class="step size-14"> - <i class="icon ion-ios-wineglass"></i> - </span><span class="step size-16"> - <i class="icon ion-ios-wineglass"></i> - </span><span class="step size-18"> - <i class="icon ion-ios-wineglass"></i> - </span><span class="step size-21"> - <i class="icon ion-ios-wineglass"></i> - </span><span class="step size-24"> - <i class="icon ion-ios-wineglass"></i> - </span><span class="step size-32"> - <i class="icon ion-ios-wineglass"></i> - </span><span class="step size-48"> - <i class="icon ion-ios-wineglass"></i> - </span><span class="step size-64"> - <i class="icon ion-ios-wineglass"></i> - </span><span class="step size-96"> - <i class="icon ion-ios-wineglass"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-ios-wineglass" /> - - <label>Selectable:</label> - <span class="ion">&#xf4d1;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf4d1;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f4d1" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-ios-wineglass-outline"></i> - </span><span class="step size-14"> - <i class="icon ion-ios-wineglass-outline"></i> - </span><span class="step size-16"> - <i class="icon ion-ios-wineglass-outline"></i> - </span><span class="step size-18"> - <i class="icon ion-ios-wineglass-outline"></i> - </span><span class="step size-21"> - <i class="icon ion-ios-wineglass-outline"></i> - </span><span class="step size-24"> - <i class="icon ion-ios-wineglass-outline"></i> - </span><span class="step size-32"> - <i class="icon ion-ios-wineglass-outline"></i> - </span><span class="step size-48"> - <i class="icon ion-ios-wineglass-outline"></i> - </span><span class="step size-64"> - <i class="icon ion-ios-wineglass-outline"></i> - </span><span class="step size-96"> - <i class="icon ion-ios-wineglass-outline"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-ios-wineglass-outline" /> - - <label>Selectable:</label> - <span class="ion">&#xf4d0;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf4d0;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f4d0" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-ios-world"></i> - </span><span class="step size-14"> - <i class="icon ion-ios-world"></i> - </span><span class="step size-16"> - <i class="icon ion-ios-world"></i> - </span><span class="step size-18"> - <i class="icon ion-ios-world"></i> - </span><span class="step size-21"> - <i class="icon ion-ios-world"></i> - </span><span class="step size-24"> - <i class="icon ion-ios-world"></i> - </span><span class="step size-32"> - <i class="icon ion-ios-world"></i> - </span><span class="step size-48"> - <i class="icon ion-ios-world"></i> - </span><span class="step size-64"> - <i class="icon ion-ios-world"></i> - </span><span class="step size-96"> - <i class="icon ion-ios-world"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-ios-world" /> - - <label>Selectable:</label> - <span class="ion">&#xf4d3;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf4d3;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f4d3" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-ios-world-outline"></i> - </span><span class="step size-14"> - <i class="icon ion-ios-world-outline"></i> - </span><span class="step size-16"> - <i class="icon ion-ios-world-outline"></i> - </span><span class="step size-18"> - <i class="icon ion-ios-world-outline"></i> - </span><span class="step size-21"> - <i class="icon ion-ios-world-outline"></i> - </span><span class="step size-24"> - <i class="icon ion-ios-world-outline"></i> - </span><span class="step size-32"> - <i class="icon ion-ios-world-outline"></i> - </span><span class="step size-48"> - <i class="icon ion-ios-world-outline"></i> - </span><span class="step size-64"> - <i class="icon ion-ios-world-outline"></i> - </span><span class="step size-96"> - <i class="icon ion-ios-world-outline"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-ios-world-outline" /> - - <label>Selectable:</label> - <span class="ion">&#xf4d2;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf4d2;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f4d2" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-ipad"></i> - </span><span class="step size-14"> - <i class="icon ion-ipad"></i> - </span><span class="step size-16"> - <i class="icon ion-ipad"></i> - </span><span class="step size-18"> - <i class="icon ion-ipad"></i> - </span><span class="step size-21"> - <i class="icon ion-ipad"></i> - </span><span class="step size-24"> - <i class="icon ion-ipad"></i> - </span><span class="step size-32"> - <i class="icon ion-ipad"></i> - </span><span class="step size-48"> - <i class="icon ion-ipad"></i> - </span><span class="step size-64"> - <i class="icon ion-ipad"></i> - </span><span class="step size-96"> - <i class="icon ion-ipad"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-ipad" /> - - <label>Selectable:</label> - <span class="ion">&#xf1f9;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf1f9;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f1f9" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-iphone"></i> - </span><span class="step size-14"> - <i class="icon ion-iphone"></i> - </span><span class="step size-16"> - <i class="icon ion-iphone"></i> - </span><span class="step size-18"> - <i class="icon ion-iphone"></i> - </span><span class="step size-21"> - <i class="icon ion-iphone"></i> - </span><span class="step size-24"> - <i class="icon ion-iphone"></i> - </span><span class="step size-32"> - <i class="icon ion-iphone"></i> - </span><span class="step size-48"> - <i class="icon ion-iphone"></i> - </span><span class="step size-64"> - <i class="icon ion-iphone"></i> - </span><span class="step size-96"> - <i class="icon ion-iphone"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-iphone" /> - - <label>Selectable:</label> - <span class="ion">&#xf1fa;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf1fa;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f1fa" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-ipod"></i> - </span><span class="step size-14"> - <i class="icon ion-ipod"></i> - </span><span class="step size-16"> - <i class="icon ion-ipod"></i> - </span><span class="step size-18"> - <i class="icon ion-ipod"></i> - </span><span class="step size-21"> - <i class="icon ion-ipod"></i> - </span><span class="step size-24"> - <i class="icon ion-ipod"></i> - </span><span class="step size-32"> - <i class="icon ion-ipod"></i> - </span><span class="step size-48"> - <i class="icon ion-ipod"></i> - </span><span class="step size-64"> - <i class="icon ion-ipod"></i> - </span><span class="step size-96"> - <i class="icon ion-ipod"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-ipod" /> - - <label>Selectable:</label> - <span class="ion">&#xf1fb;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf1fb;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f1fb" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-jet"></i> - </span><span class="step size-14"> - <i class="icon ion-jet"></i> - </span><span class="step size-16"> - <i class="icon ion-jet"></i> - </span><span class="step size-18"> - <i class="icon ion-jet"></i> - </span><span class="step size-21"> - <i class="icon ion-jet"></i> - </span><span class="step size-24"> - <i class="icon ion-jet"></i> - </span><span class="step size-32"> - <i class="icon ion-jet"></i> - </span><span class="step size-48"> - <i class="icon ion-jet"></i> - </span><span class="step size-64"> - <i class="icon ion-jet"></i> - </span><span class="step size-96"> - <i class="icon ion-jet"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-jet" /> - - <label>Selectable:</label> - <span class="ion">&#xf295;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf295;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f295" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-key"></i> - </span><span class="step size-14"> - <i class="icon ion-key"></i> - </span><span class="step size-16"> - <i class="icon ion-key"></i> - </span><span class="step size-18"> - <i class="icon ion-key"></i> - </span><span class="step size-21"> - <i class="icon ion-key"></i> - </span><span class="step size-24"> - <i class="icon ion-key"></i> - </span><span class="step size-32"> - <i class="icon ion-key"></i> - </span><span class="step size-48"> - <i class="icon ion-key"></i> - </span><span class="step size-64"> - <i class="icon ion-key"></i> - </span><span class="step size-96"> - <i class="icon ion-key"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-key" /> - - <label>Selectable:</label> - <span class="ion">&#xf296;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf296;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f296" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-knife"></i> - </span><span class="step size-14"> - <i class="icon ion-knife"></i> - </span><span class="step size-16"> - <i class="icon ion-knife"></i> - </span><span class="step size-18"> - <i class="icon ion-knife"></i> - </span><span class="step size-21"> - <i class="icon ion-knife"></i> - </span><span class="step size-24"> - <i class="icon ion-knife"></i> - </span><span class="step size-32"> - <i class="icon ion-knife"></i> - </span><span class="step size-48"> - <i class="icon ion-knife"></i> - </span><span class="step size-64"> - <i class="icon ion-knife"></i> - </span><span class="step size-96"> - <i class="icon ion-knife"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-knife" /> - - <label>Selectable:</label> - <span class="ion">&#xf297;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf297;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f297" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-laptop"></i> - </span><span class="step size-14"> - <i class="icon ion-laptop"></i> - </span><span class="step size-16"> - <i class="icon ion-laptop"></i> - </span><span class="step size-18"> - <i class="icon ion-laptop"></i> - </span><span class="step size-21"> - <i class="icon ion-laptop"></i> - </span><span class="step size-24"> - <i class="icon ion-laptop"></i> - </span><span class="step size-32"> - <i class="icon ion-laptop"></i> - </span><span class="step size-48"> - <i class="icon ion-laptop"></i> - </span><span class="step size-64"> - <i class="icon ion-laptop"></i> - </span><span class="step size-96"> - <i class="icon ion-laptop"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-laptop" /> - - <label>Selectable:</label> - <span class="ion">&#xf1fc;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf1fc;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f1fc" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-leaf"></i> - </span><span class="step size-14"> - <i class="icon ion-leaf"></i> - </span><span class="step size-16"> - <i class="icon ion-leaf"></i> - </span><span class="step size-18"> - <i class="icon ion-leaf"></i> - </span><span class="step size-21"> - <i class="icon ion-leaf"></i> - </span><span class="step size-24"> - <i class="icon ion-leaf"></i> - </span><span class="step size-32"> - <i class="icon ion-leaf"></i> - </span><span class="step size-48"> - <i class="icon ion-leaf"></i> - </span><span class="step size-64"> - <i class="icon ion-leaf"></i> - </span><span class="step size-96"> - <i class="icon ion-leaf"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-leaf" /> - - <label>Selectable:</label> - <span class="ion">&#xf1fd;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf1fd;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f1fd" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-levels"></i> - </span><span class="step size-14"> - <i class="icon ion-levels"></i> - </span><span class="step size-16"> - <i class="icon ion-levels"></i> - </span><span class="step size-18"> - <i class="icon ion-levels"></i> - </span><span class="step size-21"> - <i class="icon ion-levels"></i> - </span><span class="step size-24"> - <i class="icon ion-levels"></i> - </span><span class="step size-32"> - <i class="icon ion-levels"></i> - </span><span class="step size-48"> - <i class="icon ion-levels"></i> - </span><span class="step size-64"> - <i class="icon ion-levels"></i> - </span><span class="step size-96"> - <i class="icon ion-levels"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-levels" /> - - <label>Selectable:</label> - <span class="ion">&#xf298;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf298;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f298" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-lightbulb"></i> - </span><span class="step size-14"> - <i class="icon ion-lightbulb"></i> - </span><span class="step size-16"> - <i class="icon ion-lightbulb"></i> - </span><span class="step size-18"> - <i class="icon ion-lightbulb"></i> - </span><span class="step size-21"> - <i class="icon ion-lightbulb"></i> - </span><span class="step size-24"> - <i class="icon ion-lightbulb"></i> - </span><span class="step size-32"> - <i class="icon ion-lightbulb"></i> - </span><span class="step size-48"> - <i class="icon ion-lightbulb"></i> - </span><span class="step size-64"> - <i class="icon ion-lightbulb"></i> - </span><span class="step size-96"> - <i class="icon ion-lightbulb"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-lightbulb" /> - - <label>Selectable:</label> - <span class="ion">&#xf299;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf299;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f299" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-link"></i> - </span><span class="step size-14"> - <i class="icon ion-link"></i> - </span><span class="step size-16"> - <i class="icon ion-link"></i> - </span><span class="step size-18"> - <i class="icon ion-link"></i> - </span><span class="step size-21"> - <i class="icon ion-link"></i> - </span><span class="step size-24"> - <i class="icon ion-link"></i> - </span><span class="step size-32"> - <i class="icon ion-link"></i> - </span><span class="step size-48"> - <i class="icon ion-link"></i> - </span><span class="step size-64"> - <i class="icon ion-link"></i> - </span><span class="step size-96"> - <i class="icon ion-link"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-link" /> - - <label>Selectable:</label> - <span class="ion">&#xf1fe;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf1fe;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f1fe" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-load-a"></i> - </span><span class="step size-14"> - <i class="icon ion-load-a"></i> - </span><span class="step size-16"> - <i class="icon ion-load-a"></i> - </span><span class="step size-18"> - <i class="icon ion-load-a"></i> - </span><span class="step size-21"> - <i class="icon ion-load-a"></i> - </span><span class="step size-24"> - <i class="icon ion-load-a"></i> - </span><span class="step size-32"> - <i class="icon ion-load-a"></i> - </span><span class="step size-48"> - <i class="icon ion-load-a"></i> - </span><span class="step size-64"> - <i class="icon ion-load-a"></i> - </span><span class="step size-96"> - <i class="icon ion-load-a"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-load-a" /> - - <label>Selectable:</label> - <span class="ion">&#xf29a;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf29a;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f29a" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-load-b"></i> - </span><span class="step size-14"> - <i class="icon ion-load-b"></i> - </span><span class="step size-16"> - <i class="icon ion-load-b"></i> - </span><span class="step size-18"> - <i class="icon ion-load-b"></i> - </span><span class="step size-21"> - <i class="icon ion-load-b"></i> - </span><span class="step size-24"> - <i class="icon ion-load-b"></i> - </span><span class="step size-32"> - <i class="icon ion-load-b"></i> - </span><span class="step size-48"> - <i class="icon ion-load-b"></i> - </span><span class="step size-64"> - <i class="icon ion-load-b"></i> - </span><span class="step size-96"> - <i class="icon ion-load-b"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-load-b" /> - - <label>Selectable:</label> - <span class="ion">&#xf29b;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf29b;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f29b" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-load-c"></i> - </span><span class="step size-14"> - <i class="icon ion-load-c"></i> - </span><span class="step size-16"> - <i class="icon ion-load-c"></i> - </span><span class="step size-18"> - <i class="icon ion-load-c"></i> - </span><span class="step size-21"> - <i class="icon ion-load-c"></i> - </span><span class="step size-24"> - <i class="icon ion-load-c"></i> - </span><span class="step size-32"> - <i class="icon ion-load-c"></i> - </span><span class="step size-48"> - <i class="icon ion-load-c"></i> - </span><span class="step size-64"> - <i class="icon ion-load-c"></i> - </span><span class="step size-96"> - <i class="icon ion-load-c"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-load-c" /> - - <label>Selectable:</label> - <span class="ion">&#xf29c;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf29c;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f29c" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-load-d"></i> - </span><span class="step size-14"> - <i class="icon ion-load-d"></i> - </span><span class="step size-16"> - <i class="icon ion-load-d"></i> - </span><span class="step size-18"> - <i class="icon ion-load-d"></i> - </span><span class="step size-21"> - <i class="icon ion-load-d"></i> - </span><span class="step size-24"> - <i class="icon ion-load-d"></i> - </span><span class="step size-32"> - <i class="icon ion-load-d"></i> - </span><span class="step size-48"> - <i class="icon ion-load-d"></i> - </span><span class="step size-64"> - <i class="icon ion-load-d"></i> - </span><span class="step size-96"> - <i class="icon ion-load-d"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-load-d" /> - - <label>Selectable:</label> - <span class="ion">&#xf29d;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf29d;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f29d" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-location"></i> - </span><span class="step size-14"> - <i class="icon ion-location"></i> - </span><span class="step size-16"> - <i class="icon ion-location"></i> - </span><span class="step size-18"> - <i class="icon ion-location"></i> - </span><span class="step size-21"> - <i class="icon ion-location"></i> - </span><span class="step size-24"> - <i class="icon ion-location"></i> - </span><span class="step size-32"> - <i class="icon ion-location"></i> - </span><span class="step size-48"> - <i class="icon ion-location"></i> - </span><span class="step size-64"> - <i class="icon ion-location"></i> - </span><span class="step size-96"> - <i class="icon ion-location"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-location" /> - - <label>Selectable:</label> - <span class="ion">&#xf1ff;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf1ff;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f1ff" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-lock-combination"></i> - </span><span class="step size-14"> - <i class="icon ion-lock-combination"></i> - </span><span class="step size-16"> - <i class="icon ion-lock-combination"></i> - </span><span class="step size-18"> - <i class="icon ion-lock-combination"></i> - </span><span class="step size-21"> - <i class="icon ion-lock-combination"></i> - </span><span class="step size-24"> - <i class="icon ion-lock-combination"></i> - </span><span class="step size-32"> - <i class="icon ion-lock-combination"></i> - </span><span class="step size-48"> - <i class="icon ion-lock-combination"></i> - </span><span class="step size-64"> - <i class="icon ion-lock-combination"></i> - </span><span class="step size-96"> - <i class="icon ion-lock-combination"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-lock-combination" /> - - <label>Selectable:</label> - <span class="ion">&#xf4d4;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf4d4;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f4d4" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-locked"></i> - </span><span class="step size-14"> - <i class="icon ion-locked"></i> - </span><span class="step size-16"> - <i class="icon ion-locked"></i> - </span><span class="step size-18"> - <i class="icon ion-locked"></i> - </span><span class="step size-21"> - <i class="icon ion-locked"></i> - </span><span class="step size-24"> - <i class="icon ion-locked"></i> - </span><span class="step size-32"> - <i class="icon ion-locked"></i> - </span><span class="step size-48"> - <i class="icon ion-locked"></i> - </span><span class="step size-64"> - <i class="icon ion-locked"></i> - </span><span class="step size-96"> - <i class="icon ion-locked"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-locked" /> - - <label>Selectable:</label> - <span class="ion">&#xf200;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf200;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f200" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-log-in"></i> - </span><span class="step size-14"> - <i class="icon ion-log-in"></i> - </span><span class="step size-16"> - <i class="icon ion-log-in"></i> - </span><span class="step size-18"> - <i class="icon ion-log-in"></i> - </span><span class="step size-21"> - <i class="icon ion-log-in"></i> - </span><span class="step size-24"> - <i class="icon ion-log-in"></i> - </span><span class="step size-32"> - <i class="icon ion-log-in"></i> - </span><span class="step size-48"> - <i class="icon ion-log-in"></i> - </span><span class="step size-64"> - <i class="icon ion-log-in"></i> - </span><span class="step size-96"> - <i class="icon ion-log-in"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-log-in" /> - - <label>Selectable:</label> - <span class="ion">&#xf29e;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf29e;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f29e" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-log-out"></i> - </span><span class="step size-14"> - <i class="icon ion-log-out"></i> - </span><span class="step size-16"> - <i class="icon ion-log-out"></i> - </span><span class="step size-18"> - <i class="icon ion-log-out"></i> - </span><span class="step size-21"> - <i class="icon ion-log-out"></i> - </span><span class="step size-24"> - <i class="icon ion-log-out"></i> - </span><span class="step size-32"> - <i class="icon ion-log-out"></i> - </span><span class="step size-48"> - <i class="icon ion-log-out"></i> - </span><span class="step size-64"> - <i class="icon ion-log-out"></i> - </span><span class="step size-96"> - <i class="icon ion-log-out"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-log-out" /> - - <label>Selectable:</label> - <span class="ion">&#xf29f;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf29f;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f29f" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-loop"></i> - </span><span class="step size-14"> - <i class="icon ion-loop"></i> - </span><span class="step size-16"> - <i class="icon ion-loop"></i> - </span><span class="step size-18"> - <i class="icon ion-loop"></i> - </span><span class="step size-21"> - <i class="icon ion-loop"></i> - </span><span class="step size-24"> - <i class="icon ion-loop"></i> - </span><span class="step size-32"> - <i class="icon ion-loop"></i> - </span><span class="step size-48"> - <i class="icon ion-loop"></i> - </span><span class="step size-64"> - <i class="icon ion-loop"></i> - </span><span class="step size-96"> - <i class="icon ion-loop"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-loop" /> - - <label>Selectable:</label> - <span class="ion">&#xf201;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf201;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f201" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-magnet"></i> - </span><span class="step size-14"> - <i class="icon ion-magnet"></i> - </span><span class="step size-16"> - <i class="icon ion-magnet"></i> - </span><span class="step size-18"> - <i class="icon ion-magnet"></i> - </span><span class="step size-21"> - <i class="icon ion-magnet"></i> - </span><span class="step size-24"> - <i class="icon ion-magnet"></i> - </span><span class="step size-32"> - <i class="icon ion-magnet"></i> - </span><span class="step size-48"> - <i class="icon ion-magnet"></i> - </span><span class="step size-64"> - <i class="icon ion-magnet"></i> - </span><span class="step size-96"> - <i class="icon ion-magnet"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-magnet" /> - - <label>Selectable:</label> - <span class="ion">&#xf2a0;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf2a0;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f2a0" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-male"></i> - </span><span class="step size-14"> - <i class="icon ion-male"></i> - </span><span class="step size-16"> - <i class="icon ion-male"></i> - </span><span class="step size-18"> - <i class="icon ion-male"></i> - </span><span class="step size-21"> - <i class="icon ion-male"></i> - </span><span class="step size-24"> - <i class="icon ion-male"></i> - </span><span class="step size-32"> - <i class="icon ion-male"></i> - </span><span class="step size-48"> - <i class="icon ion-male"></i> - </span><span class="step size-64"> - <i class="icon ion-male"></i> - </span><span class="step size-96"> - <i class="icon ion-male"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-male" /> - - <label>Selectable:</label> - <span class="ion">&#xf2a1;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf2a1;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f2a1" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-man"></i> - </span><span class="step size-14"> - <i class="icon ion-man"></i> - </span><span class="step size-16"> - <i class="icon ion-man"></i> - </span><span class="step size-18"> - <i class="icon ion-man"></i> - </span><span class="step size-21"> - <i class="icon ion-man"></i> - </span><span class="step size-24"> - <i class="icon ion-man"></i> - </span><span class="step size-32"> - <i class="icon ion-man"></i> - </span><span class="step size-48"> - <i class="icon ion-man"></i> - </span><span class="step size-64"> - <i class="icon ion-man"></i> - </span><span class="step size-96"> - <i class="icon ion-man"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-man" /> - - <label>Selectable:</label> - <span class="ion">&#xf202;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf202;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f202" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-map"></i> - </span><span class="step size-14"> - <i class="icon ion-map"></i> - </span><span class="step size-16"> - <i class="icon ion-map"></i> - </span><span class="step size-18"> - <i class="icon ion-map"></i> - </span><span class="step size-21"> - <i class="icon ion-map"></i> - </span><span class="step size-24"> - <i class="icon ion-map"></i> - </span><span class="step size-32"> - <i class="icon ion-map"></i> - </span><span class="step size-48"> - <i class="icon ion-map"></i> - </span><span class="step size-64"> - <i class="icon ion-map"></i> - </span><span class="step size-96"> - <i class="icon ion-map"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-map" /> - - <label>Selectable:</label> - <span class="ion">&#xf203;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf203;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f203" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-medkit"></i> - </span><span class="step size-14"> - <i class="icon ion-medkit"></i> - </span><span class="step size-16"> - <i class="icon ion-medkit"></i> - </span><span class="step size-18"> - <i class="icon ion-medkit"></i> - </span><span class="step size-21"> - <i class="icon ion-medkit"></i> - </span><span class="step size-24"> - <i class="icon ion-medkit"></i> - </span><span class="step size-32"> - <i class="icon ion-medkit"></i> - </span><span class="step size-48"> - <i class="icon ion-medkit"></i> - </span><span class="step size-64"> - <i class="icon ion-medkit"></i> - </span><span class="step size-96"> - <i class="icon ion-medkit"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-medkit" /> - - <label>Selectable:</label> - <span class="ion">&#xf2a2;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf2a2;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f2a2" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-merge"></i> - </span><span class="step size-14"> - <i class="icon ion-merge"></i> - </span><span class="step size-16"> - <i class="icon ion-merge"></i> - </span><span class="step size-18"> - <i class="icon ion-merge"></i> - </span><span class="step size-21"> - <i class="icon ion-merge"></i> - </span><span class="step size-24"> - <i class="icon ion-merge"></i> - </span><span class="step size-32"> - <i class="icon ion-merge"></i> - </span><span class="step size-48"> - <i class="icon ion-merge"></i> - </span><span class="step size-64"> - <i class="icon ion-merge"></i> - </span><span class="step size-96"> - <i class="icon ion-merge"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-merge" /> - - <label>Selectable:</label> - <span class="ion">&#xf33f;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf33f;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f33f" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-mic-a"></i> - </span><span class="step size-14"> - <i class="icon ion-mic-a"></i> - </span><span class="step size-16"> - <i class="icon ion-mic-a"></i> - </span><span class="step size-18"> - <i class="icon ion-mic-a"></i> - </span><span class="step size-21"> - <i class="icon ion-mic-a"></i> - </span><span class="step size-24"> - <i class="icon ion-mic-a"></i> - </span><span class="step size-32"> - <i class="icon ion-mic-a"></i> - </span><span class="step size-48"> - <i class="icon ion-mic-a"></i> - </span><span class="step size-64"> - <i class="icon ion-mic-a"></i> - </span><span class="step size-96"> - <i class="icon ion-mic-a"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-mic-a" /> - - <label>Selectable:</label> - <span class="ion">&#xf204;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf204;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f204" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-mic-b"></i> - </span><span class="step size-14"> - <i class="icon ion-mic-b"></i> - </span><span class="step size-16"> - <i class="icon ion-mic-b"></i> - </span><span class="step size-18"> - <i class="icon ion-mic-b"></i> - </span><span class="step size-21"> - <i class="icon ion-mic-b"></i> - </span><span class="step size-24"> - <i class="icon ion-mic-b"></i> - </span><span class="step size-32"> - <i class="icon ion-mic-b"></i> - </span><span class="step size-48"> - <i class="icon ion-mic-b"></i> - </span><span class="step size-64"> - <i class="icon ion-mic-b"></i> - </span><span class="step size-96"> - <i class="icon ion-mic-b"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-mic-b" /> - - <label>Selectable:</label> - <span class="ion">&#xf205;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf205;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f205" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-mic-c"></i> - </span><span class="step size-14"> - <i class="icon ion-mic-c"></i> - </span><span class="step size-16"> - <i class="icon ion-mic-c"></i> - </span><span class="step size-18"> - <i class="icon ion-mic-c"></i> - </span><span class="step size-21"> - <i class="icon ion-mic-c"></i> - </span><span class="step size-24"> - <i class="icon ion-mic-c"></i> - </span><span class="step size-32"> - <i class="icon ion-mic-c"></i> - </span><span class="step size-48"> - <i class="icon ion-mic-c"></i> - </span><span class="step size-64"> - <i class="icon ion-mic-c"></i> - </span><span class="step size-96"> - <i class="icon ion-mic-c"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-mic-c" /> - - <label>Selectable:</label> - <span class="ion">&#xf206;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf206;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f206" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-minus"></i> - </span><span class="step size-14"> - <i class="icon ion-minus"></i> - </span><span class="step size-16"> - <i class="icon ion-minus"></i> - </span><span class="step size-18"> - <i class="icon ion-minus"></i> - </span><span class="step size-21"> - <i class="icon ion-minus"></i> - </span><span class="step size-24"> - <i class="icon ion-minus"></i> - </span><span class="step size-32"> - <i class="icon ion-minus"></i> - </span><span class="step size-48"> - <i class="icon ion-minus"></i> - </span><span class="step size-64"> - <i class="icon ion-minus"></i> - </span><span class="step size-96"> - <i class="icon ion-minus"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-minus" /> - - <label>Selectable:</label> - <span class="ion">&#xf209;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf209;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f209" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-minus-circled"></i> - </span><span class="step size-14"> - <i class="icon ion-minus-circled"></i> - </span><span class="step size-16"> - <i class="icon ion-minus-circled"></i> - </span><span class="step size-18"> - <i class="icon ion-minus-circled"></i> - </span><span class="step size-21"> - <i class="icon ion-minus-circled"></i> - </span><span class="step size-24"> - <i class="icon ion-minus-circled"></i> - </span><span class="step size-32"> - <i class="icon ion-minus-circled"></i> - </span><span class="step size-48"> - <i class="icon ion-minus-circled"></i> - </span><span class="step size-64"> - <i class="icon ion-minus-circled"></i> - </span><span class="step size-96"> - <i class="icon ion-minus-circled"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-minus-circled" /> - - <label>Selectable:</label> - <span class="ion">&#xf207;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf207;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f207" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-minus-round"></i> - </span><span class="step size-14"> - <i class="icon ion-minus-round"></i> - </span><span class="step size-16"> - <i class="icon ion-minus-round"></i> - </span><span class="step size-18"> - <i class="icon ion-minus-round"></i> - </span><span class="step size-21"> - <i class="icon ion-minus-round"></i> - </span><span class="step size-24"> - <i class="icon ion-minus-round"></i> - </span><span class="step size-32"> - <i class="icon ion-minus-round"></i> - </span><span class="step size-48"> - <i class="icon ion-minus-round"></i> - </span><span class="step size-64"> - <i class="icon ion-minus-round"></i> - </span><span class="step size-96"> - <i class="icon ion-minus-round"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-minus-round" /> - - <label>Selectable:</label> - <span class="ion">&#xf208;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf208;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f208" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-model-s"></i> - </span><span class="step size-14"> - <i class="icon ion-model-s"></i> - </span><span class="step size-16"> - <i class="icon ion-model-s"></i> - </span><span class="step size-18"> - <i class="icon ion-model-s"></i> - </span><span class="step size-21"> - <i class="icon ion-model-s"></i> - </span><span class="step size-24"> - <i class="icon ion-model-s"></i> - </span><span class="step size-32"> - <i class="icon ion-model-s"></i> - </span><span class="step size-48"> - <i class="icon ion-model-s"></i> - </span><span class="step size-64"> - <i class="icon ion-model-s"></i> - </span><span class="step size-96"> - <i class="icon ion-model-s"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-model-s" /> - - <label>Selectable:</label> - <span class="ion">&#xf2c1;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf2c1;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f2c1" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-monitor"></i> - </span><span class="step size-14"> - <i class="icon ion-monitor"></i> - </span><span class="step size-16"> - <i class="icon ion-monitor"></i> - </span><span class="step size-18"> - <i class="icon ion-monitor"></i> - </span><span class="step size-21"> - <i class="icon ion-monitor"></i> - </span><span class="step size-24"> - <i class="icon ion-monitor"></i> - </span><span class="step size-32"> - <i class="icon ion-monitor"></i> - </span><span class="step size-48"> - <i class="icon ion-monitor"></i> - </span><span class="step size-64"> - <i class="icon ion-monitor"></i> - </span><span class="step size-96"> - <i class="icon ion-monitor"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-monitor" /> - - <label>Selectable:</label> - <span class="ion">&#xf20a;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf20a;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f20a" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-more"></i> - </span><span class="step size-14"> - <i class="icon ion-more"></i> - </span><span class="step size-16"> - <i class="icon ion-more"></i> - </span><span class="step size-18"> - <i class="icon ion-more"></i> - </span><span class="step size-21"> - <i class="icon ion-more"></i> - </span><span class="step size-24"> - <i class="icon ion-more"></i> - </span><span class="step size-32"> - <i class="icon ion-more"></i> - </span><span class="step size-48"> - <i class="icon ion-more"></i> - </span><span class="step size-64"> - <i class="icon ion-more"></i> - </span><span class="step size-96"> - <i class="icon ion-more"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-more" /> - - <label>Selectable:</label> - <span class="ion">&#xf20b;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf20b;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f20b" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-mouse"></i> - </span><span class="step size-14"> - <i class="icon ion-mouse"></i> - </span><span class="step size-16"> - <i class="icon ion-mouse"></i> - </span><span class="step size-18"> - <i class="icon ion-mouse"></i> - </span><span class="step size-21"> - <i class="icon ion-mouse"></i> - </span><span class="step size-24"> - <i class="icon ion-mouse"></i> - </span><span class="step size-32"> - <i class="icon ion-mouse"></i> - </span><span class="step size-48"> - <i class="icon ion-mouse"></i> - </span><span class="step size-64"> - <i class="icon ion-mouse"></i> - </span><span class="step size-96"> - <i class="icon ion-mouse"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-mouse" /> - - <label>Selectable:</label> - <span class="ion">&#xf340;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf340;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f340" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-music-note"></i> - </span><span class="step size-14"> - <i class="icon ion-music-note"></i> - </span><span class="step size-16"> - <i class="icon ion-music-note"></i> - </span><span class="step size-18"> - <i class="icon ion-music-note"></i> - </span><span class="step size-21"> - <i class="icon ion-music-note"></i> - </span><span class="step size-24"> - <i class="icon ion-music-note"></i> - </span><span class="step size-32"> - <i class="icon ion-music-note"></i> - </span><span class="step size-48"> - <i class="icon ion-music-note"></i> - </span><span class="step size-64"> - <i class="icon ion-music-note"></i> - </span><span class="step size-96"> - <i class="icon ion-music-note"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-music-note" /> - - <label>Selectable:</label> - <span class="ion">&#xf20c;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf20c;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f20c" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-navicon"></i> - </span><span class="step size-14"> - <i class="icon ion-navicon"></i> - </span><span class="step size-16"> - <i class="icon ion-navicon"></i> - </span><span class="step size-18"> - <i class="icon ion-navicon"></i> - </span><span class="step size-21"> - <i class="icon ion-navicon"></i> - </span><span class="step size-24"> - <i class="icon ion-navicon"></i> - </span><span class="step size-32"> - <i class="icon ion-navicon"></i> - </span><span class="step size-48"> - <i class="icon ion-navicon"></i> - </span><span class="step size-64"> - <i class="icon ion-navicon"></i> - </span><span class="step size-96"> - <i class="icon ion-navicon"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-navicon" /> - - <label>Selectable:</label> - <span class="ion">&#xf20e;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf20e;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f20e" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-navicon-round"></i> - </span><span class="step size-14"> - <i class="icon ion-navicon-round"></i> - </span><span class="step size-16"> - <i class="icon ion-navicon-round"></i> - </span><span class="step size-18"> - <i class="icon ion-navicon-round"></i> - </span><span class="step size-21"> - <i class="icon ion-navicon-round"></i> - </span><span class="step size-24"> - <i class="icon ion-navicon-round"></i> - </span><span class="step size-32"> - <i class="icon ion-navicon-round"></i> - </span><span class="step size-48"> - <i class="icon ion-navicon-round"></i> - </span><span class="step size-64"> - <i class="icon ion-navicon-round"></i> - </span><span class="step size-96"> - <i class="icon ion-navicon-round"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-navicon-round" /> - - <label>Selectable:</label> - <span class="ion">&#xf20d;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf20d;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f20d" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-navigate"></i> - </span><span class="step size-14"> - <i class="icon ion-navigate"></i> - </span><span class="step size-16"> - <i class="icon ion-navigate"></i> - </span><span class="step size-18"> - <i class="icon ion-navigate"></i> - </span><span class="step size-21"> - <i class="icon ion-navigate"></i> - </span><span class="step size-24"> - <i class="icon ion-navigate"></i> - </span><span class="step size-32"> - <i class="icon ion-navigate"></i> - </span><span class="step size-48"> - <i class="icon ion-navigate"></i> - </span><span class="step size-64"> - <i class="icon ion-navigate"></i> - </span><span class="step size-96"> - <i class="icon ion-navigate"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-navigate" /> - - <label>Selectable:</label> - <span class="ion">&#xf2a3;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf2a3;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f2a3" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-network"></i> - </span><span class="step size-14"> - <i class="icon ion-network"></i> - </span><span class="step size-16"> - <i class="icon ion-network"></i> - </span><span class="step size-18"> - <i class="icon ion-network"></i> - </span><span class="step size-21"> - <i class="icon ion-network"></i> - </span><span class="step size-24"> - <i class="icon ion-network"></i> - </span><span class="step size-32"> - <i class="icon ion-network"></i> - </span><span class="step size-48"> - <i class="icon ion-network"></i> - </span><span class="step size-64"> - <i class="icon ion-network"></i> - </span><span class="step size-96"> - <i class="icon ion-network"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-network" /> - - <label>Selectable:</label> - <span class="ion">&#xf341;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf341;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f341" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-no-smoking"></i> - </span><span class="step size-14"> - <i class="icon ion-no-smoking"></i> - </span><span class="step size-16"> - <i class="icon ion-no-smoking"></i> - </span><span class="step size-18"> - <i class="icon ion-no-smoking"></i> - </span><span class="step size-21"> - <i class="icon ion-no-smoking"></i> - </span><span class="step size-24"> - <i class="icon ion-no-smoking"></i> - </span><span class="step size-32"> - <i class="icon ion-no-smoking"></i> - </span><span class="step size-48"> - <i class="icon ion-no-smoking"></i> - </span><span class="step size-64"> - <i class="icon ion-no-smoking"></i> - </span><span class="step size-96"> - <i class="icon ion-no-smoking"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-no-smoking" /> - - <label>Selectable:</label> - <span class="ion">&#xf2c2;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf2c2;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f2c2" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-nuclear"></i> - </span><span class="step size-14"> - <i class="icon ion-nuclear"></i> - </span><span class="step size-16"> - <i class="icon ion-nuclear"></i> - </span><span class="step size-18"> - <i class="icon ion-nuclear"></i> - </span><span class="step size-21"> - <i class="icon ion-nuclear"></i> - </span><span class="step size-24"> - <i class="icon ion-nuclear"></i> - </span><span class="step size-32"> - <i class="icon ion-nuclear"></i> - </span><span class="step size-48"> - <i class="icon ion-nuclear"></i> - </span><span class="step size-64"> - <i class="icon ion-nuclear"></i> - </span><span class="step size-96"> - <i class="icon ion-nuclear"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-nuclear" /> - - <label>Selectable:</label> - <span class="ion">&#xf2a4;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf2a4;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f2a4" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-outlet"></i> - </span><span class="step size-14"> - <i class="icon ion-outlet"></i> - </span><span class="step size-16"> - <i class="icon ion-outlet"></i> - </span><span class="step size-18"> - <i class="icon ion-outlet"></i> - </span><span class="step size-21"> - <i class="icon ion-outlet"></i> - </span><span class="step size-24"> - <i class="icon ion-outlet"></i> - </span><span class="step size-32"> - <i class="icon ion-outlet"></i> - </span><span class="step size-48"> - <i class="icon ion-outlet"></i> - </span><span class="step size-64"> - <i class="icon ion-outlet"></i> - </span><span class="step size-96"> - <i class="icon ion-outlet"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-outlet" /> - - <label>Selectable:</label> - <span class="ion">&#xf342;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf342;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f342" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-paintbrush"></i> - </span><span class="step size-14"> - <i class="icon ion-paintbrush"></i> - </span><span class="step size-16"> - <i class="icon ion-paintbrush"></i> - </span><span class="step size-18"> - <i class="icon ion-paintbrush"></i> - </span><span class="step size-21"> - <i class="icon ion-paintbrush"></i> - </span><span class="step size-24"> - <i class="icon ion-paintbrush"></i> - </span><span class="step size-32"> - <i class="icon ion-paintbrush"></i> - </span><span class="step size-48"> - <i class="icon ion-paintbrush"></i> - </span><span class="step size-64"> - <i class="icon ion-paintbrush"></i> - </span><span class="step size-96"> - <i class="icon ion-paintbrush"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-paintbrush" /> - - <label>Selectable:</label> - <span class="ion">&#xf4d5;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf4d5;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f4d5" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-paintbucket"></i> - </span><span class="step size-14"> - <i class="icon ion-paintbucket"></i> - </span><span class="step size-16"> - <i class="icon ion-paintbucket"></i> - </span><span class="step size-18"> - <i class="icon ion-paintbucket"></i> - </span><span class="step size-21"> - <i class="icon ion-paintbucket"></i> - </span><span class="step size-24"> - <i class="icon ion-paintbucket"></i> - </span><span class="step size-32"> - <i class="icon ion-paintbucket"></i> - </span><span class="step size-48"> - <i class="icon ion-paintbucket"></i> - </span><span class="step size-64"> - <i class="icon ion-paintbucket"></i> - </span><span class="step size-96"> - <i class="icon ion-paintbucket"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-paintbucket" /> - - <label>Selectable:</label> - <span class="ion">&#xf4d6;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf4d6;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f4d6" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-paper-airplane"></i> - </span><span class="step size-14"> - <i class="icon ion-paper-airplane"></i> - </span><span class="step size-16"> - <i class="icon ion-paper-airplane"></i> - </span><span class="step size-18"> - <i class="icon ion-paper-airplane"></i> - </span><span class="step size-21"> - <i class="icon ion-paper-airplane"></i> - </span><span class="step size-24"> - <i class="icon ion-paper-airplane"></i> - </span><span class="step size-32"> - <i class="icon ion-paper-airplane"></i> - </span><span class="step size-48"> - <i class="icon ion-paper-airplane"></i> - </span><span class="step size-64"> - <i class="icon ion-paper-airplane"></i> - </span><span class="step size-96"> - <i class="icon ion-paper-airplane"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-paper-airplane" /> - - <label>Selectable:</label> - <span class="ion">&#xf2c3;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf2c3;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f2c3" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-paperclip"></i> - </span><span class="step size-14"> - <i class="icon ion-paperclip"></i> - </span><span class="step size-16"> - <i class="icon ion-paperclip"></i> - </span><span class="step size-18"> - <i class="icon ion-paperclip"></i> - </span><span class="step size-21"> - <i class="icon ion-paperclip"></i> - </span><span class="step size-24"> - <i class="icon ion-paperclip"></i> - </span><span class="step size-32"> - <i class="icon ion-paperclip"></i> - </span><span class="step size-48"> - <i class="icon ion-paperclip"></i> - </span><span class="step size-64"> - <i class="icon ion-paperclip"></i> - </span><span class="step size-96"> - <i class="icon ion-paperclip"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-paperclip" /> - - <label>Selectable:</label> - <span class="ion">&#xf20f;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf20f;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f20f" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-pause"></i> - </span><span class="step size-14"> - <i class="icon ion-pause"></i> - </span><span class="step size-16"> - <i class="icon ion-pause"></i> - </span><span class="step size-18"> - <i class="icon ion-pause"></i> - </span><span class="step size-21"> - <i class="icon ion-pause"></i> - </span><span class="step size-24"> - <i class="icon ion-pause"></i> - </span><span class="step size-32"> - <i class="icon ion-pause"></i> - </span><span class="step size-48"> - <i class="icon ion-pause"></i> - </span><span class="step size-64"> - <i class="icon ion-pause"></i> - </span><span class="step size-96"> - <i class="icon ion-pause"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-pause" /> - - <label>Selectable:</label> - <span class="ion">&#xf210;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf210;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f210" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-person"></i> - </span><span class="step size-14"> - <i class="icon ion-person"></i> - </span><span class="step size-16"> - <i class="icon ion-person"></i> - </span><span class="step size-18"> - <i class="icon ion-person"></i> - </span><span class="step size-21"> - <i class="icon ion-person"></i> - </span><span class="step size-24"> - <i class="icon ion-person"></i> - </span><span class="step size-32"> - <i class="icon ion-person"></i> - </span><span class="step size-48"> - <i class="icon ion-person"></i> - </span><span class="step size-64"> - <i class="icon ion-person"></i> - </span><span class="step size-96"> - <i class="icon ion-person"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-person" /> - - <label>Selectable:</label> - <span class="ion">&#xf213;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf213;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f213" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-person-add"></i> - </span><span class="step size-14"> - <i class="icon ion-person-add"></i> - </span><span class="step size-16"> - <i class="icon ion-person-add"></i> - </span><span class="step size-18"> - <i class="icon ion-person-add"></i> - </span><span class="step size-21"> - <i class="icon ion-person-add"></i> - </span><span class="step size-24"> - <i class="icon ion-person-add"></i> - </span><span class="step size-32"> - <i class="icon ion-person-add"></i> - </span><span class="step size-48"> - <i class="icon ion-person-add"></i> - </span><span class="step size-64"> - <i class="icon ion-person-add"></i> - </span><span class="step size-96"> - <i class="icon ion-person-add"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-person-add" /> - - <label>Selectable:</label> - <span class="ion">&#xf211;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf211;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f211" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-person-stalker"></i> - </span><span class="step size-14"> - <i class="icon ion-person-stalker"></i> - </span><span class="step size-16"> - <i class="icon ion-person-stalker"></i> - </span><span class="step size-18"> - <i class="icon ion-person-stalker"></i> - </span><span class="step size-21"> - <i class="icon ion-person-stalker"></i> - </span><span class="step size-24"> - <i class="icon ion-person-stalker"></i> - </span><span class="step size-32"> - <i class="icon ion-person-stalker"></i> - </span><span class="step size-48"> - <i class="icon ion-person-stalker"></i> - </span><span class="step size-64"> - <i class="icon ion-person-stalker"></i> - </span><span class="step size-96"> - <i class="icon ion-person-stalker"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-person-stalker" /> - - <label>Selectable:</label> - <span class="ion">&#xf212;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf212;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f212" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-pie-graph"></i> - </span><span class="step size-14"> - <i class="icon ion-pie-graph"></i> - </span><span class="step size-16"> - <i class="icon ion-pie-graph"></i> - </span><span class="step size-18"> - <i class="icon ion-pie-graph"></i> - </span><span class="step size-21"> - <i class="icon ion-pie-graph"></i> - </span><span class="step size-24"> - <i class="icon ion-pie-graph"></i> - </span><span class="step size-32"> - <i class="icon ion-pie-graph"></i> - </span><span class="step size-48"> - <i class="icon ion-pie-graph"></i> - </span><span class="step size-64"> - <i class="icon ion-pie-graph"></i> - </span><span class="step size-96"> - <i class="icon ion-pie-graph"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-pie-graph" /> - - <label>Selectable:</label> - <span class="ion">&#xf2a5;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf2a5;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f2a5" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-pin"></i> - </span><span class="step size-14"> - <i class="icon ion-pin"></i> - </span><span class="step size-16"> - <i class="icon ion-pin"></i> - </span><span class="step size-18"> - <i class="icon ion-pin"></i> - </span><span class="step size-21"> - <i class="icon ion-pin"></i> - </span><span class="step size-24"> - <i class="icon ion-pin"></i> - </span><span class="step size-32"> - <i class="icon ion-pin"></i> - </span><span class="step size-48"> - <i class="icon ion-pin"></i> - </span><span class="step size-64"> - <i class="icon ion-pin"></i> - </span><span class="step size-96"> - <i class="icon ion-pin"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-pin" /> - - <label>Selectable:</label> - <span class="ion">&#xf2a6;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf2a6;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f2a6" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-pinpoint"></i> - </span><span class="step size-14"> - <i class="icon ion-pinpoint"></i> - </span><span class="step size-16"> - <i class="icon ion-pinpoint"></i> - </span><span class="step size-18"> - <i class="icon ion-pinpoint"></i> - </span><span class="step size-21"> - <i class="icon ion-pinpoint"></i> - </span><span class="step size-24"> - <i class="icon ion-pinpoint"></i> - </span><span class="step size-32"> - <i class="icon ion-pinpoint"></i> - </span><span class="step size-48"> - <i class="icon ion-pinpoint"></i> - </span><span class="step size-64"> - <i class="icon ion-pinpoint"></i> - </span><span class="step size-96"> - <i class="icon ion-pinpoint"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-pinpoint" /> - - <label>Selectable:</label> - <span class="ion">&#xf2a7;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf2a7;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f2a7" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-pizza"></i> - </span><span class="step size-14"> - <i class="icon ion-pizza"></i> - </span><span class="step size-16"> - <i class="icon ion-pizza"></i> - </span><span class="step size-18"> - <i class="icon ion-pizza"></i> - </span><span class="step size-21"> - <i class="icon ion-pizza"></i> - </span><span class="step size-24"> - <i class="icon ion-pizza"></i> - </span><span class="step size-32"> - <i class="icon ion-pizza"></i> - </span><span class="step size-48"> - <i class="icon ion-pizza"></i> - </span><span class="step size-64"> - <i class="icon ion-pizza"></i> - </span><span class="step size-96"> - <i class="icon ion-pizza"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-pizza" /> - - <label>Selectable:</label> - <span class="ion">&#xf2a8;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf2a8;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f2a8" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-plane"></i> - </span><span class="step size-14"> - <i class="icon ion-plane"></i> - </span><span class="step size-16"> - <i class="icon ion-plane"></i> - </span><span class="step size-18"> - <i class="icon ion-plane"></i> - </span><span class="step size-21"> - <i class="icon ion-plane"></i> - </span><span class="step size-24"> - <i class="icon ion-plane"></i> - </span><span class="step size-32"> - <i class="icon ion-plane"></i> - </span><span class="step size-48"> - <i class="icon ion-plane"></i> - </span><span class="step size-64"> - <i class="icon ion-plane"></i> - </span><span class="step size-96"> - <i class="icon ion-plane"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-plane" /> - - <label>Selectable:</label> - <span class="ion">&#xf214;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf214;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f214" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-planet"></i> - </span><span class="step size-14"> - <i class="icon ion-planet"></i> - </span><span class="step size-16"> - <i class="icon ion-planet"></i> - </span><span class="step size-18"> - <i class="icon ion-planet"></i> - </span><span class="step size-21"> - <i class="icon ion-planet"></i> - </span><span class="step size-24"> - <i class="icon ion-planet"></i> - </span><span class="step size-32"> - <i class="icon ion-planet"></i> - </span><span class="step size-48"> - <i class="icon ion-planet"></i> - </span><span class="step size-64"> - <i class="icon ion-planet"></i> - </span><span class="step size-96"> - <i class="icon ion-planet"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-planet" /> - - <label>Selectable:</label> - <span class="ion">&#xf343;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf343;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f343" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-play"></i> - </span><span class="step size-14"> - <i class="icon ion-play"></i> - </span><span class="step size-16"> - <i class="icon ion-play"></i> - </span><span class="step size-18"> - <i class="icon ion-play"></i> - </span><span class="step size-21"> - <i class="icon ion-play"></i> - </span><span class="step size-24"> - <i class="icon ion-play"></i> - </span><span class="step size-32"> - <i class="icon ion-play"></i> - </span><span class="step size-48"> - <i class="icon ion-play"></i> - </span><span class="step size-64"> - <i class="icon ion-play"></i> - </span><span class="step size-96"> - <i class="icon ion-play"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-play" /> - - <label>Selectable:</label> - <span class="ion">&#xf215;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf215;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f215" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-playstation"></i> - </span><span class="step size-14"> - <i class="icon ion-playstation"></i> - </span><span class="step size-16"> - <i class="icon ion-playstation"></i> - </span><span class="step size-18"> - <i class="icon ion-playstation"></i> - </span><span class="step size-21"> - <i class="icon ion-playstation"></i> - </span><span class="step size-24"> - <i class="icon ion-playstation"></i> - </span><span class="step size-32"> - <i class="icon ion-playstation"></i> - </span><span class="step size-48"> - <i class="icon ion-playstation"></i> - </span><span class="step size-64"> - <i class="icon ion-playstation"></i> - </span><span class="step size-96"> - <i class="icon ion-playstation"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-playstation" /> - - <label>Selectable:</label> - <span class="ion">&#xf30a;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf30a;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f30a" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-plus"></i> - </span><span class="step size-14"> - <i class="icon ion-plus"></i> - </span><span class="step size-16"> - <i class="icon ion-plus"></i> - </span><span class="step size-18"> - <i class="icon ion-plus"></i> - </span><span class="step size-21"> - <i class="icon ion-plus"></i> - </span><span class="step size-24"> - <i class="icon ion-plus"></i> - </span><span class="step size-32"> - <i class="icon ion-plus"></i> - </span><span class="step size-48"> - <i class="icon ion-plus"></i> - </span><span class="step size-64"> - <i class="icon ion-plus"></i> - </span><span class="step size-96"> - <i class="icon ion-plus"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-plus" /> - - <label>Selectable:</label> - <span class="ion">&#xf218;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf218;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f218" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-plus-circled"></i> - </span><span class="step size-14"> - <i class="icon ion-plus-circled"></i> - </span><span class="step size-16"> - <i class="icon ion-plus-circled"></i> - </span><span class="step size-18"> - <i class="icon ion-plus-circled"></i> - </span><span class="step size-21"> - <i class="icon ion-plus-circled"></i> - </span><span class="step size-24"> - <i class="icon ion-plus-circled"></i> - </span><span class="step size-32"> - <i class="icon ion-plus-circled"></i> - </span><span class="step size-48"> - <i class="icon ion-plus-circled"></i> - </span><span class="step size-64"> - <i class="icon ion-plus-circled"></i> - </span><span class="step size-96"> - <i class="icon ion-plus-circled"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-plus-circled" /> - - <label>Selectable:</label> - <span class="ion">&#xf216;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf216;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f216" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-plus-round"></i> - </span><span class="step size-14"> - <i class="icon ion-plus-round"></i> - </span><span class="step size-16"> - <i class="icon ion-plus-round"></i> - </span><span class="step size-18"> - <i class="icon ion-plus-round"></i> - </span><span class="step size-21"> - <i class="icon ion-plus-round"></i> - </span><span class="step size-24"> - <i class="icon ion-plus-round"></i> - </span><span class="step size-32"> - <i class="icon ion-plus-round"></i> - </span><span class="step size-48"> - <i class="icon ion-plus-round"></i> - </span><span class="step size-64"> - <i class="icon ion-plus-round"></i> - </span><span class="step size-96"> - <i class="icon ion-plus-round"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-plus-round" /> - - <label>Selectable:</label> - <span class="ion">&#xf217;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf217;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f217" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-podium"></i> - </span><span class="step size-14"> - <i class="icon ion-podium"></i> - </span><span class="step size-16"> - <i class="icon ion-podium"></i> - </span><span class="step size-18"> - <i class="icon ion-podium"></i> - </span><span class="step size-21"> - <i class="icon ion-podium"></i> - </span><span class="step size-24"> - <i class="icon ion-podium"></i> - </span><span class="step size-32"> - <i class="icon ion-podium"></i> - </span><span class="step size-48"> - <i class="icon ion-podium"></i> - </span><span class="step size-64"> - <i class="icon ion-podium"></i> - </span><span class="step size-96"> - <i class="icon ion-podium"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-podium" /> - - <label>Selectable:</label> - <span class="ion">&#xf344;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf344;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f344" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-pound"></i> - </span><span class="step size-14"> - <i class="icon ion-pound"></i> - </span><span class="step size-16"> - <i class="icon ion-pound"></i> - </span><span class="step size-18"> - <i class="icon ion-pound"></i> - </span><span class="step size-21"> - <i class="icon ion-pound"></i> - </span><span class="step size-24"> - <i class="icon ion-pound"></i> - </span><span class="step size-32"> - <i class="icon ion-pound"></i> - </span><span class="step size-48"> - <i class="icon ion-pound"></i> - </span><span class="step size-64"> - <i class="icon ion-pound"></i> - </span><span class="step size-96"> - <i class="icon ion-pound"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-pound" /> - - <label>Selectable:</label> - <span class="ion">&#xf219;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf219;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f219" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-power"></i> - </span><span class="step size-14"> - <i class="icon ion-power"></i> - </span><span class="step size-16"> - <i class="icon ion-power"></i> - </span><span class="step size-18"> - <i class="icon ion-power"></i> - </span><span class="step size-21"> - <i class="icon ion-power"></i> - </span><span class="step size-24"> - <i class="icon ion-power"></i> - </span><span class="step size-32"> - <i class="icon ion-power"></i> - </span><span class="step size-48"> - <i class="icon ion-power"></i> - </span><span class="step size-64"> - <i class="icon ion-power"></i> - </span><span class="step size-96"> - <i class="icon ion-power"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-power" /> - - <label>Selectable:</label> - <span class="ion">&#xf2a9;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf2a9;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f2a9" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-pricetag"></i> - </span><span class="step size-14"> - <i class="icon ion-pricetag"></i> - </span><span class="step size-16"> - <i class="icon ion-pricetag"></i> - </span><span class="step size-18"> - <i class="icon ion-pricetag"></i> - </span><span class="step size-21"> - <i class="icon ion-pricetag"></i> - </span><span class="step size-24"> - <i class="icon ion-pricetag"></i> - </span><span class="step size-32"> - <i class="icon ion-pricetag"></i> - </span><span class="step size-48"> - <i class="icon ion-pricetag"></i> - </span><span class="step size-64"> - <i class="icon ion-pricetag"></i> - </span><span class="step size-96"> - <i class="icon ion-pricetag"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-pricetag" /> - - <label>Selectable:</label> - <span class="ion">&#xf2aa;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf2aa;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f2aa" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-pricetags"></i> - </span><span class="step size-14"> - <i class="icon ion-pricetags"></i> - </span><span class="step size-16"> - <i class="icon ion-pricetags"></i> - </span><span class="step size-18"> - <i class="icon ion-pricetags"></i> - </span><span class="step size-21"> - <i class="icon ion-pricetags"></i> - </span><span class="step size-24"> - <i class="icon ion-pricetags"></i> - </span><span class="step size-32"> - <i class="icon ion-pricetags"></i> - </span><span class="step size-48"> - <i class="icon ion-pricetags"></i> - </span><span class="step size-64"> - <i class="icon ion-pricetags"></i> - </span><span class="step size-96"> - <i class="icon ion-pricetags"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-pricetags" /> - - <label>Selectable:</label> - <span class="ion">&#xf2ab;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf2ab;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f2ab" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-printer"></i> - </span><span class="step size-14"> - <i class="icon ion-printer"></i> - </span><span class="step size-16"> - <i class="icon ion-printer"></i> - </span><span class="step size-18"> - <i class="icon ion-printer"></i> - </span><span class="step size-21"> - <i class="icon ion-printer"></i> - </span><span class="step size-24"> - <i class="icon ion-printer"></i> - </span><span class="step size-32"> - <i class="icon ion-printer"></i> - </span><span class="step size-48"> - <i class="icon ion-printer"></i> - </span><span class="step size-64"> - <i class="icon ion-printer"></i> - </span><span class="step size-96"> - <i class="icon ion-printer"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-printer" /> - - <label>Selectable:</label> - <span class="ion">&#xf21a;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf21a;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f21a" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-pull-request"></i> - </span><span class="step size-14"> - <i class="icon ion-pull-request"></i> - </span><span class="step size-16"> - <i class="icon ion-pull-request"></i> - </span><span class="step size-18"> - <i class="icon ion-pull-request"></i> - </span><span class="step size-21"> - <i class="icon ion-pull-request"></i> - </span><span class="step size-24"> - <i class="icon ion-pull-request"></i> - </span><span class="step size-32"> - <i class="icon ion-pull-request"></i> - </span><span class="step size-48"> - <i class="icon ion-pull-request"></i> - </span><span class="step size-64"> - <i class="icon ion-pull-request"></i> - </span><span class="step size-96"> - <i class="icon ion-pull-request"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-pull-request" /> - - <label>Selectable:</label> - <span class="ion">&#xf345;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf345;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f345" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-qr-scanner"></i> - </span><span class="step size-14"> - <i class="icon ion-qr-scanner"></i> - </span><span class="step size-16"> - <i class="icon ion-qr-scanner"></i> - </span><span class="step size-18"> - <i class="icon ion-qr-scanner"></i> - </span><span class="step size-21"> - <i class="icon ion-qr-scanner"></i> - </span><span class="step size-24"> - <i class="icon ion-qr-scanner"></i> - </span><span class="step size-32"> - <i class="icon ion-qr-scanner"></i> - </span><span class="step size-48"> - <i class="icon ion-qr-scanner"></i> - </span><span class="step size-64"> - <i class="icon ion-qr-scanner"></i> - </span><span class="step size-96"> - <i class="icon ion-qr-scanner"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-qr-scanner" /> - - <label>Selectable:</label> - <span class="ion">&#xf346;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf346;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f346" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-quote"></i> - </span><span class="step size-14"> - <i class="icon ion-quote"></i> - </span><span class="step size-16"> - <i class="icon ion-quote"></i> - </span><span class="step size-18"> - <i class="icon ion-quote"></i> - </span><span class="step size-21"> - <i class="icon ion-quote"></i> - </span><span class="step size-24"> - <i class="icon ion-quote"></i> - </span><span class="step size-32"> - <i class="icon ion-quote"></i> - </span><span class="step size-48"> - <i class="icon ion-quote"></i> - </span><span class="step size-64"> - <i class="icon ion-quote"></i> - </span><span class="step size-96"> - <i class="icon ion-quote"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-quote" /> - - <label>Selectable:</label> - <span class="ion">&#xf347;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf347;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f347" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-radio-waves"></i> - </span><span class="step size-14"> - <i class="icon ion-radio-waves"></i> - </span><span class="step size-16"> - <i class="icon ion-radio-waves"></i> - </span><span class="step size-18"> - <i class="icon ion-radio-waves"></i> - </span><span class="step size-21"> - <i class="icon ion-radio-waves"></i> - </span><span class="step size-24"> - <i class="icon ion-radio-waves"></i> - </span><span class="step size-32"> - <i class="icon ion-radio-waves"></i> - </span><span class="step size-48"> - <i class="icon ion-radio-waves"></i> - </span><span class="step size-64"> - <i class="icon ion-radio-waves"></i> - </span><span class="step size-96"> - <i class="icon ion-radio-waves"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-radio-waves" /> - - <label>Selectable:</label> - <span class="ion">&#xf2ac;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf2ac;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f2ac" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-record"></i> - </span><span class="step size-14"> - <i class="icon ion-record"></i> - </span><span class="step size-16"> - <i class="icon ion-record"></i> - </span><span class="step size-18"> - <i class="icon ion-record"></i> - </span><span class="step size-21"> - <i class="icon ion-record"></i> - </span><span class="step size-24"> - <i class="icon ion-record"></i> - </span><span class="step size-32"> - <i class="icon ion-record"></i> - </span><span class="step size-48"> - <i class="icon ion-record"></i> - </span><span class="step size-64"> - <i class="icon ion-record"></i> - </span><span class="step size-96"> - <i class="icon ion-record"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-record" /> - - <label>Selectable:</label> - <span class="ion">&#xf21b;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf21b;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f21b" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-refresh"></i> - </span><span class="step size-14"> - <i class="icon ion-refresh"></i> - </span><span class="step size-16"> - <i class="icon ion-refresh"></i> - </span><span class="step size-18"> - <i class="icon ion-refresh"></i> - </span><span class="step size-21"> - <i class="icon ion-refresh"></i> - </span><span class="step size-24"> - <i class="icon ion-refresh"></i> - </span><span class="step size-32"> - <i class="icon ion-refresh"></i> - </span><span class="step size-48"> - <i class="icon ion-refresh"></i> - </span><span class="step size-64"> - <i class="icon ion-refresh"></i> - </span><span class="step size-96"> - <i class="icon ion-refresh"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-refresh" /> - - <label>Selectable:</label> - <span class="ion">&#xf21c;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf21c;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f21c" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-reply"></i> - </span><span class="step size-14"> - <i class="icon ion-reply"></i> - </span><span class="step size-16"> - <i class="icon ion-reply"></i> - </span><span class="step size-18"> - <i class="icon ion-reply"></i> - </span><span class="step size-21"> - <i class="icon ion-reply"></i> - </span><span class="step size-24"> - <i class="icon ion-reply"></i> - </span><span class="step size-32"> - <i class="icon ion-reply"></i> - </span><span class="step size-48"> - <i class="icon ion-reply"></i> - </span><span class="step size-64"> - <i class="icon ion-reply"></i> - </span><span class="step size-96"> - <i class="icon ion-reply"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-reply" /> - - <label>Selectable:</label> - <span class="ion">&#xf21e;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf21e;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f21e" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-reply-all"></i> - </span><span class="step size-14"> - <i class="icon ion-reply-all"></i> - </span><span class="step size-16"> - <i class="icon ion-reply-all"></i> - </span><span class="step size-18"> - <i class="icon ion-reply-all"></i> - </span><span class="step size-21"> - <i class="icon ion-reply-all"></i> - </span><span class="step size-24"> - <i class="icon ion-reply-all"></i> - </span><span class="step size-32"> - <i class="icon ion-reply-all"></i> - </span><span class="step size-48"> - <i class="icon ion-reply-all"></i> - </span><span class="step size-64"> - <i class="icon ion-reply-all"></i> - </span><span class="step size-96"> - <i class="icon ion-reply-all"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-reply-all" /> - - <label>Selectable:</label> - <span class="ion">&#xf21d;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf21d;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f21d" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-ribbon-a"></i> - </span><span class="step size-14"> - <i class="icon ion-ribbon-a"></i> - </span><span class="step size-16"> - <i class="icon ion-ribbon-a"></i> - </span><span class="step size-18"> - <i class="icon ion-ribbon-a"></i> - </span><span class="step size-21"> - <i class="icon ion-ribbon-a"></i> - </span><span class="step size-24"> - <i class="icon ion-ribbon-a"></i> - </span><span class="step size-32"> - <i class="icon ion-ribbon-a"></i> - </span><span class="step size-48"> - <i class="icon ion-ribbon-a"></i> - </span><span class="step size-64"> - <i class="icon ion-ribbon-a"></i> - </span><span class="step size-96"> - <i class="icon ion-ribbon-a"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-ribbon-a" /> - - <label>Selectable:</label> - <span class="ion">&#xf348;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf348;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f348" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-ribbon-b"></i> - </span><span class="step size-14"> - <i class="icon ion-ribbon-b"></i> - </span><span class="step size-16"> - <i class="icon ion-ribbon-b"></i> - </span><span class="step size-18"> - <i class="icon ion-ribbon-b"></i> - </span><span class="step size-21"> - <i class="icon ion-ribbon-b"></i> - </span><span class="step size-24"> - <i class="icon ion-ribbon-b"></i> - </span><span class="step size-32"> - <i class="icon ion-ribbon-b"></i> - </span><span class="step size-48"> - <i class="icon ion-ribbon-b"></i> - </span><span class="step size-64"> - <i class="icon ion-ribbon-b"></i> - </span><span class="step size-96"> - <i class="icon ion-ribbon-b"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-ribbon-b" /> - - <label>Selectable:</label> - <span class="ion">&#xf349;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf349;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f349" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-sad"></i> - </span><span class="step size-14"> - <i class="icon ion-sad"></i> - </span><span class="step size-16"> - <i class="icon ion-sad"></i> - </span><span class="step size-18"> - <i class="icon ion-sad"></i> - </span><span class="step size-21"> - <i class="icon ion-sad"></i> - </span><span class="step size-24"> - <i class="icon ion-sad"></i> - </span><span class="step size-32"> - <i class="icon ion-sad"></i> - </span><span class="step size-48"> - <i class="icon ion-sad"></i> - </span><span class="step size-64"> - <i class="icon ion-sad"></i> - </span><span class="step size-96"> - <i class="icon ion-sad"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-sad" /> - - <label>Selectable:</label> - <span class="ion">&#xf34a;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf34a;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f34a" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-sad-outline"></i> - </span><span class="step size-14"> - <i class="icon ion-sad-outline"></i> - </span><span class="step size-16"> - <i class="icon ion-sad-outline"></i> - </span><span class="step size-18"> - <i class="icon ion-sad-outline"></i> - </span><span class="step size-21"> - <i class="icon ion-sad-outline"></i> - </span><span class="step size-24"> - <i class="icon ion-sad-outline"></i> - </span><span class="step size-32"> - <i class="icon ion-sad-outline"></i> - </span><span class="step size-48"> - <i class="icon ion-sad-outline"></i> - </span><span class="step size-64"> - <i class="icon ion-sad-outline"></i> - </span><span class="step size-96"> - <i class="icon ion-sad-outline"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-sad-outline" /> - - <label>Selectable:</label> - <span class="ion">&#xf4d7;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf4d7;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f4d7" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-scissors"></i> - </span><span class="step size-14"> - <i class="icon ion-scissors"></i> - </span><span class="step size-16"> - <i class="icon ion-scissors"></i> - </span><span class="step size-18"> - <i class="icon ion-scissors"></i> - </span><span class="step size-21"> - <i class="icon ion-scissors"></i> - </span><span class="step size-24"> - <i class="icon ion-scissors"></i> - </span><span class="step size-32"> - <i class="icon ion-scissors"></i> - </span><span class="step size-48"> - <i class="icon ion-scissors"></i> - </span><span class="step size-64"> - <i class="icon ion-scissors"></i> - </span><span class="step size-96"> - <i class="icon ion-scissors"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-scissors" /> - - <label>Selectable:</label> - <span class="ion">&#xf34b;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf34b;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f34b" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-search"></i> - </span><span class="step size-14"> - <i class="icon ion-search"></i> - </span><span class="step size-16"> - <i class="icon ion-search"></i> - </span><span class="step size-18"> - <i class="icon ion-search"></i> - </span><span class="step size-21"> - <i class="icon ion-search"></i> - </span><span class="step size-24"> - <i class="icon ion-search"></i> - </span><span class="step size-32"> - <i class="icon ion-search"></i> - </span><span class="step size-48"> - <i class="icon ion-search"></i> - </span><span class="step size-64"> - <i class="icon ion-search"></i> - </span><span class="step size-96"> - <i class="icon ion-search"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-search" /> - - <label>Selectable:</label> - <span class="ion">&#xf21f;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf21f;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f21f" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-settings"></i> - </span><span class="step size-14"> - <i class="icon ion-settings"></i> - </span><span class="step size-16"> - <i class="icon ion-settings"></i> - </span><span class="step size-18"> - <i class="icon ion-settings"></i> - </span><span class="step size-21"> - <i class="icon ion-settings"></i> - </span><span class="step size-24"> - <i class="icon ion-settings"></i> - </span><span class="step size-32"> - <i class="icon ion-settings"></i> - </span><span class="step size-48"> - <i class="icon ion-settings"></i> - </span><span class="step size-64"> - <i class="icon ion-settings"></i> - </span><span class="step size-96"> - <i class="icon ion-settings"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-settings" /> - - <label>Selectable:</label> - <span class="ion">&#xf2ad;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf2ad;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f2ad" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-share"></i> - </span><span class="step size-14"> - <i class="icon ion-share"></i> - </span><span class="step size-16"> - <i class="icon ion-share"></i> - </span><span class="step size-18"> - <i class="icon ion-share"></i> - </span><span class="step size-21"> - <i class="icon ion-share"></i> - </span><span class="step size-24"> - <i class="icon ion-share"></i> - </span><span class="step size-32"> - <i class="icon ion-share"></i> - </span><span class="step size-48"> - <i class="icon ion-share"></i> - </span><span class="step size-64"> - <i class="icon ion-share"></i> - </span><span class="step size-96"> - <i class="icon ion-share"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-share" /> - - <label>Selectable:</label> - <span class="ion">&#xf220;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf220;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f220" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-shuffle"></i> - </span><span class="step size-14"> - <i class="icon ion-shuffle"></i> - </span><span class="step size-16"> - <i class="icon ion-shuffle"></i> - </span><span class="step size-18"> - <i class="icon ion-shuffle"></i> - </span><span class="step size-21"> - <i class="icon ion-shuffle"></i> - </span><span class="step size-24"> - <i class="icon ion-shuffle"></i> - </span><span class="step size-32"> - <i class="icon ion-shuffle"></i> - </span><span class="step size-48"> - <i class="icon ion-shuffle"></i> - </span><span class="step size-64"> - <i class="icon ion-shuffle"></i> - </span><span class="step size-96"> - <i class="icon ion-shuffle"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-shuffle" /> - - <label>Selectable:</label> - <span class="ion">&#xf221;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf221;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f221" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-skip-backward"></i> - </span><span class="step size-14"> - <i class="icon ion-skip-backward"></i> - </span><span class="step size-16"> - <i class="icon ion-skip-backward"></i> - </span><span class="step size-18"> - <i class="icon ion-skip-backward"></i> - </span><span class="step size-21"> - <i class="icon ion-skip-backward"></i> - </span><span class="step size-24"> - <i class="icon ion-skip-backward"></i> - </span><span class="step size-32"> - <i class="icon ion-skip-backward"></i> - </span><span class="step size-48"> - <i class="icon ion-skip-backward"></i> - </span><span class="step size-64"> - <i class="icon ion-skip-backward"></i> - </span><span class="step size-96"> - <i class="icon ion-skip-backward"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-skip-backward" /> - - <label>Selectable:</label> - <span class="ion">&#xf222;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf222;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f222" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-skip-forward"></i> - </span><span class="step size-14"> - <i class="icon ion-skip-forward"></i> - </span><span class="step size-16"> - <i class="icon ion-skip-forward"></i> - </span><span class="step size-18"> - <i class="icon ion-skip-forward"></i> - </span><span class="step size-21"> - <i class="icon ion-skip-forward"></i> - </span><span class="step size-24"> - <i class="icon ion-skip-forward"></i> - </span><span class="step size-32"> - <i class="icon ion-skip-forward"></i> - </span><span class="step size-48"> - <i class="icon ion-skip-forward"></i> - </span><span class="step size-64"> - <i class="icon ion-skip-forward"></i> - </span><span class="step size-96"> - <i class="icon ion-skip-forward"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-skip-forward" /> - - <label>Selectable:</label> - <span class="ion">&#xf223;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf223;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f223" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-social-android"></i> - </span><span class="step size-14"> - <i class="icon ion-social-android"></i> - </span><span class="step size-16"> - <i class="icon ion-social-android"></i> - </span><span class="step size-18"> - <i class="icon ion-social-android"></i> - </span><span class="step size-21"> - <i class="icon ion-social-android"></i> - </span><span class="step size-24"> - <i class="icon ion-social-android"></i> - </span><span class="step size-32"> - <i class="icon ion-social-android"></i> - </span><span class="step size-48"> - <i class="icon ion-social-android"></i> - </span><span class="step size-64"> - <i class="icon ion-social-android"></i> - </span><span class="step size-96"> - <i class="icon ion-social-android"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-social-android" /> - - <label>Selectable:</label> - <span class="ion">&#xf225;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf225;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f225" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-social-android-outline"></i> - </span><span class="step size-14"> - <i class="icon ion-social-android-outline"></i> - </span><span class="step size-16"> - <i class="icon ion-social-android-outline"></i> - </span><span class="step size-18"> - <i class="icon ion-social-android-outline"></i> - </span><span class="step size-21"> - <i class="icon ion-social-android-outline"></i> - </span><span class="step size-24"> - <i class="icon ion-social-android-outline"></i> - </span><span class="step size-32"> - <i class="icon ion-social-android-outline"></i> - </span><span class="step size-48"> - <i class="icon ion-social-android-outline"></i> - </span><span class="step size-64"> - <i class="icon ion-social-android-outline"></i> - </span><span class="step size-96"> - <i class="icon ion-social-android-outline"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-social-android-outline" /> - - <label>Selectable:</label> - <span class="ion">&#xf224;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf224;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f224" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-social-angular"></i> - </span><span class="step size-14"> - <i class="icon ion-social-angular"></i> - </span><span class="step size-16"> - <i class="icon ion-social-angular"></i> - </span><span class="step size-18"> - <i class="icon ion-social-angular"></i> - </span><span class="step size-21"> - <i class="icon ion-social-angular"></i> - </span><span class="step size-24"> - <i class="icon ion-social-angular"></i> - </span><span class="step size-32"> - <i class="icon ion-social-angular"></i> - </span><span class="step size-48"> - <i class="icon ion-social-angular"></i> - </span><span class="step size-64"> - <i class="icon ion-social-angular"></i> - </span><span class="step size-96"> - <i class="icon ion-social-angular"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-social-angular" /> - - <label>Selectable:</label> - <span class="ion">&#xf4d9;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf4d9;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f4d9" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-social-angular-outline"></i> - </span><span class="step size-14"> - <i class="icon ion-social-angular-outline"></i> - </span><span class="step size-16"> - <i class="icon ion-social-angular-outline"></i> - </span><span class="step size-18"> - <i class="icon ion-social-angular-outline"></i> - </span><span class="step size-21"> - <i class="icon ion-social-angular-outline"></i> - </span><span class="step size-24"> - <i class="icon ion-social-angular-outline"></i> - </span><span class="step size-32"> - <i class="icon ion-social-angular-outline"></i> - </span><span class="step size-48"> - <i class="icon ion-social-angular-outline"></i> - </span><span class="step size-64"> - <i class="icon ion-social-angular-outline"></i> - </span><span class="step size-96"> - <i class="icon ion-social-angular-outline"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-social-angular-outline" /> - - <label>Selectable:</label> - <span class="ion">&#xf4d8;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf4d8;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f4d8" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-social-apple"></i> - </span><span class="step size-14"> - <i class="icon ion-social-apple"></i> - </span><span class="step size-16"> - <i class="icon ion-social-apple"></i> - </span><span class="step size-18"> - <i class="icon ion-social-apple"></i> - </span><span class="step size-21"> - <i class="icon ion-social-apple"></i> - </span><span class="step size-24"> - <i class="icon ion-social-apple"></i> - </span><span class="step size-32"> - <i class="icon ion-social-apple"></i> - </span><span class="step size-48"> - <i class="icon ion-social-apple"></i> - </span><span class="step size-64"> - <i class="icon ion-social-apple"></i> - </span><span class="step size-96"> - <i class="icon ion-social-apple"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-social-apple" /> - - <label>Selectable:</label> - <span class="ion">&#xf227;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf227;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f227" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-social-apple-outline"></i> - </span><span class="step size-14"> - <i class="icon ion-social-apple-outline"></i> - </span><span class="step size-16"> - <i class="icon ion-social-apple-outline"></i> - </span><span class="step size-18"> - <i class="icon ion-social-apple-outline"></i> - </span><span class="step size-21"> - <i class="icon ion-social-apple-outline"></i> - </span><span class="step size-24"> - <i class="icon ion-social-apple-outline"></i> - </span><span class="step size-32"> - <i class="icon ion-social-apple-outline"></i> - </span><span class="step size-48"> - <i class="icon ion-social-apple-outline"></i> - </span><span class="step size-64"> - <i class="icon ion-social-apple-outline"></i> - </span><span class="step size-96"> - <i class="icon ion-social-apple-outline"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-social-apple-outline" /> - - <label>Selectable:</label> - <span class="ion">&#xf226;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf226;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f226" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-social-bitcoin"></i> - </span><span class="step size-14"> - <i class="icon ion-social-bitcoin"></i> - </span><span class="step size-16"> - <i class="icon ion-social-bitcoin"></i> - </span><span class="step size-18"> - <i class="icon ion-social-bitcoin"></i> - </span><span class="step size-21"> - <i class="icon ion-social-bitcoin"></i> - </span><span class="step size-24"> - <i class="icon ion-social-bitcoin"></i> - </span><span class="step size-32"> - <i class="icon ion-social-bitcoin"></i> - </span><span class="step size-48"> - <i class="icon ion-social-bitcoin"></i> - </span><span class="step size-64"> - <i class="icon ion-social-bitcoin"></i> - </span><span class="step size-96"> - <i class="icon ion-social-bitcoin"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-social-bitcoin" /> - - <label>Selectable:</label> - <span class="ion">&#xf2af;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf2af;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f2af" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-social-bitcoin-outline"></i> - </span><span class="step size-14"> - <i class="icon ion-social-bitcoin-outline"></i> - </span><span class="step size-16"> - <i class="icon ion-social-bitcoin-outline"></i> - </span><span class="step size-18"> - <i class="icon ion-social-bitcoin-outline"></i> - </span><span class="step size-21"> - <i class="icon ion-social-bitcoin-outline"></i> - </span><span class="step size-24"> - <i class="icon ion-social-bitcoin-outline"></i> - </span><span class="step size-32"> - <i class="icon ion-social-bitcoin-outline"></i> - </span><span class="step size-48"> - <i class="icon ion-social-bitcoin-outline"></i> - </span><span class="step size-64"> - <i class="icon ion-social-bitcoin-outline"></i> - </span><span class="step size-96"> - <i class="icon ion-social-bitcoin-outline"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-social-bitcoin-outline" /> - - <label>Selectable:</label> - <span class="ion">&#xf2ae;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf2ae;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f2ae" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-social-buffer"></i> - </span><span class="step size-14"> - <i class="icon ion-social-buffer"></i> - </span><span class="step size-16"> - <i class="icon ion-social-buffer"></i> - </span><span class="step size-18"> - <i class="icon ion-social-buffer"></i> - </span><span class="step size-21"> - <i class="icon ion-social-buffer"></i> - </span><span class="step size-24"> - <i class="icon ion-social-buffer"></i> - </span><span class="step size-32"> - <i class="icon ion-social-buffer"></i> - </span><span class="step size-48"> - <i class="icon ion-social-buffer"></i> - </span><span class="step size-64"> - <i class="icon ion-social-buffer"></i> - </span><span class="step size-96"> - <i class="icon ion-social-buffer"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-social-buffer" /> - - <label>Selectable:</label> - <span class="ion">&#xf229;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf229;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f229" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-social-buffer-outline"></i> - </span><span class="step size-14"> - <i class="icon ion-social-buffer-outline"></i> - </span><span class="step size-16"> - <i class="icon ion-social-buffer-outline"></i> - </span><span class="step size-18"> - <i class="icon ion-social-buffer-outline"></i> - </span><span class="step size-21"> - <i class="icon ion-social-buffer-outline"></i> - </span><span class="step size-24"> - <i class="icon ion-social-buffer-outline"></i> - </span><span class="step size-32"> - <i class="icon ion-social-buffer-outline"></i> - </span><span class="step size-48"> - <i class="icon ion-social-buffer-outline"></i> - </span><span class="step size-64"> - <i class="icon ion-social-buffer-outline"></i> - </span><span class="step size-96"> - <i class="icon ion-social-buffer-outline"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-social-buffer-outline" /> - - <label>Selectable:</label> - <span class="ion">&#xf228;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf228;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f228" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-social-chrome"></i> - </span><span class="step size-14"> - <i class="icon ion-social-chrome"></i> - </span><span class="step size-16"> - <i class="icon ion-social-chrome"></i> - </span><span class="step size-18"> - <i class="icon ion-social-chrome"></i> - </span><span class="step size-21"> - <i class="icon ion-social-chrome"></i> - </span><span class="step size-24"> - <i class="icon ion-social-chrome"></i> - </span><span class="step size-32"> - <i class="icon ion-social-chrome"></i> - </span><span class="step size-48"> - <i class="icon ion-social-chrome"></i> - </span><span class="step size-64"> - <i class="icon ion-social-chrome"></i> - </span><span class="step size-96"> - <i class="icon ion-social-chrome"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-social-chrome" /> - - <label>Selectable:</label> - <span class="ion">&#xf4db;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf4db;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f4db" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-social-chrome-outline"></i> - </span><span class="step size-14"> - <i class="icon ion-social-chrome-outline"></i> - </span><span class="step size-16"> - <i class="icon ion-social-chrome-outline"></i> - </span><span class="step size-18"> - <i class="icon ion-social-chrome-outline"></i> - </span><span class="step size-21"> - <i class="icon ion-social-chrome-outline"></i> - </span><span class="step size-24"> - <i class="icon ion-social-chrome-outline"></i> - </span><span class="step size-32"> - <i class="icon ion-social-chrome-outline"></i> - </span><span class="step size-48"> - <i class="icon ion-social-chrome-outline"></i> - </span><span class="step size-64"> - <i class="icon ion-social-chrome-outline"></i> - </span><span class="step size-96"> - <i class="icon ion-social-chrome-outline"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-social-chrome-outline" /> - - <label>Selectable:</label> - <span class="ion">&#xf4da;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf4da;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f4da" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-social-codepen"></i> - </span><span class="step size-14"> - <i class="icon ion-social-codepen"></i> - </span><span class="step size-16"> - <i class="icon ion-social-codepen"></i> - </span><span class="step size-18"> - <i class="icon ion-social-codepen"></i> - </span><span class="step size-21"> - <i class="icon ion-social-codepen"></i> - </span><span class="step size-24"> - <i class="icon ion-social-codepen"></i> - </span><span class="step size-32"> - <i class="icon ion-social-codepen"></i> - </span><span class="step size-48"> - <i class="icon ion-social-codepen"></i> - </span><span class="step size-64"> - <i class="icon ion-social-codepen"></i> - </span><span class="step size-96"> - <i class="icon ion-social-codepen"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-social-codepen" /> - - <label>Selectable:</label> - <span class="ion">&#xf4dd;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf4dd;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f4dd" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-social-codepen-outline"></i> - </span><span class="step size-14"> - <i class="icon ion-social-codepen-outline"></i> - </span><span class="step size-16"> - <i class="icon ion-social-codepen-outline"></i> - </span><span class="step size-18"> - <i class="icon ion-social-codepen-outline"></i> - </span><span class="step size-21"> - <i class="icon ion-social-codepen-outline"></i> - </span><span class="step size-24"> - <i class="icon ion-social-codepen-outline"></i> - </span><span class="step size-32"> - <i class="icon ion-social-codepen-outline"></i> - </span><span class="step size-48"> - <i class="icon ion-social-codepen-outline"></i> - </span><span class="step size-64"> - <i class="icon ion-social-codepen-outline"></i> - </span><span class="step size-96"> - <i class="icon ion-social-codepen-outline"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-social-codepen-outline" /> - - <label>Selectable:</label> - <span class="ion">&#xf4dc;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf4dc;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f4dc" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-social-css3"></i> - </span><span class="step size-14"> - <i class="icon ion-social-css3"></i> - </span><span class="step size-16"> - <i class="icon ion-social-css3"></i> - </span><span class="step size-18"> - <i class="icon ion-social-css3"></i> - </span><span class="step size-21"> - <i class="icon ion-social-css3"></i> - </span><span class="step size-24"> - <i class="icon ion-social-css3"></i> - </span><span class="step size-32"> - <i class="icon ion-social-css3"></i> - </span><span class="step size-48"> - <i class="icon ion-social-css3"></i> - </span><span class="step size-64"> - <i class="icon ion-social-css3"></i> - </span><span class="step size-96"> - <i class="icon ion-social-css3"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-social-css3" /> - - <label>Selectable:</label> - <span class="ion">&#xf4df;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf4df;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f4df" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-social-css3-outline"></i> - </span><span class="step size-14"> - <i class="icon ion-social-css3-outline"></i> - </span><span class="step size-16"> - <i class="icon ion-social-css3-outline"></i> - </span><span class="step size-18"> - <i class="icon ion-social-css3-outline"></i> - </span><span class="step size-21"> - <i class="icon ion-social-css3-outline"></i> - </span><span class="step size-24"> - <i class="icon ion-social-css3-outline"></i> - </span><span class="step size-32"> - <i class="icon ion-social-css3-outline"></i> - </span><span class="step size-48"> - <i class="icon ion-social-css3-outline"></i> - </span><span class="step size-64"> - <i class="icon ion-social-css3-outline"></i> - </span><span class="step size-96"> - <i class="icon ion-social-css3-outline"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-social-css3-outline" /> - - <label>Selectable:</label> - <span class="ion">&#xf4de;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf4de;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f4de" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-social-designernews"></i> - </span><span class="step size-14"> - <i class="icon ion-social-designernews"></i> - </span><span class="step size-16"> - <i class="icon ion-social-designernews"></i> - </span><span class="step size-18"> - <i class="icon ion-social-designernews"></i> - </span><span class="step size-21"> - <i class="icon ion-social-designernews"></i> - </span><span class="step size-24"> - <i class="icon ion-social-designernews"></i> - </span><span class="step size-32"> - <i class="icon ion-social-designernews"></i> - </span><span class="step size-48"> - <i class="icon ion-social-designernews"></i> - </span><span class="step size-64"> - <i class="icon ion-social-designernews"></i> - </span><span class="step size-96"> - <i class="icon ion-social-designernews"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-social-designernews" /> - - <label>Selectable:</label> - <span class="ion">&#xf22b;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf22b;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f22b" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-social-designernews-outline"></i> - </span><span class="step size-14"> - <i class="icon ion-social-designernews-outline"></i> - </span><span class="step size-16"> - <i class="icon ion-social-designernews-outline"></i> - </span><span class="step size-18"> - <i class="icon ion-social-designernews-outline"></i> - </span><span class="step size-21"> - <i class="icon ion-social-designernews-outline"></i> - </span><span class="step size-24"> - <i class="icon ion-social-designernews-outline"></i> - </span><span class="step size-32"> - <i class="icon ion-social-designernews-outline"></i> - </span><span class="step size-48"> - <i class="icon ion-social-designernews-outline"></i> - </span><span class="step size-64"> - <i class="icon ion-social-designernews-outline"></i> - </span><span class="step size-96"> - <i class="icon ion-social-designernews-outline"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-social-designernews-outline" /> - - <label>Selectable:</label> - <span class="ion">&#xf22a;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf22a;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f22a" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-social-dribbble"></i> - </span><span class="step size-14"> - <i class="icon ion-social-dribbble"></i> - </span><span class="step size-16"> - <i class="icon ion-social-dribbble"></i> - </span><span class="step size-18"> - <i class="icon ion-social-dribbble"></i> - </span><span class="step size-21"> - <i class="icon ion-social-dribbble"></i> - </span><span class="step size-24"> - <i class="icon ion-social-dribbble"></i> - </span><span class="step size-32"> - <i class="icon ion-social-dribbble"></i> - </span><span class="step size-48"> - <i class="icon ion-social-dribbble"></i> - </span><span class="step size-64"> - <i class="icon ion-social-dribbble"></i> - </span><span class="step size-96"> - <i class="icon ion-social-dribbble"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-social-dribbble" /> - - <label>Selectable:</label> - <span class="ion">&#xf22d;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf22d;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f22d" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-social-dribbble-outline"></i> - </span><span class="step size-14"> - <i class="icon ion-social-dribbble-outline"></i> - </span><span class="step size-16"> - <i class="icon ion-social-dribbble-outline"></i> - </span><span class="step size-18"> - <i class="icon ion-social-dribbble-outline"></i> - </span><span class="step size-21"> - <i class="icon ion-social-dribbble-outline"></i> - </span><span class="step size-24"> - <i class="icon ion-social-dribbble-outline"></i> - </span><span class="step size-32"> - <i class="icon ion-social-dribbble-outline"></i> - </span><span class="step size-48"> - <i class="icon ion-social-dribbble-outline"></i> - </span><span class="step size-64"> - <i class="icon ion-social-dribbble-outline"></i> - </span><span class="step size-96"> - <i class="icon ion-social-dribbble-outline"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-social-dribbble-outline" /> - - <label>Selectable:</label> - <span class="ion">&#xf22c;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf22c;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f22c" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-social-dropbox"></i> - </span><span class="step size-14"> - <i class="icon ion-social-dropbox"></i> - </span><span class="step size-16"> - <i class="icon ion-social-dropbox"></i> - </span><span class="step size-18"> - <i class="icon ion-social-dropbox"></i> - </span><span class="step size-21"> - <i class="icon ion-social-dropbox"></i> - </span><span class="step size-24"> - <i class="icon ion-social-dropbox"></i> - </span><span class="step size-32"> - <i class="icon ion-social-dropbox"></i> - </span><span class="step size-48"> - <i class="icon ion-social-dropbox"></i> - </span><span class="step size-64"> - <i class="icon ion-social-dropbox"></i> - </span><span class="step size-96"> - <i class="icon ion-social-dropbox"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-social-dropbox" /> - - <label>Selectable:</label> - <span class="ion">&#xf22f;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf22f;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f22f" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-social-dropbox-outline"></i> - </span><span class="step size-14"> - <i class="icon ion-social-dropbox-outline"></i> - </span><span class="step size-16"> - <i class="icon ion-social-dropbox-outline"></i> - </span><span class="step size-18"> - <i class="icon ion-social-dropbox-outline"></i> - </span><span class="step size-21"> - <i class="icon ion-social-dropbox-outline"></i> - </span><span class="step size-24"> - <i class="icon ion-social-dropbox-outline"></i> - </span><span class="step size-32"> - <i class="icon ion-social-dropbox-outline"></i> - </span><span class="step size-48"> - <i class="icon ion-social-dropbox-outline"></i> - </span><span class="step size-64"> - <i class="icon ion-social-dropbox-outline"></i> - </span><span class="step size-96"> - <i class="icon ion-social-dropbox-outline"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-social-dropbox-outline" /> - - <label>Selectable:</label> - <span class="ion">&#xf22e;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf22e;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f22e" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-social-euro"></i> - </span><span class="step size-14"> - <i class="icon ion-social-euro"></i> - </span><span class="step size-16"> - <i class="icon ion-social-euro"></i> - </span><span class="step size-18"> - <i class="icon ion-social-euro"></i> - </span><span class="step size-21"> - <i class="icon ion-social-euro"></i> - </span><span class="step size-24"> - <i class="icon ion-social-euro"></i> - </span><span class="step size-32"> - <i class="icon ion-social-euro"></i> - </span><span class="step size-48"> - <i class="icon ion-social-euro"></i> - </span><span class="step size-64"> - <i class="icon ion-social-euro"></i> - </span><span class="step size-96"> - <i class="icon ion-social-euro"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-social-euro" /> - - <label>Selectable:</label> - <span class="ion">&#xf4e1;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf4e1;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f4e1" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-social-euro-outline"></i> - </span><span class="step size-14"> - <i class="icon ion-social-euro-outline"></i> - </span><span class="step size-16"> - <i class="icon ion-social-euro-outline"></i> - </span><span class="step size-18"> - <i class="icon ion-social-euro-outline"></i> - </span><span class="step size-21"> - <i class="icon ion-social-euro-outline"></i> - </span><span class="step size-24"> - <i class="icon ion-social-euro-outline"></i> - </span><span class="step size-32"> - <i class="icon ion-social-euro-outline"></i> - </span><span class="step size-48"> - <i class="icon ion-social-euro-outline"></i> - </span><span class="step size-64"> - <i class="icon ion-social-euro-outline"></i> - </span><span class="step size-96"> - <i class="icon ion-social-euro-outline"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-social-euro-outline" /> - - <label>Selectable:</label> - <span class="ion">&#xf4e0;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf4e0;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f4e0" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-social-facebook"></i> - </span><span class="step size-14"> - <i class="icon ion-social-facebook"></i> - </span><span class="step size-16"> - <i class="icon ion-social-facebook"></i> - </span><span class="step size-18"> - <i class="icon ion-social-facebook"></i> - </span><span class="step size-21"> - <i class="icon ion-social-facebook"></i> - </span><span class="step size-24"> - <i class="icon ion-social-facebook"></i> - </span><span class="step size-32"> - <i class="icon ion-social-facebook"></i> - </span><span class="step size-48"> - <i class="icon ion-social-facebook"></i> - </span><span class="step size-64"> - <i class="icon ion-social-facebook"></i> - </span><span class="step size-96"> - <i class="icon ion-social-facebook"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-social-facebook" /> - - <label>Selectable:</label> - <span class="ion">&#xf231;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf231;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f231" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-social-facebook-outline"></i> - </span><span class="step size-14"> - <i class="icon ion-social-facebook-outline"></i> - </span><span class="step size-16"> - <i class="icon ion-social-facebook-outline"></i> - </span><span class="step size-18"> - <i class="icon ion-social-facebook-outline"></i> - </span><span class="step size-21"> - <i class="icon ion-social-facebook-outline"></i> - </span><span class="step size-24"> - <i class="icon ion-social-facebook-outline"></i> - </span><span class="step size-32"> - <i class="icon ion-social-facebook-outline"></i> - </span><span class="step size-48"> - <i class="icon ion-social-facebook-outline"></i> - </span><span class="step size-64"> - <i class="icon ion-social-facebook-outline"></i> - </span><span class="step size-96"> - <i class="icon ion-social-facebook-outline"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-social-facebook-outline" /> - - <label>Selectable:</label> - <span class="ion">&#xf230;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf230;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f230" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-social-foursquare"></i> - </span><span class="step size-14"> - <i class="icon ion-social-foursquare"></i> - </span><span class="step size-16"> - <i class="icon ion-social-foursquare"></i> - </span><span class="step size-18"> - <i class="icon ion-social-foursquare"></i> - </span><span class="step size-21"> - <i class="icon ion-social-foursquare"></i> - </span><span class="step size-24"> - <i class="icon ion-social-foursquare"></i> - </span><span class="step size-32"> - <i class="icon ion-social-foursquare"></i> - </span><span class="step size-48"> - <i class="icon ion-social-foursquare"></i> - </span><span class="step size-64"> - <i class="icon ion-social-foursquare"></i> - </span><span class="step size-96"> - <i class="icon ion-social-foursquare"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-social-foursquare" /> - - <label>Selectable:</label> - <span class="ion">&#xf34d;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf34d;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f34d" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-social-foursquare-outline"></i> - </span><span class="step size-14"> - <i class="icon ion-social-foursquare-outline"></i> - </span><span class="step size-16"> - <i class="icon ion-social-foursquare-outline"></i> - </span><span class="step size-18"> - <i class="icon ion-social-foursquare-outline"></i> - </span><span class="step size-21"> - <i class="icon ion-social-foursquare-outline"></i> - </span><span class="step size-24"> - <i class="icon ion-social-foursquare-outline"></i> - </span><span class="step size-32"> - <i class="icon ion-social-foursquare-outline"></i> - </span><span class="step size-48"> - <i class="icon ion-social-foursquare-outline"></i> - </span><span class="step size-64"> - <i class="icon ion-social-foursquare-outline"></i> - </span><span class="step size-96"> - <i class="icon ion-social-foursquare-outline"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-social-foursquare-outline" /> - - <label>Selectable:</label> - <span class="ion">&#xf34c;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf34c;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f34c" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-social-freebsd-devil"></i> - </span><span class="step size-14"> - <i class="icon ion-social-freebsd-devil"></i> - </span><span class="step size-16"> - <i class="icon ion-social-freebsd-devil"></i> - </span><span class="step size-18"> - <i class="icon ion-social-freebsd-devil"></i> - </span><span class="step size-21"> - <i class="icon ion-social-freebsd-devil"></i> - </span><span class="step size-24"> - <i class="icon ion-social-freebsd-devil"></i> - </span><span class="step size-32"> - <i class="icon ion-social-freebsd-devil"></i> - </span><span class="step size-48"> - <i class="icon ion-social-freebsd-devil"></i> - </span><span class="step size-64"> - <i class="icon ion-social-freebsd-devil"></i> - </span><span class="step size-96"> - <i class="icon ion-social-freebsd-devil"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-social-freebsd-devil" /> - - <label>Selectable:</label> - <span class="ion">&#xf2c4;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf2c4;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f2c4" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-social-github"></i> - </span><span class="step size-14"> - <i class="icon ion-social-github"></i> - </span><span class="step size-16"> - <i class="icon ion-social-github"></i> - </span><span class="step size-18"> - <i class="icon ion-social-github"></i> - </span><span class="step size-21"> - <i class="icon ion-social-github"></i> - </span><span class="step size-24"> - <i class="icon ion-social-github"></i> - </span><span class="step size-32"> - <i class="icon ion-social-github"></i> - </span><span class="step size-48"> - <i class="icon ion-social-github"></i> - </span><span class="step size-64"> - <i class="icon ion-social-github"></i> - </span><span class="step size-96"> - <i class="icon ion-social-github"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-social-github" /> - - <label>Selectable:</label> - <span class="ion">&#xf233;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf233;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f233" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-social-github-outline"></i> - </span><span class="step size-14"> - <i class="icon ion-social-github-outline"></i> - </span><span class="step size-16"> - <i class="icon ion-social-github-outline"></i> - </span><span class="step size-18"> - <i class="icon ion-social-github-outline"></i> - </span><span class="step size-21"> - <i class="icon ion-social-github-outline"></i> - </span><span class="step size-24"> - <i class="icon ion-social-github-outline"></i> - </span><span class="step size-32"> - <i class="icon ion-social-github-outline"></i> - </span><span class="step size-48"> - <i class="icon ion-social-github-outline"></i> - </span><span class="step size-64"> - <i class="icon ion-social-github-outline"></i> - </span><span class="step size-96"> - <i class="icon ion-social-github-outline"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-social-github-outline" /> - - <label>Selectable:</label> - <span class="ion">&#xf232;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf232;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f232" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-social-google"></i> - </span><span class="step size-14"> - <i class="icon ion-social-google"></i> - </span><span class="step size-16"> - <i class="icon ion-social-google"></i> - </span><span class="step size-18"> - <i class="icon ion-social-google"></i> - </span><span class="step size-21"> - <i class="icon ion-social-google"></i> - </span><span class="step size-24"> - <i class="icon ion-social-google"></i> - </span><span class="step size-32"> - <i class="icon ion-social-google"></i> - </span><span class="step size-48"> - <i class="icon ion-social-google"></i> - </span><span class="step size-64"> - <i class="icon ion-social-google"></i> - </span><span class="step size-96"> - <i class="icon ion-social-google"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-social-google" /> - - <label>Selectable:</label> - <span class="ion">&#xf34f;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf34f;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f34f" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-social-google-outline"></i> - </span><span class="step size-14"> - <i class="icon ion-social-google-outline"></i> - </span><span class="step size-16"> - <i class="icon ion-social-google-outline"></i> - </span><span class="step size-18"> - <i class="icon ion-social-google-outline"></i> - </span><span class="step size-21"> - <i class="icon ion-social-google-outline"></i> - </span><span class="step size-24"> - <i class="icon ion-social-google-outline"></i> - </span><span class="step size-32"> - <i class="icon ion-social-google-outline"></i> - </span><span class="step size-48"> - <i class="icon ion-social-google-outline"></i> - </span><span class="step size-64"> - <i class="icon ion-social-google-outline"></i> - </span><span class="step size-96"> - <i class="icon ion-social-google-outline"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-social-google-outline" /> - - <label>Selectable:</label> - <span class="ion">&#xf34e;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf34e;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f34e" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-social-googleplus"></i> - </span><span class="step size-14"> - <i class="icon ion-social-googleplus"></i> - </span><span class="step size-16"> - <i class="icon ion-social-googleplus"></i> - </span><span class="step size-18"> - <i class="icon ion-social-googleplus"></i> - </span><span class="step size-21"> - <i class="icon ion-social-googleplus"></i> - </span><span class="step size-24"> - <i class="icon ion-social-googleplus"></i> - </span><span class="step size-32"> - <i class="icon ion-social-googleplus"></i> - </span><span class="step size-48"> - <i class="icon ion-social-googleplus"></i> - </span><span class="step size-64"> - <i class="icon ion-social-googleplus"></i> - </span><span class="step size-96"> - <i class="icon ion-social-googleplus"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-social-googleplus" /> - - <label>Selectable:</label> - <span class="ion">&#xf235;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf235;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f235" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-social-googleplus-outline"></i> - </span><span class="step size-14"> - <i class="icon ion-social-googleplus-outline"></i> - </span><span class="step size-16"> - <i class="icon ion-social-googleplus-outline"></i> - </span><span class="step size-18"> - <i class="icon ion-social-googleplus-outline"></i> - </span><span class="step size-21"> - <i class="icon ion-social-googleplus-outline"></i> - </span><span class="step size-24"> - <i class="icon ion-social-googleplus-outline"></i> - </span><span class="step size-32"> - <i class="icon ion-social-googleplus-outline"></i> - </span><span class="step size-48"> - <i class="icon ion-social-googleplus-outline"></i> - </span><span class="step size-64"> - <i class="icon ion-social-googleplus-outline"></i> - </span><span class="step size-96"> - <i class="icon ion-social-googleplus-outline"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-social-googleplus-outline" /> - - <label>Selectable:</label> - <span class="ion">&#xf234;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf234;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f234" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-social-hackernews"></i> - </span><span class="step size-14"> - <i class="icon ion-social-hackernews"></i> - </span><span class="step size-16"> - <i class="icon ion-social-hackernews"></i> - </span><span class="step size-18"> - <i class="icon ion-social-hackernews"></i> - </span><span class="step size-21"> - <i class="icon ion-social-hackernews"></i> - </span><span class="step size-24"> - <i class="icon ion-social-hackernews"></i> - </span><span class="step size-32"> - <i class="icon ion-social-hackernews"></i> - </span><span class="step size-48"> - <i class="icon ion-social-hackernews"></i> - </span><span class="step size-64"> - <i class="icon ion-social-hackernews"></i> - </span><span class="step size-96"> - <i class="icon ion-social-hackernews"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-social-hackernews" /> - - <label>Selectable:</label> - <span class="ion">&#xf237;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf237;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f237" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-social-hackernews-outline"></i> - </span><span class="step size-14"> - <i class="icon ion-social-hackernews-outline"></i> - </span><span class="step size-16"> - <i class="icon ion-social-hackernews-outline"></i> - </span><span class="step size-18"> - <i class="icon ion-social-hackernews-outline"></i> - </span><span class="step size-21"> - <i class="icon ion-social-hackernews-outline"></i> - </span><span class="step size-24"> - <i class="icon ion-social-hackernews-outline"></i> - </span><span class="step size-32"> - <i class="icon ion-social-hackernews-outline"></i> - </span><span class="step size-48"> - <i class="icon ion-social-hackernews-outline"></i> - </span><span class="step size-64"> - <i class="icon ion-social-hackernews-outline"></i> - </span><span class="step size-96"> - <i class="icon ion-social-hackernews-outline"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-social-hackernews-outline" /> - - <label>Selectable:</label> - <span class="ion">&#xf236;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf236;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f236" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-social-html5"></i> - </span><span class="step size-14"> - <i class="icon ion-social-html5"></i> - </span><span class="step size-16"> - <i class="icon ion-social-html5"></i> - </span><span class="step size-18"> - <i class="icon ion-social-html5"></i> - </span><span class="step size-21"> - <i class="icon ion-social-html5"></i> - </span><span class="step size-24"> - <i class="icon ion-social-html5"></i> - </span><span class="step size-32"> - <i class="icon ion-social-html5"></i> - </span><span class="step size-48"> - <i class="icon ion-social-html5"></i> - </span><span class="step size-64"> - <i class="icon ion-social-html5"></i> - </span><span class="step size-96"> - <i class="icon ion-social-html5"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-social-html5" /> - - <label>Selectable:</label> - <span class="ion">&#xf4e3;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf4e3;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f4e3" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-social-html5-outline"></i> - </span><span class="step size-14"> - <i class="icon ion-social-html5-outline"></i> - </span><span class="step size-16"> - <i class="icon ion-social-html5-outline"></i> - </span><span class="step size-18"> - <i class="icon ion-social-html5-outline"></i> - </span><span class="step size-21"> - <i class="icon ion-social-html5-outline"></i> - </span><span class="step size-24"> - <i class="icon ion-social-html5-outline"></i> - </span><span class="step size-32"> - <i class="icon ion-social-html5-outline"></i> - </span><span class="step size-48"> - <i class="icon ion-social-html5-outline"></i> - </span><span class="step size-64"> - <i class="icon ion-social-html5-outline"></i> - </span><span class="step size-96"> - <i class="icon ion-social-html5-outline"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-social-html5-outline" /> - - <label>Selectable:</label> - <span class="ion">&#xf4e2;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf4e2;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f4e2" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-social-instagram"></i> - </span><span class="step size-14"> - <i class="icon ion-social-instagram"></i> - </span><span class="step size-16"> - <i class="icon ion-social-instagram"></i> - </span><span class="step size-18"> - <i class="icon ion-social-instagram"></i> - </span><span class="step size-21"> - <i class="icon ion-social-instagram"></i> - </span><span class="step size-24"> - <i class="icon ion-social-instagram"></i> - </span><span class="step size-32"> - <i class="icon ion-social-instagram"></i> - </span><span class="step size-48"> - <i class="icon ion-social-instagram"></i> - </span><span class="step size-64"> - <i class="icon ion-social-instagram"></i> - </span><span class="step size-96"> - <i class="icon ion-social-instagram"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-social-instagram" /> - - <label>Selectable:</label> - <span class="ion">&#xf351;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf351;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f351" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-social-instagram-outline"></i> - </span><span class="step size-14"> - <i class="icon ion-social-instagram-outline"></i> - </span><span class="step size-16"> - <i class="icon ion-social-instagram-outline"></i> - </span><span class="step size-18"> - <i class="icon ion-social-instagram-outline"></i> - </span><span class="step size-21"> - <i class="icon ion-social-instagram-outline"></i> - </span><span class="step size-24"> - <i class="icon ion-social-instagram-outline"></i> - </span><span class="step size-32"> - <i class="icon ion-social-instagram-outline"></i> - </span><span class="step size-48"> - <i class="icon ion-social-instagram-outline"></i> - </span><span class="step size-64"> - <i class="icon ion-social-instagram-outline"></i> - </span><span class="step size-96"> - <i class="icon ion-social-instagram-outline"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-social-instagram-outline" /> - - <label>Selectable:</label> - <span class="ion">&#xf350;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf350;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f350" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-social-javascript"></i> - </span><span class="step size-14"> - <i class="icon ion-social-javascript"></i> - </span><span class="step size-16"> - <i class="icon ion-social-javascript"></i> - </span><span class="step size-18"> - <i class="icon ion-social-javascript"></i> - </span><span class="step size-21"> - <i class="icon ion-social-javascript"></i> - </span><span class="step size-24"> - <i class="icon ion-social-javascript"></i> - </span><span class="step size-32"> - <i class="icon ion-social-javascript"></i> - </span><span class="step size-48"> - <i class="icon ion-social-javascript"></i> - </span><span class="step size-64"> - <i class="icon ion-social-javascript"></i> - </span><span class="step size-96"> - <i class="icon ion-social-javascript"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-social-javascript" /> - - <label>Selectable:</label> - <span class="ion">&#xf4e5;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf4e5;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f4e5" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-social-javascript-outline"></i> - </span><span class="step size-14"> - <i class="icon ion-social-javascript-outline"></i> - </span><span class="step size-16"> - <i class="icon ion-social-javascript-outline"></i> - </span><span class="step size-18"> - <i class="icon ion-social-javascript-outline"></i> - </span><span class="step size-21"> - <i class="icon ion-social-javascript-outline"></i> - </span><span class="step size-24"> - <i class="icon ion-social-javascript-outline"></i> - </span><span class="step size-32"> - <i class="icon ion-social-javascript-outline"></i> - </span><span class="step size-48"> - <i class="icon ion-social-javascript-outline"></i> - </span><span class="step size-64"> - <i class="icon ion-social-javascript-outline"></i> - </span><span class="step size-96"> - <i class="icon ion-social-javascript-outline"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-social-javascript-outline" /> - - <label>Selectable:</label> - <span class="ion">&#xf4e4;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf4e4;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f4e4" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-social-linkedin"></i> - </span><span class="step size-14"> - <i class="icon ion-social-linkedin"></i> - </span><span class="step size-16"> - <i class="icon ion-social-linkedin"></i> - </span><span class="step size-18"> - <i class="icon ion-social-linkedin"></i> - </span><span class="step size-21"> - <i class="icon ion-social-linkedin"></i> - </span><span class="step size-24"> - <i class="icon ion-social-linkedin"></i> - </span><span class="step size-32"> - <i class="icon ion-social-linkedin"></i> - </span><span class="step size-48"> - <i class="icon ion-social-linkedin"></i> - </span><span class="step size-64"> - <i class="icon ion-social-linkedin"></i> - </span><span class="step size-96"> - <i class="icon ion-social-linkedin"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-social-linkedin" /> - - <label>Selectable:</label> - <span class="ion">&#xf239;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf239;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f239" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-social-linkedin-outline"></i> - </span><span class="step size-14"> - <i class="icon ion-social-linkedin-outline"></i> - </span><span class="step size-16"> - <i class="icon ion-social-linkedin-outline"></i> - </span><span class="step size-18"> - <i class="icon ion-social-linkedin-outline"></i> - </span><span class="step size-21"> - <i class="icon ion-social-linkedin-outline"></i> - </span><span class="step size-24"> - <i class="icon ion-social-linkedin-outline"></i> - </span><span class="step size-32"> - <i class="icon ion-social-linkedin-outline"></i> - </span><span class="step size-48"> - <i class="icon ion-social-linkedin-outline"></i> - </span><span class="step size-64"> - <i class="icon ion-social-linkedin-outline"></i> - </span><span class="step size-96"> - <i class="icon ion-social-linkedin-outline"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-social-linkedin-outline" /> - - <label>Selectable:</label> - <span class="ion">&#xf238;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf238;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f238" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-social-markdown"></i> - </span><span class="step size-14"> - <i class="icon ion-social-markdown"></i> - </span><span class="step size-16"> - <i class="icon ion-social-markdown"></i> - </span><span class="step size-18"> - <i class="icon ion-social-markdown"></i> - </span><span class="step size-21"> - <i class="icon ion-social-markdown"></i> - </span><span class="step size-24"> - <i class="icon ion-social-markdown"></i> - </span><span class="step size-32"> - <i class="icon ion-social-markdown"></i> - </span><span class="step size-48"> - <i class="icon ion-social-markdown"></i> - </span><span class="step size-64"> - <i class="icon ion-social-markdown"></i> - </span><span class="step size-96"> - <i class="icon ion-social-markdown"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-social-markdown" /> - - <label>Selectable:</label> - <span class="ion">&#xf4e6;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf4e6;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f4e6" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-social-nodejs"></i> - </span><span class="step size-14"> - <i class="icon ion-social-nodejs"></i> - </span><span class="step size-16"> - <i class="icon ion-social-nodejs"></i> - </span><span class="step size-18"> - <i class="icon ion-social-nodejs"></i> - </span><span class="step size-21"> - <i class="icon ion-social-nodejs"></i> - </span><span class="step size-24"> - <i class="icon ion-social-nodejs"></i> - </span><span class="step size-32"> - <i class="icon ion-social-nodejs"></i> - </span><span class="step size-48"> - <i class="icon ion-social-nodejs"></i> - </span><span class="step size-64"> - <i class="icon ion-social-nodejs"></i> - </span><span class="step size-96"> - <i class="icon ion-social-nodejs"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-social-nodejs" /> - - <label>Selectable:</label> - <span class="ion">&#xf4e7;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf4e7;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f4e7" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-social-octocat"></i> - </span><span class="step size-14"> - <i class="icon ion-social-octocat"></i> - </span><span class="step size-16"> - <i class="icon ion-social-octocat"></i> - </span><span class="step size-18"> - <i class="icon ion-social-octocat"></i> - </span><span class="step size-21"> - <i class="icon ion-social-octocat"></i> - </span><span class="step size-24"> - <i class="icon ion-social-octocat"></i> - </span><span class="step size-32"> - <i class="icon ion-social-octocat"></i> - </span><span class="step size-48"> - <i class="icon ion-social-octocat"></i> - </span><span class="step size-64"> - <i class="icon ion-social-octocat"></i> - </span><span class="step size-96"> - <i class="icon ion-social-octocat"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-social-octocat" /> - - <label>Selectable:</label> - <span class="ion">&#xf4e8;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf4e8;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f4e8" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-social-pinterest"></i> - </span><span class="step size-14"> - <i class="icon ion-social-pinterest"></i> - </span><span class="step size-16"> - <i class="icon ion-social-pinterest"></i> - </span><span class="step size-18"> - <i class="icon ion-social-pinterest"></i> - </span><span class="step size-21"> - <i class="icon ion-social-pinterest"></i> - </span><span class="step size-24"> - <i class="icon ion-social-pinterest"></i> - </span><span class="step size-32"> - <i class="icon ion-social-pinterest"></i> - </span><span class="step size-48"> - <i class="icon ion-social-pinterest"></i> - </span><span class="step size-64"> - <i class="icon ion-social-pinterest"></i> - </span><span class="step size-96"> - <i class="icon ion-social-pinterest"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-social-pinterest" /> - - <label>Selectable:</label> - <span class="ion">&#xf2b1;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf2b1;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f2b1" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-social-pinterest-outline"></i> - </span><span class="step size-14"> - <i class="icon ion-social-pinterest-outline"></i> - </span><span class="step size-16"> - <i class="icon ion-social-pinterest-outline"></i> - </span><span class="step size-18"> - <i class="icon ion-social-pinterest-outline"></i> - </span><span class="step size-21"> - <i class="icon ion-social-pinterest-outline"></i> - </span><span class="step size-24"> - <i class="icon ion-social-pinterest-outline"></i> - </span><span class="step size-32"> - <i class="icon ion-social-pinterest-outline"></i> - </span><span class="step size-48"> - <i class="icon ion-social-pinterest-outline"></i> - </span><span class="step size-64"> - <i class="icon ion-social-pinterest-outline"></i> - </span><span class="step size-96"> - <i class="icon ion-social-pinterest-outline"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-social-pinterest-outline" /> - - <label>Selectable:</label> - <span class="ion">&#xf2b0;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf2b0;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f2b0" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-social-python"></i> - </span><span class="step size-14"> - <i class="icon ion-social-python"></i> - </span><span class="step size-16"> - <i class="icon ion-social-python"></i> - </span><span class="step size-18"> - <i class="icon ion-social-python"></i> - </span><span class="step size-21"> - <i class="icon ion-social-python"></i> - </span><span class="step size-24"> - <i class="icon ion-social-python"></i> - </span><span class="step size-32"> - <i class="icon ion-social-python"></i> - </span><span class="step size-48"> - <i class="icon ion-social-python"></i> - </span><span class="step size-64"> - <i class="icon ion-social-python"></i> - </span><span class="step size-96"> - <i class="icon ion-social-python"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-social-python" /> - - <label>Selectable:</label> - <span class="ion">&#xf4e9;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf4e9;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f4e9" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-social-reddit"></i> - </span><span class="step size-14"> - <i class="icon ion-social-reddit"></i> - </span><span class="step size-16"> - <i class="icon ion-social-reddit"></i> - </span><span class="step size-18"> - <i class="icon ion-social-reddit"></i> - </span><span class="step size-21"> - <i class="icon ion-social-reddit"></i> - </span><span class="step size-24"> - <i class="icon ion-social-reddit"></i> - </span><span class="step size-32"> - <i class="icon ion-social-reddit"></i> - </span><span class="step size-48"> - <i class="icon ion-social-reddit"></i> - </span><span class="step size-64"> - <i class="icon ion-social-reddit"></i> - </span><span class="step size-96"> - <i class="icon ion-social-reddit"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-social-reddit" /> - - <label>Selectable:</label> - <span class="ion">&#xf23b;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf23b;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f23b" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-social-reddit-outline"></i> - </span><span class="step size-14"> - <i class="icon ion-social-reddit-outline"></i> - </span><span class="step size-16"> - <i class="icon ion-social-reddit-outline"></i> - </span><span class="step size-18"> - <i class="icon ion-social-reddit-outline"></i> - </span><span class="step size-21"> - <i class="icon ion-social-reddit-outline"></i> - </span><span class="step size-24"> - <i class="icon ion-social-reddit-outline"></i> - </span><span class="step size-32"> - <i class="icon ion-social-reddit-outline"></i> - </span><span class="step size-48"> - <i class="icon ion-social-reddit-outline"></i> - </span><span class="step size-64"> - <i class="icon ion-social-reddit-outline"></i> - </span><span class="step size-96"> - <i class="icon ion-social-reddit-outline"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-social-reddit-outline" /> - - <label>Selectable:</label> - <span class="ion">&#xf23a;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf23a;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f23a" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-social-rss"></i> - </span><span class="step size-14"> - <i class="icon ion-social-rss"></i> - </span><span class="step size-16"> - <i class="icon ion-social-rss"></i> - </span><span class="step size-18"> - <i class="icon ion-social-rss"></i> - </span><span class="step size-21"> - <i class="icon ion-social-rss"></i> - </span><span class="step size-24"> - <i class="icon ion-social-rss"></i> - </span><span class="step size-32"> - <i class="icon ion-social-rss"></i> - </span><span class="step size-48"> - <i class="icon ion-social-rss"></i> - </span><span class="step size-64"> - <i class="icon ion-social-rss"></i> - </span><span class="step size-96"> - <i class="icon ion-social-rss"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-social-rss" /> - - <label>Selectable:</label> - <span class="ion">&#xf23d;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf23d;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f23d" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-social-rss-outline"></i> - </span><span class="step size-14"> - <i class="icon ion-social-rss-outline"></i> - </span><span class="step size-16"> - <i class="icon ion-social-rss-outline"></i> - </span><span class="step size-18"> - <i class="icon ion-social-rss-outline"></i> - </span><span class="step size-21"> - <i class="icon ion-social-rss-outline"></i> - </span><span class="step size-24"> - <i class="icon ion-social-rss-outline"></i> - </span><span class="step size-32"> - <i class="icon ion-social-rss-outline"></i> - </span><span class="step size-48"> - <i class="icon ion-social-rss-outline"></i> - </span><span class="step size-64"> - <i class="icon ion-social-rss-outline"></i> - </span><span class="step size-96"> - <i class="icon ion-social-rss-outline"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-social-rss-outline" /> - - <label>Selectable:</label> - <span class="ion">&#xf23c;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf23c;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f23c" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-social-sass"></i> - </span><span class="step size-14"> - <i class="icon ion-social-sass"></i> - </span><span class="step size-16"> - <i class="icon ion-social-sass"></i> - </span><span class="step size-18"> - <i class="icon ion-social-sass"></i> - </span><span class="step size-21"> - <i class="icon ion-social-sass"></i> - </span><span class="step size-24"> - <i class="icon ion-social-sass"></i> - </span><span class="step size-32"> - <i class="icon ion-social-sass"></i> - </span><span class="step size-48"> - <i class="icon ion-social-sass"></i> - </span><span class="step size-64"> - <i class="icon ion-social-sass"></i> - </span><span class="step size-96"> - <i class="icon ion-social-sass"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-social-sass" /> - - <label>Selectable:</label> - <span class="ion">&#xf4ea;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf4ea;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f4ea" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-social-skype"></i> - </span><span class="step size-14"> - <i class="icon ion-social-skype"></i> - </span><span class="step size-16"> - <i class="icon ion-social-skype"></i> - </span><span class="step size-18"> - <i class="icon ion-social-skype"></i> - </span><span class="step size-21"> - <i class="icon ion-social-skype"></i> - </span><span class="step size-24"> - <i class="icon ion-social-skype"></i> - </span><span class="step size-32"> - <i class="icon ion-social-skype"></i> - </span><span class="step size-48"> - <i class="icon ion-social-skype"></i> - </span><span class="step size-64"> - <i class="icon ion-social-skype"></i> - </span><span class="step size-96"> - <i class="icon ion-social-skype"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-social-skype" /> - - <label>Selectable:</label> - <span class="ion">&#xf23f;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf23f;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f23f" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-social-skype-outline"></i> - </span><span class="step size-14"> - <i class="icon ion-social-skype-outline"></i> - </span><span class="step size-16"> - <i class="icon ion-social-skype-outline"></i> - </span><span class="step size-18"> - <i class="icon ion-social-skype-outline"></i> - </span><span class="step size-21"> - <i class="icon ion-social-skype-outline"></i> - </span><span class="step size-24"> - <i class="icon ion-social-skype-outline"></i> - </span><span class="step size-32"> - <i class="icon ion-social-skype-outline"></i> - </span><span class="step size-48"> - <i class="icon ion-social-skype-outline"></i> - </span><span class="step size-64"> - <i class="icon ion-social-skype-outline"></i> - </span><span class="step size-96"> - <i class="icon ion-social-skype-outline"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-social-skype-outline" /> - - <label>Selectable:</label> - <span class="ion">&#xf23e;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf23e;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f23e" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-social-snapchat"></i> - </span><span class="step size-14"> - <i class="icon ion-social-snapchat"></i> - </span><span class="step size-16"> - <i class="icon ion-social-snapchat"></i> - </span><span class="step size-18"> - <i class="icon ion-social-snapchat"></i> - </span><span class="step size-21"> - <i class="icon ion-social-snapchat"></i> - </span><span class="step size-24"> - <i class="icon ion-social-snapchat"></i> - </span><span class="step size-32"> - <i class="icon ion-social-snapchat"></i> - </span><span class="step size-48"> - <i class="icon ion-social-snapchat"></i> - </span><span class="step size-64"> - <i class="icon ion-social-snapchat"></i> - </span><span class="step size-96"> - <i class="icon ion-social-snapchat"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-social-snapchat" /> - - <label>Selectable:</label> - <span class="ion">&#xf4ec;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf4ec;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f4ec" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-social-snapchat-outline"></i> - </span><span class="step size-14"> - <i class="icon ion-social-snapchat-outline"></i> - </span><span class="step size-16"> - <i class="icon ion-social-snapchat-outline"></i> - </span><span class="step size-18"> - <i class="icon ion-social-snapchat-outline"></i> - </span><span class="step size-21"> - <i class="icon ion-social-snapchat-outline"></i> - </span><span class="step size-24"> - <i class="icon ion-social-snapchat-outline"></i> - </span><span class="step size-32"> - <i class="icon ion-social-snapchat-outline"></i> - </span><span class="step size-48"> - <i class="icon ion-social-snapchat-outline"></i> - </span><span class="step size-64"> - <i class="icon ion-social-snapchat-outline"></i> - </span><span class="step size-96"> - <i class="icon ion-social-snapchat-outline"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-social-snapchat-outline" /> - - <label>Selectable:</label> - <span class="ion">&#xf4eb;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf4eb;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f4eb" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-social-tumblr"></i> - </span><span class="step size-14"> - <i class="icon ion-social-tumblr"></i> - </span><span class="step size-16"> - <i class="icon ion-social-tumblr"></i> - </span><span class="step size-18"> - <i class="icon ion-social-tumblr"></i> - </span><span class="step size-21"> - <i class="icon ion-social-tumblr"></i> - </span><span class="step size-24"> - <i class="icon ion-social-tumblr"></i> - </span><span class="step size-32"> - <i class="icon ion-social-tumblr"></i> - </span><span class="step size-48"> - <i class="icon ion-social-tumblr"></i> - </span><span class="step size-64"> - <i class="icon ion-social-tumblr"></i> - </span><span class="step size-96"> - <i class="icon ion-social-tumblr"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-social-tumblr" /> - - <label>Selectable:</label> - <span class="ion">&#xf241;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf241;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f241" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-social-tumblr-outline"></i> - </span><span class="step size-14"> - <i class="icon ion-social-tumblr-outline"></i> - </span><span class="step size-16"> - <i class="icon ion-social-tumblr-outline"></i> - </span><span class="step size-18"> - <i class="icon ion-social-tumblr-outline"></i> - </span><span class="step size-21"> - <i class="icon ion-social-tumblr-outline"></i> - </span><span class="step size-24"> - <i class="icon ion-social-tumblr-outline"></i> - </span><span class="step size-32"> - <i class="icon ion-social-tumblr-outline"></i> - </span><span class="step size-48"> - <i class="icon ion-social-tumblr-outline"></i> - </span><span class="step size-64"> - <i class="icon ion-social-tumblr-outline"></i> - </span><span class="step size-96"> - <i class="icon ion-social-tumblr-outline"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-social-tumblr-outline" /> - - <label>Selectable:</label> - <span class="ion">&#xf240;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf240;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f240" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-social-tux"></i> - </span><span class="step size-14"> - <i class="icon ion-social-tux"></i> - </span><span class="step size-16"> - <i class="icon ion-social-tux"></i> - </span><span class="step size-18"> - <i class="icon ion-social-tux"></i> - </span><span class="step size-21"> - <i class="icon ion-social-tux"></i> - </span><span class="step size-24"> - <i class="icon ion-social-tux"></i> - </span><span class="step size-32"> - <i class="icon ion-social-tux"></i> - </span><span class="step size-48"> - <i class="icon ion-social-tux"></i> - </span><span class="step size-64"> - <i class="icon ion-social-tux"></i> - </span><span class="step size-96"> - <i class="icon ion-social-tux"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-social-tux" /> - - <label>Selectable:</label> - <span class="ion">&#xf2c5;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf2c5;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f2c5" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-social-twitch"></i> - </span><span class="step size-14"> - <i class="icon ion-social-twitch"></i> - </span><span class="step size-16"> - <i class="icon ion-social-twitch"></i> - </span><span class="step size-18"> - <i class="icon ion-social-twitch"></i> - </span><span class="step size-21"> - <i class="icon ion-social-twitch"></i> - </span><span class="step size-24"> - <i class="icon ion-social-twitch"></i> - </span><span class="step size-32"> - <i class="icon ion-social-twitch"></i> - </span><span class="step size-48"> - <i class="icon ion-social-twitch"></i> - </span><span class="step size-64"> - <i class="icon ion-social-twitch"></i> - </span><span class="step size-96"> - <i class="icon ion-social-twitch"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-social-twitch" /> - - <label>Selectable:</label> - <span class="ion">&#xf4ee;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf4ee;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f4ee" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-social-twitch-outline"></i> - </span><span class="step size-14"> - <i class="icon ion-social-twitch-outline"></i> - </span><span class="step size-16"> - <i class="icon ion-social-twitch-outline"></i> - </span><span class="step size-18"> - <i class="icon ion-social-twitch-outline"></i> - </span><span class="step size-21"> - <i class="icon ion-social-twitch-outline"></i> - </span><span class="step size-24"> - <i class="icon ion-social-twitch-outline"></i> - </span><span class="step size-32"> - <i class="icon ion-social-twitch-outline"></i> - </span><span class="step size-48"> - <i class="icon ion-social-twitch-outline"></i> - </span><span class="step size-64"> - <i class="icon ion-social-twitch-outline"></i> - </span><span class="step size-96"> - <i class="icon ion-social-twitch-outline"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-social-twitch-outline" /> - - <label>Selectable:</label> - <span class="ion">&#xf4ed;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf4ed;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f4ed" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-social-twitter"></i> - </span><span class="step size-14"> - <i class="icon ion-social-twitter"></i> - </span><span class="step size-16"> - <i class="icon ion-social-twitter"></i> - </span><span class="step size-18"> - <i class="icon ion-social-twitter"></i> - </span><span class="step size-21"> - <i class="icon ion-social-twitter"></i> - </span><span class="step size-24"> - <i class="icon ion-social-twitter"></i> - </span><span class="step size-32"> - <i class="icon ion-social-twitter"></i> - </span><span class="step size-48"> - <i class="icon ion-social-twitter"></i> - </span><span class="step size-64"> - <i class="icon ion-social-twitter"></i> - </span><span class="step size-96"> - <i class="icon ion-social-twitter"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-social-twitter" /> - - <label>Selectable:</label> - <span class="ion">&#xf243;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf243;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f243" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-social-twitter-outline"></i> - </span><span class="step size-14"> - <i class="icon ion-social-twitter-outline"></i> - </span><span class="step size-16"> - <i class="icon ion-social-twitter-outline"></i> - </span><span class="step size-18"> - <i class="icon ion-social-twitter-outline"></i> - </span><span class="step size-21"> - <i class="icon ion-social-twitter-outline"></i> - </span><span class="step size-24"> - <i class="icon ion-social-twitter-outline"></i> - </span><span class="step size-32"> - <i class="icon ion-social-twitter-outline"></i> - </span><span class="step size-48"> - <i class="icon ion-social-twitter-outline"></i> - </span><span class="step size-64"> - <i class="icon ion-social-twitter-outline"></i> - </span><span class="step size-96"> - <i class="icon ion-social-twitter-outline"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-social-twitter-outline" /> - - <label>Selectable:</label> - <span class="ion">&#xf242;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf242;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f242" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-social-usd"></i> - </span><span class="step size-14"> - <i class="icon ion-social-usd"></i> - </span><span class="step size-16"> - <i class="icon ion-social-usd"></i> - </span><span class="step size-18"> - <i class="icon ion-social-usd"></i> - </span><span class="step size-21"> - <i class="icon ion-social-usd"></i> - </span><span class="step size-24"> - <i class="icon ion-social-usd"></i> - </span><span class="step size-32"> - <i class="icon ion-social-usd"></i> - </span><span class="step size-48"> - <i class="icon ion-social-usd"></i> - </span><span class="step size-64"> - <i class="icon ion-social-usd"></i> - </span><span class="step size-96"> - <i class="icon ion-social-usd"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-social-usd" /> - - <label>Selectable:</label> - <span class="ion">&#xf353;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf353;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f353" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-social-usd-outline"></i> - </span><span class="step size-14"> - <i class="icon ion-social-usd-outline"></i> - </span><span class="step size-16"> - <i class="icon ion-social-usd-outline"></i> - </span><span class="step size-18"> - <i class="icon ion-social-usd-outline"></i> - </span><span class="step size-21"> - <i class="icon ion-social-usd-outline"></i> - </span><span class="step size-24"> - <i class="icon ion-social-usd-outline"></i> - </span><span class="step size-32"> - <i class="icon ion-social-usd-outline"></i> - </span><span class="step size-48"> - <i class="icon ion-social-usd-outline"></i> - </span><span class="step size-64"> - <i class="icon ion-social-usd-outline"></i> - </span><span class="step size-96"> - <i class="icon ion-social-usd-outline"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-social-usd-outline" /> - - <label>Selectable:</label> - <span class="ion">&#xf352;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf352;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f352" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-social-vimeo"></i> - </span><span class="step size-14"> - <i class="icon ion-social-vimeo"></i> - </span><span class="step size-16"> - <i class="icon ion-social-vimeo"></i> - </span><span class="step size-18"> - <i class="icon ion-social-vimeo"></i> - </span><span class="step size-21"> - <i class="icon ion-social-vimeo"></i> - </span><span class="step size-24"> - <i class="icon ion-social-vimeo"></i> - </span><span class="step size-32"> - <i class="icon ion-social-vimeo"></i> - </span><span class="step size-48"> - <i class="icon ion-social-vimeo"></i> - </span><span class="step size-64"> - <i class="icon ion-social-vimeo"></i> - </span><span class="step size-96"> - <i class="icon ion-social-vimeo"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-social-vimeo" /> - - <label>Selectable:</label> - <span class="ion">&#xf245;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf245;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f245" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-social-vimeo-outline"></i> - </span><span class="step size-14"> - <i class="icon ion-social-vimeo-outline"></i> - </span><span class="step size-16"> - <i class="icon ion-social-vimeo-outline"></i> - </span><span class="step size-18"> - <i class="icon ion-social-vimeo-outline"></i> - </span><span class="step size-21"> - <i class="icon ion-social-vimeo-outline"></i> - </span><span class="step size-24"> - <i class="icon ion-social-vimeo-outline"></i> - </span><span class="step size-32"> - <i class="icon ion-social-vimeo-outline"></i> - </span><span class="step size-48"> - <i class="icon ion-social-vimeo-outline"></i> - </span><span class="step size-64"> - <i class="icon ion-social-vimeo-outline"></i> - </span><span class="step size-96"> - <i class="icon ion-social-vimeo-outline"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-social-vimeo-outline" /> - - <label>Selectable:</label> - <span class="ion">&#xf244;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf244;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f244" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-social-whatsapp"></i> - </span><span class="step size-14"> - <i class="icon ion-social-whatsapp"></i> - </span><span class="step size-16"> - <i class="icon ion-social-whatsapp"></i> - </span><span class="step size-18"> - <i class="icon ion-social-whatsapp"></i> - </span><span class="step size-21"> - <i class="icon ion-social-whatsapp"></i> - </span><span class="step size-24"> - <i class="icon ion-social-whatsapp"></i> - </span><span class="step size-32"> - <i class="icon ion-social-whatsapp"></i> - </span><span class="step size-48"> - <i class="icon ion-social-whatsapp"></i> - </span><span class="step size-64"> - <i class="icon ion-social-whatsapp"></i> - </span><span class="step size-96"> - <i class="icon ion-social-whatsapp"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-social-whatsapp" /> - - <label>Selectable:</label> - <span class="ion">&#xf4f0;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf4f0;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f4f0" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-social-whatsapp-outline"></i> - </span><span class="step size-14"> - <i class="icon ion-social-whatsapp-outline"></i> - </span><span class="step size-16"> - <i class="icon ion-social-whatsapp-outline"></i> - </span><span class="step size-18"> - <i class="icon ion-social-whatsapp-outline"></i> - </span><span class="step size-21"> - <i class="icon ion-social-whatsapp-outline"></i> - </span><span class="step size-24"> - <i class="icon ion-social-whatsapp-outline"></i> - </span><span class="step size-32"> - <i class="icon ion-social-whatsapp-outline"></i> - </span><span class="step size-48"> - <i class="icon ion-social-whatsapp-outline"></i> - </span><span class="step size-64"> - <i class="icon ion-social-whatsapp-outline"></i> - </span><span class="step size-96"> - <i class="icon ion-social-whatsapp-outline"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-social-whatsapp-outline" /> - - <label>Selectable:</label> - <span class="ion">&#xf4ef;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf4ef;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f4ef" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-social-windows"></i> - </span><span class="step size-14"> - <i class="icon ion-social-windows"></i> - </span><span class="step size-16"> - <i class="icon ion-social-windows"></i> - </span><span class="step size-18"> - <i class="icon ion-social-windows"></i> - </span><span class="step size-21"> - <i class="icon ion-social-windows"></i> - </span><span class="step size-24"> - <i class="icon ion-social-windows"></i> - </span><span class="step size-32"> - <i class="icon ion-social-windows"></i> - </span><span class="step size-48"> - <i class="icon ion-social-windows"></i> - </span><span class="step size-64"> - <i class="icon ion-social-windows"></i> - </span><span class="step size-96"> - <i class="icon ion-social-windows"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-social-windows" /> - - <label>Selectable:</label> - <span class="ion">&#xf247;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf247;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f247" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-social-windows-outline"></i> - </span><span class="step size-14"> - <i class="icon ion-social-windows-outline"></i> - </span><span class="step size-16"> - <i class="icon ion-social-windows-outline"></i> - </span><span class="step size-18"> - <i class="icon ion-social-windows-outline"></i> - </span><span class="step size-21"> - <i class="icon ion-social-windows-outline"></i> - </span><span class="step size-24"> - <i class="icon ion-social-windows-outline"></i> - </span><span class="step size-32"> - <i class="icon ion-social-windows-outline"></i> - </span><span class="step size-48"> - <i class="icon ion-social-windows-outline"></i> - </span><span class="step size-64"> - <i class="icon ion-social-windows-outline"></i> - </span><span class="step size-96"> - <i class="icon ion-social-windows-outline"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-social-windows-outline" /> - - <label>Selectable:</label> - <span class="ion">&#xf246;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf246;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f246" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-social-wordpress"></i> - </span><span class="step size-14"> - <i class="icon ion-social-wordpress"></i> - </span><span class="step size-16"> - <i class="icon ion-social-wordpress"></i> - </span><span class="step size-18"> - <i class="icon ion-social-wordpress"></i> - </span><span class="step size-21"> - <i class="icon ion-social-wordpress"></i> - </span><span class="step size-24"> - <i class="icon ion-social-wordpress"></i> - </span><span class="step size-32"> - <i class="icon ion-social-wordpress"></i> - </span><span class="step size-48"> - <i class="icon ion-social-wordpress"></i> - </span><span class="step size-64"> - <i class="icon ion-social-wordpress"></i> - </span><span class="step size-96"> - <i class="icon ion-social-wordpress"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-social-wordpress" /> - - <label>Selectable:</label> - <span class="ion">&#xf249;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf249;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f249" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-social-wordpress-outline"></i> - </span><span class="step size-14"> - <i class="icon ion-social-wordpress-outline"></i> - </span><span class="step size-16"> - <i class="icon ion-social-wordpress-outline"></i> - </span><span class="step size-18"> - <i class="icon ion-social-wordpress-outline"></i> - </span><span class="step size-21"> - <i class="icon ion-social-wordpress-outline"></i> - </span><span class="step size-24"> - <i class="icon ion-social-wordpress-outline"></i> - </span><span class="step size-32"> - <i class="icon ion-social-wordpress-outline"></i> - </span><span class="step size-48"> - <i class="icon ion-social-wordpress-outline"></i> - </span><span class="step size-64"> - <i class="icon ion-social-wordpress-outline"></i> - </span><span class="step size-96"> - <i class="icon ion-social-wordpress-outline"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-social-wordpress-outline" /> - - <label>Selectable:</label> - <span class="ion">&#xf248;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf248;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f248" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-social-yahoo"></i> - </span><span class="step size-14"> - <i class="icon ion-social-yahoo"></i> - </span><span class="step size-16"> - <i class="icon ion-social-yahoo"></i> - </span><span class="step size-18"> - <i class="icon ion-social-yahoo"></i> - </span><span class="step size-21"> - <i class="icon ion-social-yahoo"></i> - </span><span class="step size-24"> - <i class="icon ion-social-yahoo"></i> - </span><span class="step size-32"> - <i class="icon ion-social-yahoo"></i> - </span><span class="step size-48"> - <i class="icon ion-social-yahoo"></i> - </span><span class="step size-64"> - <i class="icon ion-social-yahoo"></i> - </span><span class="step size-96"> - <i class="icon ion-social-yahoo"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-social-yahoo" /> - - <label>Selectable:</label> - <span class="ion">&#xf24b;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf24b;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f24b" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-social-yahoo-outline"></i> - </span><span class="step size-14"> - <i class="icon ion-social-yahoo-outline"></i> - </span><span class="step size-16"> - <i class="icon ion-social-yahoo-outline"></i> - </span><span class="step size-18"> - <i class="icon ion-social-yahoo-outline"></i> - </span><span class="step size-21"> - <i class="icon ion-social-yahoo-outline"></i> - </span><span class="step size-24"> - <i class="icon ion-social-yahoo-outline"></i> - </span><span class="step size-32"> - <i class="icon ion-social-yahoo-outline"></i> - </span><span class="step size-48"> - <i class="icon ion-social-yahoo-outline"></i> - </span><span class="step size-64"> - <i class="icon ion-social-yahoo-outline"></i> - </span><span class="step size-96"> - <i class="icon ion-social-yahoo-outline"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-social-yahoo-outline" /> - - <label>Selectable:</label> - <span class="ion">&#xf24a;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf24a;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f24a" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-social-yen"></i> - </span><span class="step size-14"> - <i class="icon ion-social-yen"></i> - </span><span class="step size-16"> - <i class="icon ion-social-yen"></i> - </span><span class="step size-18"> - <i class="icon ion-social-yen"></i> - </span><span class="step size-21"> - <i class="icon ion-social-yen"></i> - </span><span class="step size-24"> - <i class="icon ion-social-yen"></i> - </span><span class="step size-32"> - <i class="icon ion-social-yen"></i> - </span><span class="step size-48"> - <i class="icon ion-social-yen"></i> - </span><span class="step size-64"> - <i class="icon ion-social-yen"></i> - </span><span class="step size-96"> - <i class="icon ion-social-yen"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-social-yen" /> - - <label>Selectable:</label> - <span class="ion">&#xf4f2;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf4f2;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f4f2" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-social-yen-outline"></i> - </span><span class="step size-14"> - <i class="icon ion-social-yen-outline"></i> - </span><span class="step size-16"> - <i class="icon ion-social-yen-outline"></i> - </span><span class="step size-18"> - <i class="icon ion-social-yen-outline"></i> - </span><span class="step size-21"> - <i class="icon ion-social-yen-outline"></i> - </span><span class="step size-24"> - <i class="icon ion-social-yen-outline"></i> - </span><span class="step size-32"> - <i class="icon ion-social-yen-outline"></i> - </span><span class="step size-48"> - <i class="icon ion-social-yen-outline"></i> - </span><span class="step size-64"> - <i class="icon ion-social-yen-outline"></i> - </span><span class="step size-96"> - <i class="icon ion-social-yen-outline"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-social-yen-outline" /> - - <label>Selectable:</label> - <span class="ion">&#xf4f1;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf4f1;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f4f1" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-social-youtube"></i> - </span><span class="step size-14"> - <i class="icon ion-social-youtube"></i> - </span><span class="step size-16"> - <i class="icon ion-social-youtube"></i> - </span><span class="step size-18"> - <i class="icon ion-social-youtube"></i> - </span><span class="step size-21"> - <i class="icon ion-social-youtube"></i> - </span><span class="step size-24"> - <i class="icon ion-social-youtube"></i> - </span><span class="step size-32"> - <i class="icon ion-social-youtube"></i> - </span><span class="step size-48"> - <i class="icon ion-social-youtube"></i> - </span><span class="step size-64"> - <i class="icon ion-social-youtube"></i> - </span><span class="step size-96"> - <i class="icon ion-social-youtube"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-social-youtube" /> - - <label>Selectable:</label> - <span class="ion">&#xf24d;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf24d;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f24d" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-social-youtube-outline"></i> - </span><span class="step size-14"> - <i class="icon ion-social-youtube-outline"></i> - </span><span class="step size-16"> - <i class="icon ion-social-youtube-outline"></i> - </span><span class="step size-18"> - <i class="icon ion-social-youtube-outline"></i> - </span><span class="step size-21"> - <i class="icon ion-social-youtube-outline"></i> - </span><span class="step size-24"> - <i class="icon ion-social-youtube-outline"></i> - </span><span class="step size-32"> - <i class="icon ion-social-youtube-outline"></i> - </span><span class="step size-48"> - <i class="icon ion-social-youtube-outline"></i> - </span><span class="step size-64"> - <i class="icon ion-social-youtube-outline"></i> - </span><span class="step size-96"> - <i class="icon ion-social-youtube-outline"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-social-youtube-outline" /> - - <label>Selectable:</label> - <span class="ion">&#xf24c;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf24c;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f24c" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-soup-can"></i> - </span><span class="step size-14"> - <i class="icon ion-soup-can"></i> - </span><span class="step size-16"> - <i class="icon ion-soup-can"></i> - </span><span class="step size-18"> - <i class="icon ion-soup-can"></i> - </span><span class="step size-21"> - <i class="icon ion-soup-can"></i> - </span><span class="step size-24"> - <i class="icon ion-soup-can"></i> - </span><span class="step size-32"> - <i class="icon ion-soup-can"></i> - </span><span class="step size-48"> - <i class="icon ion-soup-can"></i> - </span><span class="step size-64"> - <i class="icon ion-soup-can"></i> - </span><span class="step size-96"> - <i class="icon ion-soup-can"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-soup-can" /> - - <label>Selectable:</label> - <span class="ion">&#xf4f4;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf4f4;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f4f4" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-soup-can-outline"></i> - </span><span class="step size-14"> - <i class="icon ion-soup-can-outline"></i> - </span><span class="step size-16"> - <i class="icon ion-soup-can-outline"></i> - </span><span class="step size-18"> - <i class="icon ion-soup-can-outline"></i> - </span><span class="step size-21"> - <i class="icon ion-soup-can-outline"></i> - </span><span class="step size-24"> - <i class="icon ion-soup-can-outline"></i> - </span><span class="step size-32"> - <i class="icon ion-soup-can-outline"></i> - </span><span class="step size-48"> - <i class="icon ion-soup-can-outline"></i> - </span><span class="step size-64"> - <i class="icon ion-soup-can-outline"></i> - </span><span class="step size-96"> - <i class="icon ion-soup-can-outline"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-soup-can-outline" /> - - <label>Selectable:</label> - <span class="ion">&#xf4f3;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf4f3;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f4f3" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-speakerphone"></i> - </span><span class="step size-14"> - <i class="icon ion-speakerphone"></i> - </span><span class="step size-16"> - <i class="icon ion-speakerphone"></i> - </span><span class="step size-18"> - <i class="icon ion-speakerphone"></i> - </span><span class="step size-21"> - <i class="icon ion-speakerphone"></i> - </span><span class="step size-24"> - <i class="icon ion-speakerphone"></i> - </span><span class="step size-32"> - <i class="icon ion-speakerphone"></i> - </span><span class="step size-48"> - <i class="icon ion-speakerphone"></i> - </span><span class="step size-64"> - <i class="icon ion-speakerphone"></i> - </span><span class="step size-96"> - <i class="icon ion-speakerphone"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-speakerphone" /> - - <label>Selectable:</label> - <span class="ion">&#xf2b2;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf2b2;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f2b2" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-speedometer"></i> - </span><span class="step size-14"> - <i class="icon ion-speedometer"></i> - </span><span class="step size-16"> - <i class="icon ion-speedometer"></i> - </span><span class="step size-18"> - <i class="icon ion-speedometer"></i> - </span><span class="step size-21"> - <i class="icon ion-speedometer"></i> - </span><span class="step size-24"> - <i class="icon ion-speedometer"></i> - </span><span class="step size-32"> - <i class="icon ion-speedometer"></i> - </span><span class="step size-48"> - <i class="icon ion-speedometer"></i> - </span><span class="step size-64"> - <i class="icon ion-speedometer"></i> - </span><span class="step size-96"> - <i class="icon ion-speedometer"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-speedometer" /> - - <label>Selectable:</label> - <span class="ion">&#xf2b3;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf2b3;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f2b3" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-spoon"></i> - </span><span class="step size-14"> - <i class="icon ion-spoon"></i> - </span><span class="step size-16"> - <i class="icon ion-spoon"></i> - </span><span class="step size-18"> - <i class="icon ion-spoon"></i> - </span><span class="step size-21"> - <i class="icon ion-spoon"></i> - </span><span class="step size-24"> - <i class="icon ion-spoon"></i> - </span><span class="step size-32"> - <i class="icon ion-spoon"></i> - </span><span class="step size-48"> - <i class="icon ion-spoon"></i> - </span><span class="step size-64"> - <i class="icon ion-spoon"></i> - </span><span class="step size-96"> - <i class="icon ion-spoon"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-spoon" /> - - <label>Selectable:</label> - <span class="ion">&#xf2b4;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf2b4;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f2b4" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-star"></i> - </span><span class="step size-14"> - <i class="icon ion-star"></i> - </span><span class="step size-16"> - <i class="icon ion-star"></i> - </span><span class="step size-18"> - <i class="icon ion-star"></i> - </span><span class="step size-21"> - <i class="icon ion-star"></i> - </span><span class="step size-24"> - <i class="icon ion-star"></i> - </span><span class="step size-32"> - <i class="icon ion-star"></i> - </span><span class="step size-48"> - <i class="icon ion-star"></i> - </span><span class="step size-64"> - <i class="icon ion-star"></i> - </span><span class="step size-96"> - <i class="icon ion-star"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-star" /> - - <label>Selectable:</label> - <span class="ion">&#xf24e;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf24e;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f24e" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-stats-bars"></i> - </span><span class="step size-14"> - <i class="icon ion-stats-bars"></i> - </span><span class="step size-16"> - <i class="icon ion-stats-bars"></i> - </span><span class="step size-18"> - <i class="icon ion-stats-bars"></i> - </span><span class="step size-21"> - <i class="icon ion-stats-bars"></i> - </span><span class="step size-24"> - <i class="icon ion-stats-bars"></i> - </span><span class="step size-32"> - <i class="icon ion-stats-bars"></i> - </span><span class="step size-48"> - <i class="icon ion-stats-bars"></i> - </span><span class="step size-64"> - <i class="icon ion-stats-bars"></i> - </span><span class="step size-96"> - <i class="icon ion-stats-bars"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-stats-bars" /> - - <label>Selectable:</label> - <span class="ion">&#xf2b5;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf2b5;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f2b5" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-steam"></i> - </span><span class="step size-14"> - <i class="icon ion-steam"></i> - </span><span class="step size-16"> - <i class="icon ion-steam"></i> - </span><span class="step size-18"> - <i class="icon ion-steam"></i> - </span><span class="step size-21"> - <i class="icon ion-steam"></i> - </span><span class="step size-24"> - <i class="icon ion-steam"></i> - </span><span class="step size-32"> - <i class="icon ion-steam"></i> - </span><span class="step size-48"> - <i class="icon ion-steam"></i> - </span><span class="step size-64"> - <i class="icon ion-steam"></i> - </span><span class="step size-96"> - <i class="icon ion-steam"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-steam" /> - - <label>Selectable:</label> - <span class="ion">&#xf30b;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf30b;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f30b" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-stop"></i> - </span><span class="step size-14"> - <i class="icon ion-stop"></i> - </span><span class="step size-16"> - <i class="icon ion-stop"></i> - </span><span class="step size-18"> - <i class="icon ion-stop"></i> - </span><span class="step size-21"> - <i class="icon ion-stop"></i> - </span><span class="step size-24"> - <i class="icon ion-stop"></i> - </span><span class="step size-32"> - <i class="icon ion-stop"></i> - </span><span class="step size-48"> - <i class="icon ion-stop"></i> - </span><span class="step size-64"> - <i class="icon ion-stop"></i> - </span><span class="step size-96"> - <i class="icon ion-stop"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-stop" /> - - <label>Selectable:</label> - <span class="ion">&#xf24f;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf24f;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f24f" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-thermometer"></i> - </span><span class="step size-14"> - <i class="icon ion-thermometer"></i> - </span><span class="step size-16"> - <i class="icon ion-thermometer"></i> - </span><span class="step size-18"> - <i class="icon ion-thermometer"></i> - </span><span class="step size-21"> - <i class="icon ion-thermometer"></i> - </span><span class="step size-24"> - <i class="icon ion-thermometer"></i> - </span><span class="step size-32"> - <i class="icon ion-thermometer"></i> - </span><span class="step size-48"> - <i class="icon ion-thermometer"></i> - </span><span class="step size-64"> - <i class="icon ion-thermometer"></i> - </span><span class="step size-96"> - <i class="icon ion-thermometer"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-thermometer" /> - - <label>Selectable:</label> - <span class="ion">&#xf2b6;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf2b6;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f2b6" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-thumbsdown"></i> - </span><span class="step size-14"> - <i class="icon ion-thumbsdown"></i> - </span><span class="step size-16"> - <i class="icon ion-thumbsdown"></i> - </span><span class="step size-18"> - <i class="icon ion-thumbsdown"></i> - </span><span class="step size-21"> - <i class="icon ion-thumbsdown"></i> - </span><span class="step size-24"> - <i class="icon ion-thumbsdown"></i> - </span><span class="step size-32"> - <i class="icon ion-thumbsdown"></i> - </span><span class="step size-48"> - <i class="icon ion-thumbsdown"></i> - </span><span class="step size-64"> - <i class="icon ion-thumbsdown"></i> - </span><span class="step size-96"> - <i class="icon ion-thumbsdown"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-thumbsdown" /> - - <label>Selectable:</label> - <span class="ion">&#xf250;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf250;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f250" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-thumbsup"></i> - </span><span class="step size-14"> - <i class="icon ion-thumbsup"></i> - </span><span class="step size-16"> - <i class="icon ion-thumbsup"></i> - </span><span class="step size-18"> - <i class="icon ion-thumbsup"></i> - </span><span class="step size-21"> - <i class="icon ion-thumbsup"></i> - </span><span class="step size-24"> - <i class="icon ion-thumbsup"></i> - </span><span class="step size-32"> - <i class="icon ion-thumbsup"></i> - </span><span class="step size-48"> - <i class="icon ion-thumbsup"></i> - </span><span class="step size-64"> - <i class="icon ion-thumbsup"></i> - </span><span class="step size-96"> - <i class="icon ion-thumbsup"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-thumbsup" /> - - <label>Selectable:</label> - <span class="ion">&#xf251;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf251;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f251" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-toggle"></i> - </span><span class="step size-14"> - <i class="icon ion-toggle"></i> - </span><span class="step size-16"> - <i class="icon ion-toggle"></i> - </span><span class="step size-18"> - <i class="icon ion-toggle"></i> - </span><span class="step size-21"> - <i class="icon ion-toggle"></i> - </span><span class="step size-24"> - <i class="icon ion-toggle"></i> - </span><span class="step size-32"> - <i class="icon ion-toggle"></i> - </span><span class="step size-48"> - <i class="icon ion-toggle"></i> - </span><span class="step size-64"> - <i class="icon ion-toggle"></i> - </span><span class="step size-96"> - <i class="icon ion-toggle"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-toggle" /> - - <label>Selectable:</label> - <span class="ion">&#xf355;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf355;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f355" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-toggle-filled"></i> - </span><span class="step size-14"> - <i class="icon ion-toggle-filled"></i> - </span><span class="step size-16"> - <i class="icon ion-toggle-filled"></i> - </span><span class="step size-18"> - <i class="icon ion-toggle-filled"></i> - </span><span class="step size-21"> - <i class="icon ion-toggle-filled"></i> - </span><span class="step size-24"> - <i class="icon ion-toggle-filled"></i> - </span><span class="step size-32"> - <i class="icon ion-toggle-filled"></i> - </span><span class="step size-48"> - <i class="icon ion-toggle-filled"></i> - </span><span class="step size-64"> - <i class="icon ion-toggle-filled"></i> - </span><span class="step size-96"> - <i class="icon ion-toggle-filled"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-toggle-filled" /> - - <label>Selectable:</label> - <span class="ion">&#xf354;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf354;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f354" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-transgender"></i> - </span><span class="step size-14"> - <i class="icon ion-transgender"></i> - </span><span class="step size-16"> - <i class="icon ion-transgender"></i> - </span><span class="step size-18"> - <i class="icon ion-transgender"></i> - </span><span class="step size-21"> - <i class="icon ion-transgender"></i> - </span><span class="step size-24"> - <i class="icon ion-transgender"></i> - </span><span class="step size-32"> - <i class="icon ion-transgender"></i> - </span><span class="step size-48"> - <i class="icon ion-transgender"></i> - </span><span class="step size-64"> - <i class="icon ion-transgender"></i> - </span><span class="step size-96"> - <i class="icon ion-transgender"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-transgender" /> - - <label>Selectable:</label> - <span class="ion">&#xf4f5;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf4f5;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f4f5" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-trash-a"></i> - </span><span class="step size-14"> - <i class="icon ion-trash-a"></i> - </span><span class="step size-16"> - <i class="icon ion-trash-a"></i> - </span><span class="step size-18"> - <i class="icon ion-trash-a"></i> - </span><span class="step size-21"> - <i class="icon ion-trash-a"></i> - </span><span class="step size-24"> - <i class="icon ion-trash-a"></i> - </span><span class="step size-32"> - <i class="icon ion-trash-a"></i> - </span><span class="step size-48"> - <i class="icon ion-trash-a"></i> - </span><span class="step size-64"> - <i class="icon ion-trash-a"></i> - </span><span class="step size-96"> - <i class="icon ion-trash-a"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-trash-a" /> - - <label>Selectable:</label> - <span class="ion">&#xf252;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf252;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f252" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-trash-b"></i> - </span><span class="step size-14"> - <i class="icon ion-trash-b"></i> - </span><span class="step size-16"> - <i class="icon ion-trash-b"></i> - </span><span class="step size-18"> - <i class="icon ion-trash-b"></i> - </span><span class="step size-21"> - <i class="icon ion-trash-b"></i> - </span><span class="step size-24"> - <i class="icon ion-trash-b"></i> - </span><span class="step size-32"> - <i class="icon ion-trash-b"></i> - </span><span class="step size-48"> - <i class="icon ion-trash-b"></i> - </span><span class="step size-64"> - <i class="icon ion-trash-b"></i> - </span><span class="step size-96"> - <i class="icon ion-trash-b"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-trash-b" /> - - <label>Selectable:</label> - <span class="ion">&#xf253;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf253;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f253" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-trophy"></i> - </span><span class="step size-14"> - <i class="icon ion-trophy"></i> - </span><span class="step size-16"> - <i class="icon ion-trophy"></i> - </span><span class="step size-18"> - <i class="icon ion-trophy"></i> - </span><span class="step size-21"> - <i class="icon ion-trophy"></i> - </span><span class="step size-24"> - <i class="icon ion-trophy"></i> - </span><span class="step size-32"> - <i class="icon ion-trophy"></i> - </span><span class="step size-48"> - <i class="icon ion-trophy"></i> - </span><span class="step size-64"> - <i class="icon ion-trophy"></i> - </span><span class="step size-96"> - <i class="icon ion-trophy"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-trophy" /> - - <label>Selectable:</label> - <span class="ion">&#xf356;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf356;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f356" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-tshirt"></i> - </span><span class="step size-14"> - <i class="icon ion-tshirt"></i> - </span><span class="step size-16"> - <i class="icon ion-tshirt"></i> - </span><span class="step size-18"> - <i class="icon ion-tshirt"></i> - </span><span class="step size-21"> - <i class="icon ion-tshirt"></i> - </span><span class="step size-24"> - <i class="icon ion-tshirt"></i> - </span><span class="step size-32"> - <i class="icon ion-tshirt"></i> - </span><span class="step size-48"> - <i class="icon ion-tshirt"></i> - </span><span class="step size-64"> - <i class="icon ion-tshirt"></i> - </span><span class="step size-96"> - <i class="icon ion-tshirt"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-tshirt" /> - - <label>Selectable:</label> - <span class="ion">&#xf4f7;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf4f7;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f4f7" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-tshirt-outline"></i> - </span><span class="step size-14"> - <i class="icon ion-tshirt-outline"></i> - </span><span class="step size-16"> - <i class="icon ion-tshirt-outline"></i> - </span><span class="step size-18"> - <i class="icon ion-tshirt-outline"></i> - </span><span class="step size-21"> - <i class="icon ion-tshirt-outline"></i> - </span><span class="step size-24"> - <i class="icon ion-tshirt-outline"></i> - </span><span class="step size-32"> - <i class="icon ion-tshirt-outline"></i> - </span><span class="step size-48"> - <i class="icon ion-tshirt-outline"></i> - </span><span class="step size-64"> - <i class="icon ion-tshirt-outline"></i> - </span><span class="step size-96"> - <i class="icon ion-tshirt-outline"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-tshirt-outline" /> - - <label>Selectable:</label> - <span class="ion">&#xf4f6;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf4f6;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f4f6" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-umbrella"></i> - </span><span class="step size-14"> - <i class="icon ion-umbrella"></i> - </span><span class="step size-16"> - <i class="icon ion-umbrella"></i> - </span><span class="step size-18"> - <i class="icon ion-umbrella"></i> - </span><span class="step size-21"> - <i class="icon ion-umbrella"></i> - </span><span class="step size-24"> - <i class="icon ion-umbrella"></i> - </span><span class="step size-32"> - <i class="icon ion-umbrella"></i> - </span><span class="step size-48"> - <i class="icon ion-umbrella"></i> - </span><span class="step size-64"> - <i class="icon ion-umbrella"></i> - </span><span class="step size-96"> - <i class="icon ion-umbrella"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-umbrella" /> - - <label>Selectable:</label> - <span class="ion">&#xf2b7;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf2b7;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f2b7" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-university"></i> - </span><span class="step size-14"> - <i class="icon ion-university"></i> - </span><span class="step size-16"> - <i class="icon ion-university"></i> - </span><span class="step size-18"> - <i class="icon ion-university"></i> - </span><span class="step size-21"> - <i class="icon ion-university"></i> - </span><span class="step size-24"> - <i class="icon ion-university"></i> - </span><span class="step size-32"> - <i class="icon ion-university"></i> - </span><span class="step size-48"> - <i class="icon ion-university"></i> - </span><span class="step size-64"> - <i class="icon ion-university"></i> - </span><span class="step size-96"> - <i class="icon ion-university"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-university" /> - - <label>Selectable:</label> - <span class="ion">&#xf357;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf357;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f357" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-unlocked"></i> - </span><span class="step size-14"> - <i class="icon ion-unlocked"></i> - </span><span class="step size-16"> - <i class="icon ion-unlocked"></i> - </span><span class="step size-18"> - <i class="icon ion-unlocked"></i> - </span><span class="step size-21"> - <i class="icon ion-unlocked"></i> - </span><span class="step size-24"> - <i class="icon ion-unlocked"></i> - </span><span class="step size-32"> - <i class="icon ion-unlocked"></i> - </span><span class="step size-48"> - <i class="icon ion-unlocked"></i> - </span><span class="step size-64"> - <i class="icon ion-unlocked"></i> - </span><span class="step size-96"> - <i class="icon ion-unlocked"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-unlocked" /> - - <label>Selectable:</label> - <span class="ion">&#xf254;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf254;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f254" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-upload"></i> - </span><span class="step size-14"> - <i class="icon ion-upload"></i> - </span><span class="step size-16"> - <i class="icon ion-upload"></i> - </span><span class="step size-18"> - <i class="icon ion-upload"></i> - </span><span class="step size-21"> - <i class="icon ion-upload"></i> - </span><span class="step size-24"> - <i class="icon ion-upload"></i> - </span><span class="step size-32"> - <i class="icon ion-upload"></i> - </span><span class="step size-48"> - <i class="icon ion-upload"></i> - </span><span class="step size-64"> - <i class="icon ion-upload"></i> - </span><span class="step size-96"> - <i class="icon ion-upload"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-upload" /> - - <label>Selectable:</label> - <span class="ion">&#xf255;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf255;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f255" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-usb"></i> - </span><span class="step size-14"> - <i class="icon ion-usb"></i> - </span><span class="step size-16"> - <i class="icon ion-usb"></i> - </span><span class="step size-18"> - <i class="icon ion-usb"></i> - </span><span class="step size-21"> - <i class="icon ion-usb"></i> - </span><span class="step size-24"> - <i class="icon ion-usb"></i> - </span><span class="step size-32"> - <i class="icon ion-usb"></i> - </span><span class="step size-48"> - <i class="icon ion-usb"></i> - </span><span class="step size-64"> - <i class="icon ion-usb"></i> - </span><span class="step size-96"> - <i class="icon ion-usb"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-usb" /> - - <label>Selectable:</label> - <span class="ion">&#xf2b8;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf2b8;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f2b8" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-videocamera"></i> - </span><span class="step size-14"> - <i class="icon ion-videocamera"></i> - </span><span class="step size-16"> - <i class="icon ion-videocamera"></i> - </span><span class="step size-18"> - <i class="icon ion-videocamera"></i> - </span><span class="step size-21"> - <i class="icon ion-videocamera"></i> - </span><span class="step size-24"> - <i class="icon ion-videocamera"></i> - </span><span class="step size-32"> - <i class="icon ion-videocamera"></i> - </span><span class="step size-48"> - <i class="icon ion-videocamera"></i> - </span><span class="step size-64"> - <i class="icon ion-videocamera"></i> - </span><span class="step size-96"> - <i class="icon ion-videocamera"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-videocamera" /> - - <label>Selectable:</label> - <span class="ion">&#xf256;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf256;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f256" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-volume-high"></i> - </span><span class="step size-14"> - <i class="icon ion-volume-high"></i> - </span><span class="step size-16"> - <i class="icon ion-volume-high"></i> - </span><span class="step size-18"> - <i class="icon ion-volume-high"></i> - </span><span class="step size-21"> - <i class="icon ion-volume-high"></i> - </span><span class="step size-24"> - <i class="icon ion-volume-high"></i> - </span><span class="step size-32"> - <i class="icon ion-volume-high"></i> - </span><span class="step size-48"> - <i class="icon ion-volume-high"></i> - </span><span class="step size-64"> - <i class="icon ion-volume-high"></i> - </span><span class="step size-96"> - <i class="icon ion-volume-high"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-volume-high" /> - - <label>Selectable:</label> - <span class="ion">&#xf257;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf257;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f257" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-volume-low"></i> - </span><span class="step size-14"> - <i class="icon ion-volume-low"></i> - </span><span class="step size-16"> - <i class="icon ion-volume-low"></i> - </span><span class="step size-18"> - <i class="icon ion-volume-low"></i> - </span><span class="step size-21"> - <i class="icon ion-volume-low"></i> - </span><span class="step size-24"> - <i class="icon ion-volume-low"></i> - </span><span class="step size-32"> - <i class="icon ion-volume-low"></i> - </span><span class="step size-48"> - <i class="icon ion-volume-low"></i> - </span><span class="step size-64"> - <i class="icon ion-volume-low"></i> - </span><span class="step size-96"> - <i class="icon ion-volume-low"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-volume-low" /> - - <label>Selectable:</label> - <span class="ion">&#xf258;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf258;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f258" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-volume-medium"></i> - </span><span class="step size-14"> - <i class="icon ion-volume-medium"></i> - </span><span class="step size-16"> - <i class="icon ion-volume-medium"></i> - </span><span class="step size-18"> - <i class="icon ion-volume-medium"></i> - </span><span class="step size-21"> - <i class="icon ion-volume-medium"></i> - </span><span class="step size-24"> - <i class="icon ion-volume-medium"></i> - </span><span class="step size-32"> - <i class="icon ion-volume-medium"></i> - </span><span class="step size-48"> - <i class="icon ion-volume-medium"></i> - </span><span class="step size-64"> - <i class="icon ion-volume-medium"></i> - </span><span class="step size-96"> - <i class="icon ion-volume-medium"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-volume-medium" /> - - <label>Selectable:</label> - <span class="ion">&#xf259;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf259;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f259" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-volume-mute"></i> - </span><span class="step size-14"> - <i class="icon ion-volume-mute"></i> - </span><span class="step size-16"> - <i class="icon ion-volume-mute"></i> - </span><span class="step size-18"> - <i class="icon ion-volume-mute"></i> - </span><span class="step size-21"> - <i class="icon ion-volume-mute"></i> - </span><span class="step size-24"> - <i class="icon ion-volume-mute"></i> - </span><span class="step size-32"> - <i class="icon ion-volume-mute"></i> - </span><span class="step size-48"> - <i class="icon ion-volume-mute"></i> - </span><span class="step size-64"> - <i class="icon ion-volume-mute"></i> - </span><span class="step size-96"> - <i class="icon ion-volume-mute"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-volume-mute" /> - - <label>Selectable:</label> - <span class="ion">&#xf25a;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf25a;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f25a" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-wand"></i> - </span><span class="step size-14"> - <i class="icon ion-wand"></i> - </span><span class="step size-16"> - <i class="icon ion-wand"></i> - </span><span class="step size-18"> - <i class="icon ion-wand"></i> - </span><span class="step size-21"> - <i class="icon ion-wand"></i> - </span><span class="step size-24"> - <i class="icon ion-wand"></i> - </span><span class="step size-32"> - <i class="icon ion-wand"></i> - </span><span class="step size-48"> - <i class="icon ion-wand"></i> - </span><span class="step size-64"> - <i class="icon ion-wand"></i> - </span><span class="step size-96"> - <i class="icon ion-wand"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-wand" /> - - <label>Selectable:</label> - <span class="ion">&#xf358;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf358;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f358" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-waterdrop"></i> - </span><span class="step size-14"> - <i class="icon ion-waterdrop"></i> - </span><span class="step size-16"> - <i class="icon ion-waterdrop"></i> - </span><span class="step size-18"> - <i class="icon ion-waterdrop"></i> - </span><span class="step size-21"> - <i class="icon ion-waterdrop"></i> - </span><span class="step size-24"> - <i class="icon ion-waterdrop"></i> - </span><span class="step size-32"> - <i class="icon ion-waterdrop"></i> - </span><span class="step size-48"> - <i class="icon ion-waterdrop"></i> - </span><span class="step size-64"> - <i class="icon ion-waterdrop"></i> - </span><span class="step size-96"> - <i class="icon ion-waterdrop"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-waterdrop" /> - - <label>Selectable:</label> - <span class="ion">&#xf25b;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf25b;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f25b" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-wifi"></i> - </span><span class="step size-14"> - <i class="icon ion-wifi"></i> - </span><span class="step size-16"> - <i class="icon ion-wifi"></i> - </span><span class="step size-18"> - <i class="icon ion-wifi"></i> - </span><span class="step size-21"> - <i class="icon ion-wifi"></i> - </span><span class="step size-24"> - <i class="icon ion-wifi"></i> - </span><span class="step size-32"> - <i class="icon ion-wifi"></i> - </span><span class="step size-48"> - <i class="icon ion-wifi"></i> - </span><span class="step size-64"> - <i class="icon ion-wifi"></i> - </span><span class="step size-96"> - <i class="icon ion-wifi"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-wifi" /> - - <label>Selectable:</label> - <span class="ion">&#xf25c;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf25c;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f25c" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-wineglass"></i> - </span><span class="step size-14"> - <i class="icon ion-wineglass"></i> - </span><span class="step size-16"> - <i class="icon ion-wineglass"></i> - </span><span class="step size-18"> - <i class="icon ion-wineglass"></i> - </span><span class="step size-21"> - <i class="icon ion-wineglass"></i> - </span><span class="step size-24"> - <i class="icon ion-wineglass"></i> - </span><span class="step size-32"> - <i class="icon ion-wineglass"></i> - </span><span class="step size-48"> - <i class="icon ion-wineglass"></i> - </span><span class="step size-64"> - <i class="icon ion-wineglass"></i> - </span><span class="step size-96"> - <i class="icon ion-wineglass"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-wineglass" /> - - <label>Selectable:</label> - <span class="ion">&#xf2b9;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf2b9;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f2b9" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-woman"></i> - </span><span class="step size-14"> - <i class="icon ion-woman"></i> - </span><span class="step size-16"> - <i class="icon ion-woman"></i> - </span><span class="step size-18"> - <i class="icon ion-woman"></i> - </span><span class="step size-21"> - <i class="icon ion-woman"></i> - </span><span class="step size-24"> - <i class="icon ion-woman"></i> - </span><span class="step size-32"> - <i class="icon ion-woman"></i> - </span><span class="step size-48"> - <i class="icon ion-woman"></i> - </span><span class="step size-64"> - <i class="icon ion-woman"></i> - </span><span class="step size-96"> - <i class="icon ion-woman"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-woman" /> - - <label>Selectable:</label> - <span class="ion">&#xf25d;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf25d;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f25d" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-wrench"></i> - </span><span class="step size-14"> - <i class="icon ion-wrench"></i> - </span><span class="step size-16"> - <i class="icon ion-wrench"></i> - </span><span class="step size-18"> - <i class="icon ion-wrench"></i> - </span><span class="step size-21"> - <i class="icon ion-wrench"></i> - </span><span class="step size-24"> - <i class="icon ion-wrench"></i> - </span><span class="step size-32"> - <i class="icon ion-wrench"></i> - </span><span class="step size-48"> - <i class="icon ion-wrench"></i> - </span><span class="step size-64"> - <i class="icon ion-wrench"></i> - </span><span class="step size-96"> - <i class="icon ion-wrench"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-wrench" /> - - <label>Selectable:</label> - <span class="ion">&#xf2ba;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf2ba;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f2ba" /> - </div> -</div> -<div class="icon-row"> - <div class="preview-icon"><span class="step size-12"> - <i class="icon ion-xbox"></i> - </span><span class="step size-14"> - <i class="icon ion-xbox"></i> - </span><span class="step size-16"> - <i class="icon ion-xbox"></i> - </span><span class="step size-18"> - <i class="icon ion-xbox"></i> - </span><span class="step size-21"> - <i class="icon ion-xbox"></i> - </span><span class="step size-24"> - <i class="icon ion-xbox"></i> - </span><span class="step size-32"> - <i class="icon ion-xbox"></i> - </span><span class="step size-48"> - <i class="icon ion-xbox"></i> - </span><span class="step size-64"> - <i class="icon ion-xbox"></i> - </span><span class="step size-96"> - <i class="icon ion-xbox"></i> - </span> - </div> - <div class="preview-scale"><span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">32</span><span class="step">48</span><span class="step">64</span><span class="step">96</span></div> - <div class="usage"> - <label>Classname:</label> - <input class="name" type="text" readonly="readonly" onClick="this.select();" value="ion-xbox" /> - - <label>Selectable:</label> - <span class="ion">&#xf30c;</span> - - <label>Escaped HTML:</label> - <input class="html" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf30c;" /> - - <label>CSS Content:</label> - <input class="css" type="text" readonly="readonly" onClick="this.select();" value="\f30c" /> - </div> -</div> - </div> - <footer> - Made with love by the <a href="http://ionicframework.com/">Ionic Framework</a> - </footer> - </div> -</body> -</html> \ No newline at end of file diff --git a/admin/bower_components/Ionicons/component.json b/admin/bower_components/Ionicons/component.json deleted file mode 100644 index 5f4f544..0000000 --- a/admin/bower_components/Ionicons/component.json +++ /dev/null @@ -1,19 +0,0 @@ -{ - "repo": "driftyco/ionicons", - "development": {}, - "version": "2.0.0", - "styles": [ - "css/ionicons.css" - ], - "name": "Ionicons", - "dependencies": {}, - "keywords": [], - "license": "MIT", - "fonts": [ - "fonts/ionicons.eot", - "fonts/ionicons.svg", - "fonts/ionicons.ttf", - "fonts/ionicons.woff" - ], - "description": "The premium icon font for Ionic Framework." -} \ No newline at end of file diff --git a/admin/bower_components/Ionicons/composer.json b/admin/bower_components/Ionicons/composer.json deleted file mode 100644 index 1161e9f..0000000 --- a/admin/bower_components/Ionicons/composer.json +++ /dev/null @@ -1,36 +0,0 @@ -{ - "name": "driftyco/ionicons", - "license": [ - "MIT" - ], - "extra": {}, - "authors": [ - { - "homepage": "https://twitter.com/benjsperry", - "role": "Designer", - "name": "Ben Sperry", - "email": "ben@drifty.com" - }, - { - "homepage": "https://twitter.com/adamdbradley", - "role": "Developer", - "name": "Adam Bradley", - "email": "adam@drifty.com" - }, - { - "homepage": "https://twitter.com/maxlynch", - "role": "Developer", - "name": "Max Lynch", - "email": "max@drifty.com" - } - ], - "keywords": [ - "fonts", - "icon font", - "icons", - "ionic", - "web font" - ], - "homepage": "http://ionicons.com/", - "description": "The premium icon font for Ionic Framework." -} \ No newline at end of file diff --git a/admin/bower_components/Ionicons/css/ionicons.css b/admin/bower_components/Ionicons/css/ionicons.css deleted file mode 100644 index 885aa6b..0000000 --- a/admin/bower_components/Ionicons/css/ionicons.css +++ /dev/null @@ -1,1480 +0,0 @@ -@charset "UTF-8"; -/*! - Ionicons, v2.0.0 - Created by Ben Sperry for the Ionic Framework, http://ionicons.com/ - https://twitter.com/benjsperry https://twitter.com/ionicframework - MIT License: https://github.com/driftyco/ionicons - - Android-style icons originally built by Google’s - Material Design Icons: https://github.com/google/material-design-icons - used under CC BY http://creativecommons.org/licenses/by/4.0/ - Modified icons to fit ionicon’s grid from original. -*/ -@font-face { font-family: "Ionicons"; src: url("../fonts/ionicons.eot?v=2.0.0"); src: url("../fonts/ionicons.eot?v=2.0.0#iefix") format("embedded-opentype"), url("../fonts/ionicons.ttf?v=2.0.0") format("truetype"), url("../fonts/ionicons.woff?v=2.0.0") format("woff"), url("../fonts/ionicons.svg?v=2.0.0#Ionicons") format("svg"); font-weight: normal; font-style: normal; } -.ion, .ionicons, .ion-alert:before, .ion-alert-circled:before, .ion-android-add:before, .ion-android-add-circle:before, .ion-android-alarm-clock:before, .ion-android-alert:before, .ion-android-apps:before, .ion-android-archive:before, .ion-android-arrow-back:before, .ion-android-arrow-down:before, .ion-android-arrow-dropdown:before, .ion-android-arrow-dropdown-circle:before, .ion-android-arrow-dropleft:before, .ion-android-arrow-dropleft-circle:before, .ion-android-arrow-dropright:before, .ion-android-arrow-dropright-circle:before, .ion-android-arrow-dropup:before, .ion-android-arrow-dropup-circle:before, .ion-android-arrow-forward:before, .ion-android-arrow-up:before, .ion-android-attach:before, .ion-android-bar:before, .ion-android-bicycle:before, .ion-android-boat:before, .ion-android-bookmark:before, .ion-android-bulb:before, .ion-android-bus:before, .ion-android-calendar:before, .ion-android-call:before, .ion-android-camera:before, .ion-android-cancel:before, .ion-android-car:before, .ion-android-cart:before, .ion-android-chat:before, .ion-android-checkbox:before, .ion-android-checkbox-blank:before, .ion-android-checkbox-outline:before, .ion-android-checkbox-outline-blank:before, .ion-android-checkmark-circle:before, .ion-android-clipboard:before, .ion-android-close:before, .ion-android-cloud:before, .ion-android-cloud-circle:before, .ion-android-cloud-done:before, .ion-android-cloud-outline:before, .ion-android-color-palette:before, .ion-android-compass:before, .ion-android-contact:before, .ion-android-contacts:before, .ion-android-contract:before, .ion-android-create:before, .ion-android-delete:before, .ion-android-desktop:before, .ion-android-document:before, .ion-android-done:before, .ion-android-done-all:before, .ion-android-download:before, .ion-android-drafts:before, .ion-android-exit:before, .ion-android-expand:before, .ion-android-favorite:before, .ion-android-favorite-outline:before, .ion-android-film:before, .ion-android-folder:before, .ion-android-folder-open:before, .ion-android-funnel:before, .ion-android-globe:before, .ion-android-hand:before, .ion-android-hangout:before, .ion-android-happy:before, .ion-android-home:before, .ion-android-image:before, .ion-android-laptop:before, .ion-android-list:before, .ion-android-locate:before, .ion-android-lock:before, .ion-android-mail:before, .ion-android-map:before, .ion-android-menu:before, .ion-android-microphone:before, .ion-android-microphone-off:before, .ion-android-more-horizontal:before, .ion-android-more-vertical:before, .ion-android-navigate:before, .ion-android-notifications:before, .ion-android-notifications-none:before, .ion-android-notifications-off:before, .ion-android-open:before, .ion-android-options:before, .ion-android-people:before, .ion-android-person:before, .ion-android-person-add:before, .ion-android-phone-landscape:before, .ion-android-phone-portrait:before, .ion-android-pin:before, .ion-android-plane:before, .ion-android-playstore:before, .ion-android-print:before, .ion-android-radio-button-off:before, .ion-android-radio-button-on:before, .ion-android-refresh:before, .ion-android-remove:before, .ion-android-remove-circle:before, .ion-android-restaurant:before, .ion-android-sad:before, .ion-android-search:before, .ion-android-send:before, .ion-android-settings:before, .ion-android-share:before, .ion-android-share-alt:before, .ion-android-star:before, .ion-android-star-half:before, .ion-android-star-outline:before, .ion-android-stopwatch:before, .ion-android-subway:before, .ion-android-sunny:before, .ion-android-sync:before, .ion-android-textsms:before, .ion-android-time:before, .ion-android-train:before, .ion-android-unlock:before, .ion-android-upload:before, .ion-android-volume-down:before, .ion-android-volume-mute:before, .ion-android-volume-off:before, .ion-android-volume-up:before, .ion-android-walk:before, .ion-android-warning:before, .ion-android-watch:before, .ion-android-wifi:before, .ion-aperture:before, .ion-archive:before, .ion-arrow-down-a:before, .ion-arrow-down-b:before, .ion-arrow-down-c:before, .ion-arrow-expand:before, .ion-arrow-graph-down-left:before, .ion-arrow-graph-down-right:before, .ion-arrow-graph-up-left:before, .ion-arrow-graph-up-right:before, .ion-arrow-left-a:before, .ion-arrow-left-b:before, .ion-arrow-left-c:before, .ion-arrow-move:before, .ion-arrow-resize:before, .ion-arrow-return-left:before, .ion-arrow-return-right:before, .ion-arrow-right-a:before, .ion-arrow-right-b:before, .ion-arrow-right-c:before, .ion-arrow-shrink:before, .ion-arrow-swap:before, .ion-arrow-up-a:before, .ion-arrow-up-b:before, .ion-arrow-up-c:before, .ion-asterisk:before, .ion-at:before, .ion-backspace:before, .ion-backspace-outline:before, .ion-bag:before, .ion-battery-charging:before, .ion-battery-empty:before, .ion-battery-full:before, .ion-battery-half:before, .ion-battery-low:before, .ion-beaker:before, .ion-beer:before, .ion-bluetooth:before, .ion-bonfire:before, .ion-bookmark:before, .ion-bowtie:before, .ion-briefcase:before, .ion-bug:before, .ion-calculator:before, .ion-calendar:before, .ion-camera:before, .ion-card:before, .ion-cash:before, .ion-chatbox:before, .ion-chatbox-working:before, .ion-chatboxes:before, .ion-chatbubble:before, .ion-chatbubble-working:before, .ion-chatbubbles:before, .ion-checkmark:before, .ion-checkmark-circled:before, .ion-checkmark-round:before, .ion-chevron-down:before, .ion-chevron-left:before, .ion-chevron-right:before, .ion-chevron-up:before, .ion-clipboard:before, .ion-clock:before, .ion-close:before, .ion-close-circled:before, .ion-close-round:before, .ion-closed-captioning:before, .ion-cloud:before, .ion-code:before, .ion-code-download:before, .ion-code-working:before, .ion-coffee:before, .ion-compass:before, .ion-compose:before, .ion-connection-bars:before, .ion-contrast:before, .ion-crop:before, .ion-cube:before, .ion-disc:before, .ion-document:before, .ion-document-text:before, .ion-drag:before, .ion-earth:before, .ion-easel:before, .ion-edit:before, .ion-egg:before, .ion-eject:before, .ion-email:before, .ion-email-unread:before, .ion-erlenmeyer-flask:before, .ion-erlenmeyer-flask-bubbles:before, .ion-eye:before, .ion-eye-disabled:before, .ion-female:before, .ion-filing:before, .ion-film-marker:before, .ion-fireball:before, .ion-flag:before, .ion-flame:before, .ion-flash:before, .ion-flash-off:before, .ion-folder:before, .ion-fork:before, .ion-fork-repo:before, .ion-forward:before, .ion-funnel:before, .ion-gear-a:before, .ion-gear-b:before, .ion-grid:before, .ion-hammer:before, .ion-happy:before, .ion-happy-outline:before, .ion-headphone:before, .ion-heart:before, .ion-heart-broken:before, .ion-help:before, .ion-help-buoy:before, .ion-help-circled:before, .ion-home:before, .ion-icecream:before, .ion-image:before, .ion-images:before, .ion-information:before, .ion-information-circled:before, .ion-ionic:before, .ion-ios-alarm:before, .ion-ios-alarm-outline:before, .ion-ios-albums:before, .ion-ios-albums-outline:before, .ion-ios-americanfootball:before, .ion-ios-americanfootball-outline:before, .ion-ios-analytics:before, .ion-ios-analytics-outline:before, .ion-ios-arrow-back:before, .ion-ios-arrow-down:before, .ion-ios-arrow-forward:before, .ion-ios-arrow-left:before, .ion-ios-arrow-right:before, .ion-ios-arrow-thin-down:before, .ion-ios-arrow-thin-left:before, .ion-ios-arrow-thin-right:before, .ion-ios-arrow-thin-up:before, .ion-ios-arrow-up:before, .ion-ios-at:before, .ion-ios-at-outline:before, .ion-ios-barcode:before, .ion-ios-barcode-outline:before, .ion-ios-baseball:before, .ion-ios-baseball-outline:before, .ion-ios-basketball:before, .ion-ios-basketball-outline:before, .ion-ios-bell:before, .ion-ios-bell-outline:before, .ion-ios-body:before, .ion-ios-body-outline:before, .ion-ios-bolt:before, .ion-ios-bolt-outline:before, .ion-ios-book:before, .ion-ios-book-outline:before, .ion-ios-bookmarks:before, .ion-ios-bookmarks-outline:before, .ion-ios-box:before, .ion-ios-box-outline:before, .ion-ios-briefcase:before, .ion-ios-briefcase-outline:before, .ion-ios-browsers:before, .ion-ios-browsers-outline:before, .ion-ios-calculator:before, .ion-ios-calculator-outline:before, .ion-ios-calendar:before, .ion-ios-calendar-outline:before, .ion-ios-camera:before, .ion-ios-camera-outline:before, .ion-ios-cart:before, .ion-ios-cart-outline:before, .ion-ios-chatboxes:before, .ion-ios-chatboxes-outline:before, .ion-ios-chatbubble:before, .ion-ios-chatbubble-outline:before, .ion-ios-checkmark:before, .ion-ios-checkmark-empty:before, .ion-ios-checkmark-outline:before, .ion-ios-circle-filled:before, .ion-ios-circle-outline:before, .ion-ios-clock:before, .ion-ios-clock-outline:before, .ion-ios-close:before, .ion-ios-close-empty:before, .ion-ios-close-outline:before, .ion-ios-cloud:before, .ion-ios-cloud-download:before, .ion-ios-cloud-download-outline:before, .ion-ios-cloud-outline:before, .ion-ios-cloud-upload:before, .ion-ios-cloud-upload-outline:before, .ion-ios-cloudy:before, .ion-ios-cloudy-night:before, .ion-ios-cloudy-night-outline:before, .ion-ios-cloudy-outline:before, .ion-ios-cog:before, .ion-ios-cog-outline:before, .ion-ios-color-filter:before, .ion-ios-color-filter-outline:before, .ion-ios-color-wand:before, .ion-ios-color-wand-outline:before, .ion-ios-compose:before, .ion-ios-compose-outline:before, .ion-ios-contact:before, .ion-ios-contact-outline:before, .ion-ios-copy:before, .ion-ios-copy-outline:before, .ion-ios-crop:before, .ion-ios-crop-strong:before, .ion-ios-download:before, .ion-ios-download-outline:before, .ion-ios-drag:before, .ion-ios-email:before, .ion-ios-email-outline:before, .ion-ios-eye:before, .ion-ios-eye-outline:before, .ion-ios-fastforward:before, .ion-ios-fastforward-outline:before, .ion-ios-filing:before, .ion-ios-filing-outline:before, .ion-ios-film:before, .ion-ios-film-outline:before, .ion-ios-flag:before, .ion-ios-flag-outline:before, .ion-ios-flame:before, .ion-ios-flame-outline:before, .ion-ios-flask:before, .ion-ios-flask-outline:before, .ion-ios-flower:before, .ion-ios-flower-outline:before, .ion-ios-folder:before, .ion-ios-folder-outline:before, .ion-ios-football:before, .ion-ios-football-outline:before, .ion-ios-game-controller-a:before, .ion-ios-game-controller-a-outline:before, .ion-ios-game-controller-b:before, .ion-ios-game-controller-b-outline:before, .ion-ios-gear:before, .ion-ios-gear-outline:before, .ion-ios-glasses:before, .ion-ios-glasses-outline:before, .ion-ios-grid-view:before, .ion-ios-grid-view-outline:before, .ion-ios-heart:before, .ion-ios-heart-outline:before, .ion-ios-help:before, .ion-ios-help-empty:before, .ion-ios-help-outline:before, .ion-ios-home:before, .ion-ios-home-outline:before, .ion-ios-infinite:before, .ion-ios-infinite-outline:before, .ion-ios-information:before, .ion-ios-information-empty:before, .ion-ios-information-outline:before, .ion-ios-ionic-outline:before, .ion-ios-keypad:before, .ion-ios-keypad-outline:before, .ion-ios-lightbulb:before, .ion-ios-lightbulb-outline:before, .ion-ios-list:before, .ion-ios-list-outline:before, .ion-ios-location:before, .ion-ios-location-outline:before, .ion-ios-locked:before, .ion-ios-locked-outline:before, .ion-ios-loop:before, .ion-ios-loop-strong:before, .ion-ios-medical:before, .ion-ios-medical-outline:before, .ion-ios-medkit:before, .ion-ios-medkit-outline:before, .ion-ios-mic:before, .ion-ios-mic-off:before, .ion-ios-mic-outline:before, .ion-ios-minus:before, .ion-ios-minus-empty:before, .ion-ios-minus-outline:before, .ion-ios-monitor:before, .ion-ios-monitor-outline:before, .ion-ios-moon:before, .ion-ios-moon-outline:before, .ion-ios-more:before, .ion-ios-more-outline:before, .ion-ios-musical-note:before, .ion-ios-musical-notes:before, .ion-ios-navigate:before, .ion-ios-navigate-outline:before, .ion-ios-nutrition:before, .ion-ios-nutrition-outline:before, .ion-ios-paper:before, .ion-ios-paper-outline:before, .ion-ios-paperplane:before, .ion-ios-paperplane-outline:before, .ion-ios-partlysunny:before, .ion-ios-partlysunny-outline:before, .ion-ios-pause:before, .ion-ios-pause-outline:before, .ion-ios-paw:before, .ion-ios-paw-outline:before, .ion-ios-people:before, .ion-ios-people-outline:before, .ion-ios-person:before, .ion-ios-person-outline:before, .ion-ios-personadd:before, .ion-ios-personadd-outline:before, .ion-ios-photos:before, .ion-ios-photos-outline:before, .ion-ios-pie:before, .ion-ios-pie-outline:before, .ion-ios-pint:before, .ion-ios-pint-outline:before, .ion-ios-play:before, .ion-ios-play-outline:before, .ion-ios-plus:before, .ion-ios-plus-empty:before, .ion-ios-plus-outline:before, .ion-ios-pricetag:before, .ion-ios-pricetag-outline:before, .ion-ios-pricetags:before, .ion-ios-pricetags-outline:before, .ion-ios-printer:before, .ion-ios-printer-outline:before, .ion-ios-pulse:before, .ion-ios-pulse-strong:before, .ion-ios-rainy:before, .ion-ios-rainy-outline:before, .ion-ios-recording:before, .ion-ios-recording-outline:before, .ion-ios-redo:before, .ion-ios-redo-outline:before, .ion-ios-refresh:before, .ion-ios-refresh-empty:before, .ion-ios-refresh-outline:before, .ion-ios-reload:before, .ion-ios-reverse-camera:before, .ion-ios-reverse-camera-outline:before, .ion-ios-rewind:before, .ion-ios-rewind-outline:before, .ion-ios-rose:before, .ion-ios-rose-outline:before, .ion-ios-search:before, .ion-ios-search-strong:before, .ion-ios-settings:before, .ion-ios-settings-strong:before, .ion-ios-shuffle:before, .ion-ios-shuffle-strong:before, .ion-ios-skipbackward:before, .ion-ios-skipbackward-outline:before, .ion-ios-skipforward:before, .ion-ios-skipforward-outline:before, .ion-ios-snowy:before, .ion-ios-speedometer:before, .ion-ios-speedometer-outline:before, .ion-ios-star:before, .ion-ios-star-half:before, .ion-ios-star-outline:before, .ion-ios-stopwatch:before, .ion-ios-stopwatch-outline:before, .ion-ios-sunny:before, .ion-ios-sunny-outline:before, .ion-ios-telephone:before, .ion-ios-telephone-outline:before, .ion-ios-tennisball:before, .ion-ios-tennisball-outline:before, .ion-ios-thunderstorm:before, .ion-ios-thunderstorm-outline:before, .ion-ios-time:before, .ion-ios-time-outline:before, .ion-ios-timer:before, .ion-ios-timer-outline:before, .ion-ios-toggle:before, .ion-ios-toggle-outline:before, .ion-ios-trash:before, .ion-ios-trash-outline:before, .ion-ios-undo:before, .ion-ios-undo-outline:before, .ion-ios-unlocked:before, .ion-ios-unlocked-outline:before, .ion-ios-upload:before, .ion-ios-upload-outline:before, .ion-ios-videocam:before, .ion-ios-videocam-outline:before, .ion-ios-volume-high:before, .ion-ios-volume-low:before, .ion-ios-wineglass:before, .ion-ios-wineglass-outline:before, .ion-ios-world:before, .ion-ios-world-outline:before, .ion-ipad:before, .ion-iphone:before, .ion-ipod:before, .ion-jet:before, .ion-key:before, .ion-knife:before, .ion-laptop:before, .ion-leaf:before, .ion-levels:before, .ion-lightbulb:before, .ion-link:before, .ion-load-a:before, .ion-load-b:before, .ion-load-c:before, .ion-load-d:before, .ion-location:before, .ion-lock-combination:before, .ion-locked:before, .ion-log-in:before, .ion-log-out:before, .ion-loop:before, .ion-magnet:before, .ion-male:before, .ion-man:before, .ion-map:before, .ion-medkit:before, .ion-merge:before, .ion-mic-a:before, .ion-mic-b:before, .ion-mic-c:before, .ion-minus:before, .ion-minus-circled:before, .ion-minus-round:before, .ion-model-s:before, .ion-monitor:before, .ion-more:before, .ion-mouse:before, .ion-music-note:before, .ion-navicon:before, .ion-navicon-round:before, .ion-navigate:before, .ion-network:before, .ion-no-smoking:before, .ion-nuclear:before, .ion-outlet:before, .ion-paintbrush:before, .ion-paintbucket:before, .ion-paper-airplane:before, .ion-paperclip:before, .ion-pause:before, .ion-person:before, .ion-person-add:before, .ion-person-stalker:before, .ion-pie-graph:before, .ion-pin:before, .ion-pinpoint:before, .ion-pizza:before, .ion-plane:before, .ion-planet:before, .ion-play:before, .ion-playstation:before, .ion-plus:before, .ion-plus-circled:before, .ion-plus-round:before, .ion-podium:before, .ion-pound:before, .ion-power:before, .ion-pricetag:before, .ion-pricetags:before, .ion-printer:before, .ion-pull-request:before, .ion-qr-scanner:before, .ion-quote:before, .ion-radio-waves:before, .ion-record:before, .ion-refresh:before, .ion-reply:before, .ion-reply-all:before, .ion-ribbon-a:before, .ion-ribbon-b:before, .ion-sad:before, .ion-sad-outline:before, .ion-scissors:before, .ion-search:before, .ion-settings:before, .ion-share:before, .ion-shuffle:before, .ion-skip-backward:before, .ion-skip-forward:before, .ion-social-android:before, .ion-social-android-outline:before, .ion-social-angular:before, .ion-social-angular-outline:before, .ion-social-apple:before, .ion-social-apple-outline:before, .ion-social-bitcoin:before, .ion-social-bitcoin-outline:before, .ion-social-buffer:before, .ion-social-buffer-outline:before, .ion-social-chrome:before, .ion-social-chrome-outline:before, .ion-social-codepen:before, .ion-social-codepen-outline:before, .ion-social-css3:before, .ion-social-css3-outline:before, .ion-social-designernews:before, .ion-social-designernews-outline:before, .ion-social-dribbble:before, .ion-social-dribbble-outline:before, .ion-social-dropbox:before, .ion-social-dropbox-outline:before, .ion-social-euro:before, .ion-social-euro-outline:before, .ion-social-facebook:before, .ion-social-facebook-outline:before, .ion-social-foursquare:before, .ion-social-foursquare-outline:before, .ion-social-freebsd-devil:before, .ion-social-github:before, .ion-social-github-outline:before, .ion-social-google:before, .ion-social-google-outline:before, .ion-social-googleplus:before, .ion-social-googleplus-outline:before, .ion-social-hackernews:before, .ion-social-hackernews-outline:before, .ion-social-html5:before, .ion-social-html5-outline:before, .ion-social-instagram:before, .ion-social-instagram-outline:before, .ion-social-javascript:before, .ion-social-javascript-outline:before, .ion-social-linkedin:before, .ion-social-linkedin-outline:before, .ion-social-markdown:before, .ion-social-nodejs:before, .ion-social-octocat:before, .ion-social-pinterest:before, .ion-social-pinterest-outline:before, .ion-social-python:before, .ion-social-reddit:before, .ion-social-reddit-outline:before, .ion-social-rss:before, .ion-social-rss-outline:before, .ion-social-sass:before, .ion-social-skype:before, .ion-social-skype-outline:before, .ion-social-snapchat:before, .ion-social-snapchat-outline:before, .ion-social-tumblr:before, .ion-social-tumblr-outline:before, .ion-social-tux:before, .ion-social-twitch:before, .ion-social-twitch-outline:before, .ion-social-twitter:before, .ion-social-twitter-outline:before, .ion-social-usd:before, .ion-social-usd-outline:before, .ion-social-vimeo:before, .ion-social-vimeo-outline:before, .ion-social-whatsapp:before, .ion-social-whatsapp-outline:before, .ion-social-windows:before, .ion-social-windows-outline:before, .ion-social-wordpress:before, .ion-social-wordpress-outline:before, .ion-social-yahoo:before, .ion-social-yahoo-outline:before, .ion-social-yen:before, .ion-social-yen-outline:before, .ion-social-youtube:before, .ion-social-youtube-outline:before, .ion-soup-can:before, .ion-soup-can-outline:before, .ion-speakerphone:before, .ion-speedometer:before, .ion-spoon:before, .ion-star:before, .ion-stats-bars:before, .ion-steam:before, .ion-stop:before, .ion-thermometer:before, .ion-thumbsdown:before, .ion-thumbsup:before, .ion-toggle:before, .ion-toggle-filled:before, .ion-transgender:before, .ion-trash-a:before, .ion-trash-b:before, .ion-trophy:before, .ion-tshirt:before, .ion-tshirt-outline:before, .ion-umbrella:before, .ion-university:before, .ion-unlocked:before, .ion-upload:before, .ion-usb:before, .ion-videocamera:before, .ion-volume-high:before, .ion-volume-low:before, .ion-volume-medium:before, .ion-volume-mute:before, .ion-wand:before, .ion-waterdrop:before, .ion-wifi:before, .ion-wineglass:before, .ion-woman:before, .ion-wrench:before, .ion-xbox:before { display: inline-block; font-family: "Ionicons"; speak: none; font-style: normal; font-weight: normal; font-variant: normal; text-transform: none; text-rendering: auto; line-height: 1; -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; } - -.ion-alert:before { content: "\f101"; } - -.ion-alert-circled:before { content: "\f100"; } - -.ion-android-add:before { content: "\f2c7"; } - -.ion-android-add-circle:before { content: "\f359"; } - -.ion-android-alarm-clock:before { content: "\f35a"; } - -.ion-android-alert:before { content: "\f35b"; } - -.ion-android-apps:before { content: "\f35c"; } - -.ion-android-archive:before { content: "\f2c9"; } - -.ion-android-arrow-back:before { content: "\f2ca"; } - -.ion-android-arrow-down:before { content: "\f35d"; } - -.ion-android-arrow-dropdown:before { content: "\f35f"; } - -.ion-android-arrow-dropdown-circle:before { content: "\f35e"; } - -.ion-android-arrow-dropleft:before { content: "\f361"; } - -.ion-android-arrow-dropleft-circle:before { content: "\f360"; } - -.ion-android-arrow-dropright:before { content: "\f363"; } - -.ion-android-arrow-dropright-circle:before { content: "\f362"; } - -.ion-android-arrow-dropup:before { content: "\f365"; } - -.ion-android-arrow-dropup-circle:before { content: "\f364"; } - -.ion-android-arrow-forward:before { content: "\f30f"; } - -.ion-android-arrow-up:before { content: "\f366"; } - -.ion-android-attach:before { content: "\f367"; } - -.ion-android-bar:before { content: "\f368"; } - -.ion-android-bicycle:before { content: "\f369"; } - -.ion-android-boat:before { content: "\f36a"; } - -.ion-android-bookmark:before { content: "\f36b"; } - -.ion-android-bulb:before { content: "\f36c"; } - -.ion-android-bus:before { content: "\f36d"; } - -.ion-android-calendar:before { content: "\f2d1"; } - -.ion-android-call:before { content: "\f2d2"; } - -.ion-android-camera:before { content: "\f2d3"; } - -.ion-android-cancel:before { content: "\f36e"; } - -.ion-android-car:before { content: "\f36f"; } - -.ion-android-cart:before { content: "\f370"; } - -.ion-android-chat:before { content: "\f2d4"; } - -.ion-android-checkbox:before { content: "\f374"; } - -.ion-android-checkbox-blank:before { content: "\f371"; } - -.ion-android-checkbox-outline:before { content: "\f373"; } - -.ion-android-checkbox-outline-blank:before { content: "\f372"; } - -.ion-android-checkmark-circle:before { content: "\f375"; } - -.ion-android-clipboard:before { content: "\f376"; } - -.ion-android-close:before { content: "\f2d7"; } - -.ion-android-cloud:before { content: "\f37a"; } - -.ion-android-cloud-circle:before { content: "\f377"; } - -.ion-android-cloud-done:before { content: "\f378"; } - -.ion-android-cloud-outline:before { content: "\f379"; } - -.ion-android-color-palette:before { content: "\f37b"; } - -.ion-android-compass:before { content: "\f37c"; } - -.ion-android-contact:before { content: "\f2d8"; } - -.ion-android-contacts:before { content: "\f2d9"; } - -.ion-android-contract:before { content: "\f37d"; } - -.ion-android-create:before { content: "\f37e"; } - -.ion-android-delete:before { content: "\f37f"; } - -.ion-android-desktop:before { content: "\f380"; } - -.ion-android-document:before { content: "\f381"; } - -.ion-android-done:before { content: "\f383"; } - -.ion-android-done-all:before { content: "\f382"; } - -.ion-android-download:before { content: "\f2dd"; } - -.ion-android-drafts:before { content: "\f384"; } - -.ion-android-exit:before { content: "\f385"; } - -.ion-android-expand:before { content: "\f386"; } - -.ion-android-favorite:before { content: "\f388"; } - -.ion-android-favorite-outline:before { content: "\f387"; } - -.ion-android-film:before { content: "\f389"; } - -.ion-android-folder:before { content: "\f2e0"; } - -.ion-android-folder-open:before { content: "\f38a"; } - -.ion-android-funnel:before { content: "\f38b"; } - -.ion-android-globe:before { content: "\f38c"; } - -.ion-android-hand:before { content: "\f2e3"; } - -.ion-android-hangout:before { content: "\f38d"; } - -.ion-android-happy:before { content: "\f38e"; } - -.ion-android-home:before { content: "\f38f"; } - -.ion-android-image:before { content: "\f2e4"; } - -.ion-android-laptop:before { content: "\f390"; } - -.ion-android-list:before { content: "\f391"; } - -.ion-android-locate:before { content: "\f2e9"; } - -.ion-android-lock:before { content: "\f392"; } - -.ion-android-mail:before { content: "\f2eb"; } - -.ion-android-map:before { content: "\f393"; } - -.ion-android-menu:before { content: "\f394"; } - -.ion-android-microphone:before { content: "\f2ec"; } - -.ion-android-microphone-off:before { content: "\f395"; } - -.ion-android-more-horizontal:before { content: "\f396"; } - -.ion-android-more-vertical:before { content: "\f397"; } - -.ion-android-navigate:before { content: "\f398"; } - -.ion-android-notifications:before { content: "\f39b"; } - -.ion-android-notifications-none:before { content: "\f399"; } - -.ion-android-notifications-off:before { content: "\f39a"; } - -.ion-android-open:before { content: "\f39c"; } - -.ion-android-options:before { content: "\f39d"; } - -.ion-android-people:before { content: "\f39e"; } - -.ion-android-person:before { content: "\f3a0"; } - -.ion-android-person-add:before { content: "\f39f"; } - -.ion-android-phone-landscape:before { content: "\f3a1"; } - -.ion-android-phone-portrait:before { content: "\f3a2"; } - -.ion-android-pin:before { content: "\f3a3"; } - -.ion-android-plane:before { content: "\f3a4"; } - -.ion-android-playstore:before { content: "\f2f0"; } - -.ion-android-print:before { content: "\f3a5"; } - -.ion-android-radio-button-off:before { content: "\f3a6"; } - -.ion-android-radio-button-on:before { content: "\f3a7"; } - -.ion-android-refresh:before { content: "\f3a8"; } - -.ion-android-remove:before { content: "\f2f4"; } - -.ion-android-remove-circle:before { content: "\f3a9"; } - -.ion-android-restaurant:before { content: "\f3aa"; } - -.ion-android-sad:before { content: "\f3ab"; } - -.ion-android-search:before { content: "\f2f5"; } - -.ion-android-send:before { content: "\f2f6"; } - -.ion-android-settings:before { content: "\f2f7"; } - -.ion-android-share:before { content: "\f2f8"; } - -.ion-android-share-alt:before { content: "\f3ac"; } - -.ion-android-star:before { content: "\f2fc"; } - -.ion-android-star-half:before { content: "\f3ad"; } - -.ion-android-star-outline:before { content: "\f3ae"; } - -.ion-android-stopwatch:before { content: "\f2fd"; } - -.ion-android-subway:before { content: "\f3af"; } - -.ion-android-sunny:before { content: "\f3b0"; } - -.ion-android-sync:before { content: "\f3b1"; } - -.ion-android-textsms:before { content: "\f3b2"; } - -.ion-android-time:before { content: "\f3b3"; } - -.ion-android-train:before { content: "\f3b4"; } - -.ion-android-unlock:before { content: "\f3b5"; } - -.ion-android-upload:before { content: "\f3b6"; } - -.ion-android-volume-down:before { content: "\f3b7"; } - -.ion-android-volume-mute:before { content: "\f3b8"; } - -.ion-android-volume-off:before { content: "\f3b9"; } - -.ion-android-volume-up:before { content: "\f3ba"; } - -.ion-android-walk:before { content: "\f3bb"; } - -.ion-android-warning:before { content: "\f3bc"; } - -.ion-android-watch:before { content: "\f3bd"; } - -.ion-android-wifi:before { content: "\f305"; } - -.ion-aperture:before { content: "\f313"; } - -.ion-archive:before { content: "\f102"; } - -.ion-arrow-down-a:before { content: "\f103"; } - -.ion-arrow-down-b:before { content: "\f104"; } - -.ion-arrow-down-c:before { content: "\f105"; } - -.ion-arrow-expand:before { content: "\f25e"; } - -.ion-arrow-graph-down-left:before { content: "\f25f"; } - -.ion-arrow-graph-down-right:before { content: "\f260"; } - -.ion-arrow-graph-up-left:before { content: "\f261"; } - -.ion-arrow-graph-up-right:before { content: "\f262"; } - -.ion-arrow-left-a:before { content: "\f106"; } - -.ion-arrow-left-b:before { content: "\f107"; } - -.ion-arrow-left-c:before { content: "\f108"; } - -.ion-arrow-move:before { content: "\f263"; } - -.ion-arrow-resize:before { content: "\f264"; } - -.ion-arrow-return-left:before { content: "\f265"; } - -.ion-arrow-return-right:before { content: "\f266"; } - -.ion-arrow-right-a:before { content: "\f109"; } - -.ion-arrow-right-b:before { content: "\f10a"; } - -.ion-arrow-right-c:before { content: "\f10b"; } - -.ion-arrow-shrink:before { content: "\f267"; } - -.ion-arrow-swap:before { content: "\f268"; } - -.ion-arrow-up-a:before { content: "\f10c"; } - -.ion-arrow-up-b:before { content: "\f10d"; } - -.ion-arrow-up-c:before { content: "\f10e"; } - -.ion-asterisk:before { content: "\f314"; } - -.ion-at:before { content: "\f10f"; } - -.ion-backspace:before { content: "\f3bf"; } - -.ion-backspace-outline:before { content: "\f3be"; } - -.ion-bag:before { content: "\f110"; } - -.ion-battery-charging:before { content: "\f111"; } - -.ion-battery-empty:before { content: "\f112"; } - -.ion-battery-full:before { content: "\f113"; } - -.ion-battery-half:before { content: "\f114"; } - -.ion-battery-low:before { content: "\f115"; } - -.ion-beaker:before { content: "\f269"; } - -.ion-beer:before { content: "\f26a"; } - -.ion-bluetooth:before { content: "\f116"; } - -.ion-bonfire:before { content: "\f315"; } - -.ion-bookmark:before { content: "\f26b"; } - -.ion-bowtie:before { content: "\f3c0"; } - -.ion-briefcase:before { content: "\f26c"; } - -.ion-bug:before { content: "\f2be"; } - -.ion-calculator:before { content: "\f26d"; } - -.ion-calendar:before { content: "\f117"; } - -.ion-camera:before { content: "\f118"; } - -.ion-card:before { content: "\f119"; } - -.ion-cash:before { content: "\f316"; } - -.ion-chatbox:before { content: "\f11b"; } - -.ion-chatbox-working:before { content: "\f11a"; } - -.ion-chatboxes:before { content: "\f11c"; } - -.ion-chatbubble:before { content: "\f11e"; } - -.ion-chatbubble-working:before { content: "\f11d"; } - -.ion-chatbubbles:before { content: "\f11f"; } - -.ion-checkmark:before { content: "\f122"; } - -.ion-checkmark-circled:before { content: "\f120"; } - -.ion-checkmark-round:before { content: "\f121"; } - -.ion-chevron-down:before { content: "\f123"; } - -.ion-chevron-left:before { content: "\f124"; } - -.ion-chevron-right:before { content: "\f125"; } - -.ion-chevron-up:before { content: "\f126"; } - -.ion-clipboard:before { content: "\f127"; } - -.ion-clock:before { content: "\f26e"; } - -.ion-close:before { content: "\f12a"; } - -.ion-close-circled:before { content: "\f128"; } - -.ion-close-round:before { content: "\f129"; } - -.ion-closed-captioning:before { content: "\f317"; } - -.ion-cloud:before { content: "\f12b"; } - -.ion-code:before { content: "\f271"; } - -.ion-code-download:before { content: "\f26f"; } - -.ion-code-working:before { content: "\f270"; } - -.ion-coffee:before { content: "\f272"; } - -.ion-compass:before { content: "\f273"; } - -.ion-compose:before { content: "\f12c"; } - -.ion-connection-bars:before { content: "\f274"; } - -.ion-contrast:before { content: "\f275"; } - -.ion-crop:before { content: "\f3c1"; } - -.ion-cube:before { content: "\f318"; } - -.ion-disc:before { content: "\f12d"; } - -.ion-document:before { content: "\f12f"; } - -.ion-document-text:before { content: "\f12e"; } - -.ion-drag:before { content: "\f130"; } - -.ion-earth:before { content: "\f276"; } - -.ion-easel:before { content: "\f3c2"; } - -.ion-edit:before { content: "\f2bf"; } - -.ion-egg:before { content: "\f277"; } - -.ion-eject:before { content: "\f131"; } - -.ion-email:before { content: "\f132"; } - -.ion-email-unread:before { content: "\f3c3"; } - -.ion-erlenmeyer-flask:before { content: "\f3c5"; } - -.ion-erlenmeyer-flask-bubbles:before { content: "\f3c4"; } - -.ion-eye:before { content: "\f133"; } - -.ion-eye-disabled:before { content: "\f306"; } - -.ion-female:before { content: "\f278"; } - -.ion-filing:before { content: "\f134"; } - -.ion-film-marker:before { content: "\f135"; } - -.ion-fireball:before { content: "\f319"; } - -.ion-flag:before { content: "\f279"; } - -.ion-flame:before { content: "\f31a"; } - -.ion-flash:before { content: "\f137"; } - -.ion-flash-off:before { content: "\f136"; } - -.ion-folder:before { content: "\f139"; } - -.ion-fork:before { content: "\f27a"; } - -.ion-fork-repo:before { content: "\f2c0"; } - -.ion-forward:before { content: "\f13a"; } - -.ion-funnel:before { content: "\f31b"; } - -.ion-gear-a:before { content: "\f13d"; } - -.ion-gear-b:before { content: "\f13e"; } - -.ion-grid:before { content: "\f13f"; } - -.ion-hammer:before { content: "\f27b"; } - -.ion-happy:before { content: "\f31c"; } - -.ion-happy-outline:before { content: "\f3c6"; } - -.ion-headphone:before { content: "\f140"; } - -.ion-heart:before { content: "\f141"; } - -.ion-heart-broken:before { content: "\f31d"; } - -.ion-help:before { content: "\f143"; } - -.ion-help-buoy:before { content: "\f27c"; } - -.ion-help-circled:before { content: "\f142"; } - -.ion-home:before { content: "\f144"; } - -.ion-icecream:before { content: "\f27d"; } - -.ion-image:before { content: "\f147"; } - -.ion-images:before { content: "\f148"; } - -.ion-information:before { content: "\f14a"; } - -.ion-information-circled:before { content: "\f149"; } - -.ion-ionic:before { content: "\f14b"; } - -.ion-ios-alarm:before { content: "\f3c8"; } - -.ion-ios-alarm-outline:before { content: "\f3c7"; } - -.ion-ios-albums:before { content: "\f3ca"; } - -.ion-ios-albums-outline:before { content: "\f3c9"; } - -.ion-ios-americanfootball:before { content: "\f3cc"; } - -.ion-ios-americanfootball-outline:before { content: "\f3cb"; } - -.ion-ios-analytics:before { content: "\f3ce"; } - -.ion-ios-analytics-outline:before { content: "\f3cd"; } - -.ion-ios-arrow-back:before { content: "\f3cf"; } - -.ion-ios-arrow-down:before { content: "\f3d0"; } - -.ion-ios-arrow-forward:before { content: "\f3d1"; } - -.ion-ios-arrow-left:before { content: "\f3d2"; } - -.ion-ios-arrow-right:before { content: "\f3d3"; } - -.ion-ios-arrow-thin-down:before { content: "\f3d4"; } - -.ion-ios-arrow-thin-left:before { content: "\f3d5"; } - -.ion-ios-arrow-thin-right:before { content: "\f3d6"; } - -.ion-ios-arrow-thin-up:before { content: "\f3d7"; } - -.ion-ios-arrow-up:before { content: "\f3d8"; } - -.ion-ios-at:before { content: "\f3da"; } - -.ion-ios-at-outline:before { content: "\f3d9"; } - -.ion-ios-barcode:before { content: "\f3dc"; } - -.ion-ios-barcode-outline:before { content: "\f3db"; } - -.ion-ios-baseball:before { content: "\f3de"; } - -.ion-ios-baseball-outline:before { content: "\f3dd"; } - -.ion-ios-basketball:before { content: "\f3e0"; } - -.ion-ios-basketball-outline:before { content: "\f3df"; } - -.ion-ios-bell:before { content: "\f3e2"; } - -.ion-ios-bell-outline:before { content: "\f3e1"; } - -.ion-ios-body:before { content: "\f3e4"; } - -.ion-ios-body-outline:before { content: "\f3e3"; } - -.ion-ios-bolt:before { content: "\f3e6"; } - -.ion-ios-bolt-outline:before { content: "\f3e5"; } - -.ion-ios-book:before { content: "\f3e8"; } - -.ion-ios-book-outline:before { content: "\f3e7"; } - -.ion-ios-bookmarks:before { content: "\f3ea"; } - -.ion-ios-bookmarks-outline:before { content: "\f3e9"; } - -.ion-ios-box:before { content: "\f3ec"; } - -.ion-ios-box-outline:before { content: "\f3eb"; } - -.ion-ios-briefcase:before { content: "\f3ee"; } - -.ion-ios-briefcase-outline:before { content: "\f3ed"; } - -.ion-ios-browsers:before { content: "\f3f0"; } - -.ion-ios-browsers-outline:before { content: "\f3ef"; } - -.ion-ios-calculator:before { content: "\f3f2"; } - -.ion-ios-calculator-outline:before { content: "\f3f1"; } - -.ion-ios-calendar:before { content: "\f3f4"; } - -.ion-ios-calendar-outline:before { content: "\f3f3"; } - -.ion-ios-camera:before { content: "\f3f6"; } - -.ion-ios-camera-outline:before { content: "\f3f5"; } - -.ion-ios-cart:before { content: "\f3f8"; } - -.ion-ios-cart-outline:before { content: "\f3f7"; } - -.ion-ios-chatboxes:before { content: "\f3fa"; } - -.ion-ios-chatboxes-outline:before { content: "\f3f9"; } - -.ion-ios-chatbubble:before { content: "\f3fc"; } - -.ion-ios-chatbubble-outline:before { content: "\f3fb"; } - -.ion-ios-checkmark:before { content: "\f3ff"; } - -.ion-ios-checkmark-empty:before { content: "\f3fd"; } - -.ion-ios-checkmark-outline:before { content: "\f3fe"; } - -.ion-ios-circle-filled:before { content: "\f400"; } - -.ion-ios-circle-outline:before { content: "\f401"; } - -.ion-ios-clock:before { content: "\f403"; } - -.ion-ios-clock-outline:before { content: "\f402"; } - -.ion-ios-close:before { content: "\f406"; } - -.ion-ios-close-empty:before { content: "\f404"; } - -.ion-ios-close-outline:before { content: "\f405"; } - -.ion-ios-cloud:before { content: "\f40c"; } - -.ion-ios-cloud-download:before { content: "\f408"; } - -.ion-ios-cloud-download-outline:before { content: "\f407"; } - -.ion-ios-cloud-outline:before { content: "\f409"; } - -.ion-ios-cloud-upload:before { content: "\f40b"; } - -.ion-ios-cloud-upload-outline:before { content: "\f40a"; } - -.ion-ios-cloudy:before { content: "\f410"; } - -.ion-ios-cloudy-night:before { content: "\f40e"; } - -.ion-ios-cloudy-night-outline:before { content: "\f40d"; } - -.ion-ios-cloudy-outline:before { content: "\f40f"; } - -.ion-ios-cog:before { content: "\f412"; } - -.ion-ios-cog-outline:before { content: "\f411"; } - -.ion-ios-color-filter:before { content: "\f414"; } - -.ion-ios-color-filter-outline:before { content: "\f413"; } - -.ion-ios-color-wand:before { content: "\f416"; } - -.ion-ios-color-wand-outline:before { content: "\f415"; } - -.ion-ios-compose:before { content: "\f418"; } - -.ion-ios-compose-outline:before { content: "\f417"; } - -.ion-ios-contact:before { content: "\f41a"; } - -.ion-ios-contact-outline:before { content: "\f419"; } - -.ion-ios-copy:before { content: "\f41c"; } - -.ion-ios-copy-outline:before { content: "\f41b"; } - -.ion-ios-crop:before { content: "\f41e"; } - -.ion-ios-crop-strong:before { content: "\f41d"; } - -.ion-ios-download:before { content: "\f420"; } - -.ion-ios-download-outline:before { content: "\f41f"; } - -.ion-ios-drag:before { content: "\f421"; } - -.ion-ios-email:before { content: "\f423"; } - -.ion-ios-email-outline:before { content: "\f422"; } - -.ion-ios-eye:before { content: "\f425"; } - -.ion-ios-eye-outline:before { content: "\f424"; } - -.ion-ios-fastforward:before { content: "\f427"; } - -.ion-ios-fastforward-outline:before { content: "\f426"; } - -.ion-ios-filing:before { content: "\f429"; } - -.ion-ios-filing-outline:before { content: "\f428"; } - -.ion-ios-film:before { content: "\f42b"; } - -.ion-ios-film-outline:before { content: "\f42a"; } - -.ion-ios-flag:before { content: "\f42d"; } - -.ion-ios-flag-outline:before { content: "\f42c"; } - -.ion-ios-flame:before { content: "\f42f"; } - -.ion-ios-flame-outline:before { content: "\f42e"; } - -.ion-ios-flask:before { content: "\f431"; } - -.ion-ios-flask-outline:before { content: "\f430"; } - -.ion-ios-flower:before { content: "\f433"; } - -.ion-ios-flower-outline:before { content: "\f432"; } - -.ion-ios-folder:before { content: "\f435"; } - -.ion-ios-folder-outline:before { content: "\f434"; } - -.ion-ios-football:before { content: "\f437"; } - -.ion-ios-football-outline:before { content: "\f436"; } - -.ion-ios-game-controller-a:before { content: "\f439"; } - -.ion-ios-game-controller-a-outline:before { content: "\f438"; } - -.ion-ios-game-controller-b:before { content: "\f43b"; } - -.ion-ios-game-controller-b-outline:before { content: "\f43a"; } - -.ion-ios-gear:before { content: "\f43d"; } - -.ion-ios-gear-outline:before { content: "\f43c"; } - -.ion-ios-glasses:before { content: "\f43f"; } - -.ion-ios-glasses-outline:before { content: "\f43e"; } - -.ion-ios-grid-view:before { content: "\f441"; } - -.ion-ios-grid-view-outline:before { content: "\f440"; } - -.ion-ios-heart:before { content: "\f443"; } - -.ion-ios-heart-outline:before { content: "\f442"; } - -.ion-ios-help:before { content: "\f446"; } - -.ion-ios-help-empty:before { content: "\f444"; } - -.ion-ios-help-outline:before { content: "\f445"; } - -.ion-ios-home:before { content: "\f448"; } - -.ion-ios-home-outline:before { content: "\f447"; } - -.ion-ios-infinite:before { content: "\f44a"; } - -.ion-ios-infinite-outline:before { content: "\f449"; } - -.ion-ios-information:before { content: "\f44d"; } - -.ion-ios-information-empty:before { content: "\f44b"; } - -.ion-ios-information-outline:before { content: "\f44c"; } - -.ion-ios-ionic-outline:before { content: "\f44e"; } - -.ion-ios-keypad:before { content: "\f450"; } - -.ion-ios-keypad-outline:before { content: "\f44f"; } - -.ion-ios-lightbulb:before { content: "\f452"; } - -.ion-ios-lightbulb-outline:before { content: "\f451"; } - -.ion-ios-list:before { content: "\f454"; } - -.ion-ios-list-outline:before { content: "\f453"; } - -.ion-ios-location:before { content: "\f456"; } - -.ion-ios-location-outline:before { content: "\f455"; } - -.ion-ios-locked:before { content: "\f458"; } - -.ion-ios-locked-outline:before { content: "\f457"; } - -.ion-ios-loop:before { content: "\f45a"; } - -.ion-ios-loop-strong:before { content: "\f459"; } - -.ion-ios-medical:before { content: "\f45c"; } - -.ion-ios-medical-outline:before { content: "\f45b"; } - -.ion-ios-medkit:before { content: "\f45e"; } - -.ion-ios-medkit-outline:before { content: "\f45d"; } - -.ion-ios-mic:before { content: "\f461"; } - -.ion-ios-mic-off:before { content: "\f45f"; } - -.ion-ios-mic-outline:before { content: "\f460"; } - -.ion-ios-minus:before { content: "\f464"; } - -.ion-ios-minus-empty:before { content: "\f462"; } - -.ion-ios-minus-outline:before { content: "\f463"; } - -.ion-ios-monitor:before { content: "\f466"; } - -.ion-ios-monitor-outline:before { content: "\f465"; } - -.ion-ios-moon:before { content: "\f468"; } - -.ion-ios-moon-outline:before { content: "\f467"; } - -.ion-ios-more:before { content: "\f46a"; } - -.ion-ios-more-outline:before { content: "\f469"; } - -.ion-ios-musical-note:before { content: "\f46b"; } - -.ion-ios-musical-notes:before { content: "\f46c"; } - -.ion-ios-navigate:before { content: "\f46e"; } - -.ion-ios-navigate-outline:before { content: "\f46d"; } - -.ion-ios-nutrition:before { content: "\f470"; } - -.ion-ios-nutrition-outline:before { content: "\f46f"; } - -.ion-ios-paper:before { content: "\f472"; } - -.ion-ios-paper-outline:before { content: "\f471"; } - -.ion-ios-paperplane:before { content: "\f474"; } - -.ion-ios-paperplane-outline:before { content: "\f473"; } - -.ion-ios-partlysunny:before { content: "\f476"; } - -.ion-ios-partlysunny-outline:before { content: "\f475"; } - -.ion-ios-pause:before { content: "\f478"; } - -.ion-ios-pause-outline:before { content: "\f477"; } - -.ion-ios-paw:before { content: "\f47a"; } - -.ion-ios-paw-outline:before { content: "\f479"; } - -.ion-ios-people:before { content: "\f47c"; } - -.ion-ios-people-outline:before { content: "\f47b"; } - -.ion-ios-person:before { content: "\f47e"; } - -.ion-ios-person-outline:before { content: "\f47d"; } - -.ion-ios-personadd:before { content: "\f480"; } - -.ion-ios-personadd-outline:before { content: "\f47f"; } - -.ion-ios-photos:before { content: "\f482"; } - -.ion-ios-photos-outline:before { content: "\f481"; } - -.ion-ios-pie:before { content: "\f484"; } - -.ion-ios-pie-outline:before { content: "\f483"; } - -.ion-ios-pint:before { content: "\f486"; } - -.ion-ios-pint-outline:before { content: "\f485"; } - -.ion-ios-play:before { content: "\f488"; } - -.ion-ios-play-outline:before { content: "\f487"; } - -.ion-ios-plus:before { content: "\f48b"; } - -.ion-ios-plus-empty:before { content: "\f489"; } - -.ion-ios-plus-outline:before { content: "\f48a"; } - -.ion-ios-pricetag:before { content: "\f48d"; } - -.ion-ios-pricetag-outline:before { content: "\f48c"; } - -.ion-ios-pricetags:before { content: "\f48f"; } - -.ion-ios-pricetags-outline:before { content: "\f48e"; } - -.ion-ios-printer:before { content: "\f491"; } - -.ion-ios-printer-outline:before { content: "\f490"; } - -.ion-ios-pulse:before { content: "\f493"; } - -.ion-ios-pulse-strong:before { content: "\f492"; } - -.ion-ios-rainy:before { content: "\f495"; } - -.ion-ios-rainy-outline:before { content: "\f494"; } - -.ion-ios-recording:before { content: "\f497"; } - -.ion-ios-recording-outline:before { content: "\f496"; } - -.ion-ios-redo:before { content: "\f499"; } - -.ion-ios-redo-outline:before { content: "\f498"; } - -.ion-ios-refresh:before { content: "\f49c"; } - -.ion-ios-refresh-empty:before { content: "\f49a"; } - -.ion-ios-refresh-outline:before { content: "\f49b"; } - -.ion-ios-reload:before { content: "\f49d"; } - -.ion-ios-reverse-camera:before { content: "\f49f"; } - -.ion-ios-reverse-camera-outline:before { content: "\f49e"; } - -.ion-ios-rewind:before { content: "\f4a1"; } - -.ion-ios-rewind-outline:before { content: "\f4a0"; } - -.ion-ios-rose:before { content: "\f4a3"; } - -.ion-ios-rose-outline:before { content: "\f4a2"; } - -.ion-ios-search:before { content: "\f4a5"; } - -.ion-ios-search-strong:before { content: "\f4a4"; } - -.ion-ios-settings:before { content: "\f4a7"; } - -.ion-ios-settings-strong:before { content: "\f4a6"; } - -.ion-ios-shuffle:before { content: "\f4a9"; } - -.ion-ios-shuffle-strong:before { content: "\f4a8"; } - -.ion-ios-skipbackward:before { content: "\f4ab"; } - -.ion-ios-skipbackward-outline:before { content: "\f4aa"; } - -.ion-ios-skipforward:before { content: "\f4ad"; } - -.ion-ios-skipforward-outline:before { content: "\f4ac"; } - -.ion-ios-snowy:before { content: "\f4ae"; } - -.ion-ios-speedometer:before { content: "\f4b0"; } - -.ion-ios-speedometer-outline:before { content: "\f4af"; } - -.ion-ios-star:before { content: "\f4b3"; } - -.ion-ios-star-half:before { content: "\f4b1"; } - -.ion-ios-star-outline:before { content: "\f4b2"; } - -.ion-ios-stopwatch:before { content: "\f4b5"; } - -.ion-ios-stopwatch-outline:before { content: "\f4b4"; } - -.ion-ios-sunny:before { content: "\f4b7"; } - -.ion-ios-sunny-outline:before { content: "\f4b6"; } - -.ion-ios-telephone:before { content: "\f4b9"; } - -.ion-ios-telephone-outline:before { content: "\f4b8"; } - -.ion-ios-tennisball:before { content: "\f4bb"; } - -.ion-ios-tennisball-outline:before { content: "\f4ba"; } - -.ion-ios-thunderstorm:before { content: "\f4bd"; } - -.ion-ios-thunderstorm-outline:before { content: "\f4bc"; } - -.ion-ios-time:before { content: "\f4bf"; } - -.ion-ios-time-outline:before { content: "\f4be"; } - -.ion-ios-timer:before { content: "\f4c1"; } - -.ion-ios-timer-outline:before { content: "\f4c0"; } - -.ion-ios-toggle:before { content: "\f4c3"; } - -.ion-ios-toggle-outline:before { content: "\f4c2"; } - -.ion-ios-trash:before { content: "\f4c5"; } - -.ion-ios-trash-outline:before { content: "\f4c4"; } - -.ion-ios-undo:before { content: "\f4c7"; } - -.ion-ios-undo-outline:before { content: "\f4c6"; } - -.ion-ios-unlocked:before { content: "\f4c9"; } - -.ion-ios-unlocked-outline:before { content: "\f4c8"; } - -.ion-ios-upload:before { content: "\f4cb"; } - -.ion-ios-upload-outline:before { content: "\f4ca"; } - -.ion-ios-videocam:before { content: "\f4cd"; } - -.ion-ios-videocam-outline:before { content: "\f4cc"; } - -.ion-ios-volume-high:before { content: "\f4ce"; } - -.ion-ios-volume-low:before { content: "\f4cf"; } - -.ion-ios-wineglass:before { content: "\f4d1"; } - -.ion-ios-wineglass-outline:before { content: "\f4d0"; } - -.ion-ios-world:before { content: "\f4d3"; } - -.ion-ios-world-outline:before { content: "\f4d2"; } - -.ion-ipad:before { content: "\f1f9"; } - -.ion-iphone:before { content: "\f1fa"; } - -.ion-ipod:before { content: "\f1fb"; } - -.ion-jet:before { content: "\f295"; } - -.ion-key:before { content: "\f296"; } - -.ion-knife:before { content: "\f297"; } - -.ion-laptop:before { content: "\f1fc"; } - -.ion-leaf:before { content: "\f1fd"; } - -.ion-levels:before { content: "\f298"; } - -.ion-lightbulb:before { content: "\f299"; } - -.ion-link:before { content: "\f1fe"; } - -.ion-load-a:before { content: "\f29a"; } - -.ion-load-b:before { content: "\f29b"; } - -.ion-load-c:before { content: "\f29c"; } - -.ion-load-d:before { content: "\f29d"; } - -.ion-location:before { content: "\f1ff"; } - -.ion-lock-combination:before { content: "\f4d4"; } - -.ion-locked:before { content: "\f200"; } - -.ion-log-in:before { content: "\f29e"; } - -.ion-log-out:before { content: "\f29f"; } - -.ion-loop:before { content: "\f201"; } - -.ion-magnet:before { content: "\f2a0"; } - -.ion-male:before { content: "\f2a1"; } - -.ion-man:before { content: "\f202"; } - -.ion-map:before { content: "\f203"; } - -.ion-medkit:before { content: "\f2a2"; } - -.ion-merge:before { content: "\f33f"; } - -.ion-mic-a:before { content: "\f204"; } - -.ion-mic-b:before { content: "\f205"; } - -.ion-mic-c:before { content: "\f206"; } - -.ion-minus:before { content: "\f209"; } - -.ion-minus-circled:before { content: "\f207"; } - -.ion-minus-round:before { content: "\f208"; } - -.ion-model-s:before { content: "\f2c1"; } - -.ion-monitor:before { content: "\f20a"; } - -.ion-more:before { content: "\f20b"; } - -.ion-mouse:before { content: "\f340"; } - -.ion-music-note:before { content: "\f20c"; } - -.ion-navicon:before { content: "\f20e"; } - -.ion-navicon-round:before { content: "\f20d"; } - -.ion-navigate:before { content: "\f2a3"; } - -.ion-network:before { content: "\f341"; } - -.ion-no-smoking:before { content: "\f2c2"; } - -.ion-nuclear:before { content: "\f2a4"; } - -.ion-outlet:before { content: "\f342"; } - -.ion-paintbrush:before { content: "\f4d5"; } - -.ion-paintbucket:before { content: "\f4d6"; } - -.ion-paper-airplane:before { content: "\f2c3"; } - -.ion-paperclip:before { content: "\f20f"; } - -.ion-pause:before { content: "\f210"; } - -.ion-person:before { content: "\f213"; } - -.ion-person-add:before { content: "\f211"; } - -.ion-person-stalker:before { content: "\f212"; } - -.ion-pie-graph:before { content: "\f2a5"; } - -.ion-pin:before { content: "\f2a6"; } - -.ion-pinpoint:before { content: "\f2a7"; } - -.ion-pizza:before { content: "\f2a8"; } - -.ion-plane:before { content: "\f214"; } - -.ion-planet:before { content: "\f343"; } - -.ion-play:before { content: "\f215"; } - -.ion-playstation:before { content: "\f30a"; } - -.ion-plus:before { content: "\f218"; } - -.ion-plus-circled:before { content: "\f216"; } - -.ion-plus-round:before { content: "\f217"; } - -.ion-podium:before { content: "\f344"; } - -.ion-pound:before { content: "\f219"; } - -.ion-power:before { content: "\f2a9"; } - -.ion-pricetag:before { content: "\f2aa"; } - -.ion-pricetags:before { content: "\f2ab"; } - -.ion-printer:before { content: "\f21a"; } - -.ion-pull-request:before { content: "\f345"; } - -.ion-qr-scanner:before { content: "\f346"; } - -.ion-quote:before { content: "\f347"; } - -.ion-radio-waves:before { content: "\f2ac"; } - -.ion-record:before { content: "\f21b"; } - -.ion-refresh:before { content: "\f21c"; } - -.ion-reply:before { content: "\f21e"; } - -.ion-reply-all:before { content: "\f21d"; } - -.ion-ribbon-a:before { content: "\f348"; } - -.ion-ribbon-b:before { content: "\f349"; } - -.ion-sad:before { content: "\f34a"; } - -.ion-sad-outline:before { content: "\f4d7"; } - -.ion-scissors:before { content: "\f34b"; } - -.ion-search:before { content: "\f21f"; } - -.ion-settings:before { content: "\f2ad"; } - -.ion-share:before { content: "\f220"; } - -.ion-shuffle:before { content: "\f221"; } - -.ion-skip-backward:before { content: "\f222"; } - -.ion-skip-forward:before { content: "\f223"; } - -.ion-social-android:before { content: "\f225"; } - -.ion-social-android-outline:before { content: "\f224"; } - -.ion-social-angular:before { content: "\f4d9"; } - -.ion-social-angular-outline:before { content: "\f4d8"; } - -.ion-social-apple:before { content: "\f227"; } - -.ion-social-apple-outline:before { content: "\f226"; } - -.ion-social-bitcoin:before { content: "\f2af"; } - -.ion-social-bitcoin-outline:before { content: "\f2ae"; } - -.ion-social-buffer:before { content: "\f229"; } - -.ion-social-buffer-outline:before { content: "\f228"; } - -.ion-social-chrome:before { content: "\f4db"; } - -.ion-social-chrome-outline:before { content: "\f4da"; } - -.ion-social-codepen:before { content: "\f4dd"; } - -.ion-social-codepen-outline:before { content: "\f4dc"; } - -.ion-social-css3:before { content: "\f4df"; } - -.ion-social-css3-outline:before { content: "\f4de"; } - -.ion-social-designernews:before { content: "\f22b"; } - -.ion-social-designernews-outline:before { content: "\f22a"; } - -.ion-social-dribbble:before { content: "\f22d"; } - -.ion-social-dribbble-outline:before { content: "\f22c"; } - -.ion-social-dropbox:before { content: "\f22f"; } - -.ion-social-dropbox-outline:before { content: "\f22e"; } - -.ion-social-euro:before { content: "\f4e1"; } - -.ion-social-euro-outline:before { content: "\f4e0"; } - -.ion-social-facebook:before { content: "\f231"; } - -.ion-social-facebook-outline:before { content: "\f230"; } - -.ion-social-foursquare:before { content: "\f34d"; } - -.ion-social-foursquare-outline:before { content: "\f34c"; } - -.ion-social-freebsd-devil:before { content: "\f2c4"; } - -.ion-social-github:before { content: "\f233"; } - -.ion-social-github-outline:before { content: "\f232"; } - -.ion-social-google:before { content: "\f34f"; } - -.ion-social-google-outline:before { content: "\f34e"; } - -.ion-social-googleplus:before { content: "\f235"; } - -.ion-social-googleplus-outline:before { content: "\f234"; } - -.ion-social-hackernews:before { content: "\f237"; } - -.ion-social-hackernews-outline:before { content: "\f236"; } - -.ion-social-html5:before { content: "\f4e3"; } - -.ion-social-html5-outline:before { content: "\f4e2"; } - -.ion-social-instagram:before { content: "\f351"; } - -.ion-social-instagram-outline:before { content: "\f350"; } - -.ion-social-javascript:before { content: "\f4e5"; } - -.ion-social-javascript-outline:before { content: "\f4e4"; } - -.ion-social-linkedin:before { content: "\f239"; } - -.ion-social-linkedin-outline:before { content: "\f238"; } - -.ion-social-markdown:before { content: "\f4e6"; } - -.ion-social-nodejs:before { content: "\f4e7"; } - -.ion-social-octocat:before { content: "\f4e8"; } - -.ion-social-pinterest:before { content: "\f2b1"; } - -.ion-social-pinterest-outline:before { content: "\f2b0"; } - -.ion-social-python:before { content: "\f4e9"; } - -.ion-social-reddit:before { content: "\f23b"; } - -.ion-social-reddit-outline:before { content: "\f23a"; } - -.ion-social-rss:before { content: "\f23d"; } - -.ion-social-rss-outline:before { content: "\f23c"; } - -.ion-social-sass:before { content: "\f4ea"; } - -.ion-social-skype:before { content: "\f23f"; } - -.ion-social-skype-outline:before { content: "\f23e"; } - -.ion-social-snapchat:before { content: "\f4ec"; } - -.ion-social-snapchat-outline:before { content: "\f4eb"; } - -.ion-social-tumblr:before { content: "\f241"; } - -.ion-social-tumblr-outline:before { content: "\f240"; } - -.ion-social-tux:before { content: "\f2c5"; } - -.ion-social-twitch:before { content: "\f4ee"; } - -.ion-social-twitch-outline:before { content: "\f4ed"; } - -.ion-social-twitter:before { content: "\f243"; } - -.ion-social-twitter-outline:before { content: "\f242"; } - -.ion-social-usd:before { content: "\f353"; } - -.ion-social-usd-outline:before { content: "\f352"; } - -.ion-social-vimeo:before { content: "\f245"; } - -.ion-social-vimeo-outline:before { content: "\f244"; } - -.ion-social-whatsapp:before { content: "\f4f0"; } - -.ion-social-whatsapp-outline:before { content: "\f4ef"; } - -.ion-social-windows:before { content: "\f247"; } - -.ion-social-windows-outline:before { content: "\f246"; } - -.ion-social-wordpress:before { content: "\f249"; } - -.ion-social-wordpress-outline:before { content: "\f248"; } - -.ion-social-yahoo:before { content: "\f24b"; } - -.ion-social-yahoo-outline:before { content: "\f24a"; } - -.ion-social-yen:before { content: "\f4f2"; } - -.ion-social-yen-outline:before { content: "\f4f1"; } - -.ion-social-youtube:before { content: "\f24d"; } - -.ion-social-youtube-outline:before { content: "\f24c"; } - -.ion-soup-can:before { content: "\f4f4"; } - -.ion-soup-can-outline:before { content: "\f4f3"; } - -.ion-speakerphone:before { content: "\f2b2"; } - -.ion-speedometer:before { content: "\f2b3"; } - -.ion-spoon:before { content: "\f2b4"; } - -.ion-star:before { content: "\f24e"; } - -.ion-stats-bars:before { content: "\f2b5"; } - -.ion-steam:before { content: "\f30b"; } - -.ion-stop:before { content: "\f24f"; } - -.ion-thermometer:before { content: "\f2b6"; } - -.ion-thumbsdown:before { content: "\f250"; } - -.ion-thumbsup:before { content: "\f251"; } - -.ion-toggle:before { content: "\f355"; } - -.ion-toggle-filled:before { content: "\f354"; } - -.ion-transgender:before { content: "\f4f5"; } - -.ion-trash-a:before { content: "\f252"; } - -.ion-trash-b:before { content: "\f253"; } - -.ion-trophy:before { content: "\f356"; } - -.ion-tshirt:before { content: "\f4f7"; } - -.ion-tshirt-outline:before { content: "\f4f6"; } - -.ion-umbrella:before { content: "\f2b7"; } - -.ion-university:before { content: "\f357"; } - -.ion-unlocked:before { content: "\f254"; } - -.ion-upload:before { content: "\f255"; } - -.ion-usb:before { content: "\f2b8"; } - -.ion-videocamera:before { content: "\f256"; } - -.ion-volume-high:before { content: "\f257"; } - -.ion-volume-low:before { content: "\f258"; } - -.ion-volume-medium:before { content: "\f259"; } - -.ion-volume-mute:before { content: "\f25a"; } - -.ion-wand:before { content: "\f358"; } - -.ion-waterdrop:before { content: "\f25b"; } - -.ion-wifi:before { content: "\f25c"; } - -.ion-wineglass:before { content: "\f2b9"; } - -.ion-woman:before { content: "\f25d"; } - -.ion-wrench:before { content: "\f2ba"; } - -.ion-xbox:before { content: "\f30c"; } diff --git a/admin/bower_components/Ionicons/css/ionicons.min.css b/admin/bower_components/Ionicons/css/ionicons.min.css deleted file mode 100644 index baba9e9..0000000 --- a/admin/bower_components/Ionicons/css/ionicons.min.css +++ /dev/null @@ -1,11 +0,0 @@ -@charset "UTF-8";/*! - Ionicons, v2.0.0 - Created by Ben Sperry for the Ionic Framework, http://ionicons.com/ - https://twitter.com/benjsperry https://twitter.com/ionicframework - MIT License: https://github.com/driftyco/ionicons - - Android-style icons originally built by Google’s - Material Design Icons: https://github.com/google/material-design-icons - used under CC BY http://creativecommons.org/licenses/by/4.0/ - Modified icons to fit ionicon’s grid from original. -*/@font-face{font-family:"Ionicons";src:url("../fonts/ionicons.eot?v=2.0.0");src:url("../fonts/ionicons.eot?v=2.0.0#iefix") format("embedded-opentype"),url("../fonts/ionicons.ttf?v=2.0.0") format("truetype"),url("../fonts/ionicons.woff?v=2.0.0") format("woff"),url("../fonts/ionicons.svg?v=2.0.0#Ionicons") format("svg");font-weight:normal;font-style:normal}.ion,.ionicons,.ion-alert:before,.ion-alert-circled:before,.ion-android-add:before,.ion-android-add-circle:before,.ion-android-alarm-clock:before,.ion-android-alert:before,.ion-android-apps:before,.ion-android-archive:before,.ion-android-arrow-back:before,.ion-android-arrow-down:before,.ion-android-arrow-dropdown:before,.ion-android-arrow-dropdown-circle:before,.ion-android-arrow-dropleft:before,.ion-android-arrow-dropleft-circle:before,.ion-android-arrow-dropright:before,.ion-android-arrow-dropright-circle:before,.ion-android-arrow-dropup:before,.ion-android-arrow-dropup-circle:before,.ion-android-arrow-forward:before,.ion-android-arrow-up:before,.ion-android-attach:before,.ion-android-bar:before,.ion-android-bicycle:before,.ion-android-boat:before,.ion-android-bookmark:before,.ion-android-bulb:before,.ion-android-bus:before,.ion-android-calendar:before,.ion-android-call:before,.ion-android-camera:before,.ion-android-cancel:before,.ion-android-car:before,.ion-android-cart:before,.ion-android-chat:before,.ion-android-checkbox:before,.ion-android-checkbox-blank:before,.ion-android-checkbox-outline:before,.ion-android-checkbox-outline-blank:before,.ion-android-checkmark-circle:before,.ion-android-clipboard:before,.ion-android-close:before,.ion-android-cloud:before,.ion-android-cloud-circle:before,.ion-android-cloud-done:before,.ion-android-cloud-outline:before,.ion-android-color-palette:before,.ion-android-compass:before,.ion-android-contact:before,.ion-android-contacts:before,.ion-android-contract:before,.ion-android-create:before,.ion-android-delete:before,.ion-android-desktop:before,.ion-android-document:before,.ion-android-done:before,.ion-android-done-all:before,.ion-android-download:before,.ion-android-drafts:before,.ion-android-exit:before,.ion-android-expand:before,.ion-android-favorite:before,.ion-android-favorite-outline:before,.ion-android-film:before,.ion-android-folder:before,.ion-android-folder-open:before,.ion-android-funnel:before,.ion-android-globe:before,.ion-android-hand:before,.ion-android-hangout:before,.ion-android-happy:before,.ion-android-home:before,.ion-android-image:before,.ion-android-laptop:before,.ion-android-list:before,.ion-android-locate:before,.ion-android-lock:before,.ion-android-mail:before,.ion-android-map:before,.ion-android-menu:before,.ion-android-microphone:before,.ion-android-microphone-off:before,.ion-android-more-horizontal:before,.ion-android-more-vertical:before,.ion-android-navigate:before,.ion-android-notifications:before,.ion-android-notifications-none:before,.ion-android-notifications-off:before,.ion-android-open:before,.ion-android-options:before,.ion-android-people:before,.ion-android-person:before,.ion-android-person-add:before,.ion-android-phone-landscape:before,.ion-android-phone-portrait:before,.ion-android-pin:before,.ion-android-plane:before,.ion-android-playstore:before,.ion-android-print:before,.ion-android-radio-button-off:before,.ion-android-radio-button-on:before,.ion-android-refresh:before,.ion-android-remove:before,.ion-android-remove-circle:before,.ion-android-restaurant:before,.ion-android-sad:before,.ion-android-search:before,.ion-android-send:before,.ion-android-settings:before,.ion-android-share:before,.ion-android-share-alt:before,.ion-android-star:before,.ion-android-star-half:before,.ion-android-star-outline:before,.ion-android-stopwatch:before,.ion-android-subway:before,.ion-android-sunny:before,.ion-android-sync:before,.ion-android-textsms:before,.ion-android-time:before,.ion-android-train:before,.ion-android-unlock:before,.ion-android-upload:before,.ion-android-volume-down:before,.ion-android-volume-mute:before,.ion-android-volume-off:before,.ion-android-volume-up:before,.ion-android-walk:before,.ion-android-warning:before,.ion-android-watch:before,.ion-android-wifi:before,.ion-aperture:before,.ion-archive:before,.ion-arrow-down-a:before,.ion-arrow-down-b:before,.ion-arrow-down-c:before,.ion-arrow-expand:before,.ion-arrow-graph-down-left:before,.ion-arrow-graph-down-right:before,.ion-arrow-graph-up-left:before,.ion-arrow-graph-up-right:before,.ion-arrow-left-a:before,.ion-arrow-left-b:before,.ion-arrow-left-c:before,.ion-arrow-move:before,.ion-arrow-resize:before,.ion-arrow-return-left:before,.ion-arrow-return-right:before,.ion-arrow-right-a:before,.ion-arrow-right-b:before,.ion-arrow-right-c:before,.ion-arrow-shrink:before,.ion-arrow-swap:before,.ion-arrow-up-a:before,.ion-arrow-up-b:before,.ion-arrow-up-c:before,.ion-asterisk:before,.ion-at:before,.ion-backspace:before,.ion-backspace-outline:before,.ion-bag:before,.ion-battery-charging:before,.ion-battery-empty:before,.ion-battery-full:before,.ion-battery-half:before,.ion-battery-low:before,.ion-beaker:before,.ion-beer:before,.ion-bluetooth:before,.ion-bonfire:before,.ion-bookmark:before,.ion-bowtie:before,.ion-briefcase:before,.ion-bug:before,.ion-calculator:before,.ion-calendar:before,.ion-camera:before,.ion-card:before,.ion-cash:before,.ion-chatbox:before,.ion-chatbox-working:before,.ion-chatboxes:before,.ion-chatbubble:before,.ion-chatbubble-working:before,.ion-chatbubbles:before,.ion-checkmark:before,.ion-checkmark-circled:before,.ion-checkmark-round:before,.ion-chevron-down:before,.ion-chevron-left:before,.ion-chevron-right:before,.ion-chevron-up:before,.ion-clipboard:before,.ion-clock:before,.ion-close:before,.ion-close-circled:before,.ion-close-round:before,.ion-closed-captioning:before,.ion-cloud:before,.ion-code:before,.ion-code-download:before,.ion-code-working:before,.ion-coffee:before,.ion-compass:before,.ion-compose:before,.ion-connection-bars:before,.ion-contrast:before,.ion-crop:before,.ion-cube:before,.ion-disc:before,.ion-document:before,.ion-document-text:before,.ion-drag:before,.ion-earth:before,.ion-easel:before,.ion-edit:before,.ion-egg:before,.ion-eject:before,.ion-email:before,.ion-email-unread:before,.ion-erlenmeyer-flask:before,.ion-erlenmeyer-flask-bubbles:before,.ion-eye:before,.ion-eye-disabled:before,.ion-female:before,.ion-filing:before,.ion-film-marker:before,.ion-fireball:before,.ion-flag:before,.ion-flame:before,.ion-flash:before,.ion-flash-off:before,.ion-folder:before,.ion-fork:before,.ion-fork-repo:before,.ion-forward:before,.ion-funnel:before,.ion-gear-a:before,.ion-gear-b:before,.ion-grid:before,.ion-hammer:before,.ion-happy:before,.ion-happy-outline:before,.ion-headphone:before,.ion-heart:before,.ion-heart-broken:before,.ion-help:before,.ion-help-buoy:before,.ion-help-circled:before,.ion-home:before,.ion-icecream:before,.ion-image:before,.ion-images:before,.ion-information:before,.ion-information-circled:before,.ion-ionic:before,.ion-ios-alarm:before,.ion-ios-alarm-outline:before,.ion-ios-albums:before,.ion-ios-albums-outline:before,.ion-ios-americanfootball:before,.ion-ios-americanfootball-outline:before,.ion-ios-analytics:before,.ion-ios-analytics-outline:before,.ion-ios-arrow-back:before,.ion-ios-arrow-down:before,.ion-ios-arrow-forward:before,.ion-ios-arrow-left:before,.ion-ios-arrow-right:before,.ion-ios-arrow-thin-down:before,.ion-ios-arrow-thin-left:before,.ion-ios-arrow-thin-right:before,.ion-ios-arrow-thin-up:before,.ion-ios-arrow-up:before,.ion-ios-at:before,.ion-ios-at-outline:before,.ion-ios-barcode:before,.ion-ios-barcode-outline:before,.ion-ios-baseball:before,.ion-ios-baseball-outline:before,.ion-ios-basketball:before,.ion-ios-basketball-outline:before,.ion-ios-bell:before,.ion-ios-bell-outline:before,.ion-ios-body:before,.ion-ios-body-outline:before,.ion-ios-bolt:before,.ion-ios-bolt-outline:before,.ion-ios-book:before,.ion-ios-book-outline:before,.ion-ios-bookmarks:before,.ion-ios-bookmarks-outline:before,.ion-ios-box:before,.ion-ios-box-outline:before,.ion-ios-briefcase:before,.ion-ios-briefcase-outline:before,.ion-ios-browsers:before,.ion-ios-browsers-outline:before,.ion-ios-calculator:before,.ion-ios-calculator-outline:before,.ion-ios-calendar:before,.ion-ios-calendar-outline:before,.ion-ios-camera:before,.ion-ios-camera-outline:before,.ion-ios-cart:before,.ion-ios-cart-outline:before,.ion-ios-chatboxes:before,.ion-ios-chatboxes-outline:before,.ion-ios-chatbubble:before,.ion-ios-chatbubble-outline:before,.ion-ios-checkmark:before,.ion-ios-checkmark-empty:before,.ion-ios-checkmark-outline:before,.ion-ios-circle-filled:before,.ion-ios-circle-outline:before,.ion-ios-clock:before,.ion-ios-clock-outline:before,.ion-ios-close:before,.ion-ios-close-empty:before,.ion-ios-close-outline:before,.ion-ios-cloud:before,.ion-ios-cloud-download:before,.ion-ios-cloud-download-outline:before,.ion-ios-cloud-outline:before,.ion-ios-cloud-upload:before,.ion-ios-cloud-upload-outline:before,.ion-ios-cloudy:before,.ion-ios-cloudy-night:before,.ion-ios-cloudy-night-outline:before,.ion-ios-cloudy-outline:before,.ion-ios-cog:before,.ion-ios-cog-outline:before,.ion-ios-color-filter:before,.ion-ios-color-filter-outline:before,.ion-ios-color-wand:before,.ion-ios-color-wand-outline:before,.ion-ios-compose:before,.ion-ios-compose-outline:before,.ion-ios-contact:before,.ion-ios-contact-outline:before,.ion-ios-copy:before,.ion-ios-copy-outline:before,.ion-ios-crop:before,.ion-ios-crop-strong:before,.ion-ios-download:before,.ion-ios-download-outline:before,.ion-ios-drag:before,.ion-ios-email:before,.ion-ios-email-outline:before,.ion-ios-eye:before,.ion-ios-eye-outline:before,.ion-ios-fastforward:before,.ion-ios-fastforward-outline:before,.ion-ios-filing:before,.ion-ios-filing-outline:before,.ion-ios-film:before,.ion-ios-film-outline:before,.ion-ios-flag:before,.ion-ios-flag-outline:before,.ion-ios-flame:before,.ion-ios-flame-outline:before,.ion-ios-flask:before,.ion-ios-flask-outline:before,.ion-ios-flower:before,.ion-ios-flower-outline:before,.ion-ios-folder:before,.ion-ios-folder-outline:before,.ion-ios-football:before,.ion-ios-football-outline:before,.ion-ios-game-controller-a:before,.ion-ios-game-controller-a-outline:before,.ion-ios-game-controller-b:before,.ion-ios-game-controller-b-outline:before,.ion-ios-gear:before,.ion-ios-gear-outline:before,.ion-ios-glasses:before,.ion-ios-glasses-outline:before,.ion-ios-grid-view:before,.ion-ios-grid-view-outline:before,.ion-ios-heart:before,.ion-ios-heart-outline:before,.ion-ios-help:before,.ion-ios-help-empty:before,.ion-ios-help-outline:before,.ion-ios-home:before,.ion-ios-home-outline:before,.ion-ios-infinite:before,.ion-ios-infinite-outline:before,.ion-ios-information:before,.ion-ios-information-empty:before,.ion-ios-information-outline:before,.ion-ios-ionic-outline:before,.ion-ios-keypad:before,.ion-ios-keypad-outline:before,.ion-ios-lightbulb:before,.ion-ios-lightbulb-outline:before,.ion-ios-list:before,.ion-ios-list-outline:before,.ion-ios-location:before,.ion-ios-location-outline:before,.ion-ios-locked:before,.ion-ios-locked-outline:before,.ion-ios-loop:before,.ion-ios-loop-strong:before,.ion-ios-medical:before,.ion-ios-medical-outline:before,.ion-ios-medkit:before,.ion-ios-medkit-outline:before,.ion-ios-mic:before,.ion-ios-mic-off:before,.ion-ios-mic-outline:before,.ion-ios-minus:before,.ion-ios-minus-empty:before,.ion-ios-minus-outline:before,.ion-ios-monitor:before,.ion-ios-monitor-outline:before,.ion-ios-moon:before,.ion-ios-moon-outline:before,.ion-ios-more:before,.ion-ios-more-outline:before,.ion-ios-musical-note:before,.ion-ios-musical-notes:before,.ion-ios-navigate:before,.ion-ios-navigate-outline:before,.ion-ios-nutrition:before,.ion-ios-nutrition-outline:before,.ion-ios-paper:before,.ion-ios-paper-outline:before,.ion-ios-paperplane:before,.ion-ios-paperplane-outline:before,.ion-ios-partlysunny:before,.ion-ios-partlysunny-outline:before,.ion-ios-pause:before,.ion-ios-pause-outline:before,.ion-ios-paw:before,.ion-ios-paw-outline:before,.ion-ios-people:before,.ion-ios-people-outline:before,.ion-ios-person:before,.ion-ios-person-outline:before,.ion-ios-personadd:before,.ion-ios-personadd-outline:before,.ion-ios-photos:before,.ion-ios-photos-outline:before,.ion-ios-pie:before,.ion-ios-pie-outline:before,.ion-ios-pint:before,.ion-ios-pint-outline:before,.ion-ios-play:before,.ion-ios-play-outline:before,.ion-ios-plus:before,.ion-ios-plus-empty:before,.ion-ios-plus-outline:before,.ion-ios-pricetag:before,.ion-ios-pricetag-outline:before,.ion-ios-pricetags:before,.ion-ios-pricetags-outline:before,.ion-ios-printer:before,.ion-ios-printer-outline:before,.ion-ios-pulse:before,.ion-ios-pulse-strong:before,.ion-ios-rainy:before,.ion-ios-rainy-outline:before,.ion-ios-recording:before,.ion-ios-recording-outline:before,.ion-ios-redo:before,.ion-ios-redo-outline:before,.ion-ios-refresh:before,.ion-ios-refresh-empty:before,.ion-ios-refresh-outline:before,.ion-ios-reload:before,.ion-ios-reverse-camera:before,.ion-ios-reverse-camera-outline:before,.ion-ios-rewind:before,.ion-ios-rewind-outline:before,.ion-ios-rose:before,.ion-ios-rose-outline:before,.ion-ios-search:before,.ion-ios-search-strong:before,.ion-ios-settings:before,.ion-ios-settings-strong:before,.ion-ios-shuffle:before,.ion-ios-shuffle-strong:before,.ion-ios-skipbackward:before,.ion-ios-skipbackward-outline:before,.ion-ios-skipforward:before,.ion-ios-skipforward-outline:before,.ion-ios-snowy:before,.ion-ios-speedometer:before,.ion-ios-speedometer-outline:before,.ion-ios-star:before,.ion-ios-star-half:before,.ion-ios-star-outline:before,.ion-ios-stopwatch:before,.ion-ios-stopwatch-outline:before,.ion-ios-sunny:before,.ion-ios-sunny-outline:before,.ion-ios-telephone:before,.ion-ios-telephone-outline:before,.ion-ios-tennisball:before,.ion-ios-tennisball-outline:before,.ion-ios-thunderstorm:before,.ion-ios-thunderstorm-outline:before,.ion-ios-time:before,.ion-ios-time-outline:before,.ion-ios-timer:before,.ion-ios-timer-outline:before,.ion-ios-toggle:before,.ion-ios-toggle-outline:before,.ion-ios-trash:before,.ion-ios-trash-outline:before,.ion-ios-undo:before,.ion-ios-undo-outline:before,.ion-ios-unlocked:before,.ion-ios-unlocked-outline:before,.ion-ios-upload:before,.ion-ios-upload-outline:before,.ion-ios-videocam:before,.ion-ios-videocam-outline:before,.ion-ios-volume-high:before,.ion-ios-volume-low:before,.ion-ios-wineglass:before,.ion-ios-wineglass-outline:before,.ion-ios-world:before,.ion-ios-world-outline:before,.ion-ipad:before,.ion-iphone:before,.ion-ipod:before,.ion-jet:before,.ion-key:before,.ion-knife:before,.ion-laptop:before,.ion-leaf:before,.ion-levels:before,.ion-lightbulb:before,.ion-link:before,.ion-load-a:before,.ion-load-b:before,.ion-load-c:before,.ion-load-d:before,.ion-location:before,.ion-lock-combination:before,.ion-locked:before,.ion-log-in:before,.ion-log-out:before,.ion-loop:before,.ion-magnet:before,.ion-male:before,.ion-man:before,.ion-map:before,.ion-medkit:before,.ion-merge:before,.ion-mic-a:before,.ion-mic-b:before,.ion-mic-c:before,.ion-minus:before,.ion-minus-circled:before,.ion-minus-round:before,.ion-model-s:before,.ion-monitor:before,.ion-more:before,.ion-mouse:before,.ion-music-note:before,.ion-navicon:before,.ion-navicon-round:before,.ion-navigate:before,.ion-network:before,.ion-no-smoking:before,.ion-nuclear:before,.ion-outlet:before,.ion-paintbrush:before,.ion-paintbucket:before,.ion-paper-airplane:before,.ion-paperclip:before,.ion-pause:before,.ion-person:before,.ion-person-add:before,.ion-person-stalker:before,.ion-pie-graph:before,.ion-pin:before,.ion-pinpoint:before,.ion-pizza:before,.ion-plane:before,.ion-planet:before,.ion-play:before,.ion-playstation:before,.ion-plus:before,.ion-plus-circled:before,.ion-plus-round:before,.ion-podium:before,.ion-pound:before,.ion-power:before,.ion-pricetag:before,.ion-pricetags:before,.ion-printer:before,.ion-pull-request:before,.ion-qr-scanner:before,.ion-quote:before,.ion-radio-waves:before,.ion-record:before,.ion-refresh:before,.ion-reply:before,.ion-reply-all:before,.ion-ribbon-a:before,.ion-ribbon-b:before,.ion-sad:before,.ion-sad-outline:before,.ion-scissors:before,.ion-search:before,.ion-settings:before,.ion-share:before,.ion-shuffle:before,.ion-skip-backward:before,.ion-skip-forward:before,.ion-social-android:before,.ion-social-android-outline:before,.ion-social-angular:before,.ion-social-angular-outline:before,.ion-social-apple:before,.ion-social-apple-outline:before,.ion-social-bitcoin:before,.ion-social-bitcoin-outline:before,.ion-social-buffer:before,.ion-social-buffer-outline:before,.ion-social-chrome:before,.ion-social-chrome-outline:before,.ion-social-codepen:before,.ion-social-codepen-outline:before,.ion-social-css3:before,.ion-social-css3-outline:before,.ion-social-designernews:before,.ion-social-designernews-outline:before,.ion-social-dribbble:before,.ion-social-dribbble-outline:before,.ion-social-dropbox:before,.ion-social-dropbox-outline:before,.ion-social-euro:before,.ion-social-euro-outline:before,.ion-social-facebook:before,.ion-social-facebook-outline:before,.ion-social-foursquare:before,.ion-social-foursquare-outline:before,.ion-social-freebsd-devil:before,.ion-social-github:before,.ion-social-github-outline:before,.ion-social-google:before,.ion-social-google-outline:before,.ion-social-googleplus:before,.ion-social-googleplus-outline:before,.ion-social-hackernews:before,.ion-social-hackernews-outline:before,.ion-social-html5:before,.ion-social-html5-outline:before,.ion-social-instagram:before,.ion-social-instagram-outline:before,.ion-social-javascript:before,.ion-social-javascript-outline:before,.ion-social-linkedin:before,.ion-social-linkedin-outline:before,.ion-social-markdown:before,.ion-social-nodejs:before,.ion-social-octocat:before,.ion-social-pinterest:before,.ion-social-pinterest-outline:before,.ion-social-python:before,.ion-social-reddit:before,.ion-social-reddit-outline:before,.ion-social-rss:before,.ion-social-rss-outline:before,.ion-social-sass:before,.ion-social-skype:before,.ion-social-skype-outline:before,.ion-social-snapchat:before,.ion-social-snapchat-outline:before,.ion-social-tumblr:before,.ion-social-tumblr-outline:before,.ion-social-tux:before,.ion-social-twitch:before,.ion-social-twitch-outline:before,.ion-social-twitter:before,.ion-social-twitter-outline:before,.ion-social-usd:before,.ion-social-usd-outline:before,.ion-social-vimeo:before,.ion-social-vimeo-outline:before,.ion-social-whatsapp:before,.ion-social-whatsapp-outline:before,.ion-social-windows:before,.ion-social-windows-outline:before,.ion-social-wordpress:before,.ion-social-wordpress-outline:before,.ion-social-yahoo:before,.ion-social-yahoo-outline:before,.ion-social-yen:before,.ion-social-yen-outline:before,.ion-social-youtube:before,.ion-social-youtube-outline:before,.ion-soup-can:before,.ion-soup-can-outline:before,.ion-speakerphone:before,.ion-speedometer:before,.ion-spoon:before,.ion-star:before,.ion-stats-bars:before,.ion-steam:before,.ion-stop:before,.ion-thermometer:before,.ion-thumbsdown:before,.ion-thumbsup:before,.ion-toggle:before,.ion-toggle-filled:before,.ion-transgender:before,.ion-trash-a:before,.ion-trash-b:before,.ion-trophy:before,.ion-tshirt:before,.ion-tshirt-outline:before,.ion-umbrella:before,.ion-university:before,.ion-unlocked:before,.ion-upload:before,.ion-usb:before,.ion-videocamera:before,.ion-volume-high:before,.ion-volume-low:before,.ion-volume-medium:before,.ion-volume-mute:before,.ion-wand:before,.ion-waterdrop:before,.ion-wifi:before,.ion-wineglass:before,.ion-woman:before,.ion-wrench:before,.ion-xbox:before{display:inline-block;font-family:"Ionicons";speak:none;font-style:normal;font-weight:normal;font-variant:normal;text-transform:none;text-rendering:auto;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.ion-alert:before{content:"\f101"}.ion-alert-circled:before{content:"\f100"}.ion-android-add:before{content:"\f2c7"}.ion-android-add-circle:before{content:"\f359"}.ion-android-alarm-clock:before{content:"\f35a"}.ion-android-alert:before{content:"\f35b"}.ion-android-apps:before{content:"\f35c"}.ion-android-archive:before{content:"\f2c9"}.ion-android-arrow-back:before{content:"\f2ca"}.ion-android-arrow-down:before{content:"\f35d"}.ion-android-arrow-dropdown:before{content:"\f35f"}.ion-android-arrow-dropdown-circle:before{content:"\f35e"}.ion-android-arrow-dropleft:before{content:"\f361"}.ion-android-arrow-dropleft-circle:before{content:"\f360"}.ion-android-arrow-dropright:before{content:"\f363"}.ion-android-arrow-dropright-circle:before{content:"\f362"}.ion-android-arrow-dropup:before{content:"\f365"}.ion-android-arrow-dropup-circle:before{content:"\f364"}.ion-android-arrow-forward:before{content:"\f30f"}.ion-android-arrow-up:before{content:"\f366"}.ion-android-attach:before{content:"\f367"}.ion-android-bar:before{content:"\f368"}.ion-android-bicycle:before{content:"\f369"}.ion-android-boat:before{content:"\f36a"}.ion-android-bookmark:before{content:"\f36b"}.ion-android-bulb:before{content:"\f36c"}.ion-android-bus:before{content:"\f36d"}.ion-android-calendar:before{content:"\f2d1"}.ion-android-call:before{content:"\f2d2"}.ion-android-camera:before{content:"\f2d3"}.ion-android-cancel:before{content:"\f36e"}.ion-android-car:before{content:"\f36f"}.ion-android-cart:before{content:"\f370"}.ion-android-chat:before{content:"\f2d4"}.ion-android-checkbox:before{content:"\f374"}.ion-android-checkbox-blank:before{content:"\f371"}.ion-android-checkbox-outline:before{content:"\f373"}.ion-android-checkbox-outline-blank:before{content:"\f372"}.ion-android-checkmark-circle:before{content:"\f375"}.ion-android-clipboard:before{content:"\f376"}.ion-android-close:before{content:"\f2d7"}.ion-android-cloud:before{content:"\f37a"}.ion-android-cloud-circle:before{content:"\f377"}.ion-android-cloud-done:before{content:"\f378"}.ion-android-cloud-outline:before{content:"\f379"}.ion-android-color-palette:before{content:"\f37b"}.ion-android-compass:before{content:"\f37c"}.ion-android-contact:before{content:"\f2d8"}.ion-android-contacts:before{content:"\f2d9"}.ion-android-contract:before{content:"\f37d"}.ion-android-create:before{content:"\f37e"}.ion-android-delete:before{content:"\f37f"}.ion-android-desktop:before{content:"\f380"}.ion-android-document:before{content:"\f381"}.ion-android-done:before{content:"\f383"}.ion-android-done-all:before{content:"\f382"}.ion-android-download:before{content:"\f2dd"}.ion-android-drafts:before{content:"\f384"}.ion-android-exit:before{content:"\f385"}.ion-android-expand:before{content:"\f386"}.ion-android-favorite:before{content:"\f388"}.ion-android-favorite-outline:before{content:"\f387"}.ion-android-film:before{content:"\f389"}.ion-android-folder:before{content:"\f2e0"}.ion-android-folder-open:before{content:"\f38a"}.ion-android-funnel:before{content:"\f38b"}.ion-android-globe:before{content:"\f38c"}.ion-android-hand:before{content:"\f2e3"}.ion-android-hangout:before{content:"\f38d"}.ion-android-happy:before{content:"\f38e"}.ion-android-home:before{content:"\f38f"}.ion-android-image:before{content:"\f2e4"}.ion-android-laptop:before{content:"\f390"}.ion-android-list:before{content:"\f391"}.ion-android-locate:before{content:"\f2e9"}.ion-android-lock:before{content:"\f392"}.ion-android-mail:before{content:"\f2eb"}.ion-android-map:before{content:"\f393"}.ion-android-menu:before{content:"\f394"}.ion-android-microphone:before{content:"\f2ec"}.ion-android-microphone-off:before{content:"\f395"}.ion-android-more-horizontal:before{content:"\f396"}.ion-android-more-vertical:before{content:"\f397"}.ion-android-navigate:before{content:"\f398"}.ion-android-notifications:before{content:"\f39b"}.ion-android-notifications-none:before{content:"\f399"}.ion-android-notifications-off:before{content:"\f39a"}.ion-android-open:before{content:"\f39c"}.ion-android-options:before{content:"\f39d"}.ion-android-people:before{content:"\f39e"}.ion-android-person:before{content:"\f3a0"}.ion-android-person-add:before{content:"\f39f"}.ion-android-phone-landscape:before{content:"\f3a1"}.ion-android-phone-portrait:before{content:"\f3a2"}.ion-android-pin:before{content:"\f3a3"}.ion-android-plane:before{content:"\f3a4"}.ion-android-playstore:before{content:"\f2f0"}.ion-android-print:before{content:"\f3a5"}.ion-android-radio-button-off:before{content:"\f3a6"}.ion-android-radio-button-on:before{content:"\f3a7"}.ion-android-refresh:before{content:"\f3a8"}.ion-android-remove:before{content:"\f2f4"}.ion-android-remove-circle:before{content:"\f3a9"}.ion-android-restaurant:before{content:"\f3aa"}.ion-android-sad:before{content:"\f3ab"}.ion-android-search:before{content:"\f2f5"}.ion-android-send:before{content:"\f2f6"}.ion-android-settings:before{content:"\f2f7"}.ion-android-share:before{content:"\f2f8"}.ion-android-share-alt:before{content:"\f3ac"}.ion-android-star:before{content:"\f2fc"}.ion-android-star-half:before{content:"\f3ad"}.ion-android-star-outline:before{content:"\f3ae"}.ion-android-stopwatch:before{content:"\f2fd"}.ion-android-subway:before{content:"\f3af"}.ion-android-sunny:before{content:"\f3b0"}.ion-android-sync:before{content:"\f3b1"}.ion-android-textsms:before{content:"\f3b2"}.ion-android-time:before{content:"\f3b3"}.ion-android-train:before{content:"\f3b4"}.ion-android-unlock:before{content:"\f3b5"}.ion-android-upload:before{content:"\f3b6"}.ion-android-volume-down:before{content:"\f3b7"}.ion-android-volume-mute:before{content:"\f3b8"}.ion-android-volume-off:before{content:"\f3b9"}.ion-android-volume-up:before{content:"\f3ba"}.ion-android-walk:before{content:"\f3bb"}.ion-android-warning:before{content:"\f3bc"}.ion-android-watch:before{content:"\f3bd"}.ion-android-wifi:before{content:"\f305"}.ion-aperture:before{content:"\f313"}.ion-archive:before{content:"\f102"}.ion-arrow-down-a:before{content:"\f103"}.ion-arrow-down-b:before{content:"\f104"}.ion-arrow-down-c:before{content:"\f105"}.ion-arrow-expand:before{content:"\f25e"}.ion-arrow-graph-down-left:before{content:"\f25f"}.ion-arrow-graph-down-right:before{content:"\f260"}.ion-arrow-graph-up-left:before{content:"\f261"}.ion-arrow-graph-up-right:before{content:"\f262"}.ion-arrow-left-a:before{content:"\f106"}.ion-arrow-left-b:before{content:"\f107"}.ion-arrow-left-c:before{content:"\f108"}.ion-arrow-move:before{content:"\f263"}.ion-arrow-resize:before{content:"\f264"}.ion-arrow-return-left:before{content:"\f265"}.ion-arrow-return-right:before{content:"\f266"}.ion-arrow-right-a:before{content:"\f109"}.ion-arrow-right-b:before{content:"\f10a"}.ion-arrow-right-c:before{content:"\f10b"}.ion-arrow-shrink:before{content:"\f267"}.ion-arrow-swap:before{content:"\f268"}.ion-arrow-up-a:before{content:"\f10c"}.ion-arrow-up-b:before{content:"\f10d"}.ion-arrow-up-c:before{content:"\f10e"}.ion-asterisk:before{content:"\f314"}.ion-at:before{content:"\f10f"}.ion-backspace:before{content:"\f3bf"}.ion-backspace-outline:before{content:"\f3be"}.ion-bag:before{content:"\f110"}.ion-battery-charging:before{content:"\f111"}.ion-battery-empty:before{content:"\f112"}.ion-battery-full:before{content:"\f113"}.ion-battery-half:before{content:"\f114"}.ion-battery-low:before{content:"\f115"}.ion-beaker:before{content:"\f269"}.ion-beer:before{content:"\f26a"}.ion-bluetooth:before{content:"\f116"}.ion-bonfire:before{content:"\f315"}.ion-bookmark:before{content:"\f26b"}.ion-bowtie:before{content:"\f3c0"}.ion-briefcase:before{content:"\f26c"}.ion-bug:before{content:"\f2be"}.ion-calculator:before{content:"\f26d"}.ion-calendar:before{content:"\f117"}.ion-camera:before{content:"\f118"}.ion-card:before{content:"\f119"}.ion-cash:before{content:"\f316"}.ion-chatbox:before{content:"\f11b"}.ion-chatbox-working:before{content:"\f11a"}.ion-chatboxes:before{content:"\f11c"}.ion-chatbubble:before{content:"\f11e"}.ion-chatbubble-working:before{content:"\f11d"}.ion-chatbubbles:before{content:"\f11f"}.ion-checkmark:before{content:"\f122"}.ion-checkmark-circled:before{content:"\f120"}.ion-checkmark-round:before{content:"\f121"}.ion-chevron-down:before{content:"\f123"}.ion-chevron-left:before{content:"\f124"}.ion-chevron-right:before{content:"\f125"}.ion-chevron-up:before{content:"\f126"}.ion-clipboard:before{content:"\f127"}.ion-clock:before{content:"\f26e"}.ion-close:before{content:"\f12a"}.ion-close-circled:before{content:"\f128"}.ion-close-round:before{content:"\f129"}.ion-closed-captioning:before{content:"\f317"}.ion-cloud:before{content:"\f12b"}.ion-code:before{content:"\f271"}.ion-code-download:before{content:"\f26f"}.ion-code-working:before{content:"\f270"}.ion-coffee:before{content:"\f272"}.ion-compass:before{content:"\f273"}.ion-compose:before{content:"\f12c"}.ion-connection-bars:before{content:"\f274"}.ion-contrast:before{content:"\f275"}.ion-crop:before{content:"\f3c1"}.ion-cube:before{content:"\f318"}.ion-disc:before{content:"\f12d"}.ion-document:before{content:"\f12f"}.ion-document-text:before{content:"\f12e"}.ion-drag:before{content:"\f130"}.ion-earth:before{content:"\f276"}.ion-easel:before{content:"\f3c2"}.ion-edit:before{content:"\f2bf"}.ion-egg:before{content:"\f277"}.ion-eject:before{content:"\f131"}.ion-email:before{content:"\f132"}.ion-email-unread:before{content:"\f3c3"}.ion-erlenmeyer-flask:before{content:"\f3c5"}.ion-erlenmeyer-flask-bubbles:before{content:"\f3c4"}.ion-eye:before{content:"\f133"}.ion-eye-disabled:before{content:"\f306"}.ion-female:before{content:"\f278"}.ion-filing:before{content:"\f134"}.ion-film-marker:before{content:"\f135"}.ion-fireball:before{content:"\f319"}.ion-flag:before{content:"\f279"}.ion-flame:before{content:"\f31a"}.ion-flash:before{content:"\f137"}.ion-flash-off:before{content:"\f136"}.ion-folder:before{content:"\f139"}.ion-fork:before{content:"\f27a"}.ion-fork-repo:before{content:"\f2c0"}.ion-forward:before{content:"\f13a"}.ion-funnel:before{content:"\f31b"}.ion-gear-a:before{content:"\f13d"}.ion-gear-b:before{content:"\f13e"}.ion-grid:before{content:"\f13f"}.ion-hammer:before{content:"\f27b"}.ion-happy:before{content:"\f31c"}.ion-happy-outline:before{content:"\f3c6"}.ion-headphone:before{content:"\f140"}.ion-heart:before{content:"\f141"}.ion-heart-broken:before{content:"\f31d"}.ion-help:before{content:"\f143"}.ion-help-buoy:before{content:"\f27c"}.ion-help-circled:before{content:"\f142"}.ion-home:before{content:"\f144"}.ion-icecream:before{content:"\f27d"}.ion-image:before{content:"\f147"}.ion-images:before{content:"\f148"}.ion-information:before{content:"\f14a"}.ion-information-circled:before{content:"\f149"}.ion-ionic:before{content:"\f14b"}.ion-ios-alarm:before{content:"\f3c8"}.ion-ios-alarm-outline:before{content:"\f3c7"}.ion-ios-albums:before{content:"\f3ca"}.ion-ios-albums-outline:before{content:"\f3c9"}.ion-ios-americanfootball:before{content:"\f3cc"}.ion-ios-americanfootball-outline:before{content:"\f3cb"}.ion-ios-analytics:before{content:"\f3ce"}.ion-ios-analytics-outline:before{content:"\f3cd"}.ion-ios-arrow-back:before{content:"\f3cf"}.ion-ios-arrow-down:before{content:"\f3d0"}.ion-ios-arrow-forward:before{content:"\f3d1"}.ion-ios-arrow-left:before{content:"\f3d2"}.ion-ios-arrow-right:before{content:"\f3d3"}.ion-ios-arrow-thin-down:before{content:"\f3d4"}.ion-ios-arrow-thin-left:before{content:"\f3d5"}.ion-ios-arrow-thin-right:before{content:"\f3d6"}.ion-ios-arrow-thin-up:before{content:"\f3d7"}.ion-ios-arrow-up:before{content:"\f3d8"}.ion-ios-at:before{content:"\f3da"}.ion-ios-at-outline:before{content:"\f3d9"}.ion-ios-barcode:before{content:"\f3dc"}.ion-ios-barcode-outline:before{content:"\f3db"}.ion-ios-baseball:before{content:"\f3de"}.ion-ios-baseball-outline:before{content:"\f3dd"}.ion-ios-basketball:before{content:"\f3e0"}.ion-ios-basketball-outline:before{content:"\f3df"}.ion-ios-bell:before{content:"\f3e2"}.ion-ios-bell-outline:before{content:"\f3e1"}.ion-ios-body:before{content:"\f3e4"}.ion-ios-body-outline:before{content:"\f3e3"}.ion-ios-bolt:before{content:"\f3e6"}.ion-ios-bolt-outline:before{content:"\f3e5"}.ion-ios-book:before{content:"\f3e8"}.ion-ios-book-outline:before{content:"\f3e7"}.ion-ios-bookmarks:before{content:"\f3ea"}.ion-ios-bookmarks-outline:before{content:"\f3e9"}.ion-ios-box:before{content:"\f3ec"}.ion-ios-box-outline:before{content:"\f3eb"}.ion-ios-briefcase:before{content:"\f3ee"}.ion-ios-briefcase-outline:before{content:"\f3ed"}.ion-ios-browsers:before{content:"\f3f0"}.ion-ios-browsers-outline:before{content:"\f3ef"}.ion-ios-calculator:before{content:"\f3f2"}.ion-ios-calculator-outline:before{content:"\f3f1"}.ion-ios-calendar:before{content:"\f3f4"}.ion-ios-calendar-outline:before{content:"\f3f3"}.ion-ios-camera:before{content:"\f3f6"}.ion-ios-camera-outline:before{content:"\f3f5"}.ion-ios-cart:before{content:"\f3f8"}.ion-ios-cart-outline:before{content:"\f3f7"}.ion-ios-chatboxes:before{content:"\f3fa"}.ion-ios-chatboxes-outline:before{content:"\f3f9"}.ion-ios-chatbubble:before{content:"\f3fc"}.ion-ios-chatbubble-outline:before{content:"\f3fb"}.ion-ios-checkmark:before{content:"\f3ff"}.ion-ios-checkmark-empty:before{content:"\f3fd"}.ion-ios-checkmark-outline:before{content:"\f3fe"}.ion-ios-circle-filled:before{content:"\f400"}.ion-ios-circle-outline:before{content:"\f401"}.ion-ios-clock:before{content:"\f403"}.ion-ios-clock-outline:before{content:"\f402"}.ion-ios-close:before{content:"\f406"}.ion-ios-close-empty:before{content:"\f404"}.ion-ios-close-outline:before{content:"\f405"}.ion-ios-cloud:before{content:"\f40c"}.ion-ios-cloud-download:before{content:"\f408"}.ion-ios-cloud-download-outline:before{content:"\f407"}.ion-ios-cloud-outline:before{content:"\f409"}.ion-ios-cloud-upload:before{content:"\f40b"}.ion-ios-cloud-upload-outline:before{content:"\f40a"}.ion-ios-cloudy:before{content:"\f410"}.ion-ios-cloudy-night:before{content:"\f40e"}.ion-ios-cloudy-night-outline:before{content:"\f40d"}.ion-ios-cloudy-outline:before{content:"\f40f"}.ion-ios-cog:before{content:"\f412"}.ion-ios-cog-outline:before{content:"\f411"}.ion-ios-color-filter:before{content:"\f414"}.ion-ios-color-filter-outline:before{content:"\f413"}.ion-ios-color-wand:before{content:"\f416"}.ion-ios-color-wand-outline:before{content:"\f415"}.ion-ios-compose:before{content:"\f418"}.ion-ios-compose-outline:before{content:"\f417"}.ion-ios-contact:before{content:"\f41a"}.ion-ios-contact-outline:before{content:"\f419"}.ion-ios-copy:before{content:"\f41c"}.ion-ios-copy-outline:before{content:"\f41b"}.ion-ios-crop:before{content:"\f41e"}.ion-ios-crop-strong:before{content:"\f41d"}.ion-ios-download:before{content:"\f420"}.ion-ios-download-outline:before{content:"\f41f"}.ion-ios-drag:before{content:"\f421"}.ion-ios-email:before{content:"\f423"}.ion-ios-email-outline:before{content:"\f422"}.ion-ios-eye:before{content:"\f425"}.ion-ios-eye-outline:before{content:"\f424"}.ion-ios-fastforward:before{content:"\f427"}.ion-ios-fastforward-outline:before{content:"\f426"}.ion-ios-filing:before{content:"\f429"}.ion-ios-filing-outline:before{content:"\f428"}.ion-ios-film:before{content:"\f42b"}.ion-ios-film-outline:before{content:"\f42a"}.ion-ios-flag:before{content:"\f42d"}.ion-ios-flag-outline:before{content:"\f42c"}.ion-ios-flame:before{content:"\f42f"}.ion-ios-flame-outline:before{content:"\f42e"}.ion-ios-flask:before{content:"\f431"}.ion-ios-flask-outline:before{content:"\f430"}.ion-ios-flower:before{content:"\f433"}.ion-ios-flower-outline:before{content:"\f432"}.ion-ios-folder:before{content:"\f435"}.ion-ios-folder-outline:before{content:"\f434"}.ion-ios-football:before{content:"\f437"}.ion-ios-football-outline:before{content:"\f436"}.ion-ios-game-controller-a:before{content:"\f439"}.ion-ios-game-controller-a-outline:before{content:"\f438"}.ion-ios-game-controller-b:before{content:"\f43b"}.ion-ios-game-controller-b-outline:before{content:"\f43a"}.ion-ios-gear:before{content:"\f43d"}.ion-ios-gear-outline:before{content:"\f43c"}.ion-ios-glasses:before{content:"\f43f"}.ion-ios-glasses-outline:before{content:"\f43e"}.ion-ios-grid-view:before{content:"\f441"}.ion-ios-grid-view-outline:before{content:"\f440"}.ion-ios-heart:before{content:"\f443"}.ion-ios-heart-outline:before{content:"\f442"}.ion-ios-help:before{content:"\f446"}.ion-ios-help-empty:before{content:"\f444"}.ion-ios-help-outline:before{content:"\f445"}.ion-ios-home:before{content:"\f448"}.ion-ios-home-outline:before{content:"\f447"}.ion-ios-infinite:before{content:"\f44a"}.ion-ios-infinite-outline:before{content:"\f449"}.ion-ios-information:before{content:"\f44d"}.ion-ios-information-empty:before{content:"\f44b"}.ion-ios-information-outline:before{content:"\f44c"}.ion-ios-ionic-outline:before{content:"\f44e"}.ion-ios-keypad:before{content:"\f450"}.ion-ios-keypad-outline:before{content:"\f44f"}.ion-ios-lightbulb:before{content:"\f452"}.ion-ios-lightbulb-outline:before{content:"\f451"}.ion-ios-list:before{content:"\f454"}.ion-ios-list-outline:before{content:"\f453"}.ion-ios-location:before{content:"\f456"}.ion-ios-location-outline:before{content:"\f455"}.ion-ios-locked:before{content:"\f458"}.ion-ios-locked-outline:before{content:"\f457"}.ion-ios-loop:before{content:"\f45a"}.ion-ios-loop-strong:before{content:"\f459"}.ion-ios-medical:before{content:"\f45c"}.ion-ios-medical-outline:before{content:"\f45b"}.ion-ios-medkit:before{content:"\f45e"}.ion-ios-medkit-outline:before{content:"\f45d"}.ion-ios-mic:before{content:"\f461"}.ion-ios-mic-off:before{content:"\f45f"}.ion-ios-mic-outline:before{content:"\f460"}.ion-ios-minus:before{content:"\f464"}.ion-ios-minus-empty:before{content:"\f462"}.ion-ios-minus-outline:before{content:"\f463"}.ion-ios-monitor:before{content:"\f466"}.ion-ios-monitor-outline:before{content:"\f465"}.ion-ios-moon:before{content:"\f468"}.ion-ios-moon-outline:before{content:"\f467"}.ion-ios-more:before{content:"\f46a"}.ion-ios-more-outline:before{content:"\f469"}.ion-ios-musical-note:before{content:"\f46b"}.ion-ios-musical-notes:before{content:"\f46c"}.ion-ios-navigate:before{content:"\f46e"}.ion-ios-navigate-outline:before{content:"\f46d"}.ion-ios-nutrition:before{content:"\f470"}.ion-ios-nutrition-outline:before{content:"\f46f"}.ion-ios-paper:before{content:"\f472"}.ion-ios-paper-outline:before{content:"\f471"}.ion-ios-paperplane:before{content:"\f474"}.ion-ios-paperplane-outline:before{content:"\f473"}.ion-ios-partlysunny:before{content:"\f476"}.ion-ios-partlysunny-outline:before{content:"\f475"}.ion-ios-pause:before{content:"\f478"}.ion-ios-pause-outline:before{content:"\f477"}.ion-ios-paw:before{content:"\f47a"}.ion-ios-paw-outline:before{content:"\f479"}.ion-ios-people:before{content:"\f47c"}.ion-ios-people-outline:before{content:"\f47b"}.ion-ios-person:before{content:"\f47e"}.ion-ios-person-outline:before{content:"\f47d"}.ion-ios-personadd:before{content:"\f480"}.ion-ios-personadd-outline:before{content:"\f47f"}.ion-ios-photos:before{content:"\f482"}.ion-ios-photos-outline:before{content:"\f481"}.ion-ios-pie:before{content:"\f484"}.ion-ios-pie-outline:before{content:"\f483"}.ion-ios-pint:before{content:"\f486"}.ion-ios-pint-outline:before{content:"\f485"}.ion-ios-play:before{content:"\f488"}.ion-ios-play-outline:before{content:"\f487"}.ion-ios-plus:before{content:"\f48b"}.ion-ios-plus-empty:before{content:"\f489"}.ion-ios-plus-outline:before{content:"\f48a"}.ion-ios-pricetag:before{content:"\f48d"}.ion-ios-pricetag-outline:before{content:"\f48c"}.ion-ios-pricetags:before{content:"\f48f"}.ion-ios-pricetags-outline:before{content:"\f48e"}.ion-ios-printer:before{content:"\f491"}.ion-ios-printer-outline:before{content:"\f490"}.ion-ios-pulse:before{content:"\f493"}.ion-ios-pulse-strong:before{content:"\f492"}.ion-ios-rainy:before{content:"\f495"}.ion-ios-rainy-outline:before{content:"\f494"}.ion-ios-recording:before{content:"\f497"}.ion-ios-recording-outline:before{content:"\f496"}.ion-ios-redo:before{content:"\f499"}.ion-ios-redo-outline:before{content:"\f498"}.ion-ios-refresh:before{content:"\f49c"}.ion-ios-refresh-empty:before{content:"\f49a"}.ion-ios-refresh-outline:before{content:"\f49b"}.ion-ios-reload:before{content:"\f49d"}.ion-ios-reverse-camera:before{content:"\f49f"}.ion-ios-reverse-camera-outline:before{content:"\f49e"}.ion-ios-rewind:before{content:"\f4a1"}.ion-ios-rewind-outline:before{content:"\f4a0"}.ion-ios-rose:before{content:"\f4a3"}.ion-ios-rose-outline:before{content:"\f4a2"}.ion-ios-search:before{content:"\f4a5"}.ion-ios-search-strong:before{content:"\f4a4"}.ion-ios-settings:before{content:"\f4a7"}.ion-ios-settings-strong:before{content:"\f4a6"}.ion-ios-shuffle:before{content:"\f4a9"}.ion-ios-shuffle-strong:before{content:"\f4a8"}.ion-ios-skipbackward:before{content:"\f4ab"}.ion-ios-skipbackward-outline:before{content:"\f4aa"}.ion-ios-skipforward:before{content:"\f4ad"}.ion-ios-skipforward-outline:before{content:"\f4ac"}.ion-ios-snowy:before{content:"\f4ae"}.ion-ios-speedometer:before{content:"\f4b0"}.ion-ios-speedometer-outline:before{content:"\f4af"}.ion-ios-star:before{content:"\f4b3"}.ion-ios-star-half:before{content:"\f4b1"}.ion-ios-star-outline:before{content:"\f4b2"}.ion-ios-stopwatch:before{content:"\f4b5"}.ion-ios-stopwatch-outline:before{content:"\f4b4"}.ion-ios-sunny:before{content:"\f4b7"}.ion-ios-sunny-outline:before{content:"\f4b6"}.ion-ios-telephone:before{content:"\f4b9"}.ion-ios-telephone-outline:before{content:"\f4b8"}.ion-ios-tennisball:before{content:"\f4bb"}.ion-ios-tennisball-outline:before{content:"\f4ba"}.ion-ios-thunderstorm:before{content:"\f4bd"}.ion-ios-thunderstorm-outline:before{content:"\f4bc"}.ion-ios-time:before{content:"\f4bf"}.ion-ios-time-outline:before{content:"\f4be"}.ion-ios-timer:before{content:"\f4c1"}.ion-ios-timer-outline:before{content:"\f4c0"}.ion-ios-toggle:before{content:"\f4c3"}.ion-ios-toggle-outline:before{content:"\f4c2"}.ion-ios-trash:before{content:"\f4c5"}.ion-ios-trash-outline:before{content:"\f4c4"}.ion-ios-undo:before{content:"\f4c7"}.ion-ios-undo-outline:before{content:"\f4c6"}.ion-ios-unlocked:before{content:"\f4c9"}.ion-ios-unlocked-outline:before{content:"\f4c8"}.ion-ios-upload:before{content:"\f4cb"}.ion-ios-upload-outline:before{content:"\f4ca"}.ion-ios-videocam:before{content:"\f4cd"}.ion-ios-videocam-outline:before{content:"\f4cc"}.ion-ios-volume-high:before{content:"\f4ce"}.ion-ios-volume-low:before{content:"\f4cf"}.ion-ios-wineglass:before{content:"\f4d1"}.ion-ios-wineglass-outline:before{content:"\f4d0"}.ion-ios-world:before{content:"\f4d3"}.ion-ios-world-outline:before{content:"\f4d2"}.ion-ipad:before{content:"\f1f9"}.ion-iphone:before{content:"\f1fa"}.ion-ipod:before{content:"\f1fb"}.ion-jet:before{content:"\f295"}.ion-key:before{content:"\f296"}.ion-knife:before{content:"\f297"}.ion-laptop:before{content:"\f1fc"}.ion-leaf:before{content:"\f1fd"}.ion-levels:before{content:"\f298"}.ion-lightbulb:before{content:"\f299"}.ion-link:before{content:"\f1fe"}.ion-load-a:before{content:"\f29a"}.ion-load-b:before{content:"\f29b"}.ion-load-c:before{content:"\f29c"}.ion-load-d:before{content:"\f29d"}.ion-location:before{content:"\f1ff"}.ion-lock-combination:before{content:"\f4d4"}.ion-locked:before{content:"\f200"}.ion-log-in:before{content:"\f29e"}.ion-log-out:before{content:"\f29f"}.ion-loop:before{content:"\f201"}.ion-magnet:before{content:"\f2a0"}.ion-male:before{content:"\f2a1"}.ion-man:before{content:"\f202"}.ion-map:before{content:"\f203"}.ion-medkit:before{content:"\f2a2"}.ion-merge:before{content:"\f33f"}.ion-mic-a:before{content:"\f204"}.ion-mic-b:before{content:"\f205"}.ion-mic-c:before{content:"\f206"}.ion-minus:before{content:"\f209"}.ion-minus-circled:before{content:"\f207"}.ion-minus-round:before{content:"\f208"}.ion-model-s:before{content:"\f2c1"}.ion-monitor:before{content:"\f20a"}.ion-more:before{content:"\f20b"}.ion-mouse:before{content:"\f340"}.ion-music-note:before{content:"\f20c"}.ion-navicon:before{content:"\f20e"}.ion-navicon-round:before{content:"\f20d"}.ion-navigate:before{content:"\f2a3"}.ion-network:before{content:"\f341"}.ion-no-smoking:before{content:"\f2c2"}.ion-nuclear:before{content:"\f2a4"}.ion-outlet:before{content:"\f342"}.ion-paintbrush:before{content:"\f4d5"}.ion-paintbucket:before{content:"\f4d6"}.ion-paper-airplane:before{content:"\f2c3"}.ion-paperclip:before{content:"\f20f"}.ion-pause:before{content:"\f210"}.ion-person:before{content:"\f213"}.ion-person-add:before{content:"\f211"}.ion-person-stalker:before{content:"\f212"}.ion-pie-graph:before{content:"\f2a5"}.ion-pin:before{content:"\f2a6"}.ion-pinpoint:before{content:"\f2a7"}.ion-pizza:before{content:"\f2a8"}.ion-plane:before{content:"\f214"}.ion-planet:before{content:"\f343"}.ion-play:before{content:"\f215"}.ion-playstation:before{content:"\f30a"}.ion-plus:before{content:"\f218"}.ion-plus-circled:before{content:"\f216"}.ion-plus-round:before{content:"\f217"}.ion-podium:before{content:"\f344"}.ion-pound:before{content:"\f219"}.ion-power:before{content:"\f2a9"}.ion-pricetag:before{content:"\f2aa"}.ion-pricetags:before{content:"\f2ab"}.ion-printer:before{content:"\f21a"}.ion-pull-request:before{content:"\f345"}.ion-qr-scanner:before{content:"\f346"}.ion-quote:before{content:"\f347"}.ion-radio-waves:before{content:"\f2ac"}.ion-record:before{content:"\f21b"}.ion-refresh:before{content:"\f21c"}.ion-reply:before{content:"\f21e"}.ion-reply-all:before{content:"\f21d"}.ion-ribbon-a:before{content:"\f348"}.ion-ribbon-b:before{content:"\f349"}.ion-sad:before{content:"\f34a"}.ion-sad-outline:before{content:"\f4d7"}.ion-scissors:before{content:"\f34b"}.ion-search:before{content:"\f21f"}.ion-settings:before{content:"\f2ad"}.ion-share:before{content:"\f220"}.ion-shuffle:before{content:"\f221"}.ion-skip-backward:before{content:"\f222"}.ion-skip-forward:before{content:"\f223"}.ion-social-android:before{content:"\f225"}.ion-social-android-outline:before{content:"\f224"}.ion-social-angular:before{content:"\f4d9"}.ion-social-angular-outline:before{content:"\f4d8"}.ion-social-apple:before{content:"\f227"}.ion-social-apple-outline:before{content:"\f226"}.ion-social-bitcoin:before{content:"\f2af"}.ion-social-bitcoin-outline:before{content:"\f2ae"}.ion-social-buffer:before{content:"\f229"}.ion-social-buffer-outline:before{content:"\f228"}.ion-social-chrome:before{content:"\f4db"}.ion-social-chrome-outline:before{content:"\f4da"}.ion-social-codepen:before{content:"\f4dd"}.ion-social-codepen-outline:before{content:"\f4dc"}.ion-social-css3:before{content:"\f4df"}.ion-social-css3-outline:before{content:"\f4de"}.ion-social-designernews:before{content:"\f22b"}.ion-social-designernews-outline:before{content:"\f22a"}.ion-social-dribbble:before{content:"\f22d"}.ion-social-dribbble-outline:before{content:"\f22c"}.ion-social-dropbox:before{content:"\f22f"}.ion-social-dropbox-outline:before{content:"\f22e"}.ion-social-euro:before{content:"\f4e1"}.ion-social-euro-outline:before{content:"\f4e0"}.ion-social-facebook:before{content:"\f231"}.ion-social-facebook-outline:before{content:"\f230"}.ion-social-foursquare:before{content:"\f34d"}.ion-social-foursquare-outline:before{content:"\f34c"}.ion-social-freebsd-devil:before{content:"\f2c4"}.ion-social-github:before{content:"\f233"}.ion-social-github-outline:before{content:"\f232"}.ion-social-google:before{content:"\f34f"}.ion-social-google-outline:before{content:"\f34e"}.ion-social-googleplus:before{content:"\f235"}.ion-social-googleplus-outline:before{content:"\f234"}.ion-social-hackernews:before{content:"\f237"}.ion-social-hackernews-outline:before{content:"\f236"}.ion-social-html5:before{content:"\f4e3"}.ion-social-html5-outline:before{content:"\f4e2"}.ion-social-instagram:before{content:"\f351"}.ion-social-instagram-outline:before{content:"\f350"}.ion-social-javascript:before{content:"\f4e5"}.ion-social-javascript-outline:before{content:"\f4e4"}.ion-social-linkedin:before{content:"\f239"}.ion-social-linkedin-outline:before{content:"\f238"}.ion-social-markdown:before{content:"\f4e6"}.ion-social-nodejs:before{content:"\f4e7"}.ion-social-octocat:before{content:"\f4e8"}.ion-social-pinterest:before{content:"\f2b1"}.ion-social-pinterest-outline:before{content:"\f2b0"}.ion-social-python:before{content:"\f4e9"}.ion-social-reddit:before{content:"\f23b"}.ion-social-reddit-outline:before{content:"\f23a"}.ion-social-rss:before{content:"\f23d"}.ion-social-rss-outline:before{content:"\f23c"}.ion-social-sass:before{content:"\f4ea"}.ion-social-skype:before{content:"\f23f"}.ion-social-skype-outline:before{content:"\f23e"}.ion-social-snapchat:before{content:"\f4ec"}.ion-social-snapchat-outline:before{content:"\f4eb"}.ion-social-tumblr:before{content:"\f241"}.ion-social-tumblr-outline:before{content:"\f240"}.ion-social-tux:before{content:"\f2c5"}.ion-social-twitch:before{content:"\f4ee"}.ion-social-twitch-outline:before{content:"\f4ed"}.ion-social-twitter:before{content:"\f243"}.ion-social-twitter-outline:before{content:"\f242"}.ion-social-usd:before{content:"\f353"}.ion-social-usd-outline:before{content:"\f352"}.ion-social-vimeo:before{content:"\f245"}.ion-social-vimeo-outline:before{content:"\f244"}.ion-social-whatsapp:before{content:"\f4f0"}.ion-social-whatsapp-outline:before{content:"\f4ef"}.ion-social-windows:before{content:"\f247"}.ion-social-windows-outline:before{content:"\f246"}.ion-social-wordpress:before{content:"\f249"}.ion-social-wordpress-outline:before{content:"\f248"}.ion-social-yahoo:before{content:"\f24b"}.ion-social-yahoo-outline:before{content:"\f24a"}.ion-social-yen:before{content:"\f4f2"}.ion-social-yen-outline:before{content:"\f4f1"}.ion-social-youtube:before{content:"\f24d"}.ion-social-youtube-outline:before{content:"\f24c"}.ion-soup-can:before{content:"\f4f4"}.ion-soup-can-outline:before{content:"\f4f3"}.ion-speakerphone:before{content:"\f2b2"}.ion-speedometer:before{content:"\f2b3"}.ion-spoon:before{content:"\f2b4"}.ion-star:before{content:"\f24e"}.ion-stats-bars:before{content:"\f2b5"}.ion-steam:before{content:"\f30b"}.ion-stop:before{content:"\f24f"}.ion-thermometer:before{content:"\f2b6"}.ion-thumbsdown:before{content:"\f250"}.ion-thumbsup:before{content:"\f251"}.ion-toggle:before{content:"\f355"}.ion-toggle-filled:before{content:"\f354"}.ion-transgender:before{content:"\f4f5"}.ion-trash-a:before{content:"\f252"}.ion-trash-b:before{content:"\f253"}.ion-trophy:before{content:"\f356"}.ion-tshirt:before{content:"\f4f7"}.ion-tshirt-outline:before{content:"\f4f6"}.ion-umbrella:before{content:"\f2b7"}.ion-university:before{content:"\f357"}.ion-unlocked:before{content:"\f254"}.ion-upload:before{content:"\f255"}.ion-usb:before{content:"\f2b8"}.ion-videocamera:before{content:"\f256"}.ion-volume-high:before{content:"\f257"}.ion-volume-low:before{content:"\f258"}.ion-volume-medium:before{content:"\f259"}.ion-volume-mute:before{content:"\f25a"}.ion-wand:before{content:"\f358"}.ion-waterdrop:before{content:"\f25b"}.ion-wifi:before{content:"\f25c"}.ion-wineglass:before{content:"\f2b9"}.ion-woman:before{content:"\f25d"}.ion-wrench:before{content:"\f2ba"}.ion-xbox:before{content:"\f30c"} diff --git a/admin/bower_components/Ionicons/fonts/ionicons.eot b/admin/bower_components/Ionicons/fonts/ionicons.eot deleted file mode 100644 index 92a3f20..0000000 Binary files a/admin/bower_components/Ionicons/fonts/ionicons.eot and /dev/null differ diff --git a/admin/bower_components/Ionicons/fonts/ionicons.svg b/admin/bower_components/Ionicons/fonts/ionicons.svg deleted file mode 100644 index 49fc8f3..0000000 --- a/admin/bower_components/Ionicons/fonts/ionicons.svg +++ /dev/null @@ -1,2230 +0,0 @@ -<?xml version="1.0" standalone="no"?> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" > -<!-- -2014-12-4: Created. ---> -<svg xmlns="http://www.w3.org/2000/svg"> -<metadata> -Created by FontForge 20120731 at Thu Dec 4 09:51:48 2014 - By Adam Bradley -Created by Adam Bradley with FontForge 2.0 (http://fontforge.sf.net) -</metadata> -<defs> -<font id="Ionicons" horiz-adv-x="448" > - <font-face - font-family="Ionicons" - font-weight="500" - font-stretch="normal" - units-per-em="512" - panose-1="2 0 6 3 0 0 0 0 0 0" - ascent="448" - descent="-64" - bbox="-0.54049 -64 512.487 448" - underline-thickness="25.6" - underline-position="-51.2" - unicode-range="U+F100-F4F7" - /> - <missing-glyph /> - <glyph glyph-name="ion-alert-circled" unicode="&#xf100;" -d="M445 26c3 -5 5 -13 2 -18s-8 -8 -14 -8h-418c-6 0 -11 3 -14 8s-1 13 2 18l207 349c3 5 8 9 14 9s11 -4 14 -9zM256 48v48h-64v-48h64zM256 128v144h-64v-144h64z" /> - <glyph glyph-name="ion-alert" unicode="&#xf101;" horiz-adv-x="128" -d="M128 -32h-128v96h128v-96zM112 128h-96l-16 288h128z" /> - <glyph glyph-name="ion-android-add-circle" unicode="&#xf359;" horiz-adv-x="416" -d="M208 400c115 0 208 -93 208 -208s-93 -208 -208 -208s-208 93 -208 208s93 208 208 208zM315 171v42h-86v86h-42v-86h-86v-42h86v-86h42v86h86z" /> - <glyph glyph-name="ion-android-add" unicode="&#xf2c7;" horiz-adv-x="320" -d="M320 171h-139v-139h-42v139h-139v42h139v139h42v-139h139v-42z" /> - <glyph glyph-name="ion-android-alarm-clock" unicode="&#xf35a;" horiz-adv-x="428" -d="M428 323l-28 -33l-98 82l28 33zM125 373l-97 -83l-28 33l97 83zM225 275v0v-111l85 -50l-16 -27l-101 61v127h32zM214 360c106 0 193 -86 193 -191s-87 -191 -193 -191c-107 0 -193 86 -193 191s86 191 193 191zM214 20c82 0 150 66 150 149c0 82 -68 149 -150 149 -s-150 -67 -150 -149s68 -149 150 -149z" /> - <glyph glyph-name="ion-android-alert" unicode="&#xf35b;" horiz-adv-x="416" -d="M208 400c114 0 208 -94 208 -208s-94 -208 -208 -208s-208 94 -208 208s94 208 208 208zM232 88v40h-48v-40h48zM232 176v128h-48v-128h48z" /> - <glyph glyph-name="ion-android-apps" unicode="&#xf35c;" horiz-adv-x="320" -d="M0 272v80h80v-80h-80zM120 32v80h80v-80h-80zM0 32v80h80v-80h-80zM0 152v80h80v-80h-80zM120 152v80h80v-80h-80zM240 352h80v-80h-80v80zM120 272v80h80v-80h-80zM240 152v80h80v-80h-80zM240 32v80h80v-80h-80z" /> - <glyph glyph-name="ion-android-archive" unicode="&#xf2c9;" horiz-adv-x="416" -d="M406 348c7 -7 10 -17 10 -29v-289c0 -25 -21 -46 -46 -46h-324c-25 0 -46 21 -46 46v289c0 12 3 22 10 29l33 39c6 8 16 13 26 13h278c10 0 20 -5 26 -13zM208 65l127 127h-81v46h-92v-46h-81zM49 354h317l-22 23h-277z" /> - <glyph glyph-name="ion-android-arrow-back" unicode="&#xf2ca;" horiz-adv-x="342" -d="M342 213v-42h-260l119 -120l-30 -30l-171 171l171 171l31 -30l-120 -120h260z" /> - <glyph glyph-name="ion-android-arrow-down" unicode="&#xf35d;" horiz-adv-x="342" -d="M192 363v-260l120 120l30 -31l-171 -171l-171 171l30 30l120 -119v260h42z" /> - <glyph glyph-name="ion-android-arrow-dropdown-circle" unicode="&#xf35e;" horiz-adv-x="416" -d="M208 400c115 0 208 -93 208 -208s-93 -208 -208 -208s-208 93 -208 208s93 208 208 208zM208 128l96 96h-192z" /> - <glyph glyph-name="ion-android-arrow-dropdown" unicode="&#xf35f;" horiz-adv-x="256" -d="M0 256h256l-128 -128z" /> - <glyph glyph-name="ion-android-arrow-dropleft-circle" unicode="&#xf360;" horiz-adv-x="416" -d="M416 192c0 -115 -93 -208 -208 -208s-208 93 -208 208s93 208 208 208s208 -93 208 -208zM144 192l96 -96v192z" /> - <glyph glyph-name="ion-android-arrow-dropleft" unicode="&#xf361;" horiz-adv-x="128" -d="M128 320v-256l-128 128z" /> - <glyph glyph-name="ion-android-arrow-dropright-circle" unicode="&#xf362;" horiz-adv-x="416" -d="M208 -16c-115 0 -208 93 -208 208s93 208 208 208s208 -93 208 -208s-93 -208 -208 -208zM176 96l96 96l-96 96v-192z" /> - <glyph glyph-name="ion-android-arrow-dropright" unicode="&#xf363;" horiz-adv-x="128" -d="M0 320l128 -128l-128 -128v256z" /> - <glyph glyph-name="ion-android-arrow-dropup-circle" unicode="&#xf364;" horiz-adv-x="416" -d="M416 192c0 -115 -93 -208 -208 -208s-208 93 -208 208s93 208 208 208s208 -93 208 -208zM304 160l-96 96l-96 -96h192z" /> - <glyph glyph-name="ion-android-arrow-dropup" unicode="&#xf365;" horiz-adv-x="256" -d="M0 128l128 128l128 -128h-256z" /> - <glyph glyph-name="ion-android-arrow-forward" unicode="&#xf30f;" horiz-adv-x="342" -d="M0 171v42h260l-119 120l30 30l171 -171l-171 -171l-31 30l120 120h-260z" /> - <glyph glyph-name="ion-android-arrow-up" unicode="&#xf366;" horiz-adv-x="342" -d="M192 21h-42v260l-120 -119l-30 30l171 171l171 -171l-30 -31l-120 120v-260z" /> - <glyph glyph-name="ion-android-attach" unicode="&#xf367;" horiz-adv-x="235" -d="M203 320h32v-235c0 -65 -53 -117 -118 -117s-117 52 -117 117v246c0 47 38 85 85 85s86 -38 86 -85v-246c0 -30 -24 -53 -54 -53s-53 23 -53 53v203h32v-203c0 -12 9 -21 21 -21s22 9 22 21v246c0 30 -24 53 -54 53s-53 -23 -53 -53v-246c0 -47 38 -85 85 -85 -s86 38 86 85v235z" /> - <glyph glyph-name="ion-android-bar" unicode="&#xf368;" horiz-adv-x="384" -d="M171 171l-171 170v43h384v-43l-171 -170v-131h107v-40h-256v40h107v131zM96 299h192l43 42h-278z" /> - <glyph glyph-name="ion-android-bicycle" unicode="&#xf369;" -d="M299 317c-19 0 -34 14 -34 33s15 34 34 34s33 -15 33 -34s-14 -33 -33 -33zM355 187c51 0 93 -43 93 -94s-42 -93 -93 -93s-94 42 -94 93s43 94 94 94zM355 28c36 0 65 29 65 65s-29 66 -65 66s-66 -30 -66 -66s30 -65 66 -65zM274 224l-30 45l-43 -45l39 -32v-112h-32 -v86l-61 38c-9 6 -19 15 -19 27c0 8 3 17 9 23l72 69c6 6 14 9 22 9c11 0 22 -7 28 -16l34 -60h59v-32h-78zM93 187c51 0 94 -43 94 -94s-43 -93 -94 -93s-93 42 -93 93s42 94 93 94zM93 28c36 0 66 29 66 65s-30 66 -66 66s-65 -30 -65 -66s29 -65 65 -65z" /> - <glyph glyph-name="ion-android-boat" unicode="&#xf36a;" -d="M52 35l-51 139c-2 6 -1 12 1 17s8 8 13 10l38 13v98c0 23 20 43 43 43h64l16 53h96l16 -53h64c23 0 43 -20 43 -43v-98l38 -13c5 -2 11 -5 13 -10s3 -12 1 -17l-51 -139h-1c-34 0 -65 20 -86 43c-21 -23 -51 -43 -85 -43s-64 19 -85 42c-21 -23 -52 -42 -86 -42h-1z -M96 312v-84l128 41l128 -41v84h-256zM309 40c0 0 59 -64 107 -64h-21c-30 0 -59 12 -86 26c-53 -28 -117 -28 -170 0c-27 -14 -56 -26 -86 -26h-21c49 0 107 64 107 64c52 -36 118 -36 170 0z" /> - <glyph glyph-name="ion-android-bookmark" unicode="&#xf36b;" horiz-adv-x="288" -d="M248 384c22 0 40 -18 40 -40v-344l-144 64l-144 -64v344c0 22 18 40 40 40h208z" /> - <glyph glyph-name="ion-android-bulb" unicode="&#xf36c;" -d="M224 278c-25 0 -50 -10 -68 -28s-28 -43 -28 -68c0 -34 18 -66 48 -83l16 -10v-18v-71h64v71v18l16 10c15 8 27 20 35 34c9 15 13 31 13 49c0 25 -10 50 -28 68s-43 28 -68 28zM245 416v0v-64h-42v64h42zM374 362v0l30 -30l-38 -38l-30 30zM74 362v0l38 -38l-30 -30 -l-38 38zM224 310v0c70 0 128 -58 128 -128c0 -48 -26 -89 -64 -111v-103h-128v103c-38 22 -64 64 -64 111c0 70 58 128 128 128zM448 203v0v-42h-64v42h64zM64 203v0v-42h-64v42h64z" /> - <glyph glyph-name="ion-android-bus" unicode="&#xf36d;" horiz-adv-x="352" -d="M0 96v204c0 75 82 84 176 84s176 -9 176 -84v-204c0 -18 -14 -24 -27 -36v-39c0 -12 -9 -21 -21 -21h-21c-12 0 -22 9 -22 21v22h-170v-22c0 -12 -10 -21 -22 -21h-21c-12 0 -21 9 -21 21v39c-13 12 -27 17 -27 36zM80 80c18 0 32 14 32 32s-14 32 -32 32 -s-32 -14 -32 -32s14 -32 32 -32zM272 80c18 0 32 14 32 32s-14 32 -32 32s-32 -14 -32 -32s14 -32 32 -32zM304 203v106h-256v-106h256z" /> - <glyph glyph-name="ion-android-calendar" unicode="&#xf2d1;" horiz-adv-x="384" -d="M304 176v-96h-96v96h96zM272 384h48v-32h24c22 0 40 -18 40 -40v-272c0 -22 -18 -40 -40 -40h-304c-22 0 -40 18 -40 40v272c0 22 18 40 40 40h24v32h48v-32h160v32zM344 40v212h-304v-212h304z" /> - <glyph glyph-name="ion-android-call" unicode="&#xf2d2;" horiz-adv-x="384" -d="M363 117c12 0 21 -9 21 -21v-75c0 -12 -9 -21 -21 -21c-201 0 -363 162 -363 363c0 12 9 21 21 21h75c12 0 21 -9 21 -21c0 -27 4 -52 13 -77c2 -7 0 -16 -5 -21l-47 -47c31 -61 80 -110 141 -141l47 47c5 6 14 7 21 5c23 -7 49 -12 76 -12z" /> - <glyph glyph-name="ion-android-camera" unicode="&#xf2d3;" -d="M161 168c0 42 21 63 63 63s63 -21 63 -63s-21 -63 -63 -63s-63 21 -63 63zM408 352c11 0 20 -4 28 -12s12 -17 12 -28v-272c0 -11 -4 -20 -12 -28s-17 -12 -28 -12h-368c-11 0 -20 4 -28 12s-12 17 -12 28v272c0 11 4 20 12 28s17 12 28 12h88l32 32h128l32 -32h88z -M224 56c31 0 57 11 79 33s33 48 33 79s-11 57 -33 79s-48 33 -79 33s-57 -11 -79 -33s-33 -48 -33 -79s11 -57 33 -79s48 -33 79 -33z" /> - <glyph glyph-name="ion-android-cancel" unicode="&#xf36e;" horiz-adv-x="416" -d="M208 400c115 0 208 -93 208 -208s-93 -208 -208 -208s-208 93 -208 208s93 208 208 208zM312 117l-75 75l75 75l-29 29l-75 -75l-75 75l-29 -29l75 -75l-75 -75l29 -29l75 75l75 -75z" /> - <glyph glyph-name="ion-android-car" unicode="&#xf36f;" horiz-adv-x="384" -d="M339 331l45 -118v-160c0 -12 -9 -21 -21 -21h-22c-12 0 -21 9 -21 21v11h-256v-11c0 -12 -9 -21 -21 -21h-22c-12 0 -21 9 -21 21v160l45 118c4 13 16 21 30 21h234c14 0 26 -8 30 -21zM75 128c18 0 32 14 32 32s-14 32 -32 32s-32 -14 -32 -32s14 -32 32 -32zM309 128 -c18 0 32 14 32 32s-14 32 -32 32s-32 -14 -32 -32s14 -32 32 -32zM43 235h298l-32 85h-234z" /> - <glyph glyph-name="ion-android-cart" unicode="&#xf370;" horiz-adv-x="416" -d="M122 70c23 0 41 -18 41 -41s-18 -42 -41 -42s-42 19 -42 42s19 41 42 41zM0 397h68l19 -42h308c11 0 21 -9 21 -20c0 -4 -1 -8 -2 -10l-75 -129c-7 -14 -20 -22 -36 -22h-155l-21 -32s-2 -5 -2 -6c0 -3 2 -5 5 -5h238v-40h-243c-26 0 -45 14 -45 42c0 7 2 15 5 20l31 51 -l-74 151h-42v42zM326 70c23 0 42 -18 42 -41s-19 -42 -42 -42s-41 19 -41 42s18 41 41 41z" /> - <glyph glyph-name="ion-android-chat" unicode="&#xf2d4;" horiz-adv-x="416" -d="M344 384c4 0 7 -4 7 -8v-214c0 -4 -3 -9 -7 -9h-187l-90 -89v89h-57c-4 0 -10 5 -10 9v214c0 4 6 8 10 8h334zM408 321c4 0 8 -5 8 -9v-214c0 -4 -4 -9 -8 -9h-57v-89l-90 89h-130l39 39h181c18 0 25 10 25 26v167h32z" /> - <glyph glyph-name="ion-android-checkbox-blank" unicode="&#xf371;" horiz-adv-x="384" -d="M341 384c23 0 43 -20 43 -43v-298c0 -23 -20 -43 -43 -43h-298c-23 0 -43 20 -43 43v298c0 23 20 43 43 43h298z" /> - <glyph glyph-name="ion-android-checkbox-outline-blank" unicode="&#xf372;" horiz-adv-x="384" -d="M341 341h-298v-298h298v298zM341 384v0c23 0 43 -20 43 -43v-298c0 -23 -20 -43 -43 -43h-298c-23 0 -43 20 -43 43v298c0 23 20 43 43 43h298z" /> - <glyph glyph-name="ion-android-checkbox-outline" unicode="&#xf373;" horiz-adv-x="384" -d="M105 233l66 -66l183 183l30 -30l-213 -213l-96 96zM341 43v170h43v-170c0 -23 -20 -43 -43 -43h-298c-23 0 -43 20 -43 43v298c0 23 20 43 43 43h213v-43h-213v-298h298z" /> - <glyph glyph-name="ion-android-checkbox" unicode="&#xf374;" horiz-adv-x="384" -d="M341 384c23 0 43 -20 43 -43v-298c0 -23 -20 -43 -43 -43h-298c-23 0 -43 20 -43 43v298c0 23 20 43 43 43h298zM149 85l192 192l-30 30l-162 -162l-76 77l-30 -30z" /> - <glyph glyph-name="ion-android-checkmark-circle" unicode="&#xf375;" horiz-adv-x="416" -d="M123 232l64 -64l179 178l29 -29l-208 -208l-93 93zM374 192h42c0 -114 -94 -208 -208 -208s-208 94 -208 208s94 208 208 208c28 0 54 -6 78 -16l-32 -32c-15 4 -30 6 -46 6c-92 0 -166 -74 -166 -166s74 -166 166 -166s166 74 166 166z" /> - <glyph glyph-name="ion-android-clipboard" unicode="&#xf376;" horiz-adv-x="384" -d="M341 368c23 0 43 -20 43 -43v-314c0 -23 -20 -43 -43 -43h-298c-23 0 -43 20 -43 43v314c0 23 20 43 43 43h87c7 28 32 48 62 48s55 -20 62 -48h87zM192 368c-12 0 -21 -9 -21 -21s9 -22 21 -22s21 10 21 22s-9 21 -21 21zM344 8v320h-40v-72h-224v72h-40v-320h304z" /> - <glyph glyph-name="ion-android-close" unicode="&#xf2d7;" horiz-adv-x="298" -d="M298 311l-119 -119l119 -119l-30 -30l-119 119l-119 -119l-30 30l119 119l-119 119l30 30l119 -119l119 119z" /> - <glyph glyph-name="ion-android-cloud-circle" unicode="&#xf377;" horiz-adv-x="416" -d="M208 400c114 0 208 -94 208 -208s-94 -208 -208 -208s-208 94 -208 208s94 208 208 208zM302 109c29 0 52 23 52 52s-23 52 -52 52h-11c0 46 -37 83 -83 83c-38 0 -71 -26 -80 -62h-3c-34 0 -63 -29 -63 -63s29 -62 63 -62h177z" /> - <glyph glyph-name="ion-android-cloud-done" unicode="&#xf378;" horiz-adv-x="480" -d="M387 231c52 -3 93 -46 93 -99c0 -55 -45 -100 -100 -100h-260c-66 0 -120 54 -120 120c0 62 47 113 107 119c25 48 75 81 133 81c73 0 133 -52 147 -121zM197 85l141 141l-30 30l-111 -111l-44 45l-30 -30z" /> - <glyph glyph-name="ion-android-cloud-outline" unicode="&#xf379;" horiz-adv-x="480" -d="M387 231c52 -3 93 -46 93 -99c0 -55 -45 -100 -100 -100h-260c-66 0 -120 54 -120 120c0 62 47 113 107 119c25 48 75 81 133 81c73 0 133 -52 147 -121zM380 72c33 0 60 27 60 60s-27 60 -60 60h-30v10c0 61 -49 110 -110 110c-51 0 -93 -34 -106 -80h-14 -c-44 0 -80 -36 -80 -80s36 -80 80 -80h260z" /> - <glyph glyph-name="ion-android-cloud" unicode="&#xf37a;" horiz-adv-x="480" -d="M387 231c52 -3 93 -46 93 -99c0 -55 -45 -100 -100 -100h-260c-66 0 -120 54 -120 120c0 62 47 113 107 119c25 48 75 81 133 81c73 0 133 -52 147 -121z" /> - <glyph glyph-name="ion-android-color-palette" unicode="&#xf37b;" horiz-adv-x="384" -d="M192 384c106 0 192 -77 192 -171c0 -59 -48 -106 -107 -106h-38c-18 0 -32 -14 -32 -32c0 -9 3 -17 8 -22s9 -12 9 -21c0 -18 -14 -32 -32 -32c-106 0 -192 86 -192 192s86 192 192 192zM75 192c18 0 32 14 32 32s-14 32 -32 32s-32 -14 -32 -32s14 -32 32 -32zM139 277 -c18 0 32 14 32 32s-14 32 -32 32s-32 -14 -32 -32s14 -32 32 -32zM245 277c18 0 32 14 32 32s-14 32 -32 32s-32 -14 -32 -32s14 -32 32 -32zM309 192c18 0 32 14 32 32s-14 32 -32 32s-32 -14 -32 -32s14 -32 32 -32z" /> - <glyph glyph-name="ion-android-compass" unicode="&#xf37c;" -d="M224 217c13 0 25 -12 25 -25s-12 -25 -25 -25s-25 12 -25 25s12 25 25 25zM224 416c123 0 224 -101 224 -224s-101 -224 -224 -224s-224 101 -224 224s101 224 224 224zM273 143l85 183l-183 -85l-85 -183z" /> - <glyph glyph-name="ion-android-contact" unicode="&#xf2d8;" horiz-adv-x="384" -d="M267 110c59 -18 104 -58 117 -110h-384c13 52 58 92 117 110c22 -13 48 -20 75 -20s53 7 75 20zM192 384c73 0 132 -59 132 -132s-59 -132 -132 -132s-132 59 -132 132s59 132 132 132zM192 153c42 0 78 26 92 63h-184c14 -37 50 -63 92 -63z" /> - <glyph glyph-name="ion-android-contacts" unicode="&#xf2d9;" -d="M207 104c47 -14 76 -62 87 -104h-294c11 42 40 90 87 104c18 -10 38 -16 60 -16s42 6 60 16zM147 328c58 0 106 -48 106 -106s-48 -106 -106 -106s-106 48 -106 106s48 106 106 106zM147 141c34 0 62 23 74 51h-148c12 -28 40 -51 74 -51zM291 64c-13 20 -34 43 -60 53 -c11 9 21 23 28 35c13 -5 27 -8 42 -8c22 0 42 6 60 16c47 -14 76 -54 87 -96h-157zM275 248c-8 37 -31 69 -63 87c19 29 52 49 89 49c58 0 106 -48 106 -106s-48 -106 -106 -106c-11 0 -22 2 -32 5c3 8 6 16 7 25c8 -3 16 -4 25 -4c34 0 62 22 74 50h-100z" /> - <glyph glyph-name="ion-android-contract" unicode="&#xf37d;" horiz-adv-x="384" -d="M0 77v51h128v-128h-51v77h-77zM77 307v77h51v-128h-128v51h77zM256 0v128h128v-51h-77v-77h-51zM307 307h77v-51h-128v128h51v-77z" /> - <glyph glyph-name="ion-android-create" unicode="&#xf37e;" horiz-adv-x="384" -d="M0 80l236 236l80 -80l-236 -236h-80v80zM378 298l-40 -40l-80 80l40 40c9 9 20 9 29 0l51 -51c9 -9 9 -20 0 -29z" /> - <glyph glyph-name="ion-android-delete" unicode="&#xf37f;" horiz-adv-x="320" -d="M32 43v245h256v-245c0 -23 -20 -43 -43 -43h-170c-23 0 -43 20 -43 43zM320 352v-32h-320v32h80l27 32h106l27 -32h80z" /> - <glyph glyph-name="ion-android-desktop" unicode="&#xf380;" -d="M405 416c23 0 43 -20 43 -43v-282c0 -23 -20 -43 -43 -43h-138l42 -48v-32h-170v32l42 48h-138c-23 0 -43 20 -43 43v282c0 23 20 43 43 43h362zM405 128v245h-362v-245h362z" /> - <glyph glyph-name="ion-android-document" unicode="&#xf381;" horiz-adv-x="320" -d="M192 400l128 -128v-248c0 -22 -18 -40 -40 -40h-240c-22 0 -40 18 -40 40v336c0 22 18 40 40 40h152zM176 256h112l-112 112v-112z" /> - <glyph glyph-name="ion-android-done-all" unicode="&#xf382;" horiz-adv-x="512" -d="M388 308l-140 -139l-31 31l140 139zM481 339l31 -31l-264 -263l-122 123l30 31l92 -91zM0 168l32 31l122 -123l-31 -31z" /> - <glyph glyph-name="ion-android-done" unicode="&#xf383;" horiz-adv-x="384" -d="M122 108l230 230l32 -31l-262 -261l-122 122l32 31z" /> - <glyph glyph-name="ion-android-download" unicode="&#xf2dd;" horiz-adv-x="480" -d="M387 231c52 -3 93 -46 93 -99c0 -55 -45 -100 -100 -100h-260c-66 0 -120 54 -120 120c0 62 47 113 107 119c25 48 75 81 133 81c73 0 133 -52 147 -121zM208 180h-68l100 -100l100 100h-68v76h-64v-76z" /> - <glyph glyph-name="ion-android-drafts" unicode="&#xf384;" -d="M448 246v-203c0 -23 -20 -43 -43 -43h-362c-23 0 -43 20 -43 43v203c0 15 8 30 20 37l204 101l204 -101c13 -7 20 -22 20 -37zM224 144l171 112l-171 85l-171 -85z" /> - <glyph glyph-name="ion-android-exit" unicode="&#xf385;" horiz-adv-x="384" -d="M151 115l55 56h-206v42h207l-56 56l30 30l107 -107l-107 -107zM341 384c23 0 43 -20 43 -43v-298c0 -23 -20 -43 -43 -43h-298c-23 0 -43 20 -43 43v85h43v-85h298v298h-298v-85h-43v85c0 23 20 43 43 43h298z" /> - <glyph glyph-name="ion-android-expand" unicode="&#xf386;" horiz-adv-x="384" -d="M333 51v77h51v-128h-128v51h77zM333 333h-77v51h128v-128h-51v77zM51 333v-77h-51v128h128v-51h-77zM51 51h77v-51h-128v128h51v-77z" /> - <glyph glyph-name="ion-android-favorite-outline" unicode="&#xf387;" horiz-adv-x="416" -d="M302 384c64 0 114 -50 114 -115c0 -80 -71 -144 -178 -242l-30 -27l-30 27c-107 98 -178 162 -178 242c0 65 50 115 114 115c36 0 71 -17 94 -44c23 27 58 44 94 44zM221 55c50 46 94 86 123 122c28 35 40 63 40 92c0 23 -9 44 -24 59s-35 24 -58 24 -c-26 0 -53 -13 -70 -33l-24 -29l-24 29c-17 20 -44 33 -70 33c-23 0 -43 -9 -58 -24s-24 -36 -24 -59c0 -29 12 -57 40 -92c29 -36 73 -76 123 -122l4 -4l9 -8l9 8z" /> - <glyph glyph-name="ion-android-favorite" unicode="&#xf388;" horiz-adv-x="416" -d="M208 0l-30 27c-107 98 -178 162 -178 242c0 65 50 115 114 115c36 0 71 -17 94 -44c23 27 58 44 94 44c64 0 114 -50 114 -115c0 -80 -71 -144 -178 -242z" /> - <glyph glyph-name="ion-android-film" unicode="&#xf389;" horiz-adv-x="320" -d="M280 384h40v-384h-40v43h-40v-43h-160v43h-40v-43h-40v384h40v-43h40v43h160v-43h40v43zM80 85v43h-40v-43h40zM80 171v42h-40v-42h40zM80 256v43h-40v-43h40zM280 85v43h-40v-43h40zM280 171v42h-40v-42h40zM280 256v43h-40v-43h40z" /> - <glyph glyph-name="ion-android-folder-open" unicode="&#xf38a;" -d="M405 304c23 0 43 -20 43 -43v-186c0 -23 -20 -43 -43 -43h-362c-23 0 -43 20 -43 43v234c0 23 20 43 43 43h138l43 -48h181zM416 75v186c0 6 -5 11 -11 11h-373v-197c0 -6 5 -11 11 -11h362c6 0 11 5 11 11z" /> - <glyph glyph-name="ion-android-folder" unicode="&#xf2e0;" -d="M181 352l43 -48h181c23 0 43 -20 43 -43v-186c0 -23 -20 -43 -43 -43h-362c-23 0 -43 20 -43 43v234c0 23 20 43 43 43h138z" /> - <glyph glyph-name="ion-android-funnel" unicode="&#xf38b;" -d="M176 48v48h96v-48h-96zM0 336h448v-48h-448v48zM80 167v50h288v-50h-288z" /> - <glyph glyph-name="ion-android-globe" unicode="&#xf38c;" horiz-adv-x="416" -d="M208 400c115 0 208 -93 208 -208s-93 -208 -208 -208s-208 93 -208 208s93 208 208 208zM186 15c6 15 21 29 8 39c-8 7 -16 14 -23 21c-2 2 -11 20 -9 23c5 9 6 14 8 24c3 12 -3 16 -13 22c-15 10 -29 23 -43 34c-7 5 -17 10 -20 19s-5 20 -10 28c-14 20 -12 34 -10 58 -c0 7 -1 16 -2 25c-28 -32 -42 -73 -42 -116c0 -48 18 -92 52 -126c29 -29 65 -46 104 -51zM334 66c23 23 39 51 47 82c-8 -1 -19 2 -19 2s-21 24 -23 45c-2 22 0 39 -3 57c-3 16 -20 31 -27 46c-7 14 -13 28 -20 42c2 -1 5 -2 7 -3c5 1 10 2 14 2c-23 16 -49 25 -76 29v-8 -l4 -9l-14 -13l-9 3l-10 10l-10 12l-14 5c-16 -2 -31 -7 -45 -13v-7c7 3 16 5 23 8c3 1 13 -7 16 -9c-4 -5 -21 -15 -22 -21c0 -2 7 -6 7 -10c0 -6 -1 -11 -1 -17c3 3 20 21 22 21c13 3 35 -19 37 -26s-22 -24 -33 -34c-8 -8 -25 -12 -20 -24c2 -4 10 -20 5 -24 -c-6 -5 -14 9 -17 12c-8 10 -26 7 -38 7c0 -17 -1 -31 15 -43c15 -11 30 -25 47 -33c13 -6 36 7 47 -1c16 -11 29 -21 47 -29c8 -3 33 -20 26 -31c-5 -8 -10 -15 -14 -23s-13 -20 -20 -25c-8 -6 -16 -17 -21 -29c35 7 66 23 92 49z" /> - <glyph glyph-name="ion-android-hand" unicode="&#xf2e3;" horiz-adv-x="414" -d="M401 174c15 -15 18 -36 3 -51c0 0 -96 -103 -126 -121v0c-28 -21 -65 -34 -100 -34c-55 0 -101 36 -117 85v0v1c0 1 -1 2 -1 3l-58 189c-5 15 2 32 17 37s30 -3 35 -18l34 -88c1 -4 2 -2 2 1l-22 161c-3 15 7 30 22 33s30 -8 33 -23l25 -138c0 -2 2 -2 2 0v177 -c0 15 13 28 28 28s28 -13 28 -28l8 -175c0 -5 3 -4 4 -1l23 135c2 15 16 27 31 25s27 -17 25 -32l-21 -172c-1 -12 -3 -30 2 -36c8 -9 20 -9 31 2l42 42c15 15 35 13 50 -2z" /> - <glyph glyph-name="ion-android-hangout" unicode="&#xf38d;" horiz-adv-x="352" -d="M176 400c97 0 176 -77 176 -172c0 -91 -76 -196 -176 -244v71c-97 0 -176 78 -176 173s79 172 176 172zM166 217v61h-62v-61h31l-21 -40h31zM248 217v61h-62v-61h31l-20 -40h31z" /> - <glyph glyph-name="ion-android-happy" unicode="&#xf38e;" horiz-adv-x="416" -d="M208 400c114 0 208 -94 208 -208s-93 -208 -208 -208s-208 94 -208 208s93 208 208 208zM208 26c92 0 166 74 166 166s-74 166 -166 166s-166 -74 -166 -166s74 -166 166 -166zM281 213c-18 0 -31 13 -31 31s13 31 31 31s31 -13 31 -31s-13 -31 -31 -31zM135 213 -c-18 0 -31 13 -31 31s13 31 31 31s31 -13 31 -31s-13 -31 -31 -31zM208 78c-49 0 -89 29 -106 72h212c-17 -43 -57 -72 -106 -72z" /> - <glyph glyph-name="ion-android-home" unicode="&#xf38f;" horiz-adv-x="416" -d="M160 0h-98v192h-62l208 192l208 -192h-62v-192h-98v128h-96v-128z" /> - <glyph glyph-name="ion-android-image" unicode="&#xf2e4;" horiz-adv-x="384" -d="M384 43c0 -23 -20 -43 -43 -43h-298c-23 0 -43 20 -43 43v298c0 23 20 43 43 43h298c23 0 43 -20 43 -43v-298zM117 160l-74 -96h298l-96 128l-74 -96z" /> - <glyph glyph-name="ion-android-laptop" unicode="&#xf390;" horiz-adv-x="512" -d="M437 32h75c0 -23 -64 -32 -96 -32h-320c-32 0 -96 9 -96 32h75c-23 0 -43 20 -43 43v266c0 23 20 43 43 43h362c23 0 43 -20 43 -43v-266c0 -23 -20 -43 -43 -43zM75 341v-272h362v272h-362zM256 13c12 0 21 10 21 22s-9 21 -21 21s-21 -9 -21 -21s9 -22 21 -22z" /> - <glyph glyph-name="ion-android-list" unicode="&#xf391;" horiz-adv-x="384" -d="M344 384c22 0 40 -18 40 -40v-304c0 -22 -18 -40 -40 -40h-304c-22 0 -40 18 -40 40v304c0 22 18 40 40 40h304zM240 80v48h-160v-48h160zM304 168v48h-224v-48h224zM304 256v48h-224v-48h224z" /> - <glyph glyph-name="ion-android-locate" unicode="&#xf2e9;" -d="M224 272c44 0 80 -36 80 -80s-36 -80 -80 -80s-80 36 -80 80s36 80 80 80zM415 213h33v-42h-33c-10 -89 -81 -160 -170 -170v-33h-42v33c-89 10 -160 81 -170 170h-33v42h33c10 89 81 160 170 170v33h42v-33c89 -10 160 -81 170 -170zM224 43c82 0 149 67 149 149 -s-67 149 -149 149s-149 -67 -149 -149s67 -149 149 -149z" /> - <glyph glyph-name="ion-android-lock" unicode="&#xf392;" horiz-adv-x="320" -d="M280 262c22 0 40 -18 40 -40v-200c0 -22 -18 -40 -40 -40h-240c-22 0 -40 18 -40 40v200c0 22 18 40 40 40h20v40c0 55 45 100 100 100s100 -45 100 -100v-40h20zM160 80c22 0 40 18 40 40s-18 40 -40 40s-40 -18 -40 -40s18 -40 40 -40zM222 262v40c0 34 -28 62 -62 62 -s-62 -28 -62 -62v-40h124z" /> - <glyph glyph-name="ion-android-mail" unicode="&#xf2eb;" -d="M405 368c23 0 43 -20 43 -43v-266c0 -23 -20 -43 -43 -43h-362c-23 0 -43 20 -43 43v266c0 23 20 43 43 43h362zM400 277v43l-176 -117l-176 117v-43l176 -117z" /> - <glyph glyph-name="ion-android-map" unicode="&#xf393;" horiz-adv-x="384" -d="M373 384c6 0 11 -5 11 -11v-322c0 -5 -3 -9 -7 -10l-121 -41l-128 45s-105 -41 -108 -42s-7 -3 -9 -3c-6 0 -11 5 -11 11v322c0 5 3 9 7 10l121 41l128 -45s103 40 108 42s7 3 9 3zM256 43v254l-128 44v-254z" /> - <glyph glyph-name="ion-android-menu" unicode="&#xf394;" horiz-adv-x="384" -d="M0 64v43h384v-43h-384zM0 171v42h384v-42h-384zM0 320h384v-43h-384v43z" /> - <glyph glyph-name="ion-android-microphone-off" unicode="&#xf395;" horiz-adv-x="408" -d="M316 93l58 -58l-58 58l58 -58l34 -33l-24 -24l-95 95c-19 -11 -40 -20 -62 -23v-82h-46v82c-75 10 -137 76 -137 153h39c0 -68 58 -117 121 -117c20 0 40 5 57 14l-32 33c-8 -3 -16 -5 -25 -5c-38 0 -69 31 -69 69v29l-135 134l24 24l111 -110v0l140 -140l5 -5l9 -9z -M273 197c0 -4 0 -8 -1 -12l-137 137v25c0 38 31 69 69 69s69 -31 69 -69v-150zM365 203c0 -31 -10 -60 -27 -84l-27 28c9 17 15 36 15 56h39zM408 2v0l-34 33z" /> - <glyph glyph-name="ion-android-microphone" unicode="&#xf2ec;" horiz-adv-x="320" -d="M160 128c-38 0 -69 31 -69 69v150c0 38 31 69 69 69s69 -31 69 -69v-150c0 -38 -31 -69 -69 -69zM281 203h39c0 -78 -62 -142 -137 -153v-82h-46v82c-75 10 -137 75 -137 153h39c0 -69 58 -116 121 -116s121 47 121 116z" /> - <glyph glyph-name="ion-android-more-horizontal" unicode="&#xf396;" horiz-adv-x="320" -d="M40 232c22 0 40 -18 40 -40s-18 -40 -40 -40s-40 18 -40 40s18 40 40 40zM280 232c22 0 40 -18 40 -40s-18 -40 -40 -40s-40 18 -40 40s18 40 40 40zM160 232c22 0 40 -18 40 -40s-18 -40 -40 -40s-40 18 -40 40s18 40 40 40z" /> - <glyph glyph-name="ion-android-more-vertical" unicode="&#xf397;" horiz-adv-x="80" -d="M80 312c0 -22 -18 -40 -40 -40s-40 18 -40 40s18 40 40 40s40 -18 40 -40zM80 72c0 -22 -18 -40 -40 -40s-40 18 -40 40s18 40 40 40s40 -18 40 -40zM80 192c0 -22 -18 -40 -40 -40s-40 18 -40 40s18 40 40 40s40 -18 40 -40z" /> - <glyph glyph-name="ion-android-navigate" unicode="&#xf398;" horiz-adv-x="320" -d="M160 384l160 -369l-15 -15l-145 64l-145 -64l-15 15z" /> - <glyph glyph-name="ion-android-notifications-none" unicode="&#xf399;" horiz-adv-x="352" -d="M177 328h-2c-6 0 -24 -5 -24 -5c-46 -10 -78 -53 -78 -100v-114v-13l-9 -10l-8 -8h240l-8 8l-9 10v13v114c0 47 -32 90 -78 100c0 0 -17 5 -24 5zM176 400v0c18 0 31 -13 31 -31v-15c59 -14 104 -68 104 -131v-114l41 -42v-21h-352v21l41 42v114c0 63 45 117 104 131v15 -c0 18 13 31 31 31zM217 26v0c0 -23 -18 -42 -41 -42s-41 19 -41 42h82z" /> - <glyph glyph-name="ion-android-notifications-off" unicode="&#xf39a;" horiz-adv-x="364" -d="M182 -16c-23 0 -41 19 -41 42h82c0 -23 -18 -42 -41 -42zM57 341l295 -295v0l12 -12l-24 -24l-36 36h-298v21l41 41v115c0 23 6 44 16 63l-63 64l24 24l33 -33v0zM317 223v-94l-208 207c13 8 27 15 42 18v15c0 18 13 31 31 31s31 -13 31 -31v-15c59 -14 104 -67 104 -131 -z" /> - <glyph glyph-name="ion-android-notifications" unicode="&#xf39b;" horiz-adv-x="352" -d="M176 -16c-23 0 -41 19 -41 42h82c0 -23 -18 -42 -41 -42zM311 109l41 -42v-21h-352v21l41 42v114c0 63 45 117 104 131v15c0 18 13 31 31 31s31 -13 31 -31v-15c59 -14 104 -68 104 -131v-114z" /> - <glyph glyph-name="ion-android-open" unicode="&#xf39c;" horiz-adv-x="384" -d="M341 43v133h43v-133c0 -23 -20 -43 -43 -43h-298c-23 0 -43 20 -43 43v298c0 23 20 43 43 43h133v-43h-133v-298h298zM224 384h160v-160h-43v87l-215 -215l-30 30l215 215h-87v43z" /> - <glyph glyph-name="ion-android-options" unicode="&#xf39d;" -d="M0 32v32h272v-32h-272zM368 32v32h80v-32h-80zM352 0c0 -18 -14 -32 -32 -32v0c-18 0 -32 14 -32 32v96c0 18 14 32 32 32v0c18 0 32 -14 32 -32v-96zM0 176v32h80v-32h-80zM176 176v32h272v-32h-272zM160 144c0 -18 -14 -32 -32 -32v0c-18 0 -32 14 -32 32v96 -c0 18 14 32 32 32v0c18 0 32 -14 32 -32v-96zM0 320v32h272v-32h-272zM368 320v32h80v-32h-80zM352 288c0 -18 -14 -32 -32 -32v0c-18 0 -32 14 -32 32v96c0 18 14 32 32 32v0c18 0 32 -14 32 -32v-96z" /> - <glyph glyph-name="ion-android-people" unicode="&#xf39e;" -d="M305 216c-34 0 -61 27 -61 60s27 60 61 60s62 -27 62 -60s-28 -60 -62 -60zM143 216c-34 0 -62 27 -62 60s28 60 62 60s61 -27 61 -60s-27 -60 -61 -60zM143 172c48 0 145 -23 145 -70v-54h-288v54c0 47 95 70 143 70zM305 161c48 0 143 -12 143 -59v-54h-128v54 -c0 30 -9 41 -32 58c7 1 11 1 17 1z" /> - <glyph glyph-name="ion-android-person-add" unicode="&#xf39f;" horiz-adv-x="480" -d="M288 192c-53 0 -96 43 -96 96s43 96 96 96s96 -43 96 -96s-43 -96 -96 -96zM288 144c64 0 192 -32 192 -96v-48h-384v48c0 64 128 96 192 96zM96 224h64v-32h-64v-64h-32v64h-64v32h64v64h32v-64z" /> - <glyph glyph-name="ion-android-person" unicode="&#xf3a0;" horiz-adv-x="384" -d="M192 192c-53 0 -96 43 -96 96s43 96 96 96s96 -43 96 -96s-43 -96 -96 -96zM192 144c64 0 192 -32 192 -96v-48h-384v48c0 64 128 96 192 96z" /> - <glyph glyph-name="ion-android-phone-landscape" unicode="&#xf3a1;" -d="M448 89c0 -23 -19 -41 -41 -41h-366c-22 0 -41 18 -41 41v206c0 23 19 41 41 41h366c22 0 41 -18 41 -41v-206zM80 84h288v216h-288v-216z" /> - <glyph glyph-name="ion-android-phone-portrait" unicode="&#xf3a2;" horiz-adv-x="288" -d="M247 416c23 0 41 -19 41 -41v-366c0 -22 -18 -41 -41 -41h-206c-23 0 -41 19 -41 41v366c0 22 18 41 41 41h206zM252 48v288h-216v-288h216z" /> - <glyph glyph-name="ion-android-pin" unicode="&#xf3a3;" horiz-adv-x="320" -d="M160 416c88 0 160 -71 160 -157c0 -118 -160 -291 -160 -291s-160 173 -160 291c0 86 72 157 160 157zM160 203c32 0 57 25 57 56s-25 56 -57 56s-57 -25 -57 -56s25 -56 57 -56z" /> - <glyph glyph-name="ion-android-plane" unicode="&#xf3a4;" horiz-adv-x="384" -d="M384 112l-160 48v-114l48 -31v-31l-80 16l-80 -16v31l48 31v114l-160 -48v40l160 104v113c0 18 15 31 32 31s32 -13 32 -31v-113l160 -104v-40z" /> - <glyph glyph-name="ion-android-playstore" unicode="&#xf2f0;" horiz-adv-x="416" -d="M416 296c-19 -214 -13 -312 -13 -312h-390s6 96 -13 312h104c0 57 47 104 104 104s104 -47 104 -104h104zM208 374c-43 0 -78 -35 -78 -78h156c0 43 -35 78 -78 78zM156 50l143 85l-143 84v-169z" /> - <glyph glyph-name="ion-android-print" unicode="&#xf3a5;" horiz-adv-x="416" -d="M352 288c35 0 64 -29 64 -64v-139h-80v-85h-256v85h-80v139c0 35 29 64 64 64h288zM304 32v128h-192v-128h192zM336 384v0v-80h-256v80h256z" /> - <glyph glyph-name="ion-android-radio-button-off" unicode="&#xf3a6;" horiz-adv-x="416" -d="M208 400c114 0 208 -94 208 -208s-94 -208 -208 -208s-208 94 -208 208s94 208 208 208zM208 26c92 0 166 74 166 166s-74 166 -166 166s-166 -74 -166 -166s74 -166 166 -166z" /> - <glyph glyph-name="ion-android-radio-button-on" unicode="&#xf3a7;" horiz-adv-x="416" -d="M208 296c57 0 104 -47 104 -104s-47 -104 -104 -104s-104 47 -104 104s47 104 104 104zM208 400c114 0 208 -94 208 -208s-94 -208 -208 -208s-208 94 -208 208s94 208 208 208zM208 26c92 0 166 74 166 166s-74 166 -166 166s-166 -74 -166 -166s74 -166 166 -166z" /> - <glyph glyph-name="ion-android-refresh" unicode="&#xf3a8;" horiz-adv-x="352" -d="M176 60c56 0 104 34 123 84h46c-21 -74 -88 -128 -169 -128c-98 0 -176 79 -176 176s79 176 176 176c48 0 92 -20 124 -52l52 52v-154h-154l70 70c-23 24 -56 40 -92 40c-73 0 -132 -59 -132 -132s59 -132 132 -132z" /> - <glyph glyph-name="ion-android-remove-circle" unicode="&#xf3a9;" horiz-adv-x="416" -d="M208 400c115 0 208 -93 208 -208s-93 -208 -208 -208s-208 93 -208 208s93 208 208 208zM315 171v42h-214v-42h214z" /> - <glyph glyph-name="ion-android-remove" unicode="&#xf2f4;" horiz-adv-x="320" -d="M0 171v42h320v-42h-320z" /> - <glyph glyph-name="ion-android-restaurant" unicode="&#xf3aa;" horiz-adv-x="415" -d="M116 168l-91 89c-34 33 -34 86 0 119l153 -148zM264 206l-33 -31l150 -145l-30 -30l-150 146l-150 -146l-30 30s163 159 211 207c-15 32 -4 77 31 111c41 40 101 49 132 17c33 -31 24 -89 -17 -129c-34 -34 -80 -45 -114 -30z" /> - <glyph glyph-name="ion-android-sad" unicode="&#xf3ab;" horiz-adv-x="416" -d="M208 160c45 0 83 -26 102 -64h-204c19 38 57 64 102 64zM208 400c114 0 208 -94 208 -208s-93 -208 -208 -208s-208 94 -208 208s93 208 208 208zM208 26c92 0 166 74 166 166s-74 166 -166 166s-166 -74 -166 -166s74 -166 166 -166zM281 213c-18 0 -31 13 -31 31 -s13 31 31 31s31 -13 31 -31s-13 -31 -31 -31zM135 213c-18 0 -31 13 -31 31s13 31 31 31s31 -13 31 -31s-13 -31 -31 -31z" /> - <glyph glyph-name="ion-android-search" unicode="&#xf2f5;" horiz-adv-x="384" -d="M274 143l110 -110l-33 -33l-109 110v17l-7 6c-25 -21 -58 -34 -93 -34c-79 0 -142 63 -142 142s63 143 141 143c79 0 142 -64 142 -143c0 -36 -13 -68 -34 -93l7 -5h18zM142 143c55 0 99 43 99 98s-44 99 -99 99s-98 -44 -98 -99s43 -98 98 -98z" /> - <glyph glyph-name="ion-android-send" unicode="&#xf2f6;" horiz-adv-x="416" -d="M0 0v149l298 43l-298 43v149l416 -192z" /> - <glyph glyph-name="ion-android-settings" unicode="&#xf2f7;" horiz-adv-x="416" -d="M366 171l47 -34c3 -3 4 -10 2 -14l-43 -71c-2 -4 -7 -7 -12 -5l-54 21c-12 -8 -23 -16 -36 -21l-8 -55c-1 -4 -6 -8 -11 -8h-85c-5 0 -10 3 -11 8l-8 55c-13 5 -25 13 -36 21l-54 -21c-4 -2 -10 1 -12 5l-43 71c-3 5 -2 11 2 14l45 34c0 7 -1 14 -1 21s1 14 1 21l-46 34 -c-3 3 -4 10 -2 14l43 71c2 4 7 7 12 5l54 -21c12 8 23 16 36 21l8 55c1 4 6 8 11 8h85c5 0 10 -4 11 -8l7 -55c13 -5 25 -13 36 -21l53 21c4 2 11 -1 13 -5l43 -71c3 -5 2 -11 -2 -14l-45 -34c0 -7 1 -14 1 -21s0 -15 -1 -21zM207 119c41 0 75 32 75 73s-34 73 -75 73 -s-74 -32 -74 -73s33 -73 74 -73z" /> - <glyph glyph-name="ion-android-share-alt" unicode="&#xf3ac;" horiz-adv-x="384" -d="M320 104c34 0 62 -28 62 -62s-28 -62 -62 -62s-62 28 -62 62c0 5 1 10 2 14l-152 88c-12 -11 -27 -17 -44 -17c-35 0 -64 29 -64 64s28 64 63 64c17 0 32 -6 44 -17l151 87c-1 5 -2 10 -2 15c0 35 29 64 64 64s64 -29 64 -64s-29 -64 -64 -64c-17 0 -32 6 -44 17 -l-151 -87c1 -5 2 -10 2 -15s-1 -10 -2 -15l153 -88c11 11 26 16 42 16z" /> - <glyph glyph-name="ion-android-share" unicode="&#xf2f8;" horiz-adv-x="384" -d="M384 200l-160 -147v88c-107 0 -171 -34 -224 -109c21 107 75 214 224 235v85z" /> - <glyph glyph-name="ion-android-star-half" unicode="&#xf3ad;" horiz-adv-x="404" -d="M404 238l-110 -96l33 -142l-125 75l-125 -75l33 142l-110 96l145 12l57 134l57 -134zM219 103l60 -36l-16 68l-5 19l15 12l53 46l-70 6l-19 2l-8 18l-27 64v-189z" /> - <glyph glyph-name="ion-android-star-outline" unicode="&#xf3ae;" horiz-adv-x="404" -d="M404 238l-110 -96l33 -142l-125 75l-125 -75l33 142l-110 96l145 12l57 134l57 -134zM219 103l60 -36l-16 68l-5 19l15 12l53 46l-70 6l-19 2l-8 18l-27 64l-27 -64l-8 -18l-19 -2l-70 -6l53 -46l15 -12l-5 -19l-16 -68l60 36l17 10z" /> - <glyph glyph-name="ion-android-star" unicode="&#xf2fc;" horiz-adv-x="404" -d="M202 75l-125 -75l33 142l-110 96l145 12l57 134l57 -134l145 -12l-110 -96l33 -142z" /> - <glyph glyph-name="ion-android-stopwatch" unicode="&#xf2fd;" horiz-adv-x="384" -d="M168 141v131h48v-131h-48zM344 278c25 -33 40 -74 40 -118c0 -106 -86 -192 -192 -192s-192 86 -192 192s86 192 192 192c44 0 85 -15 118 -40l31 30l33 -33zM298 54c28 28 44 66 44 106s-16 78 -44 106s-66 44 -106 44s-78 -16 -106 -44s-44 -66 -44 -106 -s16 -78 44 -106s66 -44 106 -44s78 16 106 44zM128 368v48h128v-48h-128z" /> - <glyph glyph-name="ion-android-subway" unicode="&#xf3af;" horiz-adv-x="352" -d="M176 400c94 0 176 -10 176 -85v-214c0 -42 -33 -74 -75 -74l27 -27v-16h-256v16l27 27c-42 0 -75 32 -75 74v214c0 75 82 85 176 85zM80 64c18 0 32 14 32 32s-14 32 -32 32s-32 -14 -32 -32s14 -32 32 -32zM160 208v96h-112v-96h112zM272 64c18 0 32 14 32 32 -s-14 32 -32 32s-32 -14 -32 -32s14 -32 32 -32zM304 208v96h-112v-96h112z" /> - <glyph glyph-name="ion-android-sunny" unicode="&#xf3b0;" -d="M224 288c-25 0 -50 -10 -68 -28s-28 -43 -28 -68s10 -50 28 -68s43 -28 68 -28s50 10 68 28s28 43 28 68s-10 50 -28 68s-43 28 -68 28zM245 416v0v-64h-42v64h42zM374 372v0l30 -30l-38 -38l-30 30zM74 372v0l38 -38l-30 -30l-38 38zM224 320v0c70 0 128 -58 128 -128 -s-58 -128 -128 -128s-128 58 -128 128s58 128 128 128zM448 213v0v-42h-64v42h64zM64 213v0v-42h-64v42h64zM366 80v0l38 -38l-30 -30l-38 38zM82 80v0l30 -30l-38 -38l-30 30zM245 32v0v-64h-42v64h42z" /> - <glyph glyph-name="ion-android-sync" unicode="&#xf3b1;" horiz-adv-x="320" -d="M160 355c88 0 160 -73 160 -163c0 -32 -9 -62 -25 -87l-29 30c9 17 14 37 14 57c0 67 -54 122 -120 122v-61l-80 82l80 81v-61zM160 70v61l80 -82l-80 -81v61c-88 0 -160 73 -160 163c0 32 9 63 25 87l29 -30c-9 -17 -14 -37 -14 -57c0 -67 54 -122 120 -122z" /> - <glyph glyph-name="ion-android-textsms" unicode="&#xf3b2;" horiz-adv-x="384" -d="M344 384c22 0 40 -18 40 -40v-240c0 -22 -18 -40 -40 -40h-280l-64 -64v344c0 22 10 40 32 40h312zM134 206v40h-38v-40h38zM211 206v40h-38v-40h38zM288 206v40h-38v-40h38z" /> - <glyph glyph-name="ion-android-time" unicode="&#xf3b3;" horiz-adv-x="426" -d="M213 405c117 0 213 -96 213 -213s-95 -213 -213 -213s-213 96 -213 213s95 213 213 213zM213 22c94 0 170 76 170 170s-76 170 -170 170s-170 -76 -170 -170s76 -170 170 -170zM224 298v-111l96 -57l-16 -26l-112 67v127h32z" /> - <glyph glyph-name="ion-android-train" unicode="&#xf3b4;" horiz-adv-x="352" -d="M0 101v214c0 75 82 85 176 85s176 -10 176 -85v-214c0 -42 -33 -74 -75 -74l27 -27v-16h-256v16l27 27c-42 0 -75 32 -75 74zM176 72c22 0 40 18 40 40s-18 40 -40 40s-40 -18 -40 -40s18 -40 40 -40zM304 224v96h-256v-96h256z" /> - <glyph glyph-name="ion-android-unlock" unicode="&#xf3b5;" horiz-adv-x="320" -d="M280 262c22 0 40 -18 40 -40v-200c0 -22 -18 -40 -40 -40h-240c-22 0 -40 18 -40 40v200c0 22 18 40 40 40h182v40v0c0 34 -28 62 -62 62s-62 -28 -62 -62h-38c0 55 45 100 100 100s100 -45 100 -100v-40h20zM160 80c22 0 40 18 40 40s-18 40 -40 40s-40 -18 -40 -40 -s18 -40 40 -40z" /> - <glyph glyph-name="ion-android-upload" unicode="&#xf3b6;" horiz-adv-x="480" -d="M387 231c52 -3 93 -46 93 -99c0 -55 -45 -100 -100 -100h-260c-66 0 -120 54 -120 120c0 62 47 113 107 119c25 48 75 81 133 81c73 0 133 -52 147 -121zM272 172h68l-100 100l-100 -100h68v-76h64v76z" /> - <glyph glyph-name="ion-android-volume-down" unicode="&#xf3b7;" horiz-adv-x="288" -d="M0 256h85l107 112v-352l-107 112h-85v128zM288 192c0 -38 -21 -73 -53 -88v177c32 -16 53 -51 53 -89z" /> - <glyph glyph-name="ion-android-volume-mute" unicode="&#xf3b8;" horiz-adv-x="192" -d="M0 256h85l107 112v-352l-107 112h-85v128z" /> - <glyph glyph-name="ion-android-volume-off" unicode="&#xf3b9;" horiz-adv-x="384" -d="M342 192c0 69 -45 128 -107 147v45c85 -20 149 -99 149 -192c0 -35 -8 -68 -24 -96l-32 32c9 19 14 41 14 64zM192 368v-104l-51 51zM357 51v0l24 -24l-24 -24l-40 40c-23 -21 -51 -36 -82 -43v45c19 6 37 15 52 28l-95 95v-152l-107 112h-85v128h85l9 10l-91 91l24 24z -M288 192c0 -7 0 -15 -2 -22l-51 51v60c32 -16 53 -51 53 -89z" /> - <glyph glyph-name="ion-android-volume-up" unicode="&#xf3ba;" horiz-adv-x="384" -d="M0 256h85l107 112v-352l-107 112h-85v128zM288 192c0 -38 -21 -73 -53 -88v177c32 -16 53 -51 53 -89zM235 384c85 -20 149 -99 149 -192s-64 -172 -149 -192v45c62 19 106 78 106 147s-44 128 -106 147v45z" /> - <glyph glyph-name="ion-android-walk" unicode="&#xf3bb;" horiz-adv-x="272" -d="M168 336c-22 0 -40 18 -40 40s18 40 40 40s40 -18 40 -40s-18 -40 -40 -40zM168 216l-20 38l-20 -62l57 -96v-128h-38v96l-50 68l-57 -164h-40l81 320l-41 -16v-80h-40v112l111 38c4 1 10 1 13 1c13 0 23 -6 31 -18l45 -69h72v-40h-104z" /> - <glyph glyph-name="ion-android-warning" unicode="&#xf3bc;" -d="M0 -16l224 416l224 -416h-448zM248 48v48h-48v-48h48zM248 128v96h-48v-96h48z" /> - <glyph glyph-name="ion-android-watch" unicode="&#xf3bd;" horiz-adv-x="320" -d="M320 192c0 -51 -24 -96 -61 -125l-19 -115h-160l-19 115c-37 29 -61 74 -61 125s24 96 61 125l19 115h160l19 -115c37 -29 61 -74 61 -125zM40 192c0 -66 54 -120 120 -120s120 54 120 120s-54 120 -120 120s-120 -54 -120 -120z" /> - <glyph glyph-name="ion-android-wifi" unicode="&#xf305;" horiz-adv-x="416" -d="M208 219c23 0 42 -18 42 -41s-19 -41 -42 -41s-42 18 -42 41s19 41 42 41zM333 178c0 -45 -26 -85 -63 -107l-20 36c25 14 41 40 41 71c0 45 -37 82 -83 82s-83 -37 -83 -82c0 -31 16 -57 41 -71l-20 -36c-37 22 -63 62 -63 107c0 68 56 124 125 124s125 -56 125 -124z -M208 384c114 0 208 -93 208 -206c0 -76 -42 -142 -104 -178l-21 36c50 28 83 81 83 142c0 91 -74 165 -166 165s-166 -74 -166 -165c0 -61 33 -113 83 -142l-21 -36c-62 36 -104 102 -104 178c0 113 94 206 208 206z" /> - <glyph glyph-name="ion-aperture" unicode="&#xf313;" -d="M224 416c124 0 224 -100 224 -224s-100 -224 -224 -224s-224 100 -224 224s100 224 224 224zM360 56c36 36 56 85 56 136s-20 100 -56 136s-85 56 -136 56s-100 -20 -136 -56s-56 -85 -56 -136s20 -100 56 -136s85 -56 136 -56s100 20 136 56zM168 342l56 -86h-147 -c17 40 50 71 91 86zM381 160h-102l72 129c21 -27 33 -60 33 -97c0 -11 -1 -22 -3 -32zM328 314l-49 -90l-78 126c8 1 15 2 23 2c40 0 76 -14 104 -38zM67 224h102l-72 -129c-21 27 -33 60 -33 97c0 11 1 22 3 32zM280 42l-56 86h147c-17 -40 -50 -71 -91 -86zM120 70l49 90 -l78 -126c-8 -1 -15 -2 -23 -2c-40 0 -76 14 -104 38z" /> - <glyph glyph-name="ion-archive" unicode="&#xf102;" -d="M224 140l-128 116h80v96h96v-96h80zM433 151c11 -6 17 -19 15 -32l-9 -67c-2 -13 -9 -20 -28 -20h-374c-18 0 -26 7 -28 20l-9 67c-2 13 3 26 14 32l72 55h42l-62 -62h50c2 0 5 -1 6 -3l18 -45h168l18 45c1 2 3 3 5 3h51l-62 62h42z" /> - <glyph glyph-name="ion-arrow-down-a" unicode="&#xf103;" horiz-adv-x="384" -d="M192 -0l-192 192h112v192h160v-192h112z" /> - <glyph glyph-name="ion-arrow-down-b" unicode="&#xf104;" horiz-adv-x="320" -d="M3 263c-2 2 -3 6 -3 9c0 9 8 16 17 16v0h286v0c9 0 17 -7 17 -16c0 -3 -1 -6 -3 -8l-2 -3l-136 -156c-5 -5 -11 -9 -19 -9s-14 4 -19 9l-136 156z" /> - <glyph glyph-name="ion-arrow-down-c" unicode="&#xf105;" horiz-adv-x="274" -d="M265 125l-105 -100c-6 -6 -14 -9 -23 -9s-16 3 -22 9l-106 100c-12 12 -12 31 0 43s34 12 46 0l50 -48v217c0 17 14 31 32 31s32 -14 32 -31v-217l50 48c12 12 34 12 46 0s12 -31 0 -43z" /> - <glyph glyph-name="ion-arrow-expand" unicode="&#xf25e;" horiz-adv-x="320" -d="M178 238l64 64l-50 50h128v-128l-50 50l-64 -64zM178 146l28 28l64 -64l50 50v-128h-128l50 50zM142 146l-64 -64l50 -50h-128v128l50 -50l64 64zM142 238l-28 -28l-64 64l-50 -50v128h128l-50 -50z" /> - <glyph glyph-name="ion-arrow-graph-down-left" unicode="&#xf25f;" -d="M0 64v160l61 -61l131 141l107 -112l149 128l-149 -203l-107 107l-94 -98l62 -62h-160z" /> - <glyph glyph-name="ion-arrow-graph-down-right" unicode="&#xf260;" -d="M288 64l62 62l-94 98l-107 -107l-149 203l149 -128l107 112l131 -141l61 61v-160h-160z" /> - <glyph glyph-name="ion-arrow-graph-up-left" unicode="&#xf261;" -d="M160 320l-62 -62l94 -98l107 107l149 -203l-149 128l-107 -112l-131 141l-61 -61v160h160z" /> - <glyph glyph-name="ion-arrow-graph-up-right" unicode="&#xf262;" -d="M288 320h160v-160l-61 61l-131 -141l-107 112l-149 -128l149 203l107 -107l94 98z" /> - <glyph glyph-name="ion-arrow-left-a" unicode="&#xf106;" horiz-adv-x="384" -d="M0 192l192 192v-112h192v-160h-192v-112z" /> - <glyph glyph-name="ion-arrow-left-b" unicode="&#xf107;" horiz-adv-x="192" -d="M167 349c2 2 6 3 9 3c9 0 16 -8 16 -17v0v-286v0c0 -9 -7 -17 -16 -17c-3 0 -7 1 -9 3l-2 2l-156 136c-5 5 -9 11 -9 19s4 14 9 19l156 136z" /> - <glyph glyph-name="ion-arrow-left-c" unicode="&#xf108;" horiz-adv-x="352" -d="M109 320c12 12 32 12 44 0s12 -34 0 -46l-49 -50h217c17 0 31 -14 31 -32s-14 -32 -31 -32h-217l48 -50c12 -12 12 -34 0 -46s-31 -12 -43 0l-100 106c-6 6 -9 13 -9 22s3 17 9 23z" /> - <glyph glyph-name="ion-arrow-move" unicode="&#xf263;" -d="M448 192l-96 -96v76h-109l1 -108h76l-96 -96l-96 96h76v108h-108v-76l-96 96l96 96v-76h108v108h-76l96 96l96 -96h-76v-108h108v76z" /> - <glyph glyph-name="ion-arrow-resize" unicode="&#xf264;" horiz-adv-x="320" -d="M192 352h128v-128l-50 50l-9 -9l-183 -183l50 -50h-128v128l50 -50l128 128v0l64 64z" /> - <glyph glyph-name="ion-arrow-return-left" unicode="&#xf265;" horiz-adv-x="384" -d="M128 352v-64h248c4 0 8 -4 8 -8v-240c0 -4 -4 -8 -8 -8h-304c-4 0 -8 4 -8 8v48c0 4 4 8 8 8h248v128h-192v-64l-128 96z" /> - <glyph glyph-name="ion-arrow-return-right" unicode="&#xf266;" horiz-adv-x="384" -d="M384 256l-128 -96v64h-192v-128h248c4 0 8 -4 8 -8v-48c0 -4 -4 -8 -8 -8h-304c-4 0 -8 4 -8 8v240c0 4 4 8 8 8h248v64z" /> - <glyph glyph-name="ion-arrow-right-a" unicode="&#xf109;" horiz-adv-x="384" -d="M384 192l-192 -192v112h-192v160h192v112z" /> - <glyph glyph-name="ion-arrow-right-b" unicode="&#xf10a;" horiz-adv-x="192" -d="M25 35c-2 -2 -6 -3 -9 -3c-9 0 -16 8 -16 17v0v286v0c0 9 7 17 16 17c3 0 6 -1 8 -3l3 -2l156 -136c5 -5 9 -11 9 -19s-4 -14 -9 -19l-156 -136z" /> - <glyph glyph-name="ion-arrow-right-c" unicode="&#xf10b;" horiz-adv-x="352" -d="M243 320l100 -105c6 -6 9 -14 9 -23s-3 -16 -9 -22l-100 -106c-12 -12 -31 -12 -43 0s-12 34 0 46l48 50h-217c-17 0 -31 14 -31 32s14 32 31 32h217l-49 50c-12 12 -12 34 0 46s32 12 44 0z" /> - <glyph glyph-name="ion-arrow-shrink" unicode="&#xf267;" horiz-adv-x="384" -d="M384 356l-82 -82l50 -50h-128v128l50 -50l82 82zM384 28l-28 -28l-82 82l-50 -50v128h128l-50 -50zM0 28l82 82l-50 50h128v-128l-50 50l-82 -82zM0 356l28 28l82 -82l50 50v-128h-128l50 50z" /> - <glyph glyph-name="ion-arrow-swap" unicode="&#xf268;" horiz-adv-x="384" -d="M0 120c0 4 4 8 8 8h248v64l128 -96l-128 -96v64h-248c-4 0 -8 4 -8 8v48zM384 264c0 -4 -4 -8 -8 -8h-248v-64l-128 96l128 96v-64h248c4 0 8 -4 8 -8v-48z" /> - <glyph glyph-name="ion-arrow-up-a" unicode="&#xf10c;" horiz-adv-x="384" -d="M192 384l192 -192h-112v-192h-160v192h-112z" /> - <glyph glyph-name="ion-arrow-up-b" unicode="&#xf10d;" horiz-adv-x="320" -d="M317 121c2 -2 3 -6 3 -9c0 -9 -8 -16 -17 -16v0h-286v0c-9 0 -17 7 -17 16c0 3 1 6 3 8l2 3l136 156c5 5 11 9 19 9s14 -4 19 -9l136 -156z" /> - <glyph glyph-name="ion-arrow-up-c" unicode="&#xf10e;" horiz-adv-x="274" -d="M9 259l105 100c6 6 14 9 23 9s16 -3 22 -9l106 -100c12 -12 12 -31 0 -43s-34 -12 -46 0l-50 48v-217c0 -17 -14 -31 -32 -31s-32 14 -32 31v217l-50 -49c-12 -12 -34 -12 -46 0s-12 32 0 44z" /> - <glyph glyph-name="ion-asterisk" unicode="&#xf314;" -d="M448 224v-64l-186 10l104 -170l-56 -32l-86 176l-86 -176l-56 32l104 170l-186 -10v64l187 -7l-109 167l60 32l86 -176l86 176l60 -32l-109 -167z" /> - <glyph glyph-name="ion-at" unicode="&#xf10f;" -d="M422 41c-24 -25 -52 -43 -85 -55s-69 -18 -105 -18c-35 0 -66 6 -95 17s-53 26 -73 46s-36 43 -47 71s-17 58 -17 90s6 62 18 89s29 51 50 71s46 35 74 47c28 11 58 17 90 17c28 0 55 -4 81 -12s49 -20 69 -36s36 -36 48 -60s18 -53 18 -85c0 -24 -3 -46 -10 -64 -s-16 -34 -27 -46s-24 -22 -38 -28s-29 -10 -45 -10s-29 4 -39 12s-15 17 -15 29h-3c-6 -10 -15 -19 -28 -28s-28 -13 -46 -13c-28 0 -49 9 -64 27s-23 42 -23 71c0 17 3 34 9 50s14 31 24 44s23 23 38 31s31 12 49 12c15 0 27 -4 38 -10c10 -6 18 -15 21 -24h1l5 24h54 -l-24 -113c-1 -6 -2 -12 -3 -19s-2 -13 -2 -19c0 -7 1 -13 4 -18s7 -7 15 -7c16 0 29 9 39 26s16 40 16 68c0 24 -4 45 -12 64s-20 34 -34 47s-32 23 -52 29s-41 9 -65 9c-26 0 -49 -4 -70 -13s-39 -22 -54 -38s-27 -34 -35 -56c-8 -21 -13 -44 -13 -69c0 -26 4 -51 13 -72 -s21 -39 37 -54s35 -27 57 -35s46 -12 72 -12c33 0 61 6 85 16s45 25 65 43zM231 260c-10 0 -18 -2 -25 -8s-14 -13 -19 -22s-8 -18 -11 -28s-4 -20 -4 -30c0 -5 0 -10 1 -16c1 -5 3 -10 6 -15s7 -8 12 -11s11 -5 19 -5c11 0 20 3 28 8s14 13 19 21s9 16 11 26s3 19 3 27 -c0 6 0 13 -1 19s-4 12 -7 17s-7 9 -12 12s-12 5 -20 5z" /> - <glyph glyph-name="ion-backspace-outline" unicode="&#xf3be;" horiz-adv-x="512" -d="M413 116c2 -2 3 -4 3 -6s-1 -4 -3 -6l-21 -22c-2 -2 -4 -2 -6 -2s-4 0 -6 2l-76 77l-76 -77c-2 -2 -4 -2 -6 -2s-4 0 -6 2l-21 22c-2 2 -3 4 -3 6s1 4 3 6l76 76l-77 76c-3 3 -3 9 0 12l22 22c2 2 4 2 6 2s4 0 6 -2l76 -76l76 76c2 2 4 2 6 2s4 0 6 -2l22 -22 -c3 -3 3 -9 0 -12l-77 -76zM499 354c9 -9 13 -20 13 -33v-256c0 -27 -20 -49 -46 -49h-298c-13 0 -24 3 -34 9c-9 5 -16 11 -23 20v0l-1 1l-110 146l110 148c14 19 34 28 58 28h298c13 0 24 -5 33 -14zM480 65v256c0 9 -5 15 -14 15h-298c-11 0 -22 -3 -32 -16l-96 -128 -l96 -128c8 -10 17 -16 32 -16h298c9 0 14 8 14 17z" /> - <glyph glyph-name="ion-backspace" unicode="&#xf3bf;" horiz-adv-x="512" -d="M499 354c9 -9 13 -20 13 -33v-256c0 -27 -20 -49 -46 -49h-298c-13 0 -24 3 -34 9c-9 5 -16 11 -23 20v0l-1 1l-110 146l110 148c14 19 34 28 58 28h298c13 0 24 -5 33 -14zM413 116l-76 76l77 76c3 3 3 9 0 12l-22 22c-2 2 -4 2 -6 2s-4 0 -6 -2l-76 -76l-76 76 -c-2 2 -4 2 -6 2s-4 0 -6 -2l-22 -22c-3 -3 -3 -9 0 -12l77 -76l-76 -76c-2 -2 -3 -4 -3 -6s1 -4 3 -6l21 -22c2 -2 4 -2 6 -2s4 0 6 2l76 77l76 -77c2 -2 4 -2 6 -2s4 0 6 2l21 22c2 2 3 4 3 6s-1 4 -3 6z" /> - <glyph glyph-name="ion-bag" unicode="&#xf110;" -d="M416 288l32 -320h-448l32 320h64v4c0 68 56 124 124 124h8c68 0 124 -56 124 -124v-4h64zM128 292v-4h192v4c0 51 -41 92 -92 92v0h-8c-51 0 -92 -41 -92 -92zM36 0h376l-25 256h-35v-36c10 -6 16 -16 16 -28c0 -18 -14 -32 -32 -32s-32 14 -32 32c0 12 6 22 16 28v36 -h-192v-36c10 -6 16 -16 16 -28c0 -18 -14 -32 -32 -32s-32 14 -32 32c0 12 6 22 16 28v36h-35z" /> - <glyph glyph-name="ion-battery-charging" unicode="&#xf111;" -d="M10 64c-6 0 -10 4 -10 10v236c0 6 4 10 10 10h381c6 0 10 -4 10 -10v-54h37c6 0 10 -4 10 -10v-108c0 -6 -4 -10 -10 -10h-37v-54c0 -6 -4 -10 -10 -10h-381zM225 288l-100 -111h61l-27 -81l100 111h-61z" /> - <glyph glyph-name="ion-battery-empty" unicode="&#xf112;" -d="M438 256c6 0 10 -4 10 -10v-108c0 -6 -4 -10 -10 -10h-37v-54c0 -6 -4 -10 -10 -10h-381c-6 0 -10 4 -10 10v236c0 6 4 10 10 10h381c6 0 10 -4 10 -10v-54h37zM416 160v64h-15h-32v32v32h-337v-192h337v32v32h32h15z" /> - <glyph glyph-name="ion-battery-full" unicode="&#xf113;" -d="M438 256c6 0 10 -4 10 -10v-108c0 -6 -4 -10 -10 -10h-37v-54c0 -6 -4 -10 -10 -10h-381c-6 0 -10 4 -10 10v236c0 6 4 10 10 10h381c6 0 10 -4 10 -10v-54h37z" /> - <glyph glyph-name="ion-battery-half" unicode="&#xf114;" -d="M438 256c6 0 10 -4 10 -10v-108c0 -6 -4 -10 -10 -10h-37v-54c0 -6 -4 -10 -10 -10h-381c-6 0 -10 4 -10 10v236c0 6 4 10 10 10h381c6 0 10 -4 10 -10v-54h37zM416 160v64h-15h-32v32v32h-81l32 -192h49v32v32h32h15z" /> - <glyph glyph-name="ion-battery-low" unicode="&#xf115;" -d="M10 64c-6 0 -10 4 -10 10v236c0 6 4 10 10 10h381c6 0 10 -4 10 -10v-54h37c6 0 10 -4 10 -10v-108c0 -6 -4 -10 -10 -10h-37v-54c0 -6 -4 -10 -10 -10h-381zM369 288h-209l32 -192h177v32v32h32h15v64h-15h-32v32v32z" /> - <glyph glyph-name="ion-beaker" unicode="&#xf269;" horiz-adv-x="384" -d="M80 256h240v-224c0 -9 -7 -16 -16 -16h-208c-9 0 -16 7 -16 16v224zM296 104v48c0 4 -4 8 -8 8s-8 -4 -8 -8v-48c0 -4 4 -8 8 -8s8 4 8 8zM288 176c4 0 8 4 8 8s-4 8 -8 8s-8 -4 -8 -8s4 -8 8 -8zM381 416c3 0 3 -2 3 -3s-2 -3 -3 -5s-13 -20 -13 -40v-336 -c0 -35 -29 -64 -64 -64h-208c-35 0 -64 29 -64 64v307c0 32 -2 33 -32 37c0 12 11 40 65 40h316zM336 368c0 5 0 16 1 16h-273c-1 0 -3 0 -4 -1c5 -7 4 -32 4 -44v-307c0 -18 14 -32 32 -32h210c17 0 30 14 30 32v336z" /> - <glyph glyph-name="ion-beer" unicode="&#xf26a;" -d="M384 288c35 0 64 -29 64 -64v-96c0 -35 -29 -64 -64 -64h-32v-80c0 -9 -7 -16 -16 -16h-256c-9 0 -16 7 -16 16v223c-26 0 -48 22 -48 48v54v1c-10 11 -16 26 -16 42c0 35 29 64 64 64c18 0 34 -8 46 -20c10 12 26 20 43 20c14 0 27 -6 37 -14c12 9 26 14 42 14 -c17 0 34 -6 46 -16c11 10 26 16 42 16c35 0 64 -29 64 -64c0 -24 -18 -44 -32 -48v-16h32zM296 144c4 0 8 3 8 8v0v48c0 4 -4 8 -8 8s-8 -4 -8 -8v-48c0 -3 2 -6 4 -7c1 -1 2 -1 4 -1zM303 220c1 2 1 4 1 6s-1 4 -3 5s-4 1 -6 1s-4 -2 -5 -4s-2 -4 -2 -6s2 -4 4 -5 -s4 -1 6 -1s4 2 5 4zM320 288v32h-20c-3 -8 -7 -16 -13 -23c-13 -16 -33 -25 -55 -25c-26 0 -48 13 -61 33c-6 -2 -12 -3 -18 -3c-12 0 -23 4 -32 10c-2 1 -3 3 -5 4c-1 -2 -2 -3 -3 -5c-5 -6 -11 -10 -17 -14v-32v-9h80c0 4 4 8 8 8s8 -4 8 -8h128v32zM351 343c1 3 1 6 1 9 -c0 18 -14 32 -32 32c-9 0 -17 -4 -23 -10c-2 -2 -6 -5 -16 -6h-8c-6 1 -12 3 -14 5c-7 7 -16 11 -27 11c-9 0 -18 -4 -25 -9l-7 -7c0 -1 0 -1 -1 -2c-3 -3 -7 -5 -11 -5c-5 0 -8 3 -11 6c-1 2 -2 3 -3 5s-3 4 -5 6c-4 4 -10 6 -16 6c-10 0 -18 -9 -25 -16 -c-7 -8 -27 -8 -34 0s-18 16 -30 16c-18 0 -32 -14 -32 -32c0 -2 1 -5 1 -7c2 -9 7 -17 15 -21v-34v-35c0 -9 7 -16 16 -16v26v23v32c10 0 18 4 24 11c2 2 3 4 4 6c0 0 6 10 12 11s20 6 30 -5c4 -5 11 -9 19 -9c3 0 5 1 7 2c3 1 7 2 9 4v0c3 2 6 4 10 4c7 0 12 -4 14 -10 -c0 0 1 -1 1 -2c1 -3 1 -5 3 -8c7 -12 20 -20 35 -20c13 0 25 6 32 16c5 7 8 15 8 24s9 8 9 8h7h48c6 0 13 -3 15 -9zM416 128v96c0 18 -14 32 -32 32h-32v-160h32c18 0 32 14 32 32zM128 280c0 5 3 8 8 8s8 -3 8 -8s-3 -8 -8 -8s-8 3 -8 8zM288 280c0 5 3 8 8 8s8 -3 8 -8 -s-3 -8 -8 -8s-8 3 -8 8z" /> - <glyph glyph-name="ion-bluetooth" unicode="&#xf116;" horiz-adv-x="256" -d="M12 304c16 16 18 13 19 12l68 -65v0v0c2 -2 10 -10 10 -3v156v0v2c0 6 6 10 12 10c4 0 7 -2 9 -4v0s117 -113 122 -117s5 -10 1 -14l-84 -81s-4 -4 -4 -8s4 -8 4 -8l84 -81c4 -4 4 -10 -1 -14s-122 -117 -122 -117v0c-2 -2 -5 -4 -9 -4c-6 0 -12 4 -12 10v2v0v156 -s-8 -1 -10 -3v0v-1l-68 -64c-1 -1 -3 -4 -19 12s-12 17 -11 18s90 86 90 86s4 3 4 8v0c0 5 -4 8 -4 8s-89 85 -90 86s-5 2 11 18zM152 328v-79c0 -8 8 -1 10 1l30 30s3 5 3 7s-1 5 -3 7l-30 30c-2 2 -10 11 -10 4zM152 135v-79s8 2 10 4l30 30c2 2 3 5 3 7s-1 5 -3 7l-30 30 -c-2 2 -10 9 -10 1z" /> - <glyph glyph-name="ion-bonfire" unicode="&#xf315;" horiz-adv-x="384" -d="M207 97l15 -89c1 -3 1 -5 1 -8c0 -18 -14 -32 -32 -32s-32 14 -32 32c0 2 0 5 1 7l15 92v0c2 7 8 13 16 13s15 -7 16 -15zM242 93v0v0v0zM329 58c9 -8 10 -25 0 -35s-27 -9 -35 0c-1 1 -2 3 -3 4l-49 66c-3 5 -2 11 2 15c5 5 10 5 16 1l64 -47c2 -1 3 -3 5 -4zM309 113v0 -v0v0zM371 126c9 -1 13 -7 13 -19c0 -9 -10 -14 -18 -12l-57 18v0v0c-3 2 -6 5 -5 9s4 7 8 6zM75 113v0v0v0zM75 113v0l-58 -18c-8 -2 -17 3 -17 12c0 12 3 18 12 19l60 2c4 1 7 -2 8 -6s-2 -7 -5 -9v0zM124 109c5 4 11 4 16 -1c4 -4 5 -10 2 -15l-49 -66c-1 -1 -2 -3 -3 -4 -c-10 -10 -25 -10 -35 0s-10 25 0 35c2 2 3 3 5 4zM288 320c0 -32 -9 -58 -50 -86c-37 -26 -94 -46 -110 -106c0 0 -58 24 -48 96s124 106 112 192c24 0 96 -35 96 -96zM288 192c-16 -50 -44 -64 -80 -64c-15 0 -32 9 -43 26c12 15 28 26 47 37c9 5 20 10 29 16 -c21 14 38 31 47 49c5 -15 5 -48 0 -64zM88 288c-6 4 -9 14 -8 27c2 22 34 39 32 69c14 2 31 -3 42 -24c-5 -11 -15 -21 -28 -34s-26 -22 -38 -38z" /> - <glyph glyph-name="ion-bookmark" unicode="&#xf26b;" horiz-adv-x="192" -d="M184 384c4 0 8 -4 8 -8v-56h-192v56c0 4 4 8 8 8h176zM0 0v304h192v-304l-96 96z" /> - <glyph glyph-name="ion-bowtie" unicode="&#xf3c0;" -d="M192 236c0 0 8 5 20 7c21 4 39 5 47 -9c10 -17 19 -53 17 -85c-1 -17 -5 -22 -5 -22s-15 -10 -47 -7c-35 3 -40 15 -40 15s5 12 8 43s0 58 0 58zM152 163c-17 -4 -38 -10 -38 -10s45 4 64 9c-4 -21 -10 -34 -10 -34s-83 -80 -116 -80c-28 0 -52 68 -52 144s26 144 52 144 -c35 0 106 -57 128 -97c0 0 3 -16 2 -32c-10 5 -24 10 -44 14c-28 6 -42 3 -42 3s18 -4 57 -17c15 -5 22 -8 29 -10c0 -3 -1 -7 -1 -10c0 -5 0 -10 -1 -15c-5 -2 -15 -6 -28 -9zM396 336c26 0 52 -68 52 -144s-24 -144 -52 -144c-37 0 -104 68 -112 79c0 0 4 5 5 22v9 -c16 -7 70 -13 70 -13s-21 6 -40 11c-13 4 -25 8 -30 10c-1 11 -2 23 -4 33c17 11 69 34 69 34s-15 -2 -35 -9c-14 -5 -29 -11 -37 -14c-3 10 -7 18 -10 24c0 1 -1 4 -1 4v1c22 40 89 97 125 97z" /> - <glyph glyph-name="ion-briefcase" unicode="&#xf26c;" -d="M240 176v8h208v-176c0 -4 -4 -8 -8 -8h-432c-4 0 -8 4 -8 8v176h208v-8h32zM440 304c4 0 8 -4 8 -8v-96h-208v8h-32v-8h-208v96c0 4 4 8 8 8h120v31c1 28 22 49 51 49h90c30 0 50 -21 51 -49v-31h120zM288 332v1c0 10 -9 19 -19 19h-90c-10 0 -19 -9 -19 -19v-1v-1v-27 -h128v27v1z" /> - <glyph glyph-name="ion-bug" unicode="&#xf2be;" -d="M343 321c-6 -16 -16 -31 -28 -43c-24 -24 -57 -37 -91 -37s-67 13 -91 37c-12 12 -22 27 -28 43c29 39 72 63 119 63s90 -24 119 -63zM95 305c22 -45 68 -77 121 -80v-225c-40 2 -77 22 -104 54c-7 -6 -10 -9 -13 -15c8 -9 7 -22 -1 -31c-9 -10 -24 -11 -34 -2 -s-11 24 -2 34l3 3s2 1 2 1c4 13 13 25 27 36c-15 26 -26 57 -29 90c-7 0 -12 -2 -17 -3c-1 -13 -11 -23 -24 -23s-24 11 -24 24s11 24 24 24h3c4 2 8 5 12 6c7 2 14 4 25 4c1 23 6 45 13 65c-6 4 -11 7 -15 11c-6 5 -11 13 -14 19c-1 0 -3 1 -4 2c-12 6 -15 21 -9 33 -s21 15 33 9c11 -6 15 -20 10 -31c2 -3 3 -7 4 -8c2 -2 5 -3 8 -5c2 3 3 5 5 8zM424 192c13 0 24 -11 24 -24s-11 -24 -24 -24s-23 10 -24 23c-5 1 -10 3 -17 3c-3 -33 -14 -64 -29 -90c14 -11 23 -23 27 -36c0 0 1 0 2 -1l3 -3c9 -10 8 -25 -2 -34s-25 -8 -34 2 -c-8 9 -9 22 -1 31c-3 6 -6 9 -13 15c-27 -32 -64 -52 -104 -54v225c53 3 99 35 121 80c2 -3 3 -5 5 -8c3 2 6 3 8 5c1 1 2 5 4 8c-5 11 -1 25 10 31c12 6 27 3 33 -9s3 -27 -9 -33c-1 -1 -3 -2 -4 -2c-3 -6 -8 -14 -14 -19c-4 -4 -9 -7 -15 -11c7 -20 12 -42 13 -65 -c11 0 18 -2 25 -4c4 -1 8 -4 12 -6h3z" /> - <glyph glyph-name="ion-calculator" unicode="&#xf26d;" horiz-adv-x="320" -d="M304 416c9 0 16 -7 16 -16v-416c0 -9 -7 -16 -16 -16h-288c-9 0 -16 7 -16 16v416c0 9 7 16 16 16h288zM48 240v-32h32v32h-32zM48 176v-32h32v32h-32zM48 112v-32h32v32h-32zM144 16v32h-96v-32h96zM144 80v32h-32v-32h32zM144 144v32h-32v-32h32zM144 208v32h-32v-32 -h32zM208 16v32h-32v-32h32zM208 80v32h-32v-32h32zM208 144v32h-32v-32h32zM208 208v32h-32v-32h32zM272 16v96h-32v-96h32zM272 144v32h-32v-32h32zM272 208v32h-32v-32h32zM272 288v80h-224v-80h224z" /> - <glyph glyph-name="ion-calendar" unicode="&#xf117;" -d="M112 320c-18 0 -32 14 -32 32v32c0 18 14 32 32 32s32 -14 32 -32v-32c0 -18 -14 -32 -32 -32zM336 320c-18 0 -32 14 -32 32v32c0 18 14 32 32 32s32 -14 32 -32v-32c0 -18 -14 -32 -32 -32zM440 384c4 0 8 -4 8 -8v-400c0 -4 -4 -8 -8 -8h-432c-4 0 -8 4 -8 8v400 -c0 4 4 8 8 8h56v-41c0 -22 24 -39 48 -39s48 17 48 39v41h128v-41c0 -22 25 -39 49 -39s47 17 47 39v41h56zM400 16v256h-352v-256h352z" /> - <glyph glyph-name="ion-camera" unicode="&#xf118;" horiz-adv-x="416" -d="M382 301c18 0 34 -14 34 -33v-202c0 -19 -16 -34 -34 -34h-348c-19 0 -34 15 -34 34v202c0 19 15 33 34 33h69l39 40v0c6 7 15 11 25 11h84c9 0 17 -4 23 -10v0v0v0l41 -41h67zM208 82c51 0 92 42 92 93s-41 93 -92 93s-92 -42 -92 -93s41 -93 92 -93zM376 248 -c8 0 14 6 14 14s-6 14 -14 14s-14 -6 -14 -14s6 -14 14 -14zM208 245c38 0 70 -31 70 -70s-32 -70 -70 -70c-39 0 -70 31 -70 70s31 70 70 70z" /> - <glyph glyph-name="ion-card" unicode="&#xf119;" -d="M420 352c16 0 28 -12 28 -28v0v-264v0c0 -16 -12 -28 -28 -28h-392c-16 0 -28 12 -28 28v0v0v264v0v0c0 16 12 28 28 28h392zM45 320c-7 0 -12 -5 -13 -12v-20h384v20c-1 7 -6 12 -13 12h-358zM403 64c7 0 12 5 13 12v116h-384v-116c1 -7 6 -12 13 -12h358zM64 128v16 -h192v-16h-192zM64 96v16h96v-16h-96zM320 96v48h64v-48h-64z" /> - <glyph glyph-name="ion-cash" unicode="&#xf316;" horiz-adv-x="512" -d="M0 352h512v-256h-512v256zM193 128c-20 23 -33 58 -33 96s13 73 33 96h-97c0 -35 -29 -64 -64 -64v-80c27 0 48 -21 48 -48h113zM298 187c3 4 4 9 4 15c0 3 0 5 -1 8s-2 6 -4 8s-4 4 -7 6s-6 4 -10 5c-1 0 -4 1 -7 2s-5 0 -8 1v31c2 -1 5 -2 7 -3c4 -3 6 -7 7 -13h20 -c0 5 -2 9 -4 13s-5 8 -9 11s-9 5 -14 6c-2 1 -5 2 -7 2v9h-18v-9c-2 0 -4 -1 -6 -2c-5 -1 -10 -2 -14 -5s-7 -6 -9 -10s-4 -9 -4 -14c0 -3 0 -5 1 -8s2 -5 4 -7s5 -5 8 -7s7 -4 12 -5c3 -1 6 0 8 -1v-35c-3 1 -6 2 -9 4s-5 4 -6 7s-2 6 -2 9h-20c0 -5 2 -11 4 -16 -c3 -5 6 -8 10 -11s9 -6 15 -7c3 -1 5 -2 8 -2v-9h18v9c3 0 6 1 9 2c5 1 10 2 14 5s7 7 10 11zM480 176v80c-35 0 -64 29 -64 64h-97c20 -23 33 -58 33 -96s-13 -73 -33 -96h113c0 27 22 48 48 48zM64 224c0 21 11 32 32 32s32 -11 32 -32s-11 -32 -32 -32s-32 11 -32 32z -M384 224c0 21 11 32 32 32s32 -11 32 -32s-11 -32 -32 -32s-32 11 -32 32zM273 213c2 -1 4 -2 6 -4s3 -5 3 -9c0 -2 0 -4 -1 -6s-2 -4 -4 -5s-5 -3 -8 -4c-1 0 -2 -1 -4 -1v31c3 -1 6 -1 8 -2zM236 257c1 2 3 3 5 4s4 2 6 2v-26c-4 1 -7 3 -9 5s-4 4 -4 8c0 3 1 5 2 7zM0 32 -v32h512v-32h-512z" /> - <glyph glyph-name="ion-chatbox-working" unicode="&#xf11a;" horiz-adv-x="416" -d="M76 48c-42 0 -76 31 -76 71v209c0 40 34 72 76 72h264c42 0 76 -32 76 -72v-209c0 -40 -34 -71 -76 -71h-4v-64s-79 54 -86 59s-7 5 -21 5h-153zM304 256c-18 0 -32 -14 -32 -32s14 -32 32 -32s32 14 32 32s-14 32 -32 32zM208 256c-18 0 -32 -14 -32 -32s14 -32 32 -32 -s32 14 32 32s-14 32 -32 32zM112 256c-18 0 -32 -14 -32 -32s14 -32 32 -32s32 14 32 32s-14 32 -32 32z" /> - <glyph glyph-name="ion-chatbox" unicode="&#xf11b;" horiz-adv-x="416" -d="M76 48c-42 0 -76 31 -76 71v209c0 40 34 72 76 72h264c42 0 76 -32 76 -72v-209c0 -40 -34 -71 -76 -71h-4v-64s-79 54 -86 59s-7 5 -21 5h-153z" /> - <glyph glyph-name="ion-chatboxes" unicode="&#xf11c;" horiz-adv-x="416" -d="M246 82l26 -18c-4 -21 -29 -32 -52 -32h-90c-8 0 -11 -2 -13 -3l-53 -45v48h-16c-26 0 -48 16 -48 41v129c0 25 20 45 46 45h2v-101c0 -33 29 -59 64 -59h117c10 0 14 -3 17 -5zM353 400c35 0 63 -27 63 -60v-168c0 -33 -28 -60 -63 -60h-17v-64l-75 60c-2 2 -7 4 -17 4 -h-101c-35 0 -63 27 -63 60v98v70c0 33 21 60 56 60h217z" /> - <glyph glyph-name="ion-chatbubble-working" unicode="&#xf11d;" horiz-adv-x="416" -d="M208 -1c-115 0 -208 89 -208 200s93 201 208 201s208 -90 208 -201c0 -40 -12 -77 -33 -108c-1 -1 -2 -3 -3 -4v0c-2 -4 -4 -10 -4 -15l22 -88l-84 31c-4 2 -8 2 -12 2s-7 -1 -11 -2v0c-1 0 -1 -1 -2 -1c-25 -10 -52 -15 -81 -15zM304 224c-18 0 -32 -14 -32 -32 -s14 -32 32 -32s32 14 32 32s-14 32 -32 32zM208 224c-18 0 -32 -14 -32 -32s14 -32 32 -32s32 14 32 32s-14 32 -32 32zM112 224c-18 0 -32 -14 -32 -32s14 -32 32 -32s32 14 32 32s-14 32 -32 32z" /> - <glyph glyph-name="ion-chatbubble" unicode="&#xf11e;" horiz-adv-x="416" -d="M208 -1c-115 0 -208 89 -208 200s93 201 208 201s208 -90 208 -201c0 -40 -12 -77 -33 -108c-1 -1 -2 -3 -3 -4v0c-2 -4 -4 -10 -4 -15l22 -88l-84 31c-4 2 -8 2 -12 2s-7 -1 -11 -2v0c-1 0 -1 -1 -2 -1c-25 -10 -52 -15 -81 -15z" /> - <glyph glyph-name="ion-chatbubbles" unicode="&#xf11f;" horiz-adv-x="416" -d="M25 57c-1 1 0 2 -1 3c-15 22 -24 49 -24 77c0 42 19 80 49 106c-2 -11 -4 -22 -4 -34c0 -92 78 -168 174 -168c15 0 30 2 44 6c-27 -32 -69 -53 -115 -53c-20 0 -40 5 -58 12h-1v0c-2 1 -5 2 -8 2s-6 -1 -9 -2l-56 -22l12 63c0 4 -1 7 -3 10v0zM242 400 -c96 0 174 -76 174 -168c0 -33 -11 -64 -28 -90c-1 -1 -1 -2 -2 -3v0c-2 -4 -3 -8 -3 -12l17 -74l-69 26c-3 1 -6 2 -10 2c-3 0 -6 -1 -9 -2v0l-2 -1c-8 -3 -16 -5 -24 -7c-14 -4 -29 -6 -44 -6c-96 0 -173 75 -173 167c0 12 1 24 3 35c16 76 86 133 170 133z" /> - <glyph glyph-name="ion-checkmark-circled" unicode="&#xf120;" -d="M224 416c124 0 224 -100 224 -224s-100 -224 -224 -224s-224 100 -224 224s100 224 224 224zM339 267c1 1 1 2 1 3s0 3 -1 4l-31 24c-1 1 -3 1 -4 1s-2 0 -3 -1l-111 -143s-44 42 -45 43s-4 3 -6 3s-3 -2 -4 -3l-25 -25l-1 -1c-1 -1 -1 -3 -1 -4s0 -2 1 -3l2 -1 -s78 -75 79 -76s3 -3 5 -3s4 2 5 3z" /> - <glyph glyph-name="ion-checkmark-round" unicode="&#xf121;" horiz-adv-x="416" -d="M400 376c17 -13 22 -39 9 -57l-207 -302c-13 -18 -37 -22 -54 -9s-137 147 -137 147c-15 16 -15 42 1 58s40 15 55 -2l99 -107l180 263c13 18 37 22 54 9z" /> - <glyph glyph-name="ion-checkmark" unicode="&#xf122;" horiz-adv-x="416" -d="M414 338c1 -2 2 -4 2 -6s-1 -4 -2 -6l-249 -320c-2 -2 -5 -6 -9 -6s-8 3 -10 5s-141 136 -141 136l-3 3c-1 2 -2 4 -2 6s1 3 2 5l2 2c14 15 42 44 44 46s4 6 8 6s8 -4 10 -6s80 -78 80 -78l200 257c2 2 4 2 6 2s5 -1 7 -2z" /> - <glyph glyph-name="ion-chevron-down" unicode="&#xf123;" -d="M224 150v0v0l174 167c4 4 12 4 16 0l31 -30c4 -4 4 -12 0 -16l-213 -204c-2 -2 -5 -3 -8 -3s-6 1 -8 3l-213 204c-4 4 -4 12 0 16l31 30c4 4 12 4 16 0z" /> - <glyph glyph-name="ion-chevron-left" unicode="&#xf124;" horiz-adv-x="256" -d="M86 192l167 -174c4 -4 4 -12 0 -16l-30 -31c-4 -4 -12 -4 -16 0l-204 213c-2 2 -3 5 -3 8s1 6 3 8l204 213c4 4 12 3 16 -1l30 -30c4 -4 4 -12 0 -16l-167 -174v0v0z" /> - <glyph glyph-name="ion-chevron-right" unicode="&#xf125;" horiz-adv-x="256" -d="M170 192v0v0l-167 174c-4 4 -4 12 0 16l30 30c4 4 12 5 16 1l204 -213c2 -2 3 -5 3 -8s-1 -6 -3 -8l-204 -213c-4 -4 -12 -4 -16 0l-30 31c-4 4 -4 12 0 16z" /> - <glyph glyph-name="ion-chevron-up" unicode="&#xf126;" -d="M224 234l-174 -167c-4 -4 -12 -4 -16 0l-31 30c-4 4 -4 12 0 16l213 204c2 2 5 3 8 3s6 -1 8 -3l213 -204c4 -4 4 -12 0 -16l-31 -30c-4 -4 -12 -4 -16 0l-174 167v0v0z" /> - <glyph glyph-name="ion-clipboard" unicode="&#xf127;" horiz-adv-x="352" -d="M80 288c2 20 10 35 28 40l1 1c12 3 21 7 21 20v21c0 26 21 46 46 46s46 -20 46 -46v-21c0 -13 9 -18 21 -21h2c18 -5 25 -20 27 -40h-192zM176 384c-8 0 -13 -6 -13 -14s5 -14 13 -14s14 6 14 14s-6 14 -14 14zM325 384c15 0 27 -12 27 -28v-360c0 -16 -12 -28 -27 -28 -h-149h-148c-15 0 -28 12 -28 28v360c0 16 13 28 28 28h73v-13c0 -11 -9 -19 -19 -19h-37c-7 0 -12 -6 -12 -13v-327c0 -6 5 -12 11 -12h265c6 0 11 6 11 12v327c0 7 -5 13 -12 13h-37c-10 0 -20 8 -20 19v13h74zM64 224v32h112v-32h-112zM64 32v32h160v-32h-160zM64 96v32 -h129v-32h-129zM64 160v32h208v-32h-208z" /> - <glyph glyph-name="ion-clock" unicode="&#xf26e;" -d="M224 416c124 0 224 -100 224 -224s-100 -224 -224 -224s-224 100 -224 224s100 224 224 224zM360 56c10 10 19 21 26 33l-27 16l8 14l27 -16c13 25 21 52 22 81h-32v16h32c-1 29 -9 56 -22 81l-27 -16l-8 14l27 16c-7 12 -16 23 -26 33s-21 19 -33 26l-16 -27l-14 8 -l16 27c-25 13 -52 21 -81 22v-32h-16v32c-29 -1 -56 -9 -81 -22l16 -27l-14 -8l-16 27c-12 -7 -23 -16 -33 -26s-19 -21 -26 -33l27 -16l-8 -14l-27 16c-13 -25 -21 -52 -22 -81h32v-16h-32c1 -29 9 -56 22 -81l27 16l8 -14l-27 -16c7 -12 16 -23 26 -33s21 -19 33 -26 -l16 27l14 -8l-16 -27c25 -13 52 -21 81 -22v32h16v-32c29 1 56 9 81 22l-16 27l14 8l16 -27c12 7 23 16 33 26zM368 207v-32h-117c-6 -9 -16 -15 -27 -15c-18 0 -32 14 -32 32c0 12 6 22 16 28v68h32v-68c5 -3 9 -8 12 -13h116z" /> - <glyph glyph-name="ion-close-circled" unicode="&#xf128;" -d="M224 415c124 0 224 -100 224 -224s-100 -224 -224 -224s-224 100 -224 224s100 224 224 224zM332 116l-75 75l76 75c3 3 3 9 0 12l-22 21c-2 2 -4 3 -6 3s-3 -1 -5 -3l-76 -74l-76 74c-2 2 -3 3 -5 3s-4 -1 -6 -3l-21 -21c-3 -3 -3 -9 0 -12l76 -75l-76 -76 -c-2 -1 -2 -3 -2 -5s0 -4 2 -6l21 -22c2 -2 4 -2 6 -2s4 0 6 2l75 76l76 -75c2 -2 3 -3 5 -3s4 1 6 3l21 21c2 1 3 4 3 6s-1 4 -3 6z" /> - <glyph glyph-name="ion-close-round" unicode="&#xf129;" horiz-adv-x="384" -d="M374 61c14 -14 14 -37 0 -51s-37 -14 -51 0l-131 131l-131 -131c-14 -14 -36 -14 -50 0s-14 37 0 51l130 131l-130 131c-14 14 -14 37 0 51s36 14 50 0l131 -131l131 131c14 14 37 14 51 0s14 -37 0 -51l-131 -131z" /> - <glyph glyph-name="ion-close" unicode="&#xf12a;" horiz-adv-x="384" -d="M380 61c3 -3 4 -6 4 -10s-1 -7 -4 -10l-38 -37c-3 -3 -5 -4 -9 -4s-7 1 -10 4l-131 131l-131 -131c-3 -3 -5 -4 -9 -4s-7 1 -10 4l-38 37c-3 3 -4 6 -4 10s1 7 4 10l132 131l-132 130c-5 5 -5 15 0 20l37 38c3 2 6 4 10 4s7 -1 10 -4l131 -130l131 130c3 2 6 4 10 4 -s7 -1 10 -4l37 -38c5 -5 5 -14 0 -19l-132 -130z" /> - <glyph glyph-name="ion-closed-captioning" unicode="&#xf317;" horiz-adv-x="512" -d="M0 384h512v-384h-512v384zM464 192c0 27 0 44 -4 80s-23 56 -59 60s-91 4 -138 4h-7h-7c-47 0 -102 0 -138 -4s-55 -24 -59 -60s-4 -53 -4 -80s2 -47 4 -80s19 -56 59 -60s96 -4 145 -4s105 0 145 4s57 27 59 60s4 53 4 80zM372 164v4h53c0 -27 -7 -48 -19 -62 -s-32 -21 -61 -21c-14 0 -26 2 -36 5s-18 9 -25 17s-12 19 -15 33s-5 30 -5 51s3 39 7 53s9 25 17 33s17 14 27 17s22 5 34 5c25 0 44 -7 57 -21s19 -37 19 -62h-52v1c0 20 -12 33 -27 33s-25 -11 -28 -30c0 0 -2 -11 -2 -29s2 -28 2 -28c1 -17 12 -29 27 -29s27 10 27 29v1z -M195 164v4h53c0 -27 -7 -48 -19 -62s-32 -21 -61 -21c-14 0 -26 2 -36 5s-18 9 -25 17s-12 19 -15 33s-5 30 -5 51s3 39 7 53s9 25 17 33s17 14 27 17s22 5 34 5c25 0 44 -7 57 -21s19 -37 19 -62h-52v1c0 20 -12 33 -27 33s-25 -11 -28 -30c0 0 -2 -11 -2 -29s2 -28 2 -28 -c1 -17 12 -29 27 -29s27 10 27 29v1z" /> - <glyph glyph-name="ion-cloud" unicode="&#xf12b;" -d="M366 215c45 0 82 -38 82 -84s-37 -83 -82 -83v0h-276c-49 0 -90 41 -90 91c0 40 26 74 61 86c5 29 29 51 59 51c10 0 18 -3 26 -7c19 40 59 67 105 67c64 0 115 -53 115 -118v-3z" /> - <glyph glyph-name="ion-code-download" unicode="&#xf26f;" -d="M299 164l-63 -63v0l-1 -1v0l-2 -1v0l-1 -1v0l-2 -1v0h-1v0h-1c-1 0 -3 -1 -4 -1s-3 1 -4 1h-1v0h-1v0l-2 1v0l-1 1v0c-1 1 -2 1 -3 2v0l-63 63c-6 6 -6 17 0 23s18 6 24 0l35 -34v118c0 9 7 17 16 17s16 -8 16 -17v-118l35 34c6 6 18 6 24 0s6 -17 0 -23zM136 56 -c-6 0 -12 2 -17 7l-112 112c-9 9 -9 25 0 34l112 112c9 9 25 9 34 0s9 -25 0 -34l-95 -95l95 -95c9 -9 9 -25 0 -34c-5 -5 -11 -7 -17 -7zM312 56c-6 0 -12 2 -17 7c-9 9 -9 25 0 34l95 95l-95 95c-9 9 -9 25 0 34s25 9 34 0l112 -112c9 -9 9 -25 0 -34l-112 -112 -c-5 -5 -11 -7 -17 -7z" /> - <glyph glyph-name="ion-code-working" unicode="&#xf270;" -d="M128 192c0 16 8 24 24 24s24 -8 24 -24s-8 -24 -24 -24s-24 8 -24 24zM200 192c0 16 8 24 24 24s24 -8 24 -24s-8 -24 -24 -24s-24 8 -24 24zM272 192c0 16 8 24 24 24s24 -8 24 -24s-8 -24 -24 -24s-24 8 -24 24zM136 56c-7 0 -12 2 -17 7l-112 112c-5 5 -7 10 -7 17 -s2 12 7 17l112 112c5 5 10 7 17 7s12 -2 17 -7s7 -10 7 -17s-2 -12 -7 -17l-95 -95l95 -95c5 -5 7 -10 7 -17s-2 -12 -7 -17s-10 -7 -17 -7zM312 56c-7 0 -12 2 -17 7s-7 10 -7 17s2 12 7 17l95 95l-95 95c-5 5 -7 10 -7 17s2 12 7 17s10 7 17 7s12 -2 17 -7l112 -112 -c5 -5 7 -10 7 -17s-2 -12 -7 -17l-112 -112c-5 -5 -10 -7 -17 -7z" /> - <glyph glyph-name="ion-code" unicode="&#xf271;" -d="M136 56c-6 0 -12 2 -17 7l-112 112c-9 9 -9 25 0 34l112 112c9 9 25 9 34 0s9 -25 0 -34l-95 -95l95 -95c9 -9 9 -25 0 -34c-5 -5 -11 -7 -17 -7zM312 56c-6 0 -12 2 -17 7c-9 9 -9 25 0 34l95 95l-95 95c-9 9 -9 25 0 34s25 9 34 0l112 -112c9 -9 9 -25 0 -34l-112 -112 -c-5 -5 -11 -7 -17 -7z" /> - <glyph glyph-name="ion-coffee" unicode="&#xf272;" horiz-adv-x="384" -d="M319 191c37 -7 65 -40 65 -79c0 -20 -8 -39 -21 -54c-15 -17 -37 -26 -61 -26c-8 0 -17 1 -25 3c-6 1 -10 3 -15 5c-11 -15 -23 -25 -32 -33v0c-5 -5 -12 -7 -19 -7h-102c-7 0 -14 2 -19 7v0c-17 15 -41 36 -62 86s-28 91 -28 111s3 20 16 20h101c-5 17 -37 19 -37 46 -c0 17 15 32 28 37c-2 -8 -3 -14 -3 -21c0 -19 39 -30 39 -53c0 -3 0 -6 -1 -9h56c1 5 2 10 2 14c0 36 -56 36 -56 84c0 28 21 55 47 62c-4 -14 -9 -23 -9 -35c0 -32 57 -50 57 -88c0 -13 -5 -25 -12 -37h76c13 0 16 0 16 -20c0 -4 0 -8 -1 -13zM302 64c33 0 50 25 50 48 -s-17 43 -39 47c-4 -19 -11 -42 -21 -66c-4 -9 -8 -17 -12 -25c6 -3 13 -4 22 -4z" /> - <glyph glyph-name="ion-compass" unicode="&#xf273;" -d="M224 416c124 0 224 -100 224 -224s-100 -224 -224 -224s-224 100 -224 224c0 39 10 76 27 108c-16 12 -27 30 -27 52c0 35 29 64 64 64c22 0 40 -11 52 -27c32 17 69 27 108 27zM32 352c0 -10 5 -20 13 -26c13 17 28 32 45 45c-6 8 -16 13 -26 13c-18 0 -32 -14 -32 -32z -M360 56c36 36 56 85 56 136s-20 100 -56 136s-85 56 -136 56s-100 -20 -136 -56s-56 -85 -56 -136s20 -100 56 -136s85 -56 136 -56s100 20 136 56zM320 320c0 0 -54 -130 -72 -152s-120 -104 -120 -104s54 132 72 152s120 104 120 104z" /> - <glyph glyph-name="ion-compose" unicode="&#xf12c;" horiz-adv-x="384" -d="M379 348c7 -7 7 -18 0 -25l-32 -31l-55 55l31 32c7 7 18 7 25 0zM282 338l55 -55l-177 -173l-64 -14l14 64zM320 192l32 32v-201c0 -13 -10 -23 -23 -23h-306c-13 0 -23 10 -23 23v306c0 13 10 23 23 23h201l-32 -32h-149c-6 0 -11 -5 -11 -10v-268s4 -10 10 -10h269 -s9 5 9 10v150z" /> - <glyph glyph-name="ion-connection-bars" unicode="&#xf274;" horiz-adv-x="352" -d="M0 32v64h64v-64h-64zM96 32v128h64v-128h-64zM192 32v224h64v-224h-64zM288 32v320h64v-320h-64z" /> - <glyph glyph-name="ion-contrast" unicode="&#xf275;" -d="M224 416c124 0 224 -100 224 -224s-100 -224 -224 -224s-224 100 -224 224s100 224 224 224zM360 56c36 36 56 85 56 136s-20 100 -56 136s-85 56 -136 56v-384c51 0 100 20 136 56z" /> - <glyph glyph-name="ion-crop" unicode="&#xf3c1;" -d="M320 -32v48h64v-48h-64zM384 96h64v-64h-384v256h-64v64h64v64h64v-320h192v192h-176v64h240v-256z" /> - <glyph glyph-name="ion-cube" unicode="&#xf318;" -d="M435 280c7 0 13 -6 13 -12v-183c0 -9 -6 -17 -14 -22v-1l-175 -92v-1c-2 -1 -4 -1 -6 -1c-7 0 -13 6 -13 12v185c0 9 5 17 13 22v0l3 2l172 89l2 1c2 1 3 1 5 1zM422 329c0 0 8 -3 8 -9c0 -7 -8 -11 -8 -11l-183 -97l-2 -1c-4 -2 -8 -3 -13 -3s-9 1 -13 3l-2 1l-183 96 -s-8 5 -8 12c0 6 8 9 8 9l181 82s11 5 17 5s17 -5 17 -5zM195 187c8 -5 13 -13 13 -22v-185c0 -6 -6 -12 -13 -12c-2 0 -4 1 -6 2v0l-175 92v1c-8 5 -14 13 -14 22v183c0 6 6 12 13 12c2 0 4 0 5 -1l2 -1l171 -89z" /> - <glyph glyph-name="ion-disc" unicode="&#xf12d;" -d="M224 289c54 0 97 -43 97 -97s-43 -97 -97 -97s-97 43 -97 97s43 97 97 97zM224 148c24 0 44 20 44 44s-20 44 -44 44s-44 -20 -44 -44s20 -44 44 -44zM224 416c124 0 224 -100 224 -224s-100 -224 -224 -224s-224 100 -224 224s100 224 224 224zM224 69 -c68 0 123 55 123 123s-55 123 -123 123s-123 -55 -123 -123s55 -123 123 -123z" /> - <glyph glyph-name="ion-document-text" unicode="&#xf12e;" horiz-adv-x="288" -d="M286 279c1 -3 2 -6 2 -10v-245c0 -13 -10 -24 -22 -24h-243c-12 0 -23 11 -23 24v336c0 13 11 24 23 24h160c3 0 6 0 9 -2c2 -1 5 -3 7 -5l84 -92c2 -2 2 -4 3 -6zM48 269v-10c0 -1 1 -3 3 -3h71c2 0 3 2 3 3v10c0 2 -1 3 -3 3h-71c-2 0 -3 -1 -3 -3zM48 141v-10 -c0 -1 1 -3 3 -3h123c2 0 2 2 2 3v10c0 2 0 3 -2 3h-123c-2 0 -3 -1 -3 -3zM208 67v10c0 2 0 3 -2 3h-155c-2 0 -3 -1 -3 -3v-10c0 -1 1 -3 3 -3h155c2 0 2 2 2 3zM240 195v10c0 2 0 3 -2 3h-187c-2 0 -3 -1 -3 -3v-10c0 -1 1 -3 3 -3h187c2 0 2 2 2 3zM193 270h60l-71 78 -v-66c0 -6 5 -12 11 -12z" /> - <glyph glyph-name="ion-document" unicode="&#xf12f;" horiz-adv-x="288" -d="M287 279c1 -3 1 -5 1 -9v-244c0 -13 -9 -26 -21 -26h-243c-12 0 -24 13 -24 26v335c0 13 12 23 24 23h160c3 0 6 0 9 -2c2 -1 5 -2 7 -4l83 -92c2 -2 3 -4 4 -7zM193 337v-63h58zM32 32h224v210h-67c-15 0 -28 13 -28 28v82h-129v-320z" /> - <glyph glyph-name="ion-drag" unicode="&#xf130;" horiz-adv-x="512" -d="M0 272v32h512v-32h-512zM0 176v32h512v-32h-512zM0 80v32h512v-32h-512z" /> - <glyph glyph-name="ion-earth" unicode="&#xf276;" -d="M325 322c2 -4 7 -12 3 -15c-3 -2 -10 -2 -13 5s0 11 -5 9s-7 3 -6 4c1 2 3 3 5 4c0 2 -4 8 2 7c4 -1 12 -10 14 -14zM344 277v0v0zM403 251c0 0 -2 0 0 0v0zM224 416c124 0 224 -100 224 -224s-100 -224 -224 -224s-224 100 -224 224s100 224 224 224zM141 19l8 -4 -c3 -1 6 -2 10 -3c14 -5 28 -8 43 -10c28 -3 56 -1 83 8c15 5 30 11 43 20c6 4 6 16 10 24c8 16 -2 33 12 47c12 14 4 19 4 34c0 10 8 18 4 29c-1 4 -7 -3 -9 1c-5 7 -21 1 -28 2c-13 2 -24 14 -33 23c-5 5 0 20 1 26c4 15 0 33 19 38c5 1 5 9 10 11c5 1 10 3 15 4 -c9 1 17 -2 26 -2c10 0 14 -5 22 -11c7 -6 13 -3 22 -5c7 0 0 5 -2 8c-3 2 -6 2 -8 2c-16 4 -23 22 -36 30c-6 3 -9 2 -11 0c-1 -1 1 -12 1 -12c-1 -3 -10 -4 -13 -5c-9 -2 -29 17 -15 22c4 1 27 5 24 15c-3 6 2 13 -5 14c-8 1 -7 7 -15 8c-5 1 -5 11 -5 14c0 9 2 6 9 7 -c-17 11 -37 19 -57 24c-1 -3 -5 -12 -8 -12c-5 -1 -6 0 -9 -3c-9 -10 -16 -28 -25 -7c-4 11 5 19 2 28h-6h-3c6 -12 -5 -18 -8 -19c-8 0 -10 5 -17 4c-4 -1 -7 4 -11 2s-13 -8 -14 -12c-3 -12 6 -13 14 -6c6 6 17 12 25 6c6 -5 5 -9 5 -14s-1 -18 -9 -16c-4 1 -7 6 -11 3 -c-8 -7 -18 -6 -29 -9c-10 -2 -16 -6 -25 -9c-8 -3 -11 -4 -12 -12c0 -2 0 -14 -3 -15c-5 -2 -8 22 -22 20c-12 -1 -30 -13 -25 -28c2 -5 28 -3 10 -14c-2 -1 2 -17 2 -20c1 -8 13 -18 21 -10c6 6 6 5 14 2c15 -8 33 -15 45 -27c6 -6 9 -24 17 -28c9 -5 19 -5 26 -14 -c6 -7 -2 -19 -8 -23c-4 -2 -12 -24 -16 -29c-2 -4 -12 -6 -16 -7c-3 0 -7 -9 -9 -11c-7 -7 -8 -13 -17 -19c-18 -12 -22 -23 -18 -44c2 -8 5 -13 11 -16zM100 46l2 -2c7 -6 15 -11 23 -16c-21 21 -23 49 -21 78l3 24c1 3 -4 7 -4 11c0 10 0 5 -8 13c-4 4 -10 11 -12 17 -c-7 16 1 30 10 43c9 14 -7 20 -10 32c-1 6 -7 6 -6 12c1 7 -4 5 -9 9c-12 8 -1 20 -7 26c-43 -70 -36 -162 16 -224c1 -1 0 -1 1 -2h1c3 -4 6 -8 9 -11s7 -6 10 -9z" /> - <glyph glyph-name="ion-easel" unicode="&#xf3c2;" -d="M48 112v192h352v-192h-352zM432 352c9 0 16 -7 16 -16v-256c0 -9 -7 -16 -16 -16h-416c-9 0 -16 7 -16 16v256c0 9 7 16 16 16h416zM416 96v224h-384v-224h384zM48 -32l29 80h31l-28 -80h-32zM239 416l17 -48h-64l17 48h30zM340 48h31l29 -80h-32zM208 0v48h32v-48h-32z -" /> - <glyph glyph-name="ion-edit" unicode="&#xf2bf;" -d="M381 259l-250 -251l-91 91l251 250zM440 360c12 -12 11 -32 -2 -45l-45 -45l-91 91l45 45c13 13 33 14 45 2zM32 85l85 -85l-117 -32z" /> - <glyph glyph-name="ion-egg" unicode="&#xf277;" horiz-adv-x="320" -d="M160 416c64 0 160 -133 160 -257s-64 -191 -160 -191s-160 67 -160 191s96 257 160 257z" /> - <glyph glyph-name="ion-eject" unicode="&#xf131;" horiz-adv-x="320" -d="M303 128h-286v0c-10 0 -17 7 -17 16c0 3 1 5 3 8l138 191c5 5 11 9 19 9s14 -4 19 -9l138 -190c2 -3 3 -6 3 -9c0 -9 -7 -16 -17 -16v0zM308 96c7 0 12 -5 12 -12v-40c0 -7 -5 -12 -12 -12h-296c-7 0 -12 5 -12 12v40c0 7 5 12 12 12h296z" /> - <glyph glyph-name="ion-email-unread" unicode="&#xf3c3;" horiz-adv-x="480" -d="M352 288c0 43 21 64 64 64s64 -21 64 -64s-21 -64 -64 -64s-64 21 -64 64zM209 288h127c0 -17 5 -33 15 -47c-6 -3 -14 -8 -22 -12s-16 -8 -23 -12s-14 -8 -22 -12s-15 -8 -21 -11s-11 -6 -16 -9s-9 -5 -12 -7s-4 -3 -5 -3c-6 -3 -13 -4 -21 -4s-15 1 -21 4 -c-1 1 -15 8 -42 23s-54 29 -81 44s-43 23 -46 25c-7 4 -12 8 -13 11c-1 4 -1 6 1 8s6 2 11 2h191zM277 175c18 11 45 30 83 56c16 -15 34 -23 56 -23v-155c0 -2 -1 -4 -2 -7s-3 -5 -5 -7s-4 -4 -7 -5s-6 -2 -8 -2h-185h-185c-5 0 -11 2 -16 7s-8 9 -8 14v205c0 6 3 8 9 5 -c2 -1 11 -7 26 -17s32 -22 53 -36s39 -26 53 -35l-83 -93c-2 -2 -2 -4 -1 -5c2 -1 4 -1 6 1l98 83c16 -10 25 -16 27 -17c6 -3 13 -4 21 -4s15 1 21 4c2 1 11 7 27 17l98 -83c2 -2 5 -2 6 -1s0 3 -2 5z" /> - <glyph glyph-name="ion-email" unicode="&#xf132;" horiz-adv-x="416" -d="M19 299c-4 2 -11 7 -13 11c-3 8 1 10 12 10h191h191c11 0 15 -2 12 -10c-2 -4 -9 -9 -13 -11c-11 -6 -163 -89 -169 -92s-12 -4 -21 -4s-15 1 -21 4s-158 86 -169 92zM408 295c9 4 8 -1 8 -5v-205c0 -9 -12 -21 -22 -21h-185h-185c-10 0 -24 12 -24 21v205s0 9 9 5 -c8 -4 83 -56 132 -88l-83 -93c-2 -2 -2 -4 -1 -5s4 -1 6 1l98 83c15 -10 25 -16 27 -17c8 -4 14 -4 21 -4s13 0 21 4c2 1 12 7 27 17l98 -83c2 -2 5 -2 6 -1s0 3 -2 5l-82 93c49 32 123 84 131 88z" /> - <glyph glyph-name="ion-erlenmeyer-flask-bubbles" unicode="&#xf3c4;" horiz-adv-x="384" -d="M382 21c2 -4 3 -10 0 -14s-8 -7 -13 -7h-177h-178c-5 0 -9 3 -12 7s-2 10 0 14l118 199v150c0 8 6 14 14 14s15 -6 15 -14v-80c4 3 10 5 16 5c15 0 27 -12 27 -27s-12 -26 -27 -26c-6 0 -12 2 -16 5v-31c0 -2 -1 -4 -2 -6l-35 -59h72c-15 6 -26 20 -26 37 -c0 23 19 42 43 42c15 0 27 -8 35 -19c-1 2 -1 3 -1 5v154c0 8 6 14 14 14s15 -6 15 -14v-150zM218 151h53l-31 54c2 -5 3 -11 3 -17c0 -17 -10 -31 -25 -37zM201 319c-12 0 -22 9 -22 21s10 21 22 21s22 -9 22 -21s-10 -21 -22 -21z" /> - <glyph glyph-name="ion-erlenmeyer-flask" unicode="&#xf3c5;" horiz-adv-x="384" -d="M375 52c6 -9 9 -20 9 -32c0 -28 -16 -52 -63 -52h-258c-47 0 -63 24 -63 52c0 12 3 23 9 32l49 73l49 77c13 20 21 44 21 70v92s-14 34 -16 43c-2 8 1 9 17 9h126c16 0 18 -1 16 -9c-2 -9 -15 -22 -15 -42v-93c0 -26 6 -50 19 -70zM345 7c3 3 7 8 7 14c0 5 -2 10 -4 14 -l-101 150c-16 26 -23 56 -23 87v112h-64v-112c0 -32 -9 -62 -25 -87l-99 -150c-2 -4 -4 -9 -4 -14c0 -6 3 -11 6 -14c4 -4 12 -7 25 -7h258c13 0 20 3 24 7zM325 37c1 -2 3 -6 3 -8c0 -7 -6 -15 -14 -15h-244c-7 0 -14 6 -14 14c0 3 1 6 3 8l81 124h103l82 -124v1zM238 106 -c2 -1 4 -2 6 -2s3 0 5 2c1 2 3 4 3 6s-1 4 -3 6c-1 2 -3 2 -5 2s-4 0 -6 -2c-1 -2 -2 -4 -2 -6s0 -4 2 -6zM285 47c4 2 4 7 2 11l-23 36c-1 2 -4 4 -7 4c-2 0 -3 0 -4 -1c-4 -2 -4 -7 -2 -11l23 -36c1 -2 5 -4 7 -4c1 0 3 0 4 1z" /> - <glyph glyph-name="ion-eye-disabled" unicode="&#xf306;" -d="M344 290c41 -27 76 -66 104 -100c-51 -54 -124 -135 -224 -135c-36 0 -65 8 -92 22l-77 -77l-23 23l71 71c-36 25 -68 61 -103 98c78 85 142 137 224 137c34 0 64 -9 92 -23l77 78l23 -23zM134 192c0 -19 6 -36 16 -51l27 27c-4 7 -5 15 -5 24c0 29 23 53 52 53h8 -c-5 -6 -8 -13 -8 -21c0 -3 0 -5 1 -8l51 50c-15 11 -33 17 -52 17c-49 0 -90 -41 -90 -91zM224 101c49 0 90 41 90 91c0 19 -6 37 -16 52l-50 -51c3 -1 5 -1 8 -1c8 0 14 3 20 7v-7c0 -29 -23 -53 -52 -53c-9 0 -17 2 -24 6l-28 -27c15 -11 33 -17 52 -17z" /> - <glyph glyph-name="ion-eye" unicode="&#xf133;" -d="M224 320c99 0 172 -70 224 -129c-51 -50 -124 -127 -224 -127s-157 60 -224 128c78 79 142 128 224 128zM224 101c49 0 90 41 90 91s-41 91 -90 91s-90 -41 -90 -91s41 -91 90 -91zM224 224c0 -18 14 -32 32 -32c8 0 14 3 20 7v-7c0 -29 -23 -53 -52 -53s-52 24 -52 53 -s23 53 52 53h8c-5 -6 -8 -13 -8 -21z" /> - <glyph glyph-name="ion-female" unicode="&#xf278;" horiz-adv-x="256" -d="M160 164v-68h64v-64h-64v-64h-64v64h-64v64h64v68c-55 14 -96 64 -96 124c0 71 57 128 128 128s128 -57 128 -128c0 -60 -41 -110 -96 -124zM128 208c44 0 80 36 80 80s-36 80 -80 80s-80 -36 -80 -80s36 -80 80 -80z" /> - <glyph glyph-name="ion-filing" unicode="&#xf134;" horiz-adv-x="384" -d="M317 319c12 0 19 0 19 -20v-28h-288v28c0 20 8 20 20 20h249zM269 352c13 0 19 -1 19 -19h-192c0 18 7 19 20 19h153zM368 278c13 -8 17 -17 15 -41l-17 -184c-4 -21 -16 -21 -24 -21h-300c-8 0 -20 0 -24 21l-17 185c-3 26 1 31 15 40l15 10v-32h321v32z" /> - <glyph glyph-name="ion-film-marker" unicode="&#xf135;" horiz-adv-x="416" -d="M400 240c9 0 16 -7 16 -15v-210c0 -8 -7 -15 -16 -15h-384c-9 0 -16 7 -16 15v210c0 8 6 14 13 15c-2 2 -3 4 -4 7l-9 45c-2 8 5 16 13 18l370 74c8 2 16 -4 18 -12l9 -46c2 -8 -4 -16 -12 -18l-342 -68h344zM257 46l-20 58l51 36h-62l-20 58l-19 -58h-63l51 -36l-19 -58 -l50 36z" /> - <glyph glyph-name="ion-fireball" unicode="&#xf319;" horiz-adv-x="320" -d="M297 210c14 -24 23 -52 23 -82c0 -33 -10 -63 -26 -88v0v0c-29 -43 -78 -72 -134 -72c-17 0 -32 1 -46 7s-25 13 -33 25c-11 16 -17 28 -21 52c-6 -25 2 -48 9 -60c-43 26 -69 71 -69 125v4c5 78 65 109 90 151c8 14 13 30 10 48c11 -9 15 -25 15 -39 -c0 -16 -3 -29 -3 -29c4 8 7 18 9 31c6 35 2 85 -37 132l-1 1s7 0 18 -3c95 -16 169 -91 184 -186c2 -12 3 -23 3 -35c0 -16 -2 -32 -5 -47c10 23 13 43 14 55v10z" /> - <glyph glyph-name="ion-flag" unicode="&#xf279;" horiz-adv-x="384" -d="M362 266c0 0 12 2 22 6c0 -16 -7 -32 -9 -36c-28 -50 -99 -123 -181 -84c-65 31 -92 30 -117 24c-1 0 -2 -1 -3 -1c-3 -1 -15 -5 -26 -1v197c0 16 14 31 33 35c39 7 106 5 148 -74c39 -74 97 -72 133 -66zM24 416c4 0 8 -4 8 -8v-432c0 -4 -4 -8 -8 -8h-16 -c-4 0 -8 4 -8 8v432c0 4 4 8 8 8h16z" /> - <glyph glyph-name="ion-flame" unicode="&#xf31a;" horiz-adv-x="256" -d="M1 128c-11 109 72 224 159 288c-26 -145 97 -142 96 -288c-1 -120 -105 -160 -128 -160s-114 26 -127 160zM88 80c0 -44 40 -80 40 -80s41 36 41 80s-41 80 -41 80s-40 -36 -40 -80z" /> - <glyph glyph-name="ion-flash-off" unicode="&#xf136;" -d="M115 -4c-69 38 -115 112 -115 196c0 124 100 224 224 224c24 0 47 -4 68 -11c2 -1 3 -1 5 -2c12 -4 24 -9 35 -15v0c69 -38 116 -112 116 -196c0 -124 -100 -224 -224 -224c-24 0 -47 4 -68 11c-2 1 -3 1 -5 2c-12 4 -24 8 -35 14zM86 291c-20 -28 -32 -62 -32 -99 -c0 -65 36 -121 90 -150c6 -3 13 -7 19 -9c2 -1 3 -1 5 -2c9 -3 19 -5 29 -7c9 -2 18 -2 27 -2c37 0 71 12 99 32l-52 53l36 40l55 -54c20 28 32 62 32 99c0 66 -37 123 -91 151c-6 3 -12 6 -18 8c-2 1 -3 1 -5 2c-9 3 -19 5 -29 7c-9 2 -18 2 -27 2c-37 0 -72 -12 -100 -32 -l53 -52l-36 -41zM178 58l38 113h-85l139 155l-38 -113h85z" /> - <glyph glyph-name="ion-flash" unicode="&#xf137;" horiz-adv-x="320" -d="M0 160l224 256l-51 -192h147l-224 -256l51 192h-147z" /> - <glyph glyph-name="ion-folder" unicode="&#xf139;" horiz-adv-x="384" -d="M366 256c18 0 19 -7 18 -18l-12 -186c-1 -11 -3 -20 -21 -20h-317c-18 0 -20 9 -21 20l-13 184c-1 11 0 20 18 20h348zM362 305l2 -33h-344c0 6 4 46 6 63c2 18 8 17 25 17h75c28 0 23 0 37 -15c16 -18 19 -17 41 -17h143c11 0 15 -3 15 -15z" /> - <glyph glyph-name="ion-fork-repo" unicode="&#xf2c0;" horiz-adv-x="320" -d="M320 368v-64h-48v-48h-64v48h-48v64h48v48h64v-48h48zM208 208h64v-5v0c0 -43 -7 -70 -38 -95c-23 -19 -51 -20 -75 -22c-9 -1 -18 -2 -26 -3c-6 -1 -13 -5 -20 -10c9 -11 15 -25 15 -41c0 -35 -29 -64 -64 -64s-64 29 -64 64c0 24 13 44 32 55v210c-19 11 -32 31 -32 55 -c0 35 29 64 64 64s64 -29 64 -64c0 -24 -13 -44 -32 -55v-160c8 4 18 7 27 9c11 2 21 2 31 3c17 1 33 3 40 9c10 8 14 11 14 50zM64 384c-18 0 -32 -14 -32 -32s14 -32 32 -32s32 14 32 32s-14 32 -32 32zM64 0c18 0 32 14 32 32s-14 32 -32 32s-32 -14 -32 -32 -s14 -32 32 -32z" /> - <glyph glyph-name="ion-fork" unicode="&#xf27a;" horiz-adv-x="128" -d="M78 299v0v0v0zM128 282c0 -26 -15 -48 -37 -58c-12 -6 -11 -11 -11 -11s16 -200 16 -213s-3 -18 -9 -24s-15 -8 -23 -8v0v0c-8 0 -16 2 -22 8s-10 13 -10 24s16 213 16 213s0 6 -11 11c-22 10 -37 32 -37 58c0 43 15 93 24 134h8v-117c0 -6 3 -11 9 -11s9 4 10 10v1 -l9 117h8l10 -117v-1c1 -6 3 -10 9 -10s9 5 9 11v117h8v0c9 -40 24 -91 24 -134z" /> - <glyph glyph-name="ion-forward" unicode="&#xf13a;" horiz-adv-x="384" -d="M224 150c-102 0 -171 -9 -224 -102c0 0 37 208 224 208v80l160 -144l-160 -134v92z" /> - <glyph glyph-name="ion-funnel" unicode="&#xf31b;" -d="M224 416c124 0 224 -36 224 -80c0 -8 -3 -15 -9 -22v0c-35 -43 -151 -179 -151 -218v-4v-83v0c0 -23 -29 -41 -64 -41s-64 18 -64 41v0v87c0 39 -117 177 -149 216v0c-7 8 -11 16 -11 24c0 44 100 80 224 80zM224 288c92 0 176 22 176 48s-83 48 -176 48 -s-176 -22 -176 -48s84 -48 176 -48z" /> - <glyph glyph-name="ion-gear-a" unicode="&#xf13d;" horiz-adv-x="384" -d="M347 192c0 -24 15 -43 37 -56c-4 -13 -10 -26 -16 -38c-25 6 -45 -3 -62 -20s-22 -37 -16 -62c-12 -6 -25 -12 -38 -16c-13 22 -36 37 -60 37s-47 -15 -60 -37c-13 4 -27 10 -39 16c6 25 2 45 -15 62s-37 21 -62 15c-6 12 -12 26 -16 39c22 13 37 36 37 60s-15 43 -37 56 -c4 13 9 26 16 38c25 -6 45 3 62 20s21 37 15 62c12 6 26 12 39 16c13 -22 36 -37 60 -37s47 15 60 37c13 -4 27 -10 39 -16c-6 -25 -2 -45 15 -62s37 -26 62 -20c6 -12 12 -25 16 -38c-22 -13 -37 -32 -37 -56zM192 94c54 0 98 44 98 98s-44 98 -98 98s-98 -44 -98 -98 -s44 -98 98 -98z" /> - <glyph glyph-name="ion-gear-b" unicode="&#xf13e;" horiz-adv-x="384" -d="M384 154h-44c-4 -14 -10 -27 -17 -39l32 -32l-54 -54l-33 32c-12 -7 -24 -11 -38 -15v-46h-76v46c-13 4 -26 8 -38 15l-33 -32l-54 54l32 32c-7 12 -13 25 -17 39h-44v76h43c4 14 9 29 16 41l-30 30l54 54l29 -29c13 8 27 13 42 17v41h76v-41c15 -4 29 -9 42 -17l29 29 -l54 -54l-30 -30c7 -12 13 -27 16 -41h43v-76zM192 138c30 0 54 24 54 54s-24 54 -54 54s-54 -24 -54 -54s24 -54 54 -54z" /> - <glyph glyph-name="ion-grid" unicode="&#xf13f;" horiz-adv-x="320" -d="M64 295c0 -4 -3 -7 -7 -7h-50c-4 0 -7 3 -7 7v50c0 4 3 7 7 7h50c4 0 7 -3 7 -7v-50zM192 295c0 -4 -3 -7 -7 -7h-50c-4 0 -7 3 -7 7v50c0 4 3 7 7 7h50c4 0 7 -3 7 -7v-50zM320 295c0 -4 -3 -7 -7 -7h-50c-4 0 -7 3 -7 7v50c0 4 3 7 7 7h50c4 0 7 -3 7 -7v-50zM64 167 -c0 -4 -3 -7 -7 -7h-50c-4 0 -7 3 -7 7v50c0 4 3 7 7 7h50c4 0 7 -3 7 -7v-50zM192 167c0 -4 -3 -7 -7 -7h-50c-4 0 -7 3 -7 7v50c0 4 3 7 7 7h50c4 0 7 -3 7 -7v-50zM320 167c0 -4 -3 -7 -7 -7h-50c-4 0 -7 3 -7 7v50c0 4 3 7 7 7h50c4 0 7 -3 7 -7v-50zM64 39 -c0 -4 -3 -7 -7 -7h-50c-4 0 -7 3 -7 7v50c0 4 3 7 7 7h50c4 0 7 -3 7 -7v-50zM192 39c0 -4 -3 -7 -7 -7h-50c-4 0 -7 3 -7 7v50c0 4 3 7 7 7h50c4 0 7 -3 7 -7v-50zM320 39c0 -4 -3 -7 -7 -7h-50c-4 0 -7 3 -7 7v50c0 4 3 7 7 7h50c4 0 7 -3 7 -7v-50z" /> - <glyph glyph-name="ion-hammer" unicode="&#xf27b;" horiz-adv-x="320" -d="M314 416c3 0 6 -3 6 -6v-84c0 -3 -3 -6 -6 -6h-52c-3 0 -6 3 -6 6v14c-6 5 -16 9 -22 7c-7 -2 -23 -13 -30 -25s-6 -28 -6 -66l8 -2c5 -1 7 -6 7 -9v-70c0 -95 11 -201 11 -201c0 -3 -3 -6 -6 -6h-84c-3 0 -6 3 -6 6c0 0 11 106 11 201v70c0 3 3 8 7 9l7 2 -c0 43 -5 58 -22 74c-18 16 -41 19 -63 17s-51 -35 -58 -45s-10 2 -10 11c1 16 22 60 72 81s91 22 102 22s27 -1 38 -3s16 -18 26 -18c7 0 14 5 18 9v6c0 3 3 6 6 6h52z" /> - <glyph glyph-name="ion-happy-outline" unicode="&#xf3c6;" -d="M355 158c8 -4 11 -13 7 -21c-24 -46 -78 -73 -138 -73c-62 0 -118 29 -139 74c-4 8 0 17 8 21c2 1 5 1 7 1c6 0 11 -3 14 -9c16 -34 60 -55 110 -55c49 0 92 21 110 56c3 5 8 8 14 8c3 0 5 -1 7 -2zM381 217c5 -7 4 -17 -4 -22c-3 -2 -6 -3 -10 -3c-5 0 -11 2 -14 6 -s-7 10 -17 10s-14 -6 -17 -10s-9 -6 -14 -6c-4 0 -7 1 -10 3c-8 6 -9 15 -3 22c11 14 23 23 44 23s35 -9 45 -23zM157 217c5 -7 4 -17 -4 -22c-3 -2 -6 -3 -10 -3c-5 0 -11 2 -14 6s-7 10 -17 10s-14 -6 -17 -10s-9 -6 -14 -6c-4 0 -7 1 -10 3c-8 6 -9 15 -3 22 -c11 14 23 23 44 23s35 -9 45 -23zM224 416c124 0 224 -100 224 -224s-100 -224 -224 -224s-224 100 -224 224s100 224 224 224zM360 56c36 36 56 85 56 136s-20 100 -56 136s-85 56 -136 56s-100 -20 -136 -56s-56 -85 -56 -136s20 -100 56 -136s85 -56 136 -56 -s100 20 136 56z" /> - <glyph glyph-name="ion-happy" unicode="&#xf31c;" -d="M224 416c124 0 224 -100 224 -224s-100 -224 -224 -224s-224 100 -224 224s100 224 224 224zM71 195c3 -2 6 -3 10 -3c5 0 11 2 14 6s7 10 17 10s14 -6 17 -10s9 -6 14 -6c4 0 7 1 10 3c8 5 9 15 4 22c-10 14 -24 23 -45 23s-33 -9 -44 -23c-6 -7 -5 -16 3 -22zM362 137 -c4 8 1 17 -7 21c-2 1 -4 2 -7 2c-6 0 -11 -3 -14 -8c-18 -35 -61 -56 -110 -56c-50 0 -94 21 -110 55c-3 6 -8 9 -14 9c-2 0 -5 0 -7 -1c-8 -4 -12 -13 -8 -21c21 -45 77 -74 139 -74c60 0 114 27 138 73zM377 195c8 5 9 15 4 22c-10 14 -24 23 -45 23s-33 -9 -44 -23 -c-6 -7 -5 -16 3 -22c3 -2 6 -3 10 -3c5 0 11 2 14 6s7 10 17 10s14 -6 17 -10s9 -6 14 -6c4 0 7 1 10 3z" /> - <glyph glyph-name="ion-headphone" unicode="&#xf140;" horiz-adv-x="384" -d="M383 210c3 -51 -3 -130 -13 -162c-20 -67 -40 -80 -72 -80s-58 27 -58 59v106c0 33 23 59 53 59c18 0 34 -9 44 -24c0 0 11 7 13 22s4 34 -5 64s-21 19 -36 38c-2 3 -5 7 -8 10l-10 10c-2 2 -3 3 -5 4c-11 9 -21 17 -34 23c-19 9 -39 13 -60 13s-42 -4 -61 -13 -c-13 -6 -22 -14 -33 -23c-2 -1 -3 -2 -5 -4l-10 -10s-6 -7 -8 -10c-15 -19 -27 -8 -36 -38c-9 -31 -7 -49 -5 -64s13 -22 13 -22c10 15 26 24 44 24c30 0 53 -27 53 -59v-106c0 -32 -26 -59 -58 -59s-52 13 -72 80c-10 32 -16 111 -13 162c3 60 22 108 56 145v0 -c8 8 15 16 24 23s19 13 29 18c25 13 53 20 82 20s57 -7 82 -20c10 -5 19 -11 28 -18s17 -15 25 -23v0c34 -37 53 -85 56 -145z" /> - <glyph glyph-name="ion-heart-broken" unicode="&#xf31d;" horiz-adv-x="416" -d="M181 160c0 -36 -2 -71 4 -107c2 -10 2 -20 2 -31l-153 159c-45 47 -45 124 0 171c40 41 103 43 144 3c-2 -15 -3 -31 -3 -46c-18 -14 -40 -21 -56 -39l11 7c17 11 15 8 35 14c3 1 8 3 11 5c0 -1 -1 -5 -1 -6c1 -20 11 -39 15 -60c0 -5 1 -10 -1 -15c-8 -17 -7 -37 -8 -55 -zM274 147c8 -18 23 -29 38 -39l-104 -108l-17 18c0 13 -4 26 -4 38c-2 48 10 94 21 142v0c1 -1 2 -1 3 -1c30 -6 52 -24 63 -50zM382 352c46 -47 46 -124 0 -171l-68 -70c-28 24 -42 54 -65 81c-12 13 -26 23 -41 32c-3 13 -8 26 -11 39c-3 12 14 21 16 31c3 12 3 26 3 39 -l19 19c40 42 107 42 147 0z" /> - <glyph glyph-name="ion-heart" unicode="&#xf141;" horiz-adv-x="416" -d="M382 352c46 -47 46 -124 0 -171l-174 -181l-174 181c-46 47 -46 124 0 171c40 42 107 42 147 0l27 -28l28 28c40 42 106 42 146 0z" /> - <glyph glyph-name="ion-help-buoy" unicode="&#xf27c;" -d="M224 416c124 0 224 -100 224 -224s-100 -224 -224 -224s-224 100 -224 224s100 224 224 224zM402 264c-10 24 -23 45 -42 64s-41 32 -65 42l-19 -61c14 -6 27 -15 38 -26s21 -24 27 -38zM224 96c53 0 96 43 96 96s-43 96 -96 96s-96 -43 -96 -96s43 -96 96 -96zM88 328 -c-19 -19 -32 -41 -42 -65l61 -19c6 14 15 27 26 38s24 21 38 27l-19 61c-24 -10 -45 -23 -64 -42zM46 120c10 -24 23 -45 42 -64s41 -32 65 -42l19 61c-14 6 -27 15 -38 26s-21 24 -27 38zM360 56c19 19 32 41 42 65l-61 19c-6 -14 -15 -27 -26 -38s-24 -21 -38 -27l19 -61 -c24 10 45 23 64 42z" /> - <glyph glyph-name="ion-help-circled" unicode="&#xf142;" -d="M224 416c124 0 224 -100 224 -224s-100 -224 -224 -224s-224 100 -224 224s100 224 224 224zM244 89c1 18 -12 31 -29 31c-16 0 -30 -11 -30 -29s12 -30 28 -30c17 0 31 10 31 28zM293 217c7 10 12 22 12 36c0 23 -9 40 -25 52c-17 13 -37 18 -62 18 -c-19 0 -34 -4 -47 -13c-19 -13 -28 -34 -28 -68h49c0 9 -1 19 4 27s13 15 26 15s19 -3 25 -11c5 -7 8 -15 8 -23c0 -7 -4 -14 -8 -20c-2 -4 -6 -7 -10 -10c0 0 -26 -15 -35 -30c-7 -11 -9 -24 -10 -41c0 -1 0 -4 4 -4h39s5 3 5 4c0 6 1 15 2 19c2 7 6 12 12 17l14 9 -c12 9 21 17 25 23z" /> - <glyph glyph-name="ion-help" unicode="&#xf143;" horiz-adv-x="256" -d="M217 371c25 -19 39 -46 39 -83c0 -22 -8 -42 -19 -57c-7 -9 -21 -21 -40 -36l-21 -14c-10 -8 -17 -18 -20 -28c-2 -6 -3 -19 -3 -29c0 -2 -1 -6 -7 -6h-62c-7 0 -7 3 -7 5c1 26 4 49 15 66c15 23 57 48 57 48c6 5 11 9 15 15c7 10 12 21 12 32c0 13 -3 26 -11 36 -c-10 12 -21 18 -41 18s-32 -11 -40 -24s-7 -29 -7 -43h-77c0 54 14 88 44 108c20 14 45 20 75 20c39 0 70 -7 98 -28zM114 78c27 -1 47 -20 46 -48s-22 -46 -49 -45c-26 1 -46 19 -45 47s22 47 48 46z" /> - <glyph glyph-name="ion-home" unicode="&#xf144;" horiz-adv-x="384" -d="M384 160h-48v-160h-96v128h-96v-128h-96v160h-48l192 224z" /> - <glyph glyph-name="ion-icecream" unicode="&#xf27d;" horiz-adv-x="320" -d="M32 192h256l-128 -224zM307 275c8 -5 13 -13 13 -23c0 -16 -14 -28 -30 -28h-4h-252h-4c-16 0 -30 13 -30 28c0 10 6 18 14 23c1 0 1 2 2 2c4 3 7 7 8 12v1c-2 6 -2 12 -2 18c0 42 34 76 76 76c8 0 16 -2 23 -4c-3 -12 -4 -31 -4 -31c2 15 11 29 11 29c18 23 46 38 77 38 -c53 0 96 -43 96 -96c0 -11 -2 -21 -5 -30v-1c0 -4 4 -9 8 -12c1 0 2 -2 3 -2z" /> - <glyph glyph-name="ion-image" unicode="&#xf147;" -d="M336 224c-26 0 -48 22 -48 48s22 48 48 48s48 -22 48 -48s-22 -48 -48 -48zM420 384c16 0 28 -12 28 -28v-328c0 -16 -12 -28 -28 -28h-392c-16 0 -28 12 -28 28v328c0 16 12 28 28 28h392zM317 186l99 -106v260c0 7 -6 12 -13 12h-358c-7 0 -12 -5 -13 -12v-260l126 152 -c4 4 10 8 17 8s13 -2 17 -7l54 -59l4 -4c3 -2 7 -4 11 -4s8 2 12 5l18 16c4 3 8 5 13 5s10 -2 13 -6z" /> - <glyph glyph-name="ion-images" unicode="&#xf148;" -d="M426 308c13 -1 23 -12 22 -24l-14 -263c-1 -13 -12 -22 -25 -21l-330 16c-13 1 -23 10 -22 23l2 46l-15 -1c-12 -1 -22 7 -23 18l-21 236c-1 11 7 21 19 22l296 24c12 1 22 -7 23 -18l5 -54zM71 302c1 12 11 22 24 22l219 -11l-2 31h-1v1c-1 5 -5 8 -10 8l-261 -22 -c-5 0 -10 -4 -10 -9v0v-1l16 -178l18 25zM405 66l10 198v1v0c0 6 -5 10 -11 10l-58 3l-29 2l-204 9c-6 0 -11 -4 -12 -9v0v-1l-3 -63l-7 -128v-7l6 7l102 109c4 4 8 6 14 6s11 -3 14 -7l43 -49l3 -3c2 -2 6 -4 10 -4s5 1 9 3l17 12c4 3 7 4 11 4s9 -2 11 -5l27 -33zM341 186 -c-20 0 -35 15 -35 35s16 35 35 35c20 0 35 -16 35 -35s-16 -35 -35 -35z" /> - <glyph glyph-name="ion-information-circled" unicode="&#xf149;" -d="M448 195c2 -124 -97 -225 -221 -227s-225 97 -227 221s97 225 221 227s225 -97 227 -221zM224 336c-18 0 -32 -14 -32 -32s14 -32 32 -32s32 14 32 32s-14 32 -32 32zM268 53v11h-22v172h-66v-12h22v-160h-22v-11h88z" /> - <glyph glyph-name="ion-information" unicode="&#xf14a;" horiz-adv-x="128" -d="M96 0h32v-16h-128v16h32v240h-32v16h96v-256zM64 304c-27 0 -48 21 -48 48s21 48 48 48s48 -21 48 -48s-21 -48 -48 -48z" /> - <glyph glyph-name="ion-ionic" unicode="&#xf14b;" horiz-adv-x="416" -d="M376 315c25 -34 40 -77 40 -123c0 -115 -93 -208 -208 -208s-208 93 -208 208s93 208 208 208c46 0 89 -15 123 -40c5 3 11 5 18 5c18 0 32 -14 32 -32c0 -7 -2 -13 -5 -18zM344 56c18 18 31 38 41 61c10 24 15 49 15 75s-5 51 -15 75c-6 13 -13 26 -21 38 -c-4 -2 -10 -4 -15 -4c-18 0 -32 14 -32 32c0 5 2 11 4 15c-12 8 -25 15 -38 21c-24 10 -49 15 -75 15s-51 -5 -75 -15c-23 -10 -43 -23 -61 -41s-31 -38 -41 -61c-10 -24 -15 -49 -15 -75s5 -51 15 -75c10 -23 23 -43 41 -61s38 -31 61 -41c24 -10 49 -15 75 -15s51 5 75 15 -c23 10 43 23 61 41zM112 192c0 64 32 96 96 96s96 -32 96 -96s-32 -96 -96 -96s-96 32 -96 96z" /> - <glyph glyph-name="ion-ios-alarm-outline" unicode="&#xf3c7;" horiz-adv-x="404" -d="M384 256l-54 52l-9 -9c35 -32 57 -79 57 -130c0 -44 -16 -83 -43 -114l36 -45l-12 -10l-35 43c-32 -30 -75 -49 -122 -49v0v0c-47 0 -90 19 -122 49l-35 -43l-12 10l36 45c-27 31 -43 71 -43 115c0 51 22 97 57 129l-9 9l-54 -52c-12 14 -20 32 -20 52c0 44 35 80 80 82 -h5c20 0 39 -7 54 -18l-54 -52l11 -11c26 19 56 32 90 35v0c0 8 8 16 16 16s15 -8 15 -16v0c34 -3 65 -16 91 -35l11 11l-54 52c15 11 34 18 54 18h5c45 -2 80 -38 80 -82c0 -20 -8 -38 -20 -52zM22 280l91 89c-9 5 -19 7 -32 6c-37 -2 -65 -32 -65 -67c0 -10 2 -19 6 -28z -M362 172c0 88 -72 158 -160 158s-160 -70 -160 -158s72 -158 160 -158s160 70 160 158zM291 369l91 -89c4 9 6 18 6 28c0 35 -28 65 -65 67c-13 1 -23 -1 -32 -6zM202 288h16v-144h-112v16h96v128z" /> - <glyph glyph-name="ion-ios-alarm" unicode="&#xf3c8;" horiz-adv-x="404" -d="M385 256l-55 52l-9 -9c35 -32 57 -79 57 -130c0 -44 -16 -83 -43 -114l37 -45l-13 -10l-35 43c-32 -30 -75 -49 -122 -49v0v0c-47 0 -90 19 -122 49l-35 -43l-12 10l36 45c-27 31 -43 70 -43 114c0 51 22 98 57 130l-9 9l-54 -52c-12 14 -20 32 -20 52c0 44 35 80 80 82 -h5c20 0 39 -7 54 -18l-54 -53l11 -10c26 19 56 32 90 35v0c0 8 8 16 16 16s15 -8 15 -16v0c34 -3 65 -16 91 -35l11 11l-54 52c15 11 34 18 54 18h5c45 -2 80 -38 80 -82c0 -20 -7 -38 -19 -52zM218 144v144h-16v-128h-96v-16h112z" /> - <glyph glyph-name="ion-ios-albums-outline" unicode="&#xf3c9;" -d="M432 304h-416v-288h416v288zM448 320v0v-320h-448v320h448zM40 336v16h368v-16h-368zM72 368v16h304v-16h-304z" /> - <glyph glyph-name="ion-ios-albums" unicode="&#xf3ca;" -d="M448 320v0v-320h-448v320h448zM40 336v16h368v-16h-368zM72 368v16h304v-16h-304z" /> - <glyph glyph-name="ion-ios-americanfootball-outline" unicode="&#xf3cb;" horiz-adv-x="416" -d="M331 315c112 -112 81 -327 81 -327s-26 -4 -65 -4c-73 0 -189 12 -262 85c-112 112 -81 327 -81 327s26 4 65 4c73 0 189 -12 262 -85zM17 383c-2 -19 -5 -60 0 -107c1 -8 2 -16 3 -23l127 127c-25 3 -51 5 -78 5v0v0c-22 0 -41 -1 -52 -2zM96 80c30 -30 72 -53 124 -66 -c10 -3 20 -5 31 -7l142 142c-4 22 -10 44 -17 63c-14 37 -32 68 -56 92c-30 30 -72 53 -124 66c-10 3 -20 5 -31 7l-142 -142c4 -22 10 -44 17 -63c14 -37 32 -68 56 -92zM399 1c2 19 5 60 0 107c-1 8 -2 16 -3 23l-127 -127c25 -3 51 -5 78 -5c22 0 41 1 52 2zM259 130 -l-28 -29l-12 12l29 28l-23 23l-28 -29l-12 12l29 28l-23 23l-28 -29l-12 12l29 28l-23 23l-28 -29l-12 12l29 28l-22 23l-29 -29l-11 12l67 67l12 -11l-29 -29l23 -22l28 29l12 -12l-29 -28l23 -23l28 29l12 -12l-29 -28l23 -23l28 29l12 -12l-29 -28l22 -23l29 29l12 -12 -l-29 -28l22 -23l29 29l11 -12l-67 -67l-12 11l29 29z" /> - <glyph glyph-name="ion-ios-americanfootball" unicode="&#xf3cc;" horiz-adv-x="416" -d="M331 315c112 -112 81 -327 81 -327s-26 -4 -65 -4c-73 0 -189 12 -262 85c-112 112 -81 327 -81 327s26 4 65 4c73 0 189 -12 262 -85zM20 253l3 -18l142 142l-18 3zM219 113l12 -12l28 29l23 -22l-29 -29l12 -11l67 67l-11 12l-29 -29l-22 23l29 28l-12 12l-28 -29 -l-23 23l29 28l-12 12l-28 -29l-23 23l29 28l-12 12l-28 -29l-23 23l29 28l-12 12l-28 -29l-23 22l29 29l-12 11l-67 -67l11 -12l29 29l22 -23l-29 -28l12 -12l28 29l23 -23l-29 -28l12 -12l28 29l23 -23l-29 -28l12 -12l28 29l23 -23zM269 4l127 127l-3 18l-142 -142z" /> - <glyph glyph-name="ion-ios-analytics-outline" unicode="&#xf3cd;" -d="M224 400c-28 0 -55 -5 -81 -16c-25 -10 -47 -26 -66 -45s-35 -41 -45 -66c-11 -26 -16 -53 -16 -81s5 -55 16 -81c10 -25 26 -47 45 -66s41 -35 66 -45c26 -11 53 -16 81 -16s55 5 81 16c25 10 47 26 66 45s35 41 45 66c11 26 16 53 16 81s-5 55 -16 81 -c-10 25 -26 47 -45 66s-41 35 -66 45c-26 11 -53 16 -81 16zM224 416v0c124 0 224 -100 224 -224s-100 -224 -224 -224s-224 100 -224 224s100 224 224 224zM76 128c-25 0 -41 18 -42 19c-3 3 -2 9 1 12s8 2 11 -1c1 -1 15 -17 36 -14c12 2 27 26 38 42c4 6 9 12 12 16 -c17 21 34 23 45 21c24 -3 45 -28 54 -50c7 -18 18 -28 32 -29c15 -1 31 11 43 30c1 2 3 4 4 7c9 17 24 43 52 43c31 0 52 -35 53 -36c2 -4 1 -9 -3 -11s-9 -1 -11 3c0 0 -5 8 -12 15c-6 6 -16 13 -27 13c-18 0 -29 -19 -38 -35c-1 -3 -3 -5 -4 -7c-15 -25 -36 -40 -58 -38 -c-20 1 -36 15 -46 39s-28 39 -41 41c-11 1 -21 -4 -31 -16c-3 -4 -6 -9 -10 -15c-14 -20 -31 -45 -50 -48c-3 0 -5 -1 -8 -1z" /> - <glyph glyph-name="ion-ios-analytics" unicode="&#xf3ce;" -d="M224 416c124 0 224 -100 224 -224c0 -13 -1 -25 -3 -37c-1 -6 -2 -12 -3 -17c-24 -98 -113 -170 -218 -170c-122 0 -221 98 -224 219v5c0 9 1 17 2 26c13 111 107 198 222 198zM431 168c1 8 1 16 1 24c0 28 -5 55 -16 81c-10 25 -26 47 -45 66s-41 35 -66 45 -c-26 11 -53 16 -81 16s-55 -5 -81 -16c-25 -10 -47 -26 -66 -45s-35 -41 -45 -66c-11 -26 -16 -53 -16 -81v0c14 -21 29 -34 29 -34h1v-1c1 -1 15 -16 36 -13c12 2 27 26 38 42c4 6 9 12 12 16c17 21 34 23 45 21c24 -3 45 -27 54 -50c7 -18 18 -28 32 -29c15 -1 31 9 43 29 -c1 2 3 4 4 7c9 17 24 44 52 44c31 0 52 -35 53 -36c3 -4 9 -12 16 -20z" /> - <glyph glyph-name="ion-ios-arrow-back" unicode="&#xf3cf;" horiz-adv-x="192" -d="M192 320l-127 -128l127 -128l-32 -32l-160 160v0v0l160 160z" /> - <glyph glyph-name="ion-ios-arrow-down" unicode="&#xf3d0;" horiz-adv-x="320" -d="M301 288l19 -21l-160 -171l-160 171l19 21l141 -150z" /> - <glyph glyph-name="ion-ios-arrow-forward" unicode="&#xf3d1;" horiz-adv-x="192" -d="M0 320l32 32l160 -160v0v0l-160 -160l-32 32l127 128z" /> - <glyph glyph-name="ion-ios-arrow-left" unicode="&#xf3d2;" horiz-adv-x="192" -d="M192 333l-150 -141l150 -141l-21 -19l-171 160l171 160z" /> - <glyph glyph-name="ion-ios-arrow-right" unicode="&#xf3d3;" horiz-adv-x="192" -d="M0 333l21 19l171 -160l-171 -160l-21 19l150 141z" /> - <glyph glyph-name="ion-ios-arrow-thin-down" unicode="&#xf3d4;" horiz-adv-x="192" -d="M190 126c2 -2 2 -4 2 -6s0 -4 -2 -6c0 0 -87 -79 -88 -80s-3 -2 -6 -2s-5 1 -6 2s-88 80 -88 80c-3 3 -3 9 0 12s9 3 12 0l74 -67v285c0 4 4 8 8 8s8 -4 8 -8v-285l74 67c3 3 9 3 12 0z" /> - <glyph glyph-name="ion-ios-arrow-thin-left" unicode="&#xf3d5;" horiz-adv-x="320" -d="M94 98c-2 -2 -4 -2 -6 -2s-4 0 -6 2c0 0 -79 87 -80 88s-2 3 -2 6s1 5 2 6s80 88 80 88c3 3 9 3 12 0s3 -9 0 -12l-67 -74h285c4 0 8 -4 8 -8s-4 -8 -8 -8h-285l67 -74c3 -3 3 -9 0 -12z" /> - <glyph glyph-name="ion-ios-arrow-thin-right" unicode="&#xf3d6;" horiz-adv-x="320" -d="M226 98c-3 3 -3 9 0 12l67 74h-285c-4 0 -8 4 -8 8s4 8 8 8h285l-67 74c-3 3 -3 9 0 12s9 3 12 0c0 0 79 -87 80 -88s2 -3 2 -6s-1 -5 -2 -6s-80 -88 -80 -88c-2 -2 -4 -2 -6 -2s-4 0 -6 2z" /> - <glyph glyph-name="ion-ios-arrow-thin-up" unicode="&#xf3d7;" horiz-adv-x="192" -d="M190 258c-3 -3 -9 -3 -12 0l-74 67v-285c0 -4 -4 -8 -8 -8s-8 4 -8 8v285l-74 -67c-3 -3 -9 -3 -12 0s-3 9 0 12c0 0 87 79 88 80s3 2 6 2s5 -1 6 -2s88 -80 88 -80c2 -2 2 -4 2 -6s0 -4 -2 -6z" /> - <glyph glyph-name="ion-ios-arrow-up" unicode="&#xf3d8;" horiz-adv-x="320" -d="M301 96l-141 150l-141 -150l-19 21l160 171l160 -171z" /> - <glyph glyph-name="ion-ios-at-outline" unicode="&#xf3d9;" horiz-adv-x="255" -d="M236 127v1h19l-3 -6c-3 -6 -13 -19 -22 -27s-18 -14 -28 -20s-21 -10 -32 -13s-23 -5 -34 -5c-16 0 -33 3 -49 8s-30 13 -43 24c-12 11 -26 29 -34 46c-7 16 -10 33 -10 58c0 18 4 38 11 55c7 16 17 30 29 42s27 21 43 28c15 6 33 9 53 9c16 0 32 -3 46 -8 -c15 -5 28 -12 39 -22s17 -21 24 -35c6 -13 8 -26 8 -44c0 -14 -2 -28 -7 -40s-9 -20 -17 -30c-8 -9 -13 -15 -23 -21c-11 -6 -20 -9 -29 -9c-8 0 -15 2 -20 7c-3 2 -5 6 -6 9c-6 -6 -11 -10 -17 -12c-10 -3 -18 -4 -26 -4s-15 1 -21 4s-12 7 -17 12s-8 11 -11 18 -s-5 14 -5 22c0 12 3 24 7 36v2c4 11 5 16 13 26c8 11 17 19 28 26s24 11 38 11c12 0 21 -3 31 -9c7 -4 12 -10 16 -16l6 17h18l-38 -102c-2 -5 -4 -10 -5 -14s-1 -7 -1 -10c0 -2 1 -4 3 -5s4 -2 8 -2c6 0 11 2 20 7c8 4 12 9 19 17c6 8 10 14 14 25s6 23 6 35 -c0 15 -2 25 -7 36c-6 13 -10 22 -19 30s-20 15 -33 20s-27 7 -42 7c-19 0 -35 -3 -48 -9c-15 -6 -27 -14 -37 -24c-11 -10 -19 -23 -25 -37c-6 -15 -10 -32 -10 -48c0 -22 2 -36 8 -49c6 -15 17 -31 28 -41s24 -18 38 -23s30 -7 46 -7c10 0 20 1 30 4s18 6 27 11 -s17 11 24 18s14 13 19 21zM147 154c4 5 8 12 11 20l21 57c-2 5 -4 10 -7 13c-3 4 -6 6 -10 8c-1 0 -1 1 -2 1c-3 2 -5 3 -9 4c-5 1 -9 2 -13 2c-10 0 -19 -3 -28 -9s-17 -13 -23 -22c-5 -8 -7 -11 -10 -20c0 -1 -1 -3 -1 -4c-4 -11 -5 -20 -5 -30c0 -6 1 -11 3 -16 -s5 -9 8 -13s7 -6 12 -8s9 -3 15 -3c4 0 9 1 14 2c4 1 8 2 12 5s8 7 12 13z" /> - <glyph glyph-name="ion-ios-at" unicode="&#xf3da;" horiz-adv-x="256" -d="M228 128v0h28c-1 -1 -2 -4 -3 -6c-4 -6 -14 -19 -23 -27s-18 -14 -28 -20s-20 -10 -32 -13c-11 -3 -23 -5 -34 -5c-16 0 -33 3 -49 8s-30 13 -43 24c-12 10 -26 28 -34 46c-7 16 -10 33 -10 58c0 19 4 39 11 55s17 30 29 42s28 21 44 28c15 6 32 9 52 9c16 0 31 -3 46 -8 -s28 -12 39 -22s18 -22 25 -36c6 -14 8 -26 8 -44c0 -14 -2 -28 -7 -40c-4 -11 -9 -20 -17 -30c-7 -9 -14 -16 -24 -22c-12 -6 -21 -9 -30 -9s-16 2 -22 8c-2 1 -3 3 -4 5c-4 -4 -9 -6 -14 -8c-10 -3 -18 -5 -27 -5c-8 0 -16 2 -23 5s-12 7 -17 12s-9 12 -12 19s-4 14 -4 22 -c0 12 2 25 6 37l1 1c4 10 5 17 13 27c8 11 17 20 28 27c12 7 24 10 38 10c12 0 22 -3 33 -9c5 -3 8 -6 12 -10l5 12h25l-39 -104c-2 -5 -3 -9 -4 -13c-1 -3 -1 -7 -1 -9s0 -3 1 -3c0 0 1 -1 5 -1c5 0 11 2 19 7c7 4 10 8 16 16s9 13 13 23s6 20 6 32c0 14 -1 24 -6 34 -c-5 12 -10 21 -18 28c-9 8 -19 14 -31 18s-26 7 -40 7c-18 0 -32 -3 -44 -8c-14 -6 -25 -13 -35 -23s-18 -22 -24 -35c-6 -14 -9 -30 -9 -45c0 -21 3 -34 8 -46c6 -14 16 -30 26 -39s22 -16 35 -21c14 -5 28 -7 43 -7c10 0 20 2 29 4s18 6 26 11s28 20 38 33zM144 157 -c4 5 7 12 10 19l20 55c-1 4 -3 7 -5 9c-3 3 -6 6 -9 8h-1h-1v1c-3 2 -5 2 -8 3c-4 1 -8 1 -12 1c-9 0 -17 -2 -25 -7c-10 -6 -17 -14 -21 -21c-5 -8 -6 -11 -9 -19c0 -1 -1 -2 -1 -3c-3 -10 -6 -19 -6 -28c0 -5 1 -10 3 -14s4 -8 7 -11s7 -6 11 -8s8 -2 13 -2c4 0 8 0 12 1 -v0c4 1 7 2 11 5c3 2 7 5 11 11z" /> - <glyph glyph-name="ion-ios-barcode-outline" unicode="&#xf3db;" horiz-adv-x="416" -d="M0 64v256h80v-16h-64v-224h64v-16h-80zM336 320h80v-256h-80v16h64v224h-64v16zM64 128v128h16v-128h-16zM336 128v128h16v-128h-16zM272 96v192h16v-192h-16zM128 96v192h16v-192h-16zM199 112v160h16v-160h-16z" /> - <glyph glyph-name="ion-ios-barcode" unicode="&#xf3dc;" horiz-adv-x="416" -d="M0 320h416v-256h-416v256zM80 128v128h-16v-128h16zM144 96v192h-16v-192h16zM215 112v160h-16v-160h16zM288 96v192h-16v-192h16zM352 128v128h-16v-128h16z" /> - <glyph glyph-name="ion-ios-baseball-outline" unicode="&#xf3dd;" horiz-adv-x="416" -d="M415 169v-1v0c-11 -97 -90 -174 -187 -183v0h-2c-2 0 -3 -1 -5 -1h-1h-3h-1h-8c-115 0 -208 93 -208 208v8v1v3v1c0 2 1 3 1 5v2v0c9 97 86 176 183 187v0v0c8 1 16 1 24 1c115 0 208 -93 208 -208c0 -7 0 -14 -1 -20v0v-3zM399 192c0 105 -86 191 -191 191 -c-3 0 -5 -1 -8 -1c0 -11 2 -21 4 -31l20 6l5 -15l-21 -7c2 -7 4 -14 7 -21c2 -5 5 -11 8 -16l17 12l9 -13l-19 -13c7 -12 16 -23 26 -33l14 15l12 -12l-15 -15c11 -10 22 -18 34 -25l12 18l14 -9l-12 -17c5 -2 10 -5 15 -7c7 -3 14 -5 22 -7l7 20l15 -5l-6 -19 -c10 -2 20 -4 30 -4c0 3 1 5 1 8zM17 192c0 -105 86 -191 191 -191h4c-1 9 -1 17 -3 26l-22 -7l-5 16l23 7c-2 8 -5 16 -8 24c-2 5 -4 9 -6 14l-20 -13l-9 13l21 14c-7 12 -16 24 -26 35l-17 -17l-11 11l17 17c-10 10 -22 18 -34 25l-14 -21l-14 9l14 20c-5 2 -10 5 -15 7 -c-7 3 -15 6 -23 8l-8 -24l-15 5l7 23c-9 2 -18 2 -27 3v-4zM228 2c88 9 158 78 169 166c-11 1 -23 3 -34 5l-9 -27l-15 5l8 25c-14 4 -28 10 -41 17l-15 -23l-13 9l14 21c-13 8 -26 17 -37 28l-19 -19l-11 11l19 19c-10 11 -19 23 -27 36l-21 -14l-9 13l22 15 -c-7 13 -12 27 -16 41l-25 -8l-5 16l26 8c-2 12 -4 23 -5 35c-88 -11 -157 -81 -166 -169c10 -1 21 -2 31 -4l8 23l15 -5l-7 -22c14 -4 28 -9 42 -16l13 19l14 -9l-13 -18c13 -8 25 -17 36 -28l17 17l11 -11l-17 -17c11 -12 20 -24 28 -37l19 13l9 -14l-20 -13 -c7 -14 12 -28 16 -42l23 7l5 -15l-24 -8c2 -10 3 -20 4 -30z" /> - <glyph glyph-name="ion-ios-baseball" unicode="&#xf3de;" horiz-adv-x="416" -d="M208 400c115 0 208 -93 208 -208c0 -8 0 -16 -1 -24v0v0c-12 -104 -100 -184 -207 -184c-115 0 -208 93 -208 208c0 107 80 195 184 207v0v0c8 1 16 1 24 1zM212 1c5 0 11 0 16 1c-1 10 -2 20 -4 30l24 8l-5 15l-23 -7c-4 14 -9 28 -16 42l20 13l-9 14l-19 -13 -c-8 13 -17 25 -28 37l17 17l-11 11l-17 -17c-11 11 -23 20 -36 28l13 18l-14 9l-13 -19c-14 7 -28 12 -42 16l7 22l-15 5l-8 -23c-10 2 -21 3 -31 4c-1 -5 -1 -11 -1 -16c9 -1 18 -1 27 -3l-7 -23l15 -5l8 24c8 -2 16 -5 23 -8c5 -2 10 -5 15 -7l-14 -20l14 -9l14 21 -c12 -7 24 -15 34 -25l-17 -17l11 -11l17 17c10 -11 19 -23 26 -35l-21 -14l9 -13l20 13c2 -5 4 -9 6 -14c3 -8 6 -16 8 -24l-23 -7l5 -16l22 7c2 -8 2 -17 3 -26zM363 173c11 -2 23 -4 34 -5c1 5 1 11 1 16c-10 1 -20 2 -30 4l6 19l-15 5l-7 -20c-8 2 -15 4 -22 7 -c-5 2 -10 5 -15 7l12 17l-14 9l-12 -18c-12 7 -23 15 -34 25l15 15l-12 12l-15 -15c-10 10 -18 21 -25 33l19 13l-9 13l-17 -12c-3 5 -6 11 -8 16c-3 7 -5 14 -7 21l21 7l-5 15l-20 -6c-2 10 -3 20 -4 31c-5 0 -11 0 -16 -1c1 -12 3 -23 5 -35l-26 -8l5 -16l25 8 -c4 -14 9 -28 16 -41l-22 -15l9 -13l21 14c8 -13 17 -25 27 -36l-19 -19l11 -11l19 19c11 -11 24 -20 37 -28l-14 -21l13 -9l15 23c13 -7 27 -13 41 -17l-8 -25l15 -5z" /> - <glyph glyph-name="ion-ios-basketball-outline" unicode="&#xf3df;" horiz-adv-x="416" -d="M208 400c115 0 208 -93 208 -208s-93 -208 -208 -208s-208 93 -208 208s93 208 208 208zM399 192c0 55 -24 105 -62 140c-14 -34 -31 -65 -52 -95c15 -12 31 -21 49 -29c21 -9 43 -14 65 -16v0zM325 343c-32 25 -73 40 -117 40v0c2 -22 6 -44 15 -65 -c10 -25 26 -47 45 -66c2 -1 2 -3 4 -4c20 29 38 60 52 93c0 1 1 1 1 2zM192 382c-51 -4 -96 -29 -128 -65c64 -28 121 -69 169 -119c11 12 21 24 30 37c-40 37 -67 89 -71 147zM233 174c-15 -16 -31 -30 -48 -44c28 -35 45 -79 47 -127c33 4 63 17 88 35 -c-22 50 -51 95 -87 136zM214 178l8 8l-10 10c-46 46 -99 82 -158 108c-18 -25 -31 -55 -35 -88c62 -3 116 -31 155 -74c14 11 27 23 40 36zM18 200c0 -3 -1 -5 -1 -8c0 -45 16 -87 43 -120c36 16 71 36 102 60l-7 7c-19 19 -41 35 -66 45c-22 9 -46 15 -71 16zM71 59 -c35 -36 83 -58 137 -58c3 0 5 1 8 1c-1 25 -6 48 -16 71c-7 17 -17 33 -28 47c-31 -24 -65 -45 -101 -61zM333 48c37 32 61 77 65 128c-46 3 -89 21 -123 48c-10 -13 -20 -26 -31 -38c36 -41 67 -87 89 -138z" /> - <glyph glyph-name="ion-ios-basketball" unicode="&#xf3e0;" horiz-adv-x="416" -d="M208 400c115 0 208 -93 208 -208s-93 -208 -208 -208s-208 93 -208 208s93 208 208 208zM333 48c-22 51 -53 97 -89 138c11 12 21 25 31 38c34 -27 77 -45 123 -48c0 5 1 11 1 16c-22 2 -44 7 -65 16c-18 8 -34 17 -49 29c21 30 38 61 52 95c-4 4 -8 8 -12 11 -c0 -1 -1 -1 -1 -2c-14 -33 -32 -64 -52 -93c-2 1 -2 2 -4 4c-19 19 -35 41 -45 66c-9 21 -13 43 -15 65c-5 0 -11 -1 -16 -1c4 -58 31 -110 71 -147c-9 -13 -19 -25 -30 -37c-48 50 -105 91 -169 119c-4 -4 -7 -9 -10 -13c59 -26 112 -62 158 -108l10 -10l-8 -8 -c-13 -13 -26 -25 -40 -36c-39 43 -93 71 -155 74c-1 -5 -1 -11 -1 -16c25 -1 49 -7 71 -16c25 -10 47 -26 66 -45l7 -7c-31 -24 -66 -44 -102 -60c4 -4 7 -9 11 -13c36 16 70 37 101 61c11 -14 21 -30 28 -47c10 -23 15 -46 16 -71c5 0 11 0 16 1c-2 48 -19 92 -47 127 -c17 14 33 28 48 44c36 -41 65 -86 87 -136c4 3 9 6 13 10z" /> - <glyph glyph-name="ion-ios-bell-outline" unicode="&#xf3e1;" horiz-adv-x="384" -d="M318 222c0 -114 28 -126 66 -158h-384c38 32 66 44 66 158c0 98 53 130 102 138v2c0 12 11 22 24 22s24 -10 24 -22v-2c49 -7 102 -40 102 -138zM43 80h298c-25 25 -40 58 -40 142c0 46 -13 80 -37 101c-23 19 -52 23 -72 23s-49 -4 -72 -23c-25 -21 -37 -55 -37 -101 -c0 -51 -5 -85 -17 -110c-6 -13 -14 -23 -23 -32zM192 0c-27 0 -49 20 -52 43h104c-3 -23 -25 -43 -52 -43z" /> - <glyph glyph-name="ion-ios-bell" unicode="&#xf3e2;" horiz-adv-x="384" -d="M318 222c0 -114 28 -126 66 -158h-384c38 32 66 44 66 158c0 98 53 130 102 138v2c0 12 11 22 24 22s24 -10 24 -22v-2c49 -7 102 -40 102 -138zM192 0c-27 0 -49 20 -52 43h104c-3 -23 -25 -43 -52 -43z" /> - <glyph glyph-name="ion-ios-body-outline" unicode="&#xf3e3;" horiz-adv-x="384" -d="M192 400c-18 0 -32 -14 -32 -32s14 -32 32 -32s32 14 32 32s-14 32 -32 32zM192 416v0c27 0 48 -21 48 -48s-21 -48 -48 -48s-48 21 -48 48s21 48 48 48zM360 304c13 0 24 -11 24 -24s-11 -24 -24 -24h-100c-5 0 -14 -5 -18 -15c-5 -12 -2 -33 1 -51l4 -21v-1v0l32 -172 -c2 -13 -6 -26 -19 -28h-5c-11 0 -22 8 -24 20l-21 120v0s-5 31 -17 31h-2c-12 0 -19 -31 -19 -31v0l-21 -120c-2 -12 -11 -20 -22 -20h-5c-13 2 -21 15 -19 28l32 172v1l4 21c3 18 6 39 1 51c-4 10 -12 15 -18 15h-100c-13 0 -24 11 -24 24s11 24 24 24h336zM24 272 -c-4 0 -8 4 -8 8s4 8 8 8h336c4 0 8 -4 8 -8s-4 -8 -8 -8h-102c-16 0 -26 -15 -30 -24c-5 -13 -6 -32 -1 -61v0v0l3 -19l1 -3l32 -172c0 -3 0 -5 -1 -6s-2 -2 -5 -3h-2c-4 0 -7 2 -8 6l-21 120v0c0 2 -2 10 -5 19c-2 6 -5 11 -8 15c-7 9 -14 11 -20 11h-2 -c-5 0 -13 -2 -20 -11c-3 -4 -6 -9 -8 -15c-4 -9 -6 -17 -6 -18v-1l-21 -120c-1 -4 -3 -6 -7 -6h-2c-3 0 -4 2 -5 3s-2 3 -1 6l32 172v0v1l4 21v0v0c5 29 5 48 0 61c-4 9 -14 24 -32 24z" /> - <glyph glyph-name="ion-ios-body" unicode="&#xf3e4;" horiz-adv-x="384" -d="M144 368c0 32 16 48 48 48s48 -16 48 -48s-16 -48 -48 -48s-48 16 -48 48zM360 304c7 0 12 -2 17 -7s7 -10 7 -17s-2 -12 -7 -17s-10 -7 -17 -7h-98c-8 -2 -15 -6 -18 -14c-4 -9 -3 -27 1 -52l4 -21v-1v0l30 -172c1 -7 0 -13 -4 -18s-8 -9 -15 -10s-13 0 -18 4 -s-9 9 -10 16l-21 120v-1l-2 9c-1 5 -3 11 -6 16s-6 8 -10 8h-2c-8 0 -14 -11 -18 -33v1l-21 -120c-1 -7 -5 -12 -10 -16s-11 -5 -18 -4s-11 5 -15 10s-5 11 -4 18l30 172v0v1l4 21c4 25 5 43 1 52c-3 8 -10 12 -18 14h-98c-7 0 -12 2 -17 7s-7 10 -7 17s2 12 7 17s10 7 17 7 -h336z" /> - <glyph glyph-name="ion-ios-bolt-outline" unicode="&#xf3e5;" horiz-adv-x="226" -d="M131 316l-100 -140h65h19l-3 -19l-17 -89l100 140h-65h-19l3 19zM160 384v0l-30 -160h96l-160 -224l30 160h-96z" /> - <glyph glyph-name="ion-ios-bolt" unicode="&#xf3e6;" horiz-adv-x="226" -d="M160 384v0l-30 -160h96l-160 -224l30 160h-96z" /> - <glyph glyph-name="ion-ios-book-outline" unicode="&#xf3e7;" horiz-adv-x="384" -d="M284 384c55 0 100 -26 100 -79v-1v-4v-261v-17h-6h-11h-5c-17 30 -44 42 -78 42c-40 0 -74 -28 -82 -64h-20c-8 36 -42 64 -82 64c-34 0 -65 -16 -78 -42h-5h-11h-6v9v264v9v1c0 53 45 79 100 79c41 0 78 -14 92 -44c12 30 51 44 92 44zM184 37v254v13v2 -c-1 43 -39 62 -84 62c-44 0 -81 -19 -84 -61v-1v0v-262h1c19 26 48 36 83 36s66 -17 84 -43zM368 300v14v1c-3 42 -40 53 -84 53c-46 0 -84 -20 -84 -64v-1v-266c18 26 49 43 84 43s66 -10 84 -36v256z" /> - <glyph glyph-name="ion-ios-book" unicode="&#xf3e8;" horiz-adv-x="384" -d="M100 384c35 0 67 -10 84 -31v-353h-2c-8 36 -42 64 -82 64c-34 0 -65 -16 -78 -42h-5h-11h-6v9v264v9v1c0 53 45 79 100 79zM284 384c55 0 100 -26 100 -79v-1v-4v-261v-17h-6h-11h-5c-17 30 -44 42 -78 42c-40 0 -74 -28 -82 -64h-2v353c17 21 50 31 84 31z" /> - <glyph glyph-name="ion-ios-bookmarks-outline" unicode="&#xf3e9;" horiz-adv-x="418" -d="M385 384c19 0 33 -13 33 -32v-286c0 -19 -14 -34 -33 -34h-143s-25 -4 -25 -19v-13h-8h-8v13c0 15 -11 19 -25 19h-143c-19 0 -33 15 -33 34v286c0 19 14 32 33 32h150c10 0 20 -5 26 -12v0v0c6 7 16 12 26 12h150zM201 37v309c0 9 -12 22 -25 22h-143 -c-9 0 -16 -7 -16 -16v-286c0 -9 7 -18 16 -18h144c10 0 19 -3 24 -11zM273 368v-100l23 14l9 6l9 -6l23 -14v100h-64zM401 66v286c0 9 -7 16 -16 16h-32v-131l-48 32l-48 -32v131h-15c-13 0 -25 -13 -25 -22v-309c5 9 14 11 24 11h144c9 0 16 9 16 18z" /> - <glyph glyph-name="ion-ios-bookmarks" unicode="&#xf3ea;" horiz-adv-x="418" -d="M296 283l-23 -15v116h64v-116l-23 15l-9 6zM385 384c19 0 33 -13 33 -32v-286c0 -19 -14 -34 -33 -34h-143s-25 -4 -25 -19v-13h-8h-8v13c0 15 -11 19 -25 19h-143c-19 0 -33 15 -33 34v286c0 19 14 32 33 32h150s18 -8 18 -15v-329l8 -6l8 6v329s10 15 18 15h22v-146 -l48 32l48 -32v146h32z" /> - <glyph glyph-name="ion-ios-box-outline" unicode="&#xf3eb;" horiz-adv-x="320" -d="M192 208h-1h-63c-9 0 -16 -7 -16 -16s7 -16 16 -16h64c9 0 16 7 16 16s-7 16 -16 16zM192 224v0c18 0 32 -14 32 -32s-14 -32 -32 -32h-64c-18 0 -32 14 -32 32s14 32 32 32h64zM320 336v-80h-16v-208h-288v208h-16v80h320zM288 64v192h-256v-192h256zM304 272v48h-288 -v-48h288z" /> - <glyph glyph-name="ion-ios-box" unicode="&#xf3ec;" horiz-adv-x="320" -d="M16 48v192h288v-192h-288zM128 208c-9 0 -16 -7 -16 -16s7 -16 16 -16h64c9 0 16 7 16 16s-7 16 -16 16h-64zM0 336h320v-80h-16h-288h-16v80z" /> - <glyph glyph-name="ion-ios-briefcase-outline" unicode="&#xf3ed;" horiz-adv-x="416" -d="M368 320h48v-320h-416v320h48v16h32v-16h48v30v2c0 18 10 32 29 32h99c19 0 32 -14 32 -32v-2v-30h48v16h32v-16zM144 320v0h128v0v30c0 10 -7 18 -17 18h-97c-11 0 -14 -8 -14 -18v-30zM400 16v224h-384v-224h384zM400 256v48h-32v-16h-32v16h-256v-16h-32v16h-32v-48 -h384z" /> - <glyph glyph-name="ion-ios-briefcase" unicode="&#xf3ee;" horiz-adv-x="416" -d="M48 320v16h32v-16h-32zM0 0v240h416v-240h-416zM336 320v16h32v-16h-32zM368 320h48v-64h-416v64h48v-32h32v32h48v30v2c0 18 10 32 29 32h99c19 0 32 -14 32 -32v-2v-30h48v-32h32v32zM272 320v30c0 10 -7 18 -17 18h-97c-11 0 -14 -8 -14 -18v-30v0h128v0z" /> - <glyph glyph-name="ion-ios-browsers-outline" unicode="&#xf3ef;" horiz-adv-x="384" -d="M0 304h304v-304h-304v304zM288 16v272h-272v-272h272zM384 384v-304h-64v16h48v272h-272v-48h-16v64h304z" /> - <glyph glyph-name="ion-ios-browsers" unicode="&#xf3f0;" horiz-adv-x="384" -d="M0 304h304v-304h-304v304zM80 384h304v-304h-64v240h-240v64z" /> - <glyph glyph-name="ion-ios-calculator-outline" unicode="&#xf3f1;" horiz-adv-x="288" -d="M32 288v64h224v-64h-224zM48 336v-32h192v32h-192zM256 384c18 0 32 -14 32 -32v-320c0 -18 -14 -32 -32 -32h-224c-18 0 -32 14 -32 32v320c0 18 14 32 32 32h224zM272 32v320c0 9 -7 16 -16 16h-224c-9 0 -16 -7 -16 -16v-320c0 -9 7 -16 16 -16h224c9 0 16 7 16 16z -M48 208h32h16v-16h-64v64h16v-16v-32zM48 128h32h16v-16h-64v64h16v-16v-32zM48 48h32h16v-16h-64v64h16v-16v-32zM128 208h32h16v-16h-64v64h16v-16v-32zM208 208h32h16v-16h-64v64h16v-16v-32zM128 128h32h16v-16h-64v64h16v-16v-32zM128 48h32h16v-16h-64v64h16v-16v-32z -M208 48h32h16v-16h-64v144h16v-96v-32z" /> - <glyph glyph-name="ion-ios-calculator" unicode="&#xf3f2;" horiz-adv-x="288" -d="M256 384c18 0 32 -14 32 -32v-320c0 -18 -14 -32 -32 -32h-224c-18 0 -32 14 -32 32v320c0 18 14 32 32 32h224zM248 168h-48v-128h48v128zM248 248h-48v-48h48v48zM168 88h-48v-48h48v48zM168 168h-48v-48h48v48zM168 248h-48v-48h48v48zM88 88h-48v-48h48v48zM88 168 -h-48v-48h48v48zM88 248h-48v-48h48v48zM40 296h208v48h-208v-48z" /> - <glyph glyph-name="ion-ios-calendar-outline" unicode="&#xf3f3;" horiz-adv-x="384" -d="M16 336v-64h352v64zM288 352h96v-352h-384v352h96v32h16v-32h160v32h16v-32zM368 16v240h-352v-240h352zM368 272v64h-80v-32h-16v32h-160v-32h-16v32h-80v-64h352z" /> - <glyph glyph-name="ion-ios-calendar" unicode="&#xf3f4;" horiz-adv-x="384" -d="M0 0v256h384v-256h-384zM384 352v-80h-384v80h96v-48h16v48h160v-48h16v48h96zM96 352v32h16v-32h-16zM272 352v32h16v-32h-16z" /> - <glyph glyph-name="ion-ios-camera-outline" unicode="&#xf3f5;" horiz-adv-x="384" -d="M354 288c18 0 30 -13 30 -31v-176c0 -18 -12 -33 -30 -33h-320c-18 0 -34 15 -34 33v176c0 18 16 31 34 31h13v16h34v-16h13c32 36 43 48 55 48h88c12 0 23 -12 55 -48h62zM368 81v176c0 9 -5 15 -14 15h-62h-7l-5 3c-3 4 -7 8 -10 11c-12 13 -20 24 -26 30 -c-5 5 -7 4 -7 4h-88s-2 0 -7 -4c-6 -5 -14 -14 -25 -27c-3 -4 -7 -10 -11 -14l-5 -3h-7h-60c-9 0 -18 -7 -18 -15v-176c0 -9 9 -17 18 -17h320c8 0 14 8 14 17zM192 258c47 0 86 -38 86 -85s-39 -85 -86 -85s-86 38 -86 85s39 85 86 85zM192 104c38 0 70 31 70 69 -s-32 69 -70 69s-70 -31 -70 -69s32 -69 70 -69zM288 239v17h17v-17h-17zM160 173c0 21 11 32 32 32s32 -11 32 -32s-11 -32 -32 -32s-32 11 -32 32z" /> - <glyph glyph-name="ion-ios-camera" unicode="&#xf3f6;" horiz-adv-x="384" -d="M354 288c18 0 30 -13 30 -31v-176c0 -18 -12 -33 -30 -33h-320c-18 0 -34 15 -34 33v176c0 18 16 31 34 31h13v16h34v-16h13c32 36 43 48 55 48h88c12 0 23 -12 55 -48h62zM192 88c47 0 86 38 86 85s-39 85 -86 85s-86 -38 -86 -85s39 -85 86 -85zM305 239v17h-17v-17h17 -zM192 242c38 0 70 -31 70 -69s-32 -69 -70 -69s-70 31 -70 69s32 69 70 69zM192 141c18 0 32 14 32 32s-14 32 -32 32s-32 -14 -32 -32s14 -32 32 -32z" /> - <glyph glyph-name="ion-ios-cart-outline" unicode="&#xf3f7;" horiz-adv-x="384" -d="M96 48c13 0 24 -11 24 -24s-11 -24 -24 -24s-24 11 -24 24s11 24 24 24zM96 16c4 0 8 4 8 8s-4 8 -8 8s-8 -4 -8 -8s4 -8 8 -8zM320 48c13 0 24 -11 24 -24s-11 -24 -24 -24s-24 11 -24 24s11 24 24 24zM320 16c4 0 8 4 8 8s-4 8 -8 8s-8 -4 -8 -8s4 -8 8 -8zM384 320 -l-16 -128l-271 -48l5 -30c7 -34 21 -34 26 -34h240v-16h-240c-11 0 -21 5 -28 14c-6 8 -11 19 -13 33l-43 234v0c-2 8 -3 12 -7 16c-6 5 -18 7 -37 7v16c23 0 38 -4 47 -11c7 -6 10 -14 12 -21zM355 206l11 99l-304 31l32 -176z" /> - <glyph glyph-name="ion-ios-cart" unicode="&#xf3f8;" horiz-adv-x="384" -d="M96 48c13 0 24 -11 24 -24s-11 -24 -24 -24s-24 11 -24 24s11 24 24 24zM320 48c13 0 24 -11 24 -24s-11 -24 -24 -24s-24 11 -24 24s11 24 24 24zM384 320l-16 -128l-271 -48l5 -30c7 -34 21 -34 26 -34h240v-16h-240c-11 0 -21 5 -28 14c-6 8 -11 19 -13 33l-43 234v0 -c-2 8 -3 12 -7 16c-6 5 -18 7 -37 7v16c23 0 38 -4 47 -11c7 -6 10 -14 12 -21z" /> - <glyph glyph-name="ion-ios-chatboxes-outline" unicode="&#xf3f9;" horiz-adv-x="416" -d="M16 384v-192h96v-16h-112v224h288v-112h-16v96h-256zM128 272h288v-224h-48v-64h-13l-64 64h-163v224zM400 64v192h-256v-192h153l55 -55v55h48z" /> - <glyph glyph-name="ion-ios-chatboxes" unicode="&#xf3fa;" horiz-adv-x="416" -d="M288 400v-112h-176v-112h-112v224h288zM128 272h288v-224h-48v-64h-13l-64 64h-163v224z" /> - <glyph glyph-name="ion-ios-chatbubble-outline" unicode="&#xf3fb;" horiz-adv-x="384" -d="M192 336c-97 0 -176 -62 -176 -138c0 -26 10 -51 27 -73c0 -1 0 -2 1 -3s2 -1 2 -2c4 -6 6 -13 6 -20c0 -3 1 -3 -13 -47l39 17v0c2 1 10 4 11 4h1v0c5 2 10 3 16 3c5 0 9 -1 14 -2l1 -1h2c19 -6 41 -10 70 -10c48 0 92 15 125 40c32 25 50 58 50 94 -c0 76 -79 138 -176 138zM192 352v0c106 0 192 -69 192 -154s-85 -150 -191 -150c-27 0 -52 3 -75 11h-2v0c-3 1 -6 2 -10 2s-9 -1 -12 -2h1h-1c-1 0 -9 -4 -10 -4l-50 -22l-2 -1h-3h-3c-6 1 -8 6 -7 10v0s17 57 17 58c0 4 -1 8 -3 11v0v0v0l1 -1l-4 4c-19 24 -30 53 -30 84 -c0 85 86 154 192 154z" /> - <glyph glyph-name="ion-ios-chatbubble" unicode="&#xf3fc;" horiz-adv-x="384" -d="M192 352v0c106 0 192 -69 192 -154s-85 -150 -191 -150c-27 0 -52 3 -75 11h-2v0c-3 1 -6 2 -10 2s-9 -1 -12 -2h1h-1c-1 0 -9 -4 -10 -4l-50 -22l-2 -1h-3h-3c-6 1 -8 6 -7 10v0s17 57 17 58c0 4 -1 8 -3 11v0v0v0l1 -1l-4 4c-19 24 -30 53 -30 84c0 85 86 154 192 154z -" /> - <glyph glyph-name="ion-ios-checkmark-empty" unicode="&#xf3fd;" horiz-adv-x="207" -d="M74 118c-2 -2 -6 -4 -9 -4s-7 2 -9 4l-56 56l18 18l47 -47l125 126l17 -18z" /> - <glyph glyph-name="ion-ios-checkmark-outline" unicode="&#xf3fe;" horiz-adv-x="416" -d="M292 271l18 -18l-134 -135c-2 -2 -6 -4 -9 -4s-7 2 -9 4l-56 56l18 18l47 -47zM208 400c115 0 208 -93 208 -208s-93 -208 -208 -208s-208 93 -208 208s93 208 208 208zM208 1c105 0 191 86 191 191s-86 191 -191 191s-191 -86 -191 -191s86 -191 191 -191z" /> - <glyph glyph-name="ion-ios-checkmark" unicode="&#xf3ff;" horiz-adv-x="416" -d="M208 400c115 0 208 -93 208 -208s-93 -208 -208 -208s-208 93 -208 208s93 208 208 208zM176 118l134 135l-18 18l-125 -126l-47 47l-18 -18l56 -56c2 -2 6 -4 9 -4s7 2 9 4z" /> - <glyph glyph-name="ion-ios-circle-filled" unicode="&#xf400;" horiz-adv-x="416" -d="M208 400c115 0 208 -93 208 -208s-93 -208 -208 -208s-208 93 -208 208s93 208 208 208zM208 1c105 0 191 86 191 191s-86 191 -191 191s-191 -86 -191 -191s86 -191 191 -191zM208 352c88 0 160 -72 160 -160s-72 -160 -160 -160s-160 72 -160 160s72 160 160 160z" /> - <glyph glyph-name="ion-ios-circle-outline" unicode="&#xf401;" horiz-adv-x="416" -d="M208 400c115 0 208 -93 208 -208s-93 -208 -208 -208s-208 93 -208 208s93 208 208 208zM208 1c105 0 191 86 191 191s-86 191 -191 191s-191 -86 -191 -191s86 -191 191 -191z" /> - <glyph glyph-name="ion-ios-clock-outline" unicode="&#xf402;" horiz-adv-x="416" -d="M208 400c115 0 208 -93 208 -208s-93 -208 -208 -208s-208 93 -208 208s93 208 208 208zM208 1c105 0 191 86 191 191s-86 191 -191 191s-191 -86 -191 -191s86 -191 191 -191zM208 192v128h17v-145h-113v17h96z" /> - <glyph glyph-name="ion-ios-clock" unicode="&#xf403;" horiz-adv-x="416" -d="M208 400c115 0 208 -93 208 -208s-93 -208 -208 -208s-208 93 -208 208s93 208 208 208zM225 175v145h-17v-128h-96v-17h113z" /> - <glyph glyph-name="ion-ios-close-empty" unicode="&#xf404;" horiz-adv-x="192" -d="M180 288l12 -12l-84 -84l84 -84l-12 -12l-84 84l-84 -84l-12 12l84 84l-84 84l12 12l84 -84z" /> - <glyph glyph-name="ion-ios-close-outline" unicode="&#xf405;" horiz-adv-x="416" -d="M355 339c81 -81 81 -213 0 -294s-213 -81 -294 0s-81 213 0 294s213 81 294 0zM343 57c74 74 74 196 0 270s-196 74 -270 0s-74 -196 0 -270s196 -74 270 0zM292 288l12 -12l-84 -84l84 -84l-12 -12l-84 84l-84 -84l-12 12l84 84l-84 84l12 12l84 -84z" /> - <glyph glyph-name="ion-ios-close" unicode="&#xf406;" horiz-adv-x="416" -d="M355 339c81 -81 81 -213 0 -294s-213 -81 -294 0s-81 213 0 294s213 81 294 0zM304 108l-84 84l84 84l-12 12l-84 -84l-84 84l-12 -12l84 -84l-84 -84l12 -12l84 84l84 -84z" /> - <glyph glyph-name="ion-ios-cloud-download-outline" unicode="&#xf407;" -d="M161 67l55 -54v242h16v-242l55 54l12 -12l-75 -73l-74 73zM367 284c45 0 81 -37 81 -82s-37 -82 -82 -82v0h-101v16h97h4c37 0 66 30 66 66s-29 67 -66 67h-15v20c0 55 -46 97 -101 97c-38 0 -73 -22 -90 -56l-6 -14l-14 7c-6 3 -13 5 -20 5c-22 0 -40 -18 -44 -39l-1 -9 -l-9 -3c-30 -10 -50 -36 -50 -67c0 -40 33 -74 74 -74h91v-16h-91c-50 0 -90 40 -90 89c0 39 26 71 61 83c5 28 29 51 59 51c10 0 18 -2 26 -6c19 39 59 65 105 65c64 0 117 -51 117 -115c0 -1 -1 -2 -1 -3z" /> - <glyph glyph-name="ion-ios-cloud-download" unicode="&#xf408;" -d="M216 13v107h16v-107l55 54l12 -12l-75 -73l-74 73l11 12zM367 284c45 0 81 -37 81 -82s-37 -82 -82 -82h-134v135h-16v-135h-35h-21h-70c-50 0 -90 40 -90 89c0 39 26 71 61 83c5 28 29 51 59 51c10 0 18 -2 26 -6c19 39 59 65 105 65c64 0 117 -51 117 -115 -c0 -1 -1 -2 -1 -3z" /> - <glyph glyph-name="ion-ios-cloud-outline" unicode="&#xf409;" -d="M367 215c45 0 81 -37 81 -83c0 -45 -37 -84 -82 -84h-276c-50 0 -90 42 -90 92c0 40 26 71 61 83c5 28 29 52 59 52c10 0 18 -2 26 -6c19 39 59 67 105 67c64 0 117 -53 117 -117c0 -1 -1 -3 -1 -4zM366 64c37 0 66 32 66 69s-29 67 -66 67h-15v21c0 56 -46 99 -101 99 -c-38 0 -73 -23 -90 -58l-6 -14l-14 7c-6 3 -13 5 -20 5c-22 0 -40 -17 -44 -39l-1 -9l-9 -3c-30 -10 -50 -37 -50 -69c0 -41 33 -76 74 -76h272h4z" /> - <glyph glyph-name="ion-ios-cloud-upload-outline" unicode="&#xf40a;" -d="M161 188l-11 11l74 75l75 -75l-12 -11l-55 54v-242h-16v242zM367 264c45 0 81 -39 81 -85s-37 -83 -82 -83v0h-101v16h97h4c37 0 66 30 66 67s-29 70 -66 70l-15 1v20c0 56 -46 99 -101 99c-38 0 -73 -23 -90 -58l-6 -13l-14 6c-6 3 -13 5 -20 5c-22 0 -40 -17 -44 -39 -l-1 -9l-9 -3c-30 -10 -50 -39 -50 -71c0 -41 33 -75 74 -75h91v-16h-91c-50 0 -90 40 -90 90c0 40 26 74 61 86c5 28 29 52 59 52c10 0 18 -2 26 -6c19 39 59 66 105 66c64 0 117 -52 117 -116c0 -1 -1 -3 -1 -4z" /> - <glyph glyph-name="ion-ios-cloud-upload" unicode="&#xf40b;" -d="M216 0v96h16v-96h-16zM367 264c45 0 81 -39 81 -85s-37 -83 -82 -83h-134v146l55 -54l12 11l-75 75l-74 -75l11 -11l55 54v-146h-35h-31h-60c-50 0 -90 40 -90 90c0 40 26 74 61 86c5 28 29 52 59 52c10 0 18 -2 26 -6c19 39 59 66 105 66c64 0 117 -52 117 -116 -c0 -1 -1 -3 -1 -4z" /> - <glyph glyph-name="ion-ios-cloud" unicode="&#xf40c;" -d="M367 215c45 0 81 -37 81 -83c0 -45 -37 -84 -82 -84h-276c-50 0 -90 42 -90 92c0 40 26 71 61 83c5 28 29 52 59 52c10 0 18 -2 26 -6c19 39 59 67 105 67c64 0 117 -53 117 -117c0 -1 -1 -3 -1 -4z" /> - <glyph glyph-name="ion-ios-cloudy-night-outline" unicode="&#xf40d;" horiz-adv-x="384" -d="M125 224c-34 0 -63 -28 -63 -62v-12s1 -10 1 -10c-5 0 -12 -1 -14 -1c-19 -3 -33 -18 -33 -37c0 -10 3 -19 10 -26s16 -11 26 -11h157c27 0 49 22 49 49s-22 50 -49 50c-2 0 -4 -1 -6 -1l-14 -2l-3 14c-3 14 -11 26 -22 35s-25 14 -39 14zM125 240v0c37 0 68 -26 76 -61 -h8c36 0 65 -29 65 -65s-29 -66 -65 -66h-157c-28 0 -52 24 -52 53c0 27 21 51 47 53v8c0 43 35 78 78 78zM361 142c8 0 15 2 23 4c-4 -7 -9 -14 -14 -20c-21 -24 -50 -41 -84 -45c4 6 6 12 8 19c19 4 36 13 50 25c-18 1 -35 6 -50 13c-23 11 -42 29 -56 51 -c-14 21 -22 48 -22 75c0 15 2 30 7 44c-24 -12 -43 -33 -53 -59c-5 2 -12 4 -18 5c14 36 45 65 82 77c8 2 16 4 24 5c-5 -6 -9 -13 -12 -20c-8 -16 -12 -34 -12 -52c0 -32 12 -63 35 -86s54 -36 86 -36h6z" /> - <glyph glyph-name="ion-ios-cloudy-night" unicode="&#xf40e;" horiz-adv-x="384" -d="M361 142c8 0 15 2 23 4c-4 -7 -9 -15 -14 -21c-21 -24 -50 -40 -84 -44h-3c4 10 7 21 7 32c0 22 -9 43 -24 58c-14 15 -33 23 -53 24c-6 16 -16 29 -29 40c-10 8 -20 13 -32 17v2c14 36 45 65 82 77c8 2 16 4 24 5c-5 -6 -9 -13 -12 -20c-8 -16 -12 -34 -12 -52 -c0 -32 12 -63 35 -86s54 -36 86 -36h6zM125 239v0c37 0 68 -26 76 -61h8c36 0 65 -29 65 -65s-29 -66 -65 -66h-157c-28 0 -52 24 -52 53c0 27 21 51 47 53v7c0 43 35 79 78 79z" /> - <glyph glyph-name="ion-ios-cloudy-outline" unicode="&#xf40f;" horiz-adv-x="274" -d="M125 272c-34 0 -63 -28 -63 -62v-12s1 -10 1 -10c-6 0 -12 -1 -14 -1c-19 -3 -33 -18 -33 -37c0 -10 3 -19 10 -26s16 -11 26 -11h157c27 0 49 22 49 49s-22 50 -49 50c-2 0 -4 -1 -6 -1l-14 -2l-3 14c-3 14 -11 26 -22 35s-25 14 -39 14zM125 288v0c37 0 68 -26 76 -61 -h8c36 0 65 -29 65 -65s-29 -66 -65 -66h-157c-28 0 -52 24 -52 53c0 27 21 51 47 53v8c0 43 35 78 78 78z" /> - <glyph glyph-name="ion-ios-cloudy" unicode="&#xf410;" horiz-adv-x="274" -d="M125 288v0c37 0 68 -26 76 -61h8c36 0 65 -29 65 -65s-29 -66 -65 -66h-157c-28 0 -52 24 -52 53c0 27 21 51 47 53v8c0 43 35 78 78 78z" /> - <glyph glyph-name="ion-ios-cog-outline" unicode="&#xf411;" horiz-adv-x="384" -d="M384 175l-33 -8l-3 -14l27 -20l-12 -30l-34 5l-8 -11l17 -29l-23 -23l-29 17l-10 -7l5 -34l-29 -12l-21 27l-14 -3l-8 -33h-32l-9 33l-13 3l-21 -28l-29 12l4 34l-11 8l-30 -19l-23 23l18 31l-7 11l-35 -5l-12 29l28 22l-2 12l-35 9v32l35 9l2 12l-29 22l12 30l36 -5 -l7 10l-19 32l22 22l32 -19l11 8l-4 35l29 13l22 -29l12 2l9 35h32l9 -35l12 -2l22 28l29 -12l-5 -35l11 -8l30 18l22 -23l-17 -30l7 -10l35 5l12 -30l-28 -21l3 -13l33 -9v-32zM356 127l-26 20l6 33l32 8v7l-32 8l-6 33l26 19l-3 7l-32 -5l-19 27l17 28l-5 6l-28 -17l-28 18 -l5 34l-6 2l-20 -26l-32 6l-8 33h-7l-9 -33l-32 -6l-20 27l-7 -3l5 -34l-28 -18l-9 6l-21 12l-5 -5l18 -30l-18 -27l-33 5l-3 -7l27 -20l-6 -32l-33 -8v-7l33 -9l6 -32l-27 -20l3 -6l33 4l18 -27l-17 -29l5 -6l29 18l28 -18l-5 -33l7 -3l19 27l33 -7l8 -31h8l7 31l33 7 -l20 -26l7 3l-5 32l26 18l28 -16l5 5l-16 27l19 28l32 -4zM192 320c71 0 128 -57 128 -128s-57 -128 -128 -128s-128 57 -128 128s57 128 128 128zM80 192c0 -7 1 -15 2 -22l104 28l28 104c-7 1 -15 2 -22 2c-30 0 -58 -12 -79 -33s-33 -49 -33 -79zM192 80c27 0 53 10 73 27 -l-75 75l-104 -28c6 -15 15 -29 27 -41c21 -21 49 -33 79 -33zM276 118c18 20 28 47 28 74c0 30 -12 58 -33 79c-12 12 -26 22 -42 27l-28 -105z" /> - <glyph glyph-name="ion-ios-cog" unicode="&#xf412;" horiz-adv-x="384" -d="M229 298c16 -5 30 -15 42 -27c21 -21 33 -49 33 -79c0 -27 -10 -54 -28 -74l-75 75zM214 302l-28 -104l-104 -28c-1 7 -2 15 -2 22c0 30 12 58 33 79s49 33 79 33c7 0 15 -1 22 -2zM86 154l104 28l75 -75c-20 -17 -46 -27 -73 -27c-30 0 -58 12 -79 33 -c-12 12 -21 26 -27 41zM384 175l-33 -8l-3 -14l27 -20l-12 -30l-34 5l-8 -11l17 -29l-23 -23l-29 17l-10 -7l5 -34l-29 -12l-21 27l-14 -3l-8 -33h-32l-9 33l-13 3l-21 -28l-29 12l4 34l-11 8l-30 -19l-23 23l18 31l-7 11l-35 -5l-12 29l28 22l-2 12l-35 9v32l35 9l2 12 -l-29 22l12 30l36 -5l7 10l-19 32l22 22l32 -19l11 8l-4 35l29 13l22 -29l12 2l9 35h32l9 -35l12 -2l22 28l29 -12l-5 -35l11 -8l30 18l22 -23l-17 -30l7 -10l35 5l12 -30l-28 -21l3 -13l33 -9v-32zM192 64c71 0 128 57 128 128s-57 128 -128 128s-128 -57 -128 -128 -s57 -128 128 -128z" /> - <glyph glyph-name="ion-ios-color-filter-outline" unicode="&#xf413;" horiz-adv-x="384" -d="M302 236c47 -13 82 -57 82 -108c0 -62 -50 -112 -112 -112c-31 0 -60 13 -80 34c-20 -21 -49 -34 -80 -34c-62 0 -112 50 -112 112c0 51 35 95 82 108c-1 7 -2 13 -2 20c0 62 50 112 112 112s112 -50 112 -112c0 -7 -1 -13 -2 -20zM96 256c0 -6 0 -12 1 -17 -c5 1 10 1 15 1c31 0 60 -13 80 -34c20 21 49 34 80 34c5 0 10 0 15 -1c1 5 1 11 1 17c0 53 -43 96 -96 96s-96 -43 -96 -96zM208 128c0 6 0 12 -1 17c-5 -1 -10 -1 -15 -1s-10 0 -15 1c-1 -5 -1 -11 -1 -17c0 -20 6 -38 16 -53c10 15 16 33 16 53zM192 160c3 0 7 1 10 1 -c-3 7 -6 14 -10 20c-4 -6 -7 -13 -10 -20c3 0 7 -1 10 -1zM166 164c4 11 9 21 16 30c-18 18 -43 30 -70 30c-3 0 -7 -1 -10 -1c10 -29 34 -51 64 -59zM202 194c7 -9 12 -19 16 -30c30 8 54 30 64 59c-3 0 -7 1 -10 1c-27 0 -52 -12 -70 -30zM112 32c27 0 52 12 70 30 -c-14 19 -22 41 -22 66c0 7 1 13 2 20c-36 10 -64 37 -76 72c-40 -11 -70 -48 -70 -92c0 -53 43 -96 96 -96zM272 32c53 0 96 43 96 96c0 44 -30 81 -70 92c-12 -35 -40 -62 -76 -72c1 -7 2 -13 2 -20c0 -25 -8 -47 -22 -66c18 -18 43 -30 70 -30z" /> - <glyph glyph-name="ion-ios-color-filter" unicode="&#xf414;" horiz-adv-x="384" -d="M302 236c47 -13 82 -57 82 -108c0 -62 -50 -112 -112 -112c-31 0 -60 13 -80 34c-20 -21 -49 -34 -80 -34c-62 0 -112 50 -112 112c0 51 35 95 82 108c-1 7 -2 13 -2 20c0 62 50 112 112 112s112 -50 112 -112c0 -7 -1 -13 -2 -20zM192 53l1 -2c3 3 6 7 9 11 -c14 19 22 41 22 66c0 7 -1 13 -2 20c36 10 64 37 76 72c2 5 3 10 4 15c-1 0 -2 1 -3 1v1c-4 1 -8 1 -12 2c-5 1 -10 1 -15 1c-31 0 -60 -13 -80 -34c-20 21 -49 34 -80 34c-5 0 -10 0 -15 -1c-4 -1 -8 -1 -12 -2v-1c-1 0 -2 -1 -3 -1c1 -5 2 -10 4 -15c12 -35 40 -62 76 -72 -c-1 -7 -2 -13 -2 -20c0 -25 8 -47 22 -66c3 -4 6 -8 9 -11zM207 145c1 -5 1 -11 1 -17c0 -20 -6 -38 -16 -53c-10 15 -16 33 -16 53c0 6 0 12 1 17c5 -1 10 -1 15 -1s10 0 15 1zM282 223c-10 -29 -34 -51 -64 -59c-4 11 -9 21 -16 30c18 18 43 30 70 30c3 0 7 -1 10 -1z -M202 161c-3 0 -7 -1 -10 -1s-7 1 -10 1c3 7 6 14 10 20c4 -6 7 -13 10 -20zM112 224c27 0 52 -12 70 -30c-7 -9 -12 -19 -16 -30c-30 8 -54 30 -64 59c3 0 7 1 10 1z" /> - <glyph glyph-name="ion-ios-color-wand-outline" unicode="&#xf415;" horiz-adv-x="384" -d="M128 298l256 -256l-34 -34l-256 256zM149 232l201 -201l11 11l-201 202zM120 344v40h16v-40h-16zM120 140v40h16v-40h-16zM216 256v16h40v-16h-40zM0 256v16h40v-16h-40zM47 354l29 -29l-12 -11l-28 28zM76 198l-29 -28l-11 11l28 28zM220 342l-28 -28l-12 11l29 29z" /> - <glyph glyph-name="ion-ios-color-wand" unicode="&#xf416;" horiz-adv-x="396" -d="M140 289l256 -257l-34 -34l-256 257zM124 322v64h32v-64h-32zM124 118v64h32v-64h-32zM216 238v32h64v-32h-64zM246 336l-45 -45l-23 22l45 46zM34 336l23 23l45 -46l-23 -22zM34 169l45 45l23 -22l-45 -46zM0 238v32h64v-32h-64z" /> - <glyph glyph-name="ion-ios-compose-outline" unicode="&#xf417;" horiz-adv-x="384" -d="M304 32v208l16 16v-240h-320v304h256l-16 -16h-224v-272h288zM174 164l171 171l11 -11l-180 -180h-32v32l180 180l11 -11l-171 -171zM380 368c2 -3 4 -6 4 -10s-2 -7 -4 -10l-12 -12l-21 21l-11 11v0l12 12c3 2 6 4 10 4s7 -2 10 -4z" /> - <glyph glyph-name="ion-ios-compose" unicode="&#xf418;" horiz-adv-x="384" -d="M192 128l128 128v-240h-320v304h256l-128 -128v-64h64zM324 356l32 -32l-180 -180h-32v32zM380 368c2 -3 4 -6 4 -10s-2 -7 -4 -10l-12 -12l-21 21l-11 11v0l12 12c3 2 6 4 10 4s7 -2 10 -4z" /> - <glyph glyph-name="ion-ios-contact-outline" unicode="&#xf419;" horiz-adv-x="416" -d="M208 400c115 0 208 -93 208 -208s-93 -208 -208 -208s-208 93 -208 208s93 208 208 208zM208 383c-105 0 -191 -86 -191 -191c0 -47 17 -89 45 -122c18 8 62 24 90 32c2 1 3 0 3 10c0 11 -1 18 -4 24c-4 8 -7 20 -9 31c-4 5 -10 15 -14 33c-3 16 -1 22 1 28v2 -c1 4 0 23 -3 38c-2 10 1 34 15 52c9 12 27 26 58 28h18c32 -2 49 -16 58 -28c14 -18 17 -42 15 -52c-3 -15 -4 -34 -3 -38c0 0 1 -1 1 -2c2 -6 3 -12 0 -28c-4 -18 -10 -27 -14 -32c-2 -11 -5 -24 -9 -32c-3 -7 -6 -15 -6 -23c0 -10 0 -10 2 -11c27 -8 73 -24 93 -32 -c28 33 45 76 45 122c0 105 -86 191 -191 191z" /> - <glyph glyph-name="ion-ios-contact" unicode="&#xf41a;" horiz-adv-x="416" -d="M208 400c115 0 208 -93 208 -208s-93 -208 -208 -208s-208 93 -208 208s93 208 208 208zM208 1c59 0 111 27 146 69c-20 8 -66 24 -93 32c-2 1 -3 1 -3 11c0 8 4 16 7 23c4 8 7 21 9 32c4 5 10 14 14 32c3 16 2 22 0 28c0 0 -1 1 -1 2c-1 4 0 23 3 38c2 10 -1 34 -15 52 -c-9 12 -26 26 -58 28h-18c-31 -2 -49 -16 -58 -28c-14 -18 -17 -42 -15 -52c3 -15 4 -34 3 -38v-2c-2 -6 -4 -12 -1 -28c4 -18 10 -28 14 -33c2 -11 5 -23 9 -31c3 -6 4 -13 4 -24c0 -10 -1 -9 -3 -10c-28 -8 -72 -24 -90 -32c35 -42 87 -69 146 -69z" /> - <glyph glyph-name="ion-ios-copy-outline" unicode="&#xf41b;" horiz-adv-x="288" -d="M192 352v-64h64v-16h-80v80h16zM213 384l75 -75v-261h-48v-48h-240v336h48v48h165zM224 16v32h-176v272h-32v-304h208zM272 64v238l-65 66h-143v-304h208z" /> - <glyph glyph-name="ion-ios-copy" unicode="&#xf41c;" horiz-adv-x="288" -d="M32 32h16h192v-32h-240v336h32v-288v-16zM213 384l75 -75v-261h-48h-192v288v48h165zM256 272v16h-64v64h-16v-80h80z" /> - <glyph glyph-name="ion-ios-crop-strong" unicode="&#xf41d;" horiz-adv-x="384" -d="M64 336v48h32v-48h-32zM96 96h176v-32h-208v208h32v-176zM336 64v32h48v-32h-48zM0 320h320v-320h-32v288h-288v32z" /> - <glyph glyph-name="ion-ios-crop" unicode="&#xf41e;" horiz-adv-x="384" -d="M64 336v48h16v-48h-16zM80 80h208v-16h-224v224h16v-208zM336 64v16h48v-16h-48zM0 320h320v-320h-16v304h-304v16z" /> - <glyph glyph-name="ion-ios-download-outline" unicode="&#xf41f;" horiz-adv-x="320" -d="M192 304h128v-304h-320v304h128v-16h-112v-272h288v272h-112v16zM97 196l55 -55v243h16v-243l55 55l11 -12l-74 -74l-74 74z" /> - <glyph glyph-name="ion-ios-download" unicode="&#xf420;" horiz-adv-x="320" -d="M168 304h152v-304h-320v304h152v-163l-55 55l-11 -12l74 -74l74 74l-11 12l-55 -55v163zM152 304v80h16v-80h-16z" /> - <glyph glyph-name="ion-ios-drag" unicode="&#xf421;" horiz-adv-x="352" -d="M0 128v16h352v-16h-352zM0 184v16h352v-16h-352zM0 240v16h352v-16h-352z" /> - <glyph glyph-name="ion-ios-email-outline" unicode="&#xf422;" horiz-adv-x="384" -d="M0 320h384v-256h-384v256zM192 180l163 124h-326zM16 80h352v214l-115 -88l68 -77l-2 -2l-79 70l-48 -37l-48 37l-79 -70l-2 2l68 77l-115 88v-214z" /> - <glyph glyph-name="ion-ios-email" unicode="&#xf423;" horiz-adv-x="384" -d="M384 64h-384v242l131 -100l-68 -77l2 -2l79 70l48 -37l48 37l79 -70l2 2l-68 77l131 100v-242zM376 320l-184 -140l-184 140h368z" /> - <glyph glyph-name="ion-ios-eye-outline" unicode="&#xf424;" horiz-adv-x="384" -d="M383 192l1 -1l-6 -6c-21 -21 -47 -48 -78 -69c-36 -24 -72 -36 -108 -36c-83 0 -130 49 -185 105l-7 7l1 1c39 40 67 64 94 81c32 20 63 30 97 30c83 0 146 -60 191 -112zM192 288c-62 0 -111 -36 -170 -96c24 -24 48 -50 76 -68c30 -20 60 -28 94 -28 -c75 0 133 56 171 95c-26 29 -50 50 -74 66c-32 21 -64 31 -97 31zM192 112c-44 0 -80 36 -80 80s36 80 80 80s80 -36 80 -80s-36 -80 -80 -80zM192 256c-35 0 -64 -29 -64 -64s29 -64 64 -64s64 29 64 64s-29 64 -64 64zM224 192h16v0c0 -26 -22 -48 -48 -48s-48 21 -48 48 -s22 48 48 48v-16c-16 0 -32 -13 -32 -31s15 -33 32 -33s32 14 32 32v0z" /> - <glyph glyph-name="ion-ios-eye" unicode="&#xf425;" horiz-adv-x="384" -d="M383 192l1 -1l-6 -6c-21 -21 -47 -48 -78 -69c-36 -24 -72 -36 -108 -36c-83 0 -130 49 -185 105l-7 7l1 1c39 40 67 64 94 81c32 20 63 30 97 30c83 0 146 -60 191 -112zM192 112c44 0 80 36 80 80s-36 80 -80 80s-80 -36 -80 -80s36 -80 80 -80zM186 221 -c0 -19 16 -35 35 -35c7 0 14 2 19 6v0c0 -27 -22 -48 -48 -48s-48 21 -48 48s22 48 48 48c-4 -5 -6 -12 -6 -19z" /> - <glyph glyph-name="ion-ios-fastforward-outline" unicode="&#xf426;" -d="M16 293v-202l184 101zM240 292v0v-78v-27v-95l176 100zM224 320v0l224 -128l-224 -128v123l-224 -123v256l224 -123v123z" /> - <glyph glyph-name="ion-ios-fastforward" unicode="&#xf427;" -d="M224 320v0l224 -128l-224 -128v123l-224 -123v256l224 -123v123z" /> - <glyph glyph-name="ion-ios-filing-outline" unicode="&#xf428;" horiz-adv-x="352" -d="M288 320l64 -96v-160h-176h-176v160l64 96h224zM333 224l-45 68v-68h45zM80 304v-80h48c0 -26 22 -48 48 -48s48 22 48 48h48v80h-192zM64 292l-45 -68h45v68zM336 80v128h-98c-7 -28 -32 -48 -62 -48s-55 20 -62 48h-98v-128h160h160z" /> - <glyph glyph-name="ion-ios-filing" unicode="&#xf429;" horiz-adv-x="352" -d="M176 160c30 0 55 20 62 48h114v-144h-176h-176v144h114c7 -28 32 -48 62 -48zM64 224h-7h-57l64 96v0v-80h16v80h192v-80h16v80v0l64 -96h-56h-8h-16h-8h-40c0 -26 -22 -48 -48 -48s-48 22 -48 48h-39h-9h-16z" /> - <glyph glyph-name="ion-ios-film-outline" unicode="&#xf42a;" horiz-adv-x="400" -d="M0 360h400v-336h-400v336zM72 40v48h-56v-48h56zM72 104v48h-56v-48h56zM72 168v48h-56v-48h56zM72 232v48h-56v-48h56zM72 296v48h-56v-48h56zM312 40v144h-224v-144h224zM312 200v144h-224v-144h224zM384 40v48h-56v-48h56zM384 104v48h-56v-48h56zM384 168v48h-56v-48 -h56zM384 232v48h-56v-48h56zM384 296v48h-56v-48h56z" /> - <glyph glyph-name="ion-ios-film" unicode="&#xf42b;" horiz-adv-x="400" -d="M0 360h400v-336h-400v336zM72 40v48h-56v-48h56zM72 104v48h-56v-48h56zM72 168v48h-56v-48h56zM72 232v48h-56v-48h56zM72 296v48h-56v-48h56zM312 184v16h-224v-16h224zM384 40v48h-56v-48h56zM384 104v48h-56v-48h56zM384 168v48h-56v-48h56zM384 232v48h-56v-48h56z -M384 296v48h-56v-48h56z" /> - <glyph glyph-name="ion-ios-flag-outline" unicode="&#xf42c;" horiz-adv-x="256" -d="M240 336c6 1 11 1 16 2v-16v-157c-5 -1 -10 -1 -16 -2c-11 -1 -24 -3 -39 -3c-25 0 -47 4 -69 9s-42 13 -64 13c-30 0 -46 -5 -52 -7v-143h-16v142v162v2l3 3c2 1 18 11 65 11c24 0 45 -4 67 -9c21 -4 42 -11 65 -11c15 0 29 3 40 4zM240 179v0v141c-11 -1 -25 -4 -40 -4 -c-25 0 -46 6 -68 11s-42 9 -64 9c-30 0 -46 -5 -52 -7v-137c10 3 26 6 52 6c24 0 45 -8 67 -13c21 -4 43 -9 66 -9c15 0 28 2 39 3z" /> - <glyph glyph-name="ion-ios-flag" unicode="&#xf42d;" horiz-adv-x="256" -d="M240 336c6 1 11 1 16 2v-16v-157c-5 -1 -10 -1 -16 -2c-11 -1 -24 -3 -39 -3c-25 0 -47 4 -69 9s-42 13 -64 13c-30 0 -46 -5 -52 -7v-143h-16v142v162v2l3 3c2 1 18 11 65 11c24 0 45 -4 67 -9c21 -4 42 -11 65 -11c15 0 29 3 40 4z" /> - <glyph glyph-name="ion-ios-flame-outline" unicode="&#xf42e;" horiz-adv-x="256" -d="M96 416c87 -64 170 -179 159 -288c-13 -134 -104 -160 -127 -160s-127 40 -128 160c-1 146 122 143 96 288zM128 -24c0 0 40 36 40 80s-40 80 -40 80s-41 -36 -41 -80s41 -80 41 -80zM239 130c5 47 -10 99 -41 151c-22 36 -50 70 -83 99c0 -57 -24 -91 -49 -123 -c-26 -34 -50 -65 -50 -129c0 -25 5 -48 15 -68c8 -17 20 -32 35 -45c8 -7 16 -12 23 -16c-9 16 -18 35 -18 57c0 51 44 90 46 92l11 9l11 -9c2 -2 45 -41 45 -92c0 -23 -9 -44 -19 -60c7 4 13 8 20 14c14 12 25 27 34 44c11 21 17 47 20 76z" /> - <glyph glyph-name="ion-ios-flame" unicode="&#xf42f;" horiz-adv-x="256" -d="M96 416c87 -64 170 -179 159 -288c-13 -134 -104 -160 -127 -160s-127 40 -128 160c-1 146 122 143 96 288zM128 -24c0 0 40 36 40 80s-40 80 -40 80s-41 -36 -41 -80s41 -80 41 -80z" /> - <glyph glyph-name="ion-ios-flask-outline" unicode="&#xf430;" horiz-adv-x="384" -d="M373 78c8 -16 11 -32 11 -46c-1 -36 -27 -64 -63 -64h-256c-36 0 -64 27 -65 64c0 14 4 30 12 46l116 195v127h-16v16h16h16v-16v-16h48v-16h-48v-32h32v-16h-32v-32h48v-16h-48v-3l-2 -4l-15 -25h49v-16h-58l-92 -154c-13 -25 -14 -43 -2 -63c9 -14 23 -23 41 -23h256 -c17 0 33 8 41 22c5 8 6 17 6 26c0 12 -2 25 -9 38l-116 195l-3 4v131v16h16h16v-16h-16v-127zM44 73l72 119h153l72 -119c7 -11 10 -24 10 -33c-1 -24 -16 -40 -46 -40h-226c-30 0 -46 12 -46 40c0 9 4 22 11 33zM260 176h-135l-67 -111v0v0c-5 -8 -9 -19 -9 -25 -c0 -13 5 -17 6 -18c4 -4 13 -6 24 -6h226c10 0 18 3 23 7c4 4 7 10 7 18c0 6 -3 16 -8 24v0v0z" /> - <glyph glyph-name="ion-ios-flask" unicode="&#xf431;" horiz-adv-x="384" -d="M327 65v0c5 -8 8 -18 8 -24c0 -8 -3 -14 -7 -18c-5 -4 -13 -7 -23 -7h-226c-11 0 -20 2 -24 6c-1 1 -6 5 -6 18c0 6 4 17 9 25v0v0l67 111h135l67 -111v0zM373 78c8 -16 11 -32 11 -46c-1 -36 -27 -64 -63 -64h-256c-36 0 -64 27 -65 64c0 14 4 30 12 46l116 195v127h-16 -v16h160v-16h-16v-127zM144 384v-16h48v16h-48zM144 336v-16h32v16h-32zM144 288v-16h48v16h-48zM127 240l-9 -16h58v16h-49zM351 40c0 9 -3 22 -10 33l-72 119h-154l-71 -119c-7 -11 -11 -24 -11 -33c0 -28 16 -40 46 -40h226c30 0 45 16 46 40z" /> - <glyph glyph-name="ion-ios-flower-outline" unicode="&#xf432;" -d="M363 164c-29 0 -65 7 -93 14c-1 -3 -2 -6 -4 -9c25 -15 56 -36 76 -56c40 -40 53 -68 41 -80c-3 -3 -7 -4 -12 -4c-15 0 -38 15 -68 45c-20 20 -41 51 -56 76c-3 -2 -7 -3 -10 -4c7 -28 15 -64 15 -93c0 -56 -12 -85 -28 -85s-28 29 -28 85c0 29 8 65 15 93 -c-3 1 -7 2 -10 4c-15 -25 -36 -56 -56 -76c-30 -30 -53 -45 -68 -45c-5 0 -9 1 -12 4c-12 12 1 40 41 80c20 20 51 41 76 56c-2 3 -3 6 -4 9c-28 -7 -64 -14 -93 -14c-56 0 -85 12 -85 28s29 28 85 28c29 0 65 -8 93 -15c1 3 2 7 4 10c-25 15 -56 35 -76 55 -c-40 40 -53 68 -41 80c3 3 7 4 12 4c15 0 38 -14 68 -44c20 -20 41 -51 56 -76c3 2 7 3 10 4c-7 28 -15 64 -15 93c0 56 12 85 28 85s28 -29 28 -85c0 -29 -8 -65 -15 -93c3 -1 7 -2 10 -4c15 25 36 56 56 76c30 30 53 44 68 44c5 0 9 -1 12 -4c12 -12 -1 -40 -41 -80 -c-20 -20 -51 -40 -76 -55c2 -3 3 -7 4 -10c28 7 64 15 93 15c56 0 85 -12 85 -28s-29 -28 -85 -28zM288 193v-3c30 -7 56 -10 75 -10c21 0 39 2 52 5c10 3 14 6 16 7c-2 1 -6 4 -16 7c-13 3 -31 5 -52 5c-19 0 -45 -4 -75 -11zM314 299c-14 -14 -30 -35 -46 -61l2 -2 -c26 16 47 32 61 46c15 15 26 28 33 40c5 9 7 14 7 16c-4 0 -22 -4 -57 -39zM178 236l2 2c-16 26 -32 47 -46 61c-35 35 -53 39 -57 39c0 -2 2 -7 7 -16c7 -12 18 -25 33 -40c14 -14 35 -30 61 -46zM85 180c19 0 45 3 75 10v3c-30 7 -56 11 -75 11c-21 0 -39 -2 -52 -5 -c-10 -3 -14 -6 -16 -7c2 -1 5 -4 15 -7c13 -3 32 -5 53 -5zM134 85c14 14 30 35 46 61l-2 2c-26 -16 -47 -32 -61 -46c-15 -15 -26 -29 -33 -41c-5 -9 -7 -14 -7 -16c4 0 22 5 57 40zM270 148l-2 -2c16 -26 32 -47 46 -61c35 -35 53 -40 57 -40c0 2 -2 7 -7 16 -c-7 12 -18 26 -33 41c-14 14 -35 30 -61 46zM217 383c-3 -13 -5 -31 -5 -52c0 -19 4 -45 11 -75h2c7 30 11 56 11 75c0 21 -2 39 -5 52c-3 10 -6 14 -7 16c-1 -2 -4 -6 -7 -16zM231 0c3 13 5 32 5 53c0 19 -4 45 -11 75h-2c-7 -30 -11 -56 -11 -75c0 -21 2 -40 5 -53 -c3 -10 6 -13 7 -15c1 2 4 5 7 15zM224 160c18 0 32 14 32 32s-14 32 -32 32s-32 -14 -32 -32s14 -32 32 -32zM313 42c10 -34 7 -53 -5 -58c-2 -1 -3 -1 -5 -1c-11 0 -25 13 -37 35c5 35 -2 76 -2 76s24 -34 49 -52zM302 -1c1 4 2 14 -3 34c-5 4 -10 9 -15 14 -c0 -9 0 -17 -1 -25c10 -16 16 -22 19 -23zM182 365c-6 -35 1 -75 1 -75s-27 35 -48 51c-10 35 -7 54 5 59c2 1 3 1 5 1c11 0 24 -12 37 -36zM164 337c0 9 0 17 1 25c-10 16 -16 21 -19 22c-1 -4 -2 -14 3 -34c5 -4 10 -8 15 -13zM50 149c35 -4 76 2 76 2s-34 -24 -51 -48 -c-12 -4 -26 -6 -35 -6c-13 0 -21 4 -24 11c-5 11 7 25 34 41zM66 117c4 5 8 10 13 15c-9 0 -17 0 -25 1c-16 -10 -21 -16 -22 -19c1 0 4 -1 8 -1c7 0 16 1 26 4zM432 276c5 -11 -7 -26 -34 -42c-35 5 -76 -2 -76 -2s33 25 51 49c13 4 26 5 35 5c13 0 21 -3 24 -10zM394 250 -c16 10 21 16 22 19c-1 0 -4 1 -8 1c-7 0 -16 -1 -26 -4c-4 -5 -8 -9 -13 -14c9 0 17 -1 25 -2zM131 39c31 24 53 55 53 55s-7 -39 -3 -71c-15 -26 -28 -39 -39 -39c-2 0 -4 0 -6 1c-11 5 -13 24 -5 54zM143 1c4 2 12 8 22 26c0 6 -1 13 -1 20c-6 -6 -13 -12 -19 -17 -c-4 -18 -3 -26 -2 -29zM312 398c11 -5 13 -22 5 -54c-29 -21 -53 -55 -53 -55s8 48 3 71c13 25 28 39 39 39c2 0 4 0 6 -1zM303 353c5 18 3 27 2 30c-4 -2 -12 -8 -22 -26c0 -6 1 -14 1 -21c6 6 13 12 19 17zM71 285c18 -24 55 -53 55 -53s-40 7 -70 3c-28 15 -43 32 -38 44 -c3 7 10 11 22 11c8 0 21 -1 31 -5zM33 273c2 -4 8 -12 26 -22c6 0 13 1 20 1c-6 6 -12 12 -17 18c-8 2 -16 4 -22 4c-4 0 -6 -1 -7 -1zM392 149c30 -17 43 -33 38 -45c-3 -7 -10 -10 -22 -10c-8 0 -19 1 -31 5c-20 27 -55 52 -55 52s45 -8 70 -2zM408 110c4 0 6 1 7 1 -c-2 4 -8 12 -26 22c-6 0 -13 -1 -20 -1c6 -6 12 -13 17 -19c8 -2 16 -3 22 -3z" /> - <glyph glyph-name="ion-ios-flower" unicode="&#xf433;" -d="M363 220c56 0 85 -12 85 -28s-29 -28 -85 -28c-29 0 -65 7 -93 14c-1 -3 -2 -6 -4 -9c25 -15 56 -36 76 -56c40 -40 53 -68 41 -80s-40 1 -80 41c-20 20 -41 51 -56 76c-3 -2 -7 -3 -10 -4c7 -28 15 -64 15 -93c0 -56 -12 -85 -28 -85s-28 29 -28 85c0 29 8 65 15 93 -c-3 1 -7 2 -10 4c-15 -25 -36 -56 -56 -76c-40 -40 -68 -53 -80 -41s1 40 41 80c20 20 51 41 76 56c-2 3 -3 6 -4 9c-28 -7 -64 -14 -93 -14c-56 0 -85 12 -85 28s29 28 85 28c29 0 65 -8 93 -15c1 3 2 7 4 10c-25 15 -56 35 -76 55c-40 40 -53 68 -41 80s40 0 80 -40 -c20 -20 41 -51 56 -76c3 2 6 3 9 4c-7 28 -14 64 -14 93c0 56 12 85 28 85s28 -29 28 -85c0 -29 -7 -65 -14 -93c3 -1 6 -2 9 -4c15 25 36 56 56 76c40 40 68 52 80 40s-1 -40 -41 -80c-20 -20 -51 -40 -76 -55c2 -3 3 -7 4 -10c28 7 64 15 93 15zM264 94c0 0 24 -34 49 -52 -c10 -34 7 -53 -5 -58c-2 -1 -3 -1 -5 -1c-11 0 -25 13 -37 35c5 35 -2 76 -2 76zM183 290c0 0 -27 35 -48 51c-10 35 -7 54 5 59c2 1 3 1 5 1c11 0 24 -12 37 -36c-6 -35 1 -75 1 -75zM126 151c0 0 -34 -24 -51 -48c-12 -4 -26 -6 -35 -6c-13 0 -21 4 -24 11 -c-5 11 7 25 34 41c35 -4 76 2 76 2zM322 232c0 0 33 25 51 49c13 4 26 5 35 5c13 0 21 -3 24 -10c5 -11 -7 -26 -34 -42c-35 5 -76 -2 -76 -2zM131 39c31 24 53 55 53 55s-7 -39 -3 -71c-15 -26 -28 -39 -39 -39c-2 0 -4 0 -6 1c-11 5 -13 24 -5 54zM317 344 -c-29 -21 -53 -55 -53 -55s8 48 3 71c13 25 28 39 39 39c2 0 4 0 6 -1c11 -5 13 -22 5 -54zM56 235c-28 15 -43 32 -38 44c3 7 10 11 22 11c8 0 21 -1 31 -5c18 -24 55 -53 55 -53s-40 7 -70 3zM392 149c30 -17 43 -33 38 -45c-3 -7 -10 -10 -22 -10c-8 0 -19 1 -31 5 -c-20 27 -55 52 -55 52s45 -8 70 -2z" /> - <glyph glyph-name="ion-ios-folder-outline" unicode="&#xf434;" -d="M425 352c13 0 23 -10 23 -23v-304c0 -14 -10 -25 -23 -25h-400c-13 0 -25 12 -25 25v336c0 13 11 23 25 23h112c8 0 12 -2 17 -7v0l23 -23c2 -2 3 -2 6 -2h242zM25 368c-4 0 -9 -3 -9 -7v-74c3 1 5 1 8 1h400c3 0 5 0 8 -1v42c0 4 -3 7 -7 7h-242c-7 0 -12 2 -17 7 -l-23 23c-2 2 -3 2 -6 2h-112zM432 25v239c0 4 -4 8 -8 8h-400c-4 0 -8 -4 -8 -8v-239c0 -4 5 -9 9 -9h400c4 0 7 5 7 9z" /> - <glyph glyph-name="ion-ios-folder" unicode="&#xf435;" -d="M440 272c4 0 8 -4 8 -8v-239c0 -14 -10 -25 -23 -25h-400c-13 0 -25 12 -25 25v239c0 4 4 8 8 8h432zM425 352c13 0 23 -10 23 -23v-42c-3 1 -5 1 -8 1h-432c-3 0 -5 0 -8 -1v74c0 13 11 23 25 23h112c8 0 12 -2 17 -7v0l23 -23c2 -2 3 -2 6 -2h242z" /> - <glyph glyph-name="ion-ios-football-outline" unicode="&#xf436;" horiz-adv-x="416" -d="M208 400c115 0 208 -93 208 -208s-93 -208 -208 -208s-208 93 -208 208s93 208 208 208zM249 6c3 1 5 1 8 2l24 64l-20 39v1h-106l-20 -39l25 -65c2 -1 5 -1 7 -2c12 -3 25 -5 38 -5c14 0 30 2 44 5zM41 284c-15 -27 -23 -57 -24 -89l43 37v0zM142 371 -c-36 -14 -68 -38 -90 -69l22 -64l5 -2l49 -23l71 60v58zM277 201l-70 58l-69 -58v-1l18 -72h104l18 72zM399 195c-1 32 -9 63 -24 90l-19 -53v0zM364 302c-22 31 -54 56 -90 69l-58 -40v-58l71 -60l54 24zM18 175c3 -34 15 -66 33 -92l70 -1l21 39l-20 77l-1 1l-49 22z -M295 82l70 1c18 26 30 58 33 92l-54 46l-50 -23l-20 -77zM207 345l47 32c-15 4 -30 6 -46 6s-32 -2 -47 -6zM118 66l-54 1c20 -23 46 -42 75 -53l-20 50zM277 14c29 11 55 30 75 53l-56 -1l-2 -3z" /> - <glyph glyph-name="ion-ios-football" unicode="&#xf437;" horiz-adv-x="416" -d="M208 400c115 0 208 -93 208 -208s-93 -208 -208 -208s-208 93 -208 208s93 208 208 208zM249 6c3 1 5 1 8 2l24 64l-20 39v1h-106l-20 -39l25 -65c2 -1 5 -1 7 -2c12 -3 25 -5 38 -5c14 0 30 2 44 5zM142 371c-36 -14 -68 -38 -90 -69l22 -64l5 -2l49 -23l71 60v58z -M364 302c-22 31 -54 56 -90 69l-58 -40v-58l71 -60l54 24zM18 175c3 -34 15 -66 33 -92l70 -1l21 39l-20 77l-1 1l-49 22zM295 82l70 1c18 26 30 58 33 92l-54 46l-50 -23l-20 -77z" /> - <glyph glyph-name="ion-ios-game-controller-a-outline" unicode="&#xf438;" -d="M163 208c3 0 5 -2 5 -5v-22c0 -3 -2 -5 -5 -5h-35v-35c0 -3 -3 -5 -6 -5h-21c-3 0 -5 2 -5 5v35h-35c-3 0 -5 3 -5 6v21c0 3 2 5 5 5h35v35c0 3 2 5 5 5h22c3 0 5 -2 5 -5v-35h35zM330 169c11 0 20 -8 20 -19s-9 -19 -20 -19s-19 8 -19 19s8 19 19 19zM288 211 -c11 0 19 -8 19 -19s-8 -19 -19 -19s-20 8 -20 19s9 19 20 19zM373 211c11 0 19 -8 19 -19s-8 -19 -19 -19s-20 8 -20 19s9 19 20 19zM330 253c11 0 20 -8 20 -19s-9 -20 -20 -20s-19 9 -19 20s8 19 19 19zM337 286h-226c-26 0 -49 -9 -67 -26s-28 -41 -28 -67s10 -51 28 -68 -s41 -27 67 -27h226c26 0 49 10 67 27s28 42 28 68s-10 50 -28 67s-41 26 -67 26zM337 302v0c61 0 111 -45 111 -109s-50 -111 -111 -111h-226c-61 0 -111 47 -111 111s50 109 111 109h226z" /> - <glyph glyph-name="ion-ios-game-controller-a" unicode="&#xf439;" -d="M337 302c61 0 111 -45 111 -109s-50 -111 -111 -111h-226c-61 0 -111 47 -111 111s50 109 111 109h226zM168 181v0v22c0 3 -2 5 -5 5h-35v35c0 3 -2 5 -5 5h-22c-3 0 -5 -2 -5 -5v-35h-35c-3 0 -5 -2 -5 -5v-21c0 -3 2 -6 5 -6h35v-35c0 -3 2 -5 5 -5h21c3 0 6 2 6 5v35 -h35c3 0 5 2 5 5zM288 173c11 0 19 8 19 19s-8 19 -19 19s-20 -8 -20 -19s9 -19 20 -19zM330 131c11 0 20 8 20 19s-9 19 -20 19s-19 -8 -19 -19s8 -19 19 -19zM330 214c11 0 20 9 20 20s-9 19 -20 19s-19 -8 -19 -19s8 -20 19 -20zM373 173c11 0 19 8 19 19s-8 19 -19 19 -s-20 -8 -20 -19s9 -19 20 -19z" /> - <glyph glyph-name="ion-ios-game-controller-b-outline" unicode="&#xf43a;" -d="M276 244c11 0 20 -9 20 -20s-9 -20 -20 -20s-20 9 -20 20s9 20 20 20zM320 200c11 0 20 -9 20 -20s-9 -20 -20 -20s-20 9 -20 20s9 20 20 20zM103 264c22 0 39 -18 39 -40s-17 -40 -39 -40s-39 18 -39 40s17 40 39 40zM103 205c11 0 19 8 19 19s-8 19 -19 19 -s-19 -8 -19 -19s8 -19 19 -19zM320 288c11 0 20 -9 20 -20s-9 -20 -20 -20s-20 9 -20 20s9 20 20 20zM364 244c11 0 20 -9 20 -20s-9 -20 -20 -20s-20 9 -20 20s9 20 20 20zM434 199c21 -88 18 -152 -7 -164c-4 -2 -9 -3 -13 -3c-22 0 -45 24 -68 52c-26 32 -32 33 -110 33 -h-24c-78 0 -84 -1 -110 -33c-23 -28 -46 -52 -68 -52c-4 0 -9 1 -13 3c-25 12 -28 76 -7 164s43 136 88 149c10 3 18 4 26 4c28 0 47 -15 96 -15s68 15 96 15c8 0 16 -1 26 -4c45 -13 67 -61 88 -149zM420 49c10 5 23 48 -1 146c-21 90 -43 128 -78 138c-8 2 -14 3 -21 3 -c-10 0 -19 -2 -30 -5c-16 -4 -36 -10 -66 -10s-50 6 -66 10c-11 3 -20 5 -30 5c-7 0 -13 -1 -21 -3c-35 -10 -57 -48 -78 -138c-24 -98 -11 -141 -1 -146c2 -1 4 -1 6 -1c6 0 14 4 23 12s19 18 32 34s24 28 44 34c17 5 38 5 79 5h24c41 0 62 0 79 -5c20 -6 31 -18 44 -34 -s23 -26 32 -34s17 -12 23 -12c2 0 4 0 6 1z" /> - <glyph glyph-name="ion-ios-game-controller-b" unicode="&#xf43b;" -d="M103 243c11 0 19 -8 19 -19s-8 -19 -19 -19s-19 8 -19 19s8 19 19 19zM434 199c21 -88 18 -152 -7 -164c-4 -2 -9 -3 -13 -3c-22 0 -45 24 -68 52c-26 32 -32 33 -110 33h-24c-78 0 -84 -1 -110 -33c-23 -28 -46 -52 -68 -52c-4 0 -9 1 -13 3c-25 12 -28 76 -7 164 -s43 136 88 149c10 3 18 4 26 4c28 0 47 -15 96 -15s68 15 96 15c8 0 16 -1 26 -4c45 -13 67 -61 88 -149zM103 184c22 0 39 18 39 40s-17 40 -39 40s-39 -18 -39 -40s17 -40 39 -40zM276 204c11 0 20 9 20 20s-9 20 -20 20s-20 -9 -20 -20s9 -20 20 -20zM320 160 -c11 0 20 9 20 20s-9 20 -20 20s-20 -9 -20 -20s9 -20 20 -20zM320 248c11 0 20 9 20 20s-9 20 -20 20s-20 -9 -20 -20s9 -20 20 -20zM364 204c11 0 20 9 20 20s-9 20 -20 20s-20 -9 -20 -20s9 -20 20 -20z" /> - <glyph glyph-name="ion-ios-gear-outline" unicode="&#xf43c;" horiz-adv-x="384" -d="M193 288c26 0 50 -10 68 -28s28 -42 28 -68s-10 -50 -28 -68s-42 -28 -68 -28s-50 10 -68 28s-28 42 -28 68s10 50 28 68s42 28 68 28zM193 112c44 0 80 36 80 80s-36 80 -80 80s-80 -36 -80 -80s36 -80 80 -80zM138 365c-10 -3 -20 -7 -30 -12c2 -8 1 -16 0 -24 -c-2 -13 -8 -25 -18 -35c-12 -12 -29 -19 -46 -19c-4 0 -9 0 -13 1c-5 -10 -9 -20 -12 -30c7 -4 12 -10 17 -17c8 -11 12 -24 12 -37s-4 -26 -12 -37c-5 -7 -10 -13 -17 -17c3 -10 7 -20 12 -30c4 1 9 1 13 1c17 0 34 -7 46 -19c10 -10 16 -22 18 -35c1 -8 2 -16 0 -24 -c10 -5 20 -9 30 -12c4 7 10 12 17 17c11 8 24 12 37 12s26 -4 37 -12c7 -5 13 -10 17 -17c10 3 20 7 30 12c-2 8 -1 16 0 24c2 13 8 25 18 35c12 12 29 19 46 19c4 0 9 0 13 -1c5 10 9 20 12 30c-7 4 -12 10 -17 17c-8 11 -12 24 -12 37s4 26 12 37c5 7 10 13 17 17 -c-3 10 -7 20 -12 30c-4 -1 -9 -1 -13 -1c-17 0 -34 7 -46 19c-10 10 -16 22 -18 35c-1 8 -2 16 0 24c-10 5 -20 9 -30 12c-4 -7 -10 -12 -17 -17c-11 -8 -24 -12 -37 -12s-26 4 -37 12c-7 5 -13 10 -17 17zM238 384v0c20 -5 40 -13 57 -24c-8 -18 -5 -40 10 -55 -c10 -10 22 -14 35 -14c7 0 14 1 20 4c11 -17 19 -37 24 -57c-19 -7 -32 -25 -32 -46s14 -39 32 -46c-5 -20 -13 -40 -24 -57c-6 3 -13 4 -20 4c-13 0 -25 -4 -35 -14c-15 -15 -18 -37 -10 -55c-17 -11 -37 -19 -57 -24c-7 18 -25 32 -46 32s-39 -14 -46 -32 -c-20 5 -40 13 -57 24c8 18 5 40 -10 55c-10 10 -22 14 -35 14c-7 0 -14 -1 -20 -4c-11 17 -19 37 -24 57c18 7 32 25 32 46s-13 39 -32 46c5 20 13 40 24 57c6 -3 13 -4 20 -4c13 0 25 4 35 14c15 15 18 37 10 55c17 11 37 19 57 24c7 -19 25 -32 46 -32s39 13 46 32z" /> - <glyph glyph-name="ion-ios-gear" unicode="&#xf43d;" horiz-adv-x="384" -d="M352 192c0 -21 14 -39 32 -46c-5 -20 -13 -40 -24 -57c-6 3 -13 4 -20 4c-13 0 -25 -4 -35 -14c-15 -15 -18 -37 -10 -55c-17 -11 -37 -19 -57 -24c-7 18 -25 32 -46 32s-39 -14 -46 -32c-20 5 -40 13 -57 24c8 18 5 40 -10 55c-10 10 -22 14 -35 14c-7 0 -14 -1 -20 -4 -c-11 17 -19 37 -24 57c18 7 32 25 32 46s-13 39 -32 46c5 20 13 40 24 57c6 -3 13 -4 20 -4c13 0 25 4 35 14c15 15 18 37 10 55c17 11 37 19 57 24c7 -19 25 -32 46 -32s39 13 46 32c20 -5 40 -13 57 -24c-8 -18 -5 -40 10 -55c10 -10 22 -14 35 -14c7 0 14 1 20 4 -c11 -17 19 -37 24 -57c-19 -7 -32 -25 -32 -46zM193 112c44 0 80 36 80 80s-36 80 -80 80s-80 -36 -80 -80s36 -80 80 -80z" /> - <glyph glyph-name="ion-ios-glasses-outline" unicode="&#xf43e;" -d="M433 201v0h15v-18h-15c-2 -22 -13 -43 -29 -58c-17 -16 -39 -25 -62 -25c-51 0 -92 41 -92 92v0v0c0 10 -12 22 -26 22s-26 -12 -26 -22v0v0c0 -51 -41 -92 -92 -92c-23 0 -45 9 -62 25c-16 15 -27 36 -29 58h-15v18h15c2 22 13 43 29 59c17 16 39 24 62 24 -c42 0 78 -27 89 -67c7 7 18 12 29 12s22 -5 29 -12c11 40 47 67 89 67c23 0 45 -9 62 -25c16 -15 27 -36 29 -58zM342 115c42 0 77 35 77 77s-35 77 -77 77s-77 -35 -77 -77s35 -77 77 -77zM106 115c42 0 77 35 77 77s-35 77 -77 77s-77 -35 -77 -77s35 -77 77 -77z" /> - <glyph glyph-name="ion-ios-glasses" unicode="&#xf43f;" -d="M433 201v0h15v-18h-15c-2 -22 -13 -43 -29 -58c-17 -16 -39 -25 -62 -25c-51 0 -92 41 -92 92v0v0c0 10 -12 22 -26 22s-26 -12 -26 -22v0v0c0 -51 -41 -92 -92 -92c-23 0 -45 9 -62 25c-16 15 -27 36 -29 58h-15v18h15c2 22 13 43 29 59c17 16 39 24 62 24 -c42 0 78 -27 89 -67c7 7 18 12 29 12s22 -5 29 -12c11 40 47 67 89 67c23 0 45 -9 62 -25c16 -15 27 -36 29 -58z" /> - <glyph glyph-name="ion-ios-grid-view-outline" unicode="&#xf440;" horiz-adv-x="384" -d="M384 256h-112v-128h112v-16h-112v-112h-16v112h-128v-112h-16v112h-112v16h112v128h-112v16h112v112h16v-112h128v112h16v-112h112v-16zM256 128v128h-128v-128h128z" /> - <glyph glyph-name="ion-ios-grid-view" unicode="&#xf441;" horiz-adv-x="384" -d="M128 128v128h128v-128h-128zM0 384h384v-384h-384v384zM352 256v16h-80v80h-16v-80h-128v80h-16v-80h-80v-16h80v-128h-80v-16h80v-80h16v80h128v-80h16v80h80v16h-80v128h80z" /> - <glyph glyph-name="ion-ios-heart-outline" unicode="&#xf442;" -d="M327 368c69 0 121 -43 121 -116c0 -31 -13 -71 -41 -105s-45 -52 -100 -88s-83 -43 -83 -43s-28 7 -83 43s-72 54 -100 88s-41 74 -41 105c0 73 52 116 121 116c39 0 82 -18 103 -53c21 35 64 53 103 53zM395 157c12 14 22 31 28 49c6 16 9 31 9 46c0 30 -10 56 -29 74 -c-9 8 -20 15 -33 19c-13 5 -28 7 -43 7c-38 0 -73 -18 -89 -45l-14 -23l-14 23c-16 27 -51 45 -89 45c-15 0 -30 -2 -43 -7c-13 -4 -24 -11 -33 -19c-19 -18 -29 -44 -29 -74c0 -15 3 -30 9 -46c6 -18 16 -35 28 -49c27 -32 42 -49 97 -85c40 -27 65 -36 74 -39 -c9 3 34 12 74 39c55 36 70 53 97 85z" /> - <glyph glyph-name="ion-ios-heart" unicode="&#xf443;" -d="M327 368c69 0 121 -43 121 -116c0 -31 -13 -71 -41 -105s-45 -52 -100 -88s-83 -43 -83 -43s-28 7 -83 43s-72 54 -100 88s-41 74 -41 105c0 73 52 116 121 116c39 0 82 -18 103 -53c21 35 64 53 103 53z" /> - <glyph glyph-name="ion-ios-help-empty" unicode="&#xf444;" horiz-adv-x="128" -d="M68 82c-9 0 -17 8 -17 17s8 17 17 17s17 -8 17 -17s-8 -17 -17 -17zM102 197c-23 -22 -22 -27 -23 -53h-19c1 28 7 43 30 64c11 10 19 24 19 39c0 24 -19 39 -42 39c-32 0 -49 -16 -48 -46h-19c0 42 25 62 68 62c33 0 60 -20 60 -54c0 -22 -11 -37 -26 -51z" /> - <glyph glyph-name="ion-ios-help-outline" unicode="&#xf445;" horiz-adv-x="416" -d="M208 400c115 0 208 -93 208 -208s-93 -208 -208 -208s-208 93 -208 208s93 208 208 208zM208 1c105 0 191 86 191 191s-86 191 -191 191s-191 -86 -191 -191s86 -191 191 -191zM212 302c33 0 60 -21 60 -55c0 -22 -11 -36 -26 -50c-23 -23 -22 -27 -23 -53h-19 -c1 28 7 43 30 64c11 10 19 23 19 38c0 24 -19 40 -42 40c-32 0 -49 -16 -48 -46h-19c0 42 25 62 68 62zM212 116c9 0 17 -8 17 -17s-8 -17 -17 -17s-17 8 -17 17s8 17 17 17z" /> - <glyph glyph-name="ion-ios-help" unicode="&#xf446;" horiz-adv-x="416" -d="M208 400c115 0 208 -93 208 -208s-93 -208 -208 -208s-208 93 -208 208s93 208 208 208zM212 82c9 0 17 8 17 17s-8 17 -17 17s-17 -8 -17 -17s8 -17 17 -17zM246 197c15 14 26 29 26 51c0 34 -27 54 -60 54c-43 0 -68 -20 -68 -62h19c-1 30 16 46 48 46 -c23 0 42 -15 42 -39c0 -15 -8 -29 -19 -39c-23 -21 -29 -36 -30 -64h19c1 26 0 31 23 53z" /> - <glyph glyph-name="ion-ios-home-outline" unicode="&#xf447;" horiz-adv-x="384" -d="M192 336l160 -128v-208h-112v128h-96v-128h-112v208zM336 16v184l-144 116l-144 -116v-184h80v128h128v-128h80zM192 384l192 -153l-12 -12l-180 145l-180 -145l-12 12l32 25v96h64v-45zM80 294v42h-32v-67z" /> - <glyph glyph-name="ion-ios-home" unicode="&#xf448;" horiz-adv-x="384" -d="M192 336l160 -128v-208h-112v128h-96v-128h-112v208zM192 384l192 -153l-12 -12l-180 145l-180 -145l-12 12l32 25v96h64v-45z" /> - <glyph glyph-name="ion-ios-infinite-outline" unicode="&#xf449;" -d="M419 260c19 -19 29 -43 29 -68s-10 -49 -29 -68c-19 -18 -44 -28 -70 -28s-50 10 -69 28l-126 123c-15 15 -35 22 -56 22s-40 -7 -55 -22c-31 -30 -31 -80 0 -110c15 -15 34 -22 55 -22s41 7 56 22l43 42l13 -14l-42 -41c-19 -18 -44 -28 -70 -28s-50 10 -69 28 -c-19 19 -29 43 -29 68s10 49 29 68c19 18 43 28 69 28s51 -10 70 -28l126 -123c15 -15 34 -22 55 -22s41 7 56 22c31 30 31 80 0 110c-15 15 -35 22 -56 22s-40 -7 -55 -22l-43 -42l-13 14l42 41c19 18 44 28 70 28s50 -10 69 -28z" /> - <glyph glyph-name="ion-ios-infinite" unicode="&#xf44a;" horiz-adv-x="464" -d="M433 266c20 -20 31 -46 31 -74s-11 -54 -31 -74s-48 -30 -76 -30s-55 10 -75 30l-125 123c-13 13 -32 20 -51 20s-37 -7 -50 -20s-21 -31 -21 -49c0 -19 8 -36 21 -49s31 -20 50 -20s38 7 51 20l39 38l25 -25l-39 -38c-20 -20 -48 -30 -76 -30s-55 10 -75 30 -s-31 46 -31 74s11 54 31 74s47 30 75 30s56 -10 76 -30l125 -123c13 -13 31 -20 50 -20s38 7 51 20s20 31 20 49c0 19 -7 36 -20 49s-32 20 -51 20s-37 -7 -50 -20l-39 -38l-25 25l39 38c20 20 48 30 76 30s55 -10 75 -30z" /> - <glyph glyph-name="ion-ios-information-empty" unicode="&#xf44b;" horiz-adv-x="64" -d="M8 276c0 13 7 20 20 20s20 -7 20 -20s-7 -20 -20 -20s-20 7 -20 20zM48 104h16v-8h-64v8h16v120h-16v8h48v-128z" /> - <glyph glyph-name="ion-ios-information-outline" unicode="&#xf44c;" horiz-adv-x="416" -d="M184 276c0 13 7 20 20 20s20 -7 20 -20s-7 -20 -20 -20s-20 7 -20 20zM224 104h16v-8h-64v8h16v120h-16v8h48v-128zM208 400c57 0 106 -20 147 -61s61 -90 61 -147s-20 -106 -61 -147s-90 -61 -147 -61s-106 20 -147 61s-61 90 -61 147s20 106 61 147s90 61 147 61z -M208 1c53 0 98 19 135 56s56 82 56 135s-19 98 -56 135s-82 56 -135 56s-98 -19 -135 -56s-56 -82 -56 -135s19 -98 56 -135s82 -56 135 -56z" /> - <glyph glyph-name="ion-ios-information" unicode="&#xf44d;" horiz-adv-x="416" -d="M208 400c115 0 208 -93 208 -208s-93 -208 -208 -208s-208 93 -208 208s93 208 208 208zM204 296c-11 0 -20 -9 -20 -20s9 -20 20 -20s20 9 20 20s-9 20 -20 20zM240 96v8h-16v128h-48v-8h16v-120h-16v-8h64z" /> - <glyph glyph-name="ion-ios-ionic-outline" unicode="&#xf44e;" horiz-adv-x="416" -d="M378 313c24 -34 38 -76 38 -121c0 -115 -92 -208 -207 -208s-209 93 -209 208s94 208 209 208c45 0 86 -14 120 -38c6 5 13 8 21 8c19 0 35 -16 35 -35c0 -8 -2 -16 -7 -22zM350 357c-12 0 -22 -10 -22 -22s10 -22 22 -22s22 10 22 22s-10 22 -22 22zM344 56 -c18 18 31 39 41 62c10 24 15 48 15 74s-5 51 -15 75c-5 13 -12 25 -20 36c-5 -2 -10 -3 -15 -3c-19 0 -35 16 -35 35c0 5 2 11 4 15c-11 8 -23 15 -36 20c-24 10 -49 14 -75 14s-51 -4 -75 -14c-23 -10 -43 -24 -61 -42s-31 -38 -41 -61c-10 -24 -15 -49 -15 -75 -s5 -50 15 -74c10 -23 23 -44 41 -62s38 -31 61 -41c24 -10 49 -15 75 -15s51 5 75 15c23 10 43 23 61 41zM208 288c53 0 96 -43 96 -96s-43 -96 -96 -96s-96 43 -96 96s43 96 96 96zM208 112c44 0 80 36 80 80s-36 80 -80 80s-79 -36 -79 -80s35 -80 79 -80z" /> - <glyph glyph-name="ion-ios-keypad-outline" unicode="&#xf44f;" horiz-adv-x="384" -d="M331 107c30 0 53 -24 53 -54s-23 -53 -53 -53s-54 23 -54 53s24 54 54 54zM331 16c21 0 37 16 37 37s-16 38 -37 38s-38 -17 -38 -38s17 -37 38 -37zM192 107c30 0 53 -24 53 -54s-23 -53 -53 -53s-53 23 -53 53s23 54 53 54zM192 16c21 0 37 16 37 37s-16 38 -37 38 -s-37 -17 -37 -38s16 -37 37 -37zM53 107c30 0 54 -24 54 -54s-24 -53 -54 -53s-53 23 -53 53s23 54 53 54zM53 16c21 0 38 16 38 37s-17 38 -38 38s-37 -17 -37 -38s16 -37 37 -37zM331 245c30 0 53 -23 53 -53s-23 -53 -53 -53s-54 23 -54 53s24 53 54 53zM331 155 -c21 0 37 16 37 37s-16 37 -37 37s-38 -16 -38 -37s17 -37 38 -37zM192 245c30 0 53 -23 53 -53s-23 -53 -53 -53s-53 23 -53 53s23 53 53 53zM192 155c21 0 37 16 37 37s-16 37 -37 37s-37 -16 -37 -37s16 -37 37 -37zM53 245c30 0 54 -23 54 -53s-24 -53 -54 -53 -s-53 23 -53 53s23 53 53 53zM53 155c21 0 38 16 38 37s-17 37 -38 37s-37 -16 -37 -37s16 -37 37 -37zM331 277c-30 0 -54 24 -54 54s24 53 54 53s53 -23 53 -53s-23 -54 -53 -54zM331 368c-21 0 -38 -16 -38 -37s17 -38 38 -38s37 17 37 38s-16 37 -37 37zM192 384 -c30 0 53 -23 53 -53s-23 -54 -53 -54s-53 24 -53 54s23 53 53 53zM192 293c21 0 37 17 37 38s-16 37 -37 37s-37 -16 -37 -37s16 -38 37 -38zM53 384c30 0 54 -23 54 -53s-24 -54 -54 -54s-53 24 -53 54s23 53 53 53zM53 293c21 0 38 17 38 38s-17 37 -38 37 -s-37 -16 -37 -37s16 -38 37 -38z" /> - <glyph glyph-name="ion-ios-keypad" unicode="&#xf450;" horiz-adv-x="384" -d="M331 107c30 0 53 -24 53 -54s-23 -53 -53 -53s-54 23 -54 53s24 54 54 54zM192 107c30 0 53 -24 53 -54s-23 -53 -53 -53s-53 23 -53 53s23 54 53 54zM53 107c30 0 54 -24 54 -54s-24 -53 -54 -53s-53 23 -53 53s23 54 53 54zM331 245c30 0 53 -23 53 -53 -s-23 -53 -53 -53s-54 23 -54 53s24 53 54 53zM192 245c30 0 53 -23 53 -53s-23 -53 -53 -53s-53 23 -53 53s23 53 53 53zM53 245c30 0 54 -23 54 -53s-24 -53 -54 -53s-53 23 -53 53s23 53 53 53zM331 277c-30 0 -54 24 -54 54s24 53 54 53s53 -23 53 -53s-23 -54 -53 -54z -M192 384c30 0 53 -23 53 -53s-23 -54 -53 -54s-53 24 -53 54s23 53 53 53zM53 384c30 0 54 -23 54 -53s-24 -54 -54 -54s-53 24 -53 54s23 53 53 53z" /> - <glyph glyph-name="ion-ios-lightbulb-outline" unicode="&#xf451;" horiz-adv-x="288" -d="M288 275c0 -31 -13 -59 -30 -83v0c-11 -15 -22 -28 -32 -45c-22 -38 -18 -73 -18 -82v-1h-128v1c0 7 3 44 -19 82c-10 17 -20 30 -31 45v0c-17 24 -30 52 -30 83c0 78 66 141 144 141s144 -63 144 -141zM239 194l6 8c16 22 27 47 27 73c0 33 -16 65 -40 89s-55 36 -88 36 -s-64 -12 -88 -36s-40 -56 -40 -89c0 -26 11 -51 27 -73l19 -26v0c5 -6 9 -13 13 -21c17 -29 21 -58 21 -75h16v112l-32 64h17l31 -64v-112h32v112l31 64h17l-32 -64v-112h16c0 17 4 45 21 75c8 14 16 25 24 36c1 1 1 2 2 3zM112 -32v16h64v-16h-64zM96 0v16h96v-16h-96z -M96 32v16h96v-16h-96z" /> - <glyph glyph-name="ion-ios-lightbulb" unicode="&#xf452;" horiz-adv-x="288" -d="M288 275c0 -31 -13 -59 -30 -83v0c-11 -15 -22 -28 -32 -45c-22 -38 -18 -73 -18 -82v-1h-32v128l32 64h-16l-32 -64v-128h-32v128l-31 64h-17l32 -64v-128h-32v1c0 7 3 44 -19 82c-10 17 -20 30 -31 45v0c-17 24 -30 52 -30 83c0 78 66 141 144 141s144 -63 144 -141z -M112 -32v16h64v-16h-64zM96 0v16h96v-16h-96zM96 32v16h96v-16h-96z" /> - <glyph glyph-name="ion-ios-list-outline" unicode="&#xf453;" horiz-adv-x="384" -d="M368 368h-352v-352h352v352zM384 384v0v-384h-384v384h384zM128 280v16h192v-16h-192zM128 184v16h192v-16h-192zM128 88v16h192v-16h-192zM64 288c0 11 5 16 16 16s16 -5 16 -16s-5 -16 -16 -16s-16 5 -16 16zM64 192c0 11 5 16 16 16s16 -5 16 -16s-5 -16 -16 -16 -s-16 5 -16 16zM64 96c0 11 5 16 16 16s16 -5 16 -16s-5 -16 -16 -16s-16 5 -16 16z" /> - <glyph glyph-name="ion-ios-list" unicode="&#xf454;" horiz-adv-x="384" -d="M0 384h384v-384h-384v384zM80 80c9 0 16 7 16 16s-7 16 -16 16s-16 -7 -16 -16s7 -16 16 -16zM80 176c9 0 16 7 16 16s-7 16 -16 16s-16 -7 -16 -16s7 -16 16 -16zM80 272c9 0 16 7 16 16s-7 16 -16 16s-16 -7 -16 -16s7 -16 16 -16zM320 88v16h-192v-16h192zM320 184v16 -h-192v-16h192zM320 280v16h-192v-16h192z" /> - <glyph glyph-name="ion-ios-location-outline" unicode="&#xf455;" horiz-adv-x="288" -d="M144 400c-34 0 -67 -13 -91 -37s-37 -57 -37 -91c0 -43 24 -107 70 -186c22 -38 44 -72 58 -91c14 19 36 53 58 91c46 79 70 143 70 186c0 34 -13 67 -37 91s-57 37 -91 37zM144 416v0c80 0 144 -64 144 -144c0 -112 -144 -304 -144 -304s-144 192 -144 304 -c0 80 64 144 144 144zM144 336c35 0 64 -29 64 -64s-29 -64 -64 -64s-64 29 -64 64s29 64 64 64zM144 225c26 0 47 21 47 47s-21 47 -47 47s-47 -21 -47 -47s21 -47 47 -47z" /> - <glyph glyph-name="ion-ios-location" unicode="&#xf456;" horiz-adv-x="288" -d="M144 416c80 0 144 -64 144 -144c0 -112 -144 -304 -144 -304s-144 192 -144 304c0 80 64 144 144 144zM144 225c26 0 47 21 47 47s-21 47 -47 47s-47 -21 -47 -47s21 -47 47 -47z" /> - <glyph glyph-name="ion-ios-locked-outline" unicode="&#xf457;" horiz-adv-x="320" -d="M264 224h56v-240h-320v240h56v72c0 57 47 104 104 104s104 -47 104 -104v-72zM72 296v-72h176v72c0 49 -39 88 -88 88s-88 -39 -88 -88zM304 0v208h-288v-208h288zM160 160c18 0 32 -14 32 -32c0 -15 -10 -27 -24 -31v-33h-16v33c-14 4 -24 16 -24 31c0 18 14 32 32 32z -M160 112c9 0 16 7 16 16s-7 16 -16 16s-16 -7 -16 -16s7 -16 16 -16z" /> - <glyph glyph-name="ion-ios-locked" unicode="&#xf458;" horiz-adv-x="320" -d="M264 224h56v-240h-320v240h56v72c0 57 47 104 104 104s104 -47 104 -104v-72zM168 97c14 4 24 16 24 31c0 18 -14 32 -32 32s-32 -14 -32 -32c0 -15 10 -27 24 -31v-33h16v33zM248 224v72c0 49 -39 88 -88 88s-88 -39 -88 -88v-72h176zM160 144c9 0 16 -7 16 -16 -s-7 -16 -16 -16s-16 7 -16 16s7 16 16 16z" /> - <glyph glyph-name="ion-ios-loop-strong" unicode="&#xf459;" horiz-adv-x="512" -d="M256 400c115 0 208 -93 208 -208c0 -14 -1 -28 -4 -42l-1 -4l-24 5l1 4c2 12 4 24 4 37c0 101 -83 184 -184 184c-66 0 -127 -36 -160 -94l-2 -3l-21 11l2 4c37 65 106 106 181 106zM416 102l2 3l21 -11l-2 -4c-37 -65 -106 -106 -181 -106c-115 0 -208 93 -208 208 -c0 14 1 28 4 42l1 4l24 -5l-1 -4c-2 -12 -4 -24 -4 -37c0 -101 83 -184 184 -184c66 0 127 36 160 94zM384 192h128l-64 -64zM0 192l64 64l64 -64h-128z" /> - <glyph glyph-name="ion-ios-loop" unicode="&#xf45a;" horiz-adv-x="489" -d="M478 192l11 -11l-52 -53l-53 53l10 11l43 -41zM449 192v0v0c0 -7 0 -14 -1 -21l-16 1c1 7 1 14 1 21c-1 103 -85 187 -188 187c-68 0 -131 -37 -164 -96l-14 8c36 64 104 104 178 104c112 0 203 -91 204 -202v0v-2zM409 100l14 -8c-36 -64 -104 -104 -178 -104 -c-111 0 -202 90 -204 200v0v3v1v0c0 7 0 14 1 21l16 -1c-1 -7 -1 -14 -1 -21c0 -103 85 -187 188 -187c68 0 131 37 164 96zM53 256l52 -53l-11 -11l-41 41l-42 -41l-11 11z" /> - <glyph glyph-name="ion-ios-medical-outline" unicode="&#xf45b;" horiz-adv-x="364" -d="M364 260l-118 -68l118 -68l-32 -56l-118 69v-137h-64v137l-118 -69l-32 56l118 68l-118 68l32 56l118 -69v137h64v-137l118 69zM342 118l-128 74l128 74l-16 28l-128 -74v148h-32v-148l-128 74l-16 -28l128 -74l-128 -74l16 -28l128 74v-148h32v148l128 -74z" /> - <glyph glyph-name="ion-ios-medical" unicode="&#xf45c;" horiz-adv-x="364" -d="M364 260l-118 -68l118 -68l-32 -56l-118 69v-137h-64v137l-118 -69l-32 56l118 68l-118 68l32 56l118 -69v137h64v-137l118 69z" /> - <glyph glyph-name="ion-ios-medkit-outline" unicode="&#xf45d;" horiz-adv-x="416" -d="M224 240h-32v-48v-16h-16h-48v-32h48h16v-16v-48h32v48v16h16h48v32h-48h-16v16v48zM240 256v0v-64h64v-64h-64v-64h-64v64h-64v64h64v64h64zM288 320h128v-320h-416v320h128v32c0 18 10 32 29 32h99c19 0 32 -14 32 -32v-32zM144 350v-30h128v30c0 10 -7 18 -17 18h-97 -c-11 0 -14 -8 -14 -18zM400 16v288h-384v-288h384z" /> - <glyph glyph-name="ion-ios-medkit" unicode="&#xf45e;" horiz-adv-x="416" -d="M224 176h16h48v-32h-48h-16v-16v-48h-32v48v16h-16h-48v32h48h16v16v48h32v-48v-16zM288 320h128v-320h-416v320h128v32c0 18 10 32 29 32h99c19 0 32 -14 32 -32v-32zM144 350v-30h128v30c0 10 -7 18 -17 18h-97c-11 0 -14 -8 -14 -18zM304 128v64h-64v64h-64v-64h-64 -v-64h64v-64h64v64h64z" /> - <glyph glyph-name="ion-ios-mic-off" unicode="&#xf45f;" horiz-adv-x="280" -d="M266 -32l-258 440l14 8l258 -440zM128 95c-44 0 -79 37 -79 83v118l113 -193c-10 -5 -22 -8 -34 -8zM207 178c0 -10 -2 -19 -5 -28l-136 234c14 20 37 32 62 32c44 0 79 -38 79 -84v-154zM256 176c0 -28 -9 -54 -24 -75l-10 17c11 17 17 36 17 58v80h17v-80zM139 49v0 -v-63h69v-18h-161v18h73v63c-67 5 -120 60 -120 127v80h19v-80c0 -60 50 -109 110 -109c17 0 34 4 48 11l9 -16c-14 -7 -30 -12 -47 -13z" /> - <glyph glyph-name="ion-ios-mic-outline" unicode="&#xf460;" horiz-adv-x="256" -d="M128 416c44 0 79 -38 79 -84v-154c0 -46 -35 -84 -79 -84s-79 38 -79 84v154c0 46 35 84 79 84zM191 178v154c0 37 -28 68 -63 68s-63 -31 -63 -68v-154c0 -37 28 -68 63 -68s63 31 63 68zM239 256h17v-80c0 -67 -51 -122 -117 -127v-63h69v-18h-161v18h73v63 -c-67 5 -120 60 -120 127v80h19v-80c0 -60 50 -109 110 -109s110 49 110 109v80z" /> - <glyph glyph-name="ion-ios-mic" unicode="&#xf461;" horiz-adv-x="256" -d="M128 94c-44 0 -79 38 -79 84v154c0 46 35 84 79 84s79 -38 79 -84v-154c0 -46 -35 -84 -79 -84zM239 256h17v-80c0 -67 -51 -122 -117 -127v-63h69v-18h-161v18h73v63c-67 5 -120 60 -120 127v80h19v-80c0 -60 50 -109 110 -109s110 49 110 109v80z" /> - <glyph glyph-name="ion-ios-minus-empty" unicode="&#xf462;" horiz-adv-x="256" -d="M256 183h-256v17h256v-17z" /> - <glyph glyph-name="ion-ios-minus-outline" unicode="&#xf463;" horiz-adv-x="416" -d="M208 400c115 0 208 -93 208 -208s-93 -208 -208 -208s-208 93 -208 208s93 208 208 208zM208 1c105 0 191 86 191 191s-86 191 -191 191s-191 -86 -191 -191s86 -191 191 -191zM80 183v17h256v-17h-256z" /> - <glyph glyph-name="ion-ios-minus" unicode="&#xf464;" horiz-adv-x="416" -d="M208 400c115 0 208 -93 208 -208s-93 -208 -208 -208s-208 93 -208 208s93 208 208 208zM336 183v17h-256v-17h256z" /> - <glyph glyph-name="ion-ios-monitor-outline" unicode="&#xf465;" horiz-adv-x="480" -d="M480 64h-176v-16h64v-16h-257v16h64v16h-175v288h480v-288zM16 336v-256h448v256h-448z" /> - <glyph glyph-name="ion-ios-monitor" unicode="&#xf466;" horiz-adv-x="480" -d="M480 64h-176v-16h64v-16h-257v16h64v16h-175v288h480v-288zM16 336v-256h448v256h-448zM32 96v224h416v-224h-416z" /> - <glyph glyph-name="ion-ios-moon-outline" unicode="&#xf467;" horiz-adv-x="216" -d="M195 133c7 0 14 1 21 3c-4 -7 -7 -12 -12 -18c-21 -25 -53 -41 -88 -41c-64 0 -116 51 -116 115c0 52 34 96 81 111c7 2 14 3 22 4c-4 -6 -8 -12 -11 -18c-7 -14 -11 -30 -11 -47c0 -29 11 -56 32 -77s48 -32 77 -32h5zM116 93c25 0 48 9 65 24c-65 5 -116 59 -116 125 -c0 14 2 28 6 40c-33 -16 -55 -51 -55 -90c0 -55 45 -99 100 -99z" /> - <glyph glyph-name="ion-ios-moon" unicode="&#xf468;" horiz-adv-x="216" -d="M195 133c7 0 14 1 21 3c-4 -7 -7 -12 -12 -18c-21 -25 -53 -41 -88 -41c-64 0 -116 51 -116 115c0 52 34 96 81 111c7 2 14 3 22 4c-4 -6 -8 -12 -11 -18c-7 -14 -11 -30 -11 -47c0 -29 11 -56 32 -77s48 -32 77 -32h5z" /> - <glyph glyph-name="ion-ios-more-outline" unicode="&#xf469;" horiz-adv-x="320" -d="M160 210c-10 0 -18 -8 -18 -18s8 -18 18 -18s18 8 18 18s-8 18 -18 18zM160 224v0c18 0 32 -14 32 -32s-14 -32 -32 -32s-32 14 -32 32s14 32 32 32zM32 210c-10 0 -18 -8 -18 -18s8 -18 18 -18s18 8 18 18s-8 18 -18 18zM32 224v0c18 0 32 -14 32 -32s-14 -32 -32 -32 -s-32 14 -32 32s14 32 32 32zM288 210c-10 0 -18 -8 -18 -18s8 -18 18 -18s18 8 18 18s-8 18 -18 18zM288 224v0c18 0 32 -14 32 -32s-14 -32 -32 -32s-32 14 -32 32s14 32 32 32z" /> - <glyph glyph-name="ion-ios-more" unicode="&#xf46a;" horiz-adv-x="320" -d="M160 224v0c18 0 32 -14 32 -32s-14 -32 -32 -32s-32 14 -32 32s14 32 32 32zM32 224v0c18 0 32 -14 32 -32s-14 -32 -32 -32s-32 14 -32 32s14 32 32 32zM288 224v0c18 0 32 -14 32 -32s-14 -32 -32 -32s-32 14 -32 32s14 32 32 32z" /> - <glyph glyph-name="ion-ios-musical-note" unicode="&#xf46b;" horiz-adv-x="192" -d="M192 346v-1v-65c0 -3 -3 -6 -6 -5v0l-73 13v-192c0 -33 1 -80 -51 -82c-48 -2 -62 16 -62 41c0 19 9 39 51 41c22 1 37 1 45 1v273l90 -19l2 -1c2 0 3 -1 4 -3v0v-1v0z" /> - <glyph glyph-name="ion-ios-musical-notes" unicode="&#xf46c;" horiz-adv-x="320" -d="M320 128c0 -34 4 -80 -49 -82c-49 -2 -62 16 -62 41c0 20 9 39 52 41c23 1 34 2 43 2v160l-191 -32v-161c0 -34 3 -81 -50 -83c-49 -2 -63 17 -63 42c0 20 9 39 52 41c23 1 35 1 44 1v237l224 35v-242z" /> - <glyph glyph-name="ion-ios-navigate-outline" unicode="&#xf46d;" horiz-adv-x="416" -d="M208 384c-51 0 -99 -21 -135 -57s-57 -84 -57 -135s21 -99 57 -135s84 -57 135 -57s99 21 135 57s57 84 57 135s-21 99 -57 135s-84 57 -135 57zM208 400v0c115 0 208 -93 208 -208s-93 -208 -208 -208s-208 93 -208 208s93 208 208 208zM304 288l-96 -224v128h-128z" /> - <glyph glyph-name="ion-ios-navigate" unicode="&#xf46e;" horiz-adv-x="416" -d="M208 400c115 0 208 -93 208 -208s-93 -208 -208 -208s-208 93 -208 208s93 208 208 208zM208 64l96 224l-224 -96h128v-128z" /> - <glyph glyph-name="ion-ios-nutrition-outline" unicode="&#xf46f;" horiz-adv-x="384" -d="M294 214v0c6 -6 10 -14 10 -23c0 -11 -5 -20 -13 -26v0s-51 -37 -106 -77l-38 31c-2 2 -4 3 -6 3c-1 0 -2 0 -3 -1v0c-2 -2 -2 -6 1 -10l29 -35l-115 -84c-6 -4 -13 -8 -21 -8c-18 0 -32 14 -32 32c0 7 1 13 4 18v0c2 2 17 25 37 57l21 -17c2 -2 4 -2 6 -2c1 0 3 0 4 1v0 -c2 2 1 6 -2 10l-19 23c27 43 60 96 84 134l36 -30c2 -2 4 -3 6 -3c1 0 2 1 3 2v0c2 2 2 5 -1 9l-33 40c11 18 19 29 19 29v0c6 10 15 16 27 16c9 0 18 -4 24 -10v0l78 -79v0v0zM282 178c4 3 6 8 6 13c0 4 -2 9 -5 12l-5 4v1l-69 69v0l-5 5c-3 3 -8 5 -12 5 -c-6 0 -10 -3 -13 -8l-5 -8c-2 -3 -5 -7 -8 -12l25 -30v0l1 -1c8 -10 8 -22 0 -30l-1 -1l-1 -1c-4 -3 -8 -5 -13 -5s-11 2 -16 6v1h-1l-21 18l-24 -39l-44 -70l12 -14v0v0c8 -10 8 -23 0 -31v0c-4 -4 -9 -6 -15 -6c-5 0 -11 2 -16 6v0v0l-7 5c-3 -5 -5 -9 -8 -13 -c-12 -19 -16 -26 -18 -29c-1 -3 -2 -6 -2 -9c0 -9 7 -16 16 -16c3 0 6 2 11 5l101 74l-18 22h-1v0c-8 10 -8 23 0 31v0v0v0c4 4 10 6 15 6s11 -2 16 -6v0h1l28 -24c49 36 93 68 96 70zM376 333l8 -14l-5 -3l-103 -60l-17 17l71 123l2 4l14 -8l-3 -4l-63 -111l91 53z" /> - <glyph glyph-name="ion-ios-nutrition" unicode="&#xf470;" horiz-adv-x="384" -d="M295 214v0c6 -6 9 -13 9 -22c0 -11 -5 -20 -13 -26v0s-51 -38 -106 -78l-38 32c-4 3 -8 3 -10 1v0c-2 -2 -2 -6 1 -10l29 -35l-114 -84c-6 -4 -13 -8 -21 -8c-18 0 -32 14 -32 32c0 7 2 13 5 18v0c1 2 16 25 36 57l20 -17c4 -3 8 -3 10 -1v0c2 2 2 6 -1 10l-20 23 -c27 43 60 96 84 134l36 -30c4 -3 8 -3 10 -1v0c2 2 2 6 -1 10l-33 40c11 18 18 29 18 29v0c6 10 16 16 28 16c9 0 18 -4 24 -10v0l78 -79l1 -1v0zM384 309l-103 -59l-28 29l70 121l28 -16l-50 -85l67 38z" /> - <glyph glyph-name="ion-ios-paper-outline" unicode="&#xf471;" horiz-adv-x="384" -d="M48 384h336v-353c0 -17 -14 -31 -31 -31h-322c-17 0 -31 14 -31 31v305h32v-16h-16v-289c0 -8 7 -15 15 -15h322c8 0 15 7 15 15v337h-304v-320h-16v320v16zM96 320v16h128v-16h-128zM96 240v16h240v-16h-240zM96 160v16h192v-16h-192zM96 80v16h240v-16h-240z" /> - <glyph glyph-name="ion-ios-paper" unicode="&#xf472;" horiz-adv-x="384" -d="M48 384h336v-353c0 -17 -14 -31 -31 -31h-322c-17 0 -31 14 -31 31v305h32v-288h16v288v32v16zM96 336v-16h128v16h-128zM96 176v-16h192v16h-192zM336 80v16h-240v-16h240zM336 240v16h-240v-16h240z" /> - <glyph glyph-name="ion-ios-paperplane-outline" unicode="&#xf473;" horiz-adv-x="320" -d="M0 198l320 154l-146 -320l-57 115zM132 152l41 -83l115 249zM286 320l-248 -121l83 -36z" /> - <glyph glyph-name="ion-ios-paperplane" unicode="&#xf474;" horiz-adv-x="320" -d="M0 198l320 154l-214 -200zM320 352l-146 -320l-52 104z" /> - <glyph glyph-name="ion-ios-partlysunny-outline" unicode="&#xf475;" horiz-adv-x="384" -d="M144 298v54h16v-54h-16zM0 192v16h55v-16h-55zM44 299l10 11l32 -32l-11 -11zM223 268l-11 11l32 32l11 -11zM56 96l-10 11l31 31l11 -11zM129 153c-4 -3 -8 -7 -12 -12c-23 12 -39 36 -39 63c0 39 32 71 71 71c21 0 40 -10 53 -25c-4 -2 -9 -4 -14 -8 -c-10 11 -23 17 -39 17c-30 0 -55 -25 -55 -55c0 -23 15 -43 35 -51zM235 208c-34 0 -63 -28 -63 -62v-12s1 -10 1 -10c-5 0 -12 -1 -14 -1c-19 -3 -33 -18 -33 -37c0 -10 3 -19 10 -26s16 -11 26 -11h157c27 0 49 22 49 49s-22 50 -49 50c-2 0 -4 -1 -6 -1l-14 -2l-3 14 -c-3 14 -11 26 -22 35s-25 14 -39 14zM235 224v0c37 0 68 -26 76 -61h8c36 0 65 -29 65 -65s-29 -66 -65 -66h-157c-28 0 -52 24 -52 53c0 27 21 51 47 53v8c0 43 35 78 78 78z" /> - <glyph glyph-name="ion-ios-partlysunny" unicode="&#xf476;" horiz-adv-x="384" -d="M144 298v54h16v-54h-16zM0 192v16h55v-16h-55zM44 299l10 11l32 -32l-11 -11zM223 268l-11 11l32 32l11 -11zM56 96l-10 11l31 31l11 -11zM235 224v0c37 0 68 -26 76 -61h8c36 0 65 -29 65 -65s-29 -66 -65 -66h-157c-28 0 -52 24 -52 53c0 27 21 51 47 53v8 -c0 43 35 78 78 78zM201 252l1 -2v0c-31 -5 -62 -43 -62 -75c0 -2 1 -5 1 -7l-1 -1h-1c-11 -6 -18 -14 -22 -26v1v-1c-23 12 -39 36 -39 63c0 39 32 71 71 71c21 0 39 -9 52 -23z" /> - <glyph glyph-name="ion-ios-pause-outline" unicode="&#xf477;" horiz-adv-x="256" -d="M63 336h-47v-288h47v288zM79 352v0v-320h-79v320h79zM240 336h-47v-288h47v288zM256 352v0v-320h-79v320h79z" /> - <glyph glyph-name="ion-ios-pause" unicode="&#xf478;" horiz-adv-x="256" -d="M0 32v320h79v-320h-79zM177 32v320h79v-320h-79z" /> - <glyph glyph-name="ion-ios-paw-outline" unicode="&#xf479;" horiz-adv-x="384" -d="M380 252c6 -17 5 -38 -3 -57c-10 -25 -31 -43 -51 -43c-5 0 -10 1 -15 3c-22 10 -30 45 -17 79c10 28 31 46 51 46c5 0 10 -1 14 -3c10 -4 17 -13 21 -25zM362 202c6 15 7 31 2 44c-2 5 -5 12 -12 15c-2 1 -4 2 -7 2c-13 0 -28 -15 -36 -36c-9 -25 -6 -50 8 -56 -c2 -1 5 -1 8 -1c14 0 29 13 37 32zM90 234c13 -34 5 -69 -17 -79c-5 -2 -10 -3 -15 -3c-20 0 -41 18 -51 43c-8 19 -9 40 -3 57c4 12 11 21 21 25c4 2 9 3 14 3c20 0 41 -18 51 -46zM67 171c14 6 17 31 8 56c-8 21 -23 36 -36 36c-3 0 -5 -1 -7 -2c-7 -3 -10 -10 -12 -15 -c-5 -13 -4 -29 2 -44c8 -19 23 -32 37 -32c3 0 6 0 8 1zM134 237c-28 1 -52 32 -56 69c-2 23 4 45 16 60c8 10 19 17 31 18h6c27 -1 46 -29 50 -67c3 -24 -1 -48 -13 -63c-8 -9 -17 -15 -28 -16c-2 0 -4 -1 -6 -1zM107 356c-10 -12 -14 -29 -12 -48c3 -29 21 -53 40 -54h3 -c6 1 12 4 17 10c10 12 12 31 10 51c-3 29 -17 52 -35 53h-3c-9 -1 -16 -7 -20 -12zM192 208c64 0 128 -76 128 -149c0 -22 -11 -40 -22 -47c-13 -9 -23 -12 -42 -12c-23 0 -29 8 -40 15c-8 5 -14 10 -24 10s-16 -5 -24 -10c-11 -7 -17 -15 -40 -15c-19 0 -29 3 -42 12 -c-11 7 -22 25 -22 47c0 73 64 149 128 149zM290 27c6 4 14 16 14 32c0 30 -14 64 -36 91c-11 13 -23 24 -36 31c-13 8 -27 11 -40 11s-27 -3 -40 -11c-13 -7 -25 -18 -36 -31c-22 -27 -36 -61 -36 -91c0 -16 8 -28 14 -32c11 -7 18 -10 34 -10c14 0 19 4 26 9c2 1 4 3 6 4 -c9 6 18 12 32 12s23 -6 32 -12c2 -1 4 -3 6 -4c7 -5 12 -9 26 -9c16 0 23 3 34 10zM244 238c-11 1 -20 7 -28 16c-12 15 -16 39 -13 63c4 38 23 66 50 67h7c12 -1 22 -8 30 -18c12 -15 18 -37 16 -60c-4 -37 -28 -67 -56 -68h-6zM219 315c-2 -20 0 -39 10 -51 -c5 -6 11 -9 17 -10h3c19 1 38 25 41 54c2 19 -3 36 -13 48c-4 5 -10 11 -19 12h-4c-18 -1 -32 -24 -35 -53z" /> - <glyph glyph-name="ion-ios-paw" unicode="&#xf47a;" horiz-adv-x="384" -d="M380 252c6 -17 5 -38 -3 -57c-10 -25 -31 -43 -51 -43c-5 0 -10 1 -15 3c-22 10 -30 45 -17 79c10 28 31 46 51 46c5 0 10 -1 14 -3c10 -4 17 -13 21 -25zM90 234c13 -34 5 -69 -17 -79c-5 -2 -10 -3 -15 -3c-20 0 -41 18 -51 43c-8 19 -9 40 -3 57c4 12 11 21 21 25 -c4 2 9 3 14 3c20 0 41 -18 51 -46zM134 237c-28 1 -52 32 -56 69c-2 23 4 45 16 60c8 10 19 17 31 18h6c27 -1 46 -29 50 -67c3 -24 -1 -48 -13 -63c-8 -9 -17 -15 -28 -16c-2 0 -4 -1 -6 -1zM192 208c64 0 128 -76 128 -149c0 -22 -11 -40 -22 -47c-13 -9 -23 -12 -42 -12 -c-23 0 -29 8 -40 15c-8 5 -14 10 -24 10s-16 -5 -24 -10c-11 -7 -17 -15 -40 -15c-19 0 -29 3 -42 12c-11 7 -22 25 -22 47c0 73 64 149 128 149zM244 238c-11 1 -20 7 -28 16c-12 15 -16 39 -13 63c4 38 23 66 50 67h7c12 -1 22 -8 30 -18c12 -15 18 -37 16 -60 -c-4 -37 -28 -67 -56 -68h-6z" /> - <glyph glyph-name="ion-ios-people-outline" unicode="&#xf47b;" -d="M224 336v0v0zM317 113c11 -4 -11 4 0 0c28 -10 46 -35 46 -65h-28h-250c0 22 9 42 27 55c15 11 31 12 49 16c7 1 24 5 26 13s1 15 1 23c0 3 0 3 -2 5c-4 4 -6 9 -8 14c-2 8 -3 16 -4 24c-9 -2 -10 16 -12 21c-1 4 -7 24 3 21c-3 5 -4 13 -5 19c-2 13 -2 26 3 39 -c10 26 37 39 64 38c26 -1 51 -16 59 -42c4 -12 3 -26 1 -39c-1 -5 -2 -11 -4 -15c10 3 4 -20 3 -23c-2 -5 -3 -21 -12 -19c-1 -10 -2 -22 -7 -31c-1 -2 -7 -8 -7 -10v-11c0 -5 0 -10 2 -15s10 -7 14 -8c14 -5 27 -5 41 -10zM115 84c-6 -6 9 10 0 0c-6 -6 -10 -12 -12 -20h4 -h238c-4 15 -17 27 -30 33s-28 4 -41 9s-25 9 -28 25c-2 11 -2 22 -2 33c0 2 7 7 8 9c3 5 4 11 5 17c1 5 0 12 4 15c5 4 7 7 9 13c2 8 3 12 -1 19c-3 5 0 8 1 13c3 11 4 24 2 36c-8 37 -62 45 -86 19c-12 -13 -12 -31 -9 -47c1 -6 6 -14 3 -19c-1 -3 -5 -6 -4 -10 -c2 -5 2 -11 4 -16c2 -4 4 -6 7 -8s3 -6 3 -9c1 -7 2 -17 6 -23c3 -4 8 -6 8 -11v-21c-1 -8 -2 -18 -8 -24c-7 -6 -18 -10 -27 -12c-11 -3 -23 -3 -33 -7c-8 -3 -15 -8 -21 -14zM112 126c-15 -7 9 4 0 0c-9 -5 -18 -11 -25 -19c-1 -2 -6 -11 -7 -11h-25h-55c0 20 13 34 31 40 -c6 2 27 4 30 11c2 5 0 11 0 16c-10 -1 -24 1 -32 7c-2 2 3 9 4 12l3 12c1 9 1 19 1 28c0 16 -1 34 8 48c8 13 23 18 38 18c24 0 43 -13 47 -37c3 -16 1 -32 2 -48c0 -8 2 -16 5 -24c1 -2 5 -7 3 -9l-6 -3c-5 -2 -11 -3 -17 -4c-1 0 -8 0 -9 -1s0 -9 0 -11c0 -4 1 -6 5 -7 -c6 -2 19 -3 23 -8c2 -3 1 -5 -2 -5c-8 -1 -15 -1 -22 -5zM71 112c6 10 16 18 26 24c-9 9 -5 26 -4 37c0 2 0 5 2 5h8c6 0 11 1 17 2c-7 23 0 47 -5 70c-3 16 -15 23 -31 23c-17 0 -27 -9 -30 -25c-4 -22 3 -46 -4 -68c9 -1 17 -2 26 -2c1 0 1 -28 1 -29 -c-1 -12 -8 -18 -19 -22c-12 -4 -29 -3 -36 -15h49zM368 96c-2 8 -10 14 -16 19c-8 6 -18 13 -28 15c-3 1 -16 -1 -13 5c2 4 9 5 13 6s15 2 16 7c0 1 1 14 0 14c-6 0 -12 1 -18 2c-4 1 -7 2 -11 4c-6 3 -2 6 0 11c14 32 -10 88 32 105c15 6 34 5 48 -3c15 -9 20 -27 20 -44 -c0 -20 -4 -44 7 -62c2 -3 4 -4 0 -6c-2 -1 -4 -1 -6 -2l-12 -3s-9 -1 -13 -1c0 -4 -2 -13 1 -17c6 -7 21 -7 29 -10c18 -6 31 -20 31 -40h-80zM367 123c4 -4 -5 5 0 0s8 -11 15 -11h16h28c-7 12 -26 11 -38 16c-11 4 -16 12 -17 24c0 2 -1 27 1 27c9 0 18 0 26 1 -c-7 23 1 47 -4 70c-3 15 -15 23 -30 23c-17 0 -28 -8 -31 -25c-4 -23 2 -46 -5 -68c6 -2 12 -2 18 -2s8 1 9 -5c1 -11 5 -28 -4 -37c6 -4 11 -8 16 -13z" /> - <glyph glyph-name="ion-ios-people" unicode="&#xf47c;" -d="M317 113c11 -4 -11 4 0 0v0zM317 113c28 -10 46 -35 46 -65h-28h-250c0 22 9 42 27 55c15 11 31 12 49 16c7 1 24 5 26 13s1 15 1 23c0 3 0 3 -2 5c-4 4 -6 9 -8 14c-2 8 -3 16 -4 24c-9 -2 -10 16 -12 21c-1 4 -7 24 3 21c-3 5 -4 13 -5 19c-2 13 -2 26 3 39 -c10 26 37 39 64 38c26 -1 51 -16 59 -42c4 -12 3 -26 1 -39c-1 -5 -2 -11 -4 -15c10 3 4 -20 3 -23c-2 -5 -3 -21 -12 -19c-1 -10 -2 -22 -7 -31c-1 -2 -7 -8 -7 -10v-11c0 -5 0 -10 2 -15s10 -7 14 -8c14 -5 27 -5 41 -10zM111 126h2h-1h-1zM111 126c-9 -5 -17 -11 -24 -19 -c-1 -2 -6 -11 -7 -11h-25h-55c0 20 12 34 30 40c6 2 27 4 30 11c2 5 1 11 1 16c-10 -1 -24 1 -32 7c-2 2 3 9 4 12c1 4 2 7 3 11c1 9 1 19 1 28c0 16 -1 35 8 49c8 13 23 18 38 18c24 0 43 -13 47 -37c3 -16 1 -32 2 -48c0 -8 2 -16 5 -24c1 -2 5 -7 3 -9l-6 -3 -c-5 -2 -11 -3 -17 -4c-1 0 -8 0 -9 -1s0 -9 0 -11c0 -4 1 -6 5 -7c6 -2 19 -3 23 -8c2 -3 1 -5 -2 -5c-7 -1 -14 -2 -21 -5c2 1 2 2 -1 0c-8 -4 -4 -2 -1 0zM417 136c18 -6 31 -20 31 -40h-80c-2 8 -10 14 -16 19c-8 6 -18 13 -28 15c-3 1 -16 -1 -13 5c2 4 9 5 13 6 -s15 2 16 7c0 1 1 14 0 14c-6 0 -12 1 -18 2c-4 1 -7 2 -11 4c-6 3 -2 6 0 11c14 32 -10 88 32 105c15 6 34 5 48 -3c15 -9 20 -27 20 -44c0 -20 -4 -44 7 -62c2 -3 4 -4 0 -6c-2 -1 -4 -1 -6 -2l-12 -3s-9 -1 -13 -1c0 -4 -2 -13 1 -17c6 -7 21 -7 29 -10z" /> - <glyph glyph-name="ion-ios-person-outline" unicode="&#xf47d;" horiz-adv-x="320" -d="M106 246v0v0zM267 84c13 -5 53 -20 53 -52h-160h-160c0 32 40 47 53 52s31 6 43 9c7 2 17 5 20 9s1 41 1 41s-6 10 -9 18s-7 32 -7 32s-7 0 -9 12c-2 13 -6 17 -6 27c0 9 5 10 5 10v0s-4 13 -5 42c-1 34 25 68 74 68s75 -34 74 -68c-1 -29 -5 -42 -5 -42v0s5 -1 5 -10 -c0 -10 -3 -15 -6 -28c-2 -12 -9 -12 -9 -12s-4 -23 -7 -31s-9 -18 -9 -18s-2 -37 1 -41s13 -7 20 -9c12 -3 30 -4 43 -9zM160 48v0h137c-2 3 -4 6 -8 8c-7 5 -16 9 -27 13c-7 2 -17 4 -26 5c-6 1 -10 2 -15 3c-3 1 -21 5 -29 15c-4 5 -6 12 -6 32c0 10 1 20 1 20v4l2 4 -c1 2 6 9 8 15c2 5 5 19 6 28c0 0 0 -1 1 4s8 4 9 8s3 7 5 18s-5 12 -5 17c0 4 1 5 1 5v0c0 1 4 14 4 38c0 13 -5 26 -14 35c-11 11 -25 16 -44 16c-18 0 -34 -5 -45 -16c-9 -9 -13 -22 -13 -35c1 -24 4 -37 4 -38v0s1 -3 0 -6c-1 -5 -6 -5 -4 -16s4 -14 5 -18s8 -3 9 -8 -s1 -4 1 -4c1 -9 4 -23 6 -28c2 -6 6 -13 8 -15l2 -4v-4s1 -10 1 -20c0 -20 -2 -27 -6 -32c-8 -10 -26 -14 -29 -15c-5 -1 -10 -2 -16 -3c-9 -1 -18 -3 -25 -5c-11 -4 -20 -8 -27 -13c-4 -2 -6 -5 -8 -8h137z" /> - <glyph glyph-name="ion-ios-person" unicode="&#xf47e;" horiz-adv-x="320" -d="M267 84c13 -5 53 -20 53 -52h-160h-160c0 32 40 47 53 52s31 6 43 9c7 2 17 5 20 9s1 41 1 41s-6 10 -9 18s-7 32 -7 32s-7 0 -9 12c-2 13 -6 17 -6 27c0 9 5 10 5 10v0s-4 13 -5 42c-1 34 25 68 74 68s75 -34 74 -68c-1 -29 -5 -42 -5 -42v0s5 -1 5 -10 -c0 -10 -3 -15 -6 -28c-2 -12 -9 -12 -9 -12s-4 -23 -7 -31s-9 -18 -9 -18s-2 -37 1 -41s13 -7 20 -9c12 -3 30 -4 43 -9z" /> - <glyph glyph-name="ion-ios-personadd-outline" unicode="&#xf47f;" horiz-adv-x="320" -d="M320 295v-14h-25v-25h-14v25h-25v14h25v25h14v-25h25zM106 246v0v0zM267 84c13 -5 53 -20 53 -52h-160h-160c0 32 40 47 53 52s31 6 43 9c7 2 17 5 20 9s1 41 1 41s-6 10 -9 18s-7 32 -7 32s-7 0 -9 12c-2 13 -6 17 -6 27c0 9 5 10 5 10v0s-4 13 -5 42c-1 34 25 68 74 68 -s75 -34 74 -68c-1 -29 -5 -42 -5 -42v0s5 -1 5 -10c0 -10 -3 -15 -6 -28c-2 -12 -9 -12 -9 -12s-4 -23 -7 -31s-9 -18 -9 -18s-2 -37 1 -41s13 -7 20 -9c12 -3 30 -4 43 -9zM160 48v0h137c-2 3 -4 6 -8 8c-7 5 -16 9 -27 13c-7 2 -17 4 -26 5c-6 1 -10 2 -15 3 -c-3 1 -21 5 -29 15c-4 5 -6 12 -6 32c0 10 1 20 1 20v4l2 4c1 2 6 9 8 15c2 5 5 19 6 28c0 0 0 -1 1 4s8 4 9 8s3 7 5 18s-5 12 -5 17c0 4 1 5 1 5v0c0 1 4 14 4 38c0 13 -5 26 -14 35c-11 11 -25 16 -44 16c-18 0 -34 -5 -45 -16c-9 -9 -13 -22 -13 -35c1 -24 4 -37 4 -38 -v0s1 -3 0 -6c-1 -5 -6 -5 -4 -16s4 -14 5 -18s8 -3 9 -8s1 -4 1 -4c1 -9 4 -23 6 -28c2 -6 6 -13 8 -15l2 -4v-4s1 -10 1 -20c0 -20 -2 -27 -6 -32c-8 -10 -26 -14 -29 -15c-5 -1 -10 -2 -16 -3c-9 -1 -18 -3 -25 -5c-11 -4 -20 -8 -27 -13c-4 -2 -6 -5 -8 -8h137z" /> - <glyph glyph-name="ion-ios-personadd" unicode="&#xf480;" horiz-adv-x="320" -d="M320 295v-14h-25v-25h-14v25h-25v14h25v25h14v-25h25zM267 84c13 -5 53 -20 53 -52h-160h-160c0 32 40 47 53 52s31 6 43 9c7 2 17 5 20 9s1 41 1 41s-6 10 -9 18s-7 32 -7 32s-7 0 -9 12c-2 13 -6 17 -6 27c0 9 5 10 5 10v0s-4 13 -5 42c-1 34 25 68 74 68 -s75 -34 74 -68c-1 -29 -5 -42 -5 -42v0s5 -1 5 -10c0 -10 -3 -15 -6 -28c-2 -12 -9 -12 -9 -12s-4 -23 -7 -31s-9 -18 -9 -18s-2 -37 1 -41s13 -7 20 -9c12 -3 30 -4 43 -9z" /> - <glyph glyph-name="ion-ios-photos-outline" unicode="&#xf481;" -d="M64 320h384v-320h-384v320zM432 16v288h-352v-288h352zM0 384h384v-48h-16v32h-352v-288h32v-16h-48v320z" /> - <glyph glyph-name="ion-ios-photos" unicode="&#xf482;" -d="M64 320h384v-320h-384v320zM384 384v-48h-336v-272h-48v320h384z" /> - <glyph glyph-name="ion-ios-pie-outline" unicode="&#xf483;" -d="M256 367v0v-207v-12l-12 -4l-180 -45c6 -13 13 -25 21 -36c12 -16 25 -30 41 -42c33 -24 73 -37 114 -37c26 0 51 5 75 15c23 10 43 23 61 41s31 38 41 61c10 24 15 49 15 75c0 51 -20 100 -56 136c-32 32 -75 51 -120 55zM240 384v0c115 0 208 -93 208 -208 -s-93 -208 -208 -208c-92 0 -171 60 -198 143l198 49v224zM208 400c-31 -1 -60 -7 -85 -18c-24 -11 -44 -26 -61 -46c-29 -34 -46 -80 -46 -127v0v0c0 -13 3 -46 12 -70l180 46v215zM224 416v0v-244l-205 -52c-19 32 -19 89 -19 89c0 91 58 207 218 207h6z" /> - <glyph glyph-name="ion-ios-pie" unicode="&#xf484;" -d="M240 384v0c115 0 208 -93 208 -208s-93 -208 -208 -208c-92 0 -171 60 -198 143l198 49v224zM224 416v0v-244l-205 -52c-19 32 -19 89 -19 89c0 91 58 207 218 207h6z" /> - <glyph glyph-name="ion-ios-pint-outline" unicode="&#xf485;" horiz-adv-x="224" -d="M224 278c0 -98 -32 -101 -32 -181c0 -40 16 -71 16 -99c0 -27 -9 -30 -32 -30h-128c-23 0 -32 2 -32 29c0 28 16 60 16 100c0 80 -32 83 -32 181c0 21 1 89 19 125c4 9 13 13 32 13h122c19 0 28 -4 32 -13c18 -36 19 -104 19 -125zM34 396c-8 -16 -14 -43 -17 -76h190 -c-3 33 -9 60 -17 76c-1 2 -1 1 -2 2c-2 1 -6 2 -15 2h-122c-9 0 -13 -1 -15 -2c-1 -1 -1 0 -2 -2zM191 -15c0 1 1 5 1 13c0 11 -4 23 -7 37c-4 18 -9 39 -9 62c0 41 8 64 16 86c8 23 16 46 16 95c0 9 -1 18 -1 26h-190c0 -8 -1 -17 -1 -26c0 -49 8 -72 16 -95 -c8 -22 16 -45 16 -86c0 -23 -5 -44 -9 -62c-3 -14 -7 -26 -7 -37c0 -8 1 -12 1 -13c2 -1 7 -1 15 -1h128c8 0 13 0 15 1z" /> - <glyph glyph-name="ion-ios-pint" unicode="&#xf486;" horiz-adv-x="224" -d="M224 278c0 -98 -32 -101 -32 -181c0 -40 16 -71 16 -99c0 -27 -9 -30 -32 -30h-128c-23 0 -32 2 -32 29c0 28 16 60 16 100c0 80 -32 83 -32 181c0 21 1 89 19 125c4 9 13 13 32 13h122c19 0 28 -4 32 -13c18 -36 19 -104 19 -125zM34 396c-8 -16 -14 -43 -17 -76h190 -c-3 33 -9 60 -17 76c-1 2 -1 1 -2 2c-2 1 -6 2 -15 2h-122c-9 0 -13 -1 -15 -2c-1 -1 -1 0 -2 -2z" /> - <glyph glyph-name="ion-ios-play-outline" unicode="&#xf487;" horiz-adv-x="256" -d="M16 323v-262l210 131zM0 352v0l256 -160l-256 -160v320z" /> - <glyph glyph-name="ion-ios-play" unicode="&#xf488;" horiz-adv-x="256" -d="M0 352v0l256 -160l-256 -160v320z" /> - <glyph glyph-name="ion-ios-plus-empty" unicode="&#xf489;" horiz-adv-x="256" -d="M256 183h-120v-119h-17v119h-119v17h119v120h17v-120h120v-17z" /> - <glyph glyph-name="ion-ios-plus-outline" unicode="&#xf48a;" horiz-adv-x="416" -d="M208 400c115 0 208 -93 208 -208s-93 -208 -208 -208s-208 93 -208 208s93 208 208 208zM208 1c105 0 191 86 191 191s-86 191 -191 191s-191 -86 -191 -191s86 -191 191 -191zM216 320v-120h120v-17h-120v-119h-17v119h-119v17h119v120h17z" /> - <glyph glyph-name="ion-ios-plus" unicode="&#xf48b;" horiz-adv-x="416" -d="M208 400c115 0 208 -93 208 -208s-93 -208 -208 -208s-208 93 -208 208s93 208 208 208zM336 183v17h-120v120h-17v-120h-119v-17h119v-119h17v119h120z" /> - <glyph glyph-name="ion-ios-pricetag-outline" unicode="&#xf48c;" horiz-adv-x="416" -d="M416 416v-160l-256 -288l-160 160l256 288h160zM400 264v136h-136l-240 -272l136 -136zM320 288c-18 0 -32 14 -32 32s14 32 32 32s32 -14 32 -32s-14 -32 -32 -32zM320 336c-9 0 -16 -7 -16 -16s7 -16 16 -16s16 7 16 16s-7 16 -16 16z" /> - <glyph glyph-name="ion-ios-pricetag" unicode="&#xf48d;" horiz-adv-x="416" -d="M304 320c0 11 5 16 16 16s16 -5 16 -16s-5 -16 -16 -16s-16 5 -16 16zM256 416h160v-160l-256 -288l-160 160zM320 288c9 0 16 4 22 10s10 13 10 22s-4 16 -10 22s-13 10 -22 10s-16 -4 -22 -10s-10 -13 -10 -22s4 -16 10 -22s13 -10 22 -10z" /> - <glyph glyph-name="ion-ios-pricetags-outline" unicode="&#xf48e;" -d="M416 384h32v-144l-240 -272l-25 24l-23 -24l-160 160l256 288h160v-32zM160 -9l12 12l11 12l217 248v105v16v16h-137l-241 -272zM432 247v121h-16v-112l-221 -253l13 -12zM320 288c-18 0 -32 14 -32 32s14 32 32 32s32 -14 32 -32s-14 -32 -32 -32zM320 336 -c-9 0 -16 -7 -16 -16s7 -16 16 -16s16 7 16 16s-7 16 -16 16z" /> - <glyph glyph-name="ion-ios-pricetags" unicode="&#xf48f;" -d="M432 384h16v-144l-240 -272l-13 13l237 266v137zM256 416h160v-32v-16v-112l-221 -253l-12 -11l-23 -24l-160 160zM320 288c18 0 32 14 32 32s-14 32 -32 32s-32 -14 -32 -32s14 -32 32 -32zM304 320c0 11 5 16 16 16s16 -5 16 -16s-5 -16 -16 -16s-16 5 -16 16z" /> - <glyph glyph-name="ion-ios-printer-outline" unicode="&#xf490;" horiz-adv-x="416" -d="M384 336c18 0 32 -13 32 -31v-159c0 -18 -14 -32 -32 -32h-48v-114h-256v114h-48c-18 0 -32 14 -32 32v159c0 18 14 31 32 31h32v48h288v-48h32zM80 368v-32h256v32h-256zM320 16v192h-224v-192h224zM400 146v159c0 9 -7 15 -16 15v0h-352c-9 0 -16 -6 -16 -15v-159 -c0 -9 7 -16 16 -16h48v94h256v-94h48c9 0 16 7 16 16z" /> - <glyph glyph-name="ion-ios-printer" unicode="&#xf491;" horiz-adv-x="416" -d="M80 0v224h256v-224h-256zM80 -0v224h256v-224h-256zM64 352v32h288v-32h-288zM385 336c18 0 31 -14 31 -31v-158c0 -17 -13 -34 -31 -34h-33v126h-288v-126h-31c-18 0 -33 17 -33 34v158c0 17 15 31 33 31h352z" /> - <glyph glyph-name="ion-ios-pulse-strong" unicode="&#xf492;" horiz-adv-x="480" -d="M432 175c27 0 48 -20 48 -47s-21 -49 -48 -49c-21 0 -38 13 -45 31h-51c-7 0 -13 4 -15 11l-16 47l-50 -173c-2 -7 -8 -11 -15 -11h-1c-7 0 -14 5 -15 12l-51 308l-45 -182c-2 -7 -9 -12 -16 -12h-112v32h99l61 245c2 7 8 13 16 13s15 -7 16 -14l52 -314l45 155 -c2 7 8 11 15 11v0c7 0 13 -4 15 -11l29 -85h38c6 19 25 33 46 33z" /> - <glyph glyph-name="ion-ios-pulse" unicode="&#xf493;" -d="M416 160c18 0 32 -14 32 -32s-14 -32 -32 -32c-15 0 -27 10 -31 23h-65c-3 0 -7 2 -8 5l-23 72l-57 -198c-1 -3 -4 -6 -8 -6v0c-4 0 -7 3 -8 7l-58 346l-54 -220c-1 -4 -4 -6 -8 -6h-96v16h90l62 251c1 4 4 6 8 6s7 -3 8 -7l58 -349l54 190c1 3 4 5 8 5s7 -2 8 -5l30 -91 -h59c3 14 16 25 31 25z" /> - <glyph glyph-name="ion-ios-rainy-outline" unicode="&#xf494;" horiz-adv-x="288" -d="M220 269c38 0 68 -33 68 -71c0 -29 -19 -56 -45 -66l-55 -80c-2 -2 -5 -4 -8 -4c-5 0 -8 3 -8 8c0 2 1 4 2 6l46 66v0h-35l-31 -44c-2 -2 -4 -4 -7 -4c-5 0 -9 3 -9 8c0 2 1 3 2 5l25 35h-37l-53 -76c-2 -2 -4 -4 -7 -4c-5 0 -9 3 -9 8c0 2 2 4 3 6l46 66h-36l-32 -44 -c-2 -2 -4 -4 -7 -4c-5 0 -8 3 -8 8c0 2 1 4 2 6l25 34c-29 2 -52 27 -52 56c0 28 22 58 50 60c0 3 -1 5 -1 8c0 46 31 84 82 84c45 0 73 -31 81 -68c3 0 5 1 8 1zM220 146c28 0 52 24 52 52s-24 54 -52 54h-6l-15 -2l-3 15c-3 14 -11 31 -23 40c-12 10 -26 14 -41 14 -c-36 0 -66 -31 -66 -67v-12v-10c-6 0 -12 -2 -14 -2c-20 -3 -35 -23 -35 -43c0 -10 4 -20 11 -27s16 -12 26 -12h124v0v0h42z" /> - <glyph glyph-name="ion-ios-rainy" unicode="&#xf495;" horiz-adv-x="288" -d="M220 269c38 0 68 -33 68 -71c0 -29 -19 -56 -45 -66l-55 -80c-2 -2 -5 -4 -8 -4c-5 0 -8 3 -8 8c0 2 1 4 2 6l46 66v0h-35l-31 -44c-2 -2 -4 -4 -7 -4c-5 0 -9 3 -9 8c0 2 1 3 2 5l25 35h-37l-53 -76c-2 -2 -4 -4 -7 -4c-5 0 -9 3 -9 8c0 2 2 4 3 6l46 66h-36l-32 -44 -c-2 -2 -4 -4 -7 -4c-5 0 -8 3 -8 8c0 2 1 4 2 6l25 34c-29 2 -52 27 -52 56c0 28 22 58 50 60c0 3 -1 5 -1 8c0 46 31 84 82 84c45 0 73 -31 81 -68c3 0 5 1 8 1z" /> - <glyph glyph-name="ion-ios-recording-outline" unicode="&#xf496;" horiz-adv-x="480" -d="M370 304c61 0 110 -50 110 -112s-49 -112 -110 -112h-260c-61 0 -110 50 -110 112s49 112 110 112s110 -50 110 -112c0 -40 -21 -75 -53 -95h146c-32 20 -53 55 -53 95c0 62 49 112 110 112zM16 192c0 -53 42 -95 94 -95s93 42 93 95s-41 95 -93 95s-94 -42 -94 -95z -M370 97c52 0 94 42 94 95s-42 95 -94 95s-93 -42 -93 -95s41 -95 93 -95zM368 240c-26 0 -48 -22 -48 -48s22 -48 48 -48s48 22 48 48s-22 48 -48 48zM368 256v0c35 0 64 -29 64 -64s-29 -64 -64 -64s-64 29 -64 64s29 64 64 64zM112 240c-26 0 -48 -22 -48 -48 -s22 -48 48 -48s48 22 48 48s-22 48 -48 48zM112 256v0c35 0 64 -29 64 -64s-29 -64 -64 -64s-64 29 -64 64s29 64 64 64z" /> - <glyph glyph-name="ion-ios-recording" unicode="&#xf497;" horiz-adv-x="480" -d="M370 304c61 0 110 -50 110 -112s-49 -112 -110 -112h-260c-61 0 -110 50 -110 112s49 112 110 112s110 -50 110 -112c0 -40 -21 -76 -53 -95h146c-32 19 -53 55 -53 95c0 62 49 112 110 112zM112 128c35 0 64 29 64 64s-29 64 -64 64s-64 -29 -64 -64s29 -64 64 -64z -M368 128c35 0 64 29 64 64s-29 64 -64 64s-64 -29 -64 -64s29 -64 64 -64zM368 240c26 0 48 -22 48 -48s-22 -48 -48 -48s-48 22 -48 48s22 48 48 48zM112 240c26 0 48 -22 48 -48s-22 -48 -48 -48s-48 22 -48 48s22 48 48 48z" /> - <glyph glyph-name="ion-ios-redo-outline" unicode="&#xf498;" horiz-adv-x="384" -d="M0 48v32c0 17 -3 83 49 136c35 36 80 53 143 56v80l192 -128l-192 -128v80c-40 -1 -63 -9 -87 -20c-31 -14 -55 -44 -75 -77l-20 -31h-10zM208 256c-201 0 -192 -169 -192 -169c48 81 101 105 192 105v-65l148 97l-148 97v-65z" /> - <glyph glyph-name="ion-ios-redo" unicode="&#xf499;" horiz-adv-x="384" -d="M0 48v32c0 17 -3 83 49 136c35 36 80 53 143 56v80l192 -128l-192 -128v80c-40 -1 -63 -9 -87 -20c-31 -14 -55 -44 -75 -77l-20 -31h-10z" /> - <glyph glyph-name="ion-ios-refresh-empty" unicode="&#xf49a;" horiz-adv-x="256" -d="M128 64c-71 0 -128 57 -128 128s57 128 128 128v44l96 -64l-96 -56v56c-60 0 -108 -48 -108 -108s48 -108 108 -108s108 48 108 108h20c0 -71 -57 -128 -128 -128z" /> - <glyph glyph-name="ion-ios-refresh-outline" unicode="&#xf49b;" horiz-adv-x="416" -d="M316 192v0h20c0 -71 -57 -128 -128 -128s-128 57 -128 128s57 128 128 128v44l96 -64l-96 -56v56c-60 0 -108 -48 -108 -108s48 -108 108 -108s108 48 108 108zM208 400c115 0 208 -93 208 -208s-93 -208 -208 -208s-208 93 -208 208s93 208 208 208zM208 1 -c105 0 191 86 191 191s-86 191 -191 191s-191 -86 -191 -191s86 -191 191 -191z" /> - <glyph glyph-name="ion-ios-refresh" unicode="&#xf49c;" horiz-adv-x="416" -d="M208 400c115 0 208 -93 208 -208s-93 -208 -208 -208s-208 93 -208 208s93 208 208 208zM208 64c71 0 128 57 128 128h-20c0 -60 -48 -108 -108 -108s-108 48 -108 108s48 108 108 108v-56l96 56l-96 64v-44c-71 0 -128 -57 -128 -128s57 -128 128 -128z" /> - <glyph glyph-name="ion-ios-reload" unicode="&#xf49d;" -d="M192 384c106 0 192 -86 192 -192l55 53l9 -9l-70 -68l-67 68l9 9l51 -52c0 98 -80 178 -179 178s-179 -80 -179 -179s80 -179 179 -179c79 0 146 50 170 121l12 -3c-26 -76 -97 -131 -182 -131c-106 0 -192 86 -192 192s86 192 192 192z" /> - <glyph glyph-name="ion-ios-reverse-camera-outline" unicode="&#xf49e;" horiz-adv-x="384" -d="M238 129l2 2l11 -12l-2 -2c-16 -14 -36 -21 -57 -21c-45 0 -82 36 -87 78h-30l38 50l39 -50h-31c5 -33 35 -62 71 -62c17 0 33 6 46 17zM252 249c16 -14 25 -37 27 -57h30l-38 -51l-39 51h31c-5 35 -35 64 -71 64c-17 0 -33 -6 -46 -17l-2 -2l-11 12l2 2 -c16 14 36 21 57 21c22 0 44 -8 60 -23zM354 288c18 0 30 -14 30 -31v-176c0 -17 -12 -33 -30 -33h-320c-18 0 -34 16 -34 33v176c0 17 16 31 34 31h13v16h34v-16h13c32 36 43 48 55 48h88c12 0 23 -12 55 -48h62zM368 81v176c0 9 -5 15 -14 15h-62h-6s-4 1 -6 3s-6 8 -9 11 -c-12 13 -21 24 -27 30c-5 5 -7 4 -7 4h-88s-1 0 -6 -4c-6 -5 -15 -14 -26 -27c-3 -4 -8 -11 -11 -14s-4 -3 -6 -3h-6h-60c-9 0 -18 -7 -18 -15v-176c0 -9 9 -17 18 -17h320c8 0 14 8 14 17z" /> - <glyph glyph-name="ion-ios-reverse-camera" unicode="&#xf49f;" horiz-adv-x="384" -d="M354 288c18 0 30 -14 30 -31v-176c0 -17 -12 -33 -30 -33h-320c-18 0 -34 16 -34 33v176c0 17 16 31 34 31h13v16h34v-16h13c32 36 43 48 55 48h88c12 0 23 -12 55 -48h62zM249 117l2 2l-11 12l-2 -2c-13 -11 -29 -17 -46 -17c-36 0 -66 29 -71 62h31l-39 50l-38 -50h30 -c5 -42 42 -78 87 -78c21 0 41 7 57 21zM271 141l38 51h-30c-2 20 -11 43 -27 57c-16 15 -38 23 -60 23c-21 0 -41 -7 -57 -21l-2 -2l11 -12l2 2c13 11 29 17 46 17c36 0 66 -29 71 -64h-31z" /> - <glyph glyph-name="ion-ios-rewind-outline" unicode="&#xf4a0;" -d="M432 293l-184 -101l184 -101v202zM208 292v0l-176 -100l176 -100v95v27v78zM224 320v0v-123l224 123v-256l-224 123v-123l-224 128z" /> - <glyph glyph-name="ion-ios-rewind" unicode="&#xf4a1;" -d="M224 320v0v-123l224 123v-256l-224 123v-123l-224 128z" /> - <glyph glyph-name="ion-ios-rose-outline" unicode="&#xf4a2;" horiz-adv-x="320" -d="M284 295c-4 -1 -9 -3 -13 -4c-37 -11 -71 -24 -103 -39c-17 -8 -24 -12 -44 -24l-7 -4c-31 -18 -50 -33 -63 -51c-15 -21 -22 -45 -22 -77c0 -16 3 -30 9 -44c6 -13 14 -26 25 -36c23 -21 55 -32 94 -32s71 11 94 32c11 10 19 23 25 36c6 14 9 28 9 44c0 20 -5 40 -11 60 -c-11 40 -23 83 7 139zM320 320v0c-77 -96 -16 -151 -16 -224s-56 -128 -144 -128s-144 55 -144 128s35 109 93 142c25 14 33 19 52 28c30 14 65 28 105 40c17 5 35 10 54 14zM38 325c14 -28 18 -57 19 -83c9 7 20 13 30 20c7 4 14 9 21 13c5 3 10 6 16 9c-5 4 -11 7 -17 11 -c-22 13 -48 23 -69 30zM0 352v0s66 -15 115 -43c15 -8 28 -18 37 -29c-12 -6 -24 -12 -36 -19c-7 -4 -14 -8 -20 -12c-25 -16 -44 -31 -57 -42c5 41 2 98 -39 145zM249 367c-8 -1 -20 -2 -35 -7c-25 -8 -47 -20 -64 -36c8 -6 15 -12 21 -18c29 12 65 26 95 34 -c-5 10 -12 20 -17 27zM256 384v0s26 -32 32 -55c-33 -8 -84 -25 -121 -42l-3 3c-9 11 -22 22 -39 32c52 60 131 62 131 62zM85 394c-6 -10 -10 -20 -14 -28c12 -4 22 -10 36 -17c4 5 9 10 14 14c-13 15 -27 25 -36 31zM80 416v0s35 -16 64 -56c-12 -9 -23 -20 -33 -31 -c-26 13 -40 21 -61 27c5 15 15 38 30 60z" /> - <glyph glyph-name="ion-ios-rose" unicode="&#xf4a3;" horiz-adv-x="320" -d="M320 320v0c-77 -96 -16 -151 -16 -224s-56 -128 -144 -128s-144 55 -144 128s35 109 93 142c25 14 33 19 52 28c30 14 65 28 105 40c17 5 35 10 54 14zM0 352v0s66 -15 115 -43c15 -8 28 -18 37 -29c-12 -6 -24 -12 -36 -19c-7 -4 -14 -8 -20 -12 -c-25 -16 -44 -31 -57 -42c5 41 2 98 -39 145zM256 384v0s26 -32 32 -55c-33 -8 -84 -25 -121 -42l-3 3c-9 11 -22 22 -39 32c52 60 131 62 131 62zM80 416v0s35 -16 64 -56c-12 -9 -23 -20 -33 -31c-26 13 -40 21 -61 27c5 15 15 38 30 60z" /> - <glyph glyph-name="ion-ios-search-strong" unicode="&#xf4a4;" horiz-adv-x="384" -d="M280 150l-4 -7l108 -109l-34 -34l-108 109l-7 -5c-24 -15 -53 -25 -83 -25c-84 0 -152 69 -152 153s68 152 152 152s152 -68 152 -152c0 -30 -9 -58 -24 -82zM237 317c-23 23 -53 35 -85 35s-62 -12 -85 -35s-35 -53 -35 -85s12 -62 35 -85s53 -35 85 -35s62 12 85 35 -s36 53 36 85s-13 62 -36 85z" /> - <glyph glyph-name="ion-ios-search" unicode="&#xf4a5;" horiz-adv-x="384" -d="M384 23l-23 -23l-113 113c-26 -21 -60 -33 -96 -33c-84 0 -152 68 -152 152s68 152 152 152s152 -68 152 -152c0 -36 -12 -69 -33 -95zM56 135c26 -26 60 -39 96 -39s70 14 96 40s40 60 40 96s-14 70 -40 96s-60 40 -96 40s-70 -14 -96 -40s-40 -60 -40 -96 -s14 -71 40 -97z" /> - <glyph glyph-name="ion-ios-settings-strong" unicode="&#xf4a6;" -d="M0 72h283c6 14 21 24 37 24s31 -10 37 -24h91v-32h-91c-6 -14 -21 -24 -37 -24s-31 10 -37 24h-283zM0 208h91c6 14 21 24 37 24s31 -10 37 -24h283v-32h-283c-6 -14 -21 -24 -37 -24s-31 10 -37 24h-91zM0 344h283c6 14 21 24 37 24s31 -10 37 -24h91v-32h-91 -c-6 -14 -21 -24 -37 -24s-31 10 -37 24h-283z" /> - <glyph glyph-name="ion-ios-settings" unicode="&#xf4a7;" -d="M320 344c-9 0 -16 -7 -16 -16s7 -16 16 -16s16 7 16 16s-7 16 -16 16zM320 360v0c18 0 32 -14 32 -32s-14 -32 -32 -32s-32 14 -32 32s14 32 32 32zM320 72c-9 0 -16 -7 -16 -16s7 -16 16 -16s16 7 16 16s-7 16 -16 16zM320 88v0c18 0 32 -14 32 -32s-14 -32 -32 -32 -s-32 14 -32 32s14 32 32 32zM128 208c-9 0 -16 -7 -16 -16s7 -16 16 -16s16 7 16 16s-7 16 -16 16zM128 224v0c18 0 32 -14 32 -32s-14 -32 -32 -32s-32 14 -32 32s14 32 32 32zM175 200h273v-16h-273c0 3 1 5 1 8s-1 5 -1 8zM80 192c0 -3 1 -5 1 -8h-81v16h81 -c0 -3 -1 -5 -1 -8zM367 64h81v-16h-81c0 3 1 5 1 8s-1 5 -1 8zM272 56c0 -3 1 -5 1 -8h-273v16h273c0 -3 -1 -5 -1 -8zM367 336h81v-16h-81c0 3 1 5 1 8s-1 5 -1 8zM273 336c0 -3 -1 -5 -1 -8s1 -5 1 -8h-273v16h273z" /> - <glyph glyph-name="ion-ios-shuffle-strong" unicode="&#xf4a8;" horiz-adv-x="384" -d="M301 296c-85 0 -119 -64 -152 -126c-1 -3 -3 -5 -4 -8l-1 -1c-2 -3 -2 -5 -4 -8c-21 -38 -43 -68 -68 -83c-15 -9 -34 -18 -72 -18v32c45 0 76 18 112 84c2 3 2 6 4 9h1c1 2 3 4 4 7c34 64 76 144 180 144h15l-52 43l21 25l99 -84l-99 -82l-21 24l51 42h-14zM285 154 -l99 -82l-99 -84l-21 25l52 43h-15c-78 0 -122 45 -153 95l18 33c29 -51 64 -96 135 -96h14l-51 42zM112 216c-36 66 -67 84 -112 84v32c38 0 57 -9 72 -18c25 -15 47 -44 67 -81c-7 -11 -13 -22 -19 -33c-1 2 -2 5 -3 7h-1c-2 3 -2 6 -4 9z" /> - <glyph glyph-name="ion-ios-shuffle" unicode="&#xf4a9;" horiz-adv-x="384" -d="M298 241l-10 12l62 51h-46c-93 0 -129 -75 -164 -139c-2 -3 -3 -6 -5 -9c-20 -37 -41 -61 -65 -75c-14 -8 -33 -17 -70 -17v16c48 0 83 14 121 84c2 3 3 6 5 9c35 65 75 147 178 147h46l-62 52l10 12l86 -72zM135 228c0 -1 1 -2 1 -3c-3 -5 -6 -11 -9 -16c0 1 -1 1 -1 2 -c-2 3 -3 6 -5 9c-38 70 -73 84 -121 84v16c37 0 56 -9 70 -17c24 -14 45 -38 65 -75zM298 143l86 -71l-86 -72l-10 12l62 52h-46c-76 0 -118 45 -149 95c1 2 2 5 3 7c2 3 4 7 6 10c30 -50 67 -96 140 -96h46l-62 51z" /> - <glyph glyph-name="ion-ios-skipbackward-outline" unicode="&#xf4aa;" horiz-adv-x="320" -d="M0 352h79v-142l241 142v-320l-241 142v-142h-79v320zM80 192l7 -4l217 -128v264v0l-217 -128zM16 336v-288h47v126v8v28v126h-47z" /> - <glyph glyph-name="ion-ios-skipbackward" unicode="&#xf4ab;" horiz-adv-x="320" -d="M0 352h79v-142l241 142v-320l-241 142v-142h-79v320z" /> - <glyph glyph-name="ion-ios-skipforward-outline" unicode="&#xf4ac;" horiz-adv-x="320" -d="M241 352h79v-320h-79v142l-241 -142v320l241 -142v142zM233 188l7 4l-7 4l-217 128v0v-264zM304 48v288h-47v-126v-28v-8v-126h47z" /> - <glyph glyph-name="ion-ios-skipforward" unicode="&#xf4ad;" horiz-adv-x="320" -d="M241 352h79v-320h-79v142l-241 -142v320l241 -142v142z" /> - <glyph glyph-name="ion-ios-snowy" unicode="&#xf4ae;" horiz-adv-x="256" -d="M252 131c4 -2 5 -7 3 -11s-7 -5 -11 -3l-29 17c-2 -8 -2 -16 0 -24c1 -4 -3 -9 -7 -10s-8 2 -9 6c-2 12 -3 24 1 36l-64 36v-73c11 -3 22 -8 31 -16c3 -3 4 -8 1 -11s-8 -4 -11 -1c-6 5 -13 10 -21 12v-33c0 -4 -4 -8 -8 -8s-8 4 -8 8v33c-8 -2 -15 -7 -21 -12 -c-3 -3 -8 -2 -11 1s-3 8 0 11c9 8 20 13 32 16v73l-65 -36c4 -12 4 -23 2 -35c-1 -4 -5 -8 -9 -7s-8 6 -7 10c2 8 2 16 0 24l-29 -17c-4 -2 -9 -1 -11 3s-1 9 3 11l29 16c-6 6 -13 10 -21 13c-4 1 -6 6 -5 10c2 4 6 6 10 5c12 -4 22 -11 30 -19l65 36l-65 37 -c-8 -9 -18 -15 -30 -19c-4 -1 -9 0 -10 4s1 10 5 11c8 3 15 6 21 12l-29 16c-4 2 -5 7 -3 11s7 5 11 3l29 -16c2 8 2 15 0 23c-1 4 3 9 7 10s8 -2 9 -6c2 -12 1 -25 -2 -36l65 -36v73c-12 3 -23 8 -32 16c-3 3 -3 8 0 11s8 4 11 1c6 -5 13 -10 21 -12v33c0 4 4 8 8 8 -s8 -4 8 -8v-33c8 2 15 7 21 12c3 3 8 2 11 -1s2 -8 -1 -11c-9 -8 -20 -13 -31 -16v-73l64 36c-3 11 -4 24 -2 36c1 4 6 7 10 6s7 -6 6 -10c-2 -8 -1 -15 1 -23l29 16c4 2 9 1 11 -3s1 -9 -3 -11l-29 -16c6 -6 13 -10 21 -13c4 -1 6 -6 5 -10s-6 -6 -10 -5 -c-12 4 -23 10 -31 19l-64 -36l64 -36c8 8 19 15 31 19c4 1 9 -1 10 -5s-1 -9 -5 -10c-8 -3 -15 -7 -21 -13z" /> - <glyph glyph-name="ion-ios-speedometer-outline" unicode="&#xf4af;" -d="M224 384c124 0 224 -100 224 -224c0 -57 -21 -108 -56 -148c-4 -4 -7 -8 -11 -12l-10 10l-1 2c-19 18 -41 33 -65 43c-26 11 -53 16 -81 16s-55 -5 -81 -16c-24 -10 -46 -25 -65 -43l-1 -2l-10 -10c-4 4 -7 8 -11 12c-35 40 -56 91 -56 148c0 124 100 224 224 224z -M416 79c10 23 15 48 16 73h-32v16h32c-1 25 -6 50 -16 73c-9 22 -23 42 -39 60l-27 -27l-6 6l-5 5v0h-1l27 27c-18 17 -38 31 -60 40c-23 10 -48 15 -74 16v-38h-16v38c-25 -1 -49 -6 -72 -16c-22 -10 -43 -23 -61 -40l27 -27v0v0l-6 -6l-5 -5l-27 27 -c-16 -18 -30 -38 -39 -60c-10 -23 -15 -49 -16 -74h32v-16h-32c1 -25 6 -49 16 -72c9 -20 20 -39 35 -56c40 40 96 64 157 64s117 -24 157 -64c15 17 26 36 35 56zM336 273l2 -1l-75 -84c6 -8 9 -18 9 -28c0 -26 -22 -48 -48 -48c-10 0 -19 4 -27 9l-13 -12l-11 11l12 12 -c-6 8 -9 18 -9 28c0 26 22 48 48 48c10 0 19 -3 27 -8zM224 128c18 0 32 14 32 32s-14 32 -32 32s-32 -14 -32 -32s14 -32 32 -32z" /> - <glyph glyph-name="ion-ios-speedometer" unicode="&#xf4b0;" -d="M385 169v-15h30c-1 -22 -6 -44 -15 -65c-8 -18 -19 -35 -32 -50c-39 37 -90 58 -144 58s-105 -21 -144 -58c-13 15 -24 32 -32 50c-9 21 -14 43 -15 65h28h1v16h-29c1 23 6 45 15 66c9 20 20 38 35 54l25 -24l10 10l1 1v0v0l-25 25c16 15 36 26 56 35c21 9 43 14 66 15 -v-34h14h1v34c23 -1 46 -6 67 -15s39 -20 55 -35l-24 -25l11 -11l25 25c15 -16 26 -35 35 -55c9 -21 14 -43 15 -66h-30v-1zM272 160c0 10 -3 20 -9 28l63 76l-2 1l-73 -65c-8 5 -17 8 -27 8c-26 0 -48 -22 -48 -48c0 -10 3 -20 9 -28l-12 -12l11 -11l13 12c8 -5 17 -9 27 -9 -c26 0 48 22 48 48zM224 384c124 0 224 -100 224 -224c0 -57 -21 -108 -56 -148c-4 -4 -7 -8 -11 -12h-23c-32 39 -80 64 -134 64s-102 -25 -134 -64h-23c-4 4 -7 8 -11 12c-35 40 -56 91 -56 148c0 124 100 224 224 224zM379 27c34 37 52 86 52 136c0 55 -22 106 -61 145 -s-91 60 -146 60s-107 -21 -146 -60s-61 -90 -61 -145c0 -50 18 -99 52 -136l10 -10l1 -1v1l9 9l1 1v0c17 17 38 30 60 39c24 10 48 15 74 15s50 -5 74 -15c22 -9 43 -22 60 -39v0l1 -1l9 -9v-1l1 1zM192 160c0 21 11 32 32 32s32 -11 32 -32s-11 -32 -32 -32s-32 11 -32 32z -" /> - <glyph glyph-name="ion-ios-star-half" unicode="&#xf4b1;" -d="M140 143l-140 98h171l53 159l53 -159h171l-140 -98l54 -159l-138 99l-138 -99zM224 347v-244l107 -76l-43 122l108 75h-131z" /> - <glyph glyph-name="ion-ios-star-outline" unicode="&#xf4b2;" -d="M448 241l-140 -98l54 -159l-138 99l-138 -99l54 159l-140 98h171l53 159l53 -159h171zM331 27l-43 122l108 75h-131l-41 123l-41 -123h-131l108 -75l-43 -122l107 76z" /> - <glyph glyph-name="ion-ios-star" unicode="&#xf4b3;" -d="M448 241l-140 -98l54 -159l-138 99l-138 -99l54 159l-140 98h171l53 159l53 -159h171z" /> - <glyph glyph-name="ion-ios-stopwatch-outline" unicode="&#xf4b4;" horiz-adv-x="384" -d="M334 301c32 -35 50 -80 50 -128c0 -104 -86 -189 -192 -189s-192 85 -192 189c0 48 18 94 51 129l1 1h-18l-8 -8l-23 23l41 40l23 -22l-9 -9v-18c31 30 72 50 116 53h2v38h32v-38c43 -4 82 -21 113 -49l5 -5v19l-9 9l23 22l41 -40l-22 -23l-9 8h-18zM192 2 -c96 0 173 77 173 171s-77 171 -173 171c-95 0 -173 -77 -173 -171s77 -171 173 -171zM200 191c14 -4 24 -17 24 -31c0 -15 -10 -26 -24 -30l-8 -18v0l-8 18c-14 4 -24 15 -24 30c0 14 12 27 24 31v129h16v-129z" /> - <glyph glyph-name="ion-ios-stopwatch" unicode="&#xf4b5;" horiz-adv-x="384" -d="M334 301c32 -35 50 -80 50 -128c0 -104 -86 -189 -192 -189s-192 85 -192 189c0 48 18 94 51 129l1 1h-18l-8 -8l-23 23l41 40l23 -22l-9 -9v-18c31 30 72 50 116 53h2v38h32v-38c43 -4 82 -21 113 -49l5 -5v19l-9 9l23 22l41 -40l-22 -23l-9 8h-18zM200 130 -c14 4 24 15 24 30c0 14 -10 27 -24 31v129h-16v-129c-12 -4 -24 -17 -24 -31c0 -15 10 -26 24 -30l8 -18z" /> - <glyph glyph-name="ion-ios-sunny-outline" unicode="&#xf4b6;" horiz-adv-x="320" -d="M151 296v56h18v-56h-18zM151 32v60h18v-60h-18zM264 183v18h56v-18h-56zM0 183v18h60v-18h-60zM240 130l34 -34l-12 -12l-33 34zM64 306l34 -33l-12 -12l-34 34zM229 272l33 34l12 -12l-34 -33zM52 96l34 34l11 -12l-33 -34zM160 116c-42 0 -76 34 -76 76s34 76 76 76 -s76 -34 76 -76s-34 -76 -76 -76zM160 251c-32 0 -59 -27 -59 -59s27 -59 59 -59s59 27 59 59s-27 59 -59 59z" /> - <glyph glyph-name="ion-ios-sunny" unicode="&#xf4b7;" horiz-adv-x="320" -d="M151 296v56h18v-56h-18zM151 32v60h18v-60h-18zM264 183v18h56v-18h-56zM0 183v18h60v-18h-60zM240 130l34 -34l-12 -12l-33 34zM64 306l34 -33l-12 -12l-34 34zM229 272l33 34l12 -12l-34 -33zM52 96l34 34l11 -12l-33 -34zM160 116c-42 0 -76 34 -76 76s34 76 76 76 -s76 -34 76 -76s-34 -76 -76 -76z" /> - <glyph glyph-name="ion-ios-telephone-outline" unicode="&#xf4b8;" horiz-adv-x="352" -d="M336 112c16 -16 26 -35 0 -66c-25 -30 -42 -30 -64 -30c-24 0 -58 14 -93 40c-32 23 -46 34 -78 67c-34 35 -55 64 -79 107c-27 50 -24 74 -18 92c4 12 14 24 28 33l1 1c6 4 18 12 32 12c13 0 24 -6 34 -18l1 -1c11 -14 24 -31 32 -47c10 -21 10 -38 -1 -53 -c-9 -12 -12 -19 -12 -23s5 -9 13 -18l1 -1c16 -18 20 -23 26 -29c1 -1 3 -2 4 -3l2 -2c7 -7 11 -12 29 -28l1 -1c7 -6 9 -8 12 -8c5 0 16 7 29 15c4 3 11 5 17 5c27 0 68 -29 83 -44zM324 57c19 22 13 31 1 43c-13 14 -50 39 -72 39c-3 0 -6 -1 -8 -2 -c-19 -12 -28 -18 -37 -18s-15 6 -23 13h-1c-19 16 -23 21 -30 29l-2 2c-1 1 -3 2 -4 3c-6 6 -11 12 -27 30v1c-10 11 -17 18 -18 28s5 20 16 34c15 20 -5 48 -31 79l-1 1c-7 8 -14 12 -22 12c-10 0 -18 -6 -23 -9c-1 0 -2 -1 -2 -1c-11 -7 -18 -16 -21 -24 -c-5 -16 -7 -35 17 -79c23 -42 43 -70 76 -104c31 -32 45 -42 76 -64c32 -23 64 -38 84 -38c21 0 32 1 52 25z" /> - <glyph glyph-name="ion-ios-telephone" unicode="&#xf4b9;" horiz-adv-x="352" -d="M336 112c16 -16 26 -35 0 -66c-25 -30 -42 -30 -64 -30c-24 0 -58 14 -93 40c-32 23 -46 34 -78 67c-34 35 -55 64 -79 107c-27 50 -24 74 -18 92c4 12 14 24 28 33l1 1c6 4 18 12 32 12c13 0 24 -6 34 -18l1 -1c11 -14 24 -31 32 -47c10 -21 10 -38 -1 -53 -c-9 -12 -12 -19 -12 -23s5 -9 13 -18l1 -1c16 -18 20 -23 26 -29c1 -1 3 -2 4 -3l2 -2c7 -7 11 -12 29 -28l1 -1c7 -6 9 -8 12 -8c5 0 16 7 29 15c4 3 11 5 17 5c27 0 68 -29 83 -44z" /> - <glyph glyph-name="ion-ios-tennisball-outline" unicode="&#xf4ba;" horiz-adv-x="416" -d="M416 192v-8v0c0 -5 0 -11 -1 -16v0c-11 -97 -90 -174 -187 -183v0h-4h-2s-1 -1 -2 -1h-3h-1h-8c-115 0 -208 93 -208 208s93 208 208 208s208 -93 208 -208zM399 192c0 105 -86 191 -191 191c-3 0 -5 -1 -8 -1c1 -24 6 -46 15 -68c10 -26 26 -49 46 -69s43 -36 69 -46 -c22 -9 44 -14 68 -15c0 3 1 5 1 8zM17 192c0 -105 86 -191 191 -191h4c-1 22 -7 45 -15 66c-10 26 -26 48 -46 68s-42 36 -68 46c-21 8 -44 14 -66 15v-4zM228 2c88 9 158 78 169 166c-54 3 -106 25 -147 66s-63 93 -66 147c-88 -11 -157 -81 -166 -169 -c53 -3 105 -25 145 -65s62 -92 65 -145z" /> - <glyph glyph-name="ion-ios-tennisball" unicode="&#xf4bb;" horiz-adv-x="416" -d="M0 196v0v0v0zM212 -16h1h-1v0zM208 400c115 0 208 -93 208 -208c0 -8 0 -16 -1 -24v0v0c-11 -97 -90 -174 -187 -183v0v0c-6 -1 -13 -1 -20 -1c-115 0 -208 93 -208 208v4v0v0c0 6 0 11 1 16v0v0c9 97 86 176 183 187v0v0c6 1 11 1 16 1v0v0h8zM83 181 -c26 -10 48 -26 68 -46s36 -42 46 -68c8 -21 14 -44 15 -66c5 0 11 0 16 1c-3 53 -25 105 -65 145s-92 62 -145 65c-1 -5 -1 -11 -1 -16c22 -1 45 -7 66 -15zM250 234c41 -41 93 -63 147 -66c1 5 1 11 1 16c-24 1 -46 6 -68 15c-26 10 -49 26 -69 46s-36 43 -46 69 -c-9 22 -14 44 -15 68c-5 0 -11 0 -16 -1c3 -54 25 -106 66 -147z" /> - <glyph glyph-name="ion-ios-thunderstorm-outline" unicode="&#xf4bc;" horiz-adv-x="274" -d="M193 176l-88 -128l29 96h-52l15 80h72l-16 -48h40zM209 275c36 0 65 -29 65 -65s-29 -66 -65 -66h-8v17h8c27 0 49 22 49 49s-22 50 -49 50h-6l-14 -2l-3 14c-3 14 -11 26 -22 35s-25 13 -39 13c-34 0 -63 -27 -63 -62v-12s1 -9 1 -9c-5 0 -12 -2 -14 -2 -c-19 -3 -33 -18 -33 -37c0 -10 3 -19 10 -26s16 -11 26 -11h11v-17h-11c-28 0 -52 24 -52 53c0 27 21 51 47 53v8c0 43 35 78 78 78c37 0 68 -26 76 -61h8z" /> - <glyph glyph-name="ion-ios-thunderstorm" unicode="&#xf4bd;" horiz-adv-x="274" -d="M153 176h40l-22 -32l-66 -96l29 96h-52l15 80h72zM84 240h107l-16 -48h18h30l-33 -48h19c36 0 65 30 65 66s-29 65 -65 65h-8c-8 35 -39 61 -76 61c-43 0 -78 -35 -78 -78v-8c-26 -2 -47 -26 -47 -53c0 -29 24 -53 52 -53h14z" /> - <glyph glyph-name="ion-ios-time-outline" unicode="&#xf4be;" -d="M224 416c124 0 224 -100 224 -224s-100 -224 -224 -224s-224 100 -224 224s100 224 224 224zM371 45c19 19 35 41 45 66c11 26 16 53 16 81s-5 55 -16 81c-10 25 -26 47 -45 66s-41 35 -66 45c-26 11 -53 16 -81 16s-55 -5 -81 -16c-25 -10 -47 -26 -66 -45 -s-35 -41 -45 -66c-11 -26 -16 -53 -16 -81s5 -55 16 -81c10 -25 26 -47 45 -66s41 -35 66 -45c26 -11 53 -16 81 -16s55 5 81 16c25 10 47 26 66 45zM216 368c0 5 3 8 8 8s8 -3 8 -8s-3 -8 -8 -8s-8 3 -8 8zM216 16c0 5 3 8 8 8s8 -3 8 -8s-3 -8 -8 -8s-8 3 -8 8zM392 192 -c0 5 3 8 8 8s8 -3 8 -8s-3 -8 -8 -8s-8 3 -8 8zM40 192c0 5 3 8 8 8s8 -3 8 -8s-3 -8 -8 -8s-8 3 -8 8zM128 344c0 5 3 8 8 8s8 -3 8 -8s-3 -8 -8 -8s-8 3 -8 8zM304 40c0 5 3 8 8 8s8 -3 8 -8s-3 -8 -8 -8s-8 3 -8 8zM368 280c0 5 3 8 8 8s8 -3 8 -8s-3 -8 -8 -8s-8 3 -8 8 -zM64 104c0 5 3 8 8 8s8 -3 8 -8s-3 -8 -8 -8s-8 3 -8 8zM64 280c0 5 3 8 8 8s8 -3 8 -8s-3 -8 -8 -8s-8 3 -8 8zM368 104c0 5 3 8 8 8s8 -3 8 -8s-3 -8 -8 -8s-8 3 -8 8zM304 344c0 5 3 8 8 8s8 -3 8 -8s-3 -8 -8 -8s-8 3 -8 8zM128 40c0 5 3 8 8 8s8 -3 8 -8s-3 -8 -8 -8 -s-8 3 -8 8zM238 200c4 -8 2 -18 -6 -22v-122c0 -4 -4 -8 -8 -8s-8 4 -8 8v122c-2 1 -4 4 -6 6c-3 5 -3 11 0 16l-37 63c-2 4 -1 9 3 11s8 1 10 -3l38 -63c5 0 11 -3 14 -8z" /> - <glyph glyph-name="ion-ios-time" unicode="&#xf4bf;" -d="M224 416c124 0 224 -100 224 -224s-100 -224 -224 -224s-224 100 -224 224s100 224 224 224zM224 376c-4 0 -8 -4 -8 -8s4 -8 8 -8s8 4 8 8s-4 8 -8 8zM48 184c4 0 8 4 8 8s-4 8 -8 8s-8 -4 -8 -8s4 -8 8 -8zM76 97c4 2 4 7 2 11s-6 5 -10 3s-5 -7 -3 -11s7 -5 11 -3z -M78 276c2 4 2 9 -2 11s-9 1 -11 -3s-1 -9 3 -11s8 -1 10 3zM132 351c-4 -2 -5 -7 -3 -11s7 -4 11 -2s5 6 3 10s-7 5 -11 3zM143 36c2 4 1 8 -3 10s-9 2 -11 -2s-1 -9 3 -11s9 -1 11 3zM224 8c4 0 8 4 8 8s-4 8 -8 8s-8 -4 -8 -8s4 -8 8 -8zM232 178c8 4 10 14 6 22 -c-3 5 -9 8 -14 8l-38 64c-2 4 -7 4 -11 2s-4 -7 -2 -11l37 -63c-3 -5 -3 -11 0 -16c2 -2 4 -5 6 -6v-122c0 -4 4 -8 8 -8s8 4 8 8v122zM316 33c4 2 5 7 3 11s-7 4 -11 2s-5 -6 -3 -10s7 -5 11 -3zM319 340c2 4 1 9 -3 11s-9 1 -11 -3s-1 -8 3 -10s9 -2 11 2zM383 100 -c2 4 1 9 -3 11s-8 1 -10 -3s-2 -9 2 -11s9 -1 11 3zM380 273c4 2 5 7 3 11s-7 5 -11 3s-4 -7 -2 -11s6 -5 10 -3zM400 184c4 0 8 4 8 8s-4 8 -8 8s-8 -4 -8 -8s4 -8 8 -8z" /> - <glyph glyph-name="ion-ios-timer-outline" unicode="&#xf4c0;" horiz-adv-x="416" -d="M189 176l-1 2s-89 118 -86 120s121 -85 121 -85c1 -1 1 -2 2 -3c5 -5 8 -11 8 -18c0 -14 -11 -25 -25 -25c-8 0 -14 3 -19 9zM208 400c115 0 208 -93 208 -208s-93 -208 -208 -208s-208 93 -208 208c0 57 23 109 61 147l12 -12c-35 -35 -56 -82 -56 -135 -c0 -106 85 -191 191 -191s191 85 191 191c0 100 -77 183 -175 191v-95h-16v112v0v0z" /> - <glyph glyph-name="ion-ios-timer" unicode="&#xf4c1;" horiz-adv-x="416" -d="M208 400c115 0 208 -93 208 -208s-93 -208 -208 -208s-208 93 -208 208s93 208 208 208zM102 298c-2 -2 86 -120 86 -120l1 -1c5 -6 11 -10 19 -10c14 0 25 11 25 25c0 7 -3 13 -8 18l-3 3c0 0 -117 87 -120 85zM208 1c106 0 192 85 192 191s-86 192 -192 192v-96h16v78 -c88 -9 158 -84 158 -174c0 -96 -78 -174 -174 -174s-175 78 -175 174c0 48 19 92 51 124l-11 12c-35 -35 -56 -83 -56 -136c0 -106 85 -191 191 -191z" /> - <glyph glyph-name="ion-ios-toggle-outline" unicode="&#xf4c2;" -d="M96 128c-26 0 -48 -22 -48 -48s22 -48 48 -48s48 22 48 48s-22 48 -48 48zM96 144v0c35 0 64 -29 64 -64s-29 -64 -64 -64s-64 29 -64 64s29 64 64 64zM351 160v0h-255c-44 0 -80 -36 -80 -80s36 -80 80 -80h256c44 0 80 36 80 80s-37 80 -81 80zM352 176v0 -c53 0 96 -43 96 -96s-43 -96 -96 -96h-256c-53 0 -96 43 -96 96s43 96 96 96h256zM352 352c-26 0 -48 -22 -48 -48s22 -48 48 -48s48 22 48 48s-22 48 -48 48zM352 368v0c35 0 64 -29 64 -64s-29 -64 -64 -64s-64 29 -64 64s29 64 64 64zM97 384v0c-44 0 -81 -36 -81 -80 -s36 -80 80 -80h256c44 0 80 36 80 80s-36 80 -80 80h-255zM96 400v0h256c53 0 96 -43 96 -96s-43 -96 -96 -96h-256c-53 0 -96 43 -96 96s43 96 96 96z" /> - <glyph glyph-name="ion-ios-toggle" unicode="&#xf4c3;" -d="M96 128c26 0 48 -22 48 -48s-22 -48 -48 -48s-48 22 -48 48s22 48 48 48zM352 176c53 0 96 -43 96 -96s-43 -96 -96 -96h-256c-53 0 -96 43 -96 96s43 96 96 96h256zM96 16c35 0 64 29 64 64s-29 64 -64 64s-64 -29 -64 -64s29 -64 64 -64zM352 256c-26 0 -48 22 -48 48 -s22 48 48 48s48 -22 48 -48s-22 -48 -48 -48zM96 208c-53 0 -96 43 -96 96s43 96 96 96h256c53 0 96 -43 96 -96s-43 -96 -96 -96h-256zM352 368c-35 0 -64 -29 -64 -64s29 -64 64 -64s64 29 64 64s-29 64 -64 64z" /> - <glyph glyph-name="ion-ios-trash-outline" unicode="&#xf4c4;" horiz-adv-x="288" -d="M288 335v-15h-20l-24 -291c0 -16 -13 -29 -29 -29h-141c-16 0 -29 13 -29 29l-24 291h-21v15h80v20c0 16 13 29 29 29h70c16 0 29 -13 29 -29v-20h80zM95 355v-20h98v20c0 8 -6 14 -14 14h-70c-8 0 -14 -6 -14 -14zM230 30l23 290h-217l23 -290v0v-1c0 -8 7 -14 15 -14 -h141c8 0 15 6 15 14v1v0zM137 47v241h14v-241h-14zM208 288l-11 -241h-14l10 241h15zM94 288l11 -241h-14l-11 241h14z" /> - <glyph glyph-name="ion-ios-trash" unicode="&#xf4c5;" horiz-adv-x="288" -d="M208 335h80v-15h-20l-24 -291c0 -16 -13 -29 -29 -29h-141c-16 0 -29 13 -29 29l-24 291h-21v15h80v20c0 16 13 29 29 29h70c16 0 29 -13 29 -29v-20zM95 355v0v-20h98v20c0 8 -6 14 -14 14h-70c-8 0 -14 -6 -14 -14zM91 47h14l-11 241h-14zM151 47v241h-14v-241h14z -M197 47l11 241h-14l-11 -241h14z" /> - <glyph glyph-name="ion-ios-undo-outline" unicode="&#xf4c6;" horiz-adv-x="384" -d="M384 80v-32h-10l-20 31c-20 33 -44 63 -75 77c-24 11 -47 19 -87 20v-80l-192 128l192 128v-80c63 -3 108 -21 143 -56c52 -53 49 -119 49 -136zM368 87c0 0 9 169 -192 169v65l-148 -97l148 -97v65c91 0 144 -24 192 -105z" /> - <glyph glyph-name="ion-ios-undo" unicode="&#xf4c7;" horiz-adv-x="384" -d="M384 80v-32h-10l-20 31c-20 33 -44 63 -75 77c-24 11 -47 19 -87 20v-80l-192 128l192 128v-80c63 -3 108 -21 143 -56c52 -53 49 -119 49 -136z" /> - <glyph glyph-name="ion-ios-unlocked-outline" unicode="&#xf4c8;" horiz-adv-x="320" -d="M160 160c18 0 32 -14 32 -32c0 -15 -10 -27 -24 -31v-33h-16v33c-14 4 -24 16 -24 31c0 18 14 32 32 32zM160 112c9 0 16 7 16 16s-7 16 -16 16s-16 -7 -16 -16s7 -16 16 -16zM72 224h248v-240h-320v240h56v72c0 57 47 104 104 104s104 -47 104 -104v-8h-16v8 -c0 49 -39 88 -88 88s-88 -39 -88 -88v-72zM304 0v208h-288v-208h288z" /> - <glyph glyph-name="ion-ios-unlocked" unicode="&#xf4c9;" horiz-adv-x="320" -d="M160 144c9 0 16 -7 16 -16s-7 -16 -16 -16s-16 7 -16 16s7 16 16 16zM72 224h248v-240h-320v240h56v72c0 57 47 104 104 104s104 -47 104 -104v-8h-16v8c0 49 -39 88 -88 88s-88 -39 -88 -88v-72zM168 97c14 4 24 16 24 31c0 18 -14 32 -32 32s-32 -14 -32 -32 -c0 -15 10 -27 24 -31v-33h16v33z" /> - <glyph glyph-name="ion-ios-upload-outline" unicode="&#xf4ca;" horiz-adv-x="320" -d="M192 304h128v-304h-320v304h128v-16h-112v-272h288v272h-112v16zM97 330l-11 12l74 74l74 -74l-11 -12l-55 55v-243h-16v243z" /> - <glyph glyph-name="ion-ios-upload" unicode="&#xf4cb;" horiz-adv-x="320" -d="M168 304h152v-304h-320v304h152v-162h16v162zM168 385v-81h-16v81l-55 -55l-11 12l74 74l74 -74l-11 -12z" /> - <glyph glyph-name="ion-ios-videocam-outline" unicode="&#xf4cc;" horiz-adv-x="418" -d="M257 320c19 0 33 -14 33 -33v-188c0 -19 -14 -35 -33 -35h-221c-19 0 -36 16 -36 35v188c0 19 17 33 36 33h221zM273 99v188c0 9 -8 16 -17 16h-221c-9 0 -18 -7 -18 -16v-188c0 -9 10 -18 19 -18h221c9 0 16 9 16 18zM320 235l98 53v-192l-98 53v86zM401 258v0l-64 -33 -v-66l64 -33v132z" /> - <glyph glyph-name="ion-ios-videocam" unicode="&#xf4cd;" horiz-adv-x="418" -d="M257 320c19 0 33 -14 33 -33v-188c0 -19 -14 -35 -33 -35h-221c-19 0 -36 16 -36 35v188c0 19 17 33 36 33h221zM320 235l98 53v-192l-98 53v86z" /> - <glyph glyph-name="ion-ios-volume-high" unicode="&#xf4ce;" horiz-adv-x="320" -d="M278 320c26 -36 42 -80 42 -128s-16 -92 -42 -128l-14 10c24 33 39 74 39 118s-15 85 -39 118zM224 96l-14 10c18 24 29 54 29 86s-11 62 -29 86l14 10c20 -27 32 -60 32 -96s-12 -69 -32 -96zM177 128l-13 10c12 15 18 34 18 54s-6 39 -18 54l13 10 -c14 -18 22 -40 22 -64s-8 -46 -22 -64zM58 232l70 56v-192l-70 56h-58v80h58z" /> - <glyph glyph-name="ion-ios-volume-low" unicode="&#xf4cf;" horiz-adv-x="128" -d="M58 232l70 56v-192l-70 56h-58v80h58z" /> - <glyph glyph-name="ion-ios-wineglass-outline" unicode="&#xf4d0;" horiz-adv-x="192" -d="M104 139v-155h72v-16h-80h-80v16h72v155c0 22 -20 39 -40 55c-8 6 -16 13 -22 19c-27 28 -26 52 -26 71v4c0 44 31 125 32 128h64h64c1 -3 32 -84 32 -128v-4c0 -19 1 -43 -26 -71c-6 -6 -14 -13 -22 -19c-20 -16 -40 -33 -40 -55zM43 400c-5 -16 -20 -63 -25 -96h156 -c-5 33 -20 80 -25 96h-53h-53zM96 175c3 0 5 0 7 2v0c9 11 20 20 31 29c8 6 15 12 20 18c22 23 22 41 22 60v4h-160v-4c0 -19 0 -37 22 -60c5 -6 12 -12 20 -18c11 -9 22 -18 31 -29v0c2 -2 4 -2 7 -2z" /> - <glyph glyph-name="ion-ios-wineglass" unicode="&#xf4d1;" horiz-adv-x="192" -d="M104 139v-155h72v-16h-80h-80v16h72v155c0 22 -20 39 -40 55c-8 6 -16 13 -22 19c-27 28 -26 52 -26 71v4c0 44 31 125 32 128h64h64c1 -3 32 -84 32 -128v-4c0 -19 1 -43 -26 -71c-6 -6 -14 -13 -22 -19c-20 -16 -40 -33 -40 -55zM43 400c-5 -16 -20 -63 -25 -96h156 -c-5 33 -20 80 -25 96h-53h-53z" /> - <glyph glyph-name="ion-ios-world-outline" unicode="&#xf4d2;" horiz-adv-x="416" -d="M208 400c115 0 208 -93 208 -208s-93 -208 -208 -208v0v0v0c-115 0 -208 93 -208 208s93 208 208 208v0v0v0zM216 276v-76h75c-1 31 -5 60 -11 84c-21 -5 -42 -7 -64 -8zM216 292c20 1 41 3 60 8c-14 46 -38 76 -60 82v-90zM200 382c-23 -6 -45 -36 -60 -82 -c19 -5 39 -7 60 -8v90zM200 276c-22 1 -44 3 -65 8c-6 -24 -10 -53 -11 -84h76v76zM108 200c1 32 4 62 11 88c-21 6 -41 15 -59 25c-26 -31 -41 -70 -43 -113h91zM108 184h-91c2 -43 17 -82 43 -113c19 10 38 19 59 25c-7 26 -10 56 -11 88zM124 184c1 -31 5 -60 11 -84 -c21 5 43 8 65 9v75h-76zM200 92c-21 -1 -41 -3 -60 -8c15 -46 37 -76 60 -82v90zM216 2c22 6 46 36 60 82c-19 5 -40 7 -60 8v-90zM216 109c22 -1 43 -4 64 -9c6 24 10 53 11 84h-75v-75zM308 184c-1 -32 -5 -62 -12 -88c21 -6 41 -15 60 -25c26 31 41 70 43 113h-91z -M308 200v0h91c-2 43 -17 82 -43 113c-19 -10 -38 -19 -59 -25c7 -26 10 -56 11 -88zM344 326c-25 25 -56 44 -91 52c16 -17 29 -43 39 -74c18 6 35 13 52 22zM163 378c-35 -8 -67 -27 -91 -52c16 -9 34 -15 52 -21c10 31 23 56 39 73zM72 58c25 -25 56 -44 91 -52 -c-16 17 -30 43 -40 74c-18 -6 -35 -13 -51 -22zM253 6c35 8 66 27 91 52c-17 9 -34 16 -52 22c-10 -31 -23 -57 -39 -74z" /> - <glyph glyph-name="ion-ios-world" unicode="&#xf4d3;" horiz-adv-x="416" -d="M208 400c115 0 208 -93 208 -208s-93 -208 -208 -208v0v0v0c-115 0 -208 93 -208 208s93 208 208 208v0v0v0zM208 1c106 0 191 85 191 191s-85 191 -191 191v0v0v0c-106 0 -191 -85 -191 -191s86 -191 191 -191v0v0v0zM274 276c6 -22 9 -48 10 -76h-68v68c20 1 39 4 58 8 -zM216 366c20 -6 41 -34 54 -75c-17 -4 -36 -6 -54 -7v82zM145 291c13 42 35 69 55 75v-82c-19 1 -37 3 -55 7zM333 315c-15 -8 -31 -15 -48 -20c-9 29 -21 52 -36 67c32 -8 61 -24 84 -47zM299 200c-1 29 -4 56 -10 80c19 6 37 14 54 23c23 -28 38 -64 40 -103h-84zM132 200 -c1 28 3 54 9 76c19 -5 39 -7 59 -8v-68h-68zM284 184c-1 -28 -4 -54 -10 -76c-19 5 -38 7 -58 8v68h68zM141 108c-6 22 -8 48 -9 76h68v-68c-20 -1 -40 -3 -59 -8zM200 18c-20 6 -42 33 -55 75c18 4 36 6 55 7v-82zM249 22c15 15 27 38 36 67c17 -5 33 -11 48 -19 -c-23 -23 -52 -40 -84 -48zM167 362c-15 -15 -27 -39 -36 -67c-16 5 -33 11 -48 19c22 23 52 40 84 48zM289 104c6 24 9 51 10 80h84c-2 -39 -17 -75 -40 -103c-17 9 -35 17 -54 23zM216 100c18 -1 37 -3 54 -7c-13 -42 -34 -69 -54 -75v82zM127 280c-6 -24 -11 -51 -11 -80 -h-83c2 39 17 75 40 103c17 -9 35 -17 54 -23zM116 184c1 -29 4 -56 10 -80c-19 -6 -36 -14 -53 -23c-23 28 -38 64 -40 103h83zM83 70c15 8 32 14 48 19c9 -28 21 -52 36 -67c-32 8 -62 25 -84 48z" /> - <glyph glyph-name="ion-ipad" unicode="&#xf1f9;" horiz-adv-x="288" -d="M0 375c0 5 4 9 9 9h270c5 0 9 -4 9 -9v-366c0 -5 -4 -9 -9 -9h-270c-5 0 -9 4 -9 9v366zM144 10c8 0 14 6 14 14s-7 14 -14 14c-8 0 -14 -6 -14 -14s6 -14 14 -14zM32 329v-275c0 -4 3 -6 6 -6h211c3 0 7 2 7 6v275c0 4 -4 7 -7 7h-211c-3 0 -6 -3 -6 -7z" /> - <glyph glyph-name="ion-iphone" unicode="&#xf1fa;" horiz-adv-x="192" -d="M168 384c13 0 24 -11 24 -24v-336c0 -13 -11 -24 -24 -24h-144c-13 0 -24 11 -24 24v336c0 13 11 24 24 24h144zM80 348v0c0 -2 2 -4 4 -4h24c2 0 4 2 4 4v0c0 2 -2 4 -4 4h-24c-2 0 -4 -2 -4 -4zM68 352c-2 0 -4 -2 -4 -4s2 -4 4 -4s4 2 4 4s-2 4 -4 4zM96 16 -c9 0 16 7 16 16s-7 16 -16 16s-16 -7 -16 -16s7 -16 16 -16zM176 64v256h-160v-256h160z" /> - <glyph glyph-name="ion-ipod" unicode="&#xf1fb;" horiz-adv-x="224" -d="M112 137c18 0 32 -14 32 -32s-14 -32 -32 -32s-32 14 -32 32s14 32 32 32zM196 384c15 0 28 -12 28 -28v-328c0 -16 -13 -28 -28 -28h-168c-15 0 -28 12 -28 28v328c0 16 13 28 28 28h168zM112 32c40 0 72 32 72 72s-32 72 -72 72s-72 -32 -72 -72s32 -72 72 -72z -M192 221v118c-1 7 -6 12 -12 13h-136c-7 -1 -12 -7 -12 -15v-114c0 -8 6 -15 14 -15h131c8 0 14 5 15 13z" /> - <glyph glyph-name="ion-jet" unicode="&#xf295;" horiz-adv-x="326" -d="M222 80l-2 -13l53 -58l-18 -27l-74 9l-18 -55l-19 55l-73 -9l-18 27l53 58l-2 13l-104 -35l3 53l114 103s26 173 28 192c5 40 18 55 18 55s13 -15 18 -55c2 -19 28 -192 28 -192l114 -103l3 -53z" /> - <glyph glyph-name="ion-key" unicode="&#xf296;" horiz-adv-x="192" -d="M144 147c28 -17 48 -48 48 -83c0 -53 -43 -96 -96 -96s-96 43 -96 96c0 36 19 67 48 84c0 0 7 16 12 41c0 4 11 6 11 12v20c0 5 -7 9 -7 11v8v8c0 2 0 4 1 6c0 1 1 1 1 2l2 1l4 4v1c2 2 3 4 3 6c0 1 1 8 1 9c0 3 -2 6 -4 8l-1 1l-4 4v0l-1 1v0c-2 2 -3 5 -3 8v7 -c0 3 2 7 4 9v0l5 5v0c2 2 4 3 4 6v24c0 3 -2 6 -4 8v1l-4 4l-1 1c-2 2 -3 5 -3 8v18c0 11 0 19 9 23c3 1 14 3 23 3c20 0 30 -8 32 -36c0 0 7 -81 9 -143s7 -90 7 -90zM96 0c18 0 32 14 32 32s-14 32 -32 32s-32 -14 -32 -32s14 -32 32 -32z" /> - <glyph glyph-name="ion-knife" unicode="&#xf297;" horiz-adv-x="64" -d="M62 416c2 0 2 -1 2 -6v-412c0 -15 -10 -30 -24 -30v0v0c-14 0 -24 15 -24 30c1 19 14 83 16 130v0c1 30 -32 31 -32 70c0 134 35 191 54 214c2 2 5 4 8 4z" /> - <glyph glyph-name="ion-laptop" unicode="&#xf1fc;" horiz-adv-x="512" -d="M480 342v-262h-448v262c0 6 4 10 10 10h428c6 0 10 -4 10 -10zM448 112v208h-384v-208h384zM0 59v5h512v-5c-70 -20 -116 -27 -256 -27s-186 7 -256 27z" /> - <glyph glyph-name="ion-leaf" unicode="&#xf1fd;" horiz-adv-x="422" -d="M412 69c18 -3 10 -41 -5 -39c0 0 -21 -1 -63 12c0 0 -16 -19 -39 -30c-26 -12 -118 -33 -197 38c-108 97 -120 354 -100 333c86 -90 197 -47 270 -106c55 -44 88 -127 77 -192c0 0 5 -8 57 -16zM316 65c5 5 10 16 10 24c-161 52 -252 160 -252 160s104 -143 242 -184z -" /> - <glyph glyph-name="ion-levels" unicode="&#xf298;" horiz-adv-x="350" -d="M46 349c11 -5 18 -16 18 -29s-7 -24 -18 -29v-275c0 -9 -7 -16 -16 -16s-16 7 -16 16v278c-8 6 -14 15 -14 26s6 20 14 26v22c0 9 7 16 16 16s16 -7 16 -16v-19zM142 155c9 -6 15 -16 15 -27s-6 -21 -15 -27v-85c0 -9 -7 -16 -16 -16s-16 7 -16 16v84 -c-10 5 -17 16 -17 28s7 23 17 28v212c0 9 7 16 16 16s16 -7 16 -16v-213zM238 285c10 -6 16 -16 16 -28s-6 -22 -16 -28v-213c0 -9 -7 -16 -16 -16s-16 7 -16 16v213c-10 6 -16 16 -16 28s6 22 16 28v83c0 9 7 16 16 16s16 -7 16 -16v-83zM350 65c0 -12 -6 -22 -16 -28v-21 -c0 -9 -7 -16 -16 -16s-16 7 -16 16v21c-10 6 -16 16 -16 28s6 22 16 28v275c0 9 7 16 16 16s16 -7 16 -16v-275c10 -6 16 -16 16 -28z" /> - <glyph glyph-name="ion-lightbulb" unicode="&#xf299;" horiz-adv-x="256" -d="M128 416c71 0 128 -56 128 -124c0 -5 0 -9 -1 -14s-2 -11 -3 -16v-2c-17 -63 -45 -71 -59 -167v-1c-2 -9 -10 -12 -20 -12h-90c-10 0 -18 3 -20 12v1c-14 96 -42 104 -59 167v2c-1 5 -2 11 -3 16s-1 9 -1 14c0 68 57 124 128 124zM190 52v-1c-2 -3 -3 -4 -3 -7s1 -5 3 -8 -v-1c1 -2 2 -3 2 -5s-1 -4 -2 -6v-1c-2 -3 -3 -4 -3 -7s1 -5 3 -8v-1c1 -2 2 -4 2 -6c0 -5 -4 -9 -10 -11h-1c-6 -1 -13 -2 -19 -3h-2c-6 -1 -11 -5 -14 -9v0c-4 -5 -10 -10 -18 -10s-15 6 -19 11v0c-3 4 -7 7 -13 8h-2c-6 1 -13 2 -19 3h-1c-6 2 -10 6 -10 11c0 2 1 4 2 6v1 -c2 2 3 4 3 7s-1 5 -3 8v1c-1 2 -2 4 -2 6s1 3 2 5v1c2 3 3 5 3 8s-1 4 -3 7v1v0c-1 2 -2 4 -2 6c0 4 -1 6 7 6h114c8 0 7 -2 7 -6c0 -2 -1 -4 -2 -6v0z" /> - <glyph glyph-name="ion-link" unicode="&#xf1fe;" horiz-adv-x="384" -d="M192 240v0v0v0zM304 288c44 0 80 -36 80 -80v-32c0 -44 -36 -80 -80 -80h-112c-33 0 -60 20 -73 48c-4 10 -7 20 -7 32v32h48v-32c0 -18 14 -32 32 -32h112c18 0 32 14 32 32v32c0 18 -14 32 -32 32v0h-16c-6 31 -32 48 -32 48h48zM266 240c4 -10 6 -21 6 -32v-32v0h-48 -v0v32c0 18 -14 32 -32 32v0h-112c-18 0 -32 -14 -32 -32v-32c0 -18 14 -32 32 -32h16c6 -31 32 -48 32 -48h-48c-44 0 -80 36 -80 80v32c0 44 36 80 80 80h112c33 0 62 -20 74 -48z" /> - <glyph glyph-name="ion-load-a" unicode="&#xf29a;" horiz-adv-x="384" -d="M144 352c0 43 21 64 64 64s64 -21 64 -64s-21 -64 -64 -64s-64 21 -64 64zM0 192c0 32 16 48 48 48s48 -16 48 -48s-16 -48 -48 -48s-48 16 -48 48zM312 304c0 5 3 8 8 8s8 -3 8 -8s-3 -8 -8 -8s-8 3 -8 8zM132 340c10 -10 15 -22 15 -36s-5 -26 -15 -36s-22 -15 -36 -15 -s-26 5 -36 15s-15 22 -15 36s5 26 15 36s22 15 36 15s26 -5 36 -15zM352 192c0 11 5 16 16 16s16 -5 16 -16s-5 -16 -16 -16s-16 5 -16 16zM297 79c0 16 8 24 24 24s24 -8 24 -24s-8 -24 -24 -24s-24 8 -24 24zM176 32c0 21 11 32 32 32s32 -11 32 -32s-11 -32 -32 -32 -s-32 11 -32 32zM56 80c0 27 13 40 40 40s40 -13 40 -40s-13 -40 -40 -40s-40 13 -40 40z" /> - <glyph glyph-name="ion-load-b" unicode="&#xf29b;" -d="M256 288c0 -18 -14 -32 -32 -32v0c-18 0 -32 14 -32 32v96c0 18 14 32 32 32v0c18 0 32 -14 32 -32v-96zM224 128v0c18 0 32 -14 32 -32v-96c0 -18 -14 -32 -32 -32s-32 14 -32 32v96c0 18 14 32 32 32zM416 224v0c18 0 32 -14 32 -32s-14 -32 -32 -32h-96 -c-18 0 -32 14 -32 32s14 32 32 32h96zM128 224v0c18 0 32 -14 32 -32s-14 -32 -32 -32h-96c-18 0 -32 14 -32 32s14 32 32 32h96zM314 237c-12 -12 -33 -12 -45 0v0c-12 12 -12 34 0 46l68 67c12 12 33 12 45 0v0c12 -12 12 -33 0 -45zM179 147v0c12 -12 12 -33 0 -46 -l-68 -67c-12 -12 -33 -12 -45 0s-12 33 0 45l67 68c12 12 34 12 46 0zM382 79v0c12 -12 12 -33 0 -45s-33 -12 -45 0l-68 68c-12 12 -12 33 0 45s33 12 45 0zM179 282v0c12 -12 12 -33 0 -45s-34 -12 -46 0l-67 68c-12 12 -12 33 0 45s33 12 45 0z" /> - <glyph glyph-name="ion-load-c" unicode="&#xf29c;" -d="M448 222c0 -3 0 -6 -1 -9c-4 -8 -15 -12 -23 -7c-4 2 -6 7 -7 11c-1 5 -1 9 -2 14c-4 20 -12 40 -22 58c-12 21 -28 41 -47 56c-18 15 -40 26 -62 33c-21 6 -42 9 -64 9h-4c-3 0 -6 -1 -9 -1c-6 0 -14 -1 -20 -2c-13 -2 -25 -6 -37 -11c-21 -8 -40 -20 -57 -35 -s-31 -33 -42 -52c-12 -22 -20 -45 -24 -70c-2 -11 -2 -23 -2 -34c0 -6 0 -11 1 -16c1 -6 2 -13 3 -19c5 -24 14 -47 28 -67c13 -20 29 -38 48 -52c20 -15 42 -26 65 -33c25 -7 50 -9 76 -7c25 2 50 9 73 20c11 5 22 12 32 19s19 15 27 24c4 4 8 9 12 14s7 10 10 15 -c6 10 12 20 17 31c4 8 8 16 11 25c2 4 3 9 4 13s1 7 2 11c1 -9 1 -18 -1 -26c-1 -5 -2 -11 -4 -16c-1 -5 -3 -10 -5 -15c-4 -10 -8 -19 -13 -28c-6 -11 -12 -21 -20 -30s-16 -18 -25 -26c-18 -15 -40 -27 -62 -36c-23 -9 -48 -14 -73 -15s-51 3 -75 11c-23 7 -45 19 -65 33 -c-19 14 -36 31 -50 50c-7 10 -13 20 -18 31s-9 21 -13 33c-6 18 -9 37 -10 56c-1 20 1 39 5 58c5 24 15 47 28 68c12 19 26 35 42 50s35 27 55 36c23 11 48 19 74 21c10 1 19 1 29 1c13 0 26 -2 38 -4c24 -5 47 -14 68 -26s41 -29 57 -48c15 -18 27 -37 36 -58 -c4 -10 7 -21 10 -32c2 -8 5 -17 6 -26z" /> - <glyph glyph-name="ion-load-d" unicode="&#xf29d;" horiz-adv-x="384" -d="M368 208c9 0 16 -7 16 -16s-7 -16 -16 -16h-80c-9 0 -16 7 -16 16s7 16 16 16h80zM112 192c0 -9 -7 -16 -16 -16h-80c-9 0 -16 7 -16 16s7 16 16 16h80c9 0 16 -7 16 -16zM192 112c9 0 16 -7 16 -16v-80c0 -9 -7 -16 -16 -16s-16 7 -16 16v80c0 9 7 16 16 16zM192 384 -c9 0 16 -7 16 -16v-80c0 -9 -7 -16 -16 -16s-16 7 -16 16v80c0 9 7 16 16 16zM261 232c-4 8 -2 18 6 22l69 40c8 4 18 2 22 -6s2 -18 -6 -22l-69 -40c-8 -4 -18 -2 -22 6zM123 152c4 -8 2 -18 -6 -22l-69 -40c-8 -4 -18 -2 -22 6s-2 18 6 22l69 40c8 4 18 2 22 -6zM254 117 -l40 -69c4 -8 2 -18 -6 -22s-18 -2 -22 6l-40 69c-4 8 -2 18 6 22s18 2 22 -6zM118 352l40 -69c4 -8 2 -18 -6 -22s-18 -2 -22 6l-40 69c-4 8 -2 18 6 22s18 2 22 -6zM232 261c-8 4 -10 14 -6 22l40 69c4 8 14 10 22 6s10 -14 6 -22l-40 -69c-4 -8 -14 -10 -22 -6zM152 123 -c8 -4 10 -14 6 -22l-40 -69c-4 -8 -14 -10 -22 -6s-10 14 -6 22l40 69c4 8 14 10 22 6zM352 118c8 -4 10 -14 6 -22s-14 -10 -22 -6l-69 40c-8 4 -10 14 -6 22s14 10 22 6zM32 266c-8 4 -10 14 -6 22s14 10 22 6l69 -40c8 -4 10 -14 6 -22s-14 -10 -22 -6z" /> - <glyph glyph-name="ion-location" unicode="&#xf1ff;" horiz-adv-x="239" -d="M119 384c66 0 120 -54 120 -120c0 -115 -120 -264 -120 -264s-119 149 -119 264c0 66 53 120 119 120zM119 206c31 0 57 25 57 56s-26 57 -57 57s-56 -26 -56 -57s25 -56 56 -56z" /> - <glyph glyph-name="ion-lock-combination" unicode="&#xf4d4;" horiz-adv-x="384" -d="M320 271c39 -35 64 -86 64 -143c0 -106 -86 -192 -192 -192s-192 86 -192 192c0 57 25 108 64 143v49c0 71 57 128 128 128s128 -57 128 -128v-49zM96 320v-26c28 16 61 26 96 26s68 -10 96 -26v26c0 53 -43 96 -96 96s-96 -43 -96 -96zM192 -32c88 0 160 72 160 160 -s-72 160 -160 160s-160 -72 -160 -160s72 -160 160 -160zM192 272c80 0 144 -64 144 -144s-64 -144 -144 -144s-144 64 -144 144s64 144 144 144zM315 95c2 9 4 18 4 29h-7v7h8c0 11 -2 20 -5 30l-25 -7l-4 12l25 8c-4 10 -8 18 -14 26l-11 -8l-4 6l11 8c-6 8 -13 16 -21 22 -l-15 -21l-11 8l15 20c-8 6 -17 11 -27 14l-4 -13l-6 2l5 13c-9 3 -20 5 -29 5v-13v-6h-16v6v13c-11 -1 -19 -2 -29 -5l4 -12l-6 -2l-4 12c-10 -3 -19 -8 -27 -14l15 -20l-10 -8l-15 21c-8 -6 -16 -14 -22 -22l11 -8l-4 -5l-10 8c-6 -8 -10 -17 -14 -27l24 -8l-5 -12l-25 7 -c-3 -10 -3 -19 -3 -30h6v-7h-5c0 -11 2 -20 4 -29l24 7l4 -12l-24 -8c4 -10 8 -19 14 -27l9 7l4 -5l-9 -7c6 -8 13 -16 21 -22l15 21l10 -8l-15 -20c8 -5 17 -11 27 -14l3 11l7 -2l-4 -11c10 -3 18 -4 29 -5v13v6h16v-6v-13c9 1 19 2 29 5l-5 12l6 2l4 -12c10 3 19 8 27 14 -l-15 20l11 8l15 -21c8 6 15 14 21 22l-11 7l4 6l10 -8c6 8 11 17 15 27l-25 8l4 12zM111 128c0 54 27 81 81 81s81 -27 81 -81s-27 -81 -81 -81s-81 27 -81 81z" /> - <glyph glyph-name="ion-locked" unicode="&#xf200;" horiz-adv-x="384" -d="M22 -32c-12 0 -22 10 -22 22v212c0 12 10 22 22 22h3h19v31c0 42 17 87 43 115s64 46 105 46v0v0c41 0 79 -18 105 -46s43 -73 43 -115v-31h22c12 0 22 -10 22 -22v-212c0 -12 -10 -22 -22 -22h-340zM97 255v-31h17h155h18v31c0 27 -10 61 -28 80v0v1 -c-18 19 -42 29 -67 29v0v0c-25 0 -49 -10 -67 -29v-1v0c-18 -19 -28 -53 -28 -80z" /> - <glyph glyph-name="ion-log-in" unicode="&#xf29e;" -d="M224 416c124 0 224 -100 224 -224s-100 -224 -224 -224c-96 0 -177 60 -209 144h34c9 -20 23 -40 39 -56c36 -36 85 -56 136 -56s100 20 136 56s56 85 56 136s-20 100 -56 136s-85 56 -136 56s-100 -20 -136 -56c-16 -16 -30 -36 -39 -56h-34c32 84 113 144 209 144z -M175 124l52 52h-227v32h227l-52 52l22 23l91 -91l-91 -91z" /> - <glyph glyph-name="ion-log-out" unicode="&#xf29f;" -d="M335 124l52 52h-227v32h227l-52 52l22 23l91 -91l-91 -91zM359 56c3 3 6 5 8 8h41c-40 -58 -108 -96 -184 -96c-124 0 -224 100 -224 224s100 224 224 224c76 0 144 -38 184 -96h-41c-2 3 -5 5 -8 8c-36 36 -84 56 -135 56s-100 -20 -136 -56s-56 -85 -56 -136 -s20 -100 56 -136s85 -56 136 -56s99 20 135 56z" /> - <glyph glyph-name="ion-loop" unicode="&#xf201;" horiz-adv-x="334" -d="M184 148v-58c49 8 86 50 86 102c0 16 -4 30 -10 44c-3 6 -5 12 -9 17l47 43c1 -1 2 -3 3 -4c21 -28 33 -62 33 -100v-4c-2 -72 -47 -131 -111 -154c-12 -4 -26 -8 -39 -9v-57l-76 67l-26 23l44 39zM0 196c2 72 48 133 113 155c12 4 24 7 37 8v57l76 -67l26 -23l-44 -39 -l-59 -51l1 58c-49 -8 -86 -51 -86 -102c0 -16 4 -31 10 -45c3 -6 5 -11 9 -16l-47 -44c-1 2 -2 3 -3 5c-20 28 -33 63 -33 100v4z" /> - <glyph glyph-name="ion-magnet" unicode="&#xf2a0;" horiz-adv-x="384" -d="M192 416c115 0 192 -78 192 -200c0 -49 -3 -77 -15 -128c-16 -66 -39 -113 -39 -113v-1c-2 -3 -6 -6 -10 -6c-1 0 -3 1 -4 1l-2 1l-50 20l-2 1c-3 2 -5 5 -5 9c0 1 0 3 1 4v1c7 16 27 59 37 101s13 63 13 108c0 71 -52 122 -116 122s-116 -51 -116 -122 -c0 -45 3 -66 13 -108s30 -85 37 -101v-1c1 -1 1 -3 1 -4c0 -4 -2 -7 -5 -9l-2 -1l-50 -20l-2 -1c-1 0 -3 -1 -4 -1c-4 0 -8 3 -10 6v1s-24 47 -40 113c-12 51 -14 79 -14 128c0 122 77 200 192 200zM109 4c-9 19 -27 59 -36 98l-42 -12c13 -53 30 -92 35 -104l43 17v1z -M317 -14c5 12 23 51 36 104l-43 12c-9 -39 -26 -79 -35 -98v-1z" /> - <glyph glyph-name="ion-male" unicode="&#xf2a1;" -d="M448 256l-63 63l-69 -69c22 -30 36 -66 36 -106c0 -97 -79 -176 -176 -176s-176 79 -176 176s79 176 176 176c40 0 76 -14 106 -36l69 69l-63 63h160v-160zM266 54c24 24 38 56 38 90s-14 66 -38 90s-56 38 -90 38s-66 -14 -90 -38s-38 -56 -38 -90s14 -66 38 -90 -s56 -38 90 -38s66 14 90 38z" /> - <glyph glyph-name="ion-man" unicode="&#xf202;" horiz-adv-x="168" -d="M84 341c-21 0 -37 17 -37 38s16 37 37 37s37 -16 37 -37s-16 -38 -37 -38zM121 333c28 0 47 -24 47 -48v-114c0 -22 -32 -22 -32 0v105h-5v-286c0 -28 -41 -31 -43 0v165h-1h-7v-165c-1 -29 -43 -30 -43 0v286h-6v-105c0 -22 -31 -22 -31 0v114c0 24 19 48 47 48h37h37z -" /> - <glyph glyph-name="ion-map" unicode="&#xf203;" -d="M441 311c4 -3 7 -8 7 -14v-281c0 -6 -2 -11 -7 -14c-2 -1 -5 -2 -7 -2c-3 0 -6 0 -8 2l-97 66l-97 -66c-5 -3 -10 -3 -15 0l-97 66l-97 -66c-5 -3 -10 -3 -15 0s-8 8 -8 14v281c0 6 3 11 7 14l105 71c5 3 10 3 15 0l97 -66l98 66c5 3 10 3 15 0zM103 95v242l-71 -50v-242 -zM135 95l73 -49v129l-4 -11c-7 2 -13 6 -20 10l8 13c5 -3 11 -6 16 -8v109l-73 49v-101c4 -2 9 -4 13 -7l-10 -13c-1 1 -2 1 -3 2v-123zM240 46l73 49v109c0 -1 -1 -1 -1 -2l-6 -6l-12 11l6 6c3 3 5 7 8 10l5 -5v119l-73 -49v-112h7l3 -15c-3 0 -6 -1 -9 -1h-1v-114zM416 46 -v242l-71 49v-88c3 1 5 1 8 2l4 -16c-4 -1 -8 -1 -12 -3v-137zM97 227c-3 -1 -11 -5 -14 -7l-11 12c4 3 8 6 12 8c3 2 6 3 9 4l5 -15c-2 -1 1 -1 -1 -2zM265 182c5 3 10 5 15 10l11 -12c-6 -6 -12 -10 -19 -13zM67 192v-1l-15 5v1c2 7 4 13 9 20l13 -9c-4 -5 -5 -10 -7 -16z -M166 210c3 -4 7 -8 11 -11l-11 -12c-4 4 -8 9 -12 13l-3 3l12 11c1 -1 2 -3 3 -4zM376 218l-11 12l10 10l-10 10l11 12l10 -11l11 11l11 -12l-10 -10l10 -10l-11 -12l-11 11z" /> - <glyph glyph-name="ion-medkit" unicode="&#xf2a2;" -d="M440 304c4 0 8 -4 8 -8v-288c0 -4 -4 -8 -8 -8h-432c-4 0 -8 4 -8 8v288c0 4 4 8 8 8h120v31c1 28 22 49 51 49h45h45c30 0 50 -21 51 -49v-31h120zM160 331v-27h128v27v1v1c0 10 -9 19 -19 19h-45h-45c-10 0 -19 -9 -19 -19v-1v-1zM320 128v64h-64v64h-64v-64h-64v-64 -h64v-64h64v64h64z" /> - <glyph glyph-name="ion-merge" unicode="&#xf33f;" horiz-adv-x="384" -d="M320 224c35 0 64 -29 64 -64s-29 -64 -64 -64c-24 0 -44 13 -55 32h-10c-61 0 -115 25 -159 74v-115c19 -11 32 -31 32 -55c0 -35 -29 -64 -64 -64s-64 29 -64 64c0 24 13 44 32 55v210c-19 11 -32 31 -32 55c0 35 29 64 64 64s64 -29 64 -64c0 -19 -8 -37 -22 -49 -c4 -9 17 -35 37 -58c32 -35 70 -53 112 -53h10c11 19 31 32 55 32zM64 384c-18 0 -32 -14 -32 -32s14 -32 32 -32s32 14 32 32s-14 32 -32 32zM64 0c18 0 32 14 32 32s-14 32 -32 32s-32 -14 -32 -32s14 -32 32 -32zM320 128c18 0 32 14 32 32s-14 32 -32 32 -s-32 -14 -32 -32s14 -32 32 -32z" /> - <glyph glyph-name="ion-mic-a" unicode="&#xf204;" horiz-adv-x="288" -d="M0 210c0 10 9 19 20 19s19 -9 19 -19v-14c0 -28 12 -53 31 -72s45 -31 74 -31s55 12 74 31s31 44 31 72v14c0 10 8 19 19 19s20 -9 20 -19v-14c0 -66 -46 -120 -108 -136c-1 0 -3 -1 -4 -1c-6 -2 -10 -7 -12 -13v-58c0 -11 -9 -20 -20 -20v0c-11 0 -20 9 -20 20v58 -c-2 6 -6 11 -12 13c-1 0 -3 1 -4 1c-62 16 -108 70 -108 136v14zM67 340c0 42 34 76 77 76s78 -34 78 -76v-144c0 -42 -35 -75 -78 -75s-77 33 -77 75v144z" /> - <glyph glyph-name="ion-mic-b" unicode="&#xf205;" horiz-adv-x="160" -d="M80 416c35 0 65 -23 76 -59c6 -18 4 -45 2 -55s-8 -20 -14 -28c-3 -4 -7 -7 -11 -9c-1 0 -1 -1 -2 -1c-3 -1 -6 -2 -10 -3c-12 -3 -25 -5 -39 -5v0h-1h-1v0c-14 0 -29 2 -41 5c-4 1 -7 2 -10 3c-1 0 -1 1 -2 1c-4 2 -8 5 -11 9c-6 8 -12 18 -14 28s-4 37 2 55 -c11 36 41 59 76 59zM119 247c6 0 12 -5 12 -12v-2c-5 -67 -18 -241 -19 -252c0 0 -3 -13 -32 -13v0c-29 0 -32 13 -32 13c-1 11 -13 185 -18 252v2c0 7 5 12 11 12h1c1 0 1 -1 2 -1c2 0 4 -1 6 -1c9 -2 21 -2 31 -2s20 0 29 2c2 0 4 1 6 1c1 0 1 1 2 1h1zM90 166v33 -c0 6 -4 11 -10 11s-10 -5 -10 -11v-33c0 -6 4 -11 10 -11s10 5 10 11z" /> - <glyph glyph-name="ion-mic-c" unicode="&#xf206;" horiz-adv-x="256" -d="M201 416c30 0 55 -23 55 -52v-28h-59v-37h59v-43h-59v-37h59v-43h-59v-37h59v-42c0 -29 -25 -52 -55 -52h-30v-77h-86v77h-30c-30 0 -55 23 -55 52v42h152v37h-152v43h152v37h-152v43h152v37h-152v28c0 29 25 52 55 52h146z" /> - <glyph glyph-name="ion-minus-circled" unicode="&#xf207;" -d="M224 416c124 0 224 -100 224 -224s-100 -224 -224 -224s-224 100 -224 224s100 224 224 224zM352 176v32h-256v-32h256z" /> - <glyph glyph-name="ion-minus-round" unicode="&#xf208;" horiz-adv-x="384" -d="M353 224c17 0 31 -14 31 -32s-14 -32 -31 -32h-322c-17 0 -31 14 -31 32s14 32 31 32h322z" /> - <glyph glyph-name="ion-minus" unicode="&#xf209;" horiz-adv-x="384" -d="M0 160v64h384v-64h-384z" /> - <glyph glyph-name="ion-model-s" unicode="&#xf2c1;" horiz-adv-x="512" -d="M509 57v-8v0v-1v-3v0c0 -3 -1 -5 -1 -7c-1 -12 -2 -18 -6 -20c-3 -2 -6 -2 -10 -2h-43s-10 1 -11 16v8c20 1 39 1 52 0c10 0 13 0 16 6c2 3 2 7 3 11zM3 57c1 -4 1 -8 3 -11c3 -6 6 -6 16 -6c13 1 32 1 52 0v-8c-1 -15 -8 -16 -11 -16h-43s-7 0 -10 2c-4 2 -6 8 -7 20v7 -v0v3v1v0v8zM512 151c0 -31 -2 -58 -2 -68c0 -4 0 -11 -1 -18c-1 -4 -1 -8 -3 -11c-3 -6 -6 -6 -16 -6c-13 1 -32 1 -52 0c-13 0 -27 -2 -39 -2c-30 -1 -21 4 -34 4s-63 -2 -109 -2s-97 2 -110 2s-4 -5 -34 -4c-12 0 -25 2 -38 2c-20 1 -39 1 -52 0c-10 0 -13 0 -16 6 -c-2 3 -2 7 -3 11c-1 7 -1 14 -1 18c0 10 -2 37 -2 68s4 61 6 64c1 2 8 9 26 21s17 10 20 18c-3 1 -5 3 -7 3c-4 0 -4 -3 -12 -3s-24 1 -28 5c-4 3 -5 5 -5 8s2 9 5 13s19 6 27 7s10 0 12 -1c4 -2 3 -22 3 -22l9 -1c5 13 12 41 24 62c13 23 26 30 32 32s10 2 48 6s69 5 96 5 -s58 -1 96 -5s42 -4 48 -6s19 -9 32 -32c12 -21 19 -49 24 -62l9 1s-1 20 3 22c2 1 4 2 12 1s24 -3 27 -7s5 -10 5 -13s-1 -4 -5 -8s-20 -5 -28 -5s-8 3 -12 3c-2 0 -4 -2 -7 -3c3 -8 2 -6 20 -18s25 -19 26 -21c2 -3 6 -33 6 -64zM86 303c-5 -11 -11 -33 -10 -36 -s-1 -5 15 -4s117 3 165 3s149 -2 165 -3s14 1 15 4s-5 25 -10 36s-17 31 -26 37c-2 1 -17 7 -54 9c-34 2 -72 3 -90 3s-56 -1 -90 -3c-37 -2 -52 -8 -54 -9c-7 -4 -21 -26 -26 -37zM123 178c7 2 11 2 11 2s-17 16 -48 25s-49 11 -66 10c0 0 -3 -16 0 -27s8 -10 16 -12 -s13 -5 16 -4s7 4 12 4s29 -4 38 -4s14 4 21 6zM358 99c15 2 34 19 21 33c-18 19 -15 19 -55 24c-35 4 -61 4 -68 4s-33 0 -68 -4c-40 -5 -37 -5 -55 -24c-13 -14 6 -31 21 -33c14 -2 74 -3 102 -3s88 1 102 3zM492 188c3 11 0 27 0 27c-17 1 -35 -1 -66 -10s-48 -26 -48 -26 -s4 1 11 -1s12 -6 21 -6s33 4 38 4s9 -3 12 -4s8 2 16 4s13 1 16 12z" /> - <glyph glyph-name="ion-monitor" unicode="&#xf20a;" -d="M437 384c6 0 11 -5 11 -11v-266c0 -6 -5 -11 -11 -11h-426c-6 0 -11 5 -11 11v266c0 6 5 11 11 11h426zM416 128v224h-384v-224h384zM270 0h-92c-28 0 -42 3 -30 12s30 16 30 23c0 4 1 45 1 45h45h45s1 -41 1 -45c0 -7 18 -14 30 -23s-2 -12 -30 -12z" /> - <glyph glyph-name="ion-more" unicode="&#xf20b;" horiz-adv-x="384" -d="M50 144c-28 0 -50 21 -50 48c0 26 22 48 50 48s50 -22 50 -48c0 -27 -22 -48 -50 -48zM192 144c-28 0 -50 21 -50 48c0 26 22 48 50 48s50 -22 50 -48c0 -27 -22 -48 -50 -48zM334 144c-28 0 -50 21 -50 48c0 26 22 48 50 48s50 -22 50 -48c0 -27 -22 -48 -50 -48z" /> - <glyph glyph-name="ion-mouse" unicode="&#xf340;" horiz-adv-x="256" -d="M128 416h-1h5h-4zM251 255c2 1 2 1 4 1h1v-176c0 -37 -21 -71 -53 -91c-5 -3 -9 -5 -14 -7v-1v0c-18 -9 -39 -13 -61 -13c-71 0 -128 50 -128 112v176h1c2 0 3 0 5 -1v0c34 -13 76 -23 122 -23s88 10 122 23h1zM189 -18c5 2 10 4 14 7c-5 -3 -9 -5 -14 -7v0v-1v1v0z -M203 -11c-4 -3 -9 -5 -14 -7c5 2 9 4 14 7zM132 416c69 -2 124 -51 124 -112v-23c-2 -2 -4 -4 -6 -5c-1 -1 -3 0 -4 -1c-23 -10 -50 -16 -82 -19h-1h-2c-11 0 -17 0 -17 10v86c0 9 -7 16 -16 16s-16 -7 -16 -16v-85c0 -11 -6 -11 -17 -11h-2c-32 3 -61 9 -84 19v0 -c-1 0 -1 1 -2 1c-3 1 -5 3 -7 5v23c0 61 57 111 127 112h5z" /> - <glyph glyph-name="ion-music-note" unicode="&#xf20c;" horiz-adv-x="384" -d="M362 416c12 0 22 -9 22 -21v-303s-3 -43 -12 -55v0c-9 -15 -25 -21 -43 -21h-37c-28 0 -52 20 -52 48s24 48 52 48h60v192l-208 -38v-232c0 -8 -3 -27 -13 -41c-1 -2 -2 -3 -3 -5c0 -1 -1 -1 -2 -2v0c-9 -11 -23 -18 -38 -18h-37c-28 0 -51 20 -51 48s23 48 51 48v0h61 -v286c1 14 13 28 27 32l218 33s3 1 5 1z" /> - <glyph glyph-name="ion-navicon-round" unicode="&#xf20d;" horiz-adv-x="384" -d="M353 224c17 0 31 -14 31 -32s-14 -32 -31 -32h-322c-17 0 -31 14 -31 32s14 32 31 32h322zM353 352c17 0 31 -14 31 -32s-14 -32 -31 -32h-322c-17 0 -31 14 -31 32s14 32 31 32h322zM353 96c17 0 31 -14 31 -32s-14 -32 -31 -32h-322c-17 0 -31 14 -31 32s14 32 31 32 -h322z" /> - <glyph glyph-name="ion-navicon" unicode="&#xf20e;" horiz-adv-x="320" -d="M0 175v32h320v-32h-320zM0 271v32h320v-32h-320zM0 79v32h320v-32h-320z" /> - <glyph glyph-name="ion-navigate" unicode="&#xf2a3;" -d="M448 416l-192 -448v256h-256z" /> - <glyph glyph-name="ion-network" unicode="&#xf341;" horiz-adv-x="384" -d="M384 352c0 -24 -13 -44 -32 -55v-93l-128 -64v-53c19 -11 32 -31 32 -55c0 -35 -29 -64 -64 -64s-64 29 -64 64c0 24 13 44 32 55v53l-128 64v93c-19 11 -32 31 -32 55c0 35 29 64 64 64s64 -29 64 -64c0 -24 -13 -44 -32 -55v-53l96 -48l96 48v53c-19 11 -32 31 -32 55 -c0 35 29 64 64 64s64 -29 64 -64zM64 384c-18 0 -32 -14 -32 -32s14 -32 32 -32s32 14 32 32s-14 32 -32 32zM192 0c18 0 32 14 32 32s-14 32 -32 32s-32 -14 -32 -32s14 -32 32 -32zM320 320c18 0 32 14 32 32s-14 32 -32 32s-32 -14 -32 -32s14 -32 32 -32z" /> - <glyph glyph-name="ion-no-smoking" unicode="&#xf2c2;" -d="M328 144v48h16v-48h-16zM80 144v48h90l48 -48h-138zM332 388c69 -38 116 -112 116 -196c0 -124 -100 -224 -224 -224c-24 0 -47 4 -68 11c-2 1 -3 1 -5 2c-12 4 -24 9 -35 15h-1c-69 38 -115 112 -115 196c0 124 100 224 224 224c24 0 47 -4 68 -11c2 -1 3 -1 5 -2 -c12 -4 24 -9 35 -15v0zM224 22c37 0 72 12 100 32l-238 238c-20 -28 -32 -63 -32 -100c0 -65 36 -121 90 -150c6 -3 13 -7 19 -9c2 -1 3 -1 5 -2c9 -3 19 -5 29 -7c9 -2 18 -2 27 -2zM362 93c20 28 32 62 32 99c0 66 -37 123 -91 151c-6 3 -12 6 -18 8c-2 1 -3 1 -5 2 -c-9 3 -19 5 -29 7c-9 2 -18 2 -27 2c-37 0 -71 -12 -99 -32zM320 150l-42 42h42v-42zM352 144v48h16v-48h-16zM328 235c16 -7 16 -27 16 -34v-1h-16v1c0 8 -1 17 -7 20c-4 2 -13 4 -39 4h-3c-13 0 -24 0 -33 13c-5 8 -5 19 -2 29c-4 1 -8 1 -12 3c-17 7 -26 20 -26 38 -c0 33 27 44 39 44v-16c-1 0 -23 -2 -23 -28c0 -11 5 -19 16 -23c9 -4 18 -3 18 -3c3 0 6 -2 7 -5s2 -6 0 -8c-5 -7 -7 -18 -4 -22c4 -6 7 -6 20 -6h3c24 0 37 -2 46 -6zM368 200v0h-16c0 28 -4 41 -7 46c-6 10 -14 14 -25 14h-30c-3 0 -5 2 -6 4s-1 6 0 8c0 0 8 18 6 32 -c-1 8 -6 17 -27 17v16c24 0 40 -11 43 -30c2 -11 0 -23 -3 -31h17c16 0 30 -8 39 -22c6 -10 9 -28 9 -54z" /> - <glyph glyph-name="ion-nuclear" unicode="&#xf2a4;" -d="M176 176c0 32 16 48 48 48s48 -16 48 -48s-16 -48 -48 -48s-48 16 -48 48zM176 176c0 32 16 48 48 48s48 -16 48 -48s-16 -48 -48 -48s-48 16 -48 48zM448 176c0 -27 -5 -53 -15 -78s-23 -47 -40 -66s-36 -35 -59 -48l-79 136c22 12 33 31 33 56h160zM224 240 -c-12 0 -23 -3 -33 -9l-80 138c35 20 73 31 113 31s78 -10 113 -30l-81 -139c-10 6 -21 9 -32 9zM160 176c0 -25 11 -44 33 -56l-79 -136c-35 20 -62 46 -83 80s-31 71 -31 112h160z" /> - <glyph glyph-name="ion-outlet" unicode="&#xf342;" -d="M338 416c61 0 110 -51 110 -113v-222c0 -62 -49 -113 -110 -113h-228c-61 0 -110 51 -110 113v222c0 62 49 113 110 113h228zM143 197v102c0 11 -9 21 -20 21h-23c-11 0 -19 -9 -20 -20v-2v-101v-1c0 -11 9 -20 20 -20h23c11 0 20 9 20 20v1zM265 52v29 -c0 23 -18 42 -41 42s-41 -19 -41 -42v-29v0c0 -11 9 -20 20 -20h21h21c11 0 20 7 20 18v2zM368 197v102c0 11 -9 21 -20 21h-24c-11 0 -19 -9 -20 -20v-2v-101v-1c0 -11 9 -20 20 -20h24c11 0 20 9 20 20v1z" /> - <glyph glyph-name="ion-paintbrush" unicode="&#xf4d5;" -d="M118 165c52 0 102 -41 90 -102c-11 -52 -54 -71 -90 -77c-30 -5 -100 0 -118 35c24 9 34 26 34 49c0 49 32 95 84 95zM436 388c13 -13 17 -30 5 -45l-154 -175c2 -9 1 -17 -3 -23l-50 -58v0v0c-2 -2 -4 -2 -6 0c-1 1 -1 2 -1 3v1c2 53 -41 87 -89 90v0h-2s-2 0 -2 1 -c-2 2 -2 4 0 6l59 49c6 4 14 4 23 2l175 154c15 12 32 8 45 -5zM134 188v0v0v0z" /> - <glyph glyph-name="ion-paintbucket" unicode="&#xf4d6;" horiz-adv-x="480" -d="M112 384l32 32l275 -276l-58 -12l-163 -160l-198 192l152 152zM309 160l-110 110l-110 -110h220zM419 140c0 0 61 -66 61 -99s-27 -60 -61 -60s-60 27 -60 60s60 99 60 99z" /> - <glyph glyph-name="ion-paper-airplane" unicode="&#xf2c3;" -d="M0 176l448 240l-112 -448l-112 112l-80 -112l-16 160zM319 31l80 323l-322 -173l83 -31l192 154l-128 -176z" /> - <glyph glyph-name="ion-paperclip" unicode="&#xf20f;" horiz-adv-x="160" -d="M149 293c6 0 11 -5 11 -12v-195c0 -28 -10 -49 -24 -63c-15 -15 -36 -23 -56 -23c-40 0 -80 31 -80 88v234c0 24 11 44 29 54s39 11 57 0s29 -30 29 -54l-1 -225c0 -13 -3 -24 -9 -32s-16 -12 -25 -12c-17 0 -34 15 -34 44v173c0 6 6 12 12 12s11 -6 11 -12v-173 -c0 -14 5 -21 11 -21c2 0 5 2 7 4c3 4 5 10 5 17v225c0 15 -6 28 -17 34s-24 6 -35 0s-17 -19 -17 -34v-234c0 -44 29 -64 57 -64s57 19 57 63v195c0 6 6 11 12 11z" /> - <glyph glyph-name="ion-pause" unicode="&#xf210;" horiz-adv-x="256" -d="M96 12c0 -7 -5 -12 -12 -12h-72c-7 0 -12 5 -12 12v360c0 7 5 12 12 12h72c7 0 12 -5 12 -12v-360zM244 384c7 0 12 -5 12 -12v-360c0 -7 -5 -12 -12 -12h-72c-7 0 -12 5 -12 12v360c0 7 5 12 12 12h72z" /> - <glyph glyph-name="ion-person-add" unicode="&#xf211;" -d="M397 120h-42v51h-51v42h51v51h42v-51h51v-42h-51v-51zM384 0h-192h-192s0 26 2 40c2 11 17 25 81 49c63 23 60 12 60 55c0 28 -14 11 -23 64c-4 21 -6 7 -14 40c-4 17 3 19 2 27s-2 16 -4 33c-2 21 18 76 88 76s90 -55 88 -76c-2 -17 -3 -25 -4 -33s6 -10 2 -27 -c-8 -33 -10 -19 -14 -40c-9 -53 -23 -36 -23 -64c0 -43 -3 -32 60 -55c64 -24 79 -38 81 -49c2 -14 2 -40 2 -40z" /> - <glyph glyph-name="ion-person-stalker" unicode="&#xf212;" -d="M393 123c42 -16 52 -26 53 -33c2 -9 2 -90 2 -90h-98c0 18 0 71 -1 77c-1 10 -1 29 -55 50c-8 3 -14 5 -19 7c18 8 15 15 15 28c0 19 -9 11 -15 47c-2 14 -4 5 -9 28c-3 12 1 12 1 18s-1 10 -2 22c-1 14 11 52 57 52s59 -38 58 -52c-1 -12 -2 -16 -2 -22 -c-1 -6 4 -6 1 -18c-5 -23 -7 -14 -9 -28c-6 -36 -16 -28 -16 -47c0 -29 -2 -23 39 -39zM325 0h-163h-162s0 65 2 77c2 10 15 22 69 43c54 20 50 17 50 55c0 24 -12 8 -20 54c-3 18 -5 7 -11 36c-3 15 2 16 1 23s-2 14 -3 29c-2 19 15 67 74 67s77 -49 75 -67 -c-1 -15 -2 -22 -3 -29s5 -8 2 -23c-6 -29 -9 -18 -12 -36c-8 -46 -20 -30 -20 -54c0 -32 -2 -36 31 -48c6 -2 11 -4 19 -7c54 -21 67 -33 69 -43c1 -6 2 -28 2 -47v-30z" /> - <glyph glyph-name="ion-person" unicode="&#xf213;" horiz-adv-x="384" -d="M384 0h-192h-192s0 26 2 40c2 11 17 25 81 49c63 23 60 12 60 55c0 28 -14 11 -23 64c-4 21 -6 7 -14 40c-4 17 3 19 2 27s-2 16 -4 33c-2 21 18 76 88 76s90 -55 88 -76c-2 -17 -3 -25 -4 -33s6 -10 2 -27c-8 -33 -10 -19 -14 -40c-9 -53 -23 -36 -23 -64 -c0 -43 -3 -32 60 -55c64 -24 79 -38 81 -49c2 -14 2 -40 2 -40z" /> - <glyph glyph-name="ion-pie-graph" unicode="&#xf2a5;" -d="M1 192c0 5 -1 11 -1 16c0 115 93 208 208 208c5 0 11 -1 16 -1v-32v-191h-191h-32zM78 46c-26 32 -42 71 -45 114h223v223c43 -3 82 -19 114 -45c47 -38 78 -96 78 -162c0 -115 -93 -208 -208 -208c-66 0 -124 31 -162 78z" /> - <glyph glyph-name="ion-pin" unicode="&#xf2a6;" horiz-adv-x="224" -d="M188 220c20 -10 36 -31 36 -55c0 -17 -3 -21 -15 -21h-81l-12 -176h-8l-12 176h-81c-12 0 -15 5 -15 21c0 24 16 45 36 55v0c1 0 3 1 4 2c7 4 12 11 14 19l18 118v5c0 7 -4 10 -10 13v0c-1 0 -1 1 -2 1c-7 3 -12 9 -12 17c0 20 6 21 18 21h92c12 0 18 -1 18 -21 -c0 -8 -5 -14 -12 -17c-1 0 -1 -1 -2 -1v0c-6 -3 -10 -6 -10 -13v-5l18 -118c2 -8 7 -15 14 -19c1 -1 3 -2 4 -2v0z" /> - <glyph glyph-name="ion-pinpoint" unicode="&#xf2a7;" -d="M224 416c124 0 224 -100 224 -224s-100 -224 -224 -224s-224 100 -224 224s100 224 224 224zM360 56c32 32 51 75 55 120l-63 8v16l63 8c-4 45 -23 88 -55 120s-75 51 -120 55l-8 -63h-16l-8 63c-45 -4 -88 -23 -120 -55s-51 -75 -55 -120l63 -8v-16l-63 -8 -c4 -45 23 -88 55 -120s75 -51 120 -55l8 63h16l8 -63c45 4 88 23 120 55z" /> - <glyph glyph-name="ion-pizza" unicode="&#xf2a8;" horiz-adv-x="352" -d="M315 318c10 -4 12 -13 9 -20l-148 -330s-143 320 -148 331s2 16 9 19c39 18 90 28 139 28s96 -9 139 -28zM112 256c18 0 32 14 32 32s-14 32 -32 32s-32 -14 -32 -32s14 -32 32 -32zM176 109c18 0 32 14 32 32s-14 32 -32 32s-32 -14 -32 -32s14 -32 32 -32zM240 224 -c18 0 32 14 32 32s-14 32 -32 32s-32 -14 -32 -32s14 -32 32 -32zM342 382c6 -3 10 -6 10 -13c0 -1 0 -3 -1 -5l-8 -19c-3 -5 -8 -9 -14 -9c-1 0 -3 1 -6 2c-41 18 -95 30 -147 30s-102 -11 -147 -30c-3 -1 -4 -2 -6 -2c-6 0 -11 4 -14 9l-8 19s-1 2 -1 5c0 8 6 12 10 14 -c49 21 107 33 166 33s118 -13 166 -34z" /> - <glyph glyph-name="ion-plane" unicode="&#xf214;" -d="M250 136c0 -7 1 -69 -6 -102c-1 -4 3 -4 5 -7l51 -33c2 -2 3 -8 3 -8l1 -18l-68 16l-12 -32l-12 32l-68 -16l1 18s0 6 2 8l52 33c2 3 6 3 5 7c-7 33 -6 95 -6 102s-8 5 -8 5l-62 -13l-128 -49c0 23 2 26 9 31l183 131s5 63 5 113c0 24 12 78 27 78s27 -54 27 -78 -c0 -53 5 -113 5 -113l183 -131c6 -4 9 -7 9 -31l-128 49l-62 13s-8 2 -8 -5z" /> - <glyph glyph-name="ion-planet" unicode="&#xf343;" horiz-adv-x="512" -d="M96 182c39 -24 85 -48 134 -69c44 -19 87 -35 126 -46c-27 -22 -62 -35 -100 -35c-85 0 -155 66 -160 150zM107 251c1 4 3 8 5 11c10 21 26 40 44 55c27 22 62 35 100 35c85 0 155 -66 160 -150v-10c0 -21 -4 -41 -11 -59c-1 -4 -3 -8 -5 -11c-6 1 -13 3 -19 5 -c-39 11 -82 26 -126 45c-56 24 -108 52 -148 79zM430 163c57 -35 87 -62 81 -82c-4 -12 -19 -17 -44 -17c-50 0 -136 23 -231 64c-141 61 -246 140 -235 175c4 12 20 20 44 17c22 -3 47 -9 73 -18c-8 -9 -8 -12 -14 -22c-23 5 -44 8 -59 8h-6c2 -2 5 -6 8 -9 -c11 -11 27 -24 46 -37c41 -29 97 -59 156 -85c44 -19 89 -35 128 -46c36 -10 68 -15 90 -15h6c-2 2 -5 6 -8 9c-10 10 -24 22 -41 34c4 11 5 12 6 24z" /> - <glyph glyph-name="ion-play" unicode="&#xf215;" horiz-adv-x="320" -d="M309 215c7 -6 11 -14 11 -23s-4 -17 -11 -23l-278 -166c-4 -2 -7 -3 -11 -3c-11 0 -20 9 -20 20v0v344v0c0 11 9 20 20 20c4 0 8 -1 11 -3z" /> - <glyph glyph-name="ion-playstation" unicode="&#xf30a;" horiz-adv-x="512" -d="M400 245c0 -11 0 -22 -2 -33c-2 -10 -5 -20 -10 -28c-4 -7 -10 -13 -18 -17c-7 -4 -16 -6 -24 -6c-13 0 -31 4 -42 9v131v2c0 9 -7 17 -15 17h-1c-9 0 -16 -8 -16 -17v-3v-300l-80 26v358s28 -4 75 -18s67 -21 84 -31c8 -5 15 -11 21 -17c7 -7 13 -14 17 -23 -c8 -16 10 -33 11 -50zM87 90c-4 -2 -8 -3 -11 -6c-1 -1 -3 -3 -2 -5s4 -4 6 -5c6 -2 13 -3 19 -3c7 0 15 0 22 2c5 1 9 3 14 5c30 10 41 12 41 12v-42c-14 -2 -36 -4 -50 -4c-30 -1 -60 4 -88 13c-9 3 -19 6 -27 12c-4 3 -8 8 -10 13c-2 4 -1 9 1 13s5 8 9 11 -c9 6 18 10 28 14c8 4 17 7 26 10c35 12 111 37 111 37v-47s-62 -20 -89 -30zM512 102c0 -5 -2 -9 -5 -13c-6 -7 -14 -11 -22 -15s-17 -8 -26 -11c-54 -19 -171 -59 -171 -59v48s92 30 133 44c6 2 11 4 16 8c2 2 4 3 3 6c-1 2 -4 4 -6 5c-6 2 -13 3 -19 3 -c-10 0 -20 -2 -30 -5c-29 -10 -97 -32 -97 -32v49s45 14 67 16c8 1 23 1 31 1c26 0 54 -3 79 -11c5 -2 8 -3 14 -5c9 -3 18 -8 25 -14c4 -4 8 -9 8 -15z" /> - <glyph glyph-name="ion-plus-circled" unicode="&#xf216;" -d="M224 416c124 0 224 -100 224 -224s-100 -224 -224 -224s-224 100 -224 224s100 224 224 224zM352 176v32h-112v112h-32v-112h-112v-32h112v-112h32v112h112z" /> - <glyph glyph-name="ion-plus-round" unicode="&#xf217;" horiz-adv-x="384" -d="M353 224c17 0 31 -14 31 -32s-14 -32 -31 -32h-129v-129c0 -17 -14 -31 -32 -31s-32 14 -32 31v129h-129c-17 0 -31 14 -31 32s14 32 31 32h129v129c0 17 14 31 32 31s32 -14 32 -31v-129h129z" /> - <glyph glyph-name="ion-plus" unicode="&#xf218;" horiz-adv-x="384" -d="M384 224v-64h-160v-160h-64v160h-160v64h160v160h64v-160h160z" /> - <glyph glyph-name="ion-podium" unicode="&#xf344;" -d="M0 0v192h128v-192h-128zM160 0v288h128v-288h-128zM320 0v128h128v-128h-128z" /> - <glyph glyph-name="ion-pound" unicode="&#xf219;" -d="M93 96h-93v54h101l13 84h-99v54h107l22 128h64l-22 -128h106l22 128h63l-22 -128h93v-54h-102l-12 -84h99v-54h-107l-22 -128h-63l22 128h-107l-22 -128h-63zM177 234l-12 -84h106l12 84h-106v0z" /> - <glyph glyph-name="ion-power" unicode="&#xf2a9;" -d="M224 192c-18 0 -32 14 -32 32v160c0 18 14 32 32 32s32 -14 32 -32v-160c0 -18 -14 -32 -32 -32zM347 379c61 -40 101 -109 101 -187c0 -124 -100 -224 -224 -224s-224 100 -224 224c0 78 40 147 101 187v0c5 3 11 5 17 5c18 0 32 -14 32 -32c0 -6 -2 -12 -5 -17 -c-2 -3 -4 -6 -7 -8c-1 -1 -3 -2 -4 -3c-8 -6 -16 -12 -23 -19c-30 -30 -47 -70 -47 -113s17 -83 47 -113s70 -47 113 -47s83 17 113 47s47 70 47 113s-17 83 -47 113c-7 7 -15 13 -23 19c-1 1 -3 2 -4 3c-3 2 -5 5 -7 8c-3 5 -5 11 -5 17c0 18 14 32 32 32c6 0 12 -2 17 -5 -v0z" /> - <glyph glyph-name="ion-pricetag" unicode="&#xf2aa;" -d="M439 187c12 -12 12 -31 0 -43l-165 -167c-11 -11 -30 -11 -42 -1l-3 3l-206 209l-6 5c-6 7 -9 15 -10 24v0v2v0l-7 98v4v0c0 12 4 24 13 33l49 49c8 9 20 13 31 13h4l100 -4v0c12 0 22 -4 30 -12v0l2 -2v0l210 -211v0v0zM112 256c26 0 48 22 48 48s-22 48 -48 48 -s-48 -22 -48 -48s22 -48 48 -48z" /> - <glyph glyph-name="ion-pricetags" unicode="&#xf2ab;" -d="M440 209c10 -11 11 -28 0 -39l-29 -29c11 11 10 28 0 39v0v0l-190 191v0l-1 1h-1c-8 7 -16 12 -27 12v0l-90 3h-4c-9 0 -19 -3 -26 -10l28 27c8 8 17 12 27 12h4l90 -4v0c11 0 19 -4 27 -11h1l1 -1v0l190 -191v0v0zM396 166v0c11 -11 11 -29 0 -40l-108 -109v1l-26 -27 -l-2 -2l-13 -13c-10 -10 -26 -10 -37 -1l-3 3l-186 188l-5 5c-5 6 -9 14 -10 22v0v2v0l-6 88v3v1c0 11 4 21 12 29l44 45l1 1l1 1c7 6 17 9 26 9h4l90 -3v0c11 0 19 -4 27 -11v0l2 -1v0l189 -191v0zM79 308c-12 -8 -21 -21 -21 -37c0 -24 19 -43 43 -43c16 0 29 9 37 21 -c4 7 7 14 7 22c0 24 -20 44 -44 44c-8 0 -15 -3 -22 -7z" /> - <glyph glyph-name="ion-printer" unicode="&#xf21a;" -d="M392 320c28 0 56 -19 56 -55v-131c0 -31 -28 -54 -56 -54h-40v-112h-8h-8h-224h-11h-5v112h-40c-28 0 -56 24 -56 62v123c0 38 28 55 56 55h40v64h256v-64h40zM336 -16v176h-224v-176h224zM336 320v48h-224v-48h224zM384 256v16h-17v-16h17zM128 112v16h192v-16h-192z -M128 64v16h192v-16h-192zM128 16v16h192v-16h-192z" /> - <glyph glyph-name="ion-pull-request" unicode="&#xf345;" horiz-adv-x="384" -d="M64 384c35 0 64 -29 64 -64c0 -24 -13 -44 -32 -55v-178c19 -11 32 -31 32 -55c0 -35 -29 -64 -64 -64s-64 29 -64 64c0 24 13 44 32 55v178c-19 11 -32 31 -32 55c0 35 29 64 64 64zM64 0c18 0 32 14 32 32s-14 32 -32 32s-32 -14 -32 -32s14 -32 32 -32zM64 288 -c18 0 32 14 32 32s-14 32 -32 32s-32 -14 -32 -32s14 -32 32 -32zM351 88c20 -11 33 -32 33 -56c0 -35 -29 -64 -64 -64s-64 29 -64 64c0 23 12 44 31 55v156c0 16 -4 26 -11 33c-10 9 -26 12 -52 12v-64l-96 96l96 96v-64c42 1 74 -8 96 -29c21 -19 31 -46 31 -80v-155z -M320 0c18 0 32 14 32 32s-14 32 -32 32s-32 -14 -32 -32s14 -32 32 -32z" /> - <glyph glyph-name="ion-qr-scanner" unicode="&#xf346;" horiz-adv-x="416" -d="M48 324v-68h-48v68c0 33 28 60 61 60h67v-48h-68c-7 0 -12 -5 -12 -12zM356 384c33 0 60 -27 60 -60v-68h-48v68c0 7 -6 12 -13 12h-67v48h68zM368 61v67h48v-67c0 -33 -27 -61 -60 -61h-68v49h68c7 0 12 5 12 12zM60 49h68v-49h-67c-33 0 -61 28 -61 61v67h48v-67 -c0 -7 5 -12 12 -12z" /> - <glyph glyph-name="ion-quote" unicode="&#xf347;" horiz-adv-x="384" -d="M128 384c-41 0 -73 -11 -95 -33s-33 -54 -33 -95v-256h160v256h-96c0 23 5 39 15 49s26 15 49 15zM352 384c-41 0 -73 -11 -95 -33s-33 -54 -33 -95v-256h160v256h-96c0 23 5 39 15 49s26 15 49 15z" /> - <glyph glyph-name="ion-radio-waves" unicode="&#xf2ac;" -d="M160 192c0 43 21 64 64 64s64 -21 64 -64s-21 -64 -64 -64s-64 21 -64 64zM112 192c0 -18 5 -35 13 -50s19 -28 33 -37l-23 -25c-6 5 -13 10 -18 16c-25 26 -37 59 -37 96s12 70 37 96c5 6 12 11 18 16l23 -25c-14 -9 -25 -22 -33 -37s-13 -32 -13 -50zM336 192 -c0 18 -5 35 -13 50s-19 28 -33 37l23 25c6 -5 13 -10 18 -16c25 -26 37 -59 37 -96s-12 -70 -37 -96c-5 -6 -12 -11 -18 -16l-23 25c14 9 25 22 33 37s13 32 13 50zM32 192c0 -27 6 -53 17 -77s27 -43 47 -59l-23 -24c-6 5 -12 10 -17 16c-18 19 -31 41 -41 65 -c-10 25 -15 51 -15 79s5 54 15 79c10 24 23 46 41 65c5 6 11 11 17 16l23 -24c-10 -8 -18 -17 -26 -27s-14 -21 -20 -32s-10 -24 -13 -37s-5 -26 -5 -40zM416 192c0 27 -6 53 -17 77s-27 43 -47 59l23 24c6 -5 12 -10 17 -16c18 -19 31 -41 41 -65c10 -25 15 -51 15 -79 -s-5 -54 -15 -79c-10 -24 -23 -46 -41 -65c-4 -5 -10 -10 -17 -16l-23 24c20 16 36 35 47 59s17 50 17 77z" /> - <glyph glyph-name="ion-record" unicode="&#xf21b;" horiz-adv-x="416" -d="M208 -16c-115 0 -208 93 -208 208s93 208 208 208s208 -93 208 -208s-93 -208 -208 -208z" /> - <glyph glyph-name="ion-refresh" unicode="&#xf21c;" -d="M352 96l-104 112h74c-7 65 -64 112 -130 112c-71 0 -128 -57 -128 -128s57 -128 128 -128c28 0 53 8 75 24l6 5l43 -46l-7 -6c-34 -26 -74 -41 -117 -41c-91 0 -167 64 -187 149v0c0 1 -1 2 -1 3v1v2s-1 2 -1 3v1c0 1 -1 3 -1 4v0c-1 6 -2 13 -2 19v1v4v5v5v4v1 -c0 6 1 13 2 19v0c0 1 1 3 1 4v1c0 1 1 1 1 2v3v1c0 1 1 2 1 3v0c20 85 96 149 187 149v0v0c11 0 21 -1 31 -3h2h2c57 -10 106 -47 133 -96c13 -23 21 -49 23 -77h65z" /> - <glyph glyph-name="ion-reply-all" unicode="&#xf21d;" horiz-adv-x="416" -d="M257 256c153 0 159 -208 159 -208c-51 93 -91 102 -159 102v-92l-152 134l152 144v-80zM0 192l144 136v-57l-82 -79l82 -68v-58z" /> - <glyph glyph-name="ion-reply" unicode="&#xf21e;" horiz-adv-x="384" -d="M384 48c-53 93 -122 102 -224 102v-92l-160 134l160 144v-80c187 0 224 -208 224 -208z" /> - <glyph glyph-name="ion-ribbon-a" unicode="&#xf348;" horiz-adv-x="352" -d="M272 416l80 -96l-64 -134c-24 30 -59 49 -99 53zM80 416l83 -177c-40 -4 -75 -23 -99 -53l-64 134zM189 416h67l-53 -112h-27h-27l-53 112h80h13zM176 224c71 0 128 -57 128 -128s-57 -128 -128 -128s-128 57 -128 128s57 128 128 128zM176 0c53 0 96 43 96 96 -s-43 96 -96 96s-96 -43 -96 -96s43 -96 96 -96zM176 184c49 0 88 -39 88 -88s-39 -88 -88 -88s-88 39 -88 88s39 88 88 88z" /> - <glyph glyph-name="ion-ribbon-b" unicode="&#xf349;" horiz-adv-x="384" -d="M192 376c49 0 88 -39 88 -88s-39 -88 -88 -88s-88 39 -88 88s39 88 88 88zM192 416c71 0 128 -57 128 -128s-57 -128 -128 -128s-128 57 -128 128s57 128 128 128zM192 192c53 0 96 43 96 96s-43 96 -96 96s-96 -43 -96 -96s43 -96 96 -96zM83 194c26 -30 65 -50 109 -50 -c12 0 23 1 34 4l-34 -74l-48 -106l-48 80h-96zM301 194l83 -146h-96l-48 -80l-40 88l45 98c22 9 41 23 56 40z" /> - <glyph glyph-name="ion-sad-outline" unicode="&#xf4d7;" -d="M367 164c3 -9 -2 -17 -11 -19c-3 -1 -7 0 -10 1c-5 2 -9 5 -11 10s-4 12 -13 15s-14 0 -19 -3c-4 -3 -10 -3 -15 -1c-3 1 -7 3 -9 6c-6 8 -3 17 5 22c15 9 29 13 49 6s29 -21 34 -37zM165 195c8 -5 10 -14 4 -22c-2 -3 -6 -5 -9 -6c-5 -2 -11 -2 -15 1c-5 3 -10 6 -19 3 -s-11 -10 -13 -15s-6 -8 -11 -10c-3 -1 -7 -2 -10 -1c-9 2 -14 10 -11 19c5 16 14 30 34 37s35 3 50 -6zM224 416c124 0 224 -100 224 -224s-100 -224 -224 -224s-224 100 -224 224s100 224 224 224zM360 56c36 36 56 85 56 136s-20 100 -56 136s-85 56 -136 56 -s-100 -20 -136 -56s-56 -85 -56 -136s20 -100 56 -136s85 -56 136 -56s100 20 136 56zM317 89c5 -7 3 -17 -4 -22c-3 -2 -6 -3 -9 -3c-5 0 -10 3 -13 7c0 0 -19 25 -67 25s-67 -25 -67 -25c-3 -4 -8 -7 -13 -7c-3 0 -6 1 -9 3c-7 5 -9 15 -4 22c1 2 28 39 93 39 -s92 -37 93 -39z" /> - <glyph glyph-name="ion-sad" unicode="&#xf34a;" -d="M224 416c124 0 224 -100 224 -224s-100 -224 -224 -224s-224 100 -224 224s100 224 224 224zM113 156c2 5 4 12 13 15s14 0 19 -3c4 -3 10 -3 15 -1c3 1 7 3 9 6c6 8 4 17 -4 22c-15 9 -30 13 -50 6s-29 -21 -34 -37c-3 -9 2 -17 11 -19c3 -1 7 0 10 1c5 2 9 5 11 10z -M313 67c7 5 9 15 4 22c-1 2 -28 39 -93 39s-92 -37 -93 -39c-5 -7 -3 -17 4 -22c3 -2 6 -3 9 -3c5 0 10 3 13 7c0 0 19 25 67 25s67 -25 67 -25c3 -4 8 -7 13 -7c3 0 6 1 9 3zM356 145c9 2 14 10 11 19c-5 16 -14 30 -34 37s-34 3 -49 -6c-8 -5 -11 -14 -5 -22 -c2 -3 6 -5 9 -6c5 -2 11 -2 15 1c5 3 10 6 19 3s11 -10 13 -15s6 -8 11 -10c3 -1 7 -2 10 -1z" /> - <glyph glyph-name="ion-scissors" unicode="&#xf34b;" horiz-adv-x="384" -d="M341 332c-13 -33 -117 -172 -117 -172l-32 -32s-31 -13 -50 -43s-33 -71 -33 -71v0c-7 -26 -28 -46 -53 -46c-31 0 -56 29 -56 64s25 64 56 64c13 0 25 -5 34 -13c2 -1 3 -3 4 -4v0l2 -2c4 -4 7 -2 14 11c8 15 17 35 27 54s38 59 38 59l17 23l144 192 -c23 -20 18 -51 5 -84zM56 0c15 0 28 14 28 32s-13 32 -28 32s-28 -14 -28 -32s13 -32 28 -32zM192 160c9 0 16 7 16 16s-7 16 -16 16s-16 -7 -16 -16s7 -16 16 -16zM143 183c-30 41 -90 125 -100 149c-13 33 -18 64 5 84l134 -178l-3 -4v0v0l-17 -23v-1v0 -c-1 -1 -10 -13 -19 -27zM328 96c31 0 56 -29 56 -64s-25 -64 -56 -64c-25 0 -47 20 -54 46v0s-13 41 -32 71c-11 17 -26 28 -36 35l29 29l1 1h1c1 1 1 2 2 4c3 -4 5 -9 7 -12c10 -19 20 -39 28 -54c7 -13 10 -15 14 -11c1 1 0 1 1 2h1c1 1 2 3 4 4c9 8 21 13 34 13zM328 0 -c15 0 28 14 28 32s-13 32 -28 32s-28 -14 -28 -32s13 -32 28 -32z" /> - <glyph glyph-name="ion-search" unicode="&#xf21f;" horiz-adv-x="384" -d="M381 61c4 -4 4 -10 0 -14l-43 -44c-2 -2 -5 -3 -8 -3s-5 1 -7 3l-84 86c-25 -15 -52 -23 -80 -23c-87 0 -159 71 -159 159s72 159 159 159s158 -71 158 -159c0 -27 -7 -54 -21 -78zM159 322c-53 0 -97 -43 -97 -97s44 -97 97 -97s96 43 96 97s-43 97 -96 97z" /> - <glyph glyph-name="ion-settings" unicode="&#xf2ad;" horiz-adv-x="416" -d="M402 310c10 -6 15 -25 14 -36c-1 -17 -7 -36 -25 -54c-1 -1 -2 -1 -3 -2c-26 -25 -62 -30 -94 -20c-1 1 -2 2 -4 2c-5 1 -10 0 -13 -4l-36 -39c52 -50 107 -96 107 -96c2 -2 2 -5 0 -7l-50 -51c-2 -2 -5 -2 -7 0c0 0 -44 55 -93 107l-92 -98c-14 -16 -40 -15 -55 0 -c-15 16 -15 42 1 56l97 93l-12 12c-2 2 -3 7 -1 10l2 5c-25 26 -36 33 -56 32s-36 -13 -48 -28s-10 -52 -8 -62s-7 -6 -12 0c-9 10 -23 50 -6 93s42 69 48 75s16 15 24 21s21 -1 27 5c4 4 5 11 5 16l-4 4c-2 2 -2 5 0 7l31 31c2 2 5 2 7 0l50 -50c2 -2 2 -6 0 -8l-31 -31 -c-2 -2 -5 -2 -7 0l-8 9c-7 0 -15 -5 -17 -10c-3 -6 -6 -21 -3 -33c3 -11 13 -20 36 -43l5 3c4 2 8 1 10 -1c0 0 1 -2 13 -14l38 37c4 3 5 7 4 13c0 2 0 4 -1 5c-10 33 -6 69 19 96l2 2c18 18 36 25 53 26c10 1 30 -5 35 -15l-48 -48l-2 -3l-1 -1c-1 -1 -1 -2 -1 -4 -s0 -3 1 -5l2 -2l2 -2l41 -42l3 -3l1 -1c1 -1 2 -1 4 -1s3 0 4 1l2 1l2 3z" /> - <glyph glyph-name="ion-share" unicode="&#xf220;" horiz-adv-x="384" -d="M288 70v59l38 31v-109c0 -11 -8 -19 -19 -19h-288c-11 0 -19 9 -19 19v218c0 11 8 19 19 19h120c-29 -18 -43 -38 -43 -38h-58v-180h250zM256 224c-84 0 -116 -24 -160 -96c0 0 5 164 160 164v60l128 -96l-128 -96v64z" /> - <glyph glyph-name="ion-shuffle" unicode="&#xf221;" -d="M338 267c-52 0 -83 -43 -120 -92c-41 -55 -88 -120 -171 -120h-47v63h47c52 0 84 47 121 96c41 55 87 116 170 116h29v54l81 -81l-81 -84v48h-29zM121 230c-21 21 -42 35 -74 36c-34 1 -47 0 -47 0v63h47c48 0 83 -20 113 -48c-10 -12 -19 -24 -28 -36 -c-4 -5 -7 -10 -11 -15zM367 118v47l81 -84l-81 -81v54h-29c-50 0 -87 23 -117 53c12 14 22 28 32 41c2 3 5 6 7 9c22 -24 46 -39 78 -39h29z" /> - <glyph glyph-name="ion-skip-backward" unicode="&#xf222;" horiz-adv-x="384" -d="M12 352h8c7 0 12 -5 12 -12v-113l187 122c2 2 5 3 8 3c8 0 16 -7 16 -17v-63l118 78c2 2 5 2 8 2c8 0 15 -7 15 -17v-286c0 -10 -7 -17 -15 -17c-3 0 -5 1 -8 3l-118 78v-64c0 -10 -8 -17 -16 -17c-3 0 -5 1 -8 3l-187 122v-113c0 -7 -5 -12 -12 -12h-8 -c-7 0 -12 5 -12 12v296c0 7 5 12 12 12z" /> - <glyph glyph-name="ion-skip-forward" unicode="&#xf223;" horiz-adv-x="384" -d="M372 352c7 0 12 -5 12 -12v-296c0 -7 -5 -12 -12 -12h-8c-7 0 -12 5 -12 12v113l-187 -122c-3 -2 -5 -3 -8 -3c-8 0 -15 7 -15 17v64l-119 -78c-3 -2 -5 -3 -8 -3c-8 0 -15 7 -15 17v286c0 10 7 17 15 17c3 0 6 0 8 -2l119 -78v63c0 10 7 17 15 17c3 0 6 -1 8 -3 -l187 -122v113c0 7 5 12 12 12h8z" /> - <glyph glyph-name="ion-social-android-outline" unicode="&#xf224;" horiz-adv-x="352" -d="M272 240h-192v-60v-89h24h16v-15v-52c0 -4 4 -8 8 -8s8 4 8 8v52v15h17h49h15v-15v-52c0 -2 1 -4 3 -6h1v0c1 -1 2 -2 4 -2h1v0v0c4 0 7 4 7 8v52v15h17h22v89v60zM288 256v0v-76v-90c0 -7 -3 -15 -10 -15h-29v-51c0 -13 -10 -24 -23 -24v0h-1c-6 0 -11 2 -15 5 -c-5 4 -9 11 -9 19v51h-49v-51c0 -13 -11 -24 -24 -24s-24 11 -24 24v51h-28c-7 0 -12 8 -12 15v90v76h224zM328 256c-4 0 -8 -4 -8 -8v-96c0 -4 4 -8 8 -8s8 4 8 8v96c0 4 -4 8 -8 8zM328 272v0c13 0 24 -11 24 -24v-96c0 -13 -11 -24 -24 -24s-24 11 -24 24v96 -c0 13 11 24 24 24zM24 256c-4 0 -8 -4 -8 -8v-96c0 -4 4 -8 8 -8s8 4 8 8v96c0 4 -4 8 -8 8zM24 272v0c13 0 24 -11 24 -24v-96c0 -13 -11 -24 -24 -24s-24 11 -24 24v96c0 13 11 24 24 24zM175 354c-14 0 -27 -3 -38 -6l-10 -4c-28 -12 -40 -37 -44 -56h186 -c-4 18 -15 43 -44 56l-10 4c-12 4 -25 6 -39 6v0v0h-1zM105 384v0h1l19 -23c13 5 30 9 50 9h1c20 0 36 -4 50 -9l20 23v0s1 -1 2 -1c1 -1 2 -3 2 -3l-19 -22c48 -21 56 -71 57 -86h-224c1 15 9 66 57 87l-19 22c0 1 1 1 2 2zM127 309c-7 0 -14 6 -14 13s6 14 14 14 -c7 0 13 -7 13 -14s-5 -13 -13 -13zM225 309c-7 0 -13 6 -13 13s5 14 13 14c7 0 13 -7 13 -14s-6 -13 -13 -13z" /> - <glyph glyph-name="ion-social-android" unicode="&#xf225;" horiz-adv-x="352" -d="M64 180v76h224v-76v-90c0 -7 -4 -14 -11 -14h-28v-52c0 -13 -11 -24 -24 -24v0h-1c-6 0 -10 2 -14 5c-5 4 -9 11 -9 19v52h-49v-52c0 -13 -11 -24 -24 -24s-24 11 -24 24v52h-29c-7 0 -11 7 -11 14v90zM328 272c13 0 24 -11 24 -24v-96c0 -13 -11 -24 -24 -24 -s-24 11 -24 24v96c0 13 11 24 24 24zM24 272c13 0 24 -11 24 -24v-96c0 -13 -11 -24 -24 -24s-24 11 -24 24v96c0 13 11 24 24 24zM231 359c48 -21 56 -72 57 -87h-224c1 15 8 66 56 87l-18 22c0 1 0 1 1 2s3 1 3 1l19 -23c14 5 31 9 51 9s36 -4 50 -9l20 23c0 1 1 0 2 -1 -l2 -2zM127 309c8 0 13 6 13 13s-6 14 -13 14c-8 0 -14 -7 -14 -14s7 -13 14 -13zM225 309c7 0 14 6 14 13s-7 14 -14 14c-8 0 -13 -7 -13 -14s6 -13 13 -13z" /> - <glyph glyph-name="ion-social-angular-outline" unicode="&#xf4d8;" -d="M224 384l-188 -69l39 -230l149 -80l149 80l39 230zM224 416v0l224 -80l-46 -272l-178 -96l-178 96l-46 272zM312 96l-27 56h-122l-27 -56h-40l128 280l128 -280h-40zM182 192h84l-42 89z" /> - <glyph glyph-name="ion-social-angular" unicode="&#xf4d9;" -d="M182 192l42 89l42 -89h-84zM224 416l224 -80l-46 -272l-178 -96l-178 96l-46 272zM312 96h40l-128 280l-128 -280h40l27 56h122z" /> - <glyph glyph-name="ion-social-apple-outline" unicode="&#xf226;" horiz-adv-x="320" -d="M238 278c-15 0 -26 -4 -37 -8c-10 -4 -21 -8 -35 -8s-25 4 -37 8c-11 4 -22 8 -34 8c-11 0 -23 -3 -34 -10c-12 -7 -23 -18 -31 -31c-12 -18 -16 -47 -13 -77c3 -34 16 -69 35 -99c13 -21 30 -45 50 -45h1c8 0 13 3 20 6c10 5 23 10 44 10v0c21 0 34 -5 44 -10 -c7 -3 12 -6 19 -6v0c22 0 44 35 52 48c8 12 12 20 17 31c-12 7 -22 16 -30 28c-10 15 -17 33 -18 52c-1 18 2 37 10 53c6 12 14 22 24 30c-14 13 -31 20 -47 20zM238 294v0c25 0 52 -14 71 -39c-63 -36 -53 -128 11 -153c-9 -20 -13 -28 -24 -46c-16 -25 -37 -56 -65 -56h-1 -c-24 0 -31 16 -63 16v0c-33 0 -40 -16 -64 -16h-1c-28 0 -48 28 -64 53c-44 69 -48 150 -21 193c19 30 50 48 78 48c29 0 47 -16 71 -16c23 0 38 16 72 16zM214 364c-11 -5 -21 -13 -28 -22c-4 -5 -9 -13 -13 -23c-1 -3 -2 -6 -2 -9c11 4 21 11 28 21c4 5 12 18 15 33z -M230 384v0c3 -23 -6 -46 -18 -62c-13 -17 -35 -30 -56 -30h-1c-4 22 6 44 18 60c14 17 37 31 57 32z" /> - <glyph glyph-name="ion-social-apple" unicode="&#xf227;" horiz-adv-x="320" -d="M238 294v0c25 0 52 -14 71 -39c-63 -36 -53 -128 11 -153c-9 -20 -13 -28 -24 -46c-16 -25 -37 -56 -65 -56h-1c-24 0 -31 16 -63 16v0c-33 0 -40 -16 -64 -16h-1c-28 0 -48 28 -64 53c-44 69 -48 150 -21 193c19 30 50 48 78 48c29 0 47 -16 71 -16c23 0 38 16 72 16z -M230 384v0c3 -23 -6 -46 -18 -62c-13 -17 -35 -30 -56 -30h-1c-4 22 6 44 18 60c14 17 37 31 57 32z" /> - <glyph glyph-name="ion-social-bitcoin-outline" unicode="&#xf2ae;" horiz-adv-x="320" -d="M184 400h-8v-48v-16h-16h-32h-16v16v48h-9v-48v-16h-16h-72v-16h13c11 0 19 0 25 -3s10 -7 13 -13s3 -8 3 -20v-178c0 -11 0 -18 -3 -24v-1c-1 -3 -4 -10 -12 -14h-1c-5 -3 -8 -3 -17 -3h-13l-3 -16h67h16v-16v-48h9v48v16h16h32h16v-16v-48h8v49v16h15c23 1 41 5 55 10 -c16 6 28 15 37 26c8 11 12 29 13 42c1 14 -1 29 -4 36s-8 16 -21 23c-7 4 -14 6 -21 8l-46 11l43 19c4 2 7 4 12 9c6 5 9 12 11 16c2 5 4 13 3 22c-1 17 -4 29 -10 37c-7 9 -17 16 -31 21c-12 5 -24 7 -41 8l-15 1v15v47zM200 416v0v-63c20 -1 32 -4 45 -9 -c16 -6 29 -15 38 -27s12 -28 13 -45c1 -10 0 -20 -3 -28s-8 -16 -16 -23c-6 -6 -11 -9 -16 -11c9 -2 17 -6 25 -10c15 -8 24 -18 29 -30c4 -10 6 -30 5 -44c-1 -16 -6 -37 -16 -51c-11 -14 -26 -24 -45 -31c-15 -6 -33 -10 -59 -11v-65h-40v64h-32v-64h-41v64h-87l8 48h28 -c9 0 8 1 11 2s4 3 5 6s1 9 1 18v178c0 9 0 10 -1 12s-3 4 -6 6s-9 2 -18 2h-28v48h87v64h41v-64h32v64h40zM160 298v-74h-32v74h32zM160 176v0v-90h-32v90h32zM200 294v0c6 -2 10 -7 14 -12c4 -6 6 -13 6 -21s-2 -15 -7 -21c-4 -5 -7 -9 -13 -12v66zM200 174v0 -c5 -1 8 -1 12 -3c8 -3 14 -7 19 -13s8 -15 8 -24c0 -11 -2 -19 -10 -26s-13 -11 -23 -15c-2 -1 -4 0 -6 -1v82z" /> - <glyph glyph-name="ion-social-bitcoin" unicode="&#xf2af;" horiz-adv-x="320" -d="M314 169c4 -10 7 -30 6 -44c-1 -16 -5 -37 -16 -51s-26 -24 -45 -31c-15 -6 -33 -10 -59 -11v-64h-40v64h-32v-64h-41v64h-87l9 48h26c9 0 9 0 12 1s4 4 5 7s2 8 2 17v173c0 9 -1 16 -2 18s-3 4 -6 6s-9 2 -18 2h-28v48h87v64h41v-64h32v64h40v-64c20 -1 33 -4 46 -9 -c16 -6 28 -15 37 -27s12 -28 13 -45c1 -10 0 -20 -3 -28c-2 -8 -8 -16 -16 -23c-6 -6 -11 -9 -16 -11c9 -2 17 -6 25 -10c15 -8 23 -18 28 -30zM128 298v-74h32v74h-32zM128 86h32v90h-32v-90zM200 294v-66c6 3 9 7 13 12c5 6 7 12 7 20s-2 15 -6 21c-4 5 -8 11 -14 13z -M229 107c8 7 10 15 10 26c0 9 -3 19 -8 25s-12 10 -20 13c-4 2 -6 2 -11 3v-82c2 0 5 1 7 2c10 4 14 6 22 13z" /> - <glyph glyph-name="ion-social-buffer-outline" unicode="&#xf228;" horiz-adv-x="384" -d="M7 284c-9 4 -9 11 0 15l169 82c4 2 10 3 16 3s12 -1 16 -3l169 -82c9 -4 9 -11 0 -15l-169 -82c-4 -2 -10 -3 -16 -3s-12 1 -16 3zM183 366l-156 -75l156 -75c2 -1 5 -1 9 -1s7 0 9 1l156 75l-156 75c-2 1 -5 2 -9 2s-7 -1 -9 -2zM377 200c9 -4 9 -12 0 -16l-169 -81 -c-4 -2 -10 -4 -16 -4s-12 2 -16 4l-169 81c-9 4 -9 12 0 16c0 0 27 13 33 16c5 3 7 3 13 0s123 -60 123 -60c4 -2 10 -3 16 -3s12 1 16 3c0 0 121 59 125 61s5 2 9 0s35 -17 35 -17zM201 117l156 75l-19 9l-123 -59c-6 -3 -15 -5 -23 -5s-17 2 -23 5l-123 59l-19 -9l156 -75 -c2 -1 5 -2 9 -2s7 1 9 2zM377 100c9 -4 9 -11 0 -15l-169 -82c-4 -2 -10 -3 -16 -3s-12 1 -16 3l-169 82c-9 4 -9 11 0 15c0 0 27 14 33 17c5 3 7 2 13 -1s123 -59 123 -59c4 -2 10 -3 16 -3s12 1 16 3c0 0 121 58 125 60s5 2 9 0s35 -17 35 -17zM201 18l156 75l-19 9 -l-123 -60c-6 -3 -15 -4 -23 -4s-17 1 -23 4l-123 60l-19 -9l156 -75c2 -1 5 -2 9 -2s7 1 9 2z" /> - <glyph glyph-name="ion-social-buffer" unicode="&#xf229;" horiz-adv-x="384" -d="M7 284c-9 4 -9 11 0 15l169 82c4 2 10 3 16 3s12 -1 16 -3l169 -82c9 -4 9 -11 0 -15l-169 -82c-4 -2 -10 -3 -16 -3s-12 1 -16 3zM377 200c9 -4 9 -12 0 -16l-169 -81c-4 -2 -10 -4 -16 -4s-12 2 -16 4l-169 81c-9 4 -9 12 0 16c0 0 27 13 33 16c5 3 7 3 13 0 -s123 -60 123 -60c4 -2 10 -3 16 -3s12 1 16 3c0 0 121 59 125 61s5 2 9 0s35 -17 35 -17zM377 100c9 -4 9 -11 0 -15l-169 -82c-4 -2 -10 -3 -16 -3s-12 1 -16 3l-169 82c-9 4 -9 11 0 15c0 0 27 14 33 17c5 3 7 2 13 -1s123 -59 123 -59c4 -2 10 -3 16 -3s12 1 16 3 -c0 0 121 58 125 60s5 2 9 0s35 -17 35 -17z" /> - <glyph glyph-name="ion-social-chrome-outline" unicode="&#xf4da;" -d="M224 416c123 0 224 -101 224 -224s-101 -224 -224 -224s-224 101 -224 224s101 224 224 224zM224 371c-57 0 -109 -27 -141 -68l54 -93c8 40 43 72 87 72h155c-30 54 -89 89 -155 89zM291 192c0 37 -30 67 -67 67s-67 -30 -67 -67s30 -67 67 -67s67 30 67 67zM45 192 -c0 -91 67 -166 154 -177l54 93c-9 -3 -19 -6 -29 -6c-34 0 -61 18 -77 45v0l-78 135c-16 -27 -24 -58 -24 -90zM224 13c99 0 179 80 179 179c0 24 -4 46 -13 67h-108c19 -17 32 -40 32 -67c0 -17 -5 -32 -13 -45v0z" /> - <glyph glyph-name="ion-social-chrome" unicode="&#xf4db;" -d="M157 192c0 37 30 67 67 67s67 -30 67 -67s-30 -67 -67 -67s-67 30 -67 67zM445 230c2 -12 3 -25 3 -38c0 -106 -74 -195 -174 -218c-10 -2 -20 -4 -30 -5c-7 -1 -13 -1 -20 -1c-8 0 -17 0 -25 1v0v0v0v1l102 177c8 13 13 28 13 45c0 27 -13 50 -32 67h156 -c3 -9 5 -19 7 -29v0c-2 10 -4 20 -7 29v0c3 -9 5 -19 7 -29v0zM224 103c10 0 20 2 29 5l-78 -135v0c-42 9 -79 30 -108 59c-42 41 -67 97 -67 160c0 31 6 61 18 88c7 16 16 31 26 45v0l103 -178c16 -27 43 -44 77 -44zM59 343v0v1c24 26 55 47 90 59c23 8 49 13 75 13 -c73 0 138 -36 179 -90h1c10 -14 18 -29 25 -44v0c-7 15 -15 30 -25 44h-1c10 -14 19 -29 26 -44h-205c-44 0 -79 -32 -87 -72z" /> - <glyph glyph-name="ion-social-codepen-outline" unicode="&#xf4dc;" -d="M356 244c5 -3 7 -6 7 -12v-81c0 -6 -3 -10 -8 -13c-41 -27 -82 -55 -123 -82c-6 -4 -11 -4 -17 0c-41 27 -81 55 -122 82c-5 3 -8 7 -8 13v80c0 6 3 11 8 14c41 27 81 54 122 81c6 4 11 4 17 0c41 -27 83 -55 124 -82zM236 296v-54c0 -1 1 -2 2 -3c16 -11 31 -21 47 -32 -c1 -1 3 -1 4 0l40 26zM212 295c0 0 -62 -41 -93 -62c14 -9 27 -17 40 -26c1 -1 3 -1 4 0c15 10 31 21 46 31c1 1 3 4 3 6v51zM109 211v-40l30 20zM212 87v53c0 1 -2 3 -3 4c-15 10 -31 21 -46 31c-2 1 -3 1 -5 0l-39 -26c31 -21 93 -62 93 -62zM227 165l39 26s-34 23 -40 27 -c-1 1 -4 0 -5 -1c-5 -3 -9 -6 -14 -9c-8 -6 -25 -17 -25 -17l39 -26c2 -1 4 -1 6 0zM236 87l93 62l-38 26c-2 2 -5 2 -7 0c-15 -10 -30 -21 -45 -31c-2 -2 -3 -3 -3 -6v-51zM338 171v40l-30 -20zM224 384c-51 0 -100 -20 -136 -56s-56 -85 -56 -136s20 -100 56 -136 -s85 -56 136 -56s100 20 136 56s56 85 56 136s-20 100 -56 136s-85 56 -136 56zM224 416v0c124 0 224 -100 224 -224s-100 -224 -224 -224s-224 100 -224 224s100 224 224 224z" /> - <glyph glyph-name="ion-social-codepen" unicode="&#xf4dd;" -d="M209 144c1 -1 3 -3 3 -4v-53s-62 41 -93 62l39 26c2 1 3 1 5 0c15 -10 31 -21 46 -31zM163 207c-1 -1 -3 -1 -4 0c-13 9 -26 17 -40 26c31 21 93 62 93 62v-51c0 -2 -2 -5 -3 -6c-15 -10 -31 -21 -46 -31zM238 239c-1 1 -2 2 -2 3v54l93 -63l-40 -26c-1 -1 -3 -1 -4 0 -c-16 11 -31 21 -47 32zM226 218c6 -4 40 -27 40 -27l-39 -26c-2 -1 -4 -1 -6 0l-39 26s17 11 25 17c5 3 9 6 14 9c1 1 4 2 5 1zM109 211l30 -20l-30 -20v40zM224 416c124 0 224 -100 224 -224s-100 -224 -224 -224s-224 100 -224 224s100 224 224 224zM363 151v81 -c0 6 -2 9 -7 12c-41 27 -83 55 -124 82c-6 4 -11 4 -17 0c-41 -27 -81 -54 -122 -81c-5 -3 -8 -8 -8 -14v-80c0 -6 3 -10 8 -13c41 -27 81 -55 122 -82c6 -4 11 -4 17 0c41 27 82 55 123 82c5 3 8 7 8 13zM284 175c2 2 5 2 7 0l38 -26l-93 -62v51c0 3 1 4 3 6 -c15 10 30 21 45 31zM338 171l-30 20l30 20v-40z" /> - <glyph glyph-name="ion-social-css3-outline" unicode="&#xf4de;" horiz-adv-x="384" -d="M291 81l-99 -28l-98 28l-7 78h48l4 -40l53 -15v0v0l54 15l5 64h-112l-4 50h121l4 51h-184l-4 49h241zM0 416h384l-35 -403l-157 -45l-157 45zM319 37l30 347h-314l30 -347l127 -36z" /> - <glyph glyph-name="ion-social-css3" unicode="&#xf4df;" horiz-adv-x="384" -d="M192 109v0zM0 416h384l-35 -403l-157 -45l-157 45zM291 81l22 252h-241l4 -49h184l-4 -51h-121l4 -50h112l-5 -64l-54 -15v0v0l-53 15l-4 40h-48l7 -78l98 -28z" /> - <glyph glyph-name="ion-social-designernews-outline" unicode="&#xf22a;" -d="M259 302v-53l-65 103zM0 188zM297 352l151 -119v-201h-248l-200 156h63c46 0 77 33 77 82c0 20 -5 37 -15 51l-3 3l37 -29v-107h41l-2 98l63 -98h36v84v80zM432 48v178l-119 92v1v-47v-83v-17h-15h-37h-9l-4 8l-33 50l1 -42v-16h-16h-41h-16v16v29c-3 -6 -7 -12 -12 -17 -c-8 -9 -18 -16 -30 -21s-24 -7 -38 -7h-16l159 -124h226zM59 298h-1h-3v-57h4c8 0 13 2 17 6c5 6 6 15 6 22c0 26 -12 29 -23 29zM59 314v0c25 0 39 -16 39 -45c0 -28 -14 -44 -40 -44h-19v89h20z" /> - <glyph glyph-name="ion-social-designernews" unicode="&#xf22b;" -d="M258 303l1 -53l-64 102zM297 352l151 -118v-202h-248l-200 157v0h63c46 0 77 33 77 82c0 20 -5 37 -15 51l-3 3l37 -29v-107h40l-2 99l64 -99h36v83v80zM98 270c0 -28 -14 -44 -40 -44h-19v89h19c26 0 40 -16 40 -45z" /> - <glyph glyph-name="ion-social-dribbble-outline" unicode="&#xf22c;" horiz-adv-x="384" -d="M192 384c106 0 192 -86 192 -192s-86 -192 -192 -192s-192 86 -192 192s86 192 192 192zM314 296c-17 -25 -47 -47 -85 -64c5 -10 9 -20 13 -31c33 3 75 4 110 2c-2 35 -16 68 -38 93zM192 352c-14 0 -26 -2 -39 -5c23 -23 43 -53 62 -87c34 14 62 33 79 55 -c-28 23 -63 37 -102 37zM120 334c-41 -21 -71 -58 -83 -103h25c44 0 85 6 121 17c-19 34 -40 63 -63 86zM32 200v-8c0 -40 15 -78 40 -106c24 45 67 83 122 106c4 2 8 3 14 4c-3 8 -6 16 -10 24c-40 -13 -88 -20 -138 -21c-9 0 -19 1 -28 1zM192 32c20 0 39 3 57 10 -c-3 25 -8 53 -15 79c-4 17 -10 33 -16 49c-7 -2 -13 -4 -17 -6c-48 -22 -86 -56 -107 -98c27 -21 61 -34 98 -34zM278 58c40 26 68 67 73 116c-30 2 -68 3 -99 0c4 -12 9 -25 12 -38c7 -27 11 -52 14 -78z" /> - <glyph glyph-name="ion-social-dribbble" unicode="&#xf22d;" horiz-adv-x="384" -d="M192 384c106 0 192 -86 192 -192s-86 -192 -192 -192s-192 86 -192 192s86 192 192 192zM192 32c88 0 160 72 160 160s-72 160 -160 160s-160 -72 -160 -160s72 -160 160 -160zM242 201c-4 11 -8 21 -13 31c25 11 47 24 63 39c15 -19 26 -42 28 -67c-26 0 -55 -1 -78 -3z -M271 292c-15 -12 -34 -23 -56 -32c-12 22 -24 41 -38 59c5 1 10 1 15 1c30 0 57 -11 79 -28zM142 310c15 -18 28 -39 41 -62c-34 -10 -72 -16 -113 -17c11 36 38 65 72 79zM319 176c-4 -33 -21 -63 -46 -83c-3 14 -5 28 -9 43c-3 13 -8 26 -12 38c21 2 45 3 67 2zM194 192 -c-43 -18 -79 -46 -104 -78c-16 22 -26 49 -26 78v7c49 1 95 8 134 21c4 -8 7 -16 10 -24c-6 -1 -10 -2 -14 -4zM219 170c6 -16 11 -32 15 -49c4 -15 7 -31 10 -46c-16 -7 -34 -11 -52 -11c-31 0 -59 11 -81 29c22 30 53 54 90 71c4 2 11 4 18 6z" /> - <glyph glyph-name="ion-social-dropbox-outline" unicode="&#xf22e;" horiz-adv-x="384" -d="M113 371l79 -66l-114 -71l-78 63zM27 295l52 -42l86 53l-53 46zM306 235l78 -63l-78 -51v-39l-114 -69l-114 68v39l-78 52l78 63l114 -71l-79 -66l-19 12v-20l98 -59l98 59v20l-19 -12l-79 66zM79 217l-52 -44l85 -55l53 44zM219 162l53 -44l85 56l-52 43zM384 297 -l-78 -63l-114 71l79 66zM219 305l86 -52l52 42l-85 56z" /> - <glyph glyph-name="ion-social-dropbox" unicode="&#xf22f;" horiz-adv-x="384" -d="M113 371l79 -66l-114 -71l-78 63zM0 172l78 62l114 -70l-79 -66zM192 164l114 70l78 -62l-113 -74zM384 297l-78 -63l-114 71l79 66zM192 150l80 -66l34 22v-25l-114 -68l-114 68v25l34 -22z" /> - <glyph glyph-name="ion-social-euro-outline" unicode="&#xf4e0;" horiz-adv-x="320" -d="M214 384c-53 0 -91 -9 -115 -27c-22 -16 -33 -40 -33 -74v-11v-17h-16h-34v-16h34h16v-15v-48v-17h-16h-34v-16h34h16v-15v-27c0 -34 11 -58 33 -74c24 -18 62 -27 115 -27c31 0 59 2 88 8l-5 35c-30 -4 -55 -7 -80 -7c-36 0 -59 6 -74 19c-19 16 -21 40 -21 60v13v15h16 -h103l3 16h-106h-16v17v48v15h16h118l2 16h-120h-16v17v2c0 16 2 39 21 55c16 13 39 19 74 19c24 0 51 -3 80 -7l5 35c-29 6 -57 8 -88 8zM214 400v0c35 0 68 -3 106 -12l-9 -65c-37 6 -68 9 -94 9c-64 0 -79 -22 -79 -58v-3h139l-8 -48h-131v-48h124l-7 -48h-117v-12 -c0 -44 15 -63 79 -63c26 0 57 3 94 9l9 -65c-38 -9 -71 -12 -106 -12c-115 0 -164 41 -164 117v26h-50v48h50v48h-50v48h50v12c0 76 49 117 164 117z" /> - <glyph glyph-name="ion-social-euro" unicode="&#xf4e1;" horiz-adv-x="320" -d="M138 176h124l-7 -48h-117v-13c0 -44 15 -63 79 -63c26 0 56 3 93 9l10 -65c-38 -9 -71 -12 -106 -12c-115 0 -164 41 -164 117v27h-50v48h50v48h-50v48h50v11c0 76 49 117 164 117c35 0 68 -3 106 -12l-10 -65c-37 6 -67 9 -93 9c-64 0 -79 -22 -79 -58v-2h138l-7 -48 -h-131v-48z" /> - <glyph glyph-name="ion-social-facebook-outline" unicode="&#xf230;" horiz-adv-x="192" -d="M128 256h64l-8 -64h-56v-192h-83v192h-45v64h45v43c0 54 23 85 91 85h56v-64h-34c-27 0 -30 -9 -30 -26v-38zM170 208l4 32h-45h-17v17v37c0 10 1 21 9 30c10 11 25 12 37 12h18v32h-40c-28 0 -49 -6 -60 -18c-10 -11 -15 -27 -15 -51v-43v-16h-15h-30v-32h30h15v-16 -v-176h51v176v16h17h41z" /> - <glyph glyph-name="ion-social-facebook" unicode="&#xf231;" horiz-adv-x="192" -d="M128 256h64l-8 -64h-56v-192h-83v192h-45v64h45v43c0 54 23 85 91 85h56v-64h-34c-27 0 -30 -9 -30 -26v-38z" /> - <glyph glyph-name="ion-social-foursquare-outline" unicode="&#xf34c;" horiz-adv-x="320" -d="M302 284c-12 -60 -25 -131 -27 -138zM281 416c35 0 45 -20 37 -57c-3 -16 -10 -44 -16 -75l-27 -137c-3 -13 -8 -35 -39 -35h-72c-3 0 -3 0 -6 -3c-2 -2 -115 -133 -115 -133c-9 -10 -23 -8 -28 -6s-15 8 -15 26v380s10 40 43 40h238zM280 352c6 31 6 32 -24 32h-195 -c-29 0 -29 -3 -29 -28v-297c0 -38 1 -38 3 -38s10 8 29 31c0 0 78 89 79 90c2 2 3 2 6 2h62c26 0 28 6 33 31c4 21 36 177 36 177zM302 284c6 31 13 59 16 75zM233 352c5 0 9 -5 8 -11l-8 -44c-1 -4 -6 -9 -11 -9h-75c-8 0 -8 -5 -8 -13v-6c0 -8 0 -13 8 -13h64 -s11 -6 10 -12s-11 -51 -12 -54s-4 -9 -11 -9h-62c-9 0 -11 -1 -17 -8l-54 -63c-1 -1 -1 -1 -1 0v231c0 5 5 11 11 11h158z" /> - <glyph glyph-name="ion-social-foursquare" unicode="&#xf34d;" horiz-adv-x="320" -d="M281 416c35 0 45 -20 37 -57c-10 -49 -40 -202 -43 -213c-3 -13 -8 -34 -39 -34h-72c-3 0 -3 0 -6 -3c-2 -2 -115 -133 -115 -133c-9 -10 -23 -8 -28 -6s-15 8 -15 26v380s10 40 43 40h238zM275 146c3 11 33 164 43 213zM267 351c2 9 -5 16 -12 16h-191 -c-9 0 -15 -8 -15 -15v-296c0 -1 1 -1 2 0c0 0 70 84 78 94s11 11 23 11h64c9 0 14 8 15 12s8 43 10 51s-6 16 -13 16h-82c-10 0 -18 8 -18 18v13c0 10 8 17 18 17h96s14 6 15 12z" /> - <glyph glyph-name="ion-social-freebsd-devil" unicode="&#xf2c4;" horiz-adv-x="512" -d="M503 333c19 -37 8 -81 -20 -108s-60 -33 -60 -33c2 -32 16 -59 -41 -102c-43 -32 2 -90 2 -90c10 -14 23 -19 32 -32h-272s15 14 -7 32c0 0 -20 17 -18 29s6 13 9 15s0 7 0 7l-19 19s-13 -13 -44 -13c-38 0 -65 39 -65 39h46s-6 -8 -7 -13c-1 -4 1 -5 1 -5s11 -6 22 -6 -c17 0 33 12 33 12l-24 22l-15 -4l-16 37l39 -10l-1 -15l28 -18s9 9 7 27s-9 26 -9 26s-4 0 -9 -4s-6 -6 -6 -6l-10 44s43 -19 50 -63c3 -20 -6 -35 -6 -35l17 -10s6 5 17 7s23 2 29 -8s5 -12 4 -19s0 -9 6 -11s6 -6 11 -8s15 -6 21 -2s8 11 8 18v16s-9 8 -32 20 -s-54 22 -66 40s-12 44 0 57c9 10 23 25 26 35c4 14 4 42 4 42s-10 16 -8 40c2 30 22 84 96 114c0 0 -40 -55 -20 -80c0 0 37 11 77 9c31 -2 56 -12 73 -28s25 -23 47 -17s28 17 28 33c0 19 -16 51 -16 51s36 -7 58 -51zM195 245c14 4 21 -11 21 -11c14 25 30 60 22 64 -s-64 -25 -66 -88c0 0 6 31 23 35zM232 230c5 7 34 8 37 -17c4 -35 -24 -57 -24 -57s7 -2 23 2c17 4 43 29 43 70s-21 66 -41 62s-38 -60 -38 -60z" /> - <glyph glyph-name="ion-social-github-outline" unicode="&#xf232;" -d="M224 416c124 0 224 -103 224 -230c0 -101 -64 -188 -153 -218h-4c-8 0 -12 7 -12 12c0 8 1 31 1 62c0 21 -8 36 -16 43c50 6 103 25 103 113c0 25 -9 46 -23 62c2 6 10 29 -2 61h-5c-8 0 -27 -3 -57 -24c-18 5 -37 8 -56 8s-38 -3 -56 -8c-30 21 -49 24 -57 24h-5 -c-12 -32 -4 -55 -2 -61c-14 -16 -23 -37 -23 -62c0 -88 52 -107 102 -113c-6 -6 -12 -16 -14 -31c-6 -3 -16 -6 -26 -6c-13 0 -28 5 -39 25c0 0 -13 22 -35 24v0c-2 0 -21 0 -1 -14c0 0 15 -8 25 -34c0 0 10 -33 53 -33c7 0 14 0 22 2v-39c0 -5 -3 -11 -11 -11h-4 -c-89 30 -153 116 -153 218c0 127 100 230 224 230zM146 -0c-15 0 -28 4 -38 9c14 -10 28 -17 44 -23v6v8h-6zM157 73c-16 4 -35 10 -52 24c6 -6 11 -11 13 -16c7 -12 14 -17 25 -17c4 0 9 1 12 2c1 2 1 5 2 7zM347 14c17 13 32 28 45 46c26 37 40 80 40 126 -c0 29 -5 58 -16 84c-10 25 -26 48 -45 68s-41 34 -66 45c-26 11 -53 17 -81 17s-55 -6 -81 -17c-25 -11 -47 -25 -66 -45s-35 -42 -45 -68c-11 -26 -16 -55 -16 -84c0 -46 14 -89 40 -126c10 -14 22 -27 35 -38c-7 8 -11 16 -13 22c-7 18 -15 24 -17 25h-2v1 -c-5 3 -20 13 -15 28c3 9 12 15 25 15h1v0v0c13 -1 24 -6 32 -13c-21 19 -37 48 -37 98c0 24 7 47 21 66c-3 13 -6 34 5 62l3 8l7 2c2 0 5 1 10 1c12 0 31 -3 60 -22c17 4 35 6 53 6v0v0c18 0 36 -2 53 -6c29 19 48 22 60 22c5 0 8 -1 10 -1l7 -2l3 -7c11 -27 8 -50 5 -63 -c14 -19 21 -41 21 -66c0 -92 -55 -117 -92 -125c3 -8 5 -18 5 -30v-51v-6c18 7 35 16 51 28z" /> - <glyph glyph-name="ion-social-github" unicode="&#xf233;" -d="M224 416c124 0 224 -103 224 -230c0 -101 -64 -188 -153 -218h-4c-8 0 -12 7 -12 12c0 8 1 31 1 62c0 21 -8 36 -16 43c50 6 103 25 103 113c0 25 -9 46 -23 62c2 6 10 29 -2 61h-5c-8 0 -27 -3 -57 -24c-18 5 -37 8 -56 8s-38 -3 -56 -8c-30 21 -49 24 -57 24h-5 -c-12 -32 -4 -55 -2 -61c-14 -16 -23 -37 -23 -62c0 -88 52 -107 102 -113c-6 -6 -12 -16 -14 -31c-6 -3 -16 -6 -26 -6c-13 0 -28 5 -39 25c0 0 -13 22 -35 24v0c-2 0 -21 0 -1 -14c0 0 15 -8 25 -34c0 0 10 -33 53 -33c7 0 14 0 22 2v-39c0 -5 -3 -11 -11 -11h-4 -c-89 30 -153 116 -153 218c0 127 100 230 224 230z" /> - <glyph glyph-name="ion-social-google-outline" unicode="&#xf34e;" horiz-adv-x="256" -d="M191 366c12 -10 37 -30 37 -68c0 -37 -21 -55 -43 -72c-7 -7 -15 -13 -15 -24s8 -17 14 -22l18 -14c23 -19 43 -36 43 -71c0 -47 -47 -95 -135 -95c-74 0 -110 35 -110 72c0 18 10 44 40 62c32 19 75 21 98 23c-7 9 -16 18 -16 34c0 9 2 14 5 20c-6 0 -11 -1 -16 -1 -c-54 0 -85 40 -85 79c0 23 11 48 33 67c29 24 63 28 91 28h106l-33 -18h-32zM155 142c-4 1 -7 1 -12 1s-32 -1 -54 -8c-11 -4 -44 -16 -44 -52s36 -62 91 -62c49 0 75 24 75 55c0 26 -17 39 -56 66zM170 238c12 12 13 28 13 37c0 36 -22 92 -65 92c-13 0 -28 -6 -36 -16 -c-9 -11 -11 -25 -11 -38c0 -34 20 -89 64 -89c13 0 27 6 35 14z" /> - <glyph glyph-name="ion-social-google" unicode="&#xf34f;" horiz-adv-x="288" -d="M210 172c22 -18 45 -36 45 -73c0 -49 -48 -99 -140 -99c-80 0 -115 39 -115 77c0 10 3 42 42 65c27 16 61 20 85 22c-4 7 -8 16 -8 27c0 4 0 7 1 10h-4c-19 0 -46 4 -67 26c-15 15 -24 36 -24 57c0 26 13 53 35 71v0c32 25 70 29 95 29h133l-60 -33h-13 -c11 -13 23 -31 23 -58c0 -40 -25 -59 -45 -74v-1c-6 -6 -11 -10 -11 -17c0 -6 4 -10 10 -15v0zM85 308c0 -13 4 -33 14 -51c7 -12 20 -27 41 -27c10 0 21 4 28 11c10 10 10 25 10 30c0 18 -6 38 -15 54c-7 13 -20 27 -40 27c-11 0 -22 -5 -29 -13c-6 -7 -9 -18 -9 -31z -M206 80c0 20 -13 31 -50 56c-3 0 -4 1 -8 1c-6 0 -32 -2 -51 -8c-16 -6 -37 -16 -37 -42c0 -31 32 -51 80 -51c41 0 66 17 66 44z" /> - <glyph glyph-name="ion-social-googleplus-outline" unicode="&#xf234;" -d="M192 366c12 -10 36 -30 36 -68c0 -37 -21 -55 -43 -72c-7 -7 -15 -13 -15 -24s8 -18 14 -22l18 -14c23 -19 43 -36 43 -71c0 -47 -47 -95 -135 -95c-74 0 -110 35 -110 72c0 18 10 44 40 62c32 19 75 21 98 23c-7 9 -16 18 -16 34c0 9 3 14 5 20c-6 0 -11 -1 -16 -1 -c-54 0 -85 40 -85 79c0 23 10 48 32 67c29 24 64 28 92 28h106l-33 -18h-31zM155 142c-4 0 -7 1 -12 1s-32 -1 -54 -8c-11 -4 -44 -16 -44 -52s36 -62 91 -62c49 0 75 24 75 55c0 26 -17 39 -56 66zM170 238c12 12 13 28 13 37c0 36 -22 92 -65 92c-13 0 -28 -6 -36 -16 -c-9 -11 -11 -24 -11 -37c0 -34 20 -90 64 -90c13 0 27 6 35 14zM448 306v-18h-78v-81h-18v81h-80v18h80v78h18v-78h78z" /> - <glyph glyph-name="ion-social-googleplus" unicode="&#xf235;" -d="M210 172c22 -18 45 -36 45 -73c0 -49 -47 -99 -139 -99c-80 0 -116 39 -116 77c0 10 3 42 42 65c27 16 61 21 85 23c-4 7 -8 15 -8 26c0 4 0 7 1 10h-4c-19 0 -46 4 -67 26c-15 15 -24 36 -24 57c0 26 13 53 35 71v0c32 25 69 29 94 29h134l-60 -33h-13 -c11 -13 23 -31 23 -58c0 -40 -25 -59 -45 -74v-1c-6 -6 -11 -10 -11 -17c0 -6 4 -10 10 -15v0zM85 308c0 -13 4 -33 14 -51c7 -12 21 -27 41 -27c10 0 21 4 28 11c10 10 10 25 10 30c0 18 -6 37 -15 53c-8 13 -20 28 -40 28c-11 0 -23 -5 -29 -13c-6 -7 -9 -18 -9 -31z -M206 80c0 20 -13 31 -50 56c-3 0 -4 1 -8 1c-6 0 -31 -2 -50 -8c-16 -6 -38 -16 -38 -42c0 -31 32 -51 80 -51c41 0 66 17 66 44zM370 306h78v-34h-78v-81h-34v81h-80v34h80v78h34v-78z" /> - <glyph glyph-name="ion-social-hackernews-outline" unicode="&#xf236;" horiz-adv-x="384" -d="M352 352h-320v-320h320v320zM384 384v0v-384h-384v384h384zM233 289h45l-64 -120v-72h-40v72l-66 120h47l40 -84z" /> - <glyph glyph-name="ion-social-hackernews" unicode="&#xf237;" horiz-adv-x="384" -d="M0 384h384v-384h-384v384zM214 169l64 120h-45l-38 -84l-40 84h-47l66 -120v-72h40v72z" /> - <glyph glyph-name="ion-social-html5-outline" unicode="&#xf4e2;" horiz-adv-x="384" -d="M0 416h384l-35 -403l-157 -45l-157 45zM319 37l30 347h-314l30 -347l127 -36zM84 184l-13 150h241l-4 -50h-184l4 -51h176l-14 -151l-98 -28l-99 28l-6 77h48l3 -39l54 -15l53 15l6 64h-167z" /> - <glyph glyph-name="ion-social-html5" unicode="&#xf4e3;" horiz-adv-x="384" -d="M0 416h384l-35 -403l-157 -45l-157 45zM308 284l4 50h-241l13 -150h167l-6 -64l-53 -15l-54 15l-3 39h-48l6 -78l99 -27l98 28l14 151h-176l-4 51h184z" /> - <glyph glyph-name="ion-social-instagram-outline" unicode="&#xf350;" horiz-adv-x="384" -d="M384 336v-289c0 -26 -22 -47 -48 -47h-288c-26 0 -48 21 -48 47v289c0 26 22 48 48 48h288c26 0 48 -22 48 -48zM192 272c-44 0 -80 -36 -80 -80s36 -80 80 -80s80 36 80 80s-36 80 -80 80zM352 288v48c0 9 -7 16 -16 16h-48c-9 0 -16 -7 -16 -16v-48c0 -9 7 -16 16 -16 -h48c9 0 16 7 16 16zM337 32c9 0 15 7 15 16v176h-52c3 -10 4 -21 4 -32c0 -30 -11 -58 -32 -79s-50 -33 -80 -33s-58 12 -79 33s-33 49 -33 79c0 11 2 22 5 32h-53v-176c0 -9 8 -16 17 -16h288z" /> - <glyph glyph-name="ion-social-instagram" unicode="&#xf351;" horiz-adv-x="384" -d="M112 192c0 53 27 80 80 80s80 -27 80 -80s-27 -80 -80 -80s-80 27 -80 80zM113 271c-14 -14 -23 -29 -28 -47h-85v112c0 13 4 25 14 34s22 14 35 14h288c13 0 24 -5 33 -14s14 -21 14 -34v-112h-84c-5 18 -14 33 -28 47c-22 22 -49 33 -80 33s-57 -11 -79 -33zM352 300 -v39c0 4 -2 7 -4 9s-5 4 -9 4h-38c-4 0 -7 -2 -9 -4s-4 -5 -4 -9v-39c0 -4 2 -7 4 -9s5 -3 9 -3h38c4 0 7 1 9 3s4 5 4 9zM272 113c22 22 32 48 32 79h80v-144c0 -13 -5 -24 -14 -34s-20 -14 -33 -14h-288c-13 0 -24 4 -34 14s-15 21 -15 34v144h81c0 -31 10 -57 32 -79 -s48 -33 79 -33s58 11 80 33z" /> - <glyph glyph-name="ion-social-javascript-outline" unicode="&#xf4e4;" -d="M160 344h-48v-196c0 -30 -6 -50 -17 -64c-11 -13 -26 -20 -48 -20c-9 0 -18 1 -25 2l-4 -30c11 -2 25 -4 37 -4c34 0 59 8 76 25c19 18 29 48 29 90v197zM176 360v0v-213c0 -97 -49 -131 -121 -131c-18 0 -40 3 -55 8l8 62c10 -4 24 -6 39 -6c31 0 49 15 49 68v212h80z -M350 352c-34 0 -62 -9 -82 -26c-19 -15 -28 -36 -28 -60c0 -20 7 -36 21 -51c14 -14 34 -26 61 -36c23 -8 38 -15 48 -24c12 -11 18 -23 18 -38c0 -16 -7 -31 -20 -40c-12 -9 -28 -14 -48 -14c-28 0 -52 8 -70 15l-7 -32c18 -8 44 -14 72 -14c38 0 70 9 90 27 -c18 16 27 38 27 63c0 21 -5 36 -17 50s-31 27 -58 37v0v0c-38 15 -72 28 -72 63c0 14 7 27 19 36c11 9 26 13 45 13c24 0 43 -5 57 -11l10 32c-19 6 -42 10 -66 10zM350 368v0c38 0 65 -7 85 -16l-19 -64c-13 7 -35 17 -67 17s-48 -16 -48 -33c0 -22 19 -31 62 -48 -c58 -22 85 -53 85 -102c0 -57 -42 -106 -133 -106c-38 0 -72 10 -91 21l15 63v0c20 -11 49 -21 81 -21c34 0 52 15 52 38c0 21 -15 33 -55 47c-55 20 -93 52 -93 102c0 58 49 102 126 102z" /> - <glyph glyph-name="ion-social-javascript" unicode="&#xf4e5;" -d="M176 360v0v-213c0 -97 -49 -131 -121 -131c-18 0 -40 3 -55 8l8 62c10 -4 24 -6 39 -6c31 0 49 15 49 68v212h80zM350 368v0c38 0 65 -7 85 -16l-19 -64c-13 7 -35 17 -67 17s-48 -16 -48 -33c0 -22 19 -31 62 -48c58 -22 85 -53 85 -102c0 -57 -42 -106 -133 -106 -c-38 0 -72 10 -91 21l15 63v0c20 -11 49 -21 81 -21c34 0 52 15 52 38c0 21 -15 33 -55 47c-55 20 -93 52 -93 102c0 58 49 102 126 102z" /> - <glyph glyph-name="ion-social-linkedin-outline" unicode="&#xf238;" horiz-adv-x="384" -d="M119 64v0h-55v171h55v-171zM93 261v0v0c-18 0 -29 13 -29 29c0 17 12 30 30 30s29 -13 29 -30c0 -16 -12 -29 -30 -29zM257 239c36 0 63 -24 63 -75v-100h-55v94c0 22 -8 37 -28 37c-15 0 -24 -10 -28 -20c-2 -4 -2 -9 -2 -14v-97h-55v171h55v-24c8 11 21 28 50 28z -M353 384c18 0 31 -13 31 -30v-321c0 -17 -13 -33 -31 -33h-320c-18 0 -33 16 -33 33v321c0 17 15 30 33 30h320zM350 32c1 0 2 1 2 2v316c0 1 -1 2 -2 2h-316s-2 -1 -2 -2v-315s1 -3 3 -3h315z" /> - <glyph glyph-name="ion-social-linkedin" unicode="&#xf239;" horiz-adv-x="384" -d="M353 384c18 0 31 -13 31 -30v-321c0 -17 -13 -33 -31 -33h-320c-18 0 -33 16 -33 33v321c0 17 15 30 33 30h320zM119 64v171h-55v-171h55zM93 261c18 0 30 13 30 29c0 17 -11 30 -29 30s-30 -13 -30 -30c0 -16 11 -29 29 -29v0zM320 64v100c0 51 -27 75 -63 75 -c-29 0 -42 -17 -50 -28v24h-55v-171h55v97c0 5 0 10 2 14c4 10 13 20 28 20c20 0 28 -15 28 -37v-94h55z" /> - <glyph glyph-name="ion-social-markdown" unicode="&#xf4e6;" -d="M416 352c18 0 32 -14 32 -32v-256c0 -18 -14 -32 -32 -32h-384c-18 0 -32 14 -32 32v256c0 18 14 32 32 32h384zM252 96v0v192h-56l-42 -68l-42 68h-56v-192h56v96l42 -54l42 54v-96h56zM336 96v0l70 96h-42v96h-56v-96h-42z" /> - <glyph glyph-name="ion-social-nodejs" unicode="&#xf4e7;" horiz-adv-x="384" -d="M192 -32c-6 0 -12 2 -17 5l-53 32c-8 5 -4 6 -1 7c11 4 14 5 25 12c1 1 3 1 4 0l39 -23c1 -1 4 -1 5 0l156 92c1 1 2 2 2 4v187c0 2 0 4 -2 5l-156 94c-1 1 -3 1 -4 0l-155 -94c-2 -1 -3 -3 -3 -5v-187c0 -2 0 -3 2 -4l40 -24c24 -12 38 1 38 15v183c0 3 2 5 5 5h22 -c3 0 5 -2 5 -5v-183c0 -33 -19 -52 -49 -52c-9 0 -17 1 -37 11l-41 24c-10 6 -17 18 -17 30v190c0 12 7 24 17 30l158 95c10 6 24 6 34 0l158 -95c10 -6 17 -18 17 -30v-190c0 -12 -7 -24 -17 -30l-158 -94c-5 -3 -11 -5 -17 -5v0zM241 96c-65 0 -84 31 -84 59c0 3 1 5 4 5 -h21c2 0 5 -2 5 -4c3 -22 16 -31 54 -31c33 0 47 11 47 29c0 11 -3 18 -55 23c-43 4 -71 15 -71 51c0 33 28 52 73 52c46 0 76 -14 79 -51c0 -1 -1 -2 -2 -3s-2 -2 -3 -2h-20c-2 0 -5 2 -5 4c-4 17 -16 23 -49 23c-36 0 -41 -12 -41 -22c0 -12 5 -16 54 -23s72 -16 72 -51 -c0 -36 -29 -59 -79 -59v0v0z" /> - <glyph glyph-name="ion-social-octocat" unicode="&#xf4e8;" -d="M146 161c9 0 16 -4 22 -13s10 -20 10 -32s-4 -22 -10 -31s-14 -13 -22 -13c-9 0 -17 4 -23 13s-9 19 -9 31s3 24 9 32c6 9 14 13 23 13zM303 161c9 0 16 -4 22 -13s9 -20 9 -32s-3 -22 -9 -31s-13 -13 -22 -13s-18 4 -24 13s-9 19 -9 31s3 24 9 32c6 9 15 13 24 13z -M414 276c24 -27 34 -66 34 -96c0 -24 -1 -46 -6 -65c-6 -19 -13 -35 -21 -47c-9 -12 -19 -23 -32 -32s-24 -17 -34 -21s-22 -8 -36 -10c-13 -2 -24 -4 -31 -4c0 0 -28 -1 -64 -1s-64 1 -64 1c-7 0 -18 2 -31 4c-14 2 -26 6 -36 10s-22 12 -34 21c-13 9 -23 20 -32 32 -c-8 12 -15 28 -21 47c-5 19 -6 41 -6 65c0 31 10 70 34 96c0 0 -2 14 0 39s7 48 16 69c30 -3 67 -20 112 -51c15 4 36 6 62 6c28 0 48 -2 62 -6c20 14 39 24 58 33c19 8 33 13 41 15s13 3 13 3c9 -21 14 -44 16 -69s0 -39 0 -39v0zM348 42c28 13 42 40 42 81 -c0 24 -8 43 -26 59c-9 9 -20 13 -32 15s-31 1 -56 -1s-40 -4 -52 -4s-25 2 -42 3s-30 3 -39 3c-10 0 -20 1 -31 -2s-21 -7 -28 -14c-17 -15 -25 -35 -25 -59c0 -41 13 -68 41 -81c27 -13 69 -18 123 -18h2c54 0 95 5 123 18z" /> - <glyph glyph-name="ion-social-pinterest-outline" unicode="&#xf2b0;" -d="M224 416c124 0 224 -100 224 -224s-100 -224 -224 -224s-224 100 -224 224s100 224 224 224zM360 56c36 36 56 85 56 136s-20 100 -56 136s-85 56 -136 56s-100 -20 -136 -56s-56 -85 -56 -136s20 -100 56 -136c14 -14 31 -25 48 -34c1 6 2 10 3 16c4 18 29 122 29 122 -s-8 15 -8 36c0 33 20 58 44 58c20 0 30 -16 30 -34c0 -20 -13 -51 -20 -79c-6 -24 12 -43 35 -43c42 0 71 54 71 119c0 49 -33 85 -93 85c-68 0 -110 -50 -110 -107c0 -20 6 -33 15 -44c4 -5 5 -6 3 -12c-1 -4 -4 -14 -5 -18c-2 -6 -6 -8 -11 -6c-31 13 -46 48 -46 86 -c0 64 54 140 160 140c86 0 142 -63 142 -129c0 -88 -49 -153 -121 -153c-24 0 -47 13 -55 28c0 0 -12 -52 -15 -62c-2 -6 -4 -13 -7 -19c15 -4 31 -6 47 -6c51 0 100 20 136 56z" /> - <glyph glyph-name="ion-social-pinterest" unicode="&#xf2b1;" -d="M224 416c124 0 224 -100 224 -224s-100 -224 -224 -224c-22 0 -44 3 -64 9c8 14 18 31 23 48c3 10 16 62 16 62c8 -15 30 -28 54 -28c72 0 121 65 121 153c0 66 -56 129 -142 129c-106 0 -160 -76 -160 -140c0 -39 15 -73 46 -86c5 -2 10 0 12 6c1 4 3 14 4 18 -c2 6 1 7 -3 12c-9 11 -15 24 -15 44c0 57 42 107 110 107c60 0 94 -36 94 -85c0 -65 -29 -119 -71 -119c-24 0 -42 19 -36 43c7 28 20 59 20 79c0 18 -10 34 -30 34c-24 0 -43 -25 -43 -58c0 -21 7 -36 7 -36s-25 -104 -29 -122c-4 -17 -5 -35 -4 -51 -c-79 35 -134 113 -134 205c0 124 100 224 224 224z" /> - <glyph glyph-name="ion-social-python" unicode="&#xf4e9;" horiz-adv-x="384" -d="M129 199c-29 -5 -49 -30 -49 -57v-43v-3h-15c-29 0 -54 29 -62 69c-2 9 -3 17 -3 27v1c0 53 29 95 65 95h127v16h-96v29c0 26 7 40 46 47c13 2 29 4 45 4s39 -1 55 -4c25 -4 46 -22 46 -47v-57v-31c0 -21 -14 -38 -33 -43c-4 -1 -8 -2 -13 -2h-104h3c-4 0 -8 0 -12 -1z -M140 321c10 0 17 7 17 17s-7 18 -17 18s-18 -8 -18 -18s8 -17 18 -17zM380 225c3 -10 4 -21 4 -33c0 -16 -3 -30 -7 -43c-11 -31 -33 -53 -58 -53h-127v-16h96v-26c0 -26 -23 -40 -46 -47c-35 -10 -68 -9 -97 0c-25 7 -49 22 -49 47v54v33c0 21 14 36 33 41c4 1 8 2 13 2 -h104c3 0 6 1 9 1c27 4 49 28 49 62v38v3h15c28 0 52 -26 61 -63zM244 65c-10 0 -18 -7 -18 -17s8 -18 18 -18s17 8 17 18s-7 17 -17 17z" /> - <glyph glyph-name="ion-social-reddit-outline" unicode="&#xf23a;" horiz-adv-x="449" -d="M259 160c0 21 11 31 32 31s32 -10 32 -31s-11 -32 -32 -32s-32 11 -32 32zM127 160c0 21 11 31 32 31s32 -10 32 -31s-11 -32 -32 -32s-32 11 -32 32zM449 197c0 -20 -9 -36 -27 -45c1 -5 1 -9 1 -14c0 -38 -19 -71 -58 -98s-85 -40 -140 -40s-102 13 -141 40 -s-58 59 -58 97c0 5 0 10 1 15c-18 9 -27 24 -27 45c0 14 5 25 15 35s21 15 35 15c13 0 24 -4 33 -13c36 25 79 39 129 41h7l29 98l86 -17c8 19 21 28 41 28c12 0 22 -4 31 -13s13 -20 13 -32s-4 -23 -13 -32s-19 -13 -31 -13s-23 4 -32 13s-13 19 -13 31l-69 14l-24 -77 -c50 -2 94 -16 129 -41c10 9 21 13 34 13c9 0 16 -3 24 -7s14 -10 18 -18s7 -16 7 -25zM375 366c-4 0 -8 -1 -11 -2s-6 -4 -8 -6s-5 -6 -6 -9s-2 -6 -2 -10c0 -8 3 -14 8 -19s12 -8 19 -8c5 0 9 1 13 3s8 6 10 10s4 9 4 14c0 8 -3 14 -8 19s-12 8 -19 8zM18 197 -c0 -11 5 -20 14 -27c7 19 19 37 37 53c-6 4 -12 6 -19 6c-3 0 -7 0 -10 -1s-6 -3 -9 -5s-5 -4 -7 -7s-4 -6 -5 -9s-1 -6 -1 -10zM355 55c34 23 50 51 50 83v9c-1 6 -3 12 -5 18c-6 16 -15 30 -30 43c-5 4 -10 9 -15 12v0c-36 25 -79 37 -130 37s-95 -12 -131 -37v0 -c-5 -3 -10 -8 -15 -12c-15 -13 -24 -27 -30 -43c-2 -6 -4 -12 -5 -18v-9c0 -32 16 -60 50 -83c36 -25 80 -37 131 -37s94 12 130 37zM417 170c9 6 14 16 14 27c0 9 -3 17 -9 23s-13 9 -22 9c-7 0 -14 -2 -20 -6c18 -16 30 -34 37 -53zM289 90l13 -12 -c-20 -20 -45 -30 -77 -30s-58 10 -78 30l13 12c16 -16 38 -24 65 -24s48 8 64 24z" /> - <glyph glyph-name="ion-social-reddit" unicode="&#xf23b;" horiz-adv-x="449" -d="M449 197c0 -20 -11 -37 -27 -45c1 -5 1 -9 1 -14c0 -76 -89 -138 -199 -138s-198 61 -198 137c0 5 0 10 1 15c-16 8 -27 25 -27 45c0 28 23 50 50 50c13 0 24 -5 33 -13c33 23 79 39 129 41h2l31 103l90 -18c8 14 22 24 39 24v0h1c25 0 44 -20 44 -45s-19 -45 -44 -45h-1 -v0c-23 0 -42 17 -44 40l-67 14l-22 -74c49 -3 93 -17 125 -40c9 8 21 13 34 13c27 0 49 -22 49 -50zM34 177c5 15 15 29 29 41c-4 3 -9 5 -15 5c-14 0 -25 -11 -25 -25c0 -9 4 -17 11 -21zM358 339c0 -9 7 -17 16 -17s17 8 17 17s-8 17 -17 17s-16 -8 -16 -17zM127 160 -c0 -18 14 -32 32 -32s32 14 32 32s-14 31 -32 31s-32 -13 -32 -31zM224 48c48 0 77 29 78 30l-13 12s-25 -24 -65 -24c-41 0 -64 24 -64 24l-13 -12c1 -1 29 -30 77 -30zM291 128c18 0 32 14 32 32s-14 31 -32 31s-32 -13 -32 -31s14 -32 32 -32zM415 176c7 5 11 13 11 22 -c0 14 -11 25 -25 25c-6 0 -11 -2 -15 -5c14 -12 24 -27 29 -42z" /> - <glyph glyph-name="ion-social-rss-outline" unicode="&#xf23c;" horiz-adv-x="384" -d="M56 112c31 0 56 -25 56 -56s-25 -56 -56 -56s-56 25 -56 56s25 56 56 56zM56 16c22 0 40 18 40 40s-18 40 -40 40s-40 -18 -40 -40s18 -40 40 -40zM0 256c140 0 256 -116 256 -256h-80c0 48 -14 94 -48 128s-80 48 -128 48v80zM240 16c-2 26 -8 52 -19 77 -c-12 28 -30 54 -52 76s-48 40 -76 52c-25 10 -51 16 -77 18v-47c50 -3 92 -22 123 -53s50 -73 53 -123h48zM0 384c212 0 384 -172 384 -384h-80c0 171 -133 304 -304 304v80zM227 228c56 -56 89 -131 93 -212h48c-8 190 -162 344 -352 352v-48c81 -4 155 -36 211 -92z" /> - <glyph glyph-name="ion-social-rss" unicode="&#xf23d;" horiz-adv-x="384" -d="M56 112c31 0 56 -25 56 -56s-25 -56 -56 -56s-56 25 -56 56s25 56 56 56zM0 256c140 0 256 -116 256 -256h-80c0 48 -14 94 -48 128s-80 48 -128 48v80zM0 384c212 0 384 -172 384 -384h-80c0 171 -133 304 -304 304v80z" /> - <glyph glyph-name="ion-social-sass" unicode="&#xf4ea;" horiz-adv-x="512" -d="M512 119v-8c-1 -9 -7 -17 -15 -22s-12 -4 -13 -3s1 3 4 5c13 8 17 20 10 33c-5 10 -15 16 -26 20c-24 8 -48 7 -72 0c4 -12 7 -23 -2 -34c-10 -12 -23 -19 -39 -22c-7 -2 -14 2 -15 9c-3 19 17 36 30 47c-7 11 -11 24 -14 37c-15 -17 -31 -40 -26 -61 -c3 -14 -1 -27 -14 -36s-30 -14 -46 -11c-4 1 -6 5 -5 8c2 14 25 32 35 43c2 2 3 4 1 7c-6 12 -10 23 -14 36c-13 -29 -30 -80 -57 -98c-9 -6 -17 -4 -21 5c-3 8 -2 20 -1 29c-6 -13 -11 -27 -20 -38c-7 -8 -24 -7 -30 1c-16 21 -13 50 -5 73l-29 -15c7 -16 8 -32 4 -49 -c-5 -19 -17 -35 -35 -46c-19 -12 -64 -24 -77 4c-7 16 -4 30 6 44c17 24 48 37 74 50c-32 23 -80 42 -96 80c-15 35 17 68 43 89c59 48 166 95 244 59c15 -7 36 -24 31 -52c-4 -24 -13 -39 -28 -54c-32 -32 -152 -77 -176 -15c-1 1 -1 4 1 4c2 -1 20 -15 43 -16 -c17 -1 36 3 52 8c33 11 71 33 80 67c4 13 -2 28 -15 34c-49 24 -116 -4 -159 -26c-33 -17 -84 -45 -82 -87c1 -37 56 -60 81 -82c15 7 42 15 52 27c11 13 26 25 44 26c8 0 14 -3 16 -10c2 -6 1 -11 0 -19c5 4 11 4 15 -1c12 -14 -22 -50 -10 -66c14 14 21 42 30 59 -c4 8 17 51 26 53c7 2 18 4 25 0c2 -1 3 -3 2 -5c-7 -19 -7 -33 3 -52c14 20 29 43 34 67c1 2 3 3 5 4c7 2 18 3 25 0c3 -1 3 -2 2 -5c-7 -22 -6 -38 6 -58c31 11 69 15 97 -5c-3 2 -7 5 0 0c5 -4 3 -2 0 0c12 -8 19 -18 21 -32zM113 94v0c1 7 -1 13 -3 20 -c-24 -8 -66 -35 -64 -62c1 -10 8 -13 17 -12s19 7 27 13c14 11 22 24 23 41zM216 166c1 3 -2 5 -5 4c-29 -8 -43 -57 -33 -81c1 -3 4 -3 6 -1c17 16 28 56 32 78zM286 84c8 -3 27 17 26 27c-8 -9 -18 -18 -26 -27zM367 102c11 6 16 19 12 30c-8 -6 -21 -19 -20 -31 -c0 -2 6 0 8 1z" /> - <glyph glyph-name="ion-social-skype-outline" unicode="&#xf23e;" horiz-adv-x="384" -d="M106 352c-41 0 -74 -33 -74 -73c0 -13 4 -25 10 -36l6 -11l-2 -12c-2 -10 -3 -20 -3 -30c0 -40 16 -77 44 -105s67 -44 107 -44c9 0 19 1 28 3l11 2l9 -5c11 -6 24 -9 36 -9c41 0 74 33 74 73c0 11 -3 22 -8 32l-5 10l3 11c2 10 3 21 3 32c0 40 -16 77 -44 105 -s-67 43 -107 43c-9 0 -18 0 -26 -2l-12 -2l-10 7c-12 7 -26 11 -40 11zM106 384v0c21 0 40 -6 56 -16c10 2 21 2 32 2c101 0 183 -80 183 -180c0 -13 -1 -27 -4 -39c7 -14 11 -29 11 -46c0 -58 -47 -105 -106 -105c-18 0 -35 4 -50 12c-11 -2 -22 -3 -34 -3 -c-101 0 -183 81 -183 181c0 12 2 24 4 36c-9 16 -15 34 -15 53c0 58 47 105 106 105zM288 104c-8 -12 -21 -21 -37 -28s-36 -10 -58 -10c-26 0 -48 5 -65 14c-12 7 -22 15 -30 26s-12 22 -12 33c0 7 3 12 8 17s11 7 19 7c6 0 12 -2 16 -6s7 -8 10 -15s7 -13 11 -18 -s8 -9 15 -12s16 -5 27 -5c15 0 28 4 37 10s13 13 13 22c0 7 -2 13 -7 17c-5 5 -11 9 -19 11c-8 3 -20 5 -34 8c-19 4 -35 9 -48 14c-13 6 -24 13 -32 23s-11 22 -11 36s4 25 12 36c8 10 20 19 36 25c15 6 34 8 54 8c16 0 30 -1 42 -5s23 -9 31 -15s14 -13 18 -20 -s5 -14 5 -21c0 -6 -2 -12 -7 -17s-11 -8 -19 -8c-7 0 -12 2 -16 5c-3 3 -7 7 -11 14c-5 8 -10 15 -16 20s-17 8 -31 8c-13 0 -23 -3 -31 -8s-12 -11 -12 -18c0 -4 2 -7 4 -10c3 -3 6 -6 11 -8s10 -5 15 -6s13 -3 25 -6c15 -3 28 -6 40 -10s23 -8 32 -14s15 -13 20 -22 -s8 -20 8 -32c0 -15 -5 -28 -13 -40z" /> - <glyph glyph-name="ion-social-skype" unicode="&#xf23f;" horiz-adv-x="384" -d="M373 151c7 -14 11 -29 11 -46c0 -58 -47 -105 -106 -105c-18 0 -35 4 -50 12c-11 -2 -22 -3 -34 -3c-101 0 -183 81 -183 181c0 12 2 24 4 36c-9 16 -15 34 -15 53c0 58 47 105 106 105c21 0 41 -6 57 -16c10 2 20 2 31 2c101 0 183 -80 183 -180c0 -13 -1 -27 -4 -39z -M288 104c9 12 12 25 12 40c0 12 -2 23 -7 32s-12 16 -21 22s-19 10 -31 14s-26 7 -41 10c-12 3 -20 5 -25 6s-10 4 -15 6s-7 5 -10 8c-2 3 -4 6 -4 10c0 7 3 13 11 18s19 7 32 7c14 0 25 -2 31 -7s11 -12 16 -20c4 -7 8 -11 11 -14c4 -3 9 -5 16 -5c8 0 13 3 18 8s8 11 8 17 -c0 7 -2 14 -6 21s-10 14 -18 20s-18 11 -30 15s-27 5 -43 5c-20 0 -38 -2 -53 -8c-16 -6 -28 -15 -36 -25c-8 -11 -12 -22 -12 -36s3 -26 11 -36s19 -17 32 -23c13 -5 29 -10 48 -14c14 -3 26 -5 34 -8c8 -2 14 -6 19 -11c5 -4 7 -10 7 -17c0 -9 -4 -17 -13 -23 -s-22 -9 -37 -9c-11 0 -20 2 -27 5s-11 6 -15 11s-8 12 -11 19s-6 11 -10 15s-10 6 -16 6c-8 0 -14 -2 -19 -7s-8 -10 -8 -17c0 -11 4 -22 12 -33s18 -19 30 -26c17 -9 39 -14 65 -14c22 0 42 3 58 10s29 16 37 28z" /> - <glyph glyph-name="ion-social-snapchat-outline" unicode="&#xf4eb;" horiz-adv-x="480" -d="M240 400v0v0c-71 0 -128 -54 -118 -128c2 -15 3 -32 4 -45c0 0 -2 -5 -12 -5c-6 0 -15 2 -28 7c-2 1 -4 1 -6 1c-8 0 -13 -6 -14 -12c0 -5 4 -11 8 -13c14 -7 47 -10 47 -33s-23 -47 -41 -64s-64 -21 -64 -21s0 -21 32 -29s32 -5 33 -13c2 -15 1 -22 11 -22c2 0 4 1 6 1 -c8 1 20 3 32 3c11 0 23 -2 34 -9c23 -15 41 -34 76 -34s53 19 76 34c11 7 24 9 35 9c12 0 23 -2 31 -3c2 0 4 -1 6 -1c10 0 9 7 11 22c1 8 1 5 33 13s32 29 32 29s-46 4 -64 21s-41 41 -41 64s33 26 47 33c4 2 9 8 9 13c-1 6 -6 12 -14 12c-2 0 -5 0 -7 -1 -c-13 -5 -21 -6 -27 -6c-10 0 -13 4 -13 4c1 13 2 30 4 45c10 74 -47 128 -118 128zM240 416v0c41 0 80 -16 105 -45c24 -28 34 -63 29 -101c-1 -11 -2 -22 -3 -31c4 1 10 2 18 5c4 1 8 2 12 2c16 0 29 -12 30 -27c1 -13 -9 -25 -18 -29c-4 -2 -9 -3 -14 -5 -c-7 -2 -14 -5 -19 -8c-4 -3 -5 -4 -5 -5c0 -16 20 -37 36 -52c11 -10 39 -16 54 -17l15 -1v-14c0 -2 0 -11 -6 -21c-5 -8 -16 -19 -38 -24c-6 -1 -11 -3 -15 -4c-2 -1 -5 -1 -7 -1v-1c-1 -7 -1 -13 -4 -18c-2 -5 -9 -12 -22 -12c-2 0 -6 0 -9 1c-2 0 -3 1 -5 1 -c-7 1 -15 2 -23 2c-10 0 -19 -2 -26 -6c-4 -3 -9 -7 -14 -10c-18 -13 -38 -27 -71 -27s-53 14 -71 27c-5 3 -9 7 -14 10c-7 4 -15 6 -25 6c-8 0 -17 -1 -24 -2c-2 0 -3 -1 -5 -1c-3 -1 -7 -1 -9 -1c-13 0 -20 7 -22 12c-3 5 -3 11 -4 18v1c-2 0 -4 0 -6 1c-4 1 -10 3 -16 4 -c-22 5 -33 16 -38 24c-6 10 -6 18 -6 20v15l15 1c16 1 44 7 54 17c29 27 36 43 36 52c0 1 0 2 -4 5c-5 3 -13 6 -20 8c-5 2 -10 3 -14 5c-9 4 -18 16 -17 29c1 15 14 27 30 27c4 0 8 0 12 -2c8 -3 13 -4 17 -5c-1 9 -2 19 -3 30c-5 38 5 74 29 102c25 29 64 45 105 45v0z -M240 219c-21 0 -41 8 -56 23c-3 3 -3 9 0 12s9 3 12 0c12 -12 27 -19 44 -19c16 0 32 7 44 19c3 3 9 3 12 0s3 -9 0 -12c-15 -15 -35 -23 -56 -23zM176 296c0 16 5 24 16 24s16 -8 16 -24s-5 -24 -16 -24s-16 8 -16 24zM272 296c0 16 5 24 16 24s16 -8 16 -24 -s-5 -24 -16 -24s-16 8 -16 24z" /> - <glyph glyph-name="ion-social-snapchat" unicode="&#xf4ec;" horiz-adv-x="480" -d="M480 88c0 -2 0 -11 -6 -21c-5 -8 -16 -19 -38 -24c-6 -1 -11 -3 -15 -4c-2 -1 -5 -1 -7 -1v-1c-1 -7 -1 -13 -4 -18c-2 -5 -9 -12 -22 -12c-2 0 -6 0 -9 1c-2 0 -3 1 -5 1c-7 1 -15 2 -23 2c-10 0 -19 -2 -26 -6c-4 -3 -9 -7 -14 -10c-18 -13 -38 -27 -71 -27 -s-53 14 -71 27c-5 3 -9 7 -14 10c-7 4 -15 6 -25 6c-8 0 -17 -1 -24 -2c-2 0 -3 -1 -5 -1c-3 -1 -7 -1 -9 -1c-13 0 -20 7 -22 12c-3 5 -3 11 -4 18v1c-2 0 -4 0 -6 1c-4 1 -10 3 -16 4c-22 5 -33 16 -38 24c-6 10 -6 18 -6 20v15l15 1c16 1 44 7 54 17c29 27 36 43 36 52 -c0 1 0 2 -4 5c-5 3 -13 6 -20 8c-5 2 -10 3 -14 5c-9 4 -18 16 -17 29c1 15 14 27 30 27c4 0 8 0 12 -2c8 -3 13 -4 17 -5c-1 9 -2 19 -3 30c-5 38 5 74 29 102c25 29 64 45 105 45v0c41 0 80 -16 105 -45c24 -28 34 -63 29 -101c-1 -11 -2 -22 -3 -31c4 1 10 2 18 5 -c4 1 8 2 12 2c16 0 29 -12 30 -27c1 -13 -9 -25 -18 -29c-4 -2 -9 -3 -14 -5c-7 -2 -14 -5 -19 -8c-4 -3 -5 -4 -5 -5c0 -16 20 -37 36 -52c11 -10 39 -16 54 -17l15 -1v-14zM192 320c-9 0 -16 -11 -16 -24s7 -24 16 -24s16 11 16 24s-7 24 -16 24zM296 242c3 3 3 9 0 12 -s-9 3 -12 0c-12 -12 -28 -19 -44 -19c-17 0 -32 7 -44 19c-3 3 -9 3 -12 0s-3 -9 0 -12c15 -15 35 -23 56 -23s41 8 56 23zM288 272c9 0 16 11 16 24s-7 24 -16 24s-16 -11 -16 -24s7 -24 16 -24z" /> - <glyph glyph-name="ion-social-tumblr-outline" unicode="&#xf240;" horiz-adv-x="256" -d="M193 52c21 0 42 6 63 20v-65c-18 -8 -34 -15 -48 -18s-28 -5 -45 -5c-19 0 -35 2 -50 7c-14 5 -28 12 -38 21s-17 18 -21 28s-6 25 -6 44v140h-48v58c16 5 30 14 42 24s19 21 26 35s11 37 14 59h62v-112h96v-64h-96v-101c0 -24 1 -40 4 -47c2 -7 7 -12 14 -16 -c9 -6 19 -8 31 -8zM240 17v29c-15 -6 -31 -10 -47 -10c-15 0 -28 3 -40 10c-10 6 -17 15 -21 25c-2 6 -4 17 -4 52v117h96v32h-96v112h-32c-2 -16 -7 -36 -14 -50c-8 -16 -17 -29 -30 -40c-11 -9 -23 -17 -36 -23v-31h48v-156c0 -21 2 -32 4 -38c3 -8 10 -15 18 -22 -c9 -8 19 -14 31 -18c13 -4 29 -6 46 -6c16 0 28 2 41 5c11 2 23 6 36 12z" /> - <glyph glyph-name="ion-social-tumblr" unicode="&#xf241;" horiz-adv-x="256" -d="M193 52c21 0 42 6 63 20v-65c-18 -8 -34 -15 -48 -18s-28 -5 -45 -5c-19 0 -35 2 -50 7c-14 5 -28 12 -38 21s-17 18 -21 28s-6 25 -6 44v140h-48v58c16 5 30 14 42 24s19 21 26 35s11 37 14 59h62v-112h96v-64h-96v-101c0 -24 1 -40 4 -47c2 -7 7 -12 14 -16 -c9 -6 19 -8 31 -8z" /> - <glyph glyph-name="ion-social-tux" unicode="&#xf2c5;" horiz-adv-x="383" -d="M189 347c2 2 -1 -1 0 0c2 2 4 4 6 5c-3 -2 -5 -4 -7 -8c0 1 0 2 1 3zM361 52c7 -4 23 -11 21 -22c-2 -10 -17 -15 -24 -19c-15 -8 -28 -14 -41 -25c-9 -8 -17 -15 -29 -17c-11 -2 -25 -1 -33 8c-5 5 -7 11 -15 12c-25 5 -54 4 -79 0c-13 -2 -21 -11 -32 -17 -c-10 -5 -20 -5 -30 -1c-13 5 -27 10 -41 13s-29 5 -43 9c-31 8 -5 30 -11 50c-3 12 -10 29 8 30c9 1 27 -1 31 11c2 7 -2 15 2 22s-1 17 1 25c4 18 19 32 25 49c5 14 8 25 18 37c9 11 22 22 29 34c10 18 9 35 8 55c-1 17 -1 33 -2 50c0 33 20 60 58 60h14 -c38 0 63 -32 64 -69c0 -19 -5 -38 5 -67c15 -27 36 -48 52 -73c10 -16 16 -31 20 -49c3 -14 9 -31 7 -45c-1 -6 -2 -9 -4 -11c3 -1 7 -2 9 -5c3 -4 2 -11 0 -26c-1 -8 5 -15 12 -19zM137 -3c2 20 -15 39 -25 56c-10 16 -21 43 -39 52c-8 4 -19 5 -23 -5c-2 -7 0 -19 -2 -22 -c-4 -9 -14 -10 -23 -11c-6 0 -17 0 -17 -8c1 -10 10 -20 7 -30c-2 -7 -8 -12 -8 -19c0 -14 38 -15 47 -17c19 -4 37 -14 57 -16c12 -1 25 7 26 20zM253 62c-2 10 2 -10 0 0s-5 28 1 35c4 5 10 6 17 5c0 4 1 9 3 12c8 13 29 8 39 0l-1 2c-3 4 -8 9 -13 10c0 0 4 12 2 34 -c-4 40 -33 62 -33 62c27 -30 27 -58 27 -72c0 -6 -1 -18 -4 -24c-4 -1 -7 -2 -11 -4c-10 -5 -8 2 -8 10c0 18 -2 36 -7 54c-3 9 -7 17 -13 24c-4 5 -4 9 -5 15c-3 12 -9 22 -16 32c-7 9 -7 17 -5 28c1 7 2 14 -6 17c-6 2 -26 5 -27 14c-1 6 -1 16 5 20c16 14 30 -11 17 -24 -c-3 -3 7 -4 8 -4c4 1 4 7 5 10c1 4 1 9 1 13c0 17 -18 32 -34 21c-6 -4 -9 -11 -10 -17c0 -2 -1 -20 0 -20c-4 0 -7 5 -11 5c-3 0 -7 0 -10 -1c0 0 2 14 -2 22c-4 9 -18 16 -24 4s-3 -25 0 -31s4 -6 4 -6c2 1 5 4 5 4s-6 3 -7 11c-1 9 3 14 7 15s10 -2 12 -8s0 -13 0 -13 -c-7 -6 -30 -18 -22 -28c14 -18 33 -15 52 -9c8 3 18 5 24 12c3 3 11 2 8 -4c-2 -5 -18 -7 -22 -9c-9 -4 -18 -8 -28 -10c-6 -1 -13 -5 -28 9c7 -6 8 -16 17 -20c13 -6 33 9 44 15c1 1 16 5 14 0c-1 -4 -11 -7 -15 -9c-11 -6 -23 -21 -36 -22c-8 -1 -21 16 -25 22 -c-1 1 -5 9 -6 4c-1 -8 2 -14 -3 -21c-6 -9 -11 -18 -13 -29c-1 -6 0 -11 -3 -16c-11 -15 -17 -33 -19 -51c0 -4 3 -43 -5 -41c-18 5 -17 33 -14 47c-3 -12 -8 -30 2 -44c12 -15 99 -55 53 -80c7 -14 14 -25 12 -41c8 7 2 20 -1 28c0 0 17 -12 38 -10c17 2 32 7 46 16 -c6 4 11 9 16 14c1 2 4 6 6 7l1 -11c2 -17 -12 -27 -10 -34c4 8 11 14 13 24c3 12 0 24 -2 36zM155 323v0v-3c2 0 2 5 1 8c-1 4 -3 6 -4 6h-2c3 -2 5 -6 5 -11zM210 335c3 -2 0 0 0 0c3 -2 5 -5 5 -10v-3c2 0 3 4 2 7s-3 6 -5 6h-2zM347 15c24 11 -24 -10 0 0 -c24 11 35 17 20 26c-17 10 -26 13 -26 29c0 5 4 16 2 22c-1 4 -6 5 -9 5c-10 -10 -17 -25 -34 -25c-14 0 -25 11 -28 24c-4 2 -10 1 -13 -4c-6 -12 1 -29 3 -41c2 -18 -4 -35 -2 -53c2 -21 26 -22 40 -13c16 10 29 22 47 30z" /> - <glyph glyph-name="ion-social-twitch-outline" unicode="&#xf4ed;" horiz-adv-x="416" -d="M32 416h384v-272l-112 -112h-80l-64 -64h-64v64h-96v304zM368 160v208h-304v-272h80v-64l64 64h96zM272 176v129h48v-129h-48zM160 176v129h48v-129h-48z" /> - <glyph glyph-name="ion-social-twitch" unicode="&#xf4ee;" horiz-adv-x="416" -d="M32 416h384v-272l-112 -112h-80l-64 -64h-64v64h-96v304zM208 176v129h-48v-129h48zM320 176v129h-48v-129h48z" /> - <glyph glyph-name="ion-social-twitter-outline" unicode="&#xf242;" horiz-adv-x="472" -d="M472 338c-13 -20 -29 -36 -48 -50v-12c0 -128 -98 -276 -276 -276c-55 0 -105 16 -148 44c8 -1 15 -2 23 -2c45 0 87 16 120 42c-42 1 -78 29 -90 67c6 -1 12 -2 18 -2c9 0 18 2 26 4c-44 9 -78 48 -78 95v1c13 -7 28 -12 44 -12c-26 17 -43 47 -43 81c0 18 5 34 13 48 -c48 -59 119 -97 199 -101c-2 7 -2 14 -2 22c0 54 43 97 97 97c28 0 52 -12 70 -31c22 4 43 13 62 24c-7 -23 -23 -42 -43 -54c20 2 39 7 56 15zM414 301c3 2 8 6 11 8c-2 0 -11 -2 -19 -1s-21 5 -21 5s14 13 18 17l11 11c-4 -1 -10 -2 -14 -3l-8 -2l-6 6 -c-15 16 -37 26 -59 26c-45 0 -81 -37 -81 -81c0 -6 1 -12 2 -18l5 -21l-22 1c-42 2 -81 13 -118 32c-28 14 -53 34 -75 56c-1 -6 -2 -13 -2 -19c0 -27 14 -53 36 -68c0 0 33 -23 46 -29c-24 -2 -56 0 -56 0c-8 0 -16 1 -24 3c8 -28 32 -50 62 -56l61 -10l-61 -21 -c-7 -2 -14 -3 -21 -3c15 -20 38 -34 64 -34l45 -1l-35 -28c-18 -14 -38 -25 -60 -33c-10 -3 -19 -6 -29 -8c27 -9 55 -14 84 -14c40 0 78 8 112 24c31 14 58 34 81 60c22 24 38 53 50 84c11 30 17 62 17 92v12l-1 8z" /> - <glyph glyph-name="ion-social-twitter" unicode="&#xf243;" horiz-adv-x="472" -d="M472 338c-13 -20 -29 -36 -48 -50v-12c0 -128 -98 -276 -276 -276c-55 0 -105 16 -148 44c8 -1 15 -2 23 -2c45 0 87 16 120 42c-42 1 -78 29 -90 67c6 -1 12 -2 18 -2c9 0 18 2 26 4c-44 9 -78 48 -78 95v1c13 -7 28 -12 44 -12c-26 17 -43 47 -43 81c0 18 5 34 13 48 -c48 -59 119 -97 199 -101c-2 7 -2 14 -2 22c0 54 43 97 97 97c28 0 52 -12 70 -31c22 4 43 13 62 24c-7 -23 -23 -42 -43 -54c20 2 39 7 56 15z" /> - <glyph glyph-name="ion-social-usd-outline" unicode="&#xf352;" horiz-adv-x="320" -d="M125 345c11 2 19 3 19 3v-131l-22 6c-15 5 -27 11 -36 19c-12 10 -19 25 -19 43c0 13 4 24 11 33c6 8 13 14 22 19c7 4 17 6 25 8zM128 238v92c-7 -2 -15 -4 -21 -7c-7 -4 -12 -9 -17 -15s-7 -14 -7 -23c0 -13 4 -24 13 -31c8 -7 20 -12 32 -16zM252 151 -c10 -10 15 -24 15 -42c0 -9 -1 -18 -5 -27s-11 -17 -20 -24c-8 -6 -18 -11 -31 -15c-6 -2 -11 -3 -17 -4s-18 -1 -18 -1v145l20 -5c10 -3 19 -6 28 -9c10 -4 20 -10 28 -18zM247 89c3 7 4 13 4 20c0 14 -3 24 -10 31s-15 11 -23 14s-16 5 -26 8v-107c6 1 10 2 14 3 -c11 3 20 8 27 13s11 11 14 18zM315 145c3 -10 5 -19 5 -29c0 -21 -5 -38 -14 -53s-20 -26 -35 -35s-31 -17 -50 -21c-10 -2 -19 -3 -29 -4v-35h-64v35c-9 1 -19 4 -28 6c-20 5 -36 12 -51 23s-26 24 -35 41c-8 16 -13 34 -14 55h69c0 -12 2 -24 7 -33c5 -10 12 -17 21 -23 -s20 -11 31 -14v120c-8 2 -18 4 -27 6c-17 4 -30 9 -41 16s-20 15 -27 23s-11 17 -14 26s-4 18 -4 28c0 18 4 34 12 48s19 25 33 34s29 16 46 20c7 2 15 3 22 4v33h64v-33c9 -1 16 -4 24 -6c18 -5 34 -12 48 -22s25 -22 33 -37c7 -13 11 -28 12 -46h-69c-3 21 -12 37 -26 46 -c-7 4 -13 8 -22 10v-106c9 -2 16 -4 25 -6c12 -3 22 -6 27 -7c13 -4 23 -9 33 -15c10 -7 18 -14 24 -22s11 -17 14 -27zM293 72c7 12 11 27 11 44c0 8 -1 16 -4 24s-7 15 -12 22s-12 13 -20 19c-8 5 -18 10 -29 13c-5 1 -13 3 -24 6h-1l-4 1c-7 2 -13 4 -21 6l-13 3v137 -s9 -1 19 -4s19 -6 28 -12c15 -9 25 -24 30 -43h38c-2 8 -4 15 -8 22c-7 13 -16 24 -28 32c-12 9 -27 16 -43 20c-8 2 -16 4 -23 5l-13 2v31h-32v-31l-14 -2c-7 -1 -14 -2 -20 -4c-15 -4 -29 -10 -41 -18s-21 -16 -28 -28c-7 -11 -10 -24 -10 -40c0 -8 1 -15 3 -23 -c2 -7 6 -14 11 -21s14 -13 23 -19c10 -6 22 -10 37 -14v0v0c4 -1 8 -2 11 -3c5 -1 11 -3 16 -4l12 -3v-151s-8 1 -20 4s-26 8 -36 15c-11 8 -20 18 -26 30c-4 7 -6 16 -8 24h-36c2 -11 5 -23 10 -32c8 -14 17 -26 30 -35c13 -10 28 -16 46 -21c8 -2 17 -4 26 -5l14 -2v-33 -h32v33l15 1c9 1 17 3 26 5c17 4 32 10 45 18s23 19 31 31z" /> - <glyph glyph-name="ion-social-usd" unicode="&#xf353;" horiz-adv-x="320" -d="M315 145c3 -10 5 -19 5 -29c0 -21 -5 -38 -14 -53s-20 -26 -35 -35s-31 -17 -50 -21c-10 -2 -19 -3 -29 -4v-35h-64v35c-9 1 -19 4 -28 6c-20 5 -36 12 -51 23s-26 24 -35 41c-8 16 -13 34 -14 55h69c0 -12 2 -24 7 -33c5 -10 12 -17 21 -23s20 -11 31 -14v120 -c-8 2 -18 4 -27 6c-17 4 -30 9 -41 16s-20 15 -27 23s-11 17 -14 26s-4 18 -4 28c0 18 4 34 12 48s19 25 33 34s29 16 46 20c7 2 15 3 22 4v33h64v-33c9 -1 16 -4 24 -6c18 -5 34 -12 48 -22s25 -22 33 -37c7 -13 11 -28 12 -46h-69c-3 21 -12 37 -26 46c-7 4 -13 8 -22 10 -v-106c9 -2 16 -4 25 -6c12 -3 22 -6 27 -7c13 -4 23 -9 33 -15c10 -7 18 -14 24 -22s11 -17 14 -27zM128 238v92c-7 -2 -15 -4 -21 -7c-7 -4 -12 -9 -17 -15s-7 -14 -7 -23c0 -13 4 -24 13 -31c8 -7 20 -12 32 -16zM247 89c3 7 4 13 4 20c0 14 -3 24 -10 31s-15 11 -23 14 -s-16 5 -26 8v-107c6 1 10 2 14 3c11 3 20 8 27 13s11 11 14 18z" /> - <glyph glyph-name="ion-social-vimeo-outline" unicode="&#xf244;" -d="M445 334c7 -33 1 -66 -13 -97s-31 -59 -51 -87c-26 -36 -52 -71 -85 -101c-19 -18 -41 -35 -66 -44c-10 -4 -19 -5 -27 -5c-17 0 -31 9 -44 27c-14 19 -22 40 -28 63c-12 45 -25 90 -38 134c-4 12 -9 22 -15 33c-3 5 -8 10 -12 14c-2 2 -5 3 -8 3s-6 -1 -9 -3 -c-10 -6 -28 -18 -28 -18l-21 27c26 24 82 71 82 71c11 9 33 25 48 27h8c18 0 32 -7 42 -22c11 -17 15 -37 18 -57c7 -41 12 -82 24 -122c3 -10 7 -20 12 -29c4 -7 9 -10 14 -10c4 0 7 2 11 5s7 6 10 10c20 24 37 52 48 81c3 9 3 17 3 27c0 13 -10 25 -25 26h-7 -c-11 0 -20 -2 -32 -7c6 24 24 62 54 84c20 14 45 20 67 20c10 0 20 -2 27 -4c23 -8 36 -23 41 -46zM418 244c13 30 17 59 11 87c-4 19 -13 28 -30 34c-6 2 -14 3 -22 3c-21 0 -42 -6 -57 -17c-16 -12 -29 -30 -38 -48h6h8c23 -1 39 -19 40 -41c0 -10 0 -22 -4 -34 -c-11 -29 -29 -58 -51 -85c-4 -4 -7 -9 -12 -13c-7 -6 -15 -8 -22 -8c-8 0 -18 3 -27 18c-7 11 -11 22 -14 32c-10 31 -14 64 -19 95c-2 10 -3 19 -5 29c-3 17 -6 36 -16 51c-7 10 -16 15 -28 15h-6c-8 -1 -25 -11 -40 -23c-2 -2 -43 -37 -70 -61l2 -3c5 4 12 7 16 10 -c6 3 12 5 18 5c7 0 13 -3 18 -7c8 -7 13 -12 16 -18c6 -11 12 -24 16 -37c13 -44 26 -88 38 -133c5 -19 13 -41 26 -59s23 -20 31 -20c6 0 13 1 21 4c23 8 43 25 61 41c32 29 57 63 83 99v0c21 28 37 55 50 84z" /> - <glyph glyph-name="ion-social-vimeo" unicode="&#xf245;" -d="M445 334c7 -33 1 -66 -13 -97s-31 -59 -51 -87c-26 -36 -52 -71 -85 -101c-19 -18 -41 -35 -66 -44c-31 -11 -52 -5 -71 22c-14 19 -22 40 -28 63c-12 45 -25 90 -38 134c-4 12 -9 22 -15 33c-3 5 -8 10 -12 14c-5 4 -11 3 -17 0c-10 -6 -28 -18 -28 -18l-21 27 -c26 24 82 71 82 71c11 9 33 25 48 27c21 3 38 -4 50 -22c11 -17 15 -37 18 -57c7 -41 11 -82 23 -122c3 -10 8 -20 13 -29c7 -11 15 -13 25 -5c4 3 7 6 10 10c20 24 37 52 48 81c3 9 3 17 3 27c0 13 -10 25 -25 26s-24 -1 -39 -7c6 24 24 62 54 84c29 21 71 24 94 16 -s36 -23 41 -46z" /> - <glyph glyph-name="ion-social-whatsapp-outline" unicode="&#xf4ef;" -d="M178 294c4 -11 15 -39 16 -42s2 -6 0 -10s-3 -6 -6 -9s-6 -7 -9 -9c-3 -3 -6 -6 -3 -12s14 -24 30 -39c21 -20 38 -27 44 -30s9 -3 12 1s15 16 19 21s8 5 13 3s31 -17 37 -20s10 -5 11 -7s0 -13 -5 -26s-28 -24 -38 -25s-11 -8 -67 16s-90 84 -93 88s-22 31 -21 58 -s17 41 22 46s11 7 15 7h10s9 0 13 -11zM228 384c-50 0 -97 -20 -133 -55c-35 -35 -55 -81 -55 -131c0 -34 9 -67 27 -96l8 -13l-5 -14l-19 -57l61 19l13 4l12 -6c28 -15 59 -23 91 -23c50 0 97 19 133 54c35 35 55 82 55 132s-20 96 -55 131c-36 35 -83 55 -133 55zM228 416 -v0c121 0 220 -97 220 -218s-99 -218 -220 -218c-39 0 -74 10 -106 27l-122 -39l40 117c-20 33 -32 72 -32 113c0 121 99 218 220 218z" /> - <glyph glyph-name="ion-social-whatsapp" unicode="&#xf4f0;" -d="M228 416c121 0 220 -97 220 -218s-99 -218 -220 -218c-39 0 -74 10 -106 27l-122 -39l40 117c-20 33 -32 72 -32 113c0 121 99 218 220 218zM337 115c5 13 6 24 5 26s-5 4 -11 7s-32 18 -37 20s-9 2 -13 -3s-16 -17 -19 -21s-6 -4 -12 -1s-23 10 -44 30 -c-16 15 -27 33 -30 39s0 9 3 12c3 2 6 6 9 9s4 5 6 9s1 7 0 10s-12 31 -16 42s-10 11 -13 11h-10s-10 -2 -15 -7s-21 -19 -22 -46s18 -54 21 -58s37 -64 93 -88s57 -17 67 -16s33 12 38 25z" /> - <glyph glyph-name="ion-social-windows-outline" unicode="&#xf246;" -d="M432 167h-216v-149l216 -32v181zM448 183v0v-215l-248 36v179h248zM168 167h-152v-120l152 -22v142zM184 183v0v-177l-184 27v150h184zM432 398v0l-216 -31v-152h216v183zM448 416v0v-217h-248v182zM168 360v0l-152 -22v-123h152v145zM184 378v0v-179h-184v153z" /> - <glyph glyph-name="ion-social-windows" unicode="&#xf247;" -d="M448 183v0v-215l-248 36v179h248zM184 183v0v-177l-184 27v150h184zM448 416v0v-217h-248v182zM184 378v0v-179h-184v153z" /> - <glyph glyph-name="ion-social-wordpress-outline" unicode="&#xf248;" horiz-adv-x="384" -d="M192 384c106 0 192 -86 192 -192c0 -9 -1 -18 -2 -26c-12 -85 -79 -153 -165 -164c-8 -1 -17 -2 -25 -2c-106 0 -192 86 -192 192s86 192 192 192zM19 192c0 -68 40 -127 98 -155l-83 225c-10 -21 -15 -45 -15 -70zM214 21c12 2 24 4 35 8c0 1 -1 2 -1 3l-53 145l-33 -96 -v0l-19 -55c15 -5 32 -7 49 -7c8 0 15 1 22 2zM216 273l62 -186l17 58c9 22 13 41 13 56c0 21 -7 35 -14 47c-9 14 -17 27 -17 41c0 16 12 30 29 30h2c-31 28 -71 45 -116 45c-60 0 -113 -30 -144 -77c4 0 8 -1 11 -1c18 0 46 3 46 3c9 1 10 -14 1 -15c0 0 -10 -1 -20 -1 -l63 -187l38 113l-27 74c-9 0 -18 1 -18 1c-9 0 -8 16 1 15c0 0 28 -3 45 -3c18 0 46 3 46 3c9 1 11 -14 2 -15c0 0 -10 -1 -20 -1zM279 43c45 26 77 71 84 125c1 8 2 16 2 24c0 30 -8 58 -22 83c1 -6 1 -12 1 -18c0 -18 -3 -37 -13 -62l-39 -113z" /> - <glyph glyph-name="ion-social-wordpress" unicode="&#xf249;" horiz-adv-x="384" -d="M195 177l53 -146c0 -1 6 -13 9 -19c-3 -1 -5 -2 -8 -3v0c-10 -3 -21 -6 -32 -7c-8 -1 -17 -2 -25 -2c-17 0 -34 2 -50 6v0c-2 0 -3 2 -5 2l25 73v0zM17 268c6 0 7 -1 15 -1l93 -255c-3 1 -5 2 -8 3c-63 27 -109 87 -116 158c-1 6 -1 13 -1 19c0 25 7 53 17 76zM366 273 -c11 -24 18 -52 18 -81c0 -9 -1 -18 -2 -26c-9 -65 -50 -120 -107 -147c-2 -1 -3 -1 -5 -2l22 65l39 113c10 25 13 45 13 62v19v0c-1 18 -10 44 -36 43h-2c-17 0 -29 -14 -29 -30c0 -14 8 -27 17 -41c7 -12 14 -26 14 -47c0 -15 -4 -34 -13 -56l-17 -58l-62 186 -c10 0 20 1 20 1c9 1 7 16 -2 15c0 0 -28 -3 -46 -3c-17 0 -45 3 -45 3c-9 1 -10 -15 -1 -15c0 0 9 -1 18 -1l27 -74l-38 -113l-63 187c10 0 20 2 20 2c9 1 8 15 -1 14c0 0 -28 -2 -46 -2h-34c5 9 11 17 17 25c35 44 90 72 150 72c24 0 48 -5 69 -13c34 -13 63 -36 85 -65 -c2 -2 3 -5 5 -7c6 -8 11 -17 15 -26z" /> - <glyph glyph-name="ion-social-yahoo-outline" unicode="&#xf24a;" horiz-adv-x="320" -d="M289 380c11 0 21 1 31 4l-128 -213v-171c-10 4 -21 4 -32 4s-22 0 -32 -4v171l-128 213c10 -4 21 -4 32 -4s22 0 32 4l96 -160l96 160c10 -4 22 -4 33 -4zM178 180l111 184h-1c-7 0 -15 0 -24 2l-90 -150l-14 -23l-14 23l-89 150c-9 -2 -17 -2 -25 -2h-1l111 -184l2 -4 -v-5v-151c6 1 11 0 16 0s11 1 16 0v151v5z" /> - <glyph glyph-name="ion-social-yahoo" unicode="&#xf24b;" horiz-adv-x="320" -d="M289 380c11 0 21 1 31 4l-128 -213v-171c-10 4 -21 4 -32 4s-22 0 -32 -4v171l-128 213c10 -4 21 -4 32 -4s22 0 32 4l96 -160l96 160c10 -4 22 -4 33 -4z" /> - <glyph glyph-name="ion-social-yen-outline" unicode="&#xf4f1;" horiz-adv-x="384" -d="M384 416l-112 -208h48v-48h-73l-15 -31v-17h88v-48h-88v-96h-80v96h-88v48h88v17l-14 31h-74v48h48l-112 208h80l112 -221l112 221h80zM304 192h-59l13 24l99 184v0h-43l-122 -240l-122 240h-43l99 -184l13 -24h-59v-16h68l20 -44v-36h-88v-16h88v-96h48v96h88v16h-88v37 -l21 43h67v16z" /> - <glyph glyph-name="ion-social-yen" unicode="&#xf4f2;" horiz-adv-x="384" -d="M384 416l-112 -208h48v-48h-73l-15 -31v-17h88v-48h-88v-96h-80v96h-88v48h88v17l-14 31h-74v48h48l-112 208h80l112 -221l112 221h80z" /> - <glyph glyph-name="ion-social-youtube-outline" unicode="&#xf24c;" horiz-adv-x="512" -d="M265 352v0h-9h-9c-65 0 -118 -2 -168 -4h-1h-1c-23 0 -42 -22 -42 -49v-1v-1c-2 -34 -3 -70 -3 -105v0v0c0 -35 1 -70 3 -104v-2v-1c0 -14 5 -26 14 -36c8 -9 17 -13 28 -13h1h1c52 -2 108 -4 166 -4h11v0v0h11c58 0 113 2 166 4h1h1c11 0 20 4 28 13c9 10 14 22 14 36v1 -v2c2 34 3 68 3 104v0v0c0 36 -1 71 -3 105v1v2c0 27 -19 49 -42 49h-1h-1c-49 2 -103 3 -168 3zM265 384v0c58 0 115 0 170 -3c41 0 74 -36 74 -81c2 -36 3 -72 3 -108s-1 -71 -3 -107c0 -45 -33 -81 -74 -81c-55 -3 -111 -4 -168 -4h-11h-11c-57 0 -113 1 -168 4 -c-41 0 -74 36 -74 81c-2 36 -3 71 -3 107s2 71 4 107c0 45 32 82 73 82c55 2 112 3 170 3h9h9zM207 94v197l145 -99z" /> - <glyph glyph-name="ion-social-youtube" unicode="&#xf24d;" horiz-adv-x="512" -d="M509 299c2 -36 3 -71 3 -107s-1 -71 -3 -107c0 -45 -33 -81 -74 -81c-58 -3 -118 -4 -179 -4s-121 1 -179 4c-41 0 -74 36 -74 81c-2 36 -3 71 -3 107s2 71 4 107c0 45 32 81 73 81c55 3 112 4 170 4h9h9c58 0 115 -1 170 -4c41 0 74 -36 74 -81zM207 94l145 98l-145 99 -v-197z" /> - <glyph glyph-name="ion-soup-can-outline" unicode="&#xf4f3;" horiz-adv-x="320" -d="M160 304c-88 0 -160 29 -160 64s72 64 160 64s160 -29 160 -64s-72 -64 -160 -64zM160 415c-70 0 -126 -19 -126 -43s56 -43 126 -43s126 19 126 43s-56 43 -126 43zM161 288c88 0 158 29 159 64c0 -5 0 -33 -8 -40v-240c0 -35 -64 -64 -152 -64s-152 29 -152 64v240 -c-8 6 -8 40 -8 40c0 -35 73 -64 161 -64zM280 72v80c-18 -10 -43 -17 -72 -21h-2c-6 -20 -24 -35 -46 -35s-40 15 -46 35h-2c-29 4 -54 11 -72 21v-80c1 -2 9 -10 30 -18c24 -9 55 -14 90 -14s67 5 91 14c21 8 29 16 29 18zM280 184v91c-33 -12 -75 -19 -119 -19 -c-45 0 -87 7 -121 19v-91c18 -10 43 -17 73 -21h3c7 17 24 29 44 29s37 -12 44 -29h3c30 4 55 11 73 21zM178 -16zM160 -16h1h-1v0zM312 32l8 -16c0 -7 -3 -14 -8 -20c-21 -26 -81 -44 -152 -44s-131 18 -152 44c-5 6 -8 13 -8 20l8 16v16c0 -35 63 -64 152 -64 -s152 28 152 64v-16z" /> - <glyph glyph-name="ion-soup-can" unicode="&#xf4f4;" horiz-adv-x="320" -d="M0 368c0 43 53 64 160 64s160 -21 160 -64s-53 -64 -160 -64s-160 21 -160 64zM160 8c-44 0 -80 6 -109 18s-43 28 -43 46v128c0 -9 4 -19 13 -27s21 -15 37 -21s33 -10 54 -13c1 -12 7 -23 16 -31s20 -12 32 -12s23 4 32 12s15 19 16 31c31 4 56 12 75 23s29 24 29 38 -v-128c0 -18 -14 -34 -43 -46s-65 -18 -109 -18zM160 288c44 0 82 6 113 18s47 28 47 46v-8c0 -5 -1 -11 -2 -18s-3 -11 -6 -14v-96c0 -14 -10 -27 -29 -38s-44 -19 -76 -23c-2 11 -8 19 -17 26s-19 11 -30 11s-21 -4 -30 -11s-15 -15 -17 -26c-32 4 -57 12 -76 23 -s-29 24 -29 38v96c-5 5 -8 18 -8 40c0 -18 16 -34 47 -46s69 -18 113 -18zM312 56v-24l8 -16c0 -7 -3 -14 -8 -20c-11 -13 -30 -24 -58 -32s-59 -12 -94 -12s-66 4 -94 12s-47 19 -58 32c-5 6 -8 13 -8 20l8 16v24c0 -18 14 -34 43 -46s65 -18 109 -18s80 6 109 18 -s43 28 43 46z" /> - <glyph glyph-name="ion-speakerphone" unicode="&#xf2b2;" -d="M39 266c0 -37 20 -69 50 -86c-1 0 -2 1 -3 1s-4 1 -5 1v0c-35 3 -62 33 -69 69c-6 0 -12 7 -12 16c0 8 5 15 11 16c6 42 40 75 81 75h8c-36 -15 -61 -51 -61 -92zM433 357c10 -25 15 -56 15 -88s-5 -63 -15 -88l-3 -9c-6 -14 -15 -26 -24 -34c-10 -10 -22 -19 -34 -20h-3 -c-7 0 -15 2 -22 5c-3 2 -10 5 -10 5c-22 10 -84 28 -115 29c-4 -8 -10 -20 -12 -30c-2 -9 -6 -27 -7 -61c-1 -32 1 -59 3 -82c0 -2 1 -5 1 -7c0 -6 -2 -9 -9 -9h-77c-6 0 -9 3 -9 6v7c2 72 25 140 26 145c2 9 5 17 7 30c2 12 -27 13 -40 24c-29 17 -47 49 -47 86 -c0 41 25 77 59 92h42h19c58 3 114 21 163 50c1 1 3 1 4 2v0c8 4 16 6 24 6c13 0 26 -6 37 -16c9 -9 18 -21 24 -35c1 -3 2 -5 3 -8zM410 180c9 22 15 54 15 89s-6 66 -15 88c-8 18 -19 29 -30 29s-21 -11 -29 -29c-9 -22 -15 -53 -15 -88s6 -67 15 -89c8 -19 18 -33 29 -33 -s22 15 30 33z" /> - <glyph glyph-name="ion-speedometer" unicode="&#xf2b3;" -d="M312 192l8 -8l-64 -84v-4c0 -18 -14 -32 -32 -32s-32 14 -32 32s14 32 32 32h4zM224 352c124 0 224 -100 224 -224c0 -34 -8 -67 -22 -96h-36c15 27 25 57 26 88h-32v16h32c-1 29 -9 56 -22 81l-27 -15l-8 13l27 16c-8 12 -16 23 -26 33s-21 18 -33 26l-16 -27l-14 8 -l16 27c-25 13 -52 21 -81 22v-32h-16v32c-29 -1 -56 -9 -81 -22l16 -27l-14 -8l-16 27c-12 -8 -23 -16 -33 -26s-19 -21 -26 -33l28 -16l-8 -13l-28 15c-13 -25 -21 -52 -22 -81h32v-16h-32c1 -31 11 -61 26 -88h-36c-14 29 -22 62 -22 96c0 124 100 224 224 224z" /> - <glyph glyph-name="ion-spoon" unicode="&#xf2b4;" horiz-adv-x="128" -d="M128 288c0 64 -26 128 -64 128s-64 -64 -64 -128v0c1 -25 16 -54 37 -64l1 -1v0c3 -2 10 -6 10 -10c0 0 -16 -199 -16 -210s4 -20 10 -26s14 -9 22 -9v0v0c8 0 16 3 22 9s10 13 10 26s-16 210 -16 210c0 4 7 8 10 10l1 1c22 10 37 38 37 64z" /> - <glyph glyph-name="ion-star" unicode="&#xf24e;" -d="M448 248l-139 -104l55 -176l-140 112l-140 -112l55 176l-139 104h172l52 168l53 -168h171z" /> - <glyph glyph-name="ion-stats-bars" unicode="&#xf2b5;" horiz-adv-x="352" -d="M96 32v320h64v-320h-64zM0 32v96h64v-96h-64zM192 32v160h64v-160h-64zM288 32v224h64v-224h-64z" /> - <glyph glyph-name="ion-steam" unicode="&#xf30b;" horiz-adv-x="512" -d="M480 240c0 -20 -16 -37 -37 -37c-20 0 -37 16 -37 37c0 20 16 37 37 37c20 0 37 -17 37 -37zM443 309c38 0 69 -31 69 -69s-31 -70 -69 -70l-67 -48c-2 -26 -24 -47 -51 -47c-25 0 -46 18 -51 41l-196 78c-8 -5 -16 -7 -26 -7c-28 0 -52 24 -52 52s24 52 52 52 -c25 0 45 -18 50 -41l196 -79c8 5 17 8 27 8c2 0 3 -1 5 -1l43 62c0 38 32 69 70 69zM443 286c-26 0 -47 -20 -47 -46s21 -47 47 -47s46 21 46 47s-20 46 -46 46zM52 277c-21 0 -38 -17 -38 -38s17 -38 38 -38c3 0 5 0 8 1l-16 6v0c-15 7 -22 24 -16 39s24 23 39 17v0l19 -7 -c-6 12 -19 20 -34 20zM325 165c-3 0 -6 -1 -9 -1l16 -6c16 -6 23 -24 17 -40s-23 -23 -39 -17c-6 3 -13 6 -19 8c6 -12 19 -20 34 -20c21 0 38 17 38 38s-17 38 -38 38z" /> - <glyph glyph-name="ion-stop" unicode="&#xf24f;" horiz-adv-x="384" -d="M373 384c6 0 11 -5 11 -11v-362c0 -6 -5 -11 -11 -11h-362c-6 0 -11 5 -11 11v362c0 6 5 11 11 11h362z" /> - <glyph glyph-name="ion-thermometer" unicode="&#xf2b6;" horiz-adv-x="160" -d="M127 112c20 -14 33 -38 33 -64c0 -44 -36 -80 -80 -80s-80 36 -80 80c0 27 13 51 33 65v257c0 26 21 46 47 46s47 -20 47 -46v-258zM65 370v-50h30v50c0 8 -7 14 -15 14s-15 -6 -15 -14zM96 160v16h-16v-16h16zM96 192v64h-16v-64h16z" /> - <glyph glyph-name="ion-thumbsdown" unicode="&#xf250;" horiz-adv-x="384" -d="M24 195c-10 5 -18 17 -18 29c0 14 8 25 20 30c-4 5 -6 12 -6 19c0 14 8 25 20 30c-3 5 -5 11 -5 17c0 18 11 24 35 30s74 12 126 9c23 -1 55 -7 76 -7v32h112v-240h-112v16c-15 -1 -31 -4 -40 -14c-22 -23 -40 -65 -40 -108c0 -19 1 -29 -4 -34c-13 -13 -44 9 -52 37 -c-9 34 -1 62 1 87h-103c-19 0 -34 15 -34 34c0 15 10 29 24 33zM336 352c-9 0 -16 -7 -16 -16s7 -16 16 -16s16 7 16 16s-7 16 -16 16z" /> - <glyph glyph-name="ion-thumbsup" unicode="&#xf251;" horiz-adv-x="384" -d="M360 189c10 -5 18 -17 18 -29c0 -14 -8 -25 -20 -30c4 -5 6 -12 6 -19c0 -14 -8 -25 -20 -30c3 -5 5 -11 5 -17c0 -18 -11 -24 -35 -30s-74 -12 -126 -9c-23 1 -55 7 -76 7v-32h-112v240h112v-16c15 1 31 4 40 14c22 23 40 65 40 108c0 19 -1 29 4 34c13 13 44 -9 52 -37 -c9 -34 1 -62 -1 -87h103c19 0 34 -15 34 -34c0 -15 -10 -29 -24 -33zM48 32c9 0 16 7 16 16s-7 16 -16 16s-16 -7 -16 -16s7 -16 16 -16z" /> - <glyph glyph-name="ion-toggle-filled" unicode="&#xf354;" -d="M320 240c26 0 48 -22 48 -48s-22 -48 -48 -48s-48 22 -48 48s22 48 48 48zM320 320c71 0 128 -57 128 -128s-57 -128 -128 -128h-192c-71 0 -128 57 -128 128s57 128 128 128h192zM320 112c44 0 80 36 80 80s-36 80 -80 80s-80 -36 -80 -80s36 -80 80 -80z" /> - <glyph glyph-name="ion-toggle" unicode="&#xf355;" -d="M320 288h-192c-53 0 -96 -43 -96 -96s43 -96 96 -96h192c53 0 96 43 96 96s-43 96 -96 96zM320 320v0c71 0 128 -57 128 -128s-57 -128 -128 -128h-192c-71 0 -128 57 -128 128s57 128 128 128h192zM128 240c-26 0 -48 -22 -48 -48s22 -48 48 -48s48 22 48 48 -s-22 48 -48 48zM128 272v0c44 0 80 -36 80 -80s-36 -80 -80 -80s-80 36 -80 80s36 80 80 80z" /> - <glyph glyph-name="ion-transgender" unicode="&#xf4f5;" horiz-adv-x="512" -d="M368 448h144v-144h-40v76l-101 -100c8 -17 13 -36 13 -56c0 -63 -46 -115 -104 -126v-52h72v-46h-72v-64h-48v64h-72v46h72v52c-59 11 -104 63 -104 126c0 20 5 39 13 56l-22 22l-36 -36l-33 33l36 36l-46 45v-76h-40v144h144v-40h-70l43 -42l36 36l33 -33l-36 -36 -l17 -17c23 22 54 36 89 36c27 0 53 -8 74 -23c0 0 6 -5 15 -13l93 92h-70v40zM256 144c44 0 80 36 80 80s-36 80 -80 80s-80 -36 -80 -80s36 -80 80 -80z" /> - <glyph glyph-name="ion-trash-a" unicode="&#xf252;" horiz-adv-x="352" -d="M261 320v0h91v-32h-9s-5 -1 -8 -4s-4 -9 -4 -9l-19 -241c-2 -29 -2 -34 -36 -34h-200c-34 0 -34 5 -36 34l-19 242s-1 6 -4 9s-8 3 -8 3h-9v32h91v29c0 19 14 35 34 35h101c20 0 35 -16 35 -35v-29zM112 349v-29h128v29c0 10 -9 15 -19 15h-91c-10 0 -18 -5 -18 -15z -M104 64h20l-10 192h-21zM187 64v192h-22v-192h22zM249 64l10 192h-20l-11 -192h21z" /> - <glyph glyph-name="ion-trash-b" unicode="&#xf253;" horiz-adv-x="320" -d="M318 315c3 -12 4 -11 -7 -11h-302c-11 0 -10 -1 -7 11c2 9 4 13 4 13c3 9 9 9 19 11l53 7c7 1 7 1 10 7c9 20 10 31 20 31h103c10 0 12 -11 21 -31c3 -6 3 -6 10 -7l53 -6c10 -2 16 -2 19 -11c0 0 2 -5 4 -14zM283 272c17 0 18 -2 17 -15l-19 -242c-2 -12 -2 -15 -17 -15 -h-208c-15 0 -15 3 -17 15l-19 242c-1 12 0 15 17 15h246z" /> - <glyph glyph-name="ion-trophy" unicode="&#xf356;" -d="M448 345c0 -25 2 -73 -22 -122c-15 -30 -36 -55 -63 -75c-23 -16 -49 -28 -77 -35c-16 -17 -32 -27 -46 -31v-33s0 -49 99 -49h13v-32h-256v32h13c85 0 97 35 99 46v36c-14 4 -30 14 -46 31c-28 7 -55 19 -77 35c-27 20 -48 45 -63 75c-17 36 -21 71 -22 97v0v11v0v21v0 -h80c-2 35 0 64 0 64h143h1h1h142s2 -29 0 -64h81v-7zM51 237c17 -34 43 -61 77 -78c-22 40 -33 84 -42 135c-1 8 -2 17 -3 26h-51c1 -23 5 -53 19 -83zM397 237c14 30 18 60 19 83h-51c-1 -9 -3 -18 -4 -26c-9 -51 -20 -95 -42 -135c34 17 61 43 78 78z" /> - <glyph glyph-name="ion-tshirt-outline" unicode="&#xf4f6;" -d="M146 362l-104 -31l11 -32l39 4l38 5l-2 -38l-14 -255h220l-14 255l-2 38l38 -5l39 -4l11 32l-104 31c-6 -8 -13 -14 -21 -19c-15 -10 -34 -15 -57 -15v0v0c-34 1 -59 11 -78 34zM288 400v0l160 -48l-32 -88l-64 8l16 -289h-288l16 289l-64 -8l-32 88l160 48 -c14 -27 31 -39 64 -40c33 0 50 13 64 40z" /> - <glyph glyph-name="ion-tshirt" unicode="&#xf4f7;" -d="M448 352l-32 -88l-64 8l16 -288h-288l16 288l-64 -8l-32 88l160 48c14 -27 31 -39 64 -40c33 0 50 13 64 40z" /> - <glyph glyph-name="ion-umbrella" unicode="&#xf2b7;" -d="M344 160v0v0v0zM104 160v0v0v0zM240 399c116 -8 208 -109 208 -227v-12c-4 25 -26 52 -52 52c-29 0 -52 -23 -52 -52v0c0 29 -23 52 -52 52s-49 -12 -52 -45v-135c0 -17 -6 -33 -18 -45s-29 -19 -46 -19c-35 0 -63 29 -63 64c0 9 7 16 16 16s16 -7 16 -16 -c0 -18 14 -32 31 -32c18 0 32 14 32 32v134c-1 24 -26 46 -52 46c-29 0 -52 -23 -52 -52v0c0 29 -23 52 -52 52c-27 0 -49 -26 -52 -52v18c0 118 92 213 208 221v1c0 9 7 16 16 16s16 -7 16 -16v-1z" /> - <glyph glyph-name="ion-university" unicode="&#xf357;" -d="M224 384l224 -111l-92 -60l-132 -85l-160 102v-198l-32 16v203l-32 21zM358 192l10 -82c-16 -12 -112 -78 -144 -110c-32 32 -128 98 -144 110l9 82l135 -88z" /> - <glyph glyph-name="ion-unlocked" unicode="&#xf254;" horiz-adv-x="384" -d="M22 -32c-12 0 -22 10 -22 22v212c0 12 10 22 22 22h3h19v31c0 42 17 87 43 115s64 46 105 46v0v0c41 0 79 -18 105 -46c20 -21 33 -51 39 -82h-53c-5 18 -13 35 -24 47v0v1c-18 19 -42 29 -67 29v0v0c-25 0 -49 -10 -67 -29v-1v0c-18 -19 -28 -53 -28 -80v-31h265 -c12 0 22 -10 22 -22v-212c0 -12 -10 -22 -22 -22h-340z" /> - <glyph glyph-name="ion-upload" unicode="&#xf255;" -d="M366 215c45 0 82 -37 82 -83s-37 -84 -82 -84h-110v80h48l-80 84l-80 -84h48v-80h-102c-49 0 -90 41 -90 91c0 40 26 74 61 86c5 29 29 51 59 51c10 0 18 -3 26 -7c19 40 59 67 105 67c64 0 115 -53 115 -118v-3z" /> - <glyph glyph-name="ion-usb" unicode="&#xf2b8;" horiz-adv-x="256" -d="M16 228v0v0zM256 320c0 -11 -6 -21 -14 -27v0c-2 -1 -3 -5 -3 -7c-1 -20 -3 -36 -9 -50c-7 -19 -20 -33 -39 -46c-17 -12 -29 -21 -36 -34c-7 -12 -11 -28 -11 -53v-24c0 -7 2 -13 10 -18c4 -2 7 -6 10 -9c8 -9 14 -21 14 -34c0 -28 -22 -50 -50 -50s-50 22 -50 50v1v0 -c0 18 10 33 24 42c5 4 9 5 9 18v0c0 14 -3 17 -10 27s-18 17 -32 26c-19 13 -33 27 -40 46c-6 15 -8 31 -9 39s-2 9 -4 11c-10 6 -16 16 -16 28c0 18 14 32 32 32s32 -14 32 -32c0 -10 -4 -20 -12 -26c-3 -2 -4 -11 -4 -14v0v0c0 -9 3 -18 7 -28c10 -21 45 -44 52 -44 -s8 5 8 12v196s-1 2 -3 4h-1v1v0c-9 6 -15 16 -15 27c0 18 14 32 32 32s32 -14 32 -32c0 -11 -5 -21 -14 -27v0c-2 -2 -2 -3 -2 -5v-140c0 -10 2 -12 8 -11c13 3 48 30 52 43c3 10 6 23 7 41v1c0 2 -2 4 -3 6c-10 6 -16 16 -16 28c0 18 14 32 32 32s32 -14 32 -32zM32 240 -c9 0 16 7 16 16s-7 16 -16 16s-16 -7 -16 -16s7 -16 16 -16zM128 368c9 0 16 7 16 16s-7 16 -16 16s-16 -7 -16 -16s7 -16 16 -16zM224 304c9 0 16 7 16 16s-7 16 -16 16s-16 -7 -16 -16s7 -16 16 -16z" /> - <glyph glyph-name="ion-videocamera" unicode="&#xf256;" -d="M335 263v-66l113 35v-89v-88l-113 35v-65c0 -5 -4 -9 -9 -9h-317c-5 0 -9 4 -9 9v12v55v171c0 5 4 9 9 9h208v38c0 4 -6 10 -10 10h-176v48h178c36 0 65 -29 65 -64v-32h52c5 0 9 -4 9 -9zM226 107c20 0 36 16 36 36s-16 35 -36 35s-36 -15 -36 -35c0 -10 4 -19 11 -26 -h-68c7 7 11 16 11 26c0 20 -16 36 -36 36s-36 -16 -36 -36s16 -36 36 -36h12h95h11z" /> - <glyph glyph-name="ion-volume-high" unicode="&#xf257;" -d="M199 40l-95 88h-104v128h104l95 88v-304zM255 92l-20 16c17 24 27 52 27 84s-10 60 -27 84l20 16c20 -28 33 -63 33 -100s-13 -72 -33 -100zM322 46l-21 16c27 36 43 81 43 130s-16 94 -43 130l21 16c30 -41 48 -91 48 -146s-18 -105 -48 -146zM365 369l20 15 -c39 -54 63 -120 63 -192s-24 -138 -63 -192l-20 15c36 49 58 111 58 177s-22 128 -58 177z" /> - <glyph glyph-name="ion-volume-low" unicode="&#xf258;" horiz-adv-x="288" -d="M199 40l-95 88h-104v128h104l95 88v-304zM255 92l-20 16c17 24 28 52 28 84s-11 60 -28 84l20 16c20 -28 33 -63 33 -100s-13 -72 -33 -100z" /> - <glyph glyph-name="ion-volume-medium" unicode="&#xf259;" horiz-adv-x="370" -d="M199 40l-95 88h-104v128h104l95 88v-304zM255 92l-20 16c17 24 28 52 28 84s-11 60 -28 84l20 16c20 -28 33 -63 33 -100s-13 -72 -33 -100zM322 46l-21 16c27 36 43 81 43 130s-16 94 -43 130l21 16c30 -41 48 -91 48 -146s-18 -105 -48 -146z" /> - <glyph glyph-name="ion-volume-mute" unicode="&#xf25a;" -d="M224 231l47 51v-180l-47 51h-65v78h65zM332 388c69 -38 116 -112 116 -196c0 -124 -100 -224 -224 -224c-39 0 -76 10 -108 27l-1 1c-69 38 -115 112 -115 196c0 124 100 224 224 224c39 0 75 -10 107 -28h1zM362 93c20 28 33 62 33 99c0 66 -38 123 -92 151 -c-6 3 -11 6 -17 8c-19 7 -40 11 -62 11c-37 0 -71 -12 -99 -32l73 -74h-76l-36 35c-20 -28 -32 -62 -32 -99c0 -65 36 -121 90 -150c6 -3 13 -7 19 -9c19 -7 39 -11 61 -11c37 0 72 12 100 32l-20 20v77z" /> - <glyph glyph-name="ion-wand" unicode="&#xf358;" -d="M192 208l48 48l48 -48l-48 -48zM0 16l176 176l48 -48l-176 -176zM224 352v64h32v-64h-32zM398 344l-45 -45l-23 22l46 45zM127 299l-45 45l22 22l45 -45zM376 50l-46 45l23 23l45 -46zM384 192v32h64v-32h-64z" /> - <glyph glyph-name="ion-waterdrop" unicode="&#xf25b;" horiz-adv-x="320" -d="M175 409c40 -41 145 -160 145 -288c0 -85 -72 -153 -160 -153c-56 0 -106 27 -134 69c-6 9 -11 19 -15 29c-7 17 -11 35 -11 55v4c1 67 31 131 64 183c20 31 42 57 59 77c9 10 16 18 22 24l1 1v0c4 3 8 6 14 6c5 0 10 -3 14 -6v0zM160 24c55 0 100 45 100 100 -c0 14 -3 28 -8 40c-17 -65 -70 -116 -136 -130c13 -6 28 -10 44 -10z" /> - <glyph glyph-name="ion-wifi" unicode="&#xf25c;" -d="M224 352c80 0 156 -30 214 -84l10 -10l-10 -9l-32 -32l-10 -10l-9 9c-44 41 -103 64 -163 64s-119 -23 -163 -64l-9 -9l-10 10l-32 32l-10 9l10 10c58 54 134 84 214 84v0zM365 192l11 -10l-10 -10l-33 -32l-9 -9l-10 8c-25 22 -57 35 -90 35s-65 -13 -90 -35l-10 -8 -l-9 9l-33 32l-10 10l11 10c37 33 83 52 132 54v0h9v0v0c52 0 102 -19 141 -54zM224 32l-10 10l-52 52l-11 10l12 10c17 11 32 20 61 20s47 -9 62 -20l11 -10l-10 -10l-53 -52z" /> - <glyph glyph-name="ion-wineglass" unicode="&#xf2b9;" horiz-adv-x="256" -d="M167 153c-11 -4 -24 -8 -24 -32v-94c0 -11 4 -19 12 -25c3 -2 7 -4 15 -6c32 -9 48 -16 50 -18c2 -1 4 -3 4 -7c0 0 -14 -3 -96 -3s-96 3 -96 3c0 4 2 6 4 7c2 2 18 9 50 18c8 2 11 4 14 6c8 6 11 14 11 25v94c0 24 -11 28 -22 32s-18 6 -26 11c-12 7 -23 16 -32 26 -c-20 23 -31 52 -31 87c0 50 4 100 8 114s14 25 31 25h178c17 0 27 -11 31 -25s8 -65 8 -115c0 -35 -11 -63 -31 -86c-9 -10 -20 -19 -32 -26c-8 -5 -15 -7 -26 -11zM128 178c26 0 50 11 67 28l6 6c16 18 22 35 23 65s-2 83 -8 107h-177c-7 -35 -8 -80 -7 -108s7 -46 23 -64 -c2 -3 4 -6 7 -8c17 -16 41 -26 66 -26zM208 277c0 -10 -1 -20 -4 -29s-8 -18 -15 -25l-5 -5c-14 -14 -34 -23 -56 -23c-21 0 -41 8 -55 22l-6 6c-7 7 -12 16 -15 25s-3 15 -4 29c-1 9 0 34 1 53c1 10 2 19 3 22h153c1 -6 2 -14 2 -22c1 -21 1 -45 1 -53zM192 269v0v26 -c0 4 -4 8 -8 8s-8 -4 -8 -8v-26c0 -3 1 -6 3 -7c1 -1 3 -1 5 -1c4 0 8 3 8 8zM191 316c1 2 1 4 1 6s-2 4 -4 5s-4 1 -6 1s-4 -1 -5 -3s-1 -4 -1 -6s2 -4 4 -5s4 -1 6 -1s4 1 5 3z" /> - <glyph glyph-name="ion-woman" unicode="&#xf25d;" horiz-adv-x="192" -d="M30 299c3 12 17 33 42 34h48c24 -1 38 -22 42 -34l29 -104c6 -23 -21 -32 -27 -10l-26 96h-9l46 -169h-43v-127c0 -23 -31 -23 -31 0v127h-10v-127c0 -23 -32 -23 -32 0v127h-42l45 169h-7l-27 -96c-7 -21 -33 -13 -27 10zM133 379c0 -21 -17 -37 -37 -37s-37 16 -37 37 -s17 37 37 37s37 -16 37 -37z" /> - <glyph glyph-name="ion-wrench" unicode="&#xf2ba;" -d="M430 333c14 -14 19 -31 18 -44s-6 -39 -32 -65s-77 -42 -113 -24c-5 3 -13 5 -21 -3c-10 -9 -202 -215 -202 -215c-17 -19 -48 -18 -66 0s-19 49 0 66c0 0 207 194 215 202s5 16 3 22c-20 47 2 89 24 112c22 24 51 31 65 32c13 1 31 -5 44 -18l-57 -56l10 -56l55 -10z -M59 5c6 6 6 17 0 23s-16 6 -22 0s-6 -17 0 -23s16 -6 22 0z" /> - <glyph glyph-name="ion-xbox" unicode="&#xf30c;" -d="M95 200c-49 -72 -50 -139 -50 -143c-28 38 -45 84 -45 135c0 67 30 128 77 169l3 -1c51 -18 93 -68 93 -68s-38 -33 -78 -92zM448 192c0 -51 -17 -97 -45 -135c0 4 -1 71 -50 143c-40 59 -78 92 -78 92s42 50 93 68l3 1c47 -41 77 -102 77 -169zM169 367 -c-37 17 -65 12 -72 10c36 25 80 39 127 39s91 -14 127 -39c-7 2 -35 6 -72 -10c-29 -13 -55 -35 -55 -35s-26 22 -55 35zM327 155c40 -49 54 -85 62 -108l2 -5c-41 -46 -101 -74 -167 -74s-126 28 -167 74l1 5c8 23 23 59 63 108c46 57 103 94 103 94s57 -37 103 -94z" /> - </font> -</defs></svg> diff --git a/admin/bower_components/Ionicons/fonts/ionicons.ttf b/admin/bower_components/Ionicons/fonts/ionicons.ttf deleted file mode 100644 index c4e4632..0000000 Binary files a/admin/bower_components/Ionicons/fonts/ionicons.ttf and /dev/null differ diff --git a/admin/bower_components/Ionicons/fonts/ionicons.woff b/admin/bower_components/Ionicons/fonts/ionicons.woff deleted file mode 100644 index 5f3a14e..0000000 Binary files a/admin/bower_components/Ionicons/fonts/ionicons.woff and /dev/null differ diff --git a/admin/bower_components/Ionicons/less/_ionicons-font.less b/admin/bower_components/Ionicons/less/_ionicons-font.less deleted file mode 100644 index 1d9bf7e..0000000 --- a/admin/bower_components/Ionicons/less/_ionicons-font.less +++ /dev/null @@ -1,27 +0,0 @@ -// Ionicons Font Path -// -------------------------- - -@font-face { - font-family: @ionicons-font-family; - src:url("@{ionicons-font-path}/ionicons.eot?v=@{ionicons-version}"); - src:url("@{ionicons-font-path}/ionicons.eot?v=@{ionicons-version}#iefix") format("embedded-opentype"), - url("@{ionicons-font-path}/ionicons.ttf?v=@{ionicons-version}") format("truetype"), - url("@{ionicons-font-path}/ionicons.woff?v=@{ionicons-version}") format("woff"), - url("@{ionicons-font-path}/ionicons.svg?v=@{ionicons-version}#Ionicons") format("svg"); - font-weight: normal; - font-style: normal; -} - -.ion { - display: inline-block; - font-family: @ionicons-font-family; - speak: none; - font-style: normal; - font-weight: normal; - font-variant: normal; - text-transform: none; - text-rendering: auto; - line-height: 1; - -webkit-font-smoothing: antialiased; - -moz-osx-font-smoothing: grayscale; -} \ No newline at end of file diff --git a/admin/bower_components/Ionicons/less/_ionicons-icons.less b/admin/bower_components/Ionicons/less/_ionicons-icons.less deleted file mode 100644 index 5e6052e..0000000 --- a/admin/bower_components/Ionicons/less/_ionicons-icons.less +++ /dev/null @@ -1,1473 +0,0 @@ -// Ionicons Icons -// -------------------------- - -.ionicons, -.@{ionicons-prefix}alert:before, -.@{ionicons-prefix}alert-circled:before, -.@{ionicons-prefix}android-add:before, -.@{ionicons-prefix}android-add-circle:before, -.@{ionicons-prefix}android-alarm-clock:before, -.@{ionicons-prefix}android-alert:before, -.@{ionicons-prefix}android-apps:before, -.@{ionicons-prefix}android-archive:before, -.@{ionicons-prefix}android-arrow-back:before, -.@{ionicons-prefix}android-arrow-down:before, -.@{ionicons-prefix}android-arrow-dropdown:before, -.@{ionicons-prefix}android-arrow-dropdown-circle:before, -.@{ionicons-prefix}android-arrow-dropleft:before, -.@{ionicons-prefix}android-arrow-dropleft-circle:before, -.@{ionicons-prefix}android-arrow-dropright:before, -.@{ionicons-prefix}android-arrow-dropright-circle:before, -.@{ionicons-prefix}android-arrow-dropup:before, -.@{ionicons-prefix}android-arrow-dropup-circle:before, -.@{ionicons-prefix}android-arrow-forward:before, -.@{ionicons-prefix}android-arrow-up:before, -.@{ionicons-prefix}android-attach:before, -.@{ionicons-prefix}android-bar:before, -.@{ionicons-prefix}android-bicycle:before, -.@{ionicons-prefix}android-boat:before, -.@{ionicons-prefix}android-bookmark:before, -.@{ionicons-prefix}android-bulb:before, -.@{ionicons-prefix}android-bus:before, -.@{ionicons-prefix}android-calendar:before, -.@{ionicons-prefix}android-call:before, -.@{ionicons-prefix}android-camera:before, -.@{ionicons-prefix}android-cancel:before, -.@{ionicons-prefix}android-car:before, -.@{ionicons-prefix}android-cart:before, -.@{ionicons-prefix}android-chat:before, -.@{ionicons-prefix}android-checkbox:before, -.@{ionicons-prefix}android-checkbox-blank:before, -.@{ionicons-prefix}android-checkbox-outline:before, -.@{ionicons-prefix}android-checkbox-outline-blank:before, -.@{ionicons-prefix}android-checkmark-circle:before, -.@{ionicons-prefix}android-clipboard:before, -.@{ionicons-prefix}android-close:before, -.@{ionicons-prefix}android-cloud:before, -.@{ionicons-prefix}android-cloud-circle:before, -.@{ionicons-prefix}android-cloud-done:before, -.@{ionicons-prefix}android-cloud-outline:before, -.@{ionicons-prefix}android-color-palette:before, -.@{ionicons-prefix}android-compass:before, -.@{ionicons-prefix}android-contact:before, -.@{ionicons-prefix}android-contacts:before, -.@{ionicons-prefix}android-contract:before, -.@{ionicons-prefix}android-create:before, -.@{ionicons-prefix}android-delete:before, -.@{ionicons-prefix}android-desktop:before, -.@{ionicons-prefix}android-document:before, -.@{ionicons-prefix}android-done:before, -.@{ionicons-prefix}android-done-all:before, -.@{ionicons-prefix}android-download:before, -.@{ionicons-prefix}android-drafts:before, -.@{ionicons-prefix}android-exit:before, -.@{ionicons-prefix}android-expand:before, -.@{ionicons-prefix}android-favorite:before, -.@{ionicons-prefix}android-favorite-outline:before, -.@{ionicons-prefix}android-film:before, -.@{ionicons-prefix}android-folder:before, -.@{ionicons-prefix}android-folder-open:before, -.@{ionicons-prefix}android-funnel:before, -.@{ionicons-prefix}android-globe:before, -.@{ionicons-prefix}android-hand:before, -.@{ionicons-prefix}android-hangout:before, -.@{ionicons-prefix}android-happy:before, -.@{ionicons-prefix}android-home:before, -.@{ionicons-prefix}android-image:before, -.@{ionicons-prefix}android-laptop:before, -.@{ionicons-prefix}android-list:before, -.@{ionicons-prefix}android-locate:before, -.@{ionicons-prefix}android-lock:before, -.@{ionicons-prefix}android-mail:before, -.@{ionicons-prefix}android-map:before, -.@{ionicons-prefix}android-menu:before, -.@{ionicons-prefix}android-microphone:before, -.@{ionicons-prefix}android-microphone-off:before, -.@{ionicons-prefix}android-more-horizontal:before, -.@{ionicons-prefix}android-more-vertical:before, -.@{ionicons-prefix}android-navigate:before, -.@{ionicons-prefix}android-notifications:before, -.@{ionicons-prefix}android-notifications-none:before, -.@{ionicons-prefix}android-notifications-off:before, -.@{ionicons-prefix}android-open:before, -.@{ionicons-prefix}android-options:before, -.@{ionicons-prefix}android-people:before, -.@{ionicons-prefix}android-person:before, -.@{ionicons-prefix}android-person-add:before, -.@{ionicons-prefix}android-phone-landscape:before, -.@{ionicons-prefix}android-phone-portrait:before, -.@{ionicons-prefix}android-pin:before, -.@{ionicons-prefix}android-plane:before, -.@{ionicons-prefix}android-playstore:before, -.@{ionicons-prefix}android-print:before, -.@{ionicons-prefix}android-radio-button-off:before, -.@{ionicons-prefix}android-radio-button-on:before, -.@{ionicons-prefix}android-refresh:before, -.@{ionicons-prefix}android-remove:before, -.@{ionicons-prefix}android-remove-circle:before, -.@{ionicons-prefix}android-restaurant:before, -.@{ionicons-prefix}android-sad:before, -.@{ionicons-prefix}android-search:before, -.@{ionicons-prefix}android-send:before, -.@{ionicons-prefix}android-settings:before, -.@{ionicons-prefix}android-share:before, -.@{ionicons-prefix}android-share-alt:before, -.@{ionicons-prefix}android-star:before, -.@{ionicons-prefix}android-star-half:before, -.@{ionicons-prefix}android-star-outline:before, -.@{ionicons-prefix}android-stopwatch:before, -.@{ionicons-prefix}android-subway:before, -.@{ionicons-prefix}android-sunny:before, -.@{ionicons-prefix}android-sync:before, -.@{ionicons-prefix}android-textsms:before, -.@{ionicons-prefix}android-time:before, -.@{ionicons-prefix}android-train:before, -.@{ionicons-prefix}android-unlock:before, -.@{ionicons-prefix}android-upload:before, -.@{ionicons-prefix}android-volume-down:before, -.@{ionicons-prefix}android-volume-mute:before, -.@{ionicons-prefix}android-volume-off:before, -.@{ionicons-prefix}android-volume-up:before, -.@{ionicons-prefix}android-walk:before, -.@{ionicons-prefix}android-warning:before, -.@{ionicons-prefix}android-watch:before, -.@{ionicons-prefix}android-wifi:before, -.@{ionicons-prefix}aperture:before, -.@{ionicons-prefix}archive:before, -.@{ionicons-prefix}arrow-down-a:before, -.@{ionicons-prefix}arrow-down-b:before, -.@{ionicons-prefix}arrow-down-c:before, -.@{ionicons-prefix}arrow-expand:before, -.@{ionicons-prefix}arrow-graph-down-left:before, -.@{ionicons-prefix}arrow-graph-down-right:before, -.@{ionicons-prefix}arrow-graph-up-left:before, -.@{ionicons-prefix}arrow-graph-up-right:before, -.@{ionicons-prefix}arrow-left-a:before, -.@{ionicons-prefix}arrow-left-b:before, -.@{ionicons-prefix}arrow-left-c:before, -.@{ionicons-prefix}arrow-move:before, -.@{ionicons-prefix}arrow-resize:before, -.@{ionicons-prefix}arrow-return-left:before, -.@{ionicons-prefix}arrow-return-right:before, -.@{ionicons-prefix}arrow-right-a:before, -.@{ionicons-prefix}arrow-right-b:before, -.@{ionicons-prefix}arrow-right-c:before, -.@{ionicons-prefix}arrow-shrink:before, -.@{ionicons-prefix}arrow-swap:before, -.@{ionicons-prefix}arrow-up-a:before, -.@{ionicons-prefix}arrow-up-b:before, -.@{ionicons-prefix}arrow-up-c:before, -.@{ionicons-prefix}asterisk:before, -.@{ionicons-prefix}at:before, -.@{ionicons-prefix}backspace:before, -.@{ionicons-prefix}backspace-outline:before, -.@{ionicons-prefix}bag:before, -.@{ionicons-prefix}battery-charging:before, -.@{ionicons-prefix}battery-empty:before, -.@{ionicons-prefix}battery-full:before, -.@{ionicons-prefix}battery-half:before, -.@{ionicons-prefix}battery-low:before, -.@{ionicons-prefix}beaker:before, -.@{ionicons-prefix}beer:before, -.@{ionicons-prefix}bluetooth:before, -.@{ionicons-prefix}bonfire:before, -.@{ionicons-prefix}bookmark:before, -.@{ionicons-prefix}bowtie:before, -.@{ionicons-prefix}briefcase:before, -.@{ionicons-prefix}bug:before, -.@{ionicons-prefix}calculator:before, -.@{ionicons-prefix}calendar:before, -.@{ionicons-prefix}camera:before, -.@{ionicons-prefix}card:before, -.@{ionicons-prefix}cash:before, -.@{ionicons-prefix}chatbox:before, -.@{ionicons-prefix}chatbox-working:before, -.@{ionicons-prefix}chatboxes:before, -.@{ionicons-prefix}chatbubble:before, -.@{ionicons-prefix}chatbubble-working:before, -.@{ionicons-prefix}chatbubbles:before, -.@{ionicons-prefix}checkmark:before, -.@{ionicons-prefix}checkmark-circled:before, -.@{ionicons-prefix}checkmark-round:before, -.@{ionicons-prefix}chevron-down:before, -.@{ionicons-prefix}chevron-left:before, -.@{ionicons-prefix}chevron-right:before, -.@{ionicons-prefix}chevron-up:before, -.@{ionicons-prefix}clipboard:before, -.@{ionicons-prefix}clock:before, -.@{ionicons-prefix}close:before, -.@{ionicons-prefix}close-circled:before, -.@{ionicons-prefix}close-round:before, -.@{ionicons-prefix}closed-captioning:before, -.@{ionicons-prefix}cloud:before, -.@{ionicons-prefix}code:before, -.@{ionicons-prefix}code-download:before, -.@{ionicons-prefix}code-working:before, -.@{ionicons-prefix}coffee:before, -.@{ionicons-prefix}compass:before, -.@{ionicons-prefix}compose:before, -.@{ionicons-prefix}connection-bars:before, -.@{ionicons-prefix}contrast:before, -.@{ionicons-prefix}crop:before, -.@{ionicons-prefix}cube:before, -.@{ionicons-prefix}disc:before, -.@{ionicons-prefix}document:before, -.@{ionicons-prefix}document-text:before, -.@{ionicons-prefix}drag:before, -.@{ionicons-prefix}earth:before, -.@{ionicons-prefix}easel:before, -.@{ionicons-prefix}edit:before, -.@{ionicons-prefix}egg:before, -.@{ionicons-prefix}eject:before, -.@{ionicons-prefix}email:before, -.@{ionicons-prefix}email-unread:before, -.@{ionicons-prefix}erlenmeyer-flask:before, -.@{ionicons-prefix}erlenmeyer-flask-bubbles:before, -.@{ionicons-prefix}eye:before, -.@{ionicons-prefix}eye-disabled:before, -.@{ionicons-prefix}female:before, -.@{ionicons-prefix}filing:before, -.@{ionicons-prefix}film-marker:before, -.@{ionicons-prefix}fireball:before, -.@{ionicons-prefix}flag:before, -.@{ionicons-prefix}flame:before, -.@{ionicons-prefix}flash:before, -.@{ionicons-prefix}flash-off:before, -.@{ionicons-prefix}folder:before, -.@{ionicons-prefix}fork:before, -.@{ionicons-prefix}fork-repo:before, -.@{ionicons-prefix}forward:before, -.@{ionicons-prefix}funnel:before, -.@{ionicons-prefix}gear-a:before, -.@{ionicons-prefix}gear-b:before, -.@{ionicons-prefix}grid:before, -.@{ionicons-prefix}hammer:before, -.@{ionicons-prefix}happy:before, -.@{ionicons-prefix}happy-outline:before, -.@{ionicons-prefix}headphone:before, -.@{ionicons-prefix}heart:before, -.@{ionicons-prefix}heart-broken:before, -.@{ionicons-prefix}help:before, -.@{ionicons-prefix}help-buoy:before, -.@{ionicons-prefix}help-circled:before, -.@{ionicons-prefix}home:before, -.@{ionicons-prefix}icecream:before, -.@{ionicons-prefix}image:before, -.@{ionicons-prefix}images:before, -.@{ionicons-prefix}information:before, -.@{ionicons-prefix}information-circled:before, -.@{ionicons-prefix}ionic:before, -.@{ionicons-prefix}ios-alarm:before, -.@{ionicons-prefix}ios-alarm-outline:before, -.@{ionicons-prefix}ios-albums:before, -.@{ionicons-prefix}ios-albums-outline:before, -.@{ionicons-prefix}ios-americanfootball:before, -.@{ionicons-prefix}ios-americanfootball-outline:before, -.@{ionicons-prefix}ios-analytics:before, -.@{ionicons-prefix}ios-analytics-outline:before, -.@{ionicons-prefix}ios-arrow-back:before, -.@{ionicons-prefix}ios-arrow-down:before, -.@{ionicons-prefix}ios-arrow-forward:before, -.@{ionicons-prefix}ios-arrow-left:before, -.@{ionicons-prefix}ios-arrow-right:before, -.@{ionicons-prefix}ios-arrow-thin-down:before, -.@{ionicons-prefix}ios-arrow-thin-left:before, -.@{ionicons-prefix}ios-arrow-thin-right:before, -.@{ionicons-prefix}ios-arrow-thin-up:before, -.@{ionicons-prefix}ios-arrow-up:before, -.@{ionicons-prefix}ios-at:before, -.@{ionicons-prefix}ios-at-outline:before, -.@{ionicons-prefix}ios-barcode:before, -.@{ionicons-prefix}ios-barcode-outline:before, -.@{ionicons-prefix}ios-baseball:before, -.@{ionicons-prefix}ios-baseball-outline:before, -.@{ionicons-prefix}ios-basketball:before, -.@{ionicons-prefix}ios-basketball-outline:before, -.@{ionicons-prefix}ios-bell:before, -.@{ionicons-prefix}ios-bell-outline:before, -.@{ionicons-prefix}ios-body:before, -.@{ionicons-prefix}ios-body-outline:before, -.@{ionicons-prefix}ios-bolt:before, -.@{ionicons-prefix}ios-bolt-outline:before, -.@{ionicons-prefix}ios-book:before, -.@{ionicons-prefix}ios-book-outline:before, -.@{ionicons-prefix}ios-bookmarks:before, -.@{ionicons-prefix}ios-bookmarks-outline:before, -.@{ionicons-prefix}ios-box:before, -.@{ionicons-prefix}ios-box-outline:before, -.@{ionicons-prefix}ios-briefcase:before, -.@{ionicons-prefix}ios-briefcase-outline:before, -.@{ionicons-prefix}ios-browsers:before, -.@{ionicons-prefix}ios-browsers-outline:before, -.@{ionicons-prefix}ios-calculator:before, -.@{ionicons-prefix}ios-calculator-outline:before, -.@{ionicons-prefix}ios-calendar:before, -.@{ionicons-prefix}ios-calendar-outline:before, -.@{ionicons-prefix}ios-camera:before, -.@{ionicons-prefix}ios-camera-outline:before, -.@{ionicons-prefix}ios-cart:before, -.@{ionicons-prefix}ios-cart-outline:before, -.@{ionicons-prefix}ios-chatboxes:before, -.@{ionicons-prefix}ios-chatboxes-outline:before, -.@{ionicons-prefix}ios-chatbubble:before, -.@{ionicons-prefix}ios-chatbubble-outline:before, -.@{ionicons-prefix}ios-checkmark:before, -.@{ionicons-prefix}ios-checkmark-empty:before, -.@{ionicons-prefix}ios-checkmark-outline:before, -.@{ionicons-prefix}ios-circle-filled:before, -.@{ionicons-prefix}ios-circle-outline:before, -.@{ionicons-prefix}ios-clock:before, -.@{ionicons-prefix}ios-clock-outline:before, -.@{ionicons-prefix}ios-close:before, -.@{ionicons-prefix}ios-close-empty:before, -.@{ionicons-prefix}ios-close-outline:before, -.@{ionicons-prefix}ios-cloud:before, -.@{ionicons-prefix}ios-cloud-download:before, -.@{ionicons-prefix}ios-cloud-download-outline:before, -.@{ionicons-prefix}ios-cloud-outline:before, -.@{ionicons-prefix}ios-cloud-upload:before, -.@{ionicons-prefix}ios-cloud-upload-outline:before, -.@{ionicons-prefix}ios-cloudy:before, -.@{ionicons-prefix}ios-cloudy-night:before, -.@{ionicons-prefix}ios-cloudy-night-outline:before, -.@{ionicons-prefix}ios-cloudy-outline:before, -.@{ionicons-prefix}ios-cog:before, -.@{ionicons-prefix}ios-cog-outline:before, -.@{ionicons-prefix}ios-color-filter:before, -.@{ionicons-prefix}ios-color-filter-outline:before, -.@{ionicons-prefix}ios-color-wand:before, -.@{ionicons-prefix}ios-color-wand-outline:before, -.@{ionicons-prefix}ios-compose:before, -.@{ionicons-prefix}ios-compose-outline:before, -.@{ionicons-prefix}ios-contact:before, -.@{ionicons-prefix}ios-contact-outline:before, -.@{ionicons-prefix}ios-copy:before, -.@{ionicons-prefix}ios-copy-outline:before, -.@{ionicons-prefix}ios-crop:before, -.@{ionicons-prefix}ios-crop-strong:before, -.@{ionicons-prefix}ios-download:before, -.@{ionicons-prefix}ios-download-outline:before, -.@{ionicons-prefix}ios-drag:before, -.@{ionicons-prefix}ios-email:before, -.@{ionicons-prefix}ios-email-outline:before, -.@{ionicons-prefix}ios-eye:before, -.@{ionicons-prefix}ios-eye-outline:before, -.@{ionicons-prefix}ios-fastforward:before, -.@{ionicons-prefix}ios-fastforward-outline:before, -.@{ionicons-prefix}ios-filing:before, -.@{ionicons-prefix}ios-filing-outline:before, -.@{ionicons-prefix}ios-film:before, -.@{ionicons-prefix}ios-film-outline:before, -.@{ionicons-prefix}ios-flag:before, -.@{ionicons-prefix}ios-flag-outline:before, -.@{ionicons-prefix}ios-flame:before, -.@{ionicons-prefix}ios-flame-outline:before, -.@{ionicons-prefix}ios-flask:before, -.@{ionicons-prefix}ios-flask-outline:before, -.@{ionicons-prefix}ios-flower:before, -.@{ionicons-prefix}ios-flower-outline:before, -.@{ionicons-prefix}ios-folder:before, -.@{ionicons-prefix}ios-folder-outline:before, -.@{ionicons-prefix}ios-football:before, -.@{ionicons-prefix}ios-football-outline:before, -.@{ionicons-prefix}ios-game-controller-a:before, -.@{ionicons-prefix}ios-game-controller-a-outline:before, -.@{ionicons-prefix}ios-game-controller-b:before, -.@{ionicons-prefix}ios-game-controller-b-outline:before, -.@{ionicons-prefix}ios-gear:before, -.@{ionicons-prefix}ios-gear-outline:before, -.@{ionicons-prefix}ios-glasses:before, -.@{ionicons-prefix}ios-glasses-outline:before, -.@{ionicons-prefix}ios-grid-view:before, -.@{ionicons-prefix}ios-grid-view-outline:before, -.@{ionicons-prefix}ios-heart:before, -.@{ionicons-prefix}ios-heart-outline:before, -.@{ionicons-prefix}ios-help:before, -.@{ionicons-prefix}ios-help-empty:before, -.@{ionicons-prefix}ios-help-outline:before, -.@{ionicons-prefix}ios-home:before, -.@{ionicons-prefix}ios-home-outline:before, -.@{ionicons-prefix}ios-infinite:before, -.@{ionicons-prefix}ios-infinite-outline:before, -.@{ionicons-prefix}ios-information:before, -.@{ionicons-prefix}ios-information-empty:before, -.@{ionicons-prefix}ios-information-outline:before, -.@{ionicons-prefix}ios-ionic-outline:before, -.@{ionicons-prefix}ios-keypad:before, -.@{ionicons-prefix}ios-keypad-outline:before, -.@{ionicons-prefix}ios-lightbulb:before, -.@{ionicons-prefix}ios-lightbulb-outline:before, -.@{ionicons-prefix}ios-list:before, -.@{ionicons-prefix}ios-list-outline:before, -.@{ionicons-prefix}ios-location:before, -.@{ionicons-prefix}ios-location-outline:before, -.@{ionicons-prefix}ios-locked:before, -.@{ionicons-prefix}ios-locked-outline:before, -.@{ionicons-prefix}ios-loop:before, -.@{ionicons-prefix}ios-loop-strong:before, -.@{ionicons-prefix}ios-medical:before, -.@{ionicons-prefix}ios-medical-outline:before, -.@{ionicons-prefix}ios-medkit:before, -.@{ionicons-prefix}ios-medkit-outline:before, -.@{ionicons-prefix}ios-mic:before, -.@{ionicons-prefix}ios-mic-off:before, -.@{ionicons-prefix}ios-mic-outline:before, -.@{ionicons-prefix}ios-minus:before, -.@{ionicons-prefix}ios-minus-empty:before, -.@{ionicons-prefix}ios-minus-outline:before, -.@{ionicons-prefix}ios-monitor:before, -.@{ionicons-prefix}ios-monitor-outline:before, -.@{ionicons-prefix}ios-moon:before, -.@{ionicons-prefix}ios-moon-outline:before, -.@{ionicons-prefix}ios-more:before, -.@{ionicons-prefix}ios-more-outline:before, -.@{ionicons-prefix}ios-musical-note:before, -.@{ionicons-prefix}ios-musical-notes:before, -.@{ionicons-prefix}ios-navigate:before, -.@{ionicons-prefix}ios-navigate-outline:before, -.@{ionicons-prefix}ios-nutrition:before, -.@{ionicons-prefix}ios-nutrition-outline:before, -.@{ionicons-prefix}ios-paper:before, -.@{ionicons-prefix}ios-paper-outline:before, -.@{ionicons-prefix}ios-paperplane:before, -.@{ionicons-prefix}ios-paperplane-outline:before, -.@{ionicons-prefix}ios-partlysunny:before, -.@{ionicons-prefix}ios-partlysunny-outline:before, -.@{ionicons-prefix}ios-pause:before, -.@{ionicons-prefix}ios-pause-outline:before, -.@{ionicons-prefix}ios-paw:before, -.@{ionicons-prefix}ios-paw-outline:before, -.@{ionicons-prefix}ios-people:before, -.@{ionicons-prefix}ios-people-outline:before, -.@{ionicons-prefix}ios-person:before, -.@{ionicons-prefix}ios-person-outline:before, -.@{ionicons-prefix}ios-personadd:before, -.@{ionicons-prefix}ios-personadd-outline:before, -.@{ionicons-prefix}ios-photos:before, -.@{ionicons-prefix}ios-photos-outline:before, -.@{ionicons-prefix}ios-pie:before, -.@{ionicons-prefix}ios-pie-outline:before, -.@{ionicons-prefix}ios-pint:before, -.@{ionicons-prefix}ios-pint-outline:before, -.@{ionicons-prefix}ios-play:before, -.@{ionicons-prefix}ios-play-outline:before, -.@{ionicons-prefix}ios-plus:before, -.@{ionicons-prefix}ios-plus-empty:before, -.@{ionicons-prefix}ios-plus-outline:before, -.@{ionicons-prefix}ios-pricetag:before, -.@{ionicons-prefix}ios-pricetag-outline:before, -.@{ionicons-prefix}ios-pricetags:before, -.@{ionicons-prefix}ios-pricetags-outline:before, -.@{ionicons-prefix}ios-printer:before, -.@{ionicons-prefix}ios-printer-outline:before, -.@{ionicons-prefix}ios-pulse:before, -.@{ionicons-prefix}ios-pulse-strong:before, -.@{ionicons-prefix}ios-rainy:before, -.@{ionicons-prefix}ios-rainy-outline:before, -.@{ionicons-prefix}ios-recording:before, -.@{ionicons-prefix}ios-recording-outline:before, -.@{ionicons-prefix}ios-redo:before, -.@{ionicons-prefix}ios-redo-outline:before, -.@{ionicons-prefix}ios-refresh:before, -.@{ionicons-prefix}ios-refresh-empty:before, -.@{ionicons-prefix}ios-refresh-outline:before, -.@{ionicons-prefix}ios-reload:before, -.@{ionicons-prefix}ios-reverse-camera:before, -.@{ionicons-prefix}ios-reverse-camera-outline:before, -.@{ionicons-prefix}ios-rewind:before, -.@{ionicons-prefix}ios-rewind-outline:before, -.@{ionicons-prefix}ios-rose:before, -.@{ionicons-prefix}ios-rose-outline:before, -.@{ionicons-prefix}ios-search:before, -.@{ionicons-prefix}ios-search-strong:before, -.@{ionicons-prefix}ios-settings:before, -.@{ionicons-prefix}ios-settings-strong:before, -.@{ionicons-prefix}ios-shuffle:before, -.@{ionicons-prefix}ios-shuffle-strong:before, -.@{ionicons-prefix}ios-skipbackward:before, -.@{ionicons-prefix}ios-skipbackward-outline:before, -.@{ionicons-prefix}ios-skipforward:before, -.@{ionicons-prefix}ios-skipforward-outline:before, -.@{ionicons-prefix}ios-snowy:before, -.@{ionicons-prefix}ios-speedometer:before, -.@{ionicons-prefix}ios-speedometer-outline:before, -.@{ionicons-prefix}ios-star:before, -.@{ionicons-prefix}ios-star-half:before, -.@{ionicons-prefix}ios-star-outline:before, -.@{ionicons-prefix}ios-stopwatch:before, -.@{ionicons-prefix}ios-stopwatch-outline:before, -.@{ionicons-prefix}ios-sunny:before, -.@{ionicons-prefix}ios-sunny-outline:before, -.@{ionicons-prefix}ios-telephone:before, -.@{ionicons-prefix}ios-telephone-outline:before, -.@{ionicons-prefix}ios-tennisball:before, -.@{ionicons-prefix}ios-tennisball-outline:before, -.@{ionicons-prefix}ios-thunderstorm:before, -.@{ionicons-prefix}ios-thunderstorm-outline:before, -.@{ionicons-prefix}ios-time:before, -.@{ionicons-prefix}ios-time-outline:before, -.@{ionicons-prefix}ios-timer:before, -.@{ionicons-prefix}ios-timer-outline:before, -.@{ionicons-prefix}ios-toggle:before, -.@{ionicons-prefix}ios-toggle-outline:before, -.@{ionicons-prefix}ios-trash:before, -.@{ionicons-prefix}ios-trash-outline:before, -.@{ionicons-prefix}ios-undo:before, -.@{ionicons-prefix}ios-undo-outline:before, -.@{ionicons-prefix}ios-unlocked:before, -.@{ionicons-prefix}ios-unlocked-outline:before, -.@{ionicons-prefix}ios-upload:before, -.@{ionicons-prefix}ios-upload-outline:before, -.@{ionicons-prefix}ios-videocam:before, -.@{ionicons-prefix}ios-videocam-outline:before, -.@{ionicons-prefix}ios-volume-high:before, -.@{ionicons-prefix}ios-volume-low:before, -.@{ionicons-prefix}ios-wineglass:before, -.@{ionicons-prefix}ios-wineglass-outline:before, -.@{ionicons-prefix}ios-world:before, -.@{ionicons-prefix}ios-world-outline:before, -.@{ionicons-prefix}ipad:before, -.@{ionicons-prefix}iphone:before, -.@{ionicons-prefix}ipod:before, -.@{ionicons-prefix}jet:before, -.@{ionicons-prefix}key:before, -.@{ionicons-prefix}knife:before, -.@{ionicons-prefix}laptop:before, -.@{ionicons-prefix}leaf:before, -.@{ionicons-prefix}levels:before, -.@{ionicons-prefix}lightbulb:before, -.@{ionicons-prefix}link:before, -.@{ionicons-prefix}load-a:before, -.@{ionicons-prefix}load-b:before, -.@{ionicons-prefix}load-c:before, -.@{ionicons-prefix}load-d:before, -.@{ionicons-prefix}location:before, -.@{ionicons-prefix}lock-combination:before, -.@{ionicons-prefix}locked:before, -.@{ionicons-prefix}log-in:before, -.@{ionicons-prefix}log-out:before, -.@{ionicons-prefix}loop:before, -.@{ionicons-prefix}magnet:before, -.@{ionicons-prefix}male:before, -.@{ionicons-prefix}man:before, -.@{ionicons-prefix}map:before, -.@{ionicons-prefix}medkit:before, -.@{ionicons-prefix}merge:before, -.@{ionicons-prefix}mic-a:before, -.@{ionicons-prefix}mic-b:before, -.@{ionicons-prefix}mic-c:before, -.@{ionicons-prefix}minus:before, -.@{ionicons-prefix}minus-circled:before, -.@{ionicons-prefix}minus-round:before, -.@{ionicons-prefix}model-s:before, -.@{ionicons-prefix}monitor:before, -.@{ionicons-prefix}more:before, -.@{ionicons-prefix}mouse:before, -.@{ionicons-prefix}music-note:before, -.@{ionicons-prefix}navicon:before, -.@{ionicons-prefix}navicon-round:before, -.@{ionicons-prefix}navigate:before, -.@{ionicons-prefix}network:before, -.@{ionicons-prefix}no-smoking:before, -.@{ionicons-prefix}nuclear:before, -.@{ionicons-prefix}outlet:before, -.@{ionicons-prefix}paintbrush:before, -.@{ionicons-prefix}paintbucket:before, -.@{ionicons-prefix}paper-airplane:before, -.@{ionicons-prefix}paperclip:before, -.@{ionicons-prefix}pause:before, -.@{ionicons-prefix}person:before, -.@{ionicons-prefix}person-add:before, -.@{ionicons-prefix}person-stalker:before, -.@{ionicons-prefix}pie-graph:before, -.@{ionicons-prefix}pin:before, -.@{ionicons-prefix}pinpoint:before, -.@{ionicons-prefix}pizza:before, -.@{ionicons-prefix}plane:before, -.@{ionicons-prefix}planet:before, -.@{ionicons-prefix}play:before, -.@{ionicons-prefix}playstation:before, -.@{ionicons-prefix}plus:before, -.@{ionicons-prefix}plus-circled:before, -.@{ionicons-prefix}plus-round:before, -.@{ionicons-prefix}podium:before, -.@{ionicons-prefix}pound:before, -.@{ionicons-prefix}power:before, -.@{ionicons-prefix}pricetag:before, -.@{ionicons-prefix}pricetags:before, -.@{ionicons-prefix}printer:before, -.@{ionicons-prefix}pull-request:before, -.@{ionicons-prefix}qr-scanner:before, -.@{ionicons-prefix}quote:before, -.@{ionicons-prefix}radio-waves:before, -.@{ionicons-prefix}record:before, -.@{ionicons-prefix}refresh:before, -.@{ionicons-prefix}reply:before, -.@{ionicons-prefix}reply-all:before, -.@{ionicons-prefix}ribbon-a:before, -.@{ionicons-prefix}ribbon-b:before, -.@{ionicons-prefix}sad:before, -.@{ionicons-prefix}sad-outline:before, -.@{ionicons-prefix}scissors:before, -.@{ionicons-prefix}search:before, -.@{ionicons-prefix}settings:before, -.@{ionicons-prefix}share:before, -.@{ionicons-prefix}shuffle:before, -.@{ionicons-prefix}skip-backward:before, -.@{ionicons-prefix}skip-forward:before, -.@{ionicons-prefix}social-android:before, -.@{ionicons-prefix}social-android-outline:before, -.@{ionicons-prefix}social-angular:before, -.@{ionicons-prefix}social-angular-outline:before, -.@{ionicons-prefix}social-apple:before, -.@{ionicons-prefix}social-apple-outline:before, -.@{ionicons-prefix}social-bitcoin:before, -.@{ionicons-prefix}social-bitcoin-outline:before, -.@{ionicons-prefix}social-buffer:before, -.@{ionicons-prefix}social-buffer-outline:before, -.@{ionicons-prefix}social-chrome:before, -.@{ionicons-prefix}social-chrome-outline:before, -.@{ionicons-prefix}social-codepen:before, -.@{ionicons-prefix}social-codepen-outline:before, -.@{ionicons-prefix}social-css3:before, -.@{ionicons-prefix}social-css3-outline:before, -.@{ionicons-prefix}social-designernews:before, -.@{ionicons-prefix}social-designernews-outline:before, -.@{ionicons-prefix}social-dribbble:before, -.@{ionicons-prefix}social-dribbble-outline:before, -.@{ionicons-prefix}social-dropbox:before, -.@{ionicons-prefix}social-dropbox-outline:before, -.@{ionicons-prefix}social-euro:before, -.@{ionicons-prefix}social-euro-outline:before, -.@{ionicons-prefix}social-facebook:before, -.@{ionicons-prefix}social-facebook-outline:before, -.@{ionicons-prefix}social-foursquare:before, -.@{ionicons-prefix}social-foursquare-outline:before, -.@{ionicons-prefix}social-freebsd-devil:before, -.@{ionicons-prefix}social-github:before, -.@{ionicons-prefix}social-github-outline:before, -.@{ionicons-prefix}social-google:before, -.@{ionicons-prefix}social-google-outline:before, -.@{ionicons-prefix}social-googleplus:before, -.@{ionicons-prefix}social-googleplus-outline:before, -.@{ionicons-prefix}social-hackernews:before, -.@{ionicons-prefix}social-hackernews-outline:before, -.@{ionicons-prefix}social-html5:before, -.@{ionicons-prefix}social-html5-outline:before, -.@{ionicons-prefix}social-instagram:before, -.@{ionicons-prefix}social-instagram-outline:before, -.@{ionicons-prefix}social-javascript:before, -.@{ionicons-prefix}social-javascript-outline:before, -.@{ionicons-prefix}social-linkedin:before, -.@{ionicons-prefix}social-linkedin-outline:before, -.@{ionicons-prefix}social-markdown:before, -.@{ionicons-prefix}social-nodejs:before, -.@{ionicons-prefix}social-octocat:before, -.@{ionicons-prefix}social-pinterest:before, -.@{ionicons-prefix}social-pinterest-outline:before, -.@{ionicons-prefix}social-python:before, -.@{ionicons-prefix}social-reddit:before, -.@{ionicons-prefix}social-reddit-outline:before, -.@{ionicons-prefix}social-rss:before, -.@{ionicons-prefix}social-rss-outline:before, -.@{ionicons-prefix}social-sass:before, -.@{ionicons-prefix}social-skype:before, -.@{ionicons-prefix}social-skype-outline:before, -.@{ionicons-prefix}social-snapchat:before, -.@{ionicons-prefix}social-snapchat-outline:before, -.@{ionicons-prefix}social-tumblr:before, -.@{ionicons-prefix}social-tumblr-outline:before, -.@{ionicons-prefix}social-tux:before, -.@{ionicons-prefix}social-twitch:before, -.@{ionicons-prefix}social-twitch-outline:before, -.@{ionicons-prefix}social-twitter:before, -.@{ionicons-prefix}social-twitter-outline:before, -.@{ionicons-prefix}social-usd:before, -.@{ionicons-prefix}social-usd-outline:before, -.@{ionicons-prefix}social-vimeo:before, -.@{ionicons-prefix}social-vimeo-outline:before, -.@{ionicons-prefix}social-whatsapp:before, -.@{ionicons-prefix}social-whatsapp-outline:before, -.@{ionicons-prefix}social-windows:before, -.@{ionicons-prefix}social-windows-outline:before, -.@{ionicons-prefix}social-wordpress:before, -.@{ionicons-prefix}social-wordpress-outline:before, -.@{ionicons-prefix}social-yahoo:before, -.@{ionicons-prefix}social-yahoo-outline:before, -.@{ionicons-prefix}social-yen:before, -.@{ionicons-prefix}social-yen-outline:before, -.@{ionicons-prefix}social-youtube:before, -.@{ionicons-prefix}social-youtube-outline:before, -.@{ionicons-prefix}soup-can:before, -.@{ionicons-prefix}soup-can-outline:before, -.@{ionicons-prefix}speakerphone:before, -.@{ionicons-prefix}speedometer:before, -.@{ionicons-prefix}spoon:before, -.@{ionicons-prefix}star:before, -.@{ionicons-prefix}stats-bars:before, -.@{ionicons-prefix}steam:before, -.@{ionicons-prefix}stop:before, -.@{ionicons-prefix}thermometer:before, -.@{ionicons-prefix}thumbsdown:before, -.@{ionicons-prefix}thumbsup:before, -.@{ionicons-prefix}toggle:before, -.@{ionicons-prefix}toggle-filled:before, -.@{ionicons-prefix}transgender:before, -.@{ionicons-prefix}trash-a:before, -.@{ionicons-prefix}trash-b:before, -.@{ionicons-prefix}trophy:before, -.@{ionicons-prefix}tshirt:before, -.@{ionicons-prefix}tshirt-outline:before, -.@{ionicons-prefix}umbrella:before, -.@{ionicons-prefix}university:before, -.@{ionicons-prefix}unlocked:before, -.@{ionicons-prefix}upload:before, -.@{ionicons-prefix}usb:before, -.@{ionicons-prefix}videocamera:before, -.@{ionicons-prefix}volume-high:before, -.@{ionicons-prefix}volume-low:before, -.@{ionicons-prefix}volume-medium:before, -.@{ionicons-prefix}volume-mute:before, -.@{ionicons-prefix}wand:before, -.@{ionicons-prefix}waterdrop:before, -.@{ionicons-prefix}wifi:before, -.@{ionicons-prefix}wineglass:before, -.@{ionicons-prefix}woman:before, -.@{ionicons-prefix}wrench:before, -.@{ionicons-prefix}xbox:before -{ - &:extend(.ion); -} -.@{ionicons-prefix}alert:before { content: @ionicon-var-alert; } -.@{ionicons-prefix}alert-circled:before { content: @ionicon-var-alert-circled; } -.@{ionicons-prefix}android-add:before { content: @ionicon-var-android-add; } -.@{ionicons-prefix}android-add-circle:before { content: @ionicon-var-android-add-circle; } -.@{ionicons-prefix}android-alarm-clock:before { content: @ionicon-var-android-alarm-clock; } -.@{ionicons-prefix}android-alert:before { content: @ionicon-var-android-alert; } -.@{ionicons-prefix}android-apps:before { content: @ionicon-var-android-apps; } -.@{ionicons-prefix}android-archive:before { content: @ionicon-var-android-archive; } -.@{ionicons-prefix}android-arrow-back:before { content: @ionicon-var-android-arrow-back; } -.@{ionicons-prefix}android-arrow-down:before { content: @ionicon-var-android-arrow-down; } -.@{ionicons-prefix}android-arrow-dropdown:before { content: @ionicon-var-android-arrow-dropdown; } -.@{ionicons-prefix}android-arrow-dropdown-circle:before { content: @ionicon-var-android-arrow-dropdown-circle; } -.@{ionicons-prefix}android-arrow-dropleft:before { content: @ionicon-var-android-arrow-dropleft; } -.@{ionicons-prefix}android-arrow-dropleft-circle:before { content: @ionicon-var-android-arrow-dropleft-circle; } -.@{ionicons-prefix}android-arrow-dropright:before { content: @ionicon-var-android-arrow-dropright; } -.@{ionicons-prefix}android-arrow-dropright-circle:before { content: @ionicon-var-android-arrow-dropright-circle; } -.@{ionicons-prefix}android-arrow-dropup:before { content: @ionicon-var-android-arrow-dropup; } -.@{ionicons-prefix}android-arrow-dropup-circle:before { content: @ionicon-var-android-arrow-dropup-circle; } -.@{ionicons-prefix}android-arrow-forward:before { content: @ionicon-var-android-arrow-forward; } -.@{ionicons-prefix}android-arrow-up:before { content: @ionicon-var-android-arrow-up; } -.@{ionicons-prefix}android-attach:before { content: @ionicon-var-android-attach; } -.@{ionicons-prefix}android-bar:before { content: @ionicon-var-android-bar; } -.@{ionicons-prefix}android-bicycle:before { content: @ionicon-var-android-bicycle; } -.@{ionicons-prefix}android-boat:before { content: @ionicon-var-android-boat; } -.@{ionicons-prefix}android-bookmark:before { content: @ionicon-var-android-bookmark; } -.@{ionicons-prefix}android-bulb:before { content: @ionicon-var-android-bulb; } -.@{ionicons-prefix}android-bus:before { content: @ionicon-var-android-bus; } -.@{ionicons-prefix}android-calendar:before { content: @ionicon-var-android-calendar; } -.@{ionicons-prefix}android-call:before { content: @ionicon-var-android-call; } -.@{ionicons-prefix}android-camera:before { content: @ionicon-var-android-camera; } -.@{ionicons-prefix}android-cancel:before { content: @ionicon-var-android-cancel; } -.@{ionicons-prefix}android-car:before { content: @ionicon-var-android-car; } -.@{ionicons-prefix}android-cart:before { content: @ionicon-var-android-cart; } -.@{ionicons-prefix}android-chat:before { content: @ionicon-var-android-chat; } -.@{ionicons-prefix}android-checkbox:before { content: @ionicon-var-android-checkbox; } -.@{ionicons-prefix}android-checkbox-blank:before { content: @ionicon-var-android-checkbox-blank; } -.@{ionicons-prefix}android-checkbox-outline:before { content: @ionicon-var-android-checkbox-outline; } -.@{ionicons-prefix}android-checkbox-outline-blank:before { content: @ionicon-var-android-checkbox-outline-blank; } -.@{ionicons-prefix}android-checkmark-circle:before { content: @ionicon-var-android-checkmark-circle; } -.@{ionicons-prefix}android-clipboard:before { content: @ionicon-var-android-clipboard; } -.@{ionicons-prefix}android-close:before { content: @ionicon-var-android-close; } -.@{ionicons-prefix}android-cloud:before { content: @ionicon-var-android-cloud; } -.@{ionicons-prefix}android-cloud-circle:before { content: @ionicon-var-android-cloud-circle; } -.@{ionicons-prefix}android-cloud-done:before { content: @ionicon-var-android-cloud-done; } -.@{ionicons-prefix}android-cloud-outline:before { content: @ionicon-var-android-cloud-outline; } -.@{ionicons-prefix}android-color-palette:before { content: @ionicon-var-android-color-palette; } -.@{ionicons-prefix}android-compass:before { content: @ionicon-var-android-compass; } -.@{ionicons-prefix}android-contact:before { content: @ionicon-var-android-contact; } -.@{ionicons-prefix}android-contacts:before { content: @ionicon-var-android-contacts; } -.@{ionicons-prefix}android-contract:before { content: @ionicon-var-android-contract; } -.@{ionicons-prefix}android-create:before { content: @ionicon-var-android-create; } -.@{ionicons-prefix}android-delete:before { content: @ionicon-var-android-delete; } -.@{ionicons-prefix}android-desktop:before { content: @ionicon-var-android-desktop; } -.@{ionicons-prefix}android-document:before { content: @ionicon-var-android-document; } -.@{ionicons-prefix}android-done:before { content: @ionicon-var-android-done; } -.@{ionicons-prefix}android-done-all:before { content: @ionicon-var-android-done-all; } -.@{ionicons-prefix}android-download:before { content: @ionicon-var-android-download; } -.@{ionicons-prefix}android-drafts:before { content: @ionicon-var-android-drafts; } -.@{ionicons-prefix}android-exit:before { content: @ionicon-var-android-exit; } -.@{ionicons-prefix}android-expand:before { content: @ionicon-var-android-expand; } -.@{ionicons-prefix}android-favorite:before { content: @ionicon-var-android-favorite; } -.@{ionicons-prefix}android-favorite-outline:before { content: @ionicon-var-android-favorite-outline; } -.@{ionicons-prefix}android-film:before { content: @ionicon-var-android-film; } -.@{ionicons-prefix}android-folder:before { content: @ionicon-var-android-folder; } -.@{ionicons-prefix}android-folder-open:before { content: @ionicon-var-android-folder-open; } -.@{ionicons-prefix}android-funnel:before { content: @ionicon-var-android-funnel; } -.@{ionicons-prefix}android-globe:before { content: @ionicon-var-android-globe; } -.@{ionicons-prefix}android-hand:before { content: @ionicon-var-android-hand; } -.@{ionicons-prefix}android-hangout:before { content: @ionicon-var-android-hangout; } -.@{ionicons-prefix}android-happy:before { content: @ionicon-var-android-happy; } -.@{ionicons-prefix}android-home:before { content: @ionicon-var-android-home; } -.@{ionicons-prefix}android-image:before { content: @ionicon-var-android-image; } -.@{ionicons-prefix}android-laptop:before { content: @ionicon-var-android-laptop; } -.@{ionicons-prefix}android-list:before { content: @ionicon-var-android-list; } -.@{ionicons-prefix}android-locate:before { content: @ionicon-var-android-locate; } -.@{ionicons-prefix}android-lock:before { content: @ionicon-var-android-lock; } -.@{ionicons-prefix}android-mail:before { content: @ionicon-var-android-mail; } -.@{ionicons-prefix}android-map:before { content: @ionicon-var-android-map; } -.@{ionicons-prefix}android-menu:before { content: @ionicon-var-android-menu; } -.@{ionicons-prefix}android-microphone:before { content: @ionicon-var-android-microphone; } -.@{ionicons-prefix}android-microphone-off:before { content: @ionicon-var-android-microphone-off; } -.@{ionicons-prefix}android-more-horizontal:before { content: @ionicon-var-android-more-horizontal; } -.@{ionicons-prefix}android-more-vertical:before { content: @ionicon-var-android-more-vertical; } -.@{ionicons-prefix}android-navigate:before { content: @ionicon-var-android-navigate; } -.@{ionicons-prefix}android-notifications:before { content: @ionicon-var-android-notifications; } -.@{ionicons-prefix}android-notifications-none:before { content: @ionicon-var-android-notifications-none; } -.@{ionicons-prefix}android-notifications-off:before { content: @ionicon-var-android-notifications-off; } -.@{ionicons-prefix}android-open:before { content: @ionicon-var-android-open; } -.@{ionicons-prefix}android-options:before { content: @ionicon-var-android-options; } -.@{ionicons-prefix}android-people:before { content: @ionicon-var-android-people; } -.@{ionicons-prefix}android-person:before { content: @ionicon-var-android-person; } -.@{ionicons-prefix}android-person-add:before { content: @ionicon-var-android-person-add; } -.@{ionicons-prefix}android-phone-landscape:before { content: @ionicon-var-android-phone-landscape; } -.@{ionicons-prefix}android-phone-portrait:before { content: @ionicon-var-android-phone-portrait; } -.@{ionicons-prefix}android-pin:before { content: @ionicon-var-android-pin; } -.@{ionicons-prefix}android-plane:before { content: @ionicon-var-android-plane; } -.@{ionicons-prefix}android-playstore:before { content: @ionicon-var-android-playstore; } -.@{ionicons-prefix}android-print:before { content: @ionicon-var-android-print; } -.@{ionicons-prefix}android-radio-button-off:before { content: @ionicon-var-android-radio-button-off; } -.@{ionicons-prefix}android-radio-button-on:before { content: @ionicon-var-android-radio-button-on; } -.@{ionicons-prefix}android-refresh:before { content: @ionicon-var-android-refresh; } -.@{ionicons-prefix}android-remove:before { content: @ionicon-var-android-remove; } -.@{ionicons-prefix}android-remove-circle:before { content: @ionicon-var-android-remove-circle; } -.@{ionicons-prefix}android-restaurant:before { content: @ionicon-var-android-restaurant; } -.@{ionicons-prefix}android-sad:before { content: @ionicon-var-android-sad; } -.@{ionicons-prefix}android-search:before { content: @ionicon-var-android-search; } -.@{ionicons-prefix}android-send:before { content: @ionicon-var-android-send; } -.@{ionicons-prefix}android-settings:before { content: @ionicon-var-android-settings; } -.@{ionicons-prefix}android-share:before { content: @ionicon-var-android-share; } -.@{ionicons-prefix}android-share-alt:before { content: @ionicon-var-android-share-alt; } -.@{ionicons-prefix}android-star:before { content: @ionicon-var-android-star; } -.@{ionicons-prefix}android-star-half:before { content: @ionicon-var-android-star-half; } -.@{ionicons-prefix}android-star-outline:before { content: @ionicon-var-android-star-outline; } -.@{ionicons-prefix}android-stopwatch:before { content: @ionicon-var-android-stopwatch; } -.@{ionicons-prefix}android-subway:before { content: @ionicon-var-android-subway; } -.@{ionicons-prefix}android-sunny:before { content: @ionicon-var-android-sunny; } -.@{ionicons-prefix}android-sync:before { content: @ionicon-var-android-sync; } -.@{ionicons-prefix}android-textsms:before { content: @ionicon-var-android-textsms; } -.@{ionicons-prefix}android-time:before { content: @ionicon-var-android-time; } -.@{ionicons-prefix}android-train:before { content: @ionicon-var-android-train; } -.@{ionicons-prefix}android-unlock:before { content: @ionicon-var-android-unlock; } -.@{ionicons-prefix}android-upload:before { content: @ionicon-var-android-upload; } -.@{ionicons-prefix}android-volume-down:before { content: @ionicon-var-android-volume-down; } -.@{ionicons-prefix}android-volume-mute:before { content: @ionicon-var-android-volume-mute; } -.@{ionicons-prefix}android-volume-off:before { content: @ionicon-var-android-volume-off; } -.@{ionicons-prefix}android-volume-up:before { content: @ionicon-var-android-volume-up; } -.@{ionicons-prefix}android-walk:before { content: @ionicon-var-android-walk; } -.@{ionicons-prefix}android-warning:before { content: @ionicon-var-android-warning; } -.@{ionicons-prefix}android-watch:before { content: @ionicon-var-android-watch; } -.@{ionicons-prefix}android-wifi:before { content: @ionicon-var-android-wifi; } -.@{ionicons-prefix}aperture:before { content: @ionicon-var-aperture; } -.@{ionicons-prefix}archive:before { content: @ionicon-var-archive; } -.@{ionicons-prefix}arrow-down-a:before { content: @ionicon-var-arrow-down-a; } -.@{ionicons-prefix}arrow-down-b:before { content: @ionicon-var-arrow-down-b; } -.@{ionicons-prefix}arrow-down-c:before { content: @ionicon-var-arrow-down-c; } -.@{ionicons-prefix}arrow-expand:before { content: @ionicon-var-arrow-expand; } -.@{ionicons-prefix}arrow-graph-down-left:before { content: @ionicon-var-arrow-graph-down-left; } -.@{ionicons-prefix}arrow-graph-down-right:before { content: @ionicon-var-arrow-graph-down-right; } -.@{ionicons-prefix}arrow-graph-up-left:before { content: @ionicon-var-arrow-graph-up-left; } -.@{ionicons-prefix}arrow-graph-up-right:before { content: @ionicon-var-arrow-graph-up-right; } -.@{ionicons-prefix}arrow-left-a:before { content: @ionicon-var-arrow-left-a; } -.@{ionicons-prefix}arrow-left-b:before { content: @ionicon-var-arrow-left-b; } -.@{ionicons-prefix}arrow-left-c:before { content: @ionicon-var-arrow-left-c; } -.@{ionicons-prefix}arrow-move:before { content: @ionicon-var-arrow-move; } -.@{ionicons-prefix}arrow-resize:before { content: @ionicon-var-arrow-resize; } -.@{ionicons-prefix}arrow-return-left:before { content: @ionicon-var-arrow-return-left; } -.@{ionicons-prefix}arrow-return-right:before { content: @ionicon-var-arrow-return-right; } -.@{ionicons-prefix}arrow-right-a:before { content: @ionicon-var-arrow-right-a; } -.@{ionicons-prefix}arrow-right-b:before { content: @ionicon-var-arrow-right-b; } -.@{ionicons-prefix}arrow-right-c:before { content: @ionicon-var-arrow-right-c; } -.@{ionicons-prefix}arrow-shrink:before { content: @ionicon-var-arrow-shrink; } -.@{ionicons-prefix}arrow-swap:before { content: @ionicon-var-arrow-swap; } -.@{ionicons-prefix}arrow-up-a:before { content: @ionicon-var-arrow-up-a; } -.@{ionicons-prefix}arrow-up-b:before { content: @ionicon-var-arrow-up-b; } -.@{ionicons-prefix}arrow-up-c:before { content: @ionicon-var-arrow-up-c; } -.@{ionicons-prefix}asterisk:before { content: @ionicon-var-asterisk; } -.@{ionicons-prefix}at:before { content: @ionicon-var-at; } -.@{ionicons-prefix}backspace:before { content: @ionicon-var-backspace; } -.@{ionicons-prefix}backspace-outline:before { content: @ionicon-var-backspace-outline; } -.@{ionicons-prefix}bag:before { content: @ionicon-var-bag; } -.@{ionicons-prefix}battery-charging:before { content: @ionicon-var-battery-charging; } -.@{ionicons-prefix}battery-empty:before { content: @ionicon-var-battery-empty; } -.@{ionicons-prefix}battery-full:before { content: @ionicon-var-battery-full; } -.@{ionicons-prefix}battery-half:before { content: @ionicon-var-battery-half; } -.@{ionicons-prefix}battery-low:before { content: @ionicon-var-battery-low; } -.@{ionicons-prefix}beaker:before { content: @ionicon-var-beaker; } -.@{ionicons-prefix}beer:before { content: @ionicon-var-beer; } -.@{ionicons-prefix}bluetooth:before { content: @ionicon-var-bluetooth; } -.@{ionicons-prefix}bonfire:before { content: @ionicon-var-bonfire; } -.@{ionicons-prefix}bookmark:before { content: @ionicon-var-bookmark; } -.@{ionicons-prefix}bowtie:before { content: @ionicon-var-bowtie; } -.@{ionicons-prefix}briefcase:before { content: @ionicon-var-briefcase; } -.@{ionicons-prefix}bug:before { content: @ionicon-var-bug; } -.@{ionicons-prefix}calculator:before { content: @ionicon-var-calculator; } -.@{ionicons-prefix}calendar:before { content: @ionicon-var-calendar; } -.@{ionicons-prefix}camera:before { content: @ionicon-var-camera; } -.@{ionicons-prefix}card:before { content: @ionicon-var-card; } -.@{ionicons-prefix}cash:before { content: @ionicon-var-cash; } -.@{ionicons-prefix}chatbox:before { content: @ionicon-var-chatbox; } -.@{ionicons-prefix}chatbox-working:before { content: @ionicon-var-chatbox-working; } -.@{ionicons-prefix}chatboxes:before { content: @ionicon-var-chatboxes; } -.@{ionicons-prefix}chatbubble:before { content: @ionicon-var-chatbubble; } -.@{ionicons-prefix}chatbubble-working:before { content: @ionicon-var-chatbubble-working; } -.@{ionicons-prefix}chatbubbles:before { content: @ionicon-var-chatbubbles; } -.@{ionicons-prefix}checkmark:before { content: @ionicon-var-checkmark; } -.@{ionicons-prefix}checkmark-circled:before { content: @ionicon-var-checkmark-circled; } -.@{ionicons-prefix}checkmark-round:before { content: @ionicon-var-checkmark-round; } -.@{ionicons-prefix}chevron-down:before { content: @ionicon-var-chevron-down; } -.@{ionicons-prefix}chevron-left:before { content: @ionicon-var-chevron-left; } -.@{ionicons-prefix}chevron-right:before { content: @ionicon-var-chevron-right; } -.@{ionicons-prefix}chevron-up:before { content: @ionicon-var-chevron-up; } -.@{ionicons-prefix}clipboard:before { content: @ionicon-var-clipboard; } -.@{ionicons-prefix}clock:before { content: @ionicon-var-clock; } -.@{ionicons-prefix}close:before { content: @ionicon-var-close; } -.@{ionicons-prefix}close-circled:before { content: @ionicon-var-close-circled; } -.@{ionicons-prefix}close-round:before { content: @ionicon-var-close-round; } -.@{ionicons-prefix}closed-captioning:before { content: @ionicon-var-closed-captioning; } -.@{ionicons-prefix}cloud:before { content: @ionicon-var-cloud; } -.@{ionicons-prefix}code:before { content: @ionicon-var-code; } -.@{ionicons-prefix}code-download:before { content: @ionicon-var-code-download; } -.@{ionicons-prefix}code-working:before { content: @ionicon-var-code-working; } -.@{ionicons-prefix}coffee:before { content: @ionicon-var-coffee; } -.@{ionicons-prefix}compass:before { content: @ionicon-var-compass; } -.@{ionicons-prefix}compose:before { content: @ionicon-var-compose; } -.@{ionicons-prefix}connection-bars:before { content: @ionicon-var-connection-bars; } -.@{ionicons-prefix}contrast:before { content: @ionicon-var-contrast; } -.@{ionicons-prefix}crop:before { content: @ionicon-var-crop; } -.@{ionicons-prefix}cube:before { content: @ionicon-var-cube; } -.@{ionicons-prefix}disc:before { content: @ionicon-var-disc; } -.@{ionicons-prefix}document:before { content: @ionicon-var-document; } -.@{ionicons-prefix}document-text:before { content: @ionicon-var-document-text; } -.@{ionicons-prefix}drag:before { content: @ionicon-var-drag; } -.@{ionicons-prefix}earth:before { content: @ionicon-var-earth; } -.@{ionicons-prefix}easel:before { content: @ionicon-var-easel; } -.@{ionicons-prefix}edit:before { content: @ionicon-var-edit; } -.@{ionicons-prefix}egg:before { content: @ionicon-var-egg; } -.@{ionicons-prefix}eject:before { content: @ionicon-var-eject; } -.@{ionicons-prefix}email:before { content: @ionicon-var-email; } -.@{ionicons-prefix}email-unread:before { content: @ionicon-var-email-unread; } -.@{ionicons-prefix}erlenmeyer-flask:before { content: @ionicon-var-erlenmeyer-flask; } -.@{ionicons-prefix}erlenmeyer-flask-bubbles:before { content: @ionicon-var-erlenmeyer-flask-bubbles; } -.@{ionicons-prefix}eye:before { content: @ionicon-var-eye; } -.@{ionicons-prefix}eye-disabled:before { content: @ionicon-var-eye-disabled; } -.@{ionicons-prefix}female:before { content: @ionicon-var-female; } -.@{ionicons-prefix}filing:before { content: @ionicon-var-filing; } -.@{ionicons-prefix}film-marker:before { content: @ionicon-var-film-marker; } -.@{ionicons-prefix}fireball:before { content: @ionicon-var-fireball; } -.@{ionicons-prefix}flag:before { content: @ionicon-var-flag; } -.@{ionicons-prefix}flame:before { content: @ionicon-var-flame; } -.@{ionicons-prefix}flash:before { content: @ionicon-var-flash; } -.@{ionicons-prefix}flash-off:before { content: @ionicon-var-flash-off; } -.@{ionicons-prefix}folder:before { content: @ionicon-var-folder; } -.@{ionicons-prefix}fork:before { content: @ionicon-var-fork; } -.@{ionicons-prefix}fork-repo:before { content: @ionicon-var-fork-repo; } -.@{ionicons-prefix}forward:before { content: @ionicon-var-forward; } -.@{ionicons-prefix}funnel:before { content: @ionicon-var-funnel; } -.@{ionicons-prefix}gear-a:before { content: @ionicon-var-gear-a; } -.@{ionicons-prefix}gear-b:before { content: @ionicon-var-gear-b; } -.@{ionicons-prefix}grid:before { content: @ionicon-var-grid; } -.@{ionicons-prefix}hammer:before { content: @ionicon-var-hammer; } -.@{ionicons-prefix}happy:before { content: @ionicon-var-happy; } -.@{ionicons-prefix}happy-outline:before { content: @ionicon-var-happy-outline; } -.@{ionicons-prefix}headphone:before { content: @ionicon-var-headphone; } -.@{ionicons-prefix}heart:before { content: @ionicon-var-heart; } -.@{ionicons-prefix}heart-broken:before { content: @ionicon-var-heart-broken; } -.@{ionicons-prefix}help:before { content: @ionicon-var-help; } -.@{ionicons-prefix}help-buoy:before { content: @ionicon-var-help-buoy; } -.@{ionicons-prefix}help-circled:before { content: @ionicon-var-help-circled; } -.@{ionicons-prefix}home:before { content: @ionicon-var-home; } -.@{ionicons-prefix}icecream:before { content: @ionicon-var-icecream; } -.@{ionicons-prefix}image:before { content: @ionicon-var-image; } -.@{ionicons-prefix}images:before { content: @ionicon-var-images; } -.@{ionicons-prefix}information:before { content: @ionicon-var-information; } -.@{ionicons-prefix}information-circled:before { content: @ionicon-var-information-circled; } -.@{ionicons-prefix}ionic:before { content: @ionicon-var-ionic; } -.@{ionicons-prefix}ios-alarm:before { content: @ionicon-var-ios-alarm; } -.@{ionicons-prefix}ios-alarm-outline:before { content: @ionicon-var-ios-alarm-outline; } -.@{ionicons-prefix}ios-albums:before { content: @ionicon-var-ios-albums; } -.@{ionicons-prefix}ios-albums-outline:before { content: @ionicon-var-ios-albums-outline; } -.@{ionicons-prefix}ios-americanfootball:before { content: @ionicon-var-ios-americanfootball; } -.@{ionicons-prefix}ios-americanfootball-outline:before { content: @ionicon-var-ios-americanfootball-outline; } -.@{ionicons-prefix}ios-analytics:before { content: @ionicon-var-ios-analytics; } -.@{ionicons-prefix}ios-analytics-outline:before { content: @ionicon-var-ios-analytics-outline; } -.@{ionicons-prefix}ios-arrow-back:before { content: @ionicon-var-ios-arrow-back; } -.@{ionicons-prefix}ios-arrow-down:before { content: @ionicon-var-ios-arrow-down; } -.@{ionicons-prefix}ios-arrow-forward:before { content: @ionicon-var-ios-arrow-forward; } -.@{ionicons-prefix}ios-arrow-left:before { content: @ionicon-var-ios-arrow-left; } -.@{ionicons-prefix}ios-arrow-right:before { content: @ionicon-var-ios-arrow-right; } -.@{ionicons-prefix}ios-arrow-thin-down:before { content: @ionicon-var-ios-arrow-thin-down; } -.@{ionicons-prefix}ios-arrow-thin-left:before { content: @ionicon-var-ios-arrow-thin-left; } -.@{ionicons-prefix}ios-arrow-thin-right:before { content: @ionicon-var-ios-arrow-thin-right; } -.@{ionicons-prefix}ios-arrow-thin-up:before { content: @ionicon-var-ios-arrow-thin-up; } -.@{ionicons-prefix}ios-arrow-up:before { content: @ionicon-var-ios-arrow-up; } -.@{ionicons-prefix}ios-at:before { content: @ionicon-var-ios-at; } -.@{ionicons-prefix}ios-at-outline:before { content: @ionicon-var-ios-at-outline; } -.@{ionicons-prefix}ios-barcode:before { content: @ionicon-var-ios-barcode; } -.@{ionicons-prefix}ios-barcode-outline:before { content: @ionicon-var-ios-barcode-outline; } -.@{ionicons-prefix}ios-baseball:before { content: @ionicon-var-ios-baseball; } -.@{ionicons-prefix}ios-baseball-outline:before { content: @ionicon-var-ios-baseball-outline; } -.@{ionicons-prefix}ios-basketball:before { content: @ionicon-var-ios-basketball; } -.@{ionicons-prefix}ios-basketball-outline:before { content: @ionicon-var-ios-basketball-outline; } -.@{ionicons-prefix}ios-bell:before { content: @ionicon-var-ios-bell; } -.@{ionicons-prefix}ios-bell-outline:before { content: @ionicon-var-ios-bell-outline; } -.@{ionicons-prefix}ios-body:before { content: @ionicon-var-ios-body; } -.@{ionicons-prefix}ios-body-outline:before { content: @ionicon-var-ios-body-outline; } -.@{ionicons-prefix}ios-bolt:before { content: @ionicon-var-ios-bolt; } -.@{ionicons-prefix}ios-bolt-outline:before { content: @ionicon-var-ios-bolt-outline; } -.@{ionicons-prefix}ios-book:before { content: @ionicon-var-ios-book; } -.@{ionicons-prefix}ios-book-outline:before { content: @ionicon-var-ios-book-outline; } -.@{ionicons-prefix}ios-bookmarks:before { content: @ionicon-var-ios-bookmarks; } -.@{ionicons-prefix}ios-bookmarks-outline:before { content: @ionicon-var-ios-bookmarks-outline; } -.@{ionicons-prefix}ios-box:before { content: @ionicon-var-ios-box; } -.@{ionicons-prefix}ios-box-outline:before { content: @ionicon-var-ios-box-outline; } -.@{ionicons-prefix}ios-briefcase:before { content: @ionicon-var-ios-briefcase; } -.@{ionicons-prefix}ios-briefcase-outline:before { content: @ionicon-var-ios-briefcase-outline; } -.@{ionicons-prefix}ios-browsers:before { content: @ionicon-var-ios-browsers; } -.@{ionicons-prefix}ios-browsers-outline:before { content: @ionicon-var-ios-browsers-outline; } -.@{ionicons-prefix}ios-calculator:before { content: @ionicon-var-ios-calculator; } -.@{ionicons-prefix}ios-calculator-outline:before { content: @ionicon-var-ios-calculator-outline; } -.@{ionicons-prefix}ios-calendar:before { content: @ionicon-var-ios-calendar; } -.@{ionicons-prefix}ios-calendar-outline:before { content: @ionicon-var-ios-calendar-outline; } -.@{ionicons-prefix}ios-camera:before { content: @ionicon-var-ios-camera; } -.@{ionicons-prefix}ios-camera-outline:before { content: @ionicon-var-ios-camera-outline; } -.@{ionicons-prefix}ios-cart:before { content: @ionicon-var-ios-cart; } -.@{ionicons-prefix}ios-cart-outline:before { content: @ionicon-var-ios-cart-outline; } -.@{ionicons-prefix}ios-chatboxes:before { content: @ionicon-var-ios-chatboxes; } -.@{ionicons-prefix}ios-chatboxes-outline:before { content: @ionicon-var-ios-chatboxes-outline; } -.@{ionicons-prefix}ios-chatbubble:before { content: @ionicon-var-ios-chatbubble; } -.@{ionicons-prefix}ios-chatbubble-outline:before { content: @ionicon-var-ios-chatbubble-outline; } -.@{ionicons-prefix}ios-checkmark:before { content: @ionicon-var-ios-checkmark; } -.@{ionicons-prefix}ios-checkmark-empty:before { content: @ionicon-var-ios-checkmark-empty; } -.@{ionicons-prefix}ios-checkmark-outline:before { content: @ionicon-var-ios-checkmark-outline; } -.@{ionicons-prefix}ios-circle-filled:before { content: @ionicon-var-ios-circle-filled; } -.@{ionicons-prefix}ios-circle-outline:before { content: @ionicon-var-ios-circle-outline; } -.@{ionicons-prefix}ios-clock:before { content: @ionicon-var-ios-clock; } -.@{ionicons-prefix}ios-clock-outline:before { content: @ionicon-var-ios-clock-outline; } -.@{ionicons-prefix}ios-close:before { content: @ionicon-var-ios-close; } -.@{ionicons-prefix}ios-close-empty:before { content: @ionicon-var-ios-close-empty; } -.@{ionicons-prefix}ios-close-outline:before { content: @ionicon-var-ios-close-outline; } -.@{ionicons-prefix}ios-cloud:before { content: @ionicon-var-ios-cloud; } -.@{ionicons-prefix}ios-cloud-download:before { content: @ionicon-var-ios-cloud-download; } -.@{ionicons-prefix}ios-cloud-download-outline:before { content: @ionicon-var-ios-cloud-download-outline; } -.@{ionicons-prefix}ios-cloud-outline:before { content: @ionicon-var-ios-cloud-outline; } -.@{ionicons-prefix}ios-cloud-upload:before { content: @ionicon-var-ios-cloud-upload; } -.@{ionicons-prefix}ios-cloud-upload-outline:before { content: @ionicon-var-ios-cloud-upload-outline; } -.@{ionicons-prefix}ios-cloudy:before { content: @ionicon-var-ios-cloudy; } -.@{ionicons-prefix}ios-cloudy-night:before { content: @ionicon-var-ios-cloudy-night; } -.@{ionicons-prefix}ios-cloudy-night-outline:before { content: @ionicon-var-ios-cloudy-night-outline; } -.@{ionicons-prefix}ios-cloudy-outline:before { content: @ionicon-var-ios-cloudy-outline; } -.@{ionicons-prefix}ios-cog:before { content: @ionicon-var-ios-cog; } -.@{ionicons-prefix}ios-cog-outline:before { content: @ionicon-var-ios-cog-outline; } -.@{ionicons-prefix}ios-color-filter:before { content: @ionicon-var-ios-color-filter; } -.@{ionicons-prefix}ios-color-filter-outline:before { content: @ionicon-var-ios-color-filter-outline; } -.@{ionicons-prefix}ios-color-wand:before { content: @ionicon-var-ios-color-wand; } -.@{ionicons-prefix}ios-color-wand-outline:before { content: @ionicon-var-ios-color-wand-outline; } -.@{ionicons-prefix}ios-compose:before { content: @ionicon-var-ios-compose; } -.@{ionicons-prefix}ios-compose-outline:before { content: @ionicon-var-ios-compose-outline; } -.@{ionicons-prefix}ios-contact:before { content: @ionicon-var-ios-contact; } -.@{ionicons-prefix}ios-contact-outline:before { content: @ionicon-var-ios-contact-outline; } -.@{ionicons-prefix}ios-copy:before { content: @ionicon-var-ios-copy; } -.@{ionicons-prefix}ios-copy-outline:before { content: @ionicon-var-ios-copy-outline; } -.@{ionicons-prefix}ios-crop:before { content: @ionicon-var-ios-crop; } -.@{ionicons-prefix}ios-crop-strong:before { content: @ionicon-var-ios-crop-strong; } -.@{ionicons-prefix}ios-download:before { content: @ionicon-var-ios-download; } -.@{ionicons-prefix}ios-download-outline:before { content: @ionicon-var-ios-download-outline; } -.@{ionicons-prefix}ios-drag:before { content: @ionicon-var-ios-drag; } -.@{ionicons-prefix}ios-email:before { content: @ionicon-var-ios-email; } -.@{ionicons-prefix}ios-email-outline:before { content: @ionicon-var-ios-email-outline; } -.@{ionicons-prefix}ios-eye:before { content: @ionicon-var-ios-eye; } -.@{ionicons-prefix}ios-eye-outline:before { content: @ionicon-var-ios-eye-outline; } -.@{ionicons-prefix}ios-fastforward:before { content: @ionicon-var-ios-fastforward; } -.@{ionicons-prefix}ios-fastforward-outline:before { content: @ionicon-var-ios-fastforward-outline; } -.@{ionicons-prefix}ios-filing:before { content: @ionicon-var-ios-filing; } -.@{ionicons-prefix}ios-filing-outline:before { content: @ionicon-var-ios-filing-outline; } -.@{ionicons-prefix}ios-film:before { content: @ionicon-var-ios-film; } -.@{ionicons-prefix}ios-film-outline:before { content: @ionicon-var-ios-film-outline; } -.@{ionicons-prefix}ios-flag:before { content: @ionicon-var-ios-flag; } -.@{ionicons-prefix}ios-flag-outline:before { content: @ionicon-var-ios-flag-outline; } -.@{ionicons-prefix}ios-flame:before { content: @ionicon-var-ios-flame; } -.@{ionicons-prefix}ios-flame-outline:before { content: @ionicon-var-ios-flame-outline; } -.@{ionicons-prefix}ios-flask:before { content: @ionicon-var-ios-flask; } -.@{ionicons-prefix}ios-flask-outline:before { content: @ionicon-var-ios-flask-outline; } -.@{ionicons-prefix}ios-flower:before { content: @ionicon-var-ios-flower; } -.@{ionicons-prefix}ios-flower-outline:before { content: @ionicon-var-ios-flower-outline; } -.@{ionicons-prefix}ios-folder:before { content: @ionicon-var-ios-folder; } -.@{ionicons-prefix}ios-folder-outline:before { content: @ionicon-var-ios-folder-outline; } -.@{ionicons-prefix}ios-football:before { content: @ionicon-var-ios-football; } -.@{ionicons-prefix}ios-football-outline:before { content: @ionicon-var-ios-football-outline; } -.@{ionicons-prefix}ios-game-controller-a:before { content: @ionicon-var-ios-game-controller-a; } -.@{ionicons-prefix}ios-game-controller-a-outline:before { content: @ionicon-var-ios-game-controller-a-outline; } -.@{ionicons-prefix}ios-game-controller-b:before { content: @ionicon-var-ios-game-controller-b; } -.@{ionicons-prefix}ios-game-controller-b-outline:before { content: @ionicon-var-ios-game-controller-b-outline; } -.@{ionicons-prefix}ios-gear:before { content: @ionicon-var-ios-gear; } -.@{ionicons-prefix}ios-gear-outline:before { content: @ionicon-var-ios-gear-outline; } -.@{ionicons-prefix}ios-glasses:before { content: @ionicon-var-ios-glasses; } -.@{ionicons-prefix}ios-glasses-outline:before { content: @ionicon-var-ios-glasses-outline; } -.@{ionicons-prefix}ios-grid-view:before { content: @ionicon-var-ios-grid-view; } -.@{ionicons-prefix}ios-grid-view-outline:before { content: @ionicon-var-ios-grid-view-outline; } -.@{ionicons-prefix}ios-heart:before { content: @ionicon-var-ios-heart; } -.@{ionicons-prefix}ios-heart-outline:before { content: @ionicon-var-ios-heart-outline; } -.@{ionicons-prefix}ios-help:before { content: @ionicon-var-ios-help; } -.@{ionicons-prefix}ios-help-empty:before { content: @ionicon-var-ios-help-empty; } -.@{ionicons-prefix}ios-help-outline:before { content: @ionicon-var-ios-help-outline; } -.@{ionicons-prefix}ios-home:before { content: @ionicon-var-ios-home; } -.@{ionicons-prefix}ios-home-outline:before { content: @ionicon-var-ios-home-outline; } -.@{ionicons-prefix}ios-infinite:before { content: @ionicon-var-ios-infinite; } -.@{ionicons-prefix}ios-infinite-outline:before { content: @ionicon-var-ios-infinite-outline; } -.@{ionicons-prefix}ios-information:before { content: @ionicon-var-ios-information; } -.@{ionicons-prefix}ios-information-empty:before { content: @ionicon-var-ios-information-empty; } -.@{ionicons-prefix}ios-information-outline:before { content: @ionicon-var-ios-information-outline; } -.@{ionicons-prefix}ios-ionic-outline:before { content: @ionicon-var-ios-ionic-outline; } -.@{ionicons-prefix}ios-keypad:before { content: @ionicon-var-ios-keypad; } -.@{ionicons-prefix}ios-keypad-outline:before { content: @ionicon-var-ios-keypad-outline; } -.@{ionicons-prefix}ios-lightbulb:before { content: @ionicon-var-ios-lightbulb; } -.@{ionicons-prefix}ios-lightbulb-outline:before { content: @ionicon-var-ios-lightbulb-outline; } -.@{ionicons-prefix}ios-list:before { content: @ionicon-var-ios-list; } -.@{ionicons-prefix}ios-list-outline:before { content: @ionicon-var-ios-list-outline; } -.@{ionicons-prefix}ios-location:before { content: @ionicon-var-ios-location; } -.@{ionicons-prefix}ios-location-outline:before { content: @ionicon-var-ios-location-outline; } -.@{ionicons-prefix}ios-locked:before { content: @ionicon-var-ios-locked; } -.@{ionicons-prefix}ios-locked-outline:before { content: @ionicon-var-ios-locked-outline; } -.@{ionicons-prefix}ios-loop:before { content: @ionicon-var-ios-loop; } -.@{ionicons-prefix}ios-loop-strong:before { content: @ionicon-var-ios-loop-strong; } -.@{ionicons-prefix}ios-medical:before { content: @ionicon-var-ios-medical; } -.@{ionicons-prefix}ios-medical-outline:before { content: @ionicon-var-ios-medical-outline; } -.@{ionicons-prefix}ios-medkit:before { content: @ionicon-var-ios-medkit; } -.@{ionicons-prefix}ios-medkit-outline:before { content: @ionicon-var-ios-medkit-outline; } -.@{ionicons-prefix}ios-mic:before { content: @ionicon-var-ios-mic; } -.@{ionicons-prefix}ios-mic-off:before { content: @ionicon-var-ios-mic-off; } -.@{ionicons-prefix}ios-mic-outline:before { content: @ionicon-var-ios-mic-outline; } -.@{ionicons-prefix}ios-minus:before { content: @ionicon-var-ios-minus; } -.@{ionicons-prefix}ios-minus-empty:before { content: @ionicon-var-ios-minus-empty; } -.@{ionicons-prefix}ios-minus-outline:before { content: @ionicon-var-ios-minus-outline; } -.@{ionicons-prefix}ios-monitor:before { content: @ionicon-var-ios-monitor; } -.@{ionicons-prefix}ios-monitor-outline:before { content: @ionicon-var-ios-monitor-outline; } -.@{ionicons-prefix}ios-moon:before { content: @ionicon-var-ios-moon; } -.@{ionicons-prefix}ios-moon-outline:before { content: @ionicon-var-ios-moon-outline; } -.@{ionicons-prefix}ios-more:before { content: @ionicon-var-ios-more; } -.@{ionicons-prefix}ios-more-outline:before { content: @ionicon-var-ios-more-outline; } -.@{ionicons-prefix}ios-musical-note:before { content: @ionicon-var-ios-musical-note; } -.@{ionicons-prefix}ios-musical-notes:before { content: @ionicon-var-ios-musical-notes; } -.@{ionicons-prefix}ios-navigate:before { content: @ionicon-var-ios-navigate; } -.@{ionicons-prefix}ios-navigate-outline:before { content: @ionicon-var-ios-navigate-outline; } -.@{ionicons-prefix}ios-nutrition:before { content: @ionicon-var-ios-nutrition; } -.@{ionicons-prefix}ios-nutrition-outline:before { content: @ionicon-var-ios-nutrition-outline; } -.@{ionicons-prefix}ios-paper:before { content: @ionicon-var-ios-paper; } -.@{ionicons-prefix}ios-paper-outline:before { content: @ionicon-var-ios-paper-outline; } -.@{ionicons-prefix}ios-paperplane:before { content: @ionicon-var-ios-paperplane; } -.@{ionicons-prefix}ios-paperplane-outline:before { content: @ionicon-var-ios-paperplane-outline; } -.@{ionicons-prefix}ios-partlysunny:before { content: @ionicon-var-ios-partlysunny; } -.@{ionicons-prefix}ios-partlysunny-outline:before { content: @ionicon-var-ios-partlysunny-outline; } -.@{ionicons-prefix}ios-pause:before { content: @ionicon-var-ios-pause; } -.@{ionicons-prefix}ios-pause-outline:before { content: @ionicon-var-ios-pause-outline; } -.@{ionicons-prefix}ios-paw:before { content: @ionicon-var-ios-paw; } -.@{ionicons-prefix}ios-paw-outline:before { content: @ionicon-var-ios-paw-outline; } -.@{ionicons-prefix}ios-people:before { content: @ionicon-var-ios-people; } -.@{ionicons-prefix}ios-people-outline:before { content: @ionicon-var-ios-people-outline; } -.@{ionicons-prefix}ios-person:before { content: @ionicon-var-ios-person; } -.@{ionicons-prefix}ios-person-outline:before { content: @ionicon-var-ios-person-outline; } -.@{ionicons-prefix}ios-personadd:before { content: @ionicon-var-ios-personadd; } -.@{ionicons-prefix}ios-personadd-outline:before { content: @ionicon-var-ios-personadd-outline; } -.@{ionicons-prefix}ios-photos:before { content: @ionicon-var-ios-photos; } -.@{ionicons-prefix}ios-photos-outline:before { content: @ionicon-var-ios-photos-outline; } -.@{ionicons-prefix}ios-pie:before { content: @ionicon-var-ios-pie; } -.@{ionicons-prefix}ios-pie-outline:before { content: @ionicon-var-ios-pie-outline; } -.@{ionicons-prefix}ios-pint:before { content: @ionicon-var-ios-pint; } -.@{ionicons-prefix}ios-pint-outline:before { content: @ionicon-var-ios-pint-outline; } -.@{ionicons-prefix}ios-play:before { content: @ionicon-var-ios-play; } -.@{ionicons-prefix}ios-play-outline:before { content: @ionicon-var-ios-play-outline; } -.@{ionicons-prefix}ios-plus:before { content: @ionicon-var-ios-plus; } -.@{ionicons-prefix}ios-plus-empty:before { content: @ionicon-var-ios-plus-empty; } -.@{ionicons-prefix}ios-plus-outline:before { content: @ionicon-var-ios-plus-outline; } -.@{ionicons-prefix}ios-pricetag:before { content: @ionicon-var-ios-pricetag; } -.@{ionicons-prefix}ios-pricetag-outline:before { content: @ionicon-var-ios-pricetag-outline; } -.@{ionicons-prefix}ios-pricetags:before { content: @ionicon-var-ios-pricetags; } -.@{ionicons-prefix}ios-pricetags-outline:before { content: @ionicon-var-ios-pricetags-outline; } -.@{ionicons-prefix}ios-printer:before { content: @ionicon-var-ios-printer; } -.@{ionicons-prefix}ios-printer-outline:before { content: @ionicon-var-ios-printer-outline; } -.@{ionicons-prefix}ios-pulse:before { content: @ionicon-var-ios-pulse; } -.@{ionicons-prefix}ios-pulse-strong:before { content: @ionicon-var-ios-pulse-strong; } -.@{ionicons-prefix}ios-rainy:before { content: @ionicon-var-ios-rainy; } -.@{ionicons-prefix}ios-rainy-outline:before { content: @ionicon-var-ios-rainy-outline; } -.@{ionicons-prefix}ios-recording:before { content: @ionicon-var-ios-recording; } -.@{ionicons-prefix}ios-recording-outline:before { content: @ionicon-var-ios-recording-outline; } -.@{ionicons-prefix}ios-redo:before { content: @ionicon-var-ios-redo; } -.@{ionicons-prefix}ios-redo-outline:before { content: @ionicon-var-ios-redo-outline; } -.@{ionicons-prefix}ios-refresh:before { content: @ionicon-var-ios-refresh; } -.@{ionicons-prefix}ios-refresh-empty:before { content: @ionicon-var-ios-refresh-empty; } -.@{ionicons-prefix}ios-refresh-outline:before { content: @ionicon-var-ios-refresh-outline; } -.@{ionicons-prefix}ios-reload:before { content: @ionicon-var-ios-reload; } -.@{ionicons-prefix}ios-reverse-camera:before { content: @ionicon-var-ios-reverse-camera; } -.@{ionicons-prefix}ios-reverse-camera-outline:before { content: @ionicon-var-ios-reverse-camera-outline; } -.@{ionicons-prefix}ios-rewind:before { content: @ionicon-var-ios-rewind; } -.@{ionicons-prefix}ios-rewind-outline:before { content: @ionicon-var-ios-rewind-outline; } -.@{ionicons-prefix}ios-rose:before { content: @ionicon-var-ios-rose; } -.@{ionicons-prefix}ios-rose-outline:before { content: @ionicon-var-ios-rose-outline; } -.@{ionicons-prefix}ios-search:before { content: @ionicon-var-ios-search; } -.@{ionicons-prefix}ios-search-strong:before { content: @ionicon-var-ios-search-strong; } -.@{ionicons-prefix}ios-settings:before { content: @ionicon-var-ios-settings; } -.@{ionicons-prefix}ios-settings-strong:before { content: @ionicon-var-ios-settings-strong; } -.@{ionicons-prefix}ios-shuffle:before { content: @ionicon-var-ios-shuffle; } -.@{ionicons-prefix}ios-shuffle-strong:before { content: @ionicon-var-ios-shuffle-strong; } -.@{ionicons-prefix}ios-skipbackward:before { content: @ionicon-var-ios-skipbackward; } -.@{ionicons-prefix}ios-skipbackward-outline:before { content: @ionicon-var-ios-skipbackward-outline; } -.@{ionicons-prefix}ios-skipforward:before { content: @ionicon-var-ios-skipforward; } -.@{ionicons-prefix}ios-skipforward-outline:before { content: @ionicon-var-ios-skipforward-outline; } -.@{ionicons-prefix}ios-snowy:before { content: @ionicon-var-ios-snowy; } -.@{ionicons-prefix}ios-speedometer:before { content: @ionicon-var-ios-speedometer; } -.@{ionicons-prefix}ios-speedometer-outline:before { content: @ionicon-var-ios-speedometer-outline; } -.@{ionicons-prefix}ios-star:before { content: @ionicon-var-ios-star; } -.@{ionicons-prefix}ios-star-half:before { content: @ionicon-var-ios-star-half; } -.@{ionicons-prefix}ios-star-outline:before { content: @ionicon-var-ios-star-outline; } -.@{ionicons-prefix}ios-stopwatch:before { content: @ionicon-var-ios-stopwatch; } -.@{ionicons-prefix}ios-stopwatch-outline:before { content: @ionicon-var-ios-stopwatch-outline; } -.@{ionicons-prefix}ios-sunny:before { content: @ionicon-var-ios-sunny; } -.@{ionicons-prefix}ios-sunny-outline:before { content: @ionicon-var-ios-sunny-outline; } -.@{ionicons-prefix}ios-telephone:before { content: @ionicon-var-ios-telephone; } -.@{ionicons-prefix}ios-telephone-outline:before { content: @ionicon-var-ios-telephone-outline; } -.@{ionicons-prefix}ios-tennisball:before { content: @ionicon-var-ios-tennisball; } -.@{ionicons-prefix}ios-tennisball-outline:before { content: @ionicon-var-ios-tennisball-outline; } -.@{ionicons-prefix}ios-thunderstorm:before { content: @ionicon-var-ios-thunderstorm; } -.@{ionicons-prefix}ios-thunderstorm-outline:before { content: @ionicon-var-ios-thunderstorm-outline; } -.@{ionicons-prefix}ios-time:before { content: @ionicon-var-ios-time; } -.@{ionicons-prefix}ios-time-outline:before { content: @ionicon-var-ios-time-outline; } -.@{ionicons-prefix}ios-timer:before { content: @ionicon-var-ios-timer; } -.@{ionicons-prefix}ios-timer-outline:before { content: @ionicon-var-ios-timer-outline; } -.@{ionicons-prefix}ios-toggle:before { content: @ionicon-var-ios-toggle; } -.@{ionicons-prefix}ios-toggle-outline:before { content: @ionicon-var-ios-toggle-outline; } -.@{ionicons-prefix}ios-trash:before { content: @ionicon-var-ios-trash; } -.@{ionicons-prefix}ios-trash-outline:before { content: @ionicon-var-ios-trash-outline; } -.@{ionicons-prefix}ios-undo:before { content: @ionicon-var-ios-undo; } -.@{ionicons-prefix}ios-undo-outline:before { content: @ionicon-var-ios-undo-outline; } -.@{ionicons-prefix}ios-unlocked:before { content: @ionicon-var-ios-unlocked; } -.@{ionicons-prefix}ios-unlocked-outline:before { content: @ionicon-var-ios-unlocked-outline; } -.@{ionicons-prefix}ios-upload:before { content: @ionicon-var-ios-upload; } -.@{ionicons-prefix}ios-upload-outline:before { content: @ionicon-var-ios-upload-outline; } -.@{ionicons-prefix}ios-videocam:before { content: @ionicon-var-ios-videocam; } -.@{ionicons-prefix}ios-videocam-outline:before { content: @ionicon-var-ios-videocam-outline; } -.@{ionicons-prefix}ios-volume-high:before { content: @ionicon-var-ios-volume-high; } -.@{ionicons-prefix}ios-volume-low:before { content: @ionicon-var-ios-volume-low; } -.@{ionicons-prefix}ios-wineglass:before { content: @ionicon-var-ios-wineglass; } -.@{ionicons-prefix}ios-wineglass-outline:before { content: @ionicon-var-ios-wineglass-outline; } -.@{ionicons-prefix}ios-world:before { content: @ionicon-var-ios-world; } -.@{ionicons-prefix}ios-world-outline:before { content: @ionicon-var-ios-world-outline; } -.@{ionicons-prefix}ipad:before { content: @ionicon-var-ipad; } -.@{ionicons-prefix}iphone:before { content: @ionicon-var-iphone; } -.@{ionicons-prefix}ipod:before { content: @ionicon-var-ipod; } -.@{ionicons-prefix}jet:before { content: @ionicon-var-jet; } -.@{ionicons-prefix}key:before { content: @ionicon-var-key; } -.@{ionicons-prefix}knife:before { content: @ionicon-var-knife; } -.@{ionicons-prefix}laptop:before { content: @ionicon-var-laptop; } -.@{ionicons-prefix}leaf:before { content: @ionicon-var-leaf; } -.@{ionicons-prefix}levels:before { content: @ionicon-var-levels; } -.@{ionicons-prefix}lightbulb:before { content: @ionicon-var-lightbulb; } -.@{ionicons-prefix}link:before { content: @ionicon-var-link; } -.@{ionicons-prefix}load-a:before { content: @ionicon-var-load-a; } -.@{ionicons-prefix}load-b:before { content: @ionicon-var-load-b; } -.@{ionicons-prefix}load-c:before { content: @ionicon-var-load-c; } -.@{ionicons-prefix}load-d:before { content: @ionicon-var-load-d; } -.@{ionicons-prefix}location:before { content: @ionicon-var-location; } -.@{ionicons-prefix}lock-combination:before { content: @ionicon-var-lock-combination; } -.@{ionicons-prefix}locked:before { content: @ionicon-var-locked; } -.@{ionicons-prefix}log-in:before { content: @ionicon-var-log-in; } -.@{ionicons-prefix}log-out:before { content: @ionicon-var-log-out; } -.@{ionicons-prefix}loop:before { content: @ionicon-var-loop; } -.@{ionicons-prefix}magnet:before { content: @ionicon-var-magnet; } -.@{ionicons-prefix}male:before { content: @ionicon-var-male; } -.@{ionicons-prefix}man:before { content: @ionicon-var-man; } -.@{ionicons-prefix}map:before { content: @ionicon-var-map; } -.@{ionicons-prefix}medkit:before { content: @ionicon-var-medkit; } -.@{ionicons-prefix}merge:before { content: @ionicon-var-merge; } -.@{ionicons-prefix}mic-a:before { content: @ionicon-var-mic-a; } -.@{ionicons-prefix}mic-b:before { content: @ionicon-var-mic-b; } -.@{ionicons-prefix}mic-c:before { content: @ionicon-var-mic-c; } -.@{ionicons-prefix}minus:before { content: @ionicon-var-minus; } -.@{ionicons-prefix}minus-circled:before { content: @ionicon-var-minus-circled; } -.@{ionicons-prefix}minus-round:before { content: @ionicon-var-minus-round; } -.@{ionicons-prefix}model-s:before { content: @ionicon-var-model-s; } -.@{ionicons-prefix}monitor:before { content: @ionicon-var-monitor; } -.@{ionicons-prefix}more:before { content: @ionicon-var-more; } -.@{ionicons-prefix}mouse:before { content: @ionicon-var-mouse; } -.@{ionicons-prefix}music-note:before { content: @ionicon-var-music-note; } -.@{ionicons-prefix}navicon:before { content: @ionicon-var-navicon; } -.@{ionicons-prefix}navicon-round:before { content: @ionicon-var-navicon-round; } -.@{ionicons-prefix}navigate:before { content: @ionicon-var-navigate; } -.@{ionicons-prefix}network:before { content: @ionicon-var-network; } -.@{ionicons-prefix}no-smoking:before { content: @ionicon-var-no-smoking; } -.@{ionicons-prefix}nuclear:before { content: @ionicon-var-nuclear; } -.@{ionicons-prefix}outlet:before { content: @ionicon-var-outlet; } -.@{ionicons-prefix}paintbrush:before { content: @ionicon-var-paintbrush; } -.@{ionicons-prefix}paintbucket:before { content: @ionicon-var-paintbucket; } -.@{ionicons-prefix}paper-airplane:before { content: @ionicon-var-paper-airplane; } -.@{ionicons-prefix}paperclip:before { content: @ionicon-var-paperclip; } -.@{ionicons-prefix}pause:before { content: @ionicon-var-pause; } -.@{ionicons-prefix}person:before { content: @ionicon-var-person; } -.@{ionicons-prefix}person-add:before { content: @ionicon-var-person-add; } -.@{ionicons-prefix}person-stalker:before { content: @ionicon-var-person-stalker; } -.@{ionicons-prefix}pie-graph:before { content: @ionicon-var-pie-graph; } -.@{ionicons-prefix}pin:before { content: @ionicon-var-pin; } -.@{ionicons-prefix}pinpoint:before { content: @ionicon-var-pinpoint; } -.@{ionicons-prefix}pizza:before { content: @ionicon-var-pizza; } -.@{ionicons-prefix}plane:before { content: @ionicon-var-plane; } -.@{ionicons-prefix}planet:before { content: @ionicon-var-planet; } -.@{ionicons-prefix}play:before { content: @ionicon-var-play; } -.@{ionicons-prefix}playstation:before { content: @ionicon-var-playstation; } -.@{ionicons-prefix}plus:before { content: @ionicon-var-plus; } -.@{ionicons-prefix}plus-circled:before { content: @ionicon-var-plus-circled; } -.@{ionicons-prefix}plus-round:before { content: @ionicon-var-plus-round; } -.@{ionicons-prefix}podium:before { content: @ionicon-var-podium; } -.@{ionicons-prefix}pound:before { content: @ionicon-var-pound; } -.@{ionicons-prefix}power:before { content: @ionicon-var-power; } -.@{ionicons-prefix}pricetag:before { content: @ionicon-var-pricetag; } -.@{ionicons-prefix}pricetags:before { content: @ionicon-var-pricetags; } -.@{ionicons-prefix}printer:before { content: @ionicon-var-printer; } -.@{ionicons-prefix}pull-request:before { content: @ionicon-var-pull-request; } -.@{ionicons-prefix}qr-scanner:before { content: @ionicon-var-qr-scanner; } -.@{ionicons-prefix}quote:before { content: @ionicon-var-quote; } -.@{ionicons-prefix}radio-waves:before { content: @ionicon-var-radio-waves; } -.@{ionicons-prefix}record:before { content: @ionicon-var-record; } -.@{ionicons-prefix}refresh:before { content: @ionicon-var-refresh; } -.@{ionicons-prefix}reply:before { content: @ionicon-var-reply; } -.@{ionicons-prefix}reply-all:before { content: @ionicon-var-reply-all; } -.@{ionicons-prefix}ribbon-a:before { content: @ionicon-var-ribbon-a; } -.@{ionicons-prefix}ribbon-b:before { content: @ionicon-var-ribbon-b; } -.@{ionicons-prefix}sad:before { content: @ionicon-var-sad; } -.@{ionicons-prefix}sad-outline:before { content: @ionicon-var-sad-outline; } -.@{ionicons-prefix}scissors:before { content: @ionicon-var-scissors; } -.@{ionicons-prefix}search:before { content: @ionicon-var-search; } -.@{ionicons-prefix}settings:before { content: @ionicon-var-settings; } -.@{ionicons-prefix}share:before { content: @ionicon-var-share; } -.@{ionicons-prefix}shuffle:before { content: @ionicon-var-shuffle; } -.@{ionicons-prefix}skip-backward:before { content: @ionicon-var-skip-backward; } -.@{ionicons-prefix}skip-forward:before { content: @ionicon-var-skip-forward; } -.@{ionicons-prefix}social-android:before { content: @ionicon-var-social-android; } -.@{ionicons-prefix}social-android-outline:before { content: @ionicon-var-social-android-outline; } -.@{ionicons-prefix}social-angular:before { content: @ionicon-var-social-angular; } -.@{ionicons-prefix}social-angular-outline:before { content: @ionicon-var-social-angular-outline; } -.@{ionicons-prefix}social-apple:before { content: @ionicon-var-social-apple; } -.@{ionicons-prefix}social-apple-outline:before { content: @ionicon-var-social-apple-outline; } -.@{ionicons-prefix}social-bitcoin:before { content: @ionicon-var-social-bitcoin; } -.@{ionicons-prefix}social-bitcoin-outline:before { content: @ionicon-var-social-bitcoin-outline; } -.@{ionicons-prefix}social-buffer:before { content: @ionicon-var-social-buffer; } -.@{ionicons-prefix}social-buffer-outline:before { content: @ionicon-var-social-buffer-outline; } -.@{ionicons-prefix}social-chrome:before { content: @ionicon-var-social-chrome; } -.@{ionicons-prefix}social-chrome-outline:before { content: @ionicon-var-social-chrome-outline; } -.@{ionicons-prefix}social-codepen:before { content: @ionicon-var-social-codepen; } -.@{ionicons-prefix}social-codepen-outline:before { content: @ionicon-var-social-codepen-outline; } -.@{ionicons-prefix}social-css3:before { content: @ionicon-var-social-css3; } -.@{ionicons-prefix}social-css3-outline:before { content: @ionicon-var-social-css3-outline; } -.@{ionicons-prefix}social-designernews:before { content: @ionicon-var-social-designernews; } -.@{ionicons-prefix}social-designernews-outline:before { content: @ionicon-var-social-designernews-outline; } -.@{ionicons-prefix}social-dribbble:before { content: @ionicon-var-social-dribbble; } -.@{ionicons-prefix}social-dribbble-outline:before { content: @ionicon-var-social-dribbble-outline; } -.@{ionicons-prefix}social-dropbox:before { content: @ionicon-var-social-dropbox; } -.@{ionicons-prefix}social-dropbox-outline:before { content: @ionicon-var-social-dropbox-outline; } -.@{ionicons-prefix}social-euro:before { content: @ionicon-var-social-euro; } -.@{ionicons-prefix}social-euro-outline:before { content: @ionicon-var-social-euro-outline; } -.@{ionicons-prefix}social-facebook:before { content: @ionicon-var-social-facebook; } -.@{ionicons-prefix}social-facebook-outline:before { content: @ionicon-var-social-facebook-outline; } -.@{ionicons-prefix}social-foursquare:before { content: @ionicon-var-social-foursquare; } -.@{ionicons-prefix}social-foursquare-outline:before { content: @ionicon-var-social-foursquare-outline; } -.@{ionicons-prefix}social-freebsd-devil:before { content: @ionicon-var-social-freebsd-devil; } -.@{ionicons-prefix}social-github:before { content: @ionicon-var-social-github; } -.@{ionicons-prefix}social-github-outline:before { content: @ionicon-var-social-github-outline; } -.@{ionicons-prefix}social-google:before { content: @ionicon-var-social-google; } -.@{ionicons-prefix}social-google-outline:before { content: @ionicon-var-social-google-outline; } -.@{ionicons-prefix}social-googleplus:before { content: @ionicon-var-social-googleplus; } -.@{ionicons-prefix}social-googleplus-outline:before { content: @ionicon-var-social-googleplus-outline; } -.@{ionicons-prefix}social-hackernews:before { content: @ionicon-var-social-hackernews; } -.@{ionicons-prefix}social-hackernews-outline:before { content: @ionicon-var-social-hackernews-outline; } -.@{ionicons-prefix}social-html5:before { content: @ionicon-var-social-html5; } -.@{ionicons-prefix}social-html5-outline:before { content: @ionicon-var-social-html5-outline; } -.@{ionicons-prefix}social-instagram:before { content: @ionicon-var-social-instagram; } -.@{ionicons-prefix}social-instagram-outline:before { content: @ionicon-var-social-instagram-outline; } -.@{ionicons-prefix}social-javascript:before { content: @ionicon-var-social-javascript; } -.@{ionicons-prefix}social-javascript-outline:before { content: @ionicon-var-social-javascript-outline; } -.@{ionicons-prefix}social-linkedin:before { content: @ionicon-var-social-linkedin; } -.@{ionicons-prefix}social-linkedin-outline:before { content: @ionicon-var-social-linkedin-outline; } -.@{ionicons-prefix}social-markdown:before { content: @ionicon-var-social-markdown; } -.@{ionicons-prefix}social-nodejs:before { content: @ionicon-var-social-nodejs; } -.@{ionicons-prefix}social-octocat:before { content: @ionicon-var-social-octocat; } -.@{ionicons-prefix}social-pinterest:before { content: @ionicon-var-social-pinterest; } -.@{ionicons-prefix}social-pinterest-outline:before { content: @ionicon-var-social-pinterest-outline; } -.@{ionicons-prefix}social-python:before { content: @ionicon-var-social-python; } -.@{ionicons-prefix}social-reddit:before { content: @ionicon-var-social-reddit; } -.@{ionicons-prefix}social-reddit-outline:before { content: @ionicon-var-social-reddit-outline; } -.@{ionicons-prefix}social-rss:before { content: @ionicon-var-social-rss; } -.@{ionicons-prefix}social-rss-outline:before { content: @ionicon-var-social-rss-outline; } -.@{ionicons-prefix}social-sass:before { content: @ionicon-var-social-sass; } -.@{ionicons-prefix}social-skype:before { content: @ionicon-var-social-skype; } -.@{ionicons-prefix}social-skype-outline:before { content: @ionicon-var-social-skype-outline; } -.@{ionicons-prefix}social-snapchat:before { content: @ionicon-var-social-snapchat; } -.@{ionicons-prefix}social-snapchat-outline:before { content: @ionicon-var-social-snapchat-outline; } -.@{ionicons-prefix}social-tumblr:before { content: @ionicon-var-social-tumblr; } -.@{ionicons-prefix}social-tumblr-outline:before { content: @ionicon-var-social-tumblr-outline; } -.@{ionicons-prefix}social-tux:before { content: @ionicon-var-social-tux; } -.@{ionicons-prefix}social-twitch:before { content: @ionicon-var-social-twitch; } -.@{ionicons-prefix}social-twitch-outline:before { content: @ionicon-var-social-twitch-outline; } -.@{ionicons-prefix}social-twitter:before { content: @ionicon-var-social-twitter; } -.@{ionicons-prefix}social-twitter-outline:before { content: @ionicon-var-social-twitter-outline; } -.@{ionicons-prefix}social-usd:before { content: @ionicon-var-social-usd; } -.@{ionicons-prefix}social-usd-outline:before { content: @ionicon-var-social-usd-outline; } -.@{ionicons-prefix}social-vimeo:before { content: @ionicon-var-social-vimeo; } -.@{ionicons-prefix}social-vimeo-outline:before { content: @ionicon-var-social-vimeo-outline; } -.@{ionicons-prefix}social-whatsapp:before { content: @ionicon-var-social-whatsapp; } -.@{ionicons-prefix}social-whatsapp-outline:before { content: @ionicon-var-social-whatsapp-outline; } -.@{ionicons-prefix}social-windows:before { content: @ionicon-var-social-windows; } -.@{ionicons-prefix}social-windows-outline:before { content: @ionicon-var-social-windows-outline; } -.@{ionicons-prefix}social-wordpress:before { content: @ionicon-var-social-wordpress; } -.@{ionicons-prefix}social-wordpress-outline:before { content: @ionicon-var-social-wordpress-outline; } -.@{ionicons-prefix}social-yahoo:before { content: @ionicon-var-social-yahoo; } -.@{ionicons-prefix}social-yahoo-outline:before { content: @ionicon-var-social-yahoo-outline; } -.@{ionicons-prefix}social-yen:before { content: @ionicon-var-social-yen; } -.@{ionicons-prefix}social-yen-outline:before { content: @ionicon-var-social-yen-outline; } -.@{ionicons-prefix}social-youtube:before { content: @ionicon-var-social-youtube; } -.@{ionicons-prefix}social-youtube-outline:before { content: @ionicon-var-social-youtube-outline; } -.@{ionicons-prefix}soup-can:before { content: @ionicon-var-soup-can; } -.@{ionicons-prefix}soup-can-outline:before { content: @ionicon-var-soup-can-outline; } -.@{ionicons-prefix}speakerphone:before { content: @ionicon-var-speakerphone; } -.@{ionicons-prefix}speedometer:before { content: @ionicon-var-speedometer; } -.@{ionicons-prefix}spoon:before { content: @ionicon-var-spoon; } -.@{ionicons-prefix}star:before { content: @ionicon-var-star; } -.@{ionicons-prefix}stats-bars:before { content: @ionicon-var-stats-bars; } -.@{ionicons-prefix}steam:before { content: @ionicon-var-steam; } -.@{ionicons-prefix}stop:before { content: @ionicon-var-stop; } -.@{ionicons-prefix}thermometer:before { content: @ionicon-var-thermometer; } -.@{ionicons-prefix}thumbsdown:before { content: @ionicon-var-thumbsdown; } -.@{ionicons-prefix}thumbsup:before { content: @ionicon-var-thumbsup; } -.@{ionicons-prefix}toggle:before { content: @ionicon-var-toggle; } -.@{ionicons-prefix}toggle-filled:before { content: @ionicon-var-toggle-filled; } -.@{ionicons-prefix}transgender:before { content: @ionicon-var-transgender; } -.@{ionicons-prefix}trash-a:before { content: @ionicon-var-trash-a; } -.@{ionicons-prefix}trash-b:before { content: @ionicon-var-trash-b; } -.@{ionicons-prefix}trophy:before { content: @ionicon-var-trophy; } -.@{ionicons-prefix}tshirt:before { content: @ionicon-var-tshirt; } -.@{ionicons-prefix}tshirt-outline:before { content: @ionicon-var-tshirt-outline; } -.@{ionicons-prefix}umbrella:before { content: @ionicon-var-umbrella; } -.@{ionicons-prefix}university:before { content: @ionicon-var-university; } -.@{ionicons-prefix}unlocked:before { content: @ionicon-var-unlocked; } -.@{ionicons-prefix}upload:before { content: @ionicon-var-upload; } -.@{ionicons-prefix}usb:before { content: @ionicon-var-usb; } -.@{ionicons-prefix}videocamera:before { content: @ionicon-var-videocamera; } -.@{ionicons-prefix}volume-high:before { content: @ionicon-var-volume-high; } -.@{ionicons-prefix}volume-low:before { content: @ionicon-var-volume-low; } -.@{ionicons-prefix}volume-medium:before { content: @ionicon-var-volume-medium; } -.@{ionicons-prefix}volume-mute:before { content: @ionicon-var-volume-mute; } -.@{ionicons-prefix}wand:before { content: @ionicon-var-wand; } -.@{ionicons-prefix}waterdrop:before { content: @ionicon-var-waterdrop; } -.@{ionicons-prefix}wifi:before { content: @ionicon-var-wifi; } -.@{ionicons-prefix}wineglass:before { content: @ionicon-var-wineglass; } -.@{ionicons-prefix}woman:before { content: @ionicon-var-woman; } -.@{ionicons-prefix}wrench:before { content: @ionicon-var-wrench; } -.@{ionicons-prefix}xbox:before { content: @ionicon-var-xbox; } \ No newline at end of file diff --git a/admin/bower_components/Ionicons/less/_ionicons-variables.less b/admin/bower_components/Ionicons/less/_ionicons-variables.less deleted file mode 100644 index 9119527..0000000 --- a/admin/bower_components/Ionicons/less/_ionicons-variables.less +++ /dev/null @@ -1,747 +0,0 @@ -/*! -Ionicons, v2.0.0 -Created by Ben Sperry for the Ionic Framework, http://ionicons.com/ -https://twitter.com/benjsperry https://twitter.com/ionicframework -MIT License: https://github.com/driftyco/ionicons -*/ -// Ionicons Variables -// -------------------------- - -@ionicons-font-path: "../fonts"; -@ionicons-font-family: "Ionicons"; -@ionicons-version: "2.0.0"; -@ionicons-prefix: ion-; - -@ionicon-var-alert: "\f101"; -@ionicon-var-alert-circled: "\f100"; -@ionicon-var-android-add: "\f2c7"; -@ionicon-var-android-add-circle: "\f359"; -@ionicon-var-android-alarm-clock: "\f35a"; -@ionicon-var-android-alert: "\f35b"; -@ionicon-var-android-apps: "\f35c"; -@ionicon-var-android-archive: "\f2c9"; -@ionicon-var-android-arrow-back: "\f2ca"; -@ionicon-var-android-arrow-down: "\f35d"; -@ionicon-var-android-arrow-dropdown: "\f35f"; -@ionicon-var-android-arrow-dropdown-circle: "\f35e"; -@ionicon-var-android-arrow-dropleft: "\f361"; -@ionicon-var-android-arrow-dropleft-circle: "\f360"; -@ionicon-var-android-arrow-dropright: "\f363"; -@ionicon-var-android-arrow-dropright-circle: "\f362"; -@ionicon-var-android-arrow-dropup: "\f365"; -@ionicon-var-android-arrow-dropup-circle: "\f364"; -@ionicon-var-android-arrow-forward: "\f30f"; -@ionicon-var-android-arrow-up: "\f366"; -@ionicon-var-android-attach: "\f367"; -@ionicon-var-android-bar: "\f368"; -@ionicon-var-android-bicycle: "\f369"; -@ionicon-var-android-boat: "\f36a"; -@ionicon-var-android-bookmark: "\f36b"; -@ionicon-var-android-bulb: "\f36c"; -@ionicon-var-android-bus: "\f36d"; -@ionicon-var-android-calendar: "\f2d1"; -@ionicon-var-android-call: "\f2d2"; -@ionicon-var-android-camera: "\f2d3"; -@ionicon-var-android-cancel: "\f36e"; -@ionicon-var-android-car: "\f36f"; -@ionicon-var-android-cart: "\f370"; -@ionicon-var-android-chat: "\f2d4"; -@ionicon-var-android-checkbox: "\f374"; -@ionicon-var-android-checkbox-blank: "\f371"; -@ionicon-var-android-checkbox-outline: "\f373"; -@ionicon-var-android-checkbox-outline-blank: "\f372"; -@ionicon-var-android-checkmark-circle: "\f375"; -@ionicon-var-android-clipboard: "\f376"; -@ionicon-var-android-close: "\f2d7"; -@ionicon-var-android-cloud: "\f37a"; -@ionicon-var-android-cloud-circle: "\f377"; -@ionicon-var-android-cloud-done: "\f378"; -@ionicon-var-android-cloud-outline: "\f379"; -@ionicon-var-android-color-palette: "\f37b"; -@ionicon-var-android-compass: "\f37c"; -@ionicon-var-android-contact: "\f2d8"; -@ionicon-var-android-contacts: "\f2d9"; -@ionicon-var-android-contract: "\f37d"; -@ionicon-var-android-create: "\f37e"; -@ionicon-var-android-delete: "\f37f"; -@ionicon-var-android-desktop: "\f380"; -@ionicon-var-android-document: "\f381"; -@ionicon-var-android-done: "\f383"; -@ionicon-var-android-done-all: "\f382"; -@ionicon-var-android-download: "\f2dd"; -@ionicon-var-android-drafts: "\f384"; -@ionicon-var-android-exit: "\f385"; -@ionicon-var-android-expand: "\f386"; -@ionicon-var-android-favorite: "\f388"; -@ionicon-var-android-favorite-outline: "\f387"; -@ionicon-var-android-film: "\f389"; -@ionicon-var-android-folder: "\f2e0"; -@ionicon-var-android-folder-open: "\f38a"; -@ionicon-var-android-funnel: "\f38b"; -@ionicon-var-android-globe: "\f38c"; -@ionicon-var-android-hand: "\f2e3"; -@ionicon-var-android-hangout: "\f38d"; -@ionicon-var-android-happy: "\f38e"; -@ionicon-var-android-home: "\f38f"; -@ionicon-var-android-image: "\f2e4"; -@ionicon-var-android-laptop: "\f390"; -@ionicon-var-android-list: "\f391"; -@ionicon-var-android-locate: "\f2e9"; -@ionicon-var-android-lock: "\f392"; -@ionicon-var-android-mail: "\f2eb"; -@ionicon-var-android-map: "\f393"; -@ionicon-var-android-menu: "\f394"; -@ionicon-var-android-microphone: "\f2ec"; -@ionicon-var-android-microphone-off: "\f395"; -@ionicon-var-android-more-horizontal: "\f396"; -@ionicon-var-android-more-vertical: "\f397"; -@ionicon-var-android-navigate: "\f398"; -@ionicon-var-android-notifications: "\f39b"; -@ionicon-var-android-notifications-none: "\f399"; -@ionicon-var-android-notifications-off: "\f39a"; -@ionicon-var-android-open: "\f39c"; -@ionicon-var-android-options: "\f39d"; -@ionicon-var-android-people: "\f39e"; -@ionicon-var-android-person: "\f3a0"; -@ionicon-var-android-person-add: "\f39f"; -@ionicon-var-android-phone-landscape: "\f3a1"; -@ionicon-var-android-phone-portrait: "\f3a2"; -@ionicon-var-android-pin: "\f3a3"; -@ionicon-var-android-plane: "\f3a4"; -@ionicon-var-android-playstore: "\f2f0"; -@ionicon-var-android-print: "\f3a5"; -@ionicon-var-android-radio-button-off: "\f3a6"; -@ionicon-var-android-radio-button-on: "\f3a7"; -@ionicon-var-android-refresh: "\f3a8"; -@ionicon-var-android-remove: "\f2f4"; -@ionicon-var-android-remove-circle: "\f3a9"; -@ionicon-var-android-restaurant: "\f3aa"; -@ionicon-var-android-sad: "\f3ab"; -@ionicon-var-android-search: "\f2f5"; -@ionicon-var-android-send: "\f2f6"; -@ionicon-var-android-settings: "\f2f7"; -@ionicon-var-android-share: "\f2f8"; -@ionicon-var-android-share-alt: "\f3ac"; -@ionicon-var-android-star: "\f2fc"; -@ionicon-var-android-star-half: "\f3ad"; -@ionicon-var-android-star-outline: "\f3ae"; -@ionicon-var-android-stopwatch: "\f2fd"; -@ionicon-var-android-subway: "\f3af"; -@ionicon-var-android-sunny: "\f3b0"; -@ionicon-var-android-sync: "\f3b1"; -@ionicon-var-android-textsms: "\f3b2"; -@ionicon-var-android-time: "\f3b3"; -@ionicon-var-android-train: "\f3b4"; -@ionicon-var-android-unlock: "\f3b5"; -@ionicon-var-android-upload: "\f3b6"; -@ionicon-var-android-volume-down: "\f3b7"; -@ionicon-var-android-volume-mute: "\f3b8"; -@ionicon-var-android-volume-off: "\f3b9"; -@ionicon-var-android-volume-up: "\f3ba"; -@ionicon-var-android-walk: "\f3bb"; -@ionicon-var-android-warning: "\f3bc"; -@ionicon-var-android-watch: "\f3bd"; -@ionicon-var-android-wifi: "\f305"; -@ionicon-var-aperture: "\f313"; -@ionicon-var-archive: "\f102"; -@ionicon-var-arrow-down-a: "\f103"; -@ionicon-var-arrow-down-b: "\f104"; -@ionicon-var-arrow-down-c: "\f105"; -@ionicon-var-arrow-expand: "\f25e"; -@ionicon-var-arrow-graph-down-left: "\f25f"; -@ionicon-var-arrow-graph-down-right: "\f260"; -@ionicon-var-arrow-graph-up-left: "\f261"; -@ionicon-var-arrow-graph-up-right: "\f262"; -@ionicon-var-arrow-left-a: "\f106"; -@ionicon-var-arrow-left-b: "\f107"; -@ionicon-var-arrow-left-c: "\f108"; -@ionicon-var-arrow-move: "\f263"; -@ionicon-var-arrow-resize: "\f264"; -@ionicon-var-arrow-return-left: "\f265"; -@ionicon-var-arrow-return-right: "\f266"; -@ionicon-var-arrow-right-a: "\f109"; -@ionicon-var-arrow-right-b: "\f10a"; -@ionicon-var-arrow-right-c: "\f10b"; -@ionicon-var-arrow-shrink: "\f267"; -@ionicon-var-arrow-swap: "\f268"; -@ionicon-var-arrow-up-a: "\f10c"; -@ionicon-var-arrow-up-b: "\f10d"; -@ionicon-var-arrow-up-c: "\f10e"; -@ionicon-var-asterisk: "\f314"; -@ionicon-var-at: "\f10f"; -@ionicon-var-backspace: "\f3bf"; -@ionicon-var-backspace-outline: "\f3be"; -@ionicon-var-bag: "\f110"; -@ionicon-var-battery-charging: "\f111"; -@ionicon-var-battery-empty: "\f112"; -@ionicon-var-battery-full: "\f113"; -@ionicon-var-battery-half: "\f114"; -@ionicon-var-battery-low: "\f115"; -@ionicon-var-beaker: "\f269"; -@ionicon-var-beer: "\f26a"; -@ionicon-var-bluetooth: "\f116"; -@ionicon-var-bonfire: "\f315"; -@ionicon-var-bookmark: "\f26b"; -@ionicon-var-bowtie: "\f3c0"; -@ionicon-var-briefcase: "\f26c"; -@ionicon-var-bug: "\f2be"; -@ionicon-var-calculator: "\f26d"; -@ionicon-var-calendar: "\f117"; -@ionicon-var-camera: "\f118"; -@ionicon-var-card: "\f119"; -@ionicon-var-cash: "\f316"; -@ionicon-var-chatbox: "\f11b"; -@ionicon-var-chatbox-working: "\f11a"; -@ionicon-var-chatboxes: "\f11c"; -@ionicon-var-chatbubble: "\f11e"; -@ionicon-var-chatbubble-working: "\f11d"; -@ionicon-var-chatbubbles: "\f11f"; -@ionicon-var-checkmark: "\f122"; -@ionicon-var-checkmark-circled: "\f120"; -@ionicon-var-checkmark-round: "\f121"; -@ionicon-var-chevron-down: "\f123"; -@ionicon-var-chevron-left: "\f124"; -@ionicon-var-chevron-right: "\f125"; -@ionicon-var-chevron-up: "\f126"; -@ionicon-var-clipboard: "\f127"; -@ionicon-var-clock: "\f26e"; -@ionicon-var-close: "\f12a"; -@ionicon-var-close-circled: "\f128"; -@ionicon-var-close-round: "\f129"; -@ionicon-var-closed-captioning: "\f317"; -@ionicon-var-cloud: "\f12b"; -@ionicon-var-code: "\f271"; -@ionicon-var-code-download: "\f26f"; -@ionicon-var-code-working: "\f270"; -@ionicon-var-coffee: "\f272"; -@ionicon-var-compass: "\f273"; -@ionicon-var-compose: "\f12c"; -@ionicon-var-connection-bars: "\f274"; -@ionicon-var-contrast: "\f275"; -@ionicon-var-crop: "\f3c1"; -@ionicon-var-cube: "\f318"; -@ionicon-var-disc: "\f12d"; -@ionicon-var-document: "\f12f"; -@ionicon-var-document-text: "\f12e"; -@ionicon-var-drag: "\f130"; -@ionicon-var-earth: "\f276"; -@ionicon-var-easel: "\f3c2"; -@ionicon-var-edit: "\f2bf"; -@ionicon-var-egg: "\f277"; -@ionicon-var-eject: "\f131"; -@ionicon-var-email: "\f132"; -@ionicon-var-email-unread: "\f3c3"; -@ionicon-var-erlenmeyer-flask: "\f3c5"; -@ionicon-var-erlenmeyer-flask-bubbles: "\f3c4"; -@ionicon-var-eye: "\f133"; -@ionicon-var-eye-disabled: "\f306"; -@ionicon-var-female: "\f278"; -@ionicon-var-filing: "\f134"; -@ionicon-var-film-marker: "\f135"; -@ionicon-var-fireball: "\f319"; -@ionicon-var-flag: "\f279"; -@ionicon-var-flame: "\f31a"; -@ionicon-var-flash: "\f137"; -@ionicon-var-flash-off: "\f136"; -@ionicon-var-folder: "\f139"; -@ionicon-var-fork: "\f27a"; -@ionicon-var-fork-repo: "\f2c0"; -@ionicon-var-forward: "\f13a"; -@ionicon-var-funnel: "\f31b"; -@ionicon-var-gear-a: "\f13d"; -@ionicon-var-gear-b: "\f13e"; -@ionicon-var-grid: "\f13f"; -@ionicon-var-hammer: "\f27b"; -@ionicon-var-happy: "\f31c"; -@ionicon-var-happy-outline: "\f3c6"; -@ionicon-var-headphone: "\f140"; -@ionicon-var-heart: "\f141"; -@ionicon-var-heart-broken: "\f31d"; -@ionicon-var-help: "\f143"; -@ionicon-var-help-buoy: "\f27c"; -@ionicon-var-help-circled: "\f142"; -@ionicon-var-home: "\f144"; -@ionicon-var-icecream: "\f27d"; -@ionicon-var-image: "\f147"; -@ionicon-var-images: "\f148"; -@ionicon-var-information: "\f14a"; -@ionicon-var-information-circled: "\f149"; -@ionicon-var-ionic: "\f14b"; -@ionicon-var-ios-alarm: "\f3c8"; -@ionicon-var-ios-alarm-outline: "\f3c7"; -@ionicon-var-ios-albums: "\f3ca"; -@ionicon-var-ios-albums-outline: "\f3c9"; -@ionicon-var-ios-americanfootball: "\f3cc"; -@ionicon-var-ios-americanfootball-outline: "\f3cb"; -@ionicon-var-ios-analytics: "\f3ce"; -@ionicon-var-ios-analytics-outline: "\f3cd"; -@ionicon-var-ios-arrow-back: "\f3cf"; -@ionicon-var-ios-arrow-down: "\f3d0"; -@ionicon-var-ios-arrow-forward: "\f3d1"; -@ionicon-var-ios-arrow-left: "\f3d2"; -@ionicon-var-ios-arrow-right: "\f3d3"; -@ionicon-var-ios-arrow-thin-down: "\f3d4"; -@ionicon-var-ios-arrow-thin-left: "\f3d5"; -@ionicon-var-ios-arrow-thin-right: "\f3d6"; -@ionicon-var-ios-arrow-thin-up: "\f3d7"; -@ionicon-var-ios-arrow-up: "\f3d8"; -@ionicon-var-ios-at: "\f3da"; -@ionicon-var-ios-at-outline: "\f3d9"; -@ionicon-var-ios-barcode: "\f3dc"; -@ionicon-var-ios-barcode-outline: "\f3db"; -@ionicon-var-ios-baseball: "\f3de"; -@ionicon-var-ios-baseball-outline: "\f3dd"; -@ionicon-var-ios-basketball: "\f3e0"; -@ionicon-var-ios-basketball-outline: "\f3df"; -@ionicon-var-ios-bell: "\f3e2"; -@ionicon-var-ios-bell-outline: "\f3e1"; -@ionicon-var-ios-body: "\f3e4"; -@ionicon-var-ios-body-outline: "\f3e3"; -@ionicon-var-ios-bolt: "\f3e6"; -@ionicon-var-ios-bolt-outline: "\f3e5"; -@ionicon-var-ios-book: "\f3e8"; -@ionicon-var-ios-book-outline: "\f3e7"; -@ionicon-var-ios-bookmarks: "\f3ea"; -@ionicon-var-ios-bookmarks-outline: "\f3e9"; -@ionicon-var-ios-box: "\f3ec"; -@ionicon-var-ios-box-outline: "\f3eb"; -@ionicon-var-ios-briefcase: "\f3ee"; -@ionicon-var-ios-briefcase-outline: "\f3ed"; -@ionicon-var-ios-browsers: "\f3f0"; -@ionicon-var-ios-browsers-outline: "\f3ef"; -@ionicon-var-ios-calculator: "\f3f2"; -@ionicon-var-ios-calculator-outline: "\f3f1"; -@ionicon-var-ios-calendar: "\f3f4"; -@ionicon-var-ios-calendar-outline: "\f3f3"; -@ionicon-var-ios-camera: "\f3f6"; -@ionicon-var-ios-camera-outline: "\f3f5"; -@ionicon-var-ios-cart: "\f3f8"; -@ionicon-var-ios-cart-outline: "\f3f7"; -@ionicon-var-ios-chatboxes: "\f3fa"; -@ionicon-var-ios-chatboxes-outline: "\f3f9"; -@ionicon-var-ios-chatbubble: "\f3fc"; -@ionicon-var-ios-chatbubble-outline: "\f3fb"; -@ionicon-var-ios-checkmark: "\f3ff"; -@ionicon-var-ios-checkmark-empty: "\f3fd"; -@ionicon-var-ios-checkmark-outline: "\f3fe"; -@ionicon-var-ios-circle-filled: "\f400"; -@ionicon-var-ios-circle-outline: "\f401"; -@ionicon-var-ios-clock: "\f403"; -@ionicon-var-ios-clock-outline: "\f402"; -@ionicon-var-ios-close: "\f406"; -@ionicon-var-ios-close-empty: "\f404"; -@ionicon-var-ios-close-outline: "\f405"; -@ionicon-var-ios-cloud: "\f40c"; -@ionicon-var-ios-cloud-download: "\f408"; -@ionicon-var-ios-cloud-download-outline: "\f407"; -@ionicon-var-ios-cloud-outline: "\f409"; -@ionicon-var-ios-cloud-upload: "\f40b"; -@ionicon-var-ios-cloud-upload-outline: "\f40a"; -@ionicon-var-ios-cloudy: "\f410"; -@ionicon-var-ios-cloudy-night: "\f40e"; -@ionicon-var-ios-cloudy-night-outline: "\f40d"; -@ionicon-var-ios-cloudy-outline: "\f40f"; -@ionicon-var-ios-cog: "\f412"; -@ionicon-var-ios-cog-outline: "\f411"; -@ionicon-var-ios-color-filter: "\f414"; -@ionicon-var-ios-color-filter-outline: "\f413"; -@ionicon-var-ios-color-wand: "\f416"; -@ionicon-var-ios-color-wand-outline: "\f415"; -@ionicon-var-ios-compose: "\f418"; -@ionicon-var-ios-compose-outline: "\f417"; -@ionicon-var-ios-contact: "\f41a"; -@ionicon-var-ios-contact-outline: "\f419"; -@ionicon-var-ios-copy: "\f41c"; -@ionicon-var-ios-copy-outline: "\f41b"; -@ionicon-var-ios-crop: "\f41e"; -@ionicon-var-ios-crop-strong: "\f41d"; -@ionicon-var-ios-download: "\f420"; -@ionicon-var-ios-download-outline: "\f41f"; -@ionicon-var-ios-drag: "\f421"; -@ionicon-var-ios-email: "\f423"; -@ionicon-var-ios-email-outline: "\f422"; -@ionicon-var-ios-eye: "\f425"; -@ionicon-var-ios-eye-outline: "\f424"; -@ionicon-var-ios-fastforward: "\f427"; -@ionicon-var-ios-fastforward-outline: "\f426"; -@ionicon-var-ios-filing: "\f429"; -@ionicon-var-ios-filing-outline: "\f428"; -@ionicon-var-ios-film: "\f42b"; -@ionicon-var-ios-film-outline: "\f42a"; -@ionicon-var-ios-flag: "\f42d"; -@ionicon-var-ios-flag-outline: "\f42c"; -@ionicon-var-ios-flame: "\f42f"; -@ionicon-var-ios-flame-outline: "\f42e"; -@ionicon-var-ios-flask: "\f431"; -@ionicon-var-ios-flask-outline: "\f430"; -@ionicon-var-ios-flower: "\f433"; -@ionicon-var-ios-flower-outline: "\f432"; -@ionicon-var-ios-folder: "\f435"; -@ionicon-var-ios-folder-outline: "\f434"; -@ionicon-var-ios-football: "\f437"; -@ionicon-var-ios-football-outline: "\f436"; -@ionicon-var-ios-game-controller-a: "\f439"; -@ionicon-var-ios-game-controller-a-outline: "\f438"; -@ionicon-var-ios-game-controller-b: "\f43b"; -@ionicon-var-ios-game-controller-b-outline: "\f43a"; -@ionicon-var-ios-gear: "\f43d"; -@ionicon-var-ios-gear-outline: "\f43c"; -@ionicon-var-ios-glasses: "\f43f"; -@ionicon-var-ios-glasses-outline: "\f43e"; -@ionicon-var-ios-grid-view: "\f441"; -@ionicon-var-ios-grid-view-outline: "\f440"; -@ionicon-var-ios-heart: "\f443"; -@ionicon-var-ios-heart-outline: "\f442"; -@ionicon-var-ios-help: "\f446"; -@ionicon-var-ios-help-empty: "\f444"; -@ionicon-var-ios-help-outline: "\f445"; -@ionicon-var-ios-home: "\f448"; -@ionicon-var-ios-home-outline: "\f447"; -@ionicon-var-ios-infinite: "\f44a"; -@ionicon-var-ios-infinite-outline: "\f449"; -@ionicon-var-ios-information: "\f44d"; -@ionicon-var-ios-information-empty: "\f44b"; -@ionicon-var-ios-information-outline: "\f44c"; -@ionicon-var-ios-ionic-outline: "\f44e"; -@ionicon-var-ios-keypad: "\f450"; -@ionicon-var-ios-keypad-outline: "\f44f"; -@ionicon-var-ios-lightbulb: "\f452"; -@ionicon-var-ios-lightbulb-outline: "\f451"; -@ionicon-var-ios-list: "\f454"; -@ionicon-var-ios-list-outline: "\f453"; -@ionicon-var-ios-location: "\f456"; -@ionicon-var-ios-location-outline: "\f455"; -@ionicon-var-ios-locked: "\f458"; -@ionicon-var-ios-locked-outline: "\f457"; -@ionicon-var-ios-loop: "\f45a"; -@ionicon-var-ios-loop-strong: "\f459"; -@ionicon-var-ios-medical: "\f45c"; -@ionicon-var-ios-medical-outline: "\f45b"; -@ionicon-var-ios-medkit: "\f45e"; -@ionicon-var-ios-medkit-outline: "\f45d"; -@ionicon-var-ios-mic: "\f461"; -@ionicon-var-ios-mic-off: "\f45f"; -@ionicon-var-ios-mic-outline: "\f460"; -@ionicon-var-ios-minus: "\f464"; -@ionicon-var-ios-minus-empty: "\f462"; -@ionicon-var-ios-minus-outline: "\f463"; -@ionicon-var-ios-monitor: "\f466"; -@ionicon-var-ios-monitor-outline: "\f465"; -@ionicon-var-ios-moon: "\f468"; -@ionicon-var-ios-moon-outline: "\f467"; -@ionicon-var-ios-more: "\f46a"; -@ionicon-var-ios-more-outline: "\f469"; -@ionicon-var-ios-musical-note: "\f46b"; -@ionicon-var-ios-musical-notes: "\f46c"; -@ionicon-var-ios-navigate: "\f46e"; -@ionicon-var-ios-navigate-outline: "\f46d"; -@ionicon-var-ios-nutrition: "\f470"; -@ionicon-var-ios-nutrition-outline: "\f46f"; -@ionicon-var-ios-paper: "\f472"; -@ionicon-var-ios-paper-outline: "\f471"; -@ionicon-var-ios-paperplane: "\f474"; -@ionicon-var-ios-paperplane-outline: "\f473"; -@ionicon-var-ios-partlysunny: "\f476"; -@ionicon-var-ios-partlysunny-outline: "\f475"; -@ionicon-var-ios-pause: "\f478"; -@ionicon-var-ios-pause-outline: "\f477"; -@ionicon-var-ios-paw: "\f47a"; -@ionicon-var-ios-paw-outline: "\f479"; -@ionicon-var-ios-people: "\f47c"; -@ionicon-var-ios-people-outline: "\f47b"; -@ionicon-var-ios-person: "\f47e"; -@ionicon-var-ios-person-outline: "\f47d"; -@ionicon-var-ios-personadd: "\f480"; -@ionicon-var-ios-personadd-outline: "\f47f"; -@ionicon-var-ios-photos: "\f482"; -@ionicon-var-ios-photos-outline: "\f481"; -@ionicon-var-ios-pie: "\f484"; -@ionicon-var-ios-pie-outline: "\f483"; -@ionicon-var-ios-pint: "\f486"; -@ionicon-var-ios-pint-outline: "\f485"; -@ionicon-var-ios-play: "\f488"; -@ionicon-var-ios-play-outline: "\f487"; -@ionicon-var-ios-plus: "\f48b"; -@ionicon-var-ios-plus-empty: "\f489"; -@ionicon-var-ios-plus-outline: "\f48a"; -@ionicon-var-ios-pricetag: "\f48d"; -@ionicon-var-ios-pricetag-outline: "\f48c"; -@ionicon-var-ios-pricetags: "\f48f"; -@ionicon-var-ios-pricetags-outline: "\f48e"; -@ionicon-var-ios-printer: "\f491"; -@ionicon-var-ios-printer-outline: "\f490"; -@ionicon-var-ios-pulse: "\f493"; -@ionicon-var-ios-pulse-strong: "\f492"; -@ionicon-var-ios-rainy: "\f495"; -@ionicon-var-ios-rainy-outline: "\f494"; -@ionicon-var-ios-recording: "\f497"; -@ionicon-var-ios-recording-outline: "\f496"; -@ionicon-var-ios-redo: "\f499"; -@ionicon-var-ios-redo-outline: "\f498"; -@ionicon-var-ios-refresh: "\f49c"; -@ionicon-var-ios-refresh-empty: "\f49a"; -@ionicon-var-ios-refresh-outline: "\f49b"; -@ionicon-var-ios-reload: "\f49d"; -@ionicon-var-ios-reverse-camera: "\f49f"; -@ionicon-var-ios-reverse-camera-outline: "\f49e"; -@ionicon-var-ios-rewind: "\f4a1"; -@ionicon-var-ios-rewind-outline: "\f4a0"; -@ionicon-var-ios-rose: "\f4a3"; -@ionicon-var-ios-rose-outline: "\f4a2"; -@ionicon-var-ios-search: "\f4a5"; -@ionicon-var-ios-search-strong: "\f4a4"; -@ionicon-var-ios-settings: "\f4a7"; -@ionicon-var-ios-settings-strong: "\f4a6"; -@ionicon-var-ios-shuffle: "\f4a9"; -@ionicon-var-ios-shuffle-strong: "\f4a8"; -@ionicon-var-ios-skipbackward: "\f4ab"; -@ionicon-var-ios-skipbackward-outline: "\f4aa"; -@ionicon-var-ios-skipforward: "\f4ad"; -@ionicon-var-ios-skipforward-outline: "\f4ac"; -@ionicon-var-ios-snowy: "\f4ae"; -@ionicon-var-ios-speedometer: "\f4b0"; -@ionicon-var-ios-speedometer-outline: "\f4af"; -@ionicon-var-ios-star: "\f4b3"; -@ionicon-var-ios-star-half: "\f4b1"; -@ionicon-var-ios-star-outline: "\f4b2"; -@ionicon-var-ios-stopwatch: "\f4b5"; -@ionicon-var-ios-stopwatch-outline: "\f4b4"; -@ionicon-var-ios-sunny: "\f4b7"; -@ionicon-var-ios-sunny-outline: "\f4b6"; -@ionicon-var-ios-telephone: "\f4b9"; -@ionicon-var-ios-telephone-outline: "\f4b8"; -@ionicon-var-ios-tennisball: "\f4bb"; -@ionicon-var-ios-tennisball-outline: "\f4ba"; -@ionicon-var-ios-thunderstorm: "\f4bd"; -@ionicon-var-ios-thunderstorm-outline: "\f4bc"; -@ionicon-var-ios-time: "\f4bf"; -@ionicon-var-ios-time-outline: "\f4be"; -@ionicon-var-ios-timer: "\f4c1"; -@ionicon-var-ios-timer-outline: "\f4c0"; -@ionicon-var-ios-toggle: "\f4c3"; -@ionicon-var-ios-toggle-outline: "\f4c2"; -@ionicon-var-ios-trash: "\f4c5"; -@ionicon-var-ios-trash-outline: "\f4c4"; -@ionicon-var-ios-undo: "\f4c7"; -@ionicon-var-ios-undo-outline: "\f4c6"; -@ionicon-var-ios-unlocked: "\f4c9"; -@ionicon-var-ios-unlocked-outline: "\f4c8"; -@ionicon-var-ios-upload: "\f4cb"; -@ionicon-var-ios-upload-outline: "\f4ca"; -@ionicon-var-ios-videocam: "\f4cd"; -@ionicon-var-ios-videocam-outline: "\f4cc"; -@ionicon-var-ios-volume-high: "\f4ce"; -@ionicon-var-ios-volume-low: "\f4cf"; -@ionicon-var-ios-wineglass: "\f4d1"; -@ionicon-var-ios-wineglass-outline: "\f4d0"; -@ionicon-var-ios-world: "\f4d3"; -@ionicon-var-ios-world-outline: "\f4d2"; -@ionicon-var-ipad: "\f1f9"; -@ionicon-var-iphone: "\f1fa"; -@ionicon-var-ipod: "\f1fb"; -@ionicon-var-jet: "\f295"; -@ionicon-var-key: "\f296"; -@ionicon-var-knife: "\f297"; -@ionicon-var-laptop: "\f1fc"; -@ionicon-var-leaf: "\f1fd"; -@ionicon-var-levels: "\f298"; -@ionicon-var-lightbulb: "\f299"; -@ionicon-var-link: "\f1fe"; -@ionicon-var-load-a: "\f29a"; -@ionicon-var-load-b: "\f29b"; -@ionicon-var-load-c: "\f29c"; -@ionicon-var-load-d: "\f29d"; -@ionicon-var-location: "\f1ff"; -@ionicon-var-lock-combination: "\f4d4"; -@ionicon-var-locked: "\f200"; -@ionicon-var-log-in: "\f29e"; -@ionicon-var-log-out: "\f29f"; -@ionicon-var-loop: "\f201"; -@ionicon-var-magnet: "\f2a0"; -@ionicon-var-male: "\f2a1"; -@ionicon-var-man: "\f202"; -@ionicon-var-map: "\f203"; -@ionicon-var-medkit: "\f2a2"; -@ionicon-var-merge: "\f33f"; -@ionicon-var-mic-a: "\f204"; -@ionicon-var-mic-b: "\f205"; -@ionicon-var-mic-c: "\f206"; -@ionicon-var-minus: "\f209"; -@ionicon-var-minus-circled: "\f207"; -@ionicon-var-minus-round: "\f208"; -@ionicon-var-model-s: "\f2c1"; -@ionicon-var-monitor: "\f20a"; -@ionicon-var-more: "\f20b"; -@ionicon-var-mouse: "\f340"; -@ionicon-var-music-note: "\f20c"; -@ionicon-var-navicon: "\f20e"; -@ionicon-var-navicon-round: "\f20d"; -@ionicon-var-navigate: "\f2a3"; -@ionicon-var-network: "\f341"; -@ionicon-var-no-smoking: "\f2c2"; -@ionicon-var-nuclear: "\f2a4"; -@ionicon-var-outlet: "\f342"; -@ionicon-var-paintbrush: "\f4d5"; -@ionicon-var-paintbucket: "\f4d6"; -@ionicon-var-paper-airplane: "\f2c3"; -@ionicon-var-paperclip: "\f20f"; -@ionicon-var-pause: "\f210"; -@ionicon-var-person: "\f213"; -@ionicon-var-person-add: "\f211"; -@ionicon-var-person-stalker: "\f212"; -@ionicon-var-pie-graph: "\f2a5"; -@ionicon-var-pin: "\f2a6"; -@ionicon-var-pinpoint: "\f2a7"; -@ionicon-var-pizza: "\f2a8"; -@ionicon-var-plane: "\f214"; -@ionicon-var-planet: "\f343"; -@ionicon-var-play: "\f215"; -@ionicon-var-playstation: "\f30a"; -@ionicon-var-plus: "\f218"; -@ionicon-var-plus-circled: "\f216"; -@ionicon-var-plus-round: "\f217"; -@ionicon-var-podium: "\f344"; -@ionicon-var-pound: "\f219"; -@ionicon-var-power: "\f2a9"; -@ionicon-var-pricetag: "\f2aa"; -@ionicon-var-pricetags: "\f2ab"; -@ionicon-var-printer: "\f21a"; -@ionicon-var-pull-request: "\f345"; -@ionicon-var-qr-scanner: "\f346"; -@ionicon-var-quote: "\f347"; -@ionicon-var-radio-waves: "\f2ac"; -@ionicon-var-record: "\f21b"; -@ionicon-var-refresh: "\f21c"; -@ionicon-var-reply: "\f21e"; -@ionicon-var-reply-all: "\f21d"; -@ionicon-var-ribbon-a: "\f348"; -@ionicon-var-ribbon-b: "\f349"; -@ionicon-var-sad: "\f34a"; -@ionicon-var-sad-outline: "\f4d7"; -@ionicon-var-scissors: "\f34b"; -@ionicon-var-search: "\f21f"; -@ionicon-var-settings: "\f2ad"; -@ionicon-var-share: "\f220"; -@ionicon-var-shuffle: "\f221"; -@ionicon-var-skip-backward: "\f222"; -@ionicon-var-skip-forward: "\f223"; -@ionicon-var-social-android: "\f225"; -@ionicon-var-social-android-outline: "\f224"; -@ionicon-var-social-angular: "\f4d9"; -@ionicon-var-social-angular-outline: "\f4d8"; -@ionicon-var-social-apple: "\f227"; -@ionicon-var-social-apple-outline: "\f226"; -@ionicon-var-social-bitcoin: "\f2af"; -@ionicon-var-social-bitcoin-outline: "\f2ae"; -@ionicon-var-social-buffer: "\f229"; -@ionicon-var-social-buffer-outline: "\f228"; -@ionicon-var-social-chrome: "\f4db"; -@ionicon-var-social-chrome-outline: "\f4da"; -@ionicon-var-social-codepen: "\f4dd"; -@ionicon-var-social-codepen-outline: "\f4dc"; -@ionicon-var-social-css3: "\f4df"; -@ionicon-var-social-css3-outline: "\f4de"; -@ionicon-var-social-designernews: "\f22b"; -@ionicon-var-social-designernews-outline: "\f22a"; -@ionicon-var-social-dribbble: "\f22d"; -@ionicon-var-social-dribbble-outline: "\f22c"; -@ionicon-var-social-dropbox: "\f22f"; -@ionicon-var-social-dropbox-outline: "\f22e"; -@ionicon-var-social-euro: "\f4e1"; -@ionicon-var-social-euro-outline: "\f4e0"; -@ionicon-var-social-facebook: "\f231"; -@ionicon-var-social-facebook-outline: "\f230"; -@ionicon-var-social-foursquare: "\f34d"; -@ionicon-var-social-foursquare-outline: "\f34c"; -@ionicon-var-social-freebsd-devil: "\f2c4"; -@ionicon-var-social-github: "\f233"; -@ionicon-var-social-github-outline: "\f232"; -@ionicon-var-social-google: "\f34f"; -@ionicon-var-social-google-outline: "\f34e"; -@ionicon-var-social-googleplus: "\f235"; -@ionicon-var-social-googleplus-outline: "\f234"; -@ionicon-var-social-hackernews: "\f237"; -@ionicon-var-social-hackernews-outline: "\f236"; -@ionicon-var-social-html5: "\f4e3"; -@ionicon-var-social-html5-outline: "\f4e2"; -@ionicon-var-social-instagram: "\f351"; -@ionicon-var-social-instagram-outline: "\f350"; -@ionicon-var-social-javascript: "\f4e5"; -@ionicon-var-social-javascript-outline: "\f4e4"; -@ionicon-var-social-linkedin: "\f239"; -@ionicon-var-social-linkedin-outline: "\f238"; -@ionicon-var-social-markdown: "\f4e6"; -@ionicon-var-social-nodejs: "\f4e7"; -@ionicon-var-social-octocat: "\f4e8"; -@ionicon-var-social-pinterest: "\f2b1"; -@ionicon-var-social-pinterest-outline: "\f2b0"; -@ionicon-var-social-python: "\f4e9"; -@ionicon-var-social-reddit: "\f23b"; -@ionicon-var-social-reddit-outline: "\f23a"; -@ionicon-var-social-rss: "\f23d"; -@ionicon-var-social-rss-outline: "\f23c"; -@ionicon-var-social-sass: "\f4ea"; -@ionicon-var-social-skype: "\f23f"; -@ionicon-var-social-skype-outline: "\f23e"; -@ionicon-var-social-snapchat: "\f4ec"; -@ionicon-var-social-snapchat-outline: "\f4eb"; -@ionicon-var-social-tumblr: "\f241"; -@ionicon-var-social-tumblr-outline: "\f240"; -@ionicon-var-social-tux: "\f2c5"; -@ionicon-var-social-twitch: "\f4ee"; -@ionicon-var-social-twitch-outline: "\f4ed"; -@ionicon-var-social-twitter: "\f243"; -@ionicon-var-social-twitter-outline: "\f242"; -@ionicon-var-social-usd: "\f353"; -@ionicon-var-social-usd-outline: "\f352"; -@ionicon-var-social-vimeo: "\f245"; -@ionicon-var-social-vimeo-outline: "\f244"; -@ionicon-var-social-whatsapp: "\f4f0"; -@ionicon-var-social-whatsapp-outline: "\f4ef"; -@ionicon-var-social-windows: "\f247"; -@ionicon-var-social-windows-outline: "\f246"; -@ionicon-var-social-wordpress: "\f249"; -@ionicon-var-social-wordpress-outline: "\f248"; -@ionicon-var-social-yahoo: "\f24b"; -@ionicon-var-social-yahoo-outline: "\f24a"; -@ionicon-var-social-yen: "\f4f2"; -@ionicon-var-social-yen-outline: "\f4f1"; -@ionicon-var-social-youtube: "\f24d"; -@ionicon-var-social-youtube-outline: "\f24c"; -@ionicon-var-soup-can: "\f4f4"; -@ionicon-var-soup-can-outline: "\f4f3"; -@ionicon-var-speakerphone: "\f2b2"; -@ionicon-var-speedometer: "\f2b3"; -@ionicon-var-spoon: "\f2b4"; -@ionicon-var-star: "\f24e"; -@ionicon-var-stats-bars: "\f2b5"; -@ionicon-var-steam: "\f30b"; -@ionicon-var-stop: "\f24f"; -@ionicon-var-thermometer: "\f2b6"; -@ionicon-var-thumbsdown: "\f250"; -@ionicon-var-thumbsup: "\f251"; -@ionicon-var-toggle: "\f355"; -@ionicon-var-toggle-filled: "\f354"; -@ionicon-var-transgender: "\f4f5"; -@ionicon-var-trash-a: "\f252"; -@ionicon-var-trash-b: "\f253"; -@ionicon-var-trophy: "\f356"; -@ionicon-var-tshirt: "\f4f7"; -@ionicon-var-tshirt-outline: "\f4f6"; -@ionicon-var-umbrella: "\f2b7"; -@ionicon-var-university: "\f357"; -@ionicon-var-unlocked: "\f254"; -@ionicon-var-upload: "\f255"; -@ionicon-var-usb: "\f2b8"; -@ionicon-var-videocamera: "\f256"; -@ionicon-var-volume-high: "\f257"; -@ionicon-var-volume-low: "\f258"; -@ionicon-var-volume-medium: "\f259"; -@ionicon-var-volume-mute: "\f25a"; -@ionicon-var-wand: "\f358"; -@ionicon-var-waterdrop: "\f25b"; -@ionicon-var-wifi: "\f25c"; -@ionicon-var-wineglass: "\f2b9"; -@ionicon-var-woman: "\f25d"; -@ionicon-var-wrench: "\f2ba"; -@ionicon-var-xbox: "\f30c"; \ No newline at end of file diff --git a/admin/bower_components/Ionicons/less/ionicons.less b/admin/bower_components/Ionicons/less/ionicons.less deleted file mode 100644 index 163b80e..0000000 --- a/admin/bower_components/Ionicons/less/ionicons.less +++ /dev/null @@ -1,3 +0,0 @@ -@import "_ionicons-variables"; -@import "_ionicons-font"; -@import "_ionicons-icons"; diff --git a/admin/bower_components/Ionicons/png/512/alert-circled.png b/admin/bower_components/Ionicons/png/512/alert-circled.png deleted file mode 100644 index 7cdd286..0000000 Binary files a/admin/bower_components/Ionicons/png/512/alert-circled.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/alert.png b/admin/bower_components/Ionicons/png/512/alert.png deleted file mode 100644 index a0c06fe..0000000 Binary files a/admin/bower_components/Ionicons/png/512/alert.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/android-add-contact.png b/admin/bower_components/Ionicons/png/512/android-add-contact.png deleted file mode 100644 index 7dea968..0000000 Binary files a/admin/bower_components/Ionicons/png/512/android-add-contact.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/android-add.png b/admin/bower_components/Ionicons/png/512/android-add.png deleted file mode 100644 index 03838f7..0000000 Binary files a/admin/bower_components/Ionicons/png/512/android-add.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/android-alarm.png b/admin/bower_components/Ionicons/png/512/android-alarm.png deleted file mode 100644 index bc3f06f..0000000 Binary files a/admin/bower_components/Ionicons/png/512/android-alarm.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/android-archive.png b/admin/bower_components/Ionicons/png/512/android-archive.png deleted file mode 100644 index ef65117..0000000 Binary files a/admin/bower_components/Ionicons/png/512/android-archive.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/android-arrow-back.png b/admin/bower_components/Ionicons/png/512/android-arrow-back.png deleted file mode 100644 index 19de4b0..0000000 Binary files a/admin/bower_components/Ionicons/png/512/android-arrow-back.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/android-arrow-down-left.png b/admin/bower_components/Ionicons/png/512/android-arrow-down-left.png deleted file mode 100644 index 4e5ef0c..0000000 Binary files a/admin/bower_components/Ionicons/png/512/android-arrow-down-left.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/android-arrow-down-right.png b/admin/bower_components/Ionicons/png/512/android-arrow-down-right.png deleted file mode 100644 index ba22a1a..0000000 Binary files a/admin/bower_components/Ionicons/png/512/android-arrow-down-right.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/android-arrow-forward.png b/admin/bower_components/Ionicons/png/512/android-arrow-forward.png deleted file mode 100644 index b85834e..0000000 Binary files a/admin/bower_components/Ionicons/png/512/android-arrow-forward.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/android-arrow-up-left.png b/admin/bower_components/Ionicons/png/512/android-arrow-up-left.png deleted file mode 100644 index eb93ab5..0000000 Binary files a/admin/bower_components/Ionicons/png/512/android-arrow-up-left.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/android-arrow-up-right.png b/admin/bower_components/Ionicons/png/512/android-arrow-up-right.png deleted file mode 100644 index 0f105d7..0000000 Binary files a/admin/bower_components/Ionicons/png/512/android-arrow-up-right.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/android-battery.png b/admin/bower_components/Ionicons/png/512/android-battery.png deleted file mode 100644 index ddeaa1e..0000000 Binary files a/admin/bower_components/Ionicons/png/512/android-battery.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/android-book.png b/admin/bower_components/Ionicons/png/512/android-book.png deleted file mode 100644 index 4764f96..0000000 Binary files a/admin/bower_components/Ionicons/png/512/android-book.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/android-calendar.png b/admin/bower_components/Ionicons/png/512/android-calendar.png deleted file mode 100644 index 547edc5..0000000 Binary files a/admin/bower_components/Ionicons/png/512/android-calendar.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/android-call.png b/admin/bower_components/Ionicons/png/512/android-call.png deleted file mode 100644 index 1d514da..0000000 Binary files a/admin/bower_components/Ionicons/png/512/android-call.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/android-camera.png b/admin/bower_components/Ionicons/png/512/android-camera.png deleted file mode 100644 index e3e8227..0000000 Binary files a/admin/bower_components/Ionicons/png/512/android-camera.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/android-chat.png b/admin/bower_components/Ionicons/png/512/android-chat.png deleted file mode 100644 index 8b7d7b9..0000000 Binary files a/admin/bower_components/Ionicons/png/512/android-chat.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/android-checkmark.png b/admin/bower_components/Ionicons/png/512/android-checkmark.png deleted file mode 100644 index bec7334..0000000 Binary files a/admin/bower_components/Ionicons/png/512/android-checkmark.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/android-clock.png b/admin/bower_components/Ionicons/png/512/android-clock.png deleted file mode 100644 index 4497605..0000000 Binary files a/admin/bower_components/Ionicons/png/512/android-clock.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/android-close.png b/admin/bower_components/Ionicons/png/512/android-close.png deleted file mode 100644 index f8a96b2..0000000 Binary files a/admin/bower_components/Ionicons/png/512/android-close.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/android-contact.png b/admin/bower_components/Ionicons/png/512/android-contact.png deleted file mode 100644 index fa8c8fa..0000000 Binary files a/admin/bower_components/Ionicons/png/512/android-contact.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/android-contacts.png b/admin/bower_components/Ionicons/png/512/android-contacts.png deleted file mode 100644 index b06e4f4..0000000 Binary files a/admin/bower_components/Ionicons/png/512/android-contacts.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/android-data.png b/admin/bower_components/Ionicons/png/512/android-data.png deleted file mode 100644 index 8fcf7c4..0000000 Binary files a/admin/bower_components/Ionicons/png/512/android-data.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/android-developer.png b/admin/bower_components/Ionicons/png/512/android-developer.png deleted file mode 100644 index 294ffe2..0000000 Binary files a/admin/bower_components/Ionicons/png/512/android-developer.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/android-display.png b/admin/bower_components/Ionicons/png/512/android-display.png deleted file mode 100644 index ff0893d..0000000 Binary files a/admin/bower_components/Ionicons/png/512/android-display.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/android-download.png b/admin/bower_components/Ionicons/png/512/android-download.png deleted file mode 100644 index 3b156cf..0000000 Binary files a/admin/bower_components/Ionicons/png/512/android-download.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/android-drawer.png b/admin/bower_components/Ionicons/png/512/android-drawer.png deleted file mode 100644 index 7b0c8b9..0000000 Binary files a/admin/bower_components/Ionicons/png/512/android-drawer.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/android-dropdown.png b/admin/bower_components/Ionicons/png/512/android-dropdown.png deleted file mode 100644 index e407881..0000000 Binary files a/admin/bower_components/Ionicons/png/512/android-dropdown.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/android-earth.png b/admin/bower_components/Ionicons/png/512/android-earth.png deleted file mode 100644 index 1f39212..0000000 Binary files a/admin/bower_components/Ionicons/png/512/android-earth.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/android-folder.png b/admin/bower_components/Ionicons/png/512/android-folder.png deleted file mode 100644 index 6c05cd4..0000000 Binary files a/admin/bower_components/Ionicons/png/512/android-folder.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/android-forums.png b/admin/bower_components/Ionicons/png/512/android-forums.png deleted file mode 100644 index 766b84d..0000000 Binary files a/admin/bower_components/Ionicons/png/512/android-forums.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/android-friends.png b/admin/bower_components/Ionicons/png/512/android-friends.png deleted file mode 100644 index 2e4e4e3..0000000 Binary files a/admin/bower_components/Ionicons/png/512/android-friends.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/android-hand.png b/admin/bower_components/Ionicons/png/512/android-hand.png deleted file mode 100644 index 5ebb0c5..0000000 Binary files a/admin/bower_components/Ionicons/png/512/android-hand.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/android-image.png b/admin/bower_components/Ionicons/png/512/android-image.png deleted file mode 100644 index d3b1af9..0000000 Binary files a/admin/bower_components/Ionicons/png/512/android-image.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/android-inbox.png b/admin/bower_components/Ionicons/png/512/android-inbox.png deleted file mode 100644 index 1ca66de..0000000 Binary files a/admin/bower_components/Ionicons/png/512/android-inbox.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/android-information.png b/admin/bower_components/Ionicons/png/512/android-information.png deleted file mode 100644 index 9d9c923..0000000 Binary files a/admin/bower_components/Ionicons/png/512/android-information.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/android-keypad.png b/admin/bower_components/Ionicons/png/512/android-keypad.png deleted file mode 100644 index cd22f55..0000000 Binary files a/admin/bower_components/Ionicons/png/512/android-keypad.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/android-lightbulb.png b/admin/bower_components/Ionicons/png/512/android-lightbulb.png deleted file mode 100644 index 963b244..0000000 Binary files a/admin/bower_components/Ionicons/png/512/android-lightbulb.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/android-locate.png b/admin/bower_components/Ionicons/png/512/android-locate.png deleted file mode 100644 index 5288a28..0000000 Binary files a/admin/bower_components/Ionicons/png/512/android-locate.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/android-location.png b/admin/bower_components/Ionicons/png/512/android-location.png deleted file mode 100644 index 05cc5b6..0000000 Binary files a/admin/bower_components/Ionicons/png/512/android-location.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/android-mail.png b/admin/bower_components/Ionicons/png/512/android-mail.png deleted file mode 100644 index 894b121..0000000 Binary files a/admin/bower_components/Ionicons/png/512/android-mail.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/android-microphone.png b/admin/bower_components/Ionicons/png/512/android-microphone.png deleted file mode 100644 index b99bf61..0000000 Binary files a/admin/bower_components/Ionicons/png/512/android-microphone.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/android-mixer.png b/admin/bower_components/Ionicons/png/512/android-mixer.png deleted file mode 100644 index 5b910d5..0000000 Binary files a/admin/bower_components/Ionicons/png/512/android-mixer.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/android-more.png b/admin/bower_components/Ionicons/png/512/android-more.png deleted file mode 100644 index a3ac53a..0000000 Binary files a/admin/bower_components/Ionicons/png/512/android-more.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/android-note.png b/admin/bower_components/Ionicons/png/512/android-note.png deleted file mode 100644 index 75643c5..0000000 Binary files a/admin/bower_components/Ionicons/png/512/android-note.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/android-playstore.png b/admin/bower_components/Ionicons/png/512/android-playstore.png deleted file mode 100644 index 9202fc6..0000000 Binary files a/admin/bower_components/Ionicons/png/512/android-playstore.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/android-printer.png b/admin/bower_components/Ionicons/png/512/android-printer.png deleted file mode 100644 index a653818..0000000 Binary files a/admin/bower_components/Ionicons/png/512/android-printer.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/android-promotion.png b/admin/bower_components/Ionicons/png/512/android-promotion.png deleted file mode 100644 index b65d1e8..0000000 Binary files a/admin/bower_components/Ionicons/png/512/android-promotion.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/android-reminder.png b/admin/bower_components/Ionicons/png/512/android-reminder.png deleted file mode 100644 index 41aadaa..0000000 Binary files a/admin/bower_components/Ionicons/png/512/android-reminder.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/android-remove.png b/admin/bower_components/Ionicons/png/512/android-remove.png deleted file mode 100644 index 467d776..0000000 Binary files a/admin/bower_components/Ionicons/png/512/android-remove.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/android-search.png b/admin/bower_components/Ionicons/png/512/android-search.png deleted file mode 100644 index 148264d..0000000 Binary files a/admin/bower_components/Ionicons/png/512/android-search.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/android-send.png b/admin/bower_components/Ionicons/png/512/android-send.png deleted file mode 100644 index 3c668db..0000000 Binary files a/admin/bower_components/Ionicons/png/512/android-send.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/android-settings.png b/admin/bower_components/Ionicons/png/512/android-settings.png deleted file mode 100644 index 0090ed8..0000000 Binary files a/admin/bower_components/Ionicons/png/512/android-settings.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/android-share.png b/admin/bower_components/Ionicons/png/512/android-share.png deleted file mode 100644 index 3f7773c..0000000 Binary files a/admin/bower_components/Ionicons/png/512/android-share.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/android-social-user.png b/admin/bower_components/Ionicons/png/512/android-social-user.png deleted file mode 100644 index db31a6b..0000000 Binary files a/admin/bower_components/Ionicons/png/512/android-social-user.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/android-social.png b/admin/bower_components/Ionicons/png/512/android-social.png deleted file mode 100644 index 4dd3c37..0000000 Binary files a/admin/bower_components/Ionicons/png/512/android-social.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/android-sort.png b/admin/bower_components/Ionicons/png/512/android-sort.png deleted file mode 100644 index cb68046..0000000 Binary files a/admin/bower_components/Ionicons/png/512/android-sort.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/android-stair-drawer.png b/admin/bower_components/Ionicons/png/512/android-stair-drawer.png deleted file mode 100644 index 8b339ea..0000000 Binary files a/admin/bower_components/Ionicons/png/512/android-stair-drawer.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/android-star.png b/admin/bower_components/Ionicons/png/512/android-star.png deleted file mode 100644 index aee429c..0000000 Binary files a/admin/bower_components/Ionicons/png/512/android-star.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/android-stopwatch.png b/admin/bower_components/Ionicons/png/512/android-stopwatch.png deleted file mode 100644 index ca404d9..0000000 Binary files a/admin/bower_components/Ionicons/png/512/android-stopwatch.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/android-storage.png b/admin/bower_components/Ionicons/png/512/android-storage.png deleted file mode 100644 index af2db37..0000000 Binary files a/admin/bower_components/Ionicons/png/512/android-storage.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/android-system-back.png b/admin/bower_components/Ionicons/png/512/android-system-back.png deleted file mode 100644 index a7b22bf..0000000 Binary files a/admin/bower_components/Ionicons/png/512/android-system-back.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/android-system-home.png b/admin/bower_components/Ionicons/png/512/android-system-home.png deleted file mode 100644 index 54fa323..0000000 Binary files a/admin/bower_components/Ionicons/png/512/android-system-home.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/android-system-windows.png b/admin/bower_components/Ionicons/png/512/android-system-windows.png deleted file mode 100644 index 4ea950c..0000000 Binary files a/admin/bower_components/Ionicons/png/512/android-system-windows.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/android-timer.png b/admin/bower_components/Ionicons/png/512/android-timer.png deleted file mode 100644 index 6584dc7..0000000 Binary files a/admin/bower_components/Ionicons/png/512/android-timer.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/android-trash.png b/admin/bower_components/Ionicons/png/512/android-trash.png deleted file mode 100644 index d843498..0000000 Binary files a/admin/bower_components/Ionicons/png/512/android-trash.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/android-user-menu.png b/admin/bower_components/Ionicons/png/512/android-user-menu.png deleted file mode 100644 index 8ddb33a..0000000 Binary files a/admin/bower_components/Ionicons/png/512/android-user-menu.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/android-volume.png b/admin/bower_components/Ionicons/png/512/android-volume.png deleted file mode 100644 index 8faa604..0000000 Binary files a/admin/bower_components/Ionicons/png/512/android-volume.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/android-wifi.png b/admin/bower_components/Ionicons/png/512/android-wifi.png deleted file mode 100644 index f9a9a1f..0000000 Binary files a/admin/bower_components/Ionicons/png/512/android-wifi.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/aperture.png b/admin/bower_components/Ionicons/png/512/aperture.png deleted file mode 100644 index cb0f548..0000000 Binary files a/admin/bower_components/Ionicons/png/512/aperture.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/archive.png b/admin/bower_components/Ionicons/png/512/archive.png deleted file mode 100644 index 7e52197..0000000 Binary files a/admin/bower_components/Ionicons/png/512/archive.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/arrow-down-a.png b/admin/bower_components/Ionicons/png/512/arrow-down-a.png deleted file mode 100644 index c6c2513..0000000 Binary files a/admin/bower_components/Ionicons/png/512/arrow-down-a.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/arrow-down-b.png b/admin/bower_components/Ionicons/png/512/arrow-down-b.png deleted file mode 100644 index da3041f..0000000 Binary files a/admin/bower_components/Ionicons/png/512/arrow-down-b.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/arrow-down-c.png b/admin/bower_components/Ionicons/png/512/arrow-down-c.png deleted file mode 100644 index 3643857..0000000 Binary files a/admin/bower_components/Ionicons/png/512/arrow-down-c.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/arrow-expand.png b/admin/bower_components/Ionicons/png/512/arrow-expand.png deleted file mode 100644 index 4db52ab..0000000 Binary files a/admin/bower_components/Ionicons/png/512/arrow-expand.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/arrow-graph-down-left.png b/admin/bower_components/Ionicons/png/512/arrow-graph-down-left.png deleted file mode 100644 index 060d13c..0000000 Binary files a/admin/bower_components/Ionicons/png/512/arrow-graph-down-left.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/arrow-graph-down-right.png b/admin/bower_components/Ionicons/png/512/arrow-graph-down-right.png deleted file mode 100644 index 346f70d..0000000 Binary files a/admin/bower_components/Ionicons/png/512/arrow-graph-down-right.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/arrow-graph-up-left.png b/admin/bower_components/Ionicons/png/512/arrow-graph-up-left.png deleted file mode 100644 index b0247c3..0000000 Binary files a/admin/bower_components/Ionicons/png/512/arrow-graph-up-left.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/arrow-graph-up-right.png b/admin/bower_components/Ionicons/png/512/arrow-graph-up-right.png deleted file mode 100644 index d7dbb22..0000000 Binary files a/admin/bower_components/Ionicons/png/512/arrow-graph-up-right.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/arrow-left-a.png b/admin/bower_components/Ionicons/png/512/arrow-left-a.png deleted file mode 100644 index d56a7c9..0000000 Binary files a/admin/bower_components/Ionicons/png/512/arrow-left-a.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/arrow-left-b.png b/admin/bower_components/Ionicons/png/512/arrow-left-b.png deleted file mode 100644 index fdb927c..0000000 Binary files a/admin/bower_components/Ionicons/png/512/arrow-left-b.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/arrow-left-c.png b/admin/bower_components/Ionicons/png/512/arrow-left-c.png deleted file mode 100644 index c75bfc0..0000000 Binary files a/admin/bower_components/Ionicons/png/512/arrow-left-c.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/arrow-move.png b/admin/bower_components/Ionicons/png/512/arrow-move.png deleted file mode 100644 index 6c2902a..0000000 Binary files a/admin/bower_components/Ionicons/png/512/arrow-move.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/arrow-resize.png b/admin/bower_components/Ionicons/png/512/arrow-resize.png deleted file mode 100644 index 1aabbff..0000000 Binary files a/admin/bower_components/Ionicons/png/512/arrow-resize.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/arrow-return-left.png b/admin/bower_components/Ionicons/png/512/arrow-return-left.png deleted file mode 100644 index ad1d02f..0000000 Binary files a/admin/bower_components/Ionicons/png/512/arrow-return-left.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/arrow-return-right.png b/admin/bower_components/Ionicons/png/512/arrow-return-right.png deleted file mode 100644 index 8e37cc5..0000000 Binary files a/admin/bower_components/Ionicons/png/512/arrow-return-right.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/arrow-right-a.png b/admin/bower_components/Ionicons/png/512/arrow-right-a.png deleted file mode 100644 index d6dacc1..0000000 Binary files a/admin/bower_components/Ionicons/png/512/arrow-right-a.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/arrow-right-b.png b/admin/bower_components/Ionicons/png/512/arrow-right-b.png deleted file mode 100644 index 00e9069..0000000 Binary files a/admin/bower_components/Ionicons/png/512/arrow-right-b.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/arrow-right-c.png b/admin/bower_components/Ionicons/png/512/arrow-right-c.png deleted file mode 100644 index dfb3242..0000000 Binary files a/admin/bower_components/Ionicons/png/512/arrow-right-c.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/arrow-shrink.png b/admin/bower_components/Ionicons/png/512/arrow-shrink.png deleted file mode 100644 index e1de18d..0000000 Binary files a/admin/bower_components/Ionicons/png/512/arrow-shrink.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/arrow-swap.png b/admin/bower_components/Ionicons/png/512/arrow-swap.png deleted file mode 100644 index cb7a2ec..0000000 Binary files a/admin/bower_components/Ionicons/png/512/arrow-swap.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/arrow-up-a.png b/admin/bower_components/Ionicons/png/512/arrow-up-a.png deleted file mode 100644 index 6d12891..0000000 Binary files a/admin/bower_components/Ionicons/png/512/arrow-up-a.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/arrow-up-b.png b/admin/bower_components/Ionicons/png/512/arrow-up-b.png deleted file mode 100644 index a2b84ac..0000000 Binary files a/admin/bower_components/Ionicons/png/512/arrow-up-b.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/arrow-up-c.png b/admin/bower_components/Ionicons/png/512/arrow-up-c.png deleted file mode 100644 index 8e0ccc7..0000000 Binary files a/admin/bower_components/Ionicons/png/512/arrow-up-c.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/asterisk.png b/admin/bower_components/Ionicons/png/512/asterisk.png deleted file mode 100644 index 7cb3636..0000000 Binary files a/admin/bower_components/Ionicons/png/512/asterisk.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/at.png b/admin/bower_components/Ionicons/png/512/at.png deleted file mode 100644 index ae4bbe3..0000000 Binary files a/admin/bower_components/Ionicons/png/512/at.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/bag.png b/admin/bower_components/Ionicons/png/512/bag.png deleted file mode 100644 index 2612831..0000000 Binary files a/admin/bower_components/Ionicons/png/512/bag.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/battery-charging.png b/admin/bower_components/Ionicons/png/512/battery-charging.png deleted file mode 100644 index c91d30e..0000000 Binary files a/admin/bower_components/Ionicons/png/512/battery-charging.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/battery-empty.png b/admin/bower_components/Ionicons/png/512/battery-empty.png deleted file mode 100644 index 72d0197..0000000 Binary files a/admin/bower_components/Ionicons/png/512/battery-empty.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/battery-full.png b/admin/bower_components/Ionicons/png/512/battery-full.png deleted file mode 100644 index eb5bbd8..0000000 Binary files a/admin/bower_components/Ionicons/png/512/battery-full.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/battery-half.png b/admin/bower_components/Ionicons/png/512/battery-half.png deleted file mode 100644 index 28e9073..0000000 Binary files a/admin/bower_components/Ionicons/png/512/battery-half.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/battery-low.png b/admin/bower_components/Ionicons/png/512/battery-low.png deleted file mode 100644 index 12c507a..0000000 Binary files a/admin/bower_components/Ionicons/png/512/battery-low.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/beaker.png b/admin/bower_components/Ionicons/png/512/beaker.png deleted file mode 100644 index edfb857..0000000 Binary files a/admin/bower_components/Ionicons/png/512/beaker.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/beer.png b/admin/bower_components/Ionicons/png/512/beer.png deleted file mode 100644 index caa7b8e..0000000 Binary files a/admin/bower_components/Ionicons/png/512/beer.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/bluetooth.png b/admin/bower_components/Ionicons/png/512/bluetooth.png deleted file mode 100644 index 139d542..0000000 Binary files a/admin/bower_components/Ionicons/png/512/bluetooth.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/bonfire.png b/admin/bower_components/Ionicons/png/512/bonfire.png deleted file mode 100644 index 5dcf8fa..0000000 Binary files a/admin/bower_components/Ionicons/png/512/bonfire.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/bookmark.png b/admin/bower_components/Ionicons/png/512/bookmark.png deleted file mode 100644 index 35af5d7..0000000 Binary files a/admin/bower_components/Ionicons/png/512/bookmark.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/briefcase.png b/admin/bower_components/Ionicons/png/512/briefcase.png deleted file mode 100644 index 439c212..0000000 Binary files a/admin/bower_components/Ionicons/png/512/briefcase.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/bug.png b/admin/bower_components/Ionicons/png/512/bug.png deleted file mode 100644 index 8dc4d27..0000000 Binary files a/admin/bower_components/Ionicons/png/512/bug.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/calculator.png b/admin/bower_components/Ionicons/png/512/calculator.png deleted file mode 100644 index 8c425e5..0000000 Binary files a/admin/bower_components/Ionicons/png/512/calculator.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/calendar.png b/admin/bower_components/Ionicons/png/512/calendar.png deleted file mode 100644 index 2700f1b..0000000 Binary files a/admin/bower_components/Ionicons/png/512/calendar.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/camera.png b/admin/bower_components/Ionicons/png/512/camera.png deleted file mode 100644 index 522071f..0000000 Binary files a/admin/bower_components/Ionicons/png/512/camera.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/card.png b/admin/bower_components/Ionicons/png/512/card.png deleted file mode 100644 index 536ed7e..0000000 Binary files a/admin/bower_components/Ionicons/png/512/card.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/cash.png b/admin/bower_components/Ionicons/png/512/cash.png deleted file mode 100644 index 2c43f2a..0000000 Binary files a/admin/bower_components/Ionicons/png/512/cash.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/chatbox-working.png b/admin/bower_components/Ionicons/png/512/chatbox-working.png deleted file mode 100644 index c54cba4..0000000 Binary files a/admin/bower_components/Ionicons/png/512/chatbox-working.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/chatbox.png b/admin/bower_components/Ionicons/png/512/chatbox.png deleted file mode 100644 index 9d80dd8..0000000 Binary files a/admin/bower_components/Ionicons/png/512/chatbox.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/chatboxes.png b/admin/bower_components/Ionicons/png/512/chatboxes.png deleted file mode 100644 index 4cf816e..0000000 Binary files a/admin/bower_components/Ionicons/png/512/chatboxes.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/chatbubble-working.png b/admin/bower_components/Ionicons/png/512/chatbubble-working.png deleted file mode 100644 index 5b973d7..0000000 Binary files a/admin/bower_components/Ionicons/png/512/chatbubble-working.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/chatbubble.png b/admin/bower_components/Ionicons/png/512/chatbubble.png deleted file mode 100644 index ba0ebed..0000000 Binary files a/admin/bower_components/Ionicons/png/512/chatbubble.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/chatbubbles.png b/admin/bower_components/Ionicons/png/512/chatbubbles.png deleted file mode 100644 index 4d0c4c0..0000000 Binary files a/admin/bower_components/Ionicons/png/512/chatbubbles.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/checkmark-circled.png b/admin/bower_components/Ionicons/png/512/checkmark-circled.png deleted file mode 100644 index ca761f9..0000000 Binary files a/admin/bower_components/Ionicons/png/512/checkmark-circled.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/checkmark-round.png b/admin/bower_components/Ionicons/png/512/checkmark-round.png deleted file mode 100644 index bf6361e..0000000 Binary files a/admin/bower_components/Ionicons/png/512/checkmark-round.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/checkmark.png b/admin/bower_components/Ionicons/png/512/checkmark.png deleted file mode 100644 index 34d15d3..0000000 Binary files a/admin/bower_components/Ionicons/png/512/checkmark.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/chevron-down.png b/admin/bower_components/Ionicons/png/512/chevron-down.png deleted file mode 100644 index dec11dc..0000000 Binary files a/admin/bower_components/Ionicons/png/512/chevron-down.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/chevron-left.png b/admin/bower_components/Ionicons/png/512/chevron-left.png deleted file mode 100644 index 9354720..0000000 Binary files a/admin/bower_components/Ionicons/png/512/chevron-left.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/chevron-right.png b/admin/bower_components/Ionicons/png/512/chevron-right.png deleted file mode 100644 index 2a5caff..0000000 Binary files a/admin/bower_components/Ionicons/png/512/chevron-right.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/chevron-up.png b/admin/bower_components/Ionicons/png/512/chevron-up.png deleted file mode 100644 index a047b09..0000000 Binary files a/admin/bower_components/Ionicons/png/512/chevron-up.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/clipboard.png b/admin/bower_components/Ionicons/png/512/clipboard.png deleted file mode 100644 index ae22e99..0000000 Binary files a/admin/bower_components/Ionicons/png/512/clipboard.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/clock.png b/admin/bower_components/Ionicons/png/512/clock.png deleted file mode 100644 index 508d32a..0000000 Binary files a/admin/bower_components/Ionicons/png/512/clock.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/close-circled.png b/admin/bower_components/Ionicons/png/512/close-circled.png deleted file mode 100644 index e764171..0000000 Binary files a/admin/bower_components/Ionicons/png/512/close-circled.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/close-round.png b/admin/bower_components/Ionicons/png/512/close-round.png deleted file mode 100644 index 81aa367..0000000 Binary files a/admin/bower_components/Ionicons/png/512/close-round.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/close.png b/admin/bower_components/Ionicons/png/512/close.png deleted file mode 100644 index b8a65df..0000000 Binary files a/admin/bower_components/Ionicons/png/512/close.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/closed-captioning.png b/admin/bower_components/Ionicons/png/512/closed-captioning.png deleted file mode 100644 index 8a8c303..0000000 Binary files a/admin/bower_components/Ionicons/png/512/closed-captioning.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/cloud.png b/admin/bower_components/Ionicons/png/512/cloud.png deleted file mode 100644 index e693d34..0000000 Binary files a/admin/bower_components/Ionicons/png/512/cloud.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/code-download.png b/admin/bower_components/Ionicons/png/512/code-download.png deleted file mode 100644 index 43f4535..0000000 Binary files a/admin/bower_components/Ionicons/png/512/code-download.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/code-working.png b/admin/bower_components/Ionicons/png/512/code-working.png deleted file mode 100644 index b462cb3..0000000 Binary files a/admin/bower_components/Ionicons/png/512/code-working.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/code.png b/admin/bower_components/Ionicons/png/512/code.png deleted file mode 100644 index 5633483..0000000 Binary files a/admin/bower_components/Ionicons/png/512/code.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/coffee.png b/admin/bower_components/Ionicons/png/512/coffee.png deleted file mode 100644 index 578375b..0000000 Binary files a/admin/bower_components/Ionicons/png/512/coffee.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/compass.png b/admin/bower_components/Ionicons/png/512/compass.png deleted file mode 100644 index dcfa3e0..0000000 Binary files a/admin/bower_components/Ionicons/png/512/compass.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/compose.png b/admin/bower_components/Ionicons/png/512/compose.png deleted file mode 100644 index f9c6eca..0000000 Binary files a/admin/bower_components/Ionicons/png/512/compose.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/connection-bars.png b/admin/bower_components/Ionicons/png/512/connection-bars.png deleted file mode 100644 index 6ab1041..0000000 Binary files a/admin/bower_components/Ionicons/png/512/connection-bars.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/contrast.png b/admin/bower_components/Ionicons/png/512/contrast.png deleted file mode 100644 index 6d37564..0000000 Binary files a/admin/bower_components/Ionicons/png/512/contrast.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/cube.png b/admin/bower_components/Ionicons/png/512/cube.png deleted file mode 100644 index a9164ca..0000000 Binary files a/admin/bower_components/Ionicons/png/512/cube.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/disc.png b/admin/bower_components/Ionicons/png/512/disc.png deleted file mode 100644 index 3d2b9b9..0000000 Binary files a/admin/bower_components/Ionicons/png/512/disc.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/document-text.png b/admin/bower_components/Ionicons/png/512/document-text.png deleted file mode 100644 index 02318c2..0000000 Binary files a/admin/bower_components/Ionicons/png/512/document-text.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/document.png b/admin/bower_components/Ionicons/png/512/document.png deleted file mode 100644 index 0f37ec2..0000000 Binary files a/admin/bower_components/Ionicons/png/512/document.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/drag.png b/admin/bower_components/Ionicons/png/512/drag.png deleted file mode 100644 index 3a94a3b..0000000 Binary files a/admin/bower_components/Ionicons/png/512/drag.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/earth.png b/admin/bower_components/Ionicons/png/512/earth.png deleted file mode 100644 index 87a4057..0000000 Binary files a/admin/bower_components/Ionicons/png/512/earth.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/edit.png b/admin/bower_components/Ionicons/png/512/edit.png deleted file mode 100644 index 9f32a2a..0000000 Binary files a/admin/bower_components/Ionicons/png/512/edit.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/egg.png b/admin/bower_components/Ionicons/png/512/egg.png deleted file mode 100644 index 8710c88..0000000 Binary files a/admin/bower_components/Ionicons/png/512/egg.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/eject.png b/admin/bower_components/Ionicons/png/512/eject.png deleted file mode 100644 index 063c2f8..0000000 Binary files a/admin/bower_components/Ionicons/png/512/eject.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/email.png b/admin/bower_components/Ionicons/png/512/email.png deleted file mode 100644 index 972cd31..0000000 Binary files a/admin/bower_components/Ionicons/png/512/email.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/eye-disabled.png b/admin/bower_components/Ionicons/png/512/eye-disabled.png deleted file mode 100644 index d973e41..0000000 Binary files a/admin/bower_components/Ionicons/png/512/eye-disabled.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/eye.png b/admin/bower_components/Ionicons/png/512/eye.png deleted file mode 100644 index 13be645..0000000 Binary files a/admin/bower_components/Ionicons/png/512/eye.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/female.png b/admin/bower_components/Ionicons/png/512/female.png deleted file mode 100644 index 53f972f..0000000 Binary files a/admin/bower_components/Ionicons/png/512/female.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/filing.png b/admin/bower_components/Ionicons/png/512/filing.png deleted file mode 100644 index 7678ba7..0000000 Binary files a/admin/bower_components/Ionicons/png/512/filing.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/film-marker.png b/admin/bower_components/Ionicons/png/512/film-marker.png deleted file mode 100644 index ebaf3e6..0000000 Binary files a/admin/bower_components/Ionicons/png/512/film-marker.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/fireball.png b/admin/bower_components/Ionicons/png/512/fireball.png deleted file mode 100644 index 8cc2877..0000000 Binary files a/admin/bower_components/Ionicons/png/512/fireball.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/flag.png b/admin/bower_components/Ionicons/png/512/flag.png deleted file mode 100644 index 28aa330..0000000 Binary files a/admin/bower_components/Ionicons/png/512/flag.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/flame.png b/admin/bower_components/Ionicons/png/512/flame.png deleted file mode 100644 index 6efca56..0000000 Binary files a/admin/bower_components/Ionicons/png/512/flame.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/flash-off.png b/admin/bower_components/Ionicons/png/512/flash-off.png deleted file mode 100644 index 878e041..0000000 Binary files a/admin/bower_components/Ionicons/png/512/flash-off.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/flash.png b/admin/bower_components/Ionicons/png/512/flash.png deleted file mode 100644 index 1cef7ac..0000000 Binary files a/admin/bower_components/Ionicons/png/512/flash.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/flask.png b/admin/bower_components/Ionicons/png/512/flask.png deleted file mode 100644 index 2f93ab6..0000000 Binary files a/admin/bower_components/Ionicons/png/512/flask.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/folder.png b/admin/bower_components/Ionicons/png/512/folder.png deleted file mode 100644 index 35ffec5..0000000 Binary files a/admin/bower_components/Ionicons/png/512/folder.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/fork-repo.png b/admin/bower_components/Ionicons/png/512/fork-repo.png deleted file mode 100644 index 9b95452..0000000 Binary files a/admin/bower_components/Ionicons/png/512/fork-repo.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/fork.png b/admin/bower_components/Ionicons/png/512/fork.png deleted file mode 100644 index 4e96622..0000000 Binary files a/admin/bower_components/Ionicons/png/512/fork.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/forward.png b/admin/bower_components/Ionicons/png/512/forward.png deleted file mode 100644 index 9a583b3..0000000 Binary files a/admin/bower_components/Ionicons/png/512/forward.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/funnel.png b/admin/bower_components/Ionicons/png/512/funnel.png deleted file mode 100644 index bdc73be..0000000 Binary files a/admin/bower_components/Ionicons/png/512/funnel.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/game-controller-a.png b/admin/bower_components/Ionicons/png/512/game-controller-a.png deleted file mode 100644 index cca3444..0000000 Binary files a/admin/bower_components/Ionicons/png/512/game-controller-a.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/game-controller-b.png b/admin/bower_components/Ionicons/png/512/game-controller-b.png deleted file mode 100644 index 54cd881..0000000 Binary files a/admin/bower_components/Ionicons/png/512/game-controller-b.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/gear-a.png b/admin/bower_components/Ionicons/png/512/gear-a.png deleted file mode 100644 index 1e3d229..0000000 Binary files a/admin/bower_components/Ionicons/png/512/gear-a.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/gear-b.png b/admin/bower_components/Ionicons/png/512/gear-b.png deleted file mode 100644 index d7fb8e0..0000000 Binary files a/admin/bower_components/Ionicons/png/512/gear-b.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/grid.png b/admin/bower_components/Ionicons/png/512/grid.png deleted file mode 100644 index 0596215..0000000 Binary files a/admin/bower_components/Ionicons/png/512/grid.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/hammer.png b/admin/bower_components/Ionicons/png/512/hammer.png deleted file mode 100644 index 1bd23c2..0000000 Binary files a/admin/bower_components/Ionicons/png/512/hammer.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/happy.png b/admin/bower_components/Ionicons/png/512/happy.png deleted file mode 100644 index 42f4b71..0000000 Binary files a/admin/bower_components/Ionicons/png/512/happy.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/headphone.png b/admin/bower_components/Ionicons/png/512/headphone.png deleted file mode 100644 index fbf54fc..0000000 Binary files a/admin/bower_components/Ionicons/png/512/headphone.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/heart-broken.png b/admin/bower_components/Ionicons/png/512/heart-broken.png deleted file mode 100644 index 24abdfe..0000000 Binary files a/admin/bower_components/Ionicons/png/512/heart-broken.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/heart.png b/admin/bower_components/Ionicons/png/512/heart.png deleted file mode 100644 index 8a444fb..0000000 Binary files a/admin/bower_components/Ionicons/png/512/heart.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/help-buoy.png b/admin/bower_components/Ionicons/png/512/help-buoy.png deleted file mode 100644 index eef82ae..0000000 Binary files a/admin/bower_components/Ionicons/png/512/help-buoy.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/help-circled.png b/admin/bower_components/Ionicons/png/512/help-circled.png deleted file mode 100644 index 5fb5e85..0000000 Binary files a/admin/bower_components/Ionicons/png/512/help-circled.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/help.png b/admin/bower_components/Ionicons/png/512/help.png deleted file mode 100644 index 8b9179d..0000000 Binary files a/admin/bower_components/Ionicons/png/512/help.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/home.png b/admin/bower_components/Ionicons/png/512/home.png deleted file mode 100644 index ad02c46..0000000 Binary files a/admin/bower_components/Ionicons/png/512/home.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/icecream.png b/admin/bower_components/Ionicons/png/512/icecream.png deleted file mode 100644 index da3ae9d..0000000 Binary files a/admin/bower_components/Ionicons/png/512/icecream.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/icon-social-google-plus-outline.png b/admin/bower_components/Ionicons/png/512/icon-social-google-plus-outline.png deleted file mode 100644 index 9eeb43f..0000000 Binary files a/admin/bower_components/Ionicons/png/512/icon-social-google-plus-outline.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/icon-social-google-plus.png b/admin/bower_components/Ionicons/png/512/icon-social-google-plus.png deleted file mode 100644 index e79ca44..0000000 Binary files a/admin/bower_components/Ionicons/png/512/icon-social-google-plus.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/image.png b/admin/bower_components/Ionicons/png/512/image.png deleted file mode 100644 index eb11e5f..0000000 Binary files a/admin/bower_components/Ionicons/png/512/image.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/images.png b/admin/bower_components/Ionicons/png/512/images.png deleted file mode 100644 index 21dcd60..0000000 Binary files a/admin/bower_components/Ionicons/png/512/images.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/information-circled.png b/admin/bower_components/Ionicons/png/512/information-circled.png deleted file mode 100644 index a85ad30..0000000 Binary files a/admin/bower_components/Ionicons/png/512/information-circled.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/information.png b/admin/bower_components/Ionicons/png/512/information.png deleted file mode 100644 index 8e03190..0000000 Binary files a/admin/bower_components/Ionicons/png/512/information.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/ionic.png b/admin/bower_components/Ionicons/png/512/ionic.png deleted file mode 100644 index 95d7076..0000000 Binary files a/admin/bower_components/Ionicons/png/512/ionic.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/ios7-alarm-outline.png b/admin/bower_components/Ionicons/png/512/ios7-alarm-outline.png deleted file mode 100644 index 2809a5b..0000000 Binary files a/admin/bower_components/Ionicons/png/512/ios7-alarm-outline.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/ios7-alarm.png b/admin/bower_components/Ionicons/png/512/ios7-alarm.png deleted file mode 100644 index 6c7415f..0000000 Binary files a/admin/bower_components/Ionicons/png/512/ios7-alarm.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/ios7-albums-outline.png b/admin/bower_components/Ionicons/png/512/ios7-albums-outline.png deleted file mode 100644 index 41b5a84..0000000 Binary files a/admin/bower_components/Ionicons/png/512/ios7-albums-outline.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/ios7-albums.png b/admin/bower_components/Ionicons/png/512/ios7-albums.png deleted file mode 100644 index bdc7672..0000000 Binary files a/admin/bower_components/Ionicons/png/512/ios7-albums.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/ios7-americanfootball-outline.png b/admin/bower_components/Ionicons/png/512/ios7-americanfootball-outline.png deleted file mode 100644 index 14c625d..0000000 Binary files a/admin/bower_components/Ionicons/png/512/ios7-americanfootball-outline.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/ios7-americanfootball.png b/admin/bower_components/Ionicons/png/512/ios7-americanfootball.png deleted file mode 100644 index 81834cf..0000000 Binary files a/admin/bower_components/Ionicons/png/512/ios7-americanfootball.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/ios7-analytics-outline.png b/admin/bower_components/Ionicons/png/512/ios7-analytics-outline.png deleted file mode 100644 index 38534a1..0000000 Binary files a/admin/bower_components/Ionicons/png/512/ios7-analytics-outline.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/ios7-analytics.png b/admin/bower_components/Ionicons/png/512/ios7-analytics.png deleted file mode 100644 index ffcd281..0000000 Binary files a/admin/bower_components/Ionicons/png/512/ios7-analytics.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/ios7-arrow-back.png b/admin/bower_components/Ionicons/png/512/ios7-arrow-back.png deleted file mode 100644 index 4051ab2..0000000 Binary files a/admin/bower_components/Ionicons/png/512/ios7-arrow-back.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/ios7-arrow-down.png b/admin/bower_components/Ionicons/png/512/ios7-arrow-down.png deleted file mode 100644 index 093eb0b..0000000 Binary files a/admin/bower_components/Ionicons/png/512/ios7-arrow-down.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/ios7-arrow-forward.png b/admin/bower_components/Ionicons/png/512/ios7-arrow-forward.png deleted file mode 100644 index aedf67a..0000000 Binary files a/admin/bower_components/Ionicons/png/512/ios7-arrow-forward.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/ios7-arrow-left.png b/admin/bower_components/Ionicons/png/512/ios7-arrow-left.png deleted file mode 100644 index acc8354..0000000 Binary files a/admin/bower_components/Ionicons/png/512/ios7-arrow-left.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/ios7-arrow-right.png b/admin/bower_components/Ionicons/png/512/ios7-arrow-right.png deleted file mode 100644 index 6144fbd..0000000 Binary files a/admin/bower_components/Ionicons/png/512/ios7-arrow-right.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/ios7-arrow-thin-down.png b/admin/bower_components/Ionicons/png/512/ios7-arrow-thin-down.png deleted file mode 100644 index 8a5c17c..0000000 Binary files a/admin/bower_components/Ionicons/png/512/ios7-arrow-thin-down.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/ios7-arrow-thin-left.png b/admin/bower_components/Ionicons/png/512/ios7-arrow-thin-left.png deleted file mode 100644 index 4f8bf90..0000000 Binary files a/admin/bower_components/Ionicons/png/512/ios7-arrow-thin-left.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/ios7-arrow-thin-right.png b/admin/bower_components/Ionicons/png/512/ios7-arrow-thin-right.png deleted file mode 100644 index b97e69c..0000000 Binary files a/admin/bower_components/Ionicons/png/512/ios7-arrow-thin-right.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/ios7-arrow-thin-up.png b/admin/bower_components/Ionicons/png/512/ios7-arrow-thin-up.png deleted file mode 100644 index 61bb13a..0000000 Binary files a/admin/bower_components/Ionicons/png/512/ios7-arrow-thin-up.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/ios7-arrow-up.png b/admin/bower_components/Ionicons/png/512/ios7-arrow-up.png deleted file mode 100644 index b4733f2..0000000 Binary files a/admin/bower_components/Ionicons/png/512/ios7-arrow-up.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/ios7-at-outline.png b/admin/bower_components/Ionicons/png/512/ios7-at-outline.png deleted file mode 100644 index 22346e2..0000000 Binary files a/admin/bower_components/Ionicons/png/512/ios7-at-outline.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/ios7-at.png b/admin/bower_components/Ionicons/png/512/ios7-at.png deleted file mode 100644 index be38570..0000000 Binary files a/admin/bower_components/Ionicons/png/512/ios7-at.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/ios7-barcode-outline.png b/admin/bower_components/Ionicons/png/512/ios7-barcode-outline.png deleted file mode 100644 index 95c6c04..0000000 Binary files a/admin/bower_components/Ionicons/png/512/ios7-barcode-outline.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/ios7-barcode.png b/admin/bower_components/Ionicons/png/512/ios7-barcode.png deleted file mode 100644 index 5c7d72f..0000000 Binary files a/admin/bower_components/Ionicons/png/512/ios7-barcode.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/ios7-baseball-outline.png b/admin/bower_components/Ionicons/png/512/ios7-baseball-outline.png deleted file mode 100644 index 6bc6a21..0000000 Binary files a/admin/bower_components/Ionicons/png/512/ios7-baseball-outline.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/ios7-baseball.png b/admin/bower_components/Ionicons/png/512/ios7-baseball.png deleted file mode 100644 index b83d536..0000000 Binary files a/admin/bower_components/Ionicons/png/512/ios7-baseball.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/ios7-basketball-outline.png b/admin/bower_components/Ionicons/png/512/ios7-basketball-outline.png deleted file mode 100644 index a1999bc..0000000 Binary files a/admin/bower_components/Ionicons/png/512/ios7-basketball-outline.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/ios7-basketball.png b/admin/bower_components/Ionicons/png/512/ios7-basketball.png deleted file mode 100644 index 3c8af3d..0000000 Binary files a/admin/bower_components/Ionicons/png/512/ios7-basketball.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/ios7-bell-outline.png b/admin/bower_components/Ionicons/png/512/ios7-bell-outline.png deleted file mode 100644 index f84935b..0000000 Binary files a/admin/bower_components/Ionicons/png/512/ios7-bell-outline.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/ios7-bell.png b/admin/bower_components/Ionicons/png/512/ios7-bell.png deleted file mode 100644 index d96c352..0000000 Binary files a/admin/bower_components/Ionicons/png/512/ios7-bell.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/ios7-bolt-outline.png b/admin/bower_components/Ionicons/png/512/ios7-bolt-outline.png deleted file mode 100644 index bdf98cf..0000000 Binary files a/admin/bower_components/Ionicons/png/512/ios7-bolt-outline.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/ios7-bolt.png b/admin/bower_components/Ionicons/png/512/ios7-bolt.png deleted file mode 100644 index 723a27d..0000000 Binary files a/admin/bower_components/Ionicons/png/512/ios7-bolt.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/ios7-bookmarks-outline.png b/admin/bower_components/Ionicons/png/512/ios7-bookmarks-outline.png deleted file mode 100644 index d970194..0000000 Binary files a/admin/bower_components/Ionicons/png/512/ios7-bookmarks-outline.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/ios7-bookmarks.png b/admin/bower_components/Ionicons/png/512/ios7-bookmarks.png deleted file mode 100644 index a53199a..0000000 Binary files a/admin/bower_components/Ionicons/png/512/ios7-bookmarks.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/ios7-box-outline.png b/admin/bower_components/Ionicons/png/512/ios7-box-outline.png deleted file mode 100644 index b45b8e9..0000000 Binary files a/admin/bower_components/Ionicons/png/512/ios7-box-outline.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/ios7-box.png b/admin/bower_components/Ionicons/png/512/ios7-box.png deleted file mode 100644 index 5e2ed57..0000000 Binary files a/admin/bower_components/Ionicons/png/512/ios7-box.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/ios7-briefcase-outline.png b/admin/bower_components/Ionicons/png/512/ios7-briefcase-outline.png deleted file mode 100644 index f224f4a..0000000 Binary files a/admin/bower_components/Ionicons/png/512/ios7-briefcase-outline.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/ios7-briefcase.png b/admin/bower_components/Ionicons/png/512/ios7-briefcase.png deleted file mode 100644 index b6e581d..0000000 Binary files a/admin/bower_components/Ionicons/png/512/ios7-briefcase.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/ios7-browsers-outline.png b/admin/bower_components/Ionicons/png/512/ios7-browsers-outline.png deleted file mode 100644 index 9c0e68b..0000000 Binary files a/admin/bower_components/Ionicons/png/512/ios7-browsers-outline.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/ios7-browsers.png b/admin/bower_components/Ionicons/png/512/ios7-browsers.png deleted file mode 100644 index 4c52710..0000000 Binary files a/admin/bower_components/Ionicons/png/512/ios7-browsers.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/ios7-calculator-outline.png b/admin/bower_components/Ionicons/png/512/ios7-calculator-outline.png deleted file mode 100644 index 0492f78..0000000 Binary files a/admin/bower_components/Ionicons/png/512/ios7-calculator-outline.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/ios7-calculator.png b/admin/bower_components/Ionicons/png/512/ios7-calculator.png deleted file mode 100644 index ee55f2f..0000000 Binary files a/admin/bower_components/Ionicons/png/512/ios7-calculator.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/ios7-calendar-outline.png b/admin/bower_components/Ionicons/png/512/ios7-calendar-outline.png deleted file mode 100644 index 593bfe4..0000000 Binary files a/admin/bower_components/Ionicons/png/512/ios7-calendar-outline.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/ios7-calendar.png b/admin/bower_components/Ionicons/png/512/ios7-calendar.png deleted file mode 100644 index bbc6f86..0000000 Binary files a/admin/bower_components/Ionicons/png/512/ios7-calendar.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/ios7-camera-outline.png b/admin/bower_components/Ionicons/png/512/ios7-camera-outline.png deleted file mode 100644 index f835f6e..0000000 Binary files a/admin/bower_components/Ionicons/png/512/ios7-camera-outline.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/ios7-camera.png b/admin/bower_components/Ionicons/png/512/ios7-camera.png deleted file mode 100644 index 59bdf3d..0000000 Binary files a/admin/bower_components/Ionicons/png/512/ios7-camera.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/ios7-cart-outline.png b/admin/bower_components/Ionicons/png/512/ios7-cart-outline.png deleted file mode 100644 index 24f9d67..0000000 Binary files a/admin/bower_components/Ionicons/png/512/ios7-cart-outline.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/ios7-cart.png b/admin/bower_components/Ionicons/png/512/ios7-cart.png deleted file mode 100644 index 2e7cec1..0000000 Binary files a/admin/bower_components/Ionicons/png/512/ios7-cart.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/ios7-chatboxes-outline.png b/admin/bower_components/Ionicons/png/512/ios7-chatboxes-outline.png deleted file mode 100644 index 5fca4b9..0000000 Binary files a/admin/bower_components/Ionicons/png/512/ios7-chatboxes-outline.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/ios7-chatboxes.png b/admin/bower_components/Ionicons/png/512/ios7-chatboxes.png deleted file mode 100644 index d87b7ef..0000000 Binary files a/admin/bower_components/Ionicons/png/512/ios7-chatboxes.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/ios7-chatbubble-outline.png b/admin/bower_components/Ionicons/png/512/ios7-chatbubble-outline.png deleted file mode 100644 index 447f9cd..0000000 Binary files a/admin/bower_components/Ionicons/png/512/ios7-chatbubble-outline.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/ios7-chatbubble.png b/admin/bower_components/Ionicons/png/512/ios7-chatbubble.png deleted file mode 100644 index 33f3b2d..0000000 Binary files a/admin/bower_components/Ionicons/png/512/ios7-chatbubble.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/ios7-checkmark-empty.png b/admin/bower_components/Ionicons/png/512/ios7-checkmark-empty.png deleted file mode 100644 index f3d5c0c..0000000 Binary files a/admin/bower_components/Ionicons/png/512/ios7-checkmark-empty.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/ios7-checkmark-outline.png b/admin/bower_components/Ionicons/png/512/ios7-checkmark-outline.png deleted file mode 100644 index 1601cfe..0000000 Binary files a/admin/bower_components/Ionicons/png/512/ios7-checkmark-outline.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/ios7-checkmark.png b/admin/bower_components/Ionicons/png/512/ios7-checkmark.png deleted file mode 100644 index 23e7de3..0000000 Binary files a/admin/bower_components/Ionicons/png/512/ios7-checkmark.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/ios7-circle-filled.png b/admin/bower_components/Ionicons/png/512/ios7-circle-filled.png deleted file mode 100644 index ce8b103..0000000 Binary files a/admin/bower_components/Ionicons/png/512/ios7-circle-filled.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/ios7-circle-outline.png b/admin/bower_components/Ionicons/png/512/ios7-circle-outline.png deleted file mode 100644 index c2fcf18..0000000 Binary files a/admin/bower_components/Ionicons/png/512/ios7-circle-outline.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/ios7-clock-outline.png b/admin/bower_components/Ionicons/png/512/ios7-clock-outline.png deleted file mode 100644 index 61892f0..0000000 Binary files a/admin/bower_components/Ionicons/png/512/ios7-clock-outline.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/ios7-clock.png b/admin/bower_components/Ionicons/png/512/ios7-clock.png deleted file mode 100644 index fc17456..0000000 Binary files a/admin/bower_components/Ionicons/png/512/ios7-clock.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/ios7-close-empty.png b/admin/bower_components/Ionicons/png/512/ios7-close-empty.png deleted file mode 100644 index e64d614..0000000 Binary files a/admin/bower_components/Ionicons/png/512/ios7-close-empty.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/ios7-close-outline.png b/admin/bower_components/Ionicons/png/512/ios7-close-outline.png deleted file mode 100644 index de8b846..0000000 Binary files a/admin/bower_components/Ionicons/png/512/ios7-close-outline.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/ios7-close.png b/admin/bower_components/Ionicons/png/512/ios7-close.png deleted file mode 100644 index 6465d42..0000000 Binary files a/admin/bower_components/Ionicons/png/512/ios7-close.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/ios7-cloud-download-outline.png b/admin/bower_components/Ionicons/png/512/ios7-cloud-download-outline.png deleted file mode 100644 index 02274e2..0000000 Binary files a/admin/bower_components/Ionicons/png/512/ios7-cloud-download-outline.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/ios7-cloud-download.png b/admin/bower_components/Ionicons/png/512/ios7-cloud-download.png deleted file mode 100644 index df81fd7..0000000 Binary files a/admin/bower_components/Ionicons/png/512/ios7-cloud-download.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/ios7-cloud-outline.png b/admin/bower_components/Ionicons/png/512/ios7-cloud-outline.png deleted file mode 100644 index a264922..0000000 Binary files a/admin/bower_components/Ionicons/png/512/ios7-cloud-outline.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/ios7-cloud-upload-outline.png b/admin/bower_components/Ionicons/png/512/ios7-cloud-upload-outline.png deleted file mode 100644 index 905eb55..0000000 Binary files a/admin/bower_components/Ionicons/png/512/ios7-cloud-upload-outline.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/ios7-cloud-upload.png b/admin/bower_components/Ionicons/png/512/ios7-cloud-upload.png deleted file mode 100644 index c3c8071..0000000 Binary files a/admin/bower_components/Ionicons/png/512/ios7-cloud-upload.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/ios7-cloud.png b/admin/bower_components/Ionicons/png/512/ios7-cloud.png deleted file mode 100644 index 318bc14..0000000 Binary files a/admin/bower_components/Ionicons/png/512/ios7-cloud.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/ios7-cloudy-night-outline.png b/admin/bower_components/Ionicons/png/512/ios7-cloudy-night-outline.png deleted file mode 100644 index c2612d7..0000000 Binary files a/admin/bower_components/Ionicons/png/512/ios7-cloudy-night-outline.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/ios7-cloudy-night.png b/admin/bower_components/Ionicons/png/512/ios7-cloudy-night.png deleted file mode 100644 index 05b03d6..0000000 Binary files a/admin/bower_components/Ionicons/png/512/ios7-cloudy-night.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/ios7-cloudy-outline.png b/admin/bower_components/Ionicons/png/512/ios7-cloudy-outline.png deleted file mode 100644 index 3a00318..0000000 Binary files a/admin/bower_components/Ionicons/png/512/ios7-cloudy-outline.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/ios7-cloudy.png b/admin/bower_components/Ionicons/png/512/ios7-cloudy.png deleted file mode 100644 index 746c333..0000000 Binary files a/admin/bower_components/Ionicons/png/512/ios7-cloudy.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/ios7-cog-outline.png b/admin/bower_components/Ionicons/png/512/ios7-cog-outline.png deleted file mode 100644 index a137d1e..0000000 Binary files a/admin/bower_components/Ionicons/png/512/ios7-cog-outline.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/ios7-cog.png b/admin/bower_components/Ionicons/png/512/ios7-cog.png deleted file mode 100644 index 3069771..0000000 Binary files a/admin/bower_components/Ionicons/png/512/ios7-cog.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/ios7-compose-outline.png b/admin/bower_components/Ionicons/png/512/ios7-compose-outline.png deleted file mode 100644 index 004ec82..0000000 Binary files a/admin/bower_components/Ionicons/png/512/ios7-compose-outline.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/ios7-compose.png b/admin/bower_components/Ionicons/png/512/ios7-compose.png deleted file mode 100644 index 7b1072a..0000000 Binary files a/admin/bower_components/Ionicons/png/512/ios7-compose.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/ios7-contact-outline.png b/admin/bower_components/Ionicons/png/512/ios7-contact-outline.png deleted file mode 100644 index ec8ce43..0000000 Binary files a/admin/bower_components/Ionicons/png/512/ios7-contact-outline.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/ios7-contact.png b/admin/bower_components/Ionicons/png/512/ios7-contact.png deleted file mode 100644 index 5b4f6db..0000000 Binary files a/admin/bower_components/Ionicons/png/512/ios7-contact.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/ios7-copy-outline.png b/admin/bower_components/Ionicons/png/512/ios7-copy-outline.png deleted file mode 100644 index 9022189..0000000 Binary files a/admin/bower_components/Ionicons/png/512/ios7-copy-outline.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/ios7-copy.png b/admin/bower_components/Ionicons/png/512/ios7-copy.png deleted file mode 100644 index 842aa20..0000000 Binary files a/admin/bower_components/Ionicons/png/512/ios7-copy.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/ios7-download-outline.png b/admin/bower_components/Ionicons/png/512/ios7-download-outline.png deleted file mode 100644 index 7fbbaf5..0000000 Binary files a/admin/bower_components/Ionicons/png/512/ios7-download-outline.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/ios7-download.png b/admin/bower_components/Ionicons/png/512/ios7-download.png deleted file mode 100644 index 40a5a69..0000000 Binary files a/admin/bower_components/Ionicons/png/512/ios7-download.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/ios7-drag.png b/admin/bower_components/Ionicons/png/512/ios7-drag.png deleted file mode 100644 index d71784b..0000000 Binary files a/admin/bower_components/Ionicons/png/512/ios7-drag.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/ios7-email-outline.png b/admin/bower_components/Ionicons/png/512/ios7-email-outline.png deleted file mode 100644 index 0d4838e..0000000 Binary files a/admin/bower_components/Ionicons/png/512/ios7-email-outline.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/ios7-email.png b/admin/bower_components/Ionicons/png/512/ios7-email.png deleted file mode 100644 index 5e92b0f..0000000 Binary files a/admin/bower_components/Ionicons/png/512/ios7-email.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/ios7-expand.png b/admin/bower_components/Ionicons/png/512/ios7-expand.png deleted file mode 100644 index d52bb23..0000000 Binary files a/admin/bower_components/Ionicons/png/512/ios7-expand.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/ios7-eye-outline.png b/admin/bower_components/Ionicons/png/512/ios7-eye-outline.png deleted file mode 100644 index 2c9dfc1..0000000 Binary files a/admin/bower_components/Ionicons/png/512/ios7-eye-outline.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/ios7-eye.png b/admin/bower_components/Ionicons/png/512/ios7-eye.png deleted file mode 100644 index 1c11191..0000000 Binary files a/admin/bower_components/Ionicons/png/512/ios7-eye.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/ios7-fastforward-outline.png b/admin/bower_components/Ionicons/png/512/ios7-fastforward-outline.png deleted file mode 100644 index fc06c60..0000000 Binary files a/admin/bower_components/Ionicons/png/512/ios7-fastforward-outline.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/ios7-fastforward.png b/admin/bower_components/Ionicons/png/512/ios7-fastforward.png deleted file mode 100644 index ce34f23..0000000 Binary files a/admin/bower_components/Ionicons/png/512/ios7-fastforward.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/ios7-filing-outline.png b/admin/bower_components/Ionicons/png/512/ios7-filing-outline.png deleted file mode 100644 index 6c84c24..0000000 Binary files a/admin/bower_components/Ionicons/png/512/ios7-filing-outline.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/ios7-filing.png b/admin/bower_components/Ionicons/png/512/ios7-filing.png deleted file mode 100644 index d01cfc0..0000000 Binary files a/admin/bower_components/Ionicons/png/512/ios7-filing.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/ios7-film-outline.png b/admin/bower_components/Ionicons/png/512/ios7-film-outline.png deleted file mode 100644 index 750fe60..0000000 Binary files a/admin/bower_components/Ionicons/png/512/ios7-film-outline.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/ios7-film.png b/admin/bower_components/Ionicons/png/512/ios7-film.png deleted file mode 100644 index 4c28280..0000000 Binary files a/admin/bower_components/Ionicons/png/512/ios7-film.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/ios7-flag-outline.png b/admin/bower_components/Ionicons/png/512/ios7-flag-outline.png deleted file mode 100644 index 39c2ebe..0000000 Binary files a/admin/bower_components/Ionicons/png/512/ios7-flag-outline.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/ios7-flag.png b/admin/bower_components/Ionicons/png/512/ios7-flag.png deleted file mode 100644 index eef93be..0000000 Binary files a/admin/bower_components/Ionicons/png/512/ios7-flag.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/ios7-folder-outline.png b/admin/bower_components/Ionicons/png/512/ios7-folder-outline.png deleted file mode 100644 index 46746af..0000000 Binary files a/admin/bower_components/Ionicons/png/512/ios7-folder-outline.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/ios7-folder.png b/admin/bower_components/Ionicons/png/512/ios7-folder.png deleted file mode 100644 index a2d9366..0000000 Binary files a/admin/bower_components/Ionicons/png/512/ios7-folder.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/ios7-football-outline.png b/admin/bower_components/Ionicons/png/512/ios7-football-outline.png deleted file mode 100644 index 426f6d3..0000000 Binary files a/admin/bower_components/Ionicons/png/512/ios7-football-outline.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/ios7-football.png b/admin/bower_components/Ionicons/png/512/ios7-football.png deleted file mode 100644 index e424b7f..0000000 Binary files a/admin/bower_components/Ionicons/png/512/ios7-football.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/ios7-gear-outline.png b/admin/bower_components/Ionicons/png/512/ios7-gear-outline.png deleted file mode 100644 index 5c82237..0000000 Binary files a/admin/bower_components/Ionicons/png/512/ios7-gear-outline.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/ios7-gear.png b/admin/bower_components/Ionicons/png/512/ios7-gear.png deleted file mode 100644 index 784a0e3..0000000 Binary files a/admin/bower_components/Ionicons/png/512/ios7-gear.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/ios7-glasses-outline.png b/admin/bower_components/Ionicons/png/512/ios7-glasses-outline.png deleted file mode 100644 index 1f2cfa7..0000000 Binary files a/admin/bower_components/Ionicons/png/512/ios7-glasses-outline.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/ios7-glasses.png b/admin/bower_components/Ionicons/png/512/ios7-glasses.png deleted file mode 100644 index f0b3074..0000000 Binary files a/admin/bower_components/Ionicons/png/512/ios7-glasses.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/ios7-heart-outline.png b/admin/bower_components/Ionicons/png/512/ios7-heart-outline.png deleted file mode 100644 index c3a2533..0000000 Binary files a/admin/bower_components/Ionicons/png/512/ios7-heart-outline.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/ios7-heart.png b/admin/bower_components/Ionicons/png/512/ios7-heart.png deleted file mode 100644 index b3dbf4e..0000000 Binary files a/admin/bower_components/Ionicons/png/512/ios7-heart.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/ios7-help-empty.png b/admin/bower_components/Ionicons/png/512/ios7-help-empty.png deleted file mode 100644 index 5690a69..0000000 Binary files a/admin/bower_components/Ionicons/png/512/ios7-help-empty.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/ios7-help-outline.png b/admin/bower_components/Ionicons/png/512/ios7-help-outline.png deleted file mode 100644 index 432abf8..0000000 Binary files a/admin/bower_components/Ionicons/png/512/ios7-help-outline.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/ios7-help.png b/admin/bower_components/Ionicons/png/512/ios7-help.png deleted file mode 100644 index b5d9a44..0000000 Binary files a/admin/bower_components/Ionicons/png/512/ios7-help.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/ios7-home-outline.png b/admin/bower_components/Ionicons/png/512/ios7-home-outline.png deleted file mode 100644 index 56b27f9..0000000 Binary files a/admin/bower_components/Ionicons/png/512/ios7-home-outline.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/ios7-home.png b/admin/bower_components/Ionicons/png/512/ios7-home.png deleted file mode 100644 index 8061aa8..0000000 Binary files a/admin/bower_components/Ionicons/png/512/ios7-home.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/ios7-infinite-outline.png b/admin/bower_components/Ionicons/png/512/ios7-infinite-outline.png deleted file mode 100644 index 8c251df..0000000 Binary files a/admin/bower_components/Ionicons/png/512/ios7-infinite-outline.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/ios7-infinite.png b/admin/bower_components/Ionicons/png/512/ios7-infinite.png deleted file mode 100644 index bd2eec5..0000000 Binary files a/admin/bower_components/Ionicons/png/512/ios7-infinite.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/ios7-information-empty.png b/admin/bower_components/Ionicons/png/512/ios7-information-empty.png deleted file mode 100644 index 70af5a5..0000000 Binary files a/admin/bower_components/Ionicons/png/512/ios7-information-empty.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/ios7-information-outline.png b/admin/bower_components/Ionicons/png/512/ios7-information-outline.png deleted file mode 100644 index a1cb726..0000000 Binary files a/admin/bower_components/Ionicons/png/512/ios7-information-outline.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/ios7-information.png b/admin/bower_components/Ionicons/png/512/ios7-information.png deleted file mode 100644 index 43f3e2d..0000000 Binary files a/admin/bower_components/Ionicons/png/512/ios7-information.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/ios7-ionic-outline.png b/admin/bower_components/Ionicons/png/512/ios7-ionic-outline.png deleted file mode 100644 index cea7341..0000000 Binary files a/admin/bower_components/Ionicons/png/512/ios7-ionic-outline.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/ios7-keypad-outline.png b/admin/bower_components/Ionicons/png/512/ios7-keypad-outline.png deleted file mode 100644 index 4bc381c..0000000 Binary files a/admin/bower_components/Ionicons/png/512/ios7-keypad-outline.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/ios7-keypad.png b/admin/bower_components/Ionicons/png/512/ios7-keypad.png deleted file mode 100644 index af76a7b..0000000 Binary files a/admin/bower_components/Ionicons/png/512/ios7-keypad.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/ios7-lightbulb-outline.png b/admin/bower_components/Ionicons/png/512/ios7-lightbulb-outline.png deleted file mode 100644 index e7a13c8..0000000 Binary files a/admin/bower_components/Ionicons/png/512/ios7-lightbulb-outline.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/ios7-lightbulb.png b/admin/bower_components/Ionicons/png/512/ios7-lightbulb.png deleted file mode 100644 index 3a3e8bf..0000000 Binary files a/admin/bower_components/Ionicons/png/512/ios7-lightbulb.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/ios7-location-outline.png b/admin/bower_components/Ionicons/png/512/ios7-location-outline.png deleted file mode 100644 index 727ff05..0000000 Binary files a/admin/bower_components/Ionicons/png/512/ios7-location-outline.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/ios7-location.png b/admin/bower_components/Ionicons/png/512/ios7-location.png deleted file mode 100644 index 0126039..0000000 Binary files a/admin/bower_components/Ionicons/png/512/ios7-location.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/ios7-locked-outline.png b/admin/bower_components/Ionicons/png/512/ios7-locked-outline.png deleted file mode 100644 index e688f73..0000000 Binary files a/admin/bower_components/Ionicons/png/512/ios7-locked-outline.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/ios7-locked.png b/admin/bower_components/Ionicons/png/512/ios7-locked.png deleted file mode 100644 index ebeb2cc..0000000 Binary files a/admin/bower_components/Ionicons/png/512/ios7-locked.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/ios7-loop-strong.png b/admin/bower_components/Ionicons/png/512/ios7-loop-strong.png deleted file mode 100644 index 0fa9417..0000000 Binary files a/admin/bower_components/Ionicons/png/512/ios7-loop-strong.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/ios7-loop.png b/admin/bower_components/Ionicons/png/512/ios7-loop.png deleted file mode 100644 index 416c23d..0000000 Binary files a/admin/bower_components/Ionicons/png/512/ios7-loop.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/ios7-medkit-outline.png b/admin/bower_components/Ionicons/png/512/ios7-medkit-outline.png deleted file mode 100644 index 255d84b..0000000 Binary files a/admin/bower_components/Ionicons/png/512/ios7-medkit-outline.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/ios7-medkit.png b/admin/bower_components/Ionicons/png/512/ios7-medkit.png deleted file mode 100644 index 56b038e..0000000 Binary files a/admin/bower_components/Ionicons/png/512/ios7-medkit.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/ios7-mic-off.png b/admin/bower_components/Ionicons/png/512/ios7-mic-off.png deleted file mode 100644 index 07685a6..0000000 Binary files a/admin/bower_components/Ionicons/png/512/ios7-mic-off.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/ios7-mic-outline.png b/admin/bower_components/Ionicons/png/512/ios7-mic-outline.png deleted file mode 100644 index c252003..0000000 Binary files a/admin/bower_components/Ionicons/png/512/ios7-mic-outline.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/ios7-mic.png b/admin/bower_components/Ionicons/png/512/ios7-mic.png deleted file mode 100644 index 7870823..0000000 Binary files a/admin/bower_components/Ionicons/png/512/ios7-mic.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/ios7-minus-empty.png b/admin/bower_components/Ionicons/png/512/ios7-minus-empty.png deleted file mode 100644 index 74f3283..0000000 Binary files a/admin/bower_components/Ionicons/png/512/ios7-minus-empty.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/ios7-minus-outline.png b/admin/bower_components/Ionicons/png/512/ios7-minus-outline.png deleted file mode 100644 index d6a2d87..0000000 Binary files a/admin/bower_components/Ionicons/png/512/ios7-minus-outline.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/ios7-minus.png b/admin/bower_components/Ionicons/png/512/ios7-minus.png deleted file mode 100644 index a5f6718..0000000 Binary files a/admin/bower_components/Ionicons/png/512/ios7-minus.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/ios7-monitor-outline.png b/admin/bower_components/Ionicons/png/512/ios7-monitor-outline.png deleted file mode 100644 index 4762d1d..0000000 Binary files a/admin/bower_components/Ionicons/png/512/ios7-monitor-outline.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/ios7-monitor.png b/admin/bower_components/Ionicons/png/512/ios7-monitor.png deleted file mode 100644 index 0e2f28e..0000000 Binary files a/admin/bower_components/Ionicons/png/512/ios7-monitor.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/ios7-moon-outline.png b/admin/bower_components/Ionicons/png/512/ios7-moon-outline.png deleted file mode 100644 index 0bbd6d6..0000000 Binary files a/admin/bower_components/Ionicons/png/512/ios7-moon-outline.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/ios7-moon.png b/admin/bower_components/Ionicons/png/512/ios7-moon.png deleted file mode 100644 index 5e1e1b0..0000000 Binary files a/admin/bower_components/Ionicons/png/512/ios7-moon.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/ios7-more-outline.png b/admin/bower_components/Ionicons/png/512/ios7-more-outline.png deleted file mode 100644 index 8d3c9bf..0000000 Binary files a/admin/bower_components/Ionicons/png/512/ios7-more-outline.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/ios7-more.png b/admin/bower_components/Ionicons/png/512/ios7-more.png deleted file mode 100644 index d681b00..0000000 Binary files a/admin/bower_components/Ionicons/png/512/ios7-more.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/ios7-musical-note.png b/admin/bower_components/Ionicons/png/512/ios7-musical-note.png deleted file mode 100644 index 24186f2..0000000 Binary files a/admin/bower_components/Ionicons/png/512/ios7-musical-note.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/ios7-musical-notes.png b/admin/bower_components/Ionicons/png/512/ios7-musical-notes.png deleted file mode 100644 index 51470ab..0000000 Binary files a/admin/bower_components/Ionicons/png/512/ios7-musical-notes.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/ios7-navigate-outline.png b/admin/bower_components/Ionicons/png/512/ios7-navigate-outline.png deleted file mode 100644 index f3b40b1..0000000 Binary files a/admin/bower_components/Ionicons/png/512/ios7-navigate-outline.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/ios7-navigate.png b/admin/bower_components/Ionicons/png/512/ios7-navigate.png deleted file mode 100644 index 8df442a..0000000 Binary files a/admin/bower_components/Ionicons/png/512/ios7-navigate.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/ios7-paper-outline.png b/admin/bower_components/Ionicons/png/512/ios7-paper-outline.png deleted file mode 100644 index 6e08ebe..0000000 Binary files a/admin/bower_components/Ionicons/png/512/ios7-paper-outline.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/ios7-paper.png b/admin/bower_components/Ionicons/png/512/ios7-paper.png deleted file mode 100644 index a5c0762..0000000 Binary files a/admin/bower_components/Ionicons/png/512/ios7-paper.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/ios7-paperplane-outline.png b/admin/bower_components/Ionicons/png/512/ios7-paperplane-outline.png deleted file mode 100644 index b4c73c1..0000000 Binary files a/admin/bower_components/Ionicons/png/512/ios7-paperplane-outline.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/ios7-paperplane.png b/admin/bower_components/Ionicons/png/512/ios7-paperplane.png deleted file mode 100644 index 6b1b858..0000000 Binary files a/admin/bower_components/Ionicons/png/512/ios7-paperplane.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/ios7-partlysunny-outline.png b/admin/bower_components/Ionicons/png/512/ios7-partlysunny-outline.png deleted file mode 100644 index 2efcc2c..0000000 Binary files a/admin/bower_components/Ionicons/png/512/ios7-partlysunny-outline.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/ios7-partlysunny.png b/admin/bower_components/Ionicons/png/512/ios7-partlysunny.png deleted file mode 100644 index 13a269a..0000000 Binary files a/admin/bower_components/Ionicons/png/512/ios7-partlysunny.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/ios7-pause-outline.png b/admin/bower_components/Ionicons/png/512/ios7-pause-outline.png deleted file mode 100644 index e20b3ab..0000000 Binary files a/admin/bower_components/Ionicons/png/512/ios7-pause-outline.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/ios7-pause.png b/admin/bower_components/Ionicons/png/512/ios7-pause.png deleted file mode 100644 index 317a985..0000000 Binary files a/admin/bower_components/Ionicons/png/512/ios7-pause.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/ios7-paw-outline.png b/admin/bower_components/Ionicons/png/512/ios7-paw-outline.png deleted file mode 100644 index f5736ef..0000000 Binary files a/admin/bower_components/Ionicons/png/512/ios7-paw-outline.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/ios7-paw.png b/admin/bower_components/Ionicons/png/512/ios7-paw.png deleted file mode 100644 index bfd64fe..0000000 Binary files a/admin/bower_components/Ionicons/png/512/ios7-paw.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/ios7-people-outline.png b/admin/bower_components/Ionicons/png/512/ios7-people-outline.png deleted file mode 100644 index 5817865..0000000 Binary files a/admin/bower_components/Ionicons/png/512/ios7-people-outline.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/ios7-people.png b/admin/bower_components/Ionicons/png/512/ios7-people.png deleted file mode 100644 index 053e770..0000000 Binary files a/admin/bower_components/Ionicons/png/512/ios7-people.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/ios7-person-outline.png b/admin/bower_components/Ionicons/png/512/ios7-person-outline.png deleted file mode 100644 index a9c4a0a..0000000 Binary files a/admin/bower_components/Ionicons/png/512/ios7-person-outline.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/ios7-person.png b/admin/bower_components/Ionicons/png/512/ios7-person.png deleted file mode 100644 index baa6cf6..0000000 Binary files a/admin/bower_components/Ionicons/png/512/ios7-person.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/ios7-personadd-outline.png b/admin/bower_components/Ionicons/png/512/ios7-personadd-outline.png deleted file mode 100644 index 679b6e4..0000000 Binary files a/admin/bower_components/Ionicons/png/512/ios7-personadd-outline.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/ios7-personadd.png b/admin/bower_components/Ionicons/png/512/ios7-personadd.png deleted file mode 100644 index 354e635..0000000 Binary files a/admin/bower_components/Ionicons/png/512/ios7-personadd.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/ios7-photos-outline.png b/admin/bower_components/Ionicons/png/512/ios7-photos-outline.png deleted file mode 100644 index a6a872e..0000000 Binary files a/admin/bower_components/Ionicons/png/512/ios7-photos-outline.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/ios7-photos.png b/admin/bower_components/Ionicons/png/512/ios7-photos.png deleted file mode 100644 index 1eb0f7e..0000000 Binary files a/admin/bower_components/Ionicons/png/512/ios7-photos.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/ios7-pie-outline.png b/admin/bower_components/Ionicons/png/512/ios7-pie-outline.png deleted file mode 100644 index 8470a2f..0000000 Binary files a/admin/bower_components/Ionicons/png/512/ios7-pie-outline.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/ios7-pie.png b/admin/bower_components/Ionicons/png/512/ios7-pie.png deleted file mode 100644 index f7ab689..0000000 Binary files a/admin/bower_components/Ionicons/png/512/ios7-pie.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/ios7-play-outline.png b/admin/bower_components/Ionicons/png/512/ios7-play-outline.png deleted file mode 100644 index a484b4e..0000000 Binary files a/admin/bower_components/Ionicons/png/512/ios7-play-outline.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/ios7-play.png b/admin/bower_components/Ionicons/png/512/ios7-play.png deleted file mode 100644 index b6110aa..0000000 Binary files a/admin/bower_components/Ionicons/png/512/ios7-play.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/ios7-plus-empty.png b/admin/bower_components/Ionicons/png/512/ios7-plus-empty.png deleted file mode 100644 index 92f4030..0000000 Binary files a/admin/bower_components/Ionicons/png/512/ios7-plus-empty.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/ios7-plus-outline.png b/admin/bower_components/Ionicons/png/512/ios7-plus-outline.png deleted file mode 100644 index d6c97ce..0000000 Binary files a/admin/bower_components/Ionicons/png/512/ios7-plus-outline.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/ios7-plus.png b/admin/bower_components/Ionicons/png/512/ios7-plus.png deleted file mode 100644 index 2eaa563..0000000 Binary files a/admin/bower_components/Ionicons/png/512/ios7-plus.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/ios7-pricetag-outline.png b/admin/bower_components/Ionicons/png/512/ios7-pricetag-outline.png deleted file mode 100644 index 5184cc7..0000000 Binary files a/admin/bower_components/Ionicons/png/512/ios7-pricetag-outline.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/ios7-pricetag.png b/admin/bower_components/Ionicons/png/512/ios7-pricetag.png deleted file mode 100644 index dbcbc68..0000000 Binary files a/admin/bower_components/Ionicons/png/512/ios7-pricetag.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/ios7-pricetags-outline.png b/admin/bower_components/Ionicons/png/512/ios7-pricetags-outline.png deleted file mode 100644 index 380d968..0000000 Binary files a/admin/bower_components/Ionicons/png/512/ios7-pricetags-outline.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/ios7-pricetags.png b/admin/bower_components/Ionicons/png/512/ios7-pricetags.png deleted file mode 100644 index 0942729..0000000 Binary files a/admin/bower_components/Ionicons/png/512/ios7-pricetags.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/ios7-printer-outline.png b/admin/bower_components/Ionicons/png/512/ios7-printer-outline.png deleted file mode 100644 index c759d04..0000000 Binary files a/admin/bower_components/Ionicons/png/512/ios7-printer-outline.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/ios7-printer.png b/admin/bower_components/Ionicons/png/512/ios7-printer.png deleted file mode 100644 index 79847d9..0000000 Binary files a/admin/bower_components/Ionicons/png/512/ios7-printer.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/ios7-pulse-strong.png b/admin/bower_components/Ionicons/png/512/ios7-pulse-strong.png deleted file mode 100644 index 350b165..0000000 Binary files a/admin/bower_components/Ionicons/png/512/ios7-pulse-strong.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/ios7-pulse.png b/admin/bower_components/Ionicons/png/512/ios7-pulse.png deleted file mode 100644 index c5ffc50..0000000 Binary files a/admin/bower_components/Ionicons/png/512/ios7-pulse.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/ios7-rainy-outline.png b/admin/bower_components/Ionicons/png/512/ios7-rainy-outline.png deleted file mode 100644 index 7dc3110..0000000 Binary files a/admin/bower_components/Ionicons/png/512/ios7-rainy-outline.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/ios7-rainy.png b/admin/bower_components/Ionicons/png/512/ios7-rainy.png deleted file mode 100644 index cf0e12e..0000000 Binary files a/admin/bower_components/Ionicons/png/512/ios7-rainy.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/ios7-recording-outline.png b/admin/bower_components/Ionicons/png/512/ios7-recording-outline.png deleted file mode 100644 index 4b647f5..0000000 Binary files a/admin/bower_components/Ionicons/png/512/ios7-recording-outline.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/ios7-recording.png b/admin/bower_components/Ionicons/png/512/ios7-recording.png deleted file mode 100644 index dfe84b1..0000000 Binary files a/admin/bower_components/Ionicons/png/512/ios7-recording.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/ios7-redo-outline.png b/admin/bower_components/Ionicons/png/512/ios7-redo-outline.png deleted file mode 100644 index 235373e..0000000 Binary files a/admin/bower_components/Ionicons/png/512/ios7-redo-outline.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/ios7-redo.png b/admin/bower_components/Ionicons/png/512/ios7-redo.png deleted file mode 100644 index c003ff3..0000000 Binary files a/admin/bower_components/Ionicons/png/512/ios7-redo.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/ios7-refresh-empty.png b/admin/bower_components/Ionicons/png/512/ios7-refresh-empty.png deleted file mode 100644 index 93df8b1..0000000 Binary files a/admin/bower_components/Ionicons/png/512/ios7-refresh-empty.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/ios7-refresh-outline.png b/admin/bower_components/Ionicons/png/512/ios7-refresh-outline.png deleted file mode 100644 index f815ba7..0000000 Binary files a/admin/bower_components/Ionicons/png/512/ios7-refresh-outline.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/ios7-refresh.png b/admin/bower_components/Ionicons/png/512/ios7-refresh.png deleted file mode 100644 index 3e98749..0000000 Binary files a/admin/bower_components/Ionicons/png/512/ios7-refresh.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/ios7-reload.png b/admin/bower_components/Ionicons/png/512/ios7-reload.png deleted file mode 100644 index a109314..0000000 Binary files a/admin/bower_components/Ionicons/png/512/ios7-reload.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/ios7-reverse-camera-outline.png b/admin/bower_components/Ionicons/png/512/ios7-reverse-camera-outline.png deleted file mode 100644 index f801e3a..0000000 Binary files a/admin/bower_components/Ionicons/png/512/ios7-reverse-camera-outline.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/ios7-reverse-camera.png b/admin/bower_components/Ionicons/png/512/ios7-reverse-camera.png deleted file mode 100644 index b222f5c..0000000 Binary files a/admin/bower_components/Ionicons/png/512/ios7-reverse-camera.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/ios7-rewind-outline.png b/admin/bower_components/Ionicons/png/512/ios7-rewind-outline.png deleted file mode 100644 index cf4181d..0000000 Binary files a/admin/bower_components/Ionicons/png/512/ios7-rewind-outline.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/ios7-rewind.png b/admin/bower_components/Ionicons/png/512/ios7-rewind.png deleted file mode 100644 index 05cd946..0000000 Binary files a/admin/bower_components/Ionicons/png/512/ios7-rewind.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/ios7-search-strong.png b/admin/bower_components/Ionicons/png/512/ios7-search-strong.png deleted file mode 100644 index d59cc8f..0000000 Binary files a/admin/bower_components/Ionicons/png/512/ios7-search-strong.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/ios7-search.png b/admin/bower_components/Ionicons/png/512/ios7-search.png deleted file mode 100644 index 3b97bca..0000000 Binary files a/admin/bower_components/Ionicons/png/512/ios7-search.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/ios7-settings-strong.png b/admin/bower_components/Ionicons/png/512/ios7-settings-strong.png deleted file mode 100644 index 4f3e948..0000000 Binary files a/admin/bower_components/Ionicons/png/512/ios7-settings-strong.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/ios7-settings.png b/admin/bower_components/Ionicons/png/512/ios7-settings.png deleted file mode 100644 index 588e349..0000000 Binary files a/admin/bower_components/Ionicons/png/512/ios7-settings.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/ios7-shrink.png b/admin/bower_components/Ionicons/png/512/ios7-shrink.png deleted file mode 100644 index 8ccd4d3..0000000 Binary files a/admin/bower_components/Ionicons/png/512/ios7-shrink.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/ios7-skipbackward-outline.png b/admin/bower_components/Ionicons/png/512/ios7-skipbackward-outline.png deleted file mode 100644 index 7597d71..0000000 Binary files a/admin/bower_components/Ionicons/png/512/ios7-skipbackward-outline.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/ios7-skipbackward.png b/admin/bower_components/Ionicons/png/512/ios7-skipbackward.png deleted file mode 100644 index 0deff51..0000000 Binary files a/admin/bower_components/Ionicons/png/512/ios7-skipbackward.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/ios7-skipforward-outline.png b/admin/bower_components/Ionicons/png/512/ios7-skipforward-outline.png deleted file mode 100644 index 96e1aef..0000000 Binary files a/admin/bower_components/Ionicons/png/512/ios7-skipforward-outline.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/ios7-skipforward.png b/admin/bower_components/Ionicons/png/512/ios7-skipforward.png deleted file mode 100644 index 95c308a..0000000 Binary files a/admin/bower_components/Ionicons/png/512/ios7-skipforward.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/ios7-snowy.png b/admin/bower_components/Ionicons/png/512/ios7-snowy.png deleted file mode 100644 index 311b8bd..0000000 Binary files a/admin/bower_components/Ionicons/png/512/ios7-snowy.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/ios7-speedometer-outline.png b/admin/bower_components/Ionicons/png/512/ios7-speedometer-outline.png deleted file mode 100644 index a7120de..0000000 Binary files a/admin/bower_components/Ionicons/png/512/ios7-speedometer-outline.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/ios7-speedometer.png b/admin/bower_components/Ionicons/png/512/ios7-speedometer.png deleted file mode 100644 index bc5a2a2..0000000 Binary files a/admin/bower_components/Ionicons/png/512/ios7-speedometer.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/ios7-star-half.png b/admin/bower_components/Ionicons/png/512/ios7-star-half.png deleted file mode 100644 index 346cc8f..0000000 Binary files a/admin/bower_components/Ionicons/png/512/ios7-star-half.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/ios7-star-outline.png b/admin/bower_components/Ionicons/png/512/ios7-star-outline.png deleted file mode 100644 index 6d9cd2a..0000000 Binary files a/admin/bower_components/Ionicons/png/512/ios7-star-outline.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/ios7-star.png b/admin/bower_components/Ionicons/png/512/ios7-star.png deleted file mode 100644 index 4a28fee..0000000 Binary files a/admin/bower_components/Ionicons/png/512/ios7-star.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/ios7-stopwatch-outline.png b/admin/bower_components/Ionicons/png/512/ios7-stopwatch-outline.png deleted file mode 100644 index 8660b24..0000000 Binary files a/admin/bower_components/Ionicons/png/512/ios7-stopwatch-outline.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/ios7-stopwatch.png b/admin/bower_components/Ionicons/png/512/ios7-stopwatch.png deleted file mode 100644 index 0bd2f22..0000000 Binary files a/admin/bower_components/Ionicons/png/512/ios7-stopwatch.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/ios7-sunny-outline.png b/admin/bower_components/Ionicons/png/512/ios7-sunny-outline.png deleted file mode 100644 index 8c1943d..0000000 Binary files a/admin/bower_components/Ionicons/png/512/ios7-sunny-outline.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/ios7-sunny.png b/admin/bower_components/Ionicons/png/512/ios7-sunny.png deleted file mode 100644 index 95f8ba6..0000000 Binary files a/admin/bower_components/Ionicons/png/512/ios7-sunny.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/ios7-telephone-outline.png b/admin/bower_components/Ionicons/png/512/ios7-telephone-outline.png deleted file mode 100644 index d3a1d98..0000000 Binary files a/admin/bower_components/Ionicons/png/512/ios7-telephone-outline.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/ios7-telephone.png b/admin/bower_components/Ionicons/png/512/ios7-telephone.png deleted file mode 100644 index 983f2c2..0000000 Binary files a/admin/bower_components/Ionicons/png/512/ios7-telephone.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/ios7-tennisball-outline.png b/admin/bower_components/Ionicons/png/512/ios7-tennisball-outline.png deleted file mode 100644 index de9c07a..0000000 Binary files a/admin/bower_components/Ionicons/png/512/ios7-tennisball-outline.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/ios7-tennisball.png b/admin/bower_components/Ionicons/png/512/ios7-tennisball.png deleted file mode 100644 index 42906a4..0000000 Binary files a/admin/bower_components/Ionicons/png/512/ios7-tennisball.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/ios7-thunderstorm-outline.png b/admin/bower_components/Ionicons/png/512/ios7-thunderstorm-outline.png deleted file mode 100644 index 2a8d9db..0000000 Binary files a/admin/bower_components/Ionicons/png/512/ios7-thunderstorm-outline.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/ios7-thunderstorm.png b/admin/bower_components/Ionicons/png/512/ios7-thunderstorm.png deleted file mode 100644 index 315acf0..0000000 Binary files a/admin/bower_components/Ionicons/png/512/ios7-thunderstorm.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/ios7-time-outline.png b/admin/bower_components/Ionicons/png/512/ios7-time-outline.png deleted file mode 100644 index 6234a75..0000000 Binary files a/admin/bower_components/Ionicons/png/512/ios7-time-outline.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/ios7-time.png b/admin/bower_components/Ionicons/png/512/ios7-time.png deleted file mode 100644 index 1dc0527..0000000 Binary files a/admin/bower_components/Ionicons/png/512/ios7-time.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/ios7-timer-outline.png b/admin/bower_components/Ionicons/png/512/ios7-timer-outline.png deleted file mode 100644 index 64be982..0000000 Binary files a/admin/bower_components/Ionicons/png/512/ios7-timer-outline.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/ios7-timer.png b/admin/bower_components/Ionicons/png/512/ios7-timer.png deleted file mode 100644 index e916b52..0000000 Binary files a/admin/bower_components/Ionicons/png/512/ios7-timer.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/ios7-toggle-outline.png b/admin/bower_components/Ionicons/png/512/ios7-toggle-outline.png deleted file mode 100644 index 1202cfe..0000000 Binary files a/admin/bower_components/Ionicons/png/512/ios7-toggle-outline.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/ios7-toggle.png b/admin/bower_components/Ionicons/png/512/ios7-toggle.png deleted file mode 100644 index a7b91c8..0000000 Binary files a/admin/bower_components/Ionicons/png/512/ios7-toggle.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/ios7-trash-outline.png b/admin/bower_components/Ionicons/png/512/ios7-trash-outline.png deleted file mode 100644 index ce2dc7a..0000000 Binary files a/admin/bower_components/Ionicons/png/512/ios7-trash-outline.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/ios7-trash.png b/admin/bower_components/Ionicons/png/512/ios7-trash.png deleted file mode 100644 index 58c4346..0000000 Binary files a/admin/bower_components/Ionicons/png/512/ios7-trash.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/ios7-undo-outline.png b/admin/bower_components/Ionicons/png/512/ios7-undo-outline.png deleted file mode 100644 index db79f3d..0000000 Binary files a/admin/bower_components/Ionicons/png/512/ios7-undo-outline.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/ios7-undo.png b/admin/bower_components/Ionicons/png/512/ios7-undo.png deleted file mode 100644 index efaf7c0..0000000 Binary files a/admin/bower_components/Ionicons/png/512/ios7-undo.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/ios7-unlocked-outline.png b/admin/bower_components/Ionicons/png/512/ios7-unlocked-outline.png deleted file mode 100644 index e66c386..0000000 Binary files a/admin/bower_components/Ionicons/png/512/ios7-unlocked-outline.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/ios7-unlocked.png b/admin/bower_components/Ionicons/png/512/ios7-unlocked.png deleted file mode 100644 index fb97492..0000000 Binary files a/admin/bower_components/Ionicons/png/512/ios7-unlocked.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/ios7-upload-outline.png b/admin/bower_components/Ionicons/png/512/ios7-upload-outline.png deleted file mode 100644 index 09cc277..0000000 Binary files a/admin/bower_components/Ionicons/png/512/ios7-upload-outline.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/ios7-upload.png b/admin/bower_components/Ionicons/png/512/ios7-upload.png deleted file mode 100644 index b37773f..0000000 Binary files a/admin/bower_components/Ionicons/png/512/ios7-upload.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/ios7-videocam-outline.png b/admin/bower_components/Ionicons/png/512/ios7-videocam-outline.png deleted file mode 100644 index 0bf6d15..0000000 Binary files a/admin/bower_components/Ionicons/png/512/ios7-videocam-outline.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/ios7-videocam.png b/admin/bower_components/Ionicons/png/512/ios7-videocam.png deleted file mode 100644 index 680a8df..0000000 Binary files a/admin/bower_components/Ionicons/png/512/ios7-videocam.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/ios7-volume-high.png b/admin/bower_components/Ionicons/png/512/ios7-volume-high.png deleted file mode 100644 index 0568110..0000000 Binary files a/admin/bower_components/Ionicons/png/512/ios7-volume-high.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/ios7-volume-low.png b/admin/bower_components/Ionicons/png/512/ios7-volume-low.png deleted file mode 100644 index 34a294e..0000000 Binary files a/admin/bower_components/Ionicons/png/512/ios7-volume-low.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/ios7-wineglass-outline.png b/admin/bower_components/Ionicons/png/512/ios7-wineglass-outline.png deleted file mode 100644 index 22b9fc5..0000000 Binary files a/admin/bower_components/Ionicons/png/512/ios7-wineglass-outline.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/ios7-wineglass.png b/admin/bower_components/Ionicons/png/512/ios7-wineglass.png deleted file mode 100644 index 4dbd620..0000000 Binary files a/admin/bower_components/Ionicons/png/512/ios7-wineglass.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/ios7-world-outline.png b/admin/bower_components/Ionicons/png/512/ios7-world-outline.png deleted file mode 100644 index d14a650..0000000 Binary files a/admin/bower_components/Ionicons/png/512/ios7-world-outline.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/ios7-world.png b/admin/bower_components/Ionicons/png/512/ios7-world.png deleted file mode 100644 index 4491e61..0000000 Binary files a/admin/bower_components/Ionicons/png/512/ios7-world.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/ipad.png b/admin/bower_components/Ionicons/png/512/ipad.png deleted file mode 100644 index 85e0915..0000000 Binary files a/admin/bower_components/Ionicons/png/512/ipad.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/iphone.png b/admin/bower_components/Ionicons/png/512/iphone.png deleted file mode 100644 index 7f538ba..0000000 Binary files a/admin/bower_components/Ionicons/png/512/iphone.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/ipod.png b/admin/bower_components/Ionicons/png/512/ipod.png deleted file mode 100644 index cf3c3ae..0000000 Binary files a/admin/bower_components/Ionicons/png/512/ipod.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/jet.png b/admin/bower_components/Ionicons/png/512/jet.png deleted file mode 100644 index 166e195..0000000 Binary files a/admin/bower_components/Ionicons/png/512/jet.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/key.png b/admin/bower_components/Ionicons/png/512/key.png deleted file mode 100644 index 3ae6737..0000000 Binary files a/admin/bower_components/Ionicons/png/512/key.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/knife.png b/admin/bower_components/Ionicons/png/512/knife.png deleted file mode 100644 index 9f13a0f..0000000 Binary files a/admin/bower_components/Ionicons/png/512/knife.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/laptop.png b/admin/bower_components/Ionicons/png/512/laptop.png deleted file mode 100644 index a8ec963..0000000 Binary files a/admin/bower_components/Ionicons/png/512/laptop.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/leaf.png b/admin/bower_components/Ionicons/png/512/leaf.png deleted file mode 100644 index 3bf3801..0000000 Binary files a/admin/bower_components/Ionicons/png/512/leaf.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/levels.png b/admin/bower_components/Ionicons/png/512/levels.png deleted file mode 100644 index 79d4b3e..0000000 Binary files a/admin/bower_components/Ionicons/png/512/levels.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/lightbulb.png b/admin/bower_components/Ionicons/png/512/lightbulb.png deleted file mode 100644 index d103bfe..0000000 Binary files a/admin/bower_components/Ionicons/png/512/lightbulb.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/link.png b/admin/bower_components/Ionicons/png/512/link.png deleted file mode 100644 index 3445938..0000000 Binary files a/admin/bower_components/Ionicons/png/512/link.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/load-a.png b/admin/bower_components/Ionicons/png/512/load-a.png deleted file mode 100644 index f5cda19..0000000 Binary files a/admin/bower_components/Ionicons/png/512/load-a.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/load-b.png b/admin/bower_components/Ionicons/png/512/load-b.png deleted file mode 100644 index 7931879..0000000 Binary files a/admin/bower_components/Ionicons/png/512/load-b.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/load-c.png b/admin/bower_components/Ionicons/png/512/load-c.png deleted file mode 100644 index 39a5996..0000000 Binary files a/admin/bower_components/Ionicons/png/512/load-c.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/load-d.png b/admin/bower_components/Ionicons/png/512/load-d.png deleted file mode 100644 index 8d96f0d..0000000 Binary files a/admin/bower_components/Ionicons/png/512/load-d.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/location.png b/admin/bower_components/Ionicons/png/512/location.png deleted file mode 100644 index 5acf20a..0000000 Binary files a/admin/bower_components/Ionicons/png/512/location.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/locked.png b/admin/bower_components/Ionicons/png/512/locked.png deleted file mode 100644 index e78f815..0000000 Binary files a/admin/bower_components/Ionicons/png/512/locked.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/log-in.png b/admin/bower_components/Ionicons/png/512/log-in.png deleted file mode 100644 index 592e30c..0000000 Binary files a/admin/bower_components/Ionicons/png/512/log-in.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/log-out.png b/admin/bower_components/Ionicons/png/512/log-out.png deleted file mode 100644 index 1d41c22..0000000 Binary files a/admin/bower_components/Ionicons/png/512/log-out.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/loop.png b/admin/bower_components/Ionicons/png/512/loop.png deleted file mode 100644 index d30a7a9..0000000 Binary files a/admin/bower_components/Ionicons/png/512/loop.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/magnet.png b/admin/bower_components/Ionicons/png/512/magnet.png deleted file mode 100644 index 8925bec..0000000 Binary files a/admin/bower_components/Ionicons/png/512/magnet.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/male.png b/admin/bower_components/Ionicons/png/512/male.png deleted file mode 100644 index ea0eab3..0000000 Binary files a/admin/bower_components/Ionicons/png/512/male.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/man.png b/admin/bower_components/Ionicons/png/512/man.png deleted file mode 100644 index f0b4645..0000000 Binary files a/admin/bower_components/Ionicons/png/512/man.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/map.png b/admin/bower_components/Ionicons/png/512/map.png deleted file mode 100644 index 2aff176..0000000 Binary files a/admin/bower_components/Ionicons/png/512/map.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/medkit.png b/admin/bower_components/Ionicons/png/512/medkit.png deleted file mode 100644 index b03b2ef..0000000 Binary files a/admin/bower_components/Ionicons/png/512/medkit.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/merge.png b/admin/bower_components/Ionicons/png/512/merge.png deleted file mode 100644 index 318a59f..0000000 Binary files a/admin/bower_components/Ionicons/png/512/merge.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/mic-a.png b/admin/bower_components/Ionicons/png/512/mic-a.png deleted file mode 100644 index 1034de7..0000000 Binary files a/admin/bower_components/Ionicons/png/512/mic-a.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/mic-b.png b/admin/bower_components/Ionicons/png/512/mic-b.png deleted file mode 100644 index ea04074..0000000 Binary files a/admin/bower_components/Ionicons/png/512/mic-b.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/mic-c.png b/admin/bower_components/Ionicons/png/512/mic-c.png deleted file mode 100644 index c545bfd..0000000 Binary files a/admin/bower_components/Ionicons/png/512/mic-c.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/minus-circled.png b/admin/bower_components/Ionicons/png/512/minus-circled.png deleted file mode 100644 index fd9e840..0000000 Binary files a/admin/bower_components/Ionicons/png/512/minus-circled.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/minus-round.png b/admin/bower_components/Ionicons/png/512/minus-round.png deleted file mode 100644 index 88e6781..0000000 Binary files a/admin/bower_components/Ionicons/png/512/minus-round.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/minus.png b/admin/bower_components/Ionicons/png/512/minus.png deleted file mode 100644 index 6733715..0000000 Binary files a/admin/bower_components/Ionicons/png/512/minus.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/model-s.png b/admin/bower_components/Ionicons/png/512/model-s.png deleted file mode 100644 index ed02195..0000000 Binary files a/admin/bower_components/Ionicons/png/512/model-s.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/monitor.png b/admin/bower_components/Ionicons/png/512/monitor.png deleted file mode 100644 index 6a77e99..0000000 Binary files a/admin/bower_components/Ionicons/png/512/monitor.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/more.png b/admin/bower_components/Ionicons/png/512/more.png deleted file mode 100644 index dd48f03..0000000 Binary files a/admin/bower_components/Ionicons/png/512/more.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/mouse.png b/admin/bower_components/Ionicons/png/512/mouse.png deleted file mode 100644 index 55e7a47..0000000 Binary files a/admin/bower_components/Ionicons/png/512/mouse.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/music-note.png b/admin/bower_components/Ionicons/png/512/music-note.png deleted file mode 100644 index d65191a..0000000 Binary files a/admin/bower_components/Ionicons/png/512/music-note.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/navicon-round.png b/admin/bower_components/Ionicons/png/512/navicon-round.png deleted file mode 100644 index 82c3d40..0000000 Binary files a/admin/bower_components/Ionicons/png/512/navicon-round.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/navicon.png b/admin/bower_components/Ionicons/png/512/navicon.png deleted file mode 100644 index 2696c4d..0000000 Binary files a/admin/bower_components/Ionicons/png/512/navicon.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/navigate.png b/admin/bower_components/Ionicons/png/512/navigate.png deleted file mode 100644 index 8a3b385..0000000 Binary files a/admin/bower_components/Ionicons/png/512/navigate.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/network.png b/admin/bower_components/Ionicons/png/512/network.png deleted file mode 100644 index 7cbc5cd..0000000 Binary files a/admin/bower_components/Ionicons/png/512/network.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/no-smoking.png b/admin/bower_components/Ionicons/png/512/no-smoking.png deleted file mode 100644 index d13e35e..0000000 Binary files a/admin/bower_components/Ionicons/png/512/no-smoking.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/nuclear.png b/admin/bower_components/Ionicons/png/512/nuclear.png deleted file mode 100644 index a2a1783..0000000 Binary files a/admin/bower_components/Ionicons/png/512/nuclear.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/outlet.png b/admin/bower_components/Ionicons/png/512/outlet.png deleted file mode 100644 index b3fc905..0000000 Binary files a/admin/bower_components/Ionicons/png/512/outlet.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/paper-airplane.png b/admin/bower_components/Ionicons/png/512/paper-airplane.png deleted file mode 100644 index 76fa2e9..0000000 Binary files a/admin/bower_components/Ionicons/png/512/paper-airplane.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/paperclip.png b/admin/bower_components/Ionicons/png/512/paperclip.png deleted file mode 100644 index f11b909..0000000 Binary files a/admin/bower_components/Ionicons/png/512/paperclip.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/pause.png b/admin/bower_components/Ionicons/png/512/pause.png deleted file mode 100644 index ab8f58a..0000000 Binary files a/admin/bower_components/Ionicons/png/512/pause.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/person-add.png b/admin/bower_components/Ionicons/png/512/person-add.png deleted file mode 100644 index 07c07f1..0000000 Binary files a/admin/bower_components/Ionicons/png/512/person-add.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/person-stalker.png b/admin/bower_components/Ionicons/png/512/person-stalker.png deleted file mode 100644 index c097f82..0000000 Binary files a/admin/bower_components/Ionicons/png/512/person-stalker.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/person.png b/admin/bower_components/Ionicons/png/512/person.png deleted file mode 100644 index 2f01007..0000000 Binary files a/admin/bower_components/Ionicons/png/512/person.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/pie-graph.png b/admin/bower_components/Ionicons/png/512/pie-graph.png deleted file mode 100644 index 37d8419..0000000 Binary files a/admin/bower_components/Ionicons/png/512/pie-graph.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/pin.png b/admin/bower_components/Ionicons/png/512/pin.png deleted file mode 100644 index 22c0507..0000000 Binary files a/admin/bower_components/Ionicons/png/512/pin.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/pinpoint.png b/admin/bower_components/Ionicons/png/512/pinpoint.png deleted file mode 100644 index b2420fc..0000000 Binary files a/admin/bower_components/Ionicons/png/512/pinpoint.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/pizza.png b/admin/bower_components/Ionicons/png/512/pizza.png deleted file mode 100644 index 41e9966..0000000 Binary files a/admin/bower_components/Ionicons/png/512/pizza.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/plane.png b/admin/bower_components/Ionicons/png/512/plane.png deleted file mode 100644 index 2c12610..0000000 Binary files a/admin/bower_components/Ionicons/png/512/plane.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/planet.png b/admin/bower_components/Ionicons/png/512/planet.png deleted file mode 100644 index 9037453..0000000 Binary files a/admin/bower_components/Ionicons/png/512/planet.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/play.png b/admin/bower_components/Ionicons/png/512/play.png deleted file mode 100644 index 5da06aa..0000000 Binary files a/admin/bower_components/Ionicons/png/512/play.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/playstation.png b/admin/bower_components/Ionicons/png/512/playstation.png deleted file mode 100644 index 70e0004..0000000 Binary files a/admin/bower_components/Ionicons/png/512/playstation.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/plus-circled.png b/admin/bower_components/Ionicons/png/512/plus-circled.png deleted file mode 100644 index 203c3a9..0000000 Binary files a/admin/bower_components/Ionicons/png/512/plus-circled.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/plus-round.png b/admin/bower_components/Ionicons/png/512/plus-round.png deleted file mode 100644 index 8dee00d..0000000 Binary files a/admin/bower_components/Ionicons/png/512/plus-round.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/plus.png b/admin/bower_components/Ionicons/png/512/plus.png deleted file mode 100644 index a76887a..0000000 Binary files a/admin/bower_components/Ionicons/png/512/plus.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/podium.png b/admin/bower_components/Ionicons/png/512/podium.png deleted file mode 100644 index b34511b..0000000 Binary files a/admin/bower_components/Ionicons/png/512/podium.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/pound.png b/admin/bower_components/Ionicons/png/512/pound.png deleted file mode 100644 index 6d729a1..0000000 Binary files a/admin/bower_components/Ionicons/png/512/pound.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/power.png b/admin/bower_components/Ionicons/png/512/power.png deleted file mode 100644 index f90d423..0000000 Binary files a/admin/bower_components/Ionicons/png/512/power.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/pricetag.png b/admin/bower_components/Ionicons/png/512/pricetag.png deleted file mode 100644 index 05946eb..0000000 Binary files a/admin/bower_components/Ionicons/png/512/pricetag.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/pricetags.png b/admin/bower_components/Ionicons/png/512/pricetags.png deleted file mode 100644 index b3cca2d..0000000 Binary files a/admin/bower_components/Ionicons/png/512/pricetags.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/printer.png b/admin/bower_components/Ionicons/png/512/printer.png deleted file mode 100644 index 96264b7..0000000 Binary files a/admin/bower_components/Ionicons/png/512/printer.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/pull-request.png b/admin/bower_components/Ionicons/png/512/pull-request.png deleted file mode 100644 index f1e00b4..0000000 Binary files a/admin/bower_components/Ionicons/png/512/pull-request.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/qr-scanner.png b/admin/bower_components/Ionicons/png/512/qr-scanner.png deleted file mode 100644 index 65eada5..0000000 Binary files a/admin/bower_components/Ionicons/png/512/qr-scanner.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/quote.png b/admin/bower_components/Ionicons/png/512/quote.png deleted file mode 100644 index ba43394..0000000 Binary files a/admin/bower_components/Ionicons/png/512/quote.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/radio-waves.png b/admin/bower_components/Ionicons/png/512/radio-waves.png deleted file mode 100644 index 1695cf0..0000000 Binary files a/admin/bower_components/Ionicons/png/512/radio-waves.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/record.png b/admin/bower_components/Ionicons/png/512/record.png deleted file mode 100644 index 06d6b50..0000000 Binary files a/admin/bower_components/Ionicons/png/512/record.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/refresh.png b/admin/bower_components/Ionicons/png/512/refresh.png deleted file mode 100644 index 35515ef..0000000 Binary files a/admin/bower_components/Ionicons/png/512/refresh.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/reply-all.png b/admin/bower_components/Ionicons/png/512/reply-all.png deleted file mode 100644 index 68a1f07..0000000 Binary files a/admin/bower_components/Ionicons/png/512/reply-all.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/reply.png b/admin/bower_components/Ionicons/png/512/reply.png deleted file mode 100644 index a6bd5aa..0000000 Binary files a/admin/bower_components/Ionicons/png/512/reply.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/ribbon-a.png b/admin/bower_components/Ionicons/png/512/ribbon-a.png deleted file mode 100644 index 16243e0..0000000 Binary files a/admin/bower_components/Ionicons/png/512/ribbon-a.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/ribbon-b.png b/admin/bower_components/Ionicons/png/512/ribbon-b.png deleted file mode 100644 index d92ceac..0000000 Binary files a/admin/bower_components/Ionicons/png/512/ribbon-b.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/sad.png b/admin/bower_components/Ionicons/png/512/sad.png deleted file mode 100644 index f15f6d0..0000000 Binary files a/admin/bower_components/Ionicons/png/512/sad.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/scissors.png b/admin/bower_components/Ionicons/png/512/scissors.png deleted file mode 100644 index 0dfeef2..0000000 Binary files a/admin/bower_components/Ionicons/png/512/scissors.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/search.png b/admin/bower_components/Ionicons/png/512/search.png deleted file mode 100644 index 4ec105d..0000000 Binary files a/admin/bower_components/Ionicons/png/512/search.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/settings.png b/admin/bower_components/Ionicons/png/512/settings.png deleted file mode 100644 index 88ad0b1..0000000 Binary files a/admin/bower_components/Ionicons/png/512/settings.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/share.png b/admin/bower_components/Ionicons/png/512/share.png deleted file mode 100644 index 35f9b3f..0000000 Binary files a/admin/bower_components/Ionicons/png/512/share.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/shuffle.png b/admin/bower_components/Ionicons/png/512/shuffle.png deleted file mode 100644 index d03aadf..0000000 Binary files a/admin/bower_components/Ionicons/png/512/shuffle.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/skip-backward.png b/admin/bower_components/Ionicons/png/512/skip-backward.png deleted file mode 100644 index 4b9b2bd..0000000 Binary files a/admin/bower_components/Ionicons/png/512/skip-backward.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/skip-forward.png b/admin/bower_components/Ionicons/png/512/skip-forward.png deleted file mode 100644 index 771fae7..0000000 Binary files a/admin/bower_components/Ionicons/png/512/skip-forward.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/social-android-outline.png b/admin/bower_components/Ionicons/png/512/social-android-outline.png deleted file mode 100644 index d5abc21..0000000 Binary files a/admin/bower_components/Ionicons/png/512/social-android-outline.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/social-android.png b/admin/bower_components/Ionicons/png/512/social-android.png deleted file mode 100644 index d7b7c42..0000000 Binary files a/admin/bower_components/Ionicons/png/512/social-android.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/social-apple-outline.png b/admin/bower_components/Ionicons/png/512/social-apple-outline.png deleted file mode 100644 index e623229..0000000 Binary files a/admin/bower_components/Ionicons/png/512/social-apple-outline.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/social-apple.png b/admin/bower_components/Ionicons/png/512/social-apple.png deleted file mode 100644 index 074e4e7..0000000 Binary files a/admin/bower_components/Ionicons/png/512/social-apple.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/social-bitcoin-outline.png b/admin/bower_components/Ionicons/png/512/social-bitcoin-outline.png deleted file mode 100644 index 7e429cc..0000000 Binary files a/admin/bower_components/Ionicons/png/512/social-bitcoin-outline.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/social-bitcoin.png b/admin/bower_components/Ionicons/png/512/social-bitcoin.png deleted file mode 100644 index d431198..0000000 Binary files a/admin/bower_components/Ionicons/png/512/social-bitcoin.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/social-buffer-outline.png b/admin/bower_components/Ionicons/png/512/social-buffer-outline.png deleted file mode 100644 index a83d91a..0000000 Binary files a/admin/bower_components/Ionicons/png/512/social-buffer-outline.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/social-buffer.png b/admin/bower_components/Ionicons/png/512/social-buffer.png deleted file mode 100644 index ec962e6..0000000 Binary files a/admin/bower_components/Ionicons/png/512/social-buffer.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/social-designernews-outline.png b/admin/bower_components/Ionicons/png/512/social-designernews-outline.png deleted file mode 100644 index 87799f5..0000000 Binary files a/admin/bower_components/Ionicons/png/512/social-designernews-outline.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/social-designernews.png b/admin/bower_components/Ionicons/png/512/social-designernews.png deleted file mode 100644 index 8a036dd..0000000 Binary files a/admin/bower_components/Ionicons/png/512/social-designernews.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/social-dribbble-outline.png b/admin/bower_components/Ionicons/png/512/social-dribbble-outline.png deleted file mode 100644 index f8c0ba5..0000000 Binary files a/admin/bower_components/Ionicons/png/512/social-dribbble-outline.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/social-dribbble.png b/admin/bower_components/Ionicons/png/512/social-dribbble.png deleted file mode 100644 index f5d30bb..0000000 Binary files a/admin/bower_components/Ionicons/png/512/social-dribbble.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/social-dropbox-outline.png b/admin/bower_components/Ionicons/png/512/social-dropbox-outline.png deleted file mode 100644 index f92b056..0000000 Binary files a/admin/bower_components/Ionicons/png/512/social-dropbox-outline.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/social-dropbox.png b/admin/bower_components/Ionicons/png/512/social-dropbox.png deleted file mode 100644 index 5507c5c..0000000 Binary files a/admin/bower_components/Ionicons/png/512/social-dropbox.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/social-facebook-outline.png b/admin/bower_components/Ionicons/png/512/social-facebook-outline.png deleted file mode 100644 index 293001a..0000000 Binary files a/admin/bower_components/Ionicons/png/512/social-facebook-outline.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/social-facebook.png b/admin/bower_components/Ionicons/png/512/social-facebook.png deleted file mode 100644 index 6c41f80..0000000 Binary files a/admin/bower_components/Ionicons/png/512/social-facebook.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/social-foursquare-outline.png b/admin/bower_components/Ionicons/png/512/social-foursquare-outline.png deleted file mode 100644 index 2876633..0000000 Binary files a/admin/bower_components/Ionicons/png/512/social-foursquare-outline.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/social-foursquare.png b/admin/bower_components/Ionicons/png/512/social-foursquare.png deleted file mode 100644 index 0e671c6..0000000 Binary files a/admin/bower_components/Ionicons/png/512/social-foursquare.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/social-freebsd-devil.png b/admin/bower_components/Ionicons/png/512/social-freebsd-devil.png deleted file mode 100644 index 2700865..0000000 Binary files a/admin/bower_components/Ionicons/png/512/social-freebsd-devil.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/social-github-outline.png b/admin/bower_components/Ionicons/png/512/social-github-outline.png deleted file mode 100644 index 915f3bf..0000000 Binary files a/admin/bower_components/Ionicons/png/512/social-github-outline.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/social-github.png b/admin/bower_components/Ionicons/png/512/social-github.png deleted file mode 100644 index 87b4c75..0000000 Binary files a/admin/bower_components/Ionicons/png/512/social-github.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/social-google-outline.png b/admin/bower_components/Ionicons/png/512/social-google-outline.png deleted file mode 100644 index 08d50ba..0000000 Binary files a/admin/bower_components/Ionicons/png/512/social-google-outline.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/social-google.png b/admin/bower_components/Ionicons/png/512/social-google.png deleted file mode 100644 index b788fb9..0000000 Binary files a/admin/bower_components/Ionicons/png/512/social-google.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/social-googleplus-outline.png b/admin/bower_components/Ionicons/png/512/social-googleplus-outline.png deleted file mode 100644 index 9eeb43f..0000000 Binary files a/admin/bower_components/Ionicons/png/512/social-googleplus-outline.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/social-googleplus.png b/admin/bower_components/Ionicons/png/512/social-googleplus.png deleted file mode 100644 index e79ca44..0000000 Binary files a/admin/bower_components/Ionicons/png/512/social-googleplus.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/social-hackernews-outline.png b/admin/bower_components/Ionicons/png/512/social-hackernews-outline.png deleted file mode 100644 index 06f4319..0000000 Binary files a/admin/bower_components/Ionicons/png/512/social-hackernews-outline.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/social-hackernews.png b/admin/bower_components/Ionicons/png/512/social-hackernews.png deleted file mode 100644 index 52902fe..0000000 Binary files a/admin/bower_components/Ionicons/png/512/social-hackernews.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/social-instagram-outline.png b/admin/bower_components/Ionicons/png/512/social-instagram-outline.png deleted file mode 100644 index bf75435..0000000 Binary files a/admin/bower_components/Ionicons/png/512/social-instagram-outline.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/social-instagram.png b/admin/bower_components/Ionicons/png/512/social-instagram.png deleted file mode 100644 index 76e1ab8..0000000 Binary files a/admin/bower_components/Ionicons/png/512/social-instagram.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/social-linkedin-outline.png b/admin/bower_components/Ionicons/png/512/social-linkedin-outline.png deleted file mode 100644 index 88d8169..0000000 Binary files a/admin/bower_components/Ionicons/png/512/social-linkedin-outline.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/social-linkedin.png b/admin/bower_components/Ionicons/png/512/social-linkedin.png deleted file mode 100644 index 8e2eedf..0000000 Binary files a/admin/bower_components/Ionicons/png/512/social-linkedin.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/social-pinterest-outline.png b/admin/bower_components/Ionicons/png/512/social-pinterest-outline.png deleted file mode 100644 index 75321dc..0000000 Binary files a/admin/bower_components/Ionicons/png/512/social-pinterest-outline.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/social-pinterest.png b/admin/bower_components/Ionicons/png/512/social-pinterest.png deleted file mode 100644 index 6bb578d..0000000 Binary files a/admin/bower_components/Ionicons/png/512/social-pinterest.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/social-reddit-outline.png b/admin/bower_components/Ionicons/png/512/social-reddit-outline.png deleted file mode 100644 index 1ffca7b..0000000 Binary files a/admin/bower_components/Ionicons/png/512/social-reddit-outline.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/social-reddit.png b/admin/bower_components/Ionicons/png/512/social-reddit.png deleted file mode 100644 index 2c96b33..0000000 Binary files a/admin/bower_components/Ionicons/png/512/social-reddit.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/social-rss-outline.png b/admin/bower_components/Ionicons/png/512/social-rss-outline.png deleted file mode 100644 index 11c2275..0000000 Binary files a/admin/bower_components/Ionicons/png/512/social-rss-outline.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/social-rss.png b/admin/bower_components/Ionicons/png/512/social-rss.png deleted file mode 100644 index 55fdf00..0000000 Binary files a/admin/bower_components/Ionicons/png/512/social-rss.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/social-skype-outline.png b/admin/bower_components/Ionicons/png/512/social-skype-outline.png deleted file mode 100644 index bc605c8..0000000 Binary files a/admin/bower_components/Ionicons/png/512/social-skype-outline.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/social-skype.png b/admin/bower_components/Ionicons/png/512/social-skype.png deleted file mode 100644 index 60eb1a8..0000000 Binary files a/admin/bower_components/Ionicons/png/512/social-skype.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/social-tumblr-outline.png b/admin/bower_components/Ionicons/png/512/social-tumblr-outline.png deleted file mode 100644 index 1b3f4c0..0000000 Binary files a/admin/bower_components/Ionicons/png/512/social-tumblr-outline.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/social-tumblr.png b/admin/bower_components/Ionicons/png/512/social-tumblr.png deleted file mode 100644 index 79e3a2a..0000000 Binary files a/admin/bower_components/Ionicons/png/512/social-tumblr.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/social-tux.png b/admin/bower_components/Ionicons/png/512/social-tux.png deleted file mode 100644 index 615e0ce..0000000 Binary files a/admin/bower_components/Ionicons/png/512/social-tux.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/social-twitter-outline.png b/admin/bower_components/Ionicons/png/512/social-twitter-outline.png deleted file mode 100644 index d279ae0..0000000 Binary files a/admin/bower_components/Ionicons/png/512/social-twitter-outline.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/social-twitter.png b/admin/bower_components/Ionicons/png/512/social-twitter.png deleted file mode 100644 index a96d561..0000000 Binary files a/admin/bower_components/Ionicons/png/512/social-twitter.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/social-usd-outline.png b/admin/bower_components/Ionicons/png/512/social-usd-outline.png deleted file mode 100644 index ca5241d..0000000 Binary files a/admin/bower_components/Ionicons/png/512/social-usd-outline.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/social-usd.png b/admin/bower_components/Ionicons/png/512/social-usd.png deleted file mode 100644 index 740f5be..0000000 Binary files a/admin/bower_components/Ionicons/png/512/social-usd.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/social-vimeo-outline.png b/admin/bower_components/Ionicons/png/512/social-vimeo-outline.png deleted file mode 100644 index 50a61d1..0000000 Binary files a/admin/bower_components/Ionicons/png/512/social-vimeo-outline.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/social-vimeo.png b/admin/bower_components/Ionicons/png/512/social-vimeo.png deleted file mode 100644 index ce7fbef..0000000 Binary files a/admin/bower_components/Ionicons/png/512/social-vimeo.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/social-windows-outline.png b/admin/bower_components/Ionicons/png/512/social-windows-outline.png deleted file mode 100644 index e0e98e4..0000000 Binary files a/admin/bower_components/Ionicons/png/512/social-windows-outline.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/social-windows.png b/admin/bower_components/Ionicons/png/512/social-windows.png deleted file mode 100644 index 3b033a9..0000000 Binary files a/admin/bower_components/Ionicons/png/512/social-windows.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/social-wordpress-outline.png b/admin/bower_components/Ionicons/png/512/social-wordpress-outline.png deleted file mode 100644 index 76e9939..0000000 Binary files a/admin/bower_components/Ionicons/png/512/social-wordpress-outline.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/social-wordpress.png b/admin/bower_components/Ionicons/png/512/social-wordpress.png deleted file mode 100644 index f166310..0000000 Binary files a/admin/bower_components/Ionicons/png/512/social-wordpress.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/social-yahoo-outline.png b/admin/bower_components/Ionicons/png/512/social-yahoo-outline.png deleted file mode 100644 index defd58d..0000000 Binary files a/admin/bower_components/Ionicons/png/512/social-yahoo-outline.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/social-yahoo.png b/admin/bower_components/Ionicons/png/512/social-yahoo.png deleted file mode 100644 index ea210fe..0000000 Binary files a/admin/bower_components/Ionicons/png/512/social-yahoo.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/social-youtube-outline.png b/admin/bower_components/Ionicons/png/512/social-youtube-outline.png deleted file mode 100644 index 7708d48..0000000 Binary files a/admin/bower_components/Ionicons/png/512/social-youtube-outline.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/social-youtube.png b/admin/bower_components/Ionicons/png/512/social-youtube.png deleted file mode 100644 index b025720..0000000 Binary files a/admin/bower_components/Ionicons/png/512/social-youtube.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/speakerphone.png b/admin/bower_components/Ionicons/png/512/speakerphone.png deleted file mode 100644 index 7766a2b..0000000 Binary files a/admin/bower_components/Ionicons/png/512/speakerphone.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/speedometer.png b/admin/bower_components/Ionicons/png/512/speedometer.png deleted file mode 100644 index 29625af..0000000 Binary files a/admin/bower_components/Ionicons/png/512/speedometer.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/spoon.png b/admin/bower_components/Ionicons/png/512/spoon.png deleted file mode 100644 index 98178e0..0000000 Binary files a/admin/bower_components/Ionicons/png/512/spoon.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/star.png b/admin/bower_components/Ionicons/png/512/star.png deleted file mode 100644 index 7d87719..0000000 Binary files a/admin/bower_components/Ionicons/png/512/star.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/stats-bars.png b/admin/bower_components/Ionicons/png/512/stats-bars.png deleted file mode 100644 index 0a4134d..0000000 Binary files a/admin/bower_components/Ionicons/png/512/stats-bars.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/steam.png b/admin/bower_components/Ionicons/png/512/steam.png deleted file mode 100644 index 8ffa684..0000000 Binary files a/admin/bower_components/Ionicons/png/512/steam.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/stop.png b/admin/bower_components/Ionicons/png/512/stop.png deleted file mode 100644 index dd58b88..0000000 Binary files a/admin/bower_components/Ionicons/png/512/stop.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/thermometer.png b/admin/bower_components/Ionicons/png/512/thermometer.png deleted file mode 100644 index 9ba62b0..0000000 Binary files a/admin/bower_components/Ionicons/png/512/thermometer.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/thumbsdown.png b/admin/bower_components/Ionicons/png/512/thumbsdown.png deleted file mode 100644 index 8e8cc85..0000000 Binary files a/admin/bower_components/Ionicons/png/512/thumbsdown.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/thumbsup.png b/admin/bower_components/Ionicons/png/512/thumbsup.png deleted file mode 100644 index da42555..0000000 Binary files a/admin/bower_components/Ionicons/png/512/thumbsup.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/toggle-filled.png b/admin/bower_components/Ionicons/png/512/toggle-filled.png deleted file mode 100644 index caff1e9..0000000 Binary files a/admin/bower_components/Ionicons/png/512/toggle-filled.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/toggle.png b/admin/bower_components/Ionicons/png/512/toggle.png deleted file mode 100644 index f8350b0..0000000 Binary files a/admin/bower_components/Ionicons/png/512/toggle.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/trash-a.png b/admin/bower_components/Ionicons/png/512/trash-a.png deleted file mode 100644 index f9660b6..0000000 Binary files a/admin/bower_components/Ionicons/png/512/trash-a.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/trash-b.png b/admin/bower_components/Ionicons/png/512/trash-b.png deleted file mode 100644 index 7a81ffe..0000000 Binary files a/admin/bower_components/Ionicons/png/512/trash-b.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/trophy.png b/admin/bower_components/Ionicons/png/512/trophy.png deleted file mode 100644 index f6406f8..0000000 Binary files a/admin/bower_components/Ionicons/png/512/trophy.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/umbrella.png b/admin/bower_components/Ionicons/png/512/umbrella.png deleted file mode 100644 index 6b1c5b4..0000000 Binary files a/admin/bower_components/Ionicons/png/512/umbrella.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/university.png b/admin/bower_components/Ionicons/png/512/university.png deleted file mode 100644 index 6e74e34..0000000 Binary files a/admin/bower_components/Ionicons/png/512/university.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/unlocked.png b/admin/bower_components/Ionicons/png/512/unlocked.png deleted file mode 100644 index 83c0d48..0000000 Binary files a/admin/bower_components/Ionicons/png/512/unlocked.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/upload.png b/admin/bower_components/Ionicons/png/512/upload.png deleted file mode 100644 index 0519cbf..0000000 Binary files a/admin/bower_components/Ionicons/png/512/upload.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/usb.png b/admin/bower_components/Ionicons/png/512/usb.png deleted file mode 100644 index 87857b4..0000000 Binary files a/admin/bower_components/Ionicons/png/512/usb.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/videocamera.png b/admin/bower_components/Ionicons/png/512/videocamera.png deleted file mode 100644 index 9f5c333..0000000 Binary files a/admin/bower_components/Ionicons/png/512/videocamera.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/volume-high.png b/admin/bower_components/Ionicons/png/512/volume-high.png deleted file mode 100644 index 3a2da41..0000000 Binary files a/admin/bower_components/Ionicons/png/512/volume-high.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/volume-low.png b/admin/bower_components/Ionicons/png/512/volume-low.png deleted file mode 100644 index 0faf9d3..0000000 Binary files a/admin/bower_components/Ionicons/png/512/volume-low.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/volume-medium.png b/admin/bower_components/Ionicons/png/512/volume-medium.png deleted file mode 100644 index b4e0d44..0000000 Binary files a/admin/bower_components/Ionicons/png/512/volume-medium.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/volume-mute.png b/admin/bower_components/Ionicons/png/512/volume-mute.png deleted file mode 100644 index 722f737..0000000 Binary files a/admin/bower_components/Ionicons/png/512/volume-mute.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/wand.png b/admin/bower_components/Ionicons/png/512/wand.png deleted file mode 100644 index 0dbe13c..0000000 Binary files a/admin/bower_components/Ionicons/png/512/wand.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/waterdrop.png b/admin/bower_components/Ionicons/png/512/waterdrop.png deleted file mode 100644 index deaf407..0000000 Binary files a/admin/bower_components/Ionicons/png/512/waterdrop.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/wifi.png b/admin/bower_components/Ionicons/png/512/wifi.png deleted file mode 100644 index 19bedd8..0000000 Binary files a/admin/bower_components/Ionicons/png/512/wifi.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/wineglass.png b/admin/bower_components/Ionicons/png/512/wineglass.png deleted file mode 100644 index 881b667..0000000 Binary files a/admin/bower_components/Ionicons/png/512/wineglass.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/woman.png b/admin/bower_components/Ionicons/png/512/woman.png deleted file mode 100644 index 0cab2b5..0000000 Binary files a/admin/bower_components/Ionicons/png/512/woman.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/wrench.png b/admin/bower_components/Ionicons/png/512/wrench.png deleted file mode 100644 index 3071cc5..0000000 Binary files a/admin/bower_components/Ionicons/png/512/wrench.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/png/512/xbox.png b/admin/bower_components/Ionicons/png/512/xbox.png deleted file mode 100644 index 22d1f85..0000000 Binary files a/admin/bower_components/Ionicons/png/512/xbox.png and /dev/null differ diff --git a/admin/bower_components/Ionicons/readme.md b/admin/bower_components/Ionicons/readme.md deleted file mode 100644 index f530251..0000000 --- a/admin/bower_components/Ionicons/readme.md +++ /dev/null @@ -1,60 +0,0 @@ -# Ionicons - - -The premium icon font for [Ionic](http://ionicframework.com/). Designed by [@benjsperry](https://twitter.com/benjsperry). - -Note: All brand icons are trademarks of their respective owners. The use of these trademarks does not indicate endorsement of the trademark holder by Drifty, nor vice versa. - -Visit [ionicons.com](http://ionicons.com) and check out the search feature, which has keywords identifying common icon names and styles. For example, if you search for “arrow” we call up every icon that could possibly be used as an arrow. We’ve also included each icon’s class name for easy copy/pasting when you’re developing! - -We intend for this icon pack to be used with [Ionic](http://ionicframework.com/), but it’s by no means limited to it. Use them wherever you see fit, personal or commercial. They are free to use and licensed under [MIT](http://opensource.org/licenses/MIT). - - -## Getting Started - - 1. Download and extract the font pack - 2. Copy the `ionicons.css` to your project - 3. Copy the `fonts` folder to your project - 4. Ensure the font urls within `ionicons.css` properly reference the `fonts` path within your project. - 5. Include a reference to the `ionicons.css` file from every webpage you need to use it. - -Or install with [component](https://github.com/component/component): - - $ component install driftyco/ionicons - -Or perhaps you're known to use [bower](http://bower.io/)? - - $ bower install ionicons - - -## HTML Example - -You can use [ionicons.com](http://ionicons.com) to easily find the icon you want to use. Once you've copied the desired icon's CSS classname, simply add the `icon` and icon's classname, such as `ion-home` to an HTML element. - - <i class="icon ion-home"></i> - - -## Build Instructions - -This repo already comes with all the files built and ready to go, but can also build the fonts from the source. Requires Python, FontForge and Sass: - -1) Install FontForge, which is the program that creates the font files from the SVG files: - - $ brew install fontforge ttfautohint - -2) Install [Sass](http://sass-lang.com/) - - $ gem install sass - -3) Add or subtract files from the `src/` folder you'd like to be apart of the font files. - -4) Modify any settings in the `builder/manifest.json` file. You can change the name of the font-family and CSS classname prefix. - -5) Run the build command: - - python ./builder/generate.py - - -## License - -Ionicons is licensed under the [MIT license](http://opensource.org/licenses/MIT). diff --git a/admin/bower_components/Ionicons/scss/_ionicons-font.scss b/admin/bower_components/Ionicons/scss/_ionicons-font.scss deleted file mode 100644 index 76ec6eb..0000000 --- a/admin/bower_components/Ionicons/scss/_ionicons-font.scss +++ /dev/null @@ -1,27 +0,0 @@ -// Ionicons Font Path -// -------------------------- - -@font-face { - font-family: $ionicons-font-family; - src:url("#{$ionicons-font-path}/ionicons.eot?v=#{$ionicons-version}"); - src:url("#{$ionicons-font-path}/ionicons.eot?v=#{$ionicons-version}#iefix") format("embedded-opentype"), - url("#{$ionicons-font-path}/ionicons.ttf?v=#{$ionicons-version}") format("truetype"), - url("#{$ionicons-font-path}/ionicons.woff?v=#{$ionicons-version}") format("woff"), - url("#{$ionicons-font-path}/ionicons.svg?v=#{$ionicons-version}#Ionicons") format("svg"); - font-weight: normal; - font-style: normal; -} - -.ion { - display: inline-block; - font-family: $ionicons-font-family; - speak: none; - font-style: normal; - font-weight: normal; - font-variant: normal; - text-transform: none; - text-rendering: auto; - line-height: 1; - -webkit-font-smoothing: antialiased; - -moz-osx-font-smoothing: grayscale; -} \ No newline at end of file diff --git a/admin/bower_components/Ionicons/scss/_ionicons-icons.scss b/admin/bower_components/Ionicons/scss/_ionicons-icons.scss deleted file mode 100644 index d08d4f0..0000000 --- a/admin/bower_components/Ionicons/scss/_ionicons-icons.scss +++ /dev/null @@ -1,1473 +0,0 @@ -// Ionicons Icons -// -------------------------- - -.ionicons, -.#{$ionicons-prefix}alert:before, -.#{$ionicons-prefix}alert-circled:before, -.#{$ionicons-prefix}android-add:before, -.#{$ionicons-prefix}android-add-circle:before, -.#{$ionicons-prefix}android-alarm-clock:before, -.#{$ionicons-prefix}android-alert:before, -.#{$ionicons-prefix}android-apps:before, -.#{$ionicons-prefix}android-archive:before, -.#{$ionicons-prefix}android-arrow-back:before, -.#{$ionicons-prefix}android-arrow-down:before, -.#{$ionicons-prefix}android-arrow-dropdown:before, -.#{$ionicons-prefix}android-arrow-dropdown-circle:before, -.#{$ionicons-prefix}android-arrow-dropleft:before, -.#{$ionicons-prefix}android-arrow-dropleft-circle:before, -.#{$ionicons-prefix}android-arrow-dropright:before, -.#{$ionicons-prefix}android-arrow-dropright-circle:before, -.#{$ionicons-prefix}android-arrow-dropup:before, -.#{$ionicons-prefix}android-arrow-dropup-circle:before, -.#{$ionicons-prefix}android-arrow-forward:before, -.#{$ionicons-prefix}android-arrow-up:before, -.#{$ionicons-prefix}android-attach:before, -.#{$ionicons-prefix}android-bar:before, -.#{$ionicons-prefix}android-bicycle:before, -.#{$ionicons-prefix}android-boat:before, -.#{$ionicons-prefix}android-bookmark:before, -.#{$ionicons-prefix}android-bulb:before, -.#{$ionicons-prefix}android-bus:before, -.#{$ionicons-prefix}android-calendar:before, -.#{$ionicons-prefix}android-call:before, -.#{$ionicons-prefix}android-camera:before, -.#{$ionicons-prefix}android-cancel:before, -.#{$ionicons-prefix}android-car:before, -.#{$ionicons-prefix}android-cart:before, -.#{$ionicons-prefix}android-chat:before, -.#{$ionicons-prefix}android-checkbox:before, -.#{$ionicons-prefix}android-checkbox-blank:before, -.#{$ionicons-prefix}android-checkbox-outline:before, -.#{$ionicons-prefix}android-checkbox-outline-blank:before, -.#{$ionicons-prefix}android-checkmark-circle:before, -.#{$ionicons-prefix}android-clipboard:before, -.#{$ionicons-prefix}android-close:before, -.#{$ionicons-prefix}android-cloud:before, -.#{$ionicons-prefix}android-cloud-circle:before, -.#{$ionicons-prefix}android-cloud-done:before, -.#{$ionicons-prefix}android-cloud-outline:before, -.#{$ionicons-prefix}android-color-palette:before, -.#{$ionicons-prefix}android-compass:before, -.#{$ionicons-prefix}android-contact:before, -.#{$ionicons-prefix}android-contacts:before, -.#{$ionicons-prefix}android-contract:before, -.#{$ionicons-prefix}android-create:before, -.#{$ionicons-prefix}android-delete:before, -.#{$ionicons-prefix}android-desktop:before, -.#{$ionicons-prefix}android-document:before, -.#{$ionicons-prefix}android-done:before, -.#{$ionicons-prefix}android-done-all:before, -.#{$ionicons-prefix}android-download:before, -.#{$ionicons-prefix}android-drafts:before, -.#{$ionicons-prefix}android-exit:before, -.#{$ionicons-prefix}android-expand:before, -.#{$ionicons-prefix}android-favorite:before, -.#{$ionicons-prefix}android-favorite-outline:before, -.#{$ionicons-prefix}android-film:before, -.#{$ionicons-prefix}android-folder:before, -.#{$ionicons-prefix}android-folder-open:before, -.#{$ionicons-prefix}android-funnel:before, -.#{$ionicons-prefix}android-globe:before, -.#{$ionicons-prefix}android-hand:before, -.#{$ionicons-prefix}android-hangout:before, -.#{$ionicons-prefix}android-happy:before, -.#{$ionicons-prefix}android-home:before, -.#{$ionicons-prefix}android-image:before, -.#{$ionicons-prefix}android-laptop:before, -.#{$ionicons-prefix}android-list:before, -.#{$ionicons-prefix}android-locate:before, -.#{$ionicons-prefix}android-lock:before, -.#{$ionicons-prefix}android-mail:before, -.#{$ionicons-prefix}android-map:before, -.#{$ionicons-prefix}android-menu:before, -.#{$ionicons-prefix}android-microphone:before, -.#{$ionicons-prefix}android-microphone-off:before, -.#{$ionicons-prefix}android-more-horizontal:before, -.#{$ionicons-prefix}android-more-vertical:before, -.#{$ionicons-prefix}android-navigate:before, -.#{$ionicons-prefix}android-notifications:before, -.#{$ionicons-prefix}android-notifications-none:before, -.#{$ionicons-prefix}android-notifications-off:before, -.#{$ionicons-prefix}android-open:before, -.#{$ionicons-prefix}android-options:before, -.#{$ionicons-prefix}android-people:before, -.#{$ionicons-prefix}android-person:before, -.#{$ionicons-prefix}android-person-add:before, -.#{$ionicons-prefix}android-phone-landscape:before, -.#{$ionicons-prefix}android-phone-portrait:before, -.#{$ionicons-prefix}android-pin:before, -.#{$ionicons-prefix}android-plane:before, -.#{$ionicons-prefix}android-playstore:before, -.#{$ionicons-prefix}android-print:before, -.#{$ionicons-prefix}android-radio-button-off:before, -.#{$ionicons-prefix}android-radio-button-on:before, -.#{$ionicons-prefix}android-refresh:before, -.#{$ionicons-prefix}android-remove:before, -.#{$ionicons-prefix}android-remove-circle:before, -.#{$ionicons-prefix}android-restaurant:before, -.#{$ionicons-prefix}android-sad:before, -.#{$ionicons-prefix}android-search:before, -.#{$ionicons-prefix}android-send:before, -.#{$ionicons-prefix}android-settings:before, -.#{$ionicons-prefix}android-share:before, -.#{$ionicons-prefix}android-share-alt:before, -.#{$ionicons-prefix}android-star:before, -.#{$ionicons-prefix}android-star-half:before, -.#{$ionicons-prefix}android-star-outline:before, -.#{$ionicons-prefix}android-stopwatch:before, -.#{$ionicons-prefix}android-subway:before, -.#{$ionicons-prefix}android-sunny:before, -.#{$ionicons-prefix}android-sync:before, -.#{$ionicons-prefix}android-textsms:before, -.#{$ionicons-prefix}android-time:before, -.#{$ionicons-prefix}android-train:before, -.#{$ionicons-prefix}android-unlock:before, -.#{$ionicons-prefix}android-upload:before, -.#{$ionicons-prefix}android-volume-down:before, -.#{$ionicons-prefix}android-volume-mute:before, -.#{$ionicons-prefix}android-volume-off:before, -.#{$ionicons-prefix}android-volume-up:before, -.#{$ionicons-prefix}android-walk:before, -.#{$ionicons-prefix}android-warning:before, -.#{$ionicons-prefix}android-watch:before, -.#{$ionicons-prefix}android-wifi:before, -.#{$ionicons-prefix}aperture:before, -.#{$ionicons-prefix}archive:before, -.#{$ionicons-prefix}arrow-down-a:before, -.#{$ionicons-prefix}arrow-down-b:before, -.#{$ionicons-prefix}arrow-down-c:before, -.#{$ionicons-prefix}arrow-expand:before, -.#{$ionicons-prefix}arrow-graph-down-left:before, -.#{$ionicons-prefix}arrow-graph-down-right:before, -.#{$ionicons-prefix}arrow-graph-up-left:before, -.#{$ionicons-prefix}arrow-graph-up-right:before, -.#{$ionicons-prefix}arrow-left-a:before, -.#{$ionicons-prefix}arrow-left-b:before, -.#{$ionicons-prefix}arrow-left-c:before, -.#{$ionicons-prefix}arrow-move:before, -.#{$ionicons-prefix}arrow-resize:before, -.#{$ionicons-prefix}arrow-return-left:before, -.#{$ionicons-prefix}arrow-return-right:before, -.#{$ionicons-prefix}arrow-right-a:before, -.#{$ionicons-prefix}arrow-right-b:before, -.#{$ionicons-prefix}arrow-right-c:before, -.#{$ionicons-prefix}arrow-shrink:before, -.#{$ionicons-prefix}arrow-swap:before, -.#{$ionicons-prefix}arrow-up-a:before, -.#{$ionicons-prefix}arrow-up-b:before, -.#{$ionicons-prefix}arrow-up-c:before, -.#{$ionicons-prefix}asterisk:before, -.#{$ionicons-prefix}at:before, -.#{$ionicons-prefix}backspace:before, -.#{$ionicons-prefix}backspace-outline:before, -.#{$ionicons-prefix}bag:before, -.#{$ionicons-prefix}battery-charging:before, -.#{$ionicons-prefix}battery-empty:before, -.#{$ionicons-prefix}battery-full:before, -.#{$ionicons-prefix}battery-half:before, -.#{$ionicons-prefix}battery-low:before, -.#{$ionicons-prefix}beaker:before, -.#{$ionicons-prefix}beer:before, -.#{$ionicons-prefix}bluetooth:before, -.#{$ionicons-prefix}bonfire:before, -.#{$ionicons-prefix}bookmark:before, -.#{$ionicons-prefix}bowtie:before, -.#{$ionicons-prefix}briefcase:before, -.#{$ionicons-prefix}bug:before, -.#{$ionicons-prefix}calculator:before, -.#{$ionicons-prefix}calendar:before, -.#{$ionicons-prefix}camera:before, -.#{$ionicons-prefix}card:before, -.#{$ionicons-prefix}cash:before, -.#{$ionicons-prefix}chatbox:before, -.#{$ionicons-prefix}chatbox-working:before, -.#{$ionicons-prefix}chatboxes:before, -.#{$ionicons-prefix}chatbubble:before, -.#{$ionicons-prefix}chatbubble-working:before, -.#{$ionicons-prefix}chatbubbles:before, -.#{$ionicons-prefix}checkmark:before, -.#{$ionicons-prefix}checkmark-circled:before, -.#{$ionicons-prefix}checkmark-round:before, -.#{$ionicons-prefix}chevron-down:before, -.#{$ionicons-prefix}chevron-left:before, -.#{$ionicons-prefix}chevron-right:before, -.#{$ionicons-prefix}chevron-up:before, -.#{$ionicons-prefix}clipboard:before, -.#{$ionicons-prefix}clock:before, -.#{$ionicons-prefix}close:before, -.#{$ionicons-prefix}close-circled:before, -.#{$ionicons-prefix}close-round:before, -.#{$ionicons-prefix}closed-captioning:before, -.#{$ionicons-prefix}cloud:before, -.#{$ionicons-prefix}code:before, -.#{$ionicons-prefix}code-download:before, -.#{$ionicons-prefix}code-working:before, -.#{$ionicons-prefix}coffee:before, -.#{$ionicons-prefix}compass:before, -.#{$ionicons-prefix}compose:before, -.#{$ionicons-prefix}connection-bars:before, -.#{$ionicons-prefix}contrast:before, -.#{$ionicons-prefix}crop:before, -.#{$ionicons-prefix}cube:before, -.#{$ionicons-prefix}disc:before, -.#{$ionicons-prefix}document:before, -.#{$ionicons-prefix}document-text:before, -.#{$ionicons-prefix}drag:before, -.#{$ionicons-prefix}earth:before, -.#{$ionicons-prefix}easel:before, -.#{$ionicons-prefix}edit:before, -.#{$ionicons-prefix}egg:before, -.#{$ionicons-prefix}eject:before, -.#{$ionicons-prefix}email:before, -.#{$ionicons-prefix}email-unread:before, -.#{$ionicons-prefix}erlenmeyer-flask:before, -.#{$ionicons-prefix}erlenmeyer-flask-bubbles:before, -.#{$ionicons-prefix}eye:before, -.#{$ionicons-prefix}eye-disabled:before, -.#{$ionicons-prefix}female:before, -.#{$ionicons-prefix}filing:before, -.#{$ionicons-prefix}film-marker:before, -.#{$ionicons-prefix}fireball:before, -.#{$ionicons-prefix}flag:before, -.#{$ionicons-prefix}flame:before, -.#{$ionicons-prefix}flash:before, -.#{$ionicons-prefix}flash-off:before, -.#{$ionicons-prefix}folder:before, -.#{$ionicons-prefix}fork:before, -.#{$ionicons-prefix}fork-repo:before, -.#{$ionicons-prefix}forward:before, -.#{$ionicons-prefix}funnel:before, -.#{$ionicons-prefix}gear-a:before, -.#{$ionicons-prefix}gear-b:before, -.#{$ionicons-prefix}grid:before, -.#{$ionicons-prefix}hammer:before, -.#{$ionicons-prefix}happy:before, -.#{$ionicons-prefix}happy-outline:before, -.#{$ionicons-prefix}headphone:before, -.#{$ionicons-prefix}heart:before, -.#{$ionicons-prefix}heart-broken:before, -.#{$ionicons-prefix}help:before, -.#{$ionicons-prefix}help-buoy:before, -.#{$ionicons-prefix}help-circled:before, -.#{$ionicons-prefix}home:before, -.#{$ionicons-prefix}icecream:before, -.#{$ionicons-prefix}image:before, -.#{$ionicons-prefix}images:before, -.#{$ionicons-prefix}information:before, -.#{$ionicons-prefix}information-circled:before, -.#{$ionicons-prefix}ionic:before, -.#{$ionicons-prefix}ios-alarm:before, -.#{$ionicons-prefix}ios-alarm-outline:before, -.#{$ionicons-prefix}ios-albums:before, -.#{$ionicons-prefix}ios-albums-outline:before, -.#{$ionicons-prefix}ios-americanfootball:before, -.#{$ionicons-prefix}ios-americanfootball-outline:before, -.#{$ionicons-prefix}ios-analytics:before, -.#{$ionicons-prefix}ios-analytics-outline:before, -.#{$ionicons-prefix}ios-arrow-back:before, -.#{$ionicons-prefix}ios-arrow-down:before, -.#{$ionicons-prefix}ios-arrow-forward:before, -.#{$ionicons-prefix}ios-arrow-left:before, -.#{$ionicons-prefix}ios-arrow-right:before, -.#{$ionicons-prefix}ios-arrow-thin-down:before, -.#{$ionicons-prefix}ios-arrow-thin-left:before, -.#{$ionicons-prefix}ios-arrow-thin-right:before, -.#{$ionicons-prefix}ios-arrow-thin-up:before, -.#{$ionicons-prefix}ios-arrow-up:before, -.#{$ionicons-prefix}ios-at:before, -.#{$ionicons-prefix}ios-at-outline:before, -.#{$ionicons-prefix}ios-barcode:before, -.#{$ionicons-prefix}ios-barcode-outline:before, -.#{$ionicons-prefix}ios-baseball:before, -.#{$ionicons-prefix}ios-baseball-outline:before, -.#{$ionicons-prefix}ios-basketball:before, -.#{$ionicons-prefix}ios-basketball-outline:before, -.#{$ionicons-prefix}ios-bell:before, -.#{$ionicons-prefix}ios-bell-outline:before, -.#{$ionicons-prefix}ios-body:before, -.#{$ionicons-prefix}ios-body-outline:before, -.#{$ionicons-prefix}ios-bolt:before, -.#{$ionicons-prefix}ios-bolt-outline:before, -.#{$ionicons-prefix}ios-book:before, -.#{$ionicons-prefix}ios-book-outline:before, -.#{$ionicons-prefix}ios-bookmarks:before, -.#{$ionicons-prefix}ios-bookmarks-outline:before, -.#{$ionicons-prefix}ios-box:before, -.#{$ionicons-prefix}ios-box-outline:before, -.#{$ionicons-prefix}ios-briefcase:before, -.#{$ionicons-prefix}ios-briefcase-outline:before, -.#{$ionicons-prefix}ios-browsers:before, -.#{$ionicons-prefix}ios-browsers-outline:before, -.#{$ionicons-prefix}ios-calculator:before, -.#{$ionicons-prefix}ios-calculator-outline:before, -.#{$ionicons-prefix}ios-calendar:before, -.#{$ionicons-prefix}ios-calendar-outline:before, -.#{$ionicons-prefix}ios-camera:before, -.#{$ionicons-prefix}ios-camera-outline:before, -.#{$ionicons-prefix}ios-cart:before, -.#{$ionicons-prefix}ios-cart-outline:before, -.#{$ionicons-prefix}ios-chatboxes:before, -.#{$ionicons-prefix}ios-chatboxes-outline:before, -.#{$ionicons-prefix}ios-chatbubble:before, -.#{$ionicons-prefix}ios-chatbubble-outline:before, -.#{$ionicons-prefix}ios-checkmark:before, -.#{$ionicons-prefix}ios-checkmark-empty:before, -.#{$ionicons-prefix}ios-checkmark-outline:before, -.#{$ionicons-prefix}ios-circle-filled:before, -.#{$ionicons-prefix}ios-circle-outline:before, -.#{$ionicons-prefix}ios-clock:before, -.#{$ionicons-prefix}ios-clock-outline:before, -.#{$ionicons-prefix}ios-close:before, -.#{$ionicons-prefix}ios-close-empty:before, -.#{$ionicons-prefix}ios-close-outline:before, -.#{$ionicons-prefix}ios-cloud:before, -.#{$ionicons-prefix}ios-cloud-download:before, -.#{$ionicons-prefix}ios-cloud-download-outline:before, -.#{$ionicons-prefix}ios-cloud-outline:before, -.#{$ionicons-prefix}ios-cloud-upload:before, -.#{$ionicons-prefix}ios-cloud-upload-outline:before, -.#{$ionicons-prefix}ios-cloudy:before, -.#{$ionicons-prefix}ios-cloudy-night:before, -.#{$ionicons-prefix}ios-cloudy-night-outline:before, -.#{$ionicons-prefix}ios-cloudy-outline:before, -.#{$ionicons-prefix}ios-cog:before, -.#{$ionicons-prefix}ios-cog-outline:before, -.#{$ionicons-prefix}ios-color-filter:before, -.#{$ionicons-prefix}ios-color-filter-outline:before, -.#{$ionicons-prefix}ios-color-wand:before, -.#{$ionicons-prefix}ios-color-wand-outline:before, -.#{$ionicons-prefix}ios-compose:before, -.#{$ionicons-prefix}ios-compose-outline:before, -.#{$ionicons-prefix}ios-contact:before, -.#{$ionicons-prefix}ios-contact-outline:before, -.#{$ionicons-prefix}ios-copy:before, -.#{$ionicons-prefix}ios-copy-outline:before, -.#{$ionicons-prefix}ios-crop:before, -.#{$ionicons-prefix}ios-crop-strong:before, -.#{$ionicons-prefix}ios-download:before, -.#{$ionicons-prefix}ios-download-outline:before, -.#{$ionicons-prefix}ios-drag:before, -.#{$ionicons-prefix}ios-email:before, -.#{$ionicons-prefix}ios-email-outline:before, -.#{$ionicons-prefix}ios-eye:before, -.#{$ionicons-prefix}ios-eye-outline:before, -.#{$ionicons-prefix}ios-fastforward:before, -.#{$ionicons-prefix}ios-fastforward-outline:before, -.#{$ionicons-prefix}ios-filing:before, -.#{$ionicons-prefix}ios-filing-outline:before, -.#{$ionicons-prefix}ios-film:before, -.#{$ionicons-prefix}ios-film-outline:before, -.#{$ionicons-prefix}ios-flag:before, -.#{$ionicons-prefix}ios-flag-outline:before, -.#{$ionicons-prefix}ios-flame:before, -.#{$ionicons-prefix}ios-flame-outline:before, -.#{$ionicons-prefix}ios-flask:before, -.#{$ionicons-prefix}ios-flask-outline:before, -.#{$ionicons-prefix}ios-flower:before, -.#{$ionicons-prefix}ios-flower-outline:before, -.#{$ionicons-prefix}ios-folder:before, -.#{$ionicons-prefix}ios-folder-outline:before, -.#{$ionicons-prefix}ios-football:before, -.#{$ionicons-prefix}ios-football-outline:before, -.#{$ionicons-prefix}ios-game-controller-a:before, -.#{$ionicons-prefix}ios-game-controller-a-outline:before, -.#{$ionicons-prefix}ios-game-controller-b:before, -.#{$ionicons-prefix}ios-game-controller-b-outline:before, -.#{$ionicons-prefix}ios-gear:before, -.#{$ionicons-prefix}ios-gear-outline:before, -.#{$ionicons-prefix}ios-glasses:before, -.#{$ionicons-prefix}ios-glasses-outline:before, -.#{$ionicons-prefix}ios-grid-view:before, -.#{$ionicons-prefix}ios-grid-view-outline:before, -.#{$ionicons-prefix}ios-heart:before, -.#{$ionicons-prefix}ios-heart-outline:before, -.#{$ionicons-prefix}ios-help:before, -.#{$ionicons-prefix}ios-help-empty:before, -.#{$ionicons-prefix}ios-help-outline:before, -.#{$ionicons-prefix}ios-home:before, -.#{$ionicons-prefix}ios-home-outline:before, -.#{$ionicons-prefix}ios-infinite:before, -.#{$ionicons-prefix}ios-infinite-outline:before, -.#{$ionicons-prefix}ios-information:before, -.#{$ionicons-prefix}ios-information-empty:before, -.#{$ionicons-prefix}ios-information-outline:before, -.#{$ionicons-prefix}ios-ionic-outline:before, -.#{$ionicons-prefix}ios-keypad:before, -.#{$ionicons-prefix}ios-keypad-outline:before, -.#{$ionicons-prefix}ios-lightbulb:before, -.#{$ionicons-prefix}ios-lightbulb-outline:before, -.#{$ionicons-prefix}ios-list:before, -.#{$ionicons-prefix}ios-list-outline:before, -.#{$ionicons-prefix}ios-location:before, -.#{$ionicons-prefix}ios-location-outline:before, -.#{$ionicons-prefix}ios-locked:before, -.#{$ionicons-prefix}ios-locked-outline:before, -.#{$ionicons-prefix}ios-loop:before, -.#{$ionicons-prefix}ios-loop-strong:before, -.#{$ionicons-prefix}ios-medical:before, -.#{$ionicons-prefix}ios-medical-outline:before, -.#{$ionicons-prefix}ios-medkit:before, -.#{$ionicons-prefix}ios-medkit-outline:before, -.#{$ionicons-prefix}ios-mic:before, -.#{$ionicons-prefix}ios-mic-off:before, -.#{$ionicons-prefix}ios-mic-outline:before, -.#{$ionicons-prefix}ios-minus:before, -.#{$ionicons-prefix}ios-minus-empty:before, -.#{$ionicons-prefix}ios-minus-outline:before, -.#{$ionicons-prefix}ios-monitor:before, -.#{$ionicons-prefix}ios-monitor-outline:before, -.#{$ionicons-prefix}ios-moon:before, -.#{$ionicons-prefix}ios-moon-outline:before, -.#{$ionicons-prefix}ios-more:before, -.#{$ionicons-prefix}ios-more-outline:before, -.#{$ionicons-prefix}ios-musical-note:before, -.#{$ionicons-prefix}ios-musical-notes:before, -.#{$ionicons-prefix}ios-navigate:before, -.#{$ionicons-prefix}ios-navigate-outline:before, -.#{$ionicons-prefix}ios-nutrition:before, -.#{$ionicons-prefix}ios-nutrition-outline:before, -.#{$ionicons-prefix}ios-paper:before, -.#{$ionicons-prefix}ios-paper-outline:before, -.#{$ionicons-prefix}ios-paperplane:before, -.#{$ionicons-prefix}ios-paperplane-outline:before, -.#{$ionicons-prefix}ios-partlysunny:before, -.#{$ionicons-prefix}ios-partlysunny-outline:before, -.#{$ionicons-prefix}ios-pause:before, -.#{$ionicons-prefix}ios-pause-outline:before, -.#{$ionicons-prefix}ios-paw:before, -.#{$ionicons-prefix}ios-paw-outline:before, -.#{$ionicons-prefix}ios-people:before, -.#{$ionicons-prefix}ios-people-outline:before, -.#{$ionicons-prefix}ios-person:before, -.#{$ionicons-prefix}ios-person-outline:before, -.#{$ionicons-prefix}ios-personadd:before, -.#{$ionicons-prefix}ios-personadd-outline:before, -.#{$ionicons-prefix}ios-photos:before, -.#{$ionicons-prefix}ios-photos-outline:before, -.#{$ionicons-prefix}ios-pie:before, -.#{$ionicons-prefix}ios-pie-outline:before, -.#{$ionicons-prefix}ios-pint:before, -.#{$ionicons-prefix}ios-pint-outline:before, -.#{$ionicons-prefix}ios-play:before, -.#{$ionicons-prefix}ios-play-outline:before, -.#{$ionicons-prefix}ios-plus:before, -.#{$ionicons-prefix}ios-plus-empty:before, -.#{$ionicons-prefix}ios-plus-outline:before, -.#{$ionicons-prefix}ios-pricetag:before, -.#{$ionicons-prefix}ios-pricetag-outline:before, -.#{$ionicons-prefix}ios-pricetags:before, -.#{$ionicons-prefix}ios-pricetags-outline:before, -.#{$ionicons-prefix}ios-printer:before, -.#{$ionicons-prefix}ios-printer-outline:before, -.#{$ionicons-prefix}ios-pulse:before, -.#{$ionicons-prefix}ios-pulse-strong:before, -.#{$ionicons-prefix}ios-rainy:before, -.#{$ionicons-prefix}ios-rainy-outline:before, -.#{$ionicons-prefix}ios-recording:before, -.#{$ionicons-prefix}ios-recording-outline:before, -.#{$ionicons-prefix}ios-redo:before, -.#{$ionicons-prefix}ios-redo-outline:before, -.#{$ionicons-prefix}ios-refresh:before, -.#{$ionicons-prefix}ios-refresh-empty:before, -.#{$ionicons-prefix}ios-refresh-outline:before, -.#{$ionicons-prefix}ios-reload:before, -.#{$ionicons-prefix}ios-reverse-camera:before, -.#{$ionicons-prefix}ios-reverse-camera-outline:before, -.#{$ionicons-prefix}ios-rewind:before, -.#{$ionicons-prefix}ios-rewind-outline:before, -.#{$ionicons-prefix}ios-rose:before, -.#{$ionicons-prefix}ios-rose-outline:before, -.#{$ionicons-prefix}ios-search:before, -.#{$ionicons-prefix}ios-search-strong:before, -.#{$ionicons-prefix}ios-settings:before, -.#{$ionicons-prefix}ios-settings-strong:before, -.#{$ionicons-prefix}ios-shuffle:before, -.#{$ionicons-prefix}ios-shuffle-strong:before, -.#{$ionicons-prefix}ios-skipbackward:before, -.#{$ionicons-prefix}ios-skipbackward-outline:before, -.#{$ionicons-prefix}ios-skipforward:before, -.#{$ionicons-prefix}ios-skipforward-outline:before, -.#{$ionicons-prefix}ios-snowy:before, -.#{$ionicons-prefix}ios-speedometer:before, -.#{$ionicons-prefix}ios-speedometer-outline:before, -.#{$ionicons-prefix}ios-star:before, -.#{$ionicons-prefix}ios-star-half:before, -.#{$ionicons-prefix}ios-star-outline:before, -.#{$ionicons-prefix}ios-stopwatch:before, -.#{$ionicons-prefix}ios-stopwatch-outline:before, -.#{$ionicons-prefix}ios-sunny:before, -.#{$ionicons-prefix}ios-sunny-outline:before, -.#{$ionicons-prefix}ios-telephone:before, -.#{$ionicons-prefix}ios-telephone-outline:before, -.#{$ionicons-prefix}ios-tennisball:before, -.#{$ionicons-prefix}ios-tennisball-outline:before, -.#{$ionicons-prefix}ios-thunderstorm:before, -.#{$ionicons-prefix}ios-thunderstorm-outline:before, -.#{$ionicons-prefix}ios-time:before, -.#{$ionicons-prefix}ios-time-outline:before, -.#{$ionicons-prefix}ios-timer:before, -.#{$ionicons-prefix}ios-timer-outline:before, -.#{$ionicons-prefix}ios-toggle:before, -.#{$ionicons-prefix}ios-toggle-outline:before, -.#{$ionicons-prefix}ios-trash:before, -.#{$ionicons-prefix}ios-trash-outline:before, -.#{$ionicons-prefix}ios-undo:before, -.#{$ionicons-prefix}ios-undo-outline:before, -.#{$ionicons-prefix}ios-unlocked:before, -.#{$ionicons-prefix}ios-unlocked-outline:before, -.#{$ionicons-prefix}ios-upload:before, -.#{$ionicons-prefix}ios-upload-outline:before, -.#{$ionicons-prefix}ios-videocam:before, -.#{$ionicons-prefix}ios-videocam-outline:before, -.#{$ionicons-prefix}ios-volume-high:before, -.#{$ionicons-prefix}ios-volume-low:before, -.#{$ionicons-prefix}ios-wineglass:before, -.#{$ionicons-prefix}ios-wineglass-outline:before, -.#{$ionicons-prefix}ios-world:before, -.#{$ionicons-prefix}ios-world-outline:before, -.#{$ionicons-prefix}ipad:before, -.#{$ionicons-prefix}iphone:before, -.#{$ionicons-prefix}ipod:before, -.#{$ionicons-prefix}jet:before, -.#{$ionicons-prefix}key:before, -.#{$ionicons-prefix}knife:before, -.#{$ionicons-prefix}laptop:before, -.#{$ionicons-prefix}leaf:before, -.#{$ionicons-prefix}levels:before, -.#{$ionicons-prefix}lightbulb:before, -.#{$ionicons-prefix}link:before, -.#{$ionicons-prefix}load-a:before, -.#{$ionicons-prefix}load-b:before, -.#{$ionicons-prefix}load-c:before, -.#{$ionicons-prefix}load-d:before, -.#{$ionicons-prefix}location:before, -.#{$ionicons-prefix}lock-combination:before, -.#{$ionicons-prefix}locked:before, -.#{$ionicons-prefix}log-in:before, -.#{$ionicons-prefix}log-out:before, -.#{$ionicons-prefix}loop:before, -.#{$ionicons-prefix}magnet:before, -.#{$ionicons-prefix}male:before, -.#{$ionicons-prefix}man:before, -.#{$ionicons-prefix}map:before, -.#{$ionicons-prefix}medkit:before, -.#{$ionicons-prefix}merge:before, -.#{$ionicons-prefix}mic-a:before, -.#{$ionicons-prefix}mic-b:before, -.#{$ionicons-prefix}mic-c:before, -.#{$ionicons-prefix}minus:before, -.#{$ionicons-prefix}minus-circled:before, -.#{$ionicons-prefix}minus-round:before, -.#{$ionicons-prefix}model-s:before, -.#{$ionicons-prefix}monitor:before, -.#{$ionicons-prefix}more:before, -.#{$ionicons-prefix}mouse:before, -.#{$ionicons-prefix}music-note:before, -.#{$ionicons-prefix}navicon:before, -.#{$ionicons-prefix}navicon-round:before, -.#{$ionicons-prefix}navigate:before, -.#{$ionicons-prefix}network:before, -.#{$ionicons-prefix}no-smoking:before, -.#{$ionicons-prefix}nuclear:before, -.#{$ionicons-prefix}outlet:before, -.#{$ionicons-prefix}paintbrush:before, -.#{$ionicons-prefix}paintbucket:before, -.#{$ionicons-prefix}paper-airplane:before, -.#{$ionicons-prefix}paperclip:before, -.#{$ionicons-prefix}pause:before, -.#{$ionicons-prefix}person:before, -.#{$ionicons-prefix}person-add:before, -.#{$ionicons-prefix}person-stalker:before, -.#{$ionicons-prefix}pie-graph:before, -.#{$ionicons-prefix}pin:before, -.#{$ionicons-prefix}pinpoint:before, -.#{$ionicons-prefix}pizza:before, -.#{$ionicons-prefix}plane:before, -.#{$ionicons-prefix}planet:before, -.#{$ionicons-prefix}play:before, -.#{$ionicons-prefix}playstation:before, -.#{$ionicons-prefix}plus:before, -.#{$ionicons-prefix}plus-circled:before, -.#{$ionicons-prefix}plus-round:before, -.#{$ionicons-prefix}podium:before, -.#{$ionicons-prefix}pound:before, -.#{$ionicons-prefix}power:before, -.#{$ionicons-prefix}pricetag:before, -.#{$ionicons-prefix}pricetags:before, -.#{$ionicons-prefix}printer:before, -.#{$ionicons-prefix}pull-request:before, -.#{$ionicons-prefix}qr-scanner:before, -.#{$ionicons-prefix}quote:before, -.#{$ionicons-prefix}radio-waves:before, -.#{$ionicons-prefix}record:before, -.#{$ionicons-prefix}refresh:before, -.#{$ionicons-prefix}reply:before, -.#{$ionicons-prefix}reply-all:before, -.#{$ionicons-prefix}ribbon-a:before, -.#{$ionicons-prefix}ribbon-b:before, -.#{$ionicons-prefix}sad:before, -.#{$ionicons-prefix}sad-outline:before, -.#{$ionicons-prefix}scissors:before, -.#{$ionicons-prefix}search:before, -.#{$ionicons-prefix}settings:before, -.#{$ionicons-prefix}share:before, -.#{$ionicons-prefix}shuffle:before, -.#{$ionicons-prefix}skip-backward:before, -.#{$ionicons-prefix}skip-forward:before, -.#{$ionicons-prefix}social-android:before, -.#{$ionicons-prefix}social-android-outline:before, -.#{$ionicons-prefix}social-angular:before, -.#{$ionicons-prefix}social-angular-outline:before, -.#{$ionicons-prefix}social-apple:before, -.#{$ionicons-prefix}social-apple-outline:before, -.#{$ionicons-prefix}social-bitcoin:before, -.#{$ionicons-prefix}social-bitcoin-outline:before, -.#{$ionicons-prefix}social-buffer:before, -.#{$ionicons-prefix}social-buffer-outline:before, -.#{$ionicons-prefix}social-chrome:before, -.#{$ionicons-prefix}social-chrome-outline:before, -.#{$ionicons-prefix}social-codepen:before, -.#{$ionicons-prefix}social-codepen-outline:before, -.#{$ionicons-prefix}social-css3:before, -.#{$ionicons-prefix}social-css3-outline:before, -.#{$ionicons-prefix}social-designernews:before, -.#{$ionicons-prefix}social-designernews-outline:before, -.#{$ionicons-prefix}social-dribbble:before, -.#{$ionicons-prefix}social-dribbble-outline:before, -.#{$ionicons-prefix}social-dropbox:before, -.#{$ionicons-prefix}social-dropbox-outline:before, -.#{$ionicons-prefix}social-euro:before, -.#{$ionicons-prefix}social-euro-outline:before, -.#{$ionicons-prefix}social-facebook:before, -.#{$ionicons-prefix}social-facebook-outline:before, -.#{$ionicons-prefix}social-foursquare:before, -.#{$ionicons-prefix}social-foursquare-outline:before, -.#{$ionicons-prefix}social-freebsd-devil:before, -.#{$ionicons-prefix}social-github:before, -.#{$ionicons-prefix}social-github-outline:before, -.#{$ionicons-prefix}social-google:before, -.#{$ionicons-prefix}social-google-outline:before, -.#{$ionicons-prefix}social-googleplus:before, -.#{$ionicons-prefix}social-googleplus-outline:before, -.#{$ionicons-prefix}social-hackernews:before, -.#{$ionicons-prefix}social-hackernews-outline:before, -.#{$ionicons-prefix}social-html5:before, -.#{$ionicons-prefix}social-html5-outline:before, -.#{$ionicons-prefix}social-instagram:before, -.#{$ionicons-prefix}social-instagram-outline:before, -.#{$ionicons-prefix}social-javascript:before, -.#{$ionicons-prefix}social-javascript-outline:before, -.#{$ionicons-prefix}social-linkedin:before, -.#{$ionicons-prefix}social-linkedin-outline:before, -.#{$ionicons-prefix}social-markdown:before, -.#{$ionicons-prefix}social-nodejs:before, -.#{$ionicons-prefix}social-octocat:before, -.#{$ionicons-prefix}social-pinterest:before, -.#{$ionicons-prefix}social-pinterest-outline:before, -.#{$ionicons-prefix}social-python:before, -.#{$ionicons-prefix}social-reddit:before, -.#{$ionicons-prefix}social-reddit-outline:before, -.#{$ionicons-prefix}social-rss:before, -.#{$ionicons-prefix}social-rss-outline:before, -.#{$ionicons-prefix}social-sass:before, -.#{$ionicons-prefix}social-skype:before, -.#{$ionicons-prefix}social-skype-outline:before, -.#{$ionicons-prefix}social-snapchat:before, -.#{$ionicons-prefix}social-snapchat-outline:before, -.#{$ionicons-prefix}social-tumblr:before, -.#{$ionicons-prefix}social-tumblr-outline:before, -.#{$ionicons-prefix}social-tux:before, -.#{$ionicons-prefix}social-twitch:before, -.#{$ionicons-prefix}social-twitch-outline:before, -.#{$ionicons-prefix}social-twitter:before, -.#{$ionicons-prefix}social-twitter-outline:before, -.#{$ionicons-prefix}social-usd:before, -.#{$ionicons-prefix}social-usd-outline:before, -.#{$ionicons-prefix}social-vimeo:before, -.#{$ionicons-prefix}social-vimeo-outline:before, -.#{$ionicons-prefix}social-whatsapp:before, -.#{$ionicons-prefix}social-whatsapp-outline:before, -.#{$ionicons-prefix}social-windows:before, -.#{$ionicons-prefix}social-windows-outline:before, -.#{$ionicons-prefix}social-wordpress:before, -.#{$ionicons-prefix}social-wordpress-outline:before, -.#{$ionicons-prefix}social-yahoo:before, -.#{$ionicons-prefix}social-yahoo-outline:before, -.#{$ionicons-prefix}social-yen:before, -.#{$ionicons-prefix}social-yen-outline:before, -.#{$ionicons-prefix}social-youtube:before, -.#{$ionicons-prefix}social-youtube-outline:before, -.#{$ionicons-prefix}soup-can:before, -.#{$ionicons-prefix}soup-can-outline:before, -.#{$ionicons-prefix}speakerphone:before, -.#{$ionicons-prefix}speedometer:before, -.#{$ionicons-prefix}spoon:before, -.#{$ionicons-prefix}star:before, -.#{$ionicons-prefix}stats-bars:before, -.#{$ionicons-prefix}steam:before, -.#{$ionicons-prefix}stop:before, -.#{$ionicons-prefix}thermometer:before, -.#{$ionicons-prefix}thumbsdown:before, -.#{$ionicons-prefix}thumbsup:before, -.#{$ionicons-prefix}toggle:before, -.#{$ionicons-prefix}toggle-filled:before, -.#{$ionicons-prefix}transgender:before, -.#{$ionicons-prefix}trash-a:before, -.#{$ionicons-prefix}trash-b:before, -.#{$ionicons-prefix}trophy:before, -.#{$ionicons-prefix}tshirt:before, -.#{$ionicons-prefix}tshirt-outline:before, -.#{$ionicons-prefix}umbrella:before, -.#{$ionicons-prefix}university:before, -.#{$ionicons-prefix}unlocked:before, -.#{$ionicons-prefix}upload:before, -.#{$ionicons-prefix}usb:before, -.#{$ionicons-prefix}videocamera:before, -.#{$ionicons-prefix}volume-high:before, -.#{$ionicons-prefix}volume-low:before, -.#{$ionicons-prefix}volume-medium:before, -.#{$ionicons-prefix}volume-mute:before, -.#{$ionicons-prefix}wand:before, -.#{$ionicons-prefix}waterdrop:before, -.#{$ionicons-prefix}wifi:before, -.#{$ionicons-prefix}wineglass:before, -.#{$ionicons-prefix}woman:before, -.#{$ionicons-prefix}wrench:before, -.#{$ionicons-prefix}xbox:before -{ - @extend .ion; -} -.#{$ionicons-prefix}alert:before { content: $ionicon-var-alert; } -.#{$ionicons-prefix}alert-circled:before { content: $ionicon-var-alert-circled; } -.#{$ionicons-prefix}android-add:before { content: $ionicon-var-android-add; } -.#{$ionicons-prefix}android-add-circle:before { content: $ionicon-var-android-add-circle; } -.#{$ionicons-prefix}android-alarm-clock:before { content: $ionicon-var-android-alarm-clock; } -.#{$ionicons-prefix}android-alert:before { content: $ionicon-var-android-alert; } -.#{$ionicons-prefix}android-apps:before { content: $ionicon-var-android-apps; } -.#{$ionicons-prefix}android-archive:before { content: $ionicon-var-android-archive; } -.#{$ionicons-prefix}android-arrow-back:before { content: $ionicon-var-android-arrow-back; } -.#{$ionicons-prefix}android-arrow-down:before { content: $ionicon-var-android-arrow-down; } -.#{$ionicons-prefix}android-arrow-dropdown:before { content: $ionicon-var-android-arrow-dropdown; } -.#{$ionicons-prefix}android-arrow-dropdown-circle:before { content: $ionicon-var-android-arrow-dropdown-circle; } -.#{$ionicons-prefix}android-arrow-dropleft:before { content: $ionicon-var-android-arrow-dropleft; } -.#{$ionicons-prefix}android-arrow-dropleft-circle:before { content: $ionicon-var-android-arrow-dropleft-circle; } -.#{$ionicons-prefix}android-arrow-dropright:before { content: $ionicon-var-android-arrow-dropright; } -.#{$ionicons-prefix}android-arrow-dropright-circle:before { content: $ionicon-var-android-arrow-dropright-circle; } -.#{$ionicons-prefix}android-arrow-dropup:before { content: $ionicon-var-android-arrow-dropup; } -.#{$ionicons-prefix}android-arrow-dropup-circle:before { content: $ionicon-var-android-arrow-dropup-circle; } -.#{$ionicons-prefix}android-arrow-forward:before { content: $ionicon-var-android-arrow-forward; } -.#{$ionicons-prefix}android-arrow-up:before { content: $ionicon-var-android-arrow-up; } -.#{$ionicons-prefix}android-attach:before { content: $ionicon-var-android-attach; } -.#{$ionicons-prefix}android-bar:before { content: $ionicon-var-android-bar; } -.#{$ionicons-prefix}android-bicycle:before { content: $ionicon-var-android-bicycle; } -.#{$ionicons-prefix}android-boat:before { content: $ionicon-var-android-boat; } -.#{$ionicons-prefix}android-bookmark:before { content: $ionicon-var-android-bookmark; } -.#{$ionicons-prefix}android-bulb:before { content: $ionicon-var-android-bulb; } -.#{$ionicons-prefix}android-bus:before { content: $ionicon-var-android-bus; } -.#{$ionicons-prefix}android-calendar:before { content: $ionicon-var-android-calendar; } -.#{$ionicons-prefix}android-call:before { content: $ionicon-var-android-call; } -.#{$ionicons-prefix}android-camera:before { content: $ionicon-var-android-camera; } -.#{$ionicons-prefix}android-cancel:before { content: $ionicon-var-android-cancel; } -.#{$ionicons-prefix}android-car:before { content: $ionicon-var-android-car; } -.#{$ionicons-prefix}android-cart:before { content: $ionicon-var-android-cart; } -.#{$ionicons-prefix}android-chat:before { content: $ionicon-var-android-chat; } -.#{$ionicons-prefix}android-checkbox:before { content: $ionicon-var-android-checkbox; } -.#{$ionicons-prefix}android-checkbox-blank:before { content: $ionicon-var-android-checkbox-blank; } -.#{$ionicons-prefix}android-checkbox-outline:before { content: $ionicon-var-android-checkbox-outline; } -.#{$ionicons-prefix}android-checkbox-outline-blank:before { content: $ionicon-var-android-checkbox-outline-blank; } -.#{$ionicons-prefix}android-checkmark-circle:before { content: $ionicon-var-android-checkmark-circle; } -.#{$ionicons-prefix}android-clipboard:before { content: $ionicon-var-android-clipboard; } -.#{$ionicons-prefix}android-close:before { content: $ionicon-var-android-close; } -.#{$ionicons-prefix}android-cloud:before { content: $ionicon-var-android-cloud; } -.#{$ionicons-prefix}android-cloud-circle:before { content: $ionicon-var-android-cloud-circle; } -.#{$ionicons-prefix}android-cloud-done:before { content: $ionicon-var-android-cloud-done; } -.#{$ionicons-prefix}android-cloud-outline:before { content: $ionicon-var-android-cloud-outline; } -.#{$ionicons-prefix}android-color-palette:before { content: $ionicon-var-android-color-palette; } -.#{$ionicons-prefix}android-compass:before { content: $ionicon-var-android-compass; } -.#{$ionicons-prefix}android-contact:before { content: $ionicon-var-android-contact; } -.#{$ionicons-prefix}android-contacts:before { content: $ionicon-var-android-contacts; } -.#{$ionicons-prefix}android-contract:before { content: $ionicon-var-android-contract; } -.#{$ionicons-prefix}android-create:before { content: $ionicon-var-android-create; } -.#{$ionicons-prefix}android-delete:before { content: $ionicon-var-android-delete; } -.#{$ionicons-prefix}android-desktop:before { content: $ionicon-var-android-desktop; } -.#{$ionicons-prefix}android-document:before { content: $ionicon-var-android-document; } -.#{$ionicons-prefix}android-done:before { content: $ionicon-var-android-done; } -.#{$ionicons-prefix}android-done-all:before { content: $ionicon-var-android-done-all; } -.#{$ionicons-prefix}android-download:before { content: $ionicon-var-android-download; } -.#{$ionicons-prefix}android-drafts:before { content: $ionicon-var-android-drafts; } -.#{$ionicons-prefix}android-exit:before { content: $ionicon-var-android-exit; } -.#{$ionicons-prefix}android-expand:before { content: $ionicon-var-android-expand; } -.#{$ionicons-prefix}android-favorite:before { content: $ionicon-var-android-favorite; } -.#{$ionicons-prefix}android-favorite-outline:before { content: $ionicon-var-android-favorite-outline; } -.#{$ionicons-prefix}android-film:before { content: $ionicon-var-android-film; } -.#{$ionicons-prefix}android-folder:before { content: $ionicon-var-android-folder; } -.#{$ionicons-prefix}android-folder-open:before { content: $ionicon-var-android-folder-open; } -.#{$ionicons-prefix}android-funnel:before { content: $ionicon-var-android-funnel; } -.#{$ionicons-prefix}android-globe:before { content: $ionicon-var-android-globe; } -.#{$ionicons-prefix}android-hand:before { content: $ionicon-var-android-hand; } -.#{$ionicons-prefix}android-hangout:before { content: $ionicon-var-android-hangout; } -.#{$ionicons-prefix}android-happy:before { content: $ionicon-var-android-happy; } -.#{$ionicons-prefix}android-home:before { content: $ionicon-var-android-home; } -.#{$ionicons-prefix}android-image:before { content: $ionicon-var-android-image; } -.#{$ionicons-prefix}android-laptop:before { content: $ionicon-var-android-laptop; } -.#{$ionicons-prefix}android-list:before { content: $ionicon-var-android-list; } -.#{$ionicons-prefix}android-locate:before { content: $ionicon-var-android-locate; } -.#{$ionicons-prefix}android-lock:before { content: $ionicon-var-android-lock; } -.#{$ionicons-prefix}android-mail:before { content: $ionicon-var-android-mail; } -.#{$ionicons-prefix}android-map:before { content: $ionicon-var-android-map; } -.#{$ionicons-prefix}android-menu:before { content: $ionicon-var-android-menu; } -.#{$ionicons-prefix}android-microphone:before { content: $ionicon-var-android-microphone; } -.#{$ionicons-prefix}android-microphone-off:before { content: $ionicon-var-android-microphone-off; } -.#{$ionicons-prefix}android-more-horizontal:before { content: $ionicon-var-android-more-horizontal; } -.#{$ionicons-prefix}android-more-vertical:before { content: $ionicon-var-android-more-vertical; } -.#{$ionicons-prefix}android-navigate:before { content: $ionicon-var-android-navigate; } -.#{$ionicons-prefix}android-notifications:before { content: $ionicon-var-android-notifications; } -.#{$ionicons-prefix}android-notifications-none:before { content: $ionicon-var-android-notifications-none; } -.#{$ionicons-prefix}android-notifications-off:before { content: $ionicon-var-android-notifications-off; } -.#{$ionicons-prefix}android-open:before { content: $ionicon-var-android-open; } -.#{$ionicons-prefix}android-options:before { content: $ionicon-var-android-options; } -.#{$ionicons-prefix}android-people:before { content: $ionicon-var-android-people; } -.#{$ionicons-prefix}android-person:before { content: $ionicon-var-android-person; } -.#{$ionicons-prefix}android-person-add:before { content: $ionicon-var-android-person-add; } -.#{$ionicons-prefix}android-phone-landscape:before { content: $ionicon-var-android-phone-landscape; } -.#{$ionicons-prefix}android-phone-portrait:before { content: $ionicon-var-android-phone-portrait; } -.#{$ionicons-prefix}android-pin:before { content: $ionicon-var-android-pin; } -.#{$ionicons-prefix}android-plane:before { content: $ionicon-var-android-plane; } -.#{$ionicons-prefix}android-playstore:before { content: $ionicon-var-android-playstore; } -.#{$ionicons-prefix}android-print:before { content: $ionicon-var-android-print; } -.#{$ionicons-prefix}android-radio-button-off:before { content: $ionicon-var-android-radio-button-off; } -.#{$ionicons-prefix}android-radio-button-on:before { content: $ionicon-var-android-radio-button-on; } -.#{$ionicons-prefix}android-refresh:before { content: $ionicon-var-android-refresh; } -.#{$ionicons-prefix}android-remove:before { content: $ionicon-var-android-remove; } -.#{$ionicons-prefix}android-remove-circle:before { content: $ionicon-var-android-remove-circle; } -.#{$ionicons-prefix}android-restaurant:before { content: $ionicon-var-android-restaurant; } -.#{$ionicons-prefix}android-sad:before { content: $ionicon-var-android-sad; } -.#{$ionicons-prefix}android-search:before { content: $ionicon-var-android-search; } -.#{$ionicons-prefix}android-send:before { content: $ionicon-var-android-send; } -.#{$ionicons-prefix}android-settings:before { content: $ionicon-var-android-settings; } -.#{$ionicons-prefix}android-share:before { content: $ionicon-var-android-share; } -.#{$ionicons-prefix}android-share-alt:before { content: $ionicon-var-android-share-alt; } -.#{$ionicons-prefix}android-star:before { content: $ionicon-var-android-star; } -.#{$ionicons-prefix}android-star-half:before { content: $ionicon-var-android-star-half; } -.#{$ionicons-prefix}android-star-outline:before { content: $ionicon-var-android-star-outline; } -.#{$ionicons-prefix}android-stopwatch:before { content: $ionicon-var-android-stopwatch; } -.#{$ionicons-prefix}android-subway:before { content: $ionicon-var-android-subway; } -.#{$ionicons-prefix}android-sunny:before { content: $ionicon-var-android-sunny; } -.#{$ionicons-prefix}android-sync:before { content: $ionicon-var-android-sync; } -.#{$ionicons-prefix}android-textsms:before { content: $ionicon-var-android-textsms; } -.#{$ionicons-prefix}android-time:before { content: $ionicon-var-android-time; } -.#{$ionicons-prefix}android-train:before { content: $ionicon-var-android-train; } -.#{$ionicons-prefix}android-unlock:before { content: $ionicon-var-android-unlock; } -.#{$ionicons-prefix}android-upload:before { content: $ionicon-var-android-upload; } -.#{$ionicons-prefix}android-volume-down:before { content: $ionicon-var-android-volume-down; } -.#{$ionicons-prefix}android-volume-mute:before { content: $ionicon-var-android-volume-mute; } -.#{$ionicons-prefix}android-volume-off:before { content: $ionicon-var-android-volume-off; } -.#{$ionicons-prefix}android-volume-up:before { content: $ionicon-var-android-volume-up; } -.#{$ionicons-prefix}android-walk:before { content: $ionicon-var-android-walk; } -.#{$ionicons-prefix}android-warning:before { content: $ionicon-var-android-warning; } -.#{$ionicons-prefix}android-watch:before { content: $ionicon-var-android-watch; } -.#{$ionicons-prefix}android-wifi:before { content: $ionicon-var-android-wifi; } -.#{$ionicons-prefix}aperture:before { content: $ionicon-var-aperture; } -.#{$ionicons-prefix}archive:before { content: $ionicon-var-archive; } -.#{$ionicons-prefix}arrow-down-a:before { content: $ionicon-var-arrow-down-a; } -.#{$ionicons-prefix}arrow-down-b:before { content: $ionicon-var-arrow-down-b; } -.#{$ionicons-prefix}arrow-down-c:before { content: $ionicon-var-arrow-down-c; } -.#{$ionicons-prefix}arrow-expand:before { content: $ionicon-var-arrow-expand; } -.#{$ionicons-prefix}arrow-graph-down-left:before { content: $ionicon-var-arrow-graph-down-left; } -.#{$ionicons-prefix}arrow-graph-down-right:before { content: $ionicon-var-arrow-graph-down-right; } -.#{$ionicons-prefix}arrow-graph-up-left:before { content: $ionicon-var-arrow-graph-up-left; } -.#{$ionicons-prefix}arrow-graph-up-right:before { content: $ionicon-var-arrow-graph-up-right; } -.#{$ionicons-prefix}arrow-left-a:before { content: $ionicon-var-arrow-left-a; } -.#{$ionicons-prefix}arrow-left-b:before { content: $ionicon-var-arrow-left-b; } -.#{$ionicons-prefix}arrow-left-c:before { content: $ionicon-var-arrow-left-c; } -.#{$ionicons-prefix}arrow-move:before { content: $ionicon-var-arrow-move; } -.#{$ionicons-prefix}arrow-resize:before { content: $ionicon-var-arrow-resize; } -.#{$ionicons-prefix}arrow-return-left:before { content: $ionicon-var-arrow-return-left; } -.#{$ionicons-prefix}arrow-return-right:before { content: $ionicon-var-arrow-return-right; } -.#{$ionicons-prefix}arrow-right-a:before { content: $ionicon-var-arrow-right-a; } -.#{$ionicons-prefix}arrow-right-b:before { content: $ionicon-var-arrow-right-b; } -.#{$ionicons-prefix}arrow-right-c:before { content: $ionicon-var-arrow-right-c; } -.#{$ionicons-prefix}arrow-shrink:before { content: $ionicon-var-arrow-shrink; } -.#{$ionicons-prefix}arrow-swap:before { content: $ionicon-var-arrow-swap; } -.#{$ionicons-prefix}arrow-up-a:before { content: $ionicon-var-arrow-up-a; } -.#{$ionicons-prefix}arrow-up-b:before { content: $ionicon-var-arrow-up-b; } -.#{$ionicons-prefix}arrow-up-c:before { content: $ionicon-var-arrow-up-c; } -.#{$ionicons-prefix}asterisk:before { content: $ionicon-var-asterisk; } -.#{$ionicons-prefix}at:before { content: $ionicon-var-at; } -.#{$ionicons-prefix}backspace:before { content: $ionicon-var-backspace; } -.#{$ionicons-prefix}backspace-outline:before { content: $ionicon-var-backspace-outline; } -.#{$ionicons-prefix}bag:before { content: $ionicon-var-bag; } -.#{$ionicons-prefix}battery-charging:before { content: $ionicon-var-battery-charging; } -.#{$ionicons-prefix}battery-empty:before { content: $ionicon-var-battery-empty; } -.#{$ionicons-prefix}battery-full:before { content: $ionicon-var-battery-full; } -.#{$ionicons-prefix}battery-half:before { content: $ionicon-var-battery-half; } -.#{$ionicons-prefix}battery-low:before { content: $ionicon-var-battery-low; } -.#{$ionicons-prefix}beaker:before { content: $ionicon-var-beaker; } -.#{$ionicons-prefix}beer:before { content: $ionicon-var-beer; } -.#{$ionicons-prefix}bluetooth:before { content: $ionicon-var-bluetooth; } -.#{$ionicons-prefix}bonfire:before { content: $ionicon-var-bonfire; } -.#{$ionicons-prefix}bookmark:before { content: $ionicon-var-bookmark; } -.#{$ionicons-prefix}bowtie:before { content: $ionicon-var-bowtie; } -.#{$ionicons-prefix}briefcase:before { content: $ionicon-var-briefcase; } -.#{$ionicons-prefix}bug:before { content: $ionicon-var-bug; } -.#{$ionicons-prefix}calculator:before { content: $ionicon-var-calculator; } -.#{$ionicons-prefix}calendar:before { content: $ionicon-var-calendar; } -.#{$ionicons-prefix}camera:before { content: $ionicon-var-camera; } -.#{$ionicons-prefix}card:before { content: $ionicon-var-card; } -.#{$ionicons-prefix}cash:before { content: $ionicon-var-cash; } -.#{$ionicons-prefix}chatbox:before { content: $ionicon-var-chatbox; } -.#{$ionicons-prefix}chatbox-working:before { content: $ionicon-var-chatbox-working; } -.#{$ionicons-prefix}chatboxes:before { content: $ionicon-var-chatboxes; } -.#{$ionicons-prefix}chatbubble:before { content: $ionicon-var-chatbubble; } -.#{$ionicons-prefix}chatbubble-working:before { content: $ionicon-var-chatbubble-working; } -.#{$ionicons-prefix}chatbubbles:before { content: $ionicon-var-chatbubbles; } -.#{$ionicons-prefix}checkmark:before { content: $ionicon-var-checkmark; } -.#{$ionicons-prefix}checkmark-circled:before { content: $ionicon-var-checkmark-circled; } -.#{$ionicons-prefix}checkmark-round:before { content: $ionicon-var-checkmark-round; } -.#{$ionicons-prefix}chevron-down:before { content: $ionicon-var-chevron-down; } -.#{$ionicons-prefix}chevron-left:before { content: $ionicon-var-chevron-left; } -.#{$ionicons-prefix}chevron-right:before { content: $ionicon-var-chevron-right; } -.#{$ionicons-prefix}chevron-up:before { content: $ionicon-var-chevron-up; } -.#{$ionicons-prefix}clipboard:before { content: $ionicon-var-clipboard; } -.#{$ionicons-prefix}clock:before { content: $ionicon-var-clock; } -.#{$ionicons-prefix}close:before { content: $ionicon-var-close; } -.#{$ionicons-prefix}close-circled:before { content: $ionicon-var-close-circled; } -.#{$ionicons-prefix}close-round:before { content: $ionicon-var-close-round; } -.#{$ionicons-prefix}closed-captioning:before { content: $ionicon-var-closed-captioning; } -.#{$ionicons-prefix}cloud:before { content: $ionicon-var-cloud; } -.#{$ionicons-prefix}code:before { content: $ionicon-var-code; } -.#{$ionicons-prefix}code-download:before { content: $ionicon-var-code-download; } -.#{$ionicons-prefix}code-working:before { content: $ionicon-var-code-working; } -.#{$ionicons-prefix}coffee:before { content: $ionicon-var-coffee; } -.#{$ionicons-prefix}compass:before { content: $ionicon-var-compass; } -.#{$ionicons-prefix}compose:before { content: $ionicon-var-compose; } -.#{$ionicons-prefix}connection-bars:before { content: $ionicon-var-connection-bars; } -.#{$ionicons-prefix}contrast:before { content: $ionicon-var-contrast; } -.#{$ionicons-prefix}crop:before { content: $ionicon-var-crop; } -.#{$ionicons-prefix}cube:before { content: $ionicon-var-cube; } -.#{$ionicons-prefix}disc:before { content: $ionicon-var-disc; } -.#{$ionicons-prefix}document:before { content: $ionicon-var-document; } -.#{$ionicons-prefix}document-text:before { content: $ionicon-var-document-text; } -.#{$ionicons-prefix}drag:before { content: $ionicon-var-drag; } -.#{$ionicons-prefix}earth:before { content: $ionicon-var-earth; } -.#{$ionicons-prefix}easel:before { content: $ionicon-var-easel; } -.#{$ionicons-prefix}edit:before { content: $ionicon-var-edit; } -.#{$ionicons-prefix}egg:before { content: $ionicon-var-egg; } -.#{$ionicons-prefix}eject:before { content: $ionicon-var-eject; } -.#{$ionicons-prefix}email:before { content: $ionicon-var-email; } -.#{$ionicons-prefix}email-unread:before { content: $ionicon-var-email-unread; } -.#{$ionicons-prefix}erlenmeyer-flask:before { content: $ionicon-var-erlenmeyer-flask; } -.#{$ionicons-prefix}erlenmeyer-flask-bubbles:before { content: $ionicon-var-erlenmeyer-flask-bubbles; } -.#{$ionicons-prefix}eye:before { content: $ionicon-var-eye; } -.#{$ionicons-prefix}eye-disabled:before { content: $ionicon-var-eye-disabled; } -.#{$ionicons-prefix}female:before { content: $ionicon-var-female; } -.#{$ionicons-prefix}filing:before { content: $ionicon-var-filing; } -.#{$ionicons-prefix}film-marker:before { content: $ionicon-var-film-marker; } -.#{$ionicons-prefix}fireball:before { content: $ionicon-var-fireball; } -.#{$ionicons-prefix}flag:before { content: $ionicon-var-flag; } -.#{$ionicons-prefix}flame:before { content: $ionicon-var-flame; } -.#{$ionicons-prefix}flash:before { content: $ionicon-var-flash; } -.#{$ionicons-prefix}flash-off:before { content: $ionicon-var-flash-off; } -.#{$ionicons-prefix}folder:before { content: $ionicon-var-folder; } -.#{$ionicons-prefix}fork:before { content: $ionicon-var-fork; } -.#{$ionicons-prefix}fork-repo:before { content: $ionicon-var-fork-repo; } -.#{$ionicons-prefix}forward:before { content: $ionicon-var-forward; } -.#{$ionicons-prefix}funnel:before { content: $ionicon-var-funnel; } -.#{$ionicons-prefix}gear-a:before { content: $ionicon-var-gear-a; } -.#{$ionicons-prefix}gear-b:before { content: $ionicon-var-gear-b; } -.#{$ionicons-prefix}grid:before { content: $ionicon-var-grid; } -.#{$ionicons-prefix}hammer:before { content: $ionicon-var-hammer; } -.#{$ionicons-prefix}happy:before { content: $ionicon-var-happy; } -.#{$ionicons-prefix}happy-outline:before { content: $ionicon-var-happy-outline; } -.#{$ionicons-prefix}headphone:before { content: $ionicon-var-headphone; } -.#{$ionicons-prefix}heart:before { content: $ionicon-var-heart; } -.#{$ionicons-prefix}heart-broken:before { content: $ionicon-var-heart-broken; } -.#{$ionicons-prefix}help:before { content: $ionicon-var-help; } -.#{$ionicons-prefix}help-buoy:before { content: $ionicon-var-help-buoy; } -.#{$ionicons-prefix}help-circled:before { content: $ionicon-var-help-circled; } -.#{$ionicons-prefix}home:before { content: $ionicon-var-home; } -.#{$ionicons-prefix}icecream:before { content: $ionicon-var-icecream; } -.#{$ionicons-prefix}image:before { content: $ionicon-var-image; } -.#{$ionicons-prefix}images:before { content: $ionicon-var-images; } -.#{$ionicons-prefix}information:before { content: $ionicon-var-information; } -.#{$ionicons-prefix}information-circled:before { content: $ionicon-var-information-circled; } -.#{$ionicons-prefix}ionic:before { content: $ionicon-var-ionic; } -.#{$ionicons-prefix}ios-alarm:before { content: $ionicon-var-ios-alarm; } -.#{$ionicons-prefix}ios-alarm-outline:before { content: $ionicon-var-ios-alarm-outline; } -.#{$ionicons-prefix}ios-albums:before { content: $ionicon-var-ios-albums; } -.#{$ionicons-prefix}ios-albums-outline:before { content: $ionicon-var-ios-albums-outline; } -.#{$ionicons-prefix}ios-americanfootball:before { content: $ionicon-var-ios-americanfootball; } -.#{$ionicons-prefix}ios-americanfootball-outline:before { content: $ionicon-var-ios-americanfootball-outline; } -.#{$ionicons-prefix}ios-analytics:before { content: $ionicon-var-ios-analytics; } -.#{$ionicons-prefix}ios-analytics-outline:before { content: $ionicon-var-ios-analytics-outline; } -.#{$ionicons-prefix}ios-arrow-back:before { content: $ionicon-var-ios-arrow-back; } -.#{$ionicons-prefix}ios-arrow-down:before { content: $ionicon-var-ios-arrow-down; } -.#{$ionicons-prefix}ios-arrow-forward:before { content: $ionicon-var-ios-arrow-forward; } -.#{$ionicons-prefix}ios-arrow-left:before { content: $ionicon-var-ios-arrow-left; } -.#{$ionicons-prefix}ios-arrow-right:before { content: $ionicon-var-ios-arrow-right; } -.#{$ionicons-prefix}ios-arrow-thin-down:before { content: $ionicon-var-ios-arrow-thin-down; } -.#{$ionicons-prefix}ios-arrow-thin-left:before { content: $ionicon-var-ios-arrow-thin-left; } -.#{$ionicons-prefix}ios-arrow-thin-right:before { content: $ionicon-var-ios-arrow-thin-right; } -.#{$ionicons-prefix}ios-arrow-thin-up:before { content: $ionicon-var-ios-arrow-thin-up; } -.#{$ionicons-prefix}ios-arrow-up:before { content: $ionicon-var-ios-arrow-up; } -.#{$ionicons-prefix}ios-at:before { content: $ionicon-var-ios-at; } -.#{$ionicons-prefix}ios-at-outline:before { content: $ionicon-var-ios-at-outline; } -.#{$ionicons-prefix}ios-barcode:before { content: $ionicon-var-ios-barcode; } -.#{$ionicons-prefix}ios-barcode-outline:before { content: $ionicon-var-ios-barcode-outline; } -.#{$ionicons-prefix}ios-baseball:before { content: $ionicon-var-ios-baseball; } -.#{$ionicons-prefix}ios-baseball-outline:before { content: $ionicon-var-ios-baseball-outline; } -.#{$ionicons-prefix}ios-basketball:before { content: $ionicon-var-ios-basketball; } -.#{$ionicons-prefix}ios-basketball-outline:before { content: $ionicon-var-ios-basketball-outline; } -.#{$ionicons-prefix}ios-bell:before { content: $ionicon-var-ios-bell; } -.#{$ionicons-prefix}ios-bell-outline:before { content: $ionicon-var-ios-bell-outline; } -.#{$ionicons-prefix}ios-body:before { content: $ionicon-var-ios-body; } -.#{$ionicons-prefix}ios-body-outline:before { content: $ionicon-var-ios-body-outline; } -.#{$ionicons-prefix}ios-bolt:before { content: $ionicon-var-ios-bolt; } -.#{$ionicons-prefix}ios-bolt-outline:before { content: $ionicon-var-ios-bolt-outline; } -.#{$ionicons-prefix}ios-book:before { content: $ionicon-var-ios-book; } -.#{$ionicons-prefix}ios-book-outline:before { content: $ionicon-var-ios-book-outline; } -.#{$ionicons-prefix}ios-bookmarks:before { content: $ionicon-var-ios-bookmarks; } -.#{$ionicons-prefix}ios-bookmarks-outline:before { content: $ionicon-var-ios-bookmarks-outline; } -.#{$ionicons-prefix}ios-box:before { content: $ionicon-var-ios-box; } -.#{$ionicons-prefix}ios-box-outline:before { content: $ionicon-var-ios-box-outline; } -.#{$ionicons-prefix}ios-briefcase:before { content: $ionicon-var-ios-briefcase; } -.#{$ionicons-prefix}ios-briefcase-outline:before { content: $ionicon-var-ios-briefcase-outline; } -.#{$ionicons-prefix}ios-browsers:before { content: $ionicon-var-ios-browsers; } -.#{$ionicons-prefix}ios-browsers-outline:before { content: $ionicon-var-ios-browsers-outline; } -.#{$ionicons-prefix}ios-calculator:before { content: $ionicon-var-ios-calculator; } -.#{$ionicons-prefix}ios-calculator-outline:before { content: $ionicon-var-ios-calculator-outline; } -.#{$ionicons-prefix}ios-calendar:before { content: $ionicon-var-ios-calendar; } -.#{$ionicons-prefix}ios-calendar-outline:before { content: $ionicon-var-ios-calendar-outline; } -.#{$ionicons-prefix}ios-camera:before { content: $ionicon-var-ios-camera; } -.#{$ionicons-prefix}ios-camera-outline:before { content: $ionicon-var-ios-camera-outline; } -.#{$ionicons-prefix}ios-cart:before { content: $ionicon-var-ios-cart; } -.#{$ionicons-prefix}ios-cart-outline:before { content: $ionicon-var-ios-cart-outline; } -.#{$ionicons-prefix}ios-chatboxes:before { content: $ionicon-var-ios-chatboxes; } -.#{$ionicons-prefix}ios-chatboxes-outline:before { content: $ionicon-var-ios-chatboxes-outline; } -.#{$ionicons-prefix}ios-chatbubble:before { content: $ionicon-var-ios-chatbubble; } -.#{$ionicons-prefix}ios-chatbubble-outline:before { content: $ionicon-var-ios-chatbubble-outline; } -.#{$ionicons-prefix}ios-checkmark:before { content: $ionicon-var-ios-checkmark; } -.#{$ionicons-prefix}ios-checkmark-empty:before { content: $ionicon-var-ios-checkmark-empty; } -.#{$ionicons-prefix}ios-checkmark-outline:before { content: $ionicon-var-ios-checkmark-outline; } -.#{$ionicons-prefix}ios-circle-filled:before { content: $ionicon-var-ios-circle-filled; } -.#{$ionicons-prefix}ios-circle-outline:before { content: $ionicon-var-ios-circle-outline; } -.#{$ionicons-prefix}ios-clock:before { content: $ionicon-var-ios-clock; } -.#{$ionicons-prefix}ios-clock-outline:before { content: $ionicon-var-ios-clock-outline; } -.#{$ionicons-prefix}ios-close:before { content: $ionicon-var-ios-close; } -.#{$ionicons-prefix}ios-close-empty:before { content: $ionicon-var-ios-close-empty; } -.#{$ionicons-prefix}ios-close-outline:before { content: $ionicon-var-ios-close-outline; } -.#{$ionicons-prefix}ios-cloud:before { content: $ionicon-var-ios-cloud; } -.#{$ionicons-prefix}ios-cloud-download:before { content: $ionicon-var-ios-cloud-download; } -.#{$ionicons-prefix}ios-cloud-download-outline:before { content: $ionicon-var-ios-cloud-download-outline; } -.#{$ionicons-prefix}ios-cloud-outline:before { content: $ionicon-var-ios-cloud-outline; } -.#{$ionicons-prefix}ios-cloud-upload:before { content: $ionicon-var-ios-cloud-upload; } -.#{$ionicons-prefix}ios-cloud-upload-outline:before { content: $ionicon-var-ios-cloud-upload-outline; } -.#{$ionicons-prefix}ios-cloudy:before { content: $ionicon-var-ios-cloudy; } -.#{$ionicons-prefix}ios-cloudy-night:before { content: $ionicon-var-ios-cloudy-night; } -.#{$ionicons-prefix}ios-cloudy-night-outline:before { content: $ionicon-var-ios-cloudy-night-outline; } -.#{$ionicons-prefix}ios-cloudy-outline:before { content: $ionicon-var-ios-cloudy-outline; } -.#{$ionicons-prefix}ios-cog:before { content: $ionicon-var-ios-cog; } -.#{$ionicons-prefix}ios-cog-outline:before { content: $ionicon-var-ios-cog-outline; } -.#{$ionicons-prefix}ios-color-filter:before { content: $ionicon-var-ios-color-filter; } -.#{$ionicons-prefix}ios-color-filter-outline:before { content: $ionicon-var-ios-color-filter-outline; } -.#{$ionicons-prefix}ios-color-wand:before { content: $ionicon-var-ios-color-wand; } -.#{$ionicons-prefix}ios-color-wand-outline:before { content: $ionicon-var-ios-color-wand-outline; } -.#{$ionicons-prefix}ios-compose:before { content: $ionicon-var-ios-compose; } -.#{$ionicons-prefix}ios-compose-outline:before { content: $ionicon-var-ios-compose-outline; } -.#{$ionicons-prefix}ios-contact:before { content: $ionicon-var-ios-contact; } -.#{$ionicons-prefix}ios-contact-outline:before { content: $ionicon-var-ios-contact-outline; } -.#{$ionicons-prefix}ios-copy:before { content: $ionicon-var-ios-copy; } -.#{$ionicons-prefix}ios-copy-outline:before { content: $ionicon-var-ios-copy-outline; } -.#{$ionicons-prefix}ios-crop:before { content: $ionicon-var-ios-crop; } -.#{$ionicons-prefix}ios-crop-strong:before { content: $ionicon-var-ios-crop-strong; } -.#{$ionicons-prefix}ios-download:before { content: $ionicon-var-ios-download; } -.#{$ionicons-prefix}ios-download-outline:before { content: $ionicon-var-ios-download-outline; } -.#{$ionicons-prefix}ios-drag:before { content: $ionicon-var-ios-drag; } -.#{$ionicons-prefix}ios-email:before { content: $ionicon-var-ios-email; } -.#{$ionicons-prefix}ios-email-outline:before { content: $ionicon-var-ios-email-outline; } -.#{$ionicons-prefix}ios-eye:before { content: $ionicon-var-ios-eye; } -.#{$ionicons-prefix}ios-eye-outline:before { content: $ionicon-var-ios-eye-outline; } -.#{$ionicons-prefix}ios-fastforward:before { content: $ionicon-var-ios-fastforward; } -.#{$ionicons-prefix}ios-fastforward-outline:before { content: $ionicon-var-ios-fastforward-outline; } -.#{$ionicons-prefix}ios-filing:before { content: $ionicon-var-ios-filing; } -.#{$ionicons-prefix}ios-filing-outline:before { content: $ionicon-var-ios-filing-outline; } -.#{$ionicons-prefix}ios-film:before { content: $ionicon-var-ios-film; } -.#{$ionicons-prefix}ios-film-outline:before { content: $ionicon-var-ios-film-outline; } -.#{$ionicons-prefix}ios-flag:before { content: $ionicon-var-ios-flag; } -.#{$ionicons-prefix}ios-flag-outline:before { content: $ionicon-var-ios-flag-outline; } -.#{$ionicons-prefix}ios-flame:before { content: $ionicon-var-ios-flame; } -.#{$ionicons-prefix}ios-flame-outline:before { content: $ionicon-var-ios-flame-outline; } -.#{$ionicons-prefix}ios-flask:before { content: $ionicon-var-ios-flask; } -.#{$ionicons-prefix}ios-flask-outline:before { content: $ionicon-var-ios-flask-outline; } -.#{$ionicons-prefix}ios-flower:before { content: $ionicon-var-ios-flower; } -.#{$ionicons-prefix}ios-flower-outline:before { content: $ionicon-var-ios-flower-outline; } -.#{$ionicons-prefix}ios-folder:before { content: $ionicon-var-ios-folder; } -.#{$ionicons-prefix}ios-folder-outline:before { content: $ionicon-var-ios-folder-outline; } -.#{$ionicons-prefix}ios-football:before { content: $ionicon-var-ios-football; } -.#{$ionicons-prefix}ios-football-outline:before { content: $ionicon-var-ios-football-outline; } -.#{$ionicons-prefix}ios-game-controller-a:before { content: $ionicon-var-ios-game-controller-a; } -.#{$ionicons-prefix}ios-game-controller-a-outline:before { content: $ionicon-var-ios-game-controller-a-outline; } -.#{$ionicons-prefix}ios-game-controller-b:before { content: $ionicon-var-ios-game-controller-b; } -.#{$ionicons-prefix}ios-game-controller-b-outline:before { content: $ionicon-var-ios-game-controller-b-outline; } -.#{$ionicons-prefix}ios-gear:before { content: $ionicon-var-ios-gear; } -.#{$ionicons-prefix}ios-gear-outline:before { content: $ionicon-var-ios-gear-outline; } -.#{$ionicons-prefix}ios-glasses:before { content: $ionicon-var-ios-glasses; } -.#{$ionicons-prefix}ios-glasses-outline:before { content: $ionicon-var-ios-glasses-outline; } -.#{$ionicons-prefix}ios-grid-view:before { content: $ionicon-var-ios-grid-view; } -.#{$ionicons-prefix}ios-grid-view-outline:before { content: $ionicon-var-ios-grid-view-outline; } -.#{$ionicons-prefix}ios-heart:before { content: $ionicon-var-ios-heart; } -.#{$ionicons-prefix}ios-heart-outline:before { content: $ionicon-var-ios-heart-outline; } -.#{$ionicons-prefix}ios-help:before { content: $ionicon-var-ios-help; } -.#{$ionicons-prefix}ios-help-empty:before { content: $ionicon-var-ios-help-empty; } -.#{$ionicons-prefix}ios-help-outline:before { content: $ionicon-var-ios-help-outline; } -.#{$ionicons-prefix}ios-home:before { content: $ionicon-var-ios-home; } -.#{$ionicons-prefix}ios-home-outline:before { content: $ionicon-var-ios-home-outline; } -.#{$ionicons-prefix}ios-infinite:before { content: $ionicon-var-ios-infinite; } -.#{$ionicons-prefix}ios-infinite-outline:before { content: $ionicon-var-ios-infinite-outline; } -.#{$ionicons-prefix}ios-information:before { content: $ionicon-var-ios-information; } -.#{$ionicons-prefix}ios-information-empty:before { content: $ionicon-var-ios-information-empty; } -.#{$ionicons-prefix}ios-information-outline:before { content: $ionicon-var-ios-information-outline; } -.#{$ionicons-prefix}ios-ionic-outline:before { content: $ionicon-var-ios-ionic-outline; } -.#{$ionicons-prefix}ios-keypad:before { content: $ionicon-var-ios-keypad; } -.#{$ionicons-prefix}ios-keypad-outline:before { content: $ionicon-var-ios-keypad-outline; } -.#{$ionicons-prefix}ios-lightbulb:before { content: $ionicon-var-ios-lightbulb; } -.#{$ionicons-prefix}ios-lightbulb-outline:before { content: $ionicon-var-ios-lightbulb-outline; } -.#{$ionicons-prefix}ios-list:before { content: $ionicon-var-ios-list; } -.#{$ionicons-prefix}ios-list-outline:before { content: $ionicon-var-ios-list-outline; } -.#{$ionicons-prefix}ios-location:before { content: $ionicon-var-ios-location; } -.#{$ionicons-prefix}ios-location-outline:before { content: $ionicon-var-ios-location-outline; } -.#{$ionicons-prefix}ios-locked:before { content: $ionicon-var-ios-locked; } -.#{$ionicons-prefix}ios-locked-outline:before { content: $ionicon-var-ios-locked-outline; } -.#{$ionicons-prefix}ios-loop:before { content: $ionicon-var-ios-loop; } -.#{$ionicons-prefix}ios-loop-strong:before { content: $ionicon-var-ios-loop-strong; } -.#{$ionicons-prefix}ios-medical:before { content: $ionicon-var-ios-medical; } -.#{$ionicons-prefix}ios-medical-outline:before { content: $ionicon-var-ios-medical-outline; } -.#{$ionicons-prefix}ios-medkit:before { content: $ionicon-var-ios-medkit; } -.#{$ionicons-prefix}ios-medkit-outline:before { content: $ionicon-var-ios-medkit-outline; } -.#{$ionicons-prefix}ios-mic:before { content: $ionicon-var-ios-mic; } -.#{$ionicons-prefix}ios-mic-off:before { content: $ionicon-var-ios-mic-off; } -.#{$ionicons-prefix}ios-mic-outline:before { content: $ionicon-var-ios-mic-outline; } -.#{$ionicons-prefix}ios-minus:before { content: $ionicon-var-ios-minus; } -.#{$ionicons-prefix}ios-minus-empty:before { content: $ionicon-var-ios-minus-empty; } -.#{$ionicons-prefix}ios-minus-outline:before { content: $ionicon-var-ios-minus-outline; } -.#{$ionicons-prefix}ios-monitor:before { content: $ionicon-var-ios-monitor; } -.#{$ionicons-prefix}ios-monitor-outline:before { content: $ionicon-var-ios-monitor-outline; } -.#{$ionicons-prefix}ios-moon:before { content: $ionicon-var-ios-moon; } -.#{$ionicons-prefix}ios-moon-outline:before { content: $ionicon-var-ios-moon-outline; } -.#{$ionicons-prefix}ios-more:before { content: $ionicon-var-ios-more; } -.#{$ionicons-prefix}ios-more-outline:before { content: $ionicon-var-ios-more-outline; } -.#{$ionicons-prefix}ios-musical-note:before { content: $ionicon-var-ios-musical-note; } -.#{$ionicons-prefix}ios-musical-notes:before { content: $ionicon-var-ios-musical-notes; } -.#{$ionicons-prefix}ios-navigate:before { content: $ionicon-var-ios-navigate; } -.#{$ionicons-prefix}ios-navigate-outline:before { content: $ionicon-var-ios-navigate-outline; } -.#{$ionicons-prefix}ios-nutrition:before { content: $ionicon-var-ios-nutrition; } -.#{$ionicons-prefix}ios-nutrition-outline:before { content: $ionicon-var-ios-nutrition-outline; } -.#{$ionicons-prefix}ios-paper:before { content: $ionicon-var-ios-paper; } -.#{$ionicons-prefix}ios-paper-outline:before { content: $ionicon-var-ios-paper-outline; } -.#{$ionicons-prefix}ios-paperplane:before { content: $ionicon-var-ios-paperplane; } -.#{$ionicons-prefix}ios-paperplane-outline:before { content: $ionicon-var-ios-paperplane-outline; } -.#{$ionicons-prefix}ios-partlysunny:before { content: $ionicon-var-ios-partlysunny; } -.#{$ionicons-prefix}ios-partlysunny-outline:before { content: $ionicon-var-ios-partlysunny-outline; } -.#{$ionicons-prefix}ios-pause:before { content: $ionicon-var-ios-pause; } -.#{$ionicons-prefix}ios-pause-outline:before { content: $ionicon-var-ios-pause-outline; } -.#{$ionicons-prefix}ios-paw:before { content: $ionicon-var-ios-paw; } -.#{$ionicons-prefix}ios-paw-outline:before { content: $ionicon-var-ios-paw-outline; } -.#{$ionicons-prefix}ios-people:before { content: $ionicon-var-ios-people; } -.#{$ionicons-prefix}ios-people-outline:before { content: $ionicon-var-ios-people-outline; } -.#{$ionicons-prefix}ios-person:before { content: $ionicon-var-ios-person; } -.#{$ionicons-prefix}ios-person-outline:before { content: $ionicon-var-ios-person-outline; } -.#{$ionicons-prefix}ios-personadd:before { content: $ionicon-var-ios-personadd; } -.#{$ionicons-prefix}ios-personadd-outline:before { content: $ionicon-var-ios-personadd-outline; } -.#{$ionicons-prefix}ios-photos:before { content: $ionicon-var-ios-photos; } -.#{$ionicons-prefix}ios-photos-outline:before { content: $ionicon-var-ios-photos-outline; } -.#{$ionicons-prefix}ios-pie:before { content: $ionicon-var-ios-pie; } -.#{$ionicons-prefix}ios-pie-outline:before { content: $ionicon-var-ios-pie-outline; } -.#{$ionicons-prefix}ios-pint:before { content: $ionicon-var-ios-pint; } -.#{$ionicons-prefix}ios-pint-outline:before { content: $ionicon-var-ios-pint-outline; } -.#{$ionicons-prefix}ios-play:before { content: $ionicon-var-ios-play; } -.#{$ionicons-prefix}ios-play-outline:before { content: $ionicon-var-ios-play-outline; } -.#{$ionicons-prefix}ios-plus:before { content: $ionicon-var-ios-plus; } -.#{$ionicons-prefix}ios-plus-empty:before { content: $ionicon-var-ios-plus-empty; } -.#{$ionicons-prefix}ios-plus-outline:before { content: $ionicon-var-ios-plus-outline; } -.#{$ionicons-prefix}ios-pricetag:before { content: $ionicon-var-ios-pricetag; } -.#{$ionicons-prefix}ios-pricetag-outline:before { content: $ionicon-var-ios-pricetag-outline; } -.#{$ionicons-prefix}ios-pricetags:before { content: $ionicon-var-ios-pricetags; } -.#{$ionicons-prefix}ios-pricetags-outline:before { content: $ionicon-var-ios-pricetags-outline; } -.#{$ionicons-prefix}ios-printer:before { content: $ionicon-var-ios-printer; } -.#{$ionicons-prefix}ios-printer-outline:before { content: $ionicon-var-ios-printer-outline; } -.#{$ionicons-prefix}ios-pulse:before { content: $ionicon-var-ios-pulse; } -.#{$ionicons-prefix}ios-pulse-strong:before { content: $ionicon-var-ios-pulse-strong; } -.#{$ionicons-prefix}ios-rainy:before { content: $ionicon-var-ios-rainy; } -.#{$ionicons-prefix}ios-rainy-outline:before { content: $ionicon-var-ios-rainy-outline; } -.#{$ionicons-prefix}ios-recording:before { content: $ionicon-var-ios-recording; } -.#{$ionicons-prefix}ios-recording-outline:before { content: $ionicon-var-ios-recording-outline; } -.#{$ionicons-prefix}ios-redo:before { content: $ionicon-var-ios-redo; } -.#{$ionicons-prefix}ios-redo-outline:before { content: $ionicon-var-ios-redo-outline; } -.#{$ionicons-prefix}ios-refresh:before { content: $ionicon-var-ios-refresh; } -.#{$ionicons-prefix}ios-refresh-empty:before { content: $ionicon-var-ios-refresh-empty; } -.#{$ionicons-prefix}ios-refresh-outline:before { content: $ionicon-var-ios-refresh-outline; } -.#{$ionicons-prefix}ios-reload:before { content: $ionicon-var-ios-reload; } -.#{$ionicons-prefix}ios-reverse-camera:before { content: $ionicon-var-ios-reverse-camera; } -.#{$ionicons-prefix}ios-reverse-camera-outline:before { content: $ionicon-var-ios-reverse-camera-outline; } -.#{$ionicons-prefix}ios-rewind:before { content: $ionicon-var-ios-rewind; } -.#{$ionicons-prefix}ios-rewind-outline:before { content: $ionicon-var-ios-rewind-outline; } -.#{$ionicons-prefix}ios-rose:before { content: $ionicon-var-ios-rose; } -.#{$ionicons-prefix}ios-rose-outline:before { content: $ionicon-var-ios-rose-outline; } -.#{$ionicons-prefix}ios-search:before { content: $ionicon-var-ios-search; } -.#{$ionicons-prefix}ios-search-strong:before { content: $ionicon-var-ios-search-strong; } -.#{$ionicons-prefix}ios-settings:before { content: $ionicon-var-ios-settings; } -.#{$ionicons-prefix}ios-settings-strong:before { content: $ionicon-var-ios-settings-strong; } -.#{$ionicons-prefix}ios-shuffle:before { content: $ionicon-var-ios-shuffle; } -.#{$ionicons-prefix}ios-shuffle-strong:before { content: $ionicon-var-ios-shuffle-strong; } -.#{$ionicons-prefix}ios-skipbackward:before { content: $ionicon-var-ios-skipbackward; } -.#{$ionicons-prefix}ios-skipbackward-outline:before { content: $ionicon-var-ios-skipbackward-outline; } -.#{$ionicons-prefix}ios-skipforward:before { content: $ionicon-var-ios-skipforward; } -.#{$ionicons-prefix}ios-skipforward-outline:before { content: $ionicon-var-ios-skipforward-outline; } -.#{$ionicons-prefix}ios-snowy:before { content: $ionicon-var-ios-snowy; } -.#{$ionicons-prefix}ios-speedometer:before { content: $ionicon-var-ios-speedometer; } -.#{$ionicons-prefix}ios-speedometer-outline:before { content: $ionicon-var-ios-speedometer-outline; } -.#{$ionicons-prefix}ios-star:before { content: $ionicon-var-ios-star; } -.#{$ionicons-prefix}ios-star-half:before { content: $ionicon-var-ios-star-half; } -.#{$ionicons-prefix}ios-star-outline:before { content: $ionicon-var-ios-star-outline; } -.#{$ionicons-prefix}ios-stopwatch:before { content: $ionicon-var-ios-stopwatch; } -.#{$ionicons-prefix}ios-stopwatch-outline:before { content: $ionicon-var-ios-stopwatch-outline; } -.#{$ionicons-prefix}ios-sunny:before { content: $ionicon-var-ios-sunny; } -.#{$ionicons-prefix}ios-sunny-outline:before { content: $ionicon-var-ios-sunny-outline; } -.#{$ionicons-prefix}ios-telephone:before { content: $ionicon-var-ios-telephone; } -.#{$ionicons-prefix}ios-telephone-outline:before { content: $ionicon-var-ios-telephone-outline; } -.#{$ionicons-prefix}ios-tennisball:before { content: $ionicon-var-ios-tennisball; } -.#{$ionicons-prefix}ios-tennisball-outline:before { content: $ionicon-var-ios-tennisball-outline; } -.#{$ionicons-prefix}ios-thunderstorm:before { content: $ionicon-var-ios-thunderstorm; } -.#{$ionicons-prefix}ios-thunderstorm-outline:before { content: $ionicon-var-ios-thunderstorm-outline; } -.#{$ionicons-prefix}ios-time:before { content: $ionicon-var-ios-time; } -.#{$ionicons-prefix}ios-time-outline:before { content: $ionicon-var-ios-time-outline; } -.#{$ionicons-prefix}ios-timer:before { content: $ionicon-var-ios-timer; } -.#{$ionicons-prefix}ios-timer-outline:before { content: $ionicon-var-ios-timer-outline; } -.#{$ionicons-prefix}ios-toggle:before { content: $ionicon-var-ios-toggle; } -.#{$ionicons-prefix}ios-toggle-outline:before { content: $ionicon-var-ios-toggle-outline; } -.#{$ionicons-prefix}ios-trash:before { content: $ionicon-var-ios-trash; } -.#{$ionicons-prefix}ios-trash-outline:before { content: $ionicon-var-ios-trash-outline; } -.#{$ionicons-prefix}ios-undo:before { content: $ionicon-var-ios-undo; } -.#{$ionicons-prefix}ios-undo-outline:before { content: $ionicon-var-ios-undo-outline; } -.#{$ionicons-prefix}ios-unlocked:before { content: $ionicon-var-ios-unlocked; } -.#{$ionicons-prefix}ios-unlocked-outline:before { content: $ionicon-var-ios-unlocked-outline; } -.#{$ionicons-prefix}ios-upload:before { content: $ionicon-var-ios-upload; } -.#{$ionicons-prefix}ios-upload-outline:before { content: $ionicon-var-ios-upload-outline; } -.#{$ionicons-prefix}ios-videocam:before { content: $ionicon-var-ios-videocam; } -.#{$ionicons-prefix}ios-videocam-outline:before { content: $ionicon-var-ios-videocam-outline; } -.#{$ionicons-prefix}ios-volume-high:before { content: $ionicon-var-ios-volume-high; } -.#{$ionicons-prefix}ios-volume-low:before { content: $ionicon-var-ios-volume-low; } -.#{$ionicons-prefix}ios-wineglass:before { content: $ionicon-var-ios-wineglass; } -.#{$ionicons-prefix}ios-wineglass-outline:before { content: $ionicon-var-ios-wineglass-outline; } -.#{$ionicons-prefix}ios-world:before { content: $ionicon-var-ios-world; } -.#{$ionicons-prefix}ios-world-outline:before { content: $ionicon-var-ios-world-outline; } -.#{$ionicons-prefix}ipad:before { content: $ionicon-var-ipad; } -.#{$ionicons-prefix}iphone:before { content: $ionicon-var-iphone; } -.#{$ionicons-prefix}ipod:before { content: $ionicon-var-ipod; } -.#{$ionicons-prefix}jet:before { content: $ionicon-var-jet; } -.#{$ionicons-prefix}key:before { content: $ionicon-var-key; } -.#{$ionicons-prefix}knife:before { content: $ionicon-var-knife; } -.#{$ionicons-prefix}laptop:before { content: $ionicon-var-laptop; } -.#{$ionicons-prefix}leaf:before { content: $ionicon-var-leaf; } -.#{$ionicons-prefix}levels:before { content: $ionicon-var-levels; } -.#{$ionicons-prefix}lightbulb:before { content: $ionicon-var-lightbulb; } -.#{$ionicons-prefix}link:before { content: $ionicon-var-link; } -.#{$ionicons-prefix}load-a:before { content: $ionicon-var-load-a; } -.#{$ionicons-prefix}load-b:before { content: $ionicon-var-load-b; } -.#{$ionicons-prefix}load-c:before { content: $ionicon-var-load-c; } -.#{$ionicons-prefix}load-d:before { content: $ionicon-var-load-d; } -.#{$ionicons-prefix}location:before { content: $ionicon-var-location; } -.#{$ionicons-prefix}lock-combination:before { content: $ionicon-var-lock-combination; } -.#{$ionicons-prefix}locked:before { content: $ionicon-var-locked; } -.#{$ionicons-prefix}log-in:before { content: $ionicon-var-log-in; } -.#{$ionicons-prefix}log-out:before { content: $ionicon-var-log-out; } -.#{$ionicons-prefix}loop:before { content: $ionicon-var-loop; } -.#{$ionicons-prefix}magnet:before { content: $ionicon-var-magnet; } -.#{$ionicons-prefix}male:before { content: $ionicon-var-male; } -.#{$ionicons-prefix}man:before { content: $ionicon-var-man; } -.#{$ionicons-prefix}map:before { content: $ionicon-var-map; } -.#{$ionicons-prefix}medkit:before { content: $ionicon-var-medkit; } -.#{$ionicons-prefix}merge:before { content: $ionicon-var-merge; } -.#{$ionicons-prefix}mic-a:before { content: $ionicon-var-mic-a; } -.#{$ionicons-prefix}mic-b:before { content: $ionicon-var-mic-b; } -.#{$ionicons-prefix}mic-c:before { content: $ionicon-var-mic-c; } -.#{$ionicons-prefix}minus:before { content: $ionicon-var-minus; } -.#{$ionicons-prefix}minus-circled:before { content: $ionicon-var-minus-circled; } -.#{$ionicons-prefix}minus-round:before { content: $ionicon-var-minus-round; } -.#{$ionicons-prefix}model-s:before { content: $ionicon-var-model-s; } -.#{$ionicons-prefix}monitor:before { content: $ionicon-var-monitor; } -.#{$ionicons-prefix}more:before { content: $ionicon-var-more; } -.#{$ionicons-prefix}mouse:before { content: $ionicon-var-mouse; } -.#{$ionicons-prefix}music-note:before { content: $ionicon-var-music-note; } -.#{$ionicons-prefix}navicon:before { content: $ionicon-var-navicon; } -.#{$ionicons-prefix}navicon-round:before { content: $ionicon-var-navicon-round; } -.#{$ionicons-prefix}navigate:before { content: $ionicon-var-navigate; } -.#{$ionicons-prefix}network:before { content: $ionicon-var-network; } -.#{$ionicons-prefix}no-smoking:before { content: $ionicon-var-no-smoking; } -.#{$ionicons-prefix}nuclear:before { content: $ionicon-var-nuclear; } -.#{$ionicons-prefix}outlet:before { content: $ionicon-var-outlet; } -.#{$ionicons-prefix}paintbrush:before { content: $ionicon-var-paintbrush; } -.#{$ionicons-prefix}paintbucket:before { content: $ionicon-var-paintbucket; } -.#{$ionicons-prefix}paper-airplane:before { content: $ionicon-var-paper-airplane; } -.#{$ionicons-prefix}paperclip:before { content: $ionicon-var-paperclip; } -.#{$ionicons-prefix}pause:before { content: $ionicon-var-pause; } -.#{$ionicons-prefix}person:before { content: $ionicon-var-person; } -.#{$ionicons-prefix}person-add:before { content: $ionicon-var-person-add; } -.#{$ionicons-prefix}person-stalker:before { content: $ionicon-var-person-stalker; } -.#{$ionicons-prefix}pie-graph:before { content: $ionicon-var-pie-graph; } -.#{$ionicons-prefix}pin:before { content: $ionicon-var-pin; } -.#{$ionicons-prefix}pinpoint:before { content: $ionicon-var-pinpoint; } -.#{$ionicons-prefix}pizza:before { content: $ionicon-var-pizza; } -.#{$ionicons-prefix}plane:before { content: $ionicon-var-plane; } -.#{$ionicons-prefix}planet:before { content: $ionicon-var-planet; } -.#{$ionicons-prefix}play:before { content: $ionicon-var-play; } -.#{$ionicons-prefix}playstation:before { content: $ionicon-var-playstation; } -.#{$ionicons-prefix}plus:before { content: $ionicon-var-plus; } -.#{$ionicons-prefix}plus-circled:before { content: $ionicon-var-plus-circled; } -.#{$ionicons-prefix}plus-round:before { content: $ionicon-var-plus-round; } -.#{$ionicons-prefix}podium:before { content: $ionicon-var-podium; } -.#{$ionicons-prefix}pound:before { content: $ionicon-var-pound; } -.#{$ionicons-prefix}power:before { content: $ionicon-var-power; } -.#{$ionicons-prefix}pricetag:before { content: $ionicon-var-pricetag; } -.#{$ionicons-prefix}pricetags:before { content: $ionicon-var-pricetags; } -.#{$ionicons-prefix}printer:before { content: $ionicon-var-printer; } -.#{$ionicons-prefix}pull-request:before { content: $ionicon-var-pull-request; } -.#{$ionicons-prefix}qr-scanner:before { content: $ionicon-var-qr-scanner; } -.#{$ionicons-prefix}quote:before { content: $ionicon-var-quote; } -.#{$ionicons-prefix}radio-waves:before { content: $ionicon-var-radio-waves; } -.#{$ionicons-prefix}record:before { content: $ionicon-var-record; } -.#{$ionicons-prefix}refresh:before { content: $ionicon-var-refresh; } -.#{$ionicons-prefix}reply:before { content: $ionicon-var-reply; } -.#{$ionicons-prefix}reply-all:before { content: $ionicon-var-reply-all; } -.#{$ionicons-prefix}ribbon-a:before { content: $ionicon-var-ribbon-a; } -.#{$ionicons-prefix}ribbon-b:before { content: $ionicon-var-ribbon-b; } -.#{$ionicons-prefix}sad:before { content: $ionicon-var-sad; } -.#{$ionicons-prefix}sad-outline:before { content: $ionicon-var-sad-outline; } -.#{$ionicons-prefix}scissors:before { content: $ionicon-var-scissors; } -.#{$ionicons-prefix}search:before { content: $ionicon-var-search; } -.#{$ionicons-prefix}settings:before { content: $ionicon-var-settings; } -.#{$ionicons-prefix}share:before { content: $ionicon-var-share; } -.#{$ionicons-prefix}shuffle:before { content: $ionicon-var-shuffle; } -.#{$ionicons-prefix}skip-backward:before { content: $ionicon-var-skip-backward; } -.#{$ionicons-prefix}skip-forward:before { content: $ionicon-var-skip-forward; } -.#{$ionicons-prefix}social-android:before { content: $ionicon-var-social-android; } -.#{$ionicons-prefix}social-android-outline:before { content: $ionicon-var-social-android-outline; } -.#{$ionicons-prefix}social-angular:before { content: $ionicon-var-social-angular; } -.#{$ionicons-prefix}social-angular-outline:before { content: $ionicon-var-social-angular-outline; } -.#{$ionicons-prefix}social-apple:before { content: $ionicon-var-social-apple; } -.#{$ionicons-prefix}social-apple-outline:before { content: $ionicon-var-social-apple-outline; } -.#{$ionicons-prefix}social-bitcoin:before { content: $ionicon-var-social-bitcoin; } -.#{$ionicons-prefix}social-bitcoin-outline:before { content: $ionicon-var-social-bitcoin-outline; } -.#{$ionicons-prefix}social-buffer:before { content: $ionicon-var-social-buffer; } -.#{$ionicons-prefix}social-buffer-outline:before { content: $ionicon-var-social-buffer-outline; } -.#{$ionicons-prefix}social-chrome:before { content: $ionicon-var-social-chrome; } -.#{$ionicons-prefix}social-chrome-outline:before { content: $ionicon-var-social-chrome-outline; } -.#{$ionicons-prefix}social-codepen:before { content: $ionicon-var-social-codepen; } -.#{$ionicons-prefix}social-codepen-outline:before { content: $ionicon-var-social-codepen-outline; } -.#{$ionicons-prefix}social-css3:before { content: $ionicon-var-social-css3; } -.#{$ionicons-prefix}social-css3-outline:before { content: $ionicon-var-social-css3-outline; } -.#{$ionicons-prefix}social-designernews:before { content: $ionicon-var-social-designernews; } -.#{$ionicons-prefix}social-designernews-outline:before { content: $ionicon-var-social-designernews-outline; } -.#{$ionicons-prefix}social-dribbble:before { content: $ionicon-var-social-dribbble; } -.#{$ionicons-prefix}social-dribbble-outline:before { content: $ionicon-var-social-dribbble-outline; } -.#{$ionicons-prefix}social-dropbox:before { content: $ionicon-var-social-dropbox; } -.#{$ionicons-prefix}social-dropbox-outline:before { content: $ionicon-var-social-dropbox-outline; } -.#{$ionicons-prefix}social-euro:before { content: $ionicon-var-social-euro; } -.#{$ionicons-prefix}social-euro-outline:before { content: $ionicon-var-social-euro-outline; } -.#{$ionicons-prefix}social-facebook:before { content: $ionicon-var-social-facebook; } -.#{$ionicons-prefix}social-facebook-outline:before { content: $ionicon-var-social-facebook-outline; } -.#{$ionicons-prefix}social-foursquare:before { content: $ionicon-var-social-foursquare; } -.#{$ionicons-prefix}social-foursquare-outline:before { content: $ionicon-var-social-foursquare-outline; } -.#{$ionicons-prefix}social-freebsd-devil:before { content: $ionicon-var-social-freebsd-devil; } -.#{$ionicons-prefix}social-github:before { content: $ionicon-var-social-github; } -.#{$ionicons-prefix}social-github-outline:before { content: $ionicon-var-social-github-outline; } -.#{$ionicons-prefix}social-google:before { content: $ionicon-var-social-google; } -.#{$ionicons-prefix}social-google-outline:before { content: $ionicon-var-social-google-outline; } -.#{$ionicons-prefix}social-googleplus:before { content: $ionicon-var-social-googleplus; } -.#{$ionicons-prefix}social-googleplus-outline:before { content: $ionicon-var-social-googleplus-outline; } -.#{$ionicons-prefix}social-hackernews:before { content: $ionicon-var-social-hackernews; } -.#{$ionicons-prefix}social-hackernews-outline:before { content: $ionicon-var-social-hackernews-outline; } -.#{$ionicons-prefix}social-html5:before { content: $ionicon-var-social-html5; } -.#{$ionicons-prefix}social-html5-outline:before { content: $ionicon-var-social-html5-outline; } -.#{$ionicons-prefix}social-instagram:before { content: $ionicon-var-social-instagram; } -.#{$ionicons-prefix}social-instagram-outline:before { content: $ionicon-var-social-instagram-outline; } -.#{$ionicons-prefix}social-javascript:before { content: $ionicon-var-social-javascript; } -.#{$ionicons-prefix}social-javascript-outline:before { content: $ionicon-var-social-javascript-outline; } -.#{$ionicons-prefix}social-linkedin:before { content: $ionicon-var-social-linkedin; } -.#{$ionicons-prefix}social-linkedin-outline:before { content: $ionicon-var-social-linkedin-outline; } -.#{$ionicons-prefix}social-markdown:before { content: $ionicon-var-social-markdown; } -.#{$ionicons-prefix}social-nodejs:before { content: $ionicon-var-social-nodejs; } -.#{$ionicons-prefix}social-octocat:before { content: $ionicon-var-social-octocat; } -.#{$ionicons-prefix}social-pinterest:before { content: $ionicon-var-social-pinterest; } -.#{$ionicons-prefix}social-pinterest-outline:before { content: $ionicon-var-social-pinterest-outline; } -.#{$ionicons-prefix}social-python:before { content: $ionicon-var-social-python; } -.#{$ionicons-prefix}social-reddit:before { content: $ionicon-var-social-reddit; } -.#{$ionicons-prefix}social-reddit-outline:before { content: $ionicon-var-social-reddit-outline; } -.#{$ionicons-prefix}social-rss:before { content: $ionicon-var-social-rss; } -.#{$ionicons-prefix}social-rss-outline:before { content: $ionicon-var-social-rss-outline; } -.#{$ionicons-prefix}social-sass:before { content: $ionicon-var-social-sass; } -.#{$ionicons-prefix}social-skype:before { content: $ionicon-var-social-skype; } -.#{$ionicons-prefix}social-skype-outline:before { content: $ionicon-var-social-skype-outline; } -.#{$ionicons-prefix}social-snapchat:before { content: $ionicon-var-social-snapchat; } -.#{$ionicons-prefix}social-snapchat-outline:before { content: $ionicon-var-social-snapchat-outline; } -.#{$ionicons-prefix}social-tumblr:before { content: $ionicon-var-social-tumblr; } -.#{$ionicons-prefix}social-tumblr-outline:before { content: $ionicon-var-social-tumblr-outline; } -.#{$ionicons-prefix}social-tux:before { content: $ionicon-var-social-tux; } -.#{$ionicons-prefix}social-twitch:before { content: $ionicon-var-social-twitch; } -.#{$ionicons-prefix}social-twitch-outline:before { content: $ionicon-var-social-twitch-outline; } -.#{$ionicons-prefix}social-twitter:before { content: $ionicon-var-social-twitter; } -.#{$ionicons-prefix}social-twitter-outline:before { content: $ionicon-var-social-twitter-outline; } -.#{$ionicons-prefix}social-usd:before { content: $ionicon-var-social-usd; } -.#{$ionicons-prefix}social-usd-outline:before { content: $ionicon-var-social-usd-outline; } -.#{$ionicons-prefix}social-vimeo:before { content: $ionicon-var-social-vimeo; } -.#{$ionicons-prefix}social-vimeo-outline:before { content: $ionicon-var-social-vimeo-outline; } -.#{$ionicons-prefix}social-whatsapp:before { content: $ionicon-var-social-whatsapp; } -.#{$ionicons-prefix}social-whatsapp-outline:before { content: $ionicon-var-social-whatsapp-outline; } -.#{$ionicons-prefix}social-windows:before { content: $ionicon-var-social-windows; } -.#{$ionicons-prefix}social-windows-outline:before { content: $ionicon-var-social-windows-outline; } -.#{$ionicons-prefix}social-wordpress:before { content: $ionicon-var-social-wordpress; } -.#{$ionicons-prefix}social-wordpress-outline:before { content: $ionicon-var-social-wordpress-outline; } -.#{$ionicons-prefix}social-yahoo:before { content: $ionicon-var-social-yahoo; } -.#{$ionicons-prefix}social-yahoo-outline:before { content: $ionicon-var-social-yahoo-outline; } -.#{$ionicons-prefix}social-yen:before { content: $ionicon-var-social-yen; } -.#{$ionicons-prefix}social-yen-outline:before { content: $ionicon-var-social-yen-outline; } -.#{$ionicons-prefix}social-youtube:before { content: $ionicon-var-social-youtube; } -.#{$ionicons-prefix}social-youtube-outline:before { content: $ionicon-var-social-youtube-outline; } -.#{$ionicons-prefix}soup-can:before { content: $ionicon-var-soup-can; } -.#{$ionicons-prefix}soup-can-outline:before { content: $ionicon-var-soup-can-outline; } -.#{$ionicons-prefix}speakerphone:before { content: $ionicon-var-speakerphone; } -.#{$ionicons-prefix}speedometer:before { content: $ionicon-var-speedometer; } -.#{$ionicons-prefix}spoon:before { content: $ionicon-var-spoon; } -.#{$ionicons-prefix}star:before { content: $ionicon-var-star; } -.#{$ionicons-prefix}stats-bars:before { content: $ionicon-var-stats-bars; } -.#{$ionicons-prefix}steam:before { content: $ionicon-var-steam; } -.#{$ionicons-prefix}stop:before { content: $ionicon-var-stop; } -.#{$ionicons-prefix}thermometer:before { content: $ionicon-var-thermometer; } -.#{$ionicons-prefix}thumbsdown:before { content: $ionicon-var-thumbsdown; } -.#{$ionicons-prefix}thumbsup:before { content: $ionicon-var-thumbsup; } -.#{$ionicons-prefix}toggle:before { content: $ionicon-var-toggle; } -.#{$ionicons-prefix}toggle-filled:before { content: $ionicon-var-toggle-filled; } -.#{$ionicons-prefix}transgender:before { content: $ionicon-var-transgender; } -.#{$ionicons-prefix}trash-a:before { content: $ionicon-var-trash-a; } -.#{$ionicons-prefix}trash-b:before { content: $ionicon-var-trash-b; } -.#{$ionicons-prefix}trophy:before { content: $ionicon-var-trophy; } -.#{$ionicons-prefix}tshirt:before { content: $ionicon-var-tshirt; } -.#{$ionicons-prefix}tshirt-outline:before { content: $ionicon-var-tshirt-outline; } -.#{$ionicons-prefix}umbrella:before { content: $ionicon-var-umbrella; } -.#{$ionicons-prefix}university:before { content: $ionicon-var-university; } -.#{$ionicons-prefix}unlocked:before { content: $ionicon-var-unlocked; } -.#{$ionicons-prefix}upload:before { content: $ionicon-var-upload; } -.#{$ionicons-prefix}usb:before { content: $ionicon-var-usb; } -.#{$ionicons-prefix}videocamera:before { content: $ionicon-var-videocamera; } -.#{$ionicons-prefix}volume-high:before { content: $ionicon-var-volume-high; } -.#{$ionicons-prefix}volume-low:before { content: $ionicon-var-volume-low; } -.#{$ionicons-prefix}volume-medium:before { content: $ionicon-var-volume-medium; } -.#{$ionicons-prefix}volume-mute:before { content: $ionicon-var-volume-mute; } -.#{$ionicons-prefix}wand:before { content: $ionicon-var-wand; } -.#{$ionicons-prefix}waterdrop:before { content: $ionicon-var-waterdrop; } -.#{$ionicons-prefix}wifi:before { content: $ionicon-var-wifi; } -.#{$ionicons-prefix}wineglass:before { content: $ionicon-var-wineglass; } -.#{$ionicons-prefix}woman:before { content: $ionicon-var-woman; } -.#{$ionicons-prefix}wrench:before { content: $ionicon-var-wrench; } -.#{$ionicons-prefix}xbox:before { content: $ionicon-var-xbox; } \ No newline at end of file diff --git a/admin/bower_components/Ionicons/scss/_ionicons-variables.scss b/admin/bower_components/Ionicons/scss/_ionicons-variables.scss deleted file mode 100644 index a4601a9..0000000 --- a/admin/bower_components/Ionicons/scss/_ionicons-variables.scss +++ /dev/null @@ -1,741 +0,0 @@ -// Ionicons Variables -// -------------------------- - -$ionicons-font-path: "../fonts" !default; -$ionicons-font-family: "Ionicons" !default; -$ionicons-version: "2.0.0" !default; -$ionicons-prefix: ion- !default; - -$ionicon-var-alert: "\f101"; -$ionicon-var-alert-circled: "\f100"; -$ionicon-var-android-add: "\f2c7"; -$ionicon-var-android-add-circle: "\f359"; -$ionicon-var-android-alarm-clock: "\f35a"; -$ionicon-var-android-alert: "\f35b"; -$ionicon-var-android-apps: "\f35c"; -$ionicon-var-android-archive: "\f2c9"; -$ionicon-var-android-arrow-back: "\f2ca"; -$ionicon-var-android-arrow-down: "\f35d"; -$ionicon-var-android-arrow-dropdown: "\f35f"; -$ionicon-var-android-arrow-dropdown-circle: "\f35e"; -$ionicon-var-android-arrow-dropleft: "\f361"; -$ionicon-var-android-arrow-dropleft-circle: "\f360"; -$ionicon-var-android-arrow-dropright: "\f363"; -$ionicon-var-android-arrow-dropright-circle: "\f362"; -$ionicon-var-android-arrow-dropup: "\f365"; -$ionicon-var-android-arrow-dropup-circle: "\f364"; -$ionicon-var-android-arrow-forward: "\f30f"; -$ionicon-var-android-arrow-up: "\f366"; -$ionicon-var-android-attach: "\f367"; -$ionicon-var-android-bar: "\f368"; -$ionicon-var-android-bicycle: "\f369"; -$ionicon-var-android-boat: "\f36a"; -$ionicon-var-android-bookmark: "\f36b"; -$ionicon-var-android-bulb: "\f36c"; -$ionicon-var-android-bus: "\f36d"; -$ionicon-var-android-calendar: "\f2d1"; -$ionicon-var-android-call: "\f2d2"; -$ionicon-var-android-camera: "\f2d3"; -$ionicon-var-android-cancel: "\f36e"; -$ionicon-var-android-car: "\f36f"; -$ionicon-var-android-cart: "\f370"; -$ionicon-var-android-chat: "\f2d4"; -$ionicon-var-android-checkbox: "\f374"; -$ionicon-var-android-checkbox-blank: "\f371"; -$ionicon-var-android-checkbox-outline: "\f373"; -$ionicon-var-android-checkbox-outline-blank: "\f372"; -$ionicon-var-android-checkmark-circle: "\f375"; -$ionicon-var-android-clipboard: "\f376"; -$ionicon-var-android-close: "\f2d7"; -$ionicon-var-android-cloud: "\f37a"; -$ionicon-var-android-cloud-circle: "\f377"; -$ionicon-var-android-cloud-done: "\f378"; -$ionicon-var-android-cloud-outline: "\f379"; -$ionicon-var-android-color-palette: "\f37b"; -$ionicon-var-android-compass: "\f37c"; -$ionicon-var-android-contact: "\f2d8"; -$ionicon-var-android-contacts: "\f2d9"; -$ionicon-var-android-contract: "\f37d"; -$ionicon-var-android-create: "\f37e"; -$ionicon-var-android-delete: "\f37f"; -$ionicon-var-android-desktop: "\f380"; -$ionicon-var-android-document: "\f381"; -$ionicon-var-android-done: "\f383"; -$ionicon-var-android-done-all: "\f382"; -$ionicon-var-android-download: "\f2dd"; -$ionicon-var-android-drafts: "\f384"; -$ionicon-var-android-exit: "\f385"; -$ionicon-var-android-expand: "\f386"; -$ionicon-var-android-favorite: "\f388"; -$ionicon-var-android-favorite-outline: "\f387"; -$ionicon-var-android-film: "\f389"; -$ionicon-var-android-folder: "\f2e0"; -$ionicon-var-android-folder-open: "\f38a"; -$ionicon-var-android-funnel: "\f38b"; -$ionicon-var-android-globe: "\f38c"; -$ionicon-var-android-hand: "\f2e3"; -$ionicon-var-android-hangout: "\f38d"; -$ionicon-var-android-happy: "\f38e"; -$ionicon-var-android-home: "\f38f"; -$ionicon-var-android-image: "\f2e4"; -$ionicon-var-android-laptop: "\f390"; -$ionicon-var-android-list: "\f391"; -$ionicon-var-android-locate: "\f2e9"; -$ionicon-var-android-lock: "\f392"; -$ionicon-var-android-mail: "\f2eb"; -$ionicon-var-android-map: "\f393"; -$ionicon-var-android-menu: "\f394"; -$ionicon-var-android-microphone: "\f2ec"; -$ionicon-var-android-microphone-off: "\f395"; -$ionicon-var-android-more-horizontal: "\f396"; -$ionicon-var-android-more-vertical: "\f397"; -$ionicon-var-android-navigate: "\f398"; -$ionicon-var-android-notifications: "\f39b"; -$ionicon-var-android-notifications-none: "\f399"; -$ionicon-var-android-notifications-off: "\f39a"; -$ionicon-var-android-open: "\f39c"; -$ionicon-var-android-options: "\f39d"; -$ionicon-var-android-people: "\f39e"; -$ionicon-var-android-person: "\f3a0"; -$ionicon-var-android-person-add: "\f39f"; -$ionicon-var-android-phone-landscape: "\f3a1"; -$ionicon-var-android-phone-portrait: "\f3a2"; -$ionicon-var-android-pin: "\f3a3"; -$ionicon-var-android-plane: "\f3a4"; -$ionicon-var-android-playstore: "\f2f0"; -$ionicon-var-android-print: "\f3a5"; -$ionicon-var-android-radio-button-off: "\f3a6"; -$ionicon-var-android-radio-button-on: "\f3a7"; -$ionicon-var-android-refresh: "\f3a8"; -$ionicon-var-android-remove: "\f2f4"; -$ionicon-var-android-remove-circle: "\f3a9"; -$ionicon-var-android-restaurant: "\f3aa"; -$ionicon-var-android-sad: "\f3ab"; -$ionicon-var-android-search: "\f2f5"; -$ionicon-var-android-send: "\f2f6"; -$ionicon-var-android-settings: "\f2f7"; -$ionicon-var-android-share: "\f2f8"; -$ionicon-var-android-share-alt: "\f3ac"; -$ionicon-var-android-star: "\f2fc"; -$ionicon-var-android-star-half: "\f3ad"; -$ionicon-var-android-star-outline: "\f3ae"; -$ionicon-var-android-stopwatch: "\f2fd"; -$ionicon-var-android-subway: "\f3af"; -$ionicon-var-android-sunny: "\f3b0"; -$ionicon-var-android-sync: "\f3b1"; -$ionicon-var-android-textsms: "\f3b2"; -$ionicon-var-android-time: "\f3b3"; -$ionicon-var-android-train: "\f3b4"; -$ionicon-var-android-unlock: "\f3b5"; -$ionicon-var-android-upload: "\f3b6"; -$ionicon-var-android-volume-down: "\f3b7"; -$ionicon-var-android-volume-mute: "\f3b8"; -$ionicon-var-android-volume-off: "\f3b9"; -$ionicon-var-android-volume-up: "\f3ba"; -$ionicon-var-android-walk: "\f3bb"; -$ionicon-var-android-warning: "\f3bc"; -$ionicon-var-android-watch: "\f3bd"; -$ionicon-var-android-wifi: "\f305"; -$ionicon-var-aperture: "\f313"; -$ionicon-var-archive: "\f102"; -$ionicon-var-arrow-down-a: "\f103"; -$ionicon-var-arrow-down-b: "\f104"; -$ionicon-var-arrow-down-c: "\f105"; -$ionicon-var-arrow-expand: "\f25e"; -$ionicon-var-arrow-graph-down-left: "\f25f"; -$ionicon-var-arrow-graph-down-right: "\f260"; -$ionicon-var-arrow-graph-up-left: "\f261"; -$ionicon-var-arrow-graph-up-right: "\f262"; -$ionicon-var-arrow-left-a: "\f106"; -$ionicon-var-arrow-left-b: "\f107"; -$ionicon-var-arrow-left-c: "\f108"; -$ionicon-var-arrow-move: "\f263"; -$ionicon-var-arrow-resize: "\f264"; -$ionicon-var-arrow-return-left: "\f265"; -$ionicon-var-arrow-return-right: "\f266"; -$ionicon-var-arrow-right-a: "\f109"; -$ionicon-var-arrow-right-b: "\f10a"; -$ionicon-var-arrow-right-c: "\f10b"; -$ionicon-var-arrow-shrink: "\f267"; -$ionicon-var-arrow-swap: "\f268"; -$ionicon-var-arrow-up-a: "\f10c"; -$ionicon-var-arrow-up-b: "\f10d"; -$ionicon-var-arrow-up-c: "\f10e"; -$ionicon-var-asterisk: "\f314"; -$ionicon-var-at: "\f10f"; -$ionicon-var-backspace: "\f3bf"; -$ionicon-var-backspace-outline: "\f3be"; -$ionicon-var-bag: "\f110"; -$ionicon-var-battery-charging: "\f111"; -$ionicon-var-battery-empty: "\f112"; -$ionicon-var-battery-full: "\f113"; -$ionicon-var-battery-half: "\f114"; -$ionicon-var-battery-low: "\f115"; -$ionicon-var-beaker: "\f269"; -$ionicon-var-beer: "\f26a"; -$ionicon-var-bluetooth: "\f116"; -$ionicon-var-bonfire: "\f315"; -$ionicon-var-bookmark: "\f26b"; -$ionicon-var-bowtie: "\f3c0"; -$ionicon-var-briefcase: "\f26c"; -$ionicon-var-bug: "\f2be"; -$ionicon-var-calculator: "\f26d"; -$ionicon-var-calendar: "\f117"; -$ionicon-var-camera: "\f118"; -$ionicon-var-card: "\f119"; -$ionicon-var-cash: "\f316"; -$ionicon-var-chatbox: "\f11b"; -$ionicon-var-chatbox-working: "\f11a"; -$ionicon-var-chatboxes: "\f11c"; -$ionicon-var-chatbubble: "\f11e"; -$ionicon-var-chatbubble-working: "\f11d"; -$ionicon-var-chatbubbles: "\f11f"; -$ionicon-var-checkmark: "\f122"; -$ionicon-var-checkmark-circled: "\f120"; -$ionicon-var-checkmark-round: "\f121"; -$ionicon-var-chevron-down: "\f123"; -$ionicon-var-chevron-left: "\f124"; -$ionicon-var-chevron-right: "\f125"; -$ionicon-var-chevron-up: "\f126"; -$ionicon-var-clipboard: "\f127"; -$ionicon-var-clock: "\f26e"; -$ionicon-var-close: "\f12a"; -$ionicon-var-close-circled: "\f128"; -$ionicon-var-close-round: "\f129"; -$ionicon-var-closed-captioning: "\f317"; -$ionicon-var-cloud: "\f12b"; -$ionicon-var-code: "\f271"; -$ionicon-var-code-download: "\f26f"; -$ionicon-var-code-working: "\f270"; -$ionicon-var-coffee: "\f272"; -$ionicon-var-compass: "\f273"; -$ionicon-var-compose: "\f12c"; -$ionicon-var-connection-bars: "\f274"; -$ionicon-var-contrast: "\f275"; -$ionicon-var-crop: "\f3c1"; -$ionicon-var-cube: "\f318"; -$ionicon-var-disc: "\f12d"; -$ionicon-var-document: "\f12f"; -$ionicon-var-document-text: "\f12e"; -$ionicon-var-drag: "\f130"; -$ionicon-var-earth: "\f276"; -$ionicon-var-easel: "\f3c2"; -$ionicon-var-edit: "\f2bf"; -$ionicon-var-egg: "\f277"; -$ionicon-var-eject: "\f131"; -$ionicon-var-email: "\f132"; -$ionicon-var-email-unread: "\f3c3"; -$ionicon-var-erlenmeyer-flask: "\f3c5"; -$ionicon-var-erlenmeyer-flask-bubbles: "\f3c4"; -$ionicon-var-eye: "\f133"; -$ionicon-var-eye-disabled: "\f306"; -$ionicon-var-female: "\f278"; -$ionicon-var-filing: "\f134"; -$ionicon-var-film-marker: "\f135"; -$ionicon-var-fireball: "\f319"; -$ionicon-var-flag: "\f279"; -$ionicon-var-flame: "\f31a"; -$ionicon-var-flash: "\f137"; -$ionicon-var-flash-off: "\f136"; -$ionicon-var-folder: "\f139"; -$ionicon-var-fork: "\f27a"; -$ionicon-var-fork-repo: "\f2c0"; -$ionicon-var-forward: "\f13a"; -$ionicon-var-funnel: "\f31b"; -$ionicon-var-gear-a: "\f13d"; -$ionicon-var-gear-b: "\f13e"; -$ionicon-var-grid: "\f13f"; -$ionicon-var-hammer: "\f27b"; -$ionicon-var-happy: "\f31c"; -$ionicon-var-happy-outline: "\f3c6"; -$ionicon-var-headphone: "\f140"; -$ionicon-var-heart: "\f141"; -$ionicon-var-heart-broken: "\f31d"; -$ionicon-var-help: "\f143"; -$ionicon-var-help-buoy: "\f27c"; -$ionicon-var-help-circled: "\f142"; -$ionicon-var-home: "\f144"; -$ionicon-var-icecream: "\f27d"; -$ionicon-var-image: "\f147"; -$ionicon-var-images: "\f148"; -$ionicon-var-information: "\f14a"; -$ionicon-var-information-circled: "\f149"; -$ionicon-var-ionic: "\f14b"; -$ionicon-var-ios-alarm: "\f3c8"; -$ionicon-var-ios-alarm-outline: "\f3c7"; -$ionicon-var-ios-albums: "\f3ca"; -$ionicon-var-ios-albums-outline: "\f3c9"; -$ionicon-var-ios-americanfootball: "\f3cc"; -$ionicon-var-ios-americanfootball-outline: "\f3cb"; -$ionicon-var-ios-analytics: "\f3ce"; -$ionicon-var-ios-analytics-outline: "\f3cd"; -$ionicon-var-ios-arrow-back: "\f3cf"; -$ionicon-var-ios-arrow-down: "\f3d0"; -$ionicon-var-ios-arrow-forward: "\f3d1"; -$ionicon-var-ios-arrow-left: "\f3d2"; -$ionicon-var-ios-arrow-right: "\f3d3"; -$ionicon-var-ios-arrow-thin-down: "\f3d4"; -$ionicon-var-ios-arrow-thin-left: "\f3d5"; -$ionicon-var-ios-arrow-thin-right: "\f3d6"; -$ionicon-var-ios-arrow-thin-up: "\f3d7"; -$ionicon-var-ios-arrow-up: "\f3d8"; -$ionicon-var-ios-at: "\f3da"; -$ionicon-var-ios-at-outline: "\f3d9"; -$ionicon-var-ios-barcode: "\f3dc"; -$ionicon-var-ios-barcode-outline: "\f3db"; -$ionicon-var-ios-baseball: "\f3de"; -$ionicon-var-ios-baseball-outline: "\f3dd"; -$ionicon-var-ios-basketball: "\f3e0"; -$ionicon-var-ios-basketball-outline: "\f3df"; -$ionicon-var-ios-bell: "\f3e2"; -$ionicon-var-ios-bell-outline: "\f3e1"; -$ionicon-var-ios-body: "\f3e4"; -$ionicon-var-ios-body-outline: "\f3e3"; -$ionicon-var-ios-bolt: "\f3e6"; -$ionicon-var-ios-bolt-outline: "\f3e5"; -$ionicon-var-ios-book: "\f3e8"; -$ionicon-var-ios-book-outline: "\f3e7"; -$ionicon-var-ios-bookmarks: "\f3ea"; -$ionicon-var-ios-bookmarks-outline: "\f3e9"; -$ionicon-var-ios-box: "\f3ec"; -$ionicon-var-ios-box-outline: "\f3eb"; -$ionicon-var-ios-briefcase: "\f3ee"; -$ionicon-var-ios-briefcase-outline: "\f3ed"; -$ionicon-var-ios-browsers: "\f3f0"; -$ionicon-var-ios-browsers-outline: "\f3ef"; -$ionicon-var-ios-calculator: "\f3f2"; -$ionicon-var-ios-calculator-outline: "\f3f1"; -$ionicon-var-ios-calendar: "\f3f4"; -$ionicon-var-ios-calendar-outline: "\f3f3"; -$ionicon-var-ios-camera: "\f3f6"; -$ionicon-var-ios-camera-outline: "\f3f5"; -$ionicon-var-ios-cart: "\f3f8"; -$ionicon-var-ios-cart-outline: "\f3f7"; -$ionicon-var-ios-chatboxes: "\f3fa"; -$ionicon-var-ios-chatboxes-outline: "\f3f9"; -$ionicon-var-ios-chatbubble: "\f3fc"; -$ionicon-var-ios-chatbubble-outline: "\f3fb"; -$ionicon-var-ios-checkmark: "\f3ff"; -$ionicon-var-ios-checkmark-empty: "\f3fd"; -$ionicon-var-ios-checkmark-outline: "\f3fe"; -$ionicon-var-ios-circle-filled: "\f400"; -$ionicon-var-ios-circle-outline: "\f401"; -$ionicon-var-ios-clock: "\f403"; -$ionicon-var-ios-clock-outline: "\f402"; -$ionicon-var-ios-close: "\f406"; -$ionicon-var-ios-close-empty: "\f404"; -$ionicon-var-ios-close-outline: "\f405"; -$ionicon-var-ios-cloud: "\f40c"; -$ionicon-var-ios-cloud-download: "\f408"; -$ionicon-var-ios-cloud-download-outline: "\f407"; -$ionicon-var-ios-cloud-outline: "\f409"; -$ionicon-var-ios-cloud-upload: "\f40b"; -$ionicon-var-ios-cloud-upload-outline: "\f40a"; -$ionicon-var-ios-cloudy: "\f410"; -$ionicon-var-ios-cloudy-night: "\f40e"; -$ionicon-var-ios-cloudy-night-outline: "\f40d"; -$ionicon-var-ios-cloudy-outline: "\f40f"; -$ionicon-var-ios-cog: "\f412"; -$ionicon-var-ios-cog-outline: "\f411"; -$ionicon-var-ios-color-filter: "\f414"; -$ionicon-var-ios-color-filter-outline: "\f413"; -$ionicon-var-ios-color-wand: "\f416"; -$ionicon-var-ios-color-wand-outline: "\f415"; -$ionicon-var-ios-compose: "\f418"; -$ionicon-var-ios-compose-outline: "\f417"; -$ionicon-var-ios-contact: "\f41a"; -$ionicon-var-ios-contact-outline: "\f419"; -$ionicon-var-ios-copy: "\f41c"; -$ionicon-var-ios-copy-outline: "\f41b"; -$ionicon-var-ios-crop: "\f41e"; -$ionicon-var-ios-crop-strong: "\f41d"; -$ionicon-var-ios-download: "\f420"; -$ionicon-var-ios-download-outline: "\f41f"; -$ionicon-var-ios-drag: "\f421"; -$ionicon-var-ios-email: "\f423"; -$ionicon-var-ios-email-outline: "\f422"; -$ionicon-var-ios-eye: "\f425"; -$ionicon-var-ios-eye-outline: "\f424"; -$ionicon-var-ios-fastforward: "\f427"; -$ionicon-var-ios-fastforward-outline: "\f426"; -$ionicon-var-ios-filing: "\f429"; -$ionicon-var-ios-filing-outline: "\f428"; -$ionicon-var-ios-film: "\f42b"; -$ionicon-var-ios-film-outline: "\f42a"; -$ionicon-var-ios-flag: "\f42d"; -$ionicon-var-ios-flag-outline: "\f42c"; -$ionicon-var-ios-flame: "\f42f"; -$ionicon-var-ios-flame-outline: "\f42e"; -$ionicon-var-ios-flask: "\f431"; -$ionicon-var-ios-flask-outline: "\f430"; -$ionicon-var-ios-flower: "\f433"; -$ionicon-var-ios-flower-outline: "\f432"; -$ionicon-var-ios-folder: "\f435"; -$ionicon-var-ios-folder-outline: "\f434"; -$ionicon-var-ios-football: "\f437"; -$ionicon-var-ios-football-outline: "\f436"; -$ionicon-var-ios-game-controller-a: "\f439"; -$ionicon-var-ios-game-controller-a-outline: "\f438"; -$ionicon-var-ios-game-controller-b: "\f43b"; -$ionicon-var-ios-game-controller-b-outline: "\f43a"; -$ionicon-var-ios-gear: "\f43d"; -$ionicon-var-ios-gear-outline: "\f43c"; -$ionicon-var-ios-glasses: "\f43f"; -$ionicon-var-ios-glasses-outline: "\f43e"; -$ionicon-var-ios-grid-view: "\f441"; -$ionicon-var-ios-grid-view-outline: "\f440"; -$ionicon-var-ios-heart: "\f443"; -$ionicon-var-ios-heart-outline: "\f442"; -$ionicon-var-ios-help: "\f446"; -$ionicon-var-ios-help-empty: "\f444"; -$ionicon-var-ios-help-outline: "\f445"; -$ionicon-var-ios-home: "\f448"; -$ionicon-var-ios-home-outline: "\f447"; -$ionicon-var-ios-infinite: "\f44a"; -$ionicon-var-ios-infinite-outline: "\f449"; -$ionicon-var-ios-information: "\f44d"; -$ionicon-var-ios-information-empty: "\f44b"; -$ionicon-var-ios-information-outline: "\f44c"; -$ionicon-var-ios-ionic-outline: "\f44e"; -$ionicon-var-ios-keypad: "\f450"; -$ionicon-var-ios-keypad-outline: "\f44f"; -$ionicon-var-ios-lightbulb: "\f452"; -$ionicon-var-ios-lightbulb-outline: "\f451"; -$ionicon-var-ios-list: "\f454"; -$ionicon-var-ios-list-outline: "\f453"; -$ionicon-var-ios-location: "\f456"; -$ionicon-var-ios-location-outline: "\f455"; -$ionicon-var-ios-locked: "\f458"; -$ionicon-var-ios-locked-outline: "\f457"; -$ionicon-var-ios-loop: "\f45a"; -$ionicon-var-ios-loop-strong: "\f459"; -$ionicon-var-ios-medical: "\f45c"; -$ionicon-var-ios-medical-outline: "\f45b"; -$ionicon-var-ios-medkit: "\f45e"; -$ionicon-var-ios-medkit-outline: "\f45d"; -$ionicon-var-ios-mic: "\f461"; -$ionicon-var-ios-mic-off: "\f45f"; -$ionicon-var-ios-mic-outline: "\f460"; -$ionicon-var-ios-minus: "\f464"; -$ionicon-var-ios-minus-empty: "\f462"; -$ionicon-var-ios-minus-outline: "\f463"; -$ionicon-var-ios-monitor: "\f466"; -$ionicon-var-ios-monitor-outline: "\f465"; -$ionicon-var-ios-moon: "\f468"; -$ionicon-var-ios-moon-outline: "\f467"; -$ionicon-var-ios-more: "\f46a"; -$ionicon-var-ios-more-outline: "\f469"; -$ionicon-var-ios-musical-note: "\f46b"; -$ionicon-var-ios-musical-notes: "\f46c"; -$ionicon-var-ios-navigate: "\f46e"; -$ionicon-var-ios-navigate-outline: "\f46d"; -$ionicon-var-ios-nutrition: "\f470"; -$ionicon-var-ios-nutrition-outline: "\f46f"; -$ionicon-var-ios-paper: "\f472"; -$ionicon-var-ios-paper-outline: "\f471"; -$ionicon-var-ios-paperplane: "\f474"; -$ionicon-var-ios-paperplane-outline: "\f473"; -$ionicon-var-ios-partlysunny: "\f476"; -$ionicon-var-ios-partlysunny-outline: "\f475"; -$ionicon-var-ios-pause: "\f478"; -$ionicon-var-ios-pause-outline: "\f477"; -$ionicon-var-ios-paw: "\f47a"; -$ionicon-var-ios-paw-outline: "\f479"; -$ionicon-var-ios-people: "\f47c"; -$ionicon-var-ios-people-outline: "\f47b"; -$ionicon-var-ios-person: "\f47e"; -$ionicon-var-ios-person-outline: "\f47d"; -$ionicon-var-ios-personadd: "\f480"; -$ionicon-var-ios-personadd-outline: "\f47f"; -$ionicon-var-ios-photos: "\f482"; -$ionicon-var-ios-photos-outline: "\f481"; -$ionicon-var-ios-pie: "\f484"; -$ionicon-var-ios-pie-outline: "\f483"; -$ionicon-var-ios-pint: "\f486"; -$ionicon-var-ios-pint-outline: "\f485"; -$ionicon-var-ios-play: "\f488"; -$ionicon-var-ios-play-outline: "\f487"; -$ionicon-var-ios-plus: "\f48b"; -$ionicon-var-ios-plus-empty: "\f489"; -$ionicon-var-ios-plus-outline: "\f48a"; -$ionicon-var-ios-pricetag: "\f48d"; -$ionicon-var-ios-pricetag-outline: "\f48c"; -$ionicon-var-ios-pricetags: "\f48f"; -$ionicon-var-ios-pricetags-outline: "\f48e"; -$ionicon-var-ios-printer: "\f491"; -$ionicon-var-ios-printer-outline: "\f490"; -$ionicon-var-ios-pulse: "\f493"; -$ionicon-var-ios-pulse-strong: "\f492"; -$ionicon-var-ios-rainy: "\f495"; -$ionicon-var-ios-rainy-outline: "\f494"; -$ionicon-var-ios-recording: "\f497"; -$ionicon-var-ios-recording-outline: "\f496"; -$ionicon-var-ios-redo: "\f499"; -$ionicon-var-ios-redo-outline: "\f498"; -$ionicon-var-ios-refresh: "\f49c"; -$ionicon-var-ios-refresh-empty: "\f49a"; -$ionicon-var-ios-refresh-outline: "\f49b"; -$ionicon-var-ios-reload: "\f49d"; -$ionicon-var-ios-reverse-camera: "\f49f"; -$ionicon-var-ios-reverse-camera-outline: "\f49e"; -$ionicon-var-ios-rewind: "\f4a1"; -$ionicon-var-ios-rewind-outline: "\f4a0"; -$ionicon-var-ios-rose: "\f4a3"; -$ionicon-var-ios-rose-outline: "\f4a2"; -$ionicon-var-ios-search: "\f4a5"; -$ionicon-var-ios-search-strong: "\f4a4"; -$ionicon-var-ios-settings: "\f4a7"; -$ionicon-var-ios-settings-strong: "\f4a6"; -$ionicon-var-ios-shuffle: "\f4a9"; -$ionicon-var-ios-shuffle-strong: "\f4a8"; -$ionicon-var-ios-skipbackward: "\f4ab"; -$ionicon-var-ios-skipbackward-outline: "\f4aa"; -$ionicon-var-ios-skipforward: "\f4ad"; -$ionicon-var-ios-skipforward-outline: "\f4ac"; -$ionicon-var-ios-snowy: "\f4ae"; -$ionicon-var-ios-speedometer: "\f4b0"; -$ionicon-var-ios-speedometer-outline: "\f4af"; -$ionicon-var-ios-star: "\f4b3"; -$ionicon-var-ios-star-half: "\f4b1"; -$ionicon-var-ios-star-outline: "\f4b2"; -$ionicon-var-ios-stopwatch: "\f4b5"; -$ionicon-var-ios-stopwatch-outline: "\f4b4"; -$ionicon-var-ios-sunny: "\f4b7"; -$ionicon-var-ios-sunny-outline: "\f4b6"; -$ionicon-var-ios-telephone: "\f4b9"; -$ionicon-var-ios-telephone-outline: "\f4b8"; -$ionicon-var-ios-tennisball: "\f4bb"; -$ionicon-var-ios-tennisball-outline: "\f4ba"; -$ionicon-var-ios-thunderstorm: "\f4bd"; -$ionicon-var-ios-thunderstorm-outline: "\f4bc"; -$ionicon-var-ios-time: "\f4bf"; -$ionicon-var-ios-time-outline: "\f4be"; -$ionicon-var-ios-timer: "\f4c1"; -$ionicon-var-ios-timer-outline: "\f4c0"; -$ionicon-var-ios-toggle: "\f4c3"; -$ionicon-var-ios-toggle-outline: "\f4c2"; -$ionicon-var-ios-trash: "\f4c5"; -$ionicon-var-ios-trash-outline: "\f4c4"; -$ionicon-var-ios-undo: "\f4c7"; -$ionicon-var-ios-undo-outline: "\f4c6"; -$ionicon-var-ios-unlocked: "\f4c9"; -$ionicon-var-ios-unlocked-outline: "\f4c8"; -$ionicon-var-ios-upload: "\f4cb"; -$ionicon-var-ios-upload-outline: "\f4ca"; -$ionicon-var-ios-videocam: "\f4cd"; -$ionicon-var-ios-videocam-outline: "\f4cc"; -$ionicon-var-ios-volume-high: "\f4ce"; -$ionicon-var-ios-volume-low: "\f4cf"; -$ionicon-var-ios-wineglass: "\f4d1"; -$ionicon-var-ios-wineglass-outline: "\f4d0"; -$ionicon-var-ios-world: "\f4d3"; -$ionicon-var-ios-world-outline: "\f4d2"; -$ionicon-var-ipad: "\f1f9"; -$ionicon-var-iphone: "\f1fa"; -$ionicon-var-ipod: "\f1fb"; -$ionicon-var-jet: "\f295"; -$ionicon-var-key: "\f296"; -$ionicon-var-knife: "\f297"; -$ionicon-var-laptop: "\f1fc"; -$ionicon-var-leaf: "\f1fd"; -$ionicon-var-levels: "\f298"; -$ionicon-var-lightbulb: "\f299"; -$ionicon-var-link: "\f1fe"; -$ionicon-var-load-a: "\f29a"; -$ionicon-var-load-b: "\f29b"; -$ionicon-var-load-c: "\f29c"; -$ionicon-var-load-d: "\f29d"; -$ionicon-var-location: "\f1ff"; -$ionicon-var-lock-combination: "\f4d4"; -$ionicon-var-locked: "\f200"; -$ionicon-var-log-in: "\f29e"; -$ionicon-var-log-out: "\f29f"; -$ionicon-var-loop: "\f201"; -$ionicon-var-magnet: "\f2a0"; -$ionicon-var-male: "\f2a1"; -$ionicon-var-man: "\f202"; -$ionicon-var-map: "\f203"; -$ionicon-var-medkit: "\f2a2"; -$ionicon-var-merge: "\f33f"; -$ionicon-var-mic-a: "\f204"; -$ionicon-var-mic-b: "\f205"; -$ionicon-var-mic-c: "\f206"; -$ionicon-var-minus: "\f209"; -$ionicon-var-minus-circled: "\f207"; -$ionicon-var-minus-round: "\f208"; -$ionicon-var-model-s: "\f2c1"; -$ionicon-var-monitor: "\f20a"; -$ionicon-var-more: "\f20b"; -$ionicon-var-mouse: "\f340"; -$ionicon-var-music-note: "\f20c"; -$ionicon-var-navicon: "\f20e"; -$ionicon-var-navicon-round: "\f20d"; -$ionicon-var-navigate: "\f2a3"; -$ionicon-var-network: "\f341"; -$ionicon-var-no-smoking: "\f2c2"; -$ionicon-var-nuclear: "\f2a4"; -$ionicon-var-outlet: "\f342"; -$ionicon-var-paintbrush: "\f4d5"; -$ionicon-var-paintbucket: "\f4d6"; -$ionicon-var-paper-airplane: "\f2c3"; -$ionicon-var-paperclip: "\f20f"; -$ionicon-var-pause: "\f210"; -$ionicon-var-person: "\f213"; -$ionicon-var-person-add: "\f211"; -$ionicon-var-person-stalker: "\f212"; -$ionicon-var-pie-graph: "\f2a5"; -$ionicon-var-pin: "\f2a6"; -$ionicon-var-pinpoint: "\f2a7"; -$ionicon-var-pizza: "\f2a8"; -$ionicon-var-plane: "\f214"; -$ionicon-var-planet: "\f343"; -$ionicon-var-play: "\f215"; -$ionicon-var-playstation: "\f30a"; -$ionicon-var-plus: "\f218"; -$ionicon-var-plus-circled: "\f216"; -$ionicon-var-plus-round: "\f217"; -$ionicon-var-podium: "\f344"; -$ionicon-var-pound: "\f219"; -$ionicon-var-power: "\f2a9"; -$ionicon-var-pricetag: "\f2aa"; -$ionicon-var-pricetags: "\f2ab"; -$ionicon-var-printer: "\f21a"; -$ionicon-var-pull-request: "\f345"; -$ionicon-var-qr-scanner: "\f346"; -$ionicon-var-quote: "\f347"; -$ionicon-var-radio-waves: "\f2ac"; -$ionicon-var-record: "\f21b"; -$ionicon-var-refresh: "\f21c"; -$ionicon-var-reply: "\f21e"; -$ionicon-var-reply-all: "\f21d"; -$ionicon-var-ribbon-a: "\f348"; -$ionicon-var-ribbon-b: "\f349"; -$ionicon-var-sad: "\f34a"; -$ionicon-var-sad-outline: "\f4d7"; -$ionicon-var-scissors: "\f34b"; -$ionicon-var-search: "\f21f"; -$ionicon-var-settings: "\f2ad"; -$ionicon-var-share: "\f220"; -$ionicon-var-shuffle: "\f221"; -$ionicon-var-skip-backward: "\f222"; -$ionicon-var-skip-forward: "\f223"; -$ionicon-var-social-android: "\f225"; -$ionicon-var-social-android-outline: "\f224"; -$ionicon-var-social-angular: "\f4d9"; -$ionicon-var-social-angular-outline: "\f4d8"; -$ionicon-var-social-apple: "\f227"; -$ionicon-var-social-apple-outline: "\f226"; -$ionicon-var-social-bitcoin: "\f2af"; -$ionicon-var-social-bitcoin-outline: "\f2ae"; -$ionicon-var-social-buffer: "\f229"; -$ionicon-var-social-buffer-outline: "\f228"; -$ionicon-var-social-chrome: "\f4db"; -$ionicon-var-social-chrome-outline: "\f4da"; -$ionicon-var-social-codepen: "\f4dd"; -$ionicon-var-social-codepen-outline: "\f4dc"; -$ionicon-var-social-css3: "\f4df"; -$ionicon-var-social-css3-outline: "\f4de"; -$ionicon-var-social-designernews: "\f22b"; -$ionicon-var-social-designernews-outline: "\f22a"; -$ionicon-var-social-dribbble: "\f22d"; -$ionicon-var-social-dribbble-outline: "\f22c"; -$ionicon-var-social-dropbox: "\f22f"; -$ionicon-var-social-dropbox-outline: "\f22e"; -$ionicon-var-social-euro: "\f4e1"; -$ionicon-var-social-euro-outline: "\f4e0"; -$ionicon-var-social-facebook: "\f231"; -$ionicon-var-social-facebook-outline: "\f230"; -$ionicon-var-social-foursquare: "\f34d"; -$ionicon-var-social-foursquare-outline: "\f34c"; -$ionicon-var-social-freebsd-devil: "\f2c4"; -$ionicon-var-social-github: "\f233"; -$ionicon-var-social-github-outline: "\f232"; -$ionicon-var-social-google: "\f34f"; -$ionicon-var-social-google-outline: "\f34e"; -$ionicon-var-social-googleplus: "\f235"; -$ionicon-var-social-googleplus-outline: "\f234"; -$ionicon-var-social-hackernews: "\f237"; -$ionicon-var-social-hackernews-outline: "\f236"; -$ionicon-var-social-html5: "\f4e3"; -$ionicon-var-social-html5-outline: "\f4e2"; -$ionicon-var-social-instagram: "\f351"; -$ionicon-var-social-instagram-outline: "\f350"; -$ionicon-var-social-javascript: "\f4e5"; -$ionicon-var-social-javascript-outline: "\f4e4"; -$ionicon-var-social-linkedin: "\f239"; -$ionicon-var-social-linkedin-outline: "\f238"; -$ionicon-var-social-markdown: "\f4e6"; -$ionicon-var-social-nodejs: "\f4e7"; -$ionicon-var-social-octocat: "\f4e8"; -$ionicon-var-social-pinterest: "\f2b1"; -$ionicon-var-social-pinterest-outline: "\f2b0"; -$ionicon-var-social-python: "\f4e9"; -$ionicon-var-social-reddit: "\f23b"; -$ionicon-var-social-reddit-outline: "\f23a"; -$ionicon-var-social-rss: "\f23d"; -$ionicon-var-social-rss-outline: "\f23c"; -$ionicon-var-social-sass: "\f4ea"; -$ionicon-var-social-skype: "\f23f"; -$ionicon-var-social-skype-outline: "\f23e"; -$ionicon-var-social-snapchat: "\f4ec"; -$ionicon-var-social-snapchat-outline: "\f4eb"; -$ionicon-var-social-tumblr: "\f241"; -$ionicon-var-social-tumblr-outline: "\f240"; -$ionicon-var-social-tux: "\f2c5"; -$ionicon-var-social-twitch: "\f4ee"; -$ionicon-var-social-twitch-outline: "\f4ed"; -$ionicon-var-social-twitter: "\f243"; -$ionicon-var-social-twitter-outline: "\f242"; -$ionicon-var-social-usd: "\f353"; -$ionicon-var-social-usd-outline: "\f352"; -$ionicon-var-social-vimeo: "\f245"; -$ionicon-var-social-vimeo-outline: "\f244"; -$ionicon-var-social-whatsapp: "\f4f0"; -$ionicon-var-social-whatsapp-outline: "\f4ef"; -$ionicon-var-social-windows: "\f247"; -$ionicon-var-social-windows-outline: "\f246"; -$ionicon-var-social-wordpress: "\f249"; -$ionicon-var-social-wordpress-outline: "\f248"; -$ionicon-var-social-yahoo: "\f24b"; -$ionicon-var-social-yahoo-outline: "\f24a"; -$ionicon-var-social-yen: "\f4f2"; -$ionicon-var-social-yen-outline: "\f4f1"; -$ionicon-var-social-youtube: "\f24d"; -$ionicon-var-social-youtube-outline: "\f24c"; -$ionicon-var-soup-can: "\f4f4"; -$ionicon-var-soup-can-outline: "\f4f3"; -$ionicon-var-speakerphone: "\f2b2"; -$ionicon-var-speedometer: "\f2b3"; -$ionicon-var-spoon: "\f2b4"; -$ionicon-var-star: "\f24e"; -$ionicon-var-stats-bars: "\f2b5"; -$ionicon-var-steam: "\f30b"; -$ionicon-var-stop: "\f24f"; -$ionicon-var-thermometer: "\f2b6"; -$ionicon-var-thumbsdown: "\f250"; -$ionicon-var-thumbsup: "\f251"; -$ionicon-var-toggle: "\f355"; -$ionicon-var-toggle-filled: "\f354"; -$ionicon-var-transgender: "\f4f5"; -$ionicon-var-trash-a: "\f252"; -$ionicon-var-trash-b: "\f253"; -$ionicon-var-trophy: "\f356"; -$ionicon-var-tshirt: "\f4f7"; -$ionicon-var-tshirt-outline: "\f4f6"; -$ionicon-var-umbrella: "\f2b7"; -$ionicon-var-university: "\f357"; -$ionicon-var-unlocked: "\f254"; -$ionicon-var-upload: "\f255"; -$ionicon-var-usb: "\f2b8"; -$ionicon-var-videocamera: "\f256"; -$ionicon-var-volume-high: "\f257"; -$ionicon-var-volume-low: "\f258"; -$ionicon-var-volume-medium: "\f259"; -$ionicon-var-volume-mute: "\f25a"; -$ionicon-var-wand: "\f358"; -$ionicon-var-waterdrop: "\f25b"; -$ionicon-var-wifi: "\f25c"; -$ionicon-var-wineglass: "\f2b9"; -$ionicon-var-woman: "\f25d"; -$ionicon-var-wrench: "\f2ba"; -$ionicon-var-xbox: "\f30c"; \ No newline at end of file diff --git a/admin/bower_components/Ionicons/scss/ionicons.scss b/admin/bower_components/Ionicons/scss/ionicons.scss deleted file mode 100644 index d2c79f9..0000000 --- a/admin/bower_components/Ionicons/scss/ionicons.scss +++ /dev/null @@ -1,15 +0,0 @@ -@import "ionicons-variables"; -/*! - Ionicons, v#{$ionicons-version} - Created by Ben Sperry for the Ionic Framework, http://ionicons.com/ - https://twitter.com/benjsperry https://twitter.com/ionicframework - MIT License: https://github.com/driftyco/ionicons - - Android-style icons originally built by Google’s - Material Design Icons: https://github.com/google/material-design-icons - used under CC BY http://creativecommons.org/licenses/by/4.0/ - Modified icons to fit ionicon’s grid from original. -*/ - -@import "ionicons-font"; -@import "ionicons-icons"; diff --git a/admin/bower_components/Ionicons/src/alert-circled.svg b/admin/bower_components/Ionicons/src/alert-circled.svg deleted file mode 100644 index b6fccd7..0000000 --- a/admin/bower_components/Ionicons/src/alert-circled.svg +++ /dev/null @@ -1,11 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" style="enable-background:new 0 0 512 512;" xml:space="preserve"> -<g> - <path d="M476.7,422.2L270.1,72.7c-2.9-5-8.3-8.7-14.1-8.7c-5.9,0-11.3,3.7-14.1,8.7L35.3,422.2c-2.8,5-4.8,13-1.9,17.9 - c2.9,4.9,8.2,7.9,14,7.9h417.1c5.8,0,11.1-3,14-7.9C481.5,435.2,479.5,427.1,476.7,422.2z M288,400h-64v-48h64V400z M288,320h-64 - V176h64V320z"/> -</g> -</svg> diff --git a/admin/bower_components/Ionicons/src/alert.svg b/admin/bower_components/Ionicons/src/alert.svg deleted file mode 100644 index b1a1c1f..0000000 --- a/admin/bower_components/Ionicons/src/alert.svg +++ /dev/null @@ -1,9 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" style="enable-background:new 0 0 512 512;" xml:space="preserve"> -<g> - <path d="M320,480H192v-96h128V480z M304,320h-96L192,32h128L304,320z"/> -</g> -</svg> diff --git a/admin/bower_components/Ionicons/src/android-add-circle.svg b/admin/bower_components/Ionicons/src/android-add-circle.svg deleted file mode 100644 index af6a7c6..0000000 --- a/admin/bower_components/Ionicons/src/android-add-circle.svg +++ /dev/null @@ -1,12 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" enable-background="new 0 0 512 512" xml:space="preserve"> -<g> - <g> - <path d="M256,48C141.125,48,48,141.125,48,256s93.125,208,208,208s208-93.125,208-208S370.875,48,256,48z M363,277h-86v86h-42v-86 - h-86v-42h86v-86h42v86h86V277z"/> - </g> -</g> -</svg> diff --git a/admin/bower_components/Ionicons/src/android-add.svg b/admin/bower_components/Ionicons/src/android-add.svg deleted file mode 100644 index 3ef4c9d..0000000 --- a/admin/bower_components/Ionicons/src/android-add.svg +++ /dev/null @@ -1,11 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" enable-background="new 0 0 512 512" xml:space="preserve"> -<g id="Icon_7_"> - <g> - <path d="M416,277.333H277.333V416h-42.666V277.333H96v-42.666h138.667V96h42.666v138.667H416V277.333z"/> - </g> -</g> -</svg> diff --git a/admin/bower_components/Ionicons/src/android-alarm-clock.svg b/admin/bower_components/Ionicons/src/android-alarm-clock.svg deleted file mode 100644 index 395e52f..0000000 --- a/admin/bower_components/Ionicons/src/android-alarm-clock.svg +++ /dev/null @@ -1,15 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" enable-background="new 0 0 512 512" xml:space="preserve"> -<g id="Icon_2_"> - <g> - <path d="M470,124.837l-98.443-81.78l-27.814,32.931l98.442,81.769L470,124.837z M167.192,74.919L139.366,42L42,124.837 - l27.814,32.919L167.192,74.919z M266.701,172.628h-32.101v127.446l101.649,60.539l16.051-26.553l-85.6-49.917V172.628z - M256,87.665c-107,0-192.601,86.021-192.601,191.166C63.399,383.98,149,470,256,470c105.936,0,192.601-86.02,192.601-191.169 - C448.601,173.687,361.936,87.665,256,87.665z M256,427.52c-82.393,0-149.8-66.906-149.8-148.688 - c0-81.777,67.407-148.684,149.8-148.684c82.394,0,149.8,66.906,149.8,148.684C405.8,361.671,338.394,427.52,256,427.52z"/> - </g> -</g> -</svg> diff --git a/admin/bower_components/Ionicons/src/android-alert.svg b/admin/bower_components/Ionicons/src/android-alert.svg deleted file mode 100644 index 0067197..0000000 --- a/admin/bower_components/Ionicons/src/android-alert.svg +++ /dev/null @@ -1,12 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" enable-background="new 0 0 512 512" xml:space="preserve"> -<g id="Icon_30_"> - <g> - <path d="M256,48C141.6,48,48,141.601,48,256s93.6,208,208,208c114.4,0,208-93.601,208-208S370.4,48,256,48z M280,360h-48v-40h48 - V360z M280,272h-48V144h48V272z"/> - </g> -</g> -</svg> diff --git a/admin/bower_components/Ionicons/src/android-apps.svg b/admin/bower_components/Ionicons/src/android-apps.svg deleted file mode 100644 index db32fe5..0000000 --- a/admin/bower_components/Ionicons/src/android-apps.svg +++ /dev/null @@ -1,12 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" enable-background="new 0 0 512 512" xml:space="preserve"> -<g id="Icon"> - <g> - <path d="M96,176h80V96H96V176z M216,416h80v-80h-80V416z M96,416h80v-80H96V416z M96,296h80v-80H96V296z M216,296h80v-80h-80V296z - M336,96v80h80V96H336z M216,176h80V96h-80V176z M336,296h80v-80h-80V296z M336,416h80v-80h-80V416z"/> - </g> -</g> -</svg> diff --git a/admin/bower_components/Ionicons/src/android-archive.svg b/admin/bower_components/Ionicons/src/android-archive.svg deleted file mode 100644 index e874606..0000000 --- a/admin/bower_components/Ionicons/src/android-archive.svg +++ /dev/null @@ -1,12 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" enable-background="new 0 0 512 512" xml:space="preserve"> -<g> - <path d="M453.594,100.001l-32.353-39.299C415.469,52.627,405.083,48,394.664,48H117.335c-10.416,0-20.801,4.627-26.576,12.702 - l-32.351,39.299C51.468,106.923,48,117.335,48,128.886v288.89C48,443.2,68.8,464,94.225,464h323.553 - C443.202,464,464,443.2,464,417.775v-288.89C464,117.335,460.537,106.923,453.594,100.001z M256,383.109L128.89,256h80.89v-46.224 - h92.443V256h80.89L256,383.109z M96.534,94.221l18.486-23.111h277.331l21.965,23.111H96.534z"/> -</g> -</svg> diff --git a/admin/bower_components/Ionicons/src/android-arrow-back.svg b/admin/bower_components/Ionicons/src/android-arrow-back.svg deleted file mode 100644 index 43ef1ff..0000000 --- a/admin/bower_components/Ionicons/src/android-arrow-back.svg +++ /dev/null @@ -1,11 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" enable-background="new 0 0 512 512" xml:space="preserve"> -<g id="Icon_8_"> - <g> - <path d="M427,234.625H167.296l119.702-119.702L256,85L85,256l171,171l29.922-29.924L167.296,277.375H427V234.625z"/> - </g> -</g> -</svg> diff --git a/admin/bower_components/Ionicons/src/android-arrow-down.svg b/admin/bower_components/Ionicons/src/android-arrow-down.svg deleted file mode 100644 index a6edf0c..0000000 --- a/admin/bower_components/Ionicons/src/android-arrow-down.svg +++ /dev/null @@ -1,11 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" enable-background="new 0 0 512 512" xml:space="preserve"> -<g id="Icon_8_"> - <g> - <path d="M277.375,85v259.704l119.702-119.702L427,256L256,427L85,256l29.924-29.922l119.701,118.626V85H277.375z"/> - </g> -</g> -</svg> diff --git a/admin/bower_components/Ionicons/src/android-arrow-dropdown-circle.svg b/admin/bower_components/Ionicons/src/android-arrow-dropdown-circle.svg deleted file mode 100644 index 6393ec7..0000000 --- a/admin/bower_components/Ionicons/src/android-arrow-dropdown-circle.svg +++ /dev/null @@ -1,10 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" enable-background="new 0 0 512 512" xml:space="preserve"> -<g> - <path d="M256,48C141.125,48,48,141.125,48,256s93.125,208,208,208s208-93.125,208-208S370.875,48,256,48z M256,320l-96-96h192 - L256,320z"/> -</g> -</svg> diff --git a/admin/bower_components/Ionicons/src/android-arrow-dropdown.svg b/admin/bower_components/Ionicons/src/android-arrow-dropdown.svg deleted file mode 100644 index 55ee520..0000000 --- a/admin/bower_components/Ionicons/src/android-arrow-dropdown.svg +++ /dev/null @@ -1,9 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" enable-background="new 0 0 512 512" xml:space="preserve"> -<g> - <polygon points="128,192 256,320 384,192 "/> -</g> -</svg> diff --git a/admin/bower_components/Ionicons/src/android-arrow-dropleft-circle.svg b/admin/bower_components/Ionicons/src/android-arrow-dropleft-circle.svg deleted file mode 100644 index 9dd3aab..0000000 --- a/admin/bower_components/Ionicons/src/android-arrow-dropleft-circle.svg +++ /dev/null @@ -1,10 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" enable-background="new 0 0 512 512" xml:space="preserve"> -<g> - <path d="M464,256c0-114.875-93.125-208-208-208S48,141.125,48,256s93.125,208,208,208S464,370.875,464,256z M192,256l96-96v192 - L192,256z"/> -</g> -</svg> diff --git a/admin/bower_components/Ionicons/src/android-arrow-dropleft.svg b/admin/bower_components/Ionicons/src/android-arrow-dropleft.svg deleted file mode 100644 index d693f53..0000000 --- a/admin/bower_components/Ionicons/src/android-arrow-dropleft.svg +++ /dev/null @@ -1,9 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" enable-background="new 0 0 512 512" xml:space="preserve"> -<g> - <polygon points="320,128 192,256 320,384 "/> -</g> -</svg> diff --git a/admin/bower_components/Ionicons/src/android-arrow-dropright-circle.svg b/admin/bower_components/Ionicons/src/android-arrow-dropright-circle.svg deleted file mode 100644 index 932b791..0000000 --- a/admin/bower_components/Ionicons/src/android-arrow-dropright-circle.svg +++ /dev/null @@ -1,10 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" enable-background="new 0 0 512 512" xml:space="preserve"> -<g> - <path d="M256,464c114.875,0,208-93.125,208-208S370.875,48,256,48S48,141.125,48,256S141.125,464,256,464z M224,352V160l96,96 - L224,352z"/> -</g> -</svg> diff --git a/admin/bower_components/Ionicons/src/android-arrow-dropright.svg b/admin/bower_components/Ionicons/src/android-arrow-dropright.svg deleted file mode 100644 index f9c279e..0000000 --- a/admin/bower_components/Ionicons/src/android-arrow-dropright.svg +++ /dev/null @@ -1,9 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" enable-background="new 0 0 512 512" xml:space="preserve"> -<g> - <polygon points="192,128 320,256 192,384 "/> -</g> -</svg> diff --git a/admin/bower_components/Ionicons/src/android-arrow-dropup-circle.svg b/admin/bower_components/Ionicons/src/android-arrow-dropup-circle.svg deleted file mode 100644 index 4633fba..0000000 --- a/admin/bower_components/Ionicons/src/android-arrow-dropup-circle.svg +++ /dev/null @@ -1,10 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" enable-background="new 0 0 512 512" xml:space="preserve"> -<g> - <path d="M464,256c0-114.875-93.125-208-208-208S48,141.125,48,256s93.125,208,208,208S464,370.875,464,256z M352,288H160l96-96 - L352,288z"/> -</g> -</svg> diff --git a/admin/bower_components/Ionicons/src/android-arrow-dropup.svg b/admin/bower_components/Ionicons/src/android-arrow-dropup.svg deleted file mode 100644 index 1400388..0000000 --- a/admin/bower_components/Ionicons/src/android-arrow-dropup.svg +++ /dev/null @@ -1,9 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" enable-background="new 0 0 512 512" xml:space="preserve"> -<g> - <polygon points="128,320 256,192 384,320 "/> -</g> -</svg> diff --git a/admin/bower_components/Ionicons/src/android-arrow-forward.svg b/admin/bower_components/Ionicons/src/android-arrow-forward.svg deleted file mode 100644 index f1ae345..0000000 --- a/admin/bower_components/Ionicons/src/android-arrow-forward.svg +++ /dev/null @@ -1,11 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" enable-background="new 0 0 512 512" xml:space="preserve"> -<g id="Icon_8_"> - <g> - <path d="M85,277.375h259.704L225.002,397.077L256,427l171-171L256,85l-29.922,29.924l118.626,119.701H85V277.375z"/> - </g> -</g> -</svg> diff --git a/admin/bower_components/Ionicons/src/android-arrow-up.svg b/admin/bower_components/Ionicons/src/android-arrow-up.svg deleted file mode 100644 index 36ac0ff..0000000 --- a/admin/bower_components/Ionicons/src/android-arrow-up.svg +++ /dev/null @@ -1,11 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" enable-background="new 0 0 512 512" xml:space="preserve"> -<g id="Icon_8_"> - <g> - <path d="M277.375,427V167.296l119.702,119.702L427,256L256,85L85,256l29.924,29.922l119.701-118.626V427H277.375z"/> - </g> -</g> -</svg> diff --git a/admin/bower_components/Ionicons/src/android-attach.svg b/admin/bower_components/Ionicons/src/android-attach.svg deleted file mode 100644 index ae889ab..0000000 --- a/admin/bower_components/Ionicons/src/android-attach.svg +++ /dev/null @@ -1,15 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" enable-background="new 0 0 512 512" xml:space="preserve"> -<g id="Icon_3_"> - <g> - <path d="M341.334,128v234.666C341.334,409.604,302.938,448,256,448c-46.937,0-85.333-38.396-85.333-85.334V117.334 - C170.667,87.469,194.135,64,224,64c29.864,0,53.333,23.469,53.333,53.334v245.333c0,11.729-9.605,21.333-21.334,21.333 - c-11.729,0-21.333-9.604-21.333-21.333V160h-32v202.667C202.667,392.531,226.135,416,256,416 - c29.865,0,53.334-23.469,53.334-53.333V117.334C309.334,70.401,270.938,32,224,32c-46.938,0-85.334,38.401-85.334,85.334v245.332 - C138.667,427.729,190.938,480,256,480c65.062,0,117.334-52.271,117.334-117.334V128H341.334z"/> - </g> -</g> -</svg> diff --git a/admin/bower_components/Ionicons/src/android-bar.svg b/admin/bower_components/Ionicons/src/android-bar.svg deleted file mode 100644 index a1f2bce..0000000 --- a/admin/bower_components/Ionicons/src/android-bar.svg +++ /dev/null @@ -1,12 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" enable-background="new 0 0 512 512" xml:space="preserve"> -<g id="Icon_37_"> - <g> - <path d="M234.667,277.333V408H128v40h256v-40H277.333V277.333L448,106.667V64H64v42.667L234.667,277.333z M160,149.333 - l-42.667-42.666h277.334L352,149.333H160z"/> - </g> -</g> -</svg> diff --git a/admin/bower_components/Ionicons/src/android-bicycle.svg b/admin/bower_components/Ionicons/src/android-bicycle.svg deleted file mode 100644 index fa8400a..0000000 --- a/admin/bower_components/Ionicons/src/android-bicycle.svg +++ /dev/null @@ -1,19 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" enable-background="new 0 0 512 512" xml:space="preserve"> -<g id="Icon_13_"> - <g> - <path d="M330.666,131.202c18.668,0,33.598-14.935,33.598-33.601S349.334,64,330.666,64C312,64,297.07,78.935,297.07,97.601 - S312,131.202,330.666,131.202z M386.666,261.334c-51.332,0-93.332,42-93.332,93.333s42,93.333,93.332,93.333 - C438,448,480,406,480,354.667S438,261.334,386.666,261.334z M386.666,420c-36.402,0-65.332-28.93-65.332-65.333 - s28.93-65.333,65.332-65.333c36.404,0,65.334,28.93,65.334,65.333S423.07,420,386.666,420z M305.597,224H384v-32h-58.845 - l-34.62-60.134c-5.605-9.333-15.869-15.864-27.07-15.864c-8.399,0-16.798,3.732-22.399,9.333l-71.732,69.065 - c-5.601,5.601-9.333,14-9.333,22.399c0,12.131,9.202,21.465,18.535,27.065L240,282.134V368h32V256l-39.333-32l42.929-44.533 - L305.597,224z M125.333,261.334C74,261.334,32,303.334,32,354.667S74,448,125.333,448c51.333,0,93.333-42,93.333-93.333 - S176.667,261.334,125.333,261.334z M125.333,420C88.934,420,60,391.07,60,354.667s28.934-65.333,65.333-65.333 - c36.399,0,65.333,28.93,65.333,65.333S161.732,420,125.333,420z"/> - </g> -</g> -</svg> diff --git a/admin/bower_components/Ionicons/src/android-boat.svg b/admin/bower_components/Ionicons/src/android-boat.svg deleted file mode 100644 index 23000b4..0000000 --- a/admin/bower_components/Ionicons/src/android-boat.svg +++ /dev/null @@ -1,16 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" enable-background="new 0 0 512 512" xml:space="preserve"> -<g> - <path d="M84.255,413h1.063c34.123,0,63.977-19.021,85.305-42.494c21.325,23.473,51.18,42.762,85.304,42.762 - s63.979-19.334,85.305-42.806C362.559,393.934,392.412,413,426.535,413h1.062l51.253-138.78c2.126-5.329,1.063-11.641-1.07-16.976 - c-2.136-5.333-7.237-8.487-12.567-10.623L427,234.133v-98.15C427,112.51,407.344,93,383.884,93h-63.979l-15.993-53h-95.969 - l-15.995,53h-63.979C104.511,93,85,112.51,85,135.982v98.15l-38.074,12.533c-5.33,2.136-10.582,5.334-12.718,10.667 - c-2.135,5.335-3.158,10.49-1.031,16.887L84.255,413z M128,136h256v84.261l-128-41.605l-128,41.605V136z"/> - <path d="M341.231,408.007c-52.253,36.267-118.356,36.258-170.608-0.009c0,0-57.638,64.002-106.632,64.002h21.327 - c29.854,0,58.646-11.726,85.305-25.594c53.315,27.734,117.293,27.728,170.608-0.007C367.89,460.268,396.681,472,426.535,472h21.328 - C400.212,472,341.231,408.007,341.231,408.007z"/> -</g> -</svg> diff --git a/admin/bower_components/Ionicons/src/android-bookmark.svg b/admin/bower_components/Ionicons/src/android-bookmark.svg deleted file mode 100644 index 799c882..0000000 --- a/admin/bower_components/Ionicons/src/android-bookmark.svg +++ /dev/null @@ -1,7 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" enable-background="new 0 0 512 512" xml:space="preserve"> -<path d="M360,64H152c-22.002,0-40,17.998-40,40v344l144-64l144,64V104C400,81.998,382.002,64,360,64z"/> -</svg> diff --git a/admin/bower_components/Ionicons/src/android-bulb.svg b/admin/bower_components/Ionicons/src/android-bulb.svg deleted file mode 100644 index 248bae1..0000000 --- a/admin/bower_components/Ionicons/src/android-bulb.svg +++ /dev/null @@ -1,18 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" enable-background="new 0 0 512 512" xml:space="preserve"> -<g id="Icon_26_"> - <g> - <path d="M256,170.136c25.499,0,49.567,10.025,67.771,28.229C341.975,216.568,352,240.637,352,266.136 - c0,17.621-4.422,34.031-13.144,48.773c-8.339,14.098-20.437,26.036-34.985,34.526L288,358.697v18.376V448h-64v-70.927v-18.376 - l-15.871-9.262C178.442,332.111,160,300.192,160,266.136c0-25.499,10.025-49.567,28.229-67.771 - C206.433,180.161,230.501,170.136,256,170.136 M277.333,32c-6.396,0-42.666,0-42.666,0v64h42.666V32L277.333,32z M406.396,85.864 - L368,124.271l29.864,29.865l38.406-38.396L406.396,85.864L406.396,85.864z M105.604,85.864l-29.875,29.875l38.406,38.396 - L144,124.271L105.604,85.864L105.604,85.864z M256,138.136c-70.396,0-128,57.604-128,128c0,46.938,25.604,88.531,64,110.938V480 - h128V377.073c38.396-22.406,64-62.938,64-110.938C384,195.739,326.396,138.136,256,138.136L256,138.136z M480,244.802h-64v42.667 - h64V244.802L480,244.802z M96,244.802H32v42.667h64V244.802L96,244.802z"/> - </g> -</g> -</svg> diff --git a/admin/bower_components/Ionicons/src/android-bus.svg b/admin/bower_components/Ionicons/src/android-bus.svg deleted file mode 100644 index b55c0c2..0000000 --- a/admin/bower_components/Ionicons/src/android-bus.svg +++ /dev/null @@ -1,18 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" enable-background="new 0 0 512 512" xml:space="preserve"> -<g id="Icon_14_"> - <g> - <g> - <path d="M80,352c0,19.198,13.864,24.531,26.667,36.271v38.396c0,11.729,9.599,21.334,21.333,21.334h21.333 - c11.734,0,21.334-9.604,21.334-21.334v-21.333h170.666v21.333c0,11.729,9.604,21.334,21.334,21.334H384 - c11.729,0,21.333-9.604,21.333-21.334v-38.396C418.136,376.531,432,370.136,432,352V148.334C432,73.667,349.864,64,256,64 - S80,73.667,80,148.334V352z M160,367.989c-18.136,0-32-13.864-32-32c0-18.135,13.864-32,32-32s32,13.865,32,32 - C192,354.125,178.136,367.989,160,367.989z M352,367.989c-18.136,0-32-13.864-32-32c0-18.135,13.864-32,32-32s32,13.865,32,32 - C384,354.125,370.136,367.989,352,367.989z M384,245.333H128V138.667h256V245.333z"/> - </g> - </g> -</g> -</svg> diff --git a/admin/bower_components/Ionicons/src/android-calendar.svg b/admin/bower_components/Ionicons/src/android-calendar.svg deleted file mode 100644 index 5fd9ed6..0000000 --- a/admin/bower_components/Ionicons/src/android-calendar.svg +++ /dev/null @@ -1,11 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" enable-background="new 0 0 512 512" xml:space="preserve"> -<g> - <path d="M368.005,272h-96v96h96V272z M336.005,64v32h-160V64h-48v32h-24.01c-22.002,0-40,17.998-40,40v272 - c0,22.002,17.998,40,40,40h304.01c22.002,0,40-17.998,40-40V136c0-22.002-17.998-40-40-40h-24V64H336.005z M408.005,408h-304.01 - V196h304.01V408z"/> -</g> -</svg> diff --git a/admin/bower_components/Ionicons/src/android-call.svg b/admin/bower_components/Ionicons/src/android-call.svg deleted file mode 100644 index e687edf..0000000 --- a/admin/bower_components/Ionicons/src/android-call.svg +++ /dev/null @@ -1,10 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" enable-background="new 0 0 512 512" xml:space="preserve"> -<path d="M426.666,330.667c-26.666,0-52.271-4.271-75.729-11.729c-7.469-2.136-16-1.073-21.332,5.333l-46.939,46.928 - c-60.802-30.928-109.864-80-140.802-140.803l46.939-46.927c5.332-5.333,7.462-13.864,5.332-21.333 - c-8.537-24.531-12.802-50.136-12.802-76.803C181.333,73.604,171.734,64,160,64H85.333C73.599,64,64,73.604,64,85.333 - C64,285.864,226.136,448,426.666,448c11.73,0,21.334-9.604,21.334-21.333V352C448,340.271,438.396,330.667,426.666,330.667z"/> -</svg> diff --git a/admin/bower_components/Ionicons/src/android-camera.svg b/admin/bower_components/Ionicons/src/android-camera.svg deleted file mode 100644 index 2dd4720..0000000 --- a/admin/bower_components/Ionicons/src/android-camera.svg +++ /dev/null @@ -1,12 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" enable-background="new 0 0 512 512" xml:space="preserve"> -<g> - <circle cx="256" cy="280" r="63"/> - <path d="M440,96h-88l-32-32H192l-32,32H72c-22.092,0-40,17.908-40,40v272c0,22.092,17.908,40,40,40h368c22.092,0,40-17.908,40-40 - V136C480,113.908,462.092,96,440,96z M256,392c-61.855,0-112-50.145-112-112s50.145-112,112-112s112,50.145,112,112 - S317.855,392,256,392z"/> -</g> -</svg> diff --git a/admin/bower_components/Ionicons/src/android-cancel.svg b/admin/bower_components/Ionicons/src/android-cancel.svg deleted file mode 100644 index ddcbee5..0000000 --- a/admin/bower_components/Ionicons/src/android-cancel.svg +++ /dev/null @@ -1,11 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" enable-background="new 0 0 512 512" xml:space="preserve"> -<g> - <path d="M256,48C140.559,48,48,140.559,48,256c0,115.436,92.559,208,208,208c115.435,0,208-92.564,208-208 - C464,140.559,371.436,48,256,48z M360.002,330.881l-29.12,29.117L256,285.117l-74.881,74.881l-29.121-29.117L226.881,256 - l-74.883-74.881l29.121-29.116L256,226.881l74.881-74.878l29.12,29.116L285.119,256L360.002,330.881z"/> -</g> -</svg> diff --git a/admin/bower_components/Ionicons/src/android-car.svg b/admin/bower_components/Ionicons/src/android-car.svg deleted file mode 100644 index 7b66a2e..0000000 --- a/admin/bower_components/Ionicons/src/android-car.svg +++ /dev/null @@ -1,15 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" enable-background="new 0 0 512 512" xml:space="preserve"> -<g id="Icon_15_"> - <g> - <path d="M403.208,117.333c-4.271-12.802-16-21.333-29.875-21.333H138.667c-13.875,0-25.604,8.531-29.875,21.333L64,234.667v160 - C64,406.396,73.604,416,85.333,416h21.334c11.729,0,21.333-9.604,21.333-21.333V384h256v10.667 - c0,11.729,9.604,21.333,21.333,21.333h21.334c11.729,0,21.333-9.604,21.333-21.333v-160L403.208,117.333z M138.667,320 - c-18.125,0-32-13.865-32-32s13.875-32,32-32s32,13.866,32,32S156.792,320,138.667,320z M373.333,320c-18.125,0-32-13.865-32-32 - s13.875-32,32-32s32,13.866,32,32S391.458,320,373.333,320z M106.667,213.333l32-85.333h234.666l32,85.333H106.667z"/> - </g> -</g> -</svg> diff --git a/admin/bower_components/Ionicons/src/android-cart.svg b/admin/bower_components/Ionicons/src/android-cart.svg deleted file mode 100644 index 1d97e72..0000000 --- a/admin/bower_components/Ionicons/src/android-cart.svg +++ /dev/null @@ -1,14 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" enable-background="new 0 0 512 512" xml:space="preserve"> -<g> - <path fill="#010101" d="M169.6,377.6c-22.882,0-41.6,18.718-41.6,41.601c0,22.882,18.718,41.6,41.6,41.6s41.601-18.718,41.601-41.6 - C211.2,396.317,192.481,377.6,169.6,377.6z M48,51.2v41.6h41.6l74.883,151.682l-31.308,50.954c-3.118,5.2-5.2,12.482-5.2,19.765 - c0,27.85,19.025,41.6,44.825,41.6H416v-40H177.893c-3.118,0-5.2-2.082-5.2-5.2c0-1.036,2.207-5.2,2.207-5.2l20.782-32.8h154.954 - c15.601,0,29.128-8.317,36.4-21.836l74.882-128.8c1.237-2.461,2.082-6.246,2.082-10.399c0-11.446-9.364-19.765-20.8-19.765H135.364 - L115.6,51.2H48z M374.399,377.6c-22.882,0-41.6,18.718-41.6,41.601c0,22.882,18.718,41.6,41.6,41.6S416,442.082,416,419.2 - C416,396.317,397.281,377.6,374.399,377.6z"/> -</g> -</svg> diff --git a/admin/bower_components/Ionicons/src/android-chat.svg b/admin/bower_components/Ionicons/src/android-chat.svg deleted file mode 100644 index 66d0009..0000000 --- a/admin/bower_components/Ionicons/src/android-chat.svg +++ /dev/null @@ -1,12 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" enable-background="new 0 0 512 512" xml:space="preserve"> -<g> - <path d="M391.553,64H57.607C53.131,64,48,67.745,48,72.159v214.217c0,4.413,5.131,8.624,9.607,8.624H115v88.894L205.128,295 - h186.425c4.477,0,7.447-4.211,7.447-8.624V72.159C399,67.745,396.029,64,391.553,64z"/> - <path d="M456.396,127H424v166.57c0,15.987-6.915,26.43-25.152,26.43H218.096l-38.905,39h129.688L399,448v-89h57.396 - c4.478,0,7.604-4.262,7.604-8.682V136.103C464,131.689,460.874,127,456.396,127z"/> -</g> -</svg> diff --git a/admin/bower_components/Ionicons/src/android-checkbox-blank.svg b/admin/bower_components/Ionicons/src/android-checkbox-blank.svg deleted file mode 100644 index ff50d6b..0000000 --- a/admin/bower_components/Ionicons/src/android-checkbox-blank.svg +++ /dev/null @@ -1,12 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" enable-background="new 0 0 512 512" xml:space="preserve"> -<g id="Icon_23_"> - <g> - <path d="M405.333,64H106.667C83.198,64,64,83.198,64,106.667v298.666C64,428.802,83.198,448,106.667,448h298.666 - C428.802,448,448,428.802,448,405.333V106.667C448,83.198,428.802,64,405.333,64z"/> - </g> -</g> -</svg> diff --git a/admin/bower_components/Ionicons/src/android-checkbox-outline-blank.svg b/admin/bower_components/Ionicons/src/android-checkbox-outline-blank.svg deleted file mode 100644 index dfce6d6..0000000 --- a/admin/bower_components/Ionicons/src/android-checkbox-outline-blank.svg +++ /dev/null @@ -1,13 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" enable-background="new 0 0 512 512" xml:space="preserve"> -<g id="Icon_25_"> - <g> - <path d="M405.333,106.667v298.666H106.667V106.667H405.333 M405.333,64H106.667C83.198,64,64,83.198,64,106.667v298.666 - C64,428.802,83.198,448,106.667,448h298.666C428.802,448,448,428.802,448,405.333V106.667C448,83.198,428.802,64,405.333,64 - L405.333,64z"/> - </g> -</g> -</svg> diff --git a/admin/bower_components/Ionicons/src/android-checkbox-outline.svg b/admin/bower_components/Ionicons/src/android-checkbox-outline.svg deleted file mode 100644 index 96fb444..0000000 --- a/admin/bower_components/Ionicons/src/android-checkbox-outline.svg +++ /dev/null @@ -1,13 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" enable-background="new 0 0 512 512" xml:space="preserve"> -<g id="Icon_24_"> - <g> - <path d="M168.531,215.469l-29.864,29.864l96,96L448,128l-29.864-29.864L234.667,280.531L168.531,215.469z M405.333,405.333 - H106.667V106.667H320V64H106.667C83.198,64,64,83.198,64,106.667v298.666C64,428.802,83.198,448,106.667,448h298.666 - C428.802,448,448,428.802,448,405.333V234.667h-42.667V405.333z"/> - </g> -</g> -</svg> diff --git a/admin/bower_components/Ionicons/src/android-checkbox.svg b/admin/bower_components/Ionicons/src/android-checkbox.svg deleted file mode 100644 index f7718a0..0000000 --- a/admin/bower_components/Ionicons/src/android-checkbox.svg +++ /dev/null @@ -1,13 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" enable-background="new 0 0 512 512" xml:space="preserve"> -<g id="Icon_22_"> - <g> - <path d="M405.333,64H106.667C83.198,64,64,83.198,64,106.667v298.666C64,428.802,83.198,448,106.667,448h298.666 - C428.802,448,448,428.802,448,405.333V106.667C448,83.198,428.802,64,405.333,64z M213.333,362.667L106.667,256l29.864-29.864 - l76.802,76.802l162.136-162.136l29.864,29.865L213.333,362.667z"/> - </g> -</g> -</svg> diff --git a/admin/bower_components/Ionicons/src/android-checkmark-circle.svg b/admin/bower_components/Ionicons/src/android-checkmark-circle.svg deleted file mode 100644 index 32fe509..0000000 --- a/admin/bower_components/Ionicons/src/android-checkmark-circle.svg +++ /dev/null @@ -1,9 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" enable-background="new 0 0 512 512" xml:space="preserve"> -<path d="M170.718,216.482L141.6,245.6L235.2,339.2l208-208l-29.118-29.118L235.2,279.918L170.718,216.482z M422.4,256 - c0,91.518-74.883,166.4-166.4,166.4S89.6,347.518,89.6,256S164.482,89.6,256,89.6c15.6,0,31.2,2.082,45.764,6.241L334,63.6 - C310.082,53.2,284.082,48,256,48C141.6,48,48,141.6,48,256s93.6,208,208,208s208-93.6,208-208H422.4z"/> -</svg> diff --git a/admin/bower_components/Ionicons/src/android-clipboard.svg b/admin/bower_components/Ionicons/src/android-clipboard.svg deleted file mode 100644 index 97f2281..0000000 --- a/admin/bower_components/Ionicons/src/android-clipboard.svg +++ /dev/null @@ -1,10 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" enable-background="new 0 0 512 512" xml:space="preserve"> -<path d="M405.333,80h-87.35C310.879,52.396,285.821,32,256,32s-54.879,20.396-61.983,48h-87.35C83.198,80,64,99.198,64,122.667 - v314.665C64,460.801,83.198,480,106.667,480h298.666C428.802,480,448,460.801,448,437.332V122.667C448,99.198,428.802,80,405.333,80 - z M256,80c11.729,0,21.333,9.599,21.333,21.333s-9.604,21.334-21.333,21.334s-21.333-9.6-21.333-21.334S244.271,80,256,80z M408,440 - H104V120h40v72h224v-72h40V440z"/> -</svg> diff --git a/admin/bower_components/Ionicons/src/android-close.svg b/admin/bower_components/Ionicons/src/android-close.svg deleted file mode 100644 index 11343a4..0000000 --- a/admin/bower_components/Ionicons/src/android-close.svg +++ /dev/null @@ -1,12 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" enable-background="new 0 0 512 512" xml:space="preserve"> -<g id="Icon_5_"> - <g> - <polygon points="405,136.798 375.202,107 256,226.202 136.798,107 107,136.798 226.202,256 107,375.202 136.798,405 256,285.798 - 375.202,405 405,375.202 285.798,256 "/> - </g> -</g> -</svg> diff --git a/admin/bower_components/Ionicons/src/android-cloud-circle.svg b/admin/bower_components/Ionicons/src/android-cloud-circle.svg deleted file mode 100644 index bd8a656..0000000 --- a/admin/bower_components/Ionicons/src/android-cloud-circle.svg +++ /dev/null @@ -1,16 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" enable-background="new 0 0 512 512" xml:space="preserve"> -<g id="Icon_32_"> - <g> - <g> - <path d="M256,48C141.6,48,48,141.6,48,256s93.6,208,208,208c114.4,0,208-93.6,208-208S370.4,48,256,48z M349.6,339.2 - c0,0-175.759,0-176.799,0c-34.318,0-62.4-28.082-62.4-62.399c0-34.319,28.082-62.4,62.4-62.4c1.041,0,2.082,0,3.117,0 - c9.364-36.4,41.601-62.399,80.083-62.399c45.764,0,83.199,37.435,83.199,83.198h10.4c29.118,0,52,22.882,52,52.001 - C401.6,316.318,378.718,339.2,349.6,339.2z"/> - </g> - </g> -</g> -</svg> diff --git a/admin/bower_components/Ionicons/src/android-cloud-done.svg b/admin/bower_components/Ionicons/src/android-cloud-done.svg deleted file mode 100644 index 8aa9717..0000000 --- a/admin/bower_components/Ionicons/src/android-cloud-done.svg +++ /dev/null @@ -1,12 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" enable-background="new 0 0 512 512" xml:space="preserve"> -<g> - <path d="M403.002,217.001C388.998,148.002,328.998,96,256,96c-57.998,0-107.998,32.998-132.998,81.001 - C63.002,183.002,16,233.998,16,296c0,65.996,53.999,120,120,120h260c55,0,100-45,100-100 - C496,263.002,455.004,219.999,403.002,217.001z M213.333,362.667L138.667,288l29.864-29.864l44.802,44.802L324.271,192 - l29.865,29.864L213.333,362.667z"/> -</g> -</svg> diff --git a/admin/bower_components/Ionicons/src/android-cloud-outline.svg b/admin/bower_components/Ionicons/src/android-cloud-outline.svg deleted file mode 100644 index 98b34b1..0000000 --- a/admin/bower_components/Ionicons/src/android-cloud-outline.svg +++ /dev/null @@ -1,16 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" enable-background="new 0 0 512 512" xml:space="preserve"> -<g id="Icon_9_"> - <g> - <g> - <path d="M403.001,217.001C388.997,148.002,328.998,96,256,96c-57.998,0-107.999,32.998-132.997,81 - C63.002,183.002,16,233.998,16,296c0,65.996,54.004,120,120,120h260c55,0,100-45,100-100.001 - C496,263.002,455.003,220,403.001,217.001z M396,376H136c-44.004,0-80-35.996-80-80c0-44,35.996-80,80-80h14.004 - c12.998-46,55-80,105.996-80c60.996,0,110,49,110,110v10h30c32.998,0,60,27.003,60,60C456,348.998,428.998,376,396,376z"/> - </g> - </g> -</g> -</svg> diff --git a/admin/bower_components/Ionicons/src/android-cloud.svg b/admin/bower_components/Ionicons/src/android-cloud.svg deleted file mode 100644 index 0869972..0000000 --- a/admin/bower_components/Ionicons/src/android-cloud.svg +++ /dev/null @@ -1,9 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" enable-background="new 0 0 512 512" xml:space="preserve"> -<path d="M403.002,217.001C388.998,148.002,328.998,96,256,96c-57.998,0-107.998,32.998-132.998,81.001 - C63.002,183.002,16,233.998,16,296c0,65.996,53.999,120,120,120h260c55,0,100-45,100-100 - C496,263.002,455.004,219.999,403.002,217.001z"/> -</svg> diff --git a/admin/bower_components/Ionicons/src/android-color-palette.svg b/admin/bower_components/Ionicons/src/android-color-palette.svg deleted file mode 100644 index fddb19c..0000000 --- a/admin/bower_components/Ionicons/src/android-color-palette.svg +++ /dev/null @@ -1,17 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" enable-background="new 0 0 512 512" xml:space="preserve"> -<g id="Icon_12_"> - <g> - <path d="M256,64C150.401,64,64,150.401,64,256c0,105.604,86.401,192,192,192c18.136,0,32-13.864,32-32 - c0-8.531-3.198-16-8.531-21.333c-5.333-5.334-8.531-12.803-8.531-21.334c0-18.135,13.864-32,32-32h38.396 - c58.667,0,106.667-48,106.667-106.666C448,140.802,361.604,64,256,64z M138.667,256c-18.136,0-32-13.864-32-32s13.864-32,32-32 - c18.135,0,32,13.864,32,32S156.802,256,138.667,256z M202.667,170.667c-18.136,0-32-13.865-32-32c0-18.136,13.864-32,32-32 - c18.135,0,32,13.864,32,32C234.667,156.802,220.802,170.667,202.667,170.667z M309.333,170.667c-18.135,0-32-13.865-32-32 - c0-18.136,13.865-32,32-32c18.136,0,32,13.864,32,32C341.333,156.802,327.469,170.667,309.333,170.667z M373.333,256 - c-18.135,0-32-13.864-32-32s13.865-32,32-32c18.136,0,32,13.864,32,32S391.469,256,373.333,256z"/> - </g> -</g> -</svg> diff --git a/admin/bower_components/Ionicons/src/android-compass.svg b/admin/bower_components/Ionicons/src/android-compass.svg deleted file mode 100644 index 6ae34a9..0000000 --- a/admin/bower_components/Ionicons/src/android-compass.svg +++ /dev/null @@ -1,9 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" enable-background="new 0 0 512 512" xml:space="preserve"> -<path d="M256,231.358c-13.442,0-24.643,11.2-24.643,24.642s11.2,24.643,24.643,24.643s24.643-11.2,24.643-24.643 - S269.442,231.358,256,231.358z M256,32C132.8,32,32,132.8,32,256s100.8,224,224,224s224-100.8,224-224S379.2,32,256,32z - M305.284,305.284L121.6,390.4l85.116-183.679L390.4,121.6L305.284,305.284z"/> -</svg> diff --git a/admin/bower_components/Ionicons/src/android-contact.svg b/admin/bower_components/Ionicons/src/android-contact.svg deleted file mode 100644 index 4f5da63..0000000 --- a/admin/bower_components/Ionicons/src/android-contact.svg +++ /dev/null @@ -1,15 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" enable-background="new 0 0 512 512" xml:space="preserve"> -<g> - <path d="M331.08,338.205c-22.156,12.594-47.777,19.783-75.084,19.783c-27.302,0-52.919-7.182-75.073-19.771 - C122.153,356.152,77.262,396,64,448h384C434.745,396,389.854,356.131,331.08,338.205z"/> - <g> - <path d="M255.996,64c-72.871,0-131.945,59.127-131.945,132.013c0,72.887,59.074,131.972,131.945,131.972 - s131.945-59.085,131.945-131.972C387.941,123.127,328.867,64,255.996,64z M255.996,294.986c-41.958,0-77.813-25.986-92.209-62.986 - h184.418C333.809,269,297.953,294.986,255.996,294.986z"/> - </g> -</g> -</svg> diff --git a/admin/bower_components/Ionicons/src/android-contacts.svg b/admin/bower_components/Ionicons/src/android-contacts.svg deleted file mode 100644 index 3c4a7f6..0000000 --- a/admin/bower_components/Ionicons/src/android-contacts.svg +++ /dev/null @@ -1,26 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" enable-background="new 0 0 512 512" xml:space="preserve"> -<g> - <g> - <path d="M239.208,343.937c-17.78,10.103-38.342,15.876-60.255,15.876c-21.909,0-42.467-5.771-60.246-15.87 - C71.544,358.331,42.643,406,32,448h293.912C315.273,406,286.375,358.317,239.208,343.937z"/> - <g> - <path d="M178.953,120.035c-58.479,0-105.886,47.394-105.886,105.858c0,58.464,47.407,105.857,105.886,105.857 - c58.479,0,105.886-47.394,105.886-105.857C284.839,167.429,237.431,120.035,178.953,120.035z M178.953,306.523 - c-33.671,0-62.445-22.513-73.997-50.523H252.95C241.396,284.011,212.624,306.523,178.953,306.523z"/> - </g> - </g> - <g> - <g> - <path d="M322.602,384H480c-10.638-42-39.537-81.691-86.703-96.072c-17.781,10.104-38.343,15.873-60.256,15.873 - c-14.823,0-29.024-2.654-42.168-7.49c-7.445,12.47-16.927,25.592-27.974,34.906C289.245,341.354,309.146,364,322.602,384z"/> - </g> - <path d="M306.545,200h100.493c-11.554,28-40.327,50.293-73.997,50.293c-8.875,0-17.404-1.692-25.375-4.51 - c-1.338,8.709-3.543,17.07-6.52,25.118c10.066,3.174,20.779,4.862,31.895,4.862c58.479,0,105.886-47.41,105.886-105.872 - c0-58.465-47.407-105.866-105.886-105.866c-37.49,0-70.427,19.703-89.243,49.09C275.607,131.383,298.961,163,306.545,200z"/> - </g> -</g> -</svg> diff --git a/admin/bower_components/Ionicons/src/android-contract.svg b/admin/bower_components/Ionicons/src/android-contract.svg deleted file mode 100644 index 8c4708c..0000000 --- a/admin/bower_components/Ionicons/src/android-contract.svg +++ /dev/null @@ -1,12 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" enable-background="new 0 0 512 512" xml:space="preserve"> -<g id="Icon_2_"> - <g> - <path d="M64,371.2h76.795V448H192V320H64V371.2z M140.795,140.8H64V192h128V64h-51.205V140.8z M320,448h51.2v-76.8H448V320H320 - V448z M371.2,140.8V64H320v128h128v-51.2H371.2z"/> - </g> -</g> -</svg> diff --git a/admin/bower_components/Ionicons/src/android-create.svg b/admin/bower_components/Ionicons/src/android-create.svg deleted file mode 100644 index d2cc74e..0000000 --- a/admin/bower_components/Ionicons/src/android-create.svg +++ /dev/null @@ -1,13 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" enable-background="new 0 0 512 512" xml:space="preserve"> -<g id="Icon_6_"> - <g> - <path fill="#010101" d="M64,368v80h80l235.727-235.729l-79.999-79.998L64,368z M441.602,150.398 - c8.531-8.531,8.531-21.334,0-29.865l-50.135-50.135c-8.531-8.531-21.334-8.531-29.865,0l-39.468,39.469l79.999,79.998 - L441.602,150.398z"/> - </g> -</g> -</svg> diff --git a/admin/bower_components/Ionicons/src/android-delete.svg b/admin/bower_components/Ionicons/src/android-delete.svg deleted file mode 100644 index 9159a48..0000000 --- a/admin/bower_components/Ionicons/src/android-delete.svg +++ /dev/null @@ -1,10 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" enable-background="new 0 0 512 512" xml:space="preserve"> -<g> - <path d="M128,405.429C128,428.846,147.198,448,170.667,448h170.667C364.802,448,384,428.846,384,405.429V160H128V405.429z M416,96 - h-80l-26.785-32H202.786L176,96H96v32h320V96z"/> -</g> -</svg> diff --git a/admin/bower_components/Ionicons/src/android-desktop.svg b/admin/bower_components/Ionicons/src/android-desktop.svg deleted file mode 100644 index 3d61d9b..0000000 --- a/admin/bower_components/Ionicons/src/android-desktop.svg +++ /dev/null @@ -1,13 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" enable-background="new 0 0 512 512" xml:space="preserve"> -<g id="Icon_28_"> - <g> - <path d="M437.333,32H74.667C51.198,32,32,51.197,32,74.666v282.667C32,380.802,51.198,400,74.667,400h138.666l-42.666,48v32 - h170.666v-32l-42.666-48h138.666C460.802,400,480,380.802,480,357.333V74.666C480,51.197,460.802,32,437.333,32z M437.333,320 - H74.667V74.666h362.666V320z"/> - </g> -</g> -</svg> diff --git a/admin/bower_components/Ionicons/src/android-document.svg b/admin/bower_components/Ionicons/src/android-document.svg deleted file mode 100644 index 91cd9d0..0000000 --- a/admin/bower_components/Ionicons/src/android-document.svg +++ /dev/null @@ -1,10 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" enable-background="new 0 0 512 512" xml:space="preserve"> -<g> - <path d="M288,48H136c-22.092,0-40,17.908-40,40v336c0,22.092,17.908,40,40,40h240c22.092,0,40-17.908,40-40V176L288,48z M272,192 - V80l112,112H272z"/> -</g> -</svg> diff --git a/admin/bower_components/Ionicons/src/android-done-all.svg b/admin/bower_components/Ionicons/src/android-done-all.svg deleted file mode 100644 index 8260759..0000000 --- a/admin/bower_components/Ionicons/src/android-done-all.svg +++ /dev/null @@ -1,13 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" enable-background="new 0 0 512 512" xml:space="preserve"> -<g id="Icon_4_"> - <g> - <path d="M387.581,139.712L356.755,109L216.913,248.319l30.831,30.719L387.581,139.712z M481.172,109L247.744,340.469 - l-91.39-91.051l-30.827,30.715L247.744,403L512,139.712L481.172,109z M0,280.133L123.321,403l30.829-30.713L31.934,249.418 - L0,280.133z"/> - </g> -</g> -</svg> diff --git a/admin/bower_components/Ionicons/src/android-done.svg b/admin/bower_components/Ionicons/src/android-done.svg deleted file mode 100644 index fbd6e5c..0000000 --- a/admin/bower_components/Ionicons/src/android-done.svg +++ /dev/null @@ -1,13 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" enable-background="new 0 0 512 512" xml:space="preserve"> -<g id="Icon_1_"> - <g> - <g> - <polygon points="186.301,339.893 96,249.461 64,279.968 186.301,402 448,140.506 416,110 "/> - </g> - </g> -</g> -</svg> diff --git a/admin/bower_components/Ionicons/src/android-download.svg b/admin/bower_components/Ionicons/src/android-download.svg deleted file mode 100644 index 2d62994..0000000 --- a/admin/bower_components/Ionicons/src/android-download.svg +++ /dev/null @@ -1,9 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" enable-background="new 0 0 512 512" xml:space="preserve"> -<path d="M403.002,217.001C388.998,148.002,328.998,96,256,96c-57.998,0-107.998,32.998-132.998,81.001 - C63.002,183.002,16,233.998,16,296c0,65.996,53.999,120,120,120h260c55,0,100-45,100-100 - C496,263.002,455.004,219.999,403.002,217.001z M224,268v-76h64v76h68L256,368L156,268H224z"/> -</svg> diff --git a/admin/bower_components/Ionicons/src/android-drafts.svg b/admin/bower_components/Ionicons/src/android-drafts.svg deleted file mode 100644 index 18745a7..0000000 --- a/admin/bower_components/Ionicons/src/android-drafts.svg +++ /dev/null @@ -1,15 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" enable-background="new 0 0 512 512" xml:space="preserve"> -<g id="Icon_18_"> - <g> - <g> - <path d="M480,201.667c0-14.933-7.469-28.803-20.271-36.266L256,64L52.271,165.401C40.531,172.864,32,186.734,32,201.667v203.666 - C32,428.802,51.197,448,74.666,448h362.668C460.803,448,480,428.802,480,405.333V201.667z M256,304L84.631,192L256,106.667 - L427.369,192L256,304z"/> - </g> - </g> -</g> -</svg> diff --git a/admin/bower_components/Ionicons/src/android-exit.svg b/admin/bower_components/Ionicons/src/android-exit.svg deleted file mode 100644 index cf92b34..0000000 --- a/admin/bower_components/Ionicons/src/android-exit.svg +++ /dev/null @@ -1,9 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" enable-background="new 0 0 512 512" xml:space="preserve"> -<path d="M215.469,332.802l29.863,29.864L352,256L245.332,149.333l-29.863,29.865l55.469,55.469H64v42.666h205.864L215.469,332.802z - M405.334,64H106.666C83.198,64,64,83.198,64,106.666V192h42.666v-85.333h298.668v298.668H106.666V320H64v85.334 - C64,428.802,83.198,448,106.666,448h298.668C428.802,448,448,428.802,448,405.334V106.666C448,83.198,428.802,64,405.334,64z"/> -</svg> diff --git a/admin/bower_components/Ionicons/src/android-expand.svg b/admin/bower_components/Ionicons/src/android-expand.svg deleted file mode 100644 index beb08b2..0000000 --- a/admin/bower_components/Ionicons/src/android-expand.svg +++ /dev/null @@ -1,12 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" enable-background="new 0 0 512 512" xml:space="preserve"> -<g> - <polygon points="396.795,396.8 320,396.8 320,448 448,448 448,320 396.795,320 "/> - <polygon points="396.8,115.205 396.8,192 448,192 448,64 320,64 320,115.205 "/> - <polygon points="115.205,115.2 192,115.2 192,64 64,64 64,192 115.205,192 "/> - <polygon points="115.2,396.795 115.2,320 64,320 64,448 192,448 192,396.795 "/> -</g> -</svg> diff --git a/admin/bower_components/Ionicons/src/android-favorite-outline.svg b/admin/bower_components/Ionicons/src/android-favorite-outline.svg deleted file mode 100644 index 15d6e6b..0000000 --- a/admin/bower_components/Ionicons/src/android-favorite-outline.svg +++ /dev/null @@ -1,13 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" enable-background="new 0 0 512 512" xml:space="preserve"> -<path d="M349.6,64c-36.4,0-70.718,16.742-93.6,43.947C233.117,80.742,198.8,64,162.4,64C97.918,64,48,114.221,48,179.095 - c0,79.516,70.718,143.348,177.836,241.694L256,448l30.164-27.211C393.281,322.442,464,258.61,464,179.095 - C464,114.221,414.082,64,349.6,64z M268.836,393.257l-4.219,3.873L256,404.903l-8.616-7.772l-4.214-3.869 - c-50.418-46.282-93.961-86.254-122.746-121.994C92.467,236.555,80,208.128,80,179.095c0-22.865,8.422-43.931,23.715-59.316 - C118.957,104.445,139.798,96,162.4,96c26.134,0,51.97,12.167,69.11,32.545L256,157.661l24.489-29.116 - C297.63,108.167,323.465,96,349.6,96c22.603,0,43.443,8.445,58.686,23.778C423.578,135.164,432,156.229,432,179.095 - c0,29.033-12.467,57.459-40.422,92.171C362.794,307.006,319.253,346.975,268.836,393.257z"/> -</svg> diff --git a/admin/bower_components/Ionicons/src/android-favorite.svg b/admin/bower_components/Ionicons/src/android-favorite.svg deleted file mode 100644 index 3b83662..0000000 --- a/admin/bower_components/Ionicons/src/android-favorite.svg +++ /dev/null @@ -1,11 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" enable-background="new 0 0 512 512" xml:space="preserve"> -<g> - <path d="M256,448l-30.164-27.211C118.718,322.442,48,258.61,48,179.095C48,114.221,97.918,64,162.4,64 - c36.399,0,70.717,16.742,93.6,43.947C278.882,80.742,313.199,64,349.6,64C414.082,64,464,114.221,464,179.095 - c0,79.516-70.719,143.348-177.836,241.694L256,448z"/> -</g> -</svg> diff --git a/admin/bower_components/Ionicons/src/android-film.svg b/admin/bower_components/Ionicons/src/android-film.svg deleted file mode 100644 index 13fbeb6..0000000 --- a/admin/bower_components/Ionicons/src/android-film.svg +++ /dev/null @@ -1,9 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" enable-background="new 0 0 512 512" xml:space="preserve"> -<path fill="#010101" d="M376,64v42.667h-40V64H176v42.667h-40V64H96v384h40v-42.666h40V448h160v-42.666h40V448h40V64H376z - M176,362.667h-40V320h40V362.667z M176,277.334h-40v-42.667h40V277.334z M176,192h-40v-42.666h40V192z M376,362.667h-40V320h40 - V362.667z M376,277.334h-40v-42.667h40V277.334z M376,192h-40v-42.666h40V192z"/> -</svg> diff --git a/admin/bower_components/Ionicons/src/android-folder-open.svg b/admin/bower_components/Ionicons/src/android-folder-open.svg deleted file mode 100644 index 19545aa..0000000 --- a/admin/bower_components/Ionicons/src/android-folder-open.svg +++ /dev/null @@ -1,10 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" enable-background="new 0 0 512 512" xml:space="preserve"> -<path d="M437.334,144H256.006l-42.668-48H74.666C51.197,96,32,115.198,32,138.667v234.666C32,396.802,51.197,416,74.666,416h362.668 - C460.803,416,480,396.802,480,373.333V186.667C480,163.198,460.803,144,437.334,144z M448,373.333 - c0,5.782-4.885,10.667-10.666,10.667H74.666C68.884,384,64,379.115,64,373.333V176h373.334c5.781,0,10.666,4.885,10.666,10.667 - V373.333z"/> -</svg> diff --git a/admin/bower_components/Ionicons/src/android-folder.svg b/admin/bower_components/Ionicons/src/android-folder.svg deleted file mode 100644 index eb17131..0000000 --- a/admin/bower_components/Ionicons/src/android-folder.svg +++ /dev/null @@ -1,14 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" enable-background="new 0 0 512 512" xml:space="preserve"> -<g id="Icon_10_"> - <g> - <g> - <path d="M213.338,96H74.666C51.197,96,32,115.198,32,138.667v234.666C32,396.802,51.197,416,74.666,416h362.668 - C460.803,416,480,396.802,480,373.333V186.667C480,163.198,460.803,144,437.334,144H256.006L213.338,96z"/> - </g> - </g> -</g> -</svg> diff --git a/admin/bower_components/Ionicons/src/android-funnel.svg b/admin/bower_components/Ionicons/src/android-funnel.svg deleted file mode 100644 index 0c9f0e1..0000000 --- a/admin/bower_components/Ionicons/src/android-funnel.svg +++ /dev/null @@ -1,7 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" enable-background="new 0 0 512 512" xml:space="preserve"> -<path d="M208,400h96v-47.994h-96V400z M32,112v47.994h448V112H32z M112,280.783h288v-49.555H112V280.783z"/> -</svg> diff --git a/admin/bower_components/Ionicons/src/android-globe.svg b/admin/bower_components/Ionicons/src/android-globe.svg deleted file mode 100644 index 3cbd9fb..0000000 --- a/admin/bower_components/Ionicons/src/android-globe.svg +++ /dev/null @@ -1,24 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" enable-background="new 0 0 512 512" xml:space="preserve"> -<path d="M256,48C141.124,48,48,141.125,48,256c0,114.875,93.124,208,208,208c114.875,0,208-93.125,208-208 - C464,141.125,370.875,48,256,48z M234.451,432.999c-39.464-4.726-75.978-22.392-104.519-50.932 - C96.258,348.393,77.714,303.622,77.714,256c0-42.87,15.036-83.424,42.601-115.659c0.71,8.517,2.463,17.648,2.014,24.175 - c-1.64,23.795-3.988,38.687,9.94,58.762c5.426,7.819,6.759,19.028,9.4,28.078c2.583,8.854,12.902,13.498,20.019,18.953 - c14.359,11.009,28.096,23.805,43.322,33.494c10.049,6.395,16.326,9.576,13.383,21.839c-2.367,9.862-3.028,15.937-8.13,24.723 - c-1.557,2.681,5.877,19.918,8.351,22.392c7.498,7.497,14.938,14.375,23.111,21.125C254.396,404.351,240.494,417.954,234.451,432.999 - z M382.067,382.067c-25.633,25.633-57.699,42.486-92.556,49.081c4.94-12.216,13.736-23.07,21.895-29.362 - c7.097-5.476,15.986-16.009,19.693-24.352c3.704-8.332,8.611-15.555,13.577-23.217c7.065-10.899-17.419-27.336-25.353-30.781 - c-17.854-7.751-31.294-18.21-47.161-29.375c-11.305-7.954-34.257,4.154-47.02-1.417c-17.481-7.633-31.883-20.896-47.078-32.339 - c-15.68-11.809-14.922-25.576-14.922-42.997c12.282,0.453,29.754-3.399,37.908,6.478c2.573,3.117,11.42,17.042,17.342,12.094 - c4.838-4.043-3.585-20.249-5.212-24.059c-5.005-11.715,11.404-16.284,19.803-24.228c10.96-10.364,34.47-26.618,32.612-34.047 - s-23.524-28.477-36.249-25.193c-1.907,0.492-18.697,18.097-21.941,20.859c0.086-5.746,0.172-11.491,0.26-17.237 - c0.055-3.628-6.768-7.352-6.451-9.692c0.8-5.914,17.262-16.647,21.357-21.357c-2.869-1.793-12.659-10.202-15.622-8.968 - c-7.174,2.99-15.276,5.05-22.45,8.039c0-2.488-0.302-4.825-0.662-7.133c14.376-6.365,29.587-10.791,45.31-13.152l14.084,5.66 - l9.944,11.801l9.924,10.233l8.675,2.795l13.779-12.995L282,87.929v-8.339c27.25,3.958,52.984,14.124,75.522,29.8 - c-4.032,0.361-8.463,0.954-13.462,1.59c-2.065-1.22-4.714-1.774-6.965-2.623c6.531,14.042,13.343,27.89,20.264,41.746 - c7.393,14.801,23.793,30.677,26.673,46.301c3.394,18.416,1.039,35.144,2.896,56.811c1.788,20.865,23.524,44.572,23.524,44.572 - s10.037,3.419,18.384,2.228C421.055,330.798,405.103,359.029,382.067,382.067z"/> -</svg> diff --git a/admin/bower_components/Ionicons/src/android-hand.svg b/admin/bower_components/Ionicons/src/android-hand.svg deleted file mode 100644 index 5fdc810..0000000 --- a/admin/bower_components/Ionicons/src/android-hand.svg +++ /dev/null @@ -1,15 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" enable-background="new 0 0 512 512" xml:space="preserve"> -<path d="M450.679,273.5c-14.585-14.577-36.054-15.89-50.639-1.312l-41.687,41.664c-10.852,10.836-23.93,10.859-31.564,1.852 - c-5.057-5.968-3.061-24.374-1.644-36.049l20.907-171.849c1.867-15.353-9.07-30.185-24.43-32.051 - c-15.358-1.867-29.322,9.939-31.191,25.289L267.37,236.021c-1.205,3.358-3.79,3.938-4.081-0.582L255.44,60 - c0-15.465-12.542-28-28.014-28c-15.473,0-28.015,12.535-28.015,28l-0.552,176.752c0.146,2.04-1.604,2.624-1.92,0.294L172.016,99.077 - c-2.75-15.219-17.323-26.203-32.548-23.453c-15.227,2.748-25.339,18.187-22.591,33.403l22.193,161.455 - c0.023,2.872-0.941,4.513-2.308,0.831l-33.109-88.517c-5.18-14.572-21.196-23.065-35.776-17.889 - c-14.579,5.177-22.201,22.061-17.023,36.631l58.042,189.625c0.303,1.046,0.624,2.085,0.953,3.118l0.121,0.39 - c0.011,0.031,0.025,0.058,0.035,0.088C126.079,444.233,172.57,480,227.427,480c35.116,0,71.591-12.378,99.357-33.672 - c0.001,0,0.003-0.002,0.003-0.002c29.99-18.051,126.071-121.347,126.071-121.347C467.445,310.402,465.266,288.08,450.679,273.5z"/> -</svg> diff --git a/admin/bower_components/Ionicons/src/android-hangout.svg b/admin/bower_components/Ionicons/src/android-hangout.svg deleted file mode 100644 index 08ba43b..0000000 --- a/admin/bower_components/Ionicons/src/android-hangout.svg +++ /dev/null @@ -1,9 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" enable-background="new 0 0 512 512" xml:space="preserve"> -<path d="M256,48c-97.321,0-176,77.114-176,172.487c0,95.38,78.679,172.487,176,172.487V464c100.425-47.689,176-152.195,176-243.513 - C432,125.114,353.321,48,256,48z M246,230.633L224.943,271H193.88l20.712-40H184v-61h62V230.633z M328,230.633L307.768,271h-31.063 - l20.704-40H266v-61h62V230.633z"/> -</svg> diff --git a/admin/bower_components/Ionicons/src/android-happy.svg b/admin/bower_components/Ionicons/src/android-happy.svg deleted file mode 100644 index 2607270..0000000 --- a/admin/bower_components/Ionicons/src/android-happy.svg +++ /dev/null @@ -1,12 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" enable-background="new 0 0 512 512" xml:space="preserve"> -<path d="M256,48C140.563,48,48,141.6,48,256c0,114.4,92.563,208,208,208s208-93.6,208-208C464,141.6,370.401,48,256,48z M256,422.4 - c-91.518,0-166.404-74.883-166.404-166.4c0-91.518,74.887-166.4,166.404-166.4S422.404,164.482,422.404,256 - C422.404,347.518,347.518,422.4,256,422.4z M328.8,235.2c17.683,0,31.201-13.518,31.201-31.2s-13.519-31.2-31.201-31.2 - c-17.682,0-31.2,13.518-31.2,31.2S311.118,235.2,328.8,235.2z M183.2,235.2c17.682,0,31.2-13.518,31.2-31.2s-13.519-31.2-31.2-31.2 - c-17.683,0-31.201,13.518-31.201,31.2S165.518,235.2,183.2,235.2z M256,370.4c48.883,0,89.436-30.164,106.081-72.801H149.919 - C166.564,340.236,207.117,370.4,256,370.4z"/> -</svg> diff --git a/admin/bower_components/Ionicons/src/android-home.svg b/admin/bower_components/Ionicons/src/android-home.svg deleted file mode 100644 index 44d4234..0000000 --- a/admin/bower_components/Ionicons/src/android-home.svg +++ /dev/null @@ -1,9 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" enable-background="new 0 0 512 512" xml:space="preserve"> -<g> - <polygon points="208,448 208,320 304,320 304,448 401.6,448 401.6,256 464,256 256,64 48,256 110.4,256 110.4,448 "/> -</g> -</svg> diff --git a/admin/bower_components/Ionicons/src/android-image.svg b/admin/bower_components/Ionicons/src/android-image.svg deleted file mode 100644 index 28f4ad9..0000000 --- a/admin/bower_components/Ionicons/src/android-image.svg +++ /dev/null @@ -1,13 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" enable-background="new 0 0 512 512" xml:space="preserve"> -<g id="Icon_8_"> - <g> - <path d="M448,405.333V106.667C448,83.198,428.802,64,405.333,64H106.667C83.198,64,64,83.198,64,106.667v298.666 - C64,428.802,83.198,448,106.667,448h298.666C428.802,448,448,428.802,448,405.333z M181.333,288l53.334,64l74.666-96l96,128 - H106.667L181.333,288z"/> - </g> -</g> -</svg> diff --git a/admin/bower_components/Ionicons/src/android-laptop.svg b/admin/bower_components/Ionicons/src/android-laptop.svg deleted file mode 100644 index 07dcfb5..0000000 --- a/admin/bower_components/Ionicons/src/android-laptop.svg +++ /dev/null @@ -1,14 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" enable-background="new 0 0 512 512" xml:space="preserve"> -<g id="Icon_29_"> - <g> - <path d="M437.334,416C460.803,416,480,396.803,480,373.334V106.668C480,83.199,460.803,64,437.334,64H74.666 - C51.197,64,32,83.199,32,106.668v266.666C32,396.803,51.197,416,74.666,416H0c0,23.469,64,32,96,32h320c32,0,96-8.531,96-32 - H437.334z M74.666,106.668h362.668v271.998H74.666V106.668z M256,434.666c-11.729,0-21.333-9.604-21.333-21.334 - c0-11.729,9.604-21.332,21.333-21.332s21.333,9.604,21.333,21.332C277.333,425.062,267.729,434.666,256,434.666z"/> - </g> -</g> -</svg> diff --git a/admin/bower_components/Ionicons/src/android-list.svg b/admin/bower_components/Ionicons/src/android-list.svg deleted file mode 100644 index 5056d9c..0000000 --- a/admin/bower_components/Ionicons/src/android-list.svg +++ /dev/null @@ -1,10 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" enable-background="new 0 0 512 512" xml:space="preserve"> -<g> - <path d="M408,64H104c-22.091,0-40,17.908-40,40v304c0,22.092,17.909,40,40,40h304c22.092,0,40-17.908,40-40V104 - C448,81.908,430.092,64,408,64z M304,368H144v-48h160V368z M368,280H144v-48h224V280z M368,192H144v-48h224V192z"/> -</g> -</svg> diff --git a/admin/bower_components/Ionicons/src/android-locate.svg b/admin/bower_components/Ionicons/src/android-locate.svg deleted file mode 100644 index 315e49c..0000000 --- a/admin/bower_components/Ionicons/src/android-locate.svg +++ /dev/null @@ -1,16 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" enable-background="new 0 0 512 512" xml:space="preserve"> -<g id="Icon"> - <g> - <path d="M256,176c-44.004,0-80.001,36-80.001,80c0,44.004,35.997,80,80.001,80c44.005,0,79.999-35.996,79.999-80 - C335.999,212,300.005,176,256,176z M446.938,234.667c-9.605-88.531-81.074-160-169.605-169.599V32h-42.666v33.067 - c-88.531,9.599-160,81.068-169.604,169.599H32v42.667h33.062c9.604,88.531,81.072,160,169.604,169.604V480h42.666v-33.062 - c88.531-9.604,160-81.073,169.605-169.604H480v-42.667H446.938z M256,405.333c-82.137,0-149.334-67.198-149.334-149.333 - c0-82.136,67.197-149.333,149.334-149.333c82.135,0,149.332,67.198,149.332,149.333C405.332,338.135,338.135,405.333,256,405.333z - "/> - </g> -</g> -</svg> diff --git a/admin/bower_components/Ionicons/src/android-lock.svg b/admin/bower_components/Ionicons/src/android-lock.svg deleted file mode 100644 index fbc6418..0000000 --- a/admin/bower_components/Ionicons/src/android-lock.svg +++ /dev/null @@ -1,14 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" enable-background="new 0 0 512 512" xml:space="preserve"> -<g> - <g> - <path d="M376,186h-20v-40c0-55-45-100-100-100S156,91,156,146v40h-20c-22.002,0-40,17.998-40,40v200c0,22.002,17.998,40,40,40h240 - c22.002,0,40-17.998,40-40V226C416,203.998,398.002,186,376,186z M256,368c-22.002,0-40-17.998-40-40s17.998-40,40-40 - s40,17.998,40,40S278.002,368,256,368z M318.002,186H193.998v-40c0-34.004,28.003-62.002,62.002-62.002 - c34.004,0,62.002,27.998,62.002,62.002V186z"/> - </g> -</g> -</svg> diff --git a/admin/bower_components/Ionicons/src/android-mail.svg b/admin/bower_components/Ionicons/src/android-mail.svg deleted file mode 100644 index 1afcfa1..0000000 --- a/admin/bower_components/Ionicons/src/android-mail.svg +++ /dev/null @@ -1,13 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" enable-background="new 0 0 512 512" xml:space="preserve"> -<g id="Icon_19_"> - <g> - <path d="M437.332,80H74.668C51.199,80,32,99.198,32,122.667v266.666C32,412.802,51.199,432,74.668,432h362.664 - C460.801,432,480,412.802,480,389.333V122.667C480,99.198,460.801,80,437.332,80z M432,170.667L256,288L80,170.667V128 - l176,117.333L432,128V170.667z"/> - </g> -</g> -</svg> diff --git a/admin/bower_components/Ionicons/src/android-map.svg b/admin/bower_components/Ionicons/src/android-map.svg deleted file mode 100644 index 5be7a01..0000000 --- a/admin/bower_components/Ionicons/src/android-map.svg +++ /dev/null @@ -1,16 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" enable-background="new 0 0 512 512" xml:space="preserve"> -<g id="Icon_34_"> - <g> - <g> - <path d="M437.333,64c-2.176,0-4.396,1.369-9.176,3.207S320,108.802,320,108.802L192,64L71.469,104.531 - C67.197,105.604,64,109.864,64,115.197v322.136C64,443.729,68.271,448,74.666,448c1.828,0,6.505-2.33,9.087-3.319 - S192,403.197,192,403.197L320,448l120.531-40.531c4.271-1.073,7.469-5.334,7.469-10.667V74.666C448,68.271,443.729,64,437.333,64 - z M320,405.333l-128-44.802V106.666l128,44.803V405.333z"/> - </g> - </g> -</g> -</svg> diff --git a/admin/bower_components/Ionicons/src/android-menu.svg b/admin/bower_components/Ionicons/src/android-menu.svg deleted file mode 100644 index 4d1cb7c..0000000 --- a/admin/bower_components/Ionicons/src/android-menu.svg +++ /dev/null @@ -1,11 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" enable-background="new 0 0 512 512" xml:space="preserve"> -<g id="Icon_3_"> - <g> - <path d="M64,384h384v-42.666H64V384z M64,277.334h384v-42.667H64V277.334z M64,128v42.665h384V128H64z"/> - </g> -</g> -</svg> diff --git a/admin/bower_components/Ionicons/src/android-microphone-off.svg b/admin/bower_components/Ionicons/src/android-microphone-off.svg deleted file mode 100644 index 297562b..0000000 --- a/admin/bower_components/Ionicons/src/android-microphone-off.svg +++ /dev/null @@ -1,17 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" enable-background="new 0 0 512 512" xml:space="preserve"> -<g> - <path d="M367.951,354.654l-26.616-26.562l-9.568-9.548l-4.698-4.706L187,174.041v0.346L76.112,63.531L51.921,87.572L187,222.47 - v28.816c0,37.79,31.121,68.714,68.91,68.714c8.61,0,16.952-1.62,24.565-4.545l32.389,32.274 - c-17.333,8.793-36.812,13.86-56.782,13.86c-62.986,0-121.365-48.59-121.365-116.59H95.773C95.773,322,158,387.701,233,398.013V480 - h46v-81.987c22-3.352,43.066-11.222,61.627-22.622l95.278,95.078l24.033-24l-33.847-33.785l-58.216-57.959l58.224,57.959 - L367.951,354.654z"/> - <path d="M325,251.286V100.714C325,62.924,293.791,32,256,32s-69,30.924-69,68.714v25.244l137.109,136.968 - C324.779,259.135,325,255.247,325,251.286z"/> - <path d="M416.439,245h-38.941c0,20.496-5.498,39.676-14.931,56.197l27.572,27.516C406.662,304.603,416.439,275.926,416.439,245z"/> - <polygon points="459.999,446.427 426.102,412.684 459.957,446.469 "/> -</g> -</svg> diff --git a/admin/bower_components/Ionicons/src/android-microphone.svg b/admin/bower_components/Ionicons/src/android-microphone.svg deleted file mode 100644 index 3588160..0000000 --- a/admin/bower_components/Ionicons/src/android-microphone.svg +++ /dev/null @@ -1,12 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" enable-background="new 0 0 512 512" xml:space="preserve"> -<g> - <path d="M256,320c37.712,0,68.571-30.924,68.571-68.714V100.714C324.571,62.924,293.712,32,256,32s-68.571,30.924-68.571,68.714 - v150.572C187.429,289.076,218.288,320,256,320z M377.139,244.548c0,68.714-58.282,116.815-121.139,116.815 - s-121.139-48.102-121.139-116.815H96c0,77.873,61.719,143.153,137.144,153.465V480h45.713v-81.987 - C354.281,386.561,416,322.421,416,244.548H377.139z"/> -</g> -</svg> diff --git a/admin/bower_components/Ionicons/src/android-more-horizontal.svg b/admin/bower_components/Ionicons/src/android-more-horizontal.svg deleted file mode 100644 index c6f4af4..0000000 --- a/admin/bower_components/Ionicons/src/android-more-horizontal.svg +++ /dev/null @@ -1,9 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" enable-background="new 0 0 512 512" xml:space="preserve"> -<path d="M136,216c-22.002,0-40,17.998-40,40s17.998,40,40,40s40-17.998,40-40S158.002,216,136,216z M376,216 - c-22.002,0-40,17.998-40,40s17.998,40,40,40s40-17.998,40-40S398.002,216,376,216z M256,216c-22.002,0-40,17.998-40,40 - s17.998,40,40,40s40-17.998,40-40S278.002,216,256,216z"/> -</svg> diff --git a/admin/bower_components/Ionicons/src/android-more-vertical.svg b/admin/bower_components/Ionicons/src/android-more-vertical.svg deleted file mode 100644 index fbca23d..0000000 --- a/admin/bower_components/Ionicons/src/android-more-vertical.svg +++ /dev/null @@ -1,9 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" enable-background="new 0 0 512 512" xml:space="preserve"> -<path d="M296,136c0-22.002-17.998-40-40-40s-40,17.998-40,40s17.998,40,40,40S296,158.002,296,136z M296,376 - c0-22.002-17.998-40-40-40s-40,17.998-40,40s17.998,40,40,40S296,398.002,296,376z M296,256c0-22.002-17.998-40-40-40 - s-40,17.998-40,40s17.998,40,40,40S296,278.002,296,256z"/> -</svg> diff --git a/admin/bower_components/Ionicons/src/android-navigate.svg b/admin/bower_components/Ionicons/src/android-navigate.svg deleted file mode 100644 index 8bf06e1..0000000 --- a/admin/bower_components/Ionicons/src/android-navigate.svg +++ /dev/null @@ -1,11 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" enable-background="new 0 0 512 512" xml:space="preserve"> -<g id="Icon_5_"> - <g> - <polygon points="256,64 96,433.062 110.938,448 256,384 401.062,448 416,433.062 "/> - </g> -</g> -</svg> diff --git a/admin/bower_components/Ionicons/src/android-notifications-none.svg b/admin/bower_components/Ionicons/src/android-notifications-none.svg deleted file mode 100644 index da9b9a6..0000000 --- a/admin/bower_components/Ionicons/src/android-notifications-none.svg +++ /dev/null @@ -1,11 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" enable-background="new 0 0 512 512" xml:space="preserve"> -<path d="M257,120.471c7.083,0,23.911,4.479,23.911,4.479c45.589,10.447,77.678,52.439,77.678,99.85v114.4v13.212l9.321,9.364 - l7.788,7.823H136.302l7.788-7.823l9.321-9.364V339.2V224.8c0-47.41,32.089-89.403,77.678-99.85c0,0,18.043-4.479,23.911-4.479 - M256,48c-17.602,0-31.059,13.518-31.059,31.2v14.559c-59.015,13.523-103.53,67.601-103.53,131.041v114.4L80,380.8v20.8h352v-20.8 - l-41.411-41.6V224.8c0-63.44-44.516-117.518-103.53-131.041V79.2C287.059,61.518,273.602,48,256,48L256,48z M297.411,422.4h-82.823 - c0,22.881,18.633,41.6,41.412,41.6S297.411,445.281,297.411,422.4L297.411,422.4z"/> -</svg> diff --git a/admin/bower_components/Ionicons/src/android-notifications-off.svg b/admin/bower_components/Ionicons/src/android-notifications-off.svg deleted file mode 100644 index 5b65dd8..0000000 --- a/admin/bower_components/Ionicons/src/android-notifications-off.svg +++ /dev/null @@ -1,13 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" enable-background="new 0 0 512 512" xml:space="preserve"> -<g> - <path d="M256,463.656c22.814,0,41.475-18.656,41.475-41.656h-82.95C214.525,445,233.186,463.656,256,463.656z"/> - <path d="M131.083,107.172l0.053,0.074L98.09,74.277L74.004,98.383l63.042,63.153C126.888,180.521,121,202.196,121,225.07v114.555 - l-41,41.656V402h297.743l36.182,36.33l24.079-24.301L425.9,402h0.316L131.083,107.172z"/> - <path d="M391,225.07c0-63.526-45-117.677-104-131.218V79.274c0-17.706-13.371-31.243-31-31.243c-17.628,0-31,13.537-31,31.243 - v14.578c-15,3.438-29.048,9.501-41.75,17.663L391,319.355V225.07z"/> -</g> -</svg> diff --git a/admin/bower_components/Ionicons/src/android-notifications.svg b/admin/bower_components/Ionicons/src/android-notifications.svg deleted file mode 100644 index eb28dd2..0000000 --- a/admin/bower_components/Ionicons/src/android-notifications.svg +++ /dev/null @@ -1,9 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" enable-background="new 0 0 512 512" xml:space="preserve"> -<path d="M256,464c22.779,0,41.411-18.719,41.411-41.6h-82.823C214.588,445.281,233.221,464,256,464z M390.589,339.2V224.8 - c0-63.44-44.516-117.518-103.53-131.041V79.2c0-17.682-13.457-31.2-31.059-31.2s-31.059,13.518-31.059,31.2v14.559 - c-59.015,13.523-103.53,67.601-103.53,131.041v114.4L80,380.8v20.8h352v-20.8L390.589,339.2z"/> -</svg> diff --git a/admin/bower_components/Ionicons/src/android-open.svg b/admin/bower_components/Ionicons/src/android-open.svg deleted file mode 100644 index b004029..0000000 --- a/admin/bower_components/Ionicons/src/android-open.svg +++ /dev/null @@ -1,9 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" enable-background="new 0 0 512 512" xml:space="preserve"> -<path d="M405.34,405.332H106.66V106.668H240V64H106.66C83.191,64,64,83.197,64,106.668v298.664C64,428.803,83.191,448,106.66,448 - h298.68c23.469,0,42.66-19.197,42.66-42.668V272h-42.66V405.332z M288,64v42.668h87.474L159.999,322.133l29.866,29.866 - l215.476-215.47V224H448V64H288z"/> -</svg> diff --git a/admin/bower_components/Ionicons/src/android-options.svg b/admin/bower_components/Ionicons/src/android-options.svg deleted file mode 100644 index e95040b..0000000 --- a/admin/bower_components/Ionicons/src/android-options.svg +++ /dev/null @@ -1,26 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" enable-background="new 0 0 512 512" xml:space="preserve"> -<g> - <g> - <rect x="32" y="384" width="272" height="32"/> - <rect x="400" y="384" width="80" height="32"/> - <path d="M384,447.5c0,17.949-14.327,32.5-32,32.5l0,0c-17.673,0-32-14.551-32-32.5v-95c0-17.949,14.327-32.5,32-32.5l0,0 - c17.673,0,32,14.551,32,32.5V447.5z"/> - </g> - <g> - <rect x="32" y="240" width="80" height="32"/> - <rect x="208" y="240" width="272" height="32"/> - <path d="M192,303.5c0,17.949-14.327,32.5-32,32.5l0,0c-17.673,0-32-14.551-32-32.5v-95c0-17.949,14.327-32.5,32-32.5l0,0 - c17.673,0,32,14.551,32,32.5V303.5z"/> - </g> - <g> - <rect x="32" y="96" width="272" height="32"/> - <rect x="400" y="96" width="80" height="32"/> - <path d="M384,159.5c0,17.949-14.327,32.5-32,32.5l0,0c-17.673,0-32-14.551-32-32.5v-95c0-17.949,14.327-32.5,32-32.5l0,0 - c17.673,0,32,14.551,32,32.5V159.5z"/> - </g> -</g> -</svg> diff --git a/admin/bower_components/Ionicons/src/android-people.svg b/admin/bower_components/Ionicons/src/android-people.svg deleted file mode 100644 index 0897dfd..0000000 --- a/admin/bower_components/Ionicons/src/android-people.svg +++ /dev/null @@ -1,11 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" enable-background="new 0 0 512 512" xml:space="preserve"> -<path d="M337.454,232c33.599,0,61.092-27.002,61.092-60c0-32.997-27.493-60-61.092-60s-61.09,27.003-61.09,60 - C276.364,204.998,303.855,232,337.454,232z M174.546,232c33.599,0,61.09-27.002,61.09-60c0-32.997-27.491-60-61.09-60 - s-61.092,27.003-61.092,60C113.454,204.998,140.947,232,174.546,232z M174.546,276C126.688,276,32,298.998,32,346v54h288v-54 - C320,298.998,222.401,276,174.546,276z M337.454,287.003c-6.105,0-10.325,0-17.454,0.997c23.426,17.002,32,28,32,58v54h128v-54 - C480,298.998,385.312,287.003,337.454,287.003z"/> -</svg> diff --git a/admin/bower_components/Ionicons/src/android-person-add.svg b/admin/bower_components/Ionicons/src/android-person-add.svg deleted file mode 100644 index 13f0cdc..0000000 --- a/admin/bower_components/Ionicons/src/android-person-add.svg +++ /dev/null @@ -1,17 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" enable-background="new 0 0 512 512" xml:space="preserve"> -<g> - <g> - <path d="M304,256c52.805,0,96-43.201,96-96s-43.195-96-96-96s-96,43.201-96,96S251.195,256,304,256z M304,304 - c-63.598,0-192,32.402-192,96v48h384v-48C496,336.402,367.598,304,304,304z"/> - </g> - <g id="Icon_16_"> - <g> - <path d="M112,224v-64H80v64H16v32h64v64h32v-64h64v-32H112z"/> - </g> - </g> -</g> -</svg> diff --git a/admin/bower_components/Ionicons/src/android-person.svg b/admin/bower_components/Ionicons/src/android-person.svg deleted file mode 100644 index ac083d2..0000000 --- a/admin/bower_components/Ionicons/src/android-person.svg +++ /dev/null @@ -1,10 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" enable-background="new 0 0 512 512" xml:space="preserve"> -<g> - <path d="M256,256c52.805,0,96-43.201,96-96s-43.195-96-96-96s-96,43.201-96,96S203.195,256,256,256z M256,304 - c-63.598,0-192,32.402-192,96v48h384v-48C448,336.402,319.598,304,256,304z"/> -</g> -</svg> diff --git a/admin/bower_components/Ionicons/src/android-phone-landscape.svg b/admin/bower_components/Ionicons/src/android-phone-landscape.svg deleted file mode 100644 index 1311cb6..0000000 --- a/admin/bower_components/Ionicons/src/android-phone-landscape.svg +++ /dev/null @@ -1,12 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" enable-background="new 0 0 512 512" xml:space="preserve"> -<g id="Icon_6_"> - <g> - <path d="M480,358.856V153.143C480,130.512,461.674,112,439.272,112H72.728C50.326,112,32,130.512,32,153.143v205.713 - C32,381.488,50.326,400,72.728,400h366.545C461.674,400,480,381.488,480,358.856z M112,364V148h288v216H112z"/> - </g> -</g> -</svg> diff --git a/admin/bower_components/Ionicons/src/android-phone-portrait.svg b/admin/bower_components/Ionicons/src/android-phone-portrait.svg deleted file mode 100644 index ff14182..0000000 --- a/admin/bower_components/Ionicons/src/android-phone-portrait.svg +++ /dev/null @@ -1,12 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" enable-background="new 0 0 512 512" xml:space="preserve"> -<g id="Icon_6_"> - <g> - <path d="M358.856,32H153.143C130.512,32,112,50.326,112,72.728v366.545C112,461.674,130.512,480,153.143,480h205.713 - C381.488,480,400,461.674,400,439.272V72.728C400,50.326,381.488,32,358.856,32z M364,400H148V112h216V400z"/> - </g> -</g> -</svg> diff --git a/admin/bower_components/Ionicons/src/android-pin.svg b/admin/bower_components/Ionicons/src/android-pin.svg deleted file mode 100644 index 54c59a8..0000000 --- a/admin/bower_components/Ionicons/src/android-pin.svg +++ /dev/null @@ -1,11 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" enable-background="new 0 0 512 512" xml:space="preserve"> -<g> - <path d="M256,32c-88.004,0-160,70.557-160,156.801C96,306.4,256,480,256,480s160-173.6,160-291.199C416,102.557,344.004,32,256,32z - M256,244.801c-31.996,0-57.144-24.645-57.144-56c0-31.357,25.147-56,57.144-56s57.144,24.643,57.144,56 - C313.144,220.156,287.996,244.801,256,244.801z"/> -</g> -</svg> diff --git a/admin/bower_components/Ionicons/src/android-plane.svg b/admin/bower_components/Ionicons/src/android-plane.svg deleted file mode 100644 index bbe5d47..0000000 --- a/admin/bower_components/Ionicons/src/android-plane.svg +++ /dev/null @@ -1,12 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" enable-background="new 0 0 512 512" xml:space="preserve"> -<g id="Icon_36_"> - <g> - <path d="M448,336v-40L288,192V79.2c0-17.683-14.82-31.2-32-31.2c-17.179,0-32,13.518-32,31.2V192L64,296v40l160-48v113.602 - l-48,31.199V464l80-16l80,16v-31.199l-48-31.199V288L448,336z"/> - </g> -</g> -</svg> diff --git a/admin/bower_components/Ionicons/src/android-playstore.svg b/admin/bower_components/Ionicons/src/android-playstore.svg deleted file mode 100644 index a1ad5dc..0000000 --- a/admin/bower_components/Ionicons/src/android-playstore.svg +++ /dev/null @@ -1,11 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" enable-background="new 0 0 512 512" xml:space="preserve"> -<g> - <path d="M464,152H360c0-57-46.562-103.859-104-103.859C198.562,48.141,152,95,152,152H48C66.688,368,61,464,61,464h389.999 - C450.998,464,445.311,366,464,152z M256,74.105c43.008,0,77.999,34.895,77.999,77.895H178C178,109,212.991,74.105,256,74.105z - M204,397.64V228.867l142.999,84.387L204,397.64z"/> -</g> -</svg> diff --git a/admin/bower_components/Ionicons/src/android-print.svg b/admin/bower_components/Ionicons/src/android-print.svg deleted file mode 100644 index 89fa7e0..0000000 --- a/admin/bower_components/Ionicons/src/android-print.svg +++ /dev/null @@ -1,10 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" enable-background="new 0 0 512 512" xml:space="preserve"> -<g> - <path d="M399.95,160h-287.9C76.824,160,48,188.803,48,224v138.667h79.899V448h256.201v-85.333H464V224 - C464,188.803,435.175,160,399.95,160z M352,416H160V288h192V416z M384.101,64H127.899v80h256.201V64z"/> -</g> -</svg> diff --git a/admin/bower_components/Ionicons/src/android-radio-button-off.svg b/admin/bower_components/Ionicons/src/android-radio-button-off.svg deleted file mode 100644 index 59042e3..0000000 --- a/admin/bower_components/Ionicons/src/android-radio-button-off.svg +++ /dev/null @@ -1,12 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" enable-background="new 0 0 512 512" xml:space="preserve"> -<g id="Icon_20_"> - <g> - <path d="M256,48C141.601,48,48,141.601,48,256s93.601,208,208,208s208-93.601,208-208S370.399,48,256,48z M256,422.399 - c-91.518,0-166.399-74.882-166.399-166.399S164.482,89.6,256,89.6S422.4,164.482,422.4,256S347.518,422.399,256,422.399z"/> - </g> -</g> -</svg> diff --git a/admin/bower_components/Ionicons/src/android-radio-button-on.svg b/admin/bower_components/Ionicons/src/android-radio-button-on.svg deleted file mode 100644 index 06c0235..0000000 --- a/admin/bower_components/Ionicons/src/android-radio-button-on.svg +++ /dev/null @@ -1,13 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" enable-background="new 0 0 512 512" xml:space="preserve"> -<g id="Icon_21_"> - <g> - <path d="M256,152c-57.2,0-104,46.8-104,104s46.8,104,104,104s104-46.8,104-104S313.2,152,256,152z M256,48 - C141.601,48,48,141.601,48,256s93.601,208,208,208s208-93.601,208-208S370.399,48,256,48z M256,422.4 - c-91.518,0-166.4-74.883-166.4-166.4S164.482,89.6,256,89.6S422.4,164.482,422.4,256S347.518,422.4,256,422.4z"/> - </g> -</g> -</svg> diff --git a/admin/bower_components/Ionicons/src/android-refresh.svg b/admin/bower_components/Ionicons/src/android-refresh.svg deleted file mode 100644 index 5b8867c..0000000 --- a/admin/bower_components/Ionicons/src/android-refresh.svg +++ /dev/null @@ -1,11 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" enable-background="new 0 0 512 512" xml:space="preserve"> -<g> - <path d="M256,388c-72.597,0-132-59.405-132-132c0-72.601,59.403-132,132-132c36.3,0,69.299,15.4,92.406,39.601L278,234h154V80 - l-51.698,51.702C348.406,99.798,304.406,80,256,80c-96.797,0-176,79.203-176,176s78.094,176,176,176 - c81.045,0,148.287-54.134,169.401-128H378.85C360.105,353.561,311.712,388,256,388z"/> -</g> -</svg> diff --git a/admin/bower_components/Ionicons/src/android-remove-circle.svg b/admin/bower_components/Ionicons/src/android-remove-circle.svg deleted file mode 100644 index 341b22e..0000000 --- a/admin/bower_components/Ionicons/src/android-remove-circle.svg +++ /dev/null @@ -1,10 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" enable-background="new 0 0 512 512" xml:space="preserve"> -<g> - <path d="M256,48C141.125,48,48,141.125,48,256s93.125,208,208,208s208-93.125,208-208S370.875,48,256,48z M363,277H149v-42h214V277 - z"/> -</g> -</svg> diff --git a/admin/bower_components/Ionicons/src/android-remove.svg b/admin/bower_components/Ionicons/src/android-remove.svg deleted file mode 100644 index d3cacf5..0000000 --- a/admin/bower_components/Ionicons/src/android-remove.svg +++ /dev/null @@ -1,7 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" enable-background="new 0 0 512 512" xml:space="preserve"> -<rect x="96" y="235" width="320" height="42"/> -</svg> diff --git a/admin/bower_components/Ionicons/src/android-restaurant.svg b/admin/bower_components/Ionicons/src/android-restaurant.svg deleted file mode 100644 index 582e9bf..0000000 --- a/admin/bower_components/Ionicons/src/android-restaurant.svg +++ /dev/null @@ -1,17 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" enable-background="new 0 0 512 512" xml:space="preserve"> -<g id="Icon_38_"> - <g> - <g> - <path d="M164.852,279.939l61.834-60.251L73.72,71.706c-33.626,32.764-33.626,86.677,0,119.44L164.852,279.939z"/> - <path d="M312.389,241.88c33.636,14.802,80.283,4.232,113.91-29.593c41.222-40.165,49.909-98.303,17.363-128.96 - c-31.465-31.71-91.131-23.245-132.354,16.921c-34.718,33.825-45.566,79.276-30.374,110.986 - C233.195,258.802,69.382,418.407,69.382,418.407L99.759,448l149.71-145.866L399.177,448l30.374-29.593L279.842,272.538 - L312.389,241.88z"/> - </g> - </g> -</g> -</svg> diff --git a/admin/bower_components/Ionicons/src/android-sad.svg b/admin/bower_components/Ionicons/src/android-sad.svg deleted file mode 100644 index 11a9d9e..0000000 --- a/admin/bower_components/Ionicons/src/android-sad.svg +++ /dev/null @@ -1,16 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" enable-background="new 0 0 512 512" xml:space="preserve"> -<g> - <path d="M256,288c-45.443,0-83.675,26.076-102.205,64h204.41C339.675,314.076,301.443,288,256,288z"/> - <path d="M256,48C140.563,48,48,141.6,48,256c0,114.4,92.563,208,208,208s208-93.6,208-208C464,141.6,370.401,48,256,48z M256,422.4 - c-91.518,0-166.404-74.883-166.404-166.4c0-91.518,74.887-166.4,166.404-166.4S422.404,164.482,422.404,256 - C422.404,347.518,347.518,422.4,256,422.4z"/> - <path d="M328.8,235.2c17.683,0,31.201-13.518,31.201-31.2s-13.519-31.2-31.201-31.2c-17.682,0-31.2,13.518-31.2,31.2 - S311.118,235.2,328.8,235.2z"/> - <path d="M183.2,235.2c17.682,0,31.2-13.518,31.2-31.2s-13.519-31.2-31.2-31.2c-17.683,0-31.201,13.518-31.201,31.2 - S165.518,235.2,183.2,235.2z"/> -</g> -</svg> diff --git a/admin/bower_components/Ionicons/src/android-search.svg b/admin/bower_components/Ionicons/src/android-search.svg deleted file mode 100644 index ef9d3f6..0000000 --- a/admin/bower_components/Ionicons/src/android-search.svg +++ /dev/null @@ -1,19 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" enable-background="new 0 0 512 512" xml:space="preserve"> -<g id="Icon_4_"> - <g> - <g> - <g> - <path d="M337.509,305.372h-17.501l-6.571-5.486c20.791-25.232,33.922-57.054,33.922-93.257 - C347.358,127.632,283.896,64,205.135,64C127.452,64,64,127.632,64,206.629s63.452,142.628,142.225,142.628 - c35.011,0,67.831-13.167,92.991-34.008l6.561,5.487v17.551L415.18,448L448,415.086L337.509,305.372z M206.225,305.372 - c-54.702,0-98.463-43.887-98.463-98.743c0-54.858,43.761-98.742,98.463-98.742c54.7,0,98.462,43.884,98.462,98.742 - C304.687,261.485,260.925,305.372,206.225,305.372z"/> - </g> - </g> - </g> -</g> -</svg> diff --git a/admin/bower_components/Ionicons/src/android-send.svg b/admin/bower_components/Ionicons/src/android-send.svg deleted file mode 100644 index 8f80fb4..0000000 --- a/admin/bower_components/Ionicons/src/android-send.svg +++ /dev/null @@ -1,7 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" enable-background="new 0 0 512 512" xml:space="preserve"> -<polygon points="48,448 464,256 48,64 48,213.333 346,256 48,298.667 "/> -</svg> diff --git a/admin/bower_components/Ionicons/src/android-settings.svg b/admin/bower_components/Ionicons/src/android-settings.svg deleted file mode 100644 index c16b089..0000000 --- a/admin/bower_components/Ionicons/src/android-settings.svg +++ /dev/null @@ -1,19 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" enable-background="new 0 0 512 512" xml:space="preserve"> -<g> - <path d="M413.967,276.8c1.06-6.235,1.06-13.518,1.06-20.8s-1.06-13.518-1.06-20.8l44.667-34.318 - c4.26-3.118,5.319-8.317,2.13-13.518L418.215,115.6c-2.129-4.164-8.507-6.235-12.767-4.164l-53.186,20.801 - c-10.638-8.318-23.394-15.601-36.16-20.801l-7.448-55.117c-1.06-4.154-5.319-8.318-10.638-8.318h-85.098 - c-5.318,0-9.577,4.164-10.637,8.318l-8.508,55.117c-12.767,5.2-24.464,12.482-36.171,20.801l-53.186-20.801 - c-5.319-2.071-10.638,0-12.767,4.164l-42.549,71.765c-2.119,4.153-1.061,10.399,2.129,13.518L96.97,235.2 - c0,7.282-1.06,13.518-1.06,20.8s1.06,13.518,1.06,20.8l-44.668,34.318c-4.26,3.118-5.318,8.317-2.13,13.518L92.721,396.4 - c2.13,4.164,8.508,6.235,12.767,4.164l53.187-20.801c10.637,8.318,23.394,15.601,36.16,20.801l8.508,55.117 - c1.069,5.2,5.318,8.318,10.637,8.318h85.098c5.319,0,9.578-4.164,10.638-8.318l8.518-55.117c12.757-5.2,24.464-12.482,36.16-20.801 - l53.187,20.801c5.318,2.071,10.637,0,12.767-4.164l42.549-71.765c2.129-4.153,1.06-10.399-2.13-13.518L413.967,276.8z - M255.468,328.8c-41.489,0-74.46-32.235-74.46-72.8s32.971-72.8,74.46-72.8s74.461,32.235,74.461,72.8S296.957,328.8,255.468,328.8 - z"/> -</g> -</svg> diff --git a/admin/bower_components/Ionicons/src/android-share-alt.svg b/admin/bower_components/Ionicons/src/android-share-alt.svg deleted file mode 100644 index 821b4e2..0000000 --- a/admin/bower_components/Ionicons/src/android-share-alt.svg +++ /dev/null @@ -1,16 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" enable-background="new 0 0 512 512" xml:space="preserve"> -<g id="Icon_33_"> - <g> - <path d="M383.822,344.427c-16.045,0-31.024,5.326-41.721,15.979l-152.957-88.42c1.071-5.328,2.142-9.593,2.142-14.919 - c0-5.328-1.071-9.593-2.142-14.919l150.826-87.35c11.762,10.653,26.741,17.041,43.852,17.041c35.295,0,64.178-28.766,64.178-63.92 - C448,72.767,419.117,44,383.822,44c-35.297,0-64.179,28.767-64.179,63.92c0,5.327,1.065,9.593,2.142,14.919l-150.821,87.35 - c-11.767-10.654-26.741-17.041-43.856-17.041c-35.296,0-63.108,28.766-63.108,63.92c0,35.153,28.877,63.92,64.178,63.92 - c17.115,0,32.089-6.389,43.856-17.042l151.891,88.421c-1.076,4.255-2.141,8.521-2.141,13.847 - c0,34.094,27.806,61.787,62.037,61.787c34.229,0,62.036-27.693,62.036-61.787C445.858,372.12,418.052,344.427,383.822,344.427z"/> - </g> -</g> -</svg> diff --git a/admin/bower_components/Ionicons/src/android-share.svg b/admin/bower_components/Ionicons/src/android-share.svg deleted file mode 100644 index a38c4ab..0000000 --- a/admin/bower_components/Ionicons/src/android-share.svg +++ /dev/null @@ -1,12 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" enable-background="new 0 0 512 512" xml:space="preserve"> -<g id="Icon_17_"> - <g> - <path d="M448,248L288,96v85.334C138.666,202.667,85.333,309.334,64,416c53.333-74.666,117.333-108.802,224-108.802v87.469L448,248 - z"/> - </g> -</g> -</svg> diff --git a/admin/bower_components/Ionicons/src/android-star-half.svg b/admin/bower_components/Ionicons/src/android-star-half.svg deleted file mode 100644 index 53a14d0..0000000 --- a/admin/bower_components/Ionicons/src/android-star-half.svg +++ /dev/null @@ -1,9 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" enable-background="new 0 0 512 512" xml:space="preserve"> -<path d="M458,210.409l-145.267-12.476L256,64l-56.743,133.934L54,210.409l110.192,95.524L131.161,448L256,372.686L380.83,448 - l-33.021-142.066L458,210.409z M272.531,345.287L256,335.313l-0.002-189.277l27.27,64.379l7.52,17.751l19.208,1.65l69.846,5.998 - l-52.993,45.939l-14.576,12.636l4.367,18.788l15.875,68.299L272.531,345.287z"/> -</svg> diff --git a/admin/bower_components/Ionicons/src/android-star-outline.svg b/admin/bower_components/Ionicons/src/android-star-outline.svg deleted file mode 100644 index 3a14312..0000000 --- a/admin/bower_components/Ionicons/src/android-star-outline.svg +++ /dev/null @@ -1,10 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" enable-background="new 0 0 512 512" xml:space="preserve"> -<path d="M458,210.409l-145.267-12.476L256,64l-56.743,133.934L54,210.409l110.192,95.524L131.161,448L256,372.686L380.83,448 - l-33.021-142.066L458,210.409z M272.531,345.286L256,335.312l-16.53,9.973l-59.988,36.191l15.879-68.296l4.369-18.79l-14.577-12.637 - l-52.994-45.939l69.836-5.998l19.206-1.65l7.521-17.75l27.276-64.381l27.27,64.379l7.52,17.751l19.208,1.65l69.846,5.998 - l-52.993,45.939l-14.576,12.636l4.367,18.788l15.875,68.299L272.531,345.286z"/> -</svg> diff --git a/admin/bower_components/Ionicons/src/android-star.svg b/admin/bower_components/Ionicons/src/android-star.svg deleted file mode 100644 index 4e0265f..0000000 --- a/admin/bower_components/Ionicons/src/android-star.svg +++ /dev/null @@ -1,10 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" enable-background="new 0 0 512 512" xml:space="preserve"> -<g> - <polygon points="256,372.686 380.83,448 347.809,305.934 458,210.409 312.733,197.934 256,64 199.257,197.934 54,210.409 - 164.192,305.934 131.161,448 "/> -</g> -</svg> diff --git a/admin/bower_components/Ionicons/src/android-stopwatch.svg b/admin/bower_components/Ionicons/src/android-stopwatch.svg deleted file mode 100644 index 93a6fd4..0000000 --- a/admin/bower_components/Ionicons/src/android-stopwatch.svg +++ /dev/null @@ -1,21 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" enable-background="new 0 0 512 512" xml:space="preserve"> -<g> - <g id="Icon_7_"> - <g> - <path d="M232,306.667h48V176h-48V306.667z"/> - </g> - </g> - <g> - <path d="M407.67,170.271l30.786-30.786l-33.942-33.941l-30.785,30.786C341.217,111.057,300.369,96,256,96 - C149.961,96,64,181.961,64,288s85.961,192,192,192s192-85.961,192-192C448,243.631,432.943,202.783,407.67,170.271z - M362.066,394.066C333.734,422.398,296.066,438,256,438s-77.735-15.602-106.066-43.934C121.602,365.735,106,328.066,106,288 - s15.602-77.735,43.934-106.066C178.265,153.602,215.934,138,256,138s77.734,15.602,106.066,43.934 - C390.398,210.265,406,247.934,406,288S390.398,365.735,362.066,394.066z"/> - <rect x="192" y="32" width="128" height="48"/> - </g> -</g> -</svg> diff --git a/admin/bower_components/Ionicons/src/android-subway.svg b/admin/bower_components/Ionicons/src/android-subway.svg deleted file mode 100644 index ad49784..0000000 --- a/admin/bower_components/Ionicons/src/android-subway.svg +++ /dev/null @@ -1,13 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" enable-background="new 0 0 512 512" xml:space="preserve"> -<g> - <path d="M256,48c-93.864,0-176,10.668-176,85.334v213.332c0,41.604,33.062,74.666,74.667,74.666L128,448v16h256v-16l-26.667-26.668 - c41.604,0,74.667-33.062,74.667-74.666V133.334C432,58.668,349.864,48,256,48z M160,384c-18.136,0-32-13.865-32-32 - c0-18.137,13.864-32,32-32s32,13.863,32,32C192,370.135,178.136,384,160,384z M240,240H128v-96h112V240z M352,384 - c-18.136,0-32-13.865-32-32c0-18.137,13.864-32,32-32s32,13.863,32,32C384,370.135,370.136,384,352,384z M384,240H272v-96h112V240z - "/> -</g> -</svg> diff --git a/admin/bower_components/Ionicons/src/android-sunny.svg b/admin/bower_components/Ionicons/src/android-sunny.svg deleted file mode 100644 index c40c580..0000000 --- a/admin/bower_components/Ionicons/src/android-sunny.svg +++ /dev/null @@ -1,18 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" enable-background="new 0 0 512 512" xml:space="preserve"> -<g id="Icon_27_"> - <g> - <path d="M256,160c25.499,0,49.567,10.025,67.771,28.229C341.975,206.433,352,230.501,352,256s-10.025,49.567-28.229,67.771 - C305.567,341.975,281.499,352,256,352s-49.567-10.025-67.771-28.229C170.025,305.567,160,281.499,160,256 - s10.025-49.567,28.229-67.771C206.433,170.025,230.501,160,256,160 M277.333,32h-42.666v64h42.666V32L277.333,32z M406.396,75.729 - L368,114.135L397.864,144l38.406-38.396L406.396,75.729L406.396,75.729z M105.604,75.729l-29.875,29.875L114.136,144L144,114.135 - L105.604,75.729L105.604,75.729z M256,128c-70.396,0-128,57.604-128,128s57.604,128,128,128s128-57.604,128-128 - S326.396,128,256,128L256,128z M480,234.666h-64v42.668h64V234.666L480,234.666z M96,234.666H32v42.668h64V234.666L96,234.666z - M397.864,368L368,397.865l38.396,38.406l29.875-29.875L397.864,368L397.864,368z M114.136,368l-38.406,38.396l29.875,29.875 - L144,397.865L114.136,368L114.136,368z M277.333,416h-42.666v64c6.396,0,42.666,0,42.666,0V416L277.333,416z"/> - </g> -</g> -</svg> diff --git a/admin/bower_components/Ionicons/src/android-sync.svg b/admin/bower_components/Ionicons/src/android-sync.svg deleted file mode 100644 index d91eeec..0000000 --- a/admin/bower_components/Ionicons/src/android-sync.svg +++ /dev/null @@ -1,10 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" enable-background="new 0 0 512 512" xml:space="preserve"> -<path d="M256,93.09V32l-80,81.454l80,81.456v-61.093c65.996,0,120,54.982,120,122.183c0,20.363-5,39.714-14.004,57.016L391,342.547 - c15.996-25.457,25-54.988,25-86.547C416,166.401,343.998,93.09,256,93.09z M256,378.184c-66.001,0-120-54.988-120-122.184 - c0-20.363,5-39.709,13.999-57.02L121,169.454C104.999,193.89,96,224.436,96,256c0,89.599,72.002,162.91,160,162.91V480l80-81.453 - l-80-81.457V378.184z"/> -</svg> diff --git a/admin/bower_components/Ionicons/src/android-textsms.svg b/admin/bower_components/Ionicons/src/android-textsms.svg deleted file mode 100644 index 294516b..0000000 --- a/admin/bower_components/Ionicons/src/android-textsms.svg +++ /dev/null @@ -1,10 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" enable-background="new 0 0 512 512" xml:space="preserve"> -<g> - <path d="M408,64H96c-22.002,0-32,17.998-32,40v344l64-64h280c22.002,0,40-17.998,40-40V104C448,81.998,430.002,64,408,64z - M198.4,242H160v-40h38.4V242z M275.2,242h-38.4v-40h38.4V242z M352,242h-38.4v-40H352V242z"/> -</g> -</svg> diff --git a/admin/bower_components/Ionicons/src/android-time.svg b/admin/bower_components/Ionicons/src/android-time.svg deleted file mode 100644 index 929b237..0000000 --- a/admin/bower_components/Ionicons/src/android-time.svg +++ /dev/null @@ -1,15 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" enable-background="new 0 0 512 512" xml:space="preserve"> -<g id="Icon_1_"> - <g> - <g> - <path fill-opacity="0.9" d="M256,43C137.789,43,43,138.851,43,256s94.789,213,213,213s213-95.851,213-213S373.149,43,256,43z - M256,426.4c-93.718,0-170.4-76.683-170.4-170.4S162.282,85.6,256,85.6S426.4,162.282,426.4,256S349.718,426.4,256,426.4z"/> - </g> - <polygon fill-opacity="0.9" points="266.65,149.5 234.7,149.5 234.7,277.3 346.525,344.393 362.5,317.768 266.65,261.324 "/> - </g> -</g> -</svg> diff --git a/admin/bower_components/Ionicons/src/android-train.svg b/admin/bower_components/Ionicons/src/android-train.svg deleted file mode 100644 index 1cd6da6..0000000 --- a/admin/bower_components/Ionicons/src/android-train.svg +++ /dev/null @@ -1,15 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" enable-background="new 0 0 512 512" xml:space="preserve"> -<g id="Icon_35_"> - <g> - <g> - <path d="M80,346.666c0,41.604,33.062,74.666,74.667,74.666L128,448v16h256v-16l-26.667-26.668 - c41.604,0,74.667-33.062,74.667-74.666V133.334C432,58.668,349.864,48,256,48S80,58.668,80,133.334V346.666z M256,376 - c-22.002,0-40-17.997-40-39.999S233.998,296,256,296s40,17.999,40,40.001S278.002,376,256,376z M384,224H128v-96h256V224z"/> - </g> - </g> -</g> -</svg> diff --git a/admin/bower_components/Ionicons/src/android-unlock.svg b/admin/bower_components/Ionicons/src/android-unlock.svg deleted file mode 100644 index 6b816ac..0000000 --- a/admin/bower_components/Ionicons/src/android-unlock.svg +++ /dev/null @@ -1,10 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" enable-background="new 0 0 512 512" xml:space="preserve"> -<path d="M376,186h-20v-40c0-55-45-100-100-100S156,91,156,146h37.998c0-34.004,28.003-62.002,62.002-62.002 - c34.004,0,62.002,27.998,62.002,62.002H318v40H136c-22.002,0-40,17.998-40,40v200c0,22.002,17.998,40,40,40h240 - c22.002,0,40-17.998,40-40V226C416,203.998,398.002,186,376,186z M256,368c-22.002,0-40-17.998-40-40s17.998-40,40-40 - s40,17.998,40,40S278.002,368,256,368z"/> -</svg> diff --git a/admin/bower_components/Ionicons/src/android-upload.svg b/admin/bower_components/Ionicons/src/android-upload.svg deleted file mode 100644 index ed7edd2..0000000 --- a/admin/bower_components/Ionicons/src/android-upload.svg +++ /dev/null @@ -1,9 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" enable-background="new 0 0 512 512" xml:space="preserve"> -<path d="M403.002,217.001C388.998,148.002,328.998,96,256,96c-57.998,0-107.998,32.998-132.998,81.001 - C63.002,183.002,16,233.998,16,296c0,65.996,53.999,120,120,120h260c55,0,100-45,100-100 - C496,263.002,455.004,219.999,403.002,217.001z M288,276v76h-64v-76h-68l100-100l100,100H288z"/> -</svg> diff --git a/admin/bower_components/Ionicons/src/android-volume-down.svg b/admin/bower_components/Ionicons/src/android-volume-down.svg deleted file mode 100644 index ceac980..0000000 --- a/admin/bower_components/Ionicons/src/android-volume-down.svg +++ /dev/null @@ -1,8 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" enable-background="new 0 0 512 512" xml:space="preserve"> -<path d="M64,192v128h85.334L256,431.543V80.458L149.334,192H64z M352,256c0-38.399-21.333-72.407-53.333-88.863v176.636 - C330.667,328.408,352,294.4,352,256z"/> -</svg> diff --git a/admin/bower_components/Ionicons/src/android-volume-mute.svg b/admin/bower_components/Ionicons/src/android-volume-mute.svg deleted file mode 100644 index 6cb847b..0000000 --- a/admin/bower_components/Ionicons/src/android-volume-mute.svg +++ /dev/null @@ -1,7 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" enable-background="new 0 0 512 512" xml:space="preserve"> -<path d="M64,192v128h85.334L256,431.543V80.458L149.334,192H64z"/> -</svg> diff --git a/admin/bower_components/Ionicons/src/android-volume-off.svg b/admin/bower_components/Ionicons/src/android-volume-off.svg deleted file mode 100644 index 6343a13..0000000 --- a/admin/bower_components/Ionicons/src/android-volume-off.svg +++ /dev/null @@ -1,15 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" enable-background="new 0 0 512 512" xml:space="preserve"> -<g> - <path d="M405.5,256c0,22.717-4.883,44.362-13.603,63.855l31.88,31.88C439.283,323.33,448,290.653,448,256 - c0-93.256-64-172.254-149-192v44.978C361,127.632,405.5,186.882,405.5,256z"/> - <polygon points="256,80.458 204.979,132.938 256,183.957 "/> - <path d="M420.842,396.885L91.116,67.157l-24,24l90.499,90.413l-8.28,10.43H64v128h85.334L256,431.543V280l94.915,94.686 - C335.795,387.443,318,397.213,299,403.022V448c31-7.172,58.996-22.163,82.315-42.809l39.61,39.693l24-24.043l-24.002-24.039 - L420.842,396.885z"/> - <path d="M352.188,256c0-38.399-21.188-72.407-53.188-88.863v59.82l50.801,50.801C351.355,270.739,352.188,263.454,352.188,256z"/> -</g> -</svg> diff --git a/admin/bower_components/Ionicons/src/android-volume-up.svg b/admin/bower_components/Ionicons/src/android-volume-up.svg deleted file mode 100644 index 0a8b8b5..0000000 --- a/admin/bower_components/Ionicons/src/android-volume-up.svg +++ /dev/null @@ -1,9 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" enable-background="new 0 0 512 512" xml:space="preserve"> -<path d="M64,192v128h85.334L256,431.543V80.458L149.334,192H64z M352,256c0-38.399-21.333-72.407-53.333-88.863v176.636 - C330.667,328.408,352,294.4,352,256z M298.667,64v44.978C360.531,127.632,405.334,186.882,405.334,256 - c0,69.119-44.803,128.369-106.667,147.022V448C384,428.254,448,349.257,448,256C448,162.744,384,83.746,298.667,64z"/> -</svg> diff --git a/admin/bower_components/Ionicons/src/android-walk.svg b/admin/bower_components/Ionicons/src/android-walk.svg deleted file mode 100644 index 5559663..0000000 --- a/admin/bower_components/Ionicons/src/android-walk.svg +++ /dev/null @@ -1,12 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" enable-background="new 0 0 512 512" xml:space="preserve"> -<g> - <path d="M288,112c22.223,0,39.997-17.776,39.997-40c0-22.225-17.774-40-39.997-40s-40.003,17.775-40.003,40 - C247.997,94.224,265.777,112,288,112z"/> - <path d="M288,232h104v-40h-72l-44.802-69.333c-7.698-11.667-18.136-18.136-30.933-18.136c-3.198,0-8.828,0.531-12.799,1.747 - L120,144v112h40v-80l40.531-16L120,480h40l56.698-164.271L267,384v96h38V352l-57.031-96l19.745-61.864L288,232z"/> -</g> -</svg> diff --git a/admin/bower_components/Ionicons/src/android-warning.svg b/admin/bower_components/Ionicons/src/android-warning.svg deleted file mode 100644 index 1525a3e..0000000 --- a/admin/bower_components/Ionicons/src/android-warning.svg +++ /dev/null @@ -1,11 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" enable-background="new 0 0 512 512" xml:space="preserve"> -<g id="Icon_31_"> - <g> - <path d="M32,464h448L256,48L32,464z M280,400h-48v-48h48V400z M280,320h-48v-96h48V320z"/> - </g> -</g> -</svg> diff --git a/admin/bower_components/Ionicons/src/android-watch.svg b/admin/bower_components/Ionicons/src/android-watch.svg deleted file mode 100644 index 6ecfdf7..0000000 --- a/admin/bower_components/Ionicons/src/android-watch.svg +++ /dev/null @@ -1,15 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" enable-background="new 0 0 512 512" xml:space="preserve"> -<g id="Icon_11_"> - <g> - <g> - <path d="M416,256c0-51.001-24.004-96.001-60.996-125L336,16H176l-19.004,115C120.004,159.999,96,204.999,96,256 - c0,50.996,24.004,95.996,60.996,125L176,496h160l19.004-115C391.996,351.996,416,306.996,416,256z M136,256 - c0-66.001,54.004-120,120-120s120,53.999,120,120c0,65.996-54.004,120-120,120S136,321.996,136,256z"/> - </g> - </g> -</g> -</svg> diff --git a/admin/bower_components/Ionicons/src/android-wifi.svg b/admin/bower_components/Ionicons/src/android-wifi.svg deleted file mode 100644 index 7361542..0000000 --- a/admin/bower_components/Ionicons/src/android-wifi.svg +++ /dev/null @@ -1,14 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" enable-background="new 0 0 512 512" xml:space="preserve"> -<path d="M256,228.719c-22.879,0-41.597,18.529-41.597,41.18c0,22.652,18.718,41.182,41.597,41.182 - c22.878,0,41.597-18.529,41.597-41.182C297.597,247.248,278.878,228.719,256,228.719z M380.8,269.898 - c0-67.946-56.163-123.539-124.8-123.539s-124.8,55.593-124.8,123.539c0,45.303,24.961,85.447,62.396,107.072l20.807-36.032 - c-24.972-14.417-41.604-40.153-41.604-71.04c0-45.295,37.433-82.358,83.201-82.358c45.771,0,83.201,37.063,83.201,82.358 - c0,30.887-16.633,56.623-41.604,71.04l20.807,36.032C355.837,355.346,380.8,315.201,380.8,269.898z M256,64 - C141.597,64,48,156.654,48,269.898C48,346.085,89.592,411.968,152,448l20.799-36.032c-49.919-28.824-83.207-81.324-83.207-142.069 - c0-90.593,74.891-164.718,166.408-164.718c91.517,0,166.406,74.125,166.406,164.718c0,60.745-33.284,114.271-83.205,142.069L360,448 - c62.406-36.032,104-101.915,104-178.102C464,156.654,370.403,64,256,64z"/> -</svg> diff --git a/admin/bower_components/Ionicons/src/aperture.svg b/admin/bower_components/Ionicons/src/aperture.svg deleted file mode 100644 index 41cf7eb..0000000 --- a/admin/bower_components/Ionicons/src/aperture.svg +++ /dev/null @@ -1,20 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" enable-background="new 0 0 512 512" xml:space="preserve"> -<g> - <path d="M256,32C132.288,32,32,132.288,32,256s100.288,224,224,224s224-100.288,224-224S379.712,32,256,32z M391.765,391.765 - C355.5,428.028,307.285,448,256,448s-99.5-19.972-135.765-56.235C83.972,355.5,64,307.285,64,256s19.972-99.5,56.235-135.765 - C156.5,83.972,204.715,64,256,64s99.5,19.972,135.765,56.235C428.028,156.5,448,204.715,448,256S428.028,355.5,391.765,391.765z"/> - <g> - <path d="M200.043,106.067c-40.631,15.171-73.434,46.382-90.717,85.933H256L200.043,106.067z"/> - <path d="M412.797,288c2.099-10.34,3.203-21.041,3.203-32c0-36.624-12.314-70.367-33.016-97.334L311,288H412.797z"/> - <path d="M359.973,134.395C332.007,110.461,295.694,96,256,96c-7.966,0-15.794,0.591-23.448,1.715L310.852,224L359.973,134.395z"/> - <path d="M99.204,224C97.104,234.34,96,245.041,96,256c0,36.639,12.324,70.394,33.041,97.366L201,224H99.204z"/> - <path d="M311.959,405.932c40.631-15.171,73.433-46.382,90.715-85.932H256L311.959,405.932z"/> - <path d="M152.046,377.621C180.009,401.545,216.314,416,256,416c7.969,0,15.799-0.592,23.456-1.716L201.164,288L152.046,377.621z" - /> - </g> -</g> -</svg> diff --git a/admin/bower_components/Ionicons/src/archive.svg b/admin/bower_components/Ionicons/src/archive.svg deleted file mode 100644 index 44eb44b..0000000 --- a/admin/bower_components/Ionicons/src/archive.svg +++ /dev/null @@ -1,12 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" style="enable-background:new 0 0 512 512;" xml:space="preserve"> -<g> - <polygon points="256,307.7 384,192 304,192 304,96 207.6,96 207.6,192 128,192 "/> - <path d="M465.4,297.2l-71.4-55h-42l62,61.8h-50.6c-2.3,0-4.3,1.2-5.4,2.9l-18.4,45.5H172.1l-18.4-45.5c-1-1.8-3.1-2.9-5.4-2.9H97.8 - l62.2-61.8h-42.2l-71.4,55c-10.6,6.2-15.8,19-14.1,31.6l8.7,66.9c2.3,13.1,9.7,20.3,28.1,20.3h373.8c19.1,0,25.8-7.6,28.1-20.3 - l8.7-66.9C481.4,315.9,476,303.4,465.4,297.2z"/> -</g> -</svg> diff --git a/admin/bower_components/Ionicons/src/arrow-down-a.svg b/admin/bower_components/Ionicons/src/arrow-down-a.svg deleted file mode 100644 index 7d476ca..0000000 --- a/admin/bower_components/Ionicons/src/arrow-down-a.svg +++ /dev/null @@ -1,7 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" style="enable-background:new 0 0 512 512;" xml:space="preserve"> -<polygon points="256.5,448.5 448.5,256.5 336.5,256.5 336.5,64.5 176.5,64.5 176.5,256.5 64.5,256.5 "/> -</svg> diff --git a/admin/bower_components/Ionicons/src/arrow-down-b.svg b/admin/bower_components/Ionicons/src/arrow-down-b.svg deleted file mode 100644 index 247b81f..0000000 --- a/admin/bower_components/Ionicons/src/arrow-down-b.svg +++ /dev/null @@ -1,8 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" style="enable-background:new 0 0 512 512;" xml:space="preserve"> -<path d="M98.9,184.7l1.8,2.1l136,156.5c4.6,5.3,11.5,8.6,19.2,8.6c7.7,0,14.6-3.4,19.2-8.6L411,187.1l2.3-2.6 - c1.7-2.5,2.7-5.5,2.7-8.7c0-8.7-7.4-15.8-16.6-15.8v0H112.6v0c-9.2,0-16.6,7.1-16.6,15.8C96,179.1,97.1,182.2,98.9,184.7z"/> -</svg> diff --git a/admin/bower_components/Ionicons/src/arrow-down-c.svg b/admin/bower_components/Ionicons/src/arrow-down-c.svg deleted file mode 100644 index d8ef45b..0000000 --- a/admin/bower_components/Ionicons/src/arrow-down-c.svg +++ /dev/null @@ -1,9 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" style="enable-background:new 0 0 512 512;" xml:space="preserve"> -<path d="M383.6,322.7L278.6,423c-5.8,6-13.7,9-22.4,9c-8.7,0-16.5-3-22.4-9L128.4,322.7c-12.5-11.9-12.5-31.3,0-43.2 - c12.5-11.9,32.7-11.9,45.2,0l50.4,48.2v-217c0-16.9,14.3-30.6,32-30.6c17.7,0,32,13.7,32,30.6v217l50.4-48.2 - c12.5-11.9,32.7-11.9,45.2,0C396.1,291.4,396.1,310.7,383.6,322.7z"/> -</svg> diff --git a/admin/bower_components/Ionicons/src/arrow-expand.svg b/admin/bower_components/Ionicons/src/arrow-expand.svg deleted file mode 100644 index 268973d..0000000 --- a/admin/bower_components/Ionicons/src/arrow-expand.svg +++ /dev/null @@ -1,12 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" style="enable-background:new 0 0 512 512;" xml:space="preserve"> -<g> - <polygon points="274,209.7 337.9,145.9 288,96 416,96 416,224 366.1,174.1 302.3,238 "/> - <polygon points="274,302.3 337.9,366.1 288,416 416,416 416,288 366.1,337.9 302.3,274 "/> - <polygon points="238,302.3 174.1,366.1 224,416 96,416 96,288 145.9,337.9 209.7,274 "/> - <polygon points="238,209.7 174.1,145.9 224,96 96,96 96,224 145.9,174.1 209.7,238 "/> -</g> -</svg> diff --git a/admin/bower_components/Ionicons/src/arrow-graph-down-left.svg b/admin/bower_components/Ionicons/src/arrow-graph-down-left.svg deleted file mode 100644 index 85f8dce..0000000 --- a/admin/bower_components/Ionicons/src/arrow-graph-down-left.svg +++ /dev/null @@ -1,7 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" style="enable-background:new 0 0 512 512;" xml:space="preserve"> -<polygon points="32,384 32,224 92.8,284.8 223.7,144 330.7,256 480,128 330.7,330.7 223.7,224 130.2,322.2 192,384 "/> -</svg> diff --git a/admin/bower_components/Ionicons/src/arrow-graph-down-right.svg b/admin/bower_components/Ionicons/src/arrow-graph-down-right.svg deleted file mode 100644 index bd77539..0000000 --- a/admin/bower_components/Ionicons/src/arrow-graph-down-right.svg +++ /dev/null @@ -1,7 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" style="enable-background:new 0 0 512 512;" xml:space="preserve"> -<polygon points="320,384 381.8,322.2 288.3,224 181.3,330.7 32,128 181.3,256 288.3,144 419.2,284.8 480,224 480,384 "/> -</svg> diff --git a/admin/bower_components/Ionicons/src/arrow-graph-up-left.svg b/admin/bower_components/Ionicons/src/arrow-graph-up-left.svg deleted file mode 100644 index 57ea68c..0000000 --- a/admin/bower_components/Ionicons/src/arrow-graph-up-left.svg +++ /dev/null @@ -1,7 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" style="enable-background:new 0 0 512 512;" xml:space="preserve"> -<polygon points="192,128 130.2,189.8 223.7,288 330.7,181.3 480,384 330.7,256 223.7,368 92.8,227.2 32,288 32,128 "/> -</svg> diff --git a/admin/bower_components/Ionicons/src/arrow-graph-up-right.svg b/admin/bower_components/Ionicons/src/arrow-graph-up-right.svg deleted file mode 100644 index 689af44..0000000 --- a/admin/bower_components/Ionicons/src/arrow-graph-up-right.svg +++ /dev/null @@ -1,7 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" style="enable-background:new 0 0 512 512;" xml:space="preserve"> -<polygon points="320,128 381.8,189.8 288.3,288 181.3,181.3 32,384 181.3,256 288.3,368 419.2,227.2 480,288 480,128 "/> -</svg> diff --git a/admin/bower_components/Ionicons/src/arrow-left-a.svg b/admin/bower_components/Ionicons/src/arrow-left-a.svg deleted file mode 100644 index ad3fb71..0000000 --- a/admin/bower_components/Ionicons/src/arrow-left-a.svg +++ /dev/null @@ -1,7 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" style="enable-background:new 0 0 512 512;" xml:space="preserve"> -<polygon points="64.5,256.5 256.5,448.5 256.5,336.5 448.5,336.5 448.5,176.5 256.5,176.5 256.5,64.5 "/> -</svg> diff --git a/admin/bower_components/Ionicons/src/arrow-left-b.svg b/admin/bower_components/Ionicons/src/arrow-left-b.svg deleted file mode 100644 index 43602db..0000000 --- a/admin/bower_components/Ionicons/src/arrow-left-b.svg +++ /dev/null @@ -1,8 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" style="enable-background:new 0 0 512 512;" xml:space="preserve"> -<path d="M327.3,98.9l-2.1,1.8l-156.5,136c-5.3,4.6-8.6,11.5-8.6,19.2c0,7.7,3.4,14.6,8.6,19.2L324.9,411l2.6,2.3 - c2.5,1.7,5.5,2.7,8.7,2.7c8.7,0,15.8-7.4,15.8-16.6h0V112.6h0c0-9.2-7.1-16.6-15.8-16.6C332.9,96,329.8,97.1,327.3,98.9z"/> -</svg> diff --git a/admin/bower_components/Ionicons/src/arrow-left-c.svg b/admin/bower_components/Ionicons/src/arrow-left-c.svg deleted file mode 100644 index 98e6e3f..0000000 --- a/admin/bower_components/Ionicons/src/arrow-left-c.svg +++ /dev/null @@ -1,9 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" style="enable-background:new 0 0 512 512;" xml:space="preserve"> -<path d="M189.3,128.4L89,233.4c-6,5.8-9,13.7-9,22.4c0,8.7,3,16.5,9,22.4l100.3,105.4c11.9,12.5,31.3,12.5,43.2,0 - c11.9-12.5,11.9-32.7,0-45.2L184.4,288h217c16.9,0,30.6-14.3,30.6-32c0-17.7-13.7-32-30.6-32h-217l48.2-50.4 - c11.9-12.5,11.9-32.7,0-45.2C220.6,115.9,201.3,115.9,189.3,128.4z"/> -</svg> diff --git a/admin/bower_components/Ionicons/src/arrow-move.svg b/admin/bower_components/Ionicons/src/arrow-move.svg deleted file mode 100644 index d965110..0000000 --- a/admin/bower_components/Ionicons/src/arrow-move.svg +++ /dev/null @@ -1,8 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" style="enable-background:new 0 0 512 512;" xml:space="preserve"> -<polygon points="480,256 384,160 384,236 276,236 276,128 352,128 256,32 160,128 236,128 236,236 128,236 128,160 32,256 128,352 - 128,276 236,276 236,384 160,384 256,480 352,384 275.8,384 275.4,275.5 384,275.8 384,352 "/> -</svg> diff --git a/admin/bower_components/Ionicons/src/arrow-resize.svg b/admin/bower_components/Ionicons/src/arrow-resize.svg deleted file mode 100644 index 24feb25..0000000 --- a/admin/bower_components/Ionicons/src/arrow-resize.svg +++ /dev/null @@ -1,8 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" style="enable-background:new 0 0 512 512;" xml:space="preserve"> -<polygon points="288,96 337.9,145.9 274,209.7 274,209.7 145.9,337.9 96,288 96,416 224,416 174.1,366.1 357.4,182.9 366.1,174.1 - 416,224 416,96 "/> -</svg> diff --git a/admin/bower_components/Ionicons/src/arrow-return-left.svg b/admin/bower_components/Ionicons/src/arrow-return-left.svg deleted file mode 100644 index a2dbb86..0000000 --- a/admin/bower_components/Ionicons/src/arrow-return-left.svg +++ /dev/null @@ -1,8 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" style="enable-background:new 0 0 512 512;" xml:space="preserve"> -<path d="M192,96v64h248c4.4,0,8,3.6,8,8v240c0,4.4-3.6,8-8,8H136c-4.4,0-8-3.6-8-8v-48c0-4.4,3.6-8,8-8h248V224H192v64L64,192 - L192,96z"/> -</svg> diff --git a/admin/bower_components/Ionicons/src/arrow-return-right.svg b/admin/bower_components/Ionicons/src/arrow-return-right.svg deleted file mode 100644 index 79deb8b..0000000 --- a/admin/bower_components/Ionicons/src/arrow-return-right.svg +++ /dev/null @@ -1,8 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" style="enable-background:new 0 0 512 512;" xml:space="preserve"> -<path d="M448,192l-128,96v-64H128v128h248c4.4,0,8,3.6,8,8v48c0,4.4-3.6,8-8,8H72c-4.4,0-8-3.6-8-8V168c0-4.4,3.6-8,8-8h248V96 - L448,192z"/> -</svg> diff --git a/admin/bower_components/Ionicons/src/arrow-right-a.svg b/admin/bower_components/Ionicons/src/arrow-right-a.svg deleted file mode 100644 index fb6d0d6..0000000 --- a/admin/bower_components/Ionicons/src/arrow-right-a.svg +++ /dev/null @@ -1,7 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" style="enable-background:new 0 0 512 512;" xml:space="preserve"> -<polygon points="448.5,256.5 256.5,64.5 256.5,176.5 64.5,176.5 64.5,336.5 256.5,336.5 256.5,448.5 "/> -</svg> diff --git a/admin/bower_components/Ionicons/src/arrow-right-b.svg b/admin/bower_components/Ionicons/src/arrow-right-b.svg deleted file mode 100644 index 847718b..0000000 --- a/admin/bower_components/Ionicons/src/arrow-right-b.svg +++ /dev/null @@ -1,8 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" style="enable-background:new 0 0 512 512;" xml:space="preserve"> -<path d="M184.7,413.1l2.1-1.8l156.5-136c5.3-4.6,8.6-11.5,8.6-19.2c0-7.7-3.4-14.6-8.6-19.2L187.1,101l-2.6-2.3 - C182,97,179,96,175.8,96c-8.7,0-15.8,7.4-15.8,16.6h0v286.8h0c0,9.2,7.1,16.6,15.8,16.6C179.1,416,182.2,414.9,184.7,413.1z"/> -</svg> diff --git a/admin/bower_components/Ionicons/src/arrow-right-c.svg b/admin/bower_components/Ionicons/src/arrow-right-c.svg deleted file mode 100644 index 6dd206a..0000000 --- a/admin/bower_components/Ionicons/src/arrow-right-c.svg +++ /dev/null @@ -1,9 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" style="enable-background:new 0 0 512 512;" xml:space="preserve"> -<path d="M322.7,128.4L423,233.4c6,5.8,9,13.7,9,22.4c0,8.7-3,16.5-9,22.4L322.7,383.6c-11.9,12.5-31.3,12.5-43.2,0 - c-11.9-12.5-11.9-32.7,0-45.2l48.2-50.4h-217C93.7,288,80,273.7,80,256c0-17.7,13.7-32,30.6-32h217l-48.2-50.4 - c-11.9-12.5-11.9-32.7,0-45.2C291.4,115.9,310.7,115.9,322.7,128.4z"/> -</svg> diff --git a/admin/bower_components/Ionicons/src/arrow-shrink.svg b/admin/bower_components/Ionicons/src/arrow-shrink.svg deleted file mode 100644 index 5c29edd..0000000 --- a/admin/bower_components/Ionicons/src/arrow-shrink.svg +++ /dev/null @@ -1,12 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" style="enable-background:new 0 0 512 512;" xml:space="preserve"> -<g> - <polygon points="448,92.3 366.1,174.1 416,224 288,224 288,96 337.9,145.9 419.7,64 "/> - <polygon points="448,419.7 366.1,337.9 416,288 288,288 288,416 337.9,366.1 419.7,448 "/> - <polygon points="64,419.7 145.9,337.9 96,288 224,288 224,416 174.1,366.1 92.3,448 "/> - <polygon points="64,92.3 145.9,174.1 96,224 224,224 224,96 174.1,145.9 92.3,64 "/> -</g> -</svg> diff --git a/admin/bower_components/Ionicons/src/arrow-swap.svg b/admin/bower_components/Ionicons/src/arrow-swap.svg deleted file mode 100644 index aabe881..0000000 --- a/admin/bower_components/Ionicons/src/arrow-swap.svg +++ /dev/null @@ -1,10 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" style="enable-background:new 0 0 512 512;" xml:space="preserve"> -<g> - <path d="M64,328v48c0,4.4,3.6,8,8,8h248v64l128-96l-128-96v64H72C67.6,320,64,323.6,64,328z"/> - <path d="M448,184v-48c0-4.4-3.6-8-8-8H192V64L64,160l128,96v-64h248C444.4,192,448,188.4,448,184z"/> -</g> -</svg> diff --git a/admin/bower_components/Ionicons/src/arrow-up-a.svg b/admin/bower_components/Ionicons/src/arrow-up-a.svg deleted file mode 100644 index f908a1b..0000000 --- a/admin/bower_components/Ionicons/src/arrow-up-a.svg +++ /dev/null @@ -1,7 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" style="enable-background:new 0 0 512 512;" xml:space="preserve"> -<polygon points="256.5,64.5 64.5,256.5 176.5,256.5 176.5,448.5 336.5,448.5 336.5,256.5 448.5,256.5 "/> -</svg> diff --git a/admin/bower_components/Ionicons/src/arrow-up-b.svg b/admin/bower_components/Ionicons/src/arrow-up-b.svg deleted file mode 100644 index 01b790d..0000000 --- a/admin/bower_components/Ionicons/src/arrow-up-b.svg +++ /dev/null @@ -1,8 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" style="enable-background:new 0 0 512 512;" xml:space="preserve"> -<path d="M413.1,327.3l-1.8-2.1l-136-156.5c-4.6-5.3-11.5-8.6-19.2-8.6c-7.7,0-14.6,3.4-19.2,8.6L101,324.9l-2.3,2.6 - C97,330,96,333,96,336.2c0,8.7,7.4,15.8,16.6,15.8v0h286.8v0c9.2,0,16.6-7.1,16.6-15.8C416,332.9,414.9,329.8,413.1,327.3z"/> -</svg> diff --git a/admin/bower_components/Ionicons/src/arrow-up-c.svg b/admin/bower_components/Ionicons/src/arrow-up-c.svg deleted file mode 100644 index cc291b3..0000000 --- a/admin/bower_components/Ionicons/src/arrow-up-c.svg +++ /dev/null @@ -1,9 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" style="enable-background:new 0 0 512 512;" xml:space="preserve"> -<path d="M128.4,189.3L233.4,89c5.8-6,13.7-9,22.4-9c8.7,0,16.5,3,22.4,9l105.4,100.3c12.5,11.9,12.5,31.3,0,43.2 - c-12.5,11.9-32.7,11.9-45.2,0L288,184.4v217c0,16.9-14.3,30.6-32,30.6c-17.7,0-32-13.7-32-30.6v-217l-50.4,48.2 - c-12.5,11.9-32.7,11.9-45.2,0C115.9,220.6,115.9,201.3,128.4,189.3z"/> -</svg> diff --git a/admin/bower_components/Ionicons/src/asterisk.svg b/admin/bower_components/Ionicons/src/asterisk.svg deleted file mode 100644 index 34f5492..0000000 --- a/admin/bower_components/Ionicons/src/asterisk.svg +++ /dev/null @@ -1,8 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" enable-background="new 0 0 512 512" xml:space="preserve"> -<polygon points="480,224 293.172,231.487 401.688,64 342.441,32 256,208 169.824,32 110.328,64 218.828,231.487 32,224 32,288 - 217.537,277.934 113.65,448 169.619,480 256,304 342.381,480 398.33,448 294.463,277.934 480,288 "/> -</svg> diff --git a/admin/bower_components/Ionicons/src/at.svg b/admin/bower_components/Ionicons/src/at.svg deleted file mode 100644 index 7d8a68b..0000000 --- a/admin/bower_components/Ionicons/src/at.svg +++ /dev/null @@ -1,25 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" style="enable-background:new 0 0 512 512;" xml:space="preserve"> -<g> - <path d="M453.8,407.1c-23.9,25.3-52.3,43.8-85.2,55.4C335.7,474.2,301,480,264.5,480c-34.9,0-66.7-5.5-95.3-16.6 - c-28.6-11-53.1-26.4-73.3-46.1c-20.3-19.7-36-43.3-47.2-70.8c-11.2-27.5-16.7-57.5-16.7-90c0-32.1,6.1-61.8,18.3-89.1 - c12.2-27.3,28.8-51,49.9-71.1c21.1-20.1,45.7-35.8,74-47.3C202.3,37.7,232.5,32,264.5,32c27.6,0,54.4,4,80.3,12 - c26,8,49,20.1,69.1,36.1c20.1,16.1,36.1,36.1,48.1,60.2c12,24.1,18,52.4,18,84.9c0,24.1-3.3,45.4-10,63.8 - c-6.7,18.5-15.6,33.9-26.8,46.4c-11.2,12.5-23.9,21.8-38.3,28c-14.4,6.2-29.5,9.3-45.3,9.3c-16.2,0-29.2-3.8-39-11.4 - c-9.7-7.6-14.6-17.3-14.6-28.9h-3c-6.1,9.6-15.4,18.8-28,27.4c-12.6,8.6-28,13-46.3,13c-27.6,0-48.9-9-63.9-27.1 - c-15-18.1-22.5-41.5-22.5-70.5c0-16.9,2.8-33.5,8.5-50c5.7-16.5,13.8-31.1,24.3-44c10.5-12.8,23.1-23.2,37.7-31 - c14.6-7.8,30.8-11.7,48.7-11.7c15.4,0,28.4,3.2,39,9.6c10.5,6.4,17.4,14.3,20.7,23.5h0.6l4.9-24.1h54.2L357,261.4 - c-0.8,5.6-1.9,11.8-3.3,18.7c-1.4,6.8-2.1,13.2-2.1,19.3c0,6.8,1.3,12.5,4,17.2c2.6,4.6,7.8,6.9,15.5,6.9 - c15.8,0,28.9-8.4,39.3-25.3c10.3-16.9,15.5-39.5,15.5-68c0-24.1-4.1-45.5-12.2-64.1c-8.1-18.7-19.4-34.3-33.8-47 - c-14.4-12.6-31.6-22.2-51.4-28.6c-19.9-6.4-41.6-9.6-65.1-9.6c-25.6,0-49,4.5-70.3,13.5s-39.5,21.5-54.5,37.3 - c-15,15.9-26.7,34.5-35,56C95.2,209.1,91,232.3,91,257.2c0,26.5,4.4,50.4,13.1,71.7c8.7,21.3,21,39.4,36.8,54.5 - c15.8,15.1,34.7,26.6,56.6,34.6c21.9,8,46.1,12,72.4,12c32.9,0,61.2-5.2,84.9-15.7c23.7-10.4,45.5-24.9,65.4-43.4L453.8,407.1z - M263.3,188c-9.7,0-18.3,2.8-25.6,8.4c-7.3,5.6-13.5,12.7-18.6,21.4c-5.1,8.6-8.9,18.2-11.6,28.6c-2.6,10.4-4,20.5-4,30.1 - c0,4.8,0.5,9.9,1.5,15.4c1,5.4,3,10.4,6.1,15.1c3,4.6,7,8.4,11.9,11.4c4.9,3,11.4,4.5,19.5,4.5c11,0,20.3-2.7,28-8.1 - c7.7-5.4,14-12.2,18.9-20.5c4.9-8.2,8.4-17.2,10.7-26.8c2.2-9.6,3.3-18.5,3.3-26.5c0-6.4-0.6-12.7-1.8-19 - c-1.2-6.2-3.3-11.8-6.4-16.9c-3-5-7.2-9.1-12.5-12.3C277.5,189.6,271,188,263.3,188z"/> -</g> -</svg> diff --git a/admin/bower_components/Ionicons/src/backspace-outline.svg b/admin/bower_components/Ionicons/src/backspace-outline.svg deleted file mode 100644 index 19d2fe2..0000000 --- a/admin/bower_components/Ionicons/src/backspace-outline.svg +++ /dev/null @@ -1,21 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" enable-background="new 0 0 512 512" xml:space="preserve"> -<g> - <g> - <path d="M413.442,332.307c1.528,1.51,2.372,3.562,2.372,5.71c0,2.151-0.844,4.203-2.372,5.707l-21.823,21.905 - c-1.575,1.586-3.625,2.371-5.691,2.371c-2.071,0-4.138-0.785-5.695-2.371l-76.23-76.461l-76.23,76.461 - c-1.558,1.586-3.625,2.371-5.695,2.371c-2.066,0-4.117-0.785-5.692-2.371l-21.824-21.905c-1.527-1.504-2.373-3.556-2.373-5.707 - c0-2.148,0.846-4.2,2.373-5.71L271.098,256l-76.738-76.297c-3.146-3.153-3.146-8.273,0-11.427l21.807-21.919 - c1.516-1.511,3.552-2.357,5.696-2.357c2.152,0,4.189,0.847,5.691,2.357l76.448,75.533l76.447-75.533 - c1.504-1.511,3.541-2.357,5.693-2.357c2.143,0,4.179,0.847,5.695,2.357l21.807,21.919c3.146,3.153,3.146,8.273,0,11.427 - L336.904,256L413.442,332.307z"/> - </g> - <path d="M498.941,93.559C490.037,84.654,478.696,80,465.875,80H168c-24.303,0-43.717,9.402-57.706,28.441L0,255.938l110.4,146.528 - l0.18,0.231l0.184,0.232c6.904,8.855,14.424,15.701,22.99,20.417C143.883,428.924,155.405,432,168,432h298 - c26.191,0,46-22.257,46-49V127C512,114.179,507.846,102.463,498.941,93.559z M480,383c0,8.837-5.163,17-14,17H168 - c-15.167,0-24.333-6.666-32-16.5L40,256l96-128.438c9.5-13,21.167-15.562,32-15.562h297.5c8.837,0,14.5,6.163,14.5,15V383z"/> -</g> -</svg> diff --git a/admin/bower_components/Ionicons/src/backspace.svg b/admin/bower_components/Ionicons/src/backspace.svg deleted file mode 100644 index f02fff9..0000000 --- a/admin/bower_components/Ionicons/src/backspace.svg +++ /dev/null @@ -1,17 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" enable-background="new 0 0 512 512" xml:space="preserve"> -<g> - <path d="M498.941,93.559C490.037,84.654,478.696,80,465.875,80H168c-24.303,0-43.717,9.402-57.706,28.441L0,255.938l110.4,146.528 - l0.18,0.231l0.184,0.232c6.904,8.855,14.424,15.701,22.99,20.417C143.883,428.924,155.405,432,168,432h298 - c26.191,0,46-22.257,46-49V127C512,114.179,507.846,102.463,498.941,93.559z M413.442,332.307c1.528,1.51,2.372,3.562,2.372,5.71 - c0,2.151-0.844,4.203-2.372,5.707l-21.823,21.905c-1.575,1.586-3.625,2.371-5.691,2.371c-2.071,0-4.138-0.785-5.695-2.371 - l-76.23-76.461l-76.23,76.461c-1.558,1.586-3.625,2.371-5.695,2.371c-2.066,0-4.117-0.785-5.692-2.371l-21.824-21.905 - c-1.527-1.504-2.373-3.556-2.373-5.707c0-2.148,0.846-4.2,2.373-5.71L271.098,256l-76.738-76.297 - c-3.146-3.153-3.146-8.273,0-11.427l21.807-21.919c1.516-1.511,3.552-2.357,5.696-2.357c2.152,0,4.189,0.847,5.691,2.357 - l76.448,75.533l76.447-75.533c1.504-1.511,3.541-2.357,5.693-2.357c2.143,0,4.179,0.847,5.695,2.357l21.807,21.919 - c3.146,3.153,3.146,8.273,0,11.427L336.904,256L413.442,332.307z"/> -</g> -</svg> diff --git a/admin/bower_components/Ionicons/src/bag.svg b/admin/bower_components/Ionicons/src/bag.svg deleted file mode 100644 index f66c5ac..0000000 --- a/admin/bower_components/Ionicons/src/bag.svg +++ /dev/null @@ -1,10 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" style="enable-background:new 0 0 512 512;" xml:space="preserve"> -<path d="M448,160h-64v-4.5C384,87,329,32,260.5,32h-8C184,32,128,87,128,155.5v4.5H64L32,480h448L448,160z M160,155.5 - c0-50.7,41.8-91.5,92.5-91.5h7.5h0.5c50.7,0,91.5,40.8,91.5,91.5v4.5H160V155.5z M67.8,448l24.9-256H128v36.3 - c-9.6,5.5-16,15.9-16,27.7c0,17.7,14.3,32,32,32s32-14.3,32-32c0-11.8-6.4-22.2-16-27.7V192h192v36.3c-9.6,5.5-16,15.9-16,27.7 - c0,17.7,14.3,32,32,32s32-14.3,32-32c0-11.8-6.4-22.2-16-27.7V192h35.4l24.9,256H67.8z"/> -</svg> diff --git a/admin/bower_components/Ionicons/src/battery-charging.svg b/admin/bower_components/Ionicons/src/battery-charging.svg deleted file mode 100644 index 0158613..0000000 --- a/admin/bower_components/Ionicons/src/battery-charging.svg +++ /dev/null @@ -1,9 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" style="enable-background:new 0 0 512 512;" xml:space="preserve"> -<path d="M42.1,384h381.1c5.5,0,9.9-4.5,9.9-10v-54h36.9c5.6,0,10.1-4.5,10.1-10V202c0-5.5-4.5-10-10.1-10H433v-54 - c0-5.5-4.3-10-9.9-10H42.1c-5.6,0-10.1,4.5-10.1,10v236C32,379.5,36.5,384,42.1,384z M257.4,160l-27.9,81H291L190.6,352l27.9-81H157 - L257.4,160z"/> -</svg> diff --git a/admin/bower_components/Ionicons/src/battery-empty.svg b/admin/bower_components/Ionicons/src/battery-empty.svg deleted file mode 100644 index 6659cb2..0000000 --- a/admin/bower_components/Ionicons/src/battery-empty.svg +++ /dev/null @@ -1,8 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" style="enable-background:new 0 0 512 512;" xml:space="preserve"> -<path d="M469.9,192H433v-54c0-5.5-4.3-10-9.9-10H42.1c-5.6,0-10.1,4.5-10.1,10v236c0,5.5,4.5,10,10.1,10h381.1c5.5,0,9.9-4.5,9.9-10 - v-54h36.9c5.6,0,10.1-4.5,10.1-10V202C480,196.5,475.5,192,469.9,192z M448,288h-14.8H401v32v32H64V160h337v32v32h32.2H448V288z"/> -</svg> diff --git a/admin/bower_components/Ionicons/src/battery-full.svg b/admin/bower_components/Ionicons/src/battery-full.svg deleted file mode 100644 index a833ec4..0000000 --- a/admin/bower_components/Ionicons/src/battery-full.svg +++ /dev/null @@ -1,8 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" style="enable-background:new 0 0 512 512;" xml:space="preserve"> -<path d="M469.9,192H433v-54c0-5.5-4.3-10-9.9-10H42.1c-5.6,0-10.1,4.5-10.1,10v236c0,5.5,4.5,10,10.1,10h381.1c5.5,0,9.9-4.5,9.9-10 - v-54h36.9c5.6,0,10.1-4.5,10.1-10V202C480,196.5,475.5,192,469.9,192z"/> -</svg> diff --git a/admin/bower_components/Ionicons/src/battery-half.svg b/admin/bower_components/Ionicons/src/battery-half.svg deleted file mode 100644 index 9b992d0..0000000 --- a/admin/bower_components/Ionicons/src/battery-half.svg +++ /dev/null @@ -1,9 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" style="enable-background:new 0 0 512 512;" xml:space="preserve"> -<path d="M469.9,192H433v-54c0-5.5-4.3-10-9.9-10H42.1c-5.6,0-10.1,4.5-10.1,10v236c0,5.5,4.5,10,10.1,10h381.1c5.5,0,9.9-4.5,9.9-10 - v-54h36.9c5.6,0,10.1-4.5,10.1-10V202C480,196.5,475.5,192,469.9,192z M448,288h-14.8H401v32v32h-49l-32-192h81v32v32h32.2H448V288z - "/> -</svg> diff --git a/admin/bower_components/Ionicons/src/battery-low.svg b/admin/bower_components/Ionicons/src/battery-low.svg deleted file mode 100644 index dff1709..0000000 --- a/admin/bower_components/Ionicons/src/battery-low.svg +++ /dev/null @@ -1,9 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" style="enable-background:new 0 0 512 512;" xml:space="preserve"> -<path d="M42.1,384h381.1c5.5,0,9.9-4.5,9.9-10v-54h36.9c5.6,0,10.1-4.5,10.1-10V202c0-5.5-4.5-10-10.1-10H433v-54 - c0-5.5-4.3-10-9.9-10H42.1c-5.6,0-10.1,4.5-10.1,10v236C32,379.5,36.5,384,42.1,384z M401,160v32v32h32.2H448v64h-14.8H401v32v32 - H224l-32-192H401z"/> -</svg> diff --git a/admin/bower_components/Ionicons/src/beaker.svg b/admin/bower_components/Ionicons/src/beaker.svg deleted file mode 100644 index ecc3394..0000000 --- a/admin/bower_components/Ionicons/src/beaker.svg +++ /dev/null @@ -1,20 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" enable-background="new 0 0 512 512" xml:space="preserve"> -<g> - <g> - <path d="M143.5,192.5V416c0,8.836,7.851,16.5,16.688,16.5h208c8.836,0,15.312-7.664,15.312-16.5V192.5H143.5z M359.5,344 - c0,4.418-3.582,8-8,8s-8-3.582-8-8v-48c0-4.418,3.582-8,8-8s8,3.582,8,8V344z M352.188,272c-4.418,0-8-3.581-8-8s3.582-8,8-8 - s8,3.581,8,8S356.605,272,352.188,272z"/> - </g> - <g> - <path d="M445.078,32.5H128.438c-54.345,0-64.594,27.426-64.594,39.75C94.094,76.5,95.5,77,95.5,109c0,16,0,307,0,307 - c0,35.346,29.341,64.5,64.688,64.5h207.75c35.346,0,63.562-29.154,63.562-64.5c0,0,0-316.75,0-335.5 - c0-20.349,12.298-38.276,13.516-40.183c1.219-1.906,3-3.798,3-4.958C448.016,34.188,447.6,32.5,445.078,32.5z M399.5,80.5V416 - c0,17.92-12.443,32.5-29.812,32.5h-209.5c-17.617,0-32.688-14.883-32.688-32.5V109c0-11.812,1.094-37.25-3.828-43.957 - c0.921-0.793,3.114-0.543,4.516-0.543h272.66C400.112,64.5,399.5,75.299,399.5,80.5z"/> - </g> -</g> -</svg> diff --git a/admin/bower_components/Ionicons/src/beer.svg b/admin/bower_components/Ionicons/src/beer.svg deleted file mode 100644 index be420d0..0000000 --- a/admin/bower_components/Ionicons/src/beer.svg +++ /dev/null @@ -1,28 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" style="enable-background:new 0 0 512 512;" xml:space="preserve"> -<g> - <path d="M416,160h-32v-16c14.5-3.5,32-24.3,32-48c0-35.3-28.7-64-64-64c-16.3,0-31.1,6.1-42.4,16.1C297.2,38,281.4,32,264.2,32 - c-15.8,0-30.4,5.1-42.3,13.7c-9.9-8.5-22.9-13.7-37-13.7c-17.1,0-32.4,7.6-42.8,19.5C130.4,39.5,114.1,32,96,32 - c-35.3,0-64,28.7-64,64c0,16.2,6.1,31,16,42.3c0,0.2,0,0.4,0,0.7v54c0,26.5,21.5,48,48,48v223c0,8.8,7.2,16,16,16h256 - c8.8,0,16-7.2,16-16v-80h32c35.3,0,64-28.7,64-64v-96C480,188.7,451.3,160,416,160z M327.8,304c-1.6,0-3-0.6-4.3-1.4 - c-2.2-1.4-3.5-4-3.5-6.8V248c0-4.4,3.6-8,8-8c4.4,0,8,3.6,8,8v48.1l0,0C336,301.1,332.2,304,327.8,304z M335,228.4 - c-1.2,1.8-3,3-5.1,3.5c-2.1,0.4-4.3,0-6-1.1c-1.8-1.2-3-3-3.5-5.1c-0.4-2.1,0-4.3,1.1-6c1.2-1.8,3-3,5.1-3.5c2.1-0.4,4.3,0,6,1.1 - c1.8,1.2,3,3,3.5,5.1C336.6,224.4,336.2,226.6,335,228.4z M352,160v32H224.2c-0.1-4.3-3.6-7.8-8-7.8c-4.4,0-7.9,3.5-8,7.8H128v-9 - v-31.6c6.5-3.8,12.3-8.6,17-14.3c1.2-1.5,2.4-3,3.5-4.6c1.5,1.2,3,2.4,4.6,3.4c9.1,6.1,20,9.7,31.7,9.7c6.4,0,12.6-1.1,18.3-3 - c12.8,20.2,35.3,33.7,61,33.7c22,0,41.7-9.9,54.9-25.4c5.7-6.7,10.2-14.4,13.1-22.9H352V160z M382.6,105.2 - c-2.5-5.5-8.1-9.2-14.6-9.2h-48h-7c0,0-8.7-0.7-8.7,8.2s-2.9,17.1-7.8,23.7c-7.3,9.9-19.1,16.4-32.4,16.4 - c-14.9,0-27.9-8.1-34.8-20.2c-1.6-2.7-2.8-5.6-3.7-8.6c-0.1-0.6-0.3-1.1-0.4-1.6c-2-5.9-7.5-10.2-14.1-10.2c-3.9,0-7.5,1.5-10.2,4 - c0,0,0,0-0.1,0.1c-2.4,2.1-5.3,3.7-8.4,4.7c-2.4,0.8-5,1.2-7.7,1.2c-7.5,0-14.7-4-18.8-8.6c-10-11.4-23.7-6.8-29.7-5.5 - s-12.2,11.7-12.2,11.7c-1.1,2.1-2.5,4-4,5.8c-5.9,6.7-14.5,11-24.1,11v32v23v26c-8.8,0-16-7.2-16-16v-35v-34.3 - c-7.7-4.5-13.4-12.1-15.3-21c-0.5-2.1-0.7-4.4-0.7-6.7c0-17.6,14.4-32,32-32c11.8,0,23.3,7.7,30.1,15.4s26.7,7.7,33.9,0 - c6.8-7.3,14.3-15.4,24.8-15.4c6,0,11.6,2.2,15.9,5.8c1.9,1.6,3.6,3.5,4.9,5.6c1.1,1.8,2,4.2,3.1,5.8c2.7,3.4,6.5,5.5,11.2,5.5 - c4.4,0,8.3-1.9,11-5c0.6-0.7,1.2-1.5,1.7-2.3c2-2.5,4.2-4.8,6.7-6.8c6.8-5.4,15.5-8.6,24.8-8.6c10.6,0,20.2,4.1,27.4,10.9 - c1.7,1.6,6.7,4.5,13.2,5.1c4.5,0.4,6.1,0.3,8.2,0c10.3-1.3,14.4-4.7,16.4-6.6c5.8-5.8,13.8-9.4,22.6-9.4c17.6,0,32,14.4,32,32 - C384,99.2,383.5,102.3,382.6,105.2z M448,320c0,17.7-14.3,32-32,32h-32V192h32c17.7,0,32,14.3,32,32V320z"/> - <circle cx="168.2" cy="168.2" r="8"/> - <circle cx="328.2" cy="168.2" r="8"/> -</g> -</svg> diff --git a/admin/bower_components/Ionicons/src/bluetooth.svg b/admin/bower_components/Ionicons/src/bluetooth.svg deleted file mode 100644 index 798ef29..0000000 --- a/admin/bower_components/Ionicons/src/bluetooth.svg +++ /dev/null @@ -1,18 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" style="enable-background:new 0 0 512 512;" xml:space="preserve"> -<g> - <path d="M140,143.6c-15.9,15.9-11.7,17.3-10.6,18.4c1.1,1.1,89.8,85.6,89.8,85.6s3.9,3.4,3.9,8.4h0c0,5-3.9,8.4-3.9,8.4 - s-88.7,84.5-89.8,85.6c-1.1,1.1-5.3,2.5,10.6,18.4c15.9,15.9,18.4,12.2,19.2,11.4l67.4-64.3c0.1-0.1,0.2-0.2,0.3-0.3 - c0.1-0.1,0.3-0.2,0.4-0.3c2.3-1.9,9.8-10.6,9.8-3.2c0,7.3,0,151.8,0,156.4v0.1v1.7c0,5.5,5.2,10.1,11.6,10.1c3.5,0,6.7-1.3,8.9-3.5 - l0,0c0,0,118.2-112.8,122.8-117.2c4.6-4.4,5-10.7,1-14.7l-83.9-80.3c0,0-4.4-4.3-4.4-8.3s4.4-8.3,4.4-8.3l83.9-80.3 - c4-4,3.6-10.4-1-14.7c-4.6-4.4-122.8-117.2-122.8-117.2l0,0c-2.1-2.1-5.3-3.5-8.8-3.5c-6.4,0-11.6,4.6-11.6,10.1v1.7V44 - c0,4.6,0,149.1,0,156.4c0,7.4-7.5-1.3-9.8-3.2c-0.1-0.1-0.3-0.2-0.4-0.3c-0.1-0.1-0.2-0.2-0.3-0.3l-67.4-64.3 - C158.3,131.4,155.9,127.7,140,143.6z M280,119.9c0-6.6,7.5,2.3,9.8,4.4l30.5,29.2c2.1,2,2.9,4.7,2.9,7.2c0,2.5-1,5.6-2.8,7.3 - c-1.8,1.7-30.8,29.5-30.8,29.5c-2.3,1.8-9.6,9.8-9.6,1.7C280,199.2,280,126.5,280,119.9z M280,312.8c0-8.2,7.2-0.2,9.6,1.7 - c0,0,29.1,27.8,30.9,29.5c1.8,1.7,2.8,4.9,2.8,7.3s-0.8,5.2-2.9,7.2l-30.5,29.2c-2.3,2.1-9.8,11-9.8,4.4 - C280,385.5,280,312.8,280,312.8z"/> -</g> -</svg> diff --git a/admin/bower_components/Ionicons/src/bonfire.svg b/admin/bower_components/Ionicons/src/bonfire.svg deleted file mode 100644 index 4a3dbe6..0000000 --- a/admin/bower_components/Ionicons/src/bonfire.svg +++ /dev/null @@ -1,32 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" enable-background="new 0 0 512 512" xml:space="preserve"> -<g> - <path d="M270.93,350.601C270.219,342.42,263.364,336,255,336c-7.635,0-14.01,5.352-15.605,12.506l-0.007-0.002l-15.612,92.502 - C223.273,443.258,223,445.597,223,448c0,17.673,14.327,32,32,32s32-14.327,32-32c0-2.899-0.393-5.705-1.115-8.377L270.93,350.601z" - /> - <polygon points="305.904,355.046 305.903,355.044 305.9,355.046 "/> - <path d="M392.875,390.261c-1.718-1.407-3.3-2.881-5.138-3.94l-63.629-47.507c-5.775-3.796-11.997-3.689-16.527,0.85 - c-4.131,4.143-4.686,10.369-1.678,15.381l48.959,65.763c0.946,1.494,2.166,2.799,3.366,4.195c7.802,9.071,25.08,9.588,34.646-0.007 - C402.445,415.409,402.305,397.986,392.875,390.261z"/> - <polygon points="372.511,335.018 372.509,335.018 372.509,335.02 "/> - <path d="M435.428,322.475l-59.521-2.284c-3.891-0.558-7.4,2.053-8.065,6.011c-0.604,3.611,1.347,7.138,4.668,8.816l0.013-0.039 - c0.041,0.019,0.062,0.006,0.105,0.025l57.717,17.756c8.289,1.93,17.656-2.343,17.656-11.648 - C448,329.328,444.917,323.667,435.428,322.475z"/> - <polygon points="139.222,335.02 139.222,335.018 139.22,335.018 "/> - <path d="M139.209,334.979l0.013,0.039c3.321-1.679,5.272-5.205,4.668-8.816c-0.665-3.958-4.175-6.568-8.065-6.011l-59.521,2.284 - C66.813,323.667,64,329.328,64,341.111c0,9.306,9.098,13.578,17.387,11.648l57.717-17.756 - C139.146,334.984,139.168,334.997,139.209,334.979z"/> - <path d="M187.903,338.807l-63.597,47.431c-1.838,1.057-3.569,2.362-5.137,3.931c-9.563,9.567-9.566,25.088-0.004,34.65 - c9.561,9.571,25.055,9.578,34.618,0.007c1.3-1.299,2.405-2.694,3.352-4.185L206.097,355c3.007-5,2.452-11.213-1.677-15.346 - C199.893,335.126,192.712,334.762,187.903,338.807z"/> - <path d="M352,128c0-61-72.35-96-96-96c12.017,85.553-101.667,119.667-112,192s48,96,48,96 - c16.333-59.896,72.386-79.997,109.667-105.667C342.333,186.333,352,160.061,352,128z"/> - <path d="M352,256c5.03-15.613,4.91-49,0-64c-8.999,18.5-26.287,34.3-47.186,48.689c-8.584,5.911-19.859,11.443-28.83,16.797 - c-18.714,11.165-34.984,21.848-47.329,36.4C240.001,311.25,256.973,320,272,320C307.999,320,336,305.662,352,256z"/> - <path d="M152.037,160c11.722-15.952,24.856-25.209,38.19-38.362c13.436-13.254,22.077-22.471,27.464-33.173 - C207.025,67.134,189.842,61.857,176,64c2.333,30.334-29.97,46.567-32,68.657C142.773,146,146.5,156,152.037,160z"/> -</g> -</svg> diff --git a/admin/bower_components/Ionicons/src/bookmark.svg b/admin/bower_components/Ionicons/src/bookmark.svg deleted file mode 100644 index 425f97e..0000000 --- a/admin/bower_components/Ionicons/src/bookmark.svg +++ /dev/null @@ -1,10 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" style="enable-background:new 0 0 512 512;" xml:space="preserve"> -<g> - <path d="M344,64H168c-4.4,0-8,3.6-8,8v56h192V72C352,67.6,348.4,64,344,64z"/> - <polygon points="160,448 256,352 352,448 352,144 160,144 "/> -</g> -</svg> diff --git a/admin/bower_components/Ionicons/src/bowtie.svg b/admin/bower_components/Ionicons/src/bowtie.svg deleted file mode 100644 index 7c5a0a8..0000000 --- a/admin/bower_components/Ionicons/src/bowtie.svg +++ /dev/null @@ -1,22 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" enable-background="new 0 0 512 512" xml:space="preserve"> -<path d="M223.955,212.011c0,0,8.054-4.679,19.985-7.011c21.318-4.166,39.472-5.5,47.466,8.5c9.777,17.124,18.402,53.417,16.488,85.5 - c-1,16.75-4.622,22.125-4.622,22.125s-15.333,9.525-47.341,6.875c-34.725-2.875-39.971-15.004-39.971-15.004 - s4.497-11.305,7.995-42.499C227.452,239.303,223.955,212.011,223.955,212.011z"/> -<g> - <path d="M183.984,285c12.546-3.323,23.03-7.189,27.659-8.985c0.693-4.707,1.28-9.718,1.694-15.015 - c0.271-3.461,0.465-6.754,0.602-9.896c-6.854-2.333-13.534-4.851-28.769-10.104c-38.66-13.333-57.146-17-57.146-17 - s14.24-2.5,42.219,3c19.986,3.929,34.392,9.5,43.947,14.333c0.771-15.999-2.477-32.583-2.477-32.583 - C189.729,168.5,119.53,112,84.368,112C57.888,112,32,180.5,32,256s23.03,144,51.51,144c33.356,0,116.463-80,116.463-80 - s5.738-12.578,9.879-33.572c-18.788,5.198-63.84,8.572-63.84,8.572S166.996,289.5,183.984,285z"/> - <path d="M427.632,112c-36.37,0-102.363,56.5-124.348,96.75l-0.761,1.375c0,0,1.389,2.527,1.873,3.375 - c3.424,5.996,6.704,14.348,9.442,24.041c8.115-2.805,23.599-8.164,37.523-13.041c19.985-7,34.975-9.5,34.975-9.5 - s-52.982,23.741-69.605,34.264c2.169,10.159,3.693,21.199,4.218,32.242c5.423,2.216,16.551,6.475,29.914,9.994 - c18.986,5,40.398,11.5,40.398,11.5s-54.202-5.27-70.114-12.522c-0.013,2.862-0.095,5.709-0.263,8.522 - c-0.997,16.719-4.608,22.104-4.622,22.124C323.883,331.667,391.262,400,428.49,400C456.97,400,480,331.5,480,256 - S454.112,112,427.632,112z"/> -</g> -</svg> diff --git a/admin/bower_components/Ionicons/src/briefcase.svg b/admin/bower_components/Ionicons/src/briefcase.svg deleted file mode 100644 index 8b3875d..0000000 --- a/admin/bower_components/Ionicons/src/briefcase.svg +++ /dev/null @@ -1,12 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" style="enable-background:new 0 0 512 512;" xml:space="preserve"> -<g> - <path d="M272,272h-32v-8H32v176c0,4.4,3.3,8,7.8,8h432.5c4.4,0,7.7-3.6,7.7-8V264H272V272z"/> - <path d="M472.2,144H352v-30.7C351,85.1,330.3,64,300.8,64h-89.6c-29.4,0-50.2,21.1-51.2,49.3V144H39.8c-4.4,0-7.8,3.6-7.8,8v96h208 - v-8h32v8h208v-96C480,147.6,476.7,144,472.2,144z M320,116.2c0,0.3,0,0.6,0,1V144H192v-26.8c0-0.4,0-0.7,0-1c0-0.3,0-0.6,0-1 - c0-9.7,8.6-19.2,18.8-19.2h90.4c10.1,0,18.8,9.4,18.8,19.2C320,115.6,320,115.9,320,116.2z"/> -</g> -</svg> diff --git a/admin/bower_components/Ionicons/src/bug.svg b/admin/bower_components/Ionicons/src/bug.svg deleted file mode 100644 index 837bc7e..0000000 --- a/admin/bower_components/Ionicons/src/bug.svg +++ /dev/null @@ -1,30 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" enable-background="new 0 0 512 512" xml:space="preserve"> -<g> - <path d="M374.64,127.327C345.365,88.512,303.062,64,256,64s-89.365,24.512-118.64,63.327c6.354,15.64,15.833,30,28.13,42.297 - c24.176,24.176,56.319,37.49,90.51,37.49s66.334-13.314,90.51-37.49C358.807,157.327,368.286,142.966,374.64,127.327z"/> - <path d="M126.836,142.824c-1.725,2.827-3.396,5.703-4.992,8.644c-2.926-1.84-5.319-3.74-7.745-5.773 - c-1.171-0.981-2.954-3.949-4.546-7.35c5.41-11.314,1.181-25.037-9.914-31.261c-11.561-6.484-26.188-2.372-32.674,9.189 - c-6.485,11.56-2.371,26.188,9.187,32.673c1.251,0.702,2.539,1.272,3.847,1.729c2.816,6.269,7.32,14.331,13.548,19.547 - c4.184,3.507,8.792,7.117,15.204,10.674c-7.195,20.259-11.576,42.303-12.545,65.427c-11.026,0.207-18.619,2.1-25.474,4.122 - c-4.16,1.227-8.192,3.395-11.823,5.852c-0.954-0.115-1.923-0.182-2.908-0.182c-13.255,0-24,10.745-24,24s10.745,24,24,24 - c12.93,0,23.467-10.227,23.976-23.032c5.046-1.482,9.888-2.659,17.095-2.774c3.167,33.015,13.304,63.483,28.613,89.224 - c-14.166,11.006-22.882,23.016-26.605,36.317c0,0-0.75,0.438-1.873,1.366c-0.982,0.794-1.932,1.65-2.804,2.619 - c-8.865,9.855-8.062,25.031,1.793,33.895c9.854,8.865,25.028,8.062,33.893-1.793c8.087-8.988,8.095-22.381,0.558-31.395 - c3.074-5.562,6.236-9.014,13.67-14.961C171.368,425.235,207.723,445.619,248,448V222.872 - C194.764,219.954,149.229,188.138,126.836,142.824z"/> - <path d="M456,256.114c-0.985,0-1.954,0.066-2.908,0.182c-3.631-2.457-7.663-4.625-11.823-5.852 - c-6.854-2.021-14.447-3.915-25.474-4.122c-0.969-23.125-5.35-45.168-12.545-65.427c6.412-3.557,11.021-7.167,15.204-10.674 - c6.228-5.216,10.731-13.278,13.548-19.547c1.308-0.458,2.596-1.028,3.847-1.729c11.558-6.485,15.672-21.114,9.187-32.673 - c-6.485-11.561-21.113-15.673-32.674-9.189c-11.095,6.225-15.324,19.947-9.914,31.261c-1.592,3.401-3.375,6.369-4.546,7.35 - c-2.426,2.033-4.819,3.933-7.745,5.773c-1.596-2.941-3.268-5.817-4.992-8.644c-22.393,45.314-67.928,77.13-121.164,80.048V448 - c40.277-2.381,76.632-22.765,103.686-54.42c7.434,5.947,10.596,9.399,13.67,14.961c-7.537,9.014-7.529,22.406,0.558,31.395 - c8.864,9.855,24.038,10.658,33.893,1.793c9.854-8.863,10.658-24.039,1.793-33.895c-0.872-0.969-1.821-1.825-2.804-2.619 - c-1.123-0.929-1.873-1.366-1.873-1.366c-3.724-13.302-12.439-25.312-26.605-36.317c15.31-25.74,25.446-56.209,28.613-89.224 - c7.207,0.115,12.049,1.292,17.095,2.774c0.509,12.806,11.046,23.032,23.976,23.032c13.255,0,24-10.745,24-24 - S469.255,256.114,456,256.114z"/> -</g> -</svg> diff --git a/admin/bower_components/Ionicons/src/calculator.svg b/admin/bower_components/Ionicons/src/calculator.svg deleted file mode 100644 index 93ef2c0..0000000 --- a/admin/bower_components/Ionicons/src/calculator.svg +++ /dev/null @@ -1,10 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" style="enable-background:new 0 0 512 512;" xml:space="preserve"> -<path d="M400,32H112c-8.8,0-16,7.2-16,16v416c0,8.8,7.2,16,16,16h288c8.8,0,16-7.2,16-16V48C416,39.2,408.8,32,400,32z M144,208h32 - v32h-32V208z M144,272h32v32h-32V272z M144,336h32v32h-32V336z M240,432h-96v-32h96V432z M240,368h-32v-32h32V368z M240,304h-32v-32 - h32V304z M240,240h-32v-32h32V240z M304,432h-32v-32h32V432z M304,368h-32v-32h32V368z M304,304h-32v-32h32V304z M304,240h-32v-32 - h32V240z M368,432h-32v-96h32V432z M368,304h-32v-32h32V304z M368,240h-32v-32h32V240z M368,160H144V80h224V160z"/> -</svg> diff --git a/admin/bower_components/Ionicons/src/calendar.svg b/admin/bower_components/Ionicons/src/calendar.svg deleted file mode 100644 index e6e173a..0000000 --- a/admin/bower_components/Ionicons/src/calendar.svg +++ /dev/null @@ -1,12 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" style="enable-background:new 0 0 512 512;" xml:space="preserve"> -<g> - <path d="M144,128c17.7,0,32-14.3,32-32V64c0-17.7-14.3-32-32-32s-32,14.3-32,32v32C112,113.7,126.3,128,144,128z"/> - <path d="M368,128c17.7,0,32-14.3,32-32V64c0-17.7-14.3-32-32-32s-32,14.3-32,32v32C336,113.7,350.3,128,368,128z"/> - <path d="M472,64h-56v40.7c0,22.5-23.2,39.3-47.2,39.3S320,127.2,320,104.7V64H192v40.7c0,22.5-24,39.3-48,39.3s-48-16.8-48-39.3V64 - H40c-4.4,0-8,3.6-8,8v400c0,4.4,3.6,8,8,8h432c4.4,0,8-3.6,8-8V72C480,67.6,476.4,64,472,64z M432,432H80V176h352V432z"/> -</g> -</svg> diff --git a/admin/bower_components/Ionicons/src/camera.svg b/admin/bower_components/Ionicons/src/camera.svg deleted file mode 100644 index 7857f61..0000000 --- a/admin/bower_components/Ionicons/src/camera.svg +++ /dev/null @@ -1,15 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" style="enable-background:new 0 0 512 512;" xml:space="preserve"> -<g> - <path d="M430.4,147h-67.5l-40.4-40.8c0,0-0.2-0.2-0.3-0.2l-0.2-0.2v0c-6-6-14.1-9.8-23.3-9.8h-84c-9.8,0-18.5,4.2-24.6,10.9l0,0.1 - l-39.5,40H81.6C63,147,48,161.6,48,180.2v202.1c0,18.6,15,33.7,33.6,33.7h348.8c18.5,0,33.6-15.1,33.6-33.7V180.2 - C464,161.6,448.9,147,430.4,147z M256,365.5c-50.9,0-92.4-41.6-92.4-92.6c0-51.1,41.5-92.6,92.4-92.6c51,0,92.4,41.5,92.4,92.6 - C348.4,323.9,307,365.5,256,365.5z M424.1,200.5c-7.7,0-14-6.3-14-14.1s6.3-14.1,14-14.1c7.7,0,14,6.3,14,14.1 - S431.8,200.5,424.1,200.5z"/> - <path d="M256,202.9c-38.6,0-69.8,31.3-69.8,70c0,38.6,31.2,70,69.8,70c38.5,0,69.8-31.3,69.8-70C325.8,234.2,294.5,202.9,256,202.9 - z"/> -</g> -</svg> diff --git a/admin/bower_components/Ionicons/src/card.svg b/admin/bower_components/Ionicons/src/card.svg deleted file mode 100644 index e18e848..0000000 --- a/admin/bower_components/Ionicons/src/card.svg +++ /dev/null @@ -1,14 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" style="enable-background:new 0 0 512 512;" xml:space="preserve"> -<g> - <path d="M452,96H60c-15.5,0-27.9,12.5-28,28l0,0v0.3v263.4v0.3l0,0c0.2,15.5,12.5,28,28,28h392c15.6,0,28-12.7,28-28.3v0V124.3v0 - C480,108.7,467.6,96,452,96z M77.1,128h357.7c6.9,0,12.1,5.1,13.1,12v20H64v-20.3C65,132.9,70.3,128,77.1,128z M434.9,384H77.1 - c-6.9,0-12.1-4.9-13.1-11.7V256h384v116C447,378.9,441.7,384,434.9,384z"/> - <rect x="96" y="304" width="192" height="16"/> - <rect x="96" y="336" width="96" height="16"/> - <rect x="352" y="304" width="64" height="48"/> -</g> -</svg> diff --git a/admin/bower_components/Ionicons/src/cash.svg b/admin/bower_components/Ionicons/src/cash.svg deleted file mode 100644 index 3618133..0000000 --- a/admin/bower_components/Ionicons/src/cash.svg +++ /dev/null @@ -1,31 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" enable-background="new 0 0 512 512" xml:space="preserve"> -<g> - <path d="M0,96v256h512V96H0z M192.508,320H80.129c0-26.582-21.549-48.129-48.129-48.129V192c35.346,0,64-28.653,64-64h96.509 - C172.576,151.455,160,185.767,160,224S172.576,296.545,192.508,320z M298.089,261.248c-2.582,4.182-5.978,7.602-10.189,10.257 - c-4.214,2.655-9.004,4.607-14.375,5.835c-2.812,0.644-5.654,1.119-8.524,1.432V288h-18v-9.43c-2.768-0.357-5.461-0.863-8.072-1.541 - c-5.688-1.475-10.641-3.659-14.851-6.709c-4.214-3.047-7.584-6.803-10.11-11.573C211.548,254.186,210.24,248,210.04,243h19.735 - c0.096,3,0.828,6.532,2.201,9.184c1.473,2.853,3.526,4.883,6.16,6.7c2.572,1.78,5.532,3.082,8.863,3.919v-34.358 - c-2.436-0.601-5.016-1.245-7.758-1.938c-4.846-1.18-8.873-2.729-12.085-4.646c-3.214-1.918-5.766-4.057-7.661-6.417 - c-1.896-2.359-3.238-4.867-4.028-7.522c-0.791-2.656-1.186-5.358-1.186-8.113c0-5.31,1.186-9.905,3.556-13.791 - c2.368-3.883,5.502-7.104,9.398-9.662c3.895-2.556,8.319-4.448,13.27-5.679c2.154-0.534,4.319-0.945,6.494-1.248V160h18v9.499 - c2.46,0.353,4.856,0.838,7.18,1.473c5.215,1.427,9.796,3.563,13.744,6.414c3.95,2.854,7.083,6.364,9.4,10.542 - c2.109,3.811,3.258,8.072,3.445,13.072h-19.866c-0.753-6-3.175-10.326-7.274-12.923c-1.966-1.246-4.186-2.196-6.629-2.887v30.368 - c2.589,0.639,5.15,1.268,7.654,1.878c3.421,0.836,5.87,1.453,7.346,1.844c3.686,1.083,6.897,2.558,9.637,4.425 - c2.737,1.869,5.028,4.008,6.873,6.417c1.841,2.411,3.21,4.992,4.107,7.744c0.893,2.753,1.343,5.51,1.343,8.262 - C301.96,252.027,300.668,257.07,298.089,261.248z M480,271.871c-26,0-48,21.547-48,48.129H319.491 - C339.424,296.545,352,262.233,352,224s-12.576-72.545-32.51-96H416c0,35.347,28.653,64,64,64V271.871z"/> - <circle cx="96" cy="224" r="32"/> - <circle cx="416" cy="224" r="32"/> - <path d="M272.893,235.21c-2.395-0.823-5.029-1.618-7.893-2.389v30.856c1.592-0.23,3.069-0.547,4.416-0.959 - c3.053-0.934,5.529-2.139,7.425-3.613s3.264-3.171,4.107-5.089c0.842-1.917,1.263-3.858,1.263-5.827 - c0-4.031-0.975-7.006-2.921-8.924C277.34,237.349,275.206,235.999,272.893,235.21z"/> - <path d="M236.004,190.959c-1.318,1.771-1.975,3.982-1.975,6.638c0,3.738,1.236,6.663,3.712,8.776 - c2.377,2.034,5.468,3.583,9.259,4.661v-26.356c-2.18,0.45-4.192,1.135-6.02,2.078C238.979,187.788,237.32,189.189,236.004,190.959z - "/> - <rect y="384" width="512" height="32"/> -</g> -</svg> diff --git a/admin/bower_components/Ionicons/src/chatbox-working.svg b/admin/bower_components/Ionicons/src/chatbox-working.svg deleted file mode 100644 index 1a6d1a6..0000000 --- a/admin/bower_components/Ionicons/src/chatbox-working.svg +++ /dev/null @@ -1,11 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" style="enable-background:new 0 0 512 512;" xml:space="preserve"> -<path d="M124.3,400H277c14.4,0,14.4,0.1,21.3,5.2S384,464,384,464v-64h3.7c42.2,0,76.3-31.8,76.3-71.4V119.7 - c0-39.6-34.2-71.7-76.3-71.7H124.3C82.2,48,48,80.1,48,119.7v208.9C48,368.2,82.2,400,124.3,400z M352.1,192c17.7,0,32,14.3,32,32 - c0,17.7-14.3,32-32,32c-17.7,0-32-14.3-32-32C320.1,206.3,334.4,192,352.1,192z M256.1,192c17.7,0,32,14.3,32,32 - c0,17.7-14.3,32-32,32c-17.7,0-32-14.3-32-32C224.1,206.3,238.4,192,256.1,192z M160.1,192c17.7,0,32,14.3,32,32 - c0,17.7-14.3,32-32,32c-17.7,0-32-14.3-32-32C128.1,206.3,142.4,192,160.1,192z"/> -</svg> diff --git a/admin/bower_components/Ionicons/src/chatbox.svg b/admin/bower_components/Ionicons/src/chatbox.svg deleted file mode 100644 index 4e3070b..0000000 --- a/admin/bower_components/Ionicons/src/chatbox.svg +++ /dev/null @@ -1,8 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" style="enable-background:new 0 0 512 512;" xml:space="preserve"> -<path d="M124.3,400H277c14.4,0,14.4,0.1,21.3,5.2S384,464,384,464v-64h3.7c42.2,0,76.3-31.8,76.3-71.4V119.7 - c0-39.6-34.2-71.7-76.3-71.7H124.3C82.2,48,48,80.1,48,119.7v208.9C48,368.2,82.2,400,124.3,400z"/> -</svg> diff --git a/admin/bower_components/Ionicons/src/chatboxes.svg b/admin/bower_components/Ionicons/src/chatboxes.svg deleted file mode 100644 index 259cc81..0000000 --- a/admin/bower_components/Ionicons/src/chatboxes.svg +++ /dev/null @@ -1,12 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" style="enable-background:new 0 0 512 512;" xml:space="preserve"> -<g> - <path d="M294.1,365.5c-2.6-1.8-7.2-4.5-17.5-4.5H160.5c-34.7,0-64.5-26.1-64.5-59.2V201h-1.8C67.9,201,48,221.5,48,246.5v128.9 - c0,25,21.4,40.6,47.7,40.6H112v48l53.1-45c1.9-1.4,5.3-3,13.2-3h89.8c23,0,47.4-11.4,51.9-32L294.1,365.5z"/> - <path d="M401,48H183.7C149,48,128,74.8,128,107.8v69.7V276c0,33.1,28,60,62.7,60h101.1c10.4,0,15,2.3,17.5,4.2L384,400v-64h17 - c34.8,0,63-26.9,63-59.9V107.8C464,74.8,435.8,48,401,48z"/> -</g> -</svg> diff --git a/admin/bower_components/Ionicons/src/chatbubble-working.svg b/admin/bower_components/Ionicons/src/chatbubble-working.svg deleted file mode 100644 index da15d59..0000000 --- a/admin/bower_components/Ionicons/src/chatbubble-working.svg +++ /dev/null @@ -1,12 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" style="enable-background:new 0 0 512 512;" xml:space="preserve"> -<path d="M256,449.4c28.9,0,56.4-5.7,81.3-15.9c0.6-0.3,1.1-0.5,1.7-0.7c0.1,0,0.2,0,0.2-0.1c3.5-1.3,7.3-2,11.2-2 - c4.3,0,8.4,0.8,12.1,2.4l84,30.9l-22.1-88.4c0-5.3,1.5-10.3,3.9-14.6c0,0,0,0,0,0c0.8-1.3,1.6-2.6,2.5-3.7 - c20.9-31.3,33-68.5,33-108.4C464,137.9,370.9,48,256,48C141.1,48,48,137.9,48,248.7C48,359.6,141.1,449.4,256,449.4z M352,224 - c17.7,0,32,14.3,32,32c0,17.7-14.3,32-32,32c-17.7,0-32-14.3-32-32C320,238.3,334.3,224,352,224z M256,224c17.7,0,32,14.3,32,32 - c0,17.7-14.3,32-32,32c-17.7,0-32-14.3-32-32C224,238.3,238.3,224,256,224z M160,224c17.7,0,32,14.3,32,32c0,17.7-14.3,32-32,32 - c-17.7,0-32-14.3-32-32C128,238.3,142.3,224,160,224z"/> -</svg> diff --git a/admin/bower_components/Ionicons/src/chatbubble.svg b/admin/bower_components/Ionicons/src/chatbubble.svg deleted file mode 100644 index f9ab693..0000000 --- a/admin/bower_components/Ionicons/src/chatbubble.svg +++ /dev/null @@ -1,9 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" style="enable-background:new 0 0 512 512;" xml:space="preserve"> -<path d="M256,449.4c28.9,0,56.4-5.7,81.3-15.9c0.6-0.3,1.1-0.5,1.7-0.7c0.1,0,0.2,0,0.2-0.1c3.5-1.3,7.3-2,11.2-2 - c4.3,0,8.4,0.8,12.1,2.4l84,30.9l-22.1-88.4c0-5.3,1.5-10.3,3.9-14.6c0,0,0,0,0,0c0.8-1.3,1.6-2.6,2.5-3.7 - c20.9-31.3,33-68.5,33-108.4C464,137.9,370.9,48,256,48C141.1,48,48,137.9,48,248.7C48,359.6,141.1,449.4,256,449.4z"/> -</svg> diff --git a/admin/bower_components/Ionicons/src/chatbubbles.svg b/admin/bower_components/Ionicons/src/chatbubbles.svg deleted file mode 100644 index 8419d26..0000000 --- a/admin/bower_components/Ionicons/src/chatbubbles.svg +++ /dev/null @@ -1,16 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" style="enable-background:new 0 0 512 512;" xml:space="preserve"> -<g> - <path d="M73.3,391C73.3,391,73.3,391,73.3,391c1.8,3,2.8,6.4,2.8,10.2L64,464l56.2-22.1c2.7-1.1,5.6-1.7,8.7-1.7 - c2.8,0,5.5,0.5,8,1.4c0,0,0.1,0,0.2,0c0.4,0.2,0.8,0.3,1.2,0.5c17.8,7.3,37.4,11.4,57.9,11.4c46.3,0,87.6-20.5,114.8-52.6 - c-14.1,3.6-28.9,5.7-44.1,5.7c-95.9,0-173.7-75-173.7-167.5c0-11.8,1.3-23.2,3.7-34.3C66.9,230.9,48,268.6,48,310.6 - c0,28.4,8.6,55.2,23.5,77.5C72.1,388.9,72.7,390,73.3,391z"/> - <path d="M290.3,48c-83.7,0-153.6,57.2-170,133.2c-2.4,11.1-3.7,22.5-3.7,34.3c0,92.5,77.7,167.5,173.7,167.5 - c15.3,0,30-2.1,44.1-5.7c8.1-2.1,16.1-4.5,23.8-7.6c0.5-0.2,0.9-0.4,1.4-0.6c0.1,0,0.2,0,0.2-0.1c2.9-1.1,6.1-1.7,9.3-1.7 - c3.6,0,7,0.7,10.1,2l68.6,25.8l-17-73.8c0-4.4,1.2-8.6,3.3-12.2c0,0,0,0,0,0c0.6-1.1,1.4-2.1,2.1-3.1 - c17.4-26.1,27.5-57.2,27.5-90.5C464,123,386.3,48,290.3,48z"/> -</g> -</svg> diff --git a/admin/bower_components/Ionicons/src/checkmark-circled.svg b/admin/bower_components/Ionicons/src/checkmark-circled.svg deleted file mode 100644 index 818f4e3..0000000 --- a/admin/bower_components/Ionicons/src/checkmark-circled.svg +++ /dev/null @@ -1,13 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" style="enable-background:new 0 0 512 512;" xml:space="preserve"> -<g> - <path d="M256,32C132.3,32,32,132.3,32,256c0,123.7,100.3,224,224,224c123.7,0,224-100.3,224-224C480,132.3,379.7,32,256,32z - M370.9,181.1L231.8,359.6c-1.1,1.1-2.9,3.5-5.1,3.5c-2.3,0-3.8-1.6-5.1-2.9c-1.3-1.3-78.9-75.9-78.9-75.9l-1.5-1.5 - c-0.6-0.9-1.1-2-1.1-3.2c0-1.2,0.5-2.3,1.1-3.2c0.4-0.4,0.7-0.7,1.1-1.2c7.7-8.1,23.3-24.5,24.3-25.5c1.3-1.3,2.4-3,4.8-3 - c2.5,0,4.1,2.1,5.3,3.3c1.2,1.2,45,43.3,45,43.3l111.3-143c1-0.8,2.2-1.4,3.5-1.4c1.3,0,2.5,0.5,3.5,1.3l30.6,24.1 - c0.8,1,1.3,2.2,1.3,3.5C372,179.1,371.5,180.2,370.9,181.1z"/> -</g> -</svg> diff --git a/admin/bower_components/Ionicons/src/checkmark-round.svg b/admin/bower_components/Ionicons/src/checkmark-round.svg deleted file mode 100644 index 0f9e5e0..0000000 --- a/admin/bower_components/Ionicons/src/checkmark-round.svg +++ /dev/null @@ -1,9 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" style="enable-background:new 0 0 512 512;" xml:space="preserve"> -<path d="M448,71.9c-17.3-13.4-41.5-9.3-54.1,9.1L214,344.2l-99.1-107.3c-14.6-16.6-39.1-17.4-54.7-1.8 - c-15.6,15.5-16.4,41.6-1.7,58.1c0,0,120.4,133.6,137.7,147c17.3,13.4,41.5,9.3,54.1-9.1l206.3-301.7 - C469.2,110.9,465.3,85.2,448,71.9z"/> -</svg> diff --git a/admin/bower_components/Ionicons/src/checkmark.svg b/admin/bower_components/Ionicons/src/checkmark.svg deleted file mode 100644 index 5d09152..0000000 --- a/admin/bower_components/Ionicons/src/checkmark.svg +++ /dev/null @@ -1,10 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" style="enable-background:new 0 0 512 512;" xml:space="preserve"> -<path d="M461.6,109.6l-54.9-43.3c-1.7-1.4-3.8-2.4-6.2-2.4c-2.4,0-4.6,1-6.3,2.5L194.5,323c0,0-78.5-75.5-80.7-77.7 - c-2.2-2.2-5.1-5.9-9.5-5.9c-4.4,0-6.4,3.1-8.7,5.4c-1.7,1.8-29.7,31.2-43.5,45.8c-0.8,0.9-1.3,1.4-2,2.1c-1.2,1.7-2,3.6-2,5.7 - c0,2.2,0.8,4,2,5.7l2.8,2.6c0,0,139.3,133.8,141.6,136.1c2.3,2.3,5.1,5.2,9.2,5.2c4,0,7.3-4.3,9.2-6.2L462,121.8 - c1.2-1.7,2-3.6,2-5.8C464,113.5,463,111.4,461.6,109.6z"/> -</svg> diff --git a/admin/bower_components/Ionicons/src/chevron-down.svg b/admin/bower_components/Ionicons/src/chevron-down.svg deleted file mode 100644 index 4d96e34..0000000 --- a/admin/bower_components/Ionicons/src/chevron-down.svg +++ /dev/null @@ -1,9 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" style="enable-background:new 0 0 512 512;" xml:space="preserve"> -<path d="M256,298.3L256,298.3L256,298.3l174.2-167.2c4.3-4.2,11.4-4.1,15.8,0.2l30.6,29.9c4.4,4.3,4.5,11.3,0.2,15.5L264.1,380.9 - c-2.2,2.2-5.2,3.2-8.1,3c-3,0.1-5.9-0.9-8.1-3L35.2,176.7c-4.3-4.2-4.2-11.2,0.2-15.5L66,131.3c4.4-4.3,11.5-4.4,15.8-0.2L256,298.3 - z"/> -</svg> diff --git a/admin/bower_components/Ionicons/src/chevron-left.svg b/admin/bower_components/Ionicons/src/chevron-left.svg deleted file mode 100644 index 2a5847d..0000000 --- a/admin/bower_components/Ionicons/src/chevron-left.svg +++ /dev/null @@ -1,9 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" style="enable-background:new 0 0 512 512;" xml:space="preserve"> -<path d="M213.7,256L213.7,256L213.7,256L380.9,81.9c4.2-4.3,4.1-11.4-0.2-15.8l-29.9-30.6c-4.3-4.4-11.3-4.5-15.5-0.2L131.1,247.9 - c-2.2,2.2-3.2,5.2-3,8.1c-0.1,3,0.9,5.9,3,8.1l204.2,212.7c4.2,4.3,11.2,4.2,15.5-0.2l29.9-30.6c4.3-4.4,4.4-11.5,0.2-15.8 - L213.7,256z"/> -</svg> diff --git a/admin/bower_components/Ionicons/src/chevron-right.svg b/admin/bower_components/Ionicons/src/chevron-right.svg deleted file mode 100644 index c780695..0000000 --- a/admin/bower_components/Ionicons/src/chevron-right.svg +++ /dev/null @@ -1,9 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" style="enable-background:new 0 0 512 512;" xml:space="preserve"> -<path d="M298.3,256L298.3,256L298.3,256L131.1,81.9c-4.2-4.3-4.1-11.4,0.2-15.8l29.9-30.6c4.3-4.4,11.3-4.5,15.5-0.2l204.2,212.7 - c2.2,2.2,3.2,5.2,3,8.1c0.1,3-0.9,5.9-3,8.1L176.7,476.8c-4.2,4.3-11.2,4.2-15.5-0.2L131.3,446c-4.3-4.4-4.4-11.5-0.2-15.8 - L298.3,256z"/> -</svg> diff --git a/admin/bower_components/Ionicons/src/chevron-up.svg b/admin/bower_components/Ionicons/src/chevron-up.svg deleted file mode 100644 index 7ab9d97..0000000 --- a/admin/bower_components/Ionicons/src/chevron-up.svg +++ /dev/null @@ -1,9 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" style="enable-background:new 0 0 512 512;" xml:space="preserve"> -<path d="M256,213.7L256,213.7L256,213.7l174.2,167.2c4.3,4.2,11.4,4.1,15.8-0.2l30.6-29.9c4.4-4.3,4.5-11.3,0.2-15.5L264.1,131.1 - c-2.2-2.2-5.2-3.2-8.1-3c-3-0.1-5.9,0.9-8.1,3L35.2,335.3c-4.3,4.2-4.2,11.2,0.2,15.5L66,380.7c4.4,4.3,11.5,4.4,15.8,0.2L256,213.7 - z"/> -</svg> diff --git a/admin/bower_components/Ionicons/src/clipboard.svg b/admin/bower_components/Ionicons/src/clipboard.svg deleted file mode 100644 index abebc33..0000000 --- a/admin/bower_components/Ionicons/src/clipboard.svg +++ /dev/null @@ -1,22 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" enable-background="new 0 0 512 512" xml:space="preserve"> -<g> - <path d="M161,160.5h192c-1.688-20-9.729-35.45-27.921-40.356c-0.446-0.119-1.12-0.424-1.567-0.541 - c-12.004-3.424-21.012-7.653-21.012-20.781V78.227C302.5,52.691,281.976,32,256.49,32c-25.466,0-45.99,20.691-45.99,46.227v20.595 - c0,13.128-8.592,17.169-20.597,20.593c-0.447,0.117-0.8,0.61-1.266,0.729C170.446,125.05,162.927,140.5,161,160.5z M256.99,64.395 - c7.615,0,13.791,6.195,13.791,13.832c0,7.654-6.176,13.85-13.791,13.85c-7.614,0-13.772-6.195-13.772-13.85 - C243.218,70.59,249.376,64.395,256.99,64.395z"/> - <path d="M405.611,63.5H331.5v13.988c0,10.583,9.193,19.012,19.507,19.012h37.212c6.667,0,12.099,5.435,12.44,12.195l0.085,327.1 - c-0.322,6.432-5.303,11.546-11.514,12.017l-264.418,0.031c-6.211-0.471-11.149-5.695-11.472-12.126l-0.085-327.014 - c0.322-6.761,5.858-12.203,12.506-12.203h37.231c10.313,0,18.507-8.429,18.507-19.012V63.5h-73.131 - C93.25,63.5,80.5,76.058,80.5,91.575v360.38c0,15.502,12.75,28.545,27.869,28.545H256.99h148.621 - c15.138,0,26.889-13.043,26.889-28.545V91.575C432.5,76.058,420.749,63.5,405.611,63.5z"/> - <rect x="144.5" y="192.5" width="112" height="32"/> - <rect x="144.5" y="384.5" width="160" height="32"/> - <rect x="144.5" y="320.5" width="129" height="32"/> - <rect x="144.5" y="256.5" width="208" height="32"/> -</g> -</svg> diff --git a/admin/bower_components/Ionicons/src/clock.svg b/admin/bower_components/Ionicons/src/clock.svg deleted file mode 100644 index 717c318..0000000 --- a/admin/bower_components/Ionicons/src/clock.svg +++ /dev/null @@ -1,21 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" enable-background="new 0 0 512 512" xml:space="preserve"> -<g> - <path d="M255.988,32C132.285,32,32,132.298,32,256c0,123.715,100.285,224,223.988,224C379.703,480,480,379.715,480,256 - C480,132.298,379.703,32,255.988,32z M391.761,391.765c-10.099,10.098-21.126,18.928-32.886,26.42l-15.946-27.62l-13.856,8 - l15.955,27.636c-24.838,13.03-52.372,20.455-81.027,21.624V416h-16v31.825c-28.656-1.166-56.191-8.59-81.03-21.62l15.958-27.641 - l-13.856-8l-15.949,27.625c-11.761-7.492-22.79-16.324-32.889-26.424c-10.099-10.099-18.93-21.127-26.422-32.889l27.624-15.949 - l-8-13.855L85.796,345.03c-13.03-24.839-20.454-52.374-21.621-81.03H96v-16H64.175c1.167-28.655,8.592-56.19,21.623-81.029 - l27.638,15.958l8-13.856l-27.623-15.948c7.492-11.76,16.322-22.787,26.419-32.885c10.1-10.101,21.129-18.933,32.89-26.426 - l15.949,27.624l13.856-8l-15.958-27.64C191.81,72.765,219.345,65.34,248,64.175V96h16V64.176 - c28.654,1.169,56.188,8.595,81.026,21.626l-15.954,27.634l13.856,8l15.945-27.618c11.76,7.492,22.787,16.323,32.886,26.421 - c10.1,10.099,18.931,21.126,26.424,32.887l-27.619,15.946l8,13.856l27.636-15.956c13.031,24.839,20.457,52.373,21.624,81.027H416 - v16h31.824c-1.167,28.655-8.592,56.189-21.622,81.028l-27.637-15.957l-8,13.856l27.621,15.947 - C410.693,370.637,401.861,381.665,391.761,391.765z"/> - <path d="M400,241H284.268c-2.818-5.299-7.083-9.708-12.268-12.708V160h-32v68.292c-9.562,5.534-16,15.866-16,27.708 - c0,17.673,14.327,32,32,32c11.425,0,21.444-5.992,27.106-15H400V241z"/> -</g> -</svg> diff --git a/admin/bower_components/Ionicons/src/close-circled.svg b/admin/bower_components/Ionicons/src/close-circled.svg deleted file mode 100644 index 8705b05..0000000 --- a/admin/bower_components/Ionicons/src/close-circled.svg +++ /dev/null @@ -1,13 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" style="enable-background:new 0 0 512 512;" xml:space="preserve"> -<g> - <path d="M256,33C132.3,33,32,133.3,32,257c0,123.7,100.3,224,224,224c123.7,0,224-100.3,224-224C480,133.3,379.7,33,256,33z - M364.3,332.5c1.5,1.5,2.3,3.5,2.3,5.6c0,2.1-0.8,4.2-2.3,5.6l-21.6,21.7c-1.6,1.6-3.6,2.3-5.6,2.3c-2,0-4.1-0.8-5.6-2.3L256,289.8 - l-75.4,75.7c-1.5,1.6-3.6,2.3-5.6,2.3c-2,0-4.1-0.8-5.6-2.3l-21.6-21.7c-1.5-1.5-2.3-3.5-2.3-5.6c0-2.1,0.8-4.2,2.3-5.6l75.7-76 - l-75.9-75c-3.1-3.1-3.1-8.2,0-11.3l21.6-21.7c1.5-1.5,3.5-2.3,5.6-2.3c2.1,0,4.1,0.8,5.6,2.3l75.7,74.7l75.7-74.7 - c1.5-1.5,3.5-2.3,5.6-2.3c2.1,0,4.1,0.8,5.6,2.3l21.6,21.7c3.1,3.1,3.1,8.2,0,11.3l-75.9,75L364.3,332.5z"/> -</g> -</svg> diff --git a/admin/bower_components/Ionicons/src/close-round.svg b/admin/bower_components/Ionicons/src/close-round.svg deleted file mode 100644 index 0cc853c..0000000 --- a/admin/bower_components/Ionicons/src/close-round.svg +++ /dev/null @@ -1,9 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" style="enable-background:new 0 0 512 512;" xml:space="preserve"> -<path d="M437.5,386.6L306.9,256l130.6-130.6c14.1-14.1,14.1-36.8,0-50.9c-14.1-14.1-36.8-14.1-50.9,0L256,205.1L125.4,74.5 - c-14.1-14.1-36.8-14.1-50.9,0c-14.1,14.1-14.1,36.8,0,50.9L205.1,256L74.5,386.6c-14.1,14.1-14.1,36.8,0,50.9 - c14.1,14.1,36.8,14.1,50.9,0L256,306.9l130.6,130.6c14.1,14.1,36.8,14.1,50.9,0C451.5,423.4,451.5,400.6,437.5,386.6z"/> -</svg> diff --git a/admin/bower_components/Ionicons/src/close.svg b/admin/bower_components/Ionicons/src/close.svg deleted file mode 100644 index aa6b81c..0000000 --- a/admin/bower_components/Ionicons/src/close.svg +++ /dev/null @@ -1,10 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" style="enable-background:new 0 0 512 512;" xml:space="preserve"> -<path d="M443.6,387.1L312.4,255.4l131.5-130c5.4-5.4,5.4-14.2,0-19.6l-37.4-37.6c-2.6-2.6-6.1-4-9.8-4c-3.7,0-7.2,1.5-9.8,4 - L256,197.8L124.9,68.3c-2.6-2.6-6.1-4-9.8-4c-3.7,0-7.2,1.5-9.8,4L68,105.9c-5.4,5.4-5.4,14.2,0,19.6l131.5,130L68.4,387.1 - c-2.6,2.6-4.1,6.1-4.1,9.8c0,3.7,1.4,7.2,4.1,9.8l37.4,37.6c2.7,2.7,6.2,4.1,9.8,4.1c3.5,0,7.1-1.3,9.8-4.1L256,313.1l130.7,131.1 - c2.7,2.7,6.2,4.1,9.8,4.1c3.5,0,7.1-1.3,9.8-4.1l37.4-37.6c2.6-2.6,4.1-6.1,4.1-9.8C447.7,393.2,446.2,389.7,443.6,387.1z"/> -</svg> diff --git a/admin/bower_components/Ionicons/src/closed-captioning.svg b/admin/bower_components/Ionicons/src/closed-captioning.svg deleted file mode 100644 index dc1c939..0000000 --- a/admin/bower_components/Ionicons/src/closed-captioning.svg +++ /dev/null @@ -1,31 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" enable-background="new 0 0 512 512" xml:space="preserve"> -<g> - <g> - <path d="M0,64v384h512V64H0z M464,255.825c0.045,26.724-1.547,47.143-3.797,80.223S441,392.5,401.097,396.168 - C361.201,399.835,305.369,400.12,256,400c-49,0.12-105.198-0.165-145.094-3.832c-39.903-3.668-56.855-27.04-59.105-60.12 - s-3.841-53.499-3.796-80.223c-0.045-26.725,0.095-44.124,3.798-80.224s23.01-56.267,59.106-59.934S201.842,112,248.704,112 - c2.431,0,5.296,0,7.296,0c2.437,0,4.871,0,7.302,0c46.862,0,101.698,0,137.795,3.667s55.403,23.833,59.106,59.934 - S464.045,229.1,464,255.825z"/> - </g> - <g> - <path d="M372,283.846v0.766c0,18.639-11.581,29.566-27.003,29.566c-15.418,0-25.808-12.309-27.284-29.566 - c0,0-1.335-9.078-1.335-27.298s1.546-29.759,1.546-29.759c2.711-19.473,12.188-29.566,27.607-29.566 - c15.367,0,27.584,13.262,27.584,33.388c0.023,0.086,0.01,0.624,0.01,0.624h51.541c0-25-6.309-47.556-18.92-61.746 - c-12.617-14.183-31.403-21.273-56.369-21.273c-12.483,0-23.93,1.654-34.33,4.942c-10.404,3.295-19.376,9.062-26.916,17.291 - c-7.545,8.234-13.397,19.254-17.555,33.059c-4.162,13.809-6.242,31.224-6.242,52.247c0,20.52,1.688,37.684,5.072,51.488 - c3.377,13.811,8.388,24.83,15.018,33.059c6.632,8.234,14.953,13.935,24.967,17.1c10.01,3.163,21.779,4.748,35.304,4.748 - c28.604,0,49.089-7.258,61.443-21.318C418.486,327.537,424.666,307,424.666,280H372C372,280,372,282.876,372,283.846z"/> - <path d="M195,283.846v0.766c0,18.639-11.581,29.566-27.003,29.566c-15.418,0-25.808-12.309-27.284-29.566 - c0,0-1.335-9.078-1.335-27.298s1.546-29.759,1.546-29.759c2.711-19.473,12.188-29.566,27.607-29.566 - c15.367,0,27.584,13.262,27.584,33.388c0.023,0.086,0.01,0.624,0.01,0.624h51.541c0-25-6.309-47.556-18.92-61.746 - c-12.617-14.183-31.403-21.273-56.369-21.273c-12.483,0-23.93,1.654-34.33,4.942c-10.404,3.295-19.376,9.062-26.916,17.291 - c-7.545,8.234-13.397,19.254-17.555,33.059c-4.162,13.809-6.242,31.224-6.242,52.247c0,20.52,1.688,37.684,5.072,51.488 - c3.377,13.811,8.388,24.83,15.018,33.059c6.632,8.234,14.953,13.935,24.967,17.1c10.01,3.163,21.779,4.748,35.304,4.748 - c28.604,0,49.089-7.258,61.443-21.318C241.486,327.537,247.666,307,247.666,280H195C195,280,195,282.876,195,283.846z"/> - </g> -</g> -</svg> diff --git a/admin/bower_components/Ionicons/src/cloud.svg b/admin/bower_components/Ionicons/src/cloud.svg deleted file mode 100644 index 7a687a6..0000000 --- a/admin/bower_components/Ionicons/src/cloud.svg +++ /dev/null @@ -1,9 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" style="enable-background:new 0 0 512 512;" xml:space="preserve"> -<path d="M398.1,233.2c0-1.2,0.2-2.4,0.2-3.6c0-65-51.8-117.6-115.7-117.6c-46.1,0-85.7,27.4-104.3,67c-8.1-4.1-17.2-6.5-26.8-6.5 - c-29.5,0-54.1,21.9-58.8,50.5C57.3,235.2,32,269.1,32,309c0,50.2,40.1,90.9,89.5,91h276.7l0,0c45.2-0.2,81.7-37.5,81.7-83.4 - C480,270.6,443.3,233.3,398.1,233.2z"/> -</svg> diff --git a/admin/bower_components/Ionicons/src/code-download.svg b/admin/bower_components/Ionicons/src/code-download.svg deleted file mode 100644 index bcdd4ac..0000000 --- a/admin/bower_components/Ionicons/src/code-download.svg +++ /dev/null @@ -1,31 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" enable-background="new 0 0 512 512" xml:space="preserve"> -<g> - <g> - <g> - <path d="M330.967,284.104c6.48-6.467,6.48-16.951,0-23.422c-6.48-6.467-17.342-6.467-23.823,0L272,295.432V176.58 - c0-9.151-6.839-16.56-15.999-16.56c-9.162,0-16.001,7.408-16.001,16.56v118.852l-35.005-34.75 - c-6.481-6.467-17.095-6.467-23.573,0c-6.482,6.471-6.539,16.955-0.057,23.422l63.07,63.023c0.02,0.02,0.028,0.037,0.05,0.057 - c0.725,0.716,1.513,1.367,2.368,1.945c0.102,0.067,0.2,0.134,0.302,0.2c0.322,0.206,0.651,0.403,0.99,0.587 - c0.117,0.064,0.231,0.133,0.35,0.193c0.421,0.218,0.849,0.423,1.292,0.605c0.002,0.001,0.004,0.001,0.006,0.002 - c0.405,0.167,0.817,0.308,1.233,0.442c0.112,0.037,0.222,0.085,0.335,0.118c0.151,0.047,0.307,0.074,0.461,0.115 - c1.424,0.385,2.872,0.588,4.315,0.588c1.442,0,2.89-0.203,4.312-0.588c0.153-0.041,0.312-0.068,0.464-0.115 - c0.113-0.033,0.224-0.081,0.335-0.118c0.416-0.135,0.829-0.275,1.233-0.442c0.002-0.001,0.004-0.001,0.007-0.002 - c0.441-0.183,0.87-0.387,1.289-0.604c0.122-0.064,0.24-0.133,0.36-0.198c0.332-0.185,0.658-0.376,0.975-0.579 - c0.109-0.069,0.217-0.14,0.323-0.212c0.408-0.274,0.806-0.562,1.184-0.872c0.004-0.002,0.007-0.004,0.011-0.006 - c0.406-0.332,0.791-0.684,1.162-1.051c0.024-0.022,0.051-0.043,0.074-0.066L330.967,284.104z"/> - </g> - </g> - <g> - <path d="M168,392c-6.143,0-12.285-2.344-16.971-7.029l-112-112c-9.373-9.373-9.373-24.569,0-33.941l112-112 - c9.373-9.372,24.568-9.372,33.941,0c9.371,9.372,9.371,24.568,0,33.941L89.941,256l95.029,95.029 - c9.371,9.372,9.371,24.568,0,33.941C180.283,389.656,174.143,392,168,392z"/> - <path d="M344,392c6.143,0,12.285-2.344,16.971-7.029l112-112c9.373-9.373,9.373-24.569,0-33.941l-112-112 - c-9.373-9.372-24.568-9.372-33.941,0c-9.371,9.372-9.371,24.568,0,33.941L422.059,256l-95.029,95.029 - c-9.371,9.372-9.371,24.568,0,33.941C331.717,389.656,337.857,392,344,392z"/> - </g> -</g> -</svg> diff --git a/admin/bower_components/Ionicons/src/code-working.svg b/admin/bower_components/Ionicons/src/code-working.svg deleted file mode 100644 index b0d367a..0000000 --- a/admin/bower_components/Ionicons/src/code-working.svg +++ /dev/null @@ -1,21 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" enable-background="new 0 0 512 512" xml:space="preserve"> -<g> - <g> - <circle cx="184.166" cy="256.166" r="24"/> - <circle cx="256.166" cy="256.166" r="24"/> - <circle cx="328.166" cy="256.166" r="24"/> - </g> - <g> - <path d="M168,392c-6.143,0-12.285-2.344-16.971-7.029l-112-112c-9.373-9.373-9.373-24.569,0-33.941l112-112 - c9.373-9.372,24.568-9.372,33.941,0c9.371,9.372,9.371,24.568,0,33.941L89.941,256l95.029,95.029 - c9.371,9.372,9.371,24.568,0,33.941C180.283,389.656,174.143,392,168,392z"/> - <path d="M344,392c6.143,0,12.285-2.344,16.971-7.029l112-112c9.373-9.373,9.373-24.569,0-33.941l-112-112 - c-9.373-9.372-24.568-9.372-33.941,0c-9.371,9.372-9.371,24.568,0,33.941L422.059,256l-95.029,95.029 - c-9.371,9.372-9.371,24.568,0,33.941C331.717,389.656,337.857,392,344,392z"/> - </g> -</g> -</svg> diff --git a/admin/bower_components/Ionicons/src/code.svg b/admin/bower_components/Ionicons/src/code.svg deleted file mode 100644 index 26cbd29..0000000 --- a/admin/bower_components/Ionicons/src/code.svg +++ /dev/null @@ -1,14 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" enable-background="new 0 0 512 512" xml:space="preserve"> -<g> - <path d="M168,392c-6.143,0-12.285-2.344-16.971-7.029l-112-112c-9.373-9.373-9.373-24.569,0-33.941l112-112 - c9.373-9.372,24.568-9.372,33.941,0c9.371,9.372,9.371,24.568,0,33.941L89.941,256l95.029,95.029 - c9.371,9.373,9.371,24.568,0,33.941C180.283,389.656,174.143,392,168,392z"/> - <path d="M344,392c6.143,0,12.285-2.344,16.971-7.029l112-112c9.373-9.373,9.373-24.569,0-33.941l-112-112 - c-9.373-9.372-24.568-9.372-33.941,0c-9.371,9.372-9.371,24.568,0,33.941L422.059,256l-95.029,95.029 - c-9.371,9.373-9.371,24.568,0,33.941C331.717,389.656,337.857,392,344,392z"/> -</g> -</svg> diff --git a/admin/bower_components/Ionicons/src/coffee.svg b/admin/bower_components/Ionicons/src/coffee.svg deleted file mode 100644 index 2a69c9f..0000000 --- a/admin/bower_components/Ionicons/src/coffee.svg +++ /dev/null @@ -1,13 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" style="enable-background:new 0 0 512 512;" xml:space="preserve"> -<path d="M383.1,257.4c0.6-5.4,0.9-10,0.9-13.8c0-19.6-3.3-19.7-16-19.7h-75.5c7.3-12,11.5-24.4,11.5-37c0-37.9-57.3-56.4-57.3-88 - c0-11.7,5.1-21.3,9.3-34.9c-26.5,7-47.4,33.5-47.4,61.6c0,48.3,56.3,48.7,56.3,84.8c0,4.5-1.4,8.5-2.1,13.5h-55.9 - c0.8-3,1.3-6.2,1.3-9.3c0-22.8-39.1-33.9-39.1-52.8c0-7,1-12.8,3.2-21c-12.9,5.1-28.3,20-28.3,36.8c0,26.7,31.9,29.3,36.8,46.3H80 - c-12.7,0-16,0.1-16,19.7c0,19.6,7.7,61.3,28.3,111c20.6,49.7,44.4,71.6,61.2,86.2l0.1-0.2c5.1,4.6,11.8,7.3,19.2,7.3h102.4 - c7.4,0,14.1-2.7,19.2-7.3l0.1,0.2c9-7.8,20-17.8,31.4-32.9c4.7,2,9.8,3.7,15.4,5c8.4,2,16.8,3,24.8,3c24,0,45.6-9.2,60.8-25.8 - c13.4-14.6,21.1-34.4,21.1-54.2C448,297,420,264.5,383.1,257.4z M366.1,384.2c-8.6,0-15.6-1.2-22.1-4.2c4-8,7.9-15.9,11.7-25.1 - c10.1-24.4,17.1-47,21.6-65.8c22,4.3,38.7,23.8,38.7,47.1C416,358.9,398.8,384.2,366.1,384.2z"/> -</svg> diff --git a/admin/bower_components/Ionicons/src/compass.svg b/admin/bower_components/Ionicons/src/compass.svg deleted file mode 100644 index 89bde8b..0000000 --- a/admin/bower_components/Ionicons/src/compass.svg +++ /dev/null @@ -1,16 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" style="enable-background:new 0 0 512 512;" xml:space="preserve"> -<g> - <g> - <path d="M256,32c-39,0-75.6,10-107.5,27.4C136.9,42.9,117.7,32,96,32c-35.3,0-64,28.7-64,64c0,21.7,10.9,40.9,27.4,52.5 - C42,180.4,32,217,32,256c0,123.7,100.3,224,224,224c123.7,0,224-100.3,224-224C480,132.3,379.7,32,256,32z M64,96 - c0-17.7,14.3-32,32-32c10.5,0,19.8,5,25.6,12.8c-17,12.7-32.1,27.8-44.8,44.8C69,115.8,64,106.5,64,96z M391.8,391.8 - C355.5,428,307.3,448,256,448c-51.3,0-99.5-20-135.8-56.2C84,355.5,64,307.3,64,256c0-51.3,20-99.5,56.2-135.8 - C156.5,84,204.7,64,256,64c51.3,0,99.5,20,135.8,56.2C428,156.5,448,204.7,448,256C448,307.3,428,355.5,391.8,391.8z"/> - </g> - <path d="M352,128c0,0-101.6,83.7-120,104s-72,152-72,152s102.4-82.3,120-104S352,128,352,128z"/> -</g> -</svg> diff --git a/admin/bower_components/Ionicons/src/compose.svg b/admin/bower_components/Ionicons/src/compose.svg deleted file mode 100644 index 82f190d..0000000 --- a/admin/bower_components/Ionicons/src/compose.svg +++ /dev/null @@ -1,14 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" style="enable-background:new 0 0 512 512;" xml:space="preserve"> -<g> - <path d="M442.8,99.6l-30.4-30.4c-7-6.9-18.2-6.9-25.1,0L355.5,101l55.5,55.5l31.8-31.7C449.7,117.7,449.7,106.5,442.8,99.6z"/> - <g> - <polygon points="346.1,110.5 174.1,288 160,352 224,337.9 400.6,164.9 "/> - </g> - <path d="M384,256v150c0,5.1-3.9,10.1-9.2,10.1s-269-0.1-269-0.1c-5.6,0-9.8-5.4-9.8-10s0-268,0-268c0-5,4.7-10,10.6-10H256l32-32 - H87.4c-13,0-23.4,10.3-23.4,23.3v305.3c0,12.9,10.5,23.4,23.4,23.4h305.3c12.9,0,23.3-10.5,23.3-23.4V224L384,256z"/> -</g> -</svg> diff --git a/admin/bower_components/Ionicons/src/connection-bars.svg b/admin/bower_components/Ionicons/src/connection-bars.svg deleted file mode 100644 index ffd98be..0000000 --- a/admin/bower_components/Ionicons/src/connection-bars.svg +++ /dev/null @@ -1,12 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" style="enable-background:new 0 0 512 512;" xml:space="preserve"> -<g> - <rect x="80" y="352" width="64" height="64"/> - <rect x="176" y="288" width="64" height="128"/> - <rect x="272" y="192" width="64" height="224"/> - <rect x="368" y="96" width="64" height="320"/> -</g> -</svg> diff --git a/admin/bower_components/Ionicons/src/contrast.svg b/admin/bower_components/Ionicons/src/contrast.svg deleted file mode 100644 index ffcecdf..0000000 --- a/admin/bower_components/Ionicons/src/contrast.svg +++ /dev/null @@ -1,9 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" style="enable-background:new 0 0 512 512;" xml:space="preserve"> -<path d="M256,32C132.3,32,32,132.3,32,256c0,123.7,100.3,224,224,224c123.7,0,224-100.3,224-224C480,132.3,379.7,32,256,32z - M391.8,391.8C355.5,428,307,448,256,448V64c51,0,99.5,20,135.8,56.2C428,156.5,448,204.7,448,256C448,307.3,428,355.5,391.8,391.8z - "/> -</svg> diff --git a/admin/bower_components/Ionicons/src/crop.svg b/admin/bower_components/Ionicons/src/crop.svg deleted file mode 100644 index 1b3d6da..0000000 --- a/admin/bower_components/Ionicons/src/crop.svg +++ /dev/null @@ -1,11 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" enable-background="new 0 0 512 512" xml:space="preserve"> -<g> - <rect x="352" y="432" width="64" height="48"/> - <polygon points="416,352 416,96 176,96 176,160 352,160 352,352 160,352 160,32 96,32 96,96 32,96 32,160 96,160 96,416 480,416 - 480,352 "/> -</g> -</svg> diff --git a/admin/bower_components/Ionicons/src/cube.svg b/admin/bower_components/Ionicons/src/cube.svg deleted file mode 100644 index cf94545..0000000 --- a/admin/bower_components/Ionicons/src/cube.svg +++ /dev/null @@ -1,19 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" enable-background="new 0 0 512 512" xml:space="preserve"> -<g> - <path d="M467.301,168.084c-1.805,0-3.516,0.329-5.07,0.962l-2.281,1.15l-171.475,88.938l-3.888,1.996c0,0-0.052,0.023-0.052,0.047 - c-7.56,4.668-12.535,12.506-12.535,21.425v185.854c0,6.382,5.649,11.544,12.69,11.544c2.178,0,4.251-0.513,6.065-1.404 - c0.155-0.095,0.363-0.188,0.519-0.282l174.731-92.694l0.259-0.141c8.241-4.504,13.735-12.742,13.735-22.105V179.582 - C480,173.223,474.299,168.084,467.301,168.084z"/> - <path d="M454.273,118.521l-181.7-81.731c0,0-10.659-4.79-16.577-4.79s-16.526,4.79-16.526,4.79L57.614,118.521 - c0,0-7.989,3.292-7.989,9.479c0,6.562,8.3,11.5,8.3,11.5l182.582,96.371l2.902,1.479c3.784,1.687,8.077,2.649,12.587,2.649 - c4.561,0,8.915-0.963,12.742-2.696l2.539-1.315l182.893-96.536c0,0,7.508-4.036,7.508-11.453 - C461.678,121.5,454.273,118.521,454.273,118.521z"/> - <path d="M227.466,261.178l-3.992-2.043L52.042,170.197l-2.28-1.15c-1.495-0.634-3.258-0.962-5.071-0.962 - c-6.997,0-12.69,5.138-12.69,11.497v183.792c0,9.388,5.485,17.602,13.727,22.105l0.208,0.141l174.739,92.694l0,0 - c1.918,1.08,4.199,1.687,6.636,1.687c6.989,0,12.69-5.162,12.69-11.544V282.603C240,273.684,235.024,265.846,227.466,261.178z"/> -</g> -</svg> diff --git a/admin/bower_components/Ionicons/src/disc.svg b/admin/bower_components/Ionicons/src/disc.svg deleted file mode 100644 index ef17856..0000000 --- a/admin/bower_components/Ionicons/src/disc.svg +++ /dev/null @@ -1,13 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" style="enable-background:new 0 0 512 512;" xml:space="preserve"> -<g> - <path d="M256,158.9c-53.7,0-97.2,43.5-97.2,97.2c0,53.7,43.5,97.1,97.2,97.1c53.7,0,97.2-43.5,97.2-97.1 - C353.2,202.4,309.7,158.9,256,158.9z M256,299.5c-24,0-43.5-19.5-43.5-43.5c0-24,19.5-43.5,43.5-43.5c24,0,43.5,19.5,43.5,43.5 - C299.5,280,280,299.5,256,299.5z"/> - <path d="M256,32C132.3,32,32,132.3,32,256c0,123.7,100.3,224,224,224s224-100.3,224-224C480,132.3,379.7,32,256,32z M256,378.8 - c-67.8,0-122.8-55-122.8-122.8c0-67.8,55-122.8,122.8-122.8c67.8,0,122.8,55,122.8,122.8C378.8,323.8,323.8,378.8,256,378.8z"/> -</g> -</svg> diff --git a/admin/bower_components/Ionicons/src/document-text.svg b/admin/bower_components/Ionicons/src/document-text.svg deleted file mode 100644 index 1a037e5..0000000 --- a/admin/bower_components/Ionicons/src/document-text.svg +++ /dev/null @@ -1,15 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" style="enable-background:new 0 0 512 512;" xml:space="preserve"> -<g> - <path d="M398.6,169.2c-0.9-2.2-2-4.3-3.5-6.1l-83.8-91.7c-1.9-2.1-4.2-3.6-6.7-4.9c-2.9-1.5-6.1-2.1-9.5-2.1H135.2 - c-12.4,0-22.7,10.6-22.7,23.9v335.2c0,13.4,10.3,24.9,22.7,24.9h243.1c12.4,0,22.2-11.5,22.2-24.9V179.4 - C400.5,175.8,400,172.3,398.6,169.2z M160.5,178.6c0-1.5,1.8-2.1,3.4-2.1h70.8c1.6,0,2.8,0.6,2.8,2.1v10.8c0,1.4-1.1,3.1-2.8,3.1 - h-70.8c-1.6,0-3.4-1.7-3.4-3.1V178.6z M160.5,306.6c0-1.5,1.8-2.1,3.4-2.1h122.2c1.6,0,2.4,0.6,2.4,2.1v10.8c0,1.4-0.7,3.1-2.4,3.1 - H163.9c-1.6,0-3.4-1.7-3.4-3.1V306.6z M320.5,381.4c0,1.4-0.7,3.1-2.4,3.1H163.9c-1.6,0-3.4-1.7-3.4-3.1v-10.8 - c0-1.5,1.8-2.1,3.4-2.1h154.2c1.6,0,2.4,0.6,2.4,2.1V381.4z M352.5,253.4c0,1.4-0.7,3.1-2.4,3.1H163.9c-1.6,0-3.4-1.7-3.4-3.1 - v-10.8c0-1.5,1.8-2.1,3.4-2.1h186.2c1.6,0,2.4,0.6,2.4,2.1V253.4z M305.6,177.5c-5.6,0-11.1-5.2-11.1-11.3v-66l71.2,77.3H305.6z"/> -</g> -</svg> diff --git a/admin/bower_components/Ionicons/src/document.svg b/admin/bower_components/Ionicons/src/document.svg deleted file mode 100644 index ed20170..0000000 --- a/admin/bower_components/Ionicons/src/document.svg +++ /dev/null @@ -1,10 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" style="enable-background:new 0 0 512 512;" xml:space="preserve"> -<path d="M399.3,168.9c-0.7-2.9-2-5-3.5-6.8l-83.7-91.7c-1.9-2.1-4.1-3.1-6.6-4.4c-2.9-1.5-6.1-1.6-9.4-1.6H136.2 - c-12.4,0-23.7,9.6-23.7,22.9v335.2c0,13.4,11.3,25.9,23.7,25.9h243.1c12.4,0,21.2-12.5,21.2-25.9V178.4 - C400.5,174.8,400.1,172.2,399.3,168.9z M305.5,111l58,63.5h-58V111z M144.5,416.5v-320h129v81.7c0,14.8,13.4,28.3,28.1,28.3h66.9 - v210H144.5z"/> -</svg> diff --git a/admin/bower_components/Ionicons/src/drag.svg b/admin/bower_components/Ionicons/src/drag.svg deleted file mode 100644 index 2961cd4..0000000 --- a/admin/bower_components/Ionicons/src/drag.svg +++ /dev/null @@ -1,11 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" style="enable-background:new 0 0 512 512;" xml:space="preserve"> -<g> - <rect y="144" width="512" height="32"/> - <rect y="240" width="512" height="32"/> - <rect y="336" width="512" height="32"/> -</g> -</svg> diff --git a/admin/bower_components/Ionicons/src/earth.svg b/admin/bower_components/Ionicons/src/earth.svg deleted file mode 100644 index 81258dc..0000000 --- a/admin/bower_components/Ionicons/src/earth.svg +++ /dev/null @@ -1,44 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" enable-background="new 0 0 512 512" xml:space="preserve"> -<g> - <path d="M357.275,125.525c-2.209-3.986-9.498-11.837-13.977-13.325c-5.979-0.921-2.398,4.413-2.398,6.7 - c-1.543,1.157-3.941,2.454-5.102,4c-0.699,0.6,1.704,6.103,6.337,4.335s1.964,1.799,5.164,8.865s9.607,7.207,12.49,5.067 - C363.444,138.455,359.286,129.155,357.275,125.525z"/> - <path d="M375.8,170.6c-0.001,0.006-0.004,0.011-0.005,0.017C375.795,170.629,375.797,170.629,375.8,170.6z"/> - <path d="M434.6,197.1C435,197.1,432.8,196.7,434.6,197.1L434.6,197.1z"/> - <path d="M256,32C132.3,32,32,132.3,32,256c0,123.701,100.3,224,224,224c123.701,0,224-100.299,224-224C480,132.3,379.701,32,256,32 - z M173.399,429.424c-5.515-3.133-9.374-7.56-10.961-15.929c-3.947-20.808-0.303-32.067,17.962-44.245 - c8.604-5.736,10.022-12.672,16.9-19.55c1.685-2.14,6.211-10.374,9.2-10.8c3.637-0.779,13.709-2.527,15.7-6.5 - c3.79-5.146,12.127-27.398,15.8-29.602c5.997-3.925,14.419-15.96,8.3-23.1c-7.021-8.643-16.799-8.766-25.9-13.301 - c-8.015-4.008-11.574-22.281-17.7-28.601c-11.912-12.136-29.999-19.199-45-26.7c-8.116-3.25-7.344-4.256-13.7,2.1 - c-8.162,8.162-20.093-2.067-21.3-10.5c-0.09-2.802-3.296-18.216-1.4-19.4c17.956-11.225-8.328-8.64-10.5-13.8 - c-5.355-14.993,13.008-26.86,25.4-28.1c13.885-1.738,16.784,21.895,22.1,19.9c2.556-1.276,2.566-12.394,2.9-14.8 - c1.267-8.029,3.588-9.273,11.4-12.175c9.098-3.379,16.063-7.617,25.7-9.225c11.006-3.195,20.317-1.533,28.8-8.6 - c3.888-2.915,6.704,1.58,10.4,2.4c7.999,1.599,9.7-11.1,9.7-15.9c-0.034-4.665,1.265-8.63-4.7-13.6 - c-7.806-6.069-19.029-0.869-25.3,5.4c-7.574,7.035-16.357,6.55-13.8-5.6c0.634-4.433,10.209-9.587,14-12 - c3.7-2.222,5.904,2.522,10.4,1.4c6.579-1.463,9.034,4.735,16.8,4.8c3.233-0.731,14.796-6.881,8.614-19.366 - C254.143,64.021,255.07,64,256,64c1.855,0,3.707,0.034,5.555,0.086c2.805,8.881-5.965,16.443-1.555,27.614 - c8.79,21.475,15.992,3.014,24.7-7c2.849-2.849,4.633-2.211,9.3-3.1c2.896-0.483,7.055-9.27,8.393-11.982 - c20.058,4.956,39.121,13.127,56.567,24.255c-7.447,0.792-9.348-1.396-9.234,7.377c0.042,3.317,0.297,13.319,5.274,14.15 - c8.277,0.975,6.781,6.832,14.551,7.85c7.443,0.976,2.816,7.553,5.851,14.05c3.393,10.227-19.806,13.302-24.302,14.8 - c-13.64,4.554,6.34,24.41,15.2,22.3c2.817-0.704,12.215-1.902,12.867-5.067c-0.011-0.323-1.836-11.012-0.867-12.233 - c1.533-1.934,5.123-2.946,10.776,0.255c13.374,7.573,20.146,25.7,35.897,29.295c2.146,0.489,5.86-0.15,8.494,2.033 - c2.231,3.015,7.92,8.416,1.131,8.416c-9.017-2.003-13.78,0.859-21.198-4.874c-7.733-5.977-12.543-10.891-22.75-11.076 - c-8.79-0.159-16.68-3.819-25.738-2.35c-5.05,0.819-10.038,2.811-14.912,4.3c-4.617,1.538-5.51,9.765-10.2,10.7 - c-19.467,4.581-15.261,23.169-18.773,37.913c-1.351,5.662-6.025,21.003-0.926,26.087c9.12,8.854,19.783,21.035,33.176,22.963 - c7.206,1.037,22.954-4.576,27.823,2.737c2.062,4.104,7.447-3.03,8.9,0.601c3.663,10.988-4.263,18.186-4.337,28.551 - c-0.11,15.203,9.178,20.57-3.263,34.148c-13.642,13.607-4.333,30.788-11.9,47c-4.042,8.337-4.808,19.894-10.872,23.777 - c-13.321,8.532-27.7,15.399-42.714,20.384c-26.627,8.838-55.155,11.672-83.017,8.456c-14.619-1.688-29.041-5.057-42.88-10.065 - c-3.769-1.363-7.28-2.505-10.472-3.704C178.143,431.619,175.759,430.55,173.399,429.424z M131.699,402.329 - c-0.468-0.397-0.935-0.796-1.399-1.198c-3.444-2.992-6.802-6.113-10.06-9.371c-3.388-3.388-6.634-6.881-9.734-10.471 - c-0.035-0.041-0.07-0.082-0.105-0.123c-0.637-0.738-1.257-1.486-1.882-2.234C56.834,316.471,49.259,225.004,92.6,155.1 - c6.078,6.078-4.101,18.024,7.5,26c5.124,3.606,10.021,2.159,9,8.8c-0.993,6.449,5.355,6.335,6.3,12 - c2.842,12.429,19.207,18.642,9.9,32.6c-9.118,12.625-16.992,26.729-10.1,42.8c2.254,5.86,7.919,11.858,12.222,16.244 - c7.813,7.966,7.377,3.188,7.377,13.256c-0.156,4.373,5.261,8.897,4.7,11.7c-1.001,8.011-2.904,15.93-3.9,23.9 - c-1.792,28.638-0.129,56.662,21.3,78.1c-7.969-4.806-15.636-10.249-22.968-16.29C133.183,403.591,132.44,402.961,131.699,402.329z" - /> -</g> -</svg> diff --git a/admin/bower_components/Ionicons/src/easel.svg b/admin/bower_components/Ionicons/src/easel.svg deleted file mode 100644 index 75301a3..0000000 --- a/admin/bower_components/Ionicons/src/easel.svg +++ /dev/null @@ -1,15 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" enable-background="new 0 0 512 512" xml:space="preserve"> -<g> - <rect x="80" y="144" width="352" height="192"/> - <path d="M464,96H48c-8.837,0-16,7.163-16,16v256c0,8.837,6.932,16,15.768,16H464c8.837,0,16-7.163,16-16V112 - C480,103.163,472.837,96,464,96z M448,352H64V128h384V352z"/> - <polygon points="80,480 112,480 140.147,400 108.835,400 "/> - <polygon points="270.83,32 241.472,32 224.171,80 288.099,80 "/> - <polygon points="371.853,400 400,480 432,480 403.22,400 "/> - <rect x="240" y="400" width="32" height="48"/> -</g> -</svg> diff --git a/admin/bower_components/Ionicons/src/edit.svg b/admin/bower_components/Ionicons/src/edit.svg deleted file mode 100644 index 50d410c..0000000 --- a/admin/bower_components/Ionicons/src/edit.svg +++ /dev/null @@ -1,13 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" enable-background="new 0 0 512 512" xml:space="preserve"> -<g> - - <rect x="178.846" y="92.087" transform="matrix(-0.7071 -0.7071 0.7071 -0.7071 224.3476 631.1498)" width="128.085" height="354.049"/> - <path d="M471.723,88.393l-48.115-48.114c-11.723-11.724-31.558-10.896-44.304,1.85l-45.202,45.203l90.569,90.568l45.202-45.202 - C482.616,119.952,483.445,100.116,471.723,88.393z"/> - <polygon points="64.021,363.252 32,480 148.737,447.979 "/> -</g> -</svg> diff --git a/admin/bower_components/Ionicons/src/egg.svg b/admin/bower_components/Ionicons/src/egg.svg deleted file mode 100644 index 4ac5a56..0000000 --- a/admin/bower_components/Ionicons/src/egg.svg +++ /dev/null @@ -1,7 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" style="enable-background:new 0 0 512 512;" xml:space="preserve"> -<path d="M256,32C192,32,96,165.2,96,288.9C96,412.6,160,480,256,480s160-67.4,160-191.1C416,165.2,320,32,256,32z"/> -</svg> diff --git a/admin/bower_components/Ionicons/src/eject.svg b/admin/bower_components/Ionicons/src/eject.svg deleted file mode 100644 index c9e173e..0000000 --- a/admin/bower_components/Ionicons/src/eject.svg +++ /dev/null @@ -1,12 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" style="enable-background:new 0 0 512 512;" xml:space="preserve"> -<g> - <path d="M399,320L399,320c10,0,16.8-7.1,16.8-15.9c0-3.3-1.1-6.1-2.8-9L275.3,104.7c-4.6-5.3-11.5-8.7-19.3-8.7 - c-7.7,0-14.6,3.4-19.2,8.7l-138,190.8c-1.7,2.6-2.6,5.5-2.6,8.7c0,8.7,6.8,15.8,16.8,15.8v0H399z"/> - <path d="M403.7,352H108.4c-6.8,0-12.4,5.4-12.4,12.2v39.6c0,6.7,5.5,12.2,12.4,12.2h295.3c6.8,0,12.3-5.5,12.3-12.2v-39.6 - C416,357.4,410.5,352,403.7,352z"/> -</g> -</svg> diff --git a/admin/bower_components/Ionicons/src/email-unread.svg b/admin/bower_components/Ionicons/src/email-unread.svg deleted file mode 100644 index c05cfae..0000000 --- a/admin/bower_components/Ionicons/src/email-unread.svg +++ /dev/null @@ -1,19 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" enable-background="new 0 0 512 512" xml:space="preserve"> -<g> - <circle cx="432" cy="160" r="64"/> - <g> - <path d="M225,160H33.799c-11.1,0-13.898,3-11.299,10.5c1.5,4.4,8.4,8.1,12.5,10.2c11,5.8,163.799,89.1,169.5,92.1 - c5.699,3,11.5,4.4,20.5,4.4s14.799-1.4,20.5-4.4c3.79-1.995,72.625-39.497,121.559-66.107C357.594,193.551,352,177.433,352,160 - H225z"/> - <path d="M293.199,273.3l82.201,92.5c2,2,2.898,4.4,1.799,5.601c-1.199,1.1-3.799,0.5-5.9-1.4l-98.6-83.2 - c-14.9,9.601-25.4,16.2-27.199,17.2c-7.701,3.9-13.1,4.4-20.5,4.4s-12.801-0.5-20.5-4.4c-1.9-1-12.301-7.6-27.201-17.2l-98.6,83.2 - c-2,2-4.699,2.6-5.9,1.4C71.6,370.3,72.5,367.8,74.5,365.8l82.1-92.5C107.9,241.8,33.5,189.4,25.299,185.2 - C16.5,180.7,16,186,16,190.1c0,4.101,0,205,0,205C16,404.4,29.699,416,39.5,416H225h185.5c9.799,0,21.5-11.7,21.5-20.9 - c0,0,0-94.398,0-155.1c-21.726,0-41.416-8.673-55.832-22.729C350.167,235.173,318.36,257.025,293.199,273.3z"/> - </g> -</g> -</svg> diff --git a/admin/bower_components/Ionicons/src/email.svg b/admin/bower_components/Ionicons/src/email.svg deleted file mode 100644 index e99edb3..0000000 --- a/admin/bower_components/Ionicons/src/email.svg +++ /dev/null @@ -1,15 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" style="enable-background:new 0 0 512 512;" xml:space="preserve"> -<g> - <path d="M67,148.7c11,5.8,163.8,89.1,169.5,92.1c5.7,3,11.5,4.4,20.5,4.4c9,0,14.8-1.4,20.5-4.4c5.7-3,158.5-86.3,169.5-92.1 - c4.1-2.1,11-5.9,12.5-10.2c2.6-7.6-0.2-10.5-11.3-10.5H257H65.8c-11.1,0-13.9,3-11.3,10.5C56,142.9,62.9,146.6,67,148.7z"/> - <path d="M455.7,153.2c-8.2,4.2-81.8,56.6-130.5,88.1l82.2,92.5c2,2,2.9,4.4,1.8,5.6c-1.2,1.1-3.8,0.5-5.9-1.4l-98.6-83.2 - c-14.9,9.6-25.4,16.2-27.2,17.2c-7.7,3.9-13.1,4.4-20.5,4.4c-7.4,0-12.8-0.5-20.5-4.4c-1.9-1-12.3-7.6-27.2-17.2l-98.6,83.2 - c-2,2-4.7,2.6-5.9,1.4c-1.2-1.1-0.3-3.6,1.7-5.6l82.1-92.5c-48.7-31.5-123.1-83.9-131.3-88.1c-8.8-4.5-9.3,0.8-9.3,4.9 - c0,4.1,0,205,0,205c0,9.3,13.7,20.9,23.5,20.9H257h185.5c9.8,0,21.5-11.7,21.5-20.9c0,0,0-201,0-205 - C464,153.9,464.6,148.7,455.7,153.2z"/> -</g> -</svg> diff --git a/admin/bower_components/Ionicons/src/erlenmeyer-flask-bubbles.svg b/admin/bower_components/Ionicons/src/erlenmeyer-flask-bubbles.svg deleted file mode 100644 index a7ae886..0000000 --- a/admin/bower_components/Ionicons/src/erlenmeyer-flask-bubbles.svg +++ /dev/null @@ -1,15 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" style="enable-background:new 0 0 512 512;" xml:space="preserve"> -<g> - <path d="M445.9,427.1L328,227.9V78c0-7.7-6.5-14-14.5-14c-8,0-14.5,6.2-14.5,14v153.6c0,1.8,0.6,3.6,1.3,5.3 - c-7.6-11.1-20.6-18.4-35.4-18.4c-23.5,0-42.5,18.3-42.5,41c0,16.8,10.5,31.5,25.4,37.5h-72l35-58.5c1.2-2.1,2.1-4.5,2.1-6.9v-30.4 - c4,3.2,10,5.1,16.1,5.1c15.3,0,27.5-11.9,27.5-26.6c0-14.7-12.2-26.6-27.5-26.6c-6.1,0-12.1,1.9-16.1,5.1V78c0-7.7-6.5-14-14.5-14 - c-8,0-14.5,6.2-14.5,14v149.9L66.1,427.1c-2.5,4.3-2.6,9.6,0,13.9c2.6,4.3,7.2,7,12.4,7H256h177.5c5.1,0,9.8-2.6,12.4-7 - C448.5,436.8,448.4,431.4,445.9,427.1z M282.2,297c14.9-6,25.4-20.8,25.4-37.5c0-5.7-1.2-11.2-3.4-16.1l31,53.6H282.2z"/> - <path d="M265.1,128.6c12,0,21.7-9.4,21.7-20.9c0-11.6-9.7-20.9-21.7-20.9c-12,0-21.7,9.4-21.7,20.9 - C243.3,119.2,253.1,128.6,265.1,128.6z"/> -</g> -</svg> diff --git a/admin/bower_components/Ionicons/src/erlenmeyer-flask.svg b/admin/bower_components/Ionicons/src/erlenmeyer-flask.svg deleted file mode 100644 index 9c97907..0000000 --- a/admin/bower_components/Ionicons/src/erlenmeyer-flask.svg +++ /dev/null @@ -1,21 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" enable-background="new 0 0 512 512" xml:space="preserve"> -<g> - <path d="M438.815,395.7L338.509,246.2c-12.8-20.3-19.009-44.4-19.009-70.2c0,0,0-73.5,0-93s12.592-33.25,15.009-42.083 - c2.296-8.392,0.512-8.417-15.188-8.417H192.526c-15.999,0-18.548,0.009-16.311,8.416C178.633,50,191.5,64.3,191.5,83.5 - s0,92.5,0,92.5c0,25.8-7.285,49.8-20.085,70.2l-49.279,76.5L73.035,395.6c-5.8,9-9.051,20.7-9.051,32.2 - c0,28,16.347,52.7,63.246,52.7h257.589c46.998,0,63.197-24.7,63.197-52.7C447.916,416.3,444.615,404.7,438.815,395.7z M409.218,441 - c-4.4,4.2-11.602,7.5-24.499,7.5h-257.59c-12.8,0-20.8-3.5-25.199-7.7c-2.7-2.6-6-7.05-6-13.35c0-5,1.4-10.125,3.9-14.125 - l99.039-150.392c15.699-25.199,24.632-55.231,24.632-86.932V64.5h64v111.4c0,31.199,7.761,61.3,23.859,87l100.523,150 - c2.499,4,3.968,9.25,3.968,14.25C415.85,433.55,411.918,438.4,409.218,441z"/> - <path d="M389.217,411.301c0.051,0.075,0.1,0.397,0,0.249L307.345,288.5H203.698l-81.069,123.151c-1.5,2.1-2.3,5.175-2.3,7.974 - c0,7.5,6.288,13.875,13.687,13.875h244c7.5,0,13.599-6.725,13.599-14.125C391.614,416.875,390.516,413.301,389.217,411.301z - M302.021,341.7c-1.5-1.5-2.3-3.601-2.3-5.7s0.899-4.2,2.3-5.7c1.5-1.5,3.6-2.3,5.6-2.3c2.102,0,4.2,0.8,5.602,2.3 - c1.5,1.5,2.299,3.601,2.299,5.7s-0.899,4.2-2.299,5.7c-1.5,1.5-3.5,2.3-5.602,2.3C305.621,344,303.521,343.1,302.021,341.7z - M348.92,400.7c-1.4,0.898-2.9,1.3-4.302,1.3c-2.499,0-5.099-1.3-6.598-3.6l-23.499-35.9c-2.4-3.7-1.4-8.7,2.299-11.1 - c1.4-0.9,2.9-1.301,4.4-1.301c2.6,0,5.1,1.301,6.5,3.601L351.22,389.6C353.618,393.299,352.618,398.299,348.92,400.7z"/> -</g> -</svg> diff --git a/admin/bower_components/Ionicons/src/eye-disabled.svg b/admin/bower_components/Ionicons/src/eye-disabled.svg deleted file mode 100644 index bdb110d..0000000 --- a/admin/bower_components/Ionicons/src/eye-disabled.svg +++ /dev/null @@ -1,18 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" style="enable-background:new 0 0 512 512;" xml:space="preserve"> -<style type="text/css"> -<![CDATA[ - .st0{fill:#010101;} -]]> -</style> -<path class="st0" d="M376.4,158.3L448,86.6L425.4,64l-77.6,77.6C320,127.7,289.5,119,256,119c-81.9,0-145.7,52.2-224,137 - c34.8,37.4,66.8,72.7,103.3,98.1L64,425.4L86.6,448l76.9-76.9c27,13.7,57,21.9,92.5,21.9c99.9,0,173.4-81.8,224-135.5 - C452,223.4,417.6,185.7,376.4,158.3z M166.4,256c0-50.4,40.2-91.3,89.6-91.3c19.3,0,37.2,6.2,51.8,16.9l-50.7,50.7 - c-0.7-2.6-1.1-5.4-1.1-8.3c0-7.9,2.9-15.1,7.6-20.7c-2.5-0.4-5-0.6-7.6-0.6c-28.8,0-52.3,23.9-52.3,53.3c0,8.6,2,16.8,5.6,24 - L182,307.4C172.2,292.7,166.4,275,166.4,256z M256,347.3c-19.3,0-37.2-6.2-51.8-16.9l27.4-27.4c7.3,4,15.6,6.2,24.4,6.2 - c28.8,0,52.3-23.9,52.3-53.3c0-2.3-0.2-4.6-0.4-6.9c-5.5,4.3-12.3,6.9-19.8,6.9c-2.9,0-5.6-0.4-8.3-1.1l50.3-50.3 - c9.8,14.6,15.6,32.3,15.6,51.4C345.6,306.4,305.4,347.3,256,347.3z"/> -</svg> diff --git a/admin/bower_components/Ionicons/src/eye.svg b/admin/bower_components/Ionicons/src/eye.svg deleted file mode 100644 index dc23a0d..0000000 --- a/admin/bower_components/Ionicons/src/eye.svg +++ /dev/null @@ -1,15 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" style="enable-background:new 0 0 512 512;" xml:space="preserve"> -<g> - <path d="M256,128c-81.9,0-145.7,48.8-224,128c67.4,67.7,124,128,224,128c99.9,0,173.4-76.4,224-126.6 - C428.2,198.6,354.8,128,256,128z M256,347.3c-49.4,0-89.6-41-89.6-91.3c0-50.4,40.2-91.3,89.6-91.3s89.6,41,89.6,91.3 - C345.6,306.4,305.4,347.3,256,347.3z"/> - <g> - <path d="M256,224c0-7.9,2.9-15.1,7.6-20.7c-2.5-0.4-5-0.6-7.6-0.6c-28.8,0-52.3,23.9-52.3,53.3c0,29.4,23.5,53.3,52.3,53.3 - s52.3-23.9,52.3-53.3c0-2.3-0.2-4.6-0.4-6.9c-5.5,4.3-12.3,6.9-19.8,6.9C270.3,256,256,241.7,256,224z"/> - </g> -</g> -</svg> diff --git a/admin/bower_components/Ionicons/src/female.svg b/admin/bower_components/Ionicons/src/female.svg deleted file mode 100644 index 2e8af48..0000000 --- a/admin/bower_components/Ionicons/src/female.svg +++ /dev/null @@ -1,8 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" style="enable-background:new 0 0 512 512;" xml:space="preserve"> -<path d="M288,284c55.2-14.2,96-64.3,96-124c0-70.7-57.3-128-128-128S128,89.3,128,160c0,59.6,40.8,109.7,96,124v68h-64v64h64v64h64 - v-64h64v-64h-64V284z M256,240c-44.1,0-80-35.9-80-80s35.9-80,80-80s80,35.9,80,80S300.1,240,256,240z"/> -</svg> diff --git a/admin/bower_components/Ionicons/src/filing.svg b/admin/bower_components/Ionicons/src/filing.svg deleted file mode 100644 index 89a2b2e..0000000 --- a/admin/bower_components/Ionicons/src/filing.svg +++ /dev/null @@ -1,12 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" style="enable-background:new 0 0 512 512;" xml:space="preserve"> -<g> - <path d="M381,128.6H132.1c-12.1,0-19.5,0-19.5,20.4v28.1h288V149C400.6,128.6,393.2,128.6,381,128.6z"/> - <path d="M333,96.5H180c-13.1,0-19.5,0.3-19.5,18.7h192C352.4,96.8,346.1,96.5,333,96.5z"/> - <path d="M432.4,169.6l-15.9-9.4v32.3h-321v-32.3l-15.2,9.4c-14.3,8.9-17.8,15.3-15,40.9l17.5,184.8c3.7,20.7,15.9,21.2,24,21.2 - h299.9c8.1,0,20.2-0.5,23.9-21.2l17.2-184.4C450.1,186.5,445.8,178.1,432.4,169.6z"/> -</g> -</svg> diff --git a/admin/bower_components/Ionicons/src/film-marker.svg b/admin/bower_components/Ionicons/src/film-marker.svg deleted file mode 100644 index 73814ad..0000000 --- a/admin/bower_components/Ionicons/src/film-marker.svg +++ /dev/null @@ -1,10 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" style="enable-background:new 0 0 512 512;" xml:space="preserve"> -<path d="M448.4,208h-344l341.2-68c8.5-1.6,14-9.7,12.4-18.1l-8.9-45.4c-1.6-8.4-9.8-13.8-18.3-12.2L60.7,137.9 - c-8.5,1.6-14,9.7-12.4,18l8.9,45.4c0.6,2.8,2.1,5.2,3.9,7.2c-7.4,1.2-13.1,7.2-13.1,14.9v209.2c0,8.5,7,15.4,15.6,15.4h384.8 - c8.6,0,15.6-6.9,15.6-15.4V223.4C464,214.9,457,208,448.4,208z M305,402.4l-50.7-36.3l-50.7,36.3l19.5-58.4l-50.8-36H235l19.2-58.4 - l19.3,58.4h62.7l-50.8,36L305,402.4z"/> -</svg> diff --git a/admin/bower_components/Ionicons/src/fireball.svg b/admin/bower_components/Ionicons/src/fireball.svg deleted file mode 100644 index 4508d07..0000000 --- a/admin/bower_components/Ionicons/src/fireball.svg +++ /dev/null @@ -1,16 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" enable-background="new 0 0 512 512" xml:space="preserve"> -<g> - <path d="M393.267,238.088l-0.231,10.404c-0.814,11.65-3.797,31.912-14.102,54.736c3.251-15.208,4.978-30.982,4.978-47.164 - c0-12.096-0.958-23.968-2.799-35.544c-15.091-94.901-89.626-169.923-184.138-185.518C185.706,32.285,179.048,32,179.048,32 - c0.238,0.281,0.465,0.562,0.7,0.844c39.458,47.181,44.1,96.656,37.744,131.85c-2.281,12.629-5.978,23.421-9.991,31.605 - c0,0,3.359-13.911,3.035-29.72c-0.293-14.234-3.572-30.006-14.986-38.552c3.497,18.378-0.752,33.501-9.121,47.729 - C161.69,217.808,101,249.386,96,327.408v3.836c0,53.692,25.624,98.979,68.719,125.012c-6.85-12.344-14.964-35.207-8.733-60.151 - c3.998,23.669,9.951,36.045,20.879,51.756c8.153,11.721,19.104,19.269,33.095,24.934S238.995,480,255.889,480 - c55.809,0,105.228-28.567,133.845-71.952l0.267,0.061v-0.007c16-25.254,26.1-55.5,26.1-88.019 - C416.1,290.112,407.596,262.071,393.267,238.088z"/> -</g> -</svg> diff --git a/admin/bower_components/Ionicons/src/flag.svg b/admin/bower_components/Ionicons/src/flag.svg deleted file mode 100644 index 5f7ded3..0000000 --- a/admin/bower_components/Ionicons/src/flag.svg +++ /dev/null @@ -1,12 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" style="enable-background:new 0 0 512 512;" xml:space="preserve"> -<g> - <path d="M426.4,182.5c-35.8,5.9-94.2,7.5-133-66.1c-41.6-79.1-108.8-81.5-148.1-74.3c-19.1,3.5-33.4,19.5-33.4,35v196.6 - c11.3,4.3,23.4-0.2,26.5-0.8c0.8-0.2,1.5-0.3,2.4-0.5c25-5.5,51.4-8.1,116.8,23.3c82,39.3,153.8-33.1,181.6-83.5 - c2-3.5,8.7-20.2,8.7-36.2C438.2,180,426.4,182.5,426.4,182.5z"/> - <path d="M88,32H72c-4.4,0-8,3.6-8,8v432c0,4.4,3.6,8,8,8h16c4.4,0,8-3.6,8-8V40C96,35.6,92.4,32,88,32z"/> -</g> -</svg> diff --git a/admin/bower_components/Ionicons/src/flame.svg b/admin/bower_components/Ionicons/src/flame.svg deleted file mode 100644 index 5b7c640..0000000 --- a/admin/bower_components/Ionicons/src/flame.svg +++ /dev/null @@ -1,11 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" enable-background="new 0 0 512 512" xml:space="preserve"> -<g> - <path d="M128.922,320c13.05,134,103.764,160,126.932,160c23.168,0,127.457-40.49,128.142-160c0.836-146-121.586-143-95.895-288 - C201.427,96,118.289,210.816,128.922,320z M215.667,368c0-44.183,40.187-80,40.187-80s40.701,35.817,40.701,80 - c0,44.184-40.701,80-40.701,80S215.667,412.184,215.667,368z"/> -</g> -</svg> diff --git a/admin/bower_components/Ionicons/src/flash-off.svg b/admin/bower_components/Ionicons/src/flash-off.svg deleted file mode 100644 index eca230e..0000000 --- a/admin/bower_components/Ionicons/src/flash-off.svg +++ /dev/null @@ -1,16 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" style="enable-background:new 0 0 512 512;" xml:space="preserve"> -<g> - <path d="M147.4,451.9c0.4,0.2,0.7,0.5,1.1,0.7c10.9,6,22.5,10.7,34.4,14.8c1.8,0.6,3.6,1.2,5.4,1.8c21.4,6.8,44,10.9,67.7,10.9 - c123.7,0,224-100.3,224-224c0-84.3-46.6-157.7-115.5-195.9c-0.4-0.2-0.7-0.4-1-0.6c-10.9-6-22.5-10.7-34.4-14.8 - c-1.8-0.6-3.6-1.2-5.4-1.8C302.3,36.1,279.6,32,256,32C132.3,32,32,132.3,32,256C32,340.3,78.6,413.6,147.4,451.9z M118.2,156.6 - l54.4,54.4l36.3-40.5l-52.4-52.4c28-20.2,62.1-32.6,99.4-32.6c9.3,0,18.3,0.9,27.2,2.4c9.8,1.6,19.3,4.1,28.5,7.3 - c1.8,0.6,3.7,1.2,5.6,1.9c6.2,2.4,12.2,5,18,8.1c54.2,28.5,91.2,85.3,91.2,150.8c0,37.2-12.4,71.3-32.7,99.4l-54.4-54.4L303,341.4 - l52.4,52.4c-28,20.3-62.2,32.7-99.4,32.7c-9.3,0-18.4-0.9-27.2-2.4c-9.8-1.6-19.3-4.1-28.5-7.3c-1.9-0.6-3.8-1.2-5.6-1.9 - c-6.5-2.5-12.9-5.3-19-8.6c-53.6-28.7-90.1-85.2-90.1-150.3C85.6,218.8,98,184.7,118.2,156.6z"/> - <polygon points="209.7,389.8 348.9,235 263.6,235 302.2,122.2 163.1,277 248.4,277 "/> -</g> -</svg> diff --git a/admin/bower_components/Ionicons/src/flash.svg b/admin/bower_components/Ionicons/src/flash.svg deleted file mode 100644 index 84c0032..0000000 --- a/admin/bower_components/Ionicons/src/flash.svg +++ /dev/null @@ -1,7 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" style="enable-background:new 0 0 512 512;" xml:space="preserve"> -<polygon points="96,288 243,288 191.9,480 416,224 269,224 320,32 "/> -</svg> diff --git a/admin/bower_components/Ionicons/src/folder.svg b/admin/bower_components/Ionicons/src/folder.svg deleted file mode 100644 index 0cb47be..0000000 --- a/admin/bower_components/Ionicons/src/folder.svg +++ /dev/null @@ -1,14 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" style="enable-background:new 0 0 512 512;" xml:space="preserve"> -<g> - <path d="M430.1,192H81.9c-17.7,0-18.6,9.2-17.6,20.5l13,183c0.9,11.2,3.5,20.5,21.1,20.5h316.2c18,0,20.1-9.2,21.1-20.5l12.1-185.3 - C448.7,199,447.8,192,430.1,192z"/> - <g> - <path d="M426.2,143.3c-0.5-12.4-4.5-15.3-15.1-15.3c0,0-121.4,0-143.2,0c-21.8,0-24.4,0.3-40.9-17.4C213.3,95.8,218.7,96,190.4,96 - c-22.6,0-75.3,0-75.3,0c-17.4,0-23.6-1.5-25.2,16.6c-1.5,16.7-5,57.2-5.5,63.4h343.4L426.2,143.3z"/> - </g> -</g> -</svg> diff --git a/admin/bower_components/Ionicons/src/fork-repo.svg b/admin/bower_components/Ionicons/src/fork-repo.svg deleted file mode 100644 index 7136045..0000000 --- a/admin/bower_components/Ionicons/src/fork-repo.svg +++ /dev/null @@ -1,20 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" style="enable-background:new 0 0 512 512;" xml:space="preserve"> -<style type="text/css"> -<![CDATA[ - .st0{fill:#010101;} -]]> -</style> -<g> - <polygon class="st0" points="416,80 368,80 368,32 304,32 304,80 256,80 256,144 304,144 304,192 368,192 368,144 416,144 "/> - <path class="st0" d="M304,240c0,38.6-4.5,42.3-14.4,50.3c-7.4,6-22.2,7.1-39.4,8.3c-9.5,0.7-20.4,1.5-31.4,3.3 - c-9.4,1.5-18.4,4.7-26.8,8.8V151.4c19.1-11.1,32-31.7,32-55.4c0-35.3-28.7-64-64-64S96,60.7,96,96c0,23.7,12.9,44.3,32,55.4v209.2 - c-19.1,11.1-32,31.7-32,55.4c0,35.3,28.7,64,64,64s64-28.7,64-64c0-15.7-5.7-30.1-15-41.2c6.7-4.8,13.9-8.7,20.2-9.7 - c8.1-1.3,16.6-1.9,25.6-2.6c24.4-1.7,52.1-3.7,75.2-22.5c30.9-25.1,37.5-52.1,38-94.9l0,0V240H304z M160,64c17.6,0,32,14.4,32,32 - s-14.4,32-32,32s-32-14.4-32-32S142.4,64,160,64z M160,448c-17.6,0-32-14.4-32-32s14.4-32,32-32s32,14.4,32,32S177.6,448,160,448z" - /> -</g> -</svg> diff --git a/admin/bower_components/Ionicons/src/fork.svg b/admin/bower_components/Ionicons/src/fork.svg deleted file mode 100644 index 79f076e..0000000 --- a/admin/bower_components/Ionicons/src/fork.svg +++ /dev/null @@ -1,14 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" style="enable-background:new 0 0 512 512;" xml:space="preserve"> -<g> - <path d="M270.2,148.9C270.2,149,270.1,149,270.2,148.9v0.1V148.9z"/> - <path d="M320,166c0-43.2-15-93.2-24-133.7V32h-8l-0.2,116.9c0,6.1-2.9,11.1-9,11.1c-5.7,0-8-4.3-8.6-9.9c-0.1-0.4,0-0.8,0-1.2 - L259.9,32h-8l-9,117l-0.1,1.1c-0.6,5.6-3.7,9.9-9.5,9.9c-6.1,0-9.1-5-9.1-11.1L223.8,32h-8C207,73,192,122.9,192,166.1 - c0,25.7,14.6,48.1,36.7,58.2c11.2,5.1,11.3,10.3,11.3,10.3s-16,201.7-16,213.1c0,11.4,4,18.5,9.5,24s14.2,8.2,22.4,8.2 - c0.1,0,0.1,0,0.2,0c0.1,0,0.1,0,0.2,0c8.2,0,16.8-2.7,22.4-8.2c5.5-5.5,9.3-10.9,9.3-24c0-13.1-16-213.1-16-213.1s-1-5,11.4-10.6 - C305,214.2,320,191.8,320,166z"/> -</g> -</svg> diff --git a/admin/bower_components/Ionicons/src/forward.svg b/admin/bower_components/Ionicons/src/forward.svg deleted file mode 100644 index 55f0815..0000000 --- a/admin/bower_components/Ionicons/src/forward.svg +++ /dev/null @@ -1,9 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" style="enable-background:new 0 0 512 512;" xml:space="preserve"> -<g> - <path d="M288,298.1v92.3L448,256L288,112v80C100.8,192,64,400,64,400C117,307,186.4,298.1,288,298.1z"/> -</g> -</svg> diff --git a/admin/bower_components/Ionicons/src/funnel.svg b/admin/bower_components/Ionicons/src/funnel.svg deleted file mode 100644 index 0174f90..0000000 --- a/admin/bower_components/Ionicons/src/funnel.svg +++ /dev/null @@ -1,13 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" enable-background="new 0 0 512 512" xml:space="preserve"> -<g> - <path d="M256.085,32c-123.79,0-224.096,35.817-224.096,80c0,8.476,3.729,16.642,10.573,24.309l-0.061,0.008 - C74.408,175.213,192,313,192,352v87l0,0c0,22.688,28.891,41,64,41s64-18.312,64-41l0,0v-83.088c0-1.241,0.008-2.54,0.008-3.912 - C320.008,313,436,177.432,471,134.062v-0.002c6-7.007,8.977-14.408,8.977-22.06C479.977,67.817,379.875,32,256.085,32z - M256.178,160c-92.058,0-176.112-22-176.112-48s83.053-48,176.112-48c93.06,0,176.111,22.413,176.111,48S348.236,160,256.178,160z" - /> -</g> -</svg> diff --git a/admin/bower_components/Ionicons/src/gear-a.svg b/admin/bower_components/Ionicons/src/gear-a.svg deleted file mode 100644 index d895341..0000000 --- a/admin/bower_components/Ionicons/src/gear-a.svg +++ /dev/null @@ -1,15 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" style="enable-background:new 0 0 512 512;" xml:space="preserve"> -<g> - <path d="M411.1,256c0-23.9,14.8-42.8,36.9-55.8c-4-13.3-9.3-26.2-15.8-38.2c-24.9,6.5-45-3.2-62-20.2c-16.9-16.9-22.1-37.1-15.6-62 - C342.6,73.3,329.8,68,316.4,64c-13,22.2-36.4,36.9-60.4,36.9c-23.9,0-47.4-14.7-60.4-36.9c-13.4,4-26.2,9.3-38.2,15.8 - c6.5,24.9,1.3,45-15.6,62c-16.9,16.9-37.1,26.7-61.9,20.2C73.3,174,68,186.8,64,200.2c22.2,13,37,31.9,37,55.8 - c0,23.9-14.8,47.4-37,60.4c4,13.4,9.3,26.2,15.8,38.2c24.9-6.5,45-1.3,61.9,15.6c17,16.9,22.1,37.1,15.6,62 - c12.1,6.5,24.8,11.8,38.2,15.8c13-22.2,36.5-36.9,60.4-36.9c23.9,0,47.4,14.7,60.4,36.9c13.4-4,26.2-9.3,38.2-15.8 - c-6.5-24.9-1.3-45,15.6-62c16.9-16.9,37.1-26.7,62-20.2c6.5-12.1,11.8-24.9,15.8-38.2C425.8,298.8,411.1,279.9,411.1,256z - M256,354.3c-54.2,0-98.3-44-98.3-98.3c0-54.3,44-98.3,98.3-98.3c54.3,0,98.3,44,98.3,98.3C354.3,310.3,310.3,354.3,256,354.3z"/> -</g> -</svg> diff --git a/admin/bower_components/Ionicons/src/gear-b.svg b/admin/bower_components/Ionicons/src/gear-b.svg deleted file mode 100644 index 88b3129..0000000 --- a/admin/bower_components/Ionicons/src/gear-b.svg +++ /dev/null @@ -1,11 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" style="enable-background:new 0 0 512 512;" xml:space="preserve"> -<path d="M448,294.4v-76.8h-42.8c-3.4-14.4-8.9-28-16.1-40.5l29.8-29.7l-54.3-54.3l-29.1,29.1c-12.6-7.7-26.4-13.5-41.1-17.3V64 - h-76.8v40.9c-14.7,3.8-28.5,9.7-41.1,17.3l-29.1-29.1l-54.3,54.3l29.8,29.7c-7.2,12.5-12.6,26.1-16.1,40.5H64v76.8h44.1 - c3.8,13.7,9.5,26.6,16.7,38.6l-31.7,31.7l54.3,54.3l32.3-32.3c11.7,6.8,24.5,11.9,37.9,15.4v46h76.8v-46 - c13.5-3.5,26.2-8.6,37.9-15.4l32.3,32.3l54.3-54.3L387.3,333c7.2-11.9,12.9-24.8,16.7-38.6H448z M256,309.8 - c-29.7,0-53.7-24.1-53.7-53.8s24-53.8,53.7-53.8s53.8,24.1,53.8,53.8S285.7,309.8,256,309.8z"/> -</svg> diff --git a/admin/bower_components/Ionicons/src/grid.svg b/admin/bower_components/Ionicons/src/grid.svg deleted file mode 100644 index 7100f22..0000000 --- a/admin/bower_components/Ionicons/src/grid.svg +++ /dev/null @@ -1,32 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" style="enable-background:new 0 0 512 512;" xml:space="preserve"> -<g> - <g> - <path d="M160,153.3c0,3.7-3,6.7-6.7,6.7h-50.5c-3.7,0-6.7-3-6.7-6.7v-50.5c0-3.7,3-6.7,6.7-6.7h50.5c3.7,0,6.7,3,6.7,6.7V153.3z" - /> - <path d="M288,153.3c0,3.7-3,6.7-6.7,6.7h-50.5c-3.7,0-6.7-3-6.7-6.7v-50.5c0-3.7,3-6.7,6.7-6.7h50.5c3.7,0,6.7,3,6.7,6.7V153.3z" - /> - <path d="M416,153.3c0,3.7-3,6.7-6.7,6.7h-50.5c-3.7,0-6.7-3-6.7-6.7v-50.5c0-3.7,3-6.7,6.7-6.7h50.5c3.7,0,6.7,3,6.7,6.7V153.3z" - /> - </g> - <g> - <path d="M160,281.3c0,3.7-3,6.7-6.7,6.7h-50.5c-3.7,0-6.7-3-6.7-6.7v-50.5c0-3.7,3-6.7,6.7-6.7h50.5c3.7,0,6.7,3,6.7,6.7V281.3z" - /> - <path d="M288,281.3c0,3.7-3,6.7-6.7,6.7h-50.5c-3.7,0-6.7-3-6.7-6.7v-50.5c0-3.7,3-6.7,6.7-6.7h50.5c3.7,0,6.7,3,6.7,6.7V281.3z" - /> - <path d="M416,281.3c0,3.7-3,6.7-6.7,6.7h-50.5c-3.7,0-6.7-3-6.7-6.7v-50.5c0-3.7,3-6.7,6.7-6.7h50.5c3.7,0,6.7,3,6.7,6.7V281.3z" - /> - </g> - <g> - <path d="M160,409.3c0,3.7-3,6.7-6.7,6.7h-50.5c-3.7,0-6.7-3-6.7-6.7v-50.5c0-3.7,3-6.7,6.7-6.7h50.5c3.7,0,6.7,3,6.7,6.7V409.3z" - /> - <path d="M288,409.3c0,3.7-3,6.7-6.7,6.7h-50.5c-3.7,0-6.7-3-6.7-6.7v-50.5c0-3.7,3-6.7,6.7-6.7h50.5c3.7,0,6.7,3,6.7,6.7V409.3z" - /> - <path d="M416,409.3c0,3.7-3,6.7-6.7,6.7h-50.5c-3.7,0-6.7-3-6.7-6.7v-50.5c0-3.7,3-6.7,6.7-6.7h50.5c3.7,0,6.7,3,6.7,6.7V409.3z" - /> - </g> -</g> -</svg> diff --git a/admin/bower_components/Ionicons/src/hammer.svg b/admin/bower_components/Ionicons/src/hammer.svg deleted file mode 100644 index 81b7796..0000000 --- a/admin/bower_components/Ionicons/src/hammer.svg +++ /dev/null @@ -1,11 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" style="enable-background:new 0 0 512 512;" xml:space="preserve"> -<path d="M410,32h-52c-3.3,0-6,2.7-6,6v5.6c-4,4-10.9,9.8-17.8,9.8c-10.5,0-14.8-16.4-26.1-18.4s-27.2-3-37.9-3s-52,0.7-102,21.5 - c-50,20.8-71.7,64.9-72.3,81.4c-0.3,8.7,2.7,21.1,10,11.1c7.3-10,35.3-42.3,57.7-44.7c22.3-2.3,45.7,0.8,63.7,17.2 - c17.3,15.7,21.3,30.8,21.3,73.5l-6.6,2c-4.3,1.3-7,5.7-7,9c0,0-0.2,6.5-0.2,70.4C234.8,368,224,474,224,474c0,3.3,2.7,6,6,6h84 - c3.3,0,6-2.7,6-6c0,0-10.8-106-10.8-200.6c0-63.9-0.2-70.4-0.2-70.4c0-3.3-2.3-7.8-7-9l-8-2c0-38.2-0.4-54,6.3-65.9 - c7-12.4,22.3-22.9,29.7-25.1c5.9-1.8,16,1.3,22,6.5V122c0,3.3,2.7,6,6,6h52c3.3,0,6-2.7,6-6V38C416,34.7,413.3,32,410,32z"/> -</svg> diff --git a/admin/bower_components/Ionicons/src/happy-outline.svg b/admin/bower_components/Ionicons/src/happy-outline.svg deleted file mode 100644 index 65690ce..0000000 --- a/admin/bower_components/Ionicons/src/happy-outline.svg +++ /dev/null @@ -1,23 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" enable-background="new 0 0 512 512" xml:space="preserve"> -<g> - <path d="M387.469,289.593c-2.248-1.175-4.775-1.796-7.308-1.796c-5.956,0-11.358,3.287-14.104,8.588 - C347.804,331.731,304.605,352,256.004,352c-49.734,0-93.84-20.562-109.757-54.997c-2.589-5.589-8.244-9.199-14.407-9.199 - c-2.294,0-4.521,0.485-6.658,1.463c-7.926,3.674-11.397,13.117-7.734,21.057C138.454,355.765,194.135,384,256.004,384 - c60.34,0,114.604-27.281,138.241-73.055C398.254,303.184,395.201,293.598,387.469,289.593z"/> - <path d="M412.793,231.174C402.312,217.593,389.024,208,368.137,208c-20.887,0-34.062,9.573-44.611,23.117 - c-5.502,7.062-4.525,16.633,3.746,22.207c2.914,1.963,6.347,2.676,9.928,2.676c5.395-0.001,10.507-2.109,13.67-6.179 - c3.45-4.435,7.707-9.821,17.268-9.821c9.61,0,13.832,5.361,17.23,9.777c3.178,4.104,8.305,6.223,13.717,6.223 - c3.581,0,7.007-0.708,9.922-2.683C416.558,248.185,418.257,238.25,412.793,231.174z"/> - <path d="M188.792,231.174C178.312,217.593,165.024,208,144.137,208s-34.063,9.573-44.612,23.117 - c-5.501,7.062-4.525,16.633,3.747,22.207c2.914,1.963,6.346,2.676,9.927,2.676c5.395-0.001,10.507-2.109,13.669-6.179 - c3.451-4.435,7.708-9.821,17.269-9.821c9.61,0,13.832,5.361,17.23,9.777c3.177,4.104,8.304,6.223,13.716,6.223 - c3.582,0,7.007-0.708,9.922-2.683C192.558,248.185,194.257,238.25,188.792,231.174z"/> - <path d="M256,32C132.288,32,32,132.288,32,256s100.288,224,224,224s224-100.288,224-224S379.712,32,256,32z M391.765,391.765 - C355.5,428.028,307.285,448,256,448s-99.5-19.972-135.765-56.235C83.972,355.5,64,307.285,64,256s19.972-99.5,56.235-135.765 - C156.5,83.972,204.715,64,256,64s99.5,19.972,135.765,56.235C428.028,156.5,448,204.715,448,256S428.028,355.5,391.765,391.765z"/> -</g> -</svg> diff --git a/admin/bower_components/Ionicons/src/happy.svg b/admin/bower_components/Ionicons/src/happy.svg deleted file mode 100644 index cba963e..0000000 --- a/admin/bower_components/Ionicons/src/happy.svg +++ /dev/null @@ -1,20 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" enable-background="new 0 0 512 512" xml:space="preserve"> -<g> - <path d="M256,32C132.288,32,32,132.288,32,256s100.288,224,224,224s224-100.288,224-224S379.712,32,256,32z M103.272,253.324 - c-8.272-5.574-9.249-15.145-3.747-22.207C110.074,217.573,123.25,208,144.137,208s34.174,9.593,44.655,23.174 - c5.464,7.076,3.765,17.011-3.787,22.144c-2.915,1.975-6.341,2.683-9.922,2.683c-5.412,0-10.539-2.119-13.716-6.223 - c-3.398-4.416-7.621-9.777-17.23-9.777c-9.561,0-13.818,5.387-17.269,9.821c-3.163,4.069-8.274,6.178-13.669,6.179 - C109.618,256,106.186,255.287,103.272,253.324z M394.245,310.945C370.607,356.719,316.344,384,256.004,384 - c-61.869,0-117.55-28.235-138.556-73.677c-3.663-7.939-0.191-17.383,7.734-21.057c2.137-0.978,4.363-1.463,6.658-1.463 - c6.163,0,11.818,3.61,14.407,9.199C162.164,331.438,206.27,352,256.004,352c48.602,0,91.8-20.269,110.053-55.615 - c2.746-5.301,8.148-8.588,14.104-8.588c2.532,0,5.06,0.621,7.308,1.796C395.201,293.598,398.254,303.184,394.245,310.945z - M409.006,253.317c-2.915,1.975-6.341,2.683-9.922,2.683c-5.412,0-10.539-2.119-13.717-6.223c-3.398-4.416-7.62-9.777-17.23-9.777 - c-9.561,0-13.817,5.387-17.268,9.821c-3.163,4.069-8.275,6.178-13.67,6.179c-3.581,0-7.014-0.713-9.928-2.676 - c-8.271-5.574-9.248-15.145-3.746-22.207C334.074,217.573,347.25,208,368.137,208c20.888,0,34.175,9.593,44.656,23.174 - C418.257,238.25,416.558,248.185,409.006,253.317z"/> -</g> -</svg> diff --git a/admin/bower_components/Ionicons/src/headphone.svg b/admin/bower_components/Ionicons/src/headphone.svg deleted file mode 100644 index b49c934..0000000 --- a/admin/bower_components/Ionicons/src/headphone.svg +++ /dev/null @@ -1,15 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" style="enable-background:new 0 0 512 512;" xml:space="preserve"> -<path d="M447.4,238.2c-3.2-59.8-21.9-108.6-56-145.2c-0.1-0.1-0.1-0.1-0.2-0.2c-7.7-8.4-16.1-15.9-24.8-22.6 - c-9-6.9-18.6-13-28.5-18.1c-25.3-13.1-53-20-82.1-20c-29,0-56.6,6.9-81.9,20c-9.9,5.1-19.4,11.2-28.4,18.1 - c-8.7,6.7-17,14.2-24.7,22.6c-0.1,0.1-0.1,0.1-0.2,0.2c-34,36.6-52.7,85.5-55.9,145.2C61.9,288.9,68,368,77.7,400 - c20.3,67,40.4,80,72.1,80s58.2-26.4,58.2-58.9V315.1c0-32.5-23.3-59-53.3-59c-18,0-34,9.7-43.8,24.4c0,0-11.1-8.1-13.1-23 - c-2.1-14.9-3.1-32.4,5.6-63c8.7-30.5,20.8-20.2,35.6-39c2.5-3.3,5.2-6.4,8-9.5c3.2-3.4,6.4-6.7,9.8-9.7c1.6-1.5,3.2-2.8,4.8-4.2 - c11-9.3,21-17,33.7-22.8c18.9-8.6,39.4-13.3,60.5-13.3c21,0,41.7,4.7,60.7,13.3c12.7,5.8,22.9,13.5,33.9,22.8 - c1.6,1.4,3.2,2.7,4.8,4.2c3.4,3,6.6,6.3,9.8,9.7c2.8,3.1,5.5,6.2,8,9.5c14.8,18.8,26.9,8.5,35.6,39c8.7,30.5,7.6,48.1,5.6,63 - c-2.1,14.9-13.1,23-13.1,23c-9.8-14.7-25.7-24.4-43.8-24.4c-30,0-53.3,26.4-53.3,59v106.1c0,32.4,26.5,58.9,58.2,58.9 - c31.7,0,51.8-13,72.1-80C444,368,450.1,288.9,447.4,238.2z"/> -</svg> diff --git a/admin/bower_components/Ionicons/src/heart-broken.svg b/admin/bower_components/Ionicons/src/heart-broken.svg deleted file mode 100644 index 984e31a..0000000 --- a/admin/bower_components/Ionicons/src/heart-broken.svg +++ /dev/null @@ -1,17 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" enable-background="new 0 0 512 512" xml:space="preserve"> -<g> - <path d="M229,288c1-18,0-38,8-55c2-5,1-10,1-15c-4-21-14-40-15-60c0-1.39,1.004-4.771,1.005-6.157 - c-3.216,2.234-7.607,4.024-11.005,5.157c-20,6-17.51,2.573-34.51,13.573l-11.933,7.228c16.343-17.939,38.528-24.781,56.525-38.714 - c0.194-15.438,0.858-30.677,3.137-45.84C185.61,53.496,121.785,54.268,82.123,95.57c-45.497,47.344-45.497,124.101,0,171.445 - l152.849,159.096c-0.085-10.656-0.443-21.176-1.972-31.111C227,359,229,324,229,288z"/> - <path d="M322,301c-11-26-33-44-63-50c-0.85,0-1.879-0.543-2.936-1.319c-0.023,0.107-0.041,0.213-0.064,0.319c-11,48-23,94-21,142 - c0,12.227,3.983,25.117,3.833,38.131L256,448l104-108.25C345.153,329.271,330.428,318.621,322,301z"/> - <path d="M429.874,95.57c-40.426-42.094-105.989-42.094-146.408,0L264,115.403c0.075,13.175,0.213,26.202-3,38.597 - c-2,10-19,19-16,31c3.003,13.213,8.166,25.705,10.732,38.559C271.014,232.084,284.771,242.896,297,256 - c22.801,26.766,37.747,57.459,65.283,81.371l67.591-70.355C475.375,219.671,475.375,142.914,429.874,95.57z"/> -</g> -</svg> diff --git a/admin/bower_components/Ionicons/src/heart.svg b/admin/bower_components/Ionicons/src/heart.svg deleted file mode 100644 index 945b510..0000000 --- a/admin/bower_components/Ionicons/src/heart.svg +++ /dev/null @@ -1,10 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" style="enable-background:new 0 0 512 512;" xml:space="preserve"> -<g> - <path d="M429.9,95.6c-40.4-42.1-106-42.1-146.4,0L256,124.1l-27.5-28.6c-40.5-42.1-106-42.1-146.4,0c-45.5,47.3-45.5,124.1,0,171.4 - L256,448l173.9-181C475.4,219.7,475.4,142.9,429.9,95.6z"/> -</g> -</svg> diff --git a/admin/bower_components/Ionicons/src/help-buoy.svg b/admin/bower_components/Ionicons/src/help-buoy.svg deleted file mode 100644 index 106cff9..0000000 --- a/admin/bower_components/Ionicons/src/help-buoy.svg +++ /dev/null @@ -1,13 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" style="enable-background:new 0 0 512 512;" xml:space="preserve"> -<path d="M256,32C132.3,32,32,132.3,32,256s100.3,224,224,224s224-100.3,224-224S379.7,32,256,32z M434.3,184.5l-61.5,18.9 - c-6.3-14-15.1-26.8-26.3-38c-11.2-11.2-24-20-38-26.3l18.9-61.5c23.8,9.5,45.6,23.9,64.3,42.5C410.4,138.9,424.8,160.7,434.3,184.5z - M256,352c-53,0-96-43-96-96c0-53,43-96,96-96s96,43,96,96C352,309,309,352,256,352z M120.2,120.2c18.7-18.7,40.5-33,64.3-42.5 - l18.9,61.5c-14,6.3-26.8,15.1-38,26.3c-11.2,11.2-20,24-26.3,38l-61.5-18.9C87.2,160.7,101.6,138.9,120.2,120.2z M77.7,327.5 - l61.5-18.9c6.3,14,15.1,26.8,26.3,38s24,20,38,26.3l-18.9,61.5c-23.8-9.5-45.6-23.9-64.3-42.5C101.6,373.1,87.2,351.3,77.7,327.5z - M391.8,391.8c-18.7,18.7-40.5,33-64.3,42.5l-18.9-61.5c14-6.3,26.8-15.1,38-26.3s20-24,26.3-38l61.5,18.9 - C424.8,351.3,410.4,373.1,391.8,391.8z"/> -</svg> diff --git a/admin/bower_components/Ionicons/src/help-circled.svg b/admin/bower_components/Ionicons/src/help-circled.svg deleted file mode 100644 index f70e831..0000000 --- a/admin/bower_components/Ionicons/src/help-circled.svg +++ /dev/null @@ -1,15 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" style="enable-background:new 0 0 512 512;" xml:space="preserve"> -<g> - <path d="M256,32C132.3,32,32,132.3,32,256s100.3,224,224,224c123.7,0,224-100.3,224-224S379.7,32,256,32z M276.2,358.7 - c-0.5,17.8-13.7,28.8-30.8,28.3c-16.4-0.5-29.3-12.2-28.8-30.1c0.5-17.8,14.1-29.1,30.5-28.6C264.3,328.8,276.8,340.9,276.2,358.7z - M324.9,231.4c-4.2,5.9-13.6,13.5-25.4,22.7l-13.1,9c-6.4,4.9-10.4,10.7-12.5,17.3c-1.1,3.5-1.9,12.6-2.1,18.7 - c-0.1,1.2-0.8,3.9-4.5,3.9c-3.7,0-35,0-39.1,0c-4.1,0-4.6-2.4-4.5-3.6c0.6-16.6,3-30.3,9.9-41.3c9.3-14.8,35.5-30.4,35.5-30.4 - c4-3,7.1-6.2,9.5-9.7c4.4-6,8-12.7,8-19.9c0-8.3-2-16.2-7.3-22.8c-6.2-7.7-12.9-11.4-25.8-11.4c-12.7,0-20.1,6.4-25.4,14.8 - c-5.3,8.4-4.4,18.3-4.4,27.3H175c0-34,8.9-55.7,27.7-68.5c12.7-8.7,28.9-12.5,47.8-12.5c24.8,0,44.5,4.6,61.9,17.8 - c16.1,12.2,24.6,29.4,24.6,52.6C337,209.7,332,221.7,324.9,231.4z"/> -</g> -</svg> diff --git a/admin/bower_components/Ionicons/src/help.svg b/admin/bower_components/Ionicons/src/help.svg deleted file mode 100644 index cd4dcb8..0000000 --- a/admin/bower_components/Ionicons/src/help.svg +++ /dev/null @@ -1,14 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" style="enable-background:new 0 0 512 512;" xml:space="preserve"> -<g> - <path d="M345.1,77.1C317.6,56.2,286.6,49,247.3,49c-29.8,0-55.3,6.1-75.5,19.7C142,89,128,123.1,128,177h76.8 - c0-14.4-1.4-29.9,7-43.2c8.4-13.3,20.1-23.5,40.2-23.5c20.4,0,30.9,5.9,40.8,18.1c8.4,10.4,11.6,22.8,11.6,36 - c0,11.4-5.8,21.9-12.7,31.4c-3.8,5.6-8.8,10.6-15.1,15.4c0,0-41.5,24.7-56.1,48.1c-10.9,17.4-14.8,39.2-15.7,65.3 - c-0.1,1.9,0.6,5.8,7.2,5.8c6.5,0,56,0,61.8,0c5.8,0,7-4.4,7.1-6.2c0.4-9.5,1.6-24.1,3.3-29.6c3.3-10.4,9.7-19.5,19.7-27.3 - l20.7-14.3c18.7-14.6,33.6-26.5,40.2-35.9c11.3-15.4,19.2-34.4,19.2-56.9C384,123.5,370.5,96.4,345.1,77.1z M242,370.2 - c-25.9-0.8-47.3,17.2-48.2,45.3c-0.8,28.2,19.5,46.7,45.5,47.5c27,0.8,47.9-16.6,48.7-44.7C288.8,390.2,269,371,242,370.2z"/> -</g> -</svg> diff --git a/admin/bower_components/Ionicons/src/home.svg b/admin/bower_components/Ionicons/src/home.svg deleted file mode 100644 index 7a642dd..0000000 --- a/admin/bower_components/Ionicons/src/home.svg +++ /dev/null @@ -1,9 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" style="enable-background:new 0 0 512 512;" xml:space="preserve"> -<g> - <polygon points="448,288 256,64 64,288 112,288 112,448 208,448 208,320 304,320 304,448 400,448 400,288 "/> -</g> -</svg> diff --git a/admin/bower_components/Ionicons/src/icecream.svg b/admin/bower_components/Ionicons/src/icecream.svg deleted file mode 100644 index 21bfc9a..0000000 --- a/admin/bower_components/Ionicons/src/icecream.svg +++ /dev/null @@ -1,15 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" style="enable-background:new 0 0 512 512;" xml:space="preserve"> -<g> - <polygon points="128,256 256,480 384,256 "/> - <g> - <path d="M402.5,172.6c-0.8-0.4-1.5-0.8-2.3-1.3c-4.4-2.8-8.4-8.5-8.7-12.7l0.1-0.7c3.2-9,5-19.2,5-29.8c0-53.1-43-96.1-96.1-96.1 - c-31.4,0-59.2,15-76.8,38.3c0,0-9.1,14-10.8,29c0,0,1.1-19.4,4.2-31.5c-7.4-2.5-15.4-3.8-23.6-3.8c-41.7,0-75.6,33.8-75.6,75.6 - c0,6.4,0.8,12.6,2.3,18.5c0,0.4-0.1,0.7-0.2,1c-0.9,5.1-4,9.5-8.4,12.3c-0.7,0.5-1.5,0.9-2.2,1.3c-8.2,5-13.5,13.6-13.5,23.4 - c0,15.4,13.5,28,29.9,28h4.1h252h4.1c16.4,0,29.8-12.5,29.8-28C416,186.3,410.6,177.6,402.5,172.6z"/> - </g> -</g> -</svg> diff --git a/admin/bower_components/Ionicons/src/image.svg b/admin/bower_components/Ionicons/src/image.svg deleted file mode 100644 index 7faf9bb..0000000 --- a/admin/bower_components/Ionicons/src/image.svg +++ /dev/null @@ -1,13 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" style="enable-background:new 0 0 512 512;" xml:space="preserve"> -<g> - <path d="M368,224c26.5,0,48-21.5,48-48c0-26.5-21.5-48-48-48c-26.5,0-48,21.5-48,48C320,202.5,341.5,224,368,224z"/> - <path d="M452,64H60c-15.6,0-28,12.7-28,28.3v327.4c0,15.6,12.4,28.3,28,28.3h392c15.6,0,28-12.7,28-28.3V92.3 - C480,76.7,467.6,64,452,64z M348.9,261.7c-3-3.5-7.6-6.2-12.8-6.2c-5.1,0-8.7,2.4-12.8,5.7l-18.7,15.8c-3.9,2.8-7,4.7-11.5,4.7 - c-4.3,0-8.2-1.6-11-4.1c-1-0.9-2.8-2.6-4.3-4.1L224,215.3c-4-4.6-10-7.5-16.7-7.5c-6.7,0-12.9,3.3-16.8,7.8L64,368.2V107.7 - c1-6.8,6.3-11.7,13.1-11.7h357.7c6.9,0,12.5,5.1,12.9,12l0.3,260.4L348.9,261.7z"/> -</g> -</svg> diff --git a/admin/bower_components/Ionicons/src/images.svg b/admin/bower_components/Ionicons/src/images.svg deleted file mode 100644 index c14db6c..0000000 --- a/admin/bower_components/Ionicons/src/images.svg +++ /dev/null @@ -1,20 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" style="enable-background:new 0 0 512 512;" xml:space="preserve"> -<g> - <g> - <path d="M457.6,140.2l-82.5-4l-4.8-53.8c-1-11.3-11.1-19.2-22.9-18.3L51.4,88.4c-11.8,1-20.3,10.5-19.4,21.7l21.2,235.8 - c1,11.3,11.2,19.2,22.9,18.3l15-1.2l-2.4,45.8c-0.6,12.6,9.2,22.8,22.4,23.5L441.3,448c13.2,0.6,24.1-8.6,24.8-21.2L480,163.5 - C480.6,151,470.7,140.8,457.6,140.2z M102.6,145.5l-7.1,134.8L78.1,305l-16-178c0-0.2,0-0.3,0-0.5s0-0.3,0-0.5 - c0.5-5,4.3-9,9.5-9.4l261-21.4c5.2-0.4,9.7,3,10.5,7.9c0,0.2,0.3,0.2,0.3,0.4c0,0.1,0.3,0.2,0.3,0.4l2.7,30.8l-219-10.5 - C114.2,123.8,103.2,133,102.6,145.5z M436.7,382.4l-46.7-55.3l-27.5-32.7c-2.4-2.9-6.3-5.3-10.6-5.5c-4.3-0.2-7.5,1.5-11.1,4.1 - l-16.4,11.9c-3.5,2.1-6.2,3.5-9.9,3.3c-3.6-0.2-6.8-1.6-9.1-3.8c-0.8-0.8-2.3-2.2-3.5-3.4l-42.8-48.9c-3.1-3.9-8.2-6.4-13.8-6.7 - c-5.7-0.3-11.2,2.1-14.8,5.6L129.4,359.8l-6.8,7.4l0.3-6.8l6.8-128.9l3.3-62.9c0-0.2,0-0.4,0-0.5c0-0.2,0-0.4,0-0.5 - c1.4-5.4,6.2-9.3,11.9-9l204.2,9.8l28.7,1.4l58.3,2.8c5.8,0.3,10.3,4.7,10.4,10.2c0,0.2,0.3,0.3,0.3,0.5c0,0.2,0.3,0.3,0.3,0.5 - L436.7,382.4z"/> - </g> - <path d="M373.2,262.3c19.4,0,35.2-15.8,35.2-35.2s-15.7-35.2-35.2-35.2c-19.4,0-35.2,15.7-35.2,35.2S353.7,262.3,373.2,262.3z"/> -</g> -</svg> diff --git a/admin/bower_components/Ionicons/src/information-circled.svg b/admin/bower_components/Ionicons/src/information-circled.svg deleted file mode 100644 index bed4eda..0000000 --- a/admin/bower_components/Ionicons/src/information-circled.svg +++ /dev/null @@ -1,11 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" style="enable-background:new 0 0 512 512;" xml:space="preserve"> -<g> - <path d="M480,253C478.3,129.3,376.7,30.4,253,32S30.4,135.3,32,259c1.7,123.7,103.3,222.6,227,221C382.7,478.3,481.7,376.7,480,253 - z M256,111.9c17.7,0,32,14.3,32,32s-14.3,32-32,32c-17.7,0-32-14.3-32-32S238.3,111.9,256,111.9z M300,395h-88v-11h22V224h-22v-12 - h66v172h22V395z"/> -</g> -</svg> diff --git a/admin/bower_components/Ionicons/src/information.svg b/admin/bower_components/Ionicons/src/information.svg deleted file mode 100644 index 6a72ba5..0000000 --- a/admin/bower_components/Ionicons/src/information.svg +++ /dev/null @@ -1,10 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" style="enable-background:new 0 0 512 512;" xml:space="preserve"> -<g> - <polygon points="288,448 288,192 192,192 192,208 224,208 224,448 192,448 192,464 320,464 320,448 "/> - <path d="M255.8,144.5c26.6,0,48.2-21.6,48.2-48.2s-21.6-48.2-48.2-48.2c-26.6,0-48.2,21.6-48.2,48.2S229.2,144.5,255.8,144.5z"/> -</g> -</svg> diff --git a/admin/bower_components/Ionicons/src/ionic.svg b/admin/bower_components/Ionicons/src/ionic.svg deleted file mode 100644 index 1db7b69..0000000 --- a/admin/bower_components/Ionicons/src/ionic.svg +++ /dev/null @@ -1,18 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" enable-background="new 0 0 512 512" xml:space="preserve"> -<g> - <path d="M423.592,132.804C427.006,127.714,429,121.59,429,115c0-17.675-14.33-32-32-32c-6.59,0-12.714,1.994-17.805,5.409 - C344.709,63.015,302.11,48,256,48C141.125,48,48,141.125,48,256c0,114.877,93.125,208,208,208c114.873,0,208-93.123,208-208 - C464,209.889,448.984,167.29,423.592,132.804z M391.83,391.832c-17.646,17.646-38.191,31.499-61.064,41.174 - c-23.672,10.012-48.826,15.089-74.766,15.089c-25.94,0-51.095-5.077-74.767-15.089c-22.873-9.675-43.417-23.527-61.064-41.174 - s-31.5-38.191-41.174-61.064C68.982,307.096,63.905,281.94,63.905,256c0-25.94,5.077-51.095,15.089-74.767 - c9.674-22.873,23.527-43.417,41.174-61.064s38.191-31.5,61.064-41.174C204.905,68.982,230.06,63.905,256,63.905 - c25.939,0,51.094,5.077,74.766,15.089c13.446,5.687,26.08,12.83,37.802,21.327C366.293,104.719,365,109.707,365,115 - c0,17.675,14.327,32,32,32c5.293,0,10.28-1.293,14.678-3.568c8.498,11.721,15.641,24.355,21.327,37.801 - c10.013,23.672,15.09,48.827,15.09,74.767c0,25.939-5.077,51.096-15.09,74.768C423.33,353.641,409.478,374.186,391.83,391.832z"/> - <circle cx="256.003" cy="256" r="96"/> -</g> -</svg> diff --git a/admin/bower_components/Ionicons/src/ios-alarm-outline.svg b/admin/bower_components/Ionicons/src/ios-alarm-outline.svg deleted file mode 100644 index e53ca3e..0000000 --- a/admin/bower_components/Ionicons/src/ios-alarm-outline.svg +++ /dev/null @@ -1,21 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" style="enable-background:new 0 0 512 512;" xml:space="preserve"> -<g> - <g> - <path d="M438.4,192.4c12.2-14.2,19.6-32.3,19.6-52.2c0.1-43.8-35.5-79.6-80.4-82.1c-1.6-0.1-3.1-0.1-4.8-0.1 - c-20.4-0.1-39.1,6.8-53.8,18.1l53.8,52.4l-10.5,10.4c-25.7-19.4-57-32-91-34.9v-0.1c0-8.5-7-15.5-15.5-15.5 - c-8.5,0-15.5,7-15.5,15.5v0.1c-33.9,2.9-65.1,15.5-90.7,34.9l-10.4-10.4l53.8-52.4c-14.7-11.4-33.4-18.2-53.7-18.1 - c-1.6,0-3.2,0.1-4.8,0.1c-45,2.5-80.6,38.3-80.4,82.1c0,19.8,7.4,38,19.6,52.2l54-52.6l9.5,9.5c-35.1,31.9-57.1,78-57.1,129.2 - c0,43.9,16.2,84,43,114.7l-36.4,44.6L99,448l35.2-42.9c31.6,30.2,74.4,48.9,121.6,48.9h0.1c0,0,0.2,0,0.3,0 - c47.2,0,90.2-18.7,121.8-48.9l35.2,43l12.3-10.1L389,393.3c26.8-30.8,43-70.9,43-114.7c0-51.1-22-97.3-57.2-129.3l9.5-9.5 - L438.4,192.4z M76.2,167.8c-4.2-8.6-6.4-18.4-6.5-28c-0.1-35.1,28.4-64.6,65.5-66.8c12.7-0.7,23.1,1.4,32.1,6.1L76.2,167.8z - M415.9,276.5c0,87.7-72,157.1-160.1,157.1C167.8,433.6,96,364.2,96,276.5c0-87.7,71.8-158.7,159.9-158.7 - C344,117.8,415.9,188.7,415.9,276.5z M344.7,79.2c8.8-4.8,19.3-6.8,32.1-6.1c37.2,2,65.6,31.5,65.5,66.8c0,9.6-2.3,19.4-6.5,28.1 - L344.7,79.2z"/> - </g> - <polygon points="256,160 256,288 160,288 160,304 272,304 272,160 "/> -</g> -</svg> diff --git a/admin/bower_components/Ionicons/src/ios-alarm.svg b/admin/bower_components/Ionicons/src/ios-alarm.svg deleted file mode 100644 index b8339b6..0000000 --- a/admin/bower_components/Ionicons/src/ios-alarm.svg +++ /dev/null @@ -1,14 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" style="enable-background:new 0 0 512 512;" xml:space="preserve"> -<g> - <path d="M438.4,192.4c12.2-14.2,19.6-32.3,19.6-52.2c0.1-43.8-35.5-79.6-80.4-82.1c-1.6-0.1-3.1-0.1-4.8-0.1 - c-20.4-0.1-39.1,6.8-53.8,18.1l53.8,52.4l-10.6,10.4c-25.7-19.4-57.2-32-91.2-34.9v-0.1c0-8.5-7-15.5-15.5-15.5s-15.5,7-15.5,15.5 - v0.1c-34,2.9-65,15.5-90.6,34.9L139,128.6l53.8-52.4c-14.7-11.4-33.4-18.2-53.7-18.1c-1.6,0-3.2,0.1-4.8,0.1 - c-45,2.5-80.6,38.3-80.4,82.1c0,19.8,7.4,38,19.6,52.2l54-52.6l9.5,9.5c-35.1,31.9-57.1,78-57.1,129.2c0,43.9,16.2,84,43,114.7 - l-36.4,44.6L99,448l35.2-42.9c31.6,30.2,74.4,48.9,121.6,48.9h0.1c0,0,0.2,0,0.3,0c47.2,0,90.2-18.7,121.8-48.9l35.2,43l12.3-10.1 - L389,393.3c26.8-30.8,43-70.9,43-114.7c0-51.1-22-97.3-57.2-129.3l9.5-9.5L438.4,192.4z M272,304H160v-16h96V160h16V304z"/> -</g> -</svg> diff --git a/admin/bower_components/Ionicons/src/ios-albums-outline.svg b/admin/bower_components/Ionicons/src/ios-albums-outline.svg deleted file mode 100644 index d0d248f..0000000 --- a/admin/bower_components/Ionicons/src/ios-albums-outline.svg +++ /dev/null @@ -1,11 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" style="enable-background:new 0 0 512 512;" xml:space="preserve"> -<g> - <path d="M464,144v288H48V144H464 M480,128H32v320h448V128L480,128z"/> - <rect x="72" y="96" width="368" height="16"/> - <rect x="104" y="64" width="304" height="16"/> -</g> -</svg> diff --git a/admin/bower_components/Ionicons/src/ios-albums.svg b/admin/bower_components/Ionicons/src/ios-albums.svg deleted file mode 100644 index 5b2b384..0000000 --- a/admin/bower_components/Ionicons/src/ios-albums.svg +++ /dev/null @@ -1,11 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" style="enable-background:new 0 0 512 512;" xml:space="preserve"> -<g> - <path d="M480,128H32v320h448V128L480,128z"/> - <rect x="72" y="96" width="368" height="16"/> - <rect x="104" y="64" width="304" height="16"/> -</g> -</svg> diff --git a/admin/bower_components/Ionicons/src/ios-americanfootball-outline.svg b/admin/bower_components/Ionicons/src/ios-americanfootball-outline.svg deleted file mode 100644 index 0f98a8b..0000000 --- a/admin/bower_components/Ionicons/src/ios-americanfootball-outline.svg +++ /dev/null @@ -1,24 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" enable-background="new 0 0 512 512" xml:space="preserve"> -<g> - <path d="M378.605,133.395C305.902,60.691,189.38,47.998,116.85,48c-38.926,0.001-65.191,3.658-65.191,3.658 - s-29.984,215.227,81.736,326.947C206.099,451.309,322.617,464,395.149,464c38.926,0,65.192-3.658,65.192-3.658 - S490.326,245.116,378.605,133.395z M65.142,65.208C76.137,64.194,94.374,63,116.856,63H117l-0.068-0.071 - c27.167,0,53.167,1.754,77.792,5.22l-126.6,126.581c-1.025-7.283-1.91-14.697-2.64-22.246 - C60.898,125.049,63.398,84.256,65.142,65.208z M143.9,368.102c-23.85-23.852-42.793-54.938-56.304-92.396 - c-6.973-19.332-12.51-40.373-16.57-62.866L212.838,71.05c10.672,1.929,21.064,4.191,31.141,6.804 - c52.027,13.492,93.783,35.708,124.139,66.064c23.851,23.85,42.786,54.928,56.297,92.386c6.974,19.333,12.509,40.375,16.567,62.871 - L299.17,440.986c-10.66-1.93-21.041-4.191-31.104-6.801C216.036,420.696,174.26,398.459,143.9,368.102z M446.861,446.868 - c-10.994,1.012-29.23,2.275-51.71,2.275c-27.192,0-53.225-1.77-77.876-5.25l126.607-126.607c1.024,7.279,1.908,14.688,2.638,22.233 - C451.108,386.956,448.606,427.817,446.861,446.868z"/> - <polygon points="307.304,317.847 329.929,340.479 301.275,369.131 312.59,380.445 380.471,312.564 369.157,301.25 340.436,329.971 - 317.811,307.34 346.527,278.623 335.214,267.31 306.499,296.024 283.866,273.386 312.568,244.684 301.255,233.37 272.555,262.07 - 249.929,239.439 278.626,210.742 267.312,199.429 238.618,228.124 215.987,205.487 244.674,176.8 233.361,165.487 204.676,194.172 - 182.052,171.542 210.734,142.86 199.421,131.547 131.538,199.429 142.852,210.743 171.545,182.049 194.169,204.679 165.478,233.37 - 176.791,244.683 205.48,215.994 228.11,238.631 199.432,267.31 210.745,278.623 239.422,249.946 262.048,272.577 233.374,301.251 - 244.688,312.564 273.359,283.893 295.992,306.531 267.332,335.191 278.646,346.505 "/> -</g> -</svg> diff --git a/admin/bower_components/Ionicons/src/ios-americanfootball.svg b/admin/bower_components/Ionicons/src/ios-americanfootball.svg deleted file mode 100644 index 3dd694e..0000000 --- a/admin/bower_components/Ionicons/src/ios-americanfootball.svg +++ /dev/null @@ -1,21 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" enable-background="new 0 0 512 512" xml:space="preserve"> -<g> - <g> - <path d="M378.605,133.395C305.902,60.691,189.381,47.998,116.85,48c-38.926,0.001-65.191,3.658-65.191,3.658 - s-29.984,215.227,81.736,326.947C206.099,451.309,322.617,464,395.148,464c38.927,0,65.193-3.658,65.193-3.658 - S490.327,245.116,378.605,133.395z M68.124,194.728L194.707,68.146c6.123,0.861,12.164,1.825,18.112,2.899L71.025,212.838 - C69.955,206.901,68.987,200.862,68.124,194.728z M267.312,335.195l28.688-28.688l-22.627-22.628l-28.688,28.688l-11.313-11.312 - l28.688-28.688l-22.627-22.627l-28.688,28.688l-11.313-11.312l28.688-28.688l-22.628-22.628l-28.688,28.688l-11.313-11.312 - l28.689-28.689l-22.628-22.627l-28.688,28.688l-11.314-11.313l67.884-67.883l11.313,11.314l-28.688,28.688l22.628,22.627 - l28.688-28.688l11.313,11.313l-28.688,28.688l22.628,22.628l28.688-28.688l11.314,11.313l-28.688,28.688l22.627,22.627 - l28.688-28.688l11.313,11.312l-28.688,28.688l22.628,22.628l28.688-28.688l11.312,11.313l-28.688,28.688l22.627,22.627 - l28.688-28.688l11.314,11.312l-67.883,67.884l-11.313-11.313l28.688-28.688l-22.628-22.628l-28.688,28.688L267.312,335.195z - M317.259,443.891c-6.121-0.863-12.159-1.83-18.104-2.906L440.979,299.16c1.071,5.938,2.038,11.977,2.901,18.111L317.259,443.891z - "/> - </g> -</g> -</svg> diff --git a/admin/bower_components/Ionicons/src/ios-analytics-outline.svg b/admin/bower_components/Ionicons/src/ios-analytics-outline.svg deleted file mode 100644 index da7dca0..0000000 --- a/admin/bower_components/Ionicons/src/ios-analytics-outline.svg +++ /dev/null @@ -1,24 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" enable-background="new 0 0 512 512" xml:space="preserve"> -<g> - <path d="M256,48c28.087,0,55.325,5.497,80.958,16.339c24.767,10.476,47.013,25.476,66.12,44.583s34.107,41.354,44.583,66.12 - C458.503,200.675,464,227.913,464,256s-5.497,55.325-16.339,80.958c-10.476,24.767-25.476,47.013-44.583,66.12 - s-41.354,34.107-66.12,44.583C311.325,458.503,284.087,464,256,464s-55.325-5.497-80.958-16.339 - c-24.767-10.476-47.013-25.476-66.12-44.583s-34.107-41.354-44.583-66.12C53.497,311.325,48,284.087,48,256 - s5.497-55.325,16.339-80.958c10.476-24.767,25.476-47.013,44.583-66.12s41.354-34.107,66.12-44.583 - C200.675,53.497,227.913,48,256,48 M256,32C132.288,32,32,132.288,32,256s100.288,224,224,224s224-100.288,224-224 - S379.712,32,256,32L256,32z"/> - <path d="M107.776,320c-25.252,0-41.168-18.448-41.902-19.317c-2.841-3.359-2.401-8.371,0.982-11.192 - c3.374-2.813,8.401-2.388,11.248,0.948c0.604,0.701,14.606,16.597,35.606,13.186c12.104-1.964,28.08-25.681,38.652-41.376 - c4.251-6.311,7.922-11.761,11.215-15.856c16.773-20.865,33.899-23.333,45.325-21.726c24.139,3.394,44.358,27.498,53.689,49.882 - c7.454,17.884,19.042,28.256,32.628,29.208c15.408,1.061,31.539-9.885,43.105-29.336c1.228-2.064,2.562-4.496,3.978-7.07 - c9.482-17.262,23.814-43.35,51.75-43.35c31.146,0,51.957,34.286,52.828,35.746c2.252,3.774,0.996,8.648-2.806,10.885 - c-3.8,2.237-8.708,0.988-10.96-2.786c-0.037-0.062-4.493-7.413-11.859-14.568c-6.286-6.107-16.108-13.387-27.203-13.387 - c-18.438,0-29.121,19.445-37.705,35.07c-1.48,2.696-2.88,5.243-4.245,7.538c-14.718,24.751-36.4,38.635-58.01,37.108 - c-19.951-1.398-36.389-15.242-46.284-38.98c-10.013-24.02-28.279-38.417-41.149-40.228c-10.6-1.494-20.895,3.861-30.578,15.906 - c-2.872,3.573-6.539,9.017-10.421,14.779c-13.549,20.114-30.411,45.146-49.37,48.223C113.349,319.784,110.507,320,107.776,320z"/> -</g> -</svg> diff --git a/admin/bower_components/Ionicons/src/ios-analytics.svg b/admin/bower_components/Ionicons/src/ios-analytics.svg deleted file mode 100644 index 578484b..0000000 --- a/admin/bower_components/Ionicons/src/ios-analytics.svg +++ /dev/null @@ -1,17 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" enable-background="new 0 0 512 512" xml:space="preserve"> -<path d="M256,32C141.174,32,46.544,118.404,33.54,229.739C32.534,238.354,32,247.114,32,256c0,1.783,0.026,3.561,0.067,5.333 - C34.901,382.581,134.071,480,256,480c105.255,0,193.537-72.602,217.542-170.454c1.337-5.451,2.474-10.979,3.404-16.579 - C478.943,280.939,480,268.594,480,256C480,132.288,379.712,32,256,32z M462.585,280.352c-7.265-7.807-13.064-16.09-15.702-20.429 - c-0.871-1.47-21.682-35.994-52.828-35.994c-27.937,0-42.269,26.269-51.751,43.65c-1.415,2.593-2.75,5.041-3.978,7.118 - c-11.566,19.587-27.693,30.608-43.105,29.541c-13.586-0.959-25.174-11.403-32.628-29.41c-9.331-22.54-29.551-46.812-53.689-50.229 - c-11.428-1.619-28.553,0.866-45.325,21.876c-3.293,4.124-6.964,9.612-11.215,15.967c-10.572,15.804-26.549,39.686-38.653,41.663 - c-21.02,3.438-35.021-12.596-35.583-13.249l-0.487-0.58l-0.587-0.479c-0.208-0.17-15.041-12.417-29.047-33.334 - c0-0.155-0.006-0.31-0.006-0.464c0-28.087,5.497-55.325,16.339-80.958c10.476-24.767,25.476-47.013,44.583-66.12 - s41.354-34.107,66.12-44.583C200.675,53.497,227.913,48,256,48s55.325,5.497,80.958,16.339 - c24.767,10.476,47.013,25.476,66.12,44.583s34.107,41.354,44.583,66.12C458.503,200.675,464,227.913,464,256 - C464,264.197,463.518,272.318,462.585,280.352z"/> -</svg> diff --git a/admin/bower_components/Ionicons/src/ios-arrow-back.svg b/admin/bower_components/Ionicons/src/ios-arrow-back.svg deleted file mode 100644 index ab05ca6..0000000 --- a/admin/bower_components/Ionicons/src/ios-arrow-back.svg +++ /dev/null @@ -1,7 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" style="enable-background:new 0 0 512 512;" xml:space="preserve"> -<polygon points="352,128.4 319.7,96 160,256 160,256 160,256 319.7,416 352,383.6 224.7,256 "/> -</svg> diff --git a/admin/bower_components/Ionicons/src/ios-arrow-down.svg b/admin/bower_components/Ionicons/src/ios-arrow-down.svg deleted file mode 100644 index f956e92..0000000 --- a/admin/bower_components/Ionicons/src/ios-arrow-down.svg +++ /dev/null @@ -1,7 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" style="enable-background:new 0 0 512 512;" xml:space="preserve"> -<polygon points="396.6,160 416,180.7 256,352 96,180.7 115.3,160 256,310.5 "/> -</svg> diff --git a/admin/bower_components/Ionicons/src/ios-arrow-forward.svg b/admin/bower_components/Ionicons/src/ios-arrow-forward.svg deleted file mode 100644 index d3a0570..0000000 --- a/admin/bower_components/Ionicons/src/ios-arrow-forward.svg +++ /dev/null @@ -1,7 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" style="enable-background:new 0 0 512 512;" xml:space="preserve"> -<polygon points="160,128.4 192.3,96 352,256 352,256 352,256 192.3,416 160,383.6 287.3,256 "/> -</svg> diff --git a/admin/bower_components/Ionicons/src/ios-arrow-left.svg b/admin/bower_components/Ionicons/src/ios-arrow-left.svg deleted file mode 100644 index 840ed36..0000000 --- a/admin/bower_components/Ionicons/src/ios-arrow-left.svg +++ /dev/null @@ -1,7 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" style="enable-background:new 0 0 512 512;" xml:space="preserve"> -<polygon points="352,115.4 331.3,96 160,256 331.3,416 352,396.7 201.5,256 "/> -</svg> diff --git a/admin/bower_components/Ionicons/src/ios-arrow-right.svg b/admin/bower_components/Ionicons/src/ios-arrow-right.svg deleted file mode 100644 index 489f14c..0000000 --- a/admin/bower_components/Ionicons/src/ios-arrow-right.svg +++ /dev/null @@ -1,7 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" style="enable-background:new 0 0 512 512;" xml:space="preserve"> -<polygon points="160,115.4 180.7,96 352,256 180.7,416 160,396.7 310.5,256 "/> -</svg> diff --git a/admin/bower_components/Ionicons/src/ios-arrow-thin-down.svg b/admin/bower_components/Ionicons/src/ios-arrow-thin-down.svg deleted file mode 100644 index bd1634e..0000000 --- a/admin/bower_components/Ionicons/src/ios-arrow-thin-down.svg +++ /dev/null @@ -1,9 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" style="enable-background:new 0 0 512 512;" xml:space="preserve"> -<path d="M349.7,322.2c-3.1-3.1-8-3-11.3,0L264,388.6V104c0-4.4-3.6-8-8-8c-4.4,0-8,3.6-8,8v284.6l-74.4-66.3 - c-3.4-2.9-8.1-3.2-11.2-0.1c-3.1,3.1-3.3,8.5-0.1,11.4c0,0,87,79.2,88,80s2.8,2.4,5.7,2.4s4.9-1.6,5.7-2.4s88-80,88-80 - c1.5-1.5,2.3-3.6,2.3-5.7C352,325.8,351.2,323.8,349.7,322.2z"/> -</svg> diff --git a/admin/bower_components/Ionicons/src/ios-arrow-thin-left.svg b/admin/bower_components/Ionicons/src/ios-arrow-thin-left.svg deleted file mode 100644 index d1223cd..0000000 --- a/admin/bower_components/Ionicons/src/ios-arrow-thin-left.svg +++ /dev/null @@ -1,9 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" style="enable-background:new 0 0 512 512;" xml:space="preserve"> -<path d="M189.8,349.7c3.1-3.1,3-8,0-11.3L123.4,264H408c4.4,0,8-3.6,8-8c0-4.4-3.6-8-8-8H123.4l66.3-74.4c2.9-3.4,3.2-8.1,0.1-11.2 - c-3.1-3.1-8.5-3.3-11.4-0.1c0,0-79.2,87-80,88S96,253.1,96,256s1.6,4.9,2.4,5.7s80,88,80,88c1.5,1.5,3.6,2.3,5.7,2.3 - C186.2,352,188.2,351.2,189.8,349.7z"/> -</svg> diff --git a/admin/bower_components/Ionicons/src/ios-arrow-thin-right.svg b/admin/bower_components/Ionicons/src/ios-arrow-thin-right.svg deleted file mode 100644 index ae5e049..0000000 --- a/admin/bower_components/Ionicons/src/ios-arrow-thin-right.svg +++ /dev/null @@ -1,9 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" style="enable-background:new 0 0 512 512;" xml:space="preserve"> -<path d="M322.2,349.7c-3.1-3.1-3-8,0-11.3l66.4-74.4H104c-4.4,0-8-3.6-8-8c0-4.4,3.6-8,8-8h284.6l-66.3-74.4 - c-2.9-3.4-3.2-8.1-0.1-11.2c3.1-3.1,8.5-3.3,11.4-0.1c0,0,79.2,87,80,88s2.4,2.8,2.4,5.7s-1.6,4.9-2.4,5.7s-80,88-80,88 - c-1.5,1.5-3.6,2.3-5.7,2.3C325.8,352,323.8,351.2,322.2,349.7z"/> -</svg> diff --git a/admin/bower_components/Ionicons/src/ios-arrow-thin-up.svg b/admin/bower_components/Ionicons/src/ios-arrow-thin-up.svg deleted file mode 100644 index 38ed41e..0000000 --- a/admin/bower_components/Ionicons/src/ios-arrow-thin-up.svg +++ /dev/null @@ -1,9 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" style="enable-background:new 0 0 512 512;" xml:space="preserve"> -<path d="M349.7,189.8c-3.1,3.1-8,3-11.3,0L264,123.4V408c0,4.4-3.6,8-8,8c-4.4,0-8-3.6-8-8V123.4l-74.4,66.3 - c-3.4,2.9-8.1,3.2-11.2,0.1c-3.1-3.1-3.3-8.5-0.1-11.4c0,0,87-79.2,88-80s2.8-2.4,5.7-2.4s4.9,1.6,5.7,2.4s88,80,88,80 - c1.5,1.5,2.3,3.6,2.3,5.7C352,186.2,351.2,188.2,349.7,189.8z"/> -</svg> diff --git a/admin/bower_components/Ionicons/src/ios-arrow-up.svg b/admin/bower_components/Ionicons/src/ios-arrow-up.svg deleted file mode 100644 index 9d53f77..0000000 --- a/admin/bower_components/Ionicons/src/ios-arrow-up.svg +++ /dev/null @@ -1,7 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" style="enable-background:new 0 0 512 512;" xml:space="preserve"> -<polygon points="396.6,352 416,331.3 256,160 96,331.3 115.3,352 256,201.5 "/> -</svg> diff --git a/admin/bower_components/Ionicons/src/ios-at-outline.svg b/admin/bower_components/Ionicons/src/ios-at-outline.svg deleted file mode 100644 index f97dc01..0000000 --- a/admin/bower_components/Ionicons/src/ios-at-outline.svg +++ /dev/null @@ -1,26 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" style="enable-background:new 0 0 512 512;" xml:space="preserve"> -<g> - <path d="M364.4,320.9c-5.3,7.5-11.6,14.7-18.8,21.4c-7.1,6.6-15.1,12.5-23.7,17.4c-8.6,4.9-17.9,8.8-27.5,11.5s-19.8,4.1-30.3,4.1 - c-15.9,0-31.2-2.6-45.5-7.6c-14.2-5-26.8-12.5-37.5-22.4c-10.7-9.8-21.7-25.9-28.2-41c-5.8-13.4-8.1-27.8-8.1-49.5 - c0-15.6,3.6-33,9.8-47.6c6-14,14.3-26.4,24.9-36.9c10.4-10.3,23-18.6,37.6-24.8c13.1-5.5,28.5-8.2,47.1-8.2c14.9,0,29,2.4,41.9,7 - c12.8,4.6,23.9,11.2,33.1,19.6c8.7,7.9,14,17.4,19.7,30.2c5,11.2,6.8,20.9,6.8,35.9c0,12.4-2.2,24.1-6.5,34.9 - c-4.3,10.6-7.5,17-14,25c-6.6,7.9-10.6,12.7-18.1,17.1c-8.6,5-15.3,7.4-21,7.4c-3.6,0-6.3-0.7-7.8-2c-1.5-1.3-2.4-3-2.7-5.4 - c-0.4-2.8-0.1-6.3,1-10.4c1.1-4.4,2.8-8.6,4.9-13.7L339.4,181h-17.8l-6.2,16.5c-3.8-6.1-9.1-11.5-15.9-15.5 - c-10.5-6.1-19.5-8.8-31.2-8.8c-13.5,0-26,3.5-37.2,10.4c-11,6.8-20.5,15.6-28.2,26.3c-7.5,10.3-9.3,15.7-12.9,26.4l-0.6,1.7 - c-4.2,12.4-6.3,24.6-6.3,36.2c0,7.7,1.4,15,4.1,21.8c2.7,6.8,6.4,12.8,11.1,17.8c4.7,5.1,10.4,9.1,16.9,12.1s13.7,4.5,21.3,4.5 - c8.5,0,16.6-1.4,26.1-4.7c6.3-2.2,11.9-5.8,17.4-11.4c1,3.2,2.7,6,5.3,8.5c5,5,11.7,7.6,19.9,7.6c8.6,0,17.8-3,29-9.3 - c9.9-5.6,15.7-12,23.3-21.1c8.2-9.8,12.3-18,16.9-29.7c5-12.5,7.5-26,7.5-40.3c0-18-2.4-30.2-8.5-43.6c-6.6-14.3-13.2-25.8-24-35.4 - c-10.9-9.6-23.9-17.1-38.5-22.3c-14.5-5.1-30.3-7.7-46.7-7.7c-20.1,0-37.2,3-52.2,9.1c-16.5,6.7-30.9,16-43,27.6 - c-12.2,11.8-22,25.9-29,41.9c-7.3,16.6-11.4,36.7-11.4,55.1c0,25.1,3.1,42.6,10.3,58.4c8,17.3,21,35.4,33.3,46 - c12.6,10.9,27.1,19.1,43.2,24.2c15.9,5.1,32.3,7.7,48.8,7.7c11.4,0,22.8-1.6,34-4.6c11.2-3.1,22-7.4,32.1-13.1 - c10.1-5.6,19.5-12.5,28.2-20.6c8.6-8.1,18.6-20.8,22-26.9c1.3-2.4,2.2-4.3,2.9-5.8h-18.5L364.4,320.9z M275.8,294.4 - c-4.4,5.6-7.7,9.5-11.8,12.2c-4.4,3-7.9,4.9-12.4,5.9c-4.6,1.2-9.3,1.7-13.7,1.7c-5.6,0-10.8-1-15.4-3c-4.7-2-8.7-4.8-12.1-8.4 - c-3.4-3.6-6.1-7.9-8.1-12.7c-1.9-4.8-2.9-10.2-2.9-16c0-9.5,1.8-19.7,5.3-30.3c0.4-1.2,0.8-2.4,1.1-3.4c2.8-8.6,4.3-11.5,9.5-20 - c5.7-9.4,14.1-16.6,23-22.5c8.6-5.8,18.2-8.7,28.5-8.7c4.2,0,8.6,0.5,13.2,1.5c3.6,0.8,5.6,1.9,9,3.9c0.6,0.3,1.1,0.6,1.7,1 - c3.9,2.2,7.4,5.1,10.4,8.7c2.7,3.2,4.8,7.4,6.3,12.3l-20.6,57.8C283.6,282.5,279.9,289.2,275.8,294.4z"/> -</g> -</svg> diff --git a/admin/bower_components/Ionicons/src/ios-at.svg b/admin/bower_components/Ionicons/src/ios-at.svg deleted file mode 100644 index 917d984..0000000 --- a/admin/bower_components/Ionicons/src/ios-at.svg +++ /dev/null @@ -1,24 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" style="enable-background:new 0 0 512 512;" xml:space="preserve"> -<path d="M356,320c-9.7,13.3-29.9,28.5-38.1,33.1s-16.9,8.3-26,10.8c-9,2.5-18.6,3.9-28.4,3.9c-14.9,0-29.4-2.4-43-7.2 - c-13.3-4.7-25.2-11.8-35.1-21c-9.9-9-20.3-24.2-26.5-38.5c-5.3-12.4-7.6-25.8-7.6-46.5c0-14.7,3.4-30.9,9.2-44.7 - c5.6-13.2,13.5-24.9,23.3-34.6c9.7-9.6,21.6-17.5,35.3-23.3c12.3-5.1,26.7-7.7,44.4-7.7c13.9,0,27.2,2.2,39.4,6.6 - c11.9,4.3,22.3,10.4,30.9,18.3c8,7.3,12.9,16.1,18.2,28.1c4.6,10.2,6.3,19.2,6.3,33.3c0,11.5-2,22.4-6,32.4c-4,9.8-7,15.8-13,23.3 - c-6.3,7.6-9.8,11.8-16.5,15.6c-7.8,4.6-13.7,6.7-18.5,6.7c-3.8,0-5-0.9-5.1-1c-0.6-0.5-1.1-1.2-1.4-2.8c-0.3-2.2,0-5.2,0.9-8.6 - c1-3.9,2.4-7.7,4.6-12.9L342.3,179h-25.6l-4.5,12c-3.5-4.1-7.7-7.5-12.4-10.2c-11.1-6.4-20.4-9-32.3-9c-13.8,0-26.7,3.6-38.2,10.7 - c-11.2,6.9-20.8,15.8-28.5,26.5c-7.6,10.5-9.5,16.1-13,26.5l-0.6,1.8c-4.2,12.4-6.3,24.7-6.3,36.4c0,7.9,1.5,15.5,4.3,22.6 - c2.8,7.2,6.7,13.4,11.6,18.5c4.8,5.2,10.7,9.4,17.7,12.6c6.8,3.1,14.3,4.8,22.4,4.8c8.9,0,17.1-1.5,26.7-4.8 - c5.3-1.8,9.9-4.5,14.4-8.3c1,1.7,2.2,3.1,3.7,4.5c5.6,5.6,13.1,8.5,22.1,8.5c8.9,0,18.6-3,30.2-9.5c10.3-5.8,16.3-12.5,23.7-21.4 - c8.4-10,12.5-18.6,17-29.9c5.1-12.5,7.6-26.2,7.6-40.6c0-18.1-2.4-30.4-8.7-44c-6.6-14.4-13.3-25.9-24.3-35.6 - c-10.9-9.7-23.9-17.2-38.7-22.4c-14.6-5.1-30.3-7.7-46.7-7.7c-20,0-37.2,3-52.2,9.1c-16.3,6.6-30.8,15.9-43.1,27.6 - c-12.3,11.8-22.1,26-29.1,42c-7.3,16.5-11.4,36.5-11.4,55.1c0,25,3.1,42.4,10.4,58.4c8.1,17.5,21.2,35.5,33.4,45.9 - c12.7,11.1,27.3,19.2,43.4,24.3c15.9,5.1,32.3,7.7,48.6,7.7c11.2,0,22.7-1.6,34.1-4.6c11.6-3.2,22.4-7.6,32.1-13.1 - c9.9-5.5,19.5-12.4,28.2-20.6c8.8-8.2,19.4-20.9,22.9-27.1c1.2-2.3,2.2-4.2,2.8-5.6H356z M271.9,290.6c-4.4,5.5-7.2,8.9-10.6,11.2 - c-3.8,2.6-6.8,4.2-10.7,5.2h-0.1c-3.9,1-8.1,1.5-12.4,1.5c-5,0-9.4-0.9-13.4-2.7c-4.1-1.7-7.5-4.1-10.5-7.3 - c-2.9-3.1-5.4-6.8-7.1-11.1c-1.7-4.3-2.5-9-2.5-14.1c0-8.7,1.7-18.3,5-28.2c0.4-1.2,0.8-2.4,1.1-3.3c2.6-8.1,4-10.6,8.9-18.6 - c4.5-7.4,11.5-14.2,21.2-20.7c7.7-5.1,16.2-7.8,25.6-7.8c3.8,0,7.8,0.5,12,1.4c3,0.7,4.6,1.6,7.6,3.3l0.2,0.1 - c0.4,0.2,0.8,0.4,1.3,0.7l0.3,0.2c3.4,1.9,6.4,4.5,9,7.6c2,2.4,3.7,5.5,5,9.4L282,272.2C279,279.6,275.6,285.8,271.9,290.6z"/> -</svg> diff --git a/admin/bower_components/Ionicons/src/ios-barcode-outline.svg b/admin/bower_components/Ionicons/src/ios-barcode-outline.svg deleted file mode 100644 index fcdfd3f..0000000 --- a/admin/bower_components/Ionicons/src/ios-barcode-outline.svg +++ /dev/null @@ -1,15 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" enable-background="new 0 0 512 512" xml:space="preserve"> -<g> - <polygon points="48,384 128,384 128,368 64,368 64,144 128,144 128,128 48,128 "/> - <polygon points="384,128 384,144 448,144 448,368 384,368 384,384 464,384 464,128 "/> - <rect x="112" y="192" width="16" height="128"/> - <rect x="384" y="192" width="16" height="128"/> - <rect x="320" y="160" width="16" height="192"/> - <rect x="176" y="160" width="16" height="192"/> - <rect x="247" y="176" width="16" height="160"/> -</g> -</svg> diff --git a/admin/bower_components/Ionicons/src/ios-barcode.svg b/admin/bower_components/Ionicons/src/ios-barcode.svg deleted file mode 100644 index 16d59df..0000000 --- a/admin/bower_components/Ionicons/src/ios-barcode.svg +++ /dev/null @@ -1,10 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" enable-background="new 0 0 512 512" xml:space="preserve"> -<g> - <path d="M48,128v256h416V128H48z M128,320h-16V192h16V320z M192,352h-16V160h16V352z M263,336h-16V176h16V336z M336,352h-16V160h16 - V352z M400,320h-16V192h16V320z"/> -</g> -</svg> diff --git a/admin/bower_components/Ionicons/src/ios-baseball-outline.svg b/admin/bower_components/Ionicons/src/ios-baseball-outline.svg deleted file mode 100644 index a992fea..0000000 --- a/admin/bower_components/Ionicons/src/ios-baseball-outline.svg +++ /dev/null @@ -1,35 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" enable-background="new 0 0 512 512" xml:space="preserve"> -<path d="M462.686,279.369c0.132-1.182,0.257-2.365,0.369-3.554c0.004-0.038,0.007-0.078,0.011-0.117 - C463.675,269.213,464,262.645,464,256c0-114.863-93.13-208-208-208c-7.951,0-15.792,0.462-23.512,1.331 - c-0.089,0.01-0.18,0.018-0.27,0.028c0,0.001,0,0.002,0,0.003C135.207,60.409,58.442,138.199,48.989,235.687 - c-0.001,0-0.003,0-0.004,0c-0.072,0.748-0.131,1.497-0.195,2.246c-0.136,1.576-0.253,3.157-0.353,4.743 - c-0.026,0.418-0.056,0.835-0.08,1.254c-0.064,1.121-0.116,2.245-0.163,3.371c-0.011,0.281-0.021,0.562-0.032,0.843 - C48.065,250.751,48,253.368,48,256c0,114.863,93.137,208,208,208c2.627,0,5.239-0.065,7.843-0.162 - c0.293-0.011,0.586-0.021,0.878-0.033c1.11-0.046,2.219-0.098,3.324-0.16c0.454-0.025,0.906-0.058,1.359-0.086 - c1.604-0.103,3.201-0.222,4.795-0.36c0.704-0.061,1.41-0.115,2.113-0.184c0-0.001,0-0.003,0-0.004 - c97.494-9.452,175.279-86.216,186.326-183.229c0.001,0,0.002,0,0.004,0C462.658,279.645,462.67,279.507,462.686,279.369z - M446.665,256c0,2.568-0.066,5.122-0.167,7.666c-10.334-0.468-20.552-1.69-30.614-3.664l6.11-19.056l-15.232-4.884l-6.488,20.235 - c-7.591-2.112-15.08-4.651-22.442-7.638c-4.976-2.018-9.851-4.223-14.625-6.604l11.518-17.003l-13.247-8.974l-12.359,18.246 - c-12.241-7.35-23.703-15.977-34.305-25.812l14.73-14.73l-11.313-11.313l-14.73,14.73c-9.555-10.297-17.964-21.408-25.175-33.254 - l18.487-12.522l-8.972-13.246l-17.324,11.735c-2.597-5.131-4.998-10.375-7.174-15.74c-2.843-7.009-5.276-14.134-7.327-21.352 - l20.812-6.673l-4.885-15.234l-19.711,6.32c-2.104-10.423-3.41-21.014-3.896-31.729c2.544-0.101,5.097-0.167,7.665-0.167 - C361.132,65.335,446.665,150.869,446.665,256z M65.337,256c0-1.317,0.023-2.629,0.05-3.939c9.064,0.559,18.039,1.687,26.891,3.409 - l-7.115,22.191l15.235,4.885l7.5-23.391c7.692,2.128,15.28,4.696,22.738,7.721c5.175,2.099,10.239,4.404,15.197,6.896l-13.405,19.79 - l13.246,8.973l14.219-20.992c12.038,7.279,23.32,15.793,33.765,25.483l-16.853,16.853l11.313,11.314l16.854-16.854 - c9.968,10.744,18.7,22.369,26.114,34.796l-20.753,14.058l8.972,13.246l19.473-13.19c2.283,4.611,4.4,9.317,6.347,14.116 - c3.161,7.795,5.834,15.729,8.016,23.778l-22.832,7.32l4.884,15.233l21.531-6.903c1.608,8.506,2.679,17.122,3.215,25.822 - c-1.311,0.026-2.622,0.05-3.939,0.05C150.87,446.664,65.336,361.13,65.337,256z M275.893,445.629 - c-0.621-9.974-1.911-19.911-3.859-29.746l24.1-7.727l-4.884-15.232l-22.896,7.341c-3.946-14.415-9.356-28.51-16.234-42.054 - l20.172-13.664l-8.973-13.246l-18.988,12.862c-7.888-13.094-17.233-25.552-28.04-37.145l17.081-17.081l-11.313-11.313 - l-17.082,17.081c-11.288-10.521-23.393-19.66-36.108-27.414l12.696-18.743l-13.246-8.972l-13.446,19.85 - c-13.548-6.974-27.659-12.467-42.094-16.494l7.158-22.325l-15.235-4.885l-7.52,23.452c-10.181-2.068-20.477-3.424-30.81-4.067 - c9.168-88.037,78.492-158.454,166.023-169.311c0.574,11.858,2.095,23.676,4.543,35.339l-25.935,8.316l4.885,15.234l24.903-7.985 - c4.045,14.144,9.504,27.967,16.386,41.246l-22.322,15.121l8.973,13.246l21.236-14.385c7.688,12.528,16.735,24.455,27.116,35.59 - l-19.204,19.204l11.313,11.314l19.204-19.205c11.447,10.669,23.735,19.921,36.647,27.745l-14.555,21.486l13.248,8.974l15.328-22.628 - c13.28,6.789,27.1,12.155,41.229,16.118l-8.168,25.477l15.232,4.884l8.525-26.59c11.301,2.312,22.744,3.754,34.224,4.31 - C434.347,367.137,363.93,436.46,275.893,445.629z"/> -</svg> diff --git a/admin/bower_components/Ionicons/src/ios-baseball.svg b/admin/bower_components/Ionicons/src/ios-baseball.svg deleted file mode 100644 index 49a50bb..0000000 --- a/admin/bower_components/Ionicons/src/ios-baseball.svg +++ /dev/null @@ -1,27 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" enable-background="new 0 0 512 512" xml:space="preserve"> -<path d="M256,48c-8.044,0-15.975,0.473-23.782,1.361l0,0l0,0C128.555,61.166,48,149.18,48,256c0,114.863,93.137,208,208,208 - c106.827,0,194.833-80.553,206.638-184.218l0,0l0,0C463.527,271.977,464,264.045,464,256C464,141.137,370.87,48,256,48z - M259.939,446.614c-0.539-8.693-1.605-17.305-3.209-25.804l-21.511,6.896l-4.885-15.234l22.812-7.314 - c-2.183-8.056-4.856-15.994-8.02-23.794c-1.943-4.794-4.061-9.497-6.341-14.105l-19.464,13.186l-8.972-13.247l20.744-14.054 - c-7.416-12.429-16.149-24.057-26.119-34.803l-16.852,16.853l-11.313-11.313l16.852-16.852c-10.442-9.689-21.721-18.202-33.757-25.48 - l-14.216,20.988l-13.247-8.973l13.403-19.788c-4.96-2.491-10.027-4.799-15.206-6.9c-7.455-3.021-15.038-5.59-22.725-7.717 - l-7.5,23.392l-15.236-4.885l7.115-22.192c-8.856-1.723-17.835-2.853-26.904-3.412c0.109-5.373,0.438-10.695,0.984-15.953 - c10.339,0.647,20.639,1.998,30.827,4.068l7.518-23.454l15.237,4.886l-7.159,22.328c14.433,4.027,28.542,9.521,42.09,16.494 - l13.449-19.854l13.248,8.973l-12.7,18.748c12.712,7.754,24.815,16.892,36.1,27.411l17.082-17.082l11.314,11.314l-17.083,17.082 - c10.809,11.595,20.156,24.055,28.044,37.151l18.999-12.869l8.973,13.248l-20.183,13.67c6.878,13.546,12.289,27.642,16.232,42.058 - l22.919-7.349l4.885,15.236l-24.122,7.734c1.947,9.828,3.231,19.761,3.854,29.727C270.637,446.177,265.314,446.504,259.939,446.614z - M410.961,275.293l-8.529,26.604l-15.236-4.885l8.174-25.493c-14.124-3.964-27.94-9.329-41.218-16.116l-15.335,22.641l-13.248-8.973 - l14.564-21.499c-12.912-7.826-25.199-17.077-36.644-27.746l-19.205,19.204l-11.312-11.314l19.202-19.203 - c-10.381-11.135-19.427-23.062-27.114-35.59l-21.248,14.393l-8.974-13.248l22.335-15.127c-6.881-13.278-12.339-27.099-16.384-41.241 - l-24.918,7.99l-4.885-15.237l25.951-8.321c-2.447-11.663-3.943-23.482-4.522-35.337c5.189-0.644,10.446-1.068,15.754-1.284 - c0.507,10.743,1.859,21.334,3.972,31.807l19.744-6.359l4.907,15.212l-20.789,6.658c2.051,7.218,4.491,14.338,7.333,21.348 - c2.176,5.363,4.578,10.603,7.174,15.731l17.315-11.729l8.973,13.246l-18.477,12.516c7.209,11.846,15.619,22.957,25.174,33.254 - l14.729-14.731l11.314,11.313l-14.732,14.731c10.602,9.836,22.062,18.463,34.302,25.813l12.352-18.235l13.248,8.973l-11.512,16.994 - c4.777,2.383,9.656,4.589,14.635,6.608c7.354,2.982,14.837,5.521,22.421,7.631l6.484-20.22l15.233,4.885l-6.104,19.043 - c10.116,1.984,20.286,3.311,30.626,3.824c-0.215,5.312-0.643,10.572-1.285,15.768C433.72,279.028,422.269,277.607,410.961,275.293z" - /> -</svg> diff --git a/admin/bower_components/Ionicons/src/ios-basketball-outline.svg b/admin/bower_components/Ionicons/src/ios-basketball-outline.svg deleted file mode 100644 index 9c17154..0000000 --- a/admin/bower_components/Ionicons/src/ios-basketball-outline.svg +++ /dev/null @@ -1,25 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" enable-background="new 0 0 512 512" xml:space="preserve"> -<path d="M256,48C141.137,48,48,141.136,48,256s93.137,208,208,208c114.871,0,208-93.138,208-208S370.871,48,256,48z M446.664,256 - c0,0.048-0.002,0.097-0.002,0.145c-22.315-1.721-43.989-6.972-64.62-15.699c-17.888-7.566-34.453-17.505-49.479-29.634 - c20.69-29.501,38.442-61.212,52.824-94.715C423.045,150.95,446.664,200.766,446.664,256z M372.606,105.261 - c-0.28,0.676-0.55,1.354-0.835,2.028c-13.908,32.883-31.062,63.956-51.286,92.987c-1.538-1.449-3.063-2.914-4.563-4.413 - c-19.107-19.107-34.107-41.354-44.583-66.12c-8.697-20.563-13.933-42.163-15.671-64.401c0.111,0,0.221-0.004,0.332-0.004 - C299.884,65.337,340.347,80.249,372.606,105.261z M239.675,66.044c4.431,58.126,31.044,110.041,71.391,147.312 - c-9.495,12.749-19.609,25.076-30.319,36.965c-47.554-50.032-104.815-90.746-168.767-119.132 - C143.616,94.733,188.833,70.375,239.675,66.044z M280.687,273.84c36.229,40.67,65.48,86.438,87.185,136.453 - c-25.4,18.467-55.51,30.829-88.162,34.898c-2.272-47.816-19.521-91.707-47.179-127.071 - C249.483,304.357,265.568,289.567,280.687,273.84z M262.039,270.039c-12.704,12.703-25.977,24.662-39.778,35.87 - c-38.737-42.885-93.831-70.706-155.45-73.635c4.07-32.646,16.432-62.75,34.896-88.146c59.195,25.688,112.445,61.947,158.332,107.833 - c3.323,3.323,6.59,6.689,9.812,10.089C267.277,264.736,264.677,267.401,262.039,270.039z M65.508,248.23 - c25.238,1.145,49.436,6.797,71.45,16.109c24.767,10.476,47.013,25.476,66.12,44.583c2.254,2.254,4.445,4.555,6.584,6.895 - c-31.414,23.915-65.427,44.049-101.708,60.182C81.322,343.205,65.336,301.437,65.336,256 - C65.336,253.396,65.404,250.809,65.508,248.23z M119.067,388.526c35.988-16.434,69.81-36.787,100.914-60.521 - c11.249,14.372,20.522,30.115,27.68,47.037c9.614,22.729,15.013,46.724,16.114,71.45c-2.58,0.104-5.17,0.172-7.775,0.172 - C202.317,446.664,153.751,424.353,119.067,388.526z M380.81,400.021c-22.489-50.671-52.72-97.14-89.191-137.909 - c11.101-12.269,21.634-25.061,31.556-38.336c34.171,27.342,76.521,44.885,122.801,48.363 - C441.686,323.058,417.311,368.347,380.81,400.021z"/> -</svg> diff --git a/admin/bower_components/Ionicons/src/ios-basketball.svg b/admin/bower_components/Ionicons/src/ios-basketball.svg deleted file mode 100644 index 4067d9d..0000000 --- a/admin/bower_components/Ionicons/src/ios-basketball.svg +++ /dev/null @@ -1,21 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" enable-background="new 0 0 512 512" xml:space="preserve"> -<path d="M256,48C141.137,48,48,141.136,48,256s93.137,208,208,208c114.871,0,208-93.138,208-208S370.871,48,256,48z - M380.797,400.032c-4.158,3.608-8.48,7.029-12.942,10.272c-21.704-50.015-50.938-95.795-87.168-136.465 - c-15.118,15.728-31.203,30.518-48.156,44.28c27.659,35.364,44.916,79.254,47.189,127.069c-5.252,0.655-10.571,1.086-15.944,1.303 - c-1.103-24.727-6.5-48.721-16.114-71.45c-7.158-16.922-16.431-32.665-27.68-47.037c-31.104,23.733-64.923,44.093-100.91,60.526 - c-3.883-4.011-7.592-8.191-11.115-12.529c36.28-16.134,70.291-36.271,101.705-60.186c-2.139-2.34-4.33-4.641-6.584-6.895 - c-19.107-19.107-41.354-34.107-66.12-44.583c-22.015-9.312-46.212-14.964-71.45-16.108c0.217-5.379,0.648-10.703,1.303-15.959 - c61.62,2.929,116.713,30.753,155.45,73.638c13.802-11.208,27.075-23.167,39.778-35.87c2.638-2.638,5.238-5.303,7.812-7.988 - c-3.223-3.4-6.489-6.767-9.812-10.09c-45.887-45.886-99.137-82.145-158.332-107.832c3.243-4.461,6.665-8.782,10.272-12.939 - c63.951,28.387,121.212,69.101,168.767,119.132c10.711-11.889,20.824-24.216,30.319-36.965 - c-40.347-37.271-66.956-89.188-71.388-147.312c5.273-0.449,10.604-0.692,15.99-0.702c1.738,22.238,6.974,43.838,15.671,64.401 - c10.476,24.767,25.476,47.013,44.583,66.12c1.5,1.5,3.025,2.965,4.562,4.413c20.226-29.031,37.379-60.104,51.287-92.987 - c0.285-0.674,0.555-1.353,0.835-2.028c4.419,3.426,8.681,7.042,12.779,10.835c-14.383,33.502-32.132,65.215-52.822,94.716 - c15.026,12.13,31.591,22.068,49.479,29.635c20.631,8.727,42.305,13.978,64.62,15.698c-0.004,5.387-0.243,10.717-0.688,15.991 - c-46.278-3.479-88.631-21.018-122.801-48.359c-9.922,13.275-20.455,26.067-31.556,38.336 - C328.091,302.883,358.307,349.36,380.797,400.032z"/> -</svg> diff --git a/admin/bower_components/Ionicons/src/ios-bell-outline.svg b/admin/bower_components/Ionicons/src/ios-bell-outline.svg deleted file mode 100644 index 3700782..0000000 --- a/admin/bower_components/Ionicons/src/ios-bell-outline.svg +++ /dev/null @@ -1,13 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" style="enable-background:new 0 0 512 512;" xml:space="preserve"> -<g> - <path d="M381.7,225.9c0-97.6-52.5-130.8-101.6-138.2c0-0.5,0.1-1,0.1-1.6c0-12.3-10.9-22.1-24.2-22.1c-13.3,0-23.8,9.8-23.8,22.1 - c0,0.6,0,1.1,0.1,1.6c-49.2,7.5-102,40.8-102,138.4c0,113.8-28.3,126-66.3,158h384C410.2,352,381.7,339.7,381.7,225.9z M107.2,368 - c8.6-9,16.4-18.4,22.7-31.8c12-25.3,17.4-59.2,17.4-110.2c0-46.4,12.5-80.4,37.1-101.2c22.9-19.3,51.7-23.3,71.8-23.3 - c20.1,0,48.9,4,71.6,23.3c24.5,20.7,37,54.5,37,100.9c0,83.8,14.9,117.3,40.3,142.3H107.2z"/> - <path d="M256.2,448c26.8,0,48.8-19.9,51.7-43H204.5C207.3,428.1,229.4,448,256.2,448z"/> -</g> -</svg> diff --git a/admin/bower_components/Ionicons/src/ios-bell.svg b/admin/bower_components/Ionicons/src/ios-bell.svg deleted file mode 100644 index f9e21a5..0000000 --- a/admin/bower_components/Ionicons/src/ios-bell.svg +++ /dev/null @@ -1,11 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" style="enable-background:new 0 0 512 512;" xml:space="preserve"> -<g> - <path d="M381.7,225.9c0-97.6-52.5-130.8-101.6-138.2c0-0.5,0.1-1,0.1-1.6c0-12.3-10.9-22.1-24.2-22.1c-13.3,0-23.8,9.8-23.8,22.1 - c0,0.6,0,1.1,0.1,1.6c-49.2,7.5-102,40.8-102,138.4c0,113.8-28.3,126-66.3,158h384C410.2,352,381.7,339.7,381.7,225.9z"/> - <path d="M256.2,448c26.8,0,48.8-19.9,51.7-43H204.5C207.3,428.1,229.4,448,256.2,448z"/> -</g> -</svg> diff --git a/admin/bower_components/Ionicons/src/ios-body-outline.svg b/admin/bower_components/Ionicons/src/ios-body-outline.svg deleted file mode 100644 index 809da99..0000000 --- a/admin/bower_components/Ionicons/src/ios-body-outline.svg +++ /dev/null @@ -1,27 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" enable-background="new 0 0 512 512" xml:space="preserve"> -<g> - <path d="M256,47.959c17.645,0,32,14.351,32,31.991c0,17.64-14.355,31.99-32,31.99s-32-14.351-32-31.99 - C224,62.31,238.355,47.959,256,47.959 M256,31.964c-26.51,0-48,21.483-48,47.986c0,26.502,21.49,47.985,48,47.985 - s48-21.483,48-47.985C304,53.447,282.51,31.964,256,31.964L256,31.964z"/> - <path d="M424,144H88c-13.255,0-24,10.747-24,24s10.745,24,24,24h100.451c5.549,0,13.197,4.295,17.216,14.708 - c4.651,12.055,2.37,33.33-0.539,51.444l-3.923,21.26c-0.019,0.104-0.205,0.1-0.205,0.203l-32.229,172.238 - c-2.303,13.051,6.487,25.494,19.54,27.797c1.408,0.248,2.844,0.367,4.218,0.367c11.357,0,20.917-8.19,22.97-19.836L236,340.242 - v0.166c0,0,7.25-31.408,19.452-31.408h1.096C269,309,274,340.408,274,340.408v-0.082l21.483,119.895 - c2.052,11.642,12.331,19.815,23.763,19.815c1.387,0,2.855-0.121,4.268-0.368c13.053-2.303,21.821-14.76,19.519-27.811 - l-32.349-172.251c-0.002-0.008,0.011-0.02,0.009-0.027c-0.019-0.104-0.032-0.217-0.052-0.322l-3.771-21.411 - c-2.909-18.119-5.188-39.083-0.538-51.137C310.351,196.295,318.5,192,323.549,192H424c13.255,0,24-10.747,24-24 - S437.255,144,424,144z M88,176.113c-4.411,0-8-3.646-8-8.057c0-4.411,3.589-8.057,8-8.057h336c4.411,0,8,3.59,8,8s-3.589,8-8,8 - H322.5c-15.538,0-27.438,14.738-30.982,23.922c-4.846,12.557-5.004,31.942-0.388,60.688l-0.009,0.104l0.006,0.11l3.367,19.138 - l0.562,3.241l32.252,171.628c0.5,2.834-0.62,4.961-1.332,5.977c-0.713,1.017-2.335,2.799-5.179,3.301 - c-0.476,0.083-0.955,0.126-1.427,0.126c-3.893,0-7.207-2.639-7.883-6.472L290.255,338h-0.015c-0.271-2-1.828-10.05-5.022-18.771 - c-2.278-6.217-4.844-11.034-7.844-15.005C270.283,294.836,262.135,293,256.548,293h-1.096c-5.47,0-13.503,1.731-20.71,10.938 - c-3.05,3.896-5.729,8.671-8.19,14.802c-3.628,9.037-5.505,17.654-5.708,18.613l-0.11,0.369l-20.728,119.9 - c-0.693,3.886-3.75,6.596-7.441,6.596c-0.459,0-0.932-0.043-1.403-0.127c-2.84-0.5-4.455-2.275-5.165-3.288 - c-0.709-1.013-1.824-3.136-1.323-5.975l32.257-171.562l0.004-0.019l0.174-0.927l3.775-21.33l0.022-0.125l0.021-0.126 - c4.629-28.829,4.527-48.3-0.332-60.891c-3.543-9.181-13.576-23.737-31.76-23.737"/> -</g> -</svg> diff --git a/admin/bower_components/Ionicons/src/ios-body.svg b/admin/bower_components/Ionicons/src/ios-body.svg deleted file mode 100644 index 7b6096c..0000000 --- a/admin/bower_components/Ionicons/src/ios-body.svg +++ /dev/null @@ -1,17 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" enable-background="new 0 0 512 512" xml:space="preserve"> -<g> - <circle cx="256" cy="79.838" r="48"/> - <path d="M424,144H88c-13.255,0-24,10.745-24,24s10.745,24,24,24h98.451c5.579,1,13.197,3.837,17.216,14.252 - c4.651,12.056,2.37,33.606-0.539,51.727l-3.775,21.395c-0.019,0.104-0.039,0.207-0.058,0.311c-0.002,0.008-0.002,0.012-0.004,0.02 - l-30.375,172.268c-2.303,13.053,6.414,25.5,19.467,27.803c13.055,2.301,25.333-6.416,27.634-19.471L237,340.348v0.167 - c0,0,6.25-32.515,18.452-32.515h1.096C269,308,275,340.515,275,340.515v-0.083l20.983,119.913 - c2.301,13.055,14.663,21.749,27.718,19.448c13.053-2.303,21.728-14.762,19.425-27.814L312.73,279.703 - c-0.002-0.008-0.013-0.02-0.015-0.027c-0.019-0.104-0.044-0.217-0.063-0.322l-3.777-21.414 - c-2.909-18.121-5.191-39.631-0.541-51.688C312.354,195.838,319.97,193,325.549,192H424c13.255,0,24-10.745,24-24 - S437.255,144,424,144z"/> -</g> -</svg> diff --git a/admin/bower_components/Ionicons/src/ios-bolt-outline.svg b/admin/bower_components/Ionicons/src/ios-bolt-outline.svg deleted file mode 100644 index 52bd7b4..0000000 --- a/admin/bower_components/Ionicons/src/ios-bolt-outline.svg +++ /dev/null @@ -1,8 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" style="enable-background:new 0 0 512 512;" xml:space="preserve"> -<path d="M273.9,132l-16.5,89.1L254,240h19.2h64.8l-99.8,140l16.5-89.1L258,272h-19.2h-64.7L273.9,132 M302.7,64L143,288h95.8 - l-29.5,160L369,224h-95.8L302.7,64L302.7,64z"/> -</svg> diff --git a/admin/bower_components/Ionicons/src/ios-bolt.svg b/admin/bower_components/Ionicons/src/ios-bolt.svg deleted file mode 100644 index cd06713..0000000 --- a/admin/bower_components/Ionicons/src/ios-bolt.svg +++ /dev/null @@ -1,7 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" style="enable-background:new 0 0 512 512;" xml:space="preserve"> -<path d="M302.7,64L143,288h95.8l-29.5,160L369,224h-95.8L302.7,64L302.7,64z"/> -</svg> diff --git a/admin/bower_components/Ionicons/src/ios-book-outline.svg b/admin/bower_components/Ionicons/src/ios-book-outline.svg deleted file mode 100644 index d285709..0000000 --- a/admin/bower_components/Ionicons/src/ios-book-outline.svg +++ /dev/null @@ -1,13 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" enable-background="new 0 0 512 512" xml:space="preserve"> -<path d="M347.621,64c-40.941,0-79.121,14-91.578,44.495C242.5,78,205.408,64,164.466,64C109.265,64,64,89.98,64,143v1v8.995V417v9 - h6.215h10.958h4.967c12.86-26.334,44.238-42,78.325-42c40.224,0,73.877,27.528,81.617,64h19.714c7.739-36.472,41.495-64,81.722-64 - c34.085,0,61.149,11.666,78.429,42h4.967h10.959H448v-17V148v-4v-1C448,89.98,402.823,64,347.621,64z M248,410.926 - C230,385.055,199.27,368,164.5,368c-34.769,0-64.5,10.055-83.5,35.926l-1,0.537V142l0,0v-1c3-41.825,40.089-61,84.293-61 - c45.162,0,82.145,18.708,83.363,61.808c-0.017,0.729,0.016,1.459,0.016,2.192L248,157.103V410.926z M432,148v255.926 - C414,378.055,382.269,368,347.5,368c-34.77,0-65.5,17.055-83.5,42.926V145v-1c0-44.112,37.659-64,83.587-64 - C391.79,80,429,91.175,432,133v1V148z"/> -</svg> diff --git a/admin/bower_components/Ionicons/src/ios-book.svg b/admin/bower_components/Ionicons/src/ios-book.svg deleted file mode 100644 index d131b76..0000000 --- a/admin/bower_components/Ionicons/src/ios-book.svg +++ /dev/null @@ -1,12 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" enable-background="new 0 0 512 512" xml:space="preserve"> -<g> - <path d="M164.466,64C109.266,64,64,89.98,64,143v1v8.994V417v9h6.215h10.959h4.967c12.86-26.334,44.238-42,78.325-42 - c40.224,0,73.877,27.528,81.616,64H248V95.346C230.76,73.951,198.981,64,164.466,64z"/> - <path d="M347.621,64c-34.332,0-66.713,9.851-83.621,31.011V448h1.797c7.739-36.472,41.495-64,81.722-64 - c34.085,0,61.149,11.666,78.429,42h4.967h10.959H448v-17V148v-4v-1C448,89.98,402.823,64,347.621,64z"/> -</g> -</svg> diff --git a/admin/bower_components/Ionicons/src/ios-bookmarks-outline.svg b/admin/bower_components/Ionicons/src/ios-bookmarks-outline.svg deleted file mode 100644 index ee4fba0..0000000 --- a/admin/bower_components/Ionicons/src/ios-bookmarks-outline.svg +++ /dev/null @@ -1,13 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" style="enable-background:new 0 0 512 512;" xml:space="preserve"> -<path d="M432,64H281.6c-10.3,0-19.3,4.6-25.6,11.7l0,0l0,0c-6.2-7.2-15.3-11.7-25.6-11.7H80c-18.8,0-33,13.3-33,32v286.1 - c0,18.8,14.2,33.9,33,33.9c0,0,129.5,0,143.3,0c13.8,0,24.7,4.2,24.7,19.4c0,9.1,0,12.6,0,12.6h8h8c0,0,0-3.4,0-12.6 - c0-15.3,10.9-19.4,24.7-19.4s143.3,0,143.3,0c18.8,0,33-15.1,33-33.9V96C465,77.3,450.8,64,432,64z M248,411.1 - c-4.7-7.8-13.5-11.1-23.8-11.1H80c-9.4,0-16-8.5-16-17.9V96c0-9.4,6.6-16,16-16c0,0,130.6,0,143.3,0c12.8,0,24.7,12.8,24.7,22.2 - V411.1z M320,80c18.8,0,43,0,64,0v100.4l-22.9-14.5l-9.1-6.4l-9.1,6.4L320,180.4V80z M448,382.1c0,9.4-6.6,17.9-16,17.9H287.8 - c-10.3,0-19.1,2.3-23.8,11.1V102.2c0-9.4,11.9-22.2,24.7-22.2c2.2,0,7.7,0,15.3,0v131l48-32l48,32V80c18.6,0,32,0,32,0 - c9.4,0,16,6.7,16,16V382.1z"/> -</svg> diff --git a/admin/bower_components/Ionicons/src/ios-bookmarks.svg b/admin/bower_components/Ionicons/src/ios-bookmarks.svg deleted file mode 100644 index bb68040..0000000 --- a/admin/bower_components/Ionicons/src/ios-bookmarks.svg +++ /dev/null @@ -1,13 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" style="enable-background:new 0 0 512 512;" xml:space="preserve"> -<g> - <path d="M342.9,165.4l9.1-6.4l9.1,6.4l22.9,14.5V64c-20.7,0-44.5,0-64,0v115.9L342.9,165.4z"/> - <path d="M432,64c0,0-13.3,0-32,0v146.5l-48-32l-48,32V64c-12.1,0-20.6,0-22.4,0c-8.1,0-17.6,7.2-17.6,15s0,329,0,329l-8,5.5l-8-5.5 - c0,0,0-322,0-329s-9.2-15-17.6-15S80,64,80,64c-18.8,0-33,13.3-33,32v286.1c0,18.8,14.2,33.9,33,33.9c0,0,129.5,0,143.3,0 - c13.8,0,24.7,4.2,24.7,19.4c0,9.1,0,12.6,0,12.6h8h8c0,0,0-3.4,0-12.6c0-15.3,10.9-19.4,24.7-19.4s143.3,0,143.3,0 - c18.8,0,33-15.1,33-33.9V96C465,77.3,450.8,64,432,64z"/> -</g> -</svg> diff --git a/admin/bower_components/Ionicons/src/ios-box-outline.svg b/admin/bower_components/Ionicons/src/ios-box-outline.svg deleted file mode 100644 index 1045d48..0000000 --- a/admin/bower_components/Ionicons/src/ios-box-outline.svg +++ /dev/null @@ -1,13 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" style="enable-background:new 0 0 512 512;" xml:space="preserve"> -<g> - <path d="M287.8,240c8.8,0,16.1,7.2,16.1,16s-7,16-15.9,16h-64c-8.8,0-16-7.2-16-16s7.2-16,16-16h63 M288,224h-64 - c-17.6,0-32,14.4-32,32s14.4,32,32,32h64c17.6,0,32-14.4,32-32S305.6,224,288,224L288,224z"/> - <g> - <path d="M416,112H96v80h16v208h288V192h16V112z M384,384H128V192h256V384z M400,176H112v-48h288V176z"/> - </g> -</g> -</svg> diff --git a/admin/bower_components/Ionicons/src/ios-box.svg b/admin/bower_components/Ionicons/src/ios-box.svg deleted file mode 100644 index 89e68da..0000000 --- a/admin/bower_components/Ionicons/src/ios-box.svg +++ /dev/null @@ -1,10 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" style="enable-background:new 0 0 512 512;" xml:space="preserve"> -<g> - <path d="M112,400h288V208H112V400z M224,240h64c8.8,0,16,7.2,16,16s-7.2,16-16,16h-64c-8.8,0-16-7.2-16-16S215.2,240,224,240z"/> - <polygon points="96,112 96,192 112,192 400,192 416,192 416,112 "/> -</g> -</svg> diff --git a/admin/bower_components/Ionicons/src/ios-briefcase-outline.svg b/admin/bower_components/Ionicons/src/ios-briefcase-outline.svg deleted file mode 100644 index 1b9bd59..0000000 --- a/admin/bower_components/Ionicons/src/ios-briefcase-outline.svg +++ /dev/null @@ -1,11 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" style="enable-background:new 0 0 512 512;" xml:space="preserve"> -<g> - <path d="M416,128v-16h-32v16h-48V98.1V96c-0.5-18.2-13.6-32-32.2-32h-99.1C186.1,64,176,77.7,176,96v2.1V128h-48v-16H96v16H48v320 - h416V128H416z M192,127.5V98.1c0-10.2,2.9-18.1,13.7-18.1h97.1c10.4,0,17.2,7.7,17.2,18.1v29.4v0.5H192V127.5z M448,432H64V208h384 - V432z M448,192H64v-48h32v16h32v-16h256v16h32v-16h32V192z"/> -</g> -</svg> diff --git a/admin/bower_components/Ionicons/src/ios-briefcase.svg b/admin/bower_components/Ionicons/src/ios-briefcase.svg deleted file mode 100644 index 90b9cf2..0000000 --- a/admin/bower_components/Ionicons/src/ios-briefcase.svg +++ /dev/null @@ -1,13 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" style="enable-background:new 0 0 512 512;" xml:space="preserve"> -<g> - <rect x="96" y="112" width="32" height="16"/> - <rect x="48" y="208" width="416" height="240"/> - <rect x="384" y="112" width="32" height="16"/> - <path d="M416,128v32h-32v-32h-48V98.1V96c-0.5-18.2-13.6-32-32.2-32h-99.1C186.1,64,176,77.7,176,96v2.1V128h-48v32H96v-32H48v64 - h416v-64H416z M320,127.5v0.5H192v-0.5V98.1c0-10.2,2.9-18.1,13.7-18.1h97.1c10.4,0,17.2,7.7,17.2,18.1V127.5z"/> -</g> -</svg> diff --git a/admin/bower_components/Ionicons/src/ios-browsers-outline.svg b/admin/bower_components/Ionicons/src/ios-browsers-outline.svg deleted file mode 100644 index 3c29db9..0000000 --- a/admin/bower_components/Ionicons/src/ios-browsers-outline.svg +++ /dev/null @@ -1,12 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" style="enable-background:new 0 0 512 512;" xml:space="preserve"> -<g> - <path d="M64,144v304h303.9V144H64z M351.9,432H80V160h271.9V432z"/> - <g> - <polygon points="448,64 144,64 144,128 160,128 160,80 432,80 432,352 384,352 384,368 448,368 "/> - </g> -</g> -</svg> diff --git a/admin/bower_components/Ionicons/src/ios-browsers.svg b/admin/bower_components/Ionicons/src/ios-browsers.svg deleted file mode 100644 index 36ab92e..0000000 --- a/admin/bower_components/Ionicons/src/ios-browsers.svg +++ /dev/null @@ -1,10 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" style="enable-background:new 0 0 512 512;" xml:space="preserve"> -<g> - <path d="M64,144v304h303.9V144H64z"/> - <polygon points="144,64 144,128 384,128 384,368 448,368 448,64 "/> -</g> -</svg> diff --git a/admin/bower_components/Ionicons/src/ios-calculator-outline.svg b/admin/bower_components/Ionicons/src/ios-calculator-outline.svg deleted file mode 100644 index 9006a34..0000000 --- a/admin/bower_components/Ionicons/src/ios-calculator-outline.svg +++ /dev/null @@ -1,19 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" style="enable-background:new 0 0 512 512;" xml:space="preserve"> -<g> - <path d="M144,160h224V96H144V160z M160,112h192v32H160V112z"/> - <path d="M368,64H144c-17.7,0-32,14.3-32,32v320c0,17.7,14.3,32,32,32h224c17.7,0,32-14.3,32-32V96C400,78.3,385.7,64,368,64z - M384,416c0,8.8-7.2,16-16,16H144c-8.8,0-16-7.2-16-16V96c0-8.8,7.2-16,16-16h224c8.8,0,16,7.2,16,16V416z"/> - <polygon points="160,240 160,208 160,192 144,192 144,256 208,256 208,240 192,240 "/> - <polygon points="160,320 160,288 160,272 144,272 144,336 208,336 208,320 192,320 "/> - <polygon points="160,400 160,368 160,352 144,352 144,416 208,416 208,400 192,400 "/> - <polygon points="240,240 240,208 240,192 224,192 224,256 288,256 288,240 272,240 "/> - <polygon points="320,240 320,208 320,192 304,192 304,256 368,256 368,240 352,240 "/> - <polygon points="240,320 240,288 240,272 224,272 224,336 288,336 288,320 272,320 "/> - <polygon points="240,400 240,368 240,352 224,352 224,416 288,416 288,400 272,400 "/> - <polygon points="320,400 320,368 320,272 304,272 304,416 368,416 368,400 352,400 "/> -</g> -</svg> diff --git a/admin/bower_components/Ionicons/src/ios-calculator.svg b/admin/bower_components/Ionicons/src/ios-calculator.svg deleted file mode 100644 index 64b0860..0000000 --- a/admin/bower_components/Ionicons/src/ios-calculator.svg +++ /dev/null @@ -1,9 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" style="enable-background:new 0 0 512 512;" xml:space="preserve"> -<path d="M368,64H144c-17.7,0-32,14.3-32,32v320c0,17.7,14.3,32,32,32h224c17.7,0,32-14.3,32-32V96C400,78.3,385.7,64,368,64z - M360,280v128h-48V280H360z M360,200v48h-48v-48H360z M280,360v48h-48v-48H280z M280,280v48h-48v-48H280z M280,200v48h-48v-48H280z - M200,360v48h-48v-48H200z M200,280v48h-48v-48H200z M200,200v48h-48v-48H200z M152,152v-48h208v48H152z"/> -</svg> diff --git a/admin/bower_components/Ionicons/src/ios-calendar-outline.svg b/admin/bower_components/Ionicons/src/ios-calendar-outline.svg deleted file mode 100644 index cd81cbd..0000000 --- a/admin/bower_components/Ionicons/src/ios-calendar-outline.svg +++ /dev/null @@ -1,14 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" style="enable-background:new 0 0 512 512;" xml:space="preserve"> -<style type="text/css"> -<![CDATA[ - .st0{fill:none;} -]]> -</style> -<polyline class="st0" points="80,112 80,176 432,176 432,112 "/> -<path d="M352,96V64h-16v32H176V64h-16v32H64v352h384V96H352z M432,432H80V192h352V432z M432,176H80v-64h80v32h16v-32h160v32h16v-32 - h80V176z"/> -</svg> diff --git a/admin/bower_components/Ionicons/src/ios-calendar.svg b/admin/bower_components/Ionicons/src/ios-calendar.svg deleted file mode 100644 index 8fd1de3..0000000 --- a/admin/bower_components/Ionicons/src/ios-calendar.svg +++ /dev/null @@ -1,12 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" style="enable-background:new 0 0 512 512;" xml:space="preserve"> -<g> - <rect x="64" y="192" width="384" height="256"/> - <polygon points="448,96 352,96 352,144 336,144 336,96 176,96 176,144 160,144 160,96 64,96 64,176 448,176 "/> - <rect x="160" y="64" width="16" height="32"/> - <rect x="336" y="64" width="16" height="32"/> -</g> -</svg> diff --git a/admin/bower_components/Ionicons/src/ios-camera-outline.svg b/admin/bower_components/Ionicons/src/ios-camera-outline.svg deleted file mode 100644 index 3feed55..0000000 --- a/admin/bower_components/Ionicons/src/ios-camera-outline.svg +++ /dev/null @@ -1,17 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" style="enable-background:new 0 0 512 512;" xml:space="preserve"> -<g> - <path d="M417.5,160h-61.7c-32.1-36-42.2-48-54.5-48h-88.5c-12.3,0-22.2,12-54.5,48H145v-16h-34v16H97.5C79.9,160,64,173.2,64,190.7 - v176c0,17.5,15.9,33.3,33.5,33.3h320c17.6,0,30.5-15.8,30.5-33.3v-176C448,173.2,435.1,160,417.5,160z M432,366.7 - c0,9.3-6.2,17.3-14.5,17.3h-320c-8.7,0-17.5-8.7-17.5-17.3v-176c0-8.2,8.1-14.7,17.5-14.7h60.7h7.1l4.8-3.2c4-4.5,7.7-10,11.1-13.8 - c11.3-12.7,19.5-21.7,25.3-26.9c4.7-4.2,6.2-4.1,6.2-4.1h88.5c0,0,1.6-0.1,6.7,4.5c6.1,5.5,14.7,16.5,26.6,29.8 - c2.9,3.3,6,6.8,9.3,10.5l4.8,3.2h7.2h61.7c8.8,0,14.5,6,14.5,14.7V366.7z"/> - <path d="M256,189.5c-47.1,0-85.5,38.4-85.5,85.5s38.4,85.5,85.5,85.5s85.5-38.4,85.5-85.5S303.1,189.5,256,189.5z M256,344.5 - c-38.4,0-69.5-31.1-69.5-69.5s31.1-69.5,69.5-69.5s69.5,31.1,69.5,69.5S294.4,344.5,256,344.5z"/> - <rect x="352" y="192" width="17" height="17"/> - <circle cx="256" cy="275" r="32"/> -</g> -</svg> diff --git a/admin/bower_components/Ionicons/src/ios-camera.svg b/admin/bower_components/Ionicons/src/ios-camera.svg deleted file mode 100644 index 11ce875..0000000 --- a/admin/bower_components/Ionicons/src/ios-camera.svg +++ /dev/null @@ -1,13 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" style="enable-background:new 0 0 512 512;" xml:space="preserve"> -<g> - <path d="M417.5,160h-61.7c-32.1-36-42.2-48-54.5-48h-88.5c-12.3,0-22.2,12-54.5,48H145v-16h-34v16H97.5C79.9,160,64,173.2,64,190.7 - v176c0,17.5,15.9,33.3,33.5,33.3h320c17.6,0,30.5-15.8,30.5-33.3v-176C448,173.2,435.1,160,417.5,160z M256,360.5 - c-47.1,0-85.5-38.4-85.5-85.5s38.4-85.5,85.5-85.5s85.5,38.4,85.5,85.5S303.1,360.5,256,360.5z M369,209h-17v-17h17V209z"/> - <path d="M256,205.5c-38.4,0-69.5,31.1-69.5,69.5s31.1,69.5,69.5,69.5s69.5-31.1,69.5-69.5S294.4,205.5,256,205.5z M256,307 - c-17.7,0-32-14.3-32-32s14.3-32,32-32s32,14.3,32,32S273.7,307,256,307z"/> -</g> -</svg> diff --git a/admin/bower_components/Ionicons/src/ios-cart-outline.svg b/admin/bower_components/Ionicons/src/ios-cart-outline.svg deleted file mode 100644 index 5e1c0fe..0000000 --- a/admin/bower_components/Ionicons/src/ios-cart-outline.svg +++ /dev/null @@ -1,16 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" enable-background="new 0 0 512 512" xml:space="preserve"> -<g> - <path d="M160,400c-13.248,0-24,10.752-24,24s10.752,24,24,24s24-10.752,24-24S173.248,400,160,400z M160,432c-4.411,0-8-3.589-8-8 - s3.589-8,8-8s8,3.589,8,8S164.411,432,160,432z"/> - <path d="M384.5,400c-13.248,0-24,10.752-24,24s10.752,24,24,24s24-10.752,24-24S397.748,400,384.5,400z M384.5,432 - c-4.411,0-8-3.589-8-8s3.589-8,8-8s8,3.589,8,8S388.911,432,384.5,432z"/> - <path d="M448,128L123.177,95.646c-1.628-6.972-4.369-14.66-11.838-20.667C102.025,67.489,86.982,64,64,64v16.001 - c18.614,0,31.167,2.506,37.312,7.447c4.458,3.585,5.644,8.423,7.165,15.989l-0.024,0.004l42.052,233.638 - c2.413,14.422,7.194,25.209,13.291,32.986C171.043,379.312,180.533,384,192,384h240v-16H192c-4.727,0-19.136,0.123-25.749-33.755 - l-5.429-30.16L432,256L448,128z M418.59,242.348l-260.601,45.99l-31.732-176.3l303.869,30.608L418.59,242.348z"/> -</g> -</svg> diff --git a/admin/bower_components/Ionicons/src/ios-cart.svg b/admin/bower_components/Ionicons/src/ios-cart.svg deleted file mode 100644 index 89363ca..0000000 --- a/admin/bower_components/Ionicons/src/ios-cart.svg +++ /dev/null @@ -1,14 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" enable-background="new 0 0 512 512" xml:space="preserve"> -<g> - <path d="M160,400c-13.248,0-24,10.752-24,24s10.752,24,24,24s24-10.752,24-24S173.248,400,160,400z"/> - <path d="M384.5,400c-13.248,0-24,10.752-24,24s10.752,24,24,24s24-10.752,24-24S397.748,400,384.5,400z"/> - <path d="M448,128L123.177,95.646c-1.628-6.972-4.369-14.66-11.838-20.667C102.025,67.489,86.982,64,64,64v16.001 - c18.614,0,31.167,2.506,37.312,7.447c4.458,3.585,5.644,8.423,7.165,15.989l-0.024,0.004l42.052,233.638 - c2.413,14.422,7.194,25.209,13.291,32.986C171.043,379.312,180.533,384,192,384h240v-16H192c-4.727,0-19.136,0.123-25.749-33.755 - l-5.429-30.16L432,256L448,128z"/> -</g> -</svg> diff --git a/admin/bower_components/Ionicons/src/ios-chatboxes-outline.svg b/admin/bower_components/Ionicons/src/ios-chatboxes-outline.svg deleted file mode 100644 index d87a886..0000000 --- a/admin/bower_components/Ionicons/src/ios-chatboxes-outline.svg +++ /dev/null @@ -1,10 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" style="enable-background:new 0 0 512 512;" xml:space="preserve"> -<g> - <polygon points="64,64 320,64 320,160 336,160 336,48 48,48 48,272 160,272 160,256 64,256 "/> - <path d="M176,176v224h162.6l64,64H416v-64h48V176H176z M448,384h-48v54.6L345,384H192V192h256V384z"/> -</g> -</svg> diff --git a/admin/bower_components/Ionicons/src/ios-chatboxes.svg b/admin/bower_components/Ionicons/src/ios-chatboxes.svg deleted file mode 100644 index 1e975b1..0000000 --- a/admin/bower_components/Ionicons/src/ios-chatboxes.svg +++ /dev/null @@ -1,10 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" style="enable-background:new 0 0 512 512;" xml:space="preserve"> -<g> - <polygon points="336,48 48,48 48,272 160,272 160,160 336,160 "/> - <path d="M176,176v224h162.6l64,64H416v-64h48V176H176z"/> -</g> -</svg> diff --git a/admin/bower_components/Ionicons/src/ios-chatbubble-outline.svg b/admin/bower_components/Ionicons/src/ios-chatbubble-outline.svg deleted file mode 100644 index 251db96..0000000 --- a/admin/bower_components/Ionicons/src/ios-chatbubble-outline.svg +++ /dev/null @@ -1,14 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" style="enable-background:new 0 0 512 512;" xml:space="preserve"> -<path d="M256,112c97,0,176,62,176,138.3c0,35.9-17.6,69.2-49.5,93.9c-32.8,25.4-77.4,39.3-125.5,39.3c-28.9,0-51-3-69.7-9.3 - c-0.6-0.2-1.3-0.5-2-0.7c-0.3-0.1-0.6-0.2-0.8-0.2c-4.7-1.4-9.7-2.1-14.7-2.1c-5.6,0-11.1,0.9-16.3,2.6l0,0l-0.3,0.1 - c-0.6,0.2-8.9,3.3-11,4.3l0,0l-39.6,17.2c13.8-43.9,13.8-44.8,13.8-47.6c0-7.1-2.2-14.1-6.3-20.2c-0.5-0.7-1-1.4-1.6-2.1 - c-0.7-0.9-1.3-1.7-1.8-2.3c-17.4-21.9-26.6-47.1-26.6-73C80,174,159,112,256,112 M256,96C149.9,96,64,165.1,64,250.3 - c0,30.7,11.2,59.3,30.4,83.3c0.9,0.9,2.9,3.8,3.6,4.9c0,0-1-1.6-1.1-1.9c0,0,0,0,0,0l0,0c0,0,0,0,0,0c2.3,3.3,3.6,7.1,3.6,11.2 - c0,1.4-17.9,58-17.9,58l0,0c-1.3,4.4,2.1,8.9,7.6,10c0.8,0.2,1.6,0.2,2.4,0.2c1.3,0,2.5-0.2,3.7-0.5l1.6-0.6l50.6-22 - c0.9-0.4,9-3.5,10-3.9c0,0,0.6-0.2,0.6-0.2c0,0-0.1,0-0.6,0.2c3.4-1.2,7.2-1.8,11.2-1.8c3.6,0,7.1,0.5,10.3,1.5c0.1,0,0.2,0,0.2,0.1 - c0.5,0.2,1,0.3,1.5,0.5c23.1,7.9,48.4,10.3,75.1,10.3c106,0,191-64.1,191-149.3C448,165.1,362,96,256,96L256,96z"/> -</svg> diff --git a/admin/bower_components/Ionicons/src/ios-chatbubble.svg b/admin/bower_components/Ionicons/src/ios-chatbubble.svg deleted file mode 100644 index c2efd7f..0000000 --- a/admin/bower_components/Ionicons/src/ios-chatbubble.svg +++ /dev/null @@ -1,11 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" style="enable-background:new 0 0 512 512;" xml:space="preserve"> -<path d="M256,96C149.9,96,64,165.1,64,250.3c0,30.7,11.2,59.3,30.4,83.3c0.9,0.9,2.9,3.8,3.6,4.9c0,0-1-1.6-1.1-1.9c0,0,0,0,0,0l0,0 - c0,0,0,0,0,0c2.3,3.3,3.6,7.1,3.6,11.2c0,1.4-17.9,58-17.9,58l0,0c-1.3,4.4,2.1,8.9,7.6,10c0.8,0.2,1.6,0.2,2.4,0.2 - c1.3,0,2.5-0.2,3.7-0.5l1.6-0.6l50.6-22c0.9-0.4,9-3.5,10-3.9c0,0,0.6-0.2,0.6-0.2c0,0-0.1,0-0.6,0.2c3.4-1.2,7.2-1.8,11.2-1.8 - c3.6,0,7.1,0.5,10.3,1.5c0.1,0,0.2,0,0.2,0.1c0.5,0.2,1,0.3,1.5,0.5c23.1,7.9,48.4,10.3,75.1,10.3c106,0,191-64.1,191-149.3 - C448,165.1,362,96,256,96L256,96z"/> -</svg> diff --git a/admin/bower_components/Ionicons/src/ios-checkmark-empty.svg b/admin/bower_components/Ionicons/src/ios-checkmark-empty.svg deleted file mode 100644 index d88b4bc..0000000 --- a/admin/bower_components/Ionicons/src/ios-checkmark-empty.svg +++ /dev/null @@ -1,10 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" style="enable-background:new 0 0 512 512;" xml:space="preserve"> -<g> - <path d="M223.9,329.7c-2.4,2.4-5.8,4.4-8.8,4.4s-6.4-2.1-8.9-4.5l-56-56l17.8-17.8l47.2,47.2l124.8-125.7l17.5,18.1L223.9,329.7z" - /> -</g> -</svg> diff --git a/admin/bower_components/Ionicons/src/ios-checkmark-outline.svg b/admin/bower_components/Ionicons/src/ios-checkmark-outline.svg deleted file mode 100644 index 57145a6..0000000 --- a/admin/bower_components/Ionicons/src/ios-checkmark-outline.svg +++ /dev/null @@ -1,14 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" style="enable-background:new 0 0 512 512;" xml:space="preserve"> -<g> - <path d="M340.1,177.3L215.3,303l-47.2-47.2l-17.8,17.8l56,56c2.5,2.5,5.9,4.5,8.9,4.5s6.3-2,8.8-4.4l133.7-134.4L340.1,177.3z"/> - <g> - <path d="M256,48C141.1,48,48,141.1,48,256s93.1,208,208,208c114.9,0,208-93.1,208-208S370.9,48,256,48z M256,446.7 - c-105.1,0-190.7-85.5-190.7-190.7c0-105.1,85.5-190.7,190.7-190.7c105.1,0,190.7,85.5,190.7,190.7 - C446.7,361.1,361.1,446.7,256,446.7z"/> - </g> -</g> -</svg> diff --git a/admin/bower_components/Ionicons/src/ios-checkmark.svg b/admin/bower_components/Ionicons/src/ios-checkmark.svg deleted file mode 100644 index 42e4624..0000000 --- a/admin/bower_components/Ionicons/src/ios-checkmark.svg +++ /dev/null @@ -1,10 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" style="enable-background:new 0 0 512 512;" xml:space="preserve"> -<g> - <path d="M256,48C141.1,48,48,141.1,48,256s93.1,208,208,208c114.9,0,208-93.1,208-208S370.9,48,256,48z M223.9,329.7 - c-2.4,2.4-5.8,4.4-8.8,4.4s-6.4-2.1-8.9-4.5l-56-56l17.8-17.8l47.2,47.2l124.8-125.7l17.5,18.1L223.9,329.7z"/> -</g> -</svg> diff --git a/admin/bower_components/Ionicons/src/ios-circle-filled.svg b/admin/bower_components/Ionicons/src/ios-circle-filled.svg deleted file mode 100644 index 0d42aa8..0000000 --- a/admin/bower_components/Ionicons/src/ios-circle-filled.svg +++ /dev/null @@ -1,18 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" style="enable-background:new 0 0 512 512;" xml:space="preserve"> -<g> - <g> - <path d="M256,48C141.1,48,48,141.1,48,256s93.1,208,208,208c114.9,0,208-93.1,208-208S370.9,48,256,48z M256,446.7 - c-105.1,0-190.7-85.5-190.7-190.7c0-105.1,85.5-190.7,190.7-190.7c105.1,0,190.7,85.5,190.7,190.7 - C446.7,361.1,361.1,446.7,256,446.7z"/> - </g> -</g> -<g> - <g> - <path d="M256,96c-88.4,0-160,71.6-160,160c0,88.4,71.6,160,160,160c88.4,0,160-71.6,160-160C416,167.6,344.4,96,256,96z"/> - </g> -</g> -</svg> diff --git a/admin/bower_components/Ionicons/src/ios-circle-outline.svg b/admin/bower_components/Ionicons/src/ios-circle-outline.svg deleted file mode 100644 index ce8c36e..0000000 --- a/admin/bower_components/Ionicons/src/ios-circle-outline.svg +++ /dev/null @@ -1,13 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" style="enable-background:new 0 0 512 512;" xml:space="preserve"> -<g> - <g> - <path d="M256,48C141.1,48,48,141.1,48,256s93.1,208,208,208c114.9,0,208-93.1,208-208S370.9,48,256,48z M256,446.7 - c-105.1,0-190.7-85.5-190.7-190.7c0-105.1,85.5-190.7,190.7-190.7c105.1,0,190.7,85.5,190.7,190.7 - C446.7,361.1,361.1,446.7,256,446.7z"/> - </g> -</g> -</svg> diff --git a/admin/bower_components/Ionicons/src/ios-clock-outline.svg b/admin/bower_components/Ionicons/src/ios-clock-outline.svg deleted file mode 100644 index 4db33fc..0000000 --- a/admin/bower_components/Ionicons/src/ios-clock-outline.svg +++ /dev/null @@ -1,12 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" style="enable-background:new 0 0 512 512;" xml:space="preserve"> -<g> - <path d="M256,48C141.1,48,48,141.1,48,256s93.1,208,208,208c114.9,0,208-93.1,208-208S370.9,48,256,48z M256,446.7 - c-105.1,0-190.7-85.5-190.7-190.7c0-105.1,85.5-190.7,190.7-190.7c105.1,0,190.7,85.5,190.7,190.7 - C446.7,361.1,361.1,446.7,256,446.7z"/> - <polygon points="256,256 160,256 160,273.3 273.3,273.3 273.3,128 256,128 "/> -</g> -</svg> diff --git a/admin/bower_components/Ionicons/src/ios-clock.svg b/admin/bower_components/Ionicons/src/ios-clock.svg deleted file mode 100644 index 59ecedc..0000000 --- a/admin/bower_components/Ionicons/src/ios-clock.svg +++ /dev/null @@ -1,10 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" style="enable-background:new 0 0 512 512;" xml:space="preserve"> -<g> - <path d="M256,48C141.1,48,48,141.1,48,256s93.1,208,208,208c114.9,0,208-93.1,208-208S370.9,48,256,48z M273,273H160v-17h96V128h17 - V273z"/> -</g> -</svg> diff --git a/admin/bower_components/Ionicons/src/ios-close-empty.svg b/admin/bower_components/Ionicons/src/ios-close-empty.svg deleted file mode 100644 index 71c7d70..0000000 --- a/admin/bower_components/Ionicons/src/ios-close-empty.svg +++ /dev/null @@ -1,13 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" style="enable-background:new 0 0 512 512;" xml:space="preserve"> -<style type="text/css"> -<![CDATA[ - .st0{fill:#010101;} -]]> -</style> -<polygon class="st0" points="340.2,160 255.8,244.3 171.8,160.4 160,172.2 244,256 160,339.9 171.8,351.6 255.8,267.8 340.2,352 - 352,340.3 267.6,256 352,171.8 "/> -</svg> diff --git a/admin/bower_components/Ionicons/src/ios-close-outline.svg b/admin/bower_components/Ionicons/src/ios-close-outline.svg deleted file mode 100644 index d67ac63..0000000 --- a/admin/bower_components/Ionicons/src/ios-close-outline.svg +++ /dev/null @@ -1,20 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" style="enable-background:new 0 0 512 512;" xml:space="preserve"> -<style type="text/css"> -<![CDATA[ - .st0{fill:#010101;} -]]> -</style> -<g> - <g> - <path class="st0" d="M403.1,108.9c-81.2-81.2-212.9-81.2-294.2,0s-81.2,212.9,0,294.2c81.2,81.2,212.9,81.2,294.2,0 - S484.3,190.1,403.1,108.9z M390.8,390.8c-74.3,74.3-195.3,74.3-269.6,0c-74.3-74.3-74.3-195.3,0-269.6s195.3-74.3,269.6,0 - C465.2,195.5,465.2,316.5,390.8,390.8z"/> - </g> - <polygon class="st0" points="340.2,160 255.8,244.2 171.8,160.4 160,172.2 244,256 160,339.8 171.8,351.6 255.8,267.8 340.2,352 - 352,340.2 267.6,256 352,171.8 "/> -</g> -</svg> diff --git a/admin/bower_components/Ionicons/src/ios-close.svg b/admin/bower_components/Ionicons/src/ios-close.svg deleted file mode 100644 index eb4d0e6..0000000 --- a/admin/bower_components/Ionicons/src/ios-close.svg +++ /dev/null @@ -1,16 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" style="enable-background:new 0 0 512 512;" xml:space="preserve"> -<style type="text/css"> -<![CDATA[ - .st0{fill:#010101;} -]]> -</style> -<g> - <path class="st0" d="M403.1,108.9c-81.2-81.2-212.9-81.2-294.2,0s-81.2,212.9,0,294.2c81.2,81.2,212.9,81.2,294.2,0 - S484.3,190.1,403.1,108.9z M352,340.2L340.2,352l-84.4-84.2l-84,83.8L160,339.8l84-83.8l-84-83.8l11.8-11.8l84,83.8l84.4-84.2 - l11.8,11.8L267.6,256L352,340.2z"/> -</g> -</svg> diff --git a/admin/bower_components/Ionicons/src/ios-cloud-download-outline.svg b/admin/bower_components/Ionicons/src/ios-cloud-download-outline.svg deleted file mode 100644 index c162954..0000000 --- a/admin/bower_components/Ionicons/src/ios-cloud-download-outline.svg +++ /dev/null @@ -1,19 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" style="enable-background:new 0 0 512 512;" xml:space="preserve"> -<g> - <g> - <polygon points="193.2,381.2 181.6,392.6 256.1,466 330.6,392.6 319,381.2 264.3,435 264.3,192.9 247.9,192.9 247.9,435 "/> - </g> - <g> - <path d="M399.2,164.4c0-1.2,0.2-2.3,0.2-3.5C399.4,97.4,346.5,46,282.6,46c-46.1,0-85.8,26.8-104.4,65.4c-8.1-4-17.1-6.3-26.8-6.3 - c-29.6,0-54.1,23.3-58.9,51.3c-35.2,12-60.6,43.4-60.6,82.4c0,49.1,40.1,89.2,89.6,89.2H213v-16h-90.7 - c-40.9,0-74.2-33.2-74.2-73.7c0-31.4,20.2-57.5,50.2-67.7l8.4-2.8l1.5-8.7c3.6-21.3,22.1-38.8,43.9-38.8c6.9,0,13.7,1.6,19.9,4.7 - l13.5,6.7l6.5-13.6c16.6-34.4,52.1-56.6,90.4-56.6c55.3,0,100.9,42.8,100.9,97.6c0,13.1-0.2,20.1-0.2,20.1l15.2,0.1 - c36.7,0.5,65.6,30,65.6,66.4c0,36.3-29.8,66.1-66.5,66.3l-3.2,0.1H297v16h101h0c45,0,81.9-37.2,81.9-82.1 - C479.9,201,444.5,164.5,399.2,164.4z"/> - </g> -</g> -</svg> diff --git a/admin/bower_components/Ionicons/src/ios-cloud-download.svg b/admin/bower_components/Ionicons/src/ios-cloud-download.svg deleted file mode 100644 index 526465a..0000000 --- a/admin/bower_components/Ionicons/src/ios-cloud-download.svg +++ /dev/null @@ -1,12 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" style="enable-background:new 0 0 512 512;" xml:space="preserve"> -<g> - <polygon points="248,435 193.3,381.2 181.6,392.6 256.1,466 330.6,392.6 318.8,381.2 264,435 264,328 248,328 "/> - <path d="M399.2,164.4c0-1.2,0.2-2.3,0.2-3.5C399.4,97.4,346.5,46,282.6,46c-46.1,0-85.8,26.8-104.4,65.4c-8.1-4-17.1-6.3-26.8-6.3 - c-29.6,0-54.1,23.3-58.9,51.3c-35.2,12-60.6,43.4-60.6,82.4c0,49.1,40.1,89.2,89.6,89.2H192h21h35V193h16v135h134 - c45,0,81.9-37.2,81.9-82.1C479.9,201,444.5,164.5,399.2,164.4z"/> -</g> -</svg> diff --git a/admin/bower_components/Ionicons/src/ios-cloud-outline.svg b/admin/bower_components/Ionicons/src/ios-cloud-outline.svg deleted file mode 100644 index 1665c91..0000000 --- a/admin/bower_components/Ionicons/src/ios-cloud-outline.svg +++ /dev/null @@ -1,12 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" style="enable-background:new 0 0 512 512;" xml:space="preserve"> -<path d="M399.3,232.8c0-1.2,0.2-2.4,0.2-3.6c0-64.3-52.8-117.2-116.8-117.2c-46.1,0-85.8,27.9-104.4,67c-8.1-4.1-17.1-6.4-26.8-6.4 - c-29.6,0-54.1,23.7-58.9,52C57.4,236.8,32,268.8,32,308.4c0,49.8,40.1,91.6,89.6,91.6H398c45,0,82-38.9,82-84.3 - C480,270.1,444.6,232.9,399.3,232.8z M397.5,383.6l-3.2,0.4H122.4c-40.9,0-74.2-34.9-74.2-76.1c0-31.9,20.2-58.4,50.2-68.8l8.4-3 - l1.5-8.8c3.6-21.6,22.1-39.3,43.9-39.3c6.9,0,13.7,1.6,19.9,4.8l13.5,6.8l6.5-13.7c16.6-34.9,52.1-58.2,90.4-58.2 - c55.3,0,100.9,44.1,100.9,99.7c0,13.3-0.2,20.3-0.2,20.3l15.2,0.1c36.7,0.5,65.6,30.5,65.6,67.4C464,352.1,434.2,383.4,397.5,383.6z - "/> -</svg> diff --git a/admin/bower_components/Ionicons/src/ios-cloud-upload-outline.svg b/admin/bower_components/Ionicons/src/ios-cloud-upload-outline.svg deleted file mode 100644 index 5cb5431..0000000 --- a/admin/bower_components/Ionicons/src/ios-cloud-upload-outline.svg +++ /dev/null @@ -1,20 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" style="enable-background:new 0 0 512 512;" xml:space="preserve"> -<g> - <g> - <polygon points="193.3,260.4 181.7,248.8 256.2,174.5 330.7,248.8 319,260.4 264.4,205.8 264.4,447.6 247.9,447.6 247.9,205.8 - "/> - </g> - <g> - <path d="M399.3,183.6c0-1.2,0.2-2.4,0.2-3.6c0-64.3-52.8-116.4-116.8-116.4c-46.1,0-85.8,27.1-104.4,66.3 - c-8.1-4.1-17.1-6.4-26.8-6.4c-29.6,0-54.1,23.6-58.9,52C57.4,187.6,32,222.2,32,261.8c0,49.7,40.1,90.2,89.6,90.2H213v-16h-90.6 - c-40.9,0-74.2-33.5-74.2-74.6c0-31.8,20.2-61.2,50.2-71.6l8.4-2.9l1.5-8.8c3.6-21.6,22.1-39.3,43.9-39.3c6.9,0,13.7,1.6,19.9,4.8 - l13.5,6.8l6.5-13.7c16.6-34.9,52.1-57.4,90.4-57.4c55.3,0,100.9,43.3,100.9,98.9c0,13.3-0.2,20.3-0.2,20.3l15.2,0.1 - C435,199.1,464,232,464,268.9c0,36.8-29.8,66.9-66.5,67.1l-3.2,0H297v16h101h0c45,0,82-37.3,82-82.8 - C480,223.7,444.5,183.7,399.3,183.6z"/> - </g> -</g> -</svg> diff --git a/admin/bower_components/Ionicons/src/ios-cloud-upload.svg b/admin/bower_components/Ionicons/src/ios-cloud-upload.svg deleted file mode 100644 index cff5dc7..0000000 --- a/admin/bower_components/Ionicons/src/ios-cloud-upload.svg +++ /dev/null @@ -1,13 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" style="enable-background:new 0 0 512 512;" xml:space="preserve"> -<g> - <rect x="248" y="352" width="16" height="96"/> - <path d="M399.3,183.6c0-1.2,0.2-2.4,0.2-3.6c0-64.3-52.8-116.4-116.8-116.4c-46.1,0-85.8,27.1-104.4,66.3 - c-8.1-4.1-17.1-6.4-26.8-6.4c-29.6,0-54.1,23.6-58.9,52C57.4,187.6,32,222.2,32,261.8c0,49.7,40.1,90.2,89.6,90.2H182h31h35V205.8 - l-54.7,54.5l-11.6-11.6l74.5-74.3l74.5,74.3l-11.8,11.6L264,205.8V352h134c45,0,82-37.3,82-82.8C480,223.7,444.5,183.7,399.3,183.6 - z"/> -</g> -</svg> diff --git a/admin/bower_components/Ionicons/src/ios-cloud.svg b/admin/bower_components/Ionicons/src/ios-cloud.svg deleted file mode 100644 index 29b64a6..0000000 --- a/admin/bower_components/Ionicons/src/ios-cloud.svg +++ /dev/null @@ -1,9 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" style="enable-background:new 0 0 512 512;" xml:space="preserve"> -<path d="M399.3,232.8c0-1.2,0.2-2.4,0.2-3.6c0-64.3-52.8-117.2-116.8-117.2c-46.1,0-85.8,27.9-104.4,67c-8.1-4.1-17.1-6.4-26.8-6.4 - c-29.6,0-54.1,23.7-58.9,52C57.4,236.8,32,268.8,32,308.4c0,49.8,40.1,91.6,89.6,91.6H398c45,0,82-38.9,82-84.3 - C480,270.1,444.6,232.9,399.3,232.8z"/> -</svg> diff --git a/admin/bower_components/Ionicons/src/ios-cloudy-night-outline.svg b/admin/bower_components/Ionicons/src/ios-cloudy-night-outline.svg deleted file mode 100644 index c45c348..0000000 --- a/admin/bower_components/Ionicons/src/ios-cloudy-night-outline.svg +++ /dev/null @@ -1,24 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" style="enable-background:new 0 0 512 512;" xml:space="preserve"> -<style type="text/css"> -<![CDATA[ - .st0{fill:#010101;} -]]> -</style> -<g> - <path class="st0" d="M189,223.8c14.5,0,28.1,4.8,39.3,13.9c10.9,8.9,18.6,21.3,21.7,34.9l3.1,14l14.2-1.8c2.1-0.3,4.1-0.4,6.1-0.4 - c26.9,0,48.8,22.1,48.8,49.2c0,27.1-21.9,49.2-48.8,49.2H115.7c-9.5,0-18.5-3.9-25.4-10.8c-6.8-7-10.6-16.2-10.6-25.9 - c0-18.6,14.5-33.8,33.2-36.9c1.6-0.3,8.8-1.2,14.2-1.7c0,0-0.5-5.3-0.6-9.6c-0.1-4.3-0.1-9.4-0.1-11.5 - C126.5,252,154.5,223.8,189,223.8 M189,208c-43.3,0-78.3,35.2-78.3,78.5c0,2.6,0.1,5.2,0.4,7.8C84.7,296.7,64,319.8,64,346.9 - c0,28.6,23.2,53.1,51.7,53.1h157.7c35.7,0,64.6-29.9,64.6-65.7c0-35.8-28.9-65.3-64.6-65.3c-2.7,0-5.4,0-8,0.3 - C257.5,234.3,226.3,208,189,208L189,208z"/> - <path class="st0" d="M424.6,305.6c-2,0.1-3.9,0.1-5.9,0.1c-32.3,0-62.7-12.6-85.5-35.5c-22.8-22.9-35.4-53.3-35.4-85.7 - c0-18.4,4.1-36.2,11.8-52.4c3.4-7.1,7.5-13.9,12.3-20.2c-8.4,0.9-16.6,2.7-24.4,5.1c-37.2,11.8-67.1,40.2-81,76.5 - c5.9,1.2,11.6,3,17,5.4c10.1-25.5,29.4-46.4,53.8-58.6c-4.6,13.9-7.1,28.7-7.1,44.1c0,27.3,7.9,52.8,21.4,74.2 - c13.8,21.8,33.5,39.5,56.8,50.9c15.3,7.4,32.2,12.1,50,13.5c-14,12.2-31.2,20.9-50,24.8c-1.9,6.9-4.9,13.4-8.6,19.3 - c33.6-3.6,63.3-20.1,84-44.6c5.4-6.3,10.2-13.2,14.2-20.5C440.4,304.1,432.6,305.2,424.6,305.6z"/> -</g> -</svg> diff --git a/admin/bower_components/Ionicons/src/ios-cloudy-night.svg b/admin/bower_components/Ionicons/src/ios-cloudy-night.svg deleted file mode 100644 index 51a1622..0000000 --- a/admin/bower_components/Ionicons/src/ios-cloudy-night.svg +++ /dev/null @@ -1,21 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" style="enable-background:new 0 0 512 512;" xml:space="preserve"> -<style type="text/css"> -<![CDATA[ - .st0{fill:#010101;} -]]> -</style> -<g> - <path class="st0" d="M424.6,305.6c-2,0.1-3.9,0.1-5.9,0.1c-32.3,0-62.7-12.6-85.5-35.5c-22.8-22.9-35.4-53.3-35.4-85.7 - c0-18.4,4.1-36.2,11.8-52.4c3.4-7.1,7.5-13.9,12.3-20.2c-8.4,0.9-16.6,2.7-24.4,5.1c-37.2,11.8-67.1,40.2-81,76.5 - c-0.3,0.8-0.6,1.5-0.9,2.3c11.9,3.5,23.1,9.4,32.8,17.3c13,10.6,22.9,24.5,28.8,40.1c20.1,0.9,38.9,9.4,53.3,24 - c15.2,15.4,23.5,35.9,23.5,57.4c0,11.4-2.4,22.5-6.8,32.8c0.8-0.1,1.6-0.1,2.5-0.2c33.6-3.6,63.3-20.1,84-44.6 - c5.4-6.3,10.2-13.2,14.2-20.5C440.4,304.1,432.6,305.2,424.6,305.6z"/> -</g> -<path class="st0" d="M189,209c-43.3,0-78.3,35.2-78.3,78.5c0,2.6,0.1,5.2,0.4,7.8C84.7,297.7,64,320.8,64,347.9 - c0,28.6,23.2,53.1,51.7,53.1h157.7c35.7,0,64.6-29.9,64.6-65.7c0-35.8-28.9-65.3-64.6-65.3c-2.7,0-5.4,0-8,0.3 - C257.5,235.3,226.3,209,189,209L189,209z"/> -</svg> diff --git a/admin/bower_components/Ionicons/src/ios-cloudy-outline.svg b/admin/bower_components/Ionicons/src/ios-cloudy-outline.svg deleted file mode 100644 index 2bfbadd..0000000 --- a/admin/bower_components/Ionicons/src/ios-cloudy-outline.svg +++ /dev/null @@ -1,17 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" style="enable-background:new 0 0 512 512;" xml:space="preserve"> -<style type="text/css"> -<![CDATA[ - .st0{fill:#010101;} -]]> -</style> -<path class="st0" d="M244,175.8c14.5,0,28.1,4.8,39.3,13.9c10.9,8.9,18.6,21.3,21.7,34.9l3.1,14l14.2-1.8c2.1-0.3,4.1-0.4,6.1-0.4 - c26.9,0,48.8,22.1,48.8,49.2c0,27.1-21.9,49.2-48.8,49.2H170.7c-9.5,0-18.5-3.9-25.4-10.8c-6.8-7-10.6-16.2-10.6-25.9 - c0-18.6,14.5-33.8,33.2-36.9c1.6-0.3,8.7-1.2,14.2-1.7c0,0-0.5-5.3-0.6-9.6c-0.1-4.3-0.1-9.4-0.1-11.5 - C181.5,204,209.5,175.8,244,175.8 M244,160c-43,0-78.3,35.2-78.3,78.5c0,2.6,0.1,5.2,0.4,7.8c-26.4,2.3-47.1,25.5-47.1,52.6 - c0,28.6,23.2,53.1,51.7,53.1h157.7c35.7,0,64.6-29.9,64.6-65.7S364.1,221,328.4,221c-2.7,0-5.4,0-8,0.3C312.5,186.3,281,160,244,160 - L244,160z"/> -</svg> diff --git a/admin/bower_components/Ionicons/src/ios-cloudy.svg b/admin/bower_components/Ionicons/src/ios-cloudy.svg deleted file mode 100644 index 634632e..0000000 --- a/admin/bower_components/Ionicons/src/ios-cloudy.svg +++ /dev/null @@ -1,14 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" style="enable-background:new 0 0 512 512;" xml:space="preserve"> -<style type="text/css"> -<![CDATA[ - .st0{fill:#010101;} -]]> -</style> -<path class="st0" d="M244,160c-43,0-78.3,35.2-78.3,78.5c0,2.6,0.1,5.2,0.4,7.8c-26.4,2.3-47.1,25.5-47.1,52.6 - c0,28.6,23.2,53.1,51.7,53.1h157.7c35.7,0,64.6-29.9,64.6-65.7S364.1,221,328.4,221c-2.7,0-5.4,0-8,0.3C312.5,186.3,281,160,244,160 - L244,160z"/> -</svg> diff --git a/admin/bower_components/Ionicons/src/ios-cog-outline.svg b/admin/bower_components/Ionicons/src/ios-cog-outline.svg deleted file mode 100644 index cca3e71..0000000 --- a/admin/bower_components/Ionicons/src/ios-cog-outline.svg +++ /dev/null @@ -1,29 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" enable-background="new 0 0 512 512" xml:space="preserve"> -<g> - <path d="M448,272.754v-32.008l-33.291-8.703l-2.601-13.204l27.594-20.905l-12.197-29.608l-34.392,4.802l-7.498-10.603 - l17.696-29.708l-22.594-22.605l-30.192,17.404l-10.697-7.302l5.298-35.009l-29.492-12.303L294.04,101.31l-12.297-2.601L273.045,64 - h-31.991l-9.197,34.909l-12.098,2.4l-21.494-29.008l-29.592,12.304l4.799,35.709l-11.697,7.202l-31.292-18.705l-22.594,22.606 - l18.795,31.508l-6.698,10.502l-35.49-5.001l-12.197,29.608l28.893,21.706l-2.399,12.203L64,240.846v32.008l34.69,8.903l2.4,12.503 - l-28.394,21.306l12.297,29.508l34.991-5.002l7.099,11.303l-17.896,30.608l22.595,22.605l30.192-18.204l11.196,7.302l-4.498,34.31 - l29.592,12.202l20.595-27.807l13.396,2.5L241.054,448h31.991l8.298-33.109l13.597-2.601l20.694,27.107l29.593-12.204l-4.998-33.708 - l10.196-7.401l28.992,16.904l22.595-22.606l-16.795-28.907l7.896-11.403l33.791,4.802l12.298-29.508l-27.193-20.506l2.7-13.503 - L448,272.754z M419.707,320.767l-2.8,6.702l-31.891-4.501l-18.896,27.807l15.695,27.106l-5.198,5.202l-27.293-15.904 - l-26.593,18.204l4.799,31.809l-6.698,2.802l-19.595-25.607l-32.892,6.501l-7.798,31.209h-7.198l-8.397-31.309l-32.592-6.501 - l-19.495,26.406l-6.698-2.801l4.399-32.509l-27.493-18.304l-28.793,17.504l-5.099-5.101l16.996-29.108l-18.096-27.606 - l-33.191,4.701l-2.699-6.603l26.894-20.205l-6.199-31.809l-32.991-8.502v-7.202l32.991-8.402l6.299-31.608l-27.293-20.505 - l2.699-6.602l33.691,4.801l17.796-26.807l-17.996-30.008l4.999-5.001l20.595,12.303l9.197,5.501l27.893-18.205l-4.499-33.809 - l6.699-2.8l20.294,27.407l31.492-6.102l8.798-33.208h7.198l8.298,33.008l31.691,6.301l20.095-26.807l6.598,2.801l-4.999,33.108 - l27.193,18.105l28.292-16.205l5.1,5.102l-16.695,28.007l18.396,27.007l32.491-4.601l2.799,6.702l-26.193,19.705l6.498,32.508 - l31.292,8.102v7.202l-31.391,8.103l-6.499,32.709L419.707,320.767z"/> - <path d="M256,128c-70.692,0-128,57.308-128,128c0,70.693,57.308,128,128,128s128-57.307,128-128C384,185.308,326.692,128,256,128z - M144,256c0-29.916,11.65-58.042,32.804-79.195C197.958,155.65,226.084,144,256,144c7.496,0,14.88,0.732,22.069,2.161L250.3,250.1 - l-104.155,27.888C144.727,270.824,144,263.468,144,256z M256,368c-29.917,0-58.042-11.65-79.196-32.804 - c-11.927-11.926-20.831-26.069-26.331-41.499L253.9,266.2l74.935,74.889C308.558,358.501,283.009,368,256,368z M340.154,329.901 - L265.2,254.9l28.05-104.58c15.604,5.487,29.904,14.443,41.945,26.484C356.35,197.958,368,226.084,368,256 - C368,283.486,358.159,309.457,340.154,329.901z"/> -</g> -</svg> diff --git a/admin/bower_components/Ionicons/src/ios-cog.svg b/admin/bower_components/Ionicons/src/ios-cog.svg deleted file mode 100644 index e0d22af..0000000 --- a/admin/bower_components/Ionicons/src/ios-cog.svg +++ /dev/null @@ -1,23 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" enable-background="new 0 0 512 512" xml:space="preserve"> -<g> - <path d="M293.25,150.32L265.2,254.9l74.954,75C358.159,309.457,368,283.486,368,256c0-29.916-11.65-58.042-32.805-79.196 - C323.154,164.763,308.854,155.807,293.25,150.32z"/> - <path d="M278.068,146.161C270.88,144.732,263.496,144,256,144c-29.916,0-58.042,11.65-79.196,32.805 - C155.65,197.958,144,226.084,144,256c0,7.468,0.727,14.824,2.145,21.988L250.3,250.1L278.068,146.161z"/> - <path d="M150.473,293.697c5.5,15.43,14.404,29.572,26.331,41.498C197.958,356.35,226.083,368,256,368 - c27.009,0,52.558-9.499,72.835-26.911L253.9,266.2L150.473,293.697z"/> - <path d="M448,272.754v-32.008l-33.291-8.703l-2.601-13.204l27.594-20.905l-12.197-29.608l-34.392,4.802l-7.498-10.603 - l17.695-29.708l-22.594-22.605l-30.191,17.404l-10.697-7.302l5.298-35.009l-29.492-12.303L294.04,101.31l-12.297-2.601L273.045,64 - h-31.991l-9.197,34.909l-12.098,2.4l-21.494-29.008l-29.592,12.304l4.799,35.709l-11.697,7.202l-31.292-18.705l-22.594,22.606 - l18.795,31.508l-6.698,10.502l-35.49-5.001l-12.197,29.608l28.893,21.706l-2.399,12.203L64,240.846v32.007l34.69,8.903l2.4,12.503 - l-28.394,21.307l12.297,29.508l34.991-5.002l7.099,11.303l-17.896,30.607l22.595,22.605l30.192-18.204l11.196,7.302l-4.498,34.311 - l29.592,12.202l20.595-27.808l13.396,2.5L241.054,448h31.991l8.298-33.109l13.597-2.601l20.694,27.106l29.593-12.203l-4.998-33.709 - l10.196-7.4l28.992,16.904l22.595-22.606l-16.795-28.907l7.896-11.402l33.791,4.802l12.298-29.508l-27.193-20.507l2.7-13.502 - L448,272.754z M256,384c-70.692,0-128-57.307-128-128c0-70.692,57.308-128,128-128c70.692,0,128,57.308,128,128 - C384,326.693,326.692,384,256,384z"/> -</g> -</svg> diff --git a/admin/bower_components/Ionicons/src/ios-color-filter-outline.svg b/admin/bower_components/Ionicons/src/ios-color-filter-outline.svg deleted file mode 100644 index 2d44608..0000000 --- a/admin/bower_components/Ionicons/src/ios-color-filter-outline.svg +++ /dev/null @@ -1,25 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" enable-background="new 0 0 512 512" xml:space="preserve"> -<path d="M366.195,212.122c1.185-6.528,1.806-13.252,1.806-20.122c0-61.856-50.145-112.001-112.001-112.001 - S143.999,130.144,143.999,192c0,6.87,0.621,13.594,1.806,20.122C98.616,225.302,63.999,268.606,63.999,320 - c0,61.856,50.145,112.001,112.001,112.001c31.342,0,59.671-12.879,80-33.627c20.329,20.748,48.658,33.627,80,33.627 - c61.856,0,112.001-50.145,112.001-112.001C448.001,268.606,413.384,225.303,366.195,212.122z M159.999,192 - c0-52.935,43.065-96.001,96.001-96.001s96.001,43.066,96.001,96.001c0,5.776-0.513,11.435-1.495,16.933 - c-4.749-0.614-9.59-0.934-14.506-0.934c-31.342,0-59.671,12.879-80,33.627c-20.329-20.748-48.658-33.627-80-33.627 - c-4.916,0-9.757,0.319-14.506,0.934C160.512,203.435,159.999,197.776,159.999,192z M272.001,320c0,19.58-5.896,37.806-16.001,53.006 - c-10.104-15.2-16.001-33.426-16.001-53.006c0-5.776,0.513-11.435,1.495-16.933c4.749,0.614,9.59,0.934,14.506,0.934 - s9.757-0.319,14.506-0.934C271.488,308.565,272.001,314.224,272.001,320z M256,288.001c-3.484,0-6.925-0.191-10.314-0.556 - c2.626-7.262,6.105-14.119,10.314-20.451c4.21,6.332,7.688,13.189,10.314,20.451C262.925,287.81,259.484,288.001,256,288.001z - M229.791,284.364c-29.756-8.455-53.666-30.937-64.105-59.81c3.39-0.364,6.83-0.556,10.314-0.556 - c27.353,0,52.069,11.5,69.572,29.917C238.847,263.104,233.484,273.351,229.791,284.364z M266.428,253.917 - c17.503-18.418,42.219-29.918,69.572-29.918c3.484,0,6.925,0.191,10.314,0.556c-10.439,28.873-34.35,51.354-64.105,59.81 - C278.516,273.351,273.153,263.104,266.428,253.917z M176,416.001c-52.936,0-96.001-43.065-96.001-96.001 - c0-43.852,29.555-80.931,69.792-92.364c11.732,34.983,40.265,62.257,76.014,72.243c-1.185,6.527-1.806,13.252-1.806,20.121 - c0,24.717,8.013,47.559,21.573,66.084C228.069,404.501,203.353,416.001,176,416.001z M336,416.001 - c-27.354,0-52.069-11.5-69.572-29.918c13.561-18.524,21.573-41.366,21.573-66.083c0-6.869-0.621-13.594-1.806-20.121 - c35.749-9.986,64.281-37.26,76.014-72.243c40.237,11.434,69.792,48.513,69.792,92.364C432.001,372.936,388.936,416.001,336,416.001z - "/> -</svg> diff --git a/admin/bower_components/Ionicons/src/ios-color-filter.svg b/admin/bower_components/Ionicons/src/ios-color-filter.svg deleted file mode 100644 index eee02aa..0000000 --- a/admin/bower_components/Ionicons/src/ios-color-filter.svg +++ /dev/null @@ -1,29 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" enable-background="new 0 0 512 512" xml:space="preserve"> -<g> - <path d="M366.194,212.122c1.185-6.528,1.807-13.252,1.807-20.122c0-61.856-50.146-112-112.001-112 - c-61.857,0-112.001,50.144-112.001,112c0,6.87,0.622,13.594,1.806,20.122C98.618,225.302,64,268.606,64,320 - c0,61.855,50.144,112,112,112c31.341,0,59.67-12.879,80-33.627C276.328,419.121,304.658,432,335.999,432 - C397.854,432,448,381.855,448,320C448,268.606,413.381,225.303,366.194,212.122z M255.998,395.373 - c-0.484,0.495-0.979,0.982-1.475,1.469c-3.201-3.394-6.189-6.987-8.951-10.759c-13.561-18.525-21.574-41.366-21.574-66.083 - c0-6.869,0.622-13.594,1.807-20.121c-35.749-9.986-64.281-37.26-76.014-72.243c-1.594-4.752-2.872-9.647-3.822-14.659 - c0.942-0.29,1.882-0.589,2.835-0.854c-0.046-0.252-0.085-0.507-0.129-0.759c4.186-1.049,8.463-1.867,12.82-2.43 - C166.243,208.319,171.084,208,176,208c31.341,0,59.67,12.878,80,33.626C276.328,220.878,304.658,208,335.999,208 - c4.916,0,9.757,0.319,14.506,0.934c4.355,0.563,8.633,1.38,12.816,2.429c-0.043,0.253-0.082,0.507-0.129,0.76 - c0.955,0.267,1.895,0.564,2.838,0.855c-0.949,5.012-2.229,9.907-3.822,14.658c-11.732,34.983-40.266,62.257-76.013,72.242 - c1.185,6.528,1.807,13.253,1.807,20.122c0,24.717-8.014,47.558-21.574,66.083c-2.762,3.772-5.752,7.367-8.953,10.76 - C256.979,396.356,256.484,395.869,255.998,395.373z"/> - <path d="M270.506,303.067c-4.749,0.614-9.59,0.934-14.506,0.934s-9.758-0.319-14.506-0.934c-0.982,5.498-1.496,11.156-1.496,16.933 - c0,19.58,5.898,37.806,16.002,53.005c10.104-15.199,16.002-33.425,16.002-53.005C272.002,314.224,271.488,308.565,270.506,303.067z - "/> - <path d="M346.313,224.555c-3.39-0.364-6.83-0.556-10.314-0.556c-27.354,0-52.069,11.5-69.571,29.917 - c6.725,9.188,12.088,19.434,15.781,30.448C311.964,275.909,335.874,253.428,346.313,224.555z"/> - <path d="M266.314,287.445c-2.625-7.262-6.105-14.119-10.314-20.451c-4.209,6.332-7.689,13.189-10.314,20.451 - c3.389,0.364,6.83,0.556,10.314,0.556S262.925,287.81,266.314,287.445z"/> - <path d="M176,223.999c-3.484,0-6.925,0.191-10.314,0.556c10.439,28.873,34.349,51.354,64.106,59.81 - c3.693-11.015,9.055-21.261,15.781-30.448C228.07,235.499,203.353,223.999,176,223.999z"/> -</g> -</svg> diff --git a/admin/bower_components/Ionicons/src/ios-color-wand-outline.svg b/admin/bower_components/Ionicons/src/ios-color-wand-outline.svg deleted file mode 100644 index 6583acb..0000000 --- a/admin/bower_components/Ionicons/src/ios-color-wand-outline.svg +++ /dev/null @@ -1,17 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" enable-background="new 0 0 512 512" xml:space="preserve"> -<g> - <path d="M192.011,149.661l-34.043,34.041l256.097,256.096L448,405.757L192.011,149.661z M212.596,215.702l11.415-11.414 - l201.468,201.469l-11.414,11.414L212.596,215.702z"/> - <rect x="184" y="64" width="16" height="40"/> - <rect x="184" y="268" width="16" height="40"/> - <rect x="280" y="176" width="40" height="16"/> - <rect x="64" y="176" width="40" height="16"/> - <rect x="111.875" y="94.077" transform="matrix(-0.7071 0.7071 -0.7071 -0.7071 285.3039 109.9734)" width="16" height="40"/> - <rect x="111.877" y="238.327" transform="matrix(-0.7071 -0.7071 0.7071 -0.7071 21.9762 525.7571)" width="15.998" height="40"/> - <rect x="256.126" y="94.077" transform="matrix(-0.7071 -0.7071 0.7071 -0.7071 370.226 381.506)" width="16" height="39.999"/> -</g> -</svg> diff --git a/admin/bower_components/Ionicons/src/ios-color-wand.svg b/admin/bower_components/Ionicons/src/ios-color-wand.svg deleted file mode 100644 index 1865c8b..0000000 --- a/admin/bower_components/Ionicons/src/ios-color-wand.svg +++ /dev/null @@ -1,16 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" enable-background="new 0 0 512 512" xml:space="preserve"> -<g> - <polygon points="198.011,159.22 163.968,193.337 420.064,450 454,415.883 "/> - <rect x="182" y="62" width="32" height="64"/> - <rect x="182" y="266" width="32" height="64"/> - <rect x="274" y="178" width="64" height="32"/> - <polygon points="303.941,112.143 281.314,89.465 236.06,134.82 258.687,157.498 "/> - <polygon points="92.06,112.143 137.314,157.498 159.941,134.82 114.687,89.465 "/> - <polygon points="92.06,279.141 114.687,301.816 159.941,256.462 137.314,233.784 "/> - <rect x="58" y="178" width="64" height="32"/> -</g> -</svg> diff --git a/admin/bower_components/Ionicons/src/ios-compose-outline.svg b/admin/bower_components/Ionicons/src/ios-compose-outline.svg deleted file mode 100644 index c11f639..0000000 --- a/admin/bower_components/Ionicons/src/ios-compose-outline.svg +++ /dev/null @@ -1,14 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" enable-background="new 0 0 512 512" xml:space="preserve"> -<g> - <polygon points="368,416 80,416 80,144 304.117,144 320.117,128 64,128 64,432 384,432 384,191.883 368,207.883 "/> - <polygon points="237.623,284.084 227.917,274.377 399.24,103.054 387.927,91.74 208,271.651 208,304 240.216,304 420.261,124.016 - 408.947,112.73 "/> - <path d="M444.213,80.312l-12.465-12.466C429.084,65.467,425.556,64,421.746,64c-3.812,0-7.304,1.468-9.929,3.85L399.666,80 - l0.08,0.08l11.293,11.293l21.02,21.02l12.15-12.15c2.383-2.625,3.791-6.117,3.791-9.929C448,86.504,446.592,82.975,444.213,80.312z - "/> -</g> -</svg> diff --git a/admin/bower_components/Ionicons/src/ios-compose.svg b/admin/bower_components/Ionicons/src/ios-compose.svg deleted file mode 100644 index 08d818f..0000000 --- a/admin/bower_components/Ionicons/src/ios-compose.svg +++ /dev/null @@ -1,13 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" enable-background="new 0 0 512 512" xml:space="preserve"> -<g> - <polygon points="256,320 192,320 192,256 320,128 64,128 64,432 384,432 384,192 "/> - <polygon points="387.927,91.74 208,271.651 208,304 240.216,304 420.261,124.016 "/> - <path d="M444.213,80.312l-12.465-12.466C429.084,65.467,425.556,64,421.746,64c-3.812,0-7.304,1.468-9.929,3.85L399.666,80 - l0.08,0.08l11.293,11.293l21.02,21.02l12.15-12.15c2.383-2.625,3.791-6.117,3.791-9.929C448,86.504,446.592,82.975,444.213,80.312z - "/> -</g> -</svg> diff --git a/admin/bower_components/Ionicons/src/ios-contact-outline.svg b/admin/bower_components/Ionicons/src/ios-contact-outline.svg deleted file mode 100644 index 79ae911..0000000 --- a/admin/bower_components/Ionicons/src/ios-contact-outline.svg +++ /dev/null @@ -1,13 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" style="enable-background:new 0 0 512 512;" xml:space="preserve"> -<path d="M256,48C141.1,48,48,141.1,48,256c0,114.9,93.1,208,208,208c114.9,0,208-93.1,208-208C464,141.1,370.9,48,256,48z M256,65.3 - c105.1,0,190.7,85.5,190.7,190.7c0,46.5-16.7,89.1-44.4,122.2c-20-8.2-65.9-24.1-92.9-32.1c-2.4-0.7-2.7-0.9-2.7-10.7 - c0-8.1,3.3-16.3,6.6-23.3c3.6-7.5,7.7-20.2,9.2-31.6c4.2-4.9,10-14.5,13.6-32.9c3.2-16.2,1.7-22.1-0.4-27.6 - c-0.2-0.6-0.5-1.2-0.6-1.7c-0.8-3.8,0.3-23.5,3.1-38.8c1.9-10.5-0.5-32.8-14.9-51.3c-9.1-11.7-26.6-26-58.5-28l-17.5,0 - c-31.4,2-48.8,16.3-58,28c-14.5,18.5-16.9,40.8-15,51.3c2.8,15.3,3.9,35,3.1,38.8c-0.2,0.7-0.4,1.2-0.6,1.8 - c-2.1,5.5-3.7,11.4-0.4,27.6c3.7,18.4,9.4,28,13.6,32.9c1.5,11.4,5.7,24,9.2,31.6c2.6,5.5,3.8,13,3.8,23.6c0,9.9-0.4,10-2.6,10.7 - c-28.1,8.3-72.6,24.3-90.4,32C82.1,345.3,65.3,302.6,65.3,256C65.3,150.9,150.9,65.3,256,65.3z"/> -</svg> diff --git a/admin/bower_components/Ionicons/src/ios-contact.svg b/admin/bower_components/Ionicons/src/ios-contact.svg deleted file mode 100644 index 61829b0..0000000 --- a/admin/bower_components/Ionicons/src/ios-contact.svg +++ /dev/null @@ -1,13 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" style="enable-background:new 0 0 512 512;" xml:space="preserve"> -<path d="M256,48C141.1,48,48,141.1,48,256c0,114.9,93.1,208,208,208c114.9,0,208-93.1,208-208C464,141.1,370.9,48,256,48z - M256,446.7c-58.6,0-111.1-26.6-146.1-68.3c17.8-7.7,62.2-23.7,90.3-31.9c2.2-0.7,2.6-0.8,2.6-10.7c0-10.6-1.2-18.1-3.8-23.6 - c-3.5-7.5-7.7-20.2-9.2-31.6c-4.2-4.9-9.9-14.5-13.6-32.9c-3.2-16.2-1.7-22.1,0.4-27.6c0.2-0.6,0.5-1.2,0.6-1.8 - c0.8-3.7-0.3-23.5-3.1-38.8c-1.9-10.5,0.5-32.8,15-51.3c9.1-11.7,26.6-26,58-28l17.5,0c31.9,2,49.4,16.3,58.5,28 - c14.5,18.5,16.9,40.8,14.9,51.3c-2.8,15.3-3.9,35-3.1,38.8c0.1,0.6,0.4,1.2,0.6,1.7c2.1,5.5,3.7,11.4,0.4,27.6 - c-3.7,18.4-9.4,28-13.6,32.9c-1.5,11.4-5.7,24-9.2,31.6c-3.3,6.9-6.6,15.1-6.6,23.3c0,9.9,0.4,10,2.7,10.7 - c26.7,7.9,72.7,23.8,93,32.1C367.2,420,314.7,446.7,256,446.7z"/> -</svg> diff --git a/admin/bower_components/Ionicons/src/ios-copy-outline.svg b/admin/bower_components/Ionicons/src/ios-copy-outline.svg deleted file mode 100644 index 75b8c0b..0000000 --- a/admin/bower_components/Ionicons/src/ios-copy-outline.svg +++ /dev/null @@ -1,11 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" style="enable-background:new 0 0 512 512;" xml:space="preserve"> -<g> - <polygon points="304,96 288,96 288,176 368,176 368,160 304,160 "/> - <path d="M325.3,64H160v48h-48v336h240v-48h48V139L325.3,64z M336,432H128V128h32v272h176V432z M384,384H176V80h142.7l65.3,65.6V384 - z"/> -</g> -</svg> diff --git a/admin/bower_components/Ionicons/src/ios-copy.svg b/admin/bower_components/Ionicons/src/ios-copy.svg deleted file mode 100644 index 57132a7..0000000 --- a/admin/bower_components/Ionicons/src/ios-copy.svg +++ /dev/null @@ -1,12 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" style="enable-background:new 0 0 512 512;" xml:space="preserve"> -<g> - <polygon points="144,416 144,400 144,112 112,112 112,448 352,448 352,416 160,416 "/> - <g> - <path d="M325.3,64H160v48v288h192h48V139L325.3,64z M368,176h-80V96h16v64h64V176z"/> - </g> -</g> -</svg> diff --git a/admin/bower_components/Ionicons/src/ios-crop-strong.svg b/admin/bower_components/Ionicons/src/ios-crop-strong.svg deleted file mode 100644 index fcb8b3a..0000000 --- a/admin/bower_components/Ionicons/src/ios-crop-strong.svg +++ /dev/null @@ -1,12 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" enable-background="new 0 0 512 512" xml:space="preserve"> -<g> - <rect x="128" y="64" width="32" height="48"/> - <polygon points="160,352 160,176 128,176 128,384 336,384 336,352 "/> - <rect x="400" y="352" width="48" height="32"/> - <polygon points="64,128 64,160 352,160 352,448 384,448 384,128 "/> -</g> -</svg> diff --git a/admin/bower_components/Ionicons/src/ios-crop.svg b/admin/bower_components/Ionicons/src/ios-crop.svg deleted file mode 100644 index 735b51a..0000000 --- a/admin/bower_components/Ionicons/src/ios-crop.svg +++ /dev/null @@ -1,12 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" enable-background="new 0 0 512 512" xml:space="preserve"> -<g> - <rect x="128" y="64" width="16" height="48"/> - <polygon points="144,368 144,160 128,160 128,384 352,384 352,368 "/> - <rect x="400" y="368" width="48" height="16"/> - <polygon points="64,128 64,144 368,144 368,448 384,448 384,128 "/> -</g> -</svg> diff --git a/admin/bower_components/Ionicons/src/ios-download-outline.svg b/admin/bower_components/Ionicons/src/ios-download-outline.svg deleted file mode 100644 index 74e8aee..0000000 --- a/admin/bower_components/Ionicons/src/ios-download-outline.svg +++ /dev/null @@ -1,14 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" style="enable-background:new 0 0 512 512;" xml:space="preserve"> -<g> - <g> - <polygon points="288,144 288,160 400,160 400,432 112,432 112,160 224,160 224,144 96,144 96,448 416,448 416,144 "/> - </g> - <g> - <polygon points="193.1,252.3 181.5,263.9 256,338.4 330.5,263.9 318.9,252.3 264.2,307 264.2,64 247.8,64 247.8,307 "/> - </g> -</g> -</svg> diff --git a/admin/bower_components/Ionicons/src/ios-download.svg b/admin/bower_components/Ionicons/src/ios-download.svg deleted file mode 100644 index 90441a9..0000000 --- a/admin/bower_components/Ionicons/src/ios-download.svg +++ /dev/null @@ -1,11 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" style="enable-background:new 0 0 512 512;" xml:space="preserve"> -<g> - <polygon points="264,144 264,307 318.8,252.3 330.4,263.9 256,338.4 181.5,263.9 193.2,252.3 248,307 248,144 96,144 96,448 - 416,448 416,144 "/> - <rect x="248" y="64" width="16" height="80"/> -</g> -</svg> diff --git a/admin/bower_components/Ionicons/src/ios-drag.svg b/admin/bower_components/Ionicons/src/ios-drag.svg deleted file mode 100644 index 1cd687a..0000000 --- a/admin/bower_components/Ionicons/src/ios-drag.svg +++ /dev/null @@ -1,11 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" style="enable-background:new 0 0 512 512;" xml:space="preserve"> -<g> - <rect x="80" y="304" width="352" height="16"/> - <rect x="80" y="248" width="352" height="16"/> - <rect x="80" y="192" width="352" height="16"/> -</g> -</svg> diff --git a/admin/bower_components/Ionicons/src/ios-email-outline.svg b/admin/bower_components/Ionicons/src/ios-email-outline.svg deleted file mode 100644 index 1f3dcfd..0000000 --- a/admin/bower_components/Ionicons/src/ios-email-outline.svg +++ /dev/null @@ -1,8 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" style="enable-background:new 0 0 512 512;" xml:space="preserve"> -<path d="M64,128v256h384V128H64z M256,267.9L93.2,144h325.6L256,267.9z M80,368V154.1l115.1,87.6L127,319l2,2l78.9-69.6L256,288 - l48.1-36.6L383,321l2-2l-68.1-77.4L432,154.1V368H80z"/> -</svg> diff --git a/admin/bower_components/Ionicons/src/ios-email.svg b/admin/bower_components/Ionicons/src/ios-email.svg deleted file mode 100644 index 91374a6..0000000 --- a/admin/bower_components/Ionicons/src/ios-email.svg +++ /dev/null @@ -1,11 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" style="enable-background:new 0 0 512 512;" xml:space="preserve"> -<g> - <polygon points="448,384 448,141.8 316.9,241.6 385,319 383,321 304.1,251.4 256,288 207.9,251.4 129,321 127,319 195,241.6 - 64,142 64,384 "/> - <polygon points="439.7,128 72,128 256,267.9 "/> -</g> -</svg> diff --git a/admin/bower_components/Ionicons/src/ios-eye-outline.svg b/admin/bower_components/Ionicons/src/ios-eye-outline.svg deleted file mode 100644 index 1bb77f6..0000000 --- a/admin/bower_components/Ionicons/src/ios-eye-outline.svg +++ /dev/null @@ -1,18 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" style="enable-background:new 0 0 512 512;" xml:space="preserve"> -<g> - <g> - <path d="M447.1,256.2C401.8,204,339.2,144,256,144c-33.6,0-64.4,9.5-96.9,29.8C131.7,191,103.6,215.2,65,255l-1,1l6.7,6.9 - C125.8,319.3,173.4,368,256,368c36.5,0,71.9-11.9,108.2-36.4c30.9-20.9,57.2-47.4,78.3-68.8l5.5-5.5L447.1,256.2z M256,160 - c33.1,0,64.9,9.5,97.2,30.6c23.9,15.6,47.4,36.7,73.7,66.1C388.6,295.4,331.1,352,256,352c-34.2,0-64.2-8.4-94.2-28.2 - c-27.5-18.1-52.3-43.3-76.2-67.8C144.7,196.3,194,160,256,160z"/> - <path d="M256,336c44.1,0,80-35.9,80-80c0-44.1-35.9-80-80-80c-44.1,0-80,35.9-80,80C176,300.1,211.9,336,256,336z M256,192.3 - c35.2,0,64,28.6,64,63.7c0,35.1-28.8,63.7-64,63.7c-35.2,0-63.9-28.6-63.9-63.7C192.1,220.9,220.8,192.3,256,192.3z"/> - </g> - <path d="M288,256L288,256c0,17.5-14.4,32-31.8,32S224,272.8,224,255.3s15.8-31.3,32-31.3l0-16c-26.5,0-47.9,21.6-47.9,48.2 - c0,26.6,21.5,48.1,47.9,48.1s48-21.6,48-48.1V256H288z"/> -</g> -</svg> diff --git a/admin/bower_components/Ionicons/src/ios-eye.svg b/admin/bower_components/Ionicons/src/ios-eye.svg deleted file mode 100644 index e326756..0000000 --- a/admin/bower_components/Ionicons/src/ios-eye.svg +++ /dev/null @@ -1,13 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" style="enable-background:new 0 0 512 512;" xml:space="preserve"> -<g> - <path d="M447.1,256.2C401.8,204,339.2,144,256,144c-33.6,0-64.4,9.5-96.9,29.8C131.7,191,103.6,215.2,65,255l-1,1l6.7,6.9 - C125.8,319.3,173.4,368,256,368c36.5,0,71.9-11.9,108.2-36.4c30.9-20.9,57.2-47.4,78.3-68.8l5.5-5.5L447.1,256.2z M256,336 - c-44.1,0-80-35.9-80-80c0-44.1,35.9-80,80-80c44.1,0,80,35.9,80,80C336,300.1,300.1,336,256,336z"/> - <path d="M250.4,226.8c0-6.9,2-13.4,5.5-18.8c-26.5,0-47.9,21.6-47.9,48.2c0,26.6,21.5,48.1,47.9,48.1s48-21.5,48-48.1v0 - c-5.4,3.5-11.9,5.5-18.8,5.5C266,261.6,250.4,246,250.4,226.8z"/> -</g> -</svg> diff --git a/admin/bower_components/Ionicons/src/ios-fastforward-outline.svg b/admin/bower_components/Ionicons/src/ios-fastforward-outline.svg deleted file mode 100644 index dff7d37..0000000 --- a/admin/bower_components/Ionicons/src/ios-fastforward-outline.svg +++ /dev/null @@ -1,8 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" style="enable-background:new 0 0 512 512;" xml:space="preserve"> -<path d="M48,155l183.5,101L48,356.9V155 M272,155.8L448,256L272,356.4v-95.6v-27.1V156 M256,128v123.2L32,128v256l224-123.2V384 - l224-128L256,128L256,128z"/> -</svg> diff --git a/admin/bower_components/Ionicons/src/ios-fastforward.svg b/admin/bower_components/Ionicons/src/ios-fastforward.svg deleted file mode 100644 index ddbdc86..0000000 --- a/admin/bower_components/Ionicons/src/ios-fastforward.svg +++ /dev/null @@ -1,7 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" style="enable-background:new 0 0 512 512;" xml:space="preserve"> -<path d="M256,128v123.2L32,128v256l224-123.2V384l224-128L256,128L256,128z"/> -</svg> diff --git a/admin/bower_components/Ionicons/src/ios-filing-outline.svg b/admin/bower_components/Ionicons/src/ios-filing-outline.svg deleted file mode 100644 index 31d8329..0000000 --- a/admin/bower_components/Ionicons/src/ios-filing-outline.svg +++ /dev/null @@ -1,9 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" style="enable-background:new 0 0 512 512;" xml:space="preserve"> -<path d="M368.5,128h-225L80,224v160h176h176V224L368.5,128z M413.4,224H368v-68L413.4,224z M160,144h192v80h-48 - c0,26.5-21.5,48-48,48s-48-21.5-48-48h-48V144z M144,156v68H98.6L144,156z M416,368H256H96V240h98c7.1,27.6,32.2,48,62,48 - s54.9-20.4,62-48h98V368z"/> -</svg> diff --git a/admin/bower_components/Ionicons/src/ios-filing.svg b/admin/bower_components/Ionicons/src/ios-filing.svg deleted file mode 100644 index 8857ecb..0000000 --- a/admin/bower_components/Ionicons/src/ios-filing.svg +++ /dev/null @@ -1,11 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" style="enable-background:new 0 0 512 512;" xml:space="preserve"> -<g> - <path d="M256,288c-29.8,0-54.9-20.4-62-48H80v144h176h176V240H318C310.9,267.6,285.8,288,256,288z"/> - <path d="M144,224h16h9h39c0,26.5,21.5,48,48,48s48-21.5,48-48h40h8h16h8h56l-63.5-96H368v80h-16v-80H160v80h-16v-80h-0.5L80,224h57 - H144z"/> -</g> -</svg> diff --git a/admin/bower_components/Ionicons/src/ios-film-outline.svg b/admin/bower_components/Ionicons/src/ios-film-outline.svg deleted file mode 100644 index 2d25737..0000000 --- a/admin/bower_components/Ionicons/src/ios-film-outline.svg +++ /dev/null @@ -1,9 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" enable-background="new 0 0 512 512" xml:space="preserve"> -<path d="M56,88v336h400V88H56z M128,408H72v-48h56V408z M128,344H72v-48h56V344z M128,280H72v-48h56V280z M128,216H72v-48h56V216z - M128,152H72v-48h56V152z M368,408H144V264h224V408z M368,248H144V104h224V248z M440,408h-56v-48h56V408z M440,344h-56v-48h56V344z - M440,280h-56v-48h56V280z M440,216h-56v-48h56V216z M440,152h-56v-48h56V152z"/> -</svg> diff --git a/admin/bower_components/Ionicons/src/ios-film.svg b/admin/bower_components/Ionicons/src/ios-film.svg deleted file mode 100644 index 081f1d2..0000000 --- a/admin/bower_components/Ionicons/src/ios-film.svg +++ /dev/null @@ -1,11 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" enable-background="new 0 0 512 512" xml:space="preserve"> -<g> - <path d="M56,88v336h400V88H56z M128,408H72v-48h56V408z M128,344H72v-48h56V344z M128,280H72v-48h56V280z M128,216H72v-48h56V216z - M128,152H72v-48h56V152z M368,264H144v-16h224V264z M440,408h-56v-48h56V408z M440,344h-56v-48h56V344z M440,280h-56v-48h56V280z - M440,216h-56v-48h56V216z M440,152h-56v-48h56V152z"/> -</g> -</svg> diff --git a/admin/bower_components/Ionicons/src/ios-flag-outline.svg b/admin/bower_components/Ionicons/src/ios-flag-outline.svg deleted file mode 100644 index 2ecb7d2..0000000 --- a/admin/bower_components/Ionicons/src/ios-flag-outline.svg +++ /dev/null @@ -1,13 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" style="enable-background:new 0 0 512 512;" xml:space="preserve"> -<g> - <path d="M368,112c-11,1.4-24.9,3.5-39.7,3.5c-23.1,0-44-5.7-65.2-10.2c-21.5-4.6-43.7-9.3-67.2-9.3c-46.9,0-62.8,10.1-64.4,11.2 - l-3.4,2.4v2.6v161.7V416h16V272.7c6-2.5,21.8-6.9,51.9-6.9c21.8,0,42.2,8.3,63.9,13c22,4.7,44.8,9.6,69.5,9.6 - c14.7,0,27.7-2,38.7-3.3c6-0.7,11.3-1.4,16-2.2V126v-16.5C379.4,110.4,374,111.2,368,112z M368,269c-11,1.4-23.9,3.5-38.7,3.5 - c-23.1,0-45-4.7-66.2-9.2c-21.5-4.6-43.6-13.3-67.1-13.3c-25.7,0-41.9,3-51.9,6V118.7c6-2.5,21.9-6.8,51.9-6.8 - c21.8,0,42.2,4.3,63.9,9c22,4.7,43.8,10.6,68.5,10.6c14.7,0,28.7-2,39.7-3.3L368,269L368,269z"/> -</g> -</svg> diff --git a/admin/bower_components/Ionicons/src/ios-flag.svg b/admin/bower_components/Ionicons/src/ios-flag.svg deleted file mode 100644 index 8ed7781..0000000 --- a/admin/bower_components/Ionicons/src/ios-flag.svg +++ /dev/null @@ -1,11 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" style="enable-background:new 0 0 512 512;" xml:space="preserve"> -<g> - <path d="M368,112c-11,1.4-24.9,3.5-39.7,3.5c-23.1,0-44-5.7-65.2-10.2c-21.5-4.6-43.7-9.3-67.2-9.3c-46.9,0-62.8,10.1-64.4,11.2 - l-3.4,2.4v2.6v161.7V416h16V272.7c6-2.5,21.8-6.9,51.9-6.9c21.8,0,42.2,8.3,63.9,13c22,4.7,44.8,9.6,69.5,9.6 - c14.7,0,27.7-2,38.7-3.3c6-0.7,11.3-1.4,16-2.2V126v-16.5C379.4,110.4,374,111.2,368,112z"/> -</g> -</svg> diff --git a/admin/bower_components/Ionicons/src/ios-flame-outline.svg b/admin/bower_components/Ionicons/src/ios-flame-outline.svg deleted file mode 100644 index f774dbc..0000000 --- a/admin/bower_components/Ionicons/src/ios-flame-outline.svg +++ /dev/null @@ -1,14 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" enable-background="new 0 0 512 512" xml:space="preserve"> -<path d="M223.899,32c25.691,145-96.732,142-95.895,288c0.686,119.51,104.975,160,128.143,160c23.166,0,113.88-26,126.931-160 - C393.711,210.816,310.572,96,223.899,32z M256.147,472c0,0-40.701-35.816-40.701-80c0-44.183,40.555-80,40.555-80 - s40.332,35.817,40.332,80C296.332,436.184,256.147,472,256.147,472z M367.153,318.449c-2.823,28.988-9.704,54.523-20.45,75.894 - c-8.749,17.397-20.084,32.114-33.692,43.743c-6.522,5.575-13.255,10.115-19.771,13.749c10.039-15.938,19.093-36.72,19.093-59.835 - c0-50.788-43.842-90.307-45.708-91.963l-10.594-9.41l-10.621,9.381c-1.877,1.657-45.963,41.178-45.963,91.992 - c0,21.842,8.168,41.594,17.636,57.152c-7.381-4.326-15.215-9.748-22.986-16.451c-14.688-12.67-26.365-27.608-34.708-44.402 - c-10.063-20.255-15.239-43.265-15.383-68.391c-0.367-63.986,24.09-95.746,49.983-129.369c24.568-31.903,49.829-64.7,49.458-122.113 - c32.513,28.827,61.257,63.03,82.822,98.877C357.576,219.35,371.715,271.615,367.153,318.449z"/> -</svg> diff --git a/admin/bower_components/Ionicons/src/ios-flame.svg b/admin/bower_components/Ionicons/src/ios-flame.svg deleted file mode 100644 index 4004d5b..0000000 --- a/admin/bower_components/Ionicons/src/ios-flame.svg +++ /dev/null @@ -1,11 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" enable-background="new 0 0 512 512" xml:space="preserve"> -<g> - <path d="M223.899,32c25.691,145-96.732,142-95.895,288c0.686,119.51,104.975,160,128.143,160c23.166,0,113.88-26,126.931-160 - C393.711,210.816,310.572,96,223.899,32z M256.147,472c0,0-40.701-35.816-40.701-80c0-44.183,40.555-80,40.555-80 - s40.332,35.817,40.332,80C296.332,436.184,256.147,472,256.147,472z"/> -</g> -</svg> diff --git a/admin/bower_components/Ionicons/src/ios-flask-outline.svg b/admin/bower_components/Ionicons/src/ios-flask-outline.svg deleted file mode 100644 index 1b3faa0..0000000 --- a/admin/bower_components/Ionicons/src/ios-flask-outline.svg +++ /dev/null @@ -1,19 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" enable-background="new 0 0 512 512" xml:space="preserve"> -<g> - <path d="M436.912,370.441L320,175V48h16V32h-16.009H304v16v131.418l2.514,3.791l116.575,194.834 - c6.75,12.818,9.314,25.95,9.001,37.957c-0.243,9.339-1.958,17.938-6.545,25.569C417.076,455.666,402.33,464,384.981,464H129.093 - c-17.504,0-32.461-8.435-41.035-22.705c-11.897-19.801-10.889-38.145,2.275-63.139L181.821,224H240v-16h-48.683l14.687-24.756 - L208,179.4V176h48v-16h-48v-32h32v-16h-32V80h48V64h-48V48V32h-15.989H176v16h16v127L76.126,370.441 - C67.714,386.268,63.615,401.814,64.027,416c1.061,36.511,28.702,64,65.065,64h255.889c36.291,0,62.131-27.598,62.992-64 - C448.311,401.756,445.367,386.349,436.912,370.441z"/> - <path d="M108.292,374.616c-6.907,10.542-10.936,24.095-10.936,33.55c0,27.584,15.82,39.834,45.682,39.834h225.932 - c29.804,0,44.975-15.711,45.681-39.959c0.277-9.488-3.143-22.729-10.086-33.324L332.729,256H179.5L108.292,374.616z M323.705,272 - l67.168,110.87l0.151,0.124l0.159,0.182c5.382,8.212,7.647,18.275,7.476,24.18c-0.229,7.839-2.477,13.98-6.683,17.795 - c-4.774,4.328-12.729,6.85-23.008,6.85H143.037c-11.064,0-19.27-2.236-23.73-5.996c-1.472-1.24-5.954-5.143-5.954-18.088 - c0-5.943,2.857-16.383,8.319-24.717l0.177-0.302l0.166-0.042L188.564,272H323.705z"/> -</g> -</svg> diff --git a/admin/bower_components/Ionicons/src/ios-flask.svg b/admin/bower_components/Ionicons/src/ios-flask.svg deleted file mode 100644 index 1a5e04f..0000000 --- a/admin/bower_components/Ionicons/src/ios-flask.svg +++ /dev/null @@ -1,17 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" enable-background="new 0 0 512 512" xml:space="preserve"> -<g> - <path d="M391.016,382.994l-0.15-0.124L323.7,272H188.554l-66.549,110.855l-0.166,0.042l-0.177,0.302 - c-5.461,8.334-8.319,18.773-8.319,24.717c0,12.945,4.481,16.848,5.954,18.088c4.46,3.76,12.667,5.996,23.731,5.996H368.96 - c10.278,0,18.232-2.521,23.007-6.85c4.205-3.814,6.454-9.956,6.683-17.795c0.172-5.904-2.093-15.968-7.476-24.18L391.016,382.994z" - /> - <path d="M436.912,370.441L320,175V48h16V32H176v16h16v127L76.125,370.441C67.715,386.268,63.616,401.814,64.028,416 - c1.061,36.511,28.701,64,65.065,64h255.888c36.292,0,62.132-27.598,62.993-64C448.312,401.756,445.367,386.349,436.912,370.441z - M208,64h48v16h-48V64z M208,112h32v16h-32V112z M208,160h48v16h-48V160z M191.261,208H240v16h-58.179L191.261,208z - M414.64,408.041C413.934,432.289,398.763,448,368.96,448H143.027c-29.862,0-45.682-12.25-45.682-39.834 - c0-9.455,4.029-23.008,10.937-33.55L179.49,256h153.228l71.836,118.717C411.497,385.312,414.916,398.553,414.64,408.041z"/> -</g> -</svg> diff --git a/admin/bower_components/Ionicons/src/ios-flower-outline.svg b/admin/bower_components/Ionicons/src/ios-flower-outline.svg deleted file mode 100644 index 83f58dd..0000000 --- a/admin/bower_components/Ionicons/src/ios-flower-outline.svg +++ /dev/null @@ -1,75 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" enable-background="new 0 0 512 512" xml:space="preserve"> -<g> - <path d="M395.057,284.252c55.929,0,84.943-11.62,84.943-28.002s-29.016-28.003-84.943-28.003c-28.732,0-64.708,7.391-92.902,14.578 - c-0.975-3.419-2.305-6.688-3.973-9.75c25.009-14.852,55.645-35.05,75.947-55.353c39.547-39.547,52.023-68.458,40.44-80.042 - c-2.747-2.748-6.472-4.142-11.079-4.142c-14.818,0-38.796,14.415-68.963,44.582c-20.282,20.282-40.459,50.873-55.307,75.869 - c-3.062-1.696-6.33-3.062-9.755-4.062c7.175-28.17,14.535-64.059,14.535-92.735C284.002,61.266,272.382,32,256,32 - s-28.002,29.266-28.002,85.194c0,28.676,7.362,64.565,14.536,92.735c-3.425,1-6.693,2.365-9.755,4.062 - c-14.847-24.996-35.023-55.587-55.305-75.869C147.309,107.957,123.33,93.54,108.51,93.54c-4.609,0-8.331,1.394-11.079,4.142 - c-11.584,11.583,0.894,40.494,40.44,80.041c20.303,20.303,50.938,40.501,75.947,55.353c-1.668,3.062-2.999,6.331-3.974,9.75 - c-28.194-7.188-64.169-14.578-92.901-14.578C61.016,228.247,32,239.618,32,256s29.016,28.252,84.944,28.252 - c28.777,0,64.82-7.413,93.034-14.611c1.003,3.392,2.368,6.625,4.055,9.656c-25.048,14.863-55.801,35.119-76.161,55.479 - c-39.547,39.548-52.023,68.459-40.44,80.043c2.748,2.748,6.471,4.142,11.078,4.142c14.819,0,38.796-14.415,68.963-44.583 - c20.382-20.381,40.659-51.177,55.526-76.238c3.032,1.657,6.267,2.988,9.651,3.967c-7.211,28.238-14.654,64.367-14.654,93.201 - C227.998,451.234,239.618,480,256,480s28.002-28.766,28.002-84.693c0-28.834-7.441-64.963-14.652-93.201 - c3.385-0.979,6.618-2.31,9.65-3.967c14.867,25.062,35.145,55.857,55.527,76.239c30.164,30.165,54.144,44.582,68.963,44.582 - c4.608,0,8.33-1.394,11.078-4.142c11.584-11.584-0.894-40.495-40.439-80.043c-20.361-20.359-51.114-40.615-76.162-55.479 - c1.688-3.031,3.053-6.266,4.055-9.656C330.237,276.839,366.28,284.252,395.057,284.252z M319.992,254.941 - c30.144-7.014,55.893-10.694,75.064-10.694c21.329,0,39.453,1.806,52.41,5.222c9.705,2.559,14.005,5.317,15.736,6.781 - c-1.731,1.463-6.031,4.221-15.736,6.779c-12.958,3.416-31.081,5.223-52.41,5.223c-19.176,0-44.927-3.68-75.075-10.695 - L319.992,254.941z M345.841,149.436c35.382-35.383,52.682-39.412,56.818-39.846c-0.211,2.305-1.343,7.326-6.404,15.991 - c-6.786,11.62-18.35,25.738-33.439,40.828c-13.533,13.534-34.3,29.111-60.513,45.438c-0.619-0.648-1.25-1.283-1.895-1.904 - C316.732,183.729,332.309,162.968,345.841,149.436z M209.698,211.846c-26.213-16.326-46.979-31.904-60.512-45.437 - c-15.09-15.091-26.653-29.208-33.439-40.828c-5.061-8.665-6.194-13.687-6.404-15.992c4.138,0.435,21.436,4.463,56.818,39.845 - c13.533,13.533,29.108,34.295,45.433,60.507C210.948,210.563,210.316,211.198,209.698,211.846z M116.944,268.252 - c-21.339,0-39.483-1.845-52.471-5.335c-9.689-2.604-13.961-5.394-15.675-6.87c1.75-1.451,6.077-4.177,15.796-6.689 - c12.927-3.343,31.029-5.11,52.351-5.11c19.172,0,44.922,3.68,75.064,10.694l0.01,2.615 - C161.87,264.572,136.12,268.252,116.944,268.252z M166.16,363.064c-35.383,35.382-52.68,39.41-56.818,39.846 - c0.21-2.305,1.343-7.326,6.404-15.992c6.786-11.619,18.349-25.736,33.439-40.828c13.587-13.586,34.457-29.229,60.815-45.625 - c0.584,0.604,1.181,1.197,1.789,1.779C195.394,328.604,179.749,349.475,166.16,363.064z M302,300.465 - c26.356,16.395,47.227,32.037,60.814,45.625c15.091,15.092,26.653,29.209,33.439,40.828c5.062,8.666,6.193,13.688,6.403,15.992 - c-4.138-0.436-21.436-4.464-56.817-39.846c-13.589-13.59-29.234-34.463-45.63-60.82C300.818,301.663,301.415,301.068,302,300.465z - M249.222,64.678c2.548-9.703,5.297-14.055,6.778-15.834c1.48,1.78,4.23,6.131,6.777,15.834 - c3.418,13.015,5.225,31.174,5.225,52.516c0,19.117-3.66,44.781-10.637,74.821h-2.73c-6.977-30.04-10.638-55.704-10.638-74.821 - C243.998,95.853,245.804,77.693,249.222,64.678z M262.782,447.612c-2.569,9.707-5.339,13.954-6.782,15.636 - c-1.444-1.682-4.212-5.929-6.782-15.636c-3.415-12.901-5.22-30.988-5.22-52.308c0-19.228,3.701-45.066,10.752-75.316h2.5 - c7.052,30.25,10.752,56.089,10.752,75.316C268.002,416.624,266.197,434.711,262.782,447.612z M256,288c-17.673,0-32-14.327-32-32 - s14.327-32,32-32s32,14.327,32,32S273.673,288,256,288z"/> - <path d="M344.86,405.678c-24.529-17.674-48.394-51.732-48.394-51.732s7.031,41.059,1.854,75.946 - c11.678,21.779,26.139,35.253,36.643,35.253c1.749,0,3.432-0.324,5.042-0.976C351.879,459.372,354.39,439.185,344.86,405.678z - M333.738,448.566c-2.738-1.46-9.407-6.369-18.992-22.27c0.688-7.872,1.098-16.337,1.219-25.282 - c5.012,4.88,9.947,9.437,14.747,13.613C335.816,434.408,334.954,444.779,333.738,448.566z"/> - <path d="M213.679,82.608c-13.292-23.51-26.139-35.255-36.644-35.255c-1.749,0-3.431,0.325-5.042,0.976 - c-11.868,4.795-14.497,23.211-4.87,58.441c21.252,15.98,48.374,51.55,48.374,51.55S207.75,117.5,213.679,82.608z M196.038,111.369 - c-5.001-4.856-9.943-9.398-14.769-13.574c-5.084-19.731-4.223-30.082-3.008-33.863c2.737,1.459,9.407,6.369,18.994,22.27 - C196.568,94.04,196.161,102.466,196.038,111.369z"/> - <path d="M82.357,298.568c-27.422,15.505-38.836,30.402-34.277,41.687c2.806,6.944,10.913,10.675,23.842,10.675 - c9.182,0,22.434-1.559,34.672-5.826c17.405-23.934,51.712-48.387,51.712-48.387S116.999,302.836,82.357,298.568z M97.637,330.956 - c-10.088,2.606-18.909,3.974-25.716,3.974c-4.092,0-6.733-0.502-8.223-0.97c1.477-2.755,6.407-9.411,22.253-18.966 - c7.872,0.689,16.338,1.099,25.284,1.22C106.365,321.218,101.815,326.15,97.637,330.956z"/> - <path d="M463.92,172.245c-2.806-6.945-10.914-10.675-23.844-10.675c-9.178,0-21.4,1.715-34.654,5.822 - c-18.088,23.774-51.699,48.387-51.699,48.387s40.778-7.28,75.918-1.849C457.064,198.426,468.479,183.528,463.92,172.245z - M426.047,197.504c-7.867-0.689-16.327-1.097-25.267-1.218c4.869-5.004,9.42-9.939,13.6-14.749 - c10.081-2.602,18.895-3.968,25.697-3.968c4.093,0,6.733,0.502,8.225,0.97C446.824,181.294,441.893,187.951,426.047,197.504z"/> - <path d="M163.135,408.98c-8.42,30.34-5.956,48.938,5.244,53.69c1.674,0.711,3.437,1.066,5.275,1.066 - c11.107,0,24.698-13.124,39.528-39.015c-4.184-32.22,2.351-70.779,2.351-70.779S193.999,385.336,163.135,408.98z M174.981,447.207 - c-0.904-2.966-2.147-11.15,2.312-29.159c6.048-5.079,12.323-10.782,18.743-17.032c0.095,6.979,0.366,13.687,0.81,20.039 - C186.466,438.66,178.52,445.39,174.981,447.207z"/> - <path d="M343.622,49.826c-1.674-0.71-3.438-1.066-5.274-1.066c-11.105,0-26.207,14.287-39.527,39.013 - c4.514,22.894-2.393,71.053-2.393,71.053s23.239-34.326,52.342-54.956C357.167,72,354.865,54.599,343.622,49.826z M334.627,94.781 - c-6.029,5.051-12.277,10.72-18.66,16.931c-0.092-7.062-0.364-13.846-0.812-20.269c10.379-17.607,18.327-24.336,21.864-26.153 - C337.93,68.274,339.186,76.541,334.627,94.781z"/> - <path d="M103.209,163.367C93,159.5,80.717,158.366,72.457,158.366c-12.267,0-20.042,3.573-22.881,10.261 - c-5.004,11.792,9.97,29.985,37.948,44.805c29.726-3.932,70.688,2.336,70.688,2.336S121,187.067,103.209,163.367z M65.034,175.215 - c1.381-0.414,3.775-0.848,7.424-0.848c5.815,0,13.242,1.088,21.687,3.165c5.077,6.049,10.781,12.33,17.034,18.754 - c-6.959,0.096-13.648,0.367-19.984,0.81C73.563,186.7,66.84,178.745,65.034,175.215z"/> - <path d="M424.477,299.066c-25.307,5.6-70.78-2.35-70.78-2.35s34.638,25.615,55.014,52.393c11.959,4.223,22.555,5.022,30.833,5.022 - c12.266,0,20.041-3.573,22.88-10.261C467.428,332.08,454.283,315.801,424.477,299.066z M439.542,338.132 - c-5.833,0-13.287-1.095-21.765-3.185c-5.078-6.053-10.774-12.326-17.013-18.734c6.98-0.095,13.688-0.365,20.041-0.811 - c17.631,10.396,24.354,18.352,26.158,21.882C445.585,337.697,443.19,338.132,439.542,338.132z"/> -</g> -</svg> diff --git a/admin/bower_components/Ionicons/src/ios-flower.svg b/admin/bower_components/Ionicons/src/ios-flower.svg deleted file mode 100644 index 38029b5..0000000 --- a/admin/bower_components/Ionicons/src/ios-flower.svg +++ /dev/null @@ -1,38 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" enable-background="new 0 0 512 512" xml:space="preserve"> -<g> - <path d="M395.057,228.247c-28.651,0-64.502,7.35-92.66,14.518c-0.98-3.443-2.321-6.734-4.001-9.817 - c24.97-14.84,55.487-34.98,75.733-55.224c39.547-39.547,52.023-68.458,40.44-80.042c-11.584-11.583-40.495,0.893-80.042,40.44 - c-20.225,20.225-40.343,50.698-55.178,75.654c-3.082-1.708-6.373-3.083-9.822-4.089c7.156-28.133,14.475-63.897,14.475-92.492 - C284.002,61.266,272.382,32,256,32s-28.002,29.266-28.002,85.194c0,28.595,7.319,64.359,14.475,92.492 - c-3.449,1.006-6.74,2.381-9.822,4.089c-14.835-24.956-34.953-55.43-55.176-75.653c-39.548-39.547-68.458-52.024-80.042-40.44 - c-11.584,11.583,0.894,40.494,40.44,80.041c20.246,20.244,50.762,40.384,75.732,55.224c-1.68,3.083-3.021,6.374-4.001,9.817 - c-28.158-7.168-64.008-14.518-92.659-14.518C61.016,228.247,32,239.618,32,256s29.016,28.252,84.944,28.252 - c28.697,0,64.613-7.371,92.792-14.551c1.01,3.414,2.384,6.671,4.083,9.724c-25.009,14.852-55.645,35.049-75.946,55.351 - c-39.547,39.548-52.023,68.459-40.44,80.043c11.584,11.584,40.495-0.895,80.042-40.441c20.323-20.323,40.542-51.001,55.398-76.024 - c3.053,1.671,6.31,3.01,9.718,3.995c-7.192,28.203-14.592,64.207-14.592,92.959c0,55.929,11.62,84.693,28.002,84.693 - s28.002-28.766,28.002-84.693c0-28.752-7.4-64.756-14.592-92.959c3.408-0.985,6.665-2.324,9.718-3.995 - c14.855,25.023,35.073,55.701,55.399,76.025c39.547,39.547,68.457,52.024,80.041,40.44s-0.894-40.495-40.439-80.043 - c-20.304-20.302-50.938-40.499-75.947-55.351c1.699-3.053,3.073-6.31,4.083-9.724c28.18,7.18,64.096,14.551,92.792,14.551 - c55.929,0,84.943-11.62,84.943-28.002S450.984,228.247,395.057,228.247z"/> - <path d="M296.467,353.945c0,0,7.031,41.059,1.854,75.946c11.678,21.779,26.139,35.253,36.643,35.253 - c1.749,0,3.432-0.324,5.042-0.976c11.874-4.797,14.385-24.984,4.855-58.491C320.331,388.004,296.467,353.945,296.467,353.945z"/> - <path d="M215.497,158.32c0,0-7.747-40.82-1.818-75.712c-13.292-23.51-26.139-35.255-36.644-35.255 - c-1.749,0-3.431,0.325-5.042,0.976c-11.868,4.795-14.497,23.211-4.87,58.441C188.375,122.75,215.497,158.32,215.497,158.32z"/> - <path d="M158.306,296.717c0,0-41.308,6.119-75.949,1.852c-27.422,15.505-38.836,30.402-34.277,41.687 - c2.806,6.944,10.913,10.675,23.842,10.675c9.182,0,22.434-1.559,34.672-5.826C123.999,321.17,158.306,296.717,158.306,296.717z"/> - <path d="M353.723,215.779c0,0,40.778-7.28,75.918-1.849c27.424-15.504,38.838-30.402,34.279-41.685 - c-2.806-6.945-10.914-10.675-23.844-10.675c-9.178,0-21.4,1.715-34.654,5.822C387.334,191.166,353.723,215.779,353.723,215.779z"/> - <path d="M163.135,408.98c-8.42,30.34-5.956,48.938,5.244,53.69c1.674,0.711,3.437,1.066,5.275,1.066 - c11.107,0,24.698-13.124,39.528-39.015c-4.184-32.22,2.351-70.779,2.351-70.779S193.999,385.336,163.135,408.98z"/> - <path d="M348.77,103.87c8.397-31.87,6.096-49.271-5.147-54.044c-1.674-0.71-3.438-1.066-5.274-1.066 - c-11.105,0-26.207,14.287-39.527,39.013c4.514,22.894-2.393,71.053-2.393,71.053S319.667,124.5,348.77,103.87z"/> - <path d="M87.524,213.432c29.726-3.932,70.688,2.336,70.688,2.336S121,187.067,103.209,163.367 - C93,159.5,80.717,158.366,72.457,158.366c-12.267,0-20.042,3.573-22.881,10.261C44.572,180.419,59.546,198.612,87.524,213.432z"/> - <path d="M424.477,299.066c-25.307,5.6-70.78-2.35-70.78-2.35s34.638,25.615,55.014,52.393c11.959,4.223,22.555,5.022,30.833,5.022 - c12.266,0,20.041-3.573,22.88-10.261C467.428,332.08,454.283,315.801,424.477,299.066z"/> -</g> -</svg> diff --git a/admin/bower_components/Ionicons/src/ios-folder-outline.svg b/admin/bower_components/Ionicons/src/ios-folder-outline.svg deleted file mode 100644 index c337acb..0000000 --- a/admin/bower_components/Ionicons/src/ios-folder-outline.svg +++ /dev/null @@ -1,11 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" enable-background="new 0 0 512 512" xml:space="preserve"> -<path d="M457,96H215c-2.791,0-4.271-0.585-6.094-2.408l-22.501-22.501l-0.168-0.162C181.365,66.333,177.361,64,169,64H57 - c-13.785,0-25,10.317-25,23v336c0,13.317,11.683,25,25,25h400c12.683,0,23-11.215,23-25V119C480,105.673,470.327,96,457,96z M57,80 - h112c3.497,0,3.737,0.189,6.175,2.488l22.417,22.418c4.84,4.84,10.372,7.094,17.408,7.094h242c4.448,0,7,2.552,7,7v42.376 - c-2.504-0.888-5.195-1.376-8-1.376H56c-2.805,0-5.496,0.488-8,1.376V87C48,82.677,52.672,80,57,80z M464,423c0,4.328-2.677,9-7,9H57 - c-4.458,0-9-4.542-9-9V184c0-4.411,3.589-8,8-8h400c4.411,0,8,3.589,8,8V423z"/> -</svg> diff --git a/admin/bower_components/Ionicons/src/ios-folder.svg b/admin/bower_components/Ionicons/src/ios-folder.svg deleted file mode 100644 index bd31bf5..0000000 --- a/admin/bower_components/Ionicons/src/ios-folder.svg +++ /dev/null @@ -1,13 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" enable-background="new 0 0 512 512" xml:space="preserve"> -<g> - <path d="M472,176H40c-4.411,0-8,3.589-8,8v239c0,13.317,11.683,25,25,25h400c12.683,0,23-11.215,23-25V184 - C480,179.589,476.411,176,472,176z"/> - <path d="M457,96H215c-2.791,0-4.271-0.585-6.094-2.408l-22.501-22.501l-0.168-0.162C181.365,66.333,177.361,64,169,64H57 - c-13.785,0-25,10.317-25,23v74.376c2.504-0.888,5.195-1.376,8-1.376h432c2.805,0,5.496,0.488,8,1.376V119 - C480,105.673,470.327,96,457,96z"/> -</g> -</svg> diff --git a/admin/bower_components/Ionicons/src/ios-football-outline.svg b/admin/bower_components/Ionicons/src/ios-football-outline.svg deleted file mode 100644 index 0b3591f..0000000 --- a/admin/bower_components/Ionicons/src/ios-football-outline.svg +++ /dev/null @@ -1,20 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" enable-background="new 0 0 512 512" xml:space="preserve"> -<path d="M256,48C141.137,48,48,141.136,48,256c0,114.864,93.137,208,208,208c114.872,0,208-93.138,208-208 - C464,141.138,370.87,48,256,48z M297.151,442.179c-13.514,2.657-30.327,4.187-44,4.45c-13.198-0.195-26.074-1.735-38.5-4.493 - c-2.144-0.549-4.383-1.138-6.805-1.777l-24.417-65.435L203.074,336h105.854l0.57,1.076l19.34,38.852L305.22,440.21 - C302.553,440.924,299.862,441.579,297.151,442.179z M89.317,163.522l18.188,52.284l0.175,0.504L65.376,252.92 - C65.892,220.535,74.52,190.088,89.317,163.522z M189.578,77.28L247,116.576v58.147l-70.997,60.067L126.6,212.28l-4.167-1.899 - l-22.332-64.019C122.11,115.158,153.239,90.83,189.578,77.28z M325.025,247.206l0.921,0.765L307.569,320H204.431l-18.485-72.453 - l0.445-0.376l68.873-58.27L325.025,247.206z M446.626,252.921l-42.454-36.738l0.127-0.364l18.298-52.451 - C437.447,189.972,446.109,220.473,446.626,252.921z M411.564,146.067l-22.432,64.483l-53.992,24.388L264,174.723v-58.147 - l57.596-39.415C357.958,90.644,389.501,114.913,411.564,146.067z M66.144,273.414l53.756-46.518l49.539,22.599l0.559,0.255 - l19.718,77.287l-20.433,38.529l-69.86-0.915C81.075,338.291,69.209,307.105,66.144,273.414z M342.719,365.565l-20.434-38.529 - l19.752-77.416l49.997-22.781l53.822,46.575c-3.065,33.691-14.932,64.877-33.277,91.236L342.719,365.565z M255.257,102.67 - l-46.126-31.498c15-3.806,30.701-5.836,46.869-5.835c15.961,0,31.466,1.982,46.293,5.694L255.257,102.67z M166.423,381.529 - l0.848,2.511l19.946,49.781c-29.239-11.351-55.011-29.704-75.232-53.006L166.423,381.529z M324.563,433.904l17.934-48.608 - l1.627-3.748l55.892-0.732C379.744,404.175,353.893,422.562,324.563,433.904z"/> -</svg> diff --git a/admin/bower_components/Ionicons/src/ios-football.svg b/admin/bower_components/Ionicons/src/ios-football.svg deleted file mode 100644 index 34151ac..0000000 --- a/admin/bower_components/Ionicons/src/ios-football.svg +++ /dev/null @@ -1,14 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" enable-background="new 0 0 512 512" xml:space="preserve"> -<path d="M256,48C141.137,48,48,141.136,48,256c0,114.864,93.137,208,208,208c114.872,0,208-93.138,208-208 - C464,141.138,370.87,48,256,48z M297.151,442.179c-13.514,2.657-30.327,4.187-44,4.45c-13.198-0.195-26.074-1.735-38.5-4.493 - c-2.144-0.549-4.383-1.138-6.805-1.777l-24.417-65.435L203.074,336h105.854l0.57,1.076l19.34,38.852L305.22,440.21 - C302.553,440.924,299.862,441.579,297.151,442.179z M189.578,77.28L247,116.576v58.147l-70.997,60.067L126.6,212.28l-4.167-1.899 - l-22.332-64.019C122.11,115.158,153.239,90.83,189.578,77.28z M411.564,146.067l-22.432,64.483l-53.992,24.388L264,174.723v-58.147 - l57.596-39.415C357.958,90.644,389.501,114.913,411.564,146.067z M66.144,273.414l53.756-46.518l49.539,22.599l0.559,0.255 - l19.718,77.287l-20.433,38.529l-69.86-0.915C81.075,338.291,69.209,307.105,66.144,273.414z M342.719,365.565l-20.434-38.529 - l19.752-77.416l49.997-22.781l53.822,46.575c-3.065,33.691-14.932,64.877-33.277,91.236L342.719,365.565z"/> -</svg> diff --git a/admin/bower_components/Ionicons/src/ios-game-controller-a-outline.svg b/admin/bower_components/Ionicons/src/ios-game-controller-a-outline.svg deleted file mode 100644 index 9721587..0000000 --- a/admin/bower_components/Ionicons/src/ios-game-controller-a-outline.svg +++ /dev/null @@ -1,26 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" enable-background="new 0 0 512 512" xml:space="preserve"> -<g> - <g> - <path d="M194.822,240H160v-34.762c0-2.817-2.604-5.238-5.303-5.238h-22.145c-2.698,0-4.552,2.372-4.552,5.178V240H92.533 - c-2.615,0-4.533,2.143-4.533,4.771v21.427c0,2.698,2.031,5.803,4.861,5.803H128v35.467c0,2.615,2.143,4.533,4.771,4.533h21.427 - c2.698,0,5.803-2.031,5.803-4.861V272h34.762c2.817,0,5.238-2.604,5.238-5.303v-22.145C200,241.854,197.628,240,194.822,240z"/> - <path d="M362.314,279.063c-10.736,0-19.451,8.515-19.451,19.153c0,10.555,8.715,19.084,19.451,19.084 - c10.783,0,19.498-8.529,19.498-19.084C381.812,287.578,373.098,279.063,362.314,279.063z"/> - <path d="M319.766,237.165c-10.736,0-19.451,8.603-19.451,19.168c0,10.566,8.715,19.153,19.451,19.153 - c10.783,0,19.498-8.587,19.498-19.153C339.264,245.768,330.549,237.165,319.766,237.165z"/> - <path d="M404.862,237.165c-10.729,0-19.442,8.603-19.442,19.168c0,10.566,8.714,19.153,19.442,19.153 - c10.737,0,19.452-8.587,19.452-19.153C424.314,245.768,415.6,237.165,404.862,237.165z"/> - <path d="M362.314,195.301c-10.736,0-19.451,8.602-19.451,19.169c0,10.566,8.715,19.146,19.451,19.146 - c10.783,0,19.498-8.579,19.498-19.146C381.812,203.902,373.098,195.301,362.314,195.301z"/> - </g> - <path d="M369.269,162c25.838,0,49.704,9.314,67.204,26.229C454.225,205.386,464,229.247,464,255.418 - c0,26.303-9.806,50.405-27.611,67.869c-17.563,17.226-41.4,26.713-67.12,26.713H142.739c-25.712,0-49.548-9.487-67.117-26.715 - C57.81,305.818,48,281.717,48,255.418c0-26.167,9.78-50.028,27.539-67.188C93.043,171.315,116.909,162,142.739,162H369.269 - M369.269,146H142.739C81.541,146,32,191.458,32,255.418C32,319.419,81.541,366,142.739,366h226.529 - C430.49,366,480,319.419,480,255.418C480,191.458,430.49,146,369.269,146L369.269,146z"/> -</g> -</svg> diff --git a/admin/bower_components/Ionicons/src/ios-game-controller-a.svg b/admin/bower_components/Ionicons/src/ios-game-controller-a.svg deleted file mode 100644 index 794bcb0..0000000 --- a/admin/bower_components/Ionicons/src/ios-game-controller-a.svg +++ /dev/null @@ -1,19 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" enable-background="new 0 0 512 512" xml:space="preserve"> -<g> - <path d="M369.269,146H142.739C81.541,146,32,191.458,32,255.418C32,319.419,81.541,366,142.739,366h226.529 - C430.49,366,480,319.419,480,255.418C480,191.458,430.49,146,369.269,146z M200,266.697c0,2.698-2.421,5.303-5.238,5.303H160 - v35.139c0,2.83-3.104,4.861-5.803,4.861h-21.427c-2.628,0-4.771-1.918-4.771-4.533V272H92.861c-2.83,0-4.861-3.104-4.861-5.803 - v-21.427c0-2.628,1.918-4.771,4.533-4.771H128v-34.822c0-2.806,1.854-5.178,4.553-5.178h22.145c2.698,0,5.303,2.421,5.303,5.238 - V240h34.822c2.806,0,5.178,1.854,5.178,4.553V266.697z M319.766,275.486c-10.736,0-19.451-8.587-19.451-19.153 - c0-10.565,8.715-19.168,19.451-19.168c10.783,0,19.498,8.603,19.498,19.168C339.264,266.899,330.549,275.486,319.766,275.486z - M362.314,317.301c-10.736,0-19.451-8.529-19.451-19.084c0-10.639,8.715-19.153,19.451-19.153c10.783,0,19.498,8.515,19.498,19.153 - C381.812,308.771,373.098,317.301,362.314,317.301z M362.314,233.615c-10.736,0-19.451-8.579-19.451-19.146 - c0-10.567,8.715-19.169,19.451-19.169c10.783,0,19.498,8.602,19.498,19.169C381.812,225.036,373.098,233.615,362.314,233.615z - M404.862,275.486c-10.729,0-19.442-8.587-19.442-19.153c0-10.565,8.714-19.168,19.442-19.168c10.737,0,19.452,8.603,19.452,19.168 - C424.314,266.899,415.6,275.486,404.862,275.486z"/> -</g> -</svg> diff --git a/admin/bower_components/Ionicons/src/ios-game-controller-b-outline.svg b/admin/bower_components/Ionicons/src/ios-game-controller-b-outline.svg deleted file mode 100644 index e462f00..0000000 --- a/admin/bower_components/Ionicons/src/ios-game-controller-b-outline.svg +++ /dev/null @@ -1,35 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" enable-background="new 0 0 512 512" xml:space="preserve"> -<g> - <g> - <path d="M308.076,203.929c-11.058,0-20.076,9.014-20.076,20.104c0,11.089,9.019,20.107,20.076,20.107 - c11.131,0,20.148-9.019,20.148-20.107C328.225,212.942,319.207,203.929,308.076,203.929z"/> - <path d="M351.988,247.878c-11.058,0-20.053,8.949-20.053,20.106c0,11.064,8.995,20.016,20.053,20.016 - c11.146,0,20.148-8.951,20.148-20.016C372.137,256.827,363.134,247.878,351.988,247.878z"/> - <path d="M135.234,184.367C113.594,184.367,96,202.17,96,224.01c0,21.865,17.594,39.623,39.234,39.623 - c21.655,0,39.249-17.758,39.249-39.623C174.483,202.17,156.89,184.367,135.234,184.367z M135.123,243.457 - c-10.688,0-19.343-8.721-19.343-19.447c0-10.725,8.655-19.441,19.343-19.441c10.641,0,19.297,8.717,19.297,19.441 - C154.42,234.736,145.764,243.457,135.123,243.457z"/> - <path d="M351.988,160c-11.058,0-20.053,9.014-20.053,20.107c0,11.09,8.995,20.083,20.053,20.083 - c11.146,0,20.148-8.993,20.148-20.083C372.137,169.014,363.134,160,351.988,160z"/> - <path d="M395.947,203.929c-11.105,0-20.101,9.014-20.101,20.104c0,11.089,8.995,20.107,20.101,20.107 - c11.059,0,20.053-9.019,20.053-20.107C416,212.942,407.006,203.929,395.947,203.929z"/> - </g> - <path d="M466.279,248.866c-21.157-88.471-43.631-135.489-88.454-148.83C368.06,97.135,359.748,96,352.076,96 - c-27.598,0-46.938,14.683-96.08,14.683c-49.174,0-68.502-14.681-96.062-14.683c-7.665,0-15.963,1.135-25.721,4.036 - c-44.869,13.341-67.342,60.359-88.461,148.83c-21.181,88.473-17.334,152.363,7.679,164.289C57.502,415.1,61.662,416,65.885,416 - c21.694,0,45.139-23.838,67.659-52.047C159.198,331.848,165.658,331,243.822,331h24.343c78.147,0,84.628,0.846,110.282,32.953 - c22.526,28.207,45.97,52.004,67.665,52.004c4.226,0,8.384-0.879,12.457-2.823C483.574,401.208,487.421,337.339,466.279,248.866z - M451.677,398.716c-1.835,0.876-3.604,1.284-5.564,1.284c-6.022,0-14.077-4.049-23.295-11.708 - c-9.181-7.63-19.307-18.509-31.87-34.239c-12.959-16.22-23.667-28.229-43.528-33.949c-16.647-4.793-38.624-5.104-79.254-5.104 - h-24.343c-40.633,0-62.611,0.311-79.259,5.105c-19.853,5.719-30.56,17.685-43.523,33.908 - c-12.556,15.727-22.68,26.627-31.862,34.258c-9.216,7.658-17.27,11.718-23.293,11.718c-1.932,0-3.751-0.415-5.568-1.282 - c-9.556-4.557-22.572-47.673,0.998-146.129c21.387-89.591,42.381-126.777,77.459-137.207c7.633-2.27,14.554-3.372,21.159-3.372 - c9.742,0,18.599,2.317,29.812,5.249c16.07,4.203,36.072,9.435,66.252,9.435c30.148,0,50.146-5.228,66.215-9.429 - c11.229-2.936,20.1-5.254,29.865-5.254c6.618,0,13.551,1.104,21.185,3.371c35.037,10.428,56.03,47.617,77.456,137.214 - C474.244,351.041,461.23,394.16,451.677,398.716z"/> -</g> -</svg> diff --git a/admin/bower_components/Ionicons/src/ios-game-controller-b.svg b/admin/bower_components/Ionicons/src/ios-game-controller-b.svg deleted file mode 100644 index 97fdcae..0000000 --- a/admin/bower_components/Ionicons/src/ios-game-controller-b.svg +++ /dev/null @@ -1,23 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" enable-background="new 0 0 512 512" xml:space="preserve"> -<g> - <path d="M135.123,204.568c-10.688,0-19.343,8.717-19.343,19.441c0,10.727,8.655,19.447,19.343,19.447 - c10.641,0,19.297-8.721,19.297-19.447C154.42,213.285,145.764,204.568,135.123,204.568z"/> - <path d="M466.279,248.866c-21.157-88.471-43.631-135.489-88.454-148.83C368.06,97.135,359.748,96,352.076,96 - c-27.598,0-46.938,14.683-96.08,14.683c-49.174,0-68.502-14.681-96.062-14.683c-7.665,0-15.963,1.135-25.721,4.036 - c-44.869,13.341-67.342,60.359-88.461,148.83c-21.181,88.473-17.334,152.363,7.679,164.289C57.502,415.1,61.662,416,65.885,416 - c21.694,0,45.139-23.838,67.659-52.047C159.198,331.848,165.658,331,243.822,331h24.343c78.147,0,84.628,0.846,110.282,32.953 - c22.526,28.207,45.97,52.004,67.665,52.004c4.226,0,8.384-0.879,12.457-2.823C483.574,401.208,487.421,337.339,466.279,248.866z - M135.234,263.633C113.594,263.633,96,245.875,96,224.01c0-21.84,17.594-39.643,39.234-39.643 - c21.655,0,39.249,17.803,39.249,39.643C174.483,245.875,156.89,263.633,135.234,263.633z M308.076,244.14 - c-11.058,0-20.076-9.019-20.076-20.107c0-11.09,9.019-20.104,20.076-20.104c11.131,0,20.148,9.014,20.148,20.104 - C328.225,235.121,319.207,244.14,308.076,244.14z M351.988,288c-11.058,0-20.053-8.951-20.053-20.016 - c0-11.157,8.995-20.106,20.053-20.106c11.146,0,20.148,8.949,20.148,20.106C372.137,279.049,363.134,288,351.988,288z - M351.988,200.19c-11.058,0-20.053-8.993-20.053-20.083c0-11.094,8.995-20.107,20.053-20.107c11.146,0,20.148,9.014,20.148,20.107 - C372.137,191.197,363.134,200.19,351.988,200.19z M395.947,244.14c-11.105,0-20.101-9.019-20.101-20.107 - c0-11.09,8.995-20.104,20.101-20.104c11.059,0,20.053,9.014,20.053,20.104C416,235.121,407.006,244.14,395.947,244.14z"/> -</g> -</svg> diff --git a/admin/bower_components/Ionicons/src/ios-gear-outline.svg b/admin/bower_components/Ionicons/src/ios-gear-outline.svg deleted file mode 100644 index e5473bc..0000000 --- a/admin/bower_components/Ionicons/src/ios-gear-outline.svg +++ /dev/null @@ -1,40 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" enable-background="new 0 0 512 512" xml:space="preserve"> -<g> - <g> - <path d="M256.9,159.9c-25.701,0-49.801,10-67.9,28.1s-28.1,42.199-28.1,67.9c0,25.699,10,49.699,28.1,67.9 - c18.1,18.1,42.301,28.1,67.9,28.1c25.699,0,49.799-10,67.9-28.1c18.1-18.102,28.1-42.201,28.1-67.9c0-25.701-10-49.701-28.1-67.9 - C306.699,169.9,282.6,159.9,256.9,159.9z M256.9,335.9c-44.301,0-80-35.9-80-80c0-44.101,35.699-80,80-80 - c44.299,0,80,35.899,80,80C336.9,300,301.199,335.9,256.9,335.9z"/> - </g> - <g> - <path d="M201.787,82.828c4.458,6.628,10.119,12.406,16.775,17.069c11.012,7.715,23.957,11.793,37.438,11.793 - c13.481,0,26.428-4.078,37.439-11.793c6.654-4.663,12.316-10.441,16.773-17.068c10.326,3.228,20.334,7.378,29.927,12.411 - c-1.532,7.84-1.614,15.93-0.203,23.933c2.333,13.235,8.604,25.269,18.133,34.798c12.335,12.336,28.737,19.129,46.185,19.129 - c4.242,0,8.424-0.399,12.52-1.195c5.032,9.6,9.181,19.613,12.405,29.947c-6.622,4.46-12.396,10.121-17.054,16.776 - c-7.705,11.008-11.777,23.946-11.776,37.418c0,13.467,4.069,26.401,11.768,37.406c4.653,6.651,10.421,12.312,17.036,16.771 - c-3.232,10.34-7.387,20.354-12.428,29.957c-4.081-0.789-8.246-1.187-12.472-1.187c-17.448,0-33.85,6.795-46.183,19.131 - c-9.515,9.514-15.781,21.527-18.123,34.74c-1.415,7.988-1.343,16.065,0.176,23.895c-9.607,5.04-19.627,9.192-29.967,12.421 - c-4.461-6.61-10.121-12.374-16.771-17.022c-11-7.689-23.928-11.754-37.386-11.754c-13.457,0-26.385,4.064-37.385,11.755 - c-6.649,4.648-12.31,10.412-16.771,17.021c-10.339-3.228-20.359-7.381-29.966-12.42c1.519-7.829,1.591-15.906,0.176-23.895 - c-2.342-13.214-8.608-25.228-18.123-34.741c-12.335-12.336-28.737-19.13-46.185-19.13c-4.226,0-8.39,0.396-12.471,1.187 - c-5.04-9.602-9.195-19.618-12.428-29.958c6.615-4.46,12.383-10.119,17.036-16.771c7.699-11.004,11.769-23.939,11.769-37.408 - c0-13.471-4.072-26.41-11.777-37.418c-4.658-6.654-10.432-12.316-17.054-16.776c3.225-10.333,7.372-20.346,12.405-29.946 - c4.096,0.796,8.277,1.196,12.521,1.196c17.446,0,33.849-6.794,46.185-19.13c9.529-9.53,15.799-21.563,18.133-34.799 - c1.411-8.003,1.33-16.093-0.203-23.932C181.455,90.207,191.461,86.057,201.787,82.828 M302.074,64 - C294.971,82.529,277.027,95.69,256,95.69c-21.025,0-38.969-13.161-46.073-31.69c-20.466,4.895-39.692,12.973-57.128,23.688 - c8.068,18.122,4.682,40.104-10.182,54.97c-9.631,9.631-22.25,14.443-34.87,14.443c-6.854,0-13.706-1.419-20.083-4.255 - C76.958,170.284,68.887,189.517,64,209.984c18.51,7.112,31.652,25.049,31.652,46.062c0,21.008-13.133,38.936-31.631,46.054 - c4.898,20.466,12.977,39.692,23.693,57.128c6.36-2.821,13.197-4.232,20.031-4.232c12.621,0,25.238,4.812,34.871,14.443 - c14.841,14.841,18.238,36.781,10.215,54.889c17.438,10.71,36.664,18.783,57.131,23.673c7.127-18.479,25.046-31.596,46.037-31.596 - c20.992,0,38.91,13.115,46.037,31.596c20.468-4.89,39.693-12.964,57.132-23.675c-8.023-18.106-4.626-40.046,10.216-54.887 - c9.629-9.632,22.248-14.444,34.868-14.444c6.836,0,13.67,1.411,20.033,4.233c10.716-17.436,18.794-36.662,23.692-57.128 - c-18.498-7.118-31.63-25.048-31.63-46.054c-0.001-21.013,13.143-38.948,31.651-46.062c-4.887-20.466-12.957-39.7-23.664-57.139 - c-6.375,2.836-13.23,4.254-20.082,4.254c-12.621,0-25.238-4.811-34.871-14.442c-14.863-14.863-18.248-36.846-10.18-54.97 - C341.768,76.973,322.54,68.895,302.074,64L302.074,64z"/> - </g> -</g> -</svg> diff --git a/admin/bower_components/Ionicons/src/ios-gear.svg b/admin/bower_components/Ionicons/src/ios-gear.svg deleted file mode 100644 index 857d91e..0000000 --- a/admin/bower_components/Ionicons/src/ios-gear.svg +++ /dev/null @@ -1,17 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" enable-background="new 0 0 512 512" xml:space="preserve"> -<path d="M416.349,256.046c-0.001-21.013,13.143-38.948,31.651-46.062c-4.887-20.466-12.957-39.7-23.664-57.139 - c-6.375,2.836-13.23,4.254-20.082,4.254c-12.621,0-25.238-4.811-34.871-14.442c-14.863-14.863-18.248-36.846-10.18-54.97 - C341.768,76.973,322.54,68.895,302.074,64C294.971,82.529,277.027,95.69,256,95.69c-21.025,0-38.969-13.161-46.073-31.69 - c-20.466,4.895-39.693,12.973-57.128,23.688c8.068,18.122,4.683,40.104-10.181,54.97c-9.631,9.631-22.25,14.443-34.871,14.443 - c-6.854,0-13.706-1.419-20.083-4.255C76.958,170.284,68.886,189.517,64,209.984c18.509,7.112,31.652,25.049,31.652,46.062 - c0,21.008-13.132,38.936-31.63,46.054c4.898,20.466,12.976,39.692,23.692,57.128c6.361-2.821,13.198-4.232,20.032-4.232 - c12.622,0,25.239,4.812,34.871,14.443c14.841,14.841,18.239,36.781,10.215,54.889c17.438,10.71,36.664,18.783,57.13,23.673 - c7.128-18.479,25.046-31.596,46.038-31.596c20.992,0,38.91,13.115,46.037,31.596c20.468-4.89,39.693-12.964,57.132-23.675 - c-8.023-18.106-4.626-40.046,10.216-54.887c9.629-9.632,22.248-14.444,34.868-14.444c6.836,0,13.67,1.411,20.033,4.233 - c10.716-17.436,18.794-36.662,23.692-57.128C429.48,294.981,416.349,277.052,416.349,256.046z M256.9,335.9c-44.3,0-80-35.9-80-80 - c0-44.101,35.7-80,80-80c44.299,0,80,35.899,80,80C336.9,300,301.199,335.9,256.9,335.9z"/> -</svg> diff --git a/admin/bower_components/Ionicons/src/ios-glasses-outline.svg b/admin/bower_components/Ionicons/src/ios-glasses-outline.svg deleted file mode 100644 index e492b98..0000000 --- a/admin/bower_components/Ionicons/src/ios-glasses-outline.svg +++ /dev/null @@ -1,12 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" style="enable-background:new 0 0 512 512;" xml:space="preserve"> -<path d="M465.4,247c-2.2-22-12.4-43-28.9-58.4c-17.1-15.9-39.3-24.7-62.7-24.7c-41.5,0-77.3,27.4-88.5,67c-7-7-18.5-11.7-29.3-11.7 - c-10.8,0-22.3,4.7-29.3,11.7c-11.2-39.6-47-67-88.5-67c-23.3,0-45.6,8.7-62.7,24.6C59,204,48.8,225,46.6,247H32v18h14.6 - c2.2,22,12.4,43,28.9,58.4c17.1,15.9,39.3,24.7,62.7,24.7c50.8,0,92.1-41.2,92.1-92c0-0.1,0-0.1,0-0.1h0c0-9.9,11.5-21.6,25.7-21.6 - s25.7,11.7,25.7,21.6h0c0,0,0,0,0,0.1c0,50.8,41.3,92,92.1,92c23.3,0,45.6-8.7,62.7-24.7c16.5-15.4,26.7-36.5,28.9-58.5H480v-18 - H465.4z M373.8,333c-42.5,0-77-34.6-77-77c0-42.5,34.6-77,77-77c42.5,0,77,34.6,77,77C450.8,298.5,416.3,333,373.8,333z M138.2,333 - c-42.5,0-77-34.6-77-77c0-42.5,34.6-77,77-77c42.5,0,77,34.6,77,77C215.2,298.5,180.7,333,138.2,333z"/> -</svg> diff --git a/admin/bower_components/Ionicons/src/ios-glasses.svg b/admin/bower_components/Ionicons/src/ios-glasses.svg deleted file mode 100644 index 0bf51ee..0000000 --- a/admin/bower_components/Ionicons/src/ios-glasses.svg +++ /dev/null @@ -1,11 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" style="enable-background:new 0 0 512 512;" xml:space="preserve"> -<path d="M465.4,247c-2.2-22-12.4-43-28.9-58.4c-17.1-15.9-39.3-24.7-62.7-24.7c-41.5,0-77.3,27.4-88.5,67c-7-7-18.5-11.7-29.3-11.7 - c-10.8,0-22.3,4.7-29.3,11.7c-11.2-39.6-47-67-88.5-67c-23.3,0-45.6,8.7-62.7,24.6C59,204,48.8,225,46.6,247H32v18h14.6 - c2.2,22,12.4,43,28.9,58.4c17.1,15.9,39.3,24.7,62.7,24.7c50.8,0,92.1-41.2,92.1-92c0-0.1,0-0.1,0-0.1h0c0-9.9,11.5-21.6,25.7-21.6 - s25.7,11.7,25.7,21.6h0c0,0,0,0,0,0.1c0,50.8,41.3,92,92.1,92c23.3,0,45.6-8.7,62.7-24.7c16.5-15.4,26.7-36.5,28.9-58.5H480v-18 - H465.4z"/> -</svg> diff --git a/admin/bower_components/Ionicons/src/ios-grid-view-outline.svg b/admin/bower_components/Ionicons/src/ios-grid-view-outline.svg deleted file mode 100644 index 86f4b54..0000000 --- a/admin/bower_components/Ionicons/src/ios-grid-view-outline.svg +++ /dev/null @@ -1,8 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" enable-background="new 0 0 512 512" xml:space="preserve"> -<path d="M448,192v-16H336V64h-16v112H192V64h-16v112H64v16h112v128H64v16h112v112h16V336h128v112h16V336h112v-16H336V192H448z - M320,320H192V192h128V320z"/> -</svg> diff --git a/admin/bower_components/Ionicons/src/ios-grid-view.svg b/admin/bower_components/Ionicons/src/ios-grid-view.svg deleted file mode 100644 index e384d4b..0000000 --- a/admin/bower_components/Ionicons/src/ios-grid-view.svg +++ /dev/null @@ -1,11 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" enable-background="new 0 0 512 512" xml:space="preserve"> -<g> - <rect x="192" y="192" width="128" height="128"/> - <path d="M64,64v384h384V64H64z M416,192h-80v128h80v16h-80v80h-16v-80H192v80h-16v-80H96v-16h80V192H96v-16h80V96h16v80h128V96h16 - v80h80V192z"/> -</g> -</svg> diff --git a/admin/bower_components/Ionicons/src/ios-heart-outline.svg b/admin/bower_components/Ionicons/src/ios-heart-outline.svg deleted file mode 100644 index 227163d..0000000 --- a/admin/bower_components/Ionicons/src/ios-heart-outline.svg +++ /dev/null @@ -1,15 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" enable-background="new 0 0 512 512" xml:space="preserve"> -<path d="M359.385,80C319.966,80,277.171,97.599,256,132.8C234.83,97.599,192.034,80,152.615,80C83.647,80,32,123.238,32,195.779 - c0,31.288,12.562,71.924,40.923,105.657c28.359,33.735,45.229,51.7,100.153,88C228,425.738,256,432,256,432s28-6.262,82.924-42.564 - c54.923-36.3,71.794-54.265,100.153-88C467.438,267.703,480,227.067,480,195.779C480,123.238,428.353,80,359.385,80z - M426.83,291.141c-26.852,31.94-42.18,48.895-96.729,84.947c-40.237,26.596-65.252,36.301-74.102,39.233 - c-8.85-2.933-33.864-12.639-74.102-39.233c-54.548-36.052-69.876-53.006-96.729-84.948c-12.065-14.351-21.857-31.274-28.316-48.943 - C51.062,226.355,48,210.304,48,195.779c0-30.284,10.131-55.643,29.297-73.335c9.14-8.437,20.158-14.992,32.752-19.484 - C122.994,98.341,137.315,96,152.615,96c38.018,0,73.217,17.682,89.674,45.046L256,163.844l13.711-22.798 - C286.169,113.682,321.368,96,359.385,96c15.3,0,29.621,2.341,42.566,6.959c12.594,4.493,23.612,11.048,32.752,19.484 - C453.869,140.136,464,165.495,464,195.779c0,14.525-3.062,30.576-8.854,46.418C448.688,259.865,438.896,276.789,426.83,291.141z"/> -</svg> diff --git a/admin/bower_components/Ionicons/src/ios-heart.svg b/admin/bower_components/Ionicons/src/ios-heart.svg deleted file mode 100644 index 73b087a..0000000 --- a/admin/bower_components/Ionicons/src/ios-heart.svg +++ /dev/null @@ -1,9 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" enable-background="new 0 0 512 512" xml:space="preserve"> -<path d="M359.385,80C319.966,80,277.171,97.599,256,132.8C234.83,97.599,192.034,80,152.615,80C83.647,80,32,123.238,32,195.779 - c0,31.288,12.562,71.924,40.923,105.657c28.359,33.735,45.229,51.7,100.153,88C228,425.738,256,432,256,432s28-6.262,82.924-42.564 - c54.923-36.3,71.794-54.265,100.153-88C467.438,267.703,480,227.067,480,195.779C480,123.238,428.353,80,359.385,80z"/> -</svg> diff --git a/admin/bower_components/Ionicons/src/ios-help-empty.svg b/admin/bower_components/Ionicons/src/ios-help-empty.svg deleted file mode 100644 index a1ec8dd..0000000 --- a/admin/bower_components/Ionicons/src/ios-help-empty.svg +++ /dev/null @@ -1,12 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" style="enable-background:new 0 0 512 512;" xml:space="preserve"> -<g> - <path d="M260.3,366c-9.4,0-17-7.5-17-16.9c0-9.3,7.6-16.8,17-16.8c9.4,0,17,7.5,17,16.8C277.3,358.5,269.7,366,260.3,366z - M294.1,250.7c-22.8,22.5-22.2,27.4-23.3,53.3h-19c1.1-28.5,7.5-43.7,30.1-64.5c11-10.3,19.4-22.7,19.4-38.1 - c0-23.6-19.4-39.9-42.6-39.9c-32.4,0-48.5,16.4-47.9,46.4H192c0.3-42,24.4-62.1,67.6-62.1c33,0,60.4,20.4,60.4,54.6 - C320,222.3,309.3,236.6,294.1,250.7z"/> -</g> -</svg> diff --git a/admin/bower_components/Ionicons/src/ios-help-outline.svg b/admin/bower_components/Ionicons/src/ios-help-outline.svg deleted file mode 100644 index 6357438..0000000 --- a/admin/bower_components/Ionicons/src/ios-help-outline.svg +++ /dev/null @@ -1,22 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" style="enable-background:new 0 0 512 512;" xml:space="preserve"> -<g> - <g> - <g> - <path d="M256,48C141.1,48,48,141.1,48,256c0,114.9,93.1,208,208,208c114.9,0,208-93.1,208-208C464,141.1,370.9,48,256,48z - M256,446.7c-105.1,0-190.7-85.5-190.7-190.7c0-105.1,85.5-190.7,190.7-190.7c105.1,0,190.7,85.5,190.7,190.7 - C446.7,361.1,361.1,446.7,256,446.7z"/> - </g> - </g> - <g> - <path d="M259.6,146c-43.2,0-67.3,20.3-67.6,62.2h18.8c-0.6-30.4,15.5-46.5,47.9-46.5c23.2,0,42.6,16.2,42.6,39.8 - c0,15.3-8.3,27.7-19.4,38.1c-22.6,20.8-29,36-30.1,64.5h19c1.1-25.8,0.5-30.7,23.3-53.3c15.2-14.2,25.9-28.3,25.9-50.2 - C320,166.4,292.6,146,259.6,146z"/> - <path d="M260.3,332.3c-9.4,0-17,7.5-17,16.8c0,9.3,7.6,16.9,17,16.9c9.4,0,17-7.5,17-16.9C277.3,339.8,269.7,332.3,260.3,332.3z" - /> - </g> -</g> -</svg> diff --git a/admin/bower_components/Ionicons/src/ios-help.svg b/admin/bower_components/Ionicons/src/ios-help.svg deleted file mode 100644 index acc21ed..0000000 --- a/admin/bower_components/Ionicons/src/ios-help.svg +++ /dev/null @@ -1,12 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" style="enable-background:new 0 0 512 512;" xml:space="preserve"> -<g> - <path d="M256,48C141.1,48,48,141.1,48,256c0,114.9,93.1,208,208,208c114.9,0,208-93.1,208-208C464,141.1,370.9,48,256,48z - M260.3,366c-9.4,0-17-7.5-17-16.9c0-9.3,7.6-16.8,17-16.8c9.4,0,17,7.5,17,16.8C277.3,358.5,269.7,366,260.3,366z M294.1,250.7 - c-22.8,22.5-22.2,27.4-23.3,53.3h-19c1.1-28.5,7.5-43.7,30.1-64.5c11-10.3,19.4-22.7,19.4-38.1c0-23.6-19.4-39.9-42.6-39.9 - c-32.4,0-48.5,16.4-47.9,46.4H192c0.3-42,24.4-62.1,67.6-62.1c33,0,60.4,20.4,60.4,54.6C320,222.3,309.3,236.6,294.1,250.7z"/> -</g> -</svg> diff --git a/admin/bower_components/Ionicons/src/ios-home-outline.svg b/admin/bower_components/Ionicons/src/ios-home-outline.svg deleted file mode 100644 index fdb7071..0000000 --- a/admin/bower_components/Ionicons/src/ios-home-outline.svg +++ /dev/null @@ -1,11 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" enable-background="new 0 0 512 512" xml:space="preserve"> -<g> - <path d="M256,112L96,240v208h112V320h96v128h112V240L256,112z M400,432h-80V304H192v128h-80V247.69l144-115.2l144,115.2V432z"/> - <path d="M256,64l-96,76.8V96H96v95.999l-32,25.499l11.51,11.384L256,84.49l180.49,144.393L448,217.498L256,64z M144,153.599 - l-32,25.6V112h32V153.599z"/> -</g> -</svg> diff --git a/admin/bower_components/Ionicons/src/ios-home.svg b/admin/bower_components/Ionicons/src/ios-home.svg deleted file mode 100644 index 5fb5efb..0000000 --- a/admin/bower_components/Ionicons/src/ios-home.svg +++ /dev/null @@ -1,10 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" enable-background="new 0 0 512 512" xml:space="preserve"> -<g> - <path d="M256,112L96,240v208h112V320h96v128h112V240L256,112z"/> - <path d="M256,64l-96,76.8V96H96v95.999l-32,25.499l11.51,11.384L256,84.49l180.49,144.393L448,217.498L256,64z"/> -</g> -</svg> diff --git a/admin/bower_components/Ionicons/src/ios-infinite-outline.svg b/admin/bower_components/Ionicons/src/ios-infinite-outline.svg deleted file mode 100644 index e79a3be..0000000 --- a/admin/bower_components/Ionicons/src/ios-infinite-outline.svg +++ /dev/null @@ -1,17 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" enable-background="new 0 0 512 512" xml:space="preserve"> -<g> - <path d="M451.229,188.098C432.682,169.967,407.95,160,381.585,160c-26.363,0-51.095,9.967-69.642,28.098l-42.229,41.187 - l13.649,13.447l42.229-41.306c14.933-14.529,34.764-22.573,55.878-22.573c21.113,0,40.946,8.044,55.878,22.573 - c30.797,30.139,30.797,79.13,0,109.148c-14.932,14.529-34.765,22.573-55.878,22.573c-21.114,0-40.945-8.044-55.878-22.573 - L200.071,188.098C181.406,169.967,156.675,160,130.427,160c-26.363,0-51.095,9.967-69.643,28.098 - C41.615,206.809,32.021,231.441,32,256c-0.021,24.611,9.573,49.149,28.784,67.902C79.332,342.032,104.063,352,130.427,352 - c26.365,0,51.095-9.968,69.645-28.098l42.111-41.186l-13.647-13.329l-42.229,41.187c-14.932,14.529-34.764,22.573-55.879,22.573 - c-21.113,0-40.944-8.044-55.876-22.573c-30.799-30.14-30.799-79.13,0-109.148c14.932-14.529,34.763-22.573,55.876-22.573 - c21.115,0,40.947,8.044,55.879,22.573l125.52,122.477C330.49,342.032,355.222,352,381.47,352c26.363,0,51.095-9.968,69.643-28.098 - C470.361,305.23,479.985,280.6,480,256C480.015,231.399,470.42,206.83,451.229,188.098z"/> -</g> -</svg> diff --git a/admin/bower_components/Ionicons/src/ios-infinite.svg b/admin/bower_components/Ionicons/src/ios-infinite.svg deleted file mode 100644 index aae8d1d..0000000 --- a/admin/bower_components/Ionicons/src/ios-infinite.svg +++ /dev/null @@ -1,16 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" enable-background="new 0 0 512 512" xml:space="preserve"> -<path d="M456.821,182.377C436.782,162.788,410.062,152,381.585,152c-28.477,0-55.195,10.788-75.21,30.354l-39.106,37.885 - l25.06,24.689l38.843-37.769c13.458-13.095,31.321-20.307,50.299-20.307c18.979,0,36.841,7.212,50.282,20.291 - c13.363,13.077,20.712,30.468,20.693,48.97c-0.019,18.443-7.363,35.75-20.677,48.728c-13.458,13.095-31.32,20.307-50.299,20.307 - c-18.978,0-36.841-7.212-50.291-20.299L205.646,182.359C185.491,162.782,158.778,152,130.427,152 - c-28.477,0-55.195,10.788-75.23,30.373C35.103,201.986,24.023,228.132,24,255.993c-0.024,27.822,11.055,53.973,31.192,73.63 - C75.232,349.212,101.951,360,130.427,360c28.475,0,55.194-10.788,75.223-30.363l38.994-37.909l-25.088-24.502l-38.829,37.615 - c-13.458,13.095-31.321,20.307-50.3,20.307c-18.977,0-36.839-7.212-50.28-20.291c-13.364-13.077-20.714-30.469-20.694-48.971 - c0.019-18.443,7.363-35.749,20.678-48.727c13.458-13.095,31.32-20.307,50.297-20.307c18.979,0,36.842,7.212,50.292,20.299 - l125.532,122.489C326.406,349.218,353.119,360,381.47,360c28.476,0,55.194-10.788,75.213-30.355 - c20.179-19.573,31.301-45.727,31.317-73.64C488.017,228.167,476.942,202.018,456.821,182.377z"/> -</svg> diff --git a/admin/bower_components/Ionicons/src/ios-information-empty.svg b/admin/bower_components/Ionicons/src/ios-information-empty.svg deleted file mode 100644 index 387abc4..0000000 --- a/admin/bower_components/Ionicons/src/ios-information-empty.svg +++ /dev/null @@ -1,12 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" style="enable-background:new 0 0 512 512;" xml:space="preserve"> -<g> - <g> - <circle cx="251.5" cy="172" r="20"/> - <polygon points="272,344 272,216 224,216 224,224 240,224 240,344 224,344 224,352 288,352 288,344 "/> - </g> -</g> -</svg> diff --git a/admin/bower_components/Ionicons/src/ios-information-outline.svg b/admin/bower_components/Ionicons/src/ios-information-outline.svg deleted file mode 100644 index aa7cc9c..0000000 --- a/admin/bower_components/Ionicons/src/ios-information-outline.svg +++ /dev/null @@ -1,17 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" style="enable-background:new 0 0 512 512;" xml:space="preserve"> -<g> - <g> - <circle cx="251.5" cy="172" r="20"/> - <polygon points="272,344 272,216 224,216 224,224 240,224 240,344 224,344 224,352 288,352 288,344 "/> - </g> - <g> - <path d="M256,48C141.1,48,48,141.1,48,256c0,114.9,93.1,208,208,208c114.9,0,208-93.1,208-208C464,141.1,370.9,48,256,48z - M256,446.7c-105.1,0-190.7-85.5-190.7-190.7c0-105.1,85.5-190.7,190.7-190.7c105.1,0,190.7,85.5,190.7,190.7 - C446.7,361.1,361.1,446.7,256,446.7z"/> - </g> -</g> -</svg> diff --git a/admin/bower_components/Ionicons/src/ios-information.svg b/admin/bower_components/Ionicons/src/ios-information.svg deleted file mode 100644 index 2ef04fc..0000000 --- a/admin/bower_components/Ionicons/src/ios-information.svg +++ /dev/null @@ -1,11 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" style="enable-background:new 0 0 512 512;" xml:space="preserve"> -<g> - <path d="M256,48C141.1,48,48,141.1,48,256c0,114.9,93.1,208,208,208c114.9,0,208-93.1,208-208C464,141.1,370.9,48,256,48z - M251.5,152c11.1,0,20,9,20,20s-9,20-20,20c-11,0-20-9-20-20S240.4,152,251.5,152z M288,352h-64v-8h16V224h-16v-8h48v128h16V352z" - /> -</g> -</svg> diff --git a/admin/bower_components/Ionicons/src/ios-ionic-outline.svg b/admin/bower_components/Ionicons/src/ios-ionic-outline.svg deleted file mode 100644 index 694a603..0000000 --- a/admin/bower_components/Ionicons/src/ios-ionic-outline.svg +++ /dev/null @@ -1,18 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" style="enable-background:new 0 0 512 512;" xml:space="preserve"> -<g> - <path d="M425.5,134.8c4.7-5.9,7.5-13.5,7.5-21.6c0-19.2-15.6-34.9-34.8-34.9c-8.2,0-15.7,2.8-21.6,7.5c-34-24.2-75-37.8-119.9-37.8 - C141.8,48,48,140.5,48,255.6C48,370.7,141.7,464,256.6,464C371.5,464,464,370.7,464,255.6C464,210.6,449.7,168.9,425.5,134.8z - M398,91.3c12.2,0,22,9.9,22,22c0,12.2-9.9,22-22,22c-12.2,0-22-9.9-22-22C376,101.2,385.8,91.3,398,91.3z M391.8,391.7 - c-17.6,17.6-38.2,31.6-61.1,41.3c-23.7,10-48.2,15.2-74.2,15.2c-25.9,0-51.7-5.1-75.4-15.2c-22.9-9.7-43.4-23.5-61.1-41.3 - c-17.6-17.6-31.5-38.3-41.2-61.2c-10-23.7-15.1-48.9-15.1-74.9c0-25.9,5.1-51.2,15.1-74.9c9.7-22.9,23.5-43.5,41.2-61.2 - s38.2-31.6,61.1-41.3c23.7-10,49.4-14.1,75.4-14.1c25.9,0,50.5,4,74.2,14.1c12.7,5.4,24.7,12.1,35.9,20c-2.1,4.5-3.3,9.5-3.3,14.9 - c0,19.2,15.6,34.9,34.8,34.9c5.3,0,10.3-1.2,14.9-3.3c7.9,11.2,14.6,23.2,20,36c10,23.7,15.1,48.9,15.1,74.9 - c0,25.9-5.1,51.2-15.1,74.9C423.3,353.4,409.5,374,391.8,391.7z"/> - <path d="M256.5,160.1c-53,0-96,42.8-96,95.9s42.9,96.1,96,96.1c53,0,96-43,96-96.1S309.5,160.1,256.5,160.1z M256.5,335.8 - c-44.1,0-79.7-35.8-79.7-79.8c0-44.1,35.6-79.6,79.7-79.6s79.7,35.6,79.7,79.6C336.2,300.1,300.5,335.8,256.5,335.8z"/> -</g> -</svg> diff --git a/admin/bower_components/Ionicons/src/ios-keypad-outline.svg b/admin/bower_components/Ionicons/src/ios-keypad-outline.svg deleted file mode 100644 index d1dbe7f..0000000 --- a/admin/bower_components/Ionicons/src/ios-keypad-outline.svg +++ /dev/null @@ -1,28 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" style="enable-background:new 0 0 512 512;" xml:space="preserve"> -<g> - <path d="M394.6,341.2c-29.5,0-53.4,23.9-53.4,53.4s23.9,53.4,53.4,53.4c29.5,0,53.4-23.9,53.4-53.4S424.1,341.2,394.6,341.2z - M394.6,432c-20.6,0-37.4-16.8-37.4-37.4c0-20.6,16.8-37.4,37.4-37.4s37.4,16.8,37.4,37.4C432,415.2,415.2,432,394.6,432z"/> - <path d="M256,341.2c-29.5,0-53.4,23.9-53.4,53.4S226.5,448,256,448c29.5,0,53.4-23.9,53.4-53.4S285.5,341.2,256,341.2z M256,432 - c-20.6,0-37.4-16.8-37.4-37.4c0-20.6,16.8-37.4,37.4-37.4s37.4,16.8,37.4,37.4C293.4,415.2,276.6,432,256,432z"/> - <path d="M117.4,341.2c-29.5,0-53.4,23.9-53.4,53.4S87.9,448,117.4,448c29.5,0,53.4-23.9,53.4-53.4S146.9,341.2,117.4,341.2z - M117.4,432C96.8,432,80,415.2,80,394.6c0-20.6,16.8-37.4,37.4-37.4s37.4,16.8,37.4,37.4C154.8,415.2,138.1,432,117.4,432z"/> - <path d="M394.6,202.6c-29.5,0-53.4,23.9-53.4,53.4s23.9,53.4,53.4,53.4c29.5,0,53.4-23.9,53.4-53.4S424.1,202.6,394.6,202.6z - M394.6,293.4c-20.6,0-37.4-16.8-37.4-37.4c0-20.6,16.8-37.4,37.4-37.4S432,235.4,432,256C432,276.6,415.2,293.4,394.6,293.4z"/> - <path d="M256,202.6c-29.5,0-53.4,23.9-53.4,53.4s23.9,53.4,53.4,53.4c29.5,0,53.4-23.9,53.4-53.4S285.5,202.6,256,202.6z - M256,293.4c-20.6,0-37.4-16.8-37.4-37.4c0-20.6,16.8-37.4,37.4-37.4s37.4,16.8,37.4,37.4C293.4,276.6,276.6,293.4,256,293.4z"/> - <path d="M117.4,202.6C87.9,202.6,64,226.5,64,256s23.9,53.4,53.4,53.4c29.5,0,53.4-23.9,53.4-53.4S146.9,202.6,117.4,202.6z - M117.4,293.4C96.8,293.4,80,276.6,80,256c0-20.6,16.8-37.4,37.4-37.4s37.4,16.8,37.4,37.4C154.8,276.6,138.1,293.4,117.4,293.4z" - /> - <path d="M394.6,170.8c29.5,0,53.4-23.9,53.4-53.4c0-29.5-23.9-53.4-53.4-53.4c-29.5,0-53.4,23.9-53.4,53.4 - C341.2,146.9,365.1,170.8,394.6,170.8z M394.6,80c20.6,0,37.4,16.8,37.4,37.4c0,20.6-16.8,37.4-37.4,37.4s-37.4-16.8-37.4-37.4 - C357.2,96.8,373.9,80,394.6,80z"/> - <path d="M256,64c-29.5,0-53.4,23.9-53.4,53.4c0,29.5,23.9,53.4,53.4,53.4c29.5,0,53.4-23.9,53.4-53.4C309.4,87.9,285.5,64,256,64z - M256,154.8c-20.6,0-37.4-16.8-37.4-37.4c0-20.6,16.8-37.4,37.4-37.4s37.4,16.8,37.4,37.4C293.4,138,276.6,154.8,256,154.8z"/> - <path d="M117.4,64C87.9,64,64,87.9,64,117.4c0,29.5,23.9,53.4,53.4,53.4c29.5,0,53.4-23.9,53.4-53.4C170.8,87.9,146.9,64,117.4,64z - M117.4,154.8C96.8,154.8,80,138,80,117.4C80,96.8,96.8,80,117.4,80s37.4,16.8,37.4,37.4C154.8,138,138.1,154.8,117.4,154.8z"/> -</g> -</svg> diff --git a/admin/bower_components/Ionicons/src/ios-keypad.svg b/admin/bower_components/Ionicons/src/ios-keypad.svg deleted file mode 100644 index 9eae5d1..0000000 --- a/admin/bower_components/Ionicons/src/ios-keypad.svg +++ /dev/null @@ -1,20 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" style="enable-background:new 0 0 512 512;" xml:space="preserve"> -<g> - <path d="M394.6,341.2c-29.5,0-53.4,23.9-53.4,53.4s23.9,53.4,53.4,53.4c29.5,0,53.4-23.9,53.4-53.4S424.1,341.2,394.6,341.2z"/> - <path d="M256,341.2c-29.5,0-53.4,23.9-53.4,53.4S226.5,448,256,448c29.5,0,53.4-23.9,53.4-53.4S285.5,341.2,256,341.2z"/> - <path d="M117.4,341.2c-29.5,0-53.4,23.9-53.4,53.4S87.9,448,117.4,448c29.5,0,53.4-23.9,53.4-53.4S146.9,341.2,117.4,341.2z"/> - <path d="M394.6,202.6c-29.5,0-53.4,23.9-53.4,53.4s23.9,53.4,53.4,53.4c29.5,0,53.4-23.9,53.4-53.4S424.1,202.6,394.6,202.6z"/> - <path d="M256,202.6c-29.5,0-53.4,23.9-53.4,53.4s23.9,53.4,53.4,53.4c29.5,0,53.4-23.9,53.4-53.4S285.5,202.6,256,202.6z"/> - <path d="M117.4,202.6C87.9,202.6,64,226.5,64,256s23.9,53.4,53.4,53.4c29.5,0,53.4-23.9,53.4-53.4S146.9,202.6,117.4,202.6z"/> - <path d="M394.6,170.8c29.5,0,53.4-23.9,53.4-53.4c0-29.5-23.9-53.4-53.4-53.4c-29.5,0-53.4,23.9-53.4,53.4 - C341.2,146.9,365.1,170.8,394.6,170.8z"/> - <path d="M256,64c-29.5,0-53.4,23.9-53.4,53.4c0,29.5,23.9,53.4,53.4,53.4c29.5,0,53.4-23.9,53.4-53.4C309.4,87.9,285.5,64,256,64z" - /> - <path d="M117.4,64C87.9,64,64,87.9,64,117.4c0,29.5,23.9,53.4,53.4,53.4c29.5,0,53.4-23.9,53.4-53.4C170.8,87.9,146.9,64,117.4,64z - "/> -</g> -</svg> diff --git a/admin/bower_components/Ionicons/src/ios-lightbulb-outline.svg b/admin/bower_components/Ionicons/src/ios-lightbulb-outline.svg deleted file mode 100644 index 8390f3e..0000000 --- a/admin/bower_components/Ionicons/src/ios-lightbulb-outline.svg +++ /dev/null @@ -1,17 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" style="enable-background:new 0 0 512 512;" xml:space="preserve"> -<g> - <path d="M400,172.9C400,95.1,333.9,32,256,32c-77.9,0-144,63.1-144,141c0,31,13.2,59,30.2,83h-0.3c10.9,15,21.4,27.7,31.5,45 - c22,37.8,18.6,74.3,18.7,81.6v1.4h128v-1.4c0-8.9-3.6-43.8,18.4-81.6c10.1-17.3,20.6-30,31.5-45h-0.1C386.8,232,400,204,400,172.9z - M351,254.4c-0.6,0.8-1.1,1.5-1.7,2.3c-8.1,10.9-16.5,22.2-24.7,36.1c-17.3,29.7-20.4,57.9-20.8,75.1H288V256l32-64h-16.6L272,256 - v112h-32V256l-31.4-64H192l32,64v112h-15.9c-0.5-17.2-3.9-45.7-20.9-75c-4.5-7.7-9.1-15-13.7-21h0.2l-18.6-25.6 - c-15.8-21.6-27.1-47.1-27.1-73.6c0-33.4,16-64.8,39.6-88.4s55-36.7,88.4-36.7c33.4,0,64.8,13.1,88.4,36.7 - c23.6,23.6,39.6,55,39.6,88.4c0,26.5-11.3,51.9-27.1,73.5L351,254.4z"/> - <rect x="224" y="464" width="64" height="16"/> - <rect x="208" y="432" width="96" height="16"/> - <rect x="208" y="400" width="96" height="16"/> -</g> -</svg> diff --git a/admin/bower_components/Ionicons/src/ios-lightbulb.svg b/admin/bower_components/Ionicons/src/ios-lightbulb.svg deleted file mode 100644 index 31584fa..0000000 --- a/admin/bower_components/Ionicons/src/ios-lightbulb.svg +++ /dev/null @@ -1,16 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" style="enable-background:new 0 0 512 512;" xml:space="preserve"> -<g> - <g> - <path d="M400,172.9C400,95.1,333.9,32,256,32c-77.9,0-144,63.1-144,141c0,31,13.2,59,30.2,83h-0.3c10.9,15,21.4,27.7,31.5,45 - c22,37.8,18.6,74.3,18.7,81.6v1.4h32V256l-32-64h16.6l31.4,64v128h32V256l31.4-64H320l-32,64v128h32v-1.4 - c0-8.9-3.6-43.8,18.4-81.6c10.1-17.3,20.6-30,31.5-45h-0.1C386.8,232,400,204,400,172.9z"/> - </g> - <rect x="224" y="464" width="64" height="16"/> - <rect x="208" y="432" width="96" height="16"/> - <rect x="208" y="400" width="96" height="16"/> -</g> -</svg> diff --git a/admin/bower_components/Ionicons/src/ios-list-outline.svg b/admin/bower_components/Ionicons/src/ios-list-outline.svg deleted file mode 100644 index 38049cc..0000000 --- a/admin/bower_components/Ionicons/src/ios-list-outline.svg +++ /dev/null @@ -1,23 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" enable-background="new 0 0 512 512" xml:space="preserve"> -<g> - <g> - <path d="M432,80v352H80V80H432 M448,64H64v384h384V64L448,64z"/> - <g> - <rect x="192" y="152" width="192" height="16"/> - </g> - <g> - <rect x="192" y="248" width="192" height="16"/> - </g> - <g> - <rect x="192" y="344" width="192" height="16"/> - </g> - </g> - <circle cx="144" cy="160" r="16"/> - <circle cx="144" cy="256" r="16"/> - <circle cx="144" cy="352" r="16"/> -</g> -</svg> diff --git a/admin/bower_components/Ionicons/src/ios-list.svg b/admin/bower_components/Ionicons/src/ios-list.svg deleted file mode 100644 index ba40a53..0000000 --- a/admin/bower_components/Ionicons/src/ios-list.svg +++ /dev/null @@ -1,11 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" enable-background="new 0 0 512 512" xml:space="preserve"> -<g> - <path d="M64,64v384h384V64H64z M144,368c-8.836,0-16-7.164-16-16s7.164-16,16-16s16,7.164,16,16S152.836,368,144,368z M144,272 - c-8.836,0-16-7.164-16-16s7.164-16,16-16s16,7.164,16,16S152.836,272,144,272z M144,176c-8.836,0-16-7.164-16-16s7.164-16,16-16 - s16,7.164,16,16S152.836,176,144,176z M384,360H192v-16h192V360z M384,264H192v-16h192V264z M384,168H192v-16h192V168z"/> -</g> -</svg> diff --git a/admin/bower_components/Ionicons/src/ios-location-outline.svg b/admin/bower_components/Ionicons/src/ios-location-outline.svg deleted file mode 100644 index 9875107..0000000 --- a/admin/bower_components/Ionicons/src/ios-location-outline.svg +++ /dev/null @@ -1,14 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" enable-background="new 0 0 512 512" xml:space="preserve"> -<g> - <path d="M256,48c34.19,0,66.334,13.314,90.51,37.49S384,141.81,384,176c0,42.92-24.092,107.127-69.67,185.68 - c-22.279,38.396-44.771,71.634-58.332,90.931c-13.518-19.232-35.912-52.327-58.161-90.645C152.149,283.281,128,218.976,128,176 - c0-34.19,13.314-66.334,37.49-90.51S221.81,48,256,48 M256,32c-79.529,0-144,64.471-144,144c0,112,144,304,144,304s144-192,144-304 - C400,96.471,335.529,32,256,32L256,32z"/> - <path d="M256,112c-35.3,0-64,28.7-64,64s28.7,64,64,64s64-28.7,64-64S291.3,112,256,112z M256,222.9c-25.9,0-46.9-21-46.9-46.9 - s21-46.9,46.9-46.9s46.9,21,46.9,46.9S281.9,222.9,256,222.9z"/> -</g> -</svg> diff --git a/admin/bower_components/Ionicons/src/ios-location.svg b/admin/bower_components/Ionicons/src/ios-location.svg deleted file mode 100644 index 578dea0..0000000 --- a/admin/bower_components/Ionicons/src/ios-location.svg +++ /dev/null @@ -1,8 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" enable-background="new 0 0 512 512" xml:space="preserve"> -<path d="M256,32c-79.529,0-144,64.471-144,144c0,112,144,304,144,304s144-192,144-304C400,96.471,335.529,32,256,32z M256,222.9 - c-25.9,0-46.9-21-46.9-46.9s21-46.9,46.9-46.9s46.9,21,46.9,46.9S281.9,222.9,256,222.9z"/> -</svg> diff --git a/admin/bower_components/Ionicons/src/ios-locked-outline.svg b/admin/bower_components/Ionicons/src/ios-locked-outline.svg deleted file mode 100644 index 8c95125..0000000 --- a/admin/bower_components/Ionicons/src/ios-locked-outline.svg +++ /dev/null @@ -1,14 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" enable-background="new 0 0 512 512" xml:space="preserve"> -<g> - <g> - <path d="M360,224v-72c0-57.43-46.562-104-103.984-104C198.562,48,152,94.57,152,152v72H96v240h320V224H360z M168,152 - c0-48.523,39.484-88,88.016-88C304.531,64,344,103.477,344,152v72H168V152z M400,448H112V240h288V448z"/> - </g> - <path d="M256,288c-17.673,0-32,14.327-32,32c0,14.91,10.198,27.439,24,30.992V384h16v-33.008c13.802-3.553,24-16.082,24-30.992 - C288,302.327,273.673,288,256,288z M256,336c-8.822,0-16-7.178-16-16s7.178-16,16-16s16,7.178,16,16S264.822,336,256,336z"/> -</g> -</svg> diff --git a/admin/bower_components/Ionicons/src/ios-locked.svg b/admin/bower_components/Ionicons/src/ios-locked.svg deleted file mode 100644 index 621572f..0000000 --- a/admin/bower_components/Ionicons/src/ios-locked.svg +++ /dev/null @@ -1,12 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" enable-background="new 0 0 512 512" xml:space="preserve"> -<g> - <path d="M360,224v-72c0-57.43-46.562-104-103.984-104C198.562,48,152,94.57,152,152v72H96v240h320V224H360z M264,350.992V384h-16 - v-33.008c-13.802-3.553-24-16.082-24-30.992c0-17.673,14.327-32,32-32s32,14.327,32,32C288,334.91,277.802,347.439,264,350.992z - M344,224H168v-72c0-48.523,39.484-88,88.016-88C304.531,64,344,103.477,344,152V224z"/> - <path d="M256,304c-8.822,0-16,7.178-16,16s7.178,16,16,16s16-7.178,16-16S264.822,304,256,304z"/> -</g> -</svg> diff --git a/admin/bower_components/Ionicons/src/ios-loop-strong.svg b/admin/bower_components/Ionicons/src/ios-loop-strong.svg deleted file mode 100644 index 9edcdfa..0000000 --- a/admin/bower_components/Ionicons/src/ios-loop-strong.svg +++ /dev/null @@ -1,18 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" enable-background="new 0 0 512 512" xml:space="preserve"> -<g> - <g> - <path d="M256,48c-75.033,0-144.531,40.658-181.373,106.107l-1.963,3.485l20.915,11.771l1.962-3.485 - C128.138,107.973,189.621,72,256,72c101.458,0,184,82.542,184,184c0,12.509-1.262,25.007-3.749,37.147l-0.803,3.918l23.511,4.819 - l0.804-3.919C462.574,284.244,464,270.125,464,256C464,141.309,370.691,48,256,48z"/> - <path d="M416.459,346.119C383.862,404.027,322.379,440,256,440c-101.458,0-184-82.542-184-184c0-12.512,1.262-25.011,3.75-37.15 - l0.803-3.918l-23.511-4.819l-0.804,3.918C49.426,227.75,48,241.87,48,256c0,114.691,93.309,208,208,208 - c75.033,0,144.531-40.658,181.373-106.109l1.963-3.485l-20.915-11.771L416.459,346.119z"/> - </g> - <polygon points="384,256 448,320 512,256 "/> - <polygon points="0,256 64,192 128,256 "/> -</g> -</svg> diff --git a/admin/bower_components/Ionicons/src/ios-loop.svg b/admin/bower_components/Ionicons/src/ios-loop.svg deleted file mode 100644 index 4b6dcdb..0000000 --- a/admin/bower_components/Ionicons/src/ios-loop.svg +++ /dev/null @@ -1,22 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" enable-background="new 0 0 512 512" xml:space="preserve"> -<g> - <polygon points="489.373,256 448,297.373 405.627,256 394.813,266.813 448,320 500.687,267.313 "/> - <g> - <path d="M459.994,255.509c-0.002-0.577,0.013-1.157,0.007-1.733l-0.029-0.003C458.771,142.311,367.742,52,256,52 - c-73.59,0-141.753,39.878-177.888,104.071l13.943,7.848C125.359,104.754,188.18,68,256,68 - c103.273,0,187.355,83.708,187.985,186.836c0.038,6.882-0.281,13.83-1.017,20.831l15.912,1.674 - c0.755-7.168,1.105-14.286,1.111-21.341H460C460,255.836,459.994,255.673,459.994,255.509z"/> - <path d="M419.944,348.081C386.641,407.246,323.82,444,256,444c-103.475,0-187.688-84.032-187.993-187.437 - c-0.015-6.686,0.31-13.434,1.024-20.23l-15.912-1.674c-0.754,7.168-1.104,14.286-1.108,21.341H52c0,0.472,0.015,0.939,0.018,1.41 - c0.006,0.975-0.006,1.952,0.015,2.924l0.022-0.003C54.369,370.825,144.962,460,256,460c73.59,0,141.753-39.878,177.888-104.071 - L419.944,348.081z"/> - <g> - <polygon points="64,192 11.313,244.687 22.627,256 64,214.627 105.373,256 116.687,244.687 "/> - </g> - </g> -</g> -</svg> diff --git a/admin/bower_components/Ionicons/src/ios-medical-outline.svg b/admin/bower_components/Ionicons/src/ios-medical-outline.svg deleted file mode 100644 index 831a19d..0000000 --- a/admin/bower_components/Ionicons/src/ios-medical-outline.svg +++ /dev/null @@ -1,10 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" enable-background="new 0 0 512 512" xml:space="preserve"> -<path d="M438,187.713l-31.927-55.426L288,200.574V64h-64v136.574l-118.073-68.287l-31.938,55.426L192.092,256L73.998,324.287 - l31.928,55.426L224,311.426V448h64V311.426l118.072,68.287l31.939-55.426L319.908,256L438,187.713z M416.176,330.125l-15.963,27.866 - L272,284v148h-32V284l-128.213,74l-15.969-27.785l128.228-74.197L95.822,181.861l15.964-27.859L240,228V80h32v148l128.213-74 - l15.969,27.785l-128.228,74.179L416.176,330.125z"/> -</svg> diff --git a/admin/bower_components/Ionicons/src/ios-medical.svg b/admin/bower_components/Ionicons/src/ios-medical.svg deleted file mode 100644 index f713d86..0000000 --- a/admin/bower_components/Ionicons/src/ios-medical.svg +++ /dev/null @@ -1,8 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" enable-background="new 0 0 512 512" xml:space="preserve"> -<path d="M438,187.713l-31.927-55.426L288,200.574V64h-64v136.574l-118.073-68.287l-31.938,55.426L192.092,256L73.998,324.287 - l31.928,55.426L224,311.426V448h64V311.426l118.072,68.287l31.939-55.426L319.908,256L438,187.713z"/> -</svg> diff --git a/admin/bower_components/Ionicons/src/ios-medkit-outline.svg b/admin/bower_components/Ionicons/src/ios-medkit-outline.svg deleted file mode 100644 index 40c5851..0000000 --- a/admin/bower_components/Ionicons/src/ios-medkit-outline.svg +++ /dev/null @@ -1,14 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" style="enable-background:new 0 0 512 512;" xml:space="preserve"> -<g> - <g> - <path d="M272,208v48v16h16h48v32h-48h-16v16v48h-32v-48v-16h-16h-48v-32h48h16v-16v-48H272 M288,192h-64v64h-64v64h64v64h64v-64 - h64v-64h-64V192L288,192z"/> - </g> - <path d="M336,128V96c-0.5-18.2-13.6-32-32.2-32h-99.1C186.1,64,176,77.7,176,96v32H48v320h416V128H336z M192,98.1 - c0-10.2,2.9-18.1,13.7-18.1h97.1c10.4,0,17.2,7.7,17.2,18.1V128H192V98.1z M448,432H64V144h384V432z"/> -</g> -</svg> diff --git a/admin/bower_components/Ionicons/src/ios-medkit.svg b/admin/bower_components/Ionicons/src/ios-medkit.svg deleted file mode 100644 index 4eb5d94..0000000 --- a/admin/bower_components/Ionicons/src/ios-medkit.svg +++ /dev/null @@ -1,13 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" style="enable-background:new 0 0 512 512;" xml:space="preserve"> -<g> - <polygon points="272,272 272,256 272,208 240,208 240,256 240,272 224,272 176,272 176,304 224,304 240,304 240,320 240,368 - 272,368 272,320 272,304 288,304 336,304 336,272 288,272 "/> - <path d="M336,128V96c-0.5-18.2-13.6-32-32.2-32h-99.1C186.1,64,176,77.7,176,96v32H48v320h416V128H336z M192,98.1 - c0-10.2,2.9-18.1,13.7-18.1h97.1c10.4,0,17.2,7.7,17.2,18.1V128H192V98.1z M352,320h-64v64h-64v-64h-64v-64h64v-64h64v64h64V320z" - /> -</g> -</svg> diff --git a/admin/bower_components/Ionicons/src/ios-mic-off.svg b/admin/bower_components/Ionicons/src/ios-mic-off.svg deleted file mode 100644 index da69e6c..0000000 --- a/admin/bower_components/Ionicons/src/ios-mic-off.svg +++ /dev/null @@ -1,14 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" style="enable-background:new 0 0 512 512;" xml:space="preserve"> -<g> - <rect x="264.2" y="1.1" transform="matrix(0.8629 -0.5053 0.5053 0.8629 -92.0515 172.66)" width="16" height="509.8"/> - <path d="M256.2,353.4c12.3,0,23.8-2.9,34.2-8.2L177,152.4V270C177,316,212.4,353.4,256.2,353.4z"/> - <path d="M335,270V115.5c0-46-35.2-83.5-79-83.5c-25.4,0-47.8,12.6-62.3,32.2l136.9,233.3C333.5,288.9,335,279.6,335,270z"/> - <path d="M384,271.7V192h-17v79.7c0,21.5-6.2,41.6-17.1,58.5l9.9,17C375.1,326,384,299.9,384,271.7z"/> - <path d="M267,399.2c17-1.2,33-5.8,47.3-13l-9.4-16.1c-14.5,7-30.7,10.9-47.7,10.9c-60.3,0-110.1-49-110.1-109.1V192h-19v79.7 - c0,67.2,53,122.6,120,127.4V462h-73v18h161v-18h-69V399.2z"/> -</g> -</svg> diff --git a/admin/bower_components/Ionicons/src/ios-mic-outline.svg b/admin/bower_components/Ionicons/src/ios-mic-outline.svg deleted file mode 100644 index 10f664b..0000000 --- a/admin/bower_components/Ionicons/src/ios-mic-outline.svg +++ /dev/null @@ -1,12 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" style="enable-background:new 0 0 512 512;" xml:space="preserve"> -<g> - <path d="M256,32c-43.7,0-79,37.5-79,83.5V270c0,46,35.3,83.5,79,83.5c43.7,0,79-37.5,79-83.5V115.5C335,69.5,299.7,32,256,32z - M319,270c0,37.2-28.3,67.5-63,67.5c-34.7,0-63-30.3-63-67.5V115.5c0-37.2,28.3-67.5,63-67.5c34.7,0,63,30.3,63,67.5V270z"/> - <path d="M367,192v79.7c0,60.2-49.8,109.2-110,109.2c-60.2,0-110-49-110-109.2V192h-19v79.7c0,67.2,53,122.6,120,127.5V462h-73v18 - h161v-18h-69v-62.8c66-4.9,117-60.3,117-127.5V192H367z"/> -</g> -</svg> diff --git a/admin/bower_components/Ionicons/src/ios-mic.svg b/admin/bower_components/Ionicons/src/ios-mic.svg deleted file mode 100644 index cf73a7b..0000000 --- a/admin/bower_components/Ionicons/src/ios-mic.svg +++ /dev/null @@ -1,12 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" style="enable-background:new 0 0 512 512;" xml:space="preserve"> -<g> - <path d="M256,353.5c43.7,0,79-37.5,79-83.5V115.5c0-46-35.3-83.5-79-83.5c-43.7,0-79,37.5-79,83.5V270 - C177,316,212.3,353.5,256,353.5z"/> - <path d="M367,192v79.7c0,60.2-49.8,109.2-110,109.2c-60.2,0-110-49-110-109.2V192h-19v79.7c0,67.2,53,122.6,120,127.5V462h-73v18 - h161v-18h-69v-62.8c66-4.9,117-60.3,117-127.5V192H367z"/> -</g> -</svg> diff --git a/admin/bower_components/Ionicons/src/ios-minus-empty.svg b/admin/bower_components/Ionicons/src/ios-minus-empty.svg deleted file mode 100644 index 7c294f8..0000000 --- a/admin/bower_components/Ionicons/src/ios-minus-empty.svg +++ /dev/null @@ -1,9 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" style="enable-background:new 0 0 512 512;" xml:space="preserve"> -<g> - <path d="M384,265H128v-17h256V265z"/> -</g> -</svg> diff --git a/admin/bower_components/Ionicons/src/ios-minus-outline.svg b/admin/bower_components/Ionicons/src/ios-minus-outline.svg deleted file mode 100644 index 668b404..0000000 --- a/admin/bower_components/Ionicons/src/ios-minus-outline.svg +++ /dev/null @@ -1,16 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" style="enable-background:new 0 0 512 512;" xml:space="preserve"> -<g> - <g> - <g> - <path d="M256,48C141.1,48,48,141.1,48,256s93.1,208,208,208c114.9,0,208-93.1,208-208S370.9,48,256,48z M256,446.7 - c-105.1,0-190.7-85.5-190.7-190.7c0-105.1,85.5-190.7,190.7-190.7c105.1,0,190.7,85.5,190.7,190.7 - C446.7,361.1,361.1,446.7,256,446.7z"/> - </g> - </g> - <rect x="128" y="248" width="256" height="17"/> -</g> -</svg> diff --git a/admin/bower_components/Ionicons/src/ios-minus.svg b/admin/bower_components/Ionicons/src/ios-minus.svg deleted file mode 100644 index 077900d..0000000 --- a/admin/bower_components/Ionicons/src/ios-minus.svg +++ /dev/null @@ -1,10 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" style="enable-background:new 0 0 512 512;" xml:space="preserve"> -<g> - <path d="M256,48C141.1,48,48,141.1,48,256s93.1,208,208,208c114.9,0,208-93.1,208-208S370.9,48,256,48z M384,265H128v-17h256V265z" - /> -</g> -</svg> diff --git a/admin/bower_components/Ionicons/src/ios-monitor-outline.svg b/admin/bower_components/Ionicons/src/ios-monitor-outline.svg deleted file mode 100644 index 386e94f..0000000 --- a/admin/bower_components/Ionicons/src/ios-monitor-outline.svg +++ /dev/null @@ -1,7 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" style="enable-background:new 0 0 512 512;" xml:space="preserve"> -<path d="M496,384V96H16v288h175v16h-64v16h257v-16h-64v-16H496z M32,112h448v256H32V112z"/> -</svg> diff --git a/admin/bower_components/Ionicons/src/ios-monitor.svg b/admin/bower_components/Ionicons/src/ios-monitor.svg deleted file mode 100644 index 9bd65ed..0000000 --- a/admin/bower_components/Ionicons/src/ios-monitor.svg +++ /dev/null @@ -1,10 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" style="enable-background:new 0 0 512 512;" xml:space="preserve"> -<path d="M496,384V96H16v288h175v16h-64v16h257v-16h-64v-16H496z M32,112h448v256H32V112z"/> -<g> - <rect x="48" y="128" width="416" height="224"/> -</g> -</svg> diff --git a/admin/bower_components/Ionicons/src/ios-moon-outline.svg b/admin/bower_components/Ionicons/src/ios-moon-outline.svg deleted file mode 100644 index 5b8e1de..0000000 --- a/admin/bower_components/Ionicons/src/ios-moon-outline.svg +++ /dev/null @@ -1,15 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" style="enable-background:new 0 0 512 512;" xml:space="preserve"> -<g> - <g> - <path d="M343.1,315c-1.8,0.1-3.5,0.1-5.3,0.1c-29.1,0-56.5-11.3-77.1-31.9c-20.6-20.6-31.9-48-31.9-77.1 - c0-16.6,3.7-32.6,10.6-47.1c3.1-6.4,6.8-12.5,11.1-18.2c-7.6,0.8-14.9,2.4-22,4.6c-46.8,14.8-80.7,58.5-80.7,110.2 - c0,63.8,51.7,115.5,115.5,115.5c35.3,0,66.8-15.8,88-40.7c4.8-5.7,9.2-11.9,12.8-18.5C357.3,313.6,350.3,314.7,343.1,315z - M263.3,355.1c-54.9,0-99.5-44.6-99.5-99.5c0-39.1,22.6-72.9,55.4-89.2c-4.2,12.5-6.4,25.8-6.4,39.7c0,65.9,51,119.9,115.6,124.7 - C311,346,288.2,355.1,263.3,355.1z"/> - </g> -</g> -</svg> diff --git a/admin/bower_components/Ionicons/src/ios-moon.svg b/admin/bower_components/Ionicons/src/ios-moon.svg deleted file mode 100644 index 059f2b9..0000000 --- a/admin/bower_components/Ionicons/src/ios-moon.svg +++ /dev/null @@ -1,13 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" style="enable-background:new 0 0 512 512;" xml:space="preserve"> -<g> - <g> - <path d="M343.1,315c-1.8,0.1-3.5,0.1-5.3,0.1c-29.1,0-56.5-11.3-77.1-31.9c-20.6-20.6-31.9-48-31.9-77.1 - c0-16.6,3.7-32.6,10.6-47.1c3.1-6.4,6.8-12.5,11.1-18.2c-7.6,0.8-14.9,2.4-22,4.6c-46.8,14.8-80.7,58.5-80.7,110.2 - c0,63.8,51.7,115.5,115.5,115.5c35.3,0,66.8-15.8,88-40.7c4.8-5.7,9.2-11.9,12.8-18.5C357.3,313.6,350.3,314.7,343.1,315z"/> - </g> -</g> -</svg> diff --git a/admin/bower_components/Ionicons/src/ios-more-outline.svg b/admin/bower_components/Ionicons/src/ios-more-outline.svg deleted file mode 100644 index 010cd1a..0000000 --- a/admin/bower_components/Ionicons/src/ios-more-outline.svg +++ /dev/null @@ -1,14 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" style="enable-background:new 0 0 512 512;" xml:space="preserve"> -<g> - <path d="M256,238c9.9,0,18,8.1,18,18s-8.1,18-18,18s-18-8.1-18-18S246.1,238,256,238 M256,224c-17.7,0-32,14.3-32,32s14.3,32,32,32 - c17.7,0,32-14.3,32-32S273.7,224,256,224L256,224z"/> - <path d="M128.4,238c9.9,0,18,8.1,18,18s-8.1,18-18,18c-9.9,0-18-8.1-18-18S118.5,238,128.4,238 M128.4,224c-17.7,0-32,14.3-32,32 - s14.3,32,32,32c17.7,0,32-14.3,32-32S146,224,128.4,224L128.4,224z"/> - <path d="M384,238c9.9,0,18,8.1,18,18s-8.1,18-18,18s-18-8.1-18-18S374.1,238,384,238 M384,224c-17.7,0-32,14.3-32,32s14.3,32,32,32 - s32-14.3,32-32S401.7,224,384,224L384,224z"/> -</g> -</svg> diff --git a/admin/bower_components/Ionicons/src/ios-more.svg b/admin/bower_components/Ionicons/src/ios-more.svg deleted file mode 100644 index 9768cd8..0000000 --- a/admin/bower_components/Ionicons/src/ios-more.svg +++ /dev/null @@ -1,11 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" style="enable-background:new 0 0 512 512;" xml:space="preserve"> -<g> - <path d="M256,224c-17.7,0-32,14.3-32,32s14.3,32,32,32c17.7,0,32-14.3,32-32S273.7,224,256,224L256,224z"/> - <path d="M128.4,224c-17.7,0-32,14.3-32,32s14.3,32,32,32c17.7,0,32-14.3,32-32S146,224,128.4,224L128.4,224z"/> - <path d="M384,224c-17.7,0-32,14.3-32,32s14.3,32,32,32s32-14.3,32-32S401.7,224,384,224L384,224z"/> -</g> -</svg> diff --git a/admin/bower_components/Ionicons/src/ios-musical-note.svg b/admin/bower_components/Ionicons/src/ios-musical-note.svg deleted file mode 100644 index 2ee2216..0000000 --- a/admin/bower_components/Ionicons/src/ios-musical-note.svg +++ /dev/null @@ -1,9 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" style="enable-background:new 0 0 512 512;" xml:space="preserve"> -<path d="M352.1,102.3c0-0.1,0-0.2,0-0.2c-0.1-0.3-0.1-0.5-0.2-0.8c0,0,0-0.1,0-0.1c-0.6-1.5-1.8-3-3.5-3.4l-2-0.4L256,78v272.6 - c-8,0-22.4,0.4-44.5,1.3c-41.8,1.6-51.4,21.6-51.4,40.9c0,24.6,13.2,43.1,61.5,41c51.8-2.3,51.4-48.5,51.4-81.7V159.6l73.6,13.5l0,0 - c3,0.6,5.4-2.3,5.4-5.3v-64.4C352,103,352.1,102.6,352.1,102.3z"/> -</svg> diff --git a/admin/bower_components/Ionicons/src/ios-musical-notes.svg b/admin/bower_components/Ionicons/src/ios-musical-notes.svg deleted file mode 100644 index 0fe310c..0000000 --- a/admin/bower_components/Ionicons/src/ios-musical-notes.svg +++ /dev/null @@ -1,9 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" style="enable-background:new 0 0 512 512;" xml:space="preserve"> -<path d="M416,319.9V78l-224,34.6v237.2c-9,0-20.9,0.4-43.5,1.3c-42.6,1.6-52.5,21.8-52.5,41.3c0,24.9,13.5,43.5,62.6,41.4 - c52.8-2.3,50.3-49,50.3-82.5V189.8l191-32v160.6c-9,0-19.9,0.4-42.6,1.3c-42.6,1.6-52.5,21.8-52.5,41.3c0,24.9,13,43.5,62.2,41.4 - C420,400.1,416,353.4,416,319.9z"/> -</svg> diff --git a/admin/bower_components/Ionicons/src/ios-navigate-outline.svg b/admin/bower_components/Ionicons/src/ios-navigate-outline.svg deleted file mode 100644 index 74e4180..0000000 --- a/admin/bower_components/Ionicons/src/ios-navigate-outline.svg +++ /dev/null @@ -1,12 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" style="enable-background:new 0 0 512 512;" xml:space="preserve"> -<g> - <path d="M256,64.5c51.1,0,99.2,19.9,135.4,56.1s56.1,84.2,56.1,135.4s-19.9,99.2-56.1,135.4s-84.2,56.1-135.4,56.1 - s-99.2-19.9-135.4-56.1C84.5,355.2,64.5,307.1,64.5,256s19.9-99.2,56.1-135.4C156.8,84.5,204.9,64.5,256,64.5 M256,48 - C141.1,48,48,141.1,48,256c0,114.9,93.1,208,208,208c114.9,0,208-93.1,208-208C464,141.1,370.9,48,256,48L256,48z"/> - <polygon points="352,160 128.3,256 256,256 256,384 "/> -</g> -</svg> diff --git a/admin/bower_components/Ionicons/src/ios-navigate.svg b/admin/bower_components/Ionicons/src/ios-navigate.svg deleted file mode 100644 index 2a265c9..0000000 --- a/admin/bower_components/Ionicons/src/ios-navigate.svg +++ /dev/null @@ -1,10 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" style="enable-background:new 0 0 512 512;" xml:space="preserve"> -<g> - <path d="M256,48C141.1,48,48,141.1,48,256c0,114.9,93.1,208,208,208c114.9,0,208-93.1,208-208C464,141.1,370.9,48,256,48z M256,384 - V256H128.3L352,160L256,384z"/> -</g> -</svg> diff --git a/admin/bower_components/Ionicons/src/ios-nutrition-outline.svg b/admin/bower_components/Ionicons/src/ios-nutrition-outline.svg deleted file mode 100644 index b8d04ea..0000000 --- a/admin/bower_components/Ionicons/src/ios-nutrition-outline.svg +++ /dev/null @@ -1,29 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" enable-background="new 0 0 512 512" xml:space="preserve"> -<g> - <path d="M358,233.855l0.413-0.039c-0.137-0.137-0.046-0.101-0.185-0.237L279.798,155h-0.004c-5.833-6-14.193-10.154-23.485-10.154 - c-11.811,0-22.115,6.154-27.635,16.154h-0.007c0,0-7.09,10.994-18.27,28.874l32.531,39.637c2.939,3.769,3.296,7.801,1.411,9.689 - l-0.114,0.071c-0.909,0.909-2.021,1.33-3.274,1.33c-1.908,0-4.142-0.99-6.485-2.768l-35.872-29.418 - c-23.546,37.655-56.677,90.634-83.45,133.451l19.072,23.337c2.939,3.77,3.296,7.884,1.41,9.772l-0.114,0.114 - c-0.911,0.913-2.028,1.342-3.287,1.342c-1.905,0-4.136-0.981-6.472-2.755l-21.067-16.533C84.734,389.051,70,412.464,68,414.366 - v0.003c-3,5.062-4.085,11.132-4.085,17.664c0,17.655,14.657,31.967,32.285,31.967c7.821,0,14.57-3.395,20.799-7.5l114.651-84.109 - l-28.838-35.358c-2.94-3.769-3.268-7.887-1.382-9.775l0.128-0.114c0.912-0.912,2.034-1.341,3.294-1.341 - c1.905,0,4.14,0.981,6.476,2.755l37.864,31.59C304.03,319.902,355.082,283,355.082,283h0.005c7.839-6,12.473-15.711,12.473-26.238 - c0-8.704-3.56-17.14-9.56-22.904V233.855z M345.531,269.834c-2.664,1.934-46.692,33.932-95.764,69.899l-28.272-23.483l-0.26-0.223 - l-0.274-0.211c-5.245-3.981-10.663-5.998-16.108-5.998c-5.465,0-10.592,2.097-14.458,5.909l-0.064,0.062l-0.083,0.082l-0.083,0.083 - c-7.808,7.821-7.761,20.823,0.111,30.917l0.11,0.143l0.113,0.138l18.223,22.312l-100.656,73.896 - c-5.066,3.304-8.427,4.657-11.542,4.657c-8.822,0-16-7.171-16-15.983c0-3.086,0.694-6.045,2.017-8.623 - c2.391-3.161,6.6-9.876,18.655-29.351c2.543-4.108,5.252-8.487,8.134-13.129l6.39,5.176l0.195,0.156l0.2,0.152 - c5.245,3.981,10.665,6,16.111,6c5.517,0,10.692-2.139,14.571-6.023l0.114-0.113c7.806-7.817,7.756-20.82-0.118-30.916l-0.113-0.144 - l-0.115-0.142l-11.814-14.455l43.693-69.872l24.059-38.474l21.855,17.922l0.231,0.19l0.24,0.181 - c5.254,3.988,10.678,6.01,16.123,6.01c4.954,0,9.631-1.725,13.339-4.89l0.461-0.337l0.871-0.874 - c7.79-7.803,7.74-20.778-0.118-30.854l-0.12-0.153l-0.124-0.15l-25.239-30.539c2.957-4.703,5.457-8.491,7.405-11.488l5.209-8.494 - c2.777-5.025,7.761-8.157,13.673-8.157c4.367,0,8.76,2.042,12.057,5.43l4.701,4.928h0.122L342,240.286v0.376l5.186,4.716 - c2.793,2.69,4.539,6.782,4.539,11.227C351.725,261.801,349.467,266.728,345.531,269.834z"/> - <polygon points="439.994,115.175 435.216,117.938 343.578,170.93 407.313,60.358 409.83,55.992 396.011,48 393.523,52.313 - 322.748,175.098 339.418,191.794 443.38,131.674 447.974,129.018 "/> -</g> -</svg> diff --git a/admin/bower_components/Ionicons/src/ios-nutrition.svg b/admin/bower_components/Ionicons/src/ios-nutrition.svg deleted file mode 100644 index 375b45e..0000000 --- a/admin/bower_components/Ionicons/src/ios-nutrition.svg +++ /dev/null @@ -1,17 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" enable-background="new 0 0 512 512" xml:space="preserve"> -<g> - <path d="M359,233.62l-0.106-0.039c-0.136-0.138-0.306-0.443-0.444-0.579L279.551,154h-0.004c-5.848-6-14.23-10.168-23.547-10.168 - c-11.842,0-22.174,6.168-27.708,16.168h-0.007c0,0-7.109,11.351-18.318,29.249l32.617,39.85c2.947,3.772,3.305,7.895,1.414,9.785 - l-0.114,0.114c-2.296,2.296-5.894,1.535-9.785-1.414l-35.967-29.439c-23.608,37.693-56.827,90.731-83.671,133.592l19.123,23.362 - c2.947,3.772,3.305,7.895,1.414,9.785l-0.114,0.114c-2.296,2.296-5.894,1.535-9.785-1.414l-20.22-16.55 - C84.874,388.974,70.194,412.411,69,414.315v0.003c-3,5.066-5,11.144-5,17.682c0,17.674,14.244,32,31.918,32 - c7.842,0,14.383-3.398,20.628-7.508l114.842-84.195l-28.971-35.395c-2.947-3.772-3.305-7.895-1.414-9.785l0.114-0.114 - c2.296-2.296,5.894-1.534,9.785,1.415l37.963,31.215C303.85,319.348,355.035,282,355.035,282h0.005 - c7.859-6,13.024-15.319,13.024-25.857c0-8.713-3.064-16.75-9.064-22.521V233.62z"/> - <polygon points="448,138.781 431.514,111.087 365.284,149.299 414.515,64.086 386.896,48 316.897,169.084 345.485,197.672 "/> -</g> -</svg> diff --git a/admin/bower_components/Ionicons/src/ios-paper-outline.svg b/admin/bower_components/Ionicons/src/ios-paper-outline.svg deleted file mode 100644 index 7704053..0000000 --- a/admin/bower_components/Ionicons/src/ios-paper-outline.svg +++ /dev/null @@ -1,14 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" enable-background="new 0 0 512 512" xml:space="preserve"> -<g> - <path d="M112,64v16v320h16V80h304v337.143c0,8.205-6.652,14.857-14.857,14.857H94.857C86.652,432,80,425.348,80,417.143V128h16v-16 - H64v305.143C64,434.157,77.843,448,94.857,448h322.285C434.157,448,448,434.157,448,417.143V64H112z"/> - <rect x="160" y="112" width="128" height="16"/> - <rect x="160" y="192" width="240" height="16"/> - <rect x="160" y="272" width="192" height="16"/> - <rect x="160" y="352" width="240" height="16"/> -</g> -</svg> diff --git a/admin/bower_components/Ionicons/src/ios-paper.svg b/admin/bower_components/Ionicons/src/ios-paper.svg deleted file mode 100644 index 5c0f3bf..0000000 --- a/admin/bower_components/Ionicons/src/ios-paper.svg +++ /dev/null @@ -1,8 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" enable-background="new 0 0 512 512" xml:space="preserve"> -<path d="M112,64v16v32v288H96V112H64v305.143C64,434.157,77.843,448,94.857,448h322.285C434.157,448,448,434.157,448,417.143V64H112 - z M160,112h128v16H160V112z M160,272h192v16H160V272z M400,368H160v-16h240V368z M400,208H160v-16h240V208z"/> -</svg> diff --git a/admin/bower_components/Ionicons/src/ios-paperplane-outline.svg b/admin/bower_components/Ionicons/src/ios-paperplane-outline.svg deleted file mode 100644 index ceb46f1..0000000 --- a/admin/bower_components/Ionicons/src/ios-paperplane-outline.svg +++ /dev/null @@ -1,8 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" style="enable-background:new 0 0 512 512;" xml:space="preserve"> -<path d="M96,249.6l116.6,51.3L269.8,416L416,96L96,249.6z M228.1,296.5l155.7-166.2L269.2,379.2L228.1,296.5z M381.8,128.3 - L216.8,285.4L134,249L381.8,128.3z"/> -</svg> diff --git a/admin/bower_components/Ionicons/src/ios-paperplane.svg b/admin/bower_components/Ionicons/src/ios-paperplane.svg deleted file mode 100644 index 6b74591..0000000 --- a/admin/bower_components/Ionicons/src/ios-paperplane.svg +++ /dev/null @@ -1,10 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" style="enable-background:new 0 0 512 512;" xml:space="preserve"> -<g> - <polygon points="96,249.6 202,296.3 416,96 "/> - <polygon points="416,96 217.9,311.7 269.8,416 "/> -</g> -</svg> diff --git a/admin/bower_components/Ionicons/src/ios-partlysunny-outline.svg b/admin/bower_components/Ionicons/src/ios-partlysunny-outline.svg deleted file mode 100644 index f5010f9..0000000 --- a/admin/bower_components/Ionicons/src/ios-partlysunny-outline.svg +++ /dev/null @@ -1,33 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" style="enable-background:new 0 0 512 512;" xml:space="preserve"> -<style type="text/css"> -<![CDATA[ - .st0{fill:#010101;} -]]> -</style> -<g> - <g> - <g> - <rect x="208" y="96" class="st0" width="16" height="54"/> - <rect x="64" y="240" class="st0" width="55" height="16"/> - <polygon class="st0" points="107.5,149.1 118.5,138 149.9,169.6 138.9,180.7 "/> - <polygon class="st0" points="287.4,179.7 276.4,168.6 307.7,137 318.8,148.1 "/> - <polygon class="st0" points="120.5,352.5 109.5,341.4 140.9,309.8 151.9,320.9 "/> - </g> - <g> - <path class="st0" d="M192.6,294.9c-20.2-8.1-34.6-27.9-34.6-51.1c0-30.3,24.5-55,54.7-55c15.6,0,29.7,6.6,39.6,17.2 - c4.8-3.5,9.5-6.2,13.6-8.2c-12.9-15.1-32-24.7-53.3-24.7c-38.7,0-70.3,31.7-70.3,70.7c0,27.4,15.6,51.2,38.3,62.9 - C184.3,301.5,188.5,297.7,192.6,294.9z"/> - </g> - </g> - <path class="st0" d="M299,239.8c14.5,0,28.1,4.8,39.3,13.9c10.9,8.9,18.6,21.3,21.7,34.9l3.1,14l14.2-1.8c2.1-0.3,4.1-0.4,6.1-0.4 - c26.9,0,48.8,22.1,48.8,49.2c0,27.1-21.9,49.2-48.8,49.2H225.7c-9.5,0-18.5-3.9-25.4-10.8c-6.8-7-10.6-16.2-10.6-25.9 - c0-18.6,14.5-33.8,33.2-36.9c1.6-0.3,8.8-1.2,14.2-1.7c0,0-0.5-5.3-0.6-9.6c-0.1-4.3-0.1-9.4-0.1-11.5 - C236.5,268,264.5,239.8,299,239.8 M299,224c-43.3,0-78.3,35.2-78.3,78.5c0,2.6,0.1,5.2,0.4,7.8c-26.4,2.3-47.1,25.5-47.1,52.6 - c0,28.6,23.2,53.1,51.7,53.1h157.7c35.7,0,64.6-29.9,64.6-65.7c0-35.8-28.9-65.3-64.6-65.3c-2.7,0-5.4,0-8,0.3 - C367.5,250.3,336.3,224,299,224L299,224z"/> -</g> -</svg> diff --git a/admin/bower_components/Ionicons/src/ios-partlysunny.svg b/admin/bower_components/Ionicons/src/ios-partlysunny.svg deleted file mode 100644 index 1f20c73..0000000 --- a/admin/bower_components/Ionicons/src/ios-partlysunny.svg +++ /dev/null @@ -1,28 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" style="enable-background:new 0 0 512 512;" xml:space="preserve"> -<style type="text/css"> -<![CDATA[ - .st0{fill:#010101;} -]]> -</style> -<g> - <g> - <g> - <rect x="208" y="96" class="st0" width="16" height="54"/> - <rect x="64" y="240" class="st0" width="55" height="16"/> - <polygon class="st0" points="107.5,149.1 118.5,138 149.9,169.6 138.9,180.7 "/> - <polygon class="st0" points="287.4,179.7 276.4,168.6 307.7,137 318.8,148.1 "/> - <polygon class="st0" points="120.5,352.5 109.5,341.4 140.9,309.8 151.9,320.9 "/> - </g> - <path class="st0" d="M299,224c-43.3,0-78.3,35.2-78.3,78.5c0,2.6,0.1,5.2,0.4,7.8c-26.4,2.3-47.1,25.5-47.1,52.6 - c0,28.6,23.2,53.1,51.7,53.1h157.7c35.7,0,64.6-29.9,64.6-65.7c0-35.8-28.9-65.3-64.6-65.3c-2.7,0-5.4,0-8,0.3 - C367.5,250.3,336.3,224,299,224L299,224z"/> - </g> - <path class="st0" d="M264.7,196.3c-12.9-14.3-31.4-23.3-52-23.3c-38.7,0-70.3,31.7-70.3,70.7c0,27.4,15.6,51.2,38.3,62.9 - c0,0,0-0.1,0-0.1c0,0,0.1,0.1,0.1,0.1c4.5-12.1,11.4-19.8,22.6-25.6c0.2-0.1,0.4-0.2,0.7-0.4c0.2-0.1,0.5-0.2,0.7-0.3 - c-0.2-2.3-0.3-4.7-0.3-7c-0.3-31.9,30.2-70.5,61-75.4c0.1-0.1,0.3-0.1,0.4-0.2C265.5,197.3,265.1,196.8,264.7,196.3z"/> -</g> -</svg> diff --git a/admin/bower_components/Ionicons/src/ios-pause-outline.svg b/admin/bower_components/Ionicons/src/ios-pause-outline.svg deleted file mode 100644 index c1907cf..0000000 --- a/admin/bower_components/Ionicons/src/ios-pause-outline.svg +++ /dev/null @@ -1,10 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" style="enable-background:new 0 0 512 512;" xml:space="preserve"> -<g> - <path d="M191,112v288h-47V112H191 M207,96h-79v320h79V96L207,96z"/> - <path d="M368,112v288h-47V112H368 M384,96h-79v320h79V96L384,96z"/> -</g> -</svg> diff --git a/admin/bower_components/Ionicons/src/ios-pause.svg b/admin/bower_components/Ionicons/src/ios-pause.svg deleted file mode 100644 index acf5ee2..0000000 --- a/admin/bower_components/Ionicons/src/ios-pause.svg +++ /dev/null @@ -1,10 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" style="enable-background:new 0 0 512 512;" xml:space="preserve"> -<g> - <rect x="128" y="96" width="79" height="320"/> - <rect x="305" y="96" width="79" height="320"/> -</g> -</svg> diff --git a/admin/bower_components/Ionicons/src/ios-paw-outline.svg b/admin/bower_components/Ionicons/src/ios-paw-outline.svg deleted file mode 100644 index 78d693c..0000000 --- a/admin/bower_components/Ionicons/src/ios-paw-outline.svg +++ /dev/null @@ -1,43 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" enable-background="new 0 0 512 512" xml:space="preserve"> -<g> - <path d="M443.827,195.5c-4.383-11.73-11.753-20.212-21.317-24.524c-4.389-1.975-8.995-2.976-13.688-2.976 - c-20.025,0-40.372,18.667-50.632,46.454c-12.698,34.42-5.315,68.135,17.173,78.423c4.522,2.071,9.365,3.123,14.394,3.123 - c20.396,0,41.126-17.119,51.581-42.596C449.238,234.121,450.168,212.477,443.827,195.5z M426.214,246.295 - c-7.836,18.898-22.994,32.098-36.862,32.098c-2.809,0-5.488-0.569-7.968-1.694c-14.121-6.394-17.862-31.059-8.518-56.152 - c7.775-20.817,22.448-35.355,35.683-35.355c2.51,0,4.979,0.533,7.34,1.588c6.88,3.067,10.622,9.712,12.551,14.745 - C433.35,214.332,432.518,231.068,426.214,246.295z"/> - <path d="M153.811,214.454C143.551,186.667,123.204,168,103.179,168c-4.693,0-9.3,1.001-13.689,2.976 - c-9.565,4.312-16.934,12.794-21.317,24.524c-6.341,16.977-5.411,38.621,2.49,57.904C81.118,278.881,101.848,296,122.244,296 - c5.028,0,9.871-1.052,14.394-3.123C159.126,282.589,166.509,248.874,153.811,214.454z M130.616,276.698 - c-2.479,1.125-5.16,1.694-7.968,1.694c-13.868,0-29.026-13.199-36.862-32.098c-6.304-15.227-7.136-31.963-2.226-44.771 - c1.929-5.033,5.671-11.678,12.551-14.745c2.361-1.055,4.83-1.588,7.34-1.588c13.234,0,27.907,14.538,35.683,35.355 - C148.479,245.64,144.737,270.305,130.616,276.698z"/> - <path d="M198.347,210.601c1.855,0.081,3.727,0.03,5.563-0.151c10.787-1.059,20.54-6.594,28.207-16.008 - c12.371-15.191,15.806-38.974,13.201-63.439C241.336,93.3,221.469,65.161,194.776,64c0,0-3.811,0.008-5.75,0.193 - c-11.776,1.164-22.481,7.283-30.957,17.695c-12.291,15.101-18.198,37.57-15.803,60.104 - C146.202,179.269,170.836,209.404,198.347,210.601z M171.047,91.831c3.923-4.739,10.51-10.577,19.62-11.476 - c1.143-0.113,2.288-0.146,3.404-0.098c18.207,0.792,31.859,23.271,34.936,52.428c2.146,20.15-0.148,40.055-9.845,51.779 - c-4.874,5.898-10.556,9.204-16.881,9.825c-1.081,0.104-2.167,0.133-3.229,0.087c-19.257-0.838-37.414-25.091-40.473-54.067 - C156.611,121.779,161.273,103.656,171.047,91.831z"/> - <path d="M256,240c-64,0-128,76.074-128,149.128c0,21.798,10.932,39.331,21.667,46.517C162.925,444.516,172.269,448,191.704,448 - c23.093,0,29.325-8.078,40.136-15.205c7.819-5.152,14.572-9.605,24.161-9.605s16.342,4.453,24.16,9.605 - C290.972,439.922,297.203,448,320.297,448c19.434,0,28.778-3.484,42.036-12.355C373.068,428.459,384,410.926,384,389.128 - C384,316.074,320,240,256,240z M353.963,420.776c-10.964,7.337-17.366,9.778-33.666,9.778c-14.225,0-18.624-3.201-25.911-8.51 - c-1.848-1.344-3.759-2.736-5.946-4.177c-8.619-5.682-18.39-12.123-32.439-12.123s-23.82,6.441-32.438,12.121 - c-2.189,1.442-4.1,2.835-5.947,4.179c-7.287,5.309-11.686,8.51-25.911,8.51c-16.3,0-22.703-2.441-33.667-9.778 - C152.395,417,144,405.456,144,389.128c0-30.277,13.377-64.231,35.783-90.823c10.886-12.921,23.517-23.6,36.526-30.885 - C229.713,259.917,243.067,256,256,256c12.934,0,26.287,3.917,39.691,11.42c13.01,7.285,25.64,17.964,36.525,30.885 - C354.623,324.896,368,358.851,368,389.128C368,405.456,359.605,417,353.963,420.776z"/> - <path d="M308.281,210.265c1.836,0.182,3.709,0.232,5.563,0.151c27.511-1.196,52.146-31.332,56.081-68.607 - c2.395-22.534-3.514-45.004-15.804-60.104c-8.476-10.412-18.783-16.228-30.56-17.392c-1.939-0.186-6.146-0.312-6.146-0.312 - c-26.693,1.161-46.561,29.115-50.542,66.817c-2.604,24.466,0.83,48.248,13.2,63.439 - C287.741,203.671,297.494,209.206,308.281,210.265z M283.186,132.501c3.076-29.156,16.729-51.636,34.936-52.428 - c1.115-0.048,2.261-0.016,3.404,0.098c9.109,0.898,15.696,6.736,19.619,11.476c9.774,11.825,14.436,29.948,12.468,48.479 - c-3.06,28.977-21.216,53.229-40.474,54.067c-1.061,0.046-2.146,0.017-3.229-0.087c-6.324-0.621-12.007-3.927-16.881-9.825 - C283.334,172.556,281.039,152.651,283.186,132.501z"/> -</g> -</svg> diff --git a/admin/bower_components/Ionicons/src/ios-paw.svg b/admin/bower_components/Ionicons/src/ios-paw.svg deleted file mode 100644 index c83a883..0000000 --- a/admin/bower_components/Ionicons/src/ios-paw.svg +++ /dev/null @@ -1,26 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" enable-background="new 0 0 512 512" xml:space="preserve"> -<g> - <path d="M443.827,195.5c-4.383-11.73-11.753-20.212-21.317-24.524c-4.389-1.975-8.995-2.976-13.688-2.976 - c-20.025,0-40.372,18.667-50.632,46.454c-12.698,34.42-5.315,68.135,17.173,78.423c4.522,2.071,9.365,3.123,14.394,3.123 - c20.396,0,41.126-17.119,51.581-42.596C449.238,234.121,450.168,212.477,443.827,195.5z"/> - <path d="M153.811,214.454C143.551,186.667,123.204,168,103.179,168c-4.693,0-9.3,1.001-13.689,2.976 - c-9.565,4.312-16.934,12.794-21.317,24.524c-6.341,16.977-5.411,38.621,2.49,57.904C81.118,278.881,101.848,296,122.244,296 - c5.028,0,9.871-1.052,14.394-3.123C159.126,282.589,166.509,248.874,153.811,214.454z"/> - <path d="M198.347,210.601c1.855,0.081,3.727,0.03,5.563-0.151c10.787-1.059,20.54-6.594,28.207-16.008 - c12.371-15.191,15.806-38.974,13.201-63.439C241.336,93.3,221.469,65.161,194.776,64c0,0-3.811,0.008-5.75,0.193 - c-11.776,1.164-22.481,7.283-30.957,17.695c-12.291,15.101-18.198,37.57-15.803,60.104 - C146.202,179.269,170.836,209.404,198.347,210.601z"/> - <path d="M256,240c-64,0-128,76.074-128,149.128c0,21.798,10.932,39.331,21.667,46.517C162.925,444.516,172.269,448,191.704,448 - c23.093,0,29.325-8.078,40.136-15.205c7.819-5.152,14.572-9.605,24.161-9.605s16.342,4.453,24.16,9.605 - C290.972,439.922,297.203,448,320.297,448c19.434,0,28.778-3.484,42.036-12.355C373.068,428.459,384,410.926,384,389.128 - C384,316.074,320,240,256,240z"/> - <path d="M308.281,210.265c1.836,0.182,3.709,0.232,5.563,0.151c27.511-1.196,52.146-31.332,56.081-68.607 - c2.395-22.534-3.514-45.004-15.804-60.104c-8.476-10.412-18.783-16.228-30.56-17.392c-1.939-0.186-6.146-0.312-6.146-0.312 - c-26.693,1.161-46.561,29.115-50.542,66.817c-2.604,24.466,0.83,48.248,13.2,63.439 - C287.741,203.671,297.494,209.206,308.281,210.265z"/> -</g> -</svg> diff --git a/admin/bower_components/Ionicons/src/ios-people-outline.svg b/admin/bower_components/Ionicons/src/ios-people-outline.svg deleted file mode 100644 index bb665e6..0000000 --- a/admin/bower_components/Ionicons/src/ios-people-outline.svg +++ /dev/null @@ -1,44 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" style="enable-background:new 0 0 512 512;" xml:space="preserve"> -<g> - <g> - <path d="M256,112L256,112L256,112z"/> - <path d="M349.2,334.8c-13.5-4.7-28.1-5-41.6-9.7c-4.1-1.4-12.2-3.1-13.9-7.8c-1.6-4.6-1.6-10-1.9-14.8c-0.2-3.8-0.3-7.6-0.3-11.4 - c0-2.5,6.4-7.8,7.8-10.1c5.4-9,5.9-21.1,6.9-31.3c8.7,2.4,9.8-13.7,11.3-18.6c1.1-3.4,7.8-26.8-2.6-23.6c2.5-4.4,3.5-9.8,4.2-14.7 - c2-12.8,2.8-26.8-1.1-39.3c-8.1-26-33-40.6-59.3-41.4c-26.7-0.9-53.5,11.9-63.5,37.8c-4.8,12.6-4.4,26.3-2.8,39.5 - c0.7,6,1.7,12.7,4.7,18.1c-9.7-2.9-4.5,17.7-3.4,21.3c1.6,5.1,3,23.4,12.1,20.9c0.8,8.1,1.7,16.4,3.9,24.3 - c1.5,5.3,4.6,9.8,8.2,13.9c1.8,2,2.7,2.2,2.6,4.8c-0.1,7.8,0.1,16.2-1.9,23.8c-2,7.6-18.7,10.8-25.4,12.2 - c-18,3.7-34.6,5.4-49.6,16.6C126.1,358.2,117,378.3,117,400c83.3,0,166.6,0,249.9,0c9.4,0,18.7,0,28.1,0 - C395,370.5,377.2,344.5,349.2,334.8C338,330.9,360.5,338.7,349.2,334.8z M147.1,363.6c5.6-5.9,12.7-11.1,20.4-14 - c10.5-4,22.4-3.8,33.3-6.6c9-2.3,20.2-5.9,27.2-12.4c6.4-6,7.1-15.2,7.7-23.5c0.5-7,0.4-13.9,0.4-20.9c0-4.9-5.7-7.7-8.5-11.6 - c-4.5-6.1-4.7-15.2-5.6-22.5c-0.4-3.2-0.5-7.3-3.2-9.5c-3-2.4-5.2-3.7-6.7-7.5c-2-5.2-2.7-10.8-4.3-16.2c-1-3.5,2.5-6.8,3.9-9.7 - c2.6-5.3-1.9-13.5-2.8-19c-2.8-16.4-2.7-34.3,9.1-47.3c23.7-26.2,78-17.9,85.8,18.9c2.4,11.5,0.9,24.9-2.3,36.1 - c-1.4,4.8-3,8.3-0.2,13c4.2,6.8,2.4,11.2,0.4,18.8c-1.6,6.3-3.6,9.1-8.4,13c-4,3.2-3.4,11.2-4.1,15.8c-0.8,5.6-1.3,11.5-4.7,16.2 - c-1.3,1.8-8.4,7.4-8.4,9.3c0,11-0.5,22.2,1.4,33.1c2.6,15.5,15.6,19.2,28.6,24.5c13.2,5.1,28.5,3.2,41.3,9.5 - c13.2,6.5,25.9,18.4,29.7,33.1c-79.3,0-158.6,0-237.9,0c-1.4,0-2.8,0-4.2,0C136.9,375.9,141.5,369.6,147.1,363.6 - C156.3,353.9,141.2,369.9,147.1,363.6z"/> - </g> - <path d="M144.1,322c7-3.5,14.6-4.3,22.3-5.1c2.8-0.3,4.1-2.2,2-4.9c-4-5.1-17.8-6.1-23.6-8.4c-3.6-1.4-4.6-2.7-4.9-6.7 - c-0.1-1.8-1.1-9.8,0.3-11.1c1-1,7.3-0.6,8.7-0.8c5.7-0.7,11.5-1.9,16.9-4c2.3-0.9,4.5-2,6.5-3.4c2.4-1.8-1.8-6.2-2.9-8.6 - c-3.4-7.5-4.9-15.7-5.4-23.9c-1-16.1,1.5-32.3-1.5-48.3c-4.5-24.5-23.4-36.8-47.5-36.8c-14.9,0-29.6,5.1-37.9,18.1 - c-9.2,14.3-8.7,32.1-8.2,48.4c0.3,9.3,0.7,18.7-0.6,28c-0.6,4-1.5,7.9-2.9,11.7c-1.1,2.9-6.7,10.1-4.5,11.6 - c8.3,5.9,22.3,7.9,32.3,7.1c0.3,4.9,1.2,11.2-0.6,15.8c-2.8,7.2-23.7,9.1-30,11.2C45,317.8,32,332.5,32,352c18.3,0,36.5,0,54.8,0 - c8.2,0,16.4,0,24.7,0c1.3,0,6.3-9.3,7.7-10.8C126.2,333.4,134.8,326.7,144.1,322C153.1,317.5,129.5,329.4,144.1,322z M102.8,336 - c-16.3,0-32.6,0-48.9,0c7.1-11.8,24.9-11,36.6-15.2c10.8-3.9,17.7-10.5,18.8-22c0.1-1.3,0.2-29.2-0.9-29.2 - c-8.7-0.3-17.8-0.1-26.5-1.4c6.9-22.3,0.3-45.3,4-67.8c2.7-16.3,13.1-25.3,29.7-25.3c15.9,0,27.7,7.4,31.1,23.4 - c4.8,23.2-2,46.9,5.4,69.9c-5.5,1.4-11.3,1.6-17,1.8c-2.8,0.1-5.7,0.2-8.5,0.3c-1.8,0.1-1.2,3.2-1.3,4.7c-1,10.9-5,28.1,3.7,36.9 - C119.4,318.1,109,326.4,102.8,336z"/> - <path d="M399.8,352c26.7,0,53.5,0,80.2,0c0-19.5-13.1-34.3-30.7-40.1c-8.1-2.6-23.7-3.4-29.5-10.4c-2.9-3.5-1.3-12.4-1-16.6 - c4.4,0.4,9.2-0.3,13.7-0.9c4.1-0.6,8.1-1.4,12-2.8c1.8-0.7,3.6-1.4,5.3-2.4c3.9-2.3,2.1-2.7,0.1-6.1c-10.9-18.3-6-41.5-6.5-61.6 - c-0.4-16.7-4.8-35-20-44.4c-13.7-8.5-34-8.8-48.7-2.8c-42.4,17-17.4,73.2-31.9,105.4c-2.5,5.4-6.1,7.3,0.2,10.5 - c3.5,1.8,7.3,3,11.1,3.9c5.8,1.4,11.8,2.2,17.8,2.4c1,0,0.3,12.6,0,13.9c-1.1,4.9-11.8,6.3-15.8,7.4c-4.1,1.1-10.9,1.4-12.9,5.7 - c-3,6.4,9.9,4.8,13.1,5.4c10.3,1.9,19.4,7.6,27.4,14.1C389.6,337.4,397.6,344.2,399.8,352z M399.4,324.9c-5.1-4.7-10.4-9.3-16.3-13 - c8.8-8.8,4.7-25.9,3.7-36.9c-0.6-6.3-2-4.7-8.3-4.9c-6-0.2-12.8,0.1-18.5-1.8c7.2-22.3,1.3-45.2,5-67.9 - c2.8-17.1,14.5-25.5,31.5-25.5c15.4,0,26,7.7,29.2,23c4.9,23.1-2.6,47,4.5,70c-8.5,1.3-17.3,1-25.9,1.3c-2.1,0.1-1.9,25.1-1.7,27.3 - c0.7,11.7,6.1,18.8,17.2,23.3c12.1,4.9,31,3.6,38.4,15.9c-9.3,0-18.5,0-27.8,0c-5.6,0-11.2,0-16.9,0 - C406.4,335.8,404.6,329.6,399.4,324.9C394.4,320.3,403.4,328.5,399.4,324.9z"/> -</g> -</svg> diff --git a/admin/bower_components/Ionicons/src/ios-people.svg b/admin/bower_components/Ionicons/src/ios-people.svg deleted file mode 100644 index d478f53..0000000 --- a/admin/bower_components/Ionicons/src/ios-people.svg +++ /dev/null @@ -1,29 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" style="enable-background:new 0 0 512 512;" xml:space="preserve"> -<g> - <path d="M349.2,334.8C360.5,338.7,338,330.9,349.2,334.8L349.2,334.8z"/> - <path d="M349.2,334.8c-13.5-4.7-28.1-5-41.6-9.7c-4.1-1.4-12.2-3.1-13.9-7.8c-1.6-4.6-1.6-10-1.9-14.8c-0.2-3.8-0.3-7.6-0.3-11.4 - c0-2.5,6.4-7.8,7.8-10.1c5.4-9,5.9-21.1,6.9-31.3c8.7,2.4,9.8-13.7,11.3-18.6c1.1-3.4,7.8-26.8-2.6-23.6c2.5-4.4,3.5-9.8,4.2-14.7 - c2-12.8,2.8-26.8-1.1-39.3c-8.1-26-33-40.6-59.3-41.4c-26.7-0.9-53.5,11.9-63.5,37.8c-4.8,12.6-4.4,26.3-2.8,39.5 - c0.7,6,1.7,12.7,4.7,18.1c-9.7-2.9-4.5,17.7-3.4,21.3c1.6,5.1,3,23.4,12.1,20.9c0.8,8.1,1.7,16.4,3.9,24.3 - c1.5,5.3,4.6,9.8,8.2,13.9c1.8,2,2.7,2.2,2.6,4.8c-0.1,7.8,0.1,16.2-1.9,23.8c-2,7.6-18.7,10.8-25.4,12.2 - c-18,3.7-34.6,5.4-49.6,16.6C126.1,358.2,117,378.3,117,400c83.3,0,166.6,0,249.9,0c9.4,0,18.7,0,28.1,0 - C395,370.5,377.2,344.5,349.2,334.8z"/> - <path d="M143.3,322.5c0.6-0.3,1.2-0.6,1.6-0.8c-0.3,0.1-0.6,0.3-0.8,0.4C143.8,322.2,143.6,322.3,143.3,322.5z"/> - <path d="M143.3,322.5c-3.4,1.7-7.5,3.8,0.8-0.4c3-1.5,2.4-1.2,0.8-0.4c6.8-3.2,14.1-4,21.4-4.7c2.8-0.3,4.1-2.2,2-4.9 - c-4-5.1-17.8-6.1-23.6-8.4c-3.6-1.4-4.6-2.7-4.9-6.7c-0.1-1.8-1.1-9.8,0.3-11.1c1-1,7.3-0.6,8.7-0.8c5.7-0.7,11.5-1.9,16.9-4 - c2.3-0.9,4.5-2,6.5-3.4c2.4-1.8-1.8-6.2-2.9-8.6c-3.4-7.5-4.9-15.7-5.4-23.9c-1-16.1,1.5-32.3-1.5-48.3 - c-4.5-24.5-23.4-36.8-47.5-36.8c-14.9,0-29.6,5.1-37.9,18.1c-9.2,14.3-8.7,32.1-8.2,48.4c0.3,9.3,0.7,18.7-0.6,28 - c-0.6,4-1.5,7.9-2.9,11.7c-1.1,2.9-6.7,10.1-4.5,11.6c8.3,5.9,22.3,7.9,32.3,7.1c0.3,4.9,1.2,11.2-0.6,15.8 - c-2.8,7.2-23.7,9.1-30,11.2C45,317.8,32,332,32,352c18.3,0,36.5,0,54.8,0c8.2,0,16.4,0,24.7,0c1.3,0,6.3-9.3,7.7-10.8 - C126,333.7,134.3,327.2,143.3,322.5z"/> - <path d="M449.3,311.9c-8.1-2.6-23.7-3.4-29.5-10.4c-2.9-3.5-1.3-12.4-1-16.6c4.4,0.4,9.2-0.3,13.7-0.9c4.1-0.6,8.1-1.4,12-2.8 - c1.8-0.7,3.6-1.4,5.3-2.4c3.9-2.3,2.1-2.7,0.1-6.1c-10.9-18.3-6-41.5-6.5-61.6c-0.4-16.7-4.8-35-20-44.4c-13.7-8.5-34-8.8-48.7-2.8 - c-42.4,17-17.4,73.2-31.9,105.4c-2.5,5.4-6.1,7.3,0.2,10.5c3.5,1.8,7.3,3,11.1,3.9c5.8,1.4,11.8,2.2,17.8,2.4c1,0,0.3,12.6,0,13.9 - c-1.1,4.9-11.8,6.3-15.8,7.4c-4.1,1.1-10.9,1.4-12.9,5.7c-3,6.4,9.9,4.8,13.1,5.4c10.3,1.9,19.4,7.6,27.4,14.1 - c6,4.9,14.1,11.5,16.3,19.5c26.7,0,53.5,0,80.2,0C480,332,466.9,317.7,449.3,311.9z"/> -</g> -</svg> diff --git a/admin/bower_components/Ionicons/src/ios-person-outline.svg b/admin/bower_components/Ionicons/src/ios-person-outline.svg deleted file mode 100644 index 23a0bc1..0000000 --- a/admin/bower_components/Ionicons/src/ios-person-outline.svg +++ /dev/null @@ -1,22 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" style="enable-background:new 0 0 512 512;" xml:space="preserve"> -<g> - <path d="M202.4,201.7L202.4,201.7L202.4,201.7z"/> - <path d="M363.3,363.9c-12.9-4.6-31.4-6.2-43.2-8.8c-6.8-1.5-16.7-5.3-20-9.2c-3.3-4-1.3-40.9-1.3-40.9s6.1-9.6,9.4-18 - s6.9-31.4,6.9-31.4s6.8,0,9.2-11.9c2.6-13,6.6-18.4,6.1-28.1c-0.5-9-5.2-9.5-5.7-9.5l0,0c0,0,4.9-13.6,5.6-42.4 - C331.1,129.6,305,96,256,96s-75,33.5-74.3,67.6c0.6,28.7,5.6,42.4,5.6,42.4l0,0c-0.5,0-5.2,0.5-5.7,9.5c-0.5,9.7,3.6,14.9,6.1,27.9 - c2.4,11.9,9.2,12,9.2,12s3.6,23.1,6.9,31.5c3.3,8.5,9.4,18,9.4,18s2,36.9-1.3,40.9c-3.3,4-13.2,7.7-20,9.2 - c-11.9,2.6-30.3,4.3-43.2,8.9C135.8,368.5,96,384,96,416h160h160C416,384,376.2,368.5,363.3,363.9z M256,400H118.7 - c2-3,4.7-5.1,8.2-7.6c7-5.1,16.1-9.8,27.1-13.6c6.8-2.4,16.7-4,25.4-5.3c5.7-0.9,11.1-1.7,15.9-2.8c3.4-0.8,20.8-5,28.8-14.6 - c4.5-5.4,5.8-12.7,5.6-32.3c-0.1-10-0.6-19.3-0.6-19.7l-0.2-4.2l-2.3-3.5c-1.5-2.3-5.8-9.5-8-15.3c-1.8-4.7-4.6-19.2-6-28.1 - c0,0,0.4,1-0.5-3.7c-0.9-4.7-8.4-4.3-9.4-8c-0.9-3.6-1.8-6.9-4.3-18.2c-2.5-11.3,2.8-11.2,3.9-16.2c0.6-3.1,0-5.7,0-5.8l0,0 - c-0.3-1-4.1-13.4-4.7-37.7c-0.3-13.2,4.6-25.6,13.8-34.9c10.6-10.8,26-16.5,44.5-16.5c19,0,34,5.7,44.6,16.5 - c9.2,9.3,14.1,21.7,13.8,34.9c-0.5,24.2-4.3,36.6-4.7,37.7l0,0c0,0.1-0.6,1.7-0.4,5.2c0.2,5.4,6.8,5.5,4.3,16.8 - c-2.5,11.3-3.4,14.6-4.3,18.2c-0.9,3.6-8.5,3.3-9.4,8c-0.9,4.7-0.5,3.7-0.5,3.7c-1.4,8.9-4.2,23.4-6,28.1c-2.3,5.8-6.6,13-8,15.3 - l-2.3,3.5l-0.2,4.2c0,0.4-0.5,9.7-0.6,19.7c-0.2,19.6,1.1,26.9,5.6,32.3c8,9.5,25.4,13.8,28.8,14.6c4.8,1.1,10.2,1.9,15.9,2.8 - c8.7,1.3,18.6,2.9,25.4,5.3c11,3.9,20.2,8.6,27.1,13.7c3.5,2.5,6.2,4.6,8.2,7.6L256,400L256,400z"/> -</g> -</svg> diff --git a/admin/bower_components/Ionicons/src/ios-person.svg b/admin/bower_components/Ionicons/src/ios-person.svg deleted file mode 100644 index 19b38b2..0000000 --- a/admin/bower_components/Ionicons/src/ios-person.svg +++ /dev/null @@ -1,13 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" style="enable-background:new 0 0 512 512;" xml:space="preserve"> -<g> - <path d="M363.3,363.9c-12.9-4.6-31.4-6.2-43.2-8.8c-6.8-1.5-16.7-5.3-20-9.2c-3.3-4-1.3-40.9-1.3-40.9s6.1-9.6,9.4-18 - s6.9-31.4,6.9-31.4s6.8,0,9.2-11.9c2.6-13,6.6-18.4,6.1-28.1c-0.5-9-5.2-9.5-5.7-9.5l0,0c0,0,4.9-13.6,5.6-42.4 - C331.1,129.6,305,96,256,96s-75,33.5-74.3,67.6c0.6,28.7,5.6,42.4,5.6,42.4l0,0c-0.5,0-5.2,0.5-5.7,9.5c-0.5,9.7,3.6,14.9,6.1,27.9 - c2.4,11.9,9.2,12,9.2,12s3.6,23.1,6.9,31.5c3.3,8.5,9.4,18,9.4,18s2,36.9-1.3,40.9c-3.3,4-13.2,7.7-20,9.2 - c-11.9,2.6-30.3,4.3-43.2,8.9C135.8,368.5,96,384,96,416h160h160C416,384,376.2,368.5,363.3,363.9z"/> -</g> -</svg> diff --git a/admin/bower_components/Ionicons/src/ios-personadd-outline.svg b/admin/bower_components/Ionicons/src/ios-personadd-outline.svg deleted file mode 100644 index acd809d..0000000 --- a/admin/bower_components/Ionicons/src/ios-personadd-outline.svg +++ /dev/null @@ -1,25 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" style="enable-background:new 0 0 512 512;" xml:space="preserve"> -<g> - <polygon points="416,153 391,153 391,128 377,128 377,153 352,153 352,167 377,167 377,192 391,192 391,167 416,167 "/> - <g> - <path d="M202.4,201.7C202.4,201.7,202.4,201.7,202.4,201.7L202.4,201.7z"/> - <path d="M363.3,363.9c-12.9-4.6-31.4-6.2-43.2-8.8c-6.8-1.5-16.7-5.3-20-9.2c-3.3-4-1.3-40.9-1.3-40.9s6.1-9.6,9.4-18 - c3.3-8.4,6.9-31.4,6.9-31.4s6.8,0,9.2-11.9c2.6-13,6.6-18.4,6.1-28.1c-0.5-9-5.2-9.5-5.7-9.5c0,0,0,0,0,0s4.9-13.6,5.6-42.4 - C331.1,129.6,305,96,256,96c-49,0-75,33.5-74.3,67.6c0.6,28.7,5.6,42.4,5.6,42.4s0,0,0,0c-0.5,0-5.2,0.5-5.7,9.5 - c-0.5,9.7,3.6,14.9,6.1,27.9c2.4,11.9,9.2,12,9.2,12s3.6,23.1,6.9,31.5c3.3,8.5,9.4,18,9.4,18s2,36.9-1.3,40.9 - c-3.3,4-13.2,7.7-20,9.2c-11.9,2.6-30.3,4.3-43.2,8.9C135.8,368.5,96,384,96,416h160h160C416,384,376.2,368.5,363.3,363.9z - M256,400H118.7c2-3,4.7-5.1,8.2-7.6c7-5.1,16.1-9.8,27.1-13.6c6.8-2.4,16.7-4,25.4-5.3c5.7-0.9,11.1-1.7,15.9-2.8 - c3.4-0.8,20.8-5,28.8-14.6c4.5-5.4,5.8-12.7,5.6-32.3c-0.1-10-0.6-19.3-0.6-19.7l-0.2-4.2l-2.3-3.5c-1.5-2.3-5.8-9.5-8-15.3 - c-1.8-4.7-4.6-19.2-6-28.1c0,0,0.4,1-0.5-3.7c-0.9-4.7-8.4-4.3-9.4-8c-0.9-3.6-1.8-6.9-4.3-18.2c-2.5-11.3,2.8-11.2,3.9-16.2 - c0.6-3.1,0-5.7,0-5.8c0,0,0,0,0,0c-0.3-1-4.1-13.4-4.7-37.7c-0.3-13.2,4.6-25.6,13.8-34.9c10.6-10.8,26-16.5,44.5-16.5 - c19,0,34,5.7,44.6,16.5c9.2,9.3,14.1,21.7,13.8,34.9c-0.5,24.2-4.3,36.6-4.7,37.7c0,0,0,0,0,0c0,0.1-0.6,1.7-0.4,5.2 - c0.2,5.4,6.8,5.5,4.3,16.8c-2.5,11.3-3.4,14.6-4.3,18.2c-0.9,3.6-8.5,3.3-9.4,8s-0.5,3.7-0.5,3.7c-1.4,8.9-4.2,23.4-6,28.1 - c-2.3,5.8-6.6,13-8,15.3l-2.3,3.5l-0.2,4.2c0,0.4-0.5,9.7-0.6,19.7c-0.2,19.6,1.1,26.9,5.6,32.3c8,9.5,25.4,13.8,28.8,14.6 - c4.8,1.1,10.2,1.9,15.9,2.8c8.7,1.3,18.6,2.9,25.4,5.3c11,3.9,20.2,8.6,27.1,13.7c3.5,2.5,6.2,4.6,8.2,7.6H256z"/> - </g> -</g> -</svg> diff --git a/admin/bower_components/Ionicons/src/ios-personadd.svg b/admin/bower_components/Ionicons/src/ios-personadd.svg deleted file mode 100644 index 676d8fb..0000000 --- a/admin/bower_components/Ionicons/src/ios-personadd.svg +++ /dev/null @@ -1,16 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" style="enable-background:new 0 0 512 512;" xml:space="preserve"> -<g> - <polygon points="416,153 391,153 391,128 377,128 377,153 352,153 352,167 377,167 377,192 391,192 391,167 416,167 "/> - <g> - <path d="M363.3,363.9c-12.9-4.6-31.4-6.2-43.2-8.8c-6.8-1.5-16.7-5.3-20-9.2c-3.3-4-1.3-40.9-1.3-40.9s6.1-9.6,9.4-18 - c3.3-8.4,6.9-31.4,6.9-31.4s6.8,0,9.2-11.9c2.6-13,6.6-18.4,6.1-28.1c-0.5-9-5.2-9.5-5.7-9.5c0,0,0,0,0,0s4.9-13.6,5.6-42.4 - C331.1,129.6,305,96,256,96c-49,0-75,33.5-74.3,67.6c0.6,28.7,5.6,42.4,5.6,42.4s0,0,0,0c-0.5,0-5.2,0.5-5.7,9.5 - c-0.5,9.7,3.6,14.9,6.1,27.9c2.4,11.9,9.2,12,9.2,12s3.6,23.1,6.9,31.5c3.3,8.5,9.4,18,9.4,18s2,36.9-1.3,40.9 - c-3.3,4-13.2,7.7-20,9.2c-11.9,2.6-30.3,4.3-43.2,8.9C135.8,368.5,96,384,96,416h160h160C416,384,376.2,368.5,363.3,363.9z"/> - </g> -</g> -</svg> diff --git a/admin/bower_components/Ionicons/src/ios-photos-outline.svg b/admin/bower_components/Ionicons/src/ios-photos-outline.svg deleted file mode 100644 index df323c1..0000000 --- a/admin/bower_components/Ionicons/src/ios-photos-outline.svg +++ /dev/null @@ -1,10 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" style="enable-background:new 0 0 512 512;" xml:space="preserve"> -<g> - <path d="M96,128v320h384V128H96z M464,432H112V144h352V432z"/> - <polygon points="32,64 32,384 80,384 80,368 48,368 48,80 400,80 400,112 416,112 416,64 "/> -</g> -</svg> diff --git a/admin/bower_components/Ionicons/src/ios-photos.svg b/admin/bower_components/Ionicons/src/ios-photos.svg deleted file mode 100644 index 9a3b09e..0000000 --- a/admin/bower_components/Ionicons/src/ios-photos.svg +++ /dev/null @@ -1,10 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" style="enable-background:new 0 0 512 512;" xml:space="preserve"> -<g> - <path d="M96,128v320h384V128H96z"/> - <polygon points="416,64 32,64 32,384 80,384 80,112 416,112 "/> -</g> -</svg> diff --git a/admin/bower_components/Ionicons/src/ios-pie-outline.svg b/admin/bower_components/Ionicons/src/ios-pie-outline.svg deleted file mode 100644 index 6c79a5d..0000000 --- a/admin/bower_components/Ionicons/src/ios-pie-outline.svg +++ /dev/null @@ -1,16 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" enable-background="new 0 0 512 512" xml:space="preserve"> -<g> - <path d="M288,80.826c45.293,3.705,87.354,23.024,119.809,55.494C444.044,172.57,464,220.744,464,272.043 - c0,25.924-5.08,51.042-15.099,74.703c-9.68,22.859-23.54,43.384-41.194,61.024c-17.654,17.639-38.204,31.481-61.08,41.151 - c-23.673,10.01-48.823,15.081-74.752,15.081c-41.193,0-80.47-12.847-113.584-37.146c-15.95-11.705-29.957-25.733-41.633-41.692 - c-8.378-11.453-15.422-23.724-21.041-36.634l180.259-45.008L288,300.496V288V81 M272,64v224L74.245,337.376 - C101.653,420.221,179.841,480,271.875,480C386.75,480,480,386.875,480,272S387,64,272,64L272,64z"/> - <path d="M240,48.181v214.943L59.658,308.854c-9.117-23.568-11.197-56.973-11.158-69.496v-0.036v-0.035 - c0-47.311,16.465-93.746,45.173-127.398c16.735-19.618,37.502-34.981,61.721-45.663C180.099,55.331,208.519,49.274,240,48.181 - M256,32h-5.5C90.5,32,32,148.25,32,239.287c0,0,0.25,56.666,18.91,88.291L256,275.573V32L256,32z"/> -</g> -</svg> diff --git a/admin/bower_components/Ionicons/src/ios-pie.svg b/admin/bower_components/Ionicons/src/ios-pie.svg deleted file mode 100644 index 13e2e34..0000000 --- a/admin/bower_components/Ionicons/src/ios-pie.svg +++ /dev/null @@ -1,11 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" enable-background="new 0 0 512 512" xml:space="preserve"> -<g> - <path d="M272,64v224L74.245,337.376C101.653,420.221,179.841,480,271.875,480C386.75,480,480,386.875,480,272S387,64,272,64L272,64 - z"/> - <path d="M256,32h-5.5C90.5,32,32,148.25,32,239.287c0,0,0.25,56.666,18.91,88.291L256,275.573V32L256,32z"/> -</g> -</svg> diff --git a/admin/bower_components/Ionicons/src/ios-pint-outline.svg b/admin/bower_components/Ionicons/src/ios-pint-outline.svg deleted file mode 100644 index 63753e0..0000000 --- a/admin/bower_components/Ionicons/src/ios-pint-outline.svg +++ /dev/null @@ -1,17 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" enable-background="new 0 0 512 512" xml:space="preserve"> -<path d="M368,170.085c0-21.022-0.973-88.554-19.308-125.013C344.244,36.228,336.25,32,316.999,32H195.001 - c-19.25,0-27.246,4.197-31.693,13.041C144.973,81.5,144,149.25,144,170.272c0,98,32,100.353,32,180.853c0,39.5-16,71.402-16,99.402 - c0,27,9,29.473,32,29.473h128c23,0,32-2.535,32-29.535c0-28-16-59.715-16-99.215C336,270.75,368,268.085,368,170.085z - M177.602,51.983c0.778-1.546,1.339-1.763,2.53-2.295c1.977-0.884,6.161-1.688,14.869-1.688h121.998 - c8.708,0,12.893,0.803,14.869,1.687c1.19,0.532,1.752,0.872,2.53,2.418c8.029,15.967,13.601,42.611,16.105,75.896H161.496 - C164.001,94.653,169.572,67.951,177.602,51.983z M334.631,462.636C332.76,463.377,327.844,464,320,464H192 - c-7.844,0-12.761-0.623-14.639-1.359c-0.394-0.93-1.361-4.166-1.361-12.27c0-10.856,3.016-23.16,6.508-37.334 - c4.449-18.059,9.492-38.557,9.492-61.943c0-40.997-7.993-63.802-15.724-85.842C168.274,242.438,160,218.838,160,170.155 - c0-9.025,0.191-17.756,0.558-26.155h190.886c0.365,8.376,0.557,17.083,0.557,26.085c0,48.688-8.276,72.302-16.28,95.169 - c-7.728,22.079-15.72,44.895-15.72,85.887c0,23.39,5.043,43.822,9.493,61.856c3.491,14.15,6.507,26.368,6.507,37.222 - C336,458.355,335.024,461.713,334.631,462.636z"/> -</svg> diff --git a/admin/bower_components/Ionicons/src/ios-pint.svg b/admin/bower_components/Ionicons/src/ios-pint.svg deleted file mode 100644 index 0f6f784..0000000 --- a/admin/bower_components/Ionicons/src/ios-pint.svg +++ /dev/null @@ -1,12 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" enable-background="new 0 0 512 512" xml:space="preserve"> -<path d="M368,170.085c0-21.022-0.973-88.554-19.308-125.013C344.244,36.228,336.25,32,316.999,32H195.001 - c-19.25,0-27.246,4.197-31.693,13.041C144.973,81.5,144,149.25,144,170.272c0,98,32,100.353,32,180.853c0,39.5-16,71.402-16,99.402 - c0,27,9,29.473,32,29.473h128c23,0,32-2.535,32-29.535c0-28-16-59.715-16-99.215C336,270.75,368,268.085,368,170.085z - M177.602,51.983c0.778-1.546,1.339-1.763,2.53-2.295c1.977-0.884,6.161-1.688,14.869-1.688h121.998 - c8.708,0,12.893,0.803,14.869,1.687c1.19,0.532,1.752,0.872,2.53,2.418c8.029,15.967,13.601,42.611,16.105,75.896H161.496 - C164.001,94.653,169.572,67.951,177.602,51.983z"/> -</svg> diff --git a/admin/bower_components/Ionicons/src/ios-play-outline.svg b/admin/bower_components/Ionicons/src/ios-play-outline.svg deleted file mode 100644 index 8e95177..0000000 --- a/admin/bower_components/Ionicons/src/ios-play-outline.svg +++ /dev/null @@ -1,9 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" style="enable-background:new 0 0 512 512;" xml:space="preserve"> -<g> - <path d="M144,124.9L353.8,256L144,387.1V124.9 M128,96v320l256-160L128,96L128,96z"/> -</g> -</svg> diff --git a/admin/bower_components/Ionicons/src/ios-play.svg b/admin/bower_components/Ionicons/src/ios-play.svg deleted file mode 100644 index 4836633..0000000 --- a/admin/bower_components/Ionicons/src/ios-play.svg +++ /dev/null @@ -1,9 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" style="enable-background:new 0 0 512 512;" xml:space="preserve"> -<g> - <path d="M128,96v320l256-160L128,96L128,96z"/> -</g> -</svg> diff --git a/admin/bower_components/Ionicons/src/ios-plus-empty.svg b/admin/bower_components/Ionicons/src/ios-plus-empty.svg deleted file mode 100644 index 4fdb3bf..0000000 --- a/admin/bower_components/Ionicons/src/ios-plus-empty.svg +++ /dev/null @@ -1,9 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" style="enable-background:new 0 0 512 512;" xml:space="preserve"> -<g> - <path d="M384,265H264v119h-17V265H128v-17h119V128h17v120h120V265z"/> -</g> -</svg> diff --git a/admin/bower_components/Ionicons/src/ios-plus-outline.svg b/admin/bower_components/Ionicons/src/ios-plus-outline.svg deleted file mode 100644 index 3979af4..0000000 --- a/admin/bower_components/Ionicons/src/ios-plus-outline.svg +++ /dev/null @@ -1,18 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" style="enable-background:new 0 0 512 512;" xml:space="preserve"> -<g> - <g> - <g> - <path d="M256,48C141.1,48,48,141.1,48,256s93.1,208,208,208c114.9,0,208-93.1,208-208S370.9,48,256,48z M256,446.7 - c-105.1,0-190.7-85.5-190.7-190.7S150.9,65.3,256,65.3S446.7,150.9,446.7,256S361.1,446.7,256,446.7z"/> - </g> - </g> - <g> - <polygon points="264.1,128 247.3,128 247.3,247.9 128,247.9 128,264.7 247.3,264.7 247.3,384 264.1,384 264.1,264.7 384,264.7 - 384,247.9 264.1,247.9 "/> - </g> -</g> -</svg> diff --git a/admin/bower_components/Ionicons/src/ios-plus.svg b/admin/bower_components/Ionicons/src/ios-plus.svg deleted file mode 100644 index 73f7272..0000000 --- a/admin/bower_components/Ionicons/src/ios-plus.svg +++ /dev/null @@ -1,10 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" style="enable-background:new 0 0 512 512;" xml:space="preserve"> -<g> - <path d="M256,48C141.1,48,48,141.1,48,256s93.1,208,208,208c114.9,0,208-93.1,208-208S370.9,48,256,48z M384,265H264v119h-17V265 - H128v-17h119V128h17v120h120V265z"/> -</g> -</svg> diff --git a/admin/bower_components/Ionicons/src/ios-pricetag-outline.svg b/admin/bower_components/Ionicons/src/ios-pricetag-outline.svg deleted file mode 100644 index 59e41e3..0000000 --- a/admin/bower_components/Ionicons/src/ios-pricetag-outline.svg +++ /dev/null @@ -1,11 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" enable-background="new 0 0 512 512" xml:space="preserve"> -<g> - <path d="M464,32H304L48,320l160,160l256-288V32z M448,184L208.125,456L72.062,320L311.587,48H448V184z"/> - <path d="M368,160c17.645,0,32-14.355,32-32s-14.355-32-32-32s-32,14.355-32,32S350.355,160,368,160z M368,112 - c8.836,0,16,7.163,16,16s-7.164,16-16,16s-16-7.163-16-16S359.164,112,368,112z"/> -</g> -</svg> diff --git a/admin/bower_components/Ionicons/src/ios-pricetag.svg b/admin/bower_components/Ionicons/src/ios-pricetag.svg deleted file mode 100644 index 577a9c7..0000000 --- a/admin/bower_components/Ionicons/src/ios-pricetag.svg +++ /dev/null @@ -1,11 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" enable-background="new 0 0 512 512" xml:space="preserve"> -<g> - <circle cx="368" cy="128" r="16"/> - <path d="M304,32L48,320l160,160l256-288V32H304z M368,160c-17.645,0-32-14.355-32-32s14.355-32,32-32s32,14.355,32,32 - S385.645,160,368,160z"/> -</g> -</svg> diff --git a/admin/bower_components/Ionicons/src/ios-pricetags-outline.svg b/admin/bower_components/Ionicons/src/ios-pricetags-outline.svg deleted file mode 100644 index ea8650c..0000000 --- a/admin/bower_components/Ionicons/src/ios-pricetags-outline.svg +++ /dev/null @@ -1,12 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" enable-background="new 0 0 512 512" xml:space="preserve"> -<g> - <path d="M448,64V32H288L32,320l160,160l23.471-23.904L240,480l240-272V64H448z M192,457.371L54.39,320L294.621,48H432v16v16 - v105.377l-216.555,247.99l-11.34,11.363L192,457.371z M464,201.377L240,457.371l-13.182-12.65L448,192V80h16V201.377z"/> - <path d="M352,160c17.645,0,32-14.355,32-32s-14.355-32-32-32s-32,14.355-32,32S334.355,160,352,160z M352,112 - c8.836,0,16,7.163,16,16s-7.164,16-16,16s-16-7.163-16-16S343.164,112,352,112z"/> -</g> -</svg> diff --git a/admin/bower_components/Ionicons/src/ios-pricetags.svg b/admin/bower_components/Ionicons/src/ios-pricetags.svg deleted file mode 100644 index 67f45a4..0000000 --- a/admin/bower_components/Ionicons/src/ios-pricetags.svg +++ /dev/null @@ -1,16 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" enable-background="new 0 0 512 512" xml:space="preserve"> -<g> - <g> - <polygon points="464,64 464,201.377 227.153,467.48 240,480 480,208 480,64 "/> - </g> - <g> - <path d="M288,32L32,320l160,160l23.471-23.904l11.348-11.375L448,192V80V64V32H288z M352,160c-17.645,0-32-14.355-32-32 - s14.355-32,32-32s32,14.355,32,32S369.645,160,352,160z"/> - <circle cx="352" cy="128" r="16"/> - </g> -</g> -</svg> diff --git a/admin/bower_components/Ionicons/src/ios-printer-outline.svg b/admin/bower_components/Ionicons/src/ios-printer-outline.svg deleted file mode 100644 index a0530d7..0000000 --- a/admin/bower_components/Ionicons/src/ios-printer-outline.svg +++ /dev/null @@ -1,12 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" style="enable-background:new 0 0 512 512;" xml:space="preserve"> -<g> - <path d="M432.5,112H400V64H112v48H80.5C62.9,112,48,125.8,48,143.3v158.4c0,17.5,14.9,32.3,32.5,32.3H128v114h256V334h48.5 - c17.6,0,31.5-14.8,31.5-32.3V143.3C464,125.8,450.1,112,432.5,112z M128,80h256v32H128V80z M368,432H144V240h224V432z M448,301.7 - c0,8.7-6.7,16.3-15.5,16.3H384v-94H128v94H80.5c-8.8,0-16.5-7.6-16.5-16.3V143.3c0-8.7,7.7-15.3,16.5-15.3H432h0.5 - c8.8,0,15.5,6.6,15.5,15.3V301.7z"/> -</g> -</svg> diff --git a/admin/bower_components/Ionicons/src/ios-printer.svg b/admin/bower_components/Ionicons/src/ios-printer.svg deleted file mode 100644 index 1e5d3d7..0000000 --- a/admin/bower_components/Ionicons/src/ios-printer.svg +++ /dev/null @@ -1,17 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" enable-background="new 0 0 512 512" xml:space="preserve"> -<g> - <rect x="128" y="224" width="256" height="224"/> -</g> -<g> - <rect x="127.5" y="224.5" width="256" height="224"/> - <g> - <rect x="111.5" y="64.5" width="288" height="32"/> - <path d="M432.5,112.5h-352c-17.645,0-33,12.842-33,30.309v158.393c0,17.468,15.355,33.299,33,33.299h31v-126h288v126h33 - c17.645,0,31-15.831,31-33.299V142.809C463.5,125.342,450.145,112.5,432.5,112.5z"/> - </g> -</g> -</svg> diff --git a/admin/bower_components/Ionicons/src/ios-pulse-strong.svg b/admin/bower_components/Ionicons/src/ios-pulse-strong.svg deleted file mode 100644 index c154290..0000000 --- a/admin/bower_components/Ionicons/src/ios-pulse-strong.svg +++ /dev/null @@ -1,12 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" enable-background="new 0 0 512 512" xml:space="preserve"> -<path d="M448,273.001c-21.27,0-39.296,13.999-45.596,32.999h-38.857l-28.361-85.417c-2.176-6.553-8.303-10.956-15.183-10.956 - c-0.112,0-0.224,0-0.335,0.004c-7.016,0.145-13.117,4.844-15.049,11.588l-44.484,155.262L207.782,62.373 - C206.535,54.893,200.333,48,192,48s-13.693,5.776-15.525,13.135L115.496,306H16v31.999h112c7.348,0,13.75-5.003,15.525-12.134 - l45.368-182.177l51.324,307.94c1.229,7.377,7.397,11.92,14.864,12.344C255.389,463.99,255.695,464,256,464 - c7.097,0,13.406-3.701,15.381-10.594l49.744-173.617l15.689,47.252c2.173,6.543,8.292,10.958,15.186,10.958h51.108 - C409.973,355.999,427.477,369,448,369c26.511,0,48-22.492,48-49C496,293.491,474.511,273.001,448,273.001z"/> -</svg> diff --git a/admin/bower_components/Ionicons/src/ios-pulse.svg b/admin/bower_components/Ionicons/src/ios-pulse.svg deleted file mode 100644 index f347850..0000000 --- a/admin/bower_components/Ionicons/src/ios-pulse.svg +++ /dev/null @@ -1,12 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" enable-background="new 0 0 512 512" xml:space="preserve"> -<path d="M448,288c-15.268,0-28.029,10.695-31.223,25h-59.004l-30.181-90.896c-1.105-3.329-4.246-5.543-7.759-5.478 - c-3.508,0.072-6.559,2.422-7.524,5.795L258.067,411.74L199.892,62.685c-0.624-3.74-3.787-6.528-7.576-6.679 - c-3.809-0.139-7.161,2.382-8.078,6.061L121.748,313H32v16h96c3.674,0,6.875-2.502,7.763-6.066l54.685-219.591l57.661,345.973 - c0.615,3.688,3.703,6.459,7.437,6.672c0.153,0.009,0.307,0.013,0.459,0.013c3.549,0,6.699-2.35,7.687-5.797l56.872-198.496 - l23.845,71.813c1.087,3.271,4.146,5.479,7.593,5.479h65.292c3.89,13.289,16.161,23,30.708,23c17.674,0,32-14.327,32-32 - S465.674,288,448,288z"/> -</svg> diff --git a/admin/bower_components/Ionicons/src/ios-rainy-outline.svg b/admin/bower_components/Ionicons/src/ios-rainy-outline.svg deleted file mode 100644 index 815f6aa..0000000 --- a/admin/bower_components/Ionicons/src/ios-rainy-outline.svg +++ /dev/null @@ -1,20 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" style="enable-background:new 0 0 512 512;" xml:space="preserve"> -<style type="text/css"> -<![CDATA[ - .st0{fill:#010101;} -]]> -</style> -<path class="st0" d="M332.1,179.4c-2.8,0-5.7-0.1-8.4,0.3c-8.3-36.8-35.2-67.6-80.3-67.6c-50.9,0-82.3,38-82.3,83.6 - c0,2.8,0.1,5.5,0.4,8.2c-27.7,2.5-49.5,31.3-49.5,59.8c0,29.2,22.9,54.6,51.6,56.2l-24.5,34.4c-1.1,1.6-2,3.4-2,5.5 - c0,4.6,3.7,8.3,8.3,8.3c3,0,5.6-1.6,7.1-4l31-43.8h36.1l-46.1,65.8c-1.2,1.6-2.1,3.6-2.1,5.6c0,4.6,3.7,8.3,8.3,8.3 - c3,0,5.6-1.8,7.2-4.3l52.6-75.5h37.9l-24.9,34.4c-1.2,1.6-2.2,3.8-2.2,5.6c0,4.6,3.7,8.3,8.3,8.3c3.1,0,5.4-1.7,7.2-4.1l31.6-44.3 - h34.7c0.1,0,0.3-0.1,0.4-0.1l-46.1,65.9c-1.3,1.7-2.3,3.6-2.3,5.8c0,4.6,3.7,8.3,8.3,8.3c3.2,0,5.5-2,7.4-4.5l55.5-79.8 - c26-9.9,44.6-35.8,44.6-65.2C400,212.8,369.6,179.4,332.1,179.4z M332.1,302.1H290l-0.1-0.1l-0.1,0.1H166.4 - c-10,0-19.5-4.6-26.7-11.9c-7.2-7.3-11.1-17.2-11.1-27.4c0-19.6,15.2-39.8,34.9-43c1.7-0.3,9.2-1.4,15-1.9c0,0-0.5-5.6-0.7-10.2 - c-0.1-4.6-0.1-9.9-0.1-12.1c0-36.4,29.5-66.9,65.8-66.9c15.2,0,29.5,5.1,41.3,14.7c11.5,9.3,19.6,25.4,22.8,39.7l3.3,14.7l14.9-1.9 - c2.2-0.3,4.3-0.4,6.4-0.4c28.3,0,51.3,25.9,51.3,54.4C383.4,278.3,360.4,302.1,332.1,302.1z"/> -</svg> diff --git a/admin/bower_components/Ionicons/src/ios-rainy.svg b/admin/bower_components/Ionicons/src/ios-rainy.svg deleted file mode 100644 index 143caf0..0000000 --- a/admin/bower_components/Ionicons/src/ios-rainy.svg +++ /dev/null @@ -1,17 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" style="enable-background:new 0 0 512 512;" xml:space="preserve"> -<style type="text/css"> -<![CDATA[ - .st0{fill:#010101;} -]]> -</style> -<path class="st0" d="M332.1,179.4c-2.8,0-5.7-0.1-8.4,0.3c-8.3-36.8-35.2-67.6-80.3-67.6c-50.9,0-82.3,38-82.3,83.6 - c0,2.8,0.1,5.5,0.4,8.2c-27.7,2.5-49.5,31.3-49.5,59.8c0,29.2,22.9,54.6,51.6,56.2l-24.5,34.4c-1.1,1.6-2,3.4-2,5.5 - c0,4.6,3.7,8.3,8.3,8.3c3,0,5.6-1.6,7.1-4l31-43.8h36.1l-46.1,65.8c-1.2,1.6-2.1,3.6-2.1,5.6c0,4.6,3.7,8.3,8.3,8.3 - c3,0,5.6-1.8,7.2-4.3l52.6-75.5h37.9l-24.9,34.4c-1.2,1.6-2.2,3.8-2.2,5.6c0,4.6,3.7,8.3,8.3,8.3c3.1,0,5.4-1.7,7.2-4.1l31.6-44.3 - h34.7c0.1,0,0.3-0.1,0.4-0.1l-46.1,65.9c-1.3,1.7-2.3,3.6-2.3,5.8c0,4.6,3.7,8.3,8.3,8.3c3.2,0,5.5-2,7.4-4.5l55.5-79.8 - c26-9.9,44.6-35.8,44.6-65.2C400,212.8,369.6,179.4,332.1,179.4z"/> -</svg> diff --git a/admin/bower_components/Ionicons/src/ios-recording-outline.svg b/admin/bower_components/Ionicons/src/ios-recording-outline.svg deleted file mode 100644 index 20995a3..0000000 --- a/admin/bower_components/Ionicons/src/ios-recording-outline.svg +++ /dev/null @@ -1,15 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" style="enable-background:new 0 0 512 512;" xml:space="preserve"> -<path d="M386.2,144c-60.6,0-109.8,50.1-109.8,112c0,40.4,21,75.7,52.5,95.4H183.1c31.5-19.7,52.5-55,52.5-95.4 - c0-61.9-49.2-112-109.8-112C65.2,144,16,194.1,16,256c0,61.9,49.2,112,109.8,112h260.4c60.6,0,109.8-50.1,109.8-112 - C496,194.1,446.8,144,386.2,144z M32.3,256c0-52.6,42-95.4,93.5-95.4c51.6,0,93.5,42.8,93.5,95.4s-42,95.4-93.5,95.4 - C74.2,351.4,32.3,308.6,32.3,256z M386.2,351.4c-51.6,0-93.5-42.8-93.5-95.4s42-95.4,93.5-95.4s93.5,42.8,93.5,95.4 - S437.8,351.4,386.2,351.4z"/> -<path d="M384,208c26.5,0,48,21.5,48,48c0,26.5-21.5,48-48,48s-48-21.5-48-48C336,229.5,357.5,208,384,208 M384,192 - c-35.3,0-64,28.7-64,64c0,35.3,28.7,64,64,64s64-28.7,64-64C448,220.7,419.3,192,384,192L384,192z"/> -<path d="M128,208c26.5,0,48,21.5,48,48c0,26.5-21.5,48-48,48s-48-21.5-48-48C80,229.5,101.5,208,128,208 M128,192 - c-35.3,0-64,28.7-64,64c0,35.3,28.7,64,64,64s64-28.7,64-64C192,220.7,163.3,192,128,192L128,192z"/> -</svg> diff --git a/admin/bower_components/Ionicons/src/ios-recording.svg b/admin/bower_components/Ionicons/src/ios-recording.svg deleted file mode 100644 index 97ecfed..0000000 --- a/admin/bower_components/Ionicons/src/ios-recording.svg +++ /dev/null @@ -1,14 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" style="enable-background:new 0 0 512 512;" xml:space="preserve"> -<g> - <path d="M386.2,144c-60.6,0-109.8,49.9-109.8,111.8c0,40.4,21,76.2,52.5,95.2H183.1c31.5-19,52.5-54.8,52.5-95.2 - c0-61.9-49.2-111.9-109.8-111.9C65.2,143.9,16,194.1,16,255.9C16,317.8,65.2,368,125.8,368h260.4c60.6,0,109.8-50.1,109.8-112 - C496,194.1,446.8,144,386.2,144z M128,320c-35.3,0-64-28.7-64-64c0-35.3,28.7-64,64-64s64,28.7,64,64C192,291.3,163.3,320,128,320z - M384,320c-35.3,0-64-28.7-64-64c0-35.3,28.7-64,64-64s64,28.7,64,64C448,291.3,419.3,320,384,320z"/> - <path d="M384,208c-26.5,0-48,21.5-48,48c0,26.5,21.5,48,48,48s48-21.5,48-48C432,229.5,410.5,208,384,208z"/> - <path d="M128,208c-26.5,0-48,21.5-48,48c0,26.5,21.5,48,48,48s48-21.5,48-48C176,229.5,154.5,208,128,208z"/> -</g> -</svg> diff --git a/admin/bower_components/Ionicons/src/ios-redo-outline.svg b/admin/bower_components/Ionicons/src/ios-redo-outline.svg deleted file mode 100644 index 02a6d2c..0000000 --- a/admin/bower_components/Ionicons/src/ios-redo-outline.svg +++ /dev/null @@ -1,11 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" style="enable-background:new 0 0 512 512;" xml:space="preserve"> -<g> - <path d="M64,400h10.3l19.2-31.2c20.5-32.7,44.9-62.8,75.8-76.6c24.4-10.9,46.7-18.9,86.7-20V352l192-128L256,96v80.3 - c-63,2.8-108.1,20.7-143.3,56.2c-52.3,52.7-48.7,119-48.7,135.7C64.1,377.1,64,389.9,64,400z M272,192v-64.7l148.1,96.8L272,320.8 - V256c-91,0-144.6,24.6-192.2,105.4C79.8,361.4,71,192,272,192z"/> -</g> -</svg> diff --git a/admin/bower_components/Ionicons/src/ios-redo.svg b/admin/bower_components/Ionicons/src/ios-redo.svg deleted file mode 100644 index abd3c15..0000000 --- a/admin/bower_components/Ionicons/src/ios-redo.svg +++ /dev/null @@ -1,10 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" style="enable-background:new 0 0 512 512;" xml:space="preserve"> -<g> - <path d="M64,400h10.3l19.2-31.2c20.5-32.7,44.9-62.8,75.8-76.6c24.4-10.9,46.7-18.9,86.7-20V352l192-128L256,96v80.3 - c-63,2.8-108.1,20.7-143.3,56.2c-52.3,52.7-48.7,119-48.7,135.7C64.1,377.1,64,389.9,64,400z"/> -</g> -</svg> diff --git a/admin/bower_components/Ionicons/src/ios-refresh-empty.svg b/admin/bower_components/Ionicons/src/ios-refresh-empty.svg deleted file mode 100644 index bf6b841..0000000 --- a/admin/bower_components/Ionicons/src/ios-refresh-empty.svg +++ /dev/null @@ -1,10 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" style="enable-background:new 0 0 512 512;" xml:space="preserve"> -<g> - <path d="M256,384.1c-70.7,0-128-57.3-128-128.1c0-70.8,57.3-128.1,128-128.1V84l96,64l-96,55.7v-55.8 - c-59.6,0-108.1,48.5-108.1,108.1c0,59.6,48.5,108.1,108.1,108.1S364.1,316,364.1,256H384C384,327,326.7,384.1,256,384.1z"/> -</g> -</svg> diff --git a/admin/bower_components/Ionicons/src/ios-refresh-outline.svg b/admin/bower_components/Ionicons/src/ios-refresh-outline.svg deleted file mode 100644 index c2048a1..0000000 --- a/admin/bower_components/Ionicons/src/ios-refresh-outline.svg +++ /dev/null @@ -1,15 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" style="enable-background:new 0 0 512 512;" xml:space="preserve"> -<path d="M364.1,256c0,60-48.5,108.2-108.1,108.2S147.9,315.7,147.9,256c0-59.6,48.5-108.1,108.1-108.1v55.8l96-55.7l-96-64v44 - c-70.7,0-128,57.4-128,128.1c0,70.8,57.3,128.1,128,128.1c70.7,0,128-57.1,128-128.1H364.1z"/> -<g> - <g> - <path d="M256,48C141.1,48,48,141.1,48,256s93.1,208,208,208c114.9,0,208-93.1,208-208S370.9,48,256,48z M256,446.7 - c-105.1,0-190.7-85.5-190.7-190.7c0-105.1,85.5-190.7,190.7-190.7c105.1,0,190.7,85.5,190.7,190.7 - C446.7,361.1,361.1,446.7,256,446.7z"/> - </g> -</g> -</svg> diff --git a/admin/bower_components/Ionicons/src/ios-refresh.svg b/admin/bower_components/Ionicons/src/ios-refresh.svg deleted file mode 100644 index 95bc848..0000000 --- a/admin/bower_components/Ionicons/src/ios-refresh.svg +++ /dev/null @@ -1,11 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" style="enable-background:new 0 0 512 512;" xml:space="preserve"> -<g> - <path d="M256,48C141.1,48,48,141.1,48,256s93.1,208,208,208c114.9,0,208-93.1,208-208S370.9,48,256,48z M256,384.1 - c-70.7,0-128-57.3-128-128.1c0-70.8,57.3-128.1,128-128.1V84l96,64l-96,55.7v-55.8c-59.6,0-108.1,48.5-108.1,108.1 - c0,59.6,48.5,108.1,108.1,108.1S364.1,316,364.1,256H384C384,327,326.7,384.1,256,384.1z"/> -</g> -</svg> diff --git a/admin/bower_components/Ionicons/src/ios-reload.svg b/admin/bower_components/Ionicons/src/ios-reload.svg deleted file mode 100644 index 1c0c950..0000000 --- a/admin/bower_components/Ionicons/src/ios-reload.svg +++ /dev/null @@ -1,11 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" style="enable-background:new 0 0 512 512;" xml:space="preserve"> -<g id="PL_x5F_Reset_1_"> - <path d="M256,64c105.9,0,191.7,85.7,191.9,191.5l55-52.5l9,9.1L441.6,280L375,212.1l9-9.1l51.1,52.4 - C434.8,156.9,354.6,76.8,256,76.8c-98.8,0-179.2,80.4-179.2,179.2c0,98.8,80.4,179.2,179.2,179.2c78.6,0,145.5-51,169.5-121.6 - l12.4,3.5C412.3,393.2,340.6,448,256,448c-106,0-192-86-192-192S150,64,256,64z"/> -</g> -</svg> diff --git a/admin/bower_components/Ionicons/src/ios-reverse-camera-outline.svg b/admin/bower_components/Ionicons/src/ios-reverse-camera-outline.svg deleted file mode 100644 index 49dd4b1..0000000 --- a/admin/bower_components/Ionicons/src/ios-reverse-camera-outline.svg +++ /dev/null @@ -1,20 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" enable-background="new 0 0 512 512" xml:space="preserve"> -<g> - <path d="M301.815,318.608c-13.114,11.029-28.956,17.356-45.815,17.356c-36.36,0-66.286-28.965-70.89-61.965h30.61l-38.87-50 - l-37.534,50h29.479c4.696,42,41.717,78,87.205,78c20.9,0,41.17-7.566,57.076-21.218l2.37-2.159l-11.599-11.662L301.815,318.608z"/> - <path d="M315.736,198.885c-16.188-14.775-37.402-22.839-59.736-22.839c-20.9,0-41.169,7.556-57.075,21.206l-2.371,2.052 - l11.599,11.61l2.033-1.706c12.927-10.872,29.197-17.005,45.814-17.005c36.343,0,66.274,28.797,70.891,63.797h-30.644l38.846,51.225 - L372.719,256h-29.512C340.966,236,331.275,213.064,315.736,198.885z"/> - <path d="M417.5,160h-61.725c-32.105-36-42.219-48-54.525-48h-88.5c-12.314,0-22.167,12-54.521,48H145v-16h-34v16H97.5 - C79.855,160,64,173.217,64,190.684v176.018C64,384.169,79.855,400,97.5,400h320c17.645,0,30.5-15.831,30.5-33.299V190.684 - C448,173.217,435.145,160,417.5,160z M432,366.701c0,9.263-6.229,17.299-14.5,17.299h-320c-8.738,0-17.5-8.664-17.5-17.299V190.684 - C80,182.518,88.126,176,97.5,176h60.729c0,0,4.124,0,6.133,0s3.225-0.199,5.768-3.2s7.702-10.008,11.08-13.795 - c11.296-12.666,19.457-21.915,25.316-27.132c4.746-4.225,6.211-3.873,6.225-3.873h88.5c0.016,0,1.611-0.363,6.709,4.219 - c6.141,5.521,14.705,16.84,26.558,30.198c2.888,3.255,7.214,8.11,9.317,10.44s4.252,3.143,5.771,3.143s6.17,0,6.17,0H417.5 - c8.832,0,14.5,5.965,14.5,14.684V366.701z"/> -</g> -</svg> diff --git a/admin/bower_components/Ionicons/src/ios-reverse-camera.svg b/admin/bower_components/Ionicons/src/ios-reverse-camera.svg deleted file mode 100644 index 9546067..0000000 --- a/admin/bower_components/Ionicons/src/ios-reverse-camera.svg +++ /dev/null @@ -1,15 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" enable-background="new 0 0 512 512" xml:space="preserve"> -<g> - <path d="M417.5,160h-61.725c-32.105-36-42.219-48-54.525-48h-88.5c-12.314,0-22.167,12-54.521,48H145v-16h-34v16H97.5 - C79.855,160,64,173.217,64,190.684v176.018C64,384.169,79.855,400,97.5,400h320c17.645,0,30.5-15.831,30.5-33.299V190.684 - C448,173.217,435.145,160,417.5,160z M313.076,330.782C297.17,344.434,276.9,352,256,352c-45.487,0-82.509-36-87.205-78h-29.479 - l37.534-50l38.87,50h-30.61c4.604,33,34.53,61.965,70.89,61.965c16.859,0,32.701-6.327,45.815-17.356l2.032-1.647l11.599,11.662 - L313.076,330.782z M335.094,307.225L296.248,256h30.644c-4.617-35-34.548-63.797-70.891-63.797 - c-16.618,0-32.888,6.133-45.814,17.005l-2.033,1.706l-11.599-11.61l2.371-2.052c15.905-13.65,36.175-21.206,57.075-21.206 - c22.333,0,43.548,8.063,59.736,22.839C331.275,213.064,340.966,236,343.207,256h29.512L335.094,307.225z"/> -</g> -</svg> diff --git a/admin/bower_components/Ionicons/src/ios-rewind-outline.svg b/admin/bower_components/Ionicons/src/ios-rewind-outline.svg deleted file mode 100644 index 2b722c8..0000000 --- a/admin/bower_components/Ionicons/src/ios-rewind-outline.svg +++ /dev/null @@ -1,8 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" style="enable-background:new 0 0 512 512;" xml:space="preserve"> -<path d="M464,155v201.9L280.5,256L464,155 M240,156v77.7v27.1v95.6L64,256l176-100.2 M256,128L32,256l224,128V260.8L480,384V128 - L256,251.2V128L256,128z"/> -</svg> diff --git a/admin/bower_components/Ionicons/src/ios-rewind.svg b/admin/bower_components/Ionicons/src/ios-rewind.svg deleted file mode 100644 index 808e3a4..0000000 --- a/admin/bower_components/Ionicons/src/ios-rewind.svg +++ /dev/null @@ -1,7 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" style="enable-background:new 0 0 512 512;" xml:space="preserve"> -<path d="M256,128L32,256l224,128V260.8L480,384V128L256,251.2V128L256,128z"/> -</svg> diff --git a/admin/bower_components/Ionicons/src/ios-rose-outline.svg b/admin/bower_components/Ionicons/src/ios-rose-outline.svg deleted file mode 100644 index 30e0411..0000000 --- a/admin/bower_components/Ionicons/src/ios-rose-outline.svg +++ /dev/null @@ -1,29 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" enable-background="new 0 0 512 512" xml:space="preserve"> -<g> - <path d="M379.769,153.431c-29.777,55.586-17.604,99.504-6.645,139.039C378.717,312.648,384,331.708,384,351.889 - c0,15.897-2.956,30.873-8.785,44.51c-5.727,13.396-14.104,25.212-24.898,35.12C327.169,452.768,294.555,464,256,464 - s-71.169-11.232-94.316-32.481c-10.795-9.908-19.172-21.725-24.898-35.12c-5.829-13.637-8.785-28.612-8.785-44.51 - c0-31.65,6.92-55.999,21.775-76.626c13.061-18.134,32.646-34.094,63.505-51.749l6.506-3.725 - c20.197-11.57,27.001-15.467,43.976-23.588c31.845-15.234,66.513-28.387,103.041-39.094 - C371.088,155.851,375.412,154.625,379.769,153.431 M416,128c-18.863,4.163-36.75,8.786-53.697,13.753 - c-40.457,11.858-75.509,25.693-105.445,40.015c-19.271,9.219-26.236,13.393-51.522,27.859C147.001,243,112,278.926,112,351.889 - S167.635,480,256,480s144-55.148,144-128.111S338.999,224,416,128L416,128z"/> - <path d="M133.516,123.147c21.432,6.955,47.724,16.977,69.799,29.846c6.385,3.723,12.092,7.493,17.092,11.291 - c-5.504,2.905-10.895,5.855-16.138,8.833c-7.212,4.096-14.359,8.362-21.243,12.679c-10.484,6.574-20.435,13.308-29.789,20.156 - C152.637,180.034,147.555,151.15,133.516,123.147 M96,96c41.475,47.079,44.624,103.891,39.382,144.741 - c12.772-11.274,31.177-25.734,56.144-41.389c6.442-4.041,13.312-8.158,20.645-12.322c11.578-6.575,23.538-12.822,35.834-18.765 - c-9.113-10.898-22.07-20.606-36.631-29.095C162.631,110.756,96,96,96,96L96,96z"/> - <path d="M344.629,80.697c5.309,7.227,12.393,17.661,17.66,27.726c-29.863,8.433-65.994,21.145-94.967,33.476 - c-5.963-6.235-12.982-12.294-21.006-18.135c17.437-15.757,38.773-27.668,63.652-35.506 - C324.518,83.675,337.016,81.612,344.629,80.697 M352,64c0,0-78.623,2.321-130.681,62.469c16.629,9.903,29.735,20.503,38.959,31.533 - l2.724,3.257c37.152-16.794,88.131-34.085,120.998-42.009C377.617,95.827,352,64,352,64L352,64z"/> - <path d="M181.229,53.532c9.241,6.122,22.68,16.481,35.999,31.924c-4.851,4.201-9.487,8.623-13.888,13.247 - c-14.024-7.088-24.951-12.192-36.826-16.602C170.174,73.63,175.095,63.788,181.229,53.532 M176,32 - c-15.256,22.406-25.684,45.299-30.336,59.997c21.111,6.355,35.475,13.215,61.389,26.574c9.505-11.4,20.415-21.626,32.605-30.543 - C210.342,47.655,176,32,176,32L176,32z"/> -</g> -</svg> diff --git a/admin/bower_components/Ionicons/src/ios-rose.svg b/admin/bower_components/Ionicons/src/ios-rose.svg deleted file mode 100644 index 04811ee..0000000 --- a/admin/bower_components/Ionicons/src/ios-rose.svg +++ /dev/null @@ -1,18 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" enable-background="new 0 0 512 512" xml:space="preserve"> -<g> - <path d="M416,128c-18.863,4.163-36.75,8.786-53.697,13.753c-40.457,11.858-75.509,25.693-105.445,40.015 - c-19.271,9.219-26.236,13.393-51.522,27.859C147.001,243,112,278.926,112,351.889S167.635,480,256,480s144-55.148,144-128.111 - S338.999,224,416,128L416,128z"/> - <path d="M96,96c41.475,47.079,44.624,103.891,39.382,144.741c12.772-11.274,31.177-25.734,56.144-41.389 - c6.442-4.041,13.312-8.158,20.645-12.322c11.578-6.575,23.538-12.822,35.834-18.765c-9.113-10.898-22.07-20.606-36.631-29.095 - C162.631,110.756,96,96,96,96L96,96z"/> - <path d="M352,64c0,0-78.623,2.321-130.681,62.469c16.629,9.903,29.735,20.503,38.959,31.533l2.724,3.257 - c37.152-16.794,88.131-34.085,120.998-42.009C377.617,95.827,352,64,352,64L352,64z"/> - <path d="M176,32c-15.256,22.406-25.684,45.299-30.336,59.997c21.111,6.355,35.475,13.215,61.389,26.574 - c9.505-11.4,20.415-21.626,32.605-30.543C210.342,47.655,176,32,176,32L176,32z"/> -</g> -</svg> diff --git a/admin/bower_components/Ionicons/src/ios-search-strong.svg b/admin/bower_components/Ionicons/src/ios-search-strong.svg deleted file mode 100644 index 6960eb1..0000000 --- a/admin/bower_components/Ionicons/src/ios-search-strong.svg +++ /dev/null @@ -1,10 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" style="enable-background:new 0 0 512 512;" xml:space="preserve"> -<path d="M344.5,298c15-23.6,23.8-51.6,23.8-81.7c0-84.1-68.1-152.3-152.1-152.3C132.1,64,64,132.2,64,216.3 - c0,84.1,68.1,152.3,152.1,152.3c30.5,0,58.9-9,82.7-24.4l6.9-4.8L414.3,448l33.7-34.3L339.5,305.1L344.5,298z M301.4,131.2 - c22.7,22.7,35.2,52.9,35.2,85c0,32.1-12.5,62.3-35.2,85c-22.7,22.7-52.9,35.2-85,35.2c-32.1,0-62.3-12.5-85-35.2 - c-22.7-22.7-35.2-52.9-35.2-85c0-32.1,12.5-62.3,35.2-85c22.7-22.7,52.9-35.2,85-35.2C248.5,96,278.7,108.5,301.4,131.2z"/> -</svg> diff --git a/admin/bower_components/Ionicons/src/ios-search.svg b/admin/bower_components/Ionicons/src/ios-search.svg deleted file mode 100644 index ff47791..0000000 --- a/admin/bower_components/Ionicons/src/ios-search.svg +++ /dev/null @@ -1,10 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" style="enable-background:new 0 0 512 512;" xml:space="preserve"> -<path d="M448.3,424.7L335,311.3c20.8-26,33.3-59.1,33.3-95.1c0-84.1-68.1-152.2-152-152.2c-84,0-152,68.2-152,152.2 - s68.1,152.2,152,152.2c36.2,0,69.4-12.7,95.5-33.8L425,448L448.3,424.7z M120.1,312.6c-25.7-25.7-39.8-59.9-39.8-96.3 - s14.2-70.6,39.8-96.3S180,80,216.3,80c36.3,0,70.5,14.2,96.2,39.9s39.8,59.9,39.8,96.3s-14.2,70.6-39.8,96.3 - c-25.7,25.7-59.9,39.9-96.2,39.9C180,352.5,145.8,338.3,120.1,312.6z"/> -</svg> diff --git a/admin/bower_components/Ionicons/src/ios-settings-strong.svg b/admin/bower_components/Ionicons/src/ios-settings-strong.svg deleted file mode 100644 index cb15e18..0000000 --- a/admin/bower_components/Ionicons/src/ios-settings-strong.svg +++ /dev/null @@ -1,14 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" enable-background="new 0 0 512 512" xml:space="preserve"> -<g> - <path d="M32,376h283.35c6.186-14.112,20.281-24,36.65-24s30.465,9.888,36.65,24H480v32h-91.35c-6.186,14.112-20.281,24-36.65,24 - s-30.465-9.888-36.65-24H32"/> - <path d="M32,240h91.35c6.186-14.112,20.281-24,36.65-24s30.465,9.888,36.65,24H480v32H196.65c-6.186,14.112-20.281,24-36.65,24 - s-30.465-9.888-36.65-24H32"/> - <path d="M32,104h283.35c6.186-14.112,20.281-24,36.65-24s30.465,9.888,36.65,24H480v32h-91.35c-6.186,14.112-20.281,24-36.65,24 - s-30.465-9.888-36.65-24H32"/> -</g> -</svg> diff --git a/admin/bower_components/Ionicons/src/ios-settings.svg b/admin/bower_components/Ionicons/src/ios-settings.svg deleted file mode 100644 index bb60a99..0000000 --- a/admin/bower_components/Ionicons/src/ios-settings.svg +++ /dev/null @@ -1,24 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" enable-background="new 0 0 512 512" xml:space="preserve"> -<g> - <path d="M352,104c8.837,0,16,7.163,16,16s-7.163,16-16,16s-16-7.163-16-16S343.163,104,352,104 M352,88c-17.645,0-32,14.355-32,32 - s14.355,32,32,32s32-14.355,32-32S369.645,88,352,88L352,88z"/> - <path d="M352,376c8.837,0,16,7.163,16,16s-7.163,16-16,16s-16-7.163-16-16S343.163,376,352,376 M352,360c-17.645,0-32,14.355-32,32 - s14.355,32,32,32s32-14.355,32-32S369.645,360,352,360L352,360z"/> - <g> - <path d="M160,240c8.837,0,16,7.163,16,16s-7.163,16-16,16s-16-7.163-16-16S151.163,240,160,240 M160,224 - c-17.645,0-32,14.355-32,32s14.355,32,32,32s32-14.355,32-32S177.645,224,160,224L160,224z"/> - <g> - <path d="M207.32,248H480v16H207.32c0.439-2.604,0.68-5.273,0.68-8S207.76,250.604,207.32,248z"/> - <path d="M112,256c0,2.727,0.24,5.396,0.68,8H32v-16h80.68C112.24,250.604,112,253.273,112,256z"/> - <path d="M399.32,384H480v16h-80.68c0.439-2.604,0.68-5.273,0.68-8S399.76,386.604,399.32,384z"/> - <path d="M304,392c0,2.727,0.24,5.396,0.68,8H32v-16h272.68C304.24,386.604,304,389.273,304,392z"/> - <path d="M399.32,112H480v16h-80.68c0.439-2.604,0.68-5.273,0.68-8S399.76,114.604,399.32,112z"/> - <path d="M304.68,112c-0.439,2.604-0.68,5.273-0.68,8s0.24,5.396,0.68,8H32v-16H304.68z"/> - </g> - </g> -</g> -</svg> diff --git a/admin/bower_components/Ionicons/src/ios-shuffle-strong.svg b/admin/bower_components/Ionicons/src/ios-shuffle-strong.svg deleted file mode 100644 index 006b090..0000000 --- a/admin/bower_components/Ionicons/src/ios-shuffle-strong.svg +++ /dev/null @@ -1,18 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" enable-background="new 0 0 512 512" xml:space="preserve"> -<g> - <path d="M365.419,152h13.81l-50.738,41.584l20.308,24.572L448,136l-99.136-84l-20.368,24.978L379.679,120h-14.26 - c-103.727,0-146.494,79.62-180.857,143.727c-1.362,2.542-2.715,4.99-4.06,7.488l-0.059,0.095c-1.591,2.953-3.176,6.114-4.76,9.038 - c-35.562,65.63-66.893,83.214-111.684,83.641V396c37.625,0,57.563-9.451,72.236-18.178c24.935-14.831,47.042-44.559,67.583-82.467 - c1.541-2.844,3.083-5.752,4.632-8.626l0.225-0.438c1.459-2.711,2.922-5.273,4.39-8.014C246.369,216.113,280.808,152,365.419,152z" - /> - <path d="M348.798,293.844l-20.308,24.572L379.229,360h-13.81c-70.728,0-106.396-44.801-135.649-95.812l-17.648,32.618 - C243.556,346.626,287.116,392,365.419,392h14.26l-51.183,43.022L348.864,460L448,376L348.798,293.844z"/> - <path d="M175.684,231.652c1.584,2.924,3.169,6.085,4.76,9.038l0.059,0.095c1.218,2.262,2.442,4.49,3.675,6.777 - c5.82-10.73,11.98-21.748,18.695-32.649c-20.273-37.079-42.083-66.132-66.636-80.735C121.563,125.451,101.625,116,64,116v32.011 - C108.791,148.438,140.122,166.022,175.684,231.652z"/> -</g> -</svg> diff --git a/admin/bower_components/Ionicons/src/ios-shuffle.svg b/admin/bower_components/Ionicons/src/ios-shuffle.svg deleted file mode 100644 index 84bdbcb..0000000 --- a/admin/bower_components/Ionicons/src/ios-shuffle.svg +++ /dev/null @@ -1,20 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" enable-background="new 0 0 512 512" xml:space="preserve"> -<g> - <path d="M362.121,207.146L352,194.854L413.784,144h-46.117c-93.327,0-129.147,74.511-163.787,138.832 - c-1.62,3.008-3.233,6.004-4.846,8.979c-19.836,36.607-40.979,61.242-64.64,75.314C120.573,375.346,101.401,384,64,384v-16.25 - c47.937,0,83.098-13.673,120.966-83.561c1.606-2.965,3.214-5.949,4.827-8.944C224.943,209.977,264.784,128,367.667,128h46.28 - L352,76.146L362.121,64L448,136L362.121,207.146z"/> - <g> - <path d="M199.034,220.189c-19.836-36.607-40.979-61.242-64.64-75.314C120.573,136.654,101.401,128,64,128v16.25 - c47.937,0,83.098,13.673,120.966,83.561c1.606,2.964,3.214,5.948,4.827,8.944c0.438,0.812,0.875,1.627,1.314,2.444 - c3.01-5.438,6.107-10.917,9.339-16.394C199.977,221.935,199.504,221.056,199.034,220.189z"/> - <path d="M362.121,304.854L352,317.146L413.784,368h-46.117c-72.693,0-110.496-45.207-140.028-95.592 - c-1.768,3.275-3.525,6.551-5.273,9.814c-1.175,2.192-2.344,4.37-3.513,6.545C249.621,338.777,291.254,384,367.667,384h46.28 - L352,435.854L362.121,448L448,376L362.121,304.854z"/> - </g> -</g> -</svg> diff --git a/admin/bower_components/Ionicons/src/ios-skipbackward-outline.svg b/admin/bower_components/Ionicons/src/ios-skipbackward-outline.svg deleted file mode 100644 index 2bbaa94..0000000 --- a/admin/bower_components/Ionicons/src/ios-skipbackward-outline.svg +++ /dev/null @@ -1,8 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" style="enable-background:new 0 0 512 512;" xml:space="preserve"> -<path d="M96,96v320h79V274.2L416,416V96L175,237.8V96H96z M175.6,256l7.6-4.4L400,124v0v264L183.1,260.4L175.6,256z M112,112h47 - v125.8v28v8.5V400h-47V112z"/> -</svg> diff --git a/admin/bower_components/Ionicons/src/ios-skipbackward.svg b/admin/bower_components/Ionicons/src/ios-skipbackward.svg deleted file mode 100644 index 6f8dc87..0000000 --- a/admin/bower_components/Ionicons/src/ios-skipbackward.svg +++ /dev/null @@ -1,7 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" style="enable-background:new 0 0 512 512;" xml:space="preserve"> -<path d="M96,96v320h79V274.2L416,416V96L175,237.8V96H96z"/> -</svg> diff --git a/admin/bower_components/Ionicons/src/ios-skipforward-outline.svg b/admin/bower_components/Ionicons/src/ios-skipforward-outline.svg deleted file mode 100644 index 1c9e1f5..0000000 --- a/admin/bower_components/Ionicons/src/ios-skipforward-outline.svg +++ /dev/null @@ -1,8 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" style="enable-background:new 0 0 512 512;" xml:space="preserve"> -<path d="M337,96v141.8L96,96v320l241-141.8V416h79V96H337z M328.9,260.4L112,388V124v0l216.9,127.6l7.6,4.4L328.9,260.4z M400,400 - h-47V274.2v-8.5v-28V112h47V400z"/> -</svg> diff --git a/admin/bower_components/Ionicons/src/ios-skipforward.svg b/admin/bower_components/Ionicons/src/ios-skipforward.svg deleted file mode 100644 index 139a170..0000000 --- a/admin/bower_components/Ionicons/src/ios-skipforward.svg +++ /dev/null @@ -1,7 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" style="enable-background:new 0 0 512 512;" xml:space="preserve"> -<path d="M337,96v141.8L96,96v320l241-141.8V416h79V96H337z"/> -</svg> diff --git a/admin/bower_components/Ionicons/src/ios-snowy.svg b/admin/bower_components/Ionicons/src/ios-snowy.svg deleted file mode 100644 index 4f5ee83..0000000 --- a/admin/bower_components/Ionicons/src/ios-snowy.svg +++ /dev/null @@ -1,26 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" style="enable-background:new 0 0 512 512;" xml:space="preserve"> -<style type="text/css"> -<![CDATA[ - .st0{fill:#010101;} -]]> -</style> -<path class="st0" d="M379.9,317l-28.7-16.3c6.1-5.8,13-9.7,20.7-12.3c4.3-1.4,6.5-5.9,5.1-10.1c-1.4-4.2-6-6.5-10.3-5.1 - c-11.6,3.8-22.2,11-30.1,19.2L272.3,256l64.2-36.4c8.4,9.1,18.6,15.4,30.2,19.2c4.3,1.4,8.9-0.8,10.3-5c1.4-4.2-0.8-8.7-5.1-10.1 - c-7.8-2.6-14.8-6.5-20.9-12.3l28.8-16.3c3.9-2.2,5.2-7.1,3-10.9s-7.2-5.1-11.1-2.9L343,197.3c-2-8.1-2.1-15.9-0.5-23.8 - c0.9-4.3-2-8.5-6.4-9.4c-4.4-0.9-8.7,1.9-9.6,6.2c-2.4,11.8-1.4,24.4,1.8,35.2L264,242.2v-73c11-2.7,22.4-8.1,31.5-16.1 - c3.3-2.9,3.6-8,0.7-11.3c-2.9-3.3-7.9-3.6-11.3-0.7c-6,5.3-12.9,9.2-20.9,11.5V120c0-4.4-3.6-8-8-8c-4.4,0-8,3.6-8,8v32.7 - c-8-2.3-14.8-6.2-20.9-11.6c-3.3-2.9-8.4-2.6-11.3,0.7c-2.9,3.3-2.6,8.4,0.7,11.3c9.1,8,19.5,13.5,31.5,16.1v73l-64.5-36.6 - c3.2-10.9,4.2-23.5,1.9-35.2c-0.9-4.3-5.2-7.1-9.6-6.2c-4.4,0.9-7.2,5-6.4,9.4c1.6,7.9,1.6,15.7-0.5,23.8L140.3,181 - c-3.9-2.2-8.9-0.9-11.1,2.9c-2.2,3.8-0.9,8.7,3,10.9l28.8,16.3c-6.1,5.8-13,9.7-20.8,12.3c-4.3,1.4-6.5,6-5.1,10.1 - c1.4,4.2,6.1,6.4,10.3,5c11.6-3.9,21.8-10.1,30.2-19.2l64.3,36.5l-64.4,36.5c-7.9-8.2-18.6-15.3-30.1-19.2 - c-4.3-1.4-8.8,0.9-10.3,5.1c-1.4,4.2,0.8,8.7,5.1,10.1c7.7,2.6,14.6,6.5,20.7,12.3l-28.7,16.3c-3.9,2.2-5.2,7.1-3,10.9 - s7.2,5.1,11.1,2.9l28.8-16.3c2.1,8.1,2.1,15.9,0.4,23.9c-0.9,4.3,2,8.5,6.4,9.4c4.4,0.9,8.7-1.9,9.6-6.3c2.4-11.8,1.9-23.6-1.9-35.3 - l64.5-36.6v73.1c-12,2.6-22.4,8.1-31.5,16.1c-3.3,2.9-3.6,8-0.7,11.3c2.9,3.3,7.9,3.6,11.3,0.7c6.1-5.4,12.9-9.3,20.9-11.6V392 - c0,4.4,3.6,8,8,8c4.4,0,8-3.6,8-8v-32.6c8,2.3,14.8,6.2,20.9,11.5c3.3,2.9,8.3,2.6,11.3-0.7c2.9-3.3,2.6-8.4-0.7-11.3 - c-9-7.9-20.4-13.4-31.4-16.1v-73.1l64.4,36.5c-3.8,11.7-4.2,23.5-1.8,35.3c0.9,4.3,5.2,7.1,9.6,6.3c4.4-0.9,7.3-5.1,6.4-9.4 - c-1.6-8-1.6-15.8,0.4-23.9l28.8,16.3c3.9,2.2,8.9,0.9,11.1-2.9C385.2,324.1,383.8,319.2,379.9,317z"/> -</svg> diff --git a/admin/bower_components/Ionicons/src/ios-speedometer-outline.svg b/admin/bower_components/Ionicons/src/ios-speedometer-outline.svg deleted file mode 100644 index 2894916..0000000 --- a/admin/bower_components/Ionicons/src/ios-speedometer-outline.svg +++ /dev/null @@ -1,24 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" enable-background="new 0 0 512 512" xml:space="preserve"> -<g> - <path d="M256,64C132.288,64,32,164.226,32,287.938c0,56.975,21.283,108.97,56.316,148.5c3.551,4.006,7.241,7.82,11.066,11.562 - c3.059-3.49,6.232-6.834,9.539-10.141c0.48-0.48,0.972-0.947,1.456-1.422c18.78-18.426,40.521-32.949,64.664-43.161 - c25.633-10.842,52.871-16.339,80.958-16.339s55.325,5.497,80.958,16.339c24.144,10.212,45.884,24.735,64.664,43.161 - c0.484,0.475,0.976,0.941,1.456,1.422c3.307,3.307,6.48,6.65,9.539,10.141c3.825-3.742,7.516-7.557,11.066-11.562 - c35.033-39.53,56.316-91.525,56.316-148.5C480,164.226,379.712,64,256,64z M447.661,369.177 - c-8.663,20.481-20.429,39.092-35.044,55.776c-40.39-39.51-95.653-63.945-156.617-63.945s-116.228,24.33-156.617,63.84 - c-14.615-16.685-26.381-35.172-35.044-55.653c-9.81-23.19-15.228-47.694-16.173-72.694H79.5v-16H48.166 - c0.945-25,6.363-50.048,16.173-73.239c9.372-22.157,22.376-42.431,38.692-60.11l26.932,26.893l5.496-5.538l5.277-5.264l-0.02-0.027 - l0.547-0.552l-26.951-26.984c17.862-16.647,38.004-29.894,60.479-39.4c23.191-9.81,47.708-15.229,72.708-16.174V117.5h16V80.104 - c26,0.945,50.017,6.363,73.208,16.173c22.437,9.49,42.921,22.706,60.762,39.312l-26.975,27.069l0.577,0.547l-0.004,0.019 - l5.285,5.246l5.5,5.503l27.026-27.057c16.356,17.703,29.392,38.148,38.78,60.345c9.81,23.191,15.229,48.239,16.174,73.239H431.5v16 - h32.334C462.889,321.5,457.471,345.986,447.661,369.177z"/> - <path d="M368.479,174.545l-85.484,73.727c-7.697-5.255-16.992-8.334-26.994-8.334c-26.467,0-48,21.533-48,48 - c0,10.479,3.385,20.178,9.106,28.08l-11.948,11.948l11.312,11.313l12.033-12.033c7.795,5.469,17.273,8.691,27.496,8.691 - c26.467,0,48-21.533,48-48c0-10.387-3.327-20.005-8.956-27.868l74.849-84.11L368.479,174.545z M256,319.938 - c-17.673,0-32-14.326-32-32c0-17.673,14.327-32,32-32s32,14.327,32,32C288,305.611,273.673,319.938,256,319.938z"/> -</g> -</svg> diff --git a/admin/bower_components/Ionicons/src/ios-speedometer.svg b/admin/bower_components/Ionicons/src/ios-speedometer.svg deleted file mode 100644 index 4117c00..0000000 --- a/admin/bower_components/Ionicons/src/ios-speedometer.svg +++ /dev/null @@ -1,28 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" enable-background="new 0 0 512 512" xml:space="preserve"> -<g> - <path d="M417,278.742V278h29.814c-0.931-23-6.056-45.609-14.831-66.151c-8.643-20.228-20.503-38.665-35.257-54.562l-24.867,24.646 - l-11.229-10.992l24.788-24.679c-16.187-14.836-34.86-26.742-55.515-35.392C308.479,101.897,286,97.092,263,96.186V130h-1.008H248 - V96.186c-23,0.894-44.95,5.699-66.404,14.685c-20.353,8.523-38.958,20.457-55.315,35.471l24.796,24.583l-0.549,0.549l0.001,0.006 - l-0.29,0.335l-10.27,10.203l-24.779-24.479c-14.77,15.932-26.604,34.243-35.176,54.309C71.241,232.388,66.117,255,65.187,278H94v16 - h-0.776H65.187c0.926,22,5.915,44.432,14.829,65.297c7.689,18.001,18.398,34.664,31.831,49.926 - c38.785-37.377,89.958-57.928,144.154-57.928c54.113,0,105.286,20.676,144.154,58.135c13.354-15.175,24.061-31.979,31.83-50.166 - C440.9,338.396,445.889,316,446.814,294H417V278.742z M304,287.938c0,26.467-21.533,48-48,48c-10.223,0-19.701-3.223-27.496-8.691 - l-12.033,12.033l-11.312-11.313l11.948-11.948c-5.722-7.902-9.106-17.602-9.106-28.08c0-26.467,21.533-48,48-48 - c10.002,0,19.297,3.079,26.994,8.334l73.484-65.727l1.414,1.414l-62.849,76.11C300.673,267.933,304,277.551,304,287.938z"/> - <path d="M256,64C132.288,64,32,164.226,32,287.938c0,56.975,21.283,108.97,56.316,148.5c3.551,4.006,7.241,7.82,11.066,11.562 - h22.193c31.713-39.103,80.144-64.096,134.424-64.096S358.711,408.897,390.424,448h22.193c3.825-3.742,7.516-7.557,11.066-11.562 - c35.033-39.53,56.316-91.525,56.316-148.5C480,164.226,379.712,64,256,64z M410.744,420.797 - c-3.051,3.408-6.392,6.863-10.213,10.564l-0.376,0.365l-0.348-0.393c-2.629-2.97-5.493-5.985-8.759-9.22 - c-0.275-0.271-0.555-0.539-0.834-0.807l-0.504-0.485c-17.258-16.766-37.234-29.967-59.375-39.238 - c-23.535-9.856-48.545-14.854-74.336-14.854c-25.791,0-50.801,4.998-74.336,14.854c-22.14,9.271-42.117,22.473-59.375,39.238 - l-0.504,0.485c-0.279,0.268-0.558,0.535-0.833,0.807c-3.266,3.234-6.13,6.25-8.759,9.22l-0.348,0.393l-0.377-0.365 - c-3.821-3.701-7.162-7.156-10.212-10.564c-33.514-37.441-51.971-85.629-51.971-135.685c0-54.666,21.502-106.053,60.545-144.694 - C148.87,101.779,200.781,80.5,256,80.5c55.22,0,107.13,21.279,146.17,59.918c39.043,38.642,60.545,90.029,60.545,144.694 - C462.715,335.168,444.259,383.355,410.744,420.797z"/> - <circle cx="256" cy="287.938" r="32"/> -</g> -</svg> diff --git a/admin/bower_components/Ionicons/src/ios-star-half.svg b/admin/bower_components/Ionicons/src/ios-star-half.svg deleted file mode 100644 index 183b2f5..0000000 --- a/admin/bower_components/Ionicons/src/ios-star-half.svg +++ /dev/null @@ -1,8 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" enable-background="new 0 0 512 512" xml:space="preserve"> -<path d="M172.248,304.931l-54.677,159.073L256,365.37l138.445,98.634L339.76,304.937L480,207H308.613L256,48.005L203.402,207H32 - L172.248,304.931z M256,100.75L297,224h131l-108,74.711l42.623,122.481L256,345.257V100.75z"/> -</svg> diff --git a/admin/bower_components/Ionicons/src/ios-star-outline.svg b/admin/bower_components/Ionicons/src/ios-star-outline.svg deleted file mode 100644 index 868de18..0000000 --- a/admin/bower_components/Ionicons/src/ios-star-outline.svg +++ /dev/null @@ -1,8 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" style="enable-background:new 0 0 512 512;" xml:space="preserve"> -<path d="M480,207H308.6L256,47.9L203.4,207H32l140.2,97.9L117.6,464L256,365.4L394.4,464l-54.7-159.1L480,207z M362.6,421.2 - l-106.6-76l-106.6,76L192,298.7L84,224h131l41-123.3L297,224h131l-108,74.6L362.6,421.2z"/> -</svg> diff --git a/admin/bower_components/Ionicons/src/ios-star.svg b/admin/bower_components/Ionicons/src/ios-star.svg deleted file mode 100644 index 74f7f02..0000000 --- a/admin/bower_components/Ionicons/src/ios-star.svg +++ /dev/null @@ -1,7 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" style="enable-background:new 0 0 512 512;" xml:space="preserve"> -<path d="M480,207H308.6L256,47.9L203.4,207H32l140.2,97.9L117.6,464L256,365.4L394.4,464l-54.7-159.1L480,207z"/> -</svg> diff --git a/admin/bower_components/Ionicons/src/ios-stopwatch-outline.svg b/admin/bower_components/Ionicons/src/ios-stopwatch-outline.svg deleted file mode 100644 index 66cf46d..0000000 --- a/admin/bower_components/Ionicons/src/ios-stopwatch-outline.svg +++ /dev/null @@ -1,15 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" style="enable-background:new 0 0 512 512;" xml:space="preserve"> -<g> - <path d="M397.6,146.7l-1.8-1.7h18.4l8.5,7.8l22.5-22.8l-40.8-40.3L381.2,112l8.8,9.2v18.6l-5-4.7c-31.3-28.3-70-45.2-113-48.9V48 - h-32v38h-2c-43.7,3-85,22.5-116,53v-17.8l8.9-9.2L108,89.8L67.2,130l22.5,22.8l8.5-7.8H116c-0.3,0-0.7,0.7-1,1.1 - C82.2,181.2,64,227,64,274.6C64,379,150.1,464,256.1,464C361.9,464,448,379.1,448,274.7C448,227.1,430,181.6,397.6,146.7z - M256.3,445.7c-95.5,0-173.1-76.7-173.1-170.9c0-94.3,77.7-170.9,173.1-170.9c95.5,0,173.1,76.7,173.1,170.9 - C429.5,369,351.8,445.7,256.3,445.7z"/> - <path d="M264,257.3V128h-16v129.4c-12.5,4.3-24,16.5-24,30.3c0,14.7,10,27,24,30.5l8,17.8l0,0l8-17.8c14-3.5,24-15.8,24-30.5 - C288,273.2,277.5,261,264,257.3z"/> -</g> -</svg> diff --git a/admin/bower_components/Ionicons/src/ios-stopwatch.svg b/admin/bower_components/Ionicons/src/ios-stopwatch.svg deleted file mode 100644 index ff2e680..0000000 --- a/admin/bower_components/Ionicons/src/ios-stopwatch.svg +++ /dev/null @@ -1,13 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" style="enable-background:new 0 0 512 512;" xml:space="preserve"> -<g> - <path d="M397.6,146.7l-1.8-1.7h18.4l8.5,7.8l22.5-22.8l-40.8-40.3L381.2,112l8.8,9.2v18.6l-5-4.7c-31.3-28.3-70-45.2-113-48.9V48 - h-32v38h-2c-43.7,3-85,22.5-116,53v-17.8l8.9-9.2L108,89.8L67.2,130l22.5,22.8l8.5-7.8H116c-0.3,0-0.7,0.7-1,1.1 - C82.2,181.2,64,227,64,274.6C64,379,150.1,464,256.1,464C361.9,464,448,379.1,448,274.7C448,227.1,430,181.6,397.6,146.7z - M264,318.2l-8,17.8l-8-17.8c-14-3.5-24-15.8-24-30.5c0-13.8,11.5-26,24-30.3V128h16v129.3c13.5,3.7,24,15.9,24,30.4 - C288,302.4,278,314.7,264,318.2z"/> -</g> -</svg> diff --git a/admin/bower_components/Ionicons/src/ios-sunny-outline.svg b/admin/bower_components/Ionicons/src/ios-sunny-outline.svg deleted file mode 100644 index f99e4cf..0000000 --- a/admin/bower_components/Ionicons/src/ios-sunny-outline.svg +++ /dev/null @@ -1,27 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" style="enable-background:new 0 0 512 512;" xml:space="preserve"> -<style type="text/css"> -<![CDATA[ - .st0{fill:#010101;} -]]> -</style> -<g> - <rect x="247" y="96" class="st0" width="18" height="56"/> - <rect x="247" y="356" class="st0" width="18" height="60"/> - <rect x="360" y="247" class="st0" width="56" height="18"/> - <rect x="96" y="247" class="st0" width="60" height="18"/> - - <rect x="339" y="317.4" transform="matrix(-0.7071 0.7071 -0.7071 -0.7071 834.4009 337.0126)" class="st0" width="16.8" height="47.8"/> - - <rect x="162.2" y="140.7" transform="matrix(-0.7071 0.7071 -0.7071 -0.7071 407.7248 160.277)" class="st0" width="16.8" height="47.9"/> - - <rect x="339" y="140.7" transform="matrix(0.7071 0.7071 -0.7071 0.7071 218.1171 -197.4504)" class="st0" width="16.8" height="47.8"/> - - <rect x="162.2" y="317.4" transform="matrix(0.707 0.7072 -0.7072 0.707 291.3531 -20.7056)" class="st0" width="16.8" height="47.9"/> - <path class="st0" d="M256,331.8c-41.8,0-75.8-34-75.8-75.8s34-75.8,75.8-75.8c41.8,0,75.8,34,75.8,75.8S297.8,331.8,256,331.8z - M256,197.1c-32.5,0-58.9,26.4-58.9,58.9s26.4,58.9,58.9,58.9c32.5,0,58.9-26.4,58.9-58.9S288.5,197.1,256,197.1z"/> -</g> -</svg> diff --git a/admin/bower_components/Ionicons/src/ios-sunny.svg b/admin/bower_components/Ionicons/src/ios-sunny.svg deleted file mode 100644 index 5793306..0000000 --- a/admin/bower_components/Ionicons/src/ios-sunny.svg +++ /dev/null @@ -1,26 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" style="enable-background:new 0 0 512 512;" xml:space="preserve"> -<style type="text/css"> -<![CDATA[ - .st0{fill:#010101;} -]]> -</style> -<g> - <rect x="247" y="96" class="st0" width="18" height="56"/> - <rect x="247" y="356" class="st0" width="18" height="60"/> - <rect x="360" y="247" class="st0" width="56" height="18"/> - <rect x="96" y="247" class="st0" width="60" height="18"/> - - <rect x="339" y="317.4" transform="matrix(-0.7071 0.7071 -0.7071 -0.7071 834.4009 337.0126)" class="st0" width="16.8" height="47.8"/> - - <rect x="162.2" y="140.7" transform="matrix(-0.7071 0.7071 -0.7071 -0.7071 407.7248 160.277)" class="st0" width="16.8" height="47.9"/> - - <rect x="339" y="140.7" transform="matrix(0.7071 0.7071 -0.7071 0.7071 218.1171 -197.4504)" class="st0" width="16.8" height="47.8"/> - - <rect x="162.2" y="317.4" transform="matrix(0.707 0.7072 -0.7072 0.707 291.3531 -20.7056)" class="st0" width="16.8" height="47.9"/> - <path class="st0" d="M256,331.8c-41.8,0-75.8-34-75.8-75.8s34-75.8,75.8-75.8c41.8,0,75.8,34,75.8,75.8S297.8,331.8,256,331.8z"/> -</g> -</svg> diff --git a/admin/bower_components/Ionicons/src/ios-telephone-outline.svg b/admin/bower_components/Ionicons/src/ios-telephone-outline.svg deleted file mode 100644 index b81196b..0000000 --- a/admin/bower_components/Ionicons/src/ios-telephone-outline.svg +++ /dev/null @@ -1,17 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" style="enable-background:new 0 0 512 512;" xml:space="preserve"> -<path d="M415.9,335.5c-14.6-15-56.1-43.1-83.3-43.1c-6.3,0-11.8,1.4-16.3,4.3c-13.3,8.5-23.9,15.1-29,15.1c-2.8,0-5.8-2.5-12.4-8.2 - l-1.1-1c-18.3-15.9-22.2-20-29.3-27.4l-1.8-1.9c-1.3-1.3-2.4-2.5-3.5-3.6c-6.2-6.4-10.7-11-26.6-29l-0.7-0.8 - c-7.6-8.6-12.6-14.2-12.9-18.3c-0.3-4,3.2-10.5,12.1-22.6c10.8-14.6,11.2-32.6,1.3-53.5c-7.9-16.5-20.8-32.3-32.2-46.2l-1-1.2 - c-9.8-12-21.2-18-33.9-18c-14.1,0-25.8,7.6-32,11.6c-0.5,0.3-1,0.7-1.5,1c-13.9,8.8-24,20.9-27.8,33.2c-5.7,18.5-9.5,42.5,17.8,92.4 - c23.6,43.2,45,72.2,79,107.1c32,32.8,46.2,43.4,78,66.4c35.4,25.6,69.4,40.3,93.2,40.3c22.1,0,39.5,0,64.3-29.9 - C442.3,370.8,431.5,351.6,415.9,335.5z M404.4,391.4c-20,24.2-31.5,24.2-52.3,24.2c-20.3,0-51.8-14-84.2-37.3 - c-31-22.4-44.8-32.7-75.9-64.6c-32.9-33.7-53.6-61.8-76.4-103.5c-24.1-44.1-21.4-63.4-16.5-79.3c2.6-8.5,10.4-17.6,21-24.2 - c0.5-0.3,1-0.7,1.6-1c5.3-3.4,14.1-9.1,23.7-9.1c8,0,15.1,4,21.9,12.3l1,1.2c25.5,31.2,45.4,58.8,30.4,79.2 - c-10.6,14.3-16.2,24-15.3,34c0.8,9.7,7.3,17,17.1,28l0.7,0.8c16.1,18.2,20.7,23,27.1,29.5c1.1,1.1,2.2,2.3,3.5,3.6l1.8,1.9 - c7.4,7.7,11.5,11.9,30.3,28.4l1.1,1c8,7,13.9,12.1,22.5,12.1c8.9,0,18.7-5.6,37.3-17.5c1.9-1.2,4.6-1.9,8-1.9 - c21.7,0,59.1,24.8,72.2,38.3C417,359.7,423,368.9,404.4,391.4z"/> -</svg> diff --git a/admin/bower_components/Ionicons/src/ios-telephone.svg b/admin/bower_components/Ionicons/src/ios-telephone.svg deleted file mode 100644 index 794e51a..0000000 --- a/admin/bower_components/Ionicons/src/ios-telephone.svg +++ /dev/null @@ -1,12 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" style="enable-background:new 0 0 512 512;" xml:space="preserve"> -<path d="M415.9,335.5c-14.6-15-56.1-43.1-83.3-43.1c-6.3,0-11.8,1.4-16.3,4.3c-13.3,8.5-23.9,15.1-29,15.1c-2.8,0-5.8-2.5-12.4-8.2 - l-1.1-1c-18.3-15.9-22.2-20-29.3-27.4l-1.8-1.9c-1.3-1.3-2.4-2.5-3.5-3.6c-6.2-6.4-10.7-11-26.6-29l-0.7-0.8 - c-7.6-8.6-12.6-14.2-12.9-18.3c-0.3-4,3.2-10.5,12.1-22.6c10.8-14.6,11.2-32.6,1.3-53.5c-7.9-16.5-20.8-32.3-32.2-46.2l-1-1.2 - c-9.8-12-21.2-18-33.9-18c-14.1,0-25.8,7.6-32,11.6c-0.5,0.3-1,0.7-1.5,1c-13.9,8.8-24,20.9-27.8,33.2c-5.7,18.5-9.5,42.5,17.8,92.4 - c23.6,43.2,45,72.2,79,107.1c32,32.8,46.2,43.4,78,66.4c35.4,25.6,69.4,40.3,93.2,40.3c22.1,0,39.5,0,64.3-29.9 - C442.3,370.8,431.5,351.6,415.9,335.5z"/> -</svg> diff --git a/admin/bower_components/Ionicons/src/ios-tennisball-outline.svg b/admin/bower_components/Ionicons/src/ios-tennisball-outline.svg deleted file mode 100644 index aa74365..0000000 --- a/admin/bower_components/Ionicons/src/ios-tennisball-outline.svg +++ /dev/null @@ -1,19 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" enable-background="new 0 0 512 512" xml:space="preserve"> -<path d="M464,256c0-114.863-93.13-208-208-208C141.137,48,48,141.136,48,256c0,114.863,93.137,208,208,208 - c2.541,0,5.068-0.062,7.587-0.152c0.479-0.017,0.957-0.034,1.435-0.055c0.942-0.04,1.884-0.083,2.823-0.136 - c0.85-0.047,1.698-0.104,2.547-0.161c0.639-0.044,1.279-0.08,1.917-0.13c1.354-0.104,2.705-0.221,4.055-0.352 - c0-0.003,0-0.006,0-0.009c97.47-9.474,175.229-86.229,186.274-183.223c0.02-0.001,0.038,0,0.057-0.001 - c0.604-5.315,1.002-10.667,1.196-16.05c-0.016,0.001-0.032,0.001-0.049,0.001C463.937,261.166,464,258.591,464,256z M446.665,256 - c0,2.568-0.066,5.121-0.167,7.664c-23.639-1.076-46.677-6.106-68.616-15.005c-25.791-10.458-48.938-25.831-68.797-45.691 - c-19.86-19.86-35.233-43.007-45.692-68.797c-8.903-21.956-13.935-45.014-15.006-68.67c2.527-0.1,5.063-0.165,7.614-0.165 - C361.13,65.335,446.665,150.869,446.665,256z M65.337,256c0-1.318,0.023-2.631,0.05-3.942c22.476,1.379,44.388,6.337,65.3,14.817 - c25.791,10.458,48.938,25.831,68.798,45.691c19.86,19.859,35.232,43.007,45.691,68.798c8.474,20.896,13.43,42.792,14.814,65.249 - c-1.328,0.027-2.656,0.051-3.99,0.051C150.87,446.664,65.336,361.13,65.337,256z M275.943,445.623 - c-3.273-52.566-24.974-104.198-65.145-144.369c-40.186-40.186-91.84-61.889-144.427-65.15 - c9.172-88.053,78.52-158.478,166.074-169.313c2.595,53.64,24.36,106.525,65.326,147.49c40.949,40.952,93.811,62.713,147.433,65.322 - C434.351,367.118,363.957,436.432,275.943,445.623z"/> -</svg> diff --git a/admin/bower_components/Ionicons/src/ios-tennisball.svg b/admin/bower_components/Ionicons/src/ios-tennisball.svg deleted file mode 100644 index 1939c45..0000000 --- a/admin/bower_components/Ionicons/src/ios-tennisball.svg +++ /dev/null @@ -1,25 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" enable-background="new 0 0 512 512" xml:space="preserve"> -<g> - <path d="M48.05,251.556c-0.001,0.039-0.003,0.077-0.004,0.116c0,0,0.002,0,0.003,0C48.049,251.634,48.049,251.595,48.05,251.556z" - /> - <path d="M260.311,463.915c0.066-0.002,0.133-0.006,0.199-0.007c-0.066,0.001-0.133,0.001-0.199,0.004 - C260.311,463.912,260.311,463.913,260.311,463.915z"/> - <path d="M256,48.001c-2.586,0-5.29,0.064-7.852,0.158L248,48.153c0,0.003,0,0.004,0,0.006c-5,0.199-10,0.602-16,1.205 - c0-0.002,0-0.004,0-0.008c0,0.005,0.083,0.008,0.072,0.012c-96.974,11.061-173.654,88.975-183.13,186.41 - c-0.004,0.018,0.045,0.222,0.042,0.222c0.003,0,0.004,0,0.007,0c-0.513,5-0.826,10-0.936,16c-0.001,0-0.003,0-0.004,0l0.003-0.152 - c-0.028,1.43-0.054,2.777-0.054,4.215c0,114.852,92.977,207.938,207.841,207.938c6.856,0,14.159-0.383,20.159-1.031 - c0,0.002,0,0.006,0,0.006c0-0.004,0.213-0.008,0.24-0.014c97.436-9.486,175.247-86.086,186.312-183.036 - c0.004-0.014,0.088,0.074,0.092,0.074c-0.002,0-0.006,0-0.008,0c0.889-8,1.363-15.859,1.363-23.904 - C464,141.245,370.87,48.001,256,48.001z M130.63,266.853c-20.895-8.474-42.788-13.43-65.244-14.816 - c0.11-5.374,0.438-10.695,0.986-15.952c52.568,3.275,104.203,24.977,144.375,65.146c40.172,40.169,61.876,91.797,65.152,144.359 - c-5.257,0.548-10.579,0.876-15.954,0.985c-1.385-22.453-6.342-44.344-14.816-65.236c-10.459-25.79-25.834-48.937-45.696-68.795 - C179.572,292.684,156.423,277.311,130.63,266.853z M297.722,214.265c-40.964-40.959-62.731-93.835-65.332-147.467 - c5.25-0.652,10.568-1.08,15.941-1.293c1.073,23.65,6.105,46.702,15.007,68.654c10.461,25.79,25.835,48.936,45.696,68.795 - c19.862,19.859,43.01,35.232,68.803,45.691c21.954,8.901,45.008,13.933,68.66,15.007c-0.213,5.37-0.643,10.689-1.293,15.939 - C391.564,276.989,338.686,255.225,297.722,214.265z"/> -</g> -</svg> diff --git a/admin/bower_components/Ionicons/src/ios-thunderstorm-outline.svg b/admin/bower_components/Ionicons/src/ios-thunderstorm-outline.svg deleted file mode 100644 index f49c64e..0000000 --- a/admin/bower_components/Ionicons/src/ios-thunderstorm-outline.svg +++ /dev/null @@ -1,22 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" style="enable-background:new 0 0 512 512;" xml:space="preserve"> -<style type="text/css"> -<![CDATA[ - .st0{fill:#010101;} -]]> -</style> -<g> - <polygon class="st0" points="312,272 272,272 288,224 216,224 201,304 253.3,304 224,400 "/> - <g> - <path class="st0" d="M328.4,172.7c-2.7,0-5.4,0-8,0.3c-7.9-35-39.1-61.4-76.4-61.4c-43.3,0-78.3,35.2-78.3,78.5 - c0,2.6,0.1,5.2,0.4,7.8c-26.4,2.3-47.1,25.7-47.1,52.8c0,28.6,23.2,53.3,51.7,53.3H182v-17h-11.3c-9.5,0-18.5-4.1-25.4-11 - c-6.8-7-10.6-16.3-10.6-26c0-18.6,14.5-33.8,33.2-36.9c1.6-0.3,8.8-1.3,14.2-1.8c0,0-0.5-5.3-0.6-9.6c-0.1-4.3-0.1-9.4-0.1-11.5 - c0-34.6,28.1-62.7,62.6-62.7c14.5,0,28.1,4.8,39.3,13.9c10.9,8.9,18.6,21.3,21.7,34.9l3.1,14l14.2-1.8c2.1-0.3,4.1-0.4,6.1-0.4 - c26.9,0,48.8,22.3,48.8,49.4c0,27.1-21.9,49.4-48.8,49.4H320v17h8.4c35.7,0,64.6-30.1,64.6-65.9 - C393,202.4,364.1,172.7,328.4,172.7z"/> - </g> -</g> -</svg> diff --git a/admin/bower_components/Ionicons/src/ios-thunderstorm.svg b/admin/bower_components/Ionicons/src/ios-thunderstorm.svg deleted file mode 100644 index 73afbf0..0000000 --- a/admin/bower_components/Ionicons/src/ios-thunderstorm.svg +++ /dev/null @@ -1,17 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" style="enable-background:new 0 0 512 512;" xml:space="preserve"> -<style type="text/css"> -<![CDATA[ - .st0{fill:#010101;} -]]> -</style> -<g> - <polygon class="st0" points="272,272 288,224 216,224 201,304 253.3,304 224,400 290,304 312,272 "/> - <path class="st0" d="M202.7,208l107.5,0l-16,48H312h30.4l-33,48h19c35.7,0,64.6-30.1,64.6-65.9c0-35.8-28.9-65.5-64.6-65.5 - c-2.7,0-5.4,0-8,0.3c-7.9-35-39.1-61.4-76.4-61.4c-43.3,0-78.3,35.2-78.3,78.5c0,2.6,0.1,5.2,0.4,7.8 - c-26.4,2.3-47.1,25.7-47.1,52.8c0,28.6,23.2,53.3,51.7,53.3h14"/> -</g> -</svg> diff --git a/admin/bower_components/Ionicons/src/ios-time-outline.svg b/admin/bower_components/Ionicons/src/ios-time-outline.svg deleted file mode 100644 index 9276bc6..0000000 --- a/admin/bower_components/Ionicons/src/ios-time-outline.svg +++ /dev/null @@ -1,36 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" style="enable-background:new 0 0 512 512;" xml:space="preserve"> -<style type="text/css"> -<![CDATA[ - .st0{fill:#010101;} -]]> -</style> -<g> - <g> - <path class="st0" d="M256,32C132.3,32,32,132.3,32,256c0,123.7,100.3,224,224,224c123.7,0,224-100.3,224-224 - C480,132.3,379.7,32,256,32z M403.1,403.1c-19.1,19.1-41.4,34.1-66.1,44.6c-25.6,10.8-52.9,16.3-81,16.3c-28.1,0-55.3-5.5-81-16.3 - c-24.8-10.5-47-25.5-66.1-44.6C89.8,384,74.8,361.7,64.3,337C53.5,311.3,48,284.1,48,256c0-28.1,5.5-55.3,16.3-81 - c10.5-24.8,25.5-47,44.6-66.1C128,89.8,150.3,74.8,175,64.3C200.7,53.5,227.9,48,256,48c28.1,0,55.3,5.5,81,16.3 - c24.8,10.5,47,25.5,66.1,44.6c19.1,19.1,34.1,41.4,44.6,66.1c10.8,25.6,16.3,52.9,16.3,81c0,28.1-5.5,55.3-16.3,81 - C437.2,361.7,422.2,384,403.1,403.1z"/> - <circle class="st0" cx="256" cy="80" r="8"/> - <circle class="st0" cx="256" cy="432" r="8"/> - <circle class="st0" cx="432" cy="256" r="8"/> - <circle class="st0" cx="80" cy="256" r="8"/> - <circle class="st0" cx="168" cy="103.6" r="8"/> - <circle class="st0" cx="344" cy="408.4" r="8"/> - <circle class="st0" cx="408.4" cy="168" r="8"/> - <circle class="st0" cx="103.6" cy="344" r="8"/> - <circle class="st0" cx="103.6" cy="168" r="8"/> - <circle class="st0" cx="408.4" cy="344" r="8"/> - <circle class="st0" cx="344" cy="103.6" r="8"/> - <circle class="st0" cx="168" cy="408.4" r="8"/> - </g> - <path class="st0" d="M269.9,248c-2.9-5-8.1-7.8-13.4-8l-38-63.4c-2.3-3.8-7.2-5-11-2.7c-3.8,2.3-5,7.2-2.7,11l37.6,62.9 - c-2.9,4.8-3.2,11.1-0.2,16.3c1.5,2.5,3.5,4.5,5.9,5.8V392c0,4.4,3.6,8,8,8c4.4,0,8-3.6,8-8V269.9 - C271.7,265.4,274.3,255.7,269.9,248z"/> -</g> -</svg> diff --git a/admin/bower_components/Ionicons/src/ios-time.svg b/admin/bower_components/Ionicons/src/ios-time.svg deleted file mode 100644 index 0d0bc47..0000000 --- a/admin/bower_components/Ionicons/src/ios-time.svg +++ /dev/null @@ -1,27 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" style="enable-background:new 0 0 512 512;" xml:space="preserve"> -<style type="text/css"> -<![CDATA[ - .st0{fill:#010101;} -]]> -</style> -<g> - <path class="st0" d="M256,32C132.3,32,32,132.3,32,256c0,123.7,100.3,224,224,224c123.7,0,224-100.3,224-224 - C480,132.3,379.7,32,256,32z M256,72c4.4,0,8,3.6,8,8s-3.6,8-8,8s-8-3.6-8-8S251.6,72,256,72z M80,264c-4.4,0-8-3.6-8-8 - c0-4.4,3.6-8,8-8s8,3.6,8,8C88,260.4,84.4,264,80,264z M107.6,350.9c-3.8,2.2-8.7,0.9-10.9-2.9c-2.2-3.8-0.9-8.7,2.9-10.9 - c3.8-2.2,8.7-0.9,10.9,2.9C112.7,343.8,111.4,348.7,107.6,350.9z M110.5,172c-2.2,3.8-7.1,5.1-10.9,2.9c-3.8-2.2-5.1-7.1-2.9-10.9 - s7.1-5.1,10.9-2.9C111.4,163.3,112.7,168.2,110.5,172z M164,96.7c3.8-2.2,8.7-0.9,10.9,2.9c2.2,3.8,0.9,8.7-2.9,10.9 - c-3.8,2.2-8.7,0.9-10.9-2.9C158.9,103.8,160.2,98.9,164,96.7z M174.9,412.4c-2.2,3.8-7.1,5.1-10.9,2.9c-3.8-2.2-5.1-7.1-2.9-10.9 - c2.2-3.8,7.1-5.1,10.9-2.9S177.1,408.6,174.9,412.4z M256,440c-4.4,0-8-3.6-8-8s3.6-8,8-8s8,3.6,8,8S260.4,440,256,440z M264,269.9 - V392c0,4.4-3.6,8-8,8c-4.4,0-8-3.6-8-8V269.8c-2.4-1.4-4.4-3.3-5.9-5.8c-3-5.2-2.7-11.5,0.2-16.3l-37.6-62.9c-2.3-3.8-1-8.7,2.7-11 - c3.8-2.3,8.7-1,11,2.7l38,63.4c5.4,0.1,10.6,3,13.4,8C274.3,255.7,271.7,265.4,264,269.9z M348,415.3c-3.8,2.2-8.7,0.9-10.9-2.9 - c-2.2-3.8-0.9-8.7,2.9-10.9c3.8-2.2,8.7-0.9,10.9,2.9C353.1,408.2,351.8,413.1,348,415.3z M350.9,107.6c-2.2,3.8-7.1,5.1-10.9,2.9 - c-3.8-2.2-5.1-7.1-2.9-10.9c2.2-3.8,7.1-5.1,10.9-2.9C351.8,98.9,353.1,103.8,350.9,107.6z M415.3,348c-2.2,3.8-7.1,5.1-10.9,2.9 - c-3.8-2.2-5.1-7.1-2.9-10.9c2.2-3.8,7.1-5.1,10.9-2.9C416.2,339.3,417.6,344.2,415.3,348z M412.4,174.9c-3.8,2.2-8.7,0.9-10.9-2.9 - c-2.2-3.8-0.9-8.7,2.9-10.9c3.8-2.2,8.7-0.9,10.9,2.9C417.6,167.8,416.2,172.7,412.4,174.9z M432,264c-4.4,0-8-3.6-8-8 - c0-4.4,3.6-8,8-8s8,3.6,8,8C440,260.4,436.4,264,432,264z"/> -</g> -</svg> diff --git a/admin/bower_components/Ionicons/src/ios-timer-outline.svg b/admin/bower_components/Ionicons/src/ios-timer-outline.svg deleted file mode 100644 index d2d852c..0000000 --- a/admin/bower_components/Ionicons/src/ios-timer-outline.svg +++ /dev/null @@ -1,11 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" style="enable-background:new 0 0 512 512;" xml:space="preserve"> -<path d="M236.6,271.6c4.6,5.7,11.5,9.4,19.4,9.4c13.8,0,25-11.2,25-25c0-7.3-3.2-13.8-8.2-18.4c-0.6-0.7-1.3-1.5-2.2-2.2 - c0,0-117.7-87.5-120.3-85.2c-2.6,2.3,85.3,120.2,85.3,120.2C235.8,270.8,236.3,271.2,236.6,271.6z"/> -<path d="M256.2,48L256.2,48H256v112h16V65.3c97.8,8.3,175.3,90.5,175.3,190.5c0,105.5-85.7,191.4-191.2,191.4 - c-105.5,0-191.3-85.8-191.3-191.3c0-52.8,21.5-100.6,56.1-135.2L109,108.9C71.3,146.6,48,198.6,48,256c0,114.9,93.1,208,208,208 - c114.9,0,208-93.1,208-208C464,141.1,371,48,256.2,48z"/> -</svg> diff --git a/admin/bower_components/Ionicons/src/ios-timer.svg b/admin/bower_components/Ionicons/src/ios-timer.svg deleted file mode 100644 index 10ebab9..0000000 --- a/admin/bower_components/Ionicons/src/ios-timer.svg +++ /dev/null @@ -1,12 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" style="enable-background:new 0 0 512 512;" xml:space="preserve"> -<path d="M256,48C141.1,48,48,141.1,48,256c0,114.9,93.1,208,208,208c114.9,0,208-93.1,208-208C464,141.1,370.9,48,256,48z - M150.5,150.5c2.6-2.3,119.9,84.9,119.9,84.9c1,0.7,1.6,1.5,2.2,2.2c5,4.6,8.2,11,8.2,18.3c0,13.7-11.1,24.9-24.9,24.9 - c-7.8,0-14.7-3.7-19.3-9.4c-0.4-0.4-0.8-0.7-1.1-1.1C235.6,270.4,148,152.9,150.5,150.5z M256.1,447.2 - c-105.7,0-191.4-85.7-191.4-191.4c0-52.8,21.4-100.7,56-135.3l11.8,11.8c-31.6,31.6-51.2,75.3-51.2,123.5 - c0,96.3,78.4,174.7,174.7,174.7s174.5-78.4,174.5-174.7c0-90.3-70.5-165.1-158.5-174V160h-16V64.4c105.7,0,191.5,85.7,191.5,191.4 - C447.5,361.5,361.7,447.2,256.1,447.2z"/> -</svg> diff --git a/admin/bower_components/Ionicons/src/ios-toggle-outline.svg b/admin/bower_components/Ionicons/src/ios-toggle-outline.svg deleted file mode 100644 index 2677364..0000000 --- a/admin/bower_components/Ionicons/src/ios-toggle-outline.svg +++ /dev/null @@ -1,22 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" enable-background="new 0 0 512 512" xml:space="preserve"> -<g> - <g> - <path d="M128,320c26.467,0,48,21.533,48,48s-21.533,48-48,48s-48-21.533-48-48S101.533,320,128,320 M128,304 - c-35.346,0-64,28.654-64,64c0,35.347,28.654,64,64,64s64-28.653,64-64C192,332.654,163.346,304,128,304L128,304z"/> - <path d="M383.25,288c44.388,0,80.625,36.112,80.625,80.5S427.888,448,383.5,448h-255C84.112,448,48,412.888,48,368.5 - S84.112,288,128.5,288H383 M383.5,272h-255C75.205,272,32,315.205,32,368.5S75.205,464,128.5,464h255 - c53.295,0,96.5-42.205,96.5-95.5S436.795,272,383.5,272L383.5,272z"/> - </g> - <g> - <path d="M384,96c26.467,0,48,21.533,48,48s-21.533,48-48,48s-48-21.533-48-48S357.533,96,384,96 M384,80 - c-35.346,0-64,28.654-64,64c0,35.347,28.654,64,64,64s64-28.653,64-64C448,108.654,419.346,80,384,80L384,80z"/> - <path d="M129,64h254.5c44.388,0,80.5,36.112,80.5,80.5S427.888,224,383.5,224h-255c-44.388,0-80.375-35.112-80.375-79.5 - S84.362,64,128.75,64 M128.5,48C75.205,48,32,91.205,32,144.5S75.205,240,128.5,240h255c53.295,0,96.5-42.205,96.5-95.5 - S436.795,48,383.5,48H128.5L128.5,48z"/> - </g> -</g> -</svg> diff --git a/admin/bower_components/Ionicons/src/ios-toggle.svg b/admin/bower_components/Ionicons/src/ios-toggle.svg deleted file mode 100644 index f437424..0000000 --- a/admin/bower_components/Ionicons/src/ios-toggle.svg +++ /dev/null @@ -1,16 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" enable-background="new 0 0 512 512" xml:space="preserve"> -<g> - <path d="M128,320c-26.467,0-48,21.533-48,48s21.533,48,48,48s48-21.533,48-48S154.467,320,128,320z"/> - <path d="M383.5,272h-255C75.205,272,32,315.205,32,368.5S75.205,464,128.5,464h255c53.295,0,96.5-42.205,96.5-95.5 - S436.795,272,383.5,272z M128,432c-35.346,0-64-28.653-64-64c0-35.346,28.654-64,64-64s64,28.654,64,64 - C192,403.347,163.346,432,128,432z"/> - <path d="M384,192c26.467,0,48-21.533,48-48s-21.533-48-48-48s-48,21.533-48,48S357.533,192,384,192z"/> - <path d="M128.5,240h255c53.295,0,96.5-42.205,96.5-95.5S436.795,48,383.5,48h-255C75.205,48,32,91.205,32,144.5 - S75.205,240,128.5,240z M384,80c35.346,0,64,28.654,64,64c0,35.347-28.654,64-64,64s-64-28.653-64-64 - C320,108.654,348.654,80,384,80z"/> -</g> -</svg> diff --git a/admin/bower_components/Ionicons/src/ios-trash-outline.svg b/admin/bower_components/Ionicons/src/ios-trash-outline.svg deleted file mode 100644 index 2b362bb..0000000 --- a/admin/bower_components/Ionicons/src/ios-trash-outline.svg +++ /dev/null @@ -1,17 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" style="enable-background:new 0 0 512 512;" xml:space="preserve"> -<g> - <path d="M400,113.3h-80v-20c0-16.2-13.1-29.3-29.3-29.3h-69.5C205.1,64,192,77.1,192,93.3v20h-80V128h21.1l23.6,290.7 - c0,16.2,13.1,29.3,29.3,29.3h141c16.2,0,29.3-13.1,29.3-29.3L379.6,128H400V113.3z M206.6,93.3c0-8.1,6.6-14.7,14.6-14.7h69.5 - c8.1,0,14.6,6.6,14.6,14.7v20h-98.7V93.3z M341.6,417.9l0,0.4v0.4c0,8.1-6.6,14.7-14.6,14.7H186c-8.1,0-14.6-6.6-14.6-14.7v-0.4 - l0-0.4L147.7,128h217.2L341.6,417.9z"/> - <g> - <rect x="249" y="160" width="14" height="241"/> - <polygon points="320,160 305.4,160 294.7,401 309.3,401 "/> - <polygon points="206.5,160 192,160 202.7,401 217.3,401 "/> - </g> -</g> -</svg> diff --git a/admin/bower_components/Ionicons/src/ios-trash.svg b/admin/bower_components/Ionicons/src/ios-trash.svg deleted file mode 100644 index d9a0cb1..0000000 --- a/admin/bower_components/Ionicons/src/ios-trash.svg +++ /dev/null @@ -1,12 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" style="enable-background:new 0 0 512 512;" xml:space="preserve"> -<g> - <path d="M320,113V93.3c0-16.2-13.1-29.3-29.3-29.3h-69.5C205.1,64,192,77.1,192,93.3V113h-80v15h21.1l23.6,290.7 - c0,16.2,13.1,29.3,29.3,29.3h141c16.2,0,29.3-13.1,29.3-29.3L379.6,128H400v-15H320z M207,93.3c0-8.1,6.2-14.3,14.3-14.3h69.5 - c8.1,0,14.3,6.2,14.3,14.3V113h-98V93.3H207z M202.7,401L192,160h14.5l10.9,241H202.7z M263,401h-14V160h14V401z M309.3,401h-14.6 - l10.8-241H320L309.3,401z"/> -</g> -</svg> diff --git a/admin/bower_components/Ionicons/src/ios-undo-outline.svg b/admin/bower_components/Ionicons/src/ios-undo-outline.svg deleted file mode 100644 index 03c35e3..0000000 --- a/admin/bower_components/Ionicons/src/ios-undo-outline.svg +++ /dev/null @@ -1,11 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" style="enable-background:new 0 0 512 512;" xml:space="preserve"> -<g> - <path d="M447.9,368.2c0-16.8,3.6-83.1-48.7-135.7c-35.2-35.4-80.3-53.4-143.3-56.2V96L64,224l192,128v-79.8 - c40,1.1,62.4,9.1,86.7,20c30.9,13.8,55.3,44,75.8,76.6l19.2,31.2H448C448,389.9,447.9,377.1,447.9,368.2z M432.2,361.4 - C384.6,280.6,331,256,240,256v64.8L91.9,224.1L240,127.3V192C441,192,432.2,361.4,432.2,361.4z"/> -</g> -</svg> diff --git a/admin/bower_components/Ionicons/src/ios-undo.svg b/admin/bower_components/Ionicons/src/ios-undo.svg deleted file mode 100644 index e1bd3f1..0000000 --- a/admin/bower_components/Ionicons/src/ios-undo.svg +++ /dev/null @@ -1,10 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" style="enable-background:new 0 0 512 512;" xml:space="preserve"> -<g> - <path d="M447.9,368.2c0-16.8,3.6-83.1-48.7-135.7c-35.2-35.4-80.3-53.4-143.3-56.2V96L64,224l192,128v-79.8 - c40,1.1,62.4,9.1,86.7,20c30.9,13.8,55.3,44,75.8,76.6l19.2,31.2H448C448,389.9,447.9,377.1,447.9,368.2z"/> -</g> -</svg> diff --git a/admin/bower_components/Ionicons/src/ios-unlocked-outline.svg b/admin/bower_components/Ionicons/src/ios-unlocked-outline.svg deleted file mode 100644 index ed67ed4..0000000 --- a/admin/bower_components/Ionicons/src/ios-unlocked-outline.svg +++ /dev/null @@ -1,14 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" enable-background="new 0 0 512 512" xml:space="preserve"> -<g> - <path d="M256,288c-17.673,0-32,14.327-32,32c0,14.91,10.198,27.439,24,30.992V384h16v-33.008c13.802-3.553,24-16.082,24-30.992 - C288,302.327,273.673,288,256,288z M256,336c-8.822,0-16-7.178-16-16s7.178-16,16-16s16,7.178,16,16S264.822,336,256,336z"/> - <g> - <path d="M168,224v-72c0-48.523,39.484-88,88.016-88C304.531,64,344,103.477,344,152v8h16v-8c0-57.43-46.562-104-103.984-104 - C198.562,48,152,94.57,152,152v72H96v240h320V224H168z M400,448H112V240h288V448z"/> - </g> -</g> -</svg> diff --git a/admin/bower_components/Ionicons/src/ios-unlocked.svg b/admin/bower_components/Ionicons/src/ios-unlocked.svg deleted file mode 100644 index e547e80..0000000 --- a/admin/bower_components/Ionicons/src/ios-unlocked.svg +++ /dev/null @@ -1,12 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" enable-background="new 0 0 512 512" xml:space="preserve"> -<g> - <path d="M256,304c-8.822,0-16,7.178-16,16s7.178,16,16,16s16-7.178,16-16S264.822,304,256,304z"/> - <path d="M168,224v-72c0-48.523,39.484-88,88.016-88C304.531,64,344,103.477,344,152v8h16v-8c0-57.43-46.562-104-103.984-104 - C198.562,48,152,94.57,152,152v72H96v240h320V224H168z M264,350.992V384h-16v-33.008c-13.802-3.553-24-16.082-24-30.992 - c0-17.673,14.327-32,32-32s32,14.327,32,32C288,334.91,277.802,347.439,264,350.992z"/> -</g> -</svg> diff --git a/admin/bower_components/Ionicons/src/ios-upload-outline.svg b/admin/bower_components/Ionicons/src/ios-upload-outline.svg deleted file mode 100644 index e836efa..0000000 --- a/admin/bower_components/Ionicons/src/ios-upload-outline.svg +++ /dev/null @@ -1,14 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" style="enable-background:new 0 0 512 512;" xml:space="preserve"> -<g> - <g> - <polygon points="288,144 288,160 400,160 400,432 112,432 112,160 224,160 224,144 96,144 96,448 416,448 416,144 "/> - </g> - <g> - <polygon points="193.1,118.1 181.5,106.5 256,32 330.5,106.5 318.9,118.1 264.2,63.4 264.2,306.4 247.8,306.4 247.8,63.4 "/> - </g> -</g> -</svg> diff --git a/admin/bower_components/Ionicons/src/ios-upload.svg b/admin/bower_components/Ionicons/src/ios-upload.svg deleted file mode 100644 index 8390e59..0000000 --- a/admin/bower_components/Ionicons/src/ios-upload.svg +++ /dev/null @@ -1,10 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" style="enable-background:new 0 0 512 512;" xml:space="preserve"> -<g> - <polygon points="264,144 264,306 248,306 248,144 96,144 96,448 416,448 416,144 "/> - <polygon points="264,63.4 318.8,118.1 330.4,106.5 256,32 181.5,106.5 193.2,118.1 248,63.4 248,144 264,144 "/> -</g> -</svg> diff --git a/admin/bower_components/Ionicons/src/ios-videocam-outline.svg b/admin/bower_components/Ionicons/src/ios-videocam-outline.svg deleted file mode 100644 index 11cc9bb..0000000 --- a/admin/bower_components/Ionicons/src/ios-videocam-outline.svg +++ /dev/null @@ -1,12 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" style="enable-background:new 0 0 512 512;" xml:space="preserve"> -<g> - <path d="M303.7,128h-221C63.9,128,47,142.1,47,160.7v187.9c0,18.6,16.9,35.4,35.7,35.4h221c18.8,0,33.3-16.8,33.3-35.4V160.7 - C337,142.1,322.5,128,303.7,128z M320,348.6c0,9.3-6.9,18.4-16.3,18.4h-221c-9.4,0-18.7-9.1-18.7-18.4V160.7 - c0-9.3,9-15.5,18.4-15.5l221,0.1c9.4,0,16.6,6.1,16.6,15.4V348.6z"/> - <path d="M367,213v85.6l98,53.4V160L367,213z M448,190v132.3l-64-33.5v-65.6l64.1-33.6L448,190z"/> -</g> -</svg> diff --git a/admin/bower_components/Ionicons/src/ios-videocam.svg b/admin/bower_components/Ionicons/src/ios-videocam.svg deleted file mode 100644 index dbcbcee..0000000 --- a/admin/bower_components/Ionicons/src/ios-videocam.svg +++ /dev/null @@ -1,11 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" style="enable-background:new 0 0 512 512;" xml:space="preserve"> -<g> - <path d="M303.7,128h-221C63.9,128,47,142.1,47,160.7v187.9c0,18.6,16.9,35.4,35.7,35.4h221c18.8,0,33.3-16.8,33.3-35.4V160.7 - C337,142.1,322.5,128,303.7,128z"/> - <path d="M367,213v85.6l98,53.4V160L367,213z"/> -</g> -</svg> diff --git a/admin/bower_components/Ionicons/src/ios-volume-high.svg b/admin/bower_components/Ionicons/src/ios-volume-high.svg deleted file mode 100644 index 7f62cac..0000000 --- a/admin/bower_components/Ionicons/src/ios-volume-high.svg +++ /dev/null @@ -1,19 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" style="enable-background:new 0 0 512 512;" xml:space="preserve"> -<g> - <g> - <g> - <path d="M374.1,128l-13.6,10.3C384.6,171.2,399,211.9,399,256c0,44.1-14.4,84.8-38.6,117.7l13.6,10.3c26.3-35.7,41.9-80,41.9-128 - C415.9,208,400.4,163.7,374.1,128z"/> - <path d="M320,351.8c20-26.8,32-59.9,32-95.8s-12-69-32-95.8l-13.6,10.1c17.9,24,28.6,53.6,28.6,85.7s-10.7,61.7-28.6,85.7 - L320,351.8z"/> - <path d="M273.1,319.9c13.7-17.9,21.9-39.9,21.9-63.9c0-24-8.2-46-21.9-63.9l-13.5,9.8c11.6,15.1,18.5,33.8,18.5,54.1 - s-6.9,38.9-18.5,54.1L273.1,319.9z"/> - </g> - </g> - <polygon points="153.9,216 96,216 96,296 153.9,296 224,352 224,160 "/> -</g> -</svg> diff --git a/admin/bower_components/Ionicons/src/ios-volume-low.svg b/admin/bower_components/Ionicons/src/ios-volume-low.svg deleted file mode 100644 index 127e976..0000000 --- a/admin/bower_components/Ionicons/src/ios-volume-low.svg +++ /dev/null @@ -1,7 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" style="enable-background:new 0 0 512 512;" xml:space="preserve"> -<polygon points="249.9,216 192,216 192,296 249.9,296 320,352 320,160 "/> -</svg> diff --git a/admin/bower_components/Ionicons/src/ios-wineglass-outline.svg b/admin/bower_components/Ionicons/src/ios-wineglass-outline.svg deleted file mode 100644 index c193875..0000000 --- a/admin/bower_components/Ionicons/src/ios-wineglass-outline.svg +++ /dev/null @@ -1,15 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" enable-background="new 0 0 512 512" xml:space="preserve"> -<path d="M264,308.988c0-21.975,20.458-38.674,40.247-54.824c7.907-6.453,15.37-12.547,21.519-18.962 - C352.313,207.505,352,183.458,352,164.144V160c0-44.25-30.816-124.558-32.02-128H256h-64c-1.203,3.442-32,83.5-32,128v4.144 - c0,19.273-0.323,43.361,26.225,71.059c6.148,6.415,13.617,12.509,21.523,18.962c19.789,16.15,40.252,32.85,40.252,54.824V464h-72v16 - h80h80v-16h-72V308.988z M202.729,48H256h53.251c5.359,15.99,19.509,62.712,24.836,96H177.894 - C183.221,110.712,197.37,63.99,202.729,48z M256,273.416c-2.968,0-5.248-0.92-7.17-2.754c0.001,0.009,0.003,0.018,0.005,0.026 - c-8.804-10.807-20.234-20.158-30.971-28.92c-7.517-6.135-14.617-11.929-20.089-17.637c-22.054-23.008-21.928-40.916-21.795-59.875 - c0.01-1.428-0.068-2.849,0.02-4.255h159.98c0.088,1.406,0.01,2.828,0.021,4.255c0.133,18.959,0.259,36.867-21.795,59.875 - c-5.472,5.708-12.57,11.502-20.087,17.637c-10.737,8.762-22.165,18.114-30.969,28.92c0.002-0.009,0.009-0.018,0.01-0.026 - C261.238,272.496,259,273.416,256,273.416z"/> -</svg> diff --git a/admin/bower_components/Ionicons/src/ios-wineglass.svg b/admin/bower_components/Ionicons/src/ios-wineglass.svg deleted file mode 100644 index 4ac498d..0000000 --- a/admin/bower_components/Ionicons/src/ios-wineglass.svg +++ /dev/null @@ -1,11 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" enable-background="new 0 0 512 512" xml:space="preserve"> -<path d="M264,308.988c0-21.975,20.458-38.674,40.247-54.824c7.907-6.453,15.37-12.547,21.519-18.962 - C352.313,207.505,352,183.458,352,164.144V160c0-44.25-30.816-124.558-32.02-128H256h-64c-1.203,3.442-32,83.5-32,128v4.144 - c0,19.273-0.323,43.361,26.225,71.059c6.148,6.415,13.617,12.509,21.523,18.962c19.789,16.15,40.252,32.85,40.252,54.824V464h-72v16 - h80h80v-16h-72V308.988z M202.729,48H256h53.251c5.359,15.99,19.509,62.712,24.836,96H177.894 - C183.221,110.712,197.37,63.99,202.729,48z"/> -</svg> diff --git a/admin/bower_components/Ionicons/src/ios-world-outline.svg b/admin/bower_components/Ionicons/src/ios-world-outline.svg deleted file mode 100644 index a90af05..0000000 --- a/admin/bower_components/Ionicons/src/ios-world-outline.svg +++ /dev/null @@ -1,22 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" style="enable-background:new 0 0 512 512;" xml:space="preserve"> -<path d="M256,48c-0.1,0-0.1,0-0.2,0c0,0,0,0-0.1,0c-0.1,0-0.2,0-0.2,0C140.8,48.3,48,141.3,48,256c0,114.7,92.8,207.7,207.5,208 - c0.1,0,0.2,0,0.2,0c0,0,0.1,0,0.1,0c0.1,0,0.1,0,0.2,0c114.9,0,208-93.1,208-208C464,141.1,370.9,48,256,48z M264.3,172.5 - c22.1-0.6,43.5-3.5,64.2-8.5c6.2,24.5,10.1,52.8,10.7,83.8h-74.9V172.5z M264.3,155.8V66c22.4,6.2,45.2,36.1,59.6,82 - C304.7,152.6,284.8,155.2,264.3,155.8z M247.7,65.8v90.1c-20.7-0.6-40.8-3.3-60.1-8C202.2,101.7,225.1,71.6,247.7,65.8z - M247.7,172.5v75.2h-75.4c0.6-31,4.5-59.3,10.7-83.8C203.8,168.9,225.5,171.9,247.7,172.5z M155.5,247.7H64.9 - c1.8-42.8,17.8-82,43.3-113c18.5,10.2,38.2,18.6,58.8,24.8C160.2,186,156.2,215.9,155.5,247.7z M155.5,264.3 - c0.6,31.7,4.6,61.7,11.4,88.2c-20.6,6.3-40.2,14.6-58.8,24.8c-25.5-31-41.4-70.2-43.3-113H155.5z M172.3,264.3h75.4v75.1 - c-22.2,0.6-43.9,3.6-64.7,8.7C176.8,323.6,172.9,295.3,172.3,264.3z M247.7,356.1v90.2c-22.6-5.9-45.5-35.9-60.1-82.1 - C206.9,359.4,227,356.7,247.7,356.1z M264.3,446v-90c20.5,0.6,40.4,3.3,59.7,7.9C309.5,409.9,286.8,439.8,264.3,446z M264.3,339.4 - v-75.1h74.9c-0.6,30.9-4.5,59.2-10.7,83.7C307.8,343,286.4,340,264.3,339.4z M355.9,264.3h91.2c-1.8,42.8-17.8,81.9-43.3,113 - c-18.7-10.3-38.5-18.7-59.3-25C351.3,325.8,355.3,296,355.9,264.3z M355.9,247.7c-0.6-31.7-4.6-61.6-11.3-88.1 - c20.8-6.3,40.6-14.7,59.2-24.9c25.5,31,41.5,70.2,43.3,113.1H355.9z M392.4,121.9c-16.6,8.8-34,16.1-52.3,21.6 - c-9.7-31.3-23.4-56.8-39.5-73.6C336,78.4,367.6,96.8,392.4,121.9z M210.8,70.1c-16.1,16.7-29.7,42.2-39.3,73.3 - c-18.1-5.5-35.4-12.7-51.8-21.5C144.2,96.9,175.6,78.6,210.8,70.1z M119.6,390c16.4-8.8,33.8-16,51.8-21.5 - c9.7,31.2,23.3,56.6,39.4,73.4C175.6,433.4,144.2,415.1,119.6,390z M300.6,442.1c16.2-16.8,29.8-42.3,39.6-73.7 - c18.3,5.5,35.7,12.8,52.3,21.6C367.7,415.2,336,433.6,300.6,442.1z"/> -</svg> diff --git a/admin/bower_components/Ionicons/src/ios-world.svg b/admin/bower_components/Ionicons/src/ios-world.svg deleted file mode 100644 index 97d6a83..0000000 --- a/admin/bower_components/Ionicons/src/ios-world.svg +++ /dev/null @@ -1,29 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" style="enable-background:new 0 0 512 512;" xml:space="preserve"> -<g> - <path d="M256,48c-0.1,0-0.1,0-0.2,0c0,0,0,0-0.1,0c-0.1,0-0.2,0-0.2,0C140.8,48.3,48,141.3,48,256c0,114.7,92.8,207.7,207.5,208 - c0.1,0,0.2,0,0.2,0c0,0,0.1,0,0.1,0c0.1,0,0.1,0,0.2,0c114.9,0,208-93.1,208-208C464,141.1,370.9,48,256,48z M256,447.4 - c-0.1,0-0.1,0-0.2,0c0,0,0,0-0.1,0c-0.1,0-0.2,0-0.2,0C150.1,447.1,64.6,361.5,64.6,256c0-105.5,85.4-191.1,190.9-191.3 - c0.1,0,0.1,0,0.2,0c0,0,0.1,0,0.1,0c0.1,0,0.1,0,0.2,0c105.7,0,191.4,85.7,191.4,191.4C447.4,361.7,361.7,447.4,256,447.4z"/> - <path d="M322.3,171.8c-18.7,4.5-38,7.2-57.9,7.8v68.1H332C331.4,219.6,327.9,194.1,322.3,171.8z"/> - <path d="M264.3,82.5v81.9c18.5-0.6,36.5-3,53.8-7.2C305,115.8,284.6,88.6,264.3,82.5z"/> - <path d="M193.4,157.1c17.5,4.2,35.6,6.7,54.2,7.3V82.3C227.3,88.2,206.6,115.4,193.4,157.1z"/> - <path d="M380.6,133.4c-22.6-23-51.5-39.8-83.9-47.5c14.8,15.3,27.2,38.7,36.1,67.3C349.5,148.1,365.5,141.5,380.6,133.4z"/> - <path d="M347.3,247.7h83.3c-1.8-38.8-16.3-74.4-39.5-102.6c-17.1,9.4-35.2,17.1-54.1,22.8C343.1,191.9,346.7,219,347.3,247.7z"/> - <path d="M179.5,247.7h68.2v-68.1c-20.1-0.6-39.6-3.3-58.4-7.9C183.6,194,180.1,219.6,179.5,247.7z"/> - <path d="M332,264.3h-67.7v68c19.9,0.6,39.3,3.2,58,7.8C327.9,317.9,331.4,292.3,332,264.3z"/> - <path d="M189.3,340.2c18.8-4.6,38.3-7.3,58.4-7.9v-68h-68.2C180.1,292.4,183.6,318,189.3,340.2z"/> - <path d="M247.7,429.6v-82.1c-18.6,0.6-36.8,3.1-54.3,7.3C206.6,396.5,227.3,423.8,247.7,429.6z"/> - <path d="M296.7,426.1c32.4-7.8,61.3-24.5,84-47.6c-15.1-8.1-31.1-14.7-47.8-19.8C324,387.4,311.5,410.7,296.7,426.1z"/> - <path d="M214.7,86.1c-32.1,7.8-60.8,24.5-83.3,47.4c15,8,30.8,14.6,47.3,19.6C187.6,124.6,200,101.4,214.7,86.1z"/> - <path d="M337,344.1c19,5.7,37.1,13.4,54.2,22.8c23.2-28.2,37.7-63.8,39.5-102.6h-83.3C346.7,293,343.1,320,337,344.1z"/> - <path d="M264.3,347.5v82c20.3-6.1,40.7-33.3,53.8-74.8C300.8,350.5,282.8,348.1,264.3,347.5z"/> - <path d="M174.6,167.8c-18.8-5.7-36.8-13.3-53.7-22.7c-23.2,28.2-37.7,63.8-39.5,102.6h82.9C164.8,218.9,168.5,191.8,174.6,167.8z" - /> - <path d="M164.2,264.3H81.3c1.8,38.8,16.3,74.4,39.5,102.6c16.9-9.3,34.9-17,53.7-22.7C168.5,320.2,164.8,293.1,164.2,264.3z"/> - <path d="M131.3,378.5c22.5,22.9,51.2,39.6,83.4,47.4c-14.7-15.3-27.1-38.6-36-67.1C162.2,363.9,146.3,370.5,131.3,378.5z"/> -</g> -</svg> diff --git a/admin/bower_components/Ionicons/src/ipad.svg b/admin/bower_components/Ionicons/src/ipad.svg deleted file mode 100644 index b1263d9..0000000 --- a/admin/bower_components/Ionicons/src/ipad.svg +++ /dev/null @@ -1,10 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" style="enable-background:new 0 0 512 512;" xml:space="preserve"> -<path d="M112,72.8v366.4c0,4.9,3.9,8.8,8.8,8.8h270.4c4.9,0,8.8-3.9,8.8-8.8V72.8c0-4.9-3.9-8.8-8.8-8.8H120.8 - C115.9,64,112,67.9,112,72.8z M256,437.6c-7.5,0-13.6-6-13.6-13.5c0-7.5,6.1-13.6,13.6-13.6c7.4,0,13.5,6.1,13.5,13.6 - C269.6,431.6,263.5,437.6,256,437.6z M144,118.6c0-3.5,2.7-6.6,6-6.6h211.2c3.4,0,6.8,3.1,6.8,6.6v275.2c0,3.5-3.4,6.3-6.8,6.3H150 - c-3.4,0-6-2.8-6-6.3V118.6z"/> -</svg> diff --git a/admin/bower_components/Ionicons/src/iphone.svg b/admin/bower_components/Ionicons/src/iphone.svg deleted file mode 100644 index 7c93552..0000000 --- a/admin/bower_components/Ionicons/src/iphone.svg +++ /dev/null @@ -1,13 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" style="enable-background:new 0 0 512 512;" xml:space="preserve"> -<g> - <path d="M328.2,64H183.8C170.7,64,160,74.7,160,87.9v336.3c0,13.1,10.7,23.8,23.8,23.8h144.3c13.1,0,23.8-10.7,23.8-23.8V87.9 - C352,74.7,341.3,64,328.2,64z M240,99.9c0-2.1,1.7-3.9,3.9-3.9h24.3c2.1,0,3.9,1.7,3.9,3.9v0.3c0,2.1-1.7,3.9-3.9,3.9h-24.3 - c-2.1,0-3.9-1.7-3.9-3.9V99.9z M228,96c2.2,0,4,1.8,4,4c0,2.2-1.8,4-4,4s-4-1.8-4-4C224,97.8,225.8,96,228,96z M256,432.1 - c-8.9,0-16.1-7.2-16.1-16.1c0-8.9,7.2-16.1,16.1-16.1c8.9,0,16.1,7.2,16.1,16.1C272.1,424.9,264.8,432.1,256,432.1z M336,384H176 - V128h160V384z"/> -</g> -</svg> diff --git a/admin/bower_components/Ionicons/src/ipod.svg b/admin/bower_components/Ionicons/src/ipod.svg deleted file mode 100644 index ad02aec..0000000 --- a/admin/bower_components/Ionicons/src/ipod.svg +++ /dev/null @@ -1,13 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" style="enable-background:new 0 0 512 512;" xml:space="preserve"> -<g> - <path d="M256,311c-17.7,0-32,14.3-32,32c0,17.6,14.3,32,32,32c17.6,0,32-14.3,32-32C288,325.3,273.7,311,256,311z"/> - <path d="M340.4,64H171.6C156.4,64,144,76.2,144,91.7v328.7c0,15.5,12.4,27.7,27.6,27.7h168.8c15.2,0,27.6-12.2,27.6-27.7V91.7 - C368,76.2,355.6,64,340.4,64z M256.1,416.1c-39.8,0-72.1-32.2-72.1-72c0-39.7,32.3-72,72.1-72c39.7,0,71.9,32.3,71.9,72 - C328,383.9,295.8,416.1,256.1,416.1z M335.9,226.8c-0.8,7.6-7,13.2-14.7,13.2h-131c-8.2,0-14.2-6.2-14.2-14.6V110.9 - c0-7.5,5-13.7,12-14.9l135.8,0c6.5,1.2,11.5,6.6,12.2,13.3L335.9,226.8z"/> -</g> -</svg> diff --git a/admin/bower_components/Ionicons/src/jet.svg b/admin/bower_components/Ionicons/src/jet.svg deleted file mode 100644 index c7238e2..0000000 --- a/admin/bower_components/Ionicons/src/jet.svg +++ /dev/null @@ -1,14 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" style="enable-background:new 0 0 512 512;" xml:space="preserve"> -<style type="text/css"> -<![CDATA[ - .st0{fill:#010101;} -]]> -</style> -<path class="st0" d="M314.8,368.5L419,403l-3-52.7L302,247c0,0-25.9-173.7-28.2-192.3C268.5,14.4,255.9,0,255.9,0 - s-12.5,14.4-17.6,54.6C235.9,73.3,210,247,210,247L96,350.3L93,403l104.2-34.5l1.4,12.3l-52.7,58.3l18.3,27.4l73.3-9.1l18.3,54.6 - l18.5-54.6l73.4,9.1l18.3-27.4l-52.7-58.3L314.8,368.5z"/> -</svg> diff --git a/admin/bower_components/Ionicons/src/key.svg b/admin/bower_components/Ionicons/src/key.svg deleted file mode 100644 index 3bc445d..0000000 --- a/admin/bower_components/Ionicons/src/key.svg +++ /dev/null @@ -1,14 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" style="enable-background:new 0 0 512 512;" xml:space="preserve"> -<path d="M304.3,301c0,0-5.4-28-7.3-90c-1.9-62-9-142.5-9-142.5c-2.5-28-11.8-36.5-32-36.5c-9.4,0-20.5,2.3-23.3,3.3 - c-9.4,3.6-8.7,11.6-8.7,22.5l0,17.8c0,3.2,1.2,6,3.2,8.2l0.8,0.8l4.1,4.1c0.4,0.3,0.1,0.7,0.4,1c1.9,2.2,3.1,5,3.1,8.1l0,24.5 - c0,3.2-1.2,3.2-3.2,5.3c-0.2,0.3-0.5,0.6-0.8,0.8l-4.4,4.4c-0.1,0.1-0.3,0.3-0.4,0.4c-2.1,2.2-3.4,5.2-3.4,8.4l0,7.2 - c0,3.1,1.1,5.9,3.1,8.1c0,0,0.1,0.1,0.1,0.1l0.8,0.8c0,0,0.1,0.1,0.1,0.1l4,4c0.4,0.3,0.7,0.7,1,1c1.9,2.2,3.1,5,3.1,8.1 - c0,0.7-0.1,8.1-0.2,8.8c-0.4,2.3-1.5,4.4-3,6.1c-0.2,0.3-0.5,0.6-0.8,0.8l-3.9,3.9l-1.4,1.5c-0.5,0.6-0.7,1.3-1.1,2.1 - c-0.9,1.7-1.2,3.7-1.2,5.9v7.8c0,2.9-0.1,5.7-0.2,8.6c0.2,2.4,7.2,5.7,7.2,10.5v20.4c0,6.2-10.5,7-11,11.3 - c-4.7,25.4-11.9,41.8-11.9,41.8c-28.7,16.6-48,47.6-48,83.2c0,53,43,96,96,96s96-43,96-96C352,348.6,332.8,317.7,304.3,301z - M256,448c-17.7,0-32-14.3-32-32s14.3-32,32-32s32,14.3,32,32S273.7,448,256,448z"/> -</svg> diff --git a/admin/bower_components/Ionicons/src/knife.svg b/admin/bower_components/Ionicons/src/knife.svg deleted file mode 100644 index c70faa3..0000000 --- a/admin/bower_components/Ionicons/src/knife.svg +++ /dev/null @@ -1,9 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" style="enable-background:new 0 0 512 512;" xml:space="preserve"> -<path d="M285.7,32c-3.3,0-6,1.4-8,3.8C259,58.7,224,116.1,224,250.1c0,39.2,33,39.2,32,69.4c0,0.1,0,0.3,0,0.4 - c-2,47.1-14.9,111.1-16,130.3c-0.4,15.2,9.7,29.8,24.1,29.8c0.1,0,0.1,0,0.2,0c0,0,0.1,0,0.2,0c14.4,0,23.5-14.4,23.5-29.6V38.3 - C288,33.3,287.5,32,285.7,32z"/> -</svg> diff --git a/admin/bower_components/Ionicons/src/laptop.svg b/admin/bower_components/Ionicons/src/laptop.svg deleted file mode 100644 index 669df21..0000000 --- a/admin/bower_components/Ionicons/src/laptop.svg +++ /dev/null @@ -1,10 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" style="enable-background:new 0 0 512 512;" xml:space="preserve"> -<g> - <path d="M480,106.3c0-5.6-4.1-10.3-9.6-10.3H42.2c-5.5,0-10.2,4.6-10.2,10.3V368h448V106.3z M448,336H64V128h384V336z"/> - <path d="M0,388.7C70.2,408.6,115.8,416,256,416c140.2,0,185.8-7.3,256-27.3V384H0V388.7z"/> -</g> -</svg> diff --git a/admin/bower_components/Ionicons/src/leaf.svg b/admin/bower_components/Ionicons/src/leaf.svg deleted file mode 100644 index da91316..0000000 --- a/admin/bower_components/Ionicons/src/leaf.svg +++ /dev/null @@ -1,12 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" style="enable-background:new 0 0 512 512;" xml:space="preserve"> -<g> - <path d="M456.7,378.7c-52.5-8-56.5-15.7-56.5-15.7c10.8-64.9-22.7-147.1-77.4-191.6c-72.8-59.2-183.5-16.2-269.7-106.2 - c-20.1-21-8.4,235.5,99.5,332.7c78.9,71,171.8,49.2,197.3,37.6c23.1-10.6,39.3-29.9,39.3-29.9c42.1,13,62.9,12.2,62.9,12.2 - C466.9,419.6,474.4,381.4,456.7,378.7z M360.6,383.1c-138.2-40.9-242.1-184.5-242.1-184.5s91.2,107.7,252,160.2 - C370.7,366.9,365.9,378.5,360.6,383.1z"/> -</g> -</svg> diff --git a/admin/bower_components/Ionicons/src/levels.svg b/admin/bower_components/Ionicons/src/levels.svg deleted file mode 100644 index 34d7254..0000000 --- a/admin/bower_components/Ionicons/src/levels.svg +++ /dev/null @@ -1,16 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" style="enable-background:new 0 0 512 512;" xml:space="preserve"> -<g> - <path d="M127,99.2V80c0-8.8-7.2-16-16-16s-16,7.2-16,16v21.5c-8.5,5.8-14,15.5-14,26.5s5.5,20.7,14,26.5V432c0,8.8,7.2,16,16,16 - s16-7.2,16-16V156.8c10.7-5.2,18-16.1,18-28.8S137.7,104.4,127,99.2z"/> - <path d="M223,292.9V80c0-8.8-7.2-16-16-16s-16,7.2-16,16v211.7c-10.1,5.4-17,16-17,28.3s6.9,22.9,17,28.3V432c0,8.8,7.2,16,16,16 - s16-7.2,16-16v-84.9c9-5.7,15-15.7,15-27.1S232,298.6,223,292.9z"/> - <path d="M319,163.3V80c0-8.8-7.2-16-16-16s-16,7.2-16,16v83.3c-9.6,5.5-16,15.9-16,27.7s6.4,22.2,16,27.7V432c0,8.8,7.2,16,16,16 - s16-7.2,16-16V218.7c9.6-5.5,16-15.9,16-27.7S328.6,168.8,319,163.3z"/> - <path d="M431,383c0-11.8-6.4-22.2-16-27.7V80c0-8.8-7.2-16-16-16s-16,7.2-16,16v275.3c-9.6,5.5-16,15.9-16,27.7s6.4,22.2,16,27.7 - V432c0,8.8,7.2,16,16,16s16-7.2,16-16v-21.3C424.6,405.2,431,394.8,431,383z"/> -</g> -</svg> diff --git a/admin/bower_components/Ionicons/src/lightbulb.svg b/admin/bower_components/Ionicons/src/lightbulb.svg deleted file mode 100644 index 65d968b..0000000 --- a/admin/bower_components/Ionicons/src/lightbulb.svg +++ /dev/null @@ -1,21 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" style="enable-background:new 0 0 512 512;" xml:space="preserve"> -<g> - <path d="M256,32c-70.7,0-128,55.4-128,123.8c0,4.9,0.3,9.7,0.9,14.5c0.6,5.4,1.6,10.6,3,15.7c0.1,0.5,0.3,1.1,0.4,1.6 - c16.6,62.8,45.3,71.5,58.9,167.6c0,0.2,0.1,0.4,0.1,0.5c1.5,9.2,9.8,12.3,19.8,12.3H301c10,0,18.2-3.1,19.7-12.3 - c0-0.2,0.1-0.4,0.1-0.5c13.6-96.1,42.3-104.7,58.9-167.6c0.2-0.5,0.3-1,0.4-1.6c1.3-5.1,2.3-10.4,3-15.7c0.6-4.7,0.9-9.6,0.9-14.5 - C384,87.4,326.7,32,256,32z"/> - <path d="M317.8,396.5c0.1-0.2,0.3-0.4,0.4-0.6c1.1-1.7,1.7-3.6,1.7-5.7c0-3.5,1.6-6.2-6.5-6.2H198.6c-8.1,0-6.5,2.1-6.5,6.2 - c0,2.1,0.6,4,1.7,5.7c0.1,0.2,0.3,0.4,0.5,0.6c0,0.1,0.1,0.1,0.1,0.2c1.7,2.6,2.7,4.4,2.7,7.6c0,3.1-0.9,4.9-2.6,7.5 - c-0.3,0.4-0.5,0.7-0.7,1c-1,1.7-1.6,3.6-1.6,5.6c0,2.1,0.6,4,1.7,5.8c0.1,0.2,0.3,0.4,0.4,0.6c1.8,2.7,2.8,4.5,2.8,7.8 - c0,3.1-0.9,4.9-2.6,7.4c-0.2,0.4-0.5,0.7-0.8,1.1c-1,1.7-1.6,3.6-1.6,5.6c0,5.4,4.3,10.1,10.2,11.6c0.3,0.1,0.6,0.1,0.9,0.2 - c6,1.4,12.2,1.6,18.5,2.5c0.7,0.1,1.4,0.2,2.2,0.3c5.6,1,10.3,3.9,13.4,7.7l0,0c3.8,5.3,10.8,11,18.8,11c7.6,0,14.3-5.4,18.2-10.4 - h0c3-4.2,8-7.3,13.9-8.4c0.7-0.1,1.4-0.3,2.2-0.3c6.3-0.9,12.5-1.1,18.5-2.5c0.3-0.1,0.6-0.1,0.9-0.2c5.9-1.6,10.2-6.2,10.2-11.6 - c0-2-0.6-3.9-1.6-5.6c-0.3-0.4-0.5-0.7-0.8-1.1c-1.6-2.6-2.6-4.3-2.6-7.4c0-3.2,1-5.1,2.8-7.8c0.1-0.2,0.3-0.4,0.4-0.6 - c1.1-1.7,1.7-3.7,1.7-5.8c0-2-0.6-3.9-1.6-5.6c-0.3-0.3-0.5-0.7-0.7-1c-1.6-2.6-2.6-4.3-2.6-7.5c0-3.2,1-5,2.7-7.6 - C317.7,396.7,317.7,396.6,317.8,396.5z"/> -</g> -</svg> diff --git a/admin/bower_components/Ionicons/src/link.svg b/admin/bower_components/Ionicons/src/link.svg deleted file mode 100644 index 9746518..0000000 --- a/admin/bower_components/Ionicons/src/link.svg +++ /dev/null @@ -1,15 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" style="enable-background:new 0 0 512 512;" xml:space="preserve"> -<g> - <path d="M256.5,208H256v0C256.2,208,256.3,208,256.5,208z"/> - <path d="M368.5,160H320c0,0,26,17,31.6,48H368h0.5c17.6,0,31.5,13.9,31.5,31.5v32c0,17.6-13.9,32.5-31.5,32.5h-112 - c-17.6,0-32.5-14.9-32.5-32.5V240h-48v31.5c0,11.5,2.5,22.5,6.9,32.5c12.6,28.2,40.9,48,73.6,48h112c44.2,0,79.5-36.3,79.5-80.5 - v-32C448,195.3,412.7,160,368.5,160z"/> - <path d="M329.6,208c-12.1-28.3-40.1-48-73.1-48h-112c-44.2,0-80.5,35.3-80.5,79.5v32c0,44.2,36.3,80.5,80.5,80.5H192 - c0,0-25.8-17-32.1-48h-15.4c-17.6,0-32.5-14.9-32.5-32.5v-32c0-17.6,14.9-31.5,32.5-31.5H256h0.5c17.6,0,31.5,13.9,31.5,31.5v32 - c0,0.2,0,0.3,0,0.5h48c0-0.2,0-0.3,0-0.5v-32C336,228.3,333.7,217.6,329.6,208z"/> -</g> -</svg> diff --git a/admin/bower_components/Ionicons/src/load-a.svg b/admin/bower_components/Ionicons/src/load-a.svg deleted file mode 100644 index b41fdfc..0000000 --- a/admin/bower_components/Ionicons/src/load-a.svg +++ /dev/null @@ -1,17 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" style="enable-background:new 0 0 512 512;" xml:space="preserve"> -<g> - <circle cx="256" cy="96" r="64"/> - <circle cx="96" cy="256" r="48"/> - <circle cx="368" cy="144" r="8"/> - <path d="M180.1,107.6c-19.9-20.1-52.2-20.1-72.1,0c-19.9,20.1-19.9,52.7,0,72.8c19.9,20.1,52.2,20.1,72.1,0 - C200,160.3,200,127.7,180.1,107.6z"/> - <circle cx="416" cy="256" r="16"/> - <circle cx="369" cy="369" r="24"/> - <circle cx="256" cy="416" r="32"/> - <circle cx="144" cy="368" r="40"/> -</g> -</svg> diff --git a/admin/bower_components/Ionicons/src/load-b.svg b/admin/bower_components/Ionicons/src/load-b.svg deleted file mode 100644 index b3254f6..0000000 --- a/admin/bower_components/Ionicons/src/load-b.svg +++ /dev/null @@ -1,20 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" style="enable-background:new 0 0 512 512;" xml:space="preserve"> -<g> - <path d="M288,160c0,17.7-14.3,32-32,32l0,0c-17.7,0-32-14.3-32-32V64c0-17.7,14.3-32,32-32l0,0c17.7,0,32,14.3,32,32V160z"/> - <path d="M256,320c-17.7,0-32,14.3-32,32v96c0,17.7,14.3,32,32,32s32-14.3,32-32v-96C288,334.3,273.7,320,256,320L256,320z"/> - <path d="M448,224h-96c-17.7,0-32,14.3-32,32s14.3,32,32,32h96c17.7,0,32-14.3,32-32S465.7,224,448,224L448,224z"/> - <path d="M160,224H64c-17.7,0-32,14.3-32,32s14.3,32,32,32h96c17.7,0,32-14.3,32-32S177.7,224,160,224L160,224z"/> - <path d="M346.5,210.7c-12.5,12.5-32.8,12.5-45.3,0l0,0c-12.5-12.5-12.5-32.8,0-45.3l67.9-67.9c12.5-12.5,32.8-12.5,45.3,0l0,0 - c12.5,12.5,12.5,32.8,0,45.3L346.5,210.7z"/> - <path d="M210.7,301.3c-12.5-12.5-32.8-12.5-45.3,0l-67.9,67.9c-12.5,12.5-12.5,32.8,0,45.3c12.5,12.5,32.8,12.5,45.3,0l67.9-67.9 - C223.2,334,223.2,313.8,210.7,301.3L210.7,301.3z"/> - <path d="M414.4,369.1l-67.9-67.9c-12.5-12.5-32.8-12.5-45.3,0c-12.5,12.5-12.5,32.8,0,45.3l67.9,67.9c12.5,12.5,32.8,12.5,45.3,0 - C426.9,401.9,426.9,381.6,414.4,369.1L414.4,369.1z"/> - <path d="M210.7,165.5l-67.9-67.9c-12.5-12.5-32.8-12.5-45.3,0c-12.5,12.5-12.5,32.8,0,45.3l67.9,67.9c12.5,12.5,32.8,12.5,45.3,0 - S223.2,178,210.7,165.5L210.7,165.5z"/> -</g> -</svg> diff --git a/admin/bower_components/Ionicons/src/load-c.svg b/admin/bower_components/Ionicons/src/load-c.svg deleted file mode 100644 index e8cf4eb..0000000 --- a/admin/bower_components/Ionicons/src/load-c.svg +++ /dev/null @@ -1,21 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" style="enable-background:new 0 0 512 512;" xml:space="preserve"> -<path d="M479.8,226.1c-1.4-8.7-3.1-17.3-5.3-25.8c-2.8-10.8-6.4-21.5-10.8-31.8c-8.9-21.2-21.1-41-35.9-58.6 - c-16-18.9-35.3-35.2-56.7-47.7C350,49.8,327,41,303,36.1c-12.4-2.5-24.9-4-37.6-4.1c-9.9-0.1-19.8,0.3-29.6,1.2 - c-25.5,2.5-50.7,9.6-73.9,20.5c-19.9,9.4-38.4,21.6-54.8,36.2c-16.4,14.6-30.7,31.6-42.2,50.3c-12.7,20.8-22.2,43.5-27.4,67.3 - c-4.2,19-6.2,38.6-5.2,58.1c0.9,18.9,3.8,37.8,9.5,55.9c3.6,11.5,7.9,22.7,13.3,33.6c5.3,10.7,11.5,21,18.4,30.7 - c13.8,19.3,30.6,36.4,49.8,50.5c19.6,14.5,41.7,25.7,64.9,33.1c24.2,7.7,49.9,11.3,75.3,10.4c24.8-0.8,49.4-5.6,72.6-14.5 - c22.3-8.6,43.2-20.9,61.5-36.3c9.2-7.8,17.4-16.6,25.1-25.9c7.8-9.4,14.8-19.3,20.6-30c5-9.2,9.2-18.8,12.8-28.5 - c1.8-4.8,3.5-9.6,4.9-14.6c1.5-5.3,2.6-10.8,3.6-16.2c1.5-8.5,2.1-17.3,1.3-25.9c-0.7,3.8-1.3,7.5-2.2,11.2 - c-1.1,4.3-2.5,8.5-4.1,12.6c-3.2,8.7-7.2,17.1-11,25.5c-4.9,10.7-10.6,20.9-16.8,30.8c-3.2,5.1-6.5,10.1-10.1,14.9 - c-3.6,4.8-7.7,9.4-11.8,13.9c-8.2,9.1-17.1,17.2-27,24.4c-10.1,7.4-20.8,13.9-32.1,19.3c-22.6,11-47.3,17.6-72.3,19.8 - c-25.6,2.2-51.7-0.3-76.3-7.6c-23.4-6.9-45.6-18.1-65.1-32.8c-18.9-14.3-35.3-31.9-48.2-51.8C75.4,347.8,66.1,324.9,61,301 - c-1.3-6.2-2.3-12.6-3-18.9c-0.6-5.4-1.1-10.9-1.3-16.4c-0.3-11.3,0.4-23,2.1-34.2c3.7-24.6,11.7-48.3,24.1-69.9 - c11-19.3,25.3-36.7,42.1-51.4c16.8-14.8,36-26.7,56.8-35.1c12-4.9,24.6-8.5,37.4-10.9c6.5-1.2,13-2.2,19.5-2.7 - c3.2-0.3,6.3-0.3,9.5-0.6c1.3,0,2.6,0.1,3.9,0.1c21.7-0.4,43.5,2.4,64.2,8.9c22.3,7,43.3,18.3,61.5,33c19.1,15.4,35,34.4,47,55.8 - c10.2,18.2,17.5,37.8,21.9,58.2c1,4.7,1.8,9.4,2.6,14.1c0.7,4.3,3.1,8.3,6.8,10.7c7.8,5.2,18.7,1.7,22.5-6.7 - C479.9,232.1,480.3,229,479.8,226.1z"/> -</svg> diff --git a/admin/bower_components/Ionicons/src/load-d.svg b/admin/bower_components/Ionicons/src/load-d.svg deleted file mode 100644 index 6c04ec1..0000000 --- a/admin/bower_components/Ionicons/src/load-d.svg +++ /dev/null @@ -1,28 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" style="enable-background:new 0 0 512 512;" xml:space="preserve"> -<g> - <path d="M432,240h-80c-8.8,0-16,7.2-16,16s7.2,16,16,16h80c8.8,0,16-7.2,16-16S440.8,240,432,240z"/> - <path d="M176,256c0-8.8-7.2-16-16-16H80c-8.8,0-16,7.2-16,16s7.2,16,16,16h80C168.8,272,176,264.8,176,256z"/> - <path d="M256,336c-8.8,0-16,7.2-16,16v80c0,8.8,7.2,16,16,16s16-7.2,16-16v-80C272,343.2,264.8,336,256,336z"/> - <path d="M256,64c-8.8,0-16,7.2-16,16v80c0,8.8,7.2,16,16,16s16-7.2,16-16V80C272,71.2,264.8,64,256,64z"/> - <path d="M325.3,216c4.4,7.7,14.2,10.3,21.9,5.9l69.3-40c7.7-4.4,10.3-14.2,5.9-21.9s-14.2-10.3-21.9-5.9l-69.3,40 - C323.5,198.6,320.9,208.3,325.3,216z"/> - <path d="M186.7,296c-4.4-7.7-14.2-10.3-21.9-5.9l-69.3,40c-7.7,4.4-10.3,14.2-5.9,21.9s14.2,10.3,21.9,5.9l69.3-40 - C188.5,313.4,191.1,303.7,186.7,296z"/> - <path d="M317.9,331.1c-4.4-7.7-14.2-10.3-21.9-5.9s-10.3,14.2-5.9,21.9l40,69.3c4.4,7.7,14.2,10.3,21.9,5.9 - c7.7-4.4,10.3-14.2,5.9-21.9L317.9,331.1z"/> - <path d="M181.9,95.6c-4.4-7.7-14.2-10.3-21.9-5.9c-7.7,4.4-10.3,14.2-5.9,21.9l40,69.3c4.4,7.7,14.2,10.3,21.9,5.9 - s10.3-14.2,5.9-21.9L181.9,95.6z"/> - <path d="M296,186.7c7.7,4.4,17.4,1.8,21.9-5.9l40-69.3c4.4-7.7,1.8-17.4-5.9-21.9c-7.7-4.4-17.4-1.8-21.9,5.9l-40,69.3 - C285.7,172.5,288.3,182.3,296,186.7z"/> - <path d="M216,325.3c-7.7-4.4-17.4-1.8-21.9,5.9l-40,69.3c-4.4,7.7-1.8,17.4,5.9,21.9c7.7,4.4,17.4,1.8,21.9-5.9l40-69.3 - C226.3,339.5,223.7,329.7,216,325.3z"/> - <path d="M416.4,330.1l-69.3-40c-7.7-4.4-17.4-1.8-21.9,5.9c-4.4,7.7-1.8,17.4,5.9,21.9l69.3,40c7.7,4.4,17.4,1.8,21.9-5.9 - C426.7,344.3,424.1,334.6,416.4,330.1z"/> - <path d="M95.6,181.9l69.3,40c7.7,4.4,17.4,1.8,21.9-5.9s1.8-17.4-5.9-21.9l-69.3-40c-7.7-4.4-17.4-1.8-21.9,5.9 - C85.3,167.7,87.9,177.4,95.6,181.9z"/> -</g> -</svg> diff --git a/admin/bower_components/Ionicons/src/location.svg b/admin/bower_components/Ionicons/src/location.svg deleted file mode 100644 index 60c274d..0000000 --- a/admin/bower_components/Ionicons/src/location.svg +++ /dev/null @@ -1,11 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" style="enable-background:new 0 0 512 512;" xml:space="preserve"> -<g> - <path d="M256,64c-65.9,0-119.3,53.7-119.3,120c0,114.6,119.3,264,119.3,264s119.3-149.4,119.3-264C375.3,117.7,321.9,64,256,64z - M256,242.2c-31.2,0-56.4-25.4-56.4-56.7c0-31.3,25.3-56.8,56.4-56.8c31.2,0,56.4,25.4,56.4,56.8 - C312.4,216.8,287.2,242.2,256,242.2z"/> -</g> -</svg> diff --git a/admin/bower_components/Ionicons/src/lock-combination.svg b/admin/bower_components/Ionicons/src/lock-combination.svg deleted file mode 100644 index c06e000..0000000 --- a/admin/bower_components/Ionicons/src/lock-combination.svg +++ /dev/null @@ -1,28 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" enable-background="new 0 0 512 512" xml:space="preserve"> -<g> - <path d="M384,176.905V128C384,57.308,326.692,0,256,0S128,57.308,128,128v48.906C88.725,212.062,64,263.141,64,320 - c0,106.039,85.962,192,192,192c106.039,0,192-85.961,192-192C448,263.141,423.275,212.062,384,176.905z M160,128 - c0-52.935,43.065-96,96-96s96,43.065,96,96v25.692C323.759,137.355,290.973,128,256,128s-67.759,9.355-96,25.693V128z M256,480 - c-88.366,0-160-71.634-160-160s71.634-160,160-160s160,71.634,160,160S344.366,480,256,480z"/> - <path d="M256,176c-79.529,0-144,64.472-144,144s64.471,144,144,144s144-64.472,144-144S335.529,176,256,176z M378.533,353.487 - l-24.12-7.896l-3.926,12.19l24.161,7.912c-3.661,9.776-8.462,18.965-14.252,27.409l-10.56-7.737l-3.74,5.184l10.555,7.734 - c-6.129,8.047-13.189,15.324-21.028,21.682l-14.982-20.787l-10.284,7.532l14.976,20.776c-8.479,5.556-17.657,10.12-27.398,13.532 - l-3.96-12.294l-6.049,1.982l4.924,12.262C283.335,445.77,273,447.497,264,448v-12.659V429h-16v6.341V448 - c-11-0.506-19.705-2.244-29.243-5.065l3.948-11.206l-6.25-2.106l-3.539,11.224c-9.557-3.393-18.531-7.895-26.864-13.359 - l14.997-20.774l-10.27-7.534l-14.977,20.787c-7.809-6.333-14.841-13.575-20.953-21.583l9.556-6.998l-3.971-5.507l-9.562,7 - c-5.718-8.381-10.469-17.497-14.093-27.186l24.162-7.914l-3.926-12.188l-24.121,7.897c-2.49-9.431-3.954-18.488-4.258-29.487H134 - v-6.805l-5.993-0.002c0.223-10.606,0.672-20.88,3.266-30.682l24.921,7.9l4.347-12.188l-23.966-7.914 - c3.585-9.57,8.36-18.583,13.985-26.879l10.339,7.533l3.759-5.184l-10.292-7.545c6.221-8.253,13.424-15.707,21.434-22.197 - l14.984,20.787l10.284-7.536l-14.975-20.774c8.405-5.514,17.512-10.05,27.16-13.449l3.955,12.247l6.044-1.98l-4.62-12.231 - C228.21,194.258,237,192.508,248,192v12.66V211h16v-6.34V192c9,0.498,19.159,2.198,28.585,4.951l-4.761,13.28l6.182,2.106 - l4.174-13.312c9.696,3.408,18.778,7.957,27.208,13.491l-15.002,20.775l10.267,7.535l14.975-20.787 - c7.935,6.432,15.069,13.812,21.255,21.977l-11.299,8.268l3.975,5.512l11.276-8.26c5.595,8.271,10.247,17.243,13.816,26.775 - l-24.165,7.914l3.928,12.188l24.12-7.9c2.586,9.802,5.251,20.075,5.47,30.683L376,317.192V324h6.789 - C382.486,334.999,381.02,344.057,378.533,353.487z"/> - <circle cx="256" cy="320" r="81"/> -</g> -</svg> diff --git a/admin/bower_components/Ionicons/src/locked.svg b/admin/bower_components/Ionicons/src/locked.svg deleted file mode 100644 index 4690abc..0000000 --- a/admin/bower_components/Ionicons/src/locked.svg +++ /dev/null @@ -1,11 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" style="enable-background:new 0 0 512 512;" xml:space="preserve"> -<path d="M86.4,480h339.2c12.3,0,22.4-9.9,22.4-22.1V246c0-12.2-10-22-22.4-22H404v-30.9c0-41.5-16.2-87.6-42.6-115.4 - C335.1,49.9,297.4,32,256.1,32c-0.1,0-0.1,0-0.1,0c0,0-0.1,0-0.1,0c-41.3,0-79,17.9-105.3,45.6c-26.4,27.8-42.6,73.9-42.6,115.4V224 - H89h-2.6C74,224,64,233.9,64,246v211.9C64,470.1,74,480,86.4,480z M161,193.1c0-27.3,9.9-61.1,28.1-80.3l0,0l0-0.3 - C206.7,93.9,231,83,255.9,83h0.1h0.1c24.9,0,49.2,10.9,66.8,29.5l0,0.2l-0.1,0.1c18.3,19.2,28.1,53,28.1,80.3V224h-17.5h-155H161 - V193.1z"/> -</svg> diff --git a/admin/bower_components/Ionicons/src/log-in.svg b/admin/bower_components/Ionicons/src/log-in.svg deleted file mode 100644 index 580dfe2..0000000 --- a/admin/bower_components/Ionicons/src/log-in.svg +++ /dev/null @@ -1,14 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" enable-background="new 0 0 512 512" xml:space="preserve"> -<g> - <path d="M255.988,32C160.473,32,78.934,91.804,46.727,176h34.639c9.396-20.484,22.457-39.35,38.868-55.762 - C156.497,83.973,204.709,64,255.988,64c51.286,0,99.504,19.973,135.771,56.239C428.027,156.505,448,204.719,448,256 - c0,51.285-19.973,99.501-56.239,135.765C355.494,428.029,307.275,448,255.988,448c-51.281,0-99.493-19.971-135.755-56.234 - C103.821,375.354,90.76,356.486,81.362,336H46.725c32.206,84.201,113.746,144,209.264,144C379.703,480,480,379.715,480,256 - C480,132.298,379.703,32,255.988,32z"/> - <polygon points="206.863,323.883 229.49,346.51 320,256 229.49,165.49 206.862,188.118 258.745,240 32,240 32,272 258.745,272 "/> -</g> -</svg> diff --git a/admin/bower_components/Ionicons/src/log-out.svg b/admin/bower_components/Ionicons/src/log-out.svg deleted file mode 100644 index e8a3d06..0000000 --- a/admin/bower_components/Ionicons/src/log-out.svg +++ /dev/null @@ -1,17 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" enable-background="new 0 0 512 512" xml:space="preserve"> -<g> - <polygon points="366.863,323.883 389.49,346.51 480,256 389.49,165.49 366.862,188.118 418.745,240 192,240 192,272 418.745,272 - "/> - <g> - <path d="M391.491,391.766C355.229,428.029,307.018,448,255.736,448c-51.287,0-99.506-19.971-135.772-56.235 - C83.697,355.501,64,307.285,64,256c0-51.281,19.697-99.495,55.965-135.761C156.232,83.973,204.45,64,255.736,64 - c51.279,0,99.491,19.973,135.755,56.238c2.527,2.528,4.966,5.121,7.333,7.762h40.731c-40.474-58.028-107.709-96-183.819-96 - C132.021,32,32,132.298,32,256c0,123.715,100.021,224,223.736,224c76.112,0,143.35-37.97,183.822-96h-40.73 - C396.46,386.643,394.021,389.236,391.491,391.766z"/> - </g> -</g> -</svg> diff --git a/admin/bower_components/Ionicons/src/loop.svg b/admin/bower_components/Ionicons/src/loop.svg deleted file mode 100644 index 72ccc5f..0000000 --- a/admin/bower_components/Ionicons/src/loop.svg +++ /dev/null @@ -1,14 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" style="enable-background:new 0 0 512 512;" xml:space="preserve"> -<g> - <path d="M273.4,300.5l-0.3,58c48.9-8.2,86.3-51,86.3-102.5c0-15.9-3.6-31-10-44.5c-2.8-5.8-6-11.3-9.8-16.5l47.1-43.5 - c1.1,1.3,2.1,2.7,3.1,4c20.9,28,33.2,62.8,33.2,100.5c0,1.2,0,2.5,0,3.7c-1.5,71.5-47.6,132-111.4,154.6 - c-12.3,4.3-25.2,7.3-38.5,8.7l-0.1,57l-76.2-67L170.6,390l44.4-38.7L273.4,300.5z"/> - <path d="M89,252.3c1.6-72.1,48.3-133,112.9-155.2c11.7-4,24-6.8,36.8-8.1l0.1-57l76.1,66.9l26.2,23.1l-44.3,38.6l-58.4,50.9 - l0.2-57.9c-48.8,8.3-86,51.1-86,102.4c0,16,3.6,31.1,10.1,44.7c2.7,5.8,6,11.2,9.7,16.3l-47,43.6c-1.3-1.6-2.6-3.3-3.8-5 - C101.1,327.7,89,293.3,89,256C89,254.8,89,253.5,89,252.3z"/> -</g> -</svg> diff --git a/admin/bower_components/Ionicons/src/magnet.svg b/admin/bower_components/Ionicons/src/magnet.svg deleted file mode 100644 index 3696d31..0000000 --- a/admin/bower_components/Ionicons/src/magnet.svg +++ /dev/null @@ -1,14 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" style="enable-background:new 0 0 512 512;" xml:space="preserve"> -<path d="M256,32C141,32.5,64,109.6,64,231.8c0,48.8,2.1,76.8,14.5,127.8c15.9,65.7,39.1,113.3,39.1,113.3l0.6,1.3 - c1.9,3.4,5.5,5.8,9.8,5.8c1.4,0,2.7-0.2,4-0.7l1.7-0.8l50.3-20.7l1.8-0.8c3.3-1.9,5.5-5.3,5.5-9.3c-0.2-1.4-0.4-2.8-1-4 - c-0.1-0.1-0.1-0.2-0.2-0.4c-7-16-27.2-59.2-37-101.1c-9.9-41.9-13.5-62.4-13.5-107.7C139.6,163.4,192,112,256,112 - c64,0,116.4,51.4,116.4,122.5c0,45.3-3.7,65.8-13.6,107.7c-9.9,41.9-30,85.2-37,101.1c-0.1,0.2-0.1,0.3-0.2,0.4 - c-0.6,1.2-0.8,2.6-1,4c0,4,2.2,7.4,5.5,9.3l1.8,0.8l50.3,20.7l1.7,0.8c1.3,0.5,2.6,0.7,4,0.7c4.3,0,7.9-2.4,9.8-5.8l0.6-1.3 - c0,0,23.2-47.6,39.1-113.3c12.4-51,14.5-79,14.5-127.8C448,109.6,371,32.5,256,32z M173,444.2c0.1,0.2,0.2,0.5,0.3,0.7l-42.8,17.6 - c-5.4-11.8-22.7-51-35.7-104.4l42.5-12.3C146.5,385,164.4,425,173,444.2z M381.4,462.5l-42.8-17.6c0.1-0.2,0.2-0.4,0.3-0.7 - c8.6-19.2,26.4-59.2,35.6-98.4l42.5,12.3C404.1,411.5,386.8,450.7,381.4,462.5z"/> -</svg> diff --git a/admin/bower_components/Ionicons/src/male.svg b/admin/bower_components/Ionicons/src/male.svg deleted file mode 100644 index 941be49..0000000 --- a/admin/bower_components/Ionicons/src/male.svg +++ /dev/null @@ -1,10 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" style="enable-background:new 0 0 512 512;" xml:space="preserve"> -<path d="M480,192V32H320l63,63l-68.7,68.7C284.8,141.3,247.9,128,208,128c-97.2,0-176,78.8-176,176s78.8,176,176,176 - s176-78.8,176-176c0-39.9-13.3-76.8-35.7-106.3L417,129L480,192z M298.5,394.5C274.3,418.7,242.2,432,208,432s-66.3-13.3-90.5-37.5 - C93.3,370.3,80,338.2,80,304s13.3-66.3,37.5-90.5c24.2-24.2,56.3-37.5,90.5-37.5s66.3,13.3,90.5,37.5S336,269.8,336,304 - S322.7,370.3,298.5,394.5z"/> -</svg> diff --git a/admin/bower_components/Ionicons/src/man.svg b/admin/bower_components/Ionicons/src/man.svg deleted file mode 100644 index b4a02cf..0000000 --- a/admin/bower_components/Ionicons/src/man.svg +++ /dev/null @@ -1,12 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" style="enable-background:new 0 0 512 512;" xml:space="preserve"> -<path d="M256,106.6c20.6,0.1,37.3-16.6,37.3-37.3c0-20.6-16.7-37.3-37.3-37.3c-20.6,0-37.3,16.7-37.3,37.3 - C218.7,89.9,235.4,106.6,256,106.6z"/> -<g> - <path d="M293.4,115H256h-37.4c-28.2,0-46.6,24.8-46.6,48.4V277c0,22,31,22,31,0V172h6v285.6c0,30.4,42,29.4,43,0V293h7h1v164.7 - c1.7,31.2,43,28.2,43-0.1V172h5v105c0,22,32,22,32,0V163.4C340,139.9,321.5,115,293.4,115z"/> -</g> -</svg> diff --git a/admin/bower_components/Ionicons/src/map.svg b/admin/bower_components/Ionicons/src/map.svg deleted file mode 100644 index 40f3363..0000000 --- a/admin/bower_components/Ionicons/src/map.svg +++ /dev/null @@ -1,30 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" enable-background="new 0 0 512 512" xml:space="preserve"> -<g> - <path d="M473.152,136.58L368.594,66.307c-4.644-3.076-10.365-3.076-15.031,0l-97.094,65.195l-97.109-65.195 - c-4.643-3.076-10.444-3.076-15.062,0L39.344,136.58c-4.399,2.949-7.344,8.272-7.344,14.05V431.6c0,5.904,3.07,11.347,7.663,14.271 - c4.62,2.877,10.382,2.829,14.904-0.223l97.188-65.197l97.181,65.197c4.666,3.1,10.44,3.1,15.084,0l97.158-65.197l97.151,65.197 - c2.311,1.55,4.912,2.353,7.538,2.353c2.455,0,4.709-0.747,6.969-2.13c4.594-2.924,7.165-8.366,7.165-14.271v-280.97 - C480,144.852,477.575,139.529,473.152,136.58z M135,353.248l-71,49.404v-241.75l71-49.428V353.248z M167,352.766v-122.7 - c1.167,0.756,2.31,1.526,3.389,2.301l9.333-12.996c-3.904-2.804-8.292-5.501-12.722-7.705V110.992l73,48.992v108.574 - c-5.372-1.855-10.586-4.37-15.893-7.682l-8.471,13.574c6.848,4.273,13.621,7.467,20.704,9.765l3.66-11.286v128.806L167,352.766z - M272,401.734V288.369c0.349-0.021,0.693-0.03,1.043-0.054c2.91-0.198,5.777-0.517,8.518-0.946l-2.479-15.807 - c-2.268,0.355-4.65,0.619-7.082,0.786V159.984l73-48.992V229.78l-4.844-4.372c-2.997,3.319-5.833,6.575-8.575,9.725 - c-1.806,2.073-3.578,4.108-5.339,6.095l11.974,10.613c1.791-2.021,3.595-4.091,5.431-6.2c0.443-0.509,0.905-1.035,1.354-1.549 - v108.675L272,401.734z M448,401.652l-71-48.438v-136.91c3.785-1.715,7.679-2.992,11.639-3.792l-3.166-15.683 - c-2.858,0.577-5.687,1.339-8.473,2.281v-87.671l71,48.461V401.652z"/> - <path d="M129.285,221.111c2.218-1.195-1.353-1.071,1.012-1.837l-4.928-15.222c-3.282,1.062-6.502,2.439-9.571,4.093 - c-3.824,2.062-7.745,4.916-11.339,8.253l10.888,11.724C117.963,225.694,126.639,222.538,129.285,221.111z"/> - <path d="M296.802,266.127l6.985,14.395c6.596-3.201,12.842-7.445,19.095-12.974l-10.599-11.987 - C307.135,260.113,302.071,263.569,296.802,266.127z"/> - <path d="M99.364,256.006c1.893-5.926,3.528-11.044,7.129-16.304l-13.204-9.037c-4.924,7.194-7.081,13.944-9.167,20.471 - l-0.242,0.758l15.238,4.879L99.364,256.006z"/> - <path d="M198.311,237.753c-1.007-1.204-2.014-2.408-3.032-3.603l-12.178,10.379c0.986,1.156,1.961,2.322,2.936,3.488 - c3.593,4.296,7.308,8.739,11.61,12.809l10.996-11.624C205.02,245.775,201.761,241.878,198.311,237.753z"/> - <polygon points="408.156,229.657 418.5,219.314 428.844,229.657 440.156,218.342 429.814,208 440.156,197.657 428.844,186.342 - 418.5,196.685 408.156,186.342 396.844,197.657 407.186,208 396.844,218.342 "/> -</g> -</svg> diff --git a/admin/bower_components/Ionicons/src/medkit.svg b/admin/bower_components/Ionicons/src/medkit.svg deleted file mode 100644 index 1e827a7..0000000 --- a/admin/bower_components/Ionicons/src/medkit.svg +++ /dev/null @@ -1,12 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" style="enable-background:new 0 0 512 512;" xml:space="preserve"> -<g> - <path d="M472.2,144H352v-30.7C351,85.1,330.3,64,300.8,64H256h-44.8c-29.4,0-50.2,21.1-51.2,49.3V144H39.8c-4.4,0-7.8,3.6-7.8,8 - v288c0,4.4,3.3,8,7.8,8h432.5c4.4,0,7.8-3.6,7.8-8V152C480,147.6,476.7,144,472.2,144z M192,117.2c0-0.4,0-0.7,0-1s0-0.6,0-1 - c0-9.7,8.6-19.3,18.8-19.3H256h45.2c10.1,0,18.8,9.5,18.8,19.3c0,0.3,0,0.6,0,1s0,0.6,0,1V144H192V117.2z M352,320h-64v64h-64v-64 - h-64v-64h64v-64h64v64h64V320z"/> -</g> -</svg> diff --git a/admin/bower_components/Ionicons/src/merge.svg b/admin/bower_components/Ionicons/src/merge.svg deleted file mode 100644 index d055d31..0000000 --- a/admin/bower_components/Ionicons/src/merge.svg +++ /dev/null @@ -1,13 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" enable-background="new 0 0 512 512" xml:space="preserve"> -<path d="M384,224c-23.637,0-44.307,12.89-55.391,32H319c-42.464,0-79.99-17.904-111.535-53.214 - c-20.356-22.787-33.493-48.869-37.856-58.218C183.301,132.822,192,115.413,192,96c0-35.29-28.71-64-64-64S64,60.71,64,96 - c0,23.637,12.89,44.307,32,55.391v209.219C76.89,371.693,64,392.363,64,416c0,35.29,28.71,64,64,64s64-28.71,64-64 - c0-23.637-12.89-44.307-32-55.391V245.692C203.553,294.307,258.468,320,319,320h9.609c11.084,19.11,31.754,32,55.391,32 - c35.29,0,64-28.71,64-64S419.29,224,384,224z M128,64c17.673,0,32,14.327,32,32s-14.327,32-32,32s-32-14.327-32-32 - S110.327,64,128,64z M128,448c-17.673,0-32-14.327-32-32s14.327-32,32-32s32,14.327,32,32S145.673,448,128,448z M384,320 - c-17.673,0-32-14.327-32-32s14.327-32,32-32s32,14.327,32,32S401.673,320,384,320z"/> -</svg> diff --git a/admin/bower_components/Ionicons/src/mic-a.svg b/admin/bower_components/Ionicons/src/mic-a.svg deleted file mode 100644 index 32dbe94..0000000 --- a/admin/bower_components/Ionicons/src/mic-a.svg +++ /dev/null @@ -1,15 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" style="enable-background:new 0 0 512 512;" xml:space="preserve"> -<g> - <path d="M112.1,238.1l-0.1,13.6c0.1,65.6,46,120.6,108.1,136.2c1.3,0.1,2.6,0.5,3.8,0.9c5.9,2,10.1,6.9,12.1,12.8v58.7 - c0,10.9,8.9,19.7,20,19.7h0.1c11.1,0,19.9-8.8,19.9-19.7v-58.8c2-5.9,6.1-10.7,12-12.7c1.2-0.4,2.5-0.8,3.9-0.9 - C354,372.3,400,317.3,400,251.7v-13.6c0-10.4-8.9-18.9-19.5-18.9c-10.6,0-19.5,8.4-19.5,18.9v13.6c0,28.5-11.5,54.1-30.6,72.8 - c-19.2,18.6-45.3,30.2-74.5,30.2c-29.2,0-55.1-11.5-74.2-30.2c-19.1-18.7-30.7-44.4-30.7-72.8v-13.6c0-10.4-8.8-18.9-19.5-18.9 - C120.9,219.2,112.1,227.7,112.1,238.1z"/> - <path d="M179,107.7v143.8c0,41.8,34.7,75.7,77.5,75.7c42.8,0,77.5-33.9,77.5-75.7V107.7c0-41.8-34.7-75.7-77.5-75.7 - C213.7,32,179,65.9,179,107.7z"/> -</g> -</svg> diff --git a/admin/bower_components/Ionicons/src/mic-b.svg b/admin/bower_components/Ionicons/src/mic-b.svg deleted file mode 100644 index c4a9e81..0000000 --- a/admin/bower_components/Ionicons/src/mic-b.svg +++ /dev/null @@ -1,17 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" style="enable-background:new 0 0 512 512;" xml:space="preserve"> -<g> - <path d="M256.4,32c-35.1,0.1-65.8,23.2-76.8,59.3c-5.6,18.5-3.5,44.8-1.2,54.5c2.3,9.7,7.3,19.9,13.2,28.3 - c2.8,4.2,6.7,7.4,11.2,9.2c0.6,0.3,1.3,0.5,2,0.8c3.3,1.1,6.5,2.2,10.1,3.1c11.8,3,27.1,4.7,41.1,4.8v0c0,0,0.6,0,0.7,0 - c0.3,0,0.3,0,1.3,0v-0.1c14-0.1,27.3-1.7,39.1-4.8c3.6-0.9,6.9-2,10.2-3.1c0.7-0.2,1.3-0.5,1.9-0.8c4.5-1.8,8.4-5,11.2-9.2 - c5.9-8.4,10.8-18.6,13.2-28.3c2.3-9.7,4.4-36-1.2-54.5C321.4,55.2,291.6,32.1,256.4,32z"/> - <path d="M295.3,201.1c-0.4,0-0.7,0-1.1,0.1c-0.6,0.1-1.3,0.3-1.9,0.4c-2,0.4-4.1,0.8-6.1,1.2c-9.2,1.5-18.9,2.3-29,2.4 - c-10.1-0.1-22.3-0.9-31-2.4c-2.1-0.4-4.2-0.8-6.2-1.2c-0.6-0.1-1.3-0.3-1.9-0.4c-0.4-0.1-0.8-0.1-1.1-0.1c-6.1,0-11,5.3-11.2,11.9 - c0.1,0.8,0.2,1.6,0.2,2.4c4.8,67.2,16.8,240.7,18.2,252c0,0,2.8,12.7,32.1,12.6c0,0,0,0,0,0c29.2,0.1,32.1-12.6,32.1-12.6 - c1.4-11.3,13.4-184.8,18.2-252c0-0.8,0.1-1.6,0.2-2.4C306.3,206.4,301.4,201.1,295.3,201.1z M266,281.7c0,6-4.5,10.9-10,10.9 - c-5.5,0-10-4.9-10-10.9V249c0-6,4.5-10.9,10-10.9c5.5,0,10,4.9,10,10.9V281.7z"/> -</g> -</svg> diff --git a/admin/bower_components/Ionicons/src/mic-c.svg b/admin/bower_components/Ionicons/src/mic-c.svg deleted file mode 100644 index 42f1b04..0000000 --- a/admin/bower_components/Ionicons/src/mic-c.svg +++ /dev/null @@ -1,8 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" style="enable-background:new 0 0 512 512;" xml:space="preserve"> -<path d="M329.2,32H182.9C152.5,32,128,55.4,128,84.4V112h152v37H128v43h152v37H128v43h152v37H128v41.8c0,29,24.5,52.2,54.9,52.2H213 - v77h86v-77h30.2c30.3,0,54.8-23.2,54.8-52.2V309h-59v-37h59v-43h-59v-37h59v-43h-59v-37h59V84.4C384,55.4,359.5,32,329.2,32z"/> -</svg> diff --git a/admin/bower_components/Ionicons/src/minus-circled.svg b/admin/bower_components/Ionicons/src/minus-circled.svg deleted file mode 100644 index ccfc53f..0000000 --- a/admin/bower_components/Ionicons/src/minus-circled.svg +++ /dev/null @@ -1,9 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" style="enable-background:new 0 0 512 512;" xml:space="preserve"> -<g> - <path d="M256,32C132.3,32,32,132.3,32,256s100.3,224,224,224s224-100.3,224-224S379.7,32,256,32z M384,272H128v-32h256V272z"/> -</g> -</svg> diff --git a/admin/bower_components/Ionicons/src/minus-round.svg b/admin/bower_components/Ionicons/src/minus-round.svg deleted file mode 100644 index 3364cd2..0000000 --- a/admin/bower_components/Ionicons/src/minus-round.svg +++ /dev/null @@ -1,8 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" style="enable-background:new 0 0 512 512;" xml:space="preserve"> -<path d="M417.4,224H94.6C77.7,224,64,238.3,64,256c0,17.7,13.7,32,30.6,32h322.8c16.9,0,30.6-14.3,30.6-32 - C448,238.3,434.3,224,417.4,224z"/> -</svg> diff --git a/admin/bower_components/Ionicons/src/minus.svg b/admin/bower_components/Ionicons/src/minus.svg deleted file mode 100644 index 6944cbb..0000000 --- a/admin/bower_components/Ionicons/src/minus.svg +++ /dev/null @@ -1,7 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" style="enable-background:new 0 0 512 512;" xml:space="preserve"> -<rect x="64" y="224" width="384" height="64"/> -</svg> diff --git a/admin/bower_components/Ionicons/src/model-s.svg b/admin/bower_components/Ionicons/src/model-s.svg deleted file mode 100644 index 085b134..0000000 --- a/admin/bower_components/Ionicons/src/model-s.svg +++ /dev/null @@ -1,33 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" style="enable-background:new 0 0 512 512;" xml:space="preserve"> -<g> - <path d="M508.8,390.9c-0.6,4.1-1.6,8.1-3.1,11.2c-2.7,5.5-5.3,6-15.5,5.5c-13.2-0.6-32.1,0-52.1,0.8c0,5.5,0.2,8.1,0.2,8.1 - c1.3,15.1,8.1,15.6,10.8,15.6c3,0,39.2,0,43,0s7.3,0,10-1.8c3.5-2.3,5-9,6.3-20.7c0.2-1.7,0.3-3.9,0.4-6.5c0,0,0-0.1,0-0.1 - c0-0.8,0.1-1.8,0.1-2.9c0-0.4,0-0.8,0-1.1c0,0,0,0,0,0C508.9,396.3,508.9,393.3,508.8,390.9z"/> - <path d="M3,390.9c0.6,4.1,1.6,8.1,3.1,11.2c2.7,5.5,5.3,6,15.5,5.5c13.2-0.6,32.1,0,52.1,0.8c0,5.5-0.2,8.1-0.2,8.1 - c-1.3,15.1-8.1,15.6-10.8,15.6c-3,0-39.2,0-43,0s-7,0-10-1.8c-3.6-2.1-5-9-6.3-20.7c-0.2-1.7-0.3-3.9-0.4-6.5c0,0,0-0.1,0-0.1 - c0-0.8-0.1-1.8-0.1-2.9c0-0.4,0-0.8,0-1.1c0,0,0,0,0,0C3,396.3,3,393.3,3,390.9z"/> - <path d="M512,296.6c0-30.7-4-60.7-5.6-64c-1.2-2.4-8.9-8.7-26.4-20.6c-17.7-12.1-17.3-10.3-20.5-18.2c2.9-0.9,5.7-2.6,7.4-2.8 - c3.8-0.4,4,3.2,11.9,3.2s25-2.1,28.5-5.6c3.5-3.5,4.6-4.7,4.6-7.8s-1.8-9.5-5.2-13.3s-17.9-5.7-26.4-6.8s-9.7,0-11.9,1.4 - c-3.5,2.2-3.7,22.3-3.7,22.3l-8.3,0.2c-5.4-13.3-12.9-40.1-24.6-61.2c-12.8-23-26.2-30.2-31.8-32c-5.5-1.7-10.5-2.9-48-6.7 - c-38.3-4-68.8-4.5-96-4.5s-57.7,0.6-96,4.5c-37.5,3.9-42.5,5-48,6.7c-5.5,1.7-19,9-31.8,32c-11.7,21.1-19.2,47.9-24.6,61.2 - l-8.3-0.2c0,0-0.1-20.1-3.7-22.3c-2.2-1.4-3.4-2.6-11.9-1.4s-23,3-26.4,6.8s-5.2,10.2-5.2,13.3s1.1,4.4,4.6,7.8 - c3.5,3.5,20.6,5.6,28.5,5.6s8.1-3.6,11.9-3.2c1.7,0.2,4.6,1.9,7.4,2.8c-3.3,7.9-2.8,6.1-20.5,18.2c-17.5,12-25.3,18.2-26.4,20.6 - C4,235.9,0,265.9,0,296.6s2.2,58.3,2.2,68.1c0,4.1,0,11.3,0.9,18.2c0.6,4.1,1.5,8.1,3.1,11.2c2.7,5.5,5.2,6,15.5,5.5 - c13.2-0.6,32.3,0,52,0.8c13.2,0.5,26.7,1,38.7,1.3c30,0.6,21.2-4.4,34-4.2c12.8,0.2,63.3,2.3,109.5,2.3s96.8-2.1,109.5-2.3 - c12.8-0.2,4,4.8,34,4.2c12-0.2,25.5-0.8,38.7-1.3c19.7-0.7,38.9-1.4,52-0.8c10.3,0.5,12.8,0,15.5-5.5c1.5-3.1,2.5-7.1,3.1-11.2 - c1-6.9,0.9-14.1,0.9-18.2C509.8,355,512,327.3,512,296.6z M86.2,145.2c4.8-11.2,19.2-33.7,26.2-37.7c1.7-1,16.6-5.7,53.9-8.2 - c34.3-2.3,72.2-3.2,89.8-3.2s55.5,0.9,89.8,3.2c37.2,2.5,52.3,7.1,53.9,8.2c9,6.2,21.4,26.5,26.2,37.7c4.8,11.2,11.2,33.2,10,36.2 - c-1.2,3,1.2,4.5-15,3.2c-16.1-1.2-117.2-2.5-164.8-2.5c-47.5,0-148.6,1.3-164.8,2.5c-16.2,1.2-13.8-0.2-15-3.2 - C75,178.4,81.4,156.5,86.2,145.2z M123,270.4c-7.2,1.8-11.5,5.7-20.5,5.6c-9,0-33.3-4.1-38.5-4.3c-5.2-0.2-9.8,3.5-12.5,4.2 - s-8-1.2-16-3.7s-12.7-1.8-15.3-12.7c-2.7-10.8,0-26.3,0-26.3c17.3-0.8,34,0.8,65.3,9.6c31.3,8.8,48.7,25.7,48.7,25.7 - S130.2,268.6,123,270.4z M358.2,349.2c-14.3,1.9-74.2,2.4-102.2,2.4c-28,0-87.9-0.6-102.2-2.4c-14.6-1.9-33.6-19.4-20.5-33.3 - c17.7-18.9,14.4-18.3,54.6-23.5c34.8-4.5,61.2-4.7,68.1-4.7c6.8,0,33.3,0.3,68.1,4.7c40.2,5.2,36.9,4.6,54.6,23.5 - C391.8,329.8,372.8,347.3,358.2,349.2z M491.8,259.6c-2.7,10.8-7.3,10.2-15.3,12.7s-13.3,4.3-16,3.7s-7.3-4.3-12.5-4.2 - c-5.2,0.2-29.5,4.3-38.5,4.3c-9,0-13.3-3.8-20.5-5.6c-7.2-1.8-11.2-1.8-11.2-1.8s17.3-17,48.7-25.7c31.3-8.8,48-10.4,65.3-9.6 - C491.8,233.2,494.5,248.7,491.8,259.6z"/> -</g> -</svg> diff --git a/admin/bower_components/Ionicons/src/monitor.svg b/admin/bower_components/Ionicons/src/monitor.svg deleted file mode 100644 index acd51f7..0000000 --- a/admin/bower_components/Ionicons/src/monitor.svg +++ /dev/null @@ -1,12 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" style="enable-background:new 0 0 512 512;" xml:space="preserve"> -<g> - <path d="M468.7,64H43.3c-6,0-11.3,5-11.3,11.1v265.7c0,6.2,5.2,11.1,11.3,11.1h425.4c6,0,11.3-5,11.3-11.1V75.1 - C480,69,474.8,64,468.7,64z M448,320H64V96h384V320z"/> - <path d="M302.5,448c28-0.5,41.5-3.9,29-12.5c-12.5-8.7-28.5-15.3-29-22.5c-0.3-3.7-1.7-45-1.7-45H256h-44.8c0,0-1.5,41.3-1.7,45 - c-0.5,7.1-16.5,13.8-29,22.5c-12.5,8.7,1,12,29,12.5H302.5z"/> -</g> -</svg> diff --git a/admin/bower_components/Ionicons/src/more.svg b/admin/bower_components/Ionicons/src/more.svg deleted file mode 100644 index 55294f5..0000000 --- a/admin/bower_components/Ionicons/src/more.svg +++ /dev/null @@ -1,12 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" style="enable-background:new 0 0 512 512;" xml:space="preserve"> -<g> - <path d="M113.7,304C86.2,304,64,282.6,64,256c0-26.5,22.2-48,49.7-48c27.6,0,49.8,21.5,49.8,48C163.5,282.6,141.3,304,113.7,304z" - /> - <path d="M256,304c-27.5,0-49.8-21.4-49.8-48c0-26.5,22.3-48,49.8-48c27.5,0,49.7,21.5,49.7,48C305.7,282.6,283.5,304,256,304z"/> - <path d="M398.2,304c-27.5,0-49.8-21.4-49.8-48c0-26.5,22.2-48,49.8-48c27.5,0,49.8,21.5,49.8,48C448,282.6,425.8,304,398.2,304z"/> -</g> -</svg> diff --git a/admin/bower_components/Ionicons/src/mouse.svg b/admin/bower_components/Ionicons/src/mouse.svg deleted file mode 100644 index 3158583..0000000 --- a/admin/bower_components/Ionicons/src/mouse.svg +++ /dev/null @@ -1,24 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" enable-background="new 0 0 512 512" xml:space="preserve"> -<g> - <path d="M256,32c-0.46,0-0.917,0.011-1.376,0.015l5.747,0.057C258.92,32.029,257.464,32,256,32z"/> - <path d="M378.553,193.211c-0.195,0.064-0.414,0.16-0.619,0.269c-34.234,13.289-76.337,22.52-121.886,22.475 - c-45.52-0.076-87.626-9.398-121.81-22.772c-0.19-0.104-0.429-0.192-0.647-0.265c-1.531-0.554-3.146-0.897-4.841-0.917 - c-0.254-0.001-0.5-0.013-0.75,0v176.012C128,429.892,185.308,480,256,480c21.992,0,42.687-4.803,60.766-13.355 - c0.095-0.045,0.191-0.087,0.286-0.133c0.026-0.013,0.054-0.026,0.08-0.039c4.87-2.344,9.581-4.963,14.122-7.828 - C363.219,438.275,384,405.271,384,368.012V192c-0.191-0.008-0.496,0-0.689,0C381.584,192.014,380.092,192.651,378.553,193.211z - M317.132,466.424c-0.026,0.013-0.054,0.026-0.08,0.039c-0.095,0.045-0.191,0.088-0.286,0.133c0.095-0.045,0.191-0.088,0.286-0.133 - C317.078,466.45,317.105,466.437,317.132,466.424c4.87-2.342,9.581-4.961,14.122-7.825 - C326.758,461.463,322.044,464.083,317.132,466.424z"/> - <path d="M331.254,458.599c-4.541,2.864-9.252,5.483-14.122,7.825C322.044,464.083,326.758,461.463,331.254,458.599z"/> - <path d="M260.371,32.072l-5.747-0.057C184.566,32.662,128,82.547,128,144v22.708c2.158,2.024,4.593,3.755,7.251,5.115 - c0.673,0.337,1.386,0.659,2.059,0.996c0.032,0.027,0.077,0.01,0.109,0.036c22.757,10.35,51.429,15.801,83.415,19.006 - c0.694,0.078,1.397,0.107,2.148,0.12C234.24,191.997,239.996,192,240,181.411V96c0-8.836,7.164-16,16-16c8.836,0,16,7.164,16,16 - v86.328c-0.088,9.672,5.926,9.72,17.2,9.749c0.717-0.016,1.415-0.045,2.081-0.105c0.062-0.003,0.141,0.005,0.244-0.02 - c31.682-3.119,60.143-8.405,82.808-18.59c1.162-0.545,2.291-1.056,3.407-1.581c2.271-1.232,4.365-2.743,6.26-4.466V144 - C384,83.425,329.039,34.09,260.371,32.072z"/> -</g> -</svg> diff --git a/admin/bower_components/Ionicons/src/music-note.svg b/admin/bower_components/Ionicons/src/music-note.svg deleted file mode 100644 index 51a07b9..0000000 --- a/admin/bower_components/Ionicons/src/music-note.svg +++ /dev/null @@ -1,10 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" style="enable-background:new 0 0 512 512;" xml:space="preserve"> -<path d="M426,32.1c-2.2,0-5.1,0.6-5.1,0.6L203.3,65.9C189.5,69.6,177,83,176,97.5V384h-61v-0.1c-28,0-51.1,20-51.1,48 - s23.1,48,51.3,48h36.2c15.3,0,28.9-6.9,38.3-17.5c0.1-0.1,0.3-0.1,0.4-0.2c0.6-0.6,1-1.5,1.5-2.1c1.3-1.6,2.4-3.2,3.4-5 - C204.6,441,208,422.3,208,414V182l208-38c0,0,0,136,0,192h-60.5c-28.3,0-51.2,19.9-51.2,48s22.9,48,51.2,48h37.2 - c18.2,0,34.1-6,43.2-21c0,0,0.1,0,0.2,0c9-12,12-30.2,12-54.9c0-24.8,0-302.8,0-302.8C448,41.6,438.1,32.1,426,32.1z"/> -</svg> diff --git a/admin/bower_components/Ionicons/src/navicon-round.svg b/admin/bower_components/Ionicons/src/navicon-round.svg deleted file mode 100644 index f3adc26..0000000 --- a/admin/bower_components/Ionicons/src/navicon-round.svg +++ /dev/null @@ -1,14 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" style="enable-background:new 0 0 512 512;" xml:space="preserve"> -<g> - <path d="M417.4,224H94.6C77.7,224,64,238.3,64,256c0,17.7,13.7,32,30.6,32h322.8c16.9,0,30.6-14.3,30.6-32 - C448,238.3,434.3,224,417.4,224z"/> - <path d="M417.4,96H94.6C77.7,96,64,110.3,64,128c0,17.7,13.7,32,30.6,32h322.8c16.9,0,30.6-14.3,30.6-32 - C448,110.3,434.3,96,417.4,96z"/> - <path d="M417.4,352H94.6C77.7,352,64,366.3,64,384c0,17.7,13.7,32,30.6,32h322.8c16.9,0,30.6-14.3,30.6-32 - C448,366.3,434.3,352,417.4,352z"/> -</g> -</svg> diff --git a/admin/bower_components/Ionicons/src/navicon.svg b/admin/bower_components/Ionicons/src/navicon.svg deleted file mode 100644 index 7323a62..0000000 --- a/admin/bower_components/Ionicons/src/navicon.svg +++ /dev/null @@ -1,11 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" style="enable-background:new 0 0 512 512;" xml:space="preserve"> -<g> - <rect x="96" y="241" width="320" height="32"/> - <rect x="96" y="145" width="320" height="32"/> - <rect x="96" y="337" width="320" height="32"/> -</g> -</svg> diff --git a/admin/bower_components/Ionicons/src/navigate.svg b/admin/bower_components/Ionicons/src/navigate.svg deleted file mode 100644 index ad3338f..0000000 --- a/admin/bower_components/Ionicons/src/navigate.svg +++ /dev/null @@ -1,7 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" style="enable-background:new 0 0 512 512;" xml:space="preserve"> -<polygon points="480,32 32,224 288,224 288,480 "/> -</svg> diff --git a/admin/bower_components/Ionicons/src/network.svg b/admin/bower_components/Ionicons/src/network.svg deleted file mode 100644 index c00db46..0000000 --- a/admin/bower_components/Ionicons/src/network.svg +++ /dev/null @@ -1,12 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" enable-background="new 0 0 512 512" xml:space="preserve"> -<path d="M448,96c0-35.29-28.71-64-64-64s-64,28.71-64,64c0,23.637,12.89,44.307,32,55.391v52.832l-96,48l-96-48v-52.832 - c19.11-11.084,32-31.754,32-55.391c0-35.29-28.71-64-64-64S64,60.71,64,96c0,23.637,12.89,44.307,32,55.391v92.387l128,64v52.832 - c-19.11,11.084-32,31.754-32,55.391c0,35.29,28.71,64,64,64s64-28.71,64-64c0-23.637-12.89-44.307-32-55.391v-52.832l128-64v-92.387 - C435.11,140.307,448,119.637,448,96z M128,64c17.673,0,32,14.327,32,32s-14.327,32-32,32s-32-14.327-32-32S110.327,64,128,64z - M256,448c-17.673,0-32-14.327-32-32s14.327-32,32-32s32,14.327,32,32S273.673,448,256,448z M384,128c-17.673,0-32-14.327-32-32 - s14.327-32,32-32s32,14.327,32,32S401.673,128,384,128z"/> -</svg> diff --git a/admin/bower_components/Ionicons/src/no-smoking.svg b/admin/bower_components/Ionicons/src/no-smoking.svg deleted file mode 100644 index 3cd5697..0000000 --- a/admin/bower_components/Ionicons/src/no-smoking.svg +++ /dev/null @@ -1,33 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" style="enable-background:new 0 0 512 512;" xml:space="preserve"> -<style type="text/css"> -<![CDATA[ - .st0{fill:#010101;} -]]> -</style> -<g> - <rect x="360" y="256" class="st0" width="16" height="48"/> - <polygon class="st0" points="112,304 249.6,304 201.6,256 112,256 "/> - <path class="st0" d="M364.5,60.1c-0.4-0.2-0.7-0.4-1-0.6c-10.9-6-22.5-10.7-34.4-14.8c-1.8-0.6-3.6-1.2-5.4-1.8 - C302.3,36.1,279.6,32,256,32C132.3,32,32,132.3,32,256c0,84.3,46.6,157.6,115.4,195.8c0.4,0.2,0.7,0.5,1.1,0.7 - c10.9,6,22.5,10.7,34.4,14.8c1.8,0.6,3.6,1.2,5.4,1.8c21.4,6.8,44,10.9,67.7,10.9c123.7,0,224-100.3,224-224 - C480,171.7,433.4,98.3,364.5,60.1z M256,426.4c-9.3,0-18.4-0.9-27.2-2.4c-9.8-1.6-19.3-4.1-28.5-7.3c-1.9-0.6-3.8-1.2-5.6-1.9 - c-6.5-2.5-12.9-5.3-19-8.6c-53.6-28.7-90.1-85.2-90.1-150.3c0-37.2,12.4-71.4,32.7-99.4l237.2,237.2 - C327.4,414,293.2,426.4,256,426.4z M393.8,355.4L156.6,118.2c28-20.2,62.1-32.6,99.4-32.6c9.3,0,18.3,0.9,27.2,2.4 - c9.8,1.6,19.3,4.1,28.5,7.3c1.8,0.6,3.7,1.2,5.6,1.9c6.2,2.4,12.2,5,18,8.1c54.2,28.5,91.2,85.3,91.2,150.8 - C426.4,293.3,414,327.4,393.8,355.4z"/> - <polygon class="st0" points="352,298 352,256 310,256 "/> - <rect x="384" y="256" class="st0" width="16" height="48"/> - <path class="st0" d="M360.1,212.7c-8.8-4.1-22-5.7-45.6-5.7c-1.2,0-2.4,0-3.6,0c-12.7,0.1-15.9-0.1-20-6.1 - c-2.8-4.2-1-14.8,3.7-21.9c1.6-2.4,1.8-5.6,0.4-8.2c-1.4-2.6-4.1-4.2-7-4.3c-0.1,0-9.4-0.1-18.3-3.9c-10.6-4.5-15.6-12.1-15.6-23.1 - c0-25.8,21.8-27.7,22.8-27.7v-16c-12,0-38.8,11-38.8,43.7c0,17.5,9,31,25.7,38c4.2,1.7,8.4,2.9,12,3.6c-3.3,9.8-3.6,20.9,1.7,28.7 - c9,13.3,20.3,13.2,33.3,13.1c1.1,0,2.3,0,3.5,0c26.3,0,34.6,2.3,38.9,4.3c5.7,2.6,6.8,11.5,6.6,19.7c0,0.7,0,0.4,0,1h16 - c0-0.4,0-0.4,0-1C375.8,239.8,376.1,220.1,360.1,212.7z"/> - <path class="st0" d="M400,248c0-25.7-3-43.2-9.1-53.6C382.3,180,368.5,172,352,172h-17.4c2.9-8.3,5.4-19.8,3.5-30.9 - c-3.2-18.8-19.1-30-43.1-30v16c21,0,26.1,9.1,27.4,16.7c2.5,14.5-6.8,32.1-6.9,32.3c-1.4,2.5-1.3,5.5,0.1,7.9 - c1.4,2.4,4.1,3.9,6.9,3.9H352c10.9,0,19.4,4.9,25.1,14.6c3.1,5.3,6.9,17.5,6.9,45.4H400z"/> -</g> -</svg> diff --git a/admin/bower_components/Ionicons/src/nuclear.svg b/admin/bower_components/Ionicons/src/nuclear.svg deleted file mode 100644 index 6e3adb4..0000000 --- a/admin/bower_components/Ionicons/src/nuclear.svg +++ /dev/null @@ -1,18 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" style="enable-background:new 0 0 512 512;" xml:space="preserve"> -<g> - <g> - <circle cx="256" cy="272" r="48"/> - <circle cx="256" cy="272" r="48"/> - </g> - <g> - <path d="M480,272H320c0,23.9-13.1,44.7-32.6,55.7L365.6,464C433.1,425.4,480,355.3,480,272z"/> - <path d="M256,208c11.7,0,22.7,3.2,32.1,8.7l80.6-138.3C335.6,59.1,297.1,48,256,48c-41.2,0-79.9,11.2-113.1,30.6l79.8,138.8 - C232.4,211.4,243.8,208,256,208z"/> - <path d="M192,272H32c0,83.3,46.9,153.4,114.4,192l78.2-136.3C205.1,316.7,192,295.9,192,272z"/> - </g> -</g> -</svg> diff --git a/admin/bower_components/Ionicons/src/outlet.svg b/admin/bower_components/Ionicons/src/outlet.svg deleted file mode 100644 index 990f64d..0000000 --- a/admin/bower_components/Ionicons/src/outlet.svg +++ /dev/null @@ -1,16 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" enable-background="new 0 0 512 512" xml:space="preserve"> -<g> - <path d="M369.541,32H142.359C81.521,32,32,82.574,32,144.604v222.79C32,429.426,81.521,480,142.359,480h227.182 - C430.479,480,480,429.426,480,367.395v-222.79C480,82.574,430.479,32,369.541,32z M175,250.954v0.67 - c0,10.882-9.09,20.376-19.875,20.376h-23.27C121.073,272,112,262.506,112,251.624v-0.67V149.512v-1.351 - c1-10.768,9.193-20.161,19.855-20.161h23.27c10.886,0,19.875,9.847,19.875,20.831V250.954z M297,395.74v2.68 - c0,11.439-8.872,17.58-20.1,17.58H256h-20.898C223.872,416,215,407.859,215,396.42v-0.68v-28.637 - c0-23.33,18.118-42.287,40.999-42.287c22.883,0,41.001,18.957,41.001,42.287V395.74z M400,250.954v0.67 - c0,10.882-9.071,20.376-19.855,20.376h-24.27C345.093,272,336,262.506,336,251.624v-0.67V149.512v-1.351 - c1-10.768,9.215-20.161,19.875-20.161h24.27c10.784,0,19.855,9.847,19.855,20.831V250.954z"/> -</g> -</svg> diff --git a/admin/bower_components/Ionicons/src/paintbrush.svg b/admin/bower_components/Ionicons/src/paintbrush.svg deleted file mode 100644 index 597f84a..0000000 --- a/admin/bower_components/Ionicons/src/paintbrush.svg +++ /dev/null @@ -1,18 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" enable-background="new 0 0 512 512" xml:space="preserve"> -<g> - <path d="M149.515,283.349c-51.921,0-83.939,45.661-83.939,95.085c0,22.691-10.071,39.153-33.575,48.104 - c17.907,34.678,87.777,41.157,117.515,35.797c35.642-6.426,80.077-24.873,90.654-76.969 - C252.48,324.739,201.434,283.349,149.515,283.349z"/> - <path d="M467.638,60.356c-12.955-12.948-29.964-17.292-44.92-5.35L247.598,209.1c-8.648-2.371-16.525-1.869-22.909,2.346 - L165.896,260.4c-1.611,1.611-1.545,4.304,0.066,5.914c0.499,0.501,1.064,0.79,1.697,0.98c0.642,0.034,1.264,0.059,1.899,0.103 - c0.019-0.002,0.036-0.01,0.054-0.014c47.938,3.432,91.034,36.754,89.3,89.506c-0.016,0.505-0.029,1.007-0.054,1.516 - c0.123,0.848,0.5,1.664,1.149,2.315c1.595,1.593,4.168,1.605,5.781,0.044c0.018-0.018,0.037-0.027,0.055-0.044 - c0.063-0.063,0.106-0.137,0.164-0.2l50.457-57.342c4.216-6.374,4.72-14.24,2.355-22.875l154.169-175.047 - C484.939,90.308,480.592,73.308,467.638,60.356z"/> - <polygon points="165.887,260.409 165.896,260.4 165.888,260.407 "/> -</g> -</svg> diff --git a/admin/bower_components/Ionicons/src/paintbucket.svg b/admin/bower_components/Ionicons/src/paintbucket.svg deleted file mode 100644 index 046eea6..0000000 --- a/admin/bower_components/Ionicons/src/paintbucket.svg +++ /dev/null @@ -1,12 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" enable-background="new 0 0 512 512" xml:space="preserve"> -<g> - <path d="M128,64l39.667,72.102L16,288l197.604,192l163.328-160l58.33-12.307L160,32L128,64z M325.131,288H104.857L215,177.863 - L325.131,288z"/> - <path d="M435.262,307.693c0,0-60.734,66.179-60.732,99.207c0,33.028,27.192,59.803,60.731,59.801 - c33.548,0.002,60.74-26.772,60.739-59.801C496.001,373.872,435.262,307.693,435.262,307.693z"/> -</g> -</svg> diff --git a/admin/bower_components/Ionicons/src/paper-airplane.svg b/admin/bower_components/Ionicons/src/paper-airplane.svg deleted file mode 100644 index 1189d95..0000000 --- a/admin/bower_components/Ionicons/src/paper-airplane.svg +++ /dev/null @@ -1,13 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" style="enable-background:new 0 0 512 512;" xml:space="preserve"> -<style type="text/css"> -<![CDATA[ - .st0{fill:#010101;} -]]> -</style> -<path class="st0" d="M32,272l128,48l16,160l80-112l112,112L480,32L32,272z M350.7,417.4L256,320l128-176L192,297.8l-82.6-31 - l322-172.5L350.7,417.4z"/> -</svg> diff --git a/admin/bower_components/Ionicons/src/paperclip.svg b/admin/bower_components/Ionicons/src/paperclip.svg deleted file mode 100644 index ee1bd36..0000000 --- a/admin/bower_components/Ionicons/src/paperclip.svg +++ /dev/null @@ -1,13 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" style="enable-background:new 0 0 512 512;" xml:space="preserve"> -<path d="M324.6,154.9c-6.3-0.1-11.4,5.1-11.4,11.6L313,361.3c-0.1,43.8-29.7,63.4-57.2,63.2c-27.5-0.3-57.1-20.4-57-64.1 - c0-33.5,0.2-167.7,0.3-234.8c0-15.4,6-27.4,16.8-33.7c10.6-6.2,24.4-6.1,35,0.3c10.8,6.5,16.7,18.6,16.7,34l-0.3,224.5 - c0,7.3-1.7,13.3-4.7,17.1c-1.9,2.4-4.4,3.8-6.9,3.8c-5.6-0.1-11.4-7.3-11.3-20.8c0,0,0.2-166.3,0.3-172.7c0-6.5-5.1-11.8-11.4-11.8 - c-6.3,0-11.4,5.2-11.4,11.7l-0.3,172.7c0,29,17.2,44.3,34.2,44.5c9.4,0.1,18.3-4.4,24.6-12.4c6.3-8,9.7-19,9.7-31.8l0.3-224.5 - c0-23.8-10.2-43.6-28.1-54.3c-17.5-10.6-40.3-10.8-57.9-0.5c-17.9,10.5-28.2,30.1-28.3,53.9c-0.1,67-0.2,201.2-0.3,234.8 - c-0.1,57.2,40.1,87.4,79.8,87.8c20.5,0.2,41.1-7.7,56.3-23.1c14.2-14.5,23.7-35.7,23.7-63.4l0.1-194.9 - C336,160.2,330.9,154.9,324.6,154.9z"/> -</svg> diff --git a/admin/bower_components/Ionicons/src/pause.svg b/admin/bower_components/Ionicons/src/pause.svg deleted file mode 100644 index dd8b47d..0000000 --- a/admin/bower_components/Ionicons/src/pause.svg +++ /dev/null @@ -1,12 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" style="enable-background:new 0 0 512 512;" xml:space="preserve"> -<g> - <path d="M224,435.8V76.1c0-6.7-5.4-12.1-12.2-12.1h-71.6c-6.8,0-12.2,5.4-12.2,12.1v359.7c0,6.7,5.4,12.2,12.2,12.2h71.6 - C218.6,448,224,442.6,224,435.8z"/> - <path d="M371.8,64h-71.6c-6.7,0-12.2,5.4-12.2,12.1v359.7c0,6.7,5.4,12.2,12.2,12.2h71.6c6.7,0,12.2-5.4,12.2-12.2V76.1 - C384,69.4,378.6,64,371.8,64z"/> -</g> -</svg> diff --git a/admin/bower_components/Ionicons/src/person-add.svg b/admin/bower_components/Ionicons/src/person-add.svg deleted file mode 100644 index 2e1520e..0000000 --- a/admin/bower_components/Ionicons/src/person-add.svg +++ /dev/null @@ -1,13 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" style="enable-background:new 0 0 512 512;" xml:space="preserve"> -<g> - <polygon points="429,328 429,277 480,277 480,235 429,235 429,184 387,184 387,235 336,235 336,277 387,277 387,328 "/> - <path d="M416,448c0,0,0-26.4-2.2-40.2c-1.8-10.9-16.9-25.3-81.1-48.9c-63.2-23.2-59.3-11.9-59.3-54.6c0-27.7,14.1-11.6,23.1-64.2 - c3.5-20.7,6.3-6.9,13.9-40.1c4-17.4-2.7-18.7-1.9-27c0.8-8.3,1.6-15.7,3.1-32.7C313.4,119.3,293.9,64,224,64 - c-69.9,0-89.4,55.3-87.5,76.4c1.5,16.9,2.3,24.4,3.1,32.7c0.8,8.3-5.9,9.6-1.9,27c7.6,33.1,10.4,19.3,13.9,40.1 - c9,52.6,23.1,36.5,23.1,64.2c0,42.8,3.9,31.5-59.3,54.6c-64.2,23.5-79.4,38-81.1,48.9C32,421.6,32,448,32,448h192H416z"/> -</g> -</svg> diff --git a/admin/bower_components/Ionicons/src/person-stalker.svg b/admin/bower_components/Ionicons/src/person-stalker.svg deleted file mode 100644 index c460676..0000000 --- a/admin/bower_components/Ionicons/src/person-stalker.svg +++ /dev/null @@ -1,18 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" style="enable-background:new 0 0 512 512;" xml:space="preserve"> -<g> - <path d="M425.3,324.8c-41.4-15.7-38.9-9.4-38.9-38.5c0-18.8,9.3-11.9,15.2-47.7c2.3-14.1,4.2-4.7,9.1-27.3 - c2.6-11.8-1.8-12.7-1.2-18.3c0.5-5.6,1-10.7,2-22.2c1.2-14.4-11.6-52-57.4-52c-45.8,0-58.6,37.6-57.4,52c0.9,11.6,1.5,16.6,2,22.2 - c0.5,5.6-3.8,6.5-1.2,18.3c4.9,22.6,6.8,13.1,9.1,27.3c5.9,35.8,15.1,29,15.1,47.7c0,13.4,3.1,19-14.9,27.5 - c5.4,1.9,11.7,4.2,19.3,7.1c54.4,20.7,53.1,40.8,54.5,50.3c1,6.5,1.5,58.3,1.7,76.8H480c0,0,0-80.5-1.5-89.9 - C477.4,350.7,467.5,340.9,425.3,324.8z"/> - <path d="M357,448c0,0,0-14.1-0.2-30.4c-0.2-18.6-0.7-40-1.7-46.4c-1.5-9.5-14.3-22.2-68.6-42.9c-7.5-2.8-13.8-5.1-19.3-7.1 - c-33.3-11.8-30.9-15.7-30.9-48c0-24.3,12-8.5,19.6-54.6c3-18.2,5.4-6.1,11.7-35.2c3.4-15.2-2.3-16.4-1.6-23.7 - c0.7-7.3,1.4-13.8,2.6-28.7c1.6-18.5-14.9-67.1-74.1-67.1c-59.2,0-75.6,48.5-74.1,67.1c1.2,14.9,1.9,21.4,2.7,28.7 - c0.7,7.3-5,8.4-1.6,23.7c6.4,29.1,8.8,17,11.8,35.2c7.6,46.1,19.5,30.3,19.5,54.6c0,37.6,3.3,34.8-50.2,55.1 - c-54.3,20.7-67.1,33.4-68.6,42.9C32,383.3,32,448,32,448h162.5H357z"/> -</g> -</svg> diff --git a/admin/bower_components/Ionicons/src/person.svg b/admin/bower_components/Ionicons/src/person.svg deleted file mode 100644 index aac76d4..0000000 --- a/admin/bower_components/Ionicons/src/person.svg +++ /dev/null @@ -1,10 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" style="enable-background:new 0 0 512 512;" xml:space="preserve"> -<path d="M448,448c0,0,0-26.4-2.2-40.2c-1.8-10.9-16.9-25.3-81.1-48.9c-63.2-23.2-59.3-11.9-59.3-54.6c0-27.7,14.1-11.6,23.1-64.2 - c3.5-20.7,6.3-6.9,13.9-40.1c4-17.4-2.7-18.7-1.9-27c0.8-8.3,1.6-15.7,3.1-32.7C345.4,119.3,325.9,64,256,64 - c-69.9,0-89.4,55.3-87.5,76.4c1.5,16.9,2.3,24.4,3.1,32.7c0.8,8.3-5.9,9.6-1.9,27c7.6,33.1,10.4,19.3,13.9,40.1 - c9,52.6,23.1,36.5,23.1,64.2c0,42.8,3.9,31.5-59.3,54.6c-64.2,23.5-79.4,38-81.1,48.9C64,421.6,64,448,64,448h192H448z"/> -</svg> diff --git a/admin/bower_components/Ionicons/src/pie-graph.svg b/admin/bower_components/Ionicons/src/pie-graph.svg deleted file mode 100644 index b134472..0000000 --- a/admin/bower_components/Ionicons/src/pie-graph.svg +++ /dev/null @@ -1,11 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" style="enable-background:new 0 0 512 512;" xml:space="preserve"> -<g> - <path d="M32.6,256h32H256V64.6v-32c-5-0.4-10.6-0.6-16-0.6C125.1,32,32,125.1,32,240C32,245.4,32.2,251,32.6,256z"/> - <path d="M109.8,402.2C147.9,449.6,206.4,480,272,480c114.9,0,208-93.1,208-208c0-65.6-30.4-124.1-77.8-162.2 - C370.5,84.3,331,67.9,288,64.6V288H64.6C67.9,331,84.3,370.5,109.8,402.2z"/> -</g> -</svg> diff --git a/admin/bower_components/Ionicons/src/pin.svg b/admin/bower_components/Ionicons/src/pin.svg deleted file mode 100644 index 7bdc877..0000000 --- a/admin/bower_components/Ionicons/src/pin.svg +++ /dev/null @@ -1,11 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" style="enable-background:new 0 0 512 512;" xml:space="preserve"> -<path d="M331.8,228C331.8,228,331.8,228,331.8,228c-1.2-0.5-2.4-1-3.5-1.7c-7-4-12.2-10.9-13.9-19.2L295.9,89.4l-0.2-5.8 - c0-7.1,4.1-10.2,10-13l0,0c0.7-0.3,1.4-0.6,2.1-0.9c7.2-3.4,12.1-7.8,12.1-16.3c0-20.1-6.5-21.4-18.2-21.4h-91.3 - c-11.7,0-18.2,1.2-18.2,21.4c0,8.5,4.9,12.9,12.1,16.3c0.7,0.3,1.4,0.5,2.1,0.9c0,0,0,0,0,0c5.9,2.9,10,6,10,13l-0.2,5.8 - l-18.5,117.7c-1.7,8.3-6.9,15.2-13.9,19.2c-1.1,0.7-2.3,1.2-3.5,1.7c0,0,0,0,0,0c-19.7,10.2-36.2,30.8-36.2,54.7 - c0,15.9,3.5,21.3,15.2,21.3H240l12,176h8l12-176h80.8c11.7,0,15.2-4.7,15.2-21.3C368,258.8,351.5,238.2,331.8,228z"/> -</svg> diff --git a/admin/bower_components/Ionicons/src/pinpoint.svg b/admin/bower_components/Ionicons/src/pinpoint.svg deleted file mode 100644 index d18b9bb..0000000 --- a/admin/bower_components/Ionicons/src/pinpoint.svg +++ /dev/null @@ -1,11 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" style="enable-background:new 0 0 512 512;" xml:space="preserve"> -<path d="M256,32C132.3,32,32,132.3,32,256c0,123.7,100.3,224,224,224c123.7,0,224-100.3,224-224C480,132.3,379.7,32,256,32z - M391.8,391.8c-32.5,32.5-74.6,51.9-119.8,55.6L264,384h-16l-7.9,63.3c-45.3-3.7-87.4-23.1-119.8-55.6 - c-32.5-32.5-51.9-74.6-55.6-119.8L128,264v-16l-63.3-7.9c3.7-45.3,23.1-87.4,55.6-119.8c32.5-32.5,74.6-51.9,119.8-55.6L248,128h16 - l7.9-63.3c45.3,3.7,87.4,23.1,119.8,55.6c32.5,32.5,51.9,74.6,55.6,119.8L384,248v16l63.3,7.9C443.6,317.2,424.2,359.3,391.8,391.8z - "/> -</svg> diff --git a/admin/bower_components/Ionicons/src/pizza.svg b/admin/bower_components/Ionicons/src/pizza.svg deleted file mode 100644 index 4595a20..0000000 --- a/admin/bower_components/Ionicons/src/pizza.svg +++ /dev/null @@ -1,20 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" enable-background="new 0 0 512 512" xml:space="preserve"> -<g> - <path d="M394.619,130.445c-42.658-18.924-89.266-28.472-138.649-28.425c-49.373-0.047-99.27,10.262-138.641,27.979 - c-7.396,3.312-14.004,8.957-9.296,19.479S255.941,480,255.941,480l147.621-329.874C406.452,143.25,404.318,134.748,394.619,130.445 - z M191.983,192.015c-17.67,0-31.995-14.323-31.995-31.993c0-17.669,14.325-31.992,31.995-31.992 - c17.671,0,31.996,14.323,31.996,31.992C223.979,177.691,209.654,192.015,191.983,192.015z M255.975,338.981 - c-17.671,0-31.995-14.323-31.995-31.993s14.324-31.992,31.995-31.992c17.67,0,31.995,14.322,31.995,31.992 - S273.645,338.981,255.975,338.981z M319.965,224.007c-17.67,0-31.995-14.322-31.995-31.992s14.325-31.993,31.995-31.993 - c17.671,0,31.996,14.323,31.996,31.993S337.636,224.007,319.965,224.007z"/> - <path d="M421.79,66c-47.808-20.603-106.867-33.977-165.811-34c-58.931,0-116.944,12.136-165.82,33.446 - C85.83,67.334,80,71.016,80,79.227c0,2.523,0.907,4.922,0.907,4.922l7.98,19.194c2.531,4.865,7.944,8.18,13.798,8.18 - c1.645,0,3.936-0.331,6.65-1.476c44.9-18.929,94.471-29.588,146.644-29.564c52.175-0.023,105.63,11.64,146.634,29.561 - c3.296,1.44,5.173,1.472,6.663,1.472c6.009,0,11.158-3.274,13.727-8.053l8.04-19.342c0.577-1.558,0.957-3.287,0.957-4.768 - C432,72,427.614,68.51,421.79,66z"/> -</g> -</svg> diff --git a/admin/bower_components/Ionicons/src/plane.svg b/admin/bower_components/Ionicons/src/plane.svg deleted file mode 100644 index 6f57747..0000000 --- a/admin/bower_components/Ionicons/src/plane.svg +++ /dev/null @@ -1,10 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" style="enable-background:new 0 0 512 512;" xml:space="preserve"> -<path d="M281.7,311.9c0.4-6.9,8.3-4.5,8.3-4.5l62,12.6l128,48.7c0-24-3.8-26.5-9.4-30.7L288,207c0,0-4.9-60-4.9-112.9 - c0-24.5-11.8-78.1-27.1-78.1s-27.1,54.4-27.1,78.1c0,50.2-4.9,112.9-4.9,112.9L41.4,338c-7.1,5-9.4,7.7-9.4,30.7L160,320l61.9-12.6 - c0,0,7.9-2.4,8.3,4.5c0.4,6.9-1.2,69.1,5.9,102.1c0.9,4.4-2.5,4.7-4.8,7.4l-51.9,32.8c-1.7,1.9-2.5,7.3-2.5,7.3l-1,18.5l68-16l12,32 - l12-32l68,16l-1-18.5c0.1,0-0.7-5.4-2.4-7.3l-51.9-32.8c-2.3-2.7-5.7-3-4.8-7.4C282.7,381,281.3,318.8,281.7,311.9z"/> -</svg> diff --git a/admin/bower_components/Ionicons/src/planet.svg b/admin/bower_components/Ionicons/src/planet.svg deleted file mode 100644 index e5da708..0000000 --- a/admin/bower_components/Ionicons/src/planet.svg +++ /dev/null @@ -1,21 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" enable-background="new 0 0 512 512" xml:space="preserve"> -<g> - <path d="M96.298,265.705C101.315,349.55,170.887,416,255.988,416c37.957,0,72.818-13.227,100.25-35.311 - C317.23,369.554,274,353.922,229.562,334.617C180.731,313.404,134.957,289.677,96.298,265.705z"/> - <path d="M107.381,196.629c39.911,27.11,92.07,55.13,147.679,79.287c43.591,18.938,87.113,34.555,125.859,45.164 - c6.496,1.779,12.834,3.406,18.988,4.883c1.685-3.462,3.249-6.994,4.688-10.591c7.341-18.358,11.386-38.393,11.386-59.372 - c0-3.26-0.109-6.493-0.301-9.705C410.661,162.45,341.09,96,255.988,96c-37.956,0-72.817,13.227-100.248,35.311 - c-18.296,14.729-33.284,33.398-43.67,54.726C110.383,189.499,108.819,193.032,107.381,196.629z"/> - <path d="M429.667,284.531c-1.256,11.562-2.377,13.627-5.891,24.695c16.878,12.039,31.032,23.706,41.137,33.938 - c3.285,3.328,5.875,6.225,7.912,8.702c-1.684,0.084-3.557,0.133-5.631,0.133c-21.886,0-54.026-5.5-90.501-15.488 - c-39.467-10.806-83.73-26.685-128.008-45.92c-58.931-25.6-114.158-55.541-155.51-84.307c-19.081-13.275-35.027-26.226-46.113-37.45 - c-3.285-3.328-5.875-6.225-7.912-8.702c1.683-0.084,3.556-0.133,5.632-0.133c15.308,0,35.637,2.694,58.952,7.729 - c5.825-10.004,6.979-12.701,14.663-21.409C92.663,137,66.625,130.522,44.784,128c-24.403-2.818-40.34,5.521-43.984,17.14 - C-10.274,180.457,95,258.718,235.936,319.942C330.498,361.022,417.104,384,467.194,384c24.565,0,40.338-5.521,43.982-17.141 - C517.516,346.643,486.965,320,429.667,284.531z"/> -</g> -</svg> diff --git a/admin/bower_components/Ionicons/src/play.svg b/admin/bower_components/Ionicons/src/play.svg deleted file mode 100644 index c7817bd..0000000 --- a/admin/bower_components/Ionicons/src/play.svg +++ /dev/null @@ -1,8 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" style="enable-background:new 0 0 512 512;" xml:space="preserve"> -<path d="M405.2,232.9L126.8,67.2c-3.4-2-6.9-3.2-10.9-3.2c-10.9,0-19.8,9-19.8,20H96v344h0.1c0,11,8.9,20,19.8,20 - c4.1,0,7.5-1.4,11.2-3.4l278.1-165.5c6.6-5.5,10.8-13.8,10.8-23.1C416,246.7,411.8,238.5,405.2,232.9z"/> -</svg> diff --git a/admin/bower_components/Ionicons/src/playstation.svg b/admin/bower_components/Ionicons/src/playstation.svg deleted file mode 100644 index 6efff54..0000000 --- a/admin/bower_components/Ionicons/src/playstation.svg +++ /dev/null @@ -1,27 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" style="enable-background:new 0 0 512 512;" xml:space="preserve"> -<style type="text/css"> -<![CDATA[ - .st0{fill:#010101;} -]]> -</style> -<g> - <path class="st0" d="M399.8,203c-0.8-17.1-3.3-34.5-10.8-50.1c-4.1-8.6-9.7-16.5-16.5-23.2c-6.3-6.4-13.6-11.7-21.3-16.3 - c-17.1-10.2-37.5-17-84.4-31S192,64,192,64v358.3l79.9,25.7c0,0,0.1-198.8,0.1-299.5v-3.8c0-9.3,7.5-16.8,16.1-16.8h0.5 - c8.5,0,15.5,7.5,15.5,16.8v2.2v131.1c11,5.3,29.2,9.3,41.8,9.1c8.3,0.2,16.7-1.7,24-5.7c7.6-4.1,13.9-10.4,18.4-17.8 - c5.1-8.3,8.2-17.8,9.9-27.3C400.1,225.5,400.2,214.2,399.8,203z"/> - <path class="st0" d="M86.7,357.8c27.4-9.8,89.3-29.5,89.3-29.5v-47.2c0,0-76.5,24.8-111.3,37.1c-8.6,3.1-17.3,5.9-25.7,9.5 - c-9.8,4.1-19.4,8.7-28.1,14.8c-3.8,2.6-7.2,5.9-9.2,10.1c-2,4.2-2.2,9.2-0.5,13.6c2,5.1,5.8,9.3,10.1,12.6 - c7.8,5.9,17.1,9.5,26.4,12.2c28.4,9.4,58.4,14,88.4,13.3c14.5-0.2,36-1.9,50-4.4v-42c0,0-11,2.5-41.3,12.5c-4.6,1.5-9.2,3.3-14,4.3 - c-7.1,1.6-14.4,2.1-21.6,2.2c-6.5-0.3-13.2-0.7-19.3-3.1c-2.2-1-4.6-2.2-5.5-4.6c-0.8-2,0.3-4,1.7-5.4 - C78.9,360.9,82.9,359.3,86.7,357.8z"/> - <path class="st0" d="M512,345.9c-0.1-6-3.7-11.2-7.9-15c-7.1-6.3-15.9-10.3-24.7-13.5c-5.5-1.9-9.3-3.3-14.7-5 - c-25.2-8.2-51.9-11.2-78.3-11.3c-8,0.3-23.1,0.5-31,1.4c-21.9,2.5-67.3,15.4-67.3,15.4v48.8c0,0,67.5-21.6,96.5-31.8 - c9.7-3.3,20.1-4.6,30.3-4.6c6.5,0.2,13.2,0.7,19.4,3.1c2.2,0.9,4.5,2.2,5.5,4.5c0.9,2.6-0.9,5-2.9,6.5c-4.7,3.8-10.7,5.3-16.2,7.4 - C379.7,366.3,288,396.5,288,396.5v47c0,0,117.2-39.6,170.8-58.8c8.9-3.3,17.9-6.1,26.4-10.4c7.9-4,15.8-8.6,21.8-15.3 - C510.1,355.4,512,351,512,345.9z"/> -</g> -</svg> diff --git a/admin/bower_components/Ionicons/src/plus-circled.svg b/admin/bower_components/Ionicons/src/plus-circled.svg deleted file mode 100644 index 4550c4b..0000000 --- a/admin/bower_components/Ionicons/src/plus-circled.svg +++ /dev/null @@ -1,10 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" style="enable-background:new 0 0 512 512;" xml:space="preserve"> -<g> - <path d="M256,32C132.3,32,32,132.3,32,256s100.3,224,224,224s224-100.3,224-224S379.7,32,256,32z M384,272H272v112h-32V272H128v-32 - h112V128h32v112h112V272z"/> -</g> -</svg> diff --git a/admin/bower_components/Ionicons/src/plus-round.svg b/admin/bower_components/Ionicons/src/plus-round.svg deleted file mode 100644 index b2d86e5..0000000 --- a/admin/bower_components/Ionicons/src/plus-round.svg +++ /dev/null @@ -1,9 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" style="enable-background:new 0 0 512 512;" xml:space="preserve"> -<path d="M417.4,224H288V94.6c0-16.9-14.3-30.6-32-30.6c-17.7,0-32,13.7-32,30.6V224H94.6C77.7,224,64,238.3,64,256 - c0,17.7,13.7,32,30.6,32H224v129.4c0,16.9,14.3,30.6,32,30.6c17.7,0,32-13.7,32-30.6V288h129.4c16.9,0,30.6-14.3,30.6-32 - C448,238.3,434.3,224,417.4,224z"/> -</svg> diff --git a/admin/bower_components/Ionicons/src/plus.svg b/admin/bower_components/Ionicons/src/plus.svg deleted file mode 100644 index c4b273c..0000000 --- a/admin/bower_components/Ionicons/src/plus.svg +++ /dev/null @@ -1,7 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" style="enable-background:new 0 0 512 512;" xml:space="preserve"> -<polygon points="448,224 288,224 288,64 224,64 224,224 64,224 64,288 224,288 224,448 288,448 288,288 448,288 "/> -</svg> diff --git a/admin/bower_components/Ionicons/src/podium.svg b/admin/bower_components/Ionicons/src/podium.svg deleted file mode 100644 index 482b3d7..0000000 --- a/admin/bower_components/Ionicons/src/podium.svg +++ /dev/null @@ -1,11 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" enable-background="new 0 0 512 512" xml:space="preserve"> -<g> - <rect x="32" y="256" width="128" height="192"/> - <rect x="192" y="160" width="128" height="288"/> - <rect x="352" y="320" width="128" height="128"/> -</g> -</svg> diff --git a/admin/bower_components/Ionicons/src/pound.svg b/admin/bower_components/Ionicons/src/pound.svg deleted file mode 100644 index 1413846..0000000 --- a/admin/bower_components/Ionicons/src/pound.svg +++ /dev/null @@ -1,11 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" style="enable-background:new 0 0 512 512;" xml:space="preserve"> -<g> - <path d="M125.2,352.3H32v-54.6h101.2l13.1-83.3H47v-54.6h107.2L176,32h63.9l-21.8,127.7h105.6L345.5,32h63.1l-21.8,127.7H480v54.6 - H378.1l-12.3,83.3H465v54.6H358.5L336,480h-63.1l21.8-127.7H188.3L166.5,480h-63.1L125.2,352.3z M209.4,214.3L197,297.7h105.6 - l12.3-83.3H209.4z"/> -</g> -</svg> diff --git a/admin/bower_components/Ionicons/src/power.svg b/admin/bower_components/Ionicons/src/power.svg deleted file mode 100644 index eef015f..0000000 --- a/admin/bower_components/Ionicons/src/power.svg +++ /dev/null @@ -1,15 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" style="enable-background:new 0 0 512 512;" xml:space="preserve"> -<g> - <path d="M256,256c-17.7,0-32-14.3-32-32V64c0-17.7,14.3-32,32-32s32,14.3,32,32v160C288,241.7,273.7,256,256,256z"/> - <path d="M379,68.8L379,68.8c-5-3-10.8-4.8-17-4.8c-17.7,0-32,14.3-32,32c0,6.2,1.8,12,4.8,16.9c2,3.2,4.6,6.1,7.6,8.4 - c1.2,0.9,2.4,1.7,3.7,2.5c8.1,5.6,15.8,11.9,23,19.1C399.4,173.1,416,213.3,416,256c0,42.7-16.6,82.9-46.9,113.1 - C338.9,399.4,298.7,416,256,416c-42.7,0-82.9-16.6-113.1-46.9C112.6,338.9,96,298.7,96,256c0-42.7,16.6-82.9,46.9-113.1 - c7.1-7.1,14.8-13.5,22.9-19c1.4-0.8,2.6-1.6,3.9-2.6c3-2.3,5.5-5.1,7.5-8.3c3.1-4.9,4.8-10.7,4.8-16.9c0-17.7-14.3-32-32-32 - c-6.2,0-12,1.8-16.9,4.8l-0.1-0.1C72.2,108.8,32,177.7,32,256c0,123.7,100.3,224,224,224c123.7,0,224-100.3,224-224 - C480,177.7,439.8,108.8,379,68.8z"/> -</g> -</svg> diff --git a/admin/bower_components/Ionicons/src/pricetag.svg b/admin/bower_components/Ionicons/src/pricetag.svg deleted file mode 100644 index 22335f4..0000000 --- a/admin/bower_components/Ionicons/src/pricetag.svg +++ /dev/null @@ -1,13 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" style="enable-background:new 0 0 512 512;" xml:space="preserve"> -<g> - <path d="M471,261.4L471,261.4C471,261.4,471,261.4,471,261.4L260.9,49.8c0,0,0,0,0,0l-1.5-1.5c0,0-0.4,0-0.4,0 - c-8.3-7.9-17.9-12-29.9-12.3v0l-99.7-3.7l-4.4-0.2c-11.2,0.2-22.2,4.5-30.7,13.1L45.1,94.3c-9,9-13.1,20.9-13.1,32.7c0,0,0,0,0,0.1 - l0.3,4.2l6.7,97.3c0,0.1,0,0.2,0,0.2v1.9c0,0,0,0,0,0c1,8.7,4.5,17.3,10.4,24.4l5.5,5.4l206.3,208.8l3.1,3.1 - c11.9,10.5,30,10,41.3-1.4l165.4-166.6C482.8,292.6,483,273.3,471,261.4z M144,192c-26.5,0-48-21.5-48-48s21.5-48,48-48 - s48,21.5,48,48S170.5,192,144,192z"/> -</g> -</svg> diff --git a/admin/bower_components/Ionicons/src/pricetags.svg b/admin/bower_components/Ionicons/src/pricetags.svg deleted file mode 100644 index e62d8c4..0000000 --- a/admin/bower_components/Ionicons/src/pricetags.svg +++ /dev/null @@ -1,18 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" style="enable-background:new 0 0 512 512;" xml:space="preserve"> -<g> - <path d="M472,239.2L472,239.2C472,239.2,471.9,239.2,472,239.2L282.1,48.1c0,0,0,0,0,0l-1.4-1.4c0,0-0.5,0-0.5,0 - c-7.5-7.2-16.1-10.9-27.1-11.1v0l-89.9-3.3l-3.9-0.1c-10.1,0.1-20,4.1-27.7,11.8l-27.1,27.2c7.4-6.6,16.6-10,26-10.1l3.8,0.1 - l89.8,3.3v0c11,0.2,19.7,3.9,27.2,11.1c0,0,0.4,0,0.5,0l1.4,1.4c0,0,0,0,0,0L443,268.1c0,0,0,0,0,0v0c10,10.8,10.7,28.2,0,38.9 - l29-28.9C482.6,267.4,482,250,472,239.2z"/> - <path d="M428,282.5c0,0,0.3,0,0.3,0L238.6,91.4c0,0,0,0,0,0l-1.3-1.4c0,0-0.3,0-0.3,0c-7.5-7.2-15.9-10.9-26.9-11.1v0l-90.1-3.3 - l-4-0.1c-9.2,0.1-18.2,3.4-25.6,9.8c-0.3,0.3-0.7,0.6-1,0.9c-0.4,0.4-0.8,0.8-1.2,1.2l-44.3,44.5c-8.1,8.1-11.9,18.9-11.9,29.5 - c0,0,0,0,0,0.1l0.1,3.8l5.9,87.9c0,0.1,0,0.1,0,0.2v1.7c0,0,0,0,0,0c1,7.9,4.2,15.6,9.6,22l5.1,4.9L239,470.4l2.8,2.8 - c10.7,9.4,27.1,9,37.3-1.3l13.1-13.2c0.5-0.4,0.9-0.8,1.4-1.3l26.9-27c-0.2,0.1-0.3,0.2-0.5,0.4l108.3-109.3 - C438.9,310.8,439,293.3,428,282.5L428,282.5z M110.6,139.5c6.6-4,14.3-6.3,22.6-6.3c23.9,0,43.4,19.4,43.4,43.4 - c0,8.3-2.3,16-6.3,22.6c-7.6,12.5-21.3,20.8-37,20.8c-23.9,0-43.4-19.4-43.4-43.4C89.8,160.8,98.1,147.1,110.6,139.5z"/> -</g> -</svg> diff --git a/admin/bower_components/Ionicons/src/printer.svg b/admin/bower_components/Ionicons/src/printer.svg deleted file mode 100644 index 4f27076..0000000 --- a/admin/bower_components/Ionicons/src/printer.svg +++ /dev/null @@ -1,14 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" style="enable-background:new 0 0 512 512;" xml:space="preserve"> -<g> - <path d="M423.8,128H384V64H128v64H88.2C60.3,128,32,144.9,32,182.6v123.8c0,38,28.3,61.6,56.2,61.6c0,0,30.4,0,39.8,0v112h5h11h224 - h8h8V368c10.3,0,39.8,0,39.8,0c27.9,0,56.2-22.6,56.2-53.6V182.6C480,146.9,451.8,128,423.8,128z M368,464H144V288h224V464z - M368,128H144V80h224V128z M416,192h-17v-16h17V192z"/> - <rect x="160" y="320" width="192" height="16"/> - <rect x="160" y="368" width="192" height="16"/> - <rect x="160" y="416" width="192" height="16"/> -</g> -</svg> diff --git a/admin/bower_components/Ionicons/src/pull-request.svg b/admin/bower_components/Ionicons/src/pull-request.svg deleted file mode 100644 index 40fe552..0000000 --- a/admin/bower_components/Ionicons/src/pull-request.svg +++ /dev/null @@ -1,16 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" enable-background="new 0 0 512 512" xml:space="preserve"> -<g> - <path d="M128,64c-35.29,0-64,28.71-64,64c0,23.637,12.89,44.307,32,55.391v177.219C76.89,371.693,64,392.363,64,416 - c0,35.29,28.71,64,64,64s64-28.71,64-64c0-23.637-12.89-44.307-32-55.391V183.391c19.11-11.084,32-31.754,32-55.391 - C192,92.71,163.29,64,128,64z M128,448c-17.673,0-32-14.327-32-32s14.327-32,32-32s32,14.327,32,32S145.673,448,128,448z M128,160 - c-17.673,0-32-14.327-32-32s14.327-32,32-32s32,14.327,32,32S145.673,160,128,160z"/> - <path d="M415,360.034V204.989c0-33.987-10.49-61.002-31.18-80.294c-22.111-20.618-54.314-30.388-95.82-29.106V32l-96,96l96,96v-64 - c26.5,0,42.67,2.642,52.175,11.504c7.183,6.698,10.825,17.964,10.825,33.485v156.196c-18.562,11.217-31,31.589-31,54.814 - c0,35.29,28.71,64,64,64s64-28.71,64-64C448,391.951,434.662,370.969,415,360.034z M384,448c-17.673,0-32-14.327-32-32 - s14.327-32,32-32s32,14.327,32,32S401.673,448,384,448z"/> -</g> -</svg> diff --git a/admin/bower_components/Ionicons/src/qr-scanner.svg b/admin/bower_components/Ionicons/src/qr-scanner.svg deleted file mode 100644 index 82a6cd1..0000000 --- a/admin/bower_components/Ionicons/src/qr-scanner.svg +++ /dev/null @@ -1,12 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" enable-background="new 0 0 512 512" xml:space="preserve"> -<g> - <path d="M96,124.171c0-6.938,5.232-12.171,12.171-12.171H176V64h-66.829C75.717,64,48,90.717,48,124.171V192h48V124.171z"/> - <path d="M403.579,64H336v48h67.219c6.938,0,12.781,5.232,12.781,12.171V192h48v-67.829C464,90.717,437.033,64,403.579,64z"/> - <path d="M416,386.829c0,6.938-5.232,12.171-12.171,12.171H336v49h67.829C437.283,448,464,420.283,464,386.829V320h-48V386.829z"/> - <path d="M108.171,399C101.232,399,96,393.768,96,386.829V320H48v66.829C48,420.283,75.717,448,109.171,448H176v-49H108.171z"/> -</g> -</svg> diff --git a/admin/bower_components/Ionicons/src/quote.svg b/admin/bower_components/Ionicons/src/quote.svg deleted file mode 100644 index 74b11a0..0000000 --- a/admin/bower_components/Ionicons/src/quote.svg +++ /dev/null @@ -1,16 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" enable-background="new 0 0 512 512" xml:space="preserve"> -<g> - <g> - <path d="M192,64c-40.646,0-72.483,11.229-94.627,33.373C75.229,119.517,64,151.354,64,192v256h160V192h-96 - c0-23.056,4.922-39.666,14.627-49.373C152.334,132.922,168.944,128,192,128"/> - </g> - <g> - <path d="M416,64c-40.646,0-72.483,11.229-94.627,33.373C299.229,119.517,288,151.354,288,192v256h160V192h-96 - c0-23.056,4.922-39.666,14.627-49.373C376.334,132.922,392.944,128,416,128"/> - </g> -</g> -</svg> diff --git a/admin/bower_components/Ionicons/src/radio-waves.svg b/admin/bower_components/Ionicons/src/radio-waves.svg deleted file mode 100644 index aad96c6..0000000 --- a/admin/bower_components/Ionicons/src/radio-waves.svg +++ /dev/null @@ -1,25 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" enable-background="new 0 0 512 512" xml:space="preserve"> -<g> - <circle cx="256" cy="256" r="64"/> - <g> - <path d="M144,256c0-36.9,18.553-69.208,46.314-87.034l-23.141-24.512c-6.26,4.608-12.18,9.833-17.684,15.663 - C125.314,185.729,112,219.781,112,256c0,36.219,13.314,70.271,37.49,95.883c5.504,5.829,11.424,11.055,17.684,15.662 - l23.141-24.511C162.553,325.208,144,292.9,144,256z"/> - <path d="M368,256c0,36.9-18.553,69.208-46.314,87.034l23.141,24.511c6.26-4.607,12.18-9.833,17.684-15.662 - C386.686,326.271,400,292.219,400,256c0-36.219-13.314-70.271-37.49-95.882c-5.504-5.83-11.424-11.055-17.684-15.663 - l-23.141,24.512C349.447,186.792,368,219.1,368,256z"/> - <path d="M64,256c0-55.578,25.251-104.907,64.263-135.817L105.433,96c-5.999,5-11.739,10.396-17.197,16.178 - c-17.622,18.669-31.462,40.417-41.134,64.641C37.081,201.917,32,228.556,32,256c0,27.443,5.081,54.084,15.102,79.181 - c9.672,24.226,23.512,45.973,41.134,64.642c5.458,5.781,11.198,11.177,17.197,16.178l22.829-24.183 - C89.251,360.907,64,311.578,64,256z"/> - <path d="M448,256c0,55.578-25.251,104.907-64.262,135.817l22.828,23.848c6-5.001,11.74-10.062,17.198-15.843 - c17.622-18.669,31.462-40.416,41.134-64.642C474.918,310.084,480,283.443,480,256c0-27.444-5.082-54.083-15.102-79.181 - c-9.672-24.225-23.512-45.972-41.134-64.641C418.307,106.396,412.566,101,406.566,96l-22.829,24.183 - C422.749,151.093,448,200.422,448,256z"/> - </g> -</g> -</svg> diff --git a/admin/bower_components/Ionicons/src/record.svg b/admin/bower_components/Ionicons/src/record.svg deleted file mode 100644 index 44b9b41..0000000 --- a/admin/bower_components/Ionicons/src/record.svg +++ /dev/null @@ -1,7 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" style="enable-background:new 0 0 512 512;" xml:space="preserve"> -<path d="M256,464c114.9,0,208-93.1,208-208c0-114.9-93.1-208-208-208C141.1,48,48,141.1,48,256C48,370.9,141.1,464,256,464z"/> -</svg> diff --git a/admin/bower_components/Ionicons/src/refresh.svg b/admin/bower_components/Ionicons/src/refresh.svg deleted file mode 100644 index 7f92762..0000000 --- a/admin/bower_components/Ionicons/src/refresh.svg +++ /dev/null @@ -1,15 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" style="enable-background:new 0 0 512 512;" xml:space="preserve"> -<path d="M416,352l96-111.9h-64.7c-2.3-27.9-10.5-54-23.5-77.3c-27.4-49.2-75.8-85.1-133-95.6c-0.7-0.1-1.5-0.3-2.2-0.4 - c-0.5-0.1-0.9-0.2-1.4-0.2C277.1,64.9,266.6,64,256,64c-0.1,0-0.3,0-0.4,0c0,0,0,0,0,0c-90.9,0.2-167,63.6-186.7,148.6 - c0,0,0,0.1,0,0.1c-0.3,1.1-0.5,2.2-0.7,3.3c-0.1,0.5-0.2,0.9-0.3,1.4c-0.1,0.7-0.3,1.4-0.4,2.1c-0.2,0.9-0.3,1.7-0.5,2.6 - c-0.1,0.4-0.1,0.7-0.2,1.1c-0.2,1.2-0.4,2.4-0.6,3.6c0,0.1,0,0.1,0,0.2c-1,6.3-1.6,12.7-1.9,19.1c0,0.3,0,0.6,0,0.8 - c-0.1,1.4-0.1,2.7-0.2,4.1c0,1.6-0.1,3.3-0.1,5c0,1.7,0,3.3,0.1,5c0,1.4,0.1,2.7,0.2,4.1c0,0.3,0,0.6,0,0.9c0.3,6.5,1,12.9,1.9,19.1 - c0,0.1,0,0.1,0,0.2c0.2,1.2,0.4,2.4,0.6,3.6c0.1,0.4,0.1,0.7,0.2,1.1c0.2,0.9,0.3,1.8,0.5,2.6c0.1,0.7,0.3,1.4,0.4,2.1 - c0.1,0.5,0.2,1,0.3,1.4c0.2,1.1,0.5,2.2,0.7,3.2c0,0,0,0.1,0,0.1c19.7,85,96.1,148.4,187.1,148.6c42.9-0.1,83.1-14.2,116.9-40.7 - l7.5-5.9l-43.2-46.2l-6.2,4.6c-22.1,16.3-47.5,24.2-75,24.2c-70.6,0-128-57-128-128c0-71,57.4-128,128-128 - c66.4,0,122.8,46.6,129.5,112H312L416,352z"/> -</svg> diff --git a/admin/bower_components/Ionicons/src/reply-all.svg b/admin/bower_components/Ionicons/src/reply-all.svg deleted file mode 100644 index 17286ee..0000000 --- a/admin/bower_components/Ionicons/src/reply-all.svg +++ /dev/null @@ -1,12 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" style="enable-background:new 0 0 512 512;" xml:space="preserve"> -<g> - <path d="M304.5,192v-80L152.7,255.8L304.5,390v-91.9c68,0,107.9,8.9,159.1,101.9C463.6,400,457.5,192,304.5,192z"/> - <g> - <polygon points="47.5,256 191.5,382.5 191.5,324 109.3,256 191.5,177.4 191.5,120.4 "/> - </g> -</g> -</svg> diff --git a/admin/bower_components/Ionicons/src/reply.svg b/admin/bower_components/Ionicons/src/reply.svg deleted file mode 100644 index 39e4e58..0000000 --- a/admin/bower_components/Ionicons/src/reply.svg +++ /dev/null @@ -1,9 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" style="enable-background:new 0 0 512 512;" xml:space="preserve"> -<g> - <path d="M448,400c0,0-36.8-208-224-208v-80L64,256l160,134.4v-92.3C325.6,298.1,395,307,448,400z"/> -</g> -</svg> diff --git a/admin/bower_components/Ionicons/src/ribbon-a.svg b/admin/bower_components/Ionicons/src/ribbon-a.svg deleted file mode 100644 index 24d1e1b..0000000 --- a/admin/bower_components/Ionicons/src/ribbon-a.svg +++ /dev/null @@ -1,14 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" enable-background="new 0 0 512 512" xml:space="preserve"> -<g> - <path d="M352,32l-82.9,176.612c39.996,3.608,75.273,23.554,99.096,53.128L432,128L352,32z"/> - <path d="M160,32l82.9,176.612c-39.996,3.608-75.273,23.554-99.096,53.128L80,128L160,32z"/> - <polygon points="269.092,32 256,32 176,32 228.572,144 256,144 283.428,144 336,32 "/> - <path d="M256,224c-70.692,0-128,57.308-128,128s57.308,128,128,128s128-57.308,128-128S326.692,224,256,224z M256,448 - c-53.02,0-96-42.98-96-96s42.98-96,96-96s96,42.98,96,96S309.02,448,256,448z"/> - <path d="M256,264c-48.523,0-88,39.477-88,88s39.477,88,88,88s88-39.477,88-88S304.523,264,256,264z"/> -</g> -</svg> diff --git a/admin/bower_components/Ionicons/src/ribbon-b.svg b/admin/bower_components/Ionicons/src/ribbon-b.svg deleted file mode 100644 index 9e7a4b6..0000000 --- a/admin/bower_components/Ionicons/src/ribbon-b.svg +++ /dev/null @@ -1,18 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" enable-background="new 0 0 512 512" xml:space="preserve"> -<g> - <g> - <path d="M256,72c-48.523,0-88,39.477-88,88s39.477,88,88,88s88-39.477,88-88S304.523,72,256,72z"/> - <path d="M256,32c-70.692,0-128,57.308-128,128s57.308,128,128,128s128-57.308,128-128S326.692,32,256,32z M256,256 - c-53.02,0-96-42.98-96-96s42.98-96,96-96s96,42.98,96,96S309.02,256,256,256z"/> - </g> - <g> - <path d="M147.092,254.21L64,400h96l48,80l48-105.807l33.641-74.154C278.848,302.623,267.585,304,256,304 - C212.495,304,173.497,284.707,147.092,254.21z"/> - <path d="M364.908,254.211c-15.077,17.412-34.26,31.172-56.043,39.774l-44.752,98.092L304,480l48-80h96L364.908,254.211z"/> - </g> -</g> -</svg> diff --git a/admin/bower_components/Ionicons/src/sad-outline.svg b/admin/bower_components/Ionicons/src/sad-outline.svg deleted file mode 100644 index 86ae576..0000000 --- a/admin/bower_components/Ionicons/src/sad-outline.svg +++ /dev/null @@ -1,28 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" enable-background="new 0 0 512 512" xml:space="preserve"> -<g> - <g> - <g> - <path d="M399.283,283.797c-5.1-16.379-14.22-29.995-33.802-37.263s-35.265-2.877-49.868,6.15 - c-7.615,4.707-10.029,14.019-4.214,22.123c2.049,2.854,5.019,4.717,8.376,5.963c5.059,1.876,10.584,1.678,14.965-1.036 - c4.778-2.957,10.644-6.526,19.607-3.199c9.01,3.343,11.103,9.839,12.752,15.161c1.551,4.952,5.62,8.724,10.693,10.606 - c3.357,1.246,6.816,1.774,10.236,0.938C396.895,301.056,401.944,292.333,399.283,283.797z"/> - <path d="M196.549,252.685c-14.603-9.027-30.286-13.418-49.868-6.15s-28.702,20.884-33.802,37.263 - c-2.661,8.536,2.389,17.259,11.255,19.443c3.42,0.837,6.878,0.309,10.236-0.938c5.073-1.883,9.143-5.654,10.693-10.606 - c1.649-5.322,3.743-11.818,12.752-15.161c8.964-3.327,14.829,0.242,19.607,3.199c4.381,2.714,9.907,2.912,14.965,1.036 - c3.357-1.246,6.327-3.108,8.376-5.963C206.578,266.703,204.164,257.392,196.549,252.685z"/> - </g> - <path d="M256,32C132.288,32,32,132.288,32,256s100.288,224,224,224s224-100.288,224-224S379.712,32,256,32z M391.765,391.765 - C355.5,428.028,307.285,448,256,448s-99.5-19.972-135.765-56.235C83.972,355.5,64,307.285,64,256s19.972-99.5,56.235-135.765 - C156.5,83.972,204.715,64,256,64s99.5,19.972,135.765,56.235C428.028,156.5,448,204.715,448,256S428.028,355.5,391.765,391.765z" - /> - </g> - <path d="M349.119,359.176C348.013,357.59,321,320,256,320c-65.261,0-92.014,37.59-93.121,39.176 - c-5.057,7.247-3.283,17.221,3.963,22.278c2.789,1.946,5.982,2.881,9.143,2.881c5.052,0,10.024-2.388,13.135-6.845 - C189.296,377.239,208.02,352,256,352c48,0,66.703,25.239,66.879,25.49c3.11,4.457,8.081,6.845,13.134,6.845 - c3.161,0,6.354-0.935,9.144-2.881C352.402,376.396,354.177,366.423,349.119,359.176z"/> -</g> -</svg> diff --git a/admin/bower_components/Ionicons/src/sad.svg b/admin/bower_components/Ionicons/src/sad.svg deleted file mode 100644 index ca58451..0000000 --- a/admin/bower_components/Ionicons/src/sad.svg +++ /dev/null @@ -1,20 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" enable-background="new 0 0 512 512" xml:space="preserve"> -<g> - <path d="M256,32C132.288,32,32,132.288,32,256s100.288,224,224,224s224-100.288,224-224S379.712,32,256,32z M145.062,291.696 - c-1.551,4.952-5.62,8.724-10.693,10.606c-3.358,1.246-6.816,1.774-10.236,0.938c-8.866-2.185-13.916-10.907-11.255-19.443 - c5.101-16.379,14.22-29.995,33.802-37.263s35.265-2.877,49.868,6.15c7.615,4.707,10.029,14.019,4.214,22.123 - c-2.049,2.854-5.019,4.717-8.376,5.963c-5.059,1.876-10.584,1.678-14.965-1.036c-4.778-2.957-10.643-6.526-19.607-3.199 - C148.805,279.878,146.712,286.374,145.062,291.696z M345.156,381.454c-2.789,1.946-5.982,2.881-9.144,2.881 - c-5.053,0-10.023-2.388-13.134-6.845C322.703,377.239,304,352,256,352c-47.98,0-66.704,25.239-66.879,25.49 - c-3.111,4.457-8.083,6.845-13.135,6.845c-3.161,0-6.354-0.935-9.143-2.881c-7.246-5.058-9.021-15.031-3.963-22.278 - C163.986,357.59,190.739,320,256,320c65,0,92.013,37.59,93.119,39.176C354.177,366.423,352.402,376.396,345.156,381.454z - M388.029,303.24c-3.42,0.837-6.879,0.309-10.236-0.938c-5.073-1.883-9.143-5.654-10.693-10.606 - c-1.649-5.322-3.742-11.818-12.752-15.161c-8.964-3.327-14.829,0.242-19.607,3.199c-4.381,2.714-9.906,2.912-14.965,1.036 - c-3.357-1.246-6.327-3.108-8.376-5.963c-5.815-8.104-3.401-17.416,4.214-22.123c14.604-9.027,30.286-13.418,49.868-6.15 - s28.702,20.884,33.802,37.263C401.944,292.333,396.895,301.056,388.029,303.24z"/> -</g> -</svg> diff --git a/admin/bower_components/Ionicons/src/scissors.svg b/admin/bower_components/Ionicons/src/scissors.svg deleted file mode 100644 index 264e7c2..0000000 --- a/admin/bower_components/Ionicons/src/scissors.svg +++ /dev/null @@ -1,23 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" enable-background="new 0 0 512 512" xml:space="preserve"> -<g> - <path d="M405.178,115.667c13.314-32.667,17.309-64-5.326-83.667L255.726,224l-16.976,23c0,0-27.627,40.011-37.28,58.667 - s-19.306,39.333-27.294,54c-7.01,12.871-10.438,15.221-14.322,11.548c-0.506-0.591-1.026-1.168-1.553-1.736 - c-0.037-0.047-0.073-0.09-0.11-0.138c-1.143-1.472-2.75-3.002-4.635-4.467C144.195,356.795,132.548,352,119.92,352 - C89.037,352,64,380.653,64,416s25.037,64,55.92,64c25.282,0,46.635-19.205,53.553-45.561l-0.004,0.043 - c0,0,13.355-41.482,32.661-71.482c19.306-30,49.596-43,49.596-43l31.954-32C287.68,288,391.863,148.334,405.178,115.667z - M119.92,448c-15.418,0-27.918-14.353-27.918-32s12.5-32,27.918-32c15.419,0,27.918,14.353,27.918,32S135.339,448,119.92,448z - M256,288c-8.836,0-16-7.163-16-16c0-8.836,7.164-16,16-16c8.837,0,16,7.164,16,16C272,280.837,264.837,288,256,288z"/> - <path d="M207.28,265.255c9.18-14.114,17.671-26.43,18.304-27.346l0.143-0.208l0.15-0.203l16.976-23l0.038-0.052l0.039-0.052 - l2.941-3.918L111.896,32c-22.634,19.667-18.64,51-5.326,83.667C116.523,140.087,177.249,224.29,207.28,265.255z"/> - <path d="M391.828,352c-12.628,0-24.275,4.795-33.637,12.874c-1.885,1.465-3.492,2.995-4.635,4.467 - c-0.037,0.048-0.072,0.091-0.109,0.138c-0.526,0.568-1.047,1.146-1.553,1.736c-3.884,3.673-7.312,1.323-14.322-11.548 - c-7.988-14.667-17.641-35.344-27.294-54c-1.77-3.421-4.146-7.561-6.843-12.038c-1.272,1.712-2.264,3.043-2.932,3.938l-0.688,0.924 - l-0.813,0.815l-28.688,28.729c10.433,6.855,24.565,18.276,35.306,34.965c19.305,30,32.66,71.482,32.66,71.482l-0.004-0.043 - C345.193,460.795,366.546,480,391.828,480C422.711,480,448,451.347,448,416S422.711,352,391.828,352z M391.828,448 - c-15.42,0-27.918-14.353-27.918-32s12.498-32,27.918-32c15.418,0,27.918,14.353,27.918,32S407.246,448,391.828,448z"/> -</g> -</svg> diff --git a/admin/bower_components/Ionicons/src/search.svg b/admin/bower_components/Ionicons/src/search.svg deleted file mode 100644 index 92fd69d..0000000 --- a/admin/bower_components/Ionicons/src/search.svg +++ /dev/null @@ -1,10 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" style="enable-background:new 0 0 512 512;" xml:space="preserve"> -<path d="M445,386.7l-84.8-85.9c13.8-24.1,21-50.9,21-77.9c0-87.6-71.2-158.9-158.6-158.9C135.2,64,64,135.3,64,222.9 - c0,87.6,71.2,158.9,158.6,158.9c27.9,0,55.5-7.7,80.1-22.4l84.4,85.6c1.9,1.9,4.6,3.1,7.3,3.1c2.7,0,5.4-1.1,7.3-3.1l43.3-43.8 - C449,397.1,449,390.7,445,386.7z M222.6,125.9c53.4,0,96.8,43.5,96.8,97c0,53.5-43.4,97-96.8,97c-53.4,0-96.8-43.5-96.8-97 - C125.8,169.4,169.2,125.9,222.6,125.9z"/> -</svg> diff --git a/admin/bower_components/Ionicons/src/settings.svg b/admin/bower_components/Ionicons/src/settings.svg deleted file mode 100644 index 3348560..0000000 --- a/admin/bower_components/Ionicons/src/settings.svg +++ /dev/null @@ -1,18 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" style="enable-background:new 0 0 512 512;" xml:space="preserve"> -<path d="M450,138.3l-47.7,48.5l-2.7,2.8l-1.6,1.7c-1.1,0.8-2.4,1.2-3.9,1.2c-1.6,0-3.1-0.6-4.3-1.6l-0.9-0.9l-2.7-2.7l-41.3-42.1 - l-2.2-2.2l-1.7-1.7c-1-1.5-1.6-3.4-1.6-5.3c0-1.7,0.6-3.2,1.6-4.4l0.7-0.8l2.6-2.6l47.9-48.7c-5.1-10.1-24.7-14.9-35.1-14.1 - c-17.1,1.3-34.7,7-52.8,25.5c-0.7,0.8-1.5,1.6-2.2,2.3C277.5,120,272.6,156,282.6,189c0.7,1.4,1.3,3.1,1.6,4.6 - c1.1,5.5-0.4,10.2-4,13.5l-37.9,36.4c-11.8-12-13.5-13.6-13.5-13.6c-2-2-6-3.3-9.5-1.2l-5.9,3.6c-22.7-23.1-32.3-32.4-35.4-43.6 - c-3.2-11.7-0.3-27.3,2.7-33.1c2.5-4.6,10.3-8.9,16.9-9.4l8.6,8.8c2,2,5.1,2,7.1,0l30.9-31.4c2-2,2-5.3,0-7.3l-49.9-50.7 - c-2-2-5.2-2-7.1,0l-30.9,31.4c-2,2-2,5.3,0,7.3l3.3,3.4c0,4.9-0.7,12.5-4.7,16.6c-6.2,6.3-18.5-1-26.5,4.7 - c-7.9,5.6-17.9,14.6-24.3,21c-6.3,6.4-30.5,31.8-47.8,74.6c-17.3,42.8-4,82.5,5.4,92.9c5,5.5,14.1,11.1,12.5,0.7 - c-1.6-10.5-4.2-46.9,7.7-61.8c11.9-14.9,27.6-27.1,48-28.1c19.6-1,30.9,5.7,56.3,31.5l-2.8,5.2c-1.8,3.4-0.8,7.7,1.2,9.7 - c0,0,1.5,1.6,12.1,12.4l-97.2,93.2c-16.2,14.3-15.3,40.5-0.3,56c15.2,15.2,41.1,16.3,55.2-0.2l91.4-98.6 - c49.1,52.3,93.3,107.4,93.3,107.4c2,2,5.2,2,7.1,0l49.9-50.7c2-2,2-5.2,0-7.3c0,0-55.2-45.7-107-96.2l35.5-38.3 - c3.3-3.7,7.9-5.2,13.3-4.1c1.5,0.3,3.1,1,4.5,1.7c32.4,10.2,67.8,5.2,94-19.8c0.8-0.7,1.5-1.5,2.3-2.3c18.1-18.4,23.7-36.4,25-53.8 - C464.7,163.5,460.2,143.8,450,138.3z"/> -</svg> diff --git a/admin/bower_components/Ionicons/src/share.svg b/admin/bower_components/Ionicons/src/share.svg deleted file mode 100644 index f0e1266..0000000 --- a/admin/bower_components/Ionicons/src/share.svg +++ /dev/null @@ -1,11 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" style="enable-background:new 0 0 512 512;" xml:space="preserve"> -<g> - <path d="M352,377.9H102.4V198.2h57.5c0,0,14.1-19.7,42.7-38.2H83.2c-10.6,0-19.2,8.5-19.2,19.1v217.9c0,10.5,8.6,19.1,19.2,19.1 - h288c10.6,0,19.2-8.5,19.2-19.1V288L352,319.4V377.9z M320,224v63.9l128-95.5L320,96v59.7C165.2,155.7,160,320,160,320 - C203.8,248.5,236,224,320,224z"/> -</g> -</svg> diff --git a/admin/bower_components/Ionicons/src/shuffle.svg b/admin/bower_components/Ionicons/src/shuffle.svg deleted file mode 100644 index 039ee28..0000000 --- a/admin/bower_components/Ionicons/src/shuffle.svg +++ /dev/null @@ -1,11 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" style="enable-background:new 0 0 512 512;" xml:space="preserve"> -<path d="M370.1,181.3H399v47.3l81-83.2L399,64v54h-28.9c-82.7,0-129.4,61.9-170.6,116.5c-37,49.1-69,95.4-120.6,95.4H32v63.3h46.9 - c82.7,0,129.4-65.8,170.6-120.4C286.5,223.7,318.4,181.3,370.1,181.3z M153.2,217.5c3.5-4.6,7.1-9.3,10.7-14.1 - c8.8-11.6,18-23.9,28-36.1c-29.6-27.9-65.3-48.5-113-48.5H32v63.3c0,0,13.3-0.6,46.9,0C111.4,182.8,131.8,196.2,153.2,217.5z - M399,330.4h-28.9c-31.5,0-55.7-15.8-78.2-39.3c-2.2,3-4.5,6-6.8,9c-9.9,13.1-20.5,27.2-32.2,41.1c30.4,29.9,67.2,52.5,117.2,52.5 - H399V448l81-81.4l-81-83.2V330.4z"/> -</svg> diff --git a/admin/bower_components/Ionicons/src/skip-backward.svg b/admin/bower_components/Ionicons/src/skip-backward.svg deleted file mode 100644 index 065d344..0000000 --- a/admin/bower_components/Ionicons/src/skip-backward.svg +++ /dev/null @@ -1,15 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" style="enable-background:new 0 0 512 512;" xml:space="preserve"> -<style type="text/css"> -<![CDATA[ - .st0{fill:#010101;} -]]> -</style> -<path class="st0" d="M75.7,96h8.1c6.7,0,12.2,5,12.2,11.7v113.5L283.1,98.7c2.5-1.7,5.1-2.3,8.1-2.3c8.3,0,15.4,7,15.4,17v63.1 - l118.5-78.2c2.5-1.7,5-2.3,8.1-2.3c8.3,0,14.9,7.4,14.9,17.4v286c0,10-6.7,16.5-15,16.5c-3.1,0-5.4-1.2-8.2-2.9l-118.3-77.6v64 - c0,10-7.2,16.5-15.5,16.5c-3.1,0-5.5-1.2-8.2-2.9L96,290.8v113c0,6.7-5.4,12.2-12.2,12.2h-8.1c-6.7,0-11.7-5.5-11.7-12.2V107.7 - C64,101,68.9,96,75.7,96z"/> -</svg> diff --git a/admin/bower_components/Ionicons/src/skip-forward.svg b/admin/bower_components/Ionicons/src/skip-forward.svg deleted file mode 100644 index e563a04..0000000 --- a/admin/bower_components/Ionicons/src/skip-forward.svg +++ /dev/null @@ -1,15 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" style="enable-background:new 0 0 512 512;" xml:space="preserve"> -<style type="text/css"> -<![CDATA[ - .st0{fill:#010101;} -]]> -</style> -<path class="st0" d="M436.3,96h-8.1c-6.7,0-12.2,5-12.2,11.7v113.5L228.9,98.7c-2.5-1.7-5.1-2.3-8.1-2.3c-8.3,0-15.4,7-15.4,17v63.1 - L86.9,98.3c-2.5-1.7-5.1-2.3-8.1-2.3c-8.3,0-14.9,7.4-14.9,17.4v286c0,10,6.7,16.5,15,16.5c3.1,0,5.4-1.2,8.2-2.9l118.3-77.6v64 - c0,10,7.2,16.5,15.5,16.5c3.1,0,5.5-1.2,8.2-2.9L416,290.8v113c0,6.7,5.4,12.2,12.2,12.2h8.1c6.7,0,11.7-5.5,11.7-12.2V107.7 - C448,101,443.1,96,436.3,96z"/> -</svg> diff --git a/admin/bower_components/Ionicons/src/social-android-outline.svg b/admin/bower_components/Ionicons/src/social-android-outline.svg deleted file mode 100644 index 3cb896b..0000000 --- a/admin/bower_components/Ionicons/src/social-android-outline.svg +++ /dev/null @@ -1,29 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" style="enable-background:new 0 0 512 512;" xml:space="preserve"> -<g> - <g> - <path d="M352,208v60.5V357h-22.5H313v15.5V424c0,4.4-3,7.9-7.3,8l0,0l-0.1,0c-0.1,0-0.2,0-0.3,0c-1.6,0-3.1-0.6-4.3-1.6l-0.1-0.1 - l-0.4-0.1c-2-1.6-3.4-4-3.4-6.2v-51.5V357h-15.5h-49H216v15.5V424c0,4.4-3.6,8-8,8s-8-3.6-8-8v-51.5V357h-15.5H160v-88.6V208H352 - M368,192H144v76.4V358c0,6.9,5.5,15,12.4,15H184v51c0,13.3,10.7,24,24,24s24-10.7,24-24v-51h49v51c0,7.5,3.9,14.2,9.3,18.6 - c3.9,3.4,9.3,5.4,15,5.4c0.1,0,0.3,0,0.4,0c0.1,0-0.3,0-0.2,0c13.3,0,23.6-10.7,23.6-24v-51h28.6c7,0,10.4-8.1,10.4-14.9v-89.6 - V192L368,192z"/> - <path d="M408,192c4.4,0,8,3.6,8,8v96c0,4.4-3.6,8-8,8s-8-3.6-8-8v-96C400,195.6,403.6,192,408,192 M408,176c-13.3,0-24,10.7-24,24 - v96c0,13.3,10.7,24,24,24s24-10.7,24-24v-96C432,186.7,421.3,176,408,176L408,176z"/> - <path d="M104,192c4.4,0,8,3.6,8,8v96c0,4.4-3.6,8-8,8s-8-3.6-8-8v-96C96,195.6,99.6,192,104,192 M104,176c-13.3,0-24,10.7-24,24 - v96c0,13.3,10.7,24,24,24s24-10.7,24-24v-96C128,186.7,117.3,176,104,176L104,176z"/> - </g> - <g> - <path d="M255,94.3l0.9,0h0h0c14.2,0,27.3,1.9,38.8,5.6l10,4.4c28.7,12.6,39.9,37.4,44.4,55.7H162.8c4.4-18.6,15.6-43.6,44.1-56 - l10.3-4.5C228.5,96.1,241.2,94.3,255,94.3 M185.4,64c-0.5,0-1.2,0.2-1.8,0.8c-1.1,0.8-1.7,1.8-1.3,2.5l18.3,22.1 - c-48.2,20.9-55.4,71.7-56.4,86.7h223.6c-1.1-15-8.2-65.1-56.6-86.4l18.5-22.2c0.4-0.5-0.2-1.7-1.3-2.6c-0.7-0.5-1.5-0.8-2-0.8 - c-0.3,0-0.5,0.1-0.7,0.3l-19.2,22.7c-13.6-5.4-30.2-8.8-50.6-8.8c-0.3,0-0.6,0-1,0c-20,0-36.4,3.3-49.8,8.5l-19-22.5 - C186.1,64.1,185.8,64,185.4,64L185.4,64z"/> - </g> -</g> -<path d="M206.6,138.9c-7.4,0-13.5-6-13.5-13.3c0-7.3,6-13.3,13.5-13.3c7.4,0,13.5,6,13.5,13.3C220.1,132.9,214.1,138.9,206.6,138.9z - "/> -<path d="M305,138.9c-7.4,0-13.5-6-13.5-13.3c0-7.3,6-13.3,13.5-13.3c7.4,0,13.5,6,13.5,13.3C318.5,132.9,312.4,138.9,305,138.9z"/> -</svg> diff --git a/admin/bower_components/Ionicons/src/social-android.svg b/admin/bower_components/Ionicons/src/social-android.svg deleted file mode 100644 index 37681c0..0000000 --- a/admin/bower_components/Ionicons/src/social-android.svg +++ /dev/null @@ -1,22 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" style="enable-background:new 0 0 512 512;" xml:space="preserve"> -<g> - <g> - <path d="M144,268.4V358c0,6.9,4.5,14,11.4,14H184v52c0,13.3,10.7,24,24,24s24-10.7,24-24v-52h49v52c0,7.5,3.4,14.2,8.8,18.6 - c3.9,3.4,9.1,5.4,14.7,5.4c0.1,0,0.2,0,0.3,0c0.1,0,0.1,0,0.2,0c13.3,0,24-10.7,24-24v-52h27.6c7,0,11.4-7.1,11.4-13.9v-89.6V192 - H144V268.4z"/> - <path d="M408,176c-13.3,0-24,10.7-24,24v96c0,13.3,10.7,24,24,24s24-10.7,24-24v-96C432,186.7,421.3,176,408,176z"/> - <path d="M104,176c-13.3,0-24,10.7-24,24v96c0,13.3,10.7,24,24,24s24-10.7,24-24v-96C128,186.7,117.3,176,104,176z"/> - </g> - <g> - <path d="M311.2,89.1l18.5-21.9c0.4-0.5-0.2-1.6-1.3-2.5c-1.1-0.8-2.4-1-2.7-0.4l-19.2,22.8c-13.6-5.4-30.2-8.8-50.6-8.8 - c-20.5-0.1-37.2,3.2-50.8,8.5l-19-22.4c-0.4-0.5-1.6-0.4-2.7,0.4c-1.1,0.8-1.7,1.8-1.3,2.5l18.3,21.6 - c-48.2,20.9-55.4,72.2-56.4,87.2h223.6C366.7,161,359.6,110.4,311.2,89.1z M206.8,138.9c-7.4,0-13.5-6-13.5-13.3 - c0-7.3,6-13.3,13.5-13.3c7.4,0,13.5,6,13.5,13.3C220.3,132.9,214.3,138.9,206.8,138.9z M305.2,138.9c-7.4,0-13.5-6-13.5-13.3 - c0-7.3,6-13.3,13.5-13.3c7.4,0,13.5,6,13.5,13.3C318.7,132.9,312.6,138.9,305.2,138.9z"/> - </g> -</g> -</svg> diff --git a/admin/bower_components/Ionicons/src/social-angular-outline.svg b/admin/bower_components/Ionicons/src/social-angular-outline.svg deleted file mode 100644 index 8124cc7..0000000 --- a/admin/bower_components/Ionicons/src/social-angular-outline.svg +++ /dev/null @@ -1,11 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" enable-background="new 0 0 512 512" xml:space="preserve"> -<g> - <path d="M255.982,64l187.967,69.105l-39.17,230.389l-148.881,79.949l-148.812-80.051L68.031,133.11L255.982,64 M255.981,32L32,112 - l46.12,272L256,480l177.75-96L480,112L255.981,32L255.981,32z"/> - <path d="M344,352h40L256,72L128,352h40l26.584-56h122.827L344,352z M213.573,256l42.419-89.356L298.419,256H213.573z"/> -</g> -</svg> diff --git a/admin/bower_components/Ionicons/src/social-angular.svg b/admin/bower_components/Ionicons/src/social-angular.svg deleted file mode 100644 index 9ed830a..0000000 --- a/admin/bower_components/Ionicons/src/social-angular.svg +++ /dev/null @@ -1,11 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" enable-background="new 0 0 512 512" xml:space="preserve"> -<g> - <polygon points="213.573,256 298.419,256 255.992,166.644 "/> - <path d="M255.981,32L32,112l46.12,272L256,480l177.75-96L480,112L255.981,32z M344,352l-26.589-56H194.584L168,352h-40L256,72 - l128,280H344z"/> -</g> -</svg> diff --git a/admin/bower_components/Ionicons/src/social-apple-outline.svg b/admin/bower_components/Ionicons/src/social-apple-outline.svg deleted file mode 100644 index aecaec8..0000000 --- a/admin/bower_components/Ionicons/src/social-apple-outline.svg +++ /dev/null @@ -1,20 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" style="enable-background:new 0 0 512 512;" xml:space="preserve"> -<g> - <path d="M333.6,169.9c16.3,0,33.2,7.4,47.4,20.4c-9.9,8.5-17.9,18.7-23.7,30.2c-8,16-11.6,34.3-10.2,52.7 - c1.3,18.7,7.6,36.6,18,51.8c8,11.6,18.2,21.2,30,28.3c-5,10.7-9.2,18.4-16.8,30.5c-8.4,13.1-30.5,48-52,48.2l-0.4,0 - c-7.4,0-12.2-2.2-19.3-5.6c-10-4.7-22.3-10.6-43.4-10.6l-0.6,0c-21.1,0.1-33.8,5.9-43.9,10.6c-7.4,3.4-12.3,5.7-19.9,5.7l-0.4,0 - c-19.6-0.2-37.5-24.3-50.8-45.2c-19.3-30.4-31.7-65.6-34.9-99.1c-2.9-30.5,2-58.5,13.5-76.7c8-12.7,18.5-23.3,30.4-30.6 - c11.2-6.8,23-10.4,34.2-10.4c12.4,0,22.7,3.8,33.7,7.8c11.5,4.2,23.5,8.6,37.7,8.6c13.6,0,24.3-4.2,34.6-8.2 - C308,173.9,318.2,169.9,333.6,169.9 M333.6,153.9c-33.6,0-47.8,16.5-71.2,16.5c-24,0-42.3-16.4-71.4-16.4 - c-28.5,0-58.9,17.9-78.2,48.4c-27.1,43-22.5,124,21.4,193c15.7,24.7,36.7,52.4,64.2,52.7c0.2,0,0.3,0,0.5,0 - c23.9,0,31-16.1,63.9-16.3c0.2,0,0.3,0,0.5,0c32.4,0,38.9,16.2,62.7,16.2c0.2,0,0.3,0,0.5,0c27.5-0.3,49.6-31,65.3-55.6 - c11.3-17.7,15.5-26.6,24.2-46.6c-63.5-24.8-73.7-117.4-10.9-152.9C385.9,168.2,359,153.9,333.6,153.9L333.6,153.9z"/> - <path d="M309.9,84.5c-2.7,14.9-10.5,26.8-14.6,32.2c-7.4,9.8-18,17.4-28.8,21.1c0.5-3,1.3-6.1,2.4-9.2c3.5-10.2,8.9-18.2,12.8-23.1 - C288.8,96.7,299.3,89.1,309.9,84.5 M326.2,64c-20,1.4-43.3,14.5-57,31.6c-12.4,15.5-22.6,38.5-18.6,60.8c0.5,0,1,0,1.6,0 - c21.3,0,43.1-13.2,55.8-30.1C320.3,110.2,329.6,87.4,326.2,64L326.2,64z"/> -</g> -</svg> diff --git a/admin/bower_components/Ionicons/src/social-apple.svg b/admin/bower_components/Ionicons/src/social-apple.svg deleted file mode 100644 index 68ab648..0000000 --- a/admin/bower_components/Ionicons/src/social-apple.svg +++ /dev/null @@ -1,14 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" style="enable-background:new 0 0 512 512;" xml:space="preserve"> -<g> - <path d="M333.6,153.9c-33.6,0-47.8,16.5-71.2,16.5c-24,0-42.3-16.4-71.4-16.4c-28.5,0-58.9,17.9-78.2,48.4 - c-27.1,43-22.5,124,21.4,193c15.7,24.7,36.7,52.4,64.2,52.7c0.2,0,0.3,0,0.5,0c23.9,0,31-16.1,63.9-16.3c0.2,0,0.3,0,0.5,0 - c32.4,0,38.9,16.2,62.7,16.2c0.2,0,0.3,0,0.5,0c27.5-0.3,49.6-31,65.3-55.6c11.3-17.7,15.5-26.6,24.2-46.6 - c-63.5-24.8-73.7-117.4-10.9-152.9C385.9,168.2,359,153.9,333.6,153.9L333.6,153.9z"/> - <path d="M326.2,64c-20,1.4-43.3,14.5-57,31.6c-12.4,15.5-22.6,38.5-18.6,60.8c0.5,0,1,0,1.6,0c21.3,0,43.1-13.2,55.8-30.1 - C320.3,110.2,329.6,87.4,326.2,64L326.2,64z"/> -</g> -</svg> diff --git a/admin/bower_components/Ionicons/src/social-bitcoin-outline.svg b/admin/bower_components/Ionicons/src/social-bitcoin-outline.svg deleted file mode 100644 index e06895c..0000000 --- a/admin/bower_components/Ionicons/src/social-bitcoin-outline.svg +++ /dev/null @@ -1,27 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" style="enable-background:new 0 0 512 512;" xml:space="preserve"> -<g> - <path d="M279.7,48v47v15.1l15.1,0.8c16.9,0.9,28.8,3.3,40.7,7.9c13.8,5.3,24.2,12.6,31.1,21.7c5.7,7.6,9,19.4,10,36.2 - c0.6,8.8-1,17.1-2.6,22c-1.5,4.4-5.3,11.3-11.1,16.4c-5.4,4.8-8.6,6.7-12.3,8.4l-42.1,19.3l45,10.8c7.4,1.8,14,4.4,21.4,8.5 - c13.2,7.3,18,15.1,21.2,22.5c2.9,6.7,4.6,22.2,3.9,36.2c-0.7,13.4-4.4,31.5-12.6,42.3c-8.6,11.2-21.3,20.1-37.8,26.3 - c-13.6,5.1-31.1,8.1-54.5,9.3l-15.2,0.7v15.2V464h-8v-48v-16h-16H224h-16v16v48h-9v-48v-16h-16h-67.2l3-16h12.8 - c8.6,0,12.1-0.4,17.5-3c0.2-0.1,0.4-0.2,0.7-0.3c8.1-3.7,11-10.6,12.2-13.6c0.1-0.3,0.3-0.7,0.3-0.8c2.9-5.9,3-13.1,3-24.4v-178 - c0-11.7-0.1-13.6-3.1-19.5c-2.9-5.8-7.3-10.1-13.4-13c-5.9-2.8-13.2-3.4-24.5-3.4h-12.9v-16h71.6h16V96V48h9v48v16h16h31.8h16V96 - V48H279.7 M295.7,32h-39.9v64H224V32h-40.9v64H96v48h28.4c8.7,0,14.5,0.3,17.6,1.8c3.1,1.5,4.7,3.3,6,5.8c1.3,2.5,1.4,3.1,1.4,12.3 - v178c0,9-0.1,14.7-0.9,17.6c-1.2,2.7-2.2,5.2-5.3,6.6c-3.1,1.4-2.9,1.9-11.6,1.9h-27.4L96,416h87.1v64H224v-64h31.8v64h39.9v-65.4 - c26-1.3,44.4-4.7,59.3-10.3c19.3-7.2,34.3-17.7,44.9-31.5c10.5-13.8,15-34.9,15.9-51.2c0.8-14.5-0.7-33.2-5.2-43.4 - c-5-11.5-12.7-21.6-28.1-30.1c-8.1-4.5-16.1-7.8-25.4-10c5.4-2.5,9.9-5.4,16.3-11c7.5-6.6,13-15.7,15.6-23.3 - c2.6-7.5,4.1-18,3.5-28.2c-1.1-16.8-4.4-33.1-13.2-44.8c-8.8-11.7-21.7-20.7-38.1-27c-12.6-4.8-25.5-7.8-45.5-8.9V32L295.7,32z"/> - <g> - <polygon points="256,150 224,150 224,224 256,224 256,150 "/> - <path d="M256,272h-32v90h32V272L256,272z"/> - <path d="M296,153.9v65.6c6-2.9,9.5-6.8,13.3-11.7c4.6-6,7-12.9,7-20.7c0-8.1-2.4-15-6.7-20.8C305.7,161.2,302,156.4,296,153.9 - L296,153.9z"/> - <path d="M296,273.6v82.8c2-0.6,3.8-0.8,5.8-1.6c9.8-3.8,15.8-7.9,23.6-14.7c7.5-6.6,9.7-15.9,9.7-26.6c0-9.1-3.3-16.9-7.9-23.2 - c-4.6-6.3-11.7-9.9-19.4-13.2C304.1,275.4,301,274.4,296,273.6L296,273.6z"/> - </g> -</g> -</svg> diff --git a/admin/bower_components/Ionicons/src/social-bitcoin.svg b/admin/bower_components/Ionicons/src/social-bitcoin.svg deleted file mode 100644 index e31622f..0000000 --- a/admin/bower_components/Ionicons/src/social-bitcoin.svg +++ /dev/null @@ -1,14 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" style="enable-background:new 0 0 512 512;" xml:space="preserve"> -<path d="M410.5,279.2c-5-11.5-12.7-21.6-28.1-30.1c-8.2-4.5-16.1-7.8-25.4-10c5.4-2.5,10-5.4,16.3-11c7.5-6.6,13.1-15.7,15.6-23.3 - c2.6-7.5,4.1-18,3.5-28.2c-1.1-16.8-4.4-33.1-13.2-44.8c-8.8-11.7-21.2-20.7-37.6-27c-12.6-4.8-25.5-7.8-45.5-8.9V32h-40v64h-32V32 - h-41v64H96v48h27.9c8.7,0,14.6,0.8,17.6,2.3c3.1,1.5,5.3,3.5,6.5,6c1.3,2.5,1.9,8.4,1.9,17.5V343c0,9-0.6,14.8-1.9,17.4 - c-1.3,2.6-2,4.9-5.1,6.3c-3.1,1.4-3.2,1.3-11.8,1.3h-26.4L96,416h87v64h41v-64h32v64h40v-64.4c26-1.3,44.5-4.7,59.4-10.3 - c19.3-7.2,34.1-17.7,44.7-31.5c10.6-13.8,14.9-34.9,15.8-51.2C416.6,308.1,415,289.4,410.5,279.2z M224,150h32v74h-32V150z M224,362 - v-90h32v90H224z M296,153.9c6,2.5,9.9,7.5,13.8,12.7c4.3,5.7,6.5,13.3,6.5,21.4c0,7.8-2.9,14.5-7.5,20.5c-3.8,4.9-6.8,8.3-12.8,11.1 - V153.9z M324.8,340.6c-7.8,6.9-12.3,10.1-22.1,13.8c-2,0.8-4.7,1.4-6.7,1.9v-82.8c5,0.8,7.6,1.8,11.3,3.4 - c7.8,3.3,15.2,6.9,19.8,13.2c4.6,6.3,8,15.6,8,24.7C335.1,325.7,332.3,334,324.8,340.6z"/> -</svg> diff --git a/admin/bower_components/Ionicons/src/social-buffer-outline.svg b/admin/bower_components/Ionicons/src/social-buffer-outline.svg deleted file mode 100644 index b6bef7d..0000000 --- a/admin/bower_components/Ionicons/src/social-buffer-outline.svg +++ /dev/null @@ -1,24 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" style="enable-background:new 0 0 512 512;" xml:space="preserve"> -<g> - <g> - <path d="M70.7,164.5l169.2,81.7c4.4,2.1,10.3,3.2,16.1,3.2s11.7-1.1,16.1-3.2l169.2-81.7c8.9-4.3,8.9-11.3,0-15.6L272.1,67.2 - c-4.4-2.1-10.3-3.2-16.1-3.2s-11.7,1.1-16.1,3.2L70.7,148.9C61.8,153.2,61.8,160.2,70.7,164.5z M246.8,81.6 - c1.6-0.8,4.9-1.6,9.2-1.6c4.3,0,7.5,0.8,9.2,1.6l155.5,75.1l-155.5,75.1c-1.6,0.8-4.9,1.6-9.2,1.6c-4.3,0-7.5-0.8-9.2-1.6 - L91.3,156.7L246.8,81.6z"/> - <path d="M441.3,248.2c0,0-30.9-14.9-35-16.9s-5.2-1.9-9.5,0.1s-124.8,60.2-124.8,60.2c-4.5,2.1-10.3,3.2-16.1,3.2 - s-11.7-1.1-16.1-3.2c0,0-117.3-56.6-122.8-59.3c-6-2.9-7.7-2.9-13.1-0.3c-5.6,2.7-33.4,16.1-33.4,16.1c-8.9,4.3-8.9,11.3,0,15.6 - l169.2,81.7c4.4,2.1,10.3,3.2,16.1,3.2s11.7-1.1,16.1-3.2l169.2-81.7C450.2,259.5,450.2,252.5,441.3,248.2z M265.2,331.1 - c-1.6,0.8-4.9,1.6-9.2,1.6c-4.3,0-7.5-0.8-9.2-1.6L91.3,256l18.9-9.1l122.7,59.3c6.4,3.1,14.6,4.8,23.1,4.8s16.6-1.7,23.1-4.8 - l122.7-59.3l18.9,9.1L265.2,331.1z"/> - </g> - <path d="M441.3,347.5c0,0-30.9-14.9-35-16.9s-5.2-1.9-9.5,0.1S272.1,391,272.1,391c-4.5,2.1-10.3,3.2-16.1,3.2s-11.7-1.1-16.1-3.2 - c0,0-117.3-56.6-122.8-59.3c-6-2.9-7.7-2.9-13.1-0.3c-5.6,2.7-33.4,16.1-33.4,16.1c-8.9,4.3-8.9,11.3,0,15.6l169.2,81.7 - c4.4,2.2,10.3,3.2,16.1,3.2s11.7-1.1,16.1-3.2l169.2-81.7C450.2,358.8,450.2,351.8,441.3,347.5z M265.2,430.4 - c-1.6,0.8-4.9,1.6-9.2,1.6c-4.3,0-7.5-0.8-9.2-1.6L91.3,355.3l18.9-9.1l122.7,59.3c6.4,3.1,14.6,4.8,23.1,4.8s16.6-1.7,23.1-4.8 - l122.7-59.3l18.9,9.1L265.2,430.4z"/> -</g> -</svg> diff --git a/admin/bower_components/Ionicons/src/social-buffer.svg b/admin/bower_components/Ionicons/src/social-buffer.svg deleted file mode 100644 index 595b141..0000000 --- a/admin/bower_components/Ionicons/src/social-buffer.svg +++ /dev/null @@ -1,18 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" style="enable-background:new 0 0 512 512;" xml:space="preserve"> -<g> - <g> - <path d="M70.7,164.5l169.2,81.7c4.4,2.1,10.3,3.2,16.1,3.2s11.7-1.1,16.1-3.2l169.2-81.7c8.9-4.3,8.9-11.3,0-15.6L272.1,67.2 - c-4.4-2.1-10.3-3.2-16.1-3.2s-11.7,1.1-16.1,3.2L70.7,148.9C61.8,153.2,61.8,160.2,70.7,164.5z"/> - <path d="M441.3,248.2c0,0-30.9-14.9-35-16.9s-5.2-1.9-9.5,0.1s-124.8,60.2-124.8,60.2c-4.5,2.1-10.3,3.2-16.1,3.2 - s-11.7-1.1-16.1-3.2c0,0-117.3-56.6-122.8-59.3c-6-2.9-7.7-2.9-13.1-0.3c-5.6,2.7-33.4,16.1-33.4,16.1c-8.9,4.3-8.9,11.3,0,15.6 - l169.2,81.7c4.4,2.1,10.3,3.2,16.1,3.2s11.7-1.1,16.1-3.2l169.2-81.7C450.2,259.5,450.2,252.5,441.3,248.2z"/> - </g> - <path d="M441.3,347.5c0,0-30.9-14.9-35-16.9s-5.2-1.9-9.5,0.1S272.1,391,272.1,391c-4.5,2.1-10.3,3.2-16.1,3.2s-11.7-1.1-16.1-3.2 - c0,0-117.3-56.6-122.8-59.3c-6-2.9-7.7-2.9-13.1-0.3c-5.6,2.7-33.4,16.1-33.4,16.1c-8.9,4.3-8.9,11.3,0,15.6l169.2,81.7 - c4.4,2.2,10.3,3.2,16.1,3.2s11.7-1.1,16.1-3.2l169.2-81.7C450.2,358.8,450.2,351.8,441.3,347.5z"/> -</g> -</svg> diff --git a/admin/bower_components/Ionicons/src/social-chrome-outline.svg b/admin/bower_components/Ionicons/src/social-chrome-outline.svg deleted file mode 100644 index 161af4d..0000000 --- a/admin/bower_components/Ionicons/src/social-chrome-outline.svg +++ /dev/null @@ -1,17 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" enable-background="new 0 0 512 512" xml:space="preserve"> -<g id="Icon"> - <g> - <path d="M256,32C132.8,32,32,132.8,32,256s100.8,224,224,224s224-100.8,224-224S379.2,32,256,32z M256,76.799 - c66.084,0,124.315,35.843,154.558,89.602H256c-43.685,0-79.517,31.358-87.358,71.684l-53.758-92.969 - C147.358,103.685,198.884,76.799,256,76.799z M323.2,256c0,36.957-30.243,67.2-67.2,67.2s-67.2-30.243-67.2-67.2 - s30.243-67.2,67.2-67.2S323.2,219.043,323.2,256z M76.799,256c0-32.484,8.958-62.716,24.644-89.6L178.715,300.8l0,0 - c15.685,26.885,43.685,44.8,77.285,44.8c10.085,0,20.157-2.241,29.116-5.6l-53.758,92.958C144,421.758,76.799,346.715,76.799,256z - M256,435.201L333.285,300.8l0,0c7.831-13.442,12.314-28,12.314-44.8c0-26.885-12.314-50.399-31.358-67.2h107.517 - c8.957,21.284,13.443,43.685,13.443,67.2C435.201,354.557,354.557,435.201,256,435.201z"/> - </g> -</g> -</svg> diff --git a/admin/bower_components/Ionicons/src/social-chrome.svg b/admin/bower_components/Ionicons/src/social-chrome.svg deleted file mode 100644 index 7ee33d6..0000000 --- a/admin/bower_components/Ionicons/src/social-chrome.svg +++ /dev/null @@ -1,22 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" enable-background="new 0 0 512 512" xml:space="preserve"> -<g> - <path d="M188.8,255.925c0,36.946,30.243,67.178,67.2,67.178s67.199-30.231,67.199-67.178c0-36.945-30.242-67.179-67.199-67.179 - S188.8,218.98,188.8,255.925z"/> - <path d="M476.752,217.795c-0.009,0.005-0.016,0.038-0.024,0.042c-1.701-9.877-4.04-19.838-6.989-28.838h-0.107 - c2.983,9,5.352,19,7.072,29h-0.002c-1.719-10-4.088-20-7.07-29h-155.39c19.044,17,31.358,40.175,31.358,67.052 - c0,16.796-4.484,31.284-12.314,44.724L231.044,478.452c0,0-0.009,0.264-0.014,0.264l-0.01,0.284c0.005,0,0.009,0,0.015,0 - l-0.005-0.262c8.203,0.92,16.531,1.262,24.97,1.262c6.842,0,13.609-0.393,20.299-1.002c10.135-0.911,20.077-2.519,29.777-4.733 - C405.68,451.525,480,362.404,480,255.941C480,242.942,478.879,230.188,476.752,217.795z"/> - <path d="M256,345.496c-33.601,0-61.601-17.91-77.285-44.785L76.006,123.047l-0.137-0.236 - c-10.293,13.896-19.015,29.022-25.903,45.123C38.407,194.945,32,224.686,32,255.925c0,62.695,25.784,119.36,67.316,160.009 - c29.342,28.719,66.545,49.433,108.088,58.619l0.029-0.051l77.683-134.604C276.157,343.256,266.085,345.496,256,345.496z"/> - <path d="M91.292,104.575l77.35,133.25C176.483,197.513,212.315,166,256,166h205.172c-6.921-15-15.594-30.324-25.779-43.938 - c0.039,0.021,0.078,0.053,0.117,0.074C445.644,135.712,454.278,151,461.172,166h0.172c-6.884-15-15.514-30.38-25.668-43.99 - c-0.115-0.06-0.229-0.168-0.342-0.257C394.475,67.267,329.359,32,256,32c-26.372,0-51.673,4.569-75.172,12.936 - c-34.615,12.327-65.303,32.917-89.687,59.406l0.142,0.243C91.286,104.581,91.289,104.578,91.292,104.575z"/> -</g> -</svg> diff --git a/admin/bower_components/Ionicons/src/social-codepen-outline.svg b/admin/bower_components/Ionicons/src/social-codepen-outline.svg deleted file mode 100644 index a76d023..0000000 --- a/admin/bower_components/Ionicons/src/social-codepen-outline.svg +++ /dev/null @@ -1,26 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" enable-background="new 0 0 512 512" xml:space="preserve"> -<g> - <path fill-rule="evenodd" clip-rule="evenodd" d="M387.547,203.724c-41.135-27.326-82.225-54.721-123.261-82.195 - c-5.844-3.912-11.12-3.802-16.938,0.095c-40.785,27.313-81.818,54.546-122.724,81.676c-5.103,3.384-7.624,7.575-7.624,13.716 - v79.729c0,6.174,2.484,10.342,7.594,13.73c40.906,27.13,81.841,54.361,122.625,81.676c5.81,3.891,11.131,4.055,16.984,0.137 - c41.035-27.474,82.145-54.873,123.286-82.188c4.858-3.226,7.511-7.309,7.511-13.094v-80.623 - C395,210.667,392.225,206.83,387.547,203.724z M268,152.484l93.055,62.218l-39.751,26.467c-0.919,0.603-2.923,0.604-3.839,0 - c-15.944-10.501-31.816-21.113-47.627-31.815c-1.033-0.699-1.828-2.319-1.838-3.52V152.484z M244,152.765v51.706 - c-0.024,1.825-1.313,4.316-2.799,5.334c-15.258,10.451-30.655,20.701-46.109,30.86c-1.17,0.77-3.547,1.148-4.566,0.485 - c-13.116-8.531-26.087-17.284-39.787-26.443C181.967,193.889,244,152.765,244,152.765z M141,237.116l29.622,19.771L141,276.725 - V237.116z M244,361.317c0,0-62.034-41.412-93.196-62.187l38.871-26.154c2.072-1.442,3.473-1.344,5.502,0.029 - c15.32,10.36,30.74,20.572,46.062,30.93c1.208,0.815,2.749,2.371,2.761,3.596V361.317z M258.949,282.892 - c-1.824,1.108-4.512,1.046-6.26-0.111l-38.842-25.865c0,0,17.108-11.493,25.356-17.023c4.701-3.152,9.346-6.393,14.164-9.355 - c1.132-0.696,3.532-0.97,4.743-0.168c5.773,3.829,39.854,26.53,39.854,26.53L258.949,282.892z M268,361.102v-51.346 - c-0.026-2.871,0.449-4.602,2.861-6.189c15.198-10.006,30.332-20.11,45.386-30.332c2.335-1.586,3.92-1.623,6.265-0.019 - l38.527,25.882L268,361.102z M370,276.676l-29.59-19.743L370,237.06V276.676z"/> - <path d="M256,64c51.285,0,99.5,19.972,135.765,56.235C428.028,156.5,448,204.715,448,256s-19.972,99.5-56.235,135.765 - C355.5,428.028,307.285,448,256,448s-99.5-19.972-135.765-56.235C83.972,355.5,64,307.285,64,256s19.972-99.5,56.235-135.765 - C156.5,83.972,204.715,64,256,64 M256,32C132.288,32,32,132.288,32,256s100.288,224,224,224s224-100.288,224-224S379.712,32,256,32 - L256,32z"/> -</g> -</svg> diff --git a/admin/bower_components/Ionicons/src/social-codepen.svg b/admin/bower_components/Ionicons/src/social-codepen.svg deleted file mode 100644 index 5f56bfb..0000000 --- a/admin/bower_components/Ionicons/src/social-codepen.svg +++ /dev/null @@ -1,26 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" enable-background="new 0 0 512 512" xml:space="preserve"> -<g> - <path d="M241.239,303.936c-15.322-10.357-30.742-20.569-46.062-30.93c-2.03-1.373-3.43-1.472-5.502-0.029l-38.871,26.154 - C181.966,319.905,244,361.317,244,361.317v-53.786C243.988,306.307,242.447,304.751,241.239,303.936z"/> - <path d="M195.092,240.666c15.454-10.16,30.851-20.409,46.109-30.86c1.486-1.018,2.775-3.509,2.799-5.334v-51.706 - c0,0-62.033,41.124-93.262,61.942c13.7,9.159,26.671,17.913,39.787,26.443C191.545,241.813,193.921,241.435,195.092,240.666z"/> - <path d="M269.838,209.354c15.811,10.703,31.683,21.314,47.627,31.815c0.916,0.604,2.92,0.602,3.839,0l39.751-26.467L268,152.484 - v53.35C268.01,207.035,268.805,208.655,269.838,209.354z"/> - <path d="M258.109,230.369c-1.21-0.802-3.611-0.528-4.743,0.168c-4.817,2.962-9.463,6.203-14.164,9.355 - c-8.248,5.53-25.356,17.023-25.356,17.023l38.842,25.865c1.748,1.157,4.436,1.22,6.26,0.111l39.014-25.993 - C297.963,256.898,263.883,234.197,258.109,230.369z"/> - <polygon points="141,237.116 141,276.725 170.622,256.887 "/> - <path d="M256,32C132.288,32,32,132.288,32,256s100.288,224,224,224s224-100.288,224-224S379.712,32,256,32z M395,297.006 - c0,5.785-2.652,9.868-7.511,13.094c-41.142,27.314-82.251,54.714-123.286,82.188c-5.854,3.918-11.174,3.754-16.984-0.137 - c-40.783-27.314-81.719-54.546-122.625-81.676c-5.11-3.389-7.594-7.557-7.594-13.73v-79.729c0-6.141,2.521-10.332,7.624-13.716 - c40.906-27.13,81.939-54.363,122.724-81.676c5.818-3.896,11.094-4.007,16.938-0.095c41.036,27.474,82.126,54.869,123.261,82.195 - c4.678,3.106,7.453,6.943,7.453,12.66V297.006z"/> - <path d="M316.247,273.234c-15.054,10.222-30.188,20.326-45.386,30.332c-2.412,1.588-2.888,3.318-2.861,6.189v51.346l93.039-62.004 - l-38.527-25.882C320.167,271.611,318.582,271.648,316.247,273.234z"/> - <polygon points="370,276.676 370,237.06 340.41,256.933 "/> -</g> -</svg> diff --git a/admin/bower_components/Ionicons/src/social-css3-outline.svg b/admin/bower_components/Ionicons/src/social-css3-outline.svg deleted file mode 100644 index 37c25cf..0000000 --- a/admin/bower_components/Ionicons/src/social-css3-outline.svg +++ /dev/null @@ -1,12 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" enable-background="new 0 0 512 512" xml:space="preserve"> -<g> - <path d="M354.676,366.898l-98.608,28.125l-98.458-28.248L150.864,289h48.253l3.433,39.563l53.586,15.163l0.132,0.273h0.034 - l53.467-14.852L315.381,265H203l-4-50h120.646l4.396-51H140l-4-49h240.58L354.676,366.898z"/> - <path d="M64,32l34.936,403.301L255.769,480l157.245-44.705L448,32H64z M383.041,410.51l-127.262,36.187l-126.867-36.169L98.896,64 - H413.1L383.041,410.51z"/> -</g> -</svg> diff --git a/admin/bower_components/Ionicons/src/social-css3.svg b/admin/bower_components/Ionicons/src/social-css3.svg deleted file mode 100644 index df8a1d0..0000000 --- a/admin/bower_components/Ionicons/src/social-css3.svg +++ /dev/null @@ -1,14 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" enable-background="new 0 0 512 512" xml:space="preserve"> -<g transform="translate(336 96)"> - <g id="icon-css3"> - <path d="M-79.718,243.488L-79.718,243.488z"/> - <path d="M-272-64l34.946,403.219L-80.233,384l157.259-44.85L112-64H-272z M18.676,270.898l-98.607,28.125l-98.458-28.248 - L-185.136,193h48.253l3.433,39.562l53.586,15.163l0.132,0.273h0.034l53.467-14.852L-20.619,169H-133l-4-50h120.646l4.396-51H-196 - l-4-49H40.58L18.676,270.898z"/> - </g> -</g> -</svg> diff --git a/admin/bower_components/Ionicons/src/social-designernews-outline.svg b/admin/bower_components/Ionicons/src/social-designernews-outline.svg deleted file mode 100644 index 82b6323..0000000 --- a/admin/bower_components/Ionicons/src/social-designernews-outline.svg +++ /dev/null @@ -1,18 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" style="enable-background:new 0 0 512 512;" xml:space="preserve"> -<g> - <polygon points="290.9,145.9 226.5,96 291.1,198.8 "/> - <g> - <path d="M32.5,260"/> - <path d="M329,96v80.3V260h-35.9l-63.2-98l1.7,98H191V152.9l-37.1-29.1c1,1.2,2.1,2.4,3,3.6c10,13.8,15,30.7,15,50.5 - c0,48.9-30.5,82-76.8,82H32l200.1,156H480V214.7L329,96z M464,400H237.7L78.6,276h16.5c13.5,0,26.2-2.7,37.7-7.4 - c11.5-4.7,21.4-11.8,29.8-20.7c4.8-5.1,9.4-11,12.4-17.1v28.7V276h16.2h40.4H248l-0.3-16.5l-0.7-41.9l32.6,50.7l4.7,7.6h8.8h36.8 - H345v-16.5v-83.1v-47l0.2,0.3L464,222.4V400z"/> - </g> - <path d="M90.6,150.4c11,0,23.7,3.2,23.7,28.8c0,6.9-1,16.3-6,21.8c-3.6,3.9-9.6,6-17.7,6H87v-57h3 M90.7,134H71v89h19.5 - c26,0,39.9-15.6,39.9-43.9C130.4,150.3,116.1,134,90.7,134L90.7,134z"/> -</g> -</svg> diff --git a/admin/bower_components/Ionicons/src/social-designernews.svg b/admin/bower_components/Ionicons/src/social-designernews.svg deleted file mode 100644 index a8edefc..0000000 --- a/admin/bower_components/Ionicons/src/social-designernews.svg +++ /dev/null @@ -1,18 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" style="enable-background:new 0 0 512 512;" xml:space="preserve"> -<g> - <g> - <polygon points="290.4,145 227,96 290.6,198.2 "/> - </g> - <g> - <path d="M329,96v79.6V259h-36.4l-63.2-98.6l1.7,98.6H191V152l-37.3-29.3c1,1.2,2,2.4,2.9,3.7c10,13.9,15,30.5,15,50.5 - c0,49.2-30.6,82.1-76.9,82.1H32v0.4L231.6,416H480V214.1L329,96z"/> - </g> - <g> - <path d="M129.9,178.1c0-29-14.2-45.1-39.7-45.1H71v89h19C116,222,129.9,206.6,129.9,178.1z"/> - </g> -</g> -</svg> diff --git a/admin/bower_components/Ionicons/src/social-dribbble-outline.svg b/admin/bower_components/Ionicons/src/social-dribbble-outline.svg deleted file mode 100644 index 92477c8..0000000 --- a/admin/bower_components/Ionicons/src/social-dribbble-outline.svg +++ /dev/null @@ -1,15 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" style="enable-background:new 0 0 512 512;" xml:space="preserve"> -<path d="M256,64C150,64,64,150,64,256c0,106.1,86,192,192,192s192-85.9,192-192C448,150,362,64,256,64z M377.9,152.5 - c21.6,25.4,35.3,57.6,37.7,92.9c-34.6-1.8-76-1.8-109.2,1.3c-4.2-10.6-8.5-21-13.2-31C331.5,199.1,361,177.3,377.9,152.5z M256,96 - c38.8,0,74.4,13.8,102.1,36.8c-17.4,22-44.7,41.1-78.7,55.6c-18.6-34.4-40-64-62.8-87.3C229.3,97.9,242.4,96,256,96z M183.6,113.5 - c23.1,23,44.8,52.3,63.8,86.6c-36.1,11-77.5,17.3-121.7,17.3c-8.4,0-16.6-0.3-24.7-0.8C112.5,171.5,143,134.1,183.6,113.5z - M96.3,248.4c9.1,0.4,18.3,0.6,27.6,0.5c50.4-0.6,97.3-8.5,137.6-21.4c3.8,7.9,7.4,16,10.8,24.3c-5.5,1.3-10.4,2.7-14.3,4.3 - c-55.1,23.1-98.5,60.4-122,105.5c-24.8-28.2-40-65.1-40-105.6C96,253.4,96.1,250.9,96.3,248.4z M256,416c-37,0-71-12.6-98.1-33.7 - c21.3-42.2,59.3-77.1,107.2-98.8c4.5-2.1,10.5-3.8,17.4-5.3c5.7,15.8,10.8,32.2,15.3,49.2c6.9,26.5,11.8,52.7,14.8,78.1 - C295,412.2,276,416,256,416z M342.5,390.5c-3-25.7-7.9-52.1-14.9-78.9c-3.4-13-7.3-25.6-11.5-37.9c31.4-2.6,69-2.2,98.9,0 - C409.6,322.8,382,365,342.5,390.5z"/> -</svg> diff --git a/admin/bower_components/Ionicons/src/social-dribbble.svg b/admin/bower_components/Ionicons/src/social-dribbble.svg deleted file mode 100644 index 8cfe974..0000000 --- a/admin/bower_components/Ionicons/src/social-dribbble.svg +++ /dev/null @@ -1,26 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" style="enable-background:new 0 0 512 512;" xml:space="preserve"> -<g> - <g> - <path d="M256,64C150,64,64,150,64,256c0,106.1,86,192,192,192s192-85.9,192-192C448,150,362,64,256,64z M256,415.5 - c-88.1,0-159.5-71.4-159.5-159.5c0-88.1,71.4-159.5,159.5-159.5c88.1,0,159.5,71.4,159.5,159.5C415.5,344.1,344.1,415.5,256,415.5 - z"/> - </g> - <g> - <path d="M306.3,246.7c23.4-2.2,50.9-2.9,77.2-2.4c-2.3-25.4-12-48.7-27-67.6c-16.5,14.9-38,28.1-63.3,39 - C297.8,225.7,302.1,236.1,306.3,246.7z"/> - <path d="M335.4,155.6C313.6,138.3,286,128,256,128c-5.1,0-10.2,0.3-15.2,0.9c13.8,17.7,26.7,37.6,38.6,59.5 - C301.1,179.2,320,168.1,335.4,155.6z"/> - <path d="M205.9,138.2c-34.1,14.5-60.7,43.4-72,79.1c41.1-0.7,79.6-7,113.4-17.3C234.7,177,220.7,156.3,205.9,138.2z"/> - <path d="M383,272.2c-22.3-0.6-46-0.2-66.9,1.5c4.1,12.3,8.1,24.9,11.5,37.9c3.8,14.6,7,29.1,9.6,43.4 - C361.8,334.7,378.8,305.4,383,272.2z"/> - <path d="M258,256.1c3.9-1.6,8.8-3,14.3-4.3c-3.4-8.3-7.1-16.4-10.8-24.3c-39.1,12.6-84.6,20.3-133.3,21.3 - c-0.1,2.4-0.2,4.8-0.2,7.3c0,29.1,9.7,55.9,26,77.4C178.9,301,214.9,274.2,258,256.1z"/> - <path d="M282.6,278.2c-6.9,1.5-12.9,3.2-17.4,5.3c-37.1,16.8-68.3,41.6-90.4,71.5c22.1,18.2,50.4,29,81.2,29 - c18.5,0,36-3.9,51.8-10.9c-2.7-15.1-6-30.3-10-45.7C293.4,310.5,288.2,294,282.6,278.2z"/> - </g> -</g> -</svg> diff --git a/admin/bower_components/Ionicons/src/social-dropbox-outline.svg b/admin/bower_components/Ionicons/src/social-dropbox-outline.svg deleted file mode 100644 index 7f0f67b..0000000 --- a/admin/bower_components/Ionicons/src/social-dropbox-outline.svg +++ /dev/null @@ -1,13 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" style="enable-background:new 0 0 512 512;" xml:space="preserve"> -<g> - <path d="M177,77.1L64,151l78.3,63L256,143.2L177,77.1z M91.4,153.3l84.5-56.8l52.9,46L143.4,195L91.4,153.3z"/> - <path d="M369.8,213L256,284.1l79,66.1l19-12.6v20.2L256,417l-98-58.5V338l19,12.2l79-66.1L142.2,213L64,276.3l78,51.5v39.4 - l114,67.8l114-68.5v-39.2l78-51.2L369.8,213z M143.4,230.9l85.4,55.4l-52.9,44.1l-84.5-55.8L143.4,230.9z M283.2,286.3l85.4-55.4 - l52.1,43.6l-84.5,55.8L283.2,286.3z"/> - <path d="M448,151L335,77.1l-79,66.1l113.8,70.8L448,151z M283.2,142.6l52.9-46l84.5,56.8L368.6,195L283.2,142.6z"/> -</g> -</svg> diff --git a/admin/bower_components/Ionicons/src/social-dropbox.svg b/admin/bower_components/Ionicons/src/social-dropbox.svg deleted file mode 100644 index df15e20..0000000 --- a/admin/bower_components/Ionicons/src/social-dropbox.svg +++ /dev/null @@ -1,13 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" style="enable-background:new 0 0 512 512;" xml:space="preserve"> -<g> - <polygon points="177,77 64,150.9 142.1,213.6 256,143.1 "/> - <polygon points="64,276.3 177,350.2 256,284.1 142.1,213.6 "/> - <polygon points="256,284.1 335,350.2 448,276.3 369.9,213.6 "/> - <polygon points="448,150.9 335,77 256,143.1 369.9,213.6 "/> - <polygon points="256.2,298.3 176.4,364.3 142,342.1 142,367 256,435 370,367 370,342.1 335.8,364.3 "/> -</g> -</svg> diff --git a/admin/bower_components/Ionicons/src/social-euro-outline.svg b/admin/bower_components/Ionicons/src/social-euro-outline.svg deleted file mode 100644 index 91fcf4a..0000000 --- a/admin/bower_components/Ionicons/src/social-euro-outline.svg +++ /dev/null @@ -1,19 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" enable-background="new 0 0 512 512" xml:space="preserve"> -<g> - <path d="M310.143,64c31.337,0,59.096,2.607,88.137,8.364l-5.06,34.148c-29.405-4.319-55.659-6.429-79.853-6.429 - c-35.025,0-58.535,6.153-74.129,19.365C220.142,135.627,218,158.428,218,174.17v2.33V193h15.867h120.184l-2.383,16H233.867H218 - v15.5v48V289h15.867h105.885l-2.384,16H233.867H218v15.5v12.33c0,19.546,2.338,44.061,21.084,60.274 - c15.042,13.01,37.921,18.812,74.258,18.812c24.534,0,50.197-2.055,79.771-6.42l5.014,34.138 - c-29.031,5.759-56.741,8.366-87.977,8.366c-52.591,0-91.43-9.08-115.565-26.987C172.615,404.711,162,380.361,162,346.57V320.5V305 - h-16.133H112v-16h33.867H162v-16.5v-48V209h-16.133H112v-16h33.867H162v-16.5v-11.07c0-33.791,10.613-58.142,32.582-74.442 - C218.715,73.08,257.552,64,310.143,64 M310.209,48C195.479,48,146,89.225,146,165.43V177H96v48h50v48H96v48h50v25.57 - C146,422.774,195.481,464,310.211,464c35.25,0,67.777-3.123,105.789-11.866l-9.411-64.96c-37.323,6.244-66.942,8.742-93.206,8.742 - c-64.275,0-79.383-18.739-79.383-63.086V321h117.162l7.148-48H234v-48h131.461l7.149-48H234v-2.83 - c0-35.92,15.159-58.086,79.434-58.086c26.264,0,55.959,2.498,93.281,8.742L416,60C377.988,51.257,345.458,48,310.209,48L310.209,48 - z"/> -</g> -</svg> diff --git a/admin/bower_components/Ionicons/src/social-euro.svg b/admin/bower_components/Ionicons/src/social-euro.svg deleted file mode 100644 index 7609507..0000000 --- a/admin/bower_components/Ionicons/src/social-euro.svg +++ /dev/null @@ -1,12 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" enable-background="new 0 0 512 512" xml:space="preserve"> -<g> - <path d="M234,272v-48h131.094l7.149-48H234v-1.83c0-35.92,14.975-58.086,79.25-58.086c26.264,0,55.867,2.498,93.189,8.742 - L416,59.866C377.988,51.123,345.306,48,310.057,48C195.326,48,146,89.225,146,165.43V176H96v48h50v48H96v48h50v26.57 - C146,422.774,195.297,464,310.027,464c35.25,0,67.848-3.123,105.859-11.866l-9.619-64.96c-37.322,6.244-66.781,8.742-93.045,8.742 - c-64.276,0-79.223-18.739-79.223-63.086V320h116.795l7.148-48H234z"/> -</g> -</svg> diff --git a/admin/bower_components/Ionicons/src/social-facebook-outline.svg b/admin/bower_components/Ionicons/src/social-facebook-outline.svg deleted file mode 100644 index d50fae4..0000000 --- a/admin/bower_components/Ionicons/src/social-facebook-outline.svg +++ /dev/null @@ -1,9 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" style="enable-background:new 0 0 512 512;" xml:space="preserve"> -<path d="M288,192v-38.1c0-17.2,3.8-25.9,30.5-25.9H352V64h-55.9c-68.5,0-91.1,31.4-91.1,85.3V192h-45v64h45v192h83V256h56.4l7.6-64 - H288z M330.2,240h-41.1H272v15.5V432h-51V255.5V240h-14.9H176v-32h30.1H221v-16.5v-42.2c0-24.5,5.4-41.2,15.5-51.8 - C247.7,85.5,267.6,80,296.1,80H336v32h-17.5c-12,0-27.5,1.1-37.1,11.7c-8.1,9-9.4,20.1-9.4,30.1v37.6V208h17.1H334L330.2,240z"/> -</svg> diff --git a/admin/bower_components/Ionicons/src/social-facebook.svg b/admin/bower_components/Ionicons/src/social-facebook.svg deleted file mode 100644 index ae3d5ed..0000000 --- a/admin/bower_components/Ionicons/src/social-facebook.svg +++ /dev/null @@ -1,8 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" style="enable-background:new 0 0 512 512;" xml:space="preserve"> -<path d="M288,192v-38.1c0-17.2,3.8-25.9,30.5-25.9H352V64h-55.9c-68.5,0-91.1,31.4-91.1,85.3V192h-45v64h45v192h83V256h56.4l7.6-64 - H288z"/> -</svg> diff --git a/admin/bower_components/Ionicons/src/social-foursquare-outline.svg b/admin/bower_components/Ionicons/src/social-foursquare-outline.svg deleted file mode 100644 index 43959e1..0000000 --- a/admin/bower_components/Ionicons/src/social-foursquare-outline.svg +++ /dev/null @@ -1,22 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" enable-background="new 0 0 512 512" xml:space="preserve"> -<g> - <path d="M398.484,164.452l-27.399,137.185C372.848,294.486,386.545,224.793,398.484,164.452z"/> - <path d="M376.764,32c0,0-205.353,0-238.223,0C105.666,32,96,56.798,96,72.414c0,15.627,0,379.64,0,379.64 - c0,17.591,9.425,24.117,14.718,26.267c5.299,2.155,19.916,3.971,28.673-6.168c0,0,112.469-131.09,114.4-133.027 - c2.921-2.931,2.921-3.125,5.844-3.125c5.843,0,49.192,0,72.766,0c30.575,0,35.49-21.676,38.684-34.559l27.399-137.087 - c6.074-30.702,11.693-58.938,15.053-75.325C421.143,51.944,411.744,32,376.764,32z M376.426,96c0,0-31.575,156.209-36.034,176.834 - C335,297.771,332.75,304,307,304c-17.605,0-62.375,0-62.375,0c-2.747,0-3.868-0.147-6.049,2.041 - c-1.443,1.447-78.168,89.562-78.168,89.562c-19.034,23.396-26.909,31.795-29.033,31.795s-3.375,0-3.375-38.408V91.708 - C128,67.034,128.3,64,157.198,64C181.748,64,352,64,352,64C382,64,382.834,64.833,376.426,96z"/> - <path d="M398.484,164.452l15.053-75.374C410.178,105.466,404.559,133.75,398.484,164.452z"/> - <path d="M328.573,96c-5.571,0-157.995,0-157.995,0C164.091,96,160,101.594,160,106.586v231.255c0,0.67,0.402,0.975,0.935,0.36 - c0,0,48.202-55.725,54.056-63.021c5.848-7.289,8.491-8.182,17.233-8.182c0,0,56.695,0,62.212,0c6.549,0,10.24-5.75,10.913-8.982 - c0.671-3.228,10.536-48.213,11.732-54.119c1.191-5.897-4.214-11.898-9.722-11.898c-5.5,0-64.805,0-64.805,0 - c-7.803,0-7.554-5.653-7.554-13.476v-5.512c0-7.815-0.282-13.012,7.516-13.012c0,0,70.403,0,75.313,0 - c4.911,0,10.208-4.442,11.102-8.662l8.468-44.042C338.739,100.823,333.828,96,328.573,96z"/> -</g> -</svg> diff --git a/admin/bower_components/Ionicons/src/social-foursquare.svg b/admin/bower_components/Ionicons/src/social-foursquare.svg deleted file mode 100644 index 840febf..0000000 --- a/admin/bower_components/Ionicons/src/social-foursquare.svg +++ /dev/null @@ -1,20 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" enable-background="new 0 0 512 512" xml:space="preserve"> -<g> - <g> - <path d="M376.764,32c0,0-205.353,0-238.223,0C105.666,32,96,56.798,96,72.414c0,15.627,0,379.64,0,379.64 - c0,17.591,9.425,24.117,14.718,26.267c5.299,2.155,19.916,3.971,28.673-6.168c0,0,112.469-130.895,114.4-132.834 - c2.921-2.93,2.921-2.93,5.844-2.93c5.844,0,49.192,0,72.767,0c30.574,0,35.49-21.869,38.684-34.752 - c2.659-10.789,32.489-163.962,42.452-212.559C421.143,51.993,411.745,32,376.764,32z M371.086,301.637 - c2.659-10.789,32.489-163.962,42.452-212.559 M362.692,96.67l-9.999,51.734c-1.195,5.65-8.287,11.595-14.863,11.595 - c-6.575,0-95.917,0-95.917,0C231.473,160,224,166.138,224,176.602v13.448c0,10.473,7.519,17.894,17.965,17.894 - c0,0,74.482,0,81.848,0c7.374,0,14.61,8.109,13.016,16.005c-1.602,7.908-9.086,46.569-9.984,50.89 - c-0.902,4.328-5.845,11.725-14.611,11.725c-7.388,0-64.269,0-64.269,0c-11.705,0-15.244,1.533-23.074,11.293 - c-7.837,9.77-78.256,94.592-78.256,94.592c-0.713,0.822-1.41,0.584-1.41-0.312V95.896c0-6.684,5.793-14.523,14.479-14.523 - c0,0,183.713,0,191.173,0C357.912,81.372,364.488,88.004,362.692,96.67z"/> - </g> -</g> -</svg> diff --git a/admin/bower_components/Ionicons/src/social-freebsd-devil.svg b/admin/bower_components/Ionicons/src/social-freebsd-devil.svg deleted file mode 100644 index 4f7b5ed..0000000 --- a/admin/bower_components/Ionicons/src/social-freebsd-devil.svg +++ /dev/null @@ -1,22 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" style="enable-background:new 0 0 512 512;" xml:space="preserve"> -<style type="text/css"> -<![CDATA[ - .st0{fill:#010101;} -]]> -</style> -<path class="st0" d="M502.6,115c-22.5-43.7-58-51-58-51s15.5,32,16,51c0.4,16.1-5.5,28-27.2,33.5s-30.8-2-47.8-17.5 - S344,104.5,313,103c-40-2-77,9-77,9c-20-25,20-80,20-80c-74.5,29.5-93.7,83.3-96,113.7c-1.9,24.1,8.5,40.8,8.5,40.8s-0.5,27.8-5,42 - c-3.1,9.8-16.9,25-26,34.5c-12.2,12.7-12.5,38.5,0,57s44,27.5,67,39.5s31.5,21,31.5,21s1,8.3,0.5,15.3s-3.2,14-9,18.2 - c-5.5,3.9-15.5,0.5-20.5-2s-5-6.2-10.5-8s-7.3-4-6.5-11s2-9-3.5-18.5s-18.5-9.5-29.5-8s-17.3,6.8-17.3,6.8l-16.3-10 - c0,0,8.5-15.6,5.2-35.6c-7.3-43.8-50-62.8-50-62.8l10.4,44.4c0,0,1.1-2.6,6.4-6.4s8.1-3.6,8.1-3.6s6.6,7.6,9.1,25.3 - c2.5,18-6.7,27.2-6.7,27.2l-28.3-18l1-14.5L39.8,309L56,345.7l15-4l24,22.7c0,0-15.7,11.7-33,11.7c-11,0-22-6-22-6s-1.4-1-0.8-5.5 - c0.7-5,6.8-12.5,6.8-12.5H0c0,0,27.3,38.7,65,38.7c31,0,44.2-12.5,44.2-12.5L128,397c0,0,3,5.5,0,7s-7,3.5-9,15s18,29,18,29 - c21.8,17.8,7,32,7,32h272c-9-13-22.5-18-32-32c0,0-44.8-58.4-1.8-90.4c57.4-42.7,42.8-69.4,41.2-101.4c0,0,31.8-6.6,59.3-33.6 - S521.6,151.8,502.6,115z M195,203c-16.9,4.5-22.5,35.5-22.5,35.5c1.5-63,57.5-93,65-89s-6.5,39-21,64 - C216.5,213.5,208.5,199.4,195,203z M232,218c0,0,18-56,37.5-59.5s41.5,21,41.5,62s-26,65.4-42.8,69.2c-16.5,3.8-23,2-23,2 - s27.5-21.6,23.5-56.8C265.9,210.2,237.3,210.7,232,218z"/> -</svg> diff --git a/admin/bower_components/Ionicons/src/social-github-outline.svg b/admin/bower_components/Ionicons/src/social-github-outline.svg deleted file mode 100644 index 4e0257a..0000000 --- a/admin/bower_components/Ionicons/src/social-github-outline.svg +++ /dev/null @@ -1,24 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" style="enable-background:new 0 0 512 512;" xml:space="preserve"> -<path d="M256,32C132.3,32,32,134.9,32,261.7c0,101.5,64.2,187.5,153.2,217.9c1.4,0.3,2.6,0.4,3.8,0.4c8.3,0,11.5-6.1,11.5-11.4 - c0-5.5-0.2-19.9-0.3-39.1c-8.4,1.9-15.9,2.7-22.6,2.7c-43.1,0-52.9-33.5-52.9-33.5c-10.2-26.5-24.9-33.6-24.9-33.6 - c-19.5-13.7-0.1-14.1,1.4-14.1c0.1,0,0.1,0,0.1,0c22.5,2,34.3,23.8,34.3,23.8c11.2,19.6,26.2,25.1,39.6,25.1c10.5,0,20-3.4,25.6-6 - c2-14.8,7.8-24.9,14.2-30.7c-49.7-5.8-102-25.5-102-113.5c0-25.1,8.7-45.6,23-61.6c-2.3-5.8-10-29.2,2.2-60.8c0,0,1.6-0.5,5-0.5 - c8.1,0,26.4,3.1,56.6,24.1c17.9-5.1,37-7.6,56.1-7.7c19,0.1,38.2,2.6,56.1,7.7c30.2-21,48.5-24.1,56.6-24.1c3.4,0,5,0.5,5,0.5 - c12.2,31.6,4.5,55,2.2,60.8c14.3,16.1,23,36.6,23,61.6c0,88.2-52.4,107.6-102.3,113.3c8,7.1,15.2,21.1,15.2,42.5 - c0,30.7-0.3,55.5-0.3,63c0,5.4,3.1,11.5,11.4,11.5c1.2,0,2.6-0.1,4-0.4C415.9,449.2,480,363.1,480,261.7C480,134.9,379.7,32,256,32z - M177.6,448.1c2.2,0,4.4-0.1,6.7-0.2c0,2.8,0,5.5,0.1,7.9c0,2.4,0,4.6,0.1,6.5c-15.6-5.8-30.3-13.5-44.1-23 - C150.2,444.6,162.5,448.1,177.6,448.1z M189,375.2c-0.8,2.2-1.5,4.5-2.1,6.9c-3.4,1-7.5,1.8-11.7,1.8c-10.9,0-19-5.4-25.6-16.9 - c-2.4-4.6-6.8-10.7-12.9-16.3C153.5,364.8,173,371.6,189,375.2z M379,434.1c-15.8,11.9-33,21.3-51,28.2c0-1.9,0-4.1,0-6.5 - c0-11.9,0-29.8,0-50.4c0-12.4-2.1-22.5-5-30.5c37.2-8.3,92-33.7,92-125.4c0-24.6-7.1-46.5-21.2-65.1c3.1-12.9,5.5-35.6-5.1-63 - l-2.7-7.1l-7.2-2.4c-1.5-0.5-4.8-1.3-10-1.3c-11.5,0-30.9,4.1-59.5,22.8c-17-4.2-34.8-6.4-53.1-6.4H256h-0.1 - c-18.3,0-36.2,2.2-53.1,6.4c-28.6-18.7-48-22.8-59.5-22.8c-5.2,0-8.5,0.9-10,1.4l-7.2,2.4l-2.7,7.1c-10.6,27.5-8.2,50.2-5.1,63 - c-14.1,18.7-21.2,40.6-21.2,65.1c0,49.6,16,79.9,36.6,98.5c-8.1-6.6-18.6-12.1-31.2-13H102h-0.5h-0.3c-13.1,0-22.3,5.4-25.2,14.7 - c-4.7,14.8,9.8,25,14.6,28.4l0.5,0.6l1.5,0.6c1.6,1,10.1,7,16.9,24.5c2,6.2,6.3,14.5,13.6,22.2c-13.1-11.2-24.8-24-34.9-38.1 - C61.9,351.2,48,307.5,48,261.7c0-28.9,5.5-56.9,16.4-83.3c10.5-25.5,25.5-48.3,44.7-67.9c19.1-19.6,41.4-35,66.1-45.7 - C200.8,53.7,228,48,256,48s55.2,5.6,80.8,16.7c24.8,10.7,47,26.1,66.1,45.7c19.1,19.6,34.2,42.5,44.7,67.9 - c10.9,26.4,16.4,54.4,16.4,83.3c0,45.8-13.8,89.5-40.1,126.3C411.3,405.6,396.2,421.1,379,434.1z"/> -</svg> diff --git a/admin/bower_components/Ionicons/src/social-github.svg b/admin/bower_components/Ionicons/src/social-github.svg deleted file mode 100644 index b271704..0000000 --- a/admin/bower_components/Ionicons/src/social-github.svg +++ /dev/null @@ -1,14 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" style="enable-background:new 0 0 512 512;" xml:space="preserve"> -<path d="M256,32C132.3,32,32,134.9,32,261.7c0,101.5,64.2,187.5,153.2,217.9c1.4,0.3,2.6,0.4,3.8,0.4c8.3,0,11.5-6.1,11.5-11.4 - c0-5.5-0.2-19.9-0.3-39.1c-8.4,1.9-15.9,2.7-22.6,2.7c-43.1,0-52.9-33.5-52.9-33.5c-10.2-26.5-24.9-33.6-24.9-33.6 - c-19.5-13.7-0.1-14.1,1.4-14.1c0.1,0,0.1,0,0.1,0c22.5,2,34.3,23.8,34.3,23.8c11.2,19.6,26.2,25.1,39.6,25.1c10.5,0,20-3.4,25.6-6 - c2-14.8,7.8-24.9,14.2-30.7c-49.7-5.8-102-25.5-102-113.5c0-25.1,8.7-45.6,23-61.6c-2.3-5.8-10-29.2,2.2-60.8c0,0,1.6-0.5,5-0.5 - c8.1,0,26.4,3.1,56.6,24.1c17.9-5.1,37-7.6,56.1-7.7c19,0.1,38.2,2.6,56.1,7.7c30.2-21,48.5-24.1,56.6-24.1c3.4,0,5,0.5,5,0.5 - c12.2,31.6,4.5,55,2.2,60.8c14.3,16.1,23,36.6,23,61.6c0,88.2-52.4,107.6-102.3,113.3c8,7.1,15.2,21.1,15.2,42.5 - c0,30.7-0.3,55.5-0.3,63c0,5.4,3.1,11.5,11.4,11.5c1.2,0,2.6-0.1,4-0.4C415.9,449.2,480,363.1,480,261.7C480,134.9,379.7,32,256,32z - "/> -</svg> diff --git a/admin/bower_components/Ionicons/src/social-google-outline.svg b/admin/bower_components/Ionicons/src/social-google-outline.svg deleted file mode 100644 index 4dfb138..0000000 --- a/admin/bower_components/Ionicons/src/social-google-outline.svg +++ /dev/null @@ -1,19 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" enable-background="new 0 0 512 512" xml:space="preserve"> -<g> - <path d="M319.408,82.141c11.779,9.576,36.43,29.718,36.43,68.043c0,37.295-21.547,54.934-43.094,71.545 - c-6.695,6.561-14.385,13.608-14.385,24.701c0,11.092,7.689,17.153,13.336,21.671l18.473,14.108 - c22.598,18.641,43.125,35.795,43.125,70.559c0,47.373-46.721,95.232-135.003,95.232c-74.428,0-110.343-34.766-110.343-72.061 - c0-18.139,9.245-43.827,39.525-61.48c31.798-19.142,74.952-21.657,98.023-23.172c-7.178-9.078-15.382-18.67-15.382-34.265 - c0-8.577,2.557-13.609,5.12-19.655c-5.648,0.5-11.283,1-16.42,1c-54.408,0-85.214-39.811-85.214-79.107 - c0-23.186,10.802-48.902,32.856-67.543C215.724,68.031,250.637,64,278.328,64h105.725l-32.846,18.141H319.408z M282.955,305.896 - c-4.137-0.501-6.684-0.501-11.793-0.501c-4.629,0-32.348,1.002-53.895,8.049c-11.3,4.046-44.146,16.125-44.146,51.918 - c0,35.78,35.393,61.467,90.339,61.467c49.283,0,75.432-23.156,75.432-54.404C338.893,346.707,321.971,333.113,282.955,305.896 - M297.834,210.148c11.824-11.592,12.844-27.73,12.844-36.793c0-36.281-22.086-92.73-64.671-92.73 - c-13.339,0-27.724,6.547-35.948,16.639c-8.722,10.593-11.284,24.188-11.284,37.281c0,33.764,20.005,89.727,64.163,89.727 - C275.764,224.271,289.594,218.212,297.834,210.148"/> -</g> -</svg> diff --git a/admin/bower_components/Ionicons/src/social-google.svg b/admin/bower_components/Ionicons/src/social-google.svg deleted file mode 100644 index 360427e..0000000 --- a/admin/bower_components/Ionicons/src/social-google.svg +++ /dev/null @@ -1,20 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" enable-background="new 0 0 512 512" xml:space="preserve"> -<g> - <path d="M325.862,275.558l-18.187-13.653l-0.063-0.051c-5.827-4.579-9.952-8.313-9.952-14.685c0-6.979,5.049-11.824,10.896-17.436 - l0.466-0.449c20.025-15.171,44.726-34.286,44.726-74.556c0-26.934-11.916-44.729-23.28-57.729h12.969l60.322-33H270.308 - c-25.324,0-62.68,3.225-94.561,28.576l-0.128,0.25c-21.809,18.111-34.828,44.584-34.828,70.691 - c0,21.197,8.706,42.159,23.885,57.447c21.428,21.579,48.302,26.127,67.074,26.127c1.462,0,2.956-0.028,4.47-0.093 - c-0.759,2.969-1.25,6.321-1.25,10.321c0,10.926,3.628,19.301,8.083,26.195c-23.963,1.932-58.148,6.477-84.897,22.278 - c-39.335,22.562-42.396,55.875-42.396,65.551c0,38.207,35.707,76.762,115.479,76.762c91.611,0,139.543-49.792,139.543-98.979 - C370.781,311.966,347.945,293.457,325.862,275.558z M200.485,139.894c0-13.359,3.02-23.457,9.255-30.9 - c6.514-7.852,18.18-13.129,29.028-13.129c19.881,0,32.938,15.008,40.388,27.598c9.199,15.539,14.913,36.095,14.913,53.643 - c0,4.942,0,19.983-10.188,29.796c-6.951,6.686-18.707,11.353-28.59,11.353c-20.503,0-33.453-14.705-40.707-27.041 - C204.189,173.53,200.485,153.109,200.485,139.894z M321.6,367.974c0,27.444-25.212,44.493-65.799,44.493 - c-48.058,0-80.347-20.603-80.347-51.265c0-26.14,21.54-36.789,37.8-42.521c18.944-6.064,44.297-7.305,50.062-7.305 - c3.907,0,6.087,0,8.683,0.229C308.7,336.816,321.6,347.733,321.6,367.974z"/> -</g> -</svg> diff --git a/admin/bower_components/Ionicons/src/social-googleplus-outline.svg b/admin/bower_components/Ionicons/src/social-googleplus-outline.svg deleted file mode 100644 index 6757ede..0000000 --- a/admin/bower_components/Ionicons/src/social-googleplus-outline.svg +++ /dev/null @@ -1,18 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" style="enable-background:new 0 0 512 512;" xml:space="preserve"> -<g> - <path d="M223.5,82.1c11.8,9.6,36.4,29.7,36.4,68c0,37.3-21.5,54.9-43.1,71.5c-6.7,6.6-14.4,13.6-14.4,24.7 - c0,11.1,7.7,17.2,13.3,21.7l18.5,14.1c22.6,18.6,43.1,35.8,43.1,70.6c0,47.4-46.7,95.2-135,95.2C67.9,448,32,413.2,32,375.9 - c0-18.1,9.2-43.8,39.5-61.5c31.8-19.1,75-21.7,98-23.2c-7.2-9.1-15.4-18.7-15.4-34.3c0-8.6,2.6-13.6,5.1-19.7 - c-5.6,0.5-11.3,1-16.4,1c-54.4,0-85.2-39.8-85.2-79.1c0-23.2,10.8-48.9,32.9-67.5C119.8,68,154.7,64,182.4,64h105.7l-32.8,18.1 - H223.5z M187,305.9c-4.1-0.5-6.7-0.5-11.8-0.5c-4.6,0-32.3,1-53.9,8c-11.3,4-44.1,16.1-44.1,51.9c0,35.8,35.4,61.5,90.3,61.5 - c49.3,0,75.4-23.2,75.4-54.4C242.9,346.7,226,333.1,187,305.9 M201.9,210.1c11.8-11.6,12.8-27.7,12.8-36.8 - c0-36.3-22.1-92.7-64.7-92.7c-13.3,0-27.7,6.5-35.9,16.6c-8.7,10.6-11.3,24.2-11.3,37.3c0,33.8,20,89.7,64.2,89.7 - C179.8,224.3,193.6,218.2,201.9,210.1"/> - <polygon points="480,142.3 401.7,142.3 401.7,64.1 384,64.1 384,142.3 304.3,142.3 304.3,160.1 384,160.1 384,241 401.7,241 - 401.7,160.1 480,160.1 "/> -</g> -</svg> diff --git a/admin/bower_components/Ionicons/src/social-googleplus.svg b/admin/bower_components/Ionicons/src/social-googleplus.svg deleted file mode 100644 index 4d38192..0000000 --- a/admin/bower_components/Ionicons/src/social-googleplus.svg +++ /dev/null @@ -1,17 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" style="enable-background:new 0 0 512 512;" xml:space="preserve"> -<g> - <path d="M242.1,275.6l-18.2-13.7l-0.1-0.1c-5.8-4.6-10-8.3-10-14.7c0-7,5-11.8,10.9-17.4l0.5-0.4c20-15.2,44.7-34.3,44.7-74.6 - c0-26.9-11.9-44.7-23.3-57.7h13L320,64H186.5c-25.3,0-62.7,3.2-94.6,28.6l-0.1,0.3C70,110.9,57,137.4,57,163.5 - c0,21.2,8.7,42.2,23.9,57.4c21.4,21.6,48.3,26.1,67.1,26.1c1.5,0,3,0,4.5-0.1c-0.8,3-1.2,6.3-1.2,10.3c0,10.9,3.6,19.3,8.1,26.2 - c-24,1.9-58.1,6.5-84.9,22.3C35.1,328.4,32,361.7,32,371.3c0,38.2,35.7,76.8,115.5,76.8c91.6,0,139.5-49.8,139.5-99 - C287,312,264.2,293.5,242.1,275.6z M116.7,139.9c0-13.4,3-23.5,9.3-30.9c6.5-7.9,18.2-13.1,29-13.1c19.9,0,32.9,15,40.4,27.6 - c9.2,15.5,14.9,36.1,14.9,53.6c0,4.9,0,20-10.2,29.8c-7,6.7-18.7,11.4-28.6,11.4c-20.5,0-33.5-14.7-40.7-27 - C120.4,173.5,116.7,153.1,116.7,139.9z M237.8,368c0,27.4-25.2,44.5-65.8,44.5c-48.1,0-80.3-20.6-80.3-51.3 - c0-26.1,21.5-36.8,37.8-42.5c18.9-6.1,44.3-7.3,50.1-7.3c3.9,0,6.1,0,8.7,0.2C224.9,336.8,237.8,347.7,237.8,368z"/> - <polygon points="402,142 402,64 368,64 368,142 288,142 288,176 368,176 368,257 402,257 402,176 480,176 480,142 "/> -</g> -</svg> diff --git a/admin/bower_components/Ionicons/src/social-hackernews-outline.svg b/admin/bower_components/Ionicons/src/social-hackernews-outline.svg deleted file mode 100644 index 4308352..0000000 --- a/admin/bower_components/Ionicons/src/social-hackernews-outline.svg +++ /dev/null @@ -1,12 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" style="enable-background:new 0 0 512 512;" xml:space="preserve"> -<g> - <path d="M416,96v320H96V96H416 M448,64H64v384h384V64L448,64z"/> - <g> - <path d="M296.7,159H342l-63.9,120v72h-39.9v-72L172,159h47.1l39.7,83.6L296.7,159z"/> - </g> -</g> -</svg> diff --git a/admin/bower_components/Ionicons/src/social-hackernews.svg b/admin/bower_components/Ionicons/src/social-hackernews.svg deleted file mode 100644 index 48f9a28..0000000 --- a/admin/bower_components/Ionicons/src/social-hackernews.svg +++ /dev/null @@ -1,9 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" style="enable-background:new 0 0 512 512;" xml:space="preserve"> -<g> - <path d="M64,64v384h384V64H64z M278,279v72h-40v-72l-66-120h47.1l39.7,83.6l38-83.6H342L278,279z"/> -</g> -</svg> diff --git a/admin/bower_components/Ionicons/src/social-html5-outline.svg b/admin/bower_components/Ionicons/src/social-html5-outline.svg deleted file mode 100644 index 6d3cca4..0000000 --- a/admin/bower_components/Ionicons/src/social-html5-outline.svg +++ /dev/null @@ -1,13 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" enable-background="new 0 0 512 512" xml:space="preserve"> -<g> - <path d="M64,32l34.936,403.301L255.769,480l157.245-44.705L448,32H64z M383.041,410.51l-127.262,36.187l-126.867-36.169L98.896,64 - H413.1L383.041,410.51z"/> - <polygon points="147.991,264 314.984,264 309.411,327.986 255.991,342.734 202.225,328.064 198.801,289 150.55,289 - 157.313,366.336 255.991,394.146 354.486,366.163 367.991,215 191.991,215 188,164 371.991,164 376.199,114.316 135.421,114.188 - "/> -</g> -</svg> diff --git a/admin/bower_components/Ionicons/src/social-html5.svg b/admin/bower_components/Ionicons/src/social-html5.svg deleted file mode 100644 index 3cc836d..0000000 --- a/admin/bower_components/Ionicons/src/social-html5.svg +++ /dev/null @@ -1,9 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" enable-background="new 0 0 512 512" xml:space="preserve"> -<path d="M64,32l34.936,403.213L255.769,480l157.245-44.854L448,32H64z M371.997,164h-184l3.991,51h176.008l-13.505,151.386 - l-98.5,28.094l-98.682-27.976L150.545,289h48.254l3.423,39.287l53.769,14.781l53.422-14.915L314.987,264H147.986l-12.571-149.589 - l240.789,0.016L371.997,164z"/> -</svg> diff --git a/admin/bower_components/Ionicons/src/social-instagram-outline.svg b/admin/bower_components/Ionicons/src/social-instagram-outline.svg deleted file mode 100644 index 231a34e..0000000 --- a/admin/bower_components/Ionicons/src/social-instagram-outline.svg +++ /dev/null @@ -1,12 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" enable-background="new 0 0 512 512" xml:space="preserve"> -<path fill="#231F20" d="M448.5,112c0-26.233-21.267-47.5-47.5-47.5H112c-26.233,0-47.5,21.267-47.5,47.5v289 - c0,26.233,21.267,47.5,47.5,47.5h289c26.233,0,47.5-21.267,47.5-47.5V112z M257,175.833c44.182,0,80,35.816,80,80s-35.818,80-80,80 - s-80-35.816-80-80S212.818,175.833,257,175.833z M416.5,160.5c0,8.836-7.163,16-16,16h-48c-8.837,0-16-7.164-16-16v-48 - c0-8.836,7.163-16,16-16h48c8.837,0,16,7.164,16,16V160.5z M401.5,416.5h-288c-8.822,0-17-8.178-17-17v-175h53.072 - c-3.008,10-4.572,20.647-4.572,31.583C145,286,156.65,314,177.805,335.154s49.279,32.741,79.195,32.741s58.041-11.681,79.195-32.835 - S369,286.016,369,256.099c0-10.936-1.563-21.599-4.572-31.599H416.5v175C416.5,408.322,410.322,416.5,401.5,416.5z"/> -</svg> diff --git a/admin/bower_components/Ionicons/src/social-instagram.svg b/admin/bower_components/Ionicons/src/social-instagram.svg deleted file mode 100644 index 570d2ca..0000000 --- a/admin/bower_components/Ionicons/src/social-instagram.svg +++ /dev/null @@ -1,18 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" enable-background="new 0 0 512 512" xml:space="preserve"> -<g> - <circle cx="256" cy="255.833" r="80"/> -</g> -<g> - <path d="M177.805,176.887c21.154-21.154,49.279-32.929,79.195-32.929s58.041,11.837,79.195,32.991 - c13.422,13.422,23.011,29.551,28.232,47.551H448.5v-113c0-26.51-20.49-47-47-47h-288c-26.51,0-49,20.49-49,47v113h85.072 - C154.794,206.5,164.383,190.309,177.805,176.887z M416.5,147.7c0,7.069-5.73,12.8-12.8,12.8h-38.4c-7.069,0-12.8-5.73-12.8-12.8 - v-38.4c0-7.069,5.73-12.8,12.8-12.8h38.4c7.069,0,12.8,5.73,12.8,12.8V147.7z"/> - <path d="M336.195,335.279c-21.154,21.154-49.279,32.679-79.195,32.679s-58.041-11.462-79.195-32.616 - c-21.115-21.115-32.759-49.842-32.803-78.842H64.5v143c0,26.51,22.49,49,49,49h288c26.51,0,47-22.49,47-49v-143h-79.502 - C368.955,285.5,357.311,314.164,336.195,335.279z"/> -</g> -</svg> diff --git a/admin/bower_components/Ionicons/src/social-javascript-outline.svg b/admin/bower_components/Ionicons/src/social-javascript-outline.svg deleted file mode 100644 index df1bd87..0000000 --- a/admin/bower_components/Ionicons/src/social-javascript-outline.svg +++ /dev/null @@ -1,27 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" enable-background="new 0 0 512 512" xml:space="preserve"> -<g transform="translate(384 48)"> - <g id="icon-javascript_1_1_"> - <path d="M-192,56.001v197.017c0,41.567-9.644,71.988-28.662,90.417c-17.06,16.53-42.061,24.565-76.431,24.565 - c-12.002,0-25.78-1.496-37.185-3.886l4.09-30.505c7.146,1.269,15.465,2.149,24.774,2.149c21.92,0,37.892-6.459,48.827-19.745 - C-245.27,302.268-240,282.085-240,252.499V56.001H-192 M-176,40.001h-80v212.498c0,52.58-18.032,67.261-49.412,67.261 - c-14.705,0-27.948-2.521-38.25-6.063L-352,375.904c14.7,5.062,37.259,8.096,54.907,8.096C-225.045,384-176,350.129-176,253.02 - V40.001L-176,40.001z"/> - <path d="M-1.537,48c24.458,0,45.898,3.146,65.1,9.585l-9.581,32.062C40.37,84.142,21.446,78.71-2.504,78.71 - c-18.607,0-34.462,4.584-45.849,13.256c-11.732,8.936-18.194,21.583-18.194,35.613c0,34.974,33.062,48.149,71.347,63.405 - l0.107,0.043l0.108,0.041c26.977,10.299,45.938,22.261,57.969,36.572C74.593,241.451,80,257.543,80,278.284 - c0,25.177-9.333,46.71-26.99,62.274C32.66,358.497,1.593,367.98-36.833,367.98c-28.052,0-54.698-6.427-72.615-13.979l7.593-31.603 - c17.579,7.248,41.882,14.382,69.438,14.382c20.28,0,36.629-4.478,48.591-13.306c12.807-9.45,19.857-23.697,19.857-40.119 - c0-15.348-6.041-27.922-18.469-38.444c-10.157-8.603-24.801-16.048-47.467-24.136c-26.86-9.904-47.359-21.947-60.934-35.795 - C-105.078,170.455-112,153.829-112,134.154c0-24.149,9.831-45.101,28.43-60.591C-63.49,56.839-35.124,48-1.537,48 M-1.537,32 - C-78.98,32-128,75.998-128,134.154c0,50.083,37.751,81.44,92.641,101.665c39.7,14.158,55.392,26.808,55.392,47.539 - c0,22.756-18.139,37.425-52.448,37.425c-31.863,0-60.789-10.64-80.394-21.255v-0.021L-128,362.727 - c18.639,10.638,53.441,21.255,91.167,21.255C53.854,383.98,96,335.43,96,278.284c0-48.55-26.958-79.9-85.278-102.163 - c-43.139-17.191-61.27-26.795-61.27-48.542c0-17.2,15.688-32.869,48.043-32.869c31.846,0,53.744,10.707,66.505,17.291l19.125-64 - C63.125,39.22,36.188,32-1.537,32L-1.537,32z"/> - </g> -</g> -</svg> diff --git a/admin/bower_components/Ionicons/src/social-javascript.svg b/admin/bower_components/Ionicons/src/social-javascript.svg deleted file mode 100644 index 0a20e9c..0000000 --- a/admin/bower_components/Ionicons/src/social-javascript.svg +++ /dev/null @@ -1,17 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" enable-background="new 0 0 512 512" xml:space="preserve"> -<g transform="translate(384 48)"> - <g id="icon-javascript_1_1_"> - <path d="M-176,40.001h-80v212.498c0,52.58-18.032,67.261-49.412,67.261c-14.705,0-27.948-2.521-38.25-6.063L-352,375.904 - c14.7,5.062,37.259,8.096,54.907,8.096C-225.045,384-176,350.129-176,253.02V40.001L-176,40.001z"/> - <path d="M-1.537,32C-78.98,32-128,75.998-128,134.154c0,50.083,37.751,81.44,92.641,101.665 - c39.7,14.158,55.392,26.808,55.392,47.539c0,22.756-18.139,37.425-52.448,37.425c-31.863,0-60.789-10.64-80.394-21.255v-0.021 - L-128,362.727c18.639,10.638,53.441,21.255,91.167,21.255C53.854,383.98,96,335.43,96,278.284c0-48.55-26.958-79.9-85.278-102.163 - c-43.139-17.191-61.27-26.795-61.27-48.542c0-17.2,15.688-32.869,48.043-32.869c31.846,0,53.744,10.707,66.505,17.291l19.125-64 - C63.125,39.22,36.188,32-1.537,32L-1.537,32z"/> - </g> -</g> -</svg> diff --git a/admin/bower_components/Ionicons/src/social-linkedin-outline.svg b/admin/bower_components/Ionicons/src/social-linkedin-outline.svg deleted file mode 100644 index 8c3dbc7..0000000 --- a/admin/bower_components/Ionicons/src/social-linkedin-outline.svg +++ /dev/null @@ -1,22 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" style="enable-background:new 0 0 512 512;" xml:space="preserve"> -<style type="text/css"> -<![CDATA[ - .st0{fill-rule:evenodd;clip-rule:evenodd;} -]]> -</style> -<g> - <g> - <path class="st0" d="M182.8,384V212.9h-54.9V384H182.8L182.8,384z M157.4,187c18.3,0,29.7-13.1,29.7-29.5 - c-0.3-16.7-11.4-29.5-29.4-29.5c-18,0-29.7,12.8-29.7,29.5c0,16.4,11.4,29.5,29,29.5H157.4L157.4,187z"/> - <path class="st0" d="M320.6,209c-29.1,0-41.6,16.4-49.6,27.8V213h-55v171h55v-97.4c0-5,0.4-10,1.9-13.5c4-10,13-20.3,28.2-20.3 - c19.9,0,27.9,15.3,27.9,37.7V384h55v-99.9C384,232.8,356.8,209,320.6,209z"/> - </g> - <path d="M417.2,64H96.8C79.3,64,64,76.6,64,93.9v321.1c0,17.4,15.3,32.9,32.8,32.9h320.3c17.6,0,30.8-15.6,30.8-32.9V93.9 - C448,76.6,434.7,64,417.2,64z M414,416c-1.1,0-313.1,0-314.9,0s-3.1-1.4-3.1-3.1S96,99.1,96,98s1-2,2-2s315,0,316,0s2,1,2,2 - c0,23.3,0,314.9,0,316C416,414.9,415.1,416,414,416z"/> -</g> -</svg> diff --git a/admin/bower_components/Ionicons/src/social-linkedin.svg b/admin/bower_components/Ionicons/src/social-linkedin.svg deleted file mode 100644 index 72cd823..0000000 --- a/admin/bower_components/Ionicons/src/social-linkedin.svg +++ /dev/null @@ -1,13 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" style="enable-background:new 0 0 512 512;" xml:space="preserve"> -<g> - <path d="M417.2,64H96.8C79.3,64,64,76.6,64,93.9v321.1c0,17.4,15.3,32.9,32.8,32.9h320.3c17.6,0,30.8-15.6,30.8-32.9V93.9 - C448,76.6,434.7,64,417.2,64z M183,384h-55V213h55V384z M157.4,187H157c-17.6,0-29-13.1-29-29.5c0-16.7,11.7-29.5,29.7-29.5 - c18,0,29,12.7,29.4,29.5C187.1,173.9,175.7,187,157.4,187z M384,384h-55v-93.5c0-22.4-8-37.7-27.9-37.7 - c-15.2,0-24.2,10.3-28.2,20.3c-1.5,3.6-1.9,8.5-1.9,13.5V384h-55V213h55v23.8c8-11.4,20.5-27.8,49.6-27.8 - c36.1,0,63.4,23.8,63.4,75.1V384z"/> -</g> -</svg> diff --git a/admin/bower_components/Ionicons/src/social-markdown.svg b/admin/bower_components/Ionicons/src/social-markdown.svg deleted file mode 100644 index fff5d36..0000000 --- a/admin/bower_components/Ionicons/src/social-markdown.svg +++ /dev/null @@ -1,14 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" enable-background="new 0 0 512 512" xml:space="preserve"> -<g transform="translate(96 48)"> - <g id="icon-markdown"> - <path fill="#231F20" d="M351.659,48H-31.659C-49.496,48-64,62.484-64,80.308v255.349C-64,353.493-49.496,368-31.659,368h383.318 - C369.496,368,384,353.493,384,335.656V80.308C384,62.484,369.496,48,351.659,48z M188.023,304h-56.048v-96l-42.04,53.878 - L47.913,208v96H-8.131V112h56.044l42.022,67.98l42.04-67.98h56.048V304L188.023,304z M271.68,304l-69.635-96h42v-96h56.043v96 - h42.027l-70.453,96H271.68z"/> - </g> -</g> -</svg> diff --git a/admin/bower_components/Ionicons/src/social-nodejs.svg b/admin/bower_components/Ionicons/src/social-nodejs.svg deleted file mode 100644 index 14783c8..0000000 --- a/admin/bower_components/Ionicons/src/social-nodejs.svg +++ /dev/null @@ -1,26 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" enable-background="new 0 0 512 512" xml:space="preserve"> -<g transform="translate(96 96)"> - <g id="icon-nodejs_small"> - <path d="M159.917,384c-5.77,0-11.536-1.562-16.633-4.599l-52.985-32.44c-7.914-4.562-4.023-6.203-1.443-7.141 - c10.565-3.781,13.713-5.657,24.947-12.285c1.206-0.667,2.747-0.424,3.955,0.322l39.71,23.504c1.476,0.85,3.557,0.85,4.931,0 - l155.188-92.246c1.475-0.877,2.415-2.646,2.415-4.441V67.869c0-1.85-0.94-3.592-2.449-4.528L162.433-31.331 - c-1.478-0.894-3.421-0.894-4.898,0L2.516,63.374C0.972,64.277,0,66.072,0,67.869v186.805c0,1.813,0.972,3.513,2.481,4.389 - l39.929,23.972C66.02,295.239,80,282.865,80,268.424V84.725c0-2.652,2.047-4.727,4.596-4.727h22.809 - c2.515,0,4.597,2.072,4.597,4.727v183.698c0,32.563-19.353,51.248-49.199,51.248c-9.156,0-16.397,0-36.552-10.279l-41.584-24.781 - C-25.629,278.459-32,266.965-32,254.656V65.191c0-12.316,6.371-23.784,16.665-29.917L143.35-59.59 - c10.027-5.88,23.374-5.88,33.332,0l158.65,94.864C345.63,41.423,352,52.899,352,65.191v189.465c0,12.309-6.37,23.75-16.668,29.953 - l-158.65,94.774c-5.097,3.036-10.832,4.599-16.698,4.599L159.917,384z"/> - <path d="M208.943,255.998c-64.61,0-84.006-31.61-84.006-59.271c0-2.629,2.048-4.729,4.562-4.729h20.521 - c2.282,0,4.227,1.7,4.562,4.016c3.084,21.602,16.748,31.15,54.324,31.15c33.399,0,47.091-10.346,47.091-28.684 - c0-10.592-3.463-18.424-55.407-23.697c-43.427-4.441-70.288-14.373-70.288-50.295c0-33.135,26.996-52.49,72.234-52.49 - c46.128,0,76.462,14,79.173,50.829c0.102,1.337-0.368,2.629-1.241,3.644c-0.871,0.965-2.078,1.527-3.353,1.527h-20.591 - c-2.146,0-4.024-1.562-4.459-3.713c-4.401-16.953-16.97-23.402-49.563-23.402c-36.486,0-40.746,12.753-40.746,22.607 - c0,11.963,5.031,15.441,54.294,22.172c48.761,6.663,71.933,16.117,71.933,51.552c0,35.781-28.808,58.783-79.075,58.783 - L208.943,255.998L208.943,255.998z"/> - </g> -</g> -</svg> diff --git a/admin/bower_components/Ionicons/src/social-octocat.svg b/admin/bower_components/Ionicons/src/social-octocat.svg deleted file mode 100644 index 7a598f5..0000000 --- a/admin/bower_components/Ionicons/src/social-octocat.svg +++ /dev/null @@ -1,28 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" enable-background="new 0 0 512 512" xml:space="preserve"> -<g> - <path fill="#231F20" d="M178.354,287.478c-9.123,0-16.928,4.207-23.201,12.833c-6.291,8.478-9.398,18.973-9.398,31.431 - c0,12.474,3.166,23.008,9.398,31.509c6.273,8.54,14.039,12.771,23.201,12.771c8.494,0,15.889-4.27,22.121-12.771 - c6.271-8.501,9.398-19.035,9.398-31.509c0-12.419-3.166-22.93-9.398-31.431C194.242,291.724,186.908,287.478,178.354,287.478z"/> - <path fill="#231F20" d="M334.668,287.478c-9.045,0-16.891,4.207-23.182,12.833c-6.271,8.478-9.359,18.973-9.359,31.431 - c0,12.474,3.186,23.008,9.359,31.509c6.291,8.54,14.098,12.771,23.182,12.771c8.533,0,15.906-4.27,22.178-12.771 - c6.293-8.501,9.418-19.035,9.418-31.509c0-12.419-3.164-22.93-9.418-31.431C350.574,291.724,343.299,287.478,334.668,287.478z"/> - <path fill="#231F20" d="M445.777,172h-0.059c0,0,2.793-14.264,0.314-39.18c-2.182-24.916-7.471-47.838-16.123-68.82 - c0,0-4.422,0.76-12.76,2.896s-22.08,6.299-40.938,14.768c-18.541,8.54-37.986,19.788-58.297,33.505 - c-13.803-3.934-34.408-5.939-61.994-5.939c-26.289,0-46.914,2.012-61.977,5.945c-44.592-30.859-81.832-47.945-112.092-51.175 - c-8.594,20.982-13.883,43.991-16.045,68.97c-2.398,24.939,0.432,39.329,0.432,39.329C41.979,198.551,32,236.541,32,267.793 - c0,24.244,0.658,46.078,6.125,65.48c5.564,19.31,12.662,35.13,21.098,47.221c8.611,12.121,19.012,22.788,31.576,31.938 - c12.467,9.314,23.988,15.962,34.389,20.216c10.461,4.372,22.375,7.602,35.982,9.861c13.33,2.386,23.438,3.645,30.477,3.996 - c0,0,28,1.494,64.354,1.494c36.354,0,64.295-1.494,64.295-1.494c7.02-0.352,17.145-1.634,30.535-3.996 - c13.547-2.299,25.521-5.607,35.941-9.861c10.402-4.293,21.943-10.901,34.469-20.216c12.523-9.032,22.906-19.739,31.518-31.938 - c8.436-12.091,15.494-27.911,21.098-47.221c5.486-19.402,6.145-41.385,6.145-65.629C480,237.389,469.982,199,445.777,172z - M380.383,405.645C352.521,418.736,311.486,424,257.061,424l-2.143-0.039c-54.443,0-95.361-5.248-122.848-18.41 - c-27.508-13.092-41.271-40.057-41.271-80.738c0-24.33,8.572-43.99,25.482-59.107c7.354-6.515,16.438-11.019,27.645-13.717 - c11.129-2.558,21.354-2.762,30.969-2.465c9.398,0.415,22.551,2.196,39.344,3.464C231.029,254.285,243.535,256,256,256 - c11.698,0,27.213-1.957,52.104-3.959c24.99-1.971,43.494-2.971,55.467-1c12.289,2.002,22.986,6.202,32.129,14.742 - c17.734,15.751,26.602,35.505,26.602,59.084C422.301,365.533,408.164,392.537,380.383,405.645z"/> -</g> -</svg> diff --git a/admin/bower_components/Ionicons/src/social-pinterest-outline.svg b/admin/bower_components/Ionicons/src/social-pinterest-outline.svg deleted file mode 100644 index 4077d0a..0000000 --- a/admin/bower_components/Ionicons/src/social-pinterest-outline.svg +++ /dev/null @@ -1,14 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" style="enable-background:new 0 0 512 512;" xml:space="preserve"> -<path d="M256,32C132.3,32,32,132.3,32,256s100.3,224,224,224s224-100.3,224-224S379.7,32,256,32z M391.8,391.8 - C355.5,428,307.3,448,256,448c-16.2,0-32.1-2-47.4-5.9c2.8-6.3,5.2-12.8,7-19.3c2.8-10,15.8-61.6,15.8-61.6 - c7.8,14.8,30.5,27.9,54.7,27.9c72,0,120.9-65.6,120.9-153.5c0-66.4-56.3-128.3-141.8-128.3c-106.4,0-160.1,76.3-160.1,139.9 - c0,38.5,14.6,72.8,45.9,85.6c5.1,2.1,9.7,0.1,11.2-5.6c1-3.9,3.5-13.9,4.6-18c1.5-5.6,0.9-7.6-3.2-12.5c-9-10.7-14.8-24.4-14.8-43.9 - c0-56.6,42.3-107.3,110.3-107.3c60.1,0,93.2,36.7,93.2,85.8c0,64.6-28.6,119.1-71,119.1c-23.4,0-41-19.4-35.4-43.1 - c6.7-28.4,19.8-59,19.8-79.5c0-18.3-9.8-33.6-30.2-33.6c-24,0-43.2,24.8-43.2,58c0,21.1,7.2,35.4,7.2,35.4s-24.5,103.9-28.8,122.1 - c-1.3,5.5-2.2,11.1-2.9,16.8c-17.3-9-33.3-20.6-47.4-34.8C84,355.5,64,307.3,64,256s20-99.5,56.2-135.8C156.5,84,204.7,64,256,64 - s99.5,20,135.8,56.2C428,156.5,448,204.7,448,256S428,355.5,391.8,391.8z"/> -</svg> diff --git a/admin/bower_components/Ionicons/src/social-pinterest.svg b/admin/bower_components/Ionicons/src/social-pinterest.svg deleted file mode 100644 index 1f992aa..0000000 --- a/admin/bower_components/Ionicons/src/social-pinterest.svg +++ /dev/null @@ -1,15 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" style="enable-background:new 0 0 512 512;" xml:space="preserve"> -<g> - <path d="M256,32C132.3,32,32,132.3,32,256c0,91.7,55.2,170.5,134.1,205.2c-0.6-15.6-0.1-34.4,3.9-51.4 - c4.3-18.2,28.8-122.1,28.8-122.1s-7.2-14.3-7.2-35.4c0-33.2,19.2-58,43.2-58c20.4,0,30.2,15.3,30.2,33.6 - c0,20.5-13.1,51.1-19.8,79.5c-5.6,23.8,11.9,43.1,35.4,43.1c42.4,0,71-54.5,71-119.1c0-49.1-33.1-85.8-93.2-85.8 - c-67.9,0-110.3,50.7-110.3,107.3c0,19.5,5.8,33.3,14.8,43.9c4.1,4.9,4.7,6.9,3.2,12.5c-1.1,4.1-3.5,14-4.6,18 - c-1.5,5.7-6.1,7.7-11.2,5.6c-31.3-12.8-45.9-47-45.9-85.6c0-63.6,53.7-139.9,160.1-139.9c85.5,0,141.8,61.9,141.8,128.3 - c0,87.9-48.9,153.5-120.9,153.5c-24.2,0-46.9-13.1-54.7-27.9c0,0-13,51.6-15.8,61.6c-4.7,17.3-14,34.5-22.5,48 - c20.1,5.9,41.4,9.2,63.5,9.2c123.7,0,224-100.3,224-224C480,132.3,379.7,32,256,32z"/> -</g> -</svg> diff --git a/admin/bower_components/Ionicons/src/social-python.svg b/admin/bower_components/Ionicons/src/social-python.svg deleted file mode 100644 index b392068..0000000 --- a/admin/bower_components/Ionicons/src/social-python.svg +++ /dev/null @@ -1,21 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" enable-background="new 0 0 512 512" xml:space="preserve"> -<g> - <path d="M193.46,249.056c3.723-0.67,7.589-1.041,11.586-1.041L201.924,248h103.823c4.503,0,8.806-0.617,12.908-1.754 - c19.37-5.363,33.345-22.537,33.345-43.663v-30.822v-56.402c0-24.832-21.15-43.484-46.289-47.606 - c-15.931-2.624-39.258-3.827-55.089-3.749c-15.829,0.086-30.981,1.404-44.277,3.749C167.143,74.576,160,88.928,160,115.359V144h96 - v16H128.82c-35.628,0-64.538,42.571-64.813,95.242C64.005,255.495,64,255.747,64,256c0,9.523,0.94,18.72,2.685,27.404 - C74.648,323.07,99.451,352,128.82,352H144v-2.662v-43.273C144,279.238,164.146,254.332,193.46,249.056z M203.656,127.002 - c-9.592,0-17.384-7.785-17.384-17.403c0-9.664,7.774-17.52,17.384-17.52c9.574,0,17.399,7.855,17.399,17.52 - C221.056,119.217,213.246,127.002,203.656,127.002z"/> - <path d="M443.951,222.543C434.78,186.021,411.033,160,383.18,160H368v2.626v38.046c0,33.915-22.286,58.474-49.489,62.681 - c-2.737,0.424-5.483,0.646-8.301,0.646H206.351c-4.518,0-8.904,0.584-13.049,1.672C174.18,270.689,160,286.6,160,307.236v32.922 - v54.305c0,24.832,24.977,39.426,49.481,46.551c29.327,8.531,61.267,10.068,96.366,0C329.15,434.354,352,420.893,352,394.463V368 - h-96v-16h127.18c25.24,0,47.107-21.365,57.814-52.549C445.474,286.404,448,271.641,448,256 - C448,244.232,446.567,232.962,443.951,222.543z M307.867,382.82c9.59,0,17.381,7.785,17.381,17.4 - c0,9.65-7.791,17.521-17.381,17.521c-9.577,0-17.399-7.871-17.399-17.521C290.468,390.59,298.274,382.82,307.867,382.82z"/> -</g> -</svg> diff --git a/admin/bower_components/Ionicons/src/social-reddit-outline.svg b/admin/bower_components/Ionicons/src/social-reddit-outline.svg deleted file mode 100644 index 40553cc..0000000 --- a/admin/bower_components/Ionicons/src/social-reddit-outline.svg +++ /dev/null @@ -1,26 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" style="enable-background:new 0 0 512 512;" xml:space="preserve"> -<g> - <circle cx="322.3" cy="288.4" r="31.8"/> - <circle cx="190.3" cy="288.4" r="31.8"/> - <g> - <path d="M480.5,251c0-27.7-22.2-50.2-49.5-50.2c-13,0-24.7,5-33.6,13.3c-33.2-23.4-78.4-38.5-128.7-40.7L292,95.7l69.6,13.9 - c0.2,24.7,20.1,44.7,44.5,44.7c24.6,0,44.5-20.2,44.5-45.1S430.7,64,406.1,64c-18.6,0-34.5,11.6-41.2,28l-85.2-17l-29.4,98.2 - l-7.1,0.2c-50.3,2.2-95.5,17.4-128.7,40.7c-8.8-8.3-20.6-13.3-33.6-13.3c-27.3,0-49.5,22.5-49.5,50.2c0,19.6,11,36.5,27.1,44.8 - c-0.8,4.9-1.2,9.8-1.2,14.8C57.5,386.4,146.4,448,256,448s198.5-61.6,198.5-137.5c0-5-0.4-9.9-1.1-14.8 - C469.5,287.4,480.5,270.5,480.5,251z M406.1,81.9c14.8,0,26.8,12.2,26.8,27.2c0,15-12,27.2-26.8,27.2c-14.8,0-26.8-12.2-26.8-27.2 - C379.3,94.1,391.3,81.9,406.1,81.9z M49.2,251c0-17.8,14.3-32.2,31.8-32.2c7.2,0,13.9,2.5,19.2,6.6c-17.3,15.2-30.1,33-37,52.4 - C54.8,271.9,49.2,262.1,49.2,251z M386.4,392.9c-34.6,23.9-80.9,37.1-130.4,37.1s-95.8-13.2-130.4-37.1 - c-32.5-22.5-50.4-51.8-50.4-82.4c0-3.2,0.2-6.5,0.6-9.7c0.7-6,2.2-11.9,4.3-17.7c5.6-15.6,16-30.3,30.7-43.4 - c4.4-3.9,9.2-7.7,14.4-11.3c0.1-0.1,0.3-0.2,0.4-0.3C160.2,204.2,206.5,191,256,191c49.5,0,95.8,13.2,130.4,37.1 - c0.1,0.1,0.3,0.2,0.4,0.3c5.2,3.6,10,7.4,14.4,11.3c14.7,13.1,25.1,27.8,30.7,43.4c2.1,5.8,3.5,11.7,4.3,17.7 - c0.4,3.2,0.6,6.4,0.6,9.7C436.8,341.1,418.9,370.4,386.4,392.9z M448.8,277.7c-6.9-19.4-19.7-37.2-37-52.4 - c5.3-4.1,12-6.6,19.2-6.6c17.5,0,31.8,14.5,31.8,32.2C462.8,262.1,457.2,271.9,448.8,277.7z"/> - <path d="M320.5,357.9c-0.2,0.2-24.2,24.2-64.5,24.4c-40.9-0.2-64.4-24.2-64.6-24.4l-12.6,12.4c1.2,1.2,29.6,29.5,77.2,29.7 - c47.6-0.2,75.9-28.5,77.1-29.7L320.5,357.9z"/> - </g> -</g> -</svg> diff --git a/admin/bower_components/Ionicons/src/social-reddit.svg b/admin/bower_components/Ionicons/src/social-reddit.svg deleted file mode 100644 index e85c3ce..0000000 --- a/admin/bower_components/Ionicons/src/social-reddit.svg +++ /dev/null @@ -1,18 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" style="enable-background:new 0 0 512 512;" xml:space="preserve"> -<path d="M480.5,251c0-27.7-22.2-50.2-49.5-50.2c-13,0-24.7,5-33.6,13.3c-32.4-22.8-76.1-37.8-124.9-40.6l21.9-73.2l67.1,13.5 - c2.3,22.7,21.2,40.4,44.3,40.4c0.1,0,0.1,0,0.2,0c0.1,0,0.1,0,0.2,0c24.6,0,44.5-20.2,44.5-45.1S430.7,64,406.1,64 - c-0.1,0-0.1,0-0.2,0c0,0-0.1,0-0.1,0c-17.2,0-32,9.8-39.5,24.3l-89.7-18l-30.8,103l-2.5,0.1c-50.3,2.2-95.5,17.4-128.7,40.7 - c-8.8-8.3-20.6-13.3-33.6-13.3c-27.3,0-49.5,22.5-49.5,50.2c0,19.6,11,36.5,27.1,44.8c-0.8,4.9-1.2,9.8-1.2,14.8 - C57.5,386.4,146.4,448,256,448s198.5-61.6,198.5-137.5c0-5-0.4-9.9-1.1-14.8C469.5,287.4,480.5,270.5,480.5,251z M65.8,271.1 - c-6.6-4.5-10.9-12.1-10.9-20.8c0-13.8,11.1-25.1,24.7-25.1c5.6,0,10.8,1.9,15,5.1C81.1,242.2,71.1,256,65.8,271.1z M389.3,109.1 - c0-9.2,7.4-16.8,16.5-16.8s16.5,7.5,16.5,16.8c0,9.2-7.4,16.8-16.5,16.8S389.3,118.4,389.3,109.1z M158.5,288.4 - c0-17.6,14.2-31.8,31.8-31.8s31.8,14.2,31.8,31.8c0,17.6-14.2,31.8-31.8,31.8S158.5,306,158.5,288.4z M256,400 - c-47.6-0.2-76-28.5-77.2-29.7l12.6-12.4c0.2,0.2,23.7,24.2,64.6,24.4c40.3-0.2,64.2-24.2,64.5-24.4l12.6,12.4 - C331.9,371.5,303.6,399.8,256,400z M322.3,320.2c-17.6,0-31.8-14.2-31.8-31.8c0-17.6,14.2-31.8,31.8-31.8s31.8,14.2,31.8,31.8 - C354.1,306,339.8,320.2,322.3,320.2z M446.4,271.5c-5.4-15.3-15.6-29.4-29.3-41.4c4.2-3.3,9.5-5.2,15.2-5.2 - c13.9,0,25.1,11.4,25.1,25.5C457.5,259.2,453.1,266.9,446.4,271.5z"/> -</svg> diff --git a/admin/bower_components/Ionicons/src/social-rss-outline.svg b/admin/bower_components/Ionicons/src/social-rss-outline.svg deleted file mode 100644 index efca1cc..0000000 --- a/admin/bower_components/Ionicons/src/social-rss-outline.svg +++ /dev/null @@ -1,16 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" style="enable-background:new 0 0 512 512;" xml:space="preserve"> -<g> - <path d="M119.9,336.1c-30.8,0-55.9,25.1-55.9,55.8c0,30.8,25.1,55.6,55.9,55.6c30.9,0,55.9-24.9,55.9-55.6 - C175.8,361.2,150.8,336.1,119.9,336.1z M119.9,431.5c-22,0-39.9-17.8-39.9-39.6c0-21.9,17.9-39.8,39.9-39.8 - c22,0,39.9,17.9,39.9,39.8C159.8,413.7,141.9,431.5,119.9,431.5z"/> - <path d="M64,192v79.9c48,0,94.1,14.2,128,48.1c33.9,33.9,48,79.9,48,128h80C320,308.1,204,192,64,192z M303.5,432h-48 - c-3.1-49.7-21-92.1-52.2-123.3C172.1,277.4,130,259.5,80,256.4v-47.8c26,1.8,52.1,8,76.7,18.5c28.5,12.2,54.2,29.6,76.4,51.8 - c22.2,22.2,39.6,47.9,51.8,76.4C295.5,379.9,301.7,405.6,303.5,432z"/> - <path d="M64,64v79.9c171,0,303.9,133,303.9,304.1H448C448,236.3,276,64,64,64z M291.4,220.5C235.4,164.4,161,132,80,128.2V80.3 - C270,88.5,423.5,241.8,431.7,432h-48.2C379.7,351.1,347.3,276.5,291.4,220.5z"/> -</g> -</svg> diff --git a/admin/bower_components/Ionicons/src/social-rss.svg b/admin/bower_components/Ionicons/src/social-rss.svg deleted file mode 100644 index 487aa70..0000000 --- a/admin/bower_components/Ionicons/src/social-rss.svg +++ /dev/null @@ -1,12 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" style="enable-background:new 0 0 512 512;" xml:space="preserve"> -<g> - <path d="M119.9,336.1c-30.8,0-55.9,25.1-55.9,55.8c0,30.8,25.1,55.6,55.9,55.6c30.9,0,55.9-24.9,55.9-55.6 - C175.8,361.2,150.8,336.1,119.9,336.1z"/> - <path d="M64,192v79.9c48,0,94.1,14.2,128,48.1c33.9,33.9,48,79.9,48,128h80C320,308.1,204,192,64,192z"/> - <path d="M64,64v79.9c171,0,303.9,133,303.9,304.1H448C448,236.3,276,64,64,64z"/> -</g> -</svg> diff --git a/admin/bower_components/Ionicons/src/social-sass.svg b/admin/bower_components/Ionicons/src/social-sass.svg deleted file mode 100644 index 08e1dfa..0000000 --- a/admin/bower_components/Ionicons/src/social-sass.svg +++ /dev/null @@ -1,35 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" enable-background="new 0 0 512 512" xml:space="preserve"> -<path fill="#231F20" d="M511.784,329.108c-1.67-13.599-9.236-24.146-20.795-32.416c2.857,2.04,5.275,3.766-0.055-0.041 - c-7.189-5.131-3.38-2.411-0.047-0.032c-28.5-20.301-65.676-15.789-96.733-4.511c-12.447-20.295-12.987-35.783-5.816-57.937 - c0.929-2.8,0.295-4.354-2.624-5.604c-7.086-3.03-17.291-1.427-24.422,0.463c-2.462,0.646-4.254,1.9-4.8,4.381 - c-5.154,24.243-21.009,46.448-34.828,66.886c-9.731-18.652-8.96-33.087-2.414-52.516c0.798-2.366,0.431-3.624-1.937-4.879 - c-7.26-3.757-18.401-1.912-25.8,0.276c-8.509,2.482-21.29,44.594-25.372,52.946c-8.531,17.442-16.091,44.665-30.585,58.502 - c-12.3-15.807,22.526-51.517,10.882-65.851c-3.938-4.848-11.063-4.723-15.586-0.616c1.085-7.608,1.648-12.609-0.32-19.063 - c-2.081-6.79-7.361-10.687-15.09-10.49c-17.995,0.527-33.843,13.815-44.641,26.397c-10.277,12.105-37.381,19.627-51.953,26.927 - c-25.032-21.807-79.221-44.947-80.632-82.081c-1.528-41.846,48.319-70.245,81.597-87.228 - c43.28-22.104,109.961-49.608,159.138-25.436c13.049,6.414,18.299,20.171,14.707,33.348c-9.368,34.366-47.198,57.293-80.103,67.807 - c-16.189,5.175-33.969,9.027-51.1,8.026c-22.955-1.343-40.83-15.224-43.281-16.086c-2.049-0.389-1.888,2.261-1.347,3.664 - c23.816,62.433,144.417,16.681,175.956-15.371c15.189-15.421,24.413-30.365,28.351-53.894c4.616-27.583-15.634-44.842-31.004-51.957 - C213.212,56.65,105.494,103.89,46.577,152.049c-25.568,20.901-57.552,54.11-42.874,88.946c15.93,37.805,64.736,57.19,96.503,80.312 - C74.502,334.08,42.344,347.29,25.688,371.24c-9.524,13.729-12.903,28.359-5.811,43.966c12.572,27.568,58.285,15.622,77.573,3.471 - c17.67-11.13,29.563-26.07,34.7-45.228c4.455-16.609,3.541-33.866-3.856-49.512l28.585-14.458 - c-7.697,23.076-11.097,52.003,4.881,72.855c6.402,8.338,23.017,8.675,29.817,0.311c8.816-10.943,14.664-24.655,20.503-37.206 - c-0.682,9.373-1.856,19.996,1.377,28.165c3.71,9.373,12.126,11.291,20.792,5.343c26.52-18.203,43.398-68.652,56.463-98.062 - c3.552,12.829,7.473,24.548,13.957,36.376c1.602,2.903,1.407,4.774-0.796,7.195c-9.685,10.675-32.826,28.479-35.069,42.899 - c-0.524,3.371,1.713,6.599,5.686,7.37c15.573,3.108,32.838-2.531,45.482-11.078c13.188-8.922,17.446-21.087,14.245-35.515 - c-4.576-20.771,10.993-43.98,25.801-61.03c2.719,12.908,6.816,25.331,14.143,36.606c-13.075,11.483-32.58,27.764-29.779,46.939 - c0.988,6.865,7.135,11.301,14.514,9.736c15.783-3.324,29.416-10.113,39.37-22.146c9.023-10.855,5.792-22.701,1.856-34.635 - c23.872-6.815,48.022-8.177,71.831-0.027c11.495,3.91,20.755,10.5,26.248,20.818c6.726,12.644,2.939,24.292-10.05,32.604 - c-3.287,2.104-5.562,3.833-4.45,4.743c1.112,0.911,4.9,2.113,13.284-3.152c8.384-5.267,13.51-12.383,14.823-21.725 - C512.071,334.28,512.063,331.696,511.784,329.108z M112.946,354.367c-1.358,16.673-9.636,30.193-23.175,41.114 - c-7.617,6.158-17.102,11.176-26.52,12.092c-9.418,0.917-16.751-1.461-17.378-11.23c-1.764-27.493,40.923-54.424,64.625-62.533 - c2.02,6.86,3.011,13.666,2.432,20.587L112.946,354.367z M216.048,281.914c-3.903,22.309-14.83,62.347-32.314,78.336 - c-2.356,2.143-4.61,2.018-5.809-0.771c-10.345-24.059,3.671-73.669,33.082-81.328C214.464,277.262,216.609,278.733,216.048,281.914z - M286.359,363.682c8.422-8.962,16.834-17.916,25.269-26.927C312.671,346.776,294.057,366.719,286.359,363.682z M367.073,345.986 - c-2.348,1.273-7.621,2.515-7.827,0.835c-1.482-12.085,11.816-24.874,20.067-30.867C383.766,327.297,378.495,339.788,367.073,345.986 - z"/> -</svg> diff --git a/admin/bower_components/Ionicons/src/social-skype-outline.svg b/admin/bower_components/Ionicons/src/social-skype-outline.svg deleted file mode 100644 index 27e3015..0000000 --- a/admin/bower_components/Ionicons/src/social-skype-outline.svg +++ /dev/null @@ -1,26 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" style="enable-background:new 0 0 512 512;" xml:space="preserve"> -<g> - <path d="M170.2,96c14,0,27.7,3.9,39.6,11.3l10.3,6.4l12-2c8.5-1.5,17.2-2.2,25.9-2.2c40.5,0,78.5,15.5,107,43.7 - c28.4,28,44.1,65.3,44.1,104.9c0,10.7-1.2,21.4-3.5,31.8l-2.5,11.1l5.1,10.2c5.1,10.1,7.7,20.9,7.7,32.2 - c0,40.1-33.3,72.7-74.2,72.7c-12.5,0-24.3-2.9-35.2-8.7l-9.8-5.2l-10.9,2c-9.1,1.7-18.5,2.5-27.8,2.5c-40.5,0-78.5-15.5-107-43.7 - c-28.4-28-44.1-65.3-44.1-104.9c0-10,1-20.1,3-29.9l2.5-12.2l-6.4-10.7C99.5,194.2,96,181.6,96,168.7C96,128.6,129.3,96,170.2,96 - M170.2,64C111.6,64,64,110.9,64,168.7c0,19.4,5.3,37.5,14.6,53c-2.4,11.7-3.7,23.9-3.7,36.3c0,99.8,82,180.6,183.1,180.6 - c11.5,0,22.7-1,33.5-3c15,7.9,32.1,12.4,50.2,12.4c58.7,0,106.2-46.9,106.2-104.7c0-16.7-4-32.5-11.1-46.5 - c2.8-12.5,4.2-25.4,4.2-38.7c0-99.7-82-180.6-183.2-180.6c-10.7,0-21.1,0.9-31.3,2.6C210.3,69.9,191,64,170.2,64L170.2,64z"/> - <path d="M351.9,344.1c-8.5,11.8-21,21.2-37.2,27.8c-16.1,6.6-35.3,9.9-57.3,9.9c-26.3,0-48.3-4.6-65.6-13.6 - c-12.3-6.6-22.4-15.4-30.2-26.4c-7.8-11-11.7-22-11.7-32.6c0-6.6,2.6-12.3,7.6-17.1c5-4.6,11.5-7,19.1-7c6.3,0,11.7,1.8,16.1,5.5 - c4.2,3.5,7.8,8.7,10.7,15.5c3.3,7.3,6.8,13.5,10.6,18.4c3.6,4.7,8.7,8.6,15.3,11.7c6.7,3.1,15.6,4.7,26.6,4.7 - c15.1,0,27.5-3.2,36.8-9.5c9.2-6.1,13.6-13.5,13.6-22.5c0-7.1-2.3-12.7-7.1-17.1c-5-4.6-11.5-8.2-19.6-10.6 - c-8.3-2.6-19.6-5.3-33.6-8.2c-19-4-35.1-8.8-48-14.2c-13.1-5.5-23.7-13.2-31.5-22.7C159,226.5,155,214.3,155,200 - c0-13.7,4.2-25.9,12.4-36.5c8.2-10.5,20.1-18.7,35.6-24.3c15.2-5.6,33.3-8.4,53.7-8.4c16.4,0,30.7,1.9,42.7,5.5 - c12.1,3.7,22.2,8.7,30.3,14.9c8,6.2,14,12.8,17.8,19.7c3.8,7,5.7,13.9,5.7,20.6c0,6.4-2.5,12.3-7.5,17.4c-5,5.1-11.3,7.8-18.8,7.8 - c-6.8,0-12.1-1.6-15.8-4.8c-3.4-3-7-7.6-10.9-14.3c-4.6-8.5-10.1-15.3-16.4-20.1c-6.2-4.6-16.4-7-30.6-7c-13.1,0-23.8,2.6-31.7,7.7 - c-7.6,4.9-11.3,10.6-11.3,17.3c0,4.1,1.2,7.5,3.7,10.5c2.6,3.1,6.2,5.9,10.9,8.2c4.8,2.4,9.8,4.3,14.7,5.6 - c5.1,1.4,13.6,3.5,25.3,6.1c14.9,3.1,28.5,6.7,40.5,10.4c12.2,3.9,22.7,8.6,31.3,14.1c8.8,5.6,15.7,12.9,20.7,21.5 - c4.9,8.6,7.4,19.4,7.4,31.8C364.7,318.7,360.4,332.3,351.9,344.1z"/> -</g> -</svg> diff --git a/admin/bower_components/Ionicons/src/social-skype.svg b/admin/bower_components/Ionicons/src/social-skype.svg deleted file mode 100644 index ee3a6fa..0000000 --- a/admin/bower_components/Ionicons/src/social-skype.svg +++ /dev/null @@ -1,20 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" style="enable-background:new 0 0 512 512;" xml:space="preserve"> -<path d="M436.9,296.8c2.8-12.5,4.2-25.4,4.2-38.7c0-99.7-82-180.6-183.2-180.6c-10.7,0-21.1,0.9-31.3,2.6 - C210.3,69.9,191,64,170.2,64C111.6,64,64,110.9,64,168.7c0,19.4,5.3,37.5,14.6,53c-2.4,11.7-3.7,23.9-3.7,36.3 - c0,99.8,82,180.6,183.1,180.6c11.5,0,22.7-1,33.5-3c15,7.9,32.1,12.4,50.2,12.4c58.7,0,106.2-46.9,106.2-104.7 - C448,326.6,444,310.8,436.9,296.8z M351.9,344.3c-8.5,11.8-21,21.2-37.2,27.8c-16.1,6.6-35.3,9.9-57.3,9.9 - c-26.3,0-48.3-4.6-65.6-13.6c-12.3-6.6-22.4-15.4-30.2-26.4c-7.8-11-11.7-22-11.7-32.6c0-6.6,2.6-12.3,7.6-17.1c5-4.6,11.5-7,19.1-7 - c6.3,0,11.7,1.8,16.1,5.5c4.2,3.5,7.8,8.7,10.7,15.5c3.3,7.3,6.8,13.5,10.6,18.4c3.6,4.7,8.7,8.6,15.3,11.7 - c6.7,3.1,15.6,4.7,26.6,4.7c15.1,0,27.5-3.2,36.8-9.5c9.2-6.1,13.6-13.5,13.6-22.5c0-7.1-2.3-12.7-7.1-17.1 - c-5-4.6-11.5-8.2-19.6-10.6c-8.3-2.6-19.6-5.3-33.6-8.2c-19-4-35.1-8.8-48-14.2c-13.1-5.5-23.7-13.2-31.5-22.7 - c-7.9-9.7-11.8-21.9-11.8-36.2c0-13.7,4.2-25.9,12.4-36.5c8.2-10.5,20.1-18.7,35.6-24.3c15.2-5.6,33.3-8.4,53.7-8.4 - c16.4,0,30.7,1.9,42.7,5.5c12.1,3.7,22.2,8.7,30.3,14.9c8,6.2,14,12.8,17.8,19.7c3.8,7,5.7,13.9,5.7,20.6c0,6.4-2.5,12.3-7.5,17.4 - c-5,5.1-11.3,7.8-18.8,7.8c-6.8,0-12.1-1.6-15.8-4.8c-3.4-3-7-7.6-10.9-14.3c-4.6-8.5-10.1-15.3-16.4-20.1c-6.2-4.6-16.4-7-30.6-7 - c-13.1,0-23.8,2.6-31.7,7.7c-7.6,4.9-11.3,10.6-11.3,17.3c0,4.1,1.2,7.5,3.7,10.5c2.6,3.1,6.2,5.9,10.9,8.2 - c4.8,2.4,9.8,4.3,14.7,5.6c5.1,1.4,13.6,3.5,25.3,6.1c14.9,3.1,28.5,6.7,40.5,10.4c12.2,3.9,22.7,8.6,31.3,14.1 - c8.8,5.6,15.7,12.9,20.7,21.5c4.9,8.6,7.4,19.4,7.4,31.8C364.8,318.9,360.5,332.5,351.9,344.3z"/> -</svg> diff --git a/admin/bower_components/Ionicons/src/social-snapchat-outline.svg b/admin/bower_components/Ionicons/src/social-snapchat-outline.svg deleted file mode 100644 index 773d5d7..0000000 --- a/admin/bower_components/Ionicons/src/social-snapchat-outline.svg +++ /dev/null @@ -1,42 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" enable-background="new 0 0 512 512" xml:space="preserve"> -<g> - <path d="M256.283,47.553c70.693,0,128,54.682,118,128.931c-2.072,15.388-3.422,31.483-4.26,44.759c0,0,2.402,4.253,12.664,4.253 - c6.071,0,14.895-1.543,27.596-6.354c2.236-0.847,4.377-1.241,6.377-1.241c7.918,0,13.615,5.931,14.123,12.271 - c0.426,5.31-4.564,11.199-8.371,13.009c-13.766,6.542-46.991,10.063-46.991,32.638c0,22.576,22.362,46.656,40.862,63.713 - S480,360.602,480,360.602s0.283,21.57-31.717,29.097c-32,7.524-32.1,5.712-33.25,13.796c-2.133,14.979-1.535,21.378-11.248,21.378 - c-1.672,0-3.651-0.19-6.002-0.558c-8.23-1.291-19.239-3.644-31.121-3.644c-11.216,0-23.21,2.097-34.379,9.161 - c-23,14.549-41.283,34.114-76.283,34.114s-53-19.565-76-34.114c-11.17-7.065-23.162-9.161-34.379-9.161 - c-11.88,0-22.892,2.353-31.121,3.644c-2.352,0.367-4.33,0.558-6.002,0.558c-9.71,0-9.115-6.399-11.248-21.378 - c-1.151-8.084-1.25-6.27-33.25-13.795s-32-29.097-32-29.097s45.5-4.012,64-21.068c18.5-17.058,40.862-41.134,40.862-63.71 - c0-22.575-33.226-26.09-46.991-32.632c-3.807-1.81-8.796-7.687-8.371-12.997c0.507-6.336,6.196-12.251,14.107-12.25 - c2.004,0,4.152,0.38,6.393,1.229c12.749,4.829,21.588,6.342,27.662,6.342c10.204,0,12.598-4.273,12.598-4.273 - c-0.837-13.275-2.187-29.371-4.259-44.759c-10-74.249,47.307-128.931,118-128.931l0,0 M256.283,32H256 - c-41.093,0-79.215,16.208-104.591,45.341c-23.982,27.534-34.375,63.345-29.265,101.292c1.416,10.51,2.46,21.231,3.21,30.618 - c-3.97-0.559-9.686-1.998-17.703-5.034c-3.965-1.502-8.017-2.295-12.043-2.295c-15.641-0.001-28.844,11.852-30.057,27.003 - c-1.027,12.818,8.235,24.393,17.47,28.783c4.251,2.02,9.181,3.578,14.4,5.232c6.707,2.125,14.309,4.532,19.293,7.703 - c4.147,2.639,4.147,4.168,4.147,5.182c0,8.66-6.191,24.691-35.688,51.888c-10.499,9.681-39.055,15.501-54.588,16.897l-14.572,1.311 - L16,360.603c0,1.679,0.312,10.546,6.485,20.319c5.246,8.306,16.073,19.283,37.863,24.407c6.179,1.453,11.186,2.563,15.208,3.454 - c2.306,0.512,4.555,1.01,6.454,1.453c0.027,0.209,0.054,0.417,0.081,0.623c0.9,7.004,1.611,12.535,4.392,17.75 - c2.453,4.6,8.574,12.316,22.015,12.316c2.478,0,5.249-0.246,8.472-0.751c1.672-0.263,3.386-0.554,5.2-0.863 - c7.116-1.212,15.182-2.587,23.451-2.587c10.277,0,18.732,2.188,25.846,6.688c4.531,2.867,8.892,5.972,13.509,9.26 - C202.967,465.481,223.358,480,256,480c32.726,0,53.293-14.582,71.439-27.446c4.576-3.244,8.898-6.309,13.377-9.142 - c7.113-4.5,15.568-6.688,25.846-6.688c8.27,0,16.334,1.375,23.449,2.586c1.814,0.311,3.529,0.602,5.202,0.864 - c3.223,0.505,5.993,0.751,8.472,0.751c13.44,0,19.562-7.715,22.015-12.313c2.781-5.214,3.492-10.746,4.392-17.749 - c0.027-0.208,0.055-0.418,0.082-0.629c1.898-0.441,4.148-0.941,6.455-1.452c4.023-0.892,9.029-2.001,15.206-3.454 - c21.851-5.139,32.611-16.17,37.79-24.518c6.098-9.828,6.296-18.736,6.273-20.422l-0.189-14.501l-14.398-1.278 - c-15.413-1.396-43.8-7.219-54.301-16.9c-16.281-15.011-35.688-36.199-35.688-51.893c0-1.014,0-2.546,4.15-5.186 - c4.985-3.174,12.589-5.584,19.297-7.71c5.217-1.654,10.144-3.217,14.394-5.236c9.236-4.39,18.498-15.978,17.471-28.807 - c-1.215-15.166-14.424-27.046-30.072-27.046c-4.021,0-8.068,0.76-12.027,2.259c-8.027,3.041-13.743,4.41-17.705,4.962 - c0.747-9.319,1.791-20.12,3.211-30.67c5.111-37.948-5.281-73.509-29.264-101.042C335.498,48.208,297.376,32,256.283,32L256.283,32z - "/> - <path d="M256,229c-20.838,0-40.604-8.29-55.657-23.343c-3.125-3.124-3.124-8.189,0-11.313c3.125-3.124,8.19-3.124,11.313,0 - C223.688,206.374,239.436,213,256,213c16.387,0,32.15-6.64,44.385-18.698c3.148-3.102,8.213-3.063,11.312,0.082 - c3.102,3.147,3.064,8.212-0.082,11.313C296.368,220.725,276.617,229,256,229z"/> - <ellipse cx="208" cy="152" rx="16" ry="24"/> - <ellipse cx="304" cy="152" rx="16" ry="24"/> -</g> -</svg> diff --git a/admin/bower_components/Ionicons/src/social-snapchat.svg b/admin/bower_components/Ionicons/src/social-snapchat.svg deleted file mode 100644 index 3cfb04f..0000000 --- a/admin/bower_components/Ionicons/src/social-snapchat.svg +++ /dev/null @@ -1,31 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" enable-background="new 0 0 512 512" xml:space="preserve"> -<g> - <path d="M495.998,360.389l-0.189-14.501l-14.398-1.278c-15.413-1.396-43.8-7.219-54.301-16.9 - c-16.281-15.011-35.688-36.199-35.688-51.893c0-1.014,0-2.546,4.15-5.186c4.985-3.174,12.589-5.584,19.297-7.71 - c5.217-1.654,10.144-3.217,14.394-5.236c9.236-4.39,18.498-15.978,17.471-28.807c-1.215-15.166-14.424-27.046-30.072-27.046 - c-4.021,0-8.068,0.76-12.027,2.259c-8.027,3.041-13.743,4.41-17.705,4.962c0.747-9.319,1.791-20.12,3.211-30.67 - c5.111-37.948-5.281-73.509-29.264-101.042C335.498,48.208,297.376,32,256.283,32H256c-41.093,0-79.215,16.208-104.591,45.341 - c-23.982,27.534-34.375,63.345-29.265,101.292c1.416,10.51,2.46,21.231,3.21,30.618c-3.97-0.559-9.686-1.998-17.703-5.034 - c-3.965-1.502-8.017-2.295-12.043-2.295c-15.641-0.001-28.844,11.852-30.057,27.003c-1.027,12.818,8.235,24.393,17.47,28.783 - c4.251,2.02,9.181,3.578,14.4,5.232c6.707,2.125,14.309,4.532,19.293,7.703c4.147,2.639,4.147,4.168,4.147,5.182 - c0,8.66-6.191,24.691-35.688,51.888c-10.499,9.681-39.055,15.501-54.588,16.897l-14.572,1.311L16,360.603 - c0,1.679,0.312,10.546,6.485,20.319c5.246,8.306,16.073,19.283,37.863,24.407c6.179,1.453,11.186,2.563,15.208,3.454 - c2.306,0.512,4.555,1.01,6.454,1.453c0.027,0.209,0.054,0.417,0.081,0.623c0.9,7.004,1.611,12.535,4.392,17.75 - c2.453,4.6,8.574,12.316,22.015,12.316c2.478,0,5.249-0.246,8.472-0.751c1.672-0.263,3.386-0.554,5.2-0.863 - c7.116-1.212,15.182-2.587,23.451-2.587c10.277,0,18.732,2.188,25.846,6.688c4.531,2.867,8.892,5.972,13.509,9.26 - C202.967,465.481,223.358,480,256,480c32.726,0,53.293-14.582,71.439-27.446c4.576-3.244,8.898-6.309,13.377-9.142 - c7.113-4.5,15.568-6.688,25.846-6.688c8.27,0,16.334,1.375,23.449,2.586c1.814,0.311,3.529,0.602,5.202,0.864 - c3.223,0.505,5.993,0.751,8.472,0.751c13.44,0,19.562-7.715,22.015-12.313c2.781-5.214,3.492-10.746,4.392-17.749 - c0.027-0.208,0.055-0.418,0.082-0.629c1.898-0.441,4.148-0.941,6.455-1.452c4.023-0.892,9.029-2.001,15.206-3.454 - c21.851-5.139,32.611-16.17,37.79-24.518C495.822,370.982,496.021,362.074,495.998,360.389z M208,128c8.836,0,16,10.745,16,24 - s-7.164,24-16,24s-16-10.745-16-24S199.164,128,208,128z M311.615,205.698C296.368,220.725,276.617,229,256,229 - c-20.838,0-40.604-8.29-55.657-23.343c-3.125-3.124-3.124-8.189,0-11.313c3.125-3.124,8.19-3.124,11.313,0 - C223.688,206.374,239.436,213,256,213c16.387,0,32.15-6.64,44.385-18.698c3.148-3.102,8.213-3.063,11.312,0.082 - C314.799,197.531,314.762,202.597,311.615,205.698z M304,176c-8.836,0-16-10.746-16-24s7.164-24,16-24s16,10.746,16,24 - S312.836,176,304,176z"/> -</g> -</svg> diff --git a/admin/bower_components/Ionicons/src/social-tumblr-outline.svg b/admin/bower_components/Ionicons/src/social-tumblr-outline.svg deleted file mode 100644 index 9f327c2..0000000 --- a/admin/bower_components/Ionicons/src/social-tumblr-outline.svg +++ /dev/null @@ -1,13 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" style="enable-background:new 0 0 512 512;" xml:space="preserve"> -<path d="M321.2,396.3c-11.8,0-22.4-2.8-31.5-8.3c-6.9-4.1-11.5-9.6-14-16.4c-2.6-6.9-3.6-22.3-3.6-46.4V224h96v-64h-96V48h-61.9 - c-2.7,21.5-7.5,44.7-14.5,58.6s-14,25.8-25.6,35.7c-11.6,9.9-25.6,17.9-41.9,23.3V224h48v140.4c0,19,2,33.5,5.9,43.5 - c4,10,11.1,19.5,21.4,28.4c10.3,8.9,22.8,15.7,37.3,20.5c14.6,4.8,31.4,7.2,50.4,7.2c16.7,0,30.3-1.7,44.7-5.1 - c14.4-3.4,30.5-9.3,48.2-17.6v-65.6C363.2,389.4,342.3,396.3,321.2,396.3z M368,431c-13.1,5.7-25.1,9.9-35.9,12.4 - c-13.1,3.1-25.6,4.6-41.1,4.6c-17.2,0-32.5-2.2-45.4-6.4c-12.5-4.1-23.2-10-31.9-17.5c-8.3-7.2-14-14.6-17-22.2 - c-2.2-5.5-4.8-16.6-4.8-37.6V208H144v-31.3c13.4-5.6,25.5-13,36.3-22.2c13.2-11.2,21.6-24.9,29.6-40.7c7.1-14,11.6-34,14.1-49.8h32 - v112h96v32h-96v117.1c0,34.6,2.4,46,4.6,52c3.8,10.3,10.8,18.6,21,24.6c11.7,7,25,10.5,39.7,10.5c15.7,0,31.3-3.3,46.7-9.8V431z"/> -</svg> diff --git a/admin/bower_components/Ionicons/src/social-tumblr.svg b/admin/bower_components/Ionicons/src/social-tumblr.svg deleted file mode 100644 index 3cd8508..0000000 --- a/admin/bower_components/Ionicons/src/social-tumblr.svg +++ /dev/null @@ -1,10 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" style="enable-background:new 0 0 512 512;" xml:space="preserve"> -<path d="M321.2,396.3c-11.8,0-22.4-2.8-31.5-8.3c-6.9-4.1-11.5-9.6-14-16.4c-2.6-6.9-3.6-22.3-3.6-46.4V224h96v-64h-96V48h-61.9 - c-2.7,21.5-7.5,44.7-14.5,58.6c-7,13.9-14,25.8-25.6,35.7c-11.6,9.9-25.6,17.9-41.9,23.3V224h48v140.4c0,19,2,33.5,5.9,43.5 - c4,10,11.1,19.5,21.4,28.4c10.3,8.9,22.8,15.7,37.3,20.5c14.6,4.8,31.4,7.2,50.4,7.2c16.7,0,30.3-1.7,44.7-5.1 - c14.4-3.4,30.5-9.3,48.2-17.6v-65.6C363.2,389.4,342.3,396.3,321.2,396.3z"/> -</svg> diff --git a/admin/bower_components/Ionicons/src/social-tux.svg b/admin/bower_components/Ionicons/src/social-tux.svg deleted file mode 100644 index 2fb3e4e..0000000 --- a/admin/bower_components/Ionicons/src/social-tux.svg +++ /dev/null @@ -1,53 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" enable-background="new 0 0 512 512" xml:space="preserve"> -<g> - <path fill="#010101" d="M254.7,101.3c-0.6,1-1.2,2-1.7,3.1c1.8-3.5,4.3-6.5,7.4-8.7C258.3,97,256.3,98.8,254.7,101.3 - C254.1,102.3,256.3,98.8,254.7,101.3z"/> - <path fill="#010101" d="M426.3,396c-6.7-4-13.2-11-12-18.8c2.3-15.3,2.5-21.5-0.2-25.8c-1.899-3.2-5.5-5-8.6-5.801 - c2-2.5,3.1-5.399,3.8-10.899c1.842-14.168-3.239-30.67-6.61-44.243c-4.445-17.9-10.319-34.014-20.432-49.522 - c-16.489-25.288-37.253-46.804-51.857-73.435c-9.7-29-4.301-47.1-4.801-66.2C324.7,64,298.7,32,261,32h-14c-37.5,0-58,26.9-58,60 - c0.697,16.666,1.352,33.333,2,50c0.769,19.756,1.98,37.667-8,55.3c-7.033,12.488-19.571,22.43-28.592,33.478 - c-9.525,11.665-13.06,23.669-17.859,37.619c-5.987,17.401-21.275,30.906-24.886,48.929c-1.658,8.271,2.726,17.857-0.83,24.693 - c-3.698,7.109-0.813,14.469-2.833,21.682c-3.505,11.729-20.731,10.729-30.215,11.508c-17.602,1.443-11.051,17.988-7.843,29.701 - c5.598,20.435-19.54,42.078,11.032,50.471c13.989,3.84,28.586,5.13,42.727,8.32c13.981,3.154,26.917,8.612,40.396,13.262 - c10.469,3.611,20.262,4.146,30.323-1.232c10.982-5.87,18.947-15.083,31.691-17c24.707-3.716,54.829-4.169,79.373,0.63 - c7.507,1.468,10.075,6.525,14.905,11.766c8.145,8.838,21.514,10.125,32.794,8.22c11.89-2.01,20.846-9.466,29.686-17.112 - c12.526-10.835,26.137-17.996,40.791-25.547c7.439-3.833,22.178-9.388,24.159-18.903C450.151,406.573,433.642,400.383,426.3,396z - M202,451.3c-1.3,13-13.9,20.3-25.4,19.3c-19.502-1.649-37.86-12.237-57.164-15.75c-9.393-1.709-47.351-3.173-46.943-17.079 - c0.215-7.361,5.751-11.666,7.567-18.415c2.811-10.449-5.753-19.932-6.32-30.16c-0.447-8.081,10.73-7.607,16.288-8.053 - c8.761-0.702,19.157-2.012,23.572-11.043c1.6-3.3-0.5-15,1.9-21.8c3.527-10.155,15.489-8.949,23.3-4.899 - c17.762,9.067,28.943,35.546,38.533,51.821C187.058,411.728,204.045,430.843,202,451.3z M318.3,385.7 - c2.289,11.787,4.224,24.387,1.7,36.3c-2.016,9.516-8.562,15.614-12.7,24c-2.2-6.8,11.3-16.7,9.8-33.7 - c-0.042-0.475-0.947-10.882-1.036-10.834c-1.979,1.082-3.825,5.075-5.304,6.73c-4.809,5.383-10.771,9.658-16.729,13.677 - c-13.797,9.306-29.221,15.058-45.83,16.627c-21,2-38-10.5-38-10.5c2.517,8.305,8.992,21,1.1,28.3 - c1.743-15.648-4.876-28.06-11.6-41.7c46.374-24.639-41.363-64.397-53-79.8c-10.476-13.896-5.553-31.83-2.7-43.5 - c-3.443,13.775-3.959,41.956,14,46.8c7.922,2.169,5.605-37.071,5.984-41.463c1.58-18.312,7.721-35.997,18.343-51.015 - c3.399-4.806,1.863-9.533,2.673-15.322c1.693-10.668,7.295-20.547,13.488-29.225c5.169-7.243,1.735-12.618,3.014-21.055 - c0.727-4.795,5.118,3.193,5.798,4.279c4,6.5,16.7,22.7,24.7,22c13.277-1.161,24.692-15.938,36.015-22.046 - c3.591-1.937,14.41-5.242,15.866-9.632c1.768-5.33-12.666-0.161-14.114,0.583c-10.782,5.535-31.018,21.448-43.867,15.295 - c-8.762-4.195-10.691-14.994-17.2-20.5c15.4,13.6,21.5,10.5,27.6,9.1c9.665-2.182,18.797-6.486,27.8-10.5 - c4.217-1.88,20.107-4.041,22.301-8.7c2.745-5.834-5.05-6.726-8.068-3.58c-6.251,6.515-15.853,8.981-24.097,11.787 - c-18.885,6.427-37.644,9.131-51.835-8.607c-8.354-10.212,15.558-22.504,22.2-28.8c0,0,1-7.2-0.6-12.7c-1.9-6.5-7.8-9.3-11.9-8.1 - c-4.1,1.1-8,5.5-6.8,14.8c1,8.3,7,11,7,11s-2.7,3.5-5.2,4.7c0,0-0.8-0.3-3.5-6.3c-2.7-6-6.6-19.5-0.3-31.1 - c6.3-11.6,19.6-5.2,23.8,3.8c3.9,8.3,2.4,22.7,2.4,22.7c3.358-0.843,6.835-1.3,10.3-1.3c4.242,0,6.814,4.563,10.6,4.8 - c-0.635,0-0.564-18.124-0.233-20.078c1.099-6.49,4.112-13.619,9.933-17.222c16.087-11.491,34.6,3.916,34.6,21.2 - c0.024,4.486-0.137,9.215-1.199,13.6c-0.659,2.637-1.582,8.469-5.114,9.177c-1.145,0.23-10.683-0.431-7.985-3.277 - c12.807-12.812-1.822-38.207-17.4-24.5c-5.601,4.199-5.483,13.833-4.801,20c1.098,9.141,20.51,11.541,26.852,13.78 - c8.224,2.903,7.943,9.626,6.679,17.116c-1.9,11.26-2.815,18.792,4.381,28.214c7.344,9.616,12.929,20.086,15.915,31.878 - c1.483,5.859,1.665,10.843,5.621,15.57c5.983,7.151,10.619,14.805,13.291,23.817c5.225,17.621,6.513,35.422,6.162,53.625 - c-0.5,8.199-2.1,15,8.3,9.699c4-2,6.5-2.899,11-3.699c3.101-6.301,4.4-18.301,4.5-24.301c0.2-13.5-0.3-41.5-27.699-71.5 - c0,0,28.5,21.7,33,62c2.5,22.301-2,34.4-2,34.4c5.3,1.3,10.8,5.3,13.6,9.8c-0.133-0.22,1.038,1.748,1.179,1.864 - c-9.811-8.171-31.708-12.859-39.679,0.236c-2,3.3-3.1,7.6-3.2,11.699c-7.1-1.199-12.399,0-16.8,4.9 - C313.5,358.1,316.3,375.3,318.3,385.7C320.3,396,316.3,375.3,318.3,385.7z M220.6,124.9c-0.2-4.9-2.1-9-4.7-10.8 - c0.3-0.3,0.8-0.7,1.7-0.4c1.4,0.4,3.5,2.7,4.3,6.3c0.7,2.9,0.4,7.7-1.4,7.7C220.498,126.766,220.531,125.833,220.6,124.9 - C220.4,120,220.6,125.8,220.6,124.9z M275.3,112.9c0.4-0.3,1.101-0.6,2.3-0.3c1.801,0.4,4.4,2.8,5.301,6.2 - c0.699,2.8,0.1,7.4-2.2,7.3c-0.005-0.903,0.062-1.803,0.2-2.7C280.8,118.8,278.6,114.8,275.3,112.9 - C275.7,112.6,278.6,114.8,275.3,112.9z M412.4,432.9c-17.504,7.553-31.304,19.968-47.117,30.19 - c-13.824,8.937-38.156,8.313-40.022-12.879c-1.565-17.776,4.184-35.288,1.84-53.357c-1.587-12.239-8.534-28.906-2.301-40.854 - c2.7-5.1,8.101-5.5,12.5-4c3.193,13.267,13.932,23.6,28,23.6c17.031,0,23.542-14.008,34-24.5c3.4,0.2,7.4,1.101,8.8,4.801 - c2.301,5.8-1.899,17.5-1.8,22.3c0.3,15.7,9,19.2,26.4,29C448,416,436.9,422.3,412.4,432.9C388.3,443.3,436.9,422.3,412.4,432.9z"/> -</g> -</svg> diff --git a/admin/bower_components/Ionicons/src/social-twitch-outline.svg b/admin/bower_components/Ionicons/src/social-twitch-outline.svg deleted file mode 100644 index c3fbe3c..0000000 --- a/admin/bower_components/Ionicons/src/social-twitch-outline.svg +++ /dev/null @@ -1,13 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" enable-background="new 0 0 512 512" xml:space="preserve"> -<g> - <g> - <path d="M80,32l-32,80v304h96v64h64l64-64h80l112-112V32H80z M416,288l-64,64h-96.001L192,416v-64h-80V80h304V288z"/> - </g> - <rect x="320" y="143" width="48" height="129"/> - <rect x="208" y="143" width="48" height="129"/> -</g> -</svg> diff --git a/admin/bower_components/Ionicons/src/social-twitch.svg b/admin/bower_components/Ionicons/src/social-twitch.svg deleted file mode 100644 index 8fa7b1e..0000000 --- a/admin/bower_components/Ionicons/src/social-twitch.svg +++ /dev/null @@ -1,9 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" enable-background="new 0 0 512 512" xml:space="preserve"> -<g> - <path d="M80,32l-32,80v304h96v64h64l64-64h80l112-112V32H80z M256,272h-48V143h48V272z M368,272h-48V143h48V272z"/> -</g> -</svg> diff --git a/admin/bower_components/Ionicons/src/social-twitter-outline.svg b/admin/bower_components/Ionicons/src/social-twitter-outline.svg deleted file mode 100644 index cb687a7..0000000 --- a/admin/bower_components/Ionicons/src/social-twitter-outline.svg +++ /dev/null @@ -1,19 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" style="enable-background:new 0 0 512 512;" xml:space="preserve"> -<path d="M492,109.5c-17.4,7.7-36,12.9-55.6,15.3c20-12,35.4-31,42.6-53.6c-18.7,11.1-39.4,19.2-61.5,23.5 - C399.8,75.8,374.5,64,346.8,64c-53.5,0-96.8,43.4-96.8,96.9c0,7.6,0.8,15,2.5,22.1C172,179,100.5,140.4,52.8,81.7 - c-8.3,14.3-13.1,31-13.1,48.7c0,33.6,17.1,63.3,43.1,80.7C67,210.7,52,206.3,39,199c0,0.4,0,0.8,0,1.2c0,47,33.4,86.1,77.7,95 - c-8.1,2.2-16.7,3.4-25.5,3.4c-6.2,0-12.3-0.6-18.2-1.8c12.3,38.5,48.1,66.5,90.5,67.3c-33.1,26-74.9,41.5-120.3,41.5 - c-7.8,0-15.5-0.5-23.1-1.4C62.8,432,113.7,448,168.3,448C346.5,448,444,300.3,444,172.2c0-4.2-0.1-8.4-0.3-12.5 - C462.5,146,479,129,492,109.5z M434.2,146.7l-7,5.1l0.4,8.6c0.2,3.8,0.3,7.8,0.3,11.8c0,30.2-5.9,61.8-17,91.5 - c-11.7,31.2-28.5,59.4-50,83.8c-23,26.1-50.2,46.5-81.1,60.8c-33.8,15.7-71.3,23.6-111.5,23.6c-28.9,0-57.4-4.8-84.5-14.2 - c9.9-1.9,19.6-4.6,29.1-7.9c21.7-7.6,41.9-18.7,60.1-33l35.3-27.7l-44.9-0.8c-26.1-0.5-49.7-13.4-64.3-33.9 - c7.3-0.5,14.5-1.8,21.5-3.7l60.7-20.2l-61.7-10.9c-29.6-5.9-52.8-27.9-61.3-55.8c7.8,2,15.4,2.8,23.9,3.3c0,0,31.8,1.4,55.8-0.1 - c-13-6.2-46.4-29.2-46.4-29.2c-22.5-15.1-36-40.2-36-67.4c0-6.4,0.8-12.8,2.2-19c21.9,22.4,47,41.1,75.1,55.5 - c37,19.1,76.9,29.8,118.6,31.9l21.2,1.1l-4.8-20.7c-1.4-5.9-2.1-12.1-2.1-18.5c0-44.4,36.3-80.7,80.9-80.7c22.3,0,43.8,9.3,59,25.6 - l6.1,6.5l8.7-1.7c4.5-0.9,8.9-1.9,13.3-3.1c-1,1.4-5.7,6.1-11,10.8c-4.5,4-17.8,16.5-17.8,16.5s13,4.1,21.1,5 - c8.1,0.9,17.4-0.6,18.9-0.8C442.2,141.1,437.2,144.6,434.2,146.7z"/> -</svg> diff --git a/admin/bower_components/Ionicons/src/social-twitter.svg b/admin/bower_components/Ionicons/src/social-twitter.svg deleted file mode 100644 index c9fb08a..0000000 --- a/admin/bower_components/Ionicons/src/social-twitter.svg +++ /dev/null @@ -1,12 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" style="enable-background:new 0 0 512 512;" xml:space="preserve"> -<path d="M492,109.5c-17.4,7.7-36,12.9-55.6,15.3c20-12,35.4-31,42.6-53.6c-18.7,11.1-39.4,19.2-61.5,23.5 - C399.8,75.8,374.6,64,346.8,64c-53.5,0-96.8,43.4-96.8,96.9c0,7.6,0.8,15,2.5,22.1c-80.5-4-151.9-42.6-199.6-101.3 - c-8.3,14.3-13.1,31-13.1,48.7c0,33.6,17.2,63.3,43.2,80.7C67,210.7,52,206.3,39,199c0,0.4,0,0.8,0,1.2c0,47,33.4,86.1,77.7,95 - c-8.1,2.2-16.7,3.4-25.5,3.4c-6.2,0-12.3-0.6-18.2-1.8c12.3,38.5,48.1,66.5,90.5,67.3c-33.1,26-74.9,41.5-120.3,41.5 - c-7.8,0-15.5-0.5-23.1-1.4C62.8,432,113.7,448,168.3,448C346.6,448,444,300.3,444,172.2c0-4.2-0.1-8.4-0.3-12.5 - C462.6,146,479,129,492,109.5z"/> -</svg> diff --git a/admin/bower_components/Ionicons/src/social-usd-outline.svg b/admin/bower_components/Ionicons/src/social-usd-outline.svg deleted file mode 100644 index 0bf1882..0000000 --- a/admin/bower_components/Ionicons/src/social-usd-outline.svg +++ /dev/null @@ -1,44 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" enable-background="new 0 0 512 512" xml:space="preserve"> -<g> - <path d="M220.746,102.625c-7.788,1.683-17.44,4.813-24.641,8.529c-9.018,4.649-16.411,10.965-22.604,19.295 - c-6.706,9.002-10.105,19.989-10.105,32.657c0,17.916,6.197,32.288,18.405,42.702c9.334,7.983,21.504,14.431,36.687,19.165 - L240,230.667V100.244C240,100.244,231.766,100.244,220.746,102.625z M224,209.699c-12-3.743-23.912-9.088-32.051-16.048 - c-8.621-7.355-12.673-17.534-12.673-30.545c0-9.241,2.414-16.94,7.004-23.102c4.58-6.161,9.912-11.038,16.88-14.631 - c6.18-3.189,13.84-5.565,20.84-7.138V209.699z"/> - <path d="M348.217,296.725c-8.432-8.289-18.002-14.296-28.414-17.84c-8.949-3.075-17.441-5.848-27.465-8.477L272,265.145v145.188 - c0,0,12.051-0.642,18.371-1.476s10.703-1.971,16.67-3.798c12.727-3.89,23.309-9.02,31.32-15.25 - c8.678-6.747,15.145-14.785,19.164-23.907c3.775-8.595,5.706-17.581,5.706-26.711C363.231,320.822,358.188,306.536,348.217,296.725 - z M342.902,359.471c-2.939,6.673-7.699,12.576-14.303,17.711c-6.602,5.133-15.744,9.328-26.377,12.577 - c-4.5,1.378-8.223,2.444-14.223,3.236v-107.11c10,2.624,18.18,5.332,26.326,8.131c8.062,2.744,15.748,7.443,22.537,14.116 - c6.785,6.676,10.309,17.03,10.309,31.06C347.172,346.042,345.834,352.797,342.902,359.471z"/> - <path d="M411.387,303.256c-3.119-9.577-7.891-18.561-14.301-26.952c-6.422-8.382-14.396-15.826-23.93-22.331 - c-9.539-6.498-20.721-11.63-33.553-15.4c-5.143-1.363-14.189-3.506-26.104-6.418c-8.516-2.074-16.5-4.2-25.5-6.367V120.065 - c9,2.396,15.252,6.202,21.926,10.43c14.279,9.04,23.232,24.505,25.855,45.505h69.174c-0.654-18-4.65-32.76-11.996-46.02 - c-8.07-14.543-18.977-27.024-32.73-36.956c-13.75-9.922-30.225-17.49-48.377-22.455C303.967,68.416,297,66.605,288,65.386V32h-64 - v33.167c-7,1.044-15.148,2.445-22.426,4.25c-17.242,4.283-32.388,10.868-45.951,19.764c-13.571,8.905-24.352,20.112-32.604,33.627 - c-8.251,13.523-12.312,29.52-12.312,48c0,9.585,1.407,18.993,4.157,28.235c2.752,9.241,7.442,17.967,14.042,26.181 - c6.603,8.214,15.495,15.658,26.687,22.332c11.183,6.672,24.705,12.064,41.576,16.171c9.287,2.345,18.83,4.534,26.83,6.576v119.586 - c-11-2.919-21.889-7.399-30.678-13.479c-9.17-6.327-16.066-13.953-21.198-23.884c-4.779-9.229-7.073-20.526-7.407-32.526H96 - c0.695,21,5.25,39.494,13.672,55.371c8.799,16.604,20.533,29.96,35.204,40.562c14.662,10.613,31.393,18.356,51.198,23.491 - c8.885,2.304,18.926,3.96,27.926,5.23V480h64v-34.54c10-1.069,18.957-2.69,28.527-4.879c18.701-4.273,35.645-11.036,50.316-20.276 - c14.662-9.24,26.621-21.128,35.611-35.681c8.98-14.541,13.545-32.085,13.545-52.619C416,322.427,414.498,312.841,411.387,303.256z - M388.904,376.218c-7.623,12.34-17.873,22.619-30.457,30.55c-13.035,8.21-28.248,14.339-45.219,18.217 - c-9.059,2.071-17.285,3.564-26.654,4.566L272,431.08V464h-32v-33.244l-13.508-1.943c-9.256-1.307-18.671-2.968-26.271-4.938 - c-17.865-4.633-32.876-11.51-46.031-21.032c-12.845-9.283-22.77-20.551-30.408-34.967c-5.004-9.437-8.418-20.876-10.268-31.876 - h36.714c1.529,8,4.162,16.837,7.804,23.869c6.324,12.239,14.979,21.914,26.441,29.823c10.145,7.017,23.81,12.64,35.676,15.724 - S240,408.667,240,408.667V257.874l-11.786-3.074c-4.952-1.263-11.074-2.583-16.558-3.96c-3.395-0.854-6.814-1.729-10.37-2.626 - l-0.033-0.017l-0.051-0.017c-14.952-3.64-27.533-8.472-37.411-14.365c-9.487-5.657-17.021-11.92-22.399-18.611 - c-5.271-6.56-9.029-13.533-11.17-20.722c-2.307-7.755-3.476-15.721-3.476-23.675c0-15.66,3.274-28.636,10.002-39.665 - c7.097-11.622,16.187-20.973,27.786-28.585c12.201-8.003,25.666-13.764,41.155-17.611c6.334-1.571,12.865-2.901,19.926-3.954 - L240,78.958V48h32v31.363l13.127,1.877c7.371,0.999,14.236,2.404,22.637,4.699c16.389,4.482,30.91,11.189,43.023,19.929 - c11.691,8.443,21.182,19.333,28.133,31.862c3.805,6.865,6.504,14.27,8.137,22.27h-38.119c-5.078-19-15.352-33.637-30.172-43.021 - c-9.254-5.861-17.561-9.215-27.373-12.251C281.766,101.75,272,101.25,272,101.25v137.142l12.529,2.951 - c7.631,1.837,14.184,3.644,21.453,5.415l3.92,0.938l0.812,0.19c11.373,2.78,19.651,4.799,24.558,6.096 - c11.084,3.275,20.8,7.721,28.851,13.204c8.078,5.513,14.895,11.853,20.236,18.828c5.291,6.925,9.264,14.393,11.801,22.179 - c2.562,7.898,3.863,15.91,3.863,23.812C400.023,349.395,396.283,364.271,388.904,376.218z"/> -</g> -</svg> diff --git a/admin/bower_components/Ionicons/src/social-usd.svg b/admin/bower_components/Ionicons/src/social-usd.svg deleted file mode 100644 index 91ba62e..0000000 --- a/admin/bower_components/Ionicons/src/social-usd.svg +++ /dev/null @@ -1,24 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" enable-background="new 0 0 512 512" xml:space="preserve"> -<g> - <path d="M411.387,303.256c-3.119-9.577-7.891-18.561-14.301-26.952c-6.422-8.382-14.396-15.826-23.93-22.331 - c-9.539-6.498-20.721-11.63-33.553-15.4c-5.143-1.363-14.189-3.506-26.104-6.418c-8.516-2.074-16.5-4.2-25.5-6.367V120.065 - c9,2.396,15.252,6.202,21.926,10.43c14.279,9.04,23.232,24.505,25.855,45.505h69.174c-0.654-18-4.65-32.76-11.996-46.02 - c-8.07-14.543-18.977-27.024-32.73-36.956c-13.75-9.922-30.225-17.49-48.377-22.455C303.967,68.416,297,66.605,288,65.386V32h-64 - v33.167c-7,1.044-15.148,2.445-22.426,4.25c-17.242,4.283-32.388,10.868-45.951,19.764c-13.571,8.905-24.352,20.112-32.604,33.627 - c-8.251,13.523-12.312,29.52-12.312,48c0,9.585,1.407,18.993,4.157,28.235c2.752,9.241,7.442,17.967,14.042,26.181 - c6.603,8.214,15.495,15.658,26.687,22.332c11.183,6.672,24.705,12.064,41.576,16.171c9.287,2.345,18.83,4.534,26.83,6.576v119.586 - c-11-2.919-21.889-7.399-30.678-13.479c-9.17-6.327-16.066-13.953-21.198-23.884c-4.779-9.229-7.073-20.526-7.407-32.526H96 - c0.695,21,5.25,39.494,13.672,55.371c8.799,16.604,20.533,29.96,35.204,40.562c14.662,10.613,31.393,18.356,51.198,23.491 - c8.885,2.304,18.926,3.96,27.926,5.23V480h64v-34.54c10-1.069,18.957-2.69,28.527-4.879c18.701-4.273,35.645-11.036,50.316-20.276 - c14.662-9.24,26.621-21.128,35.611-35.681c8.98-14.541,13.545-32.085,13.545-52.619C416,322.427,414.498,312.841,411.387,303.256z - M224,209.699c-12-3.743-23.912-9.088-32.051-16.048c-8.621-7.355-12.673-17.534-12.673-30.545c0-9.241,2.414-16.94,7.004-23.102 - c4.58-6.161,9.912-11.038,16.88-14.631c6.18-3.189,13.84-5.565,20.84-7.138V209.699z M342.902,359.471 - c-2.939,6.673-7.699,12.576-14.303,17.711c-6.602,5.133-15.744,9.328-26.377,12.577c-4.5,1.378-8.223,2.444-14.223,3.236v-107.11 - c10,2.624,18.18,5.332,26.326,8.131c8.062,2.744,15.748,7.443,22.537,14.116c6.785,6.676,10.309,17.03,10.309,31.06 - C347.172,346.042,345.834,352.797,342.902,359.471z"/> -</g> -</svg> diff --git a/admin/bower_components/Ionicons/src/social-vimeo-outline.svg b/admin/bower_components/Ionicons/src/social-vimeo-outline.svg deleted file mode 100644 index a5594d1..0000000 --- a/admin/bower_components/Ionicons/src/social-vimeo-outline.svg +++ /dev/null @@ -1,23 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" style="enable-background:new 0 0 512 512;" xml:space="preserve"> -<path d="M476.9,114c-5-23.4-17.5-38.8-40.6-46.3c-7.4-2.4-16.7-3.7-26.9-3.7c-21.7,0-47.4,6-67.2,20.5 - c-29.9,21.8-47.6,59.7-53.8,83.8c12.2-5.3,20.8-7.1,31.9-7.1c2.2,0,4.6,0.1,7.1,0.2c15,0.8,24.5,12,24.9,25.3 - c0.3,9.8-0.2,18.7-3.6,27.7c-10.8,28.7-27.7,56.5-47.6,80.8c-2.9,3.6-6.4,6.9-10,9.9c-4.1,3.4-8,5-11.6,5c-5.2,0-9.9-3.5-13.8-10.2 - c-5.4-9.3-9-18.9-12.2-29.1c-12.4-39.7-16.8-80.9-23.8-121.6c-3.3-19.5-7-39.8-18-56.9c-10-15.4-24-22.6-41.5-22.6 - c-2.8,0-5.6,0.2-8.6,0.5c-14.7,1.8-36.9,17.5-47.8,26.4c0,0-56,46.9-81.8,71.4l21.2,27c0,0,17.9-12.5,27.5-18.3 - c2.9-1.8,6.1-2.8,9.2-2.8c2.9,0,5.7,0.9,8,3c4.5,3.9,9.6,9,12.3,14.1c5.7,10.7,11.2,21.9,14.7,33.4c13.2,44.3,25.5,88.7,37.8,133.3 - c6.3,22.8,13.9,44.2,28,63.6c13.2,18.2,26.9,26.8,44.3,26.8c8,0,16.8-1.8,26.6-5.4c25.4-9.1,46.6-26.2,66-43.9 - c33.1-30.2,59.1-65.4,85.5-101.2c20.4-27.7,37.3-55.7,51.4-87C478.5,179.8,484,147.3,476.9,114z M450,203.9 - c-13.3,29.4-29.1,56.2-49.7,84.1l-0.3,0.4c-26.4,35.7-51.3,69.5-83.1,98.5c-17.8,16.3-37.5,32.4-60.6,40.7c-8.3,3-15.2,4.4-21.2,4.4 - c-8.2,0-18.4-2.4-31.4-20.2c-13.4-18.4-20.2-39-25.5-58.4c-12.4-45.1-24.6-89.2-37.9-133.6c-3.9-13.2-10.2-25.8-15.9-36.4 - c-3.2-5.9-8.4-12-15.9-18.6c-5.2-4.5-11.6-6.9-18.6-6.9c-5.9,0-12,1.8-17.5,5.1c-4.5,2.7-10.5,6.7-15.9,10.3l-2.8-3.6 - c26.9-24.4,68.3-59.1,70.3-60.8C138.8,96.8,155.8,87,163.5,86c2.3-0.3,4.5-0.4,6.6-0.4c12.4,0,21.3,4.9,28.1,15.3 - c9.5,14.7,12.8,33.9,15.7,50.9c1.6,9.7,3.2,19.6,4.7,29.1c4.8,31.1,9.8,63.3,19.6,94.6c3,9.7,7,21.2,13.6,32.5 - c8.8,15,19.9,18.1,27.6,18.1c7.4,0,14.7-2.9,21.7-8.6c4.6-3.7,8.7-7.8,12.3-12.2c21.9-26.8,39.3-56.3,50.2-85.3 - c4.5-12,4.9-23.3,4.6-33.8c-0.6-22.4-17.4-39.6-40-40.9c-2.9-0.2-5.5-0.2-8-0.2c-2.2,0-4.3,0.1-6.3,0.2 - c8.8-18.1,21.7-36.3,37.7-47.9c15-10.9,36.6-17.5,57.8-17.5c8.3,0,16.1,1,21.9,2.9c17,5.5,26,15.8,29.9,34.4 - C467.2,145.1,463.4,174.2,450,203.9z"/> -</svg> diff --git a/admin/bower_components/Ionicons/src/social-vimeo.svg b/admin/bower_components/Ionicons/src/social-vimeo.svg deleted file mode 100644 index ef74f0b..0000000 --- a/admin/bower_components/Ionicons/src/social-vimeo.svg +++ /dev/null @@ -1,18 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" style="enable-background:new 0 0 512 512;" xml:space="preserve"> -<style type="text/css"> -<![CDATA[ - .st0{fill-rule:evenodd;clip-rule:evenodd;} -]]> -</style> -<path class="st0" d="M476.9,114c-5-23.4-17.5-38.8-40.6-46.3c-23.1-7.5-64.9-4.5-94.1,16.8c-29.9,21.8-47.6,59.7-53.8,83.8 - c14.7-6.3,24-7.7,39-6.9c15,0.8,24.5,12,24.9,25.3c0.3,9.8-0.2,18.7-3.6,27.7c-10.8,28.7-27.7,56.5-47.6,80.8 - c-2.9,3.6-6.4,6.9-10,9.9c-10.2,8.3-18.8,6.1-25.4-5.2c-5.4-9.3-9-18.9-12.2-29.1c-12.4-39.7-16.8-80.9-23.8-121.6 - c-3.3-19.5-7-39.8-18-56.9c-11.6-17.8-28.6-24.6-50-22c-14.7,1.8-36.9,17.5-47.8,26.4c0,0-56,46.9-81.8,71.4l21.2,27 - c0,0,17.9-12.5,27.5-18.3c5.7-3.4,12.4-4.1,17.2,0.2c4.5,3.9,9.6,9,12.3,14.1c5.7,10.7,11.2,21.9,14.7,33.4 - c13.2,44.3,25.5,88.7,37.8,133.3c6.3,22.8,13.9,44.2,28,63.6c19.3,26.6,39.6,32.7,70.9,21.5c25.4-9.1,46.6-26.2,66-43.9 - c33.1-30.2,59.1-65.4,85.5-101.2c20.4-27.7,37.3-55.7,51.4-87C478.5,179.8,484,147.3,476.9,114z"/> -</svg> diff --git a/admin/bower_components/Ionicons/src/social-whatsapp-outline.svg b/admin/bower_components/Ionicons/src/social-whatsapp-outline.svg deleted file mode 100644 index 3792dec..0000000 --- a/admin/bower_components/Ionicons/src/social-whatsapp-outline.svg +++ /dev/null @@ -1,25 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" enable-background="new 0 0 512 512" xml:space="preserve"> -<g> - <path fill-rule="evenodd" clip-rule="evenodd" d="M209.877,154.114c-4.258-11.323-9.176-10.515-12.45-10.639 - c-3.277-0.121-6.146-0.061-10.573,0.011c-3.746,0.061-9.882,1.026-15.232,6.413c-5.357,5.378-20.366,18.312-21.404,45.725 - c-1.031,27.408,18.08,54.643,20.749,58.455c2.667,3.826,36.494,63.236,92.719,87.67c56.231,24.427,56.525,16.981,66.84,16.435 - c10.325-0.54,33.726-12.246,38.899-25.073c5.172-12.827,5.588-23.979,4.271-26.358c-1.316-2.371-5-3.911-10.51-6.9 - c-5.516-2.995-32.595-17.498-37.673-19.55c-5.081-2.044-8.787-3.108-12.742,2.329c-3.957,5.422-15.191,17.569-18.596,21.168 - c-3.42,3.6-6.711,3.934-12.226,0.93c-5.5-2.988-23.373-9.548-44.098-29.317c-16.126-15.38-26.711-34.043-29.779-39.736 - c-3.069-5.697-0.02-8.604,2.9-11.269c2.618-2.407,5.857-6.301,8.792-9.449c2.919-3.148,3.949-5.43,5.961-9.083 - c2.007-3.645,1.2-6.932-0.102-9.771C224.32,193.267,214.133,165.437,209.877,154.114z"/> - <g> - <path d="M260.062,64c50.249,0,97.478,19.402,132.982,54.632C428.482,153.796,448,200.533,448,250.232 - c0,49.694-19.518,96.43-54.956,131.596c-35.507,35.232-82.735,54.637-132.982,54.637c-31.806,0-63.24-8.023-90.906-23.201 - l-12.017-6.593l-13.063,4.149l-61.452,19.522l19.375-57.149l4.798-14.151l-7.771-12.763 - c-17.593-28.898-26.892-62.111-26.892-96.047c0-49.699,19.518-96.436,54.957-131.601C162.596,83.402,209.819,64,260.062,64 - M260.062,32C138.605,32,40.134,129.701,40.134,250.232c0,41.229,11.532,79.791,31.559,112.687L32,480l121.764-38.682 - c31.508,17.285,67.745,27.146,106.298,27.146C381.535,468.464,480,370.749,480,250.232C480,129.701,381.535,32,260.062,32 - L260.062,32z"/> - </g> -</g> -</svg> diff --git a/admin/bower_components/Ionicons/src/social-whatsapp.svg b/admin/bower_components/Ionicons/src/social-whatsapp.svg deleted file mode 100644 index 27b2ac5..0000000 --- a/admin/bower_components/Ionicons/src/social-whatsapp.svg +++ /dev/null @@ -1,18 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" enable-background="new 0 0 512 512" xml:space="preserve"> -<g> - <path d="M260.062,32C138.605,32,40.134,129.701,40.134,250.232c0,41.23,11.532,79.79,31.559,112.687L32,480l121.764-38.682 - c31.508,17.285,67.745,27.146,106.298,27.146C381.535,468.464,480,370.749,480,250.232C480,129.701,381.535,32,260.062,32z - M369.424,333.11c-5.174,12.827-28.574,24.533-38.899,25.072c-10.314,0.547-10.608,7.994-66.84-16.434 - c-56.225-24.434-90.052-83.844-92.719-87.67c-2.669-3.812-21.78-31.047-20.749-58.455c1.038-27.413,16.047-40.346,21.404-45.725 - c5.351-5.387,11.486-6.352,15.232-6.413c4.428-0.072,7.296-0.132,10.573-0.011c3.274,0.124,8.192-0.685,12.45,10.639 - c4.256,11.323,14.443,39.153,15.746,41.989c1.302,2.839,2.108,6.126,0.102,9.771c-2.012,3.653-3.042,5.935-5.961,9.083 - c-2.935,3.148-6.174,7.042-8.792,9.449c-2.92,2.665-5.97,5.572-2.9,11.269c3.068,5.693,13.653,24.356,29.779,39.736 - c20.725,19.771,38.598,26.329,44.098,29.317c5.515,3.004,8.806,2.67,12.226-0.929c3.404-3.599,14.639-15.746,18.596-21.169 - c3.955-5.438,7.661-4.373,12.742-2.329c5.078,2.052,32.157,16.556,37.673,19.551c5.51,2.989,9.193,4.529,10.51,6.9 - C375.012,309.131,374.596,320.282,369.424,333.11z"/> -</g> -</svg> diff --git a/admin/bower_components/Ionicons/src/social-windows-outline.svg b/admin/bower_components/Ionicons/src/social-windows-outline.svg deleted file mode 100644 index 9e10792..0000000 --- a/admin/bower_components/Ionicons/src/social-windows-outline.svg +++ /dev/null @@ -1,17 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" style="enable-background:new 0 0 512 512;" xml:space="preserve"> -<style type="text/css"> -<![CDATA[ - .st0{fill:#010101;} -]]> -</style> -<g> - <path class="st0" d="M464,281v180.5l-216-31.3V281H464 M480,265H232v179l248,36V265L480,265z"/> - <path class="st0" d="M200,281v142.2L48,401.2V281H200 M216,265H32v150l184,26.7V265L216,265z"/> - <path class="st0" d="M464,50v183H248V81.3l216-30.9 M480,32L232,67.4V249h248V32L480,32z"/> - <path class="st0" d="M200,88v145H48V109.9l152-21.7 M216,69.7L32,96v153h184V69.7L216,69.7z"/> -</g> -</svg> diff --git a/admin/bower_components/Ionicons/src/social-windows.svg b/admin/bower_components/Ionicons/src/social-windows.svg deleted file mode 100644 index bf14576..0000000 --- a/admin/bower_components/Ionicons/src/social-windows.svg +++ /dev/null @@ -1,17 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" style="enable-background:new 0 0 512 512;" xml:space="preserve"> -<style type="text/css"> -<![CDATA[ - .st0{fill:#010101;} -]]> -</style> -<g> - <path class="st0" d="M480,265H232v179l248,36V265L480,265z"/> - <path class="st0" d="M216,265H32v150l184,26.7V265L216,265z"/> - <path class="st0" d="M480,32L232,67.4V249h248V32L480,32z"/> - <path class="st0" d="M216,69.7L32,96v153h184V69.7L216,69.7z"/> -</g> -</svg> diff --git a/admin/bower_components/Ionicons/src/social-wordpress-outline.svg b/admin/bower_components/Ionicons/src/social-wordpress-outline.svg deleted file mode 100644 index 1d6a91b..0000000 --- a/admin/bower_components/Ionicons/src/social-wordpress-outline.svg +++ /dev/null @@ -1,16 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" style="enable-background:new 0 0 512 512;" xml:space="preserve"> -<path d="M255.9,64C150.2,64,64,150.2,64,256.1C64,361.9,150.2,448,255.9,448c8.5,0,16.8-0.5,24.9-1.8 - c85.7-11,153.8-78.7,165.3-164.1c1.3-8.5,1.9-17.2,1.9-26C448,150.2,361.8,64,255.9,64z M83.4,256.1c0-25,5.4-48.8,15-70.2 - l82.3,225.5C123.1,383.4,83.4,324.3,83.4,256.1z M278.3,427.3c-7.3,0.9-14.8,1.4-22.4,1.4c-16.9,0-33.2-2.5-48.6-7.1l18.8-55h0.1 - l32.7-95.5L312,416.5c0.4,0.8,0.9,1.6,1.3,2.3C302.1,422.8,290.4,425.6,278.3,427.3z M279.8,175.1c10.4-0.5,19.7-1.6,19.7-1.6 - c9.4-1,8.2-14.8-1.1-14.2c0,0-28,2.2-46,2.2c-16.9,0-45.5-2.2-45.5-2.2c-9.2-0.6-10.4,13.7-1,14.2c0,0,8.7,1.1,18.1,1.6l26.9,73.7 - l-37.8,113.3l-62.9-187c10.5-0.5,19.8-1.6,19.8-1.6c9.2-1,8.2-14.8-1.1-14.2c0,0-27.9,2.2-46,2.2c-3.3,0-7.1-0.1-11.1-0.2 - c30.8-46.8,83.9-77.7,144.1-77.7c45,0,85.9,17.2,116.6,45.2c-0.8,0-1.5-0.1-2.3-0.1c-17,0-29,14.8-29,30.7 - c0,14.2,8.2,26.2,16.9,40.4c6.6,11.5,14.3,26.3,14.3,47.6c0,14.8-4.4,33.4-13.1,55.7l-17.3,57.6L279.8,175.1z M342.7,405.3 - l13.7-39.7l39-112.8c9.9-24.6,13.1-44.3,13.1-61.8c0-6.3-0.4-12.3-1.1-17.8c13.5,24.6,21.2,52.8,21.2,82.9c0,8-0.5,15.8-1.5,23.5 - C419.7,333.3,387.6,379.2,342.7,405.3z"/> -</svg> diff --git a/admin/bower_components/Ionicons/src/social-wordpress.svg b/admin/bower_components/Ionicons/src/social-wordpress.svg deleted file mode 100644 index ab77d7e..0000000 --- a/admin/bower_components/Ionicons/src/social-wordpress.svg +++ /dev/null @@ -1,20 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" style="enable-background:new 0 0 512 512;" xml:space="preserve"> -<g> - <path d="M259,271.3L226.2,367h-0.1l-25.4,73.1c1.8,0.5,3.5,0.9,5.3,1.4c0.1,0,0.2,0,0.3,0c15.8,4.2,32.4,6.5,49.5,6.5 - c8.5,0,16.8-0.5,24.9-1.8c11.2-1.4,22-3.8,32.5-7.1c0,0,0,0,0,0c2.6-0.8,5.2-1.7,7.8-2.6c-2.8-6-8.8-19.3-9.1-19.9L259,271.3z"/> - <path d="M80.8,180.5c-10,22.6-16.8,50.4-16.8,75.5c0,6.3,0.3,12.6,0.9,18.8c6.9,71.2,52.9,131,116.1,157.9c2.6,1.1,5.3,2.2,8,3.2 - L96,180.6C88,180.3,86.5,180.8,80.8,180.5z"/> - <path d="M430.2,175.4c-4.3-9.3-9.4-18.2-15.1-26.6c-1.6-2.4-3.4-4.8-5.1-7.2c-21.5-28.8-50.8-51.4-84.9-64.6 - C303.7,68.6,280.3,64,255.9,64c-60.3,0-114.2,28-149.4,71.7c-6.5,8-12.3,16.6-17.5,25.6c14.2,0.1,31.8,0.1,33.8,0.1 - c18.1,0,46-2.2,46-2.2c9.4-0.6,10.4,13.1,1.1,14.2c0,0-9.4,1.1-19.8,1.6l62.9,187l37.8-113.3L224,175.1c-9.4-0.5-18.1-1.6-18.1-1.6 - c-9.4-0.5-8.2-14.8,1-14.2c0,0,28.5,2.2,45.5,2.2c18.1,0,46-2.2,46-2.2c9.3-0.6,10.5,13.1,1.1,14.2c0,0-9.3,1.1-19.7,1.6 - l62.3,185.6l17.3-57.6c8.7-22.4,13.1-40.9,13.1-55.7c0-21.3-7.7-36.1-14.3-47.6c-8.7-14.3-16.9-26.3-16.9-40.4 - c0-15.9,12-30.7,29-30.7c0.7,0,1.5,0,2.2,0c26.2-0.7,34.8,25.3,35.9,43c0,0,0,0.4,0,0.6c0.4,7.2,0.1,12.5,0.1,18.8 - c0,17.4-3.3,37.1-13.1,61.8l-39,112.8l-22.3,65.7c1.8-0.8,3.5-1.6,5.3-2.5c56.7-27.4,98-82,106.7-146.7c1.3-8.5,1.9-17.2,1.9-26 - C448,227.3,441.6,199.9,430.2,175.4z"/> -</g> -</svg> diff --git a/admin/bower_components/Ionicons/src/social-yahoo-outline.svg b/admin/bower_components/Ionicons/src/social-yahoo-outline.svg deleted file mode 100644 index 97ea51f..0000000 --- a/admin/bower_components/Ionicons/src/social-yahoo-outline.svg +++ /dev/null @@ -1,10 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" style="enable-background:new 0 0 512 512;" xml:space="preserve"> -<path d="M384.6,68.4c-11.3,0-22.5-0.8-32.6-4.4l-96,160L160,64c-10.1,3.6-20.7,4.4-32,4.4c-11.1,0-22.1-0.9-32-4.4l128,212.7V448 - c10-3.5,20.8-4.4,32-4.4s22,0.9,32,4.4V277L416,64C406.1,67.4,395.7,68.4,384.6,68.4z M274.2,268.5l-2.2,4v4.4v151.3 - c-5-0.6-11.2-0.7-16-0.7c-4.8,0-10,0.1-16,0.7V276.7v-4.4l-2.4-3.8L127,84.4c0.3,0,0.7,0,1,0c7.6,0,16-0.3,24.7-1.9l89.8,149.8 - l13.4,22.8l14-22.9l89.8-149.9c9,1.6,17.6,1.7,24.8,1.7c0.2,0,0.3,0,0.5,0L274.2,268.5z"/> -</svg> diff --git a/admin/bower_components/Ionicons/src/social-yahoo.svg b/admin/bower_components/Ionicons/src/social-yahoo.svg deleted file mode 100644 index ef49856..0000000 --- a/admin/bower_components/Ionicons/src/social-yahoo.svg +++ /dev/null @@ -1,8 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" style="enable-background:new 0 0 512 512;" xml:space="preserve"> -<path d="M384.6,68.4c-11.3,0-22.5-0.8-32.6-4.4l-96,160L160,64c-10.1,3.6-20.7,4.4-32,4.4c-11.1,0-22.1-0.9-32-4.4l128,212.7V448 - c10-3.5,20.8-4.4,32-4.4s22,0.9,32,4.4V277L416,64C406.1,67.4,395.7,68.4,384.6,68.4z"/> -</svg> diff --git a/admin/bower_components/Ionicons/src/social-yen-outline.svg b/admin/bower_components/Ionicons/src/social-yen-outline.svg deleted file mode 100644 index 272d4e7..0000000 --- a/admin/bower_components/Ionicons/src/social-yen-outline.svg +++ /dev/null @@ -1,9 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" enable-background="new 0 0 512 512" xml:space="preserve"> -<path d="M448,32h-80L256,253.128L144,32H64l112.368,208H128v48h73.564L216,319v17h-88v48h88v96h80v-96h88v-48h-88v-17l14.891-31H384 - v-48h-48.289L448,32z M368,256v16h-67l-21,43v37h88v16h-88v96h-48v-96h-88v-16h88v-35.75L212,272h-68v-16h59.197l-12.752-23.605 - L90.829,48H134l122,240L378,48h43h0.18l-99.548,184.399L308.891,256H368z"/> -</svg> diff --git a/admin/bower_components/Ionicons/src/social-yen.svg b/admin/bower_components/Ionicons/src/social-yen.svg deleted file mode 100644 index ac2b029..0000000 --- a/admin/bower_components/Ionicons/src/social-yen.svg +++ /dev/null @@ -1,8 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" enable-background="new 0 0 512 512" xml:space="preserve"> -<path d="M448,32h-80L256,253.128L144,32H64l112.368,208H128v48h73.564L216,319v17h-88v48h88v96h80v-96h88v-48h-88v-17l14.891-31H384 - v-48h-48.289L448,32z"/> -</svg> diff --git a/admin/bower_components/Ionicons/src/social-youtube-outline.svg b/admin/bower_components/Ionicons/src/social-youtube-outline.svg deleted file mode 100644 index aded1b3..0000000 --- a/admin/bower_components/Ionicons/src/social-youtube-outline.svg +++ /dev/null @@ -1,22 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" style="enable-background:new 0 0 512 512;" xml:space="preserve"> -<g> - <g> - <path d="M265,96c65.3,0,118.7,1.1,168.1,3.3l0.7,0h0.7c23.1,0,42,22,42,49.1v1.1l0.1,1.1c2.3,34,3.4,69.3,3.4,104.9v0v0 - c0.1,35.6-1.1,70.9-3.4,104.9l-0.1,1.1v1.1c0,13.8-4.7,26.6-13.4,36.1c-7.8,8.6-18,13.4-28.6,13.4h-0.8l-0.8,0 - c-52.9,2.5-108.8,3.8-166.4,3.8c-3.5,0-7.1,0-10.6,0H256h-0.1c-3.6,0-7.2,0-10.8,0c-57.8,0-113.7-1.3-166.2-3.7l-0.8,0h-0.8 - c-10.6,0-20.7-4.8-28.5-13.4c-8.6-9.5-13.4-22.3-13.4-36.1v-1.1l-0.1-1.1c-2.4-34.1-3.5-69.4-3.3-104.7v-0.1v-0.1 - c-0.1-35.3,1-70.5,3.3-104.6l0.1-1.1v-1.1c0-27.2,18.8-49.3,41.9-49.3H78l0.7,0c49.5-2.3,102.9-3.3,168.2-3.3h9H265 M265,64 - c-3,0-6,0-9,0s-6,0-9,0c-57.6,0-114.2,0.8-169.6,3.3c-40.8,0-73.9,36.3-73.9,81.3C1,184.4-0.1,220,0,255.7 - c-0.1,35.7,0.9,71.3,3.4,107c0,45,33.1,81.6,73.9,81.6c54.8,2.6,110.7,3.8,167.8,3.8c3.6,0,7.3,0,10.9,0c3.6,0,7.2,0,10.7,0 - c57.1,0,113-1.2,167.9-3.8c40.9,0,74-36.6,74-81.6c2.4-35.7,3.5-71.4,3.4-107.1c0.1-35.7-1-71.3-3.4-107.1c0-45-33.1-81.1-74-81.1 - C379.2,64.8,322.7,64,265,64L265,64z"/> - </g> - <g> - <path d="M207,353.8V157.4l145,98.2L207,353.8z"/> - </g> -</g> -</svg> diff --git a/admin/bower_components/Ionicons/src/social-youtube.svg b/admin/bower_components/Ionicons/src/social-youtube.svg deleted file mode 100644 index 2347549..0000000 --- a/admin/bower_components/Ionicons/src/social-youtube.svg +++ /dev/null @@ -1,12 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" style="enable-background:new 0 0 512 512;" xml:space="preserve"> -<g> - <path d="M508.6,148.8c0-45-33.1-81.2-74-81.2C379.2,65,322.7,64,265,64c-3,0-6,0-9,0s-6,0-9,0c-57.6,0-114.2,1-169.6,3.6 - c-40.8,0-73.9,36.4-73.9,81.4C1,184.6-0.1,220.2,0,255.8C-0.1,291.4,1,327,3.4,362.7c0,45,33.1,81.5,73.9,81.5 - c58.2,2.7,117.9,3.9,178.6,3.8c60.8,0.2,120.3-1,178.6-3.8c40.9,0,74-36.5,74-81.5c2.4-35.7,3.5-71.3,3.4-107 - C512.1,220.1,511,184.5,508.6,148.8z M207,353.9V157.4l145,98.2L207,353.9z"/> -</g> -</svg> diff --git a/admin/bower_components/Ionicons/src/soup-can-outline.svg b/admin/bower_components/Ionicons/src/soup-can-outline.svg deleted file mode 100644 index b1bf3a9..0000000 --- a/admin/bower_components/Ionicons/src/soup-can-outline.svg +++ /dev/null @@ -1,28 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" enable-background="new 0 0 512 512" xml:space="preserve"> -<g> - <path d="M255.82,144c88.269,0,159.824-28.654,159.824-64S344.089,16,255.82,16C167.552,16,95.997,44.654,95.997,80 - S167.552,144,255.82,144z M255.82,33.041c69.729,0,126.26,19.234,126.26,42.959s-56.531,42.959-126.26,42.959 - c-69.729,0-126.258-19.234-126.258-42.959S186.091,33.041,255.82,33.041z"/> - <path d="M256.57,160c-88.269,0-160.567-28.654-160.567-64c0,0-0.003,33.999,7.997,40v240c0,35.346,63.732,64,152,64 - c88.269,0,152-28.654,152-64V136c8-7.438,7.708-34.853,7.817-40C414.665,130.946,344.116,160,256.57,160z M376,375.588 - c0,2.232-7.961,10.682-29.423,18.688C322.853,403.126,290.812,408,256.273,408c-34.539,0-66.83-4.874-90.554-13.725 - C144.257,386.27,137,377.82,136,375.588v-79.564c18,9.721,42.742,17.115,72.156,20.979l1.588,0.237 - C215.487,337.308,233.936,352,255.826,352c21.89,0,40.338-14.689,46.084-34.754l1.755-0.244 - C333.08,313.139,358,305.744,376,296.023V375.588z M376,264.023c-18,9.831-43.476,17.284-73.325,21.11l-2.61,0.195 - C292.791,268.097,275.723,256,255.859,256c-19.867,0-36.919,12.102-44.19,29.34l-2.514-0.206 - c-29.85-3.826-55.155-11.279-73.155-21.11v-91.265C170,185.25,211.923,192,256.499,192C300.665,192,343,185.287,376,173.045 - V264.023z"/> - <g> - <path d="M274.002,463.58"/> - <path d="M256.272,464c0.293,0,0.583-0.006,0.876-0.007c-0.351,0.001-0.699,0.005-1.051,0.005 - C256.156,463.998,256.214,464,256.272,464z"/> - <path d="M408,415.999V400c0,36.001-63.432,64-152,64c-88.569,0-152-28.654-152-64v15.999L96.261,432 - c0,6.994,2.938,13.725,8.117,20.025C125.37,477.562,185.471,496,256.273,496c70.801,0,130.87-18.438,151.863-43.975 - c5.18-6.301,7.923-13.031,7.923-20.025L408,415.999z"/> - </g> -</g> -</svg> diff --git a/admin/bower_components/Ionicons/src/soup-can.svg b/admin/bower_components/Ionicons/src/soup-can.svg deleted file mode 100644 index 36433c1..0000000 --- a/admin/bower_components/Ionicons/src/soup-can.svg +++ /dev/null @@ -1,16 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" enable-background="new 0 0 512 512" xml:space="preserve"> -<g> - <ellipse cx="256" cy="80" rx="160" ry="64"/> - <path d="M256,440c88.365,0,152-28.654,152-64V248c0,28.581-41.612,52.783-104.26,61.002C301.238,333.16,280.82,352,256,352 - s-45.238-18.84-47.74-42.998C145.612,300.783,104,276.581,104,248v128C104,411.346,167.634,440,256,440z"/> - <path d="M256,160c-88.366,0-160-28.654-160-64c0,0,0,32.834,8,40v96c0,28.732,42.049,53.042,105.25,61.134 - C214.176,271.861,233.229,256,256,256s41.824,15.861,46.75,37.134C365.951,285.042,408,260.732,408,232v-96c8-8.25,8-40,8-40 - C416,131.346,344.365,160,256,160z"/> - <path d="M408,392c0,35.346-63.635,64-152,64c-88.366,0-152-28.654-152-64v23.999L96,432c0,6.994,2.815,13.725,8,20.025 - C125.016,477.562,185.121,496,256,496c70.879,0,130.984-18.438,152-43.975c5.186-6.301,8-13.031,8-20.025l-8-16.001V392z"/> -</g> -</svg> diff --git a/admin/bower_components/Ionicons/src/speakerphone.svg b/admin/bower_components/Ionicons/src/speakerphone.svg deleted file mode 100644 index e686bf4..0000000 --- a/admin/bower_components/Ionicons/src/speakerphone.svg +++ /dev/null @@ -1,19 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" style="enable-background:new 0 0 512 512;" xml:space="preserve"> -<g> - <path d="M70.9,181.5c0-41,25-76.5,60.6-91.5h-7.7c-41.1,0-75.1,32.8-81.1,75.2c-6,1-10.7,7.9-10.7,16.1c0,8.6,5.1,15.4,11.6,15.9 - c7.2,36.4,35.1,65.8,69.7,68.8c0,0,0.1,0,0.1,0c1.4,0,2.8,0.6,4.2,0.9c1.1,0.2,2.2,0.4,3.3,0.7C91,250.5,70.9,218.4,70.9,181.5z"/> - <path d="M465.1,91c-1.1-2.9-2.3-5.6-3.5-8.3c-6.5-14.4-14.4-26-23.4-34.6C427,37.6,414.1,32,400.8,32c-8.3,0-16.4,2.2-24.1,6.4 - c0,0,0,0-0.1,0c-1.2,0.7-2.4,1.3-3.6,2c-49,29-104.1,46.2-162.6,49.4c-6.5,0.4-13,0.2-19.5,0.2h-42.3c-34,15-59,50.5-59,91.5 - c0,36.8,19.2,69.1,47.8,86.1c13,10.9,41.7,11.7,40,23.9c-1.9,13.2-5.5,21.9-7.8,30.7c-1.3,4.8-23.6,72.9-25.3,144.7 - c0,2,0,3.7,0.2,6.6c0.2,2.9,2.2,6.4,8.5,6.4h76.8c6.6,0,9.7-3.3,9.3-9.3c-0.2-1.9-0.6-4.3-0.8-6.5c-2.4-23.1-4.6-49.8-3.3-81.6 - c1.3-34,5.2-51.9,7-61.3c2.1-10.4,7.6-22.4,12.1-30.3c30.8,0.9,92.9,19.3,115.1,28.9c0,0,7.2,3.4,10.1,5.2c7,3.4,14.2,5.1,21.6,5.1 - c0.9,0,1.8,0,2.7-0.1c12.3-0.7,24.2-9.7,34.7-19.5c9.1-8.5,16.9-20.2,23.4-34.6c1.2-2.8,2.4-5.6,3.5-8.6 - c9.6-25,14.8-55.9,14.8-88.1C480,147,474.8,116,465.1,91z M442,267.5c-7.8,18.5-18.2,33.3-29.5,33.3c-11.3,0-21.6-14.7-29.4-33.3 - c-9.1-21.6-14.9-53.1-14.9-88.1c0-35.2,5.8-66.8,15-88.4c7.8-18.4,18.1-29.5,29.3-29.5c11.3,0,21.5,11.2,29.4,29.5 - c9.2,21.6,15,53.2,15,88.4C456.9,214.4,451.1,245.9,442,267.5z"/> -</g> -</svg> diff --git a/admin/bower_components/Ionicons/src/speedometer.svg b/admin/bower_components/Ionicons/src/speedometer.svg deleted file mode 100644 index aaa5880..0000000 --- a/admin/bower_components/Ionicons/src/speedometer.svg +++ /dev/null @@ -1,15 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" style="enable-background:new 0 0 512 512;" xml:space="preserve"> -<g> - <path d="M344,256l-84.4,64.2c-1.2-0.1-2.4-0.2-3.6-0.2c-17.7,0-32,14.3-32,32c0,17.7,14.3,32,32,32c17.7,0,32-14.3,32-32 - c0-1.2-0.1-2.4-0.2-3.6L352,264L344,256z"/> - <path d="M256,96C132.3,96,32,196.3,32,320c0,34.4,7.8,66.9,21.6,96h36.1c-15.4-26.6-24.2-56.6-25.5-88H96v-16H64.2 - c1.2-28.8,8.7-56.5,21.8-81.4l27.5,15.9l8-13.9L94,216.8c7.4-11.6,16.2-22.6,26.2-32.6c10.2-10.1,21.3-19,33.1-26.5l15.8,27.3 - l13.9-8l-15.8-27.3c24.8-13,52.2-20.3,80.8-21.5V160h16v-31.8c28.6,1.2,56,8.6,80.8,21.5L329.1,177l13.9,8l15.8-27.3 - c11.8,7.5,22.9,16.4,33.1,26.5c10,10,18.7,20.9,26.2,32.6l-27.4,15.8l8,13.9l27.5-15.9c13.1,24.9,20.6,52.6,21.8,81.4H416v16h31.8 - c-1.3,31.4-10.1,61.4-25.5,88h36.1c13.8-29.1,21.6-61.6,21.6-96C480,196.3,379.7,96,256,96z"/> -</g> -</svg> diff --git a/admin/bower_components/Ionicons/src/spoon.svg b/admin/bower_components/Ionicons/src/spoon.svg deleted file mode 100644 index 21e19ed..0000000 --- a/admin/bower_components/Ionicons/src/spoon.svg +++ /dev/null @@ -1,10 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" style="enable-background:new 0 0 512 512;" xml:space="preserve"> -<path d="M320,160C320,96,293.5,32,256,32s-64,64-64,128l0,0c0.9,25,15.7,54.3,36.6,64.3c0.5,0.2,0.9,0.4,1.4,0.6c0,0,0,0,0.1,0 - c3.4,1.9,9.8,5.5,9.8,9.7c0,0-16,198.7-16,210.1s5,20.5,10.5,26c5.5,5.5,13.1,9.2,21.3,9.2c0.1,0,0.1,0,0.2,0c0.1,0,0.1,0,0.2,0 - c8.2,0,15.8-3.7,21.4-9.2c5.5-5.5,10.3-12.9,10.3-26s-16-210.1-16-210.1c0-4.2,6.4-7.9,9.8-9.8l1.7-0.9C304.9,214,320,186,320,160" - /> -</svg> diff --git a/admin/bower_components/Ionicons/src/star.svg b/admin/bower_components/Ionicons/src/star.svg deleted file mode 100644 index b8285b7..0000000 --- a/admin/bower_components/Ionicons/src/star.svg +++ /dev/null @@ -1,7 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" enable-background="new 0 0 512 512" xml:space="preserve"> -<polygon points="480,200 308.519,200 256.029,32 203.519,200 32,200 170.946,304.209 116,480 256,368 396,480 341.073,304.195 "/> -</svg> diff --git a/admin/bower_components/Ionicons/src/stats-bars.svg b/admin/bower_components/Ionicons/src/stats-bars.svg deleted file mode 100644 index 59b2c54..0000000 --- a/admin/bower_components/Ionicons/src/stats-bars.svg +++ /dev/null @@ -1,12 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" style="enable-background:new 0 0 512 512;" xml:space="preserve"> -<g> - <rect x="176" y="96" width="64" height="320"/> - <rect x="80" y="320" width="64" height="96"/> - <rect x="272" y="256" width="64" height="160"/> - <rect x="368" y="192" width="64" height="224"/> -</g> -</svg> diff --git a/admin/bower_components/Ionicons/src/steam.svg b/admin/bower_components/Ionicons/src/steam.svg deleted file mode 100644 index b04c04f..0000000 --- a/admin/bower_components/Ionicons/src/steam.svg +++ /dev/null @@ -1,20 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" style="enable-background:new 0 0 512 512;" xml:space="preserve"> -<style type="text/css"> -<![CDATA[ - .st0{fill:#010101;} -]]> -</style> -<path id="Gears" class="st0" d="M480,208.2c0,20.5-16.6,37.2-37.2,37.2c-20.5,0-37.2-16.6-37.2-37.2c0-20.5,16.6-37.2,37.2-37.2 - C463.3,171,480,187.7,480,208.2z M442.6,139c-38.1,0-69,30.7-69.4,68.7L330,269.7c-1.8-0.2-3.6-0.3-5.4-0.3 - c-9.7,0-18.7,2.7-26.4,7.3l-195.8-78.7c-5.1-23.2-25.9-40.7-50.6-40.7C23.3,157.2,0,180.6,0,209.1c0,28.5,23.3,51.8,51.8,51.8 - c9.7,0,18.7-2.7,26.4-7.3L274,332.2c5.1,23.3,25.8,40.8,50.6,40.8c26.8,0,49-20.6,51.5-46.7l66.5-48.6c38.3,0,69.4-31,69.4-69.3 - C512,170.1,480.9,139,442.6,139z M442.6,161.9c25.7,0,46.5,20.9,46.5,46.5c0,25.7-20.9,46.4-46.5,46.4c-25.7,0-46.5-20.8-46.5-46.4 - C396.1,182.7,416.9,161.9,442.6,161.9z M51.8,170.9c14.6,0,27.3,8.2,33.7,20.2l-18.9-7.6v0.1c-15.3-5.5-32.2,2-38.3,17.1 - c-6.1,15.2,0.9,32.3,15.7,38.9v0.1l16.1,6.4c-2.6,0.6-5.4,0.9-8.2,0.9c-21.1,0-38.1-17-38.1-38.1C13.7,188,30.7,170.9,51.8,170.9z - M324.6,283.1c21.1,0,38.1,17,38.1,38.1c0,21.1-17,38.1-38.1,38.1c-14.7,0-27.4-8.2-33.7-20.3c6.3,2.5,12.5,5,18.8,7.6 - c15.5,6.2,33.2-1.3,39.4-16.8c6.2-15.5-1.3-33.1-16.9-39.4l-15.9-6.4C319.1,283.5,321.8,283.1,324.6,283.1z"/> -</svg> diff --git a/admin/bower_components/Ionicons/src/stop.svg b/admin/bower_components/Ionicons/src/stop.svg deleted file mode 100644 index 2f1ac06..0000000 --- a/admin/bower_components/Ionicons/src/stop.svg +++ /dev/null @@ -1,8 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" style="enable-background:new 0 0 512 512;" xml:space="preserve"> -<path d="M437.4,64H74.6C68.7,64,64,68.7,64,74.6v362.8c0,5.9,4.7,10.6,10.6,10.6h362.8c5.8,0,10.6-4.7,10.6-10.6V74.6 - C448,68.7,443.2,64,437.4,64z"/> -</svg> diff --git a/admin/bower_components/Ionicons/src/thermometer.svg b/admin/bower_components/Ionicons/src/thermometer.svg deleted file mode 100644 index 3d450a5..0000000 --- a/admin/bower_components/Ionicons/src/thermometer.svg +++ /dev/null @@ -1,11 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" style="enable-background:new 0 0 512 512;" xml:space="preserve"> -<g> - <path d="M303,335.6V78.4c0-25.7-21-46.5-47-46.5c-26,0-47,20.8-47,46.5v256.8c-20,14.5-32.9,38.2-32.9,64.9c0,44.2,36,80,80.2,80 - c44.2,0,79.8-35.8,79.8-80C336,373.6,323,350.1,303,335.6z M241,78.4c0-8,6.7-14.5,15-14.5s15,6.5,15,14.5V128h-30V78.4z M272,288 - h-16v-16h16V288z M272,256h-16v-64h16V256z"/> -</g> -</svg> diff --git a/admin/bower_components/Ionicons/src/thumbsdown.svg b/admin/bower_components/Ionicons/src/thumbsdown.svg deleted file mode 100644 index 2902b02..0000000 --- a/admin/bower_components/Ionicons/src/thumbsdown.svg +++ /dev/null @@ -1,13 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" style="enable-background:new 0 0 512 512;" xml:space="preserve"> -<g> - <path d="M87.8,252.7C74,257.2,64,270.2,64,285.5c0,19,15.4,34.5,34.5,34.5h102.6c-2,25-10,53.6-1.1,87.3 - c7.5,28.4,39.4,49.7,52.4,36.8c5-4.9,3.5-15.2,3.5-33.8c0-42.8,17.8-86.1,39.8-108.7c9.4-9.7,25.2-13,40.2-13.6v16h112V64H336v32 - c-20.6,0.5-52.6-5.2-75.8-6.6c-52-3.1-102,2.4-126.3,8.1c-24.3,5.7-35,13-35,30.6c0,6.4,1.9,12.3,5.1,17.3 - c-11.8,4.7-20.1,16.2-20.1,29.7c0,7.2,2.4,13.8,6.4,19.2c-11.9,4.6-20.4,16.2-20.4,29.8C70,236.6,77.3,247.5,87.8,252.7z M400,96.3 - c8.8,0,16,7.1,16,16c0,8.8-7.2,16-16,16s-16-7.1-16-16C384,103.5,391.2,96.3,400,96.3z"/> -</g> -</svg> diff --git a/admin/bower_components/Ionicons/src/thumbsup.svg b/admin/bower_components/Ionicons/src/thumbsup.svg deleted file mode 100644 index bf01b9b..0000000 --- a/admin/bower_components/Ionicons/src/thumbsup.svg +++ /dev/null @@ -1,13 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" style="enable-background:new 0 0 512 512;" xml:space="preserve"> -<g> - <path d="M424.2,259.3c13.8-4.5,23.8-17.5,23.8-32.8c0-19-15.4-34.5-34.5-34.5H310.9c2-25,10-53.6,1.1-87.3 - c-7.5-28.4-39.4-49.7-52.4-36.8c-5,4.9-3.5,15.2-3.5,33.8c0,42.8-17.8,86.1-39.8,108.7c-9.4,9.7-25.2,13-40.2,13.6v-16H64v240h112 - v-32c20.6-0.5,52.6,5.2,75.8,6.6c52,3.1,102-2.4,126.3-8.1c24.3-5.7,35-13,35-30.6c0-6.4-1.9-12.3-5.1-17.3 - c11.8-4.7,20.1-16.2,20.1-29.7c0-7.2-2.4-13.8-6.4-19.2c11.9-4.6,20.4-16.2,20.4-29.8C442,275.4,434.7,264.5,424.2,259.3z - M112,415.7c-8.8,0-16-7.1-16-16c0-8.8,7.2-16,16-16s16,7.1,16,16C128,408.5,120.8,415.7,112,415.7z"/> -</g> -</svg> diff --git a/admin/bower_components/Ionicons/src/toggle-filled.svg b/admin/bower_components/Ionicons/src/toggle-filled.svg deleted file mode 100644 index 6680dda..0000000 --- a/admin/bower_components/Ionicons/src/toggle-filled.svg +++ /dev/null @@ -1,11 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" enable-background="new 0 0 512 512" xml:space="preserve"> -<g> - <path d="M352,208c-26.467,0-48,21.533-48,48c0,26.467,21.533,48,48,48s48-21.533,48-48C400,229.533,378.467,208,352,208z"/> - <path d="M352,128H160c-70.692,0-128,57.308-128,128s57.308,128,128,128h192c70.692,0,128-57.308,128-128S422.692,128,352,128z - M352,336c-44.183,0-80-35.817-80-80s35.817-80,80-80s80,35.817,80,80S396.183,336,352,336z"/> -</g> -</svg> diff --git a/admin/bower_components/Ionicons/src/toggle.svg b/admin/bower_components/Ionicons/src/toggle.svg deleted file mode 100644 index e60f7bd..0000000 --- a/admin/bower_components/Ionicons/src/toggle.svg +++ /dev/null @@ -1,12 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" enable-background="new 0 0 512 512" xml:space="preserve"> -<g> - <path d="M352,160c52.934,0,96,43.065,96,96s-43.066,96-96,96H160c-52.935,0-96-43.065-96-96s43.065-96,96-96H352 M352,128H160 - c-70.692,0-128,57.308-128,128s57.308,128,128,128h192c70.692,0,128-57.308,128-128S422.692,128,352,128L352,128z"/> - <path d="M160,208c26.467,0,48,21.533,48,48c0,26.467-21.533,48-48,48s-48-21.533-48-48C112,229.533,133.533,208,160,208 M160,176 - c-44.183,0-80,35.817-80,80s35.817,80,80,80s80-35.817,80-80S204.183,176,160,176L160,176z"/> -</g> -</svg> diff --git a/admin/bower_components/Ionicons/src/transgender.svg b/admin/bower_components/Ionicons/src/transgender.svg deleted file mode 100644 index 5a43b00..0000000 --- a/admin/bower_components/Ionicons/src/transgender.svg +++ /dev/null @@ -1,12 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" enable-background="new 0 0 512 512" xml:space="preserve"> -<path d="M368,0v40h69.873l-93.046,91.97c-8.529-8.249-15.132-12.586-15.132-12.586C308.841,104.694,283.422,96,256,96 - c-34.525,0-65.86,13.669-88.903,35.894l-17.333-17.131l35.833-35.833L153.07,46.403l-36.022,36.021L74.127,40H144V0H0v144h40V67.806 - l46.085,45.582L50.402,149.07l32.526,32.526l35.862-35.861l22.185,21.942c-8.395,17.065-13.118,36.267-13.118,56.578 - C127.857,286.884,173,338.989,232,350.25V402h-72v46h72v64h48v-64h72v-46h-72v-51.75c58-11.261,104.222-63.397,104.222-126.025 - c0-20.202-4.794-39.738-13.094-56.649L472,67.806V144h40V0H368z M255.929,304.402c-44.156,0-80.079-35.968-80.079-80.178 - c0-44.211,35.923-80.18,80.079-80.18c44.155,0,80.078,35.969,80.078,80.18C336.007,268.435,300.084,304.402,255.929,304.402z"/> -</svg> diff --git a/admin/bower_components/Ionicons/src/trash-a.svg b/admin/bower_components/Ionicons/src/trash-a.svg deleted file mode 100644 index 1631e74..0000000 --- a/admin/bower_components/Ionicons/src/trash-a.svg +++ /dev/null @@ -1,10 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" style="enable-background:new 0 0 512 512;" xml:space="preserve"> -<path d="M341,128V99c0-19.1-14.5-35-34.5-35H205.4C185.5,64,171,79.9,171,99v29H80v32h9.2c0,0,5.4,0.6,8.2,3.4c2.8,2.8,3.9,9,3.9,9 - l19,241.7c1.5,29.4,1.5,33.9,36,33.9h199.4c34.5,0,34.5-4.4,36-33.8l19-241.6c0,0,1.1-6.3,3.9-9.1c2.8-2.8,8.2-3.4,8.2-3.4h9.2v-32 - h-91V128z M192,99c0-9.6,7.8-15,17.7-15h91.7c9.9,0,18.6,5.5,18.6,15v29H192V99z M183.5,384l-10.3-192h20.3L204,384H183.5z - M267.1,384h-22V192h22V384z M328.7,384h-20.4l10.5-192h20.3L328.7,384z"/> -</svg> diff --git a/admin/bower_components/Ionicons/src/trash-b.svg b/admin/bower_components/Ionicons/src/trash-b.svg deleted file mode 100644 index f75e2f8..0000000 --- a/admin/bower_components/Ionicons/src/trash-b.svg +++ /dev/null @@ -1,13 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" style="enable-background:new 0 0 512 512;" xml:space="preserve"> -<g> - <path d="M413.7,133.4c-2.4-9-4-14-4-14c-2.6-9.3-9.2-9.3-19-10.9l-53.1-6.7c-6.6-1.1-6.6-1.1-9.2-6.8c-8.7-19.6-11.4-31-20.9-31 - h-103c-9.5,0-12.1,11.4-20.8,31.1c-2.6,5.6-2.6,5.6-9.2,6.8l-53.2,6.7c-9.7,1.6-16.7,2.5-19.3,11.8c0,0-1.2,4.1-3.7,13 - c-3.2,11.9-4.5,10.6,6.5,10.6h302.4C418.2,144.1,417,145.3,413.7,133.4z"/> - <path d="M379.4,176H132.6c-16.6,0-17.4,2.2-16.4,14.7l18.7,242.6c1.6,12.3,2.8,14.8,17.5,14.8h207.2c14.7,0,15.9-2.5,17.5-14.8 - l18.7-242.6C396.8,178.1,396,176,379.4,176z"/> -</g> -</svg> diff --git a/admin/bower_components/Ionicons/src/trophy.svg b/admin/bower_components/Ionicons/src/trophy.svg deleted file mode 100644 index b1600f4..0000000 --- a/admin/bower_components/Ionicons/src/trophy.svg +++ /dev/null @@ -1,16 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" enable-background="new 0 0 512 512" xml:space="preserve"> -<path d="M479.863,103.342c-0.051-2.833-0.096-5.279-0.096-7.342h-80.835c1.56-34.617,0.512-64,0.512-64s-95.591,0-142.568,0 - c-0.337,0-0.669,0.022-1,0.056c-0.33-0.034-0.662-0.056-1-0.056c-46.977,0-142.931,0-142.931,0s-1.048,29.383,0.512,64H32.232H32 - v20.548c0,0.114,0,0.228,0,0.342V128h0.161c0.811,26.096,4.98,60.999,22.333,96.729c14.718,30.307,35.912,55.664,62.996,75.367 - c22.422,16.312,48.041,28.064,76.205,35.084C209.96,352.539,226,362.109,240,365.957v35.625C238,412.165,225.86,448,141.234,448H128 - v32h256v-32h-13.178C271.538,448,272,398.666,272,398.666v-32.714c14-3.843,29.73-13.374,45.91-30.644 - c28.369-7.004,54.072-18.801,76.633-35.213c27.082-19.703,48.262-45.06,62.98-75.367 - C481.203,175.967,480.326,128.723,479.863,103.342z M83.262,210.745C68.802,180.966,65.018,150.996,64.187,128h50.487 - c0.868,8.914,1.966,17.701,3.356,25.98c8.513,50.709,20.213,95.493,42.354,135.009C126.546,271.848,99.97,245.149,83.262,210.745z - M428.737,210.745c-16.807,34.61-43.603,61.421-77.729,78.55c22.215-39.591,33.816-84.475,42.352-135.314 - c1.39-8.28,2.488-17.067,3.356-25.98h51.096C446.981,150.996,443.198,180.966,428.737,210.745z"/> -</svg> diff --git a/admin/bower_components/Ionicons/src/tshirt-outline.svg b/admin/bower_components/Ionicons/src/tshirt-outline.svg deleted file mode 100644 index 2d2863f..0000000 --- a/admin/bower_components/Ionicons/src/tshirt-outline.svg +++ /dev/null @@ -1,11 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" enable-background="new 0 0 512 512" xml:space="preserve"> -<path d="M178.249,85.534c18.761,22.976,43.909,34.009,77.445,34.572l0.269-0.106h0.269c22.638,0,41.169-4.861,56.653-15.091 - c7.801-5.154,14.721-11.47,21.029-19.382l104.461,31.367L426.59,149.41l-38.743-4.685l-37.912-4.589l2.114,38.133L366.176,433 - H145.824l14.127-254.729l2.106-37.981l-37.782,4.428l-38.854,4.553l-11.767-32.358L178.249,85.534 M320,48 - c-13.988,27.227-30.771,40.223-63.769,40.223C223.723,87.676,205.722,75,192,48L32,96l32,88l64-7.5L112,465h288l-16-288.5l64,7.75 - L480,96L320,48L320,48z"/> -</svg> diff --git a/admin/bower_components/Ionicons/src/tshirt.svg b/admin/bower_components/Ionicons/src/tshirt.svg deleted file mode 100644 index 6a38c48..0000000 --- a/admin/bower_components/Ionicons/src/tshirt.svg +++ /dev/null @@ -1,8 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" enable-background="new 0 0 512 512" xml:space="preserve"> -<path d="M480,96L320,48c-13.988,27.227-30.771,40.223-63.769,40.223C223.723,87.676,205.722,75,192,48L32,96l32,88l64-8l-16,288h288 - l-16-288l64,8L480,96z"/> -</svg> diff --git a/admin/bower_components/Ionicons/src/umbrella.svg b/admin/bower_components/Ionicons/src/umbrella.svg deleted file mode 100644 index df578e5..0000000 --- a/admin/bower_components/Ionicons/src/umbrella.svg +++ /dev/null @@ -1,18 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" style="enable-background:new 0 0 512 512;" xml:space="preserve"> -<g> - <g> - <path d="M376.2,288c0,0.1,0,0.2,0,0.4C376.2,288.2,376.2,288.1,376.2,288L376.2,288z"/> - <path d="M136.2,288c0,0.1,0,0.2,0,0.4C136.2,288.2,136.2,288.1,136.2,288L136.2,288z"/> - </g> - <path d="M272,48.8c0-0.3,0-0.5,0-0.8c0-8.8-7.2-16-16-16c-8.8,0-16,7.2-16,16c0,0.2,0,0.5,0,0.7c-116.3,8-208,103.1-208,221.4 - c0,3.6,0.2,14.2,0.4,17.8c2.7-26.3,24.7-51.7,51.7-51.7c28.7,0,51.9,23.1,52.1,51.7h0c0.2-28.6,23.4-51.7,52.1-51.7 - c26.5,0,50.9,21.1,51.7,45.5V416c0,17.9-14.1,32-32,32c-17.1,0-31-14.4-31-32c0-8.8-7.2-16-16-16s-16,7.2-16,16 - c0,35.3,28.3,64,63,64c17.3,0,33.5-6.7,45.5-18.8c11.9-12,18.5-28.1,18.5-45.2l0-135.3c3.3-32.7,23.4-44.4,52.1-44.4 - c28.7,0,51.9,23.1,52.1,51.7h0c0.2-28.6,23.4-51.7,52.1-51.7c26.1,0,47.6,26.7,51.4,51.7c0.1-2.8,0.2-9.1,0.2-11.8 - C480,157.8,388.2,57.3,272,48.8z"/> -</g> -</svg> diff --git a/admin/bower_components/Ionicons/src/university.svg b/admin/bower_components/Ionicons/src/university.svg deleted file mode 100644 index ca0a190..0000000 --- a/admin/bower_components/Ionicons/src/university.svg +++ /dev/null @@ -1,11 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" enable-background="new 0 0 512 512" xml:space="preserve"> -<g> - <polygon points="256,64 32,176.295 64,197.367 64,400 96,416 96,217.849 255.852,320 387.996,234.549 480,174.727 "/> - <path d="M390.13,256L256,343.768L120.531,256L112,337.529C128,349.984,224,416,256.002,448C288,416,384,350.031,400,337.561 - L390.13,256z"/> -</g> -</svg> diff --git a/admin/bower_components/Ionicons/src/unlocked.svg b/admin/bower_components/Ionicons/src/unlocked.svg deleted file mode 100644 index 5193882..0000000 --- a/admin/bower_components/Ionicons/src/unlocked.svg +++ /dev/null @@ -1,10 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" style="enable-background:new 0 0 512 512;" xml:space="preserve"> -<path d="M86.4,480h339.2c12.3,0,22.4-9.9,22.4-22.1V246c0-12.2-10-22-22.4-22H161v-30.9c0-27.3,9.9-61.1,28.1-80.3l0,0l0-0.3 - C206.7,93.9,231,83,255.9,83h0.1h0.1c24.9,0,49.2,10.9,66.8,29.5l0,0.2l0,0.1c11.3,11.9,19.4,29.3,24,47.3h53.4 - c-5.9-31.3-19.7-61.8-39.2-82.4C334.9,49.9,297.4,32,256.1,32c-0.1,0-0.1,0-0.1,0c0,0-0.1,0-0.1,0c-41.3,0-79,17.9-105.3,45.6 - c-26.4,27.8-42.6,73.9-42.6,115.4V224H89h-2.6C74,224,64,233.9,64,246v211.9C64,470.1,74,480,86.4,480z"/> -</svg> diff --git a/admin/bower_components/Ionicons/src/upload.svg b/admin/bower_components/Ionicons/src/upload.svg deleted file mode 100644 index 12baaf3..0000000 --- a/admin/bower_components/Ionicons/src/upload.svg +++ /dev/null @@ -1,9 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" style="enable-background:new 0 0 512 512;" xml:space="preserve"> -<path d="M398.1,233.2c0-1.2,0.2-2.4,0.2-3.6c0-65-51.8-117.6-115.7-117.6c-46.1,0-85.7,27.4-104.3,67c-8.1-4.1-17.2-6.5-26.8-6.5 - c-29.5,0-54.1,21.9-58.8,50.5C57.3,235.2,32,269.1,32,309c0,50.2,40.1,91,89.5,91H224v-80l-48.2,0l80.2-83.7l80.2,83.6l-48.2,0v80 - h110.3c45.2,0,81.7-37.5,81.7-83.4C480,270.6,443.3,233.3,398.1,233.2z"/> -</svg> diff --git a/admin/bower_components/Ionicons/src/usb.svg b/admin/bower_components/Ionicons/src/usb.svg deleted file mode 100644 index b431848..0000000 --- a/admin/bower_components/Ionicons/src/usb.svg +++ /dev/null @@ -1,22 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" style="enable-background:new 0 0 512 512;" xml:space="preserve"> -<g> - <path d="M144,220C144,220,144.1,220.1,144,220L144,220z"/> - <path d="M384,128.3c0-17.8-14.4-32.2-32.1-32.2c-17.7,0-32.1,14.4-32.1,32.1c0,12.1,6.7,22.7,16.6,28.2c1.3,1.5,2.2,4.5,2.2,6 - c0,0.1,0,0.2,0,0.4c-0.8,17.6-3.8,31.9-7.1,41.7c-4.3,12.6-38.2,39.6-51.5,42.2c-5.8,1.2-7.9-0.6-7.9-10.2c0,0,0-138.9,0-140.4 - s0.2-3.5,1.9-5c0,0,0,0,0,0c8.6-5.8,14.3-15.6,14.3-26.8c0-17.8-14.4-32.2-32.1-32.2c-17.7,0-32.1,14.4-32.1,32.2 - c0,11.3,5.8,21.3,14.6,27c0,0,0.1,0.1,0.1,0.1c0.1,0.1,0.2,0.1,0.4,0.2c0.2,0.1,0.4,0.2,0.6,0.4c2.3,1.5,3.3,3,3.3,4.2 - c0,1.3,0,189.3,0,196.3s-1.1,12.3-8.4,11.8s-41.7-23.5-51.4-44.1c-4.5-9.5-6.8-18.8-6.8-28h0c0,0,0-0.4,0-0.5 - c0-3.1,0-11.3,3.2-13.6c7.8-5.9,12.8-15.2,12.8-25.7c0-17.8-14.4-32.2-32.1-32.2S128,174.4,128,192.2c0,11.9,6.5,22.3,16,27.8 - c2.4,1.5,3,2.9,3.8,10.6s3,24.6,9.1,39.9c7.3,18.6,20.9,32.6,39.7,45.2c13.6,9.3,25.3,16.6,32.1,26.4s10.2,13.5,10.2,27 - c0,0,0-0.9,0,0c0,12.8-4,14-9.3,17.8c-14.1,8.7-23.5,24.2-23.5,42c0,0.1,0,0.3,0,0.4c0,0.2,0,0.5,0,0.7c0,27.5,22.3,49.8,49.8,49.8 - c27.5,0,49.8-22.3,49.8-49.8c0-13.3-5.2-25.4-13.7-34.3c-2.9-3.2-6-6-9.6-8.3c-7.5-5.2-10.3-11.5-10.3-18.1v-24.1 - c0-25.1,4.1-41.1,11.1-53.3c7.3-12.7,18.3-22.6,35.4-34.2c18.8-12.6,32.2-26.6,39.6-45.2c5.7-14.4,7.6-31,8.6-50.9 - c0.1-1.8,1.4-5.8,3.3-6.8h0C378.4,149,384,139.3,384,128.3z M160.1,208.3c-8.9,0-16.1-7.3-16.1-16.2s7.2-16.2,16.1-16.2 - s16.1,7.3,16.1,16.2S169,208.3,160.1,208.3z M256,80.3c-8.9,0-16.1-7.3-16.1-16.2S247.1,48,256,48s16.1,7.3,16.1,16.2 - S264.9,80.3,256,80.3z M351.9,144.3c-8.9,0-16.1-7.3-16.1-16.2S343,112,351.9,112s16.1,7.3,16.1,16.2S360.8,144.3,351.9,144.3z"/> -</g> -</svg> diff --git a/admin/bower_components/Ionicons/src/videocamera.svg b/admin/bower_components/Ionicons/src/videocamera.svg deleted file mode 100644 index 3d2633e..0000000 --- a/admin/bower_components/Ionicons/src/videocamera.svg +++ /dev/null @@ -1,11 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" style="enable-background:new 0 0 512 512;" xml:space="preserve"> -<path d="M367,185.3c0-5.1-4-9.3-9.2-9.3H306v-32.2c0-35.2-29.3-63.8-64.9-63.8H63v48h176.1c4.5,0,9.9,5.6,9.9,10.1V176H41.4 - c-5.2,0-9.4,4.2-9.4,9.3v170.4v55.7v11.3c0,5.1,4.2,9.3,9.4,9.3h316.4c5.2,0,9.2-4.2,9.2-9.3v-64.5l113,34.7v-88.2v-88.2l-113,34.7 - V185.3z M258.2,341h-10.9H152h-11.9c-19.8,0-35.9-16-35.9-35.8s16.1-35.8,35.9-35.8c19.8,0,35.9,16.2,35.9,36 - c0,10-4.2,18.6-10.8,25.6h67.9c-6.6-7-10.8-15.6-10.8-25.6c0-19.8,16.1-35.9,35.9-35.9c19.8,0,35.9,15.9,35.9,35.7 - S278,341,258.2,341z"/> -</svg> diff --git a/admin/bower_components/Ionicons/src/volume-high.svg b/admin/bower_components/Ionicons/src/volume-high.svg deleted file mode 100644 index 0732344..0000000 --- a/admin/bower_components/Ionicons/src/volume-high.svg +++ /dev/null @@ -1,15 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" style="enable-background:new 0 0 512 512;" xml:space="preserve"> -<g> - <polygon points="231,407.8 231,104.3 136.1,192 32,192 32,320 136.1,320 "/> - <path d="M287.1,355.7c20.5-27.9,32.8-62.3,32.8-99.7c0-37.4-12.3-71.8-32.8-99.7l-20.4,15.3c17.4,23.6,27.8,52.7,27.8,84.4 - c0,31.6-10.4,60.8-27.8,84.3L287.1,355.7z"/> - <path d="M353.7,401.7c30-40.7,48-91.1,48-145.7s-18-104.9-48-145.7l-20.4,15.3c26.9,36.4,43,81.5,43,130.4 - c0,48.9-16.1,93.9-43,130.3L353.7,401.7z"/> - <path d="M396.7,79.4c36.4,49.3,57.9,110.5,57.9,176.6c0,66.1-21.5,127.2-57.9,176.6l20.5,15.4c39.4-53.6,62.8-120,62.8-192 - c0-72-23.4-138.4-62.8-192L396.7,79.4z"/> -</g> -</svg> diff --git a/admin/bower_components/Ionicons/src/volume-low.svg b/admin/bower_components/Ionicons/src/volume-low.svg deleted file mode 100644 index c96ed47..0000000 --- a/admin/bower_components/Ionicons/src/volume-low.svg +++ /dev/null @@ -1,11 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" style="enable-background:new 0 0 512 512;" xml:space="preserve"> -<g> - <polygon points="311,407.7 311,104.4 216.2,192 112,192 112,320 216.2,320 "/> - <path d="M367.2,355.6c20.5-27.8,32.8-62.3,32.8-99.6c0-37.4-12.3-71.8-32.8-99.6l-20.4,15.3c17.4,23.6,27.8,52.7,27.8,84.3 - c0,31.6-10.4,60.7-27.8,84.3L367.2,355.6z"/> -</g> -</svg> diff --git a/admin/bower_components/Ionicons/src/volume-medium.svg b/admin/bower_components/Ionicons/src/volume-medium.svg deleted file mode 100644 index 2c44a0b..0000000 --- a/admin/bower_components/Ionicons/src/volume-medium.svg +++ /dev/null @@ -1,13 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" style="enable-background:new 0 0 512 512;" xml:space="preserve"> -<g> - <polygon points="270,407.7 270,104.4 175.3,192 71,192 71,320 175.3,320 "/> - <path d="M326.3,355.6c20.5-27.8,32.8-62.3,32.8-99.6c0-37.4-12.3-71.8-32.8-99.6l-20.4,15.3c17.4,23.6,27.8,52.7,27.8,84.3 - c0,31.6-10.4,60.7-27.8,84.3L326.3,355.6z"/> - <path d="M392.8,401.6c30-40.7,48-91,48-145.6s-18-104.9-48-145.6l-20.4,15.3c26.9,36.4,43,81.4,43,130.3c0,48.9-16.1,93.8-43,130.3 - L392.8,401.6z"/> -</g> -</svg> diff --git a/admin/bower_components/Ionicons/src/volume-mute.svg b/admin/bower_components/Ionicons/src/volume-mute.svg deleted file mode 100644 index 317b061..0000000 --- a/admin/bower_components/Ionicons/src/volume-mute.svg +++ /dev/null @@ -1,14 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" style="enable-background:new 0 0 512 512;" xml:space="preserve"> -<g> - <polygon points="255.9,217 191,217 191,295 255.9,295 303,346.3 303,165.7 "/> - <path d="M364.5,60.1c-0.4-0.2-0.7-0.4-1.1-0.6C331.5,42,294.9,32,256,32C132.3,32,32,132.3,32,256c0,84.3,46.6,157.6,115.4,195.9 - c0.4,0.2,0.7,0.5,1.1,0.7C180.5,470,217.1,480,256,480c123.7,0,224-100.3,224-224C480,171.7,433.4,98.3,364.5,60.1z M393.9,355.4 - L336,297.1v76.7l19.6,19.9c-28,20.3-62.3,32.7-99.5,32.7c-21.6,0-42.3-4.2-61.3-11.5c-6.5-2.5-12.9-5.3-19-8.6 - c-53.6-28.7-90.1-85.2-90.1-150.3c0-37.2,12.4-71.4,32.7-99.4l35.3,35.4h76.7l-73.6-73.8c28-20.2,62.1-32.6,99.4-32.6 - c21.6,0,42.2,4.2,61.3,11.5c6.1,2.4,12.2,5,17.9,8c54.2,28.5,91.3,85.3,91.3,150.8C426.5,293.3,414.2,327.4,393.9,355.4z"/> -</g> -</svg> diff --git a/admin/bower_components/Ionicons/src/wand.svg b/admin/bower_components/Ionicons/src/wand.svg deleted file mode 100644 index e21ddb9..0000000 --- a/admin/bower_components/Ionicons/src/wand.svg +++ /dev/null @@ -1,17 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" enable-background="new 0 0 512 512" xml:space="preserve"> -<g> - - <rect x="238.059" y="206.059" transform="matrix(0.7071 0.7071 -0.7071 0.7071 249.3726 -122.0387)" width="67.882" height="67.882"/> - - <rect x="110.058" y="243.549" transform="matrix(0.7071 0.7071 -0.7071 0.7071 302.3989 5.9646)" width="67.884" height="248.901"/> - <rect x="256" y="32" width="32" height="64"/> - <rect x="380.451" y="83.55" transform="matrix(-0.7071 -0.7071 0.7071 -0.7071 595.0701 477.5923)" width="32" height="63.999"/> - <rect x="131.549" y="83.549" transform="matrix(0.7071 -0.7071 0.7071 0.7071 -38.4898 138.1746)" width="32" height="64"/> - <rect x="380.451" y="332.451" transform="matrix(0.7071 -0.7071 0.7071 0.7071 -141.5881 387.0668)" width="32" height="64"/> - <rect x="416" y="224" width="64" height="32"/> -</g> -</svg> diff --git a/admin/bower_components/Ionicons/src/waterdrop.svg b/admin/bower_components/Ionicons/src/waterdrop.svg deleted file mode 100644 index be14c5e..0000000 --- a/admin/bower_components/Ionicons/src/waterdrop.svg +++ /dev/null @@ -1,11 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" style="enable-background:new 0 0 512 512;" xml:space="preserve"> -<path d="M271,38.6c-0.3-0.4-0.7-0.7-0.9-1c0,0-0.1-0.1-0.1-0.1c-3.6-3.4-8.5-5.5-13.9-5.5c-5.5,0-10.4,2.1-13.9,5.5 - c0,0-0.1,0.1-0.1,0.1c-0.3,0.3-0.6,0.6-0.9,1c-6.1,6.3-13.8,14.4-22.4,24.1c-17.4,19.7-38.6,46-58.5,76.8 - c-33.4,51.8-62.9,116.1-64.1,183.1c0,1.3-0.1,2.7-0.1,4c0,19.7,3.9,38.5,10.9,55.8c4.1,10,9.2,19.4,15.2,28.2 - C150.7,452.4,200,480,256,480c88.4,0,160-68.7,160-153.4C416,198.7,310.8,79.2,271,38.6z M256,424c-15.8,0-30.7-3.7-43.9-10.1 - c65.9-14.4,118.4-64.7,135.8-129.5c5.2,12.1,8.2,25.5,8.2,39.6C356,379.2,311.2,424,256,424z"/> -</svg> diff --git a/admin/bower_components/Ionicons/src/wifi.svg b/admin/bower_components/Ionicons/src/wifi.svg deleted file mode 100644 index 6f6bc92..0000000 --- a/admin/bower_components/Ionicons/src/wifi.svg +++ /dev/null @@ -1,16 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" style="enable-background:new 0 0 512 512;" xml:space="preserve"> -<g> - <path d="M256.1,96L256.1,96c-79.9,0-155.7,29.9-213.9,84.1L32,189.6l9.9,9.8l32.3,32l9.3,9.2l9.6-8.8 - c44.5-40.9,102.3-63.5,162.8-63.5c60.5,0,118.4,22.6,162.8,63.5l9.6,8.8l9.3-9.2l32.3-32l9.9-9.8l-10.2-9.5 - C411.6,125.9,335.7,96,256.1,96z"/> - <path d="M397.4,256.4c-38.8-35.1-88.9-54.4-141.1-54.4h-0.1h-0.3h-8.5l-0.1,0.2c-49.2,2-96,21.1-132.6,54.2l-10.5,9.5l10.1,10 - l32.7,32.4l9.1,9l9.6-8.4c25.3-22.2,57.4-34.5,90.3-34.5c33.1,0,65.2,12.3,90.5,34.5l9.6,8.4l9.1-9l32.7-32.4l10.1-10L397.4,256.4z - "/> - <path d="M256.2,416l9.6-9.5l52.8-52.2l10.6-10.5l-11.6-9.5c-15.4-11.4-32.4-20-61.5-20c-29,0-44.9,9.4-61.5,20l-11.5,9.5l10.6,10.5 - l52.8,52.2L256.2,416z"/> -</g> -</svg> diff --git a/admin/bower_components/Ionicons/src/wineglass.svg b/admin/bower_components/Ionicons/src/wineglass.svg deleted file mode 100644 index 9148d20..0000000 --- a/admin/bower_components/Ionicons/src/wineglass.svg +++ /dev/null @@ -1,21 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" style="enable-background:new 0 0 512 512;" xml:space="preserve"> -<g> - <path d="M294.9,295.4c11-4.1,18-6.9,26.2-11.7c12-6.9,22.8-15.8,31.9-26.1c20.4-22.9,31-51.1,31-86.1c0-49.9-3.7-101.1-8.1-114.7 - C371.5,43,362.4,32,345.2,32H166.7c-17.1,0-26.2,11.1-30.6,24.6c-4.4,13.5-8.1,64.9-8.1,114.8c0,35.1,10.6,63.2,30.9,86.1 - c9.1,10.3,19.9,19.1,31.8,26c8.2,4.8,15.1,7.8,26,11.7s22.3,7.5,22.3,31.8v94.2c0,10.7-2.9,19-11.1,24.8c-2.8,2.1-6.3,4.3-14.3,6.5 - c-31.5,8.6-46.9,15.6-49.2,17.2c-2,1.4-4.5,3.6-4.5,7.1c0,0,13.8,3.1,96.2,3.1c82.4,0,96-3.1,96-3.1c0-3.5-2.5-5.7-4.6-7.1 - c-2.3-1.6-17.8-8.6-49.4-17.2c-8-2.2-12.2-4.4-15.1-6.5C275,440.3,271,432,271,421.3v-94.2C271,303.1,283.9,299.4,294.9,295.4z - M255.9,270.3c-25.4,0-48.5-10-65.5-26.3c-2.7-2.4-5.2-5-7.6-7.7c-15.6-17.5-22.4-36.7-23.1-64.8C159,143.3,159.6,99,167,64h177 - c6.3,24,9.1,76.8,7.7,107.2c-1.4,30.5-7.2,47.3-22.8,64.9c-2,2.2-3.9,4.3-6.1,6.4C305.7,259.7,282,270.3,255.9,270.3z"/> - <path d="M336.2,170.6c0-7.5-0.1-31.9-1.3-52.6c-0.5-8.4-1.2-16-2.1-22h-153c-0.9,3-1.8,11.6-2.5,22c-1.3,18.9-2.1,43.9-1.5,52.9 - c0.9,13.8,1.5,20.6,4.5,29.4c3.1,9.1,8,17.3,14.6,24.7c2,2.3,4.1,4.4,6.4,6.4c14.2,13.6,33.5,22,54.7,22c21.8,0,41.5-8.8,55.9-23.1 - c1.8-1.7,3.5-3.5,5.2-5.3c6.6-7.4,11.4-15.5,14.5-24.6C334.7,191.4,336.2,181.1,336.2,170.6z M320,179c0,5-3.9,8.1-8.3,8.1 - c-1.6,0-3-0.5-4.3-1.3c-2.2-1.4-3.5-3.9-3.5-6.7v-26c0-4.4,3.6-8,8-8s8,3.6,8,8V179z M318.9,131.8c-1.2,1.8-3,3-5.1,3.5 - c-2.1,0.4-4.3,0-6-1.1c-1.8-1.2-3-3-3.5-5.1c-0.4-2.1,0-4.3,1.1-6c1.2-1.8,3-3,5.1-3.5c2.1-0.4,4.3,0,6,1.1c1.8,1.2,3,3,3.5,5.1 - C320.5,127.8,320.1,130,318.9,131.8z"/> -</g> -</svg> diff --git a/admin/bower_components/Ionicons/src/woman.svg b/admin/bower_components/Ionicons/src/woman.svg deleted file mode 100644 index 0819b61..0000000 --- a/admin/bower_components/Ionicons/src/woman.svg +++ /dev/null @@ -1,13 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" style="enable-background:new 0 0 512 512;" xml:space="preserve"> -<g> - <path d="M190.4,148.6L161,252.9c-6.3,22.8,20.7,31.7,27.3,10.3l26.3-96.2h7.4l-45.2,169H219v127c0,23,32,23,32,0V336h10v127 - c0,23,31,23,31,0V336h43.4l-46.2-169h8.4l26.3,96.2c6.5,21.9,33.3,12.5,27.3-10.2l-29.4-104.4c-4-11.8-18.2-32.6-42-33.6h-47.3 - C207.9,116,193.8,136.6,190.4,148.6z"/> - <path d="M292.6,69.2c0-20.6-16.4-37.3-36.6-37.3c-20.2,0-36.6,16.7-36.6,37.3c0,20.6,16.4,37.3,36.6,37.3 - C276.2,106.5,292.6,89.8,292.6,69.2z"/> -</g> -</svg> diff --git a/admin/bower_components/Ionicons/src/wrench.svg b/admin/bower_components/Ionicons/src/wrench.svg deleted file mode 100644 index dccd22b..0000000 --- a/admin/bower_components/Ionicons/src/wrench.svg +++ /dev/null @@ -1,11 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" style="enable-background:new 0 0 512 512;" xml:space="preserve"> -<path d="M461.9,114.9l-56.5,56.7l-55.1-10l-9.9-55.1l56.5-56.7c-12.7-12.7-30.8-18.5-44.2-17.8c-13.5,0.7-42.3,8.3-64.6,32 - c-21.6,22.8-44.3,65.3-24.2,112.5c2.4,5.7,5.1,13.2-2.9,21.2c-8.1,8-215,202.8-215,202.8c-19.4,16.7-18,47.6-0.1,65.6 - c18.2,17.9,48.9,19,65.6-0.3c0,0,193.2-205.8,202.7-215.1c8.5-8.3,16.1-5.5,21.2-2.9c35.6,18.4,86.3,2.4,112.6-23.9 - c26.3-26.3,31.1-51.7,31.9-64.7C480.7,146.3,476.2,129.2,461.9,114.9z M91.3,443.2c-6.3,6.2-16.5,6.2-22.7,0 - c-6.2-6.3-6.2-16.5,0-22.7c6.3-6.2,16.5-6.2,22.7,0C97.5,426.8,97.5,437,91.3,443.2z"/> -</svg> diff --git a/admin/bower_components/Ionicons/src/xbox.svg b/admin/bower_components/Ionicons/src/xbox.svg deleted file mode 100644 index 41a4bd3..0000000 --- a/admin/bower_components/Ionicons/src/xbox.svg +++ /dev/null @@ -1,21 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="512px" height="512px" viewBox="0 0 512 512" style="enable-background:new 0 0 512 512;" xml:space="preserve"> -<style type="text/css"> -<![CDATA[ - .st0{fill:#010101;} -]]> -</style> -<g> - <path class="st0" d="M126.8,248.3c39.7-58.6,77.9-92.8,77.9-92.8s-42.1-48.9-92.8-67.4l-3.3-0.8C61.7,128.4,32,188.7,32,256 - c0,50.7,16.9,97.5,45.2,135C77.2,386.6,77.8,320.7,126.8,248.3z"/> - <path class="st0" d="M480,256c0-67.3-29.7-127.6-76.6-168.7l-3.2,0.9c-50.7,18.5-92.9,67.4-92.9,67.4s38.2,34.2,77.9,92.8 - c49,72.4,49.6,138.3,49.5,142.7C463.2,353.5,480,306.7,480,256z"/> - <path class="st0" d="M201.2,80.9c29.3,13.1,54.6,34.6,54.6,34.6s25.5-21.4,54.8-34.6c36.8-16.5,64.9-11.3,72.3-9.5 - C346.8,46.6,303.1,32,256,32c-47.1,0-90.8,14.6-126.9,39.4C136.3,69.6,164.3,64.3,201.2,80.9z"/> - <path class="st0" d="M358.7,292.9C312.4,236,255.8,199,255.8,199s-56.3,37-102.7,93.9c-39.8,48.9-54.6,84.8-62.6,107.8l-1.3,4.8 - c41,45.7,100.5,74.5,166.8,74.5c66.3,0,125.8-28.8,166.8-74.5l-1.4-4.8C413.4,377.7,398.5,341.8,358.7,292.9z"/> -</g> -</svg> diff --git a/admin/bower_components/bootstrap-datepicker/.bower.json b/admin/bower_components/bootstrap-datepicker/.bower.json deleted file mode 100644 index 03b48c5..0000000 --- a/admin/bower_components/bootstrap-datepicker/.bower.json +++ /dev/null @@ -1,23 +0,0 @@ -{ - "name": "bootstrap-datepicker", - "main": [ - "dist/css/bootstrap-datepicker3.css", - "dist/js/bootstrap-datepicker.js" - ], - "license": "Apache-2.0", - "dependencies": { - "jquery": ">=1.7.1 <4.0.0" - }, - "ignore": [], - "homepage": "https://github.com/eternicode/bootstrap-datepicker", - "version": "1.7.1", - "_release": "1.7.1", - "_resolution": { - "type": "version", - "tag": "v1.7.1", - "commit": "9008cc328620c1695a0c95d036e57d356fca5c03" - }, - "_source": "https://github.com/eternicode/bootstrap-datepicker.git", - "_target": "^1.7.0", - "_originalSource": "bootstrap-datepicker" -} \ No newline at end of file diff --git a/admin/bower_components/bootstrap-datepicker/.editorconfig b/admin/bower_components/bootstrap-datepicker/.editorconfig deleted file mode 100644 index b22d6e6..0000000 --- a/admin/bower_components/bootstrap-datepicker/.editorconfig +++ /dev/null @@ -1,11 +0,0 @@ -# EditorConfig is awesome: http://EditorConfig.org - -root = true - -[*] -charset = utf-8 -end_of_line = lf -indent_size = 2 -indent_style = space -insert_final_newline = true -trim_trailing_whitespace = true diff --git a/admin/bower_components/bootstrap-datepicker/.github/ISSUE_TEMPLATE.md b/admin/bower_components/bootstrap-datepicker/.github/ISSUE_TEMPLATE.md deleted file mode 100644 index 4d729fc..0000000 --- a/admin/bower_components/bootstrap-datepicker/.github/ISSUE_TEMPLATE.md +++ /dev/null @@ -1,13 +0,0 @@ -### Expected behaviour -Tell us what should happen. - -### Actual behaviour -Tell us what happens instead. - -### Datepicker version used - -ex. 1.6.1. - -### Example code - -Jsfiddle example to reproduce the problem. diff --git a/admin/bower_components/bootstrap-datepicker/.github/PULL_REQUEST_TEMPLATE.md b/admin/bower_components/bootstrap-datepicker/.github/PULL_REQUEST_TEMPLATE.md deleted file mode 100644 index 3a7001f..0000000 --- a/admin/bower_components/bootstrap-datepicker/.github/PULL_REQUEST_TEMPLATE.md +++ /dev/null @@ -1,7 +0,0 @@ -| Q | A -| --------------- | --- -| Bug fix? | no|yes -| New feature? | no|yes -| BC breaks? | no|yes -| Related tickets | fixes #X, partially #Y, mentioned in #Z -| License | MIT diff --git a/admin/bower_components/bootstrap-datepicker/.gitignore b/admin/bower_components/bootstrap-datepicker/.gitignore deleted file mode 100644 index 9621782..0000000 --- a/admin/bower_components/bootstrap-datepicker/.gitignore +++ /dev/null @@ -1,10 +0,0 @@ -docs/_build -*-dist.zip - -# OS or Editor folders -.DS_Store -.idea - -# Folders to ignore -bower_components -node_modules diff --git a/admin/bower_components/bootstrap-datepicker/.travis.yml b/admin/bower_components/bootstrap-datepicker/.travis.yml deleted file mode 100644 index 2775002..0000000 --- a/admin/bower_components/bootstrap-datepicker/.travis.yml +++ /dev/null @@ -1,9 +0,0 @@ -sudo: false - -language: node_js - -node_js: - - "6" - -before_script: - - npm install -g grunt-cli diff --git a/admin/bower_components/bootstrap-datepicker/CHANGELOG.md b/admin/bower_components/bootstrap-datepicker/CHANGELOG.md deleted file mode 100644 index 6d85417..0000000 --- a/admin/bower_components/bootstrap-datepicker/CHANGELOG.md +++ /dev/null @@ -1,491 +0,0 @@ -Changelog -========= - -1.7.1 ------ - -## Bugfixes - * Revert "move `jquery` to `peerDependencies` from `dependencies`" - -1.7.0 ------ - -## Features - * Adding dateCells option (#1723) - * Added keepEmptyValues option (#1558 + #1901) - * added "changeViewMode" event; also adds the current `viewMode` to events (#1953) - * adds `updateViewDate` option (#1982) - * Added hiding week day names functionality (#2087) - * Allow customizing day cell value (#2043) - -## Bugfixes - * originalEvent object needs preventDefault fn (#1824) - * Fix jQuery selector from premature selection of span element in inline/embedded calendar's month selection (#1859 + #1886) - * Use date arithmetic to allow dates with times other than 00:00:00 (#1483) - * Multiple general fixes (#1883 + #1893) - * Visibility fix for nav arrows (#1916) - * Do not trigger change or changeDate on initialization (#1912) - * Fix: Close datepicker on touchstart (#1924) - * Fix data-date-dates-disabled attribute to accept a comma-separated list (#1946) - * Fix maxViewMode and navigation switch click (#1951) - * Add support jQuery 3. Bootstrap 2 still available (composer.json) (#1958) - * fix(parseDate) use insensitive regex to support +15d with capslock (#1910) - * Refactoring timedelta aliases (dateAliases) (#1965) - * Fix RTL layout (#1973) - * Remove listen `changeDate` after destroy DateRangePicker (#1968) - * add tests for setDatesDisabled function (#1983) - * resolves bug on days when DST is added. (#2009) - * XHTML fixes (#1998) - * update grunt and other dev-dependencies (#2111) - * Use display:table-cell instead of display:block for today, clear and title (#2121) - * moved assumeNearbyYear to correct location (#2140) - * move `jquery` to `peerDependencies` from `dependencies` (#2163) - * Use default arrow values (#2176) - -## Locales -### New - * en-ZA (#1798) - * en-ZNZ (#1799) - * en-IE (#1800) - * ar-tn (#1863) - * Added Sinhala (si) locale (#2025) - * Occitan locale (#2024 + #2026) - * [l10n]Add breton translation (#2028) - * Added Tajik language (#2117) - * Add Uzbek latin and cyrill locales (#2152) - * add Bengali (Bangla) language (#2171) - * Added Hindi locale (#2199) - -### Bugfix - * km/kh (#1812) - * Capital letters in Polish translation (#1890) - * Add missing monthsTitle in cs (#1900) - * Update bootstrap-datepicker.da.js (#1936) - * Fix typo in month name (#2040) - * Added missing basque language properties (#2066) - * Added weekStart to slovenian translation (#2067) - * add monthsTitle for ru (#2092) - * Change danish (da) date format to match the rest of the locales (#2048) - * Fix Tamil Language file with proper locale code (#2141) - * Revert strange changes, +monthsTitle (#2153) - * updated Tajik (cyrillic) translation file (#2167) - * Romanian uses dd/mm/yyyy format for dates (#2173) - * Missing latvian translation (#2204) - -## Docs - * Fix typo in index.rst (#1882) - * Update CDNjs info in README.md (#1933) - * [Doc] Keyboard navigation is not supported for embedded / inline type (#2002) - * Removed reference to stefan petre (#2031) - * Improve defaultViewDate documentation (#2052) - * Add notes about multiple dates and examples for update method (#2060) - * Add Code Of Conduct (#2095) - * Update install instructions on README.md (#2160) - -1.6.2 - 1.6.3 - 1.6.4 ---------------------- - -Bugfix - - * Backported jquery 3 fix from #1958 - -1.6.1 ------ -Bugfixes - - * add specific class for disabled dates back (Fixes #1785) - * [fix] Allow keyboard navigation for non-input fields (Fixes: #874) - * fix kazakh mothShort - * Fix bug when clicking on a day that is highlighted today in the next month - * dates read out are 12am UTC - * Fix show by component (with disabled attribute) - -1.6.0 ------ -Features - - * Changes nonpunctuation to accept unicode characters - * Add "assumeNearbyYear" option - * Decade and century picking - * Added timedelta aliases. (Fixes #785) - * add getter methods for date limits - * Replace arrow entities for glyphicon + template + libs snippets (Fixes: #610 #833 #1007) - * added class .disabled to dow header - * Rename "remove" to "destroy" and create alias - -Bugfix - - * Month/year view keyboard navigation - * fix changeMonth, changeYear not triggered when selecting day from prev/next month - * Fix default arrows for BS2 and screenshots (for docs) - * Extend beforeShowMonth event functionality to work like beforeShowDay and beforeShowYear - -Locale changes - - * Correct date format for ko locale - * Add en-AU (Australian English) locale - -Repository - - * Add CSS sourcemap - * [BS3 Less] Remove unused variables and cleanup - * Added timezone aware tests - * remove .idea-folder from npm - -1.5.1 ------ - -Bugfixes - * Fix calculation for new position when datepicker goes offscreen when inside a container (Fixes: #1619) - * Fix datepicker title not centered when displaying calendar weeks (Fixes: #1625) - * Fixing looping when calling dp inside change event (Fixes: #1628) - * Add scrollTop to position if container is not body (Fixes: #1616) - * Use document scrollTop instead of body scrollTop when using the body container - * Fix focus for disabled week days (Fixes: #1365, #1187, #1648) - * Fixes enableOnReadOnly bug when datepicker is of type component - -Translations - * Added missing translations for slovak translation. (Fixes: #1521) - * Added missing date format for norwegian (nb) locale (Fixes #1690) - * Armenian translation short names - * adding Today translation, default date format for the lithuanian translation - -Docs - * Document data-api on container - * Added docs for the different stylesheet files. (Fixes #1459) - -Repository - * Enable travis container builds for faster builds - -1.5.0 ------ - -Features - * Added down key as datepicker show trigger - * immediateUpdates option (updates input when a year or month is selected) - * Highlight days of week - * maxViewMode option - * Include "main" property in package.json - * Require.js support. (Fixes: #280) - * Allow overriding `$.fn.show` and `$.fn.hide` (Fixes: #1424) - * Adding border-radius variable for LESS (Fixes: #1429) - * Add support for dropdown border variables - * Add the posibility to have a title on the picker (Fixes: #1410) - * Implement `beforeShowYear` (Fixes: #1226) - * Add commonjs support - * Trigger 'hide' event when clicking outside datepicker - * Add css-classes for range-start and range-end - * Update hover effect for "buttons" (matches Bootstrap 3.3.5 mixin) - * Custom formatting options - -Bugfixes: - * Scrolling on mobile device closes datepicker - * Use $.on() instead $.bind() - * Fixed right-click and edit-menu paste - * Ported prototype fix for Prototype Compability - * Fixed issue with startview year - * Fixed padding inconsistency with twitter bootstrap 3 - * prevents the click event from bubbling to any user defined click handlers - * Added padding for .datepicker-dropdown - * Fixes the issue with a date change firing mulitple change events - * removed hard dependency on bootstrap (because of twbs-sass package) - * Clearing the date should reset to defaultViewDate - * Datepicker orientation mix up - top = bottom and bottom = top - * Fix cursor thead styles - * Fix date-reset issue when navigating to next with invalid date - * Using orientation:auto but date picker still appears above, cut off, when there plenty of space below. - * lots of orientation fixes - -Locale changes: - * Remove unused eighth element on week arrays ) - * Add Esperanto translation - * Better Polish language date shortcuts translation and default date format - * lowercase danish translation - * Add Mongolian localization - * update Hungarian translation - -Docs: - * added day to end-date to avoid confusion about example - * added setDatesDisabled method to documentation - - - -1.4.0 ------ - -Features: - * implemented beforeShowMonth option - * Added option to disable touch keyboard input - * All datepicker methods are chainable - * Added a datesDisable option - * Added option to prevent date picker to show when input field receives focus - * adding option to define the container the datepicker will be appended to - * Backported some placement fixes for the container option - * Option default view date - * Add toggleActive option - * Added clear method - * Added version property to datepicker object - * Added option to not show datepicker on readonly field - -Bugfixes: - * Removed blank space before the previous button when calendarWeeks is true; - * Fixed date deselection with single date picker - * Added case-neutral matching for text months - * Changed input-daterange to full width for bs3 - * Fix placement for RTL languages - * fix for range picker when next date is before previous date - * Fix for moving box on first selection - * Do not show datepicker for readonly inputs - * Fix getUTCDate when datepicker has no selected date - * Only a linked today button should trigger the changeDate event - * Fixed bug with keyboard navigation when startdate/enddate was defined - * Right align calendar on right window edge conflict - * On "ENTER" keydown on picker, prevent the closest form to be submitted too - * fixed bower.json twitte bootstrap dependency - * Replaced named entities with decimal entities - * assigning plugin to a local variable to fix bug in noConflict - -Repo changes: - * Added empty ignore option in bower.json. - * Added .editorconfig - * Reworked grunt tasks - -Translations: - * Fix translation of French months - * Update cambodia translations - * added clear and weekStart to turkish translation - * Days/months should start lowercase in dutch - * Month/daynames should be lowercase in french - * Add 'clear' and 'format' to Ukrainian locale - * Added Montenegrin locale - -Docs: - * added example for inputs option - * added missing documentation for embedded mode - * Add additional documentaion to update method - -1.3.1 ------ - -Repo changes: -* Automated screenshots have been added to the docs. These probably need to be documented so that contributors can add them when appropriate. -* Grunt support -* Missing description and keywords for Packagist -* Composer: Include translation files into deployment dir -* Add package name and version to npm package.json - -Bugfixes: -* Remove font-family declaration for datepicker -* Don't deselect date unless datepicker is multidate -* Removed comment from compiled CSS. -* Don't clear input after typing date and hitting Enter when keyboard nav is disabled -* Fixing the ui displaying 'undefined nan' when typing dates in Firefox & IE -* Reset tooltip to a default empty value -* Fix colspan if calendarWeeks & clearBtn are true -* Removed fixed width and height in large and small group addon -* z-index calculation should not stop at first element -* Fix IE8 bug with Array#splice with one argument - -Documentation: -* ghpages: jQuery js not being loaded when using HTTPS -* Adds clearBtn option to sandbox page -* Minor fixes (typo's, links,...) - -Locale changes - -Updated languages: -* Clear translation in czech -* Dutch translation -* Swedish translation -* Japanese translation -* Ukrainian translation fixes -* Add spanish clear, week start and format -* Added galician clear, week start and format -* Added missing clear localization value for polish translation -* Add clear zh-CN translation -* Fixed Albanian translation typo's -* Add missing clear and format localization value for Russian translation -* Updated Serbian translation -* Fixed Ukrainian iso code to uk instead of ua -* Updated greek translation -* Update Catalan and Spanish localizations -* Added missing armenian translations - -New languages: -* Basque -* Khmer (Cambodia) -* Bosnian -* British english -* Armenian -* Faroese -* Swiss Italian and Swiss French - -1.3.0 ------ - -New features: -* Bootstrap 3 support. Added build files `build/build_standalone3.less` and `build/build3.less`, and source files `less/datepicker3.less` and `css/datepicker3.css` (built from `build_standalone3.less`). -* Multi-date functionality. This required rethinking several areas of the picker: - * The internals have been modified to be completely multidate-centric. - * Attributes and methods availabel on events have changed, but the old attributes and functions will still work. - * Keyboard navigation has been revamped, as it didn't work at all properly with multidate selection. - * The picker now explicitly supports "no selected date". - -Non-API changes: -* Keyboard navigation has been changed. See `docs/keyboard.rst`. -* Empty pickers in a range picker setup will be populated with the first date selected by the user to make finding the next date easier. - -Bug squashed: -* Jan 1, 1970 is now highlighted when selected -* `touchstart` added to document-bound picker-closing events (alongside `mousedown`) -* Fixed a display bug with component add-on icons being vertically higher than they should have been. -* Input is refocused after clicking the picker. -* `changeDate` event is triggered when `setDate` is called. - -Locale changes: -* Added Ukrainian, Belgium-Dutch, Welsh, Galician, Vietnamese, and Azerbaijani -* `clear` for German, Danish, Italian, and Romanian -* Fixed `weekStart` and `format` for Norwegian -* `weekStart` and `format` for Georgian -* Tweaks for Latvian, French, Vietnamese, Swedish, and Croatian -* De-duplicated Ukrainian files from `uk` and `ua` to just `ua` - -Repository changes: -* Documentation has been moved from the base `README.md` file to the `docs/` folder, and been re-written to use sphinx docs. The docs are now viewable online at http://bootstrap-datepicker.readthedocs.org/. The [gh-pages](http://eternicode.github.io/bootstrap-datepicker/) branch has been reduced to the sandbox demo. -* Changed the js file header to point at repo/demo/docs urls instead of eyecon.ro -* The css files are now the output of the standalone build scripts instead of `build/build.less` etc. -* `composer.json` now supports component-installer -* Added [JSHint](http://www.jshint.com/docs/) and [JSCS](https://github.com/mdevils/node-jscs) configurations - - -1.2.0 ------ - -New features: -* Google Closure Compiler Compatibility -* Smart orientation by default, and explicit picker orientation with the `orientation` option -* Text inside the picker is no longer user-selectable -* Packagist/Composer support (I think...) -* No longer depends on glyphicons for arrows -* `clearDate` event added, fired when the date is cleared - -Bug squashed: -* `noConflict` fixed -* Fix for large years causing an infinite loop in date parsing -* Fixed cases where `changeYear` and `changeMonth` events were not being triggered -* `component.js` moved to `bower.js` -* Falsey values for `startDate` and `endDate` translate to `-Infinity` and `Infinity`, respectively (effectively, falsey values mean "no bounds") -* Fixed `autoclose` for non-input, non-component elements -* Fixed 50% param in `mix()` less function -- expands compatibility with less compilers -* Fixed `update` method to update the selected date -* `beforeShowDay` was getting UTC dates, now it gets local dates (all dates that developers are given should be in local time, not UTC). -* `startDate` and `endDate` were a bit confused when given `new Date()` -- they would not allow today to be selected (the range should be inclusive), they would change whether it was selectable based on local time, etc. These quirks should be fixed now. They both also now expect local dates (which will then be time-zeroed and converted to UTC). -* Fixed selected date not being automatically constrained to the specified range when `setStartDate` and `setEndDate` were called. -* No longer uses jQuery's `.size()` (deprecated in favor of `.length`) -* `changeDate` triggered during manual user input -* `change` event fired when input value changed, it wasn't in some cases - -Locale changes: -* Added Arabic, Norwegian, Georgian -* `clear` for French -* `today` and `clear` for Bahasa -* `today` and `clear` for Portuguese (both `pt` and `pt-BR`) -* `format` for Turkish -* `format` and `weekStart` for Swedish -* `format` and `weekStart` for Simplified Chinese; `today`, `format`, and `weekStart` for Traditional Chinese -* Fixed typo in Serbian latin (`rs-latin`) -* More appropriate use of Traditional Chinese habit in `zh-TW` - - -1.1.3 - ---------- - - Clicking the clear button now triggers the input's `change` and datepicker's `changeDate` events. - Fixed a bug that broke the event-attached `format` function. - - -1.1.2 ----------- - -Botched release, no change from 1.1.1 - - -1.1.1 ----------- - -Fixes a bug when setting startDate or endDate during initialization. - - -1.1.0 ----------- - -New features: -* Date range picker. -* Data API / noConflict. -* `getDate` and `setDate` methods. -* `format` method for events; this allows you to easily format the `date` associated with the event. -* New options: - * `beforeShowDay` option: a dev-provided function that can enable/disable dates, add css classes, and add tooltips. - * `clearBtn`, a button for resetting the picker. - -Internal changes: -* Cleaner and more reliable method for extracting options from all potential sources (defaults, locale overrides, data-attrs, and instantiation options, in that order). This also populates `$.fn.datepicker.defaults` with the default values, and uses this hash as the actual source of defaults, meaning you can globally change the default value for a given option. - -Bugs squashed: -* Resolved a conflict with bootstrap's native `.switch` class. -* Fixed a bug with components where they would be stuck with a stale value when editing the value manually. -* The `date` attributes on events are now local dates instead of internal UTC dates. -* Separate `Date` objects for internal selected and view date references. -* Clicking multiple times inside inputs no longer hides the picker. - -Minor improvements: -* Better text color for highlighted "today" date. -* Last year in decade view now marked as "new" instead of "old". -* Formats now properly handle trailing separators. - -Locale changes: -* Added Albanian, Estonian, and Macedonian -* Added `weekStart` for Russian -* Added `weekStart` and `format` for Finnish - -Potentially backward-incompatible changes: -* Options revamp: - * This fixes bugs in the correlation of some data-attrs to their associated option names. If you use `data-date-weekstart`, `data-date-startdate`, or `data-date-enddate`, you should update these to `data-date-week-start`, `data-date-start-date`, or `data-date-end-date`, respectively. - * All options for datepicker are now properties on the datepicker's `o` property; options are no longer stored on the Datepicker instance itself. If you have code that accesses options stored on the datepicker instance (eg, `datepicker.format`), you will need to update it to access those options via the `o` property (eg, `datepicker.o.format`). "Raw" options are available via the `_o` property. - -1.0.2 ----------- - -Small optimizations release - -* Reduced the number of times `update` is called on initialization. -* Datepicker now detaches the picker dropdown when it is hidden, and appends it when shown. This removes the picker from the DOM when it is not in use. -* No longer listens to document/window events unless picker is visible. - -v1.0.1 ------- - -* Support for [Bower](http://twitter.github.com/bower/) -* Component pickers are now aligned under the input, not the add-on element. -* Japanese locale now has "today" and "format". -* "remove" method removes `.data().date` if the datepicker is on a non-input. -* Events on initialized elements are no longer blocked from bubbling up the DOM (jQuery.live et al can now catch the events). -* Component triggers now include `.btn` in addition to `.add-on`. -* Updates to README contents. - -v1.0.0 ------- - -Initial release: - -* format option -* weekStart option -* calendarWeeks option -* startDate / endDate options -* daysOfWeekDisabled option -* autoclose option -* startView / mnViewMode options -* todayBtn / todayHighlight options -* keyboardNavigation option -* language option -* forceParse option diff --git a/admin/bower_components/bootstrap-datepicker/CODE_OF_CONDUCT.md b/admin/bower_components/bootstrap-datepicker/CODE_OF_CONDUCT.md deleted file mode 100644 index 1692465..0000000 --- a/admin/bower_components/bootstrap-datepicker/CODE_OF_CONDUCT.md +++ /dev/null @@ -1,74 +0,0 @@ -# Contributor Covenant Code of Conduct - -## Our Pledge - -In the interest of fostering an open and welcoming environment, we as -contributors and maintainers pledge to making participation in our project and -our community a harassment-free experience for everyone, regardless of age, body -size, disability, ethnicity, gender identity and expression, level of experience, -nationality, personal appearance, race, religion, or sexual identity and -orientation. - -## Our Standards - -Examples of behavior that contributes to creating a positive environment -include: - -* Using welcoming and inclusive language -* Being respectful of differing viewpoints and experiences -* Gracefully accepting constructive criticism -* Focusing on what is best for the community -* Showing empathy towards other community members - -Examples of unacceptable behavior by participants include: - -* The use of sexualized language or imagery and unwelcome sexual attention or -advances -* Trolling, insulting/derogatory comments, and personal or political attacks -* Public or private harassment -* Publishing others' private information, such as a physical or electronic - address, without explicit permission -* Other conduct which could reasonably be considered inappropriate in a - professional setting - -## Our Responsibilities - -Project maintainers are responsible for clarifying the standards of acceptable -behavior and are expected to take appropriate and fair corrective action in -response to any instances of unacceptable behavior. - -Project maintainers have the right and responsibility to remove, edit, or -reject comments, commits, code, wiki edits, issues, and other contributions -that are not aligned to this Code of Conduct, or to ban temporarily or -permanently any contributor for other behaviors that they deem inappropriate, -threatening, offensive, or harmful. - -## Scope - -This Code of Conduct applies both within project spaces and in public spaces -when an individual is representing the project or its community. Examples of -representing a project or community include using an official project e-mail -address, posting via an official social media account, or acting as an appointed -representative at an online or offline event. Representation of a project may be -further defined and clarified by project maintainers. - -## Enforcement - -Instances of abusive, harassing, or otherwise unacceptable behavior may be -reported by contacting the project team at <https://github.com/uxsolutions/bootstrap-datepicker>. All -complaints will be reviewed and investigated and will result in a response that -is deemed necessary and appropriate to the circumstances. The project team is -obligated to maintain confidentiality with regard to the reporter of an incident. -Further details of specific enforcement policies may be posted separately. - -Project maintainers who do not follow or enforce the Code of Conduct in good -faith may face temporary or permanent repercussions as determined by other -members of the project's leadership. - -## Attribution - -This Code of Conduct is adapted from the [Contributor Covenant][homepage], version 1.4, -available at [http://contributor-covenant.org/version/1/4][version] - -[homepage]: http://contributor-covenant.org -[version]: http://contributor-covenant.org/version/1/4/ diff --git a/admin/bower_components/bootstrap-datepicker/CONTRIBUTING.md b/admin/bower_components/bootstrap-datepicker/CONTRIBUTING.md deleted file mode 100644 index cd58985..0000000 --- a/admin/bower_components/bootstrap-datepicker/CONTRIBUTING.md +++ /dev/null @@ -1,41 +0,0 @@ -# Contributing - -## Support requests - -The issue tracker is not the place for support requests. If you get stuck with bootstrap-datepicker, it's very likely that the fine folks at [StackOverflow](http://stackoverflow.com/) will be able to help you; simply describe the problem you're having and provide them a link to the repo (so they know what code you're using). Another option is to post to the [bootstrap-datepicker google group](https://groups.google.com/group/bootstrap-datepicker). - -## Issues - -If you've found a bug in bootstrap-datepicker, we want to know about it! However, please keep the following in mind: - -* This is not the bootstrap-datepicker from [eyecon.ro](http://www.eyecon.ro/bootstrap-datepicker/). Stefan provided the initial code for bootstrap-datepicker, but this repo is divergent from his codebase. Please make sure you're using either the latest tagged version or the latest master from https://github.com/uxsolutions/bootstrap-datepicker/. -* A working example of the bug you've found is *much* easier to work with than a description alone. If possible, please provide a link to a demonstration of the bug, perhaps using http://jsfiddle.net/ . - * CDN-backed assets can be found at http://bsdp-assets.blackcherry.us/ . These should be used *only* for building test cases, as they may be removed or changed at any time. -* Finally, it's possible someone else has already reported the same bug you have. Please search the issue tracker for similar issues before posting your own. Thanks! - -## Pull Requests - -Patches welcome! - -For all cases, you should have your own fork of the repo. - -To submit a pull request for a **new feature**: - -1. Run the tests. Every pull request for a new feature should have an accompanying unit test and docs changes. See the `README.md` in the `tests/` and `docs/` directories for details. -2. Create a new branch off of the `master` branch for your feature. This is particularly helpful when you want to submit multiple pull requests. -3. Add a test (or multiple tests) for your feature. Again, see `tests/README.md`. -4. Add your new feature, making the test pass. -5. Push to your fork and submit the pull request! - -To submit a **bug fix**: - -1. Create a new branch off of the `master` branch. -2. Add a test that demonstrates the bug. -3. Make the test pass. -4. Push to your fork and submit the pull request! - -To submit a **documentation fix**: - -1. Create a new branch off of the `master` branch. -2. Add your documentation fixes (no tests required). -3. Push to your fork and submit the pull request! diff --git a/admin/bower_components/bootstrap-datepicker/Gruntfile.js b/admin/bower_components/bootstrap-datepicker/Gruntfile.js deleted file mode 100644 index 4b8065e..0000000 --- a/admin/bower_components/bootstrap-datepicker/Gruntfile.js +++ /dev/null @@ -1,261 +0,0 @@ -module.exports = function(grunt){ - 'use strict'; - - // Force use of Unix newlines - grunt.util.linefeed = '\n'; - - // Project configuration. - grunt.initConfig({ - //Metadata - pkg: grunt.file.readJSON('package.json'), - banner: [ - '/*!', - ' * Datepicker for Bootstrap v<%= pkg.version %> (<%= pkg.homepage %>)', - ' *', - ' * Licensed under the Apache License v2.0 (http://www.apache.org/licenses/LICENSE-2.0)', - ' */' - ].join('\n') + '\n', - - // Task configuration. - clean: { - dist: ['dist', '*-dist.zip'] - }, - jshint: { - options: { - jshintrc: 'js/.jshintrc' - }, - main: { - src: 'js/bootstrap-datepicker.js' - }, - locales: { - src: 'js/locales/*.js' - }, - gruntfile: { - options: { - jshintrc: 'grunt/.jshintrc' - }, - src: 'Gruntfile.js' - } - }, - jscs: { - options: { - config: 'js/.jscsrc' - }, - main: { - src: 'js/bootstrap-datepicker.js' - }, - locales: { - src: 'js/locales/*.js' - }, - gruntfile: { - src: 'Gruntfile.js' - } - }, - qunit: { - main: 'tests/tests.html', - timezone: 'tests/timezone.html', - options: { - console: false - } - }, - concat: { - options: { - stripBanners: true - }, - main: { - src: 'js/bootstrap-datepicker.js', - dest: 'dist/js/<%= pkg.name %>.js' - } - }, - uglify: { - options: { - preserveComments: 'some' - }, - main: { - src: '<%= concat.main.dest %>', - dest: 'dist/js/<%= pkg.name %>.min.js' - }, - locales: { - files: [{ - expand: true, - cwd: 'js/locales/', - src: '*.js', - dest: 'dist/locales/', - rename: function(dest, name){ - return dest + name.replace(/\.js$/, '.min.js'); - } - }] - } - }, - less: { - options: { - sourceMap: true, - outputSourceFiles: true - }, - standalone_bs2: { - options: { - sourceMapURL: '<%= pkg.name %>.standalone.css.map' - }, - src: 'build/build_standalone.less', - dest: 'dist/css/<%= pkg.name %>.standalone.css' - }, - standalone_bs3: { - options: { - sourceMapURL: '<%= pkg.name %>3.standalone.css.map' - }, - src: 'build/build_standalone3.less', - dest: 'dist/css/<%= pkg.name %>3.standalone.css' - }, - main_bs2: { - options: { - sourceMapURL: '<%= pkg.name %>.css.map' - }, - src: 'build/build.less', - dest: 'dist/css/<%= pkg.name %>.css' - }, - main_bs3: { - options: { - sourceMapURL: '<%= pkg.name %>3.css.map' - }, - src: 'build/build3.less', - dest: 'dist/css/<%= pkg.name %>3.css' - } - }, - usebanner: { - options: { - banner: '<%= banner %>' - }, - css: 'dist/css/*.css', - js: 'dist/js/**/*.js' - }, - cssmin: { - options: { - compatibility: 'ie8', - keepSpecialComments: '*', - advanced: false - }, - main: { - files: { - 'dist/css/<%= pkg.name %>.min.css': 'dist/css/<%= pkg.name %>.css', - 'dist/css/<%= pkg.name %>3.min.css': 'dist/css/<%= pkg.name %>3.css' - } - }, - standalone: { - files: { - 'dist/css/<%= pkg.name %>.standalone.min.css': 'dist/css/<%= pkg.name %>.standalone.css', - 'dist/css/<%= pkg.name %>3.standalone.min.css': 'dist/css/<%= pkg.name %>3.standalone.css' - } - } - }, - csslint: { - options: { - csslintrc: 'less/.csslintrc' - }, - dist: [ - 'dist/css/bootstrap-datepicker.css', - 'dist/css/bootstrap-datepicker3.css', - 'dist/css/bootstrap-datepicker.standalone.css', - 'dist/css/bootstrap-datepicker3.standalone.css' - ] - }, - compress: { - main: { - options: { - archive: '<%= pkg.name %>-<%= pkg.version %>-dist.zip', - mode: 'zip', - level: 9, - pretty: true - }, - files: [ - { - expand: true, - cwd: 'dist/', - src: '**' - } - ] - } - }, - 'string-replace': { - js: { - files: [{ - src: 'js/bootstrap-datepicker.js', - dest: 'js/bootstrap-datepicker.js' - }], - options: { - replacements: [{ - pattern: /\$(\.fn\.datepicker\.version)\s=\s*("|\')[0-9\.a-z].*("|');/gi, - replacement: "$.fn.datepicker.version = '" + grunt.option('newver') + "';" - }] - } - }, - npm: { - files: [{ - src: 'package.json', - dest: 'package.json' - }], - options: { - replacements: [{ - pattern: /\"version\":\s\"[0-9\.a-z].*",/gi, - replacement: '"version": "' + grunt.option('newver') + '",' - }] - } - } - } - }); - - // These plugins provide necessary tasks. - require('load-grunt-tasks')(grunt, {scope: 'devDependencies'}); - require('time-grunt')(grunt); - - // JS distribution task. - grunt.registerTask('dist-js', ['concat', 'uglify:main', 'uglify:locales', 'usebanner:js']); - - // CSS distribution task. - grunt.registerTask('less-compile', 'less'); - grunt.registerTask('dist-css', ['less-compile', 'cssmin:main', 'cssmin:standalone', 'usebanner:css']); - - // Full distribution task. - grunt.registerTask('dist', ['clean:dist', 'dist-js', 'dist-css']); - - // Code check tasks. - grunt.registerTask('lint-js', 'Lint all js files with jshint and jscs', ['jshint', 'jscs']); - grunt.registerTask('lint-css', 'Lint all css files', ['dist-css', 'csslint:dist']); - grunt.registerTask('qunit-all', 'Run qunit tests', ['qunit:main', 'qunit-timezone']); - grunt.registerTask('test', 'Lint files and run unit tests', ['lint-js', /*'lint-css',*/ 'qunit-all']); - - // Version numbering task. - // grunt bump-version --newver=X.Y.Z - grunt.registerTask('bump-version', 'string-replace'); - - // Docs task. - grunt.registerTask('screenshots', 'Rebuilds automated docs screenshots', function(){ - var phantomjs = require('phantomjs-prebuilt').path; - - grunt.file.recurse('docs/_static/screenshots/', function(abspath){ - grunt.file.delete(abspath); - }); - - grunt.file.recurse('docs/_screenshots/', function(abspath, root, subdir, filename){ - if (!/.html$/.test(filename)) - return; - subdir = subdir || ''; - - var outdir = 'docs/_static/screenshots/' + subdir, - outfile = outdir + filename.replace(/.html$/, '.png'); - - if (!grunt.file.exists(outdir)) - grunt.file.mkdir(outdir); - - // NOTE: For 'zh-TW' and 'ja' locales install adobe-source-han-sans-jp-fonts (Arch Linux) - grunt.util.spawn({ - cmd: phantomjs, - args: ['docs/_screenshots/script/screenshot.js', abspath, outfile] - }); - }); - }); - - grunt.registerTask('qunit-timezone', 'Run timezone tests', function(){ - process.env.TZ = 'Europe/Moscow'; - grunt.task.run('qunit:timezone'); - }); -}; diff --git a/admin/bower_components/bootstrap-datepicker/LICENSE b/admin/bower_components/bootstrap-datepicker/LICENSE deleted file mode 100644 index d645695..0000000 --- a/admin/bower_components/bootstrap-datepicker/LICENSE +++ /dev/null @@ -1,202 +0,0 @@ - - Apache License - Version 2.0, January 2004 - http://www.apache.org/licenses/ - - TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - - 1. Definitions. - - "License" shall mean the terms and conditions for use, reproduction, - and distribution as defined by Sections 1 through 9 of this document. - - "Licensor" shall mean the copyright owner or entity authorized by - the copyright owner that is granting the License. - - "Legal Entity" shall mean the union of the acting entity and all - other entities that control, are controlled by, or are under common - control with that entity. For the purposes of this definition, - "control" means (i) the power, direct or indirect, to cause the - direction or management of such entity, whether by contract or - otherwise, or (ii) ownership of fifty percent (50%) or more of the - outstanding shares, or (iii) beneficial ownership of such entity. - - "You" (or "Your") shall mean an individual or Legal Entity - exercising permissions granted by this License. - - "Source" form shall mean the preferred form for making modifications, - including but not limited to software source code, documentation - source, and configuration files. - - "Object" form shall mean any form resulting from mechanical - transformation or translation of a Source form, including but - not limited to compiled object code, generated documentation, - and conversions to other media types. - - "Work" shall mean the work of authorship, whether in Source or - Object form, made available under the License, as indicated by a - copyright notice that is included in or attached to the work - (an example is provided in the Appendix below). - - "Derivative Works" shall mean any work, whether in Source or Object - form, that is based on (or derived from) the Work and for which the - editorial revisions, annotations, elaborations, or other modifications - represent, as a whole, an original work of authorship. For the purposes - of this License, Derivative Works shall not include works that remain - separable from, or merely link (or bind by name) to the interfaces of, - the Work and Derivative Works thereof. - - "Contribution" shall mean any work of authorship, including - the original version of the Work and any modifications or additions - to that Work or Derivative Works thereof, that is intentionally - submitted to Licensor for inclusion in the Work by the copyright owner - or by an individual or Legal Entity authorized to submit on behalf of - the copyright owner. For the purposes of this definition, "submitted" - means any form of electronic, verbal, or written communication sent - to the Licensor or its representatives, including but not limited to - communication on electronic mailing lists, source code control systems, - and issue tracking systems that are managed by, or on behalf of, the - Licensor for the purpose of discussing and improving the Work, but - excluding communication that is conspicuously marked or otherwise - designated in writing by the copyright owner as "Not a Contribution." - - "Contributor" shall mean Licensor and any individual or Legal Entity - on behalf of whom a Contribution has been received by Licensor and - subsequently incorporated within the Work. - - 2. Grant of Copyright License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - copyright license to reproduce, prepare Derivative Works of, - publicly display, publicly perform, sublicense, and distribute the - Work and such Derivative Works in Source or Object form. - - 3. Grant of Patent License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - (except as stated in this section) patent license to make, have made, - use, offer to sell, sell, import, and otherwise transfer the Work, - where such license applies only to those patent claims licensable - by such Contributor that are necessarily infringed by their - Contribution(s) alone or by combination of their Contribution(s) - with the Work to which such Contribution(s) was submitted. If You - institute patent litigation against any entity (including a - cross-claim or counterclaim in a lawsuit) alleging that the Work - or a Contribution incorporated within the Work constitutes direct - or contributory patent infringement, then any patent licenses - granted to You under this License for that Work shall terminate - as of the date such litigation is filed. - - 4. Redistribution. You may reproduce and distribute copies of the - Work or Derivative Works thereof in any medium, with or without - modifications, and in Source or Object form, provided that You - meet the following conditions: - - (a) You must give any other recipients of the Work or - Derivative Works a copy of this License; and - - (b) You must cause any modified files to carry prominent notices - stating that You changed the files; and - - (c) You must retain, in the Source form of any Derivative Works - that You distribute, all copyright, patent, trademark, and - attribution notices from the Source form of the Work, - excluding those notices that do not pertain to any part of - the Derivative Works; and - - (d) If the Work includes a "NOTICE" text file as part of its - distribution, then any Derivative Works that You distribute must - include a readable copy of the attribution notices contained - within such NOTICE file, excluding those notices that do not - pertain to any part of the Derivative Works, in at least one - of the following places: within a NOTICE text file distributed - as part of the Derivative Works; within the Source form or - documentation, if provided along with the Derivative Works; or, - within a display generated by the Derivative Works, if and - wherever such third-party notices normally appear. The contents - of the NOTICE file are for informational purposes only and - do not modify the License. You may add Your own attribution - notices within Derivative Works that You distribute, alongside - or as an addendum to the NOTICE text from the Work, provided - that such additional attribution notices cannot be construed - as modifying the License. - - You may add Your own copyright statement to Your modifications and - may provide additional or different license terms and conditions - for use, reproduction, or distribution of Your modifications, or - for any such Derivative Works as a whole, provided Your use, - reproduction, and distribution of the Work otherwise complies with - the conditions stated in this License. - - 5. Submission of Contributions. Unless You explicitly state otherwise, - any Contribution intentionally submitted for inclusion in the Work - by You to the Licensor shall be under the terms and conditions of - this License, without any additional terms or conditions. - Notwithstanding the above, nothing herein shall supersede or modify - the terms of any separate license agreement you may have executed - with Licensor regarding such Contributions. - - 6. Trademarks. This License does not grant permission to use the trade - names, trademarks, service marks, or product names of the Licensor, - except as required for reasonable and customary use in describing the - origin of the Work and reproducing the content of the NOTICE file. - - 7. Disclaimer of Warranty. Unless required by applicable law or - agreed to in writing, Licensor provides the Work (and each - Contributor provides its Contributions) on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or - implied, including, without limitation, any warranties or conditions - of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A - PARTICULAR PURPOSE. You are solely responsible for determining the - appropriateness of using or redistributing the Work and assume any - risks associated with Your exercise of permissions under this License. - - 8. Limitation of Liability. In no event and under no legal theory, - whether in tort (including negligence), contract, or otherwise, - unless required by applicable law (such as deliberate and grossly - negligent acts) or agreed to in writing, shall any Contributor be - liable to You for damages, including any direct, indirect, special, - incidental, or consequential damages of any character arising as a - result of this License or out of the use or inability to use the - Work (including but not limited to damages for loss of goodwill, - work stoppage, computer failure or malfunction, or any and all - other commercial damages or losses), even if such Contributor - has been advised of the possibility of such damages. - - 9. Accepting Warranty or Additional Liability. While redistributing - the Work or Derivative Works thereof, You may choose to offer, - and charge a fee for, acceptance of support, warranty, indemnity, - or other liability obligations and/or rights consistent with this - License. However, in accepting such obligations, You may act only - on Your own behalf and on Your sole responsibility, not on behalf - of any other Contributor, and only if You agree to indemnify, - defend, and hold each Contributor harmless for any liability - incurred by, or claims asserted against, such Contributor by reason - of your accepting any such warranty or additional liability. - - END OF TERMS AND CONDITIONS - - APPENDIX: How to apply the Apache License to your work. - - To apply the Apache License to your work, attach the following - boilerplate notice, with the fields enclosed by brackets "[]" - replaced with your own identifying information. (Don't include - the brackets!) The text should be enclosed in the appropriate - comment syntax for the file format. We also recommend that a - file or class name and description of purpose be included on the - same "printed page" as the copyright notice for easier - identification within third-party archives. - - Copyright [yyyy] [name of copyright owner] - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. diff --git a/admin/bower_components/bootstrap-datepicker/README.md b/admin/bower_components/bootstrap-datepicker/README.md deleted file mode 100644 index 16ee1e3..0000000 --- a/admin/bower_components/bootstrap-datepicker/README.md +++ /dev/null @@ -1,42 +0,0 @@ -# bootstrap-datepicker - -[![Join the chat at https://gitter.im/uxsolutions/bootstrap-datepicker](https://badges.gitter.im/Join%20Chat.svg)](https://gitter.im/uxsolutions/bootstrap-datepicker?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge) -[![Build Status](https://travis-ci.org/uxsolutions/bootstrap-datepicker.svg?branch=master)](https://travis-ci.org/uxsolutions/bootstrap-datepicker) -[![GitHub license](https://img.shields.io/badge/license-Apache%202-blue.svg)](https://raw.githubusercontent.com/uxsolutions/bootstrap-datepicker/master/LICENSE) -[![npm](https://img.shields.io/npm/dt/bootstrap-datepicker.svg)](https://github.com/uxsolutions/bootstrap-datepicker) -[![Twitter Follow](https://img.shields.io/twitter/follow/bsdatepicker.svg?style=social&label=Follow)](https://twitter.com/bsdatepicker) - -Versions are incremented according to [semver](http://semver.org/). - -## CDN - -You can use the [CloudFlare](https://www.cloudflare.com) powered [cdnjs.com](https://cdnjs.com) on your website. - -[bootstrap-datepicker](https://cdnjs.com/libraries/bootstrap-datepicker) on cdnjs - -Please note: It might take a few hours until a new version is available on cdnjs. - -## Links - -* [Online Demo](https://uxsolutions.github.io/bootstrap-datepicker/) -* [Online Docs](https://bootstrap-datepicker.readthedocs.org/en/stable/) (ReadTheDocs.com) -* [Google Group](https://groups.google.com/group/bootstrap-datepicker/) -* [Travis CI](https://travis-ci.org/uxsolutions/bootstrap-datepicker) - -## Development - -Once you cloned the repo, you'll need to install [grunt](https://gruntjs.com/) and the development dependencies using a package manager: - -* [yarn](https://yarnpkg.com/) (recommended): - -``` -$ [sudo] yarn global add grunt-cli -$ yarn install -``` - -* [npm](https://www.npmjs.com/): - -``` -$ [sudo] npm install --global grunt-cli -$ npm install -``` diff --git a/admin/bower_components/bootstrap-datepicker/bower.json b/admin/bower_components/bootstrap-datepicker/bower.json deleted file mode 100644 index dd78f44..0000000 --- a/admin/bower_components/bootstrap-datepicker/bower.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "name": "bootstrap-datepicker", - "main": [ - "dist/css/bootstrap-datepicker3.css", - "dist/js/bootstrap-datepicker.js" - ], - "license": "Apache-2.0", - "dependencies": { - "jquery" : ">=1.7.1 <4.0.0" - }, - "ignore": [] -} diff --git a/admin/bower_components/bootstrap-datepicker/build/build.less b/admin/bower_components/bootstrap-datepicker/build/build.less deleted file mode 100644 index 7db2322..0000000 --- a/admin/bower_components/bootstrap-datepicker/build/build.less +++ /dev/null @@ -1,69 +0,0 @@ -// Datepicker .less buildfile. Includes select mixins/variables from bootstrap -// and imports the included datepicker.less to output a minimal datepicker.css -// -// Usage: -// lessc build.less datepicker.css -// -// Variables and mixins copied from bootstrap 2.0.2 - -// Variables -@grayLight: #999; -@grayLighter: #eee; -@white: #fff; -@linkColor: #08c; -@btnPrimaryBackground: @linkColor; -@orange: #f89406; -@infoBackground: #d9edf7; -@baseLineHeight: 18px; -@baseBorderRadius: 4px; - -// Mixins - -// Border Radius -.border-radius(@radius: 5px) { - -webkit-border-radius: @radius; - -moz-border-radius: @radius; - border-radius: @radius; -} - -// Button backgrounds -.buttonBackground(@startColor, @endColor) { - .gradientBar(@startColor, @endColor); - .reset-filter(); - &:hover, &:active, &.active, &.disabled, &[disabled] { - background-color: @endColor; - } - &:active, - &.active { - background-color: darken(@endColor, 10%) e("\9"); - } -} - -// Reset filters for IE -.reset-filter() { - filter: progid:DXImageTransform.Microsoft.gradient(enabled = false); -} - -// Gradient Bar Colors for buttons and alerts -.gradientBar(@primaryColor, @secondaryColor) { - #gradient > .vertical(@primaryColor, @secondaryColor); - border-color: @secondaryColor @secondaryColor darken(@secondaryColor, 15%); - border-color: rgba(0,0,0,.1) rgba(0,0,0,.1) fadein(rgba(0,0,0,.1), 15%); -} - -// Gradients -#gradient { - .vertical(@startColor: #555, @endColor: #333) { - background-color: mix(@startColor, @endColor, 60%); - background-image: -moz-linear-gradient(to bottom, @startColor, @endColor); // FF 3.6+ - background-image: -ms-linear-gradient(to bottom, @startColor, @endColor); // IE10 - background-image: -webkit-gradient(linear, 0 0, 0 100%, from(@startColor), to(@endColor)); // Safari 4+, Chrome 2+ - background-image: -webkit-linear-gradient(to bottom, @startColor, @endColor); // Safari 5.1+, Chrome 10+ - background-image: -o-linear-gradient(to bottom, @startColor, @endColor); // Opera 11.10 - background-image: linear-gradient(to bottom, @startColor, @endColor); // The standard - background-repeat: repeat-x; - filter: e(%("progid:DXImageTransform.Microsoft.gradient(startColorstr='%d', endColorstr='%d', GradientType=0)",@startColor,@endColor)); // IE9 and down - } -} - -@import "../less/datepicker.less"; diff --git a/admin/bower_components/bootstrap-datepicker/build/build3.less b/admin/bower_components/bootstrap-datepicker/build/build3.less deleted file mode 100644 index a9baa08..0000000 --- a/admin/bower_components/bootstrap-datepicker/build/build3.less +++ /dev/null @@ -1,76 +0,0 @@ -// Datepicker .less buildfile. Includes select mixins/variables from bootstrap -// and imports the included datepicker.less to output a minimal datepicker.css -// -// Usage: -// lessc build3.less datepicker.css -// -// Variables and mixins copied from Bootstrap 3.3.5 - -// Variables -@gray: lighten(#000, 33.5%); // #555 -@gray-light: lighten(#000, 46.7%); // #777 -@gray-lighter: lighten(#000, 93.5%); // #eee - -@brand-primary: darken(#428bca, 6.5%); // #337ab7 - -@btn-primary-color: #fff; -@btn-primary-bg: @brand-primary; -@btn-primary-border: darken(@btn-primary-bg, 5%); - -@btn-link-disabled-color: @gray-light; - -@state-info-bg: #d9edf7; - -@line-height-base: 1.428571429; // 20/14 -@border-radius-base: 4px; - -@dropdown-bg: #fff; -@dropdown-border: rgba(0,0,0,.15); - - -// Mixins - -// Button variants -.button-variant(@color; @background; @border) { - color: @color; - background-color: @background; - border-color: @border; - - &:focus, - &.focus { - color: @color; - background-color: darken(@background, 10%); - border-color: darken(@border, 25%); - } - &:hover { - color: @color; - background-color: darken(@background, 10%); - border-color: darken(@border, 12%); - } - &:active, - &.active { - color: @color; - background-color: darken(@background, 10%); - border-color: darken(@border, 12%); - - &:hover, - &:focus, - &.focus { - color: @color; - background-color: darken(@background, 17%); - border-color: darken(@border, 25%); - } - } - &.disabled, - &[disabled], - fieldset[disabled] & { - &:hover, - &:focus, - &.focus { - background-color: @background; - border-color: @border; - } - } -} - -@import "../less/datepicker3.less"; diff --git a/admin/bower_components/bootstrap-datepicker/build/build_standalone.less b/admin/bower_components/bootstrap-datepicker/build/build_standalone.less deleted file mode 100644 index 9fa1b8b..0000000 --- a/admin/bower_components/bootstrap-datepicker/build/build_standalone.less +++ /dev/null @@ -1,64 +0,0 @@ -// Datepicker standalone .less buildfile. Includes all necessary mixins/variables/rules from bootstrap -// and imports the included datepicker.less to output a minimal standalone datepicker.css -// -// Usage: -// lessc build_standalone.less datepicker.css -// -// Variables, mixins, and rules copied from bootstrap 2.0.2 - -@import "build.less"; - -// Dropdown css - -@zindexDropdown: 1000; -@grayDark: #333; -@baseLineHeight: 20px; -@tableBackground: transparent; // overall background-color -@dropdownBackground: @white; -@dropdownBorder: rgba(0,0,0,.2); -@dropdownLinkColor: @grayDark; -@dropdownLinkColorHover: @white; -@dropdownLinkBackgroundHover: @linkColor; - -// Drop shadows -.box-shadow(@shadow) { - -webkit-box-shadow: @shadow; - -moz-box-shadow: @shadow; - box-shadow: @shadow; -} - -// The dropdown menu (ul) -// ---------------------- -.datepicker{ - &.dropdown-menu { - position: absolute; - top: 100%; - left: 0; - z-index: @zindexDropdown; - float: left; - display: none; // none by default, but block on "open" of the menu - min-width: 160px; - list-style: none; - background-color: @dropdownBackground; - border: 1px solid #ccc; - border: 1px solid rgba(0,0,0,.2); - .border-radius(5px); - .box-shadow(0 5px 10px rgba(0,0,0,.2)); - -webkit-background-clip: padding-box; - -moz-background-clip: padding; - background-clip: padding-box; - *border-right-width: 2px; - *border-bottom-width: 2px; - - // Normally inherited from bootstrap's `body` - color: #333333; - font-size:13px; - line-height: @baseLineHeight; - } - - &.dropdown-menu, &.datepicker-inline { - th, td { - padding: 4px 5px; - } - } -} diff --git a/admin/bower_components/bootstrap-datepicker/build/build_standalone3.less b/admin/bower_components/bootstrap-datepicker/build/build_standalone3.less deleted file mode 100644 index 8ef90ea..0000000 --- a/admin/bower_components/bootstrap-datepicker/build/build_standalone3.less +++ /dev/null @@ -1,55 +0,0 @@ -// Datepicker standalone .less buildfile. Includes all necessary mixins/variables/rules from bootstrap -// and imports the included datepicker.less to output a minimal standalone datepicker.css -// -// Usage: -// lessc build_standalone3.less datepicker.css -// -// Variables, mixins, and rules copied from Bootstrap 3.3.5 - -@import "build3.less"; - -// Dropdown css - -@zindex-dropdown: 1000; -@dropdown-fallback-border: #ccc; - -// Drop shadows -.box-shadow(@shadow) { - -webkit-box-shadow: @shadow; - -moz-box-shadow: @shadow; - box-shadow: @shadow; -} - -// The dropdown menu (ul) -// ---------------------- -.datepicker { - &.dropdown-menu { - position: absolute; - top: 100%; - left: 0; - z-index: @zindex-dropdown; - display: none; // none by default, but block on "open" of the menu - float: left; - min-width: 160px; - list-style: none; - background-color: @dropdown-bg; - border: 1px solid @dropdown-fallback-border; // IE8 fallback - border: 1px solid @dropdown-border; - border-radius: @border-radius-base; - .box-shadow(0 6px 12px rgba(0,0,0,.175)); - -webkit-background-clip: padding-box; - -moz-background-clip: padding; - background-clip: padding-box; - - // Normally inherited from bootstrap's `body` - color: #333333; - font-size: 13px; - line-height: @line-height-base; - } - - &.dropdown-menu, &.datepicker-inline { - th, td { - padding: 0px 5px; - } - } -} diff --git a/admin/bower_components/bootstrap-datepicker/composer.json b/admin/bower_components/bootstrap-datepicker/composer.json deleted file mode 100644 index af9faa9..0000000 --- a/admin/bower_components/bootstrap-datepicker/composer.json +++ /dev/null @@ -1,39 +0,0 @@ -{ - "name": "eternicode/bootstrap-datepicker", - "description": "A datepicker for Bootstrap", - "license": "Apache-2.0", - "keywords": [ - "bootstrap", - "datepicker" - ], - "authors": [ - { - "name": "Andrew Rowls", - "email": "eternicode@gmail.com" - }, - { - "name": "Community", - "homepage": "https://github.com/uxsolutions/bootstrap-datepicker/contributors" - } - ], - "type": "component", - "require": { - "robloach/component-installer": "*", - "components/bootstrap" : ">=2.0, <4.0", - "components/jquery": ">=1.7.1, <4.0.0" - }, - "extra": { - "component": { - "scripts": [ - "js/bootstrap-datepicker.js" - ], - "styles": [ - "dist/css/bootstrap-datepicker.css", - "dist/css/bootstrap-datepicker3.css" - ], - "files": [ - "js/locales/bootstrap-datepicker.*.js" - ] - } - } -} diff --git a/admin/bower_components/bootstrap-datepicker/dist/css/bootstrap-datepicker.css b/admin/bower_components/bootstrap-datepicker/dist/css/bootstrap-datepicker.css deleted file mode 100644 index 3cc60cd..0000000 --- a/admin/bower_components/bootstrap-datepicker/dist/css/bootstrap-datepicker.css +++ /dev/null @@ -1,477 +0,0 @@ -/*! - * Datepicker for Bootstrap v1.7.1 (https://github.com/uxsolutions/bootstrap-datepicker) - * - * Licensed under the Apache License v2.0 (http://www.apache.org/licenses/LICENSE-2.0) - */ - -.datepicker { - padding: 4px; - -webkit-border-radius: 4px; - -moz-border-radius: 4px; - border-radius: 4px; - direction: ltr; -} -.datepicker-inline { - width: 220px; -} -.datepicker-rtl { - direction: rtl; -} -.datepicker-rtl.dropdown-menu { - left: auto; -} -.datepicker-rtl table tr td span { - float: right; -} -.datepicker-dropdown { - top: 0; - left: 0; -} -.datepicker-dropdown:before { - content: ''; - display: inline-block; - border-left: 7px solid transparent; - border-right: 7px solid transparent; - border-bottom: 7px solid #999; - border-top: 0; - border-bottom-color: rgba(0, 0, 0, 0.2); - position: absolute; -} -.datepicker-dropdown:after { - content: ''; - display: inline-block; - border-left: 6px solid transparent; - border-right: 6px solid transparent; - border-bottom: 6px solid #fff; - border-top: 0; - position: absolute; -} -.datepicker-dropdown.datepicker-orient-left:before { - left: 6px; -} -.datepicker-dropdown.datepicker-orient-left:after { - left: 7px; -} -.datepicker-dropdown.datepicker-orient-right:before { - right: 6px; -} -.datepicker-dropdown.datepicker-orient-right:after { - right: 7px; -} -.datepicker-dropdown.datepicker-orient-bottom:before { - top: -7px; -} -.datepicker-dropdown.datepicker-orient-bottom:after { - top: -6px; -} -.datepicker-dropdown.datepicker-orient-top:before { - bottom: -7px; - border-bottom: 0; - border-top: 7px solid #999; -} -.datepicker-dropdown.datepicker-orient-top:after { - bottom: -6px; - border-bottom: 0; - border-top: 6px solid #fff; -} -.datepicker table { - margin: 0; - -webkit-touch-callout: none; - -webkit-user-select: none; - -khtml-user-select: none; - -moz-user-select: none; - -ms-user-select: none; - user-select: none; -} -.datepicker td, -.datepicker th { - text-align: center; - width: 20px; - height: 20px; - -webkit-border-radius: 4px; - -moz-border-radius: 4px; - border-radius: 4px; - border: none; -} -.table-striped .datepicker table tr td, -.table-striped .datepicker table tr th { - background-color: transparent; -} -.datepicker table tr td.day:hover, -.datepicker table tr td.day.focused { - background: #eee; - cursor: pointer; -} -.datepicker table tr td.old, -.datepicker table tr td.new { - color: #999; -} -.datepicker table tr td.disabled, -.datepicker table tr td.disabled:hover { - background: none; - color: #999; - cursor: default; -} -.datepicker table tr td.highlighted { - background: #d9edf7; - border-radius: 0; -} -.datepicker table tr td.today, -.datepicker table tr td.today:hover, -.datepicker table tr td.today.disabled, -.datepicker table tr td.today.disabled:hover { - background-color: #fde19a; - background-image: -moz-linear-gradient(to bottom, #fdd49a, #fdf59a); - background-image: -ms-linear-gradient(to bottom, #fdd49a, #fdf59a); - background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#fdd49a), to(#fdf59a)); - background-image: -webkit-linear-gradient(to bottom, #fdd49a, #fdf59a); - background-image: -o-linear-gradient(to bottom, #fdd49a, #fdf59a); - background-image: linear-gradient(to bottom, #fdd49a, #fdf59a); - background-repeat: repeat-x; - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fdd49a', endColorstr='#fdf59a', GradientType=0); - border-color: #fdf59a #fdf59a #fbed50; - border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25); - filter: progid:DXImageTransform.Microsoft.gradient(enabled=false); - color: #000; -} -.datepicker table tr td.today:hover, -.datepicker table tr td.today:hover:hover, -.datepicker table tr td.today.disabled:hover, -.datepicker table tr td.today.disabled:hover:hover, -.datepicker table tr td.today:active, -.datepicker table tr td.today:hover:active, -.datepicker table tr td.today.disabled:active, -.datepicker table tr td.today.disabled:hover:active, -.datepicker table tr td.today.active, -.datepicker table tr td.today:hover.active, -.datepicker table tr td.today.disabled.active, -.datepicker table tr td.today.disabled:hover.active, -.datepicker table tr td.today.disabled, -.datepicker table tr td.today:hover.disabled, -.datepicker table tr td.today.disabled.disabled, -.datepicker table tr td.today.disabled:hover.disabled, -.datepicker table tr td.today[disabled], -.datepicker table tr td.today:hover[disabled], -.datepicker table tr td.today.disabled[disabled], -.datepicker table tr td.today.disabled:hover[disabled] { - background-color: #fdf59a; -} -.datepicker table tr td.today:active, -.datepicker table tr td.today:hover:active, -.datepicker table tr td.today.disabled:active, -.datepicker table tr td.today.disabled:hover:active, -.datepicker table tr td.today.active, -.datepicker table tr td.today:hover.active, -.datepicker table tr td.today.disabled.active, -.datepicker table tr td.today.disabled:hover.active { - background-color: #fbf069 \9; -} -.datepicker table tr td.today:hover:hover { - color: #000; -} -.datepicker table tr td.today.active:hover { - color: #fff; -} -.datepicker table tr td.range, -.datepicker table tr td.range:hover, -.datepicker table tr td.range.disabled, -.datepicker table tr td.range.disabled:hover { - background: #eee; - -webkit-border-radius: 0; - -moz-border-radius: 0; - border-radius: 0; -} -.datepicker table tr td.range.today, -.datepicker table tr td.range.today:hover, -.datepicker table tr td.range.today.disabled, -.datepicker table tr td.range.today.disabled:hover { - background-color: #f3d17a; - background-image: -moz-linear-gradient(to bottom, #f3c17a, #f3e97a); - background-image: -ms-linear-gradient(to bottom, #f3c17a, #f3e97a); - background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#f3c17a), to(#f3e97a)); - background-image: -webkit-linear-gradient(to bottom, #f3c17a, #f3e97a); - background-image: -o-linear-gradient(to bottom, #f3c17a, #f3e97a); - background-image: linear-gradient(to bottom, #f3c17a, #f3e97a); - background-repeat: repeat-x; - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#f3c17a', endColorstr='#f3e97a', GradientType=0); - border-color: #f3e97a #f3e97a #edde34; - border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25); - filter: progid:DXImageTransform.Microsoft.gradient(enabled=false); - -webkit-border-radius: 0; - -moz-border-radius: 0; - border-radius: 0; -} -.datepicker table tr td.range.today:hover, -.datepicker table tr td.range.today:hover:hover, -.datepicker table tr td.range.today.disabled:hover, -.datepicker table tr td.range.today.disabled:hover:hover, -.datepicker table tr td.range.today:active, -.datepicker table tr td.range.today:hover:active, -.datepicker table tr td.range.today.disabled:active, -.datepicker table tr td.range.today.disabled:hover:active, -.datepicker table tr td.range.today.active, -.datepicker table tr td.range.today:hover.active, -.datepicker table tr td.range.today.disabled.active, -.datepicker table tr td.range.today.disabled:hover.active, -.datepicker table tr td.range.today.disabled, -.datepicker table tr td.range.today:hover.disabled, -.datepicker table tr td.range.today.disabled.disabled, -.datepicker table tr td.range.today.disabled:hover.disabled, -.datepicker table tr td.range.today[disabled], -.datepicker table tr td.range.today:hover[disabled], -.datepicker table tr td.range.today.disabled[disabled], -.datepicker table tr td.range.today.disabled:hover[disabled] { - background-color: #f3e97a; -} -.datepicker table tr td.range.today:active, -.datepicker table tr td.range.today:hover:active, -.datepicker table tr td.range.today.disabled:active, -.datepicker table tr td.range.today.disabled:hover:active, -.datepicker table tr td.range.today.active, -.datepicker table tr td.range.today:hover.active, -.datepicker table tr td.range.today.disabled.active, -.datepicker table tr td.range.today.disabled:hover.active { - background-color: #efe24b \9; -} -.datepicker table tr td.selected, -.datepicker table tr td.selected:hover, -.datepicker table tr td.selected.disabled, -.datepicker table tr td.selected.disabled:hover { - background-color: #9e9e9e; - background-image: -moz-linear-gradient(to bottom, #b3b3b3, #808080); - background-image: -ms-linear-gradient(to bottom, #b3b3b3, #808080); - background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#b3b3b3), to(#808080)); - background-image: -webkit-linear-gradient(to bottom, #b3b3b3, #808080); - background-image: -o-linear-gradient(to bottom, #b3b3b3, #808080); - background-image: linear-gradient(to bottom, #b3b3b3, #808080); - background-repeat: repeat-x; - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#b3b3b3', endColorstr='#808080', GradientType=0); - border-color: #808080 #808080 #595959; - border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25); - filter: progid:DXImageTransform.Microsoft.gradient(enabled=false); - color: #fff; - text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25); -} -.datepicker table tr td.selected:hover, -.datepicker table tr td.selected:hover:hover, -.datepicker table tr td.selected.disabled:hover, -.datepicker table tr td.selected.disabled:hover:hover, -.datepicker table tr td.selected:active, -.datepicker table tr td.selected:hover:active, -.datepicker table tr td.selected.disabled:active, -.datepicker table tr td.selected.disabled:hover:active, -.datepicker table tr td.selected.active, -.datepicker table tr td.selected:hover.active, -.datepicker table tr td.selected.disabled.active, -.datepicker table tr td.selected.disabled:hover.active, -.datepicker table tr td.selected.disabled, -.datepicker table tr td.selected:hover.disabled, -.datepicker table tr td.selected.disabled.disabled, -.datepicker table tr td.selected.disabled:hover.disabled, -.datepicker table tr td.selected[disabled], -.datepicker table tr td.selected:hover[disabled], -.datepicker table tr td.selected.disabled[disabled], -.datepicker table tr td.selected.disabled:hover[disabled] { - background-color: #808080; -} -.datepicker table tr td.selected:active, -.datepicker table tr td.selected:hover:active, -.datepicker table tr td.selected.disabled:active, -.datepicker table tr td.selected.disabled:hover:active, -.datepicker table tr td.selected.active, -.datepicker table tr td.selected:hover.active, -.datepicker table tr td.selected.disabled.active, -.datepicker table tr td.selected.disabled:hover.active { - background-color: #666666 \9; -} -.datepicker table tr td.active, -.datepicker table tr td.active:hover, -.datepicker table tr td.active.disabled, -.datepicker table tr td.active.disabled:hover { - background-color: #006dcc; - background-image: -moz-linear-gradient(to bottom, #08c, #0044cc); - background-image: -ms-linear-gradient(to bottom, #08c, #0044cc); - background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#08c), to(#0044cc)); - background-image: -webkit-linear-gradient(to bottom, #08c, #0044cc); - background-image: -o-linear-gradient(to bottom, #08c, #0044cc); - background-image: linear-gradient(to bottom, #08c, #0044cc); - background-repeat: repeat-x; - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#08c', endColorstr='#0044cc', GradientType=0); - border-color: #0044cc #0044cc #002a80; - border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25); - filter: progid:DXImageTransform.Microsoft.gradient(enabled=false); - color: #fff; - text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25); -} -.datepicker table tr td.active:hover, -.datepicker table tr td.active:hover:hover, -.datepicker table tr td.active.disabled:hover, -.datepicker table tr td.active.disabled:hover:hover, -.datepicker table tr td.active:active, -.datepicker table tr td.active:hover:active, -.datepicker table tr td.active.disabled:active, -.datepicker table tr td.active.disabled:hover:active, -.datepicker table tr td.active.active, -.datepicker table tr td.active:hover.active, -.datepicker table tr td.active.disabled.active, -.datepicker table tr td.active.disabled:hover.active, -.datepicker table tr td.active.disabled, -.datepicker table tr td.active:hover.disabled, -.datepicker table tr td.active.disabled.disabled, -.datepicker table tr td.active.disabled:hover.disabled, -.datepicker table tr td.active[disabled], -.datepicker table tr td.active:hover[disabled], -.datepicker table tr td.active.disabled[disabled], -.datepicker table tr td.active.disabled:hover[disabled] { - background-color: #0044cc; -} -.datepicker table tr td.active:active, -.datepicker table tr td.active:hover:active, -.datepicker table tr td.active.disabled:active, -.datepicker table tr td.active.disabled:hover:active, -.datepicker table tr td.active.active, -.datepicker table tr td.active:hover.active, -.datepicker table tr td.active.disabled.active, -.datepicker table tr td.active.disabled:hover.active { - background-color: #003399 \9; -} -.datepicker table tr td span { - display: block; - width: 23%; - height: 54px; - line-height: 54px; - float: left; - margin: 1%; - cursor: pointer; - -webkit-border-radius: 4px; - -moz-border-radius: 4px; - border-radius: 4px; -} -.datepicker table tr td span:hover, -.datepicker table tr td span.focused { - background: #eee; -} -.datepicker table tr td span.disabled, -.datepicker table tr td span.disabled:hover { - background: none; - color: #999; - cursor: default; -} -.datepicker table tr td span.active, -.datepicker table tr td span.active:hover, -.datepicker table tr td span.active.disabled, -.datepicker table tr td span.active.disabled:hover { - background-color: #006dcc; - background-image: -moz-linear-gradient(to bottom, #08c, #0044cc); - background-image: -ms-linear-gradient(to bottom, #08c, #0044cc); - background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#08c), to(#0044cc)); - background-image: -webkit-linear-gradient(to bottom, #08c, #0044cc); - background-image: -o-linear-gradient(to bottom, #08c, #0044cc); - background-image: linear-gradient(to bottom, #08c, #0044cc); - background-repeat: repeat-x; - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#08c', endColorstr='#0044cc', GradientType=0); - border-color: #0044cc #0044cc #002a80; - border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25); - filter: progid:DXImageTransform.Microsoft.gradient(enabled=false); - color: #fff; - text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25); -} -.datepicker table tr td span.active:hover, -.datepicker table tr td span.active:hover:hover, -.datepicker table tr td span.active.disabled:hover, -.datepicker table tr td span.active.disabled:hover:hover, -.datepicker table tr td span.active:active, -.datepicker table tr td span.active:hover:active, -.datepicker table tr td span.active.disabled:active, -.datepicker table tr td span.active.disabled:hover:active, -.datepicker table tr td span.active.active, -.datepicker table tr td span.active:hover.active, -.datepicker table tr td span.active.disabled.active, -.datepicker table tr td span.active.disabled:hover.active, -.datepicker table tr td span.active.disabled, -.datepicker table tr td span.active:hover.disabled, -.datepicker table tr td span.active.disabled.disabled, -.datepicker table tr td span.active.disabled:hover.disabled, -.datepicker table tr td span.active[disabled], -.datepicker table tr td span.active:hover[disabled], -.datepicker table tr td span.active.disabled[disabled], -.datepicker table tr td span.active.disabled:hover[disabled] { - background-color: #0044cc; -} -.datepicker table tr td span.active:active, -.datepicker table tr td span.active:hover:active, -.datepicker table tr td span.active.disabled:active, -.datepicker table tr td span.active.disabled:hover:active, -.datepicker table tr td span.active.active, -.datepicker table tr td span.active:hover.active, -.datepicker table tr td span.active.disabled.active, -.datepicker table tr td span.active.disabled:hover.active { - background-color: #003399 \9; -} -.datepicker table tr td span.old, -.datepicker table tr td span.new { - color: #999; -} -.datepicker .datepicker-switch { - width: 145px; -} -.datepicker .datepicker-switch, -.datepicker .prev, -.datepicker .next, -.datepicker tfoot tr th { - cursor: pointer; -} -.datepicker .datepicker-switch:hover, -.datepicker .prev:hover, -.datepicker .next:hover, -.datepicker tfoot tr th:hover { - background: #eee; -} -.datepicker .prev.disabled, -.datepicker .next.disabled { - visibility: hidden; -} -.datepicker .cw { - font-size: 10px; - width: 12px; - padding: 0 2px 0 5px; - vertical-align: middle; -} -.input-append.date .add-on, -.input-prepend.date .add-on { - cursor: pointer; -} -.input-append.date .add-on i, -.input-prepend.date .add-on i { - margin-top: 3px; -} -.input-daterange input { - text-align: center; -} -.input-daterange input:first-child { - -webkit-border-radius: 3px 0 0 3px; - -moz-border-radius: 3px 0 0 3px; - border-radius: 3px 0 0 3px; -} -.input-daterange input:last-child { - -webkit-border-radius: 0 3px 3px 0; - -moz-border-radius: 0 3px 3px 0; - border-radius: 0 3px 3px 0; -} -.input-daterange .add-on { - display: inline-block; - width: auto; - min-width: 16px; - height: 18px; - padding: 4px 5px; - font-weight: normal; - line-height: 18px; - text-align: center; - text-shadow: 0 1px 0 #fff; - vertical-align: middle; - background-color: #eee; - border: 1px solid #ccc; - margin-left: -5px; - margin-right: -5px; -} -/*# sourceMappingURL=bootstrap-datepicker.css.map */ \ No newline at end of file diff --git a/admin/bower_components/bootstrap-datepicker/dist/css/bootstrap-datepicker.css.map b/admin/bower_components/bootstrap-datepicker/dist/css/bootstrap-datepicker.css.map deleted file mode 100644 index 7e08a21..0000000 --- a/admin/bower_components/bootstrap-datepicker/dist/css/bootstrap-datepicker.css.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sources":["less/datepicker.less","build/build.less"],"names":[],"mappings":"AAAA;EACC,YAAA;ECsBC,0BAAA;EACG,uBAAA;EACK,kBAAA;EDnBT,cAAA;;AAHA,WAAC;EACA,YAAA;;AAGD,WAAC;EACA,cAAA;;AACA,WAFA,IAEC;EAAiB,UAAA;;AAFnB,WAAC,IAGA,MAAM,GAAG,GAAG;EACX,YAAA;;AAGF,WAAC;EACA,MAAA;EACA,OAAA;;AACA,WAHA,SAGC;EACA,SAAS,EAAT;EACA,qBAAA;EACA,kCAAA;EACA,mCAAA;EACA,6BAAA;EACA,aAAA;EACA,uCAAA;EACA,kBAAA;;AAED,WAbA,SAaC;EACA,SAAS,EAAT;EACA,qBAAA;EACA,kCAAA;EACA,mCAAA;EACA,6BAAA;EACA,aAAA;EACA,kBAAA;;AAED,WAtBA,SAsBC,uBAAuB;EAAY,SAAA;;AACpC,WAvBA,SAuBC,uBAAuB;EAAY,SAAA;;AACpC,WAxBA,SAwBC,wBAAwB;EAAW,UAAA;;AACpC,WAzBA,SAyBC,wBAAwB;EAAW,UAAA;;AACpC,WA1BA,SA0BC,yBAAyB;EAAU,SAAA;;AACpC,WA3BA,SA2BC,yBAAyB;EAAU,SAAA;;AACpC,WA5BA,SA4BC,sBAAsB;EACtB,YAAA;EACA,gBAAA;EACA,0BAAA;;AAED,WAjCA,SAiCC,sBAAsB;EACtB,YAAA;EACA,gBAAA;EACA,0BAAA;;AAlDH,WAqDC;EACC,SAAA;EACA,2BAAA;EACA,yBAAA;EACA,wBAAA;EACA,sBAAA;EACA,qBAAA;EACA,iBAAA;;AA5DF,WA8DC;AA9DD,WA8DK;EACH,kBAAA;EACA,WAAA;EACA,YAAA;EC1CA,0BAAA;EACG,uBAAA;EACK,kBAAA;ED2CR,YAAA;;AAID,cAAe,YAAE,MAAM,GACtB;AADD,cAAe,YAAE,MAAM,GAClB;EACH,6BAAA;;AAID,WADD,MAAM,GAAG,GACP,IAAI;AACL,WAFD,MAAM,GAAG,GAEP,IAAI;EACJ,gBAAA;EACA,eAAA;;AAED,WAND,MAAM,GAAG,GAMP;AACD,WAPD,MAAM,GAAG,GAOP;EACA,WAAA;;AAED,WAVD,MAAM,GAAG,GAUP;AACD,WAXD,MAAM,GAAG,GAWP,SAAS;EACT,gBAAA;EACA,WAAA;EACA,eAAA;;AAED,WAhBD,MAAM,GAAG,GAgBP;EACA,mBAAA;EACA,gBAAA;;AAED,WApBD,MAAM,GAAG,GAoBP;AACD,WArBD,MAAM,GAAG,GAqBP,MAAM;AACP,WAtBD,MAAM,GAAG,GAsBP,MAAM;AACP,WAvBD,MAAM,GAAG,GAuBP,MAAM,SAAS;EC5Cd,yBAAA;EACA,kBAAkB,iDAAlB;EACA,kBAAkB,gDAAlB;EACA,kBAAkB,sCAAsC,eAAmB,YAA3E;EACA,kBAAkB,oDAAlB;EACA,kBAAkB,+CAAlB;EACA,kBAAkB,4CAAlB;EACA,2BAAA;EACA,QAAQ,0GAAR;EAfF,qCAAA;EACA,uEAAA;EAPA,QAAQ,yDAAR;ED4DC,WAAA;;ACvED,WD6CD,MAAM,GAAG,GAoBP,MCjEA;AAAD,WD6CD,MAAM,GAAG,GAqBP,MAAM,MClEN;AAAD,WD6CD,MAAM,GAAG,GAsBP,MAAM,SCnEN;AAAD,WD6CD,MAAM,GAAG,GAuBP,MAAM,SAAS,MCpEf;AAAQ,WD6CV,MAAM,GAAG,GAoBP,MCjES;AAAD,WD6CV,MAAM,GAAG,GAqBP,MAAM,MClEG;AAAD,WD6CV,MAAM,GAAG,GAsBP,MAAM,SCnEG;AAAD,WD6CV,MAAM,GAAG,GAuBP,MAAM,SAAS,MCpEN;AAAS,WD6CpB,MAAM,GAAG,GAoBP,MCjEmB;AAAD,WD6CpB,MAAM,GAAG,GAqBP,MAAM,MClEa;AAAD,WD6CpB,MAAM,GAAG,GAsBP,MAAM,SCnEa;AAAD,WD6CpB,MAAM,GAAG,GAuBP,MAAM,SAAS,MCpEI;AAAS,WD6C9B,MAAM,GAAG,GAoBP,MCjE6B;AAAD,WD6C9B,MAAM,GAAG,GAqBP,MAAM,MClEuB;AAAD,WD6C9B,MAAM,GAAG,GAsBP,MAAM,SCnEuB;AAAD,WD6C9B,MAAM,GAAG,GAuBP,MAAM,SAAS,MCpEc;AAAW,WD6C1C,MAAM,GAAG,GAoBP,MCjEyC;AAAD,WD6C1C,MAAM,GAAG,GAqBP,MAAM,MClEmC;AAAD,WD6C1C,MAAM,GAAG,GAsBP,MAAM,SCnEmC;AAAD,WD6C1C,MAAM,GAAG,GAuBP,MAAM,SAAS,MCpE0B;EACxC,yBAAA;;AAEF,WD0CD,MAAM,GAAG,GAoBP,MC9DA;AAAD,WD0CD,MAAM,GAAG,GAqBP,MAAM,MC/DN;AAAD,WD0CD,MAAM,GAAG,GAsBP,MAAM,SChEN;AAAD,WD0CD,MAAM,GAAG,GAuBP,MAAM,SAAS,MCjEf;AACD,WDyCD,MAAM,GAAG,GAoBP,MC7DA;AAAD,WDyCD,MAAM,GAAG,GAqBP,MAAM,MC9DN;AAAD,WDyCD,MAAM,GAAG,GAsBP,MAAM,SC/DN;AAAD,WDyCD,MAAM,GAAG,GAuBP,MAAM,SAAS,MChEf;EACC,0BAAyC,EAAzC;;ADoEF,WA5BD,MAAM,GAAG,GA4BP,MAAM,MAAM;EAEZ,WAAA;;AAED,WAhCD,MAAM,GAAG,GAgCP,MAAM,OAAO;EACb,WAAA;;AAED,WAnCD,MAAM,GAAG,GAmCP;AACD,WApCD,MAAM,GAAG,GAoCP,MAAM;AACP,WArCD,MAAM,GAAG,GAqCP,MAAM;AACP,WAtCD,MAAM,GAAG,GAsCP,MAAM,SAAS;EACf,gBAAA;EC7FD,wBAAA;EACG,qBAAA;EACK,gBAAA;;AD8FR,WA1CD,MAAM,GAAG,GA0CP,MAAM;AACP,WA3CD,MAAM,GAAG,GA2CP,MAAM,MAAM;AACb,WA5CD,MAAM,GAAG,GA4CP,MAAM,MAAM;AACb,WA7CD,MAAM,GAAG,GA6CP,MAAM,MAAM,SAAS;EClEpB,yBAAA;EACA,kBAAkB,iDAAlB;EACA,kBAAkB,gDAAlB;EACA,kBAAkB,sCAAsC,eAAmB,YAA3E;EACA,kBAAkB,oDAAlB;EACA,kBAAkB,+CAAlB;EACA,kBAAkB,4CAAlB;EACA,2BAAA;EACA,QAAQ,0GAAR;EAfF,qCAAA;EACA,uEAAA;EAPA,QAAQ,yDAAR;EApBA,wBAAA;EACG,qBAAA;EACK,gBAAA;;AAOR,WD6CD,MAAM,GAAG,GA0CP,MAAM,MCvFN;AAAD,WD6CD,MAAM,GAAG,GA2CP,MAAM,MAAM,MCxFZ;AAAD,WD6CD,MAAM,GAAG,GA4CP,MAAM,MAAM,SCzFZ;AAAD,WD6CD,MAAM,GAAG,GA6CP,MAAM,MAAM,SAAS,MC1FrB;AAAQ,WD6CV,MAAM,GAAG,GA0CP,MAAM,MCvFG;AAAD,WD6CV,MAAM,GAAG,GA2CP,MAAM,MAAM,MCxFH;AAAD,WD6CV,MAAM,GAAG,GA4CP,MAAM,MAAM,SCzFH;AAAD,WD6CV,MAAM,GAAG,GA6CP,MAAM,MAAM,SAAS,MC1FZ;AAAS,WD6CpB,MAAM,GAAG,GA0CP,MAAM,MCvFa;AAAD,WD6CpB,MAAM,GAAG,GA2CP,MAAM,MAAM,MCxFO;AAAD,WD6CpB,MAAM,GAAG,GA4CP,MAAM,MAAM,SCzFO;AAAD,WD6CpB,MAAM,GAAG,GA6CP,MAAM,MAAM,SAAS,MC1FF;AAAS,WD6C9B,MAAM,GAAG,GA0CP,MAAM,MCvFuB;AAAD,WD6C9B,MAAM,GAAG,GA2CP,MAAM,MAAM,MCxFiB;AAAD,WD6C9B,MAAM,GAAG,GA4CP,MAAM,MAAM,SCzFiB;AAAD,WD6C9B,MAAM,GAAG,GA6CP,MAAM,MAAM,SAAS,MC1FQ;AAAW,WD6C1C,MAAM,GAAG,GA0CP,MAAM,MCvFmC;AAAD,WD6C1C,MAAM,GAAG,GA2CP,MAAM,MAAM,MCxF6B;AAAD,WD6C1C,MAAM,GAAG,GA4CP,MAAM,MAAM,SCzF6B;AAAD,WD6C1C,MAAM,GAAG,GA6CP,MAAM,MAAM,SAAS,MC1FoB;EACxC,yBAAA;;AAEF,WD0CD,MAAM,GAAG,GA0CP,MAAM,MCpFN;AAAD,WD0CD,MAAM,GAAG,GA2CP,MAAM,MAAM,MCrFZ;AAAD,WD0CD,MAAM,GAAG,GA4CP,MAAM,MAAM,SCtFZ;AAAD,WD0CD,MAAM,GAAG,GA6CP,MAAM,MAAM,SAAS,MCvFrB;AACD,WDyCD,MAAM,GAAG,GA0CP,MAAM,MCnFN;AAAD,WDyCD,MAAM,GAAG,GA2CP,MAAM,MAAM,MCpFZ;AAAD,WDyCD,MAAM,GAAG,GA4CP,MAAM,MAAM,SCrFZ;AAAD,WDyCD,MAAM,GAAG,GA6CP,MAAM,MAAM,SAAS,MCtFrB;EACC,0BAAyC,EAAzC;;AD0FF,WAlDD,MAAM,GAAG,GAkDP;AACD,WAnDD,MAAM,GAAG,GAmDP,SAAS;AACV,WApDD,MAAM,GAAG,GAoDP,SAAS;AACV,WArDD,MAAM,GAAG,GAqDP,SAAS,SAAS;EC1EjB,yBAAA;EACA,kBAAkB,iDAAlB;EACA,kBAAkB,gDAAlB;EACA,kBAAkB,sCAAsC,eAAmB,YAA3E;EACA,kBAAkB,oDAAlB;EACA,kBAAkB,+CAAlB;EACA,kBAAkB,4CAAlB;EACA,2BAAA;EACA,QAAQ,0GAAR;EAfF,qCAAA;EACA,uEAAA;EAPA,QAAQ,yDAAR;EDyFC,WAAA;EACA,yCAAA;;ACrGD,WD6CD,MAAM,GAAG,GAkDP,SC/FA;AAAD,WD6CD,MAAM,GAAG,GAmDP,SAAS,MChGT;AAAD,WD6CD,MAAM,GAAG,GAoDP,SAAS,SCjGT;AAAD,WD6CD,MAAM,GAAG,GAqDP,SAAS,SAAS,MClGlB;AAAQ,WD6CV,MAAM,GAAG,GAkDP,SC/FS;AAAD,WD6CV,MAAM,GAAG,GAmDP,SAAS,MChGA;AAAD,WD6CV,MAAM,GAAG,GAoDP,SAAS,SCjGA;AAAD,WD6CV,MAAM,GAAG,GAqDP,SAAS,SAAS,MClGT;AAAS,WD6CpB,MAAM,GAAG,GAkDP,SC/FmB;AAAD,WD6CpB,MAAM,GAAG,GAmDP,SAAS,MChGU;AAAD,WD6CpB,MAAM,GAAG,GAoDP,SAAS,SCjGU;AAAD,WD6CpB,MAAM,GAAG,GAqDP,SAAS,SAAS,MClGC;AAAS,WD6C9B,MAAM,GAAG,GAkDP,SC/F6B;AAAD,WD6C9B,MAAM,GAAG,GAmDP,SAAS,MChGoB;AAAD,WD6C9B,MAAM,GAAG,GAoDP,SAAS,SCjGoB;AAAD,WD6C9B,MAAM,GAAG,GAqDP,SAAS,SAAS,MClGW;AAAW,WD6C1C,MAAM,GAAG,GAkDP,SC/FyC;AAAD,WD6C1C,MAAM,GAAG,GAmDP,SAAS,MChGgC;AAAD,WD6C1C,MAAM,GAAG,GAoDP,SAAS,SCjGgC;AAAD,WD6C1C,MAAM,GAAG,GAqDP,SAAS,SAAS,MClGuB;EACxC,yBAAA;;AAEF,WD0CD,MAAM,GAAG,GAkDP,SC5FA;AAAD,WD0CD,MAAM,GAAG,GAmDP,SAAS,MC7FT;AAAD,WD0CD,MAAM,GAAG,GAoDP,SAAS,SC9FT;AAAD,WD0CD,MAAM,GAAG,GAqDP,SAAS,SAAS,MC/FlB;AACD,WDyCD,MAAM,GAAG,GAkDP,SC3FA;AAAD,WDyCD,MAAM,GAAG,GAmDP,SAAS,MC5FT;AAAD,WDyCD,MAAM,GAAG,GAoDP,SAAS,SC7FT;AAAD,WDyCD,MAAM,GAAG,GAqDP,SAAS,SAAS,MC9FlB;EACC,0BAAyC,EAAzC;;ADkGF,WA1DD,MAAM,GAAG,GA0DP;AACD,WA3DD,MAAM,GAAG,GA2DP,OAAO;AACR,WA5DD,MAAM,GAAG,GA4DP,OAAO;AACR,WA7DD,MAAM,GAAG,GA6DP,OAAO,SAAS;EClFf,yBAAA;EACA,kBAAkB,8CAAlB;EACA,kBAAkB,6CAAlB;EACA,kBAAkB,sCAAsC,YAAmB,YAA3E;EACA,kBAAkB,iDAAlB;EACA,kBAAkB,4CAAlB;EACA,kBAAkB,yCAAlB;EACA,2BAAA;EACA,QAAQ,uGAAR;EAfF,qCAAA;EACA,uEAAA;EAPA,QAAQ,yDAAR;EDiGC,WAAA;EACA,yCAAA;;AC7GD,WD6CD,MAAM,GAAG,GA0DP,OCvGA;AAAD,WD6CD,MAAM,GAAG,GA2DP,OAAO,MCxGP;AAAD,WD6CD,MAAM,GAAG,GA4DP,OAAO,SCzGP;AAAD,WD6CD,MAAM,GAAG,GA6DP,OAAO,SAAS,MC1GhB;AAAQ,WD6CV,MAAM,GAAG,GA0DP,OCvGS;AAAD,WD6CV,MAAM,GAAG,GA2DP,OAAO,MCxGE;AAAD,WD6CV,MAAM,GAAG,GA4DP,OAAO,SCzGE;AAAD,WD6CV,MAAM,GAAG,GA6DP,OAAO,SAAS,MC1GP;AAAS,WD6CpB,MAAM,GAAG,GA0DP,OCvGmB;AAAD,WD6CpB,MAAM,GAAG,GA2DP,OAAO,MCxGY;AAAD,WD6CpB,MAAM,GAAG,GA4DP,OAAO,SCzGY;AAAD,WD6CpB,MAAM,GAAG,GA6DP,OAAO,SAAS,MC1GG;AAAS,WD6C9B,MAAM,GAAG,GA0DP,OCvG6B;AAAD,WD6C9B,MAAM,GAAG,GA2DP,OAAO,MCxGsB;AAAD,WD6C9B,MAAM,GAAG,GA4DP,OAAO,SCzGsB;AAAD,WD6C9B,MAAM,GAAG,GA6DP,OAAO,SAAS,MC1Ga;AAAW,WD6C1C,MAAM,GAAG,GA0DP,OCvGyC;AAAD,WD6C1C,MAAM,GAAG,GA2DP,OAAO,MCxGkC;AAAD,WD6C1C,MAAM,GAAG,GA4DP,OAAO,SCzGkC;AAAD,WD6C1C,MAAM,GAAG,GA6DP,OAAO,SAAS,MC1GyB;EACxC,yBAAA;;AAEF,WD0CD,MAAM,GAAG,GA0DP,OCpGA;AAAD,WD0CD,MAAM,GAAG,GA2DP,OAAO,MCrGP;AAAD,WD0CD,MAAM,GAAG,GA4DP,OAAO,SCtGP;AAAD,WD0CD,MAAM,GAAG,GA6DP,OAAO,SAAS,MCvGhB;AACD,WDyCD,MAAM,GAAG,GA0DP,OCnGA;AAAD,WDyCD,MAAM,GAAG,GA2DP,OAAO,MCpGP;AAAD,WDyCD,MAAM,GAAG,GA4DP,OAAO,SCrGP;AAAD,WDyCD,MAAM,GAAG,GA6DP,OAAO,SAAS,MCtGhB;EACC,0BAAyC,EAAzC;;ADrCJ,WA6EC,MAAM,GAAG,GAkER;EACC,cAAA;EACA,UAAA;EACA,YAAA;EACA,iBAAA;EACA,WAAA;EACA,UAAA;EACA,eAAA;EC/HD,0BAAA;EACG,uBAAA;EACK,kBAAA;;AD+HP,WA3EF,MAAM,GAAG,GAkER,KASE;AACD,WA5EF,MAAM,GAAG,GAkER,KAUE;EACA,gBAAA;;AAED,WA/EF,MAAM,GAAG,GAkER,KAaE;AACD,WAhFF,MAAM,GAAG,GAkER,KAcE,SAAS;EACT,gBAAA;EACA,WAAA;EACA,eAAA;;AAED,WArFF,MAAM,GAAG,GAkER,KAmBE;AACD,WAtFF,MAAM,GAAG,GAkER,KAoBE,OAAO;AACR,WAvFF,MAAM,GAAG,GAkER,KAqBE,OAAO;AACR,WAxFF,MAAM,GAAG,GAkER,KAsBE,OAAO,SAAS;EC7GhB,yBAAA;EACA,kBAAkB,8CAAlB;EACA,kBAAkB,6CAAlB;EACA,kBAAkB,sCAAsC,YAAmB,YAA3E;EACA,kBAAkB,iDAAlB;EACA,kBAAkB,4CAAlB;EACA,kBAAkB,yCAAlB;EACA,2BAAA;EACA,QAAQ,uGAAR;EAfF,qCAAA;EACA,uEAAA;EAPA,QAAQ,yDAAR;ED4HE,WAAA;EACA,yCAAA;;ACxIF,WD6CD,MAAM,GAAG,GAkER,KAmBE,OClID;AAAD,WD6CD,MAAM,GAAG,GAkER,KAoBE,OAAO,MCnIR;AAAD,WD6CD,MAAM,GAAG,GAkER,KAqBE,OAAO,SCpIR;AAAD,WD6CD,MAAM,GAAG,GAkER,KAsBE,OAAO,SAAS,MCrIjB;AAAQ,WD6CV,MAAM,GAAG,GAkER,KAmBE,OClIQ;AAAD,WD6CV,MAAM,GAAG,GAkER,KAoBE,OAAO,MCnIC;AAAD,WD6CV,MAAM,GAAG,GAkER,KAqBE,OAAO,SCpIC;AAAD,WD6CV,MAAM,GAAG,GAkER,KAsBE,OAAO,SAAS,MCrIR;AAAS,WD6CpB,MAAM,GAAG,GAkER,KAmBE,OClIkB;AAAD,WD6CpB,MAAM,GAAG,GAkER,KAoBE,OAAO,MCnIW;AAAD,WD6CpB,MAAM,GAAG,GAkER,KAqBE,OAAO,SCpIW;AAAD,WD6CpB,MAAM,GAAG,GAkER,KAsBE,OAAO,SAAS,MCrIE;AAAS,WD6C9B,MAAM,GAAG,GAkER,KAmBE,OClI4B;AAAD,WD6C9B,MAAM,GAAG,GAkER,KAoBE,OAAO,MCnIqB;AAAD,WD6C9B,MAAM,GAAG,GAkER,KAqBE,OAAO,SCpIqB;AAAD,WD6C9B,MAAM,GAAG,GAkER,KAsBE,OAAO,SAAS,MCrIY;AAAW,WD6C1C,MAAM,GAAG,GAkER,KAmBE,OClIwC;AAAD,WD6C1C,MAAM,GAAG,GAkER,KAoBE,OAAO,MCnIiC;AAAD,WD6C1C,MAAM,GAAG,GAkER,KAqBE,OAAO,SCpIiC;AAAD,WD6C1C,MAAM,GAAG,GAkER,KAsBE,OAAO,SAAS,MCrIwB;EACxC,yBAAA;;AAEF,WD0CD,MAAM,GAAG,GAkER,KAmBE,OC/HD;AAAD,WD0CD,MAAM,GAAG,GAkER,KAoBE,OAAO,MChIR;AAAD,WD0CD,MAAM,GAAG,GAkER,KAqBE,OAAO,SCjIR;AAAD,WD0CD,MAAM,GAAG,GAkER,KAsBE,OAAO,SAAS,MClIjB;AACD,WDyCD,MAAM,GAAG,GAkER,KAmBE,OC9HD;AAAD,WDyCD,MAAM,GAAG,GAkER,KAoBE,OAAO,MC/HR;AAAD,WDyCD,MAAM,GAAG,GAkER,KAqBE,OAAO,SChIR;AAAD,WDyCD,MAAM,GAAG,GAkER,KAsBE,OAAO,SAAS,MCjIjB;EACC,0BAAyC,EAAzC;;ADqID,WA7FF,MAAM,GAAG,GAkER,KA2BE;AACD,WA9FF,MAAM,GAAG,GAkER,KA4BE;EACA,WAAA;;AA5KJ,WAiLC;EACC,YAAA;;AAlLF,WAqLC;AArLD,WAsLC;AAtLD,WAuLC;AAvLD,WAwLC,MAAM,GAAG;EACR,eAAA;;AACA,WALD,mBAKE;AAAD,WAJD,MAIE;AAAD,WAHD,MAGE;AAAD,WAFD,MAAM,GAAG,GAEP;EACA,gBAAA;;AAKD,WADD,MACE;AAAD,WADM,MACL;EACA,kBAAA;;AAjMH,WAsMC;EACC,eAAA;EACA,WAAA;EACA,oBAAA;EACA,sBAAA;;AAKD,aAAC,KAAM;AAAP,cAAC,KAAM;EACN,eAAA;;AADD,aAAC,KAAM,QAGN;AAHD,cAAC,KAAM,QAGN;EACC,eAAA;;AAIH,gBACC;EACC,kBAAA;;AAFF,gBAIC,MAAK;ECpMJ,kCAAA;EACG,+BAAA;EACK,0BAAA;;AD8LV,gBAOC,MAAK;ECvMJ,kCAAA;EACG,+BAAA;EACK,0BAAA;;AD8LV,gBAUC;EACC,qBAAA;EACA,WAAA;EACA,eAAA;EACA,YAAA;EACA,gBAAA;EACA,mBAAA;EACA,iBAAA;EACA,kBAAA;EACA,yBAAA;EACA,sBAAA;EACA,sBAAA;EACA,sBAAA;EACA,iBAAA;EACA,kBAAA","sourcesContent":[".datepicker {\n\tpadding: 4px;\n\t.border-radius(@baseBorderRadius);\n\t&-inline {\n\t\twidth: 220px;\n\t}\n\tdirection: ltr;\n\t&-rtl {\n\t\tdirection: rtl;\n\t\t&.dropdown-menu { left: auto; }\n\t\ttable tr td span {\n\t\t\tfloat: right;\n\t\t}\n\t}\n\t&-dropdown {\n\t\ttop: 0;\n\t\tleft: 0;\n\t\t&:before {\n\t\t\tcontent: '';\n\t\t\tdisplay: inline-block;\n\t\t\tborder-left: 7px solid transparent;\n\t\t\tborder-right: 7px solid transparent;\n\t\t\tborder-bottom: 7px solid @grayLight;\n\t\t\tborder-top: 0;\n\t\t\tborder-bottom-color: rgba(0,0,0,.2);\n\t\t\tposition: absolute;\n\t\t}\n\t\t&:after {\n\t\t\tcontent: '';\n\t\t\tdisplay: inline-block;\n\t\t\tborder-left: 6px solid transparent;\n\t\t\tborder-right: 6px solid transparent;\n\t\t\tborder-bottom: 6px solid @white;\n\t\t\tborder-top: 0;\n\t\t\tposition: absolute;\n\t\t}\n\t\t&.datepicker-orient-left:before { left: 6px; }\n\t\t&.datepicker-orient-left:after { left: 7px; }\n\t\t&.datepicker-orient-right:before { right: 6px; }\n\t\t&.datepicker-orient-right:after { right: 7px; }\n\t\t&.datepicker-orient-bottom:before { top: -7px; }\n\t\t&.datepicker-orient-bottom:after { top: -6px; }\n\t\t&.datepicker-orient-top:before {\n\t\t\tbottom: -7px;\n\t\t\tborder-bottom: 0;\n\t\t\tborder-top: 7px solid @grayLight;\n\t\t}\n\t\t&.datepicker-orient-top:after {\n\t\t\tbottom: -6px;\n\t\t\tborder-bottom: 0;\n\t\t\tborder-top: 6px solid @white;\n\t\t}\n\t}\n\ttable {\n\t\tmargin: 0;\n\t\t-webkit-touch-callout: none;\n\t\t-webkit-user-select: none;\n\t\t-khtml-user-select: none;\n\t\t-moz-user-select: none;\n\t\t-ms-user-select: none;\n\t\tuser-select: none;\n\t}\n\ttd, th {\n\t\ttext-align: center;\n\t\twidth: 20px;\n\t\theight: 20px;\n\t\t.border-radius(4px);\n\n\t\tborder: none;\n\t}\n\t// Inline display inside a table presents some problems with\n\t// border and background colors.\n\t.table-striped & table tr {\n\t\ttd, th {\n\t\t\tbackground-color: transparent;\n\t\t}\n\t}\n\ttable tr td {\n\t\t&.day:hover,\n\t\t&.day.focused {\n\t\t\tbackground: @grayLighter;\n\t\t\tcursor: pointer;\n\t\t}\n\t\t&.old,\n\t\t&.new {\n\t\t\tcolor: @grayLight;\n\t\t}\n\t\t&.disabled,\n\t\t&.disabled:hover {\n\t\t\tbackground: none;\n\t\t\tcolor: @grayLight;\n\t\t\tcursor: default;\n\t\t}\n\t\t&.highlighted {\n\t\t\tbackground: @infoBackground;\n\t\t\tborder-radius: 0;\n\t\t}\n\t\t&.today,\n\t\t&.today:hover,\n\t\t&.today.disabled,\n\t\t&.today.disabled:hover {\n\t\t\t@todayBackground: lighten(@orange, 30%);\n\t\t\t.buttonBackground(@todayBackground, spin(@todayBackground, 20));\n\t\t\tcolor: #000;\n\t\t}\n\t\t&.today:hover:hover { // Thank bootstrap 2.0 for this selector...\n\t\t\t// TODO: Bump min BS to 2.1, use @textColor in buttonBackground above\n\t\t\tcolor: #000;\n\t\t}\n\t\t&.today.active:hover {\n\t\t\tcolor: #fff;\n\t\t}\n\t\t&.range,\n\t\t&.range:hover,\n\t\t&.range.disabled,\n\t\t&.range.disabled:hover {\n\t\t\tbackground: @grayLighter;\n\t\t\t.border-radius(0);\n\t\t}\n\t\t&.range.today,\n\t\t&.range.today:hover,\n\t\t&.range.today.disabled,\n\t\t&.range.today.disabled:hover {\n\t\t\t@todayBackground: mix(@orange, @grayLighter, 50%);\n\t\t\t.buttonBackground(@todayBackground, spin(@todayBackground, 20));\n\t\t\t.border-radius(0);\n\t\t}\n\t\t&.selected,\n\t\t&.selected:hover,\n\t\t&.selected.disabled,\n\t\t&.selected.disabled:hover {\n\t\t\t.buttonBackground(lighten(@grayLight, 10), darken(@grayLight, 10));\n\t\t\tcolor: #fff;\n\t\t\ttext-shadow: 0 -1px 0 rgba(0,0,0,.25);\n\t\t}\n\t\t&.active,\n\t\t&.active:hover,\n\t\t&.active.disabled,\n\t\t&.active.disabled:hover {\n\t\t\t.buttonBackground(@btnPrimaryBackground, spin(@btnPrimaryBackground, 20));\n\t\t\tcolor: #fff;\n\t\t\ttext-shadow: 0 -1px 0 rgba(0,0,0,.25);\n\t\t}\n\t\tspan {\n\t\t\tdisplay: block;\n\t\t\twidth: 23%;\n\t\t\theight: 54px;\n\t\t\tline-height: 54px;\n\t\t\tfloat: left;\n\t\t\tmargin: 1%;\n\t\t\tcursor: pointer;\n\t\t\t.border-radius(4px);\n\t\t\t&:hover,\n\t\t\t&.focused {\n\t\t\t\tbackground: @grayLighter;\n\t\t\t}\n\t\t\t&.disabled,\n\t\t\t&.disabled:hover {\n\t\t\t\tbackground: none;\n\t\t\t\tcolor: @grayLight;\n\t\t\t\tcursor: default;\n\t\t\t}\n\t\t\t&.active,\n\t\t\t&.active:hover,\n\t\t\t&.active.disabled,\n\t\t\t&.active.disabled:hover {\n\t\t\t\t.buttonBackground(@btnPrimaryBackground, spin(@btnPrimaryBackground, 20));\n\t\t\t\tcolor: #fff;\n\t\t\t\ttext-shadow: 0 -1px 0 rgba(0,0,0,.25);\n\t\t\t}\n\t\t\t&.old,\n\t\t\t&.new {\n\t\t\t\tcolor: @grayLight;\n\t\t\t}\n\t\t}\n\t}\n\n\t.datepicker-switch {\n\t\twidth: 145px;\n\t}\n\n\t.datepicker-switch,\n\t.prev,\n\t.next,\n\ttfoot tr th {\n\t\tcursor: pointer;\n\t\t&:hover {\n\t\t\tbackground: @grayLighter;\n\t\t}\n\t}\n\n\t.prev, .next {\n\t\t&.disabled {\n\t\t\tvisibility: hidden;\n\t\t}\n\t}\n\n\t// Basic styling for calendar-week cells\n\t.cw {\n\t\tfont-size: 10px;\n\t\twidth: 12px;\n\t\tpadding: 0 2px 0 5px;\n\t\tvertical-align: middle;\n\t}\n}\n.input-append,\n.input-prepend {\n\t&.date .add-on {\n\t\tcursor: pointer;\n\n\t\ti {\n\t\t\tmargin-top: 3px;\n\t\t}\n\t}\n}\n.input-daterange {\n\tinput {\n\t\ttext-align:center;\n\t}\n\tinput:first-child {\n\t\t.border-radius(3px 0 0 3px);\n\t}\n\tinput:last-child {\n\t\t.border-radius(0 3px 3px 0);\n\t}\n\t.add-on {\n\t\tdisplay: inline-block;\n\t\twidth: auto;\n\t\tmin-width: 16px;\n\t\theight: @baseLineHeight;\n\t\tpadding: 4px 5px;\n\t\tfont-weight: normal;\n\t\tline-height: @baseLineHeight;\n\t\ttext-align: center;\n\t\ttext-shadow: 0 1px 0 @white;\n\t\tvertical-align: middle;\n\t\tbackground-color: @grayLighter;\n\t\tborder: 1px solid #ccc;\n\t\tmargin-left: -5px;\n\t\tmargin-right: -5px;\n\t}\n}\n","// Datepicker .less buildfile. Includes select mixins/variables from bootstrap\n// and imports the included datepicker.less to output a minimal datepicker.css\n//\n// Usage:\n// lessc build.less datepicker.css\n//\n// Variables and mixins copied from bootstrap 2.0.2\n\n// Variables\n@grayLight: #999;\n@grayLighter: #eee;\n@white: #fff;\n@linkColor: #08c;\n@btnPrimaryBackground: @linkColor;\n@orange: #f89406;\n@infoBackground: #d9edf7;\n@baseLineHeight: 18px;\n@baseBorderRadius: 4px;\n\n// Mixins\n\n// Border Radius\n.border-radius(@radius: 5px) {\n -webkit-border-radius: @radius;\n -moz-border-radius: @radius;\n border-radius: @radius;\n}\n\n// Button backgrounds\n.buttonBackground(@startColor, @endColor) {\n .gradientBar(@startColor, @endColor);\n .reset-filter();\n &:hover, &:active, &.active, &.disabled, &[disabled] {\n background-color: @endColor;\n }\n &:active,\n &.active {\n background-color: darken(@endColor, 10%) e(\"\\9\");\n }\n}\n\n// Reset filters for IE\n.reset-filter() {\n filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);\n}\n\n// Gradient Bar Colors for buttons and alerts\n.gradientBar(@primaryColor, @secondaryColor) {\n #gradient > .vertical(@primaryColor, @secondaryColor);\n border-color: @secondaryColor @secondaryColor darken(@secondaryColor, 15%);\n border-color: rgba(0,0,0,.1) rgba(0,0,0,.1) fadein(rgba(0,0,0,.1), 15%);\n}\n\n// Gradients\n#gradient {\n .vertical(@startColor: #555, @endColor: #333) {\n background-color: mix(@startColor, @endColor, 60%);\n background-image: -moz-linear-gradient(to bottom, @startColor, @endColor); // FF 3.6+\n background-image: -ms-linear-gradient(to bottom, @startColor, @endColor); // IE10\n background-image: -webkit-gradient(linear, 0 0, 0 100%, from(@startColor), to(@endColor)); // Safari 4+, Chrome 2+\n background-image: -webkit-linear-gradient(to bottom, @startColor, @endColor); // Safari 5.1+, Chrome 10+\n background-image: -o-linear-gradient(to bottom, @startColor, @endColor); // Opera 11.10\n background-image: linear-gradient(to bottom, @startColor, @endColor); // The standard\n background-repeat: repeat-x;\n filter: e(%(\"progid:DXImageTransform.Microsoft.gradient(startColorstr='%d', endColorstr='%d', GradientType=0)\",@startColor,@endColor)); // IE9 and down\n }\n}\n\n@import \"../less/datepicker.less\";\n"]} \ No newline at end of file diff --git a/admin/bower_components/bootstrap-datepicker/dist/css/bootstrap-datepicker.min.css b/admin/bower_components/bootstrap-datepicker/dist/css/bootstrap-datepicker.min.css deleted file mode 100644 index bd2aa85..0000000 --- a/admin/bower_components/bootstrap-datepicker/dist/css/bootstrap-datepicker.min.css +++ /dev/null @@ -1,7 +0,0 @@ -/*! - * Datepicker for Bootstrap v1.7.1 (https://github.com/uxsolutions/bootstrap-datepicker) - * - * Licensed under the Apache License v2.0 (http://www.apache.org/licenses/LICENSE-2.0) - */ - -.datepicker{padding:4px;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;direction:ltr}.datepicker-inline{width:220px}.datepicker-rtl{direction:rtl}.datepicker-rtl.dropdown-menu{left:auto}.datepicker-rtl table tr td span{float:right}.datepicker-dropdown{top:0;left:0}.datepicker-dropdown:before{content:'';display:inline-block;border-left:7px solid transparent;border-right:7px solid transparent;border-bottom:7px solid #999;border-top:0;border-bottom-color:rgba(0,0,0,.2);position:absolute}.datepicker-dropdown:after{content:'';display:inline-block;border-left:6px solid transparent;border-right:6px solid transparent;border-bottom:6px solid #fff;border-top:0;position:absolute}.datepicker-dropdown.datepicker-orient-left:before{left:6px}.datepicker-dropdown.datepicker-orient-left:after{left:7px}.datepicker-dropdown.datepicker-orient-right:before{right:6px}.datepicker-dropdown.datepicker-orient-right:after{right:7px}.datepicker-dropdown.datepicker-orient-bottom:before{top:-7px}.datepicker-dropdown.datepicker-orient-bottom:after{top:-6px}.datepicker-dropdown.datepicker-orient-top:before{bottom:-7px;border-bottom:0;border-top:7px solid #999}.datepicker-dropdown.datepicker-orient-top:after{bottom:-6px;border-bottom:0;border-top:6px solid #fff}.datepicker table{margin:0;-webkit-touch-callout:none;-webkit-user-select:none;-khtml-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.datepicker td,.datepicker th{text-align:center;width:20px;height:20px;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;border:none}.table-striped .datepicker table tr td,.table-striped .datepicker table tr th{background-color:transparent}.datepicker table tr td.day.focused,.datepicker table tr td.day:hover{background:#eee;cursor:pointer}.datepicker table tr td.new,.datepicker table tr td.old{color:#999}.datepicker table tr td.disabled,.datepicker table tr td.disabled:hover{background:0 0;color:#999;cursor:default}.datepicker table tr td.highlighted{background:#d9edf7;border-radius:0}.datepicker table tr td.today,.datepicker table tr td.today.disabled,.datepicker table tr td.today.disabled:hover,.datepicker table tr td.today:hover{background-color:#fde19a;background-image:-moz-linear-gradient(to bottom,#fdd49a,#fdf59a);background-image:-ms-linear-gradient(to bottom,#fdd49a,#fdf59a);background-image:-webkit-gradient(linear,0 0,0 100%,from(#fdd49a),to(#fdf59a));background-image:-webkit-linear-gradient(to bottom,#fdd49a,#fdf59a);background-image:-o-linear-gradient(to bottom,#fdd49a,#fdf59a);background-image:linear-gradient(to bottom,#fdd49a,#fdf59a);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fdd49a', endColorstr='#fdf59a', GradientType=0);border-color:#fdf59a #fdf59a #fbed50;border-color:rgba(0,0,0,.1) rgba(0,0,0,.1) rgba(0,0,0,.25);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);color:#000}.datepicker table tr td.today.active,.datepicker table tr td.today.disabled,.datepicker table tr td.today.disabled.active,.datepicker table tr td.today.disabled.disabled,.datepicker table tr td.today.disabled:active,.datepicker table tr td.today.disabled:hover,.datepicker table tr td.today.disabled:hover.active,.datepicker table tr td.today.disabled:hover.disabled,.datepicker table tr td.today.disabled:hover:active,.datepicker table tr td.today.disabled:hover:hover,.datepicker table tr td.today.disabled:hover[disabled],.datepicker table tr td.today.disabled[disabled],.datepicker table tr td.today:active,.datepicker table tr td.today:hover,.datepicker table tr td.today:hover.active,.datepicker table tr td.today:hover.disabled,.datepicker table tr td.today:hover:active,.datepicker table tr td.today:hover:hover,.datepicker table tr td.today:hover[disabled],.datepicker table tr td.today[disabled]{background-color:#fdf59a}.datepicker table tr td.today.active,.datepicker table tr td.today.disabled.active,.datepicker table tr td.today.disabled:active,.datepicker table tr td.today.disabled:hover.active,.datepicker table tr td.today.disabled:hover:active,.datepicker table tr td.today:active,.datepicker table tr td.today:hover.active,.datepicker table tr td.today:hover:active{background-color:#fbf069\9}.datepicker table tr td.today:hover:hover{color:#000}.datepicker table tr td.today.active:hover{color:#fff}.datepicker table tr td.range,.datepicker table tr td.range.disabled,.datepicker table tr td.range.disabled:hover,.datepicker table tr td.range:hover{background:#eee;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.datepicker table tr td.range.today,.datepicker table tr td.range.today.disabled,.datepicker table tr td.range.today.disabled:hover,.datepicker table tr td.range.today:hover{background-color:#f3d17a;background-image:-moz-linear-gradient(to bottom,#f3c17a,#f3e97a);background-image:-ms-linear-gradient(to bottom,#f3c17a,#f3e97a);background-image:-webkit-gradient(linear,0 0,0 100%,from(#f3c17a),to(#f3e97a));background-image:-webkit-linear-gradient(to bottom,#f3c17a,#f3e97a);background-image:-o-linear-gradient(to bottom,#f3c17a,#f3e97a);background-image:linear-gradient(to bottom,#f3c17a,#f3e97a);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#f3c17a', endColorstr='#f3e97a', GradientType=0);border-color:#f3e97a #f3e97a #edde34;border-color:rgba(0,0,0,.1) rgba(0,0,0,.1) rgba(0,0,0,.25);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.datepicker table tr td.range.today.active,.datepicker table tr td.range.today.disabled,.datepicker table tr td.range.today.disabled.active,.datepicker table tr td.range.today.disabled.disabled,.datepicker table tr td.range.today.disabled:active,.datepicker table tr td.range.today.disabled:hover,.datepicker table tr td.range.today.disabled:hover.active,.datepicker table tr td.range.today.disabled:hover.disabled,.datepicker table tr td.range.today.disabled:hover:active,.datepicker table tr td.range.today.disabled:hover:hover,.datepicker table tr td.range.today.disabled:hover[disabled],.datepicker table tr td.range.today.disabled[disabled],.datepicker table tr td.range.today:active,.datepicker table tr td.range.today:hover,.datepicker table tr td.range.today:hover.active,.datepicker table tr td.range.today:hover.disabled,.datepicker table tr td.range.today:hover:active,.datepicker table tr td.range.today:hover:hover,.datepicker table tr td.range.today:hover[disabled],.datepicker table tr td.range.today[disabled]{background-color:#f3e97a}.datepicker table tr td.range.today.active,.datepicker table tr td.range.today.disabled.active,.datepicker table tr td.range.today.disabled:active,.datepicker table tr td.range.today.disabled:hover.active,.datepicker table tr td.range.today.disabled:hover:active,.datepicker table tr td.range.today:active,.datepicker table tr td.range.today:hover.active,.datepicker table tr td.range.today:hover:active{background-color:#efe24b\9}.datepicker table tr td.selected,.datepicker table tr td.selected.disabled,.datepicker table tr td.selected.disabled:hover,.datepicker table tr td.selected:hover{background-color:#9e9e9e;background-image:-moz-linear-gradient(to bottom,#b3b3b3,grey);background-image:-ms-linear-gradient(to bottom,#b3b3b3,grey);background-image:-webkit-gradient(linear,0 0,0 100%,from(#b3b3b3),to(grey));background-image:-webkit-linear-gradient(to bottom,#b3b3b3,grey);background-image:-o-linear-gradient(to bottom,#b3b3b3,grey);background-image:linear-gradient(to bottom,#b3b3b3,grey);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#b3b3b3', endColorstr='#808080', GradientType=0);border-color:grey grey #595959;border-color:rgba(0,0,0,.1) rgba(0,0,0,.1) rgba(0,0,0,.25);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,.25)}.datepicker table tr td.selected.active,.datepicker table tr td.selected.disabled,.datepicker table tr td.selected.disabled.active,.datepicker table tr td.selected.disabled.disabled,.datepicker table tr td.selected.disabled:active,.datepicker table tr td.selected.disabled:hover,.datepicker table tr td.selected.disabled:hover.active,.datepicker table tr td.selected.disabled:hover.disabled,.datepicker table tr td.selected.disabled:hover:active,.datepicker table tr td.selected.disabled:hover:hover,.datepicker table tr td.selected.disabled:hover[disabled],.datepicker table tr td.selected.disabled[disabled],.datepicker table tr td.selected:active,.datepicker table tr td.selected:hover,.datepicker table tr td.selected:hover.active,.datepicker table tr td.selected:hover.disabled,.datepicker table tr td.selected:hover:active,.datepicker table tr td.selected:hover:hover,.datepicker table tr td.selected:hover[disabled],.datepicker table tr td.selected[disabled]{background-color:grey}.datepicker table tr td.selected.active,.datepicker table tr td.selected.disabled.active,.datepicker table tr td.selected.disabled:active,.datepicker table tr td.selected.disabled:hover.active,.datepicker table tr td.selected.disabled:hover:active,.datepicker table tr td.selected:active,.datepicker table tr td.selected:hover.active,.datepicker table tr td.selected:hover:active{background-color:#666\9}.datepicker table tr td.active,.datepicker table tr td.active.disabled,.datepicker table tr td.active.disabled:hover,.datepicker table tr td.active:hover{background-color:#006dcc;background-image:-moz-linear-gradient(to bottom,#08c,#04c);background-image:-ms-linear-gradient(to bottom,#08c,#04c);background-image:-webkit-gradient(linear,0 0,0 100%,from(#08c),to(#04c));background-image:-webkit-linear-gradient(to bottom,#08c,#04c);background-image:-o-linear-gradient(to bottom,#08c,#04c);background-image:linear-gradient(to bottom,#08c,#04c);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#08c', endColorstr='#0044cc', GradientType=0);border-color:#04c #04c #002a80;border-color:rgba(0,0,0,.1) rgba(0,0,0,.1) rgba(0,0,0,.25);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,.25)}.datepicker table tr td.active.active,.datepicker table tr td.active.disabled,.datepicker table tr td.active.disabled.active,.datepicker table tr td.active.disabled.disabled,.datepicker table tr td.active.disabled:active,.datepicker table tr td.active.disabled:hover,.datepicker table tr td.active.disabled:hover.active,.datepicker table tr td.active.disabled:hover.disabled,.datepicker table tr td.active.disabled:hover:active,.datepicker table tr td.active.disabled:hover:hover,.datepicker table tr td.active.disabled:hover[disabled],.datepicker table tr td.active.disabled[disabled],.datepicker table tr td.active:active,.datepicker table tr td.active:hover,.datepicker table tr td.active:hover.active,.datepicker table tr td.active:hover.disabled,.datepicker table tr td.active:hover:active,.datepicker table tr td.active:hover:hover,.datepicker table tr td.active:hover[disabled],.datepicker table tr td.active[disabled]{background-color:#04c}.datepicker table tr td.active.active,.datepicker table tr td.active.disabled.active,.datepicker table tr td.active.disabled:active,.datepicker table tr td.active.disabled:hover.active,.datepicker table tr td.active.disabled:hover:active,.datepicker table tr td.active:active,.datepicker table tr td.active:hover.active,.datepicker table tr td.active:hover:active{background-color:#039\9}.datepicker table tr td span{display:block;width:23%;height:54px;line-height:54px;float:left;margin:1%;cursor:pointer;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px}.datepicker table tr td span.focused,.datepicker table tr td span:hover{background:#eee}.datepicker table tr td span.disabled,.datepicker table tr td span.disabled:hover{background:0 0;color:#999;cursor:default}.datepicker table tr td span.active,.datepicker table tr td span.active.disabled,.datepicker table tr td span.active.disabled:hover,.datepicker table tr td span.active:hover{background-color:#006dcc;background-image:-moz-linear-gradient(to bottom,#08c,#04c);background-image:-ms-linear-gradient(to bottom,#08c,#04c);background-image:-webkit-gradient(linear,0 0,0 100%,from(#08c),to(#04c));background-image:-webkit-linear-gradient(to bottom,#08c,#04c);background-image:-o-linear-gradient(to bottom,#08c,#04c);background-image:linear-gradient(to bottom,#08c,#04c);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#08c', endColorstr='#0044cc', GradientType=0);border-color:#04c #04c #002a80;border-color:rgba(0,0,0,.1) rgba(0,0,0,.1) rgba(0,0,0,.25);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,.25)}.datepicker table tr td span.active.active,.datepicker table tr td span.active.disabled,.datepicker table tr td span.active.disabled.active,.datepicker table tr td span.active.disabled.disabled,.datepicker table tr td span.active.disabled:active,.datepicker table tr td span.active.disabled:hover,.datepicker table tr td span.active.disabled:hover.active,.datepicker table tr td span.active.disabled:hover.disabled,.datepicker table tr td span.active.disabled:hover:active,.datepicker table tr td span.active.disabled:hover:hover,.datepicker table tr td span.active.disabled:hover[disabled],.datepicker table tr td span.active.disabled[disabled],.datepicker table tr td span.active:active,.datepicker table tr td span.active:hover,.datepicker table tr td span.active:hover.active,.datepicker table tr td span.active:hover.disabled,.datepicker table tr td span.active:hover:active,.datepicker table tr td span.active:hover:hover,.datepicker table tr td span.active:hover[disabled],.datepicker table tr td span.active[disabled]{background-color:#04c}.datepicker table tr td span.active.active,.datepicker table tr td span.active.disabled.active,.datepicker table tr td span.active.disabled:active,.datepicker table tr td span.active.disabled:hover.active,.datepicker table tr td span.active.disabled:hover:active,.datepicker table tr td span.active:active,.datepicker table tr td span.active:hover.active,.datepicker table tr td span.active:hover:active{background-color:#039\9}.datepicker table tr td span.new,.datepicker table tr td span.old{color:#999}.datepicker .datepicker-switch{width:145px}.datepicker .datepicker-switch,.datepicker .next,.datepicker .prev,.datepicker tfoot tr th{cursor:pointer}.datepicker .datepicker-switch:hover,.datepicker .next:hover,.datepicker .prev:hover,.datepicker tfoot tr th:hover{background:#eee}.datepicker .next.disabled,.datepicker .prev.disabled{visibility:hidden}.datepicker .cw{font-size:10px;width:12px;padding:0 2px 0 5px;vertical-align:middle}.input-append.date .add-on,.input-prepend.date .add-on{cursor:pointer}.input-append.date .add-on i,.input-prepend.date .add-on i{margin-top:3px}.input-daterange input{text-align:center}.input-daterange input:first-child{-webkit-border-radius:3px 0 0 3px;-moz-border-radius:3px 0 0 3px;border-radius:3px 0 0 3px}.input-daterange input:last-child{-webkit-border-radius:0 3px 3px 0;-moz-border-radius:0 3px 3px 0;border-radius:0 3px 3px 0}.input-daterange .add-on{display:inline-block;width:auto;min-width:16px;height:18px;padding:4px 5px;font-weight:400;line-height:18px;text-align:center;text-shadow:0 1px 0 #fff;vertical-align:middle;background-color:#eee;border:1px solid #ccc;margin-left:-5px;margin-right:-5px} \ No newline at end of file diff --git a/admin/bower_components/bootstrap-datepicker/dist/css/bootstrap-datepicker.standalone.css b/admin/bower_components/bootstrap-datepicker/dist/css/bootstrap-datepicker.standalone.css deleted file mode 100644 index f67b17c..0000000 --- a/admin/bower_components/bootstrap-datepicker/dist/css/bootstrap-datepicker.standalone.css +++ /dev/null @@ -1,510 +0,0 @@ -/*! - * Datepicker for Bootstrap v1.7.1 (https://github.com/uxsolutions/bootstrap-datepicker) - * - * Licensed under the Apache License v2.0 (http://www.apache.org/licenses/LICENSE-2.0) - */ - -.datepicker { - padding: 4px; - -webkit-border-radius: 4px; - -moz-border-radius: 4px; - border-radius: 4px; - direction: ltr; -} -.datepicker-inline { - width: 220px; -} -.datepicker-rtl { - direction: rtl; -} -.datepicker-rtl.dropdown-menu { - left: auto; -} -.datepicker-rtl table tr td span { - float: right; -} -.datepicker-dropdown { - top: 0; - left: 0; -} -.datepicker-dropdown:before { - content: ''; - display: inline-block; - border-left: 7px solid transparent; - border-right: 7px solid transparent; - border-bottom: 7px solid #999; - border-top: 0; - border-bottom-color: rgba(0, 0, 0, 0.2); - position: absolute; -} -.datepicker-dropdown:after { - content: ''; - display: inline-block; - border-left: 6px solid transparent; - border-right: 6px solid transparent; - border-bottom: 6px solid #fff; - border-top: 0; - position: absolute; -} -.datepicker-dropdown.datepicker-orient-left:before { - left: 6px; -} -.datepicker-dropdown.datepicker-orient-left:after { - left: 7px; -} -.datepicker-dropdown.datepicker-orient-right:before { - right: 6px; -} -.datepicker-dropdown.datepicker-orient-right:after { - right: 7px; -} -.datepicker-dropdown.datepicker-orient-bottom:before { - top: -7px; -} -.datepicker-dropdown.datepicker-orient-bottom:after { - top: -6px; -} -.datepicker-dropdown.datepicker-orient-top:before { - bottom: -7px; - border-bottom: 0; - border-top: 7px solid #999; -} -.datepicker-dropdown.datepicker-orient-top:after { - bottom: -6px; - border-bottom: 0; - border-top: 6px solid #fff; -} -.datepicker table { - margin: 0; - -webkit-touch-callout: none; - -webkit-user-select: none; - -khtml-user-select: none; - -moz-user-select: none; - -ms-user-select: none; - user-select: none; -} -.datepicker td, -.datepicker th { - text-align: center; - width: 20px; - height: 20px; - -webkit-border-radius: 4px; - -moz-border-radius: 4px; - border-radius: 4px; - border: none; -} -.table-striped .datepicker table tr td, -.table-striped .datepicker table tr th { - background-color: transparent; -} -.datepicker table tr td.day:hover, -.datepicker table tr td.day.focused { - background: #eee; - cursor: pointer; -} -.datepicker table tr td.old, -.datepicker table tr td.new { - color: #999; -} -.datepicker table tr td.disabled, -.datepicker table tr td.disabled:hover { - background: none; - color: #999; - cursor: default; -} -.datepicker table tr td.highlighted { - background: #d9edf7; - border-radius: 0; -} -.datepicker table tr td.today, -.datepicker table tr td.today:hover, -.datepicker table tr td.today.disabled, -.datepicker table tr td.today.disabled:hover { - background-color: #fde19a; - background-image: -moz-linear-gradient(to bottom, #fdd49a, #fdf59a); - background-image: -ms-linear-gradient(to bottom, #fdd49a, #fdf59a); - background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#fdd49a), to(#fdf59a)); - background-image: -webkit-linear-gradient(to bottom, #fdd49a, #fdf59a); - background-image: -o-linear-gradient(to bottom, #fdd49a, #fdf59a); - background-image: linear-gradient(to bottom, #fdd49a, #fdf59a); - background-repeat: repeat-x; - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fdd49a', endColorstr='#fdf59a', GradientType=0); - border-color: #fdf59a #fdf59a #fbed50; - border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25); - filter: progid:DXImageTransform.Microsoft.gradient(enabled=false); - color: #000; -} -.datepicker table tr td.today:hover, -.datepicker table tr td.today:hover:hover, -.datepicker table tr td.today.disabled:hover, -.datepicker table tr td.today.disabled:hover:hover, -.datepicker table tr td.today:active, -.datepicker table tr td.today:hover:active, -.datepicker table tr td.today.disabled:active, -.datepicker table tr td.today.disabled:hover:active, -.datepicker table tr td.today.active, -.datepicker table tr td.today:hover.active, -.datepicker table tr td.today.disabled.active, -.datepicker table tr td.today.disabled:hover.active, -.datepicker table tr td.today.disabled, -.datepicker table tr td.today:hover.disabled, -.datepicker table tr td.today.disabled.disabled, -.datepicker table tr td.today.disabled:hover.disabled, -.datepicker table tr td.today[disabled], -.datepicker table tr td.today:hover[disabled], -.datepicker table tr td.today.disabled[disabled], -.datepicker table tr td.today.disabled:hover[disabled] { - background-color: #fdf59a; -} -.datepicker table tr td.today:active, -.datepicker table tr td.today:hover:active, -.datepicker table tr td.today.disabled:active, -.datepicker table tr td.today.disabled:hover:active, -.datepicker table tr td.today.active, -.datepicker table tr td.today:hover.active, -.datepicker table tr td.today.disabled.active, -.datepicker table tr td.today.disabled:hover.active { - background-color: #fbf069 \9; -} -.datepicker table tr td.today:hover:hover { - color: #000; -} -.datepicker table tr td.today.active:hover { - color: #fff; -} -.datepicker table tr td.range, -.datepicker table tr td.range:hover, -.datepicker table tr td.range.disabled, -.datepicker table tr td.range.disabled:hover { - background: #eee; - -webkit-border-radius: 0; - -moz-border-radius: 0; - border-radius: 0; -} -.datepicker table tr td.range.today, -.datepicker table tr td.range.today:hover, -.datepicker table tr td.range.today.disabled, -.datepicker table tr td.range.today.disabled:hover { - background-color: #f3d17a; - background-image: -moz-linear-gradient(to bottom, #f3c17a, #f3e97a); - background-image: -ms-linear-gradient(to bottom, #f3c17a, #f3e97a); - background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#f3c17a), to(#f3e97a)); - background-image: -webkit-linear-gradient(to bottom, #f3c17a, #f3e97a); - background-image: -o-linear-gradient(to bottom, #f3c17a, #f3e97a); - background-image: linear-gradient(to bottom, #f3c17a, #f3e97a); - background-repeat: repeat-x; - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#f3c17a', endColorstr='#f3e97a', GradientType=0); - border-color: #f3e97a #f3e97a #edde34; - border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25); - filter: progid:DXImageTransform.Microsoft.gradient(enabled=false); - -webkit-border-radius: 0; - -moz-border-radius: 0; - border-radius: 0; -} -.datepicker table tr td.range.today:hover, -.datepicker table tr td.range.today:hover:hover, -.datepicker table tr td.range.today.disabled:hover, -.datepicker table tr td.range.today.disabled:hover:hover, -.datepicker table tr td.range.today:active, -.datepicker table tr td.range.today:hover:active, -.datepicker table tr td.range.today.disabled:active, -.datepicker table tr td.range.today.disabled:hover:active, -.datepicker table tr td.range.today.active, -.datepicker table tr td.range.today:hover.active, -.datepicker table tr td.range.today.disabled.active, -.datepicker table tr td.range.today.disabled:hover.active, -.datepicker table tr td.range.today.disabled, -.datepicker table tr td.range.today:hover.disabled, -.datepicker table tr td.range.today.disabled.disabled, -.datepicker table tr td.range.today.disabled:hover.disabled, -.datepicker table tr td.range.today[disabled], -.datepicker table tr td.range.today:hover[disabled], -.datepicker table tr td.range.today.disabled[disabled], -.datepicker table tr td.range.today.disabled:hover[disabled] { - background-color: #f3e97a; -} -.datepicker table tr td.range.today:active, -.datepicker table tr td.range.today:hover:active, -.datepicker table tr td.range.today.disabled:active, -.datepicker table tr td.range.today.disabled:hover:active, -.datepicker table tr td.range.today.active, -.datepicker table tr td.range.today:hover.active, -.datepicker table tr td.range.today.disabled.active, -.datepicker table tr td.range.today.disabled:hover.active { - background-color: #efe24b \9; -} -.datepicker table tr td.selected, -.datepicker table tr td.selected:hover, -.datepicker table tr td.selected.disabled, -.datepicker table tr td.selected.disabled:hover { - background-color: #9e9e9e; - background-image: -moz-linear-gradient(to bottom, #b3b3b3, #808080); - background-image: -ms-linear-gradient(to bottom, #b3b3b3, #808080); - background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#b3b3b3), to(#808080)); - background-image: -webkit-linear-gradient(to bottom, #b3b3b3, #808080); - background-image: -o-linear-gradient(to bottom, #b3b3b3, #808080); - background-image: linear-gradient(to bottom, #b3b3b3, #808080); - background-repeat: repeat-x; - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#b3b3b3', endColorstr='#808080', GradientType=0); - border-color: #808080 #808080 #595959; - border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25); - filter: progid:DXImageTransform.Microsoft.gradient(enabled=false); - color: #fff; - text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25); -} -.datepicker table tr td.selected:hover, -.datepicker table tr td.selected:hover:hover, -.datepicker table tr td.selected.disabled:hover, -.datepicker table tr td.selected.disabled:hover:hover, -.datepicker table tr td.selected:active, -.datepicker table tr td.selected:hover:active, -.datepicker table tr td.selected.disabled:active, -.datepicker table tr td.selected.disabled:hover:active, -.datepicker table tr td.selected.active, -.datepicker table tr td.selected:hover.active, -.datepicker table tr td.selected.disabled.active, -.datepicker table tr td.selected.disabled:hover.active, -.datepicker table tr td.selected.disabled, -.datepicker table tr td.selected:hover.disabled, -.datepicker table tr td.selected.disabled.disabled, -.datepicker table tr td.selected.disabled:hover.disabled, -.datepicker table tr td.selected[disabled], -.datepicker table tr td.selected:hover[disabled], -.datepicker table tr td.selected.disabled[disabled], -.datepicker table tr td.selected.disabled:hover[disabled] { - background-color: #808080; -} -.datepicker table tr td.selected:active, -.datepicker table tr td.selected:hover:active, -.datepicker table tr td.selected.disabled:active, -.datepicker table tr td.selected.disabled:hover:active, -.datepicker table tr td.selected.active, -.datepicker table tr td.selected:hover.active, -.datepicker table tr td.selected.disabled.active, -.datepicker table tr td.selected.disabled:hover.active { - background-color: #666666 \9; -} -.datepicker table tr td.active, -.datepicker table tr td.active:hover, -.datepicker table tr td.active.disabled, -.datepicker table tr td.active.disabled:hover { - background-color: #006dcc; - background-image: -moz-linear-gradient(to bottom, #08c, #0044cc); - background-image: -ms-linear-gradient(to bottom, #08c, #0044cc); - background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#08c), to(#0044cc)); - background-image: -webkit-linear-gradient(to bottom, #08c, #0044cc); - background-image: -o-linear-gradient(to bottom, #08c, #0044cc); - background-image: linear-gradient(to bottom, #08c, #0044cc); - background-repeat: repeat-x; - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#08c', endColorstr='#0044cc', GradientType=0); - border-color: #0044cc #0044cc #002a80; - border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25); - filter: progid:DXImageTransform.Microsoft.gradient(enabled=false); - color: #fff; - text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25); -} -.datepicker table tr td.active:hover, -.datepicker table tr td.active:hover:hover, -.datepicker table tr td.active.disabled:hover, -.datepicker table tr td.active.disabled:hover:hover, -.datepicker table tr td.active:active, -.datepicker table tr td.active:hover:active, -.datepicker table tr td.active.disabled:active, -.datepicker table tr td.active.disabled:hover:active, -.datepicker table tr td.active.active, -.datepicker table tr td.active:hover.active, -.datepicker table tr td.active.disabled.active, -.datepicker table tr td.active.disabled:hover.active, -.datepicker table tr td.active.disabled, -.datepicker table tr td.active:hover.disabled, -.datepicker table tr td.active.disabled.disabled, -.datepicker table tr td.active.disabled:hover.disabled, -.datepicker table tr td.active[disabled], -.datepicker table tr td.active:hover[disabled], -.datepicker table tr td.active.disabled[disabled], -.datepicker table tr td.active.disabled:hover[disabled] { - background-color: #0044cc; -} -.datepicker table tr td.active:active, -.datepicker table tr td.active:hover:active, -.datepicker table tr td.active.disabled:active, -.datepicker table tr td.active.disabled:hover:active, -.datepicker table tr td.active.active, -.datepicker table tr td.active:hover.active, -.datepicker table tr td.active.disabled.active, -.datepicker table tr td.active.disabled:hover.active { - background-color: #003399 \9; -} -.datepicker table tr td span { - display: block; - width: 23%; - height: 54px; - line-height: 54px; - float: left; - margin: 1%; - cursor: pointer; - -webkit-border-radius: 4px; - -moz-border-radius: 4px; - border-radius: 4px; -} -.datepicker table tr td span:hover, -.datepicker table tr td span.focused { - background: #eee; -} -.datepicker table tr td span.disabled, -.datepicker table tr td span.disabled:hover { - background: none; - color: #999; - cursor: default; -} -.datepicker table tr td span.active, -.datepicker table tr td span.active:hover, -.datepicker table tr td span.active.disabled, -.datepicker table tr td span.active.disabled:hover { - background-color: #006dcc; - background-image: -moz-linear-gradient(to bottom, #08c, #0044cc); - background-image: -ms-linear-gradient(to bottom, #08c, #0044cc); - background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#08c), to(#0044cc)); - background-image: -webkit-linear-gradient(to bottom, #08c, #0044cc); - background-image: -o-linear-gradient(to bottom, #08c, #0044cc); - background-image: linear-gradient(to bottom, #08c, #0044cc); - background-repeat: repeat-x; - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#08c', endColorstr='#0044cc', GradientType=0); - border-color: #0044cc #0044cc #002a80; - border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25); - filter: progid:DXImageTransform.Microsoft.gradient(enabled=false); - color: #fff; - text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25); -} -.datepicker table tr td span.active:hover, -.datepicker table tr td span.active:hover:hover, -.datepicker table tr td span.active.disabled:hover, -.datepicker table tr td span.active.disabled:hover:hover, -.datepicker table tr td span.active:active, -.datepicker table tr td span.active:hover:active, -.datepicker table tr td span.active.disabled:active, -.datepicker table tr td span.active.disabled:hover:active, -.datepicker table tr td span.active.active, -.datepicker table tr td span.active:hover.active, -.datepicker table tr td span.active.disabled.active, -.datepicker table tr td span.active.disabled:hover.active, -.datepicker table tr td span.active.disabled, -.datepicker table tr td span.active:hover.disabled, -.datepicker table tr td span.active.disabled.disabled, -.datepicker table tr td span.active.disabled:hover.disabled, -.datepicker table tr td span.active[disabled], -.datepicker table tr td span.active:hover[disabled], -.datepicker table tr td span.active.disabled[disabled], -.datepicker table tr td span.active.disabled:hover[disabled] { - background-color: #0044cc; -} -.datepicker table tr td span.active:active, -.datepicker table tr td span.active:hover:active, -.datepicker table tr td span.active.disabled:active, -.datepicker table tr td span.active.disabled:hover:active, -.datepicker table tr td span.active.active, -.datepicker table tr td span.active:hover.active, -.datepicker table tr td span.active.disabled.active, -.datepicker table tr td span.active.disabled:hover.active { - background-color: #003399 \9; -} -.datepicker table tr td span.old, -.datepicker table tr td span.new { - color: #999; -} -.datepicker .datepicker-switch { - width: 145px; -} -.datepicker .datepicker-switch, -.datepicker .prev, -.datepicker .next, -.datepicker tfoot tr th { - cursor: pointer; -} -.datepicker .datepicker-switch:hover, -.datepicker .prev:hover, -.datepicker .next:hover, -.datepicker tfoot tr th:hover { - background: #eee; -} -.datepicker .prev.disabled, -.datepicker .next.disabled { - visibility: hidden; -} -.datepicker .cw { - font-size: 10px; - width: 12px; - padding: 0 2px 0 5px; - vertical-align: middle; -} -.input-append.date .add-on, -.input-prepend.date .add-on { - cursor: pointer; -} -.input-append.date .add-on i, -.input-prepend.date .add-on i { - margin-top: 3px; -} -.input-daterange input { - text-align: center; -} -.input-daterange input:first-child { - -webkit-border-radius: 3px 0 0 3px; - -moz-border-radius: 3px 0 0 3px; - border-radius: 3px 0 0 3px; -} -.input-daterange input:last-child { - -webkit-border-radius: 0 3px 3px 0; - -moz-border-radius: 0 3px 3px 0; - border-radius: 0 3px 3px 0; -} -.input-daterange .add-on { - display: inline-block; - width: auto; - min-width: 16px; - height: 20px; - padding: 4px 5px; - font-weight: normal; - line-height: 20px; - text-align: center; - text-shadow: 0 1px 0 #fff; - vertical-align: middle; - background-color: #eee; - border: 1px solid #ccc; - margin-left: -5px; - margin-right: -5px; -} -.datepicker.dropdown-menu { - position: absolute; - top: 100%; - left: 0; - z-index: 1000; - float: left; - display: none; - min-width: 160px; - list-style: none; - background-color: #fff; - border: 1px solid #ccc; - border: 1px solid rgba(0, 0, 0, 0.2); - -webkit-border-radius: 5px; - -moz-border-radius: 5px; - border-radius: 5px; - -webkit-box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2); - -moz-box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2); - box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2); - -webkit-background-clip: padding-box; - -moz-background-clip: padding; - background-clip: padding-box; - *border-right-width: 2px; - *border-bottom-width: 2px; - color: #333333; - font-size: 13px; - line-height: 20px; -} -.datepicker.dropdown-menu th, -.datepicker.datepicker-inline th, -.datepicker.dropdown-menu td, -.datepicker.datepicker-inline td { - padding: 4px 5px; -} -/*# sourceMappingURL=bootstrap-datepicker.standalone.css.map */ \ No newline at end of file diff --git a/admin/bower_components/bootstrap-datepicker/dist/css/bootstrap-datepicker.standalone.css.map b/admin/bower_components/bootstrap-datepicker/dist/css/bootstrap-datepicker.standalone.css.map deleted file mode 100644 index eab120c..0000000 --- a/admin/bower_components/bootstrap-datepicker/dist/css/bootstrap-datepicker.standalone.css.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sources":["less/datepicker.less","build/build.less","build/build_standalone.less"],"names":[],"mappings":"AAAA;EACC,YAAA;ECsBC,0BAAA;EACG,uBAAA;EACK,kBAAA;EDnBT,cAAA;;AAHA,WAAC;EACA,YAAA;;AAGD,WAAC;EACA,cAAA;;AACA,WAFA,IAEC;EAAiB,UAAA;;AAFnB,WAAC,IAGA,MAAM,GAAG,GAAG;EACX,YAAA;;AAGF,WAAC;EACA,MAAA;EACA,OAAA;;AACA,WAHA,SAGC;EACA,SAAS,EAAT;EACA,qBAAA;EACA,kCAAA;EACA,mCAAA;EACA,6BAAA;EACA,aAAA;EACA,uCAAA;EACA,kBAAA;;AAED,WAbA,SAaC;EACA,SAAS,EAAT;EACA,qBAAA;EACA,kCAAA;EACA,mCAAA;EACA,6BAAA;EACA,aAAA;EACA,kBAAA;;AAED,WAtBA,SAsBC,uBAAuB;EAAY,SAAA;;AACpC,WAvBA,SAuBC,uBAAuB;EAAY,SAAA;;AACpC,WAxBA,SAwBC,wBAAwB;EAAW,UAAA;;AACpC,WAzBA,SAyBC,wBAAwB;EAAW,UAAA;;AACpC,WA1BA,SA0BC,yBAAyB;EAAU,SAAA;;AACpC,WA3BA,SA2BC,yBAAyB;EAAU,SAAA;;AACpC,WA5BA,SA4BC,sBAAsB;EACtB,YAAA;EACA,gBAAA;EACA,0BAAA;;AAED,WAjCA,SAiCC,sBAAsB;EACtB,YAAA;EACA,gBAAA;EACA,0BAAA;;AAlDH,WAqDC;EACC,SAAA;EACA,2BAAA;EACA,yBAAA;EACA,wBAAA;EACA,sBAAA;EACA,qBAAA;EACA,iBAAA;;AA5DF,WA8DC;AA9DD,WA8DK;EACH,kBAAA;EACA,WAAA;EACA,YAAA;EC1CA,0BAAA;EACG,uBAAA;EACK,kBAAA;ED2CR,YAAA;;AAID,cAAe,YAAE,MAAM,GACtB;AADD,cAAe,YAAE,MAAM,GAClB;EACH,6BAAA;;AAID,WADD,MAAM,GAAG,GACP,IAAI;AACL,WAFD,MAAM,GAAG,GAEP,IAAI;EACJ,gBAAA;EACA,eAAA;;AAED,WAND,MAAM,GAAG,GAMP;AACD,WAPD,MAAM,GAAG,GAOP;EACA,WAAA;;AAED,WAVD,MAAM,GAAG,GAUP;AACD,WAXD,MAAM,GAAG,GAWP,SAAS;EACT,gBAAA;EACA,WAAA;EACA,eAAA;;AAED,WAhBD,MAAM,GAAG,GAgBP;EACA,mBAAA;EACA,gBAAA;;AAED,WApBD,MAAM,GAAG,GAoBP;AACD,WArBD,MAAM,GAAG,GAqBP,MAAM;AACP,WAtBD,MAAM,GAAG,GAsBP,MAAM;AACP,WAvBD,MAAM,GAAG,GAuBP,MAAM,SAAS;EC5Cd,yBAAA;EACA,kBAAkB,iDAAlB;EACA,kBAAkB,gDAAlB;EACA,kBAAkB,sCAAsC,eAAmB,YAA3E;EACA,kBAAkB,oDAAlB;EACA,kBAAkB,+CAAlB;EACA,kBAAkB,4CAAlB;EACA,2BAAA;EACA,QAAQ,0GAAR;EAfF,qCAAA;EACA,uEAAA;EAPA,QAAQ,yDAAR;ED4DC,WAAA;;ACvED,WD6CD,MAAM,GAAG,GAoBP,MCjEA;AAAD,WD6CD,MAAM,GAAG,GAqBP,MAAM,MClEN;AAAD,WD6CD,MAAM,GAAG,GAsBP,MAAM,SCnEN;AAAD,WD6CD,MAAM,GAAG,GAuBP,MAAM,SAAS,MCpEf;AAAQ,WD6CV,MAAM,GAAG,GAoBP,MCjES;AAAD,WD6CV,MAAM,GAAG,GAqBP,MAAM,MClEG;AAAD,WD6CV,MAAM,GAAG,GAsBP,MAAM,SCnEG;AAAD,WD6CV,MAAM,GAAG,GAuBP,MAAM,SAAS,MCpEN;AAAS,WD6CpB,MAAM,GAAG,GAoBP,MCjEmB;AAAD,WD6CpB,MAAM,GAAG,GAqBP,MAAM,MClEa;AAAD,WD6CpB,MAAM,GAAG,GAsBP,MAAM,SCnEa;AAAD,WD6CpB,MAAM,GAAG,GAuBP,MAAM,SAAS,MCpEI;AAAS,WD6C9B,MAAM,GAAG,GAoBP,MCjE6B;AAAD,WD6C9B,MAAM,GAAG,GAqBP,MAAM,MClEuB;AAAD,WD6C9B,MAAM,GAAG,GAsBP,MAAM,SCnEuB;AAAD,WD6C9B,MAAM,GAAG,GAuBP,MAAM,SAAS,MCpEc;AAAW,WD6C1C,MAAM,GAAG,GAoBP,MCjEyC;AAAD,WD6C1C,MAAM,GAAG,GAqBP,MAAM,MClEmC;AAAD,WD6C1C,MAAM,GAAG,GAsBP,MAAM,SCnEmC;AAAD,WD6C1C,MAAM,GAAG,GAuBP,MAAM,SAAS,MCpE0B;EACxC,yBAAA;;AAEF,WD0CD,MAAM,GAAG,GAoBP,MC9DA;AAAD,WD0CD,MAAM,GAAG,GAqBP,MAAM,MC/DN;AAAD,WD0CD,MAAM,GAAG,GAsBP,MAAM,SChEN;AAAD,WD0CD,MAAM,GAAG,GAuBP,MAAM,SAAS,MCjEf;AACD,WDyCD,MAAM,GAAG,GAoBP,MC7DA;AAAD,WDyCD,MAAM,GAAG,GAqBP,MAAM,MC9DN;AAAD,WDyCD,MAAM,GAAG,GAsBP,MAAM,SC/DN;AAAD,WDyCD,MAAM,GAAG,GAuBP,MAAM,SAAS,MChEf;EACC,0BAAyC,EAAzC;;ADoEF,WA5BD,MAAM,GAAG,GA4BP,MAAM,MAAM;EAEZ,WAAA;;AAED,WAhCD,MAAM,GAAG,GAgCP,MAAM,OAAO;EACb,WAAA;;AAED,WAnCD,MAAM,GAAG,GAmCP;AACD,WApCD,MAAM,GAAG,GAoCP,MAAM;AACP,WArCD,MAAM,GAAG,GAqCP,MAAM;AACP,WAtCD,MAAM,GAAG,GAsCP,MAAM,SAAS;EACf,gBAAA;EC7FD,wBAAA;EACG,qBAAA;EACK,gBAAA;;AD8FR,WA1CD,MAAM,GAAG,GA0CP,MAAM;AACP,WA3CD,MAAM,GAAG,GA2CP,MAAM,MAAM;AACb,WA5CD,MAAM,GAAG,GA4CP,MAAM,MAAM;AACb,WA7CD,MAAM,GAAG,GA6CP,MAAM,MAAM,SAAS;EClEpB,yBAAA;EACA,kBAAkB,iDAAlB;EACA,kBAAkB,gDAAlB;EACA,kBAAkB,sCAAsC,eAAmB,YAA3E;EACA,kBAAkB,oDAAlB;EACA,kBAAkB,+CAAlB;EACA,kBAAkB,4CAAlB;EACA,2BAAA;EACA,QAAQ,0GAAR;EAfF,qCAAA;EACA,uEAAA;EAPA,QAAQ,yDAAR;EApBA,wBAAA;EACG,qBAAA;EACK,gBAAA;;AAOR,WD6CD,MAAM,GAAG,GA0CP,MAAM,MCvFN;AAAD,WD6CD,MAAM,GAAG,GA2CP,MAAM,MAAM,MCxFZ;AAAD,WD6CD,MAAM,GAAG,GA4CP,MAAM,MAAM,SCzFZ;AAAD,WD6CD,MAAM,GAAG,GA6CP,MAAM,MAAM,SAAS,MC1FrB;AAAQ,WD6CV,MAAM,GAAG,GA0CP,MAAM,MCvFG;AAAD,WD6CV,MAAM,GAAG,GA2CP,MAAM,MAAM,MCxFH;AAAD,WD6CV,MAAM,GAAG,GA4CP,MAAM,MAAM,SCzFH;AAAD,WD6CV,MAAM,GAAG,GA6CP,MAAM,MAAM,SAAS,MC1FZ;AAAS,WD6CpB,MAAM,GAAG,GA0CP,MAAM,MCvFa;AAAD,WD6CpB,MAAM,GAAG,GA2CP,MAAM,MAAM,MCxFO;AAAD,WD6CpB,MAAM,GAAG,GA4CP,MAAM,MAAM,SCzFO;AAAD,WD6CpB,MAAM,GAAG,GA6CP,MAAM,MAAM,SAAS,MC1FF;AAAS,WD6C9B,MAAM,GAAG,GA0CP,MAAM,MCvFuB;AAAD,WD6C9B,MAAM,GAAG,GA2CP,MAAM,MAAM,MCxFiB;AAAD,WD6C9B,MAAM,GAAG,GA4CP,MAAM,MAAM,SCzFiB;AAAD,WD6C9B,MAAM,GAAG,GA6CP,MAAM,MAAM,SAAS,MC1FQ;AAAW,WD6C1C,MAAM,GAAG,GA0CP,MAAM,MCvFmC;AAAD,WD6C1C,MAAM,GAAG,GA2CP,MAAM,MAAM,MCxF6B;AAAD,WD6C1C,MAAM,GAAG,GA4CP,MAAM,MAAM,SCzF6B;AAAD,WD6C1C,MAAM,GAAG,GA6CP,MAAM,MAAM,SAAS,MC1FoB;EACxC,yBAAA;;AAEF,WD0CD,MAAM,GAAG,GA0CP,MAAM,MCpFN;AAAD,WD0CD,MAAM,GAAG,GA2CP,MAAM,MAAM,MCrFZ;AAAD,WD0CD,MAAM,GAAG,GA4CP,MAAM,MAAM,SCtFZ;AAAD,WD0CD,MAAM,GAAG,GA6CP,MAAM,MAAM,SAAS,MCvFrB;AACD,WDyCD,MAAM,GAAG,GA0CP,MAAM,MCnFN;AAAD,WDyCD,MAAM,GAAG,GA2CP,MAAM,MAAM,MCpFZ;AAAD,WDyCD,MAAM,GAAG,GA4CP,MAAM,MAAM,SCrFZ;AAAD,WDyCD,MAAM,GAAG,GA6CP,MAAM,MAAM,SAAS,MCtFrB;EACC,0BAAyC,EAAzC;;AD0FF,WAlDD,MAAM,GAAG,GAkDP;AACD,WAnDD,MAAM,GAAG,GAmDP,SAAS;AACV,WApDD,MAAM,GAAG,GAoDP,SAAS;AACV,WArDD,MAAM,GAAG,GAqDP,SAAS,SAAS;EC1EjB,yBAAA;EACA,kBAAkB,iDAAlB;EACA,kBAAkB,gDAAlB;EACA,kBAAkB,sCAAsC,eAAmB,YAA3E;EACA,kBAAkB,oDAAlB;EACA,kBAAkB,+CAAlB;EACA,kBAAkB,4CAAlB;EACA,2BAAA;EACA,QAAQ,0GAAR;EAfF,qCAAA;EACA,uEAAA;EAPA,QAAQ,yDAAR;EDyFC,WAAA;EACA,yCAAA;;ACrGD,WD6CD,MAAM,GAAG,GAkDP,SC/FA;AAAD,WD6CD,MAAM,GAAG,GAmDP,SAAS,MChGT;AAAD,WD6CD,MAAM,GAAG,GAoDP,SAAS,SCjGT;AAAD,WD6CD,MAAM,GAAG,GAqDP,SAAS,SAAS,MClGlB;AAAQ,WD6CV,MAAM,GAAG,GAkDP,SC/FS;AAAD,WD6CV,MAAM,GAAG,GAmDP,SAAS,MChGA;AAAD,WD6CV,MAAM,GAAG,GAoDP,SAAS,SCjGA;AAAD,WD6CV,MAAM,GAAG,GAqDP,SAAS,SAAS,MClGT;AAAS,WD6CpB,MAAM,GAAG,GAkDP,SC/FmB;AAAD,WD6CpB,MAAM,GAAG,GAmDP,SAAS,MChGU;AAAD,WD6CpB,MAAM,GAAG,GAoDP,SAAS,SCjGU;AAAD,WD6CpB,MAAM,GAAG,GAqDP,SAAS,SAAS,MClGC;AAAS,WD6C9B,MAAM,GAAG,GAkDP,SC/F6B;AAAD,WD6C9B,MAAM,GAAG,GAmDP,SAAS,MChGoB;AAAD,WD6C9B,MAAM,GAAG,GAoDP,SAAS,SCjGoB;AAAD,WD6C9B,MAAM,GAAG,GAqDP,SAAS,SAAS,MClGW;AAAW,WD6C1C,MAAM,GAAG,GAkDP,SC/FyC;AAAD,WD6C1C,MAAM,GAAG,GAmDP,SAAS,MChGgC;AAAD,WD6C1C,MAAM,GAAG,GAoDP,SAAS,SCjGgC;AAAD,WD6C1C,MAAM,GAAG,GAqDP,SAAS,SAAS,MClGuB;EACxC,yBAAA;;AAEF,WD0CD,MAAM,GAAG,GAkDP,SC5FA;AAAD,WD0CD,MAAM,GAAG,GAmDP,SAAS,MC7FT;AAAD,WD0CD,MAAM,GAAG,GAoDP,SAAS,SC9FT;AAAD,WD0CD,MAAM,GAAG,GAqDP,SAAS,SAAS,MC/FlB;AACD,WDyCD,MAAM,GAAG,GAkDP,SC3FA;AAAD,WDyCD,MAAM,GAAG,GAmDP,SAAS,MC5FT;AAAD,WDyCD,MAAM,GAAG,GAoDP,SAAS,SC7FT;AAAD,WDyCD,MAAM,GAAG,GAqDP,SAAS,SAAS,MC9FlB;EACC,0BAAyC,EAAzC;;ADkGF,WA1DD,MAAM,GAAG,GA0DP;AACD,WA3DD,MAAM,GAAG,GA2DP,OAAO;AACR,WA5DD,MAAM,GAAG,GA4DP,OAAO;AACR,WA7DD,MAAM,GAAG,GA6DP,OAAO,SAAS;EClFf,yBAAA;EACA,kBAAkB,8CAAlB;EACA,kBAAkB,6CAAlB;EACA,kBAAkB,sCAAsC,YAAmB,YAA3E;EACA,kBAAkB,iDAAlB;EACA,kBAAkB,4CAAlB;EACA,kBAAkB,yCAAlB;EACA,2BAAA;EACA,QAAQ,uGAAR;EAfF,qCAAA;EACA,uEAAA;EAPA,QAAQ,yDAAR;EDiGC,WAAA;EACA,yCAAA;;AC7GD,WD6CD,MAAM,GAAG,GA0DP,OCvGA;AAAD,WD6CD,MAAM,GAAG,GA2DP,OAAO,MCxGP;AAAD,WD6CD,MAAM,GAAG,GA4DP,OAAO,SCzGP;AAAD,WD6CD,MAAM,GAAG,GA6DP,OAAO,SAAS,MC1GhB;AAAQ,WD6CV,MAAM,GAAG,GA0DP,OCvGS;AAAD,WD6CV,MAAM,GAAG,GA2DP,OAAO,MCxGE;AAAD,WD6CV,MAAM,GAAG,GA4DP,OAAO,SCzGE;AAAD,WD6CV,MAAM,GAAG,GA6DP,OAAO,SAAS,MC1GP;AAAS,WD6CpB,MAAM,GAAG,GA0DP,OCvGmB;AAAD,WD6CpB,MAAM,GAAG,GA2DP,OAAO,MCxGY;AAAD,WD6CpB,MAAM,GAAG,GA4DP,OAAO,SCzGY;AAAD,WD6CpB,MAAM,GAAG,GA6DP,OAAO,SAAS,MC1GG;AAAS,WD6C9B,MAAM,GAAG,GA0DP,OCvG6B;AAAD,WD6C9B,MAAM,GAAG,GA2DP,OAAO,MCxGsB;AAAD,WD6C9B,MAAM,GAAG,GA4DP,OAAO,SCzGsB;AAAD,WD6C9B,MAAM,GAAG,GA6DP,OAAO,SAAS,MC1Ga;AAAW,WD6C1C,MAAM,GAAG,GA0DP,OCvGyC;AAAD,WD6C1C,MAAM,GAAG,GA2DP,OAAO,MCxGkC;AAAD,WD6C1C,MAAM,GAAG,GA4DP,OAAO,SCzGkC;AAAD,WD6C1C,MAAM,GAAG,GA6DP,OAAO,SAAS,MC1GyB;EACxC,yBAAA;;AAEF,WD0CD,MAAM,GAAG,GA0DP,OCpGA;AAAD,WD0CD,MAAM,GAAG,GA2DP,OAAO,MCrGP;AAAD,WD0CD,MAAM,GAAG,GA4DP,OAAO,SCtGP;AAAD,WD0CD,MAAM,GAAG,GA6DP,OAAO,SAAS,MCvGhB;AACD,WDyCD,MAAM,GAAG,GA0DP,OCnGA;AAAD,WDyCD,MAAM,GAAG,GA2DP,OAAO,MCpGP;AAAD,WDyCD,MAAM,GAAG,GA4DP,OAAO,SCrGP;AAAD,WDyCD,MAAM,GAAG,GA6DP,OAAO,SAAS,MCtGhB;EACC,0BAAyC,EAAzC;;ADrCJ,WA6EC,MAAM,GAAG,GAkER;EACC,cAAA;EACA,UAAA;EACA,YAAA;EACA,iBAAA;EACA,WAAA;EACA,UAAA;EACA,eAAA;EC/HD,0BAAA;EACG,uBAAA;EACK,kBAAA;;AD+HP,WA3EF,MAAM,GAAG,GAkER,KASE;AACD,WA5EF,MAAM,GAAG,GAkER,KAUE;EACA,gBAAA;;AAED,WA/EF,MAAM,GAAG,GAkER,KAaE;AACD,WAhFF,MAAM,GAAG,GAkER,KAcE,SAAS;EACT,gBAAA;EACA,WAAA;EACA,eAAA;;AAED,WArFF,MAAM,GAAG,GAkER,KAmBE;AACD,WAtFF,MAAM,GAAG,GAkER,KAoBE,OAAO;AACR,WAvFF,MAAM,GAAG,GAkER,KAqBE,OAAO;AACR,WAxFF,MAAM,GAAG,GAkER,KAsBE,OAAO,SAAS;EC7GhB,yBAAA;EACA,kBAAkB,8CAAlB;EACA,kBAAkB,6CAAlB;EACA,kBAAkB,sCAAsC,YAAmB,YAA3E;EACA,kBAAkB,iDAAlB;EACA,kBAAkB,4CAAlB;EACA,kBAAkB,yCAAlB;EACA,2BAAA;EACA,QAAQ,uGAAR;EAfF,qCAAA;EACA,uEAAA;EAPA,QAAQ,yDAAR;ED4HE,WAAA;EACA,yCAAA;;ACxIF,WD6CD,MAAM,GAAG,GAkER,KAmBE,OClID;AAAD,WD6CD,MAAM,GAAG,GAkER,KAoBE,OAAO,MCnIR;AAAD,WD6CD,MAAM,GAAG,GAkER,KAqBE,OAAO,SCpIR;AAAD,WD6CD,MAAM,GAAG,GAkER,KAsBE,OAAO,SAAS,MCrIjB;AAAQ,WD6CV,MAAM,GAAG,GAkER,KAmBE,OClIQ;AAAD,WD6CV,MAAM,GAAG,GAkER,KAoBE,OAAO,MCnIC;AAAD,WD6CV,MAAM,GAAG,GAkER,KAqBE,OAAO,SCpIC;AAAD,WD6CV,MAAM,GAAG,GAkER,KAsBE,OAAO,SAAS,MCrIR;AAAS,WD6CpB,MAAM,GAAG,GAkER,KAmBE,OClIkB;AAAD,WD6CpB,MAAM,GAAG,GAkER,KAoBE,OAAO,MCnIW;AAAD,WD6CpB,MAAM,GAAG,GAkER,KAqBE,OAAO,SCpIW;AAAD,WD6CpB,MAAM,GAAG,GAkER,KAsBE,OAAO,SAAS,MCrIE;AAAS,WD6C9B,MAAM,GAAG,GAkER,KAmBE,OClI4B;AAAD,WD6C9B,MAAM,GAAG,GAkER,KAoBE,OAAO,MCnIqB;AAAD,WD6C9B,MAAM,GAAG,GAkER,KAqBE,OAAO,SCpIqB;AAAD,WD6C9B,MAAM,GAAG,GAkER,KAsBE,OAAO,SAAS,MCrIY;AAAW,WD6C1C,MAAM,GAAG,GAkER,KAmBE,OClIwC;AAAD,WD6C1C,MAAM,GAAG,GAkER,KAoBE,OAAO,MCnIiC;AAAD,WD6C1C,MAAM,GAAG,GAkER,KAqBE,OAAO,SCpIiC;AAAD,WD6C1C,MAAM,GAAG,GAkER,KAsBE,OAAO,SAAS,MCrIwB;EACxC,yBAAA;;AAEF,WD0CD,MAAM,GAAG,GAkER,KAmBE,OC/HD;AAAD,WD0CD,MAAM,GAAG,GAkER,KAoBE,OAAO,MChIR;AAAD,WD0CD,MAAM,GAAG,GAkER,KAqBE,OAAO,SCjIR;AAAD,WD0CD,MAAM,GAAG,GAkER,KAsBE,OAAO,SAAS,MClIjB;AACD,WDyCD,MAAM,GAAG,GAkER,KAmBE,OC9HD;AAAD,WDyCD,MAAM,GAAG,GAkER,KAoBE,OAAO,MC/HR;AAAD,WDyCD,MAAM,GAAG,GAkER,KAqBE,OAAO,SChIR;AAAD,WDyCD,MAAM,GAAG,GAkER,KAsBE,OAAO,SAAS,MCjIjB;EACC,0BAAyC,EAAzC;;ADqID,WA7FF,MAAM,GAAG,GAkER,KA2BE;AACD,WA9FF,MAAM,GAAG,GAkER,KA4BE;EACA,WAAA;;AA5KJ,WAiLC;EACC,YAAA;;AAlLF,WAqLC;AArLD,WAsLC;AAtLD,WAuLC;AAvLD,WAwLC,MAAM,GAAG;EACR,eAAA;;AACA,WALD,mBAKE;AAAD,WAJD,MAIE;AAAD,WAHD,MAGE;AAAD,WAFD,MAAM,GAAG,GAEP;EACA,gBAAA;;AAKD,WADD,MACE;AAAD,WADM,MACL;EACA,kBAAA;;AAjMH,WAsMC;EACC,eAAA;EACA,WAAA;EACA,oBAAA;EACA,sBAAA;;AAKD,aAAC,KAAM;AAAP,cAAC,KAAM;EACN,eAAA;;AADD,aAAC,KAAM,QAGN;AAHD,cAAC,KAAM,QAGN;EACC,eAAA;;AAIH,gBACC;EACC,kBAAA;;AAFF,gBAIC,MAAK;ECpMJ,kCAAA;EACG,+BAAA;EACK,0BAAA;;AD8LV,gBAOC,MAAK;ECvMJ,kCAAA;EACG,+BAAA;EACK,0BAAA;;AD8LV,gBAUC;EACC,qBAAA;EACA,WAAA;EACA,eAAA;EACA,YAAA;EACA,gBAAA;EACA,mBAAA;EACA,iBAAA;EACA,kBAAA;EACA,yBAAA;EACA,sBAAA;EACA,sBAAA;EACA,sBAAA;EACA,iBAAA;EACA,kBAAA;;AE/MA,WAAC;EACC,kBAAA;EACA,SAAA;EACA,OAAA;EACA,aAAA;EACA,WAAA;EACA,aAAA;EACA,gBAAA;EACA,gBAAA;EACA,sBAAA;EACA,sBAAA;EACA,oCAAA;EDpBF,0BAAA;EACG,uBAAA;EACK,kBAAA;ECDR,iDAAA;EACG,8CAAA;EACK,yCAAA;EAoBN,oCAAA;EACG,6BAAA;EACK,4BAAA;EACR,wBAAA;EACA,yBAAA;EAGA,cAAA;EACA,eAAA;EACA,iBAAA;;AAGF,WAAC,cACC;AADe,WAAC,kBAChB;AADF,WAAC,cACK;AADW,WAAC,kBACZ;EACF,gBAAA","sourcesContent":[".datepicker {\n\tpadding: 4px;\n\t.border-radius(@baseBorderRadius);\n\t&-inline {\n\t\twidth: 220px;\n\t}\n\tdirection: ltr;\n\t&-rtl {\n\t\tdirection: rtl;\n\t\t&.dropdown-menu { left: auto; }\n\t\ttable tr td span {\n\t\t\tfloat: right;\n\t\t}\n\t}\n\t&-dropdown {\n\t\ttop: 0;\n\t\tleft: 0;\n\t\t&:before {\n\t\t\tcontent: '';\n\t\t\tdisplay: inline-block;\n\t\t\tborder-left: 7px solid transparent;\n\t\t\tborder-right: 7px solid transparent;\n\t\t\tborder-bottom: 7px solid @grayLight;\n\t\t\tborder-top: 0;\n\t\t\tborder-bottom-color: rgba(0,0,0,.2);\n\t\t\tposition: absolute;\n\t\t}\n\t\t&:after {\n\t\t\tcontent: '';\n\t\t\tdisplay: inline-block;\n\t\t\tborder-left: 6px solid transparent;\n\t\t\tborder-right: 6px solid transparent;\n\t\t\tborder-bottom: 6px solid @white;\n\t\t\tborder-top: 0;\n\t\t\tposition: absolute;\n\t\t}\n\t\t&.datepicker-orient-left:before { left: 6px; }\n\t\t&.datepicker-orient-left:after { left: 7px; }\n\t\t&.datepicker-orient-right:before { right: 6px; }\n\t\t&.datepicker-orient-right:after { right: 7px; }\n\t\t&.datepicker-orient-bottom:before { top: -7px; }\n\t\t&.datepicker-orient-bottom:after { top: -6px; }\n\t\t&.datepicker-orient-top:before {\n\t\t\tbottom: -7px;\n\t\t\tborder-bottom: 0;\n\t\t\tborder-top: 7px solid @grayLight;\n\t\t}\n\t\t&.datepicker-orient-top:after {\n\t\t\tbottom: -6px;\n\t\t\tborder-bottom: 0;\n\t\t\tborder-top: 6px solid @white;\n\t\t}\n\t}\n\ttable {\n\t\tmargin: 0;\n\t\t-webkit-touch-callout: none;\n\t\t-webkit-user-select: none;\n\t\t-khtml-user-select: none;\n\t\t-moz-user-select: none;\n\t\t-ms-user-select: none;\n\t\tuser-select: none;\n\t}\n\ttd, th {\n\t\ttext-align: center;\n\t\twidth: 20px;\n\t\theight: 20px;\n\t\t.border-radius(4px);\n\n\t\tborder: none;\n\t}\n\t// Inline display inside a table presents some problems with\n\t// border and background colors.\n\t.table-striped & table tr {\n\t\ttd, th {\n\t\t\tbackground-color: transparent;\n\t\t}\n\t}\n\ttable tr td {\n\t\t&.day:hover,\n\t\t&.day.focused {\n\t\t\tbackground: @grayLighter;\n\t\t\tcursor: pointer;\n\t\t}\n\t\t&.old,\n\t\t&.new {\n\t\t\tcolor: @grayLight;\n\t\t}\n\t\t&.disabled,\n\t\t&.disabled:hover {\n\t\t\tbackground: none;\n\t\t\tcolor: @grayLight;\n\t\t\tcursor: default;\n\t\t}\n\t\t&.highlighted {\n\t\t\tbackground: @infoBackground;\n\t\t\tborder-radius: 0;\n\t\t}\n\t\t&.today,\n\t\t&.today:hover,\n\t\t&.today.disabled,\n\t\t&.today.disabled:hover {\n\t\t\t@todayBackground: lighten(@orange, 30%);\n\t\t\t.buttonBackground(@todayBackground, spin(@todayBackground, 20));\n\t\t\tcolor: #000;\n\t\t}\n\t\t&.today:hover:hover { // Thank bootstrap 2.0 for this selector...\n\t\t\t// TODO: Bump min BS to 2.1, use @textColor in buttonBackground above\n\t\t\tcolor: #000;\n\t\t}\n\t\t&.today.active:hover {\n\t\t\tcolor: #fff;\n\t\t}\n\t\t&.range,\n\t\t&.range:hover,\n\t\t&.range.disabled,\n\t\t&.range.disabled:hover {\n\t\t\tbackground: @grayLighter;\n\t\t\t.border-radius(0);\n\t\t}\n\t\t&.range.today,\n\t\t&.range.today:hover,\n\t\t&.range.today.disabled,\n\t\t&.range.today.disabled:hover {\n\t\t\t@todayBackground: mix(@orange, @grayLighter, 50%);\n\t\t\t.buttonBackground(@todayBackground, spin(@todayBackground, 20));\n\t\t\t.border-radius(0);\n\t\t}\n\t\t&.selected,\n\t\t&.selected:hover,\n\t\t&.selected.disabled,\n\t\t&.selected.disabled:hover {\n\t\t\t.buttonBackground(lighten(@grayLight, 10), darken(@grayLight, 10));\n\t\t\tcolor: #fff;\n\t\t\ttext-shadow: 0 -1px 0 rgba(0,0,0,.25);\n\t\t}\n\t\t&.active,\n\t\t&.active:hover,\n\t\t&.active.disabled,\n\t\t&.active.disabled:hover {\n\t\t\t.buttonBackground(@btnPrimaryBackground, spin(@btnPrimaryBackground, 20));\n\t\t\tcolor: #fff;\n\t\t\ttext-shadow: 0 -1px 0 rgba(0,0,0,.25);\n\t\t}\n\t\tspan {\n\t\t\tdisplay: block;\n\t\t\twidth: 23%;\n\t\t\theight: 54px;\n\t\t\tline-height: 54px;\n\t\t\tfloat: left;\n\t\t\tmargin: 1%;\n\t\t\tcursor: pointer;\n\t\t\t.border-radius(4px);\n\t\t\t&:hover,\n\t\t\t&.focused {\n\t\t\t\tbackground: @grayLighter;\n\t\t\t}\n\t\t\t&.disabled,\n\t\t\t&.disabled:hover {\n\t\t\t\tbackground: none;\n\t\t\t\tcolor: @grayLight;\n\t\t\t\tcursor: default;\n\t\t\t}\n\t\t\t&.active,\n\t\t\t&.active:hover,\n\t\t\t&.active.disabled,\n\t\t\t&.active.disabled:hover {\n\t\t\t\t.buttonBackground(@btnPrimaryBackground, spin(@btnPrimaryBackground, 20));\n\t\t\t\tcolor: #fff;\n\t\t\t\ttext-shadow: 0 -1px 0 rgba(0,0,0,.25);\n\t\t\t}\n\t\t\t&.old,\n\t\t\t&.new {\n\t\t\t\tcolor: @grayLight;\n\t\t\t}\n\t\t}\n\t}\n\n\t.datepicker-switch {\n\t\twidth: 145px;\n\t}\n\n\t.datepicker-switch,\n\t.prev,\n\t.next,\n\ttfoot tr th {\n\t\tcursor: pointer;\n\t\t&:hover {\n\t\t\tbackground: @grayLighter;\n\t\t}\n\t}\n\n\t.prev, .next {\n\t\t&.disabled {\n\t\t\tvisibility: hidden;\n\t\t}\n\t}\n\n\t// Basic styling for calendar-week cells\n\t.cw {\n\t\tfont-size: 10px;\n\t\twidth: 12px;\n\t\tpadding: 0 2px 0 5px;\n\t\tvertical-align: middle;\n\t}\n}\n.input-append,\n.input-prepend {\n\t&.date .add-on {\n\t\tcursor: pointer;\n\n\t\ti {\n\t\t\tmargin-top: 3px;\n\t\t}\n\t}\n}\n.input-daterange {\n\tinput {\n\t\ttext-align:center;\n\t}\n\tinput:first-child {\n\t\t.border-radius(3px 0 0 3px);\n\t}\n\tinput:last-child {\n\t\t.border-radius(0 3px 3px 0);\n\t}\n\t.add-on {\n\t\tdisplay: inline-block;\n\t\twidth: auto;\n\t\tmin-width: 16px;\n\t\theight: @baseLineHeight;\n\t\tpadding: 4px 5px;\n\t\tfont-weight: normal;\n\t\tline-height: @baseLineHeight;\n\t\ttext-align: center;\n\t\ttext-shadow: 0 1px 0 @white;\n\t\tvertical-align: middle;\n\t\tbackground-color: @grayLighter;\n\t\tborder: 1px solid #ccc;\n\t\tmargin-left: -5px;\n\t\tmargin-right: -5px;\n\t}\n}\n","// Datepicker .less buildfile. Includes select mixins/variables from bootstrap\n// and imports the included datepicker.less to output a minimal datepicker.css\n//\n// Usage:\n// lessc build.less datepicker.css\n//\n// Variables and mixins copied from bootstrap 2.0.2\n\n// Variables\n@grayLight: #999;\n@grayLighter: #eee;\n@white: #fff;\n@linkColor: #08c;\n@btnPrimaryBackground: @linkColor;\n@orange: #f89406;\n@infoBackground: #d9edf7;\n@baseLineHeight: 18px;\n@baseBorderRadius: 4px;\n\n// Mixins\n\n// Border Radius\n.border-radius(@radius: 5px) {\n -webkit-border-radius: @radius;\n -moz-border-radius: @radius;\n border-radius: @radius;\n}\n\n// Button backgrounds\n.buttonBackground(@startColor, @endColor) {\n .gradientBar(@startColor, @endColor);\n .reset-filter();\n &:hover, &:active, &.active, &.disabled, &[disabled] {\n background-color: @endColor;\n }\n &:active,\n &.active {\n background-color: darken(@endColor, 10%) e(\"\\9\");\n }\n}\n\n// Reset filters for IE\n.reset-filter() {\n filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);\n}\n\n// Gradient Bar Colors for buttons and alerts\n.gradientBar(@primaryColor, @secondaryColor) {\n #gradient > .vertical(@primaryColor, @secondaryColor);\n border-color: @secondaryColor @secondaryColor darken(@secondaryColor, 15%);\n border-color: rgba(0,0,0,.1) rgba(0,0,0,.1) fadein(rgba(0,0,0,.1), 15%);\n}\n\n// Gradients\n#gradient {\n .vertical(@startColor: #555, @endColor: #333) {\n background-color: mix(@startColor, @endColor, 60%);\n background-image: -moz-linear-gradient(to bottom, @startColor, @endColor); // FF 3.6+\n background-image: -ms-linear-gradient(to bottom, @startColor, @endColor); // IE10\n background-image: -webkit-gradient(linear, 0 0, 0 100%, from(@startColor), to(@endColor)); // Safari 4+, Chrome 2+\n background-image: -webkit-linear-gradient(to bottom, @startColor, @endColor); // Safari 5.1+, Chrome 10+\n background-image: -o-linear-gradient(to bottom, @startColor, @endColor); // Opera 11.10\n background-image: linear-gradient(to bottom, @startColor, @endColor); // The standard\n background-repeat: repeat-x;\n filter: e(%(\"progid:DXImageTransform.Microsoft.gradient(startColorstr='%d', endColorstr='%d', GradientType=0)\",@startColor,@endColor)); // IE9 and down\n }\n}\n\n@import \"../less/datepicker.less\";\n","// Datepicker standalone .less buildfile. Includes all necessary mixins/variables/rules from bootstrap\n// and imports the included datepicker.less to output a minimal standalone datepicker.css\n//\n// Usage:\n// lessc build_standalone.less datepicker.css\n//\n// Variables, mixins, and rules copied from bootstrap 2.0.2\n\n@import \"build.less\";\n\n// Dropdown css\n\n@zindexDropdown: 1000;\n@grayDark: #333;\n@baseLineHeight: 20px;\n@tableBackground: transparent; // overall background-color\n@dropdownBackground: @white;\n@dropdownBorder: rgba(0,0,0,.2);\n@dropdownLinkColor: @grayDark;\n@dropdownLinkColorHover: @white;\n@dropdownLinkBackgroundHover: @linkColor;\n\n// Drop shadows\n.box-shadow(@shadow) {\n -webkit-box-shadow: @shadow;\n -moz-box-shadow: @shadow;\n box-shadow: @shadow;\n}\n\n// The dropdown menu (ul)\n// ----------------------\n.datepicker{\n &.dropdown-menu {\n position: absolute;\n top: 100%;\n left: 0;\n z-index: @zindexDropdown;\n float: left;\n display: none; // none by default, but block on \"open\" of the menu\n min-width: 160px;\n list-style: none;\n background-color: @dropdownBackground;\n border: 1px solid #ccc;\n border: 1px solid rgba(0,0,0,.2);\n .border-radius(5px);\n .box-shadow(0 5px 10px rgba(0,0,0,.2));\n -webkit-background-clip: padding-box;\n -moz-background-clip: padding;\n background-clip: padding-box;\n *border-right-width: 2px;\n *border-bottom-width: 2px;\n\n // Normally inherited from bootstrap's `body`\n color: #333333;\n font-size:13px;\n line-height: @baseLineHeight;\n }\n\n &.dropdown-menu, &.datepicker-inline {\n th, td {\n padding: 4px 5px;\n }\n }\n}\n"]} \ No newline at end of file diff --git a/admin/bower_components/bootstrap-datepicker/dist/css/bootstrap-datepicker.standalone.min.css b/admin/bower_components/bootstrap-datepicker/dist/css/bootstrap-datepicker.standalone.min.css deleted file mode 100644 index 8cd5ca6..0000000 --- a/admin/bower_components/bootstrap-datepicker/dist/css/bootstrap-datepicker.standalone.min.css +++ /dev/null @@ -1,7 +0,0 @@ -/*! - * Datepicker for Bootstrap v1.7.1 (https://github.com/uxsolutions/bootstrap-datepicker) - * - * Licensed under the Apache License v2.0 (http://www.apache.org/licenses/LICENSE-2.0) - */ - -.datepicker{padding:4px;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;direction:ltr}.datepicker-inline{width:220px}.datepicker-rtl{direction:rtl}.datepicker-rtl.dropdown-menu{left:auto}.datepicker-rtl table tr td span{float:right}.datepicker-dropdown{top:0;left:0}.datepicker-dropdown:before{content:'';display:inline-block;border-left:7px solid transparent;border-right:7px solid transparent;border-bottom:7px solid #999;border-top:0;border-bottom-color:rgba(0,0,0,.2);position:absolute}.datepicker-dropdown:after{content:'';display:inline-block;border-left:6px solid transparent;border-right:6px solid transparent;border-bottom:6px solid #fff;border-top:0;position:absolute}.datepicker-dropdown.datepicker-orient-left:before{left:6px}.datepicker-dropdown.datepicker-orient-left:after{left:7px}.datepicker-dropdown.datepicker-orient-right:before{right:6px}.datepicker-dropdown.datepicker-orient-right:after{right:7px}.datepicker-dropdown.datepicker-orient-bottom:before{top:-7px}.datepicker-dropdown.datepicker-orient-bottom:after{top:-6px}.datepicker-dropdown.datepicker-orient-top:before{bottom:-7px;border-bottom:0;border-top:7px solid #999}.datepicker-dropdown.datepicker-orient-top:after{bottom:-6px;border-bottom:0;border-top:6px solid #fff}.datepicker table{margin:0;-webkit-touch-callout:none;-webkit-user-select:none;-khtml-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.datepicker td,.datepicker th{text-align:center;width:20px;height:20px;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;border:none}.table-striped .datepicker table tr td,.table-striped .datepicker table tr th{background-color:transparent}.datepicker table tr td.day.focused,.datepicker table tr td.day:hover{background:#eee;cursor:pointer}.datepicker table tr td.new,.datepicker table tr td.old{color:#999}.datepicker table tr td.disabled,.datepicker table tr td.disabled:hover{background:0 0;color:#999;cursor:default}.datepicker table tr td.highlighted{background:#d9edf7;border-radius:0}.datepicker table tr td.today,.datepicker table tr td.today.disabled,.datepicker table tr td.today.disabled:hover,.datepicker table tr td.today:hover{background-color:#fde19a;background-image:-moz-linear-gradient(to bottom,#fdd49a,#fdf59a);background-image:-ms-linear-gradient(to bottom,#fdd49a,#fdf59a);background-image:-webkit-gradient(linear,0 0,0 100%,from(#fdd49a),to(#fdf59a));background-image:-webkit-linear-gradient(to bottom,#fdd49a,#fdf59a);background-image:-o-linear-gradient(to bottom,#fdd49a,#fdf59a);background-image:linear-gradient(to bottom,#fdd49a,#fdf59a);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fdd49a', endColorstr='#fdf59a', GradientType=0);border-color:#fdf59a #fdf59a #fbed50;border-color:rgba(0,0,0,.1) rgba(0,0,0,.1) rgba(0,0,0,.25);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);color:#000}.datepicker table tr td.today.active,.datepicker table tr td.today.disabled,.datepicker table tr td.today.disabled.active,.datepicker table tr td.today.disabled.disabled,.datepicker table tr td.today.disabled:active,.datepicker table tr td.today.disabled:hover,.datepicker table tr td.today.disabled:hover.active,.datepicker table tr td.today.disabled:hover.disabled,.datepicker table tr td.today.disabled:hover:active,.datepicker table tr td.today.disabled:hover:hover,.datepicker table tr td.today.disabled:hover[disabled],.datepicker table tr td.today.disabled[disabled],.datepicker table tr td.today:active,.datepicker table tr td.today:hover,.datepicker table tr td.today:hover.active,.datepicker table tr td.today:hover.disabled,.datepicker table tr td.today:hover:active,.datepicker table tr td.today:hover:hover,.datepicker table tr td.today:hover[disabled],.datepicker table tr td.today[disabled]{background-color:#fdf59a}.datepicker table tr td.today.active,.datepicker table tr td.today.disabled.active,.datepicker table tr td.today.disabled:active,.datepicker table tr td.today.disabled:hover.active,.datepicker table tr td.today.disabled:hover:active,.datepicker table tr td.today:active,.datepicker table tr td.today:hover.active,.datepicker table tr td.today:hover:active{background-color:#fbf069\9}.datepicker table tr td.today:hover:hover{color:#000}.datepicker table tr td.today.active:hover{color:#fff}.datepicker table tr td.range,.datepicker table tr td.range.disabled,.datepicker table tr td.range.disabled:hover,.datepicker table tr td.range:hover{background:#eee;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.datepicker table tr td.range.today,.datepicker table tr td.range.today.disabled,.datepicker table tr td.range.today.disabled:hover,.datepicker table tr td.range.today:hover{background-color:#f3d17a;background-image:-moz-linear-gradient(to bottom,#f3c17a,#f3e97a);background-image:-ms-linear-gradient(to bottom,#f3c17a,#f3e97a);background-image:-webkit-gradient(linear,0 0,0 100%,from(#f3c17a),to(#f3e97a));background-image:-webkit-linear-gradient(to bottom,#f3c17a,#f3e97a);background-image:-o-linear-gradient(to bottom,#f3c17a,#f3e97a);background-image:linear-gradient(to bottom,#f3c17a,#f3e97a);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#f3c17a', endColorstr='#f3e97a', GradientType=0);border-color:#f3e97a #f3e97a #edde34;border-color:rgba(0,0,0,.1) rgba(0,0,0,.1) rgba(0,0,0,.25);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.datepicker table tr td.range.today.active,.datepicker table tr td.range.today.disabled,.datepicker table tr td.range.today.disabled.active,.datepicker table tr td.range.today.disabled.disabled,.datepicker table tr td.range.today.disabled:active,.datepicker table tr td.range.today.disabled:hover,.datepicker table tr td.range.today.disabled:hover.active,.datepicker table tr td.range.today.disabled:hover.disabled,.datepicker table tr td.range.today.disabled:hover:active,.datepicker table tr td.range.today.disabled:hover:hover,.datepicker table tr td.range.today.disabled:hover[disabled],.datepicker table tr td.range.today.disabled[disabled],.datepicker table tr td.range.today:active,.datepicker table tr td.range.today:hover,.datepicker table tr td.range.today:hover.active,.datepicker table tr td.range.today:hover.disabled,.datepicker table tr td.range.today:hover:active,.datepicker table tr td.range.today:hover:hover,.datepicker table tr td.range.today:hover[disabled],.datepicker table tr td.range.today[disabled]{background-color:#f3e97a}.datepicker table tr td.range.today.active,.datepicker table tr td.range.today.disabled.active,.datepicker table tr td.range.today.disabled:active,.datepicker table tr td.range.today.disabled:hover.active,.datepicker table tr td.range.today.disabled:hover:active,.datepicker table tr td.range.today:active,.datepicker table tr td.range.today:hover.active,.datepicker table tr td.range.today:hover:active{background-color:#efe24b\9}.datepicker table tr td.selected,.datepicker table tr td.selected.disabled,.datepicker table tr td.selected.disabled:hover,.datepicker table tr td.selected:hover{background-color:#9e9e9e;background-image:-moz-linear-gradient(to bottom,#b3b3b3,grey);background-image:-ms-linear-gradient(to bottom,#b3b3b3,grey);background-image:-webkit-gradient(linear,0 0,0 100%,from(#b3b3b3),to(grey));background-image:-webkit-linear-gradient(to bottom,#b3b3b3,grey);background-image:-o-linear-gradient(to bottom,#b3b3b3,grey);background-image:linear-gradient(to bottom,#b3b3b3,grey);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#b3b3b3', endColorstr='#808080', GradientType=0);border-color:grey grey #595959;border-color:rgba(0,0,0,.1) rgba(0,0,0,.1) rgba(0,0,0,.25);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,.25)}.datepicker table tr td.selected.active,.datepicker table tr td.selected.disabled,.datepicker table tr td.selected.disabled.active,.datepicker table tr td.selected.disabled.disabled,.datepicker table tr td.selected.disabled:active,.datepicker table tr td.selected.disabled:hover,.datepicker table tr td.selected.disabled:hover.active,.datepicker table tr td.selected.disabled:hover.disabled,.datepicker table tr td.selected.disabled:hover:active,.datepicker table tr td.selected.disabled:hover:hover,.datepicker table tr td.selected.disabled:hover[disabled],.datepicker table tr td.selected.disabled[disabled],.datepicker table tr td.selected:active,.datepicker table tr td.selected:hover,.datepicker table tr td.selected:hover.active,.datepicker table tr td.selected:hover.disabled,.datepicker table tr td.selected:hover:active,.datepicker table tr td.selected:hover:hover,.datepicker table tr td.selected:hover[disabled],.datepicker table tr td.selected[disabled]{background-color:grey}.datepicker table tr td.selected.active,.datepicker table tr td.selected.disabled.active,.datepicker table tr td.selected.disabled:active,.datepicker table tr td.selected.disabled:hover.active,.datepicker table tr td.selected.disabled:hover:active,.datepicker table tr td.selected:active,.datepicker table tr td.selected:hover.active,.datepicker table tr td.selected:hover:active{background-color:#666\9}.datepicker table tr td.active,.datepicker table tr td.active.disabled,.datepicker table tr td.active.disabled:hover,.datepicker table tr td.active:hover{background-color:#006dcc;background-image:-moz-linear-gradient(to bottom,#08c,#04c);background-image:-ms-linear-gradient(to bottom,#08c,#04c);background-image:-webkit-gradient(linear,0 0,0 100%,from(#08c),to(#04c));background-image:-webkit-linear-gradient(to bottom,#08c,#04c);background-image:-o-linear-gradient(to bottom,#08c,#04c);background-image:linear-gradient(to bottom,#08c,#04c);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#08c', endColorstr='#0044cc', GradientType=0);border-color:#04c #04c #002a80;border-color:rgba(0,0,0,.1) rgba(0,0,0,.1) rgba(0,0,0,.25);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,.25)}.datepicker table tr td.active.active,.datepicker table tr td.active.disabled,.datepicker table tr td.active.disabled.active,.datepicker table tr td.active.disabled.disabled,.datepicker table tr td.active.disabled:active,.datepicker table tr td.active.disabled:hover,.datepicker table tr td.active.disabled:hover.active,.datepicker table tr td.active.disabled:hover.disabled,.datepicker table tr td.active.disabled:hover:active,.datepicker table tr td.active.disabled:hover:hover,.datepicker table tr td.active.disabled:hover[disabled],.datepicker table tr td.active.disabled[disabled],.datepicker table tr td.active:active,.datepicker table tr td.active:hover,.datepicker table tr td.active:hover.active,.datepicker table tr td.active:hover.disabled,.datepicker table tr td.active:hover:active,.datepicker table tr td.active:hover:hover,.datepicker table tr td.active:hover[disabled],.datepicker table tr td.active[disabled]{background-color:#04c}.datepicker table tr td.active.active,.datepicker table tr td.active.disabled.active,.datepicker table tr td.active.disabled:active,.datepicker table tr td.active.disabled:hover.active,.datepicker table tr td.active.disabled:hover:active,.datepicker table tr td.active:active,.datepicker table tr td.active:hover.active,.datepicker table tr td.active:hover:active{background-color:#039\9}.datepicker table tr td span{display:block;width:23%;height:54px;line-height:54px;float:left;margin:1%;cursor:pointer;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px}.datepicker table tr td span.focused,.datepicker table tr td span:hover{background:#eee}.datepicker table tr td span.disabled,.datepicker table tr td span.disabled:hover{background:0 0;color:#999;cursor:default}.datepicker table tr td span.active,.datepicker table tr td span.active.disabled,.datepicker table tr td span.active.disabled:hover,.datepicker table tr td span.active:hover{background-color:#006dcc;background-image:-moz-linear-gradient(to bottom,#08c,#04c);background-image:-ms-linear-gradient(to bottom,#08c,#04c);background-image:-webkit-gradient(linear,0 0,0 100%,from(#08c),to(#04c));background-image:-webkit-linear-gradient(to bottom,#08c,#04c);background-image:-o-linear-gradient(to bottom,#08c,#04c);background-image:linear-gradient(to bottom,#08c,#04c);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#08c', endColorstr='#0044cc', GradientType=0);border-color:#04c #04c #002a80;border-color:rgba(0,0,0,.1) rgba(0,0,0,.1) rgba(0,0,0,.25);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,.25)}.datepicker table tr td span.active.active,.datepicker table tr td span.active.disabled,.datepicker table tr td span.active.disabled.active,.datepicker table tr td span.active.disabled.disabled,.datepicker table tr td span.active.disabled:active,.datepicker table tr td span.active.disabled:hover,.datepicker table tr td span.active.disabled:hover.active,.datepicker table tr td span.active.disabled:hover.disabled,.datepicker table tr td span.active.disabled:hover:active,.datepicker table tr td span.active.disabled:hover:hover,.datepicker table tr td span.active.disabled:hover[disabled],.datepicker table tr td span.active.disabled[disabled],.datepicker table tr td span.active:active,.datepicker table tr td span.active:hover,.datepicker table tr td span.active:hover.active,.datepicker table tr td span.active:hover.disabled,.datepicker table tr td span.active:hover:active,.datepicker table tr td span.active:hover:hover,.datepicker table tr td span.active:hover[disabled],.datepicker table tr td span.active[disabled]{background-color:#04c}.datepicker table tr td span.active.active,.datepicker table tr td span.active.disabled.active,.datepicker table tr td span.active.disabled:active,.datepicker table tr td span.active.disabled:hover.active,.datepicker table tr td span.active.disabled:hover:active,.datepicker table tr td span.active:active,.datepicker table tr td span.active:hover.active,.datepicker table tr td span.active:hover:active{background-color:#039\9}.datepicker table tr td span.new,.datepicker table tr td span.old{color:#999}.datepicker .datepicker-switch{width:145px}.datepicker .datepicker-switch,.datepicker .next,.datepicker .prev,.datepicker tfoot tr th{cursor:pointer}.datepicker .datepicker-switch:hover,.datepicker .next:hover,.datepicker .prev:hover,.datepicker tfoot tr th:hover{background:#eee}.datepicker .next.disabled,.datepicker .prev.disabled{visibility:hidden}.datepicker .cw{font-size:10px;width:12px;padding:0 2px 0 5px;vertical-align:middle}.input-append.date .add-on,.input-prepend.date .add-on{cursor:pointer}.input-append.date .add-on i,.input-prepend.date .add-on i{margin-top:3px}.input-daterange input{text-align:center}.input-daterange input:first-child{-webkit-border-radius:3px 0 0 3px;-moz-border-radius:3px 0 0 3px;border-radius:3px 0 0 3px}.input-daterange input:last-child{-webkit-border-radius:0 3px 3px 0;-moz-border-radius:0 3px 3px 0;border-radius:0 3px 3px 0}.input-daterange .add-on{display:inline-block;width:auto;min-width:16px;height:20px;padding:4px 5px;font-weight:400;line-height:20px;text-align:center;text-shadow:0 1px 0 #fff;vertical-align:middle;background-color:#eee;border:1px solid #ccc;margin-left:-5px;margin-right:-5px}.datepicker.dropdown-menu{position:absolute;top:100%;left:0;z-index:1000;float:left;display:none;min-width:160px;list-style:none;background-color:#fff;border:1px solid #ccc;border:1px solid rgba(0,0,0,.2);-webkit-border-radius:5px;-moz-border-radius:5px;border-radius:5px;-webkit-box-shadow:0 5px 10px rgba(0,0,0,.2);-moz-box-shadow:0 5px 10px rgba(0,0,0,.2);box-shadow:0 5px 10px rgba(0,0,0,.2);-webkit-background-clip:padding-box;-moz-background-clip:padding;background-clip:padding-box;*border-right-width:2px;*border-bottom-width:2px;color:#333;font-size:13px;line-height:20px}.datepicker.datepicker-inline td,.datepicker.datepicker-inline th,.datepicker.dropdown-menu td,.datepicker.dropdown-menu th{padding:4px 5px} \ No newline at end of file diff --git a/admin/bower_components/bootstrap-datepicker/dist/css/bootstrap-datepicker3.css b/admin/bower_components/bootstrap-datepicker/dist/css/bootstrap-datepicker3.css deleted file mode 100644 index 0a60427..0000000 --- a/admin/bower_components/bootstrap-datepicker/dist/css/bootstrap-datepicker3.css +++ /dev/null @@ -1,684 +0,0 @@ -/*! - * Datepicker for Bootstrap v1.7.1 (https://github.com/uxsolutions/bootstrap-datepicker) - * - * Licensed under the Apache License v2.0 (http://www.apache.org/licenses/LICENSE-2.0) - */ - -.datepicker { - border-radius: 4px; - direction: ltr; -} -.datepicker-inline { - width: 220px; -} -.datepicker-rtl { - direction: rtl; -} -.datepicker-rtl.dropdown-menu { - left: auto; -} -.datepicker-rtl table tr td span { - float: right; -} -.datepicker-dropdown { - top: 0; - left: 0; - padding: 4px; -} -.datepicker-dropdown:before { - content: ''; - display: inline-block; - border-left: 7px solid transparent; - border-right: 7px solid transparent; - border-bottom: 7px solid rgba(0, 0, 0, 0.15); - border-top: 0; - border-bottom-color: rgba(0, 0, 0, 0.2); - position: absolute; -} -.datepicker-dropdown:after { - content: ''; - display: inline-block; - border-left: 6px solid transparent; - border-right: 6px solid transparent; - border-bottom: 6px solid #fff; - border-top: 0; - position: absolute; -} -.datepicker-dropdown.datepicker-orient-left:before { - left: 6px; -} -.datepicker-dropdown.datepicker-orient-left:after { - left: 7px; -} -.datepicker-dropdown.datepicker-orient-right:before { - right: 6px; -} -.datepicker-dropdown.datepicker-orient-right:after { - right: 7px; -} -.datepicker-dropdown.datepicker-orient-bottom:before { - top: -7px; -} -.datepicker-dropdown.datepicker-orient-bottom:after { - top: -6px; -} -.datepicker-dropdown.datepicker-orient-top:before { - bottom: -7px; - border-bottom: 0; - border-top: 7px solid rgba(0, 0, 0, 0.15); -} -.datepicker-dropdown.datepicker-orient-top:after { - bottom: -6px; - border-bottom: 0; - border-top: 6px solid #fff; -} -.datepicker table { - margin: 0; - -webkit-touch-callout: none; - -webkit-user-select: none; - -khtml-user-select: none; - -moz-user-select: none; - -ms-user-select: none; - user-select: none; -} -.datepicker table tr td, -.datepicker table tr th { - text-align: center; - width: 30px; - height: 30px; - border-radius: 4px; - border: none; -} -.table-striped .datepicker table tr td, -.table-striped .datepicker table tr th { - background-color: transparent; -} -.datepicker table tr td.old, -.datepicker table tr td.new { - color: #777777; -} -.datepicker table tr td.day:hover, -.datepicker table tr td.focused { - background: #eeeeee; - cursor: pointer; -} -.datepicker table tr td.disabled, -.datepicker table tr td.disabled:hover { - background: none; - color: #777777; - cursor: default; -} -.datepicker table tr td.highlighted { - color: #000; - background-color: #d9edf7; - border-color: #85c5e5; - border-radius: 0; -} -.datepicker table tr td.highlighted:focus, -.datepicker table tr td.highlighted.focus { - color: #000; - background-color: #afd9ee; - border-color: #298fc2; -} -.datepicker table tr td.highlighted:hover { - color: #000; - background-color: #afd9ee; - border-color: #52addb; -} -.datepicker table tr td.highlighted:active, -.datepicker table tr td.highlighted.active { - color: #000; - background-color: #afd9ee; - border-color: #52addb; -} -.datepicker table tr td.highlighted:active:hover, -.datepicker table tr td.highlighted.active:hover, -.datepicker table tr td.highlighted:active:focus, -.datepicker table tr td.highlighted.active:focus, -.datepicker table tr td.highlighted:active.focus, -.datepicker table tr td.highlighted.active.focus { - color: #000; - background-color: #91cbe8; - border-color: #298fc2; -} -.datepicker table tr td.highlighted.disabled:hover, -.datepicker table tr td.highlighted[disabled]:hover, -fieldset[disabled] .datepicker table tr td.highlighted:hover, -.datepicker table tr td.highlighted.disabled:focus, -.datepicker table tr td.highlighted[disabled]:focus, -fieldset[disabled] .datepicker table tr td.highlighted:focus, -.datepicker table tr td.highlighted.disabled.focus, -.datepicker table tr td.highlighted[disabled].focus, -fieldset[disabled] .datepicker table tr td.highlighted.focus { - background-color: #d9edf7; - border-color: #85c5e5; -} -.datepicker table tr td.highlighted.focused { - background: #afd9ee; -} -.datepicker table tr td.highlighted.disabled, -.datepicker table tr td.highlighted.disabled:active { - background: #d9edf7; - color: #777777; -} -.datepicker table tr td.today { - color: #000; - background-color: #ffdb99; - border-color: #ffb733; -} -.datepicker table tr td.today:focus, -.datepicker table tr td.today.focus { - color: #000; - background-color: #ffc966; - border-color: #b37400; -} -.datepicker table tr td.today:hover { - color: #000; - background-color: #ffc966; - border-color: #f59e00; -} -.datepicker table tr td.today:active, -.datepicker table tr td.today.active { - color: #000; - background-color: #ffc966; - border-color: #f59e00; -} -.datepicker table tr td.today:active:hover, -.datepicker table tr td.today.active:hover, -.datepicker table tr td.today:active:focus, -.datepicker table tr td.today.active:focus, -.datepicker table tr td.today:active.focus, -.datepicker table tr td.today.active.focus { - color: #000; - background-color: #ffbc42; - border-color: #b37400; -} -.datepicker table tr td.today.disabled:hover, -.datepicker table tr td.today[disabled]:hover, -fieldset[disabled] .datepicker table tr td.today:hover, -.datepicker table tr td.today.disabled:focus, -.datepicker table tr td.today[disabled]:focus, -fieldset[disabled] .datepicker table tr td.today:focus, -.datepicker table tr td.today.disabled.focus, -.datepicker table tr td.today[disabled].focus, -fieldset[disabled] .datepicker table tr td.today.focus { - background-color: #ffdb99; - border-color: #ffb733; -} -.datepicker table tr td.today.focused { - background: #ffc966; -} -.datepicker table tr td.today.disabled, -.datepicker table tr td.today.disabled:active { - background: #ffdb99; - color: #777777; -} -.datepicker table tr td.range { - color: #000; - background-color: #eeeeee; - border-color: #bbbbbb; - border-radius: 0; -} -.datepicker table tr td.range:focus, -.datepicker table tr td.range.focus { - color: #000; - background-color: #d5d5d5; - border-color: #7c7c7c; -} -.datepicker table tr td.range:hover { - color: #000; - background-color: #d5d5d5; - border-color: #9d9d9d; -} -.datepicker table tr td.range:active, -.datepicker table tr td.range.active { - color: #000; - background-color: #d5d5d5; - border-color: #9d9d9d; -} -.datepicker table tr td.range:active:hover, -.datepicker table tr td.range.active:hover, -.datepicker table tr td.range:active:focus, -.datepicker table tr td.range.active:focus, -.datepicker table tr td.range:active.focus, -.datepicker table tr td.range.active.focus { - color: #000; - background-color: #c3c3c3; - border-color: #7c7c7c; -} -.datepicker table tr td.range.disabled:hover, -.datepicker table tr td.range[disabled]:hover, -fieldset[disabled] .datepicker table tr td.range:hover, -.datepicker table tr td.range.disabled:focus, -.datepicker table tr td.range[disabled]:focus, -fieldset[disabled] .datepicker table tr td.range:focus, -.datepicker table tr td.range.disabled.focus, -.datepicker table tr td.range[disabled].focus, -fieldset[disabled] .datepicker table tr td.range.focus { - background-color: #eeeeee; - border-color: #bbbbbb; -} -.datepicker table tr td.range.focused { - background: #d5d5d5; -} -.datepicker table tr td.range.disabled, -.datepicker table tr td.range.disabled:active { - background: #eeeeee; - color: #777777; -} -.datepicker table tr td.range.highlighted { - color: #000; - background-color: #e4eef3; - border-color: #9dc1d3; -} -.datepicker table tr td.range.highlighted:focus, -.datepicker table tr td.range.highlighted.focus { - color: #000; - background-color: #c1d7e3; - border-color: #4b88a6; -} -.datepicker table tr td.range.highlighted:hover { - color: #000; - background-color: #c1d7e3; - border-color: #73a6c0; -} -.datepicker table tr td.range.highlighted:active, -.datepicker table tr td.range.highlighted.active { - color: #000; - background-color: #c1d7e3; - border-color: #73a6c0; -} -.datepicker table tr td.range.highlighted:active:hover, -.datepicker table tr td.range.highlighted.active:hover, -.datepicker table tr td.range.highlighted:active:focus, -.datepicker table tr td.range.highlighted.active:focus, -.datepicker table tr td.range.highlighted:active.focus, -.datepicker table tr td.range.highlighted.active.focus { - color: #000; - background-color: #a8c8d8; - border-color: #4b88a6; -} -.datepicker table tr td.range.highlighted.disabled:hover, -.datepicker table tr td.range.highlighted[disabled]:hover, -fieldset[disabled] .datepicker table tr td.range.highlighted:hover, -.datepicker table tr td.range.highlighted.disabled:focus, -.datepicker table tr td.range.highlighted[disabled]:focus, -fieldset[disabled] .datepicker table tr td.range.highlighted:focus, -.datepicker table tr td.range.highlighted.disabled.focus, -.datepicker table tr td.range.highlighted[disabled].focus, -fieldset[disabled] .datepicker table tr td.range.highlighted.focus { - background-color: #e4eef3; - border-color: #9dc1d3; -} -.datepicker table tr td.range.highlighted.focused { - background: #c1d7e3; -} -.datepicker table tr td.range.highlighted.disabled, -.datepicker table tr td.range.highlighted.disabled:active { - background: #e4eef3; - color: #777777; -} -.datepicker table tr td.range.today { - color: #000; - background-color: #f7ca77; - border-color: #f1a417; -} -.datepicker table tr td.range.today:focus, -.datepicker table tr td.range.today.focus { - color: #000; - background-color: #f4b747; - border-color: #815608; -} -.datepicker table tr td.range.today:hover { - color: #000; - background-color: #f4b747; - border-color: #bf800c; -} -.datepicker table tr td.range.today:active, -.datepicker table tr td.range.today.active { - color: #000; - background-color: #f4b747; - border-color: #bf800c; -} -.datepicker table tr td.range.today:active:hover, -.datepicker table tr td.range.today.active:hover, -.datepicker table tr td.range.today:active:focus, -.datepicker table tr td.range.today.active:focus, -.datepicker table tr td.range.today:active.focus, -.datepicker table tr td.range.today.active.focus { - color: #000; - background-color: #f2aa25; - border-color: #815608; -} -.datepicker table tr td.range.today.disabled:hover, -.datepicker table tr td.range.today[disabled]:hover, -fieldset[disabled] .datepicker table tr td.range.today:hover, -.datepicker table tr td.range.today.disabled:focus, -.datepicker table tr td.range.today[disabled]:focus, -fieldset[disabled] .datepicker table tr td.range.today:focus, -.datepicker table tr td.range.today.disabled.focus, -.datepicker table tr td.range.today[disabled].focus, -fieldset[disabled] .datepicker table tr td.range.today.focus { - background-color: #f7ca77; - border-color: #f1a417; -} -.datepicker table tr td.range.today.disabled, -.datepicker table tr td.range.today.disabled:active { - background: #f7ca77; - color: #777777; -} -.datepicker table tr td.selected, -.datepicker table tr td.selected.highlighted { - color: #fff; - background-color: #777777; - border-color: #555555; - text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25); -} -.datepicker table tr td.selected:focus, -.datepicker table tr td.selected.highlighted:focus, -.datepicker table tr td.selected.focus, -.datepicker table tr td.selected.highlighted.focus { - color: #fff; - background-color: #5e5e5e; - border-color: #161616; -} -.datepicker table tr td.selected:hover, -.datepicker table tr td.selected.highlighted:hover { - color: #fff; - background-color: #5e5e5e; - border-color: #373737; -} -.datepicker table tr td.selected:active, -.datepicker table tr td.selected.highlighted:active, -.datepicker table tr td.selected.active, -.datepicker table tr td.selected.highlighted.active { - color: #fff; - background-color: #5e5e5e; - border-color: #373737; -} -.datepicker table tr td.selected:active:hover, -.datepicker table tr td.selected.highlighted:active:hover, -.datepicker table tr td.selected.active:hover, -.datepicker table tr td.selected.highlighted.active:hover, -.datepicker table tr td.selected:active:focus, -.datepicker table tr td.selected.highlighted:active:focus, -.datepicker table tr td.selected.active:focus, -.datepicker table tr td.selected.highlighted.active:focus, -.datepicker table tr td.selected:active.focus, -.datepicker table tr td.selected.highlighted:active.focus, -.datepicker table tr td.selected.active.focus, -.datepicker table tr td.selected.highlighted.active.focus { - color: #fff; - background-color: #4c4c4c; - border-color: #161616; -} -.datepicker table tr td.selected.disabled:hover, -.datepicker table tr td.selected.highlighted.disabled:hover, -.datepicker table tr td.selected[disabled]:hover, -.datepicker table tr td.selected.highlighted[disabled]:hover, -fieldset[disabled] .datepicker table tr td.selected:hover, -fieldset[disabled] .datepicker table tr td.selected.highlighted:hover, -.datepicker table tr td.selected.disabled:focus, -.datepicker table tr td.selected.highlighted.disabled:focus, -.datepicker table tr td.selected[disabled]:focus, -.datepicker table tr td.selected.highlighted[disabled]:focus, -fieldset[disabled] .datepicker table tr td.selected:focus, -fieldset[disabled] .datepicker table tr td.selected.highlighted:focus, -.datepicker table tr td.selected.disabled.focus, -.datepicker table tr td.selected.highlighted.disabled.focus, -.datepicker table tr td.selected[disabled].focus, -.datepicker table tr td.selected.highlighted[disabled].focus, -fieldset[disabled] .datepicker table tr td.selected.focus, -fieldset[disabled] .datepicker table tr td.selected.highlighted.focus { - background-color: #777777; - border-color: #555555; -} -.datepicker table tr td.active, -.datepicker table tr td.active.highlighted { - color: #fff; - background-color: #337ab7; - border-color: #2e6da4; - text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25); -} -.datepicker table tr td.active:focus, -.datepicker table tr td.active.highlighted:focus, -.datepicker table tr td.active.focus, -.datepicker table tr td.active.highlighted.focus { - color: #fff; - background-color: #286090; - border-color: #122b40; -} -.datepicker table tr td.active:hover, -.datepicker table tr td.active.highlighted:hover { - color: #fff; - background-color: #286090; - border-color: #204d74; -} -.datepicker table tr td.active:active, -.datepicker table tr td.active.highlighted:active, -.datepicker table tr td.active.active, -.datepicker table tr td.active.highlighted.active { - color: #fff; - background-color: #286090; - border-color: #204d74; -} -.datepicker table tr td.active:active:hover, -.datepicker table tr td.active.highlighted:active:hover, -.datepicker table tr td.active.active:hover, -.datepicker table tr td.active.highlighted.active:hover, -.datepicker table tr td.active:active:focus, -.datepicker table tr td.active.highlighted:active:focus, -.datepicker table tr td.active.active:focus, -.datepicker table tr td.active.highlighted.active:focus, -.datepicker table tr td.active:active.focus, -.datepicker table tr td.active.highlighted:active.focus, -.datepicker table tr td.active.active.focus, -.datepicker table tr td.active.highlighted.active.focus { - color: #fff; - background-color: #204d74; - border-color: #122b40; -} -.datepicker table tr td.active.disabled:hover, -.datepicker table tr td.active.highlighted.disabled:hover, -.datepicker table tr td.active[disabled]:hover, -.datepicker table tr td.active.highlighted[disabled]:hover, -fieldset[disabled] .datepicker table tr td.active:hover, -fieldset[disabled] .datepicker table tr td.active.highlighted:hover, -.datepicker table tr td.active.disabled:focus, -.datepicker table tr td.active.highlighted.disabled:focus, -.datepicker table tr td.active[disabled]:focus, -.datepicker table tr td.active.highlighted[disabled]:focus, -fieldset[disabled] .datepicker table tr td.active:focus, -fieldset[disabled] .datepicker table tr td.active.highlighted:focus, -.datepicker table tr td.active.disabled.focus, -.datepicker table tr td.active.highlighted.disabled.focus, -.datepicker table tr td.active[disabled].focus, -.datepicker table tr td.active.highlighted[disabled].focus, -fieldset[disabled] .datepicker table tr td.active.focus, -fieldset[disabled] .datepicker table tr td.active.highlighted.focus { - background-color: #337ab7; - border-color: #2e6da4; -} -.datepicker table tr td span { - display: block; - width: 23%; - height: 54px; - line-height: 54px; - float: left; - margin: 1%; - cursor: pointer; - border-radius: 4px; -} -.datepicker table tr td span:hover, -.datepicker table tr td span.focused { - background: #eeeeee; -} -.datepicker table tr td span.disabled, -.datepicker table tr td span.disabled:hover { - background: none; - color: #777777; - cursor: default; -} -.datepicker table tr td span.active, -.datepicker table tr td span.active:hover, -.datepicker table tr td span.active.disabled, -.datepicker table tr td span.active.disabled:hover { - color: #fff; - background-color: #337ab7; - border-color: #2e6da4; - text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25); -} -.datepicker table tr td span.active:focus, -.datepicker table tr td span.active:hover:focus, -.datepicker table tr td span.active.disabled:focus, -.datepicker table tr td span.active.disabled:hover:focus, -.datepicker table tr td span.active.focus, -.datepicker table tr td span.active:hover.focus, -.datepicker table tr td span.active.disabled.focus, -.datepicker table tr td span.active.disabled:hover.focus { - color: #fff; - background-color: #286090; - border-color: #122b40; -} -.datepicker table tr td span.active:hover, -.datepicker table tr td span.active:hover:hover, -.datepicker table tr td span.active.disabled:hover, -.datepicker table tr td span.active.disabled:hover:hover { - color: #fff; - background-color: #286090; - border-color: #204d74; -} -.datepicker table tr td span.active:active, -.datepicker table tr td span.active:hover:active, -.datepicker table tr td span.active.disabled:active, -.datepicker table tr td span.active.disabled:hover:active, -.datepicker table tr td span.active.active, -.datepicker table tr td span.active:hover.active, -.datepicker table tr td span.active.disabled.active, -.datepicker table tr td span.active.disabled:hover.active { - color: #fff; - background-color: #286090; - border-color: #204d74; -} -.datepicker table tr td span.active:active:hover, -.datepicker table tr td span.active:hover:active:hover, -.datepicker table tr td span.active.disabled:active:hover, -.datepicker table tr td span.active.disabled:hover:active:hover, -.datepicker table tr td span.active.active:hover, -.datepicker table tr td span.active:hover.active:hover, -.datepicker table tr td span.active.disabled.active:hover, -.datepicker table tr td span.active.disabled:hover.active:hover, -.datepicker table tr td span.active:active:focus, -.datepicker table tr td span.active:hover:active:focus, -.datepicker table tr td span.active.disabled:active:focus, -.datepicker table tr td span.active.disabled:hover:active:focus, -.datepicker table tr td span.active.active:focus, -.datepicker table tr td span.active:hover.active:focus, -.datepicker table tr td span.active.disabled.active:focus, -.datepicker table tr td span.active.disabled:hover.active:focus, -.datepicker table tr td span.active:active.focus, -.datepicker table tr td span.active:hover:active.focus, -.datepicker table tr td span.active.disabled:active.focus, -.datepicker table tr td span.active.disabled:hover:active.focus, -.datepicker table tr td span.active.active.focus, -.datepicker table tr td span.active:hover.active.focus, -.datepicker table tr td span.active.disabled.active.focus, -.datepicker table tr td span.active.disabled:hover.active.focus { - color: #fff; - background-color: #204d74; - border-color: #122b40; -} -.datepicker table tr td span.active.disabled:hover, -.datepicker table tr td span.active:hover.disabled:hover, -.datepicker table tr td span.active.disabled.disabled:hover, -.datepicker table tr td span.active.disabled:hover.disabled:hover, -.datepicker table tr td span.active[disabled]:hover, -.datepicker table tr td span.active:hover[disabled]:hover, -.datepicker table tr td span.active.disabled[disabled]:hover, -.datepicker table tr td span.active.disabled:hover[disabled]:hover, -fieldset[disabled] .datepicker table tr td span.active:hover, -fieldset[disabled] .datepicker table tr td span.active:hover:hover, -fieldset[disabled] .datepicker table tr td span.active.disabled:hover, -fieldset[disabled] .datepicker table tr td span.active.disabled:hover:hover, -.datepicker table tr td span.active.disabled:focus, -.datepicker table tr td span.active:hover.disabled:focus, -.datepicker table tr td span.active.disabled.disabled:focus, -.datepicker table tr td span.active.disabled:hover.disabled:focus, -.datepicker table tr td span.active[disabled]:focus, -.datepicker table tr td span.active:hover[disabled]:focus, -.datepicker table tr td span.active.disabled[disabled]:focus, -.datepicker table tr td span.active.disabled:hover[disabled]:focus, -fieldset[disabled] .datepicker table tr td span.active:focus, -fieldset[disabled] .datepicker table tr td span.active:hover:focus, -fieldset[disabled] .datepicker table tr td span.active.disabled:focus, -fieldset[disabled] .datepicker table tr td span.active.disabled:hover:focus, -.datepicker table tr td span.active.disabled.focus, -.datepicker table tr td span.active:hover.disabled.focus, -.datepicker table tr td span.active.disabled.disabled.focus, -.datepicker table tr td span.active.disabled:hover.disabled.focus, -.datepicker table tr td span.active[disabled].focus, -.datepicker table tr td span.active:hover[disabled].focus, -.datepicker table tr td span.active.disabled[disabled].focus, -.datepicker table tr td span.active.disabled:hover[disabled].focus, -fieldset[disabled] .datepicker table tr td span.active.focus, -fieldset[disabled] .datepicker table tr td span.active:hover.focus, -fieldset[disabled] .datepicker table tr td span.active.disabled.focus, -fieldset[disabled] .datepicker table tr td span.active.disabled:hover.focus { - background-color: #337ab7; - border-color: #2e6da4; -} -.datepicker table tr td span.old, -.datepicker table tr td span.new { - color: #777777; -} -.datepicker .datepicker-switch { - width: 145px; -} -.datepicker .datepicker-switch, -.datepicker .prev, -.datepicker .next, -.datepicker tfoot tr th { - cursor: pointer; -} -.datepicker .datepicker-switch:hover, -.datepicker .prev:hover, -.datepicker .next:hover, -.datepicker tfoot tr th:hover { - background: #eeeeee; -} -.datepicker .prev.disabled, -.datepicker .next.disabled { - visibility: hidden; -} -.datepicker .cw { - font-size: 10px; - width: 12px; - padding: 0 2px 0 5px; - vertical-align: middle; -} -.input-group.date .input-group-addon { - cursor: pointer; -} -.input-daterange { - width: 100%; -} -.input-daterange input { - text-align: center; -} -.input-daterange input:first-child { - border-radius: 3px 0 0 3px; -} -.input-daterange input:last-child { - border-radius: 0 3px 3px 0; -} -.input-daterange .input-group-addon { - width: auto; - min-width: 16px; - padding: 4px 5px; - line-height: 1.42857143; - text-shadow: 0 1px 0 #fff; - border-width: 1px 0; - margin-left: -5px; - margin-right: -5px; -} -/*# sourceMappingURL=bootstrap-datepicker3.css.map */ \ No newline at end of file diff --git a/admin/bower_components/bootstrap-datepicker/dist/css/bootstrap-datepicker3.css.map b/admin/bower_components/bootstrap-datepicker/dist/css/bootstrap-datepicker3.css.map deleted file mode 100644 index fe24be9..0000000 --- a/admin/bower_components/bootstrap-datepicker/dist/css/bootstrap-datepicker3.css.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sources":["less/datepicker3.less","build/build3.less"],"names":[],"mappings":"AAAA;EACC,kBAAA;EAIA,cAAA;;AAHA,WAAC;EACA,YAAA;;AAGD,WAAC;EACA,cAAA;;AACA,WAFA,IAEC;EAAiB,UAAA;;AAFnB,WAAC,IAGA,MAAM,GAAG,GAAG;EACX,YAAA;;AAGF,WAAC;EACA,MAAA;EACA,OAAA;EACA,YAAA;;AACA,WAJA,SAIC;EACA,SAAS,EAAT;EACA,qBAAA;EACA,kCAAA;EACA,mCAAA;EACA,4CAAA;EACA,aAAA;EACA,uCAAA;EACA,kBAAA;;AAED,WAdA,SAcC;EACA,SAAS,EAAT;EACA,qBAAA;EACA,kCAAA;EACA,mCAAA;EACA,6BAAA;EACA,aAAA;EACA,kBAAA;;AAED,WAvBA,SAuBC,uBAAuB;EAAY,SAAA;;AACpC,WAxBA,SAwBC,uBAAuB;EAAY,SAAA;;AACpC,WAzBA,SAyBC,wBAAwB;EAAW,UAAA;;AACpC,WA1BA,SA0BC,wBAAwB;EAAW,UAAA;;AACpC,WA3BA,SA2BC,yBAAyB;EAAU,SAAA;;AACpC,WA5BA,SA4BC,yBAAyB;EAAU,SAAA;;AACpC,WA7BA,SA6BC,sBAAsB;EACtB,YAAA;EACA,gBAAA;EACA,yCAAA;;AAED,WAlCA,SAkCC,sBAAsB;EACtB,YAAA;EACA,gBAAA;EACA,0BAAA;;AAlDH,WAqDC;EACC,SAAA;EACA,2BAAA;EACA,yBAAA;EACA,wBAAA;EACA,sBAAA;EACA,qBAAA;EACA,iBAAA;;AA5DF,WAqDC,MAQC,GACC;AA9DH,WAqDC,MAQC,GACK;EACH,kBAAA;EACA,WAAA;EACA,YAAA;EACA,kBAAA;EACA,YAAA;;AAMH,cAAe,YAAE,MAAM,GACtB;AADD,cAAe,YAAE,MAAM,GAClB;EACH,6BAAA;;AAID,WADD,MAAM,GAAG,GACP;AACD,WAFD,MAAM,GAAG,GAEP;EACA,cAAA;;AAED,WALD,MAAM,GAAG,GAKP,IAAI;AACL,WAND,MAAM,GAAG,GAMP;EACA,mBAAA;EACA,eAAA;;AAED,WAVD,MAAM,GAAG,GAUP;AACD,WAXD,MAAM,GAAG,GAWP,SAAS;EACT,gBAAA;EACA,cAAA;EACA,eAAA;;AAED,WAhBD,MAAM,GAAG,GAgBP;EC5DD,WAAA;EACA,yBAAA;EACA,qBAAA;ED6DC,gBAAA;;AC3DD,WDwCD,MAAM,GAAG,GAgBP,YCxDA;AACD,WDuCD,MAAM,GAAG,GAgBP,YCvDA;EACC,WAAA;EACA,yBAAA;EACI,qBAAA;;AAEN,WDkCD,MAAM,GAAG,GAgBP,YClDA;EACC,WAAA;EACA,yBAAA;EACI,qBAAA;;AAEN,WD6BD,MAAM,GAAG,GAgBP,YC7CA;AACD,WD4BD,MAAM,GAAG,GAgBP,YC5CA;EACC,WAAA;EACA,yBAAA;EACI,qBAAA;;AAEJ,WDuBH,MAAM,GAAG,GAgBP,YC7CA,OAME;AAAD,WDuBH,MAAM,GAAG,GAgBP,YC5CA,OAKE;AACD,WDsBH,MAAM,GAAG,GAgBP,YC7CA,OAOE;AAAD,WDsBH,MAAM,GAAG,GAgBP,YC5CA,OAME;AACD,WDqBH,MAAM,GAAG,GAgBP,YC7CA,OAQE;AAAD,WDqBH,MAAM,GAAG,GAgBP,YC5CA,OAOE;EACC,WAAA;EACA,yBAAA;EACI,qBAAA;;AAMN,WDYH,MAAM,GAAG,GAgBP,YC/BA,SAGE;AAAD,WDYH,MAAM,GAAG,GAgBP,YC9BA,UAEE;AAAD,QADM,UAAW,YDapB,MAAM,GAAG,GAgBP,YC5BE;AACD,WDWH,MAAM,GAAG,GAgBP,YC/BA,SAIE;AAAD,WDWH,MAAM,GAAG,GAgBP,YC9BA,UAGE;AAAD,QAFM,UAAW,YDapB,MAAM,GAAG,GAgBP,YC3BE;AACD,WDUH,MAAM,GAAG,GAgBP,YC/BA,SAKE;AAAD,WDUH,MAAM,GAAG,GAgBP,YC9BA,UAIE;AAAD,QAHM,UAAW,YDapB,MAAM,GAAG,GAgBP,YC1BE;EACC,yBAAA;EACI,qBAAA;;AD6BP,WArBF,MAAM,GAAG,GAgBP,YAKC;EACA,mBAAA;;AAGD,WAzBF,MAAM,GAAG,GAgBP,YASC;AACD,WA1BF,MAAM,GAAG,GAgBP,YAUC,SAAS;EACT,mBAAA;EACA,cAAA;;AAGF,WA/BD,MAAM,GAAG,GA+BP;EC3ED,WAAA;EACA,yBAAA;EACA,qBAAA;;AAEA,WDwCD,MAAM,GAAG,GA+BP,MCvEA;AACD,WDuCD,MAAM,GAAG,GA+BP,MCtEA;EACC,WAAA;EACA,yBAAA;EACI,qBAAA;;AAEN,WDkCD,MAAM,GAAG,GA+BP,MCjEA;EACC,WAAA;EACA,yBAAA;EACI,qBAAA;;AAEN,WD6BD,MAAM,GAAG,GA+BP,MC5DA;AACD,WD4BD,MAAM,GAAG,GA+BP,MC3DA;EACC,WAAA;EACA,yBAAA;EACI,qBAAA;;AAEJ,WDuBH,MAAM,GAAG,GA+BP,MC5DA,OAME;AAAD,WDuBH,MAAM,GAAG,GA+BP,MC3DA,OAKE;AACD,WDsBH,MAAM,GAAG,GA+BP,MC5DA,OAOE;AAAD,WDsBH,MAAM,GAAG,GA+BP,MC3DA,OAME;AACD,WDqBH,MAAM,GAAG,GA+BP,MC5DA,OAQE;AAAD,WDqBH,MAAM,GAAG,GA+BP,MC3DA,OAOE;EACC,WAAA;EACA,yBAAA;EACI,qBAAA;;AAMN,WDYH,MAAM,GAAG,GA+BP,MC9CA,SAGE;AAAD,WDYH,MAAM,GAAG,GA+BP,MC7CA,UAEE;AAAD,QADM,UAAW,YDapB,MAAM,GAAG,GA+BP,MC3CE;AACD,WDWH,MAAM,GAAG,GA+BP,MC9CA,SAIE;AAAD,WDWH,MAAM,GAAG,GA+BP,MC7CA,UAGE;AAAD,QAFM,UAAW,YDapB,MAAM,GAAG,GA+BP,MC1CE;AACD,WDUH,MAAM,GAAG,GA+BP,MC9CA,SAKE;AAAD,WDUH,MAAM,GAAG,GA+BP,MC7CA,UAIE;AAAD,QAHM,UAAW,YDapB,MAAM,GAAG,GA+BP,MCzCE;EACC,yBAAA;EACI,qBAAA;;AD2CP,WAnCF,MAAM,GAAG,GA+BP,MAIC;EACA,mBAAA;;AAGD,WAvCF,MAAM,GAAG,GA+BP,MAQC;AACD,WAxCF,MAAM,GAAG,GA+BP,MASC,SAAS;EACT,mBAAA;EACA,cAAA;;AAGF,WA7CD,MAAM,GAAG,GA6CP;ECzFD,WAAA;EACA,yBAAA;EACA,qBAAA;ED0FC,gBAAA;;ACxFD,WDwCD,MAAM,GAAG,GA6CP,MCrFA;AACD,WDuCD,MAAM,GAAG,GA6CP,MCpFA;EACC,WAAA;EACA,yBAAA;EACI,qBAAA;;AAEN,WDkCD,MAAM,GAAG,GA6CP,MC/EA;EACC,WAAA;EACA,yBAAA;EACI,qBAAA;;AAEN,WD6BD,MAAM,GAAG,GA6CP,MC1EA;AACD,WD4BD,MAAM,GAAG,GA6CP,MCzEA;EACC,WAAA;EACA,yBAAA;EACI,qBAAA;;AAEJ,WDuBH,MAAM,GAAG,GA6CP,MC1EA,OAME;AAAD,WDuBH,MAAM,GAAG,GA6CP,MCzEA,OAKE;AACD,WDsBH,MAAM,GAAG,GA6CP,MC1EA,OAOE;AAAD,WDsBH,MAAM,GAAG,GA6CP,MCzEA,OAME;AACD,WDqBH,MAAM,GAAG,GA6CP,MC1EA,OAQE;AAAD,WDqBH,MAAM,GAAG,GA6CP,MCzEA,OAOE;EACC,WAAA;EACA,yBAAA;EACI,qBAAA;;AAMN,WDYH,MAAM,GAAG,GA6CP,MC5DA,SAGE;AAAD,WDYH,MAAM,GAAG,GA6CP,MC3DA,UAEE;AAAD,QADM,UAAW,YDapB,MAAM,GAAG,GA6CP,MCzDE;AACD,WDWH,MAAM,GAAG,GA6CP,MC5DA,SAIE;AAAD,WDWH,MAAM,GAAG,GA6CP,MC3DA,UAGE;AAAD,QAFM,UAAW,YDapB,MAAM,GAAG,GA6CP,MCxDE;AACD,WDUH,MAAM,GAAG,GA6CP,MC5DA,SAKE;AAAD,WDUH,MAAM,GAAG,GA6CP,MC3DA,UAIE;AAAD,QAHM,UAAW,YDapB,MAAM,GAAG,GA6CP,MCvDE;EACC,yBAAA;EACI,qBAAA;;AD0DP,WAlDF,MAAM,GAAG,GA6CP,MAKC;EACA,mBAAA;;AAGD,WAtDF,MAAM,GAAG,GA6CP,MASC;AACD,WAvDF,MAAM,GAAG,GA6CP,MAUC,SAAS;EACT,mBAAA;EACA,cAAA;;AAGF,WA5DD,MAAM,GAAG,GA4DP,MAAM;ECxGP,WAAA;EACA,yBAAA;EACA,qBAAA;;AAEA,WDwCD,MAAM,GAAG,GA4DP,MAAM,YCpGN;AACD,WDuCD,MAAM,GAAG,GA4DP,MAAM,YCnGN;EACC,WAAA;EACA,yBAAA;EACI,qBAAA;;AAEN,WDkCD,MAAM,GAAG,GA4DP,MAAM,YC9FN;EACC,WAAA;EACA,yBAAA;EACI,qBAAA;;AAEN,WD6BD,MAAM,GAAG,GA4DP,MAAM,YCzFN;AACD,WD4BD,MAAM,GAAG,GA4DP,MAAM,YCxFN;EACC,WAAA;EACA,yBAAA;EACI,qBAAA;;AAEJ,WDuBH,MAAM,GAAG,GA4DP,MAAM,YCzFN,OAME;AAAD,WDuBH,MAAM,GAAG,GA4DP,MAAM,YCxFN,OAKE;AACD,WDsBH,MAAM,GAAG,GA4DP,MAAM,YCzFN,OAOE;AAAD,WDsBH,MAAM,GAAG,GA4DP,MAAM,YCxFN,OAME;AACD,WDqBH,MAAM,GAAG,GA4DP,MAAM,YCzFN,OAQE;AAAD,WDqBH,MAAM,GAAG,GA4DP,MAAM,YCxFN,OAOE;EACC,WAAA;EACA,yBAAA;EACI,qBAAA;;AAMN,WDYH,MAAM,GAAG,GA4DP,MAAM,YC3EN,SAGE;AAAD,WDYH,MAAM,GAAG,GA4DP,MAAM,YC1EN,UAEE;AAAD,QADM,UAAW,YDapB,MAAM,GAAG,GA4DP,MAAM,YCxEJ;AACD,WDWH,MAAM,GAAG,GA4DP,MAAM,YC3EN,SAIE;AAAD,WDWH,MAAM,GAAG,GA4DP,MAAM,YC1EN,UAGE;AAAD,QAFM,UAAW,YDapB,MAAM,GAAG,GA4DP,MAAM,YCvEJ;AACD,WDUH,MAAM,GAAG,GA4DP,MAAM,YC3EN,SAKE;AAAD,WDUH,MAAM,GAAG,GA4DP,MAAM,YC1EN,UAIE;AAAD,QAHM,UAAW,YDapB,MAAM,GAAG,GA4DP,MAAM,YCtEJ;EACC,yBAAA;EACI,qBAAA;;ADwEP,WAhEF,MAAM,GAAG,GA4DP,MAAM,YAIL;EACA,mBAAA;;AAGD,WApEF,MAAM,GAAG,GA4DP,MAAM,YAQL;AACD,WArEF,MAAM,GAAG,GA4DP,MAAM,YASL,SAAS;EACT,mBAAA;EACA,cAAA;;AAGF,WA1ED,MAAM,GAAG,GA0EP,MAAM;ECtHP,WAAA;EACA,yBAAA;EACA,qBAAA;;AAEA,WDwCD,MAAM,GAAG,GA0EP,MAAM,MClHN;AACD,WDuCD,MAAM,GAAG,GA0EP,MAAM,MCjHN;EACC,WAAA;EACA,yBAAA;EACI,qBAAA;;AAEN,WDkCD,MAAM,GAAG,GA0EP,MAAM,MC5GN;EACC,WAAA;EACA,yBAAA;EACI,qBAAA;;AAEN,WD6BD,MAAM,GAAG,GA0EP,MAAM,MCvGN;AACD,WD4BD,MAAM,GAAG,GA0EP,MAAM,MCtGN;EACC,WAAA;EACA,yBAAA;EACI,qBAAA;;AAEJ,WDuBH,MAAM,GAAG,GA0EP,MAAM,MCvGN,OAME;AAAD,WDuBH,MAAM,GAAG,GA0EP,MAAM,MCtGN,OAKE;AACD,WDsBH,MAAM,GAAG,GA0EP,MAAM,MCvGN,OAOE;AAAD,WDsBH,MAAM,GAAG,GA0EP,MAAM,MCtGN,OAME;AACD,WDqBH,MAAM,GAAG,GA0EP,MAAM,MCvGN,OAQE;AAAD,WDqBH,MAAM,GAAG,GA0EP,MAAM,MCtGN,OAOE;EACC,WAAA;EACA,yBAAA;EACI,qBAAA;;AAMN,WDYH,MAAM,GAAG,GA0EP,MAAM,MCzFN,SAGE;AAAD,WDYH,MAAM,GAAG,GA0EP,MAAM,MCxFN,UAEE;AAAD,QADM,UAAW,YDapB,MAAM,GAAG,GA0EP,MAAM,MCtFJ;AACD,WDWH,MAAM,GAAG,GA0EP,MAAM,MCzFN,SAIE;AAAD,WDWH,MAAM,GAAG,GA0EP,MAAM,MCxFN,UAGE;AAAD,QAFM,UAAW,YDapB,MAAM,GAAG,GA0EP,MAAM,MCrFJ;AACD,WDUH,MAAM,GAAG,GA0EP,MAAM,MCzFN,SAKE;AAAD,WDUH,MAAM,GAAG,GA0EP,MAAM,MCxFN,UAIE;AAAD,QAHM,UAAW,YDapB,MAAM,GAAG,GA0EP,MAAM,MCpFJ;EACC,yBAAA;EACI,qBAAA;;ADsFP,WA9EF,MAAM,GAAG,GA0EP,MAAM,MAIL;AACD,WA/EF,MAAM,GAAG,GA0EP,MAAM,MAKL,SAAS;EACT,mBAAA;EACA,cAAA;;AAGF,WApFD,MAAM,GAAG,GAoFP;AACD,WArFD,MAAM,GAAG,GAqFP,SAAS;ECjIV,WAAA;EACA,yBAAA;EACA,qBAAA;EDiIC,yCAAA;;AC/HD,WDwCD,MAAM,GAAG,GAoFP,SC5HA;AAAD,WDwCD,MAAM,GAAG,GAqFP,SAAS,YC7HT;AACD,WDuCD,MAAM,GAAG,GAoFP,SC3HA;AAAD,WDuCD,MAAM,GAAG,GAqFP,SAAS,YC5HT;EACC,WAAA;EACA,yBAAA;EACI,qBAAA;;AAEN,WDkCD,MAAM,GAAG,GAoFP,SCtHA;AAAD,WDkCD,MAAM,GAAG,GAqFP,SAAS,YCvHT;EACC,WAAA;EACA,yBAAA;EACI,qBAAA;;AAEN,WD6BD,MAAM,GAAG,GAoFP,SCjHA;AAAD,WD6BD,MAAM,GAAG,GAqFP,SAAS,YClHT;AACD,WD4BD,MAAM,GAAG,GAoFP,SChHA;AAAD,WD4BD,MAAM,GAAG,GAqFP,SAAS,YCjHT;EACC,WAAA;EACA,yBAAA;EACI,qBAAA;;AAEJ,WDuBH,MAAM,GAAG,GAoFP,SCjHA,OAME;AAAD,WDuBH,MAAM,GAAG,GAqFP,SAAS,YClHT,OAME;AAAD,WDuBH,MAAM,GAAG,GAoFP,SChHA,OAKE;AAAD,WDuBH,MAAM,GAAG,GAqFP,SAAS,YCjHT,OAKE;AACD,WDsBH,MAAM,GAAG,GAoFP,SCjHA,OAOE;AAAD,WDsBH,MAAM,GAAG,GAqFP,SAAS,YClHT,OAOE;AAAD,WDsBH,MAAM,GAAG,GAoFP,SChHA,OAME;AAAD,WDsBH,MAAM,GAAG,GAqFP,SAAS,YCjHT,OAME;AACD,WDqBH,MAAM,GAAG,GAoFP,SCjHA,OAQE;AAAD,WDqBH,MAAM,GAAG,GAqFP,SAAS,YClHT,OAQE;AAAD,WDqBH,MAAM,GAAG,GAoFP,SChHA,OAOE;AAAD,WDqBH,MAAM,GAAG,GAqFP,SAAS,YCjHT,OAOE;EACC,WAAA;EACA,yBAAA;EACI,qBAAA;;AAMN,WDYH,MAAM,GAAG,GAoFP,SCnGA,SAGE;AAAD,WDYH,MAAM,GAAG,GAqFP,SAAS,YCpGT,SAGE;AAAD,WDYH,MAAM,GAAG,GAoFP,SClGA,UAEE;AAAD,WDYH,MAAM,GAAG,GAqFP,SAAS,YCnGT,UAEE;AAAD,QADM,UAAW,YDapB,MAAM,GAAG,GAoFP,SChGE;AAAD,QADM,UAAW,YDapB,MAAM,GAAG,GAqFP,SAAS,YCjGP;AACD,WDWH,MAAM,GAAG,GAoFP,SCnGA,SAIE;AAAD,WDWH,MAAM,GAAG,GAqFP,SAAS,YCpGT,SAIE;AAAD,WDWH,MAAM,GAAG,GAoFP,SClGA,UAGE;AAAD,WDWH,MAAM,GAAG,GAqFP,SAAS,YCnGT,UAGE;AAAD,QAFM,UAAW,YDapB,MAAM,GAAG,GAoFP,SC/FE;AAAD,QAFM,UAAW,YDapB,MAAM,GAAG,GAqFP,SAAS,YChGP;AACD,WDUH,MAAM,GAAG,GAoFP,SCnGA,SAKE;AAAD,WDUH,MAAM,GAAG,GAqFP,SAAS,YCpGT,SAKE;AAAD,WDUH,MAAM,GAAG,GAoFP,SClGA,UAIE;AAAD,WDUH,MAAM,GAAG,GAqFP,SAAS,YCnGT,UAIE;AAAD,QAHM,UAAW,YDapB,MAAM,GAAG,GAoFP,SC9FE;AAAD,QAHM,UAAW,YDapB,MAAM,GAAG,GAqFP,SAAS,YC/FP;EACC,yBAAA;EACI,qBAAA;;ADiGR,WAzFD,MAAM,GAAG,GAyFP;AACD,WA1FD,MAAM,GAAG,GA0FP,OAAO;ECtIR,WAAA;EACA,yBAAA;EACA,qBAAA;EDsIC,yCAAA;;ACpID,WDwCD,MAAM,GAAG,GAyFP,OCjIA;AAAD,WDwCD,MAAM,GAAG,GA0FP,OAAO,YClIP;AACD,WDuCD,MAAM,GAAG,GAyFP,OChIA;AAAD,WDuCD,MAAM,GAAG,GA0FP,OAAO,YCjIP;EACC,WAAA;EACA,yBAAA;EACI,qBAAA;;AAEN,WDkCD,MAAM,GAAG,GAyFP,OC3HA;AAAD,WDkCD,MAAM,GAAG,GA0FP,OAAO,YC5HP;EACC,WAAA;EACA,yBAAA;EACI,qBAAA;;AAEN,WD6BD,MAAM,GAAG,GAyFP,OCtHA;AAAD,WD6BD,MAAM,GAAG,GA0FP,OAAO,YCvHP;AACD,WD4BD,MAAM,GAAG,GAyFP,OCrHA;AAAD,WD4BD,MAAM,GAAG,GA0FP,OAAO,YCtHP;EACC,WAAA;EACA,yBAAA;EACI,qBAAA;;AAEJ,WDuBH,MAAM,GAAG,GAyFP,OCtHA,OAME;AAAD,WDuBH,MAAM,GAAG,GA0FP,OAAO,YCvHP,OAME;AAAD,WDuBH,MAAM,GAAG,GAyFP,OCrHA,OAKE;AAAD,WDuBH,MAAM,GAAG,GA0FP,OAAO,YCtHP,OAKE;AACD,WDsBH,MAAM,GAAG,GAyFP,OCtHA,OAOE;AAAD,WDsBH,MAAM,GAAG,GA0FP,OAAO,YCvHP,OAOE;AAAD,WDsBH,MAAM,GAAG,GAyFP,OCrHA,OAME;AAAD,WDsBH,MAAM,GAAG,GA0FP,OAAO,YCtHP,OAME;AACD,WDqBH,MAAM,GAAG,GAyFP,OCtHA,OAQE;AAAD,WDqBH,MAAM,GAAG,GA0FP,OAAO,YCvHP,OAQE;AAAD,WDqBH,MAAM,GAAG,GAyFP,OCrHA,OAOE;AAAD,WDqBH,MAAM,GAAG,GA0FP,OAAO,YCtHP,OAOE;EACC,WAAA;EACA,yBAAA;EACI,qBAAA;;AAMN,WDYH,MAAM,GAAG,GAyFP,OCxGA,SAGE;AAAD,WDYH,MAAM,GAAG,GA0FP,OAAO,YCzGP,SAGE;AAAD,WDYH,MAAM,GAAG,GAyFP,OCvGA,UAEE;AAAD,WDYH,MAAM,GAAG,GA0FP,OAAO,YCxGP,UAEE;AAAD,QADM,UAAW,YDapB,MAAM,GAAG,GAyFP,OCrGE;AAAD,QADM,UAAW,YDapB,MAAM,GAAG,GA0FP,OAAO,YCtGL;AACD,WDWH,MAAM,GAAG,GAyFP,OCxGA,SAIE;AAAD,WDWH,MAAM,GAAG,GA0FP,OAAO,YCzGP,SAIE;AAAD,WDWH,MAAM,GAAG,GAyFP,OCvGA,UAGE;AAAD,WDWH,MAAM,GAAG,GA0FP,OAAO,YCxGP,UAGE;AAAD,QAFM,UAAW,YDapB,MAAM,GAAG,GAyFP,OCpGE;AAAD,QAFM,UAAW,YDapB,MAAM,GAAG,GA0FP,OAAO,YCrGL;AACD,WDUH,MAAM,GAAG,GAyFP,OCxGA,SAKE;AAAD,WDUH,MAAM,GAAG,GA0FP,OAAO,YCzGP,SAKE;AAAD,WDUH,MAAM,GAAG,GAyFP,OCvGA,UAIE;AAAD,WDUH,MAAM,GAAG,GA0FP,OAAO,YCxGP,UAIE;AAAD,QAHM,UAAW,YDapB,MAAM,GAAG,GAyFP,OCnGE;AAAD,QAHM,UAAW,YDapB,MAAM,GAAG,GA0FP,OAAO,YCpGL;EACC,yBAAA;EACI,qBAAA;;ADtEV,WA8EC,MAAM,GAAG,GA8FR;EACC,cAAA;EACA,UAAA;EACA,YAAA;EACA,iBAAA;EACA,WAAA;EACA,UAAA;EACA,eAAA;EACA,kBAAA;;AACA,WAvGF,MAAM,GAAG,GA8FR,KASE;AACD,WAxGF,MAAM,GAAG,GA8FR,KAUE;EACA,mBAAA;;AAED,WA3GF,MAAM,GAAG,GA8FR,KAaE;AACD,WA5GF,MAAM,GAAG,GA8FR,KAcE,SAAS;EACT,gBAAA;EACA,cAAA;EACA,eAAA;;AAED,WAjHF,MAAM,GAAG,GA8FR,KAmBE;AACD,WAlHF,MAAM,GAAG,GA8FR,KAoBE,OAAO;AACR,WAnHF,MAAM,GAAG,GA8FR,KAqBE,OAAO;AACR,WApHF,MAAM,GAAG,GA8FR,KAsBE,OAAO,SAAS;EChKlB,WAAA;EACA,yBAAA;EACA,qBAAA;EDgKE,yCAAA;;AC9JF,WDwCD,MAAM,GAAG,GA8FR,KAmBE,OCzJD;AAAD,WDwCD,MAAM,GAAG,GA8FR,KAoBE,OAAO,MC1JR;AAAD,WDwCD,MAAM,GAAG,GA8FR,KAqBE,OAAO,SC3JR;AAAD,WDwCD,MAAM,GAAG,GA8FR,KAsBE,OAAO,SAAS,MC5JjB;AACD,WDuCD,MAAM,GAAG,GA8FR,KAmBE,OCxJD;AAAD,WDuCD,MAAM,GAAG,GA8FR,KAoBE,OAAO,MCzJR;AAAD,WDuCD,MAAM,GAAG,GA8FR,KAqBE,OAAO,SC1JR;AAAD,WDuCD,MAAM,GAAG,GA8FR,KAsBE,OAAO,SAAS,MC3JjB;EACC,WAAA;EACA,yBAAA;EACI,qBAAA;;AAEN,WDkCD,MAAM,GAAG,GA8FR,KAmBE,OCnJD;AAAD,WDkCD,MAAM,GAAG,GA8FR,KAoBE,OAAO,MCpJR;AAAD,WDkCD,MAAM,GAAG,GA8FR,KAqBE,OAAO,SCrJR;AAAD,WDkCD,MAAM,GAAG,GA8FR,KAsBE,OAAO,SAAS,MCtJjB;EACC,WAAA;EACA,yBAAA;EACI,qBAAA;;AAEN,WD6BD,MAAM,GAAG,GA8FR,KAmBE,OC9ID;AAAD,WD6BD,MAAM,GAAG,GA8FR,KAoBE,OAAO,MC/IR;AAAD,WD6BD,MAAM,GAAG,GA8FR,KAqBE,OAAO,SChJR;AAAD,WD6BD,MAAM,GAAG,GA8FR,KAsBE,OAAO,SAAS,MCjJjB;AACD,WD4BD,MAAM,GAAG,GA8FR,KAmBE,OC7ID;AAAD,WD4BD,MAAM,GAAG,GA8FR,KAoBE,OAAO,MC9IR;AAAD,WD4BD,MAAM,GAAG,GA8FR,KAqBE,OAAO,SC/IR;AAAD,WD4BD,MAAM,GAAG,GA8FR,KAsBE,OAAO,SAAS,MChJjB;EACC,WAAA;EACA,yBAAA;EACI,qBAAA;;AAEJ,WDuBH,MAAM,GAAG,GA8FR,KAmBE,OC9ID,OAME;AAAD,WDuBH,MAAM,GAAG,GA8FR,KAoBE,OAAO,MC/IR,OAME;AAAD,WDuBH,MAAM,GAAG,GA8FR,KAqBE,OAAO,SChJR,OAME;AAAD,WDuBH,MAAM,GAAG,GA8FR,KAsBE,OAAO,SAAS,MCjJjB,OAME;AAAD,WDuBH,MAAM,GAAG,GA8FR,KAmBE,OC7ID,OAKE;AAAD,WDuBH,MAAM,GAAG,GA8FR,KAoBE,OAAO,MC9IR,OAKE;AAAD,WDuBH,MAAM,GAAG,GA8FR,KAqBE,OAAO,SC/IR,OAKE;AAAD,WDuBH,MAAM,GAAG,GA8FR,KAsBE,OAAO,SAAS,MChJjB,OAKE;AACD,WDsBH,MAAM,GAAG,GA8FR,KAmBE,OC9ID,OAOE;AAAD,WDsBH,MAAM,GAAG,GA8FR,KAoBE,OAAO,MC/IR,OAOE;AAAD,WDsBH,MAAM,GAAG,GA8FR,KAqBE,OAAO,SChJR,OAOE;AAAD,WDsBH,MAAM,GAAG,GA8FR,KAsBE,OAAO,SAAS,MCjJjB,OAOE;AAAD,WDsBH,MAAM,GAAG,GA8FR,KAmBE,OC7ID,OAME;AAAD,WDsBH,MAAM,GAAG,GA8FR,KAoBE,OAAO,MC9IR,OAME;AAAD,WDsBH,MAAM,GAAG,GA8FR,KAqBE,OAAO,SC/IR,OAME;AAAD,WDsBH,MAAM,GAAG,GA8FR,KAsBE,OAAO,SAAS,MChJjB,OAME;AACD,WDqBH,MAAM,GAAG,GA8FR,KAmBE,OC9ID,OAQE;AAAD,WDqBH,MAAM,GAAG,GA8FR,KAoBE,OAAO,MC/IR,OAQE;AAAD,WDqBH,MAAM,GAAG,GA8FR,KAqBE,OAAO,SChJR,OAQE;AAAD,WDqBH,MAAM,GAAG,GA8FR,KAsBE,OAAO,SAAS,MCjJjB,OAQE;AAAD,WDqBH,MAAM,GAAG,GA8FR,KAmBE,OC7ID,OAOE;AAAD,WDqBH,MAAM,GAAG,GA8FR,KAoBE,OAAO,MC9IR,OAOE;AAAD,WDqBH,MAAM,GAAG,GA8FR,KAqBE,OAAO,SC/IR,OAOE;AAAD,WDqBH,MAAM,GAAG,GA8FR,KAsBE,OAAO,SAAS,MChJjB,OAOE;EACC,WAAA;EACA,yBAAA;EACI,qBAAA;;AAMN,WDYH,MAAM,GAAG,GA8FR,KAmBE,OChID,SAGE;AAAD,WDYH,MAAM,GAAG,GA8FR,KAoBE,OAAO,MCjIR,SAGE;AAAD,WDYH,MAAM,GAAG,GA8FR,KAqBE,OAAO,SClIR,SAGE;AAAD,WDYH,MAAM,GAAG,GA8FR,KAsBE,OAAO,SAAS,MCnIjB,SAGE;AAAD,WDYH,MAAM,GAAG,GA8FR,KAmBE,OC/HD,UAEE;AAAD,WDYH,MAAM,GAAG,GA8FR,KAoBE,OAAO,MChIR,UAEE;AAAD,WDYH,MAAM,GAAG,GA8FR,KAqBE,OAAO,SCjIR,UAEE;AAAD,WDYH,MAAM,GAAG,GA8FR,KAsBE,OAAO,SAAS,MClIjB,UAEE;AAAD,QADM,UAAW,YDapB,MAAM,GAAG,GA8FR,KAmBE,OC7HC;AAAD,QADM,UAAW,YDapB,MAAM,GAAG,GA8FR,KAoBE,OAAO,MC9HN;AAAD,QADM,UAAW,YDapB,MAAM,GAAG,GA8FR,KAqBE,OAAO,SC/HN;AAAD,QADM,UAAW,YDapB,MAAM,GAAG,GA8FR,KAsBE,OAAO,SAAS,MChIf;AACD,WDWH,MAAM,GAAG,GA8FR,KAmBE,OChID,SAIE;AAAD,WDWH,MAAM,GAAG,GA8FR,KAoBE,OAAO,MCjIR,SAIE;AAAD,WDWH,MAAM,GAAG,GA8FR,KAqBE,OAAO,SClIR,SAIE;AAAD,WDWH,MAAM,GAAG,GA8FR,KAsBE,OAAO,SAAS,MCnIjB,SAIE;AAAD,WDWH,MAAM,GAAG,GA8FR,KAmBE,OC/HD,UAGE;AAAD,WDWH,MAAM,GAAG,GA8FR,KAoBE,OAAO,MChIR,UAGE;AAAD,WDWH,MAAM,GAAG,GA8FR,KAqBE,OAAO,SCjIR,UAGE;AAAD,WDWH,MAAM,GAAG,GA8FR,KAsBE,OAAO,SAAS,MClIjB,UAGE;AAAD,QAFM,UAAW,YDapB,MAAM,GAAG,GA8FR,KAmBE,OC5HC;AAAD,QAFM,UAAW,YDapB,MAAM,GAAG,GA8FR,KAoBE,OAAO,MC7HN;AAAD,QAFM,UAAW,YDapB,MAAM,GAAG,GA8FR,KAqBE,OAAO,SC9HN;AAAD,QAFM,UAAW,YDapB,MAAM,GAAG,GA8FR,KAsBE,OAAO,SAAS,MC/Hf;AACD,WDUH,MAAM,GAAG,GA8FR,KAmBE,OChID,SAKE;AAAD,WDUH,MAAM,GAAG,GA8FR,KAoBE,OAAO,MCjIR,SAKE;AAAD,WDUH,MAAM,GAAG,GA8FR,KAqBE,OAAO,SClIR,SAKE;AAAD,WDUH,MAAM,GAAG,GA8FR,KAsBE,OAAO,SAAS,MCnIjB,SAKE;AAAD,WDUH,MAAM,GAAG,GA8FR,KAmBE,OC/HD,UAIE;AAAD,WDUH,MAAM,GAAG,GA8FR,KAoBE,OAAO,MChIR,UAIE;AAAD,WDUH,MAAM,GAAG,GA8FR,KAqBE,OAAO,SCjIR,UAIE;AAAD,WDUH,MAAM,GAAG,GA8FR,KAsBE,OAAO,SAAS,MClIjB,UAIE;AAAD,QAHM,UAAW,YDapB,MAAM,GAAG,GA8FR,KAmBE,OC3HC;AAAD,QAHM,UAAW,YDapB,MAAM,GAAG,GA8FR,KAoBE,OAAO,MC5HN;AAAD,QAHM,UAAW,YDapB,MAAM,GAAG,GA8FR,KAqBE,OAAO,SC7HN;AAAD,QAHM,UAAW,YDapB,MAAM,GAAG,GA8FR,KAsBE,OAAO,SAAS,MC9Hf;EACC,yBAAA;EACI,qBAAA;;ADgIP,WAxHF,MAAM,GAAG,GA8FR,KA0BE;AACD,WAzHF,MAAM,GAAG,GA8FR,KA2BE;EACA,cAAA;;AAxMJ,WA6MC;EACC,YAAA;;AA9MF,WAiNC;AAjND,WAkNC;AAlND,WAmNC;AAnND,WAoNC,MAAM,GAAG;EACR,eAAA;;AACA,WALD,mBAKE;AAAD,WAJD,MAIE;AAAD,WAHD,MAGE;AAAD,WAFD,MAAM,GAAG,GAEP;EACA,mBAAA;;AAKD,WADD,MACE;AAAD,WADM,MACL;EACA,kBAAA;;AA7NH,WAkOC;EACC,eAAA;EACA,WAAA;EACA,oBAAA;EACA,sBAAA;;AAGF,YAAY,KAAM;EACjB,eAAA;;AAED;EACC,WAAA;;AADD,gBAEC;EACC,kBAAA;;AAHF,gBAKC,MAAK;EACJ,0BAAA;;AANF,gBAQC,MAAK;EACJ,0BAAA;;AATF,gBAWC;EACC,WAAA;EACA,eAAA;EACA,gBAAA;EACA,uBAAA;EACA,yBAAA;EACA,mBAAA;EACA,iBAAA;EACA,kBAAA","sourcesContent":[".datepicker {\n\tborder-radius: @border-radius-base;\n\t&-inline {\n\t\twidth: 220px;\n\t}\n\tdirection: ltr;\n\t&-rtl {\n\t\tdirection: rtl;\n\t\t&.dropdown-menu { left: auto; }\n\t\ttable tr td span {\n\t\t\tfloat: right;\n\t\t}\n\t}\n\t&-dropdown {\n\t\ttop: 0;\n\t\tleft: 0;\n\t\tpadding: 4px;\n\t\t&:before {\n\t\t\tcontent: '';\n\t\t\tdisplay: inline-block;\n\t\t\tborder-left: 7px solid transparent;\n\t\t\tborder-right: 7px solid transparent;\n\t\t\tborder-bottom: 7px solid @dropdown-border;\n\t\t\tborder-top: 0;\n\t\t\tborder-bottom-color: rgba(0,0,0,.2);\n\t\t\tposition: absolute;\n\t\t}\n\t\t&:after {\n\t\t\tcontent: '';\n\t\t\tdisplay: inline-block;\n\t\t\tborder-left: 6px solid transparent;\n\t\t\tborder-right: 6px solid transparent;\n\t\t\tborder-bottom: 6px solid @dropdown-bg;\n\t\t\tborder-top: 0;\n\t\t\tposition: absolute;\n\t\t}\n\t\t&.datepicker-orient-left:before { left: 6px; }\n\t\t&.datepicker-orient-left:after { left: 7px; }\n\t\t&.datepicker-orient-right:before { right: 6px; }\n\t\t&.datepicker-orient-right:after { right: 7px; }\n\t\t&.datepicker-orient-bottom:before { top: -7px; }\n\t\t&.datepicker-orient-bottom:after { top: -6px; }\n\t\t&.datepicker-orient-top:before {\n\t\t\tbottom: -7px;\n\t\t\tborder-bottom: 0;\n\t\t\tborder-top: 7px solid @dropdown-border;\n\t\t}\n\t\t&.datepicker-orient-top:after {\n\t\t\tbottom: -6px;\n\t\t\tborder-bottom: 0;\n\t\t\tborder-top: 6px solid @dropdown-bg;\n\t\t}\n\t}\n\ttable {\n\t\tmargin: 0;\n\t\t-webkit-touch-callout: none;\n\t\t-webkit-user-select: none;\n\t\t-khtml-user-select: none;\n\t\t-moz-user-select: none;\n\t\t-ms-user-select: none;\n\t\tuser-select: none;\n\t\ttr {\n\t\t\ttd, th {\n\t\t\t\ttext-align: center;\n\t\t\t\twidth: 30px;\n\t\t\t\theight: 30px;\n\t\t\t\tborder-radius: 4px;\n\t\t\t\tborder: none;\n\t\t\t}\n\t\t}\n\t}\n\t// Inline display inside a table presents some problems with\n\t// border and background colors.\n\t.table-striped & table tr {\n\t\ttd, th {\n\t\t\tbackground-color: transparent;\n\t\t}\n\t}\n\ttable tr td {\n\t\t&.old,\n\t\t&.new {\n\t\t\tcolor: @btn-link-disabled-color;\n\t\t}\n\t\t&.day:hover,\n\t\t&.focused {\n\t\t\tbackground: @gray-lighter;\n\t\t\tcursor: pointer;\n\t\t}\n\t\t&.disabled,\n\t\t&.disabled:hover {\n\t\t\tbackground: none;\n\t\t\tcolor: @btn-link-disabled-color;\n\t\t\tcursor: default;\n\t\t}\n\t\t&.highlighted {\n\t\t\t@highlighted-bg: @state-info-bg;\n\t\t\t.button-variant(#000, @highlighted-bg, darken(@highlighted-bg, 20%));\n\t\t\tborder-radius: 0;\n\n\t\t\t&.focused {\n\t\t\t\tbackground: darken(@highlighted-bg, 10%);\n\t\t\t}\n\n\t\t\t&.disabled,\n\t\t\t&.disabled:active {\n\t\t\t\tbackground: @highlighted-bg;\n\t\t\t\tcolor: @btn-link-disabled-color;\n\t\t\t}\n\t\t}\n\t\t&.today {\n\t\t\t@today-bg: lighten(orange, 30%);\n\t\t\t.button-variant(#000, @today-bg, darken(@today-bg, 20%));\n\n\t\t\t&.focused {\n\t\t\t\tbackground: darken(@today-bg, 10%);\n\t\t\t}\n\n\t\t\t&.disabled,\n\t\t\t&.disabled:active {\n\t\t\t\tbackground: @today-bg;\n\t\t\t\tcolor: @btn-link-disabled-color;\n\t\t\t}\n\t\t}\n\t\t&.range {\n\t\t\t@range-bg: @gray-lighter;\n\t\t\t.button-variant(#000, @range-bg, darken(@range-bg, 20%));\n\t\t\tborder-radius: 0;\n\n\t\t\t&.focused {\n\t\t\t\tbackground: darken(@range-bg, 10%);\n\t\t\t}\n\n\t\t\t&.disabled,\n\t\t\t&.disabled:active {\n\t\t\t\tbackground: @range-bg;\n\t\t\t\tcolor: @btn-link-disabled-color;\n\t\t\t}\n\t\t}\n\t\t&.range.highlighted {\n\t\t\t@range-highlighted-bg: mix(@state-info-bg, @gray-lighter, 50%);\n\t\t\t.button-variant(#000, @range-highlighted-bg, darken(@range-highlighted-bg, 20%));\n\n\t\t\t&.focused {\n\t\t\t\tbackground: darken(@range-highlighted-bg, 10%);\n\t\t\t}\n\n\t\t\t&.disabled,\n\t\t\t&.disabled:active {\n\t\t\t\tbackground: @range-highlighted-bg;\n\t\t\t\tcolor: @btn-link-disabled-color;\n\t\t\t}\n\t\t}\n\t\t&.range.today {\n\t\t\t@range-today-bg: mix(orange, @gray-lighter, 50%);\n\t\t\t.button-variant(#000, @range-today-bg, darken(@range-today-bg, 20%));\n\n\t\t\t&.disabled,\n\t\t\t&.disabled:active {\n\t\t\t\tbackground: @range-today-bg;\n\t\t\t\tcolor: @btn-link-disabled-color;\n\t\t\t}\n\t\t}\n\t\t&.selected,\n\t\t&.selected.highlighted {\n\t\t\t.button-variant(#fff, @gray-light, @gray);\n\t\t\ttext-shadow: 0 -1px 0 rgba(0,0,0,.25);\n\t\t}\n\t\t&.active,\n\t\t&.active.highlighted {\n\t\t\t.button-variant(@btn-primary-color, @btn-primary-bg, @btn-primary-border);\n\t\t\ttext-shadow: 0 -1px 0 rgba(0,0,0,.25);\n\t\t}\n\t\tspan {\n\t\t\tdisplay: block;\n\t\t\twidth: 23%;\n\t\t\theight: 54px;\n\t\t\tline-height: 54px;\n\t\t\tfloat: left;\n\t\t\tmargin: 1%;\n\t\t\tcursor: pointer;\n\t\t\tborder-radius: 4px;\n\t\t\t&:hover,\n\t\t\t&.focused {\n\t\t\t\tbackground: @gray-lighter;\n\t\t\t}\n\t\t\t&.disabled,\n\t\t\t&.disabled:hover {\n\t\t\t\tbackground: none;\n\t\t\t\tcolor: @btn-link-disabled-color;\n\t\t\t\tcursor: default;\n\t\t\t}\n\t\t\t&.active,\n\t\t\t&.active:hover,\n\t\t\t&.active.disabled,\n\t\t\t&.active.disabled:hover {\n\t\t\t\t.button-variant(@btn-primary-color, @btn-primary-bg, @btn-primary-border);\n\t\t\t\ttext-shadow: 0 -1px 0 rgba(0,0,0,.25);\n\t\t\t}\n\t\t\t&.old,\n\t\t\t&.new {\n\t\t\t\tcolor: @btn-link-disabled-color;\n\t\t\t}\n\t\t}\n\t}\n\n\t.datepicker-switch {\n\t\twidth: 145px;\n\t}\n\n\t.datepicker-switch,\n\t.prev,\n\t.next,\n\ttfoot tr th {\n\t\tcursor: pointer;\n\t\t&:hover {\n\t\t\tbackground: @gray-lighter;\n\t\t}\n\t}\n\n\t.prev, .next {\n\t\t&.disabled {\n\t\t\tvisibility: hidden;\n\t\t}\n\t}\n\n\t// Basic styling for calendar-week cells\n\t.cw {\n\t\tfont-size: 10px;\n\t\twidth: 12px;\n\t\tpadding: 0 2px 0 5px;\n\t\tvertical-align: middle;\n\t}\n}\n.input-group.date .input-group-addon {\n\tcursor: pointer;\n}\n.input-daterange {\n\twidth: 100%;\n\tinput {\n\t\ttext-align: center;\n\t}\n\tinput:first-child {\n\t\tborder-radius: 3px 0 0 3px;\n\t}\n\tinput:last-child {\n\t\tborder-radius: 0 3px 3px 0;\n\t}\n\t.input-group-addon {\n\t\twidth: auto;\n\t\tmin-width: 16px;\n\t\tpadding: 4px 5px;\n\t\tline-height: @line-height-base;\n\t\ttext-shadow: 0 1px 0 #fff;\n\t\tborder-width: 1px 0;\n\t\tmargin-left: -5px;\n\t\tmargin-right: -5px;\n\t}\n}\n","// Datepicker .less buildfile. Includes select mixins/variables from bootstrap\n// and imports the included datepicker.less to output a minimal datepicker.css\n//\n// Usage:\n// lessc build3.less datepicker.css\n//\n// Variables and mixins copied from Bootstrap 3.3.5\n\n// Variables\n@gray: lighten(#000, 33.5%); // #555\n@gray-light: lighten(#000, 46.7%); // #777\n@gray-lighter: lighten(#000, 93.5%); // #eee\n\n@brand-primary: darken(#428bca, 6.5%); // #337ab7\n\n@btn-primary-color: #fff;\n@btn-primary-bg: @brand-primary;\n@btn-primary-border: darken(@btn-primary-bg, 5%);\n\n@btn-link-disabled-color: @gray-light;\n\n@state-info-bg: #d9edf7;\n\n@line-height-base: 1.428571429; // 20/14\n@border-radius-base: 4px;\n\n@dropdown-bg: #fff;\n@dropdown-border: rgba(0,0,0,.15);\n\n\n// Mixins\n\n// Button variants\n.button-variant(@color; @background; @border) {\n color: @color;\n background-color: @background;\n border-color: @border;\n\n &:focus,\n &.focus {\n color: @color;\n background-color: darken(@background, 10%);\n border-color: darken(@border, 25%);\n }\n &:hover {\n color: @color;\n background-color: darken(@background, 10%);\n border-color: darken(@border, 12%);\n }\n &:active,\n &.active {\n color: @color;\n background-color: darken(@background, 10%);\n border-color: darken(@border, 12%);\n\n &:hover,\n &:focus,\n &.focus {\n color: @color;\n background-color: darken(@background, 17%);\n border-color: darken(@border, 25%);\n }\n }\n &.disabled,\n &[disabled],\n fieldset[disabled] & {\n &:hover,\n &:focus,\n &.focus {\n background-color: @background;\n border-color: @border;\n }\n }\n}\n\n@import \"../less/datepicker3.less\";\n"]} \ No newline at end of file diff --git a/admin/bower_components/bootstrap-datepicker/dist/css/bootstrap-datepicker3.min.css b/admin/bower_components/bootstrap-datepicker/dist/css/bootstrap-datepicker3.min.css deleted file mode 100644 index d0ee6e7..0000000 --- a/admin/bower_components/bootstrap-datepicker/dist/css/bootstrap-datepicker3.min.css +++ /dev/null @@ -1,7 +0,0 @@ -/*! - * Datepicker for Bootstrap v1.7.1 (https://github.com/uxsolutions/bootstrap-datepicker) - * - * Licensed under the Apache License v2.0 (http://www.apache.org/licenses/LICENSE-2.0) - */ - -.datepicker{border-radius:4px;direction:ltr}.datepicker-inline{width:220px}.datepicker-rtl{direction:rtl}.datepicker-rtl.dropdown-menu{left:auto}.datepicker-rtl table tr td span{float:right}.datepicker-dropdown{top:0;left:0;padding:4px}.datepicker-dropdown:before{content:'';display:inline-block;border-left:7px solid transparent;border-right:7px solid transparent;border-bottom:7px solid rgba(0,0,0,.15);border-top:0;border-bottom-color:rgba(0,0,0,.2);position:absolute}.datepicker-dropdown:after{content:'';display:inline-block;border-left:6px solid transparent;border-right:6px solid transparent;border-bottom:6px solid #fff;border-top:0;position:absolute}.datepicker-dropdown.datepicker-orient-left:before{left:6px}.datepicker-dropdown.datepicker-orient-left:after{left:7px}.datepicker-dropdown.datepicker-orient-right:before{right:6px}.datepicker-dropdown.datepicker-orient-right:after{right:7px}.datepicker-dropdown.datepicker-orient-bottom:before{top:-7px}.datepicker-dropdown.datepicker-orient-bottom:after{top:-6px}.datepicker-dropdown.datepicker-orient-top:before{bottom:-7px;border-bottom:0;border-top:7px solid rgba(0,0,0,.15)}.datepicker-dropdown.datepicker-orient-top:after{bottom:-6px;border-bottom:0;border-top:6px solid #fff}.datepicker table{margin:0;-webkit-touch-callout:none;-webkit-user-select:none;-khtml-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.datepicker table tr td,.datepicker table tr th{text-align:center;width:30px;height:30px;border-radius:4px;border:none}.table-striped .datepicker table tr td,.table-striped .datepicker table tr th{background-color:transparent}.datepicker table tr td.new,.datepicker table tr td.old{color:#777}.datepicker table tr td.day:hover,.datepicker table tr td.focused{background:#eee;cursor:pointer}.datepicker table tr td.disabled,.datepicker table tr td.disabled:hover{background:0 0;color:#777;cursor:default}.datepicker table tr td.highlighted{color:#000;background-color:#d9edf7;border-color:#85c5e5;border-radius:0}.datepicker table tr td.highlighted.focus,.datepicker table tr td.highlighted:focus{color:#000;background-color:#afd9ee;border-color:#298fc2}.datepicker table tr td.highlighted:hover{color:#000;background-color:#afd9ee;border-color:#52addb}.datepicker table tr td.highlighted.active,.datepicker table tr td.highlighted:active{color:#000;background-color:#afd9ee;border-color:#52addb}.datepicker table tr td.highlighted.active.focus,.datepicker table tr td.highlighted.active:focus,.datepicker table tr td.highlighted.active:hover,.datepicker table tr td.highlighted:active.focus,.datepicker table tr td.highlighted:active:focus,.datepicker table tr td.highlighted:active:hover{color:#000;background-color:#91cbe8;border-color:#298fc2}.datepicker table tr td.highlighted.disabled.focus,.datepicker table tr td.highlighted.disabled:focus,.datepicker table tr td.highlighted.disabled:hover,.datepicker table tr td.highlighted[disabled].focus,.datepicker table tr td.highlighted[disabled]:focus,.datepicker table tr td.highlighted[disabled]:hover,fieldset[disabled] .datepicker table tr td.highlighted.focus,fieldset[disabled] .datepicker table tr td.highlighted:focus,fieldset[disabled] .datepicker table tr td.highlighted:hover{background-color:#d9edf7;border-color:#85c5e5}.datepicker table tr td.highlighted.focused{background:#afd9ee}.datepicker table tr td.highlighted.disabled,.datepicker table tr td.highlighted.disabled:active{background:#d9edf7;color:#777}.datepicker table tr td.today{color:#000;background-color:#ffdb99;border-color:#ffb733}.datepicker table tr td.today.focus,.datepicker table tr td.today:focus{color:#000;background-color:#ffc966;border-color:#b37400}.datepicker table tr td.today:hover{color:#000;background-color:#ffc966;border-color:#f59e00}.datepicker table tr td.today.active,.datepicker table tr td.today:active{color:#000;background-color:#ffc966;border-color:#f59e00}.datepicker table tr td.today.active.focus,.datepicker table tr td.today.active:focus,.datepicker table tr td.today.active:hover,.datepicker table tr td.today:active.focus,.datepicker table tr td.today:active:focus,.datepicker table tr td.today:active:hover{color:#000;background-color:#ffbc42;border-color:#b37400}.datepicker table tr td.today.disabled.focus,.datepicker table tr td.today.disabled:focus,.datepicker table tr td.today.disabled:hover,.datepicker table tr td.today[disabled].focus,.datepicker table tr td.today[disabled]:focus,.datepicker table tr td.today[disabled]:hover,fieldset[disabled] .datepicker table tr td.today.focus,fieldset[disabled] .datepicker table tr td.today:focus,fieldset[disabled] .datepicker table tr td.today:hover{background-color:#ffdb99;border-color:#ffb733}.datepicker table tr td.today.focused{background:#ffc966}.datepicker table tr td.today.disabled,.datepicker table tr td.today.disabled:active{background:#ffdb99;color:#777}.datepicker table tr td.range{color:#000;background-color:#eee;border-color:#bbb;border-radius:0}.datepicker table tr td.range.focus,.datepicker table tr td.range:focus{color:#000;background-color:#d5d5d5;border-color:#7c7c7c}.datepicker table tr td.range:hover{color:#000;background-color:#d5d5d5;border-color:#9d9d9d}.datepicker table tr td.range.active,.datepicker table tr td.range:active{color:#000;background-color:#d5d5d5;border-color:#9d9d9d}.datepicker table tr td.range.active.focus,.datepicker table tr td.range.active:focus,.datepicker table tr td.range.active:hover,.datepicker table tr td.range:active.focus,.datepicker table tr td.range:active:focus,.datepicker table tr td.range:active:hover{color:#000;background-color:#c3c3c3;border-color:#7c7c7c}.datepicker table tr td.range.disabled.focus,.datepicker table tr td.range.disabled:focus,.datepicker table tr td.range.disabled:hover,.datepicker table tr td.range[disabled].focus,.datepicker table tr td.range[disabled]:focus,.datepicker table tr td.range[disabled]:hover,fieldset[disabled] .datepicker table tr td.range.focus,fieldset[disabled] .datepicker table tr td.range:focus,fieldset[disabled] .datepicker table tr td.range:hover{background-color:#eee;border-color:#bbb}.datepicker table tr td.range.focused{background:#d5d5d5}.datepicker table tr td.range.disabled,.datepicker table tr td.range.disabled:active{background:#eee;color:#777}.datepicker table tr td.range.highlighted{color:#000;background-color:#e4eef3;border-color:#9dc1d3}.datepicker table tr td.range.highlighted.focus,.datepicker table tr td.range.highlighted:focus{color:#000;background-color:#c1d7e3;border-color:#4b88a6}.datepicker table tr td.range.highlighted:hover{color:#000;background-color:#c1d7e3;border-color:#73a6c0}.datepicker table tr td.range.highlighted.active,.datepicker table tr td.range.highlighted:active{color:#000;background-color:#c1d7e3;border-color:#73a6c0}.datepicker table tr td.range.highlighted.active.focus,.datepicker table tr td.range.highlighted.active:focus,.datepicker table tr td.range.highlighted.active:hover,.datepicker table tr td.range.highlighted:active.focus,.datepicker table tr td.range.highlighted:active:focus,.datepicker table tr td.range.highlighted:active:hover{color:#000;background-color:#a8c8d8;border-color:#4b88a6}.datepicker table tr td.range.highlighted.disabled.focus,.datepicker table tr td.range.highlighted.disabled:focus,.datepicker table tr td.range.highlighted.disabled:hover,.datepicker table tr td.range.highlighted[disabled].focus,.datepicker table tr td.range.highlighted[disabled]:focus,.datepicker table tr td.range.highlighted[disabled]:hover,fieldset[disabled] .datepicker table tr td.range.highlighted.focus,fieldset[disabled] .datepicker table tr td.range.highlighted:focus,fieldset[disabled] .datepicker table tr td.range.highlighted:hover{background-color:#e4eef3;border-color:#9dc1d3}.datepicker table tr td.range.highlighted.focused{background:#c1d7e3}.datepicker table tr td.range.highlighted.disabled,.datepicker table tr td.range.highlighted.disabled:active{background:#e4eef3;color:#777}.datepicker table tr td.range.today{color:#000;background-color:#f7ca77;border-color:#f1a417}.datepicker table tr td.range.today.focus,.datepicker table tr td.range.today:focus{color:#000;background-color:#f4b747;border-color:#815608}.datepicker table tr td.range.today:hover{color:#000;background-color:#f4b747;border-color:#bf800c}.datepicker table tr td.range.today.active,.datepicker table tr td.range.today:active{color:#000;background-color:#f4b747;border-color:#bf800c}.datepicker table tr td.range.today.active.focus,.datepicker table tr td.range.today.active:focus,.datepicker table tr td.range.today.active:hover,.datepicker table tr td.range.today:active.focus,.datepicker table tr td.range.today:active:focus,.datepicker table tr td.range.today:active:hover{color:#000;background-color:#f2aa25;border-color:#815608}.datepicker table tr td.range.today.disabled.focus,.datepicker table tr td.range.today.disabled:focus,.datepicker table tr td.range.today.disabled:hover,.datepicker table tr td.range.today[disabled].focus,.datepicker table tr td.range.today[disabled]:focus,.datepicker table tr td.range.today[disabled]:hover,fieldset[disabled] .datepicker table tr td.range.today.focus,fieldset[disabled] .datepicker table tr td.range.today:focus,fieldset[disabled] .datepicker table tr td.range.today:hover{background-color:#f7ca77;border-color:#f1a417}.datepicker table tr td.range.today.disabled,.datepicker table tr td.range.today.disabled:active{background:#f7ca77;color:#777}.datepicker table tr td.selected,.datepicker table tr td.selected.highlighted{color:#fff;background-color:#777;border-color:#555;text-shadow:0 -1px 0 rgba(0,0,0,.25)}.datepicker table tr td.selected.focus,.datepicker table tr td.selected.highlighted.focus,.datepicker table tr td.selected.highlighted:focus,.datepicker table tr td.selected:focus{color:#fff;background-color:#5e5e5e;border-color:#161616}.datepicker table tr td.selected.highlighted:hover,.datepicker table tr td.selected:hover{color:#fff;background-color:#5e5e5e;border-color:#373737}.datepicker table tr td.selected.active,.datepicker table tr td.selected.highlighted.active,.datepicker table tr td.selected.highlighted:active,.datepicker table tr td.selected:active{color:#fff;background-color:#5e5e5e;border-color:#373737}.datepicker table tr td.selected.active.focus,.datepicker table tr td.selected.active:focus,.datepicker table tr td.selected.active:hover,.datepicker table tr td.selected.highlighted.active.focus,.datepicker table tr td.selected.highlighted.active:focus,.datepicker table tr td.selected.highlighted.active:hover,.datepicker table tr td.selected.highlighted:active.focus,.datepicker table tr td.selected.highlighted:active:focus,.datepicker table tr td.selected.highlighted:active:hover,.datepicker table tr td.selected:active.focus,.datepicker table tr td.selected:active:focus,.datepicker table tr td.selected:active:hover{color:#fff;background-color:#4c4c4c;border-color:#161616}.datepicker table tr td.selected.disabled.focus,.datepicker table tr td.selected.disabled:focus,.datepicker table tr td.selected.disabled:hover,.datepicker table tr td.selected.highlighted.disabled.focus,.datepicker table tr td.selected.highlighted.disabled:focus,.datepicker table tr td.selected.highlighted.disabled:hover,.datepicker table tr td.selected.highlighted[disabled].focus,.datepicker table tr td.selected.highlighted[disabled]:focus,.datepicker table tr td.selected.highlighted[disabled]:hover,.datepicker table tr td.selected[disabled].focus,.datepicker table tr td.selected[disabled]:focus,.datepicker table tr td.selected[disabled]:hover,fieldset[disabled] .datepicker table tr td.selected.focus,fieldset[disabled] .datepicker table tr td.selected.highlighted.focus,fieldset[disabled] .datepicker table tr td.selected.highlighted:focus,fieldset[disabled] .datepicker table tr td.selected.highlighted:hover,fieldset[disabled] .datepicker table tr td.selected:focus,fieldset[disabled] .datepicker table tr td.selected:hover{background-color:#777;border-color:#555}.datepicker table tr td.active,.datepicker table tr td.active.highlighted{color:#fff;background-color:#337ab7;border-color:#2e6da4;text-shadow:0 -1px 0 rgba(0,0,0,.25)}.datepicker table tr td.active.focus,.datepicker table tr td.active.highlighted.focus,.datepicker table tr td.active.highlighted:focus,.datepicker table tr td.active:focus{color:#fff;background-color:#286090;border-color:#122b40}.datepicker table tr td.active.highlighted:hover,.datepicker table tr td.active:hover{color:#fff;background-color:#286090;border-color:#204d74}.datepicker table tr td.active.active,.datepicker table tr td.active.highlighted.active,.datepicker table tr td.active.highlighted:active,.datepicker table tr td.active:active{color:#fff;background-color:#286090;border-color:#204d74}.datepicker table tr td.active.active.focus,.datepicker table tr td.active.active:focus,.datepicker table tr td.active.active:hover,.datepicker table tr td.active.highlighted.active.focus,.datepicker table tr td.active.highlighted.active:focus,.datepicker table tr td.active.highlighted.active:hover,.datepicker table tr td.active.highlighted:active.focus,.datepicker table tr td.active.highlighted:active:focus,.datepicker table tr td.active.highlighted:active:hover,.datepicker table tr td.active:active.focus,.datepicker table tr td.active:active:focus,.datepicker table tr td.active:active:hover{color:#fff;background-color:#204d74;border-color:#122b40}.datepicker table tr td.active.disabled.focus,.datepicker table tr td.active.disabled:focus,.datepicker table tr td.active.disabled:hover,.datepicker table tr td.active.highlighted.disabled.focus,.datepicker table tr td.active.highlighted.disabled:focus,.datepicker table tr td.active.highlighted.disabled:hover,.datepicker table tr td.active.highlighted[disabled].focus,.datepicker table tr td.active.highlighted[disabled]:focus,.datepicker table tr td.active.highlighted[disabled]:hover,.datepicker table tr td.active[disabled].focus,.datepicker table tr td.active[disabled]:focus,.datepicker table tr td.active[disabled]:hover,fieldset[disabled] .datepicker table tr td.active.focus,fieldset[disabled] .datepicker table tr td.active.highlighted.focus,fieldset[disabled] .datepicker table tr td.active.highlighted:focus,fieldset[disabled] .datepicker table tr td.active.highlighted:hover,fieldset[disabled] .datepicker table tr td.active:focus,fieldset[disabled] .datepicker table tr td.active:hover{background-color:#337ab7;border-color:#2e6da4}.datepicker table tr td span{display:block;width:23%;height:54px;line-height:54px;float:left;margin:1%;cursor:pointer;border-radius:4px}.datepicker table tr td span.focused,.datepicker table tr td span:hover{background:#eee}.datepicker table tr td span.disabled,.datepicker table tr td span.disabled:hover{background:0 0;color:#777;cursor:default}.datepicker table tr td span.active,.datepicker table tr td span.active.disabled,.datepicker table tr td span.active.disabled:hover,.datepicker table tr td span.active:hover{color:#fff;background-color:#337ab7;border-color:#2e6da4;text-shadow:0 -1px 0 rgba(0,0,0,.25)}.datepicker table tr td span.active.disabled.focus,.datepicker table tr td span.active.disabled:focus,.datepicker table tr td span.active.disabled:hover.focus,.datepicker table tr td span.active.disabled:hover:focus,.datepicker table tr td span.active.focus,.datepicker table tr td span.active:focus,.datepicker table tr td span.active:hover.focus,.datepicker table tr td span.active:hover:focus{color:#fff;background-color:#286090;border-color:#122b40}.datepicker table tr td span.active.disabled:hover,.datepicker table tr td span.active.disabled:hover:hover,.datepicker table tr td span.active:hover,.datepicker table tr td span.active:hover:hover{color:#fff;background-color:#286090;border-color:#204d74}.datepicker table tr td span.active.active,.datepicker table tr td span.active.disabled.active,.datepicker table tr td span.active.disabled:active,.datepicker table tr td span.active.disabled:hover.active,.datepicker table tr td span.active.disabled:hover:active,.datepicker table tr td span.active:active,.datepicker table tr td span.active:hover.active,.datepicker table tr td span.active:hover:active{color:#fff;background-color:#286090;border-color:#204d74}.datepicker table tr td span.active.active.focus,.datepicker table tr td span.active.active:focus,.datepicker table tr td span.active.active:hover,.datepicker table tr td span.active.disabled.active.focus,.datepicker table tr td span.active.disabled.active:focus,.datepicker table tr td span.active.disabled.active:hover,.datepicker table tr td span.active.disabled:active.focus,.datepicker table tr td span.active.disabled:active:focus,.datepicker table tr td span.active.disabled:active:hover,.datepicker table tr td span.active.disabled:hover.active.focus,.datepicker table tr td span.active.disabled:hover.active:focus,.datepicker table tr td span.active.disabled:hover.active:hover,.datepicker table tr td span.active.disabled:hover:active.focus,.datepicker table tr td span.active.disabled:hover:active:focus,.datepicker table tr td span.active.disabled:hover:active:hover,.datepicker table tr td span.active:active.focus,.datepicker table tr td span.active:active:focus,.datepicker table tr td span.active:active:hover,.datepicker table tr td span.active:hover.active.focus,.datepicker table tr td span.active:hover.active:focus,.datepicker table tr td span.active:hover.active:hover,.datepicker table tr td span.active:hover:active.focus,.datepicker table tr td span.active:hover:active:focus,.datepicker table tr td span.active:hover:active:hover{color:#fff;background-color:#204d74;border-color:#122b40}.datepicker table tr td span.active.disabled.disabled.focus,.datepicker table tr td span.active.disabled.disabled:focus,.datepicker table tr td span.active.disabled.disabled:hover,.datepicker table tr td span.active.disabled.focus,.datepicker table tr td span.active.disabled:focus,.datepicker table tr td span.active.disabled:hover,.datepicker table tr td span.active.disabled:hover.disabled.focus,.datepicker table tr td span.active.disabled:hover.disabled:focus,.datepicker table tr td span.active.disabled:hover.disabled:hover,.datepicker table tr td span.active.disabled:hover[disabled].focus,.datepicker table tr td span.active.disabled:hover[disabled]:focus,.datepicker table tr td span.active.disabled:hover[disabled]:hover,.datepicker table tr td span.active.disabled[disabled].focus,.datepicker table tr td span.active.disabled[disabled]:focus,.datepicker table tr td span.active.disabled[disabled]:hover,.datepicker table tr td span.active:hover.disabled.focus,.datepicker table tr td span.active:hover.disabled:focus,.datepicker table tr td span.active:hover.disabled:hover,.datepicker table tr td span.active:hover[disabled].focus,.datepicker table tr td span.active:hover[disabled]:focus,.datepicker table tr td span.active:hover[disabled]:hover,.datepicker table tr td span.active[disabled].focus,.datepicker table tr td span.active[disabled]:focus,.datepicker table tr td span.active[disabled]:hover,fieldset[disabled] .datepicker table tr td span.active.disabled.focus,fieldset[disabled] .datepicker table tr td span.active.disabled:focus,fieldset[disabled] .datepicker table tr td span.active.disabled:hover,fieldset[disabled] .datepicker table tr td span.active.disabled:hover.focus,fieldset[disabled] .datepicker table tr td span.active.disabled:hover:focus,fieldset[disabled] .datepicker table tr td span.active.disabled:hover:hover,fieldset[disabled] .datepicker table tr td span.active.focus,fieldset[disabled] .datepicker table tr td span.active:focus,fieldset[disabled] .datepicker table tr td span.active:hover,fieldset[disabled] .datepicker table tr td span.active:hover.focus,fieldset[disabled] .datepicker table tr td span.active:hover:focus,fieldset[disabled] .datepicker table tr td span.active:hover:hover{background-color:#337ab7;border-color:#2e6da4}.datepicker table tr td span.new,.datepicker table tr td span.old{color:#777}.datepicker .datepicker-switch{width:145px}.datepicker .datepicker-switch,.datepicker .next,.datepicker .prev,.datepicker tfoot tr th{cursor:pointer}.datepicker .datepicker-switch:hover,.datepicker .next:hover,.datepicker .prev:hover,.datepicker tfoot tr th:hover{background:#eee}.datepicker .next.disabled,.datepicker .prev.disabled{visibility:hidden}.datepicker .cw{font-size:10px;width:12px;padding:0 2px 0 5px;vertical-align:middle}.input-group.date .input-group-addon{cursor:pointer}.input-daterange{width:100%}.input-daterange input{text-align:center}.input-daterange input:first-child{border-radius:3px 0 0 3px}.input-daterange input:last-child{border-radius:0 3px 3px 0}.input-daterange .input-group-addon{width:auto;min-width:16px;padding:4px 5px;line-height:1.42857143;text-shadow:0 1px 0 #fff;border-width:1px 0;margin-left:-5px;margin-right:-5px} \ No newline at end of file diff --git a/admin/bower_components/bootstrap-datepicker/dist/css/bootstrap-datepicker3.standalone.css b/admin/bower_components/bootstrap-datepicker/dist/css/bootstrap-datepicker3.standalone.css deleted file mode 100644 index f059f4a..0000000 --- a/admin/bower_components/bootstrap-datepicker/dist/css/bootstrap-datepicker3.standalone.css +++ /dev/null @@ -1,713 +0,0 @@ -/*! - * Datepicker for Bootstrap v1.7.1 (https://github.com/uxsolutions/bootstrap-datepicker) - * - * Licensed under the Apache License v2.0 (http://www.apache.org/licenses/LICENSE-2.0) - */ - -.datepicker { - border-radius: 4px; - direction: ltr; -} -.datepicker-inline { - width: 220px; -} -.datepicker-rtl { - direction: rtl; -} -.datepicker-rtl.dropdown-menu { - left: auto; -} -.datepicker-rtl table tr td span { - float: right; -} -.datepicker-dropdown { - top: 0; - left: 0; - padding: 4px; -} -.datepicker-dropdown:before { - content: ''; - display: inline-block; - border-left: 7px solid transparent; - border-right: 7px solid transparent; - border-bottom: 7px solid rgba(0, 0, 0, 0.15); - border-top: 0; - border-bottom-color: rgba(0, 0, 0, 0.2); - position: absolute; -} -.datepicker-dropdown:after { - content: ''; - display: inline-block; - border-left: 6px solid transparent; - border-right: 6px solid transparent; - border-bottom: 6px solid #fff; - border-top: 0; - position: absolute; -} -.datepicker-dropdown.datepicker-orient-left:before { - left: 6px; -} -.datepicker-dropdown.datepicker-orient-left:after { - left: 7px; -} -.datepicker-dropdown.datepicker-orient-right:before { - right: 6px; -} -.datepicker-dropdown.datepicker-orient-right:after { - right: 7px; -} -.datepicker-dropdown.datepicker-orient-bottom:before { - top: -7px; -} -.datepicker-dropdown.datepicker-orient-bottom:after { - top: -6px; -} -.datepicker-dropdown.datepicker-orient-top:before { - bottom: -7px; - border-bottom: 0; - border-top: 7px solid rgba(0, 0, 0, 0.15); -} -.datepicker-dropdown.datepicker-orient-top:after { - bottom: -6px; - border-bottom: 0; - border-top: 6px solid #fff; -} -.datepicker table { - margin: 0; - -webkit-touch-callout: none; - -webkit-user-select: none; - -khtml-user-select: none; - -moz-user-select: none; - -ms-user-select: none; - user-select: none; -} -.datepicker table tr td, -.datepicker table tr th { - text-align: center; - width: 30px; - height: 30px; - border-radius: 4px; - border: none; -} -.table-striped .datepicker table tr td, -.table-striped .datepicker table tr th { - background-color: transparent; -} -.datepicker table tr td.old, -.datepicker table tr td.new { - color: #777777; -} -.datepicker table tr td.day:hover, -.datepicker table tr td.focused { - background: #eeeeee; - cursor: pointer; -} -.datepicker table tr td.disabled, -.datepicker table tr td.disabled:hover { - background: none; - color: #777777; - cursor: default; -} -.datepicker table tr td.highlighted { - color: #000; - background-color: #d9edf7; - border-color: #85c5e5; - border-radius: 0; -} -.datepicker table tr td.highlighted:focus, -.datepicker table tr td.highlighted.focus { - color: #000; - background-color: #afd9ee; - border-color: #298fc2; -} -.datepicker table tr td.highlighted:hover { - color: #000; - background-color: #afd9ee; - border-color: #52addb; -} -.datepicker table tr td.highlighted:active, -.datepicker table tr td.highlighted.active { - color: #000; - background-color: #afd9ee; - border-color: #52addb; -} -.datepicker table tr td.highlighted:active:hover, -.datepicker table tr td.highlighted.active:hover, -.datepicker table tr td.highlighted:active:focus, -.datepicker table tr td.highlighted.active:focus, -.datepicker table tr td.highlighted:active.focus, -.datepicker table tr td.highlighted.active.focus { - color: #000; - background-color: #91cbe8; - border-color: #298fc2; -} -.datepicker table tr td.highlighted.disabled:hover, -.datepicker table tr td.highlighted[disabled]:hover, -fieldset[disabled] .datepicker table tr td.highlighted:hover, -.datepicker table tr td.highlighted.disabled:focus, -.datepicker table tr td.highlighted[disabled]:focus, -fieldset[disabled] .datepicker table tr td.highlighted:focus, -.datepicker table tr td.highlighted.disabled.focus, -.datepicker table tr td.highlighted[disabled].focus, -fieldset[disabled] .datepicker table tr td.highlighted.focus { - background-color: #d9edf7; - border-color: #85c5e5; -} -.datepicker table tr td.highlighted.focused { - background: #afd9ee; -} -.datepicker table tr td.highlighted.disabled, -.datepicker table tr td.highlighted.disabled:active { - background: #d9edf7; - color: #777777; -} -.datepicker table tr td.today { - color: #000; - background-color: #ffdb99; - border-color: #ffb733; -} -.datepicker table tr td.today:focus, -.datepicker table tr td.today.focus { - color: #000; - background-color: #ffc966; - border-color: #b37400; -} -.datepicker table tr td.today:hover { - color: #000; - background-color: #ffc966; - border-color: #f59e00; -} -.datepicker table tr td.today:active, -.datepicker table tr td.today.active { - color: #000; - background-color: #ffc966; - border-color: #f59e00; -} -.datepicker table tr td.today:active:hover, -.datepicker table tr td.today.active:hover, -.datepicker table tr td.today:active:focus, -.datepicker table tr td.today.active:focus, -.datepicker table tr td.today:active.focus, -.datepicker table tr td.today.active.focus { - color: #000; - background-color: #ffbc42; - border-color: #b37400; -} -.datepicker table tr td.today.disabled:hover, -.datepicker table tr td.today[disabled]:hover, -fieldset[disabled] .datepicker table tr td.today:hover, -.datepicker table tr td.today.disabled:focus, -.datepicker table tr td.today[disabled]:focus, -fieldset[disabled] .datepicker table tr td.today:focus, -.datepicker table tr td.today.disabled.focus, -.datepicker table tr td.today[disabled].focus, -fieldset[disabled] .datepicker table tr td.today.focus { - background-color: #ffdb99; - border-color: #ffb733; -} -.datepicker table tr td.today.focused { - background: #ffc966; -} -.datepicker table tr td.today.disabled, -.datepicker table tr td.today.disabled:active { - background: #ffdb99; - color: #777777; -} -.datepicker table tr td.range { - color: #000; - background-color: #eeeeee; - border-color: #bbbbbb; - border-radius: 0; -} -.datepicker table tr td.range:focus, -.datepicker table tr td.range.focus { - color: #000; - background-color: #d5d5d5; - border-color: #7c7c7c; -} -.datepicker table tr td.range:hover { - color: #000; - background-color: #d5d5d5; - border-color: #9d9d9d; -} -.datepicker table tr td.range:active, -.datepicker table tr td.range.active { - color: #000; - background-color: #d5d5d5; - border-color: #9d9d9d; -} -.datepicker table tr td.range:active:hover, -.datepicker table tr td.range.active:hover, -.datepicker table tr td.range:active:focus, -.datepicker table tr td.range.active:focus, -.datepicker table tr td.range:active.focus, -.datepicker table tr td.range.active.focus { - color: #000; - background-color: #c3c3c3; - border-color: #7c7c7c; -} -.datepicker table tr td.range.disabled:hover, -.datepicker table tr td.range[disabled]:hover, -fieldset[disabled] .datepicker table tr td.range:hover, -.datepicker table tr td.range.disabled:focus, -.datepicker table tr td.range[disabled]:focus, -fieldset[disabled] .datepicker table tr td.range:focus, -.datepicker table tr td.range.disabled.focus, -.datepicker table tr td.range[disabled].focus, -fieldset[disabled] .datepicker table tr td.range.focus { - background-color: #eeeeee; - border-color: #bbbbbb; -} -.datepicker table tr td.range.focused { - background: #d5d5d5; -} -.datepicker table tr td.range.disabled, -.datepicker table tr td.range.disabled:active { - background: #eeeeee; - color: #777777; -} -.datepicker table tr td.range.highlighted { - color: #000; - background-color: #e4eef3; - border-color: #9dc1d3; -} -.datepicker table tr td.range.highlighted:focus, -.datepicker table tr td.range.highlighted.focus { - color: #000; - background-color: #c1d7e3; - border-color: #4b88a6; -} -.datepicker table tr td.range.highlighted:hover { - color: #000; - background-color: #c1d7e3; - border-color: #73a6c0; -} -.datepicker table tr td.range.highlighted:active, -.datepicker table tr td.range.highlighted.active { - color: #000; - background-color: #c1d7e3; - border-color: #73a6c0; -} -.datepicker table tr td.range.highlighted:active:hover, -.datepicker table tr td.range.highlighted.active:hover, -.datepicker table tr td.range.highlighted:active:focus, -.datepicker table tr td.range.highlighted.active:focus, -.datepicker table tr td.range.highlighted:active.focus, -.datepicker table tr td.range.highlighted.active.focus { - color: #000; - background-color: #a8c8d8; - border-color: #4b88a6; -} -.datepicker table tr td.range.highlighted.disabled:hover, -.datepicker table tr td.range.highlighted[disabled]:hover, -fieldset[disabled] .datepicker table tr td.range.highlighted:hover, -.datepicker table tr td.range.highlighted.disabled:focus, -.datepicker table tr td.range.highlighted[disabled]:focus, -fieldset[disabled] .datepicker table tr td.range.highlighted:focus, -.datepicker table tr td.range.highlighted.disabled.focus, -.datepicker table tr td.range.highlighted[disabled].focus, -fieldset[disabled] .datepicker table tr td.range.highlighted.focus { - background-color: #e4eef3; - border-color: #9dc1d3; -} -.datepicker table tr td.range.highlighted.focused { - background: #c1d7e3; -} -.datepicker table tr td.range.highlighted.disabled, -.datepicker table tr td.range.highlighted.disabled:active { - background: #e4eef3; - color: #777777; -} -.datepicker table tr td.range.today { - color: #000; - background-color: #f7ca77; - border-color: #f1a417; -} -.datepicker table tr td.range.today:focus, -.datepicker table tr td.range.today.focus { - color: #000; - background-color: #f4b747; - border-color: #815608; -} -.datepicker table tr td.range.today:hover { - color: #000; - background-color: #f4b747; - border-color: #bf800c; -} -.datepicker table tr td.range.today:active, -.datepicker table tr td.range.today.active { - color: #000; - background-color: #f4b747; - border-color: #bf800c; -} -.datepicker table tr td.range.today:active:hover, -.datepicker table tr td.range.today.active:hover, -.datepicker table tr td.range.today:active:focus, -.datepicker table tr td.range.today.active:focus, -.datepicker table tr td.range.today:active.focus, -.datepicker table tr td.range.today.active.focus { - color: #000; - background-color: #f2aa25; - border-color: #815608; -} -.datepicker table tr td.range.today.disabled:hover, -.datepicker table tr td.range.today[disabled]:hover, -fieldset[disabled] .datepicker table tr td.range.today:hover, -.datepicker table tr td.range.today.disabled:focus, -.datepicker table tr td.range.today[disabled]:focus, -fieldset[disabled] .datepicker table tr td.range.today:focus, -.datepicker table tr td.range.today.disabled.focus, -.datepicker table tr td.range.today[disabled].focus, -fieldset[disabled] .datepicker table tr td.range.today.focus { - background-color: #f7ca77; - border-color: #f1a417; -} -.datepicker table tr td.range.today.disabled, -.datepicker table tr td.range.today.disabled:active { - background: #f7ca77; - color: #777777; -} -.datepicker table tr td.selected, -.datepicker table tr td.selected.highlighted { - color: #fff; - background-color: #777777; - border-color: #555555; - text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25); -} -.datepicker table tr td.selected:focus, -.datepicker table tr td.selected.highlighted:focus, -.datepicker table tr td.selected.focus, -.datepicker table tr td.selected.highlighted.focus { - color: #fff; - background-color: #5e5e5e; - border-color: #161616; -} -.datepicker table tr td.selected:hover, -.datepicker table tr td.selected.highlighted:hover { - color: #fff; - background-color: #5e5e5e; - border-color: #373737; -} -.datepicker table tr td.selected:active, -.datepicker table tr td.selected.highlighted:active, -.datepicker table tr td.selected.active, -.datepicker table tr td.selected.highlighted.active { - color: #fff; - background-color: #5e5e5e; - border-color: #373737; -} -.datepicker table tr td.selected:active:hover, -.datepicker table tr td.selected.highlighted:active:hover, -.datepicker table tr td.selected.active:hover, -.datepicker table tr td.selected.highlighted.active:hover, -.datepicker table tr td.selected:active:focus, -.datepicker table tr td.selected.highlighted:active:focus, -.datepicker table tr td.selected.active:focus, -.datepicker table tr td.selected.highlighted.active:focus, -.datepicker table tr td.selected:active.focus, -.datepicker table tr td.selected.highlighted:active.focus, -.datepicker table tr td.selected.active.focus, -.datepicker table tr td.selected.highlighted.active.focus { - color: #fff; - background-color: #4c4c4c; - border-color: #161616; -} -.datepicker table tr td.selected.disabled:hover, -.datepicker table tr td.selected.highlighted.disabled:hover, -.datepicker table tr td.selected[disabled]:hover, -.datepicker table tr td.selected.highlighted[disabled]:hover, -fieldset[disabled] .datepicker table tr td.selected:hover, -fieldset[disabled] .datepicker table tr td.selected.highlighted:hover, -.datepicker table tr td.selected.disabled:focus, -.datepicker table tr td.selected.highlighted.disabled:focus, -.datepicker table tr td.selected[disabled]:focus, -.datepicker table tr td.selected.highlighted[disabled]:focus, -fieldset[disabled] .datepicker table tr td.selected:focus, -fieldset[disabled] .datepicker table tr td.selected.highlighted:focus, -.datepicker table tr td.selected.disabled.focus, -.datepicker table tr td.selected.highlighted.disabled.focus, -.datepicker table tr td.selected[disabled].focus, -.datepicker table tr td.selected.highlighted[disabled].focus, -fieldset[disabled] .datepicker table tr td.selected.focus, -fieldset[disabled] .datepicker table tr td.selected.highlighted.focus { - background-color: #777777; - border-color: #555555; -} -.datepicker table tr td.active, -.datepicker table tr td.active.highlighted { - color: #fff; - background-color: #337ab7; - border-color: #2e6da4; - text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25); -} -.datepicker table tr td.active:focus, -.datepicker table tr td.active.highlighted:focus, -.datepicker table tr td.active.focus, -.datepicker table tr td.active.highlighted.focus { - color: #fff; - background-color: #286090; - border-color: #122b40; -} -.datepicker table tr td.active:hover, -.datepicker table tr td.active.highlighted:hover { - color: #fff; - background-color: #286090; - border-color: #204d74; -} -.datepicker table tr td.active:active, -.datepicker table tr td.active.highlighted:active, -.datepicker table tr td.active.active, -.datepicker table tr td.active.highlighted.active { - color: #fff; - background-color: #286090; - border-color: #204d74; -} -.datepicker table tr td.active:active:hover, -.datepicker table tr td.active.highlighted:active:hover, -.datepicker table tr td.active.active:hover, -.datepicker table tr td.active.highlighted.active:hover, -.datepicker table tr td.active:active:focus, -.datepicker table tr td.active.highlighted:active:focus, -.datepicker table tr td.active.active:focus, -.datepicker table tr td.active.highlighted.active:focus, -.datepicker table tr td.active:active.focus, -.datepicker table tr td.active.highlighted:active.focus, -.datepicker table tr td.active.active.focus, -.datepicker table tr td.active.highlighted.active.focus { - color: #fff; - background-color: #204d74; - border-color: #122b40; -} -.datepicker table tr td.active.disabled:hover, -.datepicker table tr td.active.highlighted.disabled:hover, -.datepicker table tr td.active[disabled]:hover, -.datepicker table tr td.active.highlighted[disabled]:hover, -fieldset[disabled] .datepicker table tr td.active:hover, -fieldset[disabled] .datepicker table tr td.active.highlighted:hover, -.datepicker table tr td.active.disabled:focus, -.datepicker table tr td.active.highlighted.disabled:focus, -.datepicker table tr td.active[disabled]:focus, -.datepicker table tr td.active.highlighted[disabled]:focus, -fieldset[disabled] .datepicker table tr td.active:focus, -fieldset[disabled] .datepicker table tr td.active.highlighted:focus, -.datepicker table tr td.active.disabled.focus, -.datepicker table tr td.active.highlighted.disabled.focus, -.datepicker table tr td.active[disabled].focus, -.datepicker table tr td.active.highlighted[disabled].focus, -fieldset[disabled] .datepicker table tr td.active.focus, -fieldset[disabled] .datepicker table tr td.active.highlighted.focus { - background-color: #337ab7; - border-color: #2e6da4; -} -.datepicker table tr td span { - display: block; - width: 23%; - height: 54px; - line-height: 54px; - float: left; - margin: 1%; - cursor: pointer; - border-radius: 4px; -} -.datepicker table tr td span:hover, -.datepicker table tr td span.focused { - background: #eeeeee; -} -.datepicker table tr td span.disabled, -.datepicker table tr td span.disabled:hover { - background: none; - color: #777777; - cursor: default; -} -.datepicker table tr td span.active, -.datepicker table tr td span.active:hover, -.datepicker table tr td span.active.disabled, -.datepicker table tr td span.active.disabled:hover { - color: #fff; - background-color: #337ab7; - border-color: #2e6da4; - text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25); -} -.datepicker table tr td span.active:focus, -.datepicker table tr td span.active:hover:focus, -.datepicker table tr td span.active.disabled:focus, -.datepicker table tr td span.active.disabled:hover:focus, -.datepicker table tr td span.active.focus, -.datepicker table tr td span.active:hover.focus, -.datepicker table tr td span.active.disabled.focus, -.datepicker table tr td span.active.disabled:hover.focus { - color: #fff; - background-color: #286090; - border-color: #122b40; -} -.datepicker table tr td span.active:hover, -.datepicker table tr td span.active:hover:hover, -.datepicker table tr td span.active.disabled:hover, -.datepicker table tr td span.active.disabled:hover:hover { - color: #fff; - background-color: #286090; - border-color: #204d74; -} -.datepicker table tr td span.active:active, -.datepicker table tr td span.active:hover:active, -.datepicker table tr td span.active.disabled:active, -.datepicker table tr td span.active.disabled:hover:active, -.datepicker table tr td span.active.active, -.datepicker table tr td span.active:hover.active, -.datepicker table tr td span.active.disabled.active, -.datepicker table tr td span.active.disabled:hover.active { - color: #fff; - background-color: #286090; - border-color: #204d74; -} -.datepicker table tr td span.active:active:hover, -.datepicker table tr td span.active:hover:active:hover, -.datepicker table tr td span.active.disabled:active:hover, -.datepicker table tr td span.active.disabled:hover:active:hover, -.datepicker table tr td span.active.active:hover, -.datepicker table tr td span.active:hover.active:hover, -.datepicker table tr td span.active.disabled.active:hover, -.datepicker table tr td span.active.disabled:hover.active:hover, -.datepicker table tr td span.active:active:focus, -.datepicker table tr td span.active:hover:active:focus, -.datepicker table tr td span.active.disabled:active:focus, -.datepicker table tr td span.active.disabled:hover:active:focus, -.datepicker table tr td span.active.active:focus, -.datepicker table tr td span.active:hover.active:focus, -.datepicker table tr td span.active.disabled.active:focus, -.datepicker table tr td span.active.disabled:hover.active:focus, -.datepicker table tr td span.active:active.focus, -.datepicker table tr td span.active:hover:active.focus, -.datepicker table tr td span.active.disabled:active.focus, -.datepicker table tr td span.active.disabled:hover:active.focus, -.datepicker table tr td span.active.active.focus, -.datepicker table tr td span.active:hover.active.focus, -.datepicker table tr td span.active.disabled.active.focus, -.datepicker table tr td span.active.disabled:hover.active.focus { - color: #fff; - background-color: #204d74; - border-color: #122b40; -} -.datepicker table tr td span.active.disabled:hover, -.datepicker table tr td span.active:hover.disabled:hover, -.datepicker table tr td span.active.disabled.disabled:hover, -.datepicker table tr td span.active.disabled:hover.disabled:hover, -.datepicker table tr td span.active[disabled]:hover, -.datepicker table tr td span.active:hover[disabled]:hover, -.datepicker table tr td span.active.disabled[disabled]:hover, -.datepicker table tr td span.active.disabled:hover[disabled]:hover, -fieldset[disabled] .datepicker table tr td span.active:hover, -fieldset[disabled] .datepicker table tr td span.active:hover:hover, -fieldset[disabled] .datepicker table tr td span.active.disabled:hover, -fieldset[disabled] .datepicker table tr td span.active.disabled:hover:hover, -.datepicker table tr td span.active.disabled:focus, -.datepicker table tr td span.active:hover.disabled:focus, -.datepicker table tr td span.active.disabled.disabled:focus, -.datepicker table tr td span.active.disabled:hover.disabled:focus, -.datepicker table tr td span.active[disabled]:focus, -.datepicker table tr td span.active:hover[disabled]:focus, -.datepicker table tr td span.active.disabled[disabled]:focus, -.datepicker table tr td span.active.disabled:hover[disabled]:focus, -fieldset[disabled] .datepicker table tr td span.active:focus, -fieldset[disabled] .datepicker table tr td span.active:hover:focus, -fieldset[disabled] .datepicker table tr td span.active.disabled:focus, -fieldset[disabled] .datepicker table tr td span.active.disabled:hover:focus, -.datepicker table tr td span.active.disabled.focus, -.datepicker table tr td span.active:hover.disabled.focus, -.datepicker table tr td span.active.disabled.disabled.focus, -.datepicker table tr td span.active.disabled:hover.disabled.focus, -.datepicker table tr td span.active[disabled].focus, -.datepicker table tr td span.active:hover[disabled].focus, -.datepicker table tr td span.active.disabled[disabled].focus, -.datepicker table tr td span.active.disabled:hover[disabled].focus, -fieldset[disabled] .datepicker table tr td span.active.focus, -fieldset[disabled] .datepicker table tr td span.active:hover.focus, -fieldset[disabled] .datepicker table tr td span.active.disabled.focus, -fieldset[disabled] .datepicker table tr td span.active.disabled:hover.focus { - background-color: #337ab7; - border-color: #2e6da4; -} -.datepicker table tr td span.old, -.datepicker table tr td span.new { - color: #777777; -} -.datepicker .datepicker-switch { - width: 145px; -} -.datepicker .datepicker-switch, -.datepicker .prev, -.datepicker .next, -.datepicker tfoot tr th { - cursor: pointer; -} -.datepicker .datepicker-switch:hover, -.datepicker .prev:hover, -.datepicker .next:hover, -.datepicker tfoot tr th:hover { - background: #eeeeee; -} -.datepicker .prev.disabled, -.datepicker .next.disabled { - visibility: hidden; -} -.datepicker .cw { - font-size: 10px; - width: 12px; - padding: 0 2px 0 5px; - vertical-align: middle; -} -.input-group.date .input-group-addon { - cursor: pointer; -} -.input-daterange { - width: 100%; -} -.input-daterange input { - text-align: center; -} -.input-daterange input:first-child { - border-radius: 3px 0 0 3px; -} -.input-daterange input:last-child { - border-radius: 0 3px 3px 0; -} -.input-daterange .input-group-addon { - width: auto; - min-width: 16px; - padding: 4px 5px; - line-height: 1.42857143; - text-shadow: 0 1px 0 #fff; - border-width: 1px 0; - margin-left: -5px; - margin-right: -5px; -} -.datepicker.dropdown-menu { - position: absolute; - top: 100%; - left: 0; - z-index: 1000; - display: none; - float: left; - min-width: 160px; - list-style: none; - background-color: #fff; - border: 1px solid #ccc; - border: 1px solid rgba(0, 0, 0, 0.15); - border-radius: 4px; - -webkit-box-shadow: 0 6px 12px rgba(0, 0, 0, 0.175); - -moz-box-shadow: 0 6px 12px rgba(0, 0, 0, 0.175); - box-shadow: 0 6px 12px rgba(0, 0, 0, 0.175); - -webkit-background-clip: padding-box; - -moz-background-clip: padding; - background-clip: padding-box; - color: #333333; - font-size: 13px; - line-height: 1.42857143; -} -.datepicker.dropdown-menu th, -.datepicker.datepicker-inline th, -.datepicker.dropdown-menu td, -.datepicker.datepicker-inline td { - padding: 0px 5px; -} -/*# sourceMappingURL=bootstrap-datepicker3.standalone.css.map */ \ No newline at end of file diff --git a/admin/bower_components/bootstrap-datepicker/dist/css/bootstrap-datepicker3.standalone.css.map b/admin/bower_components/bootstrap-datepicker/dist/css/bootstrap-datepicker3.standalone.css.map deleted file mode 100644 index c695301..0000000 --- a/admin/bower_components/bootstrap-datepicker/dist/css/bootstrap-datepicker3.standalone.css.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sources":["less/datepicker3.less","build/build3.less","build/build_standalone3.less"],"names":[],"mappings":"AAAA;EACC,kBAAA;EAIA,cAAA;;AAHA,WAAC;EACA,YAAA;;AAGD,WAAC;EACA,cAAA;;AACA,WAFA,IAEC;EAAiB,UAAA;;AAFnB,WAAC,IAGA,MAAM,GAAG,GAAG;EACX,YAAA;;AAGF,WAAC;EACA,MAAA;EACA,OAAA;EACA,YAAA;;AACA,WAJA,SAIC;EACA,SAAS,EAAT;EACA,qBAAA;EACA,kCAAA;EACA,mCAAA;EACA,4CAAA;EACA,aAAA;EACA,uCAAA;EACA,kBAAA;;AAED,WAdA,SAcC;EACA,SAAS,EAAT;EACA,qBAAA;EACA,kCAAA;EACA,mCAAA;EACA,6BAAA;EACA,aAAA;EACA,kBAAA;;AAED,WAvBA,SAuBC,uBAAuB;EAAY,SAAA;;AACpC,WAxBA,SAwBC,uBAAuB;EAAY,SAAA;;AACpC,WAzBA,SAyBC,wBAAwB;EAAW,UAAA;;AACpC,WA1BA,SA0BC,wBAAwB;EAAW,UAAA;;AACpC,WA3BA,SA2BC,yBAAyB;EAAU,SAAA;;AACpC,WA5BA,SA4BC,yBAAyB;EAAU,SAAA;;AACpC,WA7BA,SA6BC,sBAAsB;EACtB,YAAA;EACA,gBAAA;EACA,yCAAA;;AAED,WAlCA,SAkCC,sBAAsB;EACtB,YAAA;EACA,gBAAA;EACA,0BAAA;;AAlDH,WAqDC;EACC,SAAA;EACA,2BAAA;EACA,yBAAA;EACA,wBAAA;EACA,sBAAA;EACA,qBAAA;EACA,iBAAA;;AA5DF,WAqDC,MAQC,GACC;AA9DH,WAqDC,MAQC,GACK;EACH,kBAAA;EACA,WAAA;EACA,YAAA;EACA,kBAAA;EACA,YAAA;;AAMH,cAAe,YAAE,MAAM,GACtB;AADD,cAAe,YAAE,MAAM,GAClB;EACH,6BAAA;;AAID,WADD,MAAM,GAAG,GACP;AACD,WAFD,MAAM,GAAG,GAEP;EACA,cAAA;;AAED,WALD,MAAM,GAAG,GAKP,IAAI;AACL,WAND,MAAM,GAAG,GAMP;EACA,mBAAA;EACA,eAAA;;AAED,WAVD,MAAM,GAAG,GAUP;AACD,WAXD,MAAM,GAAG,GAWP,SAAS;EACT,gBAAA;EACA,cAAA;EACA,eAAA;;AAED,WAhBD,MAAM,GAAG,GAgBP;EC5DD,WAAA;EACA,yBAAA;EACA,qBAAA;ED6DC,gBAAA;;AC3DD,WDwCD,MAAM,GAAG,GAgBP,YCxDA;AACD,WDuCD,MAAM,GAAG,GAgBP,YCvDA;EACC,WAAA;EACA,yBAAA;EACI,qBAAA;;AAEN,WDkCD,MAAM,GAAG,GAgBP,YClDA;EACC,WAAA;EACA,yBAAA;EACI,qBAAA;;AAEN,WD6BD,MAAM,GAAG,GAgBP,YC7CA;AACD,WD4BD,MAAM,GAAG,GAgBP,YC5CA;EACC,WAAA;EACA,yBAAA;EACI,qBAAA;;AAEJ,WDuBH,MAAM,GAAG,GAgBP,YC7CA,OAME;AAAD,WDuBH,MAAM,GAAG,GAgBP,YC5CA,OAKE;AACD,WDsBH,MAAM,GAAG,GAgBP,YC7CA,OAOE;AAAD,WDsBH,MAAM,GAAG,GAgBP,YC5CA,OAME;AACD,WDqBH,MAAM,GAAG,GAgBP,YC7CA,OAQE;AAAD,WDqBH,MAAM,GAAG,GAgBP,YC5CA,OAOE;EACC,WAAA;EACA,yBAAA;EACI,qBAAA;;AAMN,WDYH,MAAM,GAAG,GAgBP,YC/BA,SAGE;AAAD,WDYH,MAAM,GAAG,GAgBP,YC9BA,UAEE;AAAD,QADM,UAAW,YDapB,MAAM,GAAG,GAgBP,YC5BE;AACD,WDWH,MAAM,GAAG,GAgBP,YC/BA,SAIE;AAAD,WDWH,MAAM,GAAG,GAgBP,YC9BA,UAGE;AAAD,QAFM,UAAW,YDapB,MAAM,GAAG,GAgBP,YC3BE;AACD,WDUH,MAAM,GAAG,GAgBP,YC/BA,SAKE;AAAD,WDUH,MAAM,GAAG,GAgBP,YC9BA,UAIE;AAAD,QAHM,UAAW,YDapB,MAAM,GAAG,GAgBP,YC1BE;EACC,yBAAA;EACI,qBAAA;;AD6BP,WArBF,MAAM,GAAG,GAgBP,YAKC;EACA,mBAAA;;AAGD,WAzBF,MAAM,GAAG,GAgBP,YASC;AACD,WA1BF,MAAM,GAAG,GAgBP,YAUC,SAAS;EACT,mBAAA;EACA,cAAA;;AAGF,WA/BD,MAAM,GAAG,GA+BP;EC3ED,WAAA;EACA,yBAAA;EACA,qBAAA;;AAEA,WDwCD,MAAM,GAAG,GA+BP,MCvEA;AACD,WDuCD,MAAM,GAAG,GA+BP,MCtEA;EACC,WAAA;EACA,yBAAA;EACI,qBAAA;;AAEN,WDkCD,MAAM,GAAG,GA+BP,MCjEA;EACC,WAAA;EACA,yBAAA;EACI,qBAAA;;AAEN,WD6BD,MAAM,GAAG,GA+BP,MC5DA;AACD,WD4BD,MAAM,GAAG,GA+BP,MC3DA;EACC,WAAA;EACA,yBAAA;EACI,qBAAA;;AAEJ,WDuBH,MAAM,GAAG,GA+BP,MC5DA,OAME;AAAD,WDuBH,MAAM,GAAG,GA+BP,MC3DA,OAKE;AACD,WDsBH,MAAM,GAAG,GA+BP,MC5DA,OAOE;AAAD,WDsBH,MAAM,GAAG,GA+BP,MC3DA,OAME;AACD,WDqBH,MAAM,GAAG,GA+BP,MC5DA,OAQE;AAAD,WDqBH,MAAM,GAAG,GA+BP,MC3DA,OAOE;EACC,WAAA;EACA,yBAAA;EACI,qBAAA;;AAMN,WDYH,MAAM,GAAG,GA+BP,MC9CA,SAGE;AAAD,WDYH,MAAM,GAAG,GA+BP,MC7CA,UAEE;AAAD,QADM,UAAW,YDapB,MAAM,GAAG,GA+BP,MC3CE;AACD,WDWH,MAAM,GAAG,GA+BP,MC9CA,SAIE;AAAD,WDWH,MAAM,GAAG,GA+BP,MC7CA,UAGE;AAAD,QAFM,UAAW,YDapB,MAAM,GAAG,GA+BP,MC1CE;AACD,WDUH,MAAM,GAAG,GA+BP,MC9CA,SAKE;AAAD,WDUH,MAAM,GAAG,GA+BP,MC7CA,UAIE;AAAD,QAHM,UAAW,YDapB,MAAM,GAAG,GA+BP,MCzCE;EACC,yBAAA;EACI,qBAAA;;AD2CP,WAnCF,MAAM,GAAG,GA+BP,MAIC;EACA,mBAAA;;AAGD,WAvCF,MAAM,GAAG,GA+BP,MAQC;AACD,WAxCF,MAAM,GAAG,GA+BP,MASC,SAAS;EACT,mBAAA;EACA,cAAA;;AAGF,WA7CD,MAAM,GAAG,GA6CP;ECzFD,WAAA;EACA,yBAAA;EACA,qBAAA;ED0FC,gBAAA;;ACxFD,WDwCD,MAAM,GAAG,GA6CP,MCrFA;AACD,WDuCD,MAAM,GAAG,GA6CP,MCpFA;EACC,WAAA;EACA,yBAAA;EACI,qBAAA;;AAEN,WDkCD,MAAM,GAAG,GA6CP,MC/EA;EACC,WAAA;EACA,yBAAA;EACI,qBAAA;;AAEN,WD6BD,MAAM,GAAG,GA6CP,MC1EA;AACD,WD4BD,MAAM,GAAG,GA6CP,MCzEA;EACC,WAAA;EACA,yBAAA;EACI,qBAAA;;AAEJ,WDuBH,MAAM,GAAG,GA6CP,MC1EA,OAME;AAAD,WDuBH,MAAM,GAAG,GA6CP,MCzEA,OAKE;AACD,WDsBH,MAAM,GAAG,GA6CP,MC1EA,OAOE;AAAD,WDsBH,MAAM,GAAG,GA6CP,MCzEA,OAME;AACD,WDqBH,MAAM,GAAG,GA6CP,MC1EA,OAQE;AAAD,WDqBH,MAAM,GAAG,GA6CP,MCzEA,OAOE;EACC,WAAA;EACA,yBAAA;EACI,qBAAA;;AAMN,WDYH,MAAM,GAAG,GA6CP,MC5DA,SAGE;AAAD,WDYH,MAAM,GAAG,GA6CP,MC3DA,UAEE;AAAD,QADM,UAAW,YDapB,MAAM,GAAG,GA6CP,MCzDE;AACD,WDWH,MAAM,GAAG,GA6CP,MC5DA,SAIE;AAAD,WDWH,MAAM,GAAG,GA6CP,MC3DA,UAGE;AAAD,QAFM,UAAW,YDapB,MAAM,GAAG,GA6CP,MCxDE;AACD,WDUH,MAAM,GAAG,GA6CP,MC5DA,SAKE;AAAD,WDUH,MAAM,GAAG,GA6CP,MC3DA,UAIE;AAAD,QAHM,UAAW,YDapB,MAAM,GAAG,GA6CP,MCvDE;EACC,yBAAA;EACI,qBAAA;;AD0DP,WAlDF,MAAM,GAAG,GA6CP,MAKC;EACA,mBAAA;;AAGD,WAtDF,MAAM,GAAG,GA6CP,MASC;AACD,WAvDF,MAAM,GAAG,GA6CP,MAUC,SAAS;EACT,mBAAA;EACA,cAAA;;AAGF,WA5DD,MAAM,GAAG,GA4DP,MAAM;ECxGP,WAAA;EACA,yBAAA;EACA,qBAAA;;AAEA,WDwCD,MAAM,GAAG,GA4DP,MAAM,YCpGN;AACD,WDuCD,MAAM,GAAG,GA4DP,MAAM,YCnGN;EACC,WAAA;EACA,yBAAA;EACI,qBAAA;;AAEN,WDkCD,MAAM,GAAG,GA4DP,MAAM,YC9FN;EACC,WAAA;EACA,yBAAA;EACI,qBAAA;;AAEN,WD6BD,MAAM,GAAG,GA4DP,MAAM,YCzFN;AACD,WD4BD,MAAM,GAAG,GA4DP,MAAM,YCxFN;EACC,WAAA;EACA,yBAAA;EACI,qBAAA;;AAEJ,WDuBH,MAAM,GAAG,GA4DP,MAAM,YCzFN,OAME;AAAD,WDuBH,MAAM,GAAG,GA4DP,MAAM,YCxFN,OAKE;AACD,WDsBH,MAAM,GAAG,GA4DP,MAAM,YCzFN,OAOE;AAAD,WDsBH,MAAM,GAAG,GA4DP,MAAM,YCxFN,OAME;AACD,WDqBH,MAAM,GAAG,GA4DP,MAAM,YCzFN,OAQE;AAAD,WDqBH,MAAM,GAAG,GA4DP,MAAM,YCxFN,OAOE;EACC,WAAA;EACA,yBAAA;EACI,qBAAA;;AAMN,WDYH,MAAM,GAAG,GA4DP,MAAM,YC3EN,SAGE;AAAD,WDYH,MAAM,GAAG,GA4DP,MAAM,YC1EN,UAEE;AAAD,QADM,UAAW,YDapB,MAAM,GAAG,GA4DP,MAAM,YCxEJ;AACD,WDWH,MAAM,GAAG,GA4DP,MAAM,YC3EN,SAIE;AAAD,WDWH,MAAM,GAAG,GA4DP,MAAM,YC1EN,UAGE;AAAD,QAFM,UAAW,YDapB,MAAM,GAAG,GA4DP,MAAM,YCvEJ;AACD,WDUH,MAAM,GAAG,GA4DP,MAAM,YC3EN,SAKE;AAAD,WDUH,MAAM,GAAG,GA4DP,MAAM,YC1EN,UAIE;AAAD,QAHM,UAAW,YDapB,MAAM,GAAG,GA4DP,MAAM,YCtEJ;EACC,yBAAA;EACI,qBAAA;;ADwEP,WAhEF,MAAM,GAAG,GA4DP,MAAM,YAIL;EACA,mBAAA;;AAGD,WApEF,MAAM,GAAG,GA4DP,MAAM,YAQL;AACD,WArEF,MAAM,GAAG,GA4DP,MAAM,YASL,SAAS;EACT,mBAAA;EACA,cAAA;;AAGF,WA1ED,MAAM,GAAG,GA0EP,MAAM;ECtHP,WAAA;EACA,yBAAA;EACA,qBAAA;;AAEA,WDwCD,MAAM,GAAG,GA0EP,MAAM,MClHN;AACD,WDuCD,MAAM,GAAG,GA0EP,MAAM,MCjHN;EACC,WAAA;EACA,yBAAA;EACI,qBAAA;;AAEN,WDkCD,MAAM,GAAG,GA0EP,MAAM,MC5GN;EACC,WAAA;EACA,yBAAA;EACI,qBAAA;;AAEN,WD6BD,MAAM,GAAG,GA0EP,MAAM,MCvGN;AACD,WD4BD,MAAM,GAAG,GA0EP,MAAM,MCtGN;EACC,WAAA;EACA,yBAAA;EACI,qBAAA;;AAEJ,WDuBH,MAAM,GAAG,GA0EP,MAAM,MCvGN,OAME;AAAD,WDuBH,MAAM,GAAG,GA0EP,MAAM,MCtGN,OAKE;AACD,WDsBH,MAAM,GAAG,GA0EP,MAAM,MCvGN,OAOE;AAAD,WDsBH,MAAM,GAAG,GA0EP,MAAM,MCtGN,OAME;AACD,WDqBH,MAAM,GAAG,GA0EP,MAAM,MCvGN,OAQE;AAAD,WDqBH,MAAM,GAAG,GA0EP,MAAM,MCtGN,OAOE;EACC,WAAA;EACA,yBAAA;EACI,qBAAA;;AAMN,WDYH,MAAM,GAAG,GA0EP,MAAM,MCzFN,SAGE;AAAD,WDYH,MAAM,GAAG,GA0EP,MAAM,MCxFN,UAEE;AAAD,QADM,UAAW,YDapB,MAAM,GAAG,GA0EP,MAAM,MCtFJ;AACD,WDWH,MAAM,GAAG,GA0EP,MAAM,MCzFN,SAIE;AAAD,WDWH,MAAM,GAAG,GA0EP,MAAM,MCxFN,UAGE;AAAD,QAFM,UAAW,YDapB,MAAM,GAAG,GA0EP,MAAM,MCrFJ;AACD,WDUH,MAAM,GAAG,GA0EP,MAAM,MCzFN,SAKE;AAAD,WDUH,MAAM,GAAG,GA0EP,MAAM,MCxFN,UAIE;AAAD,QAHM,UAAW,YDapB,MAAM,GAAG,GA0EP,MAAM,MCpFJ;EACC,yBAAA;EACI,qBAAA;;ADsFP,WA9EF,MAAM,GAAG,GA0EP,MAAM,MAIL;AACD,WA/EF,MAAM,GAAG,GA0EP,MAAM,MAKL,SAAS;EACT,mBAAA;EACA,cAAA;;AAGF,WApFD,MAAM,GAAG,GAoFP;AACD,WArFD,MAAM,GAAG,GAqFP,SAAS;ECjIV,WAAA;EACA,yBAAA;EACA,qBAAA;EDiIC,yCAAA;;AC/HD,WDwCD,MAAM,GAAG,GAoFP,SC5HA;AAAD,WDwCD,MAAM,GAAG,GAqFP,SAAS,YC7HT;AACD,WDuCD,MAAM,GAAG,GAoFP,SC3HA;AAAD,WDuCD,MAAM,GAAG,GAqFP,SAAS,YC5HT;EACC,WAAA;EACA,yBAAA;EACI,qBAAA;;AAEN,WDkCD,MAAM,GAAG,GAoFP,SCtHA;AAAD,WDkCD,MAAM,GAAG,GAqFP,SAAS,YCvHT;EACC,WAAA;EACA,yBAAA;EACI,qBAAA;;AAEN,WD6BD,MAAM,GAAG,GAoFP,SCjHA;AAAD,WD6BD,MAAM,GAAG,GAqFP,SAAS,YClHT;AACD,WD4BD,MAAM,GAAG,GAoFP,SChHA;AAAD,WD4BD,MAAM,GAAG,GAqFP,SAAS,YCjHT;EACC,WAAA;EACA,yBAAA;EACI,qBAAA;;AAEJ,WDuBH,MAAM,GAAG,GAoFP,SCjHA,OAME;AAAD,WDuBH,MAAM,GAAG,GAqFP,SAAS,YClHT,OAME;AAAD,WDuBH,MAAM,GAAG,GAoFP,SChHA,OAKE;AAAD,WDuBH,MAAM,GAAG,GAqFP,SAAS,YCjHT,OAKE;AACD,WDsBH,MAAM,GAAG,GAoFP,SCjHA,OAOE;AAAD,WDsBH,MAAM,GAAG,GAqFP,SAAS,YClHT,OAOE;AAAD,WDsBH,MAAM,GAAG,GAoFP,SChHA,OAME;AAAD,WDsBH,MAAM,GAAG,GAqFP,SAAS,YCjHT,OAME;AACD,WDqBH,MAAM,GAAG,GAoFP,SCjHA,OAQE;AAAD,WDqBH,MAAM,GAAG,GAqFP,SAAS,YClHT,OAQE;AAAD,WDqBH,MAAM,GAAG,GAoFP,SChHA,OAOE;AAAD,WDqBH,MAAM,GAAG,GAqFP,SAAS,YCjHT,OAOE;EACC,WAAA;EACA,yBAAA;EACI,qBAAA;;AAMN,WDYH,MAAM,GAAG,GAoFP,SCnGA,SAGE;AAAD,WDYH,MAAM,GAAG,GAqFP,SAAS,YCpGT,SAGE;AAAD,WDYH,MAAM,GAAG,GAoFP,SClGA,UAEE;AAAD,WDYH,MAAM,GAAG,GAqFP,SAAS,YCnGT,UAEE;AAAD,QADM,UAAW,YDapB,MAAM,GAAG,GAoFP,SChGE;AAAD,QADM,UAAW,YDapB,MAAM,GAAG,GAqFP,SAAS,YCjGP;AACD,WDWH,MAAM,GAAG,GAoFP,SCnGA,SAIE;AAAD,WDWH,MAAM,GAAG,GAqFP,SAAS,YCpGT,SAIE;AAAD,WDWH,MAAM,GAAG,GAoFP,SClGA,UAGE;AAAD,WDWH,MAAM,GAAG,GAqFP,SAAS,YCnGT,UAGE;AAAD,QAFM,UAAW,YDapB,MAAM,GAAG,GAoFP,SC/FE;AAAD,QAFM,UAAW,YDapB,MAAM,GAAG,GAqFP,SAAS,YChGP;AACD,WDUH,MAAM,GAAG,GAoFP,SCnGA,SAKE;AAAD,WDUH,MAAM,GAAG,GAqFP,SAAS,YCpGT,SAKE;AAAD,WDUH,MAAM,GAAG,GAoFP,SClGA,UAIE;AAAD,WDUH,MAAM,GAAG,GAqFP,SAAS,YCnGT,UAIE;AAAD,QAHM,UAAW,YDapB,MAAM,GAAG,GAoFP,SC9FE;AAAD,QAHM,UAAW,YDapB,MAAM,GAAG,GAqFP,SAAS,YC/FP;EACC,yBAAA;EACI,qBAAA;;ADiGR,WAzFD,MAAM,GAAG,GAyFP;AACD,WA1FD,MAAM,GAAG,GA0FP,OAAO;ECtIR,WAAA;EACA,yBAAA;EACA,qBAAA;EDsIC,yCAAA;;ACpID,WDwCD,MAAM,GAAG,GAyFP,OCjIA;AAAD,WDwCD,MAAM,GAAG,GA0FP,OAAO,YClIP;AACD,WDuCD,MAAM,GAAG,GAyFP,OChIA;AAAD,WDuCD,MAAM,GAAG,GA0FP,OAAO,YCjIP;EACC,WAAA;EACA,yBAAA;EACI,qBAAA;;AAEN,WDkCD,MAAM,GAAG,GAyFP,OC3HA;AAAD,WDkCD,MAAM,GAAG,GA0FP,OAAO,YC5HP;EACC,WAAA;EACA,yBAAA;EACI,qBAAA;;AAEN,WD6BD,MAAM,GAAG,GAyFP,OCtHA;AAAD,WD6BD,MAAM,GAAG,GA0FP,OAAO,YCvHP;AACD,WD4BD,MAAM,GAAG,GAyFP,OCrHA;AAAD,WD4BD,MAAM,GAAG,GA0FP,OAAO,YCtHP;EACC,WAAA;EACA,yBAAA;EACI,qBAAA;;AAEJ,WDuBH,MAAM,GAAG,GAyFP,OCtHA,OAME;AAAD,WDuBH,MAAM,GAAG,GA0FP,OAAO,YCvHP,OAME;AAAD,WDuBH,MAAM,GAAG,GAyFP,OCrHA,OAKE;AAAD,WDuBH,MAAM,GAAG,GA0FP,OAAO,YCtHP,OAKE;AACD,WDsBH,MAAM,GAAG,GAyFP,OCtHA,OAOE;AAAD,WDsBH,MAAM,GAAG,GA0FP,OAAO,YCvHP,OAOE;AAAD,WDsBH,MAAM,GAAG,GAyFP,OCrHA,OAME;AAAD,WDsBH,MAAM,GAAG,GA0FP,OAAO,YCtHP,OAME;AACD,WDqBH,MAAM,GAAG,GAyFP,OCtHA,OAQE;AAAD,WDqBH,MAAM,GAAG,GA0FP,OAAO,YCvHP,OAQE;AAAD,WDqBH,MAAM,GAAG,GAyFP,OCrHA,OAOE;AAAD,WDqBH,MAAM,GAAG,GA0FP,OAAO,YCtHP,OAOE;EACC,WAAA;EACA,yBAAA;EACI,qBAAA;;AAMN,WDYH,MAAM,GAAG,GAyFP,OCxGA,SAGE;AAAD,WDYH,MAAM,GAAG,GA0FP,OAAO,YCzGP,SAGE;AAAD,WDYH,MAAM,GAAG,GAyFP,OCvGA,UAEE;AAAD,WDYH,MAAM,GAAG,GA0FP,OAAO,YCxGP,UAEE;AAAD,QADM,UAAW,YDapB,MAAM,GAAG,GAyFP,OCrGE;AAAD,QADM,UAAW,YDapB,MAAM,GAAG,GA0FP,OAAO,YCtGL;AACD,WDWH,MAAM,GAAG,GAyFP,OCxGA,SAIE;AAAD,WDWH,MAAM,GAAG,GA0FP,OAAO,YCzGP,SAIE;AAAD,WDWH,MAAM,GAAG,GAyFP,OCvGA,UAGE;AAAD,WDWH,MAAM,GAAG,GA0FP,OAAO,YCxGP,UAGE;AAAD,QAFM,UAAW,YDapB,MAAM,GAAG,GAyFP,OCpGE;AAAD,QAFM,UAAW,YDapB,MAAM,GAAG,GA0FP,OAAO,YCrGL;AACD,WDUH,MAAM,GAAG,GAyFP,OCxGA,SAKE;AAAD,WDUH,MAAM,GAAG,GA0FP,OAAO,YCzGP,SAKE;AAAD,WDUH,MAAM,GAAG,GAyFP,OCvGA,UAIE;AAAD,WDUH,MAAM,GAAG,GA0FP,OAAO,YCxGP,UAIE;AAAD,QAHM,UAAW,YDapB,MAAM,GAAG,GAyFP,OCnGE;AAAD,QAHM,UAAW,YDapB,MAAM,GAAG,GA0FP,OAAO,YCpGL;EACC,yBAAA;EACI,qBAAA;;ADtEV,WA8EC,MAAM,GAAG,GA8FR;EACC,cAAA;EACA,UAAA;EACA,YAAA;EACA,iBAAA;EACA,WAAA;EACA,UAAA;EACA,eAAA;EACA,kBAAA;;AACA,WAvGF,MAAM,GAAG,GA8FR,KASE;AACD,WAxGF,MAAM,GAAG,GA8FR,KAUE;EACA,mBAAA;;AAED,WA3GF,MAAM,GAAG,GA8FR,KAaE;AACD,WA5GF,MAAM,GAAG,GA8FR,KAcE,SAAS;EACT,gBAAA;EACA,cAAA;EACA,eAAA;;AAED,WAjHF,MAAM,GAAG,GA8FR,KAmBE;AACD,WAlHF,MAAM,GAAG,GA8FR,KAoBE,OAAO;AACR,WAnHF,MAAM,GAAG,GA8FR,KAqBE,OAAO;AACR,WApHF,MAAM,GAAG,GA8FR,KAsBE,OAAO,SAAS;EChKlB,WAAA;EACA,yBAAA;EACA,qBAAA;EDgKE,yCAAA;;AC9JF,WDwCD,MAAM,GAAG,GA8FR,KAmBE,OCzJD;AAAD,WDwCD,MAAM,GAAG,GA8FR,KAoBE,OAAO,MC1JR;AAAD,WDwCD,MAAM,GAAG,GA8FR,KAqBE,OAAO,SC3JR;AAAD,WDwCD,MAAM,GAAG,GA8FR,KAsBE,OAAO,SAAS,MC5JjB;AACD,WDuCD,MAAM,GAAG,GA8FR,KAmBE,OCxJD;AAAD,WDuCD,MAAM,GAAG,GA8FR,KAoBE,OAAO,MCzJR;AAAD,WDuCD,MAAM,GAAG,GA8FR,KAqBE,OAAO,SC1JR;AAAD,WDuCD,MAAM,GAAG,GA8FR,KAsBE,OAAO,SAAS,MC3JjB;EACC,WAAA;EACA,yBAAA;EACI,qBAAA;;AAEN,WDkCD,MAAM,GAAG,GA8FR,KAmBE,OCnJD;AAAD,WDkCD,MAAM,GAAG,GA8FR,KAoBE,OAAO,MCpJR;AAAD,WDkCD,MAAM,GAAG,GA8FR,KAqBE,OAAO,SCrJR;AAAD,WDkCD,MAAM,GAAG,GA8FR,KAsBE,OAAO,SAAS,MCtJjB;EACC,WAAA;EACA,yBAAA;EACI,qBAAA;;AAEN,WD6BD,MAAM,GAAG,GA8FR,KAmBE,OC9ID;AAAD,WD6BD,MAAM,GAAG,GA8FR,KAoBE,OAAO,MC/IR;AAAD,WD6BD,MAAM,GAAG,GA8FR,KAqBE,OAAO,SChJR;AAAD,WD6BD,MAAM,GAAG,GA8FR,KAsBE,OAAO,SAAS,MCjJjB;AACD,WD4BD,MAAM,GAAG,GA8FR,KAmBE,OC7ID;AAAD,WD4BD,MAAM,GAAG,GA8FR,KAoBE,OAAO,MC9IR;AAAD,WD4BD,MAAM,GAAG,GA8FR,KAqBE,OAAO,SC/IR;AAAD,WD4BD,MAAM,GAAG,GA8FR,KAsBE,OAAO,SAAS,MChJjB;EACC,WAAA;EACA,yBAAA;EACI,qBAAA;;AAEJ,WDuBH,MAAM,GAAG,GA8FR,KAmBE,OC9ID,OAME;AAAD,WDuBH,MAAM,GAAG,GA8FR,KAoBE,OAAO,MC/IR,OAME;AAAD,WDuBH,MAAM,GAAG,GA8FR,KAqBE,OAAO,SChJR,OAME;AAAD,WDuBH,MAAM,GAAG,GA8FR,KAsBE,OAAO,SAAS,MCjJjB,OAME;AAAD,WDuBH,MAAM,GAAG,GA8FR,KAmBE,OC7ID,OAKE;AAAD,WDuBH,MAAM,GAAG,GA8FR,KAoBE,OAAO,MC9IR,OAKE;AAAD,WDuBH,MAAM,GAAG,GA8FR,KAqBE,OAAO,SC/IR,OAKE;AAAD,WDuBH,MAAM,GAAG,GA8FR,KAsBE,OAAO,SAAS,MChJjB,OAKE;AACD,WDsBH,MAAM,GAAG,GA8FR,KAmBE,OC9ID,OAOE;AAAD,WDsBH,MAAM,GAAG,GA8FR,KAoBE,OAAO,MC/IR,OAOE;AAAD,WDsBH,MAAM,GAAG,GA8FR,KAqBE,OAAO,SChJR,OAOE;AAAD,WDsBH,MAAM,GAAG,GA8FR,KAsBE,OAAO,SAAS,MCjJjB,OAOE;AAAD,WDsBH,MAAM,GAAG,GA8FR,KAmBE,OC7ID,OAME;AAAD,WDsBH,MAAM,GAAG,GA8FR,KAoBE,OAAO,MC9IR,OAME;AAAD,WDsBH,MAAM,GAAG,GA8FR,KAqBE,OAAO,SC/IR,OAME;AAAD,WDsBH,MAAM,GAAG,GA8FR,KAsBE,OAAO,SAAS,MChJjB,OAME;AACD,WDqBH,MAAM,GAAG,GA8FR,KAmBE,OC9ID,OAQE;AAAD,WDqBH,MAAM,GAAG,GA8FR,KAoBE,OAAO,MC/IR,OAQE;AAAD,WDqBH,MAAM,GAAG,GA8FR,KAqBE,OAAO,SChJR,OAQE;AAAD,WDqBH,MAAM,GAAG,GA8FR,KAsBE,OAAO,SAAS,MCjJjB,OAQE;AAAD,WDqBH,MAAM,GAAG,GA8FR,KAmBE,OC7ID,OAOE;AAAD,WDqBH,MAAM,GAAG,GA8FR,KAoBE,OAAO,MC9IR,OAOE;AAAD,WDqBH,MAAM,GAAG,GA8FR,KAqBE,OAAO,SC/IR,OAOE;AAAD,WDqBH,MAAM,GAAG,GA8FR,KAsBE,OAAO,SAAS,MChJjB,OAOE;EACC,WAAA;EACA,yBAAA;EACI,qBAAA;;AAMN,WDYH,MAAM,GAAG,GA8FR,KAmBE,OChID,SAGE;AAAD,WDYH,MAAM,GAAG,GA8FR,KAoBE,OAAO,MCjIR,SAGE;AAAD,WDYH,MAAM,GAAG,GA8FR,KAqBE,OAAO,SClIR,SAGE;AAAD,WDYH,MAAM,GAAG,GA8FR,KAsBE,OAAO,SAAS,MCnIjB,SAGE;AAAD,WDYH,MAAM,GAAG,GA8FR,KAmBE,OC/HD,UAEE;AAAD,WDYH,MAAM,GAAG,GA8FR,KAoBE,OAAO,MChIR,UAEE;AAAD,WDYH,MAAM,GAAG,GA8FR,KAqBE,OAAO,SCjIR,UAEE;AAAD,WDYH,MAAM,GAAG,GA8FR,KAsBE,OAAO,SAAS,MClIjB,UAEE;AAAD,QADM,UAAW,YDapB,MAAM,GAAG,GA8FR,KAmBE,OC7HC;AAAD,QADM,UAAW,YDapB,MAAM,GAAG,GA8FR,KAoBE,OAAO,MC9HN;AAAD,QADM,UAAW,YDapB,MAAM,GAAG,GA8FR,KAqBE,OAAO,SC/HN;AAAD,QADM,UAAW,YDapB,MAAM,GAAG,GA8FR,KAsBE,OAAO,SAAS,MChIf;AACD,WDWH,MAAM,GAAG,GA8FR,KAmBE,OChID,SAIE;AAAD,WDWH,MAAM,GAAG,GA8FR,KAoBE,OAAO,MCjIR,SAIE;AAAD,WDWH,MAAM,GAAG,GA8FR,KAqBE,OAAO,SClIR,SAIE;AAAD,WDWH,MAAM,GAAG,GA8FR,KAsBE,OAAO,SAAS,MCnIjB,SAIE;AAAD,WDWH,MAAM,GAAG,GA8FR,KAmBE,OC/HD,UAGE;AAAD,WDWH,MAAM,GAAG,GA8FR,KAoBE,OAAO,MChIR,UAGE;AAAD,WDWH,MAAM,GAAG,GA8FR,KAqBE,OAAO,SCjIR,UAGE;AAAD,WDWH,MAAM,GAAG,GA8FR,KAsBE,OAAO,SAAS,MClIjB,UAGE;AAAD,QAFM,UAAW,YDapB,MAAM,GAAG,GA8FR,KAmBE,OC5HC;AAAD,QAFM,UAAW,YDapB,MAAM,GAAG,GA8FR,KAoBE,OAAO,MC7HN;AAAD,QAFM,UAAW,YDapB,MAAM,GAAG,GA8FR,KAqBE,OAAO,SC9HN;AAAD,QAFM,UAAW,YDapB,MAAM,GAAG,GA8FR,KAsBE,OAAO,SAAS,MC/Hf;AACD,WDUH,MAAM,GAAG,GA8FR,KAmBE,OChID,SAKE;AAAD,WDUH,MAAM,GAAG,GA8FR,KAoBE,OAAO,MCjIR,SAKE;AAAD,WDUH,MAAM,GAAG,GA8FR,KAqBE,OAAO,SClIR,SAKE;AAAD,WDUH,MAAM,GAAG,GA8FR,KAsBE,OAAO,SAAS,MCnIjB,SAKE;AAAD,WDUH,MAAM,GAAG,GA8FR,KAmBE,OC/HD,UAIE;AAAD,WDUH,MAAM,GAAG,GA8FR,KAoBE,OAAO,MChIR,UAIE;AAAD,WDUH,MAAM,GAAG,GA8FR,KAqBE,OAAO,SCjIR,UAIE;AAAD,WDUH,MAAM,GAAG,GA8FR,KAsBE,OAAO,SAAS,MClIjB,UAIE;AAAD,QAHM,UAAW,YDapB,MAAM,GAAG,GA8FR,KAmBE,OC3HC;AAAD,QAHM,UAAW,YDapB,MAAM,GAAG,GA8FR,KAoBE,OAAO,MC5HN;AAAD,QAHM,UAAW,YDapB,MAAM,GAAG,GA8FR,KAqBE,OAAO,SC7HN;AAAD,QAHM,UAAW,YDapB,MAAM,GAAG,GA8FR,KAsBE,OAAO,SAAS,MC9Hf;EACC,yBAAA;EACI,qBAAA;;ADgIP,WAxHF,MAAM,GAAG,GA8FR,KA0BE;AACD,WAzHF,MAAM,GAAG,GA8FR,KA2BE;EACA,cAAA;;AAxMJ,WA6MC;EACC,YAAA;;AA9MF,WAiNC;AAjND,WAkNC;AAlND,WAmNC;AAnND,WAoNC,MAAM,GAAG;EACR,eAAA;;AACA,WALD,mBAKE;AAAD,WAJD,MAIE;AAAD,WAHD,MAGE;AAAD,WAFD,MAAM,GAAG,GAEP;EACA,mBAAA;;AAKD,WADD,MACE;AAAD,WADM,MACL;EACA,kBAAA;;AA7NH,WAkOC;EACC,eAAA;EACA,WAAA;EACA,oBAAA;EACA,sBAAA;;AAGF,YAAY,KAAM;EACjB,eAAA;;AAED;EACC,WAAA;;AADD,gBAEC;EACC,kBAAA;;AAHF,gBAKC,MAAK;EACJ,0BAAA;;AANF,gBAQC,MAAK;EACJ,0BAAA;;AATF,gBAWC;EACC,WAAA;EACA,eAAA;EACA,gBAAA;EACA,uBAAA;EACA,yBAAA;EACA,mBAAA;EACA,iBAAA;EACA,kBAAA;;AEtOA,WAAC;EACC,kBAAA;EACA,SAAA;EACA,OAAA;EACA,aAAA;EACA,aAAA;EACA,WAAA;EACA,gBAAA;EACA,gBAAA;EACA,sBAAA;EACA,sBAAA;EACA,qCAAA;EACA,kBAAA;EApBF,mDAAA;EACG,gDAAA;EACK,2CAAA;EAoBN,oCAAA;EACG,6BAAA;EACK,4BAAA;EAGR,cAAA;EACA,eAAA;EACA,uBAAA;;AAGF,WAAC,cACC;AADe,WAAC,kBAChB;AADF,WAAC,cACK;AADW,WAAC,kBACZ;EACF,gBAAA","sourcesContent":[".datepicker {\n\tborder-radius: @border-radius-base;\n\t&-inline {\n\t\twidth: 220px;\n\t}\n\tdirection: ltr;\n\t&-rtl {\n\t\tdirection: rtl;\n\t\t&.dropdown-menu { left: auto; }\n\t\ttable tr td span {\n\t\t\tfloat: right;\n\t\t}\n\t}\n\t&-dropdown {\n\t\ttop: 0;\n\t\tleft: 0;\n\t\tpadding: 4px;\n\t\t&:before {\n\t\t\tcontent: '';\n\t\t\tdisplay: inline-block;\n\t\t\tborder-left: 7px solid transparent;\n\t\t\tborder-right: 7px solid transparent;\n\t\t\tborder-bottom: 7px solid @dropdown-border;\n\t\t\tborder-top: 0;\n\t\t\tborder-bottom-color: rgba(0,0,0,.2);\n\t\t\tposition: absolute;\n\t\t}\n\t\t&:after {\n\t\t\tcontent: '';\n\t\t\tdisplay: inline-block;\n\t\t\tborder-left: 6px solid transparent;\n\t\t\tborder-right: 6px solid transparent;\n\t\t\tborder-bottom: 6px solid @dropdown-bg;\n\t\t\tborder-top: 0;\n\t\t\tposition: absolute;\n\t\t}\n\t\t&.datepicker-orient-left:before { left: 6px; }\n\t\t&.datepicker-orient-left:after { left: 7px; }\n\t\t&.datepicker-orient-right:before { right: 6px; }\n\t\t&.datepicker-orient-right:after { right: 7px; }\n\t\t&.datepicker-orient-bottom:before { top: -7px; }\n\t\t&.datepicker-orient-bottom:after { top: -6px; }\n\t\t&.datepicker-orient-top:before {\n\t\t\tbottom: -7px;\n\t\t\tborder-bottom: 0;\n\t\t\tborder-top: 7px solid @dropdown-border;\n\t\t}\n\t\t&.datepicker-orient-top:after {\n\t\t\tbottom: -6px;\n\t\t\tborder-bottom: 0;\n\t\t\tborder-top: 6px solid @dropdown-bg;\n\t\t}\n\t}\n\ttable {\n\t\tmargin: 0;\n\t\t-webkit-touch-callout: none;\n\t\t-webkit-user-select: none;\n\t\t-khtml-user-select: none;\n\t\t-moz-user-select: none;\n\t\t-ms-user-select: none;\n\t\tuser-select: none;\n\t\ttr {\n\t\t\ttd, th {\n\t\t\t\ttext-align: center;\n\t\t\t\twidth: 30px;\n\t\t\t\theight: 30px;\n\t\t\t\tborder-radius: 4px;\n\t\t\t\tborder: none;\n\t\t\t}\n\t\t}\n\t}\n\t// Inline display inside a table presents some problems with\n\t// border and background colors.\n\t.table-striped & table tr {\n\t\ttd, th {\n\t\t\tbackground-color: transparent;\n\t\t}\n\t}\n\ttable tr td {\n\t\t&.old,\n\t\t&.new {\n\t\t\tcolor: @btn-link-disabled-color;\n\t\t}\n\t\t&.day:hover,\n\t\t&.focused {\n\t\t\tbackground: @gray-lighter;\n\t\t\tcursor: pointer;\n\t\t}\n\t\t&.disabled,\n\t\t&.disabled:hover {\n\t\t\tbackground: none;\n\t\t\tcolor: @btn-link-disabled-color;\n\t\t\tcursor: default;\n\t\t}\n\t\t&.highlighted {\n\t\t\t@highlighted-bg: @state-info-bg;\n\t\t\t.button-variant(#000, @highlighted-bg, darken(@highlighted-bg, 20%));\n\t\t\tborder-radius: 0;\n\n\t\t\t&.focused {\n\t\t\t\tbackground: darken(@highlighted-bg, 10%);\n\t\t\t}\n\n\t\t\t&.disabled,\n\t\t\t&.disabled:active {\n\t\t\t\tbackground: @highlighted-bg;\n\t\t\t\tcolor: @btn-link-disabled-color;\n\t\t\t}\n\t\t}\n\t\t&.today {\n\t\t\t@today-bg: lighten(orange, 30%);\n\t\t\t.button-variant(#000, @today-bg, darken(@today-bg, 20%));\n\n\t\t\t&.focused {\n\t\t\t\tbackground: darken(@today-bg, 10%);\n\t\t\t}\n\n\t\t\t&.disabled,\n\t\t\t&.disabled:active {\n\t\t\t\tbackground: @today-bg;\n\t\t\t\tcolor: @btn-link-disabled-color;\n\t\t\t}\n\t\t}\n\t\t&.range {\n\t\t\t@range-bg: @gray-lighter;\n\t\t\t.button-variant(#000, @range-bg, darken(@range-bg, 20%));\n\t\t\tborder-radius: 0;\n\n\t\t\t&.focused {\n\t\t\t\tbackground: darken(@range-bg, 10%);\n\t\t\t}\n\n\t\t\t&.disabled,\n\t\t\t&.disabled:active {\n\t\t\t\tbackground: @range-bg;\n\t\t\t\tcolor: @btn-link-disabled-color;\n\t\t\t}\n\t\t}\n\t\t&.range.highlighted {\n\t\t\t@range-highlighted-bg: mix(@state-info-bg, @gray-lighter, 50%);\n\t\t\t.button-variant(#000, @range-highlighted-bg, darken(@range-highlighted-bg, 20%));\n\n\t\t\t&.focused {\n\t\t\t\tbackground: darken(@range-highlighted-bg, 10%);\n\t\t\t}\n\n\t\t\t&.disabled,\n\t\t\t&.disabled:active {\n\t\t\t\tbackground: @range-highlighted-bg;\n\t\t\t\tcolor: @btn-link-disabled-color;\n\t\t\t}\n\t\t}\n\t\t&.range.today {\n\t\t\t@range-today-bg: mix(orange, @gray-lighter, 50%);\n\t\t\t.button-variant(#000, @range-today-bg, darken(@range-today-bg, 20%));\n\n\t\t\t&.disabled,\n\t\t\t&.disabled:active {\n\t\t\t\tbackground: @range-today-bg;\n\t\t\t\tcolor: @btn-link-disabled-color;\n\t\t\t}\n\t\t}\n\t\t&.selected,\n\t\t&.selected.highlighted {\n\t\t\t.button-variant(#fff, @gray-light, @gray);\n\t\t\ttext-shadow: 0 -1px 0 rgba(0,0,0,.25);\n\t\t}\n\t\t&.active,\n\t\t&.active.highlighted {\n\t\t\t.button-variant(@btn-primary-color, @btn-primary-bg, @btn-primary-border);\n\t\t\ttext-shadow: 0 -1px 0 rgba(0,0,0,.25);\n\t\t}\n\t\tspan {\n\t\t\tdisplay: block;\n\t\t\twidth: 23%;\n\t\t\theight: 54px;\n\t\t\tline-height: 54px;\n\t\t\tfloat: left;\n\t\t\tmargin: 1%;\n\t\t\tcursor: pointer;\n\t\t\tborder-radius: 4px;\n\t\t\t&:hover,\n\t\t\t&.focused {\n\t\t\t\tbackground: @gray-lighter;\n\t\t\t}\n\t\t\t&.disabled,\n\t\t\t&.disabled:hover {\n\t\t\t\tbackground: none;\n\t\t\t\tcolor: @btn-link-disabled-color;\n\t\t\t\tcursor: default;\n\t\t\t}\n\t\t\t&.active,\n\t\t\t&.active:hover,\n\t\t\t&.active.disabled,\n\t\t\t&.active.disabled:hover {\n\t\t\t\t.button-variant(@btn-primary-color, @btn-primary-bg, @btn-primary-border);\n\t\t\t\ttext-shadow: 0 -1px 0 rgba(0,0,0,.25);\n\t\t\t}\n\t\t\t&.old,\n\t\t\t&.new {\n\t\t\t\tcolor: @btn-link-disabled-color;\n\t\t\t}\n\t\t}\n\t}\n\n\t.datepicker-switch {\n\t\twidth: 145px;\n\t}\n\n\t.datepicker-switch,\n\t.prev,\n\t.next,\n\ttfoot tr th {\n\t\tcursor: pointer;\n\t\t&:hover {\n\t\t\tbackground: @gray-lighter;\n\t\t}\n\t}\n\n\t.prev, .next {\n\t\t&.disabled {\n\t\t\tvisibility: hidden;\n\t\t}\n\t}\n\n\t// Basic styling for calendar-week cells\n\t.cw {\n\t\tfont-size: 10px;\n\t\twidth: 12px;\n\t\tpadding: 0 2px 0 5px;\n\t\tvertical-align: middle;\n\t}\n}\n.input-group.date .input-group-addon {\n\tcursor: pointer;\n}\n.input-daterange {\n\twidth: 100%;\n\tinput {\n\t\ttext-align: center;\n\t}\n\tinput:first-child {\n\t\tborder-radius: 3px 0 0 3px;\n\t}\n\tinput:last-child {\n\t\tborder-radius: 0 3px 3px 0;\n\t}\n\t.input-group-addon {\n\t\twidth: auto;\n\t\tmin-width: 16px;\n\t\tpadding: 4px 5px;\n\t\tline-height: @line-height-base;\n\t\ttext-shadow: 0 1px 0 #fff;\n\t\tborder-width: 1px 0;\n\t\tmargin-left: -5px;\n\t\tmargin-right: -5px;\n\t}\n}\n","// Datepicker .less buildfile. Includes select mixins/variables from bootstrap\n// and imports the included datepicker.less to output a minimal datepicker.css\n//\n// Usage:\n// lessc build3.less datepicker.css\n//\n// Variables and mixins copied from Bootstrap 3.3.5\n\n// Variables\n@gray: lighten(#000, 33.5%); // #555\n@gray-light: lighten(#000, 46.7%); // #777\n@gray-lighter: lighten(#000, 93.5%); // #eee\n\n@brand-primary: darken(#428bca, 6.5%); // #337ab7\n\n@btn-primary-color: #fff;\n@btn-primary-bg: @brand-primary;\n@btn-primary-border: darken(@btn-primary-bg, 5%);\n\n@btn-link-disabled-color: @gray-light;\n\n@state-info-bg: #d9edf7;\n\n@line-height-base: 1.428571429; // 20/14\n@border-radius-base: 4px;\n\n@dropdown-bg: #fff;\n@dropdown-border: rgba(0,0,0,.15);\n\n\n// Mixins\n\n// Button variants\n.button-variant(@color; @background; @border) {\n color: @color;\n background-color: @background;\n border-color: @border;\n\n &:focus,\n &.focus {\n color: @color;\n background-color: darken(@background, 10%);\n border-color: darken(@border, 25%);\n }\n &:hover {\n color: @color;\n background-color: darken(@background, 10%);\n border-color: darken(@border, 12%);\n }\n &:active,\n &.active {\n color: @color;\n background-color: darken(@background, 10%);\n border-color: darken(@border, 12%);\n\n &:hover,\n &:focus,\n &.focus {\n color: @color;\n background-color: darken(@background, 17%);\n border-color: darken(@border, 25%);\n }\n }\n &.disabled,\n &[disabled],\n fieldset[disabled] & {\n &:hover,\n &:focus,\n &.focus {\n background-color: @background;\n border-color: @border;\n }\n }\n}\n\n@import \"../less/datepicker3.less\";\n","// Datepicker standalone .less buildfile. Includes all necessary mixins/variables/rules from bootstrap\n// and imports the included datepicker.less to output a minimal standalone datepicker.css\n//\n// Usage:\n// lessc build_standalone3.less datepicker.css\n//\n// Variables, mixins, and rules copied from Bootstrap 3.3.5\n\n@import \"build3.less\";\n\n// Dropdown css\n\n@zindex-dropdown: 1000;\n@dropdown-fallback-border: #ccc;\n\n// Drop shadows\n.box-shadow(@shadow) {\n -webkit-box-shadow: @shadow;\n -moz-box-shadow: @shadow;\n box-shadow: @shadow;\n}\n\n// The dropdown menu (ul)\n// ----------------------\n.datepicker {\n &.dropdown-menu {\n position: absolute;\n top: 100%;\n left: 0;\n z-index: @zindex-dropdown;\n display: none; // none by default, but block on \"open\" of the menu\n float: left;\n min-width: 160px;\n list-style: none;\n background-color: @dropdown-bg;\n border: 1px solid @dropdown-fallback-border; // IE8 fallback\n border: 1px solid @dropdown-border;\n border-radius: @border-radius-base;\n .box-shadow(0 6px 12px rgba(0,0,0,.175));\n -webkit-background-clip: padding-box;\n -moz-background-clip: padding;\n background-clip: padding-box;\n\n // Normally inherited from bootstrap's `body`\n color: #333333;\n font-size: 13px;\n line-height: @line-height-base;\n }\n\n &.dropdown-menu, &.datepicker-inline {\n th, td {\n padding: 0px 5px;\n }\n }\n}\n"]} \ No newline at end of file diff --git a/admin/bower_components/bootstrap-datepicker/dist/css/bootstrap-datepicker3.standalone.min.css b/admin/bower_components/bootstrap-datepicker/dist/css/bootstrap-datepicker3.standalone.min.css deleted file mode 100644 index f95a4de..0000000 --- a/admin/bower_components/bootstrap-datepicker/dist/css/bootstrap-datepicker3.standalone.min.css +++ /dev/null @@ -1,7 +0,0 @@ -/*! - * Datepicker for Bootstrap v1.7.1 (https://github.com/uxsolutions/bootstrap-datepicker) - * - * Licensed under the Apache License v2.0 (http://www.apache.org/licenses/LICENSE-2.0) - */ - -.datepicker{border-radius:4px;direction:ltr}.datepicker-inline{width:220px}.datepicker-rtl{direction:rtl}.datepicker-rtl.dropdown-menu{left:auto}.datepicker-rtl table tr td span{float:right}.datepicker-dropdown{top:0;left:0;padding:4px}.datepicker-dropdown:before{content:'';display:inline-block;border-left:7px solid transparent;border-right:7px solid transparent;border-bottom:7px solid rgba(0,0,0,.15);border-top:0;border-bottom-color:rgba(0,0,0,.2);position:absolute}.datepicker-dropdown:after{content:'';display:inline-block;border-left:6px solid transparent;border-right:6px solid transparent;border-bottom:6px solid #fff;border-top:0;position:absolute}.datepicker-dropdown.datepicker-orient-left:before{left:6px}.datepicker-dropdown.datepicker-orient-left:after{left:7px}.datepicker-dropdown.datepicker-orient-right:before{right:6px}.datepicker-dropdown.datepicker-orient-right:after{right:7px}.datepicker-dropdown.datepicker-orient-bottom:before{top:-7px}.datepicker-dropdown.datepicker-orient-bottom:after{top:-6px}.datepicker-dropdown.datepicker-orient-top:before{bottom:-7px;border-bottom:0;border-top:7px solid rgba(0,0,0,.15)}.datepicker-dropdown.datepicker-orient-top:after{bottom:-6px;border-bottom:0;border-top:6px solid #fff}.datepicker table{margin:0;-webkit-touch-callout:none;-webkit-user-select:none;-khtml-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.datepicker table tr td,.datepicker table tr th{text-align:center;width:30px;height:30px;border-radius:4px;border:none}.table-striped .datepicker table tr td,.table-striped .datepicker table tr th{background-color:transparent}.datepicker table tr td.new,.datepicker table tr td.old{color:#777}.datepicker table tr td.day:hover,.datepicker table tr td.focused{background:#eee;cursor:pointer}.datepicker table tr td.disabled,.datepicker table tr td.disabled:hover{background:0 0;color:#777;cursor:default}.datepicker table tr td.highlighted{color:#000;background-color:#d9edf7;border-color:#85c5e5;border-radius:0}.datepicker table tr td.highlighted.focus,.datepicker table tr td.highlighted:focus{color:#000;background-color:#afd9ee;border-color:#298fc2}.datepicker table tr td.highlighted:hover{color:#000;background-color:#afd9ee;border-color:#52addb}.datepicker table tr td.highlighted.active,.datepicker table tr td.highlighted:active{color:#000;background-color:#afd9ee;border-color:#52addb}.datepicker table tr td.highlighted.active.focus,.datepicker table tr td.highlighted.active:focus,.datepicker table tr td.highlighted.active:hover,.datepicker table tr td.highlighted:active.focus,.datepicker table tr td.highlighted:active:focus,.datepicker table tr td.highlighted:active:hover{color:#000;background-color:#91cbe8;border-color:#298fc2}.datepicker table tr td.highlighted.disabled.focus,.datepicker table tr td.highlighted.disabled:focus,.datepicker table tr td.highlighted.disabled:hover,.datepicker table tr td.highlighted[disabled].focus,.datepicker table tr td.highlighted[disabled]:focus,.datepicker table tr td.highlighted[disabled]:hover,fieldset[disabled] .datepicker table tr td.highlighted.focus,fieldset[disabled] .datepicker table tr td.highlighted:focus,fieldset[disabled] .datepicker table tr td.highlighted:hover{background-color:#d9edf7;border-color:#85c5e5}.datepicker table tr td.highlighted.focused{background:#afd9ee}.datepicker table tr td.highlighted.disabled,.datepicker table tr td.highlighted.disabled:active{background:#d9edf7;color:#777}.datepicker table tr td.today{color:#000;background-color:#ffdb99;border-color:#ffb733}.datepicker table tr td.today.focus,.datepicker table tr td.today:focus{color:#000;background-color:#ffc966;border-color:#b37400}.datepicker table tr td.today:hover{color:#000;background-color:#ffc966;border-color:#f59e00}.datepicker table tr td.today.active,.datepicker table tr td.today:active{color:#000;background-color:#ffc966;border-color:#f59e00}.datepicker table tr td.today.active.focus,.datepicker table tr td.today.active:focus,.datepicker table tr td.today.active:hover,.datepicker table tr td.today:active.focus,.datepicker table tr td.today:active:focus,.datepicker table tr td.today:active:hover{color:#000;background-color:#ffbc42;border-color:#b37400}.datepicker table tr td.today.disabled.focus,.datepicker table tr td.today.disabled:focus,.datepicker table tr td.today.disabled:hover,.datepicker table tr td.today[disabled].focus,.datepicker table tr td.today[disabled]:focus,.datepicker table tr td.today[disabled]:hover,fieldset[disabled] .datepicker table tr td.today.focus,fieldset[disabled] .datepicker table tr td.today:focus,fieldset[disabled] .datepicker table tr td.today:hover{background-color:#ffdb99;border-color:#ffb733}.datepicker table tr td.today.focused{background:#ffc966}.datepicker table tr td.today.disabled,.datepicker table tr td.today.disabled:active{background:#ffdb99;color:#777}.datepicker table tr td.range{color:#000;background-color:#eee;border-color:#bbb;border-radius:0}.datepicker table tr td.range.focus,.datepicker table tr td.range:focus{color:#000;background-color:#d5d5d5;border-color:#7c7c7c}.datepicker table tr td.range:hover{color:#000;background-color:#d5d5d5;border-color:#9d9d9d}.datepicker table tr td.range.active,.datepicker table tr td.range:active{color:#000;background-color:#d5d5d5;border-color:#9d9d9d}.datepicker table tr td.range.active.focus,.datepicker table tr td.range.active:focus,.datepicker table tr td.range.active:hover,.datepicker table tr td.range:active.focus,.datepicker table tr td.range:active:focus,.datepicker table tr td.range:active:hover{color:#000;background-color:#c3c3c3;border-color:#7c7c7c}.datepicker table tr td.range.disabled.focus,.datepicker table tr td.range.disabled:focus,.datepicker table tr td.range.disabled:hover,.datepicker table tr td.range[disabled].focus,.datepicker table tr td.range[disabled]:focus,.datepicker table tr td.range[disabled]:hover,fieldset[disabled] .datepicker table tr td.range.focus,fieldset[disabled] .datepicker table tr td.range:focus,fieldset[disabled] .datepicker table tr td.range:hover{background-color:#eee;border-color:#bbb}.datepicker table tr td.range.focused{background:#d5d5d5}.datepicker table tr td.range.disabled,.datepicker table tr td.range.disabled:active{background:#eee;color:#777}.datepicker table tr td.range.highlighted{color:#000;background-color:#e4eef3;border-color:#9dc1d3}.datepicker table tr td.range.highlighted.focus,.datepicker table tr td.range.highlighted:focus{color:#000;background-color:#c1d7e3;border-color:#4b88a6}.datepicker table tr td.range.highlighted:hover{color:#000;background-color:#c1d7e3;border-color:#73a6c0}.datepicker table tr td.range.highlighted.active,.datepicker table tr td.range.highlighted:active{color:#000;background-color:#c1d7e3;border-color:#73a6c0}.datepicker table tr td.range.highlighted.active.focus,.datepicker table tr td.range.highlighted.active:focus,.datepicker table tr td.range.highlighted.active:hover,.datepicker table tr td.range.highlighted:active.focus,.datepicker table tr td.range.highlighted:active:focus,.datepicker table tr td.range.highlighted:active:hover{color:#000;background-color:#a8c8d8;border-color:#4b88a6}.datepicker table tr td.range.highlighted.disabled.focus,.datepicker table tr td.range.highlighted.disabled:focus,.datepicker table tr td.range.highlighted.disabled:hover,.datepicker table tr td.range.highlighted[disabled].focus,.datepicker table tr td.range.highlighted[disabled]:focus,.datepicker table tr td.range.highlighted[disabled]:hover,fieldset[disabled] .datepicker table tr td.range.highlighted.focus,fieldset[disabled] .datepicker table tr td.range.highlighted:focus,fieldset[disabled] .datepicker table tr td.range.highlighted:hover{background-color:#e4eef3;border-color:#9dc1d3}.datepicker table tr td.range.highlighted.focused{background:#c1d7e3}.datepicker table tr td.range.highlighted.disabled,.datepicker table tr td.range.highlighted.disabled:active{background:#e4eef3;color:#777}.datepicker table tr td.range.today{color:#000;background-color:#f7ca77;border-color:#f1a417}.datepicker table tr td.range.today.focus,.datepicker table tr td.range.today:focus{color:#000;background-color:#f4b747;border-color:#815608}.datepicker table tr td.range.today:hover{color:#000;background-color:#f4b747;border-color:#bf800c}.datepicker table tr td.range.today.active,.datepicker table tr td.range.today:active{color:#000;background-color:#f4b747;border-color:#bf800c}.datepicker table tr td.range.today.active.focus,.datepicker table tr td.range.today.active:focus,.datepicker table tr td.range.today.active:hover,.datepicker table tr td.range.today:active.focus,.datepicker table tr td.range.today:active:focus,.datepicker table tr td.range.today:active:hover{color:#000;background-color:#f2aa25;border-color:#815608}.datepicker table tr td.range.today.disabled.focus,.datepicker table tr td.range.today.disabled:focus,.datepicker table tr td.range.today.disabled:hover,.datepicker table tr td.range.today[disabled].focus,.datepicker table tr td.range.today[disabled]:focus,.datepicker table tr td.range.today[disabled]:hover,fieldset[disabled] .datepicker table tr td.range.today.focus,fieldset[disabled] .datepicker table tr td.range.today:focus,fieldset[disabled] .datepicker table tr td.range.today:hover{background-color:#f7ca77;border-color:#f1a417}.datepicker table tr td.range.today.disabled,.datepicker table tr td.range.today.disabled:active{background:#f7ca77;color:#777}.datepicker table tr td.selected,.datepicker table tr td.selected.highlighted{color:#fff;background-color:#777;border-color:#555;text-shadow:0 -1px 0 rgba(0,0,0,.25)}.datepicker table tr td.selected.focus,.datepicker table tr td.selected.highlighted.focus,.datepicker table tr td.selected.highlighted:focus,.datepicker table tr td.selected:focus{color:#fff;background-color:#5e5e5e;border-color:#161616}.datepicker table tr td.selected.highlighted:hover,.datepicker table tr td.selected:hover{color:#fff;background-color:#5e5e5e;border-color:#373737}.datepicker table tr td.selected.active,.datepicker table tr td.selected.highlighted.active,.datepicker table tr td.selected.highlighted:active,.datepicker table tr td.selected:active{color:#fff;background-color:#5e5e5e;border-color:#373737}.datepicker table tr td.selected.active.focus,.datepicker table tr td.selected.active:focus,.datepicker table tr td.selected.active:hover,.datepicker table tr td.selected.highlighted.active.focus,.datepicker table tr td.selected.highlighted.active:focus,.datepicker table tr td.selected.highlighted.active:hover,.datepicker table tr td.selected.highlighted:active.focus,.datepicker table tr td.selected.highlighted:active:focus,.datepicker table tr td.selected.highlighted:active:hover,.datepicker table tr td.selected:active.focus,.datepicker table tr td.selected:active:focus,.datepicker table tr td.selected:active:hover{color:#fff;background-color:#4c4c4c;border-color:#161616}.datepicker table tr td.selected.disabled.focus,.datepicker table tr td.selected.disabled:focus,.datepicker table tr td.selected.disabled:hover,.datepicker table tr td.selected.highlighted.disabled.focus,.datepicker table tr td.selected.highlighted.disabled:focus,.datepicker table tr td.selected.highlighted.disabled:hover,.datepicker table tr td.selected.highlighted[disabled].focus,.datepicker table tr td.selected.highlighted[disabled]:focus,.datepicker table tr td.selected.highlighted[disabled]:hover,.datepicker table tr td.selected[disabled].focus,.datepicker table tr td.selected[disabled]:focus,.datepicker table tr td.selected[disabled]:hover,fieldset[disabled] .datepicker table tr td.selected.focus,fieldset[disabled] .datepicker table tr td.selected.highlighted.focus,fieldset[disabled] .datepicker table tr td.selected.highlighted:focus,fieldset[disabled] .datepicker table tr td.selected.highlighted:hover,fieldset[disabled] .datepicker table tr td.selected:focus,fieldset[disabled] .datepicker table tr td.selected:hover{background-color:#777;border-color:#555}.datepicker table tr td.active,.datepicker table tr td.active.highlighted{color:#fff;background-color:#337ab7;border-color:#2e6da4;text-shadow:0 -1px 0 rgba(0,0,0,.25)}.datepicker table tr td.active.focus,.datepicker table tr td.active.highlighted.focus,.datepicker table tr td.active.highlighted:focus,.datepicker table tr td.active:focus{color:#fff;background-color:#286090;border-color:#122b40}.datepicker table tr td.active.highlighted:hover,.datepicker table tr td.active:hover{color:#fff;background-color:#286090;border-color:#204d74}.datepicker table tr td.active.active,.datepicker table tr td.active.highlighted.active,.datepicker table tr td.active.highlighted:active,.datepicker table tr td.active:active{color:#fff;background-color:#286090;border-color:#204d74}.datepicker table tr td.active.active.focus,.datepicker table tr td.active.active:focus,.datepicker table tr td.active.active:hover,.datepicker table tr td.active.highlighted.active.focus,.datepicker table tr td.active.highlighted.active:focus,.datepicker table tr td.active.highlighted.active:hover,.datepicker table tr td.active.highlighted:active.focus,.datepicker table tr td.active.highlighted:active:focus,.datepicker table tr td.active.highlighted:active:hover,.datepicker table tr td.active:active.focus,.datepicker table tr td.active:active:focus,.datepicker table tr td.active:active:hover{color:#fff;background-color:#204d74;border-color:#122b40}.datepicker table tr td.active.disabled.focus,.datepicker table tr td.active.disabled:focus,.datepicker table tr td.active.disabled:hover,.datepicker table tr td.active.highlighted.disabled.focus,.datepicker table tr td.active.highlighted.disabled:focus,.datepicker table tr td.active.highlighted.disabled:hover,.datepicker table tr td.active.highlighted[disabled].focus,.datepicker table tr td.active.highlighted[disabled]:focus,.datepicker table tr td.active.highlighted[disabled]:hover,.datepicker table tr td.active[disabled].focus,.datepicker table tr td.active[disabled]:focus,.datepicker table tr td.active[disabled]:hover,fieldset[disabled] .datepicker table tr td.active.focus,fieldset[disabled] .datepicker table tr td.active.highlighted.focus,fieldset[disabled] .datepicker table tr td.active.highlighted:focus,fieldset[disabled] .datepicker table tr td.active.highlighted:hover,fieldset[disabled] .datepicker table tr td.active:focus,fieldset[disabled] .datepicker table tr td.active:hover{background-color:#337ab7;border-color:#2e6da4}.datepicker table tr td span{display:block;width:23%;height:54px;line-height:54px;float:left;margin:1%;cursor:pointer;border-radius:4px}.datepicker table tr td span.focused,.datepicker table tr td span:hover{background:#eee}.datepicker table tr td span.disabled,.datepicker table tr td span.disabled:hover{background:0 0;color:#777;cursor:default}.datepicker table tr td span.active,.datepicker table tr td span.active.disabled,.datepicker table tr td span.active.disabled:hover,.datepicker table tr td span.active:hover{color:#fff;background-color:#337ab7;border-color:#2e6da4;text-shadow:0 -1px 0 rgba(0,0,0,.25)}.datepicker table tr td span.active.disabled.focus,.datepicker table tr td span.active.disabled:focus,.datepicker table tr td span.active.disabled:hover.focus,.datepicker table tr td span.active.disabled:hover:focus,.datepicker table tr td span.active.focus,.datepicker table tr td span.active:focus,.datepicker table tr td span.active:hover.focus,.datepicker table tr td span.active:hover:focus{color:#fff;background-color:#286090;border-color:#122b40}.datepicker table tr td span.active.disabled:hover,.datepicker table tr td span.active.disabled:hover:hover,.datepicker table tr td span.active:hover,.datepicker table tr td span.active:hover:hover{color:#fff;background-color:#286090;border-color:#204d74}.datepicker table tr td span.active.active,.datepicker table tr td span.active.disabled.active,.datepicker table tr td span.active.disabled:active,.datepicker table tr td span.active.disabled:hover.active,.datepicker table tr td span.active.disabled:hover:active,.datepicker table tr td span.active:active,.datepicker table tr td span.active:hover.active,.datepicker table tr td span.active:hover:active{color:#fff;background-color:#286090;border-color:#204d74}.datepicker table tr td span.active.active.focus,.datepicker table tr td span.active.active:focus,.datepicker table tr td span.active.active:hover,.datepicker table tr td span.active.disabled.active.focus,.datepicker table tr td span.active.disabled.active:focus,.datepicker table tr td span.active.disabled.active:hover,.datepicker table tr td span.active.disabled:active.focus,.datepicker table tr td span.active.disabled:active:focus,.datepicker table tr td span.active.disabled:active:hover,.datepicker table tr td span.active.disabled:hover.active.focus,.datepicker table tr td span.active.disabled:hover.active:focus,.datepicker table tr td span.active.disabled:hover.active:hover,.datepicker table tr td span.active.disabled:hover:active.focus,.datepicker table tr td span.active.disabled:hover:active:focus,.datepicker table tr td span.active.disabled:hover:active:hover,.datepicker table tr td span.active:active.focus,.datepicker table tr td span.active:active:focus,.datepicker table tr td span.active:active:hover,.datepicker table tr td span.active:hover.active.focus,.datepicker table tr td span.active:hover.active:focus,.datepicker table tr td span.active:hover.active:hover,.datepicker table tr td span.active:hover:active.focus,.datepicker table tr td span.active:hover:active:focus,.datepicker table tr td span.active:hover:active:hover{color:#fff;background-color:#204d74;border-color:#122b40}.datepicker table tr td span.active.disabled.disabled.focus,.datepicker table tr td span.active.disabled.disabled:focus,.datepicker table tr td span.active.disabled.disabled:hover,.datepicker table tr td span.active.disabled.focus,.datepicker table tr td span.active.disabled:focus,.datepicker table tr td span.active.disabled:hover,.datepicker table tr td span.active.disabled:hover.disabled.focus,.datepicker table tr td span.active.disabled:hover.disabled:focus,.datepicker table tr td span.active.disabled:hover.disabled:hover,.datepicker table tr td span.active.disabled:hover[disabled].focus,.datepicker table tr td span.active.disabled:hover[disabled]:focus,.datepicker table tr td span.active.disabled:hover[disabled]:hover,.datepicker table tr td span.active.disabled[disabled].focus,.datepicker table tr td span.active.disabled[disabled]:focus,.datepicker table tr td span.active.disabled[disabled]:hover,.datepicker table tr td span.active:hover.disabled.focus,.datepicker table tr td span.active:hover.disabled:focus,.datepicker table tr td span.active:hover.disabled:hover,.datepicker table tr td span.active:hover[disabled].focus,.datepicker table tr td span.active:hover[disabled]:focus,.datepicker table tr td span.active:hover[disabled]:hover,.datepicker table tr td span.active[disabled].focus,.datepicker table tr td span.active[disabled]:focus,.datepicker table tr td span.active[disabled]:hover,fieldset[disabled] .datepicker table tr td span.active.disabled.focus,fieldset[disabled] .datepicker table tr td span.active.disabled:focus,fieldset[disabled] .datepicker table tr td span.active.disabled:hover,fieldset[disabled] .datepicker table tr td span.active.disabled:hover.focus,fieldset[disabled] .datepicker table tr td span.active.disabled:hover:focus,fieldset[disabled] .datepicker table tr td span.active.disabled:hover:hover,fieldset[disabled] .datepicker table tr td span.active.focus,fieldset[disabled] .datepicker table tr td span.active:focus,fieldset[disabled] .datepicker table tr td span.active:hover,fieldset[disabled] .datepicker table tr td span.active:hover.focus,fieldset[disabled] .datepicker table tr td span.active:hover:focus,fieldset[disabled] .datepicker table tr td span.active:hover:hover{background-color:#337ab7;border-color:#2e6da4}.datepicker table tr td span.new,.datepicker table tr td span.old{color:#777}.datepicker .datepicker-switch{width:145px}.datepicker .datepicker-switch,.datepicker .next,.datepicker .prev,.datepicker tfoot tr th{cursor:pointer}.datepicker .datepicker-switch:hover,.datepicker .next:hover,.datepicker .prev:hover,.datepicker tfoot tr th:hover{background:#eee}.datepicker .next.disabled,.datepicker .prev.disabled{visibility:hidden}.datepicker .cw{font-size:10px;width:12px;padding:0 2px 0 5px;vertical-align:middle}.input-group.date .input-group-addon{cursor:pointer}.input-daterange{width:100%}.input-daterange input{text-align:center}.input-daterange input:first-child{border-radius:3px 0 0 3px}.input-daterange input:last-child{border-radius:0 3px 3px 0}.input-daterange .input-group-addon{width:auto;min-width:16px;padding:4px 5px;line-height:1.42857143;text-shadow:0 1px 0 #fff;border-width:1px 0;margin-left:-5px;margin-right:-5px}.datepicker.dropdown-menu{position:absolute;top:100%;left:0;z-index:1000;display:none;float:left;min-width:160px;list-style:none;background-color:#fff;border:1px solid #ccc;border:1px solid rgba(0,0,0,.15);border-radius:4px;-webkit-box-shadow:0 6px 12px rgba(0,0,0,.175);-moz-box-shadow:0 6px 12px rgba(0,0,0,.175);box-shadow:0 6px 12px rgba(0,0,0,.175);-webkit-background-clip:padding-box;-moz-background-clip:padding;background-clip:padding-box;color:#333;font-size:13px;line-height:1.42857143}.datepicker.datepicker-inline td,.datepicker.datepicker-inline th,.datepicker.dropdown-menu td,.datepicker.dropdown-menu th{padding:0 5px} \ No newline at end of file diff --git a/admin/bower_components/bootstrap-datepicker/dist/js/bootstrap-datepicker.js b/admin/bower_components/bootstrap-datepicker/dist/js/bootstrap-datepicker.js deleted file mode 100644 index 14dc8d2..0000000 --- a/admin/bower_components/bootstrap-datepicker/dist/js/bootstrap-datepicker.js +++ /dev/null @@ -1,2030 +0,0 @@ -/*! - * Datepicker for Bootstrap v1.7.1 (https://github.com/uxsolutions/bootstrap-datepicker) - * - * Licensed under the Apache License v2.0 (http://www.apache.org/licenses/LICENSE-2.0) - */ - -(function(factory){ - if (typeof define === "function" && define.amd) { - define(["jquery"], factory); - } else if (typeof exports === 'object') { - factory(require('jquery')); - } else { - factory(jQuery); - } -}(function($, undefined){ - function UTCDate(){ - return new Date(Date.UTC.apply(Date, arguments)); - } - function UTCToday(){ - var today = new Date(); - return UTCDate(today.getFullYear(), today.getMonth(), today.getDate()); - } - function isUTCEquals(date1, date2) { - return ( - date1.getUTCFullYear() === date2.getUTCFullYear() && - date1.getUTCMonth() === date2.getUTCMonth() && - date1.getUTCDate() === date2.getUTCDate() - ); - } - function alias(method, deprecationMsg){ - return function(){ - if (deprecationMsg !== undefined) { - $.fn.datepicker.deprecated(deprecationMsg); - } - - return this[method].apply(this, arguments); - }; - } - function isValidDate(d) { - return d && !isNaN(d.getTime()); - } - - var DateArray = (function(){ - var extras = { - get: function(i){ - return this.slice(i)[0]; - }, - contains: function(d){ - // Array.indexOf is not cross-browser; - // $.inArray doesn't work with Dates - var val = d && d.valueOf(); - for (var i=0, l=this.length; i < l; i++) - // Use date arithmetic to allow dates with different times to match - if (0 <= this[i].valueOf() - val && this[i].valueOf() - val < 1000*60*60*24) - return i; - return -1; - }, - remove: function(i){ - this.splice(i,1); - }, - replace: function(new_array){ - if (!new_array) - return; - if (!$.isArray(new_array)) - new_array = [new_array]; - this.clear(); - this.push.apply(this, new_array); - }, - clear: function(){ - this.length = 0; - }, - copy: function(){ - var a = new DateArray(); - a.replace(this); - return a; - } - }; - - return function(){ - var a = []; - a.push.apply(a, arguments); - $.extend(a, extras); - return a; - }; - })(); - - - // Picker object - - var Datepicker = function(element, options){ - $.data(element, 'datepicker', this); - this._process_options(options); - - this.dates = new DateArray(); - this.viewDate = this.o.defaultViewDate; - this.focusDate = null; - - this.element = $(element); - this.isInput = this.element.is('input'); - this.inputField = this.isInput ? this.element : this.element.find('input'); - this.component = this.element.hasClass('date') ? this.element.find('.add-on, .input-group-addon, .btn') : false; - if (this.component && this.component.length === 0) - this.component = false; - this.isInline = !this.component && this.element.is('div'); - - this.picker = $(DPGlobal.template); - - // Checking templates and inserting - if (this._check_template(this.o.templates.leftArrow)) { - this.picker.find('.prev').html(this.o.templates.leftArrow); - } - - if (this._check_template(this.o.templates.rightArrow)) { - this.picker.find('.next').html(this.o.templates.rightArrow); - } - - this._buildEvents(); - this._attachEvents(); - - if (this.isInline){ - this.picker.addClass('datepicker-inline').appendTo(this.element); - } - else { - this.picker.addClass('datepicker-dropdown dropdown-menu'); - } - - if (this.o.rtl){ - this.picker.addClass('datepicker-rtl'); - } - - if (this.o.calendarWeeks) { - this.picker.find('.datepicker-days .datepicker-switch, thead .datepicker-title, tfoot .today, tfoot .clear') - .attr('colspan', function(i, val){ - return Number(val) + 1; - }); - } - - this._process_options({ - startDate: this._o.startDate, - endDate: this._o.endDate, - daysOfWeekDisabled: this.o.daysOfWeekDisabled, - daysOfWeekHighlighted: this.o.daysOfWeekHighlighted, - datesDisabled: this.o.datesDisabled - }); - - this._allow_update = false; - this.setViewMode(this.o.startView); - this._allow_update = true; - - this.fillDow(); - this.fillMonths(); - - this.update(); - - if (this.isInline){ - this.show(); - } - }; - - Datepicker.prototype = { - constructor: Datepicker, - - _resolveViewName: function(view){ - $.each(DPGlobal.viewModes, function(i, viewMode){ - if (view === i || $.inArray(view, viewMode.names) !== -1){ - view = i; - return false; - } - }); - - return view; - }, - - _resolveDaysOfWeek: function(daysOfWeek){ - if (!$.isArray(daysOfWeek)) - daysOfWeek = daysOfWeek.split(/[,\s]*/); - return $.map(daysOfWeek, Number); - }, - - _check_template: function(tmp){ - try { - // If empty - if (tmp === undefined || tmp === "") { - return false; - } - // If no html, everything ok - if ((tmp.match(/[<>]/g) || []).length <= 0) { - return true; - } - // Checking if html is fine - var jDom = $(tmp); - return jDom.length > 0; - } - catch (ex) { - return false; - } - }, - - _process_options: function(opts){ - // Store raw options for reference - this._o = $.extend({}, this._o, opts); - // Processed options - var o = this.o = $.extend({}, this._o); - - // Check if "de-DE" style date is available, if not language should - // fallback to 2 letter code eg "de" - var lang = o.language; - if (!dates[lang]){ - lang = lang.split('-')[0]; - if (!dates[lang]) - lang = defaults.language; - } - o.language = lang; - - // Retrieve view index from any aliases - o.startView = this._resolveViewName(o.startView); - o.minViewMode = this._resolveViewName(o.minViewMode); - o.maxViewMode = this._resolveViewName(o.maxViewMode); - - // Check view is between min and max - o.startView = Math.max(this.o.minViewMode, Math.min(this.o.maxViewMode, o.startView)); - - // true, false, or Number > 0 - if (o.multidate !== true){ - o.multidate = Number(o.multidate) || false; - if (o.multidate !== false) - o.multidate = Math.max(0, o.multidate); - } - o.multidateSeparator = String(o.multidateSeparator); - - o.weekStart %= 7; - o.weekEnd = (o.weekStart + 6) % 7; - - var format = DPGlobal.parseFormat(o.format); - if (o.startDate !== -Infinity){ - if (!!o.startDate){ - if (o.startDate instanceof Date) - o.startDate = this._local_to_utc(this._zero_time(o.startDate)); - else - o.startDate = DPGlobal.parseDate(o.startDate, format, o.language, o.assumeNearbyYear); - } - else { - o.startDate = -Infinity; - } - } - if (o.endDate !== Infinity){ - if (!!o.endDate){ - if (o.endDate instanceof Date) - o.endDate = this._local_to_utc(this._zero_time(o.endDate)); - else - o.endDate = DPGlobal.parseDate(o.endDate, format, o.language, o.assumeNearbyYear); - } - else { - o.endDate = Infinity; - } - } - - o.daysOfWeekDisabled = this._resolveDaysOfWeek(o.daysOfWeekDisabled||[]); - o.daysOfWeekHighlighted = this._resolveDaysOfWeek(o.daysOfWeekHighlighted||[]); - - o.datesDisabled = o.datesDisabled||[]; - if (!$.isArray(o.datesDisabled)) { - o.datesDisabled = o.datesDisabled.split(','); - } - o.datesDisabled = $.map(o.datesDisabled, function(d){ - return DPGlobal.parseDate(d, format, o.language, o.assumeNearbyYear); - }); - - var plc = String(o.orientation).toLowerCase().split(/\s+/g), - _plc = o.orientation.toLowerCase(); - plc = $.grep(plc, function(word){ - return /^auto|left|right|top|bottom$/.test(word); - }); - o.orientation = {x: 'auto', y: 'auto'}; - if (!_plc || _plc === 'auto') - ; // no action - else if (plc.length === 1){ - switch (plc[0]){ - case 'top': - case 'bottom': - o.orientation.y = plc[0]; - break; - case 'left': - case 'right': - o.orientation.x = plc[0]; - break; - } - } - else { - _plc = $.grep(plc, function(word){ - return /^left|right$/.test(word); - }); - o.orientation.x = _plc[0] || 'auto'; - - _plc = $.grep(plc, function(word){ - return /^top|bottom$/.test(word); - }); - o.orientation.y = _plc[0] || 'auto'; - } - if (o.defaultViewDate instanceof Date || typeof o.defaultViewDate === 'string') { - o.defaultViewDate = DPGlobal.parseDate(o.defaultViewDate, format, o.language, o.assumeNearbyYear); - } else if (o.defaultViewDate) { - var year = o.defaultViewDate.year || new Date().getFullYear(); - var month = o.defaultViewDate.month || 0; - var day = o.defaultViewDate.day || 1; - o.defaultViewDate = UTCDate(year, month, day); - } else { - o.defaultViewDate = UTCToday(); - } - }, - _events: [], - _secondaryEvents: [], - _applyEvents: function(evs){ - for (var i=0, el, ch, ev; i < evs.length; i++){ - el = evs[i][0]; - if (evs[i].length === 2){ - ch = undefined; - ev = evs[i][1]; - } else if (evs[i].length === 3){ - ch = evs[i][1]; - ev = evs[i][2]; - } - el.on(ev, ch); - } - }, - _unapplyEvents: function(evs){ - for (var i=0, el, ev, ch; i < evs.length; i++){ - el = evs[i][0]; - if (evs[i].length === 2){ - ch = undefined; - ev = evs[i][1]; - } else if (evs[i].length === 3){ - ch = evs[i][1]; - ev = evs[i][2]; - } - el.off(ev, ch); - } - }, - _buildEvents: function(){ - var events = { - keyup: $.proxy(function(e){ - if ($.inArray(e.keyCode, [27, 37, 39, 38, 40, 32, 13, 9]) === -1) - this.update(); - }, this), - keydown: $.proxy(this.keydown, this), - paste: $.proxy(this.paste, this) - }; - - if (this.o.showOnFocus === true) { - events.focus = $.proxy(this.show, this); - } - - if (this.isInput) { // single input - this._events = [ - [this.element, events] - ]; - } - // component: input + button - else if (this.component && this.inputField.length) { - this._events = [ - // For components that are not readonly, allow keyboard nav - [this.inputField, events], - [this.component, { - click: $.proxy(this.show, this) - }] - ]; - } - else { - this._events = [ - [this.element, { - click: $.proxy(this.show, this), - keydown: $.proxy(this.keydown, this) - }] - ]; - } - this._events.push( - // Component: listen for blur on element descendants - [this.element, '*', { - blur: $.proxy(function(e){ - this._focused_from = e.target; - }, this) - }], - // Input: listen for blur on element - [this.element, { - blur: $.proxy(function(e){ - this._focused_from = e.target; - }, this) - }] - ); - - if (this.o.immediateUpdates) { - // Trigger input updates immediately on changed year/month - this._events.push([this.element, { - 'changeYear changeMonth': $.proxy(function(e){ - this.update(e.date); - }, this) - }]); - } - - this._secondaryEvents = [ - [this.picker, { - click: $.proxy(this.click, this) - }], - [this.picker, '.prev, .next', { - click: $.proxy(this.navArrowsClick, this) - }], - [this.picker, '.day:not(.disabled)', { - click: $.proxy(this.dayCellClick, this) - }], - [$(window), { - resize: $.proxy(this.place, this) - }], - [$(document), { - 'mousedown touchstart': $.proxy(function(e){ - // Clicked outside the datepicker, hide it - if (!( - this.element.is(e.target) || - this.element.find(e.target).length || - this.picker.is(e.target) || - this.picker.find(e.target).length || - this.isInline - )){ - this.hide(); - } - }, this) - }] - ]; - }, - _attachEvents: function(){ - this._detachEvents(); - this._applyEvents(this._events); - }, - _detachEvents: function(){ - this._unapplyEvents(this._events); - }, - _attachSecondaryEvents: function(){ - this._detachSecondaryEvents(); - this._applyEvents(this._secondaryEvents); - }, - _detachSecondaryEvents: function(){ - this._unapplyEvents(this._secondaryEvents); - }, - _trigger: function(event, altdate){ - var date = altdate || this.dates.get(-1), - local_date = this._utc_to_local(date); - - this.element.trigger({ - type: event, - date: local_date, - viewMode: this.viewMode, - dates: $.map(this.dates, this._utc_to_local), - format: $.proxy(function(ix, format){ - if (arguments.length === 0){ - ix = this.dates.length - 1; - format = this.o.format; - } else if (typeof ix === 'string'){ - format = ix; - ix = this.dates.length - 1; - } - format = format || this.o.format; - var date = this.dates.get(ix); - return DPGlobal.formatDate(date, format, this.o.language); - }, this) - }); - }, - - show: function(){ - if (this.inputField.prop('disabled') || (this.inputField.prop('readonly') && this.o.enableOnReadonly === false)) - return; - if (!this.isInline) - this.picker.appendTo(this.o.container); - this.place(); - this.picker.show(); - this._attachSecondaryEvents(); - this._trigger('show'); - if ((window.navigator.msMaxTouchPoints || 'ontouchstart' in document) && this.o.disableTouchKeyboard) { - $(this.element).blur(); - } - return this; - }, - - hide: function(){ - if (this.isInline || !this.picker.is(':visible')) - return this; - this.focusDate = null; - this.picker.hide().detach(); - this._detachSecondaryEvents(); - this.setViewMode(this.o.startView); - - if (this.o.forceParse && this.inputField.val()) - this.setValue(); - this._trigger('hide'); - return this; - }, - - destroy: function(){ - this.hide(); - this._detachEvents(); - this._detachSecondaryEvents(); - this.picker.remove(); - delete this.element.data().datepicker; - if (!this.isInput){ - delete this.element.data().date; - } - return this; - }, - - paste: function(e){ - var dateString; - if (e.originalEvent.clipboardData && e.originalEvent.clipboardData.types - && $.inArray('text/plain', e.originalEvent.clipboardData.types) !== -1) { - dateString = e.originalEvent.clipboardData.getData('text/plain'); - } else if (window.clipboardData) { - dateString = window.clipboardData.getData('Text'); - } else { - return; - } - this.setDate(dateString); - this.update(); - e.preventDefault(); - }, - - _utc_to_local: function(utc){ - if (!utc) { - return utc; - } - - var local = new Date(utc.getTime() + (utc.getTimezoneOffset() * 60000)); - - if (local.getTimezoneOffset() !== utc.getTimezoneOffset()) { - local = new Date(utc.getTime() + (local.getTimezoneOffset() * 60000)); - } - - return local; - }, - _local_to_utc: function(local){ - return local && new Date(local.getTime() - (local.getTimezoneOffset()*60000)); - }, - _zero_time: function(local){ - return local && new Date(local.getFullYear(), local.getMonth(), local.getDate()); - }, - _zero_utc_time: function(utc){ - return utc && UTCDate(utc.getUTCFullYear(), utc.getUTCMonth(), utc.getUTCDate()); - }, - - getDates: function(){ - return $.map(this.dates, this._utc_to_local); - }, - - getUTCDates: function(){ - return $.map(this.dates, function(d){ - return new Date(d); - }); - }, - - getDate: function(){ - return this._utc_to_local(this.getUTCDate()); - }, - - getUTCDate: function(){ - var selected_date = this.dates.get(-1); - if (selected_date !== undefined) { - return new Date(selected_date); - } else { - return null; - } - }, - - clearDates: function(){ - this.inputField.val(''); - this.update(); - this._trigger('changeDate'); - - if (this.o.autoclose) { - this.hide(); - } - }, - - setDates: function(){ - var args = $.isArray(arguments[0]) ? arguments[0] : arguments; - this.update.apply(this, args); - this._trigger('changeDate'); - this.setValue(); - return this; - }, - - setUTCDates: function(){ - var args = $.isArray(arguments[0]) ? arguments[0] : arguments; - this.setDates.apply(this, $.map(args, this._utc_to_local)); - return this; - }, - - setDate: alias('setDates'), - setUTCDate: alias('setUTCDates'), - remove: alias('destroy', 'Method `remove` is deprecated and will be removed in version 2.0. Use `destroy` instead'), - - setValue: function(){ - var formatted = this.getFormattedDate(); - this.inputField.val(formatted); - return this; - }, - - getFormattedDate: function(format){ - if (format === undefined) - format = this.o.format; - - var lang = this.o.language; - return $.map(this.dates, function(d){ - return DPGlobal.formatDate(d, format, lang); - }).join(this.o.multidateSeparator); - }, - - getStartDate: function(){ - return this.o.startDate; - }, - - setStartDate: function(startDate){ - this._process_options({startDate: startDate}); - this.update(); - this.updateNavArrows(); - return this; - }, - - getEndDate: function(){ - return this.o.endDate; - }, - - setEndDate: function(endDate){ - this._process_options({endDate: endDate}); - this.update(); - this.updateNavArrows(); - return this; - }, - - setDaysOfWeekDisabled: function(daysOfWeekDisabled){ - this._process_options({daysOfWeekDisabled: daysOfWeekDisabled}); - this.update(); - return this; - }, - - setDaysOfWeekHighlighted: function(daysOfWeekHighlighted){ - this._process_options({daysOfWeekHighlighted: daysOfWeekHighlighted}); - this.update(); - return this; - }, - - setDatesDisabled: function(datesDisabled){ - this._process_options({datesDisabled: datesDisabled}); - this.update(); - return this; - }, - - place: function(){ - if (this.isInline) - return this; - var calendarWidth = this.picker.outerWidth(), - calendarHeight = this.picker.outerHeight(), - visualPadding = 10, - container = $(this.o.container), - windowWidth = container.width(), - scrollTop = this.o.container === 'body' ? $(document).scrollTop() : container.scrollTop(), - appendOffset = container.offset(); - - var parentsZindex = [0]; - this.element.parents().each(function(){ - var itemZIndex = $(this).css('z-index'); - if (itemZIndex !== 'auto' && Number(itemZIndex) !== 0) parentsZindex.push(Number(itemZIndex)); - }); - var zIndex = Math.max.apply(Math, parentsZindex) + this.o.zIndexOffset; - var offset = this.component ? this.component.parent().offset() : this.element.offset(); - var height = this.component ? this.component.outerHeight(true) : this.element.outerHeight(false); - var width = this.component ? this.component.outerWidth(true) : this.element.outerWidth(false); - var left = offset.left - appendOffset.left; - var top = offset.top - appendOffset.top; - - if (this.o.container !== 'body') { - top += scrollTop; - } - - this.picker.removeClass( - 'datepicker-orient-top datepicker-orient-bottom '+ - 'datepicker-orient-right datepicker-orient-left' - ); - - if (this.o.orientation.x !== 'auto'){ - this.picker.addClass('datepicker-orient-' + this.o.orientation.x); - if (this.o.orientation.x === 'right') - left -= calendarWidth - width; - } - // auto x orientation is best-placement: if it crosses a window - // edge, fudge it sideways - else { - if (offset.left < 0) { - // component is outside the window on the left side. Move it into visible range - this.picker.addClass('datepicker-orient-left'); - left -= offset.left - visualPadding; - } else if (left + calendarWidth > windowWidth) { - // the calendar passes the widow right edge. Align it to component right side - this.picker.addClass('datepicker-orient-right'); - left += width - calendarWidth; - } else { - if (this.o.rtl) { - // Default to right - this.picker.addClass('datepicker-orient-right'); - } else { - // Default to left - this.picker.addClass('datepicker-orient-left'); - } - } - } - - // auto y orientation is best-situation: top or bottom, no fudging, - // decision based on which shows more of the calendar - var yorient = this.o.orientation.y, - top_overflow; - if (yorient === 'auto'){ - top_overflow = -scrollTop + top - calendarHeight; - yorient = top_overflow < 0 ? 'bottom' : 'top'; - } - - this.picker.addClass('datepicker-orient-' + yorient); - if (yorient === 'top') - top -= calendarHeight + parseInt(this.picker.css('padding-top')); - else - top += height; - - if (this.o.rtl) { - var right = windowWidth - (left + width); - this.picker.css({ - top: top, - right: right, - zIndex: zIndex - }); - } else { - this.picker.css({ - top: top, - left: left, - zIndex: zIndex - }); - } - return this; - }, - - _allow_update: true, - update: function(){ - if (!this._allow_update) - return this; - - var oldDates = this.dates.copy(), - dates = [], - fromArgs = false; - if (arguments.length){ - $.each(arguments, $.proxy(function(i, date){ - if (date instanceof Date) - date = this._local_to_utc(date); - dates.push(date); - }, this)); - fromArgs = true; - } else { - dates = this.isInput - ? this.element.val() - : this.element.data('date') || this.inputField.val(); - if (dates && this.o.multidate) - dates = dates.split(this.o.multidateSeparator); - else - dates = [dates]; - delete this.element.data().date; - } - - dates = $.map(dates, $.proxy(function(date){ - return DPGlobal.parseDate(date, this.o.format, this.o.language, this.o.assumeNearbyYear); - }, this)); - dates = $.grep(dates, $.proxy(function(date){ - return ( - !this.dateWithinRange(date) || - !date - ); - }, this), true); - this.dates.replace(dates); - - if (this.o.updateViewDate) { - if (this.dates.length) - this.viewDate = new Date(this.dates.get(-1)); - else if (this.viewDate < this.o.startDate) - this.viewDate = new Date(this.o.startDate); - else if (this.viewDate > this.o.endDate) - this.viewDate = new Date(this.o.endDate); - else - this.viewDate = this.o.defaultViewDate; - } - - if (fromArgs){ - // setting date by clicking - this.setValue(); - this.element.change(); - } - else if (this.dates.length){ - // setting date by typing - if (String(oldDates) !== String(this.dates) && fromArgs) { - this._trigger('changeDate'); - this.element.change(); - } - } - if (!this.dates.length && oldDates.length) { - this._trigger('clearDate'); - this.element.change(); - } - - this.fill(); - return this; - }, - - fillDow: function(){ - if (this.o.showWeekDays) { - var dowCnt = this.o.weekStart, - html = '<tr>'; - if (this.o.calendarWeeks){ - html += '<th class="cw">&#160;</th>'; - } - while (dowCnt < this.o.weekStart + 7){ - html += '<th class="dow'; - if ($.inArray(dowCnt, this.o.daysOfWeekDisabled) !== -1) - html += ' disabled'; - html += '">'+dates[this.o.language].daysMin[(dowCnt++)%7]+'</th>'; - } - html += '</tr>'; - this.picker.find('.datepicker-days thead').append(html); - } - }, - - fillMonths: function(){ - var localDate = this._utc_to_local(this.viewDate); - var html = ''; - var focused; - for (var i = 0; i < 12; i++){ - focused = localDate && localDate.getMonth() === i ? ' focused' : ''; - html += '<span class="month' + focused + '">' + dates[this.o.language].monthsShort[i] + '</span>'; - } - this.picker.find('.datepicker-months td').html(html); - }, - - setRange: function(range){ - if (!range || !range.length) - delete this.range; - else - this.range = $.map(range, function(d){ - return d.valueOf(); - }); - this.fill(); - }, - - getClassNames: function(date){ - var cls = [], - year = this.viewDate.getUTCFullYear(), - month = this.viewDate.getUTCMonth(), - today = UTCToday(); - if (date.getUTCFullYear() < year || (date.getUTCFullYear() === year && date.getUTCMonth() < month)){ - cls.push('old'); - } else if (date.getUTCFullYear() > year || (date.getUTCFullYear() === year && date.getUTCMonth() > month)){ - cls.push('new'); - } - if (this.focusDate && date.valueOf() === this.focusDate.valueOf()) - cls.push('focused'); - // Compare internal UTC date with UTC today, not local today - if (this.o.todayHighlight && isUTCEquals(date, today)) { - cls.push('today'); - } - if (this.dates.contains(date) !== -1) - cls.push('active'); - if (!this.dateWithinRange(date)){ - cls.push('disabled'); - } - if (this.dateIsDisabled(date)){ - cls.push('disabled', 'disabled-date'); - } - if ($.inArray(date.getUTCDay(), this.o.daysOfWeekHighlighted) !== -1){ - cls.push('highlighted'); - } - - if (this.range){ - if (date > this.range[0] && date < this.range[this.range.length-1]){ - cls.push('range'); - } - if ($.inArray(date.valueOf(), this.range) !== -1){ - cls.push('selected'); - } - if (date.valueOf() === this.range[0]){ - cls.push('range-start'); - } - if (date.valueOf() === this.range[this.range.length-1]){ - cls.push('range-end'); - } - } - return cls; - }, - - _fill_yearsView: function(selector, cssClass, factor, year, startYear, endYear, beforeFn){ - var html = ''; - var step = factor / 10; - var view = this.picker.find(selector); - var startVal = Math.floor(year / factor) * factor; - var endVal = startVal + step * 9; - var focusedVal = Math.floor(this.viewDate.getFullYear() / step) * step; - var selected = $.map(this.dates, function(d){ - return Math.floor(d.getUTCFullYear() / step) * step; - }); - - var classes, tooltip, before; - for (var currVal = startVal - step; currVal <= endVal + step; currVal += step) { - classes = [cssClass]; - tooltip = null; - - if (currVal === startVal - step) { - classes.push('old'); - } else if (currVal === endVal + step) { - classes.push('new'); - } - if ($.inArray(currVal, selected) !== -1) { - classes.push('active'); - } - if (currVal < startYear || currVal > endYear) { - classes.push('disabled'); - } - if (currVal === focusedVal) { - classes.push('focused'); - } - - if (beforeFn !== $.noop) { - before = beforeFn(new Date(currVal, 0, 1)); - if (before === undefined) { - before = {}; - } else if (typeof before === 'boolean') { - before = {enabled: before}; - } else if (typeof before === 'string') { - before = {classes: before}; - } - if (before.enabled === false) { - classes.push('disabled'); - } - if (before.classes) { - classes = classes.concat(before.classes.split(/\s+/)); - } - if (before.tooltip) { - tooltip = before.tooltip; - } - } - - html += '<span class="' + classes.join(' ') + '"' + (tooltip ? ' title="' + tooltip + '"' : '') + '>' + currVal + '</span>'; - } - - view.find('.datepicker-switch').text(startVal + '-' + endVal); - view.find('td').html(html); - }, - - fill: function(){ - var d = new Date(this.viewDate), - year = d.getUTCFullYear(), - month = d.getUTCMonth(), - startYear = this.o.startDate !== -Infinity ? this.o.startDate.getUTCFullYear() : -Infinity, - startMonth = this.o.startDate !== -Infinity ? this.o.startDate.getUTCMonth() : -Infinity, - endYear = this.o.endDate !== Infinity ? this.o.endDate.getUTCFullYear() : Infinity, - endMonth = this.o.endDate !== Infinity ? this.o.endDate.getUTCMonth() : Infinity, - todaytxt = dates[this.o.language].today || dates['en'].today || '', - cleartxt = dates[this.o.language].clear || dates['en'].clear || '', - titleFormat = dates[this.o.language].titleFormat || dates['en'].titleFormat, - tooltip, - before; - if (isNaN(year) || isNaN(month)) - return; - this.picker.find('.datepicker-days .datepicker-switch') - .text(DPGlobal.formatDate(d, titleFormat, this.o.language)); - this.picker.find('tfoot .today') - .text(todaytxt) - .css('display', this.o.todayBtn === true || this.o.todayBtn === 'linked' ? 'table-cell' : 'none'); - this.picker.find('tfoot .clear') - .text(cleartxt) - .css('display', this.o.clearBtn === true ? 'table-cell' : 'none'); - this.picker.find('thead .datepicker-title') - .text(this.o.title) - .css('display', typeof this.o.title === 'string' && this.o.title !== '' ? 'table-cell' : 'none'); - this.updateNavArrows(); - this.fillMonths(); - var prevMonth = UTCDate(year, month, 0), - day = prevMonth.getUTCDate(); - prevMonth.setUTCDate(day - (prevMonth.getUTCDay() - this.o.weekStart + 7)%7); - var nextMonth = new Date(prevMonth); - if (prevMonth.getUTCFullYear() < 100){ - nextMonth.setUTCFullYear(prevMonth.getUTCFullYear()); - } - nextMonth.setUTCDate(nextMonth.getUTCDate() + 42); - nextMonth = nextMonth.valueOf(); - var html = []; - var weekDay, clsName; - while (prevMonth.valueOf() < nextMonth){ - weekDay = prevMonth.getUTCDay(); - if (weekDay === this.o.weekStart){ - html.push('<tr>'); - if (this.o.calendarWeeks){ - // ISO 8601: First week contains first thursday. - // ISO also states week starts on Monday, but we can be more abstract here. - var - // Start of current week: based on weekstart/current date - ws = new Date(+prevMonth + (this.o.weekStart - weekDay - 7) % 7 * 864e5), - // Thursday of this week - th = new Date(Number(ws) + (7 + 4 - ws.getUTCDay()) % 7 * 864e5), - // First Thursday of year, year from thursday - yth = new Date(Number(yth = UTCDate(th.getUTCFullYear(), 0, 1)) + (7 + 4 - yth.getUTCDay()) % 7 * 864e5), - // Calendar week: ms between thursdays, div ms per day, div 7 days - calWeek = (th - yth) / 864e5 / 7 + 1; - html.push('<td class="cw">'+ calWeek +'</td>'); - } - } - clsName = this.getClassNames(prevMonth); - clsName.push('day'); - - var content = prevMonth.getUTCDate(); - - if (this.o.beforeShowDay !== $.noop){ - before = this.o.beforeShowDay(this._utc_to_local(prevMonth)); - if (before === undefined) - before = {}; - else if (typeof before === 'boolean') - before = {enabled: before}; - else if (typeof before === 'string') - before = {classes: before}; - if (before.enabled === false) - clsName.push('disabled'); - if (before.classes) - clsName = clsName.concat(before.classes.split(/\s+/)); - if (before.tooltip) - tooltip = before.tooltip; - if (before.content) - content = before.content; - } - - //Check if uniqueSort exists (supported by jquery >=1.12 and >=2.2) - //Fallback to unique function for older jquery versions - if ($.isFunction($.uniqueSort)) { - clsName = $.uniqueSort(clsName); - } else { - clsName = $.unique(clsName); - } - - html.push('<td class="'+clsName.join(' ')+'"' + (tooltip ? ' title="'+tooltip+'"' : '') + ' data-date="' + prevMonth.getTime().toString() + '">' + content + '</td>'); - tooltip = null; - if (weekDay === this.o.weekEnd){ - html.push('</tr>'); - } - prevMonth.setUTCDate(prevMonth.getUTCDate() + 1); - } - this.picker.find('.datepicker-days tbody').html(html.join('')); - - var monthsTitle = dates[this.o.language].monthsTitle || dates['en'].monthsTitle || 'Months'; - var months = this.picker.find('.datepicker-months') - .find('.datepicker-switch') - .text(this.o.maxViewMode < 2 ? monthsTitle : year) - .end() - .find('tbody span').removeClass('active'); - - $.each(this.dates, function(i, d){ - if (d.getUTCFullYear() === year) - months.eq(d.getUTCMonth()).addClass('active'); - }); - - if (year < startYear || year > endYear){ - months.addClass('disabled'); - } - if (year === startYear){ - months.slice(0, startMonth).addClass('disabled'); - } - if (year === endYear){ - months.slice(endMonth+1).addClass('disabled'); - } - - if (this.o.beforeShowMonth !== $.noop){ - var that = this; - $.each(months, function(i, month){ - var moDate = new Date(year, i, 1); - var before = that.o.beforeShowMonth(moDate); - if (before === undefined) - before = {}; - else if (typeof before === 'boolean') - before = {enabled: before}; - else if (typeof before === 'string') - before = {classes: before}; - if (before.enabled === false && !$(month).hasClass('disabled')) - $(month).addClass('disabled'); - if (before.classes) - $(month).addClass(before.classes); - if (before.tooltip) - $(month).prop('title', before.tooltip); - }); - } - - // Generating decade/years picker - this._fill_yearsView( - '.datepicker-years', - 'year', - 10, - year, - startYear, - endYear, - this.o.beforeShowYear - ); - - // Generating century/decades picker - this._fill_yearsView( - '.datepicker-decades', - 'decade', - 100, - year, - startYear, - endYear, - this.o.beforeShowDecade - ); - - // Generating millennium/centuries picker - this._fill_yearsView( - '.datepicker-centuries', - 'century', - 1000, - year, - startYear, - endYear, - this.o.beforeShowCentury - ); - }, - - updateNavArrows: function(){ - if (!this._allow_update) - return; - - var d = new Date(this.viewDate), - year = d.getUTCFullYear(), - month = d.getUTCMonth(), - startYear = this.o.startDate !== -Infinity ? this.o.startDate.getUTCFullYear() : -Infinity, - startMonth = this.o.startDate !== -Infinity ? this.o.startDate.getUTCMonth() : -Infinity, - endYear = this.o.endDate !== Infinity ? this.o.endDate.getUTCFullYear() : Infinity, - endMonth = this.o.endDate !== Infinity ? this.o.endDate.getUTCMonth() : Infinity, - prevIsDisabled, - nextIsDisabled, - factor = 1; - switch (this.viewMode){ - case 0: - prevIsDisabled = year <= startYear && month <= startMonth; - nextIsDisabled = year >= endYear && month >= endMonth; - break; - case 4: - factor *= 10; - /* falls through */ - case 3: - factor *= 10; - /* falls through */ - case 2: - factor *= 10; - /* falls through */ - case 1: - prevIsDisabled = Math.floor(year / factor) * factor <= startYear; - nextIsDisabled = Math.floor(year / factor) * factor + factor >= endYear; - break; - } - - this.picker.find('.prev').toggleClass('disabled', prevIsDisabled); - this.picker.find('.next').toggleClass('disabled', nextIsDisabled); - }, - - click: function(e){ - e.preventDefault(); - e.stopPropagation(); - - var target, dir, day, year, month; - target = $(e.target); - - // Clicked on the switch - if (target.hasClass('datepicker-switch') && this.viewMode !== this.o.maxViewMode){ - this.setViewMode(this.viewMode + 1); - } - - // Clicked on today button - if (target.hasClass('today') && !target.hasClass('day')){ - this.setViewMode(0); - this._setDate(UTCToday(), this.o.todayBtn === 'linked' ? null : 'view'); - } - - // Clicked on clear button - if (target.hasClass('clear')){ - this.clearDates(); - } - - if (!target.hasClass('disabled')){ - // Clicked on a month, year, decade, century - if (target.hasClass('month') - || target.hasClass('year') - || target.hasClass('decade') - || target.hasClass('century')) { - this.viewDate.setUTCDate(1); - - day = 1; - if (this.viewMode === 1){ - month = target.parent().find('span').index(target); - year = this.viewDate.getUTCFullYear(); - this.viewDate.setUTCMonth(month); - } else { - month = 0; - year = Number(target.text()); - this.viewDate.setUTCFullYear(year); - } - - this._trigger(DPGlobal.viewModes[this.viewMode - 1].e, this.viewDate); - - if (this.viewMode === this.o.minViewMode){ - this._setDate(UTCDate(year, month, day)); - } else { - this.setViewMode(this.viewMode - 1); - this.fill(); - } - } - } - - if (this.picker.is(':visible') && this._focused_from){ - this._focused_from.focus(); - } - delete this._focused_from; - }, - - dayCellClick: function(e){ - var $target = $(e.currentTarget); - var timestamp = $target.data('date'); - var date = new Date(timestamp); - - if (this.o.updateViewDate) { - if (date.getUTCFullYear() !== this.viewDate.getUTCFullYear()) { - this._trigger('changeYear', this.viewDate); - } - - if (date.getUTCMonth() !== this.viewDate.getUTCMonth()) { - this._trigger('changeMonth', this.viewDate); - } - } - this._setDate(date); - }, - - // Clicked on prev or next - navArrowsClick: function(e){ - var $target = $(e.currentTarget); - var dir = $target.hasClass('prev') ? -1 : 1; - if (this.viewMode !== 0){ - dir *= DPGlobal.viewModes[this.viewMode].navStep * 12; - } - this.viewDate = this.moveMonth(this.viewDate, dir); - this._trigger(DPGlobal.viewModes[this.viewMode].e, this.viewDate); - this.fill(); - }, - - _toggle_multidate: function(date){ - var ix = this.dates.contains(date); - if (!date){ - this.dates.clear(); - } - - if (ix !== -1){ - if (this.o.multidate === true || this.o.multidate > 1 || this.o.toggleActive){ - this.dates.remove(ix); - } - } else if (this.o.multidate === false) { - this.dates.clear(); - this.dates.push(date); - } - else { - this.dates.push(date); - } - - if (typeof this.o.multidate === 'number') - while (this.dates.length > this.o.multidate) - this.dates.remove(0); - }, - - _setDate: function(date, which){ - if (!which || which === 'date') - this._toggle_multidate(date && new Date(date)); - if ((!which && this.o.updateViewDate) || which === 'view') - this.viewDate = date && new Date(date); - - this.fill(); - this.setValue(); - if (!which || which !== 'view') { - this._trigger('changeDate'); - } - this.inputField.trigger('change'); - if (this.o.autoclose && (!which || which === 'date')){ - this.hide(); - } - }, - - moveDay: function(date, dir){ - var newDate = new Date(date); - newDate.setUTCDate(date.getUTCDate() + dir); - - return newDate; - }, - - moveWeek: function(date, dir){ - return this.moveDay(date, dir * 7); - }, - - moveMonth: function(date, dir){ - if (!isValidDate(date)) - return this.o.defaultViewDate; - if (!dir) - return date; - var new_date = new Date(date.valueOf()), - day = new_date.getUTCDate(), - month = new_date.getUTCMonth(), - mag = Math.abs(dir), - new_month, test; - dir = dir > 0 ? 1 : -1; - if (mag === 1){ - test = dir === -1 - // If going back one month, make sure month is not current month - // (eg, Mar 31 -> Feb 31 == Feb 28, not Mar 02) - ? function(){ - return new_date.getUTCMonth() === month; - } - // If going forward one month, make sure month is as expected - // (eg, Jan 31 -> Feb 31 == Feb 28, not Mar 02) - : function(){ - return new_date.getUTCMonth() !== new_month; - }; - new_month = month + dir; - new_date.setUTCMonth(new_month); - // Dec -> Jan (12) or Jan -> Dec (-1) -- limit expected date to 0-11 - new_month = (new_month + 12) % 12; - } - else { - // For magnitudes >1, move one month at a time... - for (var i=0; i < mag; i++) - // ...which might decrease the day (eg, Jan 31 to Feb 28, etc)... - new_date = this.moveMonth(new_date, dir); - // ...then reset the day, keeping it in the new month - new_month = new_date.getUTCMonth(); - new_date.setUTCDate(day); - test = function(){ - return new_month !== new_date.getUTCMonth(); - }; - } - // Common date-resetting loop -- if date is beyond end of month, make it - // end of month - while (test()){ - new_date.setUTCDate(--day); - new_date.setUTCMonth(new_month); - } - return new_date; - }, - - moveYear: function(date, dir){ - return this.moveMonth(date, dir*12); - }, - - moveAvailableDate: function(date, dir, fn){ - do { - date = this[fn](date, dir); - - if (!this.dateWithinRange(date)) - return false; - - fn = 'moveDay'; - } - while (this.dateIsDisabled(date)); - - return date; - }, - - weekOfDateIsDisabled: function(date){ - return $.inArray(date.getUTCDay(), this.o.daysOfWeekDisabled) !== -1; - }, - - dateIsDisabled: function(date){ - return ( - this.weekOfDateIsDisabled(date) || - $.grep(this.o.datesDisabled, function(d){ - return isUTCEquals(date, d); - }).length > 0 - ); - }, - - dateWithinRange: function(date){ - return date >= this.o.startDate && date <= this.o.endDate; - }, - - keydown: function(e){ - if (!this.picker.is(':visible')){ - if (e.keyCode === 40 || e.keyCode === 27) { // allow down to re-show picker - this.show(); - e.stopPropagation(); - } - return; - } - var dateChanged = false, - dir, newViewDate, - focusDate = this.focusDate || this.viewDate; - switch (e.keyCode){ - case 27: // escape - if (this.focusDate){ - this.focusDate = null; - this.viewDate = this.dates.get(-1) || this.viewDate; - this.fill(); - } - else - this.hide(); - e.preventDefault(); - e.stopPropagation(); - break; - case 37: // left - case 38: // up - case 39: // right - case 40: // down - if (!this.o.keyboardNavigation || this.o.daysOfWeekDisabled.length === 7) - break; - dir = e.keyCode === 37 || e.keyCode === 38 ? -1 : 1; - if (this.viewMode === 0) { - if (e.ctrlKey){ - newViewDate = this.moveAvailableDate(focusDate, dir, 'moveYear'); - - if (newViewDate) - this._trigger('changeYear', this.viewDate); - } else if (e.shiftKey){ - newViewDate = this.moveAvailableDate(focusDate, dir, 'moveMonth'); - - if (newViewDate) - this._trigger('changeMonth', this.viewDate); - } else if (e.keyCode === 37 || e.keyCode === 39){ - newViewDate = this.moveAvailableDate(focusDate, dir, 'moveDay'); - } else if (!this.weekOfDateIsDisabled(focusDate)){ - newViewDate = this.moveAvailableDate(focusDate, dir, 'moveWeek'); - } - } else if (this.viewMode === 1) { - if (e.keyCode === 38 || e.keyCode === 40) { - dir = dir * 4; - } - newViewDate = this.moveAvailableDate(focusDate, dir, 'moveMonth'); - } else if (this.viewMode === 2) { - if (e.keyCode === 38 || e.keyCode === 40) { - dir = dir * 4; - } - newViewDate = this.moveAvailableDate(focusDate, dir, 'moveYear'); - } - if (newViewDate){ - this.focusDate = this.viewDate = newViewDate; - this.setValue(); - this.fill(); - e.preventDefault(); - } - break; - case 13: // enter - if (!this.o.forceParse) - break; - focusDate = this.focusDate || this.dates.get(-1) || this.viewDate; - if (this.o.keyboardNavigation) { - this._toggle_multidate(focusDate); - dateChanged = true; - } - this.focusDate = null; - this.viewDate = this.dates.get(-1) || this.viewDate; - this.setValue(); - this.fill(); - if (this.picker.is(':visible')){ - e.preventDefault(); - e.stopPropagation(); - if (this.o.autoclose) - this.hide(); - } - break; - case 9: // tab - this.focusDate = null; - this.viewDate = this.dates.get(-1) || this.viewDate; - this.fill(); - this.hide(); - break; - } - if (dateChanged){ - if (this.dates.length) - this._trigger('changeDate'); - else - this._trigger('clearDate'); - this.inputField.trigger('change'); - } - }, - - setViewMode: function(viewMode){ - this.viewMode = viewMode; - this.picker - .children('div') - .hide() - .filter('.datepicker-' + DPGlobal.viewModes[this.viewMode].clsName) - .show(); - this.updateNavArrows(); - this._trigger('changeViewMode', new Date(this.viewDate)); - } - }; - - var DateRangePicker = function(element, options){ - $.data(element, 'datepicker', this); - this.element = $(element); - this.inputs = $.map(options.inputs, function(i){ - return i.jquery ? i[0] : i; - }); - delete options.inputs; - - this.keepEmptyValues = options.keepEmptyValues; - delete options.keepEmptyValues; - - datepickerPlugin.call($(this.inputs), options) - .on('changeDate', $.proxy(this.dateUpdated, this)); - - this.pickers = $.map(this.inputs, function(i){ - return $.data(i, 'datepicker'); - }); - this.updateDates(); - }; - DateRangePicker.prototype = { - updateDates: function(){ - this.dates = $.map(this.pickers, function(i){ - return i.getUTCDate(); - }); - this.updateRanges(); - }, - updateRanges: function(){ - var range = $.map(this.dates, function(d){ - return d.valueOf(); - }); - $.each(this.pickers, function(i, p){ - p.setRange(range); - }); - }, - dateUpdated: function(e){ - // `this.updating` is a workaround for preventing infinite recursion - // between `changeDate` triggering and `setUTCDate` calling. Until - // there is a better mechanism. - if (this.updating) - return; - this.updating = true; - - var dp = $.data(e.target, 'datepicker'); - - if (dp === undefined) { - return; - } - - var new_date = dp.getUTCDate(), - keep_empty_values = this.keepEmptyValues, - i = $.inArray(e.target, this.inputs), - j = i - 1, - k = i + 1, - l = this.inputs.length; - if (i === -1) - return; - - $.each(this.pickers, function(i, p){ - if (!p.getUTCDate() && (p === dp || !keep_empty_values)) - p.setUTCDate(new_date); - }); - - if (new_date < this.dates[j]){ - // Date being moved earlier/left - while (j >= 0 && new_date < this.dates[j]){ - this.pickers[j--].setUTCDate(new_date); - } - } else if (new_date > this.dates[k]){ - // Date being moved later/right - while (k < l && new_date > this.dates[k]){ - this.pickers[k++].setUTCDate(new_date); - } - } - this.updateDates(); - - delete this.updating; - }, - destroy: function(){ - $.map(this.pickers, function(p){ p.destroy(); }); - $(this.inputs).off('changeDate', this.dateUpdated); - delete this.element.data().datepicker; - }, - remove: alias('destroy', 'Method `remove` is deprecated and will be removed in version 2.0. Use `destroy` instead') - }; - - function opts_from_el(el, prefix){ - // Derive options from element data-attrs - var data = $(el).data(), - out = {}, inkey, - replace = new RegExp('^' + prefix.toLowerCase() + '([A-Z])'); - prefix = new RegExp('^' + prefix.toLowerCase()); - function re_lower(_,a){ - return a.toLowerCase(); - } - for (var key in data) - if (prefix.test(key)){ - inkey = key.replace(replace, re_lower); - out[inkey] = data[key]; - } - return out; - } - - function opts_from_locale(lang){ - // Derive options from locale plugins - var out = {}; - // Check if "de-DE" style date is available, if not language should - // fallback to 2 letter code eg "de" - if (!dates[lang]){ - lang = lang.split('-')[0]; - if (!dates[lang]) - return; - } - var d = dates[lang]; - $.each(locale_opts, function(i,k){ - if (k in d) - out[k] = d[k]; - }); - return out; - } - - var old = $.fn.datepicker; - var datepickerPlugin = function(option){ - var args = Array.apply(null, arguments); - args.shift(); - var internal_return; - this.each(function(){ - var $this = $(this), - data = $this.data('datepicker'), - options = typeof option === 'object' && option; - if (!data){ - var elopts = opts_from_el(this, 'date'), - // Preliminary otions - xopts = $.extend({}, defaults, elopts, options), - locopts = opts_from_locale(xopts.language), - // Options priority: js args, data-attrs, locales, defaults - opts = $.extend({}, defaults, locopts, elopts, options); - if ($this.hasClass('input-daterange') || opts.inputs){ - $.extend(opts, { - inputs: opts.inputs || $this.find('input').toArray() - }); - data = new DateRangePicker(this, opts); - } - else { - data = new Datepicker(this, opts); - } - $this.data('datepicker', data); - } - if (typeof option === 'string' && typeof data[option] === 'function'){ - internal_return = data[option].apply(data, args); - } - }); - - if ( - internal_return === undefined || - internal_return instanceof Datepicker || - internal_return instanceof DateRangePicker - ) - return this; - - if (this.length > 1) - throw new Error('Using only allowed for the collection of a single element (' + option + ' function)'); - else - return internal_return; - }; - $.fn.datepicker = datepickerPlugin; - - var defaults = $.fn.datepicker.defaults = { - assumeNearbyYear: false, - autoclose: false, - beforeShowDay: $.noop, - beforeShowMonth: $.noop, - beforeShowYear: $.noop, - beforeShowDecade: $.noop, - beforeShowCentury: $.noop, - calendarWeeks: false, - clearBtn: false, - toggleActive: false, - daysOfWeekDisabled: [], - daysOfWeekHighlighted: [], - datesDisabled: [], - endDate: Infinity, - forceParse: true, - format: 'mm/dd/yyyy', - keepEmptyValues: false, - keyboardNavigation: true, - language: 'en', - minViewMode: 0, - maxViewMode: 4, - multidate: false, - multidateSeparator: ',', - orientation: "auto", - rtl: false, - startDate: -Infinity, - startView: 0, - todayBtn: false, - todayHighlight: false, - updateViewDate: true, - weekStart: 0, - disableTouchKeyboard: false, - enableOnReadonly: true, - showOnFocus: true, - zIndexOffset: 10, - container: 'body', - immediateUpdates: false, - title: '', - templates: { - leftArrow: '&#x00AB;', - rightArrow: '&#x00BB;' - }, - showWeekDays: true - }; - var locale_opts = $.fn.datepicker.locale_opts = [ - 'format', - 'rtl', - 'weekStart' - ]; - $.fn.datepicker.Constructor = Datepicker; - var dates = $.fn.datepicker.dates = { - en: { - days: ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"], - daysShort: ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"], - daysMin: ["Su", "Mo", "Tu", "We", "Th", "Fr", "Sa"], - months: ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"], - monthsShort: ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"], - today: "Today", - clear: "Clear", - titleFormat: "MM yyyy" - } - }; - - var DPGlobal = { - viewModes: [ - { - names: ['days', 'month'], - clsName: 'days', - e: 'changeMonth' - }, - { - names: ['months', 'year'], - clsName: 'months', - e: 'changeYear', - navStep: 1 - }, - { - names: ['years', 'decade'], - clsName: 'years', - e: 'changeDecade', - navStep: 10 - }, - { - names: ['decades', 'century'], - clsName: 'decades', - e: 'changeCentury', - navStep: 100 - }, - { - names: ['centuries', 'millennium'], - clsName: 'centuries', - e: 'changeMillennium', - navStep: 1000 - } - ], - validParts: /dd?|DD?|mm?|MM?|yy(?:yy)?/g, - nonpunctuation: /[^ -\/:-@\u5e74\u6708\u65e5\[-`{-~\t\n\r]+/g, - parseFormat: function(format){ - if (typeof format.toValue === 'function' && typeof format.toDisplay === 'function') - return format; - // IE treats \0 as a string end in inputs (truncating the value), - // so it's a bad format delimiter, anyway - var separators = format.replace(this.validParts, '\0').split('\0'), - parts = format.match(this.validParts); - if (!separators || !separators.length || !parts || parts.length === 0){ - throw new Error("Invalid date format."); - } - return {separators: separators, parts: parts}; - }, - parseDate: function(date, format, language, assumeNearby){ - if (!date) - return undefined; - if (date instanceof Date) - return date; - if (typeof format === 'string') - format = DPGlobal.parseFormat(format); - if (format.toValue) - return format.toValue(date, format, language); - var fn_map = { - d: 'moveDay', - m: 'moveMonth', - w: 'moveWeek', - y: 'moveYear' - }, - dateAliases = { - yesterday: '-1d', - today: '+0d', - tomorrow: '+1d' - }, - parts, part, dir, i, fn; - if (date in dateAliases){ - date = dateAliases[date]; - } - if (/^[\-+]\d+[dmwy]([\s,]+[\-+]\d+[dmwy])*$/i.test(date)){ - parts = date.match(/([\-+]\d+)([dmwy])/gi); - date = new Date(); - for (i=0; i < parts.length; i++){ - part = parts[i].match(/([\-+]\d+)([dmwy])/i); - dir = Number(part[1]); - fn = fn_map[part[2].toLowerCase()]; - date = Datepicker.prototype[fn](date, dir); - } - return Datepicker.prototype._zero_utc_time(date); - } - - parts = date && date.match(this.nonpunctuation) || []; - - function applyNearbyYear(year, threshold){ - if (threshold === true) - threshold = 10; - - // if year is 2 digits or less, than the user most likely is trying to get a recent century - if (year < 100){ - year += 2000; - // if the new year is more than threshold years in advance, use last century - if (year > ((new Date()).getFullYear()+threshold)){ - year -= 100; - } - } - - return year; - } - - var parsed = {}, - setters_order = ['yyyy', 'yy', 'M', 'MM', 'm', 'mm', 'd', 'dd'], - setters_map = { - yyyy: function(d,v){ - return d.setUTCFullYear(assumeNearby ? applyNearbyYear(v, assumeNearby) : v); - }, - m: function(d,v){ - if (isNaN(d)) - return d; - v -= 1; - while (v < 0) v += 12; - v %= 12; - d.setUTCMonth(v); - while (d.getUTCMonth() !== v) - d.setUTCDate(d.getUTCDate()-1); - return d; - }, - d: function(d,v){ - return d.setUTCDate(v); - } - }, - val, filtered; - setters_map['yy'] = setters_map['yyyy']; - setters_map['M'] = setters_map['MM'] = setters_map['mm'] = setters_map['m']; - setters_map['dd'] = setters_map['d']; - date = UTCToday(); - var fparts = format.parts.slice(); - // Remove noop parts - if (parts.length !== fparts.length){ - fparts = $(fparts).filter(function(i,p){ - return $.inArray(p, setters_order) !== -1; - }).toArray(); - } - // Process remainder - function match_part(){ - var m = this.slice(0, parts[i].length), - p = parts[i].slice(0, m.length); - return m.toLowerCase() === p.toLowerCase(); - } - if (parts.length === fparts.length){ - var cnt; - for (i=0, cnt = fparts.length; i < cnt; i++){ - val = parseInt(parts[i], 10); - part = fparts[i]; - if (isNaN(val)){ - switch (part){ - case 'MM': - filtered = $(dates[language].months).filter(match_part); - val = $.inArray(filtered[0], dates[language].months) + 1; - break; - case 'M': - filtered = $(dates[language].monthsShort).filter(match_part); - val = $.inArray(filtered[0], dates[language].monthsShort) + 1; - break; - } - } - parsed[part] = val; - } - var _date, s; - for (i=0; i < setters_order.length; i++){ - s = setters_order[i]; - if (s in parsed && !isNaN(parsed[s])){ - _date = new Date(date); - setters_map[s](_date, parsed[s]); - if (!isNaN(_date)) - date = _date; - } - } - } - return date; - }, - formatDate: function(date, format, language){ - if (!date) - return ''; - if (typeof format === 'string') - format = DPGlobal.parseFormat(format); - if (format.toDisplay) - return format.toDisplay(date, format, language); - var val = { - d: date.getUTCDate(), - D: dates[language].daysShort[date.getUTCDay()], - DD: dates[language].days[date.getUTCDay()], - m: date.getUTCMonth() + 1, - M: dates[language].monthsShort[date.getUTCMonth()], - MM: dates[language].months[date.getUTCMonth()], - yy: date.getUTCFullYear().toString().substring(2), - yyyy: date.getUTCFullYear() - }; - val.dd = (val.d < 10 ? '0' : '') + val.d; - val.mm = (val.m < 10 ? '0' : '') + val.m; - date = []; - var seps = $.extend([], format.separators); - for (var i=0, cnt = format.parts.length; i <= cnt; i++){ - if (seps.length) - date.push(seps.shift()); - date.push(val[format.parts[i]]); - } - return date.join(''); - }, - headTemplate: '<thead>'+ - '<tr>'+ - '<th colspan="7" class="datepicker-title"></th>'+ - '</tr>'+ - '<tr>'+ - '<th class="prev">'+defaults.templates.leftArrow+'</th>'+ - '<th colspan="5" class="datepicker-switch"></th>'+ - '<th class="next">'+defaults.templates.rightArrow+'</th>'+ - '</tr>'+ - '</thead>', - contTemplate: '<tbody><tr><td colspan="7"></td></tr></tbody>', - footTemplate: '<tfoot>'+ - '<tr>'+ - '<th colspan="7" class="today"></th>'+ - '</tr>'+ - '<tr>'+ - '<th colspan="7" class="clear"></th>'+ - '</tr>'+ - '</tfoot>' - }; - DPGlobal.template = '<div class="datepicker">'+ - '<div class="datepicker-days">'+ - '<table class="table-condensed">'+ - DPGlobal.headTemplate+ - '<tbody></tbody>'+ - DPGlobal.footTemplate+ - '</table>'+ - '</div>'+ - '<div class="datepicker-months">'+ - '<table class="table-condensed">'+ - DPGlobal.headTemplate+ - DPGlobal.contTemplate+ - DPGlobal.footTemplate+ - '</table>'+ - '</div>'+ - '<div class="datepicker-years">'+ - '<table class="table-condensed">'+ - DPGlobal.headTemplate+ - DPGlobal.contTemplate+ - DPGlobal.footTemplate+ - '</table>'+ - '</div>'+ - '<div class="datepicker-decades">'+ - '<table class="table-condensed">'+ - DPGlobal.headTemplate+ - DPGlobal.contTemplate+ - DPGlobal.footTemplate+ - '</table>'+ - '</div>'+ - '<div class="datepicker-centuries">'+ - '<table class="table-condensed">'+ - DPGlobal.headTemplate+ - DPGlobal.contTemplate+ - DPGlobal.footTemplate+ - '</table>'+ - '</div>'+ - '</div>'; - - $.fn.datepicker.DPGlobal = DPGlobal; - - - /* DATEPICKER NO CONFLICT - * =================== */ - - $.fn.datepicker.noConflict = function(){ - $.fn.datepicker = old; - return this; - }; - - /* DATEPICKER VERSION - * =================== */ - $.fn.datepicker.version = '1.7.1'; - - $.fn.datepicker.deprecated = function(msg){ - var console = window.console; - if (console && console.warn) { - console.warn('DEPRECATED: ' + msg); - } - }; - - - /* DATEPICKER DATA-API - * ================== */ - - $(document).on( - 'focus.datepicker.data-api click.datepicker.data-api', - '[data-provide="datepicker"]', - function(e){ - var $this = $(this); - if ($this.data('datepicker')) - return; - e.preventDefault(); - // component click requires us to explicitly show it - datepickerPlugin.call($this, 'show'); - } - ); - $(function(){ - datepickerPlugin.call($('[data-provide="datepicker-inline"]')); - }); - -})); diff --git a/admin/bower_components/bootstrap-datepicker/dist/js/bootstrap-datepicker.min.js b/admin/bower_components/bootstrap-datepicker/dist/js/bootstrap-datepicker.min.js deleted file mode 100644 index 1474f09..0000000 --- a/admin/bower_components/bootstrap-datepicker/dist/js/bootstrap-datepicker.min.js +++ /dev/null @@ -1,8 +0,0 @@ -/*! - * Datepicker for Bootstrap v1.7.1 (https://github.com/uxsolutions/bootstrap-datepicker) - * - * Licensed under the Apache License v2.0 (http://www.apache.org/licenses/LICENSE-2.0) - */ - -!function(a){"function"==typeof define&&define.amd?define(["jquery"],a):a("object"==typeof exports?require("jquery"):jQuery)}(function(a,b){function c(){return new Date(Date.UTC.apply(Date,arguments))}function d(){var a=new Date;return c(a.getFullYear(),a.getMonth(),a.getDate())}function e(a,b){return a.getUTCFullYear()===b.getUTCFullYear()&&a.getUTCMonth()===b.getUTCMonth()&&a.getUTCDate()===b.getUTCDate()}function f(c,d){return function(){return d!==b&&a.fn.datepicker.deprecated(d),this[c].apply(this,arguments)}}function g(a){return a&&!isNaN(a.getTime())}function h(b,c){function d(a,b){return b.toLowerCase()}var e,f=a(b).data(),g={},h=new RegExp("^"+c.toLowerCase()+"([A-Z])");c=new RegExp("^"+c.toLowerCase());for(var i in f)c.test(i)&&(e=i.replace(h,d),g[e]=f[i]);return g}function i(b){var c={};if(q[b]||(b=b.split("-")[0],q[b])){var d=q[b];return a.each(p,function(a,b){b in d&&(c[b]=d[b])}),c}}var j=function(){var b={get:function(a){return this.slice(a)[0]},contains:function(a){for(var b=a&&a.valueOf(),c=0,d=this.length;c<d;c++)if(0<=this[c].valueOf()-b&&this[c].valueOf()-b<864e5)return c;return-1},remove:function(a){this.splice(a,1)},replace:function(b){b&&(a.isArray(b)||(b=[b]),this.clear(),this.push.apply(this,b))},clear:function(){this.length=0},copy:function(){var a=new j;return a.replace(this),a}};return function(){var c=[];return c.push.apply(c,arguments),a.extend(c,b),c}}(),k=function(b,c){a.data(b,"datepicker",this),this._process_options(c),this.dates=new j,this.viewDate=this.o.defaultViewDate,this.focusDate=null,this.element=a(b),this.isInput=this.element.is("input"),this.inputField=this.isInput?this.element:this.element.find("input"),this.component=!!this.element.hasClass("date")&&this.element.find(".add-on, .input-group-addon, .btn"),this.component&&0===this.component.length&&(this.component=!1),this.isInline=!this.component&&this.element.is("div"),this.picker=a(r.template),this._check_template(this.o.templates.leftArrow)&&this.picker.find(".prev").html(this.o.templates.leftArrow),this._check_template(this.o.templates.rightArrow)&&this.picker.find(".next").html(this.o.templates.rightArrow),this._buildEvents(),this._attachEvents(),this.isInline?this.picker.addClass("datepicker-inline").appendTo(this.element):this.picker.addClass("datepicker-dropdown dropdown-menu"),this.o.rtl&&this.picker.addClass("datepicker-rtl"),this.o.calendarWeeks&&this.picker.find(".datepicker-days .datepicker-switch, thead .datepicker-title, tfoot .today, tfoot .clear").attr("colspan",function(a,b){return Number(b)+1}),this._process_options({startDate:this._o.startDate,endDate:this._o.endDate,daysOfWeekDisabled:this.o.daysOfWeekDisabled,daysOfWeekHighlighted:this.o.daysOfWeekHighlighted,datesDisabled:this.o.datesDisabled}),this._allow_update=!1,this.setViewMode(this.o.startView),this._allow_update=!0,this.fillDow(),this.fillMonths(),this.update(),this.isInline&&this.show()};k.prototype={constructor:k,_resolveViewName:function(b){return a.each(r.viewModes,function(c,d){if(b===c||a.inArray(b,d.names)!==-1)return b=c,!1}),b},_resolveDaysOfWeek:function(b){return a.isArray(b)||(b=b.split(/[,\s]*/)),a.map(b,Number)},_check_template:function(c){try{if(c===b||""===c)return!1;if((c.match(/[<>]/g)||[]).length<=0)return!0;var d=a(c);return d.length>0}catch(a){return!1}},_process_options:function(b){this._o=a.extend({},this._o,b);var e=this.o=a.extend({},this._o),f=e.language;q[f]||(f=f.split("-")[0],q[f]||(f=o.language)),e.language=f,e.startView=this._resolveViewName(e.startView),e.minViewMode=this._resolveViewName(e.minViewMode),e.maxViewMode=this._resolveViewName(e.maxViewMode),e.startView=Math.max(this.o.minViewMode,Math.min(this.o.maxViewMode,e.startView)),e.multidate!==!0&&(e.multidate=Number(e.multidate)||!1,e.multidate!==!1&&(e.multidate=Math.max(0,e.multidate))),e.multidateSeparator=String(e.multidateSeparator),e.weekStart%=7,e.weekEnd=(e.weekStart+6)%7;var g=r.parseFormat(e.format);e.startDate!==-(1/0)&&(e.startDate?e.startDate instanceof Date?e.startDate=this._local_to_utc(this._zero_time(e.startDate)):e.startDate=r.parseDate(e.startDate,g,e.language,e.assumeNearbyYear):e.startDate=-(1/0)),e.endDate!==1/0&&(e.endDate?e.endDate instanceof Date?e.endDate=this._local_to_utc(this._zero_time(e.endDate)):e.endDate=r.parseDate(e.endDate,g,e.language,e.assumeNearbyYear):e.endDate=1/0),e.daysOfWeekDisabled=this._resolveDaysOfWeek(e.daysOfWeekDisabled||[]),e.daysOfWeekHighlighted=this._resolveDaysOfWeek(e.daysOfWeekHighlighted||[]),e.datesDisabled=e.datesDisabled||[],a.isArray(e.datesDisabled)||(e.datesDisabled=e.datesDisabled.split(",")),e.datesDisabled=a.map(e.datesDisabled,function(a){return r.parseDate(a,g,e.language,e.assumeNearbyYear)});var h=String(e.orientation).toLowerCase().split(/\s+/g),i=e.orientation.toLowerCase();if(h=a.grep(h,function(a){return/^auto|left|right|top|bottom$/.test(a)}),e.orientation={x:"auto",y:"auto"},i&&"auto"!==i)if(1===h.length)switch(h[0]){case"top":case"bottom":e.orientation.y=h[0];break;case"left":case"right":e.orientation.x=h[0]}else i=a.grep(h,function(a){return/^left|right$/.test(a)}),e.orientation.x=i[0]||"auto",i=a.grep(h,function(a){return/^top|bottom$/.test(a)}),e.orientation.y=i[0]||"auto";else;if(e.defaultViewDate instanceof Date||"string"==typeof e.defaultViewDate)e.defaultViewDate=r.parseDate(e.defaultViewDate,g,e.language,e.assumeNearbyYear);else if(e.defaultViewDate){var j=e.defaultViewDate.year||(new Date).getFullYear(),k=e.defaultViewDate.month||0,l=e.defaultViewDate.day||1;e.defaultViewDate=c(j,k,l)}else e.defaultViewDate=d()},_events:[],_secondaryEvents:[],_applyEvents:function(a){for(var c,d,e,f=0;f<a.length;f++)c=a[f][0],2===a[f].length?(d=b,e=a[f][1]):3===a[f].length&&(d=a[f][1],e=a[f][2]),c.on(e,d)},_unapplyEvents:function(a){for(var c,d,e,f=0;f<a.length;f++)c=a[f][0],2===a[f].length?(e=b,d=a[f][1]):3===a[f].length&&(e=a[f][1],d=a[f][2]),c.off(d,e)},_buildEvents:function(){var b={keyup:a.proxy(function(b){a.inArray(b.keyCode,[27,37,39,38,40,32,13,9])===-1&&this.update()},this),keydown:a.proxy(this.keydown,this),paste:a.proxy(this.paste,this)};this.o.showOnFocus===!0&&(b.focus=a.proxy(this.show,this)),this.isInput?this._events=[[this.element,b]]:this.component&&this.inputField.length?this._events=[[this.inputField,b],[this.component,{click:a.proxy(this.show,this)}]]:this._events=[[this.element,{click:a.proxy(this.show,this),keydown:a.proxy(this.keydown,this)}]],this._events.push([this.element,"*",{blur:a.proxy(function(a){this._focused_from=a.target},this)}],[this.element,{blur:a.proxy(function(a){this._focused_from=a.target},this)}]),this.o.immediateUpdates&&this._events.push([this.element,{"changeYear changeMonth":a.proxy(function(a){this.update(a.date)},this)}]),this._secondaryEvents=[[this.picker,{click:a.proxy(this.click,this)}],[this.picker,".prev, .next",{click:a.proxy(this.navArrowsClick,this)}],[this.picker,".day:not(.disabled)",{click:a.proxy(this.dayCellClick,this)}],[a(window),{resize:a.proxy(this.place,this)}],[a(document),{"mousedown touchstart":a.proxy(function(a){this.element.is(a.target)||this.element.find(a.target).length||this.picker.is(a.target)||this.picker.find(a.target).length||this.isInline||this.hide()},this)}]]},_attachEvents:function(){this._detachEvents(),this._applyEvents(this._events)},_detachEvents:function(){this._unapplyEvents(this._events)},_attachSecondaryEvents:function(){this._detachSecondaryEvents(),this._applyEvents(this._secondaryEvents)},_detachSecondaryEvents:function(){this._unapplyEvents(this._secondaryEvents)},_trigger:function(b,c){var d=c||this.dates.get(-1),e=this._utc_to_local(d);this.element.trigger({type:b,date:e,viewMode:this.viewMode,dates:a.map(this.dates,this._utc_to_local),format:a.proxy(function(a,b){0===arguments.length?(a=this.dates.length-1,b=this.o.format):"string"==typeof a&&(b=a,a=this.dates.length-1),b=b||this.o.format;var c=this.dates.get(a);return r.formatDate(c,b,this.o.language)},this)})},show:function(){if(!(this.inputField.prop("disabled")||this.inputField.prop("readonly")&&this.o.enableOnReadonly===!1))return this.isInline||this.picker.appendTo(this.o.container),this.place(),this.picker.show(),this._attachSecondaryEvents(),this._trigger("show"),(window.navigator.msMaxTouchPoints||"ontouchstart"in document)&&this.o.disableTouchKeyboard&&a(this.element).blur(),this},hide:function(){return this.isInline||!this.picker.is(":visible")?this:(this.focusDate=null,this.picker.hide().detach(),this._detachSecondaryEvents(),this.setViewMode(this.o.startView),this.o.forceParse&&this.inputField.val()&&this.setValue(),this._trigger("hide"),this)},destroy:function(){return this.hide(),this._detachEvents(),this._detachSecondaryEvents(),this.picker.remove(),delete this.element.data().datepicker,this.isInput||delete this.element.data().date,this},paste:function(b){var c;if(b.originalEvent.clipboardData&&b.originalEvent.clipboardData.types&&a.inArray("text/plain",b.originalEvent.clipboardData.types)!==-1)c=b.originalEvent.clipboardData.getData("text/plain");else{if(!window.clipboardData)return;c=window.clipboardData.getData("Text")}this.setDate(c),this.update(),b.preventDefault()},_utc_to_local:function(a){if(!a)return a;var b=new Date(a.getTime()+6e4*a.getTimezoneOffset());return b.getTimezoneOffset()!==a.getTimezoneOffset()&&(b=new Date(a.getTime()+6e4*b.getTimezoneOffset())),b},_local_to_utc:function(a){return a&&new Date(a.getTime()-6e4*a.getTimezoneOffset())},_zero_time:function(a){return a&&new Date(a.getFullYear(),a.getMonth(),a.getDate())},_zero_utc_time:function(a){return a&&c(a.getUTCFullYear(),a.getUTCMonth(),a.getUTCDate())},getDates:function(){return a.map(this.dates,this._utc_to_local)},getUTCDates:function(){return a.map(this.dates,function(a){return new Date(a)})},getDate:function(){return this._utc_to_local(this.getUTCDate())},getUTCDate:function(){var a=this.dates.get(-1);return a!==b?new Date(a):null},clearDates:function(){this.inputField.val(""),this.update(),this._trigger("changeDate"),this.o.autoclose&&this.hide()},setDates:function(){var b=a.isArray(arguments[0])?arguments[0]:arguments;return this.update.apply(this,b),this._trigger("changeDate"),this.setValue(),this},setUTCDates:function(){var b=a.isArray(arguments[0])?arguments[0]:arguments;return this.setDates.apply(this,a.map(b,this._utc_to_local)),this},setDate:f("setDates"),setUTCDate:f("setUTCDates"),remove:f("destroy","Method `remove` is deprecated and will be removed in version 2.0. Use `destroy` instead"),setValue:function(){var a=this.getFormattedDate();return this.inputField.val(a),this},getFormattedDate:function(c){c===b&&(c=this.o.format);var d=this.o.language;return a.map(this.dates,function(a){return r.formatDate(a,c,d)}).join(this.o.multidateSeparator)},getStartDate:function(){return this.o.startDate},setStartDate:function(a){return this._process_options({startDate:a}),this.update(),this.updateNavArrows(),this},getEndDate:function(){return this.o.endDate},setEndDate:function(a){return this._process_options({endDate:a}),this.update(),this.updateNavArrows(),this},setDaysOfWeekDisabled:function(a){return this._process_options({daysOfWeekDisabled:a}),this.update(),this},setDaysOfWeekHighlighted:function(a){return this._process_options({daysOfWeekHighlighted:a}),this.update(),this},setDatesDisabled:function(a){return this._process_options({datesDisabled:a}),this.update(),this},place:function(){if(this.isInline)return this;var b=this.picker.outerWidth(),c=this.picker.outerHeight(),d=10,e=a(this.o.container),f=e.width(),g="body"===this.o.container?a(document).scrollTop():e.scrollTop(),h=e.offset(),i=[0];this.element.parents().each(function(){var b=a(this).css("z-index");"auto"!==b&&0!==Number(b)&&i.push(Number(b))});var j=Math.max.apply(Math,i)+this.o.zIndexOffset,k=this.component?this.component.parent().offset():this.element.offset(),l=this.component?this.component.outerHeight(!0):this.element.outerHeight(!1),m=this.component?this.component.outerWidth(!0):this.element.outerWidth(!1),n=k.left-h.left,o=k.top-h.top;"body"!==this.o.container&&(o+=g),this.picker.removeClass("datepicker-orient-top datepicker-orient-bottom datepicker-orient-right datepicker-orient-left"),"auto"!==this.o.orientation.x?(this.picker.addClass("datepicker-orient-"+this.o.orientation.x),"right"===this.o.orientation.x&&(n-=b-m)):k.left<0?(this.picker.addClass("datepicker-orient-left"),n-=k.left-d):n+b>f?(this.picker.addClass("datepicker-orient-right"),n+=m-b):this.o.rtl?this.picker.addClass("datepicker-orient-right"):this.picker.addClass("datepicker-orient-left");var p,q=this.o.orientation.y;if("auto"===q&&(p=-g+o-c,q=p<0?"bottom":"top"),this.picker.addClass("datepicker-orient-"+q),"top"===q?o-=c+parseInt(this.picker.css("padding-top")):o+=l,this.o.rtl){var r=f-(n+m);this.picker.css({top:o,right:r,zIndex:j})}else this.picker.css({top:o,left:n,zIndex:j});return this},_allow_update:!0,update:function(){if(!this._allow_update)return this;var b=this.dates.copy(),c=[],d=!1;return arguments.length?(a.each(arguments,a.proxy(function(a,b){b instanceof Date&&(b=this._local_to_utc(b)),c.push(b)},this)),d=!0):(c=this.isInput?this.element.val():this.element.data("date")||this.inputField.val(),c=c&&this.o.multidate?c.split(this.o.multidateSeparator):[c],delete this.element.data().date),c=a.map(c,a.proxy(function(a){return r.parseDate(a,this.o.format,this.o.language,this.o.assumeNearbyYear)},this)),c=a.grep(c,a.proxy(function(a){return!this.dateWithinRange(a)||!a},this),!0),this.dates.replace(c),this.o.updateViewDate&&(this.dates.length?this.viewDate=new Date(this.dates.get(-1)):this.viewDate<this.o.startDate?this.viewDate=new Date(this.o.startDate):this.viewDate>this.o.endDate?this.viewDate=new Date(this.o.endDate):this.viewDate=this.o.defaultViewDate),d?(this.setValue(),this.element.change()):this.dates.length&&String(b)!==String(this.dates)&&d&&(this._trigger("changeDate"),this.element.change()),!this.dates.length&&b.length&&(this._trigger("clearDate"),this.element.change()),this.fill(),this},fillDow:function(){if(this.o.showWeekDays){var b=this.o.weekStart,c="<tr>";for(this.o.calendarWeeks&&(c+='<th class="cw">&#160;</th>');b<this.o.weekStart+7;)c+='<th class="dow',a.inArray(b,this.o.daysOfWeekDisabled)!==-1&&(c+=" disabled"),c+='">'+q[this.o.language].daysMin[b++%7]+"</th>";c+="</tr>",this.picker.find(".datepicker-days thead").append(c)}},fillMonths:function(){for(var a,b=this._utc_to_local(this.viewDate),c="",d=0;d<12;d++)a=b&&b.getMonth()===d?" focused":"",c+='<span class="month'+a+'">'+q[this.o.language].monthsShort[d]+"</span>";this.picker.find(".datepicker-months td").html(c)},setRange:function(b){b&&b.length?this.range=a.map(b,function(a){return a.valueOf()}):delete this.range,this.fill()},getClassNames:function(b){var c=[],f=this.viewDate.getUTCFullYear(),g=this.viewDate.getUTCMonth(),h=d();return b.getUTCFullYear()<f||b.getUTCFullYear()===f&&b.getUTCMonth()<g?c.push("old"):(b.getUTCFullYear()>f||b.getUTCFullYear()===f&&b.getUTCMonth()>g)&&c.push("new"),this.focusDate&&b.valueOf()===this.focusDate.valueOf()&&c.push("focused"),this.o.todayHighlight&&e(b,h)&&c.push("today"),this.dates.contains(b)!==-1&&c.push("active"),this.dateWithinRange(b)||c.push("disabled"),this.dateIsDisabled(b)&&c.push("disabled","disabled-date"),a.inArray(b.getUTCDay(),this.o.daysOfWeekHighlighted)!==-1&&c.push("highlighted"),this.range&&(b>this.range[0]&&b<this.range[this.range.length-1]&&c.push("range"),a.inArray(b.valueOf(),this.range)!==-1&&c.push("selected"),b.valueOf()===this.range[0]&&c.push("range-start"),b.valueOf()===this.range[this.range.length-1]&&c.push("range-end")),c},_fill_yearsView:function(c,d,e,f,g,h,i){for(var j,k,l,m="",n=e/10,o=this.picker.find(c),p=Math.floor(f/e)*e,q=p+9*n,r=Math.floor(this.viewDate.getFullYear()/n)*n,s=a.map(this.dates,function(a){return Math.floor(a.getUTCFullYear()/n)*n}),t=p-n;t<=q+n;t+=n)j=[d],k=null,t===p-n?j.push("old"):t===q+n&&j.push("new"),a.inArray(t,s)!==-1&&j.push("active"),(t<g||t>h)&&j.push("disabled"),t===r&&j.push("focused"),i!==a.noop&&(l=i(new Date(t,0,1)),l===b?l={}:"boolean"==typeof l?l={enabled:l}:"string"==typeof l&&(l={classes:l}),l.enabled===!1&&j.push("disabled"),l.classes&&(j=j.concat(l.classes.split(/\s+/))),l.tooltip&&(k=l.tooltip)),m+='<span class="'+j.join(" ")+'"'+(k?' title="'+k+'"':"")+">"+t+"</span>";o.find(".datepicker-switch").text(p+"-"+q),o.find("td").html(m)},fill:function(){var d,e,f=new Date(this.viewDate),g=f.getUTCFullYear(),h=f.getUTCMonth(),i=this.o.startDate!==-(1/0)?this.o.startDate.getUTCFullYear():-(1/0),j=this.o.startDate!==-(1/0)?this.o.startDate.getUTCMonth():-(1/0),k=this.o.endDate!==1/0?this.o.endDate.getUTCFullYear():1/0,l=this.o.endDate!==1/0?this.o.endDate.getUTCMonth():1/0,m=q[this.o.language].today||q.en.today||"",n=q[this.o.language].clear||q.en.clear||"",o=q[this.o.language].titleFormat||q.en.titleFormat;if(!isNaN(g)&&!isNaN(h)){this.picker.find(".datepicker-days .datepicker-switch").text(r.formatDate(f,o,this.o.language)),this.picker.find("tfoot .today").text(m).css("display",this.o.todayBtn===!0||"linked"===this.o.todayBtn?"table-cell":"none"),this.picker.find("tfoot .clear").text(n).css("display",this.o.clearBtn===!0?"table-cell":"none"),this.picker.find("thead .datepicker-title").text(this.o.title).css("display","string"==typeof this.o.title&&""!==this.o.title?"table-cell":"none"),this.updateNavArrows(),this.fillMonths();var p=c(g,h,0),s=p.getUTCDate();p.setUTCDate(s-(p.getUTCDay()-this.o.weekStart+7)%7);var t=new Date(p);p.getUTCFullYear()<100&&t.setUTCFullYear(p.getUTCFullYear()),t.setUTCDate(t.getUTCDate()+42),t=t.valueOf();for(var u,v,w=[];p.valueOf()<t;){if(u=p.getUTCDay(),u===this.o.weekStart&&(w.push("<tr>"),this.o.calendarWeeks)){var x=new Date(+p+(this.o.weekStart-u-7)%7*864e5),y=new Date(Number(x)+(11-x.getUTCDay())%7*864e5),z=new Date(Number(z=c(y.getUTCFullYear(),0,1))+(11-z.getUTCDay())%7*864e5),A=(y-z)/864e5/7+1;w.push('<td class="cw">'+A+"</td>")}v=this.getClassNames(p),v.push("day");var B=p.getUTCDate();this.o.beforeShowDay!==a.noop&&(e=this.o.beforeShowDay(this._utc_to_local(p)),e===b?e={}:"boolean"==typeof e?e={enabled:e}:"string"==typeof e&&(e={classes:e}),e.enabled===!1&&v.push("disabled"),e.classes&&(v=v.concat(e.classes.split(/\s+/))),e.tooltip&&(d=e.tooltip),e.content&&(B=e.content)),v=a.isFunction(a.uniqueSort)?a.uniqueSort(v):a.unique(v),w.push('<td class="'+v.join(" ")+'"'+(d?' title="'+d+'"':"")+' data-date="'+p.getTime().toString()+'">'+B+"</td>"),d=null,u===this.o.weekEnd&&w.push("</tr>"),p.setUTCDate(p.getUTCDate()+1)}this.picker.find(".datepicker-days tbody").html(w.join(""));var C=q[this.o.language].monthsTitle||q.en.monthsTitle||"Months",D=this.picker.find(".datepicker-months").find(".datepicker-switch").text(this.o.maxViewMode<2?C:g).end().find("tbody span").removeClass("active");if(a.each(this.dates,function(a,b){b.getUTCFullYear()===g&&D.eq(b.getUTCMonth()).addClass("active")}),(g<i||g>k)&&D.addClass("disabled"),g===i&&D.slice(0,j).addClass("disabled"),g===k&&D.slice(l+1).addClass("disabled"),this.o.beforeShowMonth!==a.noop){var E=this;a.each(D,function(c,d){var e=new Date(g,c,1),f=E.o.beforeShowMonth(e);f===b?f={}:"boolean"==typeof f?f={enabled:f}:"string"==typeof f&&(f={classes:f}),f.enabled!==!1||a(d).hasClass("disabled")||a(d).addClass("disabled"),f.classes&&a(d).addClass(f.classes),f.tooltip&&a(d).prop("title",f.tooltip)})}this._fill_yearsView(".datepicker-years","year",10,g,i,k,this.o.beforeShowYear),this._fill_yearsView(".datepicker-decades","decade",100,g,i,k,this.o.beforeShowDecade),this._fill_yearsView(".datepicker-centuries","century",1e3,g,i,k,this.o.beforeShowCentury)}},updateNavArrows:function(){if(this._allow_update){var a,b,c=new Date(this.viewDate),d=c.getUTCFullYear(),e=c.getUTCMonth(),f=this.o.startDate!==-(1/0)?this.o.startDate.getUTCFullYear():-(1/0),g=this.o.startDate!==-(1/0)?this.o.startDate.getUTCMonth():-(1/0),h=this.o.endDate!==1/0?this.o.endDate.getUTCFullYear():1/0,i=this.o.endDate!==1/0?this.o.endDate.getUTCMonth():1/0,j=1;switch(this.viewMode){case 0:a=d<=f&&e<=g,b=d>=h&&e>=i;break;case 4:j*=10;case 3:j*=10;case 2:j*=10;case 1:a=Math.floor(d/j)*j<=f,b=Math.floor(d/j)*j+j>=h}this.picker.find(".prev").toggleClass("disabled",a),this.picker.find(".next").toggleClass("disabled",b)}},click:function(b){b.preventDefault(),b.stopPropagation();var e,f,g,h;e=a(b.target),e.hasClass("datepicker-switch")&&this.viewMode!==this.o.maxViewMode&&this.setViewMode(this.viewMode+1),e.hasClass("today")&&!e.hasClass("day")&&(this.setViewMode(0),this._setDate(d(),"linked"===this.o.todayBtn?null:"view")),e.hasClass("clear")&&this.clearDates(),e.hasClass("disabled")||(e.hasClass("month")||e.hasClass("year")||e.hasClass("decade")||e.hasClass("century"))&&(this.viewDate.setUTCDate(1),f=1,1===this.viewMode?(h=e.parent().find("span").index(e),g=this.viewDate.getUTCFullYear(),this.viewDate.setUTCMonth(h)):(h=0,g=Number(e.text()),this.viewDate.setUTCFullYear(g)),this._trigger(r.viewModes[this.viewMode-1].e,this.viewDate),this.viewMode===this.o.minViewMode?this._setDate(c(g,h,f)):(this.setViewMode(this.viewMode-1),this.fill())),this.picker.is(":visible")&&this._focused_from&&this._focused_from.focus(),delete this._focused_from},dayCellClick:function(b){var c=a(b.currentTarget),d=c.data("date"),e=new Date(d);this.o.updateViewDate&&(e.getUTCFullYear()!==this.viewDate.getUTCFullYear()&&this._trigger("changeYear",this.viewDate),e.getUTCMonth()!==this.viewDate.getUTCMonth()&&this._trigger("changeMonth",this.viewDate)),this._setDate(e)},navArrowsClick:function(b){var c=a(b.currentTarget),d=c.hasClass("prev")?-1:1;0!==this.viewMode&&(d*=12*r.viewModes[this.viewMode].navStep),this.viewDate=this.moveMonth(this.viewDate,d),this._trigger(r.viewModes[this.viewMode].e,this.viewDate),this.fill()},_toggle_multidate:function(a){var b=this.dates.contains(a);if(a||this.dates.clear(),b!==-1?(this.o.multidate===!0||this.o.multidate>1||this.o.toggleActive)&&this.dates.remove(b):this.o.multidate===!1?(this.dates.clear(),this.dates.push(a)):this.dates.push(a),"number"==typeof this.o.multidate)for(;this.dates.length>this.o.multidate;)this.dates.remove(0)},_setDate:function(a,b){b&&"date"!==b||this._toggle_multidate(a&&new Date(a)),(!b&&this.o.updateViewDate||"view"===b)&&(this.viewDate=a&&new Date(a)),this.fill(),this.setValue(),b&&"view"===b||this._trigger("changeDate"),this.inputField.trigger("change"),!this.o.autoclose||b&&"date"!==b||this.hide()},moveDay:function(a,b){var c=new Date(a);return c.setUTCDate(a.getUTCDate()+b),c},moveWeek:function(a,b){return this.moveDay(a,7*b)},moveMonth:function(a,b){if(!g(a))return this.o.defaultViewDate;if(!b)return a;var c,d,e=new Date(a.valueOf()),f=e.getUTCDate(),h=e.getUTCMonth(),i=Math.abs(b);if(b=b>0?1:-1,1===i)d=b===-1?function(){return e.getUTCMonth()===h}:function(){return e.getUTCMonth()!==c},c=h+b,e.setUTCMonth(c),c=(c+12)%12;else{for(var j=0;j<i;j++)e=this.moveMonth(e,b);c=e.getUTCMonth(),e.setUTCDate(f),d=function(){return c!==e.getUTCMonth()}}for(;d();)e.setUTCDate(--f),e.setUTCMonth(c);return e},moveYear:function(a,b){return this.moveMonth(a,12*b)},moveAvailableDate:function(a,b,c){do{if(a=this[c](a,b),!this.dateWithinRange(a))return!1;c="moveDay"}while(this.dateIsDisabled(a));return a},weekOfDateIsDisabled:function(b){return a.inArray(b.getUTCDay(),this.o.daysOfWeekDisabled)!==-1},dateIsDisabled:function(b){return this.weekOfDateIsDisabled(b)||a.grep(this.o.datesDisabled,function(a){return e(b,a)}).length>0},dateWithinRange:function(a){return a>=this.o.startDate&&a<=this.o.endDate},keydown:function(a){if(!this.picker.is(":visible"))return void(40!==a.keyCode&&27!==a.keyCode||(this.show(),a.stopPropagation()));var b,c,d=!1,e=this.focusDate||this.viewDate;switch(a.keyCode){case 27:this.focusDate?(this.focusDate=null,this.viewDate=this.dates.get(-1)||this.viewDate,this.fill()):this.hide(),a.preventDefault(),a.stopPropagation();break;case 37:case 38:case 39:case 40:if(!this.o.keyboardNavigation||7===this.o.daysOfWeekDisabled.length)break;b=37===a.keyCode||38===a.keyCode?-1:1,0===this.viewMode?a.ctrlKey?(c=this.moveAvailableDate(e,b,"moveYear"),c&&this._trigger("changeYear",this.viewDate)):a.shiftKey?(c=this.moveAvailableDate(e,b,"moveMonth"),c&&this._trigger("changeMonth",this.viewDate)):37===a.keyCode||39===a.keyCode?c=this.moveAvailableDate(e,b,"moveDay"):this.weekOfDateIsDisabled(e)||(c=this.moveAvailableDate(e,b,"moveWeek")):1===this.viewMode?(38!==a.keyCode&&40!==a.keyCode||(b*=4),c=this.moveAvailableDate(e,b,"moveMonth")):2===this.viewMode&&(38!==a.keyCode&&40!==a.keyCode||(b*=4),c=this.moveAvailableDate(e,b,"moveYear")),c&&(this.focusDate=this.viewDate=c,this.setValue(),this.fill(),a.preventDefault());break;case 13:if(!this.o.forceParse)break;e=this.focusDate||this.dates.get(-1)||this.viewDate,this.o.keyboardNavigation&&(this._toggle_multidate(e),d=!0),this.focusDate=null,this.viewDate=this.dates.get(-1)||this.viewDate,this.setValue(),this.fill(),this.picker.is(":visible")&&(a.preventDefault(),a.stopPropagation(),this.o.autoclose&&this.hide());break;case 9:this.focusDate=null,this.viewDate=this.dates.get(-1)||this.viewDate,this.fill(),this.hide()}d&&(this.dates.length?this._trigger("changeDate"):this._trigger("clearDate"),this.inputField.trigger("change"))},setViewMode:function(a){this.viewMode=a,this.picker.children("div").hide().filter(".datepicker-"+r.viewModes[this.viewMode].clsName).show(),this.updateNavArrows(),this._trigger("changeViewMode",new Date(this.viewDate))}};var l=function(b,c){a.data(b,"datepicker",this),this.element=a(b),this.inputs=a.map(c.inputs,function(a){return a.jquery?a[0]:a}),delete c.inputs,this.keepEmptyValues=c.keepEmptyValues,delete c.keepEmptyValues,n.call(a(this.inputs),c).on("changeDate",a.proxy(this.dateUpdated,this)),this.pickers=a.map(this.inputs,function(b){return a.data(b,"datepicker")}),this.updateDates()};l.prototype={updateDates:function(){this.dates=a.map(this.pickers,function(a){return a.getUTCDate()}),this.updateRanges()},updateRanges:function(){var b=a.map(this.dates,function(a){return a.valueOf()});a.each(this.pickers,function(a,c){c.setRange(b)})},dateUpdated:function(c){if(!this.updating){this.updating=!0;var d=a.data(c.target,"datepicker");if(d!==b){var e=d.getUTCDate(),f=this.keepEmptyValues,g=a.inArray(c.target,this.inputs),h=g-1,i=g+1,j=this.inputs.length;if(g!==-1){if(a.each(this.pickers,function(a,b){b.getUTCDate()||b!==d&&f||b.setUTCDate(e)}),e<this.dates[h])for(;h>=0&&e<this.dates[h];)this.pickers[h--].setUTCDate(e);else if(e>this.dates[i])for(;i<j&&e>this.dates[i];)this.pickers[i++].setUTCDate(e);this.updateDates(),delete this.updating}}}},destroy:function(){a.map(this.pickers,function(a){a.destroy()}),a(this.inputs).off("changeDate",this.dateUpdated),delete this.element.data().datepicker},remove:f("destroy","Method `remove` is deprecated and will be removed in version 2.0. Use `destroy` instead")};var m=a.fn.datepicker,n=function(c){var d=Array.apply(null,arguments);d.shift();var e;if(this.each(function(){var b=a(this),f=b.data("datepicker"),g="object"==typeof c&&c;if(!f){var j=h(this,"date"),m=a.extend({},o,j,g),n=i(m.language),p=a.extend({},o,n,j,g);b.hasClass("input-daterange")||p.inputs?(a.extend(p,{inputs:p.inputs||b.find("input").toArray()}),f=new l(this,p)):f=new k(this,p),b.data("datepicker",f)}"string"==typeof c&&"function"==typeof f[c]&&(e=f[c].apply(f,d))}),e===b||e instanceof k||e instanceof l)return this;if(this.length>1)throw new Error("Using only allowed for the collection of a single element ("+c+" function)");return e};a.fn.datepicker=n;var o=a.fn.datepicker.defaults={assumeNearbyYear:!1,autoclose:!1,beforeShowDay:a.noop,beforeShowMonth:a.noop,beforeShowYear:a.noop,beforeShowDecade:a.noop,beforeShowCentury:a.noop,calendarWeeks:!1,clearBtn:!1,toggleActive:!1,daysOfWeekDisabled:[],daysOfWeekHighlighted:[],datesDisabled:[],endDate:1/0,forceParse:!0,format:"mm/dd/yyyy",keepEmptyValues:!1,keyboardNavigation:!0,language:"en",minViewMode:0,maxViewMode:4,multidate:!1,multidateSeparator:",",orientation:"auto",rtl:!1,startDate:-(1/0),startView:0,todayBtn:!1,todayHighlight:!1,updateViewDate:!0,weekStart:0,disableTouchKeyboard:!1,enableOnReadonly:!0,showOnFocus:!0,zIndexOffset:10,container:"body",immediateUpdates:!1,title:"",templates:{leftArrow:"&#x00AB;",rightArrow:"&#x00BB;"},showWeekDays:!0},p=a.fn.datepicker.locale_opts=["format","rtl","weekStart"];a.fn.datepicker.Constructor=k;var q=a.fn.datepicker.dates={en:{days:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],daysShort:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],daysMin:["Su","Mo","Tu","We","Th","Fr","Sa"],months:["January","February","March","April","May","June","July","August","September","October","November","December"],monthsShort:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],today:"Today",clear:"Clear",titleFormat:"MM yyyy"}},r={viewModes:[{names:["days","month"],clsName:"days",e:"changeMonth"},{names:["months","year"],clsName:"months",e:"changeYear",navStep:1},{names:["years","decade"],clsName:"years",e:"changeDecade",navStep:10},{names:["decades","century"],clsName:"decades",e:"changeCentury",navStep:100},{names:["centuries","millennium"],clsName:"centuries",e:"changeMillennium",navStep:1e3}],validParts:/dd?|DD?|mm?|MM?|yy(?:yy)?/g,nonpunctuation:/[^ -\/:-@\u5e74\u6708\u65e5\[-`{-~\t\n\r]+/g,parseFormat:function(a){if("function"==typeof a.toValue&&"function"==typeof a.toDisplay)return a;var b=a.replace(this.validParts,"\0").split("\0"),c=a.match(this.validParts);if(!b||!b.length||!c||0===c.length)throw new Error("Invalid date format.");return{separators:b,parts:c}},parseDate:function(c,e,f,g){function h(a,b){return b===!0&&(b=10),a<100&&(a+=2e3,a>(new Date).getFullYear()+b&&(a-=100)),a}function i(){var a=this.slice(0,j[n].length),b=j[n].slice(0,a.length);return a.toLowerCase()===b.toLowerCase()}if(!c)return b;if(c instanceof Date)return c;if("string"==typeof e&&(e=r.parseFormat(e)),e.toValue)return e.toValue(c,e,f);var j,l,m,n,o,p={d:"moveDay",m:"moveMonth",w:"moveWeek",y:"moveYear"},s={yesterday:"-1d",today:"+0d",tomorrow:"+1d"};if(c in s&&(c=s[c]),/^[\-+]\d+[dmwy]([\s,]+[\-+]\d+[dmwy])*$/i.test(c)){for(j=c.match(/([\-+]\d+)([dmwy])/gi),c=new Date,n=0;n<j.length;n++)l=j[n].match(/([\-+]\d+)([dmwy])/i),m=Number(l[1]),o=p[l[2].toLowerCase()],c=k.prototype[o](c,m);return k.prototype._zero_utc_time(c)}j=c&&c.match(this.nonpunctuation)||[];var t,u,v={},w=["yyyy","yy","M","MM","m","mm","d","dd"],x={yyyy:function(a,b){return a.setUTCFullYear(g?h(b,g):b)},m:function(a,b){if(isNaN(a))return a;for(b-=1;b<0;)b+=12;for(b%=12,a.setUTCMonth(b);a.getUTCMonth()!==b;)a.setUTCDate(a.getUTCDate()-1);return a},d:function(a,b){return a.setUTCDate(b)}};x.yy=x.yyyy,x.M=x.MM=x.mm=x.m,x.dd=x.d,c=d();var y=e.parts.slice();if(j.length!==y.length&&(y=a(y).filter(function(b,c){return a.inArray(c,w)!==-1}).toArray()),j.length===y.length){var z;for(n=0,z=y.length;n<z;n++){if(t=parseInt(j[n],10),l=y[n],isNaN(t))switch(l){case"MM":u=a(q[f].months).filter(i),t=a.inArray(u[0],q[f].months)+1;break;case"M":u=a(q[f].monthsShort).filter(i),t=a.inArray(u[0],q[f].monthsShort)+1}v[l]=t}var A,B;for(n=0;n<w.length;n++)B=w[n],B in v&&!isNaN(v[B])&&(A=new Date(c),x[B](A,v[B]),isNaN(A)||(c=A))}return c},formatDate:function(b,c,d){if(!b)return"";if("string"==typeof c&&(c=r.parseFormat(c)),c.toDisplay)return c.toDisplay(b,c,d);var e={d:b.getUTCDate(),D:q[d].daysShort[b.getUTCDay()],DD:q[d].days[b.getUTCDay()],m:b.getUTCMonth()+1,M:q[d].monthsShort[b.getUTCMonth()],MM:q[d].months[b.getUTCMonth()],yy:b.getUTCFullYear().toString().substring(2),yyyy:b.getUTCFullYear()};e.dd=(e.d<10?"0":"")+e.d,e.mm=(e.m<10?"0":"")+e.m,b=[];for(var f=a.extend([],c.separators),g=0,h=c.parts.length;g<=h;g++)f.length&&b.push(f.shift()),b.push(e[c.parts[g]]);return b.join("")},headTemplate:'<thead><tr><th colspan="7" class="datepicker-title"></th></tr><tr><th class="prev">'+o.templates.leftArrow+'</th><th colspan="5" class="datepicker-switch"></th><th class="next">'+o.templates.rightArrow+"</th></tr></thead>", -contTemplate:'<tbody><tr><td colspan="7"></td></tr></tbody>',footTemplate:'<tfoot><tr><th colspan="7" class="today"></th></tr><tr><th colspan="7" class="clear"></th></tr></tfoot>'};r.template='<div class="datepicker"><div class="datepicker-days"><table class="table-condensed">'+r.headTemplate+"<tbody></tbody>"+r.footTemplate+'</table></div><div class="datepicker-months"><table class="table-condensed">'+r.headTemplate+r.contTemplate+r.footTemplate+'</table></div><div class="datepicker-years"><table class="table-condensed">'+r.headTemplate+r.contTemplate+r.footTemplate+'</table></div><div class="datepicker-decades"><table class="table-condensed">'+r.headTemplate+r.contTemplate+r.footTemplate+'</table></div><div class="datepicker-centuries"><table class="table-condensed">'+r.headTemplate+r.contTemplate+r.footTemplate+"</table></div></div>",a.fn.datepicker.DPGlobal=r,a.fn.datepicker.noConflict=function(){return a.fn.datepicker=m,this},a.fn.datepicker.version="1.7.1",a.fn.datepicker.deprecated=function(a){var b=window.console;b&&b.warn&&b.warn("DEPRECATED: "+a)},a(document).on("focus.datepicker.data-api click.datepicker.data-api",'[data-provide="datepicker"]',function(b){var c=a(this);c.data("datepicker")||(b.preventDefault(),n.call(c,"show"))}),a(function(){n.call(a('[data-provide="datepicker-inline"]'))})}); \ No newline at end of file diff --git a/admin/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker-en-CA.min.js b/admin/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker-en-CA.min.js deleted file mode 100644 index 7b1070f..0000000 --- a/admin/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker-en-CA.min.js +++ /dev/null @@ -1 +0,0 @@ -!function(a){a.fn.datepicker.dates["en-CA"]={days:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],daysShort:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],daysMin:["Su","Mo","Tu","We","Th","Fr","Sa"],months:["January","February","March","April","May","June","July","August","September","October","November","December"],monthsShort:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],today:"Today",monthsTitle:"Months",clear:"Clear",weekStart:0,format:"yyyy-mm-dd"}}(jQuery); \ No newline at end of file diff --git a/admin/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.ar-tn.min.js b/admin/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.ar-tn.min.js deleted file mode 100644 index 9d70dc2..0000000 --- a/admin/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.ar-tn.min.js +++ /dev/null @@ -1 +0,0 @@ -!function(a){a.fn.datepicker.dates["ar-tn"]={days:["الأحد","الاثنين","الثلاثاء","الأربعاء","الخميس","الجمعة","السبت","الأحد"],daysShort:["أحد","اثنين","ثلاثاء","أربعاء","خميس","جمعة","سبت","أحد"],daysMin:["ح","ن","ث","ع","خ","ج","س","ح"],months:["جانفي","فيفري","مارس","أفريل","ماي","جوان","جويليه","أوت","سبتمبر","أكتوبر","نوفمبر","ديسمبر"],monthsShort:["جانفي","فيفري","مارس","أفريل","ماي","جوان","جويليه","أوت","سبتمبر","أكتوبر","نوفمبر","ديسمبر"],today:"هذا اليوم",rtl:!0}}(jQuery); \ No newline at end of file diff --git a/admin/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.ar.min.js b/admin/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.ar.min.js deleted file mode 100644 index ece41af..0000000 --- a/admin/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.ar.min.js +++ /dev/null @@ -1 +0,0 @@ -!function(a){a.fn.datepicker.dates.ar={days:["الأحد","الاثنين","الثلاثاء","الأربعاء","الخميس","الجمعة","السبت","الأحد"],daysShort:["أحد","اثنين","ثلاثاء","أربعاء","خميس","جمعة","سبت","أحد"],daysMin:["ح","ن","ث","ع","خ","ج","س","ح"],months:["يناير","فبراير","مارس","أبريل","مايو","يونيو","يوليو","أغسطس","سبتمبر","أكتوبر","نوفمبر","ديسمبر"],monthsShort:["يناير","فبراير","مارس","أبريل","مايو","يونيو","يوليو","أغسطس","سبتمبر","أكتوبر","نوفمبر","ديسمبر"],today:"هذا اليوم",rtl:!0}}(jQuery); \ No newline at end of file diff --git a/admin/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.az.min.js b/admin/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.az.min.js deleted file mode 100644 index 56bedf8..0000000 --- a/admin/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.az.min.js +++ /dev/null @@ -1 +0,0 @@ -!function(a){a.fn.datepicker.dates.az={days:["Bazar","Bazar ertəsi","Çərşənbə axşamı","Çərşənbə","Cümə axşamı","Cümə","Şənbə"],daysShort:["B.","B.e","Ç.a","Ç.","C.a","C.","Ş."],daysMin:["B.","B.e","Ç.a","Ç.","C.a","C.","Ş."],months:["Yanvar","Fevral","Mart","Aprel","May","İyun","İyul","Avqust","Sentyabr","Oktyabr","Noyabr","Dekabr"],monthsShort:["Yan","Fev","Mar","Apr","May","İyun","İyul","Avq","Sen","Okt","Noy","Dek"],today:"Bu gün",weekStart:1}}(jQuery); \ No newline at end of file diff --git a/admin/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.bg.min.js b/admin/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.bg.min.js deleted file mode 100644 index 28e8b22..0000000 --- a/admin/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.bg.min.js +++ /dev/null @@ -1 +0,0 @@ -!function(a){a.fn.datepicker.dates.bg={days:["Неделя","Понеделник","Вторник","Сряда","Четвъртък","Петък","Събота"],daysShort:["Нед","Пон","Вто","Сря","Чет","Пет","Съб"],daysMin:["Н","П","В","С","Ч","П","С"],months:["Януари","Февруари","Март","Април","Май","Юни","Юли","Август","Септември","Октомври","Ноември","Декември"],monthsShort:["Ян","Фев","Мар","Апр","Май","Юни","Юли","Авг","Сеп","Окт","Ное","Дек"],today:"днес"}}(jQuery); \ No newline at end of file diff --git a/admin/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.bn.min.js b/admin/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.bn.min.js deleted file mode 100644 index f67b5e2..0000000 --- a/admin/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.bn.min.js +++ /dev/null @@ -1 +0,0 @@ -!function(a){a.fn.datepicker.dates.bn={days:["রবিবার","সোমবার","মঙ্গলবার","বুধবার","বৃহস্পতিবার","শুক্রবার","শনিবার"],daysShort:["রবিবার","সোমবার","মঙ্গলবার","বুধবার","বৃহস্পতিবার","শুক্রবার","শনিবার"],daysMin:["রবি","সোম","মঙ্গল","বুধ","বৃহস্পতি","শুক্র","শনি"],months:["জানুয়ারী","ফেব্রুয়ারি","মার্চ","এপ্রিল","মে","জুন","জুলাই","অগাস্ট","সেপ্টেম্বর","অক্টোবর","নভেম্বর","ডিসেম্বর"],monthsShort:["জানুয়ারী","ফেব্রুয়ারি","মার্চ","এপ্রিল","মে","জুন","জুলাই","অগাস্ট","সেপ্টেম্বর","অক্টোবর","নভেম্বর","ডিসেম্বর"],today:"আজ",monthsTitle:"মাস",clear:"পরিষ্কার",weekStart:0,format:"mm/dd/yyyy"}}(jQuery); \ No newline at end of file diff --git a/admin/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.br.min.js b/admin/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.br.min.js deleted file mode 100644 index af3e3bd..0000000 --- a/admin/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.br.min.js +++ /dev/null @@ -1 +0,0 @@ -!function(a){a.fn.datepicker.dates.br={days:["Sul","Lun","Meurzh","Merc'her","Yaou","Gwener","Sadorn"],daysShort:["Sul","Lun","Meu.","Mer.","Yao.","Gwe.","Sad."],daysMin:["Su","L","Meu","Mer","Y","G","Sa"],months:["Genver","C'hwevrer","Meurzh","Ebrel","Mae","Mezheven","Gouere","Eost","Gwengolo","Here","Du","Kerzu"],monthsShort:["Genv.","C'hw.","Meur.","Ebre.","Mae","Mezh.","Goue.","Eost","Gwen.","Here","Du","Kerz."],today:"Hiziv",monthsTitle:"Miz",clear:"Dilemel",weekStart:1,format:"dd/mm/yyyy"}}(jQuery); \ No newline at end of file diff --git a/admin/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.bs.min.js b/admin/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.bs.min.js deleted file mode 100644 index cfb06fd..0000000 --- a/admin/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.bs.min.js +++ /dev/null @@ -1 +0,0 @@ -!function(a){a.fn.datepicker.dates.bs={days:["Nedjelja","Ponedjeljak","Utorak","Srijeda","Četvrtak","Petak","Subota"],daysShort:["Ned","Pon","Uto","Sri","Čet","Pet","Sub"],daysMin:["N","Po","U","Sr","Č","Pe","Su"],months:["Januar","Februar","Mart","April","Maj","Juni","Juli","August","Septembar","Oktobar","Novembar","Decembar"],monthsShort:["Jan","Feb","Mar","Apr","Maj","Jun","Jul","Aug","Sep","Okt","Nov","Dec"],today:"Danas",weekStart:1,format:"dd.mm.yyyy"}}(jQuery); \ No newline at end of file diff --git a/admin/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.ca.min.js b/admin/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.ca.min.js deleted file mode 100644 index ac10789..0000000 --- a/admin/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.ca.min.js +++ /dev/null @@ -1 +0,0 @@ -!function(a){a.fn.datepicker.dates.ca={days:["Diumenge","Dilluns","Dimarts","Dimecres","Dijous","Divendres","Dissabte"],daysShort:["Diu","Dil","Dmt","Dmc","Dij","Div","Dis"],daysMin:["dg","dl","dt","dc","dj","dv","ds"],months:["Gener","Febrer","Març","Abril","Maig","Juny","Juliol","Agost","Setembre","Octubre","Novembre","Desembre"],monthsShort:["Gen","Feb","Mar","Abr","Mai","Jun","Jul","Ago","Set","Oct","Nov","Des"],today:"Avui",monthsTitle:"Mesos",clear:"Esborrar",weekStart:1,format:"dd/mm/yyyy"}}(jQuery); \ No newline at end of file diff --git a/admin/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.cs.min.js b/admin/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.cs.min.js deleted file mode 100644 index c0db85d..0000000 --- a/admin/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.cs.min.js +++ /dev/null @@ -1 +0,0 @@ -!function(a){a.fn.datepicker.dates.cs={days:["Neděle","Pondělí","Úterý","Středa","Čtvrtek","Pátek","Sobota"],daysShort:["Ned","Pon","Úte","Stř","Čtv","Pát","Sob"],daysMin:["Ne","Po","Út","St","Čt","Pá","So"],months:["Leden","Únor","Březen","Duben","Květen","Červen","Červenec","Srpen","Září","Říjen","Listopad","Prosinec"],monthsShort:["Led","Úno","Bře","Dub","Kvě","Čer","Čnc","Srp","Zář","Říj","Lis","Pro"],today:"Dnes",clear:"Vymazat",monthsTitle:"Měsíc",weekStart:1,format:"dd.m.yyyy"}}(jQuery); \ No newline at end of file diff --git a/admin/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.cy.min.js b/admin/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.cy.min.js deleted file mode 100644 index f85ea03..0000000 --- a/admin/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.cy.min.js +++ /dev/null @@ -1 +0,0 @@ -!function(a){a.fn.datepicker.dates.cy={days:["Sul","Llun","Mawrth","Mercher","Iau","Gwener","Sadwrn"],daysShort:["Sul","Llu","Maw","Mer","Iau","Gwe","Sad"],daysMin:["Su","Ll","Ma","Me","Ia","Gwe","Sa"],months:["Ionawr","Chewfror","Mawrth","Ebrill","Mai","Mehefin","Gorfennaf","Awst","Medi","Hydref","Tachwedd","Rhagfyr"],monthsShort:["Ion","Chw","Maw","Ebr","Mai","Meh","Gor","Aws","Med","Hyd","Tach","Rha"],today:"Heddiw"}}(jQuery); \ No newline at end of file diff --git a/admin/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.da.min.js b/admin/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.da.min.js deleted file mode 100644 index e7fdb31..0000000 --- a/admin/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.da.min.js +++ /dev/null @@ -1 +0,0 @@ -!function(a){a.fn.datepicker.dates.da={days:["Søndag","Mandag","Tirsdag","Onsdag","Torsdag","Fredag","Lørdag"],daysShort:["Søn","Man","Tir","Ons","Tor","Fre","Lør"],daysMin:["Sø","Ma","Ti","On","To","Fr","Lø"],months:["Januar","Februar","Marts","April","Maj","Juni","Juli","August","September","Oktober","November","December"],monthsShort:["Jan","Feb","Mar","Apr","Maj","Jun","Jul","Aug","Sep","Okt","Nov","Dec"],today:"I Dag",weekStart:1,clear:"Nulstil",format:"dd/mm/yyyy"}}(jQuery); \ No newline at end of file diff --git a/admin/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.de.min.js b/admin/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.de.min.js deleted file mode 100644 index 1b5d6a2..0000000 --- a/admin/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.de.min.js +++ /dev/null @@ -1 +0,0 @@ -!function(a){a.fn.datepicker.dates.de={days:["Sonntag","Montag","Dienstag","Mittwoch","Donnerstag","Freitag","Samstag"],daysShort:["Son","Mon","Die","Mit","Don","Fre","Sam"],daysMin:["So","Mo","Di","Mi","Do","Fr","Sa"],months:["Januar","Februar","März","April","Mai","Juni","Juli","August","September","Oktober","November","Dezember"],monthsShort:["Jan","Feb","Mär","Apr","Mai","Jun","Jul","Aug","Sep","Okt","Nov","Dez"],today:"Heute",monthsTitle:"Monate",clear:"Löschen",weekStart:1,format:"dd.mm.yyyy"}}(jQuery); \ No newline at end of file diff --git a/admin/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.el.min.js b/admin/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.el.min.js deleted file mode 100644 index 046e9eb..0000000 --- a/admin/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.el.min.js +++ /dev/null @@ -1 +0,0 @@ -!function(a){a.fn.datepicker.dates.el={days:["Κυριακή","Δευτέρα","Τρίτη","Τετάρτη","Πέμπτη","Παρασκευή","Σάββατο"],daysShort:["Κυρ","Δευ","Τρι","Τετ","Πεμ","Παρ","Σαβ"],daysMin:["Κυ","Δε","Τρ","Τε","Πε","Πα","Σα"],months:["Ιανουάριος","Φεβρουάριος","Μάρτιος","Απρίλιος","Μάιος","Ιούνιος","Ιούλιος","Αύγουστος","Σεπτέμβριος","Οκτώβριος","Νοέμβριος","Δεκέμβριος"],monthsShort:["Ιαν","Φεβ","Μαρ","Απρ","Μάι","Ιουν","Ιουλ","Αυγ","Σεπ","Οκτ","Νοε","Δεκ"],today:"Σήμερα",clear:"Καθαρισμός",weekStart:1,format:"d/m/yyyy"}}(jQuery); \ No newline at end of file diff --git a/admin/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.en-AU.min.js b/admin/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.en-AU.min.js deleted file mode 100644 index b8d5f41..0000000 --- a/admin/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.en-AU.min.js +++ /dev/null @@ -1 +0,0 @@ -!function(a){a.fn.datepicker.dates["en-AU"]={days:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],daysShort:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],daysMin:["Su","Mo","Tu","We","Th","Fr","Sa"],months:["January","February","March","April","May","June","July","August","September","October","November","December"],monthsShort:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],today:"Today",monthsTitle:"Months",clear:"Clear",weekStart:1,format:"d/mm/yyyy"}}(jQuery); \ No newline at end of file diff --git a/admin/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.en-GB.min.js b/admin/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.en-GB.min.js deleted file mode 100644 index 2966f54..0000000 --- a/admin/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.en-GB.min.js +++ /dev/null @@ -1 +0,0 @@ -!function(a){a.fn.datepicker.dates["en-GB"]={days:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],daysShort:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],daysMin:["Su","Mo","Tu","We","Th","Fr","Sa"],months:["January","February","March","April","May","June","July","August","September","October","November","December"],monthsShort:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],today:"Today",monthsTitle:"Months",clear:"Clear",weekStart:1,format:"dd/mm/yyyy"}}(jQuery); \ No newline at end of file diff --git a/admin/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.en-IE.min.js b/admin/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.en-IE.min.js deleted file mode 100644 index dc8f71c..0000000 --- a/admin/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.en-IE.min.js +++ /dev/null @@ -1 +0,0 @@ -!function(a){a.fn.datepicker.dates["en-IE"]={days:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],daysShort:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],daysMin:["Su","Mo","Tu","We","Th","Fr","Sa"],months:["January","February","March","April","May","June","July","August","September","October","November","December"],monthsShort:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],today:"Today",monthsTitle:"Months",clear:"Clear",weekStart:1,format:"dd/mm/yyyy"}}(jQuery); \ No newline at end of file diff --git a/admin/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.en-NZ.min.js b/admin/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.en-NZ.min.js deleted file mode 100644 index c374a8d..0000000 --- a/admin/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.en-NZ.min.js +++ /dev/null @@ -1 +0,0 @@ -!function(a){a.fn.datepicker.dates["en-NZ"]={days:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],daysShort:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],daysMin:["Su","Mo","Tu","We","Th","Fr","Sa"],months:["January","February","March","April","May","June","July","August","September","October","November","December"],monthsShort:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],today:"Today",monthsTitle:"Months",clear:"Clear",weekStart:1,format:"d/mm/yyyy"}}(jQuery); \ No newline at end of file diff --git a/admin/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.en-ZA.min.js b/admin/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.en-ZA.min.js deleted file mode 100644 index 885a928..0000000 --- a/admin/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.en-ZA.min.js +++ /dev/null @@ -1 +0,0 @@ -!function(a){a.fn.datepicker.dates["en-ZA"]={days:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],daysShort:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],daysMin:["Su","Mo","Tu","We","Th","Fr","Sa"],months:["January","February","March","April","May","June","July","August","September","October","November","December"],monthsShort:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],today:"Today",monthsTitle:"Months",clear:"Clear",weekStart:1,format:"yyyy/mm/d"}}(jQuery); \ No newline at end of file diff --git a/admin/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.eo.min.js b/admin/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.eo.min.js deleted file mode 100644 index 736db02..0000000 --- a/admin/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.eo.min.js +++ /dev/null @@ -1 +0,0 @@ -!function(a){a.fn.datepicker.dates.eo={days:["dimanĉo","lundo","mardo","merkredo","ĵaŭdo","vendredo","sabato"],daysShort:["dim.","lun.","mar.","mer.","ĵaŭ.","ven.","sam."],daysMin:["d","l","ma","me","ĵ","v","s"],months:["januaro","februaro","marto","aprilo","majo","junio","julio","aŭgusto","septembro","oktobro","novembro","decembro"],monthsShort:["jan.","feb.","mar.","apr.","majo","jun.","jul.","aŭg.","sep.","okt.","nov.","dec."],today:"Hodiaŭ",clear:"Nuligi",weekStart:1,format:"yyyy-mm-dd"}}(jQuery); \ No newline at end of file diff --git a/admin/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.es.min.js b/admin/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.es.min.js deleted file mode 100644 index f3cef5d..0000000 --- a/admin/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.es.min.js +++ /dev/null @@ -1 +0,0 @@ -!function(a){a.fn.datepicker.dates.es={days:["Domingo","Lunes","Martes","Miércoles","Jueves","Viernes","Sábado"],daysShort:["Dom","Lun","Mar","Mié","Jue","Vie","Sáb"],daysMin:["Do","Lu","Ma","Mi","Ju","Vi","Sa"],months:["Enero","Febrero","Marzo","Abril","Mayo","Junio","Julio","Agosto","Septiembre","Octubre","Noviembre","Diciembre"],monthsShort:["Ene","Feb","Mar","Abr","May","Jun","Jul","Ago","Sep","Oct","Nov","Dic"],today:"Hoy",monthsTitle:"Meses",clear:"Borrar",weekStart:1,format:"dd/mm/yyyy"}}(jQuery); \ No newline at end of file diff --git a/admin/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.et.min.js b/admin/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.et.min.js deleted file mode 100644 index 34cd9c6..0000000 --- a/admin/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.et.min.js +++ /dev/null @@ -1 +0,0 @@ -!function(a){a.fn.datepicker.dates.et={days:["Pühapäev","Esmaspäev","Teisipäev","Kolmapäev","Neljapäev","Reede","Laupäev"],daysShort:["Pühap","Esmasp","Teisip","Kolmap","Neljap","Reede","Laup"],daysMin:["P","E","T","K","N","R","L"],months:["Jaanuar","Veebruar","Märts","Aprill","Mai","Juuni","Juuli","August","September","Oktoober","November","Detsember"],monthsShort:["Jaan","Veebr","Märts","Apr","Mai","Juuni","Juuli","Aug","Sept","Okt","Nov","Dets"],today:"Täna",clear:"Tühjenda",weekStart:1,format:"dd.mm.yyyy"}}(jQuery); \ No newline at end of file diff --git a/admin/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.eu.min.js b/admin/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.eu.min.js deleted file mode 100644 index c5aa359..0000000 --- a/admin/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.eu.min.js +++ /dev/null @@ -1 +0,0 @@ -!function(a){a.fn.datepicker.dates.eu={days:["Igandea","Astelehena","Asteartea","Asteazkena","Osteguna","Ostirala","Larunbata"],daysShort:["Ig","Al","Ar","Az","Og","Ol","Lr"],daysMin:["Ig","Al","Ar","Az","Og","Ol","Lr"],months:["Urtarrila","Otsaila","Martxoa","Apirila","Maiatza","Ekaina","Uztaila","Abuztua","Iraila","Urria","Azaroa","Abendua"],monthsShort:["Urt","Ots","Mar","Api","Mai","Eka","Uzt","Abu","Ira","Urr","Aza","Abe"],today:"Gaur",monthsTitle:"Hilabeteak",clear:"Ezabatu",weekStart:1,format:"yyyy/mm/dd"}}(jQuery); \ No newline at end of file diff --git a/admin/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.fa.min.js b/admin/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.fa.min.js deleted file mode 100644 index 8575237..0000000 --- a/admin/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.fa.min.js +++ /dev/null @@ -1 +0,0 @@ -!function(a){a.fn.datepicker.dates.fa={days:["یک‌شنبه","دوشنبه","سه‌شنبه","چهارشنبه","پنج‌شنبه","جمعه","شنبه","یک‌شنبه"],daysShort:["یک","دو","سه","چهار","پنج","جمعه","شنبه","یک"],daysMin:["ی","د","س","چ","پ","ج","ش","ی"],months:["ژانویه","فوریه","مارس","آوریل","مه","ژوئن","ژوئیه","اوت","سپتامبر","اکتبر","نوامبر","دسامبر"],monthsShort:["ژان","فور","مار","آور","مه","ژون","ژوی","اوت","سپت","اکت","نوا","دسا"],today:"امروز",clear:"پاک کن",weekStart:1,format:"yyyy/mm/dd"}}(jQuery); \ No newline at end of file diff --git a/admin/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.fi.min.js b/admin/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.fi.min.js deleted file mode 100644 index 239dfb7..0000000 --- a/admin/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.fi.min.js +++ /dev/null @@ -1 +0,0 @@ -!function(a){a.fn.datepicker.dates.fi={days:["sunnuntai","maanantai","tiistai","keskiviikko","torstai","perjantai","lauantai"],daysShort:["sun","maa","tii","kes","tor","per","lau"],daysMin:["su","ma","ti","ke","to","pe","la"],months:["tammikuu","helmikuu","maaliskuu","huhtikuu","toukokuu","kesäkuu","heinäkuu","elokuu","syyskuu","lokakuu","marraskuu","joulukuu"],monthsShort:["tam","hel","maa","huh","tou","kes","hei","elo","syy","lok","mar","jou"],today:"tänään",clear:"Tyhjennä",weekStart:1,format:"d.m.yyyy"}}(jQuery); \ No newline at end of file diff --git a/admin/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.fo.min.js b/admin/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.fo.min.js deleted file mode 100644 index fa24e3a..0000000 --- a/admin/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.fo.min.js +++ /dev/null @@ -1 +0,0 @@ -!function(a){a.fn.datepicker.dates.fo={days:["Sunnudagur","Mánadagur","Týsdagur","Mikudagur","Hósdagur","Fríggjadagur","Leygardagur"],daysShort:["Sun","Mán","Týs","Mik","Hós","Frí","Ley"],daysMin:["Su","Má","Tý","Mi","Hó","Fr","Le"],months:["Januar","Februar","Marts","Apríl","Mei","Juni","Juli","August","Septembur","Oktobur","Novembur","Desembur"],monthsShort:["Jan","Feb","Mar","Apr","Mei","Jun","Jul","Aug","Sep","Okt","Nov","Des"],today:"Í Dag",clear:"Reinsa"}}(jQuery); \ No newline at end of file diff --git a/admin/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.fr-CH.min.js b/admin/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.fr-CH.min.js deleted file mode 100644 index 1c6bcdc..0000000 --- a/admin/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.fr-CH.min.js +++ /dev/null @@ -1 +0,0 @@ -!function(a){a.fn.datepicker.dates.fr={days:["Dimanche","Lundi","Mardi","Mercredi","Jeudi","Vendredi","Samedi"],daysShort:["Dim","Lun","Mar","Mer","Jeu","Ven","Sam"],daysMin:["D","L","Ma","Me","J","V","S"],months:["Janvier","Février","Mars","Avril","Mai","Juin","Juillet","Août","Septembre","Octobre","Novembre","Décembre"],monthsShort:["Jan","Fév","Mar","Avr","Mai","Jui","Jul","Aou","Sep","Oct","Nov","Déc"],today:"Aujourd'hui",monthsTitle:"Mois",clear:"Effacer",weekStart:1,format:"dd.mm.yyyy"}}(jQuery); \ No newline at end of file diff --git a/admin/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.fr.min.js b/admin/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.fr.min.js deleted file mode 100644 index 244cfba..0000000 --- a/admin/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.fr.min.js +++ /dev/null @@ -1 +0,0 @@ -!function(a){a.fn.datepicker.dates.fr={days:["dimanche","lundi","mardi","mercredi","jeudi","vendredi","samedi"],daysShort:["dim.","lun.","mar.","mer.","jeu.","ven.","sam."],daysMin:["d","l","ma","me","j","v","s"],months:["janvier","février","mars","avril","mai","juin","juillet","août","septembre","octobre","novembre","décembre"],monthsShort:["janv.","févr.","mars","avril","mai","juin","juil.","août","sept.","oct.","nov.","déc."],today:"Aujourd'hui",monthsTitle:"Mois",clear:"Effacer",weekStart:1,format:"dd/mm/yyyy"}}(jQuery); \ No newline at end of file diff --git a/admin/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.gl.min.js b/admin/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.gl.min.js deleted file mode 100644 index 3d92606..0000000 --- a/admin/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.gl.min.js +++ /dev/null @@ -1 +0,0 @@ -!function(a){a.fn.datepicker.dates.gl={days:["Domingo","Luns","Martes","Mércores","Xoves","Venres","Sábado"],daysShort:["Dom","Lun","Mar","Mér","Xov","Ven","Sáb"],daysMin:["Do","Lu","Ma","Me","Xo","Ve","Sa"],months:["Xaneiro","Febreiro","Marzo","Abril","Maio","Xuño","Xullo","Agosto","Setembro","Outubro","Novembro","Decembro"],monthsShort:["Xan","Feb","Mar","Abr","Mai","Xun","Xul","Ago","Sep","Out","Nov","Dec"],today:"Hoxe",clear:"Limpar",weekStart:1,format:"dd/mm/yyyy"}}(jQuery); \ No newline at end of file diff --git a/admin/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.he.min.js b/admin/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.he.min.js deleted file mode 100644 index 191cb45..0000000 --- a/admin/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.he.min.js +++ /dev/null @@ -1 +0,0 @@ -!function(a){a.fn.datepicker.dates.he={days:["ראשון","שני","שלישי","רביעי","חמישי","שישי","שבת","ראשון"],daysShort:["א","ב","ג","ד","ה","ו","ש","א"],daysMin:["א","ב","ג","ד","ה","ו","ש","א"],months:["ינואר","פברואר","מרץ","אפריל","מאי","יוני","יולי","אוגוסט","ספטמבר","אוקטובר","נובמבר","דצמבר"],monthsShort:["ינו","פבר","מרץ","אפר","מאי","יונ","יול","אוג","ספט","אוק","נוב","דצמ"],today:"היום",rtl:!0}}(jQuery); \ No newline at end of file diff --git a/admin/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.hi.min.js b/admin/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.hi.min.js deleted file mode 100644 index 635baff..0000000 --- a/admin/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.hi.min.js +++ /dev/null @@ -1 +0,0 @@ -!function(a){a.fn.datepicker.dates.hi={days:["रविवार","सोमवार","मंगलवार","बुधवार","गुरुवार","शुक्रवार","शनिवार"],daysShort:["सूर्य","सोम","मंगल","बुध","गुरु","शुक्र","शनि"],daysMin:["र","सो","मं","बु","गु","शु","श"],months:["जनवरी","फ़रवरी","मार्च","अप्रैल","मई","जून","जुलाई","अगस्त","सितम्बर","अक्टूबर","नवंबर","दिसम्बर"],monthsShort:["जन","फ़रवरी","मार्च","अप्रैल","मई","जून","जुलाई","अगस्त","सितं","अक्टूबर","नवं","दिसम्बर"],today:"आज",monthsTitle:"महीने",clear:"साफ",weekStart:1,format:"dd / mm / yyyy"}}(jQuery); \ No newline at end of file diff --git a/admin/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.hr.min.js b/admin/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.hr.min.js deleted file mode 100644 index 8b34bce..0000000 --- a/admin/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.hr.min.js +++ /dev/null @@ -1 +0,0 @@ -!function(a){a.fn.datepicker.dates.hr={days:["Nedjelja","Ponedjeljak","Utorak","Srijeda","Četvrtak","Petak","Subota"],daysShort:["Ned","Pon","Uto","Sri","Čet","Pet","Sub"],daysMin:["Ne","Po","Ut","Sr","Če","Pe","Su"],months:["Siječanj","Veljača","Ožujak","Travanj","Svibanj","Lipanj","Srpanj","Kolovoz","Rujan","Listopad","Studeni","Prosinac"],monthsShort:["Sij","Velj","Ožu","Tra","Svi","Lip","Srp","Kol","Ruj","Lis","Stu","Pro"],today:"Danas"}}(jQuery); \ No newline at end of file diff --git a/admin/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.hu.min.js b/admin/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.hu.min.js deleted file mode 100644 index f9decf9..0000000 --- a/admin/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.hu.min.js +++ /dev/null @@ -1 +0,0 @@ -!function(a){a.fn.datepicker.dates.hu={days:["vasárnap","hétfő","kedd","szerda","csütörtök","péntek","szombat"],daysShort:["vas","hét","ked","sze","csü","pén","szo"],daysMin:["V","H","K","Sze","Cs","P","Szo"],months:["január","február","március","április","május","június","július","augusztus","szeptember","október","november","december"],monthsShort:["jan","feb","már","ápr","máj","jún","júl","aug","sze","okt","nov","dec"],today:"ma",weekStart:1,clear:"töröl",titleFormat:"yyyy. MM",format:"yyyy.mm.dd"}}(jQuery); \ No newline at end of file diff --git a/admin/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.hy.min.js b/admin/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.hy.min.js deleted file mode 100644 index a1cf653..0000000 --- a/admin/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.hy.min.js +++ /dev/null @@ -1 +0,0 @@ -!function(a){a.fn.datepicker.dates.hy={days:["Կիրակի","Երկուշաբթի","Երեքշաբթի","Չորեքշաբթի","Հինգշաբթի","Ուրբաթ","Շաբաթ"],daysShort:["Կիր","Երկ","Երե","Չոր","Հին","Ուրբ","Շաբ"],daysMin:["Կի","Եկ","Եք","Չո","Հի","Ու","Շա"],months:["Հունվար","Փետրվար","Մարտ","Ապրիլ","Մայիս","Հունիս","Հուլիս","Օգոստոս","Սեպտեմբեր","Հոկտեմբեր","Նոյեմբեր","Դեկտեմբեր"],monthsShort:["Հնվ","Փետ","Մար","Ապր","Մայ","Հուն","Հուլ","Օգս","Սեպ","Հոկ","Նոյ","Դեկ"],today:"Այսօր",clear:"Ջնջել",format:"dd.mm.yyyy",weekStart:1,monthsTitle:"Ամիսնէր"}}(jQuery); \ No newline at end of file diff --git a/admin/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.id.min.js b/admin/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.id.min.js deleted file mode 100644 index 7c3220a..0000000 --- a/admin/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.id.min.js +++ /dev/null @@ -1 +0,0 @@ -!function(a){a.fn.datepicker.dates.id={days:["Minggu","Senin","Selasa","Rabu","Kamis","Jumat","Sabtu"],daysShort:["Mgu","Sen","Sel","Rab","Kam","Jum","Sab"],daysMin:["Mg","Sn","Sl","Ra","Ka","Ju","Sa"],months:["Januari","Februari","Maret","April","Mei","Juni","Juli","Agustus","September","Oktober","November","Desember"],monthsShort:["Jan","Feb","Mar","Apr","Mei","Jun","Jul","Ags","Sep","Okt","Nov","Des"],today:"Hari Ini",clear:"Kosongkan"}}(jQuery); \ No newline at end of file diff --git a/admin/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.is.min.js b/admin/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.is.min.js deleted file mode 100644 index f49bd18..0000000 --- a/admin/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.is.min.js +++ /dev/null @@ -1 +0,0 @@ -!function(a){a.fn.datepicker.dates.is={days:["Sunnudagur","Mánudagur","Þriðjudagur","Miðvikudagur","Fimmtudagur","Föstudagur","Laugardagur"],daysShort:["Sun","Mán","Þri","Mið","Fim","Fös","Lau"],daysMin:["Su","Má","Þr","Mi","Fi","Fö","La"],months:["Janúar","Febrúar","Mars","Apríl","Maí","Júní","Júlí","Ágúst","September","Október","Nóvember","Desember"],monthsShort:["Jan","Feb","Mar","Apr","Maí","Jún","Júl","Ágú","Sep","Okt","Nóv","Des"],today:"Í Dag"}}(jQuery); \ No newline at end of file diff --git a/admin/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.it-CH.min.js b/admin/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.it-CH.min.js deleted file mode 100644 index 7e1adbb..0000000 --- a/admin/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.it-CH.min.js +++ /dev/null @@ -1 +0,0 @@ -!function(a){a.fn.datepicker.dates.it={days:["Domenica","Lunedì","Martedì","Mercoledì","Giovedì","Venerdì","Sabato"],daysShort:["Dom","Lun","Mar","Mer","Gio","Ven","Sab"],daysMin:["Do","Lu","Ma","Me","Gi","Ve","Sa"],months:["Gennaio","Febbraio","Marzo","Aprile","Maggio","Giugno","Luglio","Agosto","Settembre","Ottobre","Novembre","Dicembre"],monthsShort:["Gen","Feb","Mar","Apr","Mag","Giu","Lug","Ago","Set","Ott","Nov","Dic"],today:"Oggi",clear:"Cancella",weekStart:1,format:"dd.mm.yyyy"}}(jQuery); \ No newline at end of file diff --git a/admin/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.it.min.js b/admin/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.it.min.js deleted file mode 100644 index cc30766..0000000 --- a/admin/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.it.min.js +++ /dev/null @@ -1 +0,0 @@ -!function(a){a.fn.datepicker.dates.it={days:["Domenica","Lunedì","Martedì","Mercoledì","Giovedì","Venerdì","Sabato"],daysShort:["Dom","Lun","Mar","Mer","Gio","Ven","Sab"],daysMin:["Do","Lu","Ma","Me","Gi","Ve","Sa"],months:["Gennaio","Febbraio","Marzo","Aprile","Maggio","Giugno","Luglio","Agosto","Settembre","Ottobre","Novembre","Dicembre"],monthsShort:["Gen","Feb","Mar","Apr","Mag","Giu","Lug","Ago","Set","Ott","Nov","Dic"],today:"Oggi",monthsTitle:"Mesi",clear:"Cancella",weekStart:1,format:"dd/mm/yyyy"}}(jQuery); \ No newline at end of file diff --git a/admin/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.ja.min.js b/admin/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.ja.min.js deleted file mode 100644 index e321f04..0000000 --- a/admin/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.ja.min.js +++ /dev/null @@ -1 +0,0 @@ -!function(a){a.fn.datepicker.dates.ja={days:["日曜","月曜","火曜","水曜","木曜","金曜","土曜"],daysShort:["日","月","火","水","木","金","土"],daysMin:["日","月","火","水","木","金","土"],months:["1月","2月","3月","4月","5月","6月","7月","8月","9月","10月","11月","12月"],monthsShort:["1月","2月","3月","4月","5月","6月","7月","8月","9月","10月","11月","12月"],today:"今日",format:"yyyy/mm/dd",titleFormat:"yyyy年mm月",clear:"クリア"}}(jQuery); \ No newline at end of file diff --git a/admin/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.ka.min.js b/admin/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.ka.min.js deleted file mode 100644 index 84f14c0..0000000 --- a/admin/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.ka.min.js +++ /dev/null @@ -1 +0,0 @@ -!function(a){a.fn.datepicker.dates.ka={days:["კვირა","ორშაბათი","სამშაბათი","ოთხშაბათი","ხუთშაბათი","პარასკევი","შაბათი"],daysShort:["კვი","ორშ","სამ","ოთხ","ხუთ","პარ","შაბ"],daysMin:["კვ","ორ","სა","ოთ","ხუ","პა","შა"],months:["იანვარი","თებერვალი","მარტი","აპრილი","მაისი","ივნისი","ივლისი","აგვისტო","სექტემბერი","ოქტომბერი","ნოემბერი","დეკემბერი"],monthsShort:["იან","თებ","მარ","აპრ","მაი","ივნ","ივლ","აგვ","სექ","ოქტ","ნოე","დეკ"],today:"დღეს",clear:"გასუფთავება",weekStart:1,format:"dd.mm.yyyy"}}(jQuery); \ No newline at end of file diff --git a/admin/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.kh.min.js b/admin/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.kh.min.js deleted file mode 100644 index bf2abc5..0000000 --- a/admin/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.kh.min.js +++ /dev/null @@ -1 +0,0 @@ -!function(a){a.fn.datepicker.dates.kh={days:["អាទិត្យ","ចន្ទ","អង្គារ","ពុធ","ព្រហស្បតិ៍","សុក្រ","សៅរ៍"],daysShort:["អា.ទិ","ចន្ទ","អង្គារ","ពុធ","ព្រ.ហ","សុក្រ","សៅរ៍"],daysMin:["អា.ទិ","ចន្ទ","អង្គារ","ពុធ","ព្រ.ហ","សុក្រ","សៅរ៍"],months:["មករា","កុម្ភះ","មិនា","មេសា","ឧសភា","មិថុនា","កក្កដា","សីហា","កញ្ញា","តុលា","វិច្ឆិកា","ធ្នូ"],monthsShort:["មករា","កុម្ភះ","មិនា","មេសា","ឧសភា","មិថុនា","កក្កដា","សីហា","កញ្ញា","តុលា","វិច្ឆិកា","ធ្នូ"],today:"ថ្ងៃនេះ",clear:"សំអាត"},a.fn.datepicker.deprecated('The language code "kh" is deprecated and will be removed in 2.0. For Khmer support use "km" instead.')}(jQuery); \ No newline at end of file diff --git a/admin/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.kk.min.js b/admin/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.kk.min.js deleted file mode 100644 index f4e2f3f..0000000 --- a/admin/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.kk.min.js +++ /dev/null @@ -1 +0,0 @@ -!function(a){a.fn.datepicker.dates.kk={days:["Жексенбі","Дүйсенбі","Сейсенбі","Сәрсенбі","Бейсенбі","Жұма","Сенбі"],daysShort:["Жек","Дүй","Сей","Сәр","Бей","Жұм","Сен"],daysMin:["Жк","Дс","Сс","Ср","Бс","Жм","Сн"],months:["Қаңтар","Ақпан","Наурыз","Сәуір","Мамыр","Маусым","Шілде","Тамыз","Қыркүйек","Қазан","Қараша","Желтоқсан"],monthsShort:["Қаң","Ақп","Нау","Сәу","Мам","Мау","Шіл","Там","Қыр","Қаз","Қар","Жел"],today:"Бүгін",weekStart:1}}(jQuery); \ No newline at end of file diff --git a/admin/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.km.min.js b/admin/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.km.min.js deleted file mode 100644 index 648d83f..0000000 --- a/admin/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.km.min.js +++ /dev/null @@ -1 +0,0 @@ -!function(a){a.fn.datepicker.dates.km={days:["អាទិត្យ","ចន្ទ","អង្គារ","ពុធ","ព្រហស្បតិ៍","សុក្រ","សៅរ៍"],daysShort:["អា.ទិ","ចន្ទ","អង្គារ","ពុធ","ព្រ.ហ","សុក្រ","សៅរ៍"],daysMin:["អា.ទិ","ចន្ទ","អង្គារ","ពុធ","ព្រ.ហ","សុក្រ","សៅរ៍"],months:["មករា","កុម្ភះ","មិនា","មេសា","ឧសភា","មិថុនា","កក្កដា","សីហា","កញ្ញា","តុលា","វិច្ឆិកា","ធ្នូ"],monthsShort:["មករា","កុម្ភះ","មិនា","មេសា","ឧសភា","មិថុនា","កក្កដា","សីហា","កញ្ញា","តុលា","វិច្ឆិកា","ធ្នូ"],today:"ថ្ងៃនេះ",clear:"សំអាត"}}(jQuery); \ No newline at end of file diff --git a/admin/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.ko.min.js b/admin/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.ko.min.js deleted file mode 100644 index 9751ee5..0000000 --- a/admin/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.ko.min.js +++ /dev/null @@ -1 +0,0 @@ -!function(a){a.fn.datepicker.dates.ko={days:["일요일","월요일","화요일","수요일","목요일","금요일","토요일"],daysShort:["일","월","화","수","목","금","토"],daysMin:["일","월","화","수","목","금","토"],months:["1월","2월","3월","4월","5월","6월","7월","8월","9월","10월","11월","12월"],monthsShort:["1월","2월","3월","4월","5월","6월","7월","8월","9월","10월","11월","12월"],today:"오늘",clear:"삭제",format:"yyyy-mm-dd",titleFormat:"yyyy년mm월",weekStart:0}}(jQuery); \ No newline at end of file diff --git a/admin/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.kr.min.js b/admin/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.kr.min.js deleted file mode 100644 index 4339340..0000000 --- a/admin/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.kr.min.js +++ /dev/null @@ -1 +0,0 @@ -!function(a){a.fn.datepicker.dates.kr={days:["일요일","월요일","화요일","수요일","목요일","금요일","토요일"],daysShort:["일","월","화","수","목","금","토"],daysMin:["일","월","화","수","목","금","토"],months:["1월","2월","3월","4월","5월","6월","7월","8월","9월","10월","11월","12월"],monthsShort:["1월","2월","3월","4월","5월","6월","7월","8월","9월","10월","11월","12월"]},a.fn.datepicker.deprecated('The language code "kr" is deprecated and will be removed in 2.0. For korean support use "ko" instead.')}(jQuery); \ No newline at end of file diff --git a/admin/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.lt.min.js b/admin/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.lt.min.js deleted file mode 100644 index da78ea8..0000000 --- a/admin/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.lt.min.js +++ /dev/null @@ -1 +0,0 @@ -!function(a){a.fn.datepicker.dates.lt={days:["Sekmadienis","Pirmadienis","Antradienis","Trečiadienis","Ketvirtadienis","Penktadienis","Šeštadienis"],daysShort:["S","Pr","A","T","K","Pn","Š"],daysMin:["Sk","Pr","An","Tr","Ke","Pn","Št"],months:["Sausis","Vasaris","Kovas","Balandis","Gegužė","Birželis","Liepa","Rugpjūtis","Rugsėjis","Spalis","Lapkritis","Gruodis"],monthsShort:["Sau","Vas","Kov","Bal","Geg","Bir","Lie","Rugp","Rugs","Spa","Lap","Gru"],today:"Šiandien",monthsTitle:"Mėnesiai",clear:"Išvalyti",weekStart:1,format:"yyyy-mm-dd"}}(jQuery); \ No newline at end of file diff --git a/admin/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.lv.min.js b/admin/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.lv.min.js deleted file mode 100644 index f56be7d..0000000 --- a/admin/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.lv.min.js +++ /dev/null @@ -1 +0,0 @@ -!function(a){a.fn.datepicker.dates.lv={days:["Svētdiena","Pirmdiena","Otrdiena","Trešdiena","Ceturtdiena","Piektdiena","Sestdiena"],daysShort:["Sv","P","O","T","C","Pk","S"],daysMin:["Sv","Pr","Ot","Tr","Ce","Pk","Se"],months:["Janvāris","Februāris","Marts","Aprīlis","Maijs","Jūnijs","Jūlijs","Augusts","Septembris","Oktobris","Novembris","Decembris"],monthsShort:["Jan","Feb","Mar","Apr","Mai","Jūn","Jūl","Aug","Sep","Okt","Nov","Dec"],today:"Šodien",clear:"Nodzēst",weekStart:1}}(jQuery); \ No newline at end of file diff --git a/admin/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.me.min.js b/admin/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.me.min.js deleted file mode 100644 index c65a891..0000000 --- a/admin/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.me.min.js +++ /dev/null @@ -1 +0,0 @@ -!function(a){a.fn.datepicker.dates.me={days:["Nedjelja","Ponedjeljak","Utorak","Srijeda","Četvrtak","Petak","Subota"],daysShort:["Ned","Pon","Uto","Sri","Čet","Pet","Sub"],daysMin:["Ne","Po","Ut","Sr","Če","Pe","Su"],months:["Januar","Februar","Mart","April","Maj","Jun","Jul","Avgust","Septembar","Oktobar","Novembar","Decembar"],monthsShort:["Jan","Feb","Mar","Apr","Maj","Jun","Jul","Avg","Sep","Okt","Nov","Dec"],today:"Danas",weekStart:1,clear:"Izbriši",format:"dd.mm.yyyy"}}(jQuery); \ No newline at end of file diff --git a/admin/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.mk.min.js b/admin/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.mk.min.js deleted file mode 100644 index 46423f7..0000000 --- a/admin/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.mk.min.js +++ /dev/null @@ -1 +0,0 @@ -!function(a){a.fn.datepicker.dates.mk={days:["Недела","Понеделник","Вторник","Среда","Четврток","Петок","Сабота"],daysShort:["Нед","Пон","Вто","Сре","Чет","Пет","Саб"],daysMin:["Не","По","Вт","Ср","Че","Пе","Са"],months:["Јануари","Февруари","Март","Април","Мај","Јуни","Јули","Август","Септември","Октомври","Ноември","Декември"],monthsShort:["Јан","Фев","Мар","Апр","Мај","Јун","Јул","Авг","Сеп","Окт","Ное","Дек"],today:"Денес",format:"dd.mm.yyyy"}}(jQuery); \ No newline at end of file diff --git a/admin/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.mn.min.js b/admin/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.mn.min.js deleted file mode 100644 index 6ebaec9..0000000 --- a/admin/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.mn.min.js +++ /dev/null @@ -1 +0,0 @@ -!function(a){a.fn.datepicker.dates.mn={days:["Ням","Даваа","Мягмар","Лхагва","Пүрэв","Баасан","Бямба"],daysShort:["Ням","Дав","Мяг","Лха","Пүр","Баа","Бям"],daysMin:["Ня","Да","Мя","Лх","Пү","Ба","Бя"],months:["Хулгана","Үхэр","Бар","Туулай","Луу","Могой","Морь","Хонь","Бич","Тахиа","Нохой","Гахай"],monthsShort:["Хул","Үхэ","Бар","Туу","Луу","Мог","Мор","Хон","Бич","Тах","Нох","Гах"],today:"Өнөөдөр",clear:"Тодорхой",format:"yyyy.mm.dd",weekStart:1}}(jQuery); \ No newline at end of file diff --git a/admin/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.ms.min.js b/admin/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.ms.min.js deleted file mode 100644 index 47efafd..0000000 --- a/admin/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.ms.min.js +++ /dev/null @@ -1 +0,0 @@ -!function(a){a.fn.datepicker.dates.ms={days:["Ahad","Isnin","Selasa","Rabu","Khamis","Jumaat","Sabtu"],daysShort:["Aha","Isn","Sel","Rab","Kha","Jum","Sab"],daysMin:["Ah","Is","Se","Ra","Kh","Ju","Sa"],months:["Januari","Februari","Mac","April","Mei","Jun","Julai","Ogos","September","Oktober","November","Disember"],monthsShort:["Jan","Feb","Mar","Apr","Mei","Jun","Jul","Ogo","Sep","Okt","Nov","Dis"],today:"Hari Ini",clear:"Bersihkan"}}(jQuery); \ No newline at end of file diff --git a/admin/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.nb.min.js b/admin/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.nb.min.js deleted file mode 100644 index 3903b05..0000000 --- a/admin/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.nb.min.js +++ /dev/null @@ -1 +0,0 @@ -!function(a){a.fn.datepicker.dates.nb={days:["Søndag","Mandag","Tirsdag","Onsdag","Torsdag","Fredag","Lørdag"],daysShort:["Søn","Man","Tir","Ons","Tor","Fre","Lør"],daysMin:["Sø","Ma","Ti","On","To","Fr","Lø"],months:["Januar","Februar","Mars","April","Mai","Juni","Juli","August","September","Oktober","November","Desember"],monthsShort:["Jan","Feb","Mar","Apr","Mai","Jun","Jul","Aug","Sep","Okt","Nov","Des"],today:"I Dag",format:"dd.mm.yyyy"}}(jQuery); \ No newline at end of file diff --git a/admin/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.nl-BE.min.js b/admin/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.nl-BE.min.js deleted file mode 100644 index 85d3146..0000000 --- a/admin/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.nl-BE.min.js +++ /dev/null @@ -1 +0,0 @@ -!function(a){a.fn.datepicker.dates["nl-BE"]={days:["zondag","maandag","dinsdag","woensdag","donderdag","vrijdag","zaterdag"],daysShort:["zo","ma","di","wo","do","vr","za"],daysMin:["zo","ma","di","wo","do","vr","za"],months:["januari","februari","maart","april","mei","juni","juli","augustus","september","oktober","november","december"],monthsShort:["jan","feb","mrt","apr","mei","jun","jul","aug","sep","okt","nov","dec"],today:"Vandaag",monthsTitle:"Maanden",clear:"Leegmaken",weekStart:1,format:"dd/mm/yyyy"}}(jQuery); \ No newline at end of file diff --git a/admin/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.nl.min.js b/admin/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.nl.min.js deleted file mode 100644 index af977b7..0000000 --- a/admin/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.nl.min.js +++ /dev/null @@ -1 +0,0 @@ -!function(a){a.fn.datepicker.dates.nl={days:["zondag","maandag","dinsdag","woensdag","donderdag","vrijdag","zaterdag"],daysShort:["zo","ma","di","wo","do","vr","za"],daysMin:["zo","ma","di","wo","do","vr","za"],months:["januari","februari","maart","april","mei","juni","juli","augustus","september","oktober","november","december"],monthsShort:["jan","feb","mrt","apr","mei","jun","jul","aug","sep","okt","nov","dec"],today:"Vandaag",monthsTitle:"Maanden",clear:"Wissen",weekStart:1,format:"dd-mm-yyyy"}}(jQuery); \ No newline at end of file diff --git a/admin/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.no.min.js b/admin/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.no.min.js deleted file mode 100644 index a606e7e..0000000 --- a/admin/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.no.min.js +++ /dev/null @@ -1 +0,0 @@ -!function(a){a.fn.datepicker.dates.no={days:["Søndag","Mandag","Tirsdag","Onsdag","Torsdag","Fredag","Lørdag"],daysShort:["Søn","Man","Tir","Ons","Tor","Fre","Lør"],daysMin:["Sø","Ma","Ti","On","To","Fr","Lø"],months:["Januar","Februar","Mars","April","Mai","Juni","Juli","August","September","Oktober","November","Desember"],monthsShort:["Jan","Feb","Mar","Apr","Mai","Jun","Jul","Aug","Sep","Okt","Nov","Des"],today:"I dag",clear:"Nullstill",weekStart:1,format:"dd.mm.yyyy"}}(jQuery); \ No newline at end of file diff --git a/admin/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.oc.min.js b/admin/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.oc.min.js deleted file mode 100644 index 630fa16..0000000 --- a/admin/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.oc.min.js +++ /dev/null @@ -1 +0,0 @@ -!function(a){a.fn.datepicker.dates.oc={days:["Dimenge","Diluns","Dimars","Dimècres","Dijòus","Divendres","Dissabte"],daysShort:["Dim","Dil","Dmr","Dmc","Dij","Div","Dis"],daysMin:["dg","dl","dr","dc","dj","dv","ds"],months:["Genièr","Febrièr","Març","Abrial","Mai","Junh","Julhet","Agost","Setembre","Octobre","Novembre","Decembre"],monthsShort:["Gen","Feb","Mar","Abr","Mai","Jun","Jul","Ago","Set","Oct","Nov","Dec"],today:"Uèi",monthsTitle:"Meses",clear:"Escafar",weekStart:1,format:"dd/mm/yyyy"}}(jQuery); \ No newline at end of file diff --git a/admin/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.pl.min.js b/admin/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.pl.min.js deleted file mode 100644 index ffb30ec..0000000 --- a/admin/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.pl.min.js +++ /dev/null @@ -1 +0,0 @@ -!function(a){a.fn.datepicker.dates.pl={days:["Niedziela","Poniedziałek","Wtorek","Środa","Czwartek","Piątek","Sobota"],daysShort:["Niedz.","Pon.","Wt.","Śr.","Czw.","Piąt.","Sob."],daysMin:["Ndz.","Pn.","Wt.","Śr.","Czw.","Pt.","Sob."],months:["Styczeń","Luty","Marzec","Kwiecień","Maj","Czerwiec","Lipiec","Sierpień","Wrzesień","Październik","Listopad","Grudzień"],monthsShort:["Sty.","Lut.","Mar.","Kwi.","Maj","Cze.","Lip.","Sie.","Wrz.","Paź.","Lis.","Gru."],today:"Dzisiaj",weekStart:1,clear:"Wyczyść",format:"dd.mm.yyyy"}}(jQuery); \ No newline at end of file diff --git a/admin/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.pt-BR.min.js b/admin/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.pt-BR.min.js deleted file mode 100644 index 2d3f8af..0000000 --- a/admin/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.pt-BR.min.js +++ /dev/null @@ -1 +0,0 @@ -!function(a){a.fn.datepicker.dates["pt-BR"]={days:["Domingo","Segunda","Terça","Quarta","Quinta","Sexta","Sábado"],daysShort:["Dom","Seg","Ter","Qua","Qui","Sex","Sáb"],daysMin:["Do","Se","Te","Qu","Qu","Se","Sa"],months:["Janeiro","Fevereiro","Março","Abril","Maio","Junho","Julho","Agosto","Setembro","Outubro","Novembro","Dezembro"],monthsShort:["Jan","Fev","Mar","Abr","Mai","Jun","Jul","Ago","Set","Out","Nov","Dez"],today:"Hoje",monthsTitle:"Meses",clear:"Limpar",format:"dd/mm/yyyy"}}(jQuery); \ No newline at end of file diff --git a/admin/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.pt.min.js b/admin/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.pt.min.js deleted file mode 100644 index e2b4e64..0000000 --- a/admin/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.pt.min.js +++ /dev/null @@ -1 +0,0 @@ -!function(a){a.fn.datepicker.dates.pt={days:["Domingo","Segunda","Terça","Quarta","Quinta","Sexta","Sábado"],daysShort:["Dom","Seg","Ter","Qua","Qui","Sex","Sáb"],daysMin:["Do","Se","Te","Qu","Qu","Se","Sa"],months:["Janeiro","Fevereiro","Março","Abril","Maio","Junho","Julho","Agosto","Setembro","Outubro","Novembro","Dezembro"],monthsShort:["Jan","Fev","Mar","Abr","Mai","Jun","Jul","Ago","Set","Out","Nov","Dez"],today:"Hoje",monthsTitle:"Meses",clear:"Limpar",format:"dd/mm/yyyy"}}(jQuery); \ No newline at end of file diff --git a/admin/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.ro.min.js b/admin/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.ro.min.js deleted file mode 100644 index 5fff298..0000000 --- a/admin/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.ro.min.js +++ /dev/null @@ -1 +0,0 @@ -!function(a){a.fn.datepicker.dates.ro={days:["Duminică","Luni","Marţi","Miercuri","Joi","Vineri","Sâmbătă"],daysShort:["Dum","Lun","Mar","Mie","Joi","Vin","Sâm"],daysMin:["Du","Lu","Ma","Mi","Jo","Vi","Sâ"],months:["Ianuarie","Februarie","Martie","Aprilie","Mai","Iunie","Iulie","August","Septembrie","Octombrie","Noiembrie","Decembrie"],monthsShort:["Ian","Feb","Mar","Apr","Mai","Iun","Iul","Aug","Sep","Oct","Nov","Dec"],today:"Astăzi",clear:"Șterge",weekStart:1,format:"dd/mm/yyyy"}}(jQuery); \ No newline at end of file diff --git a/admin/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.rs-latin.min.js b/admin/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.rs-latin.min.js deleted file mode 100644 index e520c95..0000000 --- a/admin/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.rs-latin.min.js +++ /dev/null @@ -1 +0,0 @@ -!function(a){a.fn.datepicker.dates["rs-latin"]={days:["Nedelja","Ponedeljak","Utorak","Sreda","Četvrtak","Petak","Subota"],daysShort:["Ned","Pon","Uto","Sre","Čet","Pet","Sub"],daysMin:["N","Po","U","Sr","Č","Pe","Su"],months:["Januar","Februar","Mart","April","Maj","Jun","Jul","Avgust","Septembar","Oktobar","Novembar","Decembar"],monthsShort:["Jan","Feb","Mar","Apr","Maj","Jun","Jul","Avg","Sep","Okt","Nov","Dec"],today:"Danas",weekStart:1,format:"dd.mm.yyyy"},a.fn.datepicker.deprecated('This language code "rs-latin" is deprecated (invalid serbian language code) and will be removed in 2.0. For Serbian latin support use "sr-latin" instead.')}(jQuery); \ No newline at end of file diff --git a/admin/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.rs.min.js b/admin/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.rs.min.js deleted file mode 100644 index ba95ae2..0000000 --- a/admin/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.rs.min.js +++ /dev/null @@ -1 +0,0 @@ -!function(a){a.fn.datepicker.dates.rs={days:["Недеља","Понедељак","Уторак","Среда","Четвртак","Петак","Субота"],daysShort:["Нед","Пон","Уто","Сре","Чет","Пет","Суб"],daysMin:["Н","По","У","Ср","Ч","Пе","Су"],months:["Јануар","Фебруар","Март","Април","Мај","Јун","Јул","Август","Септембар","Октобар","Новембар","Децембар"],monthsShort:["Јан","Феб","Мар","Апр","Мај","Јун","Јул","Авг","Сеп","Окт","Нов","Дец"],today:"Данас",weekStart:1,format:"dd.mm.yyyy"},a.fn.datepicker.deprecated('This language code "rs" is deprecated (invalid serbian language code) and will be removed in 2.0. For Serbian support use "sr" instead.')}(jQuery); \ No newline at end of file diff --git a/admin/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.ru.min.js b/admin/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.ru.min.js deleted file mode 100644 index 52bc010..0000000 --- a/admin/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.ru.min.js +++ /dev/null @@ -1 +0,0 @@ -!function(a){a.fn.datepicker.dates.ru={days:["Воскресенье","Понедельник","Вторник","Среда","Четверг","Пятница","Суббота"],daysShort:["Вск","Пнд","Втр","Срд","Чтв","Птн","Суб"],daysMin:["Вс","Пн","Вт","Ср","Чт","Пт","Сб"],months:["Январь","Февраль","Март","Апрель","Май","Июнь","Июль","Август","Сентябрь","Октябрь","Ноябрь","Декабрь"],monthsShort:["Янв","Фев","Мар","Апр","Май","Июн","Июл","Авг","Сен","Окт","Ноя","Дек"],today:"Сегодня",clear:"Очистить",format:"dd.mm.yyyy",weekStart:1,monthsTitle:"Месяцы"}}(jQuery); \ No newline at end of file diff --git a/admin/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.si.min.js b/admin/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.si.min.js deleted file mode 100644 index b9746b8..0000000 --- a/admin/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.si.min.js +++ /dev/null @@ -1 +0,0 @@ -!function(a){a.fn.datepicker.dates.si={days:["ඉරිදා","සඳුදා","අඟහරුවාදා","බදාදා","බ්‍රහස්පතින්දා","සිකුරාදා","සෙනසුරාදා"],daysShort:["ඉරි","සඳු","අඟ","බදා","බ්‍රහ","සිකු","සෙන"],daysMin:["ඉ","ස","අ","බ","බ්‍ර","සි","සෙ"],months:["ජනවාරි","පෙබරවාරි","මාර්තු","අප්‍රේල්","මැයි","ජුනි","ජූලි","අගෝස්තු","සැප්තැම්බර්","ඔක්තෝබර්","නොවැම්බර්","දෙසැම්බර්"],monthsShort:["ජන","පෙබ","මාර්","අප්‍රේ","මැයි","ජුනි","ජූලි","අගෝ","සැප්","ඔක්","නොවැ","දෙසැ"],today:"අද",monthsTitle:"මාස",clear:"මකන්න",weekStart:0,format:"yyyy-mm-dd"}}(jQuery); \ No newline at end of file diff --git a/admin/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.sk.min.js b/admin/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.sk.min.js deleted file mode 100644 index 79a9267..0000000 --- a/admin/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.sk.min.js +++ /dev/null @@ -1 +0,0 @@ -!function(a){a.fn.datepicker.dates.sk={days:["Nedeľa","Pondelok","Utorok","Streda","Štvrtok","Piatok","Sobota"],daysShort:["Ned","Pon","Uto","Str","Štv","Pia","Sob"],daysMin:["Ne","Po","Ut","St","Št","Pia","So"],months:["Január","Február","Marec","Apríl","Máj","Jún","Júl","August","September","Október","November","December"],monthsShort:["Jan","Feb","Mar","Apr","Máj","Jún","Júl","Aug","Sep","Okt","Nov","Dec"],today:"Dnes",clear:"Vymazať",weekStart:1,format:"d.m.yyyy"}}(jQuery); \ No newline at end of file diff --git a/admin/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.sl.min.js b/admin/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.sl.min.js deleted file mode 100644 index 831cf73..0000000 --- a/admin/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.sl.min.js +++ /dev/null @@ -1 +0,0 @@ -!function(a){a.fn.datepicker.dates.sl={days:["Nedelja","Ponedeljek","Torek","Sreda","Četrtek","Petek","Sobota"],daysShort:["Ned","Pon","Tor","Sre","Čet","Pet","Sob"],daysMin:["Ne","Po","To","Sr","Če","Pe","So"],months:["Januar","Februar","Marec","April","Maj","Junij","Julij","Avgust","September","Oktober","November","December"],monthsShort:["Jan","Feb","Mar","Apr","Maj","Jun","Jul","Avg","Sep","Okt","Nov","Dec"],today:"Danes",weekStart:1}}(jQuery); \ No newline at end of file diff --git a/admin/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.sq.min.js b/admin/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.sq.min.js deleted file mode 100644 index 40f3e1f..0000000 --- a/admin/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.sq.min.js +++ /dev/null @@ -1 +0,0 @@ -!function(a){a.fn.datepicker.dates.sq={days:["E Diel","E Hënë","E Martē","E Mërkurë","E Enjte","E Premte","E Shtunë"],daysShort:["Die","Hën","Mar","Mër","Enj","Pre","Shtu"],daysMin:["Di","Hë","Ma","Më","En","Pr","Sht"],months:["Janar","Shkurt","Mars","Prill","Maj","Qershor","Korrik","Gusht","Shtator","Tetor","Nëntor","Dhjetor"],monthsShort:["Jan","Shk","Mar","Pri","Maj","Qer","Korr","Gu","Sht","Tet","Nën","Dhjet"],today:"Sot"}}(jQuery); \ No newline at end of file diff --git a/admin/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.sr-latin.min.js b/admin/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.sr-latin.min.js deleted file mode 100644 index c6b7001..0000000 --- a/admin/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.sr-latin.min.js +++ /dev/null @@ -1 +0,0 @@ -!function(a){a.fn.datepicker.dates["sr-latin"]={days:["Nedelja","Ponedeljak","Utorak","Sreda","Četvrtak","Petak","Subota"],daysShort:["Ned","Pon","Uto","Sre","Čet","Pet","Sub"],daysMin:["N","Po","U","Sr","Č","Pe","Su"],months:["Januar","Februar","Mart","April","Maj","Jun","Jul","Avgust","Septembar","Oktobar","Novembar","Decembar"],monthsShort:["Jan","Feb","Mar","Apr","Maj","Jun","Jul","Avg","Sep","Okt","Nov","Dec"],today:"Danas",weekStart:1,format:"dd.mm.yyyy"}}(jQuery); \ No newline at end of file diff --git a/admin/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.sr.min.js b/admin/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.sr.min.js deleted file mode 100644 index 4e46dbf..0000000 --- a/admin/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.sr.min.js +++ /dev/null @@ -1 +0,0 @@ -!function(a){a.fn.datepicker.dates.sr={days:["Недеља","Понедељак","Уторак","Среда","Четвртак","Петак","Субота"],daysShort:["Нед","Пон","Уто","Сре","Чет","Пет","Суб"],daysMin:["Н","По","У","Ср","Ч","Пе","Су"],months:["Јануар","Фебруар","Март","Април","Мај","Јун","Јул","Август","Септембар","Октобар","Новембар","Децембар"],monthsShort:["Јан","Феб","Мар","Апр","Мај","Јун","Јул","Авг","Сеп","Окт","Нов","Дец"],today:"Данас",weekStart:1,format:"dd.mm.yyyy"}}(jQuery); \ No newline at end of file diff --git a/admin/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.sv.min.js b/admin/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.sv.min.js deleted file mode 100644 index f088f82..0000000 --- a/admin/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.sv.min.js +++ /dev/null @@ -1 +0,0 @@ -!function(a){a.fn.datepicker.dates.sv={days:["Söndag","Måndag","Tisdag","Onsdag","Torsdag","Fredag","Lördag"],daysShort:["Sön","Mån","Tis","Ons","Tor","Fre","Lör"],daysMin:["Sö","Må","Ti","On","To","Fr","Lö"],months:["Januari","Februari","Mars","April","Maj","Juni","Juli","Augusti","September","Oktober","November","December"],monthsShort:["Jan","Feb","Mar","Apr","Maj","Jun","Jul","Aug","Sep","Okt","Nov","Dec"],today:"Idag",format:"yyyy-mm-dd",weekStart:1,clear:"Rensa"}}(jQuery); \ No newline at end of file diff --git a/admin/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.sw.min.js b/admin/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.sw.min.js deleted file mode 100644 index 454d305..0000000 --- a/admin/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.sw.min.js +++ /dev/null @@ -1 +0,0 @@ -!function(a){a.fn.datepicker.dates.sw={days:["Jumapili","Jumatatu","Jumanne","Jumatano","Alhamisi","Ijumaa","Jumamosi"],daysShort:["J2","J3","J4","J5","Alh","Ij","J1"],daysMin:["2","3","4","5","A","I","1"],months:["Januari","Februari","Machi","Aprili","Mei","Juni","Julai","Agosti","Septemba","Oktoba","Novemba","Desemba"],monthsShort:["Jan","Feb","Mac","Apr","Mei","Jun","Jul","Ago","Sep","Okt","Nov","Des"],today:"Leo"}}(jQuery); \ No newline at end of file diff --git a/admin/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.ta.min.js b/admin/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.ta.min.js deleted file mode 100644 index e790949..0000000 --- a/admin/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.ta.min.js +++ /dev/null @@ -1 +0,0 @@ -!function(a){a.fn.datepicker.dates.ta={days:["ஞாயிறு","திங்கள்","செவ்வாய்","புதன்","வியாழன்","வெள்ளி","சனி"],daysShort:["ஞாயி","திங்","செவ்","புத","வியா","வெள்","சனி"],daysMin:["ஞா","தி","செ","பு","வி","வெ","ச"],months:["ஜனவரி","பிப்ரவரி","மார்ச்","ஏப்ரல்","மே","ஜூன்","ஜூலை","ஆகஸ்டு","செப்டம்பர்","அக்டோபர்","நவம்பர்","டிசம்பர்"],monthsShort:["ஜன","பிப்","மார்","ஏப்","மே","ஜூன்","ஜூலை","ஆக","செப்","அக்","நவ","டிச"],today:"இன்று",monthsTitle:"மாதங்கள்",clear:"நீக்கு",weekStart:1,format:"dd/mm/yyyy"}}(jQuery); \ No newline at end of file diff --git a/admin/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.tg.min.js b/admin/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.tg.min.js deleted file mode 100644 index 104b6dd..0000000 --- a/admin/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.tg.min.js +++ /dev/null @@ -1 +0,0 @@ -!function(a){a.fn.datepicker.dates.tg={days:["Якшанбе","Душанбе","Сешанбе","Чоршанбе","Панҷшанбе","Ҷумъа","Шанбе"],daysShort:["Яшб","Дшб","Сшб","Чшб","Пшб","Ҷум","Шнб"],daysMin:["Яш","Дш","Сш","Чш","Пш","Ҷм","Шб"],months:["Январ","Феврал","Март","Апрел","Май","Июн","Июл","Август","Сентябр","Октябр","Ноябр","Декабр"],monthsShort:["Янв","Фев","Мар","Апр","Май","Июн","Июл","Авг","Сен","Окт","Ноя","Дек"],today:"Имрӯз",monthsTitle:"Моҳҳо",clear:"Тоза намудан",weekStart:1,format:"dd.mm.yyyy"}}(jQuery); \ No newline at end of file diff --git a/admin/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.th.min.js b/admin/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.th.min.js deleted file mode 100644 index 1e398ba..0000000 --- a/admin/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.th.min.js +++ /dev/null @@ -1 +0,0 @@ -!function(a){a.fn.datepicker.dates.th={days:["อาทิตย์","จันทร์","อังคาร","พุธ","พฤหัส","ศุกร์","เสาร์","อาทิตย์"],daysShort:["อา","จ","อ","พ","พฤ","ศ","ส","อา"],daysMin:["อา","จ","อ","พ","พฤ","ศ","ส","อา"],months:["มกราคม","กุมภาพันธ์","มีนาคม","เมษายน","พฤษภาคม","มิถุนายน","กรกฎาคม","สิงหาคม","กันยายน","ตุลาคม","พฤศจิกายน","ธันวาคม"],monthsShort:["ม.ค.","ก.พ.","มี.ค.","เม.ย.","พ.ค.","มิ.ย.","ก.ค.","ส.ค.","ก.ย.","ต.ค.","พ.ย.","ธ.ค."],today:"วันนี้"}}(jQuery); \ No newline at end of file diff --git a/admin/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.tr.min.js b/admin/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.tr.min.js deleted file mode 100644 index 7889b11..0000000 --- a/admin/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.tr.min.js +++ /dev/null @@ -1 +0,0 @@ -!function(a){a.fn.datepicker.dates.tr={days:["Pazar","Pazartesi","Salı","Çarşamba","Perşembe","Cuma","Cumartesi"],daysShort:["Pz","Pzt","Sal","Çrş","Prş","Cu","Cts"],daysMin:["Pz","Pzt","Sa","Çr","Pr","Cu","Ct"],months:["Ocak","Şubat","Mart","Nisan","Mayıs","Haziran","Temmuz","Ağustos","Eylül","Ekim","Kasım","Aralık"],monthsShort:["Oca","Şub","Mar","Nis","May","Haz","Tem","Ağu","Eyl","Eki","Kas","Ara"],today:"Bugün",clear:"Temizle",weekStart:1,format:"dd.mm.yyyy"}}(jQuery); \ No newline at end of file diff --git a/admin/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.uk.min.js b/admin/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.uk.min.js deleted file mode 100644 index 41b02e6..0000000 --- a/admin/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.uk.min.js +++ /dev/null @@ -1 +0,0 @@ -!function(a){a.fn.datepicker.dates.uk={days:["Неділя","Понеділок","Вівторок","Середа","Четвер","П'ятниця","Субота"],daysShort:["Нед","Пнд","Втр","Срд","Чтв","Птн","Суб"],daysMin:["Нд","Пн","Вт","Ср","Чт","Пт","Сб"],months:["Cічень","Лютий","Березень","Квітень","Травень","Червень","Липень","Серпень","Вересень","Жовтень","Листопад","Грудень"],monthsShort:["Січ","Лют","Бер","Кві","Тра","Чер","Лип","Сер","Вер","Жов","Лис","Гру"],today:"Сьогодні",clear:"Очистити",format:"dd.mm.yyyy",weekStart:1}}(jQuery); \ No newline at end of file diff --git a/admin/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.uz-cyrl.min.js b/admin/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.uz-cyrl.min.js deleted file mode 100644 index a0a8f21..0000000 --- a/admin/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.uz-cyrl.min.js +++ /dev/null @@ -1 +0,0 @@ -!function(a){a.fn.datepicker.dates["uz-cyrl"]={days:["Якшанба","Душанба","Сешанба","Чоршанба","Пайшанба","Жума","Шанба"],daysShort:["Якш","Ду","Се","Чор","Пай","Жу","Ша"],daysMin:["Як","Ду","Се","Чо","Па","Жу","Ша"],months:["Январь","Февраль","Март","Апрель","Май","Июнь","Июль","Август","Сентябрь","Октябрь","Ноябрь","Декабрь"],monthsShort:["Янв","Фев","Мар","Апр","Май","Июн","Июл","Авг","Сен","Окт","Ноя","Дек"],today:"Бугун",clear:"Ўчириш",format:"dd.mm.yyyy",weekStart:1,monthsTitle:"Ойлар"}}(jQuery); \ No newline at end of file diff --git a/admin/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.uz-latn.min.js b/admin/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.uz-latn.min.js deleted file mode 100644 index 2f58e34..0000000 --- a/admin/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.uz-latn.min.js +++ /dev/null @@ -1 +0,0 @@ -!function(a){a.fn.datepicker.dates["uz-latn"]={days:["Yakshanba","Dushanba","Seshanba","Chorshanba","Payshanba","Juma","Shanba"],daysShort:["Yak","Du","Se","Chor","Pay","Ju","Sha"],daysMin:["Ya","Du","Se","Cho","Pa","Ju","Sha"],months:["Yanvar","Fevral","Mart","Aprel","May","Iyun","Iyul","Avgust","Sentabr","Oktabr","Noyabr","Dekabr"],monthsShort:["Yan","Fev","Mar","Apr","May","Iyn","Iyl","Avg","Sen","Okt","Noy","Dek"],today:"Bugun",clear:"O'chirish",format:"dd.mm.yyyy",weekStart:1,monthsTitle:"Oylar"}}(jQuery); \ No newline at end of file diff --git a/admin/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.vi.min.js b/admin/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.vi.min.js deleted file mode 100644 index 3311d23..0000000 --- a/admin/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.vi.min.js +++ /dev/null @@ -1 +0,0 @@ -!function(a){a.fn.datepicker.dates.vi={days:["Chủ nhật","Thứ hai","Thứ ba","Thứ tư","Thứ năm","Thứ sáu","Thứ bảy"],daysShort:["CN","Thứ 2","Thứ 3","Thứ 4","Thứ 5","Thứ 6","Thứ 7"],daysMin:["CN","T2","T3","T4","T5","T6","T7"],months:["Tháng 1","Tháng 2","Tháng 3","Tháng 4","Tháng 5","Tháng 6","Tháng 7","Tháng 8","Tháng 9","Tháng 10","Tháng 11","Tháng 12"],monthsShort:["Th1","Th2","Th3","Th4","Th5","Th6","Th7","Th8","Th9","Th10","Th11","Th12"],today:"Hôm nay",clear:"Xóa",format:"dd/mm/yyyy"}}(jQuery); \ No newline at end of file diff --git a/admin/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.zh-CN.min.js b/admin/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.zh-CN.min.js deleted file mode 100644 index 1279176..0000000 --- a/admin/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.zh-CN.min.js +++ /dev/null @@ -1 +0,0 @@ -!function(a){a.fn.datepicker.dates["zh-CN"]={days:["星期日","星期一","星期二","星期三","星期四","星期五","星期六"],daysShort:["周日","周一","周二","周三","周四","周五","周六"],daysMin:["日","一","二","三","四","五","六"],months:["一月","二月","三月","四月","五月","六月","七月","八月","九月","十月","十一月","十二月"],monthsShort:["1月","2月","3月","4月","5月","6月","7月","8月","9月","10月","11月","12月"],today:"今日",clear:"清除",format:"yyyy年mm月dd日",titleFormat:"yyyy年mm月",weekStart:1}}(jQuery); \ No newline at end of file diff --git a/admin/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.zh-TW.min.js b/admin/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.zh-TW.min.js deleted file mode 100644 index e309c1d..0000000 --- a/admin/bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.zh-TW.min.js +++ /dev/null @@ -1 +0,0 @@ -!function(a){a.fn.datepicker.dates["zh-TW"]={days:["星期日","星期一","星期二","星期三","星期四","星期五","星期六"],daysShort:["週日","週一","週二","週三","週四","週五","週六"],daysMin:["日","一","二","三","四","五","六"],months:["一月","二月","三月","四月","五月","六月","七月","八月","九月","十月","十一月","十二月"],monthsShort:["1月","2月","3月","4月","5月","6月","7月","8月","9月","10月","11月","12月"],today:"今天",format:"yyyy年mm月dd日",weekStart:1,clear:"清除"}}(jQuery); \ No newline at end of file diff --git a/admin/bower_components/bootstrap-datepicker/docs/Makefile b/admin/bower_components/bootstrap-datepicker/docs/Makefile deleted file mode 100644 index 34b6ef8..0000000 --- a/admin/bower_components/bootstrap-datepicker/docs/Makefile +++ /dev/null @@ -1,153 +0,0 @@ -# Makefile for Sphinx documentation -# - -# You can set these variables from the command line. -SPHINXOPTS = -SPHINXBUILD = sphinx-build -PAPER = -BUILDDIR = _build - -# Internal variables. -PAPEROPT_a4 = -D latex_paper_size=a4 -PAPEROPT_letter = -D latex_paper_size=letter -ALLSPHINXOPTS = -d $(BUILDDIR)/doctrees $(PAPEROPT_$(PAPER)) $(SPHINXOPTS) . -# the i18n builder cannot share the environment and doctrees with the others -I18NSPHINXOPTS = $(PAPEROPT_$(PAPER)) $(SPHINXOPTS) . - -.PHONY: help clean html dirhtml singlehtml pickle json htmlhelp qthelp devhelp epub latex latexpdf text man changes linkcheck doctest gettext - -help: - @echo "Please use \`make <target>' where <target> is one of" - @echo " html to make standalone HTML files" - @echo " dirhtml to make HTML files named index.html in directories" - @echo " singlehtml to make a single large HTML file" - @echo " pickle to make pickle files" - @echo " json to make JSON files" - @echo " htmlhelp to make HTML files and a HTML help project" - @echo " qthelp to make HTML files and a qthelp project" - @echo " devhelp to make HTML files and a Devhelp project" - @echo " epub to make an epub" - @echo " latex to make LaTeX files, you can set PAPER=a4 or PAPER=letter" - @echo " latexpdf to make LaTeX files and run them through pdflatex" - @echo " text to make text files" - @echo " man to make manual pages" - @echo " texinfo to make Texinfo files" - @echo " info to make Texinfo files and run them through makeinfo" - @echo " gettext to make PO message catalogs" - @echo " changes to make an overview of all changed/added/deprecated items" - @echo " linkcheck to check all external links for integrity" - @echo " doctest to run all doctests embedded in the documentation (if enabled)" - -clean: - -rm -rf $(BUILDDIR)/* - -html: - $(SPHINXBUILD) -b html $(ALLSPHINXOPTS) $(BUILDDIR)/html - @echo - @echo "Build finished. The HTML pages are in $(BUILDDIR)/html." - -dirhtml: - $(SPHINXBUILD) -b dirhtml $(ALLSPHINXOPTS) $(BUILDDIR)/dirhtml - @echo - @echo "Build finished. The HTML pages are in $(BUILDDIR)/dirhtml." - -singlehtml: - $(SPHINXBUILD) -b singlehtml $(ALLSPHINXOPTS) $(BUILDDIR)/singlehtml - @echo - @echo "Build finished. The HTML page is in $(BUILDDIR)/singlehtml." - -pickle: - $(SPHINXBUILD) -b pickle $(ALLSPHINXOPTS) $(BUILDDIR)/pickle - @echo - @echo "Build finished; now you can process the pickle files." - -json: - $(SPHINXBUILD) -b json $(ALLSPHINXOPTS) $(BUILDDIR)/json - @echo - @echo "Build finished; now you can process the JSON files." - -htmlhelp: - $(SPHINXBUILD) -b htmlhelp $(ALLSPHINXOPTS) $(BUILDDIR)/htmlhelp - @echo - @echo "Build finished; now you can run HTML Help Workshop with the" \ - ".hhp project file in $(BUILDDIR)/htmlhelp." - -qthelp: - $(SPHINXBUILD) -b qthelp $(ALLSPHINXOPTS) $(BUILDDIR)/qthelp - @echo - @echo "Build finished; now you can run "qcollectiongenerator" with the" \ - ".qhcp project file in $(BUILDDIR)/qthelp, like this:" - @echo "# qcollectiongenerator $(BUILDDIR)/qthelp/bootstrap-datepicker.qhcp" - @echo "To view the help file:" - @echo "# assistant -collectionFile $(BUILDDIR)/qthelp/bootstrap-datepicker.qhc" - -devhelp: - $(SPHINXBUILD) -b devhelp $(ALLSPHINXOPTS) $(BUILDDIR)/devhelp - @echo - @echo "Build finished." - @echo "To view the help file:" - @echo "# mkdir -p $$HOME/.local/share/devhelp/bootstrap-datepicker" - @echo "# ln -s $(BUILDDIR)/devhelp $$HOME/.local/share/devhelp/bootstrap-datepicker" - @echo "# devhelp" - -epub: - $(SPHINXBUILD) -b epub $(ALLSPHINXOPTS) $(BUILDDIR)/epub - @echo - @echo "Build finished. The epub file is in $(BUILDDIR)/epub." - -latex: - $(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) $(BUILDDIR)/latex - @echo - @echo "Build finished; the LaTeX files are in $(BUILDDIR)/latex." - @echo "Run \`make' in that directory to run these through (pdf)latex" \ - "(use \`make latexpdf' here to do that automatically)." - -latexpdf: - $(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) $(BUILDDIR)/latex - @echo "Running LaTeX files through pdflatex..." - $(MAKE) -C $(BUILDDIR)/latex all-pdf - @echo "pdflatex finished; the PDF files are in $(BUILDDIR)/latex." - -text: - $(SPHINXBUILD) -b text $(ALLSPHINXOPTS) $(BUILDDIR)/text - @echo - @echo "Build finished. The text files are in $(BUILDDIR)/text." - -man: - $(SPHINXBUILD) -b man $(ALLSPHINXOPTS) $(BUILDDIR)/man - @echo - @echo "Build finished. The manual pages are in $(BUILDDIR)/man." - -texinfo: - $(SPHINXBUILD) -b texinfo $(ALLSPHINXOPTS) $(BUILDDIR)/texinfo - @echo - @echo "Build finished. The Texinfo files are in $(BUILDDIR)/texinfo." - @echo "Run \`make' in that directory to run these through makeinfo" \ - "(use \`make info' here to do that automatically)." - -info: - $(SPHINXBUILD) -b texinfo $(ALLSPHINXOPTS) $(BUILDDIR)/texinfo - @echo "Running Texinfo files through makeinfo..." - make -C $(BUILDDIR)/texinfo info - @echo "makeinfo finished; the Info files are in $(BUILDDIR)/texinfo." - -gettext: - $(SPHINXBUILD) -b gettext $(I18NSPHINXOPTS) $(BUILDDIR)/locale - @echo - @echo "Build finished. The message catalogs are in $(BUILDDIR)/locale." - -changes: - $(SPHINXBUILD) -b changes $(ALLSPHINXOPTS) $(BUILDDIR)/changes - @echo - @echo "The overview file is in $(BUILDDIR)/changes." - -linkcheck: - $(SPHINXBUILD) -b linkcheck $(ALLSPHINXOPTS) $(BUILDDIR)/linkcheck - @echo - @echo "Link check complete; look for any errors in the above output " \ - "or in $(BUILDDIR)/linkcheck/output.txt." - -doctest: - $(SPHINXBUILD) -b doctest $(ALLSPHINXOPTS) $(BUILDDIR)/doctest - @echo "Testing of doctests in the sources finished, look at the " \ - "results in $(BUILDDIR)/doctest/output.txt." diff --git a/admin/bower_components/bootstrap-datepicker/docs/README.md b/admin/bower_components/bootstrap-datepicker/docs/README.md deleted file mode 100644 index 58028f3..0000000 --- a/admin/bower_components/bootstrap-datepicker/docs/README.md +++ /dev/null @@ -1,20 +0,0 @@ -Documentation -============= - -Project documentation is built using [Sphinx docs](http://sphinx-doc.org/), which uses [ReST](http://docutils.sourceforge.net/rst.html) for markup. This allows the docs to cover a vast amount of topics without using a thousand-line README file. - -Sphinx docs is pip-installable via `pip install sphinx`. Once installed, open a command line in the docs folder and run the following commands: - -```bash -$ sudo pip install -r requirements.txt -``` - -This will install the requirements needed for the generating the docs. Afterwards you can run: - -```bash -$ make html -``` - -The docs will be generated, the output files will be placed in the `_build/html/` directory, and can be browsed (locally) with any browser. - -The docs can also be found online at <http://bootstrap-datepicker.readthedocs.org/>. diff --git a/admin/bower_components/bootstrap-datepicker/docs/_screenshots/demo_head.html b/admin/bower_components/bootstrap-datepicker/docs/_screenshots/demo_head.html deleted file mode 100644 index 64d2e7c..0000000 --- a/admin/bower_components/bootstrap-datepicker/docs/_screenshots/demo_head.html +++ /dev/null @@ -1,36 +0,0 @@ -<!DOCTYPE html> -<html> - <head> - <link rel="stylesheet" href="script/common.css"> - <script src="script/common.js"></script> - <script> - function setup(){ - var dp = $('.base').datepicker().data('datepicker'); - - dp.focusDate = new Date(Date.UTC(2013, 7, 14)); - dp.update(); - - $('.date').datepicker({ - format: 'mm-dd-yyyy' - }); - $('.inline').datepicker(); - } - </script> - </head> - <body data-capture=".base, .date, .datepicker"> - <div class="row"> - <div class="col-sm-3"> - <input type="text" class="form-control base" value="08/03/2013"> - </div> - <div class="col-sm-offset-1 col-sm-3"> - <div class="input-group date"> - <input type="text" class="form-control" value="10-05-2003" readonly> - <div class="input-group-addon"> - <span class="glyphicon glyphicon-th"></span> - </div> - </div> - </div> - <div class="col-sm-offset-1 col-sm-4 inline" data-date="01/03/2004"></div> - </div> - </body> -</html> diff --git a/admin/bower_components/bootstrap-datepicker/docs/_screenshots/markup_component.html b/admin/bower_components/bootstrap-datepicker/docs/_screenshots/markup_component.html deleted file mode 100644 index 2b99921..0000000 --- a/admin/bower_components/bootstrap-datepicker/docs/_screenshots/markup_component.html +++ /dev/null @@ -1,26 +0,0 @@ -<!DOCTYPE html> -<html> - <head> - <link rel="stylesheet" href="script/common.css"> - <script src="script/common.js"></script> - <script> - function setup(){ - $('.date').datepicker({ - format: 'mm-dd-yyyy' - }); - } - </script> - </head> - <body data-capture=".input-group, .datepicker"> - <div class="row"> - <div class="col-sm-offset-4 col-sm-3"> - <div class="input-group date"> - <input type="text" class="form-control" value="12-02-2012"> - <div class="input-group-addon"> - <span class="glyphicon glyphicon-th"></span> - </div> - </div> - </div> - </div> - </body> -</html> diff --git a/admin/bower_components/bootstrap-datepicker/docs/_screenshots/markup_daterange.html b/admin/bower_components/bootstrap-datepicker/docs/_screenshots/markup_daterange.html deleted file mode 100644 index 9d158e7..0000000 --- a/admin/bower_components/bootstrap-datepicker/docs/_screenshots/markup_daterange.html +++ /dev/null @@ -1,32 +0,0 @@ -<!DOCTYPE html> -<html> - <head> - <link rel="stylesheet" href="script/common.css"> - <script src="script/common.js"></script> - <script> - function setup(){ - $('.input-daterange').datepicker({ - format: 'yyyy-mm-dd' - }); - } - </script> - </head> - <body data-capture=".input-daterange, .datepicker" data-show="input:first, input:last"> - <div class="row"> - <div class="col-sm-5"> - <div class="input-group input-daterange"> - <input type="text" class="form-control" value="2012-04-05"> - <div class="input-group-addon">to</div> - <input type="text" class="form-control" value="2012-04-19"> - </div> - </div> - <div class="col-sm-5"> - <div class="input-group input-daterange"> - <input type="text" class="form-control" value="2012-04-05"> - <div class="input-group-addon">to</div> - <input type="text" class="form-control" value="2012-04-19"> - </div> - </div> - </div> - </body> -</html> diff --git a/admin/bower_components/bootstrap-datepicker/docs/_screenshots/markup_inline.html b/admin/bower_components/bootstrap-datepicker/docs/_screenshots/markup_inline.html deleted file mode 100644 index ff4e8ed..0000000 --- a/admin/bower_components/bootstrap-datepicker/docs/_screenshots/markup_inline.html +++ /dev/null @@ -1,15 +0,0 @@ -<!DOCTYPE html> -<html> - <head> - <link rel="stylesheet" href="script/common.css"> - <script src="script/common.js"></script> - <script> - function setup(){ - $('div').datepicker(); - } - </script> - </head> - <body data-capture=".datepicker"> - <div data-date="12/03/2012"></div> - </body> -</html> diff --git a/admin/bower_components/bootstrap-datepicker/docs/_screenshots/markup_input.html b/admin/bower_components/bootstrap-datepicker/docs/_screenshots/markup_input.html deleted file mode 100644 index 2e1c289..0000000 --- a/admin/bower_components/bootstrap-datepicker/docs/_screenshots/markup_input.html +++ /dev/null @@ -1,21 +0,0 @@ -<!DOCTYPE html> -<html> - <head> - <link rel="stylesheet" href="script/common.css"> - <script src="script/common.js"></script> - <script> - function setup(){ - $('input').datepicker({ - format: 'mm-dd-yyyy' - }); - } - </script> - </head> - <body data-capture="input, .datepicker"> - <div class="row"> - <div class="col-sm-offset-4 col-sm-3"> - <input type="text" class="form-control" value="02-16-2012"> - </div> - </div> - </body> -</html> diff --git a/admin/bower_components/bootstrap-datepicker/docs/_screenshots/option_calendarweeks.html b/admin/bower_components/bootstrap-datepicker/docs/_screenshots/option_calendarweeks.html deleted file mode 100644 index 7565f89..0000000 --- a/admin/bower_components/bootstrap-datepicker/docs/_screenshots/option_calendarweeks.html +++ /dev/null @@ -1,25 +0,0 @@ -<!DOCTYPE html> -<html> - <head> - <link rel="stylesheet" href="script/common.css"> - <script src="script/common.js"></script> - <script> - function setup(){ - $('input').datepicker({ - format: 'mm-dd-yyyy', - calendarWeeks: true - }); - } - </script> - </head> - <body data-capture="input, .datepicker"> - <div class="row"> - <div class="col-sm-3"> - <input type="text" class="form-control" value="01-16-2012"> - </div> - <div class="col-sm-offset-2 col-sm-3"> - <input type="text" class="form-control" value="12-16-2012"> - </div> - </div> - </body> -</html> diff --git a/admin/bower_components/bootstrap-datepicker/docs/_screenshots/option_clearbtn.html b/admin/bower_components/bootstrap-datepicker/docs/_screenshots/option_clearbtn.html deleted file mode 100644 index a4b5ef0..0000000 --- a/admin/bower_components/bootstrap-datepicker/docs/_screenshots/option_clearbtn.html +++ /dev/null @@ -1,22 +0,0 @@ -<!DOCTYPE html> -<html> - <head> - <link rel="stylesheet" href="script/common.css"> - <script src="script/common.js"></script> - <script> - function setup(){ - $('input').datepicker({ - format: 'mm-dd-yyyy', - clearBtn: true - }); - } - </script> - </head> - <body data-capture="input, .datepicker"> - <div class="row"> - <div class="col-sm-offset-4 col-sm-3"> - <input type="text" class="form-control" value="03-03-2013"> - </div> - </div> - </body> -</html> diff --git a/admin/bower_components/bootstrap-datepicker/docs/_screenshots/option_daysofweekdisabled.html b/admin/bower_components/bootstrap-datepicker/docs/_screenshots/option_daysofweekdisabled.html deleted file mode 100644 index bd31b38..0000000 --- a/admin/bower_components/bootstrap-datepicker/docs/_screenshots/option_daysofweekdisabled.html +++ /dev/null @@ -1,22 +0,0 @@ -<!DOCTYPE html> -<html> - <head> - <link rel="stylesheet" href="script/common.css"> - <script src="script/common.js"></script> - <script> - function setup(){ - $('input').datepicker({ - format: 'mm-dd-yyyy', - daysOfWeekDisabled: [0, 6] - }); - } - </script> - </head> - <body data-capture="input, .datepicker"> - <div class="row"> - <div class="col-sm-offset-4 col-sm-3"> - <input type="text" class="form-control" value="03-05-2013"> - </div> - </div> - </body> -</html> diff --git a/admin/bower_components/bootstrap-datepicker/docs/_screenshots/option_enddate.html b/admin/bower_components/bootstrap-datepicker/docs/_screenshots/option_enddate.html deleted file mode 100644 index 43da9d9..0000000 --- a/admin/bower_components/bootstrap-datepicker/docs/_screenshots/option_enddate.html +++ /dev/null @@ -1,22 +0,0 @@ -<!DOCTYPE html> -<html> - <head> - <link rel="stylesheet" href="script/common.css"> - <script src="script/common.js"></script> - <script> - function setup(){ - $('input').datepicker({ - format: 'mm-dd-yyyy', - endDate: '03-14-2013' - }); - } - </script> - </head> - <body data-capture="input, .datepicker"> - <div class="row"> - <div class="col-sm-offset-4 col-sm-3"> - <input type="text" class="form-control" value="03-03-2013"> - </div> - </div> - </body> -</html> diff --git a/admin/bower_components/bootstrap-datepicker/docs/_screenshots/option_language.html b/admin/bower_components/bootstrap-datepicker/docs/_screenshots/option_language.html deleted file mode 100644 index 37f5930..0000000 --- a/admin/bower_components/bootstrap-datepicker/docs/_screenshots/option_language.html +++ /dev/null @@ -1,36 +0,0 @@ -<!DOCTYPE html> -<html> - <head> - <link rel="stylesheet" href="script/common.css"> - <style> - .row + .row { - margin-top: 30px; - } - </style> - <script src="script/common.js"></script> - <script src="../../js/locales/bootstrap-datepicker.es.js" charset="UTF-8"></script> - <script src="../../js/locales/bootstrap-datepicker.fr.js" charset="UTF-8"></script> - <script src="../../js/locales/bootstrap-datepicker.zh-TW.js" charset="UTF-8"></script> - <script src="../../js/locales/bootstrap-datepicker.ru.js" charset="UTF-8"></script> - <script src="../../js/locales/bootstrap-datepicker.ja.js" charset="UTF-8"></script> - <script> - function setup(){ - $('[data-date]').datepicker({ - format: 'mm/dd/yyyy' // To override locale-specific formats - }); - } - </script> - </head> - <body data-capture=".datepicker"> - <div class="row"> - <div class="col-sm-4" data-date="03/03/2013" data-date-language="en"></div> - <div class="col-sm-4" data-date="03/03/2013" data-date-start-view="1" data-date-language="es"></div> - <div class="col-sm-4" data-date="03/03/2013" data-date-language="fr"></div> - </div> - <div class="row"> - <div class="col-sm-4" data-date="03/03/2013" data-date-start-view="1" data-date-language="zh-TW"></div> - <div class="col-sm-4" data-date="03/03/2013" data-date-language="ja"></div> - <div class="col-sm-4" data-date="03/03/2013" data-date-start-view="1" data-date-language="ru"></div> - </div> - </body> -</html> diff --git a/admin/bower_components/bootstrap-datepicker/docs/_screenshots/option_multidate.html b/admin/bower_components/bootstrap-datepicker/docs/_screenshots/option_multidate.html deleted file mode 100644 index 191b239..0000000 --- a/admin/bower_components/bootstrap-datepicker/docs/_screenshots/option_multidate.html +++ /dev/null @@ -1,27 +0,0 @@ -<!DOCTYPE html> -<html> - <head> - <link rel="stylesheet" href="script/common.css"> - <script src="script/common.js"></script> - <script> - function setup(){ - $('input').datepicker({ - multidate: true - }); - } - </script> - </head> - <body data-capture="input, .datepicker"> - <div class="row"> - <div class="col-sm-4"> - <input type="text" class="form-control" value="03/03/2013,03/16/2013"> - </div> - <div class="col-sm-4"> - <input type="text" class="form-control" value="03/03/2013,06/16/2013" data-date-start-view="1"> - </div> - <div class="col-sm-4"> - <input type="text" class="form-control" value="03/03/2013,03/16/2014" data-date-start-view="2"> - </div> - </div> - </body> -</html> diff --git a/admin/bower_components/bootstrap-datepicker/docs/_screenshots/option_startdate.html b/admin/bower_components/bootstrap-datepicker/docs/_screenshots/option_startdate.html deleted file mode 100644 index ce97784..0000000 --- a/admin/bower_components/bootstrap-datepicker/docs/_screenshots/option_startdate.html +++ /dev/null @@ -1,22 +0,0 @@ -<!DOCTYPE html> -<html> - <head> - <link rel="stylesheet" href="script/common.css"> - <script src="script/common.js"></script> - <script> - function setup(){ - $('input').datepicker({ - format: 'mm-dd-yyyy', - startDate: '03-14-2013' - }); - } - </script> - </head> - <body data-capture="input, .datepicker"> - <div class="row"> - <div class="col-sm-offset-4 col-sm-3"> - <input type="text" class="form-control" value="03-18-2013"> - </div> - </div> - </body> -</html> diff --git a/admin/bower_components/bootstrap-datepicker/docs/_screenshots/option_todaybtn.html b/admin/bower_components/bootstrap-datepicker/docs/_screenshots/option_todaybtn.html deleted file mode 100644 index 0843012..0000000 --- a/admin/bower_components/bootstrap-datepicker/docs/_screenshots/option_todaybtn.html +++ /dev/null @@ -1,21 +0,0 @@ -<!DOCTYPE html> -<html> - <head> - <link rel="stylesheet" href="script/common.css"> - <script src="script/common.js"></script> - <script> - function setup(){ - $('input').datepicker({ - todayBtn: true - }); - } - </script> - </head> - <body data-capture="input, .datepicker"> - <div class="row"> - <div class="col-sm-offset-4 col-sm-3"> - <input type="text" class="form-control" value="03/03/2013"> - </div> - </div> - </body> -</html> diff --git a/admin/bower_components/bootstrap-datepicker/docs/_screenshots/option_todayhighlight.html b/admin/bower_components/bootstrap-datepicker/docs/_screenshots/option_todayhighlight.html deleted file mode 100644 index fb38008..0000000 --- a/admin/bower_components/bootstrap-datepicker/docs/_screenshots/option_todayhighlight.html +++ /dev/null @@ -1,47 +0,0 @@ -<!DOCTYPE html> -<html> - <head> - <link rel="stylesheet" href="script/common.css"> - <script src="script/common.js"></script> - <script> - function patch_date(f){ - var NativeDate = window.Date; - var date = function date(y,m,d,h,i,s,j){ - switch(arguments.length){ - case 0: return date.now ? new NativeDate(date.now) : new NativeDate(); - case 1: return new NativeDate(y); - case 2: return new NativeDate(y,m); - case 3: return new NativeDate(y,m,d); - case 4: return new NativeDate(y,m,d,h); - case 5: return new NativeDate(y,m,d,h,i); - case 6: return new NativeDate(y,m,d,h,i,s); - case 7: return new NativeDate(y,y,m,d,h,i,s,j); - } - }; - date.UTC = NativeDate.UTC; - return function(){ - Array.prototype.push.call(arguments, date); - window.Date = date; - f.apply(this, arguments); - window.Date = NativeDate; - }; - } - var setup = patch_date(function(Date){ - Date.now = new Date(2013, 2, 18); - $('input').datepicker({ - todayHighlight: true - }); - }); - </script> - </head> - <body data-capture="input, .datepicker"> - <div class="row"> - <div class="col-sm-3"> - <input type="text" class="form-control" value="03/03/2013"> - </div> - <div class="col-sm-offset-2 col-sm-3"> - <input type="text" class="form-control" value="03/18/2013"> - </div> - </div> - </body> -</html> diff --git a/admin/bower_components/bootstrap-datepicker/docs/_screenshots/option_weekstart.html b/admin/bower_components/bootstrap-datepicker/docs/_screenshots/option_weekstart.html deleted file mode 100644 index e55a04f..0000000 --- a/admin/bower_components/bootstrap-datepicker/docs/_screenshots/option_weekstart.html +++ /dev/null @@ -1,25 +0,0 @@ -<!DOCTYPE html> -<html> - <head> - <link rel="stylesheet" href="script/common.css"> - <script src="script/common.js"></script> - <script> - function setup(){ - $('input').datepicker(); - } - </script> - </head> - <body data-capture="input, .datepicker"> - <div class="row"> - <div class="col-sm-3"> - <input type="text" class="form-control" value="03/03/2013" data-date-week-start="2"> - </div> - <div class="col-sm-offset-1 col-sm-3"> - <input type="text" class="form-control" value="03/03/2013" data-date-week-start="4"> - </div> - <div class="col-sm-offset-1 col-sm-3"> - <input type="text" class="form-control" value="03/03/2013" data-date-week-start="6"> - </div> - </div> - </body> -</html> diff --git a/admin/bower_components/bootstrap-datepicker/docs/_screenshots/script/common.css b/admin/bower_components/bootstrap-datepicker/docs/_screenshots/script/common.css deleted file mode 100644 index 0535e8c..0000000 --- a/admin/bower_components/bootstrap-datepicker/docs/_screenshots/script/common.css +++ /dev/null @@ -1,9 +0,0 @@ -@import url('https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css'); -@import url('../../../dist/css/bootstrap-datepicker3.min.css'); - -body { - /* Padding around all elements to allow space for screenshots */ - padding: 10px; - /* Transparent background for PNG screenshots */ - background: none; -} diff --git a/admin/bower_components/bootstrap-datepicker/docs/_screenshots/script/common.js b/admin/bower_components/bootstrap-datepicker/docs/_screenshots/script/common.js deleted file mode 100644 index ebadc02..0000000 --- a/admin/bower_components/bootstrap-datepicker/docs/_screenshots/script/common.js +++ /dev/null @@ -1,2 +0,0 @@ -document.write("<script src='https://code.jquery.com/jquery-3.1.1.min.js'></script>"); -document.write("<script src='../../js/bootstrap-datepicker.js'></script>"); diff --git a/admin/bower_components/bootstrap-datepicker/docs/_screenshots/script/debug.js b/admin/bower_components/bootstrap-datepicker/docs/_screenshots/script/debug.js deleted file mode 100644 index e609fa6..0000000 --- a/admin/bower_components/bootstrap-datepicker/docs/_screenshots/script/debug.js +++ /dev/null @@ -1,21 +0,0 @@ -/* - Usage: $ phantomjs --remote-debugger-port=9001 --remote-debugger-autorun=yes debug.js page.html - - Open Chrome tab to http://localhost:9001/; open second link (ie, path to page.html) -*/ -var system = require('system' ), fs = require('fs'), webpage = require('webpage'); - -(function(phantom){ - var page=webpage.create(); - - function debugPage(){ - console.log("Refresh a second debugger-port page and open a second webkit inspector for the target page."); - console.log("Letting this page continue will then trigger a break in the target page."); - debugger; // pause here in first web browser tab for steps 5 & 6 - page.open(system.args[1]); - page.evaluateAsync(function() { - debugger; // step 7 will wait here in the second web browser tab - }); - } - debugPage(); -}(phantom)); diff --git a/admin/bower_components/bootstrap-datepicker/docs/_screenshots/script/html-imports.min.js b/admin/bower_components/bootstrap-datepicker/docs/_screenshots/script/html-imports.min.js deleted file mode 100644 index 368d226..0000000 --- a/admin/bower_components/bootstrap-datepicker/docs/_screenshots/script/html-imports.min.js +++ /dev/null @@ -1,30 +0,0 @@ -// Copyright (c) 2012 The Polymer Authors. All rights reserved. -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// * Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// * Redistributions in binary form must reproduce the above -// copyright notice, this list of conditions and the following disclaimer -// in the documentation and/or other materials provided with the -// distribution. -// * Neither the name of Google Inc. nor the names of its -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - -window.HTMLImports=window.HTMLImports||{flags:{}},function(a){var b=(a.path,a.xhr),c=function(a,b){this.cache={},this.onload=a,this.oncomplete=b,this.inflight=0,this.pending={}};c.prototype={addNodes:function(a){this.inflight+=a.length,d(a,this.require,this),this.checkDone()},require:function(a){var b=a.src||a.href;a.__nodeUrl=b,this.dedupe(b,a)||this.fetch(b,a)},dedupe:function(a,b){return this.pending[a]?(this.pending[a].push(b),!0):this.cache[a]?(this.onload(a,b,this.cache[a]),this.tail(),!0):(this.pending[a]=[b],!1)},fetch:function(a,c){var d=function(b,d){this.receive(a,c,b,d)}.bind(this);b.load(a,d)},receive:function(a,b,c,d){c||(this.cache[a]=d),this.pending[a].forEach(function(b){c||this.onload(a,b,d),this.tail()},this),this.pending[a]=null},tail:function(){--this.inflight,this.checkDone()},checkDone:function(){this.inflight||this.oncomplete()}},b=b||{async:!0,ok:function(a){return a.status>=200&&a.status<300||304===a.status||0===a.status},load:function(c,d,e){var f=new XMLHttpRequest;return(a.flags.debug||a.flags.bust)&&(c+="?"+Math.random()),f.open("GET",c,b.async),f.addEventListener("readystatechange",function(){4===f.readyState&&d.call(e,!b.ok(f)&&f,f.response||f.responseText,c)}),f.send(),f},loadDocument:function(a,b,c){this.load(a,b,c).responseType="document"}};var d=Array.prototype.forEach.call.bind(Array.prototype.forEach);a.xhr=b,a.Loader=c}(window.HTMLImports),function(a){function b(a){return c(a,j)}function c(a,b){return"link"===a.localName&&a.getAttribute("rel")===b}function d(a){return"script"===a.localName}function e(a,b){var c=a;c instanceof Document||(c=document.implementation.createHTMLDocument(j)),c._URL=b;var d=c.createElement("base");return d.setAttribute("href",b),c.baseURI||(c.baseURI=b),c.head.appendChild(d),a instanceof Document||(c.body.innerHTML=a),window.HTMLTemplateElement&&HTMLTemplateElement.bootstrap&&HTMLTemplateElement.bootstrap(c),c}function f(a,b){function c(){k==l&&requestAnimationFrame(a)}function d(){k++,c()}b=b||o;var e=HTMLImports.isIE?"complete":"interactive",h="complete"===b.readyState||b.readyState===e;if(!h){var i=function(){("complete"===b.readyState||b.readyState===e)&&(b.removeEventListener("readystatechange",i),f(a,b))};return void b.addEventListener("readystatechange",i)}var j=b.querySelectorAll("link[rel=import]"),k=0,l=j.length;if(l)for(var m,n=0;l>n&&(m=j[n]);n++)g(m)?d.call(m):(m.addEventListener("load",d),m.addEventListener("error",d));else c()}function g(a){return i?a.import&&"loading"!==a.import.readyState:a.__importParsed}var h="import"in document.createElement("link"),i=!a.flags.imports&&h,j="import";if(!i){{var k,l=a.Loader,m=(a.xhr,"stylesheet"),n={documents:{},cache:{},preloadSelectors:["link[rel="+j+"]","template","script[src]:not([type])",'script[src][type="text/javascript"]'].join(","),loader:function(a){if(k&&k.inflight){var b=k.oncomplete;return k.oncomplete=function(){b(),a()},k}return k=new l(n.loaded,a),k.cache=n.cache,k},load:function(a,b){k=n.loader(b),n.preload(a)},preload:function(a){var b=this.marshalNodes(a);k.addNodes(b)},marshalNodes:function(a){var b=a.querySelectorAll(n.preloadSelectors);return b=this.filterMainDocumentNodes(a,b),b=this.extractTemplateNodes(b)},filterMainDocumentNodes:function(a,b){return a===document&&(b=Array.prototype.filter.call(b,function(a){return!d(a)})),b},extractTemplateNodes:function(a){var b=[];return a=Array.prototype.filter.call(a,function(a){if("template"===a.localName){if(a.content){var c=a.content.querySelectorAll("link[rel="+m+"]");c.length&&(b=b.concat(Array.prototype.slice.call(c,0)))}return!1}return!0}),b.length&&(a=a.concat(b)),a},loaded:function(a,c,d){if(b(c)){var f=n.documents[a];f||(f=e(d,a),n.documents[a]=f,n.preload(f)),c.import=c.content=d=f}c.__resource=d}};Array.prototype.forEach.call.bind(Array.prototype.forEach)}a.importer=n}var o=window.ShadowDOMPolyfill?wrap(document):document;Object.defineProperty(o,"_currentScript",{get:function(){return HTMLImports.currentScript||o.currentScript},writeable:!0,configurable:!0}),a.hasNative=h,a.useNative=i,a.whenImportsReady=f,a.IMPORT_LINK_TYPE=j,a.isImportLoaded=g}(window.HTMLImports),function(a){function b(a){var b=a.ownerDocument.createElement("style");return b.textContent=a.textContent,g.resolveUrlsInStyle(b),b}function c(a,b){this.doc=a,this.doc.__loadTracker=this,this.callback=b}function d(a){return"link"===a.localName&&a.getAttribute("rel")===h}function e(a){return a.parentNode&&!f(a)}function f(a){return a.ownerDocument===document||a.ownerDocument.impl===document}var g=a.path,h="import",i=/Trident/.test(navigator.userAgent),j={selectors:["link[rel="+h+"]","link[rel=stylesheet]","style","script:not([type])",'script[type="text/javascript"]'],map:{link:"parseLink",script:"parseScript",style:"parseStyle"},parse:function(a,b){if(a.__importParsed)b&&b();else{a.__importParsed=!0;for(var d,e=new c(a,b),f=a.querySelectorAll(j.selectors),g=a.scripts?a.scripts.length:0,h=0;h<f.length&&(d=f[h]);h++)j[j.map[d.localName]](d),a.scripts&&g!==a.scripts.length&&(g=a.scripts.length,f=a.querySelectorAll(j.selectors));e.open()}},parseLink:function(a){if(d(a)){if(this.trackElement(a),a.__resource?j.parse(a.__resource,function(){a.dispatchEvent(new CustomEvent("load",{bubbles:!1}))}):a.dispatchEvent(new CustomEvent("error",{bubbles:!1})),a.__pending)for(var b;a.__pending.length;)b=a.__pending.shift(),b&&b({target:a});a.__importParsed=!0}else e(a)&&(a.href=a.href),this.parseGeneric(a)},trackElement:function(a){i&&"style"===a.localName||a.ownerDocument.__loadTracker.require(a)},parseStyle:function(a){a=e(a)?b(a):a,this.parseGeneric(a)},parseGeneric:function(a){f(a)||(this.trackElement(a),document.head.appendChild(a))},parseScript:function(b){if(e(b)){var c=(b.__resource||b.textContent).trim();if(c){var d=b.__nodeUrl;if(!d){d=b.ownerDocument.baseURI;var f="["+Math.floor(1e3*(Math.random()+1))+"]",g=c.match(/Polymer\(['"]([^'"]*)/);f=g&&g[1]||f,d+="/"+f+".js"}c+="\n//# sourceURL="+d+"\n",a.currentScript=b,eval.call(window,c),a.currentScript=null}}}},k=/(url\()([^)]*)(\))/g,l=/(@import[\s]*)([^;]*)(;)/g,g={resolveUrlsInStyle:function(a){var b=a.ownerDocument,c=b.createElement("a");return a.textContent=this.resolveUrlsInCssText(a.textContent,c),a},resolveUrlsInCssText:function(a,b){var c=this.replaceUrls(a,b,k);return c=this.replaceUrls(c,b,l)},replaceUrls:function(a,b,c){return a.replace(c,function(a,c,d,e){var f=d.replace(/["']/g,"");return b.href=f,f=b.href,c+"'"+f+"'"+e})}};c.prototype={pending:0,isOpen:!1,open:function(){this.isOpen=!0,this.checkDone()},add:function(){this.pending++},require:function(a){this.add();var b=this,c=function(a){b.receive(a)};if(d(a))a.__pending=a.__pending||[],a.__pending.push(c);else for(var e,f=["load","error"],g=0,h=f.length;h>g&&(e=f[g]);g++)a.addEventListener(e,c)},receive:function(){this.pending--,this.checkDone()},checkDone:function(){this.isOpen&&this.pending<=0&&this.callback&&(this.isOpen=!1,this.callback())}};Array.prototype.forEach.call.bind(Array.prototype.forEach);a.parser=j,a.path=g,a.isIE=i}(HTMLImports),function(){function a(){HTMLImports.ready=!0,HTMLImports.readyTime=(new Date).getTime(),c.dispatchEvent(new CustomEvent("HTMLImportsLoaded",{bubbles:!0}))}function b(){HTMLImports.useNative||HTMLImports.importer.load(c,function(){HTMLImports.parser.parse(c)})}"function"!=typeof window.CustomEvent&&(window.CustomEvent=function(a,b){var c=document.createEvent("HTMLEvents");return c.initEvent(a,b.bubbles===!1?!1:!0,b.cancelable===!1?!1:!0,b.detail),c});var c=window.ShadowDOMPolyfill?window.ShadowDOMPolyfill.wrapIfNeeded(document):document;HTMLImports.useNative||("complete"===document.readyState||"interactive"===document.readyState&&!window.attachEvent?b():document.addEventListener("DOMContentLoaded",b)),HTMLImports.whenImportsReady(function(){a()})}(); -//# sourceMappingURL=html-imports.min.map \ No newline at end of file diff --git a/admin/bower_components/bootstrap-datepicker/docs/_screenshots/script/screenshot.js b/admin/bower_components/bootstrap-datepicker/docs/_screenshots/script/screenshot.js deleted file mode 100644 index 920d030..0000000 --- a/admin/bower_components/bootstrap-datepicker/docs/_screenshots/script/screenshot.js +++ /dev/null @@ -1,69 +0,0 @@ -/* jshint phantom:true, devel:true */ -/* Usage: phantomjs screenshot.js in.html out.png */ - -var sys = require('system'), - page = new WebPage(); -page.viewportSize = { - width: 800, - height: 600 -}; - -page.open(sys.args[1], function(status){ - if (status !== 'success'){ - console.log('Bad status: %s', status); - phantom.exit(1); - } - window.setTimeout(function(){ - var box = page.evaluate(function(){ - var lefts, rights, tops, bottoms, - padding = 10, // px - selection, show; - - // Call setup method - if (window.setup) - window.setup(); - // Show all pickers, or only those marked for showing - show = $('body').data('show'); - show = show ? $(show) : $('*'); - show - .filter(function(){ - return 'datepicker' in $(this).data(); - }) - .datepicker('show'); - - // Get bounds of selected elements - selection = $($('body').data('capture')); - tops = selection.map(function(){ - return $(this).offset().top; - }).toArray(); - lefts = selection.map(function(){ - return $(this).offset().left; - }).toArray(); - bottoms = selection.map(function(){ - return $(this).offset().top + $(this).outerHeight(); - }).toArray(); - rights = selection.map(function(){ - return $(this).offset().left + $(this).outerWidth(); - }).toArray(); - - // Convert bounds to single bounding box - var b = { - top: Math.min.apply(Math, tops), - left: Math.min.apply(Math, lefts) - }; - b.width = Math.max.apply(Math, rights) - b.left; - b.height = Math.max.apply(Math, bottoms) - b.top; - - // Return bounding box - return { - top: Math.max(b.top - padding, 0), - left: Math.max(b.left - padding, 0), - width: b.width + 2 * padding, - height: b.height + 2 * padding - }; - }); - page.clipRect = box; - page.render(sys.args[2]); - phantom.exit(); - }, 1); -}); diff --git a/admin/bower_components/bootstrap-datepicker/docs/_static/screenshots/demo_head.png b/admin/bower_components/bootstrap-datepicker/docs/_static/screenshots/demo_head.png deleted file mode 100644 index 1207162..0000000 Binary files a/admin/bower_components/bootstrap-datepicker/docs/_static/screenshots/demo_head.png and /dev/null differ diff --git a/admin/bower_components/bootstrap-datepicker/docs/_static/screenshots/markup_component.png b/admin/bower_components/bootstrap-datepicker/docs/_static/screenshots/markup_component.png deleted file mode 100644 index 18df9d0..0000000 Binary files a/admin/bower_components/bootstrap-datepicker/docs/_static/screenshots/markup_component.png and /dev/null differ diff --git a/admin/bower_components/bootstrap-datepicker/docs/_static/screenshots/markup_daterange.png b/admin/bower_components/bootstrap-datepicker/docs/_static/screenshots/markup_daterange.png deleted file mode 100644 index 9c9a2d4..0000000 Binary files a/admin/bower_components/bootstrap-datepicker/docs/_static/screenshots/markup_daterange.png and /dev/null differ diff --git a/admin/bower_components/bootstrap-datepicker/docs/_static/screenshots/markup_inline.png b/admin/bower_components/bootstrap-datepicker/docs/_static/screenshots/markup_inline.png deleted file mode 100644 index 2e811ee..0000000 Binary files a/admin/bower_components/bootstrap-datepicker/docs/_static/screenshots/markup_inline.png and /dev/null differ diff --git a/admin/bower_components/bootstrap-datepicker/docs/_static/screenshots/markup_input.png b/admin/bower_components/bootstrap-datepicker/docs/_static/screenshots/markup_input.png deleted file mode 100644 index e085207..0000000 Binary files a/admin/bower_components/bootstrap-datepicker/docs/_static/screenshots/markup_input.png and /dev/null differ diff --git a/admin/bower_components/bootstrap-datepicker/docs/_static/screenshots/option_calendarweeks.png b/admin/bower_components/bootstrap-datepicker/docs/_static/screenshots/option_calendarweeks.png deleted file mode 100644 index 588bb8d..0000000 Binary files a/admin/bower_components/bootstrap-datepicker/docs/_static/screenshots/option_calendarweeks.png and /dev/null differ diff --git a/admin/bower_components/bootstrap-datepicker/docs/_static/screenshots/option_clearbtn.png b/admin/bower_components/bootstrap-datepicker/docs/_static/screenshots/option_clearbtn.png deleted file mode 100644 index a80cd12..0000000 Binary files a/admin/bower_components/bootstrap-datepicker/docs/_static/screenshots/option_clearbtn.png and /dev/null differ diff --git a/admin/bower_components/bootstrap-datepicker/docs/_static/screenshots/option_daysofweekdisabled.png b/admin/bower_components/bootstrap-datepicker/docs/_static/screenshots/option_daysofweekdisabled.png deleted file mode 100644 index 23efc19..0000000 Binary files a/admin/bower_components/bootstrap-datepicker/docs/_static/screenshots/option_daysofweekdisabled.png and /dev/null differ diff --git a/admin/bower_components/bootstrap-datepicker/docs/_static/screenshots/option_enddate.png b/admin/bower_components/bootstrap-datepicker/docs/_static/screenshots/option_enddate.png deleted file mode 100644 index 9b960a2..0000000 Binary files a/admin/bower_components/bootstrap-datepicker/docs/_static/screenshots/option_enddate.png and /dev/null differ diff --git a/admin/bower_components/bootstrap-datepicker/docs/_static/screenshots/option_language.png b/admin/bower_components/bootstrap-datepicker/docs/_static/screenshots/option_language.png deleted file mode 100644 index de84074..0000000 Binary files a/admin/bower_components/bootstrap-datepicker/docs/_static/screenshots/option_language.png and /dev/null differ diff --git a/admin/bower_components/bootstrap-datepicker/docs/_static/screenshots/option_multidate.png b/admin/bower_components/bootstrap-datepicker/docs/_static/screenshots/option_multidate.png deleted file mode 100644 index 25dd5a8..0000000 Binary files a/admin/bower_components/bootstrap-datepicker/docs/_static/screenshots/option_multidate.png and /dev/null differ diff --git a/admin/bower_components/bootstrap-datepicker/docs/_static/screenshots/option_startdate.png b/admin/bower_components/bootstrap-datepicker/docs/_static/screenshots/option_startdate.png deleted file mode 100644 index 7766476..0000000 Binary files a/admin/bower_components/bootstrap-datepicker/docs/_static/screenshots/option_startdate.png and /dev/null differ diff --git a/admin/bower_components/bootstrap-datepicker/docs/_static/screenshots/option_todaybtn.png b/admin/bower_components/bootstrap-datepicker/docs/_static/screenshots/option_todaybtn.png deleted file mode 100644 index de4a145..0000000 Binary files a/admin/bower_components/bootstrap-datepicker/docs/_static/screenshots/option_todaybtn.png and /dev/null differ diff --git a/admin/bower_components/bootstrap-datepicker/docs/_static/screenshots/option_todayhighlight.png b/admin/bower_components/bootstrap-datepicker/docs/_static/screenshots/option_todayhighlight.png deleted file mode 100644 index f15408d..0000000 Binary files a/admin/bower_components/bootstrap-datepicker/docs/_static/screenshots/option_todayhighlight.png and /dev/null differ diff --git a/admin/bower_components/bootstrap-datepicker/docs/_static/screenshots/option_weekstart.png b/admin/bower_components/bootstrap-datepicker/docs/_static/screenshots/option_weekstart.png deleted file mode 100644 index bafbe9e..0000000 Binary files a/admin/bower_components/bootstrap-datepicker/docs/_static/screenshots/option_weekstart.png and /dev/null differ diff --git a/admin/bower_components/bootstrap-datepicker/docs/conf.py b/admin/bower_components/bootstrap-datepicker/docs/conf.py deleted file mode 100644 index 131dd52..0000000 --- a/admin/bower_components/bootstrap-datepicker/docs/conf.py +++ /dev/null @@ -1,249 +0,0 @@ -# -*- coding: utf-8 -*- -# -# bootstrap-datepicker documentation build configuration file, created by -# sphinx-quickstart on Fri Aug 2 14:45:57 2013. -# -# This file is execfile()d with the current directory set to its containing dir. -# -# Note that not all possible configuration values are present in this -# autogenerated file. -# -# All configuration values have a default; values that are commented out -# serve to show the default. - -import sys, os - -# The version info for the project you're documenting, acts as replacement for -# |version| and |release|, also used in various other places throughout the -# built documents. -# -# The short X.Y version. -#version = '' -# The full version, including alpha/beta/rc tags. -#release = '' - -import sphinx_rtd_theme - -# If extensions (or modules to document with autodoc) are in another directory, -# add these directories to sys.path here. If the directory is relative to the -# documentation root, use os.path.abspath to make it absolute, like shown here. -#sys.path.insert(0, os.path.abspath('.')) - -# -- General configuration ----------------------------------------------------- - -# If your documentation needs a minimal Sphinx version, state it here. -#needs_sphinx = '1.0' - -primary_domain = 'js' - -# Add any Sphinx extension module names here, as strings. They can be extensions -# coming with Sphinx (named 'sphinx.ext.*') or your custom ones. -extensions = [] - -# Add any paths that contain templates here, relative to this directory. -templates_path = ['_templates'] - -# The suffix of source filenames. -source_suffix = '.rst' - -# The encoding of source files. -#source_encoding = 'utf-8-sig' - -# The master toctree document. -master_doc = 'index' - -# General information about the project. -project = u'bootstrap-datepicker' -copyright = u'2016, eternicode' - -# The language for content autogenerated by Sphinx. Refer to documentation -# for a list of supported languages. -#language = None - -# There are two options for replacing |today|: either, you set today to some -# non-false value, then it is used: -#today = '' -# Else, today_fmt is used as the format for a strftime call. -#today_fmt = '%B %d, %Y' - -# List of patterns, relative to source directory, that match files and -# directories to ignore when looking for source files. -exclude_patterns = ['_build'] - -# The reST default role (used for this markup: `text`) to use for all documents. -#default_role = None - -# If true, '()' will be appended to :func: etc. cross-reference text. -#add_function_parentheses = True - -# If true, the current module name will be prepended to all description -# unit titles (such as .. function::). -#add_module_names = True - -# If true, sectionauthor and moduleauthor directives will be shown in the -# output. They are ignored by default. -#show_authors = False - -# The name of the Pygments (syntax highlighting) style to use. -pygments_style = 'sphinx' - -highlight_language = 'javascript' - -# A list of ignored prefixes for module index sorting. -#modindex_common_prefix = [] - - -# -- Options for HTML output --------------------------------------------------- - -# The theme to use for HTML and HTML Help pages. See the documentation for -# a list of builtin themes. -html_theme = 'sphinx_rtd_theme' - -# Theme options are theme-specific and customize the look and feel of a theme -# further. For a list of options available for each theme, see the -# documentation. -#html_theme_options = {} - -# Add any paths that contain custom themes here, relative to this directory. -# html_theme_path = ['_themes',] -html_theme_path = [sphinx_rtd_theme.get_html_theme_path()] - -# The name for this set of Sphinx documents. If None, it defaults to -# "<project> v<release> documentation". -#html_title = None - -# A shorter title for the navigation bar. Default is the same as html_title. -#html_short_title = None - -# The name of an image file (relative to this directory) to place at the top -# of the sidebar. -#html_logo = None - -# The name of an image file (within the static path) to use as favicon of the -# docs. This file should be a Windows icon file (.ico) being 16x16 or 32x32 -# pixels large. -#html_favicon = None - -# Add any paths that contain custom static files (such as style sheets) here, -# relative to this directory. They are copied after the builtin static files, -# so a file named "default.css" will overwrite the builtin "default.css". -html_static_path = ['_static'] - -# If not '', a 'Last updated on:' timestamp is inserted at every page bottom, -# using the given strftime format. -#html_last_updated_fmt = '%b %d, %Y' - -# If true, SmartyPants will be used to convert quotes and dashes to -# typographically correct entities. -#html_use_smartypants = True - -# Custom sidebar templates, maps document names to template names. -#html_sidebars = {} - -# Additional templates that should be rendered to pages, maps page names to -# template names. -#html_additional_pages = {} - -# If false, no module index is generated. -#html_domain_indices = True - -# If false, no index is generated. -#html_use_index = True - -# If true, the index is split into individual pages for each letter. -#html_split_index = False - -# If true, links to the reST sources are added to the pages. -#html_show_sourcelink = True - -# If true, "Created using Sphinx" is shown in the HTML footer. Default is True. -#html_show_sphinx = True - -# If true, "(C) Copyright ..." is shown in the HTML footer. Default is True. -#html_show_copyright = True - -# If true, an OpenSearch description file will be output, and all pages will -# contain a <link> tag referring to it. The value of this option must be the -# base URL from which the finished HTML is served. -#html_use_opensearch = '' - -# This is the file name suffix for HTML files (e.g. ".xhtml"). -#html_file_suffix = None - -# Output file base name for HTML help builder. -htmlhelp_basename = 'bootstrap-datepickerdoc' - - -# -- Options for LaTeX output -------------------------------------------------- - -latex_elements = { -# The paper size ('letterpaper' or 'a4paper'). -#'papersize': 'letterpaper', - -# The font size ('10pt', '11pt' or '12pt'). -#'pointsize': '10pt', - -# Additional stuff for the LaTeX preamble. -#'preamble': '', -} - -# Grouping the document tree into LaTeX files. List of tuples -# (source start file, target name, title, author, documentclass [howto/manual]). -latex_documents = [ - ('index', 'bootstrap-datepicker.tex', u'bootstrap-datepicker Documentation', - u'eternicode', 'manual'), -] - -# The name of an image file (relative to this directory) to place at the top of -# the title page. -#latex_logo = None - -# For "manual" documents, if this is true, then toplevel headings are parts, -# not chapters. -#latex_use_parts = False - -# If true, show page references after internal links. -#latex_show_pagerefs = False - -# If true, show URL addresses after external links. -#latex_show_urls = False - -# Documents to append as an appendix to all manuals. -#latex_appendices = [] - -# If false, no module index is generated. -#latex_domain_indices = True - - -# -- Options for manual page output -------------------------------------------- - -# One entry per manual page. List of tuples -# (source start file, name, description, authors, manual section). -man_pages = [ - ('index', 'bootstrap-datepicker', u'bootstrap-datepicker Documentation', - [u'eternicode'], 1) -] - -# If true, show URL addresses after external links. -#man_show_urls = False - - -# -- Options for Texinfo output ------------------------------------------------ - -# Grouping the document tree into Texinfo files. List of tuples -# (source start file, target name, title, author, -# dir menu entry, description, category) -texinfo_documents = [ - ('index', 'bootstrap-datepicker', u'bootstrap-datepicker Documentation', - u'eternicode', 'bootstrap-datepicker', 'One line description of project.', - 'Miscellaneous'), -] - -# Documents to append as an appendix to all manuals. -#texinfo_appendices = [] - -# If false, no module index is generated. -#texinfo_domain_indices = True - -# How to display URL addresses: 'footnote', 'no', or 'inline'. -#texinfo_show_urls = 'footnote' diff --git a/admin/bower_components/bootstrap-datepicker/docs/events.rst b/admin/bower_components/bootstrap-datepicker/docs/events.rst deleted file mode 100644 index 89ffddb..0000000 --- a/admin/bower_components/bootstrap-datepicker/docs/events.rst +++ /dev/null @@ -1,63 +0,0 @@ -Events -====== - -Datepicker triggers a number of events in certain circumstances. All events have extra data attached to the event object that is passed to any event handlers - -:: - - $('.datepicker').datepicker() - .on(picker_event, function(e) { - // `e` here contains the extra attributes - }); - -* ``date``: the relevant Date object, in local timezone. For a multidate picker, this will be the latest date picked. -* ``dates``: an Array of Date objects, in local timezone, when using a multidate picker. -* ``format([ix], [format])``: a function to make formatting ``date`` easier. ``ix`` can be the index of a Date in the ``dates`` array to format; if absent, the last date selected will be used. ``format`` can be any format string that datepicker supports; if absent, the format set on the datepicker will be used. Both arguments are optional. - - -show ----- - -Fired when the date picker is displayed. - - -hide ----- - -Fired when the date picker is hidden. - - -clearDate ---------- - -Fired when the date is cleared, normally when the "clear" button (enabled with the ``clearBtn`` option) is pressed. - - -changeDate ----------- - -Fired when the date is changed. - - -changeMonth ------------ - -Fired when the *view* month is changed from year view. - - -changeYear ----------- - -Fired when the *view* year is changed from decade view. - - -changeDecade ------------- - -Fired when the *view* decade is changed from century view. - - -changeCentury -------------- - -Fired when the *view* century is changed from millennium view. diff --git a/admin/bower_components/bootstrap-datepicker/docs/i18n.rst b/admin/bower_components/bootstrap-datepicker/docs/i18n.rst deleted file mode 100644 index ba2928a..0000000 --- a/admin/bower_components/bootstrap-datepicker/docs/i18n.rst +++ /dev/null @@ -1,36 +0,0 @@ -I18N -==== - -The plugin supports i18n for the month and weekday names and the ``weekStart`` option. The default is English ("en"); other available translations are available in the ``js/locales/`` directory, simply include your desired locale after the plugin. To add more languages, simply add a key to ``$.fn.datepicker.dates``, before calling ``.datepicker()``. Example - -:: - - $.fn.datepicker.dates['en'] = { - days: ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"], - daysShort: ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"], - daysMin: ["Su", "Mo", "Tu", "We", "Th", "Fr", "Sa"], - months: ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"], - monthsShort: ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"], - today: "Today", - clear: "Clear", - format: "mm/dd/yyyy", - titleFormat: "MM yyyy", /* Leverages same syntax as 'format' */ - weekStart: 0 - }; - -Right-to-left languages may also include ``rtl: true`` to make the calendar display appropriately. - -If your browser (or those of your users) is displaying characters wrong, chances are the browser is loading the javascript file with a non-unicode encoding. Simply add ``charset="UTF-8"`` to your ``script`` tag: - -.. code-block:: html - - <script src="bootstrap-datepicker.XX.js" charset="UTF-8"></script> - -:: - - $('.datepicker').datepicker({ - language: 'XX' - }); - -.. figure:: _static/screenshots/option_language.png - :align: center diff --git a/admin/bower_components/bootstrap-datepicker/docs/index.rst b/admin/bower_components/bootstrap-datepicker/docs/index.rst deleted file mode 100644 index 0eacf83..0000000 --- a/admin/bower_components/bootstrap-datepicker/docs/index.rst +++ /dev/null @@ -1,127 +0,0 @@ -bootstrap-datepicker -==================== - -Bootstrap-datepicker provides a flexible datepicker widget in the Bootstrap style. - -.. figure:: _static/screenshots/demo_head.png - :align: center - -Versions are incremented according to `semver <http://semver.org/>`_. - -`Online Demo <https://eternicode.github.io/bootstrap-datepicker/>`_ - - -Requirements ------------- - -* `Bootstrap`_ 2.0.4+ -* `jQuery`_ 1.7.1+ - -.. _Bootstrap: https://getbootstrap.com/ -.. _jQuery: https://jquery.com/ - -These are the specific versions bootstrap-datepicker is tested against (``js`` files) and built against (``css`` files). Use other versions at your own risk. - - -Dependencies ------------- - -Requires bootstrap's dropdown component (``dropdowns.less``) for some styles, and bootstrap's sprites (``sprites.less`` and associated images) for arrows. - -A standalone .css file (including necessary dropdown styles and alternative, text-based arrows) can be generated by running ``build/build_standalone.less`` through the ``lessc`` compiler:: - - $ lessc build/build_standalone.less datepicker.css - - -Usage ------ - -Call the datepicker via javascript:: - - $('.datepicker').datepicker(); - - -Data API -^^^^^^^^ - -As with bootstrap's own plugins, datepicker provides a data-api that can be used to instantiate datepickers without the need for custom javascript. For most datepickers, simply set ``data-provide="datepicker"`` on the element you want to initialize, and it will be intialized lazily, in true bootstrap fashion. For inline datepickers, use ``data-provide="datepicker-inline"``; these will be immediately initialized on page load, and cannot be lazily loaded. - -.. code-block:: html - - <input data-provide="datepicker"> - -Markup with component - -.. code-block:: html - - <div class="input-group date" data-provide="datepicker"> - <input type="text" class="form-control"> - <div class="input-group-addon"> - <span class="glyphicon glyphicon-th"></span> - </div> - </div> - -You can disable datepicker's data-api in the same way as you would disable other bootstrap plugins:: - - $(document).off('.datepicker.data-api'); - - -Configuration -^^^^^^^^^^^^^ - -:doc:`options` are passed to the ``datepicker`` function via an options hash at instantiation:: - - $('.datepicker').datepicker({ - format: 'mm/dd/yyyy', - startDate: '-3d' - }); - -Most options may be provided as data-attributes on the target element: - -.. code-block:: html - - <input class="datepicker" data-date-format="mm/dd/yyyy"> - -:: - - $('.datepicker').datepicker({ - startDate: '-3d' - }); - -Defaults for all options can be modified directly by changing values in the ``$.fn.datepicker.defaults`` hash:: - - $.fn.datepicker.defaults.format = "mm/dd/yyyy"; - $('.datepicker').datepicker({ - startDate: '-3d' - }); - - -Stylesheets -^^^^^^^^^^^ - -There are a few different stylesheets included in the library. This is an overview of what each file is to be used for: - -:code:`bootstrap-datepicker.css` gives legacy support for twitter bootstrap v2, :code:`bootstrap-datepicker3.css` is used for twitter bootstrap v3 support -and :code:`bootstrap-datepicker.standalone.css` can be used to include the datepicker without depending on the twitter bootstrap library. - -No Conflict mode -^^^^^^^^^^^^^^^^ - -``$.fn.datepicker.noConflict`` provides a way to avoid conflict with other jQuery datepicker plugins:: - - var datepicker = $.fn.datepicker.noConflict(); // return $.fn.datepicker to previously assigned value - $.fn.bootstrapDP = datepicker; // give $().bootstrapDP the bootstrap-datepicker functionality - - - -Table of Contents ------------------ - -.. toctree:: - - markup - options - methods - events - keyboard - i18n diff --git a/admin/bower_components/bootstrap-datepicker/docs/keyboard.rst b/admin/bower_components/bootstrap-datepicker/docs/keyboard.rst deleted file mode 100644 index e34ba65..0000000 --- a/admin/bower_components/bootstrap-datepicker/docs/keyboard.rst +++ /dev/null @@ -1,27 +0,0 @@ -Keyboard support -================ - -The datepicker includes keyboard navigation. The "focused date" is kept track of and highlighted (as with mouse hover) during keyboard nav, and is cleared when a date is toggled or the picker is hidden. - -up, down, left, right arrow keys --------------------------------- - -By themselves, left/right will move focus backward/forward one day, up/down will move focus back/forward one week. - -With the shift key, up/left will move focus backward one month, down/right will move focus forward one month. - -With the ctrl key, up/left will move focus backward one year, down/right will move focus forward one year. - -Shift+ctrl behaves the same as ctrl -- that is, it does not change both month and year simultaneously, only the year. - -enter ------ - -When the picker is visible, enter will toggle the focused date (if there is one). When the picker is not visible, enter will have normal effects -- submitting the current form, etc. - -When the date is deselected, the ``clearDate`` event is triggered; otherwise, the ``changeDate`` event is triggered. If ``autoclose`` is enabled, the picker will be hidden after selection or deselection. - -escape ------- - -The escape key can be used to clear the focused date and hide and re-show the datepicker; hiding the picker is necessary if the user wants to manually edit the value. diff --git a/admin/bower_components/bootstrap-datepicker/docs/make.bat b/admin/bower_components/bootstrap-datepicker/docs/make.bat deleted file mode 100644 index 282b37a..0000000 --- a/admin/bower_components/bootstrap-datepicker/docs/make.bat +++ /dev/null @@ -1,190 +0,0 @@ -@ECHO OFF - -REM Command file for Sphinx documentation - -if "%SPHINXBUILD%" == "" ( - set SPHINXBUILD=sphinx-build -) -set BUILDDIR=_build -set ALLSPHINXOPTS=-d %BUILDDIR%/doctrees %SPHINXOPTS% . -set I18NSPHINXOPTS=%SPHINXOPTS% . -if NOT "%PAPER%" == "" ( - set ALLSPHINXOPTS=-D latex_paper_size=%PAPER% %ALLSPHINXOPTS% - set I18NSPHINXOPTS=-D latex_paper_size=%PAPER% %I18NSPHINXOPTS% -) - -if "%1" == "" goto help - -if "%1" == "help" ( - :help - echo.Please use `make ^<target^>` where ^<target^> is one of - echo. html to make standalone HTML files - echo. dirhtml to make HTML files named index.html in directories - echo. singlehtml to make a single large HTML file - echo. pickle to make pickle files - echo. json to make JSON files - echo. htmlhelp to make HTML files and a HTML help project - echo. qthelp to make HTML files and a qthelp project - echo. devhelp to make HTML files and a Devhelp project - echo. epub to make an epub - echo. latex to make LaTeX files, you can set PAPER=a4 or PAPER=letter - echo. text to make text files - echo. man to make manual pages - echo. texinfo to make Texinfo files - echo. gettext to make PO message catalogs - echo. changes to make an overview over all changed/added/deprecated items - echo. linkcheck to check all external links for integrity - echo. doctest to run all doctests embedded in the documentation if enabled - goto end -) - -if "%1" == "clean" ( - for /d %%i in (%BUILDDIR%\*) do rmdir /q /s %%i - del /q /s %BUILDDIR%\* - goto end -) - -if "%1" == "html" ( - %SPHINXBUILD% -b html %ALLSPHINXOPTS% %BUILDDIR%/html - if errorlevel 1 exit /b 1 - echo. - echo.Build finished. The HTML pages are in %BUILDDIR%/html. - goto end -) - -if "%1" == "dirhtml" ( - %SPHINXBUILD% -b dirhtml %ALLSPHINXOPTS% %BUILDDIR%/dirhtml - if errorlevel 1 exit /b 1 - echo. - echo.Build finished. The HTML pages are in %BUILDDIR%/dirhtml. - goto end -) - -if "%1" == "singlehtml" ( - %SPHINXBUILD% -b singlehtml %ALLSPHINXOPTS% %BUILDDIR%/singlehtml - if errorlevel 1 exit /b 1 - echo. - echo.Build finished. The HTML pages are in %BUILDDIR%/singlehtml. - goto end -) - -if "%1" == "pickle" ( - %SPHINXBUILD% -b pickle %ALLSPHINXOPTS% %BUILDDIR%/pickle - if errorlevel 1 exit /b 1 - echo. - echo.Build finished; now you can process the pickle files. - goto end -) - -if "%1" == "json" ( - %SPHINXBUILD% -b json %ALLSPHINXOPTS% %BUILDDIR%/json - if errorlevel 1 exit /b 1 - echo. - echo.Build finished; now you can process the JSON files. - goto end -) - -if "%1" == "htmlhelp" ( - %SPHINXBUILD% -b htmlhelp %ALLSPHINXOPTS% %BUILDDIR%/htmlhelp - if errorlevel 1 exit /b 1 - echo. - echo.Build finished; now you can run HTML Help Workshop with the ^ -.hhp project file in %BUILDDIR%/htmlhelp. - goto end -) - -if "%1" == "qthelp" ( - %SPHINXBUILD% -b qthelp %ALLSPHINXOPTS% %BUILDDIR%/qthelp - if errorlevel 1 exit /b 1 - echo. - echo.Build finished; now you can run "qcollectiongenerator" with the ^ -.qhcp project file in %BUILDDIR%/qthelp, like this: - echo.^> qcollectiongenerator %BUILDDIR%\qthelp\bootstrap-datepicker.qhcp - echo.To view the help file: - echo.^> assistant -collectionFile %BUILDDIR%\qthelp\bootstrap-datepicker.ghc - goto end -) - -if "%1" == "devhelp" ( - %SPHINXBUILD% -b devhelp %ALLSPHINXOPTS% %BUILDDIR%/devhelp - if errorlevel 1 exit /b 1 - echo. - echo.Build finished. - goto end -) - -if "%1" == "epub" ( - %SPHINXBUILD% -b epub %ALLSPHINXOPTS% %BUILDDIR%/epub - if errorlevel 1 exit /b 1 - echo. - echo.Build finished. The epub file is in %BUILDDIR%/epub. - goto end -) - -if "%1" == "latex" ( - %SPHINXBUILD% -b latex %ALLSPHINXOPTS% %BUILDDIR%/latex - if errorlevel 1 exit /b 1 - echo. - echo.Build finished; the LaTeX files are in %BUILDDIR%/latex. - goto end -) - -if "%1" == "text" ( - %SPHINXBUILD% -b text %ALLSPHINXOPTS% %BUILDDIR%/text - if errorlevel 1 exit /b 1 - echo. - echo.Build finished. The text files are in %BUILDDIR%/text. - goto end -) - -if "%1" == "man" ( - %SPHINXBUILD% -b man %ALLSPHINXOPTS% %BUILDDIR%/man - if errorlevel 1 exit /b 1 - echo. - echo.Build finished. The manual pages are in %BUILDDIR%/man. - goto end -) - -if "%1" == "texinfo" ( - %SPHINXBUILD% -b texinfo %ALLSPHINXOPTS% %BUILDDIR%/texinfo - if errorlevel 1 exit /b 1 - echo. - echo.Build finished. The Texinfo files are in %BUILDDIR%/texinfo. - goto end -) - -if "%1" == "gettext" ( - %SPHINXBUILD% -b gettext %I18NSPHINXOPTS% %BUILDDIR%/locale - if errorlevel 1 exit /b 1 - echo. - echo.Build finished. The message catalogs are in %BUILDDIR%/locale. - goto end -) - -if "%1" == "changes" ( - %SPHINXBUILD% -b changes %ALLSPHINXOPTS% %BUILDDIR%/changes - if errorlevel 1 exit /b 1 - echo. - echo.The overview file is in %BUILDDIR%/changes. - goto end -) - -if "%1" == "linkcheck" ( - %SPHINXBUILD% -b linkcheck %ALLSPHINXOPTS% %BUILDDIR%/linkcheck - if errorlevel 1 exit /b 1 - echo. - echo.Link check complete; look for any errors in the above output ^ -or in %BUILDDIR%/linkcheck/output.txt. - goto end -) - -if "%1" == "doctest" ( - %SPHINXBUILD% -b doctest %ALLSPHINXOPTS% %BUILDDIR%/doctest - if errorlevel 1 exit /b 1 - echo. - echo.Testing of doctests in the sources finished, look at the ^ -results in %BUILDDIR%/doctest/output.txt. - goto end -) - -:end diff --git a/admin/bower_components/bootstrap-datepicker/docs/markup.rst b/admin/bower_components/bootstrap-datepicker/docs/markup.rst deleted file mode 100644 index 546b844..0000000 --- a/admin/bower_components/bootstrap-datepicker/docs/markup.rst +++ /dev/null @@ -1,89 +0,0 @@ -Markup -======= - -The following are examples of supported markup. On their own, these will not provide a datepicker widget; you will need to instantiate the datepicker on the markup. - - -input ------ - -The simplest case: focusing the input (clicking or tabbing into it) will show the picker. - -.. code-block:: html - - <input type="text" class="form-control" value="02-16-2012"> - -.. figure:: _static/screenshots/markup_input.png - :align: center - -component ---------- - -Adding the ``date`` class to an ``input-group`` bootstrap component will allow the ``input-group-addon`` elements to trigger the picker. - -.. code-block:: html - - <div class="input-group date"> - <input type="text" class="form-control" value="12-02-2012"> - <div class="input-group-addon"> - <span class="glyphicon glyphicon-th"></span> - </div> - </div> - -.. figure:: _static/screenshots/markup_component.png - :align: center - -.. _daterange: - -date-range ----------- - -Using the ``input-daterange`` construct with multiple child inputs will instantiate one picker per input and link them together to allow selecting ranges. - -.. code-block:: html - - <div class="input-group input-daterange"> - <input type="text" class="form-control" value="2012-04-05"> - <div class="input-group-addon">to</div> - <input type="text" class="form-control" value="2012-04-19"> - </div> - -.. figure:: _static/screenshots/markup_daterange.png - :align: center - -Note that that ``input-daterange`` itself does not implement the ``datepicker`` methods. Methods should be directly called to the inputs. For example: - -:: - - $('.input-daterange input').each(function() { - $(this).datepicker('clearDates'); - }); - -inline or embedded ------------------- - -Instantiating the datepicker on a simple div will give an embedded picker that is always visible. - -.. code-block:: html - - <div data-date="12/03/2012"></div> - -.. figure:: _static/screenshots/markup_inline.png - :align: center - - -Example to save the embedded datepicker value to a hidden field - -.. code-block:: html - - <div id="datepicker" data-date="12/03/2012"></div> - <input type="hidden" id="my_hidden_input"> - -:: - - $('#datepicker').datepicker(); - $('#datepicker').on('changeDate', function() { - $('#my_hidden_input').val( - $('#datepicker').datepicker('getFormattedDate') - ); - }); diff --git a/admin/bower_components/bootstrap-datepicker/docs/methods.rst b/admin/bower_components/bootstrap-datepicker/docs/methods.rst deleted file mode 100644 index f4be72b..0000000 --- a/admin/bower_components/bootstrap-datepicker/docs/methods.rst +++ /dev/null @@ -1,226 +0,0 @@ -Methods -======= - -Methods are called on a datepicker by calling the ``datepicker`` function with a string first argument, followed by any arguments the method takes - -:: - - $('.datepicker').datepicker('method', arg1, arg2); - - -destroy -------- - -Arguments: None - -Remove the datepicker. Removes attached events, internal attached objects, and added HTML elements. - -*Alias: remove* - - -show ----- - -Arguments: None - -Show the picker. - - -hide ----- - -Arguments: None - -Hide the picker. - - -update ------- - -Arguments: - -* date (String|Date|Array, optional) -* date (String|Date, optional) -* ... - -Update the datepicker with given arguments or the current input value. -The arguments can be either an array of strings, an array of Date objects, multiples strings or multiples Date objects. -If ``date`` arguments are provided and they are Date objects, it is assumed to be "local" Date objects, and will be converted to UTC for internal use. - -:: - - $('.datepicker').datepicker('update'); - $('.datepicker').datepicker('update', '2011-03-05'); - $('.datepicker').datepicker('update', '2011-03-05', '2011-03-07'); - $('.datepicker').datepicker('update', new Date(2011, 2, 5)); - $('.datepicker').datepicker('update', [new Date(2011, 2, 5), new Date(2011, 2, 7)]); - -To reset the datepicker and clear the selected date, pass an empty string with ``update``: - -:: - - $('.datepicker').datepicker('update', ''); - - -setDate -------- - -Arguments: - -* date (Date) - -Sets the internal date. ``date`` is assumed to be a "local" date object, and will be converted to UTC for internal use. - - -setUTCDate ----------- - -Arguments: - -* date (Date) - -Sets the internal date. ``date`` is assumed to be a UTC date object, and will not be converted. - - -setDates --------- - -Arguments: - -* date[, date[, ...]] (Date) - -or - -* [date[, date[, ...]]] (Array) - -Sets the internal date list; accepts multiple dates or a single array of dates as arguments. Each ``date`` is assumed to be a "local" date object, and will be converted to UTC for internal use. For use with multidate pickers. - - -clearDates ----------- - -Arguments: None - -Clear dates. - - -setUTCDates ------------ - -Arguments: - -* date[, date[, ...]] (Date) - -or - -* [date[, date[, ...]]] (Array) - -Sets the internal date list. Each ``date`` is assumed to be a UTC date object, and will not be converted. For use with multidate pickers. - - -getDate -------- - -Arguments: None - -Returns a localized date object representing the internal date object of the first datepicker in the selection. For multidate pickers, returns the latest date selected. - - -getUTCDate ----------- - -Arguments: None - -Returns the internal UTC date object, as-is and unconverted to local time, of the first datepicker in the selection. For multidate pickers, returns the latest date selected. - - -getDates --------- - -Arguments: None - -Returns a list of localized date objects representing the internal date objects of the first datepicker in the selection. For use with multidate pickers. - - -getUTCDates ------------ - -Arguments: None - -Returns the internal list of UTC date objects, as they are and unconverted to local time, of the first datepicker in the selection. For use with multidate pickers. - - -getStartDate ------------- - -Arguments: None - -Returns the lower date limit on the datepicker. - - -getEndDate ----------- - -Arguments: None - -Returns the upper date limit on the datepicker. - - -setStartDate ------------- - -Arguments: - -* startDate (Date) - -Sets a new lower date limit on the datepicker. See :ref:`startDate` for valid values. - -Omit startDate (or provide an otherwise falsey value) to unset the limit. - - -setEndDate ----------- - -Arguments: - -* endDate (Date) - -Sets a new upper date limit on the datepicker. See :ref:`endDate` for valid values. - -Omit endDate (or provide an otherwise falsey value) to unset the limit. - - -setDatesDisabled ----------------- - -Arguments: - -* datesDisabled (String|Array) - -Sets the days that should be disabled. See :ref:`datesDisabled` for valid values. - -Omit datesDisabled (or provide an otherwise falsey value) to unset the disabled days. - - -setDaysOfWeekDisabled ---------------------- - -Arguments: - -* daysOfWeekDisabled (String|Array) - -Sets the days of week that should be disabled. See :ref:`daysOfWeekDisabled` for valid values. - -Omit daysOfWeekDisabled (or provide an otherwise falsey value) to unset the disabled days of week. - - -setDaysOfWeekHighlighted ------------------------- - -Arguments: - -* daysOfWeekHighlighted (String|Array) - -Sets the days of week that should be highlighted. See :ref:`daysOfWeekHighlighted` for valid values. - -Omit daysOfWeekHighlighted (or provide an otherwise falsey value) to unset the highlighted days of week. diff --git a/admin/bower_components/bootstrap-datepicker/docs/options.rst b/admin/bower_components/bootstrap-datepicker/docs/options.rst deleted file mode 100644 index 0cf544f..0000000 --- a/admin/bower_components/bootstrap-datepicker/docs/options.rst +++ /dev/null @@ -1,567 +0,0 @@ -Options -======= - -All options that take a "Date" can handle a ``Date`` object; a String formatted according to the given ``format``; or a timedelta relative to today, eg "-1d", "+6m +1y", etc, where valid units are "d" (day), "w" (week), "m" (month), and "y" (year). Use "0" as today. -There are also aliases for the relative timedelta's: "yesterday" equals "-1d", "today" is equal to "+0d" and "tomorrow" is equal to "+1d". - -Most options can be provided via data-attributes. An option can be converted to a data-attribute by taking its name, replacing each uppercase letter with its lowercase equivalent preceded by a dash, and prepending "data-date-" to the result. For example, ``startDate`` would be ``data-date-start-date``, ``format`` would be ``data-date-format``, and ``daysOfWeekDisabled`` would be ``data-date-days-of-week-disabled``. - -See the `quick reference`_ for an overview of all options and their default values - -autoclose ---------- - -Boolean. Default: false - -Whether or not to close the datepicker immediately when a date is selected. - - -assumeNearbyYear ----------------- - -Boolean or Integer. Default: false - -If true, manually-entered dates with two-digit years, such as "5/1/15", will be parsed as "2015", not "15". If the year is less than 10 years in advance, the picker will use the current century, otherwise, it will use the previous one. For example "5/1/15" would parse to May 1st, 2015, but "5/1/97" would be May 1st, 1997. - -To configure the number of years in advance that the picker will still use the current century, use an Integer instead of the Boolean true. E.g. "assumeNearbyYear: 20" - - -beforeShowDay -------------- - -Function(Date). Default: $.noop - -A function that takes a date as a parameter and returns one of the following values: - - * undefined to have no effect - * A Boolean, indicating whether or not this date is selectable - * A String representing additional CSS classes to apply to the date's cell - * An object with the following properties: - - * ``enabled``: same as the Boolean value above - * ``classes``: same as the String value above - * ``tooltip``: a tooltip to apply to this date, via the ``title`` HTML attribute - * ``content``: the content to display in the day cell, rather than the default (day of month as text) - - -beforeShowMonth ---------------- - -Function(Date). Default: $.noop - -A function that takes a date as a parameter and returns one of the following values: - - * undefined to have no effect - * A Boolean, indicating whether or not this month is selectable - * A String representing additional CSS classes to apply to the month's cell - * An object with the following properties: - - * ``enabled``: same as the Boolean value above - * ``classes``: same as the String value above - * ``tooltip``: a tooltip to apply to this date, via the ``title`` HTML attribute - - -beforeShowYear --------------- - -Function(Date). Default: $.noop - -A function that takes a date as a parameter and returns one of the following values: - - * undefined to have no effect - * A Boolean, indicating whether or not this year is selectable - * A String representing additional CSS classes to apply to the year's cell - * An object with the following properties: - - * ``enabled``: same as the Boolean value above - * ``classes``: same as the String value above - * ``tooltip``: a tooltip to apply to this year, via the ``title`` HTML attribute - - -beforeShowDecade ----------------- - -Function(Date). Default: $.noop - -A function that takes a date as a parameter and returns one of the following values: - - * undefined to have no effect - * A Boolean, indicating whether or not this year is selectable - * A String representing additional CSS classes to apply to the year's cell - * An object with the following properties: - - * ``enabled``: same as the Boolean value above - * ``classes``: same as the String value above - * ``tooltip``: a tooltip to apply to this year, via the ``title`` HTML attribute - - -beforeShowCentury ------------------ - -Function(Date). Default: $.noop - -A function that takes a date as a parameter and returns one of the following values: - - * undefined to have no effect - * A Boolean, indicating whether or not this year is selectable - * A String representing additional CSS classes to apply to the year's cell - * An object with the following properties: - - * ``enabled``: same as the Boolean value above - * ``classes``: same as the String value above - * ``tooltip``: a tooltip to apply to this year, via the ``title`` HTML attribute - - -calendarWeeks -------------- - -Boolean. Default: false - -Whether or not to show week numbers to the left of week rows. - -.. figure:: _static/screenshots/option_calendarweeks.png - :align: center - - -clearBtn --------- - -Boolean. Default: false - -If true, displays a "Clear" button at the bottom of the datepicker to clear the input value. If "autoclose" is also set to true, this button will also close the datepicker. - -.. figure:: _static/screenshots/option_clearbtn.png - :align: center - - -container ---------- - -String. Default: "body" - -Appends the date picker popup to a specific element; eg: container: '#picker-container' (will default to "body") - -.. _datesDisabled: - - -datesDisabled -------------- - -String, Array. Default: [] - -Array of date strings or a single date string formatted in the given date format - -.. _daysOfWeekDisabled: - - -daysOfWeekDisabled ------------------- - -String, Array. Default: [] - -Days of the week that should be disabled. Values are 0 (Sunday) to 6 (Saturday). Multiple values should be comma-separated. Example: disable weekends: ``'06'`` or ``'0,6'`` or ``[0,6]``. - -.. figure:: _static/screenshots/option_daysofweekdisabled.png - :align: center - -.. _daysOfWeekHighlighted: - - -daysOfWeekHighlighted ---------------------- - -String, Array. Default: [] - -Days of the week that should be highlighted. Values are 0 (Sunday) to 6 (Saturday). Multiple values should be comma-separated. Example: highlight weekends: ``'06'`` or ``'0,6'`` or ``[0,6]``. - - -defaultViewDate ---------------- - -Date, String or Object with keys ``year``, ``month``, and ``day``. Default: today - -Date to view when initially opening the calendar. The internal value of the date remains today as default, but when the datepicker is first opened the calendar will open to ``defaultViewDate`` rather than today. If this option is not used, "today" remains the default view date. - -This option can be: - * A date, which should be in local timezone. - * A string which must be parsable with ``format``. - * An object with keys ``year``, ``month`` and ``day`` (can't be set from a data attribute). If the given object is missing any of the required keys, their defaults are: - - * ``year``: the current year - * ``month``: 0 (Note that it starts with 0 for January) - * ``day``: 1 - -disableTouchKeyboard --------------------- - -Boolean. Default: false - -If true, no keyboard will show on mobile devices - - -enableOnReadonly ----------------- - -Boolean. Default: true - -If false the datepicker will not show on a readonly datepicker field. - -.. _endDate: - - -endDate -------- - -Date or String. Default: End of time - -The latest date that may be selected; all later dates will be disabled. - -Date should be in local timezone. String must be parsable with ``format``. - -.. figure:: _static/screenshots/option_enddate.png - :align: center - -.. code-block:: html - - <input type="text" class="form-control" data-date-end-date="0d"> - -Will disable all dates after today. - - -forceParse ----------- - -Boolean. Default: true - -Whether or not to force parsing of the input value when the picker is closed. That is, when an invalid date is left in the input field by the user, the picker will forcibly parse that value, and set the input's value to the new, valid date, conforming to the given `format`. - - -format ------- - -String. Default: "mm/dd/yyyy" - -The date format, combination of d, dd, D, DD, m, mm, M, MM, yy, yyyy. - -* d, dd: Numeric date, no leading zero and leading zero, respectively. Eg, 5, 05. -* D, DD: Abbreviated and full weekday names, respectively. Eg, Mon, Monday. -* m, mm: Numeric month, no leading zero and leading zero, respectively. Eg, 7, 07. -* M, MM: Abbreviated and full month names, respectively. Eg, Jan, January -* yy, yyyy: 2- and 4-digit years, respectively. Eg, 12, 2012. - -Object. - -Custom formatting options - -* toDisplay: function (date, format, language) to convert date object to string, that will be stored in input field -* toValue: function (date, format, language) to convert string object to date, that will be used in date selection - -:: - - $('.datepicker').datepicker({ - format: { - /* - * Say our UI should display a week ahead, - * but textbox should store the actual date. - * This is useful if we need UI to select local dates, - * but store in UTC - */ - toDisplay: function (date, format, language) { - var d = new Date(date); - d.setDate(d.getDate() - 7); - return d.toISOString(); - }, - toValue: function (date, format, language) { - var d = new Date(date); - d.setDate(d.getDate() + 7); - return new Date(d); - } - } - }); - - -immediateUpdates ----------------- - -Boolean. Default: false - -If true, selecting a year or month in the datepicker will update the input value immediately. Otherwise, only selecting a day of the month will update the input value immediately. - - -inputs ------- - -Array, jQuery. Default: None - -A list of inputs to be used in a range picker, which will be attached to the selected element. Allows for explicitly creating a range picker on a non-standard element. - -.. code-block:: html - - <div id="event_period"> - <input type="text" class="actual_range"> - <input type="text" class="actual_range"> - </div> - -:: - - $('#event_period').datepicker({ - inputs: $('.actual_range') - }); - - -keepEmptyValues ---------------- - -Boolean. Default: false - -Only effective in a range picker. If true, the selected value does not get propagated to other, currently empty, pickers in the range. - - -keyboardNavigation ------------------- - -Boolean. Default: true - -Whether or not to allow date navigation by arrow keys. - -Keyboard navigation is not supported at all for embedded / inline mode. Also it's not working if input element hasn't focus. This could be an issue if used as component or if opened by `show` method. - - -language --------- - -String. Default: "en" - -The IETF code (eg "en" for English, "pt-BR" for Brazilian Portuguese) of the language to use for month and day names. These will also be used as the input's value (and subsequently sent to the server in the case of form submissions). If a full code (eg "de-DE") is supplied the picker will first check for an "de-DE" language and if not found will fallback and check for a "de" language. If an unknown language code is given, English will be used. See :doc:`i18n`. - -.. figure:: _static/screenshots/option_language.png - :align: center - - -maxViewMode ------------ - -Number, String. Default: 4, "centuries" - -Set a maximum limit for the view mode. Accepts: 0 or "days" or "month", 1 or "months" or "year", 2 or "years" or "decade", 3 or "decades" or "century", and 4 or "centuries" or "millenium". -Gives the ability to pick only a day, a month, a year or a decade. The day is set to the 1st for "months", the month is set to January for "years", the year is set to the first year from the decade for "decades", and the year is set to the first from the millennium for "centuries". - - -minViewMode ------------ - -Number, String. Default: 0, "days" - -Set a minimum limit for the view mode. Accepts: 0 or "days" or "month", 1 or "months" or "year", 2 or "years" or "decade", 3 or "decades" or "century", and 4 or "centuries" or "millenium". -Gives the ability to pick only a month, a year or a decade. The day is set to the 1st for "months", and the month is set to January for "years", the year is set to the first year from the decade for "decades", and the year is set to the first from the millennium for "centuries". - - -multidate ---------- - -Boolean, Number. Default: false - -Enable multidate picking. Each date in month view acts as a toggle button, keeping track of which dates the user has selected in order. If a number is given, the picker will limit how many dates can be selected to that number, dropping the oldest dates from the list when the number is exceeded. ``true`` equates to no limit. The input's value (if present) is set to a string generated by joining the dates, formatted, with ``multidateSeparator``. - -For selecting 2 dates as a range please see :ref:`daterange` - -.. figure:: _static/screenshots/option_multidate.png - :align: center - - -multidateSeparator ------------------- - -String. Default: "," - -The string that will appear between dates when generating the input's value. When parsing the input's value for a multidate picker, this will also be used to split the incoming string to separate multiple formatted dates; as such, it is highly recommended that you not use a string that could be a substring of a formatted date (eg, using '-' to separate dates when your format is 'yyyy-mm-dd'). - - -orientation ------------ - -String. Default: "auto" - -A space-separated string consisting of one or two of "left" or "right", "top" or "bottom", and "auto" (may be omitted); for example, "top left", "bottom" (horizontal orientation will default to "auto"), "right" (vertical orientation will default to "auto"), "auto top". Allows for fixed placement of the picker popup. - -"orientation" refers to the location of the picker popup's "anchor"; you can also think of it as the location of the trigger element (input, component, etc) relative to the picker. - -"auto" triggers "smart orientation" of the picker. Horizontal orientation will default to "left" and left offset will be tweaked to keep the picker inside the browser viewport; vertical orientation will simply choose "top" or "bottom", whichever will show more of the picker in the viewport. - - -showOnFocus ------------ - -Boolean. Default: true - -If false, the datepicker will be prevented from showing when the input field associated with it receives focus. - -.. _startdate: - -startDate ---------- - -Date or String. Default: Beginning of time - -The earliest date that may be selected; all earlier dates will be disabled. - -Date should be in local timezone. String must be parsable with ``format``. - -.. figure:: _static/screenshots/option_startdate.png - :align: center - - -startView ---------- - -Number, String. Default: 0, "days" - -The view that the datepicker should show when it is opened. Accepts: 0 or "days" or "month", 1 or "months" or "year", 2 or "years" or "decade", 3 or "decades" or "century", and 4 or "centuries" or "millenium". Useful for date-of-birth datepickers. - - -templates ---------- - -Object. Default: - -:: - - { - leftArrow: '&laquo;', - rightArrow: '&raquo;' - } - -The templates used to generate some parts of the picker. Each property must be a string with only text, or valid html. -You can use this property to use custom icons libs. for example: - -:: - - { - leftArrow: '<i class="fa fa-long-arrow-left"></i>', - rightArrow: '<i class="fa fa-long-arrow-right"></i>' - } - - -showWeekDays ------------- - -Boolean. Default: true - -If false, the datepicker will not append the names of the weekdays to its view. Default behavior is appending the weekdays. - - -title ------ - -String. Default: "" - -The string that will appear on top of the datepicker. If empty the title will be hidden. - - -todayBtn --------- - -Boolean, "linked". Default: false - -If true or "linked", displays a "Today" button at the bottom of the datepicker to select the current date. If true, the "Today" button will only move the current date into view; if "linked", the current date will also be selected. - -.. figure:: _static/screenshots/option_todaybtn.png - :align: center - - -todayHighlight --------------- - -Boolean. Default: false - -If true, highlights the current date. - -.. figure:: _static/screenshots/option_todayhighlight.png - :align: center - - -toggleActive ------------- - -Boolean. Default: false - -If true, selecting the currently active date in the datepicker will unset the respective date. This option is always true when the multidate option is being used. - - -updateViewDate --------------- - -Boolean. Default: true - -If false viewDate is set according to `value` on initialization and updated -* if a day in last oder next month is selected or -* if dates are changed by `setDate`, `setDates`, `setUTCDate` and `setUTCDates` methods. -If `multidate` option is `true` the last selected date or the last date in array -passed to `setDates` or `setUTCDates` is used. - -weekStart ---------- - -Integer. Default: 0 - -Day of the week start. 0 (Sunday) to 6 (Saturday) - -.. figure:: _static/screenshots/option_weekstart.png - :align: center - - -zIndexOffset ------------- - -Integer. Default: 10 - -The CSS z-index of the open datepicker is the maximum z-index of the input and all of its DOM ancestors *plus* the ``zIndexOffset``. - -Quick reference -=============== - -This is a quick overview of all the options and their default values - -===================== ============= -Option Default value -===================== ============= -autoclose false -assumeNearbyYear false -beforeShowDay -beforeShowMonth -beforeShowYear -beforeShowDecade -beforeShowCentury -calendarWeeks false -clearBtn false -container 'body' -datesDisabled [] -daysOfWeekDisabled [] -daysOfWeekHighlighted [] -defaultViewDate today -disableTouchKeyboard false -enableOnReadonly true -endDate Infinity -forceParse true -format 'mm/dd/yyyy' -immediateUpdates false -inputs -keepEmptyValues false -keyboardNavigation true -language 'en' -maxViewMode 4 'centuries' -minViewMode 0 'days' -multidate false -multidateSeparator ',' -orientation 'auto' -showOnFocus true -startDate -Infinity -startView 0 'days' (current month) -templates -title '' -todayBtn false -todayHighlight true -toggleActive false -weekStart 0 (Sunday) -zIndexOffset 10 -===================== ============= diff --git a/admin/bower_components/bootstrap-datepicker/docs/requirements.txt b/admin/bower_components/bootstrap-datepicker/docs/requirements.txt deleted file mode 100644 index 483a4e9..0000000 --- a/admin/bower_components/bootstrap-datepicker/docs/requirements.txt +++ /dev/null @@ -1 +0,0 @@ -sphinx_rtd_theme diff --git a/admin/bower_components/bootstrap-datepicker/grunt/.jshintrc b/admin/bower_components/bootstrap-datepicker/grunt/.jshintrc deleted file mode 100644 index 0ea0495..0000000 --- a/admin/bower_components/bootstrap-datepicker/grunt/.jshintrc +++ /dev/null @@ -1,7 +0,0 @@ -{ - "extends" : "../js/.jshintrc", - "asi" : false, - "browser" : false, - "es3" : false, - "node" : true -} diff --git a/admin/bower_components/bootstrap-datepicker/js/.jscsrc b/admin/bower_components/bootstrap-datepicker/js/.jscsrc deleted file mode 100644 index 638b14e..0000000 --- a/admin/bower_components/bootstrap-datepicker/js/.jscsrc +++ /dev/null @@ -1,22 +0,0 @@ -{ - "requireSpaceAfterKeywords": [ - "if", "else", "for", "while", "do", "switch", "return" - ], - "disallowSpacesInFunctionExpression": { - "beforeOpeningRoundBrace": true, - "beforeOpeningCurlyBrace": true - }, - "disallowSpacesInsideObjectBrackets": true, - "disallowSpacesInsideArrayBrackets": true, - "disallowSpacesInsideParentheses": true, - "disallowQuotedKeysInObjects": "allButReserved", - "disallowSpaceAfterObjectKeys": true, - "requireSpaceAfterBinaryOperators": ["==", "===", "!=", "!==", ">", "<", ">=", "<="], - "requireSpaceBeforeBinaryOperators": ["==", "===", "!=", "!==", ">", "<", ">=", "<="], - "disallowSpaceAfterPrefixUnaryOperators": ["++", "--", "+", "-", "~", "!"], - "disallowSpaceBeforeBinaryOperators": [","], - "disallowSpaceBeforePostfixUnaryOperators": ["++", "--"], - "validateLineBreaks": "LF", - "requireKeywordsOnNewLine": ["return", "break", "delete"], - "requireLineFeedAtFileEnd": true -} diff --git a/admin/bower_components/bootstrap-datepicker/js/.jshintrc b/admin/bower_components/bootstrap-datepicker/js/.jshintrc deleted file mode 100644 index 3b76658..0000000 --- a/admin/bower_components/bootstrap-datepicker/js/.jshintrc +++ /dev/null @@ -1,25 +0,0 @@ -{ - // Extra globals. - "predef" : [ - "require", - "define" - ], - "jquery": true, - "browser": true, - - "eqeqeq": true, - "freeze": true, - //"indent": 4, // when we move to spaces - "latedef": false, - "undef": true, - "unused": false, - "immed": true, - "trailing": true, - "maxcomplexity": 50, // Can we get this under 5? - //"maxlen": 120, - - "-W014": false, // Bad line breaking before ? (in tertiary operator) - "-W065": false, // Missing radix parameter to parseInt (defaults to 10) - "-W069": false, // Literal accessor is better written in dot notation - "-W100": false // Silently deleted characters (in locales) -} diff --git a/admin/bower_components/bootstrap-datepicker/js/bootstrap-datepicker.js b/admin/bower_components/bootstrap-datepicker/js/bootstrap-datepicker.js deleted file mode 100644 index 13dfaa1..0000000 --- a/admin/bower_components/bootstrap-datepicker/js/bootstrap-datepicker.js +++ /dev/null @@ -1,2043 +0,0 @@ -/* ========================================================= - * bootstrap-datepicker.js - * Repo: https://github.com/uxsolutions/bootstrap-datepicker/ - * Demo: https://eternicode.github.io/bootstrap-datepicker/ - * Docs: https://bootstrap-datepicker.readthedocs.org/ - * ========================================================= - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * ========================================================= */ - -(function(factory){ - if (typeof define === "function" && define.amd) { - define(["jquery"], factory); - } else if (typeof exports === 'object') { - factory(require('jquery')); - } else { - factory(jQuery); - } -}(function($, undefined){ - function UTCDate(){ - return new Date(Date.UTC.apply(Date, arguments)); - } - function UTCToday(){ - var today = new Date(); - return UTCDate(today.getFullYear(), today.getMonth(), today.getDate()); - } - function isUTCEquals(date1, date2) { - return ( - date1.getUTCFullYear() === date2.getUTCFullYear() && - date1.getUTCMonth() === date2.getUTCMonth() && - date1.getUTCDate() === date2.getUTCDate() - ); - } - function alias(method, deprecationMsg){ - return function(){ - if (deprecationMsg !== undefined) { - $.fn.datepicker.deprecated(deprecationMsg); - } - - return this[method].apply(this, arguments); - }; - } - function isValidDate(d) { - return d && !isNaN(d.getTime()); - } - - var DateArray = (function(){ - var extras = { - get: function(i){ - return this.slice(i)[0]; - }, - contains: function(d){ - // Array.indexOf is not cross-browser; - // $.inArray doesn't work with Dates - var val = d && d.valueOf(); - for (var i=0, l=this.length; i < l; i++) - // Use date arithmetic to allow dates with different times to match - if (0 <= this[i].valueOf() - val && this[i].valueOf() - val < 1000*60*60*24) - return i; - return -1; - }, - remove: function(i){ - this.splice(i,1); - }, - replace: function(new_array){ - if (!new_array) - return; - if (!$.isArray(new_array)) - new_array = [new_array]; - this.clear(); - this.push.apply(this, new_array); - }, - clear: function(){ - this.length = 0; - }, - copy: function(){ - var a = new DateArray(); - a.replace(this); - return a; - } - }; - - return function(){ - var a = []; - a.push.apply(a, arguments); - $.extend(a, extras); - return a; - }; - })(); - - - // Picker object - - var Datepicker = function(element, options){ - $.data(element, 'datepicker', this); - this._process_options(options); - - this.dates = new DateArray(); - this.viewDate = this.o.defaultViewDate; - this.focusDate = null; - - this.element = $(element); - this.isInput = this.element.is('input'); - this.inputField = this.isInput ? this.element : this.element.find('input'); - this.component = this.element.hasClass('date') ? this.element.find('.add-on, .input-group-addon, .btn') : false; - if (this.component && this.component.length === 0) - this.component = false; - this.isInline = !this.component && this.element.is('div'); - - this.picker = $(DPGlobal.template); - - // Checking templates and inserting - if (this._check_template(this.o.templates.leftArrow)) { - this.picker.find('.prev').html(this.o.templates.leftArrow); - } - - if (this._check_template(this.o.templates.rightArrow)) { - this.picker.find('.next').html(this.o.templates.rightArrow); - } - - this._buildEvents(); - this._attachEvents(); - - if (this.isInline){ - this.picker.addClass('datepicker-inline').appendTo(this.element); - } - else { - this.picker.addClass('datepicker-dropdown dropdown-menu'); - } - - if (this.o.rtl){ - this.picker.addClass('datepicker-rtl'); - } - - if (this.o.calendarWeeks) { - this.picker.find('.datepicker-days .datepicker-switch, thead .datepicker-title, tfoot .today, tfoot .clear') - .attr('colspan', function(i, val){ - return Number(val) + 1; - }); - } - - this._process_options({ - startDate: this._o.startDate, - endDate: this._o.endDate, - daysOfWeekDisabled: this.o.daysOfWeekDisabled, - daysOfWeekHighlighted: this.o.daysOfWeekHighlighted, - datesDisabled: this.o.datesDisabled - }); - - this._allow_update = false; - this.setViewMode(this.o.startView); - this._allow_update = true; - - this.fillDow(); - this.fillMonths(); - - this.update(); - - if (this.isInline){ - this.show(); - } - }; - - Datepicker.prototype = { - constructor: Datepicker, - - _resolveViewName: function(view){ - $.each(DPGlobal.viewModes, function(i, viewMode){ - if (view === i || $.inArray(view, viewMode.names) !== -1){ - view = i; - return false; - } - }); - - return view; - }, - - _resolveDaysOfWeek: function(daysOfWeek){ - if (!$.isArray(daysOfWeek)) - daysOfWeek = daysOfWeek.split(/[,\s]*/); - return $.map(daysOfWeek, Number); - }, - - _check_template: function(tmp){ - try { - // If empty - if (tmp === undefined || tmp === "") { - return false; - } - // If no html, everything ok - if ((tmp.match(/[<>]/g) || []).length <= 0) { - return true; - } - // Checking if html is fine - var jDom = $(tmp); - return jDom.length > 0; - } - catch (ex) { - return false; - } - }, - - _process_options: function(opts){ - // Store raw options for reference - this._o = $.extend({}, this._o, opts); - // Processed options - var o = this.o = $.extend({}, this._o); - - // Check if "de-DE" style date is available, if not language should - // fallback to 2 letter code eg "de" - var lang = o.language; - if (!dates[lang]){ - lang = lang.split('-')[0]; - if (!dates[lang]) - lang = defaults.language; - } - o.language = lang; - - // Retrieve view index from any aliases - o.startView = this._resolveViewName(o.startView); - o.minViewMode = this._resolveViewName(o.minViewMode); - o.maxViewMode = this._resolveViewName(o.maxViewMode); - - // Check view is between min and max - o.startView = Math.max(this.o.minViewMode, Math.min(this.o.maxViewMode, o.startView)); - - // true, false, or Number > 0 - if (o.multidate !== true){ - o.multidate = Number(o.multidate) || false; - if (o.multidate !== false) - o.multidate = Math.max(0, o.multidate); - } - o.multidateSeparator = String(o.multidateSeparator); - - o.weekStart %= 7; - o.weekEnd = (o.weekStart + 6) % 7; - - var format = DPGlobal.parseFormat(o.format); - if (o.startDate !== -Infinity){ - if (!!o.startDate){ - if (o.startDate instanceof Date) - o.startDate = this._local_to_utc(this._zero_time(o.startDate)); - else - o.startDate = DPGlobal.parseDate(o.startDate, format, o.language, o.assumeNearbyYear); - } - else { - o.startDate = -Infinity; - } - } - if (o.endDate !== Infinity){ - if (!!o.endDate){ - if (o.endDate instanceof Date) - o.endDate = this._local_to_utc(this._zero_time(o.endDate)); - else - o.endDate = DPGlobal.parseDate(o.endDate, format, o.language, o.assumeNearbyYear); - } - else { - o.endDate = Infinity; - } - } - - o.daysOfWeekDisabled = this._resolveDaysOfWeek(o.daysOfWeekDisabled||[]); - o.daysOfWeekHighlighted = this._resolveDaysOfWeek(o.daysOfWeekHighlighted||[]); - - o.datesDisabled = o.datesDisabled||[]; - if (!$.isArray(o.datesDisabled)) { - o.datesDisabled = o.datesDisabled.split(','); - } - o.datesDisabled = $.map(o.datesDisabled, function(d){ - return DPGlobal.parseDate(d, format, o.language, o.assumeNearbyYear); - }); - - var plc = String(o.orientation).toLowerCase().split(/\s+/g), - _plc = o.orientation.toLowerCase(); - plc = $.grep(plc, function(word){ - return /^auto|left|right|top|bottom$/.test(word); - }); - o.orientation = {x: 'auto', y: 'auto'}; - if (!_plc || _plc === 'auto') - ; // no action - else if (plc.length === 1){ - switch (plc[0]){ - case 'top': - case 'bottom': - o.orientation.y = plc[0]; - break; - case 'left': - case 'right': - o.orientation.x = plc[0]; - break; - } - } - else { - _plc = $.grep(plc, function(word){ - return /^left|right$/.test(word); - }); - o.orientation.x = _plc[0] || 'auto'; - - _plc = $.grep(plc, function(word){ - return /^top|bottom$/.test(word); - }); - o.orientation.y = _plc[0] || 'auto'; - } - if (o.defaultViewDate instanceof Date || typeof o.defaultViewDate === 'string') { - o.defaultViewDate = DPGlobal.parseDate(o.defaultViewDate, format, o.language, o.assumeNearbyYear); - } else if (o.defaultViewDate) { - var year = o.defaultViewDate.year || new Date().getFullYear(); - var month = o.defaultViewDate.month || 0; - var day = o.defaultViewDate.day || 1; - o.defaultViewDate = UTCDate(year, month, day); - } else { - o.defaultViewDate = UTCToday(); - } - }, - _events: [], - _secondaryEvents: [], - _applyEvents: function(evs){ - for (var i=0, el, ch, ev; i < evs.length; i++){ - el = evs[i][0]; - if (evs[i].length === 2){ - ch = undefined; - ev = evs[i][1]; - } else if (evs[i].length === 3){ - ch = evs[i][1]; - ev = evs[i][2]; - } - el.on(ev, ch); - } - }, - _unapplyEvents: function(evs){ - for (var i=0, el, ev, ch; i < evs.length; i++){ - el = evs[i][0]; - if (evs[i].length === 2){ - ch = undefined; - ev = evs[i][1]; - } else if (evs[i].length === 3){ - ch = evs[i][1]; - ev = evs[i][2]; - } - el.off(ev, ch); - } - }, - _buildEvents: function(){ - var events = { - keyup: $.proxy(function(e){ - if ($.inArray(e.keyCode, [27, 37, 39, 38, 40, 32, 13, 9]) === -1) - this.update(); - }, this), - keydown: $.proxy(this.keydown, this), - paste: $.proxy(this.paste, this) - }; - - if (this.o.showOnFocus === true) { - events.focus = $.proxy(this.show, this); - } - - if (this.isInput) { // single input - this._events = [ - [this.element, events] - ]; - } - // component: input + button - else if (this.component && this.inputField.length) { - this._events = [ - // For components that are not readonly, allow keyboard nav - [this.inputField, events], - [this.component, { - click: $.proxy(this.show, this) - }] - ]; - } - else { - this._events = [ - [this.element, { - click: $.proxy(this.show, this), - keydown: $.proxy(this.keydown, this) - }] - ]; - } - this._events.push( - // Component: listen for blur on element descendants - [this.element, '*', { - blur: $.proxy(function(e){ - this._focused_from = e.target; - }, this) - }], - // Input: listen for blur on element - [this.element, { - blur: $.proxy(function(e){ - this._focused_from = e.target; - }, this) - }] - ); - - if (this.o.immediateUpdates) { - // Trigger input updates immediately on changed year/month - this._events.push([this.element, { - 'changeYear changeMonth': $.proxy(function(e){ - this.update(e.date); - }, this) - }]); - } - - this._secondaryEvents = [ - [this.picker, { - click: $.proxy(this.click, this) - }], - [this.picker, '.prev, .next', { - click: $.proxy(this.navArrowsClick, this) - }], - [this.picker, '.day:not(.disabled)', { - click: $.proxy(this.dayCellClick, this) - }], - [$(window), { - resize: $.proxy(this.place, this) - }], - [$(document), { - 'mousedown touchstart': $.proxy(function(e){ - // Clicked outside the datepicker, hide it - if (!( - this.element.is(e.target) || - this.element.find(e.target).length || - this.picker.is(e.target) || - this.picker.find(e.target).length || - this.isInline - )){ - this.hide(); - } - }, this) - }] - ]; - }, - _attachEvents: function(){ - this._detachEvents(); - this._applyEvents(this._events); - }, - _detachEvents: function(){ - this._unapplyEvents(this._events); - }, - _attachSecondaryEvents: function(){ - this._detachSecondaryEvents(); - this._applyEvents(this._secondaryEvents); - }, - _detachSecondaryEvents: function(){ - this._unapplyEvents(this._secondaryEvents); - }, - _trigger: function(event, altdate){ - var date = altdate || this.dates.get(-1), - local_date = this._utc_to_local(date); - - this.element.trigger({ - type: event, - date: local_date, - viewMode: this.viewMode, - dates: $.map(this.dates, this._utc_to_local), - format: $.proxy(function(ix, format){ - if (arguments.length === 0){ - ix = this.dates.length - 1; - format = this.o.format; - } else if (typeof ix === 'string'){ - format = ix; - ix = this.dates.length - 1; - } - format = format || this.o.format; - var date = this.dates.get(ix); - return DPGlobal.formatDate(date, format, this.o.language); - }, this) - }); - }, - - show: function(){ - if (this.inputField.prop('disabled') || (this.inputField.prop('readonly') && this.o.enableOnReadonly === false)) - return; - if (!this.isInline) - this.picker.appendTo(this.o.container); - this.place(); - this.picker.show(); - this._attachSecondaryEvents(); - this._trigger('show'); - if ((window.navigator.msMaxTouchPoints || 'ontouchstart' in document) && this.o.disableTouchKeyboard) { - $(this.element).blur(); - } - return this; - }, - - hide: function(){ - if (this.isInline || !this.picker.is(':visible')) - return this; - this.focusDate = null; - this.picker.hide().detach(); - this._detachSecondaryEvents(); - this.setViewMode(this.o.startView); - - if (this.o.forceParse && this.inputField.val()) - this.setValue(); - this._trigger('hide'); - return this; - }, - - destroy: function(){ - this.hide(); - this._detachEvents(); - this._detachSecondaryEvents(); - this.picker.remove(); - delete this.element.data().datepicker; - if (!this.isInput){ - delete this.element.data().date; - } - return this; - }, - - paste: function(e){ - var dateString; - if (e.originalEvent.clipboardData && e.originalEvent.clipboardData.types - && $.inArray('text/plain', e.originalEvent.clipboardData.types) !== -1) { - dateString = e.originalEvent.clipboardData.getData('text/plain'); - } else if (window.clipboardData) { - dateString = window.clipboardData.getData('Text'); - } else { - return; - } - this.setDate(dateString); - this.update(); - e.preventDefault(); - }, - - _utc_to_local: function(utc){ - if (!utc) { - return utc; - } - - var local = new Date(utc.getTime() + (utc.getTimezoneOffset() * 60000)); - - if (local.getTimezoneOffset() !== utc.getTimezoneOffset()) { - local = new Date(utc.getTime() + (local.getTimezoneOffset() * 60000)); - } - - return local; - }, - _local_to_utc: function(local){ - return local && new Date(local.getTime() - (local.getTimezoneOffset()*60000)); - }, - _zero_time: function(local){ - return local && new Date(local.getFullYear(), local.getMonth(), local.getDate()); - }, - _zero_utc_time: function(utc){ - return utc && UTCDate(utc.getUTCFullYear(), utc.getUTCMonth(), utc.getUTCDate()); - }, - - getDates: function(){ - return $.map(this.dates, this._utc_to_local); - }, - - getUTCDates: function(){ - return $.map(this.dates, function(d){ - return new Date(d); - }); - }, - - getDate: function(){ - return this._utc_to_local(this.getUTCDate()); - }, - - getUTCDate: function(){ - var selected_date = this.dates.get(-1); - if (selected_date !== undefined) { - return new Date(selected_date); - } else { - return null; - } - }, - - clearDates: function(){ - this.inputField.val(''); - this.update(); - this._trigger('changeDate'); - - if (this.o.autoclose) { - this.hide(); - } - }, - - setDates: function(){ - var args = $.isArray(arguments[0]) ? arguments[0] : arguments; - this.update.apply(this, args); - this._trigger('changeDate'); - this.setValue(); - return this; - }, - - setUTCDates: function(){ - var args = $.isArray(arguments[0]) ? arguments[0] : arguments; - this.setDates.apply(this, $.map(args, this._utc_to_local)); - return this; - }, - - setDate: alias('setDates'), - setUTCDate: alias('setUTCDates'), - remove: alias('destroy', 'Method `remove` is deprecated and will be removed in version 2.0. Use `destroy` instead'), - - setValue: function(){ - var formatted = this.getFormattedDate(); - this.inputField.val(formatted); - return this; - }, - - getFormattedDate: function(format){ - if (format === undefined) - format = this.o.format; - - var lang = this.o.language; - return $.map(this.dates, function(d){ - return DPGlobal.formatDate(d, format, lang); - }).join(this.o.multidateSeparator); - }, - - getStartDate: function(){ - return this.o.startDate; - }, - - setStartDate: function(startDate){ - this._process_options({startDate: startDate}); - this.update(); - this.updateNavArrows(); - return this; - }, - - getEndDate: function(){ - return this.o.endDate; - }, - - setEndDate: function(endDate){ - this._process_options({endDate: endDate}); - this.update(); - this.updateNavArrows(); - return this; - }, - - setDaysOfWeekDisabled: function(daysOfWeekDisabled){ - this._process_options({daysOfWeekDisabled: daysOfWeekDisabled}); - this.update(); - return this; - }, - - setDaysOfWeekHighlighted: function(daysOfWeekHighlighted){ - this._process_options({daysOfWeekHighlighted: daysOfWeekHighlighted}); - this.update(); - return this; - }, - - setDatesDisabled: function(datesDisabled){ - this._process_options({datesDisabled: datesDisabled}); - this.update(); - return this; - }, - - place: function(){ - if (this.isInline) - return this; - var calendarWidth = this.picker.outerWidth(), - calendarHeight = this.picker.outerHeight(), - visualPadding = 10, - container = $(this.o.container), - windowWidth = container.width(), - scrollTop = this.o.container === 'body' ? $(document).scrollTop() : container.scrollTop(), - appendOffset = container.offset(); - - var parentsZindex = [0]; - this.element.parents().each(function(){ - var itemZIndex = $(this).css('z-index'); - if (itemZIndex !== 'auto' && Number(itemZIndex) !== 0) parentsZindex.push(Number(itemZIndex)); - }); - var zIndex = Math.max.apply(Math, parentsZindex) + this.o.zIndexOffset; - var offset = this.component ? this.component.parent().offset() : this.element.offset(); - var height = this.component ? this.component.outerHeight(true) : this.element.outerHeight(false); - var width = this.component ? this.component.outerWidth(true) : this.element.outerWidth(false); - var left = offset.left - appendOffset.left; - var top = offset.top - appendOffset.top; - - if (this.o.container !== 'body') { - top += scrollTop; - } - - this.picker.removeClass( - 'datepicker-orient-top datepicker-orient-bottom '+ - 'datepicker-orient-right datepicker-orient-left' - ); - - if (this.o.orientation.x !== 'auto'){ - this.picker.addClass('datepicker-orient-' + this.o.orientation.x); - if (this.o.orientation.x === 'right') - left -= calendarWidth - width; - } - // auto x orientation is best-placement: if it crosses a window - // edge, fudge it sideways - else { - if (offset.left < 0) { - // component is outside the window on the left side. Move it into visible range - this.picker.addClass('datepicker-orient-left'); - left -= offset.left - visualPadding; - } else if (left + calendarWidth > windowWidth) { - // the calendar passes the widow right edge. Align it to component right side - this.picker.addClass('datepicker-orient-right'); - left += width - calendarWidth; - } else { - if (this.o.rtl) { - // Default to right - this.picker.addClass('datepicker-orient-right'); - } else { - // Default to left - this.picker.addClass('datepicker-orient-left'); - } - } - } - - // auto y orientation is best-situation: top or bottom, no fudging, - // decision based on which shows more of the calendar - var yorient = this.o.orientation.y, - top_overflow; - if (yorient === 'auto'){ - top_overflow = -scrollTop + top - calendarHeight; - yorient = top_overflow < 0 ? 'bottom' : 'top'; - } - - this.picker.addClass('datepicker-orient-' + yorient); - if (yorient === 'top') - top -= calendarHeight + parseInt(this.picker.css('padding-top')); - else - top += height; - - if (this.o.rtl) { - var right = windowWidth - (left + width); - this.picker.css({ - top: top, - right: right, - zIndex: zIndex - }); - } else { - this.picker.css({ - top: top, - left: left, - zIndex: zIndex - }); - } - return this; - }, - - _allow_update: true, - update: function(){ - if (!this._allow_update) - return this; - - var oldDates = this.dates.copy(), - dates = [], - fromArgs = false; - if (arguments.length){ - $.each(arguments, $.proxy(function(i, date){ - if (date instanceof Date) - date = this._local_to_utc(date); - dates.push(date); - }, this)); - fromArgs = true; - } else { - dates = this.isInput - ? this.element.val() - : this.element.data('date') || this.inputField.val(); - if (dates && this.o.multidate) - dates = dates.split(this.o.multidateSeparator); - else - dates = [dates]; - delete this.element.data().date; - } - - dates = $.map(dates, $.proxy(function(date){ - return DPGlobal.parseDate(date, this.o.format, this.o.language, this.o.assumeNearbyYear); - }, this)); - dates = $.grep(dates, $.proxy(function(date){ - return ( - !this.dateWithinRange(date) || - !date - ); - }, this), true); - this.dates.replace(dates); - - if (this.o.updateViewDate) { - if (this.dates.length) - this.viewDate = new Date(this.dates.get(-1)); - else if (this.viewDate < this.o.startDate) - this.viewDate = new Date(this.o.startDate); - else if (this.viewDate > this.o.endDate) - this.viewDate = new Date(this.o.endDate); - else - this.viewDate = this.o.defaultViewDate; - } - - if (fromArgs){ - // setting date by clicking - this.setValue(); - this.element.change(); - } - else if (this.dates.length){ - // setting date by typing - if (String(oldDates) !== String(this.dates) && fromArgs) { - this._trigger('changeDate'); - this.element.change(); - } - } - if (!this.dates.length && oldDates.length) { - this._trigger('clearDate'); - this.element.change(); - } - - this.fill(); - return this; - }, - - fillDow: function(){ - if (this.o.showWeekDays) { - var dowCnt = this.o.weekStart, - html = '<tr>'; - if (this.o.calendarWeeks){ - html += '<th class="cw">&#160;</th>'; - } - while (dowCnt < this.o.weekStart + 7){ - html += '<th class="dow'; - if ($.inArray(dowCnt, this.o.daysOfWeekDisabled) !== -1) - html += ' disabled'; - html += '">'+dates[this.o.language].daysMin[(dowCnt++)%7]+'</th>'; - } - html += '</tr>'; - this.picker.find('.datepicker-days thead').append(html); - } - }, - - fillMonths: function(){ - var localDate = this._utc_to_local(this.viewDate); - var html = ''; - var focused; - for (var i = 0; i < 12; i++){ - focused = localDate && localDate.getMonth() === i ? ' focused' : ''; - html += '<span class="month' + focused + '">' + dates[this.o.language].monthsShort[i] + '</span>'; - } - this.picker.find('.datepicker-months td').html(html); - }, - - setRange: function(range){ - if (!range || !range.length) - delete this.range; - else - this.range = $.map(range, function(d){ - return d.valueOf(); - }); - this.fill(); - }, - - getClassNames: function(date){ - var cls = [], - year = this.viewDate.getUTCFullYear(), - month = this.viewDate.getUTCMonth(), - today = UTCToday(); - if (date.getUTCFullYear() < year || (date.getUTCFullYear() === year && date.getUTCMonth() < month)){ - cls.push('old'); - } else if (date.getUTCFullYear() > year || (date.getUTCFullYear() === year && date.getUTCMonth() > month)){ - cls.push('new'); - } - if (this.focusDate && date.valueOf() === this.focusDate.valueOf()) - cls.push('focused'); - // Compare internal UTC date with UTC today, not local today - if (this.o.todayHighlight && isUTCEquals(date, today)) { - cls.push('today'); - } - if (this.dates.contains(date) !== -1) - cls.push('active'); - if (!this.dateWithinRange(date)){ - cls.push('disabled'); - } - if (this.dateIsDisabled(date)){ - cls.push('disabled', 'disabled-date'); - } - if ($.inArray(date.getUTCDay(), this.o.daysOfWeekHighlighted) !== -1){ - cls.push('highlighted'); - } - - if (this.range){ - if (date > this.range[0] && date < this.range[this.range.length-1]){ - cls.push('range'); - } - if ($.inArray(date.valueOf(), this.range) !== -1){ - cls.push('selected'); - } - if (date.valueOf() === this.range[0]){ - cls.push('range-start'); - } - if (date.valueOf() === this.range[this.range.length-1]){ - cls.push('range-end'); - } - } - return cls; - }, - - _fill_yearsView: function(selector, cssClass, factor, year, startYear, endYear, beforeFn){ - var html = ''; - var step = factor / 10; - var view = this.picker.find(selector); - var startVal = Math.floor(year / factor) * factor; - var endVal = startVal + step * 9; - var focusedVal = Math.floor(this.viewDate.getFullYear() / step) * step; - var selected = $.map(this.dates, function(d){ - return Math.floor(d.getUTCFullYear() / step) * step; - }); - - var classes, tooltip, before; - for (var currVal = startVal - step; currVal <= endVal + step; currVal += step) { - classes = [cssClass]; - tooltip = null; - - if (currVal === startVal - step) { - classes.push('old'); - } else if (currVal === endVal + step) { - classes.push('new'); - } - if ($.inArray(currVal, selected) !== -1) { - classes.push('active'); - } - if (currVal < startYear || currVal > endYear) { - classes.push('disabled'); - } - if (currVal === focusedVal) { - classes.push('focused'); - } - - if (beforeFn !== $.noop) { - before = beforeFn(new Date(currVal, 0, 1)); - if (before === undefined) { - before = {}; - } else if (typeof before === 'boolean') { - before = {enabled: before}; - } else if (typeof before === 'string') { - before = {classes: before}; - } - if (before.enabled === false) { - classes.push('disabled'); - } - if (before.classes) { - classes = classes.concat(before.classes.split(/\s+/)); - } - if (before.tooltip) { - tooltip = before.tooltip; - } - } - - html += '<span class="' + classes.join(' ') + '"' + (tooltip ? ' title="' + tooltip + '"' : '') + '>' + currVal + '</span>'; - } - - view.find('.datepicker-switch').text(startVal + '-' + endVal); - view.find('td').html(html); - }, - - fill: function(){ - var d = new Date(this.viewDate), - year = d.getUTCFullYear(), - month = d.getUTCMonth(), - startYear = this.o.startDate !== -Infinity ? this.o.startDate.getUTCFullYear() : -Infinity, - startMonth = this.o.startDate !== -Infinity ? this.o.startDate.getUTCMonth() : -Infinity, - endYear = this.o.endDate !== Infinity ? this.o.endDate.getUTCFullYear() : Infinity, - endMonth = this.o.endDate !== Infinity ? this.o.endDate.getUTCMonth() : Infinity, - todaytxt = dates[this.o.language].today || dates['en'].today || '', - cleartxt = dates[this.o.language].clear || dates['en'].clear || '', - titleFormat = dates[this.o.language].titleFormat || dates['en'].titleFormat, - tooltip, - before; - if (isNaN(year) || isNaN(month)) - return; - this.picker.find('.datepicker-days .datepicker-switch') - .text(DPGlobal.formatDate(d, titleFormat, this.o.language)); - this.picker.find('tfoot .today') - .text(todaytxt) - .css('display', this.o.todayBtn === true || this.o.todayBtn === 'linked' ? 'table-cell' : 'none'); - this.picker.find('tfoot .clear') - .text(cleartxt) - .css('display', this.o.clearBtn === true ? 'table-cell' : 'none'); - this.picker.find('thead .datepicker-title') - .text(this.o.title) - .css('display', typeof this.o.title === 'string' && this.o.title !== '' ? 'table-cell' : 'none'); - this.updateNavArrows(); - this.fillMonths(); - var prevMonth = UTCDate(year, month, 0), - day = prevMonth.getUTCDate(); - prevMonth.setUTCDate(day - (prevMonth.getUTCDay() - this.o.weekStart + 7)%7); - var nextMonth = new Date(prevMonth); - if (prevMonth.getUTCFullYear() < 100){ - nextMonth.setUTCFullYear(prevMonth.getUTCFullYear()); - } - nextMonth.setUTCDate(nextMonth.getUTCDate() + 42); - nextMonth = nextMonth.valueOf(); - var html = []; - var weekDay, clsName; - while (prevMonth.valueOf() < nextMonth){ - weekDay = prevMonth.getUTCDay(); - if (weekDay === this.o.weekStart){ - html.push('<tr>'); - if (this.o.calendarWeeks){ - // ISO 8601: First week contains first thursday. - // ISO also states week starts on Monday, but we can be more abstract here. - var - // Start of current week: based on weekstart/current date - ws = new Date(+prevMonth + (this.o.weekStart - weekDay - 7) % 7 * 864e5), - // Thursday of this week - th = new Date(Number(ws) + (7 + 4 - ws.getUTCDay()) % 7 * 864e5), - // First Thursday of year, year from thursday - yth = new Date(Number(yth = UTCDate(th.getUTCFullYear(), 0, 1)) + (7 + 4 - yth.getUTCDay()) % 7 * 864e5), - // Calendar week: ms between thursdays, div ms per day, div 7 days - calWeek = (th - yth) / 864e5 / 7 + 1; - html.push('<td class="cw">'+ calWeek +'</td>'); - } - } - clsName = this.getClassNames(prevMonth); - clsName.push('day'); - - var content = prevMonth.getUTCDate(); - - if (this.o.beforeShowDay !== $.noop){ - before = this.o.beforeShowDay(this._utc_to_local(prevMonth)); - if (before === undefined) - before = {}; - else if (typeof before === 'boolean') - before = {enabled: before}; - else if (typeof before === 'string') - before = {classes: before}; - if (before.enabled === false) - clsName.push('disabled'); - if (before.classes) - clsName = clsName.concat(before.classes.split(/\s+/)); - if (before.tooltip) - tooltip = before.tooltip; - if (before.content) - content = before.content; - } - - //Check if uniqueSort exists (supported by jquery >=1.12 and >=2.2) - //Fallback to unique function for older jquery versions - if ($.isFunction($.uniqueSort)) { - clsName = $.uniqueSort(clsName); - } else { - clsName = $.unique(clsName); - } - - html.push('<td class="'+clsName.join(' ')+'"' + (tooltip ? ' title="'+tooltip+'"' : '') + ' data-date="' + prevMonth.getTime().toString() + '">' + content + '</td>'); - tooltip = null; - if (weekDay === this.o.weekEnd){ - html.push('</tr>'); - } - prevMonth.setUTCDate(prevMonth.getUTCDate() + 1); - } - this.picker.find('.datepicker-days tbody').html(html.join('')); - - var monthsTitle = dates[this.o.language].monthsTitle || dates['en'].monthsTitle || 'Months'; - var months = this.picker.find('.datepicker-months') - .find('.datepicker-switch') - .text(this.o.maxViewMode < 2 ? monthsTitle : year) - .end() - .find('tbody span').removeClass('active'); - - $.each(this.dates, function(i, d){ - if (d.getUTCFullYear() === year) - months.eq(d.getUTCMonth()).addClass('active'); - }); - - if (year < startYear || year > endYear){ - months.addClass('disabled'); - } - if (year === startYear){ - months.slice(0, startMonth).addClass('disabled'); - } - if (year === endYear){ - months.slice(endMonth+1).addClass('disabled'); - } - - if (this.o.beforeShowMonth !== $.noop){ - var that = this; - $.each(months, function(i, month){ - var moDate = new Date(year, i, 1); - var before = that.o.beforeShowMonth(moDate); - if (before === undefined) - before = {}; - else if (typeof before === 'boolean') - before = {enabled: before}; - else if (typeof before === 'string') - before = {classes: before}; - if (before.enabled === false && !$(month).hasClass('disabled')) - $(month).addClass('disabled'); - if (before.classes) - $(month).addClass(before.classes); - if (before.tooltip) - $(month).prop('title', before.tooltip); - }); - } - - // Generating decade/years picker - this._fill_yearsView( - '.datepicker-years', - 'year', - 10, - year, - startYear, - endYear, - this.o.beforeShowYear - ); - - // Generating century/decades picker - this._fill_yearsView( - '.datepicker-decades', - 'decade', - 100, - year, - startYear, - endYear, - this.o.beforeShowDecade - ); - - // Generating millennium/centuries picker - this._fill_yearsView( - '.datepicker-centuries', - 'century', - 1000, - year, - startYear, - endYear, - this.o.beforeShowCentury - ); - }, - - updateNavArrows: function(){ - if (!this._allow_update) - return; - - var d = new Date(this.viewDate), - year = d.getUTCFullYear(), - month = d.getUTCMonth(), - startYear = this.o.startDate !== -Infinity ? this.o.startDate.getUTCFullYear() : -Infinity, - startMonth = this.o.startDate !== -Infinity ? this.o.startDate.getUTCMonth() : -Infinity, - endYear = this.o.endDate !== Infinity ? this.o.endDate.getUTCFullYear() : Infinity, - endMonth = this.o.endDate !== Infinity ? this.o.endDate.getUTCMonth() : Infinity, - prevIsDisabled, - nextIsDisabled, - factor = 1; - switch (this.viewMode){ - case 0: - prevIsDisabled = year <= startYear && month <= startMonth; - nextIsDisabled = year >= endYear && month >= endMonth; - break; - case 4: - factor *= 10; - /* falls through */ - case 3: - factor *= 10; - /* falls through */ - case 2: - factor *= 10; - /* falls through */ - case 1: - prevIsDisabled = Math.floor(year / factor) * factor <= startYear; - nextIsDisabled = Math.floor(year / factor) * factor + factor >= endYear; - break; - } - - this.picker.find('.prev').toggleClass('disabled', prevIsDisabled); - this.picker.find('.next').toggleClass('disabled', nextIsDisabled); - }, - - click: function(e){ - e.preventDefault(); - e.stopPropagation(); - - var target, dir, day, year, month; - target = $(e.target); - - // Clicked on the switch - if (target.hasClass('datepicker-switch') && this.viewMode !== this.o.maxViewMode){ - this.setViewMode(this.viewMode + 1); - } - - // Clicked on today button - if (target.hasClass('today') && !target.hasClass('day')){ - this.setViewMode(0); - this._setDate(UTCToday(), this.o.todayBtn === 'linked' ? null : 'view'); - } - - // Clicked on clear button - if (target.hasClass('clear')){ - this.clearDates(); - } - - if (!target.hasClass('disabled')){ - // Clicked on a month, year, decade, century - if (target.hasClass('month') - || target.hasClass('year') - || target.hasClass('decade') - || target.hasClass('century')) { - this.viewDate.setUTCDate(1); - - day = 1; - if (this.viewMode === 1){ - month = target.parent().find('span').index(target); - year = this.viewDate.getUTCFullYear(); - this.viewDate.setUTCMonth(month); - } else { - month = 0; - year = Number(target.text()); - this.viewDate.setUTCFullYear(year); - } - - this._trigger(DPGlobal.viewModes[this.viewMode - 1].e, this.viewDate); - - if (this.viewMode === this.o.minViewMode){ - this._setDate(UTCDate(year, month, day)); - } else { - this.setViewMode(this.viewMode - 1); - this.fill(); - } - } - } - - if (this.picker.is(':visible') && this._focused_from){ - this._focused_from.focus(); - } - delete this._focused_from; - }, - - dayCellClick: function(e){ - var $target = $(e.currentTarget); - var timestamp = $target.data('date'); - var date = new Date(timestamp); - - if (this.o.updateViewDate) { - if (date.getUTCFullYear() !== this.viewDate.getUTCFullYear()) { - this._trigger('changeYear', this.viewDate); - } - - if (date.getUTCMonth() !== this.viewDate.getUTCMonth()) { - this._trigger('changeMonth', this.viewDate); - } - } - this._setDate(date); - }, - - // Clicked on prev or next - navArrowsClick: function(e){ - var $target = $(e.currentTarget); - var dir = $target.hasClass('prev') ? -1 : 1; - if (this.viewMode !== 0){ - dir *= DPGlobal.viewModes[this.viewMode].navStep * 12; - } - this.viewDate = this.moveMonth(this.viewDate, dir); - this._trigger(DPGlobal.viewModes[this.viewMode].e, this.viewDate); - this.fill(); - }, - - _toggle_multidate: function(date){ - var ix = this.dates.contains(date); - if (!date){ - this.dates.clear(); - } - - if (ix !== -1){ - if (this.o.multidate === true || this.o.multidate > 1 || this.o.toggleActive){ - this.dates.remove(ix); - } - } else if (this.o.multidate === false) { - this.dates.clear(); - this.dates.push(date); - } - else { - this.dates.push(date); - } - - if (typeof this.o.multidate === 'number') - while (this.dates.length > this.o.multidate) - this.dates.remove(0); - }, - - _setDate: function(date, which){ - if (!which || which === 'date') - this._toggle_multidate(date && new Date(date)); - if ((!which && this.o.updateViewDate) || which === 'view') - this.viewDate = date && new Date(date); - - this.fill(); - this.setValue(); - if (!which || which !== 'view') { - this._trigger('changeDate'); - } - this.inputField.trigger('change'); - if (this.o.autoclose && (!which || which === 'date')){ - this.hide(); - } - }, - - moveDay: function(date, dir){ - var newDate = new Date(date); - newDate.setUTCDate(date.getUTCDate() + dir); - - return newDate; - }, - - moveWeek: function(date, dir){ - return this.moveDay(date, dir * 7); - }, - - moveMonth: function(date, dir){ - if (!isValidDate(date)) - return this.o.defaultViewDate; - if (!dir) - return date; - var new_date = new Date(date.valueOf()), - day = new_date.getUTCDate(), - month = new_date.getUTCMonth(), - mag = Math.abs(dir), - new_month, test; - dir = dir > 0 ? 1 : -1; - if (mag === 1){ - test = dir === -1 - // If going back one month, make sure month is not current month - // (eg, Mar 31 -> Feb 31 == Feb 28, not Mar 02) - ? function(){ - return new_date.getUTCMonth() === month; - } - // If going forward one month, make sure month is as expected - // (eg, Jan 31 -> Feb 31 == Feb 28, not Mar 02) - : function(){ - return new_date.getUTCMonth() !== new_month; - }; - new_month = month + dir; - new_date.setUTCMonth(new_month); - // Dec -> Jan (12) or Jan -> Dec (-1) -- limit expected date to 0-11 - new_month = (new_month + 12) % 12; - } - else { - // For magnitudes >1, move one month at a time... - for (var i=0; i < mag; i++) - // ...which might decrease the day (eg, Jan 31 to Feb 28, etc)... - new_date = this.moveMonth(new_date, dir); - // ...then reset the day, keeping it in the new month - new_month = new_date.getUTCMonth(); - new_date.setUTCDate(day); - test = function(){ - return new_month !== new_date.getUTCMonth(); - }; - } - // Common date-resetting loop -- if date is beyond end of month, make it - // end of month - while (test()){ - new_date.setUTCDate(--day); - new_date.setUTCMonth(new_month); - } - return new_date; - }, - - moveYear: function(date, dir){ - return this.moveMonth(date, dir*12); - }, - - moveAvailableDate: function(date, dir, fn){ - do { - date = this[fn](date, dir); - - if (!this.dateWithinRange(date)) - return false; - - fn = 'moveDay'; - } - while (this.dateIsDisabled(date)); - - return date; - }, - - weekOfDateIsDisabled: function(date){ - return $.inArray(date.getUTCDay(), this.o.daysOfWeekDisabled) !== -1; - }, - - dateIsDisabled: function(date){ - return ( - this.weekOfDateIsDisabled(date) || - $.grep(this.o.datesDisabled, function(d){ - return isUTCEquals(date, d); - }).length > 0 - ); - }, - - dateWithinRange: function(date){ - return date >= this.o.startDate && date <= this.o.endDate; - }, - - keydown: function(e){ - if (!this.picker.is(':visible')){ - if (e.keyCode === 40 || e.keyCode === 27) { // allow down to re-show picker - this.show(); - e.stopPropagation(); - } - return; - } - var dateChanged = false, - dir, newViewDate, - focusDate = this.focusDate || this.viewDate; - switch (e.keyCode){ - case 27: // escape - if (this.focusDate){ - this.focusDate = null; - this.viewDate = this.dates.get(-1) || this.viewDate; - this.fill(); - } - else - this.hide(); - e.preventDefault(); - e.stopPropagation(); - break; - case 37: // left - case 38: // up - case 39: // right - case 40: // down - if (!this.o.keyboardNavigation || this.o.daysOfWeekDisabled.length === 7) - break; - dir = e.keyCode === 37 || e.keyCode === 38 ? -1 : 1; - if (this.viewMode === 0) { - if (e.ctrlKey){ - newViewDate = this.moveAvailableDate(focusDate, dir, 'moveYear'); - - if (newViewDate) - this._trigger('changeYear', this.viewDate); - } else if (e.shiftKey){ - newViewDate = this.moveAvailableDate(focusDate, dir, 'moveMonth'); - - if (newViewDate) - this._trigger('changeMonth', this.viewDate); - } else if (e.keyCode === 37 || e.keyCode === 39){ - newViewDate = this.moveAvailableDate(focusDate, dir, 'moveDay'); - } else if (!this.weekOfDateIsDisabled(focusDate)){ - newViewDate = this.moveAvailableDate(focusDate, dir, 'moveWeek'); - } - } else if (this.viewMode === 1) { - if (e.keyCode === 38 || e.keyCode === 40) { - dir = dir * 4; - } - newViewDate = this.moveAvailableDate(focusDate, dir, 'moveMonth'); - } else if (this.viewMode === 2) { - if (e.keyCode === 38 || e.keyCode === 40) { - dir = dir * 4; - } - newViewDate = this.moveAvailableDate(focusDate, dir, 'moveYear'); - } - if (newViewDate){ - this.focusDate = this.viewDate = newViewDate; - this.setValue(); - this.fill(); - e.preventDefault(); - } - break; - case 13: // enter - if (!this.o.forceParse) - break; - focusDate = this.focusDate || this.dates.get(-1) || this.viewDate; - if (this.o.keyboardNavigation) { - this._toggle_multidate(focusDate); - dateChanged = true; - } - this.focusDate = null; - this.viewDate = this.dates.get(-1) || this.viewDate; - this.setValue(); - this.fill(); - if (this.picker.is(':visible')){ - e.preventDefault(); - e.stopPropagation(); - if (this.o.autoclose) - this.hide(); - } - break; - case 9: // tab - this.focusDate = null; - this.viewDate = this.dates.get(-1) || this.viewDate; - this.fill(); - this.hide(); - break; - } - if (dateChanged){ - if (this.dates.length) - this._trigger('changeDate'); - else - this._trigger('clearDate'); - this.inputField.trigger('change'); - } - }, - - setViewMode: function(viewMode){ - this.viewMode = viewMode; - this.picker - .children('div') - .hide() - .filter('.datepicker-' + DPGlobal.viewModes[this.viewMode].clsName) - .show(); - this.updateNavArrows(); - this._trigger('changeViewMode', new Date(this.viewDate)); - } - }; - - var DateRangePicker = function(element, options){ - $.data(element, 'datepicker', this); - this.element = $(element); - this.inputs = $.map(options.inputs, function(i){ - return i.jquery ? i[0] : i; - }); - delete options.inputs; - - this.keepEmptyValues = options.keepEmptyValues; - delete options.keepEmptyValues; - - datepickerPlugin.call($(this.inputs), options) - .on('changeDate', $.proxy(this.dateUpdated, this)); - - this.pickers = $.map(this.inputs, function(i){ - return $.data(i, 'datepicker'); - }); - this.updateDates(); - }; - DateRangePicker.prototype = { - updateDates: function(){ - this.dates = $.map(this.pickers, function(i){ - return i.getUTCDate(); - }); - this.updateRanges(); - }, - updateRanges: function(){ - var range = $.map(this.dates, function(d){ - return d.valueOf(); - }); - $.each(this.pickers, function(i, p){ - p.setRange(range); - }); - }, - dateUpdated: function(e){ - // `this.updating` is a workaround for preventing infinite recursion - // between `changeDate` triggering and `setUTCDate` calling. Until - // there is a better mechanism. - if (this.updating) - return; - this.updating = true; - - var dp = $.data(e.target, 'datepicker'); - - if (dp === undefined) { - return; - } - - var new_date = dp.getUTCDate(), - keep_empty_values = this.keepEmptyValues, - i = $.inArray(e.target, this.inputs), - j = i - 1, - k = i + 1, - l = this.inputs.length; - if (i === -1) - return; - - $.each(this.pickers, function(i, p){ - if (!p.getUTCDate() && (p === dp || !keep_empty_values)) - p.setUTCDate(new_date); - }); - - if (new_date < this.dates[j]){ - // Date being moved earlier/left - while (j >= 0 && new_date < this.dates[j]){ - this.pickers[j--].setUTCDate(new_date); - } - } else if (new_date > this.dates[k]){ - // Date being moved later/right - while (k < l && new_date > this.dates[k]){ - this.pickers[k++].setUTCDate(new_date); - } - } - this.updateDates(); - - delete this.updating; - }, - destroy: function(){ - $.map(this.pickers, function(p){ p.destroy(); }); - $(this.inputs).off('changeDate', this.dateUpdated); - delete this.element.data().datepicker; - }, - remove: alias('destroy', 'Method `remove` is deprecated and will be removed in version 2.0. Use `destroy` instead') - }; - - function opts_from_el(el, prefix){ - // Derive options from element data-attrs - var data = $(el).data(), - out = {}, inkey, - replace = new RegExp('^' + prefix.toLowerCase() + '([A-Z])'); - prefix = new RegExp('^' + prefix.toLowerCase()); - function re_lower(_,a){ - return a.toLowerCase(); - } - for (var key in data) - if (prefix.test(key)){ - inkey = key.replace(replace, re_lower); - out[inkey] = data[key]; - } - return out; - } - - function opts_from_locale(lang){ - // Derive options from locale plugins - var out = {}; - // Check if "de-DE" style date is available, if not language should - // fallback to 2 letter code eg "de" - if (!dates[lang]){ - lang = lang.split('-')[0]; - if (!dates[lang]) - return; - } - var d = dates[lang]; - $.each(locale_opts, function(i,k){ - if (k in d) - out[k] = d[k]; - }); - return out; - } - - var old = $.fn.datepicker; - var datepickerPlugin = function(option){ - var args = Array.apply(null, arguments); - args.shift(); - var internal_return; - this.each(function(){ - var $this = $(this), - data = $this.data('datepicker'), - options = typeof option === 'object' && option; - if (!data){ - var elopts = opts_from_el(this, 'date'), - // Preliminary otions - xopts = $.extend({}, defaults, elopts, options), - locopts = opts_from_locale(xopts.language), - // Options priority: js args, data-attrs, locales, defaults - opts = $.extend({}, defaults, locopts, elopts, options); - if ($this.hasClass('input-daterange') || opts.inputs){ - $.extend(opts, { - inputs: opts.inputs || $this.find('input').toArray() - }); - data = new DateRangePicker(this, opts); - } - else { - data = new Datepicker(this, opts); - } - $this.data('datepicker', data); - } - if (typeof option === 'string' && typeof data[option] === 'function'){ - internal_return = data[option].apply(data, args); - } - }); - - if ( - internal_return === undefined || - internal_return instanceof Datepicker || - internal_return instanceof DateRangePicker - ) - return this; - - if (this.length > 1) - throw new Error('Using only allowed for the collection of a single element (' + option + ' function)'); - else - return internal_return; - }; - $.fn.datepicker = datepickerPlugin; - - var defaults = $.fn.datepicker.defaults = { - assumeNearbyYear: false, - autoclose: false, - beforeShowDay: $.noop, - beforeShowMonth: $.noop, - beforeShowYear: $.noop, - beforeShowDecade: $.noop, - beforeShowCentury: $.noop, - calendarWeeks: false, - clearBtn: false, - toggleActive: false, - daysOfWeekDisabled: [], - daysOfWeekHighlighted: [], - datesDisabled: [], - endDate: Infinity, - forceParse: true, - format: 'mm/dd/yyyy', - keepEmptyValues: false, - keyboardNavigation: true, - language: 'en', - minViewMode: 0, - maxViewMode: 4, - multidate: false, - multidateSeparator: ',', - orientation: "auto", - rtl: false, - startDate: -Infinity, - startView: 0, - todayBtn: false, - todayHighlight: false, - updateViewDate: true, - weekStart: 0, - disableTouchKeyboard: false, - enableOnReadonly: true, - showOnFocus: true, - zIndexOffset: 10, - container: 'body', - immediateUpdates: false, - title: '', - templates: { - leftArrow: '&#x00AB;', - rightArrow: '&#x00BB;' - }, - showWeekDays: true - }; - var locale_opts = $.fn.datepicker.locale_opts = [ - 'format', - 'rtl', - 'weekStart' - ]; - $.fn.datepicker.Constructor = Datepicker; - var dates = $.fn.datepicker.dates = { - en: { - days: ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"], - daysShort: ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"], - daysMin: ["Su", "Mo", "Tu", "We", "Th", "Fr", "Sa"], - months: ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"], - monthsShort: ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"], - today: "Today", - clear: "Clear", - titleFormat: "MM yyyy" - } - }; - - var DPGlobal = { - viewModes: [ - { - names: ['days', 'month'], - clsName: 'days', - e: 'changeMonth' - }, - { - names: ['months', 'year'], - clsName: 'months', - e: 'changeYear', - navStep: 1 - }, - { - names: ['years', 'decade'], - clsName: 'years', - e: 'changeDecade', - navStep: 10 - }, - { - names: ['decades', 'century'], - clsName: 'decades', - e: 'changeCentury', - navStep: 100 - }, - { - names: ['centuries', 'millennium'], - clsName: 'centuries', - e: 'changeMillennium', - navStep: 1000 - } - ], - validParts: /dd?|DD?|mm?|MM?|yy(?:yy)?/g, - nonpunctuation: /[^ -\/:-@\u5e74\u6708\u65e5\[-`{-~\t\n\r]+/g, - parseFormat: function(format){ - if (typeof format.toValue === 'function' && typeof format.toDisplay === 'function') - return format; - // IE treats \0 as a string end in inputs (truncating the value), - // so it's a bad format delimiter, anyway - var separators = format.replace(this.validParts, '\0').split('\0'), - parts = format.match(this.validParts); - if (!separators || !separators.length || !parts || parts.length === 0){ - throw new Error("Invalid date format."); - } - return {separators: separators, parts: parts}; - }, - parseDate: function(date, format, language, assumeNearby){ - if (!date) - return undefined; - if (date instanceof Date) - return date; - if (typeof format === 'string') - format = DPGlobal.parseFormat(format); - if (format.toValue) - return format.toValue(date, format, language); - var fn_map = { - d: 'moveDay', - m: 'moveMonth', - w: 'moveWeek', - y: 'moveYear' - }, - dateAliases = { - yesterday: '-1d', - today: '+0d', - tomorrow: '+1d' - }, - parts, part, dir, i, fn; - if (date in dateAliases){ - date = dateAliases[date]; - } - if (/^[\-+]\d+[dmwy]([\s,]+[\-+]\d+[dmwy])*$/i.test(date)){ - parts = date.match(/([\-+]\d+)([dmwy])/gi); - date = new Date(); - for (i=0; i < parts.length; i++){ - part = parts[i].match(/([\-+]\d+)([dmwy])/i); - dir = Number(part[1]); - fn = fn_map[part[2].toLowerCase()]; - date = Datepicker.prototype[fn](date, dir); - } - return Datepicker.prototype._zero_utc_time(date); - } - - parts = date && date.match(this.nonpunctuation) || []; - - function applyNearbyYear(year, threshold){ - if (threshold === true) - threshold = 10; - - // if year is 2 digits or less, than the user most likely is trying to get a recent century - if (year < 100){ - year += 2000; - // if the new year is more than threshold years in advance, use last century - if (year > ((new Date()).getFullYear()+threshold)){ - year -= 100; - } - } - - return year; - } - - var parsed = {}, - setters_order = ['yyyy', 'yy', 'M', 'MM', 'm', 'mm', 'd', 'dd'], - setters_map = { - yyyy: function(d,v){ - return d.setUTCFullYear(assumeNearby ? applyNearbyYear(v, assumeNearby) : v); - }, - m: function(d,v){ - if (isNaN(d)) - return d; - v -= 1; - while (v < 0) v += 12; - v %= 12; - d.setUTCMonth(v); - while (d.getUTCMonth() !== v) - d.setUTCDate(d.getUTCDate()-1); - return d; - }, - d: function(d,v){ - return d.setUTCDate(v); - } - }, - val, filtered; - setters_map['yy'] = setters_map['yyyy']; - setters_map['M'] = setters_map['MM'] = setters_map['mm'] = setters_map['m']; - setters_map['dd'] = setters_map['d']; - date = UTCToday(); - var fparts = format.parts.slice(); - // Remove noop parts - if (parts.length !== fparts.length){ - fparts = $(fparts).filter(function(i,p){ - return $.inArray(p, setters_order) !== -1; - }).toArray(); - } - // Process remainder - function match_part(){ - var m = this.slice(0, parts[i].length), - p = parts[i].slice(0, m.length); - return m.toLowerCase() === p.toLowerCase(); - } - if (parts.length === fparts.length){ - var cnt; - for (i=0, cnt = fparts.length; i < cnt; i++){ - val = parseInt(parts[i], 10); - part = fparts[i]; - if (isNaN(val)){ - switch (part){ - case 'MM': - filtered = $(dates[language].months).filter(match_part); - val = $.inArray(filtered[0], dates[language].months) + 1; - break; - case 'M': - filtered = $(dates[language].monthsShort).filter(match_part); - val = $.inArray(filtered[0], dates[language].monthsShort) + 1; - break; - } - } - parsed[part] = val; - } - var _date, s; - for (i=0; i < setters_order.length; i++){ - s = setters_order[i]; - if (s in parsed && !isNaN(parsed[s])){ - _date = new Date(date); - setters_map[s](_date, parsed[s]); - if (!isNaN(_date)) - date = _date; - } - } - } - return date; - }, - formatDate: function(date, format, language){ - if (!date) - return ''; - if (typeof format === 'string') - format = DPGlobal.parseFormat(format); - if (format.toDisplay) - return format.toDisplay(date, format, language); - var val = { - d: date.getUTCDate(), - D: dates[language].daysShort[date.getUTCDay()], - DD: dates[language].days[date.getUTCDay()], - m: date.getUTCMonth() + 1, - M: dates[language].monthsShort[date.getUTCMonth()], - MM: dates[language].months[date.getUTCMonth()], - yy: date.getUTCFullYear().toString().substring(2), - yyyy: date.getUTCFullYear() - }; - val.dd = (val.d < 10 ? '0' : '') + val.d; - val.mm = (val.m < 10 ? '0' : '') + val.m; - date = []; - var seps = $.extend([], format.separators); - for (var i=0, cnt = format.parts.length; i <= cnt; i++){ - if (seps.length) - date.push(seps.shift()); - date.push(val[format.parts[i]]); - } - return date.join(''); - }, - headTemplate: '<thead>'+ - '<tr>'+ - '<th colspan="7" class="datepicker-title"></th>'+ - '</tr>'+ - '<tr>'+ - '<th class="prev">'+defaults.templates.leftArrow+'</th>'+ - '<th colspan="5" class="datepicker-switch"></th>'+ - '<th class="next">'+defaults.templates.rightArrow+'</th>'+ - '</tr>'+ - '</thead>', - contTemplate: '<tbody><tr><td colspan="7"></td></tr></tbody>', - footTemplate: '<tfoot>'+ - '<tr>'+ - '<th colspan="7" class="today"></th>'+ - '</tr>'+ - '<tr>'+ - '<th colspan="7" class="clear"></th>'+ - '</tr>'+ - '</tfoot>' - }; - DPGlobal.template = '<div class="datepicker">'+ - '<div class="datepicker-days">'+ - '<table class="table-condensed">'+ - DPGlobal.headTemplate+ - '<tbody></tbody>'+ - DPGlobal.footTemplate+ - '</table>'+ - '</div>'+ - '<div class="datepicker-months">'+ - '<table class="table-condensed">'+ - DPGlobal.headTemplate+ - DPGlobal.contTemplate+ - DPGlobal.footTemplate+ - '</table>'+ - '</div>'+ - '<div class="datepicker-years">'+ - '<table class="table-condensed">'+ - DPGlobal.headTemplate+ - DPGlobal.contTemplate+ - DPGlobal.footTemplate+ - '</table>'+ - '</div>'+ - '<div class="datepicker-decades">'+ - '<table class="table-condensed">'+ - DPGlobal.headTemplate+ - DPGlobal.contTemplate+ - DPGlobal.footTemplate+ - '</table>'+ - '</div>'+ - '<div class="datepicker-centuries">'+ - '<table class="table-condensed">'+ - DPGlobal.headTemplate+ - DPGlobal.contTemplate+ - DPGlobal.footTemplate+ - '</table>'+ - '</div>'+ - '</div>'; - - $.fn.datepicker.DPGlobal = DPGlobal; - - - /* DATEPICKER NO CONFLICT - * =================== */ - - $.fn.datepicker.noConflict = function(){ - $.fn.datepicker = old; - return this; - }; - - /* DATEPICKER VERSION - * =================== */ - $.fn.datepicker.version = '1.7.1'; - - $.fn.datepicker.deprecated = function(msg){ - var console = window.console; - if (console && console.warn) { - console.warn('DEPRECATED: ' + msg); - } - }; - - - /* DATEPICKER DATA-API - * ================== */ - - $(document).on( - 'focus.datepicker.data-api click.datepicker.data-api', - '[data-provide="datepicker"]', - function(e){ - var $this = $(this); - if ($this.data('datepicker')) - return; - e.preventDefault(); - // component click requires us to explicitly show it - datepickerPlugin.call($this, 'show'); - } - ); - $(function(){ - datepickerPlugin.call($('[data-provide="datepicker-inline"]')); - }); - -})); diff --git a/admin/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker-en-CA.js b/admin/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker-en-CA.js deleted file mode 100644 index 1a8e563..0000000 --- a/admin/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker-en-CA.js +++ /dev/null @@ -1,18 +0,0 @@ -/** - * Canadian English translation for bootstrap-datepicker - * Mike Nacey <mnacey@gmail.com> - */ -;(function($){ - $.fn.datepicker.dates['en-CA'] = { - days: ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"], - daysShort: ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"], - daysMin: ["Su", "Mo", "Tu", "We", "Th", "Fr", "Sa"], - months: ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"], - monthsShort: ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"], - today: "Today", - monthsTitle: "Months", - clear: "Clear", - weekStart: 0, - format: "yyyy-mm-dd" - }; -}(jQuery)); diff --git a/admin/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.ar-tn.js b/admin/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.ar-tn.js deleted file mode 100644 index 110fe91..0000000 --- a/admin/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.ar-tn.js +++ /dev/null @@ -1,15 +0,0 @@ -/** - * Arabic-Tunisia translation for bootstrap-datepicker - * Souhaieb Besbes <besbes.souhaieb@gmail.com> - */ -;(function($){ - $.fn.datepicker.dates['ar-tn'] = { - days: ["الأحد", "الاثنين", "الثلاثاء", "الأربعاء", "الخميس", "الجمعة", "السبت", "الأحد"], - daysShort: ["أحد", "اثنين", "ثلاثاء", "أربعاء", "خميس", "جمعة", "سبت", "أحد"], - daysMin: ["ح", "ن", "ث", "ع", "خ", "ج", "س", "ح"], - months: ["جانفي","فيفري","مارس","أفريل","ماي","جوان","جويليه","أوت","سبتمبر","أكتوبر","نوفمبر","ديسمبر"], - monthsShort: ["جانفي","فيفري","مارس","أفريل","ماي","جوان","جويليه","أوت","سبتمبر","أكتوبر","نوفمبر","ديسمبر"], - today: "هذا اليوم", - rtl: true - }; -}(jQuery)); diff --git a/admin/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.ar.js b/admin/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.ar.js deleted file mode 100644 index 12ae182..0000000 --- a/admin/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.ar.js +++ /dev/null @@ -1,15 +0,0 @@ -/** - * Arabic translation for bootstrap-datepicker - * Mohammed Alshehri <alshehri866@gmail.com> - */ -;(function($){ - $.fn.datepicker.dates['ar'] = { - days: ["الأحد", "الاثنين", "الثلاثاء", "الأربعاء", "الخميس", "الجمعة", "السبت", "الأحد"], - daysShort: ["أحد", "اثنين", "ثلاثاء", "أربعاء", "خميس", "جمعة", "سبت", "أحد"], - daysMin: ["ح", "ن", "ث", "ع", "خ", "ج", "س", "ح"], - months: ["يناير", "فبراير", "مارس", "أبريل", "مايو", "يونيو", "يوليو", "أغسطس", "سبتمبر", "أكتوبر", "نوفمبر", "ديسمبر"], - monthsShort: ["يناير", "فبراير", "مارس", "أبريل", "مايو", "يونيو", "يوليو", "أغسطس", "سبتمبر", "أكتوبر", "نوفمبر", "ديسمبر"], - today: "هذا اليوم", - rtl: true - }; -}(jQuery)); diff --git a/admin/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.az.js b/admin/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.az.js deleted file mode 100644 index 460bfd4..0000000 --- a/admin/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.az.js +++ /dev/null @@ -1,12 +0,0 @@ -// Azerbaijani -;(function($){ - $.fn.datepicker.dates['az'] = { - days: ["Bazar", "Bazar ertəsi", "Çərşənbə axşamı", "Çərşənbə", "Cümə axşamı", "Cümə", "Şənbə"], - daysShort: ["B.", "B.e", "Ç.a", "Ç.", "C.a", "C.", "Ş."], - daysMin: ["B.", "B.e", "Ç.a", "Ç.", "C.a", "C.", "Ş."], - months: ["Yanvar", "Fevral", "Mart", "Aprel", "May", "İyun", "İyul", "Avqust", "Sentyabr", "Oktyabr", "Noyabr", "Dekabr"], - monthsShort: ["Yan", "Fev", "Mar", "Apr", "May", "İyun", "İyul", "Avq", "Sen", "Okt", "Noy", "Dek"], - today: "Bu gün", - weekStart: 1 - }; -}(jQuery)); diff --git a/admin/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.bg.js b/admin/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.bg.js deleted file mode 100644 index 3193e19..0000000 --- a/admin/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.bg.js +++ /dev/null @@ -1,14 +0,0 @@ -/** - * Bulgarian translation for bootstrap-datepicker - * Apostol Apostolov <apostol.s.apostolov@gmail.com> - */ -;(function($){ - $.fn.datepicker.dates['bg'] = { - days: ["Неделя", "Понеделник", "Вторник", "Сряда", "Четвъртък", "Петък", "Събота"], - daysShort: ["Нед", "Пон", "Вто", "Сря", "Чет", "Пет", "Съб"], - daysMin: ["Н", "П", "В", "С", "Ч", "П", "С"], - months: ["Януари", "Февруари", "Март", "Април", "Май", "Юни", "Юли", "Август", "Септември", "Октомври", "Ноември", "Декември"], - monthsShort: ["Ян", "Фев", "Мар", "Апр", "Май", "Юни", "Юли", "Авг", "Сеп", "Окт", "Ное", "Дек"], - today: "днес" - }; -}(jQuery)); diff --git a/admin/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.bn.js b/admin/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.bn.js deleted file mode 100644 index 05e9ccf..0000000 --- a/admin/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.bn.js +++ /dev/null @@ -1,19 +0,0 @@ -/** - * Bengali (Bangla) translation for bootstrap-datepicker - * Karim Khan <kkhancse91@gmail.com> - * Orif N. Jr. <orif.zade@gmail.com> - */ -;(function($){ - $.fn.datepicker.dates['bn'] = { - days: ["রবিবার","সোমবার","মঙ্গলবার","বুধবার","বৃহস্পতিবার","শুক্রবার","শনিবার"], - daysShort: ["রবিবার","সোমবার","মঙ্গলবার","বুধবার","বৃহস্পতিবার","শুক্রবার","শনিবার"], - daysMin: ["রবি","সোম","মঙ্গল","বুধ","বৃহস্পতি","শুক্র","শনি"], - months: ["জানুয়ারী","ফেব্রুয়ারি","মার্চ","এপ্রিল","মে","জুন","জুলাই","অগাস্ট","সেপ্টেম্বর","অক্টোবর","নভেম্বর","ডিসেম্বর"], - monthsShort: ["জানুয়ারী","ফেব্রুয়ারি","মার্চ","এপ্রিল","মে","জুন","জুলাই","অগাস্ট","সেপ্টেম্বর","অক্টোবর","নভেম্বর","ডিসেম্বর"], - today: "আজ", - monthsTitle: "মাস", - clear: "পরিষ্কার", - weekStart: 0, - format: "mm/dd/yyyy" - }; -}(jQuery)); diff --git a/admin/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.br.js b/admin/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.br.js deleted file mode 100644 index e71e194..0000000 --- a/admin/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.br.js +++ /dev/null @@ -1,18 +0,0 @@ -/** - * Breton translation for bootstrap-datepicker - * Gwenn Meynier <tornoz@laposte.net> - */ -;(function($){ - $.fn.datepicker.dates['br'] = { - days: ["Sul", "Lun", "Meurzh", "Merc'her", "Yaou", "Gwener", "Sadorn"], - daysShort: ["Sul", "Lun", "Meu.", "Mer.", "Yao.", "Gwe.", "Sad."], - daysMin: ["Su", "L", "Meu", "Mer", "Y", "G", "Sa"], - months: ["Genver", "C'hwevrer", "Meurzh", "Ebrel", "Mae", "Mezheven", "Gouere", "Eost", "Gwengolo", "Here", "Du", "Kerzu"], - monthsShort: ["Genv.", "C'hw.", "Meur.", "Ebre.", "Mae", "Mezh.", "Goue.", "Eost", "Gwen.", "Here", "Du", "Kerz."], - today: "Hiziv", - monthsTitle: "Miz", - clear: "Dilemel", - weekStart: 1, - format: "dd/mm/yyyy" - }; -}(jQuery)); diff --git a/admin/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.bs.js b/admin/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.bs.js deleted file mode 100644 index 4a76529..0000000 --- a/admin/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.bs.js +++ /dev/null @@ -1,15 +0,0 @@ -/** - * Bosnian translation for bootstrap-datepicker - */ -;(function($){ - $.fn.datepicker.dates['bs'] = { - days: ["Nedjelja","Ponedjeljak", "Utorak", "Srijeda", "Četvrtak", "Petak", "Subota"], - daysShort: ["Ned", "Pon", "Uto", "Sri", "Čet", "Pet", "Sub"], - daysMin: ["N", "Po", "U", "Sr", "Č", "Pe", "Su"], - months: ["Januar", "Februar", "Mart", "April", "Maj", "Juni", "Juli", "August", "Septembar", "Oktobar", "Novembar", "Decembar"], - monthsShort: ["Jan", "Feb", "Mar", "Apr", "Maj", "Jun", "Jul", "Aug", "Sep", "Okt", "Nov", "Dec"], - today: "Danas", - weekStart: 1, - format: "dd.mm.yyyy" - }; -}(jQuery)); diff --git a/admin/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.ca.js b/admin/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.ca.js deleted file mode 100644 index 6ba993c..0000000 --- a/admin/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.ca.js +++ /dev/null @@ -1,18 +0,0 @@ -/** - * Catalan translation for bootstrap-datepicker - * J. Garcia <jogaco.en@gmail.com> - */ -;(function($){ - $.fn.datepicker.dates['ca'] = { - days: ["Diumenge", "Dilluns", "Dimarts", "Dimecres", "Dijous", "Divendres", "Dissabte"], - daysShort: ["Diu", "Dil", "Dmt", "Dmc", "Dij", "Div", "Dis"], - daysMin: ["dg", "dl", "dt", "dc", "dj", "dv", "ds"], - months: ["Gener", "Febrer", "Març", "Abril", "Maig", "Juny", "Juliol", "Agost", "Setembre", "Octubre", "Novembre", "Desembre"], - monthsShort: ["Gen", "Feb", "Mar", "Abr", "Mai", "Jun", "Jul", "Ago", "Set", "Oct", "Nov", "Des"], - today: "Avui", - monthsTitle: "Mesos", - clear: "Esborrar", - weekStart: 1, - format: "dd/mm/yyyy" - }; -}(jQuery)); diff --git a/admin/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.cs.js b/admin/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.cs.js deleted file mode 100644 index 89c8438..0000000 --- a/admin/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.cs.js +++ /dev/null @@ -1,19 +0,0 @@ -/** - * Czech translation for bootstrap-datepicker - * Matěj Koubík <matej@koubik.name> - * Fixes by Michal Remiš <michal.remis@gmail.com> - */ -;(function($){ - $.fn.datepicker.dates['cs'] = { - days: ["Neděle", "Pondělí", "Úterý", "Středa", "Čtvrtek", "Pátek", "Sobota"], - daysShort: ["Ned", "Pon", "Úte", "Stř", "Čtv", "Pát", "Sob"], - daysMin: ["Ne", "Po", "Út", "St", "Čt", "Pá", "So"], - months: ["Leden", "Únor", "Březen", "Duben", "Květen", "Červen", "Červenec", "Srpen", "Září", "Říjen", "Listopad", "Prosinec"], - monthsShort: ["Led", "Úno", "Bře", "Dub", "Kvě", "Čer", "Čnc", "Srp", "Zář", "Říj", "Lis", "Pro"], - today: "Dnes", - clear: "Vymazat", - monthsTitle: "Měsíc", - weekStart: 1, - format: "dd.m.yyyy" - }; -}(jQuery)); diff --git a/admin/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.cy.js b/admin/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.cy.js deleted file mode 100644 index 553933b..0000000 --- a/admin/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.cy.js +++ /dev/null @@ -1,14 +0,0 @@ -/** - * Welsh translation for bootstrap-datepicker - * S. Morris <s.morris@bangor.ac.uk> - */ -;(function($){ - $.fn.datepicker.dates['cy'] = { - days: ["Sul", "Llun", "Mawrth", "Mercher", "Iau", "Gwener", "Sadwrn"], - daysShort: ["Sul", "Llu", "Maw", "Mer", "Iau", "Gwe", "Sad"], - daysMin: ["Su", "Ll", "Ma", "Me", "Ia", "Gwe", "Sa"], - months: ["Ionawr", "Chewfror", "Mawrth", "Ebrill", "Mai", "Mehefin", "Gorfennaf", "Awst", "Medi", "Hydref", "Tachwedd", "Rhagfyr"], - monthsShort: ["Ion", "Chw", "Maw", "Ebr", "Mai", "Meh", "Gor", "Aws", "Med", "Hyd", "Tach", "Rha"], - today: "Heddiw" - }; -}(jQuery)); diff --git a/admin/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.da.js b/admin/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.da.js deleted file mode 100644 index 727659d..0000000 --- a/admin/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.da.js +++ /dev/null @@ -1,18 +0,0 @@ -/** - * Danish translation for bootstrap-datepicker - * Christian Pedersen <http://github.com/chripede> - * Ivan Mylyanyk <https://github.com/imylyanyk> - */ -;(function($){ - $.fn.datepicker.dates['da'] = { - days: ["Søndag", "Mandag", "Tirsdag", "Onsdag", "Torsdag", "Fredag", "Lørdag"], - daysShort: ["Søn", "Man", "Tir", "Ons", "Tor", "Fre", "Lør"], - daysMin: ["Sø", "Ma", "Ti", "On", "To", "Fr", "Lø"], - months: ["Januar", "Februar", "Marts", "April", "Maj", "Juni", "Juli", "August", "September", "Oktober", "November", "December"], - monthsShort: ["Jan", "Feb", "Mar", "Apr", "Maj", "Jun", "Jul", "Aug", "Sep", "Okt", "Nov", "Dec"], - today: "I Dag", - weekStart: 1, - clear: "Nulstil", - format: "dd/mm/yyyy" - }; -}(jQuery)); diff --git a/admin/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.de.js b/admin/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.de.js deleted file mode 100644 index 52e7a9b..0000000 --- a/admin/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.de.js +++ /dev/null @@ -1,18 +0,0 @@ -/** - * German translation for bootstrap-datepicker - * Sam Zurcher <sam@orelias.ch> - */ -;(function($){ - $.fn.datepicker.dates['de'] = { - days: ["Sonntag", "Montag", "Dienstag", "Mittwoch", "Donnerstag", "Freitag", "Samstag"], - daysShort: ["Son", "Mon", "Die", "Mit", "Don", "Fre", "Sam"], - daysMin: ["So", "Mo", "Di", "Mi", "Do", "Fr", "Sa"], - months: ["Januar", "Februar", "März", "April", "Mai", "Juni", "Juli", "August", "September", "Oktober", "November", "Dezember"], - monthsShort: ["Jan", "Feb", "Mär", "Apr", "Mai", "Jun", "Jul", "Aug", "Sep", "Okt", "Nov", "Dez"], - today: "Heute", - monthsTitle: "Monate", - clear: "Löschen", - weekStart: 1, - format: "dd.mm.yyyy" - }; -}(jQuery)); diff --git a/admin/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.el.js b/admin/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.el.js deleted file mode 100644 index 5e00c7d..0000000 --- a/admin/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.el.js +++ /dev/null @@ -1,16 +0,0 @@ -/** - * Greek translation for bootstrap-datepicker - */ -;(function($){ - $.fn.datepicker.dates['el'] = { - days: ["Κυριακή", "Δευτέρα", "Τρίτη", "Τετάρτη", "Πέμπτη", "Παρασκευή", "Σάββατο"], - daysShort: ["Κυρ", "Δευ", "Τρι", "Τετ", "Πεμ", "Παρ", "Σαβ"], - daysMin: ["Κυ", "Δε", "Τρ", "Τε", "Πε", "Πα", "Σα"], - months: ["Ιανουάριος", "Φεβρουάριος", "Μάρτιος", "Απρίλιος", "Μάιος", "Ιούνιος", "Ιούλιος", "Αύγουστος", "Σεπτέμβριος", "Οκτώβριος", "Νοέμβριος", "Δεκέμβριος"], - monthsShort: ["Ιαν", "Φεβ", "Μαρ", "Απρ", "Μάι", "Ιουν", "Ιουλ", "Αυγ", "Σεπ", "Οκτ", "Νοε", "Δεκ"], - today: "Σήμερα", - clear: "Καθαρισμός", - weekStart: 1, - format: "d/m/yyyy" - }; -}(jQuery)); diff --git a/admin/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.en-AU.js b/admin/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.en-AU.js deleted file mode 100644 index 5f1fa24..0000000 --- a/admin/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.en-AU.js +++ /dev/null @@ -1,18 +0,0 @@ -/** - * Australian English translation for bootstrap-datepicker - * Steve Chapman <steven.p.chapman@gmail.com> - */ -;(function($){ - $.fn.datepicker.dates['en-AU'] = { - days: ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"], - daysShort: ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"], - daysMin: ["Su", "Mo", "Tu", "We", "Th", "Fr", "Sa"], - months: ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"], - monthsShort: ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"], - today: "Today", - monthsTitle: "Months", - clear: "Clear", - weekStart: 1, - format: "d/mm/yyyy" - }; -}(jQuery)); diff --git a/admin/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.en-GB.js b/admin/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.en-GB.js deleted file mode 100644 index 4f09467..0000000 --- a/admin/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.en-GB.js +++ /dev/null @@ -1,18 +0,0 @@ -/** - * British English translation for bootstrap-datepicker - * Xavier Dutreilh <xavier@dutreilh.com> - */ -;(function($){ - $.fn.datepicker.dates['en-GB'] = { - days: ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"], - daysShort: ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"], - daysMin: ["Su", "Mo", "Tu", "We", "Th", "Fr", "Sa"], - months: ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"], - monthsShort: ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"], - today: "Today", - monthsTitle: "Months", - clear: "Clear", - weekStart: 1, - format: "dd/mm/yyyy" - }; -}(jQuery)); diff --git a/admin/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.en-IE.js b/admin/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.en-IE.js deleted file mode 100644 index 188e4fc..0000000 --- a/admin/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.en-IE.js +++ /dev/null @@ -1,17 +0,0 @@ -/** - * Irish English translation for bootstrap-datepicker - */ -;(function($){ - $.fn.datepicker.dates['en-IE'] = { - days: ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"], - daysShort: ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"], - daysMin: ["Su", "Mo", "Tu", "We", "Th", "Fr", "Sa"], - months: ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"], - monthsShort: ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"], - today: "Today", - monthsTitle: "Months", - clear: "Clear", - weekStart: 1, - format: "dd/mm/yyyy" - }; -}(jQuery)); diff --git a/admin/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.en-NZ.js b/admin/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.en-NZ.js deleted file mode 100644 index 9b6910b..0000000 --- a/admin/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.en-NZ.js +++ /dev/null @@ -1,17 +0,0 @@ -/** - * New Zealand English translation for bootstrap-datepicker - */ -;(function($){ - $.fn.datepicker.dates['en-NZ'] = { - days: ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"], - daysShort: ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"], - daysMin: ["Su", "Mo", "Tu", "We", "Th", "Fr", "Sa"], - months: ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"], - monthsShort: ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"], - today: "Today", - monthsTitle: "Months", - clear: "Clear", - weekStart: 1, - format: "d/mm/yyyy" - }; -}(jQuery)); diff --git a/admin/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.en-ZA.js b/admin/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.en-ZA.js deleted file mode 100644 index 54b68f8..0000000 --- a/admin/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.en-ZA.js +++ /dev/null @@ -1,17 +0,0 @@ -/** - * South African English translation for bootstrap-datepicker - */ -;(function($){ - $.fn.datepicker.dates['en-ZA'] = { - days: ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"], - daysShort: ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"], - daysMin: ["Su", "Mo", "Tu", "We", "Th", "Fr", "Sa"], - months: ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"], - monthsShort: ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"], - today: "Today", - monthsTitle: "Months", - clear: "Clear", - weekStart: 1, - format: "yyyy/mm/d" - }; -}(jQuery)); diff --git a/admin/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.eo.js b/admin/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.eo.js deleted file mode 100644 index 98e4988..0000000 --- a/admin/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.eo.js +++ /dev/null @@ -1,17 +0,0 @@ -/** - * Esperanto translation for bootstrap-datepicker - * Emmanuel Debanne <https://github.com/debanne> - */ -;(function($){ - $.fn.datepicker.dates['eo'] = { - days: ["dimanĉo", "lundo", "mardo", "merkredo", "ĵaŭdo", "vendredo", "sabato"], - daysShort: ["dim.", "lun.", "mar.", "mer.", "ĵaŭ.", "ven.", "sam."], - daysMin: ["d", "l", "ma", "me", "ĵ", "v", "s"], - months: ["januaro", "februaro", "marto", "aprilo", "majo", "junio", "julio", "aŭgusto", "septembro", "oktobro", "novembro", "decembro"], - monthsShort: ["jan.", "feb.", "mar.", "apr.", "majo", "jun.", "jul.", "aŭg.", "sep.", "okt.", "nov.", "dec."], - today: "Hodiaŭ", - clear: "Nuligi", - weekStart: 1, - format: "yyyy-mm-dd" - }; -}(jQuery)); diff --git a/admin/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.es.js b/admin/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.es.js deleted file mode 100644 index ac9dd35..0000000 --- a/admin/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.es.js +++ /dev/null @@ -1,18 +0,0 @@ -/** - * Spanish translation for bootstrap-datepicker - * Bruno Bonamin <bruno.bonamin@gmail.com> - */ -;(function($){ - $.fn.datepicker.dates['es'] = { - days: ["Domingo", "Lunes", "Martes", "Miércoles", "Jueves", "Viernes", "Sábado"], - daysShort: ["Dom", "Lun", "Mar", "Mié", "Jue", "Vie", "Sáb"], - daysMin: ["Do", "Lu", "Ma", "Mi", "Ju", "Vi", "Sa"], - months: ["Enero", "Febrero", "Marzo", "Abril", "Mayo", "Junio", "Julio", "Agosto", "Septiembre", "Octubre", "Noviembre", "Diciembre"], - monthsShort: ["Ene", "Feb", "Mar", "Abr", "May", "Jun", "Jul", "Ago", "Sep", "Oct", "Nov", "Dic"], - today: "Hoy", - monthsTitle: "Meses", - clear: "Borrar", - weekStart: 1, - format: "dd/mm/yyyy" - }; -}(jQuery)); diff --git a/admin/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.et.js b/admin/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.et.js deleted file mode 100644 index 7f7100d..0000000 --- a/admin/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.et.js +++ /dev/null @@ -1,18 +0,0 @@ -/** - * Estonian translation for bootstrap-datepicker - * Ando Roots <https://github.com/anroots> - * Fixes by Illimar Tambek <<https://github.com/ragulka> - */ -;(function($){ - $.fn.datepicker.dates['et'] = { - days: ["Pühapäev", "Esmaspäev", "Teisipäev", "Kolmapäev", "Neljapäev", "Reede", "Laupäev"], - daysShort: ["Pühap", "Esmasp", "Teisip", "Kolmap", "Neljap", "Reede", "Laup"], - daysMin: ["P", "E", "T", "K", "N", "R", "L"], - months: ["Jaanuar", "Veebruar", "Märts", "Aprill", "Mai", "Juuni", "Juuli", "August", "September", "Oktoober", "November", "Detsember"], - monthsShort: ["Jaan", "Veebr", "Märts", "Apr", "Mai", "Juuni", "Juuli", "Aug", "Sept", "Okt", "Nov", "Dets"], - today: "Täna", - clear: "Tühjenda", - weekStart: 1, - format: "dd.mm.yyyy" - }; -}(jQuery)); diff --git a/admin/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.eu.js b/admin/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.eu.js deleted file mode 100644 index c2c3c0a..0000000 --- a/admin/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.eu.js +++ /dev/null @@ -1,19 +0,0 @@ -/** - * Basque translation for bootstrap-datepicker - * Arkaitz Etxeberria <kondi80@gmail.com> - */ -;(function($){ - $.fn.datepicker.dates['eu'] = { - days: ['Igandea', 'Astelehena', 'Asteartea', 'Asteazkena', 'Osteguna', 'Ostirala', 'Larunbata'], - daysShort: ['Ig', 'Al', 'Ar', 'Az', 'Og', 'Ol', 'Lr'], - daysMin: ['Ig', 'Al', 'Ar', 'Az', 'Og', 'Ol', 'Lr'], - months: ['Urtarrila', 'Otsaila', 'Martxoa', 'Apirila', 'Maiatza', 'Ekaina', 'Uztaila', 'Abuztua', 'Iraila', 'Urria', 'Azaroa', 'Abendua'], - monthsShort: ['Urt', 'Ots', 'Mar', 'Api', 'Mai', 'Eka', 'Uzt', 'Abu', 'Ira', 'Urr', 'Aza', 'Abe'], - today: "Gaur", - monthsTitle: "Hilabeteak", - clear: "Ezabatu", - weekStart: 1, - format: "yyyy/mm/dd" - }; -}(jQuery)); - diff --git a/admin/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.fa.js b/admin/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.fa.js deleted file mode 100644 index 6503c85..0000000 --- a/admin/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.fa.js +++ /dev/null @@ -1,17 +0,0 @@ -/** - * Persian translation for bootstrap-datepicker - * Mostafa Rokooie <mostafa.rokooie@gmail.com> - */ -;(function($){ - $.fn.datepicker.dates['fa'] = { - days: ["یک‌شنبه", "دوشنبه", "سه‌شنبه", "چهارشنبه", "پنج‌شنبه", "جمعه", "شنبه", "یک‌شنبه"], - daysShort: ["یک", "دو", "سه", "چهار", "پنج", "جمعه", "شنبه", "یک"], - daysMin: ["ی", "د", "س", "چ", "پ", "ج", "ش", "ی"], - months: ["ژانویه", "فوریه", "مارس", "آوریل", "مه", "ژوئن", "ژوئیه", "اوت", "سپتامبر", "اکتبر", "نوامبر", "دسامبر"], - monthsShort: ["ژان", "فور", "مار", "آور", "مه", "ژون", "ژوی", "اوت", "سپت", "اکت", "نوا", "دسا"], - today: "امروز", - clear: "پاک کن", - weekStart: 1, - format: "yyyy/mm/dd" - }; -}(jQuery)); diff --git a/admin/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.fi.js b/admin/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.fi.js deleted file mode 100644 index 220f6b2..0000000 --- a/admin/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.fi.js +++ /dev/null @@ -1,17 +0,0 @@ -/** - * Finnish translation for bootstrap-datepicker - * Jaakko Salonen <https://github.com/jsalonen> - */ -;(function($){ - $.fn.datepicker.dates['fi'] = { - days: ["sunnuntai", "maanantai", "tiistai", "keskiviikko", "torstai", "perjantai", "lauantai"], - daysShort: ["sun", "maa", "tii", "kes", "tor", "per", "lau"], - daysMin: ["su", "ma", "ti", "ke", "to", "pe", "la"], - months: ["tammikuu", "helmikuu", "maaliskuu", "huhtikuu", "toukokuu", "kesäkuu", "heinäkuu", "elokuu", "syyskuu", "lokakuu", "marraskuu", "joulukuu"], - monthsShort: ["tam", "hel", "maa", "huh", "tou", "kes", "hei", "elo", "syy", "lok", "mar", "jou"], - today: "tänään", - clear: "Tyhjennä", - weekStart: 1, - format: "d.m.yyyy" - }; -}(jQuery)); diff --git a/admin/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.fo.js b/admin/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.fo.js deleted file mode 100644 index eaada07..0000000 --- a/admin/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.fo.js +++ /dev/null @@ -1,15 +0,0 @@ -/** - * Faroese translation for bootstrap-datepicker - * Theodor Johannesen <http://github.com/theodorjohannesen> - */ -;(function($){ - $.fn.datepicker.dates['fo'] = { - days: ["Sunnudagur", "Mánadagur", "Týsdagur", "Mikudagur", "Hósdagur", "Fríggjadagur", "Leygardagur"], - daysShort: ["Sun", "Mán", "Týs", "Mik", "Hós", "Frí", "Ley"], - daysMin: ["Su", "Má", "Tý", "Mi", "Hó", "Fr", "Le"], - months: ["Januar", "Februar", "Marts", "Apríl", "Mei", "Juni", "Juli", "August", "Septembur", "Oktobur", "Novembur", "Desembur"], - monthsShort: ["Jan", "Feb", "Mar", "Apr", "Mei", "Jun", "Jul", "Aug", "Sep", "Okt", "Nov", "Des"], - today: "Í Dag", - clear: "Reinsa" - }; -}(jQuery)); diff --git a/admin/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.fr-CH.js b/admin/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.fr-CH.js deleted file mode 100644 index 79b5026..0000000 --- a/admin/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.fr-CH.js +++ /dev/null @@ -1,21 +0,0 @@ -/** - * French (Switzerland) translation for bootstrap-datepicker - * Christoph Jossi <c.jossi@ascami.ch> - * Based on - * French translation for bootstrap-datepicker - * Nico Mollet <nico.mollet@gmail.com> - */ -;(function($){ - $.fn.datepicker.dates['fr'] = { - days: ["Dimanche", "Lundi", "Mardi", "Mercredi", "Jeudi", "Vendredi", "Samedi"], - daysShort: ["Dim", "Lun", "Mar", "Mer", "Jeu", "Ven", "Sam"], - daysMin: ["D", "L", "Ma", "Me", "J", "V", "S"], - months: ["Janvier", "Février", "Mars", "Avril", "Mai", "Juin", "Juillet", "Août", "Septembre", "Octobre", "Novembre", "Décembre"], - monthsShort: ["Jan", "Fév", "Mar", "Avr", "Mai", "Jui", "Jul", "Aou", "Sep", "Oct", "Nov", "Déc"], - today: "Aujourd'hui", - monthsTitle: "Mois", - clear: "Effacer", - weekStart: 1, - format: "dd.mm.yyyy" - }; -}(jQuery)); diff --git a/admin/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.fr.js b/admin/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.fr.js deleted file mode 100644 index df65ed6..0000000 --- a/admin/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.fr.js +++ /dev/null @@ -1,18 +0,0 @@ -/** - * French translation for bootstrap-datepicker - * Nico Mollet <nico.mollet@gmail.com> - */ -;(function($){ - $.fn.datepicker.dates['fr'] = { - days: ["dimanche", "lundi", "mardi", "mercredi", "jeudi", "vendredi", "samedi"], - daysShort: ["dim.", "lun.", "mar.", "mer.", "jeu.", "ven.", "sam."], - daysMin: ["d", "l", "ma", "me", "j", "v", "s"], - months: ["janvier", "février", "mars", "avril", "mai", "juin", "juillet", "août", "septembre", "octobre", "novembre", "décembre"], - monthsShort: ["janv.", "févr.", "mars", "avril", "mai", "juin", "juil.", "août", "sept.", "oct.", "nov.", "déc."], - today: "Aujourd'hui", - monthsTitle: "Mois", - clear: "Effacer", - weekStart: 1, - format: "dd/mm/yyyy" - }; -}(jQuery)); diff --git a/admin/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.gl.js b/admin/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.gl.js deleted file mode 100644 index 592ce00..0000000 --- a/admin/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.gl.js +++ /dev/null @@ -1,13 +0,0 @@ -;(function($){ - $.fn.datepicker.dates['gl'] = { - days: ["Domingo", "Luns", "Martes", "Mércores", "Xoves", "Venres", "Sábado"], - daysShort: ["Dom", "Lun", "Mar", "Mér", "Xov", "Ven", "Sáb"], - daysMin: ["Do", "Lu", "Ma", "Me", "Xo", "Ve", "Sa"], - months: ["Xaneiro", "Febreiro", "Marzo", "Abril", "Maio", "Xuño", "Xullo", "Agosto", "Setembro", "Outubro", "Novembro", "Decembro"], - monthsShort: ["Xan", "Feb", "Mar", "Abr", "Mai", "Xun", "Xul", "Ago", "Sep", "Out", "Nov", "Dec"], - today: "Hoxe", - clear: "Limpar", - weekStart: 1, - format: "dd/mm/yyyy" - }; -}(jQuery)); diff --git a/admin/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.he.js b/admin/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.he.js deleted file mode 100644 index 2e17393..0000000 --- a/admin/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.he.js +++ /dev/null @@ -1,15 +0,0 @@ -/** - * Hebrew translation for bootstrap-datepicker - * Sagie Maoz <sagie@maoz.info> - */ -;(function($){ - $.fn.datepicker.dates['he'] = { - days: ["ראשון", "שני", "שלישי", "רביעי", "חמישי", "שישי", "שבת", "ראשון"], - daysShort: ["א", "ב", "ג", "ד", "ה", "ו", "ש", "א"], - daysMin: ["א", "ב", "ג", "ד", "ה", "ו", "ש", "א"], - months: ["ינואר", "פברואר", "מרץ", "אפריל", "מאי", "יוני", "יולי", "אוגוסט", "ספטמבר", "אוקטובר", "נובמבר", "דצמבר"], - monthsShort: ["ינו", "פבר", "מרץ", "אפר", "מאי", "יונ", "יול", "אוג", "ספט", "אוק", "נוב", "דצמ"], - today: "היום", - rtl: true - }; -}(jQuery)); diff --git a/admin/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.hi.js b/admin/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.hi.js deleted file mode 100644 index c15b485..0000000 --- a/admin/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.hi.js +++ /dev/null @@ -1,18 +0,0 @@ -/** - * Hindi translation for bootstrap-datepicker - * Visar Uruqi <visar.uruqi@gmail.com> - */ -; (function($){ - $.fn.datepicker.dates['hi'] = { - days: ["रविवार", "सोमवार", "मंगलवार", "बुधवार", "गुरुवार", "शुक्रवार", "शनिवार"], - daysShort: ["सूर्य", "सोम", "मंगल", "बुध", "गुरु", "शुक्र", "शनि"], - daysMin: ["र", "सो", "मं", "बु", "गु", "शु", "श"], - months: ["जनवरी", "फ़रवरी", "मार्च", "अप्रैल", "मई", "जून", "जुलाई", "अगस्त", "सितम्बर", "अक्टूबर", "नवंबर", "दिसम्बर"], - monthsShort: ["जन", "फ़रवरी", "मार्च", "अप्रैल", "मई", "जून", "जुलाई", "अगस्त", "सितं", "अक्टूबर", "नवं", "दिसम्बर"], - today: "आज", - monthsTitle: "महीने", - clear: "साफ", - weekStart: 1, - format: "dd / mm / yyyy" - }; -}(jQuery)); diff --git a/admin/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.hr.js b/admin/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.hr.js deleted file mode 100644 index ec72952..0000000 --- a/admin/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.hr.js +++ /dev/null @@ -1,13 +0,0 @@ -/** - * Croatian localisation - */ -;(function($){ - $.fn.datepicker.dates['hr'] = { - days: ["Nedjelja", "Ponedjeljak", "Utorak", "Srijeda", "Četvrtak", "Petak", "Subota"], - daysShort: ["Ned", "Pon", "Uto", "Sri", "Čet", "Pet", "Sub"], - daysMin: ["Ne", "Po", "Ut", "Sr", "Če", "Pe", "Su"], - months: ["Siječanj", "Veljača", "Ožujak", "Travanj", "Svibanj", "Lipanj", "Srpanj", "Kolovoz", "Rujan", "Listopad", "Studeni", "Prosinac"], - monthsShort: ["Sij", "Velj", "Ožu", "Tra", "Svi", "Lip", "Srp", "Kol", "Ruj", "Lis", "Stu", "Pro"], - today: "Danas" - }; -}(jQuery)); diff --git a/admin/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.hu.js b/admin/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.hu.js deleted file mode 100644 index 03a36ee..0000000 --- a/admin/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.hu.js +++ /dev/null @@ -1,18 +0,0 @@ -/** - * Hungarian translation for bootstrap-datepicker - * Sotus László <lacisan@gmail.com> - */ -;(function($){ - $.fn.datepicker.dates['hu'] = { - days: ["vasárnap", "hétfő", "kedd", "szerda", "csütörtök", "péntek", "szombat"], - daysShort: ["vas", "hét", "ked", "sze", "csü", "pén", "szo"], - daysMin: ["V", "H", "K", "Sze", "Cs", "P", "Szo"], - months: ["január", "február", "március", "április", "május", "június", "július", "augusztus", "szeptember", "október", "november", "december"], - monthsShort: ["jan", "feb", "már", "ápr", "máj", "jún", "júl", "aug", "sze", "okt", "nov", "dec"], - today: "ma", - weekStart: 1, - clear: "töröl", - titleFormat: "yyyy. MM", - format: "yyyy.mm.dd" - }; -}(jQuery)); diff --git a/admin/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.hy.js b/admin/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.hy.js deleted file mode 100644 index a67c1b2..0000000 --- a/admin/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.hy.js +++ /dev/null @@ -1,18 +0,0 @@ -/** - * Armenian translation for bootstrap-datepicker - * Hayk Chamyan <hamshen@gmail.com> - */ -;(function($){ - $.fn.datepicker.dates['hy'] = { - days: ["Կիրակի", "Երկուշաբթի", "Երեքշաբթի", "Չորեքշաբթի", "Հինգշաբթի", "Ուրբաթ", "Շաբաթ"], - daysShort: ["Կիր", "Երկ", "Երե", "Չոր", "Հին", "Ուրբ", "Շաբ"], - daysMin: ["Կի", "Եկ", "Եք", "Չո", "Հի", "Ու", "Շա"], - months: ["Հունվար", "Փետրվար", "Մարտ", "Ապրիլ", "Մայիս", "Հունիս", "Հուլիս", "Օգոստոս", "Սեպտեմբեր", "Հոկտեմբեր", "Նոյեմբեր", "Դեկտեմբեր"], - monthsShort: ["Հնվ", "Փետ", "Մար", "Ապր", "Մայ", "Հուն", "Հուլ", "Օգս", "Սեպ", "Հոկ", "Նոյ", "Դեկ"], - today: "Այսօր", - clear: "Ջնջել", - format: "dd.mm.yyyy", - weekStart: 1, - monthsTitle: 'Ամիսնէր' - }; -}(jQuery)); diff --git a/admin/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.id.js b/admin/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.id.js deleted file mode 100644 index 832045a..0000000 --- a/admin/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.id.js +++ /dev/null @@ -1,15 +0,0 @@ -/** - * Bahasa translation for bootstrap-datepicker - * Azwar Akbar <azwar.akbar@gmail.com> - */ -;(function($){ - $.fn.datepicker.dates['id'] = { - days: ["Minggu", "Senin", "Selasa", "Rabu", "Kamis", "Jumat", "Sabtu"], - daysShort: ["Mgu", "Sen", "Sel", "Rab", "Kam", "Jum", "Sab"], - daysMin: ["Mg", "Sn", "Sl", "Ra", "Ka", "Ju", "Sa"], - months: ["Januari", "Februari", "Maret", "April", "Mei", "Juni", "Juli", "Agustus", "September", "Oktober", "November", "Desember"], - monthsShort: ["Jan", "Feb", "Mar", "Apr", "Mei", "Jun", "Jul", "Ags", "Sep", "Okt", "Nov", "Des"], - today: "Hari Ini", - clear: "Kosongkan" - }; -}(jQuery)); diff --git a/admin/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.is.js b/admin/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.is.js deleted file mode 100644 index 2eef5e1..0000000 --- a/admin/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.is.js +++ /dev/null @@ -1,14 +0,0 @@ -/** - * Icelandic translation for bootstrap-datepicker - * Hinrik Örn Sigurðsson <hinrik.sig@gmail.com> - */ -;(function($){ - $.fn.datepicker.dates['is'] = { - days: ["Sunnudagur", "Mánudagur", "Þriðjudagur", "Miðvikudagur", "Fimmtudagur", "Föstudagur", "Laugardagur"], - daysShort: ["Sun", "Mán", "Þri", "Mið", "Fim", "Fös", "Lau"], - daysMin: ["Su", "Má", "Þr", "Mi", "Fi", "Fö", "La"], - months: ["Janúar", "Febrúar", "Mars", "Apríl", "Maí", "Júní", "Júlí", "Ágúst", "September", "Október", "Nóvember", "Desember"], - monthsShort: ["Jan", "Feb", "Mar", "Apr", "Maí", "Jún", "Júl", "Ágú", "Sep", "Okt", "Nóv", "Des"], - today: "Í Dag" - }; -}(jQuery)); diff --git a/admin/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.it-CH.js b/admin/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.it-CH.js deleted file mode 100644 index b4496aa..0000000 --- a/admin/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.it-CH.js +++ /dev/null @@ -1,20 +0,0 @@ -/** - * Italian (Switzerland) translation for bootstrap-datepicker - * Christoph Jossi <c.jossi@ascami.ch> - * Based on - * Italian translation for bootstrap-datepicker - * Enrico Rubboli <rubboli@gmail.com> - */ -;(function($){ - $.fn.datepicker.dates['it'] = { - days: ["Domenica", "Lunedì", "Martedì", "Mercoledì", "Giovedì", "Venerdì", "Sabato"], - daysShort: ["Dom", "Lun", "Mar", "Mer", "Gio", "Ven", "Sab"], - daysMin: ["Do", "Lu", "Ma", "Me", "Gi", "Ve", "Sa"], - months: ["Gennaio", "Febbraio", "Marzo", "Aprile", "Maggio", "Giugno", "Luglio", "Agosto", "Settembre", "Ottobre", "Novembre", "Dicembre"], - monthsShort: ["Gen", "Feb", "Mar", "Apr", "Mag", "Giu", "Lug", "Ago", "Set", "Ott", "Nov", "Dic"], - today: "Oggi", - clear: "Cancella", - weekStart: 1, - format: "dd.mm.yyyy" - }; -}(jQuery)); diff --git a/admin/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.it.js b/admin/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.it.js deleted file mode 100644 index 1722031..0000000 --- a/admin/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.it.js +++ /dev/null @@ -1,18 +0,0 @@ -/** - * Italian translation for bootstrap-datepicker - * Enrico Rubboli <rubboli@gmail.com> - */ -;(function($){ - $.fn.datepicker.dates['it'] = { - days: ["Domenica", "Lunedì", "Martedì", "Mercoledì", "Giovedì", "Venerdì", "Sabato"], - daysShort: ["Dom", "Lun", "Mar", "Mer", "Gio", "Ven", "Sab"], - daysMin: ["Do", "Lu", "Ma", "Me", "Gi", "Ve", "Sa"], - months: ["Gennaio", "Febbraio", "Marzo", "Aprile", "Maggio", "Giugno", "Luglio", "Agosto", "Settembre", "Ottobre", "Novembre", "Dicembre"], - monthsShort: ["Gen", "Feb", "Mar", "Apr", "Mag", "Giu", "Lug", "Ago", "Set", "Ott", "Nov", "Dic"], - today: "Oggi", - monthsTitle: "Mesi", - clear: "Cancella", - weekStart: 1, - format: "dd/mm/yyyy" - }; -}(jQuery)); diff --git a/admin/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.ja.js b/admin/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.ja.js deleted file mode 100644 index c64a614..0000000 --- a/admin/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.ja.js +++ /dev/null @@ -1,17 +0,0 @@ -/** - * Japanese translation for bootstrap-datepicker - * Norio Suzuki <https://github.com/suzuki/> - */ -;(function($){ - $.fn.datepicker.dates['ja'] = { - days: ["日曜", "月曜", "火曜", "水曜", "木曜", "金曜", "土曜"], - daysShort: ["日", "月", "火", "水", "木", "金", "土"], - daysMin: ["日", "月", "火", "水", "木", "金", "土"], - months: ["1月", "2月", "3月", "4月", "5月", "6月", "7月", "8月", "9月", "10月", "11月", "12月"], - monthsShort: ["1月", "2月", "3月", "4月", "5月", "6月", "7月", "8月", "9月", "10月", "11月", "12月"], - today: "今日", - format: "yyyy/mm/dd", - titleFormat: "yyyy年mm月", - clear: "クリア" - }; -}(jQuery)); diff --git a/admin/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.ka.js b/admin/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.ka.js deleted file mode 100644 index c49e453..0000000 --- a/admin/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.ka.js +++ /dev/null @@ -1,17 +0,0 @@ -/** - * Georgian translation for bootstrap-datepicker - * Levan Melikishvili <levani0101@yahoo.com> - */ -;(function($){ - $.fn.datepicker.dates['ka'] = { - days: ["კვირა", "ორშაბათი", "სამშაბათი", "ოთხშაბათი", "ხუთშაბათი", "პარასკევი", "შაბათი"], - daysShort: ["კვი", "ორშ", "სამ", "ოთხ", "ხუთ", "პარ", "შაბ"], - daysMin: ["კვ", "ორ", "სა", "ოთ", "ხუ", "პა", "შა"], - months: ["იანვარი", "თებერვალი", "მარტი", "აპრილი", "მაისი", "ივნისი", "ივლისი", "აგვისტო", "სექტემბერი", "ოქტომბერი", "ნოემბერი", "დეკემბერი"], - monthsShort: ["იან", "თებ", "მარ", "აპრ", "მაი", "ივნ", "ივლ", "აგვ", "სექ", "ოქტ", "ნოე", "დეკ"], - today: "დღეს", - clear: "გასუფთავება", - weekStart: 1, - format: "dd.mm.yyyy" - }; -}(jQuery)); diff --git a/admin/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.kh.js b/admin/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.kh.js deleted file mode 100644 index 2c9eb0f..0000000 --- a/admin/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.kh.js +++ /dev/null @@ -1,21 +0,0 @@ -/** - * Cambodia (Khmer) translation for bootstrap-datepicker - * Lytay TOUCH <lytaytouch@gmail.com> - * - * DEPRECATED: This language code 'kh' is deprecated and will be removed in 2.0. - * Khmer support is now in a 'km' translation file to follow the ISO language - * code - http://en.wikipedia.org/wiki/List_of_ISO_639-1_codes - */ -;(function($){ - $.fn.datepicker.dates['kh'] = { - days: ["អាទិត្យ", "ចន្ទ", "អង្គារ", "ពុធ", "ព្រហស្បតិ៍", "សុក្រ", "សៅរ៍"], - daysShort: ["អា.ទិ", "ចន្ទ", "អង្គារ", "ពុធ", "ព្រ.ហ", "សុក្រ", "សៅរ៍"], - daysMin: ["អា.ទិ", "ចន្ទ", "អង្គារ", "ពុធ", "ព្រ.ហ", "សុក្រ", "សៅរ៍"], - months: ["មករា", "កុម្ភះ", "មិនា", "មេសា", "ឧសភា", "មិថុនា", "កក្កដា", "សីហា", "កញ្ញា", "តុលា", "វិច្ឆិកា", "ធ្នូ"], - monthsShort: ["មករា", "កុម្ភះ", "មិនា", "មេសា", "ឧសភា", "មិថុនា", "កក្កដា", "សីហា", "កញ្ញា", "តុលា", "វិច្ឆិកា", "ធ្នូ"], - today: "ថ្ងៃនេះ", - clear: "សំអាត" - }; - - $.fn.datepicker.deprecated('The language code "kh" is deprecated and will be removed in 2.0. For Khmer support use "km" instead.'); -}(jQuery)); diff --git a/admin/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.kk.js b/admin/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.kk.js deleted file mode 100644 index 9ffa8ca..0000000 --- a/admin/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.kk.js +++ /dev/null @@ -1,15 +0,0 @@ -/** - * Kazakh translation for bootstrap-datepicker - * Yerzhan Tolekov <era.tolekov@gmail.com> - */ -;(function($){ - $.fn.datepicker.dates['kk'] = { - days: ["Жексенбі", "Дүйсенбі", "Сейсенбі", "Сәрсенбі", "Бейсенбі", "Жұма", "Сенбі"], - daysShort: ["Жек", "Дүй", "Сей", "Сәр", "Бей", "Жұм", "Сен"], - daysMin: ["Жк", "Дс", "Сс", "Ср", "Бс", "Жм", "Сн"], - months: ["Қаңтар", "Ақпан", "Наурыз", "Сәуір", "Мамыр", "Маусым", "Шілде", "Тамыз", "Қыркүйек", "Қазан", "Қараша", "Желтоқсан"], - monthsShort: ["Қаң", "Ақп", "Нау", "Сәу", "Мам", "Мау", "Шіл", "Там", "Қыр", "Қаз", "Қар", "Жел"], - today: "Бүгін", - weekStart: 1 - }; -}(jQuery)); diff --git a/admin/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.km.js b/admin/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.km.js deleted file mode 100644 index 8a71c8e..0000000 --- a/admin/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.km.js +++ /dev/null @@ -1,15 +0,0 @@ -/** - * Khmer translation for bootstrap-datepicker - * This is the Updated Version of: https://github.com/uxsolutions/bootstrap-datepicker/blob/71308d42cce9524284c50c6fac50422d1790ac0f/js/locales/bootstrap-datepicker.kh.js - */ -;(function($){ - $.fn.datepicker.dates['km'] = { - days: ["អាទិត្យ", "ចន្ទ", "អង្គារ", "ពុធ", "ព្រហស្បតិ៍", "សុក្រ", "សៅរ៍"], - daysShort: ["អា.ទិ", "ចន្ទ", "អង្គារ", "ពុធ", "ព្រ.ហ", "សុក្រ", "សៅរ៍"], - daysMin: ["អា.ទិ", "ចន្ទ", "អង្គារ", "ពុធ", "ព្រ.ហ", "សុក្រ", "សៅរ៍"], - months: ["មករា", "កុម្ភះ", "មិនា", "មេសា", "ឧសភា", "មិថុនា", "កក្កដា", "សីហា", "កញ្ញា", "តុលា", "វិច្ឆិកា", "ធ្នូ"], - monthsShort: ["មករា", "កុម្ភះ", "មិនា", "មេសា", "ឧសភា", "មិថុនា", "កក្កដា", "សីហា", "កញ្ញា", "តុលា", "វិច្ឆិកា", "ធ្នូ"], - today: "ថ្ងៃនេះ", - clear: "សំអាត" - }; -}(jQuery)); diff --git a/admin/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.ko.js b/admin/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.ko.js deleted file mode 100644 index 95514b2..0000000 --- a/admin/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.ko.js +++ /dev/null @@ -1,18 +0,0 @@ -/** - * Korean translation for bootstrap-datepicker - * This is a port from https://github.com/moment/moment/blob/develop/src/locale/ko.js - */ -;(function($){ - $.fn.datepicker.dates['ko'] = { - days: ["일요일", "월요일", "화요일", "수요일", "목요일", "금요일", "토요일"], - daysShort: ["일", "월", "화", "수", "목", "금", "토"], - daysMin: ["일", "월", "화", "수", "목", "금", "토"], - months: ["1월", "2월", "3월", "4월", "5월", "6월", "7월", "8월", "9월", "10월", "11월", "12월"], - monthsShort: ["1월", "2월", "3월", "4월", "5월", "6월", "7월", "8월", "9월", "10월", "11월", "12월"], - today: "오늘", - clear: "삭제", - format: "yyyy-mm-dd", - titleFormat: "yyyy년mm월", - weekStart: 0 - }; -}(jQuery)); diff --git a/admin/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.kr.js b/admin/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.kr.js deleted file mode 100644 index 8f9cda9..0000000 --- a/admin/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.kr.js +++ /dev/null @@ -1,19 +0,0 @@ -/** - * Korean translation for bootstrap-datepicker - * Gu Youn <http://github.com/guyoun> - * - * DEPRECATED: This language code 'kr' is deprecated and will be removed in 2.0. - * Korean support is now in a 'ko' translation file to follow the ISO language - * code - http://en.wikipedia.org/wiki/List_of_ISO_639-1_codes - */ -;(function($){ - $.fn.datepicker.dates['kr'] = { - days: ["일요일", "월요일", "화요일", "수요일", "목요일", "금요일", "토요일"], - daysShort: ["일", "월", "화", "수", "목", "금", "토"], - daysMin: ["일", "월", "화", "수", "목", "금", "토"], - months: ["1월", "2월", "3월", "4월", "5월", "6월", "7월", "8월", "9월", "10월", "11월", "12월"], - monthsShort: ["1월", "2월", "3월", "4월", "5월", "6월", "7월", "8월", "9월", "10월", "11월", "12월"] - }; - - $.fn.datepicker.deprecated('The language code "kr" is deprecated and will be removed in 2.0. For korean support use "ko" instead.'); -}(jQuery)); diff --git a/admin/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.lt.js b/admin/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.lt.js deleted file mode 100644 index 4845f26..0000000 --- a/admin/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.lt.js +++ /dev/null @@ -1,19 +0,0 @@ -/** - * Lithuanian translation for bootstrap-datepicker - * Šarūnas Gliebus <ssharunas@yahoo.co.uk> - */ - -;(function($){ - $.fn.datepicker.dates['lt'] = { - days: ["Sekmadienis", "Pirmadienis", "Antradienis", "Trečiadienis", "Ketvirtadienis", "Penktadienis", "Šeštadienis"], - daysShort: ["S", "Pr", "A", "T", "K", "Pn", "Š"], - daysMin: ["Sk", "Pr", "An", "Tr", "Ke", "Pn", "Št"], - months: ["Sausis", "Vasaris", "Kovas", "Balandis", "Gegužė", "Birželis", "Liepa", "Rugpjūtis", "Rugsėjis", "Spalis", "Lapkritis", "Gruodis"], - monthsShort: ["Sau", "Vas", "Kov", "Bal", "Geg", "Bir", "Lie", "Rugp", "Rugs", "Spa", "Lap", "Gru"], - today: "Šiandien", - monthsTitle:"Mėnesiai", - clear:"Išvalyti", - weekStart: 1, - format:"yyyy-mm-dd" - }; -}(jQuery)); diff --git a/admin/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.lv.js b/admin/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.lv.js deleted file mode 100644 index d1125f4..0000000 --- a/admin/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.lv.js +++ /dev/null @@ -1,17 +0,0 @@ -/** - * Latvian translation for bootstrap-datepicker - * Artis Avotins <artis@apit.lv> - */ - -;(function($){ - $.fn.datepicker.dates['lv'] = { - days: ["Svētdiena", "Pirmdiena", "Otrdiena", "Trešdiena", "Ceturtdiena", "Piektdiena", "Sestdiena"], - daysShort: ["Sv", "P", "O", "T", "C", "Pk", "S"], - daysMin: ["Sv", "Pr", "Ot", "Tr", "Ce", "Pk", "Se"], - months: ["Janvāris", "Februāris", "Marts", "Aprīlis", "Maijs", "Jūnijs", "Jūlijs", "Augusts", "Septembris", "Oktobris", "Novembris", "Decembris"], - monthsShort: ["Jan", "Feb", "Mar", "Apr", "Mai", "Jūn", "Jūl", "Aug", "Sep", "Okt", "Nov", "Dec"], - today: "Šodien", - clear: "Nodzēst", - weekStart: 1 - }; -}(jQuery)); diff --git a/admin/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.me.js b/admin/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.me.js deleted file mode 100644 index e581325..0000000 --- a/admin/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.me.js +++ /dev/null @@ -1,17 +0,0 @@ -/** - * Montenegrin translation for bootstrap-datepicker - * Miodrag Nikač <miodrag@restartit.me> - */ -;(function($){ - $.fn.datepicker.dates['me'] = { - days: ["Nedjelja","Ponedjeljak", "Utorak", "Srijeda", "Četvrtak", "Petak", "Subota"], - daysShort: ["Ned", "Pon", "Uto", "Sri", "Čet", "Pet", "Sub"], - daysMin: ["Ne", "Po", "Ut", "Sr", "Če", "Pe", "Su"], - months: ["Januar", "Februar", "Mart", "April", "Maj", "Jun", "Jul", "Avgust", "Septembar", "Oktobar", "Novembar", "Decembar"], - monthsShort: ["Jan", "Feb", "Mar", "Apr", "Maj", "Jun", "Jul", "Avg", "Sep", "Okt", "Nov", "Dec"], - today: "Danas", - weekStart: 1, - clear: "Izbriši", - format: "dd.mm.yyyy" - }; -}(jQuery)); diff --git a/admin/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.mk.js b/admin/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.mk.js deleted file mode 100644 index 2f041ba..0000000 --- a/admin/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.mk.js +++ /dev/null @@ -1,15 +0,0 @@ -/** - * Macedonian translation for bootstrap-datepicker - * Marko Aleksic <psybaron@gmail.com> - */ -;(function($){ - $.fn.datepicker.dates['mk'] = { - days: ["Недела", "Понеделник", "Вторник", "Среда", "Четврток", "Петок", "Сабота"], - daysShort: ["Нед", "Пон", "Вто", "Сре", "Чет", "Пет", "Саб"], - daysMin: ["Не", "По", "Вт", "Ср", "Че", "Пе", "Са"], - months: ["Јануари", "Февруари", "Март", "Април", "Мај", "Јуни", "Јули", "Август", "Септември", "Октомври", "Ноември", "Декември"], - monthsShort: ["Јан", "Фев", "Мар", "Апр", "Мај", "Јун", "Јул", "Авг", "Сеп", "Окт", "Ное", "Дек"], - today: "Денес", - format: "dd.mm.yyyy" - }; -}(jQuery)); diff --git a/admin/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.mn.js b/admin/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.mn.js deleted file mode 100644 index b3a66e8..0000000 --- a/admin/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.mn.js +++ /dev/null @@ -1,17 +0,0 @@ -/** - * Mongolian translation for bootstrap-datepicker - * Andrey Torsunov <andrey.torsunov@gmail.com> - */ -;(function($){ - $.fn.datepicker.dates['mn'] = { - days: ["Ням", "Даваа", "Мягмар", "Лхагва", "Пүрэв", "Баасан", "Бямба"], - daysShort: ["Ням", "Дав", "Мяг", "Лха", "Пүр", "Баа", "Бям"], - daysMin: ["Ня", "Да", "Мя", "Лх", "Пү", "Ба", "Бя"], - months: ["Хулгана", "Үхэр", "Бар", "Туулай", "Луу", "Могой", "Морь", "Хонь", "Бич", "Тахиа", "Нохой", "Гахай"], - monthsShort: ["Хул", "Үхэ", "Бар", "Туу", "Луу", "Мог", "Мор", "Хон", "Бич", "Тах", "Нох", "Гах"], - today: "Өнөөдөр", - clear: "Тодорхой", - format: "yyyy.mm.dd", - weekStart: 1 - }; -}(jQuery)); diff --git a/admin/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.ms.js b/admin/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.ms.js deleted file mode 100644 index 8bb4194..0000000 --- a/admin/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.ms.js +++ /dev/null @@ -1,15 +0,0 @@ -/** - * Malay translation for bootstrap-datepicker - * Ateman Faiz <noorulfaiz@gmail.com> - */ -;(function($){ - $.fn.datepicker.dates['ms'] = { - days: ["Ahad", "Isnin", "Selasa", "Rabu", "Khamis", "Jumaat", "Sabtu"], - daysShort: ["Aha", "Isn", "Sel", "Rab", "Kha", "Jum", "Sab"], - daysMin: ["Ah", "Is", "Se", "Ra", "Kh", "Ju", "Sa"], - months: ["Januari", "Februari", "Mac", "April", "Mei", "Jun", "Julai", "Ogos", "September", "Oktober", "November", "Disember"], - monthsShort: ["Jan", "Feb", "Mar", "Apr", "Mei", "Jun", "Jul", "Ogo", "Sep", "Okt", "Nov", "Dis"], - today: "Hari Ini", - clear: "Bersihkan" - }; -}(jQuery)); diff --git a/admin/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.nb.js b/admin/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.nb.js deleted file mode 100644 index 9414edd..0000000 --- a/admin/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.nb.js +++ /dev/null @@ -1,15 +0,0 @@ -/** - * Norwegian (bokmål) translation for bootstrap-datepicker - * Fredrik Sundmyhr <http://github.com/fsundmyhr> - */ -;(function($){ - $.fn.datepicker.dates['nb'] = { - days: ["Søndag", "Mandag", "Tirsdag", "Onsdag", "Torsdag", "Fredag", "Lørdag"], - daysShort: ["Søn", "Man", "Tir", "Ons", "Tor", "Fre", "Lør"], - daysMin: ["Sø", "Ma", "Ti", "On", "To", "Fr", "Lø"], - months: ["Januar", "Februar", "Mars", "April", "Mai", "Juni", "Juli", "August", "September", "Oktober", "November", "Desember"], - monthsShort: ["Jan", "Feb", "Mar", "Apr", "Mai", "Jun", "Jul", "Aug", "Sep", "Okt", "Nov", "Des"], - today: "I Dag", - format: "dd.mm.yyyy" - }; -}(jQuery)); diff --git a/admin/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.nl-BE.js b/admin/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.nl-BE.js deleted file mode 100644 index aadc374..0000000 --- a/admin/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.nl-BE.js +++ /dev/null @@ -1,18 +0,0 @@ -/** - * Belgium-Dutch translation for bootstrap-datepicker - * Julien Poulin <poulin_julien@hotmail.com> - */ -;(function($){ - $.fn.datepicker.dates['nl-BE'] = { - days: ["zondag", "maandag", "dinsdag", "woensdag", "donderdag", "vrijdag", "zaterdag"], - daysShort: ["zo", "ma", "di", "wo", "do", "vr", "za"], - daysMin: ["zo", "ma", "di", "wo", "do", "vr", "za"], - months: ["januari", "februari", "maart", "april", "mei", "juni", "juli", "augustus", "september", "oktober", "november", "december"], - monthsShort: ["jan", "feb", "mrt", "apr", "mei", "jun", "jul", "aug", "sep", "okt", "nov", "dec"], - today: "Vandaag", - monthsTitle: "Maanden", - clear: "Leegmaken", - weekStart: 1, - format: "dd/mm/yyyy" - }; -}(jQuery)); diff --git a/admin/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.nl.js b/admin/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.nl.js deleted file mode 100644 index bef19cf..0000000 --- a/admin/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.nl.js +++ /dev/null @@ -1,18 +0,0 @@ -/** - * Dutch translation for bootstrap-datepicker - * Reinier Goltstein <mrgoltstein@gmail.com> - */ -;(function($){ - $.fn.datepicker.dates['nl'] = { - days: ["zondag", "maandag", "dinsdag", "woensdag", "donderdag", "vrijdag", "zaterdag"], - daysShort: ["zo", "ma", "di", "wo", "do", "vr", "za"], - daysMin: ["zo", "ma", "di", "wo", "do", "vr", "za"], - months: ["januari", "februari", "maart", "april", "mei", "juni", "juli", "augustus", "september", "oktober", "november", "december"], - monthsShort: ["jan", "feb", "mrt", "apr", "mei", "jun", "jul", "aug", "sep", "okt", "nov", "dec"], - today: "Vandaag", - monthsTitle: "Maanden", - clear: "Wissen", - weekStart: 1, - format: "dd-mm-yyyy" - }; -}(jQuery)); diff --git a/admin/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.no.js b/admin/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.no.js deleted file mode 100644 index 75890bd..0000000 --- a/admin/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.no.js +++ /dev/null @@ -1,16 +0,0 @@ -/** - * Norwegian translation for bootstrap-datepicker - **/ -;(function($){ - $.fn.datepicker.dates['no'] = { - days: ['Søndag', 'Mandag', 'Tirsdag', 'Onsdag', 'Torsdag', 'Fredag', 'Lørdag'], - daysShort: ['Søn', 'Man', 'Tir', 'Ons', 'Tor', 'Fre', 'Lør'], - daysMin: ['Sø', 'Ma', 'Ti', 'On', 'To', 'Fr', 'Lø'], - months: ['Januar', 'Februar', 'Mars', 'April', 'Mai', 'Juni', 'Juli', 'August', 'September', 'Oktober', 'November', 'Desember'], - monthsShort: ['Jan', 'Feb', 'Mar', 'Apr', 'Mai', 'Jun', 'Jul', 'Aug', 'Sep', 'Okt', 'Nov', 'Des'], - today: 'I dag', - clear: 'Nullstill', - weekStart: 1, - format: 'dd.mm.yyyy' - }; -}(jQuery)); diff --git a/admin/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.oc.js b/admin/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.oc.js deleted file mode 100644 index fada007..0000000 --- a/admin/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.oc.js +++ /dev/null @@ -1,17 +0,0 @@ -/** - * Occitan translation for bootstrap-datepicker - */ -;(function($){ - $.fn.datepicker.dates['oc'] = { - days: ["Dimenge", "Diluns", "Dimars", "Dimècres", "Dijòus", "Divendres", "Dissabte"], - daysShort: ["Dim", "Dil", "Dmr", "Dmc", "Dij", "Div", "Dis"], - daysMin: ["dg", "dl", "dr", "dc", "dj", "dv", "ds"], - months: ["Genièr", "Febrièr", "Març", "Abrial", "Mai", "Junh", "Julhet", "Agost", "Setembre", "Octobre", "Novembre", "Decembre"], - monthsShort: ["Gen", "Feb", "Mar", "Abr", "Mai", "Jun", "Jul", "Ago", "Set", "Oct", "Nov", "Dec"], - today: "Uèi", - monthsTitle: "Meses", - clear: "Escafar", - weekStart: 1, - format: "dd/mm/yyyy" - }; -}(jQuery)); diff --git a/admin/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.pl.js b/admin/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.pl.js deleted file mode 100644 index 26c7ae8..0000000 --- a/admin/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.pl.js +++ /dev/null @@ -1,17 +0,0 @@ -/** - * Polish translation for bootstrap-datepicker - * Robert <rtpm@gazeta.pl> - */ -;(function($){ - $.fn.datepicker.dates['pl'] = { - days: ["Niedziela", "Poniedziałek", "Wtorek", "Środa", "Czwartek", "Piątek", "Sobota"], - daysShort: ["Niedz.", "Pon.", "Wt.", "Śr.", "Czw.", "Piąt.", "Sob."], - daysMin: ["Ndz.", "Pn.", "Wt.", "Śr.", "Czw.", "Pt.", "Sob."], - months: ["Styczeń", "Luty", "Marzec", "Kwiecień", "Maj", "Czerwiec", "Lipiec", "Sierpień", "Wrzesień", "Październik", "Listopad", "Grudzień"], - monthsShort: ["Sty.", "Lut.", "Mar.", "Kwi.", "Maj", "Cze.", "Lip.", "Sie.", "Wrz.", "Paź.", "Lis.", "Gru."], - today: "Dzisiaj", - weekStart: 1, - clear: "Wyczyść", - format: "dd.mm.yyyy" - }; -}(jQuery)); diff --git a/admin/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.pt-BR.js b/admin/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.pt-BR.js deleted file mode 100644 index 852160b..0000000 --- a/admin/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.pt-BR.js +++ /dev/null @@ -1,17 +0,0 @@ -/** - * Brazilian translation for bootstrap-datepicker - * Cauan Cabral <cauan@radig.com.br> - */ -;(function($){ - $.fn.datepicker.dates['pt-BR'] = { - days: ["Domingo", "Segunda", "Terça", "Quarta", "Quinta", "Sexta", "Sábado"], - daysShort: ["Dom", "Seg", "Ter", "Qua", "Qui", "Sex", "Sáb"], - daysMin: ["Do", "Se", "Te", "Qu", "Qu", "Se", "Sa"], - months: ["Janeiro", "Fevereiro", "Março", "Abril", "Maio", "Junho", "Julho", "Agosto", "Setembro", "Outubro", "Novembro", "Dezembro"], - monthsShort: ["Jan", "Fev", "Mar", "Abr", "Mai", "Jun", "Jul", "Ago", "Set", "Out", "Nov", "Dez"], - today: "Hoje", - monthsTitle: "Meses", - clear: "Limpar", - format: "dd/mm/yyyy" - }; -}(jQuery)); diff --git a/admin/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.pt.js b/admin/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.pt.js deleted file mode 100644 index 011e01e..0000000 --- a/admin/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.pt.js +++ /dev/null @@ -1,18 +0,0 @@ -/** - * Portuguese translation for bootstrap-datepicker - * Original code: Cauan Cabral <cauan@radig.com.br> - * Tiago Melo <tiago.blackcode@gmail.com> - */ -;(function($){ - $.fn.datepicker.dates['pt'] = { - days: ["Domingo", "Segunda", "Terça", "Quarta", "Quinta", "Sexta", "Sábado"], - daysShort: ["Dom", "Seg", "Ter", "Qua", "Qui", "Sex", "Sáb"], - daysMin: ["Do", "Se", "Te", "Qu", "Qu", "Se", "Sa"], - months: ["Janeiro", "Fevereiro", "Março", "Abril", "Maio", "Junho", "Julho", "Agosto", "Setembro", "Outubro", "Novembro", "Dezembro"], - monthsShort: ["Jan", "Fev", "Mar", "Abr", "Mai", "Jun", "Jul", "Ago", "Set", "Out", "Nov", "Dez"], - today: "Hoje", - monthsTitle: "Meses", - clear: "Limpar", - format: "dd/mm/yyyy" - }; -}(jQuery)); diff --git a/admin/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.ro.js b/admin/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.ro.js deleted file mode 100644 index 6637e99..0000000 --- a/admin/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.ro.js +++ /dev/null @@ -1,17 +0,0 @@ -/** - * Romanian translation for bootstrap-datepicker - * Cristian Vasile <cristi.mie@gmail.com> - */ -;(function($){ - $.fn.datepicker.dates['ro'] = { - days: ["Duminică", "Luni", "Marţi", "Miercuri", "Joi", "Vineri", "Sâmbătă"], - daysShort: ["Dum", "Lun", "Mar", "Mie", "Joi", "Vin", "Sâm"], - daysMin: ["Du", "Lu", "Ma", "Mi", "Jo", "Vi", "Sâ"], - months: ["Ianuarie", "Februarie", "Martie", "Aprilie", "Mai", "Iunie", "Iulie", "August", "Septembrie", "Octombrie", "Noiembrie", "Decembrie"], - monthsShort: ["Ian", "Feb", "Mar", "Apr", "Mai", "Iun", "Iul", "Aug", "Sep", "Oct", "Nov", "Dec"], - today: "Astăzi", - clear: "Șterge", - weekStart: 1, - format: "dd/mm/yyyy" - }; -}(jQuery)); diff --git a/admin/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.rs-latin.js b/admin/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.rs-latin.js deleted file mode 100644 index 48e7cea..0000000 --- a/admin/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.rs-latin.js +++ /dev/null @@ -1,20 +0,0 @@ -/** - * Serbian latin translation for bootstrap-datepicker - * Bojan Milosavlević <milboj@gmail.com> - * - * DEPRECATED: This language code 'rs-latin' is deprecated (invalid serbian language code) and will be removed in 2.0. - */ -;(function($){ - $.fn.datepicker.dates['rs-latin'] = { - days: ["Nedelja","Ponedeljak", "Utorak", "Sreda", "Četvrtak", "Petak", "Subota"], - daysShort: ["Ned", "Pon", "Uto", "Sre", "Čet", "Pet", "Sub"], - daysMin: ["N", "Po", "U", "Sr", "Č", "Pe", "Su"], - months: ["Januar", "Februar", "Mart", "April", "Maj", "Jun", "Jul", "Avgust", "Septembar", "Oktobar", "Novembar", "Decembar"], - monthsShort: ["Jan", "Feb", "Mar", "Apr", "Maj", "Jun", "Jul", "Avg", "Sep", "Okt", "Nov", "Dec"], - today: "Danas", - weekStart: 1, - format: "dd.mm.yyyy" - }; - - $.fn.datepicker.deprecated('This language code "rs-latin" is deprecated (invalid serbian language code) and will be removed in 2.0. For Serbian latin support use "sr-latin" instead.'); -}(jQuery)); diff --git a/admin/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.rs.js b/admin/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.rs.js deleted file mode 100644 index 96ef403..0000000 --- a/admin/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.rs.js +++ /dev/null @@ -1,20 +0,0 @@ -/** - * Serbian cyrillic translation for bootstrap-datepicker - * Bojan Milosavlević <milboj@gmail.com> - * - * DEPRECATED: This language code 'rs' is deprecated (invalid serbian language code) and will be removed in 2.0. - */ -;(function($){ - $.fn.datepicker.dates['rs'] = { - days: ["Недеља","Понедељак", "Уторак", "Среда", "Четвртак", "Петак", "Субота"], - daysShort: ["Нед", "Пон", "Уто", "Сре", "Чет", "Пет", "Суб"], - daysMin: ["Н", "По", "У", "Ср", "Ч", "Пе", "Су"], - months: ["Јануар", "Фебруар", "Март", "Април", "Мај", "Јун", "Јул", "Август", "Септембар", "Октобар", "Новембар", "Децембар"], - monthsShort: ["Јан", "Феб", "Мар", "Апр", "Мај", "Јун", "Јул", "Авг", "Сеп", "Окт", "Нов", "Дец"], - today: "Данас", - weekStart: 1, - format: "dd.mm.yyyy" - }; - - $.fn.datepicker.deprecated('This language code "rs" is deprecated (invalid serbian language code) and will be removed in 2.0. For Serbian support use "sr" instead.'); -}(jQuery)); diff --git a/admin/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.ru.js b/admin/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.ru.js deleted file mode 100644 index 0c793ce..0000000 --- a/admin/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.ru.js +++ /dev/null @@ -1,18 +0,0 @@ -/** - * Russian translation for bootstrap-datepicker - * Victor Taranenko <darwin@snowdale.com> - */ -;(function($){ - $.fn.datepicker.dates['ru'] = { - days: ["Воскресенье", "Понедельник", "Вторник", "Среда", "Четверг", "Пятница", "Суббота"], - daysShort: ["Вск", "Пнд", "Втр", "Срд", "Чтв", "Птн", "Суб"], - daysMin: ["Вс", "Пн", "Вт", "Ср", "Чт", "Пт", "Сб"], - months: ["Январь", "Февраль", "Март", "Апрель", "Май", "Июнь", "Июль", "Август", "Сентябрь", "Октябрь", "Ноябрь", "Декабрь"], - monthsShort: ["Янв", "Фев", "Мар", "Апр", "Май", "Июн", "Июл", "Авг", "Сен", "Окт", "Ноя", "Дек"], - today: "Сегодня", - clear: "Очистить", - format: "dd.mm.yyyy", - weekStart: 1, - monthsTitle: 'Месяцы' - }; -}(jQuery)); diff --git a/admin/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.si.js b/admin/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.si.js deleted file mode 100644 index 806e580..0000000 --- a/admin/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.si.js +++ /dev/null @@ -1,18 +0,0 @@ -/** - * Sinhala translation for bootstrap-datepicker - * Chanaka Fernando <chanaka.fernando@hotmail.com> - */ -;(function($){ - $.fn.datepicker.dates['si'] = { - days: ["ඉරිදා", "සඳුදා", "අඟහරුවාදා", "බදාදා", "බ්‍රහස්පතින්දා", "සිකුරාදා", "සෙනසුරාදා"], - daysShort: ["ඉරි", "සඳු", "අඟ", "බදා", "බ්‍රහ", "සිකු", "සෙන"], - daysMin: ["ඉ", "ස", "අ", "බ", "බ්‍ර", "සි", "සෙ"], - months: ["ජනවාරි", "පෙබරවාරි", "මාර්තු", "අප්‍රේල්", "මැයි", "ජුනි", "ජූලි", "අගෝස්තු", "සැප්තැම්බර්", "ඔක්තෝබර්", "නොවැම්බර්", "දෙසැම්බර්"], - monthsShort: ["ජන", "පෙබ", "මාර්", "අප්‍රේ", "මැයි", "ජුනි", "ජූලි", "අගෝ", "සැප්", "ඔක්", "නොවැ", "දෙසැ"], - today: "අද", - monthsTitle: "මාස", - clear: "මකන්න", - weekStart: 0, - format: "yyyy-mm-dd" - }; -}(jQuery)); diff --git a/admin/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.sk.js b/admin/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.sk.js deleted file mode 100644 index 3881386..0000000 --- a/admin/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.sk.js +++ /dev/null @@ -1,18 +0,0 @@ -/** - * Slovak translation for bootstrap-datepicker - * Marek Lichtner <marek@licht.sk> - * Fixes by Michal Remiš <michal.remis@gmail.com> - */ -;(function($){ - $.fn.datepicker.dates["sk"] = { - days: ["Nedeľa", "Pondelok", "Utorok", "Streda", "Štvrtok", "Piatok", "Sobota"], - daysShort: ["Ned", "Pon", "Uto", "Str", "Štv", "Pia", "Sob"], - daysMin: ["Ne", "Po", "Ut", "St", "Št", "Pia", "So"], - months: ["Január", "Február", "Marec", "Apríl", "Máj", "Jún", "Júl", "August", "September", "Október", "November", "December"], - monthsShort: ["Jan", "Feb", "Mar", "Apr", "Máj", "Jún", "Júl", "Aug", "Sep", "Okt", "Nov", "Dec"], - today: "Dnes", - clear: "Vymazať", - weekStart: 1, - format: "d.m.yyyy" - }; -}(jQuery)); diff --git a/admin/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.sl.js b/admin/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.sl.js deleted file mode 100644 index 4a33748..0000000 --- a/admin/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.sl.js +++ /dev/null @@ -1,15 +0,0 @@ -/** - * Slovene translation for bootstrap-datepicker - * Gregor Rudolf <gregor.rudolf@gmail.com> - */ -;(function($){ - $.fn.datepicker.dates['sl'] = { - days: ["Nedelja", "Ponedeljek", "Torek", "Sreda", "Četrtek", "Petek", "Sobota"], - daysShort: ["Ned", "Pon", "Tor", "Sre", "Čet", "Pet", "Sob"], - daysMin: ["Ne", "Po", "To", "Sr", "Če", "Pe", "So"], - months: ["Januar", "Februar", "Marec", "April", "Maj", "Junij", "Julij", "Avgust", "September", "Oktober", "November", "December"], - monthsShort: ["Jan", "Feb", "Mar", "Apr", "Maj", "Jun", "Jul", "Avg", "Sep", "Okt", "Nov", "Dec"], - today: "Danes", - weekStart: 1 - }; -}(jQuery)); diff --git a/admin/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.sq.js b/admin/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.sq.js deleted file mode 100644 index 11f9469..0000000 --- a/admin/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.sq.js +++ /dev/null @@ -1,15 +0,0 @@ -/** - * Albanian translation for bootstrap-datepicker - * Tomor Pupovci <http://www.github.com/ttomor> - */ -;(function($){ - $.fn.datepicker.dates['sq'] = { - days: ["E Diel", "E Hënë", "E Martē", "E Mërkurë", "E Enjte", "E Premte", "E Shtunë"], - daysShort: ["Die", "Hën", "Mar", "Mër", "Enj", "Pre", "Shtu"], - daysMin: ["Di", "Hë", "Ma", "Më", "En", "Pr", "Sht"], - months: ["Janar", "Shkurt", "Mars", "Prill", "Maj", "Qershor", "Korrik", "Gusht", "Shtator", "Tetor", "Nëntor", "Dhjetor"], - monthsShort: ["Jan", "Shk", "Mar", "Pri", "Maj", "Qer", "Korr", "Gu", "Sht", "Tet", "Nën", "Dhjet"], - today: "Sot" - }; -}(jQuery)); - diff --git a/admin/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.sr-latin.js b/admin/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.sr-latin.js deleted file mode 100644 index 0587963..0000000 --- a/admin/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.sr-latin.js +++ /dev/null @@ -1,16 +0,0 @@ -/** - * Serbian latin translation for bootstrap-datepicker - * Bojan Milosavlević <milboj@gmail.com> - */ -;(function($){ - $.fn.datepicker.dates['sr-latin'] = { - days: ["Nedelja","Ponedeljak", "Utorak", "Sreda", "Četvrtak", "Petak", "Subota"], - daysShort: ["Ned", "Pon", "Uto", "Sre", "Čet", "Pet", "Sub"], - daysMin: ["N", "Po", "U", "Sr", "Č", "Pe", "Su"], - months: ["Januar", "Februar", "Mart", "April", "Maj", "Jun", "Jul", "Avgust", "Septembar", "Oktobar", "Novembar", "Decembar"], - monthsShort: ["Jan", "Feb", "Mar", "Apr", "Maj", "Jun", "Jul", "Avg", "Sep", "Okt", "Nov", "Dec"], - today: "Danas", - weekStart: 1, - format: "dd.mm.yyyy" - }; -}(jQuery)); diff --git a/admin/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.sr.js b/admin/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.sr.js deleted file mode 100644 index a0dcb83..0000000 --- a/admin/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.sr.js +++ /dev/null @@ -1,16 +0,0 @@ -/** - * Serbian cyrillic translation for bootstrap-datepicker - * Bojan Milosavlević <milboj@gmail.com> - */ -;(function($){ - $.fn.datepicker.dates['sr'] = { - days: ["Недеља","Понедељак", "Уторак", "Среда", "Четвртак", "Петак", "Субота"], - daysShort: ["Нед", "Пон", "Уто", "Сре", "Чет", "Пет", "Суб"], - daysMin: ["Н", "По", "У", "Ср", "Ч", "Пе", "Су"], - months: ["Јануар", "Фебруар", "Март", "Април", "Мај", "Јун", "Јул", "Август", "Септембар", "Октобар", "Новембар", "Децембар"], - monthsShort: ["Јан", "Феб", "Мар", "Апр", "Мај", "Јун", "Јул", "Авг", "Сеп", "Окт", "Нов", "Дец"], - today: "Данас", - weekStart: 1, - format: "dd.mm.yyyy" - }; -}(jQuery)); diff --git a/admin/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.sv.js b/admin/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.sv.js deleted file mode 100644 index 947a2c2..0000000 --- a/admin/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.sv.js +++ /dev/null @@ -1,17 +0,0 @@ -/** - * Swedish translation for bootstrap-datepicker - * Patrik Ragnarsson <patrik@starkast.net> - */ -;(function($){ - $.fn.datepicker.dates['sv'] = { - days: ["Söndag", "Måndag", "Tisdag", "Onsdag", "Torsdag", "Fredag", "Lördag"], - daysShort: ["Sön", "Mån", "Tis", "Ons", "Tor", "Fre", "Lör"], - daysMin: ["Sö", "Må", "Ti", "On", "To", "Fr", "Lö"], - months: ["Januari", "Februari", "Mars", "April", "Maj", "Juni", "Juli", "Augusti", "September", "Oktober", "November", "December"], - monthsShort: ["Jan", "Feb", "Mar", "Apr", "Maj", "Jun", "Jul", "Aug", "Sep", "Okt", "Nov", "Dec"], - today: "Idag", - format: "yyyy-mm-dd", - weekStart: 1, - clear: "Rensa" - }; -}(jQuery)); diff --git a/admin/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.sw.js b/admin/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.sw.js deleted file mode 100644 index 0e447b8..0000000 --- a/admin/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.sw.js +++ /dev/null @@ -1,15 +0,0 @@ -/** - * Swahili translation for bootstrap-datepicker - * Edwin Mugendi <https://github.com/edwinmugendi> - * Source: http://scriptsource.org/cms/scripts/page.php?item_id=entry_detail&uid=xnfaqyzcku - */ -;(function($){ - $.fn.datepicker.dates['sw'] = { - days: ["Jumapili", "Jumatatu", "Jumanne", "Jumatano", "Alhamisi", "Ijumaa", "Jumamosi"], - daysShort: ["J2", "J3", "J4", "J5", "Alh", "Ij", "J1"], - daysMin: ["2", "3", "4", "5", "A", "I", "1"], - months: ["Januari", "Februari", "Machi", "Aprili", "Mei", "Juni", "Julai", "Agosti", "Septemba", "Oktoba", "Novemba", "Desemba"], - monthsShort: ["Jan", "Feb", "Mac", "Apr", "Mei", "Jun", "Jul", "Ago", "Sep", "Okt", "Nov", "Des"], - today: "Leo" - }; -}(jQuery)); diff --git a/admin/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.ta.js b/admin/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.ta.js deleted file mode 100644 index 85e7656..0000000 --- a/admin/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.ta.js +++ /dev/null @@ -1,18 +0,0 @@ -/** - * Tamil translation for bootstrap-datepicker - * Abubacker Siddik A <abuabdul86@hotmail.com> - */ -;(function($){ - $.fn.datepicker.dates['ta'] = { - days: ["ஞாயிறு", "திங்கள்", "செவ்வாய்", "புதன்", "வியாழன்", "வெள்ளி", "சனி"], - daysShort: ["ஞாயி", "திங்", "செவ்", "புத", "வியா", "வெள்", "சனி"], - daysMin: ["ஞா", "தி", "செ", "பு", "வி", "வெ", "ச"], - months: ["ஜனவரி", "பிப்ரவரி", "மார்ச்", "ஏப்ரல்", "மே", "ஜூன்", "ஜூலை", "ஆகஸ்டு", "செப்டம்பர்", "அக்டோபர்", "நவம்பர்", "டிசம்பர்"], - monthsShort: ["ஜன", "பிப்", "மார்", "ஏப்", "மே", "ஜூன்", "ஜூலை", "ஆக", "செப்", "அக்", "நவ", "டிச"], - today: "இன்று", - monthsTitle: "மாதங்கள்", - clear: "நீக்கு", - weekStart: 1, - format: "dd/mm/yyyy" - }; -}(jQuery)); diff --git a/admin/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.tg.js b/admin/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.tg.js deleted file mode 100644 index 26863a0..0000000 --- a/admin/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.tg.js +++ /dev/null @@ -1,19 +0,0 @@ -/** - * Tajik (cyrillic) translation for bootstrap-datepicker - * Bakhtiyor Bahritidinov <i@bakhtiyor.tj> - * Orif N. Jr. <orif.zade@gmail.com> - */ -;(function($){ - $.fn.datepicker.dates['tg'] = { - days: ["Якшанбе", "Душанбе", "Сешанбе", "Чоршанбе", "Панҷшанбе", "Ҷумъа", "Шанбе"], - daysShort: ["Яшб", "Дшб", "Сшб", "Чшб", "Пшб", "Ҷум", "Шнб"], - daysMin: ["Яш", "Дш", "Сш", "Чш", "Пш", "Ҷм", "Шб"], - months: ["Январ", "Феврал", "Март", "Апрел", "Май", "Июн", "Июл", "Август", "Сентябр", "Октябр", "Ноябр", "Декабр"], - monthsShort: ["Янв", "Фев", "Мар", "Апр", "Май", "Июн", "Июл", "Авг", "Сен", "Окт", "Ноя", "Дек"], - today: "Имрӯз", - monthsTitle: "Моҳҳо", - clear: "Тоза намудан", - weekStart: 1, - format: "dd.mm.yyyy" - }; -}(jQuery)); diff --git a/admin/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.th.js b/admin/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.th.js deleted file mode 100644 index 562b063..0000000 --- a/admin/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.th.js +++ /dev/null @@ -1,14 +0,0 @@ -/** - * Thai translation for bootstrap-datepicker - * Suchau Jiraprapot <seroz24@gmail.com> - */ -;(function($){ - $.fn.datepicker.dates['th'] = { - days: ["อาทิตย์", "จันทร์", "อังคาร", "พุธ", "พฤหัส", "ศุกร์", "เสาร์", "อาทิตย์"], - daysShort: ["อา", "จ", "อ", "พ", "พฤ", "ศ", "ส", "อา"], - daysMin: ["อา", "จ", "อ", "พ", "พฤ", "ศ", "ส", "อา"], - months: ["มกราคม", "กุมภาพันธ์", "มีนาคม", "เมษายน", "พฤษภาคม", "มิถุนายน", "กรกฎาคม", "สิงหาคม", "กันยายน", "ตุลาคม", "พฤศจิกายน", "ธันวาคม"], - monthsShort: ["ม.ค.", "ก.พ.", "มี.ค.", "เม.ย.", "พ.ค.", "มิ.ย.", "ก.ค.", "ส.ค.", "ก.ย.", "ต.ค.", "พ.ย.", "ธ.ค."], - today: "วันนี้" - }; -}(jQuery)); diff --git a/admin/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.tr.js b/admin/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.tr.js deleted file mode 100644 index 0c8b0de..0000000 --- a/admin/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.tr.js +++ /dev/null @@ -1,18 +0,0 @@ -/** - * Turkish translation for bootstrap-datepicker - * Serkan Algur <kaisercrazy_2@hotmail.com> - */ -;(function($){ - $.fn.datepicker.dates['tr'] = { - days: ["Pazar", "Pazartesi", "Salı", "Çarşamba", "Perşembe", "Cuma", "Cumartesi"], - daysShort: ["Pz", "Pzt", "Sal", "Çrş", "Prş", "Cu", "Cts"], - daysMin: ["Pz", "Pzt", "Sa", "Çr", "Pr", "Cu", "Ct"], - months: ["Ocak", "Şubat", "Mart", "Nisan", "Mayıs", "Haziran", "Temmuz", "Ağustos", "Eylül", "Ekim", "Kasım", "Aralık"], - monthsShort: ["Oca", "Şub", "Mar", "Nis", "May", "Haz", "Tem", "Ağu", "Eyl", "Eki", "Kas", "Ara"], - today: "Bugün", - clear: "Temizle", - weekStart: 1, - format: "dd.mm.yyyy" - }; -}(jQuery)); - diff --git a/admin/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.uk.js b/admin/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.uk.js deleted file mode 100644 index 1c4cf15..0000000 --- a/admin/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.uk.js +++ /dev/null @@ -1,17 +0,0 @@ -/** - * Ukrainian translation for bootstrap-datepicker - * Igor Polynets - */ -;(function($){ - $.fn.datepicker.dates['uk'] = { - days: ["Неділя", "Понеділок", "Вівторок", "Середа", "Четвер", "П'ятниця", "Субота"], - daysShort: ["Нед", "Пнд", "Втр", "Срд", "Чтв", "Птн", "Суб"], - daysMin: ["Нд", "Пн", "Вт", "Ср", "Чт", "Пт", "Сб"], - months: ["Cічень", "Лютий", "Березень", "Квітень", "Травень", "Червень", "Липень", "Серпень", "Вересень", "Жовтень", "Листопад", "Грудень"], - monthsShort: ["Січ", "Лют", "Бер", "Кві", "Тра", "Чер", "Лип", "Сер", "Вер", "Жов", "Лис", "Гру"], - today: "Сьогодні", - clear: "Очистити", - format: "dd.mm.yyyy", - weekStart: 1 - }; -}(jQuery)); diff --git a/admin/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.uz-cyrl.js b/admin/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.uz-cyrl.js deleted file mode 100644 index ce55543..0000000 --- a/admin/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.uz-cyrl.js +++ /dev/null @@ -1,18 +0,0 @@ -/** - * Uzbek latin translation for bootstrap-datepicker - * Kakhramonov Javlonbek <kakjavlon@gmail.com> - */ -;(function($){ - $.fn.datepicker.dates['uz-cyrl'] = { - days: ["Якшанба", "Душанба", "Сешанба", "Чоршанба", "Пайшанба", "Жума", "Шанба"], - daysShort: ["Якш", "Ду", "Се", "Чор", "Пай", "Жу", "Ша"], - daysMin: ["Як", "Ду", "Се", "Чо", "Па", "Жу", "Ша"], - months: ["Январь","Февраль","Март","Апрель","Май","Июнь","Июль","Август","Сентябрь","Октябрь","Ноябрь","Декабрь"], - monthsShort: ["Янв","Фев","Мар","Апр","Май","Июн","Июл","Авг","Сен","Окт","Ноя","Дек"], - today: "Бугун", - clear: "Ўчириш", - format: "dd.mm.yyyy", - weekStart: 1, - monthsTitle: 'Ойлар' - }; -}(jQuery)); diff --git a/admin/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.uz-latn.js b/admin/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.uz-latn.js deleted file mode 100644 index 70fda67..0000000 --- a/admin/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.uz-latn.js +++ /dev/null @@ -1,18 +0,0 @@ -/** - * Uzbek latin translation for bootstrap-datepicker - * Kakhramonov Javlonbek <kakjavlon@gmail.com> - */ -;(function($){ - $.fn.datepicker.dates['uz-latn'] = { - days: ["Yakshanba", "Dushanba", "Seshanba", "Chorshanba", "Payshanba", "Juma", "Shanba"], - daysShort: ["Yak", "Du", "Se", "Chor", "Pay", "Ju", "Sha"], - daysMin: ["Ya", "Du", "Se", "Cho", "Pa", "Ju", "Sha"], - months: ["Yanvar", "Fevral", "Mart", "Aprel", "May", "Iyun", "Iyul", "Avgust", "Sentabr", "Oktabr", "Noyabr", "Dekabr"], - monthsShort: ["Yan", "Fev", "Mar", "Apr", "May", "Iyn", "Iyl", "Avg", "Sen", "Okt", "Noy", "Dek"], - today: "Bugun", - clear: "O'chirish", - format: "dd.mm.yyyy", - weekStart: 1, - monthsTitle: 'Oylar' - }; -}(jQuery)); diff --git a/admin/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.vi.js b/admin/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.vi.js deleted file mode 100644 index 0e8afc1..0000000 --- a/admin/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.vi.js +++ /dev/null @@ -1,16 +0,0 @@ -/** - * Vietnamese translation for bootstrap-datepicker - * An Vo <https://github.com/anvoz/> - */ -;(function($){ - $.fn.datepicker.dates['vi'] = { - days: ["Chủ nhật", "Thứ hai", "Thứ ba", "Thứ tư", "Thứ năm", "Thứ sáu", "Thứ bảy"], - daysShort: ["CN", "Thứ 2", "Thứ 3", "Thứ 4", "Thứ 5", "Thứ 6", "Thứ 7"], - daysMin: ["CN", "T2", "T3", "T4", "T5", "T6", "T7"], - months: ["Tháng 1", "Tháng 2", "Tháng 3", "Tháng 4", "Tháng 5", "Tháng 6", "Tháng 7", "Tháng 8", "Tháng 9", "Tháng 10", "Tháng 11", "Tháng 12"], - monthsShort: ["Th1", "Th2", "Th3", "Th4", "Th5", "Th6", "Th7", "Th8", "Th9", "Th10", "Th11", "Th12"], - today: "Hôm nay", - clear: "Xóa", - format: "dd/mm/yyyy" - }; -}(jQuery)); diff --git a/admin/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.zh-CN.js b/admin/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.zh-CN.js deleted file mode 100644 index b927d2c..0000000 --- a/admin/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.zh-CN.js +++ /dev/null @@ -1,18 +0,0 @@ -/** - * Simplified Chinese translation for bootstrap-datepicker - * Yuan Cheung <advanimal@gmail.com> - */ -;(function($){ - $.fn.datepicker.dates['zh-CN'] = { - days: ["星期日", "星期一", "星期二", "星期三", "星期四", "星期五", "星期六"], - daysShort: ["周日", "周一", "周二", "周三", "周四", "周五", "周六"], - daysMin: ["日", "一", "二", "三", "四", "五", "六"], - months: ["一月", "二月", "三月", "四月", "五月", "六月", "七月", "八月", "九月", "十月", "十一月", "十二月"], - monthsShort: ["1月", "2月", "3月", "4月", "5月", "6月", "7月", "8月", "9月", "10月", "11月", "12月"], - today: "今日", - clear: "清除", - format: "yyyy年mm月dd日", - titleFormat: "yyyy年mm月", - weekStart: 1 - }; -}(jQuery)); diff --git a/admin/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.zh-TW.js b/admin/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.zh-TW.js deleted file mode 100644 index ff241b5..0000000 --- a/admin/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.zh-TW.js +++ /dev/null @@ -1,18 +0,0 @@ -/** - * Traditional Chinese translation for bootstrap-datepicker - * Rung-Sheng Jang <daniel@i-trend.co.cc> - * FrankWu <frankwu100@gmail.com> Fix more appropriate use of Traditional Chinese habit - */ -;(function($){ - $.fn.datepicker.dates['zh-TW'] = { - days: ["星期日", "星期一", "星期二", "星期三", "星期四", "星期五", "星期六"], - daysShort: ["週日", "週一", "週二", "週三", "週四", "週五", "週六"], - daysMin: ["日", "一", "二", "三", "四", "五", "六"], - months: ["一月", "二月", "三月", "四月", "五月", "六月", "七月", "八月", "九月", "十月", "十一月", "十二月"], - monthsShort: ["1月", "2月", "3月", "4月", "5月", "6月", "7月", "8月", "9月", "10月", "11月", "12月"], - today: "今天", - format: "yyyy年mm月dd日", - weekStart: 1, - clear: "清除" - }; -}(jQuery)); diff --git a/admin/bower_components/bootstrap-datepicker/less/.csslintrc b/admin/bower_components/bootstrap-datepicker/less/.csslintrc deleted file mode 100644 index 005b862..0000000 --- a/admin/bower_components/bootstrap-datepicker/less/.csslintrc +++ /dev/null @@ -1,19 +0,0 @@ -{ - "adjoining-classes": false, - "box-sizing": false, - "box-model": false, - "compatible-vendor-prefixes": false, - "floats": false, - "font-sizes": false, - "gradients": false, - "important": false, - "known-properties": false, - "outline-none": false, - "qualified-headings": false, - "regex-selectors": false, - "shorthand": false, - "text-indent": false, - "unique-headings": false, - "universal-selector": false, - "unqualified-attributes": false -} diff --git a/admin/bower_components/bootstrap-datepicker/less/datepicker.less b/admin/bower_components/bootstrap-datepicker/less/datepicker.less deleted file mode 100644 index b1f8183..0000000 --- a/admin/bower_components/bootstrap-datepicker/less/datepicker.less +++ /dev/null @@ -1,242 +0,0 @@ -.datepicker { - padding: 4px; - .border-radius(@baseBorderRadius); - &-inline { - width: 220px; - } - direction: ltr; - &-rtl { - direction: rtl; - &.dropdown-menu { left: auto; } - table tr td span { - float: right; - } - } - &-dropdown { - top: 0; - left: 0; - &:before { - content: ''; - display: inline-block; - border-left: 7px solid transparent; - border-right: 7px solid transparent; - border-bottom: 7px solid @grayLight; - border-top: 0; - border-bottom-color: rgba(0,0,0,.2); - position: absolute; - } - &:after { - content: ''; - display: inline-block; - border-left: 6px solid transparent; - border-right: 6px solid transparent; - border-bottom: 6px solid @white; - border-top: 0; - position: absolute; - } - &.datepicker-orient-left:before { left: 6px; } - &.datepicker-orient-left:after { left: 7px; } - &.datepicker-orient-right:before { right: 6px; } - &.datepicker-orient-right:after { right: 7px; } - &.datepicker-orient-bottom:before { top: -7px; } - &.datepicker-orient-bottom:after { top: -6px; } - &.datepicker-orient-top:before { - bottom: -7px; - border-bottom: 0; - border-top: 7px solid @grayLight; - } - &.datepicker-orient-top:after { - bottom: -6px; - border-bottom: 0; - border-top: 6px solid @white; - } - } - table { - margin: 0; - -webkit-touch-callout: none; - -webkit-user-select: none; - -khtml-user-select: none; - -moz-user-select: none; - -ms-user-select: none; - user-select: none; - } - td, th { - text-align: center; - width: 20px; - height: 20px; - .border-radius(4px); - - border: none; - } - // Inline display inside a table presents some problems with - // border and background colors. - .table-striped & table tr { - td, th { - background-color: transparent; - } - } - table tr td { - &.day:hover, - &.day.focused { - background: @grayLighter; - cursor: pointer; - } - &.old, - &.new { - color: @grayLight; - } - &.disabled, - &.disabled:hover { - background: none; - color: @grayLight; - cursor: default; - } - &.highlighted { - background: @infoBackground; - border-radius: 0; - } - &.today, - &.today:hover, - &.today.disabled, - &.today.disabled:hover { - @todayBackground: lighten(@orange, 30%); - .buttonBackground(@todayBackground, spin(@todayBackground, 20)); - color: #000; - } - &.today:hover:hover { // Thank bootstrap 2.0 for this selector... - // TODO: Bump min BS to 2.1, use @textColor in buttonBackground above - color: #000; - } - &.today.active:hover { - color: #fff; - } - &.range, - &.range:hover, - &.range.disabled, - &.range.disabled:hover { - background: @grayLighter; - .border-radius(0); - } - &.range.today, - &.range.today:hover, - &.range.today.disabled, - &.range.today.disabled:hover { - @todayBackground: mix(@orange, @grayLighter, 50%); - .buttonBackground(@todayBackground, spin(@todayBackground, 20)); - .border-radius(0); - } - &.selected, - &.selected:hover, - &.selected.disabled, - &.selected.disabled:hover { - .buttonBackground(lighten(@grayLight, 10), darken(@grayLight, 10)); - color: #fff; - text-shadow: 0 -1px 0 rgba(0,0,0,.25); - } - &.active, - &.active:hover, - &.active.disabled, - &.active.disabled:hover { - .buttonBackground(@btnPrimaryBackground, spin(@btnPrimaryBackground, 20)); - color: #fff; - text-shadow: 0 -1px 0 rgba(0,0,0,.25); - } - span { - display: block; - width: 23%; - height: 54px; - line-height: 54px; - float: left; - margin: 1%; - cursor: pointer; - .border-radius(4px); - &:hover, - &.focused { - background: @grayLighter; - } - &.disabled, - &.disabled:hover { - background: none; - color: @grayLight; - cursor: default; - } - &.active, - &.active:hover, - &.active.disabled, - &.active.disabled:hover { - .buttonBackground(@btnPrimaryBackground, spin(@btnPrimaryBackground, 20)); - color: #fff; - text-shadow: 0 -1px 0 rgba(0,0,0,.25); - } - &.old, - &.new { - color: @grayLight; - } - } - } - - .datepicker-switch { - width: 145px; - } - - .datepicker-switch, - .prev, - .next, - tfoot tr th { - cursor: pointer; - &:hover { - background: @grayLighter; - } - } - - .prev, .next { - &.disabled { - visibility: hidden; - } - } - - // Basic styling for calendar-week cells - .cw { - font-size: 10px; - width: 12px; - padding: 0 2px 0 5px; - vertical-align: middle; - } -} -.input-append, -.input-prepend { - &.date .add-on { - cursor: pointer; - - i { - margin-top: 3px; - } - } -} -.input-daterange { - input { - text-align:center; - } - input:first-child { - .border-radius(3px 0 0 3px); - } - input:last-child { - .border-radius(0 3px 3px 0); - } - .add-on { - display: inline-block; - width: auto; - min-width: 16px; - height: @baseLineHeight; - padding: 4px 5px; - font-weight: normal; - line-height: @baseLineHeight; - text-align: center; - text-shadow: 0 1px 0 @white; - vertical-align: middle; - background-color: @grayLighter; - border: 1px solid #ccc; - margin-left: -5px; - margin-right: -5px; - } -} diff --git a/admin/bower_components/bootstrap-datepicker/less/datepicker3.less b/admin/bower_components/bootstrap-datepicker/less/datepicker3.less deleted file mode 100644 index 4cb1e32..0000000 --- a/admin/bower_components/bootstrap-datepicker/less/datepicker3.less +++ /dev/null @@ -1,258 +0,0 @@ -.datepicker { - border-radius: @border-radius-base; - &-inline { - width: 220px; - } - direction: ltr; - &-rtl { - direction: rtl; - &.dropdown-menu { left: auto; } - table tr td span { - float: right; - } - } - &-dropdown { - top: 0; - left: 0; - padding: 4px; - &:before { - content: ''; - display: inline-block; - border-left: 7px solid transparent; - border-right: 7px solid transparent; - border-bottom: 7px solid @dropdown-border; - border-top: 0; - border-bottom-color: rgba(0,0,0,.2); - position: absolute; - } - &:after { - content: ''; - display: inline-block; - border-left: 6px solid transparent; - border-right: 6px solid transparent; - border-bottom: 6px solid @dropdown-bg; - border-top: 0; - position: absolute; - } - &.datepicker-orient-left:before { left: 6px; } - &.datepicker-orient-left:after { left: 7px; } - &.datepicker-orient-right:before { right: 6px; } - &.datepicker-orient-right:after { right: 7px; } - &.datepicker-orient-bottom:before { top: -7px; } - &.datepicker-orient-bottom:after { top: -6px; } - &.datepicker-orient-top:before { - bottom: -7px; - border-bottom: 0; - border-top: 7px solid @dropdown-border; - } - &.datepicker-orient-top:after { - bottom: -6px; - border-bottom: 0; - border-top: 6px solid @dropdown-bg; - } - } - table { - margin: 0; - -webkit-touch-callout: none; - -webkit-user-select: none; - -khtml-user-select: none; - -moz-user-select: none; - -ms-user-select: none; - user-select: none; - tr { - td, th { - text-align: center; - width: 30px; - height: 30px; - border-radius: 4px; - border: none; - } - } - } - // Inline display inside a table presents some problems with - // border and background colors. - .table-striped & table tr { - td, th { - background-color: transparent; - } - } - table tr td { - &.old, - &.new { - color: @btn-link-disabled-color; - } - &.day:hover, - &.focused { - background: @gray-lighter; - cursor: pointer; - } - &.disabled, - &.disabled:hover { - background: none; - color: @btn-link-disabled-color; - cursor: default; - } - &.highlighted { - @highlighted-bg: @state-info-bg; - .button-variant(#000, @highlighted-bg, darken(@highlighted-bg, 20%)); - border-radius: 0; - - &.focused { - background: darken(@highlighted-bg, 10%); - } - - &.disabled, - &.disabled:active { - background: @highlighted-bg; - color: @btn-link-disabled-color; - } - } - &.today { - @today-bg: lighten(orange, 30%); - .button-variant(#000, @today-bg, darken(@today-bg, 20%)); - - &.focused { - background: darken(@today-bg, 10%); - } - - &.disabled, - &.disabled:active { - background: @today-bg; - color: @btn-link-disabled-color; - } - } - &.range { - @range-bg: @gray-lighter; - .button-variant(#000, @range-bg, darken(@range-bg, 20%)); - border-radius: 0; - - &.focused { - background: darken(@range-bg, 10%); - } - - &.disabled, - &.disabled:active { - background: @range-bg; - color: @btn-link-disabled-color; - } - } - &.range.highlighted { - @range-highlighted-bg: mix(@state-info-bg, @gray-lighter, 50%); - .button-variant(#000, @range-highlighted-bg, darken(@range-highlighted-bg, 20%)); - - &.focused { - background: darken(@range-highlighted-bg, 10%); - } - - &.disabled, - &.disabled:active { - background: @range-highlighted-bg; - color: @btn-link-disabled-color; - } - } - &.range.today { - @range-today-bg: mix(orange, @gray-lighter, 50%); - .button-variant(#000, @range-today-bg, darken(@range-today-bg, 20%)); - - &.disabled, - &.disabled:active { - background: @range-today-bg; - color: @btn-link-disabled-color; - } - } - &.selected, - &.selected.highlighted { - .button-variant(#fff, @gray-light, @gray); - text-shadow: 0 -1px 0 rgba(0,0,0,.25); - } - &.active, - &.active.highlighted { - .button-variant(@btn-primary-color, @btn-primary-bg, @btn-primary-border); - text-shadow: 0 -1px 0 rgba(0,0,0,.25); - } - span { - display: block; - width: 23%; - height: 54px; - line-height: 54px; - float: left; - margin: 1%; - cursor: pointer; - border-radius: 4px; - &:hover, - &.focused { - background: @gray-lighter; - } - &.disabled, - &.disabled:hover { - background: none; - color: @btn-link-disabled-color; - cursor: default; - } - &.active, - &.active:hover, - &.active.disabled, - &.active.disabled:hover { - .button-variant(@btn-primary-color, @btn-primary-bg, @btn-primary-border); - text-shadow: 0 -1px 0 rgba(0,0,0,.25); - } - &.old, - &.new { - color: @btn-link-disabled-color; - } - } - } - - .datepicker-switch { - width: 145px; - } - - .datepicker-switch, - .prev, - .next, - tfoot tr th { - cursor: pointer; - &:hover { - background: @gray-lighter; - } - } - - .prev, .next { - &.disabled { - visibility: hidden; - } - } - - // Basic styling for calendar-week cells - .cw { - font-size: 10px; - width: 12px; - padding: 0 2px 0 5px; - vertical-align: middle; - } -} -.input-group.date .input-group-addon { - cursor: pointer; -} -.input-daterange { - width: 100%; - input { - text-align: center; - } - input:first-child { - border-radius: 3px 0 0 3px; - } - input:last-child { - border-radius: 0 3px 3px 0; - } - .input-group-addon { - width: auto; - min-width: 16px; - padding: 4px 5px; - line-height: @line-height-base; - text-shadow: 0 1px 0 #fff; - border-width: 1px 0; - margin-left: -5px; - margin-right: -5px; - } -} diff --git a/admin/bower_components/bootstrap-datepicker/package.json b/admin/bower_components/bootstrap-datepicker/package.json deleted file mode 100644 index 71d81fd..0000000 --- a/admin/bower_components/bootstrap-datepicker/package.json +++ /dev/null @@ -1,48 +0,0 @@ -{ - "name": "bootstrap-datepicker", - "description": "A datepicker for Bootstrap", - "version": "1.7.1", - "license": "Apache-2.0", - "keywords": [ - "datepicker", - "bootstrap" - ], - "main": "./dist/js/bootstrap-datepicker.js", - "files": [ - "build", - "dist", - "js/**/*.js", - "less/*.less", - "LICENSE" - ], - "homepage": "https://github.com/uxsolutions/bootstrap-datepicker", - "author": "Andrew Rowls <eternicode@gmail.com>", - "scripts": { - "test": "grunt test" - }, - "repository": { - "type": "git", - "url": "https://github.com/uxsolutions/bootstrap-datepicker.git" - }, - "dependencies": { - "jquery": ">=1.7.1 <4.0.0" - }, - "devDependencies": { - "grunt": "^1.0.1", - "grunt-banner": "~0.6.0", - "grunt-contrib-clean": "^1.0.0", - "grunt-contrib-compress": "^1.4.1", - "grunt-contrib-concat": "^1.0.1", - "grunt-contrib-csslint": "^2.0.0", - "grunt-contrib-cssmin": "^1.0.2", - "grunt-contrib-jshint": "^1.1.0", - "grunt-contrib-less": "^1.4.0", - "grunt-contrib-qunit": "^1.2.0", - "grunt-contrib-uglify": "^2.0.0", - "grunt-jscs": "^3.0.1", - "grunt-string-replace": "^1.3.1", - "load-grunt-tasks": "^3.5.2", - "phantomjs-prebuilt": "~2.1.8", - "time-grunt": "^1.4.0" - } -} diff --git a/admin/bower_components/bootstrap-datepicker/tests/README.md b/admin/bower_components/bootstrap-datepicker/tests/README.md deleted file mode 100644 index dc3ce9d..0000000 --- a/admin/bower_components/bootstrap-datepicker/tests/README.md +++ /dev/null @@ -1,30 +0,0 @@ -Unit tests, written with [QUnit](https://qunitjs.com), are used to -expose bugs for squashing, prevent bugs from respawning, and suppress new -bugs when adding new features and making changes. - -# Running the tests - -The simplest way to run the tests is to open `tests/tests.html` in your browser. -The test suites will automatically run themselves and present their results. - -To run the tests from the command line (after running jshint and jscs, which is -recommended), install Grunt and run the `test` task from anywhere within the -repo: - - $ grunt test - -# Adding tests - -Tests go in js files in the `tests/suites/` directory tree. QUnit organizes -tests into suites called "modules"; there is one module per js file. If the -tests you are adding do not fit into an existing module, create a new one at -`tests/suites/<new module>.js`, where `<new module>` is a broad yet -descriptive name for the suite. If tests have many year-specific cases (ie, -behave differently in leap years vs normal years, or have specific buggy -behavior in a certain year), create the module in a new directory, -`tests/suites/<new module>/<year>.js`, where `<new module>` is the decriptive -name and `<year>` is the four-digit year the tests pertain to. - -In order for new tests to be run, they must be imported into `tests/tests.html`. -Find the script includes headed by the html comment `<!-- Test suites -->`, and -add a new one to the list which includes the new js files. diff --git a/admin/bower_components/bootstrap-datepicker/tests/assets/coverage.js b/admin/bower_components/bootstrap-datepicker/tests/assets/coverage.js deleted file mode 100644 index 2e5704b..0000000 --- a/admin/bower_components/bootstrap-datepicker/tests/assets/coverage.js +++ /dev/null @@ -1,48 +0,0 @@ -(function(){ - //we want this at global scope so outside callers can find it. In a more realistic implementation we - //should probably put it in a namespace. - window.getCoverageByLine = function(silent) { - var key = null; - var lines = null; - var source = null; - //look for code coverage data - if (typeof window._$jscoverage === 'object') { - for (key in _$jscoverage) {} - lines = _$jscoverage[key]; - } - - if (!lines && !silent) { - console.log('code coverage data is NOT available'); - } - - return { 'key': key, 'lines': lines }; - }; - - QUnit.done = function(t) { - var cvgInfo = getCoverageByLine(true); - if (!!cvgInfo.key) { - var testableLines = 0; - var testedLines = 0; - var untestableLines = 0; - for (lineIdx in cvgInfo.lines) { - var cvg = cvgInfo.lines[lineIdx]; - if (typeof cvg === 'number') { - testableLines += 1; - if (cvg > 0) { - testedLines += 1; - } - } else { - untestableLines += 1; - } - } - var coverage = '' + Math.floor(100 * testedLines / testableLines) + '%'; - - var result = document.getElementById('qunit-testresult'); - if (result != null) { - result.innerHTML = result.innerHTML + ' ' + coverage + ' test coverage of ' + cvgInfo.key; - } else { - console.log('can\'t find test-result element to update'); - } - } - }; -}()); \ No newline at end of file diff --git a/admin/bower_components/bootstrap-datepicker/tests/assets/jquery-1.7.1.min.js b/admin/bower_components/bootstrap-datepicker/tests/assets/jquery-1.7.1.min.js deleted file mode 100644 index 198b3ff..0000000 --- a/admin/bower_components/bootstrap-datepicker/tests/assets/jquery-1.7.1.min.js +++ /dev/null @@ -1,4 +0,0 @@ -/*! jQuery v1.7.1 jquery.com | jquery.org/license */ -(function(a,b){function cy(a){return f.isWindow(a)?a:a.nodeType===9?a.defaultView||a.parentWindow:!1}function cv(a){if(!ck[a]){var b=c.body,d=f("<"+a+">").appendTo(b),e=d.css("display");d.remove();if(e==="none"||e===""){cl||(cl=c.createElement("iframe"),cl.frameBorder=cl.width=cl.height=0),b.appendChild(cl);if(!cm||!cl.createElement)cm=(cl.contentWindow||cl.contentDocument).document,cm.write((c.compatMode==="CSS1Compat"?"<!doctype html>":"")+"<html><body>"),cm.close();d=cm.createElement(a),cm.body.appendChild(d),e=f.css(d,"display"),b.removeChild(cl)}ck[a]=e}return ck[a]}function cu(a,b){var c={};f.each(cq.concat.apply([],cq.slice(0,b)),function(){c[this]=a});return c}function ct(){cr=b}function cs(){setTimeout(ct,0);return cr=f.now()}function cj(){try{return new a.ActiveXObject("Microsoft.XMLHTTP")}catch(b){}}function ci(){try{return new a.XMLHttpRequest}catch(b){}}function cc(a,c){a.dataFilter&&(c=a.dataFilter(c,a.dataType));var d=a.dataTypes,e={},g,h,i=d.length,j,k=d[0],l,m,n,o,p;for(g=1;g<i;g++){if(g===1)for(h in a.converters)typeof h=="string"&&(e[h.toLowerCase()]=a.converters[h]);l=k,k=d[g];if(k==="*")k=l;else if(l!=="*"&&l!==k){m=l+" "+k,n=e[m]||e["* "+k];if(!n){p=b;for(o in e){j=o.split(" ");if(j[0]===l||j[0]==="*"){p=e[j[1]+" "+k];if(p){o=e[o],o===!0?n=p:p===!0&&(n=o);break}}}}!n&&!p&&f.error("No conversion from "+m.replace(" "," to ")),n!==!0&&(c=n?n(c):p(o(c)))}}return c}function cb(a,c,d){var e=a.contents,f=a.dataTypes,g=a.responseFields,h,i,j,k;for(i in g)i in d&&(c[g[i]]=d[i]);while(f[0]==="*")f.shift(),h===b&&(h=a.mimeType||c.getResponseHeader("content-type"));if(h)for(i in e)if(e[i]&&e[i].test(h)){f.unshift(i);break}if(f[0]in d)j=f[0];else{for(i in d){if(!f[0]||a.converters[i+" "+f[0]]){j=i;break}k||(k=i)}j=j||k}if(j){j!==f[0]&&f.unshift(j);return d[j]}}function ca(a,b,c,d){if(f.isArray(b))f.each(b,function(b,e){c||bE.test(a)?d(a,e):ca(a+"["+(typeof e=="object"||f.isArray(e)?b:"")+"]",e,c,d)});else if(!c&&b!=null&&typeof b=="object")for(var e in b)ca(a+"["+e+"]",b[e],c,d);else d(a,b)}function b_(a,c){var d,e,g=f.ajaxSettings.flatOptions||{};for(d in c)c[d]!==b&&((g[d]?a:e||(e={}))[d]=c[d]);e&&f.extend(!0,a,e)}function b$(a,c,d,e,f,g){f=f||c.dataTypes[0],g=g||{},g[f]=!0;var h=a[f],i=0,j=h?h.length:0,k=a===bT,l;for(;i<j&&(k||!l);i++)l=h[i](c,d,e),typeof l=="string"&&(!k||g[l]?l=b:(c.dataTypes.unshift(l),l=b$(a,c,d,e,l,g)));(k||!l)&&!g["*"]&&(l=b$(a,c,d,e,"*",g));return l}function bZ(a){return function(b,c){typeof b!="string"&&(c=b,b="*");if(f.isFunction(c)){var d=b.toLowerCase().split(bP),e=0,g=d.length,h,i,j;for(;e<g;e++)h=d[e],j=/^\+/.test(h),j&&(h=h.substr(1)||"*"),i=a[h]=a[h]||[],i[j?"unshift":"push"](c)}}}function bC(a,b,c){var d=b==="width"?a.offsetWidth:a.offsetHeight,e=b==="width"?bx:by,g=0,h=e.length;if(d>0){if(c!=="border")for(;g<h;g++)c||(d-=parseFloat(f.css(a,"padding"+e[g]))||0),c==="margin"?d+=parseFloat(f.css(a,c+e[g]))||0:d-=parseFloat(f.css(a,"border"+e[g]+"Width"))||0;return d+"px"}d=bz(a,b,b);if(d<0||d==null)d=a.style[b]||0;d=parseFloat(d)||0;if(c)for(;g<h;g++)d+=parseFloat(f.css(a,"padding"+e[g]))||0,c!=="padding"&&(d+=parseFloat(f.css(a,"border"+e[g]+"Width"))||0),c==="margin"&&(d+=parseFloat(f.css(a,c+e[g]))||0);return d+"px"}function bp(a,b){b.src?f.ajax({url:b.src,async:!1,dataType:"script"}):f.globalEval((b.text||b.textContent||b.innerHTML||"").replace(bf,"/*$0*/")),b.parentNode&&b.parentNode.removeChild(b)}function bo(a){var b=c.createElement("div");bh.appendChild(b),b.innerHTML=a.outerHTML;return b.firstChild}function bn(a){var b=(a.nodeName||"").toLowerCase();b==="input"?bm(a):b!=="script"&&typeof a.getElementsByTagName!="undefined"&&f.grep(a.getElementsByTagName("input"),bm)}function bm(a){if(a.type==="checkbox"||a.type==="radio")a.defaultChecked=a.checked}function bl(a){return typeof a.getElementsByTagName!="undefined"?a.getElementsByTagName("*"):typeof a.querySelectorAll!="undefined"?a.querySelectorAll("*"):[]}function bk(a,b){var c;if(b.nodeType===1){b.clearAttributes&&b.clearAttributes(),b.mergeAttributes&&b.mergeAttributes(a),c=b.nodeName.toLowerCase();if(c==="object")b.outerHTML=a.outerHTML;else if(c!=="input"||a.type!=="checkbox"&&a.type!=="radio"){if(c==="option")b.selected=a.defaultSelected;else if(c==="input"||c==="textarea")b.defaultValue=a.defaultValue}else a.checked&&(b.defaultChecked=b.checked=a.checked),b.value!==a.value&&(b.value=a.value);b.removeAttribute(f.expando)}}function bj(a,b){if(b.nodeType===1&&!!f.hasData(a)){var c,d,e,g=f._data(a),h=f._data(b,g),i=g.events;if(i){delete h.handle,h.events={};for(c in i)for(d=0,e=i[c].length;d<e;d++)f.event.add(b,c+(i[c][d].namespace?".":"")+i[c][d].namespace,i[c][d],i[c][d].data)}h.data&&(h.data=f.extend({},h.data))}}function bi(a,b){return f.nodeName(a,"table")?a.getElementsByTagName("tbody")[0]||a.appendChild(a.ownerDocument.createElement("tbody")):a}function U(a){var b=V.split("|"),c=a.createDocumentFragment();if(c.createElement)while(b.length)c.createElement(b.pop());return c}function T(a,b,c){b=b||0;if(f.isFunction(b))return f.grep(a,function(a,d){var e=!!b.call(a,d,a);return e===c});if(b.nodeType)return f.grep(a,function(a,d){return a===b===c});if(typeof b=="string"){var d=f.grep(a,function(a){return a.nodeType===1});if(O.test(b))return f.filter(b,d,!c);b=f.filter(b,d)}return f.grep(a,function(a,d){return f.inArray(a,b)>=0===c})}function S(a){return!a||!a.parentNode||a.parentNode.nodeType===11}function K(){return!0}function J(){return!1}function n(a,b,c){var d=b+"defer",e=b+"queue",g=b+"mark",h=f._data(a,d);h&&(c==="queue"||!f._data(a,e))&&(c==="mark"||!f._data(a,g))&&setTimeout(function(){!f._data(a,e)&&!f._data(a,g)&&(f.removeData(a,d,!0),h.fire())},0)}function m(a){for(var b in a){if(b==="data"&&f.isEmptyObject(a[b]))continue;if(b!=="toJSON")return!1}return!0}function l(a,c,d){if(d===b&&a.nodeType===1){var e="data-"+c.replace(k,"-$1").toLowerCase();d=a.getAttribute(e);if(typeof d=="string"){try{d=d==="true"?!0:d==="false"?!1:d==="null"?null:f.isNumeric(d)?parseFloat(d):j.test(d)?f.parseJSON(d):d}catch(g){}f.data(a,c,d)}else d=b}return d}function h(a){var b=g[a]={},c,d;a=a.split(/\s+/);for(c=0,d=a.length;c<d;c++)b[a[c]]=!0;return b}var c=a.document,d=a.navigator,e=a.location,f=function(){function J(){if(!e.isReady){try{c.documentElement.doScroll("left")}catch(a){setTimeout(J,1);return}e.ready()}}var e=function(a,b){return new e.fn.init(a,b,h)},f=a.jQuery,g=a.$,h,i=/^(?:[^#<]*(<[\w\W]+>)[^>]*$|#([\w\-]*)$)/,j=/\S/,k=/^\s+/,l=/\s+$/,m=/^<(\w+)\s*\/?>(?:<\/\1>)?$/,n=/^[\],:{}\s]*$/,o=/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g,p=/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g,q=/(?:^|:|,)(?:\s*\[)+/g,r=/(webkit)[ \/]([\w.]+)/,s=/(opera)(?:.*version)?[ \/]([\w.]+)/,t=/(msie) ([\w.]+)/,u=/(mozilla)(?:.*? rv:([\w.]+))?/,v=/-([a-z]|[0-9])/ig,w=/^-ms-/,x=function(a,b){return(b+"").toUpperCase()},y=d.userAgent,z,A,B,C=Object.prototype.toString,D=Object.prototype.hasOwnProperty,E=Array.prototype.push,F=Array.prototype.slice,G=String.prototype.trim,H=Array.prototype.indexOf,I={};e.fn=e.prototype={constructor:e,init:function(a,d,f){var g,h,j,k;if(!a)return this;if(a.nodeType){this.context=this[0]=a,this.length=1;return this}if(a==="body"&&!d&&c.body){this.context=c,this[0]=c.body,this.selector=a,this.length=1;return this}if(typeof a=="string"){a.charAt(0)!=="<"||a.charAt(a.length-1)!==">"||a.length<3?g=i.exec(a):g=[null,a,null];if(g&&(g[1]||!d)){if(g[1]){d=d instanceof e?d[0]:d,k=d?d.ownerDocument||d:c,j=m.exec(a),j?e.isPlainObject(d)?(a=[c.createElement(j[1])],e.fn.attr.call(a,d,!0)):a=[k.createElement(j[1])]:(j=e.buildFragment([g[1]],[k]),a=(j.cacheable?e.clone(j.fragment):j.fragment).childNodes);return e.merge(this,a)}h=c.getElementById(g[2]);if(h&&h.parentNode){if(h.id!==g[2])return f.find(a);this.length=1,this[0]=h}this.context=c,this.selector=a;return this}return!d||d.jquery?(d||f).find(a):this.constructor(d).find(a)}if(e.isFunction(a))return f.ready(a);a.selector!==b&&(this.selector=a.selector,this.context=a.context);return e.makeArray(a,this)},selector:"",jquery:"1.7.1",length:0,size:function(){return this.length},toArray:function(){return F.call(this,0)},get:function(a){return a==null?this.toArray():a<0?this[this.length+a]:this[a]},pushStack:function(a,b,c){var d=this.constructor();e.isArray(a)?E.apply(d,a):e.merge(d,a),d.prevObject=this,d.context=this.context,b==="find"?d.selector=this.selector+(this.selector?" ":"")+c:b&&(d.selector=this.selector+"."+b+"("+c+")");return d},each:function(a,b){return e.each(this,a,b)},ready:function(a){e.bindReady(),A.add(a);return this},eq:function(a){a=+a;return a===-1?this.slice(a):this.slice(a,a+1)},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},slice:function(){return this.pushStack(F.apply(this,arguments),"slice",F.call(arguments).join(","))},map:function(a){return this.pushStack(e.map(this,function(b,c){return a.call(b,c,b)}))},end:function(){return this.prevObject||this.constructor(null)},push:E,sort:[].sort,splice:[].splice},e.fn.init.prototype=e.fn,e.extend=e.fn.extend=function(){var a,c,d,f,g,h,i=arguments[0]||{},j=1,k=arguments.length,l=!1;typeof i=="boolean"&&(l=i,i=arguments[1]||{},j=2),typeof i!="object"&&!e.isFunction(i)&&(i={}),k===j&&(i=this,--j);for(;j<k;j++)if((a=arguments[j])!=null)for(c in a){d=i[c],f=a[c];if(i===f)continue;l&&f&&(e.isPlainObject(f)||(g=e.isArray(f)))?(g?(g=!1,h=d&&e.isArray(d)?d:[]):h=d&&e.isPlainObject(d)?d:{},i[c]=e.extend(l,h,f)):f!==b&&(i[c]=f)}return i},e.extend({noConflict:function(b){a.$===e&&(a.$=g),b&&a.jQuery===e&&(a.jQuery=f);return e},isReady:!1,readyWait:1,holdReady:function(a){a?e.readyWait++:e.ready(!0)},ready:function(a){if(a===!0&&!--e.readyWait||a!==!0&&!e.isReady){if(!c.body)return setTimeout(e.ready,1);e.isReady=!0;if(a!==!0&&--e.readyWait>0)return;A.fireWith(c,[e]),e.fn.trigger&&e(c).trigger("ready").off("ready")}},bindReady:function(){if(!A){A=e.Callbacks("once memory");if(c.readyState==="complete")return setTimeout(e.ready,1);if(c.addEventListener)c.addEventListener("DOMContentLoaded",B,!1),a.addEventListener("load",e.ready,!1);else if(c.attachEvent){c.attachEvent("onreadystatechange",B),a.attachEvent("onload",e.ready);var b=!1;try{b=a.frameElement==null}catch(d){}c.documentElement.doScroll&&b&&J()}}},isFunction:function(a){return e.type(a)==="function"},isArray:Array.isArray||function(a){return e.type(a)==="array"},isWindow:function(a){return a&&typeof a=="object"&&"setInterval"in a},isNumeric:function(a){return!isNaN(parseFloat(a))&&isFinite(a)},type:function(a){return a==null?String(a):I[C.call(a)]||"object"},isPlainObject:function(a){if(!a||e.type(a)!=="object"||a.nodeType||e.isWindow(a))return!1;try{if(a.constructor&&!D.call(a,"constructor")&&!D.call(a.constructor.prototype,"isPrototypeOf"))return!1}catch(c){return!1}var d;for(d in a);return d===b||D.call(a,d)},isEmptyObject:function(a){for(var b in a)return!1;return!0},error:function(a){throw new Error(a)},parseJSON:function(b){if(typeof b!="string"||!b)return null;b=e.trim(b);if(a.JSON&&a.JSON.parse)return a.JSON.parse(b);if(n.test(b.replace(o,"@").replace(p,"]").replace(q,"")))return(new Function("return "+b))();e.error("Invalid JSON: "+b)},parseXML:function(c){var d,f;try{a.DOMParser?(f=new DOMParser,d=f.parseFromString(c,"text/xml")):(d=new ActiveXObject("Microsoft.XMLDOM"),d.async="false",d.loadXML(c))}catch(g){d=b}(!d||!d.documentElement||d.getElementsByTagName("parsererror").length)&&e.error("Invalid XML: "+c);return d},noop:function(){},globalEval:function(b){b&&j.test(b)&&(a.execScript||function(b){a.eval.call(a,b)})(b)},camelCase:function(a){return a.replace(w,"ms-").replace(v,x)},nodeName:function(a,b){return a.nodeName&&a.nodeName.toUpperCase()===b.toUpperCase()},each:function(a,c,d){var f,g=0,h=a.length,i=h===b||e.isFunction(a);if(d){if(i){for(f in a)if(c.apply(a[f],d)===!1)break}else for(;g<h;)if(c.apply(a[g++],d)===!1)break}else if(i){for(f in a)if(c.call(a[f],f,a[f])===!1)break}else for(;g<h;)if(c.call(a[g],g,a[g++])===!1)break;return a},trim:G?function(a){return a==null?"":G.call(a)}:function(a){return a==null?"":(a+"").replace(k,"").replace(l,"")},makeArray:function(a,b){var c=b||[];if(a!=null){var d=e.type(a);a.length==null||d==="string"||d==="function"||d==="regexp"||e.isWindow(a)?E.call(c,a):e.merge(c,a)}return c},inArray:function(a,b,c){var d;if(b){if(H)return H.call(b,a,c);d=b.length,c=c?c<0?Math.max(0,d+c):c:0;for(;c<d;c++)if(c in b&&b[c]===a)return c}return-1},merge:function(a,c){var d=a.length,e=0;if(typeof c.length=="number")for(var f=c.length;e<f;e++)a[d++]=c[e];else while(c[e]!==b)a[d++]=c[e++];a.length=d;return a},grep:function(a,b,c){var d=[],e;c=!!c;for(var f=0,g=a.length;f<g;f++)e=!!b(a[f],f),c!==e&&d.push(a[f]);return d},map:function(a,c,d){var f,g,h=[],i=0,j=a.length,k=a instanceof e||j!==b&&typeof j=="number"&&(j>0&&a[0]&&a[j-1]||j===0||e.isArray(a));if(k)for(;i<j;i++)f=c(a[i],i,d),f!=null&&(h[h.length]=f);else for(g in a)f=c(a[g],g,d),f!=null&&(h[h.length]=f);return h.concat.apply([],h)},guid:1,proxy:function(a,c){if(typeof c=="string"){var d=a[c];c=a,a=d}if(!e.isFunction(a))return b;var f=F.call(arguments,2),g=function(){return a.apply(c,f.concat(F.call(arguments)))};g.guid=a.guid=a.guid||g.guid||e.guid++;return g},access:function(a,c,d,f,g,h){var i=a.length;if(typeof c=="object"){for(var j in c)e.access(a,j,c[j],f,g,d);return a}if(d!==b){f=!h&&f&&e.isFunction(d);for(var k=0;k<i;k++)g(a[k],c,f?d.call(a[k],k,g(a[k],c)):d,h);return a}return i?g(a[0],c):b},now:function(){return(new Date).getTime()},uaMatch:function(a){a=a.toLowerCase();var b=r.exec(a)||s.exec(a)||t.exec(a)||a.indexOf("compatible")<0&&u.exec(a)||[];return{browser:b[1]||"",version:b[2]||"0"}},sub:function(){function a(b,c){return new a.fn.init(b,c)}e.extend(!0,a,this),a.superclass=this,a.fn=a.prototype=this(),a.fn.constructor=a,a.sub=this.sub,a.fn.init=function(d,f){f&&f instanceof e&&!(f instanceof a)&&(f=a(f));return e.fn.init.call(this,d,f,b)},a.fn.init.prototype=a.fn;var b=a(c);return a},browser:{}}),e.each("Boolean Number String Function Array Date RegExp Object".split(" "),function(a,b){I["[object "+b+"]"]=b.toLowerCase()}),z=e.uaMatch(y),z.browser&&(e.browser[z.browser]=!0,e.browser.version=z.version),e.browser.webkit&&(e.browser.safari=!0),j.test(" ")&&(k=/^[\s\xA0]+/,l=/[\s\xA0]+$/),h=e(c),c.addEventListener?B=function(){c.removeEventListener("DOMContentLoaded",B,!1),e.ready()}:c.attachEvent&&(B=function(){c.readyState==="complete"&&(c.detachEvent("onreadystatechange",B),e.ready())});return e}(),g={};f.Callbacks=function(a){a=a?g[a]||h(a):{};var c=[],d=[],e,i,j,k,l,m=function(b){var d,e,g,h,i;for(d=0,e=b.length;d<e;d++)g=b[d],h=f.type(g),h==="array"?m(g):h==="function"&&(!a.unique||!o.has(g))&&c.push(g)},n=function(b,f){f=f||[],e=!a.memory||[b,f],i=!0,l=j||0,j=0,k=c.length;for(;c&&l<k;l++)if(c[l].apply(b,f)===!1&&a.stopOnFalse){e=!0;break}i=!1,c&&(a.once?e===!0?o.disable():c=[]:d&&d.length&&(e=d.shift(),o.fireWith(e[0],e[1])))},o={add:function(){if(c){var a=c.length;m(arguments),i?k=c.length:e&&e!==!0&&(j=a,n(e[0],e[1]))}return this},remove:function(){if(c){var b=arguments,d=0,e=b.length;for(;d<e;d++)for(var f=0;f<c.length;f++)if(b[d]===c[f]){i&&f<=k&&(k--,f<=l&&l--),c.splice(f--,1);if(a.unique)break}}return this},has:function(a){if(c){var b=0,d=c.length;for(;b<d;b++)if(a===c[b])return!0}return!1},empty:function(){c=[];return this},disable:function(){c=d=e=b;return this},disabled:function(){return!c},lock:function(){d=b,(!e||e===!0)&&o.disable();return this},locked:function(){return!d},fireWith:function(b,c){d&&(i?a.once||d.push([b,c]):(!a.once||!e)&&n(b,c));return this},fire:function(){o.fireWith(this,arguments);return this},fired:function(){return!!e}};return o};var i=[].slice;f.extend({Deferred:function(a){var b=f.Callbacks("once memory"),c=f.Callbacks("once memory"),d=f.Callbacks("memory"),e="pending",g={resolve:b,reject:c,notify:d},h={done:b.add,fail:c.add,progress:d.add,state:function(){return e},isResolved:b.fired,isRejected:c.fired,then:function(a,b,c){i.done(a).fail(b).progress(c);return this},always:function(){i.done.apply(i,arguments).fail.apply(i,arguments);return this},pipe:function(a,b,c){return f.Deferred(function(d){f.each({done:[a,"resolve"],fail:[b,"reject"],progress:[c,"notify"]},function(a,b){var c=b[0],e=b[1],g;f.isFunction(c)?i[a](function(){g=c.apply(this,arguments),g&&f.isFunction(g.promise)?g.promise().then(d.resolve,d.reject,d.notify):d[e+"With"](this===i?d:this,[g])}):i[a](d[e])})}).promise()},promise:function(a){if(a==null)a=h;else for(var b in h)a[b]=h[b];return a}},i=h.promise({}),j;for(j in g)i[j]=g[j].fire,i[j+"With"]=g[j].fireWith;i.done(function(){e="resolved"},c.disable,d.lock).fail(function(){e="rejected"},b.disable,d.lock),a&&a.call(i,i);return i},when:function(a){function m(a){return function(b){e[a]=arguments.length>1?i.call(arguments,0):b,j.notifyWith(k,e)}}function l(a){return function(c){b[a]=arguments.length>1?i.call(arguments,0):c,--g||j.resolveWith(j,b)}}var b=i.call(arguments,0),c=0,d=b.length,e=Array(d),g=d,h=d,j=d<=1&&a&&f.isFunction(a.promise)?a:f.Deferred(),k=j.promise();if(d>1){for(;c<d;c++)b[c]&&b[c].promise&&f.isFunction(b[c].promise)?b[c].promise().then(l(c),j.reject,m(c)):--g;g||j.resolveWith(j,b)}else j!==a&&j.resolveWith(j,d?[a]:[]);return k}}),f.support=function(){var b,d,e,g,h,i,j,k,l,m,n,o,p,q=c.createElement("div"),r=c.documentElement;q.setAttribute("className","t"),q.innerHTML=" <link/><table></table><a href='/a' style='top:1px;float:left;opacity:.55;'>a</a><input type='checkbox'/>",d=q.getElementsByTagName("*"),e=q.getElementsByTagName("a")[0];if(!d||!d.length||!e)return{};g=c.createElement("select"),h=g.appendChild(c.createElement("option")),i=q.getElementsByTagName("input")[0],b={leadingWhitespace:q.firstChild.nodeType===3,tbody:!q.getElementsByTagName("tbody").length,htmlSerialize:!!q.getElementsByTagName("link").length,style:/top/.test(e.getAttribute("style")),hrefNormalized:e.getAttribute("href")==="/a",opacity:/^0.55/.test(e.style.opacity),cssFloat:!!e.style.cssFloat,checkOn:i.value==="on",optSelected:h.selected,getSetAttribute:q.className!=="t",enctype:!!c.createElement("form").enctype,html5Clone:c.createElement("nav").cloneNode(!0).outerHTML!=="<:nav></:nav>",submitBubbles:!0,changeBubbles:!0,focusinBubbles:!1,deleteExpando:!0,noCloneEvent:!0,inlineBlockNeedsLayout:!1,shrinkWrapBlocks:!1,reliableMarginRight:!0},i.checked=!0,b.noCloneChecked=i.cloneNode(!0).checked,g.disabled=!0,b.optDisabled=!h.disabled;try{delete q.test}catch(s){b.deleteExpando=!1}!q.addEventListener&&q.attachEvent&&q.fireEvent&&(q.attachEvent("onclick",function(){b.noCloneEvent=!1}),q.cloneNode(!0).fireEvent("onclick")),i=c.createElement("input"),i.value="t",i.setAttribute("type","radio"),b.radioValue=i.value==="t",i.setAttribute("checked","checked"),q.appendChild(i),k=c.createDocumentFragment(),k.appendChild(q.lastChild),b.checkClone=k.cloneNode(!0).cloneNode(!0).lastChild.checked,b.appendChecked=i.checked,k.removeChild(i),k.appendChild(q),q.innerHTML="",a.getComputedStyle&&(j=c.createElement("div"),j.style.width="0",j.style.marginRight="0",q.style.width="2px",q.appendChild(j),b.reliableMarginRight=(parseInt((a.getComputedStyle(j,null)||{marginRight:0}).marginRight,10)||0)===0);if(q.attachEvent)for(o in{submit:1,change:1,focusin:1})n="on"+o,p=n in q,p||(q.setAttribute(n,"return;"),p=typeof q[n]=="function"),b[o+"Bubbles"]=p;k.removeChild(q),k=g=h=j=q=i=null,f(function(){var a,d,e,g,h,i,j,k,m,n,o,r=c.getElementsByTagName("body")[0];!r||(j=1,k="position:absolute;top:0;left:0;width:1px;height:1px;margin:0;",m="visibility:hidden;border:0;",n="style='"+k+"border:5px solid #000;padding:0;'",o="<div "+n+"><div></div></div>"+"<table "+n+" cellpadding='0' cellspacing='0'>"+"<tr><td></td></tr></table>",a=c.createElement("div"),a.style.cssText=m+"width:0;height:0;position:static;top:0;margin-top:"+j+"px",r.insertBefore(a,r.firstChild),q=c.createElement("div"),a.appendChild(q),q.innerHTML="<table><tr><td style='padding:0;border:0;display:none'></td><td>t</td></tr></table>",l=q.getElementsByTagName("td"),p=l[0].offsetHeight===0,l[0].style.display="",l[1].style.display="none",b.reliableHiddenOffsets=p&&l[0].offsetHeight===0,q.innerHTML="",q.style.width=q.style.paddingLeft="1px",f.boxModel=b.boxModel=q.offsetWidth===2,typeof q.style.zoom!="undefined"&&(q.style.display="inline",q.style.zoom=1,b.inlineBlockNeedsLayout=q.offsetWidth===2,q.style.display="",q.innerHTML="<div style='width:4px;'></div>",b.shrinkWrapBlocks=q.offsetWidth!==2),q.style.cssText=k+m,q.innerHTML=o,d=q.firstChild,e=d.firstChild,h=d.nextSibling.firstChild.firstChild,i={doesNotAddBorder:e.offsetTop!==5,doesAddBorderForTableAndCells:h.offsetTop===5},e.style.position="fixed",e.style.top="20px",i.fixedPosition=e.offsetTop===20||e.offsetTop===15,e.style.position=e.style.top="",d.style.overflow="hidden",d.style.position="relative",i.subtractsBorderForOverflowNotVisible=e.offsetTop===-5,i.doesNotIncludeMarginInBodyOffset=r.offsetTop!==j,r.removeChild(a),q=a=null,f.extend(b,i))});return b}();var j=/^(?:\{.*\}|\[.*\])$/,k=/([A-Z])/g;f.extend({cache:{},uuid:0,expando:"jQuery"+(f.fn.jquery+Math.random()).replace(/\D/g,""),noData:{embed:!0,object:"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000",applet:!0},hasData:function(a){a=a.nodeType?f.cache[a[f.expando]]:a[f.expando];return!!a&&!m(a)},data:function(a,c,d,e){if(!!f.acceptData(a)){var g,h,i,j=f.expando,k=typeof c=="string",l=a.nodeType,m=l?f.cache:a,n=l?a[j]:a[j]&&j,o=c==="events";if((!n||!m[n]||!o&&!e&&!m[n].data)&&k&&d===b)return;n||(l?a[j]=n=++f.uuid:n=j),m[n]||(m[n]={},l||(m[n].toJSON=f.noop));if(typeof c=="object"||typeof c=="function")e?m[n]=f.extend(m[n],c):m[n].data=f.extend(m[n].data,c);g=h=m[n],e||(h.data||(h.data={}),h=h.data),d!==b&&(h[f.camelCase(c)]=d);if(o&&!h[c])return g.events;k?(i=h[c],i==null&&(i=h[f.camelCase(c)])):i=h;return i}},removeData:function(a,b,c){if(!!f.acceptData(a)){var d,e,g,h=f.expando,i=a.nodeType,j=i?f.cache:a,k=i?a[h]:h;if(!j[k])return;if(b){d=c?j[k]:j[k].data;if(d){f.isArray(b)||(b in d?b=[b]:(b=f.camelCase(b),b in d?b=[b]:b=b.split(" ")));for(e=0,g=b.length;e<g;e++)delete d[b[e]];if(!(c?m:f.isEmptyObject)(d))return}}if(!c){delete j[k].data;if(!m(j[k]))return}f.support.deleteExpando||!j.setInterval?delete j[k]:j[k]=null,i&&(f.support.deleteExpando?delete a[h]:a.removeAttribute?a.removeAttribute(h):a[h]=null)}},_data:function(a,b,c){return f.data(a,b,c,!0)},acceptData:function(a){if(a.nodeName){var b=f.noData[a.nodeName.toLowerCase()];if(b)return b!==!0&&a.getAttribute("classid")===b}return!0}}),f.fn.extend({data:function(a,c){var d,e,g,h=null;if(typeof a=="undefined"){if(this.length){h=f.data(this[0]);if(this[0].nodeType===1&&!f._data(this[0],"parsedAttrs")){e=this[0].attributes;for(var i=0,j=e.length;i<j;i++)g=e[i].name,g.indexOf("data-")===0&&(g=f.camelCase(g.substring(5)),l(this[0],g,h[g]));f._data(this[0],"parsedAttrs",!0)}}return h}if(typeof a=="object")return this.each(function(){f.data(this,a)});d=a.split("."),d[1]=d[1]?"."+d[1]:"";if(c===b){h=this.triggerHandler("getData"+d[1]+"!",[d[0]]),h===b&&this.length&&(h=f.data(this[0],a),h=l(this[0],a,h));return h===b&&d[1]?this.data(d[0]):h}return this.each(function(){var b=f(this),e=[d[0],c];b.triggerHandler("setData"+d[1]+"!",e),f.data(this,a,c),b.triggerHandler("changeData"+d[1]+"!",e)})},removeData:function(a){return this.each(function(){f.removeData(this,a)})}}),f.extend({_mark:function(a,b){a&&(b=(b||"fx")+"mark",f._data(a,b,(f._data(a,b)||0)+1))},_unmark:function(a,b,c){a!==!0&&(c=b,b=a,a=!1);if(b){c=c||"fx";var d=c+"mark",e=a?0:(f._data(b,d)||1)-1;e?f._data(b,d,e):(f.removeData(b,d,!0),n(b,c,"mark"))}},queue:function(a,b,c){var d;if(a){b=(b||"fx")+"queue",d=f._data(a,b),c&&(!d||f.isArray(c)?d=f._data(a,b,f.makeArray(c)):d.push(c));return d||[]}},dequeue:function(a,b){b=b||"fx";var c=f.queue(a,b),d=c.shift(),e={};d==="inprogress"&&(d=c.shift()),d&&(b==="fx"&&c.unshift("inprogress"),f._data(a,b+".run",e),d.call(a,function(){f.dequeue(a,b)},e)),c.length||(f.removeData(a,b+"queue "+b+".run",!0),n(a,b,"queue"))}}),f.fn.extend({queue:function(a,c){typeof a!="string"&&(c=a,a="fx");if(c===b)return f.queue(this[0],a);return this.each(function(){var b=f.queue(this,a,c);a==="fx"&&b[0]!=="inprogress"&&f.dequeue(this,a)})},dequeue:function(a){return this.each(function(){f.dequeue(this,a)})},delay:function(a,b){a=f.fx?f.fx.speeds[a]||a:a,b=b||"fx";return this.queue(b,function(b,c){var d=setTimeout(b,a);c.stop=function(){clearTimeout(d)}})},clearQueue:function(a){return this.queue(a||"fx",[])},promise:function(a,c){function m(){--h||d.resolveWith(e,[e])}typeof a!="string"&&(c=a,a=b),a=a||"fx";var d=f.Deferred(),e=this,g=e.length,h=1,i=a+"defer",j=a+"queue",k=a+"mark",l;while(g--)if(l=f.data(e[g],i,b,!0)||(f.data(e[g],j,b,!0)||f.data(e[g],k,b,!0))&&f.data(e[g],i,f.Callbacks("once memory"),!0))h++,l.add(m);m();return d.promise()}});var o=/[\n\t\r]/g,p=/\s+/,q=/\r/g,r=/^(?:button|input)$/i,s=/^(?:button|input|object|select|textarea)$/i,t=/^a(?:rea)?$/i,u=/^(?:autofocus|autoplay|async|checked|controls|defer|disabled|hidden|loop|multiple|open|readonly|required|scoped|selected)$/i,v=f.support.getSetAttribute,w,x,y;f.fn.extend({attr:function(a,b){return f.access(this,a,b,!0,f.attr)},removeAttr:function(a){return this.each(function(){f.removeAttr(this,a)})},prop:function(a,b){return f.access(this,a,b,!0,f.prop)},removeProp:function(a){a=f.propFix[a]||a;return this.each(function(){try{this[a]=b,delete this[a]}catch(c){}})},addClass:function(a){var b,c,d,e,g,h,i;if(f.isFunction(a))return this.each(function(b){f(this).addClass(a.call(this,b,this.className))});if(a&&typeof a=="string"){b=a.split(p);for(c=0,d=this.length;c<d;c++){e=this[c];if(e.nodeType===1)if(!e.className&&b.length===1)e.className=a;else{g=" "+e.className+" ";for(h=0,i=b.length;h<i;h++)~g.indexOf(" "+b[h]+" ")||(g+=b[h]+" ");e.className=f.trim(g)}}}return this},removeClass:function(a){var c,d,e,g,h,i,j;if(f.isFunction(a))return this.each(function(b){f(this).removeClass(a.call(this,b,this.className))});if(a&&typeof a=="string"||a===b){c=(a||"").split(p);for(d=0,e=this.length;d<e;d++){g=this[d];if(g.nodeType===1&&g.className)if(a){h=(" "+g.className+" ").replace(o," ");for(i=0,j=c.length;i<j;i++)h=h.replace(" "+c[i]+" "," ");g.className=f.trim(h)}else g.className=""}}return this},toggleClass:function(a,b){var c=typeof a,d=typeof b=="boolean";if(f.isFunction(a))return this.each(function(c){f(this).toggleClass(a.call(this,c,this.className,b),b)});return this.each(function(){if(c==="string"){var e,g=0,h=f(this),i=b,j=a.split(p);while(e=j[g++])i=d?i:!h.hasClass(e),h[i?"addClass":"removeClass"](e)}else if(c==="undefined"||c==="boolean")this.className&&f._data(this,"__className__",this.className),this.className=this.className||a===!1?"":f._data(this,"__className__")||""})},hasClass:function(a){var b=" "+a+" ",c=0,d=this.length;for(;c<d;c++)if(this[c].nodeType===1&&(" "+this[c].className+" ").replace(o," ").indexOf(b)>-1)return!0;return!1},val:function(a){var c,d,e,g=this[0];{if(!!arguments.length){e=f.isFunction(a);return this.each(function(d){var g=f(this),h;if(this.nodeType===1){e?h=a.call(this,d,g.val()):h=a,h==null?h="":typeof h=="number"?h+="":f.isArray(h)&&(h=f.map(h,function(a){return a==null?"":a+""})),c=f.valHooks[this.nodeName.toLowerCase()]||f.valHooks[this.type];if(!c||!("set"in c)||c.set(this,h,"value")===b)this.value=h}})}if(g){c=f.valHooks[g.nodeName.toLowerCase()]||f.valHooks[g.type];if(c&&"get"in c&&(d=c.get(g,"value"))!==b)return d;d=g.value;return typeof d=="string"?d.replace(q,""):d==null?"":d}}}}),f.extend({valHooks:{option:{get:function(a){var b=a.attributes.value;return!b||b.specified?a.value:a.text}},select:{get:function(a){var b,c,d,e,g=a.selectedIndex,h=[],i=a.options,j=a.type==="select-one";if(g<0)return null;c=j?g:0,d=j?g+1:i.length;for(;c<d;c++){e=i[c];if(e.selected&&(f.support.optDisabled?!e.disabled:e.getAttribute("disabled")===null)&&(!e.parentNode.disabled||!f.nodeName(e.parentNode,"optgroup"))){b=f(e).val();if(j)return b;h.push(b)}}if(j&&!h.length&&i.length)return f(i[g]).val();return h},set:function(a,b){var c=f.makeArray(b);f(a).find("option").each(function(){this.selected=f.inArray(f(this).val(),c)>=0}),c.length||(a.selectedIndex=-1);return c}}},attrFn:{val:!0,css:!0,html:!0,text:!0,data:!0,width:!0,height:!0,offset:!0},attr:function(a,c,d,e){var g,h,i,j=a.nodeType;if(!!a&&j!==3&&j!==8&&j!==2){if(e&&c in f.attrFn)return f(a)[c](d);if(typeof a.getAttribute=="undefined")return f.prop(a,c,d);i=j!==1||!f.isXMLDoc(a),i&&(c=c.toLowerCase(),h=f.attrHooks[c]||(u.test(c)?x:w));if(d!==b){if(d===null){f.removeAttr(a,c);return}if(h&&"set"in h&&i&&(g=h.set(a,d,c))!==b)return g;a.setAttribute(c,""+d);return d}if(h&&"get"in h&&i&&(g=h.get(a,c))!==null)return g;g=a.getAttribute(c);return g===null?b:g}},removeAttr:function(a,b){var c,d,e,g,h=0;if(b&&a.nodeType===1){d=b.toLowerCase().split(p),g=d.length;for(;h<g;h++)e=d[h],e&&(c=f.propFix[e]||e,f.attr(a,e,""),a.removeAttribute(v?e:c),u.test(e)&&c in a&&(a[c]=!1))}},attrHooks:{type:{set:function(a,b){if(r.test(a.nodeName)&&a.parentNode)f.error("type property can't be changed");else if(!f.support.radioValue&&b==="radio"&&f.nodeName(a,"input")){var c=a.value;a.setAttribute("type",b),c&&(a.value=c);return b}}},value:{get:function(a,b){if(w&&f.nodeName(a,"button"))return w.get(a,b);return b in a?a.value:null},set:function(a,b,c){if(w&&f.nodeName(a,"button"))return w.set(a,b,c);a.value=b}}},propFix:{tabindex:"tabIndex",readonly:"readOnly","for":"htmlFor","class":"className",maxlength:"maxLength",cellspacing:"cellSpacing",cellpadding:"cellPadding",rowspan:"rowSpan",colspan:"colSpan",usemap:"useMap",frameborder:"frameBorder",contenteditable:"contentEditable"},prop:function(a,c,d){var e,g,h,i=a.nodeType;if(!!a&&i!==3&&i!==8&&i!==2){h=i!==1||!f.isXMLDoc(a),h&&(c=f.propFix[c]||c,g=f.propHooks[c]);return d!==b?g&&"set"in g&&(e=g.set(a,d,c))!==b?e:a[c]=d:g&&"get"in g&&(e=g.get(a,c))!==null?e:a[c]}},propHooks:{tabIndex:{get:function(a){var c=a.getAttributeNode("tabindex");return c&&c.specified?parseInt(c.value,10):s.test(a.nodeName)||t.test(a.nodeName)&&a.href?0:b}}}}),f.attrHooks.tabindex=f.propHooks.tabIndex,x={get:function(a,c){var d,e=f.prop(a,c);return e===!0||typeof e!="boolean"&&(d=a.getAttributeNode(c))&&d.nodeValue!==!1?c.toLowerCase():b},set:function(a,b,c){var d;b===!1?f.removeAttr(a,c):(d=f.propFix[c]||c,d in a&&(a[d]=!0),a.setAttribute(c,c.toLowerCase()));return c}},v||(y={name:!0,id:!0},w=f.valHooks.button={get:function(a,c){var d;d=a.getAttributeNode(c);return d&&(y[c]?d.nodeValue!=="":d.specified)?d.nodeValue:b},set:function(a,b,d){var e=a.getAttributeNode(d);e||(e=c.createAttribute(d),a.setAttributeNode(e));return e.nodeValue=b+""}},f.attrHooks.tabindex.set=w.set,f.each(["width","height"],function(a,b){f.attrHooks[b]=f.extend(f.attrHooks[b],{set:function(a,c){if(c===""){a.setAttribute(b,"auto");return c}}})}),f.attrHooks.contenteditable={get:w.get,set:function(a,b,c){b===""&&(b="false"),w.set(a,b,c)}}),f.support.hrefNormalized||f.each(["href","src","width","height"],function(a,c){f.attrHooks[c]=f.extend(f.attrHooks[c],{get:function(a){var d=a.getAttribute(c,2);return d===null?b:d}})}),f.support.style||(f.attrHooks.style={get:function(a){return a.style.cssText.toLowerCase()||b},set:function(a,b){return a.style.cssText=""+b}}),f.support.optSelected||(f.propHooks.selected=f.extend(f.propHooks.selected,{get:function(a){var b=a.parentNode;b&&(b.selectedIndex,b.parentNode&&b.parentNode.selectedIndex);return null}})),f.support.enctype||(f.propFix.enctype="encoding"),f.support.checkOn||f.each(["radio","checkbox"],function(){f.valHooks[this]={get:function(a){return a.getAttribute("value")===null?"on":a.value}}}),f.each(["radio","checkbox"],function(){f.valHooks[this]=f.extend(f.valHooks[this],{set:function(a,b){if(f.isArray(b))return a.checked=f.inArray(f(a).val(),b)>=0}})});var z=/^(?:textarea|input|select)$/i,A=/^([^\.]*)?(?:\.(.+))?$/,B=/\bhover(\.\S+)?\b/,C=/^key/,D=/^(?:mouse|contextmenu)|click/,E=/^(?:focusinfocus|focusoutblur)$/,F=/^(\w*)(?:#([\w\-]+))?(?:\.([\w\-]+))?$/,G=function(a){var b=F.exec(a);b&&(b[1]=(b[1]||"").toLowerCase(),b[3]=b[3]&&new RegExp("(?:^|\\s)"+b[3]+"(?:\\s|$)"));return b},H=function(a,b){var c=a.attributes||{};return(!b[1]||a.nodeName.toLowerCase()===b[1])&&(!b[2]||(c.id||{}).value===b[2])&&(!b[3]||b[3].test((c["class"]||{}).value))},I=function(a){return f.event.special.hover?a:a.replace(B,"mouseenter$1 mouseleave$1")}; -f.event={add:function(a,c,d,e,g){var h,i,j,k,l,m,n,o,p,q,r,s;if(!(a.nodeType===3||a.nodeType===8||!c||!d||!(h=f._data(a)))){d.handler&&(p=d,d=p.handler),d.guid||(d.guid=f.guid++),j=h.events,j||(h.events=j={}),i=h.handle,i||(h.handle=i=function(a){return typeof f!="undefined"&&(!a||f.event.triggered!==a.type)?f.event.dispatch.apply(i.elem,arguments):b},i.elem=a),c=f.trim(I(c)).split(" ");for(k=0;k<c.length;k++){l=A.exec(c[k])||[],m=l[1],n=(l[2]||"").split(".").sort(),s=f.event.special[m]||{},m=(g?s.delegateType:s.bindType)||m,s=f.event.special[m]||{},o=f.extend({type:m,origType:l[1],data:e,handler:d,guid:d.guid,selector:g,quick:G(g),namespace:n.join(".")},p),r=j[m];if(!r){r=j[m]=[],r.delegateCount=0;if(!s.setup||s.setup.call(a,e,n,i)===!1)a.addEventListener?a.addEventListener(m,i,!1):a.attachEvent&&a.attachEvent("on"+m,i)}s.add&&(s.add.call(a,o),o.handler.guid||(o.handler.guid=d.guid)),g?r.splice(r.delegateCount++,0,o):r.push(o),f.event.global[m]=!0}a=null}},global:{},remove:function(a,b,c,d,e){var g=f.hasData(a)&&f._data(a),h,i,j,k,l,m,n,o,p,q,r,s;if(!!g&&!!(o=g.events)){b=f.trim(I(b||"")).split(" ");for(h=0;h<b.length;h++){i=A.exec(b[h])||[],j=k=i[1],l=i[2];if(!j){for(j in o)f.event.remove(a,j+b[h],c,d,!0);continue}p=f.event.special[j]||{},j=(d?p.delegateType:p.bindType)||j,r=o[j]||[],m=r.length,l=l?new RegExp("(^|\\.)"+l.split(".").sort().join("\\.(?:.*\\.)?")+"(\\.|$)"):null;for(n=0;n<r.length;n++)s=r[n],(e||k===s.origType)&&(!c||c.guid===s.guid)&&(!l||l.test(s.namespace))&&(!d||d===s.selector||d==="**"&&s.selector)&&(r.splice(n--,1),s.selector&&r.delegateCount--,p.remove&&p.remove.call(a,s));r.length===0&&m!==r.length&&((!p.teardown||p.teardown.call(a,l)===!1)&&f.removeEvent(a,j,g.handle),delete o[j])}f.isEmptyObject(o)&&(q=g.handle,q&&(q.elem=null),f.removeData(a,["events","handle"],!0))}},customEvent:{getData:!0,setData:!0,changeData:!0},trigger:function(c,d,e,g){if(!e||e.nodeType!==3&&e.nodeType!==8){var h=c.type||c,i=[],j,k,l,m,n,o,p,q,r,s;if(E.test(h+f.event.triggered))return;h.indexOf("!")>=0&&(h=h.slice(0,-1),k=!0),h.indexOf(".")>=0&&(i=h.split("."),h=i.shift(),i.sort());if((!e||f.event.customEvent[h])&&!f.event.global[h])return;c=typeof c=="object"?c[f.expando]?c:new f.Event(h,c):new f.Event(h),c.type=h,c.isTrigger=!0,c.exclusive=k,c.namespace=i.join("."),c.namespace_re=c.namespace?new RegExp("(^|\\.)"+i.join("\\.(?:.*\\.)?")+"(\\.|$)"):null,o=h.indexOf(":")<0?"on"+h:"";if(!e){j=f.cache;for(l in j)j[l].events&&j[l].events[h]&&f.event.trigger(c,d,j[l].handle.elem,!0);return}c.result=b,c.target||(c.target=e),d=d!=null?f.makeArray(d):[],d.unshift(c),p=f.event.special[h]||{};if(p.trigger&&p.trigger.apply(e,d)===!1)return;r=[[e,p.bindType||h]];if(!g&&!p.noBubble&&!f.isWindow(e)){s=p.delegateType||h,m=E.test(s+h)?e:e.parentNode,n=null;for(;m;m=m.parentNode)r.push([m,s]),n=m;n&&n===e.ownerDocument&&r.push([n.defaultView||n.parentWindow||a,s])}for(l=0;l<r.length&&!c.isPropagationStopped();l++)m=r[l][0],c.type=r[l][1],q=(f._data(m,"events")||{})[c.type]&&f._data(m,"handle"),q&&q.apply(m,d),q=o&&m[o],q&&f.acceptData(m)&&q.apply(m,d)===!1&&c.preventDefault();c.type=h,!g&&!c.isDefaultPrevented()&&(!p._default||p._default.apply(e.ownerDocument,d)===!1)&&(h!=="click"||!f.nodeName(e,"a"))&&f.acceptData(e)&&o&&e[h]&&(h!=="focus"&&h!=="blur"||c.target.offsetWidth!==0)&&!f.isWindow(e)&&(n=e[o],n&&(e[o]=null),f.event.triggered=h,e[h](),f.event.triggered=b,n&&(e[o]=n));return c.result}},dispatch:function(c){c=f.event.fix(c||a.event);var d=(f._data(this,"events")||{})[c.type]||[],e=d.delegateCount,g=[].slice.call(arguments,0),h=!c.exclusive&&!c.namespace,i=[],j,k,l,m,n,o,p,q,r,s,t;g[0]=c,c.delegateTarget=this;if(e&&!c.target.disabled&&(!c.button||c.type!=="click")){m=f(this),m.context=this.ownerDocument||this;for(l=c.target;l!=this;l=l.parentNode||this){o={},q=[],m[0]=l;for(j=0;j<e;j++)r=d[j],s=r.selector,o[s]===b&&(o[s]=r.quick?H(l,r.quick):m.is(s)),o[s]&&q.push(r);q.length&&i.push({elem:l,matches:q})}}d.length>e&&i.push({elem:this,matches:d.slice(e)});for(j=0;j<i.length&&!c.isPropagationStopped();j++){p=i[j],c.currentTarget=p.elem;for(k=0;k<p.matches.length&&!c.isImmediatePropagationStopped();k++){r=p.matches[k];if(h||!c.namespace&&!r.namespace||c.namespace_re&&c.namespace_re.test(r.namespace))c.data=r.data,c.handleObj=r,n=((f.event.special[r.origType]||{}).handle||r.handler).apply(p.elem,g),n!==b&&(c.result=n,n===!1&&(c.preventDefault(),c.stopPropagation()))}}return c.result},props:"attrChange attrName relatedNode srcElement altKey bubbles cancelable ctrlKey currentTarget eventPhase metaKey relatedTarget shiftKey target timeStamp view which".split(" "),fixHooks:{},keyHooks:{props:"char charCode key keyCode".split(" "),filter:function(a,b){a.which==null&&(a.which=b.charCode!=null?b.charCode:b.keyCode);return a}},mouseHooks:{props:"button buttons clientX clientY fromElement offsetX offsetY pageX pageY screenX screenY toElement".split(" "),filter:function(a,d){var e,f,g,h=d.button,i=d.fromElement;a.pageX==null&&d.clientX!=null&&(e=a.target.ownerDocument||c,f=e.documentElement,g=e.body,a.pageX=d.clientX+(f&&f.scrollLeft||g&&g.scrollLeft||0)-(f&&f.clientLeft||g&&g.clientLeft||0),a.pageY=d.clientY+(f&&f.scrollTop||g&&g.scrollTop||0)-(f&&f.clientTop||g&&g.clientTop||0)),!a.relatedTarget&&i&&(a.relatedTarget=i===a.target?d.toElement:i),!a.which&&h!==b&&(a.which=h&1?1:h&2?3:h&4?2:0);return a}},fix:function(a){if(a[f.expando])return a;var d,e,g=a,h=f.event.fixHooks[a.type]||{},i=h.props?this.props.concat(h.props):this.props;a=f.Event(g);for(d=i.length;d;)e=i[--d],a[e]=g[e];a.target||(a.target=g.srcElement||c),a.target.nodeType===3&&(a.target=a.target.parentNode),a.metaKey===b&&(a.metaKey=a.ctrlKey);return h.filter?h.filter(a,g):a},special:{ready:{setup:f.bindReady},load:{noBubble:!0},focus:{delegateType:"focusin"},blur:{delegateType:"focusout"},beforeunload:{setup:function(a,b,c){f.isWindow(this)&&(this.onbeforeunload=c)},teardown:function(a,b){this.onbeforeunload===b&&(this.onbeforeunload=null)}}},simulate:function(a,b,c,d){var e=f.extend(new f.Event,c,{type:a,isSimulated:!0,originalEvent:{}});d?f.event.trigger(e,null,b):f.event.dispatch.call(b,e),e.isDefaultPrevented()&&c.preventDefault()}},f.event.handle=f.event.dispatch,f.removeEvent=c.removeEventListener?function(a,b,c){a.removeEventListener&&a.removeEventListener(b,c,!1)}:function(a,b,c){a.detachEvent&&a.detachEvent("on"+b,c)},f.Event=function(a,b){if(!(this instanceof f.Event))return new f.Event(a,b);a&&a.type?(this.originalEvent=a,this.type=a.type,this.isDefaultPrevented=a.defaultPrevented||a.returnValue===!1||a.getPreventDefault&&a.getPreventDefault()?K:J):this.type=a,b&&f.extend(this,b),this.timeStamp=a&&a.timeStamp||f.now(),this[f.expando]=!0},f.Event.prototype={preventDefault:function(){this.isDefaultPrevented=K;var a=this.originalEvent;!a||(a.preventDefault?a.preventDefault():a.returnValue=!1)},stopPropagation:function(){this.isPropagationStopped=K;var a=this.originalEvent;!a||(a.stopPropagation&&a.stopPropagation(),a.cancelBubble=!0)},stopImmediatePropagation:function(){this.isImmediatePropagationStopped=K,this.stopPropagation()},isDefaultPrevented:J,isPropagationStopped:J,isImmediatePropagationStopped:J},f.each({mouseenter:"mouseover",mouseleave:"mouseout"},function(a,b){f.event.special[a]={delegateType:b,bindType:b,handle:function(a){var c=this,d=a.relatedTarget,e=a.handleObj,g=e.selector,h;if(!d||d!==c&&!f.contains(c,d))a.type=e.origType,h=e.handler.apply(this,arguments),a.type=b;return h}}}),f.support.submitBubbles||(f.event.special.submit={setup:function(){if(f.nodeName(this,"form"))return!1;f.event.add(this,"click._submit keypress._submit",function(a){var c=a.target,d=f.nodeName(c,"input")||f.nodeName(c,"button")?c.form:b;d&&!d._submit_attached&&(f.event.add(d,"submit._submit",function(a){this.parentNode&&!a.isTrigger&&f.event.simulate("submit",this.parentNode,a,!0)}),d._submit_attached=!0)})},teardown:function(){if(f.nodeName(this,"form"))return!1;f.event.remove(this,"._submit")}}),f.support.changeBubbles||(f.event.special.change={setup:function(){if(z.test(this.nodeName)){if(this.type==="checkbox"||this.type==="radio")f.event.add(this,"propertychange._change",function(a){a.originalEvent.propertyName==="checked"&&(this._just_changed=!0)}),f.event.add(this,"click._change",function(a){this._just_changed&&!a.isTrigger&&(this._just_changed=!1,f.event.simulate("change",this,a,!0))});return!1}f.event.add(this,"beforeactivate._change",function(a){var b=a.target;z.test(b.nodeName)&&!b._change_attached&&(f.event.add(b,"change._change",function(a){this.parentNode&&!a.isSimulated&&!a.isTrigger&&f.event.simulate("change",this.parentNode,a,!0)}),b._change_attached=!0)})},handle:function(a){var b=a.target;if(this!==b||a.isSimulated||a.isTrigger||b.type!=="radio"&&b.type!=="checkbox")return a.handleObj.handler.apply(this,arguments)},teardown:function(){f.event.remove(this,"._change");return z.test(this.nodeName)}}),f.support.focusinBubbles||f.each({focus:"focusin",blur:"focusout"},function(a,b){var d=0,e=function(a){f.event.simulate(b,a.target,f.event.fix(a),!0)};f.event.special[b]={setup:function(){d++===0&&c.addEventListener(a,e,!0)},teardown:function(){--d===0&&c.removeEventListener(a,e,!0)}}}),f.fn.extend({on:function(a,c,d,e,g){var h,i;if(typeof a=="object"){typeof c!="string"&&(d=c,c=b);for(i in a)this.on(i,c,d,a[i],g);return this}d==null&&e==null?(e=c,d=c=b):e==null&&(typeof c=="string"?(e=d,d=b):(e=d,d=c,c=b));if(e===!1)e=J;else if(!e)return this;g===1&&(h=e,e=function(a){f().off(a);return h.apply(this,arguments)},e.guid=h.guid||(h.guid=f.guid++));return this.each(function(){f.event.add(this,a,e,d,c)})},one:function(a,b,c,d){return this.on.call(this,a,b,c,d,1)},off:function(a,c,d){if(a&&a.preventDefault&&a.handleObj){var e=a.handleObj;f(a.delegateTarget).off(e.namespace?e.type+"."+e.namespace:e.type,e.selector,e.handler);return this}if(typeof a=="object"){for(var g in a)this.off(g,c,a[g]);return this}if(c===!1||typeof c=="function")d=c,c=b;d===!1&&(d=J);return this.each(function(){f.event.remove(this,a,d,c)})},bind:function(a,b,c){return this.on(a,null,b,c)},unbind:function(a,b){return this.off(a,null,b)},live:function(a,b,c){f(this.context).on(a,this.selector,b,c);return this},die:function(a,b){f(this.context).off(a,this.selector||"**",b);return this},delegate:function(a,b,c,d){return this.on(b,a,c,d)},undelegate:function(a,b,c){return arguments.length==1?this.off(a,"**"):this.off(b,a,c)},trigger:function(a,b){return this.each(function(){f.event.trigger(a,b,this)})},triggerHandler:function(a,b){if(this[0])return f.event.trigger(a,b,this[0],!0)},toggle:function(a){var b=arguments,c=a.guid||f.guid++,d=0,e=function(c){var e=(f._data(this,"lastToggle"+a.guid)||0)%d;f._data(this,"lastToggle"+a.guid,e+1),c.preventDefault();return b[e].apply(this,arguments)||!1};e.guid=c;while(d<b.length)b[d++].guid=c;return this.click(e)},hover:function(a,b){return this.mouseenter(a).mouseleave(b||a)}}),f.each("blur focus focusin focusout load resize scroll unload click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup error contextmenu".split(" "),function(a,b){f.fn[b]=function(a,c){c==null&&(c=a,a=null);return arguments.length>0?this.on(b,null,a,c):this.trigger(b)},f.attrFn&&(f.attrFn[b]=!0),C.test(b)&&(f.event.fixHooks[b]=f.event.keyHooks),D.test(b)&&(f.event.fixHooks[b]=f.event.mouseHooks)}),function(){function x(a,b,c,e,f,g){for(var h=0,i=e.length;h<i;h++){var j=e[h];if(j){var k=!1;j=j[a];while(j){if(j[d]===c){k=e[j.sizset];break}if(j.nodeType===1){g||(j[d]=c,j.sizset=h);if(typeof b!="string"){if(j===b){k=!0;break}}else if(m.filter(b,[j]).length>0){k=j;break}}j=j[a]}e[h]=k}}}function w(a,b,c,e,f,g){for(var h=0,i=e.length;h<i;h++){var j=e[h];if(j){var k=!1;j=j[a];while(j){if(j[d]===c){k=e[j.sizset];break}j.nodeType===1&&!g&&(j[d]=c,j.sizset=h);if(j.nodeName.toLowerCase()===b){k=j;break}j=j[a]}e[h]=k}}}var a=/((?:\((?:\([^()]+\)|[^()]+)+\)|\[(?:\[[^\[\]]*\]|['"][^'"]*['"]|[^\[\]'"]+)+\]|\\.|[^ >+~,(\[\\]+)+|[>+~])(\s*,\s*)?((?:.|\r|\n)*)/g,d="sizcache"+(Math.random()+"").replace(".",""),e=0,g=Object.prototype.toString,h=!1,i=!0,j=/\\/g,k=/\r\n/g,l=/\W/;[0,0].sort(function(){i=!1;return 0});var m=function(b,d,e,f){e=e||[],d=d||c;var h=d;if(d.nodeType!==1&&d.nodeType!==9)return[];if(!b||typeof b!="string")return e;var i,j,k,l,n,q,r,t,u=!0,v=m.isXML(d),w=[],x=b;do{a.exec(""),i=a.exec(x);if(i){x=i[3],w.push(i[1]);if(i[2]){l=i[3];break}}}while(i);if(w.length>1&&p.exec(b))if(w.length===2&&o.relative[w[0]])j=y(w[0]+w[1],d,f);else{j=o.relative[w[0]]?[d]:m(w.shift(),d);while(w.length)b=w.shift(),o.relative[b]&&(b+=w.shift()),j=y(b,j,f)}else{!f&&w.length>1&&d.nodeType===9&&!v&&o.match.ID.test(w[0])&&!o.match.ID.test(w[w.length-1])&&(n=m.find(w.shift(),d,v),d=n.expr?m.filter(n.expr,n.set)[0]:n.set[0]);if(d){n=f?{expr:w.pop(),set:s(f)}:m.find(w.pop(),w.length===1&&(w[0]==="~"||w[0]==="+")&&d.parentNode?d.parentNode:d,v),j=n.expr?m.filter(n.expr,n.set):n.set,w.length>0?k=s(j):u=!1;while(w.length)q=w.pop(),r=q,o.relative[q]?r=w.pop():q="",r==null&&(r=d),o.relative[q](k,r,v)}else k=w=[]}k||(k=j),k||m.error(q||b);if(g.call(k)==="[object Array]")if(!u)e.push.apply(e,k);else if(d&&d.nodeType===1)for(t=0;k[t]!=null;t++)k[t]&&(k[t]===!0||k[t].nodeType===1&&m.contains(d,k[t]))&&e.push(j[t]);else for(t=0;k[t]!=null;t++)k[t]&&k[t].nodeType===1&&e.push(j[t]);else s(k,e);l&&(m(l,h,e,f),m.uniqueSort(e));return e};m.uniqueSort=function(a){if(u){h=i,a.sort(u);if(h)for(var b=1;b<a.length;b++)a[b]===a[b-1]&&a.splice(b--,1)}return a},m.matches=function(a,b){return m(a,null,null,b)},m.matchesSelector=function(a,b){return m(b,null,null,[a]).length>0},m.find=function(a,b,c){var d,e,f,g,h,i;if(!a)return[];for(e=0,f=o.order.length;e<f;e++){h=o.order[e];if(g=o.leftMatch[h].exec(a)){i=g[1],g.splice(1,1);if(i.substr(i.length-1)!=="\\"){g[1]=(g[1]||"").replace(j,""),d=o.find[h](g,b,c);if(d!=null){a=a.replace(o.match[h],"");break}}}}d||(d=typeof b.getElementsByTagName!="undefined"?b.getElementsByTagName("*"):[]);return{set:d,expr:a}},m.filter=function(a,c,d,e){var f,g,h,i,j,k,l,n,p,q=a,r=[],s=c,t=c&&c[0]&&m.isXML(c[0]);while(a&&c.length){for(h in o.filter)if((f=o.leftMatch[h].exec(a))!=null&&f[2]){k=o.filter[h],l=f[1],g=!1,f.splice(1,1);if(l.substr(l.length-1)==="\\")continue;s===r&&(r=[]);if(o.preFilter[h]){f=o.preFilter[h](f,s,d,r,e,t);if(!f)g=i=!0;else if(f===!0)continue}if(f)for(n=0;(j=s[n])!=null;n++)j&&(i=k(j,f,n,s),p=e^i,d&&i!=null?p?g=!0:s[n]=!1:p&&(r.push(j),g=!0));if(i!==b){d||(s=r),a=a.replace(o.match[h],"");if(!g)return[];break}}if(a===q)if(g==null)m.error(a);else break;q=a}return s},m.error=function(a){throw new Error("Syntax error, unrecognized expression: "+a)};var n=m.getText=function(a){var b,c,d=a.nodeType,e="";if(d){if(d===1||d===9){if(typeof a.textContent=="string")return a.textContent;if(typeof a.innerText=="string")return a.innerText.replace(k,"");for(a=a.firstChild;a;a=a.nextSibling)e+=n(a)}else if(d===3||d===4)return a.nodeValue}else for(b=0;c=a[b];b++)c.nodeType!==8&&(e+=n(c));return e},o=m.selectors={order:["ID","NAME","TAG"],match:{ID:/#((?:[\w\u00c0-\uFFFF\-]|\\.)+)/,CLASS:/\.((?:[\w\u00c0-\uFFFF\-]|\\.)+)/,NAME:/\[name=['"]*((?:[\w\u00c0-\uFFFF\-]|\\.)+)['"]*\]/,ATTR:/\[\s*((?:[\w\u00c0-\uFFFF\-]|\\.)+)\s*(?:(\S?=)\s*(?:(['"])(.*?)\3|(#?(?:[\w\u00c0-\uFFFF\-]|\\.)*)|)|)\s*\]/,TAG:/^((?:[\w\u00c0-\uFFFF\*\-]|\\.)+)/,CHILD:/:(only|nth|last|first)-child(?:\(\s*(even|odd|(?:[+\-]?\d+|(?:[+\-]?\d*)?n\s*(?:[+\-]\s*\d+)?))\s*\))?/,POS:/:(nth|eq|gt|lt|first|last|even|odd)(?:\((\d*)\))?(?=[^\-]|$)/,PSEUDO:/:((?:[\w\u00c0-\uFFFF\-]|\\.)+)(?:\((['"]?)((?:\([^\)]+\)|[^\(\)]*)+)\2\))?/},leftMatch:{},attrMap:{"class":"className","for":"htmlFor"},attrHandle:{href:function(a){return a.getAttribute("href")},type:function(a){return a.getAttribute("type")}},relative:{"+":function(a,b){var c=typeof b=="string",d=c&&!l.test(b),e=c&&!d;d&&(b=b.toLowerCase());for(var f=0,g=a.length,h;f<g;f++)if(h=a[f]){while((h=h.previousSibling)&&h.nodeType!==1);a[f]=e||h&&h.nodeName.toLowerCase()===b?h||!1:h===b}e&&m.filter(b,a,!0)},">":function(a,b){var c,d=typeof b=="string",e=0,f=a.length;if(d&&!l.test(b)){b=b.toLowerCase();for(;e<f;e++){c=a[e];if(c){var g=c.parentNode;a[e]=g.nodeName.toLowerCase()===b?g:!1}}}else{for(;e<f;e++)c=a[e],c&&(a[e]=d?c.parentNode:c.parentNode===b);d&&m.filter(b,a,!0)}},"":function(a,b,c){var d,f=e++,g=x;typeof b=="string"&&!l.test(b)&&(b=b.toLowerCase(),d=b,g=w),g("parentNode",b,f,a,d,c)},"~":function(a,b,c){var d,f=e++,g=x;typeof b=="string"&&!l.test(b)&&(b=b.toLowerCase(),d=b,g=w),g("previousSibling",b,f,a,d,c)}},find:{ID:function(a,b,c){if(typeof b.getElementById!="undefined"&&!c){var d=b.getElementById(a[1]);return d&&d.parentNode?[d]:[]}},NAME:function(a,b){if(typeof b.getElementsByName!="undefined"){var c=[],d=b.getElementsByName(a[1]);for(var e=0,f=d.length;e<f;e++)d[e].getAttribute("name")===a[1]&&c.push(d[e]);return c.length===0?null:c}},TAG:function(a,b){if(typeof b.getElementsByTagName!="undefined")return b.getElementsByTagName(a[1])}},preFilter:{CLASS:function(a,b,c,d,e,f){a=" "+a[1].replace(j,"")+" ";if(f)return a;for(var g=0,h;(h=b[g])!=null;g++)h&&(e^(h.className&&(" "+h.className+" ").replace(/[\t\n\r]/g," ").indexOf(a)>=0)?c||d.push(h):c&&(b[g]=!1));return!1},ID:function(a){return a[1].replace(j,"")},TAG:function(a,b){return a[1].replace(j,"").toLowerCase()},CHILD:function(a){if(a[1]==="nth"){a[2]||m.error(a[0]),a[2]=a[2].replace(/^\+|\s*/g,"");var b=/(-?)(\d*)(?:n([+\-]?\d*))?/.exec(a[2]==="even"&&"2n"||a[2]==="odd"&&"2n+1"||!/\D/.test(a[2])&&"0n+"+a[2]||a[2]);a[2]=b[1]+(b[2]||1)-0,a[3]=b[3]-0}else a[2]&&m.error(a[0]);a[0]=e++;return a},ATTR:function(a,b,c,d,e,f){var g=a[1]=a[1].replace(j,"");!f&&o.attrMap[g]&&(a[1]=o.attrMap[g]),a[4]=(a[4]||a[5]||"").replace(j,""),a[2]==="~="&&(a[4]=" "+a[4]+" ");return a},PSEUDO:function(b,c,d,e,f){if(b[1]==="not")if((a.exec(b[3])||"").length>1||/^\w/.test(b[3]))b[3]=m(b[3],null,null,c);else{var g=m.filter(b[3],c,d,!0^f);d||e.push.apply(e,g);return!1}else if(o.match.POS.test(b[0])||o.match.CHILD.test(b[0]))return!0;return b},POS:function(a){a.unshift(!0);return a}},filters:{enabled:function(a){return a.disabled===!1&&a.type!=="hidden"},disabled:function(a){return a.disabled===!0},checked:function(a){return a.checked===!0},selected:function(a){a.parentNode&&a.parentNode.selectedIndex;return a.selected===!0},parent:function(a){return!!a.firstChild},empty:function(a){return!a.firstChild},has:function(a,b,c){return!!m(c[3],a).length},header:function(a){return/h\d/i.test(a.nodeName)},text:function(a){var b=a.getAttribute("type"),c=a.type;return a.nodeName.toLowerCase()==="input"&&"text"===c&&(b===c||b===null)},radio:function(a){return a.nodeName.toLowerCase()==="input"&&"radio"===a.type},checkbox:function(a){return a.nodeName.toLowerCase()==="input"&&"checkbox"===a.type},file:function(a){return a.nodeName.toLowerCase()==="input"&&"file"===a.type},password:function(a){return a.nodeName.toLowerCase()==="input"&&"password"===a.type},submit:function(a){var b=a.nodeName.toLowerCase();return(b==="input"||b==="button")&&"submit"===a.type},image:function(a){return a.nodeName.toLowerCase()==="input"&&"image"===a.type},reset:function(a){var b=a.nodeName.toLowerCase();return(b==="input"||b==="button")&&"reset"===a.type},button:function(a){var b=a.nodeName.toLowerCase();return b==="input"&&"button"===a.type||b==="button"},input:function(a){return/input|select|textarea|button/i.test(a.nodeName)},focus:function(a){return a===a.ownerDocument.activeElement}},setFilters:{first:function(a,b){return b===0},last:function(a,b,c,d){return b===d.length-1},even:function(a,b){return b%2===0},odd:function(a,b){return b%2===1},lt:function(a,b,c){return b<c[3]-0},gt:function(a,b,c){return b>c[3]-0},nth:function(a,b,c){return c[3]-0===b},eq:function(a,b,c){return c[3]-0===b}},filter:{PSEUDO:function(a,b,c,d){var e=b[1],f=o.filters[e];if(f)return f(a,c,b,d);if(e==="contains")return(a.textContent||a.innerText||n([a])||"").indexOf(b[3])>=0;if(e==="not"){var g=b[3];for(var h=0,i=g.length;h<i;h++)if(g[h]===a)return!1;return!0}m.error(e)},CHILD:function(a,b){var c,e,f,g,h,i,j,k=b[1],l=a;switch(k){case"only":case"first":while(l=l.previousSibling)if(l.nodeType===1)return!1;if(k==="first")return!0;l=a;case"last":while(l=l.nextSibling)if(l.nodeType===1)return!1;return!0;case"nth":c=b[2],e=b[3];if(c===1&&e===0)return!0;f=b[0],g=a.parentNode;if(g&&(g[d]!==f||!a.nodeIndex)){i=0;for(l=g.firstChild;l;l=l.nextSibling)l.nodeType===1&&(l.nodeIndex=++i);g[d]=f}j=a.nodeIndex-e;return c===0?j===0:j%c===0&&j/c>=0}},ID:function(a,b){return a.nodeType===1&&a.getAttribute("id")===b},TAG:function(a,b){return b==="*"&&a.nodeType===1||!!a.nodeName&&a.nodeName.toLowerCase()===b},CLASS:function(a,b){return(" "+(a.className||a.getAttribute("class"))+" ").indexOf(b)>-1},ATTR:function(a,b){var c=b[1],d=m.attr?m.attr(a,c):o.attrHandle[c]?o.attrHandle[c](a):a[c]!=null?a[c]:a.getAttribute(c),e=d+"",f=b[2],g=b[4];return d==null?f==="!=":!f&&m.attr?d!=null:f==="="?e===g:f==="*="?e.indexOf(g)>=0:f==="~="?(" "+e+" ").indexOf(g)>=0:g?f==="!="?e!==g:f==="^="?e.indexOf(g)===0:f==="$="?e.substr(e.length-g.length)===g:f==="|="?e===g||e.substr(0,g.length+1)===g+"-":!1:e&&d!==!1},POS:function(a,b,c,d){var e=b[2],f=o.setFilters[e];if(f)return f(a,c,b,d)}}},p=o.match.POS,q=function(a,b){return"\\"+(b-0+1)};for(var r in o.match)o.match[r]=new RegExp(o.match[r].source+/(?![^\[]*\])(?![^\(]*\))/.source),o.leftMatch[r]=new RegExp(/(^(?:.|\r|\n)*?)/.source+o.match[r].source.replace(/\\(\d+)/g,q));var s=function(a,b){a=Array.prototype.slice.call(a,0);if(b){b.push.apply(b,a);return b}return a};try{Array.prototype.slice.call(c.documentElement.childNodes,0)[0].nodeType}catch(t){s=function(a,b){var c=0,d=b||[];if(g.call(a)==="[object Array]")Array.prototype.push.apply(d,a);else if(typeof a.length=="number")for(var e=a.length;c<e;c++)d.push(a[c]);else for(;a[c];c++)d.push(a[c]);return d}}var u,v;c.documentElement.compareDocumentPosition?u=function(a,b){if(a===b){h=!0;return 0}if(!a.compareDocumentPosition||!b.compareDocumentPosition)return a.compareDocumentPosition?-1:1;return a.compareDocumentPosition(b)&4?-1:1}:(u=function(a,b){if(a===b){h=!0;return 0}if(a.sourceIndex&&b.sourceIndex)return a.sourceIndex-b.sourceIndex;var c,d,e=[],f=[],g=a.parentNode,i=b.parentNode,j=g;if(g===i)return v(a,b);if(!g)return-1;if(!i)return 1;while(j)e.unshift(j),j=j.parentNode;j=i;while(j)f.unshift(j),j=j.parentNode;c=e.length,d=f.length;for(var k=0;k<c&&k<d;k++)if(e[k]!==f[k])return v(e[k],f[k]);return k===c?v(a,f[k],-1):v(e[k],b,1)},v=function(a,b,c){if(a===b)return c;var d=a.nextSibling;while(d){if(d===b)return-1;d=d.nextSibling}return 1}),function(){var a=c.createElement("div"),d="script"+(new Date).getTime(),e=c.documentElement;a.innerHTML="<a name='"+d+"'/>",e.insertBefore(a,e.firstChild),c.getElementById(d)&&(o.find.ID=function(a,c,d){if(typeof c.getElementById!="undefined"&&!d){var e=c.getElementById(a[1]);return e?e.id===a[1]||typeof e.getAttributeNode!="undefined"&&e.getAttributeNode("id").nodeValue===a[1]?[e]:b:[]}},o.filter.ID=function(a,b){var c=typeof a.getAttributeNode!="undefined"&&a.getAttributeNode("id");return a.nodeType===1&&c&&c.nodeValue===b}),e.removeChild(a),e=a=null}(),function(){var a=c.createElement("div");a.appendChild(c.createComment("")),a.getElementsByTagName("*").length>0&&(o.find.TAG=function(a,b){var c=b.getElementsByTagName(a[1]);if(a[1]==="*"){var d=[];for(var e=0;c[e];e++)c[e].nodeType===1&&d.push(c[e]);c=d}return c}),a.innerHTML="<a href='#'></a>",a.firstChild&&typeof a.firstChild.getAttribute!="undefined"&&a.firstChild.getAttribute("href")!=="#"&&(o.attrHandle.href=function(a){return a.getAttribute("href",2)}),a=null}(),c.querySelectorAll&&function(){var a=m,b=c.createElement("div"),d="__sizzle__";b.innerHTML="<p class='TEST'></p>";if(!b.querySelectorAll||b.querySelectorAll(".TEST").length!==0){m=function(b,e,f,g){e=e||c;if(!g&&!m.isXML(e)){var h=/^(\w+$)|^\.([\w\-]+$)|^#([\w\-]+$)/.exec(b);if(h&&(e.nodeType===1||e.nodeType===9)){if(h[1])return s(e.getElementsByTagName(b),f);if(h[2]&&o.find.CLASS&&e.getElementsByClassName)return s(e.getElementsByClassName(h[2]),f)}if(e.nodeType===9){if(b==="body"&&e.body)return s([e.body],f);if(h&&h[3]){var i=e.getElementById(h[3]);if(!i||!i.parentNode)return s([],f);if(i.id===h[3])return s([i],f)}try{return s(e.querySelectorAll(b),f)}catch(j){}}else if(e.nodeType===1&&e.nodeName.toLowerCase()!=="object"){var k=e,l=e.getAttribute("id"),n=l||d,p=e.parentNode,q=/^\s*[+~]/.test(b);l?n=n.replace(/'/g,"\\$&"):e.setAttribute("id",n),q&&p&&(e=e.parentNode);try{if(!q||p)return s(e.querySelectorAll("[id='"+n+"'] "+b),f)}catch(r){}finally{l||k.removeAttribute("id")}}}return a(b,e,f,g)};for(var e in a)m[e]=a[e];b=null}}(),function(){var a=c.documentElement,b=a.matchesSelector||a.mozMatchesSelector||a.webkitMatchesSelector||a.msMatchesSelector;if(b){var d=!b.call(c.createElement("div"),"div"),e=!1;try{b.call(c.documentElement,"[test!='']:sizzle")}catch(f){e=!0}m.matchesSelector=function(a,c){c=c.replace(/\=\s*([^'"\]]*)\s*\]/g,"='$1']");if(!m.isXML(a))try{if(e||!o.match.PSEUDO.test(c)&&!/!=/.test(c)){var f=b.call(a,c);if(f||!d||a.document&&a.document.nodeType!==11)return f}}catch(g){}return m(c,null,null,[a]).length>0}}}(),function(){var a=c.createElement("div");a.innerHTML="<div class='test e'></div><div class='test'></div>";if(!!a.getElementsByClassName&&a.getElementsByClassName("e").length!==0){a.lastChild.className="e";if(a.getElementsByClassName("e").length===1)return;o.order.splice(1,0,"CLASS"),o.find.CLASS=function(a,b,c){if(typeof b.getElementsByClassName!="undefined"&&!c)return b.getElementsByClassName(a[1])},a=null}}(),c.documentElement.contains?m.contains=function(a,b){return a!==b&&(a.contains?a.contains(b):!0)}:c.documentElement.compareDocumentPosition?m.contains=function(a,b){return!!(a.compareDocumentPosition(b)&16)}:m.contains=function(){return!1},m.isXML=function(a){var b=(a?a.ownerDocument||a:0).documentElement;return b?b.nodeName!=="HTML":!1};var y=function(a,b,c){var d,e=[],f="",g=b.nodeType?[b]:b;while(d=o.match.PSEUDO.exec(a))f+=d[0],a=a.replace(o.match.PSEUDO,"");a=o.relative[a]?a+"*":a;for(var h=0,i=g.length;h<i;h++)m(a,g[h],e,c);return m.filter(f,e)};m.attr=f.attr,m.selectors.attrMap={},f.find=m,f.expr=m.selectors,f.expr[":"]=f.expr.filters,f.unique=m.uniqueSort,f.text=m.getText,f.isXMLDoc=m.isXML,f.contains=m.contains}();var L=/Until$/,M=/^(?:parents|prevUntil|prevAll)/,N=/,/,O=/^.[^:#\[\.,]*$/,P=Array.prototype.slice,Q=f.expr.match.POS,R={children:!0,contents:!0,next:!0,prev:!0};f.fn.extend({find:function(a){var b=this,c,d;if(typeof a!="string")return f(a).filter(function(){for(c=0,d=b.length;c<d;c++)if(f.contains(b[c],this))return!0});var e=this.pushStack("","find",a),g,h,i;for(c=0,d=this.length;c<d;c++){g=e.length,f.find(a,this[c],e);if(c>0)for(h=g;h<e.length;h++)for(i=0;i<g;i++)if(e[i]===e[h]){e.splice(h--,1);break}}return e},has:function(a){var b=f(a);return this.filter(function(){for(var a=0,c=b.length;a<c;a++)if(f.contains(this,b[a]))return!0})},not:function(a){return this.pushStack(T(this,a,!1),"not",a)},filter:function(a){return this.pushStack(T(this,a,!0),"filter",a)},is:function(a){return!!a&&(typeof a=="string"?Q.test(a)?f(a,this.context).index(this[0])>=0:f.filter(a,this).length>0:this.filter(a).length>0)},closest:function(a,b){var c=[],d,e,g=this[0];if(f.isArray(a)){var h=1;while(g&&g.ownerDocument&&g!==b){for(d=0;d<a.length;d++)f(g).is(a[d])&&c.push({selector:a[d],elem:g,level:h});g=g.parentNode,h++}return c}var i=Q.test(a)||typeof a!="string"?f(a,b||this.context):0;for(d=0,e=this.length;d<e;d++){g=this[d];while(g){if(i?i.index(g)>-1:f.find.matchesSelector(g,a)){c.push(g);break}g=g.parentNode;if(!g||!g.ownerDocument||g===b||g.nodeType===11)break}}c=c.length>1?f.unique(c):c;return this.pushStack(c,"closest",a)},index:function(a){if(!a)return this[0]&&this[0].parentNode?this.prevAll().length:-1;if(typeof a=="string")return f.inArray(this[0],f(a));return f.inArray(a.jquery?a[0]:a,this)},add:function(a,b){var c=typeof a=="string"?f(a,b):f.makeArray(a&&a.nodeType?[a]:a),d=f.merge(this.get(),c);return this.pushStack(S(c[0])||S(d[0])?d:f.unique(d))},andSelf:function(){return this.add(this.prevObject)}}),f.each({parent:function(a){var b=a.parentNode;return b&&b.nodeType!==11?b:null},parents:function(a){return f.dir(a,"parentNode")},parentsUntil:function(a,b,c){return f.dir(a,"parentNode",c)},next:function(a){return f.nth(a,2,"nextSibling")},prev:function(a){return f.nth(a,2,"previousSibling")},nextAll:function(a){return f.dir(a,"nextSibling")},prevAll:function(a){return f.dir(a,"previousSibling")},nextUntil:function(a,b,c){return f.dir(a,"nextSibling",c)},prevUntil:function(a,b,c){return f.dir(a,"previousSibling",c)},siblings:function(a){return f.sibling(a.parentNode.firstChild,a)},children:function(a){return f.sibling(a.firstChild)},contents:function(a){return f.nodeName(a,"iframe")?a.contentDocument||a.contentWindow.document:f.makeArray(a.childNodes)}},function(a,b){f.fn[a]=function(c,d){var e=f.map(this,b,c);L.test(a)||(d=c),d&&typeof d=="string"&&(e=f.filter(d,e)),e=this.length>1&&!R[a]?f.unique(e):e,(this.length>1||N.test(d))&&M.test(a)&&(e=e.reverse());return this.pushStack(e,a,P.call(arguments).join(","))}}),f.extend({filter:function(a,b,c){c&&(a=":not("+a+")");return b.length===1?f.find.matchesSelector(b[0],a)?[b[0]]:[]:f.find.matches(a,b)},dir:function(a,c,d){var e=[],g=a[c];while(g&&g.nodeType!==9&&(d===b||g.nodeType!==1||!f(g).is(d)))g.nodeType===1&&e.push(g),g=g[c];return e},nth:function(a,b,c,d){b=b||1;var e=0;for(;a;a=a[c])if(a.nodeType===1&&++e===b)break;return a},sibling:function(a,b){var c=[];for(;a;a=a.nextSibling)a.nodeType===1&&a!==b&&c.push(a);return c}});var V="abbr|article|aside|audio|canvas|datalist|details|figcaption|figure|footer|header|hgroup|mark|meter|nav|output|progress|section|summary|time|video",W=/ jQuery\d+="(?:\d+|null)"/g,X=/^\s+/,Y=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/ig,Z=/<([\w:]+)/,$=/<tbody/i,_=/<|&#?\w+;/,ba=/<(?:script|style)/i,bb=/<(?:script|object|embed|option|style)/i,bc=new RegExp("<(?:"+V+")","i"),bd=/checked\s*(?:[^=]|=\s*.checked.)/i,be=/\/(java|ecma)script/i,bf=/^\s*<!(?:\[CDATA\[|\-\-)/,bg={option:[1,"<select multiple='multiple'>","</select>"],legend:[1,"<fieldset>","</fieldset>"],thead:[1,"<table>","</table>"],tr:[2,"<table><tbody>","</tbody></table>"],td:[3,"<table><tbody><tr>","</tr></tbody></table>"],col:[2,"<table><tbody></tbody><colgroup>","</colgroup></table>"],area:[1,"<map>","</map>"],_default:[0,"",""]},bh=U(c);bg.optgroup=bg.option,bg.tbody=bg.tfoot=bg.colgroup=bg.caption=bg.thead,bg.th=bg.td,f.support.htmlSerialize||(bg._default=[1,"div<div>","</div>"]),f.fn.extend({text:function(a){if(f.isFunction(a))return this.each(function(b){var c=f(this);c.text(a.call(this,b,c.text()))});if(typeof a!="object"&&a!==b)return this.empty().append((this[0]&&this[0].ownerDocument||c).createTextNode(a));return f.text(this)},wrapAll:function(a){if(f.isFunction(a))return this.each(function(b){f(this).wrapAll(a.call(this,b))});if(this[0]){var b=f(a,this[0].ownerDocument).eq(0).clone(!0);this[0].parentNode&&b.insertBefore(this[0]),b.map(function(){var a=this;while(a.firstChild&&a.firstChild.nodeType===1)a=a.firstChild;return a}).append(this)}return this},wrapInner:function(a){if(f.isFunction(a))return this.each(function(b){f(this).wrapInner(a.call(this,b))});return this.each(function(){var b=f(this),c=b.contents();c.length?c.wrapAll(a):b.append(a)})},wrap:function(a){var b=f.isFunction(a);return this.each(function(c){f(this).wrapAll(b?a.call(this,c):a)})},unwrap:function(){return this.parent().each(function(){f.nodeName(this,"body")||f(this).replaceWith(this.childNodes)}).end()},append:function(){return this.domManip(arguments,!0,function(a){this.nodeType===1&&this.appendChild(a)})},prepend:function(){return this.domManip(arguments,!0,function(a){this.nodeType===1&&this.insertBefore(a,this.firstChild)})},before:function(){if(this[0]&&this[0].parentNode)return this.domManip(arguments,!1,function(a){this.parentNode.insertBefore(a,this)});if(arguments.length){var a=f.clean(arguments);a.push.apply(a,this.toArray());return this.pushStack(a,"before",arguments)}},after:function(){if(this[0]&&this[0].parentNode)return this.domManip(arguments,!1,function(a){this.parentNode.insertBefore(a,this.nextSibling)});if(arguments.length){var a=this.pushStack(this,"after",arguments);a.push.apply(a,f.clean(arguments));return a}},remove:function(a,b){for(var c=0,d;(d=this[c])!=null;c++)if(!a||f.filter(a,[d]).length)!b&&d.nodeType===1&&(f.cleanData(d.getElementsByTagName("*")),f.cleanData([d])),d.parentNode&&d.parentNode.removeChild(d);return this},empty:function() -{for(var a=0,b;(b=this[a])!=null;a++){b.nodeType===1&&f.cleanData(b.getElementsByTagName("*"));while(b.firstChild)b.removeChild(b.firstChild)}return this},clone:function(a,b){a=a==null?!1:a,b=b==null?a:b;return this.map(function(){return f.clone(this,a,b)})},html:function(a){if(a===b)return this[0]&&this[0].nodeType===1?this[0].innerHTML.replace(W,""):null;if(typeof a=="string"&&!ba.test(a)&&(f.support.leadingWhitespace||!X.test(a))&&!bg[(Z.exec(a)||["",""])[1].toLowerCase()]){a=a.replace(Y,"<$1></$2>");try{for(var c=0,d=this.length;c<d;c++)this[c].nodeType===1&&(f.cleanData(this[c].getElementsByTagName("*")),this[c].innerHTML=a)}catch(e){this.empty().append(a)}}else f.isFunction(a)?this.each(function(b){var c=f(this);c.html(a.call(this,b,c.html()))}):this.empty().append(a);return this},replaceWith:function(a){if(this[0]&&this[0].parentNode){if(f.isFunction(a))return this.each(function(b){var c=f(this),d=c.html();c.replaceWith(a.call(this,b,d))});typeof a!="string"&&(a=f(a).detach());return this.each(function(){var b=this.nextSibling,c=this.parentNode;f(this).remove(),b?f(b).before(a):f(c).append(a)})}return this.length?this.pushStack(f(f.isFunction(a)?a():a),"replaceWith",a):this},detach:function(a){return this.remove(a,!0)},domManip:function(a,c,d){var e,g,h,i,j=a[0],k=[];if(!f.support.checkClone&&arguments.length===3&&typeof j=="string"&&bd.test(j))return this.each(function(){f(this).domManip(a,c,d,!0)});if(f.isFunction(j))return this.each(function(e){var g=f(this);a[0]=j.call(this,e,c?g.html():b),g.domManip(a,c,d)});if(this[0]){i=j&&j.parentNode,f.support.parentNode&&i&&i.nodeType===11&&i.childNodes.length===this.length?e={fragment:i}:e=f.buildFragment(a,this,k),h=e.fragment,h.childNodes.length===1?g=h=h.firstChild:g=h.firstChild;if(g){c=c&&f.nodeName(g,"tr");for(var l=0,m=this.length,n=m-1;l<m;l++)d.call(c?bi(this[l],g):this[l],e.cacheable||m>1&&l<n?f.clone(h,!0,!0):h)}k.length&&f.each(k,bp)}return this}}),f.buildFragment=function(a,b,d){var e,g,h,i,j=a[0];b&&b[0]&&(i=b[0].ownerDocument||b[0]),i.createDocumentFragment||(i=c),a.length===1&&typeof j=="string"&&j.length<512&&i===c&&j.charAt(0)==="<"&&!bb.test(j)&&(f.support.checkClone||!bd.test(j))&&(f.support.html5Clone||!bc.test(j))&&(g=!0,h=f.fragments[j],h&&h!==1&&(e=h)),e||(e=i.createDocumentFragment(),f.clean(a,i,e,d)),g&&(f.fragments[j]=h?e:1);return{fragment:e,cacheable:g}},f.fragments={},f.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(a,b){f.fn[a]=function(c){var d=[],e=f(c),g=this.length===1&&this[0].parentNode;if(g&&g.nodeType===11&&g.childNodes.length===1&&e.length===1){e[b](this[0]);return this}for(var h=0,i=e.length;h<i;h++){var j=(h>0?this.clone(!0):this).get();f(e[h])[b](j),d=d.concat(j)}return this.pushStack(d,a,e.selector)}}),f.extend({clone:function(a,b,c){var d,e,g,h=f.support.html5Clone||!bc.test("<"+a.nodeName)?a.cloneNode(!0):bo(a);if((!f.support.noCloneEvent||!f.support.noCloneChecked)&&(a.nodeType===1||a.nodeType===11)&&!f.isXMLDoc(a)){bk(a,h),d=bl(a),e=bl(h);for(g=0;d[g];++g)e[g]&&bk(d[g],e[g])}if(b){bj(a,h);if(c){d=bl(a),e=bl(h);for(g=0;d[g];++g)bj(d[g],e[g])}}d=e=null;return h},clean:function(a,b,d,e){var g;b=b||c,typeof b.createElement=="undefined"&&(b=b.ownerDocument||b[0]&&b[0].ownerDocument||c);var h=[],i;for(var j=0,k;(k=a[j])!=null;j++){typeof k=="number"&&(k+="");if(!k)continue;if(typeof k=="string")if(!_.test(k))k=b.createTextNode(k);else{k=k.replace(Y,"<$1></$2>");var l=(Z.exec(k)||["",""])[1].toLowerCase(),m=bg[l]||bg._default,n=m[0],o=b.createElement("div");b===c?bh.appendChild(o):U(b).appendChild(o),o.innerHTML=m[1]+k+m[2];while(n--)o=o.lastChild;if(!f.support.tbody){var p=$.test(k),q=l==="table"&&!p?o.firstChild&&o.firstChild.childNodes:m[1]==="<table>"&&!p?o.childNodes:[];for(i=q.length-1;i>=0;--i)f.nodeName(q[i],"tbody")&&!q[i].childNodes.length&&q[i].parentNode.removeChild(q[i])}!f.support.leadingWhitespace&&X.test(k)&&o.insertBefore(b.createTextNode(X.exec(k)[0]),o.firstChild),k=o.childNodes}var r;if(!f.support.appendChecked)if(k[0]&&typeof (r=k.length)=="number")for(i=0;i<r;i++)bn(k[i]);else bn(k);k.nodeType?h.push(k):h=f.merge(h,k)}if(d){g=function(a){return!a.type||be.test(a.type)};for(j=0;h[j];j++)if(e&&f.nodeName(h[j],"script")&&(!h[j].type||h[j].type.toLowerCase()==="text/javascript"))e.push(h[j].parentNode?h[j].parentNode.removeChild(h[j]):h[j]);else{if(h[j].nodeType===1){var s=f.grep(h[j].getElementsByTagName("script"),g);h.splice.apply(h,[j+1,0].concat(s))}d.appendChild(h[j])}}return h},cleanData:function(a){var b,c,d=f.cache,e=f.event.special,g=f.support.deleteExpando;for(var h=0,i;(i=a[h])!=null;h++){if(i.nodeName&&f.noData[i.nodeName.toLowerCase()])continue;c=i[f.expando];if(c){b=d[c];if(b&&b.events){for(var j in b.events)e[j]?f.event.remove(i,j):f.removeEvent(i,j,b.handle);b.handle&&(b.handle.elem=null)}g?delete i[f.expando]:i.removeAttribute&&i.removeAttribute(f.expando),delete d[c]}}}});var bq=/alpha\([^)]*\)/i,br=/opacity=([^)]*)/,bs=/([A-Z]|^ms)/g,bt=/^-?\d+(?:px)?$/i,bu=/^-?\d/,bv=/^([\-+])=([\-+.\de]+)/,bw={position:"absolute",visibility:"hidden",display:"block"},bx=["Left","Right"],by=["Top","Bottom"],bz,bA,bB;f.fn.css=function(a,c){if(arguments.length===2&&c===b)return this;return f.access(this,a,c,!0,function(a,c,d){return d!==b?f.style(a,c,d):f.css(a,c)})},f.extend({cssHooks:{opacity:{get:function(a,b){if(b){var c=bz(a,"opacity","opacity");return c===""?"1":c}return a.style.opacity}}},cssNumber:{fillOpacity:!0,fontWeight:!0,lineHeight:!0,opacity:!0,orphans:!0,widows:!0,zIndex:!0,zoom:!0},cssProps:{"float":f.support.cssFloat?"cssFloat":"styleFloat"},style:function(a,c,d,e){if(!!a&&a.nodeType!==3&&a.nodeType!==8&&!!a.style){var g,h,i=f.camelCase(c),j=a.style,k=f.cssHooks[i];c=f.cssProps[i]||i;if(d===b){if(k&&"get"in k&&(g=k.get(a,!1,e))!==b)return g;return j[c]}h=typeof d,h==="string"&&(g=bv.exec(d))&&(d=+(g[1]+1)*+g[2]+parseFloat(f.css(a,c)),h="number");if(d==null||h==="number"&&isNaN(d))return;h==="number"&&!f.cssNumber[i]&&(d+="px");if(!k||!("set"in k)||(d=k.set(a,d))!==b)try{j[c]=d}catch(l){}}},css:function(a,c,d){var e,g;c=f.camelCase(c),g=f.cssHooks[c],c=f.cssProps[c]||c,c==="cssFloat"&&(c="float");if(g&&"get"in g&&(e=g.get(a,!0,d))!==b)return e;if(bz)return bz(a,c)},swap:function(a,b,c){var d={};for(var e in b)d[e]=a.style[e],a.style[e]=b[e];c.call(a);for(e in b)a.style[e]=d[e]}}),f.curCSS=f.css,f.each(["height","width"],function(a,b){f.cssHooks[b]={get:function(a,c,d){var e;if(c){if(a.offsetWidth!==0)return bC(a,b,d);f.swap(a,bw,function(){e=bC(a,b,d)});return e}},set:function(a,b){if(!bt.test(b))return b;b=parseFloat(b);if(b>=0)return b+"px"}}}),f.support.opacity||(f.cssHooks.opacity={get:function(a,b){return br.test((b&&a.currentStyle?a.currentStyle.filter:a.style.filter)||"")?parseFloat(RegExp.$1)/100+"":b?"1":""},set:function(a,b){var c=a.style,d=a.currentStyle,e=f.isNumeric(b)?"alpha(opacity="+b*100+")":"",g=d&&d.filter||c.filter||"";c.zoom=1;if(b>=1&&f.trim(g.replace(bq,""))===""){c.removeAttribute("filter");if(d&&!d.filter)return}c.filter=bq.test(g)?g.replace(bq,e):g+" "+e}}),f(function(){f.support.reliableMarginRight||(f.cssHooks.marginRight={get:function(a,b){var c;f.swap(a,{display:"inline-block"},function(){b?c=bz(a,"margin-right","marginRight"):c=a.style.marginRight});return c}})}),c.defaultView&&c.defaultView.getComputedStyle&&(bA=function(a,b){var c,d,e;b=b.replace(bs,"-$1").toLowerCase(),(d=a.ownerDocument.defaultView)&&(e=d.getComputedStyle(a,null))&&(c=e.getPropertyValue(b),c===""&&!f.contains(a.ownerDocument.documentElement,a)&&(c=f.style(a,b)));return c}),c.documentElement.currentStyle&&(bB=function(a,b){var c,d,e,f=a.currentStyle&&a.currentStyle[b],g=a.style;f===null&&g&&(e=g[b])&&(f=e),!bt.test(f)&&bu.test(f)&&(c=g.left,d=a.runtimeStyle&&a.runtimeStyle.left,d&&(a.runtimeStyle.left=a.currentStyle.left),g.left=b==="fontSize"?"1em":f||0,f=g.pixelLeft+"px",g.left=c,d&&(a.runtimeStyle.left=d));return f===""?"auto":f}),bz=bA||bB,f.expr&&f.expr.filters&&(f.expr.filters.hidden=function(a){var b=a.offsetWidth,c=a.offsetHeight;return b===0&&c===0||!f.support.reliableHiddenOffsets&&(a.style&&a.style.display||f.css(a,"display"))==="none"},f.expr.filters.visible=function(a){return!f.expr.filters.hidden(a)});var bD=/%20/g,bE=/\[\]$/,bF=/\r?\n/g,bG=/#.*$/,bH=/^(.*?):[ \t]*([^\r\n]*)\r?$/mg,bI=/^(?:color|date|datetime|datetime-local|email|hidden|month|number|password|range|search|tel|text|time|url|week)$/i,bJ=/^(?:about|app|app\-storage|.+\-extension|file|res|widget):$/,bK=/^(?:GET|HEAD)$/,bL=/^\/\//,bM=/\?/,bN=/<script\b[^<]*(?:(?!<\/script>)<[^<]*)*<\/script>/gi,bO=/^(?:select|textarea)/i,bP=/\s+/,bQ=/([?&])_=[^&]*/,bR=/^([\w\+\.\-]+:)(?:\/\/([^\/?#:]*)(?::(\d+))?)?/,bS=f.fn.load,bT={},bU={},bV,bW,bX=["*/"]+["*"];try{bV=e.href}catch(bY){bV=c.createElement("a"),bV.href="",bV=bV.href}bW=bR.exec(bV.toLowerCase())||[],f.fn.extend({load:function(a,c,d){if(typeof a!="string"&&bS)return bS.apply(this,arguments);if(!this.length)return this;var e=a.indexOf(" ");if(e>=0){var g=a.slice(e,a.length);a=a.slice(0,e)}var h="GET";c&&(f.isFunction(c)?(d=c,c=b):typeof c=="object"&&(c=f.param(c,f.ajaxSettings.traditional),h="POST"));var i=this;f.ajax({url:a,type:h,dataType:"html",data:c,complete:function(a,b,c){c=a.responseText,a.isResolved()&&(a.done(function(a){c=a}),i.html(g?f("<div>").append(c.replace(bN,"")).find(g):c)),d&&i.each(d,[c,b,a])}});return this},serialize:function(){return f.param(this.serializeArray())},serializeArray:function(){return this.map(function(){return this.elements?f.makeArray(this.elements):this}).filter(function(){return this.name&&!this.disabled&&(this.checked||bO.test(this.nodeName)||bI.test(this.type))}).map(function(a,b){var c=f(this).val();return c==null?null:f.isArray(c)?f.map(c,function(a,c){return{name:b.name,value:a.replace(bF,"\r\n")}}):{name:b.name,value:c.replace(bF,"\r\n")}}).get()}}),f.each("ajaxStart ajaxStop ajaxComplete ajaxError ajaxSuccess ajaxSend".split(" "),function(a,b){f.fn[b]=function(a){return this.on(b,a)}}),f.each(["get","post"],function(a,c){f[c]=function(a,d,e,g){f.isFunction(d)&&(g=g||e,e=d,d=b);return f.ajax({type:c,url:a,data:d,success:e,dataType:g})}}),f.extend({getScript:function(a,c){return f.get(a,b,c,"script")},getJSON:function(a,b,c){return f.get(a,b,c,"json")},ajaxSetup:function(a,b){b?b_(a,f.ajaxSettings):(b=a,a=f.ajaxSettings),b_(a,b);return a},ajaxSettings:{url:bV,isLocal:bJ.test(bW[1]),global:!0,type:"GET",contentType:"application/x-www-form-urlencoded",processData:!0,async:!0,accepts:{xml:"application/xml, text/xml",html:"text/html",text:"text/plain",json:"application/json, text/javascript","*":bX},contents:{xml:/xml/,html:/html/,json:/json/},responseFields:{xml:"responseXML",text:"responseText"},converters:{"* text":a.String,"text html":!0,"text json":f.parseJSON,"text xml":f.parseXML},flatOptions:{context:!0,url:!0}},ajaxPrefilter:bZ(bT),ajaxTransport:bZ(bU),ajax:function(a,c){function w(a,c,l,m){if(s!==2){s=2,q&&clearTimeout(q),p=b,n=m||"",v.readyState=a>0?4:0;var o,r,u,w=c,x=l?cb(d,v,l):b,y,z;if(a>=200&&a<300||a===304){if(d.ifModified){if(y=v.getResponseHeader("Last-Modified"))f.lastModified[k]=y;if(z=v.getResponseHeader("Etag"))f.etag[k]=z}if(a===304)w="notmodified",o=!0;else try{r=cc(d,x),w="success",o=!0}catch(A){w="parsererror",u=A}}else{u=w;if(!w||a)w="error",a<0&&(a=0)}v.status=a,v.statusText=""+(c||w),o?h.resolveWith(e,[r,w,v]):h.rejectWith(e,[v,w,u]),v.statusCode(j),j=b,t&&g.trigger("ajax"+(o?"Success":"Error"),[v,d,o?r:u]),i.fireWith(e,[v,w]),t&&(g.trigger("ajaxComplete",[v,d]),--f.active||f.event.trigger("ajaxStop"))}}typeof a=="object"&&(c=a,a=b),c=c||{};var d=f.ajaxSetup({},c),e=d.context||d,g=e!==d&&(e.nodeType||e instanceof f)?f(e):f.event,h=f.Deferred(),i=f.Callbacks("once memory"),j=d.statusCode||{},k,l={},m={},n,o,p,q,r,s=0,t,u,v={readyState:0,setRequestHeader:function(a,b){if(!s){var c=a.toLowerCase();a=m[c]=m[c]||a,l[a]=b}return this},getAllResponseHeaders:function(){return s===2?n:null},getResponseHeader:function(a){var c;if(s===2){if(!o){o={};while(c=bH.exec(n))o[c[1].toLowerCase()]=c[2]}c=o[a.toLowerCase()]}return c===b?null:c},overrideMimeType:function(a){s||(d.mimeType=a);return this},abort:function(a){a=a||"abort",p&&p.abort(a),w(0,a);return this}};h.promise(v),v.success=v.done,v.error=v.fail,v.complete=i.add,v.statusCode=function(a){if(a){var b;if(s<2)for(b in a)j[b]=[j[b],a[b]];else b=a[v.status],v.then(b,b)}return this},d.url=((a||d.url)+"").replace(bG,"").replace(bL,bW[1]+"//"),d.dataTypes=f.trim(d.dataType||"*").toLowerCase().split(bP),d.crossDomain==null&&(r=bR.exec(d.url.toLowerCase()),d.crossDomain=!(!r||r[1]==bW[1]&&r[2]==bW[2]&&(r[3]||(r[1]==="http:"?80:443))==(bW[3]||(bW[1]==="http:"?80:443)))),d.data&&d.processData&&typeof d.data!="string"&&(d.data=f.param(d.data,d.traditional)),b$(bT,d,c,v);if(s===2)return!1;t=d.global,d.type=d.type.toUpperCase(),d.hasContent=!bK.test(d.type),t&&f.active++===0&&f.event.trigger("ajaxStart");if(!d.hasContent){d.data&&(d.url+=(bM.test(d.url)?"&":"?")+d.data,delete d.data),k=d.url;if(d.cache===!1){var x=f.now(),y=d.url.replace(bQ,"$1_="+x);d.url=y+(y===d.url?(bM.test(d.url)?"&":"?")+"_="+x:"")}}(d.data&&d.hasContent&&d.contentType!==!1||c.contentType)&&v.setRequestHeader("Content-Type",d.contentType),d.ifModified&&(k=k||d.url,f.lastModified[k]&&v.setRequestHeader("If-Modified-Since",f.lastModified[k]),f.etag[k]&&v.setRequestHeader("If-None-Match",f.etag[k])),v.setRequestHeader("Accept",d.dataTypes[0]&&d.accepts[d.dataTypes[0]]?d.accepts[d.dataTypes[0]]+(d.dataTypes[0]!=="*"?", "+bX+"; q=0.01":""):d.accepts["*"]);for(u in d.headers)v.setRequestHeader(u,d.headers[u]);if(d.beforeSend&&(d.beforeSend.call(e,v,d)===!1||s===2)){v.abort();return!1}for(u in{success:1,error:1,complete:1})v[u](d[u]);p=b$(bU,d,c,v);if(!p)w(-1,"No Transport");else{v.readyState=1,t&&g.trigger("ajaxSend",[v,d]),d.async&&d.timeout>0&&(q=setTimeout(function(){v.abort("timeout")},d.timeout));try{s=1,p.send(l,w)}catch(z){if(s<2)w(-1,z);else throw z}}return v},param:function(a,c){var d=[],e=function(a,b){b=f.isFunction(b)?b():b,d[d.length]=encodeURIComponent(a)+"="+encodeURIComponent(b)};c===b&&(c=f.ajaxSettings.traditional);if(f.isArray(a)||a.jquery&&!f.isPlainObject(a))f.each(a,function(){e(this.name,this.value)});else for(var g in a)ca(g,a[g],c,e);return d.join("&").replace(bD,"+")}}),f.extend({active:0,lastModified:{},etag:{}});var cd=f.now(),ce=/(\=)\?(&|$)|\?\?/i;f.ajaxSetup({jsonp:"callback",jsonpCallback:function(){return f.expando+"_"+cd++}}),f.ajaxPrefilter("json jsonp",function(b,c,d){var e=b.contentType==="application/x-www-form-urlencoded"&&typeof b.data=="string";if(b.dataTypes[0]==="jsonp"||b.jsonp!==!1&&(ce.test(b.url)||e&&ce.test(b.data))){var g,h=b.jsonpCallback=f.isFunction(b.jsonpCallback)?b.jsonpCallback():b.jsonpCallback,i=a[h],j=b.url,k=b.data,l="$1"+h+"$2";b.jsonp!==!1&&(j=j.replace(ce,l),b.url===j&&(e&&(k=k.replace(ce,l)),b.data===k&&(j+=(/\?/.test(j)?"&":"?")+b.jsonp+"="+h))),b.url=j,b.data=k,a[h]=function(a){g=[a]},d.always(function(){a[h]=i,g&&f.isFunction(i)&&a[h](g[0])}),b.converters["script json"]=function(){g||f.error(h+" was not called");return g[0]},b.dataTypes[0]="json";return"script"}}),f.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/javascript|ecmascript/},converters:{"text script":function(a){f.globalEval(a);return a}}}),f.ajaxPrefilter("script",function(a){a.cache===b&&(a.cache=!1),a.crossDomain&&(a.type="GET",a.global=!1)}),f.ajaxTransport("script",function(a){if(a.crossDomain){var d,e=c.head||c.getElementsByTagName("head")[0]||c.documentElement;return{send:function(f,g){d=c.createElement("script"),d.async="async",a.scriptCharset&&(d.charset=a.scriptCharset),d.src=a.url,d.onload=d.onreadystatechange=function(a,c){if(c||!d.readyState||/loaded|complete/.test(d.readyState))d.onload=d.onreadystatechange=null,e&&d.parentNode&&e.removeChild(d),d=b,c||g(200,"success")},e.insertBefore(d,e.firstChild)},abort:function(){d&&d.onload(0,1)}}}});var cf=a.ActiveXObject?function(){for(var a in ch)ch[a](0,1)}:!1,cg=0,ch;f.ajaxSettings.xhr=a.ActiveXObject?function(){return!this.isLocal&&ci()||cj()}:ci,function(a){f.extend(f.support,{ajax:!!a,cors:!!a&&"withCredentials"in a})}(f.ajaxSettings.xhr()),f.support.ajax&&f.ajaxTransport(function(c){if(!c.crossDomain||f.support.cors){var d;return{send:function(e,g){var h=c.xhr(),i,j;c.username?h.open(c.type,c.url,c.async,c.username,c.password):h.open(c.type,c.url,c.async);if(c.xhrFields)for(j in c.xhrFields)h[j]=c.xhrFields[j];c.mimeType&&h.overrideMimeType&&h.overrideMimeType(c.mimeType),!c.crossDomain&&!e["X-Requested-With"]&&(e["X-Requested-With"]="XMLHttpRequest");try{for(j in e)h.setRequestHeader(j,e[j])}catch(k){}h.send(c.hasContent&&c.data||null),d=function(a,e){var j,k,l,m,n;try{if(d&&(e||h.readyState===4)){d=b,i&&(h.onreadystatechange=f.noop,cf&&delete ch[i]);if(e)h.readyState!==4&&h.abort();else{j=h.status,l=h.getAllResponseHeaders(),m={},n=h.responseXML,n&&n.documentElement&&(m.xml=n),m.text=h.responseText;try{k=h.statusText}catch(o){k=""}!j&&c.isLocal&&!c.crossDomain?j=m.text?200:404:j===1223&&(j=204)}}}catch(p){e||g(-1,p)}m&&g(j,k,m,l)},!c.async||h.readyState===4?d():(i=++cg,cf&&(ch||(ch={},f(a).unload(cf)),ch[i]=d),h.onreadystatechange=d)},abort:function(){d&&d(0,1)}}}});var ck={},cl,cm,cn=/^(?:toggle|show|hide)$/,co=/^([+\-]=)?([\d+.\-]+)([a-z%]*)$/i,cp,cq=[["height","marginTop","marginBottom","paddingTop","paddingBottom"],["width","marginLeft","marginRight","paddingLeft","paddingRight"],["opacity"]],cr;f.fn.extend({show:function(a,b,c){var d,e;if(a||a===0)return this.animate(cu("show",3),a,b,c);for(var g=0,h=this.length;g<h;g++)d=this[g],d.style&&(e=d.style.display,!f._data(d,"olddisplay")&&e==="none"&&(e=d.style.display=""),e===""&&f.css(d,"display")==="none"&&f._data(d,"olddisplay",cv(d.nodeName)));for(g=0;g<h;g++){d=this[g];if(d.style){e=d.style.display;if(e===""||e==="none")d.style.display=f._data(d,"olddisplay")||""}}return this},hide:function(a,b,c){if(a||a===0)return this.animate(cu("hide",3),a,b,c);var d,e,g=0,h=this.length;for(;g<h;g++)d=this[g],d.style&&(e=f.css(d,"display"),e!=="none"&&!f._data(d,"olddisplay")&&f._data(d,"olddisplay",e));for(g=0;g<h;g++)this[g].style&&(this[g].style.display="none");return this},_toggle:f.fn.toggle,toggle:function(a,b,c){var d=typeof a=="boolean";f.isFunction(a)&&f.isFunction(b)?this._toggle.apply(this,arguments):a==null||d?this.each(function(){var b=d?a:f(this).is(":hidden");f(this)[b?"show":"hide"]()}):this.animate(cu("toggle",3),a,b,c);return this},fadeTo:function(a,b,c,d){return this.filter(":hidden").css("opacity",0).show().end().animate({opacity:b},a,c,d)},animate:function(a,b,c,d){function g(){e.queue===!1&&f._mark(this);var b=f.extend({},e),c=this.nodeType===1,d=c&&f(this).is(":hidden"),g,h,i,j,k,l,m,n,o;b.animatedProperties={};for(i in a){g=f.camelCase(i),i!==g&&(a[g]=a[i],delete a[i]),h=a[g],f.isArray(h)?(b.animatedProperties[g]=h[1],h=a[g]=h[0]):b.animatedProperties[g]=b.specialEasing&&b.specialEasing[g]||b.easing||"swing";if(h==="hide"&&d||h==="show"&&!d)return b.complete.call(this);c&&(g==="height"||g==="width")&&(b.overflow=[this.style.overflow,this.style.overflowX,this.style.overflowY],f.css(this,"display")==="inline"&&f.css(this,"float")==="none"&&(!f.support.inlineBlockNeedsLayout||cv(this.nodeName)==="inline"?this.style.display="inline-block":this.style.zoom=1))}b.overflow!=null&&(this.style.overflow="hidden");for(i in a)j=new f.fx(this,b,i),h=a[i],cn.test(h)?(o=f._data(this,"toggle"+i)||(h==="toggle"?d?"show":"hide":0),o?(f._data(this,"toggle"+i,o==="show"?"hide":"show"),j[o]()):j[h]()):(k=co.exec(h),l=j.cur(),k?(m=parseFloat(k[2]),n=k[3]||(f.cssNumber[i]?"":"px"),n!=="px"&&(f.style(this,i,(m||1)+n),l=(m||1)/j.cur()*l,f.style(this,i,l+n)),k[1]&&(m=(k[1]==="-="?-1:1)*m+l),j.custom(l,m,n)):j.custom(l,h,""));return!0}var e=f.speed(b,c,d);if(f.isEmptyObject(a))return this.each(e.complete,[!1]);a=f.extend({},a);return e.queue===!1?this.each(g):this.queue(e.queue,g)},stop:function(a,c,d){typeof a!="string"&&(d=c,c=a,a=b),c&&a!==!1&&this.queue(a||"fx",[]);return this.each(function(){function h(a,b,c){var e=b[c];f.removeData(a,c,!0),e.stop(d)}var b,c=!1,e=f.timers,g=f._data(this);d||f._unmark(!0,this);if(a==null)for(b in g)g[b]&&g[b].stop&&b.indexOf(".run")===b.length-4&&h(this,g,b);else g[b=a+".run"]&&g[b].stop&&h(this,g,b);for(b=e.length;b--;)e[b].elem===this&&(a==null||e[b].queue===a)&&(d?e[b](!0):e[b].saveState(),c=!0,e.splice(b,1));(!d||!c)&&f.dequeue(this,a)})}}),f.each({slideDown:cu("show",1),slideUp:cu("hide",1),slideToggle:cu("toggle",1),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"},fadeToggle:{opacity:"toggle"}},function(a,b){f.fn[a]=function(a,c,d){return this.animate(b,a,c,d)}}),f.extend({speed:function(a,b,c){var d=a&&typeof a=="object"?f.extend({},a):{complete:c||!c&&b||f.isFunction(a)&&a,duration:a,easing:c&&b||b&&!f.isFunction(b)&&b};d.duration=f.fx.off?0:typeof d.duration=="number"?d.duration:d.duration in f.fx.speeds?f.fx.speeds[d.duration]:f.fx.speeds._default;if(d.queue==null||d.queue===!0)d.queue="fx";d.old=d.complete,d.complete=function(a){f.isFunction(d.old)&&d.old.call(this),d.queue?f.dequeue(this,d.queue):a!==!1&&f._unmark(this)};return d},easing:{linear:function(a,b,c,d){return c+d*a},swing:function(a,b,c,d){return(-Math.cos(a*Math.PI)/2+.5)*d+c}},timers:[],fx:function(a,b,c){this.options=b,this.elem=a,this.prop=c,b.orig=b.orig||{}}}),f.fx.prototype={update:function(){this.options.step&&this.options.step.call(this.elem,this.now,this),(f.fx.step[this.prop]||f.fx.step._default)(this)},cur:function(){if(this.elem[this.prop]!=null&&(!this.elem.style||this.elem.style[this.prop]==null))return this.elem[this.prop];var a,b=f.css(this.elem,this.prop);return isNaN(a=parseFloat(b))?!b||b==="auto"?0:b:a},custom:function(a,c,d){function h(a){return e.step(a)}var e=this,g=f.fx;this.startTime=cr||cs(),this.end=c,this.now=this.start=a,this.pos=this.state=0,this.unit=d||this.unit||(f.cssNumber[this.prop]?"":"px"),h.queue=this.options.queue,h.elem=this.elem,h.saveState=function(){e.options.hide&&f._data(e.elem,"fxshow"+e.prop)===b&&f._data(e.elem,"fxshow"+e.prop,e.start)},h()&&f.timers.push(h)&&!cp&&(cp=setInterval(g.tick,g.interval))},show:function(){var a=f._data(this.elem,"fxshow"+this.prop);this.options.orig[this.prop]=a||f.style(this.elem,this.prop),this.options.show=!0,a!==b?this.custom(this.cur(),a):this.custom(this.prop==="width"||this.prop==="height"?1:0,this.cur()),f(this.elem).show()},hide:function(){this.options.orig[this.prop]=f._data(this.elem,"fxshow"+this.prop)||f.style(this.elem,this.prop),this.options.hide=!0,this.custom(this.cur(),0)},step:function(a){var b,c,d,e=cr||cs(),g=!0,h=this.elem,i=this.options;if(a||e>=i.duration+this.startTime){this.now=this.end,this.pos=this.state=1,this.update(),i.animatedProperties[this.prop]=!0;for(b in i.animatedProperties)i.animatedProperties[b]!==!0&&(g=!1);if(g){i.overflow!=null&&!f.support.shrinkWrapBlocks&&f.each(["","X","Y"],function(a,b){h.style["overflow"+b]=i.overflow[a]}),i.hide&&f(h).hide();if(i.hide||i.show)for(b in i.animatedProperties)f.style(h,b,i.orig[b]),f.removeData(h,"fxshow"+b,!0),f.removeData(h,"toggle"+b,!0);d=i.complete,d&&(i.complete=!1,d.call(h))}return!1}i.duration==Infinity?this.now=e:(c=e-this.startTime,this.state=c/i.duration,this.pos=f.easing[i.animatedProperties[this.prop]](this.state,c,0,1,i.duration),this.now=this.start+(this.end-this.start)*this.pos),this.update();return!0}},f.extend(f.fx,{tick:function(){var a,b=f.timers,c=0;for(;c<b.length;c++)a=b[c],!a()&&b[c]===a&&b.splice(c--,1);b.length||f.fx.stop()},interval:13,stop:function(){clearInterval(cp),cp=null},speeds:{slow:600,fast:200,_default:400},step:{opacity:function(a){f.style(a.elem,"opacity",a.now)},_default:function(a){a.elem.style&&a.elem.style[a.prop]!=null?a.elem.style[a.prop]=a.now+a.unit:a.elem[a.prop]=a.now}}}),f.each(["width","height"],function(a,b){f.fx.step[b]=function(a){f.style(a.elem,b,Math.max(0,a.now)+a.unit)}}),f.expr&&f.expr.filters&&(f.expr.filters.animated=function(a){return f.grep(f.timers,function(b){return a===b.elem}).length});var cw=/^t(?:able|d|h)$/i,cx=/^(?:body|html)$/i;"getBoundingClientRect"in c.documentElement?f.fn.offset=function(a){var b=this[0],c;if(a)return this.each(function(b){f.offset.setOffset(this,a,b)});if(!b||!b.ownerDocument)return null;if(b===b.ownerDocument.body)return f.offset.bodyOffset(b);try{c=b.getBoundingClientRect()}catch(d){}var e=b.ownerDocument,g=e.documentElement;if(!c||!f.contains(g,b))return c?{top:c.top,left:c.left}:{top:0,left:0};var h=e.body,i=cy(e),j=g.clientTop||h.clientTop||0,k=g.clientLeft||h.clientLeft||0,l=i.pageYOffset||f.support.boxModel&&g.scrollTop||h.scrollTop,m=i.pageXOffset||f.support.boxModel&&g.scrollLeft||h.scrollLeft,n=c.top+l-j,o=c.left+m-k;return{top:n,left:o}}:f.fn.offset=function(a){var b=this[0];if(a)return this.each(function(b){f.offset.setOffset(this,a,b)});if(!b||!b.ownerDocument)return null;if(b===b.ownerDocument.body)return f.offset.bodyOffset(b);var c,d=b.offsetParent,e=b,g=b.ownerDocument,h=g.documentElement,i=g.body,j=g.defaultView,k=j?j.getComputedStyle(b,null):b.currentStyle,l=b.offsetTop,m=b.offsetLeft;while((b=b.parentNode)&&b!==i&&b!==h){if(f.support.fixedPosition&&k.position==="fixed")break;c=j?j.getComputedStyle(b,null):b.currentStyle,l-=b.scrollTop,m-=b.scrollLeft,b===d&&(l+=b.offsetTop,m+=b.offsetLeft,f.support.doesNotAddBorder&&(!f.support.doesAddBorderForTableAndCells||!cw.test(b.nodeName))&&(l+=parseFloat(c.borderTopWidth)||0,m+=parseFloat(c.borderLeftWidth)||0),e=d,d=b.offsetParent),f.support.subtractsBorderForOverflowNotVisible&&c.overflow!=="visible"&&(l+=parseFloat(c.borderTopWidth)||0,m+=parseFloat(c.borderLeftWidth)||0),k=c}if(k.position==="relative"||k.position==="static")l+=i.offsetTop,m+=i.offsetLeft;f.support.fixedPosition&&k.position==="fixed"&&(l+=Math.max(h.scrollTop,i.scrollTop),m+=Math.max(h.scrollLeft,i.scrollLeft));return{top:l,left:m}},f.offset={bodyOffset:function(a){var b=a.offsetTop,c=a.offsetLeft;f.support.doesNotIncludeMarginInBodyOffset&&(b+=parseFloat(f.css(a,"marginTop"))||0,c+=parseFloat(f.css(a,"marginLeft"))||0);return{top:b,left:c}},setOffset:function(a,b,c){var d=f.css(a,"position");d==="static"&&(a.style.position="relative");var e=f(a),g=e.offset(),h=f.css(a,"top"),i=f.css(a,"left"),j=(d==="absolute"||d==="fixed")&&f.inArray("auto",[h,i])>-1,k={},l={},m,n;j?(l=e.position(),m=l.top,n=l.left):(m=parseFloat(h)||0,n=parseFloat(i)||0),f.isFunction(b)&&(b=b.call(a,c,g)),b.top!=null&&(k.top=b.top-g.top+m),b.left!=null&&(k.left=b.left-g.left+n),"using"in b?b.using.call(a,k):e.css(k)}},f.fn.extend({position:function(){if(!this[0])return null;var a=this[0],b=this.offsetParent(),c=this.offset(),d=cx.test(b[0].nodeName)?{top:0,left:0}:b.offset();c.top-=parseFloat(f.css(a,"marginTop"))||0,c.left-=parseFloat(f.css(a,"marginLeft"))||0,d.top+=parseFloat(f.css(b[0],"borderTopWidth"))||0,d.left+=parseFloat(f.css(b[0],"borderLeftWidth"))||0;return{top:c.top-d.top,left:c.left-d.left}},offsetParent:function(){return this.map(function(){var a=this.offsetParent||c.body;while(a&&!cx.test(a.nodeName)&&f.css(a,"position")==="static")a=a.offsetParent;return a})}}),f.each(["Left","Top"],function(a,c){var d="scroll"+c;f.fn[d]=function(c){var e,g;if(c===b){e=this[0];if(!e)return null;g=cy(e);return g?"pageXOffset"in g?g[a?"pageYOffset":"pageXOffset"]:f.support.boxModel&&g.document.documentElement[d]||g.document.body[d]:e[d]}return this.each(function(){g=cy(this),g?g.scrollTo(a?f(g).scrollLeft():c,a?c:f(g).scrollTop()):this[d]=c})}}),f.each(["Height","Width"],function(a,c){var d=c.toLowerCase();f.fn["inner"+c]=function(){var a=this[0];return a?a.style?parseFloat(f.css(a,d,"padding")):this[d]():null},f.fn["outer"+c]=function(a){var b=this[0];return b?b.style?parseFloat(f.css(b,d,a?"margin":"border")):this[d]():null},f.fn[d]=function(a){var e=this[0];if(!e)return a==null?null:this;if(f.isFunction(a))return this.each(function(b){var c=f(this);c[d](a.call(this,b,c[d]()))});if(f.isWindow(e)){var g=e.document.documentElement["client"+c],h=e.document.body;return e.document.compatMode==="CSS1Compat"&&g||h&&h["client"+c]||g}if(e.nodeType===9)return Math.max(e.documentElement["client"+c],e.body["scroll"+c],e.documentElement["scroll"+c],e.body["offset"+c],e.documentElement["offset"+c]);if(a===b){var i=f.css(e,d),j=parseFloat(i);return f.isNumeric(j)?j:i}return this.css(d,typeof a=="string"?a:a+"px")}}),a.jQuery=a.$=f,typeof define=="function"&&define.amd&&define.amd.jQuery&&define("jquery",[],function(){return f})})(window); \ No newline at end of file diff --git a/admin/bower_components/bootstrap-datepicker/tests/assets/mock.js b/admin/bower_components/bootstrap-datepicker/tests/assets/mock.js deleted file mode 100644 index a7d07dc..0000000 --- a/admin/bower_components/bootstrap-datepicker/tests/assets/mock.js +++ /dev/null @@ -1,49 +0,0 @@ -;(function(){ - -window.patch_date = function patch(f){ - var NativeDate = window.Date; - var date = function date(y,m,d,h,i,s,j){ - switch(arguments.length){ - case 0: return date.now ? new NativeDate(date.now) : new NativeDate(); - case 1: return new NativeDate(y); - case 2: return new NativeDate(y,m); - case 3: return new NativeDate(y,m,d); - case 4: return new NativeDate(y,m,d,h); - case 5: return new NativeDate(y,m,d,h,i); - case 6: return new NativeDate(y,m,d,h,i,s); - case 7: return new NativeDate(y,y,m,d,h,i,s,j); - } - }; - date.UTC = NativeDate.UTC; - return function(){ - Array.prototype.push.call(arguments, date); - window.Date = date; - f.apply(this, arguments); - window.Date = NativeDate; - }; -}; - - -window.patch_show_hide = function patch(f){ - var oldShow = $.fn.show, - newShow = function () { - $(this).removeClass('foo'); - return oldShow.apply(this, arguments); - }; - - var oldHide = $.fn.hide, - newHide = function () { - $(this).addClass('foo'); - return oldHide.apply(this, arguments); - }; - - return function(){ - $.fn.show = newShow; - $.fn.hide = newHide; - f.apply(this, arguments); - $.fn.show = oldShow; - $.fn.hide = oldHide; - }; -}; - -}()); diff --git a/admin/bower_components/bootstrap-datepicker/tests/assets/qunit-logging.js b/admin/bower_components/bootstrap-datepicker/tests/assets/qunit-logging.js deleted file mode 100644 index 5bef1a5..0000000 --- a/admin/bower_components/bootstrap-datepicker/tests/assets/qunit-logging.js +++ /dev/null @@ -1,29 +0,0 @@ -// Dummy logging calls (ie, if tests are run in IE) -window.console = window.console || {}; -window.console.log = window.console.log || function(){}; -window.console.debug = window.console.debug || function(){}; -window.console.info = window.console.info || function(){}; -window.console.warn = window.console.warn || function(){}; -window.console.error = window.console.error || function(){}; - -(function() { - var modName, testName; - - //arg: { name } - QUnit.testStart = function(t) { - modName = t.module; - testName = t.name; - }; - - //arg: { name, failed, passed, total } - QUnit.testDone = function(t) { - if (t.failed) - console.log('Test "' + t.module + ': ' + t.name + '" completed: ' + (0 === t.failed ? 'pass' : 'FAIL') + '\n') - }; - - //{ result, actual, expected, message } - QUnit.log = function(t) { - if (!t.result) - console.log('Test "' + modName + ': ' + testName + '" assertion failed. Expected <' + t.expected + '> Actual <' + t.actual + '>' + (t.message ? ': \'' + t.message + '\'' : '')); - }; -}()); diff --git a/admin/bower_components/bootstrap-datepicker/tests/assets/qunit.css b/admin/bower_components/bootstrap-datepicker/tests/assets/qunit.css deleted file mode 100644 index b948bae..0000000 --- a/admin/bower_components/bootstrap-datepicker/tests/assets/qunit.css +++ /dev/null @@ -1,235 +0,0 @@ -/** - * QUnit v1.5.0 - A JavaScript Unit Testing Framework - * - * http://docs.jquery.com/QUnit - * - * Copyright (c) 2012 John Resig, Jörn Zaefferer - * Dual licensed under the MIT (MIT-LICENSE.txt) - * or GPL (GPL-LICENSE.txt) licenses. - */ - -/** Font Family and Sizes */ - -#qunit-tests, #qunit-header, #qunit-banner, #qunit-testrunner-toolbar, #qunit-userAgent, #qunit-testresult { - font-family: "Helvetica Neue Light", "HelveticaNeue-Light", "Helvetica Neue", Calibri, Helvetica, Arial, sans-serif; -} - -#qunit-testrunner-toolbar, #qunit-userAgent, #qunit-testresult, #qunit-tests li { font-size: small; } -#qunit-tests { font-size: smaller; } - - -/** Resets */ - -#qunit-tests, #qunit-tests ol, #qunit-header, #qunit-banner, #qunit-userAgent, #qunit-testresult { - margin: 0; - padding: 0; -} - - -/** Header */ - -#qunit-header { - padding: 0.5em 0 0.5em 1em; - - color: #8699a4; - background-color: #0d3349; - - font-size: 1.5em; - line-height: 1em; - font-weight: normal; - - border-radius: 15px 15px 0 0; - -moz-border-radius: 15px 15px 0 0; - -webkit-border-top-right-radius: 15px; - -webkit-border-top-left-radius: 15px; -} - -#qunit-header a { - text-decoration: none; - color: #c2ccd1; -} - -#qunit-header a:hover, -#qunit-header a:focus { - color: #fff; -} - -#qunit-header label { - display: inline-block; -} - -#qunit-banner { - height: 5px; -} - -#qunit-testrunner-toolbar { - padding: 0.5em 0 0.5em 2em; - color: #5E740B; - background-color: #eee; -} - -#qunit-userAgent { - padding: 0.5em 0 0.5em 2.5em; - background-color: #2b81af; - color: #fff; - text-shadow: rgba(0, 0, 0, 0.5) 2px 2px 1px; -} - - -/** Tests: Pass/Fail */ - -#qunit-tests { - list-style-position: inside; -} - -#qunit-tests li { - padding: 0.4em 0.5em 0.4em 2.5em; - border-bottom: 1px solid #fff; - list-style-position: inside; -} - -#qunit-tests.hidepass li.pass, #qunit-tests.hidepass li.running { - display: none; -} - -#qunit-tests li strong { - cursor: pointer; -} - -#qunit-tests li a { - padding: 0.5em; - color: #c2ccd1; - text-decoration: none; -} -#qunit-tests li a:hover, -#qunit-tests li a:focus { - color: #000; -} - -#qunit-tests ol { - margin-top: 0.5em; - padding: 0.5em; - - background-color: #fff; - - border-radius: 15px; - -moz-border-radius: 15px; - -webkit-border-radius: 15px; - - box-shadow: inset 0px 2px 13px #999; - -moz-box-shadow: inset 0px 2px 13px #999; - -webkit-box-shadow: inset 0px 2px 13px #999; -} - -#qunit-tests table { - border-collapse: collapse; - margin-top: .2em; -} - -#qunit-tests th { - text-align: right; - vertical-align: top; - padding: 0 .5em 0 0; -} - -#qunit-tests td { - vertical-align: top; -} - -#qunit-tests pre { - margin: 0; - white-space: pre-wrap; - word-wrap: break-word; -} - -#qunit-tests del { - background-color: #e0f2be; - color: #374e0c; - text-decoration: none; -} - -#qunit-tests ins { - background-color: #ffcaca; - color: #500; - text-decoration: none; -} - -/*** Test Counts */ - -#qunit-tests b.counts { color: black; } -#qunit-tests b.passed { color: #5E740B; } -#qunit-tests b.failed { color: #710909; } - -#qunit-tests li li { - margin: 0.5em; - padding: 0.4em 0.5em 0.4em 0.5em; - background-color: #fff; - border-bottom: none; - list-style-position: inside; -} - -/*** Passing Styles */ - -#qunit-tests li li.pass { - color: #5E740B; - background-color: #fff; - border-left: 26px solid #C6E746; -} - -#qunit-tests .pass { color: #528CE0; background-color: #D2E0E6; } -#qunit-tests .pass .test-name { color: #366097; } - -#qunit-tests .pass .test-actual, -#qunit-tests .pass .test-expected { color: #999999; } - -#qunit-banner.qunit-pass { background-color: #C6E746; } - -/*** Failing Styles */ - -#qunit-tests li li.fail { - color: #710909; - background-color: #fff; - border-left: 26px solid #EE5757; - white-space: pre; -} - -#qunit-tests > li:last-child { - border-radius: 0 0 15px 15px; - -moz-border-radius: 0 0 15px 15px; - -webkit-border-bottom-right-radius: 15px; - -webkit-border-bottom-left-radius: 15px; -} - -#qunit-tests .fail { color: #000000; background-color: #EE5757; } -#qunit-tests .fail .test-name, -#qunit-tests .fail .module-name { color: #000000; } - -#qunit-tests .fail .test-actual { color: #EE5757; } -#qunit-tests .fail .test-expected { color: green; } - -#qunit-banner.qunit-fail { background-color: #EE5757; } - - -/** Result */ - -#qunit-testresult { - padding: 0.5em 0.5em 0.5em 2.5em; - - color: #2b81af; - background-color: #D2E0E6; - - border-bottom: 1px solid white; -} -#qunit-testresult .module-name { - font-weight: bold; -} - -/** Fixture */ - -#qunit-fixture { - position: absolute; - top: -10000px; - left: -10000px; - width: 1000px; - height: 1000px; -} diff --git a/admin/bower_components/bootstrap-datepicker/tests/assets/qunit.js b/admin/bower_components/bootstrap-datepicker/tests/assets/qunit.js deleted file mode 100644 index 66dd721..0000000 --- a/admin/bower_components/bootstrap-datepicker/tests/assets/qunit.js +++ /dev/null @@ -1,1669 +0,0 @@ -/** - * QUnit v1.5.0 - A JavaScript Unit Testing Framework - * - * http://docs.jquery.com/QUnit - * - * Copyright (c) 2012 John Resig, Jörn Zaefferer - * Dual licensed under the MIT (MIT-LICENSE.txt) - * or GPL (GPL-LICENSE.txt) licenses. - */ - -(function(window) { - -var defined = { - setTimeout: typeof window.setTimeout !== "undefined", - sessionStorage: (function() { - var x = "qunit-test-string"; - try { - sessionStorage.setItem(x, x); - sessionStorage.removeItem(x); - return true; - } catch(e) { - return false; - } - }()) -}; - -var testId = 0, - toString = Object.prototype.toString, - hasOwn = Object.prototype.hasOwnProperty; - -var Test = function(name, testName, expected, async, callback) { - this.name = name; - this.testName = testName; - this.expected = expected; - this.async = async; - this.callback = callback; - this.assertions = []; -}; -Test.prototype = { - init: function() { - var tests = id("qunit-tests"); - if (tests) { - var b = document.createElement("strong"); - b.innerHTML = "Running " + this.name; - var li = document.createElement("li"); - li.appendChild( b ); - li.className = "running"; - li.id = this.id = "test-output" + testId++; - tests.appendChild( li ); - } - }, - setup: function() { - if (this.module != config.previousModule) { - if ( config.previousModule ) { - runLoggingCallbacks('moduleDone', QUnit, { - name: config.previousModule, - failed: config.moduleStats.bad, - passed: config.moduleStats.all - config.moduleStats.bad, - total: config.moduleStats.all - } ); - } - config.previousModule = this.module; - config.moduleStats = { all: 0, bad: 0 }; - runLoggingCallbacks( 'moduleStart', QUnit, { - name: this.module - } ); - } else if (config.autorun) { - runLoggingCallbacks( 'moduleStart', QUnit, { - name: this.module - } ); - } - - config.current = this; - this.testEnvironment = extend({ - setup: function() {}, - teardown: function() {} - }, this.moduleTestEnvironment); - - runLoggingCallbacks( 'testStart', QUnit, { - name: this.testName, - module: this.module - }); - - // allow utility functions to access the current test environment - // TODO why?? - QUnit.current_testEnvironment = this.testEnvironment; - - if ( !config.pollution ) { - saveGlobal(); - } - if ( config.notrycatch ) { - this.testEnvironment.setup.call(this.testEnvironment); - return; - } - try { - this.testEnvironment.setup.call(this.testEnvironment); - } catch(e) { - QUnit.pushFailure( "Setup failed on " + this.testName + ": " + e.message, extractStacktrace( e, 1 ) ); - } - }, - run: function() { - config.current = this; - - var running = id("qunit-testresult"); - - if ( running ) { - running.innerHTML = "Running: <br/>" + this.name; - } - - if ( this.async ) { - QUnit.stop(); - } - - if ( config.notrycatch ) { - this.callback.call(this.testEnvironment); - return; - } - try { - this.callback.call(this.testEnvironment); - } catch(e) { - QUnit.pushFailure( "Died on test #" + (this.assertions.length + 1) + ": " + e.message, extractStacktrace( e, 1 ) ); - // else next test will carry the responsibility - saveGlobal(); - - // Restart the tests if they're blocking - if ( config.blocking ) { - QUnit.start(); - } - } - }, - teardown: function() { - config.current = this; - if ( config.notrycatch ) { - this.testEnvironment.teardown.call(this.testEnvironment); - return; - } else { - try { - this.testEnvironment.teardown.call(this.testEnvironment); - } catch(e) { - QUnit.pushFailure( "Teardown failed on " + this.testName + ": " + e.message, extractStacktrace( e, 1 ) ); - } - } - checkPollution(); - }, - finish: function() { - config.current = this; - if ( this.expected != null && this.expected != this.assertions.length ) { - QUnit.pushFailure( "Expected " + this.expected + " assertions, but " + this.assertions.length + " were run" ); - } else if ( this.expected == null && !this.assertions.length ) { - QUnit.pushFailure( "Expected at least one assertion, but none were run - call expect(0) to accept zero assertions." ); - } - - var good = 0, bad = 0, - li, i, - tests = id("qunit-tests"); - - config.stats.all += this.assertions.length; - config.moduleStats.all += this.assertions.length; - - if ( tests ) { - var ol = document.createElement("ol"); - - for ( i = 0; i < this.assertions.length; i++ ) { - var assertion = this.assertions[i]; - - li = document.createElement("li"); - li.className = assertion.result ? "pass" : "fail"; - li.innerHTML = assertion.message || (assertion.result ? "okay" : "failed"); - ol.appendChild( li ); - - if ( assertion.result ) { - good++; - } else { - bad++; - config.stats.bad++; - config.moduleStats.bad++; - } - } - - // store result when possible - if ( QUnit.config.reorder && defined.sessionStorage ) { - if (bad) { - sessionStorage.setItem("qunit-test-" + this.module + "-" + this.testName, bad); - } else { - sessionStorage.removeItem("qunit-test-" + this.module + "-" + this.testName); - } - } - - if (bad === 0) { - ol.style.display = "none"; - } - - var b = document.createElement("strong"); - b.innerHTML = this.name + " <b class='counts'>(<b class='failed'>" + bad + "</b>, <b class='passed'>" + good + "</b>, " + this.assertions.length + ")</b>"; - - var a = document.createElement("a"); - a.innerHTML = "Rerun"; - a.href = QUnit.url({ filter: getText([b]).replace(/\([^)]+\)$/, "").replace(/(^\s*|\s*$)/g, "") }); - - addEvent(b, "click", function() { - var next = b.nextSibling.nextSibling, - display = next.style.display; - next.style.display = display === "none" ? "block" : "none"; - }); - - addEvent(b, "dblclick", function(e) { - var target = e && e.target ? e.target : window.event.srcElement; - if ( target.nodeName.toLowerCase() == "span" || target.nodeName.toLowerCase() == "b" ) { - target = target.parentNode; - } - if ( window.location && target.nodeName.toLowerCase() === "strong" ) { - window.location = QUnit.url({ filter: getText([target]).replace(/\([^)]+\)$/, "").replace(/(^\s*|\s*$)/g, "") }); - } - }); - - li = id(this.id); - li.className = bad ? "fail" : "pass"; - li.removeChild( li.firstChild ); - li.appendChild( b ); - li.appendChild( a ); - li.appendChild( ol ); - - } else { - for ( i = 0; i < this.assertions.length; i++ ) { - if ( !this.assertions[i].result ) { - bad++; - config.stats.bad++; - config.moduleStats.bad++; - } - } - } - - QUnit.reset(); - - runLoggingCallbacks( 'testDone', QUnit, { - name: this.testName, - module: this.module, - failed: bad, - passed: this.assertions.length - bad, - total: this.assertions.length - } ); - }, - - queue: function() { - var test = this; - synchronize(function() { - test.init(); - }); - function run() { - // each of these can by async - synchronize(function() { - test.setup(); - }); - synchronize(function() { - test.run(); - }); - synchronize(function() { - test.teardown(); - }); - synchronize(function() { - test.finish(); - }); - } - // defer when previous test run passed, if storage is available - var bad = QUnit.config.reorder && defined.sessionStorage && +sessionStorage.getItem("qunit-test-" + this.module + "-" + this.testName); - if (bad) { - run(); - } else { - synchronize(run, true); - } - } - -}; - -var QUnit = { - - // call on start of module test to prepend name to all tests - module: function(name, testEnvironment) { - config.currentModule = name; - config.currentModuleTestEnviroment = testEnvironment; - }, - - asyncTest: function(testName, expected, callback) { - if ( arguments.length === 2 ) { - callback = expected; - expected = null; - } - - QUnit.test(testName, expected, callback, true); - }, - - test: function(testName, expected, callback, async) { - var name = '<span class="test-name">' + escapeInnerText(testName) + '</span>'; - - if ( arguments.length === 2 ) { - callback = expected; - expected = null; - } - - if ( config.currentModule ) { - name = '<span class="module-name">' + config.currentModule + "</span>: " + name; - } - - if ( !validTest(config.currentModule + ": " + testName) ) { - return; - } - - var test = new Test(name, testName, expected, async, callback); - test.module = config.currentModule; - test.moduleTestEnvironment = config.currentModuleTestEnviroment; - test.queue(); - }, - - // Specify the number of expected assertions to gurantee that failed test (no assertions are run at all) don't slip through. - expect: function(asserts) { - config.current.expected = asserts; - }, - - // Asserts true. - // @example ok( "asdfasdf".length > 5, "There must be at least 5 chars" ); - ok: function(result, msg) { - if (!config.current) { - throw new Error("ok() assertion outside test context, was " + sourceFromStacktrace(2)); - } - result = !!result; - var details = { - result: result, - message: msg - }; - msg = escapeInnerText(msg || (result ? "okay" : "failed")); - if ( !result ) { - var source = sourceFromStacktrace(2); - if (source) { - details.source = source; - msg += '<table><tr class="test-source"><th>Source: </th><td><pre>' + escapeInnerText(source) + '</pre></td></tr></table>'; - } - } - runLoggingCallbacks( 'log', QUnit, details ); - config.current.assertions.push({ - result: result, - message: msg - }); - }, - - // Checks that the first two arguments are equal, with an optional message. Prints out both actual and expected values. - // @example equal( format("Received {0} bytes.", 2), "Received 2 bytes." ); - equal: function(actual, expected, message) { - QUnit.push(expected == actual, actual, expected, message); - }, - - notEqual: function(actual, expected, message) { - QUnit.push(expected != actual, actual, expected, message); - }, - - deepEqual: function(actual, expected, message) { - QUnit.push(QUnit.equiv(actual, expected), actual, expected, message); - }, - - notDeepEqual: function(actual, expected, message) { - QUnit.push(!QUnit.equiv(actual, expected), actual, expected, message); - }, - - strictEqual: function(actual, expected, message) { - QUnit.push(expected === actual, actual, expected, message); - }, - - notStrictEqual: function(actual, expected, message) { - QUnit.push(expected !== actual, actual, expected, message); - }, - - raises: function(block, expected, message) { - var actual, ok = false; - - if (typeof expected === 'string') { - message = expected; - expected = null; - } - - try { - block.call(config.current.testEnvironment); - } catch (e) { - actual = e; - } - - if (actual) { - // we don't want to validate thrown error - if (!expected) { - ok = true; - // expected is a regexp - } else if (QUnit.objectType(expected) === "regexp") { - ok = expected.test(actual); - // expected is a constructor - } else if (actual instanceof expected) { - ok = true; - // expected is a validation function which returns true is validation passed - } else if (expected.call({}, actual) === true) { - ok = true; - } - } - - QUnit.ok(ok, message); - }, - - start: function(count) { - config.semaphore -= count || 1; - if (config.semaphore > 0) { - // don't start until equal number of stop-calls - return; - } - if (config.semaphore < 0) { - // ignore if start is called more often then stop - config.semaphore = 0; - } - // A slight delay, to avoid any current callbacks - if ( defined.setTimeout ) { - window.setTimeout(function() { - if (config.semaphore > 0) { - return; - } - if ( config.timeout ) { - clearTimeout(config.timeout); - } - - config.blocking = false; - process(true); - }, 13); - } else { - config.blocking = false; - process(true); - } - }, - - stop: function(count) { - config.semaphore += count || 1; - config.blocking = true; - - if ( config.testTimeout && defined.setTimeout ) { - clearTimeout(config.timeout); - config.timeout = window.setTimeout(function() { - QUnit.ok( false, "Test timed out" ); - config.semaphore = 1; - QUnit.start(); - }, config.testTimeout); - } - } -}; - -//We want access to the constructor's prototype -(function() { - function F(){} - F.prototype = QUnit; - QUnit = new F(); - //Make F QUnit's constructor so that we can add to the prototype later - QUnit.constructor = F; -}()); - -// deprecated; still export them to window to provide clear error messages -// next step: remove entirely -QUnit.equals = function() { - QUnit.push(false, false, false, "QUnit.equals has been deprecated since 2009 (e88049a0), use QUnit.equal instead"); -}; -QUnit.same = function() { - QUnit.push(false, false, false, "QUnit.same has been deprecated since 2009 (e88049a0), use QUnit.deepEqual instead"); -}; - -// Maintain internal state -var config = { - // The queue of tests to run - queue: [], - - // block until document ready - blocking: true, - - // when enabled, show only failing tests - // gets persisted through sessionStorage and can be changed in UI via checkbox - hidepassed: false, - - // by default, run previously failed tests first - // very useful in combination with "Hide passed tests" checked - reorder: true, - - // by default, modify document.title when suite is done - altertitle: true, - - urlConfig: ['noglobals', 'notrycatch'], - - //logging callback queues - begin: [], - done: [], - log: [], - testStart: [], - testDone: [], - moduleStart: [], - moduleDone: [] -}; - -// Load paramaters -(function() { - var location = window.location || { search: "", protocol: "file:" }, - params = location.search.slice( 1 ).split( "&" ), - length = params.length, - urlParams = {}, - current; - - if ( params[ 0 ] ) { - for ( var i = 0; i < length; i++ ) { - current = params[ i ].split( "=" ); - current[ 0 ] = decodeURIComponent( current[ 0 ] ); - // allow just a key to turn on a flag, e.g., test.html?noglobals - current[ 1 ] = current[ 1 ] ? decodeURIComponent( current[ 1 ] ) : true; - urlParams[ current[ 0 ] ] = current[ 1 ]; - } - } - - QUnit.urlParams = urlParams; - config.filter = urlParams.filter; - - // Figure out if we're running the tests from a server or not - QUnit.isLocal = location.protocol === 'file:'; -}()); - -// Expose the API as global variables, unless an 'exports' -// object exists, in that case we assume we're in CommonJS - export everything at the end -if ( typeof exports === "undefined" || typeof require === "undefined" ) { - extend(window, QUnit); - window.QUnit = QUnit; -} - -// define these after exposing globals to keep them in these QUnit namespace only -extend(QUnit, { - config: config, - - // Initialize the configuration options - init: function() { - extend(config, { - stats: { all: 0, bad: 0 }, - moduleStats: { all: 0, bad: 0 }, - started: +new Date(), - updateRate: 1000, - blocking: false, - autostart: true, - autorun: false, - filter: "", - queue: [], - semaphore: 0 - }); - - var qunit = id( "qunit" ); - if ( qunit ) { - qunit.innerHTML = - '<h1 id="qunit-header">' + escapeInnerText( document.title ) + '</h1>' + - '<h2 id="qunit-banner"></h2>' + - '<div id="qunit-testrunner-toolbar"></div>' + - '<h2 id="qunit-userAgent"></h2>' + - '<ol id="qunit-tests"></ol>'; - } - - var tests = id( "qunit-tests" ), - banner = id( "qunit-banner" ), - result = id( "qunit-testresult" ); - - if ( tests ) { - tests.innerHTML = ""; - } - - if ( banner ) { - banner.className = ""; - } - - if ( result ) { - result.parentNode.removeChild( result ); - } - - if ( tests ) { - result = document.createElement( "p" ); - result.id = "qunit-testresult"; - result.className = "result"; - tests.parentNode.insertBefore( result, tests ); - result.innerHTML = 'Running...<br/>&nbsp;'; - } - }, - - // Resets the test setup. Useful for tests that modify the DOM. - // If jQuery is available, uses jQuery's html(), otherwise just innerHTML. - reset: function() { - if ( window.jQuery ) { - jQuery( "#qunit-fixture" ).html( config.fixture ); - } else { - var main = id( 'qunit-fixture' ); - if ( main ) { - main.innerHTML = config.fixture; - } - } - }, - - // Trigger an event on an element. - // @example triggerEvent( document.body, "click" ); - triggerEvent: function( elem, type, event ) { - if ( document.createEvent ) { - event = document.createEvent("MouseEvents"); - event.initMouseEvent(type, true, true, elem.ownerDocument.defaultView, - 0, 0, 0, 0, 0, false, false, false, false, 0, null); - elem.dispatchEvent( event ); - - } else if ( elem.fireEvent ) { - elem.fireEvent("on"+type); - } - }, - - // Safe object type checking - is: function( type, obj ) { - return QUnit.objectType( obj ) == type; - }, - - objectType: function( obj ) { - if (typeof obj === "undefined") { - return "undefined"; - - // consider: typeof null === object - } - if (obj === null) { - return "null"; - } - - var type = toString.call( obj ).match(/^\[object\s(.*)\]$/)[1] || ''; - - switch (type) { - case 'Number': - if (isNaN(obj)) { - return "nan"; - } - return "number"; - case 'String': - case 'Boolean': - case 'Array': - case 'Date': - case 'RegExp': - case 'Function': - return type.toLowerCase(); - } - if (typeof obj === "object") { - return "object"; - } - return undefined; - }, - - push: function(result, actual, expected, message) { - if (!config.current) { - throw new Error("assertion outside test context, was " + sourceFromStacktrace()); - } - var details = { - result: result, - message: message, - actual: actual, - expected: expected - }; - - message = escapeInnerText(message) || (result ? "okay" : "failed"); - message = '<span class="test-message">' + message + "</span>"; - var output = message; - if (!result) { - expected = escapeInnerText(QUnit.jsDump.parse(expected)); - actual = escapeInnerText(QUnit.jsDump.parse(actual)); - output += '<table><tr class="test-expected"><th>Expected: </th><td><pre>' + expected + '</pre></td></tr>'; - if (actual != expected) { - output += '<tr class="test-actual"><th>Result: </th><td><pre>' + actual + '</pre></td></tr>'; - output += '<tr class="test-diff"><th>Diff: </th><td><pre>' + QUnit.diff(expected, actual) +'</pre></td></tr>'; - } - var source = sourceFromStacktrace(); - if (source) { - details.source = source; - output += '<tr class="test-source"><th>Source: </th><td><pre>' + escapeInnerText(source) + '</pre></td></tr>'; - } - output += "</table>"; - } - - runLoggingCallbacks( 'log', QUnit, details ); - - config.current.assertions.push({ - result: !!result, - message: output - }); - }, - - pushFailure: function(message, source) { - var details = { - result: false, - message: message - }; - var output = escapeInnerText(message); - if (source) { - details.source = source; - output += '<table><tr class="test-source"><th>Source: </th><td><pre>' + escapeInnerText(source) + '</pre></td></tr></table>'; - } - runLoggingCallbacks( 'log', QUnit, details ); - config.current.assertions.push({ - result: false, - message: output - }); - }, - - url: function( params ) { - params = extend( extend( {}, QUnit.urlParams ), params ); - var querystring = "?", - key; - for ( key in params ) { - if ( !hasOwn.call( params, key ) ) { - continue; - } - querystring += encodeURIComponent( key ) + "=" + - encodeURIComponent( params[ key ] ) + "&"; - } - return window.location.pathname + querystring.slice( 0, -1 ); - }, - - extend: extend, - id: id, - addEvent: addEvent -}); - -//QUnit.constructor is set to the empty F() above so that we can add to it's prototype later -//Doing this allows us to tell if the following methods have been overwritten on the actual -//QUnit object, which is a deprecated way of using the callbacks. -extend(QUnit.constructor.prototype, { - // Logging callbacks; all receive a single argument with the listed properties - // run test/logs.html for any related changes - begin: registerLoggingCallback('begin'), - // done: { failed, passed, total, runtime } - done: registerLoggingCallback('done'), - // log: { result, actual, expected, message } - log: registerLoggingCallback('log'), - // testStart: { name } - testStart: registerLoggingCallback('testStart'), - // testDone: { name, failed, passed, total } - testDone: registerLoggingCallback('testDone'), - // moduleStart: { name } - moduleStart: registerLoggingCallback('moduleStart'), - // moduleDone: { name, failed, passed, total } - moduleDone: registerLoggingCallback('moduleDone') -}); - -if ( typeof document === "undefined" || document.readyState === "complete" ) { - config.autorun = true; -} - -QUnit.load = function() { - runLoggingCallbacks( 'begin', QUnit, {} ); - - // Initialize the config, saving the execution queue - var oldconfig = extend({}, config); - QUnit.init(); - extend(config, oldconfig); - - config.blocking = false; - - var urlConfigHtml = '', len = config.urlConfig.length; - for ( var i = 0, val; i < len; i++ ) { - val = config.urlConfig[i]; - config[val] = QUnit.urlParams[val]; - urlConfigHtml += '<label><input name="' + val + '" type="checkbox"' + ( config[val] ? ' checked="checked"' : '' ) + '>' + val + '</label>'; - } - - var userAgent = id("qunit-userAgent"); - if ( userAgent ) { - userAgent.innerHTML = navigator.userAgent; - } - var banner = id("qunit-header"); - if ( banner ) { - banner.innerHTML = '<a href="' + QUnit.url({ filter: undefined }) + '"> ' + banner.innerHTML + '</a> ' + urlConfigHtml; - addEvent( banner, "change", function( event ) { - var params = {}; - params[ event.target.name ] = event.target.checked ? true : undefined; - window.location = QUnit.url( params ); - }); - } - - var toolbar = id("qunit-testrunner-toolbar"); - if ( toolbar ) { - var filter = document.createElement("input"); - filter.type = "checkbox"; - filter.id = "qunit-filter-pass"; - addEvent( filter, "click", function() { - var ol = document.getElementById("qunit-tests"); - if ( filter.checked ) { - ol.className = ol.className + " hidepass"; - } else { - var tmp = " " + ol.className.replace( /[\n\t\r]/g, " " ) + " "; - ol.className = tmp.replace(/ hidepass /, " "); - } - if ( defined.sessionStorage ) { - if (filter.checked) { - sessionStorage.setItem("qunit-filter-passed-tests", "true"); - } else { - sessionStorage.removeItem("qunit-filter-passed-tests"); - } - } - }); - if ( config.hidepassed || defined.sessionStorage && sessionStorage.getItem("qunit-filter-passed-tests") ) { - filter.checked = true; - var ol = document.getElementById("qunit-tests"); - ol.className = ol.className + " hidepass"; - } - toolbar.appendChild( filter ); - - var label = document.createElement("label"); - label.setAttribute("for", "qunit-filter-pass"); - label.innerHTML = "Hide passed tests"; - toolbar.appendChild( label ); - } - - var main = id('qunit-fixture'); - if ( main ) { - config.fixture = main.innerHTML; - } - - if (config.autostart) { - QUnit.start(); - } -}; - -addEvent(window, "load", QUnit.load); - -// addEvent(window, "error") gives us a useless event object -window.onerror = function( message, file, line ) { - if ( QUnit.config.current ) { - QUnit.pushFailure( message, file + ":" + line ); - } else { - QUnit.test( "global failure", function() { - QUnit.pushFailure( message, file + ":" + line ); - }); - } -}; - -function done() { - config.autorun = true; - - // Log the last module results - if ( config.currentModule ) { - runLoggingCallbacks( 'moduleDone', QUnit, { - name: config.currentModule, - failed: config.moduleStats.bad, - passed: config.moduleStats.all - config.moduleStats.bad, - total: config.moduleStats.all - } ); - } - - var banner = id("qunit-banner"), - tests = id("qunit-tests"), - runtime = +new Date() - config.started, - passed = config.stats.all - config.stats.bad, - html = [ - 'Tests completed in ', - runtime, - ' milliseconds.<br/>', - '<span class="passed">', - passed, - '</span> tests of <span class="total">', - config.stats.all, - '</span> passed, <span class="failed">', - config.stats.bad, - '</span> failed.' - ].join(''); - - if ( banner ) { - banner.className = (config.stats.bad ? "qunit-fail" : "qunit-pass"); - } - - if ( tests ) { - id( "qunit-testresult" ).innerHTML = html; - } - - if ( config.altertitle && typeof document !== "undefined" && document.title ) { - // show ✖ for good, ✔ for bad suite result in title - // use escape sequences in case file gets loaded with non-utf-8-charset - document.title = [ - (config.stats.bad ? "\u2716" : "\u2714"), - document.title.replace(/^[\u2714\u2716] /i, "") - ].join(" "); - } - - // clear own sessionStorage items if all tests passed - if ( config.reorder && defined.sessionStorage && config.stats.bad === 0 ) { - var key; - for ( var i = 0; i < sessionStorage.length; i++ ) { - key = sessionStorage.key( i++ ); - if ( key.indexOf("qunit-test-") === 0 ) { - sessionStorage.removeItem( key ); - } - } - } - - runLoggingCallbacks( 'done', QUnit, { - failed: config.stats.bad, - passed: passed, - total: config.stats.all, - runtime: runtime - } ); -} - -function validTest( name ) { - var filter = config.filter, - run = false; - - if ( !filter ) { - return true; - } - - var not = filter.charAt( 0 ) === "!"; - if ( not ) { - filter = filter.slice( 1 ); - } - - if ( name.indexOf( filter ) !== -1 ) { - return !not; - } - - if ( not ) { - run = true; - } - - return run; -} - -// so far supports only Firefox, Chrome and Opera (buggy), Safari (for real exceptions) -// Later Safari and IE10 are supposed to support error.stack as well -// See also https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Error/Stack -function extractStacktrace( e, offset ) { - offset = offset || 3; - if (e.stacktrace) { - // Opera - return e.stacktrace.split("\n")[offset + 3]; - } else if (e.stack) { - // Firefox, Chrome - var stack = e.stack.split("\n"); - if (/^error$/i.test(stack[0])) { - stack.shift(); - } - return stack[offset]; - } else if (e.sourceURL) { - // Safari, PhantomJS - // hopefully one day Safari provides actual stacktraces - // exclude useless self-reference for generated Error objects - if ( /qunit.js$/.test( e.sourceURL ) ) { - return; - } - // for actual exceptions, this is useful - return e.sourceURL + ":" + e.line; - } -} -function sourceFromStacktrace(offset) { - try { - throw new Error(); - } catch ( e ) { - return extractStacktrace( e, offset ); - } -} - -function escapeInnerText(s) { - if (!s) { - return ""; - } - s = s + ""; - return s.replace(/[\&<>]/g, function(s) { - switch(s) { - case "&": return "&amp;"; - case "<": return "&lt;"; - case ">": return "&gt;"; - default: return s; - } - }); -} - -function synchronize( callback, last ) { - config.queue.push( callback ); - - if ( config.autorun && !config.blocking ) { - process(last); - } -} - -function process( last ) { - function next() { - process( last ); - } - var start = new Date().getTime(); - config.depth = config.depth ? config.depth + 1 : 1; - - while ( config.queue.length && !config.blocking ) { - if ( !defined.setTimeout || config.updateRate <= 0 || ( ( new Date().getTime() - start ) < config.updateRate ) ) { - config.queue.shift()(); - } else { - window.setTimeout( next, 13 ); - break; - } - } - config.depth--; - if ( last && !config.blocking && !config.queue.length && config.depth === 0 ) { - done(); - } -} - -function saveGlobal() { - config.pollution = []; - - if ( config.noglobals ) { - for ( var key in window ) { - if ( !hasOwn.call( window, key ) ) { - continue; - } - config.pollution.push( key ); - } - } -} - -function checkPollution( name ) { - var old = config.pollution; - saveGlobal(); - - var newGlobals = diff( config.pollution, old ); - if ( newGlobals.length > 0 ) { - QUnit.pushFailure( "Introduced global variable(s): " + newGlobals.join(", ") ); - } - - var deletedGlobals = diff( old, config.pollution ); - if ( deletedGlobals.length > 0 ) { - QUnit.pushFailure( "Deleted global variable(s): " + deletedGlobals.join(", ") ); - } -} - -// returns a new Array with the elements that are in a but not in b -function diff( a, b ) { - var result = a.slice(); - for ( var i = 0; i < result.length; i++ ) { - for ( var j = 0; j < b.length; j++ ) { - if ( result[i] === b[j] ) { - result.splice(i, 1); - i--; - break; - } - } - } - return result; -} - -function extend(a, b) { - for ( var prop in b ) { - if ( b[prop] === undefined ) { - delete a[prop]; - - // Avoid "Member not found" error in IE8 caused by setting window.constructor - } else if ( prop !== "constructor" || a !== window ) { - a[prop] = b[prop]; - } - } - - return a; -} - -function addEvent(elem, type, fn) { - if ( elem.addEventListener ) { - elem.addEventListener( type, fn, false ); - } else if ( elem.attachEvent ) { - elem.attachEvent( "on" + type, fn ); - } else { - fn(); - } -} - -function id(name) { - return !!(typeof document !== "undefined" && document && document.getElementById) && - document.getElementById( name ); -} - -function registerLoggingCallback(key){ - return function(callback){ - config[key].push( callback ); - }; -} - -// Supports deprecated method of completely overwriting logging callbacks -function runLoggingCallbacks(key, scope, args) { - //debugger; - var callbacks; - if ( QUnit.hasOwnProperty(key) ) { - QUnit[key].call(scope, args); - } else { - callbacks = config[key]; - for( var i = 0; i < callbacks.length; i++ ) { - callbacks[i].call( scope, args ); - } - } -} - -// Test for equality any JavaScript type. -// Author: Philippe Rathé <prathe@gmail.com> -QUnit.equiv = (function() { - - var innerEquiv; // the real equiv function - var callers = []; // stack to decide between skip/abort functions - var parents = []; // stack to avoiding loops from circular referencing - - // Call the o related callback with the given arguments. - function bindCallbacks(o, callbacks, args) { - var prop = QUnit.objectType(o); - if (prop) { - if (QUnit.objectType(callbacks[prop]) === "function") { - return callbacks[prop].apply(callbacks, args); - } else { - return callbacks[prop]; // or undefined - } - } - } - - var getProto = Object.getPrototypeOf || function (obj) { - return obj.__proto__; - }; - - var callbacks = (function () { - - // for string, boolean, number and null - function useStrictEquality(b, a) { - if (b instanceof a.constructor || a instanceof b.constructor) { - // to catch short annotaion VS 'new' annotation of a - // declaration - // e.g. var i = 1; - // var j = new Number(1); - return a == b; - } else { - return a === b; - } - } - - return { - "string" : useStrictEquality, - "boolean" : useStrictEquality, - "number" : useStrictEquality, - "null" : useStrictEquality, - "undefined" : useStrictEquality, - - "nan" : function(b) { - return isNaN(b); - }, - - "date" : function(b, a) { - return QUnit.objectType(b) === "date" && a.valueOf() === b.valueOf(); - }, - - "regexp" : function(b, a) { - return QUnit.objectType(b) === "regexp" && - // the regex itself - a.source === b.source && - // and its modifers - a.global === b.global && - // (gmi) ... - a.ignoreCase === b.ignoreCase && - a.multiline === b.multiline; - }, - - // - skip when the property is a method of an instance (OOP) - // - abort otherwise, - // initial === would have catch identical references anyway - "function" : function() { - var caller = callers[callers.length - 1]; - return caller !== Object && typeof caller !== "undefined"; - }, - - "array" : function(b, a) { - var i, j, loop; - var len; - - // b could be an object literal here - if (QUnit.objectType(b) !== "array") { - return false; - } - - len = a.length; - if (len !== b.length) { // safe and faster - return false; - } - - // track reference to avoid circular references - parents.push(a); - for (i = 0; i < len; i++) { - loop = false; - for (j = 0; j < parents.length; j++) { - if (parents[j] === a[i]) { - loop = true;// dont rewalk array - } - } - if (!loop && !innerEquiv(a[i], b[i])) { - parents.pop(); - return false; - } - } - parents.pop(); - return true; - }, - - "object" : function(b, a) { - var i, j, loop; - var eq = true; // unless we can proove it - var aProperties = [], bProperties = []; // collection of - // strings - - // comparing constructors is more strict than using - // instanceof - if (a.constructor !== b.constructor) { - // Allow objects with no prototype to be equivalent to - // objects with Object as their constructor. - if (!((getProto(a) === null && getProto(b) === Object.prototype) || - (getProto(b) === null && getProto(a) === Object.prototype))) - { - return false; - } - } - - // stack constructor before traversing properties - callers.push(a.constructor); - // track reference to avoid circular references - parents.push(a); - - for (i in a) { // be strict: don't ensures hasOwnProperty - // and go deep - loop = false; - for (j = 0; j < parents.length; j++) { - if (parents[j] === a[i]) { - // don't go down the same path twice - loop = true; - } - } - aProperties.push(i); // collect a's properties - - if (!loop && !innerEquiv(a[i], b[i])) { - eq = false; - break; - } - } - - callers.pop(); // unstack, we are done - parents.pop(); - - for (i in b) { - bProperties.push(i); // collect b's properties - } - - // Ensures identical properties name - return eq && innerEquiv(aProperties.sort(), bProperties.sort()); - } - }; - }()); - - innerEquiv = function() { // can take multiple arguments - var args = Array.prototype.slice.apply(arguments); - if (args.length < 2) { - return true; // end transition - } - - return (function(a, b) { - if (a === b) { - return true; // catch the most you can - } else if (a === null || b === null || typeof a === "undefined" || - typeof b === "undefined" || - QUnit.objectType(a) !== QUnit.objectType(b)) { - return false; // don't lose time with error prone cases - } else { - return bindCallbacks(a, callbacks, [ b, a ]); - } - - // apply transition with (1..n) arguments - }(args[0], args[1]) && arguments.callee.apply(this, args.splice(1, args.length - 1))); - }; - - return innerEquiv; - -}()); - -/** - * jsDump Copyright (c) 2008 Ariel Flesler - aflesler(at)gmail(dot)com | - * http://flesler.blogspot.com Licensed under BSD - * (http://www.opensource.org/licenses/bsd-license.php) Date: 5/15/2008 - * - * @projectDescription Advanced and extensible data dumping for Javascript. - * @version 1.0.0 - * @author Ariel Flesler - * @link {http://flesler.blogspot.com/2008/05/jsdump-pretty-dump-of-any-javascript.html} - */ -QUnit.jsDump = (function() { - function quote( str ) { - return '"' + str.toString().replace(/"/g, '\\"') + '"'; - } - function literal( o ) { - return o + ''; - } - function join( pre, arr, post ) { - var s = jsDump.separator(), - base = jsDump.indent(), - inner = jsDump.indent(1); - if ( arr.join ) { - arr = arr.join( ',' + s + inner ); - } - if ( !arr ) { - return pre + post; - } - return [ pre, inner + arr, base + post ].join(s); - } - function array( arr, stack ) { - var i = arr.length, ret = new Array(i); - this.up(); - while ( i-- ) { - ret[i] = this.parse( arr[i] , undefined , stack); - } - this.down(); - return join( '[', ret, ']' ); - } - - var reName = /^function (\w+)/; - - var jsDump = { - parse: function( obj, type, stack ) { //type is used mostly internally, you can fix a (custom)type in advance - stack = stack || [ ]; - var parser = this.parsers[ type || this.typeOf(obj) ]; - type = typeof parser; - var inStack = inArray(obj, stack); - if (inStack != -1) { - return 'recursion('+(inStack - stack.length)+')'; - } - //else - if (type == 'function') { - stack.push(obj); - var res = parser.call( this, obj, stack ); - stack.pop(); - return res; - } - // else - return (type == 'string') ? parser : this.parsers.error; - }, - typeOf: function( obj ) { - var type; - if ( obj === null ) { - type = "null"; - } else if (typeof obj === "undefined") { - type = "undefined"; - } else if (QUnit.is("RegExp", obj)) { - type = "regexp"; - } else if (QUnit.is("Date", obj)) { - type = "date"; - } else if (QUnit.is("Function", obj)) { - type = "function"; - } else if (typeof obj.setInterval !== undefined && typeof obj.document !== "undefined" && typeof obj.nodeType === "undefined") { - type = "window"; - } else if (obj.nodeType === 9) { - type = "document"; - } else if (obj.nodeType) { - type = "node"; - } else if ( - // native arrays - toString.call( obj ) === "[object Array]" || - // NodeList objects - ( typeof obj.length === "number" && typeof obj.item !== "undefined" && ( obj.length ? obj.item(0) === obj[0] : ( obj.item( 0 ) === null && typeof obj[0] === "undefined" ) ) ) - ) { - type = "array"; - } else { - type = typeof obj; - } - return type; - }, - separator: function() { - return this.multiline ? this.HTML ? '<br />' : '\n' : this.HTML ? '&nbsp;' : ' '; - }, - indent: function( extra ) {// extra can be a number, shortcut for increasing-calling-decreasing - if ( !this.multiline ) { - return ''; - } - var chr = this.indentChar; - if ( this.HTML ) { - chr = chr.replace(/\t/g,' ').replace(/ /g,'&nbsp;'); - } - return new Array( this._depth_ + (extra||0) ).join(chr); - }, - up: function( a ) { - this._depth_ += a || 1; - }, - down: function( a ) { - this._depth_ -= a || 1; - }, - setParser: function( name, parser ) { - this.parsers[name] = parser; - }, - // The next 3 are exposed so you can use them - quote: quote, - literal: literal, - join: join, - // - _depth_: 1, - // This is the list of parsers, to modify them, use jsDump.setParser - parsers: { - window: '[Window]', - document: '[Document]', - error: '[ERROR]', //when no parser is found, shouldn't happen - unknown: '[Unknown]', - 'null': 'null', - 'undefined': 'undefined', - 'function': function( fn ) { - var ret = 'function', - name = 'name' in fn ? fn.name : (reName.exec(fn)||[])[1];//functions never have name in IE - if ( name ) { - ret += ' ' + name; - } - ret += '('; - - ret = [ ret, QUnit.jsDump.parse( fn, 'functionArgs' ), '){'].join(''); - return join( ret, QUnit.jsDump.parse(fn,'functionCode'), '}' ); - }, - array: array, - nodelist: array, - 'arguments': array, - object: function( map, stack ) { - var ret = [ ], keys, key, val, i; - QUnit.jsDump.up(); - if (Object.keys) { - keys = Object.keys( map ); - } else { - keys = []; - for (key in map) { keys.push( key ); } - } - keys.sort(); - for (i = 0; i < keys.length; i++) { - key = keys[ i ]; - val = map[ key ]; - ret.push( QUnit.jsDump.parse( key, 'key' ) + ': ' + QUnit.jsDump.parse( val, undefined, stack ) ); - } - QUnit.jsDump.down(); - return join( '{', ret, '}' ); - }, - node: function( node ) { - var open = QUnit.jsDump.HTML ? '&lt;' : '<', - close = QUnit.jsDump.HTML ? '&gt;' : '>'; - - var tag = node.nodeName.toLowerCase(), - ret = open + tag; - - for ( var a in QUnit.jsDump.DOMAttrs ) { - var val = node[QUnit.jsDump.DOMAttrs[a]]; - if ( val ) { - ret += ' ' + a + '=' + QUnit.jsDump.parse( val, 'attribute' ); - } - } - return ret + close + open + '/' + tag + close; - }, - functionArgs: function( fn ) {//function calls it internally, it's the arguments part of the function - var l = fn.length; - if ( !l ) { - return ''; - } - - var args = new Array(l); - while ( l-- ) { - args[l] = String.fromCharCode(97+l);//97 is 'a' - } - return ' ' + args.join(', ') + ' '; - }, - key: quote, //object calls it internally, the key part of an item in a map - functionCode: '[code]', //function calls it internally, it's the content of the function - attribute: quote, //node calls it internally, it's an html attribute value - string: quote, - date: quote, - regexp: literal, //regex - number: literal, - 'boolean': literal - }, - DOMAttrs:{//attributes to dump from nodes, name=>realName - id:'id', - name:'name', - 'class':'className' - }, - HTML:false,//if true, entities are escaped ( <, >, \t, space and \n ) - indentChar:' ',//indentation unit - multiline:true //if true, items in a collection, are separated by a \n, else just a space. - }; - - return jsDump; -}()); - -// from Sizzle.js -function getText( elems ) { - var ret = "", elem; - - for ( var i = 0; elems[i]; i++ ) { - elem = elems[i]; - - // Get the text from text nodes and CDATA nodes - if ( elem.nodeType === 3 || elem.nodeType === 4 ) { - ret += elem.nodeValue; - - // Traverse everything else, except comment nodes - } else if ( elem.nodeType !== 8 ) { - ret += getText( elem.childNodes ); - } - } - - return ret; -} - -//from jquery.js -function inArray( elem, array ) { - if ( array.indexOf ) { - return array.indexOf( elem ); - } - - for ( var i = 0, length = array.length; i < length; i++ ) { - if ( array[ i ] === elem ) { - return i; - } - } - - return -1; -} - -/* - * Javascript Diff Algorithm - * By John Resig (http://ejohn.org/) - * Modified by Chu Alan "sprite" - * - * Released under the MIT license. - * - * More Info: - * http://ejohn.org/projects/javascript-diff-algorithm/ - * - * Usage: QUnit.diff(expected, actual) - * - * QUnit.diff("the quick brown fox jumped over", "the quick fox jumps over") == "the quick <del>brown </del> fox <del>jumped </del><ins>jumps </ins> over" - */ -QUnit.diff = (function() { - function diff(o, n) { - var ns = {}; - var os = {}; - var i; - - for (i = 0; i < n.length; i++) { - if (ns[n[i]] == null) { - ns[n[i]] = { - rows: [], - o: null - }; - } - ns[n[i]].rows.push(i); - } - - for (i = 0; i < o.length; i++) { - if (os[o[i]] == null) { - os[o[i]] = { - rows: [], - n: null - }; - } - os[o[i]].rows.push(i); - } - - for (i in ns) { - if ( !hasOwn.call( ns, i ) ) { - continue; - } - if (ns[i].rows.length == 1 && typeof(os[i]) != "undefined" && os[i].rows.length == 1) { - n[ns[i].rows[0]] = { - text: n[ns[i].rows[0]], - row: os[i].rows[0] - }; - o[os[i].rows[0]] = { - text: o[os[i].rows[0]], - row: ns[i].rows[0] - }; - } - } - - for (i = 0; i < n.length - 1; i++) { - if (n[i].text != null && n[i + 1].text == null && n[i].row + 1 < o.length && o[n[i].row + 1].text == null && - n[i + 1] == o[n[i].row + 1]) { - n[i + 1] = { - text: n[i + 1], - row: n[i].row + 1 - }; - o[n[i].row + 1] = { - text: o[n[i].row + 1], - row: i + 1 - }; - } - } - - for (i = n.length - 1; i > 0; i--) { - if (n[i].text != null && n[i - 1].text == null && n[i].row > 0 && o[n[i].row - 1].text == null && - n[i - 1] == o[n[i].row - 1]) { - n[i - 1] = { - text: n[i - 1], - row: n[i].row - 1 - }; - o[n[i].row - 1] = { - text: o[n[i].row - 1], - row: i - 1 - }; - } - } - - return { - o: o, - n: n - }; - } - - return function(o, n) { - o = o.replace(/\s+$/, ''); - n = n.replace(/\s+$/, ''); - var out = diff(o === "" ? [] : o.split(/\s+/), n === "" ? [] : n.split(/\s+/)); - - var str = ""; - var i; - - var oSpace = o.match(/\s+/g); - if (oSpace == null) { - oSpace = [" "]; - } - else { - oSpace.push(" "); - } - var nSpace = n.match(/\s+/g); - if (nSpace == null) { - nSpace = [" "]; - } - else { - nSpace.push(" "); - } - - if (out.n.length === 0) { - for (i = 0; i < out.o.length; i++) { - str += '<del>' + out.o[i] + oSpace[i] + "</del>"; - } - } - else { - if (out.n[0].text == null) { - for (n = 0; n < out.o.length && out.o[n].text == null; n++) { - str += '<del>' + out.o[n] + oSpace[n] + "</del>"; - } - } - - for (i = 0; i < out.n.length; i++) { - if (out.n[i].text == null) { - str += '<ins>' + out.n[i] + nSpace[i] + "</ins>"; - } - else { - var pre = ""; - - for (n = out.n[i].row + 1; n < out.o.length && out.o[n].text == null; n++) { - pre += '<del>' + out.o[n] + oSpace[n] + "</del>"; - } - str += " " + out.n[i].text + nSpace[i] + pre; - } - } - } - - return str; - }; -}()); - -// for CommonJS enviroments, export everything -if ( typeof exports !== "undefined" || typeof require !== "undefined" ) { - extend(exports, QUnit); -} - -// get at whatever the global object is, like window in browsers -}( (function() {return this;}.call()) )); diff --git a/admin/bower_components/bootstrap-datepicker/tests/assets/utils.js b/admin/bower_components/bootstrap-datepicker/tests/assets/utils.js deleted file mode 100644 index 6f9cac5..0000000 --- a/admin/bower_components/bootstrap-datepicker/tests/assets/utils.js +++ /dev/null @@ -1,21 +0,0 @@ -function UTCDate(){ - return new Date(Date.UTC.apply(Date, arguments)); -} - - -function format_date(date){ - var y = date.getUTCFullYear(), - m = date.getUTCMonth() + 1, - d = date.getUTCDate(), - h = date.getUTCHours(), - i = date.getUTCMinutes(), - s = date.getUTCSeconds(), - l = date.getUTCMilliseconds(); - function z(i){return (i <= 9 ? '0'+i : i);} - return y+'-'+z(m)+'-'+z(d)+' '+z(h)+':'+z(i)+':'+z(s)+'.'+z(l); -} - - -function datesEqual(actual, expected, message){ - QUnit.push(QUnit.equiv(actual, expected), format_date(actual), format_date(expected), message); -} diff --git a/admin/bower_components/bootstrap-datepicker/tests/suites/calendar-weeks.js b/admin/bower_components/bootstrap-datepicker/tests/suites/calendar-weeks.js deleted file mode 100644 index 258c29c..0000000 --- a/admin/bower_components/bootstrap-datepicker/tests/suites/calendar-weeks.js +++ /dev/null @@ -1,48 +0,0 @@ -module('Calendar Weeks', { - setup: function(){ - this.input = $('<input type="text">') - .appendTo('#qunit-fixture') - .val('2013-01-14') - .datepicker({ - format: 'yyyy-mm-dd', - calendarWeeks: true - }) - .focus(); // Activate for visibility checks - this.dp = this.input.data('datepicker'); - this.picker = this.dp.picker; - }, - teardown: function(){ - this.picker.remove(); - } -}); - -test('adds cw header column', function(){ - var target = this.picker.find('.datepicker-days thead tr:nth-child(3) th:first-child'); - ok(target.hasClass('cw'), 'First column heading is from cw column'); -}); - -test('adds calendar week cells to each day row', function(){ - var target = this.picker.find('.datepicker-days tbody tr'); - - expect(target.length); - target.each(function(i){ - var t = $(this).children().first(); - ok(t.hasClass('cw'), "First column is cw column"); - }); -}); - -test('displays correct calendar week', function(){ - var target = this.picker.find('.datepicker-days tbody tr'); - - expect(target.length); - target.each(function(i){ - var t = $(this).children().first(); - equal(t.text(), i+1, "Displays correct calendar weeks"); - }); -}); - -test('it prepends column to switcher thead row', function(){ - var target = this.picker.find('.datepicker-days thead tr:nth-child(2)'); - equal(target.children().length, 3, 'first row has 3 columns'); - ok(!target.children().first().hasClass('cw'), 'cw column is not prepended'); -}); diff --git a/admin/bower_components/bootstrap-datepicker/tests/suites/component.js b/admin/bower_components/bootstrap-datepicker/tests/suites/component.js deleted file mode 100644 index 7540b73..0000000 --- a/admin/bower_components/bootstrap-datepicker/tests/suites/component.js +++ /dev/null @@ -1,267 +0,0 @@ -module('Component', { - setup: function(){ - this.component = $('<div class="input-append date" id="datepicker">'+ - '<input size="16" type="text" value="12-02-2012" readonly>'+ - '<span class="add-on"><i class="icon-th"></i></span>'+ - '</div>') - .appendTo('#qunit-fixture') - .datepicker({format: "dd-mm-yyyy"}); - this.input = this.component.find('input'); - this.addon = this.component.find('.add-on'); - this.dp = this.component.data('datepicker'); - this.picker = this.dp.picker; - }, - teardown: function(){ - this.picker.remove(); - } -}); - - -test('Component gets date/viewDate from input value', function(){ - datesEqual(this.dp.getUTCDate(), UTCDate(2012, 1, 12)); - datesEqual(this.dp.viewDate, UTCDate(2012, 1, 12)); -}); - -test('Activation by component', function(){ - ok(!this.picker.is(':visible')); - this.addon.click(); - ok(this.picker.is(':visible')); -}); - -test('Dont activation (by disabled) by component', function(){ - ok(!this.picker.is(':visible')); - this.input.prop('disabled', true); - this.addon.click(); - ok(!this.picker.is(':visible')); - this.input.prop('disabled', false); -}); - -test('simple keyboard nav test', function(){ - var target; - - // Keyboard nav only works with non-readonly inputs - this.input.removeAttr('readonly'); - - equal(this.dp.viewMode, 0); - target = this.picker.find('.datepicker-days thead th.datepicker-switch'); - equal(target.text(), 'February 2012', 'Title is "February 2012"'); - datesEqual(this.dp.getUTCDate(), UTCDate(2012, 1, 12)); - datesEqual(this.dp.viewDate, UTCDate(2012, 1, 12)); - - // Focus/open - this.addon.click(); - - // Navigation: -1 day, left arrow key - this.input.trigger({ - type: 'keydown', - keyCode: 37 - }); - datesEqual(this.dp.viewDate, UTCDate(2012, 1, 11)); - datesEqual(this.dp.getUTCDate(), UTCDate(2012, 1, 12)); - datesEqual(this.dp.focusDate, UTCDate(2012, 1, 11)); - // Month not changed - target = this.picker.find('.datepicker-days thead th.datepicker-switch'); - equal(target.text(), 'February 2012', 'Title is "February 2012"'); - - // Navigation: +1 month, shift + right arrow key - this.input.trigger({ - type: 'keydown', - keyCode: 39, - shiftKey: true - }); - datesEqual(this.dp.viewDate, UTCDate(2012, 2, 11)); - datesEqual(this.dp.getUTCDate(), UTCDate(2012, 1, 12)); - datesEqual(this.dp.focusDate, UTCDate(2012, 2, 11)); - target = this.picker.find('.datepicker-days thead th.datepicker-switch'); - equal(target.text(), 'March 2012', 'Title is "March 2012"'); - - // Navigation: -1 year, ctrl + left arrow key - this.input.trigger({ - type: 'keydown', - keyCode: 37, - ctrlKey: true - }); - datesEqual(this.dp.viewDate, UTCDate(2011, 2, 11)); - datesEqual(this.dp.getUTCDate(), UTCDate(2012, 1, 12)); - datesEqual(this.dp.focusDate, UTCDate(2011, 2, 11)); - target = this.picker.find('.datepicker-days thead th.datepicker-switch'); - equal(target.text(), 'March 2011', 'Title is "March 2011"'); -}); - -test('setValue', function(){ - this.dp.dates.replace(UTCDate(2012, 2, 13)); - this.dp.setValue(); - datesEqual(this.dp.dates[0], UTCDate(2012, 2, 13)); - equal(this.input.val(), '13-03-2012'); -}); - -test('update', function(){ - this.input.val('13-03-2012'); - this.dp.update(); - equal(this.dp.dates.length, 1); - datesEqual(this.dp.dates[0], UTCDate(2012, 2, 13)); -}); - -test('Navigating to/from decade view', function(){ - var target; - - this.addon.click(); - this.input.val('31-03-2012'); - this.dp.update(); - - equal(this.dp.viewMode, 0); - target = this.picker.find('.datepicker-days thead th.datepicker-switch'); - ok(target.is(':visible'), 'View switcher is visible'); - - target.click(); - ok(this.picker.find('.datepicker-months').is(':visible'), 'Month picker is visible'); - equal(this.dp.viewMode, 1); - // Not modified when switching modes - datesEqual(this.dp.viewDate, UTCDate(2012, 2, 31)); - datesEqual(this.dp.dates[0], UTCDate(2012, 2, 31)); - - target = this.picker.find('.datepicker-months thead th.datepicker-switch'); - ok(target.is(':visible'), 'View switcher is visible'); - - target.click(); - ok(this.picker.find('.datepicker-years').is(':visible'), 'Year picker is visible'); - equal(this.dp.viewMode, 2); - // Not modified when switching modes - datesEqual(this.dp.viewDate, UTCDate(2012, 2, 31)); - datesEqual(this.dp.dates[0], UTCDate(2012, 2, 31)); - - // Change years to test internal state changes - target = this.picker.find('.datepicker-years tbody span:contains(2011)'); - target.click(); - equal(this.dp.viewMode, 1); - // Only viewDate modified - datesEqual(this.dp.viewDate, UTCDate(2011, 2, 1)); - datesEqual(this.dp.dates[0], UTCDate(2012, 2, 31)); - - target = this.picker.find('.datepicker-months tbody span:contains(Apr)'); - target.click(); - equal(this.dp.viewMode, 0); - // Only viewDate modified - datesEqual(this.dp.viewDate, UTCDate(2011, 3, 1)); - datesEqual(this.dp.dates[0], UTCDate(2012, 2, 31)); -}); - -test('Selecting date resets viewDate and date', function(){ - var target; - - this.addon.click(); - this.input.val('31-03-2012'); - this.dp.update(); - - // Rendered correctly - equal(this.dp.viewMode, 0); - target = this.picker.find('.datepicker-days tbody td:first'); - equal(target.text(), '26'); // Should be Feb 26 - - // Updated internally on click - target.click(); - datesEqual(this.dp.viewDate, UTCDate(2012, 1, 26)); - datesEqual(this.dp.dates[0], UTCDate(2012, 1, 26)); - - // Re-rendered on click - target = this.picker.find('.datepicker-days tbody td:first'); - equal(target.text(), '29'); // Should be Jan 29 -}); - -test('"destroy" removes associated HTML', function(){ - var datepickerDivSelector = '.datepicker'; - - $('#datepicker').datepicker('show'); - - //there should be one datepicker initiated so that means one hidden .datepicker div - equal($(datepickerDivSelector).length, 1); - this.component.datepicker('destroy'); - equal($(datepickerDivSelector).length, 0);//hidden HTML should be gone -}); - -test('"remove" is an alias for "destroy"', function(){ - var called, originalDestroy = this.dp.destroy; - this.dp.destroy = function () { - called = true; - return originalDestroy.apply(this, arguments); - }; - this.dp.remove(); - ok(called); -}); - -test('Does not block events', function(){ - var clicks = 0; - function handler(){ - clicks++; - } - $('#qunit-fixture').on('click', '.add-on', handler); - this.addon.click(); - equal(clicks, 1); - $('#qunit-fixture').off('click', '.add-on', handler); -}); - - -test('date and viewDate must be between startDate and endDate when setStartDate called', function() { - this.dp.setDate(new Date(2013, 1, 1)); - datesEqual(this.dp.dates[0], UTCDate(2013, 1, 1)); - datesEqual(this.dp.viewDate, UTCDate(2013, 1, 1)); - this.dp.setStartDate(new Date(2013, 5, 6)); - datesEqual(this.dp.viewDate, UTCDate(2013, 5, 6)); - equal(this.dp.dates.length, 0); -}); - -test('date and viewDate must be between startDate and endDate when setEndDate called', function() { - this.dp.setDate(new Date(2013, 11, 1)); - datesEqual(this.dp.dates[0], UTCDate(2013, 11, 1)); - datesEqual(this.dp.viewDate, UTCDate(2013, 11, 1)); - this.dp.setEndDate(new Date(2013, 5, 6)); - datesEqual(this.dp.viewDate, UTCDate(2013, 5, 6)); - equal(this.dp.dates.length, 0); -}); - -test('picker should render fine when `$.fn.show` and `$.fn.hide` are overridden', patch_show_hide(function () { - var viewModes = $.fn.datepicker.DPGlobal.viewModes, - minViewMode = this.dp.o.minViewMode, - maxViewMode = this.dp.o.maxViewMode, - childDivs = this.picker.children('div'); - - this.dp.setViewMode(minViewMode); - - // Overwritten `$.fn.hide` method adds the `foo` class to its matched elements - var curDivShowing = childDivs.filter('.datepicker-' + viewModes[minViewMode].clsName); - ok(!curDivShowing.hasClass('foo'), 'Shown div does not have overridden `$.fn.hide` side-effects'); - - // Check that other classes do have `foo` class - var divNotShown; - for (var curViewMode = minViewMode + 1; curViewMode <= maxViewMode; curViewMode++) { - divNotShown = childDivs.filter('.datepicker-' + viewModes[curViewMode].clsName); - ok(divNotShown.hasClass('foo'), 'Other divs do have overridden `$.fn.hide` side-effects'); - } -})); - -test('Focused ceil for decade/century/millenium views', function(){ - var input = $('<input />') - .appendTo('#qunit-fixture') - .datepicker({ - startView: 2, - defaultViewDate: { - year: 2115 - } - }), - dp = input.data('datepicker'), - picker = dp.picker, - target; - - input.focus(); - - target = picker.find('.datepicker-years tbody .focused'); - ok(target.text() === '2115', 'Year cell is focused'); - - picker.find('.datepicker-years thead th.datepicker-switch').click(); - target = picker.find('.datepicker-decades tbody .focused'); - ok(target.text() === '2110', 'Decade cell is focused'); - - picker.find('.datepicker-decades thead th.datepicker-switch').click(); - target = picker.find('.datepicker-centuries tbody .focused'); - ok(target.text() === '2100', 'Century cell is focused'); -}); diff --git a/admin/bower_components/bootstrap-datepicker/tests/suites/data-api.js b/admin/bower_components/bootstrap-datepicker/tests/suites/data-api.js deleted file mode 100644 index a751f57..0000000 --- a/admin/bower_components/bootstrap-datepicker/tests/suites/data-api.js +++ /dev/null @@ -1,114 +0,0 @@ -module('DATA-API'); - -test('DATA-API: data-provide="datepicker" on input; focus', function(){ - var input = $('<input data-provide="datepicker" />') - .appendTo('#qunit-fixture'); - input.focus(); - ok(input.data('datepicker'), 'datepicker is initialized by "focus" event'); -}); - -test('DATA-API: data-provide="datepicker" on input; click', function(){ - var input = $('<input data-provide="datepicker" />') - .appendTo('#qunit-fixture'); - input.click(); - ok(input.data('datepicker'), 'datepicker is initialized by "focus" event'); -}); - -test('DATA-API: data-provide="datepicker" on component', function(){ - var html, comp; - - html = '<div class="input-append date" data-provide="datepicker">'+ - '<input><span class="add-on"><i class="icon-th"></i></span>'+ - '</div>'; - - comp = $(html).appendTo('#qunit-fixture'); - comp.find('input').focus(); - ok(comp.data('datepicker'), 'append component initialized by "focus" event on input'); - comp.remove(); - - comp = $(html).appendTo('#qunit-fixture'); - comp.find('input').click(); - ok(comp.data('datepicker'), 'append component initialized by "click" event on input'); - comp.remove(); - - comp = $(html).appendTo('#qunit-fixture'); - comp.find('.add-on').focus(); - ok(comp.data('datepicker'), 'append component initialized by "focus" event on add-on'); - comp.remove(); - - comp = $(html).appendTo('#qunit-fixture'); - comp.find('.add-on').click(); - ok(comp.data('datepicker'), 'append component initialized by "click" event on add-on'); - comp.remove(); - - - html = '<div class="input-prepend date" data-provide="datepicker">'+ - '<span class="add-on"><i class="icon-th"></i></span><input>'+ - '</div>'; - - comp = $(html).prependTo('#qunit-fixture'); - comp.find('input').focus(); - ok(comp.data('datepicker'), 'prepend component initialized by "focus" event on input'); - comp.remove(); - - comp = $(html).prependTo('#qunit-fixture'); - comp.find('input').click(); - ok(comp.data('datepicker'), 'prepend component initialized by "click" event on input'); - comp.remove(); - - comp = $(html).prependTo('#qunit-fixture'); - comp.find('.add-on').focus(); - ok(comp.data('datepicker'), 'prepend component initialized by "focus" event on add-on'); - comp.remove(); - - comp = $(html).prependTo('#qunit-fixture'); - comp.find('.add-on').click(); - ok(comp.data('datepicker'), 'prepend component initialized by "click" event on add-on'); - comp.remove(); -}); - -test('DATA-API: data-provide="datepicker" on button', function(){ - var html, comp; - - html = '<button data-provide="datepicker">'; - - comp = $(html).appendTo('#qunit-fixture'); - comp.focus(); - ok(comp.data('datepicker'), 'button initialized by "focus" event on input'); - comp.remove(); - - comp = $(html).appendTo('#qunit-fixture'); - comp.click(); - ok(comp.data('datepicker'), 'button initialized by "click" event on input'); - comp.remove(); -}); - -test('DATA-API: data-provide="datepicker" on rangepicker', function(){ - var html, comp; - - html = '<div class="input-daterange" data-provide="datepicker">'+ - '<input class="datepicker">'+ - '<span class="add-on">to</span>'+ - '<input class="datepicker">'+ - '</div>'; - - comp = $(html).appendTo('#qunit-fixture'); - comp.find('input:first').focus(); - ok(comp.data('datepicker'), 'range initialized by "focus" event on first input'); - comp.remove(); - - comp = $(html).appendTo('#qunit-fixture'); - comp.find('input:first').click(); - ok(comp.data('datepicker'), 'range initialized by "click" event on first input'); - comp.remove(); - - comp = $(html).appendTo('#qunit-fixture'); - comp.find('input:last').focus(); - ok(comp.data('datepicker'), 'range initialized by "focus" event on last input'); - comp.remove(); - - comp = $(html).appendTo('#qunit-fixture'); - comp.find('input:last').click(); - ok(comp.data('datepicker'), 'range initialized by "click" event on last input'); - comp.remove(); -}); diff --git a/admin/bower_components/bootstrap-datepicker/tests/suites/events.js b/admin/bower_components/bootstrap-datepicker/tests/suites/events.js deleted file mode 100644 index b1d92d2..0000000 --- a/admin/bower_components/bootstrap-datepicker/tests/suites/events.js +++ /dev/null @@ -1,507 +0,0 @@ -module('Events on initialization', { - setup: function(){ - this.input = $('<input type="text" value="31-03-2011">') - .appendTo('#qunit-fixture') - } -}); - -test('When initializing the datepicker, it should trigger no change or changeDate events', function(){ - var triggered_change = 0, - triggered_changeDate = 0; - - this.input.on({ - change: function(){ - triggered_change++; - }, - changeDate: function(){ - triggered_changeDate++; - } - }); - - this.input.datepicker({format: 'dd-mm-yyyy'}); - - equal(triggered_change, 0); - equal(triggered_changeDate, 0); -}); - -module('Events', { - setup: function(){ - this.input = $('<input type="text" value="31-03-2011">') - .appendTo('#qunit-fixture') - .datepicker({format: "dd-mm-yyyy"}) - .focus(); // Activate for visibility checks - this.dp = this.input.data('datepicker'); - this.picker = this.dp.picker; - }, - teardown: function(){ - this.picker.remove(); - } -}); - -test('Selecting a year from decade view triggers changeYear', function(){ - var target, - triggered = 0; - - this.input.on('changeYear', function(){ - triggered++; - }); - - equal(this.dp.viewMode, 0); - target = this.picker.find('.datepicker-days thead th.datepicker-switch'); - ok(target.is(':visible'), 'View switcher is visible'); - - target.click(); - ok(this.picker.find('.datepicker-months').is(':visible'), 'Month picker is visible'); - equal(this.dp.viewMode, 1); - // Not modified when switching modes - datesEqual(this.dp.viewDate, UTCDate(2011, 2, 31)); - datesEqual(this.dp.dates[0], UTCDate(2011, 2, 31)); - - target = this.picker.find('.datepicker-months thead th.datepicker-switch'); - ok(target.is(':visible'), 'View switcher is visible'); - - target.click(); - ok(this.picker.find('.datepicker-years').is(':visible'), 'Year picker is visible'); - equal(this.dp.viewMode, 2); - // Not modified when switching modes - datesEqual(this.dp.viewDate, UTCDate(2011, 2, 31)); - datesEqual(this.dp.dates[0], UTCDate(2011, 2, 31)); - - // Change years to test internal state changes - target = this.picker.find('.datepicker-years tbody span:contains(2010)'); - target.click(); - equal(this.dp.viewMode, 1); - // Only viewDate modified - datesEqual(this.dp.viewDate, UTCDate(2010, 2, 1)); - datesEqual(this.dp.dates[0], UTCDate(2011, 2, 31)); - equal(triggered, 1); -}); - -test('Navigating forward/backward from month view triggers changeYear', function(){ - var target, - triggered = 0; - - this.input.on('changeYear', function(){ - triggered++; - }); - - equal(this.dp.viewMode, 0); - target = this.picker.find('.datepicker-days thead th.datepicker-switch'); - ok(target.is(':visible'), 'View switcher is visible'); - - target.click(); - ok(this.picker.find('.datepicker-months').is(':visible'), 'Month picker is visible'); - equal(this.dp.viewMode, 1); - - target = this.picker.find('.datepicker-months thead th.prev'); - ok(target.is(':visible'), 'Prev switcher is visible'); - - target.click(); - ok(this.picker.find('.datepicker-months').is(':visible'), 'Month picker is visible'); - equal(triggered, 1); - - target = this.picker.find('.datepicker-months thead th.next'); - ok(target.is(':visible'), 'Next switcher is visible'); - - target.click(); - ok(this.picker.find('.datepicker-months').is(':visible'), 'Month picker is visible'); - equal(triggered, 2); -}); - -test('Selecting a month from year view triggers changeMonth', function(){ - var target, - triggered = 0; - - this.input.on('changeMonth', function(){ - triggered++; - }); - - equal(this.dp.viewMode, 0); - target = this.picker.find('.datepicker-days thead th.datepicker-switch'); - ok(target.is(':visible'), 'View switcher is visible'); - - target.click(); - ok(this.picker.find('.datepicker-months').is(':visible'), 'Month picker is visible'); - equal(this.dp.viewMode, 1); - // Not modified when switching modes - datesEqual(this.dp.viewDate, UTCDate(2011, 2, 31)); - datesEqual(this.dp.dates[0], UTCDate(2011, 2, 31)); - - target = this.picker.find('.datepicker-months tbody span:contains(Apr)'); - target.click(); - equal(this.dp.viewMode, 0); - // Only viewDate modified - datesEqual(this.dp.viewDate, UTCDate(2011, 3, 1)); - datesEqual(this.dp.dates[0], UTCDate(2011, 2, 31)); - equal(triggered, 1); -}); - -test('Navigating forward/backward from month view triggers changeMonth', function(){ - var target, - triggered = 0; - - this.input.on('changeMonth', function(){ - triggered++; - }); - - equal(this.dp.viewMode, 0); - target = this.picker.find('.datepicker-days thead th.prev'); - ok(target.is(':visible'), 'Prev switcher is visible'); - - target.click(); - ok(this.picker.find('.datepicker-days').is(':visible'), 'Day picker is visible'); - equal(triggered, 1); - - target = this.picker.find('.datepicker-days thead th.next'); - ok(target.is(':visible'), 'Next switcher is visible'); - - target.click(); - ok(this.picker.find('.datepicker-days').is(':visible'), 'Day picker is visible'); - equal(triggered, 2); -}); - -test('format() returns a formatted date string', function(){ - var target, - error, out; - - this.input.on('changeDate', function(e){ - try{ - out = e.format(); - } - catch(e){ - error = e; - } - }); - - equal(this.dp.viewMode, 0); - target = this.picker.find('.datepicker-days tbody td:nth(15)'); - target.click(); - - datesEqual(this.dp.viewDate, UTCDate(2011, 2, 14)); - datesEqual(this.dp.dates[0], UTCDate(2011, 2, 14)); - equal(error, undefined); - equal(out, '14-03-2011'); -}); - -test('format(altformat) returns a formatted date string', function(){ - var target, - error, out; - - this.input.on('changeDate', function(e){ - try{ - out = e.format('m/d/yy'); - } - catch(e){ - error = e; - } - }); - - equal(this.dp.viewMode, 0); - target = this.picker.find('.datepicker-days tbody td:nth(15)'); - target.click(); - - datesEqual(this.dp.viewDate, UTCDate(2011, 2, 14)); - datesEqual(this.dp.dates[0], UTCDate(2011, 2, 14)); - equal(error, undefined); - equal(out, '3/14/11'); -}); - -test('format(ix) returns a formatted date string of the ix\'th date selected', function(){ - var target, - error, out; - - this.dp._process_options({multidate: true}); - - this.input.on('changeDate', function(e){ - try{ - out = e.format(2); - } - catch(e){ - error = e; - } - }); - - target = this.picker.find('.datepicker-days tbody td:nth(7)'); - equal(target.text(), '6'); // Mar 6 - target.click(); - - target = this.picker.find('.datepicker-days tbody td:nth(15)'); - equal(target.text(), '14'); // Mar 16 - target.click(); - - equal(this.dp.dates.length, 3); - - equal(error, undefined); - equal(out, '14-03-2011'); -}); - -test('format(ix, altformat) returns a formatted date string', function(){ - var target, - error, out; - - this.dp._process_options({multidate: true}); - - this.input.on('changeDate', function(e){ - try{ - out = e.format(2, 'm/d/yy'); - } - catch(e){ - error = e; - } - }); - - target = this.picker.find('.datepicker-days tbody td:nth(7)'); - equal(target.text(), '6'); // Mar 6 - target.click(); - - target = this.picker.find('.datepicker-days tbody td:nth(15)'); - equal(target.text(), '14'); // Mar 16 - target.click(); - - equal(this.dp.dates.length, 3); - - equal(error, undefined); - equal(out, '3/14/11'); -}); - -test('Clear button: triggers change and changeDate events', function(){ - this.input = $('<input type="text" value="31-03-2011">') - .appendTo('#qunit-fixture') - .datepicker({ - format: "dd-mm-yyyy", - clearBtn: true - }) - .focus(); // Activate for visibility checks - this.dp = this.input.data('datepicker'); - this.picker = this.dp.picker; - - var target, - triggered_change = 0, - triggered_changeDate = 0; - - this.input.on({ - changeDate: function(){ - triggered_changeDate++; - }, - change: function(){ - triggered_change++; - } - }); - - this.input.focus(); - ok(this.picker.find('.datepicker-days').is(':visible'), 'Days view visible'); - ok(this.picker.find('.datepicker-days tfoot .clear').is(':visible'), 'Clear button visible'); - - target = this.picker.find('.datepicker-days tfoot .clear'); - target.click(); - - equal(triggered_change, 1); - equal(triggered_changeDate, 1); -}); - -test('setDate: triggers change and changeDate events', function(){ - this.input = $('<input type="text" value="31-03-2011">') - .appendTo('#qunit-fixture') - .datepicker({ - format: "dd-mm-yyyy" - }) - .focus(); // Activate for visibility checks - this.dp = this.input.data('datepicker'); - this.picker = this.dp.picker; - - var target, - triggered_change = 0, - triggered_changeDate = 0; - - this.input.on({ - changeDate: function(){ - triggered_changeDate++; - }, - change: function(){ - triggered_change++; - } - }); - - this.input.focus(); - ok(this.picker.find('.datepicker-days').is(':visible'), 'Days view visible'); - - this.dp.setDate(new Date(2011, 2, 5)); - - equal(triggered_change, 1); - equal(triggered_changeDate, 1); -}); - -test('paste must update the date', function() { - var dateToPaste = '22-07-2015'; - var evt = { - type: 'paste', - originalEvent: { - clipboardData: { - types: ['text/plain'], - getData: function() { return dateToPaste; } - }, - preventDefault: function() { evt.originalEvent.isDefaultPrevented = true; }, - isDefaultPrevented: false - } - }; - this.input.trigger(evt); - datesEqual(this.dp.dates[0], UTCDate(2015, 6, 22)); - - ok(evt.originalEvent.isDefaultPrevented, 'prevented original event'); -}); - -test('clicking outside datepicker triggers \'hide\' event', function(){ - var $otherelement = $('<div />'); - $('body').append($otherelement); - - var isHideTriggered; - this.input.on('hide', function() { isHideTriggered = true; }); - - $otherelement.trigger('mousedown'); - - ok(isHideTriggered, '\'hide\' event is not triggered'); - - $otherelement.remove(); -}); - -test('Selecting date from previous month triggers changeMonth', function() { - var target, - triggered = 0; - - this.input.on('changeMonth', function(){ - triggered++; - }); - - // find first day of previous month - target = this.picker.find('.datepicker-days tbody td:first'); - target.click(); - - // ensure event has been triggered - equal(triggered, 1); -}); - -test('Selecting date from previous month in january triggers changeMonth/changeYear', function() { - var target, - triggeredM = 0, - triggeredY = 0; - - this.input.val('01-01-2011'); - this.dp.update(); - - this.input.on('changeMonth', function(){ - triggeredM++; - }); - - this.input.on('changeYear', function(){ - triggeredY++; - }); - - // find first day of previous month - target = this.picker.find('.datepicker-days tbody td:first'); - target.click(); - - // ensure event has been triggered - equal(triggeredM, 1); - equal(triggeredY, 1); -}); - -test('Selecting date from next month triggers changeMonth', function() { - var target, - triggered = 0; - - this.input.on('changeMonth', function(){ - triggered++; - }); - - // find first day of previous month - target = this.picker.find('.datepicker-days tbody td:last'); - target.click(); - - // ensure event has been triggered - equal(triggered, 1); -}); - -test('Selecting date from next month in december triggers changeMonth/changeYear', function() { - var target, - triggeredM = 0, - triggeredY = 0; - - this.input.val('01-12-2011'); - this.dp.update(); - - this.input.on('changeMonth', function(){ - triggeredM++; - }); - - this.input.on('changeYear', function(){ - triggeredY++; - }); - - // find first day of previous month - target = this.picker.find('.datepicker-days tbody td:last'); - target.click(); - - // ensure event has been triggered - equal(triggeredM, 1); - equal(triggeredY, 1); -}); - -test('Changing view mode triggers changeViewMode', function () { - var viewMode = -1, - triggered = 0; - - this.input.val('22-07-2016'); - this.dp.update(); - - this.input.on('changeViewMode', function (e) { - viewMode = e.viewMode; - triggered++; - }); - - // change from days to months - this.picker.find('.datepicker-days .datepicker-switch').click(); - equal(triggered, 1); - equal(viewMode, 1); - - // change from months to years - this.picker.find('.datepicker-months .datepicker-switch').click(); - equal(triggered, 2); - equal(viewMode, 2); - - // change from years to decade - this.picker.find('.datepicker-years .datepicker-switch').click(); - equal(triggered, 3); - equal(viewMode, 3); - - // change from decades to centuries - this.picker.find('.datepicker-decades .datepicker-switch').click(); - equal(triggered, 4); - equal(viewMode, 4); - -}); - -test('Clicking inside content of date with custom beforeShowDay content works', function(){ - this.input = $('<input type="text" value="31-03-2011">') - .appendTo('#qunit-fixture') - .datepicker({ - format: "dd-mm-yyyy", - beforeShowDay: function (date) { return { content: '<div><div>' + date.getDate() + '</div></div>' }; } - }) - .focus(); // Activate for visibility checks - this.dp = this.input.data('datepicker'); - this.picker = this.dp.picker; - - var target, - triggered = 0; - - this.input.on('changeDate', function(){ - triggered++; - }); - - // find deepest date - target = this.picker.find('.datepicker-days tbody td:first div div'); - target.click(); - - // ensure event has been triggered - equal(triggered, 1); -}); diff --git a/admin/bower_components/bootstrap-datepicker/tests/suites/formats.js b/admin/bower_components/bootstrap-datepicker/tests/suites/formats.js deleted file mode 100644 index 93fcb52..0000000 --- a/admin/bower_components/bootstrap-datepicker/tests/suites/formats.js +++ /dev/null @@ -1,314 +0,0 @@ -module('Formats', { - setup: function(){ - this.input = $('<input type="text">').appendTo('#qunit-fixture'); - this.date = UTCDate(2012, 2, 15, 0, 0, 0, 0); // March 15, 2012 - }, - teardown: function(){ - this.input.data('datepicker').picker.remove(); - } -}); - -test('d: Day of month, no leading zero.', function(){ - this.input - .val('2012-03-05') - .datepicker({format: 'yyyy-mm-d'}) - .datepicker('setValue'); - equal(this.input.val().split('-')[2], '5'); -}); - -test('dd: Day of month, leading zero.', function(){ - this.input - .val('2012-03-5') - .datepicker({format: 'yyyy-mm-dd'}) - .datepicker('setValue'); - equal(this.input.val().split('-')[2], '05'); -}); - -test('D: Day of week, short.', function(){ - this.input - .val('2012-03-05') - .datepicker({format: 'yyyy-mm-dd-D'}) - .datepicker('setValue'); - equal(this.input.val().split('-')[3], 'Mon'); -}); - -test('DD: Day of week, long.', function(){ - this.input - .val('2012-03-05') - .datepicker({format: 'yyyy-mm-dd-DD'}) - .datepicker('setValue'); - equal(this.input.val().split('-')[3], 'Monday'); -}); - -test('m: Month, no leading zero.', function(){ - this.input - .val('2012-03-05') - .datepicker({format: 'yyyy-m-dd'}) - .datepicker('setValue'); - equal(this.input.val().split('-')[1], '3'); -}); - -test('mm: Month, leading zero.', function(){ - this.input - .val('2012-3-5') - .datepicker({format: 'yyyy-mm-dd'}) - .datepicker('setValue'); - equal(this.input.val().split('-')[1], '03'); -}); - -test('M: Month shortname.', function(){ - this.input - .val('2012-Mar-05') - .datepicker({format: 'yyyy-M-dd'}) - .datepicker('setValue'); - equal(this.input.val().split('-')[1], 'Mar'); -}); - -test('M: Month shortname case insensitive.', function(){ - this.input - .val('2012-MAR-05') - .datepicker({format: 'yyyy-M-dd'}) - .datepicker('setValue'); - equal(this.input.val().split('-')[1], 'Mar'); -}); - -test('MM: Month full name.', function(){ - this.input - .val('2012-March-5') - .datepicker({format: 'yyyy-MM-dd'}) - .datepicker('setValue'); - equal(this.input.val().split('-')[1], 'March'); -}); - -test('M: Month fullname case insensitive.', function(){ - this.input - .val('2012-MARCH-05') - .datepicker({format: 'yyyy-MM-dd'}) - .datepicker('setValue'); - equal(this.input.val().split('-')[1], 'March'); -}); - -test('yy: Year, two-digit.', function(){ - this.input - .val('2012-03-05') - .datepicker({format: 'yy-mm-dd'}) - .datepicker('setValue'); - equal(this.input.val().split('-')[0], '12'); -}); - -test('yyyy: Year, four-digit.', function(){ - this.input - .val('2012-03-5') - .datepicker({format: 'yyyy-mm-dd'}) - .datepicker('setValue'); - equal(this.input.val().split('-')[0], '2012'); -}); - -test('dd-mm-yyyy: Regression: Prevent potential month overflow in small-to-large formats (Mar 31, 2012 -> Mar 01, 2012)', function(){ - this.input - .val('31-03-2012') - .datepicker({format: 'dd-mm-yyyy'}) - .datepicker('setValue'); - equal(this.input.val(), '31-03-2012'); -}); - -test('dd-mm-yyyy: Leap day', function(){ - this.input - .val('29-02-2012') - .datepicker({format: 'dd-mm-yyyy'}) - .datepicker('setValue'); - equal(this.input.val(), '29-02-2012'); -}); - -test('yyyy-mm-dd: Alternative format', function(){ - this.input - .val('2012-02-12') - .datepicker({format: 'yyyy-mm-dd'}) - .datepicker('setValue'); - equal(this.input.val(), '2012-02-12'); -}); - -test('yyyy-MM-dd: Regression: Infinite loop when numbers used for month', function(){ - this.input - .val('2012-02-12') - .datepicker({format: 'yyyy-MM-dd'}) - .datepicker('setValue'); - equal(this.input.val(), '2012-February-12'); -}); - -test('+1d: Tomorrow', patch_date(function(Date){ - Date.now = UTCDate(2012, 2, 15); - this.input - .val('+1d') - .datepicker({format: 'dd-mm-yyyy'}) - .datepicker('setValue'); - equal(this.input.val(), '16-03-2012'); -})); - -test('tomorrow (alias for +1d): Tomorrow', patch_date(function(Date){ - Date.now = UTCDate(2012, 2, 15); - this.input - .val('tomorrow') - .datepicker({format: 'dd-mm-yyyy'}) - .datepicker('setValue'); - equal(this.input.val(), '16-03-2012'); -})); - -test('-1d: Yesterday', patch_date(function(Date){ - Date.now = UTCDate(2012, 2, 15); - this.input - .val('-1d') - .datepicker({format: 'dd-mm-yyyy'}) - .datepicker('setValue'); - equal(this.input.val(), '14-03-2012'); -})); - -test('yesterday (alias for -1d): Yesterday', patch_date(function(Date){ - Date.now = UTCDate(2012, 2, 15); - this.input - .val('yesterday') - .datepicker({format: 'dd-mm-yyyy'}) - .datepicker('setValue'); - equal(this.input.val(), '14-03-2012'); -})); - -test('+1w: Next week', patch_date(function(Date){ - Date.now = UTCDate(2012, 2, 15); - this.input - .val('+1w') - .datepicker({format: 'dd-mm-yyyy'}) - .datepicker('setValue'); - equal(this.input.val(), '22-03-2012'); -})); - -test('-1w: Last week', patch_date(function(Date){ - Date.now = UTCDate(2012, 2, 15); - this.input - .val('-1w') - .datepicker({format: 'dd-mm-yyyy'}) - .datepicker('setValue'); - equal(this.input.val(), '08-03-2012'); -})); - -test('+1m: Next month', patch_date(function(Date){ - Date.now = UTCDate(2012, 2, 15); - this.input - .val('+1m') - .datepicker({format: 'dd-mm-yyyy'}) - .datepicker('setValue'); - equal(this.input.val(), '15-04-2012'); -})); - -test('-1m: Last month', patch_date(function(Date){ - Date.now = UTCDate(2012, 2, 15); - this.input - .val('-1m') - .datepicker({format: 'dd-mm-yyyy'}) - .datepicker('setValue'); - equal(this.input.val(), '15-02-2012'); -})); - -test('+1y: Next year', patch_date(function(Date){ - Date.now = UTCDate(2012, 2, 15); - this.input - .val('+1y') - .datepicker({format: 'dd-mm-yyyy'}) - .datepicker('setValue'); - equal(this.input.val(), '15-03-2013'); -})); - -test('-1y: Last year', patch_date(function(Date){ - Date.now = UTCDate(2012, 2, 15); - this.input - .val('-1y') - .datepicker({format: 'dd-mm-yyyy'}) - .datepicker('setValue'); - equal(this.input.val(), '15-03-2011'); -})); - -test('-1y +2m: Multiformat', patch_date(function(Date){ - Date.now = UTCDate(2012, 2, 15); - this.input - .val('-1y +2m') - .datepicker({format: 'dd-mm-yyyy'}) - .datepicker('setValue'); - equal(this.input.val(), '15-05-2011'); -})); - -test('Regression: End-of-month bug', patch_date(function(Date){ - Date.now = UTCDate(2012, 4, 31); - this.input - .val('29-02-2012') - .datepicker({format: 'dd-mm-yyyy'}) - .datepicker('setValue'); - equal(this.input.val(), '29-02-2012'); -})); - -test('Invalid formats are force-parsed into a valid date on tab', patch_date(function(Date){ - Date.now = UTCDate(2012, 4, 31); - this.input - .val('44-44-4444') - .datepicker({format: 'yyyy-MM-dd'}) - .focus(); - - this.input.trigger({ - type: 'keydown', - keyCode: 9 - }); - - equal(this.input.val(), '56-September-30'); -})); - -test('Trailing separators', patch_date(function(Date){ - Date.now = UTCDate(2012, 4, 31); - this.input - .val('29.02.2012.') - .datepicker({format: 'dd.mm.yyyy.'}) - .datepicker('setValue'); - equal(this.input.val(), '29.02.2012.'); -})); - -test('Assume nearby year - last century', patch_date(function(Date){ - Date.now = UTCDate(2012, 4, 31); - this.input - .val('02/14/91') - .datepicker({format: 'mm/dd/yyyy', assumeNearbyYear: true}) - .datepicker('setValue'); - equal(this.input.val(), '02/14/1991'); -})); - -test('Assume nearby year - this century (- 1 year)', patch_date(function(Date){ - Date.now = UTCDate(2012, 4, 31); - this.input - .val('02/14/01') - .datepicker({format: 'mm/dd/yyyy', assumeNearbyYear: true}) - .datepicker('setValue'); - equal(this.input.val(), '02/14/2001'); -})); - -test('Assume nearby year - this century (+ 7 years)', patch_date(function(Date){ - Date.now = UTCDate(2012, 4, 31); - this.input - .val('02/14/19') - .datepicker({format: 'mm/dd/yyyy', assumeNearbyYear: true}) - .datepicker('setValue'); - equal(this.input.val(), '02/14/2019'); -})); - -test('Assume nearby year - this century (+ 13 years)', patch_date(function(Date){ - Date.now = UTCDate(2012, 4, 31); - this.input - .val('02/14/23') - .datepicker({format: 'mm/dd/yyyy', assumeNearbyYear: true}) - .datepicker('setValue'); - equal(this.input.val(), '02/14/1923'); -})); - -test('Assume nearby year - this century (+ 13 years, threshold = 30)', patch_date(function(Date){ - Date.now = UTCDate(2012, 4, 31); - this.input - .val('02/14/23') - .datepicker({format: 'mm/dd/yyyy', assumeNearbyYear: 30}) - .datepicker('setValue'); - equal(this.input.val(), '02/14/2023'); -})); diff --git a/admin/bower_components/bootstrap-datepicker/tests/suites/inline.js b/admin/bower_components/bootstrap-datepicker/tests/suites/inline.js deleted file mode 100644 index e2b7e9c..0000000 --- a/admin/bower_components/bootstrap-datepicker/tests/suites/inline.js +++ /dev/null @@ -1,28 +0,0 @@ -module('Inline', { - setup: function(){ - this.component = $('<div data-date="12-02-2012"></div>') - .appendTo('#qunit-fixture') - .datepicker({format: "dd-mm-yyyy"}); - this.dp = this.component.data('datepicker'); - this.picker = this.dp.picker; - }, - teardown: function(){ - this.picker.remove(); - } -}); - - -test('Picker gets date/viewDate from data-date attr', function(){ - datesEqual(this.dp.dates[0], UTCDate(2012, 1, 12)); - datesEqual(this.dp.viewDate, UTCDate(2012, 1, 12)); -}); - - -test('Visible after init', function(){ - ok(this.picker.is(':visible')); -}); - -test('update', function(){ - this.dp.update('13-03-2012'); - datesEqual(this.dp.dates[0], UTCDate(2012, 2, 13)); -}); diff --git a/admin/bower_components/bootstrap-datepicker/tests/suites/keyboard_navigation/2011.js b/admin/bower_components/bootstrap-datepicker/tests/suites/keyboard_navigation/2011.js deleted file mode 100644 index a64353a..0000000 --- a/admin/bower_components/bootstrap-datepicker/tests/suites/keyboard_navigation/2011.js +++ /dev/null @@ -1,228 +0,0 @@ -module('Keyboard Navigation 2011', { - setup: function(){ - /* - Tests start with picker on March 31, 2011. Fun facts: - - * March 1, 2011 was on a Tuesday - * March 31, 2011 was on a Thursday - */ - this.input = $('<input type="text" value="31-03-2011">') - .appendTo('#qunit-fixture') - .datepicker({format: "dd-mm-yyyy"}) - .focus(); // Activate for visibility checks - this.dp = this.input.data('datepicker'); - this.picker = this.dp.picker; - }, - teardown: function(){ - this.picker.remove(); - } -}); - -test('Regression: by week (up/down arrows); up from Mar 6, 2011 should go to Feb 27, 2011', function(){ - var target; - - this.input.val('06-03-2011').datepicker('update'); - - equal(this.dp.viewMode, 0); - target = this.picker.find('.datepicker-days thead th.datepicker-switch'); - equal(target.text(), 'March 2011', 'Title is "March 2011"'); - datesEqual(this.dp.viewDate, UTCDate(2011, 2, 6)); - datesEqual(this.dp.dates.get(-1), UTCDate(2011, 2, 6)); - equal(this.dp.focusDate, null); - - // Navigation: -1 week, up arrow key - this.input.trigger({ - type: 'keydown', - keyCode: 38 - }); - datesEqual(this.dp.viewDate, UTCDate(2011, 1, 27)); - datesEqual(this.dp.dates.get(-1), UTCDate(2011, 2, 6)); - datesEqual(this.dp.focusDate, UTCDate(2011, 1, 27)); - target = this.picker.find('.datepicker-days thead th.datepicker-switch'); - equal(target.text(), 'February 2011', 'Title is "February 2011"'); -}); - -test('Regression: by day (left/right arrows); left from Mar 1, 2011 should go to Feb 28, 2011', function(){ - var target; - - this.input.val('01-03-2011').datepicker('update'); - - equal(this.dp.viewMode, 0); - target = this.picker.find('.datepicker-days thead th.datepicker-switch'); - equal(target.text(), 'March 2011', 'Title is "March 2011"'); - datesEqual(this.dp.viewDate, UTCDate(2011, 2, 1)); - datesEqual(this.dp.dates.get(-1), UTCDate(2011, 2, 1)); - equal(this.dp.focusDate, null); - - // Navigation: -1 day left arrow key - this.input.trigger({ - type: 'keydown', - keyCode: 37 - }); - datesEqual(this.dp.viewDate, UTCDate(2011, 1, 28)); - datesEqual(this.dp.dates.get(-1), UTCDate(2011, 2, 1)); - datesEqual(this.dp.focusDate, UTCDate(2011, 1, 28)); - target = this.picker.find('.datepicker-days thead th.datepicker-switch'); - equal(target.text(), 'February 2011', 'Title is "February 2011"'); -}); - -test('Regression: by month (shift + left/right arrows); left from Mar 15, 2011 should go to Feb 15, 2011', function(){ - var target; - - this.input.val('15-03-2011').datepicker('update'); - - equal(this.dp.viewMode, 0); - target = this.picker.find('.datepicker-days thead th.datepicker-switch'); - equal(target.text(), 'March 2011', 'Title is "March 2011"'); - datesEqual(this.dp.viewDate, UTCDate(2011, 2, 15)); - datesEqual(this.dp.dates.get(-1), UTCDate(2011, 2, 15)); - equal(this.dp.focusDate, null); - - // Navigation: -1 month, shift + left arrow key - this.input.trigger({ - type: 'keydown', - keyCode: 37, - shiftKey: true - }); - datesEqual(this.dp.viewDate, UTCDate(2011, 1, 15)); - datesEqual(this.dp.dates.get(-1), UTCDate(2011, 2, 15)); - datesEqual(this.dp.focusDate, UTCDate(2011, 1, 15)); - target = this.picker.find('.datepicker-days thead th.datepicker-switch'); - equal(target.text(), 'February 2011', 'Title is "February 2011"'); -}); - -test('Regression: by month with view mode = 1 (left/right arrow); left from March 15, 2011 should go to February 15, 2011', function () { - this.picker.remove(); - this.input = $('<input type="text" value="15-03-2011">') - .appendTo('#qunit-fixture') - .datepicker({ - format: "dd-mm-yyyy", - minViewMode: 1, - startView: 1 - }) - .focus(); // Activate for visibility checks - this.dp = this.input.data('datepicker'); - this.picker = this.dp.picker; - - this.input.val('15-03-2011').datepicker('update'); - equal(this.dp.viewMode, 1); - - target = this.picker.find('.datepicker-days thead th.datepicker-switch'); - equal(target.text(), 'March 2011', 'Title is "March 2011"'); - datesEqual(this.dp.viewDate, UTCDate(2011, 2, 15)); - datesEqual(this.dp.dates.get(-1), UTCDate(2011, 2, 15)); - equal(this.dp.focusDate, null); - - this.input.trigger({ - type: 'keydown', - keyCode: 37 - }); - - datesEqual(this.dp.viewDate, UTCDate(2011, 1, 15)); - datesEqual(this.dp.dates.get(-1), UTCDate(2011, 2, 15)); - datesEqual(this.dp.focusDate, UTCDate(2011, 1, 15)); - target = this.picker.find('.datepicker-days thead th.datepicker-switch'); - equal(target.text(), 'February 2011', 'Title is "February 2011"'); -}); - -test('Regression: by month with view mode = 1 (up/down arrow); down from March 15, 2011 should go to July 15, 2010', function () { - this.picker.remove(); - this.input = $('<input type="text" value="15-03-2011">') - .appendTo('#qunit-fixture') - .datepicker({ - format: "dd-mm-yyyy", - minViewMode: 1, - startView: 1 - }) - .focus(); // Activate for visibility checks - this.dp = this.input.data('datepicker'); - this.picker = this.dp.picker; - - this.input.val('15-03-2011').datepicker('update'); - equal(this.dp.viewMode, 1); - - target = this.picker.find('.datepicker-days thead th.datepicker-switch'); - equal(target.text(), 'March 2011', 'Title is "March 2011"'); - datesEqual(this.dp.viewDate, UTCDate(2011, 2, 15)); - datesEqual(this.dp.dates.get(-1), UTCDate(2011, 2, 15)); - equal(this.dp.focusDate, null); - - this.input.trigger({ - type: 'keydown', - keyCode: 40 - }); - - datesEqual(this.dp.viewDate, UTCDate(2011, 6, 15)); - datesEqual(this.dp.dates.get(-1), UTCDate(2011, 2, 15)); - datesEqual(this.dp.focusDate, UTCDate(2011, 6, 15)); - target = this.picker.find('.datepicker-days thead th.datepicker-switch'); - equal(target.text(), 'July 2011', 'Title is "July 2011"'); -}); - -test('Regression: by year with view mode = 2 (left/right arrow); left from March 15, 2011 should go to March 15, 2010', function () { - this.picker.remove(); - this.input = $('<input type="text" value="15-03-2011">') - .appendTo('#qunit-fixture') - .datepicker({ - format: "dd-mm-yyyy", - minViewMode: 2, - startView: 2 - }) - .focus(); // Activate for visibility checks - this.dp = this.input.data('datepicker'); - this.picker = this.dp.picker; - - this.input.val('15-03-2011').datepicker('update'); - equal(this.dp.viewMode, 2); - - target = this.picker.find('.datepicker-days thead th.datepicker-switch'); - equal(target.text(), 'March 2011', 'Title is "March 2011"'); - datesEqual(this.dp.viewDate, UTCDate(2011, 2, 15)); - datesEqual(this.dp.dates.get(-1), UTCDate(2011, 2, 15)); - equal(this.dp.focusDate, null); - - this.input.trigger({ - type: 'keydown', - keyCode: 37 - }); - - datesEqual(this.dp.viewDate, UTCDate(2010, 2, 15)); - datesEqual(this.dp.dates.get(-1), UTCDate(2011, 2, 15)); - datesEqual(this.dp.focusDate, UTCDate(2010, 2, 15)); - target = this.picker.find('.datepicker-days thead th.datepicker-switch'); - equal(target.text(), 'March 2010', 'Title is "March 2010"'); -}); - -test('Regression: by year with view mode = 2 (up/down arrow); dows from March 15, 2011 should go to March 15, 2015', function () { - this.picker.remove(); - this.input = $('<input type="text" value="15-03-2011">') - .appendTo('#qunit-fixture') - .datepicker({ - format: "dd-mm-yyyy", - minViewMode: 2, - startView: 2 - }) - .focus(); // Activate for visibility checks - this.dp = this.input.data('datepicker'); - this.picker = this.dp.picker; - - this.input.val('15-03-2011').datepicker('update'); - equal(this.dp.viewMode, 2); - - target = this.picker.find('.datepicker-days thead th.datepicker-switch'); - equal(target.text(), 'March 2011', 'Title is "March 2011"'); - datesEqual(this.dp.viewDate, UTCDate(2011, 2, 15)); - datesEqual(this.dp.dates.get(-1), UTCDate(2011, 2, 15)); - equal(this.dp.focusDate, null); - - this.input.trigger({ - type: 'keydown', - keyCode: 40 - }); - - datesEqual(this.dp.viewDate, UTCDate(2015, 2, 15)); - datesEqual(this.dp.dates.get(-1), UTCDate(2011, 2, 15)); - datesEqual(this.dp.focusDate, UTCDate(2015, 2, 15)); - target = this.picker.find('.datepicker-days thead th.datepicker-switch'); - equal(target.text(), 'March 2015', 'Title is "March 2015"'); -}); diff --git a/admin/bower_components/bootstrap-datepicker/tests/suites/keyboard_navigation/2012.js b/admin/bower_components/bootstrap-datepicker/tests/suites/keyboard_navigation/2012.js deleted file mode 100644 index 53dbb7d..0000000 --- a/admin/bower_components/bootstrap-datepicker/tests/suites/keyboard_navigation/2012.js +++ /dev/null @@ -1,483 +0,0 @@ -module('Keyboard Navigation 2012', { - setup: function(){ - /* - Tests start with picker on March 31, 2012. Fun facts: - - * February 1, 2012 was on a Wednesday - * February 29, 2012 was on a Wednesday - * March 1, 2012 was on a Thursday - * March 31, 2012 was on a Saturday - */ - this.input = $('<input type="text" value="31-03-2012">') - .appendTo('#qunit-fixture') - .datepicker({format: "dd-mm-yyyy"}) - .focus(); // Activate for visibility checks - this.dp = this.input.data('datepicker'); - this.picker = this.dp.picker; - }, - teardown: function(){ - this.picker.remove(); - } -}); - - -test('by day (right/left arrows)', function(){ - var target; - - equal(this.dp.viewMode, 0); - target = this.picker.find('.datepicker-days thead th.datepicker-switch'); - equal(target.text(), 'March 2012', 'Title is "March 2012"'); - - // Navigation: -1 day, left arrow key - this.input.trigger({ - type: 'keydown', - keyCode: 37 - }); - // view and focus updated on keyboard navigation, not selected - datesEqual(this.dp.viewDate, UTCDate(2012, 2, 30)); - datesEqual(this.dp.dates.get(-1), UTCDate(2012, 2, 31)); - datesEqual(this.dp.focusDate, UTCDate(2012, 2, 30)); - // Month not changed - target = this.picker.find('.datepicker-days thead th.datepicker-switch'); - equal(target.text(), 'March 2012', 'Title is "March 2012"'); - - // Navigation: +1 day, right arrow key - for (var i=0; i<2; i++) - this.input.trigger({ - type: 'keydown', - keyCode: 39 - }); - datesEqual(this.dp.viewDate, UTCDate(2012, 3, 1)); - datesEqual(this.dp.dates.get(-1), UTCDate(2012, 2, 31)); - datesEqual(this.dp.focusDate, UTCDate(2012, 3, 1)); - // Month changed: April 1 (this is not a joke!) - target = this.picker.find('.datepicker-days thead th.datepicker-switch'); - equal(target.text(), 'April 2012', 'Title is "April 2012"'); -}); - -test('by week (up/down arrows)', function(){ - var target; - - equal(this.dp.viewMode, 0); - target = this.picker.find('.datepicker-days thead th.datepicker-switch'); - equal(target.text(), 'March 2012', 'Title is "March 2012"'); - - // Navigation: -1 week, up arrow key - this.input.trigger({ - type: 'keydown', - keyCode: 38 - }); - // view and focus updated on keyboard navigation, not selected - datesEqual(this.dp.viewDate, UTCDate(2012, 2, 24)); - datesEqual(this.dp.dates.get(-1), UTCDate(2012, 2, 31)); - datesEqual(this.dp.focusDate, UTCDate(2012, 2, 24)); - // Month not changed - target = this.picker.find('.datepicker-days thead th.datepicker-switch'); - equal(target.text(), 'March 2012', 'Title is "March 2012"'); - - // Navigation: +1 week, down arrow key - for (var i=0; i<2; i++) - this.input.trigger({ - type: 'keydown', - keyCode: 40 - }); - datesEqual(this.dp.viewDate, UTCDate(2012, 3, 7)); - datesEqual(this.dp.dates.get(-1), UTCDate(2012, 2, 31)); - datesEqual(this.dp.focusDate, UTCDate(2012, 3, 7)); - target = this.picker.find('.datepicker-days thead th.datepicker-switch'); - equal(target.text(), 'April 2012', 'Title is "April 2012"'); -}); - -test('by month, v1 (shift + left/right arrows)', function(){ - var target; - - equal(this.dp.viewMode, 0); - target = this.picker.find('.datepicker-days thead th.datepicker-switch'); - equal(target.text(), 'March 2012', 'Title is "March 2012"'); - - // Navigation: -1 month, shift + left arrow key - this.input.trigger({ - type: 'keydown', - keyCode: 37, - shiftKey: true - }); - // view and focus updated on keyboard navigation w/ graceful date ends, not selected - datesEqual(this.dp.viewDate, UTCDate(2012, 1, 29)); - datesEqual(this.dp.dates.get(-1), UTCDate(2012, 2, 31)); - datesEqual(this.dp.focusDate, UTCDate(2012, 1, 29)); - // Month not changed - target = this.picker.find('.datepicker-days thead th.datepicker-switch'); - equal(target.text(), 'February 2012', 'Title is "February 2012"'); - - // Navigation: +1 month, shift + right arrow key - for (var i=0; i<2; i++) - this.input.trigger({ - type: 'keydown', - keyCode: 39, - shiftKey: true - }); - datesEqual(this.dp.viewDate, UTCDate(2012, 3, 29)); - datesEqual(this.dp.dates.get(-1), UTCDate(2012, 2, 31)); - datesEqual(this.dp.focusDate, UTCDate(2012, 3, 29)); - target = this.picker.find('.datepicker-days thead th.datepicker-switch'); - equal(target.text(), 'April 2012', 'Title is "April 2012"'); -}); - -test('by month, v2 (shift + up/down arrows)', function(){ - var target; - - equal(this.dp.viewMode, 0); - target = this.picker.find('.datepicker-days thead th.datepicker-switch'); - equal(target.text(), 'March 2012', 'Title is "March 2012"'); - - // Navigation: -1 month, shift + up arrow key - this.input.trigger({ - type: 'keydown', - keyCode: 38, - shiftKey: true - }); - // view and focus updated on keyboard navigation w/ graceful date ends, not selected - datesEqual(this.dp.viewDate, UTCDate(2012, 1, 29)); - datesEqual(this.dp.dates.get(-1), UTCDate(2012, 2, 31)); - datesEqual(this.dp.focusDate, UTCDate(2012, 1, 29)); - // Month not changed - target = this.picker.find('.datepicker-days thead th.datepicker-switch'); - equal(target.text(), 'February 2012', 'Title is "February 2012"'); - - // Navigation: +1 month, shift + down arrow key - for (var i=0; i<2; i++) - this.input.trigger({ - type: 'keydown', - keyCode: 40, - shiftKey: true - }); - datesEqual(this.dp.viewDate, UTCDate(2012, 3, 29)); - datesEqual(this.dp.dates.get(-1), UTCDate(2012, 2, 31)); - datesEqual(this.dp.focusDate, UTCDate(2012, 3, 29)); - target = this.picker.find('.datepicker-days thead th.datepicker-switch'); - equal(target.text(), 'April 2012', 'Title is "April 2012"'); -}); - -test('by year, v1 (ctrl + left/right arrows)', function(){ - var target; - - equal(this.dp.viewMode, 0); - target = this.picker.find('.datepicker-days thead th.datepicker-switch'); - equal(target.text(), 'March 2012', 'Title is "March 2012"'); - - // Navigation: -1 year, ctrl + left arrow key - this.input.trigger({ - type: 'keydown', - keyCode: 37, - ctrlKey: true - }); - // view and focus updated on keyboard navigation, not selected - datesEqual(this.dp.viewDate, UTCDate(2011, 2, 31)); - datesEqual(this.dp.dates.get(-1), UTCDate(2012, 2, 31)); - datesEqual(this.dp.focusDate, UTCDate(2011, 2, 31)); - // Month not changed - target = this.picker.find('.datepicker-days thead th.datepicker-switch'); - equal(target.text(), 'March 2011', 'Title is "March 2011"'); - - // Navigation: +1 year, ctrl + right arrow key - for (var i=0; i<2; i++) - this.input.trigger({ - type: 'keydown', - keyCode: 39, - ctrlKey: true - }); - datesEqual(this.dp.viewDate, UTCDate(2013, 2, 31)); - datesEqual(this.dp.dates.get(-1), UTCDate(2012, 2, 31)); - datesEqual(this.dp.focusDate, UTCDate(2013, 2, 31)); - target = this.picker.find('.datepicker-days thead th.datepicker-switch'); - equal(target.text(), 'March 2013', 'Title is "March 2013"'); -}); - -test('by year, v2 (ctrl + up/down arrows)', function(){ - var target; - - equal(this.dp.viewMode, 0); - target = this.picker.find('.datepicker-days thead th.datepicker-switch'); - equal(target.text(), 'March 2012', 'Title is "March 2012"'); - - // Navigation: -1 year, ctrl + up arrow key - this.input.trigger({ - type: 'keydown', - keyCode: 38, - ctrlKey: true - }); - // view and focus updated on keyboard navigation, not selected - datesEqual(this.dp.viewDate, UTCDate(2011, 2, 31)); - datesEqual(this.dp.dates.get(-1), UTCDate(2012, 2, 31)); - datesEqual(this.dp.focusDate, UTCDate(2011, 2, 31)); - // Month not changed - target = this.picker.find('.datepicker-days thead th.datepicker-switch'); - equal(target.text(), 'March 2011', 'Title is "March 2011"'); - - // Navigation: +1 year, ctrl + down arrow key - for (var i=0; i<2; i++) - this.input.trigger({ - type: 'keydown', - keyCode: 40, - ctrlKey: true - }); - datesEqual(this.dp.viewDate, UTCDate(2013, 2, 31)); - datesEqual(this.dp.dates.get(-1), UTCDate(2012, 2, 31)); - datesEqual(this.dp.focusDate, UTCDate(2013, 2, 31)); - target = this.picker.find('.datepicker-days thead th.datepicker-switch'); - equal(target.text(), 'March 2013', 'Title is "March 2013"'); -}); - -test('by year, v3 (ctrl + shift + left/right arrows)', function(){ - var target; - - equal(this.dp.viewMode, 0); - target = this.picker.find('.datepicker-days thead th.datepicker-switch'); - equal(target.text(), 'March 2012', 'Title is "March 2012"'); - - // Navigation: -1 year, ctrl + left arrow key - this.input.trigger({ - type: 'keydown', - keyCode: 37, - ctrlKey: true, - shiftKey: true - }); - // view and focus updated on keyboard navigation, not selected - datesEqual(this.dp.viewDate, UTCDate(2011, 2, 31)); - datesEqual(this.dp.dates.get(-1), UTCDate(2012, 2, 31)); - datesEqual(this.dp.focusDate, UTCDate(2011, 2, 31)); - // Month not changed - target = this.picker.find('.datepicker-days thead th.datepicker-switch'); - equal(target.text(), 'March 2011', 'Title is "March 2011"'); - - // Navigation: +1 year, ctrl + right arrow key - for (var i=0; i<2; i++) - this.input.trigger({ - type: 'keydown', - keyCode: 39, - ctrlKey: true, - shiftKey: true - }); - datesEqual(this.dp.viewDate, UTCDate(2013, 2, 31)); - datesEqual(this.dp.dates.get(-1), UTCDate(2012, 2, 31)); - datesEqual(this.dp.focusDate, UTCDate(2013, 2, 31)); - target = this.picker.find('.datepicker-days thead th.datepicker-switch'); - equal(target.text(), 'March 2013', 'Title is "March 2013"'); -}); - -test('by year, v4 (ctrl + shift + up/down arrows)', function(){ - var target; - - equal(this.dp.viewMode, 0); - target = this.picker.find('.datepicker-days thead th.datepicker-switch'); - equal(target.text(), 'March 2012', 'Title is "March 2012"'); - - // Navigation: -1 year, ctrl + up arrow key - this.input.trigger({ - type: 'keydown', - keyCode: 38, - ctrlKey: true, - shiftKey: true - }); - // view and focus updated on keyboard navigation, not selected - datesEqual(this.dp.viewDate, UTCDate(2011, 2, 31)); - datesEqual(this.dp.dates.get(-1), UTCDate(2012, 2, 31)); - datesEqual(this.dp.focusDate, UTCDate(2011, 2, 31)); - // Month not changed - target = this.picker.find('.datepicker-days thead th.datepicker-switch'); - equal(target.text(), 'March 2011', 'Title is "March 2011"'); - - // Navigation: +1 year, ctrl + down arrow key - for (var i=0; i<2; i++) - this.input.trigger({ - type: 'keydown', - keyCode: 40, - ctrlKey: true, - shiftKey: true - }); - datesEqual(this.dp.viewDate, UTCDate(2013, 2, 31)); - datesEqual(this.dp.dates.get(-1), UTCDate(2012, 2, 31)); - datesEqual(this.dp.focusDate, UTCDate(2013, 2, 31)); - target = this.picker.find('.datepicker-days thead th.datepicker-switch'); - equal(target.text(), 'March 2013', 'Title is "March 2013"'); -}); - -test('by year, from leap day', function(){ - var target; - - equal(this.dp.viewMode, 0); - target = this.picker.find('.datepicker-days thead th.datepicker-switch'); - - this.input.val('29-02-2012').datepicker('update'); - datesEqual(this.dp.viewDate, UTCDate(2012, 1, 29)); - datesEqual(this.dp.dates.get(-1), UTCDate(2012, 1, 29)); - equal(this.dp.focusDate, null); - equal(target.text(), 'February 2012', 'Title is "February 2012"'); - - // Navigation: -1 year - this.input.trigger({ - type: 'keydown', - keyCode: 37, - ctrlKey: true - }); - // view and focus updated on keyboard navigation w/ graceful month ends, not selected - datesEqual(this.dp.viewDate, UTCDate(2011, 1, 28)); - datesEqual(this.dp.dates.get(-1), UTCDate(2012, 1, 29)); - datesEqual(this.dp.focusDate, UTCDate(2011, 1, 28)); - // Month not changed - target = this.picker.find('.datepicker-days thead th.datepicker-switch'); - equal(target.text(), 'February 2011', 'Title is "February 2011"'); - - // Navigation: +1 year, back to leap year - this.input.trigger({ - type: 'keydown', - keyCode: 39, - ctrlKey: true - }); - // view and focus updated on keyboard navigation w/ graceful month ends, not selected - datesEqual(this.dp.viewDate, UTCDate(2012, 1, 28)); - datesEqual(this.dp.dates.get(-1), UTCDate(2012, 1, 29)); - datesEqual(this.dp.focusDate, UTCDate(2012, 1, 28)); - target = this.picker.find('.datepicker-days thead th.datepicker-switch'); - equal(target.text(), 'February 2012', 'Title is "February 2012"'); - - // Navigation: +1 year - this.input.trigger({ - type: 'keydown', - keyCode: 39, - ctrlKey: true - }); - // view and focus updated on keyboard navigation w/ graceful month ends, not selected - datesEqual(this.dp.viewDate, UTCDate(2013, 1, 28)); - datesEqual(this.dp.dates.get(-1), UTCDate(2012, 1, 29)); - datesEqual(this.dp.focusDate, UTCDate(2013, 1, 28)); - target = this.picker.find('.datepicker-days thead th.datepicker-switch'); - equal(target.text(), 'February 2013', 'Title is "February 2013"'); -}); - -test('Selection (enter)', function(){ - var target; - - equal(this.dp.viewMode, 0); - target = this.picker.find('.datepicker-days thead th.datepicker-switch'); - equal(target.text(), 'March 2012', 'Title is "March 2012"'); - - // Navigation: -1 day, left arrow key - this.input.trigger({ - type: 'keydown', - keyCode: 37 - }); - // view and focus updated on keyboard navigation, not selected - datesEqual(this.dp.viewDate, UTCDate(2012, 2, 30)); - datesEqual(this.dp.dates.get(-1), UTCDate(2012, 2, 31)); - datesEqual(this.dp.focusDate, UTCDate(2012, 2, 30)); - // Month not changed - target = this.picker.find('.datepicker-days thead th.datepicker-switch'); - equal(target.text(), 'March 2012', 'Title is "March 2012"'); - - // Selection: Enter - this.input.trigger({ - type: 'keydown', - keyCode: 13 - }); - // view and selection updated, focus cleared - datesEqual(this.dp.viewDate, UTCDate(2012, 2, 30)); - datesEqual(this.dp.dates.get(-1), UTCDate(2012, 2, 30)); - equal(this.dp.focusDate, null); - // Month not changed - target = this.picker.find('.datepicker-days thead th.datepicker-switch'); - equal(target.text(), 'March 2012', 'Title is "March 2012"'); - - ok(this.picker.is(':visible'), 'Picker is not hidden'); -}); - -test('Selection + hide (enter)', function(){ - var target; - - this.dp._process_options({autoclose: true}); - equal(this.dp.viewMode, 0); - target = this.picker.find('.datepicker-days thead th.datepicker-switch'); - equal(target.text(), 'March 2012', 'Title is "March 2012"'); - - // Navigation: -1 day, left arrow key - this.input.trigger({ - type: 'keydown', - keyCode: 37 - }); - // view and focus updated on keyboard navigation, not selected - datesEqual(this.dp.viewDate, UTCDate(2012, 2, 30)); - datesEqual(this.dp.dates.get(-1), UTCDate(2012, 2, 31)); - datesEqual(this.dp.focusDate, UTCDate(2012, 2, 30)); - // Month not changed - target = this.picker.find('.datepicker-days thead th.datepicker-switch'); - equal(target.text(), 'March 2012', 'Title is "March 2012"'); - - // Selection: Enter - this.input.trigger({ - type: 'keydown', - keyCode: 13 - }); - // view and selection updatedfocus cleared - datesEqual(this.dp.viewDate, UTCDate(2012, 2, 30)); - datesEqual(this.dp.dates.get(-1), UTCDate(2012, 2, 30)); - equal(this.dp.focusDate, null); - // Month not changed - target = this.picker.find('.datepicker-days thead th.datepicker-switch'); - equal(target.text(), 'March 2012', 'Title is "March 2012"'); - - ok(this.picker.is(':not(:visible)'), 'Picker is hidden'); -}); - -test('Toggle hide/show (escape); navigation while hidden is suppressed', function(){ - var target; - - equal(this.dp.viewMode, 0); - target = this.picker.find('.datepicker-days thead th.datepicker-switch'); - equal(target.text(), 'March 2012', 'Title is "March 2012"'); - - ok(this.picker.is(':visible'), 'Picker is visible'); - - // Hide - this.input.trigger({ - type: 'keydown', - keyCode: 27 - }); - - ok(this.picker.is(':not(:visible)'), 'Picker is hidden'); - datesEqual(this.dp.viewDate, UTCDate(2012, 2, 31)); - datesEqual(this.dp.dates.get(-1), UTCDate(2012, 2, 31)); - - // left arrow key, *doesn't* navigate - this.input.trigger({ - type: 'keydown', - keyCode: 37 - }); - - datesEqual(this.dp.viewDate, UTCDate(2012, 2, 31)); - datesEqual(this.dp.dates.get(-1), UTCDate(2012, 2, 31)); - - // Show - with escape key - this.input.trigger({ - type: 'keydown', - keyCode: 27 - }); - - ok(this.picker.is(':visible'), 'Picker is visible'); - datesEqual(this.dp.viewDate, UTCDate(2012, 2, 31)); - datesEqual(this.dp.dates.get(-1), UTCDate(2012, 2, 31)); - - // Hide - this.input.trigger({ - type: 'keydown', - keyCode: 27 - }); - - // Show - with down key - this.input.trigger({ - type: 'keydown', - keyCode: 40 - }); - - ok(this.picker.is(':visible'), 'Picker is visible'); -}); - diff --git a/admin/bower_components/bootstrap-datepicker/tests/suites/keyboard_navigation/all.js b/admin/bower_components/bootstrap-datepicker/tests/suites/keyboard_navigation/all.js deleted file mode 100644 index 4fb6d2f..0000000 --- a/admin/bower_components/bootstrap-datepicker/tests/suites/keyboard_navigation/all.js +++ /dev/null @@ -1,62 +0,0 @@ -module('Keyboard Navigation (All)', { - setup: function(){ - this.input = $('<input type="text">') - .appendTo('#qunit-fixture') - .datepicker({format: "dd-mm-yyyy"}) - .focus(); // Activate for visibility checks - this.dp = this.input.data('datepicker'); - this.picker = this.dp.picker; - }, - teardown: function(){ - this.picker.remove(); - } -}); - -test('TAB hides picker', function(){ - var target; - - ok(this.picker.is(':visible'), 'Picker is visible'); - - this.input.trigger({ - type: 'keydown', - keyCode: 9 - }); - - ok(this.picker.is(':not(:visible)'), 'Picker is hidden'); -}); - -test('by day (right/left arrows) with daysOfWeekDisabled', function(){ - var target; - - this.input.val('04-03-2013'); - this.dp.setDaysOfWeekDisabled('0,6'); - this.dp.update(); - - this.input.focus(); - - // Navigation: -1 day left arrow key - this.input.trigger({ - type: 'keydown', - keyCode: 37 - }); - - datesEqual(this.dp.viewDate, UTCDate(2013, 2, 1)); -}); - -test('by day (right/left arrows) with datesDisabled', function(){ - var target; - - this.input.val('04-03-2013'); - this.dp.setDatesDisabled(['05-03-2013']); - this.dp.update(); - - this.input.focus(); - - // Navigation: +1 day right arrow key - this.input.trigger({ - type: 'keydown', - keyCode: 39 - }); - - datesEqual(this.dp.viewDate, UTCDate(2013, 2, 6)); -}); diff --git a/admin/bower_components/bootstrap-datepicker/tests/suites/methods.js b/admin/bower_components/bootstrap-datepicker/tests/suites/methods.js deleted file mode 100644 index b70834f..0000000 --- a/admin/bower_components/bootstrap-datepicker/tests/suites/methods.js +++ /dev/null @@ -1,188 +0,0 @@ -module('Methods', { - setup: function(){ - this.input = $('<input type="text" value="31-03-2011">') - .appendTo('#qunit-fixture') - .datepicker({format: "dd-mm-yyyy"}); - this.dp = this.input.data('datepicker'); - this.picker = this.dp.picker; - }, - teardown: function(){ - this.dp.remove(); - } -}); - -test('remove', function(){ - var returnedObject = this.dp.remove(); - // ... - strictEqual(returnedObject, this.dp, "is chainable"); -}); - -test('show', function(){ - var returnedObject = this.dp.show(); - // ... - strictEqual(returnedObject, this.dp, "is chainable"); -}); - -test('hide', function(){ - var returnedObject = this.dp.hide(); - // ... - strictEqual(returnedObject, this.dp, "is chainable"); -}); - -test('update - String', function(){ - var returnedObject = this.dp.update('13-03-2012'); - datesEqual(this.dp.dates[0], UTCDate(2012, 2, 13)); - var date = this.dp.picker.find('.datepicker-days td:contains(13)'); - ok(date.hasClass('active'), 'Date is selected'); - strictEqual(returnedObject, this.dp, "is chainable"); -}); - -test('update - Date', function(){ - var returnedObject = this.dp.update(new Date(2012, 2, 13)); - datesEqual(this.dp.dates[0], UTCDate(2012, 2, 13)); - var date = this.dp.picker.find('.datepicker-days td:contains(13)'); - ok(date.hasClass('active'), 'Date is selected'); - strictEqual(returnedObject, this.dp, "is chainable"); -}); - -test('update - Date with time', function(){ - var returnedObject = this.dp.update(new Date(2012, 2, 13, 23, 59, 59, 999)); - datesEqual(this.dp.dates[0], UTCDate(2012, 2, 13, 23, 59, 59, 999)); - var date = this.dp.picker.find('.datepicker-days td:contains(13)'); - ok(date.hasClass('active'), 'Date is selected'); - strictEqual(returnedObject, this.dp, "is chainable"); -}); - -test('update - null', function(){ - var returnedObject = this.dp.update(null); - equal(this.dp.dates[0], undefined); - var selected = this.dp.picker.find('.datepicker-days td.active'); - equal(selected.length, 0, 'No date is selected'); - strictEqual(returnedObject, this.dp, "is chainable"); -}); - -test('setDate', function(){ - var date_in = new Date(2013, 1, 1), - expected_date = new Date(Date.UTC(2013, 1, 1)), - returnedObject; - - notEqual(this.dp.dates[0], date_in); - returnedObject = this.dp.setDate(date_in); - strictEqual(returnedObject, this.dp, "is chainable"); - datesEqual(this.dp.dates[0], expected_date); -}); - -test('setUTCDate', function(){ - var date_in = new Date(Date.UTC(2012, 3, 5)), - expected_date = date_in, - returnedObject; - - notEqual(this.dp.dates[0], date_in); - returnedObject = this.dp.setUTCDate(date_in); - strictEqual(returnedObject, this.dp, "is chainable"); - datesEqual(this.dp.dates[0], expected_date); -}); - -test('setStartDate', function(){ - var date_in = new Date(2012, 3, 5), - expected_date = new Date(Date.UTC(2012, 3, 5)), - returnedObject = this.dp.setStartDate(date_in); - // ... - datesEqual(this.dp.o.startDate, expected_date); - strictEqual(returnedObject, this.dp, "is chainable"); -}); - -test('setEndDate', function(){ - var date_in = new Date(2012, 3, 5), - expected_date = new Date(Date.UTC(2012, 3, 5)), - returnedObject = this.dp.setEndDate(date_in); - // ... - datesEqual(this.dp.o.endDate, expected_date); - strictEqual(returnedObject, this.dp, "is chainable"); -}); - -test('getStartDate', function(){ - var date_in = new Date(2012, 3, 5), - expected_date = new Date(Date.UTC(2012, 3, 5)), - returnedObject = this.dp.setStartDate(date_in); - // ... - datesEqual(returnedObject.getStartDate(), expected_date); - strictEqual(returnedObject, this.dp, "is chainable"); -}); - -test('getEndDate', function(){ - var date_in = new Date(2012, 3, 5), - expected_date = new Date(Date.UTC(2012, 3, 5)), - returnedObject = this.dp.setEndDate(date_in); - // ... - datesEqual(returnedObject.getEndDate(), expected_date); - strictEqual(returnedObject, this.dp, "is chainable"); -}); - -test('setDaysOfWeekDisabled - String', function(){ - var days_in = "0,6", - expected_days = [0,6], - returnedObject = this.dp.setDaysOfWeekDisabled(days_in); - // ... - deepEqual(this.dp.o.daysOfWeekDisabled, expected_days); - strictEqual(returnedObject, this.dp, "is chainable"); -}); - -test('setDaysOfWeekDisabled - Array', function(){ - var days_in = [0,6], - expected_days = days_in, - returnedObject = this.dp.setDaysOfWeekDisabled(days_in); - // ... - deepEqual(this.dp.o.daysOfWeekDisabled, expected_days); - strictEqual(returnedObject, this.dp, "is chainable"); -}); - -test('setDatesDisabled', function(){ - var monthShown = this.picker.find('.datepicker-days thead th.datepicker-switch'); - var returnedObject = this.dp.setDatesDisabled(['01-03-2011']); - ok(this.picker.find('.datepicker-days tbody td.day:not(.old):first').hasClass('disabled'), 'day is disabled'); - this.dp.setDatesDisabled(['01-01-2011']); - equal(monthShown.text(), 'March 2011', 'should not change viewDate'); - strictEqual(returnedObject, this.dp, "is chainable"); -}); - -test('setValue', function(){ - var returnedObject = this.dp.setValue(); - // ... - strictEqual(returnedObject, this.dp, "is chainable"); -}); - -test('place', function(){ - var returnedObject = this.dp.place(); - // ... - strictEqual(returnedObject, this.dp, "is chainable"); -}); - -test('moveMonth - can handle invalid date', function(){ - // any input which results in an invalid date, f.e. an incorrectly formatted. - var invalidDate = new Date("invalid"), - returnedObject = this.dp.moveMonth(invalidDate, 1); - // ... - equal(this.input.val(), "31-03-2011", "date is reset"); -}); - -test('parseDate - outputs correct value', function(){ - var parsedDate = $.fn.datepicker.DPGlobal.parseDate('11/13/2015', $.fn.datepicker.DPGlobal.parseFormat('mm/dd/yyyy'), 'en'); - equal(parsedDate.getUTCDate(), "13", "date is correct"); - equal(parsedDate.getUTCMonth(), "10", "month is correct"); - equal(parsedDate.getUTCFullYear(), "2015", "fullyear is correct"); -}); - -test('parseDate - outputs correct value for yyyy\u5E74mm\u6708dd\u65E5 format', function(){ - var parsedDate = $.fn.datepicker.DPGlobal.parseDate('2015\u5E7411\u670813', $.fn.datepicker.DPGlobal.parseFormat('yyyy\u5E74mm\u6708dd\u65E5'), 'ja'); - equal(parsedDate.getUTCDate(), "13", "date is correct"); - equal(parsedDate.getUTCMonth(), "10", "month is correct"); - equal(parsedDate.getUTCFullYear(), "2015", "fullyear is correct"); -}); - -test('parseDate - outputs correct value for dates containing unicodes', function(){ - var parsedDate = $.fn.datepicker.DPGlobal.parseDate('\u5341\u4E00\u6708 13 2015', $.fn.datepicker.DPGlobal.parseFormat('MM dd yyyy'), 'zh-CN'); - equal(parsedDate.getUTCDate(), "13", "date is correct"); - equal(parsedDate.getUTCMonth(), "10", "month is correct"); - equal(parsedDate.getUTCFullYear(), "2015", "fullyear is correct"); -}); diff --git a/admin/bower_components/bootstrap-datepicker/tests/suites/methods_jquery.js b/admin/bower_components/bootstrap-datepicker/tests/suites/methods_jquery.js deleted file mode 100644 index e934d49..0000000 --- a/admin/bower_components/bootstrap-datepicker/tests/suites/methods_jquery.js +++ /dev/null @@ -1,26 +0,0 @@ -module('Methods (jQuery)', { - setup: function(){ - this.$inputs = $('<input><input>') - .datepicker() - .appendTo('#qunit-fixture'); - }, - teardown: function(){ - this.$inputs.each(function(){ - $.data(this, 'datepicker').picker.remove(); - }); - } -}); - -test('Methods', function(){ - [ - 'show', - 'hide', - 'setValue', - 'place' - ].forEach($.proxy(function(index, value){ - var returnedObject = this.$inputs.datepicker(value); - - strictEqual(returnedObject, this.$inputs, "is jQuery element"); - strictEqual(returnedObject.length, 2, "correct length of jQuery elements"); - }, this)); -}); diff --git a/admin/bower_components/bootstrap-datepicker/tests/suites/mouse_navigation/2011.js b/admin/bower_components/bootstrap-datepicker/tests/suites/mouse_navigation/2011.js deleted file mode 100644 index 9aa4628..0000000 --- a/admin/bower_components/bootstrap-datepicker/tests/suites/mouse_navigation/2011.js +++ /dev/null @@ -1,66 +0,0 @@ -module('Mouse Navigation 2011', { - setup: function(){ - /* - Tests start with picker on March 31, 2011. - */ - this.input = $('<input type="text" value="31-03-2011">') - .appendTo('#qunit-fixture') - .datepicker({format: "dd-mm-yyyy"}) - .focus(); // Activate for visibility checks - this.dp = this.input.data('datepicker'); - this.picker = this.dp.picker; - }, - teardown: function(){ - this.picker.remove(); - } -}); - -test('Selecting date from previous month while in January changes month and year displayed', function(){ - var target; - - this.input.val('01-01-2011'); - this.dp.update(); - datesEqual(this.dp.viewDate, UTCDate(2011, 0, 1)); - datesEqual(this.dp.dates.get(-1), UTCDate(2011, 0, 1)); - - // Rendered correctly - equal(this.dp.viewMode, 0); - target = this.picker.find('.datepicker-days tbody td:first'); - equal(target.text(), '26'); // Should be Dec 26 - equal(this.picker.find('.datepicker-days thead th.datepicker-switch').text(), 'January 2011'); - - // Updated internally on click - target.click(); - equal(this.picker.find('.datepicker-days thead th.datepicker-switch').text(), 'December 2010'); - datesEqual(this.dp.viewDate, UTCDate(2010, 11, 26)); - datesEqual(this.dp.dates.get(-1), UTCDate(2010, 11, 26)); - - // Re-rendered on click - target = this.picker.find('.datepicker-days tbody td:first'); - equal(target.text(), '28'); // Should be Nov 28 -}); - -test('Selecting date from next month while in December changes month and year displayed', function(){ - var target; - - this.input.val('01-12-2010'); - this.dp.update(); - datesEqual(this.dp.viewDate, UTCDate(2010, 11, 1)); - datesEqual(this.dp.dates.get(-1), UTCDate(2010, 11, 1)); - - // Rendered correctly - equal(this.dp.viewMode, 0); - target = this.picker.find('.datepicker-days tbody td:last'); - equal(target.text(), '8'); // Should be Jan 8 - equal(this.picker.find('.datepicker-days thead th.datepicker-switch').text(), 'December 2010'); - - // Updated internally on click - target.click(); - equal(this.picker.find('.datepicker-days thead th.datepicker-switch').text(), 'January 2011'); - datesEqual(this.dp.viewDate, UTCDate(2011, 0, 8)); - datesEqual(this.dp.dates.get(-1), UTCDate(2011, 0, 8)); - - // Re-rendered on click - target = this.picker.find('.datepicker-days tbody td:first'); - equal(target.text(), '26'); // Should be Dec 26 -}); diff --git a/admin/bower_components/bootstrap-datepicker/tests/suites/mouse_navigation/2012.js b/admin/bower_components/bootstrap-datepicker/tests/suites/mouse_navigation/2012.js deleted file mode 100644 index 071df9b..0000000 --- a/admin/bower_components/bootstrap-datepicker/tests/suites/mouse_navigation/2012.js +++ /dev/null @@ -1,266 +0,0 @@ -module('Mouse Navigation 2012', { - setup: function(){ - /* - Tests start with picker on March 31, 2012. Fun facts: - - * February 1, 2012 was on a Wednesday - * February 29, 2012 was on a Wednesday - * March 1, 2012 was on a Thursday - * March 31, 2012 was on a Saturday - */ - this.input = $('<input type="text" value="31-03-2012">') - .appendTo('#qunit-fixture') - .datepicker({format: "dd-mm-yyyy"}) - .focus(); // Activate for visibility checks - this.dp = this.input.data('datepicker'); - this.picker = this.dp.picker; - }, - teardown: function(){ - this.picker.remove(); - } -}); - -test('Selecting date resets viewDate and date', function(){ - var target; - - // Rendered correctly - equal(this.dp.viewMode, 0); - target = this.picker.find('.datepicker-days tbody td:nth(7)'); - equal(target.text(), '4'); // Should be Mar 4 - - // Updated internally on click - target.click(); - datesEqual(this.dp.viewDate, UTCDate(2012, 2, 4)); - datesEqual(this.dp.dates.get(-1), UTCDate(2012, 2, 4)); - - // Re-rendered on click - target = this.picker.find('.datepicker-days tbody td:first'); - equal(target.text(), '26'); // Should be Feb 29 -}); - -test('Navigating next/prev by month', function(){ - var target; - - equal(this.dp.viewMode, 0); - target = this.picker.find('.datepicker-days thead th.prev'); - ok(target.is(':visible'), 'Month:prev nav is visible'); - - // Updated internally on click - target.click(); - // Should handle month-length changes gracefully - datesEqual(this.dp.viewDate, UTCDate(2012, 1, 29)); - datesEqual(this.dp.dates.get(-1), UTCDate(2012, 2, 31)); - - // Re-rendered on click - target = this.picker.find('.datepicker-days tbody td:first'); - equal(target.text(), '29'); // Should be Jan 29 - - target = this.picker.find('.datepicker-days thead th.next'); - ok(target.is(':visible'), 'Month:next nav is visible'); - - // Updated internally on click - target.click().click(); - // Graceful moonth-end handling carries over - datesEqual(this.dp.viewDate, UTCDate(2012, 3, 29)); - datesEqual(this.dp.dates.get(-1), UTCDate(2012, 2, 31)); - - // Re-rendered on click - target = this.picker.find('.datepicker-days tbody td:first'); - equal(target.text(), '25'); // Should be Mar 25 - // (includes "old" days at start of month, even if that's all the first week-row consists of) -}); - -test('Navigating to/from year view', function(){ - var target; - - equal(this.dp.viewMode, 0); - target = this.picker.find('.datepicker-days thead th.datepicker-switch'); - ok(target.is(':visible'), 'View switcher is visible'); - - target.click(); - ok(this.picker.find('.datepicker-months').is(':visible'), 'Month picker is visible'); - equal(this.dp.viewMode, 1); - // Not modified when switching modes - datesEqual(this.dp.viewDate, UTCDate(2012, 2, 31)); - datesEqual(this.dp.dates.get(-1), UTCDate(2012, 2, 31)); - - // Change months to test internal state - target = this.picker.find('.datepicker-months tbody span:contains(Apr)'); - target.click(); - equal(this.dp.viewMode, 0); - // Only viewDate modified - datesEqual(this.dp.viewDate, UTCDate(2012, 3, 1)); // Apr 30 - datesEqual(this.dp.dates.get(-1), UTCDate(2012, 2, 31)); -}); - -test('Navigating to/from decade view', function(){ - var target; - - equal(this.dp.viewMode, 0); - target = this.picker.find('.datepicker-days thead th.datepicker-switch'); - ok(target.is(':visible'), 'View switcher is visible'); - - target.click(); - ok(this.picker.find('.datepicker-months').is(':visible'), 'Month picker is visible'); - equal(this.dp.viewMode, 1); - // Not modified when switching modes - datesEqual(this.dp.viewDate, UTCDate(2012, 2, 31)); - datesEqual(this.dp.dates.get(-1), UTCDate(2012, 2, 31)); - - target = this.picker.find('.datepicker-months thead th.datepicker-switch'); - ok(target.is(':visible'), 'View switcher is visible'); - - target.click(); - ok(this.picker.find('.datepicker-years').is(':visible'), 'Year picker is visible'); - equal(this.dp.viewMode, 2); - // Not modified when switching modes - datesEqual(this.dp.viewDate, UTCDate(2012, 2, 31)); - datesEqual(this.dp.dates.get(-1), UTCDate(2012, 2, 31)); - - // Change years to test internal state changes - target = this.picker.find('.datepicker-years tbody span:contains(2011)'); - target.click(); - equal(this.dp.viewMode, 1); - // Only viewDate modified - datesEqual(this.dp.viewDate, UTCDate(2011, 2, 1)); - datesEqual(this.dp.dates.get(-1), UTCDate(2012, 2, 31)); - - target = this.picker.find('.datepicker-months tbody span:contains(Apr)'); - target.click(); - equal(this.dp.viewMode, 0); - // Only viewDate modified - datesEqual(this.dp.viewDate, UTCDate(2011, 3, 1)); - datesEqual(this.dp.dates.get(-1), UTCDate(2012, 2, 31)); -}); - -test('Navigating prev/next in year view', function(){ - var target; - - equal(this.dp.viewMode, 0); - target = this.picker.find('.datepicker-days thead th.datepicker-switch'); - ok(target.is(':visible'), 'View switcher is visible'); - - target.click(); - ok(this.picker.find('.datepicker-months').is(':visible'), 'Month picker is visible'); - equal(this.dp.viewMode, 1); - equal(this.picker.find('.datepicker-months thead th.datepicker-switch').text(), '2012'); - // Not modified when switching modes - datesEqual(this.dp.viewDate, UTCDate(2012, 2, 31)); - datesEqual(this.dp.dates.get(-1), UTCDate(2012, 2, 31)); - - // Go to next year (2013) - target = this.picker.find('.datepicker-months thead th.next'); - target.click(); - equal(this.picker.find('.datepicker-months thead th.datepicker-switch').text(), '2013'); - // Only viewDate modified - datesEqual(this.dp.viewDate, UTCDate(2013, 2, 31)); - datesEqual(this.dp.dates.get(-1), UTCDate(2012, 2, 31)); - - // Go to prev year (x2 == 2011) - target = this.picker.find('.datepicker-months thead th.prev'); - target.click().click(); - equal(this.picker.find('.datepicker-months thead th.datepicker-switch').text(), '2011'); - // Only viewDate modified - datesEqual(this.dp.viewDate, UTCDate(2011, 2, 31)); - datesEqual(this.dp.dates.get(-1), UTCDate(2012, 2, 31)); -}); - -test('Navigating prev/next in decade view', function(){ - var target; - - equal(this.dp.viewMode, 0); - target = this.picker.find('.datepicker-days thead th.datepicker-switch'); - ok(target.is(':visible'), 'View switcher is visible'); - - target.click(); - ok(this.picker.find('.datepicker-months').is(':visible'), 'Month picker is visible'); - equal(this.dp.viewMode, 1); - // Not modified when switching modes - datesEqual(this.dp.viewDate, UTCDate(2012, 2, 31)); - datesEqual(this.dp.dates.get(-1), UTCDate(2012, 2, 31)); - - target = this.picker.find('.datepicker-months thead th.datepicker-switch'); - ok(target.is(':visible'), 'View switcher is visible'); - - target.click(); - ok(this.picker.find('.datepicker-years').is(':visible'), 'Year picker is visible'); - equal(this.dp.viewMode, 2); - equal(this.picker.find('.datepicker-years thead th.datepicker-switch').text(), '2010-2019'); - // Not modified when switching modes - datesEqual(this.dp.viewDate, UTCDate(2012, 2, 31)); - datesEqual(this.dp.dates.get(-1), UTCDate(2012, 2, 31)); - - // Go to next decade (2020-29) - target = this.picker.find('.datepicker-years thead th.next'); - target.click(); - equal(this.picker.find('.datepicker-years thead th.datepicker-switch').text(), '2020-2029'); - // Only viewDate modified - datesEqual(this.dp.viewDate, UTCDate(2022, 2, 31)); - datesEqual(this.dp.dates.get(-1), UTCDate(2012, 2, 31)); - - // Go to prev year (x2 == 2000-09) - target = this.picker.find('.datepicker-years thead th.prev'); - target.click().click(); - equal(this.picker.find('.datepicker-years thead th.datepicker-switch').text(), '2000-2009'); - // Only viewDate modified - datesEqual(this.dp.viewDate, UTCDate(2002, 2, 31)); - datesEqual(this.dp.dates.get(-1), UTCDate(2012, 2, 31)); -}); - -test('Selecting date from previous month resets viewDate and date, changing month displayed', function(){ - var target; - - // Rendered correctly - equal(this.dp.viewMode, 0); - target = this.picker.find('.datepicker-days tbody td:first'); - equal(target.text(), '26'); // Should be Feb 26 - equal(this.picker.find('.datepicker-days thead th.datepicker-switch').text(), 'March 2012'); - - // Updated internally on click - target.click(); - equal(this.picker.find('.datepicker-days thead th.datepicker-switch').text(), 'February 2012'); - datesEqual(this.dp.viewDate, UTCDate(2012, 1, 26)); - datesEqual(this.dp.dates.get(-1), UTCDate(2012, 1, 26)); - - // Re-rendered on click - target = this.picker.find('.datepicker-days tbody td:first'); - equal(target.text(), '29'); // Should be Jan 29 -}); - -test('Selecting date from next month resets viewDate and date, changing month displayed', function(){ - var target; - - this.input.val('01-04-2012'); - this.dp.update(); - - // Rendered correctly - equal(this.dp.viewMode, 0); - target = this.picker.find('.datepicker-days tbody td:last'); - equal(target.text(), '5'); // Should be May 5 - equal(this.picker.find('.datepicker-days thead th.datepicker-switch').text(), 'April 2012'); - - // Updated internally on click - target.click(); - equal(this.picker.find('.datepicker-days thead th.datepicker-switch').text(), 'May 2012'); - datesEqual(this.dp.viewDate, UTCDate(2012, 4, 5)); - datesEqual(this.dp.dates.get(-1), UTCDate(2012, 4, 5)); - - // Re-rendered on click - target = this.picker.find('.datepicker-days tbody td:first'); - equal(target.text(), '29'); // Should be Apr 29 -}); - -test('Selecting today from next month', patch_date(function(Date){ - var target; - this.dp.o.todayHighlight = true; - Date.now = new Date(2012, 2, 3); // Mar 3 - this.input.val('01-02-2012'); // Feb 1 - this.dp.update(); - - // Click the today button - target = this.picker.find('.datepicker-days tbody td.today'); - equal(target.text(), '3'); // Should be Mar 3 - target.click(); - - datesEqual(this.dp.viewDate, UTCDate(2012, 2, 3)); -})); diff --git a/admin/bower_components/bootstrap-datepicker/tests/suites/mouse_navigation/all.js b/admin/bower_components/bootstrap-datepicker/tests/suites/mouse_navigation/all.js deleted file mode 100644 index 5f1436e..0000000 --- a/admin/bower_components/bootstrap-datepicker/tests/suites/mouse_navigation/all.js +++ /dev/null @@ -1,33 +0,0 @@ -module('Mouse Navigation (All)', { - setup: function(){ - this.input = $('<input type="text">') - .appendTo('#qunit-fixture') - .datepicker({format: "dd-mm-yyyy"}) - .focus(); // Activate for visibility checks - this.dp = this.input.data('datepicker'); - this.picker = this.dp.picker; - }, - teardown: function(){ - this.picker.remove(); - } -}); - -test('Clicking datepicker does not hide datepicker', function(){ - ok(this.picker.is(':visible'), 'Picker is visible'); - this.picker.trigger('mousedown'); - ok(this.picker.is(':visible'), 'Picker is still visible'); -}); - -test('Clicking outside datepicker hides datepicker', function(){ - var $otherelement = $('<div />'); - $('body').append($otherelement); - - ok(this.picker.is(':visible'), 'Picker is visible'); - this.input.trigger('click'); - ok(this.picker.is(':visible'), 'Picker is still visible'); - - $otherelement.trigger('mousedown'); - ok(this.picker.is(':not(:visible)'), 'Picker is hidden'); - - $otherelement.remove(); -}); diff --git a/admin/bower_components/bootstrap-datepicker/tests/suites/noconflict.js b/admin/bower_components/bootstrap-datepicker/tests/suites/noconflict.js deleted file mode 100644 index 58bff1a..0000000 --- a/admin/bower_components/bootstrap-datepicker/tests/suites/noconflict.js +++ /dev/null @@ -1,20 +0,0 @@ -module('NoConflict', { - setup: function(){ - var datepicker = $.fn.datepicker.noConflict(); - $.fn.bootstrapDP = datepicker; - }, - teardown: function(){ - $.fn.datepicker = $.fn.bootstrapDP; - delete $.fn.bootstrapDP; - } -}); - -test('Datepicker starts after calling noConflict() (no undefined defaults or locale_opts)', function(){ - $('<div class="input-append date" id="datepicker">'+ - '<input size="16" type="text" value="12-02-2012" readonly>'+ - '<span class="add-on"><i class="icon-th"></i></span>'+ - '</div>') - .appendTo('#qunit-fixture') - .bootstrapDP(); - expect(0); -}); diff --git a/admin/bower_components/bootstrap-datepicker/tests/suites/options.js b/admin/bower_components/bootstrap-datepicker/tests/suites/options.js deleted file mode 100644 index 2c90f77..0000000 --- a/admin/bower_components/bootstrap-datepicker/tests/suites/options.js +++ /dev/null @@ -1,1796 +0,0 @@ -module('Options', { - setup: function(){}, - teardown: function(){ - $('#qunit-fixture *').each(function(){ - var t = $(this); - if ('datepicker' in t.data()) - t.datepicker('remove'); - }); - } -}); - -test('Autoclose', function(){ - var input = $('<input />') - .appendTo('#qunit-fixture') - .val('2012-03-05') - .datepicker({ - format: 'yyyy-mm-dd', - autoclose: true - }), - dp = input.data('datepicker'), - picker = dp.picker, - target; - - - input.focus(); - ok(picker.is(':visible'), 'Picker is visible'); - target = picker.find('.datepicker-days tbody td:nth(7)'); - equal(target.text(), '4'); // Mar 4 - - target.click(); - ok(picker.is(':not(:visible)'), 'Picker is hidden'); - datesEqual(dp.dates[0], UTCDate(2012, 2, 4)); - datesEqual(dp.viewDate, UTCDate(2012, 2, 4)); -}); - -test('Custom date formatter functions', function(){ - var input = $('<input />') - .appendTo('#qunit-fixture') - .val('2015-09-18T00:00:00.000Z') - .datepicker({ - format: { - /* - Say our UI should display a week ahead, - but textbox should store the actual date. - This is useful if we need UI to select local dates, - but store in UTC - */ - toDisplay: function (date, format, language) { - var d = new Date(date); - d.setDate(d.getDate() - 7); - return d.toISOString(); - }, - toValue: function (date, format, language) { - var d = new Date(date); - d.setDate(d.getDate() + 7); - return new Date(d); - } - }, - autoclose: true - }), - dp = input.data('datepicker'), - picker = dp.picker, - target; - //Value is ISO format and is 7 days older than UI - equal(input.val(), '2015-09-18T00:00:00.000Z'); - datesEqual(dp.dates[0], UTCDate(2015, 8, 25)); - datesEqual(dp.viewDate, UTCDate(2015, 8, 25)); - - input.focus(); - ok(picker.is(':visible'), 'Picker is visible'); - target = picker.find('.datepicker-days tbody td:nth(5)'); - equal(target.text(), '4'); // Sep 4 - - target.click(); - ok(picker.is(':not(:visible)'), 'Picker is hidden'); - //Value is now 28th Aug 2015 in ISO format - //and is 7 days older than UI - equal(input.val(), '2015-08-28T00:00:00.000Z'); - datesEqual(dp.dates[0], UTCDate(2015, 8, 4)); - datesEqual(dp.viewDate, UTCDate(2015, 8, 4)); -}); - -test('Startview: year view (integer)', function(){ - var input = $('<input />') - .appendTo('#qunit-fixture') - .val('2012-03-05') - .datepicker({ - format: 'yyyy-mm-dd', - startView: 1 - }), - dp = input.data('datepicker'), - picker = dp.picker, - target; - - input.focus(); - ok(picker.find('.datepicker-days').is(':not(:visible)'), 'Days view hidden'); - ok(picker.find('.datepicker-months').is(':visible'), 'Months view visible'); - ok(picker.find('.datepicker-years').is(':not(:visible)'), 'Years view hidden'); - ok(picker.find('.datepicker-decades').is(':not(:visible)'), 'Decades view hidden'); - ok(picker.find('.datepicker-centuries').is(':not(:visible)'), 'Centuries view hidden'); -}); - -test('Startview: year view (string)', function(){ - var input = $('<input />') - .appendTo('#qunit-fixture') - .val('2012-03-05') - .datepicker({ - format: 'yyyy-mm-dd', - startView: 'year' - }), - dp = input.data('datepicker'), - picker = dp.picker, - target; - - input.focus(); - ok(picker.find('.datepicker-days').is(':not(:visible)'), 'Days view hidden'); - ok(picker.find('.datepicker-months').is(':visible'), 'Months view visible'); - ok(picker.find('.datepicker-years').is(':not(:visible)'), 'Years view hidden'); - ok(picker.find('.datepicker-decades').is(':not(:visible)'), 'Decades view hidden'); - ok(picker.find('.datepicker-centuries').is(':not(:visible)'), 'Centuries view hidden'); -}); - -test('Startview: decade view (integer)', function(){ - var input = $('<input />') - .appendTo('#qunit-fixture') - .val('2012-03-05') - .datepicker({ - format: 'yyyy-mm-dd', - startView: 2 - }), - dp = input.data('datepicker'), - picker = dp.picker, - target; - - input.focus(); - ok(picker.find('.datepicker-days').is(':not(:visible)'), 'Days view hidden'); - ok(picker.find('.datepicker-months').is(':not(:visible)'), 'Months view hidden'); - ok(picker.find('.datepicker-years').is(':visible'), 'Years view visible'); - ok(picker.find('.datepicker-decades').is(':not(:visible)'), 'Decades view hidden'); - ok(picker.find('.datepicker-centuries').is(':not(:visible)'), 'Centuries view hidden'); -}); - -test('Startview: decade view (string)', function(){ - var input = $('<input />') - .appendTo('#qunit-fixture') - .val('2012-03-05') - .datepicker({ - format: 'yyyy-mm-dd', - startView: 'decade' - }), - dp = input.data('datepicker'), - picker = dp.picker, - target; - - input.focus(); - ok(picker.find('.datepicker-days').is(':not(:visible)'), 'Days view hidden'); - ok(picker.find('.datepicker-months').is(':not(:visible)'), 'Months view hidden'); - ok(picker.find('.datepicker-years').is(':visible'), 'Years view visible'); - ok(picker.find('.datepicker-decades').is(':not(:visible)'), 'Decades view hidden'); - ok(picker.find('.datepicker-centuries').is(':not(:visible)'), 'Centuries view hidden'); -}); - -test('Startview: century view (integer)', function(){ - var input = $('<input />') - .appendTo('#qunit-fixture') - .val('2012-03-05') - .datepicker({ - format: 'yyyy-mm-dd', - startView: 3 - }), - dp = input.data('datepicker'), - picker = dp.picker, - target; - - input.focus(); - ok(picker.find('.datepicker-days').is(':not(:visible)'), 'Days view hidden'); - ok(picker.find('.datepicker-months').is(':not(:visible)'), 'Months view hidden'); - ok(picker.find('.datepicker-years').is(':not(:visible)'), 'Years view hidden'); - ok(picker.find('.datepicker-decades').is(':visible'), 'Decades view visible'); - ok(picker.find('.datepicker-centuries').is(':not(:visible)'), 'Centuries view hidden'); -}); - -test('Startview: century view (string)', function(){ - var input = $('<input />') - .appendTo('#qunit-fixture') - .val('2012-03-05') - .datepicker({ - format: 'yyyy-mm-dd', - startView: 'century' - }), - dp = input.data('datepicker'), - picker = dp.picker, - target; - - input.focus(); - ok(picker.find('.datepicker-days').is(':not(:visible)'), 'Days view hidden'); - ok(picker.find('.datepicker-months').is(':not(:visible)'), 'Months view hidden'); - ok(picker.find('.datepicker-years').is(':not(:visible)'), 'Years view hidden'); - ok(picker.find('.datepicker-decades').is(':visible'), 'Decades view visible'); - ok(picker.find('.datepicker-centuries').is(':not(:visible)'), 'Centuries view hidden'); -}); - -test('Startview: millennium view (integer)', function(){ - var input = $('<input />') - .appendTo('#qunit-fixture') - .val('2012-03-05') - .datepicker({ - format: 'yyyy-mm-dd', - startView: 4 - }), - dp = input.data('datepicker'), - picker = dp.picker, - target; - - input.focus(); - ok(picker.find('.datepicker-days').is(':not(:visible)'), 'Days view hidden'); - ok(picker.find('.datepicker-months').is(':not(:visible)'), 'Months view hidden'); - ok(picker.find('.datepicker-years').is(':not(:visible)'), 'Years view hidden'); - ok(picker.find('.datepicker-decades').is(':not(:visible)'), 'Decades view hidden'); - ok(picker.find('.datepicker-centuries').is(':visible'), 'Centuries view visible'); -}); - -test('Startview: millennium view (string)', function(){ - var input = $('<input />') - .appendTo('#qunit-fixture') - .val('2012-03-05') - .datepicker({ - format: 'yyyy-mm-dd', - startView: 'millennium' - }), - dp = input.data('datepicker'), - picker = dp.picker, - target; - - input.focus(); - ok(picker.find('.datepicker-days').is(':not(:visible)'), 'Days view hidden'); - ok(picker.find('.datepicker-months').is(':not(:visible)'), 'Months view hidden'); - ok(picker.find('.datepicker-years').is(':not(:visible)'), 'Years view hidden'); - ok(picker.find('.datepicker-decades').is(':not(:visible)'), 'Decades view hidden'); - ok(picker.find('.datepicker-centuries').is(':visible'), 'Centuries view visible'); -}); - -test('Today Button: today button not default', function(){ - var input = $('<input />') - .appendTo('#qunit-fixture') - .val('2012-03-05') - .datepicker({ - format: 'yyyy-mm-dd' - }), - dp = input.data('datepicker'), - picker = dp.picker, - target; - - input.focus(); - ok(picker.find('.datepicker-days').is(':visible'), 'Days view visible'); - ok(picker.find('.datepicker-days tfoot .today').is(':not(:visible)'), 'Today button not visible'); -}); - -test('Today Button: today visibility when enabled', function(){ - var input = $('<input />') - .appendTo('#qunit-fixture') - .val('2012-03-05') - .datepicker({ - format: 'yyyy-mm-dd', - todayBtn: true - }), - dp = input.data('datepicker'), - picker = dp.picker, - target; - - input.focus(); - ok(picker.find('.datepicker-days').is(':visible'), 'Days view visible'); - ok(picker.find('.datepicker-days tfoot .today').is(':visible'), 'Today button visible'); - - picker.find('.datepicker-days thead th.datepicker-switch').click(); - ok(picker.find('.datepicker-months').is(':visible'), 'Months view visible'); - ok(picker.find('.datepicker-months tfoot .today').is(':visible'), 'Today button visible'); - - picker.find('.datepicker-months thead th.datepicker-switch').click(); - ok(picker.find('.datepicker-years').is(':visible'), 'Years view visible'); - ok(picker.find('.datepicker-years tfoot .today').is(':visible'), 'Today button visible'); -}); - -test('Today Button: data-api', function(){ - var input = $('<input data-date-today-btn="true" />') - .appendTo('#qunit-fixture') - .val('2012-03-05') - .datepicker({ - format: 'yyyy-mm-dd' - }), - dp = input.data('datepicker'), - picker = dp.picker, - target; - - input.focus(); - ok(picker.find('.datepicker-days').is(':visible'), 'Days view visible'); - ok(picker.find('.datepicker-days tfoot .today').is(':visible'), 'Today button visible'); -}); - -test('Today Button: moves to today\'s date', function(){ - var input = $('<input />') - .appendTo('#qunit-fixture') - .val('2012-03-05') - .datepicker({ - format: 'yyyy-mm-dd', - todayBtn: true - }), - dp = input.data('datepicker'), - picker = dp.picker, - target; - - input.focus(); - ok(picker.find('.datepicker-days').is(':visible'), 'Days view visible'); - ok(picker.find('.datepicker-days tfoot .today').is(':visible'), 'Today button visible'); - - target = picker.find('.datepicker-days tfoot .today'); - target.click(); - - var d = new Date(), - today = UTCDate(d.getFullYear(), d.getMonth(), d.getDate()); - datesEqual(dp.viewDate, today); - datesEqual(dp.dates[0], UTCDate(2012, 2, 5)); -}); - -test('Today Button: moves to days view', function(){ - var viewModes = $.fn.datepicker.DPGlobal.viewModes; - var input = $('<input />') - .appendTo('#qunit-fixture') - .val('2012-03-05') - .datepicker({ - format: 'yyyy-mm-dd', - startView: viewModes.length - 1, - todayBtn: true - }), - dp = input.data('datepicker'), - picker = dp.picker, - target; - - input.focus(); - target = picker.find('tfoot .today').filter(':visible'); - - target.click(); - ok(picker.find('.datepicker-days tfoot .today').is(':visible'), 'Today button visible'); -}); - -test('Today Button: "linked" selects today\'s date', function(){ - var input = $('<input />') - .appendTo('#qunit-fixture') - .val('2012-03-05') - .datepicker({ - format: 'yyyy-mm-dd', - todayBtn: "linked" - }), - dp = input.data('datepicker'), - picker = dp.picker, - target; - - input.focus(); - ok(picker.find('.datepicker-days').is(':visible'), 'Days view visible'); - ok(picker.find('.datepicker-days tfoot .today').is(':visible'), 'Today button visible'); - - target = picker.find('.datepicker-days tfoot .today'); - target.click(); - - var d = new Date(), - today = UTCDate(d.getFullYear(), d.getMonth(), d.getDate()); - datesEqual(dp.viewDate, today); - datesEqual(dp.dates[0], today); -}); - -test('Today Highlight: today\'s date is not highlighted by default', patch_date(function(Date){ - Date.now = UTCDate(2012, 2, 15); - var input = $('<input />') - .appendTo('#qunit-fixture') - .val('2012-03-05') - .datepicker({ - format: 'yyyy-mm-dd' - }), - dp = input.data('datepicker'), - picker = dp.picker, - target; - - input.focus(); - ok(picker.find('.datepicker-days').is(':visible'), 'Days view visible'); - equal(picker.find('.datepicker-days thead .datepicker-switch').text(), 'March 2012', 'Title is "March 2012"'); - - target = picker.find('.datepicker-days tbody td:contains(15)'); - ok(!target.hasClass('today'), 'Today is not marked with "today" class'); - target = picker.find('.datepicker-days tbody td:contains(14)'); - ok(!target.hasClass('today'), 'Yesterday is not marked with "today" class'); - target = picker.find('.datepicker-days tbody td:contains(16)'); - ok(!target.hasClass('today'), 'Tomorrow is not marked with "today" class'); -})); - -test('Today Highlight: today\'s date is highlighted when not active', patch_date(function(Date){ - Date.now = new Date(2012, 2, 15); - var input = $('<input />') - .appendTo('#qunit-fixture') - .val('2012-03-05') - .datepicker({ - format: 'yyyy-mm-dd', - todayHighlight: true - }), - dp = input.data('datepicker'), - picker = dp.picker, - target; - - input.focus(); - ok(picker.find('.datepicker-days').is(':visible'), 'Days view visible'); - equal(picker.find('.datepicker-days thead .datepicker-switch').text(), 'March 2012', 'Title is "March 2012"'); - - target = picker.find('.datepicker-days tbody td:contains(15)'); - ok(target.hasClass('today'), 'Today is marked with "today" class'); - target = picker.find('.datepicker-days tbody td:contains(14)'); - ok(!target.hasClass('today'), 'Yesterday is not marked with "today" class'); - target = picker.find('.datepicker-days tbody td:contains(16)'); - ok(!target.hasClass('today'), 'Tomorrow is not marked with "today" class'); -})); - -test('Clear Button: clear visibility when enabled', function(){ - var input = $('<input />') - .appendTo('#qunit-fixture') - .val('2012-03-05') - .datepicker({ - format: 'yyyy-mm-dd', - clearBtn: true - }), - dp = input.data('datepicker'), - picker = dp.picker, - target; - - input.focus(); - ok(picker.find('.datepicker-days').is(':visible'), 'Days view visible'); - ok(picker.find('.datepicker-days tfoot .clear').is(':visible'), 'Clear button visible'); - - picker.find('.datepicker-days thead th.datepicker-switch').click(); - ok(picker.find('.datepicker-months').is(':visible'), 'Months view visible'); - ok(picker.find('.datepicker-months tfoot .clear').is(':visible'), 'Clear button visible'); - - picker.find('.datepicker-months thead th.datepicker-switch').click(); - ok(picker.find('.datepicker-years').is(':visible'), 'Years view visible'); - ok(picker.find('.datepicker-years tfoot .clear').is(':visible'), 'Clear button visible'); -}); - -test('Clear Button: clears input value', function(){ - var input = $('<input />') - .appendTo('#qunit-fixture') - .val('2012-03-05') - .datepicker({ - format: 'yyyy-mm-dd', - clearBtn: true - }), - dp = input.data('datepicker'), - picker = dp.picker, - target; - - input.focus(); - ok(picker.find('.datepicker-days').is(':visible'), 'Days view visible'); - ok(picker.find('.datepicker-days tfoot .clear').is(':visible'), 'Today button visible'); - - target = picker.find('.datepicker-days tfoot .clear'); - target.click(); - - equal(input.val(),'',"Input value has been cleared."); - ok(picker.is(':visible'), 'Picker is visible'); -}); - -test('Clear Button: hides datepicker if autoclose is on', function(){ - var input = $('<input />') - .appendTo('#qunit-fixture') - .val('2012-03-05') - .datepicker({ - format: 'yyyy-mm-dd', - clearBtn: true, - autoclose: true - }), - dp = input.data('datepicker'), - picker = dp.picker, - target; - - input.focus(); - ok(picker.find('.datepicker-days').is(':visible'), 'Days view visible'); - ok(picker.find('.datepicker-days tfoot .clear').is(':visible'), 'Today button visible'); - - target = picker.find('.datepicker-days tfoot .clear'); - target.click(); - - equal(input.val(),'',"Input value has been cleared."); - ok(picker.is(':not(:visible)'), 'Picker is hidden'); -}); - -test('Active Toggle Default: when active date is selected it is not unset', function(){ - var input = $('<input />') - .appendTo('#qunit-fixture') - .val('2012-03-05') - .datepicker({ - format: 'yyyy-mm-dd' - }), - dp = input.data('datepicker'), - picker = dp.picker, - target; - - // open our datepicker - input.focus(); - - // Initial value is selected - ok(dp.dates.contains(UTCDate(2012, 2, 5)) !== -1, '2012-03-05 selected'); - - // click on our active date - target = picker.find('.datepicker-days .day.active'); - target.click(); - - // make sure it's still set - equal(input.val(), '2012-03-05', "Input value has not been cleared."); -}); - -test('Active Toggle Enabled (single date): when active date is selected it is unset', function(){ - var input = $('<input />') - .appendTo('#qunit-fixture') - .val('2012-03-05') - .datepicker({ - format: 'yyyy-mm-dd', - toggleActive: true - }), - dp = input.data('datepicker'), - picker = dp.picker, - target; - - // open our datepicker - input.focus(); - - // Initial value is selected - ok(dp.dates.contains(UTCDate(2012, 2, 5)) !== -1, '2012-03-05 selected'); - - // click on our active date - target = picker.find('.datepicker-days .day.active'); - target.click(); - - // make sure it's no longer set - equal(input.val(), '', "Input value has been cleared."); -}); - -test('Active Toggle Multidate Default: when one of the active dates is selected it is unset', function(){ - var input = $('<input />') - .appendTo('#qunit-fixture') - .val('2012-03-05') - .datepicker({ - format: 'yyyy-mm-dd', - multidate: true - }), - dp = input.data('datepicker'), - picker = dp.picker, - target; - - // open our datepicker - input.focus(); - - // Initial value is selected - ok(dp.dates.contains(UTCDate(2012, 2, 5)) !== -1, '2012-03-05 in dates'); - - // Select additional date - target = picker.find('.datepicker-days tbody td:nth(7)'); - target.click(); - datesEqual(dp.dates.get(-1), UTCDate(2012, 2, 4), '2012-03-04 in dates'); - datesEqual(dp.viewDate, UTCDate(2012, 2, 4)); - equal(input.val(), '2012-03-05,2012-03-04'); - - // Unselect additional date - target = picker.find('.datepicker-days tbody td:nth(7)'); - target.click(); - ok(dp.dates.contains(UTCDate(2012, 2, 4)) === -1, '2012-03-04 no longer in dates'); - datesEqual(dp.viewDate, UTCDate(2012, 2, 4)); - equal(input.val(), '2012-03-05'); -}); - -test('Active Toggle Disabled: when active date is selected it remains', function(){ - var input = $('<input />') - .appendTo('#qunit-fixture') - .val('2012-03-05') - .datepicker({ - format: 'yyyy-mm-dd', - toggleActive: false - }), - dp = input.data('datepicker'), - picker = dp.picker, - target; - - // open our datepicker - input.focus(); - - // Initial value is selected - ok(dp.dates.contains(UTCDate(2012, 2, 5)) !== -1, '2012-03-05 selected'); - - // click on our active date - target = picker.find('.datepicker-days .day.active'); - target.click(); - - // make sure it's still set - ok(dp.dates.contains(UTCDate(2012, 2, 5)) !== -1, '2012-03-05 still selected'); - datesEqual(dp.viewDate, UTCDate(2012, 2, 5)); - equal(input.val(), '2012-03-05'); -}); - -test('Active Toggle Multidate Disabled: when activeToggle is set to false, but multidate is set, the option is ignored and selecting an active date it is unset', function(){ - var input = $('<input />') - .appendTo('#qunit-fixture') - .val('2012-03-05') - .datepicker({ - format: 'yyyy-mm-dd', - multidate: true, - toggleActive: false - }), - dp = input.data('datepicker'), - picker = dp.picker, - target; - - // open our datepicker - input.focus(); - - // Initial value is selected - ok(dp.dates.contains(UTCDate(2012, 2, 5)) !== -1, '2012-03-05 in dates'); - - // Select additional date - target = picker.find('.datepicker-days tbody td:nth(7)'); - target.click(); - datesEqual(dp.dates.get(-1), UTCDate(2012, 2, 4), '2012-03-04 in dates'); - datesEqual(dp.viewDate, UTCDate(2012, 2, 4)); - equal(input.val(), '2012-03-05,2012-03-04'); - - // Unselect additional date - target = picker.find('.datepicker-days tbody td:nth(7)'); - target.click(); - ok(dp.dates.contains(UTCDate(2012, 2, 4)) === -1, '2012-03-04 no longer in dates'); - datesEqual(dp.viewDate, UTCDate(2012, 2, 4)); - equal(input.val(), '2012-03-05'); -}); - -test('DaysOfWeekDisabled', function(){ - var input = $('<input />') - .appendTo('#qunit-fixture') - .val('2012-10-26') - .datepicker({ - format: 'yyyy-mm-dd', - daysOfWeekDisabled: '1,5' - }), - dp = input.data('datepicker'), - picker = dp.picker, - target; - - input.focus(); - target = picker.find('.datepicker-days tbody td:nth(22)'); - ok(target.hasClass('disabled'), 'Day of week is disabled'); - target = picker.find('.datepicker-days tbody td:nth(24)'); - ok(!target.hasClass('disabled'), 'Day of week is enabled'); - target = picker.find('.datepicker-days tbody td:nth(26)'); - ok(target.hasClass('disabled'), 'Day of week is disabled'); -}); - -test('DaysOfWeekHighlighted', function(){ - var input = $('<input />') - .appendTo('#qunit-fixture') - .val('2012-10-26') - .datepicker({ - format: 'yyyy-mm-dd', - startDate: '2012-10-02', - daysOfWeekHighlighted: '1,5' - }), - dp = input.data('datepicker'), - picker = dp.picker, - target; - - input.focus(); - target = picker.find('.datepicker-days tbody td:nth(0)'); - ok(!target.hasClass('highlighted'), 'Day of week is not highlighted'); - target = picker.find('.datepicker-days tbody td:nth(22)'); - ok(target.hasClass('highlighted'), 'Day of week is highlighted'); - target = picker.find('.datepicker-days tbody td:nth(24)'); - ok(!target.hasClass('highlighted'), 'Day of week is not highlighted'); - target = picker.find('.datepicker-days tbody td:nth(26)'); - ok(target.hasClass('highlighted'), 'Day of week is highlighted'); -}); - -test('DatesDisabled', function(){ - var input = $('<input />') - .appendTo('#qunit-fixture') - .val('2012-10-26') - .datepicker({ - format: 'yyyy-mm-dd', - datesDisabled: ['2012-10-1', '2012-10-10', '2012-10-20'] - }), - dp = input.data('datepicker'), - picker = dp.picker, - target; - - input.focus(); - target = picker.find('.datepicker-days tbody td:nth(1)'); - ok(target.hasClass('disabled'), 'Day of week is disabled'); - ok(target.hasClass('disabled-date'), 'Date is disabled'); - target = picker.find('.datepicker-days tbody td:nth(2)'); - ok(!target.hasClass('disabled'), 'Day of week is enabled'); - target = picker.find('.datepicker-days tbody td:nth(10)'); - ok(target.hasClass('disabled'), 'Day of week is disabled'); - ok(target.hasClass('disabled-date'), 'Date is disabled'); - target = picker.find('.datepicker-days tbody td:nth(11)'); - ok(!target.hasClass('disabled'), 'Day of week is enabled'); - target = picker.find('.datepicker-days tbody td:nth(20)'); - ok(target.hasClass('disabled'), 'Day of week is disabled'); - ok(target.hasClass('disabled-date'), 'Date is disabled'); - target = picker.find('.datepicker-days tbody td:nth(21)'); - ok(!target.hasClass('disabled'), 'Day of week is enabled'); -}); - -test('DatesDisabled as attribute', function(){ - var input = $('<input data-date-dates-disabled="2012-10-1,2012-10-10,2012-10-20" />') - .appendTo('#qunit-fixture') - .val('2012-10-26') - .datepicker({ - format: 'yyyy-mm-dd' - }), - dp = input.data('datepicker'), - picker = dp.picker, - target; - - input.focus(); - target = picker.find('.datepicker-days tbody td:nth(1)'); - ok(target.hasClass('disabled'), 'Day of week is disabled'); - ok(target.hasClass('disabled-date'), 'Date is disabled'); - target = picker.find('.datepicker-days tbody td:nth(2)'); - ok(!target.hasClass('disabled'), 'Day of week is enabled'); - target = picker.find('.datepicker-days tbody td:nth(10)'); - ok(target.hasClass('disabled'), 'Day of week is disabled'); - ok(target.hasClass('disabled-date'), 'Date is disabled'); - target = picker.find('.datepicker-days tbody td:nth(11)'); - ok(!target.hasClass('disabled'), 'Day of week is enabled'); - target = picker.find('.datepicker-days tbody td:nth(20)'); - ok(target.hasClass('disabled'), 'Day of week is disabled'); - ok(target.hasClass('disabled-date'), 'Date is disabled'); - target = picker.find('.datepicker-days tbody td:nth(21)'); - ok(!target.hasClass('disabled'), 'Day of week is enabled'); -}); - -test('BeforeShowDay', function(){ - - var beforeShowDay = function(date) { - switch (date.getDate()){ - case 25: - return { - tooltip: 'Example tooltip', - classes: 'active' - }; - case 26: - return "test26"; - case 27: - return {enabled: false, classes: 'test27'}; - case 28: - return false; - case 30: - return { content: "foo" + date.getDate() } - } - }; - - var input = $('<input />') - .appendTo('#qunit-fixture') - .val('2012-10-26') - .datepicker({ - format: 'yyyy-mm-dd', - beforeShowDay: beforeShowDay - }), - dp = input.data('datepicker'), - picker = dp.picker, - target; - - input.focus(); - target = picker.find('.datepicker-days tbody td:nth(25)'); - equal(target.attr('title'), 'Example tooltip', '25th has tooltip'); - ok(!target.hasClass('disabled'), '25th is enabled'); - target = picker.find('.datepicker-days tbody td:nth(26)'); - ok(target.hasClass('test26'), '26th has test26 class'); - ok(!target.hasClass('disabled'), '26th is enabled'); - target = picker.find('.datepicker-days tbody td:nth(27)'); - ok(target.hasClass('test27'), '27th has test27 class'); - ok(target.hasClass('disabled'), '27th is disabled'); - target = picker.find('.datepicker-days tbody td:nth(28)'); - ok(target.hasClass('disabled'), '28th is disabled'); - target = picker.find('.datepicker-days tbody td:nth(29)'); - ok(!target.hasClass('disabled'), '29th is enabled'); - target = picker.find('.datepicker-days tbody td:nth(30)'); - ok(target.text() == "foo30", '30th has custom content'); -}); - -test('BeforeShowMonth regress .day content', function() { - var input = $('<input />') - .appendTo('#qunit-fixture') - .val('2012-10-26') - .datepicker({ - format: 'yyyy-mm-dd', - beforeShowDay: function(date) { - return { - content: '<strong>foo123</strong>' - }; - } - }), - dp = input.data('datepicker'), - picker = dp.picker, - target; - - input.focus(); - target = picker.find('.datepicker-days tbody td:nth(30)'); - target.trigger('click'); - datesEqual(dp.viewDate, UTCDate(2012, 9, 30)); -}); - -test('BeforeShowMonth', function () { - - var beforeShowMonth = function (date) { - switch (date.getMonth()) { - case 0: - return { - tooltip: 'Example tooltip', - classes: 'active' - }; - case 2: - return "testMarch"; - case 4: - return {enabled: false, classes: 'testMay'}; - case 5: - return false; - } - }; - - var input = $('<input />') - .appendTo('#qunit-fixture') - .val('2012-10-26') - .datepicker({ - format: 'yyyy-mm-dd', - beforeShowMonth: beforeShowMonth - }), - dp = input.data('datepicker'), - picker = dp.picker, - target; - - input.focus(); - target = picker.find('.datepicker-months tbody span:nth(0)'); - equal(target.attr('title'), 'Example tooltip', '1st has tooltip'); - ok(!target.hasClass('disabled'), 'January is enabled'); - target = picker.find('.datepicker-months tbody span:nth(2)'); - ok(target.hasClass('testMarch'), 'March has testMarch class'); - ok(!target.hasClass('disabled'), 'March enabled'); - target = picker.find('.datepicker-months tbody span:nth(4)'); - ok(target.hasClass('testMay'), 'May has testMay class'); - ok(target.hasClass('disabled'), 'May is disabled'); - target = picker.find('.datepicker-months tbody span:nth(5)'); - ok(target.hasClass('disabled'), 'June is disabled'); - target = picker.find('.datepicker-months tbody span:nth(6)'); - ok(!target.hasClass('disabled'), 'July is enabled'); -}); - - -test('BeforeShowYear', function () { - - var beforeShowYear = function (date) { - switch (date.getFullYear()) { - case 2013: - return { - tooltip: 'Example tooltip', - classes: 'active' - }; - case 2014: - return "test2014"; - case 2015: - return {enabled: false, classes: 'test2015'}; - case 2016: - return false; - } - }; - - var input = $('<input />') - .appendTo('#qunit-fixture') - .val('2012-10-26') - .datepicker({ - format: 'yyyy-mm-dd', - beforeShowYear: beforeShowYear - }), - dp = input.data('datepicker'), - picker = dp.picker, - target; - - input.focus(); - target = picker.find('.datepicker-years tbody span:nth(4)'); - equal(target.attr('title'), 'Example tooltip', '5th has tooltip'); - ok(!target.hasClass('disabled'), '2013, 5th is enabled'); - target = picker.find('.datepicker-years tbody span:nth(5)'); - ok(target.hasClass('test2014'), '6th has test2014 class'); - ok(!target.hasClass('disabled'), '2014, 6th is enabled'); - target = picker.find('.datepicker-years tbody span:nth(6)'); - ok(target.hasClass('test2015'), '2015, 7th has test2015 class'); - ok(target.hasClass('disabled'), '2015, 7th is disabled'); - target = picker.find('.datepicker-years tbody span:nth(7)'); - ok(target.hasClass('disabled'), '2016, 8th is disabled'); - target = picker.find('.datepicker-years tbody span:nth(8)'); - ok(!target.hasClass('disabled'), '2017, 9th is enabled'); -}); - -test('beforeShowDecade', function () { - var beforeShowDecade = function (date) { - switch (date.getFullYear()) { - case 2030: - return { - tooltip: 'Example tooltip', - classes: 'active' - }; - case 2040: - return "test2040"; - case 2050: - return {enabled: false, classes: 'test2050'}; - case 2060: - return false; - } - }; - - var input = $('<input />') - .appendTo('#qunit-fixture') - .val('03/05/2012') - .datepicker({ beforeShowDecade: beforeShowDecade }), - dp = input.data('datepicker'), - picker = dp.picker, - target; - - input.focus(); - target = picker.find('.datepicker-decades tbody span:nth(4)'); - equal(target.attr('title'), 'Example tooltip', '5th has tooltip'); - ok(!target.hasClass('disabled'), '2030, 5th is enabled'); - - target = picker.find('.datepicker-decades tbody span:nth(5)'); - ok(target.hasClass('test2040'), '6th has test2040 class'); - ok(!target.hasClass('disabled'), '2040, 6th is enabled'); - - target = picker.find('.datepicker-decades tbody span:nth(6)'); - ok(target.hasClass('test2050'), '2050, 7th has test2050 class'); - ok(target.hasClass('disabled'), '2050, 7th is disabled'); - - target = picker.find('.datepicker-decades tbody span:nth(7)'); - ok(target.hasClass('disabled'), '2060, 8th is disabled'); - - target = picker.find('.datepicker-decades tbody span:nth(8)'); - ok(!target.hasClass('disabled'), '2070, 9th is enabled'); -}); - -test('beforeShowCentury', function () { - var beforeShowCentury = function (date) { - switch (date.getFullYear()) { - case 2300: - return { - tooltip: 'Example tooltip', - classes: 'active' - }; - case 2400: - return "test2400"; - case 2500: - return {enabled: false, classes: 'test2500'}; - case 2600: - return false; - } - }; - - var input = $('<input />') - .appendTo('#qunit-fixture') - .val('03/05/2012') - .datepicker({ beforeShowCentury: beforeShowCentury }), - dp = input.data('datepicker'), - picker = dp.picker, - target; - - input.focus(); - target = picker.find('.datepicker-centuries tbody span:nth(4)'); - equal(target.attr('title'), 'Example tooltip', '5th has tooltip'); - ok(!target.hasClass('disabled'), '2300, 5th is enabled'); - - target = picker.find('.datepicker-centuries tbody span:nth(5)'); - ok(target.hasClass('test2400'), '6th has test2400 class'); - ok(!target.hasClass('disabled'), '2400, 6th is enabled'); - - target = picker.find('.datepicker-centuries tbody span:nth(6)'); - ok(target.hasClass('test2500'), '2500, 7th has test2500 class'); - ok(target.hasClass('disabled'), '2500, 7th is disabled'); - - target = picker.find('.datepicker-centuries tbody span:nth(7)'); - ok(target.hasClass('disabled'), '2600, 8th is disabled'); - - target = picker.find('.datepicker-centuries tbody span:nth(8)'); - ok(!target.hasClass('disabled'), '2700, 9th is enabled'); -}); - -test('Orientation: values are parsed correctly', function(){ - - var input = $('<input />') - .appendTo('#qunit-fixture') - .val('2012-10-26') - .datepicker({ - format: 'yyyy-mm-dd' - }), - dp = input.data('datepicker'); - - equal(dp.o.orientation.x, 'auto'); - equal(dp.o.orientation.y, 'auto'); - - dp._process_options({orientation: ''}); - equal(dp.o.orientation.x, 'auto', 'Empty value'); - equal(dp.o.orientation.y, 'auto', 'Empty value'); - - dp._process_options({orientation: 'left'}); - equal(dp.o.orientation.x, 'left', '"left"'); - equal(dp.o.orientation.y, 'auto', '"left"'); - - dp._process_options({orientation: 'right'}); - equal(dp.o.orientation.x, 'right', '"right"'); - equal(dp.o.orientation.y, 'auto', '"right"'); - - dp._process_options({orientation: 'top'}); - equal(dp.o.orientation.x, 'auto', '"top"'); - equal(dp.o.orientation.y, 'top', '"top"'); - - dp._process_options({orientation: 'bottom'}); - equal(dp.o.orientation.x, 'auto', '"bottom"'); - equal(dp.o.orientation.y, 'bottom', '"bottom"'); - - dp._process_options({orientation: 'left top'}); - equal(dp.o.orientation.x, 'left', '"left top"'); - equal(dp.o.orientation.y, 'top', '"left top"'); - - dp._process_options({orientation: 'left bottom'}); - equal(dp.o.orientation.x, 'left', '"left bottom"'); - equal(dp.o.orientation.y, 'bottom', '"left bottom"'); - - dp._process_options({orientation: 'right top'}); - equal(dp.o.orientation.x, 'right', '"right top"'); - equal(dp.o.orientation.y, 'top', '"right top"'); - - dp._process_options({orientation: 'right bottom'}); - equal(dp.o.orientation.x, 'right', '"right bottom"'); - equal(dp.o.orientation.y, 'bottom', '"right bottom"'); - - dp._process_options({orientation: 'left right'}); - equal(dp.o.orientation.x, 'left', '"left right"'); - equal(dp.o.orientation.y, 'auto', '"left right"'); - - dp._process_options({orientation: 'right left'}); - equal(dp.o.orientation.x, 'right', '"right left"'); - equal(dp.o.orientation.y, 'auto', '"right left"'); - - dp._process_options({orientation: 'top bottom'}); - equal(dp.o.orientation.x, 'auto', '"top bottom"'); - equal(dp.o.orientation.y, 'top', '"top bottom"'); - - dp._process_options({orientation: 'bottom top'}); - equal(dp.o.orientation.x, 'auto', '"bottom top"'); - equal(dp.o.orientation.y, 'bottom', '"bottom top"'); - - dp._process_options({orientation: 'foo bar'}); - equal(dp.o.orientation.x, 'auto', '"foo bar"'); - equal(dp.o.orientation.y, 'auto', '"foo bar"'); - - dp._process_options({orientation: 'foo left'}); - equal(dp.o.orientation.x, 'left', '"foo left"'); - equal(dp.o.orientation.y, 'auto', '"foo left"'); - - dp._process_options({orientation: 'top bar'}); - equal(dp.o.orientation.x, 'auto', '"top bar"'); - equal(dp.o.orientation.y, 'top', '"top bar"'); -}); - -test('startDate', function(){ - var input = $('<input />') - .appendTo('#qunit-fixture') - .val('2012-10-26') - .datepicker({ - format: 'yyyy-mm-dd', - startDate: new Date(2012, 9, 26) - }), - dp = input.data('datepicker'), - picker = dp.picker, - target; - - input.focus(); - target = picker.find('.datepicker-days tbody td:nth(25)'); - ok(target.hasClass('disabled'), 'Previous day is disabled'); - target = picker.find('.datepicker-days tbody td:nth(26)'); - ok(!target.hasClass('disabled'), 'Specified date is enabled'); - target = picker.find('.datepicker-days tbody td:nth(27)'); - ok(!target.hasClass('disabled'), 'Next day is enabled'); -}); - -test('endDate', function(){ - var input = $('<input />') - .appendTo('#qunit-fixture') - .val('2012-10-26') - .datepicker({ - format: 'yyyy-mm-dd', - endDate: new Date(2012, 9, 26) - }), - dp = input.data('datepicker'), - picker = dp.picker, - target; - - input.focus(); - target = picker.find('.datepicker-days tbody td:nth(25)'); - ok(!target.hasClass('disabled'), 'Previous day is enabled'); - target = picker.find('.datepicker-days tbody td:nth(26)'); - ok(!target.hasClass('disabled'), 'Specified date is enabled'); - target = picker.find('.datepicker-days tbody td:nth(27)'); - ok(target.hasClass('disabled'), 'Next day is disabled'); -}); - -test('Multidate', function(){ - var input = $('<input />') - .appendTo('#qunit-fixture') - .val('2012-03-05') - .datepicker({ - format: 'yyyy-mm-dd', - multidate: true - }), - dp = input.data('datepicker'), - picker = dp.picker, - target; - - input.focus(); - - // Initial value is selected - ok(dp.dates.contains(UTCDate(2012, 2, 5)) !== -1, '2012-03-05 (initial date) in dates'); - - // Select first - target = picker.find('.datepicker-days tbody td:nth(7)'); - equal(target.text(), '4'); // Mar 4 - - target.click(); - datesEqual(dp.dates.get(-1), UTCDate(2012, 2, 4), '2012-03-04 in dates'); - datesEqual(dp.viewDate, UTCDate(2012, 2, 4)); - equal(input.val(), '2012-03-05,2012-03-04'); - - // Select second - target = picker.find('.datepicker-days tbody td:nth(15)'); - equal(target.text(), '12'); // Mar 12 - - target.click(); - datesEqual(dp.dates.get(-1), UTCDate(2012, 2, 12), '2012-03-12 in dates'); - datesEqual(dp.viewDate, UTCDate(2012, 2, 12)); - equal(input.val(), '2012-03-05,2012-03-04,2012-03-12'); - - // Deselect first - target = picker.find('.datepicker-days tbody td:nth(7)'); - equal(target.text(), '4'); // Mar 4 - - target.click(); - ok(dp.dates.contains(UTCDate(2012, 2, 4)) === -1, '2012-03-04 no longer in dates'); - datesEqual(dp.viewDate, UTCDate(2012, 2, 4)); - equal(input.val(), '2012-03-05,2012-03-12'); -}); - -test('Multidate with limit', function(){ - var input = $('<input />') - .appendTo('#qunit-fixture') - .val('2012-03-05') - .datepicker({ - format: 'yyyy-mm-dd', - multidate: 2 - }), - dp = input.data('datepicker'), - picker = dp.picker, - target; - - input.focus(); - - // Initial value is selected - ok(dp.dates.contains(UTCDate(2012, 2, 5)) !== -1, '2012-03-05 (initial date) in dates'); - - // Select first - target = picker.find('.datepicker-days tbody td:nth(7)'); - equal(target.text(), '4'); // Mar 4 - - target.click(); - datesEqual(dp.dates.get(-1), UTCDate(2012, 2, 4), '2012-03-04 in dates'); - datesEqual(dp.viewDate, UTCDate(2012, 2, 4)); - equal(input.val(), '2012-03-05,2012-03-04'); - - // Select second - target = picker.find('.datepicker-days tbody td:nth(15)'); - equal(target.text(), '12'); // Mar 12 - - target.click(); - datesEqual(dp.dates.get(-1), UTCDate(2012, 2, 12), '2012-03-12 in dates'); - datesEqual(dp.viewDate, UTCDate(2012, 2, 12)); - equal(input.val(), '2012-03-04,2012-03-12'); - - // Select third - target = picker.find('.datepicker-days tbody td:nth(20)'); - equal(target.text(), '17'); // Mar 17 - - target.click(); - datesEqual(dp.dates.get(-1), UTCDate(2012, 2, 17), '2012-03-17 in dates'); - ok(dp.dates.contains(UTCDate(2012, 2, 4)) === -1, '2012-03-04 no longer in dates'); - datesEqual(dp.viewDate, UTCDate(2012, 2, 17)); - equal(input.val(), '2012-03-12,2012-03-17'); -}); - -test('Multidate Separator', function(){ - var input = $('<input />') - .appendTo('#qunit-fixture') - .val('2012-03-05') - .datepicker({ - format: 'yyyy-mm-dd', - multidate: true, - multidateSeparator: ' ' - }), - dp = input.data('datepicker'), - picker = dp.picker, - target; - - input.focus(); - - // Select first - target = picker.find('.datepicker-days tbody td:nth(7)'); - equal(target.text(), '4'); // Mar 4 - - target.click(); - equal(input.val(), '2012-03-05 2012-03-04'); - - // Select second - target = picker.find('.datepicker-days tbody td:nth(15)'); - equal(target.text(), '12'); // Mar 12 - - target.click(); - equal(input.val(), '2012-03-05 2012-03-04 2012-03-12'); -}); - - -test("Picker is shown on input focus when showOnFocus is not defined", function () { - - var input = $('<input />') - .appendTo('#qunit-fixture') - .val('2014-01-01') - .datepicker({ - }), - dp = input.data('datepicker'), - picker = dp.picker; - - input.focus(); - - ok(picker.is(":visible"), "Datepicker is visible"); - -}); - -test("Picker is shown on input focus when showOnFocus is true", function () { - - var input = $('<input />') - .appendTo('#qunit-fixture') - .val('2014-01-01') - .datepicker({ - showOnFocus: true - }), - dp = input.data('datepicker'), - picker = dp.picker; - - input.focus(); - - ok(picker.is(":visible"), "Datepicker is visible"); - -}); - -test("Picker is hidden on input focus when showOnFocus is false", function () { - - var input = $('<input />') - .appendTo('#qunit-fixture') - .val('2014-01-01') - .datepicker({ - showOnFocus: false - }), - dp = input.data('datepicker'), - picker = dp.picker; - - input.focus(); - - ok(picker.is(":hidden"), "Datepicker is hidden"); - -}); - -test('Container', function(){ - var testContainer = $('<div class="date-picker-container"/>') - .appendTo('#qunit-fixture'), - input = $('<input />') - .appendTo('#qunit-fixture') - .val('2012-10-26') - .datepicker({ - format: 'yyyy-mm-dd', - container: '.date-picker-container', - startDate: new Date(2012, 9, 26) - }), - dp = input.data('datepicker'), - target = dp.picker; - input.focus(); - equal(target.parent()[0], testContainer[0], 'Container is not the testContainer that was specificed'); -}); - -test('Default View Date (Object)', function(){ - var input = $('<input />') - .appendTo('#qunit-fixture') - .datepicker({ - format: 'yyyy-mm-dd', - defaultViewDate: { year: 1977, month: 04, day: 25 } - }), - dp = input.data('datepicker'), - picker = dp.picker, - target; - - input.focus(); - - equal(picker.find('.datepicker-days thead .datepicker-switch').text(), 'May 1977'); -}); - -test('Default View Date (Date)', function(){ - var input = $('<input />') - .appendTo('#qunit-fixture') - .datepicker({ - format: 'yyyy-mm-dd', - defaultViewDate: new Date(1977, 4, 25) - }), - dp = input.data('datepicker'), - picker = dp.picker, - target; - - input.focus(); - - equal(picker.find('.datepicker-days thead .datepicker-switch').text(), 'May 1977'); -}); - -test('Default View Date (String)', function(){ - var input = $('<input />') - .appendTo('#qunit-fixture') - .datepicker({ - format: 'yyyy-mm-dd', - defaultViewDate: "1977-05-24" - }), - dp = input.data('datepicker'), - picker = dp.picker, - target; - - input.focus(); - - equal(picker.find('.datepicker-days thead .datepicker-switch').text(), 'May 1977'); -}); - -test('Immediate Updates', function(){ - var input = $('<input />') - .appendTo('#qunit-fixture') - .val('2014-01-01') - .datepicker({ - format: 'yyyy-mm-dd', - immediateUpdates: true - }), - dp = input.data('datepicker'), - picker = dp.picker; - - // Change month - input.focus(); - picker.find('.datepicker-days .next').click(); - equal(input.val(), '2014-02-01'); - - // Change year - picker.find('.datepicker-days .datepicker-switch').click(); - picker.find('.datepicker-months .next').click(); - equal(input.val(), '2015-02-01'); - - // Change decade set (doesn't update input) - picker.find('.datepicker-months .datepicker-switch').click(); - picker.find('.datepicker-years .next').click(); - equal(input.val(), '2015-02-01'); - - // Change century set (doesn't update input) - picker.find('.datepicker-years .datepicker-switch').click(); - picker.find('.datepicker-decades .next').click(); - equal(input.val(), '2015-02-01'); - - // Change millennium set (doesn't update input) - picker.find('.datepicker-decades .datepicker-switch').click(); - picker.find('.datepicker-centuries .next').click(); - equal(input.val(), '2015-02-01'); -}); - -test('forceParse: false on enter on invalid date', function () { - var input = $('<input />') - .appendTo('#qunit-fixture') - .val('123456789') - .datepicker({forceParse: false}) - .focus(); - - input.trigger({ - type: 'keydown', - keyCode: 13, - shiftKey: false - }); - - equal(input.val(), '123456789', 'date not parsed'); -}); - -test('forceParse: false on mousedown on invalid date', function () { - var input = $('<input />') - .appendTo('#qunit-fixture') - .val('123456789') - .datepicker({forceParse: false}) - .focus(); - - $(document).trigger({ - type: 'mousedown' - }); - - equal(input.val(), '123456789', 'date not parsed'); -}); - -//datepicker-dropdown - -test('Enable on readonly options (default)', function(){ - var input = $('<input readonly="readonly" />') - .appendTo('#qunit-fixture') - .datepicker({format: "dd-mm-yyyy"}), - dp = input.data('datepicker'), - picker = dp.picker; - - ok(!picker.is(':visible')); - input.focus(); - ok(picker.is(':visible')); -}); - -test('Enable on readonly options (false)', function(){ - var input = $('<input readonly="readonly" />') - .appendTo('#qunit-fixture') - .datepicker({ - format: "dd-mm-yyyy", - enableOnReadonly: false - }), - dp = input.data('datepicker'), - picker = dp.picker; - - ok(!picker.is(':visible')); - input.focus(); - ok(!picker.is(':visible')); -}); - -test('Startview: year view visible after date pick', function(){ - var input = $('<input />') - .appendTo('#qunit-fixture') - .datepicker({ - startView: 2, - minViewMode: 1, - autoclose: true - }), - dp = input.data('datepicker'), - picker = dp.picker, - target; - - input.focus(); - ok(picker.find('.datepicker-days').is(':not(:visible)'), 'Days view hidden'); - ok(picker.find('.datepicker-months').is(':not(:visible)'), 'Months view hidden'); - ok(picker.find('.datepicker-years').is(':visible'), 'Years view visible'); - - target = picker.find('.datepicker-years tbody td:nth(7)'); - target.click(); - target = picker.find('.datepicker-years tbody td:nth(4)'); - target.click(); - target = picker.find('.datepicker-years tbody td:nth(20)'); - target.click(); - - input.focus(); - ok(picker.find('.datepicker-days').is(':not(:visible)'), 'Days view hidden'); - ok(picker.find('.datepicker-months').is(':not(:visible)'), 'Months view hidden'); - ok(picker.find('.datepicker-years').is(':visible'), 'Years view visible'); -}); - -test('Title: none', function(){ - var input = $('<input />') - .appendTo('#qunit-fixture') - .datepicker({ - format: 'yyyy-mm-dd' - }), - dp = input.data('datepicker'), - picker = dp.picker, - target; - - input.focus(); - ok(picker.is(':visible'), 'Picker is visible'); - - target = picker.find('.datepicker-days thead .datepicker-title'); - ok(target.is(':not(:visible)'), 'Title is hidden'); -}); - -test('Title: with value', function(){ - var input = $('<input />') - .appendTo('#qunit-fixture') - .datepicker({ - format: 'yyyy-mm-dd', - title: 'Some Title' - }), - dp = input.data('datepicker'), - picker = dp.picker, - target; - - input.focus(); - ok(picker.is(':visible'), 'Picker is visible'); - - target = picker.find('.datepicker-days thead .datepicker-title'); - ok(target.is(':visible'), 'Title is visible'); - equal(target.text(), 'Some Title'); -}); - -test('i18n: Leverage i18n titleFormat when available.', patch_date(function(Date){ - var input = $('<input />') - .appendTo('#qunit-fixture') - .val('2015年04月21日') - .datepicker({ - language: 'zh-CN' - }), - dp = input.data('datepicker'), - picker = dp.picker; - - input.focus(); - equal(picker.find('.datepicker-days thead .datepicker-switch').text(), '2015年04月', 'Title is in Chinese: 2015年04月'); -})); - -test('i18n: Leverage English (default) i18n titleFormat when translation key for specified language is not available.', patch_date(function(Date){ - var input = $('<input />') - .appendTo('#qunit-fixture') - .val('04/21/2015') - .datepicker({ - language: 'aa-BB' - }), - dp = input.data('datepicker'), - picker = dp.picker; - - input.focus(); - equal(picker.find('.datepicker-days thead .datepicker-switch').text(), 'April 2015', 'Title is in default format: April 2015'); -})); - -test('Z-index Offset: none', function(){ - var input = $('<input />') - .appendTo('#qunit-fixture') - .datepicker(), - dp = input.data('datepicker'), - picker = dp.picker; - - input.parent().css('z-index', 234); - input.focus(); - - equal(dp.o.zIndexOffset, 10, 'Z-index offset option defaults to 10.'); - equal(picker.css('z-index'), 244, 'Picker Z-index offset is respected.'); -}); - -test('Z-index Offset: with value', function(){ - var input = $('<input />') - .appendTo('#qunit-fixture') - .datepicker({ - zIndexOffset: 1000 - }), - dp = input.data('datepicker'), - picker = dp.picker; - - input.parent().css('z-index', 234); - input.focus(); - - equal(dp.o.zIndexOffset, 1000, 'Z-index offset option is accepted.'); - equal(picker.css('z-index'), 1234, 'Picker Z-index offset is respected.'); -}); - -test('templates', function(){ - var input = $('<input />') - .appendTo('#qunit-fixture') - .datepicker({ - templates: { - leftArrow: '<span class="glyphicon glyphicon-arrow-left"></span>', - rightArrow: '</table>' - } - }), - dp = input.data('datepicker'), - picker = dp.picker; - - input.focus(); - equal(picker.find('.datepicker-days .prev').prop('innerHTML'), '<span class="glyphicon glyphicon-arrow-left"></span>'); - equal(picker.find('.datepicker-days .next').prop('innerHTML'), $('<div>').html('&raquo;').text()); -}); - -test('Nav arrow html templates with span tag', function () { - var input = $('<input />') - .appendTo('#qunit-fixture') - .val('2012-10-26') - .datepicker({ - format: 'yyyy-mm-dd', - templates: { - leftArrow: '<span></span>', - rightArrow: '<span></span>' - } - }), - dp = input.data('datepicker'), - picker = dp.picker, - target; - - input.focus(); - target = picker.find('.datepicker-months tbody span:nth(9)'); - ok(target.hasClass('active'), 'Month is selected'); -}); - -test('Nav arrow html templates .prev click', function () { - var input = $('<input />') - .appendTo('#qunit-fixture') - .val('2012-10-26') - .datepicker({ - format: 'yyyy-mm-dd', - startView: 1, - templates: { - leftArrow: '<i></i>' - } - }), - dp = input.data('datepicker'), - picker = dp.picker, - target; - - input.focus(); - picker.find('.datepicker-months thead .prev i').trigger('click'); - target = picker.find('.datepicker-months thead .datepicker-switch'); - equal(target.text(), '2011'); -}); - -test('Visibility of the prev and next arrows for decade/century/millenium views with startDate and endDate', function(){ - var input = $('<input />') - .appendTo('#qunit-fixture') - .val('01/01/2015') - .datepicker({ - format: 'dd/mm/yyyy', - startView: 2, - startDate: '01/12/2014', - endDate: '01/12/2016' - }), - dp = input.data('datepicker'), - picker = dp.picker, - target; - - input.focus(); - - target = picker.find('.datepicker-years thead th.prev'); - ok(target.hasClass('disabled'), 'Prev switcher is hidden'); - target = picker.find('.datepicker-years thead th.next'); - ok(target.hasClass('disabled'), 'Next switcher is hidden'); - - picker.find('.datepicker-years thead th.datepicker-switch').click(); - target = picker.find('.datepicker-decades thead th.prev'); - ok(target.hasClass('disabled'), 'Prev switcher is hidden'); - target = picker.find('.datepicker-decades thead th.next'); - ok(target.hasClass('disabled'), 'Next switcher is hidden'); - - picker.find('.datepicker-decades thead th.datepicker-switch').click(); - target = picker.find('.datepicker-centuries thead th.prev'); - ok(target.hasClass('disabled'), 'Prev switcher is hidden'); - target = picker.find('.datepicker-centuries thead th.next'); - ok(target.hasClass('disabled'), 'Next switcher is hidden'); -}); - -test('date cells (outdated)', function(){ - var input = $('<input />') - .appendTo('#qunit-fixture') - .datepicker(), - dp = input.data('datepicker'), - picker = dp.picker; - - input.focus(); - picker.find('.datepicker-days .day').each(function(){ - ok(this.hasAttribute('data-date')); - }); -}); - -test('keepEmptyValues: none (default is false)', function() { - var proxy_element = $('<div />').appendTo('#qunit-fixture'), - input_from = $('<input />').val('2016-04-01').appendTo('#qunit-fixture'), - input_to = $('<input />').appendTo('#qunit-fixture'), - dp = proxy_element.datepicker({ - format: 'yyyy-mm-dd', - inputs: [input_from, input_to] - }), - input_from_dp = input_from.data('datepicker'); - - input_from.focus(); - input_from_dp.picker.find('.old.day').eq(0).click(); - - equal(input_from.val(), '2016-03-27'); - equal(input_to.val(), '2016-03-27', 'Input_from value should be distributed.'); -}); - -test('keepEmptyValues: true', function() { - var proxy_element = $('<div />').appendTo('#qunit-fixture'), - input_from = $('<input />').val('2016-04-01').appendTo('#qunit-fixture'), - input_to = $('<input />').appendTo('#qunit-fixture'), - dp = proxy_element.datepicker({ - format: 'yyyy-mm-dd', - inputs: [input_from, input_to], - keepEmptyValues: true - }), - input_from_dp = input_from.data('datepicker'); - - input_from.focus(); - input_from_dp.picker.find('.old.day').eq(0).click(); - - equal(input_from.val(), '2016-03-27'); - equal(input_to.val(), '', 'Input_from value should not be distributed.'); -}); - -test('maxViewMode and navigation switch', function(){ - var input = $('<input />') - .appendTo('#qunit-fixture') - .datepicker({ - maxViewMode: 0 - }), - dp = input.data('datepicker'), - picker = dp.picker; - - input.focus(); - - picker.find('.datepicker-days thead th.datepicker-switch').click(); - ok(picker.find('.datepicker-days').is(':visible'), 'Days view visible'); -}); - -test('updateViewDate', function() { - expect(8); - - var input = $('<input value="08/03/1990"/>') - .appendTo('#qunit-fixture') - .datepicker({ - defaultViewDate: { - year: 1945, - month: 4, - day: 8 - }, - updateViewDate: false - }) - .on('changeMonth', function() { - var msg = shouldTriggerChangeMonth ? 'changeMonth must be triggered' : 'changeMonth must not be triggered'; - ok(shouldTriggerChangeMonth, msg); - }) - .on('changeYear', function() { - var msg = shouldTriggerChangeYear ? 'changeYear must be triggered' : 'changeYear must not be triggered'; - ok(shouldTriggerChangeYear, msg); - }), - dp = input.data('datepicker'), - picker = dp.picker, - shouldTriggerChangeMonth = false, - shouldTriggerChangeYear = false, - monthShown = picker.find('.datepicker-days thead th.datepicker-switch'); - - equal(monthShown.text(), "May 1945", 'uses defaultViewDate on initialization'); - input.datepicker('setDate', new Date(1945, 8, 2)); - equal(monthShown.text(), "May 1945", 'does not change viewDate on `setDate` method'); - input.focus(); - picker.find('.datepicker-days tbody tr td.day.new:first').click(); - equal(monthShown.text(), "May 1945", 'does not change viewDate if a day in next month is selected'); - shouldTriggerChangeMonth = true; - picker.find('.datepicker-days thead th.next').click(); - equal(monthShown.text(), 'June 1945', 'changing month must still be possible'); // and must trigger `changeMonth` event - shouldTriggerChangeYear = true; - picker.find('.datepicker-days thead th.datepicker-switch').click(); - picker.find('.datepicker-months thead th.next').click(); - picker.find('.datepicker-months tbody .month:first').click(); - equal(monthShown.text(), 'January 1946', 'changing year must still be possible'); // and must trigger `changeYear` and `changeMonth` events -}); -test('Week Days: Week days default visibility (or enabled)', function(){ - var input = $('<input />') - .appendTo('#qunit-fixture') - .val('2012-03-05') - .datepicker({ - format: 'yyyy-mm-dd' - }), - dp = input.data('datepicker'), - picker = dp.picker, - target; - - input.focus(); - ok(picker.find('.dow').length > 0, 'Week days added to view'); -}); -test('Week Days: Week days visibility when disabled', function(){ - var input = $('<input />') - .appendTo('#qunit-fixture') - .val('2012-03-05') - .datepicker({ - format: 'yyyy-mm-dd', - showWeekDays: false - }), - dp = input.data('datepicker'), - picker = dp.picker, - target; - - input.focus(); - ok(picker.find('.dow').length === 0, 'Week days not added to view'); -}); diff --git a/admin/bower_components/bootstrap-datepicker/tests/suites/timezone.js b/admin/bower_components/bootstrap-datepicker/tests/suites/timezone.js deleted file mode 100644 index f522c5c..0000000 --- a/admin/bower_components/bootstrap-datepicker/tests/suites/timezone.js +++ /dev/null @@ -1,24 +0,0 @@ -module('Component', { - setup: function(){ - this.component = $('<div class="input-append date" id="datepicker">'+ - '<input type="text">'+ - '</div>') - .appendTo('#qunit-fixture') - .datepicker(); - this.dp = this.component.data('datepicker'); - this.picker = this.dp.picker; - }, - teardown: function(){ - this.picker.remove(); - } -}); - -test('Check title with timezone', function(){ - var target; - - this.dp.viewDate = UTCDate(2015, 7, 1); - this.dp.fill(); - - target = this.picker.find('.datepicker-days .datepicker-switch'); - equal(target.text(), 'August 2015', 'Title is "August 2015"'); -}); diff --git a/admin/bower_components/bootstrap-datepicker/tests/suites/touch_navigation/all.js b/admin/bower_components/bootstrap-datepicker/tests/suites/touch_navigation/all.js deleted file mode 100644 index 99b570d..0000000 --- a/admin/bower_components/bootstrap-datepicker/tests/suites/touch_navigation/all.js +++ /dev/null @@ -1,27 +0,0 @@ -module('Touch Navigation (All)', { - setup: function(){ - this.input = $('<input type="text">') - .appendTo('#qunit-fixture') - .datepicker({format: "dd-mm-yyyy"}) - .focus(); // Activate for visibility checks - this.dp = this.input.data('datepicker'); - this.picker = this.dp.picker; - }, - teardown: function(){ - this.picker.remove(); - } -}); - -test('Tapping outside datepicker hides datepicker', function(){ - var $otherelement = $('<div />'); - $('body').append($otherelement); - - ok(this.picker.is(':visible'), 'Picker is visible'); - this.input.trigger('click'); - ok(this.picker.is(':visible'), 'Picker is still visible'); - - $otherelement.trigger('touchstart'); - ok(this.picker.is(':not(:visible)'), 'Picker is hidden'); - - $otherelement.remove(); -}); diff --git a/admin/bower_components/bootstrap-datepicker/tests/tests.html b/admin/bower_components/bootstrap-datepicker/tests/tests.html deleted file mode 100644 index 2f4c6da..0000000 --- a/admin/bower_components/bootstrap-datepicker/tests/tests.html +++ /dev/null @@ -1,55 +0,0 @@ -<!DOCTYPE html> -<html> - <head> - <meta charset="utf-8"> - <link rel="stylesheet" href="assets/qunit.css" /> - <script src="assets/qunit.js"></script> - <!-- console.log for test failures: enable locally if you need extra debug info--> - <!--<script src="assets/qunit-logging.js"></script>--> - <script src="assets/jquery-1.7.1.min.js"></script> - <script src="../js/bootstrap-datepicker.js"></script> - <!-- This locale is included to test usage of titleFormat when available: see tests/suites/options.js --> - <script src="../js/locales/bootstrap-datepicker.zh-CN.js"></script> - - <style> - .datepicker { - /* Appended to body, abs-pos off the page */ - position: absolute; - display: none; - top: -9999em; - left: -9999em; - } - </style> - - <!-- Utilities --> - <script src="assets/utils.js"></script> - <script src="assets/mock.js"></script> - - <!-- Test suites --> - <script src="suites/formats.js"></script> - <script src="suites/mouse_navigation/all.js"></script> - <script src="suites/mouse_navigation/2012.js"></script> - <script src="suites/mouse_navigation/2011.js"></script> - <script src="suites/keyboard_navigation/all.js"></script> - <script src="suites/keyboard_navigation/2012.js"></script> - <script src="suites/keyboard_navigation/2011.js"></script> - <script src="suites/touch_navigation/all.js"></script> - <script src="suites/component.js"></script> - <script src="suites/events.js"></script> - <script src="suites/options.js"></script> - <script src="suites/inline.js"></script> - <script src="suites/calendar-weeks.js"></script> - <script src="suites/data-api.js"></script> - <script src="suites/noconflict.js"></script> - <script src="suites/methods.js"></script> - <script src="suites/methods_jquery.js"></script> - </head> - <body> - <h1 id="qunit-header">bootstrap-datepicker</h1> - <h2 id="qunit-banner"></h2> - <div id="qunit-testrunner-toolbar"></div> - <h2 id="qunit-userAgent"></h2> - <ol id="qunit-tests"></ol> - <div id="qunit-fixture"></div> - </body> -</html> diff --git a/admin/bower_components/bootstrap-datepicker/tests/timezone.html b/admin/bower_components/bootstrap-datepicker/tests/timezone.html deleted file mode 100644 index 5cb15fa..0000000 --- a/admin/bower_components/bootstrap-datepicker/tests/timezone.html +++ /dev/null @@ -1,36 +0,0 @@ -<!DOCTYPE html> -<html> - <head> - <meta charset="utf-8"> - <link rel="stylesheet" href="assets/qunit.css"> - <script src="assets/qunit.js"></script> - <!-- console.log for test failures: enable locally if you need extra debug info--> - <!--<script src="assets/qunit-logging.js"></script>--> - <script src="assets/jquery-1.7.1.min.js"></script> - <script src="../js/bootstrap-datepicker.js"></script> - - <style> - .datepicker { - /* Appended to body, abs-pos off the page */ - position: absolute; - display: none; - top: -9999em; - left: -9999em; - } - </style> - - <!-- Utilities --> - <script src="assets/utils.js"></script> - - <!-- Test suites --> - <script src="suites/timezone.js"></script> - </head> - <body> - <h1 id="qunit-header">bootstrap-datepicker</h1> - <h2 id="qunit-banner"></h2> - <div id="qunit-testrunner-toolbar"></div> - <h2 id="qunit-userAgent"></h2> - <ol id="qunit-tests"></ol> - <div id="qunit-fixture"></div> - </body> -</html> diff --git a/admin/bower_components/bootstrap-datepicker/yarn.lock b/admin/bower_components/bootstrap-datepicker/yarn.lock deleted file mode 100644 index 2e8ec4d..0000000 --- a/admin/bower_components/bootstrap-datepicker/yarn.lock +++ /dev/null @@ -1,1963 +0,0 @@ -# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. -# yarn lockfile v1 - - -"JSV@>= 4.0.x": - version "4.0.2" - resolved "https://registry.yarnpkg.com/JSV/-/JSV-4.0.2.tgz#d077f6825571f82132f9dffaed587b4029feff57" - -abbrev@1: - version "1.0.9" - resolved "https://registry.yarnpkg.com/abbrev/-/abbrev-1.0.9.tgz#91b4792588a7738c25f35dd6f63752a2f8776135" - -align-text@^0.1.1, align-text@^0.1.3: - version "0.1.4" - resolved "https://registry.yarnpkg.com/align-text/-/align-text-0.1.4.tgz#0cd90a561093f35d0a99256c22b7069433fad117" - dependencies: - kind-of "^3.0.2" - longest "^1.0.1" - repeat-string "^1.5.2" - -amdefine@>=0.0.4: - version "1.0.1" - resolved "https://registry.yarnpkg.com/amdefine/-/amdefine-1.0.1.tgz#4a5282ac164729e93619bcfd3ad151f817ce91f5" - -ansi-regex@^2.0.0: - version "2.1.1" - resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-2.1.1.tgz#c3b33ab5ee360d86e0e628f0468ae7ef27d654df" - -ansi-styles@^2.2.1: - version "2.2.1" - resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-2.2.1.tgz#b432dd3358b634cf75e1e4664368240533c1ddbe" - -ansi-styles@~1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-1.0.0.tgz#cb102df1c56f5123eab8b67cd7b98027a0279178" - -archiver-utils@^1.3.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/archiver-utils/-/archiver-utils-1.3.0.tgz#e50b4c09c70bf3d680e32ff1b7994e9f9d895174" - dependencies: - glob "^7.0.0" - graceful-fs "^4.1.0" - lazystream "^1.0.0" - lodash "^4.8.0" - normalize-path "^2.0.0" - readable-stream "^2.0.0" - -archiver@^1.0.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/archiver/-/archiver-1.3.0.tgz#4f2194d6d8f99df3f531e6881f14f15d55faaf22" - dependencies: - archiver-utils "^1.3.0" - async "^2.0.0" - buffer-crc32 "^0.2.1" - glob "^7.0.0" - lodash "^4.8.0" - readable-stream "^2.0.0" - tar-stream "^1.5.0" - walkdir "^0.0.11" - zip-stream "^1.1.0" - -argparse@^1.0.2: - version "1.0.9" - resolved "https://registry.yarnpkg.com/argparse/-/argparse-1.0.9.tgz#73d83bc263f86e97f8cc4f6bae1b0e90a7d22c86" - dependencies: - sprintf-js "~1.0.2" - -array-differ@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/array-differ/-/array-differ-1.0.0.tgz#eff52e3758249d33be402b8bb8e564bb2b5d4031" - -array-find-index@^1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/array-find-index/-/array-find-index-1.0.2.tgz#df010aa1287e164bbda6f9723b0a96a1ec4187a1" - -array-union@^1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/array-union/-/array-union-1.0.2.tgz#9a34410e4f4e3da23dea375be5be70f24778ec39" - dependencies: - array-uniq "^1.0.1" - -array-uniq@^1.0.1: - version "1.0.3" - resolved "https://registry.yarnpkg.com/array-uniq/-/array-uniq-1.0.3.tgz#af6ac877a25cc7f74e058894753858dfdb24fdb6" - -arrify@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/arrify/-/arrify-1.0.1.tgz#898508da2226f380df904728456849c1501a4b0d" - -asap@~2.0.3: - version "2.0.5" - resolved "https://registry.yarnpkg.com/asap/-/asap-2.0.5.tgz#522765b50c3510490e52d7dcfe085ef9ba96958f" - -asn1@~0.2.3: - version "0.2.3" - resolved "https://registry.yarnpkg.com/asn1/-/asn1-0.2.3.tgz#dac8787713c9966849fc8180777ebe9c1ddf3b86" - -assert-plus@^0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/assert-plus/-/assert-plus-0.2.0.tgz#d74e1b87e7affc0db8aadb7021f3fe48101ab234" - -assert-plus@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/assert-plus/-/assert-plus-1.0.0.tgz#f12e0f3c5d77b0b1cdd9146942e4e96c1e4dd525" - -async@0.2.x, async@~0.2.6, async@~0.2.9: - version "0.2.10" - resolved "https://registry.yarnpkg.com/async/-/async-0.2.10.tgz#b6bbe0b0674b9d719708ca38de8c237cb526c3d1" - -async@^1.5.2, async@~1.5.2: - version "1.5.2" - resolved "https://registry.yarnpkg.com/async/-/async-1.5.2.tgz#ec6a61ae56480c0c3cb241c95618e20892f9672a" - -async@^2.0.0: - version "2.1.4" - resolved "https://registry.yarnpkg.com/async/-/async-2.1.4.tgz#2d2160c7788032e4dd6cbe2502f1f9a2c8f6cde4" - dependencies: - lodash "^4.14.0" - -asynckit@^0.4.0: - version "0.4.0" - resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79" - -aws-sign2@~0.6.0: - version "0.6.0" - resolved "https://registry.yarnpkg.com/aws-sign2/-/aws-sign2-0.6.0.tgz#14342dd38dbcc94d0e5b87d763cd63612c0e794f" - -aws4@^1.2.1: - version "1.5.0" - resolved "https://registry.yarnpkg.com/aws4/-/aws4-1.5.0.tgz#0a29ffb79c31c9e712eeb087e8e7a64b4a56d755" - -babel-runtime@^6.9.2: - version "6.22.0" - resolved "https://registry.yarnpkg.com/babel-runtime/-/babel-runtime-6.22.0.tgz#1cf8b4ac67c77a4ddb0db2ae1f74de52ac4ca611" - dependencies: - core-js "^2.4.0" - regenerator-runtime "^0.10.0" - -babylon@^6.8.1: - version "6.15.0" - resolved "https://registry.yarnpkg.com/babylon/-/babylon-6.15.0.tgz#ba65cfa1a80e1759b0e89fb562e27dccae70348e" - -balanced-match@^0.4.1: - version "0.4.2" - resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-0.4.2.tgz#cb3f3e3c732dc0f01ee70b403f302e61d7709838" - -bcrypt-pbkdf@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.0.tgz#3ca76b85241c7170bf7d9703e7b9aa74630040d4" - dependencies: - tweetnacl "^0.14.3" - -bl@^1.0.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/bl/-/bl-1.2.0.tgz#1397e7ec42c5f5dc387470c500e34a9f6be9ea98" - dependencies: - readable-stream "^2.0.5" - -boom@2.x.x: - version "2.10.1" - resolved "https://registry.yarnpkg.com/boom/-/boom-2.10.1.tgz#39c8918ceff5799f83f9492a848f625add0c766f" - dependencies: - hoek "2.x.x" - -brace-expansion@^1.0.0: - version "1.1.6" - resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.6.tgz#7197d7eaa9b87e648390ea61fc66c84427420df9" - dependencies: - balanced-match "^0.4.1" - concat-map "0.0.1" - -browserify-zlib@^0.1.4: - version "0.1.4" - resolved "https://registry.yarnpkg.com/browserify-zlib/-/browserify-zlib-0.1.4.tgz#bb35f8a519f600e0fa6b8485241c979d0141fb2d" - dependencies: - pako "~0.2.0" - -buffer-crc32@^0.2.1: - version "0.2.13" - resolved "https://registry.yarnpkg.com/buffer-crc32/-/buffer-crc32-0.2.13.tgz#0d333e3f00eac50aa1454abd30ef8c2a5d9a7242" - -buffer-shims@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/buffer-shims/-/buffer-shims-1.0.0.tgz#9978ce317388c649ad8793028c3477ef044a8b51" - -builtin-modules@^1.0.0: - version "1.1.1" - resolved "https://registry.yarnpkg.com/builtin-modules/-/builtin-modules-1.1.1.tgz#270f076c5a72c02f5b65a47df94c5fe3a278892f" - -camelcase-keys@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/camelcase-keys/-/camelcase-keys-2.1.0.tgz#308beeaffdf28119051efa1d932213c91b8f92e7" - dependencies: - camelcase "^2.0.0" - map-obj "^1.0.0" - -camelcase@^1.0.2: - version "1.2.1" - resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-1.2.1.tgz#9bb5304d2e0b56698b2c758b08a3eaa9daa58a39" - -camelcase@^2.0.0: - version "2.1.1" - resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-2.1.1.tgz#7c1d16d679a1bbe59ca02cacecfb011e201f5a1f" - -caseless@~0.11.0: - version "0.11.0" - resolved "https://registry.yarnpkg.com/caseless/-/caseless-0.11.0.tgz#715b96ea9841593cc33067923f5ec60ebda4f7d7" - -center-align@^0.1.1: - version "0.1.3" - resolved "https://registry.yarnpkg.com/center-align/-/center-align-0.1.3.tgz#aa0d32629b6ee972200411cbd4461c907bc2b7ad" - dependencies: - align-text "^0.1.3" - lazy-cache "^1.0.3" - -chalk@^1.0.0, chalk@^1.1.0, chalk@^1.1.1, chalk@~1.1.0, chalk@~1.1.1: - version "1.1.3" - resolved "https://registry.yarnpkg.com/chalk/-/chalk-1.1.3.tgz#a8115c55e4a702fe4d150abd3872822a7e09fc98" - dependencies: - ansi-styles "^2.2.1" - escape-string-regexp "^1.0.2" - has-ansi "^2.0.0" - strip-ansi "^3.0.0" - supports-color "^2.0.0" - -chalk@~0.4.0: - version "0.4.0" - resolved "https://registry.yarnpkg.com/chalk/-/chalk-0.4.0.tgz#5199a3ddcd0c1efe23bc08c1b027b06176e0c64f" - dependencies: - ansi-styles "~1.0.0" - has-color "~0.1.0" - strip-ansi "~0.1.0" - -clean-css@~3.4.2: - version "3.4.24" - resolved "https://registry.yarnpkg.com/clean-css/-/clean-css-3.4.24.tgz#89f5a5e9da37ae02394fe049a41388abbe72c3b5" - dependencies: - commander "2.8.x" - source-map "0.4.x" - -cli-table@~0.3.1: - version "0.3.1" - resolved "https://registry.yarnpkg.com/cli-table/-/cli-table-0.3.1.tgz#f53b05266a8b1a0b934b3d0821e6e2dc5914ae23" - dependencies: - colors "1.0.3" - -cli@~1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/cli/-/cli-1.0.1.tgz#22817534f24bfa4950c34d532d48ecbc621b8c14" - dependencies: - exit "0.1.2" - glob "^7.1.1" - -cliui@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/cliui/-/cliui-2.1.0.tgz#4b475760ff80264c762c3a1719032e91c7fea0d1" - dependencies: - center-align "^0.1.1" - right-align "^0.1.1" - wordwrap "0.0.2" - -clone@~2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/clone/-/clone-2.1.0.tgz#9c715bfbd39aa197c8ee0f8e65c3912ba34f8cd6" - -coffee-script@~1.10.0: - version "1.10.0" - resolved "https://registry.yarnpkg.com/coffee-script/-/coffee-script-1.10.0.tgz#12938bcf9be1948fa006f92e0c4c9e81705108c0" - -colors@0.6.x: - version "0.6.2" - resolved "https://registry.yarnpkg.com/colors/-/colors-0.6.2.tgz#2423fe6678ac0c5dae8852e5d0e5be08c997abcc" - -colors@1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/colors/-/colors-1.0.3.tgz#0433f44d809680fdeb60ed260f1b0c262e82a40b" - -colors@~1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/colors/-/colors-1.1.2.tgz#168a4701756b6a7f51a12ce0c97bfa28c084ed63" - -combined-stream@^1.0.5, combined-stream@~1.0.5: - version "1.0.5" - resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.5.tgz#938370a57b4a51dea2c77c15d5c5fdf895164009" - dependencies: - delayed-stream "~1.0.0" - -commander@2.8.x: - version "2.8.1" - resolved "https://registry.yarnpkg.com/commander/-/commander-2.8.1.tgz#06be367febfda0c330aa1e2a072d3dc9762425d4" - dependencies: - graceful-readlink ">= 1.0.0" - -commander@^2.9.0, commander@~2.9.0: - version "2.9.0" - resolved "https://registry.yarnpkg.com/commander/-/commander-2.9.0.tgz#9c99094176e12240cb22d6c5146098400fe0f7d4" - dependencies: - graceful-readlink ">= 1.0.0" - -comment-parser@^0.3.1: - version "0.3.1" - resolved "https://registry.yarnpkg.com/comment-parser/-/comment-parser-0.3.1.tgz#fd657aac8c1492d308c9a6100fc9b49d2435aba1" - dependencies: - readable-stream "^2.0.4" - -compress-commons@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/compress-commons/-/compress-commons-1.1.0.tgz#9f4460bb1288564c7473916e0298aa3c320dcadb" - dependencies: - buffer-crc32 "^0.2.1" - crc32-stream "^1.0.0" - normalize-path "^2.0.0" - readable-stream "^2.0.0" - -concat-map@0.0.1: - version "0.0.1" - resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" - -concat-stream@1.5.0, concat-stream@^1.4.1: - version "1.5.0" - resolved "https://registry.yarnpkg.com/concat-stream/-/concat-stream-1.5.0.tgz#53f7d43c51c5e43f81c8fdd03321c631be68d611" - dependencies: - inherits "~2.0.1" - readable-stream "~2.0.0" - typedarray "~0.0.5" - -console-browserify@1.1.x: - version "1.1.0" - resolved "https://registry.yarnpkg.com/console-browserify/-/console-browserify-1.1.0.tgz#f0241c45730a9fc6323b206dbf38edc741d0bb10" - dependencies: - date-now "^0.1.4" - -core-js@^2.4.0: - version "2.4.1" - resolved "https://registry.yarnpkg.com/core-js/-/core-js-2.4.1.tgz#4de911e667b0eae9124e34254b53aea6fc618d3e" - -core-util-is@~1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7" - -crc32-stream@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/crc32-stream/-/crc32-stream-1.0.1.tgz#ce2c5dc3bd8ffb3830f9cb47f540222c63c90fab" - dependencies: - crc "^3.4.4" - readable-stream "^2.0.0" - -crc@^3.4.4: - version "3.4.4" - resolved "https://registry.yarnpkg.com/crc/-/crc-3.4.4.tgz#9da1e980e3bd44fc5c93bf5ab3da3378d85e466b" - -cryptiles@2.x.x: - version "2.0.5" - resolved "https://registry.yarnpkg.com/cryptiles/-/cryptiles-2.0.5.tgz#3bdfecdc608147c1c67202fa291e7dca59eaa3b8" - dependencies: - boom "2.x.x" - -csslint@^1.0.0: - version "1.0.5" - resolved "https://registry.yarnpkg.com/csslint/-/csslint-1.0.5.tgz#19cc3eda322160fd3f7232af1cb2a360e898a2e9" - dependencies: - clone "~2.1.0" - parserlib "~1.1.1" - -cst@^0.4.3: - version "0.4.9" - resolved "https://registry.yarnpkg.com/cst/-/cst-0.4.9.tgz#51af14213bf5f8e8e715966ac645e1e2a56c6834" - dependencies: - babel-runtime "^6.9.2" - babylon "^6.8.1" - source-map-support "^0.4.0" - -currently-unhandled@^0.4.1: - version "0.4.1" - resolved "https://registry.yarnpkg.com/currently-unhandled/-/currently-unhandled-0.4.1.tgz#988df33feab191ef799a61369dd76c17adf957ea" - dependencies: - array-find-index "^1.0.1" - -cycle@1.0.x: - version "1.0.3" - resolved "https://registry.yarnpkg.com/cycle/-/cycle-1.0.3.tgz#21e80b2be8580f98b468f379430662b046c34ad2" - -dashdash@^1.12.0: - version "1.14.1" - resolved "https://registry.yarnpkg.com/dashdash/-/dashdash-1.14.1.tgz#853cfa0f7cbe2fed5de20326b8dd581035f6e2f0" - dependencies: - assert-plus "^1.0.0" - -date-now@^0.1.4: - version "0.1.4" - resolved "https://registry.yarnpkg.com/date-now/-/date-now-0.1.4.tgz#eaf439fd4d4848ad74e5cc7dbef200672b9e345b" - -date-time@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/date-time/-/date-time-1.1.0.tgz#18876d0bda4c19fe70dd3bf4b034f281b12a40b6" - dependencies: - time-zone "^0.1.0" - -dateformat@~1.0.12: - version "1.0.12" - resolved "https://registry.yarnpkg.com/dateformat/-/dateformat-1.0.12.tgz#9f124b67594c937ff706932e4a642cca8dbbfee9" - dependencies: - get-stdin "^4.0.1" - meow "^3.3.0" - -debug@0.7.4: - version "0.7.4" - resolved "https://registry.yarnpkg.com/debug/-/debug-0.7.4.tgz#06e1ea8082c2cb14e39806e22e2f6f757f92af39" - -decamelize@^1.0.0, decamelize@^1.1.2: - version "1.2.0" - resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290" - -deep-equal@*: - version "1.0.1" - resolved "https://registry.yarnpkg.com/deep-equal/-/deep-equal-1.0.1.tgz#f5d260292b660e084eff4cdbc9f08ad3247448b5" - -delayed-stream@~1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619" - -dom-serializer@0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/dom-serializer/-/dom-serializer-0.1.0.tgz#073c697546ce0780ce23be4a28e293e40bc30c82" - dependencies: - domelementtype "~1.1.1" - entities "~1.1.1" - -domelementtype@1: - version "1.3.0" - resolved "https://registry.yarnpkg.com/domelementtype/-/domelementtype-1.3.0.tgz#b17aed82e8ab59e52dd9c19b1756e0fc187204c2" - -domelementtype@~1.1.1: - version "1.1.3" - resolved "https://registry.yarnpkg.com/domelementtype/-/domelementtype-1.1.3.tgz#bd28773e2642881aec51544924299c5cd822185b" - -domhandler@2.3: - version "2.3.0" - resolved "https://registry.yarnpkg.com/domhandler/-/domhandler-2.3.0.tgz#2de59a0822d5027fabff6f032c2b25a2a8abe738" - dependencies: - domelementtype "1" - -domutils@1.5: - version "1.5.1" - resolved "https://registry.yarnpkg.com/domutils/-/domutils-1.5.1.tgz#dcd8488a26f563d61079e48c9f7b7e32373682cf" - dependencies: - dom-serializer "0" - domelementtype "1" - -ecc-jsbn@~0.1.1: - version "0.1.1" - resolved "https://registry.yarnpkg.com/ecc-jsbn/-/ecc-jsbn-0.1.1.tgz#0fc73a9ed5f0d53c38193398523ef7e543777505" - dependencies: - jsbn "~0.1.0" - -end-of-stream@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-1.1.0.tgz#e9353258baa9108965efc41cb0ef8ade2f3cfb07" - dependencies: - once "~1.3.0" - -entities@1.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/entities/-/entities-1.0.0.tgz#b2987aa3821347fcde642b24fdfc9e4fb712bf26" - -entities@~1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/entities/-/entities-1.1.1.tgz#6e5c2d0a5621b5dadaecef80b90edfb5cd7772f0" - -errno@^0.1.1: - version "0.1.4" - resolved "https://registry.yarnpkg.com/errno/-/errno-0.1.4.tgz#b896e23a9e5e8ba33871fc996abd3635fc9a1c7d" - dependencies: - prr "~0.0.0" - -error-ex@^1.2.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/error-ex/-/error-ex-1.3.0.tgz#e67b43f3e82c96ea3a584ffee0b9fc3325d802d9" - dependencies: - is-arrayish "^0.2.1" - -es6-promise@~4.0.3: - version "4.0.5" - resolved "https://registry.yarnpkg.com/es6-promise/-/es6-promise-4.0.5.tgz#7882f30adde5b240ccfa7f7d78c548330951ae42" - -escape-string-regexp@^1.0.2, escape-string-regexp@^1.0.5: - version "1.0.5" - resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" - -esprima@^2.6.0: - version "2.7.3" - resolved "https://registry.yarnpkg.com/esprima/-/esprima-2.7.3.tgz#96e3b70d5779f6ad49cd032673d1c312767ba581" - -estraverse@^4.1.0: - version "4.2.0" - resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-4.2.0.tgz#0dee3fed31fcd469618ce7342099fc1afa0bdb13" - -eventemitter2@^0.4.9, eventemitter2@~0.4.13: - version "0.4.14" - resolved "https://registry.yarnpkg.com/eventemitter2/-/eventemitter2-0.4.14.tgz#8f61b75cde012b2e9eb284d4545583b5643b61ab" - -exit@0.1.2, exit@0.1.x, exit@~0.1.1, exit@~0.1.2: - version "0.1.2" - resolved "https://registry.yarnpkg.com/exit/-/exit-0.1.2.tgz#0632638f8d877cc82107d30a0fff1a17cba1cd0c" - -extend@~3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/extend/-/extend-3.0.0.tgz#5a474353b9f3353ddd8176dfd37b91c83a46f1d4" - -extract-zip@~1.5.0: - version "1.5.0" - resolved "https://registry.yarnpkg.com/extract-zip/-/extract-zip-1.5.0.tgz#92ccf6d81ef70a9fa4c1747114ccef6d8688a6c4" - dependencies: - concat-stream "1.5.0" - debug "0.7.4" - mkdirp "0.5.0" - yauzl "2.4.1" - -extsprintf@1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.0.2.tgz#e1080e0658e300b06294990cc70e1502235fd550" - -eyes@0.1.x: - version "0.1.8" - resolved "https://registry.yarnpkg.com/eyes/-/eyes-0.1.8.tgz#62cf120234c683785d902348a800ef3e0cc20bc0" - -fd-slicer@~1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/fd-slicer/-/fd-slicer-1.0.1.tgz#8b5bcbd9ec327c5041bf9ab023fd6750f1177e65" - dependencies: - pend "~1.2.0" - -figures@^1.0.0, figures@^1.0.1: - version "1.7.0" - resolved "https://registry.yarnpkg.com/figures/-/figures-1.7.0.tgz#cbe1e3affcf1cd44b80cadfed28dc793a9701d2e" - dependencies: - escape-string-regexp "^1.0.5" - object-assign "^4.1.0" - -find-up@^1.0.0: - version "1.1.2" - resolved "https://registry.yarnpkg.com/find-up/-/find-up-1.1.2.tgz#6b2e9822b1a2ce0a60ab64d610eccad53cb24d0f" - dependencies: - path-exists "^2.0.0" - pinkie-promise "^2.0.0" - -findup-sync@~0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/findup-sync/-/findup-sync-0.3.0.tgz#37930aa5d816b777c03445e1966cc6790a4c0b16" - dependencies: - glob "~5.0.0" - -forever-agent@~0.6.1: - version "0.6.1" - resolved "https://registry.yarnpkg.com/forever-agent/-/forever-agent-0.6.1.tgz#fbc71f0c41adeb37f96c577ad1ed42d8fdacca91" - -form-data@~2.1.1: - version "2.1.2" - resolved "https://registry.yarnpkg.com/form-data/-/form-data-2.1.2.tgz#89c3534008b97eada4cbb157d58f6f5df025eae4" - dependencies: - asynckit "^0.4.0" - combined-stream "^1.0.5" - mime-types "^2.1.12" - -fs-extra@~1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-1.0.0.tgz#cd3ce5f7e7cb6145883fcae3191e9877f8587950" - dependencies: - graceful-fs "^4.1.2" - jsonfile "^2.1.0" - klaw "^1.0.0" - -fs.realpath@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" - -generate-function@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/generate-function/-/generate-function-2.0.0.tgz#6858fe7c0969b7d4e9093337647ac79f60dfbe74" - -generate-object-property@^1.1.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/generate-object-property/-/generate-object-property-1.2.0.tgz#9c0e1c40308ce804f4783618b937fa88f99d50d0" - dependencies: - is-property "^1.0.0" - -get-stdin@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/get-stdin/-/get-stdin-4.0.1.tgz#b968c6b0a04384324902e8bf1a5df32579a450fe" - -getobject@~0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/getobject/-/getobject-0.1.0.tgz#047a449789fa160d018f5486ed91320b6ec7885c" - -getpass@^0.1.1: - version "0.1.6" - resolved "https://registry.yarnpkg.com/getpass/-/getpass-0.1.6.tgz#283ffd9fc1256840875311c1b60e8c40187110e6" - dependencies: - assert-plus "^1.0.0" - -glob@^5.0.1, glob@~5.0.0: - version "5.0.15" - resolved "https://registry.yarnpkg.com/glob/-/glob-5.0.15.tgz#1bc936b9e02f4a603fcc222ecf7633d30b8b93b1" - dependencies: - inflight "^1.0.4" - inherits "2" - minimatch "2 || 3" - once "^1.3.0" - path-is-absolute "^1.0.0" - -glob@^7.0.0, glob@^7.0.5, glob@~7.0.0: - version "7.0.6" - resolved "https://registry.yarnpkg.com/glob/-/glob-7.0.6.tgz#211bafaf49e525b8cd93260d14ab136152b3f57a" - dependencies: - fs.realpath "^1.0.0" - inflight "^1.0.4" - inherits "2" - minimatch "^3.0.2" - once "^1.3.0" - path-is-absolute "^1.0.0" - -glob@^7.1.1: - version "7.1.1" - resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.1.tgz#805211df04faaf1c63a3600306cdf5ade50b2ec8" - dependencies: - fs.realpath "^1.0.0" - inflight "^1.0.4" - inherits "2" - minimatch "^3.0.2" - once "^1.3.0" - path-is-absolute "^1.0.0" - -graceful-fs@^4.1.0, graceful-fs@^4.1.2, graceful-fs@^4.1.6, graceful-fs@^4.1.9: - version "4.1.11" - resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.1.11.tgz#0e8bdfe4d1ddb8854d64e04ea7c00e2a026e5658" - -"graceful-readlink@>= 1.0.0": - version "1.0.1" - resolved "https://registry.yarnpkg.com/graceful-readlink/-/graceful-readlink-1.0.1.tgz#4cafad76bc62f02fa039b2f94e9a3dd3a391a725" - -grunt-banner@~0.6.0: - version "0.6.0" - resolved "https://registry.yarnpkg.com/grunt-banner/-/grunt-banner-0.6.0.tgz#3f879021d123fa58a7ba5a0b6fb6be412b5885ac" - dependencies: - chalk "^1.1.0" - -grunt-cli@~1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/grunt-cli/-/grunt-cli-1.2.0.tgz#562b119ebb069ddb464ace2845501be97b35b6a8" - dependencies: - findup-sync "~0.3.0" - grunt-known-options "~1.1.0" - nopt "~3.0.6" - resolve "~1.1.0" - -grunt-contrib-clean@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/grunt-contrib-clean/-/grunt-contrib-clean-1.0.0.tgz#6b2ed94117e2c7ffe32ee04578c96fe4625a9b6d" - dependencies: - async "^1.5.2" - rimraf "^2.5.1" - -grunt-contrib-compress@^1.4.1: - version "1.4.1" - resolved "https://registry.yarnpkg.com/grunt-contrib-compress/-/grunt-contrib-compress-1.4.1.tgz#36212e9bbb41e9b41ff6fbe2fc77281c69ab02a0" - dependencies: - archiver "^1.0.0" - chalk "^1.1.1" - lodash "^4.7.0" - pretty-bytes "^3.0.1" - stream-buffers "^2.1.0" - optionalDependencies: - iltorb "^1.0.13" - -grunt-contrib-concat@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/grunt-contrib-concat/-/grunt-contrib-concat-1.0.1.tgz#61509863084e871d7e86de48c015259ed97745bd" - dependencies: - chalk "^1.0.0" - source-map "^0.5.3" - -grunt-contrib-csslint@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/grunt-contrib-csslint/-/grunt-contrib-csslint-2.0.0.tgz#3129d94dfe507357f23337d24ae9e9aa4b9d57df" - dependencies: - chalk "^1.0.0" - csslint "^1.0.0" - lodash "^4.8.2" - strip-json-comments "^2.0.1" - -grunt-contrib-cssmin@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/grunt-contrib-cssmin/-/grunt-contrib-cssmin-1.0.2.tgz#1734cbd3d84ca7364758b7e58ff18e52aa60bb76" - dependencies: - chalk "^1.0.0" - clean-css "~3.4.2" - maxmin "^1.1.0" - -grunt-contrib-jshint@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/grunt-contrib-jshint/-/grunt-contrib-jshint-1.1.0.tgz#369d909b2593c40e8be79940b21340850c7939ac" - dependencies: - chalk "^1.1.1" - hooker "^0.2.3" - jshint "~2.9.4" - -grunt-contrib-less@^1.4.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/grunt-contrib-less/-/grunt-contrib-less-1.4.0.tgz#17ee79cad21c9720ee07b3a991fab5103b513514" - dependencies: - async "^2.0.0" - chalk "^1.0.0" - less "~2.7.1" - lodash "^4.8.2" - -grunt-contrib-qunit@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/grunt-contrib-qunit/-/grunt-contrib-qunit-1.2.0.tgz#76ee87ce8cc157592802bb7545392f671ccb4956" - dependencies: - grunt-lib-phantomjs "^1.0.0" - -grunt-contrib-uglify@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/grunt-contrib-uglify/-/grunt-contrib-uglify-2.0.0.tgz#8c9970d690936cde6d25aa1193549bd929016930" - dependencies: - chalk "^1.0.0" - lodash.assign "^4.0.9" - maxmin "^1.1.0" - uglify-js "~2.7.0" - uri-path "^1.0.0" - -grunt-jscs@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/grunt-jscs/-/grunt-jscs-3.0.1.tgz#1fae50e3e955df9e3a9d9425aec22accae008092" - dependencies: - hooker "~0.2.3" - jscs "~3.0.5" - lodash "~4.6.1" - vow "~0.4.1" - -grunt-known-options@~1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/grunt-known-options/-/grunt-known-options-1.1.0.tgz#a4274eeb32fa765da5a7a3b1712617ce3b144149" - -grunt-legacy-log-utils@~1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/grunt-legacy-log-utils/-/grunt-legacy-log-utils-1.0.0.tgz#a7b8e2d0fb35b5a50f4af986fc112749ebc96f3d" - dependencies: - chalk "~1.1.1" - lodash "~4.3.0" - -grunt-legacy-log@~1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/grunt-legacy-log/-/grunt-legacy-log-1.0.0.tgz#fb86f1809847bc07dc47843f9ecd6cacb62df2d5" - dependencies: - colors "~1.1.2" - grunt-legacy-log-utils "~1.0.0" - hooker "~0.2.3" - lodash "~3.10.1" - underscore.string "~3.2.3" - -grunt-legacy-util@~1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/grunt-legacy-util/-/grunt-legacy-util-1.0.0.tgz#386aa78dc6ed50986c2b18957265b1b48abb9b86" - dependencies: - async "~1.5.2" - exit "~0.1.1" - getobject "~0.1.0" - hooker "~0.2.3" - lodash "~4.3.0" - underscore.string "~3.2.3" - which "~1.2.1" - -grunt-lib-phantomjs@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/grunt-lib-phantomjs/-/grunt-lib-phantomjs-1.1.0.tgz#9e9edcdd9fd2dd40e0c181c94371d572aa5eead2" - dependencies: - eventemitter2 "^0.4.9" - phantomjs-prebuilt "^2.1.3" - rimraf "^2.5.2" - semver "^5.1.0" - temporary "^0.0.8" - -grunt-string-replace@^1.3.1: - version "1.3.1" - resolved "https://registry.yarnpkg.com/grunt-string-replace/-/grunt-string-replace-1.3.1.tgz#633a03bc78482a0e0e1f9df7f645811fc1fbb162" - dependencies: - async "^2.0.0" - chalk "^1.0.0" - -grunt@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/grunt/-/grunt-1.0.1.tgz#e8778764e944b18f32bb0f10b9078475c9dfb56b" - dependencies: - coffee-script "~1.10.0" - dateformat "~1.0.12" - eventemitter2 "~0.4.13" - exit "~0.1.1" - findup-sync "~0.3.0" - glob "~7.0.0" - grunt-cli "~1.2.0" - grunt-known-options "~1.1.0" - grunt-legacy-log "~1.0.0" - grunt-legacy-util "~1.0.0" - iconv-lite "~0.4.13" - js-yaml "~3.5.2" - minimatch "~3.0.0" - nopt "~3.0.6" - path-is-absolute "~1.0.0" - rimraf "~2.2.8" - -gzip-size@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/gzip-size/-/gzip-size-1.0.0.tgz#66cf8b101047227b95bace6ea1da0c177ed5c22f" - dependencies: - browserify-zlib "^0.1.4" - concat-stream "^1.4.1" - -har-validator@~2.0.6: - version "2.0.6" - resolved "https://registry.yarnpkg.com/har-validator/-/har-validator-2.0.6.tgz#cdcbc08188265ad119b6a5a7c8ab70eecfb5d27d" - dependencies: - chalk "^1.1.1" - commander "^2.9.0" - is-my-json-valid "^2.12.4" - pinkie-promise "^2.0.0" - -has-ansi@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/has-ansi/-/has-ansi-2.0.0.tgz#34f5049ce1ecdf2b0649af3ef24e45ed35416d91" - dependencies: - ansi-regex "^2.0.0" - -has-color@~0.1.0: - version "0.1.7" - resolved "https://registry.yarnpkg.com/has-color/-/has-color-0.1.7.tgz#67144a5260c34fc3cca677d041daf52fe7b78b2f" - -hasha@~2.2.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/hasha/-/hasha-2.2.0.tgz#78d7cbfc1e6d66303fe79837365984517b2f6ee1" - dependencies: - is-stream "^1.0.1" - pinkie-promise "^2.0.0" - -hawk@~3.1.3: - version "3.1.3" - resolved "https://registry.yarnpkg.com/hawk/-/hawk-3.1.3.tgz#078444bd7c1640b0fe540d2c9b73d59678e8e1c4" - dependencies: - boom "2.x.x" - cryptiles "2.x.x" - hoek "2.x.x" - sntp "1.x.x" - -hoek@2.x.x: - version "2.16.3" - resolved "https://registry.yarnpkg.com/hoek/-/hoek-2.16.3.tgz#20bb7403d3cea398e91dc4710a8ff1b8274a25ed" - -hooker@^0.2.3, hooker@~0.2.3: - version "0.2.3" - resolved "https://registry.yarnpkg.com/hooker/-/hooker-0.2.3.tgz#b834f723cc4a242aa65963459df6d984c5d3d959" - -hosted-git-info@^2.1.4: - version "2.1.5" - resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.1.5.tgz#0ba81d90da2e25ab34a332e6ec77936e1598118b" - -htmlparser2@3.8.3, htmlparser2@3.8.x: - version "3.8.3" - resolved "https://registry.yarnpkg.com/htmlparser2/-/htmlparser2-3.8.3.tgz#996c28b191516a8be86501a7d79757e5c70c1068" - dependencies: - domelementtype "1" - domhandler "2.3" - domutils "1.5" - entities "1.0" - readable-stream "1.1" - -http-signature@~1.1.0: - version "1.1.1" - resolved "https://registry.yarnpkg.com/http-signature/-/http-signature-1.1.1.tgz#df72e267066cd0ac67fb76adf8e134a8fbcf91bf" - dependencies: - assert-plus "^0.2.0" - jsprim "^1.2.2" - sshpk "^1.7.0" - -i@0.3.x: - version "0.3.5" - resolved "https://registry.yarnpkg.com/i/-/i-0.3.5.tgz#1d2b854158ec8169113c6cb7f6b6801e99e211d5" - -iconv-lite@~0.4.13: - version "0.4.15" - resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.15.tgz#fe265a218ac6a57cfe854927e9d04c19825eddeb" - -iltorb@^1.0.13: - version "1.0.13" - resolved "https://registry.yarnpkg.com/iltorb/-/iltorb-1.0.13.tgz#9913538457bf39d3dac223ebb4d9990dbda1354f" - dependencies: - nan "^2.4.0" - -image-size@~0.5.0: - version "0.5.1" - resolved "https://registry.yarnpkg.com/image-size/-/image-size-0.5.1.tgz#28eea8548a4b1443480ddddc1e083ae54652439f" - -indent-string@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/indent-string/-/indent-string-2.1.0.tgz#8e2d48348742121b4a8218b7a137e9a52049dc80" - dependencies: - repeating "^2.0.0" - -inflight@^1.0.4: - version "1.0.6" - resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" - dependencies: - once "^1.3.0" - wrappy "1" - -inherit@^2.2.2: - version "2.2.6" - resolved "https://registry.yarnpkg.com/inherit/-/inherit-2.2.6.tgz#f1614b06c8544e8128e4229c86347db73ad9788d" - -inherits@2, inherits@~2.0.1: - version "2.0.3" - resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de" - -is-arrayish@^0.2.1: - version "0.2.1" - resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d" - -is-buffer@^1.0.2: - version "1.1.4" - resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-1.1.4.tgz#cfc86ccd5dc5a52fa80489111c6920c457e2d98b" - -is-builtin-module@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-builtin-module/-/is-builtin-module-1.0.0.tgz#540572d34f7ac3119f8f76c30cbc1b1e037affbe" - dependencies: - builtin-modules "^1.0.0" - -is-finite@^1.0.0, is-finite@^1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/is-finite/-/is-finite-1.0.2.tgz#cc6677695602be550ef11e8b4aa6305342b6d0aa" - dependencies: - number-is-nan "^1.0.0" - -is-my-json-valid@^2.12.4: - version "2.15.0" - resolved "https://registry.yarnpkg.com/is-my-json-valid/-/is-my-json-valid-2.15.0.tgz#936edda3ca3c211fd98f3b2d3e08da43f7b2915b" - dependencies: - generate-function "^2.0.0" - generate-object-property "^1.1.0" - jsonpointer "^4.0.0" - xtend "^4.0.0" - -is-property@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/is-property/-/is-property-1.0.2.tgz#57fe1c4e48474edd65b09911f26b1cd4095dda84" - -is-stream@^1.0.1: - version "1.1.0" - resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-1.1.0.tgz#12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44" - -is-typedarray@~1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-typedarray/-/is-typedarray-1.0.0.tgz#e479c80858df0c1b11ddda6940f96011fcda4a9a" - -is-utf8@^0.2.0: - version "0.2.1" - resolved "https://registry.yarnpkg.com/is-utf8/-/is-utf8-0.2.1.tgz#4b0da1442104d1b336340e80797e865cf39f7d72" - -isarray@0.0.1: - version "0.0.1" - resolved "https://registry.yarnpkg.com/isarray/-/isarray-0.0.1.tgz#8a18acfca9a8f4177e09abfc6038939b05d1eedf" - -isarray@~1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11" - -isexe@^1.1.1: - version "1.1.2" - resolved "https://registry.yarnpkg.com/isexe/-/isexe-1.1.2.tgz#36f3e22e60750920f5e7241a476a8c6a42275ad0" - -isstream@0.1.x, isstream@~0.1.2: - version "0.1.2" - resolved "https://registry.yarnpkg.com/isstream/-/isstream-0.1.2.tgz#47e63f7af55afa6f92e1500e690eb8b8529c099a" - -jodid25519@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/jodid25519/-/jodid25519-1.0.2.tgz#06d4912255093419477d425633606e0e90782967" - dependencies: - jsbn "~0.1.0" - -"jquery@>=1.7.1 <4.0.0": - version "3.1.1" - resolved "https://registry.yarnpkg.com/jquery/-/jquery-3.1.1.tgz#347c1c21c7e004115e0a4da32cece041fad3c8a3" - -js-yaml@~3.4.0: - version "3.4.6" - resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.4.6.tgz#6be1b23f6249f53d293370fd4d1aaa63ce1b4eb0" - dependencies: - argparse "^1.0.2" - esprima "^2.6.0" - inherit "^2.2.2" - -js-yaml@~3.5.2: - version "3.5.5" - resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.5.5.tgz#0377c38017cabc7322b0d1fbcd25a491641f2fbe" - dependencies: - argparse "^1.0.2" - esprima "^2.6.0" - -jsbn@~0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/jsbn/-/jsbn-0.1.0.tgz#650987da0dd74f4ebf5a11377a2aa2d273e97dfd" - -jscs-jsdoc@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/jscs-jsdoc/-/jscs-jsdoc-2.0.0.tgz#f53ebce029aa3125bd88290ba50d64d4510a4871" - dependencies: - comment-parser "^0.3.1" - jsdoctypeparser "~1.2.0" - -jscs-preset-wikimedia@~1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/jscs-preset-wikimedia/-/jscs-preset-wikimedia-1.0.0.tgz#fff563342038fc2e8826b7bb7309c3ae3406fc7e" - -jscs@~3.0.5: - version "3.0.7" - resolved "https://registry.yarnpkg.com/jscs/-/jscs-3.0.7.tgz#7141b4dff5b86e32d0e99d764b836767c30d201a" - dependencies: - chalk "~1.1.0" - cli-table "~0.3.1" - commander "~2.9.0" - cst "^0.4.3" - estraverse "^4.1.0" - exit "~0.1.2" - glob "^5.0.1" - htmlparser2 "3.8.3" - js-yaml "~3.4.0" - jscs-jsdoc "^2.0.0" - jscs-preset-wikimedia "~1.0.0" - jsonlint "~1.6.2" - lodash "~3.10.0" - minimatch "~3.0.0" - natural-compare "~1.2.2" - pathval "~0.1.1" - prompt "~0.2.14" - reserved-words "^0.1.1" - resolve "^1.1.6" - strip-bom "^2.0.0" - strip-json-comments "~1.0.2" - to-double-quotes "^2.0.0" - to-single-quotes "^2.0.0" - vow "~0.4.8" - vow-fs "~0.3.4" - xmlbuilder "^3.1.0" - -jsdoctypeparser@~1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/jsdoctypeparser/-/jsdoctypeparser-1.2.0.tgz#e7dedc153a11849ffc5141144ae86a7ef0c25392" - dependencies: - lodash "^3.7.0" - -jshint@~2.9.4: - version "2.9.4" - resolved "https://registry.yarnpkg.com/jshint/-/jshint-2.9.4.tgz#5e3ba97848d5290273db514aee47fe24cf592934" - dependencies: - cli "~1.0.0" - console-browserify "1.1.x" - exit "0.1.x" - htmlparser2 "3.8.x" - lodash "3.7.x" - minimatch "~3.0.2" - shelljs "0.3.x" - strip-json-comments "1.0.x" - -json-schema@0.2.3: - version "0.2.3" - resolved "https://registry.yarnpkg.com/json-schema/-/json-schema-0.2.3.tgz#b480c892e59a2f05954ce727bd3f2a4e882f9e13" - -json-stringify-safe@~5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz#1296a2d58fd45f19a0f6ce01d65701e2c735b6eb" - -jsonfile@^2.1.0: - version "2.4.0" - resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-2.4.0.tgz#3736a2b428b87bbda0cc83b53fa3d633a35c2ae8" - optionalDependencies: - graceful-fs "^4.1.6" - -jsonlint@~1.6.2: - version "1.6.2" - resolved "https://registry.yarnpkg.com/jsonlint/-/jsonlint-1.6.2.tgz#5737045085f55eb455c68b1ff4ebc01bd50e8830" - dependencies: - JSV ">= 4.0.x" - nomnom ">= 1.5.x" - -jsonpointer@^4.0.0: - version "4.0.1" - resolved "https://registry.yarnpkg.com/jsonpointer/-/jsonpointer-4.0.1.tgz#4fd92cb34e0e9db3c89c8622ecf51f9b978c6cb9" - -jsprim@^1.2.2: - version "1.3.1" - resolved "https://registry.yarnpkg.com/jsprim/-/jsprim-1.3.1.tgz#2a7256f70412a29ee3670aaca625994c4dcff252" - dependencies: - extsprintf "1.0.2" - json-schema "0.2.3" - verror "1.3.6" - -kew@~0.7.0: - version "0.7.0" - resolved "https://registry.yarnpkg.com/kew/-/kew-0.7.0.tgz#79d93d2d33363d6fdd2970b335d9141ad591d79b" - -kind-of@^3.0.2: - version "3.1.0" - resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-3.1.0.tgz#475d698a5e49ff5e53d14e3e732429dc8bf4cf47" - dependencies: - is-buffer "^1.0.2" - -klaw@^1.0.0: - version "1.3.1" - resolved "https://registry.yarnpkg.com/klaw/-/klaw-1.3.1.tgz#4088433b46b3b1ba259d78785d8e96f73ba02439" - optionalDependencies: - graceful-fs "^4.1.9" - -lazy-cache@^1.0.3: - version "1.0.4" - resolved "https://registry.yarnpkg.com/lazy-cache/-/lazy-cache-1.0.4.tgz#a1d78fc3a50474cb80845d3b3b6e1da49a446e8e" - -lazystream@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/lazystream/-/lazystream-1.0.0.tgz#f6995fe0f820392f61396be89462407bb77168e4" - dependencies: - readable-stream "^2.0.5" - -less@~2.7.1: - version "2.7.2" - resolved "https://registry.yarnpkg.com/less/-/less-2.7.2.tgz#368d6cc73e1fb03981183280918743c5dcf9b3df" - optionalDependencies: - errno "^0.1.1" - graceful-fs "^4.1.2" - image-size "~0.5.0" - mime "^1.2.11" - mkdirp "^0.5.0" - promise "^7.1.1" - request "^2.72.0" - source-map "^0.5.3" - -load-grunt-tasks@^3.5.2: - version "3.5.2" - resolved "https://registry.yarnpkg.com/load-grunt-tasks/-/load-grunt-tasks-3.5.2.tgz#0728561180fd20ff8a6927505852fc58aaea0c88" - dependencies: - arrify "^1.0.0" - multimatch "^2.0.0" - pkg-up "^1.0.0" - resolve-pkg "^0.1.0" - -load-json-file@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/load-json-file/-/load-json-file-1.1.0.tgz#956905708d58b4bab4c2261b04f59f31c99374c0" - dependencies: - graceful-fs "^4.1.2" - parse-json "^2.2.0" - pify "^2.0.0" - pinkie-promise "^2.0.0" - strip-bom "^2.0.0" - -lodash.assign@^4.0.9: - version "4.2.0" - resolved "https://registry.yarnpkg.com/lodash.assign/-/lodash.assign-4.2.0.tgz#0d99f3ccd7a6d261d19bdaeb9245005d285808e7" - -lodash@3.7.x: - version "3.7.0" - resolved "https://registry.yarnpkg.com/lodash/-/lodash-3.7.0.tgz#3678bd8ab995057c07ade836ed2ef087da811d45" - -lodash@^3.5.0, lodash@^3.7.0, lodash@~3.10.0, lodash@~3.10.1: - version "3.10.1" - resolved "https://registry.yarnpkg.com/lodash/-/lodash-3.10.1.tgz#5bf45e8e49ba4189e17d482789dfd15bd140b7b6" - -lodash@^4.14.0, lodash@^4.7.0, lodash@^4.8.0, lodash@^4.8.2: - version "4.17.4" - resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.4.tgz#78203a4d1c328ae1d86dca6460e369b57f4055ae" - -lodash@~4.3.0: - version "4.3.0" - resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.3.0.tgz#efd9c4a6ec53f3b05412429915c3e4824e4d25a4" - -lodash@~4.6.1: - version "4.6.1" - resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.6.1.tgz#df00c1164ad236b183cfc3887a5e8d38cc63cbbc" - -longest@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/longest/-/longest-1.0.1.tgz#30a0b2da38f73770e8294a0d22e6625ed77d0097" - -loud-rejection@^1.0.0: - version "1.6.0" - resolved "https://registry.yarnpkg.com/loud-rejection/-/loud-rejection-1.6.0.tgz#5b46f80147edee578870f086d04821cf998e551f" - dependencies: - currently-unhandled "^0.4.1" - signal-exit "^3.0.0" - -map-obj@^1.0.0, map-obj@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/map-obj/-/map-obj-1.0.1.tgz#d933ceb9205d82bdcf4886f6742bdc2b4dea146d" - -maxmin@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/maxmin/-/maxmin-1.1.0.tgz#71365e84a99dd8f8b3f7d5fde2f00d1e7f73be61" - dependencies: - chalk "^1.0.0" - figures "^1.0.1" - gzip-size "^1.0.0" - pretty-bytes "^1.0.0" - -meow@^3.1.0, meow@^3.3.0: - version "3.7.0" - resolved "https://registry.yarnpkg.com/meow/-/meow-3.7.0.tgz#72cb668b425228290abbfa856892587308a801fb" - dependencies: - camelcase-keys "^2.0.0" - decamelize "^1.1.2" - loud-rejection "^1.0.0" - map-obj "^1.0.1" - minimist "^1.1.3" - normalize-package-data "^2.3.4" - object-assign "^4.0.1" - read-pkg-up "^1.0.1" - redent "^1.0.0" - trim-newlines "^1.0.0" - -mime-db@~1.26.0: - version "1.26.0" - resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.26.0.tgz#eaffcd0e4fc6935cf8134da246e2e6c35305adff" - -mime-types@^2.1.12, mime-types@~2.1.7: - version "2.1.14" - resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.14.tgz#f7ef7d97583fcaf3b7d282b6f8b5679dab1e94ee" - dependencies: - mime-db "~1.26.0" - -mime@^1.2.11: - version "1.3.4" - resolved "https://registry.yarnpkg.com/mime/-/mime-1.3.4.tgz#115f9e3b6b3daf2959983cb38f149a2d40eb5d53" - -"minimatch@2 || 3", minimatch@^3.0.0, minimatch@^3.0.2, minimatch@~3.0.0, minimatch@~3.0.2: - version "3.0.3" - resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.3.tgz#2a4e4090b96b2db06a9d7df01055a62a77c9b774" - dependencies: - brace-expansion "^1.0.0" - -minimist@0.0.8: - version "0.0.8" - resolved "https://registry.yarnpkg.com/minimist/-/minimist-0.0.8.tgz#857fcabfc3397d2625b8228262e86aa7a011b05d" - -minimist@^1.1.3: - version "1.2.0" - resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.0.tgz#a35008b20f41383eec1fb914f4cd5df79a264284" - -mkdirp@0.5.0, mkdirp@0.x.x, mkdirp@^0.5.0: - version "0.5.0" - resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.0.tgz#1d73076a6df986cd9344e15e71fcc05a4c9abf12" - dependencies: - minimist "0.0.8" - -multimatch@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/multimatch/-/multimatch-2.1.0.tgz#9c7906a22fb4c02919e2f5f75161b4cdbd4b2a2b" - dependencies: - array-differ "^1.0.0" - array-union "^1.0.1" - arrify "^1.0.0" - minimatch "^3.0.0" - -mute-stream@~0.0.4: - version "0.0.7" - resolved "https://registry.yarnpkg.com/mute-stream/-/mute-stream-0.0.7.tgz#3075ce93bc21b8fab43e1bc4da7e8115ed1e7bab" - -nan@^2.4.0: - version "2.5.1" - resolved "https://registry.yarnpkg.com/nan/-/nan-2.5.1.tgz#d5b01691253326a97a2bbee9e61c55d8d60351e2" - -natural-compare@~1.2.2: - version "1.2.2" - resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.2.2.tgz#1f96d60e3141cac1b6d05653ce0daeac763af6aa" - -ncp@0.4.x: - version "0.4.2" - resolved "https://registry.yarnpkg.com/ncp/-/ncp-0.4.2.tgz#abcc6cbd3ec2ed2a729ff6e7c1fa8f01784a8574" - -"nomnom@>= 1.5.x": - version "1.8.1" - resolved "https://registry.yarnpkg.com/nomnom/-/nomnom-1.8.1.tgz#2151f722472ba79e50a76fc125bb8c8f2e4dc2a7" - dependencies: - chalk "~0.4.0" - underscore "~1.6.0" - -nopt@~3.0.6: - version "3.0.6" - resolved "https://registry.yarnpkg.com/nopt/-/nopt-3.0.6.tgz#c6465dbf08abcd4db359317f79ac68a646b28ff9" - dependencies: - abbrev "1" - -normalize-package-data@^2.3.2, normalize-package-data@^2.3.4: - version "2.3.5" - resolved "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-2.3.5.tgz#8d924f142960e1777e7ffe170543631cc7cb02df" - dependencies: - hosted-git-info "^2.1.4" - is-builtin-module "^1.0.0" - semver "2 || 3 || 4 || 5" - validate-npm-package-license "^3.0.1" - -normalize-path@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-2.0.1.tgz#47886ac1662760d4261b7d979d241709d3ce3f7a" - -number-is-nan@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/number-is-nan/-/number-is-nan-1.0.1.tgz#097b602b53422a522c1afb8790318336941a011d" - -oauth-sign@~0.8.1: - version "0.8.2" - resolved "https://registry.yarnpkg.com/oauth-sign/-/oauth-sign-0.8.2.tgz#46a6ab7f0aead8deae9ec0565780b7d4efeb9d43" - -object-assign@^4.0.1, object-assign@^4.1.0: - version "4.1.1" - resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" - -once@^1.3.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" - dependencies: - wrappy "1" - -once@~1.3.0: - version "1.3.3" - resolved "https://registry.yarnpkg.com/once/-/once-1.3.3.tgz#b2e261557ce4c314ec8304f3fa82663e4297ca20" - dependencies: - wrappy "1" - -"package@>= 1.0.0 < 1.2.0": - version "1.0.1" - resolved "https://registry.yarnpkg.com/package/-/package-1.0.1.tgz#d25a1f99e2506dcb27d6704b83dca8a312e4edcc" - -pako@~0.2.0: - version "0.2.9" - resolved "https://registry.yarnpkg.com/pako/-/pako-0.2.9.tgz#f3f7522f4ef782348da8161bad9ecfd51bf83a75" - -parse-json@^2.2.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-2.2.0.tgz#f480f40434ef80741f8469099f8dea18f55a4dc9" - dependencies: - error-ex "^1.2.0" - -parse-ms@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/parse-ms/-/parse-ms-1.0.1.tgz#56346d4749d78f23430ca0c713850aef91aa361d" - -parserlib@~1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/parserlib/-/parserlib-1.1.1.tgz#a64cfa724062434fdfc351c9a4ec2d92b94c06f4" - -path-exists@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-2.1.0.tgz#0feb6c64f0fc518d9a754dd5efb62c7022761f4b" - dependencies: - pinkie-promise "^2.0.0" - -path-is-absolute@^1.0.0, path-is-absolute@~1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" - -path-type@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/path-type/-/path-type-1.1.0.tgz#59c44f7ee491da704da415da5a4070ba4f8fe441" - dependencies: - graceful-fs "^4.1.2" - pify "^2.0.0" - pinkie-promise "^2.0.0" - -pathval@~0.1.1: - version "0.1.1" - resolved "https://registry.yarnpkg.com/pathval/-/pathval-0.1.1.tgz#08f911cdca9cce5942880da7817bc0b723b66d82" - -pend@~1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/pend/-/pend-1.2.0.tgz#7a57eb550a6783f9115331fcf4663d5c8e007a50" - -phantomjs-prebuilt@^2.1.3, phantomjs-prebuilt@~2.1.8: - version "2.1.14" - resolved "https://registry.yarnpkg.com/phantomjs-prebuilt/-/phantomjs-prebuilt-2.1.14.tgz#d53d311fcfb7d1d08ddb24014558f1188c516da0" - dependencies: - es6-promise "~4.0.3" - extract-zip "~1.5.0" - fs-extra "~1.0.0" - hasha "~2.2.0" - kew "~0.7.0" - progress "~1.1.8" - request "~2.79.0" - request-progress "~2.0.1" - which "~1.2.10" - -pify@^2.0.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/pify/-/pify-2.3.0.tgz#ed141a6ac043a849ea588498e7dca8b15330e90c" - -pinkie-promise@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/pinkie-promise/-/pinkie-promise-2.0.1.tgz#2135d6dfa7a358c069ac9b178776288228450ffa" - dependencies: - pinkie "^2.0.0" - -pinkie@^2.0.0: - version "2.0.4" - resolved "https://registry.yarnpkg.com/pinkie/-/pinkie-2.0.4.tgz#72556b80cfa0d48a974e80e77248e80ed4f7f870" - -pkg-up@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/pkg-up/-/pkg-up-1.0.0.tgz#3e08fb461525c4421624a33b9f7e6d0af5b05a26" - dependencies: - find-up "^1.0.0" - -pkginfo@0.3.x: - version "0.3.1" - resolved "https://registry.yarnpkg.com/pkginfo/-/pkginfo-0.3.1.tgz#5b29f6a81f70717142e09e765bbeab97b4f81e21" - -pkginfo@0.x.x: - version "0.4.0" - resolved "https://registry.yarnpkg.com/pkginfo/-/pkginfo-0.4.0.tgz#349dbb7ffd38081fcadc0853df687f0c7744cd65" - -plur@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/plur/-/plur-1.0.0.tgz#db85c6814f5e5e5a3b49efc28d604fec62975156" - -pretty-bytes@^1.0.0: - version "1.0.4" - resolved "https://registry.yarnpkg.com/pretty-bytes/-/pretty-bytes-1.0.4.tgz#0a22e8210609ad35542f8c8d5d2159aff0751c84" - dependencies: - get-stdin "^4.0.1" - meow "^3.1.0" - -pretty-bytes@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/pretty-bytes/-/pretty-bytes-3.0.1.tgz#27d0008d778063a0b4811bb35c79f1bd5d5fbccf" - dependencies: - number-is-nan "^1.0.0" - -pretty-ms@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/pretty-ms/-/pretty-ms-2.1.0.tgz#4257c256df3fb0b451d6affaab021884126981dc" - dependencies: - is-finite "^1.0.1" - parse-ms "^1.0.0" - plur "^1.0.0" - -process-nextick-args@~1.0.6: - version "1.0.7" - resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-1.0.7.tgz#150e20b756590ad3f91093f25a4f2ad8bff30ba3" - -progress@~1.1.8: - version "1.1.8" - resolved "https://registry.yarnpkg.com/progress/-/progress-1.1.8.tgz#e260c78f6161cdd9b0e56cc3e0a85de17c7a57be" - -promise@^7.1.1: - version "7.1.1" - resolved "https://registry.yarnpkg.com/promise/-/promise-7.1.1.tgz#489654c692616b8aa55b0724fa809bb7db49c5bf" - dependencies: - asap "~2.0.3" - -prompt@~0.2.14: - version "0.2.14" - resolved "https://registry.yarnpkg.com/prompt/-/prompt-0.2.14.tgz#57754f64f543fd7b0845707c818ece618f05ffdc" - dependencies: - pkginfo "0.x.x" - read "1.0.x" - revalidator "0.1.x" - utile "0.2.x" - winston "0.8.x" - -prr@~0.0.0: - version "0.0.0" - resolved "https://registry.yarnpkg.com/prr/-/prr-0.0.0.tgz#1a84b85908325501411853d0081ee3fa86e2926a" - -punycode@^1.4.1: - version "1.4.1" - resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.4.1.tgz#c0d5a63b2718800ad8e1eb0fa5269c84dd41845e" - -qs@~6.3.0: - version "6.3.0" - resolved "https://registry.yarnpkg.com/qs/-/qs-6.3.0.tgz#f403b264f23bc01228c74131b407f18d5ea5d442" - -read-pkg-up@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-1.0.1.tgz#9d63c13276c065918d57f002a57f40a1b643fb02" - dependencies: - find-up "^1.0.0" - read-pkg "^1.0.0" - -read-pkg@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-1.1.0.tgz#f5ffaa5ecd29cb31c0474bca7d756b6bb29e3f28" - dependencies: - load-json-file "^1.0.0" - normalize-package-data "^2.3.2" - path-type "^1.0.0" - -read@1.0.x: - version "1.0.7" - resolved "https://registry.yarnpkg.com/read/-/read-1.0.7.tgz#b3da19bd052431a97671d44a42634adf710b40c4" - dependencies: - mute-stream "~0.0.4" - -readable-stream@1.1: - version "1.1.13" - resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-1.1.13.tgz#f6eef764f514c89e2b9e23146a75ba106756d23e" - dependencies: - core-util-is "~1.0.0" - inherits "~2.0.1" - isarray "0.0.1" - string_decoder "~0.10.x" - -readable-stream@^2.0.0, readable-stream@^2.0.4, readable-stream@^2.0.5: - version "2.2.2" - resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.2.2.tgz#a9e6fec3c7dda85f8bb1b3ba7028604556fc825e" - dependencies: - buffer-shims "^1.0.0" - core-util-is "~1.0.0" - inherits "~2.0.1" - isarray "~1.0.0" - process-nextick-args "~1.0.6" - string_decoder "~0.10.x" - util-deprecate "~1.0.1" - -readable-stream@~2.0.0: - version "2.0.6" - resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.0.6.tgz#8f90341e68a53ccc928788dacfcd11b36eb9b78e" - dependencies: - core-util-is "~1.0.0" - inherits "~2.0.1" - isarray "~1.0.0" - process-nextick-args "~1.0.6" - string_decoder "~0.10.x" - util-deprecate "~1.0.1" - -redent@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/redent/-/redent-1.0.0.tgz#cf916ab1fd5f1f16dfb20822dd6ec7f730c2afde" - dependencies: - indent-string "^2.1.0" - strip-indent "^1.0.1" - -regenerator-runtime@^0.10.0: - version "0.10.1" - resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.10.1.tgz#257f41961ce44558b18f7814af48c17559f9faeb" - -repeat-string@^1.5.2: - version "1.6.1" - resolved "https://registry.yarnpkg.com/repeat-string/-/repeat-string-1.6.1.tgz#8dcae470e1c88abc2d600fff4a776286da75e637" - -repeating@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/repeating/-/repeating-2.0.1.tgz#5214c53a926d3552707527fbab415dbc08d06dda" - dependencies: - is-finite "^1.0.0" - -request-progress@~2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/request-progress/-/request-progress-2.0.1.tgz#5d36bb57961c673aa5b788dbc8141fdf23b44e08" - dependencies: - throttleit "^1.0.0" - -request@^2.72.0, request@~2.79.0: - version "2.79.0" - resolved "https://registry.yarnpkg.com/request/-/request-2.79.0.tgz#4dfe5bf6be8b8cdc37fcf93e04b65577722710de" - dependencies: - aws-sign2 "~0.6.0" - aws4 "^1.2.1" - caseless "~0.11.0" - combined-stream "~1.0.5" - extend "~3.0.0" - forever-agent "~0.6.1" - form-data "~2.1.1" - har-validator "~2.0.6" - hawk "~3.1.3" - http-signature "~1.1.0" - is-typedarray "~1.0.0" - isstream "~0.1.2" - json-stringify-safe "~5.0.1" - mime-types "~2.1.7" - oauth-sign "~0.8.1" - qs "~6.3.0" - stringstream "~0.0.4" - tough-cookie "~2.3.0" - tunnel-agent "~0.4.1" - uuid "^3.0.0" - -reserved-words@^0.1.1: - version "0.1.1" - resolved "https://registry.yarnpkg.com/reserved-words/-/reserved-words-0.1.1.tgz#6f7c15e5e5614c50da961630da46addc87c0cef2" - -resolve-from@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-2.0.0.tgz#9480ab20e94ffa1d9e80a804c7ea147611966b57" - -resolve-pkg@^0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/resolve-pkg/-/resolve-pkg-0.1.0.tgz#02cc993410e2936962bd97166a1b077da9725531" - dependencies: - resolve-from "^2.0.0" - -resolve@^1.1.6, resolve@~1.1.0: - version "1.1.7" - resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.1.7.tgz#203114d82ad2c5ed9e8e0411b3932875e889e97b" - -revalidator@0.1.x: - version "0.1.8" - resolved "https://registry.yarnpkg.com/revalidator/-/revalidator-0.1.8.tgz#fece61bfa0c1b52a206bd6b18198184bdd523a3b" - -right-align@^0.1.1: - version "0.1.3" - resolved "https://registry.yarnpkg.com/right-align/-/right-align-0.1.3.tgz#61339b722fe6a3515689210d24e14c96148613ef" - dependencies: - align-text "^0.1.1" - -rimraf@2.x.x, rimraf@^2.5.1, rimraf@^2.5.2: - version "2.5.4" - resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.5.4.tgz#96800093cbf1a0c86bd95b4625467535c29dfa04" - dependencies: - glob "^7.0.5" - -rimraf@~2.2.8: - version "2.2.8" - resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.2.8.tgz#e439be2aaee327321952730f99a8929e4fc50582" - -"semver@2 || 3 || 4 || 5", semver@^5.1.0: - version "5.3.0" - resolved "https://registry.yarnpkg.com/semver/-/semver-5.3.0.tgz#9b2ce5d3de02d17c6012ad326aa6b4d0cf54f94f" - -shelljs@0.3.x: - version "0.3.0" - resolved "https://registry.yarnpkg.com/shelljs/-/shelljs-0.3.0.tgz#3596e6307a781544f591f37da618360f31db57b1" - -signal-exit@^3.0.0: - version "3.0.2" - resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.2.tgz#b5fdc08f1287ea1178628e415e25132b73646c6d" - -sntp@1.x.x: - version "1.0.9" - resolved "https://registry.yarnpkg.com/sntp/-/sntp-1.0.9.tgz#6541184cc90aeea6c6e7b35e2659082443c66198" - dependencies: - hoek "2.x.x" - -source-map-support@^0.4.0: - version "0.4.10" - resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.4.10.tgz#d7b19038040a14c0837a18e630a196453952b378" - dependencies: - source-map "^0.5.3" - -source-map@0.4.x: - version "0.4.4" - resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.4.4.tgz#eba4f5da9c0dc999de68032d8b4f76173652036b" - dependencies: - amdefine ">=0.0.4" - -source-map@^0.5.3, source-map@~0.5.1: - version "0.5.6" - resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.6.tgz#75ce38f52bf0733c5a7f0c118d81334a2bb5f412" - -spdx-correct@~1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/spdx-correct/-/spdx-correct-1.0.2.tgz#4b3073d933ff51f3912f03ac5519498a4150db40" - dependencies: - spdx-license-ids "^1.0.2" - -spdx-expression-parse@~1.0.0: - version "1.0.4" - resolved "https://registry.yarnpkg.com/spdx-expression-parse/-/spdx-expression-parse-1.0.4.tgz#9bdf2f20e1f40ed447fbe273266191fced51626c" - -spdx-license-ids@^1.0.2: - version "1.2.2" - resolved "https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-1.2.2.tgz#c9df7a3424594ade6bd11900d596696dc06bac57" - -sprintf-js@~1.0.2: - version "1.0.3" - resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c" - -sshpk@^1.7.0: - version "1.10.2" - resolved "https://registry.yarnpkg.com/sshpk/-/sshpk-1.10.2.tgz#d5a804ce22695515638e798dbe23273de070a5fa" - dependencies: - asn1 "~0.2.3" - assert-plus "^1.0.0" - dashdash "^1.12.0" - getpass "^0.1.1" - optionalDependencies: - bcrypt-pbkdf "^1.0.0" - ecc-jsbn "~0.1.1" - jodid25519 "^1.0.0" - jsbn "~0.1.0" - tweetnacl "~0.14.0" - -stack-trace@0.0.x: - version "0.0.9" - resolved "https://registry.yarnpkg.com/stack-trace/-/stack-trace-0.0.9.tgz#a8f6eaeca90674c333e7c43953f275b451510695" - -stream-buffers@^2.1.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/stream-buffers/-/stream-buffers-2.2.0.tgz#91d5f5130d1cef96dcfa7f726945188741d09ee4" - -string_decoder@~0.10.x: - version "0.10.31" - resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-0.10.31.tgz#62e203bc41766c6c28c9fc84301dab1c5310fa94" - -stringstream@~0.0.4: - version "0.0.5" - resolved "https://registry.yarnpkg.com/stringstream/-/stringstream-0.0.5.tgz#4e484cd4de5a0bbbee18e46307710a8a81621878" - -strip-ansi@^3.0.0: - version "3.0.1" - resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-3.0.1.tgz#6a385fb8853d952d5ff05d0e8aaf94278dc63dcf" - dependencies: - ansi-regex "^2.0.0" - -strip-ansi@~0.1.0: - version "0.1.1" - resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-0.1.1.tgz#39e8a98d044d150660abe4a6808acf70bb7bc991" - -strip-bom@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-2.0.0.tgz#6219a85616520491f35788bdbf1447a99c7e6b0e" - dependencies: - is-utf8 "^0.2.0" - -strip-indent@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/strip-indent/-/strip-indent-1.0.1.tgz#0c7962a6adefa7bbd4ac366460a638552ae1a0a2" - dependencies: - get-stdin "^4.0.1" - -strip-json-comments@1.0.x, strip-json-comments@~1.0.2: - version "1.0.4" - resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-1.0.4.tgz#1e15fbcac97d3ee99bf2d73b4c656b082bbafb91" - -strip-json-comments@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-2.0.1.tgz#3c531942e908c2697c0ec344858c286c7ca0a60a" - -supports-color@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-2.0.0.tgz#535d045ce6b6363fa40117084629995e9df324c7" - -tar-stream@^1.5.0: - version "1.5.2" - resolved "https://registry.yarnpkg.com/tar-stream/-/tar-stream-1.5.2.tgz#fbc6c6e83c1a19d4cb48c7d96171fc248effc7bf" - dependencies: - bl "^1.0.0" - end-of-stream "^1.0.0" - readable-stream "^2.0.0" - xtend "^4.0.0" - -temporary@^0.0.8: - version "0.0.8" - resolved "https://registry.yarnpkg.com/temporary/-/temporary-0.0.8.tgz#a18a981d28ba8ca36027fb3c30538c3ecb740ac0" - dependencies: - package ">= 1.0.0 < 1.2.0" - -text-table@^0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4" - -throttleit@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/throttleit/-/throttleit-1.0.0.tgz#9e785836daf46743145a5984b6268d828528ac6c" - -time-grunt@^1.4.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/time-grunt/-/time-grunt-1.4.0.tgz#062213e660c907e86f440556c01ea6597b712420" - dependencies: - chalk "^1.0.0" - date-time "^1.1.0" - figures "^1.0.0" - hooker "^0.2.3" - number-is-nan "^1.0.0" - pretty-ms "^2.1.0" - text-table "^0.2.0" - -time-zone@^0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/time-zone/-/time-zone-0.1.0.tgz#4a7728b6ac28db0e008f514043fd555bd5573b46" - -to-double-quotes@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/to-double-quotes/-/to-double-quotes-2.0.0.tgz#aaf231d6fa948949f819301bbab4484d8588e4a7" - -to-single-quotes@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/to-single-quotes/-/to-single-quotes-2.0.1.tgz#7cc29151f0f5f2c41946f119f5932fe554170125" - -tough-cookie@~2.3.0: - version "2.3.2" - resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-2.3.2.tgz#f081f76e4c85720e6c37a5faced737150d84072a" - dependencies: - punycode "^1.4.1" - -trim-newlines@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/trim-newlines/-/trim-newlines-1.0.0.tgz#5887966bb582a4503a41eb524f7d35011815a613" - -tunnel-agent@~0.4.1: - version "0.4.3" - resolved "https://registry.yarnpkg.com/tunnel-agent/-/tunnel-agent-0.4.3.tgz#6373db76909fe570e08d73583365ed828a74eeeb" - -tweetnacl@^0.14.3, tweetnacl@~0.14.0: - version "0.14.5" - resolved "https://registry.yarnpkg.com/tweetnacl/-/tweetnacl-0.14.5.tgz#5ae68177f192d4456269d108afa93ff8743f4f64" - -typedarray@~0.0.5: - version "0.0.6" - resolved "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777" - -uglify-js@~2.7.0: - version "2.7.5" - resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-2.7.5.tgz#4612c0c7baaee2ba7c487de4904ae122079f2ca8" - dependencies: - async "~0.2.6" - source-map "~0.5.1" - uglify-to-browserify "~1.0.0" - yargs "~3.10.0" - -uglify-to-browserify@~1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/uglify-to-browserify/-/uglify-to-browserify-1.0.2.tgz#6e0924d6bda6b5afe349e39a6d632850a0f882b7" - -underscore.string@~3.2.3: - version "3.2.3" - resolved "https://registry.yarnpkg.com/underscore.string/-/underscore.string-3.2.3.tgz#806992633665d5e5fcb4db1fb3a862eb68e9e6da" - -underscore@~1.6.0: - version "1.6.0" - resolved "https://registry.yarnpkg.com/underscore/-/underscore-1.6.0.tgz#8b38b10cacdef63337b8b24e4ff86d45aea529a8" - -uri-path@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/uri-path/-/uri-path-1.0.0.tgz#9747f018358933c31de0fccfd82d138e67262e32" - -util-deprecate@~1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" - -utile@0.2.x: - version "0.2.1" - resolved "https://registry.yarnpkg.com/utile/-/utile-0.2.1.tgz#930c88e99098d6220834c356cbd9a770522d90d7" - dependencies: - async "~0.2.9" - deep-equal "*" - i "0.3.x" - mkdirp "0.x.x" - ncp "0.4.x" - rimraf "2.x.x" - -uuid@^2.0.2: - version "2.0.3" - resolved "https://registry.yarnpkg.com/uuid/-/uuid-2.0.3.tgz#67e2e863797215530dff318e5bf9dcebfd47b21a" - -uuid@^3.0.0: - version "3.0.1" - resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.0.1.tgz#6544bba2dfda8c1cf17e629a3a305e2bb1fee6c1" - -validate-npm-package-license@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/validate-npm-package-license/-/validate-npm-package-license-3.0.1.tgz#2804babe712ad3379459acfbe24746ab2c303fbc" - dependencies: - spdx-correct "~1.0.0" - spdx-expression-parse "~1.0.0" - -verror@1.3.6: - version "1.3.6" - resolved "https://registry.yarnpkg.com/verror/-/verror-1.3.6.tgz#cff5df12946d297d2baaefaa2689e25be01c005c" - dependencies: - extsprintf "1.0.2" - -vow-fs@~0.3.4: - version "0.3.6" - resolved "https://registry.yarnpkg.com/vow-fs/-/vow-fs-0.3.6.tgz#2d4c59be22e2bf2618ddf597ab4baa923be7200d" - dependencies: - glob "^7.0.5" - uuid "^2.0.2" - vow "^0.4.7" - vow-queue "^0.4.1" - -vow-queue@^0.4.1: - version "0.4.2" - resolved "https://registry.yarnpkg.com/vow-queue/-/vow-queue-0.4.2.tgz#e7fe17160e15c7c4184d1b666a9bc64e18e30184" - dependencies: - vow "~0.4.0" - -vow@^0.4.7, vow@~0.4.0, vow@~0.4.1, vow@~0.4.8: - version "0.4.13" - resolved "https://registry.yarnpkg.com/vow/-/vow-0.4.13.tgz#e7c14f1bd9c8be0e7359a4597fe2d1ef6d1a7e88" - -walkdir@^0.0.11: - version "0.0.11" - resolved "https://registry.yarnpkg.com/walkdir/-/walkdir-0.0.11.tgz#a16d025eb931bd03b52f308caed0f40fcebe9532" - -which@~1.2.1, which@~1.2.10: - version "1.2.12" - resolved "https://registry.yarnpkg.com/which/-/which-1.2.12.tgz#de67b5e450269f194909ef23ece4ebe416fa1192" - dependencies: - isexe "^1.1.1" - -window-size@0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/window-size/-/window-size-0.1.0.tgz#5438cd2ea93b202efa3a19fe8887aee7c94f9c9d" - -winston@0.8.x: - version "0.8.3" - resolved "https://registry.yarnpkg.com/winston/-/winston-0.8.3.tgz#64b6abf4cd01adcaefd5009393b1d8e8bec19db0" - dependencies: - async "0.2.x" - colors "0.6.x" - cycle "1.0.x" - eyes "0.1.x" - isstream "0.1.x" - pkginfo "0.3.x" - stack-trace "0.0.x" - -wordwrap@0.0.2: - version "0.0.2" - resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-0.0.2.tgz#b79669bb42ecb409f83d583cad52ca17eaa1643f" - -wrappy@1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" - -xmlbuilder@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/xmlbuilder/-/xmlbuilder-3.1.0.tgz#2c86888f2d4eade850fa38ca7f7223f7209516e1" - dependencies: - lodash "^3.5.0" - -xtend@^4.0.0: - version "4.0.1" - resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.1.tgz#a5c6d532be656e23db820efb943a1f04998d63af" - -yargs@~3.10.0: - version "3.10.0" - resolved "https://registry.yarnpkg.com/yargs/-/yargs-3.10.0.tgz#f7ee7bd857dd7c1d2d38c0e74efbd681d1431fd1" - dependencies: - camelcase "^1.0.2" - cliui "^2.1.0" - decamelize "^1.0.0" - window-size "0.1.0" - -yauzl@2.4.1: - version "2.4.1" - resolved "https://registry.yarnpkg.com/yauzl/-/yauzl-2.4.1.tgz#9528f442dab1b2284e58b4379bb194e22e0c4005" - dependencies: - fd-slicer "~1.0.1" - -zip-stream@^1.1.0: - version "1.1.1" - resolved "https://registry.yarnpkg.com/zip-stream/-/zip-stream-1.1.1.tgz#5216b48bbb4d2651f64d5c6e6f09eb4a7399d557" - dependencies: - archiver-utils "^1.3.0" - compress-commons "^1.1.0" - lodash "^4.8.0" - readable-stream "^2.0.0" diff --git a/admin/bower_components/bootstrap-daterangepicker/.bower.json b/admin/bower_components/bootstrap-daterangepicker/.bower.json deleted file mode 100644 index 7775b7c..0000000 --- a/admin/bower_components/bootstrap-daterangepicker/.bower.json +++ /dev/null @@ -1,32 +0,0 @@ -{ - "name": "bootstrap-daterangepicker", - "main": [ - "daterangepicker.js", - "daterangepicker.css" - ], - "ignore": [ - "**/.*", - "node_modules", - "bower_components", - "test", - "tests", - "moment.js", - "moment.min.js" - ], - "dependencies": { - "jquery": "1.9.1 - 3", - "moment": ">=2.9.0" - }, - "homepage": "https://github.com/dangrossman/bootstrap-daterangepicker", - "version": "2.1.25", - "_release": "2.1.25", - "_resolution": { - "type": "version", - "tag": "v2.1.25", - "commit": "29bbf5a04df69fda363cedb534272ac344524e57" - }, - "_source": "https://github.com/dangrossman/bootstrap-daterangepicker.git", - "_target": "^2.1.25", - "_originalSource": "bootstrap-daterangepicker", - "_direct": true -} \ No newline at end of file diff --git a/admin/bower_components/bootstrap-daterangepicker/README.md b/admin/bower_components/bootstrap-daterangepicker/README.md deleted file mode 100644 index 30d3197..0000000 --- a/admin/bower_components/bootstrap-daterangepicker/README.md +++ /dev/null @@ -1,44 +0,0 @@ -# Date Range Picker for Bootstrap - -![Improvely.com](http://i.imgur.com/LbAMf3D.png) - -This date range picker component for Bootstrap creates a dropdown menu from which a user can -select a range of dates. I created it while building the UI for [Improvely](http://www.improvely.com), -which needed a way to select date ranges for reports. - -Features include limiting the selectable date range, localizable strings and date formats, -a single date picker mode, optional time picker (for e.g. making appointments or reservations), -and styles that match the default Bootstrap 3 theme. - -## [Documentation and Live Usage Examples](http://www.daterangepicker.com) - -## [See It In a Live Application](https://awio.iljmp.com/5/drpdemogh) - -## License - -This code is made available under the same license as Bootstrap. Moment.js is included in this repository -for convenience. It is available under the [MIT license](http://www.opensource.org/licenses/mit-license.php). - --- - -The MIT License (MIT) - -Copyright (c) 2012-2016 Dan Grossman - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -THE SOFTWARE. diff --git a/admin/bower_components/bootstrap-daterangepicker/bower.json b/admin/bower_components/bootstrap-daterangepicker/bower.json deleted file mode 100644 index d42995a..0000000 --- a/admin/bower_components/bootstrap-daterangepicker/bower.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "name": "bootstrap-daterangepicker", - "main": [ - "daterangepicker.js", - "daterangepicker.css" - ], - "ignore": [ - "**/.*", - "node_modules", - "bower_components", - "test", - "tests", - "moment.js", - "moment.min.js" - ], - "dependencies": { - "jquery": "1.9.1 - 3", - "moment": ">=2.9.0" - } -} diff --git a/admin/bower_components/bootstrap-daterangepicker/daterangepicker.css b/admin/bower_components/bootstrap-daterangepicker/daterangepicker.css deleted file mode 100644 index 86f4b77..0000000 --- a/admin/bower_components/bootstrap-daterangepicker/daterangepicker.css +++ /dev/null @@ -1,269 +0,0 @@ -.daterangepicker { - position: absolute; - color: inherit; - background-color: #fff; - border-radius: 4px; - width: 278px; - padding: 4px; - margin-top: 1px; - top: 100px; - left: 20px; - /* Calendars */ } - .daterangepicker:before, .daterangepicker:after { - position: absolute; - display: inline-block; - border-bottom-color: rgba(0, 0, 0, 0.2); - content: ''; } - .daterangepicker:before { - top: -7px; - border-right: 7px solid transparent; - border-left: 7px solid transparent; - border-bottom: 7px solid #ccc; } - .daterangepicker:after { - top: -6px; - border-right: 6px solid transparent; - border-bottom: 6px solid #fff; - border-left: 6px solid transparent; } - .daterangepicker.opensleft:before { - right: 9px; } - .daterangepicker.opensleft:after { - right: 10px; } - .daterangepicker.openscenter:before { - left: 0; - right: 0; - width: 0; - margin-left: auto; - margin-right: auto; } - .daterangepicker.openscenter:after { - left: 0; - right: 0; - width: 0; - margin-left: auto; - margin-right: auto; } - .daterangepicker.opensright:before { - left: 9px; } - .daterangepicker.opensright:after { - left: 10px; } - .daterangepicker.dropup { - margin-top: -5px; } - .daterangepicker.dropup:before { - top: initial; - bottom: -7px; - border-bottom: initial; - border-top: 7px solid #ccc; } - .daterangepicker.dropup:after { - top: initial; - bottom: -6px; - border-bottom: initial; - border-top: 6px solid #fff; } - .daterangepicker.dropdown-menu { - max-width: none; - z-index: 3001; } - .daterangepicker.single .ranges, .daterangepicker.single .calendar { - float: none; } - .daterangepicker.show-calendar .calendar { - display: block; } - .daterangepicker .calendar { - display: none; - max-width: 270px; - margin: 4px; } - .daterangepicker .calendar.single .calendar-table { - border: none; } - .daterangepicker .calendar th, .daterangepicker .calendar td { - white-space: nowrap; - text-align: center; - min-width: 32px; } - .daterangepicker .calendar-table { - border: 1px solid #fff; - padding: 4px; - border-radius: 4px; - background-color: #fff; } - .daterangepicker table { - width: 100%; - margin: 0; } - .daterangepicker td, .daterangepicker th { - text-align: center; - width: 20px; - height: 20px; - border-radius: 4px; - border: 1px solid transparent; - white-space: nowrap; - cursor: pointer; } - .daterangepicker td.available:hover, .daterangepicker th.available:hover { - background-color: #eee; - border-color: transparent; - color: inherit; } - .daterangepicker td.week, .daterangepicker th.week { - font-size: 80%; - color: #ccc; } - .daterangepicker td.off, .daterangepicker td.off.in-range, .daterangepicker td.off.start-date, .daterangepicker td.off.end-date { - background-color: #fff; - border-color: transparent; - color: #999; } - .daterangepicker td.in-range { - background-color: #ebf4f8; - border-color: transparent; - color: #000; - border-radius: 0; } - .daterangepicker td.start-date { - border-radius: 4px 0 0 4px; } - .daterangepicker td.end-date { - border-radius: 0 4px 4px 0; } - .daterangepicker td.start-date.end-date { - border-radius: 4px; } - .daterangepicker td.active, .daterangepicker td.active:hover { - background-color: #357ebd; - border-color: transparent; - color: #fff; } - .daterangepicker th.month { - width: auto; } - .daterangepicker td.disabled, .daterangepicker option.disabled { - color: #999; - cursor: not-allowed; - text-decoration: line-through; } - .daterangepicker select.monthselect, .daterangepicker select.yearselect { - font-size: 12px; - padding: 1px; - height: auto; - margin: 0; - cursor: default; } - .daterangepicker select.monthselect { - margin-right: 2%; - width: 56%; } - .daterangepicker select.yearselect { - width: 40%; } - .daterangepicker select.hourselect, .daterangepicker select.minuteselect, .daterangepicker select.secondselect, .daterangepicker select.ampmselect { - width: 50px; - margin-bottom: 0; } - .daterangepicker .input-mini { - border: 1px solid #ccc; - border-radius: 4px; - color: #555; - height: 30px; - line-height: 30px; - display: block; - vertical-align: middle; - margin: 0 0 5px 0; - padding: 0 6px 0 28px; - width: 100%; } - .daterangepicker .input-mini.active { - border: 1px solid #08c; - border-radius: 4px; } - .daterangepicker .daterangepicker_input { - position: relative; } - .daterangepicker .daterangepicker_input i { - position: absolute; - left: 8px; - top: 8px; } - .daterangepicker.rtl .input-mini { - padding-right: 28px; - padding-left: 6px; } - .daterangepicker.rtl .daterangepicker_input i { - left: auto; - right: 8px; } - .daterangepicker .calendar-time { - text-align: center; - margin: 5px auto; - line-height: 30px; - position: relative; - padding-left: 28px; } - .daterangepicker .calendar-time select.disabled { - color: #ccc; - cursor: not-allowed; } - -.ranges { - font-size: 11px; - float: none; - margin: 4px; - text-align: left; } - .ranges ul { - list-style: none; - margin: 0 auto; - padding: 0; - width: 100%; } - .ranges li { - font-size: 13px; - background-color: #f5f5f5; - border: 1px solid #f5f5f5; - border-radius: 4px; - color: #08c; - padding: 3px 12px; - margin-bottom: 8px; - cursor: pointer; } - .ranges li:hover { - background-color: #08c; - border: 1px solid #08c; - color: #fff; } - .ranges li.active { - background-color: #08c; - border: 1px solid #08c; - color: #fff; } - -/* Larger Screen Styling */ -@media (min-width: 564px) { - .daterangepicker { - width: auto; } - .daterangepicker .ranges ul { - width: 160px; } - .daterangepicker.single .ranges ul { - width: 100%; } - .daterangepicker.single .calendar.left { - clear: none; } - .daterangepicker.single.ltr .ranges, .daterangepicker.single.ltr .calendar { - float: left; } - .daterangepicker.single.rtl .ranges, .daterangepicker.single.rtl .calendar { - float: right; } - .daterangepicker.ltr { - direction: ltr; - text-align: left; } - .daterangepicker.ltr .calendar.left { - clear: left; - margin-right: 0; } - .daterangepicker.ltr .calendar.left .calendar-table { - border-right: none; - border-top-right-radius: 0; - border-bottom-right-radius: 0; } - .daterangepicker.ltr .calendar.right { - margin-left: 0; } - .daterangepicker.ltr .calendar.right .calendar-table { - border-left: none; - border-top-left-radius: 0; - border-bottom-left-radius: 0; } - .daterangepicker.ltr .left .daterangepicker_input { - padding-right: 12px; } - .daterangepicker.ltr .calendar.left .calendar-table { - padding-right: 12px; } - .daterangepicker.ltr .ranges, .daterangepicker.ltr .calendar { - float: left; } - .daterangepicker.rtl { - direction: rtl; - text-align: right; } - .daterangepicker.rtl .calendar.left { - clear: right; - margin-left: 0; } - .daterangepicker.rtl .calendar.left .calendar-table { - border-left: none; - border-top-left-radius: 0; - border-bottom-left-radius: 0; } - .daterangepicker.rtl .calendar.right { - margin-right: 0; } - .daterangepicker.rtl .calendar.right .calendar-table { - border-right: none; - border-top-right-radius: 0; - border-bottom-right-radius: 0; } - .daterangepicker.rtl .left .daterangepicker_input { - padding-left: 12px; } - .daterangepicker.rtl .calendar.left .calendar-table { - padding-left: 12px; } - .daterangepicker.rtl .ranges, .daterangepicker.rtl .calendar { - text-align: right; - float: right; } } -@media (min-width: 730px) { - .daterangepicker .ranges { - width: auto; } - .daterangepicker.ltr .ranges { - float: left; } - .daterangepicker.rtl .ranges { - float: right; } - .daterangepicker .calendar.left { - clear: none !important; } } diff --git a/admin/bower_components/bootstrap-daterangepicker/daterangepicker.js b/admin/bower_components/bootstrap-daterangepicker/daterangepicker.js deleted file mode 100644 index 733d274..0000000 --- a/admin/bower_components/bootstrap-daterangepicker/daterangepicker.js +++ /dev/null @@ -1,1626 +0,0 @@ -/** -* @version: 2.1.25 -* @author: Dan Grossman http://www.dangrossman.info/ -* @copyright: Copyright (c) 2012-2017 Dan Grossman. All rights reserved. -* @license: Licensed under the MIT license. See http://www.opensource.org/licenses/mit-license.php -* @website: https://www.daterangepicker.com/ -*/ -// Follow the UMD template https://github.com/umdjs/umd/blob/master/templates/returnExportsGlobal.js -(function (root, factory) { - if (typeof define === 'function' && define.amd) { - // AMD. Make globaly available as well - define(['moment', 'jquery'], function (moment, jquery) { - return (root.daterangepicker = factory(moment, jquery)); - }); - } else if (typeof module === 'object' && module.exports) { - // Node / Browserify - //isomorphic issue - var jQuery = (typeof window != 'undefined') ? window.jQuery : undefined; - if (!jQuery) { - jQuery = require('jquery'); - if (!jQuery.fn) jQuery.fn = {}; - } - module.exports = factory(require('moment'), jQuery); - } else { - // Browser globals - root.daterangepicker = factory(root.moment, root.jQuery); - } -}(this, function(moment, $) { - var DateRangePicker = function(element, options, cb) { - - //default settings for options - this.parentEl = 'body'; - this.element = $(element); - this.startDate = moment().startOf('day'); - this.endDate = moment().endOf('day'); - this.minDate = false; - this.maxDate = false; - this.dateLimit = false; - this.autoApply = false; - this.singleDatePicker = false; - this.showDropdowns = false; - this.showWeekNumbers = false; - this.showISOWeekNumbers = false; - this.showCustomRangeLabel = true; - this.timePicker = false; - this.timePicker24Hour = false; - this.timePickerIncrement = 1; - this.timePickerSeconds = false; - this.linkedCalendars = true; - this.autoUpdateInput = true; - this.alwaysShowCalendars = false; - this.ranges = {}; - - this.opens = 'right'; - if (this.element.hasClass('pull-right')) - this.opens = 'left'; - - this.drops = 'down'; - if (this.element.hasClass('dropup')) - this.drops = 'up'; - - this.buttonClasses = 'btn btn-sm'; - this.applyClass = 'btn-success'; - this.cancelClass = 'btn-default'; - - this.locale = { - direction: 'ltr', - format: moment.localeData().longDateFormat('L'), - separator: ' - ', - applyLabel: 'Apply', - cancelLabel: 'Cancel', - weekLabel: 'W', - customRangeLabel: 'Custom Range', - daysOfWeek: moment.weekdaysMin(), - monthNames: moment.monthsShort(), - firstDay: moment.localeData().firstDayOfWeek() - }; - - this.callback = function() { }; - - //some state information - this.isShowing = false; - this.leftCalendar = {}; - this.rightCalendar = {}; - - //custom options from user - if (typeof options !== 'object' || options === null) - options = {}; - - //allow setting options with data attributes - //data-api options will be overwritten with custom javascript options - options = $.extend(this.element.data(), options); - - //html template for the picker UI - if (typeof options.template !== 'string' && !(options.template instanceof $)) - options.template = '<div class="daterangepicker dropdown-menu">' + - '<div class="calendar left">' + - '<div class="daterangepicker_input">' + - '<input class="input-mini form-control" type="text" name="daterangepicker_start" value="" />' + - '<i class="fa fa-calendar glyphicon glyphicon-calendar"></i>' + - '<div class="calendar-time">' + - '<div></div>' + - '<i class="fa fa-clock-o glyphicon glyphicon-time"></i>' + - '</div>' + - '</div>' + - '<div class="calendar-table"></div>' + - '</div>' + - '<div class="calendar right">' + - '<div class="daterangepicker_input">' + - '<input class="input-mini form-control" type="text" name="daterangepicker_end" value="" />' + - '<i class="fa fa-calendar glyphicon glyphicon-calendar"></i>' + - '<div class="calendar-time">' + - '<div></div>' + - '<i class="fa fa-clock-o glyphicon glyphicon-time"></i>' + - '</div>' + - '</div>' + - '<div class="calendar-table"></div>' + - '</div>' + - '<div class="ranges">' + - '<div class="range_inputs">' + - '<button class="applyBtn" disabled="disabled" type="button"></button> ' + - '<button class="cancelBtn" type="button"></button>' + - '</div>' + - '</div>' + - '</div>'; - - this.parentEl = (options.parentEl && $(options.parentEl).length) ? $(options.parentEl) : $(this.parentEl); - this.container = $(options.template).appendTo(this.parentEl); - - // - // handle all the possible options overriding defaults - // - - if (typeof options.locale === 'object') { - - if (typeof options.locale.direction === 'string') - this.locale.direction = options.locale.direction; - - if (typeof options.locale.format === 'string') - this.locale.format = options.locale.format; - - if (typeof options.locale.separator === 'string') - this.locale.separator = options.locale.separator; - - if (typeof options.locale.daysOfWeek === 'object') - this.locale.daysOfWeek = options.locale.daysOfWeek.slice(); - - if (typeof options.locale.monthNames === 'object') - this.locale.monthNames = options.locale.monthNames.slice(); - - if (typeof options.locale.firstDay === 'number') - this.locale.firstDay = options.locale.firstDay; - - if (typeof options.locale.applyLabel === 'string') - this.locale.applyLabel = options.locale.applyLabel; - - if (typeof options.locale.cancelLabel === 'string') - this.locale.cancelLabel = options.locale.cancelLabel; - - if (typeof options.locale.weekLabel === 'string') - this.locale.weekLabel = options.locale.weekLabel; - - if (typeof options.locale.customRangeLabel === 'string'){ - //Support unicode chars in the custom range name. - var elem = document.createElement('textarea'); - elem.innerHTML = options.locale.customRangeLabel; - var rangeHtml = elem.value; - this.locale.customRangeLabel = rangeHtml; - } - } - this.container.addClass(this.locale.direction); - - if (typeof options.startDate === 'string') - this.startDate = moment(options.startDate, this.locale.format); - - if (typeof options.endDate === 'string') - this.endDate = moment(options.endDate, this.locale.format); - - if (typeof options.minDate === 'string') - this.minDate = moment(options.minDate, this.locale.format); - - if (typeof options.maxDate === 'string') - this.maxDate = moment(options.maxDate, this.locale.format); - - if (typeof options.startDate === 'object') - this.startDate = moment(options.startDate); - - if (typeof options.endDate === 'object') - this.endDate = moment(options.endDate); - - if (typeof options.minDate === 'object') - this.minDate = moment(options.minDate); - - if (typeof options.maxDate === 'object') - this.maxDate = moment(options.maxDate); - - // sanity check for bad options - if (this.minDate && this.startDate.isBefore(this.minDate)) - this.startDate = this.minDate.clone(); - - // sanity check for bad options - if (this.maxDate && this.endDate.isAfter(this.maxDate)) - this.endDate = this.maxDate.clone(); - - if (typeof options.applyClass === 'string') - this.applyClass = options.applyClass; - - if (typeof options.cancelClass === 'string') - this.cancelClass = options.cancelClass; - - if (typeof options.dateLimit === 'object') - this.dateLimit = options.dateLimit; - - if (typeof options.opens === 'string') - this.opens = options.opens; - - if (typeof options.drops === 'string') - this.drops = options.drops; - - if (typeof options.showWeekNumbers === 'boolean') - this.showWeekNumbers = options.showWeekNumbers; - - if (typeof options.showISOWeekNumbers === 'boolean') - this.showISOWeekNumbers = options.showISOWeekNumbers; - - if (typeof options.buttonClasses === 'string') - this.buttonClasses = options.buttonClasses; - - if (typeof options.buttonClasses === 'object') - this.buttonClasses = options.buttonClasses.join(' '); - - if (typeof options.showDropdowns === 'boolean') - this.showDropdowns = options.showDropdowns; - - if (typeof options.showCustomRangeLabel === 'boolean') - this.showCustomRangeLabel = options.showCustomRangeLabel; - - if (typeof options.singleDatePicker === 'boolean') { - this.singleDatePicker = options.singleDatePicker; - if (this.singleDatePicker) - this.endDate = this.startDate.clone(); - } - - if (typeof options.timePicker === 'boolean') - this.timePicker = options.timePicker; - - if (typeof options.timePickerSeconds === 'boolean') - this.timePickerSeconds = options.timePickerSeconds; - - if (typeof options.timePickerIncrement === 'number') - this.timePickerIncrement = options.timePickerIncrement; - - if (typeof options.timePicker24Hour === 'boolean') - this.timePicker24Hour = options.timePicker24Hour; - - if (typeof options.autoApply === 'boolean') - this.autoApply = options.autoApply; - - if (typeof options.autoUpdateInput === 'boolean') - this.autoUpdateInput = options.autoUpdateInput; - - if (typeof options.linkedCalendars === 'boolean') - this.linkedCalendars = options.linkedCalendars; - - if (typeof options.isInvalidDate === 'function') - this.isInvalidDate = options.isInvalidDate; - - if (typeof options.isCustomDate === 'function') - this.isCustomDate = options.isCustomDate; - - if (typeof options.alwaysShowCalendars === 'boolean') - this.alwaysShowCalendars = options.alwaysShowCalendars; - - // update day names order to firstDay - if (this.locale.firstDay != 0) { - var iterator = this.locale.firstDay; - while (iterator > 0) { - this.locale.daysOfWeek.push(this.locale.daysOfWeek.shift()); - iterator--; - } - } - - var start, end, range; - - //if no start/end dates set, check if an input element contains initial values - if (typeof options.startDate === 'undefined' && typeof options.endDate === 'undefined') { - if ($(this.element).is('input[type=text]')) { - var val = $(this.element).val(), - split = val.split(this.locale.separator); - - start = end = null; - - if (split.length == 2) { - start = moment(split[0], this.locale.format); - end = moment(split[1], this.locale.format); - } else if (this.singleDatePicker && val !== "") { - start = moment(val, this.locale.format); - end = moment(val, this.locale.format); - } - if (start !== null && end !== null) { - this.setStartDate(start); - this.setEndDate(end); - } - } - } - - if (typeof options.ranges === 'object') { - for (range in options.ranges) { - - if (typeof options.ranges[range][0] === 'string') - start = moment(options.ranges[range][0], this.locale.format); - else - start = moment(options.ranges[range][0]); - - if (typeof options.ranges[range][1] === 'string') - end = moment(options.ranges[range][1], this.locale.format); - else - end = moment(options.ranges[range][1]); - - // If the start or end date exceed those allowed by the minDate or dateLimit - // options, shorten the range to the allowable period. - if (this.minDate && start.isBefore(this.minDate)) - start = this.minDate.clone(); - - var maxDate = this.maxDate; - if (this.dateLimit && maxDate && start.clone().add(this.dateLimit).isAfter(maxDate)) - maxDate = start.clone().add(this.dateLimit); - if (maxDate && end.isAfter(maxDate)) - end = maxDate.clone(); - - // If the end of the range is before the minimum or the start of the range is - // after the maximum, don't display this range option at all. - if ((this.minDate && end.isBefore(this.minDate, this.timepicker ? 'minute' : 'day')) - || (maxDate && start.isAfter(maxDate, this.timepicker ? 'minute' : 'day'))) - continue; - - //Support unicode chars in the range names. - var elem = document.createElement('textarea'); - elem.innerHTML = range; - var rangeHtml = elem.value; - - this.ranges[rangeHtml] = [start, end]; - } - - var list = '<ul>'; - for (range in this.ranges) { - list += '<li data-range-key="' + range + '">' + range + '</li>'; - } - if (this.showCustomRangeLabel) { - list += '<li data-range-key="' + this.locale.customRangeLabel + '">' + this.locale.customRangeLabel + '</li>'; - } - list += '</ul>'; - this.container.find('.ranges').prepend(list); - } - - if (typeof cb === 'function') { - this.callback = cb; - } - - if (!this.timePicker) { - this.startDate = this.startDate.startOf('day'); - this.endDate = this.endDate.endOf('day'); - this.container.find('.calendar-time').hide(); - } - - //can't be used together for now - if (this.timePicker && this.autoApply) - this.autoApply = false; - - if (this.autoApply && typeof options.ranges !== 'object') { - this.container.find('.ranges').hide(); - } else if (this.autoApply) { - this.container.find('.applyBtn, .cancelBtn').addClass('hide'); - } - - if (this.singleDatePicker) { - this.container.addClass('single'); - this.container.find('.calendar.left').addClass('single'); - this.container.find('.calendar.left').show(); - this.container.find('.calendar.right').hide(); - this.container.find('.daterangepicker_input input, .daterangepicker_input > i').hide(); - if (this.timePicker) { - this.container.find('.ranges ul').hide(); - } else { - this.container.find('.ranges').hide(); - } - } - - if ((typeof options.ranges === 'undefined' && !this.singleDatePicker) || this.alwaysShowCalendars) { - this.container.addClass('show-calendar'); - } - - this.container.addClass('opens' + this.opens); - - //swap the position of the predefined ranges if opens right - if (typeof options.ranges !== 'undefined' && this.opens == 'right') { - this.container.find('.ranges').prependTo( this.container.find('.calendar.left').parent() ); - } - - //apply CSS classes and labels to buttons - this.container.find('.applyBtn, .cancelBtn').addClass(this.buttonClasses); - if (this.applyClass.length) - this.container.find('.applyBtn').addClass(this.applyClass); - if (this.cancelClass.length) - this.container.find('.cancelBtn').addClass(this.cancelClass); - this.container.find('.applyBtn').html(this.locale.applyLabel); - this.container.find('.cancelBtn').html(this.locale.cancelLabel); - - // - // event listeners - // - - this.container.find('.calendar') - .on('click.daterangepicker', '.prev', $.proxy(this.clickPrev, this)) - .on('click.daterangepicker', '.next', $.proxy(this.clickNext, this)) - .on('mousedown.daterangepicker', 'td.available', $.proxy(this.clickDate, this)) - .on('mouseenter.daterangepicker', 'td.available', $.proxy(this.hoverDate, this)) - .on('mouseleave.daterangepicker', 'td.available', $.proxy(this.updateFormInputs, this)) - .on('change.daterangepicker', 'select.yearselect', $.proxy(this.monthOrYearChanged, this)) - .on('change.daterangepicker', 'select.monthselect', $.proxy(this.monthOrYearChanged, this)) - .on('change.daterangepicker', 'select.hourselect,select.minuteselect,select.secondselect,select.ampmselect', $.proxy(this.timeChanged, this)) - .on('click.daterangepicker', '.daterangepicker_input input', $.proxy(this.showCalendars, this)) - .on('focus.daterangepicker', '.daterangepicker_input input', $.proxy(this.formInputsFocused, this)) - .on('blur.daterangepicker', '.daterangepicker_input input', $.proxy(this.formInputsBlurred, this)) - .on('change.daterangepicker', '.daterangepicker_input input', $.proxy(this.formInputsChanged, this)); - - this.container.find('.ranges') - .on('click.daterangepicker', 'button.applyBtn', $.proxy(this.clickApply, this)) - .on('click.daterangepicker', 'button.cancelBtn', $.proxy(this.clickCancel, this)) - .on('click.daterangepicker', 'li', $.proxy(this.clickRange, this)) - .on('mouseenter.daterangepicker', 'li', $.proxy(this.hoverRange, this)) - .on('mouseleave.daterangepicker', 'li', $.proxy(this.updateFormInputs, this)); - - if (this.element.is('input') || this.element.is('button')) { - this.element.on({ - 'click.daterangepicker': $.proxy(this.show, this), - 'focus.daterangepicker': $.proxy(this.show, this), - 'keyup.daterangepicker': $.proxy(this.elementChanged, this), - 'keydown.daterangepicker': $.proxy(this.keydown, this) - }); - } else { - this.element.on('click.daterangepicker', $.proxy(this.toggle, this)); - } - - // - // if attached to a text input, set the initial value - // - - if (this.element.is('input') && !this.singleDatePicker && this.autoUpdateInput) { - this.element.val(this.startDate.format(this.locale.format) + this.locale.separator + this.endDate.format(this.locale.format)); - this.element.trigger('change'); - } else if (this.element.is('input') && this.autoUpdateInput) { - this.element.val(this.startDate.format(this.locale.format)); - this.element.trigger('change'); - } - - }; - - DateRangePicker.prototype = { - - constructor: DateRangePicker, - - setStartDate: function(startDate) { - if (typeof startDate === 'string') - this.startDate = moment(startDate, this.locale.format); - - if (typeof startDate === 'object') - this.startDate = moment(startDate); - - if (!this.timePicker) - this.startDate = this.startDate.startOf('day'); - - if (this.timePicker && this.timePickerIncrement) - this.startDate.minute(Math.round(this.startDate.minute() / this.timePickerIncrement) * this.timePickerIncrement); - - if (this.minDate && this.startDate.isBefore(this.minDate)) { - this.startDate = this.minDate.clone(); - if (this.timePicker && this.timePickerIncrement) - this.startDate.minute(Math.round(this.startDate.minute() / this.timePickerIncrement) * this.timePickerIncrement); - } - - if (this.maxDate && this.startDate.isAfter(this.maxDate)) { - this.startDate = this.maxDate.clone(); - if (this.timePicker && this.timePickerIncrement) - this.startDate.minute(Math.floor(this.startDate.minute() / this.timePickerIncrement) * this.timePickerIncrement); - } - - if (!this.isShowing) - this.updateElement(); - - this.updateMonthsInView(); - }, - - setEndDate: function(endDate) { - if (typeof endDate === 'string') - this.endDate = moment(endDate, this.locale.format); - - if (typeof endDate === 'object') - this.endDate = moment(endDate); - - if (!this.timePicker) - this.endDate = this.endDate.endOf('day'); - - if (this.timePicker && this.timePickerIncrement) - this.endDate.minute(Math.round(this.endDate.minute() / this.timePickerIncrement) * this.timePickerIncrement); - - if (this.endDate.isBefore(this.startDate)) - this.endDate = this.startDate.clone(); - - if (this.maxDate && this.endDate.isAfter(this.maxDate)) - this.endDate = this.maxDate.clone(); - - if (this.dateLimit && this.startDate.clone().add(this.dateLimit).isBefore(this.endDate)) - this.endDate = this.startDate.clone().add(this.dateLimit); - - this.previousRightTime = this.endDate.clone(); - - if (!this.isShowing) - this.updateElement(); - - this.updateMonthsInView(); - }, - - isInvalidDate: function() { - return false; - }, - - isCustomDate: function() { - return false; - }, - - updateView: function() { - if (this.timePicker) { - this.renderTimePicker('left'); - this.renderTimePicker('right'); - if (!this.endDate) { - this.container.find('.right .calendar-time select').attr('disabled', 'disabled').addClass('disabled'); - } else { - this.container.find('.right .calendar-time select').removeAttr('disabled').removeClass('disabled'); - } - } - if (this.endDate) { - this.container.find('input[name="daterangepicker_end"]').removeClass('active'); - this.container.find('input[name="daterangepicker_start"]').addClass('active'); - } else { - this.container.find('input[name="daterangepicker_end"]').addClass('active'); - this.container.find('input[name="daterangepicker_start"]').removeClass('active'); - } - this.updateMonthsInView(); - this.updateCalendars(); - this.updateFormInputs(); - }, - - updateMonthsInView: function() { - if (this.endDate) { - - //if both dates are visible already, do nothing - if (!this.singleDatePicker && this.leftCalendar.month && this.rightCalendar.month && - (this.startDate.format('YYYY-MM') == this.leftCalendar.month.format('YYYY-MM') || this.startDate.format('YYYY-MM') == this.rightCalendar.month.format('YYYY-MM')) - && - (this.endDate.format('YYYY-MM') == this.leftCalendar.month.format('YYYY-MM') || this.endDate.format('YYYY-MM') == this.rightCalendar.month.format('YYYY-MM')) - ) { - return; - } - - this.leftCalendar.month = this.startDate.clone().date(2); - if (!this.linkedCalendars && (this.endDate.month() != this.startDate.month() || this.endDate.year() != this.startDate.year())) { - this.rightCalendar.month = this.endDate.clone().date(2); - } else { - this.rightCalendar.month = this.startDate.clone().date(2).add(1, 'month'); - } - - } else { - if (this.leftCalendar.month.format('YYYY-MM') != this.startDate.format('YYYY-MM') && this.rightCalendar.month.format('YYYY-MM') != this.startDate.format('YYYY-MM')) { - this.leftCalendar.month = this.startDate.clone().date(2); - this.rightCalendar.month = this.startDate.clone().date(2).add(1, 'month'); - } - } - if (this.maxDate && this.linkedCalendars && !this.singleDatePicker && this.rightCalendar.month > this.maxDate) { - this.rightCalendar.month = this.maxDate.clone().date(2); - this.leftCalendar.month = this.maxDate.clone().date(2).subtract(1, 'month'); - } - }, - - updateCalendars: function() { - - if (this.timePicker) { - var hour, minute, second; - if (this.endDate) { - hour = parseInt(this.container.find('.left .hourselect').val(), 10); - minute = parseInt(this.container.find('.left .minuteselect').val(), 10); - second = this.timePickerSeconds ? parseInt(this.container.find('.left .secondselect').val(), 10) : 0; - if (!this.timePicker24Hour) { - var ampm = this.container.find('.left .ampmselect').val(); - if (ampm === 'PM' && hour < 12) - hour += 12; - if (ampm === 'AM' && hour === 12) - hour = 0; - } - } else { - hour = parseInt(this.container.find('.right .hourselect').val(), 10); - minute = parseInt(this.container.find('.right .minuteselect').val(), 10); - second = this.timePickerSeconds ? parseInt(this.container.find('.right .secondselect').val(), 10) : 0; - if (!this.timePicker24Hour) { - var ampm = this.container.find('.right .ampmselect').val(); - if (ampm === 'PM' && hour < 12) - hour += 12; - if (ampm === 'AM' && hour === 12) - hour = 0; - } - } - this.leftCalendar.month.hour(hour).minute(minute).second(second); - this.rightCalendar.month.hour(hour).minute(minute).second(second); - } - - this.renderCalendar('left'); - this.renderCalendar('right'); - - //highlight any predefined range matching the current start and end dates - this.container.find('.ranges li').removeClass('active'); - if (this.endDate == null) return; - - this.calculateChosenLabel(); - }, - - renderCalendar: function(side) { - - // - // Build the matrix of dates that will populate the calendar - // - - var calendar = side == 'left' ? this.leftCalendar : this.rightCalendar; - var month = calendar.month.month(); - var year = calendar.month.year(); - var hour = calendar.month.hour(); - var minute = calendar.month.minute(); - var second = calendar.month.second(); - var daysInMonth = moment([year, month]).daysInMonth(); - var firstDay = moment([year, month, 1]); - var lastDay = moment([year, month, daysInMonth]); - var lastMonth = moment(firstDay).subtract(1, 'month').month(); - var lastYear = moment(firstDay).subtract(1, 'month').year(); - var daysInLastMonth = moment([lastYear, lastMonth]).daysInMonth(); - var dayOfWeek = firstDay.day(); - - //initialize a 6 rows x 7 columns array for the calendar - var calendar = []; - calendar.firstDay = firstDay; - calendar.lastDay = lastDay; - - for (var i = 0; i < 6; i++) { - calendar[i] = []; - } - - //populate the calendar with date objects - var startDay = daysInLastMonth - dayOfWeek + this.locale.firstDay + 1; - if (startDay > daysInLastMonth) - startDay -= 7; - - if (dayOfWeek == this.locale.firstDay) - startDay = daysInLastMonth - 6; - - var curDate = moment([lastYear, lastMonth, startDay, 12, minute, second]); - - var col, row; - for (var i = 0, col = 0, row = 0; i < 42; i++, col++, curDate = moment(curDate).add(24, 'hour')) { - if (i > 0 && col % 7 === 0) { - col = 0; - row++; - } - calendar[row][col] = curDate.clone().hour(hour).minute(minute).second(second); - curDate.hour(12); - - if (this.minDate && calendar[row][col].format('YYYY-MM-DD') == this.minDate.format('YYYY-MM-DD') && calendar[row][col].isBefore(this.minDate) && side == 'left') { - calendar[row][col] = this.minDate.clone(); - } - - if (this.maxDate && calendar[row][col].format('YYYY-MM-DD') == this.maxDate.format('YYYY-MM-DD') && calendar[row][col].isAfter(this.maxDate) && side == 'right') { - calendar[row][col] = this.maxDate.clone(); - } - - } - - //make the calendar object available to hoverDate/clickDate - if (side == 'left') { - this.leftCalendar.calendar = calendar; - } else { - this.rightCalendar.calendar = calendar; - } - - // - // Display the calendar - // - - var minDate = side == 'left' ? this.minDate : this.startDate; - var maxDate = this.maxDate; - var selected = side == 'left' ? this.startDate : this.endDate; - var arrow = this.locale.direction == 'ltr' ? {left: 'chevron-left', right: 'chevron-right'} : {left: 'chevron-right', right: 'chevron-left'}; - - var html = '<table class="table-condensed">'; - html += '<thead>'; - html += '<tr>'; - - // add empty cell for week number - if (this.showWeekNumbers || this.showISOWeekNumbers) - html += '<th></th>'; - - if ((!minDate || minDate.isBefore(calendar.firstDay)) && (!this.linkedCalendars || side == 'left')) { - html += '<th class="prev available"><i class="fa fa-' + arrow.left + ' glyphicon glyphicon-' + arrow.left + '"></i></th>'; - } else { - html += '<th></th>'; - } - - var dateHtml = this.locale.monthNames[calendar[1][1].month()] + calendar[1][1].format(" YYYY"); - - if (this.showDropdowns) { - var currentMonth = calendar[1][1].month(); - var currentYear = calendar[1][1].year(); - var maxYear = (maxDate && maxDate.year()) || (currentYear + 5); - var minYear = (minDate && minDate.year()) || (currentYear - 50); - var inMinYear = currentYear == minYear; - var inMaxYear = currentYear == maxYear; - - var monthHtml = '<select class="monthselect">'; - for (var m = 0; m < 12; m++) { - if ((!inMinYear || m >= minDate.month()) && (!inMaxYear || m <= maxDate.month())) { - monthHtml += "<option value='" + m + "'" + - (m === currentMonth ? " selected='selected'" : "") + - ">" + this.locale.monthNames[m] + "</option>"; - } else { - monthHtml += "<option value='" + m + "'" + - (m === currentMonth ? " selected='selected'" : "") + - " disabled='disabled'>" + this.locale.monthNames[m] + "</option>"; - } - } - monthHtml += "</select>"; - - var yearHtml = '<select class="yearselect">'; - for (var y = minYear; y <= maxYear; y++) { - yearHtml += '<option value="' + y + '"' + - (y === currentYear ? ' selected="selected"' : '') + - '>' + y + '</option>'; - } - yearHtml += '</select>'; - - dateHtml = monthHtml + yearHtml; - } - - html += '<th colspan="5" class="month">' + dateHtml + '</th>'; - if ((!maxDate || maxDate.isAfter(calendar.lastDay)) && (!this.linkedCalendars || side == 'right' || this.singleDatePicker)) { - html += '<th class="next available"><i class="fa fa-' + arrow.right + ' glyphicon glyphicon-' + arrow.right + '"></i></th>'; - } else { - html += '<th></th>'; - } - - html += '</tr>'; - html += '<tr>'; - - // add week number label - if (this.showWeekNumbers || this.showISOWeekNumbers) - html += '<th class="week">' + this.locale.weekLabel + '</th>'; - - $.each(this.locale.daysOfWeek, function(index, dayOfWeek) { - html += '<th>' + dayOfWeek + '</th>'; - }); - - html += '</tr>'; - html += '</thead>'; - html += '<tbody>'; - - //adjust maxDate to reflect the dateLimit setting in order to - //grey out end dates beyond the dateLimit - if (this.endDate == null && this.dateLimit) { - var maxLimit = this.startDate.clone().add(this.dateLimit).endOf('day'); - if (!maxDate || maxLimit.isBefore(maxDate)) { - maxDate = maxLimit; - } - } - - for (var row = 0; row < 6; row++) { - html += '<tr>'; - - // add week number - if (this.showWeekNumbers) - html += '<td class="week">' + calendar[row][0].week() + '</td>'; - else if (this.showISOWeekNumbers) - html += '<td class="week">' + calendar[row][0].isoWeek() + '</td>'; - - for (var col = 0; col < 7; col++) { - - var classes = []; - - //highlight today's date - if (calendar[row][col].isSame(new Date(), "day")) - classes.push('today'); - - //highlight weekends - if (calendar[row][col].isoWeekday() > 5) - classes.push('weekend'); - - //grey out the dates in other months displayed at beginning and end of this calendar - if (calendar[row][col].month() != calendar[1][1].month()) - classes.push('off'); - - //don't allow selection of dates before the minimum date - if (this.minDate && calendar[row][col].isBefore(this.minDate, 'day')) - classes.push('off', 'disabled'); - - //don't allow selection of dates after the maximum date - if (maxDate && calendar[row][col].isAfter(maxDate, 'day')) - classes.push('off', 'disabled'); - - //don't allow selection of date if a custom function decides it's invalid - if (this.isInvalidDate(calendar[row][col])) - classes.push('off', 'disabled'); - - //highlight the currently selected start date - if (calendar[row][col].format('YYYY-MM-DD') == this.startDate.format('YYYY-MM-DD')) - classes.push('active', 'start-date'); - - //highlight the currently selected end date - if (this.endDate != null && calendar[row][col].format('YYYY-MM-DD') == this.endDate.format('YYYY-MM-DD')) - classes.push('active', 'end-date'); - - //highlight dates in-between the selected dates - if (this.endDate != null && calendar[row][col] > this.startDate && calendar[row][col] < this.endDate) - classes.push('in-range'); - - //apply custom classes for this date - var isCustom = this.isCustomDate(calendar[row][col]); - if (isCustom !== false) { - if (typeof isCustom === 'string') - classes.push(isCustom); - else - Array.prototype.push.apply(classes, isCustom); - } - - var cname = '', disabled = false; - for (var i = 0; i < classes.length; i++) { - cname += classes[i] + ' '; - if (classes[i] == 'disabled') - disabled = true; - } - if (!disabled) - cname += 'available'; - - html += '<td class="' + cname.replace(/^\s+|\s+$/g, '') + '" data-title="' + 'r' + row + 'c' + col + '">' + calendar[row][col].date() + '</td>'; - - } - html += '</tr>'; - } - - html += '</tbody>'; - html += '</table>'; - - this.container.find('.calendar.' + side + ' .calendar-table').html(html); - - }, - - renderTimePicker: function(side) { - - // Don't bother updating the time picker if it's currently disabled - // because an end date hasn't been clicked yet - if (side == 'right' && !this.endDate) return; - - var html, selected, minDate, maxDate = this.maxDate; - - if (this.dateLimit && (!this.maxDate || this.startDate.clone().add(this.dateLimit).isAfter(this.maxDate))) - maxDate = this.startDate.clone().add(this.dateLimit); - - if (side == 'left') { - selected = this.startDate.clone(); - minDate = this.minDate; - } else if (side == 'right') { - selected = this.endDate.clone(); - minDate = this.startDate; - - //Preserve the time already selected - var timeSelector = this.container.find('.calendar.right .calendar-time div'); - if (timeSelector.html() != '') { - - selected.hour(timeSelector.find('.hourselect option:selected').val() || selected.hour()); - selected.minute(timeSelector.find('.minuteselect option:selected').val() || selected.minute()); - selected.second(timeSelector.find('.secondselect option:selected').val() || selected.second()); - - if (!this.timePicker24Hour) { - var ampm = timeSelector.find('.ampmselect option:selected').val(); - if (ampm === 'PM' && selected.hour() < 12) - selected.hour(selected.hour() + 12); - if (ampm === 'AM' && selected.hour() === 12) - selected.hour(0); - } - - } - - if (selected.isBefore(this.startDate)) - selected = this.startDate.clone(); - - if (maxDate && selected.isAfter(maxDate)) - selected = maxDate.clone(); - - } - - // - // hours - // - - html = '<select class="hourselect">'; - - var start = this.timePicker24Hour ? 0 : 1; - var end = this.timePicker24Hour ? 23 : 12; - - for (var i = start; i <= end; i++) { - var i_in_24 = i; - if (!this.timePicker24Hour) - i_in_24 = selected.hour() >= 12 ? (i == 12 ? 12 : i + 12) : (i == 12 ? 0 : i); - - var time = selected.clone().hour(i_in_24); - var disabled = false; - if (minDate && time.minute(59).isBefore(minDate)) - disabled = true; - if (maxDate && time.minute(0).isAfter(maxDate)) - disabled = true; - - if (i_in_24 == selected.hour() && !disabled) { - html += '<option value="' + i + '" selected="selected">' + i + '</option>'; - } else if (disabled) { - html += '<option value="' + i + '" disabled="disabled" class="disabled">' + i + '</option>'; - } else { - html += '<option value="' + i + '">' + i + '</option>'; - } - } - - html += '</select> '; - - // - // minutes - // - - html += ': <select class="minuteselect">'; - - for (var i = 0; i < 60; i += this.timePickerIncrement) { - var padded = i < 10 ? '0' + i : i; - var time = selected.clone().minute(i); - - var disabled = false; - if (minDate && time.second(59).isBefore(minDate)) - disabled = true; - if (maxDate && time.second(0).isAfter(maxDate)) - disabled = true; - - if (selected.minute() == i && !disabled) { - html += '<option value="' + i + '" selected="selected">' + padded + '</option>'; - } else if (disabled) { - html += '<option value="' + i + '" disabled="disabled" class="disabled">' + padded + '</option>'; - } else { - html += '<option value="' + i + '">' + padded + '</option>'; - } - } - - html += '</select> '; - - // - // seconds - // - - if (this.timePickerSeconds) { - html += ': <select class="secondselect">'; - - for (var i = 0; i < 60; i++) { - var padded = i < 10 ? '0' + i : i; - var time = selected.clone().second(i); - - var disabled = false; - if (minDate && time.isBefore(minDate)) - disabled = true; - if (maxDate && time.isAfter(maxDate)) - disabled = true; - - if (selected.second() == i && !disabled) { - html += '<option value="' + i + '" selected="selected">' + padded + '</option>'; - } else if (disabled) { - html += '<option value="' + i + '" disabled="disabled" class="disabled">' + padded + '</option>'; - } else { - html += '<option value="' + i + '">' + padded + '</option>'; - } - } - - html += '</select> '; - } - - // - // AM/PM - // - - if (!this.timePicker24Hour) { - html += '<select class="ampmselect">'; - - var am_html = ''; - var pm_html = ''; - - if (minDate && selected.clone().hour(12).minute(0).second(0).isBefore(minDate)) - am_html = ' disabled="disabled" class="disabled"'; - - if (maxDate && selected.clone().hour(0).minute(0).second(0).isAfter(maxDate)) - pm_html = ' disabled="disabled" class="disabled"'; - - if (selected.hour() >= 12) { - html += '<option value="AM"' + am_html + '>AM</option><option value="PM" selected="selected"' + pm_html + '>PM</option>'; - } else { - html += '<option value="AM" selected="selected"' + am_html + '>AM</option><option value="PM"' + pm_html + '>PM</option>'; - } - - html += '</select>'; - } - - this.container.find('.calendar.' + side + ' .calendar-time div').html(html); - - }, - - updateFormInputs: function() { - - //ignore mouse movements while an above-calendar text input has focus - if (this.container.find('input[name=daterangepicker_start]').is(":focus") || this.container.find('input[name=daterangepicker_end]').is(":focus")) - return; - - this.container.find('input[name=daterangepicker_start]').val(this.startDate.format(this.locale.format)); - if (this.endDate) - this.container.find('input[name=daterangepicker_end]').val(this.endDate.format(this.locale.format)); - - if (this.singleDatePicker || (this.endDate && (this.startDate.isBefore(this.endDate) || this.startDate.isSame(this.endDate)))) { - this.container.find('button.applyBtn').removeAttr('disabled'); - } else { - this.container.find('button.applyBtn').attr('disabled', 'disabled'); - } - - }, - - move: function() { - var parentOffset = { top: 0, left: 0 }, - containerTop; - var parentRightEdge = $(window).width(); - if (!this.parentEl.is('body')) { - parentOffset = { - top: this.parentEl.offset().top - this.parentEl.scrollTop(), - left: this.parentEl.offset().left - this.parentEl.scrollLeft() - }; - parentRightEdge = this.parentEl[0].clientWidth + this.parentEl.offset().left; - } - - if (this.drops == 'up') - containerTop = this.element.offset().top - this.container.outerHeight() - parentOffset.top; - else - containerTop = this.element.offset().top + this.element.outerHeight() - parentOffset.top; - this.container[this.drops == 'up' ? 'addClass' : 'removeClass']('dropup'); - - if (this.opens == 'left') { - this.container.css({ - top: containerTop, - right: parentRightEdge - this.element.offset().left - this.element.outerWidth(), - left: 'auto' - }); - if (this.container.offset().left < 0) { - this.container.css({ - right: 'auto', - left: 9 - }); - } - } else if (this.opens == 'center') { - this.container.css({ - top: containerTop, - left: this.element.offset().left - parentOffset.left + this.element.outerWidth() / 2 - - this.container.outerWidth() / 2, - right: 'auto' - }); - if (this.container.offset().left < 0) { - this.container.css({ - right: 'auto', - left: 9 - }); - } - } else { - this.container.css({ - top: containerTop, - left: this.element.offset().left - parentOffset.left, - right: 'auto' - }); - if (this.container.offset().left + this.container.outerWidth() > $(window).width()) { - this.container.css({ - left: 'auto', - right: 0 - }); - } - } - }, - - show: function(e) { - if (this.isShowing) return; - - // Create a click proxy that is private to this instance of datepicker, for unbinding - this._outsideClickProxy = $.proxy(function(e) { this.outsideClick(e); }, this); - - // Bind global datepicker mousedown for hiding and - $(document) - .on('mousedown.daterangepicker', this._outsideClickProxy) - // also support mobile devices - .on('touchend.daterangepicker', this._outsideClickProxy) - // also explicitly play nice with Bootstrap dropdowns, which stopPropagation when clicking them - .on('click.daterangepicker', '[data-toggle=dropdown]', this._outsideClickProxy) - // and also close when focus changes to outside the picker (eg. tabbing between controls) - .on('focusin.daterangepicker', this._outsideClickProxy); - - // Reposition the picker if the window is resized while it's open - $(window).on('resize.daterangepicker', $.proxy(function(e) { this.move(e); }, this)); - - this.oldStartDate = this.startDate.clone(); - this.oldEndDate = this.endDate.clone(); - this.previousRightTime = this.endDate.clone(); - - this.updateView(); - this.container.show(); - this.move(); - this.element.trigger('show.daterangepicker', this); - this.isShowing = true; - }, - - hide: function(e) { - if (!this.isShowing) return; - - //incomplete date selection, revert to last values - if (!this.endDate) { - this.startDate = this.oldStartDate.clone(); - this.endDate = this.oldEndDate.clone(); - } - - //if a new date range was selected, invoke the user callback function - if (!this.startDate.isSame(this.oldStartDate) || !this.endDate.isSame(this.oldEndDate)) - this.callback(this.startDate, this.endDate, this.chosenLabel); - - //if picker is attached to a text input, update it - this.updateElement(); - - $(document).off('.daterangepicker'); - $(window).off('.daterangepicker'); - this.container.hide(); - this.element.trigger('hide.daterangepicker', this); - this.isShowing = false; - }, - - toggle: function(e) { - if (this.isShowing) { - this.hide(); - } else { - this.show(); - } - }, - - outsideClick: function(e) { - var target = $(e.target); - // if the page is clicked anywhere except within the daterangerpicker/button - // itself then call this.hide() - if ( - // ie modal dialog fix - e.type == "focusin" || - target.closest(this.element).length || - target.closest(this.container).length || - target.closest('.calendar-table').length - ) return; - this.hide(); - this.element.trigger('outsideClick.daterangepicker', this); - }, - - showCalendars: function() { - this.container.addClass('show-calendar'); - this.move(); - this.element.trigger('showCalendar.daterangepicker', this); - }, - - hideCalendars: function() { - this.container.removeClass('show-calendar'); - this.element.trigger('hideCalendar.daterangepicker', this); - }, - - hoverRange: function(e) { - - //ignore mouse movements while an above-calendar text input has focus - if (this.container.find('input[name=daterangepicker_start]').is(":focus") || this.container.find('input[name=daterangepicker_end]').is(":focus")) - return; - - var label = e.target.getAttribute('data-range-key'); - - if (label == this.locale.customRangeLabel) { - this.updateView(); - } else { - var dates = this.ranges[label]; - this.container.find('input[name=daterangepicker_start]').val(dates[0].format(this.locale.format)); - this.container.find('input[name=daterangepicker_end]').val(dates[1].format(this.locale.format)); - } - - }, - - clickRange: function(e) { - var label = e.target.getAttribute('data-range-key'); - this.chosenLabel = label; - if (label == this.locale.customRangeLabel) { - this.showCalendars(); - } else { - var dates = this.ranges[label]; - this.startDate = dates[0]; - this.endDate = dates[1]; - - if (!this.timePicker) { - this.startDate.startOf('day'); - this.endDate.endOf('day'); - } - - if (!this.alwaysShowCalendars) - this.hideCalendars(); - this.clickApply(); - } - }, - - clickPrev: function(e) { - var cal = $(e.target).parents('.calendar'); - if (cal.hasClass('left')) { - this.leftCalendar.month.subtract(1, 'month'); - if (this.linkedCalendars) - this.rightCalendar.month.subtract(1, 'month'); - } else { - this.rightCalendar.month.subtract(1, 'month'); - } - this.updateCalendars(); - }, - - clickNext: function(e) { - var cal = $(e.target).parents('.calendar'); - if (cal.hasClass('left')) { - this.leftCalendar.month.add(1, 'month'); - } else { - this.rightCalendar.month.add(1, 'month'); - if (this.linkedCalendars) - this.leftCalendar.month.add(1, 'month'); - } - this.updateCalendars(); - }, - - hoverDate: function(e) { - - //ignore mouse movements while an above-calendar text input has focus - //if (this.container.find('input[name=daterangepicker_start]').is(":focus") || this.container.find('input[name=daterangepicker_end]').is(":focus")) - // return; - - //ignore dates that can't be selected - if (!$(e.target).hasClass('available')) return; - - //have the text inputs above calendars reflect the date being hovered over - var title = $(e.target).attr('data-title'); - var row = title.substr(1, 1); - var col = title.substr(3, 1); - var cal = $(e.target).parents('.calendar'); - var date = cal.hasClass('left') ? this.leftCalendar.calendar[row][col] : this.rightCalendar.calendar[row][col]; - - if (this.endDate && !this.container.find('input[name=daterangepicker_start]').is(":focus")) { - this.container.find('input[name=daterangepicker_start]').val(date.format(this.locale.format)); - } else if (!this.endDate && !this.container.find('input[name=daterangepicker_end]').is(":focus")) { - this.container.find('input[name=daterangepicker_end]').val(date.format(this.locale.format)); - } - - //highlight the dates between the start date and the date being hovered as a potential end date - var leftCalendar = this.leftCalendar; - var rightCalendar = this.rightCalendar; - var startDate = this.startDate; - if (!this.endDate) { - this.container.find('.calendar tbody td').each(function(index, el) { - - //skip week numbers, only look at dates - if ($(el).hasClass('week')) return; - - var title = $(el).attr('data-title'); - var row = title.substr(1, 1); - var col = title.substr(3, 1); - var cal = $(el).parents('.calendar'); - var dt = cal.hasClass('left') ? leftCalendar.calendar[row][col] : rightCalendar.calendar[row][col]; - - if ((dt.isAfter(startDate) && dt.isBefore(date)) || dt.isSame(date, 'day')) { - $(el).addClass('in-range'); - } else { - $(el).removeClass('in-range'); - } - - }); - } - - }, - - clickDate: function(e) { - - if (!$(e.target).hasClass('available')) return; - - var title = $(e.target).attr('data-title'); - var row = title.substr(1, 1); - var col = title.substr(3, 1); - var cal = $(e.target).parents('.calendar'); - var date = cal.hasClass('left') ? this.leftCalendar.calendar[row][col] : this.rightCalendar.calendar[row][col]; - - // - // this function needs to do a few things: - // * alternate between selecting a start and end date for the range, - // * if the time picker is enabled, apply the hour/minute/second from the select boxes to the clicked date - // * if autoapply is enabled, and an end date was chosen, apply the selection - // * if single date picker mode, and time picker isn't enabled, apply the selection immediately - // * if one of the inputs above the calendars was focused, cancel that manual input - // - - if (this.endDate || date.isBefore(this.startDate, 'day')) { //picking start - if (this.timePicker) { - var hour = parseInt(this.container.find('.left .hourselect').val(), 10); - if (!this.timePicker24Hour) { - var ampm = this.container.find('.left .ampmselect').val(); - if (ampm === 'PM' && hour < 12) - hour += 12; - if (ampm === 'AM' && hour === 12) - hour = 0; - } - var minute = parseInt(this.container.find('.left .minuteselect').val(), 10); - var second = this.timePickerSeconds ? parseInt(this.container.find('.left .secondselect').val(), 10) : 0; - date = date.clone().hour(hour).minute(minute).second(second); - } - this.endDate = null; - this.setStartDate(date.clone()); - } else if (!this.endDate && date.isBefore(this.startDate)) { - //special case: clicking the same date for start/end, - //but the time of the end date is before the start date - this.setEndDate(this.startDate.clone()); - } else { // picking end - if (this.timePicker) { - var hour = parseInt(this.container.find('.right .hourselect').val(), 10); - if (!this.timePicker24Hour) { - var ampm = this.container.find('.right .ampmselect').val(); - if (ampm === 'PM' && hour < 12) - hour += 12; - if (ampm === 'AM' && hour === 12) - hour = 0; - } - var minute = parseInt(this.container.find('.right .minuteselect').val(), 10); - var second = this.timePickerSeconds ? parseInt(this.container.find('.right .secondselect').val(), 10) : 0; - date = date.clone().hour(hour).minute(minute).second(second); - } - this.setEndDate(date.clone()); - if (this.autoApply) { - this.calculateChosenLabel(); - this.clickApply(); - } - } - - if (this.singleDatePicker) { - this.setEndDate(this.startDate); - if (!this.timePicker) - this.clickApply(); - } - - this.updateView(); - - //This is to cancel the blur event handler if the mouse was in one of the inputs - e.stopPropagation(); - - }, - - calculateChosenLabel: function () { - var customRange = true; - var i = 0; - for (var range in this.ranges) { - if (this.timePicker) { - if (this.startDate.isSame(this.ranges[range][0]) && this.endDate.isSame(this.ranges[range][1])) { - customRange = false; - this.chosenLabel = this.container.find('.ranges li:eq(' + i + ')').addClass('active').html(); - break; - } - } else { - //ignore times when comparing dates if time picker is not enabled - if (this.startDate.format('YYYY-MM-DD') == this.ranges[range][0].format('YYYY-MM-DD') && this.endDate.format('YYYY-MM-DD') == this.ranges[range][1].format('YYYY-MM-DD')) { - customRange = false; - this.chosenLabel = this.container.find('.ranges li:eq(' + i + ')').addClass('active').html(); - break; - } - } - i++; - } - if (customRange) { - if (this.showCustomRangeLabel) { - this.chosenLabel = this.container.find('.ranges li:last').addClass('active').html(); - } else { - this.chosenLabel = null; - } - this.showCalendars(); - } - }, - - clickApply: function(e) { - this.hide(); - this.element.trigger('apply.daterangepicker', this); - }, - - clickCancel: function(e) { - this.startDate = this.oldStartDate; - this.endDate = this.oldEndDate; - this.hide(); - this.element.trigger('cancel.daterangepicker', this); - }, - - monthOrYearChanged: function(e) { - var isLeft = $(e.target).closest('.calendar').hasClass('left'), - leftOrRight = isLeft ? 'left' : 'right', - cal = this.container.find('.calendar.'+leftOrRight); - - // Month must be Number for new moment versions - var month = parseInt(cal.find('.monthselect').val(), 10); - var year = cal.find('.yearselect').val(); - - if (!isLeft) { - if (year < this.startDate.year() || (year == this.startDate.year() && month < this.startDate.month())) { - month = this.startDate.month(); - year = this.startDate.year(); - } - } - - if (this.minDate) { - if (year < this.minDate.year() || (year == this.minDate.year() && month < this.minDate.month())) { - month = this.minDate.month(); - year = this.minDate.year(); - } - } - - if (this.maxDate) { - if (year > this.maxDate.year() || (year == this.maxDate.year() && month > this.maxDate.month())) { - month = this.maxDate.month(); - year = this.maxDate.year(); - } - } - - if (isLeft) { - this.leftCalendar.month.month(month).year(year); - if (this.linkedCalendars) - this.rightCalendar.month = this.leftCalendar.month.clone().add(1, 'month'); - } else { - this.rightCalendar.month.month(month).year(year); - if (this.linkedCalendars) - this.leftCalendar.month = this.rightCalendar.month.clone().subtract(1, 'month'); - } - this.updateCalendars(); - }, - - timeChanged: function(e) { - - var cal = $(e.target).closest('.calendar'), - isLeft = cal.hasClass('left'); - - var hour = parseInt(cal.find('.hourselect').val(), 10); - var minute = parseInt(cal.find('.minuteselect').val(), 10); - var second = this.timePickerSeconds ? parseInt(cal.find('.secondselect').val(), 10) : 0; - - if (!this.timePicker24Hour) { - var ampm = cal.find('.ampmselect').val(); - if (ampm === 'PM' && hour < 12) - hour += 12; - if (ampm === 'AM' && hour === 12) - hour = 0; - } - - if (isLeft) { - var start = this.startDate.clone(); - start.hour(hour); - start.minute(minute); - start.second(second); - this.setStartDate(start); - if (this.singleDatePicker) { - this.endDate = this.startDate.clone(); - } else if (this.endDate && this.endDate.format('YYYY-MM-DD') == start.format('YYYY-MM-DD') && this.endDate.isBefore(start)) { - this.setEndDate(start.clone()); - } - } else if (this.endDate) { - var end = this.endDate.clone(); - end.hour(hour); - end.minute(minute); - end.second(second); - this.setEndDate(end); - } - - //update the calendars so all clickable dates reflect the new time component - this.updateCalendars(); - - //update the form inputs above the calendars with the new time - this.updateFormInputs(); - - //re-render the time pickers because changing one selection can affect what's enabled in another - this.renderTimePicker('left'); - this.renderTimePicker('right'); - - }, - - formInputsChanged: function(e) { - var isRight = $(e.target).closest('.calendar').hasClass('right'); - var start = moment(this.container.find('input[name="daterangepicker_start"]').val(), this.locale.format); - var end = moment(this.container.find('input[name="daterangepicker_end"]').val(), this.locale.format); - - if (start.isValid() && end.isValid()) { - - if (isRight && end.isBefore(start)) - start = end.clone(); - - this.setStartDate(start); - this.setEndDate(end); - - if (isRight) { - this.container.find('input[name="daterangepicker_start"]').val(this.startDate.format(this.locale.format)); - } else { - this.container.find('input[name="daterangepicker_end"]').val(this.endDate.format(this.locale.format)); - } - - } - - this.updateView(); - }, - - formInputsFocused: function(e) { - - // Highlight the focused input - this.container.find('input[name="daterangepicker_start"], input[name="daterangepicker_end"]').removeClass('active'); - $(e.target).addClass('active'); - - // Set the state such that if the user goes back to using a mouse, - // the calendars are aware we're selecting the end of the range, not - // the start. This allows someone to edit the end of a date range without - // re-selecting the beginning, by clicking on the end date input then - // using the calendar. - var isRight = $(e.target).closest('.calendar').hasClass('right'); - if (isRight) { - this.endDate = null; - this.setStartDate(this.startDate.clone()); - this.updateView(); - } - - }, - - formInputsBlurred: function(e) { - - // this function has one purpose right now: if you tab from the first - // text input to the second in the UI, the endDate is nulled so that - // you can click another, but if you tab out without clicking anything - // or changing the input value, the old endDate should be retained - - if (!this.endDate) { - var val = this.container.find('input[name="daterangepicker_end"]').val(); - var end = moment(val, this.locale.format); - if (end.isValid()) { - this.setEndDate(end); - this.updateView(); - } - } - - }, - - elementChanged: function() { - if (!this.element.is('input')) return; - if (!this.element.val().length) return; - if (this.element.val().length < this.locale.format.length) return; - - var dateString = this.element.val().split(this.locale.separator), - start = null, - end = null; - - if (dateString.length === 2) { - start = moment(dateString[0], this.locale.format); - end = moment(dateString[1], this.locale.format); - } - - if (this.singleDatePicker || start === null || end === null) { - start = moment(this.element.val(), this.locale.format); - end = start; - } - - if (!start.isValid() || !end.isValid()) return; - - this.setStartDate(start); - this.setEndDate(end); - this.updateView(); - }, - - keydown: function(e) { - //hide on tab or enter - if ((e.keyCode === 9) || (e.keyCode === 13)) { - this.hide(); - } - }, - - updateElement: function() { - if (this.element.is('input') && !this.singleDatePicker && this.autoUpdateInput) { - this.element.val(this.startDate.format(this.locale.format) + this.locale.separator + this.endDate.format(this.locale.format)); - this.element.trigger('change'); - } else if (this.element.is('input') && this.autoUpdateInput) { - this.element.val(this.startDate.format(this.locale.format)); - this.element.trigger('change'); - } - }, - - remove: function() { - this.container.remove(); - this.element.off('.daterangepicker'); - this.element.removeData(); - } - - }; - - $.fn.daterangepicker = function(options, callback) { - this.each(function() { - var el = $(this); - if (el.data('daterangepicker')) - el.data('daterangepicker').remove(); - el.data('daterangepicker', new DateRangePicker(el, options, callback)); - }); - return this; - }; - - return DateRangePicker; - -})); diff --git a/admin/bower_components/bootstrap-daterangepicker/daterangepicker.scss b/admin/bower_components/bootstrap-daterangepicker/daterangepicker.scss deleted file mode 100644 index f61da96..0000000 --- a/admin/bower_components/bootstrap-daterangepicker/daterangepicker.scss +++ /dev/null @@ -1,611 +0,0 @@ -// -// A stylesheet for use with Bootstrap 3.x -// @author: Dan Grossman http://www.dangrossman.info/ -// @copyright: Copyright (c) 2012-2015 Dan Grossman. All rights reserved. -// @license: Licensed under the MIT license. See http://www.opensource.org/licenses/mit-license.php -// @website: https://www.improvely.com/ -// - -// -// VARIABLES -// - -// -// Settings - -// The class name to contain everything within. -$prefix-class: daterangepicker; -$arrow-size: 7px !default; - -// -// Colors -$daterangepicker-color: inherit !default; -$daterangepicker-bg-color: #fff !default; - -$daterangepicker-cell-color: $daterangepicker-color !default; -$daterangepicker-cell-border-color: transparent !default; -$daterangepicker-cell-bg-color: $daterangepicker-bg-color !default; - -$daterangepicker-cell-hover-color: $daterangepicker-color !default; -$daterangepicker-cell-hover-border-color: $daterangepicker-cell-border-color !default; -$daterangepicker-cell-hover-bg-color: #eee !default; - -$daterangepicker-in-range-color: #000 !default; -$daterangepicker-in-range-border-color: transparent !default; -$daterangepicker-in-range-bg-color: #ebf4f8 !default; - -$daterangepicker-active-color: #fff !default; -$daterangepicker-active-bg-color: #357ebd !default; -$daterangepicker-active-border-color: transparent !default; - -$daterangepicker-unselected-color: #999 !default; -$daterangepicker-unselected-border-color: transparent !default; -$daterangepicker-unselected-bg-color: #fff !default; - -// -// daterangepicker -$daterangepicker-width: 278px !default; -$daterangepicker-padding: 4px !default; -$daterangepicker-z-index: 3000 !default; - -$daterangepicker-border-size: 1px !default; -$daterangepicker-border-color: #ccc !default; -$daterangepicker-border-radius: 4px !default; - - -// -// Calendar -$daterangepicker-calendar-margin: $daterangepicker-padding !default; -$daterangepicker-calendar-bg-color: $daterangepicker-bg-color !default; - -$daterangepicker-calendar-border-size: 1px !default; -$daterangepicker-calendar-border-color: $daterangepicker-bg-color !default; -$daterangepicker-calendar-border-radius: $daterangepicker-border-radius !default; - -// -// Calendar Cells -$daterangepicker-cell-size: 20px !default; -$daterangepicker-cell-width: $daterangepicker-cell-size !default; -$daterangepicker-cell-height: $daterangepicker-cell-size !default; - -$daterangepicker-cell-border-radius: $daterangepicker-calendar-border-radius !default; -$daterangepicker-cell-border-size: 1px !default; - -// -// Dropdowns -$daterangepicker-dropdown-z-index: $daterangepicker-z-index + 1 !default; - -// -// Controls -$daterangepicker-control-height: 30px !default; -$daterangepicker-control-line-height: $daterangepicker-control-height !default; -$daterangepicker-control-color: #555 !default; - -$daterangepicker-control-border-size: 1px !default; -$daterangepicker-control-border-color: #ccc !default; -$daterangepicker-control-border-radius: 4px !default; - -$daterangepicker-control-active-border-size: 1px !default; -$daterangepicker-control-active-border-color: #08c !default; -$daterangepicker-control-active-border-radius: $daterangepicker-control-border-radius !default; - -$daterangepicker-control-disabled-color: #ccc !default; - -// -// Ranges -$daterangepicker-ranges-color: #08c !default; -$daterangepicker-ranges-bg-color: #f5f5f5 !default; - -$daterangepicker-ranges-border-size: 1px !default; -$daterangepicker-ranges-border-color: $daterangepicker-ranges-bg-color !default; -$daterangepicker-ranges-border-radius: $daterangepicker-border-radius !default; - -$daterangepicker-ranges-hover-color: #fff !default; -$daterangepicker-ranges-hover-bg-color: $daterangepicker-ranges-color !default; -$daterangepicker-ranges-hover-border-size: $daterangepicker-ranges-border-size !default; -$daterangepicker-ranges-hover-border-color: $daterangepicker-ranges-hover-bg-color !default; -$daterangepicker-ranges-hover-border-radius: $daterangepicker-border-radius !default; - -$daterangepicker-ranges-active-border-size: $daterangepicker-ranges-border-size !default; -$daterangepicker-ranges-active-border-color: $daterangepicker-ranges-bg-color !default; -$daterangepicker-ranges-active-border-radius: $daterangepicker-border-radius !default; - -// -// STYLESHEETS -// -.#{$prefix-class} { - position: absolute; - color: $daterangepicker-color; - background-color: $daterangepicker-bg-color; - border-radius: $daterangepicker-border-radius; - width: $daterangepicker-width; - padding: $daterangepicker-padding; - margin-top: $daterangepicker-border-size; - - // TODO: Should these be parameterized?? - top: 100px; - left: 20px; - - $arrow-prefix-size: $arrow-size; - $arrow-suffix-size: ($arrow-size - $daterangepicker-border-size); - - &:before, &:after { - position: absolute; - display: inline-block; - - border-bottom-color: rgba(0, 0, 0, 0.2); - content: ''; - } - - &:before { - top: -$arrow-prefix-size; - - border-right: $arrow-prefix-size solid transparent; - border-left: $arrow-prefix-size solid transparent; - border-bottom: $arrow-prefix-size solid $daterangepicker-border-color; - } - - &:after { - top: -$arrow-suffix-size; - - border-right: $arrow-suffix-size solid transparent; - border-bottom: $arrow-suffix-size solid $daterangepicker-bg-color; - border-left: $arrow-suffix-size solid transparent; - } - - &.opensleft { - &:before { - // TODO: Make this relative to prefix size. - right: $arrow-prefix-size + 2px; - } - - &:after { - // TODO: Make this relative to suffix size. - right: $arrow-suffix-size + 4px; - } - } - - &.openscenter { - &:before { - left: 0; - right: 0; - width: 0; - margin-left: auto; - margin-right: auto; - } - - &:after { - left: 0; - right: 0; - width: 0; - margin-left: auto; - margin-right: auto; - } - } - - &.opensright { - &:before { - // TODO: Make this relative to prefix size. - left: $arrow-prefix-size + 2px; - } - - &:after { - // TODO: Make this relative to suffix size. - left: $arrow-suffix-size + 4px; - } - } - - &.dropup { - margin-top: -5px; - - // NOTE: Note sure why these are special-cased. - &:before { - top: initial; - bottom: -$arrow-prefix-size; - border-bottom: initial; - border-top: $arrow-prefix-size solid $daterangepicker-border-color; - } - - &:after { - top: initial; - bottom:-$arrow-suffix-size; - border-bottom: initial; - border-top: $arrow-suffix-size solid $daterangepicker-bg-color; - } - } - - &.dropdown-menu { - max-width: none; - z-index: $daterangepicker-dropdown-z-index; - } - - &.single { - .ranges, .calendar { - float: none; - } - } - - /* Calendars */ - &.show-calendar { - .calendar { - display: block; - } - } - - .calendar { - display: none; - max-width: $daterangepicker-width - ($daterangepicker-calendar-margin * 2); - margin: $daterangepicker-calendar-margin; - - &.single { - .calendar-table { - border: none; - } - } - - th, td { - white-space: nowrap; - text-align: center; - - // TODO: Should this actually be hard-coded? - min-width: 32px; - } - } - - .calendar-table { - border: $daterangepicker-calendar-border-size solid $daterangepicker-calendar-border-color; - padding: $daterangepicker-calendar-margin; - border-radius: $daterangepicker-calendar-border-radius; - background-color: $daterangepicker-calendar-bg-color; - } - - table { - width: 100%; - margin: 0; - } - - td, th { - text-align: center; - width: $daterangepicker-cell-width; - height: $daterangepicker-cell-height; - border-radius: $daterangepicker-cell-border-radius; - border: $daterangepicker-cell-border-size solid $daterangepicker-cell-border-color; - white-space: nowrap; - cursor: pointer; - - &.available { - &:hover { - background-color: $daterangepicker-cell-hover-bg-color; - border-color: $daterangepicker-cell-hover-border-color; - color: $daterangepicker-cell-hover-color; - } - } - - &.week { - font-size: 80%; - color: #ccc; - } - } - - td { - &.off { - &, &.in-range, &.start-date, &.end-date { - background-color: $daterangepicker-unselected-bg-color; - border-color: $daterangepicker-unselected-border-color; - color: $daterangepicker-unselected-color; - } - } - - // - // Date Range - &.in-range { - background-color: $daterangepicker-in-range-bg-color; - border-color: $daterangepicker-in-range-border-color; - color: $daterangepicker-in-range-color; - - // TODO: Should this be static or should it be parameterized? - border-radius: 0; - } - - &.start-date { - border-radius: $daterangepicker-cell-border-radius 0 0 $daterangepicker-cell-border-radius; - } - - &.end-date { - border-radius: 0 $daterangepicker-cell-border-radius $daterangepicker-cell-border-radius 0; - } - - &.start-date.end-date { - border-radius: $daterangepicker-cell-border-radius; - } - - &.active { - &, &:hover { - background-color: $daterangepicker-active-bg-color; - border-color: $daterangepicker-active-border-color; - color: $daterangepicker-active-color; - } - } - } - - th { - &.month { - width: auto; - } - } - - // - // Disabled Controls - // - td, option { - &.disabled { - color: #999; - cursor: not-allowed; - text-decoration: line-through; - } - } - - select { - &.monthselect, &.yearselect { - font-size: 12px; - padding: 1px; - height: auto; - margin: 0; - cursor: default; - } - - &.monthselect { - margin-right: 2%; - width: 56%; - } - - &.yearselect { - width: 40%; - } - - &.hourselect, &.minuteselect, &.secondselect, &.ampmselect { - width: 50px; - margin-bottom: 0; - } - } - - // - // Text Input Controls (above calendar) - // - .input-mini { - border: $daterangepicker-control-border-size solid $daterangepicker-control-border-color; - border-radius: $daterangepicker-control-border-radius; - color: $daterangepicker-control-color; - height: $daterangepicker-control-line-height; - line-height: $daterangepicker-control-height; - display: block; - vertical-align: middle; - - // TODO: Should these all be static, too?? - margin: 0 0 5px 0; - padding: 0 6px 0 28px; - width: 100%; - - &.active { - border: $daterangepicker-control-active-border-size solid $daterangepicker-control-active-border-color; - border-radius: $daterangepicker-control-active-border-radius; - } - } - - .daterangepicker_input { - position: relative; - - i { - position: absolute; - - // NOTE: These appear to be eyeballed to me... - left: 8px; - top: 8px; - } - } - &.rtl { - .input-mini { - padding-right: 28px; - padding-left: 6px; - } - .daterangepicker_input i { - left: auto; - right: 8px; - } - } - - // - // Time Picker - // - .calendar-time { - text-align: center; - margin: 5px auto; - line-height: $daterangepicker-control-line-height; - position: relative; - padding-left: 28px; - - select { - &.disabled { - color: $daterangepicker-control-disabled-color; - cursor: not-allowed; - } - } - } -} - -// -// Predefined Ranges -// - -.ranges { - font-size: 11px; - float: none; - margin: 4px; - text-align: left; - - ul { - list-style: none; - margin: 0 auto; - padding: 0; - width: 100%; - } - - li { - font-size: 13px; - background-color: $daterangepicker-ranges-bg-color; - border: $daterangepicker-ranges-border-size solid $daterangepicker-ranges-border-color; - border-radius: $daterangepicker-ranges-border-radius; - color: $daterangepicker-ranges-color; - padding: 3px 12px; - margin-bottom: 8px; - cursor: pointer; - - &:hover { - background-color: $daterangepicker-ranges-hover-bg-color; - border: $daterangepicker-ranges-hover-border-size solid $daterangepicker-ranges-hover-border-color; - color: $daterangepicker-ranges-hover-color; - } - - &.active { - background-color: $daterangepicker-ranges-hover-bg-color; - border: $daterangepicker-ranges-hover-border-size solid $daterangepicker-ranges-hover-border-color; - color: $daterangepicker-ranges-hover-color; - } - } -} - -/* Larger Screen Styling */ -@media (min-width: 564px) { - .#{$prefix-class} { - width: auto; - - .ranges { - ul { - width: 160px; - } - } - - &.single { - .ranges { - ul { - width: 100%; - } - } - - .calendar.left { - clear: none; - } - - &.ltr { - .ranges, .calendar { - float:left; - } - } - &.rtl { - .ranges, .calendar { - float:right; - } - } - } - - &.ltr { - direction: ltr; - text-align: left; - .calendar{ - &.left { - clear: left; - margin-right: 0; - - .calendar-table { - border-right: none; - border-top-right-radius: 0; - border-bottom-right-radius: 0; - } - } - - &.right { - margin-left: 0; - - .calendar-table { - border-left: none; - border-top-left-radius: 0; - border-bottom-left-radius: 0; - } - } - } - - .left .daterangepicker_input { - padding-right: 12px; - } - - .calendar.left .calendar-table { - padding-right: 12px; - } - - .ranges, .calendar { - float: left; - } - } - &.rtl { - direction: rtl; - text-align: right; - .calendar{ - &.left { - clear: right; - margin-left: 0; - - .calendar-table { - border-left: none; - border-top-left-radius: 0; - border-bottom-left-radius: 0; - } - } - - &.right { - margin-right: 0; - - .calendar-table { - border-right: none; - border-top-right-radius: 0; - border-bottom-right-radius: 0; - } - } - } - - .left .daterangepicker_input { - padding-left: 12px; - } - - .calendar.left .calendar-table { - padding-left: 12px; - } - - .ranges, .calendar { - text-align: right; - float: right; - } - } - } -} - -@media (min-width: 730px) { - .#{$prefix-class} { - .ranges { - width: auto; - } - &.ltr { - .ranges { - float: left; - } - } - &.rtl { - .ranges { - float: right; - } - } - - .calendar.left { - clear: none !important; - } - } -} diff --git a/admin/bower_components/bootstrap-daterangepicker/demo.html b/admin/bower_components/bootstrap-daterangepicker/demo.html deleted file mode 100644 index 7633ee4..0000000 --- a/admin/bower_components/bootstrap-daterangepicker/demo.html +++ /dev/null @@ -1,369 +0,0 @@ -<!DOCTYPE html> -<html dir="ltr" lang="en-US"> - <head> - <meta charset="UTF-8" /> - <title>A date range picker for Bootstrap</title> - <link href="http://netdna.bootstrapcdn.com/bootstrap/3.3.2/css/bootstrap.min.css" rel="stylesheet"> - <link rel="stylesheet" type="text/css" media="all" href="daterangepicker.css" /> - <script type="text/javascript" src="https://code.jquery.com/jquery-1.11.3.min.js"></script> - <script type="text/javascript" src="http://netdna.bootstrapcdn.com/bootstrap/3.3.2/js/bootstrap.min.js"></script> - <script type="text/javascript" src="moment.js"></script> - <script type="text/javascript" src="daterangepicker.js"></script> - - <!-- HTML5 shim and Respond.js IE8 support of HTML5 elements and media queries --> - <!--[if lt IE 9]> - <script src="https://oss.maxcdn.com/libs/html5shiv/3.7.0/html5shiv.js"></script> - <script src="https://oss.maxcdn.com/libs/respond.js/1.4.2/respond.min.js"></script> - <![endif]--> - </head> - <body style="margin: 60px 0"> - - <div class="container"> - - <h1 style="margin: 0 0 20px 0">Configuration Builder</h1> - - <div class="well configurator"> - - <form> - <div class="row"> - - <div class="col-md-4"> - - <div class="form-group"> - <label for="parentEl">parentEl</label> - <input type="text" class="form-control" id="parentEl" value="" placeholder="body"> - </div> - - <div class="form-group"> - <label for="startDate">startDate</label> - <input type="text" class="form-control" id="startDate" value="07/01/2015"> - </div> - - <div class="form-group"> - <label for="endDate">endDate</label> - <input type="text" class="form-control" id="endDate" value="07/15/2015"> - </div> - - <div class="form-group"> - <label for="minDate">minDate</label> - <input type="text" class="form-control" id="minDate" value="" placeholder="MM/DD/YYYY"> - </div> - - <div class="form-group"> - <label for="maxDate">maxDate</label> - <input type="text" class="form-control" id="maxDate" value="" placeholder="MM/DD/YYYY"> - </div> - - </div> - <div class="col-md-4"> - - <div class="checkbox"> - <label> - <input type="checkbox" id="autoApply"> autoApply - </label> - </div> - - <div class="checkbox"> - <label> - <input type="checkbox" id="singleDatePicker"> singleDatePicker - </label> - </div> - - <div class="checkbox"> - <label> - <input type="checkbox" id="showDropdowns"> showDropdowns - </label> - </div> - - <div class="checkbox"> - <label> - <input type="checkbox" id="showWeekNumbers"> showWeekNumbers - </label> - </div> - - <div class="checkbox"> - <label> - <input type="checkbox" id="showISOWeekNumbers"> showISOWeekNumbers - </label> - </div> - - <div class="checkbox"> - <label> - <input type="checkbox" id="timePicker"> timePicker - </label> - </div> - - <div class="checkbox"> - <label> - <input type="checkbox" id="timePicker24Hour"> timePicker24Hour - </label> - </div> - - <div class="form-group"> - <label for="timePickerIncrement">timePickerIncrement (in minutes)</label> - <input type="text" class="form-control" id="timePickerIncrement" value="1"> - </div> - - <div class="checkbox"> - <label> - <input type="checkbox" id="timePickerSeconds"> timePickerSeconds - </label> - </div> - - <div class="checkbox"> - <label> - <input type="checkbox" id="dateLimit"> dateLimit (with example date range span) - </label> - </div> - - <div class="checkbox"> - <label> - <input type="checkbox" id="ranges"> ranges (with example predefined ranges) - </label> - </div> - - <div class="checkbox"> - <label> - <input type="checkbox" id="locale"> locale (with example settings) - </label> - <label id="rtl-wrap"> - <input type="checkbox" id="rtl"> RTL (right-to-left) - </label> - </div> - - <div class="checkbox"> - <label> - <input type="checkbox" id="alwaysShowCalendars"> alwaysShowCalendars - </label> - </div> - - </div> - <div class="col-md-4"> - - <div class="checkbox"> - <label> - <input type="checkbox" id="linkedCalendars" checked="checked"> linkedCalendars - </label> - </div> - - <div class="checkbox"> - <label> - <input type="checkbox" id="autoUpdateInput" checked="checked"> autoUpdateInput - </label> - </div> - - <div class="checkbox"> - <label> - <input type="checkbox" id="showCustomRangeLabel" checked="checked"> showCustomRangeLabel - </label> - </div> - - <div class="form-group"> - <label for="opens">opens</label> - <select id="opens" class="form-control"> - <option value="right" selected>right</option> - <option value="left">left</option> - <option value="center">center</option> - </select> - </div> - - <div class="form-group"> - <label for="drops">drops</label> - <select id="drops" class="form-control"> - <option value="down" selected>down</option> - <option value="up">up</option> - </select> - </div> - - <div class="form-group"> - <label for="buttonClasses">buttonClasses</label> - <input type="text" class="form-control" id="buttonClasses" value="btn btn-sm"> - </div> - - <div class="form-group"> - <label for="applyClass">applyClass</label> - <input type="text" class="form-control" id="applyClass" value="btn-success"> - </div> - - <div class="form-group"> - <label for="cancelClass">cancelClass</label> - <input type="text" class="form-control" id="cancelClass" value="btn-default"> - </div> - - </div> - - </div> - </form> - - </div> - - <div class="row"> - - <div class="col-md-4 col-md-offset-2 demo"> - <h4>Your Date Range Picker</h4> - <input type="text" id="config-demo" class="form-control"> - <i class="glyphicon glyphicon-calendar fa fa-calendar"></i> - </div> - - <div class="col-md-6"> - <h4>Configuration</h4> - - <div class="well"> - <textarea id="config-text" style="height: 300px; width: 100%; padding: 10px"></textarea> - </div> - </div> - - </div> - - </div> - - <style type="text/css"> - .demo { position: relative; } - .demo i { - position: absolute; bottom: 10px; right: 24px; top: auto; cursor: pointer; - } - </style> - - <script type="text/javascript"> - $(document).ready(function() { - - $('#config-text').keyup(function() { - eval($(this).val()); - }); - - $('.configurator input, .configurator select').change(function() { - updateConfig(); - }); - - $('.demo i').click(function() { - $(this).parent().find('input').click(); - }); - - $('#startDate').daterangepicker({ - singleDatePicker: true, - startDate: moment().subtract(6, 'days') - }); - - $('#endDate').daterangepicker({ - singleDatePicker: true, - startDate: moment() - }); - - updateConfig(); - - function updateConfig() { - var options = {}; - - if ($('#singleDatePicker').is(':checked')) - options.singleDatePicker = true; - - if ($('#showDropdowns').is(':checked')) - options.showDropdowns = true; - - if ($('#showWeekNumbers').is(':checked')) - options.showWeekNumbers = true; - - if ($('#showISOWeekNumbers').is(':checked')) - options.showISOWeekNumbers = true; - - if ($('#timePicker').is(':checked')) - options.timePicker = true; - - if ($('#timePicker24Hour').is(':checked')) - options.timePicker24Hour = true; - - if ($('#timePickerIncrement').val().length && $('#timePickerIncrement').val() != 1) - options.timePickerIncrement = parseInt($('#timePickerIncrement').val(), 10); - - if ($('#timePickerSeconds').is(':checked')) - options.timePickerSeconds = true; - - if ($('#autoApply').is(':checked')) - options.autoApply = true; - - if ($('#dateLimit').is(':checked')) - options.dateLimit = { days: 7 }; - - if ($('#ranges').is(':checked')) { - options.ranges = { - 'Today': [moment(), moment()], - 'Yesterday': [moment().subtract(1, 'days'), moment().subtract(1, 'days')], - 'Last 7 Days': [moment().subtract(6, 'days'), moment()], - 'Last 30 Days': [moment().subtract(29, 'days'), moment()], - 'This Month': [moment().startOf('month'), moment().endOf('month')], - 'Last Month': [moment().subtract(1, 'month').startOf('month'), moment().subtract(1, 'month').endOf('month')] - }; - } - - if ($('#locale').is(':checked')) { - $('#rtl-wrap').show(); - options.locale = { - direction: $('#rtl').is(':checked') ? 'rtl' : 'ltr', - format: 'MM/DD/YYYY HH:mm', - separator: ' - ', - applyLabel: 'Apply', - cancelLabel: 'Cancel', - fromLabel: 'From', - toLabel: 'To', - customRangeLabel: 'Custom', - daysOfWeek: ['Su', 'Mo', 'Tu', 'We', 'Th', 'Fr','Sa'], - monthNames: ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December'], - firstDay: 1 - }; - } else { - $('#rtl-wrap').hide(); - } - - if (!$('#linkedCalendars').is(':checked')) - options.linkedCalendars = false; - - if (!$('#autoUpdateInput').is(':checked')) - options.autoUpdateInput = false; - - if (!$('#showCustomRangeLabel').is(':checked')) - options.showCustomRangeLabel = false; - - if ($('#alwaysShowCalendars').is(':checked')) - options.alwaysShowCalendars = true; - - if ($('#parentEl').val().length) - options.parentEl = $('#parentEl').val(); - - if ($('#startDate').val().length) - options.startDate = $('#startDate').val(); - - if ($('#endDate').val().length) - options.endDate = $('#endDate').val(); - - if ($('#minDate').val().length) - options.minDate = $('#minDate').val(); - - if ($('#maxDate').val().length) - options.maxDate = $('#maxDate').val(); - - if ($('#opens').val().length && $('#opens').val() != 'right') - options.opens = $('#opens').val(); - - if ($('#drops').val().length && $('#drops').val() != 'down') - options.drops = $('#drops').val(); - - if ($('#buttonClasses').val().length && $('#buttonClasses').val() != 'btn btn-sm') - options.buttonClasses = $('#buttonClasses').val(); - - if ($('#applyClass').val().length && $('#applyClass').val() != 'btn-success') - options.applyClass = $('#applyClass').val(); - - if ($('#cancelClass').val().length && $('#cancelClass').val() != 'btn-default') - options.cancelClass = $('#cancelClass').val(); - - $('#config-text').val("$('#demo').daterangepicker(" + JSON.stringify(options, null, ' ') + ", function(start, end, label) {\n console.log(\"New date range selected: ' + start.format('YYYY-MM-DD') + ' to ' + end.format('YYYY-MM-DD') + ' (predefined range: ' + label + ')\");\n});"); - - $('#config-demo').daterangepicker(options, function(start, end, label) { console.log('New date range selected: ' + start.format('YYYY-MM-DD') + ' to ' + end.format('YYYY-MM-DD') + ' (predefined range: ' + label + ')'); }); - - } - - }); - </script> - - </body> -</html> diff --git a/admin/bower_components/bootstrap-daterangepicker/drp.png b/admin/bower_components/bootstrap-daterangepicker/drp.png deleted file mode 100644 index 9eee1fa..0000000 Binary files a/admin/bower_components/bootstrap-daterangepicker/drp.png and /dev/null differ diff --git a/admin/bower_components/bootstrap-daterangepicker/package.js b/admin/bower_components/bootstrap-daterangepicker/package.js deleted file mode 100644 index b89a2d6..0000000 --- a/admin/bower_components/bootstrap-daterangepicker/package.js +++ /dev/null @@ -1,18 +0,0 @@ -Package.describe({ - name: 'dangrossman:bootstrap-daterangepicker', - version: '2.1.25', - summary: 'Date range picker component for Bootstrap', - git: 'https://github.com/dangrossman/bootstrap-daterangepicker', - documentation: 'README.md' -}); - -Package.onUse(function(api) { - api.versionsFrom('METEOR@0.9.0.1'); - - api.use('twbs:bootstrap@3.3.4', ["client"], {weak: true}); - api.use('momentjs:moment@2.10.3', ["client"]); - api.use('jquery@1.11.3_2', ["client"]); - - api.addFiles('daterangepicker.js', ["client"]); - api.addFiles('daterangepicker.css', ["client"]); -}); diff --git a/admin/bower_components/bootstrap-daterangepicker/package.json b/admin/bower_components/bootstrap-daterangepicker/package.json deleted file mode 100644 index 9f915f8..0000000 --- a/admin/bower_components/bootstrap-daterangepicker/package.json +++ /dev/null @@ -1,32 +0,0 @@ -{ - "name": "bootstrap-daterangepicker", - "version": "2.1.25", - "description": "Date range picker component for Bootstrap", - "main": "daterangepicker.js", - "style": "daterangepicker.css", - "scripts": { - "scss": "node-sass daterangepicker.scss > daterangepicker.css", - "test": "echo \"Error: no test specified\" && exit 1" - }, - "repository": { - "type": "git", - "url": "https://github.com/dangrossman/bootstrap-daterangepicker.git" - }, - "author": { - "name": "Dan Grossman", - "email": "dan@dangrossman.info", - "url": "http://www.dangrossman.info" - }, - "license": "MIT", - "bugs": { - "url": "https://github.com/dangrossman/bootstrap-daterangepicker/issues" - }, - "homepage": "https://github.com/dangrossman/bootstrap-daterangepicker", - "dependencies": { - "jquery": ">=1.10", - "moment": "^2.9.0" - }, - "devDependencies": { - "node-sass": "^3.4.2" - } -} diff --git a/admin/bower_components/bootstrap-daterangepicker/website/index.html b/admin/bower_components/bootstrap-daterangepicker/website/index.html deleted file mode 100644 index 2389ea0..0000000 --- a/admin/bower_components/bootstrap-daterangepicker/website/index.html +++ /dev/null @@ -1,852 +0,0 @@ -<!DOCTYPE html> -<html lang="en"> - <head> - <meta charset="utf-8"> - <title>Date Range Picker for Bootstrap</title> - <link rel="stylesheet" type="text/css" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.2/css/bootstrap.min.css" /> - <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/font-awesome/4.3.0/css/font-awesome.min.css"> - <script src="https://code.jquery.com/jquery-1.11.3.min.js"></script> - <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.2/js/bootstrap.min.js"></script> - <script src="moment.min.js"></script> - - <script src="daterangepicker.js"></script> - <link rel="stylesheet" type="text/css" href="daterangepicker.css" /> - - <script src="website.js"></script> - <link rel="stylesheet" type="text/css" href="website.css" /> - - <!-- HTML5 shim and Respond.js IE8 support of HTML5 elements and media queries --> - <!--[if lt IE 9]> - <script src="https://oss.maxcdn.com/libs/html5shiv/3.7.0/html5shiv.js"></script> - <script src="https://oss.maxcdn.com/libs/respond.js/1.4.2/respond.min.js"></script> - <![endif]--> - - <meta name="google-site-verification" content="1fP-Eo9i1ozV4MUlqZv2vsLv1r7tvYutUb6i38v0_vg" /> - </head> - <body> - - <nav class="navbar navbar-inverse navbar-static-top"> - <div class="container"> - <ul class="nav navbar-nav"> - <li> - <a href="http://www.daterangepicker.com" rel="nofollow" style="background: #eee; color: #000"> - <span class="fa-stack"> - <i class="fa fa-circle fa-stack-2x"></i> - <i class="fa fa-calendar fa-stack-1x fa-inverse" style="color: #eee"></i> - </span> - Date Range Picker - </a> - </li> - </ul> - <ul class="nav navbar-nav navbar-right"> - <li> - <a href="http://www.websitegoodies.com" rel="nofollow" style="background: #f49a16"> - <span class="fa-stack"> - <i class="fa fa-circle fa-stack-2x"></i> - <i class="fa fa-wrench fa-stack-1x fa-inverse" style="color: #f49a16"></i> - </span> - Website Goodies - </a> - </li> - <li> - <a href="https://www.improvely.com" rel="nofollow" style="background: #00caff"> - <span class="fa-stack"> - <i class="fa fa-circle fa-stack-2x"></i> - <i class="fa fa-signal fa-stack-1x fa-inverse" style="color: #00caff"></i> - </span> - Improvely - </a> - </li> - <li> - <a href="https://www.w3counter.com" rel="nofollow" style="background: #009fe8"> - <span class="fa-stack"> - <i class="fa fa-circle fa-stack-2x"></i> - <i class="fa fa-pie-chart fa-stack-1x fa-inverse" style="color: #009fe8"></i> - </span> - W3Counter - </a> - </li> - <li> - <a href="https://www.visitorboost.com" rel="nofollow" style="background: #f55443"> - <span class="fa-stack"> - <i class="fa fa-circle fa-stack-2x"></i> - <i class="fa fa-line-chart fa-stack-1x fa-inverse" style="color: #f55443"></i> - </span> - Visitor Boost - </a> - </li> - </ul> - </div> - </nav> - - <div id="jumbo"> - <div class="container"> - <div class="row"> - <div class="col-md-6"> - - <h1 style="margin: 0 0 20px 0">Date Range Picker</h1> - <p style="font-size: 18px; margin-bottom: 0"> - A JavaScript component for choosing date ranges. - <br /> - Designed to work with the Bootstrap CSS framework. - </p> - - </div> - <div class="col-md-6" style="text-align: right; padding-right: 0"> - - <a href="https://github.com/dangrossman/bootstrap-daterangepicker" class="btn btn-lg btn-default">View on GitHub</a> - - &nbsp; - - <a href="https://github.com/dangrossman/bootstrap-daterangepicker/archive/master.zip" class="btn btn-lg btn-success">Download ZIP</a> - - <br /><br /> - - <iframe src="https://ghbtns.com/github-btn.html?user=dangrossman&repo=bootstrap-daterangepicker&type=star&count=true&size=large" frameborder="0" scrolling="0" width="160px" height="30px"></iframe> - - <iframe src="https://ghbtns.com/github-btn.html?user=dangrossman&repo=bootstrap-daterangepicker&type=watch&count=true&size=large&v=2" frameborder="0" scrolling="0" width="160px" height="30px"></iframe> - - <iframe src="https://ghbtns.com/github-btn.html?user=dangrossman&repo=bootstrap-daterangepicker&type=fork&count=true&size=large" frameborder="0" scrolling="0" width="160px" height="30px"></iframe> - - </div> - </div> - </div> - </div> - - <div class="container main"> - <div class="row"> - - <div id="nav-spy"> - - <div id="sidebar"> - <ul class="nav nav-pills nav-stacked"> - <li><a href="#usage">Usage</a></li> - <li> - <a href="#examples">Examples</a> - <ul class="nav nav-pills nav-stacked" style="margin: 0 0 0 15px; padding: 0; font-size: 13px"> - <li><a href="#ex1">Date Range Picker</a></li> - <li><a href="#ex2">Date and Time</a></li> - <li><a href="#ex3">Single Date Picker</a></li> - <li><a href="#ex4">Predefined Ranges</a></li> - <li><a href="#ex5">Input Initially Empty</a></li> - </ul> - </li> - <li><a href="#config">Configuration Generator</a></li> - <li><a href="#options">Options, Methods &amp; Events</a></li> - <li><a href="#license">License</a></li> - </ul> - - <script async src="//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script> - <!-- DRP Responsive --> - <ins class="adsbygoogle" - style="display:block" - data-ad-client="ca-pub-9095657276960731" - data-ad-slot="8963174596" - data-ad-format="auto"></ins> - <script> - (adsbygoogle = window.adsbygoogle || []).push({}); - </script> - </div> - - </div> - - <div id="rightcol"> - - <div id="overview" name="overview"> - - <p> - Originally built for reporting at <a href="https://www.improvely.com">Improvely</a>, - the Date Range Picker can be attached to any webpage element to pop up two calendars - for selecting dates, times, or from predefined ranges like "Last 30 Days". - </p> - - <a style="display: block; height: 300px; background: url('drp.png') top right no-repeat; background-size: cover; border: 1px solid #ccc; margin-bottom: 20px" href="https://awio.iljmp.com/5/drpdemo" title="Click for a Live Demo"></a> - - </div> - - <div id="usage" name="usage"> - - <h2>Usage</h2> - - <p> - Date Range Picker relies on <a href="http://getbootstrap.com/">Bootstrap</a>, <a href="http://www.jquery.com/">jQuery</a> and <a href="http://momentjs.com/">Moment.js</a>. - - Include the required scripts and stylesheet in your page: - </p> - - <script src="https://gist.github.com/dangrossman/fc0ec04cf073f0834c97.js"></script> - - <p>Then attach the picker to the element you want to trigger it:</p> - - <script src="https://gist.github.com/dangrossman/c4cc05fff6fe86cdca05.js"></script> - - <hr /> - - <p> - You can customize Date Range Picker with <a href="#options">options</a>, and - get notified when the user chooses new dates by providing a callback function. - </p> - - <script src="https://gist.github.com/dangrossman/90b0b82275c81ac5904a.js"></script> - - </div> - - <div id="examples" name="examples"> - - <h2>Examples</h2> - - <div id="ex1" name="ex1"> - - <h3>Date Range Picker</h3> - - <p> - The Date Range Picker is attached to a text input. It will use the current - value of the input to initialize, and update the input if new dates are chosen. - </p> - - <div class="row"> - <div class="col-md-8 col-xs-12"> - <script src="https://gist.github.com/dangrossman/8e97e05e68cb683c4d71.js"></script> - </div> - <div class="col-md-4 col-xs-12"> - <h4>Demo:</h4> - <input class="pull-right" type="text" name="daterange" value="01/15/2015 - 02/15/2015" /> - </div> - </div> - - <script type="text/javascript"> - $(function() { - $('input[name="daterange"]').daterangepicker(); - }); - </script> - - </div> - - <div id="ex2" name="ex2"> - - <h3>Date and Time</h3> - - <p> - The Date Range Picker can also be used to select times. Hour, minute and (optional) - second dropdowns are added below the calendars. An option exists to set the increment - count of the minutes dropdown to e.g. offer only 15-minute or 30-minute increments. - </p> - - <div class="row"> - <div class="col-md-7 col-xs-12"> - <script src="https://gist.github.com/dangrossman/89a40223f5a8a892fbf1.js"></script> - </div> - <div class="col-md-5 col-xs-12"> - <h4>Demo:</h4> - <input class="pull-right" type="text" name="daterange2" value="01/01/2015 1:30 PM - 01/01/2015 2:00 PM" /> - </div> - </div> - - <script type="text/javascript"> - $(function() { - $('input[name="daterange2"]').daterangepicker({ - timePicker: true, - timePickerIncrement: 30, - locale: { - format: 'MM/DD/YYYY h:mm A' - } - }); - }); - </script> - - </div> - - <div id="ex3" name="ex3"> - - <h3>Single Date Picker</h3> - - <p> - The Date Range Picker can be turned into a single date picker widget with only - one calendar. In this example, dropdowns to select a month and year have also - been enabled at the top of the calendar to quickly jump to different months. - </p> - - <div class="row"> - <div class="col-md-9 col-xs-12"> - <script src="https://gist.github.com/dangrossman/df41977acae070b3feb2.js"></script> - </div> - <div class="col-md-3 col-xs-12"> - <h4>Demo:</h4> - <input class="pull-right" type="text" name="birthdate" value="10/24/1984" /> - </div> - </div> - - <script type="text/javascript"> - $(function() { - $('input[name="birthdate"]').daterangepicker({ - singleDatePicker: true, - showDropdowns: true - }, - function(start, end, label) { - var years = moment().diff(start, 'years'); - alert("You are " + years + " years old."); - }); - }); - </script> - - </div> - - <div id="ex4" name="ex4"> - - <h3>Predefined Ranges</h3> - - <p> - This example shows the option to predefine date ranges that - the user can choose from a list. - </p> - - <div class="row"> - <div class="col-md-8 col-xs-12"> - <script src="https://gist.github.com/dangrossman/bd8cf6efbba1c2123adc.js"></script> - </div> - <div class="col-md-4 col-xs-12"> - <h4>Demo:</h4> - <div id="reportrange" class="pull-right" style="background: #fff; cursor: pointer; padding: 5px 10px; border: 1px solid #ccc; width: 100%"> - <i class="glyphicon glyphicon-calendar fa fa-calendar"></i>&nbsp; - <span></span> <b class="caret"></b> - </div> - </div> - </div> - - <script type="text/javascript"> - $(function() { - - var start = moment().subtract(29, 'days'); - var end = moment(); - - function cb(start, end) { - $('#reportrange span').html(start.format('MMMM D, YYYY') + ' - ' + end.format('MMMM D, YYYY')); - } - - $('#reportrange').daterangepicker({ - startDate: start, - endDate: end, - ranges: { - 'Today': [moment(), moment()], - 'Yesterday': [moment().subtract(1, 'days'), moment().subtract(1, 'days')], - 'Last 7 Days': [moment().subtract(6, 'days'), moment()], - 'Last 30 Days': [moment().subtract(29, 'days'), moment()], - 'This Month': [moment().startOf('month'), moment().endOf('month')], - 'Last Month': [moment().subtract(1, 'month').startOf('month'), moment().subtract(1, 'month').endOf('month')] - } - }, cb); - - cb(start, end); - - }); - </script> - - </div> - - <div id="ex5" name="ex5"> - - <h3>Input Initially Empty</h3> - - <p> - If you're using a date range as a filter, you may want to attach a picker to an - input but leave it empty by default. This example shows how to accomplish that - using the <code>autoUpdateInput</code> setting, and the <code>apply</code> and - <code>cancel</code> events. - </p> - - <div class="row"> - <div class="col-md-9 col-xs-12"> - <script src="https://gist.github.com/dangrossman/de22909c4d24f3f3508c.js"></script> - </div> - <div class="col-md-3 col-xs-12"> - <h4>Demo:</h4> - <input class="pull-right" type="text" name="datefilter" value="" /> - </div> - </div> - - - </div> - - <script type="text/javascript"> - $(function() { - - $('input[name="datefilter"]').daterangepicker({ - autoUpdateInput: false, - locale: { - cancelLabel: 'Clear' - } - }); - - $('input[name="datefilter"]').on('apply.daterangepicker', function(ev, picker) { - $(this).val(picker.startDate.format('MM/DD/YYYY') + ' - ' + picker.endDate.format('MM/DD/YYYY')); - }); - - $('input[name="datefilter"]').on('cancel.daterangepicker', function(ev, picker) { - $(this).val(''); - }); - - }); - </script> - - </div> - - - - <div id="config" name="config"> - - <h2>Configuration Generator</h2> - - <div class="well configurator"> - - <form> - <div class="row"> - - <div class="col-md-4"> - - <div class="form-group"> - <label for="parentEl">parentEl</label> - <input type="text" class="form-control" id="parentEl" value="" placeholder="body"> - </div> - - <div class="form-group"> - <label for="startDate">startDate</label> - <input type="text" class="form-control" id="startDate" value="07/01/2015"> - </div> - - <div class="form-group"> - <label for="endDate">endDate</label> - <input type="text" class="form-control" id="endDate" value="07/15/2015"> - </div> - - <div class="form-group"> - <label for="minDate">minDate</label> - <input type="text" class="form-control" id="minDate" value="" placeholder="MM/DD/YYYY"> - </div> - - <div class="form-group"> - <label for="maxDate">maxDate</label> - <input type="text" class="form-control" id="maxDate" value="" placeholder="MM/DD/YYYY"> - </div> - - <div class="form-group"> - <label for="opens">opens</label> - <select id="opens" class="form-control"> - <option value="right" selected>right</option> - <option value="left">left</option> - <option value="center">center</option> - </select> - </div> - - <div class="form-group"> - <label for="drops">drops</label> - <select id="drops" class="form-control"> - <option value="down" selected>down</option> - <option value="up">up</option> - </select> - </div> - - </div> - <div class="col-md-4"> - - <div class="checkbox"> - <label> - <input type="checkbox" id="showDropdowns"> showDropdowns - </label> - </div> - - <div class="checkbox"> - <label> - <input type="checkbox" id="showWeekNumbers"> showWeekNumbers - </label> - </div> - - <div class="checkbox"> - <label> - <input type="checkbox" id="showISOWeekNumbers"> showISOWeekNumbers - </label> - </div> - - <div class="checkbox"> - <label> - <input type="checkbox" id="singleDatePicker"> singleDatePicker - </label> - </div> - - <div class="checkbox"> - <label> - <input type="checkbox" id="timePicker"> timePicker - </label> - </div> - - <div class="checkbox"> - <label> - <input type="checkbox" id="timePicker24Hour"> timePicker24Hour - </label> - </div> - - <div class="form-group"> - <label for="timePickerIncrement">timePickerIncrement (in minutes)</label> - <input type="text" class="form-control" id="timePickerIncrement" value="1"> - </div> - - <div class="checkbox"> - <label> - <input type="checkbox" id="timePickerSeconds"> timePickerSeconds - </label> - </div> - - <div class="checkbox"> - <label> - <input type="checkbox" id="dateLimit"> dateLimit (with example date range span) - </label> - </div> - - <div class="checkbox"> - <label> - <input type="checkbox" id="locale"> locale (with example settings) - </label> - </div> - - <div class="checkbox"> - <label> - <input type="checkbox" id="autoApply"> autoApply - </label> - </div> - - <div class="checkbox"> - <label> - <input type="checkbox" id="linkedCalendars" checked="checked"> linkedCalendars - </label> - </div> - - <div class="checkbox"> - <label> - <input type="checkbox" id="autoUpdateInput" checked="checked"> autoUpdateInput - </label> - </div> - - </div> - <div class="col-md-4"> - - <div class="form-group"> - <label for="buttonClasses">buttonClasses</label> - <input type="text" class="form-control" id="buttonClasses" value="btn btn-sm"> - </div> - - <div class="form-group"> - <label for="applyClass">applyClass</label> - <input type="text" class="form-control" id="applyClass" value="btn-success"> - </div> - - <div class="form-group"> - <label for="cancelClass">cancelClass</label> - <input type="text" class="form-control" id="cancelClass" value="btn-default"> - </div> - - <div class="checkbox"> - <label> - <input type="checkbox" id="ranges"> ranges (with example predefined ranges) - </label> - </div> - - <div class="checkbox"> - <label> - <input type="checkbox" id="alwaysShowCalendars"> alwaysShowCalendars - </label> - </div> - - <div class="checkbox"> - <label> - <input type="checkbox" id="showCustomRangeLabel" checked="checked"> showCustomRangeLabel - </label> - </div> - - </div> - - </div> - </form> - - </div> - - <div class="row"> - - <div class="col-md-4 col-md-offset-2 demo"> - <h4>Your Date Range Picker</h4> - <input type="text" id="config-demo" class="form-control"> - <i class="glyphicon glyphicon-calendar fa fa-calendar"></i> - </div> - - <div class="col-md-6"> - <h4>Configuration</h4> - - <div class="well"> - <textarea id="config-text" style="height: 300px; width: 100%; padding: 10px"></textarea> - </div> - </div> - - </div> - - </div> - - <div id="options" name="options"> - - <h2>Options</h2> - - <ul class="nobullets"> - <li> - <code>startDate</code> (Date object, moment object or string) The start of the initially selected date range - </li> - <li> - <code>endDate</code>: (Date object, moment object or string) The end of the initially selected date range - </li> - <li> - <code>minDate</code>: (Date object, moment object or string) The earliest date a user may select - </li> - <li> - <code>maxDate</code>: (Date object, moment object or string) The latest date a user may select - </li> - <li> - <code>dateLimit</code>: (object) The maximum span between the selected start and end dates. Can have any property you can add to a moment object (i.e. days, months) - </li> - <li> - <code>showDropdowns</code>: (boolean) Show year and month select boxes above calendars to jump to a specific month and year - </li> - <li> - <code>showWeekNumbers</code>: (boolean) Show localized week numbers at the start of each week on the calendars - </li> - <li> - <code>showISOWeekNumbers</code>: (boolean) Show ISO week numbers at the start of each week on the calendars - </li> - <li> - <code>timePicker</code>: (boolean) Allow selection of dates with times, not just dates - </li> - <li> - <code>timePickerIncrement</code>: (number) Increment of the minutes selection list for times (i.e. 30 to allow only selection of times ending in 0 or 30) - </li> - <li> - <code>timePicker24Hour</code>: (boolean) Use 24-hour instead of 12-hour times, removing the AM/PM selection - </li> - <li> - <code>timePickerSeconds</code>: (boolean) Show seconds in the timePicker - </li> - <li> - <code>ranges</code>: (object) Set predefined date ranges the user can select from. Each key is the label for the range, and its value an array with two dates representing the bounds of the range - </li> - <li> - <code>showCustomRangeLabel</code>: (boolean) Displays an item labeled "Custom Range" at - the end of the list of predefined ranges, when the <code>ranges</code> option is used. - This option will be highlighted whenever the current date range selection does not match - one of the predefined ranges. Clicking it will display the calendars to select a new range. - </li> - <li> - <code>alwaysShowCalendars</code>: (boolean) Normally, if you use the <code>ranges</code> - option to specify pre-defined date ranges, calendars for choosing a custom date range are not shown until the user clicks "Custom Range". When this option is set to true, the calendars for choosing a custom date range are always shown instead. - </li> - <li> - <code>opens</code>: (string</code>: 'left'/'right'/'center') Whether the picker appears aligned to the left, to the right, or centered under the HTML element it's attached to - </li> - <li> - <code>drops</code>: (string</code>: 'down' or 'up') Whether the picker appears below (default) or above the HTML element it's attached to - </li> - <li> - <code>buttonClasses</code>: (array) CSS class names that will be added to all buttons in the picker - </li> - <li> - <code>applyClass</code>: (string) CSS class string that will be added to the apply button - </li> - <li> - <code>cancelClass</code>: (string) CSS class string that will be added to the cancel button - </li> - <li> - <code>locale</code>: (object) Allows you to provide localized strings for buttons and labels, customize the date format, and change the first day of week for the calendars. - Check off "locale (with example settings)" in the configuration generator to see how - to customize these options. - </li> - <li> - <code>singleDatePicker</code>: (boolean) Show only a single calendar to choose one date, instead of a range picker with two calendars; the start and end dates provided to your callback will be the same single date chosen - </li> - <li> - <code>autoApply</code>: (boolean) Hide the apply and cancel buttons, and automatically apply a new date range as soon as two dates or a predefined range is selected - </li> - <li> - <code>linkedCalendars</code>: (boolean) When enabled, the two calendars displayed will always be for two sequential months (i.e. January and February), and both will be advanced when clicking the left or right arrows above the calendars. When disabled, the two calendars can be individually advanced and display any month/year. - </li> - <li> - <code>isInvalidDate</code>: (function) A function that is passed each date in the two - calendars before they are displayed, and may return true or false to indicate whether - that date should be available for selection or not. - </li> - <li> - <code>isCustomDate</code>: (function) A function that is passed each date in the two - calendars before they are displayed, and may return a string or array of CSS class names - to apply to that date's calendar cell. - </li> - <li> - <code>autoUpdateInput</code>: (boolean) Indicates whether the date range picker should - automatically update the value of an <code>&lt;input&gt;</code> element it's attached to - at initialization and when the selected dates change. - </li> - <li> - <code>parentEl</code>: (string) jQuery selector of the parent element that the date range picker will be added to, if not provided this will be 'body' - </li> - </ul> - - </div> - - <div id="methods" name="methods"> - - <h2>Methods</h2> - - <p> - You can programmatically update the <code>startDate</code> and <code>endDate</code> - in the picker using the <code>setStartDate</code> and <code>setEndDate</code> methods. - You can access the Date Range Picker object and its functions and properties through - data properties of the element you attached it to. - </p> - - <script src="https://gist.github.com/dangrossman/8ff9b1220c9b5682e8bd.js"></script> - - <br /> - - <ul class="nobullets"> - <li> - <code>setStartDate(Date/moment/string)</code>: Sets the date range picker's currently selected start date to the provided date - </li> - <li> - <code>setEndDate(Date/moment/string)</code>: Sets the date range picker's currently selected end date to the provided date - </li> - </ul> - - <p style="margin: 0"><b>Example usage:</b></p> - - <script src="https://gist.github.com/dangrossman/e1a8effbaeacb50a1e31.js"></script> - - </div> - - <div id="events" name="events"> - - <h2>Events</h2> - - <p> - Several events are triggered on the element you attach the picker to, which you can listen for. - </p> - - <ul class="nobullets"> - <li> - <code>show.daterangepicker</code>: Triggered when the picker is shown - </li> - <li> - <code>hide.daterangepicker</code>: Triggered when the picker is hidden - </li> - <li> - <code>showCalendar.daterangepicker</code>: Triggered when the calendar(s) are shown - </li> - <li> - <code>hideCalendar.daterangepicker</code>: Triggered when the calendar(s) are hidden - </li> - <li> - <code>apply.daterangepicker</code>: Triggered when the apply button is clicked, - or when a predefined range is clicked - </li> - <li> - <code>cancel.daterangepicker</code>: Triggered when the cancel button is clicked - </li> - </ul> - - <p> - Some applications need a "clear" instead of a "cancel" functionality, which can be achieved by changing the button label and watching for the cancel event: - </p> - - <script src="https://gist.github.com/dangrossman/1bea78da703f2896564d.js"></script> - - <br /> - - <p> - While passing in a callback to the constructor is the easiest way to listen for changes in the selected date range, you can also do something every time the apply button is clicked even if the selection hasn't changed: - </p> - - <script src="https://gist.github.com/dangrossman/0c6c911fea1459b5fd13.js"></script> - - </div> - - <div id="license" name="license"> - - <h2>License</h2> - - <p>The MIT License (MIT)</p> - - <p>Copyright (c) 2012-2015 <a href="http://www.dangrossman.info">Dan Grossman</a></p> - - <p> - Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - </p> - - <p> - The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - </p> - - <p> - THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - </p> - - </div> - - <div id="comments"> - - <h2>Comments</h2> - - <div id="disqus_thread"></div> - <script type="text/javascript"> - /* * * CONFIGURATION VARIABLES: EDIT BEFORE PASTING INTO YOUR WEBPAGE * * */ - var disqus_url = 'http://www.dangrossman.info/2012/08/20/a-date-range-picker-for-twitter-bootstrap/'; - var disqus_identifier = '1045 http://www.dangrossman.info/?p=1045'; - var disqus_container_id = 'disqus_thread'; - var disqus_shortname = 'dangrossman'; - var disqus_title = "A Date Range Picker for Bootstrap"; - - /* * * DON'T EDIT BELOW THIS LINE * * */ - (function() { - var dsq = document.createElement('script'); dsq.type = 'text/javascript'; dsq.async = true; - dsq.src = '//' + disqus_shortname + '.disqus.com/embed.js'; - (document.getElementsByTagName('head')[0] || document.getElementsByTagName('body')[0]).appendChild(dsq); - })(); - </script> - <noscript>Please enable JavaScript to view the <a href="https://disqus.com/?ref_noscript">comments powered by Disqus.</a></noscript> - - </div> - - </div> - - </div> - </div> - - <!-- Begin W3Counter Tracking Code --> - <script type="text/javascript" src="https://www.w3counter.com/tracker.js"></script> - <script type="text/javascript"> - w3counter(90840); - </script> - <noscript> - <div><a href="http://www.w3counter.com"><img src="https://www.w3counter.com/tracker.php?id=90840" style="border: 0" alt="W3Counter" /></a></div> - </noscript> - <!-- End W3Counter Tracking Code --> - - <script type="text/javascript"> - var im_domain = 'awio'; - var im_project_id = 48; - (function(e,t){window._improvely=[];var n=e.getElementsByTagName("script")[0];var r=e.createElement("script");r.type="text/javascript";r.src="https://"+im_domain+".iljmp.com/improvely.js";r.async=true;n.parentNode.insertBefore(r,n);if(typeof t.init=="undefined"){t.init=function(e,t){window._improvely.push(["init",e,t])};t.goal=function(e){window._improvely.push(["goal",e])};t.conversion=function(e){window._improvely.push(["conversion",e])};t.label=function(e){window._improvely.push(["label",e])}}window.improvely=t;t.init(im_domain,im_project_id)})(document,window.improvely||[]) - </script> - - <script type="text/javascript"> - Shopify = { shop: 'www.improvely.com' }; - </script> - <script type="text/javascript" src="https://icf.improvely.com/icf-button.js?shop=www.improvely.com"></script> - - <div id="footer"> - Copyright &copy; 2015 <a href="http://www.awio.com">Awio Web Services LLC</a>. - &nbsp; - Developed and maintained by <a href="http://www.dangrossman.info/">Dan Grossman</a>. - &nbsp; - </div> - - </body> -</html> diff --git a/admin/bower_components/bootstrap-daterangepicker/website/website.css b/admin/bower_components/bootstrap-daterangepicker/website/website.css deleted file mode 100644 index c556f66..0000000 --- a/admin/bower_components/bootstrap-daterangepicker/website/website.css +++ /dev/null @@ -1,127 +0,0 @@ -body { - font-size: 15px; - line-height: 1.6em; - position: relative; - margin: 0; -} -.container { - width: 95%; - max-width: 1260px; -} -p, pre { - margin-bottom: 2em; -} -.main h2 { - font-weight: bold; - margin: 60px 0 20px 0; -} -.main h3 { - margin: 60px 0 20px 0; -} -.main h4 { - margin: 0 0 10px 0; - font-weight: bold; -} -ul.nobullets { - margin: 0; - padding: 0; - list-style-position: inside; -} -li { - padding-bottom: 1em; -} -#sidebar { - top: 20px; - width: 300px; -} -#sidebar ul { - margin-bottom: 5px; -} -#sidebar li { - margin-bottom: 0; - padding-bottom: 0; -} -#sidebar li ul { - display: none; -} -#sidebar li.active ul { - display: block; -} -#sidebar li li { - padding: 4px 0; -} -input[type="text"] { - padding: 6px; - width: 100%; - border-radius: 4px; -} -.navbar { - text-align: left; - margin: 0; - border: 0; -} -.navbar-inverse { - background: #222; -} -.navbar .container { - padding: 0 20px; -} -.navbar-nav li a:link, .navbar-nav li a:visited { - font-weight: bold; - color: #fff; - font-size: 16px; -} -.navbar-nav li { - background: #fff; -} -.navbar-nav li a:hover { - opacity: 0.8; -} -.navbar-nav li { - padding: 0; -} -.navbar-inverse .navbar-text { - margin: 18px 0 0 0; - color: #eee; -} -#footer { - background: #222; - margin-top: 80px; - padding: 30px; - color: #fff; - text-align: center; -} -#footer a:link, #footer a:visited { - color: #fff; - border-bottom: 1px dotted #fff; -} -#jumbo { - background: #f5f5f5 linear-gradient(to bottom,#eee 0,#f5f5f5 100%); - color: #000; - padding: 30px 0; - margin-bottom: 30px; -} -#jumbo .btn { - border-radius: 0; -} -#config .demo { position: relative; } -#config .demo i { position: absolute; bottom: 10px; right: 24px; top: auto; cursor: pointer; } - -#rightcol { - margin-left: 330px; -} - -#nav-spy { - float: left; - width: 300px; -} - -@media (max-width: 980px) { - #rightcol { - margin-left: 0; - } - #nav-spy { - float: none; - position: relative; - } -} \ No newline at end of file diff --git a/admin/bower_components/bootstrap-daterangepicker/website/website.js b/admin/bower_components/bootstrap-daterangepicker/website/website.js deleted file mode 100644 index a919a36..0000000 --- a/admin/bower_components/bootstrap-daterangepicker/website/website.js +++ /dev/null @@ -1,146 +0,0 @@ -$(document).ready(function() { - - $('#config-text').keyup(function() { - eval($(this).val()); - }); - - $('.configurator input, .configurator select').change(function() { - updateConfig(); - }); - - $('.demo i').click(function() { - $(this).parent().find('input').click(); - }); - - $('#startDate').daterangepicker({ - singleDatePicker: true, - startDate: moment().subtract(6, 'days') - }); - - $('#endDate').daterangepicker({ - singleDatePicker: true, - startDate: moment() - }); - - updateConfig(); - - function updateConfig() { - var options = {}; - - if ($('#singleDatePicker').is(':checked')) - options.singleDatePicker = true; - - if ($('#showDropdowns').is(':checked')) - options.showDropdowns = true; - - if ($('#showWeekNumbers').is(':checked')) - options.showWeekNumbers = true; - - if ($('#showISOWeekNumbers').is(':checked')) - options.showISOWeekNumbers = true; - - if ($('#timePicker').is(':checked')) - options.timePicker = true; - - if ($('#timePicker24Hour').is(':checked')) - options.timePicker24Hour = true; - - if ($('#timePickerIncrement').val().length && $('#timePickerIncrement').val() != 1) - options.timePickerIncrement = parseInt($('#timePickerIncrement').val(), 10); - - if ($('#timePickerSeconds').is(':checked')) - options.timePickerSeconds = true; - - if ($('#autoApply').is(':checked')) - options.autoApply = true; - - if ($('#dateLimit').is(':checked')) - options.dateLimit = { days: 7 }; - - if ($('#ranges').is(':checked')) { - options.ranges = { - 'Today': [moment(), moment()], - 'Yesterday': [moment().subtract(1, 'days'), moment().subtract(1, 'days')], - 'Last 7 Days': [moment().subtract(6, 'days'), moment()], - 'Last 30 Days': [moment().subtract(29, 'days'), moment()], - 'This Month': [moment().startOf('month'), moment().endOf('month')], - 'Last Month': [moment().subtract(1, 'month').startOf('month'), moment().subtract(1, 'month').endOf('month')] - }; - } - - if ($('#locale').is(':checked')) { - options.locale = { - format: 'MM/DD/YYYY', - separator: ' - ', - applyLabel: 'Apply', - cancelLabel: 'Cancel', - fromLabel: 'From', - toLabel: 'To', - customRangeLabel: 'Custom', - weekLabel: 'W', - daysOfWeek: ['Su', 'Mo', 'Tu', 'We', 'Th', 'Fr','Sa'], - monthNames: ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December'], - firstDay: 1 - }; - } - - if (!$('#linkedCalendars').is(':checked')) - options.linkedCalendars = false; - - if (!$('#autoUpdateInput').is(':checked')) - options.autoUpdateInput = false; - - if (!$('#showCustomRangeLabel').is(':checked')) - options.showCustomRangeLabel = false; - - if ($('#alwaysShowCalendars').is(':checked')) - options.alwaysShowCalendars = true; - - if ($('#parentEl').val().length) - options.parentEl = $('#parentEl').val(); - - if ($('#startDate').val().length) - options.startDate = $('#startDate').val(); - - if ($('#endDate').val().length) - options.endDate = $('#endDate').val(); - - if ($('#minDate').val().length) - options.minDate = $('#minDate').val(); - - if ($('#maxDate').val().length) - options.maxDate = $('#maxDate').val(); - - if ($('#opens').val().length && $('#opens').val() != 'right') - options.opens = $('#opens').val(); - - if ($('#drops').val().length && $('#drops').val() != 'down') - options.drops = $('#drops').val(); - - if ($('#buttonClasses').val().length && $('#buttonClasses').val() != 'btn btn-sm') - options.buttonClasses = $('#buttonClasses').val(); - - if ($('#applyClass').val().length && $('#applyClass').val() != 'btn-success') - options.applyClass = $('#applyClass').val(); - - if ($('#cancelClass').val().length && $('#cancelClass').val() != 'btn-default') - options.cancelClass = $('#cancelClass').val(); - - $('#config-text').val("$('#demo').daterangepicker(" + JSON.stringify(options, null, ' ') + ", function(start, end, label) {\n console.log(\"New date range selected: ' + start.format('YYYY-MM-DD') + ' to ' + end.format('YYYY-MM-DD') + ' (predefined range: ' + label + ')\");\n});"); - - $('#config-demo').daterangepicker(options, function(start, end, label) { console.log('New date range selected: ' + start.format('YYYY-MM-DD') + ' to ' + end.format('YYYY-MM-DD') + ' (predefined range: ' + label + ')'); }); - - } - - if ($(window).width() > 980) { - $('#sidebar').affix({ - offset: { - top: 300, - bottom: function () { - return (this.bottom = $('.footer').outerHeight(true)) - } - } - }); - } - $('body').scrollspy({ target: '#nav-spy', offset: 20 }); -}); diff --git a/admin/bower_components/bootstrap/.bower.json b/admin/bower_components/bootstrap/.bower.json deleted file mode 100644 index aa8ef88..0000000 --- a/admin/bower_components/bootstrap/.bower.json +++ /dev/null @@ -1,45 +0,0 @@ -{ - "name": "bootstrap", - "description": "The most popular front-end framework for developing responsive, mobile first projects on the web.", - "keywords": [ - "css", - "js", - "less", - "mobile-first", - "responsive", - "front-end", - "framework", - "web" - ], - "homepage": "http://getbootstrap.com", - "license": "MIT", - "moduleType": "globals", - "main": [ - "less/bootstrap.less", - "dist/js/bootstrap.js" - ], - "ignore": [ - "/.*", - "_config.yml", - "CNAME", - "composer.json", - "CONTRIBUTING.md", - "docs", - "js/tests", - "test-infra" - ], - "dependencies": { - "jquery": "1.9.1 - 3" - }, - "version": "3.3.7", - "_release": "3.3.7", - "_resolution": { - "type": "version", - "tag": "v3.3.7", - "commit": "0b9c4a4007c44201dce9a6cc1a38407005c26c86" - }, - "_source": "https://github.com/twbs/bootstrap.git", - "_target": "^3.3.7", - "_originalSource": "bootstrap", - "_direct": true -} \ No newline at end of file diff --git a/admin/bower_components/bootstrap/CHANGELOG.md b/admin/bower_components/bootstrap/CHANGELOG.md deleted file mode 100644 index b25f838..0000000 --- a/admin/bower_components/bootstrap/CHANGELOG.md +++ /dev/null @@ -1,5 +0,0 @@ -Bootstrap uses [GitHub's Releases feature](https://github.com/blog/1547-release-your-software) for its changelogs. - -See [the Releases section of our GitHub project](https://github.com/twbs/bootstrap/releases) for changelogs for each release version of Bootstrap. - -Release announcement posts on [the official Bootstrap blog](http://blog.getbootstrap.com) contain summaries of the most noteworthy changes made in each release. diff --git a/admin/bower_components/bootstrap/Gemfile b/admin/bower_components/bootstrap/Gemfile deleted file mode 100644 index feb1622..0000000 --- a/admin/bower_components/bootstrap/Gemfile +++ /dev/null @@ -1,6 +0,0 @@ -source 'https://rubygems.org' - -group :development, :test do - gem 'jekyll', '~> 3.1.2' - gem 'jekyll-sitemap', '~> 0.11.0' -end diff --git a/admin/bower_components/bootstrap/Gemfile.lock b/admin/bower_components/bootstrap/Gemfile.lock deleted file mode 100644 index 1b5dc3e..0000000 --- a/admin/bower_components/bootstrap/Gemfile.lock +++ /dev/null @@ -1,43 +0,0 @@ -GEM - remote: https://rubygems.org/ - specs: - addressable (2.4.0) - colorator (0.1) - ffi (1.9.14-x64-mingw32) - jekyll (3.1.6) - colorator (~> 0.1) - jekyll-sass-converter (~> 1.0) - jekyll-watch (~> 1.1) - kramdown (~> 1.3) - liquid (~> 3.0) - mercenary (~> 0.3.3) - rouge (~> 1.7) - safe_yaml (~> 1.0) - jekyll-sass-converter (1.4.0) - sass (~> 3.4) - jekyll-sitemap (0.11.0) - addressable (~> 2.4.0) - jekyll-watch (1.4.0) - listen (~> 3.0, < 3.1) - kramdown (1.11.1) - liquid (3.0.6) - listen (3.0.8) - rb-fsevent (~> 0.9, >= 0.9.4) - rb-inotify (~> 0.9, >= 0.9.7) - mercenary (0.3.6) - rb-fsevent (0.9.7) - rb-inotify (0.9.7) - ffi (>= 0.5.0) - rouge (1.11.1) - safe_yaml (1.0.4) - sass (3.4.22) - -PLATFORMS - x64-mingw32 - -DEPENDENCIES - jekyll (~> 3.1.2) - jekyll-sitemap (~> 0.11.0) - -BUNDLED WITH - 1.12.5 diff --git a/admin/bower_components/bootstrap/Gruntfile.js b/admin/bower_components/bootstrap/Gruntfile.js deleted file mode 100644 index 994a500..0000000 --- a/admin/bower_components/bootstrap/Gruntfile.js +++ /dev/null @@ -1,511 +0,0 @@ -/*! - * Bootstrap's Gruntfile - * http://getbootstrap.com - * Copyright 2013-2016 Twitter, Inc. - * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) - */ - -module.exports = function (grunt) { - 'use strict'; - - // Force use of Unix newlines - grunt.util.linefeed = '\n'; - - RegExp.quote = function (string) { - return string.replace(/[-\\^$*+?.()|[\]{}]/g, '\\$&'); - }; - - var fs = require('fs'); - var path = require('path'); - var generateGlyphiconsData = require('./grunt/bs-glyphicons-data-generator.js'); - var BsLessdocParser = require('./grunt/bs-lessdoc-parser.js'); - var getLessVarsData = function () { - var filePath = path.join(__dirname, 'less/variables.less'); - var fileContent = fs.readFileSync(filePath, { encoding: 'utf8' }); - var parser = new BsLessdocParser(fileContent); - return { sections: parser.parseFile() }; - }; - var generateRawFiles = require('./grunt/bs-raw-files-generator.js'); - var generateCommonJSModule = require('./grunt/bs-commonjs-generator.js'); - var configBridge = grunt.file.readJSON('./grunt/configBridge.json', { encoding: 'utf8' }); - - Object.keys(configBridge.paths).forEach(function (key) { - configBridge.paths[key].forEach(function (val, i, arr) { - arr[i] = path.join('./docs/assets', val); - }); - }); - - // Project configuration. - grunt.initConfig({ - - // Metadata. - pkg: grunt.file.readJSON('package.json'), - banner: '/*!\n' + - ' * Bootstrap v<%= pkg.version %> (<%= pkg.homepage %>)\n' + - ' * Copyright 2011-<%= grunt.template.today("yyyy") %> <%= pkg.author %>\n' + - ' * Licensed under the <%= pkg.license %> license\n' + - ' */\n', - jqueryCheck: configBridge.config.jqueryCheck.join('\n'), - jqueryVersionCheck: configBridge.config.jqueryVersionCheck.join('\n'), - - // Task configuration. - clean: { - dist: 'dist', - docs: 'docs/dist' - }, - - jshint: { - options: { - jshintrc: 'js/.jshintrc' - }, - grunt: { - options: { - jshintrc: 'grunt/.jshintrc' - }, - src: ['Gruntfile.js', 'package.js', 'grunt/*.js'] - }, - core: { - src: 'js/*.js' - }, - test: { - options: { - jshintrc: 'js/tests/unit/.jshintrc' - }, - src: 'js/tests/unit/*.js' - }, - assets: { - src: ['docs/assets/js/src/*.js', 'docs/assets/js/*.js', '!docs/assets/js/*.min.js'] - } - }, - - jscs: { - options: { - config: 'js/.jscsrc' - }, - grunt: { - src: '<%= jshint.grunt.src %>' - }, - core: { - src: '<%= jshint.core.src %>' - }, - test: { - src: '<%= jshint.test.src %>' - }, - assets: { - options: { - requireCamelCaseOrUpperCaseIdentifiers: null - }, - src: '<%= jshint.assets.src %>' - } - }, - - concat: { - options: { - banner: '<%= banner %>\n<%= jqueryCheck %>\n<%= jqueryVersionCheck %>', - stripBanners: false - }, - bootstrap: { - src: [ - 'js/transition.js', - 'js/alert.js', - 'js/button.js', - 'js/carousel.js', - 'js/collapse.js', - 'js/dropdown.js', - 'js/modal.js', - 'js/tooltip.js', - 'js/popover.js', - 'js/scrollspy.js', - 'js/tab.js', - 'js/affix.js' - ], - dest: 'dist/js/<%= pkg.name %>.js' - } - }, - - uglify: { - options: { - compress: { - warnings: false - }, - mangle: true, - preserveComments: /^!|@preserve|@license|@cc_on/i - }, - core: { - src: '<%= concat.bootstrap.dest %>', - dest: 'dist/js/<%= pkg.name %>.min.js' - }, - customize: { - src: configBridge.paths.customizerJs, - dest: 'docs/assets/js/customize.min.js' - }, - docsJs: { - src: configBridge.paths.docsJs, - dest: 'docs/assets/js/docs.min.js' - } - }, - - qunit: { - options: { - inject: 'js/tests/unit/phantom.js' - }, - files: 'js/tests/index.html' - }, - - less: { - compileCore: { - options: { - strictMath: true, - sourceMap: true, - outputSourceFiles: true, - sourceMapURL: '<%= pkg.name %>.css.map', - sourceMapFilename: 'dist/css/<%= pkg.name %>.css.map' - }, - src: 'less/bootstrap.less', - dest: 'dist/css/<%= pkg.name %>.css' - }, - compileTheme: { - options: { - strictMath: true, - sourceMap: true, - outputSourceFiles: true, - sourceMapURL: '<%= pkg.name %>-theme.css.map', - sourceMapFilename: 'dist/css/<%= pkg.name %>-theme.css.map' - }, - src: 'less/theme.less', - dest: 'dist/css/<%= pkg.name %>-theme.css' - } - }, - - autoprefixer: { - options: { - browsers: configBridge.config.autoprefixerBrowsers - }, - core: { - options: { - map: true - }, - src: 'dist/css/<%= pkg.name %>.css' - }, - theme: { - options: { - map: true - }, - src: 'dist/css/<%= pkg.name %>-theme.css' - }, - docs: { - src: ['docs/assets/css/src/docs.css'] - }, - examples: { - expand: true, - cwd: 'docs/examples/', - src: ['**/*.css'], - dest: 'docs/examples/' - } - }, - - csslint: { - options: { - csslintrc: 'less/.csslintrc' - }, - dist: [ - 'dist/css/bootstrap.css', - 'dist/css/bootstrap-theme.css' - ], - examples: [ - 'docs/examples/**/*.css' - ], - docs: { - options: { - ids: false, - 'overqualified-elements': false - }, - src: 'docs/assets/css/src/docs.css' - } - }, - - cssmin: { - options: { - // TODO: disable `zeroUnits` optimization once clean-css 3.2 is released - // and then simplify the fix for https://github.com/twbs/bootstrap/issues/14837 accordingly - compatibility: 'ie8', - keepSpecialComments: '*', - sourceMap: true, - sourceMapInlineSources: true, - advanced: false - }, - minifyCore: { - src: 'dist/css/<%= pkg.name %>.css', - dest: 'dist/css/<%= pkg.name %>.min.css' - }, - minifyTheme: { - src: 'dist/css/<%= pkg.name %>-theme.css', - dest: 'dist/css/<%= pkg.name %>-theme.min.css' - }, - docs: { - src: [ - 'docs/assets/css/ie10-viewport-bug-workaround.css', - 'docs/assets/css/src/pygments-manni.css', - 'docs/assets/css/src/docs.css' - ], - dest: 'docs/assets/css/docs.min.css' - } - }, - - csscomb: { - options: { - config: 'less/.csscomb.json' - }, - dist: { - expand: true, - cwd: 'dist/css/', - src: ['*.css', '!*.min.css'], - dest: 'dist/css/' - }, - examples: { - expand: true, - cwd: 'docs/examples/', - src: '**/*.css', - dest: 'docs/examples/' - }, - docs: { - src: 'docs/assets/css/src/docs.css', - dest: 'docs/assets/css/src/docs.css' - } - }, - - copy: { - fonts: { - expand: true, - src: 'fonts/**', - dest: 'dist/' - }, - docs: { - expand: true, - cwd: 'dist/', - src: [ - '**/*' - ], - dest: 'docs/dist/' - } - }, - - connect: { - server: { - options: { - port: 3000, - base: '.' - } - } - }, - - jekyll: { - options: { - bundleExec: true, - config: '_config.yml', - incremental: false - }, - docs: {}, - github: { - options: { - raw: 'github: true' - } - } - }, - - htmlmin: { - dist: { - options: { - collapseBooleanAttributes: true, - collapseWhitespace: true, - conservativeCollapse: true, - decodeEntities: false, - minifyCSS: { - compatibility: 'ie8', - keepSpecialComments: 0 - }, - minifyJS: true, - minifyURLs: false, - processConditionalComments: true, - removeAttributeQuotes: true, - removeComments: true, - removeOptionalAttributes: true, - removeOptionalTags: true, - removeRedundantAttributes: true, - removeScriptTypeAttributes: true, - removeStyleLinkTypeAttributes: true, - removeTagWhitespace: false, - sortAttributes: true, - sortClassName: true - }, - expand: true, - cwd: '_gh_pages', - dest: '_gh_pages', - src: [ - '**/*.html', - '!examples/**/*.html' - ] - } - }, - - pug: { - options: { - pretty: true, - data: getLessVarsData - }, - customizerVars: { - src: 'docs/_pug/customizer-variables.pug', - dest: 'docs/_includes/customizer-variables.html' - }, - customizerNav: { - src: 'docs/_pug/customizer-nav.pug', - dest: 'docs/_includes/nav/customize.html' - } - }, - - htmllint: { - options: { - ignore: [ - 'Attribute "autocomplete" not allowed on element "button" at this point.', - 'Attribute "autocomplete" is only allowed when the input type is "color", "date", "datetime", "datetime-local", "email", "hidden", "month", "number", "password", "range", "search", "tel", "text", "time", "url", or "week".', - 'Element "img" is missing required attribute "src".' - ] - }, - src: '_gh_pages/**/*.html' - }, - - watch: { - src: { - files: '<%= jshint.core.src %>', - tasks: ['jshint:core', 'qunit', 'concat'] - }, - test: { - files: '<%= jshint.test.src %>', - tasks: ['jshint:test', 'qunit'] - }, - less: { - files: 'less/**/*.less', - tasks: 'less' - } - }, - - 'saucelabs-qunit': { - all: { - options: { - build: process.env.TRAVIS_JOB_ID, - throttled: 10, - maxRetries: 3, - maxPollRetries: 4, - urls: ['http://127.0.0.1:3000/js/tests/index.html?hidepassed'], - browsers: grunt.file.readYAML('grunt/sauce_browsers.yml') - } - } - }, - - exec: { - npmUpdate: { - command: 'npm update' - } - }, - - compress: { - main: { - options: { - archive: 'bootstrap-<%= pkg.version %>-dist.zip', - mode: 'zip', - level: 9, - pretty: true - }, - files: [ - { - expand: true, - cwd: 'dist/', - src: ['**'], - dest: 'bootstrap-<%= pkg.version %>-dist' - } - ] - } - } - - }); - - - // These plugins provide necessary tasks. - require('load-grunt-tasks')(grunt, { scope: 'devDependencies' }); - require('time-grunt')(grunt); - - // Docs HTML validation task - grunt.registerTask('validate-html', ['jekyll:docs', 'htmllint']); - - var runSubset = function (subset) { - return !process.env.TWBS_TEST || process.env.TWBS_TEST === subset; - }; - var isUndefOrNonZero = function (val) { - return val === undefined || val !== '0'; - }; - - // Test task. - var testSubtasks = []; - // Skip core tests if running a different subset of the test suite - if (runSubset('core') && - // Skip core tests if this is a Savage build - process.env.TRAVIS_REPO_SLUG !== 'twbs-savage/bootstrap') { - testSubtasks = testSubtasks.concat(['dist-css', 'dist-js', 'csslint:dist', 'test-js', 'docs']); - } - // Skip HTML validation if running a different subset of the test suite - if (runSubset('validate-html') && - // Skip HTML5 validator on Travis when [skip validator] is in the commit message - isUndefOrNonZero(process.env.TWBS_DO_VALIDATOR)) { - testSubtasks.push('validate-html'); - } - // Only run Sauce Labs tests if there's a Sauce access key - if (typeof process.env.SAUCE_ACCESS_KEY !== 'undefined' && - // Skip Sauce if running a different subset of the test suite - runSubset('sauce-js-unit') && - // Skip Sauce on Travis when [skip sauce] is in the commit message - isUndefOrNonZero(process.env.TWBS_DO_SAUCE)) { - testSubtasks.push('connect'); - testSubtasks.push('saucelabs-qunit'); - } - grunt.registerTask('test', testSubtasks); - grunt.registerTask('test-js', ['jshint:core', 'jshint:test', 'jshint:grunt', 'jscs:core', 'jscs:test', 'jscs:grunt', 'qunit']); - - // JS distribution task. - grunt.registerTask('dist-js', ['concat', 'uglify:core', 'commonjs']); - - // CSS distribution task. - grunt.registerTask('less-compile', ['less:compileCore', 'less:compileTheme']); - grunt.registerTask('dist-css', ['less-compile', 'autoprefixer:core', 'autoprefixer:theme', 'csscomb:dist', 'cssmin:minifyCore', 'cssmin:minifyTheme']); - - // Full distribution task. - grunt.registerTask('dist', ['clean:dist', 'dist-css', 'copy:fonts', 'dist-js']); - - // Default task. - grunt.registerTask('default', ['clean:dist', 'copy:fonts', 'test']); - - grunt.registerTask('build-glyphicons-data', function () { generateGlyphiconsData.call(this, grunt); }); - - // task for building customizer - grunt.registerTask('build-customizer', ['build-customizer-html', 'build-raw-files']); - grunt.registerTask('build-customizer-html', 'pug'); - grunt.registerTask('build-raw-files', 'Add scripts/less files to customizer.', function () { - var banner = grunt.template.process('<%= banner %>'); - generateRawFiles(grunt, banner); - }); - - grunt.registerTask('commonjs', 'Generate CommonJS entrypoint module in dist dir.', function () { - var srcFiles = grunt.config.get('concat.bootstrap.src'); - var destFilepath = 'dist/js/npm.js'; - generateCommonJSModule(grunt, srcFiles, destFilepath); - }); - - // Docs task. - grunt.registerTask('docs-css', ['autoprefixer:docs', 'autoprefixer:examples', 'csscomb:docs', 'csscomb:examples', 'cssmin:docs']); - grunt.registerTask('lint-docs-css', ['csslint:docs', 'csslint:examples']); - grunt.registerTask('docs-js', ['uglify:docsJs', 'uglify:customize']); - grunt.registerTask('lint-docs-js', ['jshint:assets', 'jscs:assets']); - grunt.registerTask('docs', ['docs-css', 'lint-docs-css', 'docs-js', 'lint-docs-js', 'clean:docs', 'copy:docs', 'build-glyphicons-data', 'build-customizer']); - grunt.registerTask('docs-github', ['jekyll:github', 'htmlmin']); - - grunt.registerTask('prep-release', ['dist', 'docs', 'docs-github', 'compress']); -}; diff --git a/admin/bower_components/bootstrap/ISSUE_TEMPLATE.md b/admin/bower_components/bootstrap/ISSUE_TEMPLATE.md deleted file mode 100644 index 66c3a2b..0000000 --- a/admin/bower_components/bootstrap/ISSUE_TEMPLATE.md +++ /dev/null @@ -1,22 +0,0 @@ -Before opening an issue: - -- [Search for duplicate or closed issues](https://github.com/twbs/bootstrap/issues?utf8=%E2%9C%93&q=is%3Aissue) -- [Validate](http://validator.w3.org/nu/) and [lint](https://github.com/twbs/bootlint#in-the-browser) any HTML to avoid common problems -- Prepare a [reduced test case](https://css-tricks.com/reduced-test-cases/) for any bugs -- Read the [contributing guidelines](https://github.com/twbs/bootstrap/blob/master/CONTRIBUTING.md) - -When asking general "how to" questions: - -- Please do not open an issue here -- Instead, ask for help on [StackOverflow, IRC, or Slack](https://github.com/twbs/bootstrap/blob/master/README.md#community) - -When reporting a bug, include: - -- Operating system and version (Windows, Mac OS X, Android, iOS, Win10 Mobile) -- Browser and version (Chrome, Firefox, Safari, IE, MS Edge, Opera 15+, Android Browser) -- Reduced test cases and potential fixes using [JS Bin](https://jsbin.com) - -When suggesting a feature, include: - -- As much detail as possible for what we should add and why it's important to Bootstrap -- Relevant links to prior art, screenshots, or live demos whenever possible diff --git a/admin/bower_components/bootstrap/LICENSE b/admin/bower_components/bootstrap/LICENSE deleted file mode 100644 index 7a30002..0000000 --- a/admin/bower_components/bootstrap/LICENSE +++ /dev/null @@ -1,21 +0,0 @@ -The MIT License (MIT) - -Copyright (c) 2011-2016 Twitter, Inc. - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -THE SOFTWARE. diff --git a/admin/bower_components/bootstrap/README.md b/admin/bower_components/bootstrap/README.md deleted file mode 100644 index f92150f..0000000 --- a/admin/bower_components/bootstrap/README.md +++ /dev/null @@ -1,142 +0,0 @@ -# [Bootstrap](http://getbootstrap.com) - -[![Slack](https://bootstrap-slack.herokuapp.com/badge.svg)](https://bootstrap-slack.herokuapp.com) -![Bower version](https://img.shields.io/bower/v/bootstrap.svg) -[![npm version](https://img.shields.io/npm/v/bootstrap.svg)](https://www.npmjs.com/package/bootstrap) -[![Build Status](https://img.shields.io/travis/twbs/bootstrap/master.svg)](https://travis-ci.org/twbs/bootstrap) -[![devDependency Status](https://img.shields.io/david/dev/twbs/bootstrap.svg)](https://david-dm.org/twbs/bootstrap#info=devDependencies) -[![NuGet](https://img.shields.io/nuget/v/bootstrap.svg)](https://www.nuget.org/packages/Bootstrap) -[![Selenium Test Status](https://saucelabs.com/browser-matrix/bootstrap.svg)](https://saucelabs.com/u/bootstrap) - -Bootstrap is a sleek, intuitive, and powerful front-end framework for faster and easier web development, created by [Mark Otto](https://twitter.com/mdo) and [Jacob Thornton](https://twitter.com/fat), and maintained by the [core team](https://github.com/orgs/twbs/people) with the massive support and involvement of the community. - -To get started, check out <http://getbootstrap.com>! - - -## Table of contents - -* [Quick start](#quick-start) -* [Bugs and feature requests](#bugs-and-feature-requests) -* [Documentation](#documentation) -* [Contributing](#contributing) -* [Community](#community) -* [Versioning](#versioning) -* [Creators](#creators) -* [Copyright and license](#copyright-and-license) - - -## Quick start - -Several quick start options are available: - -* [Download the latest release](https://github.com/twbs/bootstrap/archive/v3.3.7.zip). -* Clone the repo: `git clone https://github.com/twbs/bootstrap.git`. -* Install with [Bower](http://bower.io): `bower install bootstrap`. -* Install with [npm](https://www.npmjs.com): `npm install bootstrap@3`. -* Install with [Meteor](https://www.meteor.com): `meteor add twbs:bootstrap`. -* Install with [Composer](https://getcomposer.org): `composer require twbs/bootstrap`. - -Read the [Getting started page](http://getbootstrap.com/getting-started/) for information on the framework contents, templates and examples, and more. - -### What's included - -Within the download you'll find the following directories and files, logically grouping common assets and providing both compiled and minified variations. You'll see something like this: - -``` -bootstrap/ -├── css/ -│ ├── bootstrap.css -│ ├── bootstrap.css.map -│ ├── bootstrap.min.css -│ ├── bootstrap.min.css.map -│ ├── bootstrap-theme.css -│ ├── bootstrap-theme.css.map -│ ├── bootstrap-theme.min.css -│ └── bootstrap-theme.min.css.map -├── js/ -│ ├── bootstrap.js -│ └── bootstrap.min.js -└── fonts/ - ├── glyphicons-halflings-regular.eot - ├── glyphicons-halflings-regular.svg - ├── glyphicons-halflings-regular.ttf - ├── glyphicons-halflings-regular.woff - └── glyphicons-halflings-regular.woff2 -``` - -We provide compiled CSS and JS (`bootstrap.*`), as well as compiled and minified CSS and JS (`bootstrap.min.*`). CSS [source maps](https://developer.chrome.com/devtools/docs/css-preprocessors) (`bootstrap.*.map`) are available for use with certain browsers' developer tools. Fonts from Glyphicons are included, as is the optional Bootstrap theme. - - -## Bugs and feature requests - -Have a bug or a feature request? Please first read the [issue guidelines](https://github.com/twbs/bootstrap/blob/master/CONTRIBUTING.md#using-the-issue-tracker) and search for existing and closed issues. If your problem or idea is not addressed yet, [please open a new issue](https://github.com/twbs/bootstrap/issues/new). - -Note that **feature requests must target [Bootstrap v4](https://github.com/twbs/bootstrap/tree/v4-dev),** because Bootstrap v3 is now in maintenance mode and is closed off to new features. This is so that we can focus our efforts on Bootstrap v4. - - -## Documentation - -Bootstrap's documentation, included in this repo in the root directory, is built with [Jekyll](http://jekyllrb.com) and publicly hosted on GitHub Pages at <http://getbootstrap.com>. The docs may also be run locally. - -### Running documentation locally - -1. If necessary, [install Jekyll](http://jekyllrb.com/docs/installation) and other Ruby dependencies with `bundle install`. - **Note for Windows users:** Read [this unofficial guide](http://jekyll-windows.juthilo.com/) to get Jekyll up and running without problems. -2. From the root `/bootstrap` directory, run `bundle exec jekyll serve` in the command line. -4. Open `http://localhost:9001` in your browser, and voilà. - -Learn more about using Jekyll by reading its [documentation](http://jekyllrb.com/docs/home/). - -### Documentation for previous releases - -Documentation for v2.3.2 has been made available for the time being at <http://getbootstrap.com/2.3.2/> while folks transition to Bootstrap 3. - -[Previous releases](https://github.com/twbs/bootstrap/releases) and their documentation are also available for download. - - -## Contributing - -Please read through our [contributing guidelines](https://github.com/twbs/bootstrap/blob/master/CONTRIBUTING.md). Included are directions for opening issues, coding standards, and notes on development. - -Moreover, if your pull request contains JavaScript patches or features, you must include [relevant unit tests](https://github.com/twbs/bootstrap/tree/master/js/tests). All HTML and CSS should conform to the [Code Guide](https://github.com/mdo/code-guide), maintained by [Mark Otto](https://github.com/mdo). - -**Bootstrap v3 is now closed off to new features.** It has gone into maintenance mode so that we can focus our efforts on [Bootstrap v4](https://github.com/twbs/bootstrap/tree/v4-dev), the future of the framework. Pull requests which add new features (rather than fix bugs) should target [Bootstrap v4 (the `v4-dev` git branch)](https://github.com/twbs/bootstrap/tree/v4-dev) instead. - -Editor preferences are available in the [editor config](https://github.com/twbs/bootstrap/blob/master/.editorconfig) for easy use in common text editors. Read more and download plugins at <http://editorconfig.org>. - - -## Community - -Get updates on Bootstrap's development and chat with the project maintainers and community members. - -* Follow [@getbootstrap on Twitter](https://twitter.com/getbootstrap). -* Read and subscribe to [The Official Bootstrap Blog](http://blog.getbootstrap.com). -* Join [the official Slack room](https://bootstrap-slack.herokuapp.com). -* Chat with fellow Bootstrappers in IRC. On the `irc.freenode.net` server, in the `##bootstrap` channel. -* Implementation help may be found at Stack Overflow (tagged [`twitter-bootstrap-3`](https://stackoverflow.com/questions/tagged/twitter-bootstrap-3)). -* Developers should use the keyword `bootstrap` on packages which modify or add to the functionality of Bootstrap when distributing through [npm](https://www.npmjs.com/browse/keyword/bootstrap) or similar delivery mechanisms for maximum discoverability. - - -## Versioning - -For transparency into our release cycle and in striving to maintain backward compatibility, Bootstrap is maintained under [the Semantic Versioning guidelines](http://semver.org/). Sometimes we screw up, but we'll adhere to those rules whenever possible. - -See [the Releases section of our GitHub project](https://github.com/twbs/bootstrap/releases) for changelogs for each release version of Bootstrap. Release announcement posts on [the official Bootstrap blog](http://blog.getbootstrap.com) contain summaries of the most noteworthy changes made in each release. - - -## Creators - -**Mark Otto** - -* <https://twitter.com/mdo> -* <https://github.com/mdo> - -**Jacob Thornton** - -* <https://twitter.com/fat> -* <https://github.com/fat> - - -## Copyright and license - -Code and documentation copyright 2011-2016 Twitter, Inc. Code released under [the MIT license](https://github.com/twbs/bootstrap/blob/master/LICENSE). Docs released under [Creative Commons](https://github.com/twbs/bootstrap/blob/master/docs/LICENSE). diff --git a/admin/bower_components/bootstrap/bower.json b/admin/bower_components/bootstrap/bower.json deleted file mode 100644 index b1b1bc0..0000000 --- a/admin/bower_components/bootstrap/bower.json +++ /dev/null @@ -1,34 +0,0 @@ -{ - "name": "bootstrap", - "description": "The most popular front-end framework for developing responsive, mobile first projects on the web.", - "keywords": [ - "css", - "js", - "less", - "mobile-first", - "responsive", - "front-end", - "framework", - "web" - ], - "homepage": "http://getbootstrap.com", - "license": "MIT", - "moduleType": "globals", - "main": [ - "less/bootstrap.less", - "dist/js/bootstrap.js" - ], - "ignore": [ - "/.*", - "_config.yml", - "CNAME", - "composer.json", - "CONTRIBUTING.md", - "docs", - "js/tests", - "test-infra" - ], - "dependencies": { - "jquery": "1.9.1 - 3" - } -} diff --git a/admin/bower_components/bootstrap/dist/css/bootstrap-theme.css b/admin/bower_components/bootstrap/dist/css/bootstrap-theme.css deleted file mode 100644 index 31d8882..0000000 --- a/admin/bower_components/bootstrap/dist/css/bootstrap-theme.css +++ /dev/null @@ -1,587 +0,0 @@ -/*! - * Bootstrap v3.3.7 (http://getbootstrap.com) - * Copyright 2011-2016 Twitter, Inc. - * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) - */ -.btn-default, -.btn-primary, -.btn-success, -.btn-info, -.btn-warning, -.btn-danger { - text-shadow: 0 -1px 0 rgba(0, 0, 0, .2); - -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, .15), 0 1px 1px rgba(0, 0, 0, .075); - box-shadow: inset 0 1px 0 rgba(255, 255, 255, .15), 0 1px 1px rgba(0, 0, 0, .075); -} -.btn-default:active, -.btn-primary:active, -.btn-success:active, -.btn-info:active, -.btn-warning:active, -.btn-danger:active, -.btn-default.active, -.btn-primary.active, -.btn-success.active, -.btn-info.active, -.btn-warning.active, -.btn-danger.active { - -webkit-box-shadow: inset 0 3px 5px rgba(0, 0, 0, .125); - box-shadow: inset 0 3px 5px rgba(0, 0, 0, .125); -} -.btn-default.disabled, -.btn-primary.disabled, -.btn-success.disabled, -.btn-info.disabled, -.btn-warning.disabled, -.btn-danger.disabled, -.btn-default[disabled], -.btn-primary[disabled], -.btn-success[disabled], -.btn-info[disabled], -.btn-warning[disabled], -.btn-danger[disabled], -fieldset[disabled] .btn-default, -fieldset[disabled] .btn-primary, -fieldset[disabled] .btn-success, -fieldset[disabled] .btn-info, -fieldset[disabled] .btn-warning, -fieldset[disabled] .btn-danger { - -webkit-box-shadow: none; - box-shadow: none; -} -.btn-default .badge, -.btn-primary .badge, -.btn-success .badge, -.btn-info .badge, -.btn-warning .badge, -.btn-danger .badge { - text-shadow: none; -} -.btn:active, -.btn.active { - background-image: none; -} -.btn-default { - text-shadow: 0 1px 0 #fff; - background-image: -webkit-linear-gradient(top, #fff 0%, #e0e0e0 100%); - background-image: -o-linear-gradient(top, #fff 0%, #e0e0e0 100%); - background-image: -webkit-gradient(linear, left top, left bottom, from(#fff), to(#e0e0e0)); - background-image: linear-gradient(to bottom, #fff 0%, #e0e0e0 100%); - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff', endColorstr='#ffe0e0e0', GradientType=0); - filter: progid:DXImageTransform.Microsoft.gradient(enabled = false); - background-repeat: repeat-x; - border-color: #dbdbdb; - border-color: #ccc; -} -.btn-default:hover, -.btn-default:focus { - background-color: #e0e0e0; - background-position: 0 -15px; -} -.btn-default:active, -.btn-default.active { - background-color: #e0e0e0; - border-color: #dbdbdb; -} -.btn-default.disabled, -.btn-default[disabled], -fieldset[disabled] .btn-default, -.btn-default.disabled:hover, -.btn-default[disabled]:hover, -fieldset[disabled] .btn-default:hover, -.btn-default.disabled:focus, -.btn-default[disabled]:focus, -fieldset[disabled] .btn-default:focus, -.btn-default.disabled.focus, -.btn-default[disabled].focus, -fieldset[disabled] .btn-default.focus, -.btn-default.disabled:active, -.btn-default[disabled]:active, -fieldset[disabled] .btn-default:active, -.btn-default.disabled.active, -.btn-default[disabled].active, -fieldset[disabled] .btn-default.active { - background-color: #e0e0e0; - background-image: none; -} -.btn-primary { - background-image: -webkit-linear-gradient(top, #337ab7 0%, #265a88 100%); - background-image: -o-linear-gradient(top, #337ab7 0%, #265a88 100%); - background-image: -webkit-gradient(linear, left top, left bottom, from(#337ab7), to(#265a88)); - background-image: linear-gradient(to bottom, #337ab7 0%, #265a88 100%); - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff337ab7', endColorstr='#ff265a88', GradientType=0); - filter: progid:DXImageTransform.Microsoft.gradient(enabled = false); - background-repeat: repeat-x; - border-color: #245580; -} -.btn-primary:hover, -.btn-primary:focus { - background-color: #265a88; - background-position: 0 -15px; -} -.btn-primary:active, -.btn-primary.active { - background-color: #265a88; - border-color: #245580; -} -.btn-primary.disabled, -.btn-primary[disabled], -fieldset[disabled] .btn-primary, -.btn-primary.disabled:hover, -.btn-primary[disabled]:hover, -fieldset[disabled] .btn-primary:hover, -.btn-primary.disabled:focus, -.btn-primary[disabled]:focus, -fieldset[disabled] .btn-primary:focus, -.btn-primary.disabled.focus, -.btn-primary[disabled].focus, -fieldset[disabled] .btn-primary.focus, -.btn-primary.disabled:active, -.btn-primary[disabled]:active, -fieldset[disabled] .btn-primary:active, -.btn-primary.disabled.active, -.btn-primary[disabled].active, -fieldset[disabled] .btn-primary.active { - background-color: #265a88; - background-image: none; -} -.btn-success { - background-image: -webkit-linear-gradient(top, #5cb85c 0%, #419641 100%); - background-image: -o-linear-gradient(top, #5cb85c 0%, #419641 100%); - background-image: -webkit-gradient(linear, left top, left bottom, from(#5cb85c), to(#419641)); - background-image: linear-gradient(to bottom, #5cb85c 0%, #419641 100%); - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5cb85c', endColorstr='#ff419641', GradientType=0); - filter: progid:DXImageTransform.Microsoft.gradient(enabled = false); - background-repeat: repeat-x; - border-color: #3e8f3e; -} -.btn-success:hover, -.btn-success:focus { - background-color: #419641; - background-position: 0 -15px; -} -.btn-success:active, -.btn-success.active { - background-color: #419641; - border-color: #3e8f3e; -} -.btn-success.disabled, -.btn-success[disabled], -fieldset[disabled] .btn-success, -.btn-success.disabled:hover, -.btn-success[disabled]:hover, -fieldset[disabled] .btn-success:hover, -.btn-success.disabled:focus, -.btn-success[disabled]:focus, -fieldset[disabled] .btn-success:focus, -.btn-success.disabled.focus, -.btn-success[disabled].focus, -fieldset[disabled] .btn-success.focus, -.btn-success.disabled:active, -.btn-success[disabled]:active, -fieldset[disabled] .btn-success:active, -.btn-success.disabled.active, -.btn-success[disabled].active, -fieldset[disabled] .btn-success.active { - background-color: #419641; - background-image: none; -} -.btn-info { - background-image: -webkit-linear-gradient(top, #5bc0de 0%, #2aabd2 100%); - background-image: -o-linear-gradient(top, #5bc0de 0%, #2aabd2 100%); - background-image: -webkit-gradient(linear, left top, left bottom, from(#5bc0de), to(#2aabd2)); - background-image: linear-gradient(to bottom, #5bc0de 0%, #2aabd2 100%); - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5bc0de', endColorstr='#ff2aabd2', GradientType=0); - filter: progid:DXImageTransform.Microsoft.gradient(enabled = false); - background-repeat: repeat-x; - border-color: #28a4c9; -} -.btn-info:hover, -.btn-info:focus { - background-color: #2aabd2; - background-position: 0 -15px; -} -.btn-info:active, -.btn-info.active { - background-color: #2aabd2; - border-color: #28a4c9; -} -.btn-info.disabled, -.btn-info[disabled], -fieldset[disabled] .btn-info, -.btn-info.disabled:hover, -.btn-info[disabled]:hover, -fieldset[disabled] .btn-info:hover, -.btn-info.disabled:focus, -.btn-info[disabled]:focus, -fieldset[disabled] .btn-info:focus, -.btn-info.disabled.focus, -.btn-info[disabled].focus, -fieldset[disabled] .btn-info.focus, -.btn-info.disabled:active, -.btn-info[disabled]:active, -fieldset[disabled] .btn-info:active, -.btn-info.disabled.active, -.btn-info[disabled].active, -fieldset[disabled] .btn-info.active { - background-color: #2aabd2; - background-image: none; -} -.btn-warning { - background-image: -webkit-linear-gradient(top, #f0ad4e 0%, #eb9316 100%); - background-image: -o-linear-gradient(top, #f0ad4e 0%, #eb9316 100%); - background-image: -webkit-gradient(linear, left top, left bottom, from(#f0ad4e), to(#eb9316)); - background-image: linear-gradient(to bottom, #f0ad4e 0%, #eb9316 100%); - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff0ad4e', endColorstr='#ffeb9316', GradientType=0); - filter: progid:DXImageTransform.Microsoft.gradient(enabled = false); - background-repeat: repeat-x; - border-color: #e38d13; -} -.btn-warning:hover, -.btn-warning:focus { - background-color: #eb9316; - background-position: 0 -15px; -} -.btn-warning:active, -.btn-warning.active { - background-color: #eb9316; - border-color: #e38d13; -} -.btn-warning.disabled, -.btn-warning[disabled], -fieldset[disabled] .btn-warning, -.btn-warning.disabled:hover, -.btn-warning[disabled]:hover, -fieldset[disabled] .btn-warning:hover, -.btn-warning.disabled:focus, -.btn-warning[disabled]:focus, -fieldset[disabled] .btn-warning:focus, -.btn-warning.disabled.focus, -.btn-warning[disabled].focus, -fieldset[disabled] .btn-warning.focus, -.btn-warning.disabled:active, -.btn-warning[disabled]:active, -fieldset[disabled] .btn-warning:active, -.btn-warning.disabled.active, -.btn-warning[disabled].active, -fieldset[disabled] .btn-warning.active { - background-color: #eb9316; - background-image: none; -} -.btn-danger { - background-image: -webkit-linear-gradient(top, #d9534f 0%, #c12e2a 100%); - background-image: -o-linear-gradient(top, #d9534f 0%, #c12e2a 100%); - background-image: -webkit-gradient(linear, left top, left bottom, from(#d9534f), to(#c12e2a)); - background-image: linear-gradient(to bottom, #d9534f 0%, #c12e2a 100%); - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9534f', endColorstr='#ffc12e2a', GradientType=0); - filter: progid:DXImageTransform.Microsoft.gradient(enabled = false); - background-repeat: repeat-x; - border-color: #b92c28; -} -.btn-danger:hover, -.btn-danger:focus { - background-color: #c12e2a; - background-position: 0 -15px; -} -.btn-danger:active, -.btn-danger.active { - background-color: #c12e2a; - border-color: #b92c28; -} -.btn-danger.disabled, -.btn-danger[disabled], -fieldset[disabled] .btn-danger, -.btn-danger.disabled:hover, -.btn-danger[disabled]:hover, -fieldset[disabled] .btn-danger:hover, -.btn-danger.disabled:focus, -.btn-danger[disabled]:focus, -fieldset[disabled] .btn-danger:focus, -.btn-danger.disabled.focus, -.btn-danger[disabled].focus, -fieldset[disabled] .btn-danger.focus, -.btn-danger.disabled:active, -.btn-danger[disabled]:active, -fieldset[disabled] .btn-danger:active, -.btn-danger.disabled.active, -.btn-danger[disabled].active, -fieldset[disabled] .btn-danger.active { - background-color: #c12e2a; - background-image: none; -} -.thumbnail, -.img-thumbnail { - -webkit-box-shadow: 0 1px 2px rgba(0, 0, 0, .075); - box-shadow: 0 1px 2px rgba(0, 0, 0, .075); -} -.dropdown-menu > li > a:hover, -.dropdown-menu > li > a:focus { - background-color: #e8e8e8; - background-image: -webkit-linear-gradient(top, #f5f5f5 0%, #e8e8e8 100%); - background-image: -o-linear-gradient(top, #f5f5f5 0%, #e8e8e8 100%); - background-image: -webkit-gradient(linear, left top, left bottom, from(#f5f5f5), to(#e8e8e8)); - background-image: linear-gradient(to bottom, #f5f5f5 0%, #e8e8e8 100%); - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff5f5f5', endColorstr='#ffe8e8e8', GradientType=0); - background-repeat: repeat-x; -} -.dropdown-menu > .active > a, -.dropdown-menu > .active > a:hover, -.dropdown-menu > .active > a:focus { - background-color: #2e6da4; - background-image: -webkit-linear-gradient(top, #337ab7 0%, #2e6da4 100%); - background-image: -o-linear-gradient(top, #337ab7 0%, #2e6da4 100%); - background-image: -webkit-gradient(linear, left top, left bottom, from(#337ab7), to(#2e6da4)); - background-image: linear-gradient(to bottom, #337ab7 0%, #2e6da4 100%); - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff337ab7', endColorstr='#ff2e6da4', GradientType=0); - background-repeat: repeat-x; -} -.navbar-default { - background-image: -webkit-linear-gradient(top, #fff 0%, #f8f8f8 100%); - background-image: -o-linear-gradient(top, #fff 0%, #f8f8f8 100%); - background-image: -webkit-gradient(linear, left top, left bottom, from(#fff), to(#f8f8f8)); - background-image: linear-gradient(to bottom, #fff 0%, #f8f8f8 100%); - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff', endColorstr='#fff8f8f8', GradientType=0); - filter: progid:DXImageTransform.Microsoft.gradient(enabled = false); - background-repeat: repeat-x; - border-radius: 4px; - -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, .15), 0 1px 5px rgba(0, 0, 0, .075); - box-shadow: inset 0 1px 0 rgba(255, 255, 255, .15), 0 1px 5px rgba(0, 0, 0, .075); -} -.navbar-default .navbar-nav > .open > a, -.navbar-default .navbar-nav > .active > a { - background-image: -webkit-linear-gradient(top, #dbdbdb 0%, #e2e2e2 100%); - background-image: -o-linear-gradient(top, #dbdbdb 0%, #e2e2e2 100%); - background-image: -webkit-gradient(linear, left top, left bottom, from(#dbdbdb), to(#e2e2e2)); - background-image: linear-gradient(to bottom, #dbdbdb 0%, #e2e2e2 100%); - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffdbdbdb', endColorstr='#ffe2e2e2', GradientType=0); - background-repeat: repeat-x; - -webkit-box-shadow: inset 0 3px 9px rgba(0, 0, 0, .075); - box-shadow: inset 0 3px 9px rgba(0, 0, 0, .075); -} -.navbar-brand, -.navbar-nav > li > a { - text-shadow: 0 1px 0 rgba(255, 255, 255, .25); -} -.navbar-inverse { - background-image: -webkit-linear-gradient(top, #3c3c3c 0%, #222 100%); - background-image: -o-linear-gradient(top, #3c3c3c 0%, #222 100%); - background-image: -webkit-gradient(linear, left top, left bottom, from(#3c3c3c), to(#222)); - background-image: linear-gradient(to bottom, #3c3c3c 0%, #222 100%); - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff3c3c3c', endColorstr='#ff222222', GradientType=0); - filter: progid:DXImageTransform.Microsoft.gradient(enabled = false); - background-repeat: repeat-x; - border-radius: 4px; -} -.navbar-inverse .navbar-nav > .open > a, -.navbar-inverse .navbar-nav > .active > a { - background-image: -webkit-linear-gradient(top, #080808 0%, #0f0f0f 100%); - background-image: -o-linear-gradient(top, #080808 0%, #0f0f0f 100%); - background-image: -webkit-gradient(linear, left top, left bottom, from(#080808), to(#0f0f0f)); - background-image: linear-gradient(to bottom, #080808 0%, #0f0f0f 100%); - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff080808', endColorstr='#ff0f0f0f', GradientType=0); - background-repeat: repeat-x; - -webkit-box-shadow: inset 0 3px 9px rgba(0, 0, 0, .25); - box-shadow: inset 0 3px 9px rgba(0, 0, 0, .25); -} -.navbar-inverse .navbar-brand, -.navbar-inverse .navbar-nav > li > a { - text-shadow: 0 -1px 0 rgba(0, 0, 0, .25); -} -.navbar-static-top, -.navbar-fixed-top, -.navbar-fixed-bottom { - border-radius: 0; -} -@media (max-width: 767px) { - .navbar .navbar-nav .open .dropdown-menu > .active > a, - .navbar .navbar-nav .open .dropdown-menu > .active > a:hover, - .navbar .navbar-nav .open .dropdown-menu > .active > a:focus { - color: #fff; - background-image: -webkit-linear-gradient(top, #337ab7 0%, #2e6da4 100%); - background-image: -o-linear-gradient(top, #337ab7 0%, #2e6da4 100%); - background-image: -webkit-gradient(linear, left top, left bottom, from(#337ab7), to(#2e6da4)); - background-image: linear-gradient(to bottom, #337ab7 0%, #2e6da4 100%); - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff337ab7', endColorstr='#ff2e6da4', GradientType=0); - background-repeat: repeat-x; - } -} -.alert { - text-shadow: 0 1px 0 rgba(255, 255, 255, .2); - -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, .25), 0 1px 2px rgba(0, 0, 0, .05); - box-shadow: inset 0 1px 0 rgba(255, 255, 255, .25), 0 1px 2px rgba(0, 0, 0, .05); -} -.alert-success { - background-image: -webkit-linear-gradient(top, #dff0d8 0%, #c8e5bc 100%); - background-image: -o-linear-gradient(top, #dff0d8 0%, #c8e5bc 100%); - background-image: -webkit-gradient(linear, left top, left bottom, from(#dff0d8), to(#c8e5bc)); - background-image: linear-gradient(to bottom, #dff0d8 0%, #c8e5bc 100%); - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffdff0d8', endColorstr='#ffc8e5bc', GradientType=0); - background-repeat: repeat-x; - border-color: #b2dba1; -} -.alert-info { - background-image: -webkit-linear-gradient(top, #d9edf7 0%, #b9def0 100%); - background-image: -o-linear-gradient(top, #d9edf7 0%, #b9def0 100%); - background-image: -webkit-gradient(linear, left top, left bottom, from(#d9edf7), to(#b9def0)); - background-image: linear-gradient(to bottom, #d9edf7 0%, #b9def0 100%); - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9edf7', endColorstr='#ffb9def0', GradientType=0); - background-repeat: repeat-x; - border-color: #9acfea; -} -.alert-warning { - background-image: -webkit-linear-gradient(top, #fcf8e3 0%, #f8efc0 100%); - background-image: -o-linear-gradient(top, #fcf8e3 0%, #f8efc0 100%); - background-image: -webkit-gradient(linear, left top, left bottom, from(#fcf8e3), to(#f8efc0)); - background-image: linear-gradient(to bottom, #fcf8e3 0%, #f8efc0 100%); - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fffcf8e3', endColorstr='#fff8efc0', GradientType=0); - background-repeat: repeat-x; - border-color: #f5e79e; -} -.alert-danger { - background-image: -webkit-linear-gradient(top, #f2dede 0%, #e7c3c3 100%); - background-image: -o-linear-gradient(top, #f2dede 0%, #e7c3c3 100%); - background-image: -webkit-gradient(linear, left top, left bottom, from(#f2dede), to(#e7c3c3)); - background-image: linear-gradient(to bottom, #f2dede 0%, #e7c3c3 100%); - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff2dede', endColorstr='#ffe7c3c3', GradientType=0); - background-repeat: repeat-x; - border-color: #dca7a7; -} -.progress { - background-image: -webkit-linear-gradient(top, #ebebeb 0%, #f5f5f5 100%); - background-image: -o-linear-gradient(top, #ebebeb 0%, #f5f5f5 100%); - background-image: -webkit-gradient(linear, left top, left bottom, from(#ebebeb), to(#f5f5f5)); - background-image: linear-gradient(to bottom, #ebebeb 0%, #f5f5f5 100%); - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffebebeb', endColorstr='#fff5f5f5', GradientType=0); - background-repeat: repeat-x; -} -.progress-bar { - background-image: -webkit-linear-gradient(top, #337ab7 0%, #286090 100%); - background-image: -o-linear-gradient(top, #337ab7 0%, #286090 100%); - background-image: -webkit-gradient(linear, left top, left bottom, from(#337ab7), to(#286090)); - background-image: linear-gradient(to bottom, #337ab7 0%, #286090 100%); - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff337ab7', endColorstr='#ff286090', GradientType=0); - background-repeat: repeat-x; -} -.progress-bar-success { - background-image: -webkit-linear-gradient(top, #5cb85c 0%, #449d44 100%); - background-image: -o-linear-gradient(top, #5cb85c 0%, #449d44 100%); - background-image: -webkit-gradient(linear, left top, left bottom, from(#5cb85c), to(#449d44)); - background-image: linear-gradient(to bottom, #5cb85c 0%, #449d44 100%); - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5cb85c', endColorstr='#ff449d44', GradientType=0); - background-repeat: repeat-x; -} -.progress-bar-info { - background-image: -webkit-linear-gradient(top, #5bc0de 0%, #31b0d5 100%); - background-image: -o-linear-gradient(top, #5bc0de 0%, #31b0d5 100%); - background-image: -webkit-gradient(linear, left top, left bottom, from(#5bc0de), to(#31b0d5)); - background-image: linear-gradient(to bottom, #5bc0de 0%, #31b0d5 100%); - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5bc0de', endColorstr='#ff31b0d5', GradientType=0); - background-repeat: repeat-x; -} -.progress-bar-warning { - background-image: -webkit-linear-gradient(top, #f0ad4e 0%, #ec971f 100%); - background-image: -o-linear-gradient(top, #f0ad4e 0%, #ec971f 100%); - background-image: -webkit-gradient(linear, left top, left bottom, from(#f0ad4e), to(#ec971f)); - background-image: linear-gradient(to bottom, #f0ad4e 0%, #ec971f 100%); - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff0ad4e', endColorstr='#ffec971f', GradientType=0); - background-repeat: repeat-x; -} -.progress-bar-danger { - background-image: -webkit-linear-gradient(top, #d9534f 0%, #c9302c 100%); - background-image: -o-linear-gradient(top, #d9534f 0%, #c9302c 100%); - background-image: -webkit-gradient(linear, left top, left bottom, from(#d9534f), to(#c9302c)); - background-image: linear-gradient(to bottom, #d9534f 0%, #c9302c 100%); - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9534f', endColorstr='#ffc9302c', GradientType=0); - background-repeat: repeat-x; -} -.progress-bar-striped { - background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent); - background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent); - background-image: linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent); -} -.list-group { - border-radius: 4px; - -webkit-box-shadow: 0 1px 2px rgba(0, 0, 0, .075); - box-shadow: 0 1px 2px rgba(0, 0, 0, .075); -} -.list-group-item.active, -.list-group-item.active:hover, -.list-group-item.active:focus { - text-shadow: 0 -1px 0 #286090; - background-image: -webkit-linear-gradient(top, #337ab7 0%, #2b669a 100%); - background-image: -o-linear-gradient(top, #337ab7 0%, #2b669a 100%); - background-image: -webkit-gradient(linear, left top, left bottom, from(#337ab7), to(#2b669a)); - background-image: linear-gradient(to bottom, #337ab7 0%, #2b669a 100%); - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff337ab7', endColorstr='#ff2b669a', GradientType=0); - background-repeat: repeat-x; - border-color: #2b669a; -} -.list-group-item.active .badge, -.list-group-item.active:hover .badge, -.list-group-item.active:focus .badge { - text-shadow: none; -} -.panel { - -webkit-box-shadow: 0 1px 2px rgba(0, 0, 0, .05); - box-shadow: 0 1px 2px rgba(0, 0, 0, .05); -} -.panel-default > .panel-heading { - background-image: -webkit-linear-gradient(top, #f5f5f5 0%, #e8e8e8 100%); - background-image: -o-linear-gradient(top, #f5f5f5 0%, #e8e8e8 100%); - background-image: -webkit-gradient(linear, left top, left bottom, from(#f5f5f5), to(#e8e8e8)); - background-image: linear-gradient(to bottom, #f5f5f5 0%, #e8e8e8 100%); - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff5f5f5', endColorstr='#ffe8e8e8', GradientType=0); - background-repeat: repeat-x; -} -.panel-primary > .panel-heading { - background-image: -webkit-linear-gradient(top, #337ab7 0%, #2e6da4 100%); - background-image: -o-linear-gradient(top, #337ab7 0%, #2e6da4 100%); - background-image: -webkit-gradient(linear, left top, left bottom, from(#337ab7), to(#2e6da4)); - background-image: linear-gradient(to bottom, #337ab7 0%, #2e6da4 100%); - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff337ab7', endColorstr='#ff2e6da4', GradientType=0); - background-repeat: repeat-x; -} -.panel-success > .panel-heading { - background-image: -webkit-linear-gradient(top, #dff0d8 0%, #d0e9c6 100%); - background-image: -o-linear-gradient(top, #dff0d8 0%, #d0e9c6 100%); - background-image: -webkit-gradient(linear, left top, left bottom, from(#dff0d8), to(#d0e9c6)); - background-image: linear-gradient(to bottom, #dff0d8 0%, #d0e9c6 100%); - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffdff0d8', endColorstr='#ffd0e9c6', GradientType=0); - background-repeat: repeat-x; -} -.panel-info > .panel-heading { - background-image: -webkit-linear-gradient(top, #d9edf7 0%, #c4e3f3 100%); - background-image: -o-linear-gradient(top, #d9edf7 0%, #c4e3f3 100%); - background-image: -webkit-gradient(linear, left top, left bottom, from(#d9edf7), to(#c4e3f3)); - background-image: linear-gradient(to bottom, #d9edf7 0%, #c4e3f3 100%); - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9edf7', endColorstr='#ffc4e3f3', GradientType=0); - background-repeat: repeat-x; -} -.panel-warning > .panel-heading { - background-image: -webkit-linear-gradient(top, #fcf8e3 0%, #faf2cc 100%); - background-image: -o-linear-gradient(top, #fcf8e3 0%, #faf2cc 100%); - background-image: -webkit-gradient(linear, left top, left bottom, from(#fcf8e3), to(#faf2cc)); - background-image: linear-gradient(to bottom, #fcf8e3 0%, #faf2cc 100%); - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fffcf8e3', endColorstr='#fffaf2cc', GradientType=0); - background-repeat: repeat-x; -} -.panel-danger > .panel-heading { - background-image: -webkit-linear-gradient(top, #f2dede 0%, #ebcccc 100%); - background-image: -o-linear-gradient(top, #f2dede 0%, #ebcccc 100%); - background-image: -webkit-gradient(linear, left top, left bottom, from(#f2dede), to(#ebcccc)); - background-image: linear-gradient(to bottom, #f2dede 0%, #ebcccc 100%); - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff2dede', endColorstr='#ffebcccc', GradientType=0); - background-repeat: repeat-x; -} -.well { - background-image: -webkit-linear-gradient(top, #e8e8e8 0%, #f5f5f5 100%); - background-image: -o-linear-gradient(top, #e8e8e8 0%, #f5f5f5 100%); - background-image: -webkit-gradient(linear, left top, left bottom, from(#e8e8e8), to(#f5f5f5)); - background-image: linear-gradient(to bottom, #e8e8e8 0%, #f5f5f5 100%); - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffe8e8e8', endColorstr='#fff5f5f5', GradientType=0); - background-repeat: repeat-x; - border-color: #dcdcdc; - -webkit-box-shadow: inset 0 1px 3px rgba(0, 0, 0, .05), 0 1px 0 rgba(255, 255, 255, .1); - box-shadow: inset 0 1px 3px rgba(0, 0, 0, .05), 0 1px 0 rgba(255, 255, 255, .1); -} -/*# sourceMappingURL=bootstrap-theme.css.map */ diff --git a/admin/bower_components/bootstrap/dist/css/bootstrap-theme.css.map b/admin/bower_components/bootstrap/dist/css/bootstrap-theme.css.map deleted file mode 100644 index d876f60..0000000 --- a/admin/bower_components/bootstrap/dist/css/bootstrap-theme.css.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sources":["bootstrap-theme.css","less/theme.less","less/mixins/vendor-prefixes.less","less/mixins/gradients.less","less/mixins/reset-filter.less"],"names":[],"mappings":"AAAA;;;;GAIG;ACeH;;;;;;EAME,yCAAA;EC2CA,4FAAA;EACQ,oFAAA;CFvDT;ACgBC;;;;;;;;;;;;ECsCA,yDAAA;EACQ,iDAAA;CFxCT;ACMC;;;;;;;;;;;;;;;;;;ECiCA,yBAAA;EACQ,iBAAA;CFnBT;AC/BD;;;;;;EAuBI,kBAAA;CDgBH;ACyBC;;EAEE,uBAAA;CDvBH;AC4BD;EErEI,sEAAA;EACA,iEAAA;EACA,2FAAA;EAAA,oEAAA;EAEA,uHAAA;ECnBF,oEAAA;EH4CA,4BAAA;EACA,sBAAA;EAuC2C,0BAAA;EAA2B,mBAAA;CDjBvE;ACpBC;;EAEE,0BAAA;EACA,6BAAA;CDsBH;ACnBC;;EAEE,0BAAA;EACA,sBAAA;CDqBH;ACfG;;;;;;;;;;;;;;;;;;EAME,0BAAA;EACA,uBAAA;CD6BL;ACbD;EEtEI,yEAAA;EACA,oEAAA;EACA,8FAAA;EAAA,uEAAA;EAEA,uHAAA;ECnBF,oEAAA;EH4CA,4BAAA;EACA,sBAAA;CD8DD;AC5DC;;EAEE,0BAAA;EACA,6BAAA;CD8DH;AC3DC;;EAEE,0BAAA;EACA,sBAAA;CD6DH;ACvDG;;;;;;;;;;;;;;;;;;EAME,0BAAA;EACA,uBAAA;CDqEL;ACpDD;EEvEI,yEAAA;EACA,oEAAA;EACA,8FAAA;EAAA,uEAAA;EAEA,uHAAA;ECnBF,oEAAA;EH4CA,4BAAA;EACA,sBAAA;CDsGD;ACpGC;;EAEE,0BAAA;EACA,6BAAA;CDsGH;ACnGC;;EAEE,0BAAA;EACA,sBAAA;CDqGH;AC/FG;;;;;;;;;;;;;;;;;;EAME,0BAAA;EACA,uBAAA;CD6GL;AC3FD;EExEI,yEAAA;EACA,oEAAA;EACA,8FAAA;EAAA,uEAAA;EAEA,uHAAA;ECnBF,oEAAA;EH4CA,4BAAA;EACA,sBAAA;CD8ID;AC5IC;;EAEE,0BAAA;EACA,6BAAA;CD8IH;AC3IC;;EAEE,0BAAA;EACA,sBAAA;CD6IH;ACvIG;;;;;;;;;;;;;;;;;;EAME,0BAAA;EACA,uBAAA;CDqJL;AClID;EEzEI,yEAAA;EACA,oEAAA;EACA,8FAAA;EAAA,uEAAA;EAEA,uHAAA;ECnBF,oEAAA;EH4CA,4BAAA;EACA,sBAAA;CDsLD;ACpLC;;EAEE,0BAAA;EACA,6BAAA;CDsLH;ACnLC;;EAEE,0BAAA;EACA,sBAAA;CDqLH;AC/KG;;;;;;;;;;;;;;;;;;EAME,0BAAA;EACA,uBAAA;CD6LL;ACzKD;EE1EI,yEAAA;EACA,oEAAA;EACA,8FAAA;EAAA,uEAAA;EAEA,uHAAA;ECnBF,oEAAA;EH4CA,4BAAA;EACA,sBAAA;CD8ND;AC5NC;;EAEE,0BAAA;EACA,6BAAA;CD8NH;AC3NC;;EAEE,0BAAA;EACA,sBAAA;CD6NH;ACvNG;;;;;;;;;;;;;;;;;;EAME,0BAAA;EACA,uBAAA;CDqOL;AC1MD;;EClCE,mDAAA;EACQ,2CAAA;CFgPT;ACrMD;;EE3FI,yEAAA;EACA,oEAAA;EACA,8FAAA;EAAA,uEAAA;EACA,4BAAA;EACA,uHAAA;EF0FF,0BAAA;CD2MD;ACzMD;;;EEhGI,yEAAA;EACA,oEAAA;EACA,8FAAA;EAAA,uEAAA;EACA,4BAAA;EACA,uHAAA;EFgGF,0BAAA;CD+MD;ACtMD;EE7GI,yEAAA;EACA,oEAAA;EACA,8FAAA;EAAA,uEAAA;EACA,4BAAA;EACA,uHAAA;ECnBF,oEAAA;EH+HA,mBAAA;ECjEA,4FAAA;EACQ,oFAAA;CF8QT;ACjND;;EE7GI,yEAAA;EACA,oEAAA;EACA,8FAAA;EAAA,uEAAA;EACA,4BAAA;EACA,uHAAA;ED2CF,yDAAA;EACQ,iDAAA;CFwRT;AC9MD;;EAEE,+CAAA;CDgND;AC5MD;EEhII,sEAAA;EACA,iEAAA;EACA,2FAAA;EAAA,oEAAA;EACA,4BAAA;EACA,uHAAA;ECnBF,oEAAA;EHkJA,mBAAA;CDkND;ACrND;;EEhII,yEAAA;EACA,oEAAA;EACA,8FAAA;EAAA,uEAAA;EACA,4BAAA;EACA,uHAAA;ED2CF,wDAAA;EACQ,gDAAA;CF+ST;AC/ND;;EAYI,0CAAA;CDuNH;AClND;;;EAGE,iBAAA;CDoND;AC/LD;EAfI;;;IAGE,YAAA;IE7JF,yEAAA;IACA,oEAAA;IACA,8FAAA;IAAA,uEAAA;IACA,4BAAA;IACA,uHAAA;GH+WD;CACF;AC3MD;EACE,8CAAA;EC3HA,2FAAA;EACQ,mFAAA;CFyUT;ACnMD;EEtLI,yEAAA;EACA,oEAAA;EACA,8FAAA;EAAA,uEAAA;EACA,4BAAA;EACA,uHAAA;EF8KF,sBAAA;CD+MD;AC1MD;EEvLI,yEAAA;EACA,oEAAA;EACA,8FAAA;EAAA,uEAAA;EACA,4BAAA;EACA,uHAAA;EF8KF,sBAAA;CDuND;ACjND;EExLI,yEAAA;EACA,oEAAA;EACA,8FAAA;EAAA,uEAAA;EACA,4BAAA;EACA,uHAAA;EF8KF,sBAAA;CD+ND;ACxND;EEzLI,yEAAA;EACA,oEAAA;EACA,8FAAA;EAAA,uEAAA;EACA,4BAAA;EACA,uHAAA;EF8KF,sBAAA;CDuOD;ACxND;EEjMI,yEAAA;EACA,oEAAA;EACA,8FAAA;EAAA,uEAAA;EACA,4BAAA;EACA,uHAAA;CH4ZH;ACrND;EE3MI,yEAAA;EACA,oEAAA;EACA,8FAAA;EAAA,uEAAA;EACA,4BAAA;EACA,uHAAA;CHmaH;AC3ND;EE5MI,yEAAA;EACA,oEAAA;EACA,8FAAA;EAAA,uEAAA;EACA,4BAAA;EACA,uHAAA;CH0aH;ACjOD;EE7MI,yEAAA;EACA,oEAAA;EACA,8FAAA;EAAA,uEAAA;EACA,4BAAA;EACA,uHAAA;CHibH;ACvOD;EE9MI,yEAAA;EACA,oEAAA;EACA,8FAAA;EAAA,uEAAA;EACA,4BAAA;EACA,uHAAA;CHwbH;AC7OD;EE/MI,yEAAA;EACA,oEAAA;EACA,8FAAA;EAAA,uEAAA;EACA,4BAAA;EACA,uHAAA;CH+bH;AChPD;EElLI,8MAAA;EACA,yMAAA;EACA,sMAAA;CHqaH;AC5OD;EACE,mBAAA;EC9KA,mDAAA;EACQ,2CAAA;CF6ZT;AC7OD;;;EAGE,8BAAA;EEnOE,yEAAA;EACA,oEAAA;EACA,8FAAA;EAAA,uEAAA;EACA,4BAAA;EACA,uHAAA;EFiOF,sBAAA;CDmPD;ACxPD;;;EAQI,kBAAA;CDqPH;AC3OD;ECnME,kDAAA;EACQ,0CAAA;CFibT;ACrOD;EE5PI,yEAAA;EACA,oEAAA;EACA,8FAAA;EAAA,uEAAA;EACA,4BAAA;EACA,uHAAA;CHoeH;AC3OD;EE7PI,yEAAA;EACA,oEAAA;EACA,8FAAA;EAAA,uEAAA;EACA,4BAAA;EACA,uHAAA;CH2eH;ACjPD;EE9PI,yEAAA;EACA,oEAAA;EACA,8FAAA;EAAA,uEAAA;EACA,4BAAA;EACA,uHAAA;CHkfH;ACvPD;EE/PI,yEAAA;EACA,oEAAA;EACA,8FAAA;EAAA,uEAAA;EACA,4BAAA;EACA,uHAAA;CHyfH;AC7PD;EEhQI,yEAAA;EACA,oEAAA;EACA,8FAAA;EAAA,uEAAA;EACA,4BAAA;EACA,uHAAA;CHggBH;ACnQD;EEjQI,yEAAA;EACA,oEAAA;EACA,8FAAA;EAAA,uEAAA;EACA,4BAAA;EACA,uHAAA;CHugBH;ACnQD;EExQI,yEAAA;EACA,oEAAA;EACA,8FAAA;EAAA,uEAAA;EACA,4BAAA;EACA,uHAAA;EFsQF,sBAAA;EC3NA,0FAAA;EACQ,kFAAA;CFqeT","file":"bootstrap-theme.css","sourcesContent":["/*!\n * Bootstrap v3.3.7 (http://getbootstrap.com)\n * Copyright 2011-2016 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n */\n.btn-default,\n.btn-primary,\n.btn-success,\n.btn-info,\n.btn-warning,\n.btn-danger {\n text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.2);\n -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.15), 0 1px 1px rgba(0, 0, 0, 0.075);\n box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.15), 0 1px 1px rgba(0, 0, 0, 0.075);\n}\n.btn-default:active,\n.btn-primary:active,\n.btn-success:active,\n.btn-info:active,\n.btn-warning:active,\n.btn-danger:active,\n.btn-default.active,\n.btn-primary.active,\n.btn-success.active,\n.btn-info.active,\n.btn-warning.active,\n.btn-danger.active {\n -webkit-box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);\n box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);\n}\n.btn-default.disabled,\n.btn-primary.disabled,\n.btn-success.disabled,\n.btn-info.disabled,\n.btn-warning.disabled,\n.btn-danger.disabled,\n.btn-default[disabled],\n.btn-primary[disabled],\n.btn-success[disabled],\n.btn-info[disabled],\n.btn-warning[disabled],\n.btn-danger[disabled],\nfieldset[disabled] .btn-default,\nfieldset[disabled] .btn-primary,\nfieldset[disabled] .btn-success,\nfieldset[disabled] .btn-info,\nfieldset[disabled] .btn-warning,\nfieldset[disabled] .btn-danger {\n -webkit-box-shadow: none;\n box-shadow: none;\n}\n.btn-default .badge,\n.btn-primary .badge,\n.btn-success .badge,\n.btn-info .badge,\n.btn-warning .badge,\n.btn-danger .badge {\n text-shadow: none;\n}\n.btn:active,\n.btn.active {\n background-image: none;\n}\n.btn-default {\n background-image: -webkit-linear-gradient(top, #fff 0%, #e0e0e0 100%);\n background-image: -o-linear-gradient(top, #fff 0%, #e0e0e0 100%);\n background-image: linear-gradient(to bottom, #fff 0%, #e0e0e0 100%);\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff', endColorstr='#ffe0e0e0', GradientType=0);\n filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);\n background-repeat: repeat-x;\n border-color: #dbdbdb;\n text-shadow: 0 1px 0 #fff;\n border-color: #ccc;\n}\n.btn-default:hover,\n.btn-default:focus {\n background-color: #e0e0e0;\n background-position: 0 -15px;\n}\n.btn-default:active,\n.btn-default.active {\n background-color: #e0e0e0;\n border-color: #dbdbdb;\n}\n.btn-default.disabled,\n.btn-default[disabled],\nfieldset[disabled] .btn-default,\n.btn-default.disabled:hover,\n.btn-default[disabled]:hover,\nfieldset[disabled] .btn-default:hover,\n.btn-default.disabled:focus,\n.btn-default[disabled]:focus,\nfieldset[disabled] .btn-default:focus,\n.btn-default.disabled.focus,\n.btn-default[disabled].focus,\nfieldset[disabled] .btn-default.focus,\n.btn-default.disabled:active,\n.btn-default[disabled]:active,\nfieldset[disabled] .btn-default:active,\n.btn-default.disabled.active,\n.btn-default[disabled].active,\nfieldset[disabled] .btn-default.active {\n background-color: #e0e0e0;\n background-image: none;\n}\n.btn-primary {\n background-image: -webkit-linear-gradient(top, #337ab7 0%, #265a88 100%);\n background-image: -o-linear-gradient(top, #337ab7 0%, #265a88 100%);\n background-image: linear-gradient(to bottom, #337ab7 0%, #265a88 100%);\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff337ab7', endColorstr='#ff265a88', GradientType=0);\n filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);\n background-repeat: repeat-x;\n border-color: #245580;\n}\n.btn-primary:hover,\n.btn-primary:focus {\n background-color: #265a88;\n background-position: 0 -15px;\n}\n.btn-primary:active,\n.btn-primary.active {\n background-color: #265a88;\n border-color: #245580;\n}\n.btn-primary.disabled,\n.btn-primary[disabled],\nfieldset[disabled] .btn-primary,\n.btn-primary.disabled:hover,\n.btn-primary[disabled]:hover,\nfieldset[disabled] .btn-primary:hover,\n.btn-primary.disabled:focus,\n.btn-primary[disabled]:focus,\nfieldset[disabled] .btn-primary:focus,\n.btn-primary.disabled.focus,\n.btn-primary[disabled].focus,\nfieldset[disabled] .btn-primary.focus,\n.btn-primary.disabled:active,\n.btn-primary[disabled]:active,\nfieldset[disabled] .btn-primary:active,\n.btn-primary.disabled.active,\n.btn-primary[disabled].active,\nfieldset[disabled] .btn-primary.active {\n background-color: #265a88;\n background-image: none;\n}\n.btn-success {\n background-image: -webkit-linear-gradient(top, #5cb85c 0%, #419641 100%);\n background-image: -o-linear-gradient(top, #5cb85c 0%, #419641 100%);\n background-image: linear-gradient(to bottom, #5cb85c 0%, #419641 100%);\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5cb85c', endColorstr='#ff419641', GradientType=0);\n filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);\n background-repeat: repeat-x;\n border-color: #3e8f3e;\n}\n.btn-success:hover,\n.btn-success:focus {\n background-color: #419641;\n background-position: 0 -15px;\n}\n.btn-success:active,\n.btn-success.active {\n background-color: #419641;\n border-color: #3e8f3e;\n}\n.btn-success.disabled,\n.btn-success[disabled],\nfieldset[disabled] .btn-success,\n.btn-success.disabled:hover,\n.btn-success[disabled]:hover,\nfieldset[disabled] .btn-success:hover,\n.btn-success.disabled:focus,\n.btn-success[disabled]:focus,\nfieldset[disabled] .btn-success:focus,\n.btn-success.disabled.focus,\n.btn-success[disabled].focus,\nfieldset[disabled] .btn-success.focus,\n.btn-success.disabled:active,\n.btn-success[disabled]:active,\nfieldset[disabled] .btn-success:active,\n.btn-success.disabled.active,\n.btn-success[disabled].active,\nfieldset[disabled] .btn-success.active {\n background-color: #419641;\n background-image: none;\n}\n.btn-info {\n background-image: -webkit-linear-gradient(top, #5bc0de 0%, #2aabd2 100%);\n background-image: -o-linear-gradient(top, #5bc0de 0%, #2aabd2 100%);\n background-image: linear-gradient(to bottom, #5bc0de 0%, #2aabd2 100%);\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5bc0de', endColorstr='#ff2aabd2', GradientType=0);\n filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);\n background-repeat: repeat-x;\n border-color: #28a4c9;\n}\n.btn-info:hover,\n.btn-info:focus {\n background-color: #2aabd2;\n background-position: 0 -15px;\n}\n.btn-info:active,\n.btn-info.active {\n background-color: #2aabd2;\n border-color: #28a4c9;\n}\n.btn-info.disabled,\n.btn-info[disabled],\nfieldset[disabled] .btn-info,\n.btn-info.disabled:hover,\n.btn-info[disabled]:hover,\nfieldset[disabled] .btn-info:hover,\n.btn-info.disabled:focus,\n.btn-info[disabled]:focus,\nfieldset[disabled] .btn-info:focus,\n.btn-info.disabled.focus,\n.btn-info[disabled].focus,\nfieldset[disabled] .btn-info.focus,\n.btn-info.disabled:active,\n.btn-info[disabled]:active,\nfieldset[disabled] .btn-info:active,\n.btn-info.disabled.active,\n.btn-info[disabled].active,\nfieldset[disabled] .btn-info.active {\n background-color: #2aabd2;\n background-image: none;\n}\n.btn-warning {\n background-image: -webkit-linear-gradient(top, #f0ad4e 0%, #eb9316 100%);\n background-image: -o-linear-gradient(top, #f0ad4e 0%, #eb9316 100%);\n background-image: linear-gradient(to bottom, #f0ad4e 0%, #eb9316 100%);\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff0ad4e', endColorstr='#ffeb9316', GradientType=0);\n filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);\n background-repeat: repeat-x;\n border-color: #e38d13;\n}\n.btn-warning:hover,\n.btn-warning:focus {\n background-color: #eb9316;\n background-position: 0 -15px;\n}\n.btn-warning:active,\n.btn-warning.active {\n background-color: #eb9316;\n border-color: #e38d13;\n}\n.btn-warning.disabled,\n.btn-warning[disabled],\nfieldset[disabled] .btn-warning,\n.btn-warning.disabled:hover,\n.btn-warning[disabled]:hover,\nfieldset[disabled] .btn-warning:hover,\n.btn-warning.disabled:focus,\n.btn-warning[disabled]:focus,\nfieldset[disabled] .btn-warning:focus,\n.btn-warning.disabled.focus,\n.btn-warning[disabled].focus,\nfieldset[disabled] .btn-warning.focus,\n.btn-warning.disabled:active,\n.btn-warning[disabled]:active,\nfieldset[disabled] .btn-warning:active,\n.btn-warning.disabled.active,\n.btn-warning[disabled].active,\nfieldset[disabled] .btn-warning.active {\n background-color: #eb9316;\n background-image: none;\n}\n.btn-danger {\n background-image: -webkit-linear-gradient(top, #d9534f 0%, #c12e2a 100%);\n background-image: -o-linear-gradient(top, #d9534f 0%, #c12e2a 100%);\n background-image: linear-gradient(to bottom, #d9534f 0%, #c12e2a 100%);\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9534f', endColorstr='#ffc12e2a', GradientType=0);\n filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);\n background-repeat: repeat-x;\n border-color: #b92c28;\n}\n.btn-danger:hover,\n.btn-danger:focus {\n background-color: #c12e2a;\n background-position: 0 -15px;\n}\n.btn-danger:active,\n.btn-danger.active {\n background-color: #c12e2a;\n border-color: #b92c28;\n}\n.btn-danger.disabled,\n.btn-danger[disabled],\nfieldset[disabled] .btn-danger,\n.btn-danger.disabled:hover,\n.btn-danger[disabled]:hover,\nfieldset[disabled] .btn-danger:hover,\n.btn-danger.disabled:focus,\n.btn-danger[disabled]:focus,\nfieldset[disabled] .btn-danger:focus,\n.btn-danger.disabled.focus,\n.btn-danger[disabled].focus,\nfieldset[disabled] .btn-danger.focus,\n.btn-danger.disabled:active,\n.btn-danger[disabled]:active,\nfieldset[disabled] .btn-danger:active,\n.btn-danger.disabled.active,\n.btn-danger[disabled].active,\nfieldset[disabled] .btn-danger.active {\n background-color: #c12e2a;\n background-image: none;\n}\n.thumbnail,\n.img-thumbnail {\n -webkit-box-shadow: 0 1px 2px rgba(0, 0, 0, 0.075);\n box-shadow: 0 1px 2px rgba(0, 0, 0, 0.075);\n}\n.dropdown-menu > li > a:hover,\n.dropdown-menu > li > a:focus {\n background-image: -webkit-linear-gradient(top, #f5f5f5 0%, #e8e8e8 100%);\n background-image: -o-linear-gradient(top, #f5f5f5 0%, #e8e8e8 100%);\n background-image: linear-gradient(to bottom, #f5f5f5 0%, #e8e8e8 100%);\n background-repeat: repeat-x;\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff5f5f5', endColorstr='#ffe8e8e8', GradientType=0);\n background-color: #e8e8e8;\n}\n.dropdown-menu > .active > a,\n.dropdown-menu > .active > a:hover,\n.dropdown-menu > .active > a:focus {\n background-image: -webkit-linear-gradient(top, #337ab7 0%, #2e6da4 100%);\n background-image: -o-linear-gradient(top, #337ab7 0%, #2e6da4 100%);\n background-image: linear-gradient(to bottom, #337ab7 0%, #2e6da4 100%);\n background-repeat: repeat-x;\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff337ab7', endColorstr='#ff2e6da4', GradientType=0);\n background-color: #2e6da4;\n}\n.navbar-default {\n background-image: -webkit-linear-gradient(top, #ffffff 0%, #f8f8f8 100%);\n background-image: -o-linear-gradient(top, #ffffff 0%, #f8f8f8 100%);\n background-image: linear-gradient(to bottom, #ffffff 0%, #f8f8f8 100%);\n background-repeat: repeat-x;\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff', endColorstr='#fff8f8f8', GradientType=0);\n filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);\n border-radius: 4px;\n -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.15), 0 1px 5px rgba(0, 0, 0, 0.075);\n box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.15), 0 1px 5px rgba(0, 0, 0, 0.075);\n}\n.navbar-default .navbar-nav > .open > a,\n.navbar-default .navbar-nav > .active > a {\n background-image: -webkit-linear-gradient(top, #dbdbdb 0%, #e2e2e2 100%);\n background-image: -o-linear-gradient(top, #dbdbdb 0%, #e2e2e2 100%);\n background-image: linear-gradient(to bottom, #dbdbdb 0%, #e2e2e2 100%);\n background-repeat: repeat-x;\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffdbdbdb', endColorstr='#ffe2e2e2', GradientType=0);\n -webkit-box-shadow: inset 0 3px 9px rgba(0, 0, 0, 0.075);\n box-shadow: inset 0 3px 9px rgba(0, 0, 0, 0.075);\n}\n.navbar-brand,\n.navbar-nav > li > a {\n text-shadow: 0 1px 0 rgba(255, 255, 255, 0.25);\n}\n.navbar-inverse {\n background-image: -webkit-linear-gradient(top, #3c3c3c 0%, #222 100%);\n background-image: -o-linear-gradient(top, #3c3c3c 0%, #222 100%);\n background-image: linear-gradient(to bottom, #3c3c3c 0%, #222 100%);\n background-repeat: repeat-x;\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff3c3c3c', endColorstr='#ff222222', GradientType=0);\n filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);\n border-radius: 4px;\n}\n.navbar-inverse .navbar-nav > .open > a,\n.navbar-inverse .navbar-nav > .active > a {\n background-image: -webkit-linear-gradient(top, #080808 0%, #0f0f0f 100%);\n background-image: -o-linear-gradient(top, #080808 0%, #0f0f0f 100%);\n background-image: linear-gradient(to bottom, #080808 0%, #0f0f0f 100%);\n background-repeat: repeat-x;\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff080808', endColorstr='#ff0f0f0f', GradientType=0);\n -webkit-box-shadow: inset 0 3px 9px rgba(0, 0, 0, 0.25);\n box-shadow: inset 0 3px 9px rgba(0, 0, 0, 0.25);\n}\n.navbar-inverse .navbar-brand,\n.navbar-inverse .navbar-nav > li > a {\n text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25);\n}\n.navbar-static-top,\n.navbar-fixed-top,\n.navbar-fixed-bottom {\n border-radius: 0;\n}\n@media (max-width: 767px) {\n .navbar .navbar-nav .open .dropdown-menu > .active > a,\n .navbar .navbar-nav .open .dropdown-menu > .active > a:hover,\n .navbar .navbar-nav .open .dropdown-menu > .active > a:focus {\n color: #fff;\n background-image: -webkit-linear-gradient(top, #337ab7 0%, #2e6da4 100%);\n background-image: -o-linear-gradient(top, #337ab7 0%, #2e6da4 100%);\n background-image: linear-gradient(to bottom, #337ab7 0%, #2e6da4 100%);\n background-repeat: repeat-x;\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff337ab7', endColorstr='#ff2e6da4', GradientType=0);\n }\n}\n.alert {\n text-shadow: 0 1px 0 rgba(255, 255, 255, 0.2);\n -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.25), 0 1px 2px rgba(0, 0, 0, 0.05);\n box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.25), 0 1px 2px rgba(0, 0, 0, 0.05);\n}\n.alert-success {\n background-image: -webkit-linear-gradient(top, #dff0d8 0%, #c8e5bc 100%);\n background-image: -o-linear-gradient(top, #dff0d8 0%, #c8e5bc 100%);\n background-image: linear-gradient(to bottom, #dff0d8 0%, #c8e5bc 100%);\n background-repeat: repeat-x;\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffdff0d8', endColorstr='#ffc8e5bc', GradientType=0);\n border-color: #b2dba1;\n}\n.alert-info {\n background-image: -webkit-linear-gradient(top, #d9edf7 0%, #b9def0 100%);\n background-image: -o-linear-gradient(top, #d9edf7 0%, #b9def0 100%);\n background-image: linear-gradient(to bottom, #d9edf7 0%, #b9def0 100%);\n background-repeat: repeat-x;\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9edf7', endColorstr='#ffb9def0', GradientType=0);\n border-color: #9acfea;\n}\n.alert-warning {\n background-image: -webkit-linear-gradient(top, #fcf8e3 0%, #f8efc0 100%);\n background-image: -o-linear-gradient(top, #fcf8e3 0%, #f8efc0 100%);\n background-image: linear-gradient(to bottom, #fcf8e3 0%, #f8efc0 100%);\n background-repeat: repeat-x;\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fffcf8e3', endColorstr='#fff8efc0', GradientType=0);\n border-color: #f5e79e;\n}\n.alert-danger {\n background-image: -webkit-linear-gradient(top, #f2dede 0%, #e7c3c3 100%);\n background-image: -o-linear-gradient(top, #f2dede 0%, #e7c3c3 100%);\n background-image: linear-gradient(to bottom, #f2dede 0%, #e7c3c3 100%);\n background-repeat: repeat-x;\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff2dede', endColorstr='#ffe7c3c3', GradientType=0);\n border-color: #dca7a7;\n}\n.progress {\n background-image: -webkit-linear-gradient(top, #ebebeb 0%, #f5f5f5 100%);\n background-image: -o-linear-gradient(top, #ebebeb 0%, #f5f5f5 100%);\n background-image: linear-gradient(to bottom, #ebebeb 0%, #f5f5f5 100%);\n background-repeat: repeat-x;\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffebebeb', endColorstr='#fff5f5f5', GradientType=0);\n}\n.progress-bar {\n background-image: -webkit-linear-gradient(top, #337ab7 0%, #286090 100%);\n background-image: -o-linear-gradient(top, #337ab7 0%, #286090 100%);\n background-image: linear-gradient(to bottom, #337ab7 0%, #286090 100%);\n background-repeat: repeat-x;\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff337ab7', endColorstr='#ff286090', GradientType=0);\n}\n.progress-bar-success {\n background-image: -webkit-linear-gradient(top, #5cb85c 0%, #449d44 100%);\n background-image: -o-linear-gradient(top, #5cb85c 0%, #449d44 100%);\n background-image: linear-gradient(to bottom, #5cb85c 0%, #449d44 100%);\n background-repeat: repeat-x;\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5cb85c', endColorstr='#ff449d44', GradientType=0);\n}\n.progress-bar-info {\n background-image: -webkit-linear-gradient(top, #5bc0de 0%, #31b0d5 100%);\n background-image: -o-linear-gradient(top, #5bc0de 0%, #31b0d5 100%);\n background-image: linear-gradient(to bottom, #5bc0de 0%, #31b0d5 100%);\n background-repeat: repeat-x;\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5bc0de', endColorstr='#ff31b0d5', GradientType=0);\n}\n.progress-bar-warning {\n background-image: -webkit-linear-gradient(top, #f0ad4e 0%, #ec971f 100%);\n background-image: -o-linear-gradient(top, #f0ad4e 0%, #ec971f 100%);\n background-image: linear-gradient(to bottom, #f0ad4e 0%, #ec971f 100%);\n background-repeat: repeat-x;\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff0ad4e', endColorstr='#ffec971f', GradientType=0);\n}\n.progress-bar-danger {\n background-image: -webkit-linear-gradient(top, #d9534f 0%, #c9302c 100%);\n background-image: -o-linear-gradient(top, #d9534f 0%, #c9302c 100%);\n background-image: linear-gradient(to bottom, #d9534f 0%, #c9302c 100%);\n background-repeat: repeat-x;\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9534f', endColorstr='#ffc9302c', GradientType=0);\n}\n.progress-bar-striped {\n background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);\n background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);\n background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);\n}\n.list-group {\n border-radius: 4px;\n -webkit-box-shadow: 0 1px 2px rgba(0, 0, 0, 0.075);\n box-shadow: 0 1px 2px rgba(0, 0, 0, 0.075);\n}\n.list-group-item.active,\n.list-group-item.active:hover,\n.list-group-item.active:focus {\n text-shadow: 0 -1px 0 #286090;\n background-image: -webkit-linear-gradient(top, #337ab7 0%, #2b669a 100%);\n background-image: -o-linear-gradient(top, #337ab7 0%, #2b669a 100%);\n background-image: linear-gradient(to bottom, #337ab7 0%, #2b669a 100%);\n background-repeat: repeat-x;\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff337ab7', endColorstr='#ff2b669a', GradientType=0);\n border-color: #2b669a;\n}\n.list-group-item.active .badge,\n.list-group-item.active:hover .badge,\n.list-group-item.active:focus .badge {\n text-shadow: none;\n}\n.panel {\n -webkit-box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05);\n box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05);\n}\n.panel-default > .panel-heading {\n background-image: -webkit-linear-gradient(top, #f5f5f5 0%, #e8e8e8 100%);\n background-image: -o-linear-gradient(top, #f5f5f5 0%, #e8e8e8 100%);\n background-image: linear-gradient(to bottom, #f5f5f5 0%, #e8e8e8 100%);\n background-repeat: repeat-x;\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff5f5f5', endColorstr='#ffe8e8e8', GradientType=0);\n}\n.panel-primary > .panel-heading {\n background-image: -webkit-linear-gradient(top, #337ab7 0%, #2e6da4 100%);\n background-image: -o-linear-gradient(top, #337ab7 0%, #2e6da4 100%);\n background-image: linear-gradient(to bottom, #337ab7 0%, #2e6da4 100%);\n background-repeat: repeat-x;\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff337ab7', endColorstr='#ff2e6da4', GradientType=0);\n}\n.panel-success > .panel-heading {\n background-image: -webkit-linear-gradient(top, #dff0d8 0%, #d0e9c6 100%);\n background-image: -o-linear-gradient(top, #dff0d8 0%, #d0e9c6 100%);\n background-image: linear-gradient(to bottom, #dff0d8 0%, #d0e9c6 100%);\n background-repeat: repeat-x;\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffdff0d8', endColorstr='#ffd0e9c6', GradientType=0);\n}\n.panel-info > .panel-heading {\n background-image: -webkit-linear-gradient(top, #d9edf7 0%, #c4e3f3 100%);\n background-image: -o-linear-gradient(top, #d9edf7 0%, #c4e3f3 100%);\n background-image: linear-gradient(to bottom, #d9edf7 0%, #c4e3f3 100%);\n background-repeat: repeat-x;\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9edf7', endColorstr='#ffc4e3f3', GradientType=0);\n}\n.panel-warning > .panel-heading {\n background-image: -webkit-linear-gradient(top, #fcf8e3 0%, #faf2cc 100%);\n background-image: -o-linear-gradient(top, #fcf8e3 0%, #faf2cc 100%);\n background-image: linear-gradient(to bottom, #fcf8e3 0%, #faf2cc 100%);\n background-repeat: repeat-x;\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fffcf8e3', endColorstr='#fffaf2cc', GradientType=0);\n}\n.panel-danger > .panel-heading {\n background-image: -webkit-linear-gradient(top, #f2dede 0%, #ebcccc 100%);\n background-image: -o-linear-gradient(top, #f2dede 0%, #ebcccc 100%);\n background-image: linear-gradient(to bottom, #f2dede 0%, #ebcccc 100%);\n background-repeat: repeat-x;\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff2dede', endColorstr='#ffebcccc', GradientType=0);\n}\n.well {\n background-image: -webkit-linear-gradient(top, #e8e8e8 0%, #f5f5f5 100%);\n background-image: -o-linear-gradient(top, #e8e8e8 0%, #f5f5f5 100%);\n background-image: linear-gradient(to bottom, #e8e8e8 0%, #f5f5f5 100%);\n background-repeat: repeat-x;\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffe8e8e8', endColorstr='#fff5f5f5', GradientType=0);\n border-color: #dcdcdc;\n -webkit-box-shadow: inset 0 1px 3px rgba(0, 0, 0, 0.05), 0 1px 0 rgba(255, 255, 255, 0.1);\n box-shadow: inset 0 1px 3px rgba(0, 0, 0, 0.05), 0 1px 0 rgba(255, 255, 255, 0.1);\n}\n/*# sourceMappingURL=bootstrap-theme.css.map */","/*!\n * Bootstrap v3.3.7 (http://getbootstrap.com)\n * Copyright 2011-2016 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n */\n\n//\n// Load core variables and mixins\n// --------------------------------------------------\n\n@import \"variables.less\";\n@import \"mixins.less\";\n\n\n//\n// Buttons\n// --------------------------------------------------\n\n// Common styles\n.btn-default,\n.btn-primary,\n.btn-success,\n.btn-info,\n.btn-warning,\n.btn-danger {\n text-shadow: 0 -1px 0 rgba(0,0,0,.2);\n @shadow: inset 0 1px 0 rgba(255,255,255,.15), 0 1px 1px rgba(0,0,0,.075);\n .box-shadow(@shadow);\n\n // Reset the shadow\n &:active,\n &.active {\n .box-shadow(inset 0 3px 5px rgba(0,0,0,.125));\n }\n\n &.disabled,\n &[disabled],\n fieldset[disabled] & {\n .box-shadow(none);\n }\n\n .badge {\n text-shadow: none;\n }\n}\n\n// Mixin for generating new styles\n.btn-styles(@btn-color: #555) {\n #gradient > .vertical(@start-color: @btn-color; @end-color: darken(@btn-color, 12%));\n .reset-filter(); // Disable gradients for IE9 because filter bleeds through rounded corners; see https://github.com/twbs/bootstrap/issues/10620\n background-repeat: repeat-x;\n border-color: darken(@btn-color, 14%);\n\n &:hover,\n &:focus {\n background-color: darken(@btn-color, 12%);\n background-position: 0 -15px;\n }\n\n &:active,\n &.active {\n background-color: darken(@btn-color, 12%);\n border-color: darken(@btn-color, 14%);\n }\n\n &.disabled,\n &[disabled],\n fieldset[disabled] & {\n &,\n &:hover,\n &:focus,\n &.focus,\n &:active,\n &.active {\n background-color: darken(@btn-color, 12%);\n background-image: none;\n }\n }\n}\n\n// Common styles\n.btn {\n // Remove the gradient for the pressed/active state\n &:active,\n &.active {\n background-image: none;\n }\n}\n\n// Apply the mixin to the buttons\n.btn-default { .btn-styles(@btn-default-bg); text-shadow: 0 1px 0 #fff; border-color: #ccc; }\n.btn-primary { .btn-styles(@btn-primary-bg); }\n.btn-success { .btn-styles(@btn-success-bg); }\n.btn-info { .btn-styles(@btn-info-bg); }\n.btn-warning { .btn-styles(@btn-warning-bg); }\n.btn-danger { .btn-styles(@btn-danger-bg); }\n\n\n//\n// Images\n// --------------------------------------------------\n\n.thumbnail,\n.img-thumbnail {\n .box-shadow(0 1px 2px rgba(0,0,0,.075));\n}\n\n\n//\n// Dropdowns\n// --------------------------------------------------\n\n.dropdown-menu > li > a:hover,\n.dropdown-menu > li > a:focus {\n #gradient > .vertical(@start-color: @dropdown-link-hover-bg; @end-color: darken(@dropdown-link-hover-bg, 5%));\n background-color: darken(@dropdown-link-hover-bg, 5%);\n}\n.dropdown-menu > .active > a,\n.dropdown-menu > .active > a:hover,\n.dropdown-menu > .active > a:focus {\n #gradient > .vertical(@start-color: @dropdown-link-active-bg; @end-color: darken(@dropdown-link-active-bg, 5%));\n background-color: darken(@dropdown-link-active-bg, 5%);\n}\n\n\n//\n// Navbar\n// --------------------------------------------------\n\n// Default navbar\n.navbar-default {\n #gradient > .vertical(@start-color: lighten(@navbar-default-bg, 10%); @end-color: @navbar-default-bg);\n .reset-filter(); // Remove gradient in IE<10 to fix bug where dropdowns don't get triggered\n border-radius: @navbar-border-radius;\n @shadow: inset 0 1px 0 rgba(255,255,255,.15), 0 1px 5px rgba(0,0,0,.075);\n .box-shadow(@shadow);\n\n .navbar-nav > .open > a,\n .navbar-nav > .active > a {\n #gradient > .vertical(@start-color: darken(@navbar-default-link-active-bg, 5%); @end-color: darken(@navbar-default-link-active-bg, 2%));\n .box-shadow(inset 0 3px 9px rgba(0,0,0,.075));\n }\n}\n.navbar-brand,\n.navbar-nav > li > a {\n text-shadow: 0 1px 0 rgba(255,255,255,.25);\n}\n\n// Inverted navbar\n.navbar-inverse {\n #gradient > .vertical(@start-color: lighten(@navbar-inverse-bg, 10%); @end-color: @navbar-inverse-bg);\n .reset-filter(); // Remove gradient in IE<10 to fix bug where dropdowns don't get triggered; see https://github.com/twbs/bootstrap/issues/10257\n border-radius: @navbar-border-radius;\n .navbar-nav > .open > a,\n .navbar-nav > .active > a {\n #gradient > .vertical(@start-color: @navbar-inverse-link-active-bg; @end-color: lighten(@navbar-inverse-link-active-bg, 2.5%));\n .box-shadow(inset 0 3px 9px rgba(0,0,0,.25));\n }\n\n .navbar-brand,\n .navbar-nav > li > a {\n text-shadow: 0 -1px 0 rgba(0,0,0,.25);\n }\n}\n\n// Undo rounded corners in static and fixed navbars\n.navbar-static-top,\n.navbar-fixed-top,\n.navbar-fixed-bottom {\n border-radius: 0;\n}\n\n// Fix active state of dropdown items in collapsed mode\n@media (max-width: @grid-float-breakpoint-max) {\n .navbar .navbar-nav .open .dropdown-menu > .active > a {\n &,\n &:hover,\n &:focus {\n color: #fff;\n #gradient > .vertical(@start-color: @dropdown-link-active-bg; @end-color: darken(@dropdown-link-active-bg, 5%));\n }\n }\n}\n\n\n//\n// Alerts\n// --------------------------------------------------\n\n// Common styles\n.alert {\n text-shadow: 0 1px 0 rgba(255,255,255,.2);\n @shadow: inset 0 1px 0 rgba(255,255,255,.25), 0 1px 2px rgba(0,0,0,.05);\n .box-shadow(@shadow);\n}\n\n// Mixin for generating new styles\n.alert-styles(@color) {\n #gradient > .vertical(@start-color: @color; @end-color: darken(@color, 7.5%));\n border-color: darken(@color, 15%);\n}\n\n// Apply the mixin to the alerts\n.alert-success { .alert-styles(@alert-success-bg); }\n.alert-info { .alert-styles(@alert-info-bg); }\n.alert-warning { .alert-styles(@alert-warning-bg); }\n.alert-danger { .alert-styles(@alert-danger-bg); }\n\n\n//\n// Progress bars\n// --------------------------------------------------\n\n// Give the progress background some depth\n.progress {\n #gradient > .vertical(@start-color: darken(@progress-bg, 4%); @end-color: @progress-bg)\n}\n\n// Mixin for generating new styles\n.progress-bar-styles(@color) {\n #gradient > .vertical(@start-color: @color; @end-color: darken(@color, 10%));\n}\n\n// Apply the mixin to the progress bars\n.progress-bar { .progress-bar-styles(@progress-bar-bg); }\n.progress-bar-success { .progress-bar-styles(@progress-bar-success-bg); }\n.progress-bar-info { .progress-bar-styles(@progress-bar-info-bg); }\n.progress-bar-warning { .progress-bar-styles(@progress-bar-warning-bg); }\n.progress-bar-danger { .progress-bar-styles(@progress-bar-danger-bg); }\n\n// Reset the striped class because our mixins don't do multiple gradients and\n// the above custom styles override the new `.progress-bar-striped` in v3.2.0.\n.progress-bar-striped {\n #gradient > .striped();\n}\n\n\n//\n// List groups\n// --------------------------------------------------\n\n.list-group {\n border-radius: @border-radius-base;\n .box-shadow(0 1px 2px rgba(0,0,0,.075));\n}\n.list-group-item.active,\n.list-group-item.active:hover,\n.list-group-item.active:focus {\n text-shadow: 0 -1px 0 darken(@list-group-active-bg, 10%);\n #gradient > .vertical(@start-color: @list-group-active-bg; @end-color: darken(@list-group-active-bg, 7.5%));\n border-color: darken(@list-group-active-border, 7.5%);\n\n .badge {\n text-shadow: none;\n }\n}\n\n\n//\n// Panels\n// --------------------------------------------------\n\n// Common styles\n.panel {\n .box-shadow(0 1px 2px rgba(0,0,0,.05));\n}\n\n// Mixin for generating new styles\n.panel-heading-styles(@color) {\n #gradient > .vertical(@start-color: @color; @end-color: darken(@color, 5%));\n}\n\n// Apply the mixin to the panel headings only\n.panel-default > .panel-heading { .panel-heading-styles(@panel-default-heading-bg); }\n.panel-primary > .panel-heading { .panel-heading-styles(@panel-primary-heading-bg); }\n.panel-success > .panel-heading { .panel-heading-styles(@panel-success-heading-bg); }\n.panel-info > .panel-heading { .panel-heading-styles(@panel-info-heading-bg); }\n.panel-warning > .panel-heading { .panel-heading-styles(@panel-warning-heading-bg); }\n.panel-danger > .panel-heading { .panel-heading-styles(@panel-danger-heading-bg); }\n\n\n//\n// Wells\n// --------------------------------------------------\n\n.well {\n #gradient > .vertical(@start-color: darken(@well-bg, 5%); @end-color: @well-bg);\n border-color: darken(@well-bg, 10%);\n @shadow: inset 0 1px 3px rgba(0,0,0,.05), 0 1px 0 rgba(255,255,255,.1);\n .box-shadow(@shadow);\n}\n","// Vendor Prefixes\n//\n// All vendor mixins are deprecated as of v3.2.0 due to the introduction of\n// Autoprefixer in our Gruntfile. They have been removed in v4.\n\n// - Animations\n// - Backface visibility\n// - Box shadow\n// - Box sizing\n// - Content columns\n// - Hyphens\n// - Placeholder text\n// - Transformations\n// - Transitions\n// - User Select\n\n\n// Animations\n.animation(@animation) {\n -webkit-animation: @animation;\n -o-animation: @animation;\n animation: @animation;\n}\n.animation-name(@name) {\n -webkit-animation-name: @name;\n animation-name: @name;\n}\n.animation-duration(@duration) {\n -webkit-animation-duration: @duration;\n animation-duration: @duration;\n}\n.animation-timing-function(@timing-function) {\n -webkit-animation-timing-function: @timing-function;\n animation-timing-function: @timing-function;\n}\n.animation-delay(@delay) {\n -webkit-animation-delay: @delay;\n animation-delay: @delay;\n}\n.animation-iteration-count(@iteration-count) {\n -webkit-animation-iteration-count: @iteration-count;\n animation-iteration-count: @iteration-count;\n}\n.animation-direction(@direction) {\n -webkit-animation-direction: @direction;\n animation-direction: @direction;\n}\n.animation-fill-mode(@fill-mode) {\n -webkit-animation-fill-mode: @fill-mode;\n animation-fill-mode: @fill-mode;\n}\n\n// Backface visibility\n// Prevent browsers from flickering when using CSS 3D transforms.\n// Default value is `visible`, but can be changed to `hidden`\n\n.backface-visibility(@visibility) {\n -webkit-backface-visibility: @visibility;\n -moz-backface-visibility: @visibility;\n backface-visibility: @visibility;\n}\n\n// Drop shadows\n//\n// Note: Deprecated `.box-shadow()` as of v3.1.0 since all of Bootstrap's\n// supported browsers that have box shadow capabilities now support it.\n\n.box-shadow(@shadow) {\n -webkit-box-shadow: @shadow; // iOS <4.3 & Android <4.1\n box-shadow: @shadow;\n}\n\n// Box sizing\n.box-sizing(@boxmodel) {\n -webkit-box-sizing: @boxmodel;\n -moz-box-sizing: @boxmodel;\n box-sizing: @boxmodel;\n}\n\n// CSS3 Content Columns\n.content-columns(@column-count; @column-gap: @grid-gutter-width) {\n -webkit-column-count: @column-count;\n -moz-column-count: @column-count;\n column-count: @column-count;\n -webkit-column-gap: @column-gap;\n -moz-column-gap: @column-gap;\n column-gap: @column-gap;\n}\n\n// Optional hyphenation\n.hyphens(@mode: auto) {\n word-wrap: break-word;\n -webkit-hyphens: @mode;\n -moz-hyphens: @mode;\n -ms-hyphens: @mode; // IE10+\n -o-hyphens: @mode;\n hyphens: @mode;\n}\n\n// Placeholder text\n.placeholder(@color: @input-color-placeholder) {\n // Firefox\n &::-moz-placeholder {\n color: @color;\n opacity: 1; // Override Firefox's unusual default opacity; see https://github.com/twbs/bootstrap/pull/11526\n }\n &:-ms-input-placeholder { color: @color; } // Internet Explorer 10+\n &::-webkit-input-placeholder { color: @color; } // Safari and Chrome\n}\n\n// Transformations\n.scale(@ratio) {\n -webkit-transform: scale(@ratio);\n -ms-transform: scale(@ratio); // IE9 only\n -o-transform: scale(@ratio);\n transform: scale(@ratio);\n}\n.scale(@ratioX; @ratioY) {\n -webkit-transform: scale(@ratioX, @ratioY);\n -ms-transform: scale(@ratioX, @ratioY); // IE9 only\n -o-transform: scale(@ratioX, @ratioY);\n transform: scale(@ratioX, @ratioY);\n}\n.scaleX(@ratio) {\n -webkit-transform: scaleX(@ratio);\n -ms-transform: scaleX(@ratio); // IE9 only\n -o-transform: scaleX(@ratio);\n transform: scaleX(@ratio);\n}\n.scaleY(@ratio) {\n -webkit-transform: scaleY(@ratio);\n -ms-transform: scaleY(@ratio); // IE9 only\n -o-transform: scaleY(@ratio);\n transform: scaleY(@ratio);\n}\n.skew(@x; @y) {\n -webkit-transform: skewX(@x) skewY(@y);\n -ms-transform: skewX(@x) skewY(@y); // See https://github.com/twbs/bootstrap/issues/4885; IE9+\n -o-transform: skewX(@x) skewY(@y);\n transform: skewX(@x) skewY(@y);\n}\n.translate(@x; @y) {\n -webkit-transform: translate(@x, @y);\n -ms-transform: translate(@x, @y); // IE9 only\n -o-transform: translate(@x, @y);\n transform: translate(@x, @y);\n}\n.translate3d(@x; @y; @z) {\n -webkit-transform: translate3d(@x, @y, @z);\n transform: translate3d(@x, @y, @z);\n}\n.rotate(@degrees) {\n -webkit-transform: rotate(@degrees);\n -ms-transform: rotate(@degrees); // IE9 only\n -o-transform: rotate(@degrees);\n transform: rotate(@degrees);\n}\n.rotateX(@degrees) {\n -webkit-transform: rotateX(@degrees);\n -ms-transform: rotateX(@degrees); // IE9 only\n -o-transform: rotateX(@degrees);\n transform: rotateX(@degrees);\n}\n.rotateY(@degrees) {\n -webkit-transform: rotateY(@degrees);\n -ms-transform: rotateY(@degrees); // IE9 only\n -o-transform: rotateY(@degrees);\n transform: rotateY(@degrees);\n}\n.perspective(@perspective) {\n -webkit-perspective: @perspective;\n -moz-perspective: @perspective;\n perspective: @perspective;\n}\n.perspective-origin(@perspective) {\n -webkit-perspective-origin: @perspective;\n -moz-perspective-origin: @perspective;\n perspective-origin: @perspective;\n}\n.transform-origin(@origin) {\n -webkit-transform-origin: @origin;\n -moz-transform-origin: @origin;\n -ms-transform-origin: @origin; // IE9 only\n transform-origin: @origin;\n}\n\n\n// Transitions\n\n.transition(@transition) {\n -webkit-transition: @transition;\n -o-transition: @transition;\n transition: @transition;\n}\n.transition-property(@transition-property) {\n -webkit-transition-property: @transition-property;\n transition-property: @transition-property;\n}\n.transition-delay(@transition-delay) {\n -webkit-transition-delay: @transition-delay;\n transition-delay: @transition-delay;\n}\n.transition-duration(@transition-duration) {\n -webkit-transition-duration: @transition-duration;\n transition-duration: @transition-duration;\n}\n.transition-timing-function(@timing-function) {\n -webkit-transition-timing-function: @timing-function;\n transition-timing-function: @timing-function;\n}\n.transition-transform(@transition) {\n -webkit-transition: -webkit-transform @transition;\n -moz-transition: -moz-transform @transition;\n -o-transition: -o-transform @transition;\n transition: transform @transition;\n}\n\n\n// User select\n// For selecting text on the page\n\n.user-select(@select) {\n -webkit-user-select: @select;\n -moz-user-select: @select;\n -ms-user-select: @select; // IE10+\n user-select: @select;\n}\n","// Gradients\n\n#gradient {\n\n // Horizontal gradient, from left to right\n //\n // Creates two color stops, start and end, by specifying a color and position for each color stop.\n // Color stops are not available in IE9 and below.\n .horizontal(@start-color: #555; @end-color: #333; @start-percent: 0%; @end-percent: 100%) {\n background-image: -webkit-linear-gradient(left, @start-color @start-percent, @end-color @end-percent); // Safari 5.1-6, Chrome 10+\n background-image: -o-linear-gradient(left, @start-color @start-percent, @end-color @end-percent); // Opera 12\n background-image: linear-gradient(to right, @start-color @start-percent, @end-color @end-percent); // Standard, IE10, Firefox 16+, Opera 12.10+, Safari 7+, Chrome 26+\n background-repeat: repeat-x;\n filter: e(%(\"progid:DXImageTransform.Microsoft.gradient(startColorstr='%d', endColorstr='%d', GradientType=1)\",argb(@start-color),argb(@end-color))); // IE9 and down\n }\n\n // Vertical gradient, from top to bottom\n //\n // Creates two color stops, start and end, by specifying a color and position for each color stop.\n // Color stops are not available in IE9 and below.\n .vertical(@start-color: #555; @end-color: #333; @start-percent: 0%; @end-percent: 100%) {\n background-image: -webkit-linear-gradient(top, @start-color @start-percent, @end-color @end-percent); // Safari 5.1-6, Chrome 10+\n background-image: -o-linear-gradient(top, @start-color @start-percent, @end-color @end-percent); // Opera 12\n background-image: linear-gradient(to bottom, @start-color @start-percent, @end-color @end-percent); // Standard, IE10, Firefox 16+, Opera 12.10+, Safari 7+, Chrome 26+\n background-repeat: repeat-x;\n filter: e(%(\"progid:DXImageTransform.Microsoft.gradient(startColorstr='%d', endColorstr='%d', GradientType=0)\",argb(@start-color),argb(@end-color))); // IE9 and down\n }\n\n .directional(@start-color: #555; @end-color: #333; @deg: 45deg) {\n background-repeat: repeat-x;\n background-image: -webkit-linear-gradient(@deg, @start-color, @end-color); // Safari 5.1-6, Chrome 10+\n background-image: -o-linear-gradient(@deg, @start-color, @end-color); // Opera 12\n background-image: linear-gradient(@deg, @start-color, @end-color); // Standard, IE10, Firefox 16+, Opera 12.10+, Safari 7+, Chrome 26+\n }\n .horizontal-three-colors(@start-color: #00b3ee; @mid-color: #7a43b6; @color-stop: 50%; @end-color: #c3325f) {\n background-image: -webkit-linear-gradient(left, @start-color, @mid-color @color-stop, @end-color);\n background-image: -o-linear-gradient(left, @start-color, @mid-color @color-stop, @end-color);\n background-image: linear-gradient(to right, @start-color, @mid-color @color-stop, @end-color);\n background-repeat: no-repeat;\n filter: e(%(\"progid:DXImageTransform.Microsoft.gradient(startColorstr='%d', endColorstr='%d', GradientType=1)\",argb(@start-color),argb(@end-color))); // IE9 and down, gets no color-stop at all for proper fallback\n }\n .vertical-three-colors(@start-color: #00b3ee; @mid-color: #7a43b6; @color-stop: 50%; @end-color: #c3325f) {\n background-image: -webkit-linear-gradient(@start-color, @mid-color @color-stop, @end-color);\n background-image: -o-linear-gradient(@start-color, @mid-color @color-stop, @end-color);\n background-image: linear-gradient(@start-color, @mid-color @color-stop, @end-color);\n background-repeat: no-repeat;\n filter: e(%(\"progid:DXImageTransform.Microsoft.gradient(startColorstr='%d', endColorstr='%d', GradientType=0)\",argb(@start-color),argb(@end-color))); // IE9 and down, gets no color-stop at all for proper fallback\n }\n .radial(@inner-color: #555; @outer-color: #333) {\n background-image: -webkit-radial-gradient(circle, @inner-color, @outer-color);\n background-image: radial-gradient(circle, @inner-color, @outer-color);\n background-repeat: no-repeat;\n }\n .striped(@color: rgba(255,255,255,.15); @angle: 45deg) {\n background-image: -webkit-linear-gradient(@angle, @color 25%, transparent 25%, transparent 50%, @color 50%, @color 75%, transparent 75%, transparent);\n background-image: -o-linear-gradient(@angle, @color 25%, transparent 25%, transparent 50%, @color 50%, @color 75%, transparent 75%, transparent);\n background-image: linear-gradient(@angle, @color 25%, transparent 25%, transparent 50%, @color 50%, @color 75%, transparent 75%, transparent);\n }\n}\n","// Reset filters for IE\n//\n// When you need to remove a gradient background, do not forget to use this to reset\n// the IE filter for IE9 and below.\n\n.reset-filter() {\n filter: e(%(\"progid:DXImageTransform.Microsoft.gradient(enabled = false)\"));\n}\n"]} \ No newline at end of file diff --git a/admin/bower_components/bootstrap/dist/css/bootstrap-theme.min.css b/admin/bower_components/bootstrap/dist/css/bootstrap-theme.min.css deleted file mode 100644 index 5e39401..0000000 --- a/admin/bower_components/bootstrap/dist/css/bootstrap-theme.min.css +++ /dev/null @@ -1,6 +0,0 @@ -/*! - * Bootstrap v3.3.7 (http://getbootstrap.com) - * Copyright 2011-2016 Twitter, Inc. - * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) - */.btn-danger,.btn-default,.btn-info,.btn-primary,.btn-success,.btn-warning{text-shadow:0 -1px 0 rgba(0,0,0,.2);-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,.15),0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 0 rgba(255,255,255,.15),0 1px 1px rgba(0,0,0,.075)}.btn-danger.active,.btn-danger:active,.btn-default.active,.btn-default:active,.btn-info.active,.btn-info:active,.btn-primary.active,.btn-primary:active,.btn-success.active,.btn-success:active,.btn-warning.active,.btn-warning:active{-webkit-box-shadow:inset 0 3px 5px rgba(0,0,0,.125);box-shadow:inset 0 3px 5px rgba(0,0,0,.125)}.btn-danger.disabled,.btn-danger[disabled],.btn-default.disabled,.btn-default[disabled],.btn-info.disabled,.btn-info[disabled],.btn-primary.disabled,.btn-primary[disabled],.btn-success.disabled,.btn-success[disabled],.btn-warning.disabled,.btn-warning[disabled],fieldset[disabled] .btn-danger,fieldset[disabled] .btn-default,fieldset[disabled] .btn-info,fieldset[disabled] .btn-primary,fieldset[disabled] .btn-success,fieldset[disabled] .btn-warning{-webkit-box-shadow:none;box-shadow:none}.btn-danger .badge,.btn-default .badge,.btn-info .badge,.btn-primary .badge,.btn-success .badge,.btn-warning .badge{text-shadow:none}.btn.active,.btn:active{background-image:none}.btn-default{text-shadow:0 1px 0 #fff;background-image:-webkit-linear-gradient(top,#fff 0,#e0e0e0 100%);background-image:-o-linear-gradient(top,#fff 0,#e0e0e0 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#fff),to(#e0e0e0));background-image:linear-gradient(to bottom,#fff 0,#e0e0e0 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff', endColorstr='#ffe0e0e0', GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);background-repeat:repeat-x;border-color:#dbdbdb;border-color:#ccc}.btn-default:focus,.btn-default:hover{background-color:#e0e0e0;background-position:0 -15px}.btn-default.active,.btn-default:active{background-color:#e0e0e0;border-color:#dbdbdb}.btn-default.disabled,.btn-default.disabled.active,.btn-default.disabled.focus,.btn-default.disabled:active,.btn-default.disabled:focus,.btn-default.disabled:hover,.btn-default[disabled],.btn-default[disabled].active,.btn-default[disabled].focus,.btn-default[disabled]:active,.btn-default[disabled]:focus,.btn-default[disabled]:hover,fieldset[disabled] .btn-default,fieldset[disabled] .btn-default.active,fieldset[disabled] .btn-default.focus,fieldset[disabled] .btn-default:active,fieldset[disabled] .btn-default:focus,fieldset[disabled] .btn-default:hover{background-color:#e0e0e0;background-image:none}.btn-primary{background-image:-webkit-linear-gradient(top,#337ab7 0,#265a88 100%);background-image:-o-linear-gradient(top,#337ab7 0,#265a88 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#337ab7),to(#265a88));background-image:linear-gradient(to bottom,#337ab7 0,#265a88 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff337ab7', endColorstr='#ff265a88', GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);background-repeat:repeat-x;border-color:#245580}.btn-primary:focus,.btn-primary:hover{background-color:#265a88;background-position:0 -15px}.btn-primary.active,.btn-primary:active{background-color:#265a88;border-color:#245580}.btn-primary.disabled,.btn-primary.disabled.active,.btn-primary.disabled.focus,.btn-primary.disabled:active,.btn-primary.disabled:focus,.btn-primary.disabled:hover,.btn-primary[disabled],.btn-primary[disabled].active,.btn-primary[disabled].focus,.btn-primary[disabled]:active,.btn-primary[disabled]:focus,.btn-primary[disabled]:hover,fieldset[disabled] .btn-primary,fieldset[disabled] .btn-primary.active,fieldset[disabled] .btn-primary.focus,fieldset[disabled] .btn-primary:active,fieldset[disabled] .btn-primary:focus,fieldset[disabled] .btn-primary:hover{background-color:#265a88;background-image:none}.btn-success{background-image:-webkit-linear-gradient(top,#5cb85c 0,#419641 100%);background-image:-o-linear-gradient(top,#5cb85c 0,#419641 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#5cb85c),to(#419641));background-image:linear-gradient(to bottom,#5cb85c 0,#419641 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5cb85c', endColorstr='#ff419641', GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);background-repeat:repeat-x;border-color:#3e8f3e}.btn-success:focus,.btn-success:hover{background-color:#419641;background-position:0 -15px}.btn-success.active,.btn-success:active{background-color:#419641;border-color:#3e8f3e}.btn-success.disabled,.btn-success.disabled.active,.btn-success.disabled.focus,.btn-success.disabled:active,.btn-success.disabled:focus,.btn-success.disabled:hover,.btn-success[disabled],.btn-success[disabled].active,.btn-success[disabled].focus,.btn-success[disabled]:active,.btn-success[disabled]:focus,.btn-success[disabled]:hover,fieldset[disabled] .btn-success,fieldset[disabled] .btn-success.active,fieldset[disabled] .btn-success.focus,fieldset[disabled] .btn-success:active,fieldset[disabled] .btn-success:focus,fieldset[disabled] .btn-success:hover{background-color:#419641;background-image:none}.btn-info{background-image:-webkit-linear-gradient(top,#5bc0de 0,#2aabd2 100%);background-image:-o-linear-gradient(top,#5bc0de 0,#2aabd2 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#5bc0de),to(#2aabd2));background-image:linear-gradient(to bottom,#5bc0de 0,#2aabd2 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5bc0de', endColorstr='#ff2aabd2', GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);background-repeat:repeat-x;border-color:#28a4c9}.btn-info:focus,.btn-info:hover{background-color:#2aabd2;background-position:0 -15px}.btn-info.active,.btn-info:active{background-color:#2aabd2;border-color:#28a4c9}.btn-info.disabled,.btn-info.disabled.active,.btn-info.disabled.focus,.btn-info.disabled:active,.btn-info.disabled:focus,.btn-info.disabled:hover,.btn-info[disabled],.btn-info[disabled].active,.btn-info[disabled].focus,.btn-info[disabled]:active,.btn-info[disabled]:focus,.btn-info[disabled]:hover,fieldset[disabled] .btn-info,fieldset[disabled] .btn-info.active,fieldset[disabled] .btn-info.focus,fieldset[disabled] .btn-info:active,fieldset[disabled] .btn-info:focus,fieldset[disabled] .btn-info:hover{background-color:#2aabd2;background-image:none}.btn-warning{background-image:-webkit-linear-gradient(top,#f0ad4e 0,#eb9316 100%);background-image:-o-linear-gradient(top,#f0ad4e 0,#eb9316 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#f0ad4e),to(#eb9316));background-image:linear-gradient(to bottom,#f0ad4e 0,#eb9316 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff0ad4e', endColorstr='#ffeb9316', GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);background-repeat:repeat-x;border-color:#e38d13}.btn-warning:focus,.btn-warning:hover{background-color:#eb9316;background-position:0 -15px}.btn-warning.active,.btn-warning:active{background-color:#eb9316;border-color:#e38d13}.btn-warning.disabled,.btn-warning.disabled.active,.btn-warning.disabled.focus,.btn-warning.disabled:active,.btn-warning.disabled:focus,.btn-warning.disabled:hover,.btn-warning[disabled],.btn-warning[disabled].active,.btn-warning[disabled].focus,.btn-warning[disabled]:active,.btn-warning[disabled]:focus,.btn-warning[disabled]:hover,fieldset[disabled] .btn-warning,fieldset[disabled] .btn-warning.active,fieldset[disabled] .btn-warning.focus,fieldset[disabled] .btn-warning:active,fieldset[disabled] .btn-warning:focus,fieldset[disabled] .btn-warning:hover{background-color:#eb9316;background-image:none}.btn-danger{background-image:-webkit-linear-gradient(top,#d9534f 0,#c12e2a 100%);background-image:-o-linear-gradient(top,#d9534f 0,#c12e2a 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#d9534f),to(#c12e2a));background-image:linear-gradient(to bottom,#d9534f 0,#c12e2a 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9534f', endColorstr='#ffc12e2a', GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);background-repeat:repeat-x;border-color:#b92c28}.btn-danger:focus,.btn-danger:hover{background-color:#c12e2a;background-position:0 -15px}.btn-danger.active,.btn-danger:active{background-color:#c12e2a;border-color:#b92c28}.btn-danger.disabled,.btn-danger.disabled.active,.btn-danger.disabled.focus,.btn-danger.disabled:active,.btn-danger.disabled:focus,.btn-danger.disabled:hover,.btn-danger[disabled],.btn-danger[disabled].active,.btn-danger[disabled].focus,.btn-danger[disabled]:active,.btn-danger[disabled]:focus,.btn-danger[disabled]:hover,fieldset[disabled] .btn-danger,fieldset[disabled] .btn-danger.active,fieldset[disabled] .btn-danger.focus,fieldset[disabled] .btn-danger:active,fieldset[disabled] .btn-danger:focus,fieldset[disabled] .btn-danger:hover{background-color:#c12e2a;background-image:none}.img-thumbnail,.thumbnail{-webkit-box-shadow:0 1px 2px rgba(0,0,0,.075);box-shadow:0 1px 2px rgba(0,0,0,.075)}.dropdown-menu>li>a:focus,.dropdown-menu>li>a:hover{background-color:#e8e8e8;background-image:-webkit-linear-gradient(top,#f5f5f5 0,#e8e8e8 100%);background-image:-o-linear-gradient(top,#f5f5f5 0,#e8e8e8 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#f5f5f5),to(#e8e8e8));background-image:linear-gradient(to bottom,#f5f5f5 0,#e8e8e8 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff5f5f5', endColorstr='#ffe8e8e8', GradientType=0);background-repeat:repeat-x}.dropdown-menu>.active>a,.dropdown-menu>.active>a:focus,.dropdown-menu>.active>a:hover{background-color:#2e6da4;background-image:-webkit-linear-gradient(top,#337ab7 0,#2e6da4 100%);background-image:-o-linear-gradient(top,#337ab7 0,#2e6da4 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#337ab7),to(#2e6da4));background-image:linear-gradient(to bottom,#337ab7 0,#2e6da4 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff337ab7', endColorstr='#ff2e6da4', GradientType=0);background-repeat:repeat-x}.navbar-default{background-image:-webkit-linear-gradient(top,#fff 0,#f8f8f8 100%);background-image:-o-linear-gradient(top,#fff 0,#f8f8f8 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#fff),to(#f8f8f8));background-image:linear-gradient(to bottom,#fff 0,#f8f8f8 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff', endColorstr='#fff8f8f8', GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);background-repeat:repeat-x;border-radius:4px;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,.15),0 1px 5px rgba(0,0,0,.075);box-shadow:inset 0 1px 0 rgba(255,255,255,.15),0 1px 5px rgba(0,0,0,.075)}.navbar-default .navbar-nav>.active>a,.navbar-default .navbar-nav>.open>a{background-image:-webkit-linear-gradient(top,#dbdbdb 0,#e2e2e2 100%);background-image:-o-linear-gradient(top,#dbdbdb 0,#e2e2e2 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#dbdbdb),to(#e2e2e2));background-image:linear-gradient(to bottom,#dbdbdb 0,#e2e2e2 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffdbdbdb', endColorstr='#ffe2e2e2', GradientType=0);background-repeat:repeat-x;-webkit-box-shadow:inset 0 3px 9px rgba(0,0,0,.075);box-shadow:inset 0 3px 9px rgba(0,0,0,.075)}.navbar-brand,.navbar-nav>li>a{text-shadow:0 1px 0 rgba(255,255,255,.25)}.navbar-inverse{background-image:-webkit-linear-gradient(top,#3c3c3c 0,#222 100%);background-image:-o-linear-gradient(top,#3c3c3c 0,#222 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#3c3c3c),to(#222));background-image:linear-gradient(to bottom,#3c3c3c 0,#222 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff3c3c3c', endColorstr='#ff222222', GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);background-repeat:repeat-x;border-radius:4px}.navbar-inverse .navbar-nav>.active>a,.navbar-inverse .navbar-nav>.open>a{background-image:-webkit-linear-gradient(top,#080808 0,#0f0f0f 100%);background-image:-o-linear-gradient(top,#080808 0,#0f0f0f 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#080808),to(#0f0f0f));background-image:linear-gradient(to bottom,#080808 0,#0f0f0f 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff080808', endColorstr='#ff0f0f0f', GradientType=0);background-repeat:repeat-x;-webkit-box-shadow:inset 0 3px 9px rgba(0,0,0,.25);box-shadow:inset 0 3px 9px rgba(0,0,0,.25)}.navbar-inverse .navbar-brand,.navbar-inverse .navbar-nav>li>a{text-shadow:0 -1px 0 rgba(0,0,0,.25)}.navbar-fixed-bottom,.navbar-fixed-top,.navbar-static-top{border-radius:0}@media (max-width:767px){.navbar .navbar-nav .open .dropdown-menu>.active>a,.navbar .navbar-nav .open .dropdown-menu>.active>a:focus,.navbar .navbar-nav .open .dropdown-menu>.active>a:hover{color:#fff;background-image:-webkit-linear-gradient(top,#337ab7 0,#2e6da4 100%);background-image:-o-linear-gradient(top,#337ab7 0,#2e6da4 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#337ab7),to(#2e6da4));background-image:linear-gradient(to bottom,#337ab7 0,#2e6da4 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff337ab7', endColorstr='#ff2e6da4', GradientType=0);background-repeat:repeat-x}}.alert{text-shadow:0 1px 0 rgba(255,255,255,.2);-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,.25),0 1px 2px rgba(0,0,0,.05);box-shadow:inset 0 1px 0 rgba(255,255,255,.25),0 1px 2px rgba(0,0,0,.05)}.alert-success{background-image:-webkit-linear-gradient(top,#dff0d8 0,#c8e5bc 100%);background-image:-o-linear-gradient(top,#dff0d8 0,#c8e5bc 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#dff0d8),to(#c8e5bc));background-image:linear-gradient(to bottom,#dff0d8 0,#c8e5bc 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffdff0d8', endColorstr='#ffc8e5bc', GradientType=0);background-repeat:repeat-x;border-color:#b2dba1}.alert-info{background-image:-webkit-linear-gradient(top,#d9edf7 0,#b9def0 100%);background-image:-o-linear-gradient(top,#d9edf7 0,#b9def0 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#d9edf7),to(#b9def0));background-image:linear-gradient(to bottom,#d9edf7 0,#b9def0 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9edf7', endColorstr='#ffb9def0', GradientType=0);background-repeat:repeat-x;border-color:#9acfea}.alert-warning{background-image:-webkit-linear-gradient(top,#fcf8e3 0,#f8efc0 100%);background-image:-o-linear-gradient(top,#fcf8e3 0,#f8efc0 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#fcf8e3),to(#f8efc0));background-image:linear-gradient(to bottom,#fcf8e3 0,#f8efc0 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fffcf8e3', endColorstr='#fff8efc0', GradientType=0);background-repeat:repeat-x;border-color:#f5e79e}.alert-danger{background-image:-webkit-linear-gradient(top,#f2dede 0,#e7c3c3 100%);background-image:-o-linear-gradient(top,#f2dede 0,#e7c3c3 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#f2dede),to(#e7c3c3));background-image:linear-gradient(to bottom,#f2dede 0,#e7c3c3 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff2dede', endColorstr='#ffe7c3c3', GradientType=0);background-repeat:repeat-x;border-color:#dca7a7}.progress{background-image:-webkit-linear-gradient(top,#ebebeb 0,#f5f5f5 100%);background-image:-o-linear-gradient(top,#ebebeb 0,#f5f5f5 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#ebebeb),to(#f5f5f5));background-image:linear-gradient(to bottom,#ebebeb 0,#f5f5f5 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffebebeb', endColorstr='#fff5f5f5', GradientType=0);background-repeat:repeat-x}.progress-bar{background-image:-webkit-linear-gradient(top,#337ab7 0,#286090 100%);background-image:-o-linear-gradient(top,#337ab7 0,#286090 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#337ab7),to(#286090));background-image:linear-gradient(to bottom,#337ab7 0,#286090 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff337ab7', endColorstr='#ff286090', GradientType=0);background-repeat:repeat-x}.progress-bar-success{background-image:-webkit-linear-gradient(top,#5cb85c 0,#449d44 100%);background-image:-o-linear-gradient(top,#5cb85c 0,#449d44 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#5cb85c),to(#449d44));background-image:linear-gradient(to bottom,#5cb85c 0,#449d44 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5cb85c', endColorstr='#ff449d44', GradientType=0);background-repeat:repeat-x}.progress-bar-info{background-image:-webkit-linear-gradient(top,#5bc0de 0,#31b0d5 100%);background-image:-o-linear-gradient(top,#5bc0de 0,#31b0d5 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#5bc0de),to(#31b0d5));background-image:linear-gradient(to bottom,#5bc0de 0,#31b0d5 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5bc0de', endColorstr='#ff31b0d5', GradientType=0);background-repeat:repeat-x}.progress-bar-warning{background-image:-webkit-linear-gradient(top,#f0ad4e 0,#ec971f 100%);background-image:-o-linear-gradient(top,#f0ad4e 0,#ec971f 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#f0ad4e),to(#ec971f));background-image:linear-gradient(to bottom,#f0ad4e 0,#ec971f 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff0ad4e', endColorstr='#ffec971f', GradientType=0);background-repeat:repeat-x}.progress-bar-danger{background-image:-webkit-linear-gradient(top,#d9534f 0,#c9302c 100%);background-image:-o-linear-gradient(top,#d9534f 0,#c9302c 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#d9534f),to(#c9302c));background-image:linear-gradient(to bottom,#d9534f 0,#c9302c 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9534f', endColorstr='#ffc9302c', GradientType=0);background-repeat:repeat-x}.progress-bar-striped{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent)}.list-group{border-radius:4px;-webkit-box-shadow:0 1px 2px rgba(0,0,0,.075);box-shadow:0 1px 2px rgba(0,0,0,.075)}.list-group-item.active,.list-group-item.active:focus,.list-group-item.active:hover{text-shadow:0 -1px 0 #286090;background-image:-webkit-linear-gradient(top,#337ab7 0,#2b669a 100%);background-image:-o-linear-gradient(top,#337ab7 0,#2b669a 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#337ab7),to(#2b669a));background-image:linear-gradient(to bottom,#337ab7 0,#2b669a 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff337ab7', endColorstr='#ff2b669a', GradientType=0);background-repeat:repeat-x;border-color:#2b669a}.list-group-item.active .badge,.list-group-item.active:focus .badge,.list-group-item.active:hover .badge{text-shadow:none}.panel{-webkit-box-shadow:0 1px 2px rgba(0,0,0,.05);box-shadow:0 1px 2px rgba(0,0,0,.05)}.panel-default>.panel-heading{background-image:-webkit-linear-gradient(top,#f5f5f5 0,#e8e8e8 100%);background-image:-o-linear-gradient(top,#f5f5f5 0,#e8e8e8 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#f5f5f5),to(#e8e8e8));background-image:linear-gradient(to bottom,#f5f5f5 0,#e8e8e8 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff5f5f5', endColorstr='#ffe8e8e8', GradientType=0);background-repeat:repeat-x}.panel-primary>.panel-heading{background-image:-webkit-linear-gradient(top,#337ab7 0,#2e6da4 100%);background-image:-o-linear-gradient(top,#337ab7 0,#2e6da4 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#337ab7),to(#2e6da4));background-image:linear-gradient(to bottom,#337ab7 0,#2e6da4 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff337ab7', endColorstr='#ff2e6da4', GradientType=0);background-repeat:repeat-x}.panel-success>.panel-heading{background-image:-webkit-linear-gradient(top,#dff0d8 0,#d0e9c6 100%);background-image:-o-linear-gradient(top,#dff0d8 0,#d0e9c6 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#dff0d8),to(#d0e9c6));background-image:linear-gradient(to bottom,#dff0d8 0,#d0e9c6 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffdff0d8', endColorstr='#ffd0e9c6', GradientType=0);background-repeat:repeat-x}.panel-info>.panel-heading{background-image:-webkit-linear-gradient(top,#d9edf7 0,#c4e3f3 100%);background-image:-o-linear-gradient(top,#d9edf7 0,#c4e3f3 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#d9edf7),to(#c4e3f3));background-image:linear-gradient(to bottom,#d9edf7 0,#c4e3f3 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9edf7', endColorstr='#ffc4e3f3', GradientType=0);background-repeat:repeat-x}.panel-warning>.panel-heading{background-image:-webkit-linear-gradient(top,#fcf8e3 0,#faf2cc 100%);background-image:-o-linear-gradient(top,#fcf8e3 0,#faf2cc 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#fcf8e3),to(#faf2cc));background-image:linear-gradient(to bottom,#fcf8e3 0,#faf2cc 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fffcf8e3', endColorstr='#fffaf2cc', GradientType=0);background-repeat:repeat-x}.panel-danger>.panel-heading{background-image:-webkit-linear-gradient(top,#f2dede 0,#ebcccc 100%);background-image:-o-linear-gradient(top,#f2dede 0,#ebcccc 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#f2dede),to(#ebcccc));background-image:linear-gradient(to bottom,#f2dede 0,#ebcccc 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff2dede', endColorstr='#ffebcccc', GradientType=0);background-repeat:repeat-x}.well{background-image:-webkit-linear-gradient(top,#e8e8e8 0,#f5f5f5 100%);background-image:-o-linear-gradient(top,#e8e8e8 0,#f5f5f5 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#e8e8e8),to(#f5f5f5));background-image:linear-gradient(to bottom,#e8e8e8 0,#f5f5f5 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffe8e8e8', endColorstr='#fff5f5f5', GradientType=0);background-repeat:repeat-x;border-color:#dcdcdc;-webkit-box-shadow:inset 0 1px 3px rgba(0,0,0,.05),0 1px 0 rgba(255,255,255,.1);box-shadow:inset 0 1px 3px rgba(0,0,0,.05),0 1px 0 rgba(255,255,255,.1)} -/*# sourceMappingURL=bootstrap-theme.min.css.map */ \ No newline at end of file diff --git a/admin/bower_components/bootstrap/dist/css/bootstrap-theme.min.css.map b/admin/bower_components/bootstrap/dist/css/bootstrap-theme.min.css.map deleted file mode 100644 index 94813e9..0000000 --- a/admin/bower_components/bootstrap/dist/css/bootstrap-theme.min.css.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sources":["less/theme.less","less/mixins/vendor-prefixes.less","less/mixins/gradients.less","less/mixins/reset-filter.less"],"names":[],"mappings":";;;;AAmBA,YAAA,aAAA,UAAA,aAAA,aAAA,aAME,YAAA,EAAA,KAAA,EAAA,eC2CA,mBAAA,MAAA,EAAA,IAAA,EAAA,sBAAA,EAAA,IAAA,IAAA,iBACQ,WAAA,MAAA,EAAA,IAAA,EAAA,sBAAA,EAAA,IAAA,IAAA,iBDvCR,mBAAA,mBAAA,oBAAA,oBAAA,iBAAA,iBAAA,oBAAA,oBAAA,oBAAA,oBAAA,oBAAA,oBCsCA,mBAAA,MAAA,EAAA,IAAA,IAAA,iBACQ,WAAA,MAAA,EAAA,IAAA,IAAA,iBDlCR,qBAAA,sBAAA,sBAAA,uBAAA,mBAAA,oBAAA,sBAAA,uBAAA,sBAAA,uBAAA,sBAAA,uBAAA,+BAAA,gCAAA,6BAAA,gCAAA,gCAAA,gCCiCA,mBAAA,KACQ,WAAA,KDlDV,mBAAA,oBAAA,iBAAA,oBAAA,oBAAA,oBAuBI,YAAA,KAyCF,YAAA,YAEE,iBAAA,KAKJ,aErEI,YAAA,EAAA,IAAA,EAAA,KACA,iBAAA,iDACA,iBAAA,4CAAA,iBAAA,qEAEA,iBAAA,+CCnBF,OAAA,+GH4CA,OAAA,0DACA,kBAAA,SAuC2C,aAAA,QAA2B,aAAA,KArCtE,mBAAA,mBAEE,iBAAA,QACA,oBAAA,EAAA,MAGF,oBAAA,oBAEE,iBAAA,QACA,aAAA,QAMA,sBAAA,6BAAA,4BAAA,6BAAA,4BAAA,4BAAA,uBAAA,8BAAA,6BAAA,8BAAA,6BAAA,6BAAA,gCAAA,uCAAA,sCAAA,uCAAA,sCAAA,sCAME,iBAAA,QACA,iBAAA,KAgBN,aEtEI,iBAAA,oDACA,iBAAA,+CACA,iBAAA,wEAAA,iBAAA,kDAEA,OAAA,+GCnBF,OAAA,0DH4CA,kBAAA,SACA,aAAA,QAEA,mBAAA,mBAEE,iBAAA,QACA,oBAAA,EAAA,MAGF,oBAAA,oBAEE,iBAAA,QACA,aAAA,QAMA,sBAAA,6BAAA,4BAAA,6BAAA,4BAAA,4BAAA,uBAAA,8BAAA,6BAAA,8BAAA,6BAAA,6BAAA,gCAAA,uCAAA,sCAAA,uCAAA,sCAAA,sCAME,iBAAA,QACA,iBAAA,KAiBN,aEvEI,iBAAA,oDACA,iBAAA,+CACA,iBAAA,wEAAA,iBAAA,kDAEA,OAAA,+GCnBF,OAAA,0DH4CA,kBAAA,SACA,aAAA,QAEA,mBAAA,mBAEE,iBAAA,QACA,oBAAA,EAAA,MAGF,oBAAA,oBAEE,iBAAA,QACA,aAAA,QAMA,sBAAA,6BAAA,4BAAA,6BAAA,4BAAA,4BAAA,uBAAA,8BAAA,6BAAA,8BAAA,6BAAA,6BAAA,gCAAA,uCAAA,sCAAA,uCAAA,sCAAA,sCAME,iBAAA,QACA,iBAAA,KAkBN,UExEI,iBAAA,oDACA,iBAAA,+CACA,iBAAA,wEAAA,iBAAA,kDAEA,OAAA,+GCnBF,OAAA,0DH4CA,kBAAA,SACA,aAAA,QAEA,gBAAA,gBAEE,iBAAA,QACA,oBAAA,EAAA,MAGF,iBAAA,iBAEE,iBAAA,QACA,aAAA,QAMA,mBAAA,0BAAA,yBAAA,0BAAA,yBAAA,yBAAA,oBAAA,2BAAA,0BAAA,2BAAA,0BAAA,0BAAA,6BAAA,oCAAA,mCAAA,oCAAA,mCAAA,mCAME,iBAAA,QACA,iBAAA,KAmBN,aEzEI,iBAAA,oDACA,iBAAA,+CACA,iBAAA,wEAAA,iBAAA,kDAEA,OAAA,+GCnBF,OAAA,0DH4CA,kBAAA,SACA,aAAA,QAEA,mBAAA,mBAEE,iBAAA,QACA,oBAAA,EAAA,MAGF,oBAAA,oBAEE,iBAAA,QACA,aAAA,QAMA,sBAAA,6BAAA,4BAAA,6BAAA,4BAAA,4BAAA,uBAAA,8BAAA,6BAAA,8BAAA,6BAAA,6BAAA,gCAAA,uCAAA,sCAAA,uCAAA,sCAAA,sCAME,iBAAA,QACA,iBAAA,KAoBN,YE1EI,iBAAA,oDACA,iBAAA,+CACA,iBAAA,wEAAA,iBAAA,kDAEA,OAAA,+GCnBF,OAAA,0DH4CA,kBAAA,SACA,aAAA,QAEA,kBAAA,kBAEE,iBAAA,QACA,oBAAA,EAAA,MAGF,mBAAA,mBAEE,iBAAA,QACA,aAAA,QAMA,qBAAA,4BAAA,2BAAA,4BAAA,2BAAA,2BAAA,sBAAA,6BAAA,4BAAA,6BAAA,4BAAA,4BAAA,+BAAA,sCAAA,qCAAA,sCAAA,qCAAA,qCAME,iBAAA,QACA,iBAAA,KA2BN,eAAA,WClCE,mBAAA,EAAA,IAAA,IAAA,iBACQ,WAAA,EAAA,IAAA,IAAA,iBD2CV,0BAAA,0BE3FI,iBAAA,QACA,iBAAA,oDACA,iBAAA,+CAAA,iBAAA,wEACA,iBAAA,kDACA,OAAA,+GF0FF,kBAAA,SAEF,yBAAA,+BAAA,+BEhGI,iBAAA,QACA,iBAAA,oDACA,iBAAA,+CAAA,iBAAA,wEACA,iBAAA,kDACA,OAAA,+GFgGF,kBAAA,SASF,gBE7GI,iBAAA,iDACA,iBAAA,4CACA,iBAAA,qEAAA,iBAAA,+CACA,OAAA,+GACA,OAAA,0DCnBF,kBAAA,SH+HA,cAAA,ICjEA,mBAAA,MAAA,EAAA,IAAA,EAAA,sBAAA,EAAA,IAAA,IAAA,iBACQ,WAAA,MAAA,EAAA,IAAA,EAAA,sBAAA,EAAA,IAAA,IAAA,iBD6DV,sCAAA,oCE7GI,iBAAA,oDACA,iBAAA,+CACA,iBAAA,wEAAA,iBAAA,kDACA,OAAA,+GACA,kBAAA,SD2CF,mBAAA,MAAA,EAAA,IAAA,IAAA,iBACQ,WAAA,MAAA,EAAA,IAAA,IAAA,iBD0EV,cAAA,iBAEE,YAAA,EAAA,IAAA,EAAA,sBAIF,gBEhII,iBAAA,iDACA,iBAAA,4CACA,iBAAA,qEAAA,iBAAA,+CACA,OAAA,+GACA,OAAA,0DCnBF,kBAAA,SHkJA,cAAA,IAHF,sCAAA,oCEhII,iBAAA,oDACA,iBAAA,+CACA,iBAAA,wEAAA,iBAAA,kDACA,OAAA,+GACA,kBAAA,SD2CF,mBAAA,MAAA,EAAA,IAAA,IAAA,gBACQ,WAAA,MAAA,EAAA,IAAA,IAAA,gBDgFV,8BAAA,iCAYI,YAAA,EAAA,KAAA,EAAA,gBAKJ,qBAAA,kBAAA,mBAGE,cAAA,EAqBF,yBAfI,mDAAA,yDAAA,yDAGE,MAAA,KE7JF,iBAAA,oDACA,iBAAA,+CACA,iBAAA,wEAAA,iBAAA,kDACA,OAAA,+GACA,kBAAA,UFqKJ,OACE,YAAA,EAAA,IAAA,EAAA,qBC3HA,mBAAA,MAAA,EAAA,IAAA,EAAA,sBAAA,EAAA,IAAA,IAAA,gBACQ,WAAA,MAAA,EAAA,IAAA,EAAA,sBAAA,EAAA,IAAA,IAAA,gBDsIV,eEtLI,iBAAA,oDACA,iBAAA,+CACA,iBAAA,wEAAA,iBAAA,kDACA,OAAA,+GACA,kBAAA,SF8KF,aAAA,QAKF,YEvLI,iBAAA,oDACA,iBAAA,+CACA,iBAAA,wEAAA,iBAAA,kDACA,OAAA,+GACA,kBAAA,SF8KF,aAAA,QAMF,eExLI,iBAAA,oDACA,iBAAA,+CACA,iBAAA,wEAAA,iBAAA,kDACA,OAAA,+GACA,kBAAA,SF8KF,aAAA,QAOF,cEzLI,iBAAA,oDACA,iBAAA,+CACA,iBAAA,wEAAA,iBAAA,kDACA,OAAA,+GACA,kBAAA,SF8KF,aAAA,QAeF,UEjMI,iBAAA,oDACA,iBAAA,+CACA,iBAAA,wEAAA,iBAAA,kDACA,OAAA,+GACA,kBAAA,SFuMJ,cE3MI,iBAAA,oDACA,iBAAA,+CACA,iBAAA,wEAAA,iBAAA,kDACA,OAAA,+GACA,kBAAA,SFwMJ,sBE5MI,iBAAA,oDACA,iBAAA,+CACA,iBAAA,wEAAA,iBAAA,kDACA,OAAA,+GACA,kBAAA,SFyMJ,mBE7MI,iBAAA,oDACA,iBAAA,+CACA,iBAAA,wEAAA,iBAAA,kDACA,OAAA,+GACA,kBAAA,SF0MJ,sBE9MI,iBAAA,oDACA,iBAAA,+CACA,iBAAA,wEAAA,iBAAA,kDACA,OAAA,+GACA,kBAAA,SF2MJ,qBE/MI,iBAAA,oDACA,iBAAA,+CACA,iBAAA,wEAAA,iBAAA,kDACA,OAAA,+GACA,kBAAA,SF+MJ,sBElLI,iBAAA,yKACA,iBAAA,oKACA,iBAAA,iKFyLJ,YACE,cAAA,IC9KA,mBAAA,EAAA,IAAA,IAAA,iBACQ,WAAA,EAAA,IAAA,IAAA,iBDgLV,wBAAA,8BAAA,8BAGE,YAAA,EAAA,KAAA,EAAA,QEnOE,iBAAA,oDACA,iBAAA,+CACA,iBAAA,wEAAA,iBAAA,kDACA,OAAA,+GACA,kBAAA,SFiOF,aAAA,QALF,+BAAA,qCAAA,qCAQI,YAAA,KAUJ,OCnME,mBAAA,EAAA,IAAA,IAAA,gBACQ,WAAA,EAAA,IAAA,IAAA,gBD4MV,8BE5PI,iBAAA,oDACA,iBAAA,+CACA,iBAAA,wEAAA,iBAAA,kDACA,OAAA,+GACA,kBAAA,SFyPJ,8BE7PI,iBAAA,oDACA,iBAAA,+CACA,iBAAA,wEAAA,iBAAA,kDACA,OAAA,+GACA,kBAAA,SF0PJ,8BE9PI,iBAAA,oDACA,iBAAA,+CACA,iBAAA,wEAAA,iBAAA,kDACA,OAAA,+GACA,kBAAA,SF2PJ,2BE/PI,iBAAA,oDACA,iBAAA,+CACA,iBAAA,wEAAA,iBAAA,kDACA,OAAA,+GACA,kBAAA,SF4PJ,8BEhQI,iBAAA,oDACA,iBAAA,+CACA,iBAAA,wEAAA,iBAAA,kDACA,OAAA,+GACA,kBAAA,SF6PJ,6BEjQI,iBAAA,oDACA,iBAAA,+CACA,iBAAA,wEAAA,iBAAA,kDACA,OAAA,+GACA,kBAAA,SFoQJ,MExQI,iBAAA,oDACA,iBAAA,+CACA,iBAAA,wEAAA,iBAAA,kDACA,OAAA,+GACA,kBAAA,SFsQF,aAAA,QC3NA,mBAAA,MAAA,EAAA,IAAA,IAAA,gBAAA,EAAA,IAAA,EAAA,qBACQ,WAAA,MAAA,EAAA,IAAA,IAAA,gBAAA,EAAA,IAAA,EAAA","sourcesContent":["/*!\n * Bootstrap v3.3.7 (http://getbootstrap.com)\n * Copyright 2011-2016 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n */\n\n//\n// Load core variables and mixins\n// --------------------------------------------------\n\n@import \"variables.less\";\n@import \"mixins.less\";\n\n\n//\n// Buttons\n// --------------------------------------------------\n\n// Common styles\n.btn-default,\n.btn-primary,\n.btn-success,\n.btn-info,\n.btn-warning,\n.btn-danger {\n text-shadow: 0 -1px 0 rgba(0,0,0,.2);\n @shadow: inset 0 1px 0 rgba(255,255,255,.15), 0 1px 1px rgba(0,0,0,.075);\n .box-shadow(@shadow);\n\n // Reset the shadow\n &:active,\n &.active {\n .box-shadow(inset 0 3px 5px rgba(0,0,0,.125));\n }\n\n &.disabled,\n &[disabled],\n fieldset[disabled] & {\n .box-shadow(none);\n }\n\n .badge {\n text-shadow: none;\n }\n}\n\n// Mixin for generating new styles\n.btn-styles(@btn-color: #555) {\n #gradient > .vertical(@start-color: @btn-color; @end-color: darken(@btn-color, 12%));\n .reset-filter(); // Disable gradients for IE9 because filter bleeds through rounded corners; see https://github.com/twbs/bootstrap/issues/10620\n background-repeat: repeat-x;\n border-color: darken(@btn-color, 14%);\n\n &:hover,\n &:focus {\n background-color: darken(@btn-color, 12%);\n background-position: 0 -15px;\n }\n\n &:active,\n &.active {\n background-color: darken(@btn-color, 12%);\n border-color: darken(@btn-color, 14%);\n }\n\n &.disabled,\n &[disabled],\n fieldset[disabled] & {\n &,\n &:hover,\n &:focus,\n &.focus,\n &:active,\n &.active {\n background-color: darken(@btn-color, 12%);\n background-image: none;\n }\n }\n}\n\n// Common styles\n.btn {\n // Remove the gradient for the pressed/active state\n &:active,\n &.active {\n background-image: none;\n }\n}\n\n// Apply the mixin to the buttons\n.btn-default { .btn-styles(@btn-default-bg); text-shadow: 0 1px 0 #fff; border-color: #ccc; }\n.btn-primary { .btn-styles(@btn-primary-bg); }\n.btn-success { .btn-styles(@btn-success-bg); }\n.btn-info { .btn-styles(@btn-info-bg); }\n.btn-warning { .btn-styles(@btn-warning-bg); }\n.btn-danger { .btn-styles(@btn-danger-bg); }\n\n\n//\n// Images\n// --------------------------------------------------\n\n.thumbnail,\n.img-thumbnail {\n .box-shadow(0 1px 2px rgba(0,0,0,.075));\n}\n\n\n//\n// Dropdowns\n// --------------------------------------------------\n\n.dropdown-menu > li > a:hover,\n.dropdown-menu > li > a:focus {\n #gradient > .vertical(@start-color: @dropdown-link-hover-bg; @end-color: darken(@dropdown-link-hover-bg, 5%));\n background-color: darken(@dropdown-link-hover-bg, 5%);\n}\n.dropdown-menu > .active > a,\n.dropdown-menu > .active > a:hover,\n.dropdown-menu > .active > a:focus {\n #gradient > .vertical(@start-color: @dropdown-link-active-bg; @end-color: darken(@dropdown-link-active-bg, 5%));\n background-color: darken(@dropdown-link-active-bg, 5%);\n}\n\n\n//\n// Navbar\n// --------------------------------------------------\n\n// Default navbar\n.navbar-default {\n #gradient > .vertical(@start-color: lighten(@navbar-default-bg, 10%); @end-color: @navbar-default-bg);\n .reset-filter(); // Remove gradient in IE<10 to fix bug where dropdowns don't get triggered\n border-radius: @navbar-border-radius;\n @shadow: inset 0 1px 0 rgba(255,255,255,.15), 0 1px 5px rgba(0,0,0,.075);\n .box-shadow(@shadow);\n\n .navbar-nav > .open > a,\n .navbar-nav > .active > a {\n #gradient > .vertical(@start-color: darken(@navbar-default-link-active-bg, 5%); @end-color: darken(@navbar-default-link-active-bg, 2%));\n .box-shadow(inset 0 3px 9px rgba(0,0,0,.075));\n }\n}\n.navbar-brand,\n.navbar-nav > li > a {\n text-shadow: 0 1px 0 rgba(255,255,255,.25);\n}\n\n// Inverted navbar\n.navbar-inverse {\n #gradient > .vertical(@start-color: lighten(@navbar-inverse-bg, 10%); @end-color: @navbar-inverse-bg);\n .reset-filter(); // Remove gradient in IE<10 to fix bug where dropdowns don't get triggered; see https://github.com/twbs/bootstrap/issues/10257\n border-radius: @navbar-border-radius;\n .navbar-nav > .open > a,\n .navbar-nav > .active > a {\n #gradient > .vertical(@start-color: @navbar-inverse-link-active-bg; @end-color: lighten(@navbar-inverse-link-active-bg, 2.5%));\n .box-shadow(inset 0 3px 9px rgba(0,0,0,.25));\n }\n\n .navbar-brand,\n .navbar-nav > li > a {\n text-shadow: 0 -1px 0 rgba(0,0,0,.25);\n }\n}\n\n// Undo rounded corners in static and fixed navbars\n.navbar-static-top,\n.navbar-fixed-top,\n.navbar-fixed-bottom {\n border-radius: 0;\n}\n\n// Fix active state of dropdown items in collapsed mode\n@media (max-width: @grid-float-breakpoint-max) {\n .navbar .navbar-nav .open .dropdown-menu > .active > a {\n &,\n &:hover,\n &:focus {\n color: #fff;\n #gradient > .vertical(@start-color: @dropdown-link-active-bg; @end-color: darken(@dropdown-link-active-bg, 5%));\n }\n }\n}\n\n\n//\n// Alerts\n// --------------------------------------------------\n\n// Common styles\n.alert {\n text-shadow: 0 1px 0 rgba(255,255,255,.2);\n @shadow: inset 0 1px 0 rgba(255,255,255,.25), 0 1px 2px rgba(0,0,0,.05);\n .box-shadow(@shadow);\n}\n\n// Mixin for generating new styles\n.alert-styles(@color) {\n #gradient > .vertical(@start-color: @color; @end-color: darken(@color, 7.5%));\n border-color: darken(@color, 15%);\n}\n\n// Apply the mixin to the alerts\n.alert-success { .alert-styles(@alert-success-bg); }\n.alert-info { .alert-styles(@alert-info-bg); }\n.alert-warning { .alert-styles(@alert-warning-bg); }\n.alert-danger { .alert-styles(@alert-danger-bg); }\n\n\n//\n// Progress bars\n// --------------------------------------------------\n\n// Give the progress background some depth\n.progress {\n #gradient > .vertical(@start-color: darken(@progress-bg, 4%); @end-color: @progress-bg)\n}\n\n// Mixin for generating new styles\n.progress-bar-styles(@color) {\n #gradient > .vertical(@start-color: @color; @end-color: darken(@color, 10%));\n}\n\n// Apply the mixin to the progress bars\n.progress-bar { .progress-bar-styles(@progress-bar-bg); }\n.progress-bar-success { .progress-bar-styles(@progress-bar-success-bg); }\n.progress-bar-info { .progress-bar-styles(@progress-bar-info-bg); }\n.progress-bar-warning { .progress-bar-styles(@progress-bar-warning-bg); }\n.progress-bar-danger { .progress-bar-styles(@progress-bar-danger-bg); }\n\n// Reset the striped class because our mixins don't do multiple gradients and\n// the above custom styles override the new `.progress-bar-striped` in v3.2.0.\n.progress-bar-striped {\n #gradient > .striped();\n}\n\n\n//\n// List groups\n// --------------------------------------------------\n\n.list-group {\n border-radius: @border-radius-base;\n .box-shadow(0 1px 2px rgba(0,0,0,.075));\n}\n.list-group-item.active,\n.list-group-item.active:hover,\n.list-group-item.active:focus {\n text-shadow: 0 -1px 0 darken(@list-group-active-bg, 10%);\n #gradient > .vertical(@start-color: @list-group-active-bg; @end-color: darken(@list-group-active-bg, 7.5%));\n border-color: darken(@list-group-active-border, 7.5%);\n\n .badge {\n text-shadow: none;\n }\n}\n\n\n//\n// Panels\n// --------------------------------------------------\n\n// Common styles\n.panel {\n .box-shadow(0 1px 2px rgba(0,0,0,.05));\n}\n\n// Mixin for generating new styles\n.panel-heading-styles(@color) {\n #gradient > .vertical(@start-color: @color; @end-color: darken(@color, 5%));\n}\n\n// Apply the mixin to the panel headings only\n.panel-default > .panel-heading { .panel-heading-styles(@panel-default-heading-bg); }\n.panel-primary > .panel-heading { .panel-heading-styles(@panel-primary-heading-bg); }\n.panel-success > .panel-heading { .panel-heading-styles(@panel-success-heading-bg); }\n.panel-info > .panel-heading { .panel-heading-styles(@panel-info-heading-bg); }\n.panel-warning > .panel-heading { .panel-heading-styles(@panel-warning-heading-bg); }\n.panel-danger > .panel-heading { .panel-heading-styles(@panel-danger-heading-bg); }\n\n\n//\n// Wells\n// --------------------------------------------------\n\n.well {\n #gradient > .vertical(@start-color: darken(@well-bg, 5%); @end-color: @well-bg);\n border-color: darken(@well-bg, 10%);\n @shadow: inset 0 1px 3px rgba(0,0,0,.05), 0 1px 0 rgba(255,255,255,.1);\n .box-shadow(@shadow);\n}\n","// Vendor Prefixes\n//\n// All vendor mixins are deprecated as of v3.2.0 due to the introduction of\n// Autoprefixer in our Gruntfile. They have been removed in v4.\n\n// - Animations\n// - Backface visibility\n// - Box shadow\n// - Box sizing\n// - Content columns\n// - Hyphens\n// - Placeholder text\n// - Transformations\n// - Transitions\n// - User Select\n\n\n// Animations\n.animation(@animation) {\n -webkit-animation: @animation;\n -o-animation: @animation;\n animation: @animation;\n}\n.animation-name(@name) {\n -webkit-animation-name: @name;\n animation-name: @name;\n}\n.animation-duration(@duration) {\n -webkit-animation-duration: @duration;\n animation-duration: @duration;\n}\n.animation-timing-function(@timing-function) {\n -webkit-animation-timing-function: @timing-function;\n animation-timing-function: @timing-function;\n}\n.animation-delay(@delay) {\n -webkit-animation-delay: @delay;\n animation-delay: @delay;\n}\n.animation-iteration-count(@iteration-count) {\n -webkit-animation-iteration-count: @iteration-count;\n animation-iteration-count: @iteration-count;\n}\n.animation-direction(@direction) {\n -webkit-animation-direction: @direction;\n animation-direction: @direction;\n}\n.animation-fill-mode(@fill-mode) {\n -webkit-animation-fill-mode: @fill-mode;\n animation-fill-mode: @fill-mode;\n}\n\n// Backface visibility\n// Prevent browsers from flickering when using CSS 3D transforms.\n// Default value is `visible`, but can be changed to `hidden`\n\n.backface-visibility(@visibility) {\n -webkit-backface-visibility: @visibility;\n -moz-backface-visibility: @visibility;\n backface-visibility: @visibility;\n}\n\n// Drop shadows\n//\n// Note: Deprecated `.box-shadow()` as of v3.1.0 since all of Bootstrap's\n// supported browsers that have box shadow capabilities now support it.\n\n.box-shadow(@shadow) {\n -webkit-box-shadow: @shadow; // iOS <4.3 & Android <4.1\n box-shadow: @shadow;\n}\n\n// Box sizing\n.box-sizing(@boxmodel) {\n -webkit-box-sizing: @boxmodel;\n -moz-box-sizing: @boxmodel;\n box-sizing: @boxmodel;\n}\n\n// CSS3 Content Columns\n.content-columns(@column-count; @column-gap: @grid-gutter-width) {\n -webkit-column-count: @column-count;\n -moz-column-count: @column-count;\n column-count: @column-count;\n -webkit-column-gap: @column-gap;\n -moz-column-gap: @column-gap;\n column-gap: @column-gap;\n}\n\n// Optional hyphenation\n.hyphens(@mode: auto) {\n word-wrap: break-word;\n -webkit-hyphens: @mode;\n -moz-hyphens: @mode;\n -ms-hyphens: @mode; // IE10+\n -o-hyphens: @mode;\n hyphens: @mode;\n}\n\n// Placeholder text\n.placeholder(@color: @input-color-placeholder) {\n // Firefox\n &::-moz-placeholder {\n color: @color;\n opacity: 1; // Override Firefox's unusual default opacity; see https://github.com/twbs/bootstrap/pull/11526\n }\n &:-ms-input-placeholder { color: @color; } // Internet Explorer 10+\n &::-webkit-input-placeholder { color: @color; } // Safari and Chrome\n}\n\n// Transformations\n.scale(@ratio) {\n -webkit-transform: scale(@ratio);\n -ms-transform: scale(@ratio); // IE9 only\n -o-transform: scale(@ratio);\n transform: scale(@ratio);\n}\n.scale(@ratioX; @ratioY) {\n -webkit-transform: scale(@ratioX, @ratioY);\n -ms-transform: scale(@ratioX, @ratioY); // IE9 only\n -o-transform: scale(@ratioX, @ratioY);\n transform: scale(@ratioX, @ratioY);\n}\n.scaleX(@ratio) {\n -webkit-transform: scaleX(@ratio);\n -ms-transform: scaleX(@ratio); // IE9 only\n -o-transform: scaleX(@ratio);\n transform: scaleX(@ratio);\n}\n.scaleY(@ratio) {\n -webkit-transform: scaleY(@ratio);\n -ms-transform: scaleY(@ratio); // IE9 only\n -o-transform: scaleY(@ratio);\n transform: scaleY(@ratio);\n}\n.skew(@x; @y) {\n -webkit-transform: skewX(@x) skewY(@y);\n -ms-transform: skewX(@x) skewY(@y); // See https://github.com/twbs/bootstrap/issues/4885; IE9+\n -o-transform: skewX(@x) skewY(@y);\n transform: skewX(@x) skewY(@y);\n}\n.translate(@x; @y) {\n -webkit-transform: translate(@x, @y);\n -ms-transform: translate(@x, @y); // IE9 only\n -o-transform: translate(@x, @y);\n transform: translate(@x, @y);\n}\n.translate3d(@x; @y; @z) {\n -webkit-transform: translate3d(@x, @y, @z);\n transform: translate3d(@x, @y, @z);\n}\n.rotate(@degrees) {\n -webkit-transform: rotate(@degrees);\n -ms-transform: rotate(@degrees); // IE9 only\n -o-transform: rotate(@degrees);\n transform: rotate(@degrees);\n}\n.rotateX(@degrees) {\n -webkit-transform: rotateX(@degrees);\n -ms-transform: rotateX(@degrees); // IE9 only\n -o-transform: rotateX(@degrees);\n transform: rotateX(@degrees);\n}\n.rotateY(@degrees) {\n -webkit-transform: rotateY(@degrees);\n -ms-transform: rotateY(@degrees); // IE9 only\n -o-transform: rotateY(@degrees);\n transform: rotateY(@degrees);\n}\n.perspective(@perspective) {\n -webkit-perspective: @perspective;\n -moz-perspective: @perspective;\n perspective: @perspective;\n}\n.perspective-origin(@perspective) {\n -webkit-perspective-origin: @perspective;\n -moz-perspective-origin: @perspective;\n perspective-origin: @perspective;\n}\n.transform-origin(@origin) {\n -webkit-transform-origin: @origin;\n -moz-transform-origin: @origin;\n -ms-transform-origin: @origin; // IE9 only\n transform-origin: @origin;\n}\n\n\n// Transitions\n\n.transition(@transition) {\n -webkit-transition: @transition;\n -o-transition: @transition;\n transition: @transition;\n}\n.transition-property(@transition-property) {\n -webkit-transition-property: @transition-property;\n transition-property: @transition-property;\n}\n.transition-delay(@transition-delay) {\n -webkit-transition-delay: @transition-delay;\n transition-delay: @transition-delay;\n}\n.transition-duration(@transition-duration) {\n -webkit-transition-duration: @transition-duration;\n transition-duration: @transition-duration;\n}\n.transition-timing-function(@timing-function) {\n -webkit-transition-timing-function: @timing-function;\n transition-timing-function: @timing-function;\n}\n.transition-transform(@transition) {\n -webkit-transition: -webkit-transform @transition;\n -moz-transition: -moz-transform @transition;\n -o-transition: -o-transform @transition;\n transition: transform @transition;\n}\n\n\n// User select\n// For selecting text on the page\n\n.user-select(@select) {\n -webkit-user-select: @select;\n -moz-user-select: @select;\n -ms-user-select: @select; // IE10+\n user-select: @select;\n}\n","// Gradients\n\n#gradient {\n\n // Horizontal gradient, from left to right\n //\n // Creates two color stops, start and end, by specifying a color and position for each color stop.\n // Color stops are not available in IE9 and below.\n .horizontal(@start-color: #555; @end-color: #333; @start-percent: 0%; @end-percent: 100%) {\n background-image: -webkit-linear-gradient(left, @start-color @start-percent, @end-color @end-percent); // Safari 5.1-6, Chrome 10+\n background-image: -o-linear-gradient(left, @start-color @start-percent, @end-color @end-percent); // Opera 12\n background-image: linear-gradient(to right, @start-color @start-percent, @end-color @end-percent); // Standard, IE10, Firefox 16+, Opera 12.10+, Safari 7+, Chrome 26+\n background-repeat: repeat-x;\n filter: e(%(\"progid:DXImageTransform.Microsoft.gradient(startColorstr='%d', endColorstr='%d', GradientType=1)\",argb(@start-color),argb(@end-color))); // IE9 and down\n }\n\n // Vertical gradient, from top to bottom\n //\n // Creates two color stops, start and end, by specifying a color and position for each color stop.\n // Color stops are not available in IE9 and below.\n .vertical(@start-color: #555; @end-color: #333; @start-percent: 0%; @end-percent: 100%) {\n background-image: -webkit-linear-gradient(top, @start-color @start-percent, @end-color @end-percent); // Safari 5.1-6, Chrome 10+\n background-image: -o-linear-gradient(top, @start-color @start-percent, @end-color @end-percent); // Opera 12\n background-image: linear-gradient(to bottom, @start-color @start-percent, @end-color @end-percent); // Standard, IE10, Firefox 16+, Opera 12.10+, Safari 7+, Chrome 26+\n background-repeat: repeat-x;\n filter: e(%(\"progid:DXImageTransform.Microsoft.gradient(startColorstr='%d', endColorstr='%d', GradientType=0)\",argb(@start-color),argb(@end-color))); // IE9 and down\n }\n\n .directional(@start-color: #555; @end-color: #333; @deg: 45deg) {\n background-repeat: repeat-x;\n background-image: -webkit-linear-gradient(@deg, @start-color, @end-color); // Safari 5.1-6, Chrome 10+\n background-image: -o-linear-gradient(@deg, @start-color, @end-color); // Opera 12\n background-image: linear-gradient(@deg, @start-color, @end-color); // Standard, IE10, Firefox 16+, Opera 12.10+, Safari 7+, Chrome 26+\n }\n .horizontal-three-colors(@start-color: #00b3ee; @mid-color: #7a43b6; @color-stop: 50%; @end-color: #c3325f) {\n background-image: -webkit-linear-gradient(left, @start-color, @mid-color @color-stop, @end-color);\n background-image: -o-linear-gradient(left, @start-color, @mid-color @color-stop, @end-color);\n background-image: linear-gradient(to right, @start-color, @mid-color @color-stop, @end-color);\n background-repeat: no-repeat;\n filter: e(%(\"progid:DXImageTransform.Microsoft.gradient(startColorstr='%d', endColorstr='%d', GradientType=1)\",argb(@start-color),argb(@end-color))); // IE9 and down, gets no color-stop at all for proper fallback\n }\n .vertical-three-colors(@start-color: #00b3ee; @mid-color: #7a43b6; @color-stop: 50%; @end-color: #c3325f) {\n background-image: -webkit-linear-gradient(@start-color, @mid-color @color-stop, @end-color);\n background-image: -o-linear-gradient(@start-color, @mid-color @color-stop, @end-color);\n background-image: linear-gradient(@start-color, @mid-color @color-stop, @end-color);\n background-repeat: no-repeat;\n filter: e(%(\"progid:DXImageTransform.Microsoft.gradient(startColorstr='%d', endColorstr='%d', GradientType=0)\",argb(@start-color),argb(@end-color))); // IE9 and down, gets no color-stop at all for proper fallback\n }\n .radial(@inner-color: #555; @outer-color: #333) {\n background-image: -webkit-radial-gradient(circle, @inner-color, @outer-color);\n background-image: radial-gradient(circle, @inner-color, @outer-color);\n background-repeat: no-repeat;\n }\n .striped(@color: rgba(255,255,255,.15); @angle: 45deg) {\n background-image: -webkit-linear-gradient(@angle, @color 25%, transparent 25%, transparent 50%, @color 50%, @color 75%, transparent 75%, transparent);\n background-image: -o-linear-gradient(@angle, @color 25%, transparent 25%, transparent 50%, @color 50%, @color 75%, transparent 75%, transparent);\n background-image: linear-gradient(@angle, @color 25%, transparent 25%, transparent 50%, @color 50%, @color 75%, transparent 75%, transparent);\n }\n}\n","// Reset filters for IE\n//\n// When you need to remove a gradient background, do not forget to use this to reset\n// the IE filter for IE9 and below.\n\n.reset-filter() {\n filter: e(%(\"progid:DXImageTransform.Microsoft.gradient(enabled = false)\"));\n}\n"]} \ No newline at end of file diff --git a/admin/bower_components/bootstrap/dist/css/bootstrap.css b/admin/bower_components/bootstrap/dist/css/bootstrap.css deleted file mode 100644 index 6167622..0000000 --- a/admin/bower_components/bootstrap/dist/css/bootstrap.css +++ /dev/null @@ -1,6757 +0,0 @@ -/*! - * Bootstrap v3.3.7 (http://getbootstrap.com) - * Copyright 2011-2016 Twitter, Inc. - * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) - */ -/*! normalize.css v3.0.3 | MIT License | github.com/necolas/normalize.css */ -html { - font-family: sans-serif; - -webkit-text-size-adjust: 100%; - -ms-text-size-adjust: 100%; -} -body { - margin: 0; -} -article, -aside, -details, -figcaption, -figure, -footer, -header, -hgroup, -main, -menu, -nav, -section, -summary { - display: block; -} -audio, -canvas, -progress, -video { - display: inline-block; - vertical-align: baseline; -} -audio:not([controls]) { - display: none; - height: 0; -} -[hidden], -template { - display: none; -} -a { - background-color: transparent; -} -a:active, -a:hover { - outline: 0; -} -abbr[title] { - border-bottom: 1px dotted; -} -b, -strong { - font-weight: bold; -} -dfn { - font-style: italic; -} -h1 { - margin: .67em 0; - font-size: 2em; -} -mark { - color: #000; - background: #ff0; -} -small { - font-size: 80%; -} -sub, -sup { - position: relative; - font-size: 75%; - line-height: 0; - vertical-align: baseline; -} -sup { - top: -.5em; -} -sub { - bottom: -.25em; -} -img { - border: 0; -} -svg:not(:root) { - overflow: hidden; -} -figure { - margin: 1em 40px; -} -hr { - height: 0; - -webkit-box-sizing: content-box; - -moz-box-sizing: content-box; - box-sizing: content-box; -} -pre { - overflow: auto; -} -code, -kbd, -pre, -samp { - font-family: monospace, monospace; - font-size: 1em; -} -button, -input, -optgroup, -select, -textarea { - margin: 0; - font: inherit; - color: inherit; -} -button { - overflow: visible; -} -button, -select { - text-transform: none; -} -button, -html input[type="button"], -input[type="reset"], -input[type="submit"] { - -webkit-appearance: button; - cursor: pointer; -} -button[disabled], -html input[disabled] { - cursor: default; -} -button::-moz-focus-inner, -input::-moz-focus-inner { - padding: 0; - border: 0; -} -input { - line-height: normal; -} -input[type="checkbox"], -input[type="radio"] { - -webkit-box-sizing: border-box; - -moz-box-sizing: border-box; - box-sizing: border-box; - padding: 0; -} -input[type="number"]::-webkit-inner-spin-button, -input[type="number"]::-webkit-outer-spin-button { - height: auto; -} -input[type="search"] { - -webkit-box-sizing: content-box; - -moz-box-sizing: content-box; - box-sizing: content-box; - -webkit-appearance: textfield; -} -input[type="search"]::-webkit-search-cancel-button, -input[type="search"]::-webkit-search-decoration { - -webkit-appearance: none; -} -fieldset { - padding: .35em .625em .75em; - margin: 0 2px; - border: 1px solid #c0c0c0; -} -legend { - padding: 0; - border: 0; -} -textarea { - overflow: auto; -} -optgroup { - font-weight: bold; -} -table { - border-spacing: 0; - border-collapse: collapse; -} -td, -th { - padding: 0; -} -/*! Source: https://github.com/h5bp/html5-boilerplate/blob/master/src/css/main.css */ -@media print { - *, - *:before, - *:after { - color: #000 !important; - text-shadow: none !important; - background: transparent !important; - -webkit-box-shadow: none !important; - box-shadow: none !important; - } - a, - a:visited { - text-decoration: underline; - } - a[href]:after { - content: " (" attr(href) ")"; - } - abbr[title]:after { - content: " (" attr(title) ")"; - } - a[href^="#"]:after, - a[href^="javascript:"]:after { - content: ""; - } - pre, - blockquote { - border: 1px solid #999; - - page-break-inside: avoid; - } - thead { - display: table-header-group; - } - tr, - img { - page-break-inside: avoid; - } - img { - max-width: 100% !important; - } - p, - h2, - h3 { - orphans: 3; - widows: 3; - } - h2, - h3 { - page-break-after: avoid; - } - .navbar { - display: none; - } - .btn > .caret, - .dropup > .btn > .caret { - border-top-color: #000 !important; - } - .label { - border: 1px solid #000; - } - .table { - border-collapse: collapse !important; - } - .table td, - .table th { - background-color: #fff !important; - } - .table-bordered th, - .table-bordered td { - border: 1px solid #ddd !important; - } -} -@font-face { - font-family: 'Glyphicons Halflings'; - - src: url('../fonts/glyphicons-halflings-regular.eot'); - src: url('../fonts/glyphicons-halflings-regular.eot?#iefix') format('embedded-opentype'), url('../fonts/glyphicons-halflings-regular.woff2') format('woff2'), url('../fonts/glyphicons-halflings-regular.woff') format('woff'), url('../fonts/glyphicons-halflings-regular.ttf') format('truetype'), url('../fonts/glyphicons-halflings-regular.svg#glyphicons_halflingsregular') format('svg'); -} -.glyphicon { - position: relative; - top: 1px; - display: inline-block; - font-family: 'Glyphicons Halflings'; - font-style: normal; - font-weight: normal; - line-height: 1; - - -webkit-font-smoothing: antialiased; - -moz-osx-font-smoothing: grayscale; -} -.glyphicon-asterisk:before { - content: "\002a"; -} -.glyphicon-plus:before { - content: "\002b"; -} -.glyphicon-euro:before, -.glyphicon-eur:before { - content: "\20ac"; -} -.glyphicon-minus:before { - content: "\2212"; -} -.glyphicon-cloud:before { - content: "\2601"; -} -.glyphicon-envelope:before { - content: "\2709"; -} -.glyphicon-pencil:before { - content: "\270f"; -} -.glyphicon-glass:before { - content: "\e001"; -} -.glyphicon-music:before { - content: "\e002"; -} -.glyphicon-search:before { - content: "\e003"; -} -.glyphicon-heart:before { - content: "\e005"; -} -.glyphicon-star:before { - content: "\e006"; -} -.glyphicon-star-empty:before { - content: "\e007"; -} -.glyphicon-user:before { - content: "\e008"; -} -.glyphicon-film:before { - content: "\e009"; -} -.glyphicon-th-large:before { - content: "\e010"; -} -.glyphicon-th:before { - content: "\e011"; -} -.glyphicon-th-list:before { - content: "\e012"; -} -.glyphicon-ok:before { - content: "\e013"; -} -.glyphicon-remove:before { - content: "\e014"; -} -.glyphicon-zoom-in:before { - content: "\e015"; -} -.glyphicon-zoom-out:before { - content: "\e016"; -} -.glyphicon-off:before { - content: "\e017"; -} -.glyphicon-signal:before { - content: "\e018"; -} -.glyphicon-cog:before { - content: "\e019"; -} -.glyphicon-trash:before { - content: "\e020"; -} -.glyphicon-home:before { - content: "\e021"; -} -.glyphicon-file:before { - content: "\e022"; -} -.glyphicon-time:before { - content: "\e023"; -} -.glyphicon-road:before { - content: "\e024"; -} -.glyphicon-download-alt:before { - content: "\e025"; -} -.glyphicon-download:before { - content: "\e026"; -} -.glyphicon-upload:before { - content: "\e027"; -} -.glyphicon-inbox:before { - content: "\e028"; -} -.glyphicon-play-circle:before { - content: "\e029"; -} -.glyphicon-repeat:before { - content: "\e030"; -} -.glyphicon-refresh:before { - content: "\e031"; -} -.glyphicon-list-alt:before { - content: "\e032"; -} -.glyphicon-lock:before { - content: "\e033"; -} -.glyphicon-flag:before { - content: "\e034"; -} -.glyphicon-headphones:before { - content: "\e035"; -} -.glyphicon-volume-off:before { - content: "\e036"; -} -.glyphicon-volume-down:before { - content: "\e037"; -} -.glyphicon-volume-up:before { - content: "\e038"; -} -.glyphicon-qrcode:before { - content: "\e039"; -} -.glyphicon-barcode:before { - content: "\e040"; -} -.glyphicon-tag:before { - content: "\e041"; -} -.glyphicon-tags:before { - content: "\e042"; -} -.glyphicon-book:before { - content: "\e043"; -} -.glyphicon-bookmark:before { - content: "\e044"; -} -.glyphicon-print:before { - content: "\e045"; -} -.glyphicon-camera:before { - content: "\e046"; -} -.glyphicon-font:before { - content: "\e047"; -} -.glyphicon-bold:before { - content: "\e048"; -} -.glyphicon-italic:before { - content: "\e049"; -} -.glyphicon-text-height:before { - content: "\e050"; -} -.glyphicon-text-width:before { - content: "\e051"; -} -.glyphicon-align-left:before { - content: "\e052"; -} -.glyphicon-align-center:before { - content: "\e053"; -} -.glyphicon-align-right:before { - content: "\e054"; -} -.glyphicon-align-justify:before { - content: "\e055"; -} -.glyphicon-list:before { - content: "\e056"; -} -.glyphicon-indent-left:before { - content: "\e057"; -} -.glyphicon-indent-right:before { - content: "\e058"; -} -.glyphicon-facetime-video:before { - content: "\e059"; -} -.glyphicon-picture:before { - content: "\e060"; -} -.glyphicon-map-marker:before { - content: "\e062"; -} -.glyphicon-adjust:before { - content: "\e063"; -} -.glyphicon-tint:before { - content: "\e064"; -} -.glyphicon-edit:before { - content: "\e065"; -} -.glyphicon-share:before { - content: "\e066"; -} -.glyphicon-check:before { - content: "\e067"; -} -.glyphicon-move:before { - content: "\e068"; -} -.glyphicon-step-backward:before { - content: "\e069"; -} -.glyphicon-fast-backward:before { - content: "\e070"; -} -.glyphicon-backward:before { - content: "\e071"; -} -.glyphicon-play:before { - content: "\e072"; -} -.glyphicon-pause:before { - content: "\e073"; -} -.glyphicon-stop:before { - content: "\e074"; -} -.glyphicon-forward:before { - content: "\e075"; -} -.glyphicon-fast-forward:before { - content: "\e076"; -} -.glyphicon-step-forward:before { - content: "\e077"; -} -.glyphicon-eject:before { - content: "\e078"; -} -.glyphicon-chevron-left:before { - content: "\e079"; -} -.glyphicon-chevron-right:before { - content: "\e080"; -} -.glyphicon-plus-sign:before { - content: "\e081"; -} -.glyphicon-minus-sign:before { - content: "\e082"; -} -.glyphicon-remove-sign:before { - content: "\e083"; -} -.glyphicon-ok-sign:before { - content: "\e084"; -} -.glyphicon-question-sign:before { - content: "\e085"; -} -.glyphicon-info-sign:before { - content: "\e086"; -} -.glyphicon-screenshot:before { - content: "\e087"; -} -.glyphicon-remove-circle:before { - content: "\e088"; -} -.glyphicon-ok-circle:before { - content: "\e089"; -} -.glyphicon-ban-circle:before { - content: "\e090"; -} -.glyphicon-arrow-left:before { - content: "\e091"; -} -.glyphicon-arrow-right:before { - content: "\e092"; -} -.glyphicon-arrow-up:before { - content: "\e093"; -} -.glyphicon-arrow-down:before { - content: "\e094"; -} -.glyphicon-share-alt:before { - content: "\e095"; -} -.glyphicon-resize-full:before { - content: "\e096"; -} -.glyphicon-resize-small:before { - content: "\e097"; -} -.glyphicon-exclamation-sign:before { - content: "\e101"; -} -.glyphicon-gift:before { - content: "\e102"; -} -.glyphicon-leaf:before { - content: "\e103"; -} -.glyphicon-fire:before { - content: "\e104"; -} -.glyphicon-eye-open:before { - content: "\e105"; -} -.glyphicon-eye-close:before { - content: "\e106"; -} -.glyphicon-warning-sign:before { - content: "\e107"; -} -.glyphicon-plane:before { - content: "\e108"; -} -.glyphicon-calendar:before { - content: "\e109"; -} -.glyphicon-random:before { - content: "\e110"; -} -.glyphicon-comment:before { - content: "\e111"; -} -.glyphicon-magnet:before { - content: "\e112"; -} -.glyphicon-chevron-up:before { - content: "\e113"; -} -.glyphicon-chevron-down:before { - content: "\e114"; -} -.glyphicon-retweet:before { - content: "\e115"; -} -.glyphicon-shopping-cart:before { - content: "\e116"; -} -.glyphicon-folder-close:before { - content: "\e117"; -} -.glyphicon-folder-open:before { - content: "\e118"; -} -.glyphicon-resize-vertical:before { - content: "\e119"; -} -.glyphicon-resize-horizontal:before { - content: "\e120"; -} -.glyphicon-hdd:before { - content: "\e121"; -} -.glyphicon-bullhorn:before { - content: "\e122"; -} -.glyphicon-bell:before { - content: "\e123"; -} -.glyphicon-certificate:before { - content: "\e124"; -} -.glyphicon-thumbs-up:before { - content: "\e125"; -} -.glyphicon-thumbs-down:before { - content: "\e126"; -} -.glyphicon-hand-right:before { - content: "\e127"; -} -.glyphicon-hand-left:before { - content: "\e128"; -} -.glyphicon-hand-up:before { - content: "\e129"; -} -.glyphicon-hand-down:before { - content: "\e130"; -} -.glyphicon-circle-arrow-right:before { - content: "\e131"; -} -.glyphicon-circle-arrow-left:before { - content: "\e132"; -} -.glyphicon-circle-arrow-up:before { - content: "\e133"; -} -.glyphicon-circle-arrow-down:before { - content: "\e134"; -} -.glyphicon-globe:before { - content: "\e135"; -} -.glyphicon-wrench:before { - content: "\e136"; -} -.glyphicon-tasks:before { - content: "\e137"; -} -.glyphicon-filter:before { - content: "\e138"; -} -.glyphicon-briefcase:before { - content: "\e139"; -} -.glyphicon-fullscreen:before { - content: "\e140"; -} -.glyphicon-dashboard:before { - content: "\e141"; -} -.glyphicon-paperclip:before { - content: "\e142"; -} -.glyphicon-heart-empty:before { - content: "\e143"; -} -.glyphicon-link:before { - content: "\e144"; -} -.glyphicon-phone:before { - content: "\e145"; -} -.glyphicon-pushpin:before { - content: "\e146"; -} -.glyphicon-usd:before { - content: "\e148"; -} -.glyphicon-gbp:before { - content: "\e149"; -} -.glyphicon-sort:before { - content: "\e150"; -} -.glyphicon-sort-by-alphabet:before { - content: "\e151"; -} -.glyphicon-sort-by-alphabet-alt:before { - content: "\e152"; -} -.glyphicon-sort-by-order:before { - content: "\e153"; -} -.glyphicon-sort-by-order-alt:before { - content: "\e154"; -} -.glyphicon-sort-by-attributes:before { - content: "\e155"; -} -.glyphicon-sort-by-attributes-alt:before { - content: "\e156"; -} -.glyphicon-unchecked:before { - content: "\e157"; -} -.glyphicon-expand:before { - content: "\e158"; -} -.glyphicon-collapse-down:before { - content: "\e159"; -} -.glyphicon-collapse-up:before { - content: "\e160"; -} -.glyphicon-log-in:before { - content: "\e161"; -} -.glyphicon-flash:before { - content: "\e162"; -} -.glyphicon-log-out:before { - content: "\e163"; -} -.glyphicon-new-window:before { - content: "\e164"; -} -.glyphicon-record:before { - content: "\e165"; -} -.glyphicon-save:before { - content: "\e166"; -} -.glyphicon-open:before { - content: "\e167"; -} -.glyphicon-saved:before { - content: "\e168"; -} -.glyphicon-import:before { - content: "\e169"; -} -.glyphicon-export:before { - content: "\e170"; -} -.glyphicon-send:before { - content: "\e171"; -} -.glyphicon-floppy-disk:before { - content: "\e172"; -} -.glyphicon-floppy-saved:before { - content: "\e173"; -} -.glyphicon-floppy-remove:before { - content: "\e174"; -} -.glyphicon-floppy-save:before { - content: "\e175"; -} -.glyphicon-floppy-open:before { - content: "\e176"; -} -.glyphicon-credit-card:before { - content: "\e177"; -} -.glyphicon-transfer:before { - content: "\e178"; -} -.glyphicon-cutlery:before { - content: "\e179"; -} -.glyphicon-header:before { - content: "\e180"; -} -.glyphicon-compressed:before { - content: "\e181"; -} -.glyphicon-earphone:before { - content: "\e182"; -} -.glyphicon-phone-alt:before { - content: "\e183"; -} -.glyphicon-tower:before { - content: "\e184"; -} -.glyphicon-stats:before { - content: "\e185"; -} -.glyphicon-sd-video:before { - content: "\e186"; -} -.glyphicon-hd-video:before { - content: "\e187"; -} -.glyphicon-subtitles:before { - content: "\e188"; -} -.glyphicon-sound-stereo:before { - content: "\e189"; -} -.glyphicon-sound-dolby:before { - content: "\e190"; -} -.glyphicon-sound-5-1:before { - content: "\e191"; -} -.glyphicon-sound-6-1:before { - content: "\e192"; -} -.glyphicon-sound-7-1:before { - content: "\e193"; -} -.glyphicon-copyright-mark:before { - content: "\e194"; -} -.glyphicon-registration-mark:before { - content: "\e195"; -} -.glyphicon-cloud-download:before { - content: "\e197"; -} -.glyphicon-cloud-upload:before { - content: "\e198"; -} -.glyphicon-tree-conifer:before { - content: "\e199"; -} -.glyphicon-tree-deciduous:before { - content: "\e200"; -} -.glyphicon-cd:before { - content: "\e201"; -} -.glyphicon-save-file:before { - content: "\e202"; -} -.glyphicon-open-file:before { - content: "\e203"; -} -.glyphicon-level-up:before { - content: "\e204"; -} -.glyphicon-copy:before { - content: "\e205"; -} -.glyphicon-paste:before { - content: "\e206"; -} -.glyphicon-alert:before { - content: "\e209"; -} -.glyphicon-equalizer:before { - content: "\e210"; -} -.glyphicon-king:before { - content: "\e211"; -} -.glyphicon-queen:before { - content: "\e212"; -} -.glyphicon-pawn:before { - content: "\e213"; -} -.glyphicon-bishop:before { - content: "\e214"; -} -.glyphicon-knight:before { - content: "\e215"; -} -.glyphicon-baby-formula:before { - content: "\e216"; -} -.glyphicon-tent:before { - content: "\26fa"; -} -.glyphicon-blackboard:before { - content: "\e218"; -} -.glyphicon-bed:before { - content: "\e219"; -} -.glyphicon-apple:before { - content: "\f8ff"; -} -.glyphicon-erase:before { - content: "\e221"; -} -.glyphicon-hourglass:before { - content: "\231b"; -} -.glyphicon-lamp:before { - content: "\e223"; -} -.glyphicon-duplicate:before { - content: "\e224"; -} -.glyphicon-piggy-bank:before { - content: "\e225"; -} -.glyphicon-scissors:before { - content: "\e226"; -} -.glyphicon-bitcoin:before { - content: "\e227"; -} -.glyphicon-btc:before { - content: "\e227"; -} -.glyphicon-xbt:before { - content: "\e227"; -} -.glyphicon-yen:before { - content: "\00a5"; -} -.glyphicon-jpy:before { - content: "\00a5"; -} -.glyphicon-ruble:before { - content: "\20bd"; -} -.glyphicon-rub:before { - content: "\20bd"; -} -.glyphicon-scale:before { - content: "\e230"; -} -.glyphicon-ice-lolly:before { - content: "\e231"; -} -.glyphicon-ice-lolly-tasted:before { - content: "\e232"; -} -.glyphicon-education:before { - content: "\e233"; -} -.glyphicon-option-horizontal:before { - content: "\e234"; -} -.glyphicon-option-vertical:before { - content: "\e235"; -} -.glyphicon-menu-hamburger:before { - content: "\e236"; -} -.glyphicon-modal-window:before { - content: "\e237"; -} -.glyphicon-oil:before { - content: "\e238"; -} -.glyphicon-grain:before { - content: "\e239"; -} -.glyphicon-sunglasses:before { - content: "\e240"; -} -.glyphicon-text-size:before { - content: "\e241"; -} -.glyphicon-text-color:before { - content: "\e242"; -} -.glyphicon-text-background:before { - content: "\e243"; -} -.glyphicon-object-align-top:before { - content: "\e244"; -} -.glyphicon-object-align-bottom:before { - content: "\e245"; -} -.glyphicon-object-align-horizontal:before { - content: "\e246"; -} -.glyphicon-object-align-left:before { - content: "\e247"; -} -.glyphicon-object-align-vertical:before { - content: "\e248"; -} -.glyphicon-object-align-right:before { - content: "\e249"; -} -.glyphicon-triangle-right:before { - content: "\e250"; -} -.glyphicon-triangle-left:before { - content: "\e251"; -} -.glyphicon-triangle-bottom:before { - content: "\e252"; -} -.glyphicon-triangle-top:before { - content: "\e253"; -} -.glyphicon-console:before { - content: "\e254"; -} -.glyphicon-superscript:before { - content: "\e255"; -} -.glyphicon-subscript:before { - content: "\e256"; -} -.glyphicon-menu-left:before { - content: "\e257"; -} -.glyphicon-menu-right:before { - content: "\e258"; -} -.glyphicon-menu-down:before { - content: "\e259"; -} -.glyphicon-menu-up:before { - content: "\e260"; -} -* { - -webkit-box-sizing: border-box; - -moz-box-sizing: border-box; - box-sizing: border-box; -} -*:before, -*:after { - -webkit-box-sizing: border-box; - -moz-box-sizing: border-box; - box-sizing: border-box; -} -html { - font-size: 10px; - - -webkit-tap-highlight-color: rgba(0, 0, 0, 0); -} -body { - font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; - font-size: 14px; - line-height: 1.42857143; - color: #333; - background-color: #fff; -} -input, -button, -select, -textarea { - font-family: inherit; - font-size: inherit; - line-height: inherit; -} -a { - color: #337ab7; - text-decoration: none; -} -a:hover, -a:focus { - color: #23527c; - text-decoration: underline; -} -a:focus { - outline: 5px auto -webkit-focus-ring-color; - outline-offset: -2px; -} -figure { - margin: 0; -} -img { - vertical-align: middle; -} -.img-responsive, -.thumbnail > img, -.thumbnail a > img, -.carousel-inner > .item > img, -.carousel-inner > .item > a > img { - display: block; - max-width: 100%; - height: auto; -} -.img-rounded { - border-radius: 6px; -} -.img-thumbnail { - display: inline-block; - max-width: 100%; - height: auto; - padding: 4px; - line-height: 1.42857143; - background-color: #fff; - border: 1px solid #ddd; - border-radius: 4px; - -webkit-transition: all .2s ease-in-out; - -o-transition: all .2s ease-in-out; - transition: all .2s ease-in-out; -} -.img-circle { - border-radius: 50%; -} -hr { - margin-top: 20px; - margin-bottom: 20px; - border: 0; - border-top: 1px solid #eee; -} -.sr-only { - position: absolute; - width: 1px; - height: 1px; - padding: 0; - margin: -1px; - overflow: hidden; - clip: rect(0, 0, 0, 0); - border: 0; -} -.sr-only-focusable:active, -.sr-only-focusable:focus { - position: static; - width: auto; - height: auto; - margin: 0; - overflow: visible; - clip: auto; -} -[role="button"] { - cursor: pointer; -} -h1, -h2, -h3, -h4, -h5, -h6, -.h1, -.h2, -.h3, -.h4, -.h5, -.h6 { - font-family: inherit; - font-weight: 500; - line-height: 1.1; - color: inherit; -} -h1 small, -h2 small, -h3 small, -h4 small, -h5 small, -h6 small, -.h1 small, -.h2 small, -.h3 small, -.h4 small, -.h5 small, -.h6 small, -h1 .small, -h2 .small, -h3 .small, -h4 .small, -h5 .small, -h6 .small, -.h1 .small, -.h2 .small, -.h3 .small, -.h4 .small, -.h5 .small, -.h6 .small { - font-weight: normal; - line-height: 1; - color: #777; -} -h1, -.h1, -h2, -.h2, -h3, -.h3 { - margin-top: 20px; - margin-bottom: 10px; -} -h1 small, -.h1 small, -h2 small, -.h2 small, -h3 small, -.h3 small, -h1 .small, -.h1 .small, -h2 .small, -.h2 .small, -h3 .small, -.h3 .small { - font-size: 65%; -} -h4, -.h4, -h5, -.h5, -h6, -.h6 { - margin-top: 10px; - margin-bottom: 10px; -} -h4 small, -.h4 small, -h5 small, -.h5 small, -h6 small, -.h6 small, -h4 .small, -.h4 .small, -h5 .small, -.h5 .small, -h6 .small, -.h6 .small { - font-size: 75%; -} -h1, -.h1 { - font-size: 36px; -} -h2, -.h2 { - font-size: 30px; -} -h3, -.h3 { - font-size: 24px; -} -h4, -.h4 { - font-size: 18px; -} -h5, -.h5 { - font-size: 14px; -} -h6, -.h6 { - font-size: 12px; -} -p { - margin: 0 0 10px; -} -.lead { - margin-bottom: 20px; - font-size: 16px; - font-weight: 300; - line-height: 1.4; -} -@media (min-width: 768px) { - .lead { - font-size: 21px; - } -} -small, -.small { - font-size: 85%; -} -mark, -.mark { - padding: .2em; - background-color: #fcf8e3; -} -.text-left { - text-align: left; -} -.text-right { - text-align: right; -} -.text-center { - text-align: center; -} -.text-justify { - text-align: justify; -} -.text-nowrap { - white-space: nowrap; -} -.text-lowercase { - text-transform: lowercase; -} -.text-uppercase { - text-transform: uppercase; -} -.text-capitalize { - text-transform: capitalize; -} -.text-muted { - color: #777; -} -.text-primary { - color: #337ab7; -} -a.text-primary:hover, -a.text-primary:focus { - color: #286090; -} -.text-success { - color: #3c763d; -} -a.text-success:hover, -a.text-success:focus { - color: #2b542c; -} -.text-info { - color: #31708f; -} -a.text-info:hover, -a.text-info:focus { - color: #245269; -} -.text-warning { - color: #8a6d3b; -} -a.text-warning:hover, -a.text-warning:focus { - color: #66512c; -} -.text-danger { - color: #a94442; -} -a.text-danger:hover, -a.text-danger:focus { - color: #843534; -} -.bg-primary { - color: #fff; - background-color: #337ab7; -} -a.bg-primary:hover, -a.bg-primary:focus { - background-color: #286090; -} -.bg-success { - background-color: #dff0d8; -} -a.bg-success:hover, -a.bg-success:focus { - background-color: #c1e2b3; -} -.bg-info { - background-color: #d9edf7; -} -a.bg-info:hover, -a.bg-info:focus { - background-color: #afd9ee; -} -.bg-warning { - background-color: #fcf8e3; -} -a.bg-warning:hover, -a.bg-warning:focus { - background-color: #f7ecb5; -} -.bg-danger { - background-color: #f2dede; -} -a.bg-danger:hover, -a.bg-danger:focus { - background-color: #e4b9b9; -} -.page-header { - padding-bottom: 9px; - margin: 40px 0 20px; - border-bottom: 1px solid #eee; -} -ul, -ol { - margin-top: 0; - margin-bottom: 10px; -} -ul ul, -ol ul, -ul ol, -ol ol { - margin-bottom: 0; -} -.list-unstyled { - padding-left: 0; - list-style: none; -} -.list-inline { - padding-left: 0; - margin-left: -5px; - list-style: none; -} -.list-inline > li { - display: inline-block; - padding-right: 5px; - padding-left: 5px; -} -dl { - margin-top: 0; - margin-bottom: 20px; -} -dt, -dd { - line-height: 1.42857143; -} -dt { - font-weight: bold; -} -dd { - margin-left: 0; -} -@media (min-width: 768px) { - .dl-horizontal dt { - float: left; - width: 160px; - overflow: hidden; - clear: left; - text-align: right; - text-overflow: ellipsis; - white-space: nowrap; - } - .dl-horizontal dd { - margin-left: 180px; - } -} -abbr[title], -abbr[data-original-title] { - cursor: help; - border-bottom: 1px dotted #777; -} -.initialism { - font-size: 90%; - text-transform: uppercase; -} -blockquote { - padding: 10px 20px; - margin: 0 0 20px; - font-size: 17.5px; - border-left: 5px solid #eee; -} -blockquote p:last-child, -blockquote ul:last-child, -blockquote ol:last-child { - margin-bottom: 0; -} -blockquote footer, -blockquote small, -blockquote .small { - display: block; - font-size: 80%; - line-height: 1.42857143; - color: #777; -} -blockquote footer:before, -blockquote small:before, -blockquote .small:before { - content: '\2014 \00A0'; -} -.blockquote-reverse, -blockquote.pull-right { - padding-right: 15px; - padding-left: 0; - text-align: right; - border-right: 5px solid #eee; - border-left: 0; -} -.blockquote-reverse footer:before, -blockquote.pull-right footer:before, -.blockquote-reverse small:before, -blockquote.pull-right small:before, -.blockquote-reverse .small:before, -blockquote.pull-right .small:before { - content: ''; -} -.blockquote-reverse footer:after, -blockquote.pull-right footer:after, -.blockquote-reverse small:after, -blockquote.pull-right small:after, -.blockquote-reverse .small:after, -blockquote.pull-right .small:after { - content: '\00A0 \2014'; -} -address { - margin-bottom: 20px; - font-style: normal; - line-height: 1.42857143; -} -code, -kbd, -pre, -samp { - font-family: Menlo, Monaco, Consolas, "Courier New", monospace; -} -code { - padding: 2px 4px; - font-size: 90%; - color: #c7254e; - background-color: #f9f2f4; - border-radius: 4px; -} -kbd { - padding: 2px 4px; - font-size: 90%; - color: #fff; - background-color: #333; - border-radius: 3px; - -webkit-box-shadow: inset 0 -1px 0 rgba(0, 0, 0, .25); - box-shadow: inset 0 -1px 0 rgba(0, 0, 0, .25); -} -kbd kbd { - padding: 0; - font-size: 100%; - font-weight: bold; - -webkit-box-shadow: none; - box-shadow: none; -} -pre { - display: block; - padding: 9.5px; - margin: 0 0 10px; - font-size: 13px; - line-height: 1.42857143; - color: #333; - word-break: break-all; - word-wrap: break-word; - background-color: #f5f5f5; - border: 1px solid #ccc; - border-radius: 4px; -} -pre code { - padding: 0; - font-size: inherit; - color: inherit; - white-space: pre-wrap; - background-color: transparent; - border-radius: 0; -} -.pre-scrollable { - max-height: 340px; - overflow-y: scroll; -} -.container { - padding-right: 15px; - padding-left: 15px; - margin-right: auto; - margin-left: auto; -} -@media (min-width: 768px) { - .container { - width: 750px; - } -} -@media (min-width: 992px) { - .container { - width: 970px; - } -} -@media (min-width: 1200px) { - .container { - width: 1170px; - } -} -.container-fluid { - padding-right: 15px; - padding-left: 15px; - margin-right: auto; - margin-left: auto; -} -.row { - margin-right: -15px; - margin-left: -15px; -} -.col-xs-1, .col-sm-1, .col-md-1, .col-lg-1, .col-xs-2, .col-sm-2, .col-md-2, .col-lg-2, .col-xs-3, .col-sm-3, .col-md-3, .col-lg-3, .col-xs-4, .col-sm-4, .col-md-4, .col-lg-4, .col-xs-5, .col-sm-5, .col-md-5, .col-lg-5, .col-xs-6, .col-sm-6, .col-md-6, .col-lg-6, .col-xs-7, .col-sm-7, .col-md-7, .col-lg-7, .col-xs-8, .col-sm-8, .col-md-8, .col-lg-8, .col-xs-9, .col-sm-9, .col-md-9, .col-lg-9, .col-xs-10, .col-sm-10, .col-md-10, .col-lg-10, .col-xs-11, .col-sm-11, .col-md-11, .col-lg-11, .col-xs-12, .col-sm-12, .col-md-12, .col-lg-12 { - position: relative; - min-height: 1px; - padding-right: 15px; - padding-left: 15px; -} -.col-xs-1, .col-xs-2, .col-xs-3, .col-xs-4, .col-xs-5, .col-xs-6, .col-xs-7, .col-xs-8, .col-xs-9, .col-xs-10, .col-xs-11, .col-xs-12 { - float: left; -} -.col-xs-12 { - width: 100%; -} -.col-xs-11 { - width: 91.66666667%; -} -.col-xs-10 { - width: 83.33333333%; -} -.col-xs-9 { - width: 75%; -} -.col-xs-8 { - width: 66.66666667%; -} -.col-xs-7 { - width: 58.33333333%; -} -.col-xs-6 { - width: 50%; -} -.col-xs-5 { - width: 41.66666667%; -} -.col-xs-4 { - width: 33.33333333%; -} -.col-xs-3 { - width: 25%; -} -.col-xs-2 { - width: 16.66666667%; -} -.col-xs-1 { - width: 8.33333333%; -} -.col-xs-pull-12 { - right: 100%; -} -.col-xs-pull-11 { - right: 91.66666667%; -} -.col-xs-pull-10 { - right: 83.33333333%; -} -.col-xs-pull-9 { - right: 75%; -} -.col-xs-pull-8 { - right: 66.66666667%; -} -.col-xs-pull-7 { - right: 58.33333333%; -} -.col-xs-pull-6 { - right: 50%; -} -.col-xs-pull-5 { - right: 41.66666667%; -} -.col-xs-pull-4 { - right: 33.33333333%; -} -.col-xs-pull-3 { - right: 25%; -} -.col-xs-pull-2 { - right: 16.66666667%; -} -.col-xs-pull-1 { - right: 8.33333333%; -} -.col-xs-pull-0 { - right: auto; -} -.col-xs-push-12 { - left: 100%; -} -.col-xs-push-11 { - left: 91.66666667%; -} -.col-xs-push-10 { - left: 83.33333333%; -} -.col-xs-push-9 { - left: 75%; -} -.col-xs-push-8 { - left: 66.66666667%; -} -.col-xs-push-7 { - left: 58.33333333%; -} -.col-xs-push-6 { - left: 50%; -} -.col-xs-push-5 { - left: 41.66666667%; -} -.col-xs-push-4 { - left: 33.33333333%; -} -.col-xs-push-3 { - left: 25%; -} -.col-xs-push-2 { - left: 16.66666667%; -} -.col-xs-push-1 { - left: 8.33333333%; -} -.col-xs-push-0 { - left: auto; -} -.col-xs-offset-12 { - margin-left: 100%; -} -.col-xs-offset-11 { - margin-left: 91.66666667%; -} -.col-xs-offset-10 { - margin-left: 83.33333333%; -} -.col-xs-offset-9 { - margin-left: 75%; -} -.col-xs-offset-8 { - margin-left: 66.66666667%; -} -.col-xs-offset-7 { - margin-left: 58.33333333%; -} -.col-xs-offset-6 { - margin-left: 50%; -} -.col-xs-offset-5 { - margin-left: 41.66666667%; -} -.col-xs-offset-4 { - margin-left: 33.33333333%; -} -.col-xs-offset-3 { - margin-left: 25%; -} -.col-xs-offset-2 { - margin-left: 16.66666667%; -} -.col-xs-offset-1 { - margin-left: 8.33333333%; -} -.col-xs-offset-0 { - margin-left: 0; -} -@media (min-width: 768px) { - .col-sm-1, .col-sm-2, .col-sm-3, .col-sm-4, .col-sm-5, .col-sm-6, .col-sm-7, .col-sm-8, .col-sm-9, .col-sm-10, .col-sm-11, .col-sm-12 { - float: left; - } - .col-sm-12 { - width: 100%; - } - .col-sm-11 { - width: 91.66666667%; - } - .col-sm-10 { - width: 83.33333333%; - } - .col-sm-9 { - width: 75%; - } - .col-sm-8 { - width: 66.66666667%; - } - .col-sm-7 { - width: 58.33333333%; - } - .col-sm-6 { - width: 50%; - } - .col-sm-5 { - width: 41.66666667%; - } - .col-sm-4 { - width: 33.33333333%; - } - .col-sm-3 { - width: 25%; - } - .col-sm-2 { - width: 16.66666667%; - } - .col-sm-1 { - width: 8.33333333%; - } - .col-sm-pull-12 { - right: 100%; - } - .col-sm-pull-11 { - right: 91.66666667%; - } - .col-sm-pull-10 { - right: 83.33333333%; - } - .col-sm-pull-9 { - right: 75%; - } - .col-sm-pull-8 { - right: 66.66666667%; - } - .col-sm-pull-7 { - right: 58.33333333%; - } - .col-sm-pull-6 { - right: 50%; - } - .col-sm-pull-5 { - right: 41.66666667%; - } - .col-sm-pull-4 { - right: 33.33333333%; - } - .col-sm-pull-3 { - right: 25%; - } - .col-sm-pull-2 { - right: 16.66666667%; - } - .col-sm-pull-1 { - right: 8.33333333%; - } - .col-sm-pull-0 { - right: auto; - } - .col-sm-push-12 { - left: 100%; - } - .col-sm-push-11 { - left: 91.66666667%; - } - .col-sm-push-10 { - left: 83.33333333%; - } - .col-sm-push-9 { - left: 75%; - } - .col-sm-push-8 { - left: 66.66666667%; - } - .col-sm-push-7 { - left: 58.33333333%; - } - .col-sm-push-6 { - left: 50%; - } - .col-sm-push-5 { - left: 41.66666667%; - } - .col-sm-push-4 { - left: 33.33333333%; - } - .col-sm-push-3 { - left: 25%; - } - .col-sm-push-2 { - left: 16.66666667%; - } - .col-sm-push-1 { - left: 8.33333333%; - } - .col-sm-push-0 { - left: auto; - } - .col-sm-offset-12 { - margin-left: 100%; - } - .col-sm-offset-11 { - margin-left: 91.66666667%; - } - .col-sm-offset-10 { - margin-left: 83.33333333%; - } - .col-sm-offset-9 { - margin-left: 75%; - } - .col-sm-offset-8 { - margin-left: 66.66666667%; - } - .col-sm-offset-7 { - margin-left: 58.33333333%; - } - .col-sm-offset-6 { - margin-left: 50%; - } - .col-sm-offset-5 { - margin-left: 41.66666667%; - } - .col-sm-offset-4 { - margin-left: 33.33333333%; - } - .col-sm-offset-3 { - margin-left: 25%; - } - .col-sm-offset-2 { - margin-left: 16.66666667%; - } - .col-sm-offset-1 { - margin-left: 8.33333333%; - } - .col-sm-offset-0 { - margin-left: 0; - } -} -@media (min-width: 992px) { - .col-md-1, .col-md-2, .col-md-3, .col-md-4, .col-md-5, .col-md-6, .col-md-7, .col-md-8, .col-md-9, .col-md-10, .col-md-11, .col-md-12 { - float: left; - } - .col-md-12 { - width: 100%; - } - .col-md-11 { - width: 91.66666667%; - } - .col-md-10 { - width: 83.33333333%; - } - .col-md-9 { - width: 75%; - } - .col-md-8 { - width: 66.66666667%; - } - .col-md-7 { - width: 58.33333333%; - } - .col-md-6 { - width: 50%; - } - .col-md-5 { - width: 41.66666667%; - } - .col-md-4 { - width: 33.33333333%; - } - .col-md-3 { - width: 25%; - } - .col-md-2 { - width: 16.66666667%; - } - .col-md-1 { - width: 8.33333333%; - } - .col-md-pull-12 { - right: 100%; - } - .col-md-pull-11 { - right: 91.66666667%; - } - .col-md-pull-10 { - right: 83.33333333%; - } - .col-md-pull-9 { - right: 75%; - } - .col-md-pull-8 { - right: 66.66666667%; - } - .col-md-pull-7 { - right: 58.33333333%; - } - .col-md-pull-6 { - right: 50%; - } - .col-md-pull-5 { - right: 41.66666667%; - } - .col-md-pull-4 { - right: 33.33333333%; - } - .col-md-pull-3 { - right: 25%; - } - .col-md-pull-2 { - right: 16.66666667%; - } - .col-md-pull-1 { - right: 8.33333333%; - } - .col-md-pull-0 { - right: auto; - } - .col-md-push-12 { - left: 100%; - } - .col-md-push-11 { - left: 91.66666667%; - } - .col-md-push-10 { - left: 83.33333333%; - } - .col-md-push-9 { - left: 75%; - } - .col-md-push-8 { - left: 66.66666667%; - } - .col-md-push-7 { - left: 58.33333333%; - } - .col-md-push-6 { - left: 50%; - } - .col-md-push-5 { - left: 41.66666667%; - } - .col-md-push-4 { - left: 33.33333333%; - } - .col-md-push-3 { - left: 25%; - } - .col-md-push-2 { - left: 16.66666667%; - } - .col-md-push-1 { - left: 8.33333333%; - } - .col-md-push-0 { - left: auto; - } - .col-md-offset-12 { - margin-left: 100%; - } - .col-md-offset-11 { - margin-left: 91.66666667%; - } - .col-md-offset-10 { - margin-left: 83.33333333%; - } - .col-md-offset-9 { - margin-left: 75%; - } - .col-md-offset-8 { - margin-left: 66.66666667%; - } - .col-md-offset-7 { - margin-left: 58.33333333%; - } - .col-md-offset-6 { - margin-left: 50%; - } - .col-md-offset-5 { - margin-left: 41.66666667%; - } - .col-md-offset-4 { - margin-left: 33.33333333%; - } - .col-md-offset-3 { - margin-left: 25%; - } - .col-md-offset-2 { - margin-left: 16.66666667%; - } - .col-md-offset-1 { - margin-left: 8.33333333%; - } - .col-md-offset-0 { - margin-left: 0; - } -} -@media (min-width: 1200px) { - .col-lg-1, .col-lg-2, .col-lg-3, .col-lg-4, .col-lg-5, .col-lg-6, .col-lg-7, .col-lg-8, .col-lg-9, .col-lg-10, .col-lg-11, .col-lg-12 { - float: left; - } - .col-lg-12 { - width: 100%; - } - .col-lg-11 { - width: 91.66666667%; - } - .col-lg-10 { - width: 83.33333333%; - } - .col-lg-9 { - width: 75%; - } - .col-lg-8 { - width: 66.66666667%; - } - .col-lg-7 { - width: 58.33333333%; - } - .col-lg-6 { - width: 50%; - } - .col-lg-5 { - width: 41.66666667%; - } - .col-lg-4 { - width: 33.33333333%; - } - .col-lg-3 { - width: 25%; - } - .col-lg-2 { - width: 16.66666667%; - } - .col-lg-1 { - width: 8.33333333%; - } - .col-lg-pull-12 { - right: 100%; - } - .col-lg-pull-11 { - right: 91.66666667%; - } - .col-lg-pull-10 { - right: 83.33333333%; - } - .col-lg-pull-9 { - right: 75%; - } - .col-lg-pull-8 { - right: 66.66666667%; - } - .col-lg-pull-7 { - right: 58.33333333%; - } - .col-lg-pull-6 { - right: 50%; - } - .col-lg-pull-5 { - right: 41.66666667%; - } - .col-lg-pull-4 { - right: 33.33333333%; - } - .col-lg-pull-3 { - right: 25%; - } - .col-lg-pull-2 { - right: 16.66666667%; - } - .col-lg-pull-1 { - right: 8.33333333%; - } - .col-lg-pull-0 { - right: auto; - } - .col-lg-push-12 { - left: 100%; - } - .col-lg-push-11 { - left: 91.66666667%; - } - .col-lg-push-10 { - left: 83.33333333%; - } - .col-lg-push-9 { - left: 75%; - } - .col-lg-push-8 { - left: 66.66666667%; - } - .col-lg-push-7 { - left: 58.33333333%; - } - .col-lg-push-6 { - left: 50%; - } - .col-lg-push-5 { - left: 41.66666667%; - } - .col-lg-push-4 { - left: 33.33333333%; - } - .col-lg-push-3 { - left: 25%; - } - .col-lg-push-2 { - left: 16.66666667%; - } - .col-lg-push-1 { - left: 8.33333333%; - } - .col-lg-push-0 { - left: auto; - } - .col-lg-offset-12 { - margin-left: 100%; - } - .col-lg-offset-11 { - margin-left: 91.66666667%; - } - .col-lg-offset-10 { - margin-left: 83.33333333%; - } - .col-lg-offset-9 { - margin-left: 75%; - } - .col-lg-offset-8 { - margin-left: 66.66666667%; - } - .col-lg-offset-7 { - margin-left: 58.33333333%; - } - .col-lg-offset-6 { - margin-left: 50%; - } - .col-lg-offset-5 { - margin-left: 41.66666667%; - } - .col-lg-offset-4 { - margin-left: 33.33333333%; - } - .col-lg-offset-3 { - margin-left: 25%; - } - .col-lg-offset-2 { - margin-left: 16.66666667%; - } - .col-lg-offset-1 { - margin-left: 8.33333333%; - } - .col-lg-offset-0 { - margin-left: 0; - } -} -table { - background-color: transparent; -} -caption { - padding-top: 8px; - padding-bottom: 8px; - color: #777; - text-align: left; -} -th { - text-align: left; -} -.table { - width: 100%; - max-width: 100%; - margin-bottom: 20px; -} -.table > thead > tr > th, -.table > tbody > tr > th, -.table > tfoot > tr > th, -.table > thead > tr > td, -.table > tbody > tr > td, -.table > tfoot > tr > td { - padding: 8px; - line-height: 1.42857143; - vertical-align: top; - border-top: 1px solid #ddd; -} -.table > thead > tr > th { - vertical-align: bottom; - border-bottom: 2px solid #ddd; -} -.table > caption + thead > tr:first-child > th, -.table > colgroup + thead > tr:first-child > th, -.table > thead:first-child > tr:first-child > th, -.table > caption + thead > tr:first-child > td, -.table > colgroup + thead > tr:first-child > td, -.table > thead:first-child > tr:first-child > td { - border-top: 0; -} -.table > tbody + tbody { - border-top: 2px solid #ddd; -} -.table .table { - background-color: #fff; -} -.table-condensed > thead > tr > th, -.table-condensed > tbody > tr > th, -.table-condensed > tfoot > tr > th, -.table-condensed > thead > tr > td, -.table-condensed > tbody > tr > td, -.table-condensed > tfoot > tr > td { - padding: 5px; -} -.table-bordered { - border: 1px solid #ddd; -} -.table-bordered > thead > tr > th, -.table-bordered > tbody > tr > th, -.table-bordered > tfoot > tr > th, -.table-bordered > thead > tr > td, -.table-bordered > tbody > tr > td, -.table-bordered > tfoot > tr > td { - border: 1px solid #ddd; -} -.table-bordered > thead > tr > th, -.table-bordered > thead > tr > td { - border-bottom-width: 2px; -} -.table-striped > tbody > tr:nth-of-type(odd) { - background-color: #f9f9f9; -} -.table-hover > tbody > tr:hover { - background-color: #f5f5f5; -} -table col[class*="col-"] { - position: static; - display: table-column; - float: none; -} -table td[class*="col-"], -table th[class*="col-"] { - position: static; - display: table-cell; - float: none; -} -.table > thead > tr > td.active, -.table > tbody > tr > td.active, -.table > tfoot > tr > td.active, -.table > thead > tr > th.active, -.table > tbody > tr > th.active, -.table > tfoot > tr > th.active, -.table > thead > tr.active > td, -.table > tbody > tr.active > td, -.table > tfoot > tr.active > td, -.table > thead > tr.active > th, -.table > tbody > tr.active > th, -.table > tfoot > tr.active > th { - background-color: #f5f5f5; -} -.table-hover > tbody > tr > td.active:hover, -.table-hover > tbody > tr > th.active:hover, -.table-hover > tbody > tr.active:hover > td, -.table-hover > tbody > tr:hover > .active, -.table-hover > tbody > tr.active:hover > th { - background-color: #e8e8e8; -} -.table > thead > tr > td.success, -.table > tbody > tr > td.success, -.table > tfoot > tr > td.success, -.table > thead > tr > th.success, -.table > tbody > tr > th.success, -.table > tfoot > tr > th.success, -.table > thead > tr.success > td, -.table > tbody > tr.success > td, -.table > tfoot > tr.success > td, -.table > thead > tr.success > th, -.table > tbody > tr.success > th, -.table > tfoot > tr.success > th { - background-color: #dff0d8; -} -.table-hover > tbody > tr > td.success:hover, -.table-hover > tbody > tr > th.success:hover, -.table-hover > tbody > tr.success:hover > td, -.table-hover > tbody > tr:hover > .success, -.table-hover > tbody > tr.success:hover > th { - background-color: #d0e9c6; -} -.table > thead > tr > td.info, -.table > tbody > tr > td.info, -.table > tfoot > tr > td.info, -.table > thead > tr > th.info, -.table > tbody > tr > th.info, -.table > tfoot > tr > th.info, -.table > thead > tr.info > td, -.table > tbody > tr.info > td, -.table > tfoot > tr.info > td, -.table > thead > tr.info > th, -.table > tbody > tr.info > th, -.table > tfoot > tr.info > th { - background-color: #d9edf7; -} -.table-hover > tbody > tr > td.info:hover, -.table-hover > tbody > tr > th.info:hover, -.table-hover > tbody > tr.info:hover > td, -.table-hover > tbody > tr:hover > .info, -.table-hover > tbody > tr.info:hover > th { - background-color: #c4e3f3; -} -.table > thead > tr > td.warning, -.table > tbody > tr > td.warning, -.table > tfoot > tr > td.warning, -.table > thead > tr > th.warning, -.table > tbody > tr > th.warning, -.table > tfoot > tr > th.warning, -.table > thead > tr.warning > td, -.table > tbody > tr.warning > td, -.table > tfoot > tr.warning > td, -.table > thead > tr.warning > th, -.table > tbody > tr.warning > th, -.table > tfoot > tr.warning > th { - background-color: #fcf8e3; -} -.table-hover > tbody > tr > td.warning:hover, -.table-hover > tbody > tr > th.warning:hover, -.table-hover > tbody > tr.warning:hover > td, -.table-hover > tbody > tr:hover > .warning, -.table-hover > tbody > tr.warning:hover > th { - background-color: #faf2cc; -} -.table > thead > tr > td.danger, -.table > tbody > tr > td.danger, -.table > tfoot > tr > td.danger, -.table > thead > tr > th.danger, -.table > tbody > tr > th.danger, -.table > tfoot > tr > th.danger, -.table > thead > tr.danger > td, -.table > tbody > tr.danger > td, -.table > tfoot > tr.danger > td, -.table > thead > tr.danger > th, -.table > tbody > tr.danger > th, -.table > tfoot > tr.danger > th { - background-color: #f2dede; -} -.table-hover > tbody > tr > td.danger:hover, -.table-hover > tbody > tr > th.danger:hover, -.table-hover > tbody > tr.danger:hover > td, -.table-hover > tbody > tr:hover > .danger, -.table-hover > tbody > tr.danger:hover > th { - background-color: #ebcccc; -} -.table-responsive { - min-height: .01%; - overflow-x: auto; -} -@media screen and (max-width: 767px) { - .table-responsive { - width: 100%; - margin-bottom: 15px; - overflow-y: hidden; - -ms-overflow-style: -ms-autohiding-scrollbar; - border: 1px solid #ddd; - } - .table-responsive > .table { - margin-bottom: 0; - } - .table-responsive > .table > thead > tr > th, - .table-responsive > .table > tbody > tr > th, - .table-responsive > .table > tfoot > tr > th, - .table-responsive > .table > thead > tr > td, - .table-responsive > .table > tbody > tr > td, - .table-responsive > .table > tfoot > tr > td { - white-space: nowrap; - } - .table-responsive > .table-bordered { - border: 0; - } - .table-responsive > .table-bordered > thead > tr > th:first-child, - .table-responsive > .table-bordered > tbody > tr > th:first-child, - .table-responsive > .table-bordered > tfoot > tr > th:first-child, - .table-responsive > .table-bordered > thead > tr > td:first-child, - .table-responsive > .table-bordered > tbody > tr > td:first-child, - .table-responsive > .table-bordered > tfoot > tr > td:first-child { - border-left: 0; - } - .table-responsive > .table-bordered > thead > tr > th:last-child, - .table-responsive > .table-bordered > tbody > tr > th:last-child, - .table-responsive > .table-bordered > tfoot > tr > th:last-child, - .table-responsive > .table-bordered > thead > tr > td:last-child, - .table-responsive > .table-bordered > tbody > tr > td:last-child, - .table-responsive > .table-bordered > tfoot > tr > td:last-child { - border-right: 0; - } - .table-responsive > .table-bordered > tbody > tr:last-child > th, - .table-responsive > .table-bordered > tfoot > tr:last-child > th, - .table-responsive > .table-bordered > tbody > tr:last-child > td, - .table-responsive > .table-bordered > tfoot > tr:last-child > td { - border-bottom: 0; - } -} -fieldset { - min-width: 0; - padding: 0; - margin: 0; - border: 0; -} -legend { - display: block; - width: 100%; - padding: 0; - margin-bottom: 20px; - font-size: 21px; - line-height: inherit; - color: #333; - border: 0; - border-bottom: 1px solid #e5e5e5; -} -label { - display: inline-block; - max-width: 100%; - margin-bottom: 5px; - font-weight: bold; -} -input[type="search"] { - -webkit-box-sizing: border-box; - -moz-box-sizing: border-box; - box-sizing: border-box; -} -input[type="radio"], -input[type="checkbox"] { - margin: 4px 0 0; - margin-top: 1px \9; - line-height: normal; -} -input[type="file"] { - display: block; -} -input[type="range"] { - display: block; - width: 100%; -} -select[multiple], -select[size] { - height: auto; -} -input[type="file"]:focus, -input[type="radio"]:focus, -input[type="checkbox"]:focus { - outline: 5px auto -webkit-focus-ring-color; - outline-offset: -2px; -} -output { - display: block; - padding-top: 7px; - font-size: 14px; - line-height: 1.42857143; - color: #555; -} -.form-control { - display: block; - width: 100%; - height: 34px; - padding: 6px 12px; - font-size: 14px; - line-height: 1.42857143; - color: #555; - background-color: #fff; - background-image: none; - border: 1px solid #ccc; - border-radius: 4px; - -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075); - box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075); - -webkit-transition: border-color ease-in-out .15s, -webkit-box-shadow ease-in-out .15s; - -o-transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s; - transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s; -} -.form-control:focus { - border-color: #66afe9; - outline: 0; - -webkit-box-shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(102, 175, 233, .6); - box-shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(102, 175, 233, .6); -} -.form-control::-moz-placeholder { - color: #999; - opacity: 1; -} -.form-control:-ms-input-placeholder { - color: #999; -} -.form-control::-webkit-input-placeholder { - color: #999; -} -.form-control::-ms-expand { - background-color: transparent; - border: 0; -} -.form-control[disabled], -.form-control[readonly], -fieldset[disabled] .form-control { - background-color: #eee; - opacity: 1; -} -.form-control[disabled], -fieldset[disabled] .form-control { - cursor: not-allowed; -} -textarea.form-control { - height: auto; -} -input[type="search"] { - -webkit-appearance: none; -} -@media screen and (-webkit-min-device-pixel-ratio: 0) { - input[type="date"].form-control, - input[type="time"].form-control, - input[type="datetime-local"].form-control, - input[type="month"].form-control { - line-height: 34px; - } - input[type="date"].input-sm, - input[type="time"].input-sm, - input[type="datetime-local"].input-sm, - input[type="month"].input-sm, - .input-group-sm input[type="date"], - .input-group-sm input[type="time"], - .input-group-sm input[type="datetime-local"], - .input-group-sm input[type="month"] { - line-height: 30px; - } - input[type="date"].input-lg, - input[type="time"].input-lg, - input[type="datetime-local"].input-lg, - input[type="month"].input-lg, - .input-group-lg input[type="date"], - .input-group-lg input[type="time"], - .input-group-lg input[type="datetime-local"], - .input-group-lg input[type="month"] { - line-height: 46px; - } -} -.form-group { - margin-bottom: 15px; -} -.radio, -.checkbox { - position: relative; - display: block; - margin-top: 10px; - margin-bottom: 10px; -} -.radio label, -.checkbox label { - min-height: 20px; - padding-left: 20px; - margin-bottom: 0; - font-weight: normal; - cursor: pointer; -} -.radio input[type="radio"], -.radio-inline input[type="radio"], -.checkbox input[type="checkbox"], -.checkbox-inline input[type="checkbox"] { - position: absolute; - margin-top: 4px \9; - margin-left: -20px; -} -.radio + .radio, -.checkbox + .checkbox { - margin-top: -5px; -} -.radio-inline, -.checkbox-inline { - position: relative; - display: inline-block; - padding-left: 20px; - margin-bottom: 0; - font-weight: normal; - vertical-align: middle; - cursor: pointer; -} -.radio-inline + .radio-inline, -.checkbox-inline + .checkbox-inline { - margin-top: 0; - margin-left: 10px; -} -input[type="radio"][disabled], -input[type="checkbox"][disabled], -input[type="radio"].disabled, -input[type="checkbox"].disabled, -fieldset[disabled] input[type="radio"], -fieldset[disabled] input[type="checkbox"] { - cursor: not-allowed; -} -.radio-inline.disabled, -.checkbox-inline.disabled, -fieldset[disabled] .radio-inline, -fieldset[disabled] .checkbox-inline { - cursor: not-allowed; -} -.radio.disabled label, -.checkbox.disabled label, -fieldset[disabled] .radio label, -fieldset[disabled] .checkbox label { - cursor: not-allowed; -} -.form-control-static { - min-height: 34px; - padding-top: 7px; - padding-bottom: 7px; - margin-bottom: 0; -} -.form-control-static.input-lg, -.form-control-static.input-sm { - padding-right: 0; - padding-left: 0; -} -.input-sm { - height: 30px; - padding: 5px 10px; - font-size: 12px; - line-height: 1.5; - border-radius: 3px; -} -select.input-sm { - height: 30px; - line-height: 30px; -} -textarea.input-sm, -select[multiple].input-sm { - height: auto; -} -.form-group-sm .form-control { - height: 30px; - padding: 5px 10px; - font-size: 12px; - line-height: 1.5; - border-radius: 3px; -} -.form-group-sm select.form-control { - height: 30px; - line-height: 30px; -} -.form-group-sm textarea.form-control, -.form-group-sm select[multiple].form-control { - height: auto; -} -.form-group-sm .form-control-static { - height: 30px; - min-height: 32px; - padding: 6px 10px; - font-size: 12px; - line-height: 1.5; -} -.input-lg { - height: 46px; - padding: 10px 16px; - font-size: 18px; - line-height: 1.3333333; - border-radius: 6px; -} -select.input-lg { - height: 46px; - line-height: 46px; -} -textarea.input-lg, -select[multiple].input-lg { - height: auto; -} -.form-group-lg .form-control { - height: 46px; - padding: 10px 16px; - font-size: 18px; - line-height: 1.3333333; - border-radius: 6px; -} -.form-group-lg select.form-control { - height: 46px; - line-height: 46px; -} -.form-group-lg textarea.form-control, -.form-group-lg select[multiple].form-control { - height: auto; -} -.form-group-lg .form-control-static { - height: 46px; - min-height: 38px; - padding: 11px 16px; - font-size: 18px; - line-height: 1.3333333; -} -.has-feedback { - position: relative; -} -.has-feedback .form-control { - padding-right: 42.5px; -} -.form-control-feedback { - position: absolute; - top: 0; - right: 0; - z-index: 2; - display: block; - width: 34px; - height: 34px; - line-height: 34px; - text-align: center; - pointer-events: none; -} -.input-lg + .form-control-feedback, -.input-group-lg + .form-control-feedback, -.form-group-lg .form-control + .form-control-feedback { - width: 46px; - height: 46px; - line-height: 46px; -} -.input-sm + .form-control-feedback, -.input-group-sm + .form-control-feedback, -.form-group-sm .form-control + .form-control-feedback { - width: 30px; - height: 30px; - line-height: 30px; -} -.has-success .help-block, -.has-success .control-label, -.has-success .radio, -.has-success .checkbox, -.has-success .radio-inline, -.has-success .checkbox-inline, -.has-success.radio label, -.has-success.checkbox label, -.has-success.radio-inline label, -.has-success.checkbox-inline label { - color: #3c763d; -} -.has-success .form-control { - border-color: #3c763d; - -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075); - box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075); -} -.has-success .form-control:focus { - border-color: #2b542c; - -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075), 0 0 6px #67b168; - box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075), 0 0 6px #67b168; -} -.has-success .input-group-addon { - color: #3c763d; - background-color: #dff0d8; - border-color: #3c763d; -} -.has-success .form-control-feedback { - color: #3c763d; -} -.has-warning .help-block, -.has-warning .control-label, -.has-warning .radio, -.has-warning .checkbox, -.has-warning .radio-inline, -.has-warning .checkbox-inline, -.has-warning.radio label, -.has-warning.checkbox label, -.has-warning.radio-inline label, -.has-warning.checkbox-inline label { - color: #8a6d3b; -} -.has-warning .form-control { - border-color: #8a6d3b; - -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075); - box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075); -} -.has-warning .form-control:focus { - border-color: #66512c; - -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075), 0 0 6px #c0a16b; - box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075), 0 0 6px #c0a16b; -} -.has-warning .input-group-addon { - color: #8a6d3b; - background-color: #fcf8e3; - border-color: #8a6d3b; -} -.has-warning .form-control-feedback { - color: #8a6d3b; -} -.has-error .help-block, -.has-error .control-label, -.has-error .radio, -.has-error .checkbox, -.has-error .radio-inline, -.has-error .checkbox-inline, -.has-error.radio label, -.has-error.checkbox label, -.has-error.radio-inline label, -.has-error.checkbox-inline label { - color: #a94442; -} -.has-error .form-control { - border-color: #a94442; - -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075); - box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075); -} -.has-error .form-control:focus { - border-color: #843534; - -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075), 0 0 6px #ce8483; - box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075), 0 0 6px #ce8483; -} -.has-error .input-group-addon { - color: #a94442; - background-color: #f2dede; - border-color: #a94442; -} -.has-error .form-control-feedback { - color: #a94442; -} -.has-feedback label ~ .form-control-feedback { - top: 25px; -} -.has-feedback label.sr-only ~ .form-control-feedback { - top: 0; -} -.help-block { - display: block; - margin-top: 5px; - margin-bottom: 10px; - color: #737373; -} -@media (min-width: 768px) { - .form-inline .form-group { - display: inline-block; - margin-bottom: 0; - vertical-align: middle; - } - .form-inline .form-control { - display: inline-block; - width: auto; - vertical-align: middle; - } - .form-inline .form-control-static { - display: inline-block; - } - .form-inline .input-group { - display: inline-table; - vertical-align: middle; - } - .form-inline .input-group .input-group-addon, - .form-inline .input-group .input-group-btn, - .form-inline .input-group .form-control { - width: auto; - } - .form-inline .input-group > .form-control { - width: 100%; - } - .form-inline .control-label { - margin-bottom: 0; - vertical-align: middle; - } - .form-inline .radio, - .form-inline .checkbox { - display: inline-block; - margin-top: 0; - margin-bottom: 0; - vertical-align: middle; - } - .form-inline .radio label, - .form-inline .checkbox label { - padding-left: 0; - } - .form-inline .radio input[type="radio"], - .form-inline .checkbox input[type="checkbox"] { - position: relative; - margin-left: 0; - } - .form-inline .has-feedback .form-control-feedback { - top: 0; - } -} -.form-horizontal .radio, -.form-horizontal .checkbox, -.form-horizontal .radio-inline, -.form-horizontal .checkbox-inline { - padding-top: 7px; - margin-top: 0; - margin-bottom: 0; -} -.form-horizontal .radio, -.form-horizontal .checkbox { - min-height: 27px; -} -.form-horizontal .form-group { - margin-right: -15px; - margin-left: -15px; -} -@media (min-width: 768px) { - .form-horizontal .control-label { - padding-top: 7px; - margin-bottom: 0; - text-align: right; - } -} -.form-horizontal .has-feedback .form-control-feedback { - right: 15px; -} -@media (min-width: 768px) { - .form-horizontal .form-group-lg .control-label { - padding-top: 11px; - font-size: 18px; - } -} -@media (min-width: 768px) { - .form-horizontal .form-group-sm .control-label { - padding-top: 6px; - font-size: 12px; - } -} -.btn { - display: inline-block; - padding: 6px 12px; - margin-bottom: 0; - font-size: 14px; - font-weight: normal; - line-height: 1.42857143; - text-align: center; - white-space: nowrap; - vertical-align: middle; - -ms-touch-action: manipulation; - touch-action: manipulation; - cursor: pointer; - -webkit-user-select: none; - -moz-user-select: none; - -ms-user-select: none; - user-select: none; - background-image: none; - border: 1px solid transparent; - border-radius: 4px; -} -.btn:focus, -.btn:active:focus, -.btn.active:focus, -.btn.focus, -.btn:active.focus, -.btn.active.focus { - outline: 5px auto -webkit-focus-ring-color; - outline-offset: -2px; -} -.btn:hover, -.btn:focus, -.btn.focus { - color: #333; - text-decoration: none; -} -.btn:active, -.btn.active { - background-image: none; - outline: 0; - -webkit-box-shadow: inset 0 3px 5px rgba(0, 0, 0, .125); - box-shadow: inset 0 3px 5px rgba(0, 0, 0, .125); -} -.btn.disabled, -.btn[disabled], -fieldset[disabled] .btn { - cursor: not-allowed; - filter: alpha(opacity=65); - -webkit-box-shadow: none; - box-shadow: none; - opacity: .65; -} -a.btn.disabled, -fieldset[disabled] a.btn { - pointer-events: none; -} -.btn-default { - color: #333; - background-color: #fff; - border-color: #ccc; -} -.btn-default:focus, -.btn-default.focus { - color: #333; - background-color: #e6e6e6; - border-color: #8c8c8c; -} -.btn-default:hover { - color: #333; - background-color: #e6e6e6; - border-color: #adadad; -} -.btn-default:active, -.btn-default.active, -.open > .dropdown-toggle.btn-default { - color: #333; - background-color: #e6e6e6; - border-color: #adadad; -} -.btn-default:active:hover, -.btn-default.active:hover, -.open > .dropdown-toggle.btn-default:hover, -.btn-default:active:focus, -.btn-default.active:focus, -.open > .dropdown-toggle.btn-default:focus, -.btn-default:active.focus, -.btn-default.active.focus, -.open > .dropdown-toggle.btn-default.focus { - color: #333; - background-color: #d4d4d4; - border-color: #8c8c8c; -} -.btn-default:active, -.btn-default.active, -.open > .dropdown-toggle.btn-default { - background-image: none; -} -.btn-default.disabled:hover, -.btn-default[disabled]:hover, -fieldset[disabled] .btn-default:hover, -.btn-default.disabled:focus, -.btn-default[disabled]:focus, -fieldset[disabled] .btn-default:focus, -.btn-default.disabled.focus, -.btn-default[disabled].focus, -fieldset[disabled] .btn-default.focus { - background-color: #fff; - border-color: #ccc; -} -.btn-default .badge { - color: #fff; - background-color: #333; -} -.btn-primary { - color: #fff; - background-color: #337ab7; - border-color: #2e6da4; -} -.btn-primary:focus, -.btn-primary.focus { - color: #fff; - background-color: #286090; - border-color: #122b40; -} -.btn-primary:hover { - color: #fff; - background-color: #286090; - border-color: #204d74; -} -.btn-primary:active, -.btn-primary.active, -.open > .dropdown-toggle.btn-primary { - color: #fff; - background-color: #286090; - border-color: #204d74; -} -.btn-primary:active:hover, -.btn-primary.active:hover, -.open > .dropdown-toggle.btn-primary:hover, -.btn-primary:active:focus, -.btn-primary.active:focus, -.open > .dropdown-toggle.btn-primary:focus, -.btn-primary:active.focus, -.btn-primary.active.focus, -.open > .dropdown-toggle.btn-primary.focus { - color: #fff; - background-color: #204d74; - border-color: #122b40; -} -.btn-primary:active, -.btn-primary.active, -.open > .dropdown-toggle.btn-primary { - background-image: none; -} -.btn-primary.disabled:hover, -.btn-primary[disabled]:hover, -fieldset[disabled] .btn-primary:hover, -.btn-primary.disabled:focus, -.btn-primary[disabled]:focus, -fieldset[disabled] .btn-primary:focus, -.btn-primary.disabled.focus, -.btn-primary[disabled].focus, -fieldset[disabled] .btn-primary.focus { - background-color: #337ab7; - border-color: #2e6da4; -} -.btn-primary .badge { - color: #337ab7; - background-color: #fff; -} -.btn-success { - color: #fff; - background-color: #5cb85c; - border-color: #4cae4c; -} -.btn-success:focus, -.btn-success.focus { - color: #fff; - background-color: #449d44; - border-color: #255625; -} -.btn-success:hover { - color: #fff; - background-color: #449d44; - border-color: #398439; -} -.btn-success:active, -.btn-success.active, -.open > .dropdown-toggle.btn-success { - color: #fff; - background-color: #449d44; - border-color: #398439; -} -.btn-success:active:hover, -.btn-success.active:hover, -.open > .dropdown-toggle.btn-success:hover, -.btn-success:active:focus, -.btn-success.active:focus, -.open > .dropdown-toggle.btn-success:focus, -.btn-success:active.focus, -.btn-success.active.focus, -.open > .dropdown-toggle.btn-success.focus { - color: #fff; - background-color: #398439; - border-color: #255625; -} -.btn-success:active, -.btn-success.active, -.open > .dropdown-toggle.btn-success { - background-image: none; -} -.btn-success.disabled:hover, -.btn-success[disabled]:hover, -fieldset[disabled] .btn-success:hover, -.btn-success.disabled:focus, -.btn-success[disabled]:focus, -fieldset[disabled] .btn-success:focus, -.btn-success.disabled.focus, -.btn-success[disabled].focus, -fieldset[disabled] .btn-success.focus { - background-color: #5cb85c; - border-color: #4cae4c; -} -.btn-success .badge { - color: #5cb85c; - background-color: #fff; -} -.btn-info { - color: #fff; - background-color: #5bc0de; - border-color: #46b8da; -} -.btn-info:focus, -.btn-info.focus { - color: #fff; - background-color: #31b0d5; - border-color: #1b6d85; -} -.btn-info:hover { - color: #fff; - background-color: #31b0d5; - border-color: #269abc; -} -.btn-info:active, -.btn-info.active, -.open > .dropdown-toggle.btn-info { - color: #fff; - background-color: #31b0d5; - border-color: #269abc; -} -.btn-info:active:hover, -.btn-info.active:hover, -.open > .dropdown-toggle.btn-info:hover, -.btn-info:active:focus, -.btn-info.active:focus, -.open > .dropdown-toggle.btn-info:focus, -.btn-info:active.focus, -.btn-info.active.focus, -.open > .dropdown-toggle.btn-info.focus { - color: #fff; - background-color: #269abc; - border-color: #1b6d85; -} -.btn-info:active, -.btn-info.active, -.open > .dropdown-toggle.btn-info { - background-image: none; -} -.btn-info.disabled:hover, -.btn-info[disabled]:hover, -fieldset[disabled] .btn-info:hover, -.btn-info.disabled:focus, -.btn-info[disabled]:focus, -fieldset[disabled] .btn-info:focus, -.btn-info.disabled.focus, -.btn-info[disabled].focus, -fieldset[disabled] .btn-info.focus { - background-color: #5bc0de; - border-color: #46b8da; -} -.btn-info .badge { - color: #5bc0de; - background-color: #fff; -} -.btn-warning { - color: #fff; - background-color: #f0ad4e; - border-color: #eea236; -} -.btn-warning:focus, -.btn-warning.focus { - color: #fff; - background-color: #ec971f; - border-color: #985f0d; -} -.btn-warning:hover { - color: #fff; - background-color: #ec971f; - border-color: #d58512; -} -.btn-warning:active, -.btn-warning.active, -.open > .dropdown-toggle.btn-warning { - color: #fff; - background-color: #ec971f; - border-color: #d58512; -} -.btn-warning:active:hover, -.btn-warning.active:hover, -.open > .dropdown-toggle.btn-warning:hover, -.btn-warning:active:focus, -.btn-warning.active:focus, -.open > .dropdown-toggle.btn-warning:focus, -.btn-warning:active.focus, -.btn-warning.active.focus, -.open > .dropdown-toggle.btn-warning.focus { - color: #fff; - background-color: #d58512; - border-color: #985f0d; -} -.btn-warning:active, -.btn-warning.active, -.open > .dropdown-toggle.btn-warning { - background-image: none; -} -.btn-warning.disabled:hover, -.btn-warning[disabled]:hover, -fieldset[disabled] .btn-warning:hover, -.btn-warning.disabled:focus, -.btn-warning[disabled]:focus, -fieldset[disabled] .btn-warning:focus, -.btn-warning.disabled.focus, -.btn-warning[disabled].focus, -fieldset[disabled] .btn-warning.focus { - background-color: #f0ad4e; - border-color: #eea236; -} -.btn-warning .badge { - color: #f0ad4e; - background-color: #fff; -} -.btn-danger { - color: #fff; - background-color: #d9534f; - border-color: #d43f3a; -} -.btn-danger:focus, -.btn-danger.focus { - color: #fff; - background-color: #c9302c; - border-color: #761c19; -} -.btn-danger:hover { - color: #fff; - background-color: #c9302c; - border-color: #ac2925; -} -.btn-danger:active, -.btn-danger.active, -.open > .dropdown-toggle.btn-danger { - color: #fff; - background-color: #c9302c; - border-color: #ac2925; -} -.btn-danger:active:hover, -.btn-danger.active:hover, -.open > .dropdown-toggle.btn-danger:hover, -.btn-danger:active:focus, -.btn-danger.active:focus, -.open > .dropdown-toggle.btn-danger:focus, -.btn-danger:active.focus, -.btn-danger.active.focus, -.open > .dropdown-toggle.btn-danger.focus { - color: #fff; - background-color: #ac2925; - border-color: #761c19; -} -.btn-danger:active, -.btn-danger.active, -.open > .dropdown-toggle.btn-danger { - background-image: none; -} -.btn-danger.disabled:hover, -.btn-danger[disabled]:hover, -fieldset[disabled] .btn-danger:hover, -.btn-danger.disabled:focus, -.btn-danger[disabled]:focus, -fieldset[disabled] .btn-danger:focus, -.btn-danger.disabled.focus, -.btn-danger[disabled].focus, -fieldset[disabled] .btn-danger.focus { - background-color: #d9534f; - border-color: #d43f3a; -} -.btn-danger .badge { - color: #d9534f; - background-color: #fff; -} -.btn-link { - font-weight: normal; - color: #337ab7; - border-radius: 0; -} -.btn-link, -.btn-link:active, -.btn-link.active, -.btn-link[disabled], -fieldset[disabled] .btn-link { - background-color: transparent; - -webkit-box-shadow: none; - box-shadow: none; -} -.btn-link, -.btn-link:hover, -.btn-link:focus, -.btn-link:active { - border-color: transparent; -} -.btn-link:hover, -.btn-link:focus { - color: #23527c; - text-decoration: underline; - background-color: transparent; -} -.btn-link[disabled]:hover, -fieldset[disabled] .btn-link:hover, -.btn-link[disabled]:focus, -fieldset[disabled] .btn-link:focus { - color: #777; - text-decoration: none; -} -.btn-lg, -.btn-group-lg > .btn { - padding: 10px 16px; - font-size: 18px; - line-height: 1.3333333; - border-radius: 6px; -} -.btn-sm, -.btn-group-sm > .btn { - padding: 5px 10px; - font-size: 12px; - line-height: 1.5; - border-radius: 3px; -} -.btn-xs, -.btn-group-xs > .btn { - padding: 1px 5px; - font-size: 12px; - line-height: 1.5; - border-radius: 3px; -} -.btn-block { - display: block; - width: 100%; -} -.btn-block + .btn-block { - margin-top: 5px; -} -input[type="submit"].btn-block, -input[type="reset"].btn-block, -input[type="button"].btn-block { - width: 100%; -} -.fade { - opacity: 0; - -webkit-transition: opacity .15s linear; - -o-transition: opacity .15s linear; - transition: opacity .15s linear; -} -.fade.in { - opacity: 1; -} -.collapse { - display: none; -} -.collapse.in { - display: block; -} -tr.collapse.in { - display: table-row; -} -tbody.collapse.in { - display: table-row-group; -} -.collapsing { - position: relative; - height: 0; - overflow: hidden; - -webkit-transition-timing-function: ease; - -o-transition-timing-function: ease; - transition-timing-function: ease; - -webkit-transition-duration: .35s; - -o-transition-duration: .35s; - transition-duration: .35s; - -webkit-transition-property: height, visibility; - -o-transition-property: height, visibility; - transition-property: height, visibility; -} -.caret { - display: inline-block; - width: 0; - height: 0; - margin-left: 2px; - vertical-align: middle; - border-top: 4px dashed; - border-top: 4px solid \9; - border-right: 4px solid transparent; - border-left: 4px solid transparent; -} -.dropup, -.dropdown { - position: relative; -} -.dropdown-toggle:focus { - outline: 0; -} -.dropdown-menu { - position: absolute; - top: 100%; - left: 0; - z-index: 1000; - display: none; - float: left; - min-width: 160px; - padding: 5px 0; - margin: 2px 0 0; - font-size: 14px; - text-align: left; - list-style: none; - background-color: #fff; - -webkit-background-clip: padding-box; - background-clip: padding-box; - border: 1px solid #ccc; - border: 1px solid rgba(0, 0, 0, .15); - border-radius: 4px; - -webkit-box-shadow: 0 6px 12px rgba(0, 0, 0, .175); - box-shadow: 0 6px 12px rgba(0, 0, 0, .175); -} -.dropdown-menu.pull-right { - right: 0; - left: auto; -} -.dropdown-menu .divider { - height: 1px; - margin: 9px 0; - overflow: hidden; - background-color: #e5e5e5; -} -.dropdown-menu > li > a { - display: block; - padding: 3px 20px; - clear: both; - font-weight: normal; - line-height: 1.42857143; - color: #333; - white-space: nowrap; -} -.dropdown-menu > li > a:hover, -.dropdown-menu > li > a:focus { - color: #262626; - text-decoration: none; - background-color: #f5f5f5; -} -.dropdown-menu > .active > a, -.dropdown-menu > .active > a:hover, -.dropdown-menu > .active > a:focus { - color: #fff; - text-decoration: none; - background-color: #337ab7; - outline: 0; -} -.dropdown-menu > .disabled > a, -.dropdown-menu > .disabled > a:hover, -.dropdown-menu > .disabled > a:focus { - color: #777; -} -.dropdown-menu > .disabled > a:hover, -.dropdown-menu > .disabled > a:focus { - text-decoration: none; - cursor: not-allowed; - background-color: transparent; - background-image: none; - filter: progid:DXImageTransform.Microsoft.gradient(enabled = false); -} -.open > .dropdown-menu { - display: block; -} -.open > a { - outline: 0; -} -.dropdown-menu-right { - right: 0; - left: auto; -} -.dropdown-menu-left { - right: auto; - left: 0; -} -.dropdown-header { - display: block; - padding: 3px 20px; - font-size: 12px; - line-height: 1.42857143; - color: #777; - white-space: nowrap; -} -.dropdown-backdrop { - position: fixed; - top: 0; - right: 0; - bottom: 0; - left: 0; - z-index: 990; -} -.pull-right > .dropdown-menu { - right: 0; - left: auto; -} -.dropup .caret, -.navbar-fixed-bottom .dropdown .caret { - content: ""; - border-top: 0; - border-bottom: 4px dashed; - border-bottom: 4px solid \9; -} -.dropup .dropdown-menu, -.navbar-fixed-bottom .dropdown .dropdown-menu { - top: auto; - bottom: 100%; - margin-bottom: 2px; -} -@media (min-width: 768px) { - .navbar-right .dropdown-menu { - right: 0; - left: auto; - } - .navbar-right .dropdown-menu-left { - right: auto; - left: 0; - } -} -.btn-group, -.btn-group-vertical { - position: relative; - display: inline-block; - vertical-align: middle; -} -.btn-group > .btn, -.btn-group-vertical > .btn { - position: relative; - float: left; -} -.btn-group > .btn:hover, -.btn-group-vertical > .btn:hover, -.btn-group > .btn:focus, -.btn-group-vertical > .btn:focus, -.btn-group > .btn:active, -.btn-group-vertical > .btn:active, -.btn-group > .btn.active, -.btn-group-vertical > .btn.active { - z-index: 2; -} -.btn-group .btn + .btn, -.btn-group .btn + .btn-group, -.btn-group .btn-group + .btn, -.btn-group .btn-group + .btn-group { - margin-left: -1px; -} -.btn-toolbar { - margin-left: -5px; -} -.btn-toolbar .btn, -.btn-toolbar .btn-group, -.btn-toolbar .input-group { - float: left; -} -.btn-toolbar > .btn, -.btn-toolbar > .btn-group, -.btn-toolbar > .input-group { - margin-left: 5px; -} -.btn-group > .btn:not(:first-child):not(:last-child):not(.dropdown-toggle) { - border-radius: 0; -} -.btn-group > .btn:first-child { - margin-left: 0; -} -.btn-group > .btn:first-child:not(:last-child):not(.dropdown-toggle) { - border-top-right-radius: 0; - border-bottom-right-radius: 0; -} -.btn-group > .btn:last-child:not(:first-child), -.btn-group > .dropdown-toggle:not(:first-child) { - border-top-left-radius: 0; - border-bottom-left-radius: 0; -} -.btn-group > .btn-group { - float: left; -} -.btn-group > .btn-group:not(:first-child):not(:last-child) > .btn { - border-radius: 0; -} -.btn-group > .btn-group:first-child:not(:last-child) > .btn:last-child, -.btn-group > .btn-group:first-child:not(:last-child) > .dropdown-toggle { - border-top-right-radius: 0; - border-bottom-right-radius: 0; -} -.btn-group > .btn-group:last-child:not(:first-child) > .btn:first-child { - border-top-left-radius: 0; - border-bottom-left-radius: 0; -} -.btn-group .dropdown-toggle:active, -.btn-group.open .dropdown-toggle { - outline: 0; -} -.btn-group > .btn + .dropdown-toggle { - padding-right: 8px; - padding-left: 8px; -} -.btn-group > .btn-lg + .dropdown-toggle { - padding-right: 12px; - padding-left: 12px; -} -.btn-group.open .dropdown-toggle { - -webkit-box-shadow: inset 0 3px 5px rgba(0, 0, 0, .125); - box-shadow: inset 0 3px 5px rgba(0, 0, 0, .125); -} -.btn-group.open .dropdown-toggle.btn-link { - -webkit-box-shadow: none; - box-shadow: none; -} -.btn .caret { - margin-left: 0; -} -.btn-lg .caret { - border-width: 5px 5px 0; - border-bottom-width: 0; -} -.dropup .btn-lg .caret { - border-width: 0 5px 5px; -} -.btn-group-vertical > .btn, -.btn-group-vertical > .btn-group, -.btn-group-vertical > .btn-group > .btn { - display: block; - float: none; - width: 100%; - max-width: 100%; -} -.btn-group-vertical > .btn-group > .btn { - float: none; -} -.btn-group-vertical > .btn + .btn, -.btn-group-vertical > .btn + .btn-group, -.btn-group-vertical > .btn-group + .btn, -.btn-group-vertical > .btn-group + .btn-group { - margin-top: -1px; - margin-left: 0; -} -.btn-group-vertical > .btn:not(:first-child):not(:last-child) { - border-radius: 0; -} -.btn-group-vertical > .btn:first-child:not(:last-child) { - border-top-left-radius: 4px; - border-top-right-radius: 4px; - border-bottom-right-radius: 0; - border-bottom-left-radius: 0; -} -.btn-group-vertical > .btn:last-child:not(:first-child) { - border-top-left-radius: 0; - border-top-right-radius: 0; - border-bottom-right-radius: 4px; - border-bottom-left-radius: 4px; -} -.btn-group-vertical > .btn-group:not(:first-child):not(:last-child) > .btn { - border-radius: 0; -} -.btn-group-vertical > .btn-group:first-child:not(:last-child) > .btn:last-child, -.btn-group-vertical > .btn-group:first-child:not(:last-child) > .dropdown-toggle { - border-bottom-right-radius: 0; - border-bottom-left-radius: 0; -} -.btn-group-vertical > .btn-group:last-child:not(:first-child) > .btn:first-child { - border-top-left-radius: 0; - border-top-right-radius: 0; -} -.btn-group-justified { - display: table; - width: 100%; - table-layout: fixed; - border-collapse: separate; -} -.btn-group-justified > .btn, -.btn-group-justified > .btn-group { - display: table-cell; - float: none; - width: 1%; -} -.btn-group-justified > .btn-group .btn { - width: 100%; -} -.btn-group-justified > .btn-group .dropdown-menu { - left: auto; -} -[data-toggle="buttons"] > .btn input[type="radio"], -[data-toggle="buttons"] > .btn-group > .btn input[type="radio"], -[data-toggle="buttons"] > .btn input[type="checkbox"], -[data-toggle="buttons"] > .btn-group > .btn input[type="checkbox"] { - position: absolute; - clip: rect(0, 0, 0, 0); - pointer-events: none; -} -.input-group { - position: relative; - display: table; - border-collapse: separate; -} -.input-group[class*="col-"] { - float: none; - padding-right: 0; - padding-left: 0; -} -.input-group .form-control { - position: relative; - z-index: 2; - float: left; - width: 100%; - margin-bottom: 0; -} -.input-group .form-control:focus { - z-index: 3; -} -.input-group-lg > .form-control, -.input-group-lg > .input-group-addon, -.input-group-lg > .input-group-btn > .btn { - height: 46px; - padding: 10px 16px; - font-size: 18px; - line-height: 1.3333333; - border-radius: 6px; -} -select.input-group-lg > .form-control, -select.input-group-lg > .input-group-addon, -select.input-group-lg > .input-group-btn > .btn { - height: 46px; - line-height: 46px; -} -textarea.input-group-lg > .form-control, -textarea.input-group-lg > .input-group-addon, -textarea.input-group-lg > .input-group-btn > .btn, -select[multiple].input-group-lg > .form-control, -select[multiple].input-group-lg > .input-group-addon, -select[multiple].input-group-lg > .input-group-btn > .btn { - height: auto; -} -.input-group-sm > .form-control, -.input-group-sm > .input-group-addon, -.input-group-sm > .input-group-btn > .btn { - height: 30px; - padding: 5px 10px; - font-size: 12px; - line-height: 1.5; - border-radius: 3px; -} -select.input-group-sm > .form-control, -select.input-group-sm > .input-group-addon, -select.input-group-sm > .input-group-btn > .btn { - height: 30px; - line-height: 30px; -} -textarea.input-group-sm > .form-control, -textarea.input-group-sm > .input-group-addon, -textarea.input-group-sm > .input-group-btn > .btn, -select[multiple].input-group-sm > .form-control, -select[multiple].input-group-sm > .input-group-addon, -select[multiple].input-group-sm > .input-group-btn > .btn { - height: auto; -} -.input-group-addon, -.input-group-btn, -.input-group .form-control { - display: table-cell; -} -.input-group-addon:not(:first-child):not(:last-child), -.input-group-btn:not(:first-child):not(:last-child), -.input-group .form-control:not(:first-child):not(:last-child) { - border-radius: 0; -} -.input-group-addon, -.input-group-btn { - width: 1%; - white-space: nowrap; - vertical-align: middle; -} -.input-group-addon { - padding: 6px 12px; - font-size: 14px; - font-weight: normal; - line-height: 1; - color: #555; - text-align: center; - background-color: #eee; - border: 1px solid #ccc; - border-radius: 4px; -} -.input-group-addon.input-sm { - padding: 5px 10px; - font-size: 12px; - border-radius: 3px; -} -.input-group-addon.input-lg { - padding: 10px 16px; - font-size: 18px; - border-radius: 6px; -} -.input-group-addon input[type="radio"], -.input-group-addon input[type="checkbox"] { - margin-top: 0; -} -.input-group .form-control:first-child, -.input-group-addon:first-child, -.input-group-btn:first-child > .btn, -.input-group-btn:first-child > .btn-group > .btn, -.input-group-btn:first-child > .dropdown-toggle, -.input-group-btn:last-child > .btn:not(:last-child):not(.dropdown-toggle), -.input-group-btn:last-child > .btn-group:not(:last-child) > .btn { - border-top-right-radius: 0; - border-bottom-right-radius: 0; -} -.input-group-addon:first-child { - border-right: 0; -} -.input-group .form-control:last-child, -.input-group-addon:last-child, -.input-group-btn:last-child > .btn, -.input-group-btn:last-child > .btn-group > .btn, -.input-group-btn:last-child > .dropdown-toggle, -.input-group-btn:first-child > .btn:not(:first-child), -.input-group-btn:first-child > .btn-group:not(:first-child) > .btn { - border-top-left-radius: 0; - border-bottom-left-radius: 0; -} -.input-group-addon:last-child { - border-left: 0; -} -.input-group-btn { - position: relative; - font-size: 0; - white-space: nowrap; -} -.input-group-btn > .btn { - position: relative; -} -.input-group-btn > .btn + .btn { - margin-left: -1px; -} -.input-group-btn > .btn:hover, -.input-group-btn > .btn:focus, -.input-group-btn > .btn:active { - z-index: 2; -} -.input-group-btn:first-child > .btn, -.input-group-btn:first-child > .btn-group { - margin-right: -1px; -} -.input-group-btn:last-child > .btn, -.input-group-btn:last-child > .btn-group { - z-index: 2; - margin-left: -1px; -} -.nav { - padding-left: 0; - margin-bottom: 0; - list-style: none; -} -.nav > li { - position: relative; - display: block; -} -.nav > li > a { - position: relative; - display: block; - padding: 10px 15px; -} -.nav > li > a:hover, -.nav > li > a:focus { - text-decoration: none; - background-color: #eee; -} -.nav > li.disabled > a { - color: #777; -} -.nav > li.disabled > a:hover, -.nav > li.disabled > a:focus { - color: #777; - text-decoration: none; - cursor: not-allowed; - background-color: transparent; -} -.nav .open > a, -.nav .open > a:hover, -.nav .open > a:focus { - background-color: #eee; - border-color: #337ab7; -} -.nav .nav-divider { - height: 1px; - margin: 9px 0; - overflow: hidden; - background-color: #e5e5e5; -} -.nav > li > a > img { - max-width: none; -} -.nav-tabs { - border-bottom: 1px solid #ddd; -} -.nav-tabs > li { - float: left; - margin-bottom: -1px; -} -.nav-tabs > li > a { - margin-right: 2px; - line-height: 1.42857143; - border: 1px solid transparent; - border-radius: 4px 4px 0 0; -} -.nav-tabs > li > a:hover { - border-color: #eee #eee #ddd; -} -.nav-tabs > li.active > a, -.nav-tabs > li.active > a:hover, -.nav-tabs > li.active > a:focus { - color: #555; - cursor: default; - background-color: #fff; - border: 1px solid #ddd; - border-bottom-color: transparent; -} -.nav-tabs.nav-justified { - width: 100%; - border-bottom: 0; -} -.nav-tabs.nav-justified > li { - float: none; -} -.nav-tabs.nav-justified > li > a { - margin-bottom: 5px; - text-align: center; -} -.nav-tabs.nav-justified > .dropdown .dropdown-menu { - top: auto; - left: auto; -} -@media (min-width: 768px) { - .nav-tabs.nav-justified > li { - display: table-cell; - width: 1%; - } - .nav-tabs.nav-justified > li > a { - margin-bottom: 0; - } -} -.nav-tabs.nav-justified > li > a { - margin-right: 0; - border-radius: 4px; -} -.nav-tabs.nav-justified > .active > a, -.nav-tabs.nav-justified > .active > a:hover, -.nav-tabs.nav-justified > .active > a:focus { - border: 1px solid #ddd; -} -@media (min-width: 768px) { - .nav-tabs.nav-justified > li > a { - border-bottom: 1px solid #ddd; - border-radius: 4px 4px 0 0; - } - .nav-tabs.nav-justified > .active > a, - .nav-tabs.nav-justified > .active > a:hover, - .nav-tabs.nav-justified > .active > a:focus { - border-bottom-color: #fff; - } -} -.nav-pills > li { - float: left; -} -.nav-pills > li > a { - border-radius: 4px; -} -.nav-pills > li + li { - margin-left: 2px; -} -.nav-pills > li.active > a, -.nav-pills > li.active > a:hover, -.nav-pills > li.active > a:focus { - color: #fff; - background-color: #337ab7; -} -.nav-stacked > li { - float: none; -} -.nav-stacked > li + li { - margin-top: 2px; - margin-left: 0; -} -.nav-justified { - width: 100%; -} -.nav-justified > li { - float: none; -} -.nav-justified > li > a { - margin-bottom: 5px; - text-align: center; -} -.nav-justified > .dropdown .dropdown-menu { - top: auto; - left: auto; -} -@media (min-width: 768px) { - .nav-justified > li { - display: table-cell; - width: 1%; - } - .nav-justified > li > a { - margin-bottom: 0; - } -} -.nav-tabs-justified { - border-bottom: 0; -} -.nav-tabs-justified > li > a { - margin-right: 0; - border-radius: 4px; -} -.nav-tabs-justified > .active > a, -.nav-tabs-justified > .active > a:hover, -.nav-tabs-justified > .active > a:focus { - border: 1px solid #ddd; -} -@media (min-width: 768px) { - .nav-tabs-justified > li > a { - border-bottom: 1px solid #ddd; - border-radius: 4px 4px 0 0; - } - .nav-tabs-justified > .active > a, - .nav-tabs-justified > .active > a:hover, - .nav-tabs-justified > .active > a:focus { - border-bottom-color: #fff; - } -} -.tab-content > .tab-pane { - display: none; -} -.tab-content > .active { - display: block; -} -.nav-tabs .dropdown-menu { - margin-top: -1px; - border-top-left-radius: 0; - border-top-right-radius: 0; -} -.navbar { - position: relative; - min-height: 50px; - margin-bottom: 20px; - border: 1px solid transparent; -} -@media (min-width: 768px) { - .navbar { - border-radius: 4px; - } -} -@media (min-width: 768px) { - .navbar-header { - float: left; - } -} -.navbar-collapse { - padding-right: 15px; - padding-left: 15px; - overflow-x: visible; - -webkit-overflow-scrolling: touch; - border-top: 1px solid transparent; - -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, .1); - box-shadow: inset 0 1px 0 rgba(255, 255, 255, .1); -} -.navbar-collapse.in { - overflow-y: auto; -} -@media (min-width: 768px) { - .navbar-collapse { - width: auto; - border-top: 0; - -webkit-box-shadow: none; - box-shadow: none; - } - .navbar-collapse.collapse { - display: block !important; - height: auto !important; - padding-bottom: 0; - overflow: visible !important; - } - .navbar-collapse.in { - overflow-y: visible; - } - .navbar-fixed-top .navbar-collapse, - .navbar-static-top .navbar-collapse, - .navbar-fixed-bottom .navbar-collapse { - padding-right: 0; - padding-left: 0; - } -} -.navbar-fixed-top .navbar-collapse, -.navbar-fixed-bottom .navbar-collapse { - max-height: 340px; -} -@media (max-device-width: 480px) and (orientation: landscape) { - .navbar-fixed-top .navbar-collapse, - .navbar-fixed-bottom .navbar-collapse { - max-height: 200px; - } -} -.container > .navbar-header, -.container-fluid > .navbar-header, -.container > .navbar-collapse, -.container-fluid > .navbar-collapse { - margin-right: -15px; - margin-left: -15px; -} -@media (min-width: 768px) { - .container > .navbar-header, - .container-fluid > .navbar-header, - .container > .navbar-collapse, - .container-fluid > .navbar-collapse { - margin-right: 0; - margin-left: 0; - } -} -.navbar-static-top { - z-index: 1000; - border-width: 0 0 1px; -} -@media (min-width: 768px) { - .navbar-static-top { - border-radius: 0; - } -} -.navbar-fixed-top, -.navbar-fixed-bottom { - position: fixed; - right: 0; - left: 0; - z-index: 1030; -} -@media (min-width: 768px) { - .navbar-fixed-top, - .navbar-fixed-bottom { - border-radius: 0; - } -} -.navbar-fixed-top { - top: 0; - border-width: 0 0 1px; -} -.navbar-fixed-bottom { - bottom: 0; - margin-bottom: 0; - border-width: 1px 0 0; -} -.navbar-brand { - float: left; - height: 50px; - padding: 15px 15px; - font-size: 18px; - line-height: 20px; -} -.navbar-brand:hover, -.navbar-brand:focus { - text-decoration: none; -} -.navbar-brand > img { - display: block; -} -@media (min-width: 768px) { - .navbar > .container .navbar-brand, - .navbar > .container-fluid .navbar-brand { - margin-left: -15px; - } -} -.navbar-toggle { - position: relative; - float: right; - padding: 9px 10px; - margin-top: 8px; - margin-right: 15px; - margin-bottom: 8px; - background-color: transparent; - background-image: none; - border: 1px solid transparent; - border-radius: 4px; -} -.navbar-toggle:focus { - outline: 0; -} -.navbar-toggle .icon-bar { - display: block; - width: 22px; - height: 2px; - border-radius: 1px; -} -.navbar-toggle .icon-bar + .icon-bar { - margin-top: 4px; -} -@media (min-width: 768px) { - .navbar-toggle { - display: none; - } -} -.navbar-nav { - margin: 7.5px -15px; -} -.navbar-nav > li > a { - padding-top: 10px; - padding-bottom: 10px; - line-height: 20px; -} -@media (max-width: 767px) { - .navbar-nav .open .dropdown-menu { - position: static; - float: none; - width: auto; - margin-top: 0; - background-color: transparent; - border: 0; - -webkit-box-shadow: none; - box-shadow: none; - } - .navbar-nav .open .dropdown-menu > li > a, - .navbar-nav .open .dropdown-menu .dropdown-header { - padding: 5px 15px 5px 25px; - } - .navbar-nav .open .dropdown-menu > li > a { - line-height: 20px; - } - .navbar-nav .open .dropdown-menu > li > a:hover, - .navbar-nav .open .dropdown-menu > li > a:focus { - background-image: none; - } -} -@media (min-width: 768px) { - .navbar-nav { - float: left; - margin: 0; - } - .navbar-nav > li { - float: left; - } - .navbar-nav > li > a { - padding-top: 15px; - padding-bottom: 15px; - } -} -.navbar-form { - padding: 10px 15px; - margin-top: 8px; - margin-right: -15px; - margin-bottom: 8px; - margin-left: -15px; - border-top: 1px solid transparent; - border-bottom: 1px solid transparent; - -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, .1), 0 1px 0 rgba(255, 255, 255, .1); - box-shadow: inset 0 1px 0 rgba(255, 255, 255, .1), 0 1px 0 rgba(255, 255, 255, .1); -} -@media (min-width: 768px) { - .navbar-form .form-group { - display: inline-block; - margin-bottom: 0; - vertical-align: middle; - } - .navbar-form .form-control { - display: inline-block; - width: auto; - vertical-align: middle; - } - .navbar-form .form-control-static { - display: inline-block; - } - .navbar-form .input-group { - display: inline-table; - vertical-align: middle; - } - .navbar-form .input-group .input-group-addon, - .navbar-form .input-group .input-group-btn, - .navbar-form .input-group .form-control { - width: auto; - } - .navbar-form .input-group > .form-control { - width: 100%; - } - .navbar-form .control-label { - margin-bottom: 0; - vertical-align: middle; - } - .navbar-form .radio, - .navbar-form .checkbox { - display: inline-block; - margin-top: 0; - margin-bottom: 0; - vertical-align: middle; - } - .navbar-form .radio label, - .navbar-form .checkbox label { - padding-left: 0; - } - .navbar-form .radio input[type="radio"], - .navbar-form .checkbox input[type="checkbox"] { - position: relative; - margin-left: 0; - } - .navbar-form .has-feedback .form-control-feedback { - top: 0; - } -} -@media (max-width: 767px) { - .navbar-form .form-group { - margin-bottom: 5px; - } - .navbar-form .form-group:last-child { - margin-bottom: 0; - } -} -@media (min-width: 768px) { - .navbar-form { - width: auto; - padding-top: 0; - padding-bottom: 0; - margin-right: 0; - margin-left: 0; - border: 0; - -webkit-box-shadow: none; - box-shadow: none; - } -} -.navbar-nav > li > .dropdown-menu { - margin-top: 0; - border-top-left-radius: 0; - border-top-right-radius: 0; -} -.navbar-fixed-bottom .navbar-nav > li > .dropdown-menu { - margin-bottom: 0; - border-top-left-radius: 4px; - border-top-right-radius: 4px; - border-bottom-right-radius: 0; - border-bottom-left-radius: 0; -} -.navbar-btn { - margin-top: 8px; - margin-bottom: 8px; -} -.navbar-btn.btn-sm { - margin-top: 10px; - margin-bottom: 10px; -} -.navbar-btn.btn-xs { - margin-top: 14px; - margin-bottom: 14px; -} -.navbar-text { - margin-top: 15px; - margin-bottom: 15px; -} -@media (min-width: 768px) { - .navbar-text { - float: left; - margin-right: 15px; - margin-left: 15px; - } -} -@media (min-width: 768px) { - .navbar-left { - float: left !important; - } - .navbar-right { - float: right !important; - margin-right: -15px; - } - .navbar-right ~ .navbar-right { - margin-right: 0; - } -} -.navbar-default { - background-color: #f8f8f8; - border-color: #e7e7e7; -} -.navbar-default .navbar-brand { - color: #777; -} -.navbar-default .navbar-brand:hover, -.navbar-default .navbar-brand:focus { - color: #5e5e5e; - background-color: transparent; -} -.navbar-default .navbar-text { - color: #777; -} -.navbar-default .navbar-nav > li > a { - color: #777; -} -.navbar-default .navbar-nav > li > a:hover, -.navbar-default .navbar-nav > li > a:focus { - color: #333; - background-color: transparent; -} -.navbar-default .navbar-nav > .active > a, -.navbar-default .navbar-nav > .active > a:hover, -.navbar-default .navbar-nav > .active > a:focus { - color: #555; - background-color: #e7e7e7; -} -.navbar-default .navbar-nav > .disabled > a, -.navbar-default .navbar-nav > .disabled > a:hover, -.navbar-default .navbar-nav > .disabled > a:focus { - color: #ccc; - background-color: transparent; -} -.navbar-default .navbar-toggle { - border-color: #ddd; -} -.navbar-default .navbar-toggle:hover, -.navbar-default .navbar-toggle:focus { - background-color: #ddd; -} -.navbar-default .navbar-toggle .icon-bar { - background-color: #888; -} -.navbar-default .navbar-collapse, -.navbar-default .navbar-form { - border-color: #e7e7e7; -} -.navbar-default .navbar-nav > .open > a, -.navbar-default .navbar-nav > .open > a:hover, -.navbar-default .navbar-nav > .open > a:focus { - color: #555; - background-color: #e7e7e7; -} -@media (max-width: 767px) { - .navbar-default .navbar-nav .open .dropdown-menu > li > a { - color: #777; - } - .navbar-default .navbar-nav .open .dropdown-menu > li > a:hover, - .navbar-default .navbar-nav .open .dropdown-menu > li > a:focus { - color: #333; - background-color: transparent; - } - .navbar-default .navbar-nav .open .dropdown-menu > .active > a, - .navbar-default .navbar-nav .open .dropdown-menu > .active > a:hover, - .navbar-default .navbar-nav .open .dropdown-menu > .active > a:focus { - color: #555; - background-color: #e7e7e7; - } - .navbar-default .navbar-nav .open .dropdown-menu > .disabled > a, - .navbar-default .navbar-nav .open .dropdown-menu > .disabled > a:hover, - .navbar-default .navbar-nav .open .dropdown-menu > .disabled > a:focus { - color: #ccc; - background-color: transparent; - } -} -.navbar-default .navbar-link { - color: #777; -} -.navbar-default .navbar-link:hover { - color: #333; -} -.navbar-default .btn-link { - color: #777; -} -.navbar-default .btn-link:hover, -.navbar-default .btn-link:focus { - color: #333; -} -.navbar-default .btn-link[disabled]:hover, -fieldset[disabled] .navbar-default .btn-link:hover, -.navbar-default .btn-link[disabled]:focus, -fieldset[disabled] .navbar-default .btn-link:focus { - color: #ccc; -} -.navbar-inverse { - background-color: #222; - border-color: #080808; -} -.navbar-inverse .navbar-brand { - color: #9d9d9d; -} -.navbar-inverse .navbar-brand:hover, -.navbar-inverse .navbar-brand:focus { - color: #fff; - background-color: transparent; -} -.navbar-inverse .navbar-text { - color: #9d9d9d; -} -.navbar-inverse .navbar-nav > li > a { - color: #9d9d9d; -} -.navbar-inverse .navbar-nav > li > a:hover, -.navbar-inverse .navbar-nav > li > a:focus { - color: #fff; - background-color: transparent; -} -.navbar-inverse .navbar-nav > .active > a, -.navbar-inverse .navbar-nav > .active > a:hover, -.navbar-inverse .navbar-nav > .active > a:focus { - color: #fff; - background-color: #080808; -} -.navbar-inverse .navbar-nav > .disabled > a, -.navbar-inverse .navbar-nav > .disabled > a:hover, -.navbar-inverse .navbar-nav > .disabled > a:focus { - color: #444; - background-color: transparent; -} -.navbar-inverse .navbar-toggle { - border-color: #333; -} -.navbar-inverse .navbar-toggle:hover, -.navbar-inverse .navbar-toggle:focus { - background-color: #333; -} -.navbar-inverse .navbar-toggle .icon-bar { - background-color: #fff; -} -.navbar-inverse .navbar-collapse, -.navbar-inverse .navbar-form { - border-color: #101010; -} -.navbar-inverse .navbar-nav > .open > a, -.navbar-inverse .navbar-nav > .open > a:hover, -.navbar-inverse .navbar-nav > .open > a:focus { - color: #fff; - background-color: #080808; -} -@media (max-width: 767px) { - .navbar-inverse .navbar-nav .open .dropdown-menu > .dropdown-header { - border-color: #080808; - } - .navbar-inverse .navbar-nav .open .dropdown-menu .divider { - background-color: #080808; - } - .navbar-inverse .navbar-nav .open .dropdown-menu > li > a { - color: #9d9d9d; - } - .navbar-inverse .navbar-nav .open .dropdown-menu > li > a:hover, - .navbar-inverse .navbar-nav .open .dropdown-menu > li > a:focus { - color: #fff; - background-color: transparent; - } - .navbar-inverse .navbar-nav .open .dropdown-menu > .active > a, - .navbar-inverse .navbar-nav .open .dropdown-menu > .active > a:hover, - .navbar-inverse .navbar-nav .open .dropdown-menu > .active > a:focus { - color: #fff; - background-color: #080808; - } - .navbar-inverse .navbar-nav .open .dropdown-menu > .disabled > a, - .navbar-inverse .navbar-nav .open .dropdown-menu > .disabled > a:hover, - .navbar-inverse .navbar-nav .open .dropdown-menu > .disabled > a:focus { - color: #444; - background-color: transparent; - } -} -.navbar-inverse .navbar-link { - color: #9d9d9d; -} -.navbar-inverse .navbar-link:hover { - color: #fff; -} -.navbar-inverse .btn-link { - color: #9d9d9d; -} -.navbar-inverse .btn-link:hover, -.navbar-inverse .btn-link:focus { - color: #fff; -} -.navbar-inverse .btn-link[disabled]:hover, -fieldset[disabled] .navbar-inverse .btn-link:hover, -.navbar-inverse .btn-link[disabled]:focus, -fieldset[disabled] .navbar-inverse .btn-link:focus { - color: #444; -} -.breadcrumb { - padding: 8px 15px; - margin-bottom: 20px; - list-style: none; - background-color: #f5f5f5; - border-radius: 4px; -} -.breadcrumb > li { - display: inline-block; -} -.breadcrumb > li + li:before { - padding: 0 5px; - color: #ccc; - content: "/\00a0"; -} -.breadcrumb > .active { - color: #777; -} -.pagination { - display: inline-block; - padding-left: 0; - margin: 20px 0; - border-radius: 4px; -} -.pagination > li { - display: inline; -} -.pagination > li > a, -.pagination > li > span { - position: relative; - float: left; - padding: 6px 12px; - margin-left: -1px; - line-height: 1.42857143; - color: #337ab7; - text-decoration: none; - background-color: #fff; - border: 1px solid #ddd; -} -.pagination > li:first-child > a, -.pagination > li:first-child > span { - margin-left: 0; - border-top-left-radius: 4px; - border-bottom-left-radius: 4px; -} -.pagination > li:last-child > a, -.pagination > li:last-child > span { - border-top-right-radius: 4px; - border-bottom-right-radius: 4px; -} -.pagination > li > a:hover, -.pagination > li > span:hover, -.pagination > li > a:focus, -.pagination > li > span:focus { - z-index: 2; - color: #23527c; - background-color: #eee; - border-color: #ddd; -} -.pagination > .active > a, -.pagination > .active > span, -.pagination > .active > a:hover, -.pagination > .active > span:hover, -.pagination > .active > a:focus, -.pagination > .active > span:focus { - z-index: 3; - color: #fff; - cursor: default; - background-color: #337ab7; - border-color: #337ab7; -} -.pagination > .disabled > span, -.pagination > .disabled > span:hover, -.pagination > .disabled > span:focus, -.pagination > .disabled > a, -.pagination > .disabled > a:hover, -.pagination > .disabled > a:focus { - color: #777; - cursor: not-allowed; - background-color: #fff; - border-color: #ddd; -} -.pagination-lg > li > a, -.pagination-lg > li > span { - padding: 10px 16px; - font-size: 18px; - line-height: 1.3333333; -} -.pagination-lg > li:first-child > a, -.pagination-lg > li:first-child > span { - border-top-left-radius: 6px; - border-bottom-left-radius: 6px; -} -.pagination-lg > li:last-child > a, -.pagination-lg > li:last-child > span { - border-top-right-radius: 6px; - border-bottom-right-radius: 6px; -} -.pagination-sm > li > a, -.pagination-sm > li > span { - padding: 5px 10px; - font-size: 12px; - line-height: 1.5; -} -.pagination-sm > li:first-child > a, -.pagination-sm > li:first-child > span { - border-top-left-radius: 3px; - border-bottom-left-radius: 3px; -} -.pagination-sm > li:last-child > a, -.pagination-sm > li:last-child > span { - border-top-right-radius: 3px; - border-bottom-right-radius: 3px; -} -.pager { - padding-left: 0; - margin: 20px 0; - text-align: center; - list-style: none; -} -.pager li { - display: inline; -} -.pager li > a, -.pager li > span { - display: inline-block; - padding: 5px 14px; - background-color: #fff; - border: 1px solid #ddd; - border-radius: 15px; -} -.pager li > a:hover, -.pager li > a:focus { - text-decoration: none; - background-color: #eee; -} -.pager .next > a, -.pager .next > span { - float: right; -} -.pager .previous > a, -.pager .previous > span { - float: left; -} -.pager .disabled > a, -.pager .disabled > a:hover, -.pager .disabled > a:focus, -.pager .disabled > span { - color: #777; - cursor: not-allowed; - background-color: #fff; -} -.label { - display: inline; - padding: .2em .6em .3em; - font-size: 75%; - font-weight: bold; - line-height: 1; - color: #fff; - text-align: center; - white-space: nowrap; - vertical-align: baseline; - border-radius: .25em; -} -a.label:hover, -a.label:focus { - color: #fff; - text-decoration: none; - cursor: pointer; -} -.label:empty { - display: none; -} -.btn .label { - position: relative; - top: -1px; -} -.label-default { - background-color: #777; -} -.label-default[href]:hover, -.label-default[href]:focus { - background-color: #5e5e5e; -} -.label-primary { - background-color: #337ab7; -} -.label-primary[href]:hover, -.label-primary[href]:focus { - background-color: #286090; -} -.label-success { - background-color: #5cb85c; -} -.label-success[href]:hover, -.label-success[href]:focus { - background-color: #449d44; -} -.label-info { - background-color: #5bc0de; -} -.label-info[href]:hover, -.label-info[href]:focus { - background-color: #31b0d5; -} -.label-warning { - background-color: #f0ad4e; -} -.label-warning[href]:hover, -.label-warning[href]:focus { - background-color: #ec971f; -} -.label-danger { - background-color: #d9534f; -} -.label-danger[href]:hover, -.label-danger[href]:focus { - background-color: #c9302c; -} -.badge { - display: inline-block; - min-width: 10px; - padding: 3px 7px; - font-size: 12px; - font-weight: bold; - line-height: 1; - color: #fff; - text-align: center; - white-space: nowrap; - vertical-align: middle; - background-color: #777; - border-radius: 10px; -} -.badge:empty { - display: none; -} -.btn .badge { - position: relative; - top: -1px; -} -.btn-xs .badge, -.btn-group-xs > .btn .badge { - top: 0; - padding: 1px 5px; -} -a.badge:hover, -a.badge:focus { - color: #fff; - text-decoration: none; - cursor: pointer; -} -.list-group-item.active > .badge, -.nav-pills > .active > a > .badge { - color: #337ab7; - background-color: #fff; -} -.list-group-item > .badge { - float: right; -} -.list-group-item > .badge + .badge { - margin-right: 5px; -} -.nav-pills > li > a > .badge { - margin-left: 3px; -} -.jumbotron { - padding-top: 30px; - padding-bottom: 30px; - margin-bottom: 30px; - color: inherit; - background-color: #eee; -} -.jumbotron h1, -.jumbotron .h1 { - color: inherit; -} -.jumbotron p { - margin-bottom: 15px; - font-size: 21px; - font-weight: 200; -} -.jumbotron > hr { - border-top-color: #d5d5d5; -} -.container .jumbotron, -.container-fluid .jumbotron { - padding-right: 15px; - padding-left: 15px; - border-radius: 6px; -} -.jumbotron .container { - max-width: 100%; -} -@media screen and (min-width: 768px) { - .jumbotron { - padding-top: 48px; - padding-bottom: 48px; - } - .container .jumbotron, - .container-fluid .jumbotron { - padding-right: 60px; - padding-left: 60px; - } - .jumbotron h1, - .jumbotron .h1 { - font-size: 63px; - } -} -.thumbnail { - display: block; - padding: 4px; - margin-bottom: 20px; - line-height: 1.42857143; - background-color: #fff; - border: 1px solid #ddd; - border-radius: 4px; - -webkit-transition: border .2s ease-in-out; - -o-transition: border .2s ease-in-out; - transition: border .2s ease-in-out; -} -.thumbnail > img, -.thumbnail a > img { - margin-right: auto; - margin-left: auto; -} -a.thumbnail:hover, -a.thumbnail:focus, -a.thumbnail.active { - border-color: #337ab7; -} -.thumbnail .caption { - padding: 9px; - color: #333; -} -.alert { - padding: 15px; - margin-bottom: 20px; - border: 1px solid transparent; - border-radius: 4px; -} -.alert h4 { - margin-top: 0; - color: inherit; -} -.alert .alert-link { - font-weight: bold; -} -.alert > p, -.alert > ul { - margin-bottom: 0; -} -.alert > p + p { - margin-top: 5px; -} -.alert-dismissable, -.alert-dismissible { - padding-right: 35px; -} -.alert-dismissable .close, -.alert-dismissible .close { - position: relative; - top: -2px; - right: -21px; - color: inherit; -} -.alert-success { - color: #3c763d; - background-color: #dff0d8; - border-color: #d6e9c6; -} -.alert-success hr { - border-top-color: #c9e2b3; -} -.alert-success .alert-link { - color: #2b542c; -} -.alert-info { - color: #31708f; - background-color: #d9edf7; - border-color: #bce8f1; -} -.alert-info hr { - border-top-color: #a6e1ec; -} -.alert-info .alert-link { - color: #245269; -} -.alert-warning { - color: #8a6d3b; - background-color: #fcf8e3; - border-color: #faebcc; -} -.alert-warning hr { - border-top-color: #f7e1b5; -} -.alert-warning .alert-link { - color: #66512c; -} -.alert-danger { - color: #a94442; - background-color: #f2dede; - border-color: #ebccd1; -} -.alert-danger hr { - border-top-color: #e4b9c0; -} -.alert-danger .alert-link { - color: #843534; -} -@-webkit-keyframes progress-bar-stripes { - from { - background-position: 40px 0; - } - to { - background-position: 0 0; - } -} -@-o-keyframes progress-bar-stripes { - from { - background-position: 40px 0; - } - to { - background-position: 0 0; - } -} -@keyframes progress-bar-stripes { - from { - background-position: 40px 0; - } - to { - background-position: 0 0; - } -} -.progress { - height: 20px; - margin-bottom: 20px; - overflow: hidden; - background-color: #f5f5f5; - border-radius: 4px; - -webkit-box-shadow: inset 0 1px 2px rgba(0, 0, 0, .1); - box-shadow: inset 0 1px 2px rgba(0, 0, 0, .1); -} -.progress-bar { - float: left; - width: 0; - height: 100%; - font-size: 12px; - line-height: 20px; - color: #fff; - text-align: center; - background-color: #337ab7; - -webkit-box-shadow: inset 0 -1px 0 rgba(0, 0, 0, .15); - box-shadow: inset 0 -1px 0 rgba(0, 0, 0, .15); - -webkit-transition: width .6s ease; - -o-transition: width .6s ease; - transition: width .6s ease; -} -.progress-striped .progress-bar, -.progress-bar-striped { - background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent); - background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent); - background-image: linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent); - -webkit-background-size: 40px 40px; - background-size: 40px 40px; -} -.progress.active .progress-bar, -.progress-bar.active { - -webkit-animation: progress-bar-stripes 2s linear infinite; - -o-animation: progress-bar-stripes 2s linear infinite; - animation: progress-bar-stripes 2s linear infinite; -} -.progress-bar-success { - background-color: #5cb85c; -} -.progress-striped .progress-bar-success { - background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent); - background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent); - background-image: linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent); -} -.progress-bar-info { - background-color: #5bc0de; -} -.progress-striped .progress-bar-info { - background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent); - background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent); - background-image: linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent); -} -.progress-bar-warning { - background-color: #f0ad4e; -} -.progress-striped .progress-bar-warning { - background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent); - background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent); - background-image: linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent); -} -.progress-bar-danger { - background-color: #d9534f; -} -.progress-striped .progress-bar-danger { - background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent); - background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent); - background-image: linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent); -} -.media { - margin-top: 15px; -} -.media:first-child { - margin-top: 0; -} -.media, -.media-body { - overflow: hidden; - zoom: 1; -} -.media-body { - width: 10000px; -} -.media-object { - display: block; -} -.media-object.img-thumbnail { - max-width: none; -} -.media-right, -.media > .pull-right { - padding-left: 10px; -} -.media-left, -.media > .pull-left { - padding-right: 10px; -} -.media-left, -.media-right, -.media-body { - display: table-cell; - vertical-align: top; -} -.media-middle { - vertical-align: middle; -} -.media-bottom { - vertical-align: bottom; -} -.media-heading { - margin-top: 0; - margin-bottom: 5px; -} -.media-list { - padding-left: 0; - list-style: none; -} -.list-group { - padding-left: 0; - margin-bottom: 20px; -} -.list-group-item { - position: relative; - display: block; - padding: 10px 15px; - margin-bottom: -1px; - background-color: #fff; - border: 1px solid #ddd; -} -.list-group-item:first-child { - border-top-left-radius: 4px; - border-top-right-radius: 4px; -} -.list-group-item:last-child { - margin-bottom: 0; - border-bottom-right-radius: 4px; - border-bottom-left-radius: 4px; -} -a.list-group-item, -button.list-group-item { - color: #555; -} -a.list-group-item .list-group-item-heading, -button.list-group-item .list-group-item-heading { - color: #333; -} -a.list-group-item:hover, -button.list-group-item:hover, -a.list-group-item:focus, -button.list-group-item:focus { - color: #555; - text-decoration: none; - background-color: #f5f5f5; -} -button.list-group-item { - width: 100%; - text-align: left; -} -.list-group-item.disabled, -.list-group-item.disabled:hover, -.list-group-item.disabled:focus { - color: #777; - cursor: not-allowed; - background-color: #eee; -} -.list-group-item.disabled .list-group-item-heading, -.list-group-item.disabled:hover .list-group-item-heading, -.list-group-item.disabled:focus .list-group-item-heading { - color: inherit; -} -.list-group-item.disabled .list-group-item-text, -.list-group-item.disabled:hover .list-group-item-text, -.list-group-item.disabled:focus .list-group-item-text { - color: #777; -} -.list-group-item.active, -.list-group-item.active:hover, -.list-group-item.active:focus { - z-index: 2; - color: #fff; - background-color: #337ab7; - border-color: #337ab7; -} -.list-group-item.active .list-group-item-heading, -.list-group-item.active:hover .list-group-item-heading, -.list-group-item.active:focus .list-group-item-heading, -.list-group-item.active .list-group-item-heading > small, -.list-group-item.active:hover .list-group-item-heading > small, -.list-group-item.active:focus .list-group-item-heading > small, -.list-group-item.active .list-group-item-heading > .small, -.list-group-item.active:hover .list-group-item-heading > .small, -.list-group-item.active:focus .list-group-item-heading > .small { - color: inherit; -} -.list-group-item.active .list-group-item-text, -.list-group-item.active:hover .list-group-item-text, -.list-group-item.active:focus .list-group-item-text { - color: #c7ddef; -} -.list-group-item-success { - color: #3c763d; - background-color: #dff0d8; -} -a.list-group-item-success, -button.list-group-item-success { - color: #3c763d; -} -a.list-group-item-success .list-group-item-heading, -button.list-group-item-success .list-group-item-heading { - color: inherit; -} -a.list-group-item-success:hover, -button.list-group-item-success:hover, -a.list-group-item-success:focus, -button.list-group-item-success:focus { - color: #3c763d; - background-color: #d0e9c6; -} -a.list-group-item-success.active, -button.list-group-item-success.active, -a.list-group-item-success.active:hover, -button.list-group-item-success.active:hover, -a.list-group-item-success.active:focus, -button.list-group-item-success.active:focus { - color: #fff; - background-color: #3c763d; - border-color: #3c763d; -} -.list-group-item-info { - color: #31708f; - background-color: #d9edf7; -} -a.list-group-item-info, -button.list-group-item-info { - color: #31708f; -} -a.list-group-item-info .list-group-item-heading, -button.list-group-item-info .list-group-item-heading { - color: inherit; -} -a.list-group-item-info:hover, -button.list-group-item-info:hover, -a.list-group-item-info:focus, -button.list-group-item-info:focus { - color: #31708f; - background-color: #c4e3f3; -} -a.list-group-item-info.active, -button.list-group-item-info.active, -a.list-group-item-info.active:hover, -button.list-group-item-info.active:hover, -a.list-group-item-info.active:focus, -button.list-group-item-info.active:focus { - color: #fff; - background-color: #31708f; - border-color: #31708f; -} -.list-group-item-warning { - color: #8a6d3b; - background-color: #fcf8e3; -} -a.list-group-item-warning, -button.list-group-item-warning { - color: #8a6d3b; -} -a.list-group-item-warning .list-group-item-heading, -button.list-group-item-warning .list-group-item-heading { - color: inherit; -} -a.list-group-item-warning:hover, -button.list-group-item-warning:hover, -a.list-group-item-warning:focus, -button.list-group-item-warning:focus { - color: #8a6d3b; - background-color: #faf2cc; -} -a.list-group-item-warning.active, -button.list-group-item-warning.active, -a.list-group-item-warning.active:hover, -button.list-group-item-warning.active:hover, -a.list-group-item-warning.active:focus, -button.list-group-item-warning.active:focus { - color: #fff; - background-color: #8a6d3b; - border-color: #8a6d3b; -} -.list-group-item-danger { - color: #a94442; - background-color: #f2dede; -} -a.list-group-item-danger, -button.list-group-item-danger { - color: #a94442; -} -a.list-group-item-danger .list-group-item-heading, -button.list-group-item-danger .list-group-item-heading { - color: inherit; -} -a.list-group-item-danger:hover, -button.list-group-item-danger:hover, -a.list-group-item-danger:focus, -button.list-group-item-danger:focus { - color: #a94442; - background-color: #ebcccc; -} -a.list-group-item-danger.active, -button.list-group-item-danger.active, -a.list-group-item-danger.active:hover, -button.list-group-item-danger.active:hover, -a.list-group-item-danger.active:focus, -button.list-group-item-danger.active:focus { - color: #fff; - background-color: #a94442; - border-color: #a94442; -} -.list-group-item-heading { - margin-top: 0; - margin-bottom: 5px; -} -.list-group-item-text { - margin-bottom: 0; - line-height: 1.3; -} -.panel { - margin-bottom: 20px; - background-color: #fff; - border: 1px solid transparent; - border-radius: 4px; - -webkit-box-shadow: 0 1px 1px rgba(0, 0, 0, .05); - box-shadow: 0 1px 1px rgba(0, 0, 0, .05); -} -.panel-body { - padding: 15px; -} -.panel-heading { - padding: 10px 15px; - border-bottom: 1px solid transparent; - border-top-left-radius: 3px; - border-top-right-radius: 3px; -} -.panel-heading > .dropdown .dropdown-toggle { - color: inherit; -} -.panel-title { - margin-top: 0; - margin-bottom: 0; - font-size: 16px; - color: inherit; -} -.panel-title > a, -.panel-title > small, -.panel-title > .small, -.panel-title > small > a, -.panel-title > .small > a { - color: inherit; -} -.panel-footer { - padding: 10px 15px; - background-color: #f5f5f5; - border-top: 1px solid #ddd; - border-bottom-right-radius: 3px; - border-bottom-left-radius: 3px; -} -.panel > .list-group, -.panel > .panel-collapse > .list-group { - margin-bottom: 0; -} -.panel > .list-group .list-group-item, -.panel > .panel-collapse > .list-group .list-group-item { - border-width: 1px 0; - border-radius: 0; -} -.panel > .list-group:first-child .list-group-item:first-child, -.panel > .panel-collapse > .list-group:first-child .list-group-item:first-child { - border-top: 0; - border-top-left-radius: 3px; - border-top-right-radius: 3px; -} -.panel > .list-group:last-child .list-group-item:last-child, -.panel > .panel-collapse > .list-group:last-child .list-group-item:last-child { - border-bottom: 0; - border-bottom-right-radius: 3px; - border-bottom-left-radius: 3px; -} -.panel > .panel-heading + .panel-collapse > .list-group .list-group-item:first-child { - border-top-left-radius: 0; - border-top-right-radius: 0; -} -.panel-heading + .list-group .list-group-item:first-child { - border-top-width: 0; -} -.list-group + .panel-footer { - border-top-width: 0; -} -.panel > .table, -.panel > .table-responsive > .table, -.panel > .panel-collapse > .table { - margin-bottom: 0; -} -.panel > .table caption, -.panel > .table-responsive > .table caption, -.panel > .panel-collapse > .table caption { - padding-right: 15px; - padding-left: 15px; -} -.panel > .table:first-child, -.panel > .table-responsive:first-child > .table:first-child { - border-top-left-radius: 3px; - border-top-right-radius: 3px; -} -.panel > .table:first-child > thead:first-child > tr:first-child, -.panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child, -.panel > .table:first-child > tbody:first-child > tr:first-child, -.panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child { - border-top-left-radius: 3px; - border-top-right-radius: 3px; -} -.panel > .table:first-child > thead:first-child > tr:first-child td:first-child, -.panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child td:first-child, -.panel > .table:first-child > tbody:first-child > tr:first-child td:first-child, -.panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child td:first-child, -.panel > .table:first-child > thead:first-child > tr:first-child th:first-child, -.panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child th:first-child, -.panel > .table:first-child > tbody:first-child > tr:first-child th:first-child, -.panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child th:first-child { - border-top-left-radius: 3px; -} -.panel > .table:first-child > thead:first-child > tr:first-child td:last-child, -.panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child td:last-child, -.panel > .table:first-child > tbody:first-child > tr:first-child td:last-child, -.panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child td:last-child, -.panel > .table:first-child > thead:first-child > tr:first-child th:last-child, -.panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child th:last-child, -.panel > .table:first-child > tbody:first-child > tr:first-child th:last-child, -.panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child th:last-child { - border-top-right-radius: 3px; -} -.panel > .table:last-child, -.panel > .table-responsive:last-child > .table:last-child { - border-bottom-right-radius: 3px; - border-bottom-left-radius: 3px; -} -.panel > .table:last-child > tbody:last-child > tr:last-child, -.panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child, -.panel > .table:last-child > tfoot:last-child > tr:last-child, -.panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child { - border-bottom-right-radius: 3px; - border-bottom-left-radius: 3px; -} -.panel > .table:last-child > tbody:last-child > tr:last-child td:first-child, -.panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child td:first-child, -.panel > .table:last-child > tfoot:last-child > tr:last-child td:first-child, -.panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child td:first-child, -.panel > .table:last-child > tbody:last-child > tr:last-child th:first-child, -.panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child th:first-child, -.panel > .table:last-child > tfoot:last-child > tr:last-child th:first-child, -.panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child th:first-child { - border-bottom-left-radius: 3px; -} -.panel > .table:last-child > tbody:last-child > tr:last-child td:last-child, -.panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child td:last-child, -.panel > .table:last-child > tfoot:last-child > tr:last-child td:last-child, -.panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child td:last-child, -.panel > .table:last-child > tbody:last-child > tr:last-child th:last-child, -.panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child th:last-child, -.panel > .table:last-child > tfoot:last-child > tr:last-child th:last-child, -.panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child th:last-child { - border-bottom-right-radius: 3px; -} -.panel > .panel-body + .table, -.panel > .panel-body + .table-responsive, -.panel > .table + .panel-body, -.panel > .table-responsive + .panel-body { - border-top: 1px solid #ddd; -} -.panel > .table > tbody:first-child > tr:first-child th, -.panel > .table > tbody:first-child > tr:first-child td { - border-top: 0; -} -.panel > .table-bordered, -.panel > .table-responsive > .table-bordered { - border: 0; -} -.panel > .table-bordered > thead > tr > th:first-child, -.panel > .table-responsive > .table-bordered > thead > tr > th:first-child, -.panel > .table-bordered > tbody > tr > th:first-child, -.panel > .table-responsive > .table-bordered > tbody > tr > th:first-child, -.panel > .table-bordered > tfoot > tr > th:first-child, -.panel > .table-responsive > .table-bordered > tfoot > tr > th:first-child, -.panel > .table-bordered > thead > tr > td:first-child, -.panel > .table-responsive > .table-bordered > thead > tr > td:first-child, -.panel > .table-bordered > tbody > tr > td:first-child, -.panel > .table-responsive > .table-bordered > tbody > tr > td:first-child, -.panel > .table-bordered > tfoot > tr > td:first-child, -.panel > .table-responsive > .table-bordered > tfoot > tr > td:first-child { - border-left: 0; -} -.panel > .table-bordered > thead > tr > th:last-child, -.panel > .table-responsive > .table-bordered > thead > tr > th:last-child, -.panel > .table-bordered > tbody > tr > th:last-child, -.panel > .table-responsive > .table-bordered > tbody > tr > th:last-child, -.panel > .table-bordered > tfoot > tr > th:last-child, -.panel > .table-responsive > .table-bordered > tfoot > tr > th:last-child, -.panel > .table-bordered > thead > tr > td:last-child, -.panel > .table-responsive > .table-bordered > thead > tr > td:last-child, -.panel > .table-bordered > tbody > tr > td:last-child, -.panel > .table-responsive > .table-bordered > tbody > tr > td:last-child, -.panel > .table-bordered > tfoot > tr > td:last-child, -.panel > .table-responsive > .table-bordered > tfoot > tr > td:last-child { - border-right: 0; -} -.panel > .table-bordered > thead > tr:first-child > td, -.panel > .table-responsive > .table-bordered > thead > tr:first-child > td, -.panel > .table-bordered > tbody > tr:first-child > td, -.panel > .table-responsive > .table-bordered > tbody > tr:first-child > td, -.panel > .table-bordered > thead > tr:first-child > th, -.panel > .table-responsive > .table-bordered > thead > tr:first-child > th, -.panel > .table-bordered > tbody > tr:first-child > th, -.panel > .table-responsive > .table-bordered > tbody > tr:first-child > th { - border-bottom: 0; -} -.panel > .table-bordered > tbody > tr:last-child > td, -.panel > .table-responsive > .table-bordered > tbody > tr:last-child > td, -.panel > .table-bordered > tfoot > tr:last-child > td, -.panel > .table-responsive > .table-bordered > tfoot > tr:last-child > td, -.panel > .table-bordered > tbody > tr:last-child > th, -.panel > .table-responsive > .table-bordered > tbody > tr:last-child > th, -.panel > .table-bordered > tfoot > tr:last-child > th, -.panel > .table-responsive > .table-bordered > tfoot > tr:last-child > th { - border-bottom: 0; -} -.panel > .table-responsive { - margin-bottom: 0; - border: 0; -} -.panel-group { - margin-bottom: 20px; -} -.panel-group .panel { - margin-bottom: 0; - border-radius: 4px; -} -.panel-group .panel + .panel { - margin-top: 5px; -} -.panel-group .panel-heading { - border-bottom: 0; -} -.panel-group .panel-heading + .panel-collapse > .panel-body, -.panel-group .panel-heading + .panel-collapse > .list-group { - border-top: 1px solid #ddd; -} -.panel-group .panel-footer { - border-top: 0; -} -.panel-group .panel-footer + .panel-collapse .panel-body { - border-bottom: 1px solid #ddd; -} -.panel-default { - border-color: #ddd; -} -.panel-default > .panel-heading { - color: #333; - background-color: #f5f5f5; - border-color: #ddd; -} -.panel-default > .panel-heading + .panel-collapse > .panel-body { - border-top-color: #ddd; -} -.panel-default > .panel-heading .badge { - color: #f5f5f5; - background-color: #333; -} -.panel-default > .panel-footer + .panel-collapse > .panel-body { - border-bottom-color: #ddd; -} -.panel-primary { - border-color: #337ab7; -} -.panel-primary > .panel-heading { - color: #fff; - background-color: #337ab7; - border-color: #337ab7; -} -.panel-primary > .panel-heading + .panel-collapse > .panel-body { - border-top-color: #337ab7; -} -.panel-primary > .panel-heading .badge { - color: #337ab7; - background-color: #fff; -} -.panel-primary > .panel-footer + .panel-collapse > .panel-body { - border-bottom-color: #337ab7; -} -.panel-success { - border-color: #d6e9c6; -} -.panel-success > .panel-heading { - color: #3c763d; - background-color: #dff0d8; - border-color: #d6e9c6; -} -.panel-success > .panel-heading + .panel-collapse > .panel-body { - border-top-color: #d6e9c6; -} -.panel-success > .panel-heading .badge { - color: #dff0d8; - background-color: #3c763d; -} -.panel-success > .panel-footer + .panel-collapse > .panel-body { - border-bottom-color: #d6e9c6; -} -.panel-info { - border-color: #bce8f1; -} -.panel-info > .panel-heading { - color: #31708f; - background-color: #d9edf7; - border-color: #bce8f1; -} -.panel-info > .panel-heading + .panel-collapse > .panel-body { - border-top-color: #bce8f1; -} -.panel-info > .panel-heading .badge { - color: #d9edf7; - background-color: #31708f; -} -.panel-info > .panel-footer + .panel-collapse > .panel-body { - border-bottom-color: #bce8f1; -} -.panel-warning { - border-color: #faebcc; -} -.panel-warning > .panel-heading { - color: #8a6d3b; - background-color: #fcf8e3; - border-color: #faebcc; -} -.panel-warning > .panel-heading + .panel-collapse > .panel-body { - border-top-color: #faebcc; -} -.panel-warning > .panel-heading .badge { - color: #fcf8e3; - background-color: #8a6d3b; -} -.panel-warning > .panel-footer + .panel-collapse > .panel-body { - border-bottom-color: #faebcc; -} -.panel-danger { - border-color: #ebccd1; -} -.panel-danger > .panel-heading { - color: #a94442; - background-color: #f2dede; - border-color: #ebccd1; -} -.panel-danger > .panel-heading + .panel-collapse > .panel-body { - border-top-color: #ebccd1; -} -.panel-danger > .panel-heading .badge { - color: #f2dede; - background-color: #a94442; -} -.panel-danger > .panel-footer + .panel-collapse > .panel-body { - border-bottom-color: #ebccd1; -} -.embed-responsive { - position: relative; - display: block; - height: 0; - padding: 0; - overflow: hidden; -} -.embed-responsive .embed-responsive-item, -.embed-responsive iframe, -.embed-responsive embed, -.embed-responsive object, -.embed-responsive video { - position: absolute; - top: 0; - bottom: 0; - left: 0; - width: 100%; - height: 100%; - border: 0; -} -.embed-responsive-16by9 { - padding-bottom: 56.25%; -} -.embed-responsive-4by3 { - padding-bottom: 75%; -} -.well { - min-height: 20px; - padding: 19px; - margin-bottom: 20px; - background-color: #f5f5f5; - border: 1px solid #e3e3e3; - border-radius: 4px; - -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, .05); - box-shadow: inset 0 1px 1px rgba(0, 0, 0, .05); -} -.well blockquote { - border-color: #ddd; - border-color: rgba(0, 0, 0, .15); -} -.well-lg { - padding: 24px; - border-radius: 6px; -} -.well-sm { - padding: 9px; - border-radius: 3px; -} -.close { - float: right; - font-size: 21px; - font-weight: bold; - line-height: 1; - color: #000; - text-shadow: 0 1px 0 #fff; - filter: alpha(opacity=20); - opacity: .2; -} -.close:hover, -.close:focus { - color: #000; - text-decoration: none; - cursor: pointer; - filter: alpha(opacity=50); - opacity: .5; -} -button.close { - -webkit-appearance: none; - padding: 0; - cursor: pointer; - background: transparent; - border: 0; -} -.modal-open { - overflow: hidden; -} -.modal { - position: fixed; - top: 0; - right: 0; - bottom: 0; - left: 0; - z-index: 1050; - display: none; - overflow: hidden; - -webkit-overflow-scrolling: touch; - outline: 0; -} -.modal.fade .modal-dialog { - -webkit-transition: -webkit-transform .3s ease-out; - -o-transition: -o-transform .3s ease-out; - transition: transform .3s ease-out; - -webkit-transform: translate(0, -25%); - -ms-transform: translate(0, -25%); - -o-transform: translate(0, -25%); - transform: translate(0, -25%); -} -.modal.in .modal-dialog { - -webkit-transform: translate(0, 0); - -ms-transform: translate(0, 0); - -o-transform: translate(0, 0); - transform: translate(0, 0); -} -.modal-open .modal { - overflow-x: hidden; - overflow-y: auto; -} -.modal-dialog { - position: relative; - width: auto; - margin: 10px; -} -.modal-content { - position: relative; - background-color: #fff; - -webkit-background-clip: padding-box; - background-clip: padding-box; - border: 1px solid #999; - border: 1px solid rgba(0, 0, 0, .2); - border-radius: 6px; - outline: 0; - -webkit-box-shadow: 0 3px 9px rgba(0, 0, 0, .5); - box-shadow: 0 3px 9px rgba(0, 0, 0, .5); -} -.modal-backdrop { - position: fixed; - top: 0; - right: 0; - bottom: 0; - left: 0; - z-index: 1040; - background-color: #000; -} -.modal-backdrop.fade { - filter: alpha(opacity=0); - opacity: 0; -} -.modal-backdrop.in { - filter: alpha(opacity=50); - opacity: .5; -} -.modal-header { - padding: 15px; - border-bottom: 1px solid #e5e5e5; -} -.modal-header .close { - margin-top: -2px; -} -.modal-title { - margin: 0; - line-height: 1.42857143; -} -.modal-body { - position: relative; - padding: 15px; -} -.modal-footer { - padding: 15px; - text-align: right; - border-top: 1px solid #e5e5e5; -} -.modal-footer .btn + .btn { - margin-bottom: 0; - margin-left: 5px; -} -.modal-footer .btn-group .btn + .btn { - margin-left: -1px; -} -.modal-footer .btn-block + .btn-block { - margin-left: 0; -} -.modal-scrollbar-measure { - position: absolute; - top: -9999px; - width: 50px; - height: 50px; - overflow: scroll; -} -@media (min-width: 768px) { - .modal-dialog { - width: 600px; - margin: 30px auto; - } - .modal-content { - -webkit-box-shadow: 0 5px 15px rgba(0, 0, 0, .5); - box-shadow: 0 5px 15px rgba(0, 0, 0, .5); - } - .modal-sm { - width: 300px; - } -} -@media (min-width: 992px) { - .modal-lg { - width: 900px; - } -} -.tooltip { - position: absolute; - z-index: 1070; - display: block; - font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; - font-size: 12px; - font-style: normal; - font-weight: normal; - line-height: 1.42857143; - text-align: left; - text-align: start; - text-decoration: none; - text-shadow: none; - text-transform: none; - letter-spacing: normal; - word-break: normal; - word-spacing: normal; - word-wrap: normal; - white-space: normal; - filter: alpha(opacity=0); - opacity: 0; - - line-break: auto; -} -.tooltip.in { - filter: alpha(opacity=90); - opacity: .9; -} -.tooltip.top { - padding: 5px 0; - margin-top: -3px; -} -.tooltip.right { - padding: 0 5px; - margin-left: 3px; -} -.tooltip.bottom { - padding: 5px 0; - margin-top: 3px; -} -.tooltip.left { - padding: 0 5px; - margin-left: -3px; -} -.tooltip-inner { - max-width: 200px; - padding: 3px 8px; - color: #fff; - text-align: center; - background-color: #000; - border-radius: 4px; -} -.tooltip-arrow { - position: absolute; - width: 0; - height: 0; - border-color: transparent; - border-style: solid; -} -.tooltip.top .tooltip-arrow { - bottom: 0; - left: 50%; - margin-left: -5px; - border-width: 5px 5px 0; - border-top-color: #000; -} -.tooltip.top-left .tooltip-arrow { - right: 5px; - bottom: 0; - margin-bottom: -5px; - border-width: 5px 5px 0; - border-top-color: #000; -} -.tooltip.top-right .tooltip-arrow { - bottom: 0; - left: 5px; - margin-bottom: -5px; - border-width: 5px 5px 0; - border-top-color: #000; -} -.tooltip.right .tooltip-arrow { - top: 50%; - left: 0; - margin-top: -5px; - border-width: 5px 5px 5px 0; - border-right-color: #000; -} -.tooltip.left .tooltip-arrow { - top: 50%; - right: 0; - margin-top: -5px; - border-width: 5px 0 5px 5px; - border-left-color: #000; -} -.tooltip.bottom .tooltip-arrow { - top: 0; - left: 50%; - margin-left: -5px; - border-width: 0 5px 5px; - border-bottom-color: #000; -} -.tooltip.bottom-left .tooltip-arrow { - top: 0; - right: 5px; - margin-top: -5px; - border-width: 0 5px 5px; - border-bottom-color: #000; -} -.tooltip.bottom-right .tooltip-arrow { - top: 0; - left: 5px; - margin-top: -5px; - border-width: 0 5px 5px; - border-bottom-color: #000; -} -.popover { - position: absolute; - top: 0; - left: 0; - z-index: 1060; - display: none; - max-width: 276px; - padding: 1px; - font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; - font-size: 14px; - font-style: normal; - font-weight: normal; - line-height: 1.42857143; - text-align: left; - text-align: start; - text-decoration: none; - text-shadow: none; - text-transform: none; - letter-spacing: normal; - word-break: normal; - word-spacing: normal; - word-wrap: normal; - white-space: normal; - background-color: #fff; - -webkit-background-clip: padding-box; - background-clip: padding-box; - border: 1px solid #ccc; - border: 1px solid rgba(0, 0, 0, .2); - border-radius: 6px; - -webkit-box-shadow: 0 5px 10px rgba(0, 0, 0, .2); - box-shadow: 0 5px 10px rgba(0, 0, 0, .2); - - line-break: auto; -} -.popover.top { - margin-top: -10px; -} -.popover.right { - margin-left: 10px; -} -.popover.bottom { - margin-top: 10px; -} -.popover.left { - margin-left: -10px; -} -.popover-title { - padding: 8px 14px; - margin: 0; - font-size: 14px; - background-color: #f7f7f7; - border-bottom: 1px solid #ebebeb; - border-radius: 5px 5px 0 0; -} -.popover-content { - padding: 9px 14px; -} -.popover > .arrow, -.popover > .arrow:after { - position: absolute; - display: block; - width: 0; - height: 0; - border-color: transparent; - border-style: solid; -} -.popover > .arrow { - border-width: 11px; -} -.popover > .arrow:after { - content: ""; - border-width: 10px; -} -.popover.top > .arrow { - bottom: -11px; - left: 50%; - margin-left: -11px; - border-top-color: #999; - border-top-color: rgba(0, 0, 0, .25); - border-bottom-width: 0; -} -.popover.top > .arrow:after { - bottom: 1px; - margin-left: -10px; - content: " "; - border-top-color: #fff; - border-bottom-width: 0; -} -.popover.right > .arrow { - top: 50%; - left: -11px; - margin-top: -11px; - border-right-color: #999; - border-right-color: rgba(0, 0, 0, .25); - border-left-width: 0; -} -.popover.right > .arrow:after { - bottom: -10px; - left: 1px; - content: " "; - border-right-color: #fff; - border-left-width: 0; -} -.popover.bottom > .arrow { - top: -11px; - left: 50%; - margin-left: -11px; - border-top-width: 0; - border-bottom-color: #999; - border-bottom-color: rgba(0, 0, 0, .25); -} -.popover.bottom > .arrow:after { - top: 1px; - margin-left: -10px; - content: " "; - border-top-width: 0; - border-bottom-color: #fff; -} -.popover.left > .arrow { - top: 50%; - right: -11px; - margin-top: -11px; - border-right-width: 0; - border-left-color: #999; - border-left-color: rgba(0, 0, 0, .25); -} -.popover.left > .arrow:after { - right: 1px; - bottom: -10px; - content: " "; - border-right-width: 0; - border-left-color: #fff; -} -.carousel { - position: relative; -} -.carousel-inner { - position: relative; - width: 100%; - overflow: hidden; -} -.carousel-inner > .item { - position: relative; - display: none; - -webkit-transition: .6s ease-in-out left; - -o-transition: .6s ease-in-out left; - transition: .6s ease-in-out left; -} -.carousel-inner > .item > img, -.carousel-inner > .item > a > img { - line-height: 1; -} -@media all and (transform-3d), (-webkit-transform-3d) { - .carousel-inner > .item { - -webkit-transition: -webkit-transform .6s ease-in-out; - -o-transition: -o-transform .6s ease-in-out; - transition: transform .6s ease-in-out; - - -webkit-backface-visibility: hidden; - backface-visibility: hidden; - -webkit-perspective: 1000px; - perspective: 1000px; - } - .carousel-inner > .item.next, - .carousel-inner > .item.active.right { - left: 0; - -webkit-transform: translate3d(100%, 0, 0); - transform: translate3d(100%, 0, 0); - } - .carousel-inner > .item.prev, - .carousel-inner > .item.active.left { - left: 0; - -webkit-transform: translate3d(-100%, 0, 0); - transform: translate3d(-100%, 0, 0); - } - .carousel-inner > .item.next.left, - .carousel-inner > .item.prev.right, - .carousel-inner > .item.active { - left: 0; - -webkit-transform: translate3d(0, 0, 0); - transform: translate3d(0, 0, 0); - } -} -.carousel-inner > .active, -.carousel-inner > .next, -.carousel-inner > .prev { - display: block; -} -.carousel-inner > .active { - left: 0; -} -.carousel-inner > .next, -.carousel-inner > .prev { - position: absolute; - top: 0; - width: 100%; -} -.carousel-inner > .next { - left: 100%; -} -.carousel-inner > .prev { - left: -100%; -} -.carousel-inner > .next.left, -.carousel-inner > .prev.right { - left: 0; -} -.carousel-inner > .active.left { - left: -100%; -} -.carousel-inner > .active.right { - left: 100%; -} -.carousel-control { - position: absolute; - top: 0; - bottom: 0; - left: 0; - width: 15%; - font-size: 20px; - color: #fff; - text-align: center; - text-shadow: 0 1px 2px rgba(0, 0, 0, .6); - background-color: rgba(0, 0, 0, 0); - filter: alpha(opacity=50); - opacity: .5; -} -.carousel-control.left { - background-image: -webkit-linear-gradient(left, rgba(0, 0, 0, .5) 0%, rgba(0, 0, 0, .0001) 100%); - background-image: -o-linear-gradient(left, rgba(0, 0, 0, .5) 0%, rgba(0, 0, 0, .0001) 100%); - background-image: -webkit-gradient(linear, left top, right top, from(rgba(0, 0, 0, .5)), to(rgba(0, 0, 0, .0001))); - background-image: linear-gradient(to right, rgba(0, 0, 0, .5) 0%, rgba(0, 0, 0, .0001) 100%); - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#80000000', endColorstr='#00000000', GradientType=1); - background-repeat: repeat-x; -} -.carousel-control.right { - right: 0; - left: auto; - background-image: -webkit-linear-gradient(left, rgba(0, 0, 0, .0001) 0%, rgba(0, 0, 0, .5) 100%); - background-image: -o-linear-gradient(left, rgba(0, 0, 0, .0001) 0%, rgba(0, 0, 0, .5) 100%); - background-image: -webkit-gradient(linear, left top, right top, from(rgba(0, 0, 0, .0001)), to(rgba(0, 0, 0, .5))); - background-image: linear-gradient(to right, rgba(0, 0, 0, .0001) 0%, rgba(0, 0, 0, .5) 100%); - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#00000000', endColorstr='#80000000', GradientType=1); - background-repeat: repeat-x; -} -.carousel-control:hover, -.carousel-control:focus { - color: #fff; - text-decoration: none; - filter: alpha(opacity=90); - outline: 0; - opacity: .9; -} -.carousel-control .icon-prev, -.carousel-control .icon-next, -.carousel-control .glyphicon-chevron-left, -.carousel-control .glyphicon-chevron-right { - position: absolute; - top: 50%; - z-index: 5; - display: inline-block; - margin-top: -10px; -} -.carousel-control .icon-prev, -.carousel-control .glyphicon-chevron-left { - left: 50%; - margin-left: -10px; -} -.carousel-control .icon-next, -.carousel-control .glyphicon-chevron-right { - right: 50%; - margin-right: -10px; -} -.carousel-control .icon-prev, -.carousel-control .icon-next { - width: 20px; - height: 20px; - font-family: serif; - line-height: 1; -} -.carousel-control .icon-prev:before { - content: '\2039'; -} -.carousel-control .icon-next:before { - content: '\203a'; -} -.carousel-indicators { - position: absolute; - bottom: 10px; - left: 50%; - z-index: 15; - width: 60%; - padding-left: 0; - margin-left: -30%; - text-align: center; - list-style: none; -} -.carousel-indicators li { - display: inline-block; - width: 10px; - height: 10px; - margin: 1px; - text-indent: -999px; - cursor: pointer; - background-color: #000 \9; - background-color: rgba(0, 0, 0, 0); - border: 1px solid #fff; - border-radius: 10px; -} -.carousel-indicators .active { - width: 12px; - height: 12px; - margin: 0; - background-color: #fff; -} -.carousel-caption { - position: absolute; - right: 15%; - bottom: 20px; - left: 15%; - z-index: 10; - padding-top: 20px; - padding-bottom: 20px; - color: #fff; - text-align: center; - text-shadow: 0 1px 2px rgba(0, 0, 0, .6); -} -.carousel-caption .btn { - text-shadow: none; -} -@media screen and (min-width: 768px) { - .carousel-control .glyphicon-chevron-left, - .carousel-control .glyphicon-chevron-right, - .carousel-control .icon-prev, - .carousel-control .icon-next { - width: 30px; - height: 30px; - margin-top: -10px; - font-size: 30px; - } - .carousel-control .glyphicon-chevron-left, - .carousel-control .icon-prev { - margin-left: -10px; - } - .carousel-control .glyphicon-chevron-right, - .carousel-control .icon-next { - margin-right: -10px; - } - .carousel-caption { - right: 20%; - left: 20%; - padding-bottom: 30px; - } - .carousel-indicators { - bottom: 20px; - } -} -.clearfix:before, -.clearfix:after, -.dl-horizontal dd:before, -.dl-horizontal dd:after, -.container:before, -.container:after, -.container-fluid:before, -.container-fluid:after, -.row:before, -.row:after, -.form-horizontal .form-group:before, -.form-horizontal .form-group:after, -.btn-toolbar:before, -.btn-toolbar:after, -.btn-group-vertical > .btn-group:before, -.btn-group-vertical > .btn-group:after, -.nav:before, -.nav:after, -.navbar:before, -.navbar:after, -.navbar-header:before, -.navbar-header:after, -.navbar-collapse:before, -.navbar-collapse:after, -.pager:before, -.pager:after, -.panel-body:before, -.panel-body:after, -.modal-header:before, -.modal-header:after, -.modal-footer:before, -.modal-footer:after { - display: table; - content: " "; -} -.clearfix:after, -.dl-horizontal dd:after, -.container:after, -.container-fluid:after, -.row:after, -.form-horizontal .form-group:after, -.btn-toolbar:after, -.btn-group-vertical > .btn-group:after, -.nav:after, -.navbar:after, -.navbar-header:after, -.navbar-collapse:after, -.pager:after, -.panel-body:after, -.modal-header:after, -.modal-footer:after { - clear: both; -} -.center-block { - display: block; - margin-right: auto; - margin-left: auto; -} -.pull-right { - float: right !important; -} -.pull-left { - float: left !important; -} -.hide { - display: none !important; -} -.show { - display: block !important; -} -.invisible { - visibility: hidden; -} -.text-hide { - font: 0/0 a; - color: transparent; - text-shadow: none; - background-color: transparent; - border: 0; -} -.hidden { - display: none !important; -} -.affix { - position: fixed; -} -@-ms-viewport { - width: device-width; -} -.visible-xs, -.visible-sm, -.visible-md, -.visible-lg { - display: none !important; -} -.visible-xs-block, -.visible-xs-inline, -.visible-xs-inline-block, -.visible-sm-block, -.visible-sm-inline, -.visible-sm-inline-block, -.visible-md-block, -.visible-md-inline, -.visible-md-inline-block, -.visible-lg-block, -.visible-lg-inline, -.visible-lg-inline-block { - display: none !important; -} -@media (max-width: 767px) { - .visible-xs { - display: block !important; - } - table.visible-xs { - display: table !important; - } - tr.visible-xs { - display: table-row !important; - } - th.visible-xs, - td.visible-xs { - display: table-cell !important; - } -} -@media (max-width: 767px) { - .visible-xs-block { - display: block !important; - } -} -@media (max-width: 767px) { - .visible-xs-inline { - display: inline !important; - } -} -@media (max-width: 767px) { - .visible-xs-inline-block { - display: inline-block !important; - } -} -@media (min-width: 768px) and (max-width: 991px) { - .visible-sm { - display: block !important; - } - table.visible-sm { - display: table !important; - } - tr.visible-sm { - display: table-row !important; - } - th.visible-sm, - td.visible-sm { - display: table-cell !important; - } -} -@media (min-width: 768px) and (max-width: 991px) { - .visible-sm-block { - display: block !important; - } -} -@media (min-width: 768px) and (max-width: 991px) { - .visible-sm-inline { - display: inline !important; - } -} -@media (min-width: 768px) and (max-width: 991px) { - .visible-sm-inline-block { - display: inline-block !important; - } -} -@media (min-width: 992px) and (max-width: 1199px) { - .visible-md { - display: block !important; - } - table.visible-md { - display: table !important; - } - tr.visible-md { - display: table-row !important; - } - th.visible-md, - td.visible-md { - display: table-cell !important; - } -} -@media (min-width: 992px) and (max-width: 1199px) { - .visible-md-block { - display: block !important; - } -} -@media (min-width: 992px) and (max-width: 1199px) { - .visible-md-inline { - display: inline !important; - } -} -@media (min-width: 992px) and (max-width: 1199px) { - .visible-md-inline-block { - display: inline-block !important; - } -} -@media (min-width: 1200px) { - .visible-lg { - display: block !important; - } - table.visible-lg { - display: table !important; - } - tr.visible-lg { - display: table-row !important; - } - th.visible-lg, - td.visible-lg { - display: table-cell !important; - } -} -@media (min-width: 1200px) { - .visible-lg-block { - display: block !important; - } -} -@media (min-width: 1200px) { - .visible-lg-inline { - display: inline !important; - } -} -@media (min-width: 1200px) { - .visible-lg-inline-block { - display: inline-block !important; - } -} -@media (max-width: 767px) { - .hidden-xs { - display: none !important; - } -} -@media (min-width: 768px) and (max-width: 991px) { - .hidden-sm { - display: none !important; - } -} -@media (min-width: 992px) and (max-width: 1199px) { - .hidden-md { - display: none !important; - } -} -@media (min-width: 1200px) { - .hidden-lg { - display: none !important; - } -} -.visible-print { - display: none !important; -} -@media print { - .visible-print { - display: block !important; - } - table.visible-print { - display: table !important; - } - tr.visible-print { - display: table-row !important; - } - th.visible-print, - td.visible-print { - display: table-cell !important; - } -} -.visible-print-block { - display: none !important; -} -@media print { - .visible-print-block { - display: block !important; - } -} -.visible-print-inline { - display: none !important; -} -@media print { - .visible-print-inline { - display: inline !important; - } -} -.visible-print-inline-block { - display: none !important; -} -@media print { - .visible-print-inline-block { - display: inline-block !important; - } -} -@media print { - .hidden-print { - display: none !important; - } -} -/*# sourceMappingURL=bootstrap.css.map */ diff --git a/admin/bower_components/bootstrap/dist/css/bootstrap.css.map b/admin/bower_components/bootstrap/dist/css/bootstrap.css.map deleted file mode 100644 index f010c82..0000000 --- a/admin/bower_components/bootstrap/dist/css/bootstrap.css.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sources":["bootstrap.css","less/normalize.less","less/print.less","less/glyphicons.less","less/scaffolding.less","less/mixins/vendor-prefixes.less","less/mixins/tab-focus.less","less/mixins/image.less","less/type.less","less/mixins/text-emphasis.less","less/mixins/background-variant.less","less/mixins/text-overflow.less","less/code.less","less/grid.less","less/mixins/grid.less","less/mixins/grid-framework.less","less/tables.less","less/mixins/table-row.less","less/forms.less","less/mixins/forms.less","less/buttons.less","less/mixins/buttons.less","less/mixins/opacity.less","less/component-animations.less","less/dropdowns.less","less/mixins/nav-divider.less","less/mixins/reset-filter.less","less/button-groups.less","less/mixins/border-radius.less","less/input-groups.less","less/navs.less","less/navbar.less","less/mixins/nav-vertical-align.less","less/utilities.less","less/breadcrumbs.less","less/pagination.less","less/mixins/pagination.less","less/pager.less","less/labels.less","less/mixins/labels.less","less/badges.less","less/jumbotron.less","less/thumbnails.less","less/alerts.less","less/mixins/alerts.less","less/progress-bars.less","less/mixins/gradients.less","less/mixins/progress-bar.less","less/media.less","less/list-group.less","less/mixins/list-group.less","less/panels.less","less/mixins/panels.less","less/responsive-embed.less","less/wells.less","less/close.less","less/modals.less","less/tooltip.less","less/mixins/reset-text.less","less/popovers.less","less/carousel.less","less/mixins/clearfix.less","less/mixins/center-block.less","less/mixins/hide-text.less","less/responsive-utilities.less","less/mixins/responsive-visibility.less"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,4EAA4E;ACG5E;EACE,wBAAA;EACA,2BAAA;EACA,+BAAA;CDDD;ACQD;EACE,UAAA;CDND;ACmBD;;;;;;;;;;;;;EAaE,eAAA;CDjBD;ACyBD;;;;EAIE,sBAAA;EACA,yBAAA;CDvBD;AC+BD;EACE,cAAA;EACA,UAAA;CD7BD;ACqCD;;EAEE,cAAA;CDnCD;AC6CD;EACE,8BAAA;CD3CD;ACmDD;;EAEE,WAAA;CDjDD;AC2DD;EACE,0BAAA;CDzDD;ACgED;;EAEE,kBAAA;CD9DD;ACqED;EACE,mBAAA;CDnED;AC2ED;EACE,eAAA;EACA,iBAAA;CDzED;ACgFD;EACE,iBAAA;EACA,YAAA;CD9ED;ACqFD;EACE,eAAA;CDnFD;AC0FD;;EAEE,eAAA;EACA,eAAA;EACA,mBAAA;EACA,yBAAA;CDxFD;AC2FD;EACE,YAAA;CDzFD;AC4FD;EACE,gBAAA;CD1FD;ACoGD;EACE,UAAA;CDlGD;ACyGD;EACE,iBAAA;CDvGD;ACiHD;EACE,iBAAA;CD/GD;ACsHD;EACE,gCAAA;KAAA,6BAAA;UAAA,wBAAA;EACA,UAAA;CDpHD;AC2HD;EACE,eAAA;CDzHD;ACgID;;;;EAIE,kCAAA;EACA,eAAA;CD9HD;ACgJD;;;;;EAKE,eAAA;EACA,cAAA;EACA,UAAA;CD9ID;ACqJD;EACE,kBAAA;CDnJD;AC6JD;;EAEE,qBAAA;CD3JD;ACsKD;;;;EAIE,2BAAA;EACA,gBAAA;CDpKD;AC2KD;;EAEE,gBAAA;CDzKD;ACgLD;;EAEE,UAAA;EACA,WAAA;CD9KD;ACsLD;EACE,oBAAA;CDpLD;AC+LD;;EAEE,+BAAA;KAAA,4BAAA;UAAA,uBAAA;EACA,WAAA;CD7LD;ACsMD;;EAEE,aAAA;CDpMD;AC4MD;EACE,8BAAA;EACA,gCAAA;KAAA,6BAAA;UAAA,wBAAA;CD1MD;ACmND;;EAEE,yBAAA;CDjND;ACwND;EACE,0BAAA;EACA,cAAA;EACA,+BAAA;CDtND;AC8ND;EACE,UAAA;EACA,WAAA;CD5ND;ACmOD;EACE,eAAA;CDjOD;ACyOD;EACE,kBAAA;CDvOD;ACiPD;EACE,0BAAA;EACA,kBAAA;CD/OD;ACkPD;;EAEE,WAAA;CDhPD;AACD,qFAAqF;AElFrF;EA7FI;;;IAGI,mCAAA;IACA,uBAAA;IACA,oCAAA;YAAA,4BAAA;IACA,6BAAA;GFkLL;EE/KC;;IAEI,2BAAA;GFiLL;EE9KC;IACI,6BAAA;GFgLL;EE7KC;IACI,8BAAA;GF+KL;EE1KC;;IAEI,YAAA;GF4KL;EEzKC;;IAEI,uBAAA;IACA,yBAAA;GF2KL;EExKC;IACI,4BAAA;GF0KL;EEvKC;;IAEI,yBAAA;GFyKL;EEtKC;IACI,2BAAA;GFwKL;EErKC;;;IAGI,WAAA;IACA,UAAA;GFuKL;EEpKC;;IAEI,wBAAA;GFsKL;EEhKC;IACI,cAAA;GFkKL;EEhKC;;IAGQ,kCAAA;GFiKT;EE9JC;IACI,uBAAA;GFgKL;EE7JC;IACI,qCAAA;GF+JL;EEhKC;;IAKQ,kCAAA;GF+JT;EE5JC;;IAGQ,kCAAA;GF6JT;CACF;AGnPD;EACE,oCAAA;EACA,sDAAA;EACA,gYAAA;CHqPD;AG7OD;EACE,mBAAA;EACA,SAAA;EACA,sBAAA;EACA,oCAAA;EACA,mBAAA;EACA,oBAAA;EACA,eAAA;EACA,oCAAA;EACA,mCAAA;CH+OD;AG3OmC;EAAW,iBAAA;CH8O9C;AG7OmC;EAAW,iBAAA;CHgP9C;AG9OmC;;EAAW,iBAAA;CHkP9C;AGjPmC;EAAW,iBAAA;CHoP9C;AGnPmC;EAAW,iBAAA;CHsP9C;AGrPmC;EAAW,iBAAA;CHwP9C;AGvPmC;EAAW,iBAAA;CH0P9C;AGzPmC;EAAW,iBAAA;CH4P9C;AG3PmC;EAAW,iBAAA;CH8P9C;AG7PmC;EAAW,iBAAA;CHgQ9C;AG/PmC;EAAW,iBAAA;CHkQ9C;AGjQmC;EAAW,iBAAA;CHoQ9C;AGnQmC;EAAW,iBAAA;CHsQ9C;AGrQmC;EAAW,iBAAA;CHwQ9C;AGvQmC;EAAW,iBAAA;CH0Q9C;AGzQmC;EAAW,iBAAA;CH4Q9C;AG3QmC;EAAW,iBAAA;CH8Q9C;AG7QmC;EAAW,iBAAA;CHgR9C;AG/QmC;EAAW,iBAAA;CHkR9C;AGjRmC;EAAW,iBAAA;CHoR9C;AGnRmC;EAAW,iBAAA;CHsR9C;AGrRmC;EAAW,iBAAA;CHwR9C;AGvRmC;EAAW,iBAAA;CH0R9C;AGzRmC;EAAW,iBAAA;CH4R9C;AG3RmC;EAAW,iBAAA;CH8R9C;AG7RmC;EAAW,iBAAA;CHgS9C;AG/RmC;EAAW,iBAAA;CHkS9C;AGjSmC;EAAW,iBAAA;CHoS9C;AGnSmC;EAAW,iBAAA;CHsS9C;AGrSmC;EAAW,iBAAA;CHwS9C;AGvSmC;EAAW,iBAAA;CH0S9C;AGzSmC;EAAW,iBAAA;CH4S9C;AG3SmC;EAAW,iBAAA;CH8S9C;AG7SmC;EAAW,iBAAA;CHgT9C;AG/SmC;EAAW,iBAAA;CHkT9C;AGjTmC;EAAW,iBAAA;CHoT9C;AGnTmC;EAAW,iBAAA;CHsT9C;AGrTmC;EAAW,iBAAA;CHwT9C;AGvTmC;EAAW,iBAAA;CH0T9C;AGzTmC;EAAW,iBAAA;CH4T9C;AG3TmC;EAAW,iBAAA;CH8T9C;AG7TmC;EAAW,iBAAA;CHgU9C;AG/TmC;EAAW,iBAAA;CHkU9C;AGjUmC;EAAW,iBAAA;CHoU9C;AGnUmC;EAAW,iBAAA;CHsU9C;AGrUmC;EAAW,iBAAA;CHwU9C;AGvUmC;EAAW,iBAAA;CH0U9C;AGzUmC;EAAW,iBAAA;CH4U9C;AG3UmC;EAAW,iBAAA;CH8U9C;AG7UmC;EAAW,iBAAA;CHgV9C;AG/UmC;EAAW,iBAAA;CHkV9C;AGjVmC;EAAW,iBAAA;CHoV9C;AGnVmC;EAAW,iBAAA;CHsV9C;AGrVmC;EAAW,iBAAA;CHwV9C;AGvVmC;EAAW,iBAAA;CH0V9C;AGzVmC;EAAW,iBAAA;CH4V9C;AG3VmC;EAAW,iBAAA;CH8V9C;AG7VmC;EAAW,iBAAA;CHgW9C;AG/VmC;EAAW,iBAAA;CHkW9C;AGjWmC;EAAW,iBAAA;CHoW9C;AGnWmC;EAAW,iBAAA;CHsW9C;AGrWmC;EAAW,iBAAA;CHwW9C;AGvWmC;EAAW,iBAAA;CH0W9C;AGzWmC;EAAW,iBAAA;CH4W9C;AG3WmC;EAAW,iBAAA;CH8W9C;AG7WmC;EAAW,iBAAA;CHgX9C;AG/WmC;EAAW,iBAAA;CHkX9C;AGjXmC;EAAW,iBAAA;CHoX9C;AGnXmC;EAAW,iBAAA;CHsX9C;AGrXmC;EAAW,iBAAA;CHwX9C;AGvXmC;EAAW,iBAAA;CH0X9C;AGzXmC;EAAW,iBAAA;CH4X9C;AG3XmC;EAAW,iBAAA;CH8X9C;AG7XmC;EAAW,iBAAA;CHgY9C;AG/XmC;EAAW,iBAAA;CHkY9C;AGjYmC;EAAW,iBAAA;CHoY9C;AGnYmC;EAAW,iBAAA;CHsY9C;AGrYmC;EAAW,iBAAA;CHwY9C;AGvYmC;EAAW,iBAAA;CH0Y9C;AGzYmC;EAAW,iBAAA;CH4Y9C;AG3YmC;EAAW,iBAAA;CH8Y9C;AG7YmC;EAAW,iBAAA;CHgZ9C;AG/YmC;EAAW,iBAAA;CHkZ9C;AGjZmC;EAAW,iBAAA;CHoZ9C;AGnZmC;EAAW,iBAAA;CHsZ9C;AGrZmC;EAAW,iBAAA;CHwZ9C;AGvZmC;EAAW,iBAAA;CH0Z9C;AGzZmC;EAAW,iBAAA;CH4Z9C;AG3ZmC;EAAW,iBAAA;CH8Z9C;AG7ZmC;EAAW,iBAAA;CHga9C;AG/ZmC;EAAW,iBAAA;CHka9C;AGjamC;EAAW,iBAAA;CHoa9C;AGnamC;EAAW,iBAAA;CHsa9C;AGramC;EAAW,iBAAA;CHwa9C;AGvamC;EAAW,iBAAA;CH0a9C;AGzamC;EAAW,iBAAA;CH4a9C;AG3amC;EAAW,iBAAA;CH8a9C;AG7amC;EAAW,iBAAA;CHgb9C;AG/amC;EAAW,iBAAA;CHkb9C;AGjbmC;EAAW,iBAAA;CHob9C;AGnbmC;EAAW,iBAAA;CHsb9C;AGrbmC;EAAW,iBAAA;CHwb9C;AGvbmC;EAAW,iBAAA;CH0b9C;AGzbmC;EAAW,iBAAA;CH4b9C;AG3bmC;EAAW,iBAAA;CH8b9C;AG7bmC;EAAW,iBAAA;CHgc9C;AG/bmC;EAAW,iBAAA;CHkc9C;AGjcmC;EAAW,iBAAA;CHoc9C;AGncmC;EAAW,iBAAA;CHsc9C;AGrcmC;EAAW,iBAAA;CHwc9C;AGvcmC;EAAW,iBAAA;CH0c9C;AGzcmC;EAAW,iBAAA;CH4c9C;AG3cmC;EAAW,iBAAA;CH8c9C;AG7cmC;EAAW,iBAAA;CHgd9C;AG/cmC;EAAW,iBAAA;CHkd9C;AGjdmC;EAAW,iBAAA;CHod9C;AGndmC;EAAW,iBAAA;CHsd9C;AGrdmC;EAAW,iBAAA;CHwd9C;AGvdmC;EAAW,iBAAA;CH0d9C;AGzdmC;EAAW,iBAAA;CH4d9C;AG3dmC;EAAW,iBAAA;CH8d9C;AG7dmC;EAAW,iBAAA;CHge9C;AG/dmC;EAAW,iBAAA;CHke9C;AGjemC;EAAW,iBAAA;CHoe9C;AGnemC;EAAW,iBAAA;CHse9C;AGremC;EAAW,iBAAA;CHwe9C;AGvemC;EAAW,iBAAA;CH0e9C;AGzemC;EAAW,iBAAA;CH4e9C;AG3emC;EAAW,iBAAA;CH8e9C;AG7emC;EAAW,iBAAA;CHgf9C;AG/emC;EAAW,iBAAA;CHkf9C;AGjfmC;EAAW,iBAAA;CHof9C;AGnfmC;EAAW,iBAAA;CHsf9C;AGrfmC;EAAW,iBAAA;CHwf9C;AGvfmC;EAAW,iBAAA;CH0f9C;AGzfmC;EAAW,iBAAA;CH4f9C;AG3fmC;EAAW,iBAAA;CH8f9C;AG7fmC;EAAW,iBAAA;CHggB9C;AG/fmC;EAAW,iBAAA;CHkgB9C;AGjgBmC;EAAW,iBAAA;CHogB9C;AGngBmC;EAAW,iBAAA;CHsgB9C;AGrgBmC;EAAW,iBAAA;CHwgB9C;AGvgBmC;EAAW,iBAAA;CH0gB9C;AGzgBmC;EAAW,iBAAA;CH4gB9C;AG3gBmC;EAAW,iBAAA;CH8gB9C;AG7gBmC;EAAW,iBAAA;CHghB9C;AG/gBmC;EAAW,iBAAA;CHkhB9C;AGjhBmC;EAAW,iBAAA;CHohB9C;AGnhBmC;EAAW,iBAAA;CHshB9C;AGrhBmC;EAAW,iBAAA;CHwhB9C;AGvhBmC;EAAW,iBAAA;CH0hB9C;AGzhBmC;EAAW,iBAAA;CH4hB9C;AG3hBmC;EAAW,iBAAA;CH8hB9C;AG7hBmC;EAAW,iBAAA;CHgiB9C;AG/hBmC;EAAW,iBAAA;CHkiB9C;AGjiBmC;EAAW,iBAAA;CHoiB9C;AGniBmC;EAAW,iBAAA;CHsiB9C;AGriBmC;EAAW,iBAAA;CHwiB9C;AGviBmC;EAAW,iBAAA;CH0iB9C;AGziBmC;EAAW,iBAAA;CH4iB9C;AG3iBmC;EAAW,iBAAA;CH8iB9C;AG7iBmC;EAAW,iBAAA;CHgjB9C;AG/iBmC;EAAW,iBAAA;CHkjB9C;AGjjBmC;EAAW,iBAAA;CHojB9C;AGnjBmC;EAAW,iBAAA;CHsjB9C;AGrjBmC;EAAW,iBAAA;CHwjB9C;AGvjBmC;EAAW,iBAAA;CH0jB9C;AGzjBmC;EAAW,iBAAA;CH4jB9C;AG3jBmC;EAAW,iBAAA;CH8jB9C;AG7jBmC;EAAW,iBAAA;CHgkB9C;AG/jBmC;EAAW,iBAAA;CHkkB9C;AGjkBmC;EAAW,iBAAA;CHokB9C;AGnkBmC;EAAW,iBAAA;CHskB9C;AGrkBmC;EAAW,iBAAA;CHwkB9C;AGvkBmC;EAAW,iBAAA;CH0kB9C;AGzkBmC;EAAW,iBAAA;CH4kB9C;AG3kBmC;EAAW,iBAAA;CH8kB9C;AG7kBmC;EAAW,iBAAA;CHglB9C;AG/kBmC;EAAW,iBAAA;CHklB9C;AGjlBmC;EAAW,iBAAA;CHolB9C;AGnlBmC;EAAW,iBAAA;CHslB9C;AGrlBmC;EAAW,iBAAA;CHwlB9C;AGvlBmC;EAAW,iBAAA;CH0lB9C;AGzlBmC;EAAW,iBAAA;CH4lB9C;AG3lBmC;EAAW,iBAAA;CH8lB9C;AG7lBmC;EAAW,iBAAA;CHgmB9C;AG/lBmC;EAAW,iBAAA;CHkmB9C;AGjmBmC;EAAW,iBAAA;CHomB9C;AGnmBmC;EAAW,iBAAA;CHsmB9C;AGrmBmC;EAAW,iBAAA;CHwmB9C;AGvmBmC;EAAW,iBAAA;CH0mB9C;AGzmBmC;EAAW,iBAAA;CH4mB9C;AG3mBmC;EAAW,iBAAA;CH8mB9C;AG7mBmC;EAAW,iBAAA;CHgnB9C;AG/mBmC;EAAW,iBAAA;CHknB9C;AGjnBmC;EAAW,iBAAA;CHonB9C;AGnnBmC;EAAW,iBAAA;CHsnB9C;AGrnBmC;EAAW,iBAAA;CHwnB9C;AGvnBmC;EAAW,iBAAA;CH0nB9C;AGznBmC;EAAW,iBAAA;CH4nB9C;AG3nBmC;EAAW,iBAAA;CH8nB9C;AG7nBmC;EAAW,iBAAA;CHgoB9C;AG/nBmC;EAAW,iBAAA;CHkoB9C;AGjoBmC;EAAW,iBAAA;CHooB9C;AGnoBmC;EAAW,iBAAA;CHsoB9C;AGroBmC;EAAW,iBAAA;CHwoB9C;AG/nBmC;EAAW,iBAAA;CHkoB9C;AGjoBmC;EAAW,iBAAA;CHooB9C;AGnoBmC;EAAW,iBAAA;CHsoB9C;AGroBmC;EAAW,iBAAA;CHwoB9C;AGvoBmC;EAAW,iBAAA;CH0oB9C;AGzoBmC;EAAW,iBAAA;CH4oB9C;AG3oBmC;EAAW,iBAAA;CH8oB9C;AG7oBmC;EAAW,iBAAA;CHgpB9C;AG/oBmC;EAAW,iBAAA;CHkpB9C;AGjpBmC;EAAW,iBAAA;CHopB9C;AGnpBmC;EAAW,iBAAA;CHspB9C;AGrpBmC;EAAW,iBAAA;CHwpB9C;AGvpBmC;EAAW,iBAAA;CH0pB9C;AGzpBmC;EAAW,iBAAA;CH4pB9C;AG3pBmC;EAAW,iBAAA;CH8pB9C;AG7pBmC;EAAW,iBAAA;CHgqB9C;AG/pBmC;EAAW,iBAAA;CHkqB9C;AGjqBmC;EAAW,iBAAA;CHoqB9C;AGnqBmC;EAAW,iBAAA;CHsqB9C;AGrqBmC;EAAW,iBAAA;CHwqB9C;AGvqBmC;EAAW,iBAAA;CH0qB9C;AGzqBmC;EAAW,iBAAA;CH4qB9C;AG3qBmC;EAAW,iBAAA;CH8qB9C;AG7qBmC;EAAW,iBAAA;CHgrB9C;AG/qBmC;EAAW,iBAAA;CHkrB9C;AGjrBmC;EAAW,iBAAA;CHorB9C;AGnrBmC;EAAW,iBAAA;CHsrB9C;AGrrBmC;EAAW,iBAAA;CHwrB9C;AGvrBmC;EAAW,iBAAA;CH0rB9C;AGzrBmC;EAAW,iBAAA;CH4rB9C;AG3rBmC;EAAW,iBAAA;CH8rB9C;AG7rBmC;EAAW,iBAAA;CHgsB9C;AG/rBmC;EAAW,iBAAA;CHksB9C;AGjsBmC;EAAW,iBAAA;CHosB9C;AGnsBmC;EAAW,iBAAA;CHssB9C;AGrsBmC;EAAW,iBAAA;CHwsB9C;AGvsBmC;EAAW,iBAAA;CH0sB9C;AGzsBmC;EAAW,iBAAA;CH4sB9C;AG3sBmC;EAAW,iBAAA;CH8sB9C;AG7sBmC;EAAW,iBAAA;CHgtB9C;AG/sBmC;EAAW,iBAAA;CHktB9C;AGjtBmC;EAAW,iBAAA;CHotB9C;AGntBmC;EAAW,iBAAA;CHstB9C;AGrtBmC;EAAW,iBAAA;CHwtB9C;AGvtBmC;EAAW,iBAAA;CH0tB9C;AGztBmC;EAAW,iBAAA;CH4tB9C;AG3tBmC;EAAW,iBAAA;CH8tB9C;AG7tBmC;EAAW,iBAAA;CHguB9C;AG/tBmC;EAAW,iBAAA;CHkuB9C;AGjuBmC;EAAW,iBAAA;CHouB9C;AGnuBmC;EAAW,iBAAA;CHsuB9C;AGruBmC;EAAW,iBAAA;CHwuB9C;AGvuBmC;EAAW,iBAAA;CH0uB9C;AGzuBmC;EAAW,iBAAA;CH4uB9C;AG3uBmC;EAAW,iBAAA;CH8uB9C;AG7uBmC;EAAW,iBAAA;CHgvB9C;AIthCD;ECgEE,+BAAA;EACG,4BAAA;EACK,uBAAA;CLy9BT;AIxhCD;;EC6DE,+BAAA;EACG,4BAAA;EACK,uBAAA;CL+9BT;AIthCD;EACE,gBAAA;EACA,8CAAA;CJwhCD;AIrhCD;EACE,4DAAA;EACA,gBAAA;EACA,wBAAA;EACA,eAAA;EACA,uBAAA;CJuhCD;AInhCD;;;;EAIE,qBAAA;EACA,mBAAA;EACA,qBAAA;CJqhCD;AI/gCD;EACE,eAAA;EACA,sBAAA;CJihCD;AI/gCC;;EAEE,eAAA;EACA,2BAAA;CJihCH;AI9gCC;EEnDA,2CAAA;EACA,qBAAA;CNokCD;AIvgCD;EACE,UAAA;CJygCD;AIngCD;EACE,uBAAA;CJqgCD;AIjgCD;;;;;EGvEE,eAAA;EACA,gBAAA;EACA,aAAA;CP+kCD;AIrgCD;EACE,mBAAA;CJugCD;AIjgCD;EACE,aAAA;EACA,wBAAA;EACA,uBAAA;EACA,uBAAA;EACA,mBAAA;EC6FA,yCAAA;EACK,oCAAA;EACG,iCAAA;EEvLR,sBAAA;EACA,gBAAA;EACA,aAAA;CP+lCD;AIjgCD;EACE,mBAAA;CJmgCD;AI7/BD;EACE,iBAAA;EACA,oBAAA;EACA,UAAA;EACA,8BAAA;CJ+/BD;AIv/BD;EACE,mBAAA;EACA,WAAA;EACA,YAAA;EACA,aAAA;EACA,WAAA;EACA,iBAAA;EACA,uBAAA;EACA,UAAA;CJy/BD;AIj/BC;;EAEE,iBAAA;EACA,YAAA;EACA,aAAA;EACA,UAAA;EACA,kBAAA;EACA,WAAA;CJm/BH;AIx+BD;EACE,gBAAA;CJ0+BD;AQjoCD;;;;;;;;;;;;EAEE,qBAAA;EACA,iBAAA;EACA,iBAAA;EACA,eAAA;CR6oCD;AQlpCD;;;;;;;;;;;;;;;;;;;;;;;;EASI,oBAAA;EACA,eAAA;EACA,eAAA;CRmqCH;AQ/pCD;;;;;;EAGE,iBAAA;EACA,oBAAA;CRoqCD;AQxqCD;;;;;;;;;;;;EAQI,eAAA;CR8qCH;AQ3qCD;;;;;;EAGE,iBAAA;EACA,oBAAA;CRgrCD;AQprCD;;;;;;;;;;;;EAQI,eAAA;CR0rCH;AQtrCD;;EAAU,gBAAA;CR0rCT;AQzrCD;;EAAU,gBAAA;CR6rCT;AQ5rCD;;EAAU,gBAAA;CRgsCT;AQ/rCD;;EAAU,gBAAA;CRmsCT;AQlsCD;;EAAU,gBAAA;CRssCT;AQrsCD;;EAAU,gBAAA;CRysCT;AQnsCD;EACE,iBAAA;CRqsCD;AQlsCD;EACE,oBAAA;EACA,gBAAA;EACA,iBAAA;EACA,iBAAA;CRosCD;AQ/rCD;EAwOA;IA1OI,gBAAA;GRqsCD;CACF;AQ7rCD;;EAEE,eAAA;CR+rCD;AQ5rCD;;EAEE,0BAAA;EACA,cAAA;CR8rCD;AQ1rCD;EAAuB,iBAAA;CR6rCtB;AQ5rCD;EAAuB,kBAAA;CR+rCtB;AQ9rCD;EAAuB,mBAAA;CRisCtB;AQhsCD;EAAuB,oBAAA;CRmsCtB;AQlsCD;EAAuB,oBAAA;CRqsCtB;AQlsCD;EAAuB,0BAAA;CRqsCtB;AQpsCD;EAAuB,0BAAA;CRusCtB;AQtsCD;EAAuB,2BAAA;CRysCtB;AQtsCD;EACE,eAAA;CRwsCD;AQtsCD;ECrGE,eAAA;CT8yCD;AS7yCC;;EAEE,eAAA;CT+yCH;AQ1sCD;ECxGE,eAAA;CTqzCD;ASpzCC;;EAEE,eAAA;CTszCH;AQ9sCD;EC3GE,eAAA;CT4zCD;AS3zCC;;EAEE,eAAA;CT6zCH;AQltCD;EC9GE,eAAA;CTm0CD;ASl0CC;;EAEE,eAAA;CTo0CH;AQttCD;ECjHE,eAAA;CT00CD;ASz0CC;;EAEE,eAAA;CT20CH;AQttCD;EAGE,YAAA;EE3HA,0BAAA;CVk1CD;AUj1CC;;EAEE,0BAAA;CVm1CH;AQxtCD;EE9HE,0BAAA;CVy1CD;AUx1CC;;EAEE,0BAAA;CV01CH;AQ5tCD;EEjIE,0BAAA;CVg2CD;AU/1CC;;EAEE,0BAAA;CVi2CH;AQhuCD;EEpIE,0BAAA;CVu2CD;AUt2CC;;EAEE,0BAAA;CVw2CH;AQpuCD;EEvIE,0BAAA;CV82CD;AU72CC;;EAEE,0BAAA;CV+2CH;AQnuCD;EACE,oBAAA;EACA,oBAAA;EACA,iCAAA;CRquCD;AQ7tCD;;EAEE,cAAA;EACA,oBAAA;CR+tCD;AQluCD;;;;EAMI,iBAAA;CRkuCH;AQ3tCD;EACE,gBAAA;EACA,iBAAA;CR6tCD;AQztCD;EALE,gBAAA;EACA,iBAAA;EAMA,kBAAA;CR4tCD;AQ9tCD;EAKI,sBAAA;EACA,kBAAA;EACA,mBAAA;CR4tCH;AQvtCD;EACE,cAAA;EACA,oBAAA;CRytCD;AQvtCD;;EAEE,wBAAA;CRytCD;AQvtCD;EACE,kBAAA;CRytCD;AQvtCD;EACE,eAAA;CRytCD;AQhsCD;EA6EA;IAvFM,YAAA;IACA,aAAA;IACA,YAAA;IACA,kBAAA;IGtNJ,iBAAA;IACA,wBAAA;IACA,oBAAA;GXq6CC;EQ7nCH;IAhFM,mBAAA;GRgtCH;CACF;AQvsCD;;EAGE,aAAA;EACA,kCAAA;CRwsCD;AQtsCD;EACE,eAAA;EA9IqB,0BAAA;CRu1CtB;AQpsCD;EACE,mBAAA;EACA,iBAAA;EACA,kBAAA;EACA,+BAAA;CRssCD;AQjsCG;;;EACE,iBAAA;CRqsCL;AQ/sCD;;;EAmBI,eAAA;EACA,eAAA;EACA,wBAAA;EACA,eAAA;CRisCH;AQ/rCG;;;EACE,uBAAA;CRmsCL;AQ3rCD;;EAEE,oBAAA;EACA,gBAAA;EACA,gCAAA;EACA,eAAA;EACA,kBAAA;CR6rCD;AQvrCG;;;;;;EAAW,YAAA;CR+rCd;AQ9rCG;;;;;;EACE,uBAAA;CRqsCL;AQ/rCD;EACE,oBAAA;EACA,mBAAA;EACA,wBAAA;CRisCD;AYv+CD;;;;EAIE,+DAAA;CZy+CD;AYr+CD;EACE,iBAAA;EACA,eAAA;EACA,eAAA;EACA,0BAAA;EACA,mBAAA;CZu+CD;AYn+CD;EACE,iBAAA;EACA,eAAA;EACA,YAAA;EACA,uBAAA;EACA,mBAAA;EACA,uDAAA;UAAA,+CAAA;CZq+CD;AY3+CD;EASI,WAAA;EACA,gBAAA;EACA,kBAAA;EACA,yBAAA;UAAA,iBAAA;CZq+CH;AYh+CD;EACE,eAAA;EACA,eAAA;EACA,iBAAA;EACA,gBAAA;EACA,wBAAA;EACA,sBAAA;EACA,sBAAA;EACA,eAAA;EACA,0BAAA;EACA,uBAAA;EACA,mBAAA;CZk+CD;AY7+CD;EAeI,WAAA;EACA,mBAAA;EACA,eAAA;EACA,sBAAA;EACA,8BAAA;EACA,iBAAA;CZi+CH;AY59CD;EACE,kBAAA;EACA,mBAAA;CZ89CD;AaxhDD;ECHE,mBAAA;EACA,kBAAA;EACA,mBAAA;EACA,oBAAA;Cd8hDD;AaxhDC;EAqEF;IAvEI,aAAA;Gb8hDD;CACF;Aa1hDC;EAkEF;IApEI,aAAA;GbgiDD;CACF;Aa5hDD;EA+DA;IAjEI,cAAA;GbkiDD;CACF;AazhDD;ECvBE,mBAAA;EACA,kBAAA;EACA,mBAAA;EACA,oBAAA;CdmjDD;AathDD;ECvBE,mBAAA;EACA,oBAAA;CdgjDD;AehjDG;EACE,mBAAA;EAEA,gBAAA;EAEA,mBAAA;EACA,oBAAA;CfgjDL;AehiDG;EACE,YAAA;CfkiDL;Ae3hDC;EACE,YAAA;Cf6hDH;Ae9hDC;EACE,oBAAA;CfgiDH;AejiDC;EACE,oBAAA;CfmiDH;AepiDC;EACE,WAAA;CfsiDH;AeviDC;EACE,oBAAA;CfyiDH;Ae1iDC;EACE,oBAAA;Cf4iDH;Ae7iDC;EACE,WAAA;Cf+iDH;AehjDC;EACE,oBAAA;CfkjDH;AenjDC;EACE,oBAAA;CfqjDH;AetjDC;EACE,WAAA;CfwjDH;AezjDC;EACE,oBAAA;Cf2jDH;Ae5jDC;EACE,mBAAA;Cf8jDH;AehjDC;EACE,YAAA;CfkjDH;AenjDC;EACE,oBAAA;CfqjDH;AetjDC;EACE,oBAAA;CfwjDH;AezjDC;EACE,WAAA;Cf2jDH;Ae5jDC;EACE,oBAAA;Cf8jDH;Ae/jDC;EACE,oBAAA;CfikDH;AelkDC;EACE,WAAA;CfokDH;AerkDC;EACE,oBAAA;CfukDH;AexkDC;EACE,oBAAA;Cf0kDH;Ae3kDC;EACE,WAAA;Cf6kDH;Ae9kDC;EACE,oBAAA;CfglDH;AejlDC;EACE,mBAAA;CfmlDH;Ae/kDC;EACE,YAAA;CfilDH;AejmDC;EACE,WAAA;CfmmDH;AepmDC;EACE,mBAAA;CfsmDH;AevmDC;EACE,mBAAA;CfymDH;Ae1mDC;EACE,UAAA;Cf4mDH;Ae7mDC;EACE,mBAAA;Cf+mDH;AehnDC;EACE,mBAAA;CfknDH;AennDC;EACE,UAAA;CfqnDH;AetnDC;EACE,mBAAA;CfwnDH;AeznDC;EACE,mBAAA;Cf2nDH;Ae5nDC;EACE,UAAA;Cf8nDH;Ae/nDC;EACE,mBAAA;CfioDH;AeloDC;EACE,kBAAA;CfooDH;AehoDC;EACE,WAAA;CfkoDH;AepnDC;EACE,kBAAA;CfsnDH;AevnDC;EACE,0BAAA;CfynDH;Ae1nDC;EACE,0BAAA;Cf4nDH;Ae7nDC;EACE,iBAAA;Cf+nDH;AehoDC;EACE,0BAAA;CfkoDH;AenoDC;EACE,0BAAA;CfqoDH;AetoDC;EACE,iBAAA;CfwoDH;AezoDC;EACE,0BAAA;Cf2oDH;Ae5oDC;EACE,0BAAA;Cf8oDH;Ae/oDC;EACE,iBAAA;CfipDH;AelpDC;EACE,0BAAA;CfopDH;AerpDC;EACE,yBAAA;CfupDH;AexpDC;EACE,gBAAA;Cf0pDH;Aa1pDD;EElCI;IACE,YAAA;Gf+rDH;EexrDD;IACE,YAAA;Gf0rDD;Ee3rDD;IACE,oBAAA;Gf6rDD;Ee9rDD;IACE,oBAAA;GfgsDD;EejsDD;IACE,WAAA;GfmsDD;EepsDD;IACE,oBAAA;GfssDD;EevsDD;IACE,oBAAA;GfysDD;Ee1sDD;IACE,WAAA;Gf4sDD;Ee7sDD;IACE,oBAAA;Gf+sDD;EehtDD;IACE,oBAAA;GfktDD;EentDD;IACE,WAAA;GfqtDD;EettDD;IACE,oBAAA;GfwtDD;EeztDD;IACE,mBAAA;Gf2tDD;Ee7sDD;IACE,YAAA;Gf+sDD;EehtDD;IACE,oBAAA;GfktDD;EentDD;IACE,oBAAA;GfqtDD;EettDD;IACE,WAAA;GfwtDD;EeztDD;IACE,oBAAA;Gf2tDD;Ee5tDD;IACE,oBAAA;Gf8tDD;Ee/tDD;IACE,WAAA;GfiuDD;EeluDD;IACE,oBAAA;GfouDD;EeruDD;IACE,oBAAA;GfuuDD;EexuDD;IACE,WAAA;Gf0uDD;Ee3uDD;IACE,oBAAA;Gf6uDD;Ee9uDD;IACE,mBAAA;GfgvDD;Ee5uDD;IACE,YAAA;Gf8uDD;Ee9vDD;IACE,WAAA;GfgwDD;EejwDD;IACE,mBAAA;GfmwDD;EepwDD;IACE,mBAAA;GfswDD;EevwDD;IACE,UAAA;GfywDD;Ee1wDD;IACE,mBAAA;Gf4wDD;Ee7wDD;IACE,mBAAA;Gf+wDD;EehxDD;IACE,UAAA;GfkxDD;EenxDD;IACE,mBAAA;GfqxDD;EetxDD;IACE,mBAAA;GfwxDD;EezxDD;IACE,UAAA;Gf2xDD;Ee5xDD;IACE,mBAAA;Gf8xDD;Ee/xDD;IACE,kBAAA;GfiyDD;Ee7xDD;IACE,WAAA;Gf+xDD;EejxDD;IACE,kBAAA;GfmxDD;EepxDD;IACE,0BAAA;GfsxDD;EevxDD;IACE,0BAAA;GfyxDD;Ee1xDD;IACE,iBAAA;Gf4xDD;Ee7xDD;IACE,0BAAA;Gf+xDD;EehyDD;IACE,0BAAA;GfkyDD;EenyDD;IACE,iBAAA;GfqyDD;EetyDD;IACE,0BAAA;GfwyDD;EezyDD;IACE,0BAAA;Gf2yDD;Ee5yDD;IACE,iBAAA;Gf8yDD;Ee/yDD;IACE,0BAAA;GfizDD;EelzDD;IACE,yBAAA;GfozDD;EerzDD;IACE,gBAAA;GfuzDD;CACF;Aa/yDD;EE3CI;IACE,YAAA;Gf61DH;Eet1DD;IACE,YAAA;Gfw1DD;Eez1DD;IACE,oBAAA;Gf21DD;Ee51DD;IACE,oBAAA;Gf81DD;Ee/1DD;IACE,WAAA;Gfi2DD;Eel2DD;IACE,oBAAA;Gfo2DD;Eer2DD;IACE,oBAAA;Gfu2DD;Eex2DD;IACE,WAAA;Gf02DD;Ee32DD;IACE,oBAAA;Gf62DD;Ee92DD;IACE,oBAAA;Gfg3DD;Eej3DD;IACE,WAAA;Gfm3DD;Eep3DD;IACE,oBAAA;Gfs3DD;Eev3DD;IACE,mBAAA;Gfy3DD;Ee32DD;IACE,YAAA;Gf62DD;Ee92DD;IACE,oBAAA;Gfg3DD;Eej3DD;IACE,oBAAA;Gfm3DD;Eep3DD;IACE,WAAA;Gfs3DD;Eev3DD;IACE,oBAAA;Gfy3DD;Ee13DD;IACE,oBAAA;Gf43DD;Ee73DD;IACE,WAAA;Gf+3DD;Eeh4DD;IACE,oBAAA;Gfk4DD;Een4DD;IACE,oBAAA;Gfq4DD;Eet4DD;IACE,WAAA;Gfw4DD;Eez4DD;IACE,oBAAA;Gf24DD;Ee54DD;IACE,mBAAA;Gf84DD;Ee14DD;IACE,YAAA;Gf44DD;Ee55DD;IACE,WAAA;Gf85DD;Ee/5DD;IACE,mBAAA;Gfi6DD;Eel6DD;IACE,mBAAA;Gfo6DD;Eer6DD;IACE,UAAA;Gfu6DD;Eex6DD;IACE,mBAAA;Gf06DD;Ee36DD;IACE,mBAAA;Gf66DD;Ee96DD;IACE,UAAA;Gfg7DD;Eej7DD;IACE,mBAAA;Gfm7DD;Eep7DD;IACE,mBAAA;Gfs7DD;Eev7DD;IACE,UAAA;Gfy7DD;Ee17DD;IACE,mBAAA;Gf47DD;Ee77DD;IACE,kBAAA;Gf+7DD;Ee37DD;IACE,WAAA;Gf67DD;Ee/6DD;IACE,kBAAA;Gfi7DD;Eel7DD;IACE,0BAAA;Gfo7DD;Eer7DD;IACE,0BAAA;Gfu7DD;Eex7DD;IACE,iBAAA;Gf07DD;Ee37DD;IACE,0BAAA;Gf67DD;Ee97DD;IACE,0BAAA;Gfg8DD;Eej8DD;IACE,iBAAA;Gfm8DD;Eep8DD;IACE,0BAAA;Gfs8DD;Eev8DD;IACE,0BAAA;Gfy8DD;Ee18DD;IACE,iBAAA;Gf48DD;Ee78DD;IACE,0BAAA;Gf+8DD;Eeh9DD;IACE,yBAAA;Gfk9DD;Een9DD;IACE,gBAAA;Gfq9DD;CACF;Aa18DD;EE9CI;IACE,YAAA;Gf2/DH;Eep/DD;IACE,YAAA;Gfs/DD;Eev/DD;IACE,oBAAA;Gfy/DD;Ee1/DD;IACE,oBAAA;Gf4/DD;Ee7/DD;IACE,WAAA;Gf+/DD;EehgED;IACE,oBAAA;GfkgED;EengED;IACE,oBAAA;GfqgED;EetgED;IACE,WAAA;GfwgED;EezgED;IACE,oBAAA;Gf2gED;Ee5gED;IACE,oBAAA;Gf8gED;Ee/gED;IACE,WAAA;GfihED;EelhED;IACE,oBAAA;GfohED;EerhED;IACE,mBAAA;GfuhED;EezgED;IACE,YAAA;Gf2gED;Ee5gED;IACE,oBAAA;Gf8gED;Ee/gED;IACE,oBAAA;GfihED;EelhED;IACE,WAAA;GfohED;EerhED;IACE,oBAAA;GfuhED;EexhED;IACE,oBAAA;Gf0hED;Ee3hED;IACE,WAAA;Gf6hED;Ee9hED;IACE,oBAAA;GfgiED;EejiED;IACE,oBAAA;GfmiED;EepiED;IACE,WAAA;GfsiED;EeviED;IACE,oBAAA;GfyiED;Ee1iED;IACE,mBAAA;Gf4iED;EexiED;IACE,YAAA;Gf0iED;Ee1jED;IACE,WAAA;Gf4jED;Ee7jED;IACE,mBAAA;Gf+jED;EehkED;IACE,mBAAA;GfkkED;EenkED;IACE,UAAA;GfqkED;EetkED;IACE,mBAAA;GfwkED;EezkED;IACE,mBAAA;Gf2kED;Ee5kED;IACE,UAAA;Gf8kED;Ee/kED;IACE,mBAAA;GfilED;EellED;IACE,mBAAA;GfolED;EerlED;IACE,UAAA;GfulED;EexlED;IACE,mBAAA;Gf0lED;Ee3lED;IACE,kBAAA;Gf6lED;EezlED;IACE,WAAA;Gf2lED;Ee7kED;IACE,kBAAA;Gf+kED;EehlED;IACE,0BAAA;GfklED;EenlED;IACE,0BAAA;GfqlED;EetlED;IACE,iBAAA;GfwlED;EezlED;IACE,0BAAA;Gf2lED;Ee5lED;IACE,0BAAA;Gf8lED;Ee/lED;IACE,iBAAA;GfimED;EelmED;IACE,0BAAA;GfomED;EermED;IACE,0BAAA;GfumED;EexmED;IACE,iBAAA;Gf0mED;Ee3mED;IACE,0BAAA;Gf6mED;Ee9mED;IACE,yBAAA;GfgnED;EejnED;IACE,gBAAA;GfmnED;CACF;AgBvrED;EACE,8BAAA;ChByrED;AgBvrED;EACE,iBAAA;EACA,oBAAA;EACA,eAAA;EACA,iBAAA;ChByrED;AgBvrED;EACE,iBAAA;ChByrED;AgBnrED;EACE,YAAA;EACA,gBAAA;EACA,oBAAA;ChBqrED;AgBxrED;;;;;;EAWQ,aAAA;EACA,wBAAA;EACA,oBAAA;EACA,2BAAA;ChBqrEP;AgBnsED;EAoBI,uBAAA;EACA,8BAAA;ChBkrEH;AgBvsED;;;;;;EA8BQ,cAAA;ChBirEP;AgB/sED;EAoCI,2BAAA;ChB8qEH;AgBltED;EAyCI,uBAAA;ChB4qEH;AgBrqED;;;;;;EAOQ,aAAA;ChBsqEP;AgB3pED;EACE,uBAAA;ChB6pED;AgB9pED;;;;;;EAQQ,uBAAA;ChB8pEP;AgBtqED;;EAeM,yBAAA;ChB2pEL;AgBjpED;EAEI,0BAAA;ChBkpEH;AgBzoED;EAEI,0BAAA;ChB0oEH;AgBjoED;EACE,iBAAA;EACA,YAAA;EACA,sBAAA;ChBmoED;AgB9nEG;;EACE,iBAAA;EACA,YAAA;EACA,oBAAA;ChBioEL;AiB7wEC;;;;;;;;;;;;EAOI,0BAAA;CjBoxEL;AiB9wEC;;;;;EAMI,0BAAA;CjB+wEL;AiBlyEC;;;;;;;;;;;;EAOI,0BAAA;CjByyEL;AiBnyEC;;;;;EAMI,0BAAA;CjBoyEL;AiBvzEC;;;;;;;;;;;;EAOI,0BAAA;CjB8zEL;AiBxzEC;;;;;EAMI,0BAAA;CjByzEL;AiB50EC;;;;;;;;;;;;EAOI,0BAAA;CjBm1EL;AiB70EC;;;;;EAMI,0BAAA;CjB80EL;AiBj2EC;;;;;;;;;;;;EAOI,0BAAA;CjBw2EL;AiBl2EC;;;;;EAMI,0BAAA;CjBm2EL;AgBjtED;EACE,iBAAA;EACA,kBAAA;ChBmtED;AgBtpED;EACA;IA3DI,YAAA;IACA,oBAAA;IACA,mBAAA;IACA,6CAAA;IACA,uBAAA;GhBotED;EgB7pEH;IAnDM,iBAAA;GhBmtEH;EgBhqEH;;;;;;IA1CY,oBAAA;GhBktET;EgBxqEH;IAlCM,UAAA;GhB6sEH;EgB3qEH;;;;;;IAzBY,eAAA;GhB4sET;EgBnrEH;;;;;;IArBY,gBAAA;GhBgtET;EgB3rEH;;;;IARY,iBAAA;GhBysET;CACF;AkBn6ED;EACE,WAAA;EACA,UAAA;EACA,UAAA;EAIA,aAAA;ClBk6ED;AkB/5ED;EACE,eAAA;EACA,YAAA;EACA,WAAA;EACA,oBAAA;EACA,gBAAA;EACA,qBAAA;EACA,eAAA;EACA,UAAA;EACA,iCAAA;ClBi6ED;AkB95ED;EACE,sBAAA;EACA,gBAAA;EACA,mBAAA;EACA,kBAAA;ClBg6ED;AkBr5ED;Eb4BE,+BAAA;EACG,4BAAA;EACK,uBAAA;CL43ET;AkBr5ED;;EAEE,gBAAA;EACA,mBAAA;EACA,oBAAA;ClBu5ED;AkBp5ED;EACE,eAAA;ClBs5ED;AkBl5ED;EACE,eAAA;EACA,YAAA;ClBo5ED;AkBh5ED;;EAEE,aAAA;ClBk5ED;AkB94ED;;;EZrEE,2CAAA;EACA,qBAAA;CNw9ED;AkB74ED;EACE,eAAA;EACA,iBAAA;EACA,gBAAA;EACA,wBAAA;EACA,eAAA;ClB+4ED;AkBr3ED;EACE,eAAA;EACA,YAAA;EACA,aAAA;EACA,kBAAA;EACA,gBAAA;EACA,wBAAA;EACA,eAAA;EACA,uBAAA;EACA,uBAAA;EACA,uBAAA;EACA,mBAAA;EbxDA,yDAAA;EACQ,iDAAA;EAyHR,uFAAA;EACK,0EAAA;EACG,uEAAA;CLwzET;AmBh8EC;EACE,sBAAA;EACA,WAAA;EdUF,uFAAA;EACQ,+EAAA;CLy7ET;AKx5EC;EACE,YAAA;EACA,WAAA;CL05EH;AKx5EC;EAA0B,YAAA;CL25E3B;AK15EC;EAAgC,YAAA;CL65EjC;AkBj4EC;EACE,UAAA;EACA,8BAAA;ClBm4EH;AkB33EC;;;EAGE,0BAAA;EACA,WAAA;ClB63EH;AkB13EC;;EAEE,oBAAA;ClB43EH;AkBx3EC;EACE,aAAA;ClB03EH;AkB92ED;EACE,yBAAA;ClBg3ED;AkBx0ED;EAtBI;;;;IACE,kBAAA;GlBo2EH;EkBj2EC;;;;;;;;IAEE,kBAAA;GlBy2EH;EkBt2EC;;;;;;;;IAEE,kBAAA;GlB82EH;CACF;AkBp2ED;EACE,oBAAA;ClBs2ED;AkB91ED;;EAEE,mBAAA;EACA,eAAA;EACA,iBAAA;EACA,oBAAA;ClBg2ED;AkBr2ED;;EAQI,iBAAA;EACA,mBAAA;EACA,iBAAA;EACA,oBAAA;EACA,gBAAA;ClBi2EH;AkB91ED;;;;EAIE,mBAAA;EACA,mBAAA;EACA,mBAAA;ClBg2ED;AkB71ED;;EAEE,iBAAA;ClB+1ED;AkB31ED;;EAEE,mBAAA;EACA,sBAAA;EACA,mBAAA;EACA,iBAAA;EACA,uBAAA;EACA,oBAAA;EACA,gBAAA;ClB61ED;AkB31ED;;EAEE,cAAA;EACA,kBAAA;ClB61ED;AkBp1EC;;;;;;EAGE,oBAAA;ClBy1EH;AkBn1EC;;;;EAEE,oBAAA;ClBu1EH;AkBj1EC;;;;EAGI,oBAAA;ClBo1EL;AkBz0ED;EAEE,iBAAA;EACA,oBAAA;EAEA,iBAAA;EACA,iBAAA;ClBy0ED;AkBv0EC;;EAEE,gBAAA;EACA,iBAAA;ClBy0EH;AkB5zED;ECnQE,aAAA;EACA,kBAAA;EACA,gBAAA;EACA,iBAAA;EACA,mBAAA;CnBkkFD;AmBhkFC;EACE,aAAA;EACA,kBAAA;CnBkkFH;AmB/jFC;;EAEE,aAAA;CnBikFH;AkBx0ED;EAEI,aAAA;EACA,kBAAA;EACA,gBAAA;EACA,iBAAA;EACA,mBAAA;ClBy0EH;AkB/0ED;EASI,aAAA;EACA,kBAAA;ClBy0EH;AkBn1ED;;EAcI,aAAA;ClBy0EH;AkBv1ED;EAiBI,aAAA;EACA,iBAAA;EACA,kBAAA;EACA,gBAAA;EACA,iBAAA;ClBy0EH;AkBr0ED;EC/RE,aAAA;EACA,mBAAA;EACA,gBAAA;EACA,uBAAA;EACA,mBAAA;CnBumFD;AmBrmFC;EACE,aAAA;EACA,kBAAA;CnBumFH;AmBpmFC;;EAEE,aAAA;CnBsmFH;AkBj1ED;EAEI,aAAA;EACA,mBAAA;EACA,gBAAA;EACA,uBAAA;EACA,mBAAA;ClBk1EH;AkBx1ED;EASI,aAAA;EACA,kBAAA;ClBk1EH;AkB51ED;;EAcI,aAAA;ClBk1EH;AkBh2ED;EAiBI,aAAA;EACA,iBAAA;EACA,mBAAA;EACA,gBAAA;EACA,uBAAA;ClBk1EH;AkBz0ED;EAEE,mBAAA;ClB00ED;AkB50ED;EAMI,sBAAA;ClBy0EH;AkBr0ED;EACE,mBAAA;EACA,OAAA;EACA,SAAA;EACA,WAAA;EACA,eAAA;EACA,YAAA;EACA,aAAA;EACA,kBAAA;EACA,mBAAA;EACA,qBAAA;ClBu0ED;AkBr0ED;;;EAGE,YAAA;EACA,aAAA;EACA,kBAAA;ClBu0ED;AkBr0ED;;;EAGE,YAAA;EACA,aAAA;EACA,kBAAA;ClBu0ED;AkBn0ED;;;;;;;;;;EC1ZI,eAAA;CnByuFH;AkB/0ED;ECtZI,sBAAA;Ed+CF,yDAAA;EACQ,iDAAA;CL0rFT;AmBxuFG;EACE,sBAAA;Ed4CJ,0EAAA;EACQ,kEAAA;CL+rFT;AkBz1ED;EC5YI,eAAA;EACA,sBAAA;EACA,0BAAA;CnBwuFH;AkB91ED;ECtYI,eAAA;CnBuuFH;AkB91ED;;;;;;;;;;EC7ZI,eAAA;CnBuwFH;AkB12ED;ECzZI,sBAAA;Ed+CF,yDAAA;EACQ,iDAAA;CLwtFT;AmBtwFG;EACE,sBAAA;Ed4CJ,0EAAA;EACQ,kEAAA;CL6tFT;AkBp3ED;EC/YI,eAAA;EACA,sBAAA;EACA,0BAAA;CnBswFH;AkBz3ED;ECzYI,eAAA;CnBqwFH;AkBz3ED;;;;;;;;;;EChaI,eAAA;CnBqyFH;AkBr4ED;EC5ZI,sBAAA;Ed+CF,yDAAA;EACQ,iDAAA;CLsvFT;AmBpyFG;EACE,sBAAA;Ed4CJ,0EAAA;EACQ,kEAAA;CL2vFT;AkB/4ED;EClZI,eAAA;EACA,sBAAA;EACA,0BAAA;CnBoyFH;AkBp5ED;EC5YI,eAAA;CnBmyFH;AkBh5EC;EACE,UAAA;ClBk5EH;AkBh5EC;EACE,OAAA;ClBk5EH;AkBx4ED;EACE,eAAA;EACA,gBAAA;EACA,oBAAA;EACA,eAAA;ClB04ED;AkBvzED;EAwEA;IAtIM,sBAAA;IACA,iBAAA;IACA,uBAAA;GlBy3EH;EkBrvEH;IA/HM,sBAAA;IACA,YAAA;IACA,uBAAA;GlBu3EH;EkB1vEH;IAxHM,sBAAA;GlBq3EH;EkB7vEH;IApHM,sBAAA;IACA,uBAAA;GlBo3EH;EkBjwEH;;;IA9GQ,YAAA;GlBo3EL;EkBtwEH;IAxGM,YAAA;GlBi3EH;EkBzwEH;IApGM,iBAAA;IACA,uBAAA;GlBg3EH;EkB7wEH;;IA5FM,sBAAA;IACA,cAAA;IACA,iBAAA;IACA,uBAAA;GlB62EH;EkBpxEH;;IAtFQ,gBAAA;GlB82EL;EkBxxEH;;IAjFM,mBAAA;IACA,eAAA;GlB62EH;EkB7xEH;IA3EM,OAAA;GlB22EH;CACF;AkBj2ED;;;;EASI,cAAA;EACA,iBAAA;EACA,iBAAA;ClB81EH;AkBz2ED;;EAiBI,iBAAA;ClB41EH;AkB72ED;EJthBE,mBAAA;EACA,oBAAA;Cds4FD;AkB10EC;EAyBF;IAnCM,kBAAA;IACA,iBAAA;IACA,iBAAA;GlBw1EH;CACF;AkBx3ED;EAwCI,YAAA;ClBm1EH;AkBr0EC;EAUF;IAdQ,kBAAA;IACA,gBAAA;GlB60EL;CACF;AkBn0EC;EAEF;IANQ,iBAAA;IACA,gBAAA;GlB20EL;CACF;AoBp6FD;EACE,sBAAA;EACA,iBAAA;EACA,oBAAA;EACA,mBAAA;EACA,uBAAA;EACA,+BAAA;MAAA,2BAAA;EACA,gBAAA;EACA,uBAAA;EACA,8BAAA;EACA,oBAAA;EC0CA,kBAAA;EACA,gBAAA;EACA,wBAAA;EACA,mBAAA;EhB+JA,0BAAA;EACG,uBAAA;EACC,sBAAA;EACI,kBAAA;CL+tFT;AoBv6FG;;;;;;EdnBF,2CAAA;EACA,qBAAA;CNk8FD;AoB16FC;;;EAGE,YAAA;EACA,sBAAA;CpB46FH;AoBz6FC;;EAEE,WAAA;EACA,uBAAA;Ef2BF,yDAAA;EACQ,iDAAA;CLi5FT;AoBz6FC;;;EAGE,oBAAA;EE7CF,cAAA;EAGA,0BAAA;EjB8DA,yBAAA;EACQ,iBAAA;CL05FT;AoBz6FG;;EAEE,qBAAA;CpB26FL;AoBl6FD;EC3DE,YAAA;EACA,uBAAA;EACA,mBAAA;CrBg+FD;AqB99FC;;EAEE,YAAA;EACA,0BAAA;EACI,sBAAA;CrBg+FP;AqB99FC;EACE,YAAA;EACA,0BAAA;EACI,sBAAA;CrBg+FP;AqB99FC;;;EAGE,YAAA;EACA,0BAAA;EACI,sBAAA;CrBg+FP;AqB99FG;;;;;;;;;EAGE,YAAA;EACA,0BAAA;EACI,sBAAA;CrBs+FT;AqBn+FC;;;EAGE,uBAAA;CrBq+FH;AqBh+FG;;;;;;;;;EAGE,uBAAA;EACI,mBAAA;CrBw+FT;AoBv9FD;ECZI,YAAA;EACA,uBAAA;CrBs+FH;AoBx9FD;EC9DE,YAAA;EACA,0BAAA;EACA,sBAAA;CrByhGD;AqBvhGC;;EAEE,YAAA;EACA,0BAAA;EACI,sBAAA;CrByhGP;AqBvhGC;EACE,YAAA;EACA,0BAAA;EACI,sBAAA;CrByhGP;AqBvhGC;;;EAGE,YAAA;EACA,0BAAA;EACI,sBAAA;CrByhGP;AqBvhGG;;;;;;;;;EAGE,YAAA;EACA,0BAAA;EACI,sBAAA;CrB+hGT;AqB5hGC;;;EAGE,uBAAA;CrB8hGH;AqBzhGG;;;;;;;;;EAGE,0BAAA;EACI,sBAAA;CrBiiGT;AoB7gGD;ECfI,eAAA;EACA,uBAAA;CrB+hGH;AoB7gGD;EClEE,YAAA;EACA,0BAAA;EACA,sBAAA;CrBklGD;AqBhlGC;;EAEE,YAAA;EACA,0BAAA;EACI,sBAAA;CrBklGP;AqBhlGC;EACE,YAAA;EACA,0BAAA;EACI,sBAAA;CrBklGP;AqBhlGC;;;EAGE,YAAA;EACA,0BAAA;EACI,sBAAA;CrBklGP;AqBhlGG;;;;;;;;;EAGE,YAAA;EACA,0BAAA;EACI,sBAAA;CrBwlGT;AqBrlGC;;;EAGE,uBAAA;CrBulGH;AqBllGG;;;;;;;;;EAGE,0BAAA;EACI,sBAAA;CrB0lGT;AoBlkGD;ECnBI,eAAA;EACA,uBAAA;CrBwlGH;AoBlkGD;ECtEE,YAAA;EACA,0BAAA;EACA,sBAAA;CrB2oGD;AqBzoGC;;EAEE,YAAA;EACA,0BAAA;EACI,sBAAA;CrB2oGP;AqBzoGC;EACE,YAAA;EACA,0BAAA;EACI,sBAAA;CrB2oGP;AqBzoGC;;;EAGE,YAAA;EACA,0BAAA;EACI,sBAAA;CrB2oGP;AqBzoGG;;;;;;;;;EAGE,YAAA;EACA,0BAAA;EACI,sBAAA;CrBipGT;AqB9oGC;;;EAGE,uBAAA;CrBgpGH;AqB3oGG;;;;;;;;;EAGE,0BAAA;EACI,sBAAA;CrBmpGT;AoBvnGD;ECvBI,eAAA;EACA,uBAAA;CrBipGH;AoBvnGD;EC1EE,YAAA;EACA,0BAAA;EACA,sBAAA;CrBosGD;AqBlsGC;;EAEE,YAAA;EACA,0BAAA;EACI,sBAAA;CrBosGP;AqBlsGC;EACE,YAAA;EACA,0BAAA;EACI,sBAAA;CrBosGP;AqBlsGC;;;EAGE,YAAA;EACA,0BAAA;EACI,sBAAA;CrBosGP;AqBlsGG;;;;;;;;;EAGE,YAAA;EACA,0BAAA;EACI,sBAAA;CrB0sGT;AqBvsGC;;;EAGE,uBAAA;CrBysGH;AqBpsGG;;;;;;;;;EAGE,0BAAA;EACI,sBAAA;CrB4sGT;AoB5qGD;EC3BI,eAAA;EACA,uBAAA;CrB0sGH;AoB5qGD;EC9EE,YAAA;EACA,0BAAA;EACA,sBAAA;CrB6vGD;AqB3vGC;;EAEE,YAAA;EACA,0BAAA;EACI,sBAAA;CrB6vGP;AqB3vGC;EACE,YAAA;EACA,0BAAA;EACI,sBAAA;CrB6vGP;AqB3vGC;;;EAGE,YAAA;EACA,0BAAA;EACI,sBAAA;CrB6vGP;AqB3vGG;;;;;;;;;EAGE,YAAA;EACA,0BAAA;EACI,sBAAA;CrBmwGT;AqBhwGC;;;EAGE,uBAAA;CrBkwGH;AqB7vGG;;;;;;;;;EAGE,0BAAA;EACI,sBAAA;CrBqwGT;AoBjuGD;EC/BI,eAAA;EACA,uBAAA;CrBmwGH;AoB5tGD;EACE,eAAA;EACA,oBAAA;EACA,iBAAA;CpB8tGD;AoB5tGC;;;;;EAKE,8BAAA;EfnCF,yBAAA;EACQ,iBAAA;CLkwGT;AoB7tGC;;;;EAIE,0BAAA;CpB+tGH;AoB7tGC;;EAEE,eAAA;EACA,2BAAA;EACA,8BAAA;CpB+tGH;AoB3tGG;;;;EAEE,eAAA;EACA,sBAAA;CpB+tGL;AoBttGD;;ECxEE,mBAAA;EACA,gBAAA;EACA,uBAAA;EACA,mBAAA;CrBkyGD;AoBztGD;;EC5EE,kBAAA;EACA,gBAAA;EACA,iBAAA;EACA,mBAAA;CrByyGD;AoB5tGD;;EChFE,iBAAA;EACA,gBAAA;EACA,iBAAA;EACA,mBAAA;CrBgzGD;AoB3tGD;EACE,eAAA;EACA,YAAA;CpB6tGD;AoBztGD;EACE,gBAAA;CpB2tGD;AoBptGC;;;EACE,YAAA;CpBwtGH;AuBl3GD;EACE,WAAA;ElBoLA,yCAAA;EACK,oCAAA;EACG,iCAAA;CLisGT;AuBr3GC;EACE,WAAA;CvBu3GH;AuBn3GD;EACE,cAAA;CvBq3GD;AuBn3GC;EAAY,eAAA;CvBs3Gb;AuBr3GC;EAAY,mBAAA;CvBw3Gb;AuBv3GC;EAAY,yBAAA;CvB03Gb;AuBv3GD;EACE,mBAAA;EACA,UAAA;EACA,iBAAA;ElBuKA,gDAAA;EACQ,2CAAA;KAAA,wCAAA;EAOR,mCAAA;EACQ,8BAAA;KAAA,2BAAA;EAGR,yCAAA;EACQ,oCAAA;KAAA,iCAAA;CL2sGT;AwBr5GD;EACE,sBAAA;EACA,SAAA;EACA,UAAA;EACA,iBAAA;EACA,uBAAA;EACA,uBAAA;EACA,yBAAA;EACA,oCAAA;EACA,mCAAA;CxBu5GD;AwBn5GD;;EAEE,mBAAA;CxBq5GD;AwBj5GD;EACE,WAAA;CxBm5GD;AwB/4GD;EACE,mBAAA;EACA,UAAA;EACA,QAAA;EACA,cAAA;EACA,cAAA;EACA,YAAA;EACA,iBAAA;EACA,eAAA;EACA,gBAAA;EACA,iBAAA;EACA,gBAAA;EACA,iBAAA;EACA,uBAAA;EACA,uBAAA;EACA,sCAAA;EACA,mBAAA;EnBsBA,oDAAA;EACQ,4CAAA;EmBrBR,qCAAA;UAAA,6BAAA;CxBk5GD;AwB74GC;EACE,SAAA;EACA,WAAA;CxB+4GH;AwBx6GD;ECzBE,YAAA;EACA,cAAA;EACA,iBAAA;EACA,0BAAA;CzBo8GD;AwB96GD;EAmCI,eAAA;EACA,kBAAA;EACA,YAAA;EACA,oBAAA;EACA,wBAAA;EACA,eAAA;EACA,oBAAA;CxB84GH;AwBx4GC;;EAEE,sBAAA;EACA,eAAA;EACA,0BAAA;CxB04GH;AwBp4GC;;;EAGE,YAAA;EACA,sBAAA;EACA,WAAA;EACA,0BAAA;CxBs4GH;AwB73GC;;;EAGE,eAAA;CxB+3GH;AwB33GC;;EAEE,sBAAA;EACA,8BAAA;EACA,uBAAA;EE3GF,oEAAA;EF6GE,oBAAA;CxB63GH;AwBx3GD;EAGI,eAAA;CxBw3GH;AwB33GD;EAQI,WAAA;CxBs3GH;AwB92GD;EACE,WAAA;EACA,SAAA;CxBg3GD;AwBx2GD;EACE,QAAA;EACA,YAAA;CxB02GD;AwBt2GD;EACE,eAAA;EACA,kBAAA;EACA,gBAAA;EACA,wBAAA;EACA,eAAA;EACA,oBAAA;CxBw2GD;AwBp2GD;EACE,gBAAA;EACA,QAAA;EACA,SAAA;EACA,UAAA;EACA,OAAA;EACA,aAAA;CxBs2GD;AwBl2GD;EACE,SAAA;EACA,WAAA;CxBo2GD;AwB51GD;;EAII,cAAA;EACA,0BAAA;EACA,4BAAA;EACA,YAAA;CxB41GH;AwBn2GD;;EAWI,UAAA;EACA,aAAA;EACA,mBAAA;CxB41GH;AwBv0GD;EAXE;IApEA,WAAA;IACA,SAAA;GxB05GC;EwBv1GD;IA1DA,QAAA;IACA,YAAA;GxBo5GC;CACF;A2BpiHD;;EAEE,mBAAA;EACA,sBAAA;EACA,uBAAA;C3BsiHD;A2B1iHD;;EAMI,mBAAA;EACA,YAAA;C3BwiHH;A2BtiHG;;;;;;;;EAIE,WAAA;C3B4iHL;A2BtiHD;;;;EAKI,kBAAA;C3BuiHH;A2BliHD;EACE,kBAAA;C3BoiHD;A2BriHD;;;EAOI,YAAA;C3BmiHH;A2B1iHD;;;EAYI,iBAAA;C3BmiHH;A2B/hHD;EACE,iBAAA;C3BiiHD;A2B7hHD;EACE,eAAA;C3B+hHD;A2B9hHC;EClDA,8BAAA;EACG,2BAAA;C5BmlHJ;A2B7hHD;;EC/CE,6BAAA;EACG,0BAAA;C5BglHJ;A2B5hHD;EACE,YAAA;C3B8hHD;A2B5hHD;EACE,iBAAA;C3B8hHD;A2B5hHD;;ECnEE,8BAAA;EACG,2BAAA;C5BmmHJ;A2B3hHD;ECjEE,6BAAA;EACG,0BAAA;C5B+lHJ;A2B1hHD;;EAEE,WAAA;C3B4hHD;A2B3gHD;EACE,kBAAA;EACA,mBAAA;C3B6gHD;A2B3gHD;EACE,mBAAA;EACA,oBAAA;C3B6gHD;A2BxgHD;EtB/CE,yDAAA;EACQ,iDAAA;CL0jHT;A2BxgHC;EtBnDA,yBAAA;EACQ,iBAAA;CL8jHT;A2BrgHD;EACE,eAAA;C3BugHD;A2BpgHD;EACE,wBAAA;EACA,uBAAA;C3BsgHD;A2BngHD;EACE,wBAAA;C3BqgHD;A2B9/GD;;;EAII,eAAA;EACA,YAAA;EACA,YAAA;EACA,gBAAA;C3B+/GH;A2BtgHD;EAcM,YAAA;C3B2/GL;A2BzgHD;;;;EAsBI,iBAAA;EACA,eAAA;C3By/GH;A2Bp/GC;EACE,iBAAA;C3Bs/GH;A2Bp/GC;EC3KA,6BAAA;EACC,4BAAA;EAOD,8BAAA;EACC,6BAAA;C5B4pHF;A2Bt/GC;EC/KA,2BAAA;EACC,0BAAA;EAOD,gCAAA;EACC,+BAAA;C5BkqHF;A2Bv/GD;EACE,iBAAA;C3By/GD;A2Bv/GD;;EC/KE,8BAAA;EACC,6BAAA;C5B0qHF;A2Bt/GD;EC7LE,2BAAA;EACC,0BAAA;C5BsrHF;A2Bl/GD;EACE,eAAA;EACA,YAAA;EACA,oBAAA;EACA,0BAAA;C3Bo/GD;A2Bx/GD;;EAOI,YAAA;EACA,oBAAA;EACA,UAAA;C3Bq/GH;A2B9/GD;EAYI,YAAA;C3Bq/GH;A2BjgHD;EAgBI,WAAA;C3Bo/GH;A2Bn+GD;;;;EAKM,mBAAA;EACA,uBAAA;EACA,qBAAA;C3Bo+GL;A6B9sHD;EACE,mBAAA;EACA,eAAA;EACA,0BAAA;C7BgtHD;A6B7sHC;EACE,YAAA;EACA,gBAAA;EACA,iBAAA;C7B+sHH;A6BxtHD;EAeI,mBAAA;EACA,WAAA;EAKA,YAAA;EAEA,YAAA;EACA,iBAAA;C7BusHH;A6BrsHG;EACE,WAAA;C7BusHL;A6B7rHD;;;EV0BE,aAAA;EACA,mBAAA;EACA,gBAAA;EACA,uBAAA;EACA,mBAAA;CnBwqHD;AmBtqHC;;;EACE,aAAA;EACA,kBAAA;CnB0qHH;AmBvqHC;;;;;;EAEE,aAAA;CnB6qHH;A6B/sHD;;;EVqBE,aAAA;EACA,kBAAA;EACA,gBAAA;EACA,iBAAA;EACA,mBAAA;CnB+rHD;AmB7rHC;;;EACE,aAAA;EACA,kBAAA;CnBisHH;AmB9rHC;;;;;;EAEE,aAAA;CnBosHH;A6B7tHD;;;EAGE,oBAAA;C7B+tHD;A6B7tHC;;;EACE,iBAAA;C7BiuHH;A6B7tHD;;EAEE,UAAA;EACA,oBAAA;EACA,uBAAA;C7B+tHD;A6B1tHD;EACE,kBAAA;EACA,gBAAA;EACA,oBAAA;EACA,eAAA;EACA,eAAA;EACA,mBAAA;EACA,0BAAA;EACA,uBAAA;EACA,mBAAA;C7B4tHD;A6BztHC;EACE,kBAAA;EACA,gBAAA;EACA,mBAAA;C7B2tHH;A6BztHC;EACE,mBAAA;EACA,gBAAA;EACA,mBAAA;C7B2tHH;A6B/uHD;;EA0BI,cAAA;C7BytHH;A6BptHD;;;;;;;EDpGE,8BAAA;EACG,2BAAA;C5Bi0HJ;A6BrtHD;EACE,gBAAA;C7ButHD;A6BrtHD;;;;;;;EDxGE,6BAAA;EACG,0BAAA;C5Bs0HJ;A6BttHD;EACE,eAAA;C7BwtHD;A6BntHD;EACE,mBAAA;EAGA,aAAA;EACA,oBAAA;C7BmtHD;A6BxtHD;EAUI,mBAAA;C7BitHH;A6B3tHD;EAYM,kBAAA;C7BktHL;A6B/sHG;;;EAGE,WAAA;C7BitHL;A6B5sHC;;EAGI,mBAAA;C7B6sHL;A6B1sHC;;EAGI,WAAA;EACA,kBAAA;C7B2sHL;A8B12HD;EACE,iBAAA;EACA,gBAAA;EACA,iBAAA;C9B42HD;A8B/2HD;EAOI,mBAAA;EACA,eAAA;C9B22HH;A8Bn3HD;EAWM,mBAAA;EACA,eAAA;EACA,mBAAA;C9B22HL;A8B12HK;;EAEE,sBAAA;EACA,0BAAA;C9B42HP;A8Bv2HG;EACE,eAAA;C9By2HL;A8Bv2HK;;EAEE,eAAA;EACA,sBAAA;EACA,8BAAA;EACA,oBAAA;C9By2HP;A8Bl2HG;;;EAGE,0BAAA;EACA,sBAAA;C9Bo2HL;A8B74HD;ELHE,YAAA;EACA,cAAA;EACA,iBAAA;EACA,0BAAA;CzBm5HD;A8Bn5HD;EA0DI,gBAAA;C9B41HH;A8Bn1HD;EACE,8BAAA;C9Bq1HD;A8Bt1HD;EAGI,YAAA;EAEA,oBAAA;C9Bq1HH;A8B11HD;EASM,kBAAA;EACA,wBAAA;EACA,8BAAA;EACA,2BAAA;C9Bo1HL;A8Bn1HK;EACE,mCAAA;C9Bq1HP;A8B/0HK;;;EAGE,eAAA;EACA,uBAAA;EACA,uBAAA;EACA,iCAAA;EACA,gBAAA;C9Bi1HP;A8B50HC;EAqDA,YAAA;EA8BA,iBAAA;C9B6vHD;A8Bh1HC;EAwDE,YAAA;C9B2xHH;A8Bn1HC;EA0DI,mBAAA;EACA,mBAAA;C9B4xHL;A8Bv1HC;EAgEE,UAAA;EACA,WAAA;C9B0xHH;A8B9wHD;EA0DA;IAjEM,oBAAA;IACA,UAAA;G9ByxHH;E8BztHH;IA9DQ,iBAAA;G9B0xHL;CACF;A8Bp2HC;EAuFE,gBAAA;EACA,mBAAA;C9BgxHH;A8Bx2HC;;;EA8FE,uBAAA;C9B+wHH;A8BjwHD;EA2BA;IApCM,8BAAA;IACA,2BAAA;G9B8wHH;E8B3uHH;;;IA9BM,0BAAA;G9B8wHH;CACF;A8B/2HD;EAEI,YAAA;C9Bg3HH;A8Bl3HD;EAMM,mBAAA;C9B+2HL;A8Br3HD;EASM,iBAAA;C9B+2HL;A8B12HK;;;EAGE,YAAA;EACA,0BAAA;C9B42HP;A8Bp2HD;EAEI,YAAA;C9Bq2HH;A8Bv2HD;EAIM,gBAAA;EACA,eAAA;C9Bs2HL;A8B11HD;EACE,YAAA;C9B41HD;A8B71HD;EAII,YAAA;C9B41HH;A8Bh2HD;EAMM,mBAAA;EACA,mBAAA;C9B61HL;A8Bp2HD;EAYI,UAAA;EACA,WAAA;C9B21HH;A8B/0HD;EA0DA;IAjEM,oBAAA;IACA,UAAA;G9B01HH;E8B1xHH;IA9DQ,iBAAA;G9B21HL;CACF;A8Bn1HD;EACE,iBAAA;C9Bq1HD;A8Bt1HD;EAKI,gBAAA;EACA,mBAAA;C9Bo1HH;A8B11HD;;;EAYI,uBAAA;C9Bm1HH;A8Br0HD;EA2BA;IApCM,8BAAA;IACA,2BAAA;G9Bk1HH;E8B/yHH;;;IA9BM,0BAAA;G9Bk1HH;CACF;A8Bz0HD;EAEI,cAAA;C9B00HH;A8B50HD;EAKI,eAAA;C9B00HH;A8Bj0HD;EAEE,iBAAA;EF3OA,2BAAA;EACC,0BAAA;C5B8iIF;A+BxiID;EACE,mBAAA;EACA,iBAAA;EACA,oBAAA;EACA,8BAAA;C/B0iID;A+BliID;EA8nBA;IAhoBI,mBAAA;G/BwiID;CACF;A+BzhID;EAgnBA;IAlnBI,YAAA;G/B+hID;CACF;A+BjhID;EACE,oBAAA;EACA,oBAAA;EACA,mBAAA;EACA,kCAAA;EACA,2DAAA;UAAA,mDAAA;EAEA,kCAAA;C/BkhID;A+BhhIC;EACE,iBAAA;C/BkhIH;A+Bt/HD;EA6jBA;IArlBI,YAAA;IACA,cAAA;IACA,yBAAA;YAAA,iBAAA;G/BkhID;E+BhhIC;IACE,0BAAA;IACA,wBAAA;IACA,kBAAA;IACA,6BAAA;G/BkhIH;E+B/gIC;IACE,oBAAA;G/BihIH;E+B5gIC;;;IAGE,gBAAA;IACA,iBAAA;G/B8gIH;CACF;A+B1gID;;EAGI,kBAAA;C/B2gIH;A+BtgIC;EAmjBF;;IArjBM,kBAAA;G/B6gIH;CACF;A+BpgID;;;;EAII,oBAAA;EACA,mBAAA;C/BsgIH;A+BhgIC;EAgiBF;;;;IAniBM,gBAAA;IACA,eAAA;G/B0gIH;CACF;A+B9/HD;EACE,cAAA;EACA,sBAAA;C/BggID;A+B3/HD;EA8gBA;IAhhBI,iBAAA;G/BigID;CACF;A+B7/HD;;EAEE,gBAAA;EACA,SAAA;EACA,QAAA;EACA,cAAA;C/B+/HD;A+Bz/HD;EAggBA;;IAlgBI,iBAAA;G/BggID;CACF;A+B9/HD;EACE,OAAA;EACA,sBAAA;C/BggID;A+B9/HD;EACE,UAAA;EACA,iBAAA;EACA,sBAAA;C/BggID;A+B1/HD;EACE,YAAA;EACA,mBAAA;EACA,gBAAA;EACA,kBAAA;EACA,aAAA;C/B4/HD;A+B1/HC;;EAEE,sBAAA;C/B4/HH;A+BrgID;EAaI,eAAA;C/B2/HH;A+Bl/HD;EALI;;IAEE,mBAAA;G/B0/HH;CACF;A+Bh/HD;EACE,mBAAA;EACA,aAAA;EACA,mBAAA;EACA,kBAAA;EC9LA,gBAAA;EACA,mBAAA;ED+LA,8BAAA;EACA,uBAAA;EACA,8BAAA;EACA,mBAAA;C/Bm/HD;A+B/+HC;EACE,WAAA;C/Bi/HH;A+B//HD;EAmBI,eAAA;EACA,YAAA;EACA,YAAA;EACA,mBAAA;C/B++HH;A+BrgID;EAyBI,gBAAA;C/B++HH;A+Bz+HD;EAqbA;IAvbI,cAAA;G/B++HD;CACF;A+Bt+HD;EACE,oBAAA;C/Bw+HD;A+Bz+HD;EAII,kBAAA;EACA,qBAAA;EACA,kBAAA;C/Bw+HH;A+B58HC;EA2YF;IAjaM,iBAAA;IACA,YAAA;IACA,YAAA;IACA,cAAA;IACA,8BAAA;IACA,UAAA;IACA,yBAAA;YAAA,iBAAA;G/Bs+HH;E+B3kHH;;IAxZQ,2BAAA;G/Bu+HL;E+B/kHH;IArZQ,kBAAA;G/Bu+HL;E+Bt+HK;;IAEE,uBAAA;G/Bw+HP;CACF;A+Bt9HD;EA+XA;IA1YI,YAAA;IACA,UAAA;G/Bq+HD;E+B5lHH;IAtYM,YAAA;G/Bq+HH;E+B/lHH;IApYQ,kBAAA;IACA,qBAAA;G/Bs+HL;CACF;A+B39HD;EACE,mBAAA;EACA,oBAAA;EACA,mBAAA;EACA,kCAAA;EACA,qCAAA;E1B9NA,6FAAA;EACQ,qFAAA;E2B/DR,gBAAA;EACA,mBAAA;ChC4vID;AkBtuHD;EAwEA;IAtIM,sBAAA;IACA,iBAAA;IACA,uBAAA;GlBwyHH;EkBpqHH;IA/HM,sBAAA;IACA,YAAA;IACA,uBAAA;GlBsyHH;EkBzqHH;IAxHM,sBAAA;GlBoyHH;EkB5qHH;IApHM,sBAAA;IACA,uBAAA;GlBmyHH;EkBhrHH;;;IA9GQ,YAAA;GlBmyHL;EkBrrHH;IAxGM,YAAA;GlBgyHH;EkBxrHH;IApGM,iBAAA;IACA,uBAAA;GlB+xHH;EkB5rHH;;IA5FM,sBAAA;IACA,cAAA;IACA,iBAAA;IACA,uBAAA;GlB4xHH;EkBnsHH;;IAtFQ,gBAAA;GlB6xHL;EkBvsHH;;IAjFM,mBAAA;IACA,eAAA;GlB4xHH;EkB5sHH;IA3EM,OAAA;GlB0xHH;CACF;A+BpgIC;EAmWF;IAzWM,mBAAA;G/B8gIH;E+B5gIG;IACE,iBAAA;G/B8gIL;CACF;A+B7/HD;EAoVA;IA5VI,YAAA;IACA,UAAA;IACA,eAAA;IACA,gBAAA;IACA,eAAA;IACA,kBAAA;I1BzPF,yBAAA;IACQ,iBAAA;GLmwIP;CACF;A+BngID;EACE,cAAA;EHpUA,2BAAA;EACC,0BAAA;C5B00IF;A+BngID;EACE,iBAAA;EHzUA,6BAAA;EACC,4BAAA;EAOD,8BAAA;EACC,6BAAA;C5By0IF;A+B//HD;EChVE,gBAAA;EACA,mBAAA;ChCk1ID;A+BhgIC;ECnVA,iBAAA;EACA,oBAAA;ChCs1ID;A+BjgIC;ECtVA,iBAAA;EACA,oBAAA;ChC01ID;A+B3/HD;EChWE,iBAAA;EACA,oBAAA;ChC81ID;A+Bv/HD;EAsSA;IA1SI,YAAA;IACA,kBAAA;IACA,mBAAA;G/B+/HD;CACF;A+Bl+HD;EAhBE;IExWA,uBAAA;GjC81IC;E+Br/HD;IE5WA,wBAAA;IF8WE,oBAAA;G/Bu/HD;E+Bz/HD;IAKI,gBAAA;G/Bu/HH;CACF;A+B9+HD;EACE,0BAAA;EACA,sBAAA;C/Bg/HD;A+Bl/HD;EAKI,YAAA;C/Bg/HH;A+B/+HG;;EAEE,eAAA;EACA,8BAAA;C/Bi/HL;A+B1/HD;EAcI,YAAA;C/B++HH;A+B7/HD;EAmBM,YAAA;C/B6+HL;A+B3+HK;;EAEE,YAAA;EACA,8BAAA;C/B6+HP;A+Bz+HK;;;EAGE,YAAA;EACA,0BAAA;C/B2+HP;A+Bv+HK;;;EAGE,YAAA;EACA,8BAAA;C/By+HP;A+BjhID;EA8CI,mBAAA;C/Bs+HH;A+Br+HG;;EAEE,uBAAA;C/Bu+HL;A+BxhID;EAoDM,uBAAA;C/Bu+HL;A+B3hID;;EA0DI,sBAAA;C/Bq+HH;A+B99HK;;;EAGE,0BAAA;EACA,YAAA;C/Bg+HP;A+B/7HC;EAoKF;IA7LU,YAAA;G/B49HP;E+B39HO;;IAEE,YAAA;IACA,8BAAA;G/B69HT;E+Bz9HO;;;IAGE,YAAA;IACA,0BAAA;G/B29HT;E+Bv9HO;;;IAGE,YAAA;IACA,8BAAA;G/By9HT;CACF;A+B3jID;EA8GI,YAAA;C/Bg9HH;A+B/8HG;EACE,YAAA;C/Bi9HL;A+BjkID;EAqHI,YAAA;C/B+8HH;A+B98HG;;EAEE,YAAA;C/Bg9HL;A+B58HK;;;;EAEE,YAAA;C/Bg9HP;A+Bx8HD;EACE,uBAAA;EACA,sBAAA;C/B08HD;A+B58HD;EAKI,eAAA;C/B08HH;A+Bz8HG;;EAEE,YAAA;EACA,8BAAA;C/B28HL;A+Bp9HD;EAcI,eAAA;C/By8HH;A+Bv9HD;EAmBM,eAAA;C/Bu8HL;A+Br8HK;;EAEE,YAAA;EACA,8BAAA;C/Bu8HP;A+Bn8HK;;;EAGE,YAAA;EACA,0BAAA;C/Bq8HP;A+Bj8HK;;;EAGE,YAAA;EACA,8BAAA;C/Bm8HP;A+B3+HD;EA+CI,mBAAA;C/B+7HH;A+B97HG;;EAEE,uBAAA;C/Bg8HL;A+Bl/HD;EAqDM,uBAAA;C/Bg8HL;A+Br/HD;;EA2DI,sBAAA;C/B87HH;A+Bx7HK;;;EAGE,0BAAA;EACA,YAAA;C/B07HP;A+Bn5HC;EAwBF;IAvDU,sBAAA;G/Bs7HP;E+B/3HH;IApDU,0BAAA;G/Bs7HP;E+Bl4HH;IAjDU,eAAA;G/Bs7HP;E+Br7HO;;IAEE,YAAA;IACA,8BAAA;G/Bu7HT;E+Bn7HO;;;IAGE,YAAA;IACA,0BAAA;G/Bq7HT;E+Bj7HO;;;IAGE,YAAA;IACA,8BAAA;G/Bm7HT;CACF;A+B3hID;EA+GI,eAAA;C/B+6HH;A+B96HG;EACE,YAAA;C/Bg7HL;A+BjiID;EAsHI,eAAA;C/B86HH;A+B76HG;;EAEE,YAAA;C/B+6HL;A+B36HK;;;;EAEE,YAAA;C/B+6HP;AkCzjJD;EACE,kBAAA;EACA,oBAAA;EACA,iBAAA;EACA,0BAAA;EACA,mBAAA;ClC2jJD;AkChkJD;EAQI,sBAAA;ClC2jJH;AkCnkJD;EAWM,kBAAA;EACA,eAAA;EACA,YAAA;ClC2jJL;AkCxkJD;EAkBI,eAAA;ClCyjJH;AmC7kJD;EACE,sBAAA;EACA,gBAAA;EACA,eAAA;EACA,mBAAA;CnC+kJD;AmCnlJD;EAOI,gBAAA;CnC+kJH;AmCtlJD;;EAUM,mBAAA;EACA,YAAA;EACA,kBAAA;EACA,wBAAA;EACA,sBAAA;EACA,eAAA;EACA,uBAAA;EACA,uBAAA;EACA,kBAAA;CnCglJL;AmC9kJG;;EAGI,eAAA;EPXN,+BAAA;EACG,4BAAA;C5B2lJJ;AmC7kJG;;EPvBF,gCAAA;EACG,6BAAA;C5BwmJJ;AmCxkJG;;;;EAEE,WAAA;EACA,eAAA;EACA,0BAAA;EACA,mBAAA;CnC4kJL;AmCtkJG;;;;;;EAGE,WAAA;EACA,YAAA;EACA,0BAAA;EACA,sBAAA;EACA,gBAAA;CnC2kJL;AmCloJD;;;;;;EAkEM,eAAA;EACA,uBAAA;EACA,mBAAA;EACA,oBAAA;CnCwkJL;AmC/jJD;;EC3EM,mBAAA;EACA,gBAAA;EACA,uBAAA;CpC8oJL;AoC5oJG;;ERKF,+BAAA;EACG,4BAAA;C5B2oJJ;AoC3oJG;;ERTF,gCAAA;EACG,6BAAA;C5BwpJJ;AmC1kJD;;EChFM,kBAAA;EACA,gBAAA;EACA,iBAAA;CpC8pJL;AoC5pJG;;ERKF,+BAAA;EACG,4BAAA;C5B2pJJ;AoC3pJG;;ERTF,gCAAA;EACG,6BAAA;C5BwqJJ;AqC3qJD;EACE,gBAAA;EACA,eAAA;EACA,iBAAA;EACA,mBAAA;CrC6qJD;AqCjrJD;EAOI,gBAAA;CrC6qJH;AqCprJD;;EAUM,sBAAA;EACA,kBAAA;EACA,uBAAA;EACA,uBAAA;EACA,oBAAA;CrC8qJL;AqC5rJD;;EAmBM,sBAAA;EACA,0BAAA;CrC6qJL;AqCjsJD;;EA2BM,aAAA;CrC0qJL;AqCrsJD;;EAkCM,YAAA;CrCuqJL;AqCzsJD;;;;EA2CM,eAAA;EACA,uBAAA;EACA,oBAAA;CrCoqJL;AsCltJD;EACE,gBAAA;EACA,wBAAA;EACA,eAAA;EACA,kBAAA;EACA,eAAA;EACA,YAAA;EACA,mBAAA;EACA,oBAAA;EACA,yBAAA;EACA,qBAAA;CtCotJD;AsChtJG;;EAEE,YAAA;EACA,sBAAA;EACA,gBAAA;CtCktJL;AsC7sJC;EACE,cAAA;CtC+sJH;AsC3sJC;EACE,mBAAA;EACA,UAAA;CtC6sJH;AsCtsJD;ECtCE,0BAAA;CvC+uJD;AuC5uJG;;EAEE,0BAAA;CvC8uJL;AsCzsJD;EC1CE,0BAAA;CvCsvJD;AuCnvJG;;EAEE,0BAAA;CvCqvJL;AsC5sJD;EC9CE,0BAAA;CvC6vJD;AuC1vJG;;EAEE,0BAAA;CvC4vJL;AsC/sJD;EClDE,0BAAA;CvCowJD;AuCjwJG;;EAEE,0BAAA;CvCmwJL;AsCltJD;ECtDE,0BAAA;CvC2wJD;AuCxwJG;;EAEE,0BAAA;CvC0wJL;AsCrtJD;EC1DE,0BAAA;CvCkxJD;AuC/wJG;;EAEE,0BAAA;CvCixJL;AwCnxJD;EACE,sBAAA;EACA,gBAAA;EACA,iBAAA;EACA,gBAAA;EACA,kBAAA;EACA,YAAA;EACA,eAAA;EACA,uBAAA;EACA,oBAAA;EACA,mBAAA;EACA,0BAAA;EACA,oBAAA;CxCqxJD;AwClxJC;EACE,cAAA;CxCoxJH;AwChxJC;EACE,mBAAA;EACA,UAAA;CxCkxJH;AwC/wJC;;EAEE,OAAA;EACA,iBAAA;CxCixJH;AwC5wJG;;EAEE,YAAA;EACA,sBAAA;EACA,gBAAA;CxC8wJL;AwCzwJC;;EAEE,eAAA;EACA,uBAAA;CxC2wJH;AwCxwJC;EACE,aAAA;CxC0wJH;AwCvwJC;EACE,kBAAA;CxCywJH;AwCtwJC;EACE,iBAAA;CxCwwJH;AyCl0JD;EACE,kBAAA;EACA,qBAAA;EACA,oBAAA;EACA,eAAA;EACA,0BAAA;CzCo0JD;AyCz0JD;;EASI,eAAA;CzCo0JH;AyC70JD;EAaI,oBAAA;EACA,gBAAA;EACA,iBAAA;CzCm0JH;AyCl1JD;EAmBI,0BAAA;CzCk0JH;AyC/zJC;;EAEE,mBAAA;EACA,mBAAA;EACA,oBAAA;CzCi0JH;AyC31JD;EA8BI,gBAAA;CzCg0JH;AyC9yJD;EACA;IAfI,kBAAA;IACA,qBAAA;GzCg0JD;EyC9zJC;;IAEE,mBAAA;IACA,oBAAA;GzCg0JH;EyCvzJH;;IAJM,gBAAA;GzC+zJH;CACF;A0C52JD;EACE,eAAA;EACA,aAAA;EACA,oBAAA;EACA,wBAAA;EACA,uBAAA;EACA,uBAAA;EACA,mBAAA;ErCiLA,4CAAA;EACK,uCAAA;EACG,oCAAA;CL8rJT;A0Cx3JD;;EAaI,kBAAA;EACA,mBAAA;C1C+2JH;A0C32JC;;;EAGE,sBAAA;C1C62JH;A0Cl4JD;EA0BI,aAAA;EACA,eAAA;C1C22JH;A2Cp4JD;EACE,cAAA;EACA,oBAAA;EACA,8BAAA;EACA,mBAAA;C3Cs4JD;A2C14JD;EAQI,cAAA;EAEA,eAAA;C3Co4JH;A2C94JD;EAeI,kBAAA;C3Ck4JH;A2Cj5JD;;EAqBI,iBAAA;C3Cg4JH;A2Cr5JD;EAyBI,gBAAA;C3C+3JH;A2Cv3JD;;EAEE,oBAAA;C3Cy3JD;A2C33JD;;EAMI,mBAAA;EACA,UAAA;EACA,aAAA;EACA,eAAA;C3Cy3JH;A2Cj3JD;ECvDE,0BAAA;EACA,sBAAA;EACA,eAAA;C5C26JD;A2Ct3JD;EClDI,0BAAA;C5C26JH;A2Cz3JD;EC/CI,eAAA;C5C26JH;A2Cx3JD;EC3DE,0BAAA;EACA,sBAAA;EACA,eAAA;C5Cs7JD;A2C73JD;ECtDI,0BAAA;C5Cs7JH;A2Ch4JD;ECnDI,eAAA;C5Cs7JH;A2C/3JD;EC/DE,0BAAA;EACA,sBAAA;EACA,eAAA;C5Ci8JD;A2Cp4JD;EC1DI,0BAAA;C5Ci8JH;A2Cv4JD;ECvDI,eAAA;C5Ci8JH;A2Ct4JD;ECnEE,0BAAA;EACA,sBAAA;EACA,eAAA;C5C48JD;A2C34JD;EC9DI,0BAAA;C5C48JH;A2C94JD;EC3DI,eAAA;C5C48JH;A6C98JD;EACE;IAAQ,4BAAA;G7Ci9JP;E6Ch9JD;IAAQ,yBAAA;G7Cm9JP;CACF;A6Ch9JD;EACE;IAAQ,4BAAA;G7Cm9JP;E6Cl9JD;IAAQ,yBAAA;G7Cq9JP;CACF;A6Cx9JD;EACE;IAAQ,4BAAA;G7Cm9JP;E6Cl9JD;IAAQ,yBAAA;G7Cq9JP;CACF;A6C98JD;EACE,iBAAA;EACA,aAAA;EACA,oBAAA;EACA,0BAAA;EACA,mBAAA;ExCsCA,uDAAA;EACQ,+CAAA;CL26JT;A6C78JD;EACE,YAAA;EACA,UAAA;EACA,aAAA;EACA,gBAAA;EACA,kBAAA;EACA,YAAA;EACA,mBAAA;EACA,0BAAA;ExCyBA,uDAAA;EACQ,+CAAA;EAyHR,oCAAA;EACK,+BAAA;EACG,4BAAA;CL+zJT;A6C18JD;;ECCI,8MAAA;EACA,yMAAA;EACA,sMAAA;EDAF,mCAAA;UAAA,2BAAA;C7C88JD;A6Cv8JD;;ExC5CE,2DAAA;EACK,sDAAA;EACG,mDAAA;CLu/JT;A6Cp8JD;EErEE,0BAAA;C/C4gKD;A+CzgKC;EDgDE,8MAAA;EACA,yMAAA;EACA,sMAAA;C9C49JH;A6Cx8JD;EEzEE,0BAAA;C/CohKD;A+CjhKC;EDgDE,8MAAA;EACA,yMAAA;EACA,sMAAA;C9Co+JH;A6C58JD;EE7EE,0BAAA;C/C4hKD;A+CzhKC;EDgDE,8MAAA;EACA,yMAAA;EACA,sMAAA;C9C4+JH;A6Ch9JD;EEjFE,0BAAA;C/CoiKD;A+CjiKC;EDgDE,8MAAA;EACA,yMAAA;EACA,sMAAA;C9Co/JH;AgD5iKD;EAEE,iBAAA;ChD6iKD;AgD3iKC;EACE,cAAA;ChD6iKH;AgDziKD;;EAEE,QAAA;EACA,iBAAA;ChD2iKD;AgDxiKD;EACE,eAAA;ChD0iKD;AgDviKD;EACE,eAAA;ChDyiKD;AgDtiKC;EACE,gBAAA;ChDwiKH;AgDpiKD;;EAEE,mBAAA;ChDsiKD;AgDniKD;;EAEE,oBAAA;ChDqiKD;AgDliKD;;;EAGE,oBAAA;EACA,oBAAA;ChDoiKD;AgDjiKD;EACE,uBAAA;ChDmiKD;AgDhiKD;EACE,uBAAA;ChDkiKD;AgD9hKD;EACE,cAAA;EACA,mBAAA;ChDgiKD;AgD1hKD;EACE,gBAAA;EACA,iBAAA;ChD4hKD;AiDnlKD;EAEE,oBAAA;EACA,gBAAA;CjDolKD;AiD5kKD;EACE,mBAAA;EACA,eAAA;EACA,mBAAA;EAEA,oBAAA;EACA,uBAAA;EACA,uBAAA;CjD6kKD;AiD1kKC;ErB3BA,6BAAA;EACC,4BAAA;C5BwmKF;AiD3kKC;EACE,iBAAA;ErBvBF,gCAAA;EACC,+BAAA;C5BqmKF;AiDpkKD;;EAEE,YAAA;CjDskKD;AiDxkKD;;EAKI,YAAA;CjDukKH;AiDnkKC;;;;EAEE,sBAAA;EACA,YAAA;EACA,0BAAA;CjDukKH;AiDnkKD;EACE,YAAA;EACA,iBAAA;CjDqkKD;AiDhkKC;;;EAGE,0BAAA;EACA,eAAA;EACA,oBAAA;CjDkkKH;AiDvkKC;;;EASI,eAAA;CjDmkKL;AiD5kKC;;;EAYI,eAAA;CjDqkKL;AiDhkKC;;;EAGE,WAAA;EACA,YAAA;EACA,0BAAA;EACA,sBAAA;CjDkkKH;AiDxkKC;;;;;;;;;EAYI,eAAA;CjDukKL;AiDnlKC;;;EAeI,eAAA;CjDykKL;AkD3qKC;EACE,eAAA;EACA,0BAAA;ClD6qKH;AkD3qKG;;EAEE,eAAA;ClD6qKL;AkD/qKG;;EAKI,eAAA;ClD8qKP;AkD3qKK;;;;EAEE,eAAA;EACA,0BAAA;ClD+qKP;AkD7qKK;;;;;;EAGE,YAAA;EACA,0BAAA;EACA,sBAAA;ClDkrKP;AkDxsKC;EACE,eAAA;EACA,0BAAA;ClD0sKH;AkDxsKG;;EAEE,eAAA;ClD0sKL;AkD5sKG;;EAKI,eAAA;ClD2sKP;AkDxsKK;;;;EAEE,eAAA;EACA,0BAAA;ClD4sKP;AkD1sKK;;;;;;EAGE,YAAA;EACA,0BAAA;EACA,sBAAA;ClD+sKP;AkDruKC;EACE,eAAA;EACA,0BAAA;ClDuuKH;AkDruKG;;EAEE,eAAA;ClDuuKL;AkDzuKG;;EAKI,eAAA;ClDwuKP;AkDruKK;;;;EAEE,eAAA;EACA,0BAAA;ClDyuKP;AkDvuKK;;;;;;EAGE,YAAA;EACA,0BAAA;EACA,sBAAA;ClD4uKP;AkDlwKC;EACE,eAAA;EACA,0BAAA;ClDowKH;AkDlwKG;;EAEE,eAAA;ClDowKL;AkDtwKG;;EAKI,eAAA;ClDqwKP;AkDlwKK;;;;EAEE,eAAA;EACA,0BAAA;ClDswKP;AkDpwKK;;;;;;EAGE,YAAA;EACA,0BAAA;EACA,sBAAA;ClDywKP;AiDxqKD;EACE,cAAA;EACA,mBAAA;CjD0qKD;AiDxqKD;EACE,iBAAA;EACA,iBAAA;CjD0qKD;AmDpyKD;EACE,oBAAA;EACA,uBAAA;EACA,8BAAA;EACA,mBAAA;E9C0DA,kDAAA;EACQ,0CAAA;CL6uKT;AmDnyKD;EACE,cAAA;CnDqyKD;AmDhyKD;EACE,mBAAA;EACA,qCAAA;EvBpBA,6BAAA;EACC,4BAAA;C5BuzKF;AmDtyKD;EAMI,eAAA;CnDmyKH;AmD9xKD;EACE,cAAA;EACA,iBAAA;EACA,gBAAA;EACA,eAAA;CnDgyKD;AmDpyKD;;;;;EAWI,eAAA;CnDgyKH;AmD3xKD;EACE,mBAAA;EACA,0BAAA;EACA,2BAAA;EvBxCA,gCAAA;EACC,+BAAA;C5Bs0KF;AmDrxKD;;EAGI,iBAAA;CnDsxKH;AmDzxKD;;EAMM,oBAAA;EACA,iBAAA;CnDuxKL;AmDnxKG;;EAEI,cAAA;EvBvEN,6BAAA;EACC,4BAAA;C5B61KF;AmDjxKG;;EAEI,iBAAA;EvBvEN,gCAAA;EACC,+BAAA;C5B21KF;AmD1yKD;EvB1DE,2BAAA;EACC,0BAAA;C5Bu2KF;AmD7wKD;EAEI,oBAAA;CnD8wKH;AmD3wKD;EACE,oBAAA;CnD6wKD;AmDrwKD;;;EAII,iBAAA;CnDswKH;AmD1wKD;;;EAOM,mBAAA;EACA,oBAAA;CnDwwKL;AmDhxKD;;EvBzGE,6BAAA;EACC,4BAAA;C5B63KF;AmDrxKD;;;;EAmBQ,4BAAA;EACA,6BAAA;CnDwwKP;AmD5xKD;;;;;;;;EAwBU,4BAAA;CnD8wKT;AmDtyKD;;;;;;;;EA4BU,6BAAA;CnDoxKT;AmDhzKD;;EvBjGE,gCAAA;EACC,+BAAA;C5Bq5KF;AmDrzKD;;;;EAyCQ,+BAAA;EACA,gCAAA;CnDkxKP;AmD5zKD;;;;;;;;EA8CU,+BAAA;CnDwxKT;AmDt0KD;;;;;;;;EAkDU,gCAAA;CnD8xKT;AmDh1KD;;;;EA2DI,2BAAA;CnD2xKH;AmDt1KD;;EA+DI,cAAA;CnD2xKH;AmD11KD;;EAmEI,UAAA;CnD2xKH;AmD91KD;;;;;;;;;;;;EA0EU,eAAA;CnDkyKT;AmD52KD;;;;;;;;;;;;EA8EU,gBAAA;CnD4yKT;AmD13KD;;;;;;;;EAuFU,iBAAA;CnD6yKT;AmDp4KD;;;;;;;;EAgGU,iBAAA;CnD8yKT;AmD94KD;EAsGI,UAAA;EACA,iBAAA;CnD2yKH;AmDjyKD;EACE,oBAAA;CnDmyKD;AmDpyKD;EAKI,iBAAA;EACA,mBAAA;CnDkyKH;AmDxyKD;EASM,gBAAA;CnDkyKL;AmD3yKD;EAcI,iBAAA;CnDgyKH;AmD9yKD;;EAkBM,2BAAA;CnDgyKL;AmDlzKD;EAuBI,cAAA;CnD8xKH;AmDrzKD;EAyBM,8BAAA;CnD+xKL;AmDxxKD;EC1PE,mBAAA;CpDqhLD;AoDnhLC;EACE,eAAA;EACA,0BAAA;EACA,mBAAA;CpDqhLH;AoDxhLC;EAMI,uBAAA;CpDqhLL;AoD3hLC;EASI,eAAA;EACA,0BAAA;CpDqhLL;AoDlhLC;EAEI,0BAAA;CpDmhLL;AmDvyKD;EC7PE,sBAAA;CpDuiLD;AoDriLC;EACE,YAAA;EACA,0BAAA;EACA,sBAAA;CpDuiLH;AoD1iLC;EAMI,0BAAA;CpDuiLL;AoD7iLC;EASI,eAAA;EACA,uBAAA;CpDuiLL;AoDpiLC;EAEI,6BAAA;CpDqiLL;AmDtzKD;EChQE,sBAAA;CpDyjLD;AoDvjLC;EACE,eAAA;EACA,0BAAA;EACA,sBAAA;CpDyjLH;AoD5jLC;EAMI,0BAAA;CpDyjLL;AoD/jLC;EASI,eAAA;EACA,0BAAA;CpDyjLL;AoDtjLC;EAEI,6BAAA;CpDujLL;AmDr0KD;ECnQE,sBAAA;CpD2kLD;AoDzkLC;EACE,eAAA;EACA,0BAAA;EACA,sBAAA;CpD2kLH;AoD9kLC;EAMI,0BAAA;CpD2kLL;AoDjlLC;EASI,eAAA;EACA,0BAAA;CpD2kLL;AoDxkLC;EAEI,6BAAA;CpDykLL;AmDp1KD;ECtQE,sBAAA;CpD6lLD;AoD3lLC;EACE,eAAA;EACA,0BAAA;EACA,sBAAA;CpD6lLH;AoDhmLC;EAMI,0BAAA;CpD6lLL;AoDnmLC;EASI,eAAA;EACA,0BAAA;CpD6lLL;AoD1lLC;EAEI,6BAAA;CpD2lLL;AmDn2KD;ECzQE,sBAAA;CpD+mLD;AoD7mLC;EACE,eAAA;EACA,0BAAA;EACA,sBAAA;CpD+mLH;AoDlnLC;EAMI,0BAAA;CpD+mLL;AoDrnLC;EASI,eAAA;EACA,0BAAA;CpD+mLL;AoD5mLC;EAEI,6BAAA;CpD6mLL;AqD7nLD;EACE,mBAAA;EACA,eAAA;EACA,UAAA;EACA,WAAA;EACA,iBAAA;CrD+nLD;AqDpoLD;;;;;EAYI,mBAAA;EACA,OAAA;EACA,QAAA;EACA,UAAA;EACA,aAAA;EACA,YAAA;EACA,UAAA;CrD+nLH;AqD1nLD;EACE,uBAAA;CrD4nLD;AqDxnLD;EACE,oBAAA;CrD0nLD;AsDrpLD;EACE,iBAAA;EACA,cAAA;EACA,oBAAA;EACA,0BAAA;EACA,0BAAA;EACA,mBAAA;EjDwDA,wDAAA;EACQ,gDAAA;CLgmLT;AsD/pLD;EASI,mBAAA;EACA,kCAAA;CtDypLH;AsDppLD;EACE,cAAA;EACA,mBAAA;CtDspLD;AsDppLD;EACE,aAAA;EACA,mBAAA;CtDspLD;AuD5qLD;EACE,aAAA;EACA,gBAAA;EACA,kBAAA;EACA,eAAA;EACA,YAAA;EACA,0BAAA;EjCRA,aAAA;EAGA,0BAAA;CtBqrLD;AuD7qLC;;EAEE,YAAA;EACA,sBAAA;EACA,gBAAA;EjCfF,aAAA;EAGA,0BAAA;CtB6rLD;AuDzqLC;EACE,WAAA;EACA,gBAAA;EACA,wBAAA;EACA,UAAA;EACA,yBAAA;CvD2qLH;AwDhsLD;EACE,iBAAA;CxDksLD;AwD9rLD;EACE,cAAA;EACA,iBAAA;EACA,gBAAA;EACA,OAAA;EACA,SAAA;EACA,UAAA;EACA,QAAA;EACA,cAAA;EACA,kCAAA;EAIA,WAAA;CxD6rLD;AwD1rLC;EnD+GA,sCAAA;EACI,kCAAA;EACC,iCAAA;EACG,8BAAA;EAkER,oDAAA;EAEK,0CAAA;EACG,oCAAA;CL6gLT;AwDhsLC;EnD2GA,mCAAA;EACI,+BAAA;EACC,8BAAA;EACG,2BAAA;CLwlLT;AwDpsLD;EACE,mBAAA;EACA,iBAAA;CxDssLD;AwDlsLD;EACE,mBAAA;EACA,YAAA;EACA,aAAA;CxDosLD;AwDhsLD;EACE,mBAAA;EACA,uBAAA;EACA,uBAAA;EACA,qCAAA;EACA,mBAAA;EnDaA,iDAAA;EACQ,yCAAA;EmDZR,qCAAA;UAAA,6BAAA;EAEA,WAAA;CxDksLD;AwD9rLD;EACE,gBAAA;EACA,OAAA;EACA,SAAA;EACA,UAAA;EACA,QAAA;EACA,cAAA;EACA,uBAAA;CxDgsLD;AwD9rLC;ElCrEA,WAAA;EAGA,yBAAA;CtBowLD;AwDjsLC;ElCtEA,aAAA;EAGA,0BAAA;CtBwwLD;AwDhsLD;EACE,cAAA;EACA,iCAAA;CxDksLD;AwD9rLD;EACE,iBAAA;CxDgsLD;AwD5rLD;EACE,UAAA;EACA,wBAAA;CxD8rLD;AwDzrLD;EACE,mBAAA;EACA,cAAA;CxD2rLD;AwDvrLD;EACE,cAAA;EACA,kBAAA;EACA,8BAAA;CxDyrLD;AwD5rLD;EAQI,iBAAA;EACA,iBAAA;CxDurLH;AwDhsLD;EAaI,kBAAA;CxDsrLH;AwDnsLD;EAiBI,eAAA;CxDqrLH;AwDhrLD;EACE,mBAAA;EACA,aAAA;EACA,YAAA;EACA,aAAA;EACA,iBAAA;CxDkrLD;AwDhqLD;EAZE;IACE,aAAA;IACA,kBAAA;GxD+qLD;EwD7qLD;InDvEA,kDAAA;IACQ,0CAAA;GLuvLP;EwD5qLD;IAAY,aAAA;GxD+qLX;CACF;AwD1qLD;EAFE;IAAY,aAAA;GxDgrLX;CACF;AyD/zLD;EACE,mBAAA;EACA,cAAA;EACA,eAAA;ECRA,4DAAA;EAEA,mBAAA;EACA,oBAAA;EACA,uBAAA;EACA,iBAAA;EACA,wBAAA;EACA,iBAAA;EACA,kBAAA;EACA,sBAAA;EACA,kBAAA;EACA,qBAAA;EACA,oBAAA;EACA,mBAAA;EACA,qBAAA;EACA,kBAAA;EDHA,gBAAA;EnCVA,WAAA;EAGA,yBAAA;CtBs1LD;AyD30LC;EnCdA,aAAA;EAGA,0BAAA;CtB01LD;AyD90LC;EAAW,iBAAA;EAAmB,eAAA;CzDk1L/B;AyDj1LC;EAAW,iBAAA;EAAmB,eAAA;CzDq1L/B;AyDp1LC;EAAW,gBAAA;EAAmB,eAAA;CzDw1L/B;AyDv1LC;EAAW,kBAAA;EAAmB,eAAA;CzD21L/B;AyDv1LD;EACE,iBAAA;EACA,iBAAA;EACA,YAAA;EACA,mBAAA;EACA,uBAAA;EACA,mBAAA;CzDy1LD;AyDr1LD;EACE,mBAAA;EACA,SAAA;EACA,UAAA;EACA,0BAAA;EACA,oBAAA;CzDu1LD;AyDn1LC;EACE,UAAA;EACA,UAAA;EACA,kBAAA;EACA,wBAAA;EACA,uBAAA;CzDq1LH;AyDn1LC;EACE,UAAA;EACA,WAAA;EACA,oBAAA;EACA,wBAAA;EACA,uBAAA;CzDq1LH;AyDn1LC;EACE,UAAA;EACA,UAAA;EACA,oBAAA;EACA,wBAAA;EACA,uBAAA;CzDq1LH;AyDn1LC;EACE,SAAA;EACA,QAAA;EACA,iBAAA;EACA,4BAAA;EACA,yBAAA;CzDq1LH;AyDn1LC;EACE,SAAA;EACA,SAAA;EACA,iBAAA;EACA,4BAAA;EACA,wBAAA;CzDq1LH;AyDn1LC;EACE,OAAA;EACA,UAAA;EACA,kBAAA;EACA,wBAAA;EACA,0BAAA;CzDq1LH;AyDn1LC;EACE,OAAA;EACA,WAAA;EACA,iBAAA;EACA,wBAAA;EACA,0BAAA;CzDq1LH;AyDn1LC;EACE,OAAA;EACA,UAAA;EACA,iBAAA;EACA,wBAAA;EACA,0BAAA;CzDq1LH;A2Dl7LD;EACE,mBAAA;EACA,OAAA;EACA,QAAA;EACA,cAAA;EACA,cAAA;EACA,iBAAA;EACA,aAAA;EDXA,4DAAA;EAEA,mBAAA;EACA,oBAAA;EACA,uBAAA;EACA,iBAAA;EACA,wBAAA;EACA,iBAAA;EACA,kBAAA;EACA,sBAAA;EACA,kBAAA;EACA,qBAAA;EACA,oBAAA;EACA,mBAAA;EACA,qBAAA;EACA,kBAAA;ECAA,gBAAA;EAEA,uBAAA;EACA,qCAAA;UAAA,6BAAA;EACA,uBAAA;EACA,qCAAA;EACA,mBAAA;EtD8CA,kDAAA;EACQ,0CAAA;CLk5LT;A2D77LC;EAAY,kBAAA;C3Dg8Lb;A2D/7LC;EAAY,kBAAA;C3Dk8Lb;A2Dj8LC;EAAY,iBAAA;C3Do8Lb;A2Dn8LC;EAAY,mBAAA;C3Ds8Lb;A2Dn8LD;EACE,UAAA;EACA,kBAAA;EACA,gBAAA;EACA,0BAAA;EACA,iCAAA;EACA,2BAAA;C3Dq8LD;A2Dl8LD;EACE,kBAAA;C3Do8LD;A2D57LC;;EAEE,mBAAA;EACA,eAAA;EACA,SAAA;EACA,UAAA;EACA,0BAAA;EACA,oBAAA;C3D87LH;A2D37LD;EACE,mBAAA;C3D67LD;A2D37LD;EACE,mBAAA;EACA,YAAA;C3D67LD;A2Dz7LC;EACE,UAAA;EACA,mBAAA;EACA,uBAAA;EACA,0BAAA;EACA,sCAAA;EACA,cAAA;C3D27LH;A2D17LG;EACE,aAAA;EACA,YAAA;EACA,mBAAA;EACA,uBAAA;EACA,uBAAA;C3D47LL;A2Dz7LC;EACE,SAAA;EACA,YAAA;EACA,kBAAA;EACA,qBAAA;EACA,4BAAA;EACA,wCAAA;C3D27LH;A2D17LG;EACE,aAAA;EACA,UAAA;EACA,cAAA;EACA,qBAAA;EACA,yBAAA;C3D47LL;A2Dz7LC;EACE,UAAA;EACA,mBAAA;EACA,oBAAA;EACA,6BAAA;EACA,yCAAA;EACA,WAAA;C3D27LH;A2D17LG;EACE,aAAA;EACA,SAAA;EACA,mBAAA;EACA,oBAAA;EACA,0BAAA;C3D47LL;A2Dx7LC;EACE,SAAA;EACA,aAAA;EACA,kBAAA;EACA,sBAAA;EACA,2BAAA;EACA,uCAAA;C3D07LH;A2Dz7LG;EACE,aAAA;EACA,WAAA;EACA,sBAAA;EACA,wBAAA;EACA,cAAA;C3D27LL;A4DpjMD;EACE,mBAAA;C5DsjMD;A4DnjMD;EACE,mBAAA;EACA,iBAAA;EACA,YAAA;C5DqjMD;A4DxjMD;EAMI,cAAA;EACA,mBAAA;EvD6KF,0CAAA;EACK,qCAAA;EACG,kCAAA;CLy4LT;A4D/jMD;;EAcM,eAAA;C5DqjML;A4D3hMC;EA4NF;IvD3DE,uDAAA;IAEK,6CAAA;IACG,uCAAA;IA7JR,oCAAA;IAEQ,4BAAA;IA+GR,4BAAA;IAEQ,oBAAA;GL86LP;E4DzjMG;;IvDmHJ,2CAAA;IACQ,mCAAA;IuDjHF,QAAA;G5D4jML;E4D1jMG;;IvD8GJ,4CAAA;IACQ,oCAAA;IuD5GF,QAAA;G5D6jML;E4D3jMG;;;IvDyGJ,wCAAA;IACQ,gCAAA;IuDtGF,QAAA;G5D8jML;CACF;A4DpmMD;;;EA6CI,eAAA;C5D4jMH;A4DzmMD;EAiDI,QAAA;C5D2jMH;A4D5mMD;;EAsDI,mBAAA;EACA,OAAA;EACA,YAAA;C5D0jMH;A4DlnMD;EA4DI,WAAA;C5DyjMH;A4DrnMD;EA+DI,YAAA;C5DyjMH;A4DxnMD;;EAmEI,QAAA;C5DyjMH;A4D5nMD;EAuEI,YAAA;C5DwjMH;A4D/nMD;EA0EI,WAAA;C5DwjMH;A4DhjMD;EACE,mBAAA;EACA,OAAA;EACA,QAAA;EACA,UAAA;EACA,WAAA;EtC9FA,aAAA;EAGA,0BAAA;EsC6FA,gBAAA;EACA,YAAA;EACA,mBAAA;EACA,0CAAA;EACA,mCAAA;C5DmjMD;A4D9iMC;EdnGE,mGAAA;EACA,8FAAA;EACA,qHAAA;EAAA,+FAAA;EACA,4BAAA;EACA,uHAAA;C9CopMH;A4DljMC;EACE,WAAA;EACA,SAAA;EdxGA,mGAAA;EACA,8FAAA;EACA,qHAAA;EAAA,+FAAA;EACA,4BAAA;EACA,uHAAA;C9C6pMH;A4DpjMC;;EAEE,WAAA;EACA,YAAA;EACA,sBAAA;EtCvHF,aAAA;EAGA,0BAAA;CtB4qMD;A4DtlMD;;;;EAuCI,mBAAA;EACA,SAAA;EACA,kBAAA;EACA,WAAA;EACA,sBAAA;C5DqjMH;A4DhmMD;;EA+CI,UAAA;EACA,mBAAA;C5DqjMH;A4DrmMD;;EAoDI,WAAA;EACA,oBAAA;C5DqjMH;A4D1mMD;;EAyDI,YAAA;EACA,aAAA;EACA,eAAA;EACA,mBAAA;C5DqjMH;A4DhjMG;EACE,iBAAA;C5DkjML;A4D9iMG;EACE,iBAAA;C5DgjML;A4DtiMD;EACE,mBAAA;EACA,aAAA;EACA,UAAA;EACA,YAAA;EACA,WAAA;EACA,kBAAA;EACA,gBAAA;EACA,iBAAA;EACA,mBAAA;C5DwiMD;A4DjjMD;EAYI,sBAAA;EACA,YAAA;EACA,aAAA;EACA,YAAA;EACA,oBAAA;EACA,uBAAA;EACA,oBAAA;EACA,gBAAA;EAWA,0BAAA;EACA,mCAAA;C5D8hMH;A4D7jMD;EAkCI,UAAA;EACA,YAAA;EACA,aAAA;EACA,uBAAA;C5D8hMH;A4DvhMD;EACE,mBAAA;EACA,UAAA;EACA,WAAA;EACA,aAAA;EACA,YAAA;EACA,kBAAA;EACA,qBAAA;EACA,YAAA;EACA,mBAAA;EACA,0CAAA;C5DyhMD;A4DxhMC;EACE,kBAAA;C5D0hMH;A4Dj/LD;EAhCE;;;;IAKI,YAAA;IACA,aAAA;IACA,kBAAA;IACA,gBAAA;G5DmhMH;E4D3hMD;;IAYI,mBAAA;G5DmhMH;E4D/hMD;;IAgBI,oBAAA;G5DmhMH;E4D9gMD;IACE,UAAA;IACA,WAAA;IACA,qBAAA;G5DghMD;E4D5gMD;IACE,aAAA;G5D8gMD;CACF;A6D7wMC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAEE,aAAA;EACA,eAAA;C7D6yMH;A6D3yMC;;;;;;;;;;;;;;;;EACE,YAAA;C7D4zMH;AiCp0MD;E6BRE,eAAA;EACA,kBAAA;EACA,mBAAA;C9D+0MD;AiCt0MD;EACE,wBAAA;CjCw0MD;AiCt0MD;EACE,uBAAA;CjCw0MD;AiCh0MD;EACE,yBAAA;CjCk0MD;AiCh0MD;EACE,0BAAA;CjCk0MD;AiCh0MD;EACE,mBAAA;CjCk0MD;AiCh0MD;E8BzBE,YAAA;EACA,mBAAA;EACA,kBAAA;EACA,8BAAA;EACA,UAAA;C/D41MD;AiC9zMD;EACE,yBAAA;CjCg0MD;AiCzzMD;EACE,gBAAA;CjC2zMD;AgE51MD;EACE,oBAAA;ChE81MD;AgEx1MD;;;;ECdE,yBAAA;CjE42MD;AgEv1MD;;;;;;;;;;;;EAYE,yBAAA;ChEy1MD;AgEl1MD;EA6IA;IC7LE,0BAAA;GjEs4MC;EiEr4MD;IAAU,0BAAA;GjEw4MT;EiEv4MD;IAAU,8BAAA;GjE04MT;EiEz4MD;;IACU,+BAAA;GjE44MT;CACF;AgE51MD;EAwIA;IA1II,0BAAA;GhEk2MD;CACF;AgE51MD;EAmIA;IArII,2BAAA;GhEk2MD;CACF;AgE51MD;EA8HA;IAhII,iCAAA;GhEk2MD;CACF;AgE31MD;EAwHA;IC7LE,0BAAA;GjEo6MC;EiEn6MD;IAAU,0BAAA;GjEs6MT;EiEr6MD;IAAU,8BAAA;GjEw6MT;EiEv6MD;;IACU,+BAAA;GjE06MT;CACF;AgEr2MD;EAmHA;IArHI,0BAAA;GhE22MD;CACF;AgEr2MD;EA8GA;IAhHI,2BAAA;GhE22MD;CACF;AgEr2MD;EAyGA;IA3GI,iCAAA;GhE22MD;CACF;AgEp2MD;EAmGA;IC7LE,0BAAA;GjEk8MC;EiEj8MD;IAAU,0BAAA;GjEo8MT;EiEn8MD;IAAU,8BAAA;GjEs8MT;EiEr8MD;;IACU,+BAAA;GjEw8MT;CACF;AgE92MD;EA8FA;IAhGI,0BAAA;GhEo3MD;CACF;AgE92MD;EAyFA;IA3FI,2BAAA;GhEo3MD;CACF;AgE92MD;EAoFA;IAtFI,iCAAA;GhEo3MD;CACF;AgE72MD;EA8EA;IC7LE,0BAAA;GjEg+MC;EiE/9MD;IAAU,0BAAA;GjEk+MT;EiEj+MD;IAAU,8BAAA;GjEo+MT;EiEn+MD;;IACU,+BAAA;GjEs+MT;CACF;AgEv3MD;EAyEA;IA3EI,0BAAA;GhE63MD;CACF;AgEv3MD;EAoEA;IAtEI,2BAAA;GhE63MD;CACF;AgEv3MD;EA+DA;IAjEI,iCAAA;GhE63MD;CACF;AgEt3MD;EAyDA;ICrLE,yBAAA;GjEs/MC;CACF;AgEt3MD;EAoDA;ICrLE,yBAAA;GjE2/MC;CACF;AgEt3MD;EA+CA;ICrLE,yBAAA;GjEggNC;CACF;AgEt3MD;EA0CA;ICrLE,yBAAA;GjEqgNC;CACF;AgEn3MD;ECnJE,yBAAA;CjEygND;AgEh3MD;EA4BA;IC7LE,0BAAA;GjEqhNC;EiEphND;IAAU,0BAAA;GjEuhNT;EiEthND;IAAU,8BAAA;GjEyhNT;EiExhND;;IACU,+BAAA;GjE2hNT;CACF;AgE93MD;EACE,yBAAA;ChEg4MD;AgE33MD;EAqBA;IAvBI,0BAAA;GhEi4MD;CACF;AgE/3MD;EACE,yBAAA;ChEi4MD;AgE53MD;EAcA;IAhBI,2BAAA;GhEk4MD;CACF;AgEh4MD;EACE,yBAAA;ChEk4MD;AgE73MD;EAOA;IATI,iCAAA;GhEm4MD;CACF;AgE53MD;EACA;ICrLE,yBAAA;GjEojNC;CACF","file":"bootstrap.css","sourcesContent":["/*!\n * Bootstrap v3.3.7 (http://getbootstrap.com)\n * Copyright 2011-2016 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n */\n/*! normalize.css v3.0.3 | MIT License | github.com/necolas/normalize.css */\nhtml {\n font-family: sans-serif;\n -ms-text-size-adjust: 100%;\n -webkit-text-size-adjust: 100%;\n}\nbody {\n margin: 0;\n}\narticle,\naside,\ndetails,\nfigcaption,\nfigure,\nfooter,\nheader,\nhgroup,\nmain,\nmenu,\nnav,\nsection,\nsummary {\n display: block;\n}\naudio,\ncanvas,\nprogress,\nvideo {\n display: inline-block;\n vertical-align: baseline;\n}\naudio:not([controls]) {\n display: none;\n height: 0;\n}\n[hidden],\ntemplate {\n display: none;\n}\na {\n background-color: transparent;\n}\na:active,\na:hover {\n outline: 0;\n}\nabbr[title] {\n border-bottom: 1px dotted;\n}\nb,\nstrong {\n font-weight: bold;\n}\ndfn {\n font-style: italic;\n}\nh1 {\n font-size: 2em;\n margin: 0.67em 0;\n}\nmark {\n background: #ff0;\n color: #000;\n}\nsmall {\n font-size: 80%;\n}\nsub,\nsup {\n font-size: 75%;\n line-height: 0;\n position: relative;\n vertical-align: baseline;\n}\nsup {\n top: -0.5em;\n}\nsub {\n bottom: -0.25em;\n}\nimg {\n border: 0;\n}\nsvg:not(:root) {\n overflow: hidden;\n}\nfigure {\n margin: 1em 40px;\n}\nhr {\n box-sizing: content-box;\n height: 0;\n}\npre {\n overflow: auto;\n}\ncode,\nkbd,\npre,\nsamp {\n font-family: monospace, monospace;\n font-size: 1em;\n}\nbutton,\ninput,\noptgroup,\nselect,\ntextarea {\n color: inherit;\n font: inherit;\n margin: 0;\n}\nbutton {\n overflow: visible;\n}\nbutton,\nselect {\n text-transform: none;\n}\nbutton,\nhtml input[type=\"button\"],\ninput[type=\"reset\"],\ninput[type=\"submit\"] {\n -webkit-appearance: button;\n cursor: pointer;\n}\nbutton[disabled],\nhtml input[disabled] {\n cursor: default;\n}\nbutton::-moz-focus-inner,\ninput::-moz-focus-inner {\n border: 0;\n padding: 0;\n}\ninput {\n line-height: normal;\n}\ninput[type=\"checkbox\"],\ninput[type=\"radio\"] {\n box-sizing: border-box;\n padding: 0;\n}\ninput[type=\"number\"]::-webkit-inner-spin-button,\ninput[type=\"number\"]::-webkit-outer-spin-button {\n height: auto;\n}\ninput[type=\"search\"] {\n -webkit-appearance: textfield;\n box-sizing: content-box;\n}\ninput[type=\"search\"]::-webkit-search-cancel-button,\ninput[type=\"search\"]::-webkit-search-decoration {\n -webkit-appearance: none;\n}\nfieldset {\n border: 1px solid #c0c0c0;\n margin: 0 2px;\n padding: 0.35em 0.625em 0.75em;\n}\nlegend {\n border: 0;\n padding: 0;\n}\ntextarea {\n overflow: auto;\n}\noptgroup {\n font-weight: bold;\n}\ntable {\n border-collapse: collapse;\n border-spacing: 0;\n}\ntd,\nth {\n padding: 0;\n}\n/*! Source: https://github.com/h5bp/html5-boilerplate/blob/master/src/css/main.css */\n@media print {\n *,\n *:before,\n *:after {\n background: transparent !important;\n color: #000 !important;\n box-shadow: none !important;\n text-shadow: none !important;\n }\n a,\n a:visited {\n text-decoration: underline;\n }\n a[href]:after {\n content: \" (\" attr(href) \")\";\n }\n abbr[title]:after {\n content: \" (\" attr(title) \")\";\n }\n a[href^=\"#\"]:after,\n a[href^=\"javascript:\"]:after {\n content: \"\";\n }\n pre,\n blockquote {\n border: 1px solid #999;\n page-break-inside: avoid;\n }\n thead {\n display: table-header-group;\n }\n tr,\n img {\n page-break-inside: avoid;\n }\n img {\n max-width: 100% !important;\n }\n p,\n h2,\n h3 {\n orphans: 3;\n widows: 3;\n }\n h2,\n h3 {\n page-break-after: avoid;\n }\n .navbar {\n display: none;\n }\n .btn > .caret,\n .dropup > .btn > .caret {\n border-top-color: #000 !important;\n }\n .label {\n border: 1px solid #000;\n }\n .table {\n border-collapse: collapse !important;\n }\n .table td,\n .table th {\n background-color: #fff !important;\n }\n .table-bordered th,\n .table-bordered td {\n border: 1px solid #ddd !important;\n }\n}\n@font-face {\n font-family: 'Glyphicons Halflings';\n src: url('../fonts/glyphicons-halflings-regular.eot');\n src: url('../fonts/glyphicons-halflings-regular.eot?#iefix') format('embedded-opentype'), url('../fonts/glyphicons-halflings-regular.woff2') format('woff2'), url('../fonts/glyphicons-halflings-regular.woff') format('woff'), url('../fonts/glyphicons-halflings-regular.ttf') format('truetype'), url('../fonts/glyphicons-halflings-regular.svg#glyphicons_halflingsregular') format('svg');\n}\n.glyphicon {\n position: relative;\n top: 1px;\n display: inline-block;\n font-family: 'Glyphicons Halflings';\n font-style: normal;\n font-weight: normal;\n line-height: 1;\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale;\n}\n.glyphicon-asterisk:before {\n content: \"\\002a\";\n}\n.glyphicon-plus:before {\n content: \"\\002b\";\n}\n.glyphicon-euro:before,\n.glyphicon-eur:before {\n content: \"\\20ac\";\n}\n.glyphicon-minus:before {\n content: \"\\2212\";\n}\n.glyphicon-cloud:before {\n content: \"\\2601\";\n}\n.glyphicon-envelope:before {\n content: \"\\2709\";\n}\n.glyphicon-pencil:before {\n content: \"\\270f\";\n}\n.glyphicon-glass:before {\n content: \"\\e001\";\n}\n.glyphicon-music:before {\n content: \"\\e002\";\n}\n.glyphicon-search:before {\n content: \"\\e003\";\n}\n.glyphicon-heart:before {\n content: \"\\e005\";\n}\n.glyphicon-star:before {\n content: \"\\e006\";\n}\n.glyphicon-star-empty:before {\n content: \"\\e007\";\n}\n.glyphicon-user:before {\n content: \"\\e008\";\n}\n.glyphicon-film:before {\n content: \"\\e009\";\n}\n.glyphicon-th-large:before {\n content: \"\\e010\";\n}\n.glyphicon-th:before {\n content: \"\\e011\";\n}\n.glyphicon-th-list:before {\n content: \"\\e012\";\n}\n.glyphicon-ok:before {\n content: \"\\e013\";\n}\n.glyphicon-remove:before {\n content: \"\\e014\";\n}\n.glyphicon-zoom-in:before {\n content: \"\\e015\";\n}\n.glyphicon-zoom-out:before {\n content: \"\\e016\";\n}\n.glyphicon-off:before {\n content: \"\\e017\";\n}\n.glyphicon-signal:before {\n content: \"\\e018\";\n}\n.glyphicon-cog:before {\n content: \"\\e019\";\n}\n.glyphicon-trash:before {\n content: \"\\e020\";\n}\n.glyphicon-home:before {\n content: \"\\e021\";\n}\n.glyphicon-file:before {\n content: \"\\e022\";\n}\n.glyphicon-time:before {\n content: \"\\e023\";\n}\n.glyphicon-road:before {\n content: \"\\e024\";\n}\n.glyphicon-download-alt:before {\n content: \"\\e025\";\n}\n.glyphicon-download:before {\n content: \"\\e026\";\n}\n.glyphicon-upload:before {\n content: \"\\e027\";\n}\n.glyphicon-inbox:before {\n content: \"\\e028\";\n}\n.glyphicon-play-circle:before {\n content: \"\\e029\";\n}\n.glyphicon-repeat:before {\n content: \"\\e030\";\n}\n.glyphicon-refresh:before {\n content: \"\\e031\";\n}\n.glyphicon-list-alt:before {\n content: \"\\e032\";\n}\n.glyphicon-lock:before {\n content: \"\\e033\";\n}\n.glyphicon-flag:before {\n content: \"\\e034\";\n}\n.glyphicon-headphones:before {\n content: \"\\e035\";\n}\n.glyphicon-volume-off:before {\n content: \"\\e036\";\n}\n.glyphicon-volume-down:before {\n content: \"\\e037\";\n}\n.glyphicon-volume-up:before {\n content: \"\\e038\";\n}\n.glyphicon-qrcode:before {\n content: \"\\e039\";\n}\n.glyphicon-barcode:before {\n content: \"\\e040\";\n}\n.glyphicon-tag:before {\n content: \"\\e041\";\n}\n.glyphicon-tags:before {\n content: \"\\e042\";\n}\n.glyphicon-book:before {\n content: \"\\e043\";\n}\n.glyphicon-bookmark:before {\n content: \"\\e044\";\n}\n.glyphicon-print:before {\n content: \"\\e045\";\n}\n.glyphicon-camera:before {\n content: \"\\e046\";\n}\n.glyphicon-font:before {\n content: \"\\e047\";\n}\n.glyphicon-bold:before {\n content: \"\\e048\";\n}\n.glyphicon-italic:before {\n content: \"\\e049\";\n}\n.glyphicon-text-height:before {\n content: \"\\e050\";\n}\n.glyphicon-text-width:before {\n content: \"\\e051\";\n}\n.glyphicon-align-left:before {\n content: \"\\e052\";\n}\n.glyphicon-align-center:before {\n content: \"\\e053\";\n}\n.glyphicon-align-right:before {\n content: \"\\e054\";\n}\n.glyphicon-align-justify:before {\n content: \"\\e055\";\n}\n.glyphicon-list:before {\n content: \"\\e056\";\n}\n.glyphicon-indent-left:before {\n content: \"\\e057\";\n}\n.glyphicon-indent-right:before {\n content: \"\\e058\";\n}\n.glyphicon-facetime-video:before {\n content: \"\\e059\";\n}\n.glyphicon-picture:before {\n content: \"\\e060\";\n}\n.glyphicon-map-marker:before {\n content: \"\\e062\";\n}\n.glyphicon-adjust:before {\n content: \"\\e063\";\n}\n.glyphicon-tint:before {\n content: \"\\e064\";\n}\n.glyphicon-edit:before {\n content: \"\\e065\";\n}\n.glyphicon-share:before {\n content: \"\\e066\";\n}\n.glyphicon-check:before {\n content: \"\\e067\";\n}\n.glyphicon-move:before {\n content: \"\\e068\";\n}\n.glyphicon-step-backward:before {\n content: \"\\e069\";\n}\n.glyphicon-fast-backward:before {\n content: \"\\e070\";\n}\n.glyphicon-backward:before {\n content: \"\\e071\";\n}\n.glyphicon-play:before {\n content: \"\\e072\";\n}\n.glyphicon-pause:before {\n content: \"\\e073\";\n}\n.glyphicon-stop:before {\n content: \"\\e074\";\n}\n.glyphicon-forward:before {\n content: \"\\e075\";\n}\n.glyphicon-fast-forward:before {\n content: \"\\e076\";\n}\n.glyphicon-step-forward:before {\n content: \"\\e077\";\n}\n.glyphicon-eject:before {\n content: \"\\e078\";\n}\n.glyphicon-chevron-left:before {\n content: \"\\e079\";\n}\n.glyphicon-chevron-right:before {\n content: \"\\e080\";\n}\n.glyphicon-plus-sign:before {\n content: \"\\e081\";\n}\n.glyphicon-minus-sign:before {\n content: \"\\e082\";\n}\n.glyphicon-remove-sign:before {\n content: \"\\e083\";\n}\n.glyphicon-ok-sign:before {\n content: \"\\e084\";\n}\n.glyphicon-question-sign:before {\n content: \"\\e085\";\n}\n.glyphicon-info-sign:before {\n content: \"\\e086\";\n}\n.glyphicon-screenshot:before {\n content: \"\\e087\";\n}\n.glyphicon-remove-circle:before {\n content: \"\\e088\";\n}\n.glyphicon-ok-circle:before {\n content: \"\\e089\";\n}\n.glyphicon-ban-circle:before {\n content: \"\\e090\";\n}\n.glyphicon-arrow-left:before {\n content: \"\\e091\";\n}\n.glyphicon-arrow-right:before {\n content: \"\\e092\";\n}\n.glyphicon-arrow-up:before {\n content: \"\\e093\";\n}\n.glyphicon-arrow-down:before {\n content: \"\\e094\";\n}\n.glyphicon-share-alt:before {\n content: \"\\e095\";\n}\n.glyphicon-resize-full:before {\n content: \"\\e096\";\n}\n.glyphicon-resize-small:before {\n content: \"\\e097\";\n}\n.glyphicon-exclamation-sign:before {\n content: \"\\e101\";\n}\n.glyphicon-gift:before {\n content: \"\\e102\";\n}\n.glyphicon-leaf:before {\n content: \"\\e103\";\n}\n.glyphicon-fire:before {\n content: \"\\e104\";\n}\n.glyphicon-eye-open:before {\n content: \"\\e105\";\n}\n.glyphicon-eye-close:before {\n content: \"\\e106\";\n}\n.glyphicon-warning-sign:before {\n content: \"\\e107\";\n}\n.glyphicon-plane:before {\n content: \"\\e108\";\n}\n.glyphicon-calendar:before {\n content: \"\\e109\";\n}\n.glyphicon-random:before {\n content: \"\\e110\";\n}\n.glyphicon-comment:before {\n content: \"\\e111\";\n}\n.glyphicon-magnet:before {\n content: \"\\e112\";\n}\n.glyphicon-chevron-up:before {\n content: \"\\e113\";\n}\n.glyphicon-chevron-down:before {\n content: \"\\e114\";\n}\n.glyphicon-retweet:before {\n content: \"\\e115\";\n}\n.glyphicon-shopping-cart:before {\n content: \"\\e116\";\n}\n.glyphicon-folder-close:before {\n content: \"\\e117\";\n}\n.glyphicon-folder-open:before {\n content: \"\\e118\";\n}\n.glyphicon-resize-vertical:before {\n content: \"\\e119\";\n}\n.glyphicon-resize-horizontal:before {\n content: \"\\e120\";\n}\n.glyphicon-hdd:before {\n content: \"\\e121\";\n}\n.glyphicon-bullhorn:before {\n content: \"\\e122\";\n}\n.glyphicon-bell:before {\n content: \"\\e123\";\n}\n.glyphicon-certificate:before {\n content: \"\\e124\";\n}\n.glyphicon-thumbs-up:before {\n content: \"\\e125\";\n}\n.glyphicon-thumbs-down:before {\n content: \"\\e126\";\n}\n.glyphicon-hand-right:before {\n content: \"\\e127\";\n}\n.glyphicon-hand-left:before {\n content: \"\\e128\";\n}\n.glyphicon-hand-up:before {\n content: \"\\e129\";\n}\n.glyphicon-hand-down:before {\n content: \"\\e130\";\n}\n.glyphicon-circle-arrow-right:before {\n content: \"\\e131\";\n}\n.glyphicon-circle-arrow-left:before {\n content: \"\\e132\";\n}\n.glyphicon-circle-arrow-up:before {\n content: \"\\e133\";\n}\n.glyphicon-circle-arrow-down:before {\n content: \"\\e134\";\n}\n.glyphicon-globe:before {\n content: \"\\e135\";\n}\n.glyphicon-wrench:before {\n content: \"\\e136\";\n}\n.glyphicon-tasks:before {\n content: \"\\e137\";\n}\n.glyphicon-filter:before {\n content: \"\\e138\";\n}\n.glyphicon-briefcase:before {\n content: \"\\e139\";\n}\n.glyphicon-fullscreen:before {\n content: \"\\e140\";\n}\n.glyphicon-dashboard:before {\n content: \"\\e141\";\n}\n.glyphicon-paperclip:before {\n content: \"\\e142\";\n}\n.glyphicon-heart-empty:before {\n content: \"\\e143\";\n}\n.glyphicon-link:before {\n content: \"\\e144\";\n}\n.glyphicon-phone:before {\n content: \"\\e145\";\n}\n.glyphicon-pushpin:before {\n content: \"\\e146\";\n}\n.glyphicon-usd:before {\n content: \"\\e148\";\n}\n.glyphicon-gbp:before {\n content: \"\\e149\";\n}\n.glyphicon-sort:before {\n content: \"\\e150\";\n}\n.glyphicon-sort-by-alphabet:before {\n content: \"\\e151\";\n}\n.glyphicon-sort-by-alphabet-alt:before {\n content: \"\\e152\";\n}\n.glyphicon-sort-by-order:before {\n content: \"\\e153\";\n}\n.glyphicon-sort-by-order-alt:before {\n content: \"\\e154\";\n}\n.glyphicon-sort-by-attributes:before {\n content: \"\\e155\";\n}\n.glyphicon-sort-by-attributes-alt:before {\n content: \"\\e156\";\n}\n.glyphicon-unchecked:before {\n content: \"\\e157\";\n}\n.glyphicon-expand:before {\n content: \"\\e158\";\n}\n.glyphicon-collapse-down:before {\n content: \"\\e159\";\n}\n.glyphicon-collapse-up:before {\n content: \"\\e160\";\n}\n.glyphicon-log-in:before {\n content: \"\\e161\";\n}\n.glyphicon-flash:before {\n content: \"\\e162\";\n}\n.glyphicon-log-out:before {\n content: \"\\e163\";\n}\n.glyphicon-new-window:before {\n content: \"\\e164\";\n}\n.glyphicon-record:before {\n content: \"\\e165\";\n}\n.glyphicon-save:before {\n content: \"\\e166\";\n}\n.glyphicon-open:before {\n content: \"\\e167\";\n}\n.glyphicon-saved:before {\n content: \"\\e168\";\n}\n.glyphicon-import:before {\n content: \"\\e169\";\n}\n.glyphicon-export:before {\n content: \"\\e170\";\n}\n.glyphicon-send:before {\n content: \"\\e171\";\n}\n.glyphicon-floppy-disk:before {\n content: \"\\e172\";\n}\n.glyphicon-floppy-saved:before {\n content: \"\\e173\";\n}\n.glyphicon-floppy-remove:before {\n content: \"\\e174\";\n}\n.glyphicon-floppy-save:before {\n content: \"\\e175\";\n}\n.glyphicon-floppy-open:before {\n content: \"\\e176\";\n}\n.glyphicon-credit-card:before {\n content: \"\\e177\";\n}\n.glyphicon-transfer:before {\n content: \"\\e178\";\n}\n.glyphicon-cutlery:before {\n content: \"\\e179\";\n}\n.glyphicon-header:before {\n content: \"\\e180\";\n}\n.glyphicon-compressed:before {\n content: \"\\e181\";\n}\n.glyphicon-earphone:before {\n content: \"\\e182\";\n}\n.glyphicon-phone-alt:before {\n content: \"\\e183\";\n}\n.glyphicon-tower:before {\n content: \"\\e184\";\n}\n.glyphicon-stats:before {\n content: \"\\e185\";\n}\n.glyphicon-sd-video:before {\n content: \"\\e186\";\n}\n.glyphicon-hd-video:before {\n content: \"\\e187\";\n}\n.glyphicon-subtitles:before {\n content: \"\\e188\";\n}\n.glyphicon-sound-stereo:before {\n content: \"\\e189\";\n}\n.glyphicon-sound-dolby:before {\n content: \"\\e190\";\n}\n.glyphicon-sound-5-1:before {\n content: \"\\e191\";\n}\n.glyphicon-sound-6-1:before {\n content: \"\\e192\";\n}\n.glyphicon-sound-7-1:before {\n content: \"\\e193\";\n}\n.glyphicon-copyright-mark:before {\n content: \"\\e194\";\n}\n.glyphicon-registration-mark:before {\n content: \"\\e195\";\n}\n.glyphicon-cloud-download:before {\n content: \"\\e197\";\n}\n.glyphicon-cloud-upload:before {\n content: \"\\e198\";\n}\n.glyphicon-tree-conifer:before {\n content: \"\\e199\";\n}\n.glyphicon-tree-deciduous:before {\n content: \"\\e200\";\n}\n.glyphicon-cd:before {\n content: \"\\e201\";\n}\n.glyphicon-save-file:before {\n content: \"\\e202\";\n}\n.glyphicon-open-file:before {\n content: \"\\e203\";\n}\n.glyphicon-level-up:before {\n content: \"\\e204\";\n}\n.glyphicon-copy:before {\n content: \"\\e205\";\n}\n.glyphicon-paste:before {\n content: \"\\e206\";\n}\n.glyphicon-alert:before {\n content: \"\\e209\";\n}\n.glyphicon-equalizer:before {\n content: \"\\e210\";\n}\n.glyphicon-king:before {\n content: \"\\e211\";\n}\n.glyphicon-queen:before {\n content: \"\\e212\";\n}\n.glyphicon-pawn:before {\n content: \"\\e213\";\n}\n.glyphicon-bishop:before {\n content: \"\\e214\";\n}\n.glyphicon-knight:before {\n content: \"\\e215\";\n}\n.glyphicon-baby-formula:before {\n content: \"\\e216\";\n}\n.glyphicon-tent:before {\n content: \"\\26fa\";\n}\n.glyphicon-blackboard:before {\n content: \"\\e218\";\n}\n.glyphicon-bed:before {\n content: \"\\e219\";\n}\n.glyphicon-apple:before {\n content: \"\\f8ff\";\n}\n.glyphicon-erase:before {\n content: \"\\e221\";\n}\n.glyphicon-hourglass:before {\n content: \"\\231b\";\n}\n.glyphicon-lamp:before {\n content: \"\\e223\";\n}\n.glyphicon-duplicate:before {\n content: \"\\e224\";\n}\n.glyphicon-piggy-bank:before {\n content: \"\\e225\";\n}\n.glyphicon-scissors:before {\n content: \"\\e226\";\n}\n.glyphicon-bitcoin:before {\n content: \"\\e227\";\n}\n.glyphicon-btc:before {\n content: \"\\e227\";\n}\n.glyphicon-xbt:before {\n content: \"\\e227\";\n}\n.glyphicon-yen:before {\n content: \"\\00a5\";\n}\n.glyphicon-jpy:before {\n content: \"\\00a5\";\n}\n.glyphicon-ruble:before {\n content: \"\\20bd\";\n}\n.glyphicon-rub:before {\n content: \"\\20bd\";\n}\n.glyphicon-scale:before {\n content: \"\\e230\";\n}\n.glyphicon-ice-lolly:before {\n content: \"\\e231\";\n}\n.glyphicon-ice-lolly-tasted:before {\n content: \"\\e232\";\n}\n.glyphicon-education:before {\n content: \"\\e233\";\n}\n.glyphicon-option-horizontal:before {\n content: \"\\e234\";\n}\n.glyphicon-option-vertical:before {\n content: \"\\e235\";\n}\n.glyphicon-menu-hamburger:before {\n content: \"\\e236\";\n}\n.glyphicon-modal-window:before {\n content: \"\\e237\";\n}\n.glyphicon-oil:before {\n content: \"\\e238\";\n}\n.glyphicon-grain:before {\n content: \"\\e239\";\n}\n.glyphicon-sunglasses:before {\n content: \"\\e240\";\n}\n.glyphicon-text-size:before {\n content: \"\\e241\";\n}\n.glyphicon-text-color:before {\n content: \"\\e242\";\n}\n.glyphicon-text-background:before {\n content: \"\\e243\";\n}\n.glyphicon-object-align-top:before {\n content: \"\\e244\";\n}\n.glyphicon-object-align-bottom:before {\n content: \"\\e245\";\n}\n.glyphicon-object-align-horizontal:before {\n content: \"\\e246\";\n}\n.glyphicon-object-align-left:before {\n content: \"\\e247\";\n}\n.glyphicon-object-align-vertical:before {\n content: \"\\e248\";\n}\n.glyphicon-object-align-right:before {\n content: \"\\e249\";\n}\n.glyphicon-triangle-right:before {\n content: \"\\e250\";\n}\n.glyphicon-triangle-left:before {\n content: \"\\e251\";\n}\n.glyphicon-triangle-bottom:before {\n content: \"\\e252\";\n}\n.glyphicon-triangle-top:before {\n content: \"\\e253\";\n}\n.glyphicon-console:before {\n content: \"\\e254\";\n}\n.glyphicon-superscript:before {\n content: \"\\e255\";\n}\n.glyphicon-subscript:before {\n content: \"\\e256\";\n}\n.glyphicon-menu-left:before {\n content: \"\\e257\";\n}\n.glyphicon-menu-right:before {\n content: \"\\e258\";\n}\n.glyphicon-menu-down:before {\n content: \"\\e259\";\n}\n.glyphicon-menu-up:before {\n content: \"\\e260\";\n}\n* {\n -webkit-box-sizing: border-box;\n -moz-box-sizing: border-box;\n box-sizing: border-box;\n}\n*:before,\n*:after {\n -webkit-box-sizing: border-box;\n -moz-box-sizing: border-box;\n box-sizing: border-box;\n}\nhtml {\n font-size: 10px;\n -webkit-tap-highlight-color: rgba(0, 0, 0, 0);\n}\nbody {\n font-family: \"Helvetica Neue\", Helvetica, Arial, sans-serif;\n font-size: 14px;\n line-height: 1.42857143;\n color: #333333;\n background-color: #fff;\n}\ninput,\nbutton,\nselect,\ntextarea {\n font-family: inherit;\n font-size: inherit;\n line-height: inherit;\n}\na {\n color: #337ab7;\n text-decoration: none;\n}\na:hover,\na:focus {\n color: #23527c;\n text-decoration: underline;\n}\na:focus {\n outline: 5px auto -webkit-focus-ring-color;\n outline-offset: -2px;\n}\nfigure {\n margin: 0;\n}\nimg {\n vertical-align: middle;\n}\n.img-responsive,\n.thumbnail > img,\n.thumbnail a > img,\n.carousel-inner > .item > img,\n.carousel-inner > .item > a > img {\n display: block;\n max-width: 100%;\n height: auto;\n}\n.img-rounded {\n border-radius: 6px;\n}\n.img-thumbnail {\n padding: 4px;\n line-height: 1.42857143;\n background-color: #fff;\n border: 1px solid #ddd;\n border-radius: 4px;\n -webkit-transition: all 0.2s ease-in-out;\n -o-transition: all 0.2s ease-in-out;\n transition: all 0.2s ease-in-out;\n display: inline-block;\n max-width: 100%;\n height: auto;\n}\n.img-circle {\n border-radius: 50%;\n}\nhr {\n margin-top: 20px;\n margin-bottom: 20px;\n border: 0;\n border-top: 1px solid #eeeeee;\n}\n.sr-only {\n position: absolute;\n width: 1px;\n height: 1px;\n margin: -1px;\n padding: 0;\n overflow: hidden;\n clip: rect(0, 0, 0, 0);\n border: 0;\n}\n.sr-only-focusable:active,\n.sr-only-focusable:focus {\n position: static;\n width: auto;\n height: auto;\n margin: 0;\n overflow: visible;\n clip: auto;\n}\n[role=\"button\"] {\n cursor: pointer;\n}\nh1,\nh2,\nh3,\nh4,\nh5,\nh6,\n.h1,\n.h2,\n.h3,\n.h4,\n.h5,\n.h6 {\n font-family: inherit;\n font-weight: 500;\n line-height: 1.1;\n color: inherit;\n}\nh1 small,\nh2 small,\nh3 small,\nh4 small,\nh5 small,\nh6 small,\n.h1 small,\n.h2 small,\n.h3 small,\n.h4 small,\n.h5 small,\n.h6 small,\nh1 .small,\nh2 .small,\nh3 .small,\nh4 .small,\nh5 .small,\nh6 .small,\n.h1 .small,\n.h2 .small,\n.h3 .small,\n.h4 .small,\n.h5 .small,\n.h6 .small {\n font-weight: normal;\n line-height: 1;\n color: #777777;\n}\nh1,\n.h1,\nh2,\n.h2,\nh3,\n.h3 {\n margin-top: 20px;\n margin-bottom: 10px;\n}\nh1 small,\n.h1 small,\nh2 small,\n.h2 small,\nh3 small,\n.h3 small,\nh1 .small,\n.h1 .small,\nh2 .small,\n.h2 .small,\nh3 .small,\n.h3 .small {\n font-size: 65%;\n}\nh4,\n.h4,\nh5,\n.h5,\nh6,\n.h6 {\n margin-top: 10px;\n margin-bottom: 10px;\n}\nh4 small,\n.h4 small,\nh5 small,\n.h5 small,\nh6 small,\n.h6 small,\nh4 .small,\n.h4 .small,\nh5 .small,\n.h5 .small,\nh6 .small,\n.h6 .small {\n font-size: 75%;\n}\nh1,\n.h1 {\n font-size: 36px;\n}\nh2,\n.h2 {\n font-size: 30px;\n}\nh3,\n.h3 {\n font-size: 24px;\n}\nh4,\n.h4 {\n font-size: 18px;\n}\nh5,\n.h5 {\n font-size: 14px;\n}\nh6,\n.h6 {\n font-size: 12px;\n}\np {\n margin: 0 0 10px;\n}\n.lead {\n margin-bottom: 20px;\n font-size: 16px;\n font-weight: 300;\n line-height: 1.4;\n}\n@media (min-width: 768px) {\n .lead {\n font-size: 21px;\n }\n}\nsmall,\n.small {\n font-size: 85%;\n}\nmark,\n.mark {\n background-color: #fcf8e3;\n padding: .2em;\n}\n.text-left {\n text-align: left;\n}\n.text-right {\n text-align: right;\n}\n.text-center {\n text-align: center;\n}\n.text-justify {\n text-align: justify;\n}\n.text-nowrap {\n white-space: nowrap;\n}\n.text-lowercase {\n text-transform: lowercase;\n}\n.text-uppercase {\n text-transform: uppercase;\n}\n.text-capitalize {\n text-transform: capitalize;\n}\n.text-muted {\n color: #777777;\n}\n.text-primary {\n color: #337ab7;\n}\na.text-primary:hover,\na.text-primary:focus {\n color: #286090;\n}\n.text-success {\n color: #3c763d;\n}\na.text-success:hover,\na.text-success:focus {\n color: #2b542c;\n}\n.text-info {\n color: #31708f;\n}\na.text-info:hover,\na.text-info:focus {\n color: #245269;\n}\n.text-warning {\n color: #8a6d3b;\n}\na.text-warning:hover,\na.text-warning:focus {\n color: #66512c;\n}\n.text-danger {\n color: #a94442;\n}\na.text-danger:hover,\na.text-danger:focus {\n color: #843534;\n}\n.bg-primary {\n color: #fff;\n background-color: #337ab7;\n}\na.bg-primary:hover,\na.bg-primary:focus {\n background-color: #286090;\n}\n.bg-success {\n background-color: #dff0d8;\n}\na.bg-success:hover,\na.bg-success:focus {\n background-color: #c1e2b3;\n}\n.bg-info {\n background-color: #d9edf7;\n}\na.bg-info:hover,\na.bg-info:focus {\n background-color: #afd9ee;\n}\n.bg-warning {\n background-color: #fcf8e3;\n}\na.bg-warning:hover,\na.bg-warning:focus {\n background-color: #f7ecb5;\n}\n.bg-danger {\n background-color: #f2dede;\n}\na.bg-danger:hover,\na.bg-danger:focus {\n background-color: #e4b9b9;\n}\n.page-header {\n padding-bottom: 9px;\n margin: 40px 0 20px;\n border-bottom: 1px solid #eeeeee;\n}\nul,\nol {\n margin-top: 0;\n margin-bottom: 10px;\n}\nul ul,\nol ul,\nul ol,\nol ol {\n margin-bottom: 0;\n}\n.list-unstyled {\n padding-left: 0;\n list-style: none;\n}\n.list-inline {\n padding-left: 0;\n list-style: none;\n margin-left: -5px;\n}\n.list-inline > li {\n display: inline-block;\n padding-left: 5px;\n padding-right: 5px;\n}\ndl {\n margin-top: 0;\n margin-bottom: 20px;\n}\ndt,\ndd {\n line-height: 1.42857143;\n}\ndt {\n font-weight: bold;\n}\ndd {\n margin-left: 0;\n}\n@media (min-width: 768px) {\n .dl-horizontal dt {\n float: left;\n width: 160px;\n clear: left;\n text-align: right;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n }\n .dl-horizontal dd {\n margin-left: 180px;\n }\n}\nabbr[title],\nabbr[data-original-title] {\n cursor: help;\n border-bottom: 1px dotted #777777;\n}\n.initialism {\n font-size: 90%;\n text-transform: uppercase;\n}\nblockquote {\n padding: 10px 20px;\n margin: 0 0 20px;\n font-size: 17.5px;\n border-left: 5px solid #eeeeee;\n}\nblockquote p:last-child,\nblockquote ul:last-child,\nblockquote ol:last-child {\n margin-bottom: 0;\n}\nblockquote footer,\nblockquote small,\nblockquote .small {\n display: block;\n font-size: 80%;\n line-height: 1.42857143;\n color: #777777;\n}\nblockquote footer:before,\nblockquote small:before,\nblockquote .small:before {\n content: '\\2014 \\00A0';\n}\n.blockquote-reverse,\nblockquote.pull-right {\n padding-right: 15px;\n padding-left: 0;\n border-right: 5px solid #eeeeee;\n border-left: 0;\n text-align: right;\n}\n.blockquote-reverse footer:before,\nblockquote.pull-right footer:before,\n.blockquote-reverse small:before,\nblockquote.pull-right small:before,\n.blockquote-reverse .small:before,\nblockquote.pull-right .small:before {\n content: '';\n}\n.blockquote-reverse footer:after,\nblockquote.pull-right footer:after,\n.blockquote-reverse small:after,\nblockquote.pull-right small:after,\n.blockquote-reverse .small:after,\nblockquote.pull-right .small:after {\n content: '\\00A0 \\2014';\n}\naddress {\n margin-bottom: 20px;\n font-style: normal;\n line-height: 1.42857143;\n}\ncode,\nkbd,\npre,\nsamp {\n font-family: Menlo, Monaco, Consolas, \"Courier New\", monospace;\n}\ncode {\n padding: 2px 4px;\n font-size: 90%;\n color: #c7254e;\n background-color: #f9f2f4;\n border-radius: 4px;\n}\nkbd {\n padding: 2px 4px;\n font-size: 90%;\n color: #fff;\n background-color: #333;\n border-radius: 3px;\n box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.25);\n}\nkbd kbd {\n padding: 0;\n font-size: 100%;\n font-weight: bold;\n box-shadow: none;\n}\npre {\n display: block;\n padding: 9.5px;\n margin: 0 0 10px;\n font-size: 13px;\n line-height: 1.42857143;\n word-break: break-all;\n word-wrap: break-word;\n color: #333333;\n background-color: #f5f5f5;\n border: 1px solid #ccc;\n border-radius: 4px;\n}\npre code {\n padding: 0;\n font-size: inherit;\n color: inherit;\n white-space: pre-wrap;\n background-color: transparent;\n border-radius: 0;\n}\n.pre-scrollable {\n max-height: 340px;\n overflow-y: scroll;\n}\n.container {\n margin-right: auto;\n margin-left: auto;\n padding-left: 15px;\n padding-right: 15px;\n}\n@media (min-width: 768px) {\n .container {\n width: 750px;\n }\n}\n@media (min-width: 992px) {\n .container {\n width: 970px;\n }\n}\n@media (min-width: 1200px) {\n .container {\n width: 1170px;\n }\n}\n.container-fluid {\n margin-right: auto;\n margin-left: auto;\n padding-left: 15px;\n padding-right: 15px;\n}\n.row {\n margin-left: -15px;\n margin-right: -15px;\n}\n.col-xs-1, .col-sm-1, .col-md-1, .col-lg-1, .col-xs-2, .col-sm-2, .col-md-2, .col-lg-2, .col-xs-3, .col-sm-3, .col-md-3, .col-lg-3, .col-xs-4, .col-sm-4, .col-md-4, .col-lg-4, .col-xs-5, .col-sm-5, .col-md-5, .col-lg-5, .col-xs-6, .col-sm-6, .col-md-6, .col-lg-6, .col-xs-7, .col-sm-7, .col-md-7, .col-lg-7, .col-xs-8, .col-sm-8, .col-md-8, .col-lg-8, .col-xs-9, .col-sm-9, .col-md-9, .col-lg-9, .col-xs-10, .col-sm-10, .col-md-10, .col-lg-10, .col-xs-11, .col-sm-11, .col-md-11, .col-lg-11, .col-xs-12, .col-sm-12, .col-md-12, .col-lg-12 {\n position: relative;\n min-height: 1px;\n padding-left: 15px;\n padding-right: 15px;\n}\n.col-xs-1, .col-xs-2, .col-xs-3, .col-xs-4, .col-xs-5, .col-xs-6, .col-xs-7, .col-xs-8, .col-xs-9, .col-xs-10, .col-xs-11, .col-xs-12 {\n float: left;\n}\n.col-xs-12 {\n width: 100%;\n}\n.col-xs-11 {\n width: 91.66666667%;\n}\n.col-xs-10 {\n width: 83.33333333%;\n}\n.col-xs-9 {\n width: 75%;\n}\n.col-xs-8 {\n width: 66.66666667%;\n}\n.col-xs-7 {\n width: 58.33333333%;\n}\n.col-xs-6 {\n width: 50%;\n}\n.col-xs-5 {\n width: 41.66666667%;\n}\n.col-xs-4 {\n width: 33.33333333%;\n}\n.col-xs-3 {\n width: 25%;\n}\n.col-xs-2 {\n width: 16.66666667%;\n}\n.col-xs-1 {\n width: 8.33333333%;\n}\n.col-xs-pull-12 {\n right: 100%;\n}\n.col-xs-pull-11 {\n right: 91.66666667%;\n}\n.col-xs-pull-10 {\n right: 83.33333333%;\n}\n.col-xs-pull-9 {\n right: 75%;\n}\n.col-xs-pull-8 {\n right: 66.66666667%;\n}\n.col-xs-pull-7 {\n right: 58.33333333%;\n}\n.col-xs-pull-6 {\n right: 50%;\n}\n.col-xs-pull-5 {\n right: 41.66666667%;\n}\n.col-xs-pull-4 {\n right: 33.33333333%;\n}\n.col-xs-pull-3 {\n right: 25%;\n}\n.col-xs-pull-2 {\n right: 16.66666667%;\n}\n.col-xs-pull-1 {\n right: 8.33333333%;\n}\n.col-xs-pull-0 {\n right: auto;\n}\n.col-xs-push-12 {\n left: 100%;\n}\n.col-xs-push-11 {\n left: 91.66666667%;\n}\n.col-xs-push-10 {\n left: 83.33333333%;\n}\n.col-xs-push-9 {\n left: 75%;\n}\n.col-xs-push-8 {\n left: 66.66666667%;\n}\n.col-xs-push-7 {\n left: 58.33333333%;\n}\n.col-xs-push-6 {\n left: 50%;\n}\n.col-xs-push-5 {\n left: 41.66666667%;\n}\n.col-xs-push-4 {\n left: 33.33333333%;\n}\n.col-xs-push-3 {\n left: 25%;\n}\n.col-xs-push-2 {\n left: 16.66666667%;\n}\n.col-xs-push-1 {\n left: 8.33333333%;\n}\n.col-xs-push-0 {\n left: auto;\n}\n.col-xs-offset-12 {\n margin-left: 100%;\n}\n.col-xs-offset-11 {\n margin-left: 91.66666667%;\n}\n.col-xs-offset-10 {\n margin-left: 83.33333333%;\n}\n.col-xs-offset-9 {\n margin-left: 75%;\n}\n.col-xs-offset-8 {\n margin-left: 66.66666667%;\n}\n.col-xs-offset-7 {\n margin-left: 58.33333333%;\n}\n.col-xs-offset-6 {\n margin-left: 50%;\n}\n.col-xs-offset-5 {\n margin-left: 41.66666667%;\n}\n.col-xs-offset-4 {\n margin-left: 33.33333333%;\n}\n.col-xs-offset-3 {\n margin-left: 25%;\n}\n.col-xs-offset-2 {\n margin-left: 16.66666667%;\n}\n.col-xs-offset-1 {\n margin-left: 8.33333333%;\n}\n.col-xs-offset-0 {\n margin-left: 0%;\n}\n@media (min-width: 768px) {\n .col-sm-1, .col-sm-2, .col-sm-3, .col-sm-4, .col-sm-5, .col-sm-6, .col-sm-7, .col-sm-8, .col-sm-9, .col-sm-10, .col-sm-11, .col-sm-12 {\n float: left;\n }\n .col-sm-12 {\n width: 100%;\n }\n .col-sm-11 {\n width: 91.66666667%;\n }\n .col-sm-10 {\n width: 83.33333333%;\n }\n .col-sm-9 {\n width: 75%;\n }\n .col-sm-8 {\n width: 66.66666667%;\n }\n .col-sm-7 {\n width: 58.33333333%;\n }\n .col-sm-6 {\n width: 50%;\n }\n .col-sm-5 {\n width: 41.66666667%;\n }\n .col-sm-4 {\n width: 33.33333333%;\n }\n .col-sm-3 {\n width: 25%;\n }\n .col-sm-2 {\n width: 16.66666667%;\n }\n .col-sm-1 {\n width: 8.33333333%;\n }\n .col-sm-pull-12 {\n right: 100%;\n }\n .col-sm-pull-11 {\n right: 91.66666667%;\n }\n .col-sm-pull-10 {\n right: 83.33333333%;\n }\n .col-sm-pull-9 {\n right: 75%;\n }\n .col-sm-pull-8 {\n right: 66.66666667%;\n }\n .col-sm-pull-7 {\n right: 58.33333333%;\n }\n .col-sm-pull-6 {\n right: 50%;\n }\n .col-sm-pull-5 {\n right: 41.66666667%;\n }\n .col-sm-pull-4 {\n right: 33.33333333%;\n }\n .col-sm-pull-3 {\n right: 25%;\n }\n .col-sm-pull-2 {\n right: 16.66666667%;\n }\n .col-sm-pull-1 {\n right: 8.33333333%;\n }\n .col-sm-pull-0 {\n right: auto;\n }\n .col-sm-push-12 {\n left: 100%;\n }\n .col-sm-push-11 {\n left: 91.66666667%;\n }\n .col-sm-push-10 {\n left: 83.33333333%;\n }\n .col-sm-push-9 {\n left: 75%;\n }\n .col-sm-push-8 {\n left: 66.66666667%;\n }\n .col-sm-push-7 {\n left: 58.33333333%;\n }\n .col-sm-push-6 {\n left: 50%;\n }\n .col-sm-push-5 {\n left: 41.66666667%;\n }\n .col-sm-push-4 {\n left: 33.33333333%;\n }\n .col-sm-push-3 {\n left: 25%;\n }\n .col-sm-push-2 {\n left: 16.66666667%;\n }\n .col-sm-push-1 {\n left: 8.33333333%;\n }\n .col-sm-push-0 {\n left: auto;\n }\n .col-sm-offset-12 {\n margin-left: 100%;\n }\n .col-sm-offset-11 {\n margin-left: 91.66666667%;\n }\n .col-sm-offset-10 {\n margin-left: 83.33333333%;\n }\n .col-sm-offset-9 {\n margin-left: 75%;\n }\n .col-sm-offset-8 {\n margin-left: 66.66666667%;\n }\n .col-sm-offset-7 {\n margin-left: 58.33333333%;\n }\n .col-sm-offset-6 {\n margin-left: 50%;\n }\n .col-sm-offset-5 {\n margin-left: 41.66666667%;\n }\n .col-sm-offset-4 {\n margin-left: 33.33333333%;\n }\n .col-sm-offset-3 {\n margin-left: 25%;\n }\n .col-sm-offset-2 {\n margin-left: 16.66666667%;\n }\n .col-sm-offset-1 {\n margin-left: 8.33333333%;\n }\n .col-sm-offset-0 {\n margin-left: 0%;\n }\n}\n@media (min-width: 992px) {\n .col-md-1, .col-md-2, .col-md-3, .col-md-4, .col-md-5, .col-md-6, .col-md-7, .col-md-8, .col-md-9, .col-md-10, .col-md-11, .col-md-12 {\n float: left;\n }\n .col-md-12 {\n width: 100%;\n }\n .col-md-11 {\n width: 91.66666667%;\n }\n .col-md-10 {\n width: 83.33333333%;\n }\n .col-md-9 {\n width: 75%;\n }\n .col-md-8 {\n width: 66.66666667%;\n }\n .col-md-7 {\n width: 58.33333333%;\n }\n .col-md-6 {\n width: 50%;\n }\n .col-md-5 {\n width: 41.66666667%;\n }\n .col-md-4 {\n width: 33.33333333%;\n }\n .col-md-3 {\n width: 25%;\n }\n .col-md-2 {\n width: 16.66666667%;\n }\n .col-md-1 {\n width: 8.33333333%;\n }\n .col-md-pull-12 {\n right: 100%;\n }\n .col-md-pull-11 {\n right: 91.66666667%;\n }\n .col-md-pull-10 {\n right: 83.33333333%;\n }\n .col-md-pull-9 {\n right: 75%;\n }\n .col-md-pull-8 {\n right: 66.66666667%;\n }\n .col-md-pull-7 {\n right: 58.33333333%;\n }\n .col-md-pull-6 {\n right: 50%;\n }\n .col-md-pull-5 {\n right: 41.66666667%;\n }\n .col-md-pull-4 {\n right: 33.33333333%;\n }\n .col-md-pull-3 {\n right: 25%;\n }\n .col-md-pull-2 {\n right: 16.66666667%;\n }\n .col-md-pull-1 {\n right: 8.33333333%;\n }\n .col-md-pull-0 {\n right: auto;\n }\n .col-md-push-12 {\n left: 100%;\n }\n .col-md-push-11 {\n left: 91.66666667%;\n }\n .col-md-push-10 {\n left: 83.33333333%;\n }\n .col-md-push-9 {\n left: 75%;\n }\n .col-md-push-8 {\n left: 66.66666667%;\n }\n .col-md-push-7 {\n left: 58.33333333%;\n }\n .col-md-push-6 {\n left: 50%;\n }\n .col-md-push-5 {\n left: 41.66666667%;\n }\n .col-md-push-4 {\n left: 33.33333333%;\n }\n .col-md-push-3 {\n left: 25%;\n }\n .col-md-push-2 {\n left: 16.66666667%;\n }\n .col-md-push-1 {\n left: 8.33333333%;\n }\n .col-md-push-0 {\n left: auto;\n }\n .col-md-offset-12 {\n margin-left: 100%;\n }\n .col-md-offset-11 {\n margin-left: 91.66666667%;\n }\n .col-md-offset-10 {\n margin-left: 83.33333333%;\n }\n .col-md-offset-9 {\n margin-left: 75%;\n }\n .col-md-offset-8 {\n margin-left: 66.66666667%;\n }\n .col-md-offset-7 {\n margin-left: 58.33333333%;\n }\n .col-md-offset-6 {\n margin-left: 50%;\n }\n .col-md-offset-5 {\n margin-left: 41.66666667%;\n }\n .col-md-offset-4 {\n margin-left: 33.33333333%;\n }\n .col-md-offset-3 {\n margin-left: 25%;\n }\n .col-md-offset-2 {\n margin-left: 16.66666667%;\n }\n .col-md-offset-1 {\n margin-left: 8.33333333%;\n }\n .col-md-offset-0 {\n margin-left: 0%;\n }\n}\n@media (min-width: 1200px) {\n .col-lg-1, .col-lg-2, .col-lg-3, .col-lg-4, .col-lg-5, .col-lg-6, .col-lg-7, .col-lg-8, .col-lg-9, .col-lg-10, .col-lg-11, .col-lg-12 {\n float: left;\n }\n .col-lg-12 {\n width: 100%;\n }\n .col-lg-11 {\n width: 91.66666667%;\n }\n .col-lg-10 {\n width: 83.33333333%;\n }\n .col-lg-9 {\n width: 75%;\n }\n .col-lg-8 {\n width: 66.66666667%;\n }\n .col-lg-7 {\n width: 58.33333333%;\n }\n .col-lg-6 {\n width: 50%;\n }\n .col-lg-5 {\n width: 41.66666667%;\n }\n .col-lg-4 {\n width: 33.33333333%;\n }\n .col-lg-3 {\n width: 25%;\n }\n .col-lg-2 {\n width: 16.66666667%;\n }\n .col-lg-1 {\n width: 8.33333333%;\n }\n .col-lg-pull-12 {\n right: 100%;\n }\n .col-lg-pull-11 {\n right: 91.66666667%;\n }\n .col-lg-pull-10 {\n right: 83.33333333%;\n }\n .col-lg-pull-9 {\n right: 75%;\n }\n .col-lg-pull-8 {\n right: 66.66666667%;\n }\n .col-lg-pull-7 {\n right: 58.33333333%;\n }\n .col-lg-pull-6 {\n right: 50%;\n }\n .col-lg-pull-5 {\n right: 41.66666667%;\n }\n .col-lg-pull-4 {\n right: 33.33333333%;\n }\n .col-lg-pull-3 {\n right: 25%;\n }\n .col-lg-pull-2 {\n right: 16.66666667%;\n }\n .col-lg-pull-1 {\n right: 8.33333333%;\n }\n .col-lg-pull-0 {\n right: auto;\n }\n .col-lg-push-12 {\n left: 100%;\n }\n .col-lg-push-11 {\n left: 91.66666667%;\n }\n .col-lg-push-10 {\n left: 83.33333333%;\n }\n .col-lg-push-9 {\n left: 75%;\n }\n .col-lg-push-8 {\n left: 66.66666667%;\n }\n .col-lg-push-7 {\n left: 58.33333333%;\n }\n .col-lg-push-6 {\n left: 50%;\n }\n .col-lg-push-5 {\n left: 41.66666667%;\n }\n .col-lg-push-4 {\n left: 33.33333333%;\n }\n .col-lg-push-3 {\n left: 25%;\n }\n .col-lg-push-2 {\n left: 16.66666667%;\n }\n .col-lg-push-1 {\n left: 8.33333333%;\n }\n .col-lg-push-0 {\n left: auto;\n }\n .col-lg-offset-12 {\n margin-left: 100%;\n }\n .col-lg-offset-11 {\n margin-left: 91.66666667%;\n }\n .col-lg-offset-10 {\n margin-left: 83.33333333%;\n }\n .col-lg-offset-9 {\n margin-left: 75%;\n }\n .col-lg-offset-8 {\n margin-left: 66.66666667%;\n }\n .col-lg-offset-7 {\n margin-left: 58.33333333%;\n }\n .col-lg-offset-6 {\n margin-left: 50%;\n }\n .col-lg-offset-5 {\n margin-left: 41.66666667%;\n }\n .col-lg-offset-4 {\n margin-left: 33.33333333%;\n }\n .col-lg-offset-3 {\n margin-left: 25%;\n }\n .col-lg-offset-2 {\n margin-left: 16.66666667%;\n }\n .col-lg-offset-1 {\n margin-left: 8.33333333%;\n }\n .col-lg-offset-0 {\n margin-left: 0%;\n }\n}\ntable {\n background-color: transparent;\n}\ncaption {\n padding-top: 8px;\n padding-bottom: 8px;\n color: #777777;\n text-align: left;\n}\nth {\n text-align: left;\n}\n.table {\n width: 100%;\n max-width: 100%;\n margin-bottom: 20px;\n}\n.table > thead > tr > th,\n.table > tbody > tr > th,\n.table > tfoot > tr > th,\n.table > thead > tr > td,\n.table > tbody > tr > td,\n.table > tfoot > tr > td {\n padding: 8px;\n line-height: 1.42857143;\n vertical-align: top;\n border-top: 1px solid #ddd;\n}\n.table > thead > tr > th {\n vertical-align: bottom;\n border-bottom: 2px solid #ddd;\n}\n.table > caption + thead > tr:first-child > th,\n.table > colgroup + thead > tr:first-child > th,\n.table > thead:first-child > tr:first-child > th,\n.table > caption + thead > tr:first-child > td,\n.table > colgroup + thead > tr:first-child > td,\n.table > thead:first-child > tr:first-child > td {\n border-top: 0;\n}\n.table > tbody + tbody {\n border-top: 2px solid #ddd;\n}\n.table .table {\n background-color: #fff;\n}\n.table-condensed > thead > tr > th,\n.table-condensed > tbody > tr > th,\n.table-condensed > tfoot > tr > th,\n.table-condensed > thead > tr > td,\n.table-condensed > tbody > tr > td,\n.table-condensed > tfoot > tr > td {\n padding: 5px;\n}\n.table-bordered {\n border: 1px solid #ddd;\n}\n.table-bordered > thead > tr > th,\n.table-bordered > tbody > tr > th,\n.table-bordered > tfoot > tr > th,\n.table-bordered > thead > tr > td,\n.table-bordered > tbody > tr > td,\n.table-bordered > tfoot > tr > td {\n border: 1px solid #ddd;\n}\n.table-bordered > thead > tr > th,\n.table-bordered > thead > tr > td {\n border-bottom-width: 2px;\n}\n.table-striped > tbody > tr:nth-of-type(odd) {\n background-color: #f9f9f9;\n}\n.table-hover > tbody > tr:hover {\n background-color: #f5f5f5;\n}\ntable col[class*=\"col-\"] {\n position: static;\n float: none;\n display: table-column;\n}\ntable td[class*=\"col-\"],\ntable th[class*=\"col-\"] {\n position: static;\n float: none;\n display: table-cell;\n}\n.table > thead > tr > td.active,\n.table > tbody > tr > td.active,\n.table > tfoot > tr > td.active,\n.table > thead > tr > th.active,\n.table > tbody > tr > th.active,\n.table > tfoot > tr > th.active,\n.table > thead > tr.active > td,\n.table > tbody > tr.active > td,\n.table > tfoot > tr.active > td,\n.table > thead > tr.active > th,\n.table > tbody > tr.active > th,\n.table > tfoot > tr.active > th {\n background-color: #f5f5f5;\n}\n.table-hover > tbody > tr > td.active:hover,\n.table-hover > tbody > tr > th.active:hover,\n.table-hover > tbody > tr.active:hover > td,\n.table-hover > tbody > tr:hover > .active,\n.table-hover > tbody > tr.active:hover > th {\n background-color: #e8e8e8;\n}\n.table > thead > tr > td.success,\n.table > tbody > tr > td.success,\n.table > tfoot > tr > td.success,\n.table > thead > tr > th.success,\n.table > tbody > tr > th.success,\n.table > tfoot > tr > th.success,\n.table > thead > tr.success > td,\n.table > tbody > tr.success > td,\n.table > tfoot > tr.success > td,\n.table > thead > tr.success > th,\n.table > tbody > tr.success > th,\n.table > tfoot > tr.success > th {\n background-color: #dff0d8;\n}\n.table-hover > tbody > tr > td.success:hover,\n.table-hover > tbody > tr > th.success:hover,\n.table-hover > tbody > tr.success:hover > td,\n.table-hover > tbody > tr:hover > .success,\n.table-hover > tbody > tr.success:hover > th {\n background-color: #d0e9c6;\n}\n.table > thead > tr > td.info,\n.table > tbody > tr > td.info,\n.table > tfoot > tr > td.info,\n.table > thead > tr > th.info,\n.table > tbody > tr > th.info,\n.table > tfoot > tr > th.info,\n.table > thead > tr.info > td,\n.table > tbody > tr.info > td,\n.table > tfoot > tr.info > td,\n.table > thead > tr.info > th,\n.table > tbody > tr.info > th,\n.table > tfoot > tr.info > th {\n background-color: #d9edf7;\n}\n.table-hover > tbody > tr > td.info:hover,\n.table-hover > tbody > tr > th.info:hover,\n.table-hover > tbody > tr.info:hover > td,\n.table-hover > tbody > tr:hover > .info,\n.table-hover > tbody > tr.info:hover > th {\n background-color: #c4e3f3;\n}\n.table > thead > tr > td.warning,\n.table > tbody > tr > td.warning,\n.table > tfoot > tr > td.warning,\n.table > thead > tr > th.warning,\n.table > tbody > tr > th.warning,\n.table > tfoot > tr > th.warning,\n.table > thead > tr.warning > td,\n.table > tbody > tr.warning > td,\n.table > tfoot > tr.warning > td,\n.table > thead > tr.warning > th,\n.table > tbody > tr.warning > th,\n.table > tfoot > tr.warning > th {\n background-color: #fcf8e3;\n}\n.table-hover > tbody > tr > td.warning:hover,\n.table-hover > tbody > tr > th.warning:hover,\n.table-hover > tbody > tr.warning:hover > td,\n.table-hover > tbody > tr:hover > .warning,\n.table-hover > tbody > tr.warning:hover > th {\n background-color: #faf2cc;\n}\n.table > thead > tr > td.danger,\n.table > tbody > tr > td.danger,\n.table > tfoot > tr > td.danger,\n.table > thead > tr > th.danger,\n.table > tbody > tr > th.danger,\n.table > tfoot > tr > th.danger,\n.table > thead > tr.danger > td,\n.table > tbody > tr.danger > td,\n.table > tfoot > tr.danger > td,\n.table > thead > tr.danger > th,\n.table > tbody > tr.danger > th,\n.table > tfoot > tr.danger > th {\n background-color: #f2dede;\n}\n.table-hover > tbody > tr > td.danger:hover,\n.table-hover > tbody > tr > th.danger:hover,\n.table-hover > tbody > tr.danger:hover > td,\n.table-hover > tbody > tr:hover > .danger,\n.table-hover > tbody > tr.danger:hover > th {\n background-color: #ebcccc;\n}\n.table-responsive {\n overflow-x: auto;\n min-height: 0.01%;\n}\n@media screen and (max-width: 767px) {\n .table-responsive {\n width: 100%;\n margin-bottom: 15px;\n overflow-y: hidden;\n -ms-overflow-style: -ms-autohiding-scrollbar;\n border: 1px solid #ddd;\n }\n .table-responsive > .table {\n margin-bottom: 0;\n }\n .table-responsive > .table > thead > tr > th,\n .table-responsive > .table > tbody > tr > th,\n .table-responsive > .table > tfoot > tr > th,\n .table-responsive > .table > thead > tr > td,\n .table-responsive > .table > tbody > tr > td,\n .table-responsive > .table > tfoot > tr > td {\n white-space: nowrap;\n }\n .table-responsive > .table-bordered {\n border: 0;\n }\n .table-responsive > .table-bordered > thead > tr > th:first-child,\n .table-responsive > .table-bordered > tbody > tr > th:first-child,\n .table-responsive > .table-bordered > tfoot > tr > th:first-child,\n .table-responsive > .table-bordered > thead > tr > td:first-child,\n .table-responsive > .table-bordered > tbody > tr > td:first-child,\n .table-responsive > .table-bordered > tfoot > tr > td:first-child {\n border-left: 0;\n }\n .table-responsive > .table-bordered > thead > tr > th:last-child,\n .table-responsive > .table-bordered > tbody > tr > th:last-child,\n .table-responsive > .table-bordered > tfoot > tr > th:last-child,\n .table-responsive > .table-bordered > thead > tr > td:last-child,\n .table-responsive > .table-bordered > tbody > tr > td:last-child,\n .table-responsive > .table-bordered > tfoot > tr > td:last-child {\n border-right: 0;\n }\n .table-responsive > .table-bordered > tbody > tr:last-child > th,\n .table-responsive > .table-bordered > tfoot > tr:last-child > th,\n .table-responsive > .table-bordered > tbody > tr:last-child > td,\n .table-responsive > .table-bordered > tfoot > tr:last-child > td {\n border-bottom: 0;\n }\n}\nfieldset {\n padding: 0;\n margin: 0;\n border: 0;\n min-width: 0;\n}\nlegend {\n display: block;\n width: 100%;\n padding: 0;\n margin-bottom: 20px;\n font-size: 21px;\n line-height: inherit;\n color: #333333;\n border: 0;\n border-bottom: 1px solid #e5e5e5;\n}\nlabel {\n display: inline-block;\n max-width: 100%;\n margin-bottom: 5px;\n font-weight: bold;\n}\ninput[type=\"search\"] {\n -webkit-box-sizing: border-box;\n -moz-box-sizing: border-box;\n box-sizing: border-box;\n}\ninput[type=\"radio\"],\ninput[type=\"checkbox\"] {\n margin: 4px 0 0;\n margin-top: 1px \\9;\n line-height: normal;\n}\ninput[type=\"file\"] {\n display: block;\n}\ninput[type=\"range\"] {\n display: block;\n width: 100%;\n}\nselect[multiple],\nselect[size] {\n height: auto;\n}\ninput[type=\"file\"]:focus,\ninput[type=\"radio\"]:focus,\ninput[type=\"checkbox\"]:focus {\n outline: 5px auto -webkit-focus-ring-color;\n outline-offset: -2px;\n}\noutput {\n display: block;\n padding-top: 7px;\n font-size: 14px;\n line-height: 1.42857143;\n color: #555555;\n}\n.form-control {\n display: block;\n width: 100%;\n height: 34px;\n padding: 6px 12px;\n font-size: 14px;\n line-height: 1.42857143;\n color: #555555;\n background-color: #fff;\n background-image: none;\n border: 1px solid #ccc;\n border-radius: 4px;\n -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);\n box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);\n -webkit-transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s;\n -o-transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s;\n transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s;\n}\n.form-control:focus {\n border-color: #66afe9;\n outline: 0;\n -webkit-box-shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(102, 175, 233, 0.6);\n box-shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(102, 175, 233, 0.6);\n}\n.form-control::-moz-placeholder {\n color: #999;\n opacity: 1;\n}\n.form-control:-ms-input-placeholder {\n color: #999;\n}\n.form-control::-webkit-input-placeholder {\n color: #999;\n}\n.form-control::-ms-expand {\n border: 0;\n background-color: transparent;\n}\n.form-control[disabled],\n.form-control[readonly],\nfieldset[disabled] .form-control {\n background-color: #eeeeee;\n opacity: 1;\n}\n.form-control[disabled],\nfieldset[disabled] .form-control {\n cursor: not-allowed;\n}\ntextarea.form-control {\n height: auto;\n}\ninput[type=\"search\"] {\n -webkit-appearance: none;\n}\n@media screen and (-webkit-min-device-pixel-ratio: 0) {\n input[type=\"date\"].form-control,\n input[type=\"time\"].form-control,\n input[type=\"datetime-local\"].form-control,\n input[type=\"month\"].form-control {\n line-height: 34px;\n }\n input[type=\"date\"].input-sm,\n input[type=\"time\"].input-sm,\n input[type=\"datetime-local\"].input-sm,\n input[type=\"month\"].input-sm,\n .input-group-sm input[type=\"date\"],\n .input-group-sm input[type=\"time\"],\n .input-group-sm input[type=\"datetime-local\"],\n .input-group-sm input[type=\"month\"] {\n line-height: 30px;\n }\n input[type=\"date\"].input-lg,\n input[type=\"time\"].input-lg,\n input[type=\"datetime-local\"].input-lg,\n input[type=\"month\"].input-lg,\n .input-group-lg input[type=\"date\"],\n .input-group-lg input[type=\"time\"],\n .input-group-lg input[type=\"datetime-local\"],\n .input-group-lg input[type=\"month\"] {\n line-height: 46px;\n }\n}\n.form-group {\n margin-bottom: 15px;\n}\n.radio,\n.checkbox {\n position: relative;\n display: block;\n margin-top: 10px;\n margin-bottom: 10px;\n}\n.radio label,\n.checkbox label {\n min-height: 20px;\n padding-left: 20px;\n margin-bottom: 0;\n font-weight: normal;\n cursor: pointer;\n}\n.radio input[type=\"radio\"],\n.radio-inline input[type=\"radio\"],\n.checkbox input[type=\"checkbox\"],\n.checkbox-inline input[type=\"checkbox\"] {\n position: absolute;\n margin-left: -20px;\n margin-top: 4px \\9;\n}\n.radio + .radio,\n.checkbox + .checkbox {\n margin-top: -5px;\n}\n.radio-inline,\n.checkbox-inline {\n position: relative;\n display: inline-block;\n padding-left: 20px;\n margin-bottom: 0;\n vertical-align: middle;\n font-weight: normal;\n cursor: pointer;\n}\n.radio-inline + .radio-inline,\n.checkbox-inline + .checkbox-inline {\n margin-top: 0;\n margin-left: 10px;\n}\ninput[type=\"radio\"][disabled],\ninput[type=\"checkbox\"][disabled],\ninput[type=\"radio\"].disabled,\ninput[type=\"checkbox\"].disabled,\nfieldset[disabled] input[type=\"radio\"],\nfieldset[disabled] input[type=\"checkbox\"] {\n cursor: not-allowed;\n}\n.radio-inline.disabled,\n.checkbox-inline.disabled,\nfieldset[disabled] .radio-inline,\nfieldset[disabled] .checkbox-inline {\n cursor: not-allowed;\n}\n.radio.disabled label,\n.checkbox.disabled label,\nfieldset[disabled] .radio label,\nfieldset[disabled] .checkbox label {\n cursor: not-allowed;\n}\n.form-control-static {\n padding-top: 7px;\n padding-bottom: 7px;\n margin-bottom: 0;\n min-height: 34px;\n}\n.form-control-static.input-lg,\n.form-control-static.input-sm {\n padding-left: 0;\n padding-right: 0;\n}\n.input-sm {\n height: 30px;\n padding: 5px 10px;\n font-size: 12px;\n line-height: 1.5;\n border-radius: 3px;\n}\nselect.input-sm {\n height: 30px;\n line-height: 30px;\n}\ntextarea.input-sm,\nselect[multiple].input-sm {\n height: auto;\n}\n.form-group-sm .form-control {\n height: 30px;\n padding: 5px 10px;\n font-size: 12px;\n line-height: 1.5;\n border-radius: 3px;\n}\n.form-group-sm select.form-control {\n height: 30px;\n line-height: 30px;\n}\n.form-group-sm textarea.form-control,\n.form-group-sm select[multiple].form-control {\n height: auto;\n}\n.form-group-sm .form-control-static {\n height: 30px;\n min-height: 32px;\n padding: 6px 10px;\n font-size: 12px;\n line-height: 1.5;\n}\n.input-lg {\n height: 46px;\n padding: 10px 16px;\n font-size: 18px;\n line-height: 1.3333333;\n border-radius: 6px;\n}\nselect.input-lg {\n height: 46px;\n line-height: 46px;\n}\ntextarea.input-lg,\nselect[multiple].input-lg {\n height: auto;\n}\n.form-group-lg .form-control {\n height: 46px;\n padding: 10px 16px;\n font-size: 18px;\n line-height: 1.3333333;\n border-radius: 6px;\n}\n.form-group-lg select.form-control {\n height: 46px;\n line-height: 46px;\n}\n.form-group-lg textarea.form-control,\n.form-group-lg select[multiple].form-control {\n height: auto;\n}\n.form-group-lg .form-control-static {\n height: 46px;\n min-height: 38px;\n padding: 11px 16px;\n font-size: 18px;\n line-height: 1.3333333;\n}\n.has-feedback {\n position: relative;\n}\n.has-feedback .form-control {\n padding-right: 42.5px;\n}\n.form-control-feedback {\n position: absolute;\n top: 0;\n right: 0;\n z-index: 2;\n display: block;\n width: 34px;\n height: 34px;\n line-height: 34px;\n text-align: center;\n pointer-events: none;\n}\n.input-lg + .form-control-feedback,\n.input-group-lg + .form-control-feedback,\n.form-group-lg .form-control + .form-control-feedback {\n width: 46px;\n height: 46px;\n line-height: 46px;\n}\n.input-sm + .form-control-feedback,\n.input-group-sm + .form-control-feedback,\n.form-group-sm .form-control + .form-control-feedback {\n width: 30px;\n height: 30px;\n line-height: 30px;\n}\n.has-success .help-block,\n.has-success .control-label,\n.has-success .radio,\n.has-success .checkbox,\n.has-success .radio-inline,\n.has-success .checkbox-inline,\n.has-success.radio label,\n.has-success.checkbox label,\n.has-success.radio-inline label,\n.has-success.checkbox-inline label {\n color: #3c763d;\n}\n.has-success .form-control {\n border-color: #3c763d;\n -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);\n box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);\n}\n.has-success .form-control:focus {\n border-color: #2b542c;\n -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #67b168;\n box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #67b168;\n}\n.has-success .input-group-addon {\n color: #3c763d;\n border-color: #3c763d;\n background-color: #dff0d8;\n}\n.has-success .form-control-feedback {\n color: #3c763d;\n}\n.has-warning .help-block,\n.has-warning .control-label,\n.has-warning .radio,\n.has-warning .checkbox,\n.has-warning .radio-inline,\n.has-warning .checkbox-inline,\n.has-warning.radio label,\n.has-warning.checkbox label,\n.has-warning.radio-inline label,\n.has-warning.checkbox-inline label {\n color: #8a6d3b;\n}\n.has-warning .form-control {\n border-color: #8a6d3b;\n -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);\n box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);\n}\n.has-warning .form-control:focus {\n border-color: #66512c;\n -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #c0a16b;\n box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #c0a16b;\n}\n.has-warning .input-group-addon {\n color: #8a6d3b;\n border-color: #8a6d3b;\n background-color: #fcf8e3;\n}\n.has-warning .form-control-feedback {\n color: #8a6d3b;\n}\n.has-error .help-block,\n.has-error .control-label,\n.has-error .radio,\n.has-error .checkbox,\n.has-error .radio-inline,\n.has-error .checkbox-inline,\n.has-error.radio label,\n.has-error.checkbox label,\n.has-error.radio-inline label,\n.has-error.checkbox-inline label {\n color: #a94442;\n}\n.has-error .form-control {\n border-color: #a94442;\n -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);\n box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);\n}\n.has-error .form-control:focus {\n border-color: #843534;\n -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #ce8483;\n box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #ce8483;\n}\n.has-error .input-group-addon {\n color: #a94442;\n border-color: #a94442;\n background-color: #f2dede;\n}\n.has-error .form-control-feedback {\n color: #a94442;\n}\n.has-feedback label ~ .form-control-feedback {\n top: 25px;\n}\n.has-feedback label.sr-only ~ .form-control-feedback {\n top: 0;\n}\n.help-block {\n display: block;\n margin-top: 5px;\n margin-bottom: 10px;\n color: #737373;\n}\n@media (min-width: 768px) {\n .form-inline .form-group {\n display: inline-block;\n margin-bottom: 0;\n vertical-align: middle;\n }\n .form-inline .form-control {\n display: inline-block;\n width: auto;\n vertical-align: middle;\n }\n .form-inline .form-control-static {\n display: inline-block;\n }\n .form-inline .input-group {\n display: inline-table;\n vertical-align: middle;\n }\n .form-inline .input-group .input-group-addon,\n .form-inline .input-group .input-group-btn,\n .form-inline .input-group .form-control {\n width: auto;\n }\n .form-inline .input-group > .form-control {\n width: 100%;\n }\n .form-inline .control-label {\n margin-bottom: 0;\n vertical-align: middle;\n }\n .form-inline .radio,\n .form-inline .checkbox {\n display: inline-block;\n margin-top: 0;\n margin-bottom: 0;\n vertical-align: middle;\n }\n .form-inline .radio label,\n .form-inline .checkbox label {\n padding-left: 0;\n }\n .form-inline .radio input[type=\"radio\"],\n .form-inline .checkbox input[type=\"checkbox\"] {\n position: relative;\n margin-left: 0;\n }\n .form-inline .has-feedback .form-control-feedback {\n top: 0;\n }\n}\n.form-horizontal .radio,\n.form-horizontal .checkbox,\n.form-horizontal .radio-inline,\n.form-horizontal .checkbox-inline {\n margin-top: 0;\n margin-bottom: 0;\n padding-top: 7px;\n}\n.form-horizontal .radio,\n.form-horizontal .checkbox {\n min-height: 27px;\n}\n.form-horizontal .form-group {\n margin-left: -15px;\n margin-right: -15px;\n}\n@media (min-width: 768px) {\n .form-horizontal .control-label {\n text-align: right;\n margin-bottom: 0;\n padding-top: 7px;\n }\n}\n.form-horizontal .has-feedback .form-control-feedback {\n right: 15px;\n}\n@media (min-width: 768px) {\n .form-horizontal .form-group-lg .control-label {\n padding-top: 11px;\n font-size: 18px;\n }\n}\n@media (min-width: 768px) {\n .form-horizontal .form-group-sm .control-label {\n padding-top: 6px;\n font-size: 12px;\n }\n}\n.btn {\n display: inline-block;\n margin-bottom: 0;\n font-weight: normal;\n text-align: center;\n vertical-align: middle;\n touch-action: manipulation;\n cursor: pointer;\n background-image: none;\n border: 1px solid transparent;\n white-space: nowrap;\n padding: 6px 12px;\n font-size: 14px;\n line-height: 1.42857143;\n border-radius: 4px;\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n user-select: none;\n}\n.btn:focus,\n.btn:active:focus,\n.btn.active:focus,\n.btn.focus,\n.btn:active.focus,\n.btn.active.focus {\n outline: 5px auto -webkit-focus-ring-color;\n outline-offset: -2px;\n}\n.btn:hover,\n.btn:focus,\n.btn.focus {\n color: #333;\n text-decoration: none;\n}\n.btn:active,\n.btn.active {\n outline: 0;\n background-image: none;\n -webkit-box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);\n box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);\n}\n.btn.disabled,\n.btn[disabled],\nfieldset[disabled] .btn {\n cursor: not-allowed;\n opacity: 0.65;\n filter: alpha(opacity=65);\n -webkit-box-shadow: none;\n box-shadow: none;\n}\na.btn.disabled,\nfieldset[disabled] a.btn {\n pointer-events: none;\n}\n.btn-default {\n color: #333;\n background-color: #fff;\n border-color: #ccc;\n}\n.btn-default:focus,\n.btn-default.focus {\n color: #333;\n background-color: #e6e6e6;\n border-color: #8c8c8c;\n}\n.btn-default:hover {\n color: #333;\n background-color: #e6e6e6;\n border-color: #adadad;\n}\n.btn-default:active,\n.btn-default.active,\n.open > .dropdown-toggle.btn-default {\n color: #333;\n background-color: #e6e6e6;\n border-color: #adadad;\n}\n.btn-default:active:hover,\n.btn-default.active:hover,\n.open > .dropdown-toggle.btn-default:hover,\n.btn-default:active:focus,\n.btn-default.active:focus,\n.open > .dropdown-toggle.btn-default:focus,\n.btn-default:active.focus,\n.btn-default.active.focus,\n.open > .dropdown-toggle.btn-default.focus {\n color: #333;\n background-color: #d4d4d4;\n border-color: #8c8c8c;\n}\n.btn-default:active,\n.btn-default.active,\n.open > .dropdown-toggle.btn-default {\n background-image: none;\n}\n.btn-default.disabled:hover,\n.btn-default[disabled]:hover,\nfieldset[disabled] .btn-default:hover,\n.btn-default.disabled:focus,\n.btn-default[disabled]:focus,\nfieldset[disabled] .btn-default:focus,\n.btn-default.disabled.focus,\n.btn-default[disabled].focus,\nfieldset[disabled] .btn-default.focus {\n background-color: #fff;\n border-color: #ccc;\n}\n.btn-default .badge {\n color: #fff;\n background-color: #333;\n}\n.btn-primary {\n color: #fff;\n background-color: #337ab7;\n border-color: #2e6da4;\n}\n.btn-primary:focus,\n.btn-primary.focus {\n color: #fff;\n background-color: #286090;\n border-color: #122b40;\n}\n.btn-primary:hover {\n color: #fff;\n background-color: #286090;\n border-color: #204d74;\n}\n.btn-primary:active,\n.btn-primary.active,\n.open > .dropdown-toggle.btn-primary {\n color: #fff;\n background-color: #286090;\n border-color: #204d74;\n}\n.btn-primary:active:hover,\n.btn-primary.active:hover,\n.open > .dropdown-toggle.btn-primary:hover,\n.btn-primary:active:focus,\n.btn-primary.active:focus,\n.open > .dropdown-toggle.btn-primary:focus,\n.btn-primary:active.focus,\n.btn-primary.active.focus,\n.open > .dropdown-toggle.btn-primary.focus {\n color: #fff;\n background-color: #204d74;\n border-color: #122b40;\n}\n.btn-primary:active,\n.btn-primary.active,\n.open > .dropdown-toggle.btn-primary {\n background-image: none;\n}\n.btn-primary.disabled:hover,\n.btn-primary[disabled]:hover,\nfieldset[disabled] .btn-primary:hover,\n.btn-primary.disabled:focus,\n.btn-primary[disabled]:focus,\nfieldset[disabled] .btn-primary:focus,\n.btn-primary.disabled.focus,\n.btn-primary[disabled].focus,\nfieldset[disabled] .btn-primary.focus {\n background-color: #337ab7;\n border-color: #2e6da4;\n}\n.btn-primary .badge {\n color: #337ab7;\n background-color: #fff;\n}\n.btn-success {\n color: #fff;\n background-color: #5cb85c;\n border-color: #4cae4c;\n}\n.btn-success:focus,\n.btn-success.focus {\n color: #fff;\n background-color: #449d44;\n border-color: #255625;\n}\n.btn-success:hover {\n color: #fff;\n background-color: #449d44;\n border-color: #398439;\n}\n.btn-success:active,\n.btn-success.active,\n.open > .dropdown-toggle.btn-success {\n color: #fff;\n background-color: #449d44;\n border-color: #398439;\n}\n.btn-success:active:hover,\n.btn-success.active:hover,\n.open > .dropdown-toggle.btn-success:hover,\n.btn-success:active:focus,\n.btn-success.active:focus,\n.open > .dropdown-toggle.btn-success:focus,\n.btn-success:active.focus,\n.btn-success.active.focus,\n.open > .dropdown-toggle.btn-success.focus {\n color: #fff;\n background-color: #398439;\n border-color: #255625;\n}\n.btn-success:active,\n.btn-success.active,\n.open > .dropdown-toggle.btn-success {\n background-image: none;\n}\n.btn-success.disabled:hover,\n.btn-success[disabled]:hover,\nfieldset[disabled] .btn-success:hover,\n.btn-success.disabled:focus,\n.btn-success[disabled]:focus,\nfieldset[disabled] .btn-success:focus,\n.btn-success.disabled.focus,\n.btn-success[disabled].focus,\nfieldset[disabled] .btn-success.focus {\n background-color: #5cb85c;\n border-color: #4cae4c;\n}\n.btn-success .badge {\n color: #5cb85c;\n background-color: #fff;\n}\n.btn-info {\n color: #fff;\n background-color: #5bc0de;\n border-color: #46b8da;\n}\n.btn-info:focus,\n.btn-info.focus {\n color: #fff;\n background-color: #31b0d5;\n border-color: #1b6d85;\n}\n.btn-info:hover {\n color: #fff;\n background-color: #31b0d5;\n border-color: #269abc;\n}\n.btn-info:active,\n.btn-info.active,\n.open > .dropdown-toggle.btn-info {\n color: #fff;\n background-color: #31b0d5;\n border-color: #269abc;\n}\n.btn-info:active:hover,\n.btn-info.active:hover,\n.open > .dropdown-toggle.btn-info:hover,\n.btn-info:active:focus,\n.btn-info.active:focus,\n.open > .dropdown-toggle.btn-info:focus,\n.btn-info:active.focus,\n.btn-info.active.focus,\n.open > .dropdown-toggle.btn-info.focus {\n color: #fff;\n background-color: #269abc;\n border-color: #1b6d85;\n}\n.btn-info:active,\n.btn-info.active,\n.open > .dropdown-toggle.btn-info {\n background-image: none;\n}\n.btn-info.disabled:hover,\n.btn-info[disabled]:hover,\nfieldset[disabled] .btn-info:hover,\n.btn-info.disabled:focus,\n.btn-info[disabled]:focus,\nfieldset[disabled] .btn-info:focus,\n.btn-info.disabled.focus,\n.btn-info[disabled].focus,\nfieldset[disabled] .btn-info.focus {\n background-color: #5bc0de;\n border-color: #46b8da;\n}\n.btn-info .badge {\n color: #5bc0de;\n background-color: #fff;\n}\n.btn-warning {\n color: #fff;\n background-color: #f0ad4e;\n border-color: #eea236;\n}\n.btn-warning:focus,\n.btn-warning.focus {\n color: #fff;\n background-color: #ec971f;\n border-color: #985f0d;\n}\n.btn-warning:hover {\n color: #fff;\n background-color: #ec971f;\n border-color: #d58512;\n}\n.btn-warning:active,\n.btn-warning.active,\n.open > .dropdown-toggle.btn-warning {\n color: #fff;\n background-color: #ec971f;\n border-color: #d58512;\n}\n.btn-warning:active:hover,\n.btn-warning.active:hover,\n.open > .dropdown-toggle.btn-warning:hover,\n.btn-warning:active:focus,\n.btn-warning.active:focus,\n.open > .dropdown-toggle.btn-warning:focus,\n.btn-warning:active.focus,\n.btn-warning.active.focus,\n.open > .dropdown-toggle.btn-warning.focus {\n color: #fff;\n background-color: #d58512;\n border-color: #985f0d;\n}\n.btn-warning:active,\n.btn-warning.active,\n.open > .dropdown-toggle.btn-warning {\n background-image: none;\n}\n.btn-warning.disabled:hover,\n.btn-warning[disabled]:hover,\nfieldset[disabled] .btn-warning:hover,\n.btn-warning.disabled:focus,\n.btn-warning[disabled]:focus,\nfieldset[disabled] .btn-warning:focus,\n.btn-warning.disabled.focus,\n.btn-warning[disabled].focus,\nfieldset[disabled] .btn-warning.focus {\n background-color: #f0ad4e;\n border-color: #eea236;\n}\n.btn-warning .badge {\n color: #f0ad4e;\n background-color: #fff;\n}\n.btn-danger {\n color: #fff;\n background-color: #d9534f;\n border-color: #d43f3a;\n}\n.btn-danger:focus,\n.btn-danger.focus {\n color: #fff;\n background-color: #c9302c;\n border-color: #761c19;\n}\n.btn-danger:hover {\n color: #fff;\n background-color: #c9302c;\n border-color: #ac2925;\n}\n.btn-danger:active,\n.btn-danger.active,\n.open > .dropdown-toggle.btn-danger {\n color: #fff;\n background-color: #c9302c;\n border-color: #ac2925;\n}\n.btn-danger:active:hover,\n.btn-danger.active:hover,\n.open > .dropdown-toggle.btn-danger:hover,\n.btn-danger:active:focus,\n.btn-danger.active:focus,\n.open > .dropdown-toggle.btn-danger:focus,\n.btn-danger:active.focus,\n.btn-danger.active.focus,\n.open > .dropdown-toggle.btn-danger.focus {\n color: #fff;\n background-color: #ac2925;\n border-color: #761c19;\n}\n.btn-danger:active,\n.btn-danger.active,\n.open > .dropdown-toggle.btn-danger {\n background-image: none;\n}\n.btn-danger.disabled:hover,\n.btn-danger[disabled]:hover,\nfieldset[disabled] .btn-danger:hover,\n.btn-danger.disabled:focus,\n.btn-danger[disabled]:focus,\nfieldset[disabled] .btn-danger:focus,\n.btn-danger.disabled.focus,\n.btn-danger[disabled].focus,\nfieldset[disabled] .btn-danger.focus {\n background-color: #d9534f;\n border-color: #d43f3a;\n}\n.btn-danger .badge {\n color: #d9534f;\n background-color: #fff;\n}\n.btn-link {\n color: #337ab7;\n font-weight: normal;\n border-radius: 0;\n}\n.btn-link,\n.btn-link:active,\n.btn-link.active,\n.btn-link[disabled],\nfieldset[disabled] .btn-link {\n background-color: transparent;\n -webkit-box-shadow: none;\n box-shadow: none;\n}\n.btn-link,\n.btn-link:hover,\n.btn-link:focus,\n.btn-link:active {\n border-color: transparent;\n}\n.btn-link:hover,\n.btn-link:focus {\n color: #23527c;\n text-decoration: underline;\n background-color: transparent;\n}\n.btn-link[disabled]:hover,\nfieldset[disabled] .btn-link:hover,\n.btn-link[disabled]:focus,\nfieldset[disabled] .btn-link:focus {\n color: #777777;\n text-decoration: none;\n}\n.btn-lg,\n.btn-group-lg > .btn {\n padding: 10px 16px;\n font-size: 18px;\n line-height: 1.3333333;\n border-radius: 6px;\n}\n.btn-sm,\n.btn-group-sm > .btn {\n padding: 5px 10px;\n font-size: 12px;\n line-height: 1.5;\n border-radius: 3px;\n}\n.btn-xs,\n.btn-group-xs > .btn {\n padding: 1px 5px;\n font-size: 12px;\n line-height: 1.5;\n border-radius: 3px;\n}\n.btn-block {\n display: block;\n width: 100%;\n}\n.btn-block + .btn-block {\n margin-top: 5px;\n}\ninput[type=\"submit\"].btn-block,\ninput[type=\"reset\"].btn-block,\ninput[type=\"button\"].btn-block {\n width: 100%;\n}\n.fade {\n opacity: 0;\n -webkit-transition: opacity 0.15s linear;\n -o-transition: opacity 0.15s linear;\n transition: opacity 0.15s linear;\n}\n.fade.in {\n opacity: 1;\n}\n.collapse {\n display: none;\n}\n.collapse.in {\n display: block;\n}\ntr.collapse.in {\n display: table-row;\n}\ntbody.collapse.in {\n display: table-row-group;\n}\n.collapsing {\n position: relative;\n height: 0;\n overflow: hidden;\n -webkit-transition-property: height, visibility;\n transition-property: height, visibility;\n -webkit-transition-duration: 0.35s;\n transition-duration: 0.35s;\n -webkit-transition-timing-function: ease;\n transition-timing-function: ease;\n}\n.caret {\n display: inline-block;\n width: 0;\n height: 0;\n margin-left: 2px;\n vertical-align: middle;\n border-top: 4px dashed;\n border-top: 4px solid \\9;\n border-right: 4px solid transparent;\n border-left: 4px solid transparent;\n}\n.dropup,\n.dropdown {\n position: relative;\n}\n.dropdown-toggle:focus {\n outline: 0;\n}\n.dropdown-menu {\n position: absolute;\n top: 100%;\n left: 0;\n z-index: 1000;\n display: none;\n float: left;\n min-width: 160px;\n padding: 5px 0;\n margin: 2px 0 0;\n list-style: none;\n font-size: 14px;\n text-align: left;\n background-color: #fff;\n border: 1px solid #ccc;\n border: 1px solid rgba(0, 0, 0, 0.15);\n border-radius: 4px;\n -webkit-box-shadow: 0 6px 12px rgba(0, 0, 0, 0.175);\n box-shadow: 0 6px 12px rgba(0, 0, 0, 0.175);\n background-clip: padding-box;\n}\n.dropdown-menu.pull-right {\n right: 0;\n left: auto;\n}\n.dropdown-menu .divider {\n height: 1px;\n margin: 9px 0;\n overflow: hidden;\n background-color: #e5e5e5;\n}\n.dropdown-menu > li > a {\n display: block;\n padding: 3px 20px;\n clear: both;\n font-weight: normal;\n line-height: 1.42857143;\n color: #333333;\n white-space: nowrap;\n}\n.dropdown-menu > li > a:hover,\n.dropdown-menu > li > a:focus {\n text-decoration: none;\n color: #262626;\n background-color: #f5f5f5;\n}\n.dropdown-menu > .active > a,\n.dropdown-menu > .active > a:hover,\n.dropdown-menu > .active > a:focus {\n color: #fff;\n text-decoration: none;\n outline: 0;\n background-color: #337ab7;\n}\n.dropdown-menu > .disabled > a,\n.dropdown-menu > .disabled > a:hover,\n.dropdown-menu > .disabled > a:focus {\n color: #777777;\n}\n.dropdown-menu > .disabled > a:hover,\n.dropdown-menu > .disabled > a:focus {\n text-decoration: none;\n background-color: transparent;\n background-image: none;\n filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);\n cursor: not-allowed;\n}\n.open > .dropdown-menu {\n display: block;\n}\n.open > a {\n outline: 0;\n}\n.dropdown-menu-right {\n left: auto;\n right: 0;\n}\n.dropdown-menu-left {\n left: 0;\n right: auto;\n}\n.dropdown-header {\n display: block;\n padding: 3px 20px;\n font-size: 12px;\n line-height: 1.42857143;\n color: #777777;\n white-space: nowrap;\n}\n.dropdown-backdrop {\n position: fixed;\n left: 0;\n right: 0;\n bottom: 0;\n top: 0;\n z-index: 990;\n}\n.pull-right > .dropdown-menu {\n right: 0;\n left: auto;\n}\n.dropup .caret,\n.navbar-fixed-bottom .dropdown .caret {\n border-top: 0;\n border-bottom: 4px dashed;\n border-bottom: 4px solid \\9;\n content: \"\";\n}\n.dropup .dropdown-menu,\n.navbar-fixed-bottom .dropdown .dropdown-menu {\n top: auto;\n bottom: 100%;\n margin-bottom: 2px;\n}\n@media (min-width: 768px) {\n .navbar-right .dropdown-menu {\n left: auto;\n right: 0;\n }\n .navbar-right .dropdown-menu-left {\n left: 0;\n right: auto;\n }\n}\n.btn-group,\n.btn-group-vertical {\n position: relative;\n display: inline-block;\n vertical-align: middle;\n}\n.btn-group > .btn,\n.btn-group-vertical > .btn {\n position: relative;\n float: left;\n}\n.btn-group > .btn:hover,\n.btn-group-vertical > .btn:hover,\n.btn-group > .btn:focus,\n.btn-group-vertical > .btn:focus,\n.btn-group > .btn:active,\n.btn-group-vertical > .btn:active,\n.btn-group > .btn.active,\n.btn-group-vertical > .btn.active {\n z-index: 2;\n}\n.btn-group .btn + .btn,\n.btn-group .btn + .btn-group,\n.btn-group .btn-group + .btn,\n.btn-group .btn-group + .btn-group {\n margin-left: -1px;\n}\n.btn-toolbar {\n margin-left: -5px;\n}\n.btn-toolbar .btn,\n.btn-toolbar .btn-group,\n.btn-toolbar .input-group {\n float: left;\n}\n.btn-toolbar > .btn,\n.btn-toolbar > .btn-group,\n.btn-toolbar > .input-group {\n margin-left: 5px;\n}\n.btn-group > .btn:not(:first-child):not(:last-child):not(.dropdown-toggle) {\n border-radius: 0;\n}\n.btn-group > .btn:first-child {\n margin-left: 0;\n}\n.btn-group > .btn:first-child:not(:last-child):not(.dropdown-toggle) {\n border-bottom-right-radius: 0;\n border-top-right-radius: 0;\n}\n.btn-group > .btn:last-child:not(:first-child),\n.btn-group > .dropdown-toggle:not(:first-child) {\n border-bottom-left-radius: 0;\n border-top-left-radius: 0;\n}\n.btn-group > .btn-group {\n float: left;\n}\n.btn-group > .btn-group:not(:first-child):not(:last-child) > .btn {\n border-radius: 0;\n}\n.btn-group > .btn-group:first-child:not(:last-child) > .btn:last-child,\n.btn-group > .btn-group:first-child:not(:last-child) > .dropdown-toggle {\n border-bottom-right-radius: 0;\n border-top-right-radius: 0;\n}\n.btn-group > .btn-group:last-child:not(:first-child) > .btn:first-child {\n border-bottom-left-radius: 0;\n border-top-left-radius: 0;\n}\n.btn-group .dropdown-toggle:active,\n.btn-group.open .dropdown-toggle {\n outline: 0;\n}\n.btn-group > .btn + .dropdown-toggle {\n padding-left: 8px;\n padding-right: 8px;\n}\n.btn-group > .btn-lg + .dropdown-toggle {\n padding-left: 12px;\n padding-right: 12px;\n}\n.btn-group.open .dropdown-toggle {\n -webkit-box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);\n box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);\n}\n.btn-group.open .dropdown-toggle.btn-link {\n -webkit-box-shadow: none;\n box-shadow: none;\n}\n.btn .caret {\n margin-left: 0;\n}\n.btn-lg .caret {\n border-width: 5px 5px 0;\n border-bottom-width: 0;\n}\n.dropup .btn-lg .caret {\n border-width: 0 5px 5px;\n}\n.btn-group-vertical > .btn,\n.btn-group-vertical > .btn-group,\n.btn-group-vertical > .btn-group > .btn {\n display: block;\n float: none;\n width: 100%;\n max-width: 100%;\n}\n.btn-group-vertical > .btn-group > .btn {\n float: none;\n}\n.btn-group-vertical > .btn + .btn,\n.btn-group-vertical > .btn + .btn-group,\n.btn-group-vertical > .btn-group + .btn,\n.btn-group-vertical > .btn-group + .btn-group {\n margin-top: -1px;\n margin-left: 0;\n}\n.btn-group-vertical > .btn:not(:first-child):not(:last-child) {\n border-radius: 0;\n}\n.btn-group-vertical > .btn:first-child:not(:last-child) {\n border-top-right-radius: 4px;\n border-top-left-radius: 4px;\n border-bottom-right-radius: 0;\n border-bottom-left-radius: 0;\n}\n.btn-group-vertical > .btn:last-child:not(:first-child) {\n border-top-right-radius: 0;\n border-top-left-radius: 0;\n border-bottom-right-radius: 4px;\n border-bottom-left-radius: 4px;\n}\n.btn-group-vertical > .btn-group:not(:first-child):not(:last-child) > .btn {\n border-radius: 0;\n}\n.btn-group-vertical > .btn-group:first-child:not(:last-child) > .btn:last-child,\n.btn-group-vertical > .btn-group:first-child:not(:last-child) > .dropdown-toggle {\n border-bottom-right-radius: 0;\n border-bottom-left-radius: 0;\n}\n.btn-group-vertical > .btn-group:last-child:not(:first-child) > .btn:first-child {\n border-top-right-radius: 0;\n border-top-left-radius: 0;\n}\n.btn-group-justified {\n display: table;\n width: 100%;\n table-layout: fixed;\n border-collapse: separate;\n}\n.btn-group-justified > .btn,\n.btn-group-justified > .btn-group {\n float: none;\n display: table-cell;\n width: 1%;\n}\n.btn-group-justified > .btn-group .btn {\n width: 100%;\n}\n.btn-group-justified > .btn-group .dropdown-menu {\n left: auto;\n}\n[data-toggle=\"buttons\"] > .btn input[type=\"radio\"],\n[data-toggle=\"buttons\"] > .btn-group > .btn input[type=\"radio\"],\n[data-toggle=\"buttons\"] > .btn input[type=\"checkbox\"],\n[data-toggle=\"buttons\"] > .btn-group > .btn input[type=\"checkbox\"] {\n position: absolute;\n clip: rect(0, 0, 0, 0);\n pointer-events: none;\n}\n.input-group {\n position: relative;\n display: table;\n border-collapse: separate;\n}\n.input-group[class*=\"col-\"] {\n float: none;\n padding-left: 0;\n padding-right: 0;\n}\n.input-group .form-control {\n position: relative;\n z-index: 2;\n float: left;\n width: 100%;\n margin-bottom: 0;\n}\n.input-group .form-control:focus {\n z-index: 3;\n}\n.input-group-lg > .form-control,\n.input-group-lg > .input-group-addon,\n.input-group-lg > .input-group-btn > .btn {\n height: 46px;\n padding: 10px 16px;\n font-size: 18px;\n line-height: 1.3333333;\n border-radius: 6px;\n}\nselect.input-group-lg > .form-control,\nselect.input-group-lg > .input-group-addon,\nselect.input-group-lg > .input-group-btn > .btn {\n height: 46px;\n line-height: 46px;\n}\ntextarea.input-group-lg > .form-control,\ntextarea.input-group-lg > .input-group-addon,\ntextarea.input-group-lg > .input-group-btn > .btn,\nselect[multiple].input-group-lg > .form-control,\nselect[multiple].input-group-lg > .input-group-addon,\nselect[multiple].input-group-lg > .input-group-btn > .btn {\n height: auto;\n}\n.input-group-sm > .form-control,\n.input-group-sm > .input-group-addon,\n.input-group-sm > .input-group-btn > .btn {\n height: 30px;\n padding: 5px 10px;\n font-size: 12px;\n line-height: 1.5;\n border-radius: 3px;\n}\nselect.input-group-sm > .form-control,\nselect.input-group-sm > .input-group-addon,\nselect.input-group-sm > .input-group-btn > .btn {\n height: 30px;\n line-height: 30px;\n}\ntextarea.input-group-sm > .form-control,\ntextarea.input-group-sm > .input-group-addon,\ntextarea.input-group-sm > .input-group-btn > .btn,\nselect[multiple].input-group-sm > .form-control,\nselect[multiple].input-group-sm > .input-group-addon,\nselect[multiple].input-group-sm > .input-group-btn > .btn {\n height: auto;\n}\n.input-group-addon,\n.input-group-btn,\n.input-group .form-control {\n display: table-cell;\n}\n.input-group-addon:not(:first-child):not(:last-child),\n.input-group-btn:not(:first-child):not(:last-child),\n.input-group .form-control:not(:first-child):not(:last-child) {\n border-radius: 0;\n}\n.input-group-addon,\n.input-group-btn {\n width: 1%;\n white-space: nowrap;\n vertical-align: middle;\n}\n.input-group-addon {\n padding: 6px 12px;\n font-size: 14px;\n font-weight: normal;\n line-height: 1;\n color: #555555;\n text-align: center;\n background-color: #eeeeee;\n border: 1px solid #ccc;\n border-radius: 4px;\n}\n.input-group-addon.input-sm {\n padding: 5px 10px;\n font-size: 12px;\n border-radius: 3px;\n}\n.input-group-addon.input-lg {\n padding: 10px 16px;\n font-size: 18px;\n border-radius: 6px;\n}\n.input-group-addon input[type=\"radio\"],\n.input-group-addon input[type=\"checkbox\"] {\n margin-top: 0;\n}\n.input-group .form-control:first-child,\n.input-group-addon:first-child,\n.input-group-btn:first-child > .btn,\n.input-group-btn:first-child > .btn-group > .btn,\n.input-group-btn:first-child > .dropdown-toggle,\n.input-group-btn:last-child > .btn:not(:last-child):not(.dropdown-toggle),\n.input-group-btn:last-child > .btn-group:not(:last-child) > .btn {\n border-bottom-right-radius: 0;\n border-top-right-radius: 0;\n}\n.input-group-addon:first-child {\n border-right: 0;\n}\n.input-group .form-control:last-child,\n.input-group-addon:last-child,\n.input-group-btn:last-child > .btn,\n.input-group-btn:last-child > .btn-group > .btn,\n.input-group-btn:last-child > .dropdown-toggle,\n.input-group-btn:first-child > .btn:not(:first-child),\n.input-group-btn:first-child > .btn-group:not(:first-child) > .btn {\n border-bottom-left-radius: 0;\n border-top-left-radius: 0;\n}\n.input-group-addon:last-child {\n border-left: 0;\n}\n.input-group-btn {\n position: relative;\n font-size: 0;\n white-space: nowrap;\n}\n.input-group-btn > .btn {\n position: relative;\n}\n.input-group-btn > .btn + .btn {\n margin-left: -1px;\n}\n.input-group-btn > .btn:hover,\n.input-group-btn > .btn:focus,\n.input-group-btn > .btn:active {\n z-index: 2;\n}\n.input-group-btn:first-child > .btn,\n.input-group-btn:first-child > .btn-group {\n margin-right: -1px;\n}\n.input-group-btn:last-child > .btn,\n.input-group-btn:last-child > .btn-group {\n z-index: 2;\n margin-left: -1px;\n}\n.nav {\n margin-bottom: 0;\n padding-left: 0;\n list-style: none;\n}\n.nav > li {\n position: relative;\n display: block;\n}\n.nav > li > a {\n position: relative;\n display: block;\n padding: 10px 15px;\n}\n.nav > li > a:hover,\n.nav > li > a:focus {\n text-decoration: none;\n background-color: #eeeeee;\n}\n.nav > li.disabled > a {\n color: #777777;\n}\n.nav > li.disabled > a:hover,\n.nav > li.disabled > a:focus {\n color: #777777;\n text-decoration: none;\n background-color: transparent;\n cursor: not-allowed;\n}\n.nav .open > a,\n.nav .open > a:hover,\n.nav .open > a:focus {\n background-color: #eeeeee;\n border-color: #337ab7;\n}\n.nav .nav-divider {\n height: 1px;\n margin: 9px 0;\n overflow: hidden;\n background-color: #e5e5e5;\n}\n.nav > li > a > img {\n max-width: none;\n}\n.nav-tabs {\n border-bottom: 1px solid #ddd;\n}\n.nav-tabs > li {\n float: left;\n margin-bottom: -1px;\n}\n.nav-tabs > li > a {\n margin-right: 2px;\n line-height: 1.42857143;\n border: 1px solid transparent;\n border-radius: 4px 4px 0 0;\n}\n.nav-tabs > li > a:hover {\n border-color: #eeeeee #eeeeee #ddd;\n}\n.nav-tabs > li.active > a,\n.nav-tabs > li.active > a:hover,\n.nav-tabs > li.active > a:focus {\n color: #555555;\n background-color: #fff;\n border: 1px solid #ddd;\n border-bottom-color: transparent;\n cursor: default;\n}\n.nav-tabs.nav-justified {\n width: 100%;\n border-bottom: 0;\n}\n.nav-tabs.nav-justified > li {\n float: none;\n}\n.nav-tabs.nav-justified > li > a {\n text-align: center;\n margin-bottom: 5px;\n}\n.nav-tabs.nav-justified > .dropdown .dropdown-menu {\n top: auto;\n left: auto;\n}\n@media (min-width: 768px) {\n .nav-tabs.nav-justified > li {\n display: table-cell;\n width: 1%;\n }\n .nav-tabs.nav-justified > li > a {\n margin-bottom: 0;\n }\n}\n.nav-tabs.nav-justified > li > a {\n margin-right: 0;\n border-radius: 4px;\n}\n.nav-tabs.nav-justified > .active > a,\n.nav-tabs.nav-justified > .active > a:hover,\n.nav-tabs.nav-justified > .active > a:focus {\n border: 1px solid #ddd;\n}\n@media (min-width: 768px) {\n .nav-tabs.nav-justified > li > a {\n border-bottom: 1px solid #ddd;\n border-radius: 4px 4px 0 0;\n }\n .nav-tabs.nav-justified > .active > a,\n .nav-tabs.nav-justified > .active > a:hover,\n .nav-tabs.nav-justified > .active > a:focus {\n border-bottom-color: #fff;\n }\n}\n.nav-pills > li {\n float: left;\n}\n.nav-pills > li > a {\n border-radius: 4px;\n}\n.nav-pills > li + li {\n margin-left: 2px;\n}\n.nav-pills > li.active > a,\n.nav-pills > li.active > a:hover,\n.nav-pills > li.active > a:focus {\n color: #fff;\n background-color: #337ab7;\n}\n.nav-stacked > li {\n float: none;\n}\n.nav-stacked > li + li {\n margin-top: 2px;\n margin-left: 0;\n}\n.nav-justified {\n width: 100%;\n}\n.nav-justified > li {\n float: none;\n}\n.nav-justified > li > a {\n text-align: center;\n margin-bottom: 5px;\n}\n.nav-justified > .dropdown .dropdown-menu {\n top: auto;\n left: auto;\n}\n@media (min-width: 768px) {\n .nav-justified > li {\n display: table-cell;\n width: 1%;\n }\n .nav-justified > li > a {\n margin-bottom: 0;\n }\n}\n.nav-tabs-justified {\n border-bottom: 0;\n}\n.nav-tabs-justified > li > a {\n margin-right: 0;\n border-radius: 4px;\n}\n.nav-tabs-justified > .active > a,\n.nav-tabs-justified > .active > a:hover,\n.nav-tabs-justified > .active > a:focus {\n border: 1px solid #ddd;\n}\n@media (min-width: 768px) {\n .nav-tabs-justified > li > a {\n border-bottom: 1px solid #ddd;\n border-radius: 4px 4px 0 0;\n }\n .nav-tabs-justified > .active > a,\n .nav-tabs-justified > .active > a:hover,\n .nav-tabs-justified > .active > a:focus {\n border-bottom-color: #fff;\n }\n}\n.tab-content > .tab-pane {\n display: none;\n}\n.tab-content > .active {\n display: block;\n}\n.nav-tabs .dropdown-menu {\n margin-top: -1px;\n border-top-right-radius: 0;\n border-top-left-radius: 0;\n}\n.navbar {\n position: relative;\n min-height: 50px;\n margin-bottom: 20px;\n border: 1px solid transparent;\n}\n@media (min-width: 768px) {\n .navbar {\n border-radius: 4px;\n }\n}\n@media (min-width: 768px) {\n .navbar-header {\n float: left;\n }\n}\n.navbar-collapse {\n overflow-x: visible;\n padding-right: 15px;\n padding-left: 15px;\n border-top: 1px solid transparent;\n box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1);\n -webkit-overflow-scrolling: touch;\n}\n.navbar-collapse.in {\n overflow-y: auto;\n}\n@media (min-width: 768px) {\n .navbar-collapse {\n width: auto;\n border-top: 0;\n box-shadow: none;\n }\n .navbar-collapse.collapse {\n display: block !important;\n height: auto !important;\n padding-bottom: 0;\n overflow: visible !important;\n }\n .navbar-collapse.in {\n overflow-y: visible;\n }\n .navbar-fixed-top .navbar-collapse,\n .navbar-static-top .navbar-collapse,\n .navbar-fixed-bottom .navbar-collapse {\n padding-left: 0;\n padding-right: 0;\n }\n}\n.navbar-fixed-top .navbar-collapse,\n.navbar-fixed-bottom .navbar-collapse {\n max-height: 340px;\n}\n@media (max-device-width: 480px) and (orientation: landscape) {\n .navbar-fixed-top .navbar-collapse,\n .navbar-fixed-bottom .navbar-collapse {\n max-height: 200px;\n }\n}\n.container > .navbar-header,\n.container-fluid > .navbar-header,\n.container > .navbar-collapse,\n.container-fluid > .navbar-collapse {\n margin-right: -15px;\n margin-left: -15px;\n}\n@media (min-width: 768px) {\n .container > .navbar-header,\n .container-fluid > .navbar-header,\n .container > .navbar-collapse,\n .container-fluid > .navbar-collapse {\n margin-right: 0;\n margin-left: 0;\n }\n}\n.navbar-static-top {\n z-index: 1000;\n border-width: 0 0 1px;\n}\n@media (min-width: 768px) {\n .navbar-static-top {\n border-radius: 0;\n }\n}\n.navbar-fixed-top,\n.navbar-fixed-bottom {\n position: fixed;\n right: 0;\n left: 0;\n z-index: 1030;\n}\n@media (min-width: 768px) {\n .navbar-fixed-top,\n .navbar-fixed-bottom {\n border-radius: 0;\n }\n}\n.navbar-fixed-top {\n top: 0;\n border-width: 0 0 1px;\n}\n.navbar-fixed-bottom {\n bottom: 0;\n margin-bottom: 0;\n border-width: 1px 0 0;\n}\n.navbar-brand {\n float: left;\n padding: 15px 15px;\n font-size: 18px;\n line-height: 20px;\n height: 50px;\n}\n.navbar-brand:hover,\n.navbar-brand:focus {\n text-decoration: none;\n}\n.navbar-brand > img {\n display: block;\n}\n@media (min-width: 768px) {\n .navbar > .container .navbar-brand,\n .navbar > .container-fluid .navbar-brand {\n margin-left: -15px;\n }\n}\n.navbar-toggle {\n position: relative;\n float: right;\n margin-right: 15px;\n padding: 9px 10px;\n margin-top: 8px;\n margin-bottom: 8px;\n background-color: transparent;\n background-image: none;\n border: 1px solid transparent;\n border-radius: 4px;\n}\n.navbar-toggle:focus {\n outline: 0;\n}\n.navbar-toggle .icon-bar {\n display: block;\n width: 22px;\n height: 2px;\n border-radius: 1px;\n}\n.navbar-toggle .icon-bar + .icon-bar {\n margin-top: 4px;\n}\n@media (min-width: 768px) {\n .navbar-toggle {\n display: none;\n }\n}\n.navbar-nav {\n margin: 7.5px -15px;\n}\n.navbar-nav > li > a {\n padding-top: 10px;\n padding-bottom: 10px;\n line-height: 20px;\n}\n@media (max-width: 767px) {\n .navbar-nav .open .dropdown-menu {\n position: static;\n float: none;\n width: auto;\n margin-top: 0;\n background-color: transparent;\n border: 0;\n box-shadow: none;\n }\n .navbar-nav .open .dropdown-menu > li > a,\n .navbar-nav .open .dropdown-menu .dropdown-header {\n padding: 5px 15px 5px 25px;\n }\n .navbar-nav .open .dropdown-menu > li > a {\n line-height: 20px;\n }\n .navbar-nav .open .dropdown-menu > li > a:hover,\n .navbar-nav .open .dropdown-menu > li > a:focus {\n background-image: none;\n }\n}\n@media (min-width: 768px) {\n .navbar-nav {\n float: left;\n margin: 0;\n }\n .navbar-nav > li {\n float: left;\n }\n .navbar-nav > li > a {\n padding-top: 15px;\n padding-bottom: 15px;\n }\n}\n.navbar-form {\n margin-left: -15px;\n margin-right: -15px;\n padding: 10px 15px;\n border-top: 1px solid transparent;\n border-bottom: 1px solid transparent;\n -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1), 0 1px 0 rgba(255, 255, 255, 0.1);\n box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1), 0 1px 0 rgba(255, 255, 255, 0.1);\n margin-top: 8px;\n margin-bottom: 8px;\n}\n@media (min-width: 768px) {\n .navbar-form .form-group {\n display: inline-block;\n margin-bottom: 0;\n vertical-align: middle;\n }\n .navbar-form .form-control {\n display: inline-block;\n width: auto;\n vertical-align: middle;\n }\n .navbar-form .form-control-static {\n display: inline-block;\n }\n .navbar-form .input-group {\n display: inline-table;\n vertical-align: middle;\n }\n .navbar-form .input-group .input-group-addon,\n .navbar-form .input-group .input-group-btn,\n .navbar-form .input-group .form-control {\n width: auto;\n }\n .navbar-form .input-group > .form-control {\n width: 100%;\n }\n .navbar-form .control-label {\n margin-bottom: 0;\n vertical-align: middle;\n }\n .navbar-form .radio,\n .navbar-form .checkbox {\n display: inline-block;\n margin-top: 0;\n margin-bottom: 0;\n vertical-align: middle;\n }\n .navbar-form .radio label,\n .navbar-form .checkbox label {\n padding-left: 0;\n }\n .navbar-form .radio input[type=\"radio\"],\n .navbar-form .checkbox input[type=\"checkbox\"] {\n position: relative;\n margin-left: 0;\n }\n .navbar-form .has-feedback .form-control-feedback {\n top: 0;\n }\n}\n@media (max-width: 767px) {\n .navbar-form .form-group {\n margin-bottom: 5px;\n }\n .navbar-form .form-group:last-child {\n margin-bottom: 0;\n }\n}\n@media (min-width: 768px) {\n .navbar-form {\n width: auto;\n border: 0;\n margin-left: 0;\n margin-right: 0;\n padding-top: 0;\n padding-bottom: 0;\n -webkit-box-shadow: none;\n box-shadow: none;\n }\n}\n.navbar-nav > li > .dropdown-menu {\n margin-top: 0;\n border-top-right-radius: 0;\n border-top-left-radius: 0;\n}\n.navbar-fixed-bottom .navbar-nav > li > .dropdown-menu {\n margin-bottom: 0;\n border-top-right-radius: 4px;\n border-top-left-radius: 4px;\n border-bottom-right-radius: 0;\n border-bottom-left-radius: 0;\n}\n.navbar-btn {\n margin-top: 8px;\n margin-bottom: 8px;\n}\n.navbar-btn.btn-sm {\n margin-top: 10px;\n margin-bottom: 10px;\n}\n.navbar-btn.btn-xs {\n margin-top: 14px;\n margin-bottom: 14px;\n}\n.navbar-text {\n margin-top: 15px;\n margin-bottom: 15px;\n}\n@media (min-width: 768px) {\n .navbar-text {\n float: left;\n margin-left: 15px;\n margin-right: 15px;\n }\n}\n@media (min-width: 768px) {\n .navbar-left {\n float: left !important;\n }\n .navbar-right {\n float: right !important;\n margin-right: -15px;\n }\n .navbar-right ~ .navbar-right {\n margin-right: 0;\n }\n}\n.navbar-default {\n background-color: #f8f8f8;\n border-color: #e7e7e7;\n}\n.navbar-default .navbar-brand {\n color: #777;\n}\n.navbar-default .navbar-brand:hover,\n.navbar-default .navbar-brand:focus {\n color: #5e5e5e;\n background-color: transparent;\n}\n.navbar-default .navbar-text {\n color: #777;\n}\n.navbar-default .navbar-nav > li > a {\n color: #777;\n}\n.navbar-default .navbar-nav > li > a:hover,\n.navbar-default .navbar-nav > li > a:focus {\n color: #333;\n background-color: transparent;\n}\n.navbar-default .navbar-nav > .active > a,\n.navbar-default .navbar-nav > .active > a:hover,\n.navbar-default .navbar-nav > .active > a:focus {\n color: #555;\n background-color: #e7e7e7;\n}\n.navbar-default .navbar-nav > .disabled > a,\n.navbar-default .navbar-nav > .disabled > a:hover,\n.navbar-default .navbar-nav > .disabled > a:focus {\n color: #ccc;\n background-color: transparent;\n}\n.navbar-default .navbar-toggle {\n border-color: #ddd;\n}\n.navbar-default .navbar-toggle:hover,\n.navbar-default .navbar-toggle:focus {\n background-color: #ddd;\n}\n.navbar-default .navbar-toggle .icon-bar {\n background-color: #888;\n}\n.navbar-default .navbar-collapse,\n.navbar-default .navbar-form {\n border-color: #e7e7e7;\n}\n.navbar-default .navbar-nav > .open > a,\n.navbar-default .navbar-nav > .open > a:hover,\n.navbar-default .navbar-nav > .open > a:focus {\n background-color: #e7e7e7;\n color: #555;\n}\n@media (max-width: 767px) {\n .navbar-default .navbar-nav .open .dropdown-menu > li > a {\n color: #777;\n }\n .navbar-default .navbar-nav .open .dropdown-menu > li > a:hover,\n .navbar-default .navbar-nav .open .dropdown-menu > li > a:focus {\n color: #333;\n background-color: transparent;\n }\n .navbar-default .navbar-nav .open .dropdown-menu > .active > a,\n .navbar-default .navbar-nav .open .dropdown-menu > .active > a:hover,\n .navbar-default .navbar-nav .open .dropdown-menu > .active > a:focus {\n color: #555;\n background-color: #e7e7e7;\n }\n .navbar-default .navbar-nav .open .dropdown-menu > .disabled > a,\n .navbar-default .navbar-nav .open .dropdown-menu > .disabled > a:hover,\n .navbar-default .navbar-nav .open .dropdown-menu > .disabled > a:focus {\n color: #ccc;\n background-color: transparent;\n }\n}\n.navbar-default .navbar-link {\n color: #777;\n}\n.navbar-default .navbar-link:hover {\n color: #333;\n}\n.navbar-default .btn-link {\n color: #777;\n}\n.navbar-default .btn-link:hover,\n.navbar-default .btn-link:focus {\n color: #333;\n}\n.navbar-default .btn-link[disabled]:hover,\nfieldset[disabled] .navbar-default .btn-link:hover,\n.navbar-default .btn-link[disabled]:focus,\nfieldset[disabled] .navbar-default .btn-link:focus {\n color: #ccc;\n}\n.navbar-inverse {\n background-color: #222;\n border-color: #080808;\n}\n.navbar-inverse .navbar-brand {\n color: #9d9d9d;\n}\n.navbar-inverse .navbar-brand:hover,\n.navbar-inverse .navbar-brand:focus {\n color: #fff;\n background-color: transparent;\n}\n.navbar-inverse .navbar-text {\n color: #9d9d9d;\n}\n.navbar-inverse .navbar-nav > li > a {\n color: #9d9d9d;\n}\n.navbar-inverse .navbar-nav > li > a:hover,\n.navbar-inverse .navbar-nav > li > a:focus {\n color: #fff;\n background-color: transparent;\n}\n.navbar-inverse .navbar-nav > .active > a,\n.navbar-inverse .navbar-nav > .active > a:hover,\n.navbar-inverse .navbar-nav > .active > a:focus {\n color: #fff;\n background-color: #080808;\n}\n.navbar-inverse .navbar-nav > .disabled > a,\n.navbar-inverse .navbar-nav > .disabled > a:hover,\n.navbar-inverse .navbar-nav > .disabled > a:focus {\n color: #444;\n background-color: transparent;\n}\n.navbar-inverse .navbar-toggle {\n border-color: #333;\n}\n.navbar-inverse .navbar-toggle:hover,\n.navbar-inverse .navbar-toggle:focus {\n background-color: #333;\n}\n.navbar-inverse .navbar-toggle .icon-bar {\n background-color: #fff;\n}\n.navbar-inverse .navbar-collapse,\n.navbar-inverse .navbar-form {\n border-color: #101010;\n}\n.navbar-inverse .navbar-nav > .open > a,\n.navbar-inverse .navbar-nav > .open > a:hover,\n.navbar-inverse .navbar-nav > .open > a:focus {\n background-color: #080808;\n color: #fff;\n}\n@media (max-width: 767px) {\n .navbar-inverse .navbar-nav .open .dropdown-menu > .dropdown-header {\n border-color: #080808;\n }\n .navbar-inverse .navbar-nav .open .dropdown-menu .divider {\n background-color: #080808;\n }\n .navbar-inverse .navbar-nav .open .dropdown-menu > li > a {\n color: #9d9d9d;\n }\n .navbar-inverse .navbar-nav .open .dropdown-menu > li > a:hover,\n .navbar-inverse .navbar-nav .open .dropdown-menu > li > a:focus {\n color: #fff;\n background-color: transparent;\n }\n .navbar-inverse .navbar-nav .open .dropdown-menu > .active > a,\n .navbar-inverse .navbar-nav .open .dropdown-menu > .active > a:hover,\n .navbar-inverse .navbar-nav .open .dropdown-menu > .active > a:focus {\n color: #fff;\n background-color: #080808;\n }\n .navbar-inverse .navbar-nav .open .dropdown-menu > .disabled > a,\n .navbar-inverse .navbar-nav .open .dropdown-menu > .disabled > a:hover,\n .navbar-inverse .navbar-nav .open .dropdown-menu > .disabled > a:focus {\n color: #444;\n background-color: transparent;\n }\n}\n.navbar-inverse .navbar-link {\n color: #9d9d9d;\n}\n.navbar-inverse .navbar-link:hover {\n color: #fff;\n}\n.navbar-inverse .btn-link {\n color: #9d9d9d;\n}\n.navbar-inverse .btn-link:hover,\n.navbar-inverse .btn-link:focus {\n color: #fff;\n}\n.navbar-inverse .btn-link[disabled]:hover,\nfieldset[disabled] .navbar-inverse .btn-link:hover,\n.navbar-inverse .btn-link[disabled]:focus,\nfieldset[disabled] .navbar-inverse .btn-link:focus {\n color: #444;\n}\n.breadcrumb {\n padding: 8px 15px;\n margin-bottom: 20px;\n list-style: none;\n background-color: #f5f5f5;\n border-radius: 4px;\n}\n.breadcrumb > li {\n display: inline-block;\n}\n.breadcrumb > li + li:before {\n content: \"/\\00a0\";\n padding: 0 5px;\n color: #ccc;\n}\n.breadcrumb > .active {\n color: #777777;\n}\n.pagination {\n display: inline-block;\n padding-left: 0;\n margin: 20px 0;\n border-radius: 4px;\n}\n.pagination > li {\n display: inline;\n}\n.pagination > li > a,\n.pagination > li > span {\n position: relative;\n float: left;\n padding: 6px 12px;\n line-height: 1.42857143;\n text-decoration: none;\n color: #337ab7;\n background-color: #fff;\n border: 1px solid #ddd;\n margin-left: -1px;\n}\n.pagination > li:first-child > a,\n.pagination > li:first-child > span {\n margin-left: 0;\n border-bottom-left-radius: 4px;\n border-top-left-radius: 4px;\n}\n.pagination > li:last-child > a,\n.pagination > li:last-child > span {\n border-bottom-right-radius: 4px;\n border-top-right-radius: 4px;\n}\n.pagination > li > a:hover,\n.pagination > li > span:hover,\n.pagination > li > a:focus,\n.pagination > li > span:focus {\n z-index: 2;\n color: #23527c;\n background-color: #eeeeee;\n border-color: #ddd;\n}\n.pagination > .active > a,\n.pagination > .active > span,\n.pagination > .active > a:hover,\n.pagination > .active > span:hover,\n.pagination > .active > a:focus,\n.pagination > .active > span:focus {\n z-index: 3;\n color: #fff;\n background-color: #337ab7;\n border-color: #337ab7;\n cursor: default;\n}\n.pagination > .disabled > span,\n.pagination > .disabled > span:hover,\n.pagination > .disabled > span:focus,\n.pagination > .disabled > a,\n.pagination > .disabled > a:hover,\n.pagination > .disabled > a:focus {\n color: #777777;\n background-color: #fff;\n border-color: #ddd;\n cursor: not-allowed;\n}\n.pagination-lg > li > a,\n.pagination-lg > li > span {\n padding: 10px 16px;\n font-size: 18px;\n line-height: 1.3333333;\n}\n.pagination-lg > li:first-child > a,\n.pagination-lg > li:first-child > span {\n border-bottom-left-radius: 6px;\n border-top-left-radius: 6px;\n}\n.pagination-lg > li:last-child > a,\n.pagination-lg > li:last-child > span {\n border-bottom-right-radius: 6px;\n border-top-right-radius: 6px;\n}\n.pagination-sm > li > a,\n.pagination-sm > li > span {\n padding: 5px 10px;\n font-size: 12px;\n line-height: 1.5;\n}\n.pagination-sm > li:first-child > a,\n.pagination-sm > li:first-child > span {\n border-bottom-left-radius: 3px;\n border-top-left-radius: 3px;\n}\n.pagination-sm > li:last-child > a,\n.pagination-sm > li:last-child > span {\n border-bottom-right-radius: 3px;\n border-top-right-radius: 3px;\n}\n.pager {\n padding-left: 0;\n margin: 20px 0;\n list-style: none;\n text-align: center;\n}\n.pager li {\n display: inline;\n}\n.pager li > a,\n.pager li > span {\n display: inline-block;\n padding: 5px 14px;\n background-color: #fff;\n border: 1px solid #ddd;\n border-radius: 15px;\n}\n.pager li > a:hover,\n.pager li > a:focus {\n text-decoration: none;\n background-color: #eeeeee;\n}\n.pager .next > a,\n.pager .next > span {\n float: right;\n}\n.pager .previous > a,\n.pager .previous > span {\n float: left;\n}\n.pager .disabled > a,\n.pager .disabled > a:hover,\n.pager .disabled > a:focus,\n.pager .disabled > span {\n color: #777777;\n background-color: #fff;\n cursor: not-allowed;\n}\n.label {\n display: inline;\n padding: .2em .6em .3em;\n font-size: 75%;\n font-weight: bold;\n line-height: 1;\n color: #fff;\n text-align: center;\n white-space: nowrap;\n vertical-align: baseline;\n border-radius: .25em;\n}\na.label:hover,\na.label:focus {\n color: #fff;\n text-decoration: none;\n cursor: pointer;\n}\n.label:empty {\n display: none;\n}\n.btn .label {\n position: relative;\n top: -1px;\n}\n.label-default {\n background-color: #777777;\n}\n.label-default[href]:hover,\n.label-default[href]:focus {\n background-color: #5e5e5e;\n}\n.label-primary {\n background-color: #337ab7;\n}\n.label-primary[href]:hover,\n.label-primary[href]:focus {\n background-color: #286090;\n}\n.label-success {\n background-color: #5cb85c;\n}\n.label-success[href]:hover,\n.label-success[href]:focus {\n background-color: #449d44;\n}\n.label-info {\n background-color: #5bc0de;\n}\n.label-info[href]:hover,\n.label-info[href]:focus {\n background-color: #31b0d5;\n}\n.label-warning {\n background-color: #f0ad4e;\n}\n.label-warning[href]:hover,\n.label-warning[href]:focus {\n background-color: #ec971f;\n}\n.label-danger {\n background-color: #d9534f;\n}\n.label-danger[href]:hover,\n.label-danger[href]:focus {\n background-color: #c9302c;\n}\n.badge {\n display: inline-block;\n min-width: 10px;\n padding: 3px 7px;\n font-size: 12px;\n font-weight: bold;\n color: #fff;\n line-height: 1;\n vertical-align: middle;\n white-space: nowrap;\n text-align: center;\n background-color: #777777;\n border-radius: 10px;\n}\n.badge:empty {\n display: none;\n}\n.btn .badge {\n position: relative;\n top: -1px;\n}\n.btn-xs .badge,\n.btn-group-xs > .btn .badge {\n top: 0;\n padding: 1px 5px;\n}\na.badge:hover,\na.badge:focus {\n color: #fff;\n text-decoration: none;\n cursor: pointer;\n}\n.list-group-item.active > .badge,\n.nav-pills > .active > a > .badge {\n color: #337ab7;\n background-color: #fff;\n}\n.list-group-item > .badge {\n float: right;\n}\n.list-group-item > .badge + .badge {\n margin-right: 5px;\n}\n.nav-pills > li > a > .badge {\n margin-left: 3px;\n}\n.jumbotron {\n padding-top: 30px;\n padding-bottom: 30px;\n margin-bottom: 30px;\n color: inherit;\n background-color: #eeeeee;\n}\n.jumbotron h1,\n.jumbotron .h1 {\n color: inherit;\n}\n.jumbotron p {\n margin-bottom: 15px;\n font-size: 21px;\n font-weight: 200;\n}\n.jumbotron > hr {\n border-top-color: #d5d5d5;\n}\n.container .jumbotron,\n.container-fluid .jumbotron {\n border-radius: 6px;\n padding-left: 15px;\n padding-right: 15px;\n}\n.jumbotron .container {\n max-width: 100%;\n}\n@media screen and (min-width: 768px) {\n .jumbotron {\n padding-top: 48px;\n padding-bottom: 48px;\n }\n .container .jumbotron,\n .container-fluid .jumbotron {\n padding-left: 60px;\n padding-right: 60px;\n }\n .jumbotron h1,\n .jumbotron .h1 {\n font-size: 63px;\n }\n}\n.thumbnail {\n display: block;\n padding: 4px;\n margin-bottom: 20px;\n line-height: 1.42857143;\n background-color: #fff;\n border: 1px solid #ddd;\n border-radius: 4px;\n -webkit-transition: border 0.2s ease-in-out;\n -o-transition: border 0.2s ease-in-out;\n transition: border 0.2s ease-in-out;\n}\n.thumbnail > img,\n.thumbnail a > img {\n margin-left: auto;\n margin-right: auto;\n}\na.thumbnail:hover,\na.thumbnail:focus,\na.thumbnail.active {\n border-color: #337ab7;\n}\n.thumbnail .caption {\n padding: 9px;\n color: #333333;\n}\n.alert {\n padding: 15px;\n margin-bottom: 20px;\n border: 1px solid transparent;\n border-radius: 4px;\n}\n.alert h4 {\n margin-top: 0;\n color: inherit;\n}\n.alert .alert-link {\n font-weight: bold;\n}\n.alert > p,\n.alert > ul {\n margin-bottom: 0;\n}\n.alert > p + p {\n margin-top: 5px;\n}\n.alert-dismissable,\n.alert-dismissible {\n padding-right: 35px;\n}\n.alert-dismissable .close,\n.alert-dismissible .close {\n position: relative;\n top: -2px;\n right: -21px;\n color: inherit;\n}\n.alert-success {\n background-color: #dff0d8;\n border-color: #d6e9c6;\n color: #3c763d;\n}\n.alert-success hr {\n border-top-color: #c9e2b3;\n}\n.alert-success .alert-link {\n color: #2b542c;\n}\n.alert-info {\n background-color: #d9edf7;\n border-color: #bce8f1;\n color: #31708f;\n}\n.alert-info hr {\n border-top-color: #a6e1ec;\n}\n.alert-info .alert-link {\n color: #245269;\n}\n.alert-warning {\n background-color: #fcf8e3;\n border-color: #faebcc;\n color: #8a6d3b;\n}\n.alert-warning hr {\n border-top-color: #f7e1b5;\n}\n.alert-warning .alert-link {\n color: #66512c;\n}\n.alert-danger {\n background-color: #f2dede;\n border-color: #ebccd1;\n color: #a94442;\n}\n.alert-danger hr {\n border-top-color: #e4b9c0;\n}\n.alert-danger .alert-link {\n color: #843534;\n}\n@-webkit-keyframes progress-bar-stripes {\n from {\n background-position: 40px 0;\n }\n to {\n background-position: 0 0;\n }\n}\n@keyframes progress-bar-stripes {\n from {\n background-position: 40px 0;\n }\n to {\n background-position: 0 0;\n }\n}\n.progress {\n overflow: hidden;\n height: 20px;\n margin-bottom: 20px;\n background-color: #f5f5f5;\n border-radius: 4px;\n -webkit-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1);\n box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1);\n}\n.progress-bar {\n float: left;\n width: 0%;\n height: 100%;\n font-size: 12px;\n line-height: 20px;\n color: #fff;\n text-align: center;\n background-color: #337ab7;\n -webkit-box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.15);\n box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.15);\n -webkit-transition: width 0.6s ease;\n -o-transition: width 0.6s ease;\n transition: width 0.6s ease;\n}\n.progress-striped .progress-bar,\n.progress-bar-striped {\n background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);\n background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);\n background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);\n background-size: 40px 40px;\n}\n.progress.active .progress-bar,\n.progress-bar.active {\n -webkit-animation: progress-bar-stripes 2s linear infinite;\n -o-animation: progress-bar-stripes 2s linear infinite;\n animation: progress-bar-stripes 2s linear infinite;\n}\n.progress-bar-success {\n background-color: #5cb85c;\n}\n.progress-striped .progress-bar-success {\n background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);\n background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);\n background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);\n}\n.progress-bar-info {\n background-color: #5bc0de;\n}\n.progress-striped .progress-bar-info {\n background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);\n background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);\n background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);\n}\n.progress-bar-warning {\n background-color: #f0ad4e;\n}\n.progress-striped .progress-bar-warning {\n background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);\n background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);\n background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);\n}\n.progress-bar-danger {\n background-color: #d9534f;\n}\n.progress-striped .progress-bar-danger {\n background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);\n background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);\n background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);\n}\n.media {\n margin-top: 15px;\n}\n.media:first-child {\n margin-top: 0;\n}\n.media,\n.media-body {\n zoom: 1;\n overflow: hidden;\n}\n.media-body {\n width: 10000px;\n}\n.media-object {\n display: block;\n}\n.media-object.img-thumbnail {\n max-width: none;\n}\n.media-right,\n.media > .pull-right {\n padding-left: 10px;\n}\n.media-left,\n.media > .pull-left {\n padding-right: 10px;\n}\n.media-left,\n.media-right,\n.media-body {\n display: table-cell;\n vertical-align: top;\n}\n.media-middle {\n vertical-align: middle;\n}\n.media-bottom {\n vertical-align: bottom;\n}\n.media-heading {\n margin-top: 0;\n margin-bottom: 5px;\n}\n.media-list {\n padding-left: 0;\n list-style: none;\n}\n.list-group {\n margin-bottom: 20px;\n padding-left: 0;\n}\n.list-group-item {\n position: relative;\n display: block;\n padding: 10px 15px;\n margin-bottom: -1px;\n background-color: #fff;\n border: 1px solid #ddd;\n}\n.list-group-item:first-child {\n border-top-right-radius: 4px;\n border-top-left-radius: 4px;\n}\n.list-group-item:last-child {\n margin-bottom: 0;\n border-bottom-right-radius: 4px;\n border-bottom-left-radius: 4px;\n}\na.list-group-item,\nbutton.list-group-item {\n color: #555;\n}\na.list-group-item .list-group-item-heading,\nbutton.list-group-item .list-group-item-heading {\n color: #333;\n}\na.list-group-item:hover,\nbutton.list-group-item:hover,\na.list-group-item:focus,\nbutton.list-group-item:focus {\n text-decoration: none;\n color: #555;\n background-color: #f5f5f5;\n}\nbutton.list-group-item {\n width: 100%;\n text-align: left;\n}\n.list-group-item.disabled,\n.list-group-item.disabled:hover,\n.list-group-item.disabled:focus {\n background-color: #eeeeee;\n color: #777777;\n cursor: not-allowed;\n}\n.list-group-item.disabled .list-group-item-heading,\n.list-group-item.disabled:hover .list-group-item-heading,\n.list-group-item.disabled:focus .list-group-item-heading {\n color: inherit;\n}\n.list-group-item.disabled .list-group-item-text,\n.list-group-item.disabled:hover .list-group-item-text,\n.list-group-item.disabled:focus .list-group-item-text {\n color: #777777;\n}\n.list-group-item.active,\n.list-group-item.active:hover,\n.list-group-item.active:focus {\n z-index: 2;\n color: #fff;\n background-color: #337ab7;\n border-color: #337ab7;\n}\n.list-group-item.active .list-group-item-heading,\n.list-group-item.active:hover .list-group-item-heading,\n.list-group-item.active:focus .list-group-item-heading,\n.list-group-item.active .list-group-item-heading > small,\n.list-group-item.active:hover .list-group-item-heading > small,\n.list-group-item.active:focus .list-group-item-heading > small,\n.list-group-item.active .list-group-item-heading > .small,\n.list-group-item.active:hover .list-group-item-heading > .small,\n.list-group-item.active:focus .list-group-item-heading > .small {\n color: inherit;\n}\n.list-group-item.active .list-group-item-text,\n.list-group-item.active:hover .list-group-item-text,\n.list-group-item.active:focus .list-group-item-text {\n color: #c7ddef;\n}\n.list-group-item-success {\n color: #3c763d;\n background-color: #dff0d8;\n}\na.list-group-item-success,\nbutton.list-group-item-success {\n color: #3c763d;\n}\na.list-group-item-success .list-group-item-heading,\nbutton.list-group-item-success .list-group-item-heading {\n color: inherit;\n}\na.list-group-item-success:hover,\nbutton.list-group-item-success:hover,\na.list-group-item-success:focus,\nbutton.list-group-item-success:focus {\n color: #3c763d;\n background-color: #d0e9c6;\n}\na.list-group-item-success.active,\nbutton.list-group-item-success.active,\na.list-group-item-success.active:hover,\nbutton.list-group-item-success.active:hover,\na.list-group-item-success.active:focus,\nbutton.list-group-item-success.active:focus {\n color: #fff;\n background-color: #3c763d;\n border-color: #3c763d;\n}\n.list-group-item-info {\n color: #31708f;\n background-color: #d9edf7;\n}\na.list-group-item-info,\nbutton.list-group-item-info {\n color: #31708f;\n}\na.list-group-item-info .list-group-item-heading,\nbutton.list-group-item-info .list-group-item-heading {\n color: inherit;\n}\na.list-group-item-info:hover,\nbutton.list-group-item-info:hover,\na.list-group-item-info:focus,\nbutton.list-group-item-info:focus {\n color: #31708f;\n background-color: #c4e3f3;\n}\na.list-group-item-info.active,\nbutton.list-group-item-info.active,\na.list-group-item-info.active:hover,\nbutton.list-group-item-info.active:hover,\na.list-group-item-info.active:focus,\nbutton.list-group-item-info.active:focus {\n color: #fff;\n background-color: #31708f;\n border-color: #31708f;\n}\n.list-group-item-warning {\n color: #8a6d3b;\n background-color: #fcf8e3;\n}\na.list-group-item-warning,\nbutton.list-group-item-warning {\n color: #8a6d3b;\n}\na.list-group-item-warning .list-group-item-heading,\nbutton.list-group-item-warning .list-group-item-heading {\n color: inherit;\n}\na.list-group-item-warning:hover,\nbutton.list-group-item-warning:hover,\na.list-group-item-warning:focus,\nbutton.list-group-item-warning:focus {\n color: #8a6d3b;\n background-color: #faf2cc;\n}\na.list-group-item-warning.active,\nbutton.list-group-item-warning.active,\na.list-group-item-warning.active:hover,\nbutton.list-group-item-warning.active:hover,\na.list-group-item-warning.active:focus,\nbutton.list-group-item-warning.active:focus {\n color: #fff;\n background-color: #8a6d3b;\n border-color: #8a6d3b;\n}\n.list-group-item-danger {\n color: #a94442;\n background-color: #f2dede;\n}\na.list-group-item-danger,\nbutton.list-group-item-danger {\n color: #a94442;\n}\na.list-group-item-danger .list-group-item-heading,\nbutton.list-group-item-danger .list-group-item-heading {\n color: inherit;\n}\na.list-group-item-danger:hover,\nbutton.list-group-item-danger:hover,\na.list-group-item-danger:focus,\nbutton.list-group-item-danger:focus {\n color: #a94442;\n background-color: #ebcccc;\n}\na.list-group-item-danger.active,\nbutton.list-group-item-danger.active,\na.list-group-item-danger.active:hover,\nbutton.list-group-item-danger.active:hover,\na.list-group-item-danger.active:focus,\nbutton.list-group-item-danger.active:focus {\n color: #fff;\n background-color: #a94442;\n border-color: #a94442;\n}\n.list-group-item-heading {\n margin-top: 0;\n margin-bottom: 5px;\n}\n.list-group-item-text {\n margin-bottom: 0;\n line-height: 1.3;\n}\n.panel {\n margin-bottom: 20px;\n background-color: #fff;\n border: 1px solid transparent;\n border-radius: 4px;\n -webkit-box-shadow: 0 1px 1px rgba(0, 0, 0, 0.05);\n box-shadow: 0 1px 1px rgba(0, 0, 0, 0.05);\n}\n.panel-body {\n padding: 15px;\n}\n.panel-heading {\n padding: 10px 15px;\n border-bottom: 1px solid transparent;\n border-top-right-radius: 3px;\n border-top-left-radius: 3px;\n}\n.panel-heading > .dropdown .dropdown-toggle {\n color: inherit;\n}\n.panel-title {\n margin-top: 0;\n margin-bottom: 0;\n font-size: 16px;\n color: inherit;\n}\n.panel-title > a,\n.panel-title > small,\n.panel-title > .small,\n.panel-title > small > a,\n.panel-title > .small > a {\n color: inherit;\n}\n.panel-footer {\n padding: 10px 15px;\n background-color: #f5f5f5;\n border-top: 1px solid #ddd;\n border-bottom-right-radius: 3px;\n border-bottom-left-radius: 3px;\n}\n.panel > .list-group,\n.panel > .panel-collapse > .list-group {\n margin-bottom: 0;\n}\n.panel > .list-group .list-group-item,\n.panel > .panel-collapse > .list-group .list-group-item {\n border-width: 1px 0;\n border-radius: 0;\n}\n.panel > .list-group:first-child .list-group-item:first-child,\n.panel > .panel-collapse > .list-group:first-child .list-group-item:first-child {\n border-top: 0;\n border-top-right-radius: 3px;\n border-top-left-radius: 3px;\n}\n.panel > .list-group:last-child .list-group-item:last-child,\n.panel > .panel-collapse > .list-group:last-child .list-group-item:last-child {\n border-bottom: 0;\n border-bottom-right-radius: 3px;\n border-bottom-left-radius: 3px;\n}\n.panel > .panel-heading + .panel-collapse > .list-group .list-group-item:first-child {\n border-top-right-radius: 0;\n border-top-left-radius: 0;\n}\n.panel-heading + .list-group .list-group-item:first-child {\n border-top-width: 0;\n}\n.list-group + .panel-footer {\n border-top-width: 0;\n}\n.panel > .table,\n.panel > .table-responsive > .table,\n.panel > .panel-collapse > .table {\n margin-bottom: 0;\n}\n.panel > .table caption,\n.panel > .table-responsive > .table caption,\n.panel > .panel-collapse > .table caption {\n padding-left: 15px;\n padding-right: 15px;\n}\n.panel > .table:first-child,\n.panel > .table-responsive:first-child > .table:first-child {\n border-top-right-radius: 3px;\n border-top-left-radius: 3px;\n}\n.panel > .table:first-child > thead:first-child > tr:first-child,\n.panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child,\n.panel > .table:first-child > tbody:first-child > tr:first-child,\n.panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child {\n border-top-left-radius: 3px;\n border-top-right-radius: 3px;\n}\n.panel > .table:first-child > thead:first-child > tr:first-child td:first-child,\n.panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child td:first-child,\n.panel > .table:first-child > tbody:first-child > tr:first-child td:first-child,\n.panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child td:first-child,\n.panel > .table:first-child > thead:first-child > tr:first-child th:first-child,\n.panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child th:first-child,\n.panel > .table:first-child > tbody:first-child > tr:first-child th:first-child,\n.panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child th:first-child {\n border-top-left-radius: 3px;\n}\n.panel > .table:first-child > thead:first-child > tr:first-child td:last-child,\n.panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child td:last-child,\n.panel > .table:first-child > tbody:first-child > tr:first-child td:last-child,\n.panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child td:last-child,\n.panel > .table:first-child > thead:first-child > tr:first-child th:last-child,\n.panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child th:last-child,\n.panel > .table:first-child > tbody:first-child > tr:first-child th:last-child,\n.panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child th:last-child {\n border-top-right-radius: 3px;\n}\n.panel > .table:last-child,\n.panel > .table-responsive:last-child > .table:last-child {\n border-bottom-right-radius: 3px;\n border-bottom-left-radius: 3px;\n}\n.panel > .table:last-child > tbody:last-child > tr:last-child,\n.panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child,\n.panel > .table:last-child > tfoot:last-child > tr:last-child,\n.panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child {\n border-bottom-left-radius: 3px;\n border-bottom-right-radius: 3px;\n}\n.panel > .table:last-child > tbody:last-child > tr:last-child td:first-child,\n.panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child td:first-child,\n.panel > .table:last-child > tfoot:last-child > tr:last-child td:first-child,\n.panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child td:first-child,\n.panel > .table:last-child > tbody:last-child > tr:last-child th:first-child,\n.panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child th:first-child,\n.panel > .table:last-child > tfoot:last-child > tr:last-child th:first-child,\n.panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child th:first-child {\n border-bottom-left-radius: 3px;\n}\n.panel > .table:last-child > tbody:last-child > tr:last-child td:last-child,\n.panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child td:last-child,\n.panel > .table:last-child > tfoot:last-child > tr:last-child td:last-child,\n.panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child td:last-child,\n.panel > .table:last-child > tbody:last-child > tr:last-child th:last-child,\n.panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child th:last-child,\n.panel > .table:last-child > tfoot:last-child > tr:last-child th:last-child,\n.panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child th:last-child {\n border-bottom-right-radius: 3px;\n}\n.panel > .panel-body + .table,\n.panel > .panel-body + .table-responsive,\n.panel > .table + .panel-body,\n.panel > .table-responsive + .panel-body {\n border-top: 1px solid #ddd;\n}\n.panel > .table > tbody:first-child > tr:first-child th,\n.panel > .table > tbody:first-child > tr:first-child td {\n border-top: 0;\n}\n.panel > .table-bordered,\n.panel > .table-responsive > .table-bordered {\n border: 0;\n}\n.panel > .table-bordered > thead > tr > th:first-child,\n.panel > .table-responsive > .table-bordered > thead > tr > th:first-child,\n.panel > .table-bordered > tbody > tr > th:first-child,\n.panel > .table-responsive > .table-bordered > tbody > tr > th:first-child,\n.panel > .table-bordered > tfoot > tr > th:first-child,\n.panel > .table-responsive > .table-bordered > tfoot > tr > th:first-child,\n.panel > .table-bordered > thead > tr > td:first-child,\n.panel > .table-responsive > .table-bordered > thead > tr > td:first-child,\n.panel > .table-bordered > tbody > tr > td:first-child,\n.panel > .table-responsive > .table-bordered > tbody > tr > td:first-child,\n.panel > .table-bordered > tfoot > tr > td:first-child,\n.panel > .table-responsive > .table-bordered > tfoot > tr > td:first-child {\n border-left: 0;\n}\n.panel > .table-bordered > thead > tr > th:last-child,\n.panel > .table-responsive > .table-bordered > thead > tr > th:last-child,\n.panel > .table-bordered > tbody > tr > th:last-child,\n.panel > .table-responsive > .table-bordered > tbody > tr > th:last-child,\n.panel > .table-bordered > tfoot > tr > th:last-child,\n.panel > .table-responsive > .table-bordered > tfoot > tr > th:last-child,\n.panel > .table-bordered > thead > tr > td:last-child,\n.panel > .table-responsive > .table-bordered > thead > tr > td:last-child,\n.panel > .table-bordered > tbody > tr > td:last-child,\n.panel > .table-responsive > .table-bordered > tbody > tr > td:last-child,\n.panel > .table-bordered > tfoot > tr > td:last-child,\n.panel > .table-responsive > .table-bordered > tfoot > tr > td:last-child {\n border-right: 0;\n}\n.panel > .table-bordered > thead > tr:first-child > td,\n.panel > .table-responsive > .table-bordered > thead > tr:first-child > td,\n.panel > .table-bordered > tbody > tr:first-child > td,\n.panel > .table-responsive > .table-bordered > tbody > tr:first-child > td,\n.panel > .table-bordered > thead > tr:first-child > th,\n.panel > .table-responsive > .table-bordered > thead > tr:first-child > th,\n.panel > .table-bordered > tbody > tr:first-child > th,\n.panel > .table-responsive > .table-bordered > tbody > tr:first-child > th {\n border-bottom: 0;\n}\n.panel > .table-bordered > tbody > tr:last-child > td,\n.panel > .table-responsive > .table-bordered > tbody > tr:last-child > td,\n.panel > .table-bordered > tfoot > tr:last-child > td,\n.panel > .table-responsive > .table-bordered > tfoot > tr:last-child > td,\n.panel > .table-bordered > tbody > tr:last-child > th,\n.panel > .table-responsive > .table-bordered > tbody > tr:last-child > th,\n.panel > .table-bordered > tfoot > tr:last-child > th,\n.panel > .table-responsive > .table-bordered > tfoot > tr:last-child > th {\n border-bottom: 0;\n}\n.panel > .table-responsive {\n border: 0;\n margin-bottom: 0;\n}\n.panel-group {\n margin-bottom: 20px;\n}\n.panel-group .panel {\n margin-bottom: 0;\n border-radius: 4px;\n}\n.panel-group .panel + .panel {\n margin-top: 5px;\n}\n.panel-group .panel-heading {\n border-bottom: 0;\n}\n.panel-group .panel-heading + .panel-collapse > .panel-body,\n.panel-group .panel-heading + .panel-collapse > .list-group {\n border-top: 1px solid #ddd;\n}\n.panel-group .panel-footer {\n border-top: 0;\n}\n.panel-group .panel-footer + .panel-collapse .panel-body {\n border-bottom: 1px solid #ddd;\n}\n.panel-default {\n border-color: #ddd;\n}\n.panel-default > .panel-heading {\n color: #333333;\n background-color: #f5f5f5;\n border-color: #ddd;\n}\n.panel-default > .panel-heading + .panel-collapse > .panel-body {\n border-top-color: #ddd;\n}\n.panel-default > .panel-heading .badge {\n color: #f5f5f5;\n background-color: #333333;\n}\n.panel-default > .panel-footer + .panel-collapse > .panel-body {\n border-bottom-color: #ddd;\n}\n.panel-primary {\n border-color: #337ab7;\n}\n.panel-primary > .panel-heading {\n color: #fff;\n background-color: #337ab7;\n border-color: #337ab7;\n}\n.panel-primary > .panel-heading + .panel-collapse > .panel-body {\n border-top-color: #337ab7;\n}\n.panel-primary > .panel-heading .badge {\n color: #337ab7;\n background-color: #fff;\n}\n.panel-primary > .panel-footer + .panel-collapse > .panel-body {\n border-bottom-color: #337ab7;\n}\n.panel-success {\n border-color: #d6e9c6;\n}\n.panel-success > .panel-heading {\n color: #3c763d;\n background-color: #dff0d8;\n border-color: #d6e9c6;\n}\n.panel-success > .panel-heading + .panel-collapse > .panel-body {\n border-top-color: #d6e9c6;\n}\n.panel-success > .panel-heading .badge {\n color: #dff0d8;\n background-color: #3c763d;\n}\n.panel-success > .panel-footer + .panel-collapse > .panel-body {\n border-bottom-color: #d6e9c6;\n}\n.panel-info {\n border-color: #bce8f1;\n}\n.panel-info > .panel-heading {\n color: #31708f;\n background-color: #d9edf7;\n border-color: #bce8f1;\n}\n.panel-info > .panel-heading + .panel-collapse > .panel-body {\n border-top-color: #bce8f1;\n}\n.panel-info > .panel-heading .badge {\n color: #d9edf7;\n background-color: #31708f;\n}\n.panel-info > .panel-footer + .panel-collapse > .panel-body {\n border-bottom-color: #bce8f1;\n}\n.panel-warning {\n border-color: #faebcc;\n}\n.panel-warning > .panel-heading {\n color: #8a6d3b;\n background-color: #fcf8e3;\n border-color: #faebcc;\n}\n.panel-warning > .panel-heading + .panel-collapse > .panel-body {\n border-top-color: #faebcc;\n}\n.panel-warning > .panel-heading .badge {\n color: #fcf8e3;\n background-color: #8a6d3b;\n}\n.panel-warning > .panel-footer + .panel-collapse > .panel-body {\n border-bottom-color: #faebcc;\n}\n.panel-danger {\n border-color: #ebccd1;\n}\n.panel-danger > .panel-heading {\n color: #a94442;\n background-color: #f2dede;\n border-color: #ebccd1;\n}\n.panel-danger > .panel-heading + .panel-collapse > .panel-body {\n border-top-color: #ebccd1;\n}\n.panel-danger > .panel-heading .badge {\n color: #f2dede;\n background-color: #a94442;\n}\n.panel-danger > .panel-footer + .panel-collapse > .panel-body {\n border-bottom-color: #ebccd1;\n}\n.embed-responsive {\n position: relative;\n display: block;\n height: 0;\n padding: 0;\n overflow: hidden;\n}\n.embed-responsive .embed-responsive-item,\n.embed-responsive iframe,\n.embed-responsive embed,\n.embed-responsive object,\n.embed-responsive video {\n position: absolute;\n top: 0;\n left: 0;\n bottom: 0;\n height: 100%;\n width: 100%;\n border: 0;\n}\n.embed-responsive-16by9 {\n padding-bottom: 56.25%;\n}\n.embed-responsive-4by3 {\n padding-bottom: 75%;\n}\n.well {\n min-height: 20px;\n padding: 19px;\n margin-bottom: 20px;\n background-color: #f5f5f5;\n border: 1px solid #e3e3e3;\n border-radius: 4px;\n -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.05);\n box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.05);\n}\n.well blockquote {\n border-color: #ddd;\n border-color: rgba(0, 0, 0, 0.15);\n}\n.well-lg {\n padding: 24px;\n border-radius: 6px;\n}\n.well-sm {\n padding: 9px;\n border-radius: 3px;\n}\n.close {\n float: right;\n font-size: 21px;\n font-weight: bold;\n line-height: 1;\n color: #000;\n text-shadow: 0 1px 0 #fff;\n opacity: 0.2;\n filter: alpha(opacity=20);\n}\n.close:hover,\n.close:focus {\n color: #000;\n text-decoration: none;\n cursor: pointer;\n opacity: 0.5;\n filter: alpha(opacity=50);\n}\nbutton.close {\n padding: 0;\n cursor: pointer;\n background: transparent;\n border: 0;\n -webkit-appearance: none;\n}\n.modal-open {\n overflow: hidden;\n}\n.modal {\n display: none;\n overflow: hidden;\n position: fixed;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n z-index: 1050;\n -webkit-overflow-scrolling: touch;\n outline: 0;\n}\n.modal.fade .modal-dialog {\n -webkit-transform: translate(0, -25%);\n -ms-transform: translate(0, -25%);\n -o-transform: translate(0, -25%);\n transform: translate(0, -25%);\n -webkit-transition: -webkit-transform 0.3s ease-out;\n -moz-transition: -moz-transform 0.3s ease-out;\n -o-transition: -o-transform 0.3s ease-out;\n transition: transform 0.3s ease-out;\n}\n.modal.in .modal-dialog {\n -webkit-transform: translate(0, 0);\n -ms-transform: translate(0, 0);\n -o-transform: translate(0, 0);\n transform: translate(0, 0);\n}\n.modal-open .modal {\n overflow-x: hidden;\n overflow-y: auto;\n}\n.modal-dialog {\n position: relative;\n width: auto;\n margin: 10px;\n}\n.modal-content {\n position: relative;\n background-color: #fff;\n border: 1px solid #999;\n border: 1px solid rgba(0, 0, 0, 0.2);\n border-radius: 6px;\n -webkit-box-shadow: 0 3px 9px rgba(0, 0, 0, 0.5);\n box-shadow: 0 3px 9px rgba(0, 0, 0, 0.5);\n background-clip: padding-box;\n outline: 0;\n}\n.modal-backdrop {\n position: fixed;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n z-index: 1040;\n background-color: #000;\n}\n.modal-backdrop.fade {\n opacity: 0;\n filter: alpha(opacity=0);\n}\n.modal-backdrop.in {\n opacity: 0.5;\n filter: alpha(opacity=50);\n}\n.modal-header {\n padding: 15px;\n border-bottom: 1px solid #e5e5e5;\n}\n.modal-header .close {\n margin-top: -2px;\n}\n.modal-title {\n margin: 0;\n line-height: 1.42857143;\n}\n.modal-body {\n position: relative;\n padding: 15px;\n}\n.modal-footer {\n padding: 15px;\n text-align: right;\n border-top: 1px solid #e5e5e5;\n}\n.modal-footer .btn + .btn {\n margin-left: 5px;\n margin-bottom: 0;\n}\n.modal-footer .btn-group .btn + .btn {\n margin-left: -1px;\n}\n.modal-footer .btn-block + .btn-block {\n margin-left: 0;\n}\n.modal-scrollbar-measure {\n position: absolute;\n top: -9999px;\n width: 50px;\n height: 50px;\n overflow: scroll;\n}\n@media (min-width: 768px) {\n .modal-dialog {\n width: 600px;\n margin: 30px auto;\n }\n .modal-content {\n -webkit-box-shadow: 0 5px 15px rgba(0, 0, 0, 0.5);\n box-shadow: 0 5px 15px rgba(0, 0, 0, 0.5);\n }\n .modal-sm {\n width: 300px;\n }\n}\n@media (min-width: 992px) {\n .modal-lg {\n width: 900px;\n }\n}\n.tooltip {\n position: absolute;\n z-index: 1070;\n display: block;\n font-family: \"Helvetica Neue\", Helvetica, Arial, sans-serif;\n font-style: normal;\n font-weight: normal;\n letter-spacing: normal;\n line-break: auto;\n line-height: 1.42857143;\n text-align: left;\n text-align: start;\n text-decoration: none;\n text-shadow: none;\n text-transform: none;\n white-space: normal;\n word-break: normal;\n word-spacing: normal;\n word-wrap: normal;\n font-size: 12px;\n opacity: 0;\n filter: alpha(opacity=0);\n}\n.tooltip.in {\n opacity: 0.9;\n filter: alpha(opacity=90);\n}\n.tooltip.top {\n margin-top: -3px;\n padding: 5px 0;\n}\n.tooltip.right {\n margin-left: 3px;\n padding: 0 5px;\n}\n.tooltip.bottom {\n margin-top: 3px;\n padding: 5px 0;\n}\n.tooltip.left {\n margin-left: -3px;\n padding: 0 5px;\n}\n.tooltip-inner {\n max-width: 200px;\n padding: 3px 8px;\n color: #fff;\n text-align: center;\n background-color: #000;\n border-radius: 4px;\n}\n.tooltip-arrow {\n position: absolute;\n width: 0;\n height: 0;\n border-color: transparent;\n border-style: solid;\n}\n.tooltip.top .tooltip-arrow {\n bottom: 0;\n left: 50%;\n margin-left: -5px;\n border-width: 5px 5px 0;\n border-top-color: #000;\n}\n.tooltip.top-left .tooltip-arrow {\n bottom: 0;\n right: 5px;\n margin-bottom: -5px;\n border-width: 5px 5px 0;\n border-top-color: #000;\n}\n.tooltip.top-right .tooltip-arrow {\n bottom: 0;\n left: 5px;\n margin-bottom: -5px;\n border-width: 5px 5px 0;\n border-top-color: #000;\n}\n.tooltip.right .tooltip-arrow {\n top: 50%;\n left: 0;\n margin-top: -5px;\n border-width: 5px 5px 5px 0;\n border-right-color: #000;\n}\n.tooltip.left .tooltip-arrow {\n top: 50%;\n right: 0;\n margin-top: -5px;\n border-width: 5px 0 5px 5px;\n border-left-color: #000;\n}\n.tooltip.bottom .tooltip-arrow {\n top: 0;\n left: 50%;\n margin-left: -5px;\n border-width: 0 5px 5px;\n border-bottom-color: #000;\n}\n.tooltip.bottom-left .tooltip-arrow {\n top: 0;\n right: 5px;\n margin-top: -5px;\n border-width: 0 5px 5px;\n border-bottom-color: #000;\n}\n.tooltip.bottom-right .tooltip-arrow {\n top: 0;\n left: 5px;\n margin-top: -5px;\n border-width: 0 5px 5px;\n border-bottom-color: #000;\n}\n.popover {\n position: absolute;\n top: 0;\n left: 0;\n z-index: 1060;\n display: none;\n max-width: 276px;\n padding: 1px;\n font-family: \"Helvetica Neue\", Helvetica, Arial, sans-serif;\n font-style: normal;\n font-weight: normal;\n letter-spacing: normal;\n line-break: auto;\n line-height: 1.42857143;\n text-align: left;\n text-align: start;\n text-decoration: none;\n text-shadow: none;\n text-transform: none;\n white-space: normal;\n word-break: normal;\n word-spacing: normal;\n word-wrap: normal;\n font-size: 14px;\n background-color: #fff;\n background-clip: padding-box;\n border: 1px solid #ccc;\n border: 1px solid rgba(0, 0, 0, 0.2);\n border-radius: 6px;\n -webkit-box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2);\n box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2);\n}\n.popover.top {\n margin-top: -10px;\n}\n.popover.right {\n margin-left: 10px;\n}\n.popover.bottom {\n margin-top: 10px;\n}\n.popover.left {\n margin-left: -10px;\n}\n.popover-title {\n margin: 0;\n padding: 8px 14px;\n font-size: 14px;\n background-color: #f7f7f7;\n border-bottom: 1px solid #ebebeb;\n border-radius: 5px 5px 0 0;\n}\n.popover-content {\n padding: 9px 14px;\n}\n.popover > .arrow,\n.popover > .arrow:after {\n position: absolute;\n display: block;\n width: 0;\n height: 0;\n border-color: transparent;\n border-style: solid;\n}\n.popover > .arrow {\n border-width: 11px;\n}\n.popover > .arrow:after {\n border-width: 10px;\n content: \"\";\n}\n.popover.top > .arrow {\n left: 50%;\n margin-left: -11px;\n border-bottom-width: 0;\n border-top-color: #999999;\n border-top-color: rgba(0, 0, 0, 0.25);\n bottom: -11px;\n}\n.popover.top > .arrow:after {\n content: \" \";\n bottom: 1px;\n margin-left: -10px;\n border-bottom-width: 0;\n border-top-color: #fff;\n}\n.popover.right > .arrow {\n top: 50%;\n left: -11px;\n margin-top: -11px;\n border-left-width: 0;\n border-right-color: #999999;\n border-right-color: rgba(0, 0, 0, 0.25);\n}\n.popover.right > .arrow:after {\n content: \" \";\n left: 1px;\n bottom: -10px;\n border-left-width: 0;\n border-right-color: #fff;\n}\n.popover.bottom > .arrow {\n left: 50%;\n margin-left: -11px;\n border-top-width: 0;\n border-bottom-color: #999999;\n border-bottom-color: rgba(0, 0, 0, 0.25);\n top: -11px;\n}\n.popover.bottom > .arrow:after {\n content: \" \";\n top: 1px;\n margin-left: -10px;\n border-top-width: 0;\n border-bottom-color: #fff;\n}\n.popover.left > .arrow {\n top: 50%;\n right: -11px;\n margin-top: -11px;\n border-right-width: 0;\n border-left-color: #999999;\n border-left-color: rgba(0, 0, 0, 0.25);\n}\n.popover.left > .arrow:after {\n content: \" \";\n right: 1px;\n border-right-width: 0;\n border-left-color: #fff;\n bottom: -10px;\n}\n.carousel {\n position: relative;\n}\n.carousel-inner {\n position: relative;\n overflow: hidden;\n width: 100%;\n}\n.carousel-inner > .item {\n display: none;\n position: relative;\n -webkit-transition: 0.6s ease-in-out left;\n -o-transition: 0.6s ease-in-out left;\n transition: 0.6s ease-in-out left;\n}\n.carousel-inner > .item > img,\n.carousel-inner > .item > a > img {\n line-height: 1;\n}\n@media all and (transform-3d), (-webkit-transform-3d) {\n .carousel-inner > .item {\n -webkit-transition: -webkit-transform 0.6s ease-in-out;\n -moz-transition: -moz-transform 0.6s ease-in-out;\n -o-transition: -o-transform 0.6s ease-in-out;\n transition: transform 0.6s ease-in-out;\n -webkit-backface-visibility: hidden;\n -moz-backface-visibility: hidden;\n backface-visibility: hidden;\n -webkit-perspective: 1000px;\n -moz-perspective: 1000px;\n perspective: 1000px;\n }\n .carousel-inner > .item.next,\n .carousel-inner > .item.active.right {\n -webkit-transform: translate3d(100%, 0, 0);\n transform: translate3d(100%, 0, 0);\n left: 0;\n }\n .carousel-inner > .item.prev,\n .carousel-inner > .item.active.left {\n -webkit-transform: translate3d(-100%, 0, 0);\n transform: translate3d(-100%, 0, 0);\n left: 0;\n }\n .carousel-inner > .item.next.left,\n .carousel-inner > .item.prev.right,\n .carousel-inner > .item.active {\n -webkit-transform: translate3d(0, 0, 0);\n transform: translate3d(0, 0, 0);\n left: 0;\n }\n}\n.carousel-inner > .active,\n.carousel-inner > .next,\n.carousel-inner > .prev {\n display: block;\n}\n.carousel-inner > .active {\n left: 0;\n}\n.carousel-inner > .next,\n.carousel-inner > .prev {\n position: absolute;\n top: 0;\n width: 100%;\n}\n.carousel-inner > .next {\n left: 100%;\n}\n.carousel-inner > .prev {\n left: -100%;\n}\n.carousel-inner > .next.left,\n.carousel-inner > .prev.right {\n left: 0;\n}\n.carousel-inner > .active.left {\n left: -100%;\n}\n.carousel-inner > .active.right {\n left: 100%;\n}\n.carousel-control {\n position: absolute;\n top: 0;\n left: 0;\n bottom: 0;\n width: 15%;\n opacity: 0.5;\n filter: alpha(opacity=50);\n font-size: 20px;\n color: #fff;\n text-align: center;\n text-shadow: 0 1px 2px rgba(0, 0, 0, 0.6);\n background-color: rgba(0, 0, 0, 0);\n}\n.carousel-control.left {\n background-image: -webkit-linear-gradient(left, rgba(0, 0, 0, 0.5) 0%, rgba(0, 0, 0, 0.0001) 100%);\n background-image: -o-linear-gradient(left, rgba(0, 0, 0, 0.5) 0%, rgba(0, 0, 0, 0.0001) 100%);\n background-image: linear-gradient(to right, rgba(0, 0, 0, 0.5) 0%, rgba(0, 0, 0, 0.0001) 100%);\n background-repeat: repeat-x;\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#80000000', endColorstr='#00000000', GradientType=1);\n}\n.carousel-control.right {\n left: auto;\n right: 0;\n background-image: -webkit-linear-gradient(left, rgba(0, 0, 0, 0.0001) 0%, rgba(0, 0, 0, 0.5) 100%);\n background-image: -o-linear-gradient(left, rgba(0, 0, 0, 0.0001) 0%, rgba(0, 0, 0, 0.5) 100%);\n background-image: linear-gradient(to right, rgba(0, 0, 0, 0.0001) 0%, rgba(0, 0, 0, 0.5) 100%);\n background-repeat: repeat-x;\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#00000000', endColorstr='#80000000', GradientType=1);\n}\n.carousel-control:hover,\n.carousel-control:focus {\n outline: 0;\n color: #fff;\n text-decoration: none;\n opacity: 0.9;\n filter: alpha(opacity=90);\n}\n.carousel-control .icon-prev,\n.carousel-control .icon-next,\n.carousel-control .glyphicon-chevron-left,\n.carousel-control .glyphicon-chevron-right {\n position: absolute;\n top: 50%;\n margin-top: -10px;\n z-index: 5;\n display: inline-block;\n}\n.carousel-control .icon-prev,\n.carousel-control .glyphicon-chevron-left {\n left: 50%;\n margin-left: -10px;\n}\n.carousel-control .icon-next,\n.carousel-control .glyphicon-chevron-right {\n right: 50%;\n margin-right: -10px;\n}\n.carousel-control .icon-prev,\n.carousel-control .icon-next {\n width: 20px;\n height: 20px;\n line-height: 1;\n font-family: serif;\n}\n.carousel-control .icon-prev:before {\n content: '\\2039';\n}\n.carousel-control .icon-next:before {\n content: '\\203a';\n}\n.carousel-indicators {\n position: absolute;\n bottom: 10px;\n left: 50%;\n z-index: 15;\n width: 60%;\n margin-left: -30%;\n padding-left: 0;\n list-style: none;\n text-align: center;\n}\n.carousel-indicators li {\n display: inline-block;\n width: 10px;\n height: 10px;\n margin: 1px;\n text-indent: -999px;\n border: 1px solid #fff;\n border-radius: 10px;\n cursor: pointer;\n background-color: #000 \\9;\n background-color: rgba(0, 0, 0, 0);\n}\n.carousel-indicators .active {\n margin: 0;\n width: 12px;\n height: 12px;\n background-color: #fff;\n}\n.carousel-caption {\n position: absolute;\n left: 15%;\n right: 15%;\n bottom: 20px;\n z-index: 10;\n padding-top: 20px;\n padding-bottom: 20px;\n color: #fff;\n text-align: center;\n text-shadow: 0 1px 2px rgba(0, 0, 0, 0.6);\n}\n.carousel-caption .btn {\n text-shadow: none;\n}\n@media screen and (min-width: 768px) {\n .carousel-control .glyphicon-chevron-left,\n .carousel-control .glyphicon-chevron-right,\n .carousel-control .icon-prev,\n .carousel-control .icon-next {\n width: 30px;\n height: 30px;\n margin-top: -10px;\n font-size: 30px;\n }\n .carousel-control .glyphicon-chevron-left,\n .carousel-control .icon-prev {\n margin-left: -10px;\n }\n .carousel-control .glyphicon-chevron-right,\n .carousel-control .icon-next {\n margin-right: -10px;\n }\n .carousel-caption {\n left: 20%;\n right: 20%;\n padding-bottom: 30px;\n }\n .carousel-indicators {\n bottom: 20px;\n }\n}\n.clearfix:before,\n.clearfix:after,\n.dl-horizontal dd:before,\n.dl-horizontal dd:after,\n.container:before,\n.container:after,\n.container-fluid:before,\n.container-fluid:after,\n.row:before,\n.row:after,\n.form-horizontal .form-group:before,\n.form-horizontal .form-group:after,\n.btn-toolbar:before,\n.btn-toolbar:after,\n.btn-group-vertical > .btn-group:before,\n.btn-group-vertical > .btn-group:after,\n.nav:before,\n.nav:after,\n.navbar:before,\n.navbar:after,\n.navbar-header:before,\n.navbar-header:after,\n.navbar-collapse:before,\n.navbar-collapse:after,\n.pager:before,\n.pager:after,\n.panel-body:before,\n.panel-body:after,\n.modal-header:before,\n.modal-header:after,\n.modal-footer:before,\n.modal-footer:after {\n content: \" \";\n display: table;\n}\n.clearfix:after,\n.dl-horizontal dd:after,\n.container:after,\n.container-fluid:after,\n.row:after,\n.form-horizontal .form-group:after,\n.btn-toolbar:after,\n.btn-group-vertical > .btn-group:after,\n.nav:after,\n.navbar:after,\n.navbar-header:after,\n.navbar-collapse:after,\n.pager:after,\n.panel-body:after,\n.modal-header:after,\n.modal-footer:after {\n clear: both;\n}\n.center-block {\n display: block;\n margin-left: auto;\n margin-right: auto;\n}\n.pull-right {\n float: right !important;\n}\n.pull-left {\n float: left !important;\n}\n.hide {\n display: none !important;\n}\n.show {\n display: block !important;\n}\n.invisible {\n visibility: hidden;\n}\n.text-hide {\n font: 0/0 a;\n color: transparent;\n text-shadow: none;\n background-color: transparent;\n border: 0;\n}\n.hidden {\n display: none !important;\n}\n.affix {\n position: fixed;\n}\n@-ms-viewport {\n width: device-width;\n}\n.visible-xs,\n.visible-sm,\n.visible-md,\n.visible-lg {\n display: none !important;\n}\n.visible-xs-block,\n.visible-xs-inline,\n.visible-xs-inline-block,\n.visible-sm-block,\n.visible-sm-inline,\n.visible-sm-inline-block,\n.visible-md-block,\n.visible-md-inline,\n.visible-md-inline-block,\n.visible-lg-block,\n.visible-lg-inline,\n.visible-lg-inline-block {\n display: none !important;\n}\n@media (max-width: 767px) {\n .visible-xs {\n display: block !important;\n }\n table.visible-xs {\n display: table !important;\n }\n tr.visible-xs {\n display: table-row !important;\n }\n th.visible-xs,\n td.visible-xs {\n display: table-cell !important;\n }\n}\n@media (max-width: 767px) {\n .visible-xs-block {\n display: block !important;\n }\n}\n@media (max-width: 767px) {\n .visible-xs-inline {\n display: inline !important;\n }\n}\n@media (max-width: 767px) {\n .visible-xs-inline-block {\n display: inline-block !important;\n }\n}\n@media (min-width: 768px) and (max-width: 991px) {\n .visible-sm {\n display: block !important;\n }\n table.visible-sm {\n display: table !important;\n }\n tr.visible-sm {\n display: table-row !important;\n }\n th.visible-sm,\n td.visible-sm {\n display: table-cell !important;\n }\n}\n@media (min-width: 768px) and (max-width: 991px) {\n .visible-sm-block {\n display: block !important;\n }\n}\n@media (min-width: 768px) and (max-width: 991px) {\n .visible-sm-inline {\n display: inline !important;\n }\n}\n@media (min-width: 768px) and (max-width: 991px) {\n .visible-sm-inline-block {\n display: inline-block !important;\n }\n}\n@media (min-width: 992px) and (max-width: 1199px) {\n .visible-md {\n display: block !important;\n }\n table.visible-md {\n display: table !important;\n }\n tr.visible-md {\n display: table-row !important;\n }\n th.visible-md,\n td.visible-md {\n display: table-cell !important;\n }\n}\n@media (min-width: 992px) and (max-width: 1199px) {\n .visible-md-block {\n display: block !important;\n }\n}\n@media (min-width: 992px) and (max-width: 1199px) {\n .visible-md-inline {\n display: inline !important;\n }\n}\n@media (min-width: 992px) and (max-width: 1199px) {\n .visible-md-inline-block {\n display: inline-block !important;\n }\n}\n@media (min-width: 1200px) {\n .visible-lg {\n display: block !important;\n }\n table.visible-lg {\n display: table !important;\n }\n tr.visible-lg {\n display: table-row !important;\n }\n th.visible-lg,\n td.visible-lg {\n display: table-cell !important;\n }\n}\n@media (min-width: 1200px) {\n .visible-lg-block {\n display: block !important;\n }\n}\n@media (min-width: 1200px) {\n .visible-lg-inline {\n display: inline !important;\n }\n}\n@media (min-width: 1200px) {\n .visible-lg-inline-block {\n display: inline-block !important;\n }\n}\n@media (max-width: 767px) {\n .hidden-xs {\n display: none !important;\n }\n}\n@media (min-width: 768px) and (max-width: 991px) {\n .hidden-sm {\n display: none !important;\n }\n}\n@media (min-width: 992px) and (max-width: 1199px) {\n .hidden-md {\n display: none !important;\n }\n}\n@media (min-width: 1200px) {\n .hidden-lg {\n display: none !important;\n }\n}\n.visible-print {\n display: none !important;\n}\n@media print {\n .visible-print {\n display: block !important;\n }\n table.visible-print {\n display: table !important;\n }\n tr.visible-print {\n display: table-row !important;\n }\n th.visible-print,\n td.visible-print {\n display: table-cell !important;\n }\n}\n.visible-print-block {\n display: none !important;\n}\n@media print {\n .visible-print-block {\n display: block !important;\n }\n}\n.visible-print-inline {\n display: none !important;\n}\n@media print {\n .visible-print-inline {\n display: inline !important;\n }\n}\n.visible-print-inline-block {\n display: none !important;\n}\n@media print {\n .visible-print-inline-block {\n display: inline-block !important;\n }\n}\n@media print {\n .hidden-print {\n display: none !important;\n }\n}\n/*# sourceMappingURL=bootstrap.css.map */","/*! normalize.css v3.0.3 | MIT License | github.com/necolas/normalize.css */\n\n//\n// 1. Set default font family to sans-serif.\n// 2. Prevent iOS and IE text size adjust after device orientation change,\n// without disabling user zoom.\n//\n\nhtml {\n font-family: sans-serif; // 1\n -ms-text-size-adjust: 100%; // 2\n -webkit-text-size-adjust: 100%; // 2\n}\n\n//\n// Remove default margin.\n//\n\nbody {\n margin: 0;\n}\n\n// HTML5 display definitions\n// ==========================================================================\n\n//\n// Correct `block` display not defined for any HTML5 element in IE 8/9.\n// Correct `block` display not defined for `details` or `summary` in IE 10/11\n// and Firefox.\n// Correct `block` display not defined for `main` in IE 11.\n//\n\narticle,\naside,\ndetails,\nfigcaption,\nfigure,\nfooter,\nheader,\nhgroup,\nmain,\nmenu,\nnav,\nsection,\nsummary {\n display: block;\n}\n\n//\n// 1. Correct `inline-block` display not defined in IE 8/9.\n// 2. Normalize vertical alignment of `progress` in Chrome, Firefox, and Opera.\n//\n\naudio,\ncanvas,\nprogress,\nvideo {\n display: inline-block; // 1\n vertical-align: baseline; // 2\n}\n\n//\n// Prevent modern browsers from displaying `audio` without controls.\n// Remove excess height in iOS 5 devices.\n//\n\naudio:not([controls]) {\n display: none;\n height: 0;\n}\n\n//\n// Address `[hidden]` styling not present in IE 8/9/10.\n// Hide the `template` element in IE 8/9/10/11, Safari, and Firefox < 22.\n//\n\n[hidden],\ntemplate {\n display: none;\n}\n\n// Links\n// ==========================================================================\n\n//\n// Remove the gray background color from active links in IE 10.\n//\n\na {\n background-color: transparent;\n}\n\n//\n// Improve readability of focused elements when they are also in an\n// active/hover state.\n//\n\na:active,\na:hover {\n outline: 0;\n}\n\n// Text-level semantics\n// ==========================================================================\n\n//\n// Address styling not present in IE 8/9/10/11, Safari, and Chrome.\n//\n\nabbr[title] {\n border-bottom: 1px dotted;\n}\n\n//\n// Address style set to `bolder` in Firefox 4+, Safari, and Chrome.\n//\n\nb,\nstrong {\n font-weight: bold;\n}\n\n//\n// Address styling not present in Safari and Chrome.\n//\n\ndfn {\n font-style: italic;\n}\n\n//\n// Address variable `h1` font-size and margin within `section` and `article`\n// contexts in Firefox 4+, Safari, and Chrome.\n//\n\nh1 {\n font-size: 2em;\n margin: 0.67em 0;\n}\n\n//\n// Address styling not present in IE 8/9.\n//\n\nmark {\n background: #ff0;\n color: #000;\n}\n\n//\n// Address inconsistent and variable font size in all browsers.\n//\n\nsmall {\n font-size: 80%;\n}\n\n//\n// Prevent `sub` and `sup` affecting `line-height` in all browsers.\n//\n\nsub,\nsup {\n font-size: 75%;\n line-height: 0;\n position: relative;\n vertical-align: baseline;\n}\n\nsup {\n top: -0.5em;\n}\n\nsub {\n bottom: -0.25em;\n}\n\n// Embedded content\n// ==========================================================================\n\n//\n// Remove border when inside `a` element in IE 8/9/10.\n//\n\nimg {\n border: 0;\n}\n\n//\n// Correct overflow not hidden in IE 9/10/11.\n//\n\nsvg:not(:root) {\n overflow: hidden;\n}\n\n// Grouping content\n// ==========================================================================\n\n//\n// Address margin not present in IE 8/9 and Safari.\n//\n\nfigure {\n margin: 1em 40px;\n}\n\n//\n// Address differences between Firefox and other browsers.\n//\n\nhr {\n box-sizing: content-box;\n height: 0;\n}\n\n//\n// Contain overflow in all browsers.\n//\n\npre {\n overflow: auto;\n}\n\n//\n// Address odd `em`-unit font size rendering in all browsers.\n//\n\ncode,\nkbd,\npre,\nsamp {\n font-family: monospace, monospace;\n font-size: 1em;\n}\n\n// Forms\n// ==========================================================================\n\n//\n// Known limitation: by default, Chrome and Safari on OS X allow very limited\n// styling of `select`, unless a `border` property is set.\n//\n\n//\n// 1. Correct color not being inherited.\n// Known issue: affects color of disabled elements.\n// 2. Correct font properties not being inherited.\n// 3. Address margins set differently in Firefox 4+, Safari, and Chrome.\n//\n\nbutton,\ninput,\noptgroup,\nselect,\ntextarea {\n color: inherit; // 1\n font: inherit; // 2\n margin: 0; // 3\n}\n\n//\n// Address `overflow` set to `hidden` in IE 8/9/10/11.\n//\n\nbutton {\n overflow: visible;\n}\n\n//\n// Address inconsistent `text-transform` inheritance for `button` and `select`.\n// All other form control elements do not inherit `text-transform` values.\n// Correct `button` style inheritance in Firefox, IE 8/9/10/11, and Opera.\n// Correct `select` style inheritance in Firefox.\n//\n\nbutton,\nselect {\n text-transform: none;\n}\n\n//\n// 1. Avoid the WebKit bug in Android 4.0.* where (2) destroys native `audio`\n// and `video` controls.\n// 2. Correct inability to style clickable `input` types in iOS.\n// 3. Improve usability and consistency of cursor style between image-type\n// `input` and others.\n//\n\nbutton,\nhtml input[type=\"button\"], // 1\ninput[type=\"reset\"],\ninput[type=\"submit\"] {\n -webkit-appearance: button; // 2\n cursor: pointer; // 3\n}\n\n//\n// Re-set default cursor for disabled elements.\n//\n\nbutton[disabled],\nhtml input[disabled] {\n cursor: default;\n}\n\n//\n// Remove inner padding and border in Firefox 4+.\n//\n\nbutton::-moz-focus-inner,\ninput::-moz-focus-inner {\n border: 0;\n padding: 0;\n}\n\n//\n// Address Firefox 4+ setting `line-height` on `input` using `!important` in\n// the UA stylesheet.\n//\n\ninput {\n line-height: normal;\n}\n\n//\n// It's recommended that you don't attempt to style these elements.\n// Firefox's implementation doesn't respect box-sizing, padding, or width.\n//\n// 1. Address box sizing set to `content-box` in IE 8/9/10.\n// 2. Remove excess padding in IE 8/9/10.\n//\n\ninput[type=\"checkbox\"],\ninput[type=\"radio\"] {\n box-sizing: border-box; // 1\n padding: 0; // 2\n}\n\n//\n// Fix the cursor style for Chrome's increment/decrement buttons. For certain\n// `font-size` values of the `input`, it causes the cursor style of the\n// decrement button to change from `default` to `text`.\n//\n\ninput[type=\"number\"]::-webkit-inner-spin-button,\ninput[type=\"number\"]::-webkit-outer-spin-button {\n height: auto;\n}\n\n//\n// 1. Address `appearance` set to `searchfield` in Safari and Chrome.\n// 2. Address `box-sizing` set to `border-box` in Safari and Chrome.\n//\n\ninput[type=\"search\"] {\n -webkit-appearance: textfield; // 1\n box-sizing: content-box; //2\n}\n\n//\n// Remove inner padding and search cancel button in Safari and Chrome on OS X.\n// Safari (but not Chrome) clips the cancel button when the search input has\n// padding (and `textfield` appearance).\n//\n\ninput[type=\"search\"]::-webkit-search-cancel-button,\ninput[type=\"search\"]::-webkit-search-decoration {\n -webkit-appearance: none;\n}\n\n//\n// Define consistent border, margin, and padding.\n//\n\nfieldset {\n border: 1px solid #c0c0c0;\n margin: 0 2px;\n padding: 0.35em 0.625em 0.75em;\n}\n\n//\n// 1. Correct `color` not being inherited in IE 8/9/10/11.\n// 2. Remove padding so people aren't caught out if they zero out fieldsets.\n//\n\nlegend {\n border: 0; // 1\n padding: 0; // 2\n}\n\n//\n// Remove default vertical scrollbar in IE 8/9/10/11.\n//\n\ntextarea {\n overflow: auto;\n}\n\n//\n// Don't inherit the `font-weight` (applied by a rule above).\n// NOTE: the default cannot safely be changed in Chrome and Safari on OS X.\n//\n\noptgroup {\n font-weight: bold;\n}\n\n// Tables\n// ==========================================================================\n\n//\n// Remove most spacing between table cells.\n//\n\ntable {\n border-collapse: collapse;\n border-spacing: 0;\n}\n\ntd,\nth {\n padding: 0;\n}\n","/*! Source: https://github.com/h5bp/html5-boilerplate/blob/master/src/css/main.css */\n\n// ==========================================================================\n// Print styles.\n// Inlined to avoid the additional HTTP request: h5bp.com/r\n// ==========================================================================\n\n@media print {\n *,\n *:before,\n *:after {\n background: transparent !important;\n color: #000 !important; // Black prints faster: h5bp.com/s\n box-shadow: none !important;\n text-shadow: none !important;\n }\n\n a,\n a:visited {\n text-decoration: underline;\n }\n\n a[href]:after {\n content: \" (\" attr(href) \")\";\n }\n\n abbr[title]:after {\n content: \" (\" attr(title) \")\";\n }\n\n // Don't show links that are fragment identifiers,\n // or use the `javascript:` pseudo protocol\n a[href^=\"#\"]:after,\n a[href^=\"javascript:\"]:after {\n content: \"\";\n }\n\n pre,\n blockquote {\n border: 1px solid #999;\n page-break-inside: avoid;\n }\n\n thead {\n display: table-header-group; // h5bp.com/t\n }\n\n tr,\n img {\n page-break-inside: avoid;\n }\n\n img {\n max-width: 100% !important;\n }\n\n p,\n h2,\n h3 {\n orphans: 3;\n widows: 3;\n }\n\n h2,\n h3 {\n page-break-after: avoid;\n }\n\n // Bootstrap specific changes start\n\n // Bootstrap components\n .navbar {\n display: none;\n }\n .btn,\n .dropup > .btn {\n > .caret {\n border-top-color: #000 !important;\n }\n }\n .label {\n border: 1px solid #000;\n }\n\n .table {\n border-collapse: collapse !important;\n\n td,\n th {\n background-color: #fff !important;\n }\n }\n .table-bordered {\n th,\n td {\n border: 1px solid #ddd !important;\n }\n }\n\n // Bootstrap specific changes end\n}\n","//\n// Glyphicons for Bootstrap\n//\n// Since icons are fonts, they can be placed anywhere text is placed and are\n// thus automatically sized to match the surrounding child. To use, create an\n// inline element with the appropriate classes, like so:\n//\n// <a href=\"#\"><span class=\"glyphicon glyphicon-star\"></span> Star</a>\n\n// Import the fonts\n@font-face {\n font-family: 'Glyphicons Halflings';\n src: url('@{icon-font-path}@{icon-font-name}.eot');\n src: url('@{icon-font-path}@{icon-font-name}.eot?#iefix') format('embedded-opentype'),\n url('@{icon-font-path}@{icon-font-name}.woff2') format('woff2'),\n url('@{icon-font-path}@{icon-font-name}.woff') format('woff'),\n url('@{icon-font-path}@{icon-font-name}.ttf') format('truetype'),\n url('@{icon-font-path}@{icon-font-name}.svg#@{icon-font-svg-id}') format('svg');\n}\n\n// Catchall baseclass\n.glyphicon {\n position: relative;\n top: 1px;\n display: inline-block;\n font-family: 'Glyphicons Halflings';\n font-style: normal;\n font-weight: normal;\n line-height: 1;\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale;\n}\n\n// Individual icons\n.glyphicon-asterisk { &:before { content: \"\\002a\"; } }\n.glyphicon-plus { &:before { content: \"\\002b\"; } }\n.glyphicon-euro,\n.glyphicon-eur { &:before { content: \"\\20ac\"; } }\n.glyphicon-minus { &:before { content: \"\\2212\"; } }\n.glyphicon-cloud { &:before { content: \"\\2601\"; } }\n.glyphicon-envelope { &:before { content: \"\\2709\"; } }\n.glyphicon-pencil { &:before { content: \"\\270f\"; } }\n.glyphicon-glass { &:before { content: \"\\e001\"; } }\n.glyphicon-music { &:before { content: \"\\e002\"; } }\n.glyphicon-search { &:before { content: \"\\e003\"; } }\n.glyphicon-heart { &:before { content: \"\\e005\"; } }\n.glyphicon-star { &:before { content: \"\\e006\"; } }\n.glyphicon-star-empty { &:before { content: \"\\e007\"; } }\n.glyphicon-user { &:before { content: \"\\e008\"; } }\n.glyphicon-film { &:before { content: \"\\e009\"; } }\n.glyphicon-th-large { &:before { content: \"\\e010\"; } }\n.glyphicon-th { &:before { content: \"\\e011\"; } }\n.glyphicon-th-list { &:before { content: \"\\e012\"; } }\n.glyphicon-ok { &:before { content: \"\\e013\"; } }\n.glyphicon-remove { &:before { content: \"\\e014\"; } }\n.glyphicon-zoom-in { &:before { content: \"\\e015\"; } }\n.glyphicon-zoom-out { &:before { content: \"\\e016\"; } }\n.glyphicon-off { &:before { content: \"\\e017\"; } }\n.glyphicon-signal { &:before { content: \"\\e018\"; } }\n.glyphicon-cog { &:before { content: \"\\e019\"; } }\n.glyphicon-trash { &:before { content: \"\\e020\"; } }\n.glyphicon-home { &:before { content: \"\\e021\"; } }\n.glyphicon-file { &:before { content: \"\\e022\"; } }\n.glyphicon-time { &:before { content: \"\\e023\"; } }\n.glyphicon-road { &:before { content: \"\\e024\"; } }\n.glyphicon-download-alt { &:before { content: \"\\e025\"; } }\n.glyphicon-download { &:before { content: \"\\e026\"; } }\n.glyphicon-upload { &:before { content: \"\\e027\"; } }\n.glyphicon-inbox { &:before { content: \"\\e028\"; } }\n.glyphicon-play-circle { &:before { content: \"\\e029\"; } }\n.glyphicon-repeat { &:before { content: \"\\e030\"; } }\n.glyphicon-refresh { &:before { content: \"\\e031\"; } }\n.glyphicon-list-alt { &:before { content: \"\\e032\"; } }\n.glyphicon-lock { &:before { content: \"\\e033\"; } }\n.glyphicon-flag { &:before { content: \"\\e034\"; } }\n.glyphicon-headphones { &:before { content: \"\\e035\"; } }\n.glyphicon-volume-off { &:before { content: \"\\e036\"; } }\n.glyphicon-volume-down { &:before { content: \"\\e037\"; } }\n.glyphicon-volume-up { &:before { content: \"\\e038\"; } }\n.glyphicon-qrcode { &:before { content: \"\\e039\"; } }\n.glyphicon-barcode { &:before { content: \"\\e040\"; } }\n.glyphicon-tag { &:before { content: \"\\e041\"; } }\n.glyphicon-tags { &:before { content: \"\\e042\"; } }\n.glyphicon-book { &:before { content: \"\\e043\"; } }\n.glyphicon-bookmark { &:before { content: \"\\e044\"; } }\n.glyphicon-print { &:before { content: \"\\e045\"; } }\n.glyphicon-camera { &:before { content: \"\\e046\"; } }\n.glyphicon-font { &:before { content: \"\\e047\"; } }\n.glyphicon-bold { &:before { content: \"\\e048\"; } }\n.glyphicon-italic { &:before { content: \"\\e049\"; } }\n.glyphicon-text-height { &:before { content: \"\\e050\"; } }\n.glyphicon-text-width { &:before { content: \"\\e051\"; } }\n.glyphicon-align-left { &:before { content: \"\\e052\"; } }\n.glyphicon-align-center { &:before { content: \"\\e053\"; } }\n.glyphicon-align-right { &:before { content: \"\\e054\"; } }\n.glyphicon-align-justify { &:before { content: \"\\e055\"; } }\n.glyphicon-list { &:before { content: \"\\e056\"; } }\n.glyphicon-indent-left { &:before { content: \"\\e057\"; } }\n.glyphicon-indent-right { &:before { content: \"\\e058\"; } }\n.glyphicon-facetime-video { &:before { content: \"\\e059\"; } }\n.glyphicon-picture { &:before { content: \"\\e060\"; } }\n.glyphicon-map-marker { &:before { content: \"\\e062\"; } }\n.glyphicon-adjust { &:before { content: \"\\e063\"; } }\n.glyphicon-tint { &:before { content: \"\\e064\"; } }\n.glyphicon-edit { &:before { content: \"\\e065\"; } }\n.glyphicon-share { &:before { content: \"\\e066\"; } }\n.glyphicon-check { &:before { content: \"\\e067\"; } }\n.glyphicon-move { &:before { content: \"\\e068\"; } }\n.glyphicon-step-backward { &:before { content: \"\\e069\"; } }\n.glyphicon-fast-backward { &:before { content: \"\\e070\"; } }\n.glyphicon-backward { &:before { content: \"\\e071\"; } }\n.glyphicon-play { &:before { content: \"\\e072\"; } }\n.glyphicon-pause { &:before { content: \"\\e073\"; } }\n.glyphicon-stop { &:before { content: \"\\e074\"; } }\n.glyphicon-forward { &:before { content: \"\\e075\"; } }\n.glyphicon-fast-forward { &:before { content: \"\\e076\"; } }\n.glyphicon-step-forward { &:before { content: \"\\e077\"; } }\n.glyphicon-eject { &:before { content: \"\\e078\"; } }\n.glyphicon-chevron-left { &:before { content: \"\\e079\"; } }\n.glyphicon-chevron-right { &:before { content: \"\\e080\"; } }\n.glyphicon-plus-sign { &:before { content: \"\\e081\"; } }\n.glyphicon-minus-sign { &:before { content: \"\\e082\"; } }\n.glyphicon-remove-sign { &:before { content: \"\\e083\"; } }\n.glyphicon-ok-sign { &:before { content: \"\\e084\"; } }\n.glyphicon-question-sign { &:before { content: \"\\e085\"; } }\n.glyphicon-info-sign { &:before { content: \"\\e086\"; } }\n.glyphicon-screenshot { &:before { content: \"\\e087\"; } }\n.glyphicon-remove-circle { &:before { content: \"\\e088\"; } }\n.glyphicon-ok-circle { &:before { content: \"\\e089\"; } }\n.glyphicon-ban-circle { &:before { content: \"\\e090\"; } }\n.glyphicon-arrow-left { &:before { content: \"\\e091\"; } }\n.glyphicon-arrow-right { &:before { content: \"\\e092\"; } }\n.glyphicon-arrow-up { &:before { content: \"\\e093\"; } }\n.glyphicon-arrow-down { &:before { content: \"\\e094\"; } }\n.glyphicon-share-alt { &:before { content: \"\\e095\"; } }\n.glyphicon-resize-full { &:before { content: \"\\e096\"; } }\n.glyphicon-resize-small { &:before { content: \"\\e097\"; } }\n.glyphicon-exclamation-sign { &:before { content: \"\\e101\"; } }\n.glyphicon-gift { &:before { content: \"\\e102\"; } }\n.glyphicon-leaf { &:before { content: \"\\e103\"; } }\n.glyphicon-fire { &:before { content: \"\\e104\"; } }\n.glyphicon-eye-open { &:before { content: \"\\e105\"; } }\n.glyphicon-eye-close { &:before { content: \"\\e106\"; } }\n.glyphicon-warning-sign { &:before { content: \"\\e107\"; } }\n.glyphicon-plane { &:before { content: \"\\e108\"; } }\n.glyphicon-calendar { &:before { content: \"\\e109\"; } }\n.glyphicon-random { &:before { content: \"\\e110\"; } }\n.glyphicon-comment { &:before { content: \"\\e111\"; } }\n.glyphicon-magnet { &:before { content: \"\\e112\"; } }\n.glyphicon-chevron-up { &:before { content: \"\\e113\"; } }\n.glyphicon-chevron-down { &:before { content: \"\\e114\"; } }\n.glyphicon-retweet { &:before { content: \"\\e115\"; } }\n.glyphicon-shopping-cart { &:before { content: \"\\e116\"; } }\n.glyphicon-folder-close { &:before { content: \"\\e117\"; } }\n.glyphicon-folder-open { &:before { content: \"\\e118\"; } }\n.glyphicon-resize-vertical { &:before { content: \"\\e119\"; } }\n.glyphicon-resize-horizontal { &:before { content: \"\\e120\"; } }\n.glyphicon-hdd { &:before { content: \"\\e121\"; } }\n.glyphicon-bullhorn { &:before { content: \"\\e122\"; } }\n.glyphicon-bell { &:before { content: \"\\e123\"; } }\n.glyphicon-certificate { &:before { content: \"\\e124\"; } }\n.glyphicon-thumbs-up { &:before { content: \"\\e125\"; } }\n.glyphicon-thumbs-down { &:before { content: \"\\e126\"; } }\n.glyphicon-hand-right { &:before { content: \"\\e127\"; } }\n.glyphicon-hand-left { &:before { content: \"\\e128\"; } }\n.glyphicon-hand-up { &:before { content: \"\\e129\"; } }\n.glyphicon-hand-down { &:before { content: \"\\e130\"; } }\n.glyphicon-circle-arrow-right { &:before { content: \"\\e131\"; } }\n.glyphicon-circle-arrow-left { &:before { content: \"\\e132\"; } }\n.glyphicon-circle-arrow-up { &:before { content: \"\\e133\"; } }\n.glyphicon-circle-arrow-down { &:before { content: \"\\e134\"; } }\n.glyphicon-globe { &:before { content: \"\\e135\"; } }\n.glyphicon-wrench { &:before { content: \"\\e136\"; } }\n.glyphicon-tasks { &:before { content: \"\\e137\"; } }\n.glyphicon-filter { &:before { content: \"\\e138\"; } }\n.glyphicon-briefcase { &:before { content: \"\\e139\"; } }\n.glyphicon-fullscreen { &:before { content: \"\\e140\"; } }\n.glyphicon-dashboard { &:before { content: \"\\e141\"; } }\n.glyphicon-paperclip { &:before { content: \"\\e142\"; } }\n.glyphicon-heart-empty { &:before { content: \"\\e143\"; } }\n.glyphicon-link { &:before { content: \"\\e144\"; } }\n.glyphicon-phone { &:before { content: \"\\e145\"; } }\n.glyphicon-pushpin { &:before { content: \"\\e146\"; } }\n.glyphicon-usd { &:before { content: \"\\e148\"; } }\n.glyphicon-gbp { &:before { content: \"\\e149\"; } }\n.glyphicon-sort { &:before { content: \"\\e150\"; } }\n.glyphicon-sort-by-alphabet { &:before { content: \"\\e151\"; } }\n.glyphicon-sort-by-alphabet-alt { &:before { content: \"\\e152\"; } }\n.glyphicon-sort-by-order { &:before { content: \"\\e153\"; } }\n.glyphicon-sort-by-order-alt { &:before { content: \"\\e154\"; } }\n.glyphicon-sort-by-attributes { &:before { content: \"\\e155\"; } }\n.glyphicon-sort-by-attributes-alt { &:before { content: \"\\e156\"; } }\n.glyphicon-unchecked { &:before { content: \"\\e157\"; } }\n.glyphicon-expand { &:before { content: \"\\e158\"; } }\n.glyphicon-collapse-down { &:before { content: \"\\e159\"; } }\n.glyphicon-collapse-up { &:before { content: \"\\e160\"; } }\n.glyphicon-log-in { &:before { content: \"\\e161\"; } }\n.glyphicon-flash { &:before { content: \"\\e162\"; } }\n.glyphicon-log-out { &:before { content: \"\\e163\"; } }\n.glyphicon-new-window { &:before { content: \"\\e164\"; } }\n.glyphicon-record { &:before { content: \"\\e165\"; } }\n.glyphicon-save { &:before { content: \"\\e166\"; } }\n.glyphicon-open { &:before { content: \"\\e167\"; } }\n.glyphicon-saved { &:before { content: \"\\e168\"; } }\n.glyphicon-import { &:before { content: \"\\e169\"; } }\n.glyphicon-export { &:before { content: \"\\e170\"; } }\n.glyphicon-send { &:before { content: \"\\e171\"; } }\n.glyphicon-floppy-disk { &:before { content: \"\\e172\"; } }\n.glyphicon-floppy-saved { &:before { content: \"\\e173\"; } }\n.glyphicon-floppy-remove { &:before { content: \"\\e174\"; } }\n.glyphicon-floppy-save { &:before { content: \"\\e175\"; } }\n.glyphicon-floppy-open { &:before { content: \"\\e176\"; } }\n.glyphicon-credit-card { &:before { content: \"\\e177\"; } }\n.glyphicon-transfer { &:before { content: \"\\e178\"; } }\n.glyphicon-cutlery { &:before { content: \"\\e179\"; } }\n.glyphicon-header { &:before { content: \"\\e180\"; } }\n.glyphicon-compressed { &:before { content: \"\\e181\"; } }\n.glyphicon-earphone { &:before { content: \"\\e182\"; } }\n.glyphicon-phone-alt { &:before { content: \"\\e183\"; } }\n.glyphicon-tower { &:before { content: \"\\e184\"; } }\n.glyphicon-stats { &:before { content: \"\\e185\"; } }\n.glyphicon-sd-video { &:before { content: \"\\e186\"; } }\n.glyphicon-hd-video { &:before { content: \"\\e187\"; } }\n.glyphicon-subtitles { &:before { content: \"\\e188\"; } }\n.glyphicon-sound-stereo { &:before { content: \"\\e189\"; } }\n.glyphicon-sound-dolby { &:before { content: \"\\e190\"; } }\n.glyphicon-sound-5-1 { &:before { content: \"\\e191\"; } }\n.glyphicon-sound-6-1 { &:before { content: \"\\e192\"; } }\n.glyphicon-sound-7-1 { &:before { content: \"\\e193\"; } }\n.glyphicon-copyright-mark { &:before { content: \"\\e194\"; } }\n.glyphicon-registration-mark { &:before { content: \"\\e195\"; } }\n.glyphicon-cloud-download { &:before { content: \"\\e197\"; } }\n.glyphicon-cloud-upload { &:before { content: \"\\e198\"; } }\n.glyphicon-tree-conifer { &:before { content: \"\\e199\"; } }\n.glyphicon-tree-deciduous { &:before { content: \"\\e200\"; } }\n.glyphicon-cd { &:before { content: \"\\e201\"; } }\n.glyphicon-save-file { &:before { content: \"\\e202\"; } }\n.glyphicon-open-file { &:before { content: \"\\e203\"; } }\n.glyphicon-level-up { &:before { content: \"\\e204\"; } }\n.glyphicon-copy { &:before { content: \"\\e205\"; } }\n.glyphicon-paste { &:before { content: \"\\e206\"; } }\n// The following 2 Glyphicons are omitted for the time being because\n// they currently use Unicode codepoints that are outside the\n// Basic Multilingual Plane (BMP). Older buggy versions of WebKit can't handle\n// non-BMP codepoints in CSS string escapes, and thus can't display these two icons.\n// Notably, the bug affects some older versions of the Android Browser.\n// More info: https://github.com/twbs/bootstrap/issues/10106\n// .glyphicon-door { &:before { content: \"\\1f6aa\"; } }\n// .glyphicon-key { &:before { content: \"\\1f511\"; } }\n.glyphicon-alert { &:before { content: \"\\e209\"; } }\n.glyphicon-equalizer { &:before { content: \"\\e210\"; } }\n.glyphicon-king { &:before { content: \"\\e211\"; } }\n.glyphicon-queen { &:before { content: \"\\e212\"; } }\n.glyphicon-pawn { &:before { content: \"\\e213\"; } }\n.glyphicon-bishop { &:before { content: \"\\e214\"; } }\n.glyphicon-knight { &:before { content: \"\\e215\"; } }\n.glyphicon-baby-formula { &:before { content: \"\\e216\"; } }\n.glyphicon-tent { &:before { content: \"\\26fa\"; } }\n.glyphicon-blackboard { &:before { content: \"\\e218\"; } }\n.glyphicon-bed { &:before { content: \"\\e219\"; } }\n.glyphicon-apple { &:before { content: \"\\f8ff\"; } }\n.glyphicon-erase { &:before { content: \"\\e221\"; } }\n.glyphicon-hourglass { &:before { content: \"\\231b\"; } }\n.glyphicon-lamp { &:before { content: \"\\e223\"; } }\n.glyphicon-duplicate { &:before { content: \"\\e224\"; } }\n.glyphicon-piggy-bank { &:before { content: \"\\e225\"; } }\n.glyphicon-scissors { &:before { content: \"\\e226\"; } }\n.glyphicon-bitcoin { &:before { content: \"\\e227\"; } }\n.glyphicon-btc { &:before { content: \"\\e227\"; } }\n.glyphicon-xbt { &:before { content: \"\\e227\"; } }\n.glyphicon-yen { &:before { content: \"\\00a5\"; } }\n.glyphicon-jpy { &:before { content: \"\\00a5\"; } }\n.glyphicon-ruble { &:before { content: \"\\20bd\"; } }\n.glyphicon-rub { &:before { content: \"\\20bd\"; } }\n.glyphicon-scale { &:before { content: \"\\e230\"; } }\n.glyphicon-ice-lolly { &:before { content: \"\\e231\"; } }\n.glyphicon-ice-lolly-tasted { &:before { content: \"\\e232\"; } }\n.glyphicon-education { &:before { content: \"\\e233\"; } }\n.glyphicon-option-horizontal { &:before { content: \"\\e234\"; } }\n.glyphicon-option-vertical { &:before { content: \"\\e235\"; } }\n.glyphicon-menu-hamburger { &:before { content: \"\\e236\"; } }\n.glyphicon-modal-window { &:before { content: \"\\e237\"; } }\n.glyphicon-oil { &:before { content: \"\\e238\"; } }\n.glyphicon-grain { &:before { content: \"\\e239\"; } }\n.glyphicon-sunglasses { &:before { content: \"\\e240\"; } }\n.glyphicon-text-size { &:before { content: \"\\e241\"; } }\n.glyphicon-text-color { &:before { content: \"\\e242\"; } }\n.glyphicon-text-background { &:before { content: \"\\e243\"; } }\n.glyphicon-object-align-top { &:before { content: \"\\e244\"; } }\n.glyphicon-object-align-bottom { &:before { content: \"\\e245\"; } }\n.glyphicon-object-align-horizontal{ &:before { content: \"\\e246\"; } }\n.glyphicon-object-align-left { &:before { content: \"\\e247\"; } }\n.glyphicon-object-align-vertical { &:before { content: \"\\e248\"; } }\n.glyphicon-object-align-right { &:before { content: \"\\e249\"; } }\n.glyphicon-triangle-right { &:before { content: \"\\e250\"; } }\n.glyphicon-triangle-left { &:before { content: \"\\e251\"; } }\n.glyphicon-triangle-bottom { &:before { content: \"\\e252\"; } }\n.glyphicon-triangle-top { &:before { content: \"\\e253\"; } }\n.glyphicon-console { &:before { content: \"\\e254\"; } }\n.glyphicon-superscript { &:before { content: \"\\e255\"; } }\n.glyphicon-subscript { &:before { content: \"\\e256\"; } }\n.glyphicon-menu-left { &:before { content: \"\\e257\"; } }\n.glyphicon-menu-right { &:before { content: \"\\e258\"; } }\n.glyphicon-menu-down { &:before { content: \"\\e259\"; } }\n.glyphicon-menu-up { &:before { content: \"\\e260\"; } }\n","//\n// Scaffolding\n// --------------------------------------------------\n\n\n// Reset the box-sizing\n//\n// Heads up! This reset may cause conflicts with some third-party widgets.\n// For recommendations on resolving such conflicts, see\n// http://getbootstrap.com/getting-started/#third-box-sizing\n* {\n .box-sizing(border-box);\n}\n*:before,\n*:after {\n .box-sizing(border-box);\n}\n\n\n// Body reset\n\nhtml {\n font-size: 10px;\n -webkit-tap-highlight-color: rgba(0,0,0,0);\n}\n\nbody {\n font-family: @font-family-base;\n font-size: @font-size-base;\n line-height: @line-height-base;\n color: @text-color;\n background-color: @body-bg;\n}\n\n// Reset fonts for relevant elements\ninput,\nbutton,\nselect,\ntextarea {\n font-family: inherit;\n font-size: inherit;\n line-height: inherit;\n}\n\n\n// Links\n\na {\n color: @link-color;\n text-decoration: none;\n\n &:hover,\n &:focus {\n color: @link-hover-color;\n text-decoration: @link-hover-decoration;\n }\n\n &:focus {\n .tab-focus();\n }\n}\n\n\n// Figures\n//\n// We reset this here because previously Normalize had no `figure` margins. This\n// ensures we don't break anyone's use of the element.\n\nfigure {\n margin: 0;\n}\n\n\n// Images\n\nimg {\n vertical-align: middle;\n}\n\n// Responsive images (ensure images don't scale beyond their parents)\n.img-responsive {\n .img-responsive();\n}\n\n// Rounded corners\n.img-rounded {\n border-radius: @border-radius-large;\n}\n\n// Image thumbnails\n//\n// Heads up! This is mixin-ed into thumbnails.less for `.thumbnail`.\n.img-thumbnail {\n padding: @thumbnail-padding;\n line-height: @line-height-base;\n background-color: @thumbnail-bg;\n border: 1px solid @thumbnail-border;\n border-radius: @thumbnail-border-radius;\n .transition(all .2s ease-in-out);\n\n // Keep them at most 100% wide\n .img-responsive(inline-block);\n}\n\n// Perfect circle\n.img-circle {\n border-radius: 50%; // set radius in percents\n}\n\n\n// Horizontal rules\n\nhr {\n margin-top: @line-height-computed;\n margin-bottom: @line-height-computed;\n border: 0;\n border-top: 1px solid @hr-border;\n}\n\n\n// Only display content to screen readers\n//\n// See: http://a11yproject.com/posts/how-to-hide-content\n\n.sr-only {\n position: absolute;\n width: 1px;\n height: 1px;\n margin: -1px;\n padding: 0;\n overflow: hidden;\n clip: rect(0,0,0,0);\n border: 0;\n}\n\n// Use in conjunction with .sr-only to only display content when it's focused.\n// Useful for \"Skip to main content\" links; see http://www.w3.org/TR/2013/NOTE-WCAG20-TECHS-20130905/G1\n// Credit: HTML5 Boilerplate\n\n.sr-only-focusable {\n &:active,\n &:focus {\n position: static;\n width: auto;\n height: auto;\n margin: 0;\n overflow: visible;\n clip: auto;\n }\n}\n\n\n// iOS \"clickable elements\" fix for role=\"button\"\n//\n// Fixes \"clickability\" issue (and more generally, the firing of events such as focus as well)\n// for traditionally non-focusable elements with role=\"button\"\n// see https://developer.mozilla.org/en-US/docs/Web/Events/click#Safari_Mobile\n\n[role=\"button\"] {\n cursor: pointer;\n}\n","// Vendor Prefixes\n//\n// All vendor mixins are deprecated as of v3.2.0 due to the introduction of\n// Autoprefixer in our Gruntfile. They have been removed in v4.\n\n// - Animations\n// - Backface visibility\n// - Box shadow\n// - Box sizing\n// - Content columns\n// - Hyphens\n// - Placeholder text\n// - Transformations\n// - Transitions\n// - User Select\n\n\n// Animations\n.animation(@animation) {\n -webkit-animation: @animation;\n -o-animation: @animation;\n animation: @animation;\n}\n.animation-name(@name) {\n -webkit-animation-name: @name;\n animation-name: @name;\n}\n.animation-duration(@duration) {\n -webkit-animation-duration: @duration;\n animation-duration: @duration;\n}\n.animation-timing-function(@timing-function) {\n -webkit-animation-timing-function: @timing-function;\n animation-timing-function: @timing-function;\n}\n.animation-delay(@delay) {\n -webkit-animation-delay: @delay;\n animation-delay: @delay;\n}\n.animation-iteration-count(@iteration-count) {\n -webkit-animation-iteration-count: @iteration-count;\n animation-iteration-count: @iteration-count;\n}\n.animation-direction(@direction) {\n -webkit-animation-direction: @direction;\n animation-direction: @direction;\n}\n.animation-fill-mode(@fill-mode) {\n -webkit-animation-fill-mode: @fill-mode;\n animation-fill-mode: @fill-mode;\n}\n\n// Backface visibility\n// Prevent browsers from flickering when using CSS 3D transforms.\n// Default value is `visible`, but can be changed to `hidden`\n\n.backface-visibility(@visibility) {\n -webkit-backface-visibility: @visibility;\n -moz-backface-visibility: @visibility;\n backface-visibility: @visibility;\n}\n\n// Drop shadows\n//\n// Note: Deprecated `.box-shadow()` as of v3.1.0 since all of Bootstrap's\n// supported browsers that have box shadow capabilities now support it.\n\n.box-shadow(@shadow) {\n -webkit-box-shadow: @shadow; // iOS <4.3 & Android <4.1\n box-shadow: @shadow;\n}\n\n// Box sizing\n.box-sizing(@boxmodel) {\n -webkit-box-sizing: @boxmodel;\n -moz-box-sizing: @boxmodel;\n box-sizing: @boxmodel;\n}\n\n// CSS3 Content Columns\n.content-columns(@column-count; @column-gap: @grid-gutter-width) {\n -webkit-column-count: @column-count;\n -moz-column-count: @column-count;\n column-count: @column-count;\n -webkit-column-gap: @column-gap;\n -moz-column-gap: @column-gap;\n column-gap: @column-gap;\n}\n\n// Optional hyphenation\n.hyphens(@mode: auto) {\n word-wrap: break-word;\n -webkit-hyphens: @mode;\n -moz-hyphens: @mode;\n -ms-hyphens: @mode; // IE10+\n -o-hyphens: @mode;\n hyphens: @mode;\n}\n\n// Placeholder text\n.placeholder(@color: @input-color-placeholder) {\n // Firefox\n &::-moz-placeholder {\n color: @color;\n opacity: 1; // Override Firefox's unusual default opacity; see https://github.com/twbs/bootstrap/pull/11526\n }\n &:-ms-input-placeholder { color: @color; } // Internet Explorer 10+\n &::-webkit-input-placeholder { color: @color; } // Safari and Chrome\n}\n\n// Transformations\n.scale(@ratio) {\n -webkit-transform: scale(@ratio);\n -ms-transform: scale(@ratio); // IE9 only\n -o-transform: scale(@ratio);\n transform: scale(@ratio);\n}\n.scale(@ratioX; @ratioY) {\n -webkit-transform: scale(@ratioX, @ratioY);\n -ms-transform: scale(@ratioX, @ratioY); // IE9 only\n -o-transform: scale(@ratioX, @ratioY);\n transform: scale(@ratioX, @ratioY);\n}\n.scaleX(@ratio) {\n -webkit-transform: scaleX(@ratio);\n -ms-transform: scaleX(@ratio); // IE9 only\n -o-transform: scaleX(@ratio);\n transform: scaleX(@ratio);\n}\n.scaleY(@ratio) {\n -webkit-transform: scaleY(@ratio);\n -ms-transform: scaleY(@ratio); // IE9 only\n -o-transform: scaleY(@ratio);\n transform: scaleY(@ratio);\n}\n.skew(@x; @y) {\n -webkit-transform: skewX(@x) skewY(@y);\n -ms-transform: skewX(@x) skewY(@y); // See https://github.com/twbs/bootstrap/issues/4885; IE9+\n -o-transform: skewX(@x) skewY(@y);\n transform: skewX(@x) skewY(@y);\n}\n.translate(@x; @y) {\n -webkit-transform: translate(@x, @y);\n -ms-transform: translate(@x, @y); // IE9 only\n -o-transform: translate(@x, @y);\n transform: translate(@x, @y);\n}\n.translate3d(@x; @y; @z) {\n -webkit-transform: translate3d(@x, @y, @z);\n transform: translate3d(@x, @y, @z);\n}\n.rotate(@degrees) {\n -webkit-transform: rotate(@degrees);\n -ms-transform: rotate(@degrees); // IE9 only\n -o-transform: rotate(@degrees);\n transform: rotate(@degrees);\n}\n.rotateX(@degrees) {\n -webkit-transform: rotateX(@degrees);\n -ms-transform: rotateX(@degrees); // IE9 only\n -o-transform: rotateX(@degrees);\n transform: rotateX(@degrees);\n}\n.rotateY(@degrees) {\n -webkit-transform: rotateY(@degrees);\n -ms-transform: rotateY(@degrees); // IE9 only\n -o-transform: rotateY(@degrees);\n transform: rotateY(@degrees);\n}\n.perspective(@perspective) {\n -webkit-perspective: @perspective;\n -moz-perspective: @perspective;\n perspective: @perspective;\n}\n.perspective-origin(@perspective) {\n -webkit-perspective-origin: @perspective;\n -moz-perspective-origin: @perspective;\n perspective-origin: @perspective;\n}\n.transform-origin(@origin) {\n -webkit-transform-origin: @origin;\n -moz-transform-origin: @origin;\n -ms-transform-origin: @origin; // IE9 only\n transform-origin: @origin;\n}\n\n\n// Transitions\n\n.transition(@transition) {\n -webkit-transition: @transition;\n -o-transition: @transition;\n transition: @transition;\n}\n.transition-property(@transition-property) {\n -webkit-transition-property: @transition-property;\n transition-property: @transition-property;\n}\n.transition-delay(@transition-delay) {\n -webkit-transition-delay: @transition-delay;\n transition-delay: @transition-delay;\n}\n.transition-duration(@transition-duration) {\n -webkit-transition-duration: @transition-duration;\n transition-duration: @transition-duration;\n}\n.transition-timing-function(@timing-function) {\n -webkit-transition-timing-function: @timing-function;\n transition-timing-function: @timing-function;\n}\n.transition-transform(@transition) {\n -webkit-transition: -webkit-transform @transition;\n -moz-transition: -moz-transform @transition;\n -o-transition: -o-transform @transition;\n transition: transform @transition;\n}\n\n\n// User select\n// For selecting text on the page\n\n.user-select(@select) {\n -webkit-user-select: @select;\n -moz-user-select: @select;\n -ms-user-select: @select; // IE10+\n user-select: @select;\n}\n","// WebKit-style focus\n\n.tab-focus() {\n // WebKit-specific. Other browsers will keep their default outline style.\n // (Initially tried to also force default via `outline: initial`,\n // but that seems to erroneously remove the outline in Firefox altogether.)\n outline: 5px auto -webkit-focus-ring-color;\n outline-offset: -2px;\n}\n","// Image Mixins\n// - Responsive image\n// - Retina image\n\n\n// Responsive image\n//\n// Keep images from scaling beyond the width of their parents.\n.img-responsive(@display: block) {\n display: @display;\n max-width: 100%; // Part 1: Set a maximum relative to the parent\n height: auto; // Part 2: Scale the height according to the width, otherwise you get stretching\n}\n\n\n// Retina image\n//\n// Short retina mixin for setting background-image and -size. Note that the\n// spelling of `min--moz-device-pixel-ratio` is intentional.\n.img-retina(@file-1x; @file-2x; @width-1x; @height-1x) {\n background-image: url(\"@{file-1x}\");\n\n @media\n only screen and (-webkit-min-device-pixel-ratio: 2),\n only screen and ( min--moz-device-pixel-ratio: 2),\n only screen and ( -o-min-device-pixel-ratio: 2/1),\n only screen and ( min-device-pixel-ratio: 2),\n only screen and ( min-resolution: 192dpi),\n only screen and ( min-resolution: 2dppx) {\n background-image: url(\"@{file-2x}\");\n background-size: @width-1x @height-1x;\n }\n}\n","//\n// Typography\n// --------------------------------------------------\n\n\n// Headings\n// -------------------------\n\nh1, h2, h3, h4, h5, h6,\n.h1, .h2, .h3, .h4, .h5, .h6 {\n font-family: @headings-font-family;\n font-weight: @headings-font-weight;\n line-height: @headings-line-height;\n color: @headings-color;\n\n small,\n .small {\n font-weight: normal;\n line-height: 1;\n color: @headings-small-color;\n }\n}\n\nh1, .h1,\nh2, .h2,\nh3, .h3 {\n margin-top: @line-height-computed;\n margin-bottom: (@line-height-computed / 2);\n\n small,\n .small {\n font-size: 65%;\n }\n}\nh4, .h4,\nh5, .h5,\nh6, .h6 {\n margin-top: (@line-height-computed / 2);\n margin-bottom: (@line-height-computed / 2);\n\n small,\n .small {\n font-size: 75%;\n }\n}\n\nh1, .h1 { font-size: @font-size-h1; }\nh2, .h2 { font-size: @font-size-h2; }\nh3, .h3 { font-size: @font-size-h3; }\nh4, .h4 { font-size: @font-size-h4; }\nh5, .h5 { font-size: @font-size-h5; }\nh6, .h6 { font-size: @font-size-h6; }\n\n\n// Body text\n// -------------------------\n\np {\n margin: 0 0 (@line-height-computed / 2);\n}\n\n.lead {\n margin-bottom: @line-height-computed;\n font-size: floor((@font-size-base * 1.15));\n font-weight: 300;\n line-height: 1.4;\n\n @media (min-width: @screen-sm-min) {\n font-size: (@font-size-base * 1.5);\n }\n}\n\n\n// Emphasis & misc\n// -------------------------\n\n// Ex: (12px small font / 14px base font) * 100% = about 85%\nsmall,\n.small {\n font-size: floor((100% * @font-size-small / @font-size-base));\n}\n\nmark,\n.mark {\n background-color: @state-warning-bg;\n padding: .2em;\n}\n\n// Alignment\n.text-left { text-align: left; }\n.text-right { text-align: right; }\n.text-center { text-align: center; }\n.text-justify { text-align: justify; }\n.text-nowrap { white-space: nowrap; }\n\n// Transformation\n.text-lowercase { text-transform: lowercase; }\n.text-uppercase { text-transform: uppercase; }\n.text-capitalize { text-transform: capitalize; }\n\n// Contextual colors\n.text-muted {\n color: @text-muted;\n}\n.text-primary {\n .text-emphasis-variant(@brand-primary);\n}\n.text-success {\n .text-emphasis-variant(@state-success-text);\n}\n.text-info {\n .text-emphasis-variant(@state-info-text);\n}\n.text-warning {\n .text-emphasis-variant(@state-warning-text);\n}\n.text-danger {\n .text-emphasis-variant(@state-danger-text);\n}\n\n// Contextual backgrounds\n// For now we'll leave these alongside the text classes until v4 when we can\n// safely shift things around (per SemVer rules).\n.bg-primary {\n // Given the contrast here, this is the only class to have its color inverted\n // automatically.\n color: #fff;\n .bg-variant(@brand-primary);\n}\n.bg-success {\n .bg-variant(@state-success-bg);\n}\n.bg-info {\n .bg-variant(@state-info-bg);\n}\n.bg-warning {\n .bg-variant(@state-warning-bg);\n}\n.bg-danger {\n .bg-variant(@state-danger-bg);\n}\n\n\n// Page header\n// -------------------------\n\n.page-header {\n padding-bottom: ((@line-height-computed / 2) - 1);\n margin: (@line-height-computed * 2) 0 @line-height-computed;\n border-bottom: 1px solid @page-header-border-color;\n}\n\n\n// Lists\n// -------------------------\n\n// Unordered and Ordered lists\nul,\nol {\n margin-top: 0;\n margin-bottom: (@line-height-computed / 2);\n ul,\n ol {\n margin-bottom: 0;\n }\n}\n\n// List options\n\n// Unstyled keeps list items block level, just removes default browser padding and list-style\n.list-unstyled {\n padding-left: 0;\n list-style: none;\n}\n\n// Inline turns list items into inline-block\n.list-inline {\n .list-unstyled();\n margin-left: -5px;\n\n > li {\n display: inline-block;\n padding-left: 5px;\n padding-right: 5px;\n }\n}\n\n// Description Lists\ndl {\n margin-top: 0; // Remove browser default\n margin-bottom: @line-height-computed;\n}\ndt,\ndd {\n line-height: @line-height-base;\n}\ndt {\n font-weight: bold;\n}\ndd {\n margin-left: 0; // Undo browser default\n}\n\n// Horizontal description lists\n//\n// Defaults to being stacked without any of the below styles applied, until the\n// grid breakpoint is reached (default of ~768px).\n\n.dl-horizontal {\n dd {\n &:extend(.clearfix all); // Clear the floated `dt` if an empty `dd` is present\n }\n\n @media (min-width: @dl-horizontal-breakpoint) {\n dt {\n float: left;\n width: (@dl-horizontal-offset - 20);\n clear: left;\n text-align: right;\n .text-overflow();\n }\n dd {\n margin-left: @dl-horizontal-offset;\n }\n }\n}\n\n\n// Misc\n// -------------------------\n\n// Abbreviations and acronyms\nabbr[title],\n// Add data-* attribute to help out our tooltip plugin, per https://github.com/twbs/bootstrap/issues/5257\nabbr[data-original-title] {\n cursor: help;\n border-bottom: 1px dotted @abbr-border-color;\n}\n.initialism {\n font-size: 90%;\n .text-uppercase();\n}\n\n// Blockquotes\nblockquote {\n padding: (@line-height-computed / 2) @line-height-computed;\n margin: 0 0 @line-height-computed;\n font-size: @blockquote-font-size;\n border-left: 5px solid @blockquote-border-color;\n\n p,\n ul,\n ol {\n &:last-child {\n margin-bottom: 0;\n }\n }\n\n // Note: Deprecated small and .small as of v3.1.0\n // Context: https://github.com/twbs/bootstrap/issues/11660\n footer,\n small,\n .small {\n display: block;\n font-size: 80%; // back to default font-size\n line-height: @line-height-base;\n color: @blockquote-small-color;\n\n &:before {\n content: '\\2014 \\00A0'; // em dash, nbsp\n }\n }\n}\n\n// Opposite alignment of blockquote\n//\n// Heads up: `blockquote.pull-right` has been deprecated as of v3.1.0.\n.blockquote-reverse,\nblockquote.pull-right {\n padding-right: 15px;\n padding-left: 0;\n border-right: 5px solid @blockquote-border-color;\n border-left: 0;\n text-align: right;\n\n // Account for citation\n footer,\n small,\n .small {\n &:before { content: ''; }\n &:after {\n content: '\\00A0 \\2014'; // nbsp, em dash\n }\n }\n}\n\n// Addresses\naddress {\n margin-bottom: @line-height-computed;\n font-style: normal;\n line-height: @line-height-base;\n}\n","// Typography\n\n.text-emphasis-variant(@color) {\n color: @color;\n a&:hover,\n a&:focus {\n color: darken(@color, 10%);\n }\n}\n","// Contextual backgrounds\n\n.bg-variant(@color) {\n background-color: @color;\n a&:hover,\n a&:focus {\n background-color: darken(@color, 10%);\n }\n}\n","// Text overflow\n// Requires inline-block or block for proper styling\n\n.text-overflow() {\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n","//\n// Code (inline and block)\n// --------------------------------------------------\n\n\n// Inline and block code styles\ncode,\nkbd,\npre,\nsamp {\n font-family: @font-family-monospace;\n}\n\n// Inline code\ncode {\n padding: 2px 4px;\n font-size: 90%;\n color: @code-color;\n background-color: @code-bg;\n border-radius: @border-radius-base;\n}\n\n// User input typically entered via keyboard\nkbd {\n padding: 2px 4px;\n font-size: 90%;\n color: @kbd-color;\n background-color: @kbd-bg;\n border-radius: @border-radius-small;\n box-shadow: inset 0 -1px 0 rgba(0,0,0,.25);\n\n kbd {\n padding: 0;\n font-size: 100%;\n font-weight: bold;\n box-shadow: none;\n }\n}\n\n// Blocks of code\npre {\n display: block;\n padding: ((@line-height-computed - 1) / 2);\n margin: 0 0 (@line-height-computed / 2);\n font-size: (@font-size-base - 1); // 14px to 13px\n line-height: @line-height-base;\n word-break: break-all;\n word-wrap: break-word;\n color: @pre-color;\n background-color: @pre-bg;\n border: 1px solid @pre-border-color;\n border-radius: @border-radius-base;\n\n // Account for some code outputs that place code tags in pre tags\n code {\n padding: 0;\n font-size: inherit;\n color: inherit;\n white-space: pre-wrap;\n background-color: transparent;\n border-radius: 0;\n }\n}\n\n// Enable scrollable blocks of code\n.pre-scrollable {\n max-height: @pre-scrollable-max-height;\n overflow-y: scroll;\n}\n","//\n// Grid system\n// --------------------------------------------------\n\n\n// Container widths\n//\n// Set the container width, and override it for fixed navbars in media queries.\n\n.container {\n .container-fixed();\n\n @media (min-width: @screen-sm-min) {\n width: @container-sm;\n }\n @media (min-width: @screen-md-min) {\n width: @container-md;\n }\n @media (min-width: @screen-lg-min) {\n width: @container-lg;\n }\n}\n\n\n// Fluid container\n//\n// Utilizes the mixin meant for fixed width containers, but without any defined\n// width for fluid, full width layouts.\n\n.container-fluid {\n .container-fixed();\n}\n\n\n// Row\n//\n// Rows contain and clear the floats of your columns.\n\n.row {\n .make-row();\n}\n\n\n// Columns\n//\n// Common styles for small and large grid columns\n\n.make-grid-columns();\n\n\n// Extra small grid\n//\n// Columns, offsets, pushes, and pulls for extra small devices like\n// smartphones.\n\n.make-grid(xs);\n\n\n// Small grid\n//\n// Columns, offsets, pushes, and pulls for the small device range, from phones\n// to tablets.\n\n@media (min-width: @screen-sm-min) {\n .make-grid(sm);\n}\n\n\n// Medium grid\n//\n// Columns, offsets, pushes, and pulls for the desktop device range.\n\n@media (min-width: @screen-md-min) {\n .make-grid(md);\n}\n\n\n// Large grid\n//\n// Columns, offsets, pushes, and pulls for the large desktop device range.\n\n@media (min-width: @screen-lg-min) {\n .make-grid(lg);\n}\n","// Grid system\n//\n// Generate semantic grid columns with these mixins.\n\n// Centered container element\n.container-fixed(@gutter: @grid-gutter-width) {\n margin-right: auto;\n margin-left: auto;\n padding-left: floor((@gutter / 2));\n padding-right: ceil((@gutter / 2));\n &:extend(.clearfix all);\n}\n\n// Creates a wrapper for a series of columns\n.make-row(@gutter: @grid-gutter-width) {\n margin-left: ceil((@gutter / -2));\n margin-right: floor((@gutter / -2));\n &:extend(.clearfix all);\n}\n\n// Generate the extra small columns\n.make-xs-column(@columns; @gutter: @grid-gutter-width) {\n position: relative;\n float: left;\n width: percentage((@columns / @grid-columns));\n min-height: 1px;\n padding-left: (@gutter / 2);\n padding-right: (@gutter / 2);\n}\n.make-xs-column-offset(@columns) {\n margin-left: percentage((@columns / @grid-columns));\n}\n.make-xs-column-push(@columns) {\n left: percentage((@columns / @grid-columns));\n}\n.make-xs-column-pull(@columns) {\n right: percentage((@columns / @grid-columns));\n}\n\n// Generate the small columns\n.make-sm-column(@columns; @gutter: @grid-gutter-width) {\n position: relative;\n min-height: 1px;\n padding-left: (@gutter / 2);\n padding-right: (@gutter / 2);\n\n @media (min-width: @screen-sm-min) {\n float: left;\n width: percentage((@columns / @grid-columns));\n }\n}\n.make-sm-column-offset(@columns) {\n @media (min-width: @screen-sm-min) {\n margin-left: percentage((@columns / @grid-columns));\n }\n}\n.make-sm-column-push(@columns) {\n @media (min-width: @screen-sm-min) {\n left: percentage((@columns / @grid-columns));\n }\n}\n.make-sm-column-pull(@columns) {\n @media (min-width: @screen-sm-min) {\n right: percentage((@columns / @grid-columns));\n }\n}\n\n// Generate the medium columns\n.make-md-column(@columns; @gutter: @grid-gutter-width) {\n position: relative;\n min-height: 1px;\n padding-left: (@gutter / 2);\n padding-right: (@gutter / 2);\n\n @media (min-width: @screen-md-min) {\n float: left;\n width: percentage((@columns / @grid-columns));\n }\n}\n.make-md-column-offset(@columns) {\n @media (min-width: @screen-md-min) {\n margin-left: percentage((@columns / @grid-columns));\n }\n}\n.make-md-column-push(@columns) {\n @media (min-width: @screen-md-min) {\n left: percentage((@columns / @grid-columns));\n }\n}\n.make-md-column-pull(@columns) {\n @media (min-width: @screen-md-min) {\n right: percentage((@columns / @grid-columns));\n }\n}\n\n// Generate the large columns\n.make-lg-column(@columns; @gutter: @grid-gutter-width) {\n position: relative;\n min-height: 1px;\n padding-left: (@gutter / 2);\n padding-right: (@gutter / 2);\n\n @media (min-width: @screen-lg-min) {\n float: left;\n width: percentage((@columns / @grid-columns));\n }\n}\n.make-lg-column-offset(@columns) {\n @media (min-width: @screen-lg-min) {\n margin-left: percentage((@columns / @grid-columns));\n }\n}\n.make-lg-column-push(@columns) {\n @media (min-width: @screen-lg-min) {\n left: percentage((@columns / @grid-columns));\n }\n}\n.make-lg-column-pull(@columns) {\n @media (min-width: @screen-lg-min) {\n right: percentage((@columns / @grid-columns));\n }\n}\n","// Framework grid generation\n//\n// Used only by Bootstrap to generate the correct number of grid classes given\n// any value of `@grid-columns`.\n\n.make-grid-columns() {\n // Common styles for all sizes of grid columns, widths 1-12\n .col(@index) { // initial\n @item: ~\".col-xs-@{index}, .col-sm-@{index}, .col-md-@{index}, .col-lg-@{index}\";\n .col((@index + 1), @item);\n }\n .col(@index, @list) when (@index =< @grid-columns) { // general; \"=<\" isn't a typo\n @item: ~\".col-xs-@{index}, .col-sm-@{index}, .col-md-@{index}, .col-lg-@{index}\";\n .col((@index + 1), ~\"@{list}, @{item}\");\n }\n .col(@index, @list) when (@index > @grid-columns) { // terminal\n @{list} {\n position: relative;\n // Prevent columns from collapsing when empty\n min-height: 1px;\n // Inner gutter via padding\n padding-left: ceil((@grid-gutter-width / 2));\n padding-right: floor((@grid-gutter-width / 2));\n }\n }\n .col(1); // kickstart it\n}\n\n.float-grid-columns(@class) {\n .col(@index) { // initial\n @item: ~\".col-@{class}-@{index}\";\n .col((@index + 1), @item);\n }\n .col(@index, @list) when (@index =< @grid-columns) { // general\n @item: ~\".col-@{class}-@{index}\";\n .col((@index + 1), ~\"@{list}, @{item}\");\n }\n .col(@index, @list) when (@index > @grid-columns) { // terminal\n @{list} {\n float: left;\n }\n }\n .col(1); // kickstart it\n}\n\n.calc-grid-column(@index, @class, @type) when (@type = width) and (@index > 0) {\n .col-@{class}-@{index} {\n width: percentage((@index / @grid-columns));\n }\n}\n.calc-grid-column(@index, @class, @type) when (@type = push) and (@index > 0) {\n .col-@{class}-push-@{index} {\n left: percentage((@index / @grid-columns));\n }\n}\n.calc-grid-column(@index, @class, @type) when (@type = push) and (@index = 0) {\n .col-@{class}-push-0 {\n left: auto;\n }\n}\n.calc-grid-column(@index, @class, @type) when (@type = pull) and (@index > 0) {\n .col-@{class}-pull-@{index} {\n right: percentage((@index / @grid-columns));\n }\n}\n.calc-grid-column(@index, @class, @type) when (@type = pull) and (@index = 0) {\n .col-@{class}-pull-0 {\n right: auto;\n }\n}\n.calc-grid-column(@index, @class, @type) when (@type = offset) {\n .col-@{class}-offset-@{index} {\n margin-left: percentage((@index / @grid-columns));\n }\n}\n\n// Basic looping in LESS\n.loop-grid-columns(@index, @class, @type) when (@index >= 0) {\n .calc-grid-column(@index, @class, @type);\n // next iteration\n .loop-grid-columns((@index - 1), @class, @type);\n}\n\n// Create grid for specific class\n.make-grid(@class) {\n .float-grid-columns(@class);\n .loop-grid-columns(@grid-columns, @class, width);\n .loop-grid-columns(@grid-columns, @class, pull);\n .loop-grid-columns(@grid-columns, @class, push);\n .loop-grid-columns(@grid-columns, @class, offset);\n}\n","//\n// Tables\n// --------------------------------------------------\n\n\ntable {\n background-color: @table-bg;\n}\ncaption {\n padding-top: @table-cell-padding;\n padding-bottom: @table-cell-padding;\n color: @text-muted;\n text-align: left;\n}\nth {\n text-align: left;\n}\n\n\n// Baseline styles\n\n.table {\n width: 100%;\n max-width: 100%;\n margin-bottom: @line-height-computed;\n // Cells\n > thead,\n > tbody,\n > tfoot {\n > tr {\n > th,\n > td {\n padding: @table-cell-padding;\n line-height: @line-height-base;\n vertical-align: top;\n border-top: 1px solid @table-border-color;\n }\n }\n }\n // Bottom align for column headings\n > thead > tr > th {\n vertical-align: bottom;\n border-bottom: 2px solid @table-border-color;\n }\n // Remove top border from thead by default\n > caption + thead,\n > colgroup + thead,\n > thead:first-child {\n > tr:first-child {\n > th,\n > td {\n border-top: 0;\n }\n }\n }\n // Account for multiple tbody instances\n > tbody + tbody {\n border-top: 2px solid @table-border-color;\n }\n\n // Nesting\n .table {\n background-color: @body-bg;\n }\n}\n\n\n// Condensed table w/ half padding\n\n.table-condensed {\n > thead,\n > tbody,\n > tfoot {\n > tr {\n > th,\n > td {\n padding: @table-condensed-cell-padding;\n }\n }\n }\n}\n\n\n// Bordered version\n//\n// Add borders all around the table and between all the columns.\n\n.table-bordered {\n border: 1px solid @table-border-color;\n > thead,\n > tbody,\n > tfoot {\n > tr {\n > th,\n > td {\n border: 1px solid @table-border-color;\n }\n }\n }\n > thead > tr {\n > th,\n > td {\n border-bottom-width: 2px;\n }\n }\n}\n\n\n// Zebra-striping\n//\n// Default zebra-stripe styles (alternating gray and transparent backgrounds)\n\n.table-striped {\n > tbody > tr:nth-of-type(odd) {\n background-color: @table-bg-accent;\n }\n}\n\n\n// Hover effect\n//\n// Placed here since it has to come after the potential zebra striping\n\n.table-hover {\n > tbody > tr:hover {\n background-color: @table-bg-hover;\n }\n}\n\n\n// Table cell sizing\n//\n// Reset default table behavior\n\ntable col[class*=\"col-\"] {\n position: static; // Prevent border hiding in Firefox and IE9-11 (see https://github.com/twbs/bootstrap/issues/11623)\n float: none;\n display: table-column;\n}\ntable {\n td,\n th {\n &[class*=\"col-\"] {\n position: static; // Prevent border hiding in Firefox and IE9-11 (see https://github.com/twbs/bootstrap/issues/11623)\n float: none;\n display: table-cell;\n }\n }\n}\n\n\n// Table backgrounds\n//\n// Exact selectors below required to override `.table-striped` and prevent\n// inheritance to nested tables.\n\n// Generate the contextual variants\n.table-row-variant(active; @table-bg-active);\n.table-row-variant(success; @state-success-bg);\n.table-row-variant(info; @state-info-bg);\n.table-row-variant(warning; @state-warning-bg);\n.table-row-variant(danger; @state-danger-bg);\n\n\n// Responsive tables\n//\n// Wrap your tables in `.table-responsive` and we'll make them mobile friendly\n// by enabling horizontal scrolling. Only applies <768px. Everything above that\n// will display normally.\n\n.table-responsive {\n overflow-x: auto;\n min-height: 0.01%; // Workaround for IE9 bug (see https://github.com/twbs/bootstrap/issues/14837)\n\n @media screen and (max-width: @screen-xs-max) {\n width: 100%;\n margin-bottom: (@line-height-computed * 0.75);\n overflow-y: hidden;\n -ms-overflow-style: -ms-autohiding-scrollbar;\n border: 1px solid @table-border-color;\n\n // Tighten up spacing\n > .table {\n margin-bottom: 0;\n\n // Ensure the content doesn't wrap\n > thead,\n > tbody,\n > tfoot {\n > tr {\n > th,\n > td {\n white-space: nowrap;\n }\n }\n }\n }\n\n // Special overrides for the bordered tables\n > .table-bordered {\n border: 0;\n\n // Nuke the appropriate borders so that the parent can handle them\n > thead,\n > tbody,\n > tfoot {\n > tr {\n > th:first-child,\n > td:first-child {\n border-left: 0;\n }\n > th:last-child,\n > td:last-child {\n border-right: 0;\n }\n }\n }\n\n // Only nuke the last row's bottom-border in `tbody` and `tfoot` since\n // chances are there will be only one `tr` in a `thead` and that would\n // remove the border altogether.\n > tbody,\n > tfoot {\n > tr:last-child {\n > th,\n > td {\n border-bottom: 0;\n }\n }\n }\n\n }\n }\n}\n","// Tables\n\n.table-row-variant(@state; @background) {\n // Exact selectors below required to override `.table-striped` and prevent\n // inheritance to nested tables.\n .table > thead > tr,\n .table > tbody > tr,\n .table > tfoot > tr {\n > td.@{state},\n > th.@{state},\n &.@{state} > td,\n &.@{state} > th {\n background-color: @background;\n }\n }\n\n // Hover states for `.table-hover`\n // Note: this is not available for cells or rows within `thead` or `tfoot`.\n .table-hover > tbody > tr {\n > td.@{state}:hover,\n > th.@{state}:hover,\n &.@{state}:hover > td,\n &:hover > .@{state},\n &.@{state}:hover > th {\n background-color: darken(@background, 5%);\n }\n }\n}\n","//\n// Forms\n// --------------------------------------------------\n\n\n// Normalize non-controls\n//\n// Restyle and baseline non-control form elements.\n\nfieldset {\n padding: 0;\n margin: 0;\n border: 0;\n // Chrome and Firefox set a `min-width: min-content;` on fieldsets,\n // so we reset that to ensure it behaves more like a standard block element.\n // See https://github.com/twbs/bootstrap/issues/12359.\n min-width: 0;\n}\n\nlegend {\n display: block;\n width: 100%;\n padding: 0;\n margin-bottom: @line-height-computed;\n font-size: (@font-size-base * 1.5);\n line-height: inherit;\n color: @legend-color;\n border: 0;\n border-bottom: 1px solid @legend-border-color;\n}\n\nlabel {\n display: inline-block;\n max-width: 100%; // Force IE8 to wrap long content (see https://github.com/twbs/bootstrap/issues/13141)\n margin-bottom: 5px;\n font-weight: bold;\n}\n\n\n// Normalize form controls\n//\n// While most of our form styles require extra classes, some basic normalization\n// is required to ensure optimum display with or without those classes to better\n// address browser inconsistencies.\n\n// Override content-box in Normalize (* isn't specific enough)\ninput[type=\"search\"] {\n .box-sizing(border-box);\n}\n\n// Position radios and checkboxes better\ninput[type=\"radio\"],\ninput[type=\"checkbox\"] {\n margin: 4px 0 0;\n margin-top: 1px \\9; // IE8-9\n line-height: normal;\n}\n\ninput[type=\"file\"] {\n display: block;\n}\n\n// Make range inputs behave like textual form controls\ninput[type=\"range\"] {\n display: block;\n width: 100%;\n}\n\n// Make multiple select elements height not fixed\nselect[multiple],\nselect[size] {\n height: auto;\n}\n\n// Focus for file, radio, and checkbox\ninput[type=\"file\"]:focus,\ninput[type=\"radio\"]:focus,\ninput[type=\"checkbox\"]:focus {\n .tab-focus();\n}\n\n// Adjust output element\noutput {\n display: block;\n padding-top: (@padding-base-vertical + 1);\n font-size: @font-size-base;\n line-height: @line-height-base;\n color: @input-color;\n}\n\n\n// Common form controls\n//\n// Shared size and type resets for form controls. Apply `.form-control` to any\n// of the following form controls:\n//\n// select\n// textarea\n// input[type=\"text\"]\n// input[type=\"password\"]\n// input[type=\"datetime\"]\n// input[type=\"datetime-local\"]\n// input[type=\"date\"]\n// input[type=\"month\"]\n// input[type=\"time\"]\n// input[type=\"week\"]\n// input[type=\"number\"]\n// input[type=\"email\"]\n// input[type=\"url\"]\n// input[type=\"search\"]\n// input[type=\"tel\"]\n// input[type=\"color\"]\n\n.form-control {\n display: block;\n width: 100%;\n height: @input-height-base; // Make inputs at least the height of their button counterpart (base line-height + padding + border)\n padding: @padding-base-vertical @padding-base-horizontal;\n font-size: @font-size-base;\n line-height: @line-height-base;\n color: @input-color;\n background-color: @input-bg;\n background-image: none; // Reset unusual Firefox-on-Android default style; see https://github.com/necolas/normalize.css/issues/214\n border: 1px solid @input-border;\n border-radius: @input-border-radius; // Note: This has no effect on <select>s in some browsers, due to the limited stylability of <select>s in CSS.\n .box-shadow(inset 0 1px 1px rgba(0,0,0,.075));\n .transition(~\"border-color ease-in-out .15s, box-shadow ease-in-out .15s\");\n\n // Customize the `:focus` state to imitate native WebKit styles.\n .form-control-focus();\n\n // Placeholder\n .placeholder();\n\n // Unstyle the caret on `<select>`s in IE10+.\n &::-ms-expand {\n border: 0;\n background-color: transparent;\n }\n\n // Disabled and read-only inputs\n //\n // HTML5 says that controls under a fieldset > legend:first-child won't be\n // disabled if the fieldset is disabled. Due to implementation difficulty, we\n // don't honor that edge case; we style them as disabled anyway.\n &[disabled],\n &[readonly],\n fieldset[disabled] & {\n background-color: @input-bg-disabled;\n opacity: 1; // iOS fix for unreadable disabled content; see https://github.com/twbs/bootstrap/issues/11655\n }\n\n &[disabled],\n fieldset[disabled] & {\n cursor: @cursor-disabled;\n }\n\n // Reset height for `textarea`s\n textarea& {\n height: auto;\n }\n}\n\n\n// Search inputs in iOS\n//\n// This overrides the extra rounded corners on search inputs in iOS so that our\n// `.form-control` class can properly style them. Note that this cannot simply\n// be added to `.form-control` as it's not specific enough. For details, see\n// https://github.com/twbs/bootstrap/issues/11586.\n\ninput[type=\"search\"] {\n -webkit-appearance: none;\n}\n\n\n// Special styles for iOS temporal inputs\n//\n// In Mobile Safari, setting `display: block` on temporal inputs causes the\n// text within the input to become vertically misaligned. As a workaround, we\n// set a pixel line-height that matches the given height of the input, but only\n// for Safari. See https://bugs.webkit.org/show_bug.cgi?id=139848\n//\n// Note that as of 9.3, iOS doesn't support `week`.\n\n@media screen and (-webkit-min-device-pixel-ratio: 0) {\n input[type=\"date\"],\n input[type=\"time\"],\n input[type=\"datetime-local\"],\n input[type=\"month\"] {\n &.form-control {\n line-height: @input-height-base;\n }\n\n &.input-sm,\n .input-group-sm & {\n line-height: @input-height-small;\n }\n\n &.input-lg,\n .input-group-lg & {\n line-height: @input-height-large;\n }\n }\n}\n\n\n// Form groups\n//\n// Designed to help with the organization and spacing of vertical forms. For\n// horizontal forms, use the predefined grid classes.\n\n.form-group {\n margin-bottom: @form-group-margin-bottom;\n}\n\n\n// Checkboxes and radios\n//\n// Indent the labels to position radios/checkboxes as hanging controls.\n\n.radio,\n.checkbox {\n position: relative;\n display: block;\n margin-top: 10px;\n margin-bottom: 10px;\n\n label {\n min-height: @line-height-computed; // Ensure the input doesn't jump when there is no text\n padding-left: 20px;\n margin-bottom: 0;\n font-weight: normal;\n cursor: pointer;\n }\n}\n.radio input[type=\"radio\"],\n.radio-inline input[type=\"radio\"],\n.checkbox input[type=\"checkbox\"],\n.checkbox-inline input[type=\"checkbox\"] {\n position: absolute;\n margin-left: -20px;\n margin-top: 4px \\9;\n}\n\n.radio + .radio,\n.checkbox + .checkbox {\n margin-top: -5px; // Move up sibling radios or checkboxes for tighter spacing\n}\n\n// Radios and checkboxes on same line\n.radio-inline,\n.checkbox-inline {\n position: relative;\n display: inline-block;\n padding-left: 20px;\n margin-bottom: 0;\n vertical-align: middle;\n font-weight: normal;\n cursor: pointer;\n}\n.radio-inline + .radio-inline,\n.checkbox-inline + .checkbox-inline {\n margin-top: 0;\n margin-left: 10px; // space out consecutive inline controls\n}\n\n// Apply same disabled cursor tweak as for inputs\n// Some special care is needed because <label>s don't inherit their parent's `cursor`.\n//\n// Note: Neither radios nor checkboxes can be readonly.\ninput[type=\"radio\"],\ninput[type=\"checkbox\"] {\n &[disabled],\n &.disabled,\n fieldset[disabled] & {\n cursor: @cursor-disabled;\n }\n}\n// These classes are used directly on <label>s\n.radio-inline,\n.checkbox-inline {\n &.disabled,\n fieldset[disabled] & {\n cursor: @cursor-disabled;\n }\n}\n// These classes are used on elements with <label> descendants\n.radio,\n.checkbox {\n &.disabled,\n fieldset[disabled] & {\n label {\n cursor: @cursor-disabled;\n }\n }\n}\n\n\n// Static form control text\n//\n// Apply class to a `p` element to make any string of text align with labels in\n// a horizontal form layout.\n\n.form-control-static {\n // Size it appropriately next to real form controls\n padding-top: (@padding-base-vertical + 1);\n padding-bottom: (@padding-base-vertical + 1);\n // Remove default margin from `p`\n margin-bottom: 0;\n min-height: (@line-height-computed + @font-size-base);\n\n &.input-lg,\n &.input-sm {\n padding-left: 0;\n padding-right: 0;\n }\n}\n\n\n// Form control sizing\n//\n// Build on `.form-control` with modifier classes to decrease or increase the\n// height and font-size of form controls.\n//\n// The `.form-group-* form-control` variations are sadly duplicated to avoid the\n// issue documented in https://github.com/twbs/bootstrap/issues/15074.\n\n.input-sm {\n .input-size(@input-height-small; @padding-small-vertical; @padding-small-horizontal; @font-size-small; @line-height-small; @input-border-radius-small);\n}\n.form-group-sm {\n .form-control {\n height: @input-height-small;\n padding: @padding-small-vertical @padding-small-horizontal;\n font-size: @font-size-small;\n line-height: @line-height-small;\n border-radius: @input-border-radius-small;\n }\n select.form-control {\n height: @input-height-small;\n line-height: @input-height-small;\n }\n textarea.form-control,\n select[multiple].form-control {\n height: auto;\n }\n .form-control-static {\n height: @input-height-small;\n min-height: (@line-height-computed + @font-size-small);\n padding: (@padding-small-vertical + 1) @padding-small-horizontal;\n font-size: @font-size-small;\n line-height: @line-height-small;\n }\n}\n\n.input-lg {\n .input-size(@input-height-large; @padding-large-vertical; @padding-large-horizontal; @font-size-large; @line-height-large; @input-border-radius-large);\n}\n.form-group-lg {\n .form-control {\n height: @input-height-large;\n padding: @padding-large-vertical @padding-large-horizontal;\n font-size: @font-size-large;\n line-height: @line-height-large;\n border-radius: @input-border-radius-large;\n }\n select.form-control {\n height: @input-height-large;\n line-height: @input-height-large;\n }\n textarea.form-control,\n select[multiple].form-control {\n height: auto;\n }\n .form-control-static {\n height: @input-height-large;\n min-height: (@line-height-computed + @font-size-large);\n padding: (@padding-large-vertical + 1) @padding-large-horizontal;\n font-size: @font-size-large;\n line-height: @line-height-large;\n }\n}\n\n\n// Form control feedback states\n//\n// Apply contextual and semantic states to individual form controls.\n\n.has-feedback {\n // Enable absolute positioning\n position: relative;\n\n // Ensure icons don't overlap text\n .form-control {\n padding-right: (@input-height-base * 1.25);\n }\n}\n// Feedback icon (requires .glyphicon classes)\n.form-control-feedback {\n position: absolute;\n top: 0;\n right: 0;\n z-index: 2; // Ensure icon is above input groups\n display: block;\n width: @input-height-base;\n height: @input-height-base;\n line-height: @input-height-base;\n text-align: center;\n pointer-events: none;\n}\n.input-lg + .form-control-feedback,\n.input-group-lg + .form-control-feedback,\n.form-group-lg .form-control + .form-control-feedback {\n width: @input-height-large;\n height: @input-height-large;\n line-height: @input-height-large;\n}\n.input-sm + .form-control-feedback,\n.input-group-sm + .form-control-feedback,\n.form-group-sm .form-control + .form-control-feedback {\n width: @input-height-small;\n height: @input-height-small;\n line-height: @input-height-small;\n}\n\n// Feedback states\n.has-success {\n .form-control-validation(@state-success-text; @state-success-text; @state-success-bg);\n}\n.has-warning {\n .form-control-validation(@state-warning-text; @state-warning-text; @state-warning-bg);\n}\n.has-error {\n .form-control-validation(@state-danger-text; @state-danger-text; @state-danger-bg);\n}\n\n// Reposition feedback icon if input has visible label above\n.has-feedback label {\n\n & ~ .form-control-feedback {\n top: (@line-height-computed + 5); // Height of the `label` and its margin\n }\n &.sr-only ~ .form-control-feedback {\n top: 0;\n }\n}\n\n\n// Help text\n//\n// Apply to any element you wish to create light text for placement immediately\n// below a form control. Use for general help, formatting, or instructional text.\n\n.help-block {\n display: block; // account for any element using help-block\n margin-top: 5px;\n margin-bottom: 10px;\n color: lighten(@text-color, 25%); // lighten the text some for contrast\n}\n\n\n// Inline forms\n//\n// Make forms appear inline(-block) by adding the `.form-inline` class. Inline\n// forms begin stacked on extra small (mobile) devices and then go inline when\n// viewports reach <768px.\n//\n// Requires wrapping inputs and labels with `.form-group` for proper display of\n// default HTML form controls and our custom form controls (e.g., input groups).\n//\n// Heads up! This is mixin-ed into `.navbar-form` in navbars.less.\n\n.form-inline {\n\n // Kick in the inline\n @media (min-width: @screen-sm-min) {\n // Inline-block all the things for \"inline\"\n .form-group {\n display: inline-block;\n margin-bottom: 0;\n vertical-align: middle;\n }\n\n // In navbar-form, allow folks to *not* use `.form-group`\n .form-control {\n display: inline-block;\n width: auto; // Prevent labels from stacking above inputs in `.form-group`\n vertical-align: middle;\n }\n\n // Make static controls behave like regular ones\n .form-control-static {\n display: inline-block;\n }\n\n .input-group {\n display: inline-table;\n vertical-align: middle;\n\n .input-group-addon,\n .input-group-btn,\n .form-control {\n width: auto;\n }\n }\n\n // Input groups need that 100% width though\n .input-group > .form-control {\n width: 100%;\n }\n\n .control-label {\n margin-bottom: 0;\n vertical-align: middle;\n }\n\n // Remove default margin on radios/checkboxes that were used for stacking, and\n // then undo the floating of radios and checkboxes to match.\n .radio,\n .checkbox {\n display: inline-block;\n margin-top: 0;\n margin-bottom: 0;\n vertical-align: middle;\n\n label {\n padding-left: 0;\n }\n }\n .radio input[type=\"radio\"],\n .checkbox input[type=\"checkbox\"] {\n position: relative;\n margin-left: 0;\n }\n\n // Re-override the feedback icon.\n .has-feedback .form-control-feedback {\n top: 0;\n }\n }\n}\n\n\n// Horizontal forms\n//\n// Horizontal forms are built on grid classes and allow you to create forms with\n// labels on the left and inputs on the right.\n\n.form-horizontal {\n\n // Consistent vertical alignment of radios and checkboxes\n //\n // Labels also get some reset styles, but that is scoped to a media query below.\n .radio,\n .checkbox,\n .radio-inline,\n .checkbox-inline {\n margin-top: 0;\n margin-bottom: 0;\n padding-top: (@padding-base-vertical + 1); // Default padding plus a border\n }\n // Account for padding we're adding to ensure the alignment and of help text\n // and other content below items\n .radio,\n .checkbox {\n min-height: (@line-height-computed + (@padding-base-vertical + 1));\n }\n\n // Make form groups behave like rows\n .form-group {\n .make-row();\n }\n\n // Reset spacing and right align labels, but scope to media queries so that\n // labels on narrow viewports stack the same as a default form example.\n @media (min-width: @screen-sm-min) {\n .control-label {\n text-align: right;\n margin-bottom: 0;\n padding-top: (@padding-base-vertical + 1); // Default padding plus a border\n }\n }\n\n // Validation states\n //\n // Reposition the icon because it's now within a grid column and columns have\n // `position: relative;` on them. Also accounts for the grid gutter padding.\n .has-feedback .form-control-feedback {\n right: floor((@grid-gutter-width / 2));\n }\n\n // Form group sizes\n //\n // Quick utility class for applying `.input-lg` and `.input-sm` styles to the\n // inputs and labels within a `.form-group`.\n .form-group-lg {\n @media (min-width: @screen-sm-min) {\n .control-label {\n padding-top: (@padding-large-vertical + 1);\n font-size: @font-size-large;\n }\n }\n }\n .form-group-sm {\n @media (min-width: @screen-sm-min) {\n .control-label {\n padding-top: (@padding-small-vertical + 1);\n font-size: @font-size-small;\n }\n }\n }\n}\n","// Form validation states\n//\n// Used in forms.less to generate the form validation CSS for warnings, errors,\n// and successes.\n\n.form-control-validation(@text-color: #555; @border-color: #ccc; @background-color: #f5f5f5) {\n // Color the label and help text\n .help-block,\n .control-label,\n .radio,\n .checkbox,\n .radio-inline,\n .checkbox-inline,\n &.radio label,\n &.checkbox label,\n &.radio-inline label,\n &.checkbox-inline label {\n color: @text-color;\n }\n // Set the border and box shadow on specific inputs to match\n .form-control {\n border-color: @border-color;\n .box-shadow(inset 0 1px 1px rgba(0,0,0,.075)); // Redeclare so transitions work\n &:focus {\n border-color: darken(@border-color, 10%);\n @shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 6px lighten(@border-color, 20%);\n .box-shadow(@shadow);\n }\n }\n // Set validation states also for addons\n .input-group-addon {\n color: @text-color;\n border-color: @border-color;\n background-color: @background-color;\n }\n // Optional feedback icon\n .form-control-feedback {\n color: @text-color;\n }\n}\n\n\n// Form control focus state\n//\n// Generate a customized focus state and for any input with the specified color,\n// which defaults to the `@input-border-focus` variable.\n//\n// We highly encourage you to not customize the default value, but instead use\n// this to tweak colors on an as-needed basis. This aesthetic change is based on\n// WebKit's default styles, but applicable to a wider range of browsers. Its\n// usability and accessibility should be taken into account with any change.\n//\n// Example usage: change the default blue border and shadow to white for better\n// contrast against a dark gray background.\n.form-control-focus(@color: @input-border-focus) {\n @color-rgba: rgba(red(@color), green(@color), blue(@color), .6);\n &:focus {\n border-color: @color;\n outline: 0;\n .box-shadow(~\"inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px @{color-rgba}\");\n }\n}\n\n// Form control sizing\n//\n// Relative text size, padding, and border-radii changes for form controls. For\n// horizontal sizing, wrap controls in the predefined grid classes. `<select>`\n// element gets special love because it's special, and that's a fact!\n.input-size(@input-height; @padding-vertical; @padding-horizontal; @font-size; @line-height; @border-radius) {\n height: @input-height;\n padding: @padding-vertical @padding-horizontal;\n font-size: @font-size;\n line-height: @line-height;\n border-radius: @border-radius;\n\n select& {\n height: @input-height;\n line-height: @input-height;\n }\n\n textarea&,\n select[multiple]& {\n height: auto;\n }\n}\n","//\n// Buttons\n// --------------------------------------------------\n\n\n// Base styles\n// --------------------------------------------------\n\n.btn {\n display: inline-block;\n margin-bottom: 0; // For input.btn\n font-weight: @btn-font-weight;\n text-align: center;\n vertical-align: middle;\n touch-action: manipulation;\n cursor: pointer;\n background-image: none; // Reset unusual Firefox-on-Android default style; see https://github.com/necolas/normalize.css/issues/214\n border: 1px solid transparent;\n white-space: nowrap;\n .button-size(@padding-base-vertical; @padding-base-horizontal; @font-size-base; @line-height-base; @btn-border-radius-base);\n .user-select(none);\n\n &,\n &:active,\n &.active {\n &:focus,\n &.focus {\n .tab-focus();\n }\n }\n\n &:hover,\n &:focus,\n &.focus {\n color: @btn-default-color;\n text-decoration: none;\n }\n\n &:active,\n &.active {\n outline: 0;\n background-image: none;\n .box-shadow(inset 0 3px 5px rgba(0,0,0,.125));\n }\n\n &.disabled,\n &[disabled],\n fieldset[disabled] & {\n cursor: @cursor-disabled;\n .opacity(.65);\n .box-shadow(none);\n }\n\n a& {\n &.disabled,\n fieldset[disabled] & {\n pointer-events: none; // Future-proof disabling of clicks on `<a>` elements\n }\n }\n}\n\n\n// Alternate buttons\n// --------------------------------------------------\n\n.btn-default {\n .button-variant(@btn-default-color; @btn-default-bg; @btn-default-border);\n}\n.btn-primary {\n .button-variant(@btn-primary-color; @btn-primary-bg; @btn-primary-border);\n}\n// Success appears as green\n.btn-success {\n .button-variant(@btn-success-color; @btn-success-bg; @btn-success-border);\n}\n// Info appears as blue-green\n.btn-info {\n .button-variant(@btn-info-color; @btn-info-bg; @btn-info-border);\n}\n// Warning appears as orange\n.btn-warning {\n .button-variant(@btn-warning-color; @btn-warning-bg; @btn-warning-border);\n}\n// Danger and error appear as red\n.btn-danger {\n .button-variant(@btn-danger-color; @btn-danger-bg; @btn-danger-border);\n}\n\n\n// Link buttons\n// -------------------------\n\n// Make a button look and behave like a link\n.btn-link {\n color: @link-color;\n font-weight: normal;\n border-radius: 0;\n\n &,\n &:active,\n &.active,\n &[disabled],\n fieldset[disabled] & {\n background-color: transparent;\n .box-shadow(none);\n }\n &,\n &:hover,\n &:focus,\n &:active {\n border-color: transparent;\n }\n &:hover,\n &:focus {\n color: @link-hover-color;\n text-decoration: @link-hover-decoration;\n background-color: transparent;\n }\n &[disabled],\n fieldset[disabled] & {\n &:hover,\n &:focus {\n color: @btn-link-disabled-color;\n text-decoration: none;\n }\n }\n}\n\n\n// Button Sizes\n// --------------------------------------------------\n\n.btn-lg {\n // line-height: ensure even-numbered height of button next to large input\n .button-size(@padding-large-vertical; @padding-large-horizontal; @font-size-large; @line-height-large; @btn-border-radius-large);\n}\n.btn-sm {\n // line-height: ensure proper height of button next to small input\n .button-size(@padding-small-vertical; @padding-small-horizontal; @font-size-small; @line-height-small; @btn-border-radius-small);\n}\n.btn-xs {\n .button-size(@padding-xs-vertical; @padding-xs-horizontal; @font-size-small; @line-height-small; @btn-border-radius-small);\n}\n\n\n// Block button\n// --------------------------------------------------\n\n.btn-block {\n display: block;\n width: 100%;\n}\n\n// Vertically space out multiple block buttons\n.btn-block + .btn-block {\n margin-top: 5px;\n}\n\n// Specificity overrides\ninput[type=\"submit\"],\ninput[type=\"reset\"],\ninput[type=\"button\"] {\n &.btn-block {\n width: 100%;\n }\n}\n","// Button variants\n//\n// Easily pump out default styles, as well as :hover, :focus, :active,\n// and disabled options for all buttons\n\n.button-variant(@color; @background; @border) {\n color: @color;\n background-color: @background;\n border-color: @border;\n\n &:focus,\n &.focus {\n color: @color;\n background-color: darken(@background, 10%);\n border-color: darken(@border, 25%);\n }\n &:hover {\n color: @color;\n background-color: darken(@background, 10%);\n border-color: darken(@border, 12%);\n }\n &:active,\n &.active,\n .open > .dropdown-toggle& {\n color: @color;\n background-color: darken(@background, 10%);\n border-color: darken(@border, 12%);\n\n &:hover,\n &:focus,\n &.focus {\n color: @color;\n background-color: darken(@background, 17%);\n border-color: darken(@border, 25%);\n }\n }\n &:active,\n &.active,\n .open > .dropdown-toggle& {\n background-image: none;\n }\n &.disabled,\n &[disabled],\n fieldset[disabled] & {\n &:hover,\n &:focus,\n &.focus {\n background-color: @background;\n border-color: @border;\n }\n }\n\n .badge {\n color: @background;\n background-color: @color;\n }\n}\n\n// Button sizes\n.button-size(@padding-vertical; @padding-horizontal; @font-size; @line-height; @border-radius) {\n padding: @padding-vertical @padding-horizontal;\n font-size: @font-size;\n line-height: @line-height;\n border-radius: @border-radius;\n}\n","// Opacity\n\n.opacity(@opacity) {\n opacity: @opacity;\n // IE8 filter\n @opacity-ie: (@opacity * 100);\n filter: ~\"alpha(opacity=@{opacity-ie})\";\n}\n","//\n// Component animations\n// --------------------------------------------------\n\n// Heads up!\n//\n// We don't use the `.opacity()` mixin here since it causes a bug with text\n// fields in IE7-8. Source: https://github.com/twbs/bootstrap/pull/3552.\n\n.fade {\n opacity: 0;\n .transition(opacity .15s linear);\n &.in {\n opacity: 1;\n }\n}\n\n.collapse {\n display: none;\n\n &.in { display: block; }\n tr&.in { display: table-row; }\n tbody&.in { display: table-row-group; }\n}\n\n.collapsing {\n position: relative;\n height: 0;\n overflow: hidden;\n .transition-property(~\"height, visibility\");\n .transition-duration(.35s);\n .transition-timing-function(ease);\n}\n","//\n// Dropdown menus\n// --------------------------------------------------\n\n\n// Dropdown arrow/caret\n.caret {\n display: inline-block;\n width: 0;\n height: 0;\n margin-left: 2px;\n vertical-align: middle;\n border-top: @caret-width-base dashed;\n border-top: @caret-width-base solid ~\"\\9\"; // IE8\n border-right: @caret-width-base solid transparent;\n border-left: @caret-width-base solid transparent;\n}\n\n// The dropdown wrapper (div)\n.dropup,\n.dropdown {\n position: relative;\n}\n\n// Prevent the focus on the dropdown toggle when closing dropdowns\n.dropdown-toggle:focus {\n outline: 0;\n}\n\n// The dropdown menu (ul)\n.dropdown-menu {\n position: absolute;\n top: 100%;\n left: 0;\n z-index: @zindex-dropdown;\n display: none; // none by default, but block on \"open\" of the menu\n float: left;\n min-width: 160px;\n padding: 5px 0;\n margin: 2px 0 0; // override default ul\n list-style: none;\n font-size: @font-size-base;\n text-align: left; // Ensures proper alignment if parent has it changed (e.g., modal footer)\n background-color: @dropdown-bg;\n border: 1px solid @dropdown-fallback-border; // IE8 fallback\n border: 1px solid @dropdown-border;\n border-radius: @border-radius-base;\n .box-shadow(0 6px 12px rgba(0,0,0,.175));\n background-clip: padding-box;\n\n // Aligns the dropdown menu to right\n //\n // Deprecated as of 3.1.0 in favor of `.dropdown-menu-[dir]`\n &.pull-right {\n right: 0;\n left: auto;\n }\n\n // Dividers (basically an hr) within the dropdown\n .divider {\n .nav-divider(@dropdown-divider-bg);\n }\n\n // Links within the dropdown menu\n > li > a {\n display: block;\n padding: 3px 20px;\n clear: both;\n font-weight: normal;\n line-height: @line-height-base;\n color: @dropdown-link-color;\n white-space: nowrap; // prevent links from randomly breaking onto new lines\n }\n}\n\n// Hover/Focus state\n.dropdown-menu > li > a {\n &:hover,\n &:focus {\n text-decoration: none;\n color: @dropdown-link-hover-color;\n background-color: @dropdown-link-hover-bg;\n }\n}\n\n// Active state\n.dropdown-menu > .active > a {\n &,\n &:hover,\n &:focus {\n color: @dropdown-link-active-color;\n text-decoration: none;\n outline: 0;\n background-color: @dropdown-link-active-bg;\n }\n}\n\n// Disabled state\n//\n// Gray out text and ensure the hover/focus state remains gray\n\n.dropdown-menu > .disabled > a {\n &,\n &:hover,\n &:focus {\n color: @dropdown-link-disabled-color;\n }\n\n // Nuke hover/focus effects\n &:hover,\n &:focus {\n text-decoration: none;\n background-color: transparent;\n background-image: none; // Remove CSS gradient\n .reset-filter();\n cursor: @cursor-disabled;\n }\n}\n\n// Open state for the dropdown\n.open {\n // Show the menu\n > .dropdown-menu {\n display: block;\n }\n\n // Remove the outline when :focus is triggered\n > a {\n outline: 0;\n }\n}\n\n// Menu positioning\n//\n// Add extra class to `.dropdown-menu` to flip the alignment of the dropdown\n// menu with the parent.\n.dropdown-menu-right {\n left: auto; // Reset the default from `.dropdown-menu`\n right: 0;\n}\n// With v3, we enabled auto-flipping if you have a dropdown within a right\n// aligned nav component. To enable the undoing of that, we provide an override\n// to restore the default dropdown menu alignment.\n//\n// This is only for left-aligning a dropdown menu within a `.navbar-right` or\n// `.pull-right` nav component.\n.dropdown-menu-left {\n left: 0;\n right: auto;\n}\n\n// Dropdown section headers\n.dropdown-header {\n display: block;\n padding: 3px 20px;\n font-size: @font-size-small;\n line-height: @line-height-base;\n color: @dropdown-header-color;\n white-space: nowrap; // as with > li > a\n}\n\n// Backdrop to catch body clicks on mobile, etc.\n.dropdown-backdrop {\n position: fixed;\n left: 0;\n right: 0;\n bottom: 0;\n top: 0;\n z-index: (@zindex-dropdown - 10);\n}\n\n// Right aligned dropdowns\n.pull-right > .dropdown-menu {\n right: 0;\n left: auto;\n}\n\n// Allow for dropdowns to go bottom up (aka, dropup-menu)\n//\n// Just add .dropup after the standard .dropdown class and you're set, bro.\n// TODO: abstract this so that the navbar fixed styles are not placed here?\n\n.dropup,\n.navbar-fixed-bottom .dropdown {\n // Reverse the caret\n .caret {\n border-top: 0;\n border-bottom: @caret-width-base dashed;\n border-bottom: @caret-width-base solid ~\"\\9\"; // IE8\n content: \"\";\n }\n // Different positioning for bottom up menu\n .dropdown-menu {\n top: auto;\n bottom: 100%;\n margin-bottom: 2px;\n }\n}\n\n\n// Component alignment\n//\n// Reiterate per navbar.less and the modified component alignment there.\n\n@media (min-width: @grid-float-breakpoint) {\n .navbar-right {\n .dropdown-menu {\n .dropdown-menu-right();\n }\n // Necessary for overrides of the default right aligned menu.\n // Will remove come v4 in all likelihood.\n .dropdown-menu-left {\n .dropdown-menu-left();\n }\n }\n}\n","// Horizontal dividers\n//\n// Dividers (basically an hr) within dropdowns and nav lists\n\n.nav-divider(@color: #e5e5e5) {\n height: 1px;\n margin: ((@line-height-computed / 2) - 1) 0;\n overflow: hidden;\n background-color: @color;\n}\n","// Reset filters for IE\n//\n// When you need to remove a gradient background, do not forget to use this to reset\n// the IE filter for IE9 and below.\n\n.reset-filter() {\n filter: e(%(\"progid:DXImageTransform.Microsoft.gradient(enabled = false)\"));\n}\n","//\n// Button groups\n// --------------------------------------------------\n\n// Make the div behave like a button\n.btn-group,\n.btn-group-vertical {\n position: relative;\n display: inline-block;\n vertical-align: middle; // match .btn alignment given font-size hack above\n > .btn {\n position: relative;\n float: left;\n // Bring the \"active\" button to the front\n &:hover,\n &:focus,\n &:active,\n &.active {\n z-index: 2;\n }\n }\n}\n\n// Prevent double borders when buttons are next to each other\n.btn-group {\n .btn + .btn,\n .btn + .btn-group,\n .btn-group + .btn,\n .btn-group + .btn-group {\n margin-left: -1px;\n }\n}\n\n// Optional: Group multiple button groups together for a toolbar\n.btn-toolbar {\n margin-left: -5px; // Offset the first child's margin\n &:extend(.clearfix all);\n\n .btn,\n .btn-group,\n .input-group {\n float: left;\n }\n > .btn,\n > .btn-group,\n > .input-group {\n margin-left: 5px;\n }\n}\n\n.btn-group > .btn:not(:first-child):not(:last-child):not(.dropdown-toggle) {\n border-radius: 0;\n}\n\n// Set corners individual because sometimes a single button can be in a .btn-group and we need :first-child and :last-child to both match\n.btn-group > .btn:first-child {\n margin-left: 0;\n &:not(:last-child):not(.dropdown-toggle) {\n .border-right-radius(0);\n }\n}\n// Need .dropdown-toggle since :last-child doesn't apply, given that a .dropdown-menu is used immediately after it\n.btn-group > .btn:last-child:not(:first-child),\n.btn-group > .dropdown-toggle:not(:first-child) {\n .border-left-radius(0);\n}\n\n// Custom edits for including btn-groups within btn-groups (useful for including dropdown buttons within a btn-group)\n.btn-group > .btn-group {\n float: left;\n}\n.btn-group > .btn-group:not(:first-child):not(:last-child) > .btn {\n border-radius: 0;\n}\n.btn-group > .btn-group:first-child:not(:last-child) {\n > .btn:last-child,\n > .dropdown-toggle {\n .border-right-radius(0);\n }\n}\n.btn-group > .btn-group:last-child:not(:first-child) > .btn:first-child {\n .border-left-radius(0);\n}\n\n// On active and open, don't show outline\n.btn-group .dropdown-toggle:active,\n.btn-group.open .dropdown-toggle {\n outline: 0;\n}\n\n\n// Sizing\n//\n// Remix the default button sizing classes into new ones for easier manipulation.\n\n.btn-group-xs > .btn { &:extend(.btn-xs); }\n.btn-group-sm > .btn { &:extend(.btn-sm); }\n.btn-group-lg > .btn { &:extend(.btn-lg); }\n\n\n// Split button dropdowns\n// ----------------------\n\n// Give the line between buttons some depth\n.btn-group > .btn + .dropdown-toggle {\n padding-left: 8px;\n padding-right: 8px;\n}\n.btn-group > .btn-lg + .dropdown-toggle {\n padding-left: 12px;\n padding-right: 12px;\n}\n\n// The clickable button for toggling the menu\n// Remove the gradient and set the same inset shadow as the :active state\n.btn-group.open .dropdown-toggle {\n .box-shadow(inset 0 3px 5px rgba(0,0,0,.125));\n\n // Show no shadow for `.btn-link` since it has no other button styles.\n &.btn-link {\n .box-shadow(none);\n }\n}\n\n\n// Reposition the caret\n.btn .caret {\n margin-left: 0;\n}\n// Carets in other button sizes\n.btn-lg .caret {\n border-width: @caret-width-large @caret-width-large 0;\n border-bottom-width: 0;\n}\n// Upside down carets for .dropup\n.dropup .btn-lg .caret {\n border-width: 0 @caret-width-large @caret-width-large;\n}\n\n\n// Vertical button groups\n// ----------------------\n\n.btn-group-vertical {\n > .btn,\n > .btn-group,\n > .btn-group > .btn {\n display: block;\n float: none;\n width: 100%;\n max-width: 100%;\n }\n\n // Clear floats so dropdown menus can be properly placed\n > .btn-group {\n &:extend(.clearfix all);\n > .btn {\n float: none;\n }\n }\n\n > .btn + .btn,\n > .btn + .btn-group,\n > .btn-group + .btn,\n > .btn-group + .btn-group {\n margin-top: -1px;\n margin-left: 0;\n }\n}\n\n.btn-group-vertical > .btn {\n &:not(:first-child):not(:last-child) {\n border-radius: 0;\n }\n &:first-child:not(:last-child) {\n .border-top-radius(@btn-border-radius-base);\n .border-bottom-radius(0);\n }\n &:last-child:not(:first-child) {\n .border-top-radius(0);\n .border-bottom-radius(@btn-border-radius-base);\n }\n}\n.btn-group-vertical > .btn-group:not(:first-child):not(:last-child) > .btn {\n border-radius: 0;\n}\n.btn-group-vertical > .btn-group:first-child:not(:last-child) {\n > .btn:last-child,\n > .dropdown-toggle {\n .border-bottom-radius(0);\n }\n}\n.btn-group-vertical > .btn-group:last-child:not(:first-child) > .btn:first-child {\n .border-top-radius(0);\n}\n\n\n// Justified button groups\n// ----------------------\n\n.btn-group-justified {\n display: table;\n width: 100%;\n table-layout: fixed;\n border-collapse: separate;\n > .btn,\n > .btn-group {\n float: none;\n display: table-cell;\n width: 1%;\n }\n > .btn-group .btn {\n width: 100%;\n }\n\n > .btn-group .dropdown-menu {\n left: auto;\n }\n}\n\n\n// Checkbox and radio options\n//\n// In order to support the browser's form validation feedback, powered by the\n// `required` attribute, we have to \"hide\" the inputs via `clip`. We cannot use\n// `display: none;` or `visibility: hidden;` as that also hides the popover.\n// Simply visually hiding the inputs via `opacity` would leave them clickable in\n// certain cases which is prevented by using `clip` and `pointer-events`.\n// This way, we ensure a DOM element is visible to position the popover from.\n//\n// See https://github.com/twbs/bootstrap/pull/12794 and\n// https://github.com/twbs/bootstrap/pull/14559 for more information.\n\n[data-toggle=\"buttons\"] {\n > .btn,\n > .btn-group > .btn {\n input[type=\"radio\"],\n input[type=\"checkbox\"] {\n position: absolute;\n clip: rect(0,0,0,0);\n pointer-events: none;\n }\n }\n}\n","// Single side border-radius\n\n.border-top-radius(@radius) {\n border-top-right-radius: @radius;\n border-top-left-radius: @radius;\n}\n.border-right-radius(@radius) {\n border-bottom-right-radius: @radius;\n border-top-right-radius: @radius;\n}\n.border-bottom-radius(@radius) {\n border-bottom-right-radius: @radius;\n border-bottom-left-radius: @radius;\n}\n.border-left-radius(@radius) {\n border-bottom-left-radius: @radius;\n border-top-left-radius: @radius;\n}\n","//\n// Input groups\n// --------------------------------------------------\n\n// Base styles\n// -------------------------\n.input-group {\n position: relative; // For dropdowns\n display: table;\n border-collapse: separate; // prevent input groups from inheriting border styles from table cells when placed within a table\n\n // Undo padding and float of grid classes\n &[class*=\"col-\"] {\n float: none;\n padding-left: 0;\n padding-right: 0;\n }\n\n .form-control {\n // Ensure that the input is always above the *appended* addon button for\n // proper border colors.\n position: relative;\n z-index: 2;\n\n // IE9 fubars the placeholder attribute in text inputs and the arrows on\n // select elements in input groups. To fix it, we float the input. Details:\n // https://github.com/twbs/bootstrap/issues/11561#issuecomment-28936855\n float: left;\n\n width: 100%;\n margin-bottom: 0;\n\n &:focus {\n z-index: 3;\n }\n }\n}\n\n// Sizing options\n//\n// Remix the default form control sizing classes into new ones for easier\n// manipulation.\n\n.input-group-lg > .form-control,\n.input-group-lg > .input-group-addon,\n.input-group-lg > .input-group-btn > .btn {\n .input-lg();\n}\n.input-group-sm > .form-control,\n.input-group-sm > .input-group-addon,\n.input-group-sm > .input-group-btn > .btn {\n .input-sm();\n}\n\n\n// Display as table-cell\n// -------------------------\n.input-group-addon,\n.input-group-btn,\n.input-group .form-control {\n display: table-cell;\n\n &:not(:first-child):not(:last-child) {\n border-radius: 0;\n }\n}\n// Addon and addon wrapper for buttons\n.input-group-addon,\n.input-group-btn {\n width: 1%;\n white-space: nowrap;\n vertical-align: middle; // Match the inputs\n}\n\n// Text input groups\n// -------------------------\n.input-group-addon {\n padding: @padding-base-vertical @padding-base-horizontal;\n font-size: @font-size-base;\n font-weight: normal;\n line-height: 1;\n color: @input-color;\n text-align: center;\n background-color: @input-group-addon-bg;\n border: 1px solid @input-group-addon-border-color;\n border-radius: @input-border-radius;\n\n // Sizing\n &.input-sm {\n padding: @padding-small-vertical @padding-small-horizontal;\n font-size: @font-size-small;\n border-radius: @input-border-radius-small;\n }\n &.input-lg {\n padding: @padding-large-vertical @padding-large-horizontal;\n font-size: @font-size-large;\n border-radius: @input-border-radius-large;\n }\n\n // Nuke default margins from checkboxes and radios to vertically center within.\n input[type=\"radio\"],\n input[type=\"checkbox\"] {\n margin-top: 0;\n }\n}\n\n// Reset rounded corners\n.input-group .form-control:first-child,\n.input-group-addon:first-child,\n.input-group-btn:first-child > .btn,\n.input-group-btn:first-child > .btn-group > .btn,\n.input-group-btn:first-child > .dropdown-toggle,\n.input-group-btn:last-child > .btn:not(:last-child):not(.dropdown-toggle),\n.input-group-btn:last-child > .btn-group:not(:last-child) > .btn {\n .border-right-radius(0);\n}\n.input-group-addon:first-child {\n border-right: 0;\n}\n.input-group .form-control:last-child,\n.input-group-addon:last-child,\n.input-group-btn:last-child > .btn,\n.input-group-btn:last-child > .btn-group > .btn,\n.input-group-btn:last-child > .dropdown-toggle,\n.input-group-btn:first-child > .btn:not(:first-child),\n.input-group-btn:first-child > .btn-group:not(:first-child) > .btn {\n .border-left-radius(0);\n}\n.input-group-addon:last-child {\n border-left: 0;\n}\n\n// Button input groups\n// -------------------------\n.input-group-btn {\n position: relative;\n // Jankily prevent input button groups from wrapping with `white-space` and\n // `font-size` in combination with `inline-block` on buttons.\n font-size: 0;\n white-space: nowrap;\n\n // Negative margin for spacing, position for bringing hovered/focused/actived\n // element above the siblings.\n > .btn {\n position: relative;\n + .btn {\n margin-left: -1px;\n }\n // Bring the \"active\" button to the front\n &:hover,\n &:focus,\n &:active {\n z-index: 2;\n }\n }\n\n // Negative margin to only have a 1px border between the two\n &:first-child {\n > .btn,\n > .btn-group {\n margin-right: -1px;\n }\n }\n &:last-child {\n > .btn,\n > .btn-group {\n z-index: 2;\n margin-left: -1px;\n }\n }\n}\n","//\n// Navs\n// --------------------------------------------------\n\n\n// Base class\n// --------------------------------------------------\n\n.nav {\n margin-bottom: 0;\n padding-left: 0; // Override default ul/ol\n list-style: none;\n &:extend(.clearfix all);\n\n > li {\n position: relative;\n display: block;\n\n > a {\n position: relative;\n display: block;\n padding: @nav-link-padding;\n &:hover,\n &:focus {\n text-decoration: none;\n background-color: @nav-link-hover-bg;\n }\n }\n\n // Disabled state sets text to gray and nukes hover/tab effects\n &.disabled > a {\n color: @nav-disabled-link-color;\n\n &:hover,\n &:focus {\n color: @nav-disabled-link-hover-color;\n text-decoration: none;\n background-color: transparent;\n cursor: @cursor-disabled;\n }\n }\n }\n\n // Open dropdowns\n .open > a {\n &,\n &:hover,\n &:focus {\n background-color: @nav-link-hover-bg;\n border-color: @link-color;\n }\n }\n\n // Nav dividers (deprecated with v3.0.1)\n //\n // This should have been removed in v3 with the dropping of `.nav-list`, but\n // we missed it. We don't currently support this anywhere, but in the interest\n // of maintaining backward compatibility in case you use it, it's deprecated.\n .nav-divider {\n .nav-divider();\n }\n\n // Prevent IE8 from misplacing imgs\n //\n // See https://github.com/h5bp/html5-boilerplate/issues/984#issuecomment-3985989\n > li > a > img {\n max-width: none;\n }\n}\n\n\n// Tabs\n// -------------------------\n\n// Give the tabs something to sit on\n.nav-tabs {\n border-bottom: 1px solid @nav-tabs-border-color;\n > li {\n float: left;\n // Make the list-items overlay the bottom border\n margin-bottom: -1px;\n\n // Actual tabs (as links)\n > a {\n margin-right: 2px;\n line-height: @line-height-base;\n border: 1px solid transparent;\n border-radius: @border-radius-base @border-radius-base 0 0;\n &:hover {\n border-color: @nav-tabs-link-hover-border-color @nav-tabs-link-hover-border-color @nav-tabs-border-color;\n }\n }\n\n // Active state, and its :hover to override normal :hover\n &.active > a {\n &,\n &:hover,\n &:focus {\n color: @nav-tabs-active-link-hover-color;\n background-color: @nav-tabs-active-link-hover-bg;\n border: 1px solid @nav-tabs-active-link-hover-border-color;\n border-bottom-color: transparent;\n cursor: default;\n }\n }\n }\n // pulling this in mainly for less shorthand\n &.nav-justified {\n .nav-justified();\n .nav-tabs-justified();\n }\n}\n\n\n// Pills\n// -------------------------\n.nav-pills {\n > li {\n float: left;\n\n // Links rendered as pills\n > a {\n border-radius: @nav-pills-border-radius;\n }\n + li {\n margin-left: 2px;\n }\n\n // Active state\n &.active > a {\n &,\n &:hover,\n &:focus {\n color: @nav-pills-active-link-hover-color;\n background-color: @nav-pills-active-link-hover-bg;\n }\n }\n }\n}\n\n\n// Stacked pills\n.nav-stacked {\n > li {\n float: none;\n + li {\n margin-top: 2px;\n margin-left: 0; // no need for this gap between nav items\n }\n }\n}\n\n\n// Nav variations\n// --------------------------------------------------\n\n// Justified nav links\n// -------------------------\n\n.nav-justified {\n width: 100%;\n\n > li {\n float: none;\n > a {\n text-align: center;\n margin-bottom: 5px;\n }\n }\n\n > .dropdown .dropdown-menu {\n top: auto;\n left: auto;\n }\n\n @media (min-width: @screen-sm-min) {\n > li {\n display: table-cell;\n width: 1%;\n > a {\n margin-bottom: 0;\n }\n }\n }\n}\n\n// Move borders to anchors instead of bottom of list\n//\n// Mixin for adding on top the shared `.nav-justified` styles for our tabs\n.nav-tabs-justified {\n border-bottom: 0;\n\n > li > a {\n // Override margin from .nav-tabs\n margin-right: 0;\n border-radius: @border-radius-base;\n }\n\n > .active > a,\n > .active > a:hover,\n > .active > a:focus {\n border: 1px solid @nav-tabs-justified-link-border-color;\n }\n\n @media (min-width: @screen-sm-min) {\n > li > a {\n border-bottom: 1px solid @nav-tabs-justified-link-border-color;\n border-radius: @border-radius-base @border-radius-base 0 0;\n }\n > .active > a,\n > .active > a:hover,\n > .active > a:focus {\n border-bottom-color: @nav-tabs-justified-active-link-border-color;\n }\n }\n}\n\n\n// Tabbable tabs\n// -------------------------\n\n// Hide tabbable panes to start, show them when `.active`\n.tab-content {\n > .tab-pane {\n display: none;\n }\n > .active {\n display: block;\n }\n}\n\n\n// Dropdowns\n// -------------------------\n\n// Specific dropdowns\n.nav-tabs .dropdown-menu {\n // make dropdown border overlap tab border\n margin-top: -1px;\n // Remove the top rounded corners here since there is a hard edge above the menu\n .border-top-radius(0);\n}\n","//\n// Navbars\n// --------------------------------------------------\n\n\n// Wrapper and base class\n//\n// Provide a static navbar from which we expand to create full-width, fixed, and\n// other navbar variations.\n\n.navbar {\n position: relative;\n min-height: @navbar-height; // Ensure a navbar always shows (e.g., without a .navbar-brand in collapsed mode)\n margin-bottom: @navbar-margin-bottom;\n border: 1px solid transparent;\n\n // Prevent floats from breaking the navbar\n &:extend(.clearfix all);\n\n @media (min-width: @grid-float-breakpoint) {\n border-radius: @navbar-border-radius;\n }\n}\n\n\n// Navbar heading\n//\n// Groups `.navbar-brand` and `.navbar-toggle` into a single component for easy\n// styling of responsive aspects.\n\n.navbar-header {\n &:extend(.clearfix all);\n\n @media (min-width: @grid-float-breakpoint) {\n float: left;\n }\n}\n\n\n// Navbar collapse (body)\n//\n// Group your navbar content into this for easy collapsing and expanding across\n// various device sizes. By default, this content is collapsed when <768px, but\n// will expand past that for a horizontal display.\n//\n// To start (on mobile devices) the navbar links, forms, and buttons are stacked\n// vertically and include a `max-height` to overflow in case you have too much\n// content for the user's viewport.\n\n.navbar-collapse {\n overflow-x: visible;\n padding-right: @navbar-padding-horizontal;\n padding-left: @navbar-padding-horizontal;\n border-top: 1px solid transparent;\n box-shadow: inset 0 1px 0 rgba(255,255,255,.1);\n &:extend(.clearfix all);\n -webkit-overflow-scrolling: touch;\n\n &.in {\n overflow-y: auto;\n }\n\n @media (min-width: @grid-float-breakpoint) {\n width: auto;\n border-top: 0;\n box-shadow: none;\n\n &.collapse {\n display: block !important;\n height: auto !important;\n padding-bottom: 0; // Override default setting\n overflow: visible !important;\n }\n\n &.in {\n overflow-y: visible;\n }\n\n // Undo the collapse side padding for navbars with containers to ensure\n // alignment of right-aligned contents.\n .navbar-fixed-top &,\n .navbar-static-top &,\n .navbar-fixed-bottom & {\n padding-left: 0;\n padding-right: 0;\n }\n }\n}\n\n.navbar-fixed-top,\n.navbar-fixed-bottom {\n .navbar-collapse {\n max-height: @navbar-collapse-max-height;\n\n @media (max-device-width: @screen-xs-min) and (orientation: landscape) {\n max-height: 200px;\n }\n }\n}\n\n\n// Both navbar header and collapse\n//\n// When a container is present, change the behavior of the header and collapse.\n\n.container,\n.container-fluid {\n > .navbar-header,\n > .navbar-collapse {\n margin-right: -@navbar-padding-horizontal;\n margin-left: -@navbar-padding-horizontal;\n\n @media (min-width: @grid-float-breakpoint) {\n margin-right: 0;\n margin-left: 0;\n }\n }\n}\n\n\n//\n// Navbar alignment options\n//\n// Display the navbar across the entirety of the page or fixed it to the top or\n// bottom of the page.\n\n// Static top (unfixed, but 100% wide) navbar\n.navbar-static-top {\n z-index: @zindex-navbar;\n border-width: 0 0 1px;\n\n @media (min-width: @grid-float-breakpoint) {\n border-radius: 0;\n }\n}\n\n// Fix the top/bottom navbars when screen real estate supports it\n.navbar-fixed-top,\n.navbar-fixed-bottom {\n position: fixed;\n right: 0;\n left: 0;\n z-index: @zindex-navbar-fixed;\n\n // Undo the rounded corners\n @media (min-width: @grid-float-breakpoint) {\n border-radius: 0;\n }\n}\n.navbar-fixed-top {\n top: 0;\n border-width: 0 0 1px;\n}\n.navbar-fixed-bottom {\n bottom: 0;\n margin-bottom: 0; // override .navbar defaults\n border-width: 1px 0 0;\n}\n\n\n// Brand/project name\n\n.navbar-brand {\n float: left;\n padding: @navbar-padding-vertical @navbar-padding-horizontal;\n font-size: @font-size-large;\n line-height: @line-height-computed;\n height: @navbar-height;\n\n &:hover,\n &:focus {\n text-decoration: none;\n }\n\n > img {\n display: block;\n }\n\n @media (min-width: @grid-float-breakpoint) {\n .navbar > .container &,\n .navbar > .container-fluid & {\n margin-left: -@navbar-padding-horizontal;\n }\n }\n}\n\n\n// Navbar toggle\n//\n// Custom button for toggling the `.navbar-collapse`, powered by the collapse\n// JavaScript plugin.\n\n.navbar-toggle {\n position: relative;\n float: right;\n margin-right: @navbar-padding-horizontal;\n padding: 9px 10px;\n .navbar-vertical-align(34px);\n background-color: transparent;\n background-image: none; // Reset unusual Firefox-on-Android default style; see https://github.com/necolas/normalize.css/issues/214\n border: 1px solid transparent;\n border-radius: @border-radius-base;\n\n // We remove the `outline` here, but later compensate by attaching `:hover`\n // styles to `:focus`.\n &:focus {\n outline: 0;\n }\n\n // Bars\n .icon-bar {\n display: block;\n width: 22px;\n height: 2px;\n border-radius: 1px;\n }\n .icon-bar + .icon-bar {\n margin-top: 4px;\n }\n\n @media (min-width: @grid-float-breakpoint) {\n display: none;\n }\n}\n\n\n// Navbar nav links\n//\n// Builds on top of the `.nav` components with its own modifier class to make\n// the nav the full height of the horizontal nav (above 768px).\n\n.navbar-nav {\n margin: (@navbar-padding-vertical / 2) -@navbar-padding-horizontal;\n\n > li > a {\n padding-top: 10px;\n padding-bottom: 10px;\n line-height: @line-height-computed;\n }\n\n @media (max-width: @grid-float-breakpoint-max) {\n // Dropdowns get custom display when collapsed\n .open .dropdown-menu {\n position: static;\n float: none;\n width: auto;\n margin-top: 0;\n background-color: transparent;\n border: 0;\n box-shadow: none;\n > li > a,\n .dropdown-header {\n padding: 5px 15px 5px 25px;\n }\n > li > a {\n line-height: @line-height-computed;\n &:hover,\n &:focus {\n background-image: none;\n }\n }\n }\n }\n\n // Uncollapse the nav\n @media (min-width: @grid-float-breakpoint) {\n float: left;\n margin: 0;\n\n > li {\n float: left;\n > a {\n padding-top: @navbar-padding-vertical;\n padding-bottom: @navbar-padding-vertical;\n }\n }\n }\n}\n\n\n// Navbar form\n//\n// Extension of the `.form-inline` with some extra flavor for optimum display in\n// our navbars.\n\n.navbar-form {\n margin-left: -@navbar-padding-horizontal;\n margin-right: -@navbar-padding-horizontal;\n padding: 10px @navbar-padding-horizontal;\n border-top: 1px solid transparent;\n border-bottom: 1px solid transparent;\n @shadow: inset 0 1px 0 rgba(255,255,255,.1), 0 1px 0 rgba(255,255,255,.1);\n .box-shadow(@shadow);\n\n // Mixin behavior for optimum display\n .form-inline();\n\n .form-group {\n @media (max-width: @grid-float-breakpoint-max) {\n margin-bottom: 5px;\n\n &:last-child {\n margin-bottom: 0;\n }\n }\n }\n\n // Vertically center in expanded, horizontal navbar\n .navbar-vertical-align(@input-height-base);\n\n // Undo 100% width for pull classes\n @media (min-width: @grid-float-breakpoint) {\n width: auto;\n border: 0;\n margin-left: 0;\n margin-right: 0;\n padding-top: 0;\n padding-bottom: 0;\n .box-shadow(none);\n }\n}\n\n\n// Dropdown menus\n\n// Menu position and menu carets\n.navbar-nav > li > .dropdown-menu {\n margin-top: 0;\n .border-top-radius(0);\n}\n// Menu position and menu caret support for dropups via extra dropup class\n.navbar-fixed-bottom .navbar-nav > li > .dropdown-menu {\n margin-bottom: 0;\n .border-top-radius(@navbar-border-radius);\n .border-bottom-radius(0);\n}\n\n\n// Buttons in navbars\n//\n// Vertically center a button within a navbar (when *not* in a form).\n\n.navbar-btn {\n .navbar-vertical-align(@input-height-base);\n\n &.btn-sm {\n .navbar-vertical-align(@input-height-small);\n }\n &.btn-xs {\n .navbar-vertical-align(22);\n }\n}\n\n\n// Text in navbars\n//\n// Add a class to make any element properly align itself vertically within the navbars.\n\n.navbar-text {\n .navbar-vertical-align(@line-height-computed);\n\n @media (min-width: @grid-float-breakpoint) {\n float: left;\n margin-left: @navbar-padding-horizontal;\n margin-right: @navbar-padding-horizontal;\n }\n}\n\n\n// Component alignment\n//\n// Repurpose the pull utilities as their own navbar utilities to avoid specificity\n// issues with parents and chaining. Only do this when the navbar is uncollapsed\n// though so that navbar contents properly stack and align in mobile.\n//\n// Declared after the navbar components to ensure more specificity on the margins.\n\n@media (min-width: @grid-float-breakpoint) {\n .navbar-left { .pull-left(); }\n .navbar-right {\n .pull-right();\n margin-right: -@navbar-padding-horizontal;\n\n ~ .navbar-right {\n margin-right: 0;\n }\n }\n}\n\n\n// Alternate navbars\n// --------------------------------------------------\n\n// Default navbar\n.navbar-default {\n background-color: @navbar-default-bg;\n border-color: @navbar-default-border;\n\n .navbar-brand {\n color: @navbar-default-brand-color;\n &:hover,\n &:focus {\n color: @navbar-default-brand-hover-color;\n background-color: @navbar-default-brand-hover-bg;\n }\n }\n\n .navbar-text {\n color: @navbar-default-color;\n }\n\n .navbar-nav {\n > li > a {\n color: @navbar-default-link-color;\n\n &:hover,\n &:focus {\n color: @navbar-default-link-hover-color;\n background-color: @navbar-default-link-hover-bg;\n }\n }\n > .active > a {\n &,\n &:hover,\n &:focus {\n color: @navbar-default-link-active-color;\n background-color: @navbar-default-link-active-bg;\n }\n }\n > .disabled > a {\n &,\n &:hover,\n &:focus {\n color: @navbar-default-link-disabled-color;\n background-color: @navbar-default-link-disabled-bg;\n }\n }\n }\n\n .navbar-toggle {\n border-color: @navbar-default-toggle-border-color;\n &:hover,\n &:focus {\n background-color: @navbar-default-toggle-hover-bg;\n }\n .icon-bar {\n background-color: @navbar-default-toggle-icon-bar-bg;\n }\n }\n\n .navbar-collapse,\n .navbar-form {\n border-color: @navbar-default-border;\n }\n\n // Dropdown menu items\n .navbar-nav {\n // Remove background color from open dropdown\n > .open > a {\n &,\n &:hover,\n &:focus {\n background-color: @navbar-default-link-active-bg;\n color: @navbar-default-link-active-color;\n }\n }\n\n @media (max-width: @grid-float-breakpoint-max) {\n // Dropdowns get custom display when collapsed\n .open .dropdown-menu {\n > li > a {\n color: @navbar-default-link-color;\n &:hover,\n &:focus {\n color: @navbar-default-link-hover-color;\n background-color: @navbar-default-link-hover-bg;\n }\n }\n > .active > a {\n &,\n &:hover,\n &:focus {\n color: @navbar-default-link-active-color;\n background-color: @navbar-default-link-active-bg;\n }\n }\n > .disabled > a {\n &,\n &:hover,\n &:focus {\n color: @navbar-default-link-disabled-color;\n background-color: @navbar-default-link-disabled-bg;\n }\n }\n }\n }\n }\n\n\n // Links in navbars\n //\n // Add a class to ensure links outside the navbar nav are colored correctly.\n\n .navbar-link {\n color: @navbar-default-link-color;\n &:hover {\n color: @navbar-default-link-hover-color;\n }\n }\n\n .btn-link {\n color: @navbar-default-link-color;\n &:hover,\n &:focus {\n color: @navbar-default-link-hover-color;\n }\n &[disabled],\n fieldset[disabled] & {\n &:hover,\n &:focus {\n color: @navbar-default-link-disabled-color;\n }\n }\n }\n}\n\n// Inverse navbar\n\n.navbar-inverse {\n background-color: @navbar-inverse-bg;\n border-color: @navbar-inverse-border;\n\n .navbar-brand {\n color: @navbar-inverse-brand-color;\n &:hover,\n &:focus {\n color: @navbar-inverse-brand-hover-color;\n background-color: @navbar-inverse-brand-hover-bg;\n }\n }\n\n .navbar-text {\n color: @navbar-inverse-color;\n }\n\n .navbar-nav {\n > li > a {\n color: @navbar-inverse-link-color;\n\n &:hover,\n &:focus {\n color: @navbar-inverse-link-hover-color;\n background-color: @navbar-inverse-link-hover-bg;\n }\n }\n > .active > a {\n &,\n &:hover,\n &:focus {\n color: @navbar-inverse-link-active-color;\n background-color: @navbar-inverse-link-active-bg;\n }\n }\n > .disabled > a {\n &,\n &:hover,\n &:focus {\n color: @navbar-inverse-link-disabled-color;\n background-color: @navbar-inverse-link-disabled-bg;\n }\n }\n }\n\n // Darken the responsive nav toggle\n .navbar-toggle {\n border-color: @navbar-inverse-toggle-border-color;\n &:hover,\n &:focus {\n background-color: @navbar-inverse-toggle-hover-bg;\n }\n .icon-bar {\n background-color: @navbar-inverse-toggle-icon-bar-bg;\n }\n }\n\n .navbar-collapse,\n .navbar-form {\n border-color: darken(@navbar-inverse-bg, 7%);\n }\n\n // Dropdowns\n .navbar-nav {\n > .open > a {\n &,\n &:hover,\n &:focus {\n background-color: @navbar-inverse-link-active-bg;\n color: @navbar-inverse-link-active-color;\n }\n }\n\n @media (max-width: @grid-float-breakpoint-max) {\n // Dropdowns get custom display\n .open .dropdown-menu {\n > .dropdown-header {\n border-color: @navbar-inverse-border;\n }\n .divider {\n background-color: @navbar-inverse-border;\n }\n > li > a {\n color: @navbar-inverse-link-color;\n &:hover,\n &:focus {\n color: @navbar-inverse-link-hover-color;\n background-color: @navbar-inverse-link-hover-bg;\n }\n }\n > .active > a {\n &,\n &:hover,\n &:focus {\n color: @navbar-inverse-link-active-color;\n background-color: @navbar-inverse-link-active-bg;\n }\n }\n > .disabled > a {\n &,\n &:hover,\n &:focus {\n color: @navbar-inverse-link-disabled-color;\n background-color: @navbar-inverse-link-disabled-bg;\n }\n }\n }\n }\n }\n\n .navbar-link {\n color: @navbar-inverse-link-color;\n &:hover {\n color: @navbar-inverse-link-hover-color;\n }\n }\n\n .btn-link {\n color: @navbar-inverse-link-color;\n &:hover,\n &:focus {\n color: @navbar-inverse-link-hover-color;\n }\n &[disabled],\n fieldset[disabled] & {\n &:hover,\n &:focus {\n color: @navbar-inverse-link-disabled-color;\n }\n }\n }\n}\n","// Navbar vertical align\n//\n// Vertically center elements in the navbar.\n// Example: an element has a height of 30px, so write out `.navbar-vertical-align(30px);` to calculate the appropriate top margin.\n\n.navbar-vertical-align(@element-height) {\n margin-top: ((@navbar-height - @element-height) / 2);\n margin-bottom: ((@navbar-height - @element-height) / 2);\n}\n","//\n// Utility classes\n// --------------------------------------------------\n\n\n// Floats\n// -------------------------\n\n.clearfix {\n .clearfix();\n}\n.center-block {\n .center-block();\n}\n.pull-right {\n float: right !important;\n}\n.pull-left {\n float: left !important;\n}\n\n\n// Toggling content\n// -------------------------\n\n// Note: Deprecated .hide in favor of .hidden or .sr-only (as appropriate) in v3.0.1\n.hide {\n display: none !important;\n}\n.show {\n display: block !important;\n}\n.invisible {\n visibility: hidden;\n}\n.text-hide {\n .text-hide();\n}\n\n\n// Hide from screenreaders and browsers\n//\n// Credit: HTML5 Boilerplate\n\n.hidden {\n display: none !important;\n}\n\n\n// For Affix plugin\n// -------------------------\n\n.affix {\n position: fixed;\n}\n","//\n// Breadcrumbs\n// --------------------------------------------------\n\n\n.breadcrumb {\n padding: @breadcrumb-padding-vertical @breadcrumb-padding-horizontal;\n margin-bottom: @line-height-computed;\n list-style: none;\n background-color: @breadcrumb-bg;\n border-radius: @border-radius-base;\n\n > li {\n display: inline-block;\n\n + li:before {\n content: \"@{breadcrumb-separator}\\00a0\"; // Unicode space added since inline-block means non-collapsing white-space\n padding: 0 5px;\n color: @breadcrumb-color;\n }\n }\n\n > .active {\n color: @breadcrumb-active-color;\n }\n}\n","//\n// Pagination (multiple pages)\n// --------------------------------------------------\n.pagination {\n display: inline-block;\n padding-left: 0;\n margin: @line-height-computed 0;\n border-radius: @border-radius-base;\n\n > li {\n display: inline; // Remove list-style and block-level defaults\n > a,\n > span {\n position: relative;\n float: left; // Collapse white-space\n padding: @padding-base-vertical @padding-base-horizontal;\n line-height: @line-height-base;\n text-decoration: none;\n color: @pagination-color;\n background-color: @pagination-bg;\n border: 1px solid @pagination-border;\n margin-left: -1px;\n }\n &:first-child {\n > a,\n > span {\n margin-left: 0;\n .border-left-radius(@border-radius-base);\n }\n }\n &:last-child {\n > a,\n > span {\n .border-right-radius(@border-radius-base);\n }\n }\n }\n\n > li > a,\n > li > span {\n &:hover,\n &:focus {\n z-index: 2;\n color: @pagination-hover-color;\n background-color: @pagination-hover-bg;\n border-color: @pagination-hover-border;\n }\n }\n\n > .active > a,\n > .active > span {\n &,\n &:hover,\n &:focus {\n z-index: 3;\n color: @pagination-active-color;\n background-color: @pagination-active-bg;\n border-color: @pagination-active-border;\n cursor: default;\n }\n }\n\n > .disabled {\n > span,\n > span:hover,\n > span:focus,\n > a,\n > a:hover,\n > a:focus {\n color: @pagination-disabled-color;\n background-color: @pagination-disabled-bg;\n border-color: @pagination-disabled-border;\n cursor: @cursor-disabled;\n }\n }\n}\n\n// Sizing\n// --------------------------------------------------\n\n// Large\n.pagination-lg {\n .pagination-size(@padding-large-vertical; @padding-large-horizontal; @font-size-large; @line-height-large; @border-radius-large);\n}\n\n// Small\n.pagination-sm {\n .pagination-size(@padding-small-vertical; @padding-small-horizontal; @font-size-small; @line-height-small; @border-radius-small);\n}\n","// Pagination\n\n.pagination-size(@padding-vertical; @padding-horizontal; @font-size; @line-height; @border-radius) {\n > li {\n > a,\n > span {\n padding: @padding-vertical @padding-horizontal;\n font-size: @font-size;\n line-height: @line-height;\n }\n &:first-child {\n > a,\n > span {\n .border-left-radius(@border-radius);\n }\n }\n &:last-child {\n > a,\n > span {\n .border-right-radius(@border-radius);\n }\n }\n }\n}\n","//\n// Pager pagination\n// --------------------------------------------------\n\n\n.pager {\n padding-left: 0;\n margin: @line-height-computed 0;\n list-style: none;\n text-align: center;\n &:extend(.clearfix all);\n li {\n display: inline;\n > a,\n > span {\n display: inline-block;\n padding: 5px 14px;\n background-color: @pager-bg;\n border: 1px solid @pager-border;\n border-radius: @pager-border-radius;\n }\n\n > a:hover,\n > a:focus {\n text-decoration: none;\n background-color: @pager-hover-bg;\n }\n }\n\n .next {\n > a,\n > span {\n float: right;\n }\n }\n\n .previous {\n > a,\n > span {\n float: left;\n }\n }\n\n .disabled {\n > a,\n > a:hover,\n > a:focus,\n > span {\n color: @pager-disabled-color;\n background-color: @pager-bg;\n cursor: @cursor-disabled;\n }\n }\n}\n","//\n// Labels\n// --------------------------------------------------\n\n.label {\n display: inline;\n padding: .2em .6em .3em;\n font-size: 75%;\n font-weight: bold;\n line-height: 1;\n color: @label-color;\n text-align: center;\n white-space: nowrap;\n vertical-align: baseline;\n border-radius: .25em;\n\n // Add hover effects, but only for links\n a& {\n &:hover,\n &:focus {\n color: @label-link-hover-color;\n text-decoration: none;\n cursor: pointer;\n }\n }\n\n // Empty labels collapse automatically (not available in IE8)\n &:empty {\n display: none;\n }\n\n // Quick fix for labels in buttons\n .btn & {\n position: relative;\n top: -1px;\n }\n}\n\n// Colors\n// Contextual variations (linked labels get darker on :hover)\n\n.label-default {\n .label-variant(@label-default-bg);\n}\n\n.label-primary {\n .label-variant(@label-primary-bg);\n}\n\n.label-success {\n .label-variant(@label-success-bg);\n}\n\n.label-info {\n .label-variant(@label-info-bg);\n}\n\n.label-warning {\n .label-variant(@label-warning-bg);\n}\n\n.label-danger {\n .label-variant(@label-danger-bg);\n}\n","// Labels\n\n.label-variant(@color) {\n background-color: @color;\n\n &[href] {\n &:hover,\n &:focus {\n background-color: darken(@color, 10%);\n }\n }\n}\n","//\n// Badges\n// --------------------------------------------------\n\n\n// Base class\n.badge {\n display: inline-block;\n min-width: 10px;\n padding: 3px 7px;\n font-size: @font-size-small;\n font-weight: @badge-font-weight;\n color: @badge-color;\n line-height: @badge-line-height;\n vertical-align: middle;\n white-space: nowrap;\n text-align: center;\n background-color: @badge-bg;\n border-radius: @badge-border-radius;\n\n // Empty badges collapse automatically (not available in IE8)\n &:empty {\n display: none;\n }\n\n // Quick fix for badges in buttons\n .btn & {\n position: relative;\n top: -1px;\n }\n\n .btn-xs &,\n .btn-group-xs > .btn & {\n top: 0;\n padding: 1px 5px;\n }\n\n // Hover state, but only for links\n a& {\n &:hover,\n &:focus {\n color: @badge-link-hover-color;\n text-decoration: none;\n cursor: pointer;\n }\n }\n\n // Account for badges in navs\n .list-group-item.active > &,\n .nav-pills > .active > a > & {\n color: @badge-active-color;\n background-color: @badge-active-bg;\n }\n\n .list-group-item > & {\n float: right;\n }\n\n .list-group-item > & + & {\n margin-right: 5px;\n }\n\n .nav-pills > li > a > & {\n margin-left: 3px;\n }\n}\n","//\n// Jumbotron\n// --------------------------------------------------\n\n\n.jumbotron {\n padding-top: @jumbotron-padding;\n padding-bottom: @jumbotron-padding;\n margin-bottom: @jumbotron-padding;\n color: @jumbotron-color;\n background-color: @jumbotron-bg;\n\n h1,\n .h1 {\n color: @jumbotron-heading-color;\n }\n\n p {\n margin-bottom: (@jumbotron-padding / 2);\n font-size: @jumbotron-font-size;\n font-weight: 200;\n }\n\n > hr {\n border-top-color: darken(@jumbotron-bg, 10%);\n }\n\n .container &,\n .container-fluid & {\n border-radius: @border-radius-large; // Only round corners at higher resolutions if contained in a container\n padding-left: (@grid-gutter-width / 2);\n padding-right: (@grid-gutter-width / 2);\n }\n\n .container {\n max-width: 100%;\n }\n\n @media screen and (min-width: @screen-sm-min) {\n padding-top: (@jumbotron-padding * 1.6);\n padding-bottom: (@jumbotron-padding * 1.6);\n\n .container &,\n .container-fluid & {\n padding-left: (@jumbotron-padding * 2);\n padding-right: (@jumbotron-padding * 2);\n }\n\n h1,\n .h1 {\n font-size: @jumbotron-heading-font-size;\n }\n }\n}\n","//\n// Thumbnails\n// --------------------------------------------------\n\n\n// Mixin and adjust the regular image class\n.thumbnail {\n display: block;\n padding: @thumbnail-padding;\n margin-bottom: @line-height-computed;\n line-height: @line-height-base;\n background-color: @thumbnail-bg;\n border: 1px solid @thumbnail-border;\n border-radius: @thumbnail-border-radius;\n .transition(border .2s ease-in-out);\n\n > img,\n a > img {\n &:extend(.img-responsive);\n margin-left: auto;\n margin-right: auto;\n }\n\n // Add a hover state for linked versions only\n a&:hover,\n a&:focus,\n a&.active {\n border-color: @link-color;\n }\n\n // Image captions\n .caption {\n padding: @thumbnail-caption-padding;\n color: @thumbnail-caption-color;\n }\n}\n","//\n// Alerts\n// --------------------------------------------------\n\n\n// Base styles\n// -------------------------\n\n.alert {\n padding: @alert-padding;\n margin-bottom: @line-height-computed;\n border: 1px solid transparent;\n border-radius: @alert-border-radius;\n\n // Headings for larger alerts\n h4 {\n margin-top: 0;\n // Specified for the h4 to prevent conflicts of changing @headings-color\n color: inherit;\n }\n\n // Provide class for links that match alerts\n .alert-link {\n font-weight: @alert-link-font-weight;\n }\n\n // Improve alignment and spacing of inner content\n > p,\n > ul {\n margin-bottom: 0;\n }\n\n > p + p {\n margin-top: 5px;\n }\n}\n\n// Dismissible alerts\n//\n// Expand the right padding and account for the close button's positioning.\n\n.alert-dismissable, // The misspelled .alert-dismissable was deprecated in 3.2.0.\n.alert-dismissible {\n padding-right: (@alert-padding + 20);\n\n // Adjust close link position\n .close {\n position: relative;\n top: -2px;\n right: -21px;\n color: inherit;\n }\n}\n\n// Alternate styles\n//\n// Generate contextual modifier classes for colorizing the alert.\n\n.alert-success {\n .alert-variant(@alert-success-bg; @alert-success-border; @alert-success-text);\n}\n\n.alert-info {\n .alert-variant(@alert-info-bg; @alert-info-border; @alert-info-text);\n}\n\n.alert-warning {\n .alert-variant(@alert-warning-bg; @alert-warning-border; @alert-warning-text);\n}\n\n.alert-danger {\n .alert-variant(@alert-danger-bg; @alert-danger-border; @alert-danger-text);\n}\n","// Alerts\n\n.alert-variant(@background; @border; @text-color) {\n background-color: @background;\n border-color: @border;\n color: @text-color;\n\n hr {\n border-top-color: darken(@border, 5%);\n }\n .alert-link {\n color: darken(@text-color, 10%);\n }\n}\n","//\n// Progress bars\n// --------------------------------------------------\n\n\n// Bar animations\n// -------------------------\n\n// WebKit\n@-webkit-keyframes progress-bar-stripes {\n from { background-position: 40px 0; }\n to { background-position: 0 0; }\n}\n\n// Spec and IE10+\n@keyframes progress-bar-stripes {\n from { background-position: 40px 0; }\n to { background-position: 0 0; }\n}\n\n\n// Bar itself\n// -------------------------\n\n// Outer container\n.progress {\n overflow: hidden;\n height: @line-height-computed;\n margin-bottom: @line-height-computed;\n background-color: @progress-bg;\n border-radius: @progress-border-radius;\n .box-shadow(inset 0 1px 2px rgba(0,0,0,.1));\n}\n\n// Bar of progress\n.progress-bar {\n float: left;\n width: 0%;\n height: 100%;\n font-size: @font-size-small;\n line-height: @line-height-computed;\n color: @progress-bar-color;\n text-align: center;\n background-color: @progress-bar-bg;\n .box-shadow(inset 0 -1px 0 rgba(0,0,0,.15));\n .transition(width .6s ease);\n}\n\n// Striped bars\n//\n// `.progress-striped .progress-bar` is deprecated as of v3.2.0 in favor of the\n// `.progress-bar-striped` class, which you just add to an existing\n// `.progress-bar`.\n.progress-striped .progress-bar,\n.progress-bar-striped {\n #gradient > .striped();\n background-size: 40px 40px;\n}\n\n// Call animation for the active one\n//\n// `.progress.active .progress-bar` is deprecated as of v3.2.0 in favor of the\n// `.progress-bar.active` approach.\n.progress.active .progress-bar,\n.progress-bar.active {\n .animation(progress-bar-stripes 2s linear infinite);\n}\n\n\n// Variations\n// -------------------------\n\n.progress-bar-success {\n .progress-bar-variant(@progress-bar-success-bg);\n}\n\n.progress-bar-info {\n .progress-bar-variant(@progress-bar-info-bg);\n}\n\n.progress-bar-warning {\n .progress-bar-variant(@progress-bar-warning-bg);\n}\n\n.progress-bar-danger {\n .progress-bar-variant(@progress-bar-danger-bg);\n}\n","// Gradients\n\n#gradient {\n\n // Horizontal gradient, from left to right\n //\n // Creates two color stops, start and end, by specifying a color and position for each color stop.\n // Color stops are not available in IE9 and below.\n .horizontal(@start-color: #555; @end-color: #333; @start-percent: 0%; @end-percent: 100%) {\n background-image: -webkit-linear-gradient(left, @start-color @start-percent, @end-color @end-percent); // Safari 5.1-6, Chrome 10+\n background-image: -o-linear-gradient(left, @start-color @start-percent, @end-color @end-percent); // Opera 12\n background-image: linear-gradient(to right, @start-color @start-percent, @end-color @end-percent); // Standard, IE10, Firefox 16+, Opera 12.10+, Safari 7+, Chrome 26+\n background-repeat: repeat-x;\n filter: e(%(\"progid:DXImageTransform.Microsoft.gradient(startColorstr='%d', endColorstr='%d', GradientType=1)\",argb(@start-color),argb(@end-color))); // IE9 and down\n }\n\n // Vertical gradient, from top to bottom\n //\n // Creates two color stops, start and end, by specifying a color and position for each color stop.\n // Color stops are not available in IE9 and below.\n .vertical(@start-color: #555; @end-color: #333; @start-percent: 0%; @end-percent: 100%) {\n background-image: -webkit-linear-gradient(top, @start-color @start-percent, @end-color @end-percent); // Safari 5.1-6, Chrome 10+\n background-image: -o-linear-gradient(top, @start-color @start-percent, @end-color @end-percent); // Opera 12\n background-image: linear-gradient(to bottom, @start-color @start-percent, @end-color @end-percent); // Standard, IE10, Firefox 16+, Opera 12.10+, Safari 7+, Chrome 26+\n background-repeat: repeat-x;\n filter: e(%(\"progid:DXImageTransform.Microsoft.gradient(startColorstr='%d', endColorstr='%d', GradientType=0)\",argb(@start-color),argb(@end-color))); // IE9 and down\n }\n\n .directional(@start-color: #555; @end-color: #333; @deg: 45deg) {\n background-repeat: repeat-x;\n background-image: -webkit-linear-gradient(@deg, @start-color, @end-color); // Safari 5.1-6, Chrome 10+\n background-image: -o-linear-gradient(@deg, @start-color, @end-color); // Opera 12\n background-image: linear-gradient(@deg, @start-color, @end-color); // Standard, IE10, Firefox 16+, Opera 12.10+, Safari 7+, Chrome 26+\n }\n .horizontal-three-colors(@start-color: #00b3ee; @mid-color: #7a43b6; @color-stop: 50%; @end-color: #c3325f) {\n background-image: -webkit-linear-gradient(left, @start-color, @mid-color @color-stop, @end-color);\n background-image: -o-linear-gradient(left, @start-color, @mid-color @color-stop, @end-color);\n background-image: linear-gradient(to right, @start-color, @mid-color @color-stop, @end-color);\n background-repeat: no-repeat;\n filter: e(%(\"progid:DXImageTransform.Microsoft.gradient(startColorstr='%d', endColorstr='%d', GradientType=1)\",argb(@start-color),argb(@end-color))); // IE9 and down, gets no color-stop at all for proper fallback\n }\n .vertical-three-colors(@start-color: #00b3ee; @mid-color: #7a43b6; @color-stop: 50%; @end-color: #c3325f) {\n background-image: -webkit-linear-gradient(@start-color, @mid-color @color-stop, @end-color);\n background-image: -o-linear-gradient(@start-color, @mid-color @color-stop, @end-color);\n background-image: linear-gradient(@start-color, @mid-color @color-stop, @end-color);\n background-repeat: no-repeat;\n filter: e(%(\"progid:DXImageTransform.Microsoft.gradient(startColorstr='%d', endColorstr='%d', GradientType=0)\",argb(@start-color),argb(@end-color))); // IE9 and down, gets no color-stop at all for proper fallback\n }\n .radial(@inner-color: #555; @outer-color: #333) {\n background-image: -webkit-radial-gradient(circle, @inner-color, @outer-color);\n background-image: radial-gradient(circle, @inner-color, @outer-color);\n background-repeat: no-repeat;\n }\n .striped(@color: rgba(255,255,255,.15); @angle: 45deg) {\n background-image: -webkit-linear-gradient(@angle, @color 25%, transparent 25%, transparent 50%, @color 50%, @color 75%, transparent 75%, transparent);\n background-image: -o-linear-gradient(@angle, @color 25%, transparent 25%, transparent 50%, @color 50%, @color 75%, transparent 75%, transparent);\n background-image: linear-gradient(@angle, @color 25%, transparent 25%, transparent 50%, @color 50%, @color 75%, transparent 75%, transparent);\n }\n}\n","// Progress bars\n\n.progress-bar-variant(@color) {\n background-color: @color;\n\n // Deprecated parent class requirement as of v3.2.0\n .progress-striped & {\n #gradient > .striped();\n }\n}\n",".media {\n // Proper spacing between instances of .media\n margin-top: 15px;\n\n &:first-child {\n margin-top: 0;\n }\n}\n\n.media,\n.media-body {\n zoom: 1;\n overflow: hidden;\n}\n\n.media-body {\n width: 10000px;\n}\n\n.media-object {\n display: block;\n\n // Fix collapse in webkit from max-width: 100% and display: table-cell.\n &.img-thumbnail {\n max-width: none;\n }\n}\n\n.media-right,\n.media > .pull-right {\n padding-left: 10px;\n}\n\n.media-left,\n.media > .pull-left {\n padding-right: 10px;\n}\n\n.media-left,\n.media-right,\n.media-body {\n display: table-cell;\n vertical-align: top;\n}\n\n.media-middle {\n vertical-align: middle;\n}\n\n.media-bottom {\n vertical-align: bottom;\n}\n\n// Reset margins on headings for tighter default spacing\n.media-heading {\n margin-top: 0;\n margin-bottom: 5px;\n}\n\n// Media list variation\n//\n// Undo default ul/ol styles\n.media-list {\n padding-left: 0;\n list-style: none;\n}\n","//\n// List groups\n// --------------------------------------------------\n\n\n// Base class\n//\n// Easily usable on <ul>, <ol>, or <div>.\n\n.list-group {\n // No need to set list-style: none; since .list-group-item is block level\n margin-bottom: 20px;\n padding-left: 0; // reset padding because ul and ol\n}\n\n\n// Individual list items\n//\n// Use on `li`s or `div`s within the `.list-group` parent.\n\n.list-group-item {\n position: relative;\n display: block;\n padding: 10px 15px;\n // Place the border on the list items and negative margin up for better styling\n margin-bottom: -1px;\n background-color: @list-group-bg;\n border: 1px solid @list-group-border;\n\n // Round the first and last items\n &:first-child {\n .border-top-radius(@list-group-border-radius);\n }\n &:last-child {\n margin-bottom: 0;\n .border-bottom-radius(@list-group-border-radius);\n }\n}\n\n\n// Interactive list items\n//\n// Use anchor or button elements instead of `li`s or `div`s to create interactive items.\n// Includes an extra `.active` modifier class for showing selected items.\n\na.list-group-item,\nbutton.list-group-item {\n color: @list-group-link-color;\n\n .list-group-item-heading {\n color: @list-group-link-heading-color;\n }\n\n // Hover state\n &:hover,\n &:focus {\n text-decoration: none;\n color: @list-group-link-hover-color;\n background-color: @list-group-hover-bg;\n }\n}\n\nbutton.list-group-item {\n width: 100%;\n text-align: left;\n}\n\n.list-group-item {\n // Disabled state\n &.disabled,\n &.disabled:hover,\n &.disabled:focus {\n background-color: @list-group-disabled-bg;\n color: @list-group-disabled-color;\n cursor: @cursor-disabled;\n\n // Force color to inherit for custom content\n .list-group-item-heading {\n color: inherit;\n }\n .list-group-item-text {\n color: @list-group-disabled-text-color;\n }\n }\n\n // Active class on item itself, not parent\n &.active,\n &.active:hover,\n &.active:focus {\n z-index: 2; // Place active items above their siblings for proper border styling\n color: @list-group-active-color;\n background-color: @list-group-active-bg;\n border-color: @list-group-active-border;\n\n // Force color to inherit for custom content\n .list-group-item-heading,\n .list-group-item-heading > small,\n .list-group-item-heading > .small {\n color: inherit;\n }\n .list-group-item-text {\n color: @list-group-active-text-color;\n }\n }\n}\n\n\n// Contextual variants\n//\n// Add modifier classes to change text and background color on individual items.\n// Organizationally, this must come after the `:hover` states.\n\n.list-group-item-variant(success; @state-success-bg; @state-success-text);\n.list-group-item-variant(info; @state-info-bg; @state-info-text);\n.list-group-item-variant(warning; @state-warning-bg; @state-warning-text);\n.list-group-item-variant(danger; @state-danger-bg; @state-danger-text);\n\n\n// Custom content options\n//\n// Extra classes for creating well-formatted content within `.list-group-item`s.\n\n.list-group-item-heading {\n margin-top: 0;\n margin-bottom: 5px;\n}\n.list-group-item-text {\n margin-bottom: 0;\n line-height: 1.3;\n}\n","// List Groups\n\n.list-group-item-variant(@state; @background; @color) {\n .list-group-item-@{state} {\n color: @color;\n background-color: @background;\n\n a&,\n button& {\n color: @color;\n\n .list-group-item-heading {\n color: inherit;\n }\n\n &:hover,\n &:focus {\n color: @color;\n background-color: darken(@background, 5%);\n }\n &.active,\n &.active:hover,\n &.active:focus {\n color: #fff;\n background-color: @color;\n border-color: @color;\n }\n }\n }\n}\n","//\n// Panels\n// --------------------------------------------------\n\n\n// Base class\n.panel {\n margin-bottom: @line-height-computed;\n background-color: @panel-bg;\n border: 1px solid transparent;\n border-radius: @panel-border-radius;\n .box-shadow(0 1px 1px rgba(0,0,0,.05));\n}\n\n// Panel contents\n.panel-body {\n padding: @panel-body-padding;\n &:extend(.clearfix all);\n}\n\n// Optional heading\n.panel-heading {\n padding: @panel-heading-padding;\n border-bottom: 1px solid transparent;\n .border-top-radius((@panel-border-radius - 1));\n\n > .dropdown .dropdown-toggle {\n color: inherit;\n }\n}\n\n// Within heading, strip any `h*` tag of its default margins for spacing.\n.panel-title {\n margin-top: 0;\n margin-bottom: 0;\n font-size: ceil((@font-size-base * 1.125));\n color: inherit;\n\n > a,\n > small,\n > .small,\n > small > a,\n > .small > a {\n color: inherit;\n }\n}\n\n// Optional footer (stays gray in every modifier class)\n.panel-footer {\n padding: @panel-footer-padding;\n background-color: @panel-footer-bg;\n border-top: 1px solid @panel-inner-border;\n .border-bottom-radius((@panel-border-radius - 1));\n}\n\n\n// List groups in panels\n//\n// By default, space out list group content from panel headings to account for\n// any kind of custom content between the two.\n\n.panel {\n > .list-group,\n > .panel-collapse > .list-group {\n margin-bottom: 0;\n\n .list-group-item {\n border-width: 1px 0;\n border-radius: 0;\n }\n\n // Add border top radius for first one\n &:first-child {\n .list-group-item:first-child {\n border-top: 0;\n .border-top-radius((@panel-border-radius - 1));\n }\n }\n\n // Add border bottom radius for last one\n &:last-child {\n .list-group-item:last-child {\n border-bottom: 0;\n .border-bottom-radius((@panel-border-radius - 1));\n }\n }\n }\n > .panel-heading + .panel-collapse > .list-group {\n .list-group-item:first-child {\n .border-top-radius(0);\n }\n }\n}\n// Collapse space between when there's no additional content.\n.panel-heading + .list-group {\n .list-group-item:first-child {\n border-top-width: 0;\n }\n}\n.list-group + .panel-footer {\n border-top-width: 0;\n}\n\n// Tables in panels\n//\n// Place a non-bordered `.table` within a panel (not within a `.panel-body`) and\n// watch it go full width.\n\n.panel {\n > .table,\n > .table-responsive > .table,\n > .panel-collapse > .table {\n margin-bottom: 0;\n\n caption {\n padding-left: @panel-body-padding;\n padding-right: @panel-body-padding;\n }\n }\n // Add border top radius for first one\n > .table:first-child,\n > .table-responsive:first-child > .table:first-child {\n .border-top-radius((@panel-border-radius - 1));\n\n > thead:first-child,\n > tbody:first-child {\n > tr:first-child {\n border-top-left-radius: (@panel-border-radius - 1);\n border-top-right-radius: (@panel-border-radius - 1);\n\n td:first-child,\n th:first-child {\n border-top-left-radius: (@panel-border-radius - 1);\n }\n td:last-child,\n th:last-child {\n border-top-right-radius: (@panel-border-radius - 1);\n }\n }\n }\n }\n // Add border bottom radius for last one\n > .table:last-child,\n > .table-responsive:last-child > .table:last-child {\n .border-bottom-radius((@panel-border-radius - 1));\n\n > tbody:last-child,\n > tfoot:last-child {\n > tr:last-child {\n border-bottom-left-radius: (@panel-border-radius - 1);\n border-bottom-right-radius: (@panel-border-radius - 1);\n\n td:first-child,\n th:first-child {\n border-bottom-left-radius: (@panel-border-radius - 1);\n }\n td:last-child,\n th:last-child {\n border-bottom-right-radius: (@panel-border-radius - 1);\n }\n }\n }\n }\n > .panel-body + .table,\n > .panel-body + .table-responsive,\n > .table + .panel-body,\n > .table-responsive + .panel-body {\n border-top: 1px solid @table-border-color;\n }\n > .table > tbody:first-child > tr:first-child th,\n > .table > tbody:first-child > tr:first-child td {\n border-top: 0;\n }\n > .table-bordered,\n > .table-responsive > .table-bordered {\n border: 0;\n > thead,\n > tbody,\n > tfoot {\n > tr {\n > th:first-child,\n > td:first-child {\n border-left: 0;\n }\n > th:last-child,\n > td:last-child {\n border-right: 0;\n }\n }\n }\n > thead,\n > tbody {\n > tr:first-child {\n > td,\n > th {\n border-bottom: 0;\n }\n }\n }\n > tbody,\n > tfoot {\n > tr:last-child {\n > td,\n > th {\n border-bottom: 0;\n }\n }\n }\n }\n > .table-responsive {\n border: 0;\n margin-bottom: 0;\n }\n}\n\n\n// Collapsible panels (aka, accordion)\n//\n// Wrap a series of panels in `.panel-group` to turn them into an accordion with\n// the help of our collapse JavaScript plugin.\n\n.panel-group {\n margin-bottom: @line-height-computed;\n\n // Tighten up margin so it's only between panels\n .panel {\n margin-bottom: 0;\n border-radius: @panel-border-radius;\n\n + .panel {\n margin-top: 5px;\n }\n }\n\n .panel-heading {\n border-bottom: 0;\n\n + .panel-collapse > .panel-body,\n + .panel-collapse > .list-group {\n border-top: 1px solid @panel-inner-border;\n }\n }\n\n .panel-footer {\n border-top: 0;\n + .panel-collapse .panel-body {\n border-bottom: 1px solid @panel-inner-border;\n }\n }\n}\n\n\n// Contextual variations\n.panel-default {\n .panel-variant(@panel-default-border; @panel-default-text; @panel-default-heading-bg; @panel-default-border);\n}\n.panel-primary {\n .panel-variant(@panel-primary-border; @panel-primary-text; @panel-primary-heading-bg; @panel-primary-border);\n}\n.panel-success {\n .panel-variant(@panel-success-border; @panel-success-text; @panel-success-heading-bg; @panel-success-border);\n}\n.panel-info {\n .panel-variant(@panel-info-border; @panel-info-text; @panel-info-heading-bg; @panel-info-border);\n}\n.panel-warning {\n .panel-variant(@panel-warning-border; @panel-warning-text; @panel-warning-heading-bg; @panel-warning-border);\n}\n.panel-danger {\n .panel-variant(@panel-danger-border; @panel-danger-text; @panel-danger-heading-bg; @panel-danger-border);\n}\n","// Panels\n\n.panel-variant(@border; @heading-text-color; @heading-bg-color; @heading-border) {\n border-color: @border;\n\n & > .panel-heading {\n color: @heading-text-color;\n background-color: @heading-bg-color;\n border-color: @heading-border;\n\n + .panel-collapse > .panel-body {\n border-top-color: @border;\n }\n .badge {\n color: @heading-bg-color;\n background-color: @heading-text-color;\n }\n }\n & > .panel-footer {\n + .panel-collapse > .panel-body {\n border-bottom-color: @border;\n }\n }\n}\n","// Embeds responsive\n//\n// Credit: Nicolas Gallagher and SUIT CSS.\n\n.embed-responsive {\n position: relative;\n display: block;\n height: 0;\n padding: 0;\n overflow: hidden;\n\n .embed-responsive-item,\n iframe,\n embed,\n object,\n video {\n position: absolute;\n top: 0;\n left: 0;\n bottom: 0;\n height: 100%;\n width: 100%;\n border: 0;\n }\n}\n\n// Modifier class for 16:9 aspect ratio\n.embed-responsive-16by9 {\n padding-bottom: 56.25%;\n}\n\n// Modifier class for 4:3 aspect ratio\n.embed-responsive-4by3 {\n padding-bottom: 75%;\n}\n","//\n// Wells\n// --------------------------------------------------\n\n\n// Base class\n.well {\n min-height: 20px;\n padding: 19px;\n margin-bottom: 20px;\n background-color: @well-bg;\n border: 1px solid @well-border;\n border-radius: @border-radius-base;\n .box-shadow(inset 0 1px 1px rgba(0,0,0,.05));\n blockquote {\n border-color: #ddd;\n border-color: rgba(0,0,0,.15);\n }\n}\n\n// Sizes\n.well-lg {\n padding: 24px;\n border-radius: @border-radius-large;\n}\n.well-sm {\n padding: 9px;\n border-radius: @border-radius-small;\n}\n","//\n// Close icons\n// --------------------------------------------------\n\n\n.close {\n float: right;\n font-size: (@font-size-base * 1.5);\n font-weight: @close-font-weight;\n line-height: 1;\n color: @close-color;\n text-shadow: @close-text-shadow;\n .opacity(.2);\n\n &:hover,\n &:focus {\n color: @close-color;\n text-decoration: none;\n cursor: pointer;\n .opacity(.5);\n }\n\n // Additional properties for button version\n // iOS requires the button element instead of an anchor tag.\n // If you want the anchor version, it requires `href=\"#\"`.\n // See https://developer.mozilla.org/en-US/docs/Web/Events/click#Safari_Mobile\n button& {\n padding: 0;\n cursor: pointer;\n background: transparent;\n border: 0;\n -webkit-appearance: none;\n }\n}\n","//\n// Modals\n// --------------------------------------------------\n\n// .modal-open - body class for killing the scroll\n// .modal - container to scroll within\n// .modal-dialog - positioning shell for the actual modal\n// .modal-content - actual modal w/ bg and corners and shit\n\n// Kill the scroll on the body\n.modal-open {\n overflow: hidden;\n}\n\n// Container that the modal scrolls within\n.modal {\n display: none;\n overflow: hidden;\n position: fixed;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n z-index: @zindex-modal;\n -webkit-overflow-scrolling: touch;\n\n // Prevent Chrome on Windows from adding a focus outline. For details, see\n // https://github.com/twbs/bootstrap/pull/10951.\n outline: 0;\n\n // When fading in the modal, animate it to slide down\n &.fade .modal-dialog {\n .translate(0, -25%);\n .transition-transform(~\"0.3s ease-out\");\n }\n &.in .modal-dialog { .translate(0, 0) }\n}\n.modal-open .modal {\n overflow-x: hidden;\n overflow-y: auto;\n}\n\n// Shell div to position the modal with bottom padding\n.modal-dialog {\n position: relative;\n width: auto;\n margin: 10px;\n}\n\n// Actual modal\n.modal-content {\n position: relative;\n background-color: @modal-content-bg;\n border: 1px solid @modal-content-fallback-border-color; //old browsers fallback (ie8 etc)\n border: 1px solid @modal-content-border-color;\n border-radius: @border-radius-large;\n .box-shadow(0 3px 9px rgba(0,0,0,.5));\n background-clip: padding-box;\n // Remove focus outline from opened modal\n outline: 0;\n}\n\n// Modal background\n.modal-backdrop {\n position: fixed;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n z-index: @zindex-modal-background;\n background-color: @modal-backdrop-bg;\n // Fade for backdrop\n &.fade { .opacity(0); }\n &.in { .opacity(@modal-backdrop-opacity); }\n}\n\n// Modal header\n// Top section of the modal w/ title and dismiss\n.modal-header {\n padding: @modal-title-padding;\n border-bottom: 1px solid @modal-header-border-color;\n &:extend(.clearfix all);\n}\n// Close icon\n.modal-header .close {\n margin-top: -2px;\n}\n\n// Title text within header\n.modal-title {\n margin: 0;\n line-height: @modal-title-line-height;\n}\n\n// Modal body\n// Where all modal content resides (sibling of .modal-header and .modal-footer)\n.modal-body {\n position: relative;\n padding: @modal-inner-padding;\n}\n\n// Footer (for actions)\n.modal-footer {\n padding: @modal-inner-padding;\n text-align: right; // right align buttons\n border-top: 1px solid @modal-footer-border-color;\n &:extend(.clearfix all); // clear it in case folks use .pull-* classes on buttons\n\n // Properly space out buttons\n .btn + .btn {\n margin-left: 5px;\n margin-bottom: 0; // account for input[type=\"submit\"] which gets the bottom margin like all other inputs\n }\n // but override that for button groups\n .btn-group .btn + .btn {\n margin-left: -1px;\n }\n // and override it for block buttons as well\n .btn-block + .btn-block {\n margin-left: 0;\n }\n}\n\n// Measure scrollbar width for padding body during modal show/hide\n.modal-scrollbar-measure {\n position: absolute;\n top: -9999px;\n width: 50px;\n height: 50px;\n overflow: scroll;\n}\n\n// Scale up the modal\n@media (min-width: @screen-sm-min) {\n // Automatically set modal's width for larger viewports\n .modal-dialog {\n width: @modal-md;\n margin: 30px auto;\n }\n .modal-content {\n .box-shadow(0 5px 15px rgba(0,0,0,.5));\n }\n\n // Modal sizes\n .modal-sm { width: @modal-sm; }\n}\n\n@media (min-width: @screen-md-min) {\n .modal-lg { width: @modal-lg; }\n}\n","//\n// Tooltips\n// --------------------------------------------------\n\n\n// Base class\n.tooltip {\n position: absolute;\n z-index: @zindex-tooltip;\n display: block;\n // Our parent element can be arbitrary since tooltips are by default inserted as a sibling of their target element.\n // So reset our font and text properties to avoid inheriting weird values.\n .reset-text();\n font-size: @font-size-small;\n\n .opacity(0);\n\n &.in { .opacity(@tooltip-opacity); }\n &.top { margin-top: -3px; padding: @tooltip-arrow-width 0; }\n &.right { margin-left: 3px; padding: 0 @tooltip-arrow-width; }\n &.bottom { margin-top: 3px; padding: @tooltip-arrow-width 0; }\n &.left { margin-left: -3px; padding: 0 @tooltip-arrow-width; }\n}\n\n// Wrapper for the tooltip content\n.tooltip-inner {\n max-width: @tooltip-max-width;\n padding: 3px 8px;\n color: @tooltip-color;\n text-align: center;\n background-color: @tooltip-bg;\n border-radius: @border-radius-base;\n}\n\n// Arrows\n.tooltip-arrow {\n position: absolute;\n width: 0;\n height: 0;\n border-color: transparent;\n border-style: solid;\n}\n// Note: Deprecated .top-left, .top-right, .bottom-left, and .bottom-right as of v3.3.1\n.tooltip {\n &.top .tooltip-arrow {\n bottom: 0;\n left: 50%;\n margin-left: -@tooltip-arrow-width;\n border-width: @tooltip-arrow-width @tooltip-arrow-width 0;\n border-top-color: @tooltip-arrow-color;\n }\n &.top-left .tooltip-arrow {\n bottom: 0;\n right: @tooltip-arrow-width;\n margin-bottom: -@tooltip-arrow-width;\n border-width: @tooltip-arrow-width @tooltip-arrow-width 0;\n border-top-color: @tooltip-arrow-color;\n }\n &.top-right .tooltip-arrow {\n bottom: 0;\n left: @tooltip-arrow-width;\n margin-bottom: -@tooltip-arrow-width;\n border-width: @tooltip-arrow-width @tooltip-arrow-width 0;\n border-top-color: @tooltip-arrow-color;\n }\n &.right .tooltip-arrow {\n top: 50%;\n left: 0;\n margin-top: -@tooltip-arrow-width;\n border-width: @tooltip-arrow-width @tooltip-arrow-width @tooltip-arrow-width 0;\n border-right-color: @tooltip-arrow-color;\n }\n &.left .tooltip-arrow {\n top: 50%;\n right: 0;\n margin-top: -@tooltip-arrow-width;\n border-width: @tooltip-arrow-width 0 @tooltip-arrow-width @tooltip-arrow-width;\n border-left-color: @tooltip-arrow-color;\n }\n &.bottom .tooltip-arrow {\n top: 0;\n left: 50%;\n margin-left: -@tooltip-arrow-width;\n border-width: 0 @tooltip-arrow-width @tooltip-arrow-width;\n border-bottom-color: @tooltip-arrow-color;\n }\n &.bottom-left .tooltip-arrow {\n top: 0;\n right: @tooltip-arrow-width;\n margin-top: -@tooltip-arrow-width;\n border-width: 0 @tooltip-arrow-width @tooltip-arrow-width;\n border-bottom-color: @tooltip-arrow-color;\n }\n &.bottom-right .tooltip-arrow {\n top: 0;\n left: @tooltip-arrow-width;\n margin-top: -@tooltip-arrow-width;\n border-width: 0 @tooltip-arrow-width @tooltip-arrow-width;\n border-bottom-color: @tooltip-arrow-color;\n }\n}\n",".reset-text() {\n font-family: @font-family-base;\n // We deliberately do NOT reset font-size.\n font-style: normal;\n font-weight: normal;\n letter-spacing: normal;\n line-break: auto;\n line-height: @line-height-base;\n text-align: left; // Fallback for where `start` is not supported\n text-align: start;\n text-decoration: none;\n text-shadow: none;\n text-transform: none;\n white-space: normal;\n word-break: normal;\n word-spacing: normal;\n word-wrap: normal;\n}\n","//\n// Popovers\n// --------------------------------------------------\n\n\n.popover {\n position: absolute;\n top: 0;\n left: 0;\n z-index: @zindex-popover;\n display: none;\n max-width: @popover-max-width;\n padding: 1px;\n // Our parent element can be arbitrary since popovers are by default inserted as a sibling of their target element.\n // So reset our font and text properties to avoid inheriting weird values.\n .reset-text();\n font-size: @font-size-base;\n\n background-color: @popover-bg;\n background-clip: padding-box;\n border: 1px solid @popover-fallback-border-color;\n border: 1px solid @popover-border-color;\n border-radius: @border-radius-large;\n .box-shadow(0 5px 10px rgba(0,0,0,.2));\n\n // Offset the popover to account for the popover arrow\n &.top { margin-top: -@popover-arrow-width; }\n &.right { margin-left: @popover-arrow-width; }\n &.bottom { margin-top: @popover-arrow-width; }\n &.left { margin-left: -@popover-arrow-width; }\n}\n\n.popover-title {\n margin: 0; // reset heading margin\n padding: 8px 14px;\n font-size: @font-size-base;\n background-color: @popover-title-bg;\n border-bottom: 1px solid darken(@popover-title-bg, 5%);\n border-radius: (@border-radius-large - 1) (@border-radius-large - 1) 0 0;\n}\n\n.popover-content {\n padding: 9px 14px;\n}\n\n// Arrows\n//\n// .arrow is outer, .arrow:after is inner\n\n.popover > .arrow {\n &,\n &:after {\n position: absolute;\n display: block;\n width: 0;\n height: 0;\n border-color: transparent;\n border-style: solid;\n }\n}\n.popover > .arrow {\n border-width: @popover-arrow-outer-width;\n}\n.popover > .arrow:after {\n border-width: @popover-arrow-width;\n content: \"\";\n}\n\n.popover {\n &.top > .arrow {\n left: 50%;\n margin-left: -@popover-arrow-outer-width;\n border-bottom-width: 0;\n border-top-color: @popover-arrow-outer-fallback-color; // IE8 fallback\n border-top-color: @popover-arrow-outer-color;\n bottom: -@popover-arrow-outer-width;\n &:after {\n content: \" \";\n bottom: 1px;\n margin-left: -@popover-arrow-width;\n border-bottom-width: 0;\n border-top-color: @popover-arrow-color;\n }\n }\n &.right > .arrow {\n top: 50%;\n left: -@popover-arrow-outer-width;\n margin-top: -@popover-arrow-outer-width;\n border-left-width: 0;\n border-right-color: @popover-arrow-outer-fallback-color; // IE8 fallback\n border-right-color: @popover-arrow-outer-color;\n &:after {\n content: \" \";\n left: 1px;\n bottom: -@popover-arrow-width;\n border-left-width: 0;\n border-right-color: @popover-arrow-color;\n }\n }\n &.bottom > .arrow {\n left: 50%;\n margin-left: -@popover-arrow-outer-width;\n border-top-width: 0;\n border-bottom-color: @popover-arrow-outer-fallback-color; // IE8 fallback\n border-bottom-color: @popover-arrow-outer-color;\n top: -@popover-arrow-outer-width;\n &:after {\n content: \" \";\n top: 1px;\n margin-left: -@popover-arrow-width;\n border-top-width: 0;\n border-bottom-color: @popover-arrow-color;\n }\n }\n\n &.left > .arrow {\n top: 50%;\n right: -@popover-arrow-outer-width;\n margin-top: -@popover-arrow-outer-width;\n border-right-width: 0;\n border-left-color: @popover-arrow-outer-fallback-color; // IE8 fallback\n border-left-color: @popover-arrow-outer-color;\n &:after {\n content: \" \";\n right: 1px;\n border-right-width: 0;\n border-left-color: @popover-arrow-color;\n bottom: -@popover-arrow-width;\n }\n }\n}\n","//\n// Carousel\n// --------------------------------------------------\n\n\n// Wrapper for the slide container and indicators\n.carousel {\n position: relative;\n}\n\n.carousel-inner {\n position: relative;\n overflow: hidden;\n width: 100%;\n\n > .item {\n display: none;\n position: relative;\n .transition(.6s ease-in-out left);\n\n // Account for jankitude on images\n > img,\n > a > img {\n &:extend(.img-responsive);\n line-height: 1;\n }\n\n // WebKit CSS3 transforms for supported devices\n @media all and (transform-3d), (-webkit-transform-3d) {\n .transition-transform(~'0.6s ease-in-out');\n .backface-visibility(~'hidden');\n .perspective(1000px);\n\n &.next,\n &.active.right {\n .translate3d(100%, 0, 0);\n left: 0;\n }\n &.prev,\n &.active.left {\n .translate3d(-100%, 0, 0);\n left: 0;\n }\n &.next.left,\n &.prev.right,\n &.active {\n .translate3d(0, 0, 0);\n left: 0;\n }\n }\n }\n\n > .active,\n > .next,\n > .prev {\n display: block;\n }\n\n > .active {\n left: 0;\n }\n\n > .next,\n > .prev {\n position: absolute;\n top: 0;\n width: 100%;\n }\n\n > .next {\n left: 100%;\n }\n > .prev {\n left: -100%;\n }\n > .next.left,\n > .prev.right {\n left: 0;\n }\n\n > .active.left {\n left: -100%;\n }\n > .active.right {\n left: 100%;\n }\n\n}\n\n// Left/right controls for nav\n// ---------------------------\n\n.carousel-control {\n position: absolute;\n top: 0;\n left: 0;\n bottom: 0;\n width: @carousel-control-width;\n .opacity(@carousel-control-opacity);\n font-size: @carousel-control-font-size;\n color: @carousel-control-color;\n text-align: center;\n text-shadow: @carousel-text-shadow;\n background-color: rgba(0, 0, 0, 0); // Fix IE9 click-thru bug\n // We can't have this transition here because WebKit cancels the carousel\n // animation if you trip this while in the middle of another animation.\n\n // Set gradients for backgrounds\n &.left {\n #gradient > .horizontal(@start-color: rgba(0,0,0,.5); @end-color: rgba(0,0,0,.0001));\n }\n &.right {\n left: auto;\n right: 0;\n #gradient > .horizontal(@start-color: rgba(0,0,0,.0001); @end-color: rgba(0,0,0,.5));\n }\n\n // Hover/focus state\n &:hover,\n &:focus {\n outline: 0;\n color: @carousel-control-color;\n text-decoration: none;\n .opacity(.9);\n }\n\n // Toggles\n .icon-prev,\n .icon-next,\n .glyphicon-chevron-left,\n .glyphicon-chevron-right {\n position: absolute;\n top: 50%;\n margin-top: -10px;\n z-index: 5;\n display: inline-block;\n }\n .icon-prev,\n .glyphicon-chevron-left {\n left: 50%;\n margin-left: -10px;\n }\n .icon-next,\n .glyphicon-chevron-right {\n right: 50%;\n margin-right: -10px;\n }\n .icon-prev,\n .icon-next {\n width: 20px;\n height: 20px;\n line-height: 1;\n font-family: serif;\n }\n\n\n .icon-prev {\n &:before {\n content: '\\2039';// SINGLE LEFT-POINTING ANGLE QUOTATION MARK (U+2039)\n }\n }\n .icon-next {\n &:before {\n content: '\\203a';// SINGLE RIGHT-POINTING ANGLE QUOTATION MARK (U+203A)\n }\n }\n}\n\n// Optional indicator pips\n//\n// Add an unordered list with the following class and add a list item for each\n// slide your carousel holds.\n\n.carousel-indicators {\n position: absolute;\n bottom: 10px;\n left: 50%;\n z-index: 15;\n width: 60%;\n margin-left: -30%;\n padding-left: 0;\n list-style: none;\n text-align: center;\n\n li {\n display: inline-block;\n width: 10px;\n height: 10px;\n margin: 1px;\n text-indent: -999px;\n border: 1px solid @carousel-indicator-border-color;\n border-radius: 10px;\n cursor: pointer;\n\n // IE8-9 hack for event handling\n //\n // Internet Explorer 8-9 does not support clicks on elements without a set\n // `background-color`. We cannot use `filter` since that's not viewed as a\n // background color by the browser. Thus, a hack is needed.\n // See https://developer.mozilla.org/en-US/docs/Web/Events/click#Internet_Explorer\n //\n // For IE8, we set solid black as it doesn't support `rgba()`. For IE9, we\n // set alpha transparency for the best results possible.\n background-color: #000 \\9; // IE8\n background-color: rgba(0,0,0,0); // IE9\n }\n .active {\n margin: 0;\n width: 12px;\n height: 12px;\n background-color: @carousel-indicator-active-bg;\n }\n}\n\n// Optional captions\n// -----------------------------\n// Hidden by default for smaller viewports\n.carousel-caption {\n position: absolute;\n left: 15%;\n right: 15%;\n bottom: 20px;\n z-index: 10;\n padding-top: 20px;\n padding-bottom: 20px;\n color: @carousel-caption-color;\n text-align: center;\n text-shadow: @carousel-text-shadow;\n & .btn {\n text-shadow: none; // No shadow for button elements in carousel-caption\n }\n}\n\n\n// Scale up controls for tablets and up\n@media screen and (min-width: @screen-sm-min) {\n\n // Scale up the controls a smidge\n .carousel-control {\n .glyphicon-chevron-left,\n .glyphicon-chevron-right,\n .icon-prev,\n .icon-next {\n width: (@carousel-control-font-size * 1.5);\n height: (@carousel-control-font-size * 1.5);\n margin-top: (@carousel-control-font-size / -2);\n font-size: (@carousel-control-font-size * 1.5);\n }\n .glyphicon-chevron-left,\n .icon-prev {\n margin-left: (@carousel-control-font-size / -2);\n }\n .glyphicon-chevron-right,\n .icon-next {\n margin-right: (@carousel-control-font-size / -2);\n }\n }\n\n // Show and left align the captions\n .carousel-caption {\n left: 20%;\n right: 20%;\n padding-bottom: 30px;\n }\n\n // Move up the indicators\n .carousel-indicators {\n bottom: 20px;\n }\n}\n","// Clearfix\n//\n// For modern browsers\n// 1. The space content is one way to avoid an Opera bug when the\n// contenteditable attribute is included anywhere else in the document.\n// Otherwise it causes space to appear at the top and bottom of elements\n// that are clearfixed.\n// 2. The use of `table` rather than `block` is only necessary if using\n// `:before` to contain the top-margins of child elements.\n//\n// Source: http://nicolasgallagher.com/micro-clearfix-hack/\n\n.clearfix() {\n &:before,\n &:after {\n content: \" \"; // 1\n display: table; // 2\n }\n &:after {\n clear: both;\n }\n}\n","// Center-align a block level element\n\n.center-block() {\n display: block;\n margin-left: auto;\n margin-right: auto;\n}\n","// CSS image replacement\n//\n// Heads up! v3 launched with only `.hide-text()`, but per our pattern for\n// mixins being reused as classes with the same name, this doesn't hold up. As\n// of v3.0.1 we have added `.text-hide()` and deprecated `.hide-text()`.\n//\n// Source: https://github.com/h5bp/html5-boilerplate/commit/aa0396eae757\n\n// Deprecated as of v3.0.1 (has been removed in v4)\n.hide-text() {\n font: ~\"0/0\" a;\n color: transparent;\n text-shadow: none;\n background-color: transparent;\n border: 0;\n}\n\n// New mixin to use as of v3.0.1\n.text-hide() {\n .hide-text();\n}\n","//\n// Responsive: Utility classes\n// --------------------------------------------------\n\n\n// IE10 in Windows (Phone) 8\n//\n// Support for responsive views via media queries is kind of borked in IE10, for\n// Surface/desktop in split view and for Windows Phone 8. This particular fix\n// must be accompanied by a snippet of JavaScript to sniff the user agent and\n// apply some conditional CSS to *only* the Surface/desktop Windows 8. Look at\n// our Getting Started page for more information on this bug.\n//\n// For more information, see the following:\n//\n// Issue: https://github.com/twbs/bootstrap/issues/10497\n// Docs: http://getbootstrap.com/getting-started/#support-ie10-width\n// Source: http://timkadlec.com/2013/01/windows-phone-8-and-device-width/\n// Source: http://timkadlec.com/2012/10/ie10-snap-mode-and-responsive-design/\n\n@-ms-viewport {\n width: device-width;\n}\n\n\n// Visibility utilities\n// Note: Deprecated .visible-xs, .visible-sm, .visible-md, and .visible-lg as of v3.2.0\n.visible-xs,\n.visible-sm,\n.visible-md,\n.visible-lg {\n .responsive-invisibility();\n}\n\n.visible-xs-block,\n.visible-xs-inline,\n.visible-xs-inline-block,\n.visible-sm-block,\n.visible-sm-inline,\n.visible-sm-inline-block,\n.visible-md-block,\n.visible-md-inline,\n.visible-md-inline-block,\n.visible-lg-block,\n.visible-lg-inline,\n.visible-lg-inline-block {\n display: none !important;\n}\n\n.visible-xs {\n @media (max-width: @screen-xs-max) {\n .responsive-visibility();\n }\n}\n.visible-xs-block {\n @media (max-width: @screen-xs-max) {\n display: block !important;\n }\n}\n.visible-xs-inline {\n @media (max-width: @screen-xs-max) {\n display: inline !important;\n }\n}\n.visible-xs-inline-block {\n @media (max-width: @screen-xs-max) {\n display: inline-block !important;\n }\n}\n\n.visible-sm {\n @media (min-width: @screen-sm-min) and (max-width: @screen-sm-max) {\n .responsive-visibility();\n }\n}\n.visible-sm-block {\n @media (min-width: @screen-sm-min) and (max-width: @screen-sm-max) {\n display: block !important;\n }\n}\n.visible-sm-inline {\n @media (min-width: @screen-sm-min) and (max-width: @screen-sm-max) {\n display: inline !important;\n }\n}\n.visible-sm-inline-block {\n @media (min-width: @screen-sm-min) and (max-width: @screen-sm-max) {\n display: inline-block !important;\n }\n}\n\n.visible-md {\n @media (min-width: @screen-md-min) and (max-width: @screen-md-max) {\n .responsive-visibility();\n }\n}\n.visible-md-block {\n @media (min-width: @screen-md-min) and (max-width: @screen-md-max) {\n display: block !important;\n }\n}\n.visible-md-inline {\n @media (min-width: @screen-md-min) and (max-width: @screen-md-max) {\n display: inline !important;\n }\n}\n.visible-md-inline-block {\n @media (min-width: @screen-md-min) and (max-width: @screen-md-max) {\n display: inline-block !important;\n }\n}\n\n.visible-lg {\n @media (min-width: @screen-lg-min) {\n .responsive-visibility();\n }\n}\n.visible-lg-block {\n @media (min-width: @screen-lg-min) {\n display: block !important;\n }\n}\n.visible-lg-inline {\n @media (min-width: @screen-lg-min) {\n display: inline !important;\n }\n}\n.visible-lg-inline-block {\n @media (min-width: @screen-lg-min) {\n display: inline-block !important;\n }\n}\n\n.hidden-xs {\n @media (max-width: @screen-xs-max) {\n .responsive-invisibility();\n }\n}\n.hidden-sm {\n @media (min-width: @screen-sm-min) and (max-width: @screen-sm-max) {\n .responsive-invisibility();\n }\n}\n.hidden-md {\n @media (min-width: @screen-md-min) and (max-width: @screen-md-max) {\n .responsive-invisibility();\n }\n}\n.hidden-lg {\n @media (min-width: @screen-lg-min) {\n .responsive-invisibility();\n }\n}\n\n\n// Print utilities\n//\n// Media queries are placed on the inside to be mixin-friendly.\n\n// Note: Deprecated .visible-print as of v3.2.0\n.visible-print {\n .responsive-invisibility();\n\n @media print {\n .responsive-visibility();\n }\n}\n.visible-print-block {\n display: none !important;\n\n @media print {\n display: block !important;\n }\n}\n.visible-print-inline {\n display: none !important;\n\n @media print {\n display: inline !important;\n }\n}\n.visible-print-inline-block {\n display: none !important;\n\n @media print {\n display: inline-block !important;\n }\n}\n\n.hidden-print {\n @media print {\n .responsive-invisibility();\n }\n}\n","// Responsive utilities\n\n//\n// More easily include all the states for responsive-utilities.less.\n.responsive-visibility() {\n display: block !important;\n table& { display: table !important; }\n tr& { display: table-row !important; }\n th&,\n td& { display: table-cell !important; }\n}\n\n.responsive-invisibility() {\n display: none !important;\n}\n"]} \ No newline at end of file diff --git a/admin/bower_components/bootstrap/dist/css/bootstrap.min.css b/admin/bower_components/bootstrap/dist/css/bootstrap.min.css deleted file mode 100644 index ed3905e..0000000 --- a/admin/bower_components/bootstrap/dist/css/bootstrap.min.css +++ /dev/null @@ -1,6 +0,0 @@ -/*! - * Bootstrap v3.3.7 (http://getbootstrap.com) - * Copyright 2011-2016 Twitter, Inc. - * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) - *//*! normalize.css v3.0.3 | MIT License | github.com/necolas/normalize.css */html{font-family:sans-serif;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%}body{margin:0}article,aside,details,figcaption,figure,footer,header,hgroup,main,menu,nav,section,summary{display:block}audio,canvas,progress,video{display:inline-block;vertical-align:baseline}audio:not([controls]){display:none;height:0}[hidden],template{display:none}a{background-color:transparent}a:active,a:hover{outline:0}abbr[title]{border-bottom:1px dotted}b,strong{font-weight:700}dfn{font-style:italic}h1{margin:.67em 0;font-size:2em}mark{color:#000;background:#ff0}small{font-size:80%}sub,sup{position:relative;font-size:75%;line-height:0;vertical-align:baseline}sup{top:-.5em}sub{bottom:-.25em}img{border:0}svg:not(:root){overflow:hidden}figure{margin:1em 40px}hr{height:0;-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box}pre{overflow:auto}code,kbd,pre,samp{font-family:monospace,monospace;font-size:1em}button,input,optgroup,select,textarea{margin:0;font:inherit;color:inherit}button{overflow:visible}button,select{text-transform:none}button,html input[type=button],input[type=reset],input[type=submit]{-webkit-appearance:button;cursor:pointer}button[disabled],html input[disabled]{cursor:default}button::-moz-focus-inner,input::-moz-focus-inner{padding:0;border:0}input{line-height:normal}input[type=checkbox],input[type=radio]{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;padding:0}input[type=number]::-webkit-inner-spin-button,input[type=number]::-webkit-outer-spin-button{height:auto}input[type=search]{-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;-webkit-appearance:textfield}input[type=search]::-webkit-search-cancel-button,input[type=search]::-webkit-search-decoration{-webkit-appearance:none}fieldset{padding:.35em .625em .75em;margin:0 2px;border:1px solid silver}legend{padding:0;border:0}textarea{overflow:auto}optgroup{font-weight:700}table{border-spacing:0;border-collapse:collapse}td,th{padding:0}/*! Source: https://github.com/h5bp/html5-boilerplate/blob/master/src/css/main.css */@media print{*,:after,:before{color:#000!important;text-shadow:none!important;background:0 0!important;-webkit-box-shadow:none!important;box-shadow:none!important}a,a:visited{text-decoration:underline}a[href]:after{content:" (" attr(href) ")"}abbr[title]:after{content:" (" attr(title) ")"}a[href^="javascript:"]:after,a[href^="#"]:after{content:""}blockquote,pre{border:1px solid #999;page-break-inside:avoid}thead{display:table-header-group}img,tr{page-break-inside:avoid}img{max-width:100%!important}h2,h3,p{orphans:3;widows:3}h2,h3{page-break-after:avoid}.navbar{display:none}.btn>.caret,.dropup>.btn>.caret{border-top-color:#000!important}.label{border:1px solid #000}.table{border-collapse:collapse!important}.table td,.table th{background-color:#fff!important}.table-bordered td,.table-bordered th{border:1px solid #ddd!important}}@font-face{font-family:'Glyphicons Halflings';src:url(../fonts/glyphicons-halflings-regular.eot);src:url(../fonts/glyphicons-halflings-regular.eot?#iefix) format('embedded-opentype'),url(../fonts/glyphicons-halflings-regular.woff2) format('woff2'),url(../fonts/glyphicons-halflings-regular.woff) format('woff'),url(../fonts/glyphicons-halflings-regular.ttf) format('truetype'),url(../fonts/glyphicons-halflings-regular.svg#glyphicons_halflingsregular) format('svg')}.glyphicon{position:relative;top:1px;display:inline-block;font-family:'Glyphicons Halflings';font-style:normal;font-weight:400;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.glyphicon-asterisk:before{content:"\002a"}.glyphicon-plus:before{content:"\002b"}.glyphicon-eur:before,.glyphicon-euro:before{content:"\20ac"}.glyphicon-minus:before{content:"\2212"}.glyphicon-cloud:before{content:"\2601"}.glyphicon-envelope:before{content:"\2709"}.glyphicon-pencil:before{content:"\270f"}.glyphicon-glass:before{content:"\e001"}.glyphicon-music:before{content:"\e002"}.glyphicon-search:before{content:"\e003"}.glyphicon-heart:before{content:"\e005"}.glyphicon-star:before{content:"\e006"}.glyphicon-star-empty:before{content:"\e007"}.glyphicon-user:before{content:"\e008"}.glyphicon-film:before{content:"\e009"}.glyphicon-th-large:before{content:"\e010"}.glyphicon-th:before{content:"\e011"}.glyphicon-th-list:before{content:"\e012"}.glyphicon-ok:before{content:"\e013"}.glyphicon-remove:before{content:"\e014"}.glyphicon-zoom-in:before{content:"\e015"}.glyphicon-zoom-out:before{content:"\e016"}.glyphicon-off:before{content:"\e017"}.glyphicon-signal:before{content:"\e018"}.glyphicon-cog:before{content:"\e019"}.glyphicon-trash:before{content:"\e020"}.glyphicon-home:before{content:"\e021"}.glyphicon-file:before{content:"\e022"}.glyphicon-time:before{content:"\e023"}.glyphicon-road:before{content:"\e024"}.glyphicon-download-alt:before{content:"\e025"}.glyphicon-download:before{content:"\e026"}.glyphicon-upload:before{content:"\e027"}.glyphicon-inbox:before{content:"\e028"}.glyphicon-play-circle:before{content:"\e029"}.glyphicon-repeat:before{content:"\e030"}.glyphicon-refresh:before{content:"\e031"}.glyphicon-list-alt:before{content:"\e032"}.glyphicon-lock:before{content:"\e033"}.glyphicon-flag:before{content:"\e034"}.glyphicon-headphones:before{content:"\e035"}.glyphicon-volume-off:before{content:"\e036"}.glyphicon-volume-down:before{content:"\e037"}.glyphicon-volume-up:before{content:"\e038"}.glyphicon-qrcode:before{content:"\e039"}.glyphicon-barcode:before{content:"\e040"}.glyphicon-tag:before{content:"\e041"}.glyphicon-tags:before{content:"\e042"}.glyphicon-book:before{content:"\e043"}.glyphicon-bookmark:before{content:"\e044"}.glyphicon-print:before{content:"\e045"}.glyphicon-camera:before{content:"\e046"}.glyphicon-font:before{content:"\e047"}.glyphicon-bold:before{content:"\e048"}.glyphicon-italic:before{content:"\e049"}.glyphicon-text-height:before{content:"\e050"}.glyphicon-text-width:before{content:"\e051"}.glyphicon-align-left:before{content:"\e052"}.glyphicon-align-center:before{content:"\e053"}.glyphicon-align-right:before{content:"\e054"}.glyphicon-align-justify:before{content:"\e055"}.glyphicon-list:before{content:"\e056"}.glyphicon-indent-left:before{content:"\e057"}.glyphicon-indent-right:before{content:"\e058"}.glyphicon-facetime-video:before{content:"\e059"}.glyphicon-picture:before{content:"\e060"}.glyphicon-map-marker:before{content:"\e062"}.glyphicon-adjust:before{content:"\e063"}.glyphicon-tint:before{content:"\e064"}.glyphicon-edit:before{content:"\e065"}.glyphicon-share:before{content:"\e066"}.glyphicon-check:before{content:"\e067"}.glyphicon-move:before{content:"\e068"}.glyphicon-step-backward:before{content:"\e069"}.glyphicon-fast-backward:before{content:"\e070"}.glyphicon-backward:before{content:"\e071"}.glyphicon-play:before{content:"\e072"}.glyphicon-pause:before{content:"\e073"}.glyphicon-stop:before{content:"\e074"}.glyphicon-forward:before{content:"\e075"}.glyphicon-fast-forward:before{content:"\e076"}.glyphicon-step-forward:before{content:"\e077"}.glyphicon-eject:before{content:"\e078"}.glyphicon-chevron-left:before{content:"\e079"}.glyphicon-chevron-right:before{content:"\e080"}.glyphicon-plus-sign:before{content:"\e081"}.glyphicon-minus-sign:before{content:"\e082"}.glyphicon-remove-sign:before{content:"\e083"}.glyphicon-ok-sign:before{content:"\e084"}.glyphicon-question-sign:before{content:"\e085"}.glyphicon-info-sign:before{content:"\e086"}.glyphicon-screenshot:before{content:"\e087"}.glyphicon-remove-circle:before{content:"\e088"}.glyphicon-ok-circle:before{content:"\e089"}.glyphicon-ban-circle:before{content:"\e090"}.glyphicon-arrow-left:before{content:"\e091"}.glyphicon-arrow-right:before{content:"\e092"}.glyphicon-arrow-up:before{content:"\e093"}.glyphicon-arrow-down:before{content:"\e094"}.glyphicon-share-alt:before{content:"\e095"}.glyphicon-resize-full:before{content:"\e096"}.glyphicon-resize-small:before{content:"\e097"}.glyphicon-exclamation-sign:before{content:"\e101"}.glyphicon-gift:before{content:"\e102"}.glyphicon-leaf:before{content:"\e103"}.glyphicon-fire:before{content:"\e104"}.glyphicon-eye-open:before{content:"\e105"}.glyphicon-eye-close:before{content:"\e106"}.glyphicon-warning-sign:before{content:"\e107"}.glyphicon-plane:before{content:"\e108"}.glyphicon-calendar:before{content:"\e109"}.glyphicon-random:before{content:"\e110"}.glyphicon-comment:before{content:"\e111"}.glyphicon-magnet:before{content:"\e112"}.glyphicon-chevron-up:before{content:"\e113"}.glyphicon-chevron-down:before{content:"\e114"}.glyphicon-retweet:before{content:"\e115"}.glyphicon-shopping-cart:before{content:"\e116"}.glyphicon-folder-close:before{content:"\e117"}.glyphicon-folder-open:before{content:"\e118"}.glyphicon-resize-vertical:before{content:"\e119"}.glyphicon-resize-horizontal:before{content:"\e120"}.glyphicon-hdd:before{content:"\e121"}.glyphicon-bullhorn:before{content:"\e122"}.glyphicon-bell:before{content:"\e123"}.glyphicon-certificate:before{content:"\e124"}.glyphicon-thumbs-up:before{content:"\e125"}.glyphicon-thumbs-down:before{content:"\e126"}.glyphicon-hand-right:before{content:"\e127"}.glyphicon-hand-left:before{content:"\e128"}.glyphicon-hand-up:before{content:"\e129"}.glyphicon-hand-down:before{content:"\e130"}.glyphicon-circle-arrow-right:before{content:"\e131"}.glyphicon-circle-arrow-left:before{content:"\e132"}.glyphicon-circle-arrow-up:before{content:"\e133"}.glyphicon-circle-arrow-down:before{content:"\e134"}.glyphicon-globe:before{content:"\e135"}.glyphicon-wrench:before{content:"\e136"}.glyphicon-tasks:before{content:"\e137"}.glyphicon-filter:before{content:"\e138"}.glyphicon-briefcase:before{content:"\e139"}.glyphicon-fullscreen:before{content:"\e140"}.glyphicon-dashboard:before{content:"\e141"}.glyphicon-paperclip:before{content:"\e142"}.glyphicon-heart-empty:before{content:"\e143"}.glyphicon-link:before{content:"\e144"}.glyphicon-phone:before{content:"\e145"}.glyphicon-pushpin:before{content:"\e146"}.glyphicon-usd:before{content:"\e148"}.glyphicon-gbp:before{content:"\e149"}.glyphicon-sort:before{content:"\e150"}.glyphicon-sort-by-alphabet:before{content:"\e151"}.glyphicon-sort-by-alphabet-alt:before{content:"\e152"}.glyphicon-sort-by-order:before{content:"\e153"}.glyphicon-sort-by-order-alt:before{content:"\e154"}.glyphicon-sort-by-attributes:before{content:"\e155"}.glyphicon-sort-by-attributes-alt:before{content:"\e156"}.glyphicon-unchecked:before{content:"\e157"}.glyphicon-expand:before{content:"\e158"}.glyphicon-collapse-down:before{content:"\e159"}.glyphicon-collapse-up:before{content:"\e160"}.glyphicon-log-in:before{content:"\e161"}.glyphicon-flash:before{content:"\e162"}.glyphicon-log-out:before{content:"\e163"}.glyphicon-new-window:before{content:"\e164"}.glyphicon-record:before{content:"\e165"}.glyphicon-save:before{content:"\e166"}.glyphicon-open:before{content:"\e167"}.glyphicon-saved:before{content:"\e168"}.glyphicon-import:before{content:"\e169"}.glyphicon-export:before{content:"\e170"}.glyphicon-send:before{content:"\e171"}.glyphicon-floppy-disk:before{content:"\e172"}.glyphicon-floppy-saved:before{content:"\e173"}.glyphicon-floppy-remove:before{content:"\e174"}.glyphicon-floppy-save:before{content:"\e175"}.glyphicon-floppy-open:before{content:"\e176"}.glyphicon-credit-card:before{content:"\e177"}.glyphicon-transfer:before{content:"\e178"}.glyphicon-cutlery:before{content:"\e179"}.glyphicon-header:before{content:"\e180"}.glyphicon-compressed:before{content:"\e181"}.glyphicon-earphone:before{content:"\e182"}.glyphicon-phone-alt:before{content:"\e183"}.glyphicon-tower:before{content:"\e184"}.glyphicon-stats:before{content:"\e185"}.glyphicon-sd-video:before{content:"\e186"}.glyphicon-hd-video:before{content:"\e187"}.glyphicon-subtitles:before{content:"\e188"}.glyphicon-sound-stereo:before{content:"\e189"}.glyphicon-sound-dolby:before{content:"\e190"}.glyphicon-sound-5-1:before{content:"\e191"}.glyphicon-sound-6-1:before{content:"\e192"}.glyphicon-sound-7-1:before{content:"\e193"}.glyphicon-copyright-mark:before{content:"\e194"}.glyphicon-registration-mark:before{content:"\e195"}.glyphicon-cloud-download:before{content:"\e197"}.glyphicon-cloud-upload:before{content:"\e198"}.glyphicon-tree-conifer:before{content:"\e199"}.glyphicon-tree-deciduous:before{content:"\e200"}.glyphicon-cd:before{content:"\e201"}.glyphicon-save-file:before{content:"\e202"}.glyphicon-open-file:before{content:"\e203"}.glyphicon-level-up:before{content:"\e204"}.glyphicon-copy:before{content:"\e205"}.glyphicon-paste:before{content:"\e206"}.glyphicon-alert:before{content:"\e209"}.glyphicon-equalizer:before{content:"\e210"}.glyphicon-king:before{content:"\e211"}.glyphicon-queen:before{content:"\e212"}.glyphicon-pawn:before{content:"\e213"}.glyphicon-bishop:before{content:"\e214"}.glyphicon-knight:before{content:"\e215"}.glyphicon-baby-formula:before{content:"\e216"}.glyphicon-tent:before{content:"\26fa"}.glyphicon-blackboard:before{content:"\e218"}.glyphicon-bed:before{content:"\e219"}.glyphicon-apple:before{content:"\f8ff"}.glyphicon-erase:before{content:"\e221"}.glyphicon-hourglass:before{content:"\231b"}.glyphicon-lamp:before{content:"\e223"}.glyphicon-duplicate:before{content:"\e224"}.glyphicon-piggy-bank:before{content:"\e225"}.glyphicon-scissors:before{content:"\e226"}.glyphicon-bitcoin:before{content:"\e227"}.glyphicon-btc:before{content:"\e227"}.glyphicon-xbt:before{content:"\e227"}.glyphicon-yen:before{content:"\00a5"}.glyphicon-jpy:before{content:"\00a5"}.glyphicon-ruble:before{content:"\20bd"}.glyphicon-rub:before{content:"\20bd"}.glyphicon-scale:before{content:"\e230"}.glyphicon-ice-lolly:before{content:"\e231"}.glyphicon-ice-lolly-tasted:before{content:"\e232"}.glyphicon-education:before{content:"\e233"}.glyphicon-option-horizontal:before{content:"\e234"}.glyphicon-option-vertical:before{content:"\e235"}.glyphicon-menu-hamburger:before{content:"\e236"}.glyphicon-modal-window:before{content:"\e237"}.glyphicon-oil:before{content:"\e238"}.glyphicon-grain:before{content:"\e239"}.glyphicon-sunglasses:before{content:"\e240"}.glyphicon-text-size:before{content:"\e241"}.glyphicon-text-color:before{content:"\e242"}.glyphicon-text-background:before{content:"\e243"}.glyphicon-object-align-top:before{content:"\e244"}.glyphicon-object-align-bottom:before{content:"\e245"}.glyphicon-object-align-horizontal:before{content:"\e246"}.glyphicon-object-align-left:before{content:"\e247"}.glyphicon-object-align-vertical:before{content:"\e248"}.glyphicon-object-align-right:before{content:"\e249"}.glyphicon-triangle-right:before{content:"\e250"}.glyphicon-triangle-left:before{content:"\e251"}.glyphicon-triangle-bottom:before{content:"\e252"}.glyphicon-triangle-top:before{content:"\e253"}.glyphicon-console:before{content:"\e254"}.glyphicon-superscript:before{content:"\e255"}.glyphicon-subscript:before{content:"\e256"}.glyphicon-menu-left:before{content:"\e257"}.glyphicon-menu-right:before{content:"\e258"}.glyphicon-menu-down:before{content:"\e259"}.glyphicon-menu-up:before{content:"\e260"}*{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}:after,:before{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}html{font-size:10px;-webkit-tap-highlight-color:rgba(0,0,0,0)}body{font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:14px;line-height:1.42857143;color:#333;background-color:#fff}button,input,select,textarea{font-family:inherit;font-size:inherit;line-height:inherit}a{color:#337ab7;text-decoration:none}a:focus,a:hover{color:#23527c;text-decoration:underline}a:focus{outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}figure{margin:0}img{vertical-align:middle}.carousel-inner>.item>a>img,.carousel-inner>.item>img,.img-responsive,.thumbnail a>img,.thumbnail>img{display:block;max-width:100%;height:auto}.img-rounded{border-radius:6px}.img-thumbnail{display:inline-block;max-width:100%;height:auto;padding:4px;line-height:1.42857143;background-color:#fff;border:1px solid #ddd;border-radius:4px;-webkit-transition:all .2s ease-in-out;-o-transition:all .2s ease-in-out;transition:all .2s ease-in-out}.img-circle{border-radius:50%}hr{margin-top:20px;margin-bottom:20px;border:0;border-top:1px solid #eee}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);border:0}.sr-only-focusable:active,.sr-only-focusable:focus{position:static;width:auto;height:auto;margin:0;overflow:visible;clip:auto}[role=button]{cursor:pointer}.h1,.h2,.h3,.h4,.h5,.h6,h1,h2,h3,h4,h5,h6{font-family:inherit;font-weight:500;line-height:1.1;color:inherit}.h1 .small,.h1 small,.h2 .small,.h2 small,.h3 .small,.h3 small,.h4 .small,.h4 small,.h5 .small,.h5 small,.h6 .small,.h6 small,h1 .small,h1 small,h2 .small,h2 small,h3 .small,h3 small,h4 .small,h4 small,h5 .small,h5 small,h6 .small,h6 small{font-weight:400;line-height:1;color:#777}.h1,.h2,.h3,h1,h2,h3{margin-top:20px;margin-bottom:10px}.h1 .small,.h1 small,.h2 .small,.h2 small,.h3 .small,.h3 small,h1 .small,h1 small,h2 .small,h2 small,h3 .small,h3 small{font-size:65%}.h4,.h5,.h6,h4,h5,h6{margin-top:10px;margin-bottom:10px}.h4 .small,.h4 small,.h5 .small,.h5 small,.h6 .small,.h6 small,h4 .small,h4 small,h5 .small,h5 small,h6 .small,h6 small{font-size:75%}.h1,h1{font-size:36px}.h2,h2{font-size:30px}.h3,h3{font-size:24px}.h4,h4{font-size:18px}.h5,h5{font-size:14px}.h6,h6{font-size:12px}p{margin:0 0 10px}.lead{margin-bottom:20px;font-size:16px;font-weight:300;line-height:1.4}@media (min-width:768px){.lead{font-size:21px}}.small,small{font-size:85%}.mark,mark{padding:.2em;background-color:#fcf8e3}.text-left{text-align:left}.text-right{text-align:right}.text-center{text-align:center}.text-justify{text-align:justify}.text-nowrap{white-space:nowrap}.text-lowercase{text-transform:lowercase}.text-uppercase{text-transform:uppercase}.text-capitalize{text-transform:capitalize}.text-muted{color:#777}.text-primary{color:#337ab7}a.text-primary:focus,a.text-primary:hover{color:#286090}.text-success{color:#3c763d}a.text-success:focus,a.text-success:hover{color:#2b542c}.text-info{color:#31708f}a.text-info:focus,a.text-info:hover{color:#245269}.text-warning{color:#8a6d3b}a.text-warning:focus,a.text-warning:hover{color:#66512c}.text-danger{color:#a94442}a.text-danger:focus,a.text-danger:hover{color:#843534}.bg-primary{color:#fff;background-color:#337ab7}a.bg-primary:focus,a.bg-primary:hover{background-color:#286090}.bg-success{background-color:#dff0d8}a.bg-success:focus,a.bg-success:hover{background-color:#c1e2b3}.bg-info{background-color:#d9edf7}a.bg-info:focus,a.bg-info:hover{background-color:#afd9ee}.bg-warning{background-color:#fcf8e3}a.bg-warning:focus,a.bg-warning:hover{background-color:#f7ecb5}.bg-danger{background-color:#f2dede}a.bg-danger:focus,a.bg-danger:hover{background-color:#e4b9b9}.page-header{padding-bottom:9px;margin:40px 0 20px;border-bottom:1px solid #eee}ol,ul{margin-top:0;margin-bottom:10px}ol ol,ol ul,ul ol,ul ul{margin-bottom:0}.list-unstyled{padding-left:0;list-style:none}.list-inline{padding-left:0;margin-left:-5px;list-style:none}.list-inline>li{display:inline-block;padding-right:5px;padding-left:5px}dl{margin-top:0;margin-bottom:20px}dd,dt{line-height:1.42857143}dt{font-weight:700}dd{margin-left:0}@media (min-width:768px){.dl-horizontal dt{float:left;width:160px;overflow:hidden;clear:left;text-align:right;text-overflow:ellipsis;white-space:nowrap}.dl-horizontal dd{margin-left:180px}}abbr[data-original-title],abbr[title]{cursor:help;border-bottom:1px dotted #777}.initialism{font-size:90%;text-transform:uppercase}blockquote{padding:10px 20px;margin:0 0 20px;font-size:17.5px;border-left:5px solid #eee}blockquote ol:last-child,blockquote p:last-child,blockquote ul:last-child{margin-bottom:0}blockquote .small,blockquote footer,blockquote small{display:block;font-size:80%;line-height:1.42857143;color:#777}blockquote .small:before,blockquote footer:before,blockquote small:before{content:'\2014 \00A0'}.blockquote-reverse,blockquote.pull-right{padding-right:15px;padding-left:0;text-align:right;border-right:5px solid #eee;border-left:0}.blockquote-reverse .small:before,.blockquote-reverse footer:before,.blockquote-reverse small:before,blockquote.pull-right .small:before,blockquote.pull-right footer:before,blockquote.pull-right small:before{content:''}.blockquote-reverse .small:after,.blockquote-reverse footer:after,.blockquote-reverse small:after,blockquote.pull-right .small:after,blockquote.pull-right footer:after,blockquote.pull-right small:after{content:'\00A0 \2014'}address{margin-bottom:20px;font-style:normal;line-height:1.42857143}code,kbd,pre,samp{font-family:Menlo,Monaco,Consolas,"Courier New",monospace}code{padding:2px 4px;font-size:90%;color:#c7254e;background-color:#f9f2f4;border-radius:4px}kbd{padding:2px 4px;font-size:90%;color:#fff;background-color:#333;border-radius:3px;-webkit-box-shadow:inset 0 -1px 0 rgba(0,0,0,.25);box-shadow:inset 0 -1px 0 rgba(0,0,0,.25)}kbd kbd{padding:0;font-size:100%;font-weight:700;-webkit-box-shadow:none;box-shadow:none}pre{display:block;padding:9.5px;margin:0 0 10px;font-size:13px;line-height:1.42857143;color:#333;word-break:break-all;word-wrap:break-word;background-color:#f5f5f5;border:1px solid #ccc;border-radius:4px}pre code{padding:0;font-size:inherit;color:inherit;white-space:pre-wrap;background-color:transparent;border-radius:0}.pre-scrollable{max-height:340px;overflow-y:scroll}.container{padding-right:15px;padding-left:15px;margin-right:auto;margin-left:auto}@media (min-width:768px){.container{width:750px}}@media (min-width:992px){.container{width:970px}}@media (min-width:1200px){.container{width:1170px}}.container-fluid{padding-right:15px;padding-left:15px;margin-right:auto;margin-left:auto}.row{margin-right:-15px;margin-left:-15px}.col-lg-1,.col-lg-10,.col-lg-11,.col-lg-12,.col-lg-2,.col-lg-3,.col-lg-4,.col-lg-5,.col-lg-6,.col-lg-7,.col-lg-8,.col-lg-9,.col-md-1,.col-md-10,.col-md-11,.col-md-12,.col-md-2,.col-md-3,.col-md-4,.col-md-5,.col-md-6,.col-md-7,.col-md-8,.col-md-9,.col-sm-1,.col-sm-10,.col-sm-11,.col-sm-12,.col-sm-2,.col-sm-3,.col-sm-4,.col-sm-5,.col-sm-6,.col-sm-7,.col-sm-8,.col-sm-9,.col-xs-1,.col-xs-10,.col-xs-11,.col-xs-12,.col-xs-2,.col-xs-3,.col-xs-4,.col-xs-5,.col-xs-6,.col-xs-7,.col-xs-8,.col-xs-9{position:relative;min-height:1px;padding-right:15px;padding-left:15px}.col-xs-1,.col-xs-10,.col-xs-11,.col-xs-12,.col-xs-2,.col-xs-3,.col-xs-4,.col-xs-5,.col-xs-6,.col-xs-7,.col-xs-8,.col-xs-9{float:left}.col-xs-12{width:100%}.col-xs-11{width:91.66666667%}.col-xs-10{width:83.33333333%}.col-xs-9{width:75%}.col-xs-8{width:66.66666667%}.col-xs-7{width:58.33333333%}.col-xs-6{width:50%}.col-xs-5{width:41.66666667%}.col-xs-4{width:33.33333333%}.col-xs-3{width:25%}.col-xs-2{width:16.66666667%}.col-xs-1{width:8.33333333%}.col-xs-pull-12{right:100%}.col-xs-pull-11{right:91.66666667%}.col-xs-pull-10{right:83.33333333%}.col-xs-pull-9{right:75%}.col-xs-pull-8{right:66.66666667%}.col-xs-pull-7{right:58.33333333%}.col-xs-pull-6{right:50%}.col-xs-pull-5{right:41.66666667%}.col-xs-pull-4{right:33.33333333%}.col-xs-pull-3{right:25%}.col-xs-pull-2{right:16.66666667%}.col-xs-pull-1{right:8.33333333%}.col-xs-pull-0{right:auto}.col-xs-push-12{left:100%}.col-xs-push-11{left:91.66666667%}.col-xs-push-10{left:83.33333333%}.col-xs-push-9{left:75%}.col-xs-push-8{left:66.66666667%}.col-xs-push-7{left:58.33333333%}.col-xs-push-6{left:50%}.col-xs-push-5{left:41.66666667%}.col-xs-push-4{left:33.33333333%}.col-xs-push-3{left:25%}.col-xs-push-2{left:16.66666667%}.col-xs-push-1{left:8.33333333%}.col-xs-push-0{left:auto}.col-xs-offset-12{margin-left:100%}.col-xs-offset-11{margin-left:91.66666667%}.col-xs-offset-10{margin-left:83.33333333%}.col-xs-offset-9{margin-left:75%}.col-xs-offset-8{margin-left:66.66666667%}.col-xs-offset-7{margin-left:58.33333333%}.col-xs-offset-6{margin-left:50%}.col-xs-offset-5{margin-left:41.66666667%}.col-xs-offset-4{margin-left:33.33333333%}.col-xs-offset-3{margin-left:25%}.col-xs-offset-2{margin-left:16.66666667%}.col-xs-offset-1{margin-left:8.33333333%}.col-xs-offset-0{margin-left:0}@media (min-width:768px){.col-sm-1,.col-sm-10,.col-sm-11,.col-sm-12,.col-sm-2,.col-sm-3,.col-sm-4,.col-sm-5,.col-sm-6,.col-sm-7,.col-sm-8,.col-sm-9{float:left}.col-sm-12{width:100%}.col-sm-11{width:91.66666667%}.col-sm-10{width:83.33333333%}.col-sm-9{width:75%}.col-sm-8{width:66.66666667%}.col-sm-7{width:58.33333333%}.col-sm-6{width:50%}.col-sm-5{width:41.66666667%}.col-sm-4{width:33.33333333%}.col-sm-3{width:25%}.col-sm-2{width:16.66666667%}.col-sm-1{width:8.33333333%}.col-sm-pull-12{right:100%}.col-sm-pull-11{right:91.66666667%}.col-sm-pull-10{right:83.33333333%}.col-sm-pull-9{right:75%}.col-sm-pull-8{right:66.66666667%}.col-sm-pull-7{right:58.33333333%}.col-sm-pull-6{right:50%}.col-sm-pull-5{right:41.66666667%}.col-sm-pull-4{right:33.33333333%}.col-sm-pull-3{right:25%}.col-sm-pull-2{right:16.66666667%}.col-sm-pull-1{right:8.33333333%}.col-sm-pull-0{right:auto}.col-sm-push-12{left:100%}.col-sm-push-11{left:91.66666667%}.col-sm-push-10{left:83.33333333%}.col-sm-push-9{left:75%}.col-sm-push-8{left:66.66666667%}.col-sm-push-7{left:58.33333333%}.col-sm-push-6{left:50%}.col-sm-push-5{left:41.66666667%}.col-sm-push-4{left:33.33333333%}.col-sm-push-3{left:25%}.col-sm-push-2{left:16.66666667%}.col-sm-push-1{left:8.33333333%}.col-sm-push-0{left:auto}.col-sm-offset-12{margin-left:100%}.col-sm-offset-11{margin-left:91.66666667%}.col-sm-offset-10{margin-left:83.33333333%}.col-sm-offset-9{margin-left:75%}.col-sm-offset-8{margin-left:66.66666667%}.col-sm-offset-7{margin-left:58.33333333%}.col-sm-offset-6{margin-left:50%}.col-sm-offset-5{margin-left:41.66666667%}.col-sm-offset-4{margin-left:33.33333333%}.col-sm-offset-3{margin-left:25%}.col-sm-offset-2{margin-left:16.66666667%}.col-sm-offset-1{margin-left:8.33333333%}.col-sm-offset-0{margin-left:0}}@media (min-width:992px){.col-md-1,.col-md-10,.col-md-11,.col-md-12,.col-md-2,.col-md-3,.col-md-4,.col-md-5,.col-md-6,.col-md-7,.col-md-8,.col-md-9{float:left}.col-md-12{width:100%}.col-md-11{width:91.66666667%}.col-md-10{width:83.33333333%}.col-md-9{width:75%}.col-md-8{width:66.66666667%}.col-md-7{width:58.33333333%}.col-md-6{width:50%}.col-md-5{width:41.66666667%}.col-md-4{width:33.33333333%}.col-md-3{width:25%}.col-md-2{width:16.66666667%}.col-md-1{width:8.33333333%}.col-md-pull-12{right:100%}.col-md-pull-11{right:91.66666667%}.col-md-pull-10{right:83.33333333%}.col-md-pull-9{right:75%}.col-md-pull-8{right:66.66666667%}.col-md-pull-7{right:58.33333333%}.col-md-pull-6{right:50%}.col-md-pull-5{right:41.66666667%}.col-md-pull-4{right:33.33333333%}.col-md-pull-3{right:25%}.col-md-pull-2{right:16.66666667%}.col-md-pull-1{right:8.33333333%}.col-md-pull-0{right:auto}.col-md-push-12{left:100%}.col-md-push-11{left:91.66666667%}.col-md-push-10{left:83.33333333%}.col-md-push-9{left:75%}.col-md-push-8{left:66.66666667%}.col-md-push-7{left:58.33333333%}.col-md-push-6{left:50%}.col-md-push-5{left:41.66666667%}.col-md-push-4{left:33.33333333%}.col-md-push-3{left:25%}.col-md-push-2{left:16.66666667%}.col-md-push-1{left:8.33333333%}.col-md-push-0{left:auto}.col-md-offset-12{margin-left:100%}.col-md-offset-11{margin-left:91.66666667%}.col-md-offset-10{margin-left:83.33333333%}.col-md-offset-9{margin-left:75%}.col-md-offset-8{margin-left:66.66666667%}.col-md-offset-7{margin-left:58.33333333%}.col-md-offset-6{margin-left:50%}.col-md-offset-5{margin-left:41.66666667%}.col-md-offset-4{margin-left:33.33333333%}.col-md-offset-3{margin-left:25%}.col-md-offset-2{margin-left:16.66666667%}.col-md-offset-1{margin-left:8.33333333%}.col-md-offset-0{margin-left:0}}@media (min-width:1200px){.col-lg-1,.col-lg-10,.col-lg-11,.col-lg-12,.col-lg-2,.col-lg-3,.col-lg-4,.col-lg-5,.col-lg-6,.col-lg-7,.col-lg-8,.col-lg-9{float:left}.col-lg-12{width:100%}.col-lg-11{width:91.66666667%}.col-lg-10{width:83.33333333%}.col-lg-9{width:75%}.col-lg-8{width:66.66666667%}.col-lg-7{width:58.33333333%}.col-lg-6{width:50%}.col-lg-5{width:41.66666667%}.col-lg-4{width:33.33333333%}.col-lg-3{width:25%}.col-lg-2{width:16.66666667%}.col-lg-1{width:8.33333333%}.col-lg-pull-12{right:100%}.col-lg-pull-11{right:91.66666667%}.col-lg-pull-10{right:83.33333333%}.col-lg-pull-9{right:75%}.col-lg-pull-8{right:66.66666667%}.col-lg-pull-7{right:58.33333333%}.col-lg-pull-6{right:50%}.col-lg-pull-5{right:41.66666667%}.col-lg-pull-4{right:33.33333333%}.col-lg-pull-3{right:25%}.col-lg-pull-2{right:16.66666667%}.col-lg-pull-1{right:8.33333333%}.col-lg-pull-0{right:auto}.col-lg-push-12{left:100%}.col-lg-push-11{left:91.66666667%}.col-lg-push-10{left:83.33333333%}.col-lg-push-9{left:75%}.col-lg-push-8{left:66.66666667%}.col-lg-push-7{left:58.33333333%}.col-lg-push-6{left:50%}.col-lg-push-5{left:41.66666667%}.col-lg-push-4{left:33.33333333%}.col-lg-push-3{left:25%}.col-lg-push-2{left:16.66666667%}.col-lg-push-1{left:8.33333333%}.col-lg-push-0{left:auto}.col-lg-offset-12{margin-left:100%}.col-lg-offset-11{margin-left:91.66666667%}.col-lg-offset-10{margin-left:83.33333333%}.col-lg-offset-9{margin-left:75%}.col-lg-offset-8{margin-left:66.66666667%}.col-lg-offset-7{margin-left:58.33333333%}.col-lg-offset-6{margin-left:50%}.col-lg-offset-5{margin-left:41.66666667%}.col-lg-offset-4{margin-left:33.33333333%}.col-lg-offset-3{margin-left:25%}.col-lg-offset-2{margin-left:16.66666667%}.col-lg-offset-1{margin-left:8.33333333%}.col-lg-offset-0{margin-left:0}}table{background-color:transparent}caption{padding-top:8px;padding-bottom:8px;color:#777;text-align:left}th{text-align:left}.table{width:100%;max-width:100%;margin-bottom:20px}.table>tbody>tr>td,.table>tbody>tr>th,.table>tfoot>tr>td,.table>tfoot>tr>th,.table>thead>tr>td,.table>thead>tr>th{padding:8px;line-height:1.42857143;vertical-align:top;border-top:1px solid #ddd}.table>thead>tr>th{vertical-align:bottom;border-bottom:2px solid #ddd}.table>caption+thead>tr:first-child>td,.table>caption+thead>tr:first-child>th,.table>colgroup+thead>tr:first-child>td,.table>colgroup+thead>tr:first-child>th,.table>thead:first-child>tr:first-child>td,.table>thead:first-child>tr:first-child>th{border-top:0}.table>tbody+tbody{border-top:2px solid #ddd}.table .table{background-color:#fff}.table-condensed>tbody>tr>td,.table-condensed>tbody>tr>th,.table-condensed>tfoot>tr>td,.table-condensed>tfoot>tr>th,.table-condensed>thead>tr>td,.table-condensed>thead>tr>th{padding:5px}.table-bordered{border:1px solid #ddd}.table-bordered>tbody>tr>td,.table-bordered>tbody>tr>th,.table-bordered>tfoot>tr>td,.table-bordered>tfoot>tr>th,.table-bordered>thead>tr>td,.table-bordered>thead>tr>th{border:1px solid #ddd}.table-bordered>thead>tr>td,.table-bordered>thead>tr>th{border-bottom-width:2px}.table-striped>tbody>tr:nth-of-type(odd){background-color:#f9f9f9}.table-hover>tbody>tr:hover{background-color:#f5f5f5}table col[class*=col-]{position:static;display:table-column;float:none}table td[class*=col-],table th[class*=col-]{position:static;display:table-cell;float:none}.table>tbody>tr.active>td,.table>tbody>tr.active>th,.table>tbody>tr>td.active,.table>tbody>tr>th.active,.table>tfoot>tr.active>td,.table>tfoot>tr.active>th,.table>tfoot>tr>td.active,.table>tfoot>tr>th.active,.table>thead>tr.active>td,.table>thead>tr.active>th,.table>thead>tr>td.active,.table>thead>tr>th.active{background-color:#f5f5f5}.table-hover>tbody>tr.active:hover>td,.table-hover>tbody>tr.active:hover>th,.table-hover>tbody>tr:hover>.active,.table-hover>tbody>tr>td.active:hover,.table-hover>tbody>tr>th.active:hover{background-color:#e8e8e8}.table>tbody>tr.success>td,.table>tbody>tr.success>th,.table>tbody>tr>td.success,.table>tbody>tr>th.success,.table>tfoot>tr.success>td,.table>tfoot>tr.success>th,.table>tfoot>tr>td.success,.table>tfoot>tr>th.success,.table>thead>tr.success>td,.table>thead>tr.success>th,.table>thead>tr>td.success,.table>thead>tr>th.success{background-color:#dff0d8}.table-hover>tbody>tr.success:hover>td,.table-hover>tbody>tr.success:hover>th,.table-hover>tbody>tr:hover>.success,.table-hover>tbody>tr>td.success:hover,.table-hover>tbody>tr>th.success:hover{background-color:#d0e9c6}.table>tbody>tr.info>td,.table>tbody>tr.info>th,.table>tbody>tr>td.info,.table>tbody>tr>th.info,.table>tfoot>tr.info>td,.table>tfoot>tr.info>th,.table>tfoot>tr>td.info,.table>tfoot>tr>th.info,.table>thead>tr.info>td,.table>thead>tr.info>th,.table>thead>tr>td.info,.table>thead>tr>th.info{background-color:#d9edf7}.table-hover>tbody>tr.info:hover>td,.table-hover>tbody>tr.info:hover>th,.table-hover>tbody>tr:hover>.info,.table-hover>tbody>tr>td.info:hover,.table-hover>tbody>tr>th.info:hover{background-color:#c4e3f3}.table>tbody>tr.warning>td,.table>tbody>tr.warning>th,.table>tbody>tr>td.warning,.table>tbody>tr>th.warning,.table>tfoot>tr.warning>td,.table>tfoot>tr.warning>th,.table>tfoot>tr>td.warning,.table>tfoot>tr>th.warning,.table>thead>tr.warning>td,.table>thead>tr.warning>th,.table>thead>tr>td.warning,.table>thead>tr>th.warning{background-color:#fcf8e3}.table-hover>tbody>tr.warning:hover>td,.table-hover>tbody>tr.warning:hover>th,.table-hover>tbody>tr:hover>.warning,.table-hover>tbody>tr>td.warning:hover,.table-hover>tbody>tr>th.warning:hover{background-color:#faf2cc}.table>tbody>tr.danger>td,.table>tbody>tr.danger>th,.table>tbody>tr>td.danger,.table>tbody>tr>th.danger,.table>tfoot>tr.danger>td,.table>tfoot>tr.danger>th,.table>tfoot>tr>td.danger,.table>tfoot>tr>th.danger,.table>thead>tr.danger>td,.table>thead>tr.danger>th,.table>thead>tr>td.danger,.table>thead>tr>th.danger{background-color:#f2dede}.table-hover>tbody>tr.danger:hover>td,.table-hover>tbody>tr.danger:hover>th,.table-hover>tbody>tr:hover>.danger,.table-hover>tbody>tr>td.danger:hover,.table-hover>tbody>tr>th.danger:hover{background-color:#ebcccc}.table-responsive{min-height:.01%;overflow-x:auto}@media screen and (max-width:767px){.table-responsive{width:100%;margin-bottom:15px;overflow-y:hidden;-ms-overflow-style:-ms-autohiding-scrollbar;border:1px solid #ddd}.table-responsive>.table{margin-bottom:0}.table-responsive>.table>tbody>tr>td,.table-responsive>.table>tbody>tr>th,.table-responsive>.table>tfoot>tr>td,.table-responsive>.table>tfoot>tr>th,.table-responsive>.table>thead>tr>td,.table-responsive>.table>thead>tr>th{white-space:nowrap}.table-responsive>.table-bordered{border:0}.table-responsive>.table-bordered>tbody>tr>td:first-child,.table-responsive>.table-bordered>tbody>tr>th:first-child,.table-responsive>.table-bordered>tfoot>tr>td:first-child,.table-responsive>.table-bordered>tfoot>tr>th:first-child,.table-responsive>.table-bordered>thead>tr>td:first-child,.table-responsive>.table-bordered>thead>tr>th:first-child{border-left:0}.table-responsive>.table-bordered>tbody>tr>td:last-child,.table-responsive>.table-bordered>tbody>tr>th:last-child,.table-responsive>.table-bordered>tfoot>tr>td:last-child,.table-responsive>.table-bordered>tfoot>tr>th:last-child,.table-responsive>.table-bordered>thead>tr>td:last-child,.table-responsive>.table-bordered>thead>tr>th:last-child{border-right:0}.table-responsive>.table-bordered>tbody>tr:last-child>td,.table-responsive>.table-bordered>tbody>tr:last-child>th,.table-responsive>.table-bordered>tfoot>tr:last-child>td,.table-responsive>.table-bordered>tfoot>tr:last-child>th{border-bottom:0}}fieldset{min-width:0;padding:0;margin:0;border:0}legend{display:block;width:100%;padding:0;margin-bottom:20px;font-size:21px;line-height:inherit;color:#333;border:0;border-bottom:1px solid #e5e5e5}label{display:inline-block;max-width:100%;margin-bottom:5px;font-weight:700}input[type=search]{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}input[type=checkbox],input[type=radio]{margin:4px 0 0;margin-top:1px\9;line-height:normal}input[type=file]{display:block}input[type=range]{display:block;width:100%}select[multiple],select[size]{height:auto}input[type=file]:focus,input[type=checkbox]:focus,input[type=radio]:focus{outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}output{display:block;padding-top:7px;font-size:14px;line-height:1.42857143;color:#555}.form-control{display:block;width:100%;height:34px;padding:6px 12px;font-size:14px;line-height:1.42857143;color:#555;background-color:#fff;background-image:none;border:1px solid #ccc;border-radius:4px;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075);-webkit-transition:border-color ease-in-out .15s,-webkit-box-shadow ease-in-out .15s;-o-transition:border-color ease-in-out .15s,box-shadow ease-in-out .15s;transition:border-color ease-in-out .15s,box-shadow ease-in-out .15s}.form-control:focus{border-color:#66afe9;outline:0;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(102,175,233,.6);box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(102,175,233,.6)}.form-control::-moz-placeholder{color:#999;opacity:1}.form-control:-ms-input-placeholder{color:#999}.form-control::-webkit-input-placeholder{color:#999}.form-control::-ms-expand{background-color:transparent;border:0}.form-control[disabled],.form-control[readonly],fieldset[disabled] .form-control{background-color:#eee;opacity:1}.form-control[disabled],fieldset[disabled] .form-control{cursor:not-allowed}textarea.form-control{height:auto}input[type=search]{-webkit-appearance:none}@media screen and (-webkit-min-device-pixel-ratio:0){input[type=date].form-control,input[type=time].form-control,input[type=datetime-local].form-control,input[type=month].form-control{line-height:34px}.input-group-sm input[type=date],.input-group-sm input[type=time],.input-group-sm input[type=datetime-local],.input-group-sm input[type=month],input[type=date].input-sm,input[type=time].input-sm,input[type=datetime-local].input-sm,input[type=month].input-sm{line-height:30px}.input-group-lg input[type=date],.input-group-lg input[type=time],.input-group-lg input[type=datetime-local],.input-group-lg input[type=month],input[type=date].input-lg,input[type=time].input-lg,input[type=datetime-local].input-lg,input[type=month].input-lg{line-height:46px}}.form-group{margin-bottom:15px}.checkbox,.radio{position:relative;display:block;margin-top:10px;margin-bottom:10px}.checkbox label,.radio label{min-height:20px;padding-left:20px;margin-bottom:0;font-weight:400;cursor:pointer}.checkbox input[type=checkbox],.checkbox-inline input[type=checkbox],.radio input[type=radio],.radio-inline input[type=radio]{position:absolute;margin-top:4px\9;margin-left:-20px}.checkbox+.checkbox,.radio+.radio{margin-top:-5px}.checkbox-inline,.radio-inline{position:relative;display:inline-block;padding-left:20px;margin-bottom:0;font-weight:400;vertical-align:middle;cursor:pointer}.checkbox-inline+.checkbox-inline,.radio-inline+.radio-inline{margin-top:0;margin-left:10px}fieldset[disabled] input[type=checkbox],fieldset[disabled] input[type=radio],input[type=checkbox].disabled,input[type=checkbox][disabled],input[type=radio].disabled,input[type=radio][disabled]{cursor:not-allowed}.checkbox-inline.disabled,.radio-inline.disabled,fieldset[disabled] .checkbox-inline,fieldset[disabled] .radio-inline{cursor:not-allowed}.checkbox.disabled label,.radio.disabled label,fieldset[disabled] .checkbox label,fieldset[disabled] .radio label{cursor:not-allowed}.form-control-static{min-height:34px;padding-top:7px;padding-bottom:7px;margin-bottom:0}.form-control-static.input-lg,.form-control-static.input-sm{padding-right:0;padding-left:0}.input-sm{height:30px;padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}select.input-sm{height:30px;line-height:30px}select[multiple].input-sm,textarea.input-sm{height:auto}.form-group-sm .form-control{height:30px;padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}.form-group-sm select.form-control{height:30px;line-height:30px}.form-group-sm select[multiple].form-control,.form-group-sm textarea.form-control{height:auto}.form-group-sm .form-control-static{height:30px;min-height:32px;padding:6px 10px;font-size:12px;line-height:1.5}.input-lg{height:46px;padding:10px 16px;font-size:18px;line-height:1.3333333;border-radius:6px}select.input-lg{height:46px;line-height:46px}select[multiple].input-lg,textarea.input-lg{height:auto}.form-group-lg .form-control{height:46px;padding:10px 16px;font-size:18px;line-height:1.3333333;border-radius:6px}.form-group-lg select.form-control{height:46px;line-height:46px}.form-group-lg select[multiple].form-control,.form-group-lg textarea.form-control{height:auto}.form-group-lg .form-control-static{height:46px;min-height:38px;padding:11px 16px;font-size:18px;line-height:1.3333333}.has-feedback{position:relative}.has-feedback .form-control{padding-right:42.5px}.form-control-feedback{position:absolute;top:0;right:0;z-index:2;display:block;width:34px;height:34px;line-height:34px;text-align:center;pointer-events:none}.form-group-lg .form-control+.form-control-feedback,.input-group-lg+.form-control-feedback,.input-lg+.form-control-feedback{width:46px;height:46px;line-height:46px}.form-group-sm .form-control+.form-control-feedback,.input-group-sm+.form-control-feedback,.input-sm+.form-control-feedback{width:30px;height:30px;line-height:30px}.has-success .checkbox,.has-success .checkbox-inline,.has-success .control-label,.has-success .help-block,.has-success .radio,.has-success .radio-inline,.has-success.checkbox label,.has-success.checkbox-inline label,.has-success.radio label,.has-success.radio-inline label{color:#3c763d}.has-success .form-control{border-color:#3c763d;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075)}.has-success .form-control:focus{border-color:#2b542c;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #67b168;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #67b168}.has-success .input-group-addon{color:#3c763d;background-color:#dff0d8;border-color:#3c763d}.has-success .form-control-feedback{color:#3c763d}.has-warning .checkbox,.has-warning .checkbox-inline,.has-warning .control-label,.has-warning .help-block,.has-warning .radio,.has-warning .radio-inline,.has-warning.checkbox label,.has-warning.checkbox-inline label,.has-warning.radio label,.has-warning.radio-inline label{color:#8a6d3b}.has-warning .form-control{border-color:#8a6d3b;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075)}.has-warning .form-control:focus{border-color:#66512c;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #c0a16b;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #c0a16b}.has-warning .input-group-addon{color:#8a6d3b;background-color:#fcf8e3;border-color:#8a6d3b}.has-warning .form-control-feedback{color:#8a6d3b}.has-error .checkbox,.has-error .checkbox-inline,.has-error .control-label,.has-error .help-block,.has-error .radio,.has-error .radio-inline,.has-error.checkbox label,.has-error.checkbox-inline label,.has-error.radio label,.has-error.radio-inline label{color:#a94442}.has-error .form-control{border-color:#a94442;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075)}.has-error .form-control:focus{border-color:#843534;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #ce8483;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #ce8483}.has-error .input-group-addon{color:#a94442;background-color:#f2dede;border-color:#a94442}.has-error .form-control-feedback{color:#a94442}.has-feedback label~.form-control-feedback{top:25px}.has-feedback label.sr-only~.form-control-feedback{top:0}.help-block{display:block;margin-top:5px;margin-bottom:10px;color:#737373}@media (min-width:768px){.form-inline .form-group{display:inline-block;margin-bottom:0;vertical-align:middle}.form-inline .form-control{display:inline-block;width:auto;vertical-align:middle}.form-inline .form-control-static{display:inline-block}.form-inline .input-group{display:inline-table;vertical-align:middle}.form-inline .input-group .form-control,.form-inline .input-group .input-group-addon,.form-inline .input-group .input-group-btn{width:auto}.form-inline .input-group>.form-control{width:100%}.form-inline .control-label{margin-bottom:0;vertical-align:middle}.form-inline .checkbox,.form-inline .radio{display:inline-block;margin-top:0;margin-bottom:0;vertical-align:middle}.form-inline .checkbox label,.form-inline .radio label{padding-left:0}.form-inline .checkbox input[type=checkbox],.form-inline .radio input[type=radio]{position:relative;margin-left:0}.form-inline .has-feedback .form-control-feedback{top:0}}.form-horizontal .checkbox,.form-horizontal .checkbox-inline,.form-horizontal .radio,.form-horizontal .radio-inline{padding-top:7px;margin-top:0;margin-bottom:0}.form-horizontal .checkbox,.form-horizontal .radio{min-height:27px}.form-horizontal .form-group{margin-right:-15px;margin-left:-15px}@media (min-width:768px){.form-horizontal .control-label{padding-top:7px;margin-bottom:0;text-align:right}}.form-horizontal .has-feedback .form-control-feedback{right:15px}@media (min-width:768px){.form-horizontal .form-group-lg .control-label{padding-top:11px;font-size:18px}}@media (min-width:768px){.form-horizontal .form-group-sm .control-label{padding-top:6px;font-size:12px}}.btn{display:inline-block;padding:6px 12px;margin-bottom:0;font-size:14px;font-weight:400;line-height:1.42857143;text-align:center;white-space:nowrap;vertical-align:middle;-ms-touch-action:manipulation;touch-action:manipulation;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;background-image:none;border:1px solid transparent;border-radius:4px}.btn.active.focus,.btn.active:focus,.btn.focus,.btn:active.focus,.btn:active:focus,.btn:focus{outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}.btn.focus,.btn:focus,.btn:hover{color:#333;text-decoration:none}.btn.active,.btn:active{background-image:none;outline:0;-webkit-box-shadow:inset 0 3px 5px rgba(0,0,0,.125);box-shadow:inset 0 3px 5px rgba(0,0,0,.125)}.btn.disabled,.btn[disabled],fieldset[disabled] .btn{cursor:not-allowed;filter:alpha(opacity=65);-webkit-box-shadow:none;box-shadow:none;opacity:.65}a.btn.disabled,fieldset[disabled] a.btn{pointer-events:none}.btn-default{color:#333;background-color:#fff;border-color:#ccc}.btn-default.focus,.btn-default:focus{color:#333;background-color:#e6e6e6;border-color:#8c8c8c}.btn-default:hover{color:#333;background-color:#e6e6e6;border-color:#adadad}.btn-default.active,.btn-default:active,.open>.dropdown-toggle.btn-default{color:#333;background-color:#e6e6e6;border-color:#adadad}.btn-default.active.focus,.btn-default.active:focus,.btn-default.active:hover,.btn-default:active.focus,.btn-default:active:focus,.btn-default:active:hover,.open>.dropdown-toggle.btn-default.focus,.open>.dropdown-toggle.btn-default:focus,.open>.dropdown-toggle.btn-default:hover{color:#333;background-color:#d4d4d4;border-color:#8c8c8c}.btn-default.active,.btn-default:active,.open>.dropdown-toggle.btn-default{background-image:none}.btn-default.disabled.focus,.btn-default.disabled:focus,.btn-default.disabled:hover,.btn-default[disabled].focus,.btn-default[disabled]:focus,.btn-default[disabled]:hover,fieldset[disabled] .btn-default.focus,fieldset[disabled] .btn-default:focus,fieldset[disabled] .btn-default:hover{background-color:#fff;border-color:#ccc}.btn-default .badge{color:#fff;background-color:#333}.btn-primary{color:#fff;background-color:#337ab7;border-color:#2e6da4}.btn-primary.focus,.btn-primary:focus{color:#fff;background-color:#286090;border-color:#122b40}.btn-primary:hover{color:#fff;background-color:#286090;border-color:#204d74}.btn-primary.active,.btn-primary:active,.open>.dropdown-toggle.btn-primary{color:#fff;background-color:#286090;border-color:#204d74}.btn-primary.active.focus,.btn-primary.active:focus,.btn-primary.active:hover,.btn-primary:active.focus,.btn-primary:active:focus,.btn-primary:active:hover,.open>.dropdown-toggle.btn-primary.focus,.open>.dropdown-toggle.btn-primary:focus,.open>.dropdown-toggle.btn-primary:hover{color:#fff;background-color:#204d74;border-color:#122b40}.btn-primary.active,.btn-primary:active,.open>.dropdown-toggle.btn-primary{background-image:none}.btn-primary.disabled.focus,.btn-primary.disabled:focus,.btn-primary.disabled:hover,.btn-primary[disabled].focus,.btn-primary[disabled]:focus,.btn-primary[disabled]:hover,fieldset[disabled] .btn-primary.focus,fieldset[disabled] .btn-primary:focus,fieldset[disabled] .btn-primary:hover{background-color:#337ab7;border-color:#2e6da4}.btn-primary .badge{color:#337ab7;background-color:#fff}.btn-success{color:#fff;background-color:#5cb85c;border-color:#4cae4c}.btn-success.focus,.btn-success:focus{color:#fff;background-color:#449d44;border-color:#255625}.btn-success:hover{color:#fff;background-color:#449d44;border-color:#398439}.btn-success.active,.btn-success:active,.open>.dropdown-toggle.btn-success{color:#fff;background-color:#449d44;border-color:#398439}.btn-success.active.focus,.btn-success.active:focus,.btn-success.active:hover,.btn-success:active.focus,.btn-success:active:focus,.btn-success:active:hover,.open>.dropdown-toggle.btn-success.focus,.open>.dropdown-toggle.btn-success:focus,.open>.dropdown-toggle.btn-success:hover{color:#fff;background-color:#398439;border-color:#255625}.btn-success.active,.btn-success:active,.open>.dropdown-toggle.btn-success{background-image:none}.btn-success.disabled.focus,.btn-success.disabled:focus,.btn-success.disabled:hover,.btn-success[disabled].focus,.btn-success[disabled]:focus,.btn-success[disabled]:hover,fieldset[disabled] .btn-success.focus,fieldset[disabled] .btn-success:focus,fieldset[disabled] .btn-success:hover{background-color:#5cb85c;border-color:#4cae4c}.btn-success .badge{color:#5cb85c;background-color:#fff}.btn-info{color:#fff;background-color:#5bc0de;border-color:#46b8da}.btn-info.focus,.btn-info:focus{color:#fff;background-color:#31b0d5;border-color:#1b6d85}.btn-info:hover{color:#fff;background-color:#31b0d5;border-color:#269abc}.btn-info.active,.btn-info:active,.open>.dropdown-toggle.btn-info{color:#fff;background-color:#31b0d5;border-color:#269abc}.btn-info.active.focus,.btn-info.active:focus,.btn-info.active:hover,.btn-info:active.focus,.btn-info:active:focus,.btn-info:active:hover,.open>.dropdown-toggle.btn-info.focus,.open>.dropdown-toggle.btn-info:focus,.open>.dropdown-toggle.btn-info:hover{color:#fff;background-color:#269abc;border-color:#1b6d85}.btn-info.active,.btn-info:active,.open>.dropdown-toggle.btn-info{background-image:none}.btn-info.disabled.focus,.btn-info.disabled:focus,.btn-info.disabled:hover,.btn-info[disabled].focus,.btn-info[disabled]:focus,.btn-info[disabled]:hover,fieldset[disabled] .btn-info.focus,fieldset[disabled] .btn-info:focus,fieldset[disabled] .btn-info:hover{background-color:#5bc0de;border-color:#46b8da}.btn-info .badge{color:#5bc0de;background-color:#fff}.btn-warning{color:#fff;background-color:#f0ad4e;border-color:#eea236}.btn-warning.focus,.btn-warning:focus{color:#fff;background-color:#ec971f;border-color:#985f0d}.btn-warning:hover{color:#fff;background-color:#ec971f;border-color:#d58512}.btn-warning.active,.btn-warning:active,.open>.dropdown-toggle.btn-warning{color:#fff;background-color:#ec971f;border-color:#d58512}.btn-warning.active.focus,.btn-warning.active:focus,.btn-warning.active:hover,.btn-warning:active.focus,.btn-warning:active:focus,.btn-warning:active:hover,.open>.dropdown-toggle.btn-warning.focus,.open>.dropdown-toggle.btn-warning:focus,.open>.dropdown-toggle.btn-warning:hover{color:#fff;background-color:#d58512;border-color:#985f0d}.btn-warning.active,.btn-warning:active,.open>.dropdown-toggle.btn-warning{background-image:none}.btn-warning.disabled.focus,.btn-warning.disabled:focus,.btn-warning.disabled:hover,.btn-warning[disabled].focus,.btn-warning[disabled]:focus,.btn-warning[disabled]:hover,fieldset[disabled] .btn-warning.focus,fieldset[disabled] .btn-warning:focus,fieldset[disabled] .btn-warning:hover{background-color:#f0ad4e;border-color:#eea236}.btn-warning .badge{color:#f0ad4e;background-color:#fff}.btn-danger{color:#fff;background-color:#d9534f;border-color:#d43f3a}.btn-danger.focus,.btn-danger:focus{color:#fff;background-color:#c9302c;border-color:#761c19}.btn-danger:hover{color:#fff;background-color:#c9302c;border-color:#ac2925}.btn-danger.active,.btn-danger:active,.open>.dropdown-toggle.btn-danger{color:#fff;background-color:#c9302c;border-color:#ac2925}.btn-danger.active.focus,.btn-danger.active:focus,.btn-danger.active:hover,.btn-danger:active.focus,.btn-danger:active:focus,.btn-danger:active:hover,.open>.dropdown-toggle.btn-danger.focus,.open>.dropdown-toggle.btn-danger:focus,.open>.dropdown-toggle.btn-danger:hover{color:#fff;background-color:#ac2925;border-color:#761c19}.btn-danger.active,.btn-danger:active,.open>.dropdown-toggle.btn-danger{background-image:none}.btn-danger.disabled.focus,.btn-danger.disabled:focus,.btn-danger.disabled:hover,.btn-danger[disabled].focus,.btn-danger[disabled]:focus,.btn-danger[disabled]:hover,fieldset[disabled] .btn-danger.focus,fieldset[disabled] .btn-danger:focus,fieldset[disabled] .btn-danger:hover{background-color:#d9534f;border-color:#d43f3a}.btn-danger .badge{color:#d9534f;background-color:#fff}.btn-link{font-weight:400;color:#337ab7;border-radius:0}.btn-link,.btn-link.active,.btn-link:active,.btn-link[disabled],fieldset[disabled] .btn-link{background-color:transparent;-webkit-box-shadow:none;box-shadow:none}.btn-link,.btn-link:active,.btn-link:focus,.btn-link:hover{border-color:transparent}.btn-link:focus,.btn-link:hover{color:#23527c;text-decoration:underline;background-color:transparent}.btn-link[disabled]:focus,.btn-link[disabled]:hover,fieldset[disabled] .btn-link:focus,fieldset[disabled] .btn-link:hover{color:#777;text-decoration:none}.btn-group-lg>.btn,.btn-lg{padding:10px 16px;font-size:18px;line-height:1.3333333;border-radius:6px}.btn-group-sm>.btn,.btn-sm{padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}.btn-group-xs>.btn,.btn-xs{padding:1px 5px;font-size:12px;line-height:1.5;border-radius:3px}.btn-block{display:block;width:100%}.btn-block+.btn-block{margin-top:5px}input[type=button].btn-block,input[type=reset].btn-block,input[type=submit].btn-block{width:100%}.fade{opacity:0;-webkit-transition:opacity .15s linear;-o-transition:opacity .15s linear;transition:opacity .15s linear}.fade.in{opacity:1}.collapse{display:none}.collapse.in{display:block}tr.collapse.in{display:table-row}tbody.collapse.in{display:table-row-group}.collapsing{position:relative;height:0;overflow:hidden;-webkit-transition-timing-function:ease;-o-transition-timing-function:ease;transition-timing-function:ease;-webkit-transition-duration:.35s;-o-transition-duration:.35s;transition-duration:.35s;-webkit-transition-property:height,visibility;-o-transition-property:height,visibility;transition-property:height,visibility}.caret{display:inline-block;width:0;height:0;margin-left:2px;vertical-align:middle;border-top:4px dashed;border-top:4px solid\9;border-right:4px solid transparent;border-left:4px solid transparent}.dropdown,.dropup{position:relative}.dropdown-toggle:focus{outline:0}.dropdown-menu{position:absolute;top:100%;left:0;z-index:1000;display:none;float:left;min-width:160px;padding:5px 0;margin:2px 0 0;font-size:14px;text-align:left;list-style:none;background-color:#fff;-webkit-background-clip:padding-box;background-clip:padding-box;border:1px solid #ccc;border:1px solid rgba(0,0,0,.15);border-radius:4px;-webkit-box-shadow:0 6px 12px rgba(0,0,0,.175);box-shadow:0 6px 12px rgba(0,0,0,.175)}.dropdown-menu.pull-right{right:0;left:auto}.dropdown-menu .divider{height:1px;margin:9px 0;overflow:hidden;background-color:#e5e5e5}.dropdown-menu>li>a{display:block;padding:3px 20px;clear:both;font-weight:400;line-height:1.42857143;color:#333;white-space:nowrap}.dropdown-menu>li>a:focus,.dropdown-menu>li>a:hover{color:#262626;text-decoration:none;background-color:#f5f5f5}.dropdown-menu>.active>a,.dropdown-menu>.active>a:focus,.dropdown-menu>.active>a:hover{color:#fff;text-decoration:none;background-color:#337ab7;outline:0}.dropdown-menu>.disabled>a,.dropdown-menu>.disabled>a:focus,.dropdown-menu>.disabled>a:hover{color:#777}.dropdown-menu>.disabled>a:focus,.dropdown-menu>.disabled>a:hover{text-decoration:none;cursor:not-allowed;background-color:transparent;background-image:none;filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.open>.dropdown-menu{display:block}.open>a{outline:0}.dropdown-menu-right{right:0;left:auto}.dropdown-menu-left{right:auto;left:0}.dropdown-header{display:block;padding:3px 20px;font-size:12px;line-height:1.42857143;color:#777;white-space:nowrap}.dropdown-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:990}.pull-right>.dropdown-menu{right:0;left:auto}.dropup .caret,.navbar-fixed-bottom .dropdown .caret{content:"";border-top:0;border-bottom:4px dashed;border-bottom:4px solid\9}.dropup .dropdown-menu,.navbar-fixed-bottom .dropdown .dropdown-menu{top:auto;bottom:100%;margin-bottom:2px}@media (min-width:768px){.navbar-right .dropdown-menu{right:0;left:auto}.navbar-right .dropdown-menu-left{right:auto;left:0}}.btn-group,.btn-group-vertical{position:relative;display:inline-block;vertical-align:middle}.btn-group-vertical>.btn,.btn-group>.btn{position:relative;float:left}.btn-group-vertical>.btn.active,.btn-group-vertical>.btn:active,.btn-group-vertical>.btn:focus,.btn-group-vertical>.btn:hover,.btn-group>.btn.active,.btn-group>.btn:active,.btn-group>.btn:focus,.btn-group>.btn:hover{z-index:2}.btn-group .btn+.btn,.btn-group .btn+.btn-group,.btn-group .btn-group+.btn,.btn-group .btn-group+.btn-group{margin-left:-1px}.btn-toolbar{margin-left:-5px}.btn-toolbar .btn,.btn-toolbar .btn-group,.btn-toolbar .input-group{float:left}.btn-toolbar>.btn,.btn-toolbar>.btn-group,.btn-toolbar>.input-group{margin-left:5px}.btn-group>.btn:not(:first-child):not(:last-child):not(.dropdown-toggle){border-radius:0}.btn-group>.btn:first-child{margin-left:0}.btn-group>.btn:first-child:not(:last-child):not(.dropdown-toggle){border-top-right-radius:0;border-bottom-right-radius:0}.btn-group>.btn:last-child:not(:first-child),.btn-group>.dropdown-toggle:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}.btn-group>.btn-group{float:left}.btn-group>.btn-group:not(:first-child):not(:last-child)>.btn{border-radius:0}.btn-group>.btn-group:first-child:not(:last-child)>.btn:last-child,.btn-group>.btn-group:first-child:not(:last-child)>.dropdown-toggle{border-top-right-radius:0;border-bottom-right-radius:0}.btn-group>.btn-group:last-child:not(:first-child)>.btn:first-child{border-top-left-radius:0;border-bottom-left-radius:0}.btn-group .dropdown-toggle:active,.btn-group.open .dropdown-toggle{outline:0}.btn-group>.btn+.dropdown-toggle{padding-right:8px;padding-left:8px}.btn-group>.btn-lg+.dropdown-toggle{padding-right:12px;padding-left:12px}.btn-group.open .dropdown-toggle{-webkit-box-shadow:inset 0 3px 5px rgba(0,0,0,.125);box-shadow:inset 0 3px 5px rgba(0,0,0,.125)}.btn-group.open .dropdown-toggle.btn-link{-webkit-box-shadow:none;box-shadow:none}.btn .caret{margin-left:0}.btn-lg .caret{border-width:5px 5px 0;border-bottom-width:0}.dropup .btn-lg .caret{border-width:0 5px 5px}.btn-group-vertical>.btn,.btn-group-vertical>.btn-group,.btn-group-vertical>.btn-group>.btn{display:block;float:none;width:100%;max-width:100%}.btn-group-vertical>.btn-group>.btn{float:none}.btn-group-vertical>.btn+.btn,.btn-group-vertical>.btn+.btn-group,.btn-group-vertical>.btn-group+.btn,.btn-group-vertical>.btn-group+.btn-group{margin-top:-1px;margin-left:0}.btn-group-vertical>.btn:not(:first-child):not(:last-child){border-radius:0}.btn-group-vertical>.btn:first-child:not(:last-child){border-top-left-radius:4px;border-top-right-radius:4px;border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn:last-child:not(:first-child){border-top-left-radius:0;border-top-right-radius:0;border-bottom-right-radius:4px;border-bottom-left-radius:4px}.btn-group-vertical>.btn-group:not(:first-child):not(:last-child)>.btn{border-radius:0}.btn-group-vertical>.btn-group:first-child:not(:last-child)>.btn:last-child,.btn-group-vertical>.btn-group:first-child:not(:last-child)>.dropdown-toggle{border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn-group:last-child:not(:first-child)>.btn:first-child{border-top-left-radius:0;border-top-right-radius:0}.btn-group-justified{display:table;width:100%;table-layout:fixed;border-collapse:separate}.btn-group-justified>.btn,.btn-group-justified>.btn-group{display:table-cell;float:none;width:1%}.btn-group-justified>.btn-group .btn{width:100%}.btn-group-justified>.btn-group .dropdown-menu{left:auto}[data-toggle=buttons]>.btn input[type=checkbox],[data-toggle=buttons]>.btn input[type=radio],[data-toggle=buttons]>.btn-group>.btn input[type=checkbox],[data-toggle=buttons]>.btn-group>.btn input[type=radio]{position:absolute;clip:rect(0,0,0,0);pointer-events:none}.input-group{position:relative;display:table;border-collapse:separate}.input-group[class*=col-]{float:none;padding-right:0;padding-left:0}.input-group .form-control{position:relative;z-index:2;float:left;width:100%;margin-bottom:0}.input-group .form-control:focus{z-index:3}.input-group-lg>.form-control,.input-group-lg>.input-group-addon,.input-group-lg>.input-group-btn>.btn{height:46px;padding:10px 16px;font-size:18px;line-height:1.3333333;border-radius:6px}select.input-group-lg>.form-control,select.input-group-lg>.input-group-addon,select.input-group-lg>.input-group-btn>.btn{height:46px;line-height:46px}select[multiple].input-group-lg>.form-control,select[multiple].input-group-lg>.input-group-addon,select[multiple].input-group-lg>.input-group-btn>.btn,textarea.input-group-lg>.form-control,textarea.input-group-lg>.input-group-addon,textarea.input-group-lg>.input-group-btn>.btn{height:auto}.input-group-sm>.form-control,.input-group-sm>.input-group-addon,.input-group-sm>.input-group-btn>.btn{height:30px;padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}select.input-group-sm>.form-control,select.input-group-sm>.input-group-addon,select.input-group-sm>.input-group-btn>.btn{height:30px;line-height:30px}select[multiple].input-group-sm>.form-control,select[multiple].input-group-sm>.input-group-addon,select[multiple].input-group-sm>.input-group-btn>.btn,textarea.input-group-sm>.form-control,textarea.input-group-sm>.input-group-addon,textarea.input-group-sm>.input-group-btn>.btn{height:auto}.input-group .form-control,.input-group-addon,.input-group-btn{display:table-cell}.input-group .form-control:not(:first-child):not(:last-child),.input-group-addon:not(:first-child):not(:last-child),.input-group-btn:not(:first-child):not(:last-child){border-radius:0}.input-group-addon,.input-group-btn{width:1%;white-space:nowrap;vertical-align:middle}.input-group-addon{padding:6px 12px;font-size:14px;font-weight:400;line-height:1;color:#555;text-align:center;background-color:#eee;border:1px solid #ccc;border-radius:4px}.input-group-addon.input-sm{padding:5px 10px;font-size:12px;border-radius:3px}.input-group-addon.input-lg{padding:10px 16px;font-size:18px;border-radius:6px}.input-group-addon input[type=checkbox],.input-group-addon input[type=radio]{margin-top:0}.input-group .form-control:first-child,.input-group-addon:first-child,.input-group-btn:first-child>.btn,.input-group-btn:first-child>.btn-group>.btn,.input-group-btn:first-child>.dropdown-toggle,.input-group-btn:last-child>.btn-group:not(:last-child)>.btn,.input-group-btn:last-child>.btn:not(:last-child):not(.dropdown-toggle){border-top-right-radius:0;border-bottom-right-radius:0}.input-group-addon:first-child{border-right:0}.input-group .form-control:last-child,.input-group-addon:last-child,.input-group-btn:first-child>.btn-group:not(:first-child)>.btn,.input-group-btn:first-child>.btn:not(:first-child),.input-group-btn:last-child>.btn,.input-group-btn:last-child>.btn-group>.btn,.input-group-btn:last-child>.dropdown-toggle{border-top-left-radius:0;border-bottom-left-radius:0}.input-group-addon:last-child{border-left:0}.input-group-btn{position:relative;font-size:0;white-space:nowrap}.input-group-btn>.btn{position:relative}.input-group-btn>.btn+.btn{margin-left:-1px}.input-group-btn>.btn:active,.input-group-btn>.btn:focus,.input-group-btn>.btn:hover{z-index:2}.input-group-btn:first-child>.btn,.input-group-btn:first-child>.btn-group{margin-right:-1px}.input-group-btn:last-child>.btn,.input-group-btn:last-child>.btn-group{z-index:2;margin-left:-1px}.nav{padding-left:0;margin-bottom:0;list-style:none}.nav>li{position:relative;display:block}.nav>li>a{position:relative;display:block;padding:10px 15px}.nav>li>a:focus,.nav>li>a:hover{text-decoration:none;background-color:#eee}.nav>li.disabled>a{color:#777}.nav>li.disabled>a:focus,.nav>li.disabled>a:hover{color:#777;text-decoration:none;cursor:not-allowed;background-color:transparent}.nav .open>a,.nav .open>a:focus,.nav .open>a:hover{background-color:#eee;border-color:#337ab7}.nav .nav-divider{height:1px;margin:9px 0;overflow:hidden;background-color:#e5e5e5}.nav>li>a>img{max-width:none}.nav-tabs{border-bottom:1px solid #ddd}.nav-tabs>li{float:left;margin-bottom:-1px}.nav-tabs>li>a{margin-right:2px;line-height:1.42857143;border:1px solid transparent;border-radius:4px 4px 0 0}.nav-tabs>li>a:hover{border-color:#eee #eee #ddd}.nav-tabs>li.active>a,.nav-tabs>li.active>a:focus,.nav-tabs>li.active>a:hover{color:#555;cursor:default;background-color:#fff;border:1px solid #ddd;border-bottom-color:transparent}.nav-tabs.nav-justified{width:100%;border-bottom:0}.nav-tabs.nav-justified>li{float:none}.nav-tabs.nav-justified>li>a{margin-bottom:5px;text-align:center}.nav-tabs.nav-justified>.dropdown .dropdown-menu{top:auto;left:auto}@media (min-width:768px){.nav-tabs.nav-justified>li{display:table-cell;width:1%}.nav-tabs.nav-justified>li>a{margin-bottom:0}}.nav-tabs.nav-justified>li>a{margin-right:0;border-radius:4px}.nav-tabs.nav-justified>.active>a,.nav-tabs.nav-justified>.active>a:focus,.nav-tabs.nav-justified>.active>a:hover{border:1px solid #ddd}@media (min-width:768px){.nav-tabs.nav-justified>li>a{border-bottom:1px solid #ddd;border-radius:4px 4px 0 0}.nav-tabs.nav-justified>.active>a,.nav-tabs.nav-justified>.active>a:focus,.nav-tabs.nav-justified>.active>a:hover{border-bottom-color:#fff}}.nav-pills>li{float:left}.nav-pills>li>a{border-radius:4px}.nav-pills>li+li{margin-left:2px}.nav-pills>li.active>a,.nav-pills>li.active>a:focus,.nav-pills>li.active>a:hover{color:#fff;background-color:#337ab7}.nav-stacked>li{float:none}.nav-stacked>li+li{margin-top:2px;margin-left:0}.nav-justified{width:100%}.nav-justified>li{float:none}.nav-justified>li>a{margin-bottom:5px;text-align:center}.nav-justified>.dropdown .dropdown-menu{top:auto;left:auto}@media (min-width:768px){.nav-justified>li{display:table-cell;width:1%}.nav-justified>li>a{margin-bottom:0}}.nav-tabs-justified{border-bottom:0}.nav-tabs-justified>li>a{margin-right:0;border-radius:4px}.nav-tabs-justified>.active>a,.nav-tabs-justified>.active>a:focus,.nav-tabs-justified>.active>a:hover{border:1px solid #ddd}@media (min-width:768px){.nav-tabs-justified>li>a{border-bottom:1px solid #ddd;border-radius:4px 4px 0 0}.nav-tabs-justified>.active>a,.nav-tabs-justified>.active>a:focus,.nav-tabs-justified>.active>a:hover{border-bottom-color:#fff}}.tab-content>.tab-pane{display:none}.tab-content>.active{display:block}.nav-tabs .dropdown-menu{margin-top:-1px;border-top-left-radius:0;border-top-right-radius:0}.navbar{position:relative;min-height:50px;margin-bottom:20px;border:1px solid transparent}@media (min-width:768px){.navbar{border-radius:4px}}@media (min-width:768px){.navbar-header{float:left}}.navbar-collapse{padding-right:15px;padding-left:15px;overflow-x:visible;-webkit-overflow-scrolling:touch;border-top:1px solid transparent;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,.1);box-shadow:inset 0 1px 0 rgba(255,255,255,.1)}.navbar-collapse.in{overflow-y:auto}@media (min-width:768px){.navbar-collapse{width:auto;border-top:0;-webkit-box-shadow:none;box-shadow:none}.navbar-collapse.collapse{display:block!important;height:auto!important;padding-bottom:0;overflow:visible!important}.navbar-collapse.in{overflow-y:visible}.navbar-fixed-bottom .navbar-collapse,.navbar-fixed-top .navbar-collapse,.navbar-static-top .navbar-collapse{padding-right:0;padding-left:0}}.navbar-fixed-bottom .navbar-collapse,.navbar-fixed-top .navbar-collapse{max-height:340px}@media (max-device-width:480px) and (orientation:landscape){.navbar-fixed-bottom .navbar-collapse,.navbar-fixed-top .navbar-collapse{max-height:200px}}.container-fluid>.navbar-collapse,.container-fluid>.navbar-header,.container>.navbar-collapse,.container>.navbar-header{margin-right:-15px;margin-left:-15px}@media (min-width:768px){.container-fluid>.navbar-collapse,.container-fluid>.navbar-header,.container>.navbar-collapse,.container>.navbar-header{margin-right:0;margin-left:0}}.navbar-static-top{z-index:1000;border-width:0 0 1px}@media (min-width:768px){.navbar-static-top{border-radius:0}}.navbar-fixed-bottom,.navbar-fixed-top{position:fixed;right:0;left:0;z-index:1030}@media (min-width:768px){.navbar-fixed-bottom,.navbar-fixed-top{border-radius:0}}.navbar-fixed-top{top:0;border-width:0 0 1px}.navbar-fixed-bottom{bottom:0;margin-bottom:0;border-width:1px 0 0}.navbar-brand{float:left;height:50px;padding:15px 15px;font-size:18px;line-height:20px}.navbar-brand:focus,.navbar-brand:hover{text-decoration:none}.navbar-brand>img{display:block}@media (min-width:768px){.navbar>.container .navbar-brand,.navbar>.container-fluid .navbar-brand{margin-left:-15px}}.navbar-toggle{position:relative;float:right;padding:9px 10px;margin-top:8px;margin-right:15px;margin-bottom:8px;background-color:transparent;background-image:none;border:1px solid transparent;border-radius:4px}.navbar-toggle:focus{outline:0}.navbar-toggle .icon-bar{display:block;width:22px;height:2px;border-radius:1px}.navbar-toggle .icon-bar+.icon-bar{margin-top:4px}@media (min-width:768px){.navbar-toggle{display:none}}.navbar-nav{margin:7.5px -15px}.navbar-nav>li>a{padding-top:10px;padding-bottom:10px;line-height:20px}@media (max-width:767px){.navbar-nav .open .dropdown-menu{position:static;float:none;width:auto;margin-top:0;background-color:transparent;border:0;-webkit-box-shadow:none;box-shadow:none}.navbar-nav .open .dropdown-menu .dropdown-header,.navbar-nav .open .dropdown-menu>li>a{padding:5px 15px 5px 25px}.navbar-nav .open .dropdown-menu>li>a{line-height:20px}.navbar-nav .open .dropdown-menu>li>a:focus,.navbar-nav .open .dropdown-menu>li>a:hover{background-image:none}}@media (min-width:768px){.navbar-nav{float:left;margin:0}.navbar-nav>li{float:left}.navbar-nav>li>a{padding-top:15px;padding-bottom:15px}}.navbar-form{padding:10px 15px;margin-top:8px;margin-right:-15px;margin-bottom:8px;margin-left:-15px;border-top:1px solid transparent;border-bottom:1px solid transparent;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,.1),0 1px 0 rgba(255,255,255,.1);box-shadow:inset 0 1px 0 rgba(255,255,255,.1),0 1px 0 rgba(255,255,255,.1)}@media (min-width:768px){.navbar-form .form-group{display:inline-block;margin-bottom:0;vertical-align:middle}.navbar-form .form-control{display:inline-block;width:auto;vertical-align:middle}.navbar-form .form-control-static{display:inline-block}.navbar-form .input-group{display:inline-table;vertical-align:middle}.navbar-form .input-group .form-control,.navbar-form .input-group .input-group-addon,.navbar-form .input-group .input-group-btn{width:auto}.navbar-form .input-group>.form-control{width:100%}.navbar-form .control-label{margin-bottom:0;vertical-align:middle}.navbar-form .checkbox,.navbar-form .radio{display:inline-block;margin-top:0;margin-bottom:0;vertical-align:middle}.navbar-form .checkbox label,.navbar-form .radio label{padding-left:0}.navbar-form .checkbox input[type=checkbox],.navbar-form .radio input[type=radio]{position:relative;margin-left:0}.navbar-form .has-feedback .form-control-feedback{top:0}}@media (max-width:767px){.navbar-form .form-group{margin-bottom:5px}.navbar-form .form-group:last-child{margin-bottom:0}}@media (min-width:768px){.navbar-form{width:auto;padding-top:0;padding-bottom:0;margin-right:0;margin-left:0;border:0;-webkit-box-shadow:none;box-shadow:none}}.navbar-nav>li>.dropdown-menu{margin-top:0;border-top-left-radius:0;border-top-right-radius:0}.navbar-fixed-bottom .navbar-nav>li>.dropdown-menu{margin-bottom:0;border-top-left-radius:4px;border-top-right-radius:4px;border-bottom-right-radius:0;border-bottom-left-radius:0}.navbar-btn{margin-top:8px;margin-bottom:8px}.navbar-btn.btn-sm{margin-top:10px;margin-bottom:10px}.navbar-btn.btn-xs{margin-top:14px;margin-bottom:14px}.navbar-text{margin-top:15px;margin-bottom:15px}@media (min-width:768px){.navbar-text{float:left;margin-right:15px;margin-left:15px}}@media (min-width:768px){.navbar-left{float:left!important}.navbar-right{float:right!important;margin-right:-15px}.navbar-right~.navbar-right{margin-right:0}}.navbar-default{background-color:#f8f8f8;border-color:#e7e7e7}.navbar-default .navbar-brand{color:#777}.navbar-default .navbar-brand:focus,.navbar-default .navbar-brand:hover{color:#5e5e5e;background-color:transparent}.navbar-default .navbar-text{color:#777}.navbar-default .navbar-nav>li>a{color:#777}.navbar-default .navbar-nav>li>a:focus,.navbar-default .navbar-nav>li>a:hover{color:#333;background-color:transparent}.navbar-default .navbar-nav>.active>a,.navbar-default .navbar-nav>.active>a:focus,.navbar-default .navbar-nav>.active>a:hover{color:#555;background-color:#e7e7e7}.navbar-default .navbar-nav>.disabled>a,.navbar-default .navbar-nav>.disabled>a:focus,.navbar-default .navbar-nav>.disabled>a:hover{color:#ccc;background-color:transparent}.navbar-default .navbar-toggle{border-color:#ddd}.navbar-default .navbar-toggle:focus,.navbar-default .navbar-toggle:hover{background-color:#ddd}.navbar-default .navbar-toggle .icon-bar{background-color:#888}.navbar-default .navbar-collapse,.navbar-default .navbar-form{border-color:#e7e7e7}.navbar-default .navbar-nav>.open>a,.navbar-default .navbar-nav>.open>a:focus,.navbar-default .navbar-nav>.open>a:hover{color:#555;background-color:#e7e7e7}@media (max-width:767px){.navbar-default .navbar-nav .open .dropdown-menu>li>a{color:#777}.navbar-default .navbar-nav .open .dropdown-menu>li>a:focus,.navbar-default .navbar-nav .open .dropdown-menu>li>a:hover{color:#333;background-color:transparent}.navbar-default .navbar-nav .open .dropdown-menu>.active>a,.navbar-default .navbar-nav .open .dropdown-menu>.active>a:focus,.navbar-default .navbar-nav .open .dropdown-menu>.active>a:hover{color:#555;background-color:#e7e7e7}.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a,.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a:focus,.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a:hover{color:#ccc;background-color:transparent}}.navbar-default .navbar-link{color:#777}.navbar-default .navbar-link:hover{color:#333}.navbar-default .btn-link{color:#777}.navbar-default .btn-link:focus,.navbar-default .btn-link:hover{color:#333}.navbar-default .btn-link[disabled]:focus,.navbar-default .btn-link[disabled]:hover,fieldset[disabled] .navbar-default .btn-link:focus,fieldset[disabled] .navbar-default .btn-link:hover{color:#ccc}.navbar-inverse{background-color:#222;border-color:#080808}.navbar-inverse .navbar-brand{color:#9d9d9d}.navbar-inverse .navbar-brand:focus,.navbar-inverse .navbar-brand:hover{color:#fff;background-color:transparent}.navbar-inverse .navbar-text{color:#9d9d9d}.navbar-inverse .navbar-nav>li>a{color:#9d9d9d}.navbar-inverse .navbar-nav>li>a:focus,.navbar-inverse .navbar-nav>li>a:hover{color:#fff;background-color:transparent}.navbar-inverse .navbar-nav>.active>a,.navbar-inverse .navbar-nav>.active>a:focus,.navbar-inverse .navbar-nav>.active>a:hover{color:#fff;background-color:#080808}.navbar-inverse .navbar-nav>.disabled>a,.navbar-inverse .navbar-nav>.disabled>a:focus,.navbar-inverse .navbar-nav>.disabled>a:hover{color:#444;background-color:transparent}.navbar-inverse .navbar-toggle{border-color:#333}.navbar-inverse .navbar-toggle:focus,.navbar-inverse .navbar-toggle:hover{background-color:#333}.navbar-inverse .navbar-toggle .icon-bar{background-color:#fff}.navbar-inverse .navbar-collapse,.navbar-inverse .navbar-form{border-color:#101010}.navbar-inverse .navbar-nav>.open>a,.navbar-inverse .navbar-nav>.open>a:focus,.navbar-inverse .navbar-nav>.open>a:hover{color:#fff;background-color:#080808}@media (max-width:767px){.navbar-inverse .navbar-nav .open .dropdown-menu>.dropdown-header{border-color:#080808}.navbar-inverse .navbar-nav .open .dropdown-menu .divider{background-color:#080808}.navbar-inverse .navbar-nav .open .dropdown-menu>li>a{color:#9d9d9d}.navbar-inverse .navbar-nav .open .dropdown-menu>li>a:focus,.navbar-inverse .navbar-nav .open .dropdown-menu>li>a:hover{color:#fff;background-color:transparent}.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a,.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a:focus,.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a:hover{color:#fff;background-color:#080808}.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a,.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a:focus,.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a:hover{color:#444;background-color:transparent}}.navbar-inverse .navbar-link{color:#9d9d9d}.navbar-inverse .navbar-link:hover{color:#fff}.navbar-inverse .btn-link{color:#9d9d9d}.navbar-inverse .btn-link:focus,.navbar-inverse .btn-link:hover{color:#fff}.navbar-inverse .btn-link[disabled]:focus,.navbar-inverse .btn-link[disabled]:hover,fieldset[disabled] .navbar-inverse .btn-link:focus,fieldset[disabled] .navbar-inverse .btn-link:hover{color:#444}.breadcrumb{padding:8px 15px;margin-bottom:20px;list-style:none;background-color:#f5f5f5;border-radius:4px}.breadcrumb>li{display:inline-block}.breadcrumb>li+li:before{padding:0 5px;color:#ccc;content:"/\00a0"}.breadcrumb>.active{color:#777}.pagination{display:inline-block;padding-left:0;margin:20px 0;border-radius:4px}.pagination>li{display:inline}.pagination>li>a,.pagination>li>span{position:relative;float:left;padding:6px 12px;margin-left:-1px;line-height:1.42857143;color:#337ab7;text-decoration:none;background-color:#fff;border:1px solid #ddd}.pagination>li:first-child>a,.pagination>li:first-child>span{margin-left:0;border-top-left-radius:4px;border-bottom-left-radius:4px}.pagination>li:last-child>a,.pagination>li:last-child>span{border-top-right-radius:4px;border-bottom-right-radius:4px}.pagination>li>a:focus,.pagination>li>a:hover,.pagination>li>span:focus,.pagination>li>span:hover{z-index:2;color:#23527c;background-color:#eee;border-color:#ddd}.pagination>.active>a,.pagination>.active>a:focus,.pagination>.active>a:hover,.pagination>.active>span,.pagination>.active>span:focus,.pagination>.active>span:hover{z-index:3;color:#fff;cursor:default;background-color:#337ab7;border-color:#337ab7}.pagination>.disabled>a,.pagination>.disabled>a:focus,.pagination>.disabled>a:hover,.pagination>.disabled>span,.pagination>.disabled>span:focus,.pagination>.disabled>span:hover{color:#777;cursor:not-allowed;background-color:#fff;border-color:#ddd}.pagination-lg>li>a,.pagination-lg>li>span{padding:10px 16px;font-size:18px;line-height:1.3333333}.pagination-lg>li:first-child>a,.pagination-lg>li:first-child>span{border-top-left-radius:6px;border-bottom-left-radius:6px}.pagination-lg>li:last-child>a,.pagination-lg>li:last-child>span{border-top-right-radius:6px;border-bottom-right-radius:6px}.pagination-sm>li>a,.pagination-sm>li>span{padding:5px 10px;font-size:12px;line-height:1.5}.pagination-sm>li:first-child>a,.pagination-sm>li:first-child>span{border-top-left-radius:3px;border-bottom-left-radius:3px}.pagination-sm>li:last-child>a,.pagination-sm>li:last-child>span{border-top-right-radius:3px;border-bottom-right-radius:3px}.pager{padding-left:0;margin:20px 0;text-align:center;list-style:none}.pager li{display:inline}.pager li>a,.pager li>span{display:inline-block;padding:5px 14px;background-color:#fff;border:1px solid #ddd;border-radius:15px}.pager li>a:focus,.pager li>a:hover{text-decoration:none;background-color:#eee}.pager .next>a,.pager .next>span{float:right}.pager .previous>a,.pager .previous>span{float:left}.pager .disabled>a,.pager .disabled>a:focus,.pager .disabled>a:hover,.pager .disabled>span{color:#777;cursor:not-allowed;background-color:#fff}.label{display:inline;padding:.2em .6em .3em;font-size:75%;font-weight:700;line-height:1;color:#fff;text-align:center;white-space:nowrap;vertical-align:baseline;border-radius:.25em}a.label:focus,a.label:hover{color:#fff;text-decoration:none;cursor:pointer}.label:empty{display:none}.btn .label{position:relative;top:-1px}.label-default{background-color:#777}.label-default[href]:focus,.label-default[href]:hover{background-color:#5e5e5e}.label-primary{background-color:#337ab7}.label-primary[href]:focus,.label-primary[href]:hover{background-color:#286090}.label-success{background-color:#5cb85c}.label-success[href]:focus,.label-success[href]:hover{background-color:#449d44}.label-info{background-color:#5bc0de}.label-info[href]:focus,.label-info[href]:hover{background-color:#31b0d5}.label-warning{background-color:#f0ad4e}.label-warning[href]:focus,.label-warning[href]:hover{background-color:#ec971f}.label-danger{background-color:#d9534f}.label-danger[href]:focus,.label-danger[href]:hover{background-color:#c9302c}.badge{display:inline-block;min-width:10px;padding:3px 7px;font-size:12px;font-weight:700;line-height:1;color:#fff;text-align:center;white-space:nowrap;vertical-align:middle;background-color:#777;border-radius:10px}.badge:empty{display:none}.btn .badge{position:relative;top:-1px}.btn-group-xs>.btn .badge,.btn-xs .badge{top:0;padding:1px 5px}a.badge:focus,a.badge:hover{color:#fff;text-decoration:none;cursor:pointer}.list-group-item.active>.badge,.nav-pills>.active>a>.badge{color:#337ab7;background-color:#fff}.list-group-item>.badge{float:right}.list-group-item>.badge+.badge{margin-right:5px}.nav-pills>li>a>.badge{margin-left:3px}.jumbotron{padding-top:30px;padding-bottom:30px;margin-bottom:30px;color:inherit;background-color:#eee}.jumbotron .h1,.jumbotron h1{color:inherit}.jumbotron p{margin-bottom:15px;font-size:21px;font-weight:200}.jumbotron>hr{border-top-color:#d5d5d5}.container .jumbotron,.container-fluid .jumbotron{padding-right:15px;padding-left:15px;border-radius:6px}.jumbotron .container{max-width:100%}@media screen and (min-width:768px){.jumbotron{padding-top:48px;padding-bottom:48px}.container .jumbotron,.container-fluid .jumbotron{padding-right:60px;padding-left:60px}.jumbotron .h1,.jumbotron h1{font-size:63px}}.thumbnail{display:block;padding:4px;margin-bottom:20px;line-height:1.42857143;background-color:#fff;border:1px solid #ddd;border-radius:4px;-webkit-transition:border .2s ease-in-out;-o-transition:border .2s ease-in-out;transition:border .2s ease-in-out}.thumbnail a>img,.thumbnail>img{margin-right:auto;margin-left:auto}a.thumbnail.active,a.thumbnail:focus,a.thumbnail:hover{border-color:#337ab7}.thumbnail .caption{padding:9px;color:#333}.alert{padding:15px;margin-bottom:20px;border:1px solid transparent;border-radius:4px}.alert h4{margin-top:0;color:inherit}.alert .alert-link{font-weight:700}.alert>p,.alert>ul{margin-bottom:0}.alert>p+p{margin-top:5px}.alert-dismissable,.alert-dismissible{padding-right:35px}.alert-dismissable .close,.alert-dismissible .close{position:relative;top:-2px;right:-21px;color:inherit}.alert-success{color:#3c763d;background-color:#dff0d8;border-color:#d6e9c6}.alert-success hr{border-top-color:#c9e2b3}.alert-success .alert-link{color:#2b542c}.alert-info{color:#31708f;background-color:#d9edf7;border-color:#bce8f1}.alert-info hr{border-top-color:#a6e1ec}.alert-info .alert-link{color:#245269}.alert-warning{color:#8a6d3b;background-color:#fcf8e3;border-color:#faebcc}.alert-warning hr{border-top-color:#f7e1b5}.alert-warning .alert-link{color:#66512c}.alert-danger{color:#a94442;background-color:#f2dede;border-color:#ebccd1}.alert-danger hr{border-top-color:#e4b9c0}.alert-danger .alert-link{color:#843534}@-webkit-keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}@-o-keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}@keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}.progress{height:20px;margin-bottom:20px;overflow:hidden;background-color:#f5f5f5;border-radius:4px;-webkit-box-shadow:inset 0 1px 2px rgba(0,0,0,.1);box-shadow:inset 0 1px 2px rgba(0,0,0,.1)}.progress-bar{float:left;width:0;height:100%;font-size:12px;line-height:20px;color:#fff;text-align:center;background-color:#337ab7;-webkit-box-shadow:inset 0 -1px 0 rgba(0,0,0,.15);box-shadow:inset 0 -1px 0 rgba(0,0,0,.15);-webkit-transition:width .6s ease;-o-transition:width .6s ease;transition:width .6s ease}.progress-bar-striped,.progress-striped .progress-bar{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);-webkit-background-size:40px 40px;background-size:40px 40px}.progress-bar.active,.progress.active .progress-bar{-webkit-animation:progress-bar-stripes 2s linear infinite;-o-animation:progress-bar-stripes 2s linear infinite;animation:progress-bar-stripes 2s linear infinite}.progress-bar-success{background-color:#5cb85c}.progress-striped .progress-bar-success{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent)}.progress-bar-info{background-color:#5bc0de}.progress-striped .progress-bar-info{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent)}.progress-bar-warning{background-color:#f0ad4e}.progress-striped .progress-bar-warning{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent)}.progress-bar-danger{background-color:#d9534f}.progress-striped .progress-bar-danger{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent)}.media{margin-top:15px}.media:first-child{margin-top:0}.media,.media-body{overflow:hidden;zoom:1}.media-body{width:10000px}.media-object{display:block}.media-object.img-thumbnail{max-width:none}.media-right,.media>.pull-right{padding-left:10px}.media-left,.media>.pull-left{padding-right:10px}.media-body,.media-left,.media-right{display:table-cell;vertical-align:top}.media-middle{vertical-align:middle}.media-bottom{vertical-align:bottom}.media-heading{margin-top:0;margin-bottom:5px}.media-list{padding-left:0;list-style:none}.list-group{padding-left:0;margin-bottom:20px}.list-group-item{position:relative;display:block;padding:10px 15px;margin-bottom:-1px;background-color:#fff;border:1px solid #ddd}.list-group-item:first-child{border-top-left-radius:4px;border-top-right-radius:4px}.list-group-item:last-child{margin-bottom:0;border-bottom-right-radius:4px;border-bottom-left-radius:4px}a.list-group-item,button.list-group-item{color:#555}a.list-group-item .list-group-item-heading,button.list-group-item .list-group-item-heading{color:#333}a.list-group-item:focus,a.list-group-item:hover,button.list-group-item:focus,button.list-group-item:hover{color:#555;text-decoration:none;background-color:#f5f5f5}button.list-group-item{width:100%;text-align:left}.list-group-item.disabled,.list-group-item.disabled:focus,.list-group-item.disabled:hover{color:#777;cursor:not-allowed;background-color:#eee}.list-group-item.disabled .list-group-item-heading,.list-group-item.disabled:focus .list-group-item-heading,.list-group-item.disabled:hover .list-group-item-heading{color:inherit}.list-group-item.disabled .list-group-item-text,.list-group-item.disabled:focus .list-group-item-text,.list-group-item.disabled:hover .list-group-item-text{color:#777}.list-group-item.active,.list-group-item.active:focus,.list-group-item.active:hover{z-index:2;color:#fff;background-color:#337ab7;border-color:#337ab7}.list-group-item.active .list-group-item-heading,.list-group-item.active .list-group-item-heading>.small,.list-group-item.active .list-group-item-heading>small,.list-group-item.active:focus .list-group-item-heading,.list-group-item.active:focus .list-group-item-heading>.small,.list-group-item.active:focus .list-group-item-heading>small,.list-group-item.active:hover .list-group-item-heading,.list-group-item.active:hover .list-group-item-heading>.small,.list-group-item.active:hover .list-group-item-heading>small{color:inherit}.list-group-item.active .list-group-item-text,.list-group-item.active:focus .list-group-item-text,.list-group-item.active:hover .list-group-item-text{color:#c7ddef}.list-group-item-success{color:#3c763d;background-color:#dff0d8}a.list-group-item-success,button.list-group-item-success{color:#3c763d}a.list-group-item-success .list-group-item-heading,button.list-group-item-success .list-group-item-heading{color:inherit}a.list-group-item-success:focus,a.list-group-item-success:hover,button.list-group-item-success:focus,button.list-group-item-success:hover{color:#3c763d;background-color:#d0e9c6}a.list-group-item-success.active,a.list-group-item-success.active:focus,a.list-group-item-success.active:hover,button.list-group-item-success.active,button.list-group-item-success.active:focus,button.list-group-item-success.active:hover{color:#fff;background-color:#3c763d;border-color:#3c763d}.list-group-item-info{color:#31708f;background-color:#d9edf7}a.list-group-item-info,button.list-group-item-info{color:#31708f}a.list-group-item-info .list-group-item-heading,button.list-group-item-info .list-group-item-heading{color:inherit}a.list-group-item-info:focus,a.list-group-item-info:hover,button.list-group-item-info:focus,button.list-group-item-info:hover{color:#31708f;background-color:#c4e3f3}a.list-group-item-info.active,a.list-group-item-info.active:focus,a.list-group-item-info.active:hover,button.list-group-item-info.active,button.list-group-item-info.active:focus,button.list-group-item-info.active:hover{color:#fff;background-color:#31708f;border-color:#31708f}.list-group-item-warning{color:#8a6d3b;background-color:#fcf8e3}a.list-group-item-warning,button.list-group-item-warning{color:#8a6d3b}a.list-group-item-warning .list-group-item-heading,button.list-group-item-warning .list-group-item-heading{color:inherit}a.list-group-item-warning:focus,a.list-group-item-warning:hover,button.list-group-item-warning:focus,button.list-group-item-warning:hover{color:#8a6d3b;background-color:#faf2cc}a.list-group-item-warning.active,a.list-group-item-warning.active:focus,a.list-group-item-warning.active:hover,button.list-group-item-warning.active,button.list-group-item-warning.active:focus,button.list-group-item-warning.active:hover{color:#fff;background-color:#8a6d3b;border-color:#8a6d3b}.list-group-item-danger{color:#a94442;background-color:#f2dede}a.list-group-item-danger,button.list-group-item-danger{color:#a94442}a.list-group-item-danger .list-group-item-heading,button.list-group-item-danger .list-group-item-heading{color:inherit}a.list-group-item-danger:focus,a.list-group-item-danger:hover,button.list-group-item-danger:focus,button.list-group-item-danger:hover{color:#a94442;background-color:#ebcccc}a.list-group-item-danger.active,a.list-group-item-danger.active:focus,a.list-group-item-danger.active:hover,button.list-group-item-danger.active,button.list-group-item-danger.active:focus,button.list-group-item-danger.active:hover{color:#fff;background-color:#a94442;border-color:#a94442}.list-group-item-heading{margin-top:0;margin-bottom:5px}.list-group-item-text{margin-bottom:0;line-height:1.3}.panel{margin-bottom:20px;background-color:#fff;border:1px solid transparent;border-radius:4px;-webkit-box-shadow:0 1px 1px rgba(0,0,0,.05);box-shadow:0 1px 1px rgba(0,0,0,.05)}.panel-body{padding:15px}.panel-heading{padding:10px 15px;border-bottom:1px solid transparent;border-top-left-radius:3px;border-top-right-radius:3px}.panel-heading>.dropdown .dropdown-toggle{color:inherit}.panel-title{margin-top:0;margin-bottom:0;font-size:16px;color:inherit}.panel-title>.small,.panel-title>.small>a,.panel-title>a,.panel-title>small,.panel-title>small>a{color:inherit}.panel-footer{padding:10px 15px;background-color:#f5f5f5;border-top:1px solid #ddd;border-bottom-right-radius:3px;border-bottom-left-radius:3px}.panel>.list-group,.panel>.panel-collapse>.list-group{margin-bottom:0}.panel>.list-group .list-group-item,.panel>.panel-collapse>.list-group .list-group-item{border-width:1px 0;border-radius:0}.panel>.list-group:first-child .list-group-item:first-child,.panel>.panel-collapse>.list-group:first-child .list-group-item:first-child{border-top:0;border-top-left-radius:3px;border-top-right-radius:3px}.panel>.list-group:last-child .list-group-item:last-child,.panel>.panel-collapse>.list-group:last-child .list-group-item:last-child{border-bottom:0;border-bottom-right-radius:3px;border-bottom-left-radius:3px}.panel>.panel-heading+.panel-collapse>.list-group .list-group-item:first-child{border-top-left-radius:0;border-top-right-radius:0}.panel-heading+.list-group .list-group-item:first-child{border-top-width:0}.list-group+.panel-footer{border-top-width:0}.panel>.panel-collapse>.table,.panel>.table,.panel>.table-responsive>.table{margin-bottom:0}.panel>.panel-collapse>.table caption,.panel>.table caption,.panel>.table-responsive>.table caption{padding-right:15px;padding-left:15px}.panel>.table-responsive:first-child>.table:first-child,.panel>.table:first-child{border-top-left-radius:3px;border-top-right-radius:3px}.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child,.panel>.table:first-child>tbody:first-child>tr:first-child,.panel>.table:first-child>thead:first-child>tr:first-child{border-top-left-radius:3px;border-top-right-radius:3px}.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child td:first-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child th:first-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child td:first-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child th:first-child,.panel>.table:first-child>tbody:first-child>tr:first-child td:first-child,.panel>.table:first-child>tbody:first-child>tr:first-child th:first-child,.panel>.table:first-child>thead:first-child>tr:first-child td:first-child,.panel>.table:first-child>thead:first-child>tr:first-child th:first-child{border-top-left-radius:3px}.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child td:last-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child th:last-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child td:last-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child th:last-child,.panel>.table:first-child>tbody:first-child>tr:first-child td:last-child,.panel>.table:first-child>tbody:first-child>tr:first-child th:last-child,.panel>.table:first-child>thead:first-child>tr:first-child td:last-child,.panel>.table:first-child>thead:first-child>tr:first-child th:last-child{border-top-right-radius:3px}.panel>.table-responsive:last-child>.table:last-child,.panel>.table:last-child{border-bottom-right-radius:3px;border-bottom-left-radius:3px}.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child,.panel>.table:last-child>tbody:last-child>tr:last-child,.panel>.table:last-child>tfoot:last-child>tr:last-child{border-bottom-right-radius:3px;border-bottom-left-radius:3px}.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child td:first-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child th:first-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child td:first-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child th:first-child,.panel>.table:last-child>tbody:last-child>tr:last-child td:first-child,.panel>.table:last-child>tbody:last-child>tr:last-child th:first-child,.panel>.table:last-child>tfoot:last-child>tr:last-child td:first-child,.panel>.table:last-child>tfoot:last-child>tr:last-child th:first-child{border-bottom-left-radius:3px}.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child td:last-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child th:last-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child td:last-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child th:last-child,.panel>.table:last-child>tbody:last-child>tr:last-child td:last-child,.panel>.table:last-child>tbody:last-child>tr:last-child th:last-child,.panel>.table:last-child>tfoot:last-child>tr:last-child td:last-child,.panel>.table:last-child>tfoot:last-child>tr:last-child th:last-child{border-bottom-right-radius:3px}.panel>.panel-body+.table,.panel>.panel-body+.table-responsive,.panel>.table+.panel-body,.panel>.table-responsive+.panel-body{border-top:1px solid #ddd}.panel>.table>tbody:first-child>tr:first-child td,.panel>.table>tbody:first-child>tr:first-child th{border-top:0}.panel>.table-bordered,.panel>.table-responsive>.table-bordered{border:0}.panel>.table-bordered>tbody>tr>td:first-child,.panel>.table-bordered>tbody>tr>th:first-child,.panel>.table-bordered>tfoot>tr>td:first-child,.panel>.table-bordered>tfoot>tr>th:first-child,.panel>.table-bordered>thead>tr>td:first-child,.panel>.table-bordered>thead>tr>th:first-child,.panel>.table-responsive>.table-bordered>tbody>tr>td:first-child,.panel>.table-responsive>.table-bordered>tbody>tr>th:first-child,.panel>.table-responsive>.table-bordered>tfoot>tr>td:first-child,.panel>.table-responsive>.table-bordered>tfoot>tr>th:first-child,.panel>.table-responsive>.table-bordered>thead>tr>td:first-child,.panel>.table-responsive>.table-bordered>thead>tr>th:first-child{border-left:0}.panel>.table-bordered>tbody>tr>td:last-child,.panel>.table-bordered>tbody>tr>th:last-child,.panel>.table-bordered>tfoot>tr>td:last-child,.panel>.table-bordered>tfoot>tr>th:last-child,.panel>.table-bordered>thead>tr>td:last-child,.panel>.table-bordered>thead>tr>th:last-child,.panel>.table-responsive>.table-bordered>tbody>tr>td:last-child,.panel>.table-responsive>.table-bordered>tbody>tr>th:last-child,.panel>.table-responsive>.table-bordered>tfoot>tr>td:last-child,.panel>.table-responsive>.table-bordered>tfoot>tr>th:last-child,.panel>.table-responsive>.table-bordered>thead>tr>td:last-child,.panel>.table-responsive>.table-bordered>thead>tr>th:last-child{border-right:0}.panel>.table-bordered>tbody>tr:first-child>td,.panel>.table-bordered>tbody>tr:first-child>th,.panel>.table-bordered>thead>tr:first-child>td,.panel>.table-bordered>thead>tr:first-child>th,.panel>.table-responsive>.table-bordered>tbody>tr:first-child>td,.panel>.table-responsive>.table-bordered>tbody>tr:first-child>th,.panel>.table-responsive>.table-bordered>thead>tr:first-child>td,.panel>.table-responsive>.table-bordered>thead>tr:first-child>th{border-bottom:0}.panel>.table-bordered>tbody>tr:last-child>td,.panel>.table-bordered>tbody>tr:last-child>th,.panel>.table-bordered>tfoot>tr:last-child>td,.panel>.table-bordered>tfoot>tr:last-child>th,.panel>.table-responsive>.table-bordered>tbody>tr:last-child>td,.panel>.table-responsive>.table-bordered>tbody>tr:last-child>th,.panel>.table-responsive>.table-bordered>tfoot>tr:last-child>td,.panel>.table-responsive>.table-bordered>tfoot>tr:last-child>th{border-bottom:0}.panel>.table-responsive{margin-bottom:0;border:0}.panel-group{margin-bottom:20px}.panel-group .panel{margin-bottom:0;border-radius:4px}.panel-group .panel+.panel{margin-top:5px}.panel-group .panel-heading{border-bottom:0}.panel-group .panel-heading+.panel-collapse>.list-group,.panel-group .panel-heading+.panel-collapse>.panel-body{border-top:1px solid #ddd}.panel-group .panel-footer{border-top:0}.panel-group .panel-footer+.panel-collapse .panel-body{border-bottom:1px solid #ddd}.panel-default{border-color:#ddd}.panel-default>.panel-heading{color:#333;background-color:#f5f5f5;border-color:#ddd}.panel-default>.panel-heading+.panel-collapse>.panel-body{border-top-color:#ddd}.panel-default>.panel-heading .badge{color:#f5f5f5;background-color:#333}.panel-default>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#ddd}.panel-primary{border-color:#337ab7}.panel-primary>.panel-heading{color:#fff;background-color:#337ab7;border-color:#337ab7}.panel-primary>.panel-heading+.panel-collapse>.panel-body{border-top-color:#337ab7}.panel-primary>.panel-heading .badge{color:#337ab7;background-color:#fff}.panel-primary>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#337ab7}.panel-success{border-color:#d6e9c6}.panel-success>.panel-heading{color:#3c763d;background-color:#dff0d8;border-color:#d6e9c6}.panel-success>.panel-heading+.panel-collapse>.panel-body{border-top-color:#d6e9c6}.panel-success>.panel-heading .badge{color:#dff0d8;background-color:#3c763d}.panel-success>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#d6e9c6}.panel-info{border-color:#bce8f1}.panel-info>.panel-heading{color:#31708f;background-color:#d9edf7;border-color:#bce8f1}.panel-info>.panel-heading+.panel-collapse>.panel-body{border-top-color:#bce8f1}.panel-info>.panel-heading .badge{color:#d9edf7;background-color:#31708f}.panel-info>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#bce8f1}.panel-warning{border-color:#faebcc}.panel-warning>.panel-heading{color:#8a6d3b;background-color:#fcf8e3;border-color:#faebcc}.panel-warning>.panel-heading+.panel-collapse>.panel-body{border-top-color:#faebcc}.panel-warning>.panel-heading .badge{color:#fcf8e3;background-color:#8a6d3b}.panel-warning>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#faebcc}.panel-danger{border-color:#ebccd1}.panel-danger>.panel-heading{color:#a94442;background-color:#f2dede;border-color:#ebccd1}.panel-danger>.panel-heading+.panel-collapse>.panel-body{border-top-color:#ebccd1}.panel-danger>.panel-heading .badge{color:#f2dede;background-color:#a94442}.panel-danger>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#ebccd1}.embed-responsive{position:relative;display:block;height:0;padding:0;overflow:hidden}.embed-responsive .embed-responsive-item,.embed-responsive embed,.embed-responsive iframe,.embed-responsive object,.embed-responsive video{position:absolute;top:0;bottom:0;left:0;width:100%;height:100%;border:0}.embed-responsive-16by9{padding-bottom:56.25%}.embed-responsive-4by3{padding-bottom:75%}.well{min-height:20px;padding:19px;margin-bottom:20px;background-color:#f5f5f5;border:1px solid #e3e3e3;border-radius:4px;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.05);box-shadow:inset 0 1px 1px rgba(0,0,0,.05)}.well blockquote{border-color:#ddd;border-color:rgba(0,0,0,.15)}.well-lg{padding:24px;border-radius:6px}.well-sm{padding:9px;border-radius:3px}.close{float:right;font-size:21px;font-weight:700;line-height:1;color:#000;text-shadow:0 1px 0 #fff;filter:alpha(opacity=20);opacity:.2}.close:focus,.close:hover{color:#000;text-decoration:none;cursor:pointer;filter:alpha(opacity=50);opacity:.5}button.close{-webkit-appearance:none;padding:0;cursor:pointer;background:0 0;border:0}.modal-open{overflow:hidden}.modal{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1050;display:none;overflow:hidden;-webkit-overflow-scrolling:touch;outline:0}.modal.fade .modal-dialog{-webkit-transition:-webkit-transform .3s ease-out;-o-transition:-o-transform .3s ease-out;transition:transform .3s ease-out;-webkit-transform:translate(0,-25%);-ms-transform:translate(0,-25%);-o-transform:translate(0,-25%);transform:translate(0,-25%)}.modal.in .modal-dialog{-webkit-transform:translate(0,0);-ms-transform:translate(0,0);-o-transform:translate(0,0);transform:translate(0,0)}.modal-open .modal{overflow-x:hidden;overflow-y:auto}.modal-dialog{position:relative;width:auto;margin:10px}.modal-content{position:relative;background-color:#fff;-webkit-background-clip:padding-box;background-clip:padding-box;border:1px solid #999;border:1px solid rgba(0,0,0,.2);border-radius:6px;outline:0;-webkit-box-shadow:0 3px 9px rgba(0,0,0,.5);box-shadow:0 3px 9px rgba(0,0,0,.5)}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1040;background-color:#000}.modal-backdrop.fade{filter:alpha(opacity=0);opacity:0}.modal-backdrop.in{filter:alpha(opacity=50);opacity:.5}.modal-header{padding:15px;border-bottom:1px solid #e5e5e5}.modal-header .close{margin-top:-2px}.modal-title{margin:0;line-height:1.42857143}.modal-body{position:relative;padding:15px}.modal-footer{padding:15px;text-align:right;border-top:1px solid #e5e5e5}.modal-footer .btn+.btn{margin-bottom:0;margin-left:5px}.modal-footer .btn-group .btn+.btn{margin-left:-1px}.modal-footer .btn-block+.btn-block{margin-left:0}.modal-scrollbar-measure{position:absolute;top:-9999px;width:50px;height:50px;overflow:scroll}@media (min-width:768px){.modal-dialog{width:600px;margin:30px auto}.modal-content{-webkit-box-shadow:0 5px 15px rgba(0,0,0,.5);box-shadow:0 5px 15px rgba(0,0,0,.5)}.modal-sm{width:300px}}@media (min-width:992px){.modal-lg{width:900px}}.tooltip{position:absolute;z-index:1070;display:block;font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:12px;font-style:normal;font-weight:400;line-height:1.42857143;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;letter-spacing:normal;word-break:normal;word-spacing:normal;word-wrap:normal;white-space:normal;filter:alpha(opacity=0);opacity:0;line-break:auto}.tooltip.in{filter:alpha(opacity=90);opacity:.9}.tooltip.top{padding:5px 0;margin-top:-3px}.tooltip.right{padding:0 5px;margin-left:3px}.tooltip.bottom{padding:5px 0;margin-top:3px}.tooltip.left{padding:0 5px;margin-left:-3px}.tooltip-inner{max-width:200px;padding:3px 8px;color:#fff;text-align:center;background-color:#000;border-radius:4px}.tooltip-arrow{position:absolute;width:0;height:0;border-color:transparent;border-style:solid}.tooltip.top .tooltip-arrow{bottom:0;left:50%;margin-left:-5px;border-width:5px 5px 0;border-top-color:#000}.tooltip.top-left .tooltip-arrow{right:5px;bottom:0;margin-bottom:-5px;border-width:5px 5px 0;border-top-color:#000}.tooltip.top-right .tooltip-arrow{bottom:0;left:5px;margin-bottom:-5px;border-width:5px 5px 0;border-top-color:#000}.tooltip.right .tooltip-arrow{top:50%;left:0;margin-top:-5px;border-width:5px 5px 5px 0;border-right-color:#000}.tooltip.left .tooltip-arrow{top:50%;right:0;margin-top:-5px;border-width:5px 0 5px 5px;border-left-color:#000}.tooltip.bottom .tooltip-arrow{top:0;left:50%;margin-left:-5px;border-width:0 5px 5px;border-bottom-color:#000}.tooltip.bottom-left .tooltip-arrow{top:0;right:5px;margin-top:-5px;border-width:0 5px 5px;border-bottom-color:#000}.tooltip.bottom-right .tooltip-arrow{top:0;left:5px;margin-top:-5px;border-width:0 5px 5px;border-bottom-color:#000}.popover{position:absolute;top:0;left:0;z-index:1060;display:none;max-width:276px;padding:1px;font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:14px;font-style:normal;font-weight:400;line-height:1.42857143;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;letter-spacing:normal;word-break:normal;word-spacing:normal;word-wrap:normal;white-space:normal;background-color:#fff;-webkit-background-clip:padding-box;background-clip:padding-box;border:1px solid #ccc;border:1px solid rgba(0,0,0,.2);border-radius:6px;-webkit-box-shadow:0 5px 10px rgba(0,0,0,.2);box-shadow:0 5px 10px rgba(0,0,0,.2);line-break:auto}.popover.top{margin-top:-10px}.popover.right{margin-left:10px}.popover.bottom{margin-top:10px}.popover.left{margin-left:-10px}.popover-title{padding:8px 14px;margin:0;font-size:14px;background-color:#f7f7f7;border-bottom:1px solid #ebebeb;border-radius:5px 5px 0 0}.popover-content{padding:9px 14px}.popover>.arrow,.popover>.arrow:after{position:absolute;display:block;width:0;height:0;border-color:transparent;border-style:solid}.popover>.arrow{border-width:11px}.popover>.arrow:after{content:"";border-width:10px}.popover.top>.arrow{bottom:-11px;left:50%;margin-left:-11px;border-top-color:#999;border-top-color:rgba(0,0,0,.25);border-bottom-width:0}.popover.top>.arrow:after{bottom:1px;margin-left:-10px;content:" ";border-top-color:#fff;border-bottom-width:0}.popover.right>.arrow{top:50%;left:-11px;margin-top:-11px;border-right-color:#999;border-right-color:rgba(0,0,0,.25);border-left-width:0}.popover.right>.arrow:after{bottom:-10px;left:1px;content:" ";border-right-color:#fff;border-left-width:0}.popover.bottom>.arrow{top:-11px;left:50%;margin-left:-11px;border-top-width:0;border-bottom-color:#999;border-bottom-color:rgba(0,0,0,.25)}.popover.bottom>.arrow:after{top:1px;margin-left:-10px;content:" ";border-top-width:0;border-bottom-color:#fff}.popover.left>.arrow{top:50%;right:-11px;margin-top:-11px;border-right-width:0;border-left-color:#999;border-left-color:rgba(0,0,0,.25)}.popover.left>.arrow:after{right:1px;bottom:-10px;content:" ";border-right-width:0;border-left-color:#fff}.carousel{position:relative}.carousel-inner{position:relative;width:100%;overflow:hidden}.carousel-inner>.item{position:relative;display:none;-webkit-transition:.6s ease-in-out left;-o-transition:.6s ease-in-out left;transition:.6s ease-in-out left}.carousel-inner>.item>a>img,.carousel-inner>.item>img{line-height:1}@media all and (transform-3d),(-webkit-transform-3d){.carousel-inner>.item{-webkit-transition:-webkit-transform .6s ease-in-out;-o-transition:-o-transform .6s ease-in-out;transition:transform .6s ease-in-out;-webkit-backface-visibility:hidden;backface-visibility:hidden;-webkit-perspective:1000px;perspective:1000px}.carousel-inner>.item.active.right,.carousel-inner>.item.next{left:0;-webkit-transform:translate3d(100%,0,0);transform:translate3d(100%,0,0)}.carousel-inner>.item.active.left,.carousel-inner>.item.prev{left:0;-webkit-transform:translate3d(-100%,0,0);transform:translate3d(-100%,0,0)}.carousel-inner>.item.active,.carousel-inner>.item.next.left,.carousel-inner>.item.prev.right{left:0;-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}}.carousel-inner>.active,.carousel-inner>.next,.carousel-inner>.prev{display:block}.carousel-inner>.active{left:0}.carousel-inner>.next,.carousel-inner>.prev{position:absolute;top:0;width:100%}.carousel-inner>.next{left:100%}.carousel-inner>.prev{left:-100%}.carousel-inner>.next.left,.carousel-inner>.prev.right{left:0}.carousel-inner>.active.left{left:-100%}.carousel-inner>.active.right{left:100%}.carousel-control{position:absolute;top:0;bottom:0;left:0;width:15%;font-size:20px;color:#fff;text-align:center;text-shadow:0 1px 2px rgba(0,0,0,.6);background-color:rgba(0,0,0,0);filter:alpha(opacity=50);opacity:.5}.carousel-control.left{background-image:-webkit-linear-gradient(left,rgba(0,0,0,.5) 0,rgba(0,0,0,.0001) 100%);background-image:-o-linear-gradient(left,rgba(0,0,0,.5) 0,rgba(0,0,0,.0001) 100%);background-image:-webkit-gradient(linear,left top,right top,from(rgba(0,0,0,.5)),to(rgba(0,0,0,.0001)));background-image:linear-gradient(to right,rgba(0,0,0,.5) 0,rgba(0,0,0,.0001) 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#80000000', endColorstr='#00000000', GradientType=1);background-repeat:repeat-x}.carousel-control.right{right:0;left:auto;background-image:-webkit-linear-gradient(left,rgba(0,0,0,.0001) 0,rgba(0,0,0,.5) 100%);background-image:-o-linear-gradient(left,rgba(0,0,0,.0001) 0,rgba(0,0,0,.5) 100%);background-image:-webkit-gradient(linear,left top,right top,from(rgba(0,0,0,.0001)),to(rgba(0,0,0,.5)));background-image:linear-gradient(to right,rgba(0,0,0,.0001) 0,rgba(0,0,0,.5) 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#00000000', endColorstr='#80000000', GradientType=1);background-repeat:repeat-x}.carousel-control:focus,.carousel-control:hover{color:#fff;text-decoration:none;filter:alpha(opacity=90);outline:0;opacity:.9}.carousel-control .glyphicon-chevron-left,.carousel-control .glyphicon-chevron-right,.carousel-control .icon-next,.carousel-control .icon-prev{position:absolute;top:50%;z-index:5;display:inline-block;margin-top:-10px}.carousel-control .glyphicon-chevron-left,.carousel-control .icon-prev{left:50%;margin-left:-10px}.carousel-control .glyphicon-chevron-right,.carousel-control .icon-next{right:50%;margin-right:-10px}.carousel-control .icon-next,.carousel-control .icon-prev{width:20px;height:20px;font-family:serif;line-height:1}.carousel-control .icon-prev:before{content:'\2039'}.carousel-control .icon-next:before{content:'\203a'}.carousel-indicators{position:absolute;bottom:10px;left:50%;z-index:15;width:60%;padding-left:0;margin-left:-30%;text-align:center;list-style:none}.carousel-indicators li{display:inline-block;width:10px;height:10px;margin:1px;text-indent:-999px;cursor:pointer;background-color:#000\9;background-color:rgba(0,0,0,0);border:1px solid #fff;border-radius:10px}.carousel-indicators .active{width:12px;height:12px;margin:0;background-color:#fff}.carousel-caption{position:absolute;right:15%;bottom:20px;left:15%;z-index:10;padding-top:20px;padding-bottom:20px;color:#fff;text-align:center;text-shadow:0 1px 2px rgba(0,0,0,.6)}.carousel-caption .btn{text-shadow:none}@media screen and (min-width:768px){.carousel-control .glyphicon-chevron-left,.carousel-control .glyphicon-chevron-right,.carousel-control .icon-next,.carousel-control .icon-prev{width:30px;height:30px;margin-top:-10px;font-size:30px}.carousel-control .glyphicon-chevron-left,.carousel-control .icon-prev{margin-left:-10px}.carousel-control .glyphicon-chevron-right,.carousel-control .icon-next{margin-right:-10px}.carousel-caption{right:20%;left:20%;padding-bottom:30px}.carousel-indicators{bottom:20px}}.btn-group-vertical>.btn-group:after,.btn-group-vertical>.btn-group:before,.btn-toolbar:after,.btn-toolbar:before,.clearfix:after,.clearfix:before,.container-fluid:after,.container-fluid:before,.container:after,.container:before,.dl-horizontal dd:after,.dl-horizontal dd:before,.form-horizontal .form-group:after,.form-horizontal .form-group:before,.modal-footer:after,.modal-footer:before,.modal-header:after,.modal-header:before,.nav:after,.nav:before,.navbar-collapse:after,.navbar-collapse:before,.navbar-header:after,.navbar-header:before,.navbar:after,.navbar:before,.pager:after,.pager:before,.panel-body:after,.panel-body:before,.row:after,.row:before{display:table;content:" "}.btn-group-vertical>.btn-group:after,.btn-toolbar:after,.clearfix:after,.container-fluid:after,.container:after,.dl-horizontal dd:after,.form-horizontal .form-group:after,.modal-footer:after,.modal-header:after,.nav:after,.navbar-collapse:after,.navbar-header:after,.navbar:after,.pager:after,.panel-body:after,.row:after{clear:both}.center-block{display:block;margin-right:auto;margin-left:auto}.pull-right{float:right!important}.pull-left{float:left!important}.hide{display:none!important}.show{display:block!important}.invisible{visibility:hidden}.text-hide{font:0/0 a;color:transparent;text-shadow:none;background-color:transparent;border:0}.hidden{display:none!important}.affix{position:fixed}@-ms-viewport{width:device-width}.visible-lg,.visible-md,.visible-sm,.visible-xs{display:none!important}.visible-lg-block,.visible-lg-inline,.visible-lg-inline-block,.visible-md-block,.visible-md-inline,.visible-md-inline-block,.visible-sm-block,.visible-sm-inline,.visible-sm-inline-block,.visible-xs-block,.visible-xs-inline,.visible-xs-inline-block{display:none!important}@media (max-width:767px){.visible-xs{display:block!important}table.visible-xs{display:table!important}tr.visible-xs{display:table-row!important}td.visible-xs,th.visible-xs{display:table-cell!important}}@media (max-width:767px){.visible-xs-block{display:block!important}}@media (max-width:767px){.visible-xs-inline{display:inline!important}}@media (max-width:767px){.visible-xs-inline-block{display:inline-block!important}}@media (min-width:768px) and (max-width:991px){.visible-sm{display:block!important}table.visible-sm{display:table!important}tr.visible-sm{display:table-row!important}td.visible-sm,th.visible-sm{display:table-cell!important}}@media (min-width:768px) and (max-width:991px){.visible-sm-block{display:block!important}}@media (min-width:768px) and (max-width:991px){.visible-sm-inline{display:inline!important}}@media (min-width:768px) and (max-width:991px){.visible-sm-inline-block{display:inline-block!important}}@media (min-width:992px) and (max-width:1199px){.visible-md{display:block!important}table.visible-md{display:table!important}tr.visible-md{display:table-row!important}td.visible-md,th.visible-md{display:table-cell!important}}@media (min-width:992px) and (max-width:1199px){.visible-md-block{display:block!important}}@media (min-width:992px) and (max-width:1199px){.visible-md-inline{display:inline!important}}@media (min-width:992px) and (max-width:1199px){.visible-md-inline-block{display:inline-block!important}}@media (min-width:1200px){.visible-lg{display:block!important}table.visible-lg{display:table!important}tr.visible-lg{display:table-row!important}td.visible-lg,th.visible-lg{display:table-cell!important}}@media (min-width:1200px){.visible-lg-block{display:block!important}}@media (min-width:1200px){.visible-lg-inline{display:inline!important}}@media (min-width:1200px){.visible-lg-inline-block{display:inline-block!important}}@media (max-width:767px){.hidden-xs{display:none!important}}@media (min-width:768px) and (max-width:991px){.hidden-sm{display:none!important}}@media (min-width:992px) and (max-width:1199px){.hidden-md{display:none!important}}@media (min-width:1200px){.hidden-lg{display:none!important}}.visible-print{display:none!important}@media print{.visible-print{display:block!important}table.visible-print{display:table!important}tr.visible-print{display:table-row!important}td.visible-print,th.visible-print{display:table-cell!important}}.visible-print-block{display:none!important}@media print{.visible-print-block{display:block!important}}.visible-print-inline{display:none!important}@media print{.visible-print-inline{display:inline!important}}.visible-print-inline-block{display:none!important}@media print{.visible-print-inline-block{display:inline-block!important}}@media print{.hidden-print{display:none!important}} -/*# sourceMappingURL=bootstrap.min.css.map */ \ No newline at end of file diff --git a/admin/bower_components/bootstrap/dist/css/bootstrap.min.css.map b/admin/bower_components/bootstrap/dist/css/bootstrap.min.css.map deleted file mode 100644 index 6c7fa40..0000000 --- a/admin/bower_components/bootstrap/dist/css/bootstrap.min.css.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sources":["less/normalize.less","less/print.less","bootstrap.css","dist/css/bootstrap.css","less/glyphicons.less","less/scaffolding.less","less/mixins/vendor-prefixes.less","less/mixins/tab-focus.less","less/mixins/image.less","less/type.less","less/mixins/text-emphasis.less","less/mixins/background-variant.less","less/mixins/text-overflow.less","less/code.less","less/grid.less","less/mixins/grid.less","less/mixins/grid-framework.less","less/tables.less","less/mixins/table-row.less","less/forms.less","less/mixins/forms.less","less/buttons.less","less/mixins/buttons.less","less/mixins/opacity.less","less/component-animations.less","less/dropdowns.less","less/mixins/nav-divider.less","less/mixins/reset-filter.less","less/button-groups.less","less/mixins/border-radius.less","less/input-groups.less","less/navs.less","less/navbar.less","less/mixins/nav-vertical-align.less","less/utilities.less","less/breadcrumbs.less","less/pagination.less","less/mixins/pagination.less","less/pager.less","less/labels.less","less/mixins/labels.less","less/badges.less","less/jumbotron.less","less/thumbnails.less","less/alerts.less","less/mixins/alerts.less","less/progress-bars.less","less/mixins/gradients.less","less/mixins/progress-bar.less","less/media.less","less/list-group.less","less/mixins/list-group.less","less/panels.less","less/mixins/panels.less","less/responsive-embed.less","less/wells.less","less/close.less","less/modals.less","less/tooltip.less","less/mixins/reset-text.less","less/popovers.less","less/carousel.less","less/mixins/clearfix.less","less/mixins/center-block.less","less/mixins/hide-text.less","less/responsive-utilities.less","less/mixins/responsive-visibility.less"],"names":[],"mappings":";;;;4EAQA,KACE,YAAA,WACA,yBAAA,KACA,qBAAA,KAOF,KACE,OAAA,EAaF,QAAA,MAAA,QAAA,WAAA,OAAA,OAAA,OAAA,OAAA,KAAA,KAAA,IAAA,QAAA,QAaE,QAAA,MAQF,MAAA,OAAA,SAAA,MAIE,QAAA,aACA,eAAA,SAQF,sBACE,QAAA,KACA,OAAA,EAQF,SAAA,SAEE,QAAA,KAUF,EACE,iBAAA,YAQF,SAAA,QAEE,QAAA,EAUF,YACE,cAAA,IAAA,OAOF,EAAA,OAEE,YAAA,IAOF,IACE,WAAA,OAQF,GACE,OAAA,MAAA,EACA,UAAA,IAOF,KACE,MAAA,KACA,WAAA,KAOF,MACE,UAAA,IAOF,IAAA,IAEE,SAAA,SACA,UAAA,IACA,YAAA,EACA,eAAA,SAGF,IACE,IAAA,MAGF,IACE,OAAA,OAUF,IACE,OAAA,EAOF,eACE,SAAA,OAUF,OACE,OAAA,IAAA,KAOF,GACE,OAAA,EAAA,mBAAA,YAAA,gBAAA,YACA,WAAA,YAOF,IACE,SAAA,KAOF,KAAA,IAAA,IAAA,KAIE,YAAA,UAAA,UACA,UAAA,IAkBF,OAAA,MAAA,SAAA,OAAA,SAKE,OAAA,EACA,KAAA,QACA,MAAA,QAOF,OACE,SAAA,QAUF,OAAA,OAEE,eAAA,KAWF,OAAA,wBAAA,kBAAA,mBAIE,mBAAA,OACA,OAAA,QAOF,iBAAA,qBAEE,OAAA,QAOF,yBAAA,wBAEE,QAAA,EACA,OAAA,EAQF,MACE,YAAA,OAWF,qBAAA,kBAEE,mBAAA,WAAA,gBAAA,WAAA,WAAA,WACA,QAAA,EASF,8CAAA,8CAEE,OAAA,KAQF,mBACE,mBAAA,YACA,gBAAA,YAAA,WAAA,YAAA,mBAAA,UASF,iDAAA,8CAEE,mBAAA,KAOF,SACE,QAAA,MAAA,OAAA,MACA,OAAA,EAAA,IACA,OAAA,IAAA,MAAA,OAQF,OACE,QAAA,EACA,OAAA,EAOF,SACE,SAAA,KAQF,SACE,YAAA,IAUF,MACE,eAAA,EACA,gBAAA,SAGF,GAAA,GAEE,QAAA,uFCjUF,aA7FI,EAAA,OAAA,QAGI,MAAA,eACA,YAAA,eACA,WAAA,cAAA,mBAAA,eACA,WAAA,eAGJ,EAAA,UAEI,gBAAA,UAGJ,cACI,QAAA,KAAA,WAAA,IAGJ,kBACI,QAAA,KAAA,YAAA,IAKJ,6BAAA,mBAEI,QAAA,GAGJ,WAAA,IAEI,OAAA,IAAA,MAAA,KC4KL,kBAAA,MDvKK,MC0KL,QAAA,mBDrKK,IE8KN,GDLC,kBAAA,MDrKK,ICwKL,UAAA,eCUD,GF5KM,GE2KN,EF1KM,QAAA,ECuKL,OAAA,ECSD,GF3KM,GCsKL,iBAAA,MD/JK,QCkKL,QAAA,KCSD,YFtKU,oBCiKT,iBAAA,eD7JK,OCgKL,OAAA,IAAA,MAAA,KD5JK,OC+JL,gBAAA,mBCSD,UFpKU,UC+JT,iBAAA,eDzJS,mBEkKV,mBDLC,OAAA,IAAA,MAAA,gBEjPD,WACA,YAAA,uBFsPD,IAAA,+CE7OC,IAAK,sDAAuD,4BAA6B,iDAAkD,gBAAiB,gDAAiD,eAAgB,+CAAgD,mBAAoB,2EAA4E,cAE7W,WACA,SAAA,SACA,IAAA,IACA,QAAA,aACA,YAAA,uBACA,WAAA,OACA,YAAA,IACA,YAAA,EAIkC,uBAAA,YAAW,wBAAA,UACX,2BAAW,QAAA,QAEX,uBDuPlC,QAAS,QCtPyB,sBFiPnC,uBEjP8C,QAAA,QACX,wBAAW,QAAA,QACX,wBAAW,QAAA,QACX,2BAAW,QAAA,QACX,yBAAW,QAAA,QACX,wBAAW,QAAA,QACX,wBAAW,QAAA,QACX,yBAAW,QAAA,QACX,wBAAW,QAAA,QACX,uBAAW,QAAA,QACX,6BAAW,QAAA,QACX,uBAAW,QAAA,QACX,uBAAW,QAAA,QACX,2BAAW,QAAA,QACX,qBAAW,QAAA,QACX,0BAAW,QAAA,QACX,qBAAW,QAAA,QACX,yBAAW,QAAA,QACX,0BAAW,QAAA,QACX,2BAAW,QAAA,QACX,sBAAW,QAAA,QACX,yBAAW,QAAA,QACX,sBAAW,QAAA,QACX,wBAAW,QAAA,QACX,uBAAW,QAAA,QACX,uBAAW,QAAA,QACX,uBAAW,QAAA,QACX,uBAAW,QAAA,QACX,+BAAW,QAAA,QACX,2BAAW,QAAA,QACX,yBAAW,QAAA,QACX,wBAAW,QAAA,QACX,8BAAW,QAAA,QACX,yBAAW,QAAA,QACX,0BAAW,QAAA,QACX,2BAAW,QAAA,QACX,uBAAW,QAAA,QACX,uBAAW,QAAA,QACX,6BAAW,QAAA,QACX,6BAAW,QAAA,QACX,8BAAW,QAAA,QACX,4BAAW,QAAA,QACX,yBAAW,QAAA,QACX,0BAAW,QAAA,QACX,sBAAW,QAAA,QACX,uBAAW,QAAA,QACX,uBAAW,QAAA,QACX,2BAAW,QAAA,QACX,wBAAW,QAAA,QACX,yBAAW,QAAA,QACX,uBAAW,QAAA,QACX,uBAAW,QAAA,QACX,yBAAW,QAAA,QACX,8BAAW,QAAA,QACX,6BAAW,QAAA,QACX,6BAAW,QAAA,QACX,+BAAW,QAAA,QACX,8BAAW,QAAA,QACX,gCAAW,QAAA,QACX,uBAAW,QAAA,QACX,8BAAW,QAAA,QACX,+BAAW,QAAA,QACX,iCAAW,QAAA,QACX,0BAAW,QAAA,QACX,6BAAW,QAAA,QACX,yBAAW,QAAA,QACX,uBAAW,QAAA,QACX,uBAAW,QAAA,QACX,wBAAW,QAAA,QACX,wBAAW,QAAA,QACX,uBAAW,QAAA,QACX,gCAAW,QAAA,QACX,gCAAW,QAAA,QACX,2BAAW,QAAA,QACX,uBAAW,QAAA,QACX,wBAAW,QAAA,QACX,uBAAW,QAAA,QACX,0BAAW,QAAA,QACX,+BAAW,QAAA,QACX,+BAAW,QAAA,QACX,wBAAW,QAAA,QACX,+BAAW,QAAA,QACX,gCAAW,QAAA,QACX,4BAAW,QAAA,QACX,6BAAW,QAAA,QACX,8BAAW,QAAA,QACX,0BAAW,QAAA,QACX,gCAAW,QAAA,QACX,4BAAW,QAAA,QACX,6BAAW,QAAA,QACX,gCAAW,QAAA,QACX,4BAAW,QAAA,QACX,6BAAW,QAAA,QACX,6BAAW,QAAA,QACX,8BAAW,QAAA,QACX,2BAAW,QAAA,QACX,6BAAW,QAAA,QACX,4BAAW,QAAA,QACX,8BAAW,QAAA,QACX,+BAAW,QAAA,QACX,mCAAW,QAAA,QACX,uBAAW,QAAA,QACX,uBAAW,QAAA,QACX,uBAAW,QAAA,QACX,2BAAW,QAAA,QACX,4BAAW,QAAA,QACX,+BAAW,QAAA,QACX,wBAAW,QAAA,QACX,2BAAW,QAAA,QACX,yBAAW,QAAA,QACX,0BAAW,QAAA,QACX,yBAAW,QAAA,QACX,6BAAW,QAAA,QACX,+BAAW,QAAA,QACX,0BAAW,QAAA,QACX,gCAAW,QAAA,QACX,+BAAW,QAAA,QACX,8BAAW,QAAA,QACX,kCAAW,QAAA,QACX,oCAAW,QAAA,QACX,sBAAW,QAAA,QACX,2BAAW,QAAA,QACX,uBAAW,QAAA,QACX,8BAAW,QAAA,QACX,4BAAW,QAAA,QACX,8BAAW,QAAA,QACX,6BAAW,QAAA,QACX,4BAAW,QAAA,QACX,0BAAW,QAAA,QACX,4BAAW,QAAA,QACX,qCAAW,QAAA,QACX,oCAAW,QAAA,QACX,kCAAW,QAAA,QACX,oCAAW,QAAA,QACX,wBAAW,QAAA,QACX,yBAAW,QAAA,QACX,wBAAW,QAAA,QACX,yBAAW,QAAA,QACX,4BAAW,QAAA,QACX,6BAAW,QAAA,QACX,4BAAW,QAAA,QACX,4BAAW,QAAA,QACX,8BAAW,QAAA,QACX,uBAAW,QAAA,QACX,wBAAW,QAAA,QACX,0BAAW,QAAA,QACX,sBAAW,QAAA,QACX,sBAAW,QAAA,QACX,uBAAW,QAAA,QACX,mCAAW,QAAA,QACX,uCAAW,QAAA,QACX,gCAAW,QAAA,QACX,oCAAW,QAAA,QACX,qCAAW,QAAA,QACX,yCAAW,QAAA,QACX,4BAAW,QAAA,QACX,yBAAW,QAAA,QACX,gCAAW,QAAA,QACX,8BAAW,QAAA,QACX,yBAAW,QAAA,QACX,wBAAW,QAAA,QACX,0BAAW,QAAA,QACX,6BAAW,QAAA,QACX,yBAAW,QAAA,QACX,uBAAW,QAAA,QACX,uBAAW,QAAA,QACX,wBAAW,QAAA,QACX,yBAAW,QAAA,QACX,yBAAW,QAAA,QACX,uBAAW,QAAA,QACX,8BAAW,QAAA,QACX,+BAAW,QAAA,QACX,gCAAW,QAAA,QACX,8BAAW,QAAA,QACX,8BAAW,QAAA,QACX,8BAAW,QAAA,QACX,2BAAW,QAAA,QACX,0BAAW,QAAA,QACX,yBAAW,QAAA,QACX,6BAAW,QAAA,QACX,2BAAW,QAAA,QACX,4BAAW,QAAA,QACX,wBAAW,QAAA,QACX,wBAAW,QAAA,QACX,2BAAW,QAAA,QACX,2BAAW,QAAA,QACX,4BAAW,QAAA,QACX,+BAAW,QAAA,QACX,8BAAW,QAAA,QACX,4BAAW,QAAA,QACX,4BAAW,QAAA,QACX,4BAAW,QAAA,QACX,iCAAW,QAAA,QACX,oCAAW,QAAA,QACX,iCAAW,QAAA,QACX,+BAAW,QAAA,QACX,+BAAW,QAAA,QACX,iCAAW,QAAA,QACX,qBAAW,QAAA,QACX,4BAAW,QAAA,QACX,4BAAW,QAAA,QACX,2BAAW,QAAA,QACX,uBAAW,QAAA,QASX,wBAAW,QAAA,QACX,wBAAW,QAAA,QACX,4BAAW,QAAA,QACX,uBAAW,QAAA,QACX,wBAAW,QAAA,QACX,uBAAW,QAAA,QACX,yBAAW,QAAA,QACX,yBAAW,QAAA,QACX,+BAAW,QAAA,QACX,uBAAW,QAAA,QACX,6BAAW,QAAA,QACX,sBAAW,QAAA,QACX,wBAAW,QAAA,QACX,wBAAW,QAAA,QACX,4BAAW,QAAA,QACX,uBAAW,QAAA,QACX,4BAAW,QAAA,QACX,6BAAW,QAAA,QACX,2BAAW,QAAA,QACX,0BAAW,QAAA,QACX,sBAAW,QAAA,QACX,sBAAW,QAAA,QACX,sBAAW,QAAA,QACX,sBAAW,QAAA,QACX,wBAAW,QAAA,QACX,sBAAW,QAAA,QACX,wBAAW,QAAA,QACX,4BAAW,QAAA,QACX,mCAAW,QAAA,QACX,4BAAW,QAAA,QACX,oCAAW,QAAA,QACX,kCAAW,QAAA,QACX,iCAAW,QAAA,QACX,+BAAW,QAAA,QACX,sBAAW,QAAA,QACX,wBAAW,QAAA,QACX,6BAAW,QAAA,QACX,4BAAW,QAAA,QACX,6BAAW,QAAA,QACX,kCAAW,QAAA,QACX,mCAAW,QAAA,QACX,sCAAW,QAAA,QACX,0CAAW,QAAA,QACX,oCAAW,QAAA,QACX,wCAAW,QAAA,QACX,qCAAW,QAAA,QACX,iCAAW,QAAA,QACX,gCAAW,QAAA,QACX,kCAAW,QAAA,QACX,+BAAW,QAAA,QACX,0BAAW,QAAA,QACX,8BAAW,QAAA,QACX,4BAAW,QAAA,QACX,4BAAW,QAAA,QACX,6BAAW,QAAA,QACX,4BAAW,QAAA,QCtS/C,0BCgEE,QAAA,QHi+BF,EDNC,mBAAA,WGxhCI,gBAAiB,WFiiCZ,WAAY,WGl+BZ,OADL,QJg+BJ,mBAAA,WGthCI,gBAAiB,WACpB,WAAA,WHyhCD,KGrhCC,UAAW,KAEX,4BAAA,cAEA,KACA,YAAA,iBAAA,UAAA,MAAA,WHuhCD,UAAA,KGnhCC,YAAa,WF4hCb,MAAO,KACP,iBAAkB,KExhClB,OADA,MAEA,OHqhCD,SG/gCC,YAAa,QACb,UAAA,QACA,YAAA,QAEA,EFwhCA,MAAO,QEthCL,gBAAA,KAIF,QH8gCD,QKjkCC,MAAA,QACA,gBAAA,UF6DF,QACE,QAAA,IAAA,KAAA,yBHygCD,eAAA,KGlgCC,OHqgCD,OAAA,ECSD,IACE,eAAgB,ODDjB,4BM/kCC,0BLklCF,gBKnlCE,iBADA,eH4EA,QAAS,MACT,UAAA,KHugCD,OAAA,KGhgCC,aACA,cAAA,IAEA,eACA,QAAA,aC6FA,UAAA,KACK,OAAA,KACG,QAAA,IEvLR,YAAA,WACA,iBAAA,KACA,OAAA,IAAA,MAAA,KN+lCD,cAAA,IGjgCC,mBAAoB,IAAI,IAAI,YAC5B,cAAA,IAAA,IAAA,YHmgCD,WAAA,IAAA,IAAA,YG5/BC,YACA,cAAA,IAEA,GH+/BD,WAAA,KGv/BC,cAAe,KACf,OAAA,EACA,WAAA,IAAA,MAAA,KAEA,SACA,SAAA,SACA,MAAA,IACA,OAAA,IACA,QAAA,EHy/BD,OAAA,KGj/BC,SAAA,OF0/BA,KAAM,cEx/BJ,OAAA,EAEA,0BACA,yBACA,SAAA,OACA,MAAA,KHm/BH,OAAA,KGx+BC,OAAQ,EACR,SAAA,QH0+BD,KAAA,KCSD,cACE,OAAQ,QAQV,IACA,IMlpCE,IACA,IACA,IACA,INwoCF,GACA,GACA,GACA,GACA,GACA,GDAC,YAAA,QOlpCC,YAAa,IN2pCb,YAAa,IACb,MAAO,QAoBT,WAZA,UAaA,WAZA,UM5pCI,WN6pCJ,UM5pCI,WN6pCJ,UM5pCI,WN6pCJ,UDMC,WCLD,UACA,UAZA,SAaA,UAZA,SAaA,UAZA,SAaA,UAZA,SAaA,UAZA,SAaA,UAZA,SMppCE,YAAa,INwqCb,YAAa,EACb,MAAO,KAGT,IMxqCE,IAJF,IN2qCA,GAEA,GDLC,GCSC,WAAY,KACZ,cAAe,KASjB,WANA,UDCC,WCCD,UM5qCA,WN8qCA,UACA,UANA,SM5qCI,UN8qCJ,SM3qCA,UN6qCA,SAQE,UAAW,IAGb,IMprCE,IAJF,INurCA,GAEA,GDLC,GCSC,WAAY,KACZ,cAAe,KASjB,WANA,UDCC,WCCD,UMvrCA,WNyrCA,UACA,UANA,SMxrCI,UN0rCJ,SMtrCA,UNwrCA,SMxrCU,UAAA,IACV,IAAA,GAAU,UAAA,KACV,IAAA,GAAU,UAAA,KACV,IAAA,GAAU,UAAA,KACV,IAAA,GAAU,UAAA,KACV,IAAA,GAAU,UAAA,KAOR,IADF,GPssCC,UAAA,KCSD,EMzsCE,OAAA,EAAA,EAAA,KAEA,MPosCD,cAAA,KO/rCC,UAAW,KAwOX,YAAa,IA1OX,YAAA,IPssCH,yBO7rCC,MNssCE,UAAW,MMjsCf,OAAA,MAEE,UAAA,IAKF,MP0rCC,KO1rCsB,QAAA,KP6rCtB,iBAAA,QO5rCsB,WP+rCtB,WAAA,KO9rCsB,YPisCtB,WAAA,MOhsCsB,aPmsCtB,WAAA,OOlsCsB,cPqsCtB,WAAA,QOlsCsB,aPqsCtB,YAAA,OOpsCsB,gBPusCtB,eAAA,UOtsCsB,gBPysCtB,eAAA,UOrsCC,iBPwsCD,eAAA,WQ3yCC,YR8yCD,MAAA,KCSD,cOpzCI,MAAA,QAHF,qBDwGF,qBP6sCC,MAAA,QCSD,cO3zCI,MAAA,QAHF,qBD2GF,qBPitCC,MAAA,QCSD,WOl0CI,MAAA,QAHF,kBD8GF,kBPqtCC,MAAA,QCSD,cOz0CI,MAAA,QAHF,qBDiHF,qBPytCC,MAAA,QCSD,aOh1CI,MAAA,QDwHF,oBAHF,oBExHE,MAAA,QACA,YR01CA,MAAO,KQx1CL,iBAAA,QAHF,mBF8HF,mBP2tCC,iBAAA,QCSD,YQ/1CI,iBAAA,QAHF,mBFiIF,mBP+tCC,iBAAA,QCSD,SQt2CI,iBAAA,QAHF,gBFoIF,gBPmuCC,iBAAA,QCSD,YQ72CI,iBAAA,QAHF,mBFuIF,mBPuuCC,iBAAA,QCSD,WQp3CI,iBAAA,QF6IF,kBADF,kBAEE,iBAAA,QPsuCD,aO7tCC,eAAgB,INsuChB,OAAQ,KAAK,EAAE,KMpuCf,cAAA,IAAA,MAAA,KAFF,GPkuCC,GCSC,WAAY,EACZ,cAAe,KM9tCf,MP0tCD,MO3tCD,MAPI,MASF,cAAA,EAIF,eALE,aAAA,EACA,WAAA,KPkuCD,aO9tCC,aAAc,EAKZ,YAAA,KACA,WAAA,KP6tCH,gBOvtCC,QAAS,aACT,cAAA,IACA,aAAA,IAEF,GNguCE,WAAY,EM9tCZ,cAAA,KAGA,GADF,GP0tCC,YAAA,WOttCC,GPytCD,YAAA,IOnnCD,GAvFM,YAAA,EAEA,yBACA,kBGtNJ,MAAA,KACA,MAAA,MACA,SAAA,OVq6CC,MAAA,KO7nCC,WAAY,MAhFV,cAAA,SPgtCH,YAAA,OOtsCD,kBNgtCE,YAAa,OM1sCjB,0BPssCC,YOrsCC,OAAA,KA9IqB,cAAA,IAAA,OAAA,KAmJvB,YACE,UAAA,IACA,eAAA,UAEA,WPssCD,QAAA,KAAA,KOjsCG,OAAA,EAAA,EAAA,KN0sCF,UAAW,OACX,YAAa,IAAI,MAAM,KMptCzB,yBP+sCC,wBO/sCD,yBNytCE,cAAe,EMnsCb,kBAFA,kBACA,iBPksCH,QAAA,MO/rCG,UAAA,INwsCF,YAAa,WACb,MAAO,KMhsCT,yBP2rCC,yBO3rCD,wBAEE,QAAA,cAEA,oBACA,sBACA,cAAA,KP6rCD,aAAA,EOvrCG,WAAA,MNgsCF,aAAc,IAAI,MAAM,KACxB,YAAa,EMhsCX,kCNksCJ,kCMnsCe,iCACX,oCNmsCJ,oCDLC,mCCUC,QAAS,GMjsCX,iCNmsCA,iCMzsCM,gCAOJ,mCNmsCF,mCDLC,kCO7rCC,QAAA,cPksCD,QWv+CC,cAAe,KVg/Cf,WAAY,OACZ,YAAa,WU7+Cb,KXy+CD,IWr+CD,IACE,KACA,YAAA,MAAA,OAAA,SAAA,cAAA,UAEA,KACA,QAAA,IAAA,IXu+CD,UAAA,IWn+CC,MAAO,QACP,iBAAA,QACA,cAAA,IAEA,IACA,QAAA,IAAA,IACA,UAAA,IV4+CA,MU5+CA,KXq+CD,iBAAA,KW3+CC,cAAe,IASb,mBAAA,MAAA,EAAA,KAAA,EAAA,gBACA,WAAA,MAAA,EAAA,KAAA,EAAA,gBAEA,QV6+CF,QU7+CE,EXq+CH,UAAA,KWh+CC,YAAa,IACb,mBAAA,KACA,WAAA,KAEA,IACA,QAAA,MACA,QAAA,MACA,OAAA,EAAA,EAAA,KACA,UAAA,KACA,YAAA,WACA,MAAA,KACA,WAAA,UXk+CD,UAAA,WW7+CC,iBAAkB,QAehB,OAAA,IAAA,MAAA,KACA,cAAA,IAEA,SACA,QAAA,EACA,UAAA,QXi+CH,MAAA,QW59CC,YAAa,SACb,iBAAA,YACA,cAAA,EC1DF,gBCHE,WAAA,MACA,WAAA,OAEA,Wb8hDD,cAAA,KYxhDC,aAAA,KAqEA,aAAc,KAvEZ,YAAA,KZ+hDH,yBY1hDC,WAkEE,MAAO,OZ69CV,yBY5hDC,WA+DE,MAAO,OZk+CV,0BYzhDC,WCvBA,MAAA,QAGA,iBbmjDD,cAAA,KYthDC,aAAc,KCvBd,aAAA,KACA,YAAA,KCAE,KACE,aAAA,MAEA,YAAA,MAGA,UAAA,WAAA,WAAA,WAAA,UAAA,UAAA,UAAA,UAAA,UAAA,UAAA,UAAA,UAAA,UAAA,WAAA,WAAA,WAAA,UAAA,UAAA,UAAA,UAAA,UAAA,UAAA,UAAA,UAAA,UAAA,WAAA,WAAA,WAAA,UAAA,UAAA,UAAA,UAAA,UAAA,UAAA,UAAA,UAAA,UAAA,WAAA,WAAA,WAAA,UAAA,UAAA,UAAA,UAAA,UAAA,UAAA,UAAA,UdgjDL,SAAA,SchiDG,WAAA,IACE,cAAA,KdkiDL,aAAA,Kc1hDG,UAAA,WAAA,WAAA,WAAA,UAAA,UAAA,UAAA,UAAA,UAAA,UAAA,UAAA,Ud6hDH,MAAA,Kc7hDG,WdgiDH,MAAA,KchiDG,WdmiDH,MAAA,acniDG,WdsiDH,MAAA,actiDG,UdyiDH,MAAA,IcziDG,Ud4iDH,MAAA,ac5iDG,Ud+iDH,MAAA,ac/iDG,UdkjDH,MAAA,IcljDG,UdqjDH,MAAA,acrjDG,UdwjDH,MAAA,acxjDG,Ud2jDH,MAAA,Ic3jDG,Ud8jDH,MAAA,ac/iDG,UdkjDH,MAAA,YcljDG,gBdqjDH,MAAA,KcrjDG,gBdwjDH,MAAA,acxjDG,gBd2jDH,MAAA,ac3jDG,ed8jDH,MAAA,Ic9jDG,edikDH,MAAA,acjkDG,edokDH,MAAA,acpkDG,edukDH,MAAA,IcvkDG,ed0kDH,MAAA,ac1kDG,ed6kDH,MAAA,ac7kDG,edglDH,MAAA,IchlDG,edmlDH,MAAA,ac9kDG,edilDH,MAAA,YchmDG,edmmDH,MAAA,KcnmDG,gBdsmDH,KAAA,KctmDG,gBdymDH,KAAA,aczmDG,gBd4mDH,KAAA,ac5mDG,ed+mDH,KAAA,Ic/mDG,edknDH,KAAA,aclnDG,edqnDH,KAAA,acrnDG,edwnDH,KAAA,IcxnDG,ed2nDH,KAAA,ac3nDG,ed8nDH,KAAA,ac9nDG,edioDH,KAAA,IcjoDG,edooDH,KAAA,ac/nDG,edkoDH,KAAA,YcnnDG,edsnDH,KAAA,KctnDG,kBdynDH,YAAA,KcznDG,kBd4nDH,YAAA,ac5nDG,kBd+nDH,YAAA,ac/nDG,iBdkoDH,YAAA,IcloDG,iBdqoDH,YAAA,acroDG,iBdwoDH,YAAA,acxoDG,iBd2oDH,YAAA,Ic3oDG,iBd8oDH,YAAA,ac9oDG,iBdipDH,YAAA,acjpDG,iBdopDH,YAAA,IcppDG,iBdupDH,YAAA,acvpDG,iBd0pDH,YAAA,Yc5rDG,iBACE,YAAA,EAOJ,yBACE,UAAA,WAAA,WAAA,WAAA,UAAA,UAAA,UAAA,UAAA,UAAA,UAAA,UAAA,Ud0rDD,MAAA,Kc1rDC,Wd6rDD,MAAA,Kc7rDC,WdgsDD,MAAA,achsDC,WdmsDD,MAAA,acnsDC,UdssDD,MAAA,IctsDC,UdysDD,MAAA,aczsDC,Ud4sDD,MAAA,ac5sDC,Ud+sDD,MAAA,Ic/sDC,UdktDD,MAAA,acltDC,UdqtDD,MAAA,acrtDC,UdwtDD,MAAA,IcxtDC,Ud2tDD,MAAA,ac5sDC,Ud+sDD,MAAA,Yc/sDC,gBdktDD,MAAA,KcltDC,gBdqtDD,MAAA,acrtDC,gBdwtDD,MAAA,acxtDC,ed2tDD,MAAA,Ic3tDC,ed8tDD,MAAA,ac9tDC,ediuDD,MAAA,acjuDC,edouDD,MAAA,IcpuDC,eduuDD,MAAA,acvuDC,ed0uDD,MAAA,ac1uDC,ed6uDD,MAAA,Ic7uDC,edgvDD,MAAA,ac3uDC,ed8uDD,MAAA,Yc7vDC,edgwDD,MAAA,KchwDC,gBdmwDD,KAAA,KcnwDC,gBdswDD,KAAA,actwDC,gBdywDD,KAAA,aczwDC,ed4wDD,KAAA,Ic5wDC,ed+wDD,KAAA,ac/wDC,edkxDD,KAAA,aclxDC,edqxDD,KAAA,IcrxDC,edwxDD,KAAA,acxxDC,ed2xDD,KAAA,ac3xDC,ed8xDD,KAAA,Ic9xDC,ediyDD,KAAA,ac5xDC,ed+xDD,KAAA,YchxDC,edmxDD,KAAA,KcnxDC,kBdsxDD,YAAA,KctxDC,kBdyxDD,YAAA,aczxDC,kBd4xDD,YAAA,ac5xDC,iBd+xDD,YAAA,Ic/xDC,iBdkyDD,YAAA,aclyDC,iBdqyDD,YAAA,acryDC,iBdwyDD,YAAA,IcxyDC,iBd2yDD,YAAA,ac3yDC,iBd8yDD,YAAA,ac9yDC,iBdizDD,YAAA,IcjzDC,iBdozDD,YAAA,acpzDC,iBduzDD,YAAA,YY9yDD,iBE3CE,YAAA,GAQF,yBACE,UAAA,WAAA,WAAA,WAAA,UAAA,UAAA,UAAA,UAAA,UAAA,UAAA,UAAA,Udw1DD,MAAA,Kcx1DC,Wd21DD,MAAA,Kc31DC,Wd81DD,MAAA,ac91DC,Wdi2DD,MAAA,acj2DC,Udo2DD,MAAA,Icp2DC,Udu2DD,MAAA,acv2DC,Ud02DD,MAAA,ac12DC,Ud62DD,MAAA,Ic72DC,Udg3DD,MAAA,ach3DC,Udm3DD,MAAA,acn3DC,Uds3DD,MAAA,Ict3DC,Udy3DD,MAAA,ac12DC,Ud62DD,MAAA,Yc72DC,gBdg3DD,MAAA,Kch3DC,gBdm3DD,MAAA,acn3DC,gBds3DD,MAAA,act3DC,edy3DD,MAAA,Icz3DC,ed43DD,MAAA,ac53DC,ed+3DD,MAAA,ac/3DC,edk4DD,MAAA,Icl4DC,edq4DD,MAAA,acr4DC,edw4DD,MAAA,acx4DC,ed24DD,MAAA,Ic34DC,ed84DD,MAAA,acz4DC,ed44DD,MAAA,Yc35DC,ed85DD,MAAA,Kc95DC,gBdi6DD,KAAA,Kcj6DC,gBdo6DD,KAAA,acp6DC,gBdu6DD,KAAA,acv6DC,ed06DD,KAAA,Ic16DC,ed66DD,KAAA,ac76DC,edg7DD,KAAA,ach7DC,edm7DD,KAAA,Icn7DC,eds7DD,KAAA,act7DC,edy7DD,KAAA,acz7DC,ed47DD,KAAA,Ic57DC,ed+7DD,KAAA,ac17DC,ed67DD,KAAA,Yc96DC,edi7DD,KAAA,Kcj7DC,kBdo7DD,YAAA,Kcp7DC,kBdu7DD,YAAA,acv7DC,kBd07DD,YAAA,ac17DC,iBd67DD,YAAA,Ic77DC,iBdg8DD,YAAA,ach8DC,iBdm8DD,YAAA,acn8DC,iBds8DD,YAAA,Ict8DC,iBdy8DD,YAAA,acz8DC,iBd48DD,YAAA,ac58DC,iBd+8DD,YAAA,Ic/8DC,iBdk9DD,YAAA,acl9DC,iBdq9DD,YAAA,YYz8DD,iBE9CE,YAAA,GAQF,0BACE,UAAA,WAAA,WAAA,WAAA,UAAA,UAAA,UAAA,UAAA,UAAA,UAAA,UAAA,Uds/DD,MAAA,Kct/DC,Wdy/DD,MAAA,Kcz/DC,Wd4/DD,MAAA,ac5/DC,Wd+/DD,MAAA,ac//DC,UdkgED,MAAA,IclgEC,UdqgED,MAAA,acrgEC,UdwgED,MAAA,acxgEC,Ud2gED,MAAA,Ic3gEC,Ud8gED,MAAA,ac9gEC,UdihED,MAAA,acjhEC,UdohED,MAAA,IcphEC,UduhED,MAAA,acxgEC,Ud2gED,MAAA,Yc3gEC,gBd8gED,MAAA,Kc9gEC,gBdihED,MAAA,acjhEC,gBdohED,MAAA,acphEC,eduhED,MAAA,IcvhEC,ed0hED,MAAA,ac1hEC,ed6hED,MAAA,ac7hEC,edgiED,MAAA,IchiEC,edmiED,MAAA,acniEC,edsiED,MAAA,actiEC,edyiED,MAAA,IcziEC,ed4iED,MAAA,acviEC,ed0iED,MAAA,YczjEC,ed4jED,MAAA,Kc5jEC,gBd+jED,KAAA,Kc/jEC,gBdkkED,KAAA,aclkEC,gBdqkED,KAAA,acrkEC,edwkED,KAAA,IcxkEC,ed2kED,KAAA,ac3kEC,ed8kED,KAAA,ac9kEC,edilED,KAAA,IcjlEC,edolED,KAAA,acplEC,edulED,KAAA,acvlEC,ed0lED,KAAA,Ic1lEC,ed6lED,KAAA,acxlEC,ed2lED,KAAA,Yc5kEC,ed+kED,KAAA,Kc/kEC,kBdklED,YAAA,KcllEC,kBdqlED,YAAA,acrlEC,kBdwlED,YAAA,acxlEC,iBd2lED,YAAA,Ic3lEC,iBd8lED,YAAA,ac9lEC,iBdimED,YAAA,acjmEC,iBdomED,YAAA,IcpmEC,iBdumED,YAAA,acvmEC,iBd0mED,YAAA,ac1mEC,iBd6mED,YAAA,Ic7mEC,iBdgnED,YAAA,achnEC,iBdmnED,YAAA,YetrED,iBACA,YAAA,GAGA,MACA,iBAAA,YAEA,QfyrED,YAAA,IevrEC,eAAgB,IAChB,MAAA,KfyrED,WAAA,KelrEC,GACA,WAAA,KfsrED,OexrEC,MAAO,KdmsEP,UAAW,KACX,cAAe,KcvrET,mBd0rER,mBczrEQ,mBAHA,mBACA,mBd0rER,mBDHC,QAAA,IensEC,YAAa,WAoBX,eAAA,IACA,WAAA,IAAA,MAAA,KArBJ,mBdktEE,eAAgB,OAChB,cAAe,IAAI,MAAM,KDJ1B,uCCMD,uCcrtEA,wCdstEA,wCclrEI,2CANI,2CforEP,WAAA,EezqEG,mBf4qEH,WAAA,IAAA,MAAA,KCWD,cACE,iBAAkB,Kc/pEpB,6BdkqEA,6BcjqEE,6BAZM,6BfsqEP,6BCMD,6BDHC,QAAA,ICWD,gBACE,OAAQ,IAAI,MAAM,Kc1qEpB,4Bd6qEA,4Bc7qEA,4BAQQ,4Bf8pEP,4BCMD,4Bc7pEM,OAAA,IAAA,MAAA,KAYF,4BAFJ,4BfopEC,oBAAA,IevoEG,yCf0oEH,iBAAA,QehoEC,4BACA,iBAAA,QfooED,uBe9nEG,SAAA,OdyoEF,QAAS,acxoEL,MAAA,KAEA,sBfioEL,sBgB7wEC,SAAA,OfwxEA,QAAS,WACT,MAAO,KAST,0BerxEE,0Bf+wEF,0BAGA,0BexxEM,0BAMJ,0BfgxEF,0BAGA,0BACA,0BDNC,0BCAD,0BAGA,0BASE,iBAAkB,QDLnB,sCgBlyEC,sCAAA,oCfyyEF,sCetxEM,sCf2xEJ,iBAAkB,QASpB,2Be1yEE,2BfoyEF,2BAGA,2Be7yEM,2BAMJ,2BfqyEF,2BAGA,2BACA,2BDNC,2BCAD,2BAGA,2BASE,iBAAkB,QDLnB,uCgBvzEC,uCAAA,qCf8zEF,uCe3yEM,uCfgzEJ,iBAAkB,QASpB,wBe/zEE,wBfyzEF,wBAGA,wBel0EM,wBAMJ,wBf0zEF,wBAGA,wBACA,wBDNC,wBCAD,wBAGA,wBASE,iBAAkB,QDLnB,oCgB50EC,oCAAA,kCfm1EF,oCeh0EM,oCfq0EJ,iBAAkB,QASpB,2Bep1EE,2Bf80EF,2BAGA,2Bev1EM,2BAMJ,2Bf+0EF,2BAGA,2BACA,2BDNC,2BCAD,2BAGA,2BASE,iBAAkB,QDLnB,uCgBj2EC,uCAAA,qCfw2EF,uCer1EM,uCf01EJ,iBAAkB,QASpB,0Bez2EE,0Bfm2EF,0BAGA,0Be52EM,0BAMJ,0Bfo2EF,0BAGA,0BACA,0BDNC,0BCAD,0BAGA,0BASE,iBAAkB,QDLnB,sCehtEC,sCADF,oCdwtEA,sCe12EM,sCDoJJ,iBAAA,QA6DF,kBACE,WAAY,KA3DV,WAAA,KAEA,oCACA,kBACA,MAAA,KfotED,cAAA,Ke7pEC,WAAY,OAnDV,mBAAA,yBfmtEH,OAAA,IAAA,MAAA,KCWD,yBACE,cAAe,Ec5qEjB,qCd+qEA,qCcjtEI,qCARM,qCfktET,qCCMD,qCDHC,YAAA,OCWD,kCACE,OAAQ,EcvrEV,0Dd0rEA,0Dc1rEA,0DAzBU,0Df4sET,0DCMD,0DAME,YAAa,Ec/rEf,yDdksEA,yDclsEA,yDArBU,yDfgtET,yDCMD,yDAME,aAAc,EDLjB,yDe1sEW,yDEzNV,yDjBk6EC,yDiBj6ED,cAAA,GAMA,SjBk6ED,UAAA,EiB/5EC,QAAS,EACT,OAAA,EACA,OAAA,EAEA,OACA,QAAA,MACA,MAAA,KACA,QAAA,EACA,cAAA,KACA,UAAA,KjBi6ED,YAAA,QiB95EC,MAAO,KACP,OAAA,EACA,cAAA,IAAA,MAAA,QAEA,MjBg6ED,QAAA,aiBr5EC,UAAW,Kb4BX,cAAA,IACG,YAAA,IJ63EJ,mBiBr5EC,mBAAoB,WhBg6EjB,gBAAiB,WgB95EpB,WAAA,WjBy5ED,qBiBv5EC,kBAGA,OAAQ,IAAI,EAAE,EACd,WAAA,MjBs5ED,YAAA,OiBj5EC,iBACA,QAAA,MAIF,kBhB25EE,QAAS,MgBz5ET,MAAA,KAIF,iBAAA,ahB05EE,OAAQ,KI99ER,uBY2EF,2BjB64EC,wBiB54EC,QAAA,IAAA,KAAA,yBACA,eAAA,KAEA,OACA,QAAA,MjB+4ED,YAAA,IiBr3EC,UAAW,KACX,YAAA,WACA,MAAA,KAEA,cACA,QAAA,MACA,MAAA,KACA,OAAA,KACA,QAAA,IAAA,KACA,UAAA,KACA,YAAA,WACA,MAAA,KbxDA,iBAAA,KACQ,iBAAA,KAyHR,OAAA,IAAA,MAAA,KACK,cAAA,IACG,mBAAA,MAAA,EAAA,IAAA,IAAA,iBJwzET,WAAA,MAAA,EAAA,IAAA,IAAA,iBkBh8EC,mBAAA,aAAA,YAAA,KAAA,mBAAA,YAAA,KACE,cAAA,aAAA,YAAA,KAAA,WAAA,YAAA,KACA,WAAA,aAAA,YAAA,KAAA,WAAA,YAAA,KdWM,oBJy7ET,aAAA,QIx5EC,QAAA,EACE,mBAAA,MAAA,EAAA,IAAA,IAAA,iBAAA,EAAA,EAAA,IAAA,qBACA,WAAA,MAAA,EAAA,IAAA,IAAA,iBAAA,EAAA,EAAA,IAAA,qBAEF,gCAA0B,MAAA,KJ25E3B,QAAA,EI15EiC,oCJ65EjC,MAAA,KiBh4EG,yCACA,MAAA,KAQF,0BhBs4EA,iBAAkB,YAClB,OAAQ,EgBn4EN,wBjB63EH,wBiB13EC,iChBq4EA,iBAAkB,KgBn4EhB,QAAA,EAIF,wBACE,iCjB03EH,OAAA,YiB72EC,sBjBg3ED,OAAA,KiB91EG,mBhB02EF,mBAAoB,KAEtB,qDgB32EM,8BjBo2EH,8BiBj2EC,wCAAA,+BhB62EA,YAAa,KgB32EX,iCjBy2EH,iCiBt2EC,2CAAA,kChB02EF,0BACA,0BACA,oCACA,2BAKE,YAAa,KgBh3EX,iCjB82EH,iCACF,2CiBp2EC,kChBu2EA,0BACA,0BACA,oCACA,2BgBz2EA,YAAA,MhBi3EF,YgBv2EE,cAAA,KAGA,UADA,OjBi2ED,SAAA,SiBr2EC,QAAS,MhBg3ET,WAAY,KgBx2EV,cAAA,KAGA,gBADA,aAEA,WAAA,KjBi2EH,aAAA,KiB91EC,cAAe,EhBy2Ef,YAAa,IACb,OAAQ,QgBp2ER,+BjBg2ED,sCiBl2EC,yBACA,gCAIA,SAAU,ShBw2EV,WAAY,MgBt2EZ,YAAA,MAIF,oBAAA,cAEE,WAAA,KAGA,iBADA,cAEA,SAAA,SACA,QAAA,aACA,aAAA,KjB61ED,cAAA,EiB31EC,YAAa,IhBs2Eb,eAAgB,OgBp2EhB,OAAA,QAUA,kCjBo1ED,4BCWC,WAAY,EACZ,YAAa,KgBv1Eb,wCAAA,qCjBm1ED,8BCOD,+BgBh2EI,2BhB+1EJ,4BAME,OAAQ,YDNT,0BiBv1EG,uBAMF,oCAAA,iChB61EA,OAAQ,YDNT,yBiBp1EK,sBAaJ,mCAFF,gCAGE,OAAA,YAGA,qBjBy0ED,WAAA,KiBv0EC,YAAA,IhBk1EA,eAAgB,IgBh1Ed,cAAA,EjB00EH,8BiB5zED,8BCnQE,cAAA,EACA,aAAA,EAEA,UACA,OAAA,KlBkkFD,QAAA,IAAA,KkBhkFC,UAAA,KACE,YAAA,IACA,cAAA,IAGF,gBjB0kFA,OAAQ,KiBxkFN,YAAA,KD2PA,0BAFJ,kBAGI,OAAA,KAEA,6BACA,OAAA,KjBy0EH,QAAA,IAAA,KiB/0EC,UAAW,KAST,YAAA,IACA,cAAA,IAVJ,mChB81EE,OAAQ,KgBh1EN,YAAA,KAGA,6CAjBJ,qCAkBI,OAAA,KAEA,oCACA,OAAA,KjBy0EH,WAAA,KiBr0EC,QAAS,IAAI,KC/Rb,UAAA,KACA,YAAA,IAEA,UACA,OAAA,KlBumFD,QAAA,KAAA,KkBrmFC,UAAA,KACE,YAAA,UACA,cAAA,IAGF,gBjB+mFA,OAAQ,KiB7mFN,YAAA,KDuRA,0BAFJ,kBAGI,OAAA,KAEA,6BACA,OAAA,KjBk1EH,QAAA,KAAA,KiBx1EC,UAAW,KAST,YAAA,UACA,cAAA,IAVJ,mChBu2EE,OAAQ,KgBz1EN,YAAA,KAGA,6CAjBJ,qCAkBI,OAAA,KAEA,oCACA,OAAA,KjBk1EH,WAAA,KiBz0EC,QAAS,KAAK,KAEd,UAAA,KjB00ED,YAAA,UiBt0EG,cjBy0EH,SAAA,SiBp0EC,4BACA,cAAA,OAEA,uBACA,SAAA,SACA,IAAA,EACA,MAAA,EACA,QAAA,EACA,QAAA,MACA,MAAA,KjBu0ED,OAAA,KiBr0EC,YAAa,KhBg1Eb,WAAY,OACZ,eAAgB,KDLjB,oDiBv0EC,uCADA,iCAGA,MAAO,KhBg1EP,OAAQ,KACR,YAAa,KDLd,oDiBv0EC,uCADA,iCAKA,MAAO,KhB80EP,OAAQ,KACR,YAAa,KAKf,uBAEA,8BAJA,4BADA,yBAEA,oBAEA,2BDNC,4BkBruFG,mCAJA,yBD0ZJ,gCbvWE,MAAA,QJ2rFD,2BkBxuFG,aAAA,QACE,mBAAA,MAAA,EAAA,IAAA,IAAA,iBd4CJ,WAAA,MAAA,EAAA,IAAA,IAAA,iBJgsFD,iCiBz1EC,aAAc,QC5YZ,mBAAA,MAAA,EAAA,IAAA,IAAA,iBAAA,EAAA,EAAA,IAAA,QACA,WAAA,MAAA,EAAA,IAAA,IAAA,iBAAA,EAAA,EAAA,IAAA,QlByuFH,gCiB91EC,MAAO,QCtYL,iBAAA,QlBuuFH,aAAA,QCWD,oCACE,MAAO,QAKT,uBAEA,8BAJA,4BADA,yBAEA,oBAEA,2BDNC,4BkBnwFG,mCAJA,yBD6ZJ,gCb1WE,MAAA,QJytFD,2BkBtwFG,aAAA,QACE,mBAAA,MAAA,EAAA,IAAA,IAAA,iBd4CJ,WAAA,MAAA,EAAA,IAAA,IAAA,iBJ8tFD,iCiBp3EC,aAAc,QC/YZ,mBAAA,MAAA,EAAA,IAAA,IAAA,iBAAA,EAAA,EAAA,IAAA,QACA,WAAA,MAAA,EAAA,IAAA,IAAA,iBAAA,EAAA,EAAA,IAAA,QlBuwFH,gCiBz3EC,MAAO,QCzYL,iBAAA,QlBqwFH,aAAA,QCWD,oCACE,MAAO,QAKT,qBAEA,4BAJA,0BADA,uBAEA,kBAEA,yBDNC,0BkBjyFG,iCAJA,uBDgaJ,8Bb7WE,MAAA,QJuvFD,yBkBpyFG,aAAA,QACE,mBAAA,MAAA,EAAA,IAAA,IAAA,iBd4CJ,WAAA,MAAA,EAAA,IAAA,IAAA,iBJ4vFD,+BiB/4EC,aAAc,QClZZ,mBAAA,MAAA,EAAA,IAAA,IAAA,iBAAA,EAAA,EAAA,IAAA,QACA,WAAA,MAAA,EAAA,IAAA,IAAA,iBAAA,EAAA,EAAA,IAAA,QlBqyFH,8BiBp5EC,MAAO,QC5YL,iBAAA,QlBmyFH,aAAA,QiB/4EG,kCjBk5EH,MAAA,QiB/4EG,2CjBk5EH,IAAA,KiBv4EC,mDACA,IAAA,EAEA,YjB04ED,QAAA,MiBvzEC,WAAY,IAwEZ,cAAe,KAtIX,MAAA,QAEA,yBjBy3EH,yBiBrvEC,QAAS,aA/HP,cAAA,EACA,eAAA,OjBw3EH,2BiB1vEC,QAAS,aAxHP,MAAA,KjBq3EH,eAAA,OiBj3EG,kCACA,QAAA,aAmHJ,0BhB4wEE,QAAS,aACT,eAAgB,OgBr3Ed,wCjB82EH,6CiBtwED,2CjBywEC,MAAA,KiB72EG,wCACA,MAAA,KAmGJ,4BhBwxEE,cAAe,EgBp3Eb,eAAA,OAGA,uBADA,oBjB82EH,QAAA,aiBpxEC,WAAY,EhB+xEZ,cAAe,EgBr3EX,eAAA,OAsFN,6BAAA,0BAjFI,aAAA,EAiFJ,4CjB6xEC,sCiBx2EG,SAAA,SjB22EH,YAAA,EiBh2ED,kDhB42EE,IAAK,GgBl2EL,2BjB+1EH,kCiBh2EG,wBAEA,+BAXF,YAAa,IhBo3Eb,WAAY,EgBn2EV,cAAA,EJviBF,2BIshBF,wBJrhBE,WAAA,KI4jBA,6BAyBA,aAAc,MAnCV,YAAA,MAEA,yBjBw1EH,gCACF,YAAA,IiBx3EG,cAAe,EAwCf,WAAA,OAwBJ,sDAdQ,MAAA,KjB80EL,yBACF,+CiBn0EC,YAAA,KAEE,UAAW,MjBs0EZ,yBACF,+CmBp6FG,YAAa,IACf,UAAA,MAGA,KACA,QAAA,aACA,QAAA,IAAA,KAAA,cAAA,EACA,UAAA,KACA,YAAA,IACA,YAAA,WACA,WAAA,OC0CA,YAAA,OACA,eAAA,OACA,iBAAA,aACA,aAAA,ahB+JA,OAAA,QACG,oBAAA,KACC,iBAAA,KACI,gBAAA,KJ+tFT,YAAA,KmBv6FG,iBAAA,KlBm7FF,OAAQ,IAAI,MAAM,YAClB,cAAe,IkB96Ff,kBdzBA,kBACA,WLk8FD,kBCOD,kBADA,WAME,QAAS,IAAI,KAAK,yBAClB,eAAgB,KkBh7FhB,WnBy6FD,WmB56FG,WlBw7FF,MAAO,KkBn7FL,gBAAA,Kf6BM,YADR,YJk5FD,iBAAA,KmBz6FC,QAAA,ElBq7FA,mBAAoB,MAAM,EAAE,IAAI,IAAI,iBAC5B,WAAY,MAAM,EAAE,IAAI,IAAI,iBoBh+FpC,cAGA,ejB8DA,wBACQ,OAAA,YJ05FT,OAAA,kBmBz6FG,mBAAA,KlBq7FM,WAAY,KkBn7FhB,QAAA,IASN,eC3DE,yBACA,eAAA,KpBi+FD,aoB99FC,MAAA,KnB0+FA,iBAAkB,KmBx+FhB,aAAA,KpBk+FH,mBoBh+FO,mBAEN,MAAA,KACE,iBAAA,QACA,aAAA,QpBi+FH,mBoB99FC,MAAA,KnB0+FA,iBAAkB,QAClB,aAAc,QmBt+FR,oBADJ,oBpBi+FH,mCoB99FG,MAAA,KnB0+FF,iBAAkB,QAClB,aAAc,QmBt+FN,0BnB4+FV,0BAHA,0BmB1+FM,0BnB4+FN,0BAHA,0BDFC,yCoBx+FK,yCnB4+FN,yCmBv+FE,MAAA,KnB++FA,iBAAkB,QAClB,aAAc,QmBx+FZ,oBpBg+FH,oBoBh+FG,mCnB6+FF,iBAAkB,KmBz+FV,4BnB8+FV,4BAHA,4BDHC,6BCOD,6BAHA,6BkB39FA,sCClBM,sCnB8+FN,sCmBx+FI,iBAAA,KACA,aAAA,KDcJ,oBC9DE,MAAA,KACA,iBAAA,KpB0hGD,aoBvhGC,MAAA,KnBmiGA,iBAAkB,QmBjiGhB,aAAA,QpB2hGH,mBoBzhGO,mBAEN,MAAA,KACE,iBAAA,QACA,aAAA,QpB0hGH,mBoBvhGC,MAAA,KnBmiGA,iBAAkB,QAClB,aAAc,QmB/hGR,oBADJ,oBpB0hGH,mCoBvhGG,MAAA,KnBmiGF,iBAAkB,QAClB,aAAc,QmB/hGN,0BnBqiGV,0BAHA,0BmBniGM,0BnBqiGN,0BAHA,0BDFC,yCoBjiGK,yCnBqiGN,yCmBhiGE,MAAA,KnBwiGA,iBAAkB,QAClB,aAAc,QmBjiGZ,oBpByhGH,oBoBzhGG,mCnBsiGF,iBAAkB,KmBliGV,4BnBuiGV,4BAHA,4BDHC,6BCOD,6BAHA,6BkBjhGA,sCCrBM,sCnBuiGN,sCmBjiGI,iBAAA,QACA,aAAA,QDkBJ,oBClEE,MAAA,QACA,iBAAA,KpBmlGD,aoBhlGC,MAAA,KnB4lGA,iBAAkB,QmB1lGhB,aAAA,QpBolGH,mBoBllGO,mBAEN,MAAA,KACE,iBAAA,QACA,aAAA,QpBmlGH,mBoBhlGC,MAAA,KnB4lGA,iBAAkB,QAClB,aAAc,QmBxlGR,oBADJ,oBpBmlGH,mCoBhlGG,MAAA,KnB4lGF,iBAAkB,QAClB,aAAc,QmBxlGN,0BnB8lGV,0BAHA,0BmB5lGM,0BnB8lGN,0BAHA,0BDFC,yCoB1lGK,yCnB8lGN,yCmBzlGE,MAAA,KnBimGA,iBAAkB,QAClB,aAAc,QmB1lGZ,oBpBklGH,oBoBllGG,mCnB+lGF,iBAAkB,KmB3lGV,4BnBgmGV,4BAHA,4BDHC,6BCOD,6BAHA,6BkBtkGA,sCCzBM,sCnBgmGN,sCmB1lGI,iBAAA,QACA,aAAA,QDsBJ,oBCtEE,MAAA,QACA,iBAAA,KpB4oGD,UoBzoGC,MAAA,KnBqpGA,iBAAkB,QmBnpGhB,aAAA,QpB6oGH,gBoB3oGO,gBAEN,MAAA,KACE,iBAAA,QACA,aAAA,QpB4oGH,gBoBzoGC,MAAA,KnBqpGA,iBAAkB,QAClB,aAAc,QmBjpGR,iBADJ,iBpB4oGH,gCoBzoGG,MAAA,KnBqpGF,iBAAkB,QAClB,aAAc,QmBjpGN,uBnBupGV,uBAHA,uBmBrpGM,uBnBupGN,uBAHA,uBDFC,sCoBnpGK,sCnBupGN,sCmBlpGE,MAAA,KnB0pGA,iBAAkB,QAClB,aAAc,QmBnpGZ,iBpB2oGH,iBoB3oGG,gCnBwpGF,iBAAkB,KmBppGV,yBnBypGV,yBAHA,yBDHC,0BCOD,0BAHA,0BkB3nGA,mCC7BM,mCnBypGN,mCmBnpGI,iBAAA,QACA,aAAA,QD0BJ,iBC1EE,MAAA,QACA,iBAAA,KpBqsGD,aoBlsGC,MAAA,KnB8sGA,iBAAkB,QmB5sGhB,aAAA,QpBssGH,mBoBpsGO,mBAEN,MAAA,KACE,iBAAA,QACA,aAAA,QpBqsGH,mBoBlsGC,MAAA,KnB8sGA,iBAAkB,QAClB,aAAc,QmB1sGR,oBADJ,oBpBqsGH,mCoBlsGG,MAAA,KnB8sGF,iBAAkB,QAClB,aAAc,QmB1sGN,0BnBgtGV,0BAHA,0BmB9sGM,0BnBgtGN,0BAHA,0BDFC,yCoB5sGK,yCnBgtGN,yCmB3sGE,MAAA,KnBmtGA,iBAAkB,QAClB,aAAc,QmB5sGZ,oBpBosGH,oBoBpsGG,mCnBitGF,iBAAkB,KmB7sGV,4BnBktGV,4BAHA,4BDHC,6BCOD,6BAHA,6BkBhrGA,sCCjCM,sCnBktGN,sCmB5sGI,iBAAA,QACA,aAAA,QD8BJ,oBC9EE,MAAA,QACA,iBAAA,KpB8vGD,YoB3vGC,MAAA,KnBuwGA,iBAAkB,QmBrwGhB,aAAA,QpB+vGH,kBoB7vGO,kBAEN,MAAA,KACE,iBAAA,QACA,aAAA,QpB8vGH,kBoB3vGC,MAAA,KnBuwGA,iBAAkB,QAClB,aAAc,QmBnwGR,mBADJ,mBpB8vGH,kCoB3vGG,MAAA,KnBuwGF,iBAAkB,QAClB,aAAc,QmBnwGN,yBnBywGV,yBAHA,yBmBvwGM,yBnBywGN,yBAHA,yBDFC,wCoBrwGK,wCnBywGN,wCmBpwGE,MAAA,KnB4wGA,iBAAkB,QAClB,aAAc,QmBrwGZ,mBpB6vGH,mBoB7vGG,kCnB0wGF,iBAAkB,KmBtwGV,2BnB2wGV,2BAHA,2BDHC,4BCOD,4BAHA,4BkBruGA,qCCrCM,qCnB2wGN,qCmBrwGI,iBAAA,QACA,aAAA,QDuCJ,mBACE,MAAA,QACA,iBAAA,KnB+tGD,UmB5tGC,YAAA,IlBwuGA,MAAO,QACP,cAAe,EAEjB,UGzwGE,iBemCE,iBflCM,oBJkwGT,6BmB7tGC,iBAAA,YlByuGA,mBAAoB,KACZ,WAAY,KkBtuGlB,UAEF,iBAAA,gBnB6tGD,gBmB3tGG,aAAA,YnBiuGH,gBmB/tGG,gBAIA,MAAA,QlBuuGF,gBAAiB,UACjB,iBAAkB,YDNnB,0BmBhuGK,0BAUN,mCATM,mClB2uGJ,MAAO,KmB1yGP,gBAAA,KAGA,mBADA,QpBmyGD,QAAA,KAAA,KmBztGC,UAAW,KlBquGX,YAAa,UmBjzGb,cAAA,IAGA,mBADA,QpB0yGD,QAAA,IAAA,KmB5tGC,UAAW,KlBwuGX,YAAa,ImBxzGb,cAAA,IAGA,mBADA,QpBizGD,QAAA,IAAA,ImB3tGC,UAAW,KACX,YAAA,IACA,cAAA,IAIF,WACE,QAAA,MnB2tGD,MAAA,KCYD,sBACE,WAAY,IqBz3GZ,6BADF,4BtBk3GC,6BI7rGC,MAAA,KAEQ,MJisGT,QAAA,EsBr3GC,mBAAA,QAAA,KAAA,OACE,cAAA,QAAA,KAAA,OtBu3GH,WAAA,QAAA,KAAA,OsBl3GC,StBq3GD,QAAA,EsBn3Ga,UtBs3Gb,QAAA,KsBr3Ga,atBw3Gb,QAAA,MsBv3Ga,etB03Gb,QAAA,UsBt3GC,kBACA,QAAA,gBlBwKA,YACQ,SAAA,SAAA,OAAA,EAOR,SAAA,OACQ,mCAAA,KAAA,8BAAA,KAGR,2BAAA,KACQ,4BAAA,KAAA,uBAAA,KJ2sGT,oBAAA,KuBr5GC,4BAA6B,OAAQ,WACrC,uBAAA,OAAA,WACA,oBAAA,OAAA,WAEA,OACA,QAAA,aACA,MAAA,EACA,OAAA,EACA,YAAA,IACA,eAAA,OvBu5GD,WAAA,IAAA,OuBn5GC,WAAY,IAAI,QtBk6GhB,aAAc,IAAI,MAAM,YsBh6GxB,YAAA,IAAA,MAAA,YAKA,UADF,QvBo5GC,SAAA,SuB94GC,uBACA,QAAA,EAEA,eACA,SAAA,SACA,IAAA,KACA,KAAA,EACA,QAAA,KACA,QAAA,KACA,MAAA,KACA,UAAA,MACA,QAAA,IAAA,EACA,OAAA,IAAA,EAAA,EACA,UAAA,KACA,WAAA,KACA,WAAA,KnBsBA,iBAAA,KACQ,wBAAA,YmBrBR,gBAAA,YtB+5GA,OsB/5GA,IAAA,MAAA,KvBk5GD,OAAA,IAAA,MAAA,gBuB74GC,cAAA,IACE,mBAAA,EAAA,IAAA,KAAA,iBACA,WAAA,EAAA,IAAA,KAAA,iBAzBJ,0BCzBE,MAAA,EACA,KAAA,KAEA,wBxBo8GD,OAAA,IuB96GC,OAAQ,IAAI,EAmCV,SAAA,OACA,iBAAA,QAEA,oBACA,QAAA,MACA,QAAA,IAAA,KACA,MAAA,KvB84GH,YAAA,IuBx4GC,YAAA,WtBw5GA,MAAO,KsBt5GL,YAAA,OvB44GH,0BuB14GG,0BAMF,MAAA,QtBo5GA,gBAAiB,KACjB,iBAAkB,QsBj5GhB,yBAEA,+BADA,+BvBu4GH,MAAA,KuB73GC,gBAAA,KtB64GA,iBAAkB,QAClB,QAAS,EDZV,2BuB33GC,iCAAA,iCAEE,MAAA,KEzGF,iCF2GE,iCAEA,gBAAA,KvB63GH,OAAA,YuBx3GC,iBAAkB,YAGhB,iBAAA,KvBw3GH,OAAA,0DuBn3GG,qBvBs3GH,QAAA,MuB72GC,QACA,QAAA,EAQF,qBACE,MAAA,EACA,KAAA,KAIF,oBACE,MAAA,KACA,KAAA,EAEA,iBACA,QAAA,MACA,QAAA,IAAA,KvBw2GD,UAAA,KuBp2GC,YAAa,WACb,MAAA,KACA,YAAA,OAEA,mBACA,SAAA,MACA,IAAA,EvBs2GD,MAAA,EuBl2GC,OAAQ,EACR,KAAA,EACA,QAAA,IAQF,2BtB42GE,MAAO,EsBx2GL,KAAA,KAEA,eACA,sCvB41GH,QAAA,GuBn2GC,WAAY,EtBm3GZ,cAAe,IAAI,OsBx2GjB,cAAA,IAAA,QAEA,uBvB41GH,8CuBv0GC,IAAK,KAXL,OAAA,KApEA,cAAA,IvB25GC,yBuBv1GD,6BA1DA,MAAA,EACA,KAAA,KvBq5GD,kC0BpiHG,MAAO,KzBojHP,KAAM,GyBhjHR,W1BsiHD,oB0B1iHC,SAAU,SzB0jHV,QAAS,ayBpjHP,eAAA,OAGA,yB1BsiHH,gBCgBC,SAAU,SACV,MAAO,KyB7iHT,gC1BsiHC,gCCYD,+BAFA,+ByBhjHA,uBANM,uBzBujHN,sBAFA,sBAQE,QAAS,EyBljHP,qB1BuiHH,2B0BliHD,2BACE,iC1BoiHD,YAAA,KCgBD,aACE,YAAa,KDZd,kB0B1iHD,wBAAA,0BzB2jHE,MAAO,KDZR,kB0B/hHD,wBACE,0B1BiiHD,YAAA,I0B5hHC,yE1B+hHD,cAAA,E2BhlHC,4BACG,YAAA,EDsDL,mEzB6iHE,wBAAyB,E0B5lHzB,2BAAA,E3BilHD,6C0B5hHD,8CACE,uBAAA,E1B8hHD,0BAAA,E0B3hHC,sB1B8hHD,MAAA,KCgBD,8D0B/mHE,cAAA,E3BomHD,mE0B3hHD,oECjEE,wBAAA,EACG,2BAAA,EDqEL,oEzB0iHE,uBAAwB,EyBxiHxB,0BAAA,EAiBF,mCACE,iCACA,QAAA,EAEF,iCACE,cAAA,IACA,aAAA,IAKF,oCtB/CE,cAAA,KACQ,aAAA,KsBkDR,iCtBnDA,mBAAA,MAAA,EAAA,IAAA,IAAA,iBACQ,WAAA,MAAA,EAAA,IAAA,IAAA,iBsByDV,0CACE,mBAAA,K1BugHD,WAAA,K0BngHC,YACA,YAAA,EAGF,eACE,aAAA,IAAA,IAAA,E1BqgHD,oBAAA,ECgBD,uBACE,aAAc,EAAE,IAAI,IyB1gHlB,yBACA,+BACA,oC1B+/GH,QAAA,M0BtgHC,MAAO,KAcH,MAAA,K1B2/GL,UAAA,KCgBD,oCACE,MAAO,KyBpgHL,8BACA,oC1By/GH,oC0Bp/GC,0CACE,WAAA,K1Bs/GH,YAAA,E2B/pHC,4DACC,cAAA,EAQA,sD3B4pHF,uBAAA,I0Bt/GC,wBAAA,IC/KA,2BAAA,EACC,0BAAA,EAQA,sD3BkqHF,uBAAA,E0Bv/GC,wBAAyB,EACzB,2BAAA,I1By/GD,0BAAA,ICgBD,uE0BtrHE,cAAA,E3B2qHD,4E0Bt/GD,6EC7LE,2BAAA,EACC,0BAAA,EDoMH,6EACE,uBAAA,EACA,wBAAA,EAEA,qB1Bo/GD,QAAA,M0Bx/GC,MAAO,KzBwgHP,aAAc,MyBjgHZ,gBAAA,SAEA,0B1Bq/GH,gC0B9/GC,QAAS,WAYP,MAAA,K1Bq/GH,MAAA,G0Bj/GG,qC1Bo/GH,MAAA,KCgBD,+CACE,KAAM,KyB7+GF,gDAFA,6C1Bs+GL,2D0Br+GK,wDEzOJ,SAAU,SACV,KAAA,cACA,eAAA,K5BitHD,a4B7sHC,SAAA,SACE,QAAA,MACA,gBAAA,S5BgtHH,0B4BxtHC,MAAO,KAeL,cAAA,EACA,aAAA,EAOA,2BACA,SAAA,S5BusHH,QAAA,E4BrsHG,MAAA,KACE,MAAA,K5BusHL,cAAA,ECgBD,iCACE,QAAS,EiBnrHT,8BACA,mCACA,sCACA,OAAA,KlBwqHD,QAAA,KAAA,KkBtqHC,UAAA,KjBsrHA,YAAa,UACb,cAAe,IiBrrHb,oClB0qHH,yCkBvqHC,4CjBurHA,OAAQ,KACR,YAAa,KDTd,8C4B/sHD,mDAAA,sD3B0tHA,sCACA,2CiBzrHI,8CjB8rHF,OAAQ,KiB1sHR,8BACA,mCACA,sCACA,OAAA,KlB+rHD,QAAA,IAAA,KkB7rHC,UAAA,KjB6sHA,YAAa,IACb,cAAe,IiB5sHb,oClBisHH,yCkB9rHC,4CjB8sHA,OAAQ,KACR,YAAa,KDTd,8C4B7tHD,mDAAA,sD3BwuHA,sCACA,2CiBhtHI,8CjBqtHF,OAAQ,K2BzuHR,2B5B6tHD,mB4B7tHC,iB3B8uHA,QAAS,W2BzuHX,8D5B6tHC,sD4B7tHD,oDAEE,cAAA,EAEA,mB5B+tHD,iB4B1tHC,MAAO,GACP,YAAA,OACA,eAAA,OAEA,mBACA,QAAA,IAAA,KACA,UAAA,KACA,YAAA,IACA,YAAA,EACA,MAAA,K5B4tHD,WAAA,O4BztHC,iBAAA,KACE,OAAA,IAAA,MAAA,KACA,cAAA,I5B4tHH,4B4BztHC,QAAA,IAAA,KACE,UAAA,KACA,cAAA,I5B4tHH,4B4B/uHC,QAAS,KAAK,K3B+vHd,UAAW,K2BruHT,cAAA,IAKJ,wCAAA,qC3BquHE,WAAY,EAEd,uCACA,+BACA,kC0B70HE,6CACG,8CC4GL,6D5BqtHC,wE4BptHC,wBAAA,E5ButHD,2BAAA,ECgBD,+BACE,aAAc,EAEhB,sCACA,8B2BhuHA,+D5BstHC,oDCWD,iC0Bl1HE,4CACG,6CCiHH,uBAAA,E5BwtHD,0BAAA,E4BltHC,8BAGA,YAAA,E5BotHD,iB4BxtHC,SAAU,SAUR,UAAA,E5BitHH,YAAA,O4B/sHK,sB5BktHL,SAAA,SCgBD,2BACE,YAAa,K2BxtHb,6BAAA,4B5B4sHD,4B4BzsHK,QAAA,EAGJ,kCAAA,wCAGI,aAAA,K5B4sHL,iC6B12HD,uCACE,QAAA,EACA,YAAA,K7B62HD,K6B/2HC,aAAc,EAOZ,cAAA,EACA,WAAA,KARJ,QAWM,SAAA,SACA,QAAA,M7B42HL,U6B12HK,SAAA,S5B03HJ,QAAS,M4Bx3HH,QAAA,KAAA,KAMJ,gB7Bu2HH,gB6Bt2HK,gBAAA,K7By2HL,iBAAA,KCgBD,mB4Br3HQ,MAAA,KAGA,yBADA,yB7B02HP,MAAA,K6Bl2HG,gBAAA,K5Bk3HF,OAAQ,YACR,iBAAkB,Y4B/2Hd,aAzCN,mB7B64HC,mBwBh5HC,iBAAA,KACA,aAAA,QAEA,kBxBm5HD,OAAA,I6Bn5HC,OAAQ,IAAI,EA0DV,SAAA,O7B41HH,iBAAA,Q6Bl1HC,c7Bq1HD,UAAA,K6Bn1HG,UAEA,cAAA,IAAA,MAAA,KALJ,aASM,MAAA,KACA,cAAA,KAEA,e7Bo1HL,aAAA,I6Bn1HK,YAAA,WACE,OAAA,IAAA,MAAA,Y7Bq1HP,cAAA,IAAA,IAAA,EAAA,ECgBD,qBACE,aAAc,KAAK,KAAK,K4B51HlB,sBAEA,4BADA,4BAEA,MAAA,K7Bi1HP,OAAA,Q6B50HC,iBAAA,KAqDA,OAAA,IAAA,MAAA,KA8BA,oBAAA,YAnFA,wBAwDE,MAAA,K7B2xHH,cAAA,E6BzxHK,2BACA,MAAA,KA3DJ,6BAgEE,cAAA,IACA,WAAA,OAYJ,iDA0DE,IAAK,KAjED,KAAA,K7B0xHH,yB6BztHD,2BA9DM,QAAA,W7B0xHL,MAAA,G6Bn2HD,6BAuFE,cAAA,GAvFF,6B5Bw3HA,aAAc,EACd,cAAe,IDZhB,kC6BtuHD,wCA3BA,wCATM,OAAA,IAAA,MAAA,K7B+wHH,yB6B3uHD,6B5B2vHE,cAAe,IAAI,MAAM,KACzB,cAAe,IAAI,IAAI,EAAE,EDZ1B,kC6B92HD,wC7B+2HD,wC6B72HG,oBAAA,MAIE,c7B+2HL,MAAA,K6B52HK,gB7B+2HL,cAAA,ICgBD,iBACE,YAAa,I4Bv3HP,uBAQR,6B7Bo2HC,6B6Bl2HG,MAAA,K7Bq2HH,iBAAA,Q6Bn2HK,gBACA,MAAA,KAYN,mBACE,WAAA,I7B41HD,YAAA,E6Bz1HG,e7B41HH,MAAA,K6B11HK,kBACA,MAAA,KAPN,oBAYI,cAAA,IACA,WAAA,OAYJ,wCA0DE,IAAK,KAjED,KAAA,K7B21HH,yB6B1xHD,kBA9DM,QAAA,W7B21HL,MAAA,G6Bl1HD,oBACA,cAAA,GAIE,oBACA,cAAA,EANJ,yB5B02HE,aAAc,EACd,cAAe,IDZhB,8B6B1yHD,oCA3BA,oCATM,OAAA,IAAA,MAAA,K7Bm1HH,yB6B/yHD,yB5B+zHE,cAAe,IAAI,MAAM,KACzB,cAAe,IAAI,IAAI,EAAE,EDZ1B,8B6Bx0HD,oC7By0HD,oC6Bv0HG,oBAAA,MAGA,uB7B00HH,QAAA,K6B/zHC,qBF3OA,QAAA,M3B+iID,yB8BxiIC,WAAY,KACZ,uBAAA,EACA,wBAAA,EAEA,Q9B0iID,SAAA,S8BliIC,WAAY,KA8nBZ,cAAe,KAhoBb,OAAA,IAAA,MAAA,Y9ByiIH,yB8BzhIC,QAgnBE,cAAe,K9B86GlB,yB8BjhIC,eACA,MAAA,MAGA,iBACA,cAAA,KAAA,aAAA,KAEA,WAAA,Q9BkhID,2BAAA,M8BhhIC,WAAA,IAAA,MAAA,YACE,mBAAA,MAAA,EAAA,IAAA,EAAA,qB9BkhIH,WAAA,MAAA,EAAA,IAAA,EAAA,qB8Bz7GD,oBArlBI,WAAA,KAEA,yBAAA,iB9BkhID,MAAA,K8BhhIC,WAAA,EACE,mBAAA,KACA,WAAA,KAEA,0B9BkhIH,QAAA,gB8B/gIC,OAAA,eACE,eAAA,E9BihIH,SAAA,kBCkBD,oBACE,WAAY,QDZf,sC8B/gIK,mC9B8gIH,oC8BzgIC,cAAe,E7B4hIf,aAAc,G6Bj+GlB,sCAnjBE,mC7ByhIA,WAAY,MDdX,4D8BngID,sC9BogID,mCCkBG,WAAY,O6B3gId,kCANE,gC9BsgIH,4B8BvgIG,0BAuiBF,aAAc,M7Bm/Gd,YAAa,MAEf,yBDZC,kC8B3gIK,gC9B0gIH,4B8B3gIG,0BAcF,aAAc,EAChB,YAAA,GAMF,mBA8gBE,QAAS,KAhhBP,aAAA,EAAA,EAAA,I9BkgIH,yB8B7/HC,mB7B+gIE,cAAe,G6B1gIjB,qBADA,kB9BggID,SAAA,M8Bz/HC,MAAO,EAggBP,KAAM,E7B4gHN,QAAS,KDdR,yB8B7/HD,qB9B8/HD,kB8B7/HC,cAAA,GAGF,kBACE,IAAA,EACA,aAAA,EAAA,EAAA,I9BigID,qB8B1/HC,OAAQ,EACR,cAAA,EACA,aAAA,IAAA,EAAA,EAEA,cACA,MAAA,K9B4/HD,OAAA,K8B1/HC,QAAA,KAAA,K7B4gIA,UAAW,K6B1gIT,YAAA,KAIA,oBAbJ,oB9BwgIC,gBAAA,K8Bv/HG,kB7B0gIF,QAAS,MDdR,yBACF,iC8Bh/HC,uCACA,YAAA,OAGA,eC9LA,SAAA,SACA,MAAA,MD+LA,QAAA,IAAA,KACA,WAAA,IACA,aAAA,KACA,cAAA,I9Bm/HD,iBAAA,Y8B/+HC,iBAAA,KACE,OAAA,IAAA,MAAA,Y9Bi/HH,cAAA,I8B5+HG,qBACA,QAAA,EAEA,yB9B++HH,QAAA,M8BrgIC,MAAO,KAyBL,OAAA,I9B++HH,cAAA,I8BpjHD,mCAvbI,WAAA,I9Bg/HH,yB8Bt+HC,eACA,QAAA,MAGE,YACA,OAAA,MAAA,M9By+HH,iB8B58HC,YAAA,KA2YA,eAAgB,KAjaZ,YAAA,KAEA,yBACA,iCACA,SAAA,OACA,MAAA,KACA,MAAA,KAAA,WAAA,E9Bs+HH,iBAAA,Y8B3kHC,OAAQ,E7B8lHR,mBAAoB,K6Bt/HhB,WAAA,KAGA,kDAqZN,sC9BklHC,QAAA,IAAA,KAAA,IAAA,KCmBD,sC6Bv/HQ,YAAA,KAmBR,4C9Bs9HD,4C8BvlHG,iBAAkB,M9B4lHnB,yB8B5lHD,YAtYI,MAAA,K9Bq+HH,OAAA,E8Bn+HK,eACA,MAAA,K9Bu+HP,iB8B39HG,YAAa,KACf,eAAA,MAGA,aACA,QAAA,KAAA,K1B9NA,WAAA,IACQ,aAAA,M2B/DR,cAAA,IACA,YAAA,M/B4vID,WAAA,IAAA,MAAA,YiBtuHC,cAAe,IAAI,MAAM,YAwEzB,mBAAoB,MAAM,EAAE,IAAI,EAAE,qBAAyB,EAAE,IAAI,EAAE,qBAtI/D,WAAA,MAAA,EAAA,IAAA,EAAA,qBAAA,EAAA,IAAA,EAAA,qBAEA,yBjBwyHH,yBiBpqHC,QAAS,aA/HP,cAAA,EACA,eAAA,OjBuyHH,2BiBzqHC,QAAS,aAxHP,MAAA,KjBoyHH,eAAA,OiBhyHG,kCACA,QAAA,aAmHJ,0BhBmsHE,QAAS,aACT,eAAgB,OgB5yHd,wCjB6xHH,6CiBrrHD,2CjBwrHC,MAAA,KiB5xHG,wCACA,MAAA,KAmGJ,4BhB+sHE,cAAe,EgB3yHb,eAAA,OAGA,uBADA,oBjB6xHH,QAAA,aiBnsHC,WAAY,EhBstHZ,cAAe,EgB5yHX,eAAA,OAsFN,6BAAA,0BAjFI,aAAA,EAiFJ,4CjB4sHC,sCiBvxHG,SAAA,SjB0xHH,YAAA,E8BngID,kDAmWE,IAAK,GAvWH,yBACE,yB9B8gIL,cAAA,I8B5/HD,oCAoVE,cAAe,GA1Vf,yBACA,aACA,MAAA,KACA,YAAA,E1BzPF,eAAA,EACQ,aAAA,EJmwIP,YAAA,EACF,OAAA,E8BngIG,mBAAoB,KACtB,WAAA,M9BugID,8B8BngIC,WAAY,EACZ,uBAAA,EHzUA,wBAAA,EAQA,mDACC,cAAA,E3By0IF,uBAAA,I8B//HC,wBAAyB,IChVzB,2BAAA,EACA,0BAAA,EDkVA,YCnVA,WAAA,IACA,cAAA,IDqVA,mBCtVA,WAAA,KACA,cAAA,KD+VF,mBChWE,WAAA,KACA,cAAA,KDuWF,aAsSE,WAAY,KA1SV,cAAA,KAEA,yB9B+/HD,aACF,MAAA,K8Bl+HG,aAAc,KAhBhB,YAAA,MACA,yBE5WA,aF8WE,MAAA,eAFF,cAKI,MAAA,gB9Bu/HH,aAAA,M8B7+HD,4BACA,aAAA,GADF,gBAKI,iBAAA,Q9Bg/HH,aAAA,QCmBD,8B6BhgIM,MAAA,KARN,oC9B0/HC,oC8B5+HG,MAAA,Q9B++HH,iBAAA,Y8B1+HK,6B9B6+HL,MAAA,KCmBD,iC6B5/HQ,MAAA,KAKF,uC9By+HL,uCCmBC,MAAO,KACP,iBAAkB,Y6Bz/HZ,sCAIF,4C9Bu+HL,4CCmBC,MAAO,KACP,iBAAkB,Q6Bv/HZ,wCAxCR,8C9BihIC,8C8Bn+HG,MAAA,K9Bs+HH,iBAAA,YCmBD,+B6Bt/HM,aAAA,KAGA,qCApDN,qC9B2hIC,iBAAA,KCmBD,yC6Bp/HI,iBAAA,KAOE,iCAAA,6B7Bk/HJ,aAAc,Q6B9+HR,oCAiCN,0C9B+7HD,0C8B3xHC,MAAO,KA7LC,iBAAA,QACA,yB7B8+HR,sD6B5+HU,MAAA,KAKF,4D9By9HP,4DCmBC,MAAO,KACP,iBAAkB,Y6Bz+HV,2DAIF,iE9Bu9HP,iECmBC,MAAO,KACP,iBAAkB,Q6Bv+HV,6D9B09HX,mEADE,mE8B1jIC,MAAO,KA8GP,iBAAA,aAEE,6B9Bi9HL,MAAA,K8B58HG,mC9B+8HH,MAAA,KCmBD,0B6B/9HM,MAAA,KAIA,gCAAA,gC7Bg+HJ,MAAO,K6Bt9HT,0CARQ,0CASN,mD9Bu8HD,mD8Bt8HC,MAAA,KAFF,gBAKI,iBAAA,K9B08HH,aAAA,QCmBD,8B6B19HM,MAAA,QARN,oC9Bo9HC,oC8Bt8HG,MAAA,K9By8HH,iBAAA,Y8Bp8HK,6B9Bu8HL,MAAA,QCmBD,iC6Bt9HQ,MAAA,QAKF,uC9Bm8HL,uCCmBC,MAAO,KACP,iBAAkB,Y6Bn9HZ,sCAIF,4C9Bi8HL,4CCmBC,MAAO,KACP,iBAAkB,Q6Bj9HZ,wCAxCR,8C9B2+HC,8C8B57HG,MAAA,K9B+7HH,iBAAA,YCmBD,+B6B/8HM,aAAA,KAGA,qCArDN,qC9Bq/HC,iBAAA,KCmBD,yC6B78HI,iBAAA,KAME,iCAAA,6B7B48HJ,aAAc,Q6Bx8HR,oCAuCN,0C9Bm5HD,0C8B33HC,MAAO,KAvDC,iBAAA,QAuDV,yBApDU,kE9Bs7HP,aAAA,Q8Bn7HO,0D9Bs7HP,iBAAA,QCmBD,sD6Bt8HU,MAAA,QAKF,4D9Bm7HP,4DCmBC,MAAO,KACP,iBAAkB,Y6Bn8HV,2DAIF,iE9Bi7HP,iECmBC,MAAO,KACP,iBAAkB,Q6Bj8HV,6D9Bo7HX,mEADE,mE8B1hIC,MAAO,KA+GP,iBAAA,aAEE,6B9Bg7HL,MAAA,Q8B36HG,mC9B86HH,MAAA,KCmBD,0B6B97HM,MAAA,QAIA,gCAAA,gC7B+7HJ,MAAO,KgCvkJT,0CH0oBQ,0CGzoBN,mDjCwjJD,mDiCvjJC,MAAA,KAEA,YACA,QAAA,IAAA,KjC2jJD,cAAA,KiChkJC,WAAY,KAQV,iBAAA,QjC2jJH,cAAA,IiCxjJK,eACA,QAAA,ajC4jJL,yBiCxkJC,QAAS,EAAE,IAkBT,MAAA,KjCyjJH,QAAA,SkC5kJC,oBACA,MAAA,KAEA,YlC+kJD,QAAA,akCnlJC,aAAc,EAOZ,OAAA,KAAA,ElC+kJH,cAAA,ICmBD,eiC/lJM,QAAA,OAEA,iBACA,oBACA,SAAA,SACA,MAAA,KACA,QAAA,IAAA,KACA,YAAA,KACA,YAAA,WlCglJL,MAAA,QkC9kJG,gBAAA,KjCimJF,iBAAkB,KiC9lJZ,OAAA,IAAA,MAAA,KPVH,6B3B2lJJ,gCkC7kJG,YAAA,EjCgmJF,uBAAwB,I0BvnJxB,0BAAA,I3BymJD,4BkCxkJG,+BjC2lJF,wBAAyB,IACzB,2BAA4B,IiCxlJxB,uBAFA,uBAGA,0BAFA,0BlC8kJL,QAAA,EkCtkJG,MAAA,QjCylJF,iBAAkB,KAClB,aAAc,KAEhB,sBiCvlJM,4BAFA,4BjC0lJN,yBiCvlJM,+BAFA,+BAGA,QAAA,ElC2kJL,MAAA,KkCloJC,OAAQ,QjCqpJR,iBAAkB,QAClB,aAAc,QiCnlJV,wBAEA,8BADA,8BjColJN,2BiCtlJM,iCjCulJN,iCDZC,MAAA,KkC/jJC,OAAQ,YjCklJR,iBAAkB,KkC7pJd,aAAA,KAEA,oBnC8oJL,uBmC5oJG,QAAA,KAAA,KlC+pJF,UAAW,K0B1pJX,YAAA,U3B4oJD,gCmC3oJG,mClC8pJF,uBAAwB,I0BvqJxB,0BAAA,I3BypJD,+BkC1kJD,kCjC6lJE,wBAAyB,IkC7qJrB,2BAAA,IAEA,oBnC8pJL,uBmC5pJG,QAAA,IAAA,KlC+qJF,UAAW,K0B1qJX,YAAA,I3B4pJD,gCmC3pJG,mClC8qJF,uBAAwB,I0BvrJxB,0BAAA,I3ByqJD,+BoC3qJD,kCACE,wBAAA,IACA,2BAAA,IAEA,OpC6qJD,aAAA,EoCjrJC,OAAQ,KAAK,EAOX,WAAA,OpC6qJH,WAAA,KCmBD,UmC7rJM,QAAA,OAEA,YACA,eACA,QAAA,apC8qJL,QAAA,IAAA,KoC5rJC,iBAAkB,KnC+sJlB,OAAQ,IAAI,MAAM,KmC5rJd,cAAA,KAnBN,kBpCisJC,kBCmBC,gBAAiB,KmCzrJb,iBAAA,KA3BN,eAAA,kBAkCM,MAAA,MAlCN,mBAAA,sBnC6tJE,MAAO,KmClrJH,mBAEA,yBADA,yBpCqqJL,sBqCltJC,MAAO,KACP,OAAA,YACA,iBAAA,KAEA,OACA,QAAA,OACA,QAAA,KAAA,KAAA,KACA,UAAA,IACA,YAAA,IACA,YAAA,EACA,MAAA,KrCotJD,WAAA,OqChtJG,YAAA,OpCmuJF,eAAgB,SoCjuJZ,cAAA,MrCotJL,cqCltJK,cAKJ,MAAA,KACE,gBAAA,KrC+sJH,OAAA,QqC1sJG,aACA,QAAA,KAOJ,YCtCE,SAAA,StC+uJD,IAAA,KCmBD,eqC7vJM,iBAAA,KALJ,2BD0CF,2BrC4sJC,iBAAA,QCmBD,eqCpwJM,iBAAA,QALJ,2BD8CF,2BrC+sJC,iBAAA,QCmBD,eqC3wJM,iBAAA,QALJ,2BDkDF,2BrCktJC,iBAAA,QCmBD,YqClxJM,iBAAA,QALJ,wBDsDF,wBrCqtJC,iBAAA,QCmBD,eqCzxJM,iBAAA,QALJ,2BD0DF,2BrCwtJC,iBAAA,QCmBD,cqChyJM,iBAAA,QCDJ,0BADF,0BAEE,iBAAA,QAEA,OACA,QAAA,aACA,UAAA,KACA,QAAA,IAAA,IACA,UAAA,KACA,YAAA,IACA,YAAA,EACA,MAAA,KACA,WAAA,OvCqxJD,YAAA,OuClxJC,eAAA,OACE,iBAAA,KvCoxJH,cAAA,KuC/wJG,aACA,QAAA,KAGF,YtCkyJA,SAAU,SsChyJR,IAAA,KAMA,0BvC4wJH,eCmBC,IAAK,EsC7xJD,QAAA,IAAA,IvCgxJL,cuC9wJK,cAKJ,MAAA,KtC4xJA,gBAAiB,KsC1xJf,OAAA,QvC4wJH,+BuCxwJC,4BACE,MAAA,QvC0wJH,iBAAA,KuCtwJG,wBvCywJH,MAAA,MuCrwJG,+BvCwwJH,aAAA,IwCj0JC,uBACA,YAAA,IAEA,WACA,YAAA,KxCo0JD,eAAA,KwCz0JC,cAAe,KvC41Jf,MAAO,QuCn1JL,iBAAA,KAIA,eAbJ,cAcI,MAAA,QxCo0JH,awCl1JC,cAAe,KAmBb,UAAA,KxCk0JH,YAAA,ICmBD,cuCh1JI,iBAAA,QAEA,sBxCi0JH,4BwC31JC,cAAe,KA8Bb,aAAA,KxCg0JH,cAAA,IwC7yJD,sBAfI,UAAA,KxCi0JD,oCwC9zJC,WvCi1JA,YAAa,KuC/0JX,eAAA,KxCi0JH,sBwCvzJD,4BvC00JE,cAAe,KuC90Jb,aAAA,KC5CJ,ezC42JD,cyC32JC,UAAA,MAGA,WACA,QAAA,MACA,QAAA,IACA,cAAA,KrCiLA,YAAA,WACK,iBAAA,KACG,OAAA,IAAA,MAAA,KJ8rJT,cAAA,IyCx3JC,mBAAoB,OAAO,IAAI,YxC24J1B,cAAe,OAAO,IAAI,YwC93J7B,WAAA,OAAA,IAAA,YAKF,iBzC22JD,eCmBC,aAAc,KACd,YAAa,KwCv3JX,mBA1BJ,kBzCk4JC,kByCv2JG,aAAA,QCzBJ,oBACE,QAAA,IACA,MAAA,KAEA,O1Cs4JD,QAAA,K0C14JC,cAAe,KAQb,OAAA,IAAA,MAAA,YAEA,cAAA,IAVJ,UAeI,WAAA,E1Ck4JH,MAAA,QCmBD,mByC/4JI,YAAA,IArBJ,SAyBI,U1C+3JH,cAAA,ECmBD,WyCx4JE,WAAA,IAFF,mBAAA,mBAMI,cAAA,KAEA,0BACA,0B1Cy3JH,SAAA,S0Cj3JC,IAAK,KCvDL,MAAA,MACA,MAAA,Q3C46JD,e0Ct3JC,MAAO,QClDL,iBAAA,Q3C26JH,aAAA,Q2Cx6JG,kB3C26JH,iBAAA,Q2Cn7JC,2BACA,MAAA,Q3Cu7JD,Y0C73JC,MAAO,QCtDL,iBAAA,Q3Cs7JH,aAAA,Q2Cn7JG,e3Cs7JH,iBAAA,Q2C97JC,wBACA,MAAA,Q3Ck8JD,e0Cp4JC,MAAO,QC1DL,iBAAA,Q3Ci8JH,aAAA,Q2C97JG,kB3Ci8JH,iBAAA,Q2Cz8JC,2BACA,MAAA,Q3C68JD,c0C34JC,MAAO,QC9DL,iBAAA,Q3C48JH,aAAA,Q2Cz8JG,iB3C48JH,iBAAA,Q4C78JC,0BAAQ,MAAA,QACR,wCAAQ,K5Cm9JP,oBAAA,KAAA,E4C/8JD,GACA,oBAAA,EAAA,GACA,mCAAQ,K5Cq9JP,oBAAA,KAAA,E4Cv9JD,GACA,oBAAA,EAAA,GACA,gCAAQ,K5Cq9JP,oBAAA,KAAA,E4C78JD,GACA,oBAAA,EAAA,GAGA,UACA,OAAA,KxCsCA,cAAA,KACQ,SAAA,OJ26JT,iBAAA,Q4C78JC,cAAe,IACf,mBAAA,MAAA,EAAA,IAAA,IAAA,eACA,WAAA,MAAA,EAAA,IAAA,IAAA,eAEA,cACA,MAAA,KACA,MAAA,EACA,OAAA,KACA,UAAA,KxCyBA,YAAA,KACQ,MAAA,KAyHR,WAAA,OACK,iBAAA,QACG,mBAAA,MAAA,EAAA,KAAA,EAAA,gBJ+zJT,WAAA,MAAA,EAAA,KAAA,EAAA,gB4C18JC,mBAAoB,MAAM,IAAI,K3Cq+JzB,cAAe,MAAM,IAAI,K4Cp+J5B,WAAA,MAAA,IAAA,KDEF,sBCAE,gCDAF,iBAAA,yK5C88JD,iBAAA,oK4Cv8JC,iBAAiB,iK3Cm+JjB,wBAAyB,KAAK,KG/gK9B,gBAAA,KAAA,KJy/JD,qBIv/JS,+BwCmDR,kBAAmB,qBAAqB,GAAG,OAAO,SErElD,aAAA,qBAAA,GAAA,OAAA,S9C4gKD,UAAA,qBAAA,GAAA,OAAA,S6Cz9JG,sBACA,iBAAA,Q7C69JH,wC4Cx8JC,iBAAkB,yKEzElB,iBAAA,oK9CohKD,iBAAA,iK6Cj+JG,mBACA,iBAAA,Q7Cq+JH,qC4C58JC,iBAAkB,yKE7ElB,iBAAA,oK9C4hKD,iBAAA,iK6Cz+JG,sBACA,iBAAA,Q7C6+JH,wC4Ch9JC,iBAAkB,yKEjFlB,iBAAA,oK9CoiKD,iBAAA,iK6Cj/JG,qBACA,iBAAA,Q7Cq/JH,uC+C5iKC,iBAAkB,yKAElB,iBAAA,oK/C6iKD,iBAAA,iK+C1iKG,O/C6iKH,WAAA,KC4BD,mB8CnkKE,WAAA,E/C4iKD,O+CxiKD,YACE,SAAA,O/C0iKD,KAAA,E+CtiKC,Y/CyiKD,MAAA,Q+CriKG,c/CwiKH,QAAA,MC4BD,4B8C9jKE,UAAA,KAGF,aAAA,mBAEE,aAAA,KAGF,YAAA,kB9C+jKE,cAAe,K8CxjKjB,YAHE,Y/CoiKD,a+ChiKC,QAAA,W/CmiKD,eAAA,I+C/hKC,c/CkiKD,eAAA,O+C7hKC,cACA,eAAA,OAMF,eACE,WAAA,EACA,cAAA,ICvDF,YAEE,aAAA,EACA,WAAA,KAQF,YACE,aAAA,EACA,cAAA,KAGA,iBACA,SAAA,SACA,QAAA,MhD6kKD,QAAA,KAAA,KgD1kKC,cAAA,KrB3BA,iBAAA,KACC,OAAA,IAAA,MAAA,KqB6BD,6BACE,uBAAA,IrBvBF,wBAAA,I3BsmKD,4BgDpkKC,cAAe,E/CgmKf,2BAA4B,I+C9lK5B,0BAAA,IAFF,kBAAA,uBAKI,MAAA,KAIF,2CAAA,gD/CgmKA,MAAO,K+C5lKL,wBAFA,wBhDykKH,6BgDxkKG,6BAKF,MAAO,KACP,gBAAA,KACA,iBAAA,QAKA,uB/C4lKA,MAAO,KACP,WAAY,K+CzlKV,0BhDmkKH,gCgDlkKG,gCALF,MAAA,K/CmmKA,OAAQ,YACR,iBAAkB,KDxBnB,mDgD5kKC,yDAAA,yD/CymKA,MAAO,QDxBR,gDgDhkKC,sDAAA,sD/C6lKA,MAAO,K+CzlKL,wBAEA,8BADA,8BhDmkKH,QAAA,EgDxkKC,MAAA,K/ComKA,iBAAkB,QAClB,aAAc,QAEhB,iDDpBC,wDCuBD,uDADA,uD+CzmKE,8DAYI,6D/C4lKN,uD+CxmKE,8D/C2mKF,6DAKE,MAAO,QDxBR,8CiD1qKG,oDADF,oDAEE,MAAA,QAEA,yBhDusKF,MAAO,QgDrsKH,iBAAA,QAFF,0BAAA,+BAKI,MAAA,QAGF,mDAAA,wDhDwsKJ,MAAO,QDtBR,gCiDhrKO,gCAGF,qCAFE,qChD2sKN,MAAO,QACP,iBAAkB,QAEpB,iCgDvsKQ,uCAFA,uChD0sKR,sCDtBC,4CiDnrKO,4CArBN,MAAA,KACE,iBAAA,QACA,aAAA,QAEA,sBhDouKF,MAAO,QgDluKH,iBAAA,QAFF,uBAAA,4BAKI,MAAA,QAGF,gDAAA,qDhDquKJ,MAAO,QDtBR,6BiD7sKO,6BAGF,kCAFE,kChDwuKN,MAAO,QACP,iBAAkB,QAEpB,8BgDpuKQ,oCAFA,oChDuuKR,mCDtBC,yCiDhtKO,yCArBN,MAAA,KACE,iBAAA,QACA,aAAA,QAEA,yBhDiwKF,MAAO,QgD/vKH,iBAAA,QAFF,0BAAA,+BAKI,MAAA,QAGF,mDAAA,wDhDkwKJ,MAAO,QDtBR,gCiD1uKO,gCAGF,qCAFE,qChDqwKN,MAAO,QACP,iBAAkB,QAEpB,iCgDjwKQ,uCAFA,uChDowKR,sCDtBC,4CiD7uKO,4CArBN,MAAA,KACE,iBAAA,QACA,aAAA,QAEA,wBhD8xKF,MAAO,QgD5xKH,iBAAA,QAFF,yBAAA,8BAKI,MAAA,QAGF,kDAAA,uDhD+xKJ,MAAO,QDtBR,+BiDvwKO,+BAGF,oCAFE,oChDkyKN,MAAO,QACP,iBAAkB,QAEpB,gCgD9xKQ,sCAFA,sChDiyKR,qCDtBC,2CiD1wKO,2CDkGN,MAAO,KACP,iBAAA,QACA,aAAA,QAEF,yBACE,WAAA,EACA,cAAA,IE1HF,sBACE,cAAA,EACA,YAAA,IAEA,O9C0DA,cAAA,KACQ,iBAAA,KJ6uKT,OAAA,IAAA,MAAA,YkDnyKC,cAAe,IACf,mBAAA,EAAA,IAAA,IAAA,gBlDqyKD,WAAA,EAAA,IAAA,IAAA,gBkD/xKC,YACA,QAAA,KvBnBC,e3BuzKF,QAAA,KAAA,KkDtyKC,cAAe,IAAI,MAAM,YAMvB,uBAAA,IlDmyKH,wBAAA,IkD7xKC,0CACA,MAAA,QAEA,alDgyKD,WAAA,EkDpyKC,cAAe,EjDg0Kf,UAAW,KACX,MAAO,QDtBR,oBkD1xKC,sBjDkzKF,eiDxzKI,mBAKJ,qBAEE,MAAA,QvBvCA,cACC,QAAA,KAAA,K3Bs0KF,iBAAA,QkDrxKC,WAAY,IAAI,MAAM,KjDizKtB,2BAA4B,IiD9yK1B,0BAAA,IAHJ,mBAAA,mCAMM,cAAA,ElDwxKL,oCkDnxKG,oDjD+yKF,aAAc,IAAI,EiD7yKZ,cAAA,EvBtEL,4D3B61KF,4EkDjxKG,WAAA,EjD6yKF,uBAAwB,IiD3yKlB,wBAAA,IvBtEL,0D3B21KF,0EkD1yKC,cAAe,EvB1Df,2BAAA,IACC,0BAAA,IuB0FH,+EAEI,uBAAA,ElD8wKH,wBAAA,EkD1wKC,wDlD6wKD,iBAAA,EC4BD,0BACE,iBAAkB,EiDlyKpB,8BlD0wKC,ckD1wKD,gCjDuyKE,cAAe,EiDvyKjB,sCAQM,sBlDwwKL,wCC4BC,cAAe,K0Br5Kf,aAAA,KuByGF,wDlDqxKC,0BC4BC,uBAAwB,IACxB,wBAAyB,IiDlzK3B,yFAoBQ,yFlDwwKP,2DkDzwKO,2DjDqyKN,uBAAwB,IACxB,wBAAyB,IAK3B,wGiD9zKA,wGjD4zKA,wGDtBC,wGCuBD,0EiD7zKA,0EjD2zKA,0EiDnyKU,0EjD2yKR,uBAAwB,IAK1B,uGiDx0KA,uGjDs0KA,uGDtBC,uGCuBD,yEiDv0KA,yEjDq0KA,yEiDzyKU,yEvB7HR,wBAAA,IuBiGF,sDlDqzKC,yBC4BC,2BAA4B,IAC5B,0BAA2B,IiDxyKrB,qFA1CR,qFAyCQ,wDlDmxKP,wDC4BC,2BAA4B,IAC5B,0BAA2B,IAG7B,oGDtBC,oGCwBD,oGiD91KA,oGjD21KA,uEiD7yKU,uEjD+yKV,uEiD71KA,uEjDm2KE,0BAA2B,IAG7B,mGDtBC,mGCwBD,mGiDx2KA,mGjDq2KA,sEiDnzKU,sEjDqzKV,sEiDv2KA,sEjD62KE,2BAA4B,IiDlzK1B,0BlD2xKH,qCkDt1KD,0BAAA,qCA+DI,WAAA,IAAA,MAAA,KA/DJ,kDAAA,kDAmEI,WAAA,EAnEJ,uBAAA,yCjD23KE,OAAQ,EiDjzKA,+CjDqzKV,+CiD/3KA,+CjDi4KA,+CAEA,+CANA,+CDjBC,iECoBD,iEiDh4KA,iEjDk4KA,iEAEA,iEANA,iEAWE,YAAa,EiD3zKL,8CjD+zKV,8CiD74KA,8CjD+4KA,8CAEA,8CANA,8CDjBC,gECoBD,gEiD94KA,gEjDg5KA,gEAEA,gEANA,gEAWE,aAAc,EAIhB,+CiD35KA,+CjDy5KA,+CiDl0KU,+CjDq0KV,iEiD55KA,iEjD05KA,iEDtBC,iEC6BC,cAAe,EAEjB,8CiDn0KU,8CjDq0KV,8CiDr6KA,8CjDo6KA,gEDtBC,gECwBD,gEiDh0KI,gEACA,cAAA,EAUJ,yBACE,cAAA,ElDmyKD,OAAA,EkD/xKG,aACA,cAAA,KANJ,oBASM,cAAA,ElDkyKL,cAAA,IkD7xKG,2BlDgyKH,WAAA,IC4BD,4BiDxzKM,cAAA,EAKF,wDAvBJ,wDlDqzKC,WAAA,IAAA,MAAA,KkD5xKK,2BlD+xKL,WAAA,EmDlhLC,uDnDqhLD,cAAA,IAAA,MAAA,KmDlhLG,eACA,aAAA,KnDshLH,8BmDxhLC,MAAA,KAMI,iBAAA,QnDqhLL,aAAA,KmDlhLK,0DACA,iBAAA,KAGJ,qCAEI,MAAA,QnDmhLL,iBAAA,KmDpiLC,yDnDuiLD,oBAAA,KmDpiLG,eACA,aAAA,QnDwiLH,8BmD1iLC,MAAA,KAMI,iBAAA,QnDuiLL,aAAA,QmDpiLK,0DACA,iBAAA,QAGJ,qCAEI,MAAA,QnDqiLL,iBAAA,KmDtjLC,yDnDyjLD,oBAAA,QmDtjLG,eACA,aAAA,QnD0jLH,8BmD5jLC,MAAA,QAMI,iBAAA,QnDyjLL,aAAA,QmDtjLK,0DACA,iBAAA,QAGJ,qCAEI,MAAA,QnDujLL,iBAAA,QmDxkLC,yDnD2kLD,oBAAA,QmDxkLG,YACA,aAAA,QnD4kLH,2BmD9kLC,MAAA,QAMI,iBAAA,QnD2kLL,aAAA,QmDxkLK,uDACA,iBAAA,QAGJ,kCAEI,MAAA,QnDykLL,iBAAA,QmD1lLC,sDnD6lLD,oBAAA,QmD1lLG,eACA,aAAA,QnD8lLH,8BmDhmLC,MAAA,QAMI,iBAAA,QnD6lLL,aAAA,QmD1lLK,0DACA,iBAAA,QAGJ,qCAEI,MAAA,QnD2lLL,iBAAA,QmD5mLC,yDnD+mLD,oBAAA,QmD5mLG,cACA,aAAA,QnDgnLH,6BmDlnLC,MAAA,QAMI,iBAAA,QnD+mLL,aAAA,QmD5mLK,yDACA,iBAAA,QAGJ,oCAEI,MAAA,QnD6mLL,iBAAA,QoD5nLC,wDACA,oBAAA,QAEA,kBACA,SAAA,SpD+nLD,QAAA,MoDpoLC,OAAQ,EnDgqLR,QAAS,EACT,SAAU,OAEZ,yCmDtpLI,wBADA,yBAEA,yBACA,wBACA,SAAA,SACA,IAAA,EACA,OAAA,EpD+nLH,KAAA,EoD1nLC,MAAO,KACP,OAAA,KpD4nLD,OAAA,EoDvnLC,wBpD0nLD,eAAA,OqDppLC,uBACA,eAAA,IAEA,MACA,WAAA,KACA,QAAA,KjDwDA,cAAA,KACQ,iBAAA,QJgmLT,OAAA,IAAA,MAAA,QqD/pLC,cAAe,IASb,mBAAA,MAAA,EAAA,IAAA,IAAA,gBACA,WAAA,MAAA,EAAA,IAAA,IAAA,gBAKJ,iBACE,aAAA,KACA,aAAA,gBAEF,SACE,QAAA,KACA,cAAA,ICtBF,SACE,QAAA,IACA,cAAA,IAEA,OACA,MAAA,MACA,UAAA,KjCRA,YAAA,IAGA,YAAA,ErBqrLD,MAAA,KsD7qLC,YAAA,EAAA,IAAA,EAAA,KrDysLA,OAAQ,kBqDvsLN,QAAA,GjCbF,aiCeE,ajCZF,MAAA,KrB6rLD,gBAAA,KsDzqLC,OAAA,QACE,OAAA,kBACA,QAAA,GAEA,aACA,mBAAA,KtD2qLH,QAAA,EuDhsLC,OAAQ,QACR,WAAA,IvDksLD,OAAA,EuD7rLC,YACA,SAAA,OAEA,OACA,SAAA,MACA,IAAA,EACA,MAAA,EACA,OAAA,EACA,KAAA,EAIA,QAAA,KvD6rLD,QAAA,KuD1rLC,SAAA,OnD+GA,2BAAA,MACI,QAAA,EAEI,0BAkER,mBAAA,kBAAA,IAAA,SAEK,cAAA,aAAA,IAAA,SACG,WAAA,UAAA,IAAA,SJ6gLT,kBAAA,kBuDhsLC,cAAA,kBnD2GA,aAAA,kBACI,UAAA,kBAEI,wBJwlLT,kBAAA,euDpsLK,cAAe,eACnB,aAAA,eACA,UAAA,eAIF,mBACE,WAAA,OACA,WAAA,KvDqsLD,cuDhsLC,SAAU,SACV,MAAA,KACA,OAAA,KAEA,eACA,SAAA,SnDaA,iBAAA,KACQ,wBAAA,YmDZR,gBAAA,YtD4tLA,OsD5tLA,IAAA,MAAA,KAEA,OAAA,IAAA,MAAA,evDksLD,cAAA,IuD9rLC,QAAS,EACT,mBAAA,EAAA,IAAA,IAAA,eACA,WAAA,EAAA,IAAA,IAAA,eAEA,gBACA,SAAA,MACA,IAAA,EACA,MAAA,EvDgsLD,OAAA,EuD9rLC,KAAA,ElCrEA,QAAA,KAGA,iBAAA,KkCmEA,qBlCtEA,OAAA,iBAGA,QAAA,EkCwEF,mBACE,OAAA,kBACA,QAAA,GAIF,cACE,QAAA,KvDgsLD,cAAA,IAAA,MAAA,QuD3rLC,qBACA,WAAA,KAKF,aACE,OAAA,EACA,YAAA,WAIF,YACE,SAAA,SACA,QAAA,KvD0rLD,cuD5rLC,QAAS,KAQP,WAAA,MACA,WAAA,IAAA,MAAA,QATJ,wBAaI,cAAA,EvDsrLH,YAAA,IuDlrLG,mCvDqrLH,YAAA,KuD/qLC,oCACA,YAAA,EAEA,yBACA,SAAA,SvDkrLD,IAAA,QuDhqLC,MAAO,KAZP,OAAA,KACE,SAAA,OvDgrLD,yBuD7qLD,cnDvEA,MAAA,MACQ,OAAA,KAAA,KmD2ER,eAAY,mBAAA,EAAA,IAAA,KAAA,evD+qLX,WAAA,EAAA,IAAA,KAAA,euDzqLD,UAFA,MAAA,OvDirLD,yBwD/zLC,UACA,MAAA,OCNA,SAEA,SAAA,SACA,QAAA,KACA,QAAA,MACA,YAAA,iBAAA,UAAA,MAAA,WACA,UAAA,KACA,WAAA,OACA,YAAA,IACA,YAAA,WACA,WAAA,KACA,WAAA,MACA,gBAAA,KACA,YAAA,KACA,eAAA,KACA,eAAA,ODHA,WAAA,OnCVA,aAAA,OAGA,UAAA,OrBs1LD,YAAA,OwD30LC,OAAA,iBnCdA,QAAA,ErB61LD,WAAA,KwD90LY,YAAmB,OAAA,kBxDk1L/B,QAAA,GwDj1LY,aAAmB,QAAA,IAAA,ExDq1L/B,WAAA,KwDp1LY,eAAmB,QAAA,EAAA,IxDw1L/B,YAAA,IwDv1LY,gBAAmB,QAAA,IAAA,ExD21L/B,WAAA,IwDt1LC,cACA,QAAA,EAAA,IACA,YAAA,KAEA,eACA,UAAA,MxDy1LD,QAAA,IAAA,IwDr1LC,MAAO,KACP,WAAA,OACA,iBAAA,KACA,cAAA,IAEA,exDu1LD,SAAA,SwDn1LC,MAAA,EACE,OAAA,EACA,aAAA,YACA,aAAA,MAEA,4BxDq1LH,OAAA,EwDn1LC,KAAA,IACE,YAAA,KACA,aAAA,IAAA,IAAA,EACA,iBAAA,KAEA,iCxDq1LH,MAAA,IwDn1LC,OAAA,EACE,cAAA,KACA,aAAA,IAAA,IAAA,EACA,iBAAA,KAEA,kCxDq1LH,OAAA,EwDn1LC,KAAA,IACE,cAAA,KACA,aAAA,IAAA,IAAA,EACA,iBAAA,KAEA,8BxDq1LH,IAAA,IwDn1LC,KAAA,EACE,WAAA,KACA,aAAA,IAAA,IAAA,IAAA,EACA,mBAAA,KAEA,6BxDq1LH,IAAA,IwDn1LC,MAAA,EACE,WAAA,KACA,aAAA,IAAA,EAAA,IAAA,IACA,kBAAA,KAEA,+BxDq1LH,IAAA,EwDn1LC,KAAA,IACE,YAAA,KACA,aAAA,EAAA,IAAA,IACA,oBAAA,KAEA,oCxDq1LH,IAAA,EwDn1LC,MAAA,IACE,WAAA,KACA,aAAA,EAAA,IAAA,IACA,oBAAA,KAEA,qCxDq1LH,IAAA,E0Dl7LC,KAAM,IACN,WAAA,KACA,aAAA,EAAA,IAAA,IACA,oBAAA,KAEA,SACA,SAAA,SACA,IAAA,EDXA,KAAA,EAEA,QAAA,KACA,QAAA,KACA,UAAA,MACA,QAAA,IACA,YAAA,iBAAA,UAAA,MAAA,WACA,UAAA,KACA,WAAA,OACA,YAAA,IACA,YAAA,WACA,WAAA,KACA,WAAA,MACA,gBAAA,KACA,YAAA,KACA,eAAA,KCAA,eAAA,OAEA,WAAA,OACA,aAAA,OAAA,UAAA,OACA,YAAA,OACA,iBAAA,KACA,wBAAA,YtD8CA,gBAAA,YACQ,OAAA,IAAA,MAAA,KJk5LT,OAAA,IAAA,MAAA,e0D77LC,cAAA,IAAY,mBAAA,EAAA,IAAA,KAAA,e1Dg8Lb,WAAA,EAAA,IAAA,KAAA,e0D/7La,WAAA,KACZ,aAAY,WAAA,MACZ,eAAY,YAAA,KAGd,gBACE,WAAA,KAEA,cACA,YAAA,MAEA,e1Dq8LD,QAAA,IAAA,K0Dl8LC,OAAQ,EACR,UAAA,K1Do8LD,iBAAA,Q0D57LC,cAAA,IAAA,MAAA,QzDy9LA,cAAe,IAAI,IAAI,EAAE,EyDt9LvB,iBACA,QAAA,IAAA,KAEA,gBACA,sB1D87LH,SAAA,S0D37LC,QAAS,MACT,MAAA,E1D67LD,OAAA,E0D37LC,aAAc,YACd,aAAA,M1D87LD,gB0Dz7LC,aAAA,KAEE,sBACA,QAAA,GACA,aAAA,KAEA,oB1D27LH,OAAA,M0D17LG,KAAA,IACE,YAAA,MACA,iBAAA,KACA,iBAAA,gBACA,oBAAA,E1D67LL,0B0Dz7LC,OAAA,IACE,YAAA,MACA,QAAA,IACA,iBAAA,KACA,oBAAA,EAEA,sB1D27LH,IAAA,I0D17LG,KAAA,MACE,WAAA,MACA,mBAAA,KACA,mBAAA,gBACA,kBAAA,E1D67LL,4B0Dz7LC,OAAA,MACE,KAAA,IACA,QAAA,IACA,mBAAA,KACA,kBAAA,EAEA,uB1D27LH,IAAA,M0D17LG,KAAA,IACE,YAAA,MACA,iBAAA,EACA,oBAAA,KACA,oBAAA,gB1D67LL,6B0Dx7LC,IAAA,IACE,YAAA,MACA,QAAA,IACA,iBAAA,EACA,oBAAA,KAEA,qB1D07LH,IAAA,I0Dz7LG,MAAA,MACE,WAAA,MACA,mBAAA,EACA,kBAAA,KACA,kBAAA,gB1D47LL,2B2DpjMC,MAAO,IACP,OAAA,M3DsjMD,QAAA,I2DnjMC,mBAAoB,EACpB,kBAAA,KAEA,U3DqjMD,SAAA,S2DljMG,gBACA,SAAA,SvD6KF,MAAA,KACK,SAAA,OJ04LN,sB2D/jMC,SAAU,S1D4lMV,QAAS,K0D9kML,mBAAA,IAAA,YAAA,K3DqjML,cAAA,IAAA,YAAA,K2D3hMC,WAAA,IAAA,YAAA,KvDmKK,4BAFL,0BAGQ,YAAA,EA3JA,qDA+GR,sBAEQ,mBAAA,kBAAA,IAAA,YJ86LP,cAAA,aAAA,IAAA,Y2DzjMG,WAAA,UAAA,IAAA,YvDmHJ,4BAAA,OACQ,oBAAA,OuDjHF,oBAAA,O3D4jML,YAAA,OI58LD,mCHs+LA,2BGr+LQ,KAAA,EuD5GF,kBAAA,sB3D6jML,UAAA,sBC2BD,kCADA,2BG5+LA,KAAA,EACQ,kBAAA,uBuDtGF,UAAA,uBArCN,6B3DomMD,gC2DpmMC,iC1D+nME,KAAM,E0DllMN,kBAAA,mB3D4jMH,UAAA,oBAGA,wB2D5mMD,sBAAA,sBAsDI,QAAA,MAEA,wB3D0jMH,KAAA,E2DtjMG,sB3DyjMH,sB2DrnMC,SAAU,SA+DR,IAAA,E3DyjMH,MAAA,KC0BD,sB0D/kMI,KAAA,KAnEJ,sBAuEI,KAAA,MAvEJ,2BA0EI,4B3DwjMH,KAAA,E2D/iMC,6BACA,KAAA,MAEA,8BACA,KAAA,KtC3FA,kBsC6FA,SAAA,SACA,IAAA,EACA,OAAA,EACA,KAAA,EACA,MAAA,I3DmjMD,UAAA,K2D9iMC,MAAA,KdnGE,WAAA,OACA,YAAA,EAAA,IAAA,IAAA,eACA,iBAAA,cAAA,OAAA,kBACA,QAAA,G7CqpMH,uB2DljMC,iBAAA,sEACE,iBAAA,iEACA,iBAAA,uFdxGA,iBAAA,kEACA,OAAA,+GACA,kBAAA,SACA,wBACA,MAAA,E7C6pMH,KAAA,K2DpjMC,iBAAA,sE1DglMA,iBAAiB,iE0D9kMf,iBAAA,uFACA,iBAAA,kEACA,OAAA,+GtCvHF,kBAAA,SsCyFF,wB3DslMC,wBC4BC,MAAO,KACP,gBAAiB,KACjB,OAAQ,kB0D7kMN,QAAA,EACA,QAAA,G3DwjMH,0C2DhmMD,2CA2CI,6BADA,6B1DklMF,SAAU,S0D7kMR,IAAA,IACA,QAAA,E3DqjMH,QAAA,a2DrmMC,WAAY,MAqDV,0CADA,6B3DsjMH,KAAA,I2D1mMC,YAAa,MA0DX,2CADA,6BAEA,MAAA,IACA,aAAA,MAME,6BADF,6B3DmjMH,MAAA,K2D9iMG,OAAA,KACE,YAAA,M3DgjML,YAAA,E2DriMC,oCACA,QAAA,QAEA,oCACA,QAAA,QAEA,qBACA,SAAA,SACA,OAAA,K3DwiMD,KAAA,I2DjjMC,QAAS,GAYP,MAAA,IACA,aAAA,EACA,YAAA,KACA,WAAA,OACA,WAAA,KAEA,wBACA,QAAA,aAWA,MAAA,KACA,OAAA,K3D8hMH,OAAA,I2D7jMC,YAAa,OAkCX,OAAA,QACA,iBAAA,OACA,iBAAA,cACA,OAAA,IAAA,MAAA,K3D8hMH,cAAA,K2DthMC,6BACA,MAAA,KACA,OAAA,KACA,OAAA,EACA,iBAAA,KAEA,kBACA,SAAA,SACA,MAAA,IACA,OAAA,K3DyhMD,KAAA,I2DxhMC,QAAA,GACE,YAAA,K3D0hMH,eAAA,K2Dj/LC,MAAO,KAhCP,WAAA,O1D8iMA,YAAa,EAAE,IAAI,IAAI,eAEzB,uB0D3iMM,YAAA,KAEA,oCACA,0C3DmhMH,2C2D3hMD,6BAAA,6BAYI,MAAA,K3DmhMH,OAAA,K2D/hMD,WAAA,M1D2jME,UAAW,KDxBZ,0C2D9gMD,6BACE,YAAA,MAEA,2C3DghMD,6B2D5gMD,aAAA,M3D+gMC,kBACF,MAAA,I4D7wMC,KAAA,I3DyyME,eAAgB,KAElB,qBACE,OAAQ,MAkBZ,qCADA,sCADA,mBADA,oBAXA,gBADA,iBAOA,uBADA,wBADA,iBADA,kBADA,wBADA,yBASA,mCADA,oC2DpzME,oBAAA,qBAAA,oBAAA,qB3D2zMF,WADA,YAOA,uBADA,wBADA,qBADA,sBADA,cADA,e2D/zMI,a3Dq0MJ,cDvBC,kB4D7yMG,mB3DqzMJ,WADA,YAwBE,QAAS,MACT,QAAS,IASX,qCADA,mBANA,gBAGA,uBADA,iBADA,wBAIA,mCDhBC,oB6D/0MC,oB5Dk2MF,W+B51MA,uBhCo0MC,qB4D5zMG,cChBF,aACA,kB5D+1MF,W+Br1ME,MAAO,KhCy0MR,cgCt0MC,QAAS,MACT,aAAA,KhCw0MD,YAAA,KgC/zMC,YhCk0MD,MAAA,gBgC/zMC,WhCk0MD,MAAA,egC/zMC,MhCk0MD,QAAA,e8Dz1MC,MACA,QAAA,gBAEA,WACA,WAAA,O9B8BF,WACE,KAAA,EAAA,EAAA,EhCg0MD,MAAA,YgCzzMC,YAAa,KACb,iBAAA,YhC2zMD,OAAA,E+D31MC,Q/D81MD,QAAA,eC4BD,OACE,SAAU,M+Dn4MV,chE42MD,MAAA,aC+BD,YADA,YADA,YADA,YAIE,QAAS,e+Dp5MT,kBhEs4MC,mBgEr4MD,yBhEi4MD,kB+Dl1MD,mBA6IA,yB9D4tMA,kBACA,mB8Dj3ME,yB9D62MF,kBACA,mBACA,yB+Dv5MY,QAAA,eACV,yBAAU,YhE04MT,QAAA,gBC4BD,iB+Dp6MU,QAAA,gBhE64MX,c+D51MG,QAAS,oB/Dg2MV,c+Dl2MC,c/Dm2MH,QAAA,sB+D91MG,yB/Dk2MD,kBACF,QAAA,iB+D91MG,yB/Dk2MD,mBACF,QAAA,kBgEh6MC,yBhEo6MC,yBgEn6MD,QAAA,wBACA,+CAAU,YhEw6MT,QAAA,gBC4BD,iB+Dl8MU,QAAA,gBhE26MX,c+Dr2MG,QAAS,oB/Dy2MV,c+D32MC,c/D42MH,QAAA,sB+Dv2MG,+C/D22MD,kBACF,QAAA,iB+Dv2MG,+C/D22MD,mBACF,QAAA,kBgE97MC,+ChEk8MC,yBgEj8MD,QAAA,wBACA,gDAAU,YhEs8MT,QAAA,gBC4BD,iB+Dh+MU,QAAA,gBhEy8MX,c+D92MG,QAAS,oB/Dk3MV,c+Dp3MC,c/Dq3MH,QAAA,sB+Dh3MG,gD/Do3MD,kBACF,QAAA,iB+Dh3MG,gD/Do3MD,mBACF,QAAA,kBgE59MC,gDhEg+MC,yBgE/9MD,QAAA,wBACA,0BAAU,YhEo+MT,QAAA,gBC4BD,iB+D9/MU,QAAA,gBhEu+MX,c+Dv3MG,QAAS,oB/D23MV,c+D73MC,c/D83MH,QAAA,sB+Dz3MG,0B/D63MD,kBACF,QAAA,iB+Dz3MG,0B/D63MD,mBACF,QAAA,kBgEl/MC,0BhEs/MC,yBACF,QAAA,wBgEv/MC,yBhE2/MC,WACF,QAAA,gBgE5/MC,+ChEggNC,WACF,QAAA,gBgEjgNC,gDhEqgNC,WACF,QAAA,gBAGA,0B+Dh3MC,WA4BE,QAAS,gBC5LX,eAAU,QAAA,eACV,aAAU,ehEyhNT,QAAA,gBC4BD,oB+DnjNU,QAAA,gBhE4hNX,iB+D93MG,QAAS,oBAMX,iB/D23MD,iB+Dt2MG,QAAS,sB/D22MZ,qB+D/3MC,QAAS,e/Dk4MV,a+D53MC,qBAcE,QAAS,iB/Dm3MZ,sB+Dh4MC,QAAS,e/Dm4MV,a+D73MC,sBAOE,QAAS,kB/D23MZ,4B+D53MC,QAAS,eCpLT,ahEojNC,4BACF,QAAA,wBC6BD,aACE,cACE,QAAS","sourcesContent":["/*! normalize.css v3.0.3 | MIT License | github.com/necolas/normalize.css */\n\n//\n// 1. Set default font family to sans-serif.\n// 2. Prevent iOS and IE text size adjust after device orientation change,\n// without disabling user zoom.\n//\n\nhtml {\n font-family: sans-serif; // 1\n -ms-text-size-adjust: 100%; // 2\n -webkit-text-size-adjust: 100%; // 2\n}\n\n//\n// Remove default margin.\n//\n\nbody {\n margin: 0;\n}\n\n// HTML5 display definitions\n// ==========================================================================\n\n//\n// Correct `block` display not defined for any HTML5 element in IE 8/9.\n// Correct `block` display not defined for `details` or `summary` in IE 10/11\n// and Firefox.\n// Correct `block` display not defined for `main` in IE 11.\n//\n\narticle,\naside,\ndetails,\nfigcaption,\nfigure,\nfooter,\nheader,\nhgroup,\nmain,\nmenu,\nnav,\nsection,\nsummary {\n display: block;\n}\n\n//\n// 1. Correct `inline-block` display not defined in IE 8/9.\n// 2. Normalize vertical alignment of `progress` in Chrome, Firefox, and Opera.\n//\n\naudio,\ncanvas,\nprogress,\nvideo {\n display: inline-block; // 1\n vertical-align: baseline; // 2\n}\n\n//\n// Prevent modern browsers from displaying `audio` without controls.\n// Remove excess height in iOS 5 devices.\n//\n\naudio:not([controls]) {\n display: none;\n height: 0;\n}\n\n//\n// Address `[hidden]` styling not present in IE 8/9/10.\n// Hide the `template` element in IE 8/9/10/11, Safari, and Firefox < 22.\n//\n\n[hidden],\ntemplate {\n display: none;\n}\n\n// Links\n// ==========================================================================\n\n//\n// Remove the gray background color from active links in IE 10.\n//\n\na {\n background-color: transparent;\n}\n\n//\n// Improve readability of focused elements when they are also in an\n// active/hover state.\n//\n\na:active,\na:hover {\n outline: 0;\n}\n\n// Text-level semantics\n// ==========================================================================\n\n//\n// Address styling not present in IE 8/9/10/11, Safari, and Chrome.\n//\n\nabbr[title] {\n border-bottom: 1px dotted;\n}\n\n//\n// Address style set to `bolder` in Firefox 4+, Safari, and Chrome.\n//\n\nb,\nstrong {\n font-weight: bold;\n}\n\n//\n// Address styling not present in Safari and Chrome.\n//\n\ndfn {\n font-style: italic;\n}\n\n//\n// Address variable `h1` font-size and margin within `section` and `article`\n// contexts in Firefox 4+, Safari, and Chrome.\n//\n\nh1 {\n font-size: 2em;\n margin: 0.67em 0;\n}\n\n//\n// Address styling not present in IE 8/9.\n//\n\nmark {\n background: #ff0;\n color: #000;\n}\n\n//\n// Address inconsistent and variable font size in all browsers.\n//\n\nsmall {\n font-size: 80%;\n}\n\n//\n// Prevent `sub` and `sup` affecting `line-height` in all browsers.\n//\n\nsub,\nsup {\n font-size: 75%;\n line-height: 0;\n position: relative;\n vertical-align: baseline;\n}\n\nsup {\n top: -0.5em;\n}\n\nsub {\n bottom: -0.25em;\n}\n\n// Embedded content\n// ==========================================================================\n\n//\n// Remove border when inside `a` element in IE 8/9/10.\n//\n\nimg {\n border: 0;\n}\n\n//\n// Correct overflow not hidden in IE 9/10/11.\n//\n\nsvg:not(:root) {\n overflow: hidden;\n}\n\n// Grouping content\n// ==========================================================================\n\n//\n// Address margin not present in IE 8/9 and Safari.\n//\n\nfigure {\n margin: 1em 40px;\n}\n\n//\n// Address differences between Firefox and other browsers.\n//\n\nhr {\n box-sizing: content-box;\n height: 0;\n}\n\n//\n// Contain overflow in all browsers.\n//\n\npre {\n overflow: auto;\n}\n\n//\n// Address odd `em`-unit font size rendering in all browsers.\n//\n\ncode,\nkbd,\npre,\nsamp {\n font-family: monospace, monospace;\n font-size: 1em;\n}\n\n// Forms\n// ==========================================================================\n\n//\n// Known limitation: by default, Chrome and Safari on OS X allow very limited\n// styling of `select`, unless a `border` property is set.\n//\n\n//\n// 1. Correct color not being inherited.\n// Known issue: affects color of disabled elements.\n// 2. Correct font properties not being inherited.\n// 3. Address margins set differently in Firefox 4+, Safari, and Chrome.\n//\n\nbutton,\ninput,\noptgroup,\nselect,\ntextarea {\n color: inherit; // 1\n font: inherit; // 2\n margin: 0; // 3\n}\n\n//\n// Address `overflow` set to `hidden` in IE 8/9/10/11.\n//\n\nbutton {\n overflow: visible;\n}\n\n//\n// Address inconsistent `text-transform` inheritance for `button` and `select`.\n// All other form control elements do not inherit `text-transform` values.\n// Correct `button` style inheritance in Firefox, IE 8/9/10/11, and Opera.\n// Correct `select` style inheritance in Firefox.\n//\n\nbutton,\nselect {\n text-transform: none;\n}\n\n//\n// 1. Avoid the WebKit bug in Android 4.0.* where (2) destroys native `audio`\n// and `video` controls.\n// 2. Correct inability to style clickable `input` types in iOS.\n// 3. Improve usability and consistency of cursor style between image-type\n// `input` and others.\n//\n\nbutton,\nhtml input[type=\"button\"], // 1\ninput[type=\"reset\"],\ninput[type=\"submit\"] {\n -webkit-appearance: button; // 2\n cursor: pointer; // 3\n}\n\n//\n// Re-set default cursor for disabled elements.\n//\n\nbutton[disabled],\nhtml input[disabled] {\n cursor: default;\n}\n\n//\n// Remove inner padding and border in Firefox 4+.\n//\n\nbutton::-moz-focus-inner,\ninput::-moz-focus-inner {\n border: 0;\n padding: 0;\n}\n\n//\n// Address Firefox 4+ setting `line-height` on `input` using `!important` in\n// the UA stylesheet.\n//\n\ninput {\n line-height: normal;\n}\n\n//\n// It's recommended that you don't attempt to style these elements.\n// Firefox's implementation doesn't respect box-sizing, padding, or width.\n//\n// 1. Address box sizing set to `content-box` in IE 8/9/10.\n// 2. Remove excess padding in IE 8/9/10.\n//\n\ninput[type=\"checkbox\"],\ninput[type=\"radio\"] {\n box-sizing: border-box; // 1\n padding: 0; // 2\n}\n\n//\n// Fix the cursor style for Chrome's increment/decrement buttons. For certain\n// `font-size` values of the `input`, it causes the cursor style of the\n// decrement button to change from `default` to `text`.\n//\n\ninput[type=\"number\"]::-webkit-inner-spin-button,\ninput[type=\"number\"]::-webkit-outer-spin-button {\n height: auto;\n}\n\n//\n// 1. Address `appearance` set to `searchfield` in Safari and Chrome.\n// 2. Address `box-sizing` set to `border-box` in Safari and Chrome.\n//\n\ninput[type=\"search\"] {\n -webkit-appearance: textfield; // 1\n box-sizing: content-box; //2\n}\n\n//\n// Remove inner padding and search cancel button in Safari and Chrome on OS X.\n// Safari (but not Chrome) clips the cancel button when the search input has\n// padding (and `textfield` appearance).\n//\n\ninput[type=\"search\"]::-webkit-search-cancel-button,\ninput[type=\"search\"]::-webkit-search-decoration {\n -webkit-appearance: none;\n}\n\n//\n// Define consistent border, margin, and padding.\n//\n\nfieldset {\n border: 1px solid #c0c0c0;\n margin: 0 2px;\n padding: 0.35em 0.625em 0.75em;\n}\n\n//\n// 1. Correct `color` not being inherited in IE 8/9/10/11.\n// 2. Remove padding so people aren't caught out if they zero out fieldsets.\n//\n\nlegend {\n border: 0; // 1\n padding: 0; // 2\n}\n\n//\n// Remove default vertical scrollbar in IE 8/9/10/11.\n//\n\ntextarea {\n overflow: auto;\n}\n\n//\n// Don't inherit the `font-weight` (applied by a rule above).\n// NOTE: the default cannot safely be changed in Chrome and Safari on OS X.\n//\n\noptgroup {\n font-weight: bold;\n}\n\n// Tables\n// ==========================================================================\n\n//\n// Remove most spacing between table cells.\n//\n\ntable {\n border-collapse: collapse;\n border-spacing: 0;\n}\n\ntd,\nth {\n padding: 0;\n}\n","/*! Source: https://github.com/h5bp/html5-boilerplate/blob/master/src/css/main.css */\n\n// ==========================================================================\n// Print styles.\n// Inlined to avoid the additional HTTP request: h5bp.com/r\n// ==========================================================================\n\n@media print {\n *,\n *:before,\n *:after {\n background: transparent !important;\n color: #000 !important; // Black prints faster: h5bp.com/s\n box-shadow: none !important;\n text-shadow: none !important;\n }\n\n a,\n a:visited {\n text-decoration: underline;\n }\n\n a[href]:after {\n content: \" (\" attr(href) \")\";\n }\n\n abbr[title]:after {\n content: \" (\" attr(title) \")\";\n }\n\n // Don't show links that are fragment identifiers,\n // or use the `javascript:` pseudo protocol\n a[href^=\"#\"]:after,\n a[href^=\"javascript:\"]:after {\n content: \"\";\n }\n\n pre,\n blockquote {\n border: 1px solid #999;\n page-break-inside: avoid;\n }\n\n thead {\n display: table-header-group; // h5bp.com/t\n }\n\n tr,\n img {\n page-break-inside: avoid;\n }\n\n img {\n max-width: 100% !important;\n }\n\n p,\n h2,\n h3 {\n orphans: 3;\n widows: 3;\n }\n\n h2,\n h3 {\n page-break-after: avoid;\n }\n\n // Bootstrap specific changes start\n\n // Bootstrap components\n .navbar {\n display: none;\n }\n .btn,\n .dropup > .btn {\n > .caret {\n border-top-color: #000 !important;\n }\n }\n .label {\n border: 1px solid #000;\n }\n\n .table {\n border-collapse: collapse !important;\n\n td,\n th {\n background-color: #fff !important;\n }\n }\n .table-bordered {\n th,\n td {\n border: 1px solid #ddd !important;\n }\n }\n\n // Bootstrap specific changes end\n}\n","/*!\n * Bootstrap v3.3.7 (http://getbootstrap.com)\n * Copyright 2011-2016 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n */\n/*! normalize.css v3.0.3 | MIT License | github.com/necolas/normalize.css */\nhtml {\n font-family: sans-serif;\n -ms-text-size-adjust: 100%;\n -webkit-text-size-adjust: 100%;\n}\nbody {\n margin: 0;\n}\narticle,\naside,\ndetails,\nfigcaption,\nfigure,\nfooter,\nheader,\nhgroup,\nmain,\nmenu,\nnav,\nsection,\nsummary {\n display: block;\n}\naudio,\ncanvas,\nprogress,\nvideo {\n display: inline-block;\n vertical-align: baseline;\n}\naudio:not([controls]) {\n display: none;\n height: 0;\n}\n[hidden],\ntemplate {\n display: none;\n}\na {\n background-color: transparent;\n}\na:active,\na:hover {\n outline: 0;\n}\nabbr[title] {\n border-bottom: 1px dotted;\n}\nb,\nstrong {\n font-weight: bold;\n}\ndfn {\n font-style: italic;\n}\nh1 {\n font-size: 2em;\n margin: 0.67em 0;\n}\nmark {\n background: #ff0;\n color: #000;\n}\nsmall {\n font-size: 80%;\n}\nsub,\nsup {\n font-size: 75%;\n line-height: 0;\n position: relative;\n vertical-align: baseline;\n}\nsup {\n top: -0.5em;\n}\nsub {\n bottom: -0.25em;\n}\nimg {\n border: 0;\n}\nsvg:not(:root) {\n overflow: hidden;\n}\nfigure {\n margin: 1em 40px;\n}\nhr {\n box-sizing: content-box;\n height: 0;\n}\npre {\n overflow: auto;\n}\ncode,\nkbd,\npre,\nsamp {\n font-family: monospace, monospace;\n font-size: 1em;\n}\nbutton,\ninput,\noptgroup,\nselect,\ntextarea {\n color: inherit;\n font: inherit;\n margin: 0;\n}\nbutton {\n overflow: visible;\n}\nbutton,\nselect {\n text-transform: none;\n}\nbutton,\nhtml input[type=\"button\"],\ninput[type=\"reset\"],\ninput[type=\"submit\"] {\n -webkit-appearance: button;\n cursor: pointer;\n}\nbutton[disabled],\nhtml input[disabled] {\n cursor: default;\n}\nbutton::-moz-focus-inner,\ninput::-moz-focus-inner {\n border: 0;\n padding: 0;\n}\ninput {\n line-height: normal;\n}\ninput[type=\"checkbox\"],\ninput[type=\"radio\"] {\n box-sizing: border-box;\n padding: 0;\n}\ninput[type=\"number\"]::-webkit-inner-spin-button,\ninput[type=\"number\"]::-webkit-outer-spin-button {\n height: auto;\n}\ninput[type=\"search\"] {\n -webkit-appearance: textfield;\n box-sizing: content-box;\n}\ninput[type=\"search\"]::-webkit-search-cancel-button,\ninput[type=\"search\"]::-webkit-search-decoration {\n -webkit-appearance: none;\n}\nfieldset {\n border: 1px solid #c0c0c0;\n margin: 0 2px;\n padding: 0.35em 0.625em 0.75em;\n}\nlegend {\n border: 0;\n padding: 0;\n}\ntextarea {\n overflow: auto;\n}\noptgroup {\n font-weight: bold;\n}\ntable {\n border-collapse: collapse;\n border-spacing: 0;\n}\ntd,\nth {\n padding: 0;\n}\n/*! Source: https://github.com/h5bp/html5-boilerplate/blob/master/src/css/main.css */\n@media print {\n *,\n *:before,\n *:after {\n background: transparent !important;\n color: #000 !important;\n box-shadow: none !important;\n text-shadow: none !important;\n }\n a,\n a:visited {\n text-decoration: underline;\n }\n a[href]:after {\n content: \" (\" attr(href) \")\";\n }\n abbr[title]:after {\n content: \" (\" attr(title) \")\";\n }\n a[href^=\"#\"]:after,\n a[href^=\"javascript:\"]:after {\n content: \"\";\n }\n pre,\n blockquote {\n border: 1px solid #999;\n page-break-inside: avoid;\n }\n thead {\n display: table-header-group;\n }\n tr,\n img {\n page-break-inside: avoid;\n }\n img {\n max-width: 100% !important;\n }\n p,\n h2,\n h3 {\n orphans: 3;\n widows: 3;\n }\n h2,\n h3 {\n page-break-after: avoid;\n }\n .navbar {\n display: none;\n }\n .btn > .caret,\n .dropup > .btn > .caret {\n border-top-color: #000 !important;\n }\n .label {\n border: 1px solid #000;\n }\n .table {\n border-collapse: collapse !important;\n }\n .table td,\n .table th {\n background-color: #fff !important;\n }\n .table-bordered th,\n .table-bordered td {\n border: 1px solid #ddd !important;\n }\n}\n@font-face {\n font-family: 'Glyphicons Halflings';\n src: url('../fonts/glyphicons-halflings-regular.eot');\n src: url('../fonts/glyphicons-halflings-regular.eot?#iefix') format('embedded-opentype'), url('../fonts/glyphicons-halflings-regular.woff2') format('woff2'), url('../fonts/glyphicons-halflings-regular.woff') format('woff'), url('../fonts/glyphicons-halflings-regular.ttf') format('truetype'), url('../fonts/glyphicons-halflings-regular.svg#glyphicons_halflingsregular') format('svg');\n}\n.glyphicon {\n position: relative;\n top: 1px;\n display: inline-block;\n font-family: 'Glyphicons Halflings';\n font-style: normal;\n font-weight: normal;\n line-height: 1;\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale;\n}\n.glyphicon-asterisk:before {\n content: \"\\002a\";\n}\n.glyphicon-plus:before {\n content: \"\\002b\";\n}\n.glyphicon-euro:before,\n.glyphicon-eur:before {\n content: \"\\20ac\";\n}\n.glyphicon-minus:before {\n content: \"\\2212\";\n}\n.glyphicon-cloud:before {\n content: \"\\2601\";\n}\n.glyphicon-envelope:before {\n content: \"\\2709\";\n}\n.glyphicon-pencil:before {\n content: \"\\270f\";\n}\n.glyphicon-glass:before {\n content: \"\\e001\";\n}\n.glyphicon-music:before {\n content: \"\\e002\";\n}\n.glyphicon-search:before {\n content: \"\\e003\";\n}\n.glyphicon-heart:before {\n content: \"\\e005\";\n}\n.glyphicon-star:before {\n content: \"\\e006\";\n}\n.glyphicon-star-empty:before {\n content: \"\\e007\";\n}\n.glyphicon-user:before {\n content: \"\\e008\";\n}\n.glyphicon-film:before {\n content: \"\\e009\";\n}\n.glyphicon-th-large:before {\n content: \"\\e010\";\n}\n.glyphicon-th:before {\n content: \"\\e011\";\n}\n.glyphicon-th-list:before {\n content: \"\\e012\";\n}\n.glyphicon-ok:before {\n content: \"\\e013\";\n}\n.glyphicon-remove:before {\n content: \"\\e014\";\n}\n.glyphicon-zoom-in:before {\n content: \"\\e015\";\n}\n.glyphicon-zoom-out:before {\n content: \"\\e016\";\n}\n.glyphicon-off:before {\n content: \"\\e017\";\n}\n.glyphicon-signal:before {\n content: \"\\e018\";\n}\n.glyphicon-cog:before {\n content: \"\\e019\";\n}\n.glyphicon-trash:before {\n content: \"\\e020\";\n}\n.glyphicon-home:before {\n content: \"\\e021\";\n}\n.glyphicon-file:before {\n content: \"\\e022\";\n}\n.glyphicon-time:before {\n content: \"\\e023\";\n}\n.glyphicon-road:before {\n content: \"\\e024\";\n}\n.glyphicon-download-alt:before {\n content: \"\\e025\";\n}\n.glyphicon-download:before {\n content: \"\\e026\";\n}\n.glyphicon-upload:before {\n content: \"\\e027\";\n}\n.glyphicon-inbox:before {\n content: \"\\e028\";\n}\n.glyphicon-play-circle:before {\n content: \"\\e029\";\n}\n.glyphicon-repeat:before {\n content: \"\\e030\";\n}\n.glyphicon-refresh:before {\n content: \"\\e031\";\n}\n.glyphicon-list-alt:before {\n content: \"\\e032\";\n}\n.glyphicon-lock:before {\n content: \"\\e033\";\n}\n.glyphicon-flag:before {\n content: \"\\e034\";\n}\n.glyphicon-headphones:before {\n content: \"\\e035\";\n}\n.glyphicon-volume-off:before {\n content: \"\\e036\";\n}\n.glyphicon-volume-down:before {\n content: \"\\e037\";\n}\n.glyphicon-volume-up:before {\n content: \"\\e038\";\n}\n.glyphicon-qrcode:before {\n content: \"\\e039\";\n}\n.glyphicon-barcode:before {\n content: \"\\e040\";\n}\n.glyphicon-tag:before {\n content: \"\\e041\";\n}\n.glyphicon-tags:before {\n content: \"\\e042\";\n}\n.glyphicon-book:before {\n content: \"\\e043\";\n}\n.glyphicon-bookmark:before {\n content: \"\\e044\";\n}\n.glyphicon-print:before {\n content: \"\\e045\";\n}\n.glyphicon-camera:before {\n content: \"\\e046\";\n}\n.glyphicon-font:before {\n content: \"\\e047\";\n}\n.glyphicon-bold:before {\n content: \"\\e048\";\n}\n.glyphicon-italic:before {\n content: \"\\e049\";\n}\n.glyphicon-text-height:before {\n content: \"\\e050\";\n}\n.glyphicon-text-width:before {\n content: \"\\e051\";\n}\n.glyphicon-align-left:before {\n content: \"\\e052\";\n}\n.glyphicon-align-center:before {\n content: \"\\e053\";\n}\n.glyphicon-align-right:before {\n content: \"\\e054\";\n}\n.glyphicon-align-justify:before {\n content: \"\\e055\";\n}\n.glyphicon-list:before {\n content: \"\\e056\";\n}\n.glyphicon-indent-left:before {\n content: \"\\e057\";\n}\n.glyphicon-indent-right:before {\n content: \"\\e058\";\n}\n.glyphicon-facetime-video:before {\n content: \"\\e059\";\n}\n.glyphicon-picture:before {\n content: \"\\e060\";\n}\n.glyphicon-map-marker:before {\n content: \"\\e062\";\n}\n.glyphicon-adjust:before {\n content: \"\\e063\";\n}\n.glyphicon-tint:before {\n content: \"\\e064\";\n}\n.glyphicon-edit:before {\n content: \"\\e065\";\n}\n.glyphicon-share:before {\n content: \"\\e066\";\n}\n.glyphicon-check:before {\n content: \"\\e067\";\n}\n.glyphicon-move:before {\n content: \"\\e068\";\n}\n.glyphicon-step-backward:before {\n content: \"\\e069\";\n}\n.glyphicon-fast-backward:before {\n content: \"\\e070\";\n}\n.glyphicon-backward:before {\n content: \"\\e071\";\n}\n.glyphicon-play:before {\n content: \"\\e072\";\n}\n.glyphicon-pause:before {\n content: \"\\e073\";\n}\n.glyphicon-stop:before {\n content: \"\\e074\";\n}\n.glyphicon-forward:before {\n content: \"\\e075\";\n}\n.glyphicon-fast-forward:before {\n content: \"\\e076\";\n}\n.glyphicon-step-forward:before {\n content: \"\\e077\";\n}\n.glyphicon-eject:before {\n content: \"\\e078\";\n}\n.glyphicon-chevron-left:before {\n content: \"\\e079\";\n}\n.glyphicon-chevron-right:before {\n content: \"\\e080\";\n}\n.glyphicon-plus-sign:before {\n content: \"\\e081\";\n}\n.glyphicon-minus-sign:before {\n content: \"\\e082\";\n}\n.glyphicon-remove-sign:before {\n content: \"\\e083\";\n}\n.glyphicon-ok-sign:before {\n content: \"\\e084\";\n}\n.glyphicon-question-sign:before {\n content: \"\\e085\";\n}\n.glyphicon-info-sign:before {\n content: \"\\e086\";\n}\n.glyphicon-screenshot:before {\n content: \"\\e087\";\n}\n.glyphicon-remove-circle:before {\n content: \"\\e088\";\n}\n.glyphicon-ok-circle:before {\n content: \"\\e089\";\n}\n.glyphicon-ban-circle:before {\n content: \"\\e090\";\n}\n.glyphicon-arrow-left:before {\n content: \"\\e091\";\n}\n.glyphicon-arrow-right:before {\n content: \"\\e092\";\n}\n.glyphicon-arrow-up:before {\n content: \"\\e093\";\n}\n.glyphicon-arrow-down:before {\n content: \"\\e094\";\n}\n.glyphicon-share-alt:before {\n content: \"\\e095\";\n}\n.glyphicon-resize-full:before {\n content: \"\\e096\";\n}\n.glyphicon-resize-small:before {\n content: \"\\e097\";\n}\n.glyphicon-exclamation-sign:before {\n content: \"\\e101\";\n}\n.glyphicon-gift:before {\n content: \"\\e102\";\n}\n.glyphicon-leaf:before {\n content: \"\\e103\";\n}\n.glyphicon-fire:before {\n content: \"\\e104\";\n}\n.glyphicon-eye-open:before {\n content: \"\\e105\";\n}\n.glyphicon-eye-close:before {\n content: \"\\e106\";\n}\n.glyphicon-warning-sign:before {\n content: \"\\e107\";\n}\n.glyphicon-plane:before {\n content: \"\\e108\";\n}\n.glyphicon-calendar:before {\n content: \"\\e109\";\n}\n.glyphicon-random:before {\n content: \"\\e110\";\n}\n.glyphicon-comment:before {\n content: \"\\e111\";\n}\n.glyphicon-magnet:before {\n content: \"\\e112\";\n}\n.glyphicon-chevron-up:before {\n content: \"\\e113\";\n}\n.glyphicon-chevron-down:before {\n content: \"\\e114\";\n}\n.glyphicon-retweet:before {\n content: \"\\e115\";\n}\n.glyphicon-shopping-cart:before {\n content: \"\\e116\";\n}\n.glyphicon-folder-close:before {\n content: \"\\e117\";\n}\n.glyphicon-folder-open:before {\n content: \"\\e118\";\n}\n.glyphicon-resize-vertical:before {\n content: \"\\e119\";\n}\n.glyphicon-resize-horizontal:before {\n content: \"\\e120\";\n}\n.glyphicon-hdd:before {\n content: \"\\e121\";\n}\n.glyphicon-bullhorn:before {\n content: \"\\e122\";\n}\n.glyphicon-bell:before {\n content: \"\\e123\";\n}\n.glyphicon-certificate:before {\n content: \"\\e124\";\n}\n.glyphicon-thumbs-up:before {\n content: \"\\e125\";\n}\n.glyphicon-thumbs-down:before {\n content: \"\\e126\";\n}\n.glyphicon-hand-right:before {\n content: \"\\e127\";\n}\n.glyphicon-hand-left:before {\n content: \"\\e128\";\n}\n.glyphicon-hand-up:before {\n content: \"\\e129\";\n}\n.glyphicon-hand-down:before {\n content: \"\\e130\";\n}\n.glyphicon-circle-arrow-right:before {\n content: \"\\e131\";\n}\n.glyphicon-circle-arrow-left:before {\n content: \"\\e132\";\n}\n.glyphicon-circle-arrow-up:before {\n content: \"\\e133\";\n}\n.glyphicon-circle-arrow-down:before {\n content: \"\\e134\";\n}\n.glyphicon-globe:before {\n content: \"\\e135\";\n}\n.glyphicon-wrench:before {\n content: \"\\e136\";\n}\n.glyphicon-tasks:before {\n content: \"\\e137\";\n}\n.glyphicon-filter:before {\n content: \"\\e138\";\n}\n.glyphicon-briefcase:before {\n content: \"\\e139\";\n}\n.glyphicon-fullscreen:before {\n content: \"\\e140\";\n}\n.glyphicon-dashboard:before {\n content: \"\\e141\";\n}\n.glyphicon-paperclip:before {\n content: \"\\e142\";\n}\n.glyphicon-heart-empty:before {\n content: \"\\e143\";\n}\n.glyphicon-link:before {\n content: \"\\e144\";\n}\n.glyphicon-phone:before {\n content: \"\\e145\";\n}\n.glyphicon-pushpin:before {\n content: \"\\e146\";\n}\n.glyphicon-usd:before {\n content: \"\\e148\";\n}\n.glyphicon-gbp:before {\n content: \"\\e149\";\n}\n.glyphicon-sort:before {\n content: \"\\e150\";\n}\n.glyphicon-sort-by-alphabet:before {\n content: \"\\e151\";\n}\n.glyphicon-sort-by-alphabet-alt:before {\n content: \"\\e152\";\n}\n.glyphicon-sort-by-order:before {\n content: \"\\e153\";\n}\n.glyphicon-sort-by-order-alt:before {\n content: \"\\e154\";\n}\n.glyphicon-sort-by-attributes:before {\n content: \"\\e155\";\n}\n.glyphicon-sort-by-attributes-alt:before {\n content: \"\\e156\";\n}\n.glyphicon-unchecked:before {\n content: \"\\e157\";\n}\n.glyphicon-expand:before {\n content: \"\\e158\";\n}\n.glyphicon-collapse-down:before {\n content: \"\\e159\";\n}\n.glyphicon-collapse-up:before {\n content: \"\\e160\";\n}\n.glyphicon-log-in:before {\n content: \"\\e161\";\n}\n.glyphicon-flash:before {\n content: \"\\e162\";\n}\n.glyphicon-log-out:before {\n content: \"\\e163\";\n}\n.glyphicon-new-window:before {\n content: \"\\e164\";\n}\n.glyphicon-record:before {\n content: \"\\e165\";\n}\n.glyphicon-save:before {\n content: \"\\e166\";\n}\n.glyphicon-open:before {\n content: \"\\e167\";\n}\n.glyphicon-saved:before {\n content: \"\\e168\";\n}\n.glyphicon-import:before {\n content: \"\\e169\";\n}\n.glyphicon-export:before {\n content: \"\\e170\";\n}\n.glyphicon-send:before {\n content: \"\\e171\";\n}\n.glyphicon-floppy-disk:before {\n content: \"\\e172\";\n}\n.glyphicon-floppy-saved:before {\n content: \"\\e173\";\n}\n.glyphicon-floppy-remove:before {\n content: \"\\e174\";\n}\n.glyphicon-floppy-save:before {\n content: \"\\e175\";\n}\n.glyphicon-floppy-open:before {\n content: \"\\e176\";\n}\n.glyphicon-credit-card:before {\n content: \"\\e177\";\n}\n.glyphicon-transfer:before {\n content: \"\\e178\";\n}\n.glyphicon-cutlery:before {\n content: \"\\e179\";\n}\n.glyphicon-header:before {\n content: \"\\e180\";\n}\n.glyphicon-compressed:before {\n content: \"\\e181\";\n}\n.glyphicon-earphone:before {\n content: \"\\e182\";\n}\n.glyphicon-phone-alt:before {\n content: \"\\e183\";\n}\n.glyphicon-tower:before {\n content: \"\\e184\";\n}\n.glyphicon-stats:before {\n content: \"\\e185\";\n}\n.glyphicon-sd-video:before {\n content: \"\\e186\";\n}\n.glyphicon-hd-video:before {\n content: \"\\e187\";\n}\n.glyphicon-subtitles:before {\n content: \"\\e188\";\n}\n.glyphicon-sound-stereo:before {\n content: \"\\e189\";\n}\n.glyphicon-sound-dolby:before {\n content: \"\\e190\";\n}\n.glyphicon-sound-5-1:before {\n content: \"\\e191\";\n}\n.glyphicon-sound-6-1:before {\n content: \"\\e192\";\n}\n.glyphicon-sound-7-1:before {\n content: \"\\e193\";\n}\n.glyphicon-copyright-mark:before {\n content: \"\\e194\";\n}\n.glyphicon-registration-mark:before {\n content: \"\\e195\";\n}\n.glyphicon-cloud-download:before {\n content: \"\\e197\";\n}\n.glyphicon-cloud-upload:before {\n content: \"\\e198\";\n}\n.glyphicon-tree-conifer:before {\n content: \"\\e199\";\n}\n.glyphicon-tree-deciduous:before {\n content: \"\\e200\";\n}\n.glyphicon-cd:before {\n content: \"\\e201\";\n}\n.glyphicon-save-file:before {\n content: \"\\e202\";\n}\n.glyphicon-open-file:before {\n content: \"\\e203\";\n}\n.glyphicon-level-up:before {\n content: \"\\e204\";\n}\n.glyphicon-copy:before {\n content: \"\\e205\";\n}\n.glyphicon-paste:before {\n content: \"\\e206\";\n}\n.glyphicon-alert:before {\n content: \"\\e209\";\n}\n.glyphicon-equalizer:before {\n content: \"\\e210\";\n}\n.glyphicon-king:before {\n content: \"\\e211\";\n}\n.glyphicon-queen:before {\n content: \"\\e212\";\n}\n.glyphicon-pawn:before {\n content: \"\\e213\";\n}\n.glyphicon-bishop:before {\n content: \"\\e214\";\n}\n.glyphicon-knight:before {\n content: \"\\e215\";\n}\n.glyphicon-baby-formula:before {\n content: \"\\e216\";\n}\n.glyphicon-tent:before {\n content: \"\\26fa\";\n}\n.glyphicon-blackboard:before {\n content: \"\\e218\";\n}\n.glyphicon-bed:before {\n content: \"\\e219\";\n}\n.glyphicon-apple:before {\n content: \"\\f8ff\";\n}\n.glyphicon-erase:before {\n content: \"\\e221\";\n}\n.glyphicon-hourglass:before {\n content: \"\\231b\";\n}\n.glyphicon-lamp:before {\n content: \"\\e223\";\n}\n.glyphicon-duplicate:before {\n content: \"\\e224\";\n}\n.glyphicon-piggy-bank:before {\n content: \"\\e225\";\n}\n.glyphicon-scissors:before {\n content: \"\\e226\";\n}\n.glyphicon-bitcoin:before {\n content: \"\\e227\";\n}\n.glyphicon-btc:before {\n content: \"\\e227\";\n}\n.glyphicon-xbt:before {\n content: \"\\e227\";\n}\n.glyphicon-yen:before {\n content: \"\\00a5\";\n}\n.glyphicon-jpy:before {\n content: \"\\00a5\";\n}\n.glyphicon-ruble:before {\n content: \"\\20bd\";\n}\n.glyphicon-rub:before {\n content: \"\\20bd\";\n}\n.glyphicon-scale:before {\n content: \"\\e230\";\n}\n.glyphicon-ice-lolly:before {\n content: \"\\e231\";\n}\n.glyphicon-ice-lolly-tasted:before {\n content: \"\\e232\";\n}\n.glyphicon-education:before {\n content: \"\\e233\";\n}\n.glyphicon-option-horizontal:before {\n content: \"\\e234\";\n}\n.glyphicon-option-vertical:before {\n content: \"\\e235\";\n}\n.glyphicon-menu-hamburger:before {\n content: \"\\e236\";\n}\n.glyphicon-modal-window:before {\n content: \"\\e237\";\n}\n.glyphicon-oil:before {\n content: \"\\e238\";\n}\n.glyphicon-grain:before {\n content: \"\\e239\";\n}\n.glyphicon-sunglasses:before {\n content: \"\\e240\";\n}\n.glyphicon-text-size:before {\n content: \"\\e241\";\n}\n.glyphicon-text-color:before {\n content: \"\\e242\";\n}\n.glyphicon-text-background:before {\n content: \"\\e243\";\n}\n.glyphicon-object-align-top:before {\n content: \"\\e244\";\n}\n.glyphicon-object-align-bottom:before {\n content: \"\\e245\";\n}\n.glyphicon-object-align-horizontal:before {\n content: \"\\e246\";\n}\n.glyphicon-object-align-left:before {\n content: \"\\e247\";\n}\n.glyphicon-object-align-vertical:before {\n content: \"\\e248\";\n}\n.glyphicon-object-align-right:before {\n content: \"\\e249\";\n}\n.glyphicon-triangle-right:before {\n content: \"\\e250\";\n}\n.glyphicon-triangle-left:before {\n content: \"\\e251\";\n}\n.glyphicon-triangle-bottom:before {\n content: \"\\e252\";\n}\n.glyphicon-triangle-top:before {\n content: \"\\e253\";\n}\n.glyphicon-console:before {\n content: \"\\e254\";\n}\n.glyphicon-superscript:before {\n content: \"\\e255\";\n}\n.glyphicon-subscript:before {\n content: \"\\e256\";\n}\n.glyphicon-menu-left:before {\n content: \"\\e257\";\n}\n.glyphicon-menu-right:before {\n content: \"\\e258\";\n}\n.glyphicon-menu-down:before {\n content: \"\\e259\";\n}\n.glyphicon-menu-up:before {\n content: \"\\e260\";\n}\n* {\n -webkit-box-sizing: border-box;\n -moz-box-sizing: border-box;\n box-sizing: border-box;\n}\n*:before,\n*:after {\n -webkit-box-sizing: border-box;\n -moz-box-sizing: border-box;\n box-sizing: border-box;\n}\nhtml {\n font-size: 10px;\n -webkit-tap-highlight-color: rgba(0, 0, 0, 0);\n}\nbody {\n font-family: \"Helvetica Neue\", Helvetica, Arial, sans-serif;\n font-size: 14px;\n line-height: 1.42857143;\n color: #333333;\n background-color: #fff;\n}\ninput,\nbutton,\nselect,\ntextarea {\n font-family: inherit;\n font-size: inherit;\n line-height: inherit;\n}\na {\n color: #337ab7;\n text-decoration: none;\n}\na:hover,\na:focus {\n color: #23527c;\n text-decoration: underline;\n}\na:focus {\n outline: 5px auto -webkit-focus-ring-color;\n outline-offset: -2px;\n}\nfigure {\n margin: 0;\n}\nimg {\n vertical-align: middle;\n}\n.img-responsive,\n.thumbnail > img,\n.thumbnail a > img,\n.carousel-inner > .item > img,\n.carousel-inner > .item > a > img {\n display: block;\n max-width: 100%;\n height: auto;\n}\n.img-rounded {\n border-radius: 6px;\n}\n.img-thumbnail {\n padding: 4px;\n line-height: 1.42857143;\n background-color: #fff;\n border: 1px solid #ddd;\n border-radius: 4px;\n -webkit-transition: all 0.2s ease-in-out;\n -o-transition: all 0.2s ease-in-out;\n transition: all 0.2s ease-in-out;\n display: inline-block;\n max-width: 100%;\n height: auto;\n}\n.img-circle {\n border-radius: 50%;\n}\nhr {\n margin-top: 20px;\n margin-bottom: 20px;\n border: 0;\n border-top: 1px solid #eeeeee;\n}\n.sr-only {\n position: absolute;\n width: 1px;\n height: 1px;\n margin: -1px;\n padding: 0;\n overflow: hidden;\n clip: rect(0, 0, 0, 0);\n border: 0;\n}\n.sr-only-focusable:active,\n.sr-only-focusable:focus {\n position: static;\n width: auto;\n height: auto;\n margin: 0;\n overflow: visible;\n clip: auto;\n}\n[role=\"button\"] {\n cursor: pointer;\n}\nh1,\nh2,\nh3,\nh4,\nh5,\nh6,\n.h1,\n.h2,\n.h3,\n.h4,\n.h5,\n.h6 {\n font-family: inherit;\n font-weight: 500;\n line-height: 1.1;\n color: inherit;\n}\nh1 small,\nh2 small,\nh3 small,\nh4 small,\nh5 small,\nh6 small,\n.h1 small,\n.h2 small,\n.h3 small,\n.h4 small,\n.h5 small,\n.h6 small,\nh1 .small,\nh2 .small,\nh3 .small,\nh4 .small,\nh5 .small,\nh6 .small,\n.h1 .small,\n.h2 .small,\n.h3 .small,\n.h4 .small,\n.h5 .small,\n.h6 .small {\n font-weight: normal;\n line-height: 1;\n color: #777777;\n}\nh1,\n.h1,\nh2,\n.h2,\nh3,\n.h3 {\n margin-top: 20px;\n margin-bottom: 10px;\n}\nh1 small,\n.h1 small,\nh2 small,\n.h2 small,\nh3 small,\n.h3 small,\nh1 .small,\n.h1 .small,\nh2 .small,\n.h2 .small,\nh3 .small,\n.h3 .small {\n font-size: 65%;\n}\nh4,\n.h4,\nh5,\n.h5,\nh6,\n.h6 {\n margin-top: 10px;\n margin-bottom: 10px;\n}\nh4 small,\n.h4 small,\nh5 small,\n.h5 small,\nh6 small,\n.h6 small,\nh4 .small,\n.h4 .small,\nh5 .small,\n.h5 .small,\nh6 .small,\n.h6 .small {\n font-size: 75%;\n}\nh1,\n.h1 {\n font-size: 36px;\n}\nh2,\n.h2 {\n font-size: 30px;\n}\nh3,\n.h3 {\n font-size: 24px;\n}\nh4,\n.h4 {\n font-size: 18px;\n}\nh5,\n.h5 {\n font-size: 14px;\n}\nh6,\n.h6 {\n font-size: 12px;\n}\np {\n margin: 0 0 10px;\n}\n.lead {\n margin-bottom: 20px;\n font-size: 16px;\n font-weight: 300;\n line-height: 1.4;\n}\n@media (min-width: 768px) {\n .lead {\n font-size: 21px;\n }\n}\nsmall,\n.small {\n font-size: 85%;\n}\nmark,\n.mark {\n background-color: #fcf8e3;\n padding: .2em;\n}\n.text-left {\n text-align: left;\n}\n.text-right {\n text-align: right;\n}\n.text-center {\n text-align: center;\n}\n.text-justify {\n text-align: justify;\n}\n.text-nowrap {\n white-space: nowrap;\n}\n.text-lowercase {\n text-transform: lowercase;\n}\n.text-uppercase {\n text-transform: uppercase;\n}\n.text-capitalize {\n text-transform: capitalize;\n}\n.text-muted {\n color: #777777;\n}\n.text-primary {\n color: #337ab7;\n}\na.text-primary:hover,\na.text-primary:focus {\n color: #286090;\n}\n.text-success {\n color: #3c763d;\n}\na.text-success:hover,\na.text-success:focus {\n color: #2b542c;\n}\n.text-info {\n color: #31708f;\n}\na.text-info:hover,\na.text-info:focus {\n color: #245269;\n}\n.text-warning {\n color: #8a6d3b;\n}\na.text-warning:hover,\na.text-warning:focus {\n color: #66512c;\n}\n.text-danger {\n color: #a94442;\n}\na.text-danger:hover,\na.text-danger:focus {\n color: #843534;\n}\n.bg-primary {\n color: #fff;\n background-color: #337ab7;\n}\na.bg-primary:hover,\na.bg-primary:focus {\n background-color: #286090;\n}\n.bg-success {\n background-color: #dff0d8;\n}\na.bg-success:hover,\na.bg-success:focus {\n background-color: #c1e2b3;\n}\n.bg-info {\n background-color: #d9edf7;\n}\na.bg-info:hover,\na.bg-info:focus {\n background-color: #afd9ee;\n}\n.bg-warning {\n background-color: #fcf8e3;\n}\na.bg-warning:hover,\na.bg-warning:focus {\n background-color: #f7ecb5;\n}\n.bg-danger {\n background-color: #f2dede;\n}\na.bg-danger:hover,\na.bg-danger:focus {\n background-color: #e4b9b9;\n}\n.page-header {\n padding-bottom: 9px;\n margin: 40px 0 20px;\n border-bottom: 1px solid #eeeeee;\n}\nul,\nol {\n margin-top: 0;\n margin-bottom: 10px;\n}\nul ul,\nol ul,\nul ol,\nol ol {\n margin-bottom: 0;\n}\n.list-unstyled {\n padding-left: 0;\n list-style: none;\n}\n.list-inline {\n padding-left: 0;\n list-style: none;\n margin-left: -5px;\n}\n.list-inline > li {\n display: inline-block;\n padding-left: 5px;\n padding-right: 5px;\n}\ndl {\n margin-top: 0;\n margin-bottom: 20px;\n}\ndt,\ndd {\n line-height: 1.42857143;\n}\ndt {\n font-weight: bold;\n}\ndd {\n margin-left: 0;\n}\n@media (min-width: 768px) {\n .dl-horizontal dt {\n float: left;\n width: 160px;\n clear: left;\n text-align: right;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n }\n .dl-horizontal dd {\n margin-left: 180px;\n }\n}\nabbr[title],\nabbr[data-original-title] {\n cursor: help;\n border-bottom: 1px dotted #777777;\n}\n.initialism {\n font-size: 90%;\n text-transform: uppercase;\n}\nblockquote {\n padding: 10px 20px;\n margin: 0 0 20px;\n font-size: 17.5px;\n border-left: 5px solid #eeeeee;\n}\nblockquote p:last-child,\nblockquote ul:last-child,\nblockquote ol:last-child {\n margin-bottom: 0;\n}\nblockquote footer,\nblockquote small,\nblockquote .small {\n display: block;\n font-size: 80%;\n line-height: 1.42857143;\n color: #777777;\n}\nblockquote footer:before,\nblockquote small:before,\nblockquote .small:before {\n content: '\\2014 \\00A0';\n}\n.blockquote-reverse,\nblockquote.pull-right {\n padding-right: 15px;\n padding-left: 0;\n border-right: 5px solid #eeeeee;\n border-left: 0;\n text-align: right;\n}\n.blockquote-reverse footer:before,\nblockquote.pull-right footer:before,\n.blockquote-reverse small:before,\nblockquote.pull-right small:before,\n.blockquote-reverse .small:before,\nblockquote.pull-right .small:before {\n content: '';\n}\n.blockquote-reverse footer:after,\nblockquote.pull-right footer:after,\n.blockquote-reverse small:after,\nblockquote.pull-right small:after,\n.blockquote-reverse .small:after,\nblockquote.pull-right .small:after {\n content: '\\00A0 \\2014';\n}\naddress {\n margin-bottom: 20px;\n font-style: normal;\n line-height: 1.42857143;\n}\ncode,\nkbd,\npre,\nsamp {\n font-family: Menlo, Monaco, Consolas, \"Courier New\", monospace;\n}\ncode {\n padding: 2px 4px;\n font-size: 90%;\n color: #c7254e;\n background-color: #f9f2f4;\n border-radius: 4px;\n}\nkbd {\n padding: 2px 4px;\n font-size: 90%;\n color: #fff;\n background-color: #333;\n border-radius: 3px;\n box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.25);\n}\nkbd kbd {\n padding: 0;\n font-size: 100%;\n font-weight: bold;\n box-shadow: none;\n}\npre {\n display: block;\n padding: 9.5px;\n margin: 0 0 10px;\n font-size: 13px;\n line-height: 1.42857143;\n word-break: break-all;\n word-wrap: break-word;\n color: #333333;\n background-color: #f5f5f5;\n border: 1px solid #ccc;\n border-radius: 4px;\n}\npre code {\n padding: 0;\n font-size: inherit;\n color: inherit;\n white-space: pre-wrap;\n background-color: transparent;\n border-radius: 0;\n}\n.pre-scrollable {\n max-height: 340px;\n overflow-y: scroll;\n}\n.container {\n margin-right: auto;\n margin-left: auto;\n padding-left: 15px;\n padding-right: 15px;\n}\n@media (min-width: 768px) {\n .container {\n width: 750px;\n }\n}\n@media (min-width: 992px) {\n .container {\n width: 970px;\n }\n}\n@media (min-width: 1200px) {\n .container {\n width: 1170px;\n }\n}\n.container-fluid {\n margin-right: auto;\n margin-left: auto;\n padding-left: 15px;\n padding-right: 15px;\n}\n.row {\n margin-left: -15px;\n margin-right: -15px;\n}\n.col-xs-1, .col-sm-1, .col-md-1, .col-lg-1, .col-xs-2, .col-sm-2, .col-md-2, .col-lg-2, .col-xs-3, .col-sm-3, .col-md-3, .col-lg-3, .col-xs-4, .col-sm-4, .col-md-4, .col-lg-4, .col-xs-5, .col-sm-5, .col-md-5, .col-lg-5, .col-xs-6, .col-sm-6, .col-md-6, .col-lg-6, .col-xs-7, .col-sm-7, .col-md-7, .col-lg-7, .col-xs-8, .col-sm-8, .col-md-8, .col-lg-8, .col-xs-9, .col-sm-9, .col-md-9, .col-lg-9, .col-xs-10, .col-sm-10, .col-md-10, .col-lg-10, .col-xs-11, .col-sm-11, .col-md-11, .col-lg-11, .col-xs-12, .col-sm-12, .col-md-12, .col-lg-12 {\n position: relative;\n min-height: 1px;\n padding-left: 15px;\n padding-right: 15px;\n}\n.col-xs-1, .col-xs-2, .col-xs-3, .col-xs-4, .col-xs-5, .col-xs-6, .col-xs-7, .col-xs-8, .col-xs-9, .col-xs-10, .col-xs-11, .col-xs-12 {\n float: left;\n}\n.col-xs-12 {\n width: 100%;\n}\n.col-xs-11 {\n width: 91.66666667%;\n}\n.col-xs-10 {\n width: 83.33333333%;\n}\n.col-xs-9 {\n width: 75%;\n}\n.col-xs-8 {\n width: 66.66666667%;\n}\n.col-xs-7 {\n width: 58.33333333%;\n}\n.col-xs-6 {\n width: 50%;\n}\n.col-xs-5 {\n width: 41.66666667%;\n}\n.col-xs-4 {\n width: 33.33333333%;\n}\n.col-xs-3 {\n width: 25%;\n}\n.col-xs-2 {\n width: 16.66666667%;\n}\n.col-xs-1 {\n width: 8.33333333%;\n}\n.col-xs-pull-12 {\n right: 100%;\n}\n.col-xs-pull-11 {\n right: 91.66666667%;\n}\n.col-xs-pull-10 {\n right: 83.33333333%;\n}\n.col-xs-pull-9 {\n right: 75%;\n}\n.col-xs-pull-8 {\n right: 66.66666667%;\n}\n.col-xs-pull-7 {\n right: 58.33333333%;\n}\n.col-xs-pull-6 {\n right: 50%;\n}\n.col-xs-pull-5 {\n right: 41.66666667%;\n}\n.col-xs-pull-4 {\n right: 33.33333333%;\n}\n.col-xs-pull-3 {\n right: 25%;\n}\n.col-xs-pull-2 {\n right: 16.66666667%;\n}\n.col-xs-pull-1 {\n right: 8.33333333%;\n}\n.col-xs-pull-0 {\n right: auto;\n}\n.col-xs-push-12 {\n left: 100%;\n}\n.col-xs-push-11 {\n left: 91.66666667%;\n}\n.col-xs-push-10 {\n left: 83.33333333%;\n}\n.col-xs-push-9 {\n left: 75%;\n}\n.col-xs-push-8 {\n left: 66.66666667%;\n}\n.col-xs-push-7 {\n left: 58.33333333%;\n}\n.col-xs-push-6 {\n left: 50%;\n}\n.col-xs-push-5 {\n left: 41.66666667%;\n}\n.col-xs-push-4 {\n left: 33.33333333%;\n}\n.col-xs-push-3 {\n left: 25%;\n}\n.col-xs-push-2 {\n left: 16.66666667%;\n}\n.col-xs-push-1 {\n left: 8.33333333%;\n}\n.col-xs-push-0 {\n left: auto;\n}\n.col-xs-offset-12 {\n margin-left: 100%;\n}\n.col-xs-offset-11 {\n margin-left: 91.66666667%;\n}\n.col-xs-offset-10 {\n margin-left: 83.33333333%;\n}\n.col-xs-offset-9 {\n margin-left: 75%;\n}\n.col-xs-offset-8 {\n margin-left: 66.66666667%;\n}\n.col-xs-offset-7 {\n margin-left: 58.33333333%;\n}\n.col-xs-offset-6 {\n margin-left: 50%;\n}\n.col-xs-offset-5 {\n margin-left: 41.66666667%;\n}\n.col-xs-offset-4 {\n margin-left: 33.33333333%;\n}\n.col-xs-offset-3 {\n margin-left: 25%;\n}\n.col-xs-offset-2 {\n margin-left: 16.66666667%;\n}\n.col-xs-offset-1 {\n margin-left: 8.33333333%;\n}\n.col-xs-offset-0 {\n margin-left: 0%;\n}\n@media (min-width: 768px) {\n .col-sm-1, .col-sm-2, .col-sm-3, .col-sm-4, .col-sm-5, .col-sm-6, .col-sm-7, .col-sm-8, .col-sm-9, .col-sm-10, .col-sm-11, .col-sm-12 {\n float: left;\n }\n .col-sm-12 {\n width: 100%;\n }\n .col-sm-11 {\n width: 91.66666667%;\n }\n .col-sm-10 {\n width: 83.33333333%;\n }\n .col-sm-9 {\n width: 75%;\n }\n .col-sm-8 {\n width: 66.66666667%;\n }\n .col-sm-7 {\n width: 58.33333333%;\n }\n .col-sm-6 {\n width: 50%;\n }\n .col-sm-5 {\n width: 41.66666667%;\n }\n .col-sm-4 {\n width: 33.33333333%;\n }\n .col-sm-3 {\n width: 25%;\n }\n .col-sm-2 {\n width: 16.66666667%;\n }\n .col-sm-1 {\n width: 8.33333333%;\n }\n .col-sm-pull-12 {\n right: 100%;\n }\n .col-sm-pull-11 {\n right: 91.66666667%;\n }\n .col-sm-pull-10 {\n right: 83.33333333%;\n }\n .col-sm-pull-9 {\n right: 75%;\n }\n .col-sm-pull-8 {\n right: 66.66666667%;\n }\n .col-sm-pull-7 {\n right: 58.33333333%;\n }\n .col-sm-pull-6 {\n right: 50%;\n }\n .col-sm-pull-5 {\n right: 41.66666667%;\n }\n .col-sm-pull-4 {\n right: 33.33333333%;\n }\n .col-sm-pull-3 {\n right: 25%;\n }\n .col-sm-pull-2 {\n right: 16.66666667%;\n }\n .col-sm-pull-1 {\n right: 8.33333333%;\n }\n .col-sm-pull-0 {\n right: auto;\n }\n .col-sm-push-12 {\n left: 100%;\n }\n .col-sm-push-11 {\n left: 91.66666667%;\n }\n .col-sm-push-10 {\n left: 83.33333333%;\n }\n .col-sm-push-9 {\n left: 75%;\n }\n .col-sm-push-8 {\n left: 66.66666667%;\n }\n .col-sm-push-7 {\n left: 58.33333333%;\n }\n .col-sm-push-6 {\n left: 50%;\n }\n .col-sm-push-5 {\n left: 41.66666667%;\n }\n .col-sm-push-4 {\n left: 33.33333333%;\n }\n .col-sm-push-3 {\n left: 25%;\n }\n .col-sm-push-2 {\n left: 16.66666667%;\n }\n .col-sm-push-1 {\n left: 8.33333333%;\n }\n .col-sm-push-0 {\n left: auto;\n }\n .col-sm-offset-12 {\n margin-left: 100%;\n }\n .col-sm-offset-11 {\n margin-left: 91.66666667%;\n }\n .col-sm-offset-10 {\n margin-left: 83.33333333%;\n }\n .col-sm-offset-9 {\n margin-left: 75%;\n }\n .col-sm-offset-8 {\n margin-left: 66.66666667%;\n }\n .col-sm-offset-7 {\n margin-left: 58.33333333%;\n }\n .col-sm-offset-6 {\n margin-left: 50%;\n }\n .col-sm-offset-5 {\n margin-left: 41.66666667%;\n }\n .col-sm-offset-4 {\n margin-left: 33.33333333%;\n }\n .col-sm-offset-3 {\n margin-left: 25%;\n }\n .col-sm-offset-2 {\n margin-left: 16.66666667%;\n }\n .col-sm-offset-1 {\n margin-left: 8.33333333%;\n }\n .col-sm-offset-0 {\n margin-left: 0%;\n }\n}\n@media (min-width: 992px) {\n .col-md-1, .col-md-2, .col-md-3, .col-md-4, .col-md-5, .col-md-6, .col-md-7, .col-md-8, .col-md-9, .col-md-10, .col-md-11, .col-md-12 {\n float: left;\n }\n .col-md-12 {\n width: 100%;\n }\n .col-md-11 {\n width: 91.66666667%;\n }\n .col-md-10 {\n width: 83.33333333%;\n }\n .col-md-9 {\n width: 75%;\n }\n .col-md-8 {\n width: 66.66666667%;\n }\n .col-md-7 {\n width: 58.33333333%;\n }\n .col-md-6 {\n width: 50%;\n }\n .col-md-5 {\n width: 41.66666667%;\n }\n .col-md-4 {\n width: 33.33333333%;\n }\n .col-md-3 {\n width: 25%;\n }\n .col-md-2 {\n width: 16.66666667%;\n }\n .col-md-1 {\n width: 8.33333333%;\n }\n .col-md-pull-12 {\n right: 100%;\n }\n .col-md-pull-11 {\n right: 91.66666667%;\n }\n .col-md-pull-10 {\n right: 83.33333333%;\n }\n .col-md-pull-9 {\n right: 75%;\n }\n .col-md-pull-8 {\n right: 66.66666667%;\n }\n .col-md-pull-7 {\n right: 58.33333333%;\n }\n .col-md-pull-6 {\n right: 50%;\n }\n .col-md-pull-5 {\n right: 41.66666667%;\n }\n .col-md-pull-4 {\n right: 33.33333333%;\n }\n .col-md-pull-3 {\n right: 25%;\n }\n .col-md-pull-2 {\n right: 16.66666667%;\n }\n .col-md-pull-1 {\n right: 8.33333333%;\n }\n .col-md-pull-0 {\n right: auto;\n }\n .col-md-push-12 {\n left: 100%;\n }\n .col-md-push-11 {\n left: 91.66666667%;\n }\n .col-md-push-10 {\n left: 83.33333333%;\n }\n .col-md-push-9 {\n left: 75%;\n }\n .col-md-push-8 {\n left: 66.66666667%;\n }\n .col-md-push-7 {\n left: 58.33333333%;\n }\n .col-md-push-6 {\n left: 50%;\n }\n .col-md-push-5 {\n left: 41.66666667%;\n }\n .col-md-push-4 {\n left: 33.33333333%;\n }\n .col-md-push-3 {\n left: 25%;\n }\n .col-md-push-2 {\n left: 16.66666667%;\n }\n .col-md-push-1 {\n left: 8.33333333%;\n }\n .col-md-push-0 {\n left: auto;\n }\n .col-md-offset-12 {\n margin-left: 100%;\n }\n .col-md-offset-11 {\n margin-left: 91.66666667%;\n }\n .col-md-offset-10 {\n margin-left: 83.33333333%;\n }\n .col-md-offset-9 {\n margin-left: 75%;\n }\n .col-md-offset-8 {\n margin-left: 66.66666667%;\n }\n .col-md-offset-7 {\n margin-left: 58.33333333%;\n }\n .col-md-offset-6 {\n margin-left: 50%;\n }\n .col-md-offset-5 {\n margin-left: 41.66666667%;\n }\n .col-md-offset-4 {\n margin-left: 33.33333333%;\n }\n .col-md-offset-3 {\n margin-left: 25%;\n }\n .col-md-offset-2 {\n margin-left: 16.66666667%;\n }\n .col-md-offset-1 {\n margin-left: 8.33333333%;\n }\n .col-md-offset-0 {\n margin-left: 0%;\n }\n}\n@media (min-width: 1200px) {\n .col-lg-1, .col-lg-2, .col-lg-3, .col-lg-4, .col-lg-5, .col-lg-6, .col-lg-7, .col-lg-8, .col-lg-9, .col-lg-10, .col-lg-11, .col-lg-12 {\n float: left;\n }\n .col-lg-12 {\n width: 100%;\n }\n .col-lg-11 {\n width: 91.66666667%;\n }\n .col-lg-10 {\n width: 83.33333333%;\n }\n .col-lg-9 {\n width: 75%;\n }\n .col-lg-8 {\n width: 66.66666667%;\n }\n .col-lg-7 {\n width: 58.33333333%;\n }\n .col-lg-6 {\n width: 50%;\n }\n .col-lg-5 {\n width: 41.66666667%;\n }\n .col-lg-4 {\n width: 33.33333333%;\n }\n .col-lg-3 {\n width: 25%;\n }\n .col-lg-2 {\n width: 16.66666667%;\n }\n .col-lg-1 {\n width: 8.33333333%;\n }\n .col-lg-pull-12 {\n right: 100%;\n }\n .col-lg-pull-11 {\n right: 91.66666667%;\n }\n .col-lg-pull-10 {\n right: 83.33333333%;\n }\n .col-lg-pull-9 {\n right: 75%;\n }\n .col-lg-pull-8 {\n right: 66.66666667%;\n }\n .col-lg-pull-7 {\n right: 58.33333333%;\n }\n .col-lg-pull-6 {\n right: 50%;\n }\n .col-lg-pull-5 {\n right: 41.66666667%;\n }\n .col-lg-pull-4 {\n right: 33.33333333%;\n }\n .col-lg-pull-3 {\n right: 25%;\n }\n .col-lg-pull-2 {\n right: 16.66666667%;\n }\n .col-lg-pull-1 {\n right: 8.33333333%;\n }\n .col-lg-pull-0 {\n right: auto;\n }\n .col-lg-push-12 {\n left: 100%;\n }\n .col-lg-push-11 {\n left: 91.66666667%;\n }\n .col-lg-push-10 {\n left: 83.33333333%;\n }\n .col-lg-push-9 {\n left: 75%;\n }\n .col-lg-push-8 {\n left: 66.66666667%;\n }\n .col-lg-push-7 {\n left: 58.33333333%;\n }\n .col-lg-push-6 {\n left: 50%;\n }\n .col-lg-push-5 {\n left: 41.66666667%;\n }\n .col-lg-push-4 {\n left: 33.33333333%;\n }\n .col-lg-push-3 {\n left: 25%;\n }\n .col-lg-push-2 {\n left: 16.66666667%;\n }\n .col-lg-push-1 {\n left: 8.33333333%;\n }\n .col-lg-push-0 {\n left: auto;\n }\n .col-lg-offset-12 {\n margin-left: 100%;\n }\n .col-lg-offset-11 {\n margin-left: 91.66666667%;\n }\n .col-lg-offset-10 {\n margin-left: 83.33333333%;\n }\n .col-lg-offset-9 {\n margin-left: 75%;\n }\n .col-lg-offset-8 {\n margin-left: 66.66666667%;\n }\n .col-lg-offset-7 {\n margin-left: 58.33333333%;\n }\n .col-lg-offset-6 {\n margin-left: 50%;\n }\n .col-lg-offset-5 {\n margin-left: 41.66666667%;\n }\n .col-lg-offset-4 {\n margin-left: 33.33333333%;\n }\n .col-lg-offset-3 {\n margin-left: 25%;\n }\n .col-lg-offset-2 {\n margin-left: 16.66666667%;\n }\n .col-lg-offset-1 {\n margin-left: 8.33333333%;\n }\n .col-lg-offset-0 {\n margin-left: 0%;\n }\n}\ntable {\n background-color: transparent;\n}\ncaption {\n padding-top: 8px;\n padding-bottom: 8px;\n color: #777777;\n text-align: left;\n}\nth {\n text-align: left;\n}\n.table {\n width: 100%;\n max-width: 100%;\n margin-bottom: 20px;\n}\n.table > thead > tr > th,\n.table > tbody > tr > th,\n.table > tfoot > tr > th,\n.table > thead > tr > td,\n.table > tbody > tr > td,\n.table > tfoot > tr > td {\n padding: 8px;\n line-height: 1.42857143;\n vertical-align: top;\n border-top: 1px solid #ddd;\n}\n.table > thead > tr > th {\n vertical-align: bottom;\n border-bottom: 2px solid #ddd;\n}\n.table > caption + thead > tr:first-child > th,\n.table > colgroup + thead > tr:first-child > th,\n.table > thead:first-child > tr:first-child > th,\n.table > caption + thead > tr:first-child > td,\n.table > colgroup + thead > tr:first-child > td,\n.table > thead:first-child > tr:first-child > td {\n border-top: 0;\n}\n.table > tbody + tbody {\n border-top: 2px solid #ddd;\n}\n.table .table {\n background-color: #fff;\n}\n.table-condensed > thead > tr > th,\n.table-condensed > tbody > tr > th,\n.table-condensed > tfoot > tr > th,\n.table-condensed > thead > tr > td,\n.table-condensed > tbody > tr > td,\n.table-condensed > tfoot > tr > td {\n padding: 5px;\n}\n.table-bordered {\n border: 1px solid #ddd;\n}\n.table-bordered > thead > tr > th,\n.table-bordered > tbody > tr > th,\n.table-bordered > tfoot > tr > th,\n.table-bordered > thead > tr > td,\n.table-bordered > tbody > tr > td,\n.table-bordered > tfoot > tr > td {\n border: 1px solid #ddd;\n}\n.table-bordered > thead > tr > th,\n.table-bordered > thead > tr > td {\n border-bottom-width: 2px;\n}\n.table-striped > tbody > tr:nth-of-type(odd) {\n background-color: #f9f9f9;\n}\n.table-hover > tbody > tr:hover {\n background-color: #f5f5f5;\n}\ntable col[class*=\"col-\"] {\n position: static;\n float: none;\n display: table-column;\n}\ntable td[class*=\"col-\"],\ntable th[class*=\"col-\"] {\n position: static;\n float: none;\n display: table-cell;\n}\n.table > thead > tr > td.active,\n.table > tbody > tr > td.active,\n.table > tfoot > tr > td.active,\n.table > thead > tr > th.active,\n.table > tbody > tr > th.active,\n.table > tfoot > tr > th.active,\n.table > thead > tr.active > td,\n.table > tbody > tr.active > td,\n.table > tfoot > tr.active > td,\n.table > thead > tr.active > th,\n.table > tbody > tr.active > th,\n.table > tfoot > tr.active > th {\n background-color: #f5f5f5;\n}\n.table-hover > tbody > tr > td.active:hover,\n.table-hover > tbody > tr > th.active:hover,\n.table-hover > tbody > tr.active:hover > td,\n.table-hover > tbody > tr:hover > .active,\n.table-hover > tbody > tr.active:hover > th {\n background-color: #e8e8e8;\n}\n.table > thead > tr > td.success,\n.table > tbody > tr > td.success,\n.table > tfoot > tr > td.success,\n.table > thead > tr > th.success,\n.table > tbody > tr > th.success,\n.table > tfoot > tr > th.success,\n.table > thead > tr.success > td,\n.table > tbody > tr.success > td,\n.table > tfoot > tr.success > td,\n.table > thead > tr.success > th,\n.table > tbody > tr.success > th,\n.table > tfoot > tr.success > th {\n background-color: #dff0d8;\n}\n.table-hover > tbody > tr > td.success:hover,\n.table-hover > tbody > tr > th.success:hover,\n.table-hover > tbody > tr.success:hover > td,\n.table-hover > tbody > tr:hover > .success,\n.table-hover > tbody > tr.success:hover > th {\n background-color: #d0e9c6;\n}\n.table > thead > tr > td.info,\n.table > tbody > tr > td.info,\n.table > tfoot > tr > td.info,\n.table > thead > tr > th.info,\n.table > tbody > tr > th.info,\n.table > tfoot > tr > th.info,\n.table > thead > tr.info > td,\n.table > tbody > tr.info > td,\n.table > tfoot > tr.info > td,\n.table > thead > tr.info > th,\n.table > tbody > tr.info > th,\n.table > tfoot > tr.info > th {\n background-color: #d9edf7;\n}\n.table-hover > tbody > tr > td.info:hover,\n.table-hover > tbody > tr > th.info:hover,\n.table-hover > tbody > tr.info:hover > td,\n.table-hover > tbody > tr:hover > .info,\n.table-hover > tbody > tr.info:hover > th {\n background-color: #c4e3f3;\n}\n.table > thead > tr > td.warning,\n.table > tbody > tr > td.warning,\n.table > tfoot > tr > td.warning,\n.table > thead > tr > th.warning,\n.table > tbody > tr > th.warning,\n.table > tfoot > tr > th.warning,\n.table > thead > tr.warning > td,\n.table > tbody > tr.warning > td,\n.table > tfoot > tr.warning > td,\n.table > thead > tr.warning > th,\n.table > tbody > tr.warning > th,\n.table > tfoot > tr.warning > th {\n background-color: #fcf8e3;\n}\n.table-hover > tbody > tr > td.warning:hover,\n.table-hover > tbody > tr > th.warning:hover,\n.table-hover > tbody > tr.warning:hover > td,\n.table-hover > tbody > tr:hover > .warning,\n.table-hover > tbody > tr.warning:hover > th {\n background-color: #faf2cc;\n}\n.table > thead > tr > td.danger,\n.table > tbody > tr > td.danger,\n.table > tfoot > tr > td.danger,\n.table > thead > tr > th.danger,\n.table > tbody > tr > th.danger,\n.table > tfoot > tr > th.danger,\n.table > thead > tr.danger > td,\n.table > tbody > tr.danger > td,\n.table > tfoot > tr.danger > td,\n.table > thead > tr.danger > th,\n.table > tbody > tr.danger > th,\n.table > tfoot > tr.danger > th {\n background-color: #f2dede;\n}\n.table-hover > tbody > tr > td.danger:hover,\n.table-hover > tbody > tr > th.danger:hover,\n.table-hover > tbody > tr.danger:hover > td,\n.table-hover > tbody > tr:hover > .danger,\n.table-hover > tbody > tr.danger:hover > th {\n background-color: #ebcccc;\n}\n.table-responsive {\n overflow-x: auto;\n min-height: 0.01%;\n}\n@media screen and (max-width: 767px) {\n .table-responsive {\n width: 100%;\n margin-bottom: 15px;\n overflow-y: hidden;\n -ms-overflow-style: -ms-autohiding-scrollbar;\n border: 1px solid #ddd;\n }\n .table-responsive > .table {\n margin-bottom: 0;\n }\n .table-responsive > .table > thead > tr > th,\n .table-responsive > .table > tbody > tr > th,\n .table-responsive > .table > tfoot > tr > th,\n .table-responsive > .table > thead > tr > td,\n .table-responsive > .table > tbody > tr > td,\n .table-responsive > .table > tfoot > tr > td {\n white-space: nowrap;\n }\n .table-responsive > .table-bordered {\n border: 0;\n }\n .table-responsive > .table-bordered > thead > tr > th:first-child,\n .table-responsive > .table-bordered > tbody > tr > th:first-child,\n .table-responsive > .table-bordered > tfoot > tr > th:first-child,\n .table-responsive > .table-bordered > thead > tr > td:first-child,\n .table-responsive > .table-bordered > tbody > tr > td:first-child,\n .table-responsive > .table-bordered > tfoot > tr > td:first-child {\n border-left: 0;\n }\n .table-responsive > .table-bordered > thead > tr > th:last-child,\n .table-responsive > .table-bordered > tbody > tr > th:last-child,\n .table-responsive > .table-bordered > tfoot > tr > th:last-child,\n .table-responsive > .table-bordered > thead > tr > td:last-child,\n .table-responsive > .table-bordered > tbody > tr > td:last-child,\n .table-responsive > .table-bordered > tfoot > tr > td:last-child {\n border-right: 0;\n }\n .table-responsive > .table-bordered > tbody > tr:last-child > th,\n .table-responsive > .table-bordered > tfoot > tr:last-child > th,\n .table-responsive > .table-bordered > tbody > tr:last-child > td,\n .table-responsive > .table-bordered > tfoot > tr:last-child > td {\n border-bottom: 0;\n }\n}\nfieldset {\n padding: 0;\n margin: 0;\n border: 0;\n min-width: 0;\n}\nlegend {\n display: block;\n width: 100%;\n padding: 0;\n margin-bottom: 20px;\n font-size: 21px;\n line-height: inherit;\n color: #333333;\n border: 0;\n border-bottom: 1px solid #e5e5e5;\n}\nlabel {\n display: inline-block;\n max-width: 100%;\n margin-bottom: 5px;\n font-weight: bold;\n}\ninput[type=\"search\"] {\n -webkit-box-sizing: border-box;\n -moz-box-sizing: border-box;\n box-sizing: border-box;\n}\ninput[type=\"radio\"],\ninput[type=\"checkbox\"] {\n margin: 4px 0 0;\n margin-top: 1px \\9;\n line-height: normal;\n}\ninput[type=\"file\"] {\n display: block;\n}\ninput[type=\"range\"] {\n display: block;\n width: 100%;\n}\nselect[multiple],\nselect[size] {\n height: auto;\n}\ninput[type=\"file\"]:focus,\ninput[type=\"radio\"]:focus,\ninput[type=\"checkbox\"]:focus {\n outline: 5px auto -webkit-focus-ring-color;\n outline-offset: -2px;\n}\noutput {\n display: block;\n padding-top: 7px;\n font-size: 14px;\n line-height: 1.42857143;\n color: #555555;\n}\n.form-control {\n display: block;\n width: 100%;\n height: 34px;\n padding: 6px 12px;\n font-size: 14px;\n line-height: 1.42857143;\n color: #555555;\n background-color: #fff;\n background-image: none;\n border: 1px solid #ccc;\n border-radius: 4px;\n -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);\n box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);\n -webkit-transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s;\n -o-transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s;\n transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s;\n}\n.form-control:focus {\n border-color: #66afe9;\n outline: 0;\n -webkit-box-shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(102, 175, 233, 0.6);\n box-shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(102, 175, 233, 0.6);\n}\n.form-control::-moz-placeholder {\n color: #999;\n opacity: 1;\n}\n.form-control:-ms-input-placeholder {\n color: #999;\n}\n.form-control::-webkit-input-placeholder {\n color: #999;\n}\n.form-control::-ms-expand {\n border: 0;\n background-color: transparent;\n}\n.form-control[disabled],\n.form-control[readonly],\nfieldset[disabled] .form-control {\n background-color: #eeeeee;\n opacity: 1;\n}\n.form-control[disabled],\nfieldset[disabled] .form-control {\n cursor: not-allowed;\n}\ntextarea.form-control {\n height: auto;\n}\ninput[type=\"search\"] {\n -webkit-appearance: none;\n}\n@media screen and (-webkit-min-device-pixel-ratio: 0) {\n input[type=\"date\"].form-control,\n input[type=\"time\"].form-control,\n input[type=\"datetime-local\"].form-control,\n input[type=\"month\"].form-control {\n line-height: 34px;\n }\n input[type=\"date\"].input-sm,\n input[type=\"time\"].input-sm,\n input[type=\"datetime-local\"].input-sm,\n input[type=\"month\"].input-sm,\n .input-group-sm input[type=\"date\"],\n .input-group-sm input[type=\"time\"],\n .input-group-sm input[type=\"datetime-local\"],\n .input-group-sm input[type=\"month\"] {\n line-height: 30px;\n }\n input[type=\"date\"].input-lg,\n input[type=\"time\"].input-lg,\n input[type=\"datetime-local\"].input-lg,\n input[type=\"month\"].input-lg,\n .input-group-lg input[type=\"date\"],\n .input-group-lg input[type=\"time\"],\n .input-group-lg input[type=\"datetime-local\"],\n .input-group-lg input[type=\"month\"] {\n line-height: 46px;\n }\n}\n.form-group {\n margin-bottom: 15px;\n}\n.radio,\n.checkbox {\n position: relative;\n display: block;\n margin-top: 10px;\n margin-bottom: 10px;\n}\n.radio label,\n.checkbox label {\n min-height: 20px;\n padding-left: 20px;\n margin-bottom: 0;\n font-weight: normal;\n cursor: pointer;\n}\n.radio input[type=\"radio\"],\n.radio-inline input[type=\"radio\"],\n.checkbox input[type=\"checkbox\"],\n.checkbox-inline input[type=\"checkbox\"] {\n position: absolute;\n margin-left: -20px;\n margin-top: 4px \\9;\n}\n.radio + .radio,\n.checkbox + .checkbox {\n margin-top: -5px;\n}\n.radio-inline,\n.checkbox-inline {\n position: relative;\n display: inline-block;\n padding-left: 20px;\n margin-bottom: 0;\n vertical-align: middle;\n font-weight: normal;\n cursor: pointer;\n}\n.radio-inline + .radio-inline,\n.checkbox-inline + .checkbox-inline {\n margin-top: 0;\n margin-left: 10px;\n}\ninput[type=\"radio\"][disabled],\ninput[type=\"checkbox\"][disabled],\ninput[type=\"radio\"].disabled,\ninput[type=\"checkbox\"].disabled,\nfieldset[disabled] input[type=\"radio\"],\nfieldset[disabled] input[type=\"checkbox\"] {\n cursor: not-allowed;\n}\n.radio-inline.disabled,\n.checkbox-inline.disabled,\nfieldset[disabled] .radio-inline,\nfieldset[disabled] .checkbox-inline {\n cursor: not-allowed;\n}\n.radio.disabled label,\n.checkbox.disabled label,\nfieldset[disabled] .radio label,\nfieldset[disabled] .checkbox label {\n cursor: not-allowed;\n}\n.form-control-static {\n padding-top: 7px;\n padding-bottom: 7px;\n margin-bottom: 0;\n min-height: 34px;\n}\n.form-control-static.input-lg,\n.form-control-static.input-sm {\n padding-left: 0;\n padding-right: 0;\n}\n.input-sm {\n height: 30px;\n padding: 5px 10px;\n font-size: 12px;\n line-height: 1.5;\n border-radius: 3px;\n}\nselect.input-sm {\n height: 30px;\n line-height: 30px;\n}\ntextarea.input-sm,\nselect[multiple].input-sm {\n height: auto;\n}\n.form-group-sm .form-control {\n height: 30px;\n padding: 5px 10px;\n font-size: 12px;\n line-height: 1.5;\n border-radius: 3px;\n}\n.form-group-sm select.form-control {\n height: 30px;\n line-height: 30px;\n}\n.form-group-sm textarea.form-control,\n.form-group-sm select[multiple].form-control {\n height: auto;\n}\n.form-group-sm .form-control-static {\n height: 30px;\n min-height: 32px;\n padding: 6px 10px;\n font-size: 12px;\n line-height: 1.5;\n}\n.input-lg {\n height: 46px;\n padding: 10px 16px;\n font-size: 18px;\n line-height: 1.3333333;\n border-radius: 6px;\n}\nselect.input-lg {\n height: 46px;\n line-height: 46px;\n}\ntextarea.input-lg,\nselect[multiple].input-lg {\n height: auto;\n}\n.form-group-lg .form-control {\n height: 46px;\n padding: 10px 16px;\n font-size: 18px;\n line-height: 1.3333333;\n border-radius: 6px;\n}\n.form-group-lg select.form-control {\n height: 46px;\n line-height: 46px;\n}\n.form-group-lg textarea.form-control,\n.form-group-lg select[multiple].form-control {\n height: auto;\n}\n.form-group-lg .form-control-static {\n height: 46px;\n min-height: 38px;\n padding: 11px 16px;\n font-size: 18px;\n line-height: 1.3333333;\n}\n.has-feedback {\n position: relative;\n}\n.has-feedback .form-control {\n padding-right: 42.5px;\n}\n.form-control-feedback {\n position: absolute;\n top: 0;\n right: 0;\n z-index: 2;\n display: block;\n width: 34px;\n height: 34px;\n line-height: 34px;\n text-align: center;\n pointer-events: none;\n}\n.input-lg + .form-control-feedback,\n.input-group-lg + .form-control-feedback,\n.form-group-lg .form-control + .form-control-feedback {\n width: 46px;\n height: 46px;\n line-height: 46px;\n}\n.input-sm + .form-control-feedback,\n.input-group-sm + .form-control-feedback,\n.form-group-sm .form-control + .form-control-feedback {\n width: 30px;\n height: 30px;\n line-height: 30px;\n}\n.has-success .help-block,\n.has-success .control-label,\n.has-success .radio,\n.has-success .checkbox,\n.has-success .radio-inline,\n.has-success .checkbox-inline,\n.has-success.radio label,\n.has-success.checkbox label,\n.has-success.radio-inline label,\n.has-success.checkbox-inline label {\n color: #3c763d;\n}\n.has-success .form-control {\n border-color: #3c763d;\n -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);\n box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);\n}\n.has-success .form-control:focus {\n border-color: #2b542c;\n -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #67b168;\n box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #67b168;\n}\n.has-success .input-group-addon {\n color: #3c763d;\n border-color: #3c763d;\n background-color: #dff0d8;\n}\n.has-success .form-control-feedback {\n color: #3c763d;\n}\n.has-warning .help-block,\n.has-warning .control-label,\n.has-warning .radio,\n.has-warning .checkbox,\n.has-warning .radio-inline,\n.has-warning .checkbox-inline,\n.has-warning.radio label,\n.has-warning.checkbox label,\n.has-warning.radio-inline label,\n.has-warning.checkbox-inline label {\n color: #8a6d3b;\n}\n.has-warning .form-control {\n border-color: #8a6d3b;\n -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);\n box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);\n}\n.has-warning .form-control:focus {\n border-color: #66512c;\n -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #c0a16b;\n box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #c0a16b;\n}\n.has-warning .input-group-addon {\n color: #8a6d3b;\n border-color: #8a6d3b;\n background-color: #fcf8e3;\n}\n.has-warning .form-control-feedback {\n color: #8a6d3b;\n}\n.has-error .help-block,\n.has-error .control-label,\n.has-error .radio,\n.has-error .checkbox,\n.has-error .radio-inline,\n.has-error .checkbox-inline,\n.has-error.radio label,\n.has-error.checkbox label,\n.has-error.radio-inline label,\n.has-error.checkbox-inline label {\n color: #a94442;\n}\n.has-error .form-control {\n border-color: #a94442;\n -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);\n box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);\n}\n.has-error .form-control:focus {\n border-color: #843534;\n -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #ce8483;\n box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #ce8483;\n}\n.has-error .input-group-addon {\n color: #a94442;\n border-color: #a94442;\n background-color: #f2dede;\n}\n.has-error .form-control-feedback {\n color: #a94442;\n}\n.has-feedback label ~ .form-control-feedback {\n top: 25px;\n}\n.has-feedback label.sr-only ~ .form-control-feedback {\n top: 0;\n}\n.help-block {\n display: block;\n margin-top: 5px;\n margin-bottom: 10px;\n color: #737373;\n}\n@media (min-width: 768px) {\n .form-inline .form-group {\n display: inline-block;\n margin-bottom: 0;\n vertical-align: middle;\n }\n .form-inline .form-control {\n display: inline-block;\n width: auto;\n vertical-align: middle;\n }\n .form-inline .form-control-static {\n display: inline-block;\n }\n .form-inline .input-group {\n display: inline-table;\n vertical-align: middle;\n }\n .form-inline .input-group .input-group-addon,\n .form-inline .input-group .input-group-btn,\n .form-inline .input-group .form-control {\n width: auto;\n }\n .form-inline .input-group > .form-control {\n width: 100%;\n }\n .form-inline .control-label {\n margin-bottom: 0;\n vertical-align: middle;\n }\n .form-inline .radio,\n .form-inline .checkbox {\n display: inline-block;\n margin-top: 0;\n margin-bottom: 0;\n vertical-align: middle;\n }\n .form-inline .radio label,\n .form-inline .checkbox label {\n padding-left: 0;\n }\n .form-inline .radio input[type=\"radio\"],\n .form-inline .checkbox input[type=\"checkbox\"] {\n position: relative;\n margin-left: 0;\n }\n .form-inline .has-feedback .form-control-feedback {\n top: 0;\n }\n}\n.form-horizontal .radio,\n.form-horizontal .checkbox,\n.form-horizontal .radio-inline,\n.form-horizontal .checkbox-inline {\n margin-top: 0;\n margin-bottom: 0;\n padding-top: 7px;\n}\n.form-horizontal .radio,\n.form-horizontal .checkbox {\n min-height: 27px;\n}\n.form-horizontal .form-group {\n margin-left: -15px;\n margin-right: -15px;\n}\n@media (min-width: 768px) {\n .form-horizontal .control-label {\n text-align: right;\n margin-bottom: 0;\n padding-top: 7px;\n }\n}\n.form-horizontal .has-feedback .form-control-feedback {\n right: 15px;\n}\n@media (min-width: 768px) {\n .form-horizontal .form-group-lg .control-label {\n padding-top: 11px;\n font-size: 18px;\n }\n}\n@media (min-width: 768px) {\n .form-horizontal .form-group-sm .control-label {\n padding-top: 6px;\n font-size: 12px;\n }\n}\n.btn {\n display: inline-block;\n margin-bottom: 0;\n font-weight: normal;\n text-align: center;\n vertical-align: middle;\n touch-action: manipulation;\n cursor: pointer;\n background-image: none;\n border: 1px solid transparent;\n white-space: nowrap;\n padding: 6px 12px;\n font-size: 14px;\n line-height: 1.42857143;\n border-radius: 4px;\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n user-select: none;\n}\n.btn:focus,\n.btn:active:focus,\n.btn.active:focus,\n.btn.focus,\n.btn:active.focus,\n.btn.active.focus {\n outline: 5px auto -webkit-focus-ring-color;\n outline-offset: -2px;\n}\n.btn:hover,\n.btn:focus,\n.btn.focus {\n color: #333;\n text-decoration: none;\n}\n.btn:active,\n.btn.active {\n outline: 0;\n background-image: none;\n -webkit-box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);\n box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);\n}\n.btn.disabled,\n.btn[disabled],\nfieldset[disabled] .btn {\n cursor: not-allowed;\n opacity: 0.65;\n filter: alpha(opacity=65);\n -webkit-box-shadow: none;\n box-shadow: none;\n}\na.btn.disabled,\nfieldset[disabled] a.btn {\n pointer-events: none;\n}\n.btn-default {\n color: #333;\n background-color: #fff;\n border-color: #ccc;\n}\n.btn-default:focus,\n.btn-default.focus {\n color: #333;\n background-color: #e6e6e6;\n border-color: #8c8c8c;\n}\n.btn-default:hover {\n color: #333;\n background-color: #e6e6e6;\n border-color: #adadad;\n}\n.btn-default:active,\n.btn-default.active,\n.open > .dropdown-toggle.btn-default {\n color: #333;\n background-color: #e6e6e6;\n border-color: #adadad;\n}\n.btn-default:active:hover,\n.btn-default.active:hover,\n.open > .dropdown-toggle.btn-default:hover,\n.btn-default:active:focus,\n.btn-default.active:focus,\n.open > .dropdown-toggle.btn-default:focus,\n.btn-default:active.focus,\n.btn-default.active.focus,\n.open > .dropdown-toggle.btn-default.focus {\n color: #333;\n background-color: #d4d4d4;\n border-color: #8c8c8c;\n}\n.btn-default:active,\n.btn-default.active,\n.open > .dropdown-toggle.btn-default {\n background-image: none;\n}\n.btn-default.disabled:hover,\n.btn-default[disabled]:hover,\nfieldset[disabled] .btn-default:hover,\n.btn-default.disabled:focus,\n.btn-default[disabled]:focus,\nfieldset[disabled] .btn-default:focus,\n.btn-default.disabled.focus,\n.btn-default[disabled].focus,\nfieldset[disabled] .btn-default.focus {\n background-color: #fff;\n border-color: #ccc;\n}\n.btn-default .badge {\n color: #fff;\n background-color: #333;\n}\n.btn-primary {\n color: #fff;\n background-color: #337ab7;\n border-color: #2e6da4;\n}\n.btn-primary:focus,\n.btn-primary.focus {\n color: #fff;\n background-color: #286090;\n border-color: #122b40;\n}\n.btn-primary:hover {\n color: #fff;\n background-color: #286090;\n border-color: #204d74;\n}\n.btn-primary:active,\n.btn-primary.active,\n.open > .dropdown-toggle.btn-primary {\n color: #fff;\n background-color: #286090;\n border-color: #204d74;\n}\n.btn-primary:active:hover,\n.btn-primary.active:hover,\n.open > .dropdown-toggle.btn-primary:hover,\n.btn-primary:active:focus,\n.btn-primary.active:focus,\n.open > .dropdown-toggle.btn-primary:focus,\n.btn-primary:active.focus,\n.btn-primary.active.focus,\n.open > .dropdown-toggle.btn-primary.focus {\n color: #fff;\n background-color: #204d74;\n border-color: #122b40;\n}\n.btn-primary:active,\n.btn-primary.active,\n.open > .dropdown-toggle.btn-primary {\n background-image: none;\n}\n.btn-primary.disabled:hover,\n.btn-primary[disabled]:hover,\nfieldset[disabled] .btn-primary:hover,\n.btn-primary.disabled:focus,\n.btn-primary[disabled]:focus,\nfieldset[disabled] .btn-primary:focus,\n.btn-primary.disabled.focus,\n.btn-primary[disabled].focus,\nfieldset[disabled] .btn-primary.focus {\n background-color: #337ab7;\n border-color: #2e6da4;\n}\n.btn-primary .badge {\n color: #337ab7;\n background-color: #fff;\n}\n.btn-success {\n color: #fff;\n background-color: #5cb85c;\n border-color: #4cae4c;\n}\n.btn-success:focus,\n.btn-success.focus {\n color: #fff;\n background-color: #449d44;\n border-color: #255625;\n}\n.btn-success:hover {\n color: #fff;\n background-color: #449d44;\n border-color: #398439;\n}\n.btn-success:active,\n.btn-success.active,\n.open > .dropdown-toggle.btn-success {\n color: #fff;\n background-color: #449d44;\n border-color: #398439;\n}\n.btn-success:active:hover,\n.btn-success.active:hover,\n.open > .dropdown-toggle.btn-success:hover,\n.btn-success:active:focus,\n.btn-success.active:focus,\n.open > .dropdown-toggle.btn-success:focus,\n.btn-success:active.focus,\n.btn-success.active.focus,\n.open > .dropdown-toggle.btn-success.focus {\n color: #fff;\n background-color: #398439;\n border-color: #255625;\n}\n.btn-success:active,\n.btn-success.active,\n.open > .dropdown-toggle.btn-success {\n background-image: none;\n}\n.btn-success.disabled:hover,\n.btn-success[disabled]:hover,\nfieldset[disabled] .btn-success:hover,\n.btn-success.disabled:focus,\n.btn-success[disabled]:focus,\nfieldset[disabled] .btn-success:focus,\n.btn-success.disabled.focus,\n.btn-success[disabled].focus,\nfieldset[disabled] .btn-success.focus {\n background-color: #5cb85c;\n border-color: #4cae4c;\n}\n.btn-success .badge {\n color: #5cb85c;\n background-color: #fff;\n}\n.btn-info {\n color: #fff;\n background-color: #5bc0de;\n border-color: #46b8da;\n}\n.btn-info:focus,\n.btn-info.focus {\n color: #fff;\n background-color: #31b0d5;\n border-color: #1b6d85;\n}\n.btn-info:hover {\n color: #fff;\n background-color: #31b0d5;\n border-color: #269abc;\n}\n.btn-info:active,\n.btn-info.active,\n.open > .dropdown-toggle.btn-info {\n color: #fff;\n background-color: #31b0d5;\n border-color: #269abc;\n}\n.btn-info:active:hover,\n.btn-info.active:hover,\n.open > .dropdown-toggle.btn-info:hover,\n.btn-info:active:focus,\n.btn-info.active:focus,\n.open > .dropdown-toggle.btn-info:focus,\n.btn-info:active.focus,\n.btn-info.active.focus,\n.open > .dropdown-toggle.btn-info.focus {\n color: #fff;\n background-color: #269abc;\n border-color: #1b6d85;\n}\n.btn-info:active,\n.btn-info.active,\n.open > .dropdown-toggle.btn-info {\n background-image: none;\n}\n.btn-info.disabled:hover,\n.btn-info[disabled]:hover,\nfieldset[disabled] .btn-info:hover,\n.btn-info.disabled:focus,\n.btn-info[disabled]:focus,\nfieldset[disabled] .btn-info:focus,\n.btn-info.disabled.focus,\n.btn-info[disabled].focus,\nfieldset[disabled] .btn-info.focus {\n background-color: #5bc0de;\n border-color: #46b8da;\n}\n.btn-info .badge {\n color: #5bc0de;\n background-color: #fff;\n}\n.btn-warning {\n color: #fff;\n background-color: #f0ad4e;\n border-color: #eea236;\n}\n.btn-warning:focus,\n.btn-warning.focus {\n color: #fff;\n background-color: #ec971f;\n border-color: #985f0d;\n}\n.btn-warning:hover {\n color: #fff;\n background-color: #ec971f;\n border-color: #d58512;\n}\n.btn-warning:active,\n.btn-warning.active,\n.open > .dropdown-toggle.btn-warning {\n color: #fff;\n background-color: #ec971f;\n border-color: #d58512;\n}\n.btn-warning:active:hover,\n.btn-warning.active:hover,\n.open > .dropdown-toggle.btn-warning:hover,\n.btn-warning:active:focus,\n.btn-warning.active:focus,\n.open > .dropdown-toggle.btn-warning:focus,\n.btn-warning:active.focus,\n.btn-warning.active.focus,\n.open > .dropdown-toggle.btn-warning.focus {\n color: #fff;\n background-color: #d58512;\n border-color: #985f0d;\n}\n.btn-warning:active,\n.btn-warning.active,\n.open > .dropdown-toggle.btn-warning {\n background-image: none;\n}\n.btn-warning.disabled:hover,\n.btn-warning[disabled]:hover,\nfieldset[disabled] .btn-warning:hover,\n.btn-warning.disabled:focus,\n.btn-warning[disabled]:focus,\nfieldset[disabled] .btn-warning:focus,\n.btn-warning.disabled.focus,\n.btn-warning[disabled].focus,\nfieldset[disabled] .btn-warning.focus {\n background-color: #f0ad4e;\n border-color: #eea236;\n}\n.btn-warning .badge {\n color: #f0ad4e;\n background-color: #fff;\n}\n.btn-danger {\n color: #fff;\n background-color: #d9534f;\n border-color: #d43f3a;\n}\n.btn-danger:focus,\n.btn-danger.focus {\n color: #fff;\n background-color: #c9302c;\n border-color: #761c19;\n}\n.btn-danger:hover {\n color: #fff;\n background-color: #c9302c;\n border-color: #ac2925;\n}\n.btn-danger:active,\n.btn-danger.active,\n.open > .dropdown-toggle.btn-danger {\n color: #fff;\n background-color: #c9302c;\n border-color: #ac2925;\n}\n.btn-danger:active:hover,\n.btn-danger.active:hover,\n.open > .dropdown-toggle.btn-danger:hover,\n.btn-danger:active:focus,\n.btn-danger.active:focus,\n.open > .dropdown-toggle.btn-danger:focus,\n.btn-danger:active.focus,\n.btn-danger.active.focus,\n.open > .dropdown-toggle.btn-danger.focus {\n color: #fff;\n background-color: #ac2925;\n border-color: #761c19;\n}\n.btn-danger:active,\n.btn-danger.active,\n.open > .dropdown-toggle.btn-danger {\n background-image: none;\n}\n.btn-danger.disabled:hover,\n.btn-danger[disabled]:hover,\nfieldset[disabled] .btn-danger:hover,\n.btn-danger.disabled:focus,\n.btn-danger[disabled]:focus,\nfieldset[disabled] .btn-danger:focus,\n.btn-danger.disabled.focus,\n.btn-danger[disabled].focus,\nfieldset[disabled] .btn-danger.focus {\n background-color: #d9534f;\n border-color: #d43f3a;\n}\n.btn-danger .badge {\n color: #d9534f;\n background-color: #fff;\n}\n.btn-link {\n color: #337ab7;\n font-weight: normal;\n border-radius: 0;\n}\n.btn-link,\n.btn-link:active,\n.btn-link.active,\n.btn-link[disabled],\nfieldset[disabled] .btn-link {\n background-color: transparent;\n -webkit-box-shadow: none;\n box-shadow: none;\n}\n.btn-link,\n.btn-link:hover,\n.btn-link:focus,\n.btn-link:active {\n border-color: transparent;\n}\n.btn-link:hover,\n.btn-link:focus {\n color: #23527c;\n text-decoration: underline;\n background-color: transparent;\n}\n.btn-link[disabled]:hover,\nfieldset[disabled] .btn-link:hover,\n.btn-link[disabled]:focus,\nfieldset[disabled] .btn-link:focus {\n color: #777777;\n text-decoration: none;\n}\n.btn-lg,\n.btn-group-lg > .btn {\n padding: 10px 16px;\n font-size: 18px;\n line-height: 1.3333333;\n border-radius: 6px;\n}\n.btn-sm,\n.btn-group-sm > .btn {\n padding: 5px 10px;\n font-size: 12px;\n line-height: 1.5;\n border-radius: 3px;\n}\n.btn-xs,\n.btn-group-xs > .btn {\n padding: 1px 5px;\n font-size: 12px;\n line-height: 1.5;\n border-radius: 3px;\n}\n.btn-block {\n display: block;\n width: 100%;\n}\n.btn-block + .btn-block {\n margin-top: 5px;\n}\ninput[type=\"submit\"].btn-block,\ninput[type=\"reset\"].btn-block,\ninput[type=\"button\"].btn-block {\n width: 100%;\n}\n.fade {\n opacity: 0;\n -webkit-transition: opacity 0.15s linear;\n -o-transition: opacity 0.15s linear;\n transition: opacity 0.15s linear;\n}\n.fade.in {\n opacity: 1;\n}\n.collapse {\n display: none;\n}\n.collapse.in {\n display: block;\n}\ntr.collapse.in {\n display: table-row;\n}\ntbody.collapse.in {\n display: table-row-group;\n}\n.collapsing {\n position: relative;\n height: 0;\n overflow: hidden;\n -webkit-transition-property: height, visibility;\n transition-property: height, visibility;\n -webkit-transition-duration: 0.35s;\n transition-duration: 0.35s;\n -webkit-transition-timing-function: ease;\n transition-timing-function: ease;\n}\n.caret {\n display: inline-block;\n width: 0;\n height: 0;\n margin-left: 2px;\n vertical-align: middle;\n border-top: 4px dashed;\n border-top: 4px solid \\9;\n border-right: 4px solid transparent;\n border-left: 4px solid transparent;\n}\n.dropup,\n.dropdown {\n position: relative;\n}\n.dropdown-toggle:focus {\n outline: 0;\n}\n.dropdown-menu {\n position: absolute;\n top: 100%;\n left: 0;\n z-index: 1000;\n display: none;\n float: left;\n min-width: 160px;\n padding: 5px 0;\n margin: 2px 0 0;\n list-style: none;\n font-size: 14px;\n text-align: left;\n background-color: #fff;\n border: 1px solid #ccc;\n border: 1px solid rgba(0, 0, 0, 0.15);\n border-radius: 4px;\n -webkit-box-shadow: 0 6px 12px rgba(0, 0, 0, 0.175);\n box-shadow: 0 6px 12px rgba(0, 0, 0, 0.175);\n background-clip: padding-box;\n}\n.dropdown-menu.pull-right {\n right: 0;\n left: auto;\n}\n.dropdown-menu .divider {\n height: 1px;\n margin: 9px 0;\n overflow: hidden;\n background-color: #e5e5e5;\n}\n.dropdown-menu > li > a {\n display: block;\n padding: 3px 20px;\n clear: both;\n font-weight: normal;\n line-height: 1.42857143;\n color: #333333;\n white-space: nowrap;\n}\n.dropdown-menu > li > a:hover,\n.dropdown-menu > li > a:focus {\n text-decoration: none;\n color: #262626;\n background-color: #f5f5f5;\n}\n.dropdown-menu > .active > a,\n.dropdown-menu > .active > a:hover,\n.dropdown-menu > .active > a:focus {\n color: #fff;\n text-decoration: none;\n outline: 0;\n background-color: #337ab7;\n}\n.dropdown-menu > .disabled > a,\n.dropdown-menu > .disabled > a:hover,\n.dropdown-menu > .disabled > a:focus {\n color: #777777;\n}\n.dropdown-menu > .disabled > a:hover,\n.dropdown-menu > .disabled > a:focus {\n text-decoration: none;\n background-color: transparent;\n background-image: none;\n filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);\n cursor: not-allowed;\n}\n.open > .dropdown-menu {\n display: block;\n}\n.open > a {\n outline: 0;\n}\n.dropdown-menu-right {\n left: auto;\n right: 0;\n}\n.dropdown-menu-left {\n left: 0;\n right: auto;\n}\n.dropdown-header {\n display: block;\n padding: 3px 20px;\n font-size: 12px;\n line-height: 1.42857143;\n color: #777777;\n white-space: nowrap;\n}\n.dropdown-backdrop {\n position: fixed;\n left: 0;\n right: 0;\n bottom: 0;\n top: 0;\n z-index: 990;\n}\n.pull-right > .dropdown-menu {\n right: 0;\n left: auto;\n}\n.dropup .caret,\n.navbar-fixed-bottom .dropdown .caret {\n border-top: 0;\n border-bottom: 4px dashed;\n border-bottom: 4px solid \\9;\n content: \"\";\n}\n.dropup .dropdown-menu,\n.navbar-fixed-bottom .dropdown .dropdown-menu {\n top: auto;\n bottom: 100%;\n margin-bottom: 2px;\n}\n@media (min-width: 768px) {\n .navbar-right .dropdown-menu {\n left: auto;\n right: 0;\n }\n .navbar-right .dropdown-menu-left {\n left: 0;\n right: auto;\n }\n}\n.btn-group,\n.btn-group-vertical {\n position: relative;\n display: inline-block;\n vertical-align: middle;\n}\n.btn-group > .btn,\n.btn-group-vertical > .btn {\n position: relative;\n float: left;\n}\n.btn-group > .btn:hover,\n.btn-group-vertical > .btn:hover,\n.btn-group > .btn:focus,\n.btn-group-vertical > .btn:focus,\n.btn-group > .btn:active,\n.btn-group-vertical > .btn:active,\n.btn-group > .btn.active,\n.btn-group-vertical > .btn.active {\n z-index: 2;\n}\n.btn-group .btn + .btn,\n.btn-group .btn + .btn-group,\n.btn-group .btn-group + .btn,\n.btn-group .btn-group + .btn-group {\n margin-left: -1px;\n}\n.btn-toolbar {\n margin-left: -5px;\n}\n.btn-toolbar .btn,\n.btn-toolbar .btn-group,\n.btn-toolbar .input-group {\n float: left;\n}\n.btn-toolbar > .btn,\n.btn-toolbar > .btn-group,\n.btn-toolbar > .input-group {\n margin-left: 5px;\n}\n.btn-group > .btn:not(:first-child):not(:last-child):not(.dropdown-toggle) {\n border-radius: 0;\n}\n.btn-group > .btn:first-child {\n margin-left: 0;\n}\n.btn-group > .btn:first-child:not(:last-child):not(.dropdown-toggle) {\n border-bottom-right-radius: 0;\n border-top-right-radius: 0;\n}\n.btn-group > .btn:last-child:not(:first-child),\n.btn-group > .dropdown-toggle:not(:first-child) {\n border-bottom-left-radius: 0;\n border-top-left-radius: 0;\n}\n.btn-group > .btn-group {\n float: left;\n}\n.btn-group > .btn-group:not(:first-child):not(:last-child) > .btn {\n border-radius: 0;\n}\n.btn-group > .btn-group:first-child:not(:last-child) > .btn:last-child,\n.btn-group > .btn-group:first-child:not(:last-child) > .dropdown-toggle {\n border-bottom-right-radius: 0;\n border-top-right-radius: 0;\n}\n.btn-group > .btn-group:last-child:not(:first-child) > .btn:first-child {\n border-bottom-left-radius: 0;\n border-top-left-radius: 0;\n}\n.btn-group .dropdown-toggle:active,\n.btn-group.open .dropdown-toggle {\n outline: 0;\n}\n.btn-group > .btn + .dropdown-toggle {\n padding-left: 8px;\n padding-right: 8px;\n}\n.btn-group > .btn-lg + .dropdown-toggle {\n padding-left: 12px;\n padding-right: 12px;\n}\n.btn-group.open .dropdown-toggle {\n -webkit-box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);\n box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);\n}\n.btn-group.open .dropdown-toggle.btn-link {\n -webkit-box-shadow: none;\n box-shadow: none;\n}\n.btn .caret {\n margin-left: 0;\n}\n.btn-lg .caret {\n border-width: 5px 5px 0;\n border-bottom-width: 0;\n}\n.dropup .btn-lg .caret {\n border-width: 0 5px 5px;\n}\n.btn-group-vertical > .btn,\n.btn-group-vertical > .btn-group,\n.btn-group-vertical > .btn-group > .btn {\n display: block;\n float: none;\n width: 100%;\n max-width: 100%;\n}\n.btn-group-vertical > .btn-group > .btn {\n float: none;\n}\n.btn-group-vertical > .btn + .btn,\n.btn-group-vertical > .btn + .btn-group,\n.btn-group-vertical > .btn-group + .btn,\n.btn-group-vertical > .btn-group + .btn-group {\n margin-top: -1px;\n margin-left: 0;\n}\n.btn-group-vertical > .btn:not(:first-child):not(:last-child) {\n border-radius: 0;\n}\n.btn-group-vertical > .btn:first-child:not(:last-child) {\n border-top-right-radius: 4px;\n border-top-left-radius: 4px;\n border-bottom-right-radius: 0;\n border-bottom-left-radius: 0;\n}\n.btn-group-vertical > .btn:last-child:not(:first-child) {\n border-top-right-radius: 0;\n border-top-left-radius: 0;\n border-bottom-right-radius: 4px;\n border-bottom-left-radius: 4px;\n}\n.btn-group-vertical > .btn-group:not(:first-child):not(:last-child) > .btn {\n border-radius: 0;\n}\n.btn-group-vertical > .btn-group:first-child:not(:last-child) > .btn:last-child,\n.btn-group-vertical > .btn-group:first-child:not(:last-child) > .dropdown-toggle {\n border-bottom-right-radius: 0;\n border-bottom-left-radius: 0;\n}\n.btn-group-vertical > .btn-group:last-child:not(:first-child) > .btn:first-child {\n border-top-right-radius: 0;\n border-top-left-radius: 0;\n}\n.btn-group-justified {\n display: table;\n width: 100%;\n table-layout: fixed;\n border-collapse: separate;\n}\n.btn-group-justified > .btn,\n.btn-group-justified > .btn-group {\n float: none;\n display: table-cell;\n width: 1%;\n}\n.btn-group-justified > .btn-group .btn {\n width: 100%;\n}\n.btn-group-justified > .btn-group .dropdown-menu {\n left: auto;\n}\n[data-toggle=\"buttons\"] > .btn input[type=\"radio\"],\n[data-toggle=\"buttons\"] > .btn-group > .btn input[type=\"radio\"],\n[data-toggle=\"buttons\"] > .btn input[type=\"checkbox\"],\n[data-toggle=\"buttons\"] > .btn-group > .btn input[type=\"checkbox\"] {\n position: absolute;\n clip: rect(0, 0, 0, 0);\n pointer-events: none;\n}\n.input-group {\n position: relative;\n display: table;\n border-collapse: separate;\n}\n.input-group[class*=\"col-\"] {\n float: none;\n padding-left: 0;\n padding-right: 0;\n}\n.input-group .form-control {\n position: relative;\n z-index: 2;\n float: left;\n width: 100%;\n margin-bottom: 0;\n}\n.input-group .form-control:focus {\n z-index: 3;\n}\n.input-group-lg > .form-control,\n.input-group-lg > .input-group-addon,\n.input-group-lg > .input-group-btn > .btn {\n height: 46px;\n padding: 10px 16px;\n font-size: 18px;\n line-height: 1.3333333;\n border-radius: 6px;\n}\nselect.input-group-lg > .form-control,\nselect.input-group-lg > .input-group-addon,\nselect.input-group-lg > .input-group-btn > .btn {\n height: 46px;\n line-height: 46px;\n}\ntextarea.input-group-lg > .form-control,\ntextarea.input-group-lg > .input-group-addon,\ntextarea.input-group-lg > .input-group-btn > .btn,\nselect[multiple].input-group-lg > .form-control,\nselect[multiple].input-group-lg > .input-group-addon,\nselect[multiple].input-group-lg > .input-group-btn > .btn {\n height: auto;\n}\n.input-group-sm > .form-control,\n.input-group-sm > .input-group-addon,\n.input-group-sm > .input-group-btn > .btn {\n height: 30px;\n padding: 5px 10px;\n font-size: 12px;\n line-height: 1.5;\n border-radius: 3px;\n}\nselect.input-group-sm > .form-control,\nselect.input-group-sm > .input-group-addon,\nselect.input-group-sm > .input-group-btn > .btn {\n height: 30px;\n line-height: 30px;\n}\ntextarea.input-group-sm > .form-control,\ntextarea.input-group-sm > .input-group-addon,\ntextarea.input-group-sm > .input-group-btn > .btn,\nselect[multiple].input-group-sm > .form-control,\nselect[multiple].input-group-sm > .input-group-addon,\nselect[multiple].input-group-sm > .input-group-btn > .btn {\n height: auto;\n}\n.input-group-addon,\n.input-group-btn,\n.input-group .form-control {\n display: table-cell;\n}\n.input-group-addon:not(:first-child):not(:last-child),\n.input-group-btn:not(:first-child):not(:last-child),\n.input-group .form-control:not(:first-child):not(:last-child) {\n border-radius: 0;\n}\n.input-group-addon,\n.input-group-btn {\n width: 1%;\n white-space: nowrap;\n vertical-align: middle;\n}\n.input-group-addon {\n padding: 6px 12px;\n font-size: 14px;\n font-weight: normal;\n line-height: 1;\n color: #555555;\n text-align: center;\n background-color: #eeeeee;\n border: 1px solid #ccc;\n border-radius: 4px;\n}\n.input-group-addon.input-sm {\n padding: 5px 10px;\n font-size: 12px;\n border-radius: 3px;\n}\n.input-group-addon.input-lg {\n padding: 10px 16px;\n font-size: 18px;\n border-radius: 6px;\n}\n.input-group-addon input[type=\"radio\"],\n.input-group-addon input[type=\"checkbox\"] {\n margin-top: 0;\n}\n.input-group .form-control:first-child,\n.input-group-addon:first-child,\n.input-group-btn:first-child > .btn,\n.input-group-btn:first-child > .btn-group > .btn,\n.input-group-btn:first-child > .dropdown-toggle,\n.input-group-btn:last-child > .btn:not(:last-child):not(.dropdown-toggle),\n.input-group-btn:last-child > .btn-group:not(:last-child) > .btn {\n border-bottom-right-radius: 0;\n border-top-right-radius: 0;\n}\n.input-group-addon:first-child {\n border-right: 0;\n}\n.input-group .form-control:last-child,\n.input-group-addon:last-child,\n.input-group-btn:last-child > .btn,\n.input-group-btn:last-child > .btn-group > .btn,\n.input-group-btn:last-child > .dropdown-toggle,\n.input-group-btn:first-child > .btn:not(:first-child),\n.input-group-btn:first-child > .btn-group:not(:first-child) > .btn {\n border-bottom-left-radius: 0;\n border-top-left-radius: 0;\n}\n.input-group-addon:last-child {\n border-left: 0;\n}\n.input-group-btn {\n position: relative;\n font-size: 0;\n white-space: nowrap;\n}\n.input-group-btn > .btn {\n position: relative;\n}\n.input-group-btn > .btn + .btn {\n margin-left: -1px;\n}\n.input-group-btn > .btn:hover,\n.input-group-btn > .btn:focus,\n.input-group-btn > .btn:active {\n z-index: 2;\n}\n.input-group-btn:first-child > .btn,\n.input-group-btn:first-child > .btn-group {\n margin-right: -1px;\n}\n.input-group-btn:last-child > .btn,\n.input-group-btn:last-child > .btn-group {\n z-index: 2;\n margin-left: -1px;\n}\n.nav {\n margin-bottom: 0;\n padding-left: 0;\n list-style: none;\n}\n.nav > li {\n position: relative;\n display: block;\n}\n.nav > li > a {\n position: relative;\n display: block;\n padding: 10px 15px;\n}\n.nav > li > a:hover,\n.nav > li > a:focus {\n text-decoration: none;\n background-color: #eeeeee;\n}\n.nav > li.disabled > a {\n color: #777777;\n}\n.nav > li.disabled > a:hover,\n.nav > li.disabled > a:focus {\n color: #777777;\n text-decoration: none;\n background-color: transparent;\n cursor: not-allowed;\n}\n.nav .open > a,\n.nav .open > a:hover,\n.nav .open > a:focus {\n background-color: #eeeeee;\n border-color: #337ab7;\n}\n.nav .nav-divider {\n height: 1px;\n margin: 9px 0;\n overflow: hidden;\n background-color: #e5e5e5;\n}\n.nav > li > a > img {\n max-width: none;\n}\n.nav-tabs {\n border-bottom: 1px solid #ddd;\n}\n.nav-tabs > li {\n float: left;\n margin-bottom: -1px;\n}\n.nav-tabs > li > a {\n margin-right: 2px;\n line-height: 1.42857143;\n border: 1px solid transparent;\n border-radius: 4px 4px 0 0;\n}\n.nav-tabs > li > a:hover {\n border-color: #eeeeee #eeeeee #ddd;\n}\n.nav-tabs > li.active > a,\n.nav-tabs > li.active > a:hover,\n.nav-tabs > li.active > a:focus {\n color: #555555;\n background-color: #fff;\n border: 1px solid #ddd;\n border-bottom-color: transparent;\n cursor: default;\n}\n.nav-tabs.nav-justified {\n width: 100%;\n border-bottom: 0;\n}\n.nav-tabs.nav-justified > li {\n float: none;\n}\n.nav-tabs.nav-justified > li > a {\n text-align: center;\n margin-bottom: 5px;\n}\n.nav-tabs.nav-justified > .dropdown .dropdown-menu {\n top: auto;\n left: auto;\n}\n@media (min-width: 768px) {\n .nav-tabs.nav-justified > li {\n display: table-cell;\n width: 1%;\n }\n .nav-tabs.nav-justified > li > a {\n margin-bottom: 0;\n }\n}\n.nav-tabs.nav-justified > li > a {\n margin-right: 0;\n border-radius: 4px;\n}\n.nav-tabs.nav-justified > .active > a,\n.nav-tabs.nav-justified > .active > a:hover,\n.nav-tabs.nav-justified > .active > a:focus {\n border: 1px solid #ddd;\n}\n@media (min-width: 768px) {\n .nav-tabs.nav-justified > li > a {\n border-bottom: 1px solid #ddd;\n border-radius: 4px 4px 0 0;\n }\n .nav-tabs.nav-justified > .active > a,\n .nav-tabs.nav-justified > .active > a:hover,\n .nav-tabs.nav-justified > .active > a:focus {\n border-bottom-color: #fff;\n }\n}\n.nav-pills > li {\n float: left;\n}\n.nav-pills > li > a {\n border-radius: 4px;\n}\n.nav-pills > li + li {\n margin-left: 2px;\n}\n.nav-pills > li.active > a,\n.nav-pills > li.active > a:hover,\n.nav-pills > li.active > a:focus {\n color: #fff;\n background-color: #337ab7;\n}\n.nav-stacked > li {\n float: none;\n}\n.nav-stacked > li + li {\n margin-top: 2px;\n margin-left: 0;\n}\n.nav-justified {\n width: 100%;\n}\n.nav-justified > li {\n float: none;\n}\n.nav-justified > li > a {\n text-align: center;\n margin-bottom: 5px;\n}\n.nav-justified > .dropdown .dropdown-menu {\n top: auto;\n left: auto;\n}\n@media (min-width: 768px) {\n .nav-justified > li {\n display: table-cell;\n width: 1%;\n }\n .nav-justified > li > a {\n margin-bottom: 0;\n }\n}\n.nav-tabs-justified {\n border-bottom: 0;\n}\n.nav-tabs-justified > li > a {\n margin-right: 0;\n border-radius: 4px;\n}\n.nav-tabs-justified > .active > a,\n.nav-tabs-justified > .active > a:hover,\n.nav-tabs-justified > .active > a:focus {\n border: 1px solid #ddd;\n}\n@media (min-width: 768px) {\n .nav-tabs-justified > li > a {\n border-bottom: 1px solid #ddd;\n border-radius: 4px 4px 0 0;\n }\n .nav-tabs-justified > .active > a,\n .nav-tabs-justified > .active > a:hover,\n .nav-tabs-justified > .active > a:focus {\n border-bottom-color: #fff;\n }\n}\n.tab-content > .tab-pane {\n display: none;\n}\n.tab-content > .active {\n display: block;\n}\n.nav-tabs .dropdown-menu {\n margin-top: -1px;\n border-top-right-radius: 0;\n border-top-left-radius: 0;\n}\n.navbar {\n position: relative;\n min-height: 50px;\n margin-bottom: 20px;\n border: 1px solid transparent;\n}\n@media (min-width: 768px) {\n .navbar {\n border-radius: 4px;\n }\n}\n@media (min-width: 768px) {\n .navbar-header {\n float: left;\n }\n}\n.navbar-collapse {\n overflow-x: visible;\n padding-right: 15px;\n padding-left: 15px;\n border-top: 1px solid transparent;\n box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1);\n -webkit-overflow-scrolling: touch;\n}\n.navbar-collapse.in {\n overflow-y: auto;\n}\n@media (min-width: 768px) {\n .navbar-collapse {\n width: auto;\n border-top: 0;\n box-shadow: none;\n }\n .navbar-collapse.collapse {\n display: block !important;\n height: auto !important;\n padding-bottom: 0;\n overflow: visible !important;\n }\n .navbar-collapse.in {\n overflow-y: visible;\n }\n .navbar-fixed-top .navbar-collapse,\n .navbar-static-top .navbar-collapse,\n .navbar-fixed-bottom .navbar-collapse {\n padding-left: 0;\n padding-right: 0;\n }\n}\n.navbar-fixed-top .navbar-collapse,\n.navbar-fixed-bottom .navbar-collapse {\n max-height: 340px;\n}\n@media (max-device-width: 480px) and (orientation: landscape) {\n .navbar-fixed-top .navbar-collapse,\n .navbar-fixed-bottom .navbar-collapse {\n max-height: 200px;\n }\n}\n.container > .navbar-header,\n.container-fluid > .navbar-header,\n.container > .navbar-collapse,\n.container-fluid > .navbar-collapse {\n margin-right: -15px;\n margin-left: -15px;\n}\n@media (min-width: 768px) {\n .container > .navbar-header,\n .container-fluid > .navbar-header,\n .container > .navbar-collapse,\n .container-fluid > .navbar-collapse {\n margin-right: 0;\n margin-left: 0;\n }\n}\n.navbar-static-top {\n z-index: 1000;\n border-width: 0 0 1px;\n}\n@media (min-width: 768px) {\n .navbar-static-top {\n border-radius: 0;\n }\n}\n.navbar-fixed-top,\n.navbar-fixed-bottom {\n position: fixed;\n right: 0;\n left: 0;\n z-index: 1030;\n}\n@media (min-width: 768px) {\n .navbar-fixed-top,\n .navbar-fixed-bottom {\n border-radius: 0;\n }\n}\n.navbar-fixed-top {\n top: 0;\n border-width: 0 0 1px;\n}\n.navbar-fixed-bottom {\n bottom: 0;\n margin-bottom: 0;\n border-width: 1px 0 0;\n}\n.navbar-brand {\n float: left;\n padding: 15px 15px;\n font-size: 18px;\n line-height: 20px;\n height: 50px;\n}\n.navbar-brand:hover,\n.navbar-brand:focus {\n text-decoration: none;\n}\n.navbar-brand > img {\n display: block;\n}\n@media (min-width: 768px) {\n .navbar > .container .navbar-brand,\n .navbar > .container-fluid .navbar-brand {\n margin-left: -15px;\n }\n}\n.navbar-toggle {\n position: relative;\n float: right;\n margin-right: 15px;\n padding: 9px 10px;\n margin-top: 8px;\n margin-bottom: 8px;\n background-color: transparent;\n background-image: none;\n border: 1px solid transparent;\n border-radius: 4px;\n}\n.navbar-toggle:focus {\n outline: 0;\n}\n.navbar-toggle .icon-bar {\n display: block;\n width: 22px;\n height: 2px;\n border-radius: 1px;\n}\n.navbar-toggle .icon-bar + .icon-bar {\n margin-top: 4px;\n}\n@media (min-width: 768px) {\n .navbar-toggle {\n display: none;\n }\n}\n.navbar-nav {\n margin: 7.5px -15px;\n}\n.navbar-nav > li > a {\n padding-top: 10px;\n padding-bottom: 10px;\n line-height: 20px;\n}\n@media (max-width: 767px) {\n .navbar-nav .open .dropdown-menu {\n position: static;\n float: none;\n width: auto;\n margin-top: 0;\n background-color: transparent;\n border: 0;\n box-shadow: none;\n }\n .navbar-nav .open .dropdown-menu > li > a,\n .navbar-nav .open .dropdown-menu .dropdown-header {\n padding: 5px 15px 5px 25px;\n }\n .navbar-nav .open .dropdown-menu > li > a {\n line-height: 20px;\n }\n .navbar-nav .open .dropdown-menu > li > a:hover,\n .navbar-nav .open .dropdown-menu > li > a:focus {\n background-image: none;\n }\n}\n@media (min-width: 768px) {\n .navbar-nav {\n float: left;\n margin: 0;\n }\n .navbar-nav > li {\n float: left;\n }\n .navbar-nav > li > a {\n padding-top: 15px;\n padding-bottom: 15px;\n }\n}\n.navbar-form {\n margin-left: -15px;\n margin-right: -15px;\n padding: 10px 15px;\n border-top: 1px solid transparent;\n border-bottom: 1px solid transparent;\n -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1), 0 1px 0 rgba(255, 255, 255, 0.1);\n box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1), 0 1px 0 rgba(255, 255, 255, 0.1);\n margin-top: 8px;\n margin-bottom: 8px;\n}\n@media (min-width: 768px) {\n .navbar-form .form-group {\n display: inline-block;\n margin-bottom: 0;\n vertical-align: middle;\n }\n .navbar-form .form-control {\n display: inline-block;\n width: auto;\n vertical-align: middle;\n }\n .navbar-form .form-control-static {\n display: inline-block;\n }\n .navbar-form .input-group {\n display: inline-table;\n vertical-align: middle;\n }\n .navbar-form .input-group .input-group-addon,\n .navbar-form .input-group .input-group-btn,\n .navbar-form .input-group .form-control {\n width: auto;\n }\n .navbar-form .input-group > .form-control {\n width: 100%;\n }\n .navbar-form .control-label {\n margin-bottom: 0;\n vertical-align: middle;\n }\n .navbar-form .radio,\n .navbar-form .checkbox {\n display: inline-block;\n margin-top: 0;\n margin-bottom: 0;\n vertical-align: middle;\n }\n .navbar-form .radio label,\n .navbar-form .checkbox label {\n padding-left: 0;\n }\n .navbar-form .radio input[type=\"radio\"],\n .navbar-form .checkbox input[type=\"checkbox\"] {\n position: relative;\n margin-left: 0;\n }\n .navbar-form .has-feedback .form-control-feedback {\n top: 0;\n }\n}\n@media (max-width: 767px) {\n .navbar-form .form-group {\n margin-bottom: 5px;\n }\n .navbar-form .form-group:last-child {\n margin-bottom: 0;\n }\n}\n@media (min-width: 768px) {\n .navbar-form {\n width: auto;\n border: 0;\n margin-left: 0;\n margin-right: 0;\n padding-top: 0;\n padding-bottom: 0;\n -webkit-box-shadow: none;\n box-shadow: none;\n }\n}\n.navbar-nav > li > .dropdown-menu {\n margin-top: 0;\n border-top-right-radius: 0;\n border-top-left-radius: 0;\n}\n.navbar-fixed-bottom .navbar-nav > li > .dropdown-menu {\n margin-bottom: 0;\n border-top-right-radius: 4px;\n border-top-left-radius: 4px;\n border-bottom-right-radius: 0;\n border-bottom-left-radius: 0;\n}\n.navbar-btn {\n margin-top: 8px;\n margin-bottom: 8px;\n}\n.navbar-btn.btn-sm {\n margin-top: 10px;\n margin-bottom: 10px;\n}\n.navbar-btn.btn-xs {\n margin-top: 14px;\n margin-bottom: 14px;\n}\n.navbar-text {\n margin-top: 15px;\n margin-bottom: 15px;\n}\n@media (min-width: 768px) {\n .navbar-text {\n float: left;\n margin-left: 15px;\n margin-right: 15px;\n }\n}\n@media (min-width: 768px) {\n .navbar-left {\n float: left !important;\n }\n .navbar-right {\n float: right !important;\n margin-right: -15px;\n }\n .navbar-right ~ .navbar-right {\n margin-right: 0;\n }\n}\n.navbar-default {\n background-color: #f8f8f8;\n border-color: #e7e7e7;\n}\n.navbar-default .navbar-brand {\n color: #777;\n}\n.navbar-default .navbar-brand:hover,\n.navbar-default .navbar-brand:focus {\n color: #5e5e5e;\n background-color: transparent;\n}\n.navbar-default .navbar-text {\n color: #777;\n}\n.navbar-default .navbar-nav > li > a {\n color: #777;\n}\n.navbar-default .navbar-nav > li > a:hover,\n.navbar-default .navbar-nav > li > a:focus {\n color: #333;\n background-color: transparent;\n}\n.navbar-default .navbar-nav > .active > a,\n.navbar-default .navbar-nav > .active > a:hover,\n.navbar-default .navbar-nav > .active > a:focus {\n color: #555;\n background-color: #e7e7e7;\n}\n.navbar-default .navbar-nav > .disabled > a,\n.navbar-default .navbar-nav > .disabled > a:hover,\n.navbar-default .navbar-nav > .disabled > a:focus {\n color: #ccc;\n background-color: transparent;\n}\n.navbar-default .navbar-toggle {\n border-color: #ddd;\n}\n.navbar-default .navbar-toggle:hover,\n.navbar-default .navbar-toggle:focus {\n background-color: #ddd;\n}\n.navbar-default .navbar-toggle .icon-bar {\n background-color: #888;\n}\n.navbar-default .navbar-collapse,\n.navbar-default .navbar-form {\n border-color: #e7e7e7;\n}\n.navbar-default .navbar-nav > .open > a,\n.navbar-default .navbar-nav > .open > a:hover,\n.navbar-default .navbar-nav > .open > a:focus {\n background-color: #e7e7e7;\n color: #555;\n}\n@media (max-width: 767px) {\n .navbar-default .navbar-nav .open .dropdown-menu > li > a {\n color: #777;\n }\n .navbar-default .navbar-nav .open .dropdown-menu > li > a:hover,\n .navbar-default .navbar-nav .open .dropdown-menu > li > a:focus {\n color: #333;\n background-color: transparent;\n }\n .navbar-default .navbar-nav .open .dropdown-menu > .active > a,\n .navbar-default .navbar-nav .open .dropdown-menu > .active > a:hover,\n .navbar-default .navbar-nav .open .dropdown-menu > .active > a:focus {\n color: #555;\n background-color: #e7e7e7;\n }\n .navbar-default .navbar-nav .open .dropdown-menu > .disabled > a,\n .navbar-default .navbar-nav .open .dropdown-menu > .disabled > a:hover,\n .navbar-default .navbar-nav .open .dropdown-menu > .disabled > a:focus {\n color: #ccc;\n background-color: transparent;\n }\n}\n.navbar-default .navbar-link {\n color: #777;\n}\n.navbar-default .navbar-link:hover {\n color: #333;\n}\n.navbar-default .btn-link {\n color: #777;\n}\n.navbar-default .btn-link:hover,\n.navbar-default .btn-link:focus {\n color: #333;\n}\n.navbar-default .btn-link[disabled]:hover,\nfieldset[disabled] .navbar-default .btn-link:hover,\n.navbar-default .btn-link[disabled]:focus,\nfieldset[disabled] .navbar-default .btn-link:focus {\n color: #ccc;\n}\n.navbar-inverse {\n background-color: #222;\n border-color: #080808;\n}\n.navbar-inverse .navbar-brand {\n color: #9d9d9d;\n}\n.navbar-inverse .navbar-brand:hover,\n.navbar-inverse .navbar-brand:focus {\n color: #fff;\n background-color: transparent;\n}\n.navbar-inverse .navbar-text {\n color: #9d9d9d;\n}\n.navbar-inverse .navbar-nav > li > a {\n color: #9d9d9d;\n}\n.navbar-inverse .navbar-nav > li > a:hover,\n.navbar-inverse .navbar-nav > li > a:focus {\n color: #fff;\n background-color: transparent;\n}\n.navbar-inverse .navbar-nav > .active > a,\n.navbar-inverse .navbar-nav > .active > a:hover,\n.navbar-inverse .navbar-nav > .active > a:focus {\n color: #fff;\n background-color: #080808;\n}\n.navbar-inverse .navbar-nav > .disabled > a,\n.navbar-inverse .navbar-nav > .disabled > a:hover,\n.navbar-inverse .navbar-nav > .disabled > a:focus {\n color: #444;\n background-color: transparent;\n}\n.navbar-inverse .navbar-toggle {\n border-color: #333;\n}\n.navbar-inverse .navbar-toggle:hover,\n.navbar-inverse .navbar-toggle:focus {\n background-color: #333;\n}\n.navbar-inverse .navbar-toggle .icon-bar {\n background-color: #fff;\n}\n.navbar-inverse .navbar-collapse,\n.navbar-inverse .navbar-form {\n border-color: #101010;\n}\n.navbar-inverse .navbar-nav > .open > a,\n.navbar-inverse .navbar-nav > .open > a:hover,\n.navbar-inverse .navbar-nav > .open > a:focus {\n background-color: #080808;\n color: #fff;\n}\n@media (max-width: 767px) {\n .navbar-inverse .navbar-nav .open .dropdown-menu > .dropdown-header {\n border-color: #080808;\n }\n .navbar-inverse .navbar-nav .open .dropdown-menu .divider {\n background-color: #080808;\n }\n .navbar-inverse .navbar-nav .open .dropdown-menu > li > a {\n color: #9d9d9d;\n }\n .navbar-inverse .navbar-nav .open .dropdown-menu > li > a:hover,\n .navbar-inverse .navbar-nav .open .dropdown-menu > li > a:focus {\n color: #fff;\n background-color: transparent;\n }\n .navbar-inverse .navbar-nav .open .dropdown-menu > .active > a,\n .navbar-inverse .navbar-nav .open .dropdown-menu > .active > a:hover,\n .navbar-inverse .navbar-nav .open .dropdown-menu > .active > a:focus {\n color: #fff;\n background-color: #080808;\n }\n .navbar-inverse .navbar-nav .open .dropdown-menu > .disabled > a,\n .navbar-inverse .navbar-nav .open .dropdown-menu > .disabled > a:hover,\n .navbar-inverse .navbar-nav .open .dropdown-menu > .disabled > a:focus {\n color: #444;\n background-color: transparent;\n }\n}\n.navbar-inverse .navbar-link {\n color: #9d9d9d;\n}\n.navbar-inverse .navbar-link:hover {\n color: #fff;\n}\n.navbar-inverse .btn-link {\n color: #9d9d9d;\n}\n.navbar-inverse .btn-link:hover,\n.navbar-inverse .btn-link:focus {\n color: #fff;\n}\n.navbar-inverse .btn-link[disabled]:hover,\nfieldset[disabled] .navbar-inverse .btn-link:hover,\n.navbar-inverse .btn-link[disabled]:focus,\nfieldset[disabled] .navbar-inverse .btn-link:focus {\n color: #444;\n}\n.breadcrumb {\n padding: 8px 15px;\n margin-bottom: 20px;\n list-style: none;\n background-color: #f5f5f5;\n border-radius: 4px;\n}\n.breadcrumb > li {\n display: inline-block;\n}\n.breadcrumb > li + li:before {\n content: \"/\\00a0\";\n padding: 0 5px;\n color: #ccc;\n}\n.breadcrumb > .active {\n color: #777777;\n}\n.pagination {\n display: inline-block;\n padding-left: 0;\n margin: 20px 0;\n border-radius: 4px;\n}\n.pagination > li {\n display: inline;\n}\n.pagination > li > a,\n.pagination > li > span {\n position: relative;\n float: left;\n padding: 6px 12px;\n line-height: 1.42857143;\n text-decoration: none;\n color: #337ab7;\n background-color: #fff;\n border: 1px solid #ddd;\n margin-left: -1px;\n}\n.pagination > li:first-child > a,\n.pagination > li:first-child > span {\n margin-left: 0;\n border-bottom-left-radius: 4px;\n border-top-left-radius: 4px;\n}\n.pagination > li:last-child > a,\n.pagination > li:last-child > span {\n border-bottom-right-radius: 4px;\n border-top-right-radius: 4px;\n}\n.pagination > li > a:hover,\n.pagination > li > span:hover,\n.pagination > li > a:focus,\n.pagination > li > span:focus {\n z-index: 2;\n color: #23527c;\n background-color: #eeeeee;\n border-color: #ddd;\n}\n.pagination > .active > a,\n.pagination > .active > span,\n.pagination > .active > a:hover,\n.pagination > .active > span:hover,\n.pagination > .active > a:focus,\n.pagination > .active > span:focus {\n z-index: 3;\n color: #fff;\n background-color: #337ab7;\n border-color: #337ab7;\n cursor: default;\n}\n.pagination > .disabled > span,\n.pagination > .disabled > span:hover,\n.pagination > .disabled > span:focus,\n.pagination > .disabled > a,\n.pagination > .disabled > a:hover,\n.pagination > .disabled > a:focus {\n color: #777777;\n background-color: #fff;\n border-color: #ddd;\n cursor: not-allowed;\n}\n.pagination-lg > li > a,\n.pagination-lg > li > span {\n padding: 10px 16px;\n font-size: 18px;\n line-height: 1.3333333;\n}\n.pagination-lg > li:first-child > a,\n.pagination-lg > li:first-child > span {\n border-bottom-left-radius: 6px;\n border-top-left-radius: 6px;\n}\n.pagination-lg > li:last-child > a,\n.pagination-lg > li:last-child > span {\n border-bottom-right-radius: 6px;\n border-top-right-radius: 6px;\n}\n.pagination-sm > li > a,\n.pagination-sm > li > span {\n padding: 5px 10px;\n font-size: 12px;\n line-height: 1.5;\n}\n.pagination-sm > li:first-child > a,\n.pagination-sm > li:first-child > span {\n border-bottom-left-radius: 3px;\n border-top-left-radius: 3px;\n}\n.pagination-sm > li:last-child > a,\n.pagination-sm > li:last-child > span {\n border-bottom-right-radius: 3px;\n border-top-right-radius: 3px;\n}\n.pager {\n padding-left: 0;\n margin: 20px 0;\n list-style: none;\n text-align: center;\n}\n.pager li {\n display: inline;\n}\n.pager li > a,\n.pager li > span {\n display: inline-block;\n padding: 5px 14px;\n background-color: #fff;\n border: 1px solid #ddd;\n border-radius: 15px;\n}\n.pager li > a:hover,\n.pager li > a:focus {\n text-decoration: none;\n background-color: #eeeeee;\n}\n.pager .next > a,\n.pager .next > span {\n float: right;\n}\n.pager .previous > a,\n.pager .previous > span {\n float: left;\n}\n.pager .disabled > a,\n.pager .disabled > a:hover,\n.pager .disabled > a:focus,\n.pager .disabled > span {\n color: #777777;\n background-color: #fff;\n cursor: not-allowed;\n}\n.label {\n display: inline;\n padding: .2em .6em .3em;\n font-size: 75%;\n font-weight: bold;\n line-height: 1;\n color: #fff;\n text-align: center;\n white-space: nowrap;\n vertical-align: baseline;\n border-radius: .25em;\n}\na.label:hover,\na.label:focus {\n color: #fff;\n text-decoration: none;\n cursor: pointer;\n}\n.label:empty {\n display: none;\n}\n.btn .label {\n position: relative;\n top: -1px;\n}\n.label-default {\n background-color: #777777;\n}\n.label-default[href]:hover,\n.label-default[href]:focus {\n background-color: #5e5e5e;\n}\n.label-primary {\n background-color: #337ab7;\n}\n.label-primary[href]:hover,\n.label-primary[href]:focus {\n background-color: #286090;\n}\n.label-success {\n background-color: #5cb85c;\n}\n.label-success[href]:hover,\n.label-success[href]:focus {\n background-color: #449d44;\n}\n.label-info {\n background-color: #5bc0de;\n}\n.label-info[href]:hover,\n.label-info[href]:focus {\n background-color: #31b0d5;\n}\n.label-warning {\n background-color: #f0ad4e;\n}\n.label-warning[href]:hover,\n.label-warning[href]:focus {\n background-color: #ec971f;\n}\n.label-danger {\n background-color: #d9534f;\n}\n.label-danger[href]:hover,\n.label-danger[href]:focus {\n background-color: #c9302c;\n}\n.badge {\n display: inline-block;\n min-width: 10px;\n padding: 3px 7px;\n font-size: 12px;\n font-weight: bold;\n color: #fff;\n line-height: 1;\n vertical-align: middle;\n white-space: nowrap;\n text-align: center;\n background-color: #777777;\n border-radius: 10px;\n}\n.badge:empty {\n display: none;\n}\n.btn .badge {\n position: relative;\n top: -1px;\n}\n.btn-xs .badge,\n.btn-group-xs > .btn .badge {\n top: 0;\n padding: 1px 5px;\n}\na.badge:hover,\na.badge:focus {\n color: #fff;\n text-decoration: none;\n cursor: pointer;\n}\n.list-group-item.active > .badge,\n.nav-pills > .active > a > .badge {\n color: #337ab7;\n background-color: #fff;\n}\n.list-group-item > .badge {\n float: right;\n}\n.list-group-item > .badge + .badge {\n margin-right: 5px;\n}\n.nav-pills > li > a > .badge {\n margin-left: 3px;\n}\n.jumbotron {\n padding-top: 30px;\n padding-bottom: 30px;\n margin-bottom: 30px;\n color: inherit;\n background-color: #eeeeee;\n}\n.jumbotron h1,\n.jumbotron .h1 {\n color: inherit;\n}\n.jumbotron p {\n margin-bottom: 15px;\n font-size: 21px;\n font-weight: 200;\n}\n.jumbotron > hr {\n border-top-color: #d5d5d5;\n}\n.container .jumbotron,\n.container-fluid .jumbotron {\n border-radius: 6px;\n padding-left: 15px;\n padding-right: 15px;\n}\n.jumbotron .container {\n max-width: 100%;\n}\n@media screen and (min-width: 768px) {\n .jumbotron {\n padding-top: 48px;\n padding-bottom: 48px;\n }\n .container .jumbotron,\n .container-fluid .jumbotron {\n padding-left: 60px;\n padding-right: 60px;\n }\n .jumbotron h1,\n .jumbotron .h1 {\n font-size: 63px;\n }\n}\n.thumbnail {\n display: block;\n padding: 4px;\n margin-bottom: 20px;\n line-height: 1.42857143;\n background-color: #fff;\n border: 1px solid #ddd;\n border-radius: 4px;\n -webkit-transition: border 0.2s ease-in-out;\n -o-transition: border 0.2s ease-in-out;\n transition: border 0.2s ease-in-out;\n}\n.thumbnail > img,\n.thumbnail a > img {\n margin-left: auto;\n margin-right: auto;\n}\na.thumbnail:hover,\na.thumbnail:focus,\na.thumbnail.active {\n border-color: #337ab7;\n}\n.thumbnail .caption {\n padding: 9px;\n color: #333333;\n}\n.alert {\n padding: 15px;\n margin-bottom: 20px;\n border: 1px solid transparent;\n border-radius: 4px;\n}\n.alert h4 {\n margin-top: 0;\n color: inherit;\n}\n.alert .alert-link {\n font-weight: bold;\n}\n.alert > p,\n.alert > ul {\n margin-bottom: 0;\n}\n.alert > p + p {\n margin-top: 5px;\n}\n.alert-dismissable,\n.alert-dismissible {\n padding-right: 35px;\n}\n.alert-dismissable .close,\n.alert-dismissible .close {\n position: relative;\n top: -2px;\n right: -21px;\n color: inherit;\n}\n.alert-success {\n background-color: #dff0d8;\n border-color: #d6e9c6;\n color: #3c763d;\n}\n.alert-success hr {\n border-top-color: #c9e2b3;\n}\n.alert-success .alert-link {\n color: #2b542c;\n}\n.alert-info {\n background-color: #d9edf7;\n border-color: #bce8f1;\n color: #31708f;\n}\n.alert-info hr {\n border-top-color: #a6e1ec;\n}\n.alert-info .alert-link {\n color: #245269;\n}\n.alert-warning {\n background-color: #fcf8e3;\n border-color: #faebcc;\n color: #8a6d3b;\n}\n.alert-warning hr {\n border-top-color: #f7e1b5;\n}\n.alert-warning .alert-link {\n color: #66512c;\n}\n.alert-danger {\n background-color: #f2dede;\n border-color: #ebccd1;\n color: #a94442;\n}\n.alert-danger hr {\n border-top-color: #e4b9c0;\n}\n.alert-danger .alert-link {\n color: #843534;\n}\n@-webkit-keyframes progress-bar-stripes {\n from {\n background-position: 40px 0;\n }\n to {\n background-position: 0 0;\n }\n}\n@keyframes progress-bar-stripes {\n from {\n background-position: 40px 0;\n }\n to {\n background-position: 0 0;\n }\n}\n.progress {\n overflow: hidden;\n height: 20px;\n margin-bottom: 20px;\n background-color: #f5f5f5;\n border-radius: 4px;\n -webkit-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1);\n box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1);\n}\n.progress-bar {\n float: left;\n width: 0%;\n height: 100%;\n font-size: 12px;\n line-height: 20px;\n color: #fff;\n text-align: center;\n background-color: #337ab7;\n -webkit-box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.15);\n box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.15);\n -webkit-transition: width 0.6s ease;\n -o-transition: width 0.6s ease;\n transition: width 0.6s ease;\n}\n.progress-striped .progress-bar,\n.progress-bar-striped {\n background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);\n background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);\n background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);\n background-size: 40px 40px;\n}\n.progress.active .progress-bar,\n.progress-bar.active {\n -webkit-animation: progress-bar-stripes 2s linear infinite;\n -o-animation: progress-bar-stripes 2s linear infinite;\n animation: progress-bar-stripes 2s linear infinite;\n}\n.progress-bar-success {\n background-color: #5cb85c;\n}\n.progress-striped .progress-bar-success {\n background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);\n background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);\n background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);\n}\n.progress-bar-info {\n background-color: #5bc0de;\n}\n.progress-striped .progress-bar-info {\n background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);\n background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);\n background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);\n}\n.progress-bar-warning {\n background-color: #f0ad4e;\n}\n.progress-striped .progress-bar-warning {\n background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);\n background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);\n background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);\n}\n.progress-bar-danger {\n background-color: #d9534f;\n}\n.progress-striped .progress-bar-danger {\n background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);\n background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);\n background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);\n}\n.media {\n margin-top: 15px;\n}\n.media:first-child {\n margin-top: 0;\n}\n.media,\n.media-body {\n zoom: 1;\n overflow: hidden;\n}\n.media-body {\n width: 10000px;\n}\n.media-object {\n display: block;\n}\n.media-object.img-thumbnail {\n max-width: none;\n}\n.media-right,\n.media > .pull-right {\n padding-left: 10px;\n}\n.media-left,\n.media > .pull-left {\n padding-right: 10px;\n}\n.media-left,\n.media-right,\n.media-body {\n display: table-cell;\n vertical-align: top;\n}\n.media-middle {\n vertical-align: middle;\n}\n.media-bottom {\n vertical-align: bottom;\n}\n.media-heading {\n margin-top: 0;\n margin-bottom: 5px;\n}\n.media-list {\n padding-left: 0;\n list-style: none;\n}\n.list-group {\n margin-bottom: 20px;\n padding-left: 0;\n}\n.list-group-item {\n position: relative;\n display: block;\n padding: 10px 15px;\n margin-bottom: -1px;\n background-color: #fff;\n border: 1px solid #ddd;\n}\n.list-group-item:first-child {\n border-top-right-radius: 4px;\n border-top-left-radius: 4px;\n}\n.list-group-item:last-child {\n margin-bottom: 0;\n border-bottom-right-radius: 4px;\n border-bottom-left-radius: 4px;\n}\na.list-group-item,\nbutton.list-group-item {\n color: #555;\n}\na.list-group-item .list-group-item-heading,\nbutton.list-group-item .list-group-item-heading {\n color: #333;\n}\na.list-group-item:hover,\nbutton.list-group-item:hover,\na.list-group-item:focus,\nbutton.list-group-item:focus {\n text-decoration: none;\n color: #555;\n background-color: #f5f5f5;\n}\nbutton.list-group-item {\n width: 100%;\n text-align: left;\n}\n.list-group-item.disabled,\n.list-group-item.disabled:hover,\n.list-group-item.disabled:focus {\n background-color: #eeeeee;\n color: #777777;\n cursor: not-allowed;\n}\n.list-group-item.disabled .list-group-item-heading,\n.list-group-item.disabled:hover .list-group-item-heading,\n.list-group-item.disabled:focus .list-group-item-heading {\n color: inherit;\n}\n.list-group-item.disabled .list-group-item-text,\n.list-group-item.disabled:hover .list-group-item-text,\n.list-group-item.disabled:focus .list-group-item-text {\n color: #777777;\n}\n.list-group-item.active,\n.list-group-item.active:hover,\n.list-group-item.active:focus {\n z-index: 2;\n color: #fff;\n background-color: #337ab7;\n border-color: #337ab7;\n}\n.list-group-item.active .list-group-item-heading,\n.list-group-item.active:hover .list-group-item-heading,\n.list-group-item.active:focus .list-group-item-heading,\n.list-group-item.active .list-group-item-heading > small,\n.list-group-item.active:hover .list-group-item-heading > small,\n.list-group-item.active:focus .list-group-item-heading > small,\n.list-group-item.active .list-group-item-heading > .small,\n.list-group-item.active:hover .list-group-item-heading > .small,\n.list-group-item.active:focus .list-group-item-heading > .small {\n color: inherit;\n}\n.list-group-item.active .list-group-item-text,\n.list-group-item.active:hover .list-group-item-text,\n.list-group-item.active:focus .list-group-item-text {\n color: #c7ddef;\n}\n.list-group-item-success {\n color: #3c763d;\n background-color: #dff0d8;\n}\na.list-group-item-success,\nbutton.list-group-item-success {\n color: #3c763d;\n}\na.list-group-item-success .list-group-item-heading,\nbutton.list-group-item-success .list-group-item-heading {\n color: inherit;\n}\na.list-group-item-success:hover,\nbutton.list-group-item-success:hover,\na.list-group-item-success:focus,\nbutton.list-group-item-success:focus {\n color: #3c763d;\n background-color: #d0e9c6;\n}\na.list-group-item-success.active,\nbutton.list-group-item-success.active,\na.list-group-item-success.active:hover,\nbutton.list-group-item-success.active:hover,\na.list-group-item-success.active:focus,\nbutton.list-group-item-success.active:focus {\n color: #fff;\n background-color: #3c763d;\n border-color: #3c763d;\n}\n.list-group-item-info {\n color: #31708f;\n background-color: #d9edf7;\n}\na.list-group-item-info,\nbutton.list-group-item-info {\n color: #31708f;\n}\na.list-group-item-info .list-group-item-heading,\nbutton.list-group-item-info .list-group-item-heading {\n color: inherit;\n}\na.list-group-item-info:hover,\nbutton.list-group-item-info:hover,\na.list-group-item-info:focus,\nbutton.list-group-item-info:focus {\n color: #31708f;\n background-color: #c4e3f3;\n}\na.list-group-item-info.active,\nbutton.list-group-item-info.active,\na.list-group-item-info.active:hover,\nbutton.list-group-item-info.active:hover,\na.list-group-item-info.active:focus,\nbutton.list-group-item-info.active:focus {\n color: #fff;\n background-color: #31708f;\n border-color: #31708f;\n}\n.list-group-item-warning {\n color: #8a6d3b;\n background-color: #fcf8e3;\n}\na.list-group-item-warning,\nbutton.list-group-item-warning {\n color: #8a6d3b;\n}\na.list-group-item-warning .list-group-item-heading,\nbutton.list-group-item-warning .list-group-item-heading {\n color: inherit;\n}\na.list-group-item-warning:hover,\nbutton.list-group-item-warning:hover,\na.list-group-item-warning:focus,\nbutton.list-group-item-warning:focus {\n color: #8a6d3b;\n background-color: #faf2cc;\n}\na.list-group-item-warning.active,\nbutton.list-group-item-warning.active,\na.list-group-item-warning.active:hover,\nbutton.list-group-item-warning.active:hover,\na.list-group-item-warning.active:focus,\nbutton.list-group-item-warning.active:focus {\n color: #fff;\n background-color: #8a6d3b;\n border-color: #8a6d3b;\n}\n.list-group-item-danger {\n color: #a94442;\n background-color: #f2dede;\n}\na.list-group-item-danger,\nbutton.list-group-item-danger {\n color: #a94442;\n}\na.list-group-item-danger .list-group-item-heading,\nbutton.list-group-item-danger .list-group-item-heading {\n color: inherit;\n}\na.list-group-item-danger:hover,\nbutton.list-group-item-danger:hover,\na.list-group-item-danger:focus,\nbutton.list-group-item-danger:focus {\n color: #a94442;\n background-color: #ebcccc;\n}\na.list-group-item-danger.active,\nbutton.list-group-item-danger.active,\na.list-group-item-danger.active:hover,\nbutton.list-group-item-danger.active:hover,\na.list-group-item-danger.active:focus,\nbutton.list-group-item-danger.active:focus {\n color: #fff;\n background-color: #a94442;\n border-color: #a94442;\n}\n.list-group-item-heading {\n margin-top: 0;\n margin-bottom: 5px;\n}\n.list-group-item-text {\n margin-bottom: 0;\n line-height: 1.3;\n}\n.panel {\n margin-bottom: 20px;\n background-color: #fff;\n border: 1px solid transparent;\n border-radius: 4px;\n -webkit-box-shadow: 0 1px 1px rgba(0, 0, 0, 0.05);\n box-shadow: 0 1px 1px rgba(0, 0, 0, 0.05);\n}\n.panel-body {\n padding: 15px;\n}\n.panel-heading {\n padding: 10px 15px;\n border-bottom: 1px solid transparent;\n border-top-right-radius: 3px;\n border-top-left-radius: 3px;\n}\n.panel-heading > .dropdown .dropdown-toggle {\n color: inherit;\n}\n.panel-title {\n margin-top: 0;\n margin-bottom: 0;\n font-size: 16px;\n color: inherit;\n}\n.panel-title > a,\n.panel-title > small,\n.panel-title > .small,\n.panel-title > small > a,\n.panel-title > .small > a {\n color: inherit;\n}\n.panel-footer {\n padding: 10px 15px;\n background-color: #f5f5f5;\n border-top: 1px solid #ddd;\n border-bottom-right-radius: 3px;\n border-bottom-left-radius: 3px;\n}\n.panel > .list-group,\n.panel > .panel-collapse > .list-group {\n margin-bottom: 0;\n}\n.panel > .list-group .list-group-item,\n.panel > .panel-collapse > .list-group .list-group-item {\n border-width: 1px 0;\n border-radius: 0;\n}\n.panel > .list-group:first-child .list-group-item:first-child,\n.panel > .panel-collapse > .list-group:first-child .list-group-item:first-child {\n border-top: 0;\n border-top-right-radius: 3px;\n border-top-left-radius: 3px;\n}\n.panel > .list-group:last-child .list-group-item:last-child,\n.panel > .panel-collapse > .list-group:last-child .list-group-item:last-child {\n border-bottom: 0;\n border-bottom-right-radius: 3px;\n border-bottom-left-radius: 3px;\n}\n.panel > .panel-heading + .panel-collapse > .list-group .list-group-item:first-child {\n border-top-right-radius: 0;\n border-top-left-radius: 0;\n}\n.panel-heading + .list-group .list-group-item:first-child {\n border-top-width: 0;\n}\n.list-group + .panel-footer {\n border-top-width: 0;\n}\n.panel > .table,\n.panel > .table-responsive > .table,\n.panel > .panel-collapse > .table {\n margin-bottom: 0;\n}\n.panel > .table caption,\n.panel > .table-responsive > .table caption,\n.panel > .panel-collapse > .table caption {\n padding-left: 15px;\n padding-right: 15px;\n}\n.panel > .table:first-child,\n.panel > .table-responsive:first-child > .table:first-child {\n border-top-right-radius: 3px;\n border-top-left-radius: 3px;\n}\n.panel > .table:first-child > thead:first-child > tr:first-child,\n.panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child,\n.panel > .table:first-child > tbody:first-child > tr:first-child,\n.panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child {\n border-top-left-radius: 3px;\n border-top-right-radius: 3px;\n}\n.panel > .table:first-child > thead:first-child > tr:first-child td:first-child,\n.panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child td:first-child,\n.panel > .table:first-child > tbody:first-child > tr:first-child td:first-child,\n.panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child td:first-child,\n.panel > .table:first-child > thead:first-child > tr:first-child th:first-child,\n.panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child th:first-child,\n.panel > .table:first-child > tbody:first-child > tr:first-child th:first-child,\n.panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child th:first-child {\n border-top-left-radius: 3px;\n}\n.panel > .table:first-child > thead:first-child > tr:first-child td:last-child,\n.panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child td:last-child,\n.panel > .table:first-child > tbody:first-child > tr:first-child td:last-child,\n.panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child td:last-child,\n.panel > .table:first-child > thead:first-child > tr:first-child th:last-child,\n.panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child th:last-child,\n.panel > .table:first-child > tbody:first-child > tr:first-child th:last-child,\n.panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child th:last-child {\n border-top-right-radius: 3px;\n}\n.panel > .table:last-child,\n.panel > .table-responsive:last-child > .table:last-child {\n border-bottom-right-radius: 3px;\n border-bottom-left-radius: 3px;\n}\n.panel > .table:last-child > tbody:last-child > tr:last-child,\n.panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child,\n.panel > .table:last-child > tfoot:last-child > tr:last-child,\n.panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child {\n border-bottom-left-radius: 3px;\n border-bottom-right-radius: 3px;\n}\n.panel > .table:last-child > tbody:last-child > tr:last-child td:first-child,\n.panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child td:first-child,\n.panel > .table:last-child > tfoot:last-child > tr:last-child td:first-child,\n.panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child td:first-child,\n.panel > .table:last-child > tbody:last-child > tr:last-child th:first-child,\n.panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child th:first-child,\n.panel > .table:last-child > tfoot:last-child > tr:last-child th:first-child,\n.panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child th:first-child {\n border-bottom-left-radius: 3px;\n}\n.panel > .table:last-child > tbody:last-child > tr:last-child td:last-child,\n.panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child td:last-child,\n.panel > .table:last-child > tfoot:last-child > tr:last-child td:last-child,\n.panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child td:last-child,\n.panel > .table:last-child > tbody:last-child > tr:last-child th:last-child,\n.panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child th:last-child,\n.panel > .table:last-child > tfoot:last-child > tr:last-child th:last-child,\n.panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child th:last-child {\n border-bottom-right-radius: 3px;\n}\n.panel > .panel-body + .table,\n.panel > .panel-body + .table-responsive,\n.panel > .table + .panel-body,\n.panel > .table-responsive + .panel-body {\n border-top: 1px solid #ddd;\n}\n.panel > .table > tbody:first-child > tr:first-child th,\n.panel > .table > tbody:first-child > tr:first-child td {\n border-top: 0;\n}\n.panel > .table-bordered,\n.panel > .table-responsive > .table-bordered {\n border: 0;\n}\n.panel > .table-bordered > thead > tr > th:first-child,\n.panel > .table-responsive > .table-bordered > thead > tr > th:first-child,\n.panel > .table-bordered > tbody > tr > th:first-child,\n.panel > .table-responsive > .table-bordered > tbody > tr > th:first-child,\n.panel > .table-bordered > tfoot > tr > th:first-child,\n.panel > .table-responsive > .table-bordered > tfoot > tr > th:first-child,\n.panel > .table-bordered > thead > tr > td:first-child,\n.panel > .table-responsive > .table-bordered > thead > tr > td:first-child,\n.panel > .table-bordered > tbody > tr > td:first-child,\n.panel > .table-responsive > .table-bordered > tbody > tr > td:first-child,\n.panel > .table-bordered > tfoot > tr > td:first-child,\n.panel > .table-responsive > .table-bordered > tfoot > tr > td:first-child {\n border-left: 0;\n}\n.panel > .table-bordered > thead > tr > th:last-child,\n.panel > .table-responsive > .table-bordered > thead > tr > th:last-child,\n.panel > .table-bordered > tbody > tr > th:last-child,\n.panel > .table-responsive > .table-bordered > tbody > tr > th:last-child,\n.panel > .table-bordered > tfoot > tr > th:last-child,\n.panel > .table-responsive > .table-bordered > tfoot > tr > th:last-child,\n.panel > .table-bordered > thead > tr > td:last-child,\n.panel > .table-responsive > .table-bordered > thead > tr > td:last-child,\n.panel > .table-bordered > tbody > tr > td:last-child,\n.panel > .table-responsive > .table-bordered > tbody > tr > td:last-child,\n.panel > .table-bordered > tfoot > tr > td:last-child,\n.panel > .table-responsive > .table-bordered > tfoot > tr > td:last-child {\n border-right: 0;\n}\n.panel > .table-bordered > thead > tr:first-child > td,\n.panel > .table-responsive > .table-bordered > thead > tr:first-child > td,\n.panel > .table-bordered > tbody > tr:first-child > td,\n.panel > .table-responsive > .table-bordered > tbody > tr:first-child > td,\n.panel > .table-bordered > thead > tr:first-child > th,\n.panel > .table-responsive > .table-bordered > thead > tr:first-child > th,\n.panel > .table-bordered > tbody > tr:first-child > th,\n.panel > .table-responsive > .table-bordered > tbody > tr:first-child > th {\n border-bottom: 0;\n}\n.panel > .table-bordered > tbody > tr:last-child > td,\n.panel > .table-responsive > .table-bordered > tbody > tr:last-child > td,\n.panel > .table-bordered > tfoot > tr:last-child > td,\n.panel > .table-responsive > .table-bordered > tfoot > tr:last-child > td,\n.panel > .table-bordered > tbody > tr:last-child > th,\n.panel > .table-responsive > .table-bordered > tbody > tr:last-child > th,\n.panel > .table-bordered > tfoot > tr:last-child > th,\n.panel > .table-responsive > .table-bordered > tfoot > tr:last-child > th {\n border-bottom: 0;\n}\n.panel > .table-responsive {\n border: 0;\n margin-bottom: 0;\n}\n.panel-group {\n margin-bottom: 20px;\n}\n.panel-group .panel {\n margin-bottom: 0;\n border-radius: 4px;\n}\n.panel-group .panel + .panel {\n margin-top: 5px;\n}\n.panel-group .panel-heading {\n border-bottom: 0;\n}\n.panel-group .panel-heading + .panel-collapse > .panel-body,\n.panel-group .panel-heading + .panel-collapse > .list-group {\n border-top: 1px solid #ddd;\n}\n.panel-group .panel-footer {\n border-top: 0;\n}\n.panel-group .panel-footer + .panel-collapse .panel-body {\n border-bottom: 1px solid #ddd;\n}\n.panel-default {\n border-color: #ddd;\n}\n.panel-default > .panel-heading {\n color: #333333;\n background-color: #f5f5f5;\n border-color: #ddd;\n}\n.panel-default > .panel-heading + .panel-collapse > .panel-body {\n border-top-color: #ddd;\n}\n.panel-default > .panel-heading .badge {\n color: #f5f5f5;\n background-color: #333333;\n}\n.panel-default > .panel-footer + .panel-collapse > .panel-body {\n border-bottom-color: #ddd;\n}\n.panel-primary {\n border-color: #337ab7;\n}\n.panel-primary > .panel-heading {\n color: #fff;\n background-color: #337ab7;\n border-color: #337ab7;\n}\n.panel-primary > .panel-heading + .panel-collapse > .panel-body {\n border-top-color: #337ab7;\n}\n.panel-primary > .panel-heading .badge {\n color: #337ab7;\n background-color: #fff;\n}\n.panel-primary > .panel-footer + .panel-collapse > .panel-body {\n border-bottom-color: #337ab7;\n}\n.panel-success {\n border-color: #d6e9c6;\n}\n.panel-success > .panel-heading {\n color: #3c763d;\n background-color: #dff0d8;\n border-color: #d6e9c6;\n}\n.panel-success > .panel-heading + .panel-collapse > .panel-body {\n border-top-color: #d6e9c6;\n}\n.panel-success > .panel-heading .badge {\n color: #dff0d8;\n background-color: #3c763d;\n}\n.panel-success > .panel-footer + .panel-collapse > .panel-body {\n border-bottom-color: #d6e9c6;\n}\n.panel-info {\n border-color: #bce8f1;\n}\n.panel-info > .panel-heading {\n color: #31708f;\n background-color: #d9edf7;\n border-color: #bce8f1;\n}\n.panel-info > .panel-heading + .panel-collapse > .panel-body {\n border-top-color: #bce8f1;\n}\n.panel-info > .panel-heading .badge {\n color: #d9edf7;\n background-color: #31708f;\n}\n.panel-info > .panel-footer + .panel-collapse > .panel-body {\n border-bottom-color: #bce8f1;\n}\n.panel-warning {\n border-color: #faebcc;\n}\n.panel-warning > .panel-heading {\n color: #8a6d3b;\n background-color: #fcf8e3;\n border-color: #faebcc;\n}\n.panel-warning > .panel-heading + .panel-collapse > .panel-body {\n border-top-color: #faebcc;\n}\n.panel-warning > .panel-heading .badge {\n color: #fcf8e3;\n background-color: #8a6d3b;\n}\n.panel-warning > .panel-footer + .panel-collapse > .panel-body {\n border-bottom-color: #faebcc;\n}\n.panel-danger {\n border-color: #ebccd1;\n}\n.panel-danger > .panel-heading {\n color: #a94442;\n background-color: #f2dede;\n border-color: #ebccd1;\n}\n.panel-danger > .panel-heading + .panel-collapse > .panel-body {\n border-top-color: #ebccd1;\n}\n.panel-danger > .panel-heading .badge {\n color: #f2dede;\n background-color: #a94442;\n}\n.panel-danger > .panel-footer + .panel-collapse > .panel-body {\n border-bottom-color: #ebccd1;\n}\n.embed-responsive {\n position: relative;\n display: block;\n height: 0;\n padding: 0;\n overflow: hidden;\n}\n.embed-responsive .embed-responsive-item,\n.embed-responsive iframe,\n.embed-responsive embed,\n.embed-responsive object,\n.embed-responsive video {\n position: absolute;\n top: 0;\n left: 0;\n bottom: 0;\n height: 100%;\n width: 100%;\n border: 0;\n}\n.embed-responsive-16by9 {\n padding-bottom: 56.25%;\n}\n.embed-responsive-4by3 {\n padding-bottom: 75%;\n}\n.well {\n min-height: 20px;\n padding: 19px;\n margin-bottom: 20px;\n background-color: #f5f5f5;\n border: 1px solid #e3e3e3;\n border-radius: 4px;\n -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.05);\n box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.05);\n}\n.well blockquote {\n border-color: #ddd;\n border-color: rgba(0, 0, 0, 0.15);\n}\n.well-lg {\n padding: 24px;\n border-radius: 6px;\n}\n.well-sm {\n padding: 9px;\n border-radius: 3px;\n}\n.close {\n float: right;\n font-size: 21px;\n font-weight: bold;\n line-height: 1;\n color: #000;\n text-shadow: 0 1px 0 #fff;\n opacity: 0.2;\n filter: alpha(opacity=20);\n}\n.close:hover,\n.close:focus {\n color: #000;\n text-decoration: none;\n cursor: pointer;\n opacity: 0.5;\n filter: alpha(opacity=50);\n}\nbutton.close {\n padding: 0;\n cursor: pointer;\n background: transparent;\n border: 0;\n -webkit-appearance: none;\n}\n.modal-open {\n overflow: hidden;\n}\n.modal {\n display: none;\n overflow: hidden;\n position: fixed;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n z-index: 1050;\n -webkit-overflow-scrolling: touch;\n outline: 0;\n}\n.modal.fade .modal-dialog {\n -webkit-transform: translate(0, -25%);\n -ms-transform: translate(0, -25%);\n -o-transform: translate(0, -25%);\n transform: translate(0, -25%);\n -webkit-transition: -webkit-transform 0.3s ease-out;\n -moz-transition: -moz-transform 0.3s ease-out;\n -o-transition: -o-transform 0.3s ease-out;\n transition: transform 0.3s ease-out;\n}\n.modal.in .modal-dialog {\n -webkit-transform: translate(0, 0);\n -ms-transform: translate(0, 0);\n -o-transform: translate(0, 0);\n transform: translate(0, 0);\n}\n.modal-open .modal {\n overflow-x: hidden;\n overflow-y: auto;\n}\n.modal-dialog {\n position: relative;\n width: auto;\n margin: 10px;\n}\n.modal-content {\n position: relative;\n background-color: #fff;\n border: 1px solid #999;\n border: 1px solid rgba(0, 0, 0, 0.2);\n border-radius: 6px;\n -webkit-box-shadow: 0 3px 9px rgba(0, 0, 0, 0.5);\n box-shadow: 0 3px 9px rgba(0, 0, 0, 0.5);\n background-clip: padding-box;\n outline: 0;\n}\n.modal-backdrop {\n position: fixed;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n z-index: 1040;\n background-color: #000;\n}\n.modal-backdrop.fade {\n opacity: 0;\n filter: alpha(opacity=0);\n}\n.modal-backdrop.in {\n opacity: 0.5;\n filter: alpha(opacity=50);\n}\n.modal-header {\n padding: 15px;\n border-bottom: 1px solid #e5e5e5;\n}\n.modal-header .close {\n margin-top: -2px;\n}\n.modal-title {\n margin: 0;\n line-height: 1.42857143;\n}\n.modal-body {\n position: relative;\n padding: 15px;\n}\n.modal-footer {\n padding: 15px;\n text-align: right;\n border-top: 1px solid #e5e5e5;\n}\n.modal-footer .btn + .btn {\n margin-left: 5px;\n margin-bottom: 0;\n}\n.modal-footer .btn-group .btn + .btn {\n margin-left: -1px;\n}\n.modal-footer .btn-block + .btn-block {\n margin-left: 0;\n}\n.modal-scrollbar-measure {\n position: absolute;\n top: -9999px;\n width: 50px;\n height: 50px;\n overflow: scroll;\n}\n@media (min-width: 768px) {\n .modal-dialog {\n width: 600px;\n margin: 30px auto;\n }\n .modal-content {\n -webkit-box-shadow: 0 5px 15px rgba(0, 0, 0, 0.5);\n box-shadow: 0 5px 15px rgba(0, 0, 0, 0.5);\n }\n .modal-sm {\n width: 300px;\n }\n}\n@media (min-width: 992px) {\n .modal-lg {\n width: 900px;\n }\n}\n.tooltip {\n position: absolute;\n z-index: 1070;\n display: block;\n font-family: \"Helvetica Neue\", Helvetica, Arial, sans-serif;\n font-style: normal;\n font-weight: normal;\n letter-spacing: normal;\n line-break: auto;\n line-height: 1.42857143;\n text-align: left;\n text-align: start;\n text-decoration: none;\n text-shadow: none;\n text-transform: none;\n white-space: normal;\n word-break: normal;\n word-spacing: normal;\n word-wrap: normal;\n font-size: 12px;\n opacity: 0;\n filter: alpha(opacity=0);\n}\n.tooltip.in {\n opacity: 0.9;\n filter: alpha(opacity=90);\n}\n.tooltip.top {\n margin-top: -3px;\n padding: 5px 0;\n}\n.tooltip.right {\n margin-left: 3px;\n padding: 0 5px;\n}\n.tooltip.bottom {\n margin-top: 3px;\n padding: 5px 0;\n}\n.tooltip.left {\n margin-left: -3px;\n padding: 0 5px;\n}\n.tooltip-inner {\n max-width: 200px;\n padding: 3px 8px;\n color: #fff;\n text-align: center;\n background-color: #000;\n border-radius: 4px;\n}\n.tooltip-arrow {\n position: absolute;\n width: 0;\n height: 0;\n border-color: transparent;\n border-style: solid;\n}\n.tooltip.top .tooltip-arrow {\n bottom: 0;\n left: 50%;\n margin-left: -5px;\n border-width: 5px 5px 0;\n border-top-color: #000;\n}\n.tooltip.top-left .tooltip-arrow {\n bottom: 0;\n right: 5px;\n margin-bottom: -5px;\n border-width: 5px 5px 0;\n border-top-color: #000;\n}\n.tooltip.top-right .tooltip-arrow {\n bottom: 0;\n left: 5px;\n margin-bottom: -5px;\n border-width: 5px 5px 0;\n border-top-color: #000;\n}\n.tooltip.right .tooltip-arrow {\n top: 50%;\n left: 0;\n margin-top: -5px;\n border-width: 5px 5px 5px 0;\n border-right-color: #000;\n}\n.tooltip.left .tooltip-arrow {\n top: 50%;\n right: 0;\n margin-top: -5px;\n border-width: 5px 0 5px 5px;\n border-left-color: #000;\n}\n.tooltip.bottom .tooltip-arrow {\n top: 0;\n left: 50%;\n margin-left: -5px;\n border-width: 0 5px 5px;\n border-bottom-color: #000;\n}\n.tooltip.bottom-left .tooltip-arrow {\n top: 0;\n right: 5px;\n margin-top: -5px;\n border-width: 0 5px 5px;\n border-bottom-color: #000;\n}\n.tooltip.bottom-right .tooltip-arrow {\n top: 0;\n left: 5px;\n margin-top: -5px;\n border-width: 0 5px 5px;\n border-bottom-color: #000;\n}\n.popover {\n position: absolute;\n top: 0;\n left: 0;\n z-index: 1060;\n display: none;\n max-width: 276px;\n padding: 1px;\n font-family: \"Helvetica Neue\", Helvetica, Arial, sans-serif;\n font-style: normal;\n font-weight: normal;\n letter-spacing: normal;\n line-break: auto;\n line-height: 1.42857143;\n text-align: left;\n text-align: start;\n text-decoration: none;\n text-shadow: none;\n text-transform: none;\n white-space: normal;\n word-break: normal;\n word-spacing: normal;\n word-wrap: normal;\n font-size: 14px;\n background-color: #fff;\n background-clip: padding-box;\n border: 1px solid #ccc;\n border: 1px solid rgba(0, 0, 0, 0.2);\n border-radius: 6px;\n -webkit-box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2);\n box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2);\n}\n.popover.top {\n margin-top: -10px;\n}\n.popover.right {\n margin-left: 10px;\n}\n.popover.bottom {\n margin-top: 10px;\n}\n.popover.left {\n margin-left: -10px;\n}\n.popover-title {\n margin: 0;\n padding: 8px 14px;\n font-size: 14px;\n background-color: #f7f7f7;\n border-bottom: 1px solid #ebebeb;\n border-radius: 5px 5px 0 0;\n}\n.popover-content {\n padding: 9px 14px;\n}\n.popover > .arrow,\n.popover > .arrow:after {\n position: absolute;\n display: block;\n width: 0;\n height: 0;\n border-color: transparent;\n border-style: solid;\n}\n.popover > .arrow {\n border-width: 11px;\n}\n.popover > .arrow:after {\n border-width: 10px;\n content: \"\";\n}\n.popover.top > .arrow {\n left: 50%;\n margin-left: -11px;\n border-bottom-width: 0;\n border-top-color: #999999;\n border-top-color: rgba(0, 0, 0, 0.25);\n bottom: -11px;\n}\n.popover.top > .arrow:after {\n content: \" \";\n bottom: 1px;\n margin-left: -10px;\n border-bottom-width: 0;\n border-top-color: #fff;\n}\n.popover.right > .arrow {\n top: 50%;\n left: -11px;\n margin-top: -11px;\n border-left-width: 0;\n border-right-color: #999999;\n border-right-color: rgba(0, 0, 0, 0.25);\n}\n.popover.right > .arrow:after {\n content: \" \";\n left: 1px;\n bottom: -10px;\n border-left-width: 0;\n border-right-color: #fff;\n}\n.popover.bottom > .arrow {\n left: 50%;\n margin-left: -11px;\n border-top-width: 0;\n border-bottom-color: #999999;\n border-bottom-color: rgba(0, 0, 0, 0.25);\n top: -11px;\n}\n.popover.bottom > .arrow:after {\n content: \" \";\n top: 1px;\n margin-left: -10px;\n border-top-width: 0;\n border-bottom-color: #fff;\n}\n.popover.left > .arrow {\n top: 50%;\n right: -11px;\n margin-top: -11px;\n border-right-width: 0;\n border-left-color: #999999;\n border-left-color: rgba(0, 0, 0, 0.25);\n}\n.popover.left > .arrow:after {\n content: \" \";\n right: 1px;\n border-right-width: 0;\n border-left-color: #fff;\n bottom: -10px;\n}\n.carousel {\n position: relative;\n}\n.carousel-inner {\n position: relative;\n overflow: hidden;\n width: 100%;\n}\n.carousel-inner > .item {\n display: none;\n position: relative;\n -webkit-transition: 0.6s ease-in-out left;\n -o-transition: 0.6s ease-in-out left;\n transition: 0.6s ease-in-out left;\n}\n.carousel-inner > .item > img,\n.carousel-inner > .item > a > img {\n line-height: 1;\n}\n@media all and (transform-3d), (-webkit-transform-3d) {\n .carousel-inner > .item {\n -webkit-transition: -webkit-transform 0.6s ease-in-out;\n -moz-transition: -moz-transform 0.6s ease-in-out;\n -o-transition: -o-transform 0.6s ease-in-out;\n transition: transform 0.6s ease-in-out;\n -webkit-backface-visibility: hidden;\n -moz-backface-visibility: hidden;\n backface-visibility: hidden;\n -webkit-perspective: 1000px;\n -moz-perspective: 1000px;\n perspective: 1000px;\n }\n .carousel-inner > .item.next,\n .carousel-inner > .item.active.right {\n -webkit-transform: translate3d(100%, 0, 0);\n transform: translate3d(100%, 0, 0);\n left: 0;\n }\n .carousel-inner > .item.prev,\n .carousel-inner > .item.active.left {\n -webkit-transform: translate3d(-100%, 0, 0);\n transform: translate3d(-100%, 0, 0);\n left: 0;\n }\n .carousel-inner > .item.next.left,\n .carousel-inner > .item.prev.right,\n .carousel-inner > .item.active {\n -webkit-transform: translate3d(0, 0, 0);\n transform: translate3d(0, 0, 0);\n left: 0;\n }\n}\n.carousel-inner > .active,\n.carousel-inner > .next,\n.carousel-inner > .prev {\n display: block;\n}\n.carousel-inner > .active {\n left: 0;\n}\n.carousel-inner > .next,\n.carousel-inner > .prev {\n position: absolute;\n top: 0;\n width: 100%;\n}\n.carousel-inner > .next {\n left: 100%;\n}\n.carousel-inner > .prev {\n left: -100%;\n}\n.carousel-inner > .next.left,\n.carousel-inner > .prev.right {\n left: 0;\n}\n.carousel-inner > .active.left {\n left: -100%;\n}\n.carousel-inner > .active.right {\n left: 100%;\n}\n.carousel-control {\n position: absolute;\n top: 0;\n left: 0;\n bottom: 0;\n width: 15%;\n opacity: 0.5;\n filter: alpha(opacity=50);\n font-size: 20px;\n color: #fff;\n text-align: center;\n text-shadow: 0 1px 2px rgba(0, 0, 0, 0.6);\n background-color: rgba(0, 0, 0, 0);\n}\n.carousel-control.left {\n background-image: -webkit-linear-gradient(left, rgba(0, 0, 0, 0.5) 0%, rgba(0, 0, 0, 0.0001) 100%);\n background-image: -o-linear-gradient(left, rgba(0, 0, 0, 0.5) 0%, rgba(0, 0, 0, 0.0001) 100%);\n background-image: linear-gradient(to right, rgba(0, 0, 0, 0.5) 0%, rgba(0, 0, 0, 0.0001) 100%);\n background-repeat: repeat-x;\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#80000000', endColorstr='#00000000', GradientType=1);\n}\n.carousel-control.right {\n left: auto;\n right: 0;\n background-image: -webkit-linear-gradient(left, rgba(0, 0, 0, 0.0001) 0%, rgba(0, 0, 0, 0.5) 100%);\n background-image: -o-linear-gradient(left, rgba(0, 0, 0, 0.0001) 0%, rgba(0, 0, 0, 0.5) 100%);\n background-image: linear-gradient(to right, rgba(0, 0, 0, 0.0001) 0%, rgba(0, 0, 0, 0.5) 100%);\n background-repeat: repeat-x;\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#00000000', endColorstr='#80000000', GradientType=1);\n}\n.carousel-control:hover,\n.carousel-control:focus {\n outline: 0;\n color: #fff;\n text-decoration: none;\n opacity: 0.9;\n filter: alpha(opacity=90);\n}\n.carousel-control .icon-prev,\n.carousel-control .icon-next,\n.carousel-control .glyphicon-chevron-left,\n.carousel-control .glyphicon-chevron-right {\n position: absolute;\n top: 50%;\n margin-top: -10px;\n z-index: 5;\n display: inline-block;\n}\n.carousel-control .icon-prev,\n.carousel-control .glyphicon-chevron-left {\n left: 50%;\n margin-left: -10px;\n}\n.carousel-control .icon-next,\n.carousel-control .glyphicon-chevron-right {\n right: 50%;\n margin-right: -10px;\n}\n.carousel-control .icon-prev,\n.carousel-control .icon-next {\n width: 20px;\n height: 20px;\n line-height: 1;\n font-family: serif;\n}\n.carousel-control .icon-prev:before {\n content: '\\2039';\n}\n.carousel-control .icon-next:before {\n content: '\\203a';\n}\n.carousel-indicators {\n position: absolute;\n bottom: 10px;\n left: 50%;\n z-index: 15;\n width: 60%;\n margin-left: -30%;\n padding-left: 0;\n list-style: none;\n text-align: center;\n}\n.carousel-indicators li {\n display: inline-block;\n width: 10px;\n height: 10px;\n margin: 1px;\n text-indent: -999px;\n border: 1px solid #fff;\n border-radius: 10px;\n cursor: pointer;\n background-color: #000 \\9;\n background-color: rgba(0, 0, 0, 0);\n}\n.carousel-indicators .active {\n margin: 0;\n width: 12px;\n height: 12px;\n background-color: #fff;\n}\n.carousel-caption {\n position: absolute;\n left: 15%;\n right: 15%;\n bottom: 20px;\n z-index: 10;\n padding-top: 20px;\n padding-bottom: 20px;\n color: #fff;\n text-align: center;\n text-shadow: 0 1px 2px rgba(0, 0, 0, 0.6);\n}\n.carousel-caption .btn {\n text-shadow: none;\n}\n@media screen and (min-width: 768px) {\n .carousel-control .glyphicon-chevron-left,\n .carousel-control .glyphicon-chevron-right,\n .carousel-control .icon-prev,\n .carousel-control .icon-next {\n width: 30px;\n height: 30px;\n margin-top: -10px;\n font-size: 30px;\n }\n .carousel-control .glyphicon-chevron-left,\n .carousel-control .icon-prev {\n margin-left: -10px;\n }\n .carousel-control .glyphicon-chevron-right,\n .carousel-control .icon-next {\n margin-right: -10px;\n }\n .carousel-caption {\n left: 20%;\n right: 20%;\n padding-bottom: 30px;\n }\n .carousel-indicators {\n bottom: 20px;\n }\n}\n.clearfix:before,\n.clearfix:after,\n.dl-horizontal dd:before,\n.dl-horizontal dd:after,\n.container:before,\n.container:after,\n.container-fluid:before,\n.container-fluid:after,\n.row:before,\n.row:after,\n.form-horizontal .form-group:before,\n.form-horizontal .form-group:after,\n.btn-toolbar:before,\n.btn-toolbar:after,\n.btn-group-vertical > .btn-group:before,\n.btn-group-vertical > .btn-group:after,\n.nav:before,\n.nav:after,\n.navbar:before,\n.navbar:after,\n.navbar-header:before,\n.navbar-header:after,\n.navbar-collapse:before,\n.navbar-collapse:after,\n.pager:before,\n.pager:after,\n.panel-body:before,\n.panel-body:after,\n.modal-header:before,\n.modal-header:after,\n.modal-footer:before,\n.modal-footer:after {\n content: \" \";\n display: table;\n}\n.clearfix:after,\n.dl-horizontal dd:after,\n.container:after,\n.container-fluid:after,\n.row:after,\n.form-horizontal .form-group:after,\n.btn-toolbar:after,\n.btn-group-vertical > .btn-group:after,\n.nav:after,\n.navbar:after,\n.navbar-header:after,\n.navbar-collapse:after,\n.pager:after,\n.panel-body:after,\n.modal-header:after,\n.modal-footer:after {\n clear: both;\n}\n.center-block {\n display: block;\n margin-left: auto;\n margin-right: auto;\n}\n.pull-right {\n float: right !important;\n}\n.pull-left {\n float: left !important;\n}\n.hide {\n display: none !important;\n}\n.show {\n display: block !important;\n}\n.invisible {\n visibility: hidden;\n}\n.text-hide {\n font: 0/0 a;\n color: transparent;\n text-shadow: none;\n background-color: transparent;\n border: 0;\n}\n.hidden {\n display: none !important;\n}\n.affix {\n position: fixed;\n}\n@-ms-viewport {\n width: device-width;\n}\n.visible-xs,\n.visible-sm,\n.visible-md,\n.visible-lg {\n display: none !important;\n}\n.visible-xs-block,\n.visible-xs-inline,\n.visible-xs-inline-block,\n.visible-sm-block,\n.visible-sm-inline,\n.visible-sm-inline-block,\n.visible-md-block,\n.visible-md-inline,\n.visible-md-inline-block,\n.visible-lg-block,\n.visible-lg-inline,\n.visible-lg-inline-block {\n display: none !important;\n}\n@media (max-width: 767px) {\n .visible-xs {\n display: block !important;\n }\n table.visible-xs {\n display: table !important;\n }\n tr.visible-xs {\n display: table-row !important;\n }\n th.visible-xs,\n td.visible-xs {\n display: table-cell !important;\n }\n}\n@media (max-width: 767px) {\n .visible-xs-block {\n display: block !important;\n }\n}\n@media (max-width: 767px) {\n .visible-xs-inline {\n display: inline !important;\n }\n}\n@media (max-width: 767px) {\n .visible-xs-inline-block {\n display: inline-block !important;\n }\n}\n@media (min-width: 768px) and (max-width: 991px) {\n .visible-sm {\n display: block !important;\n }\n table.visible-sm {\n display: table !important;\n }\n tr.visible-sm {\n display: table-row !important;\n }\n th.visible-sm,\n td.visible-sm {\n display: table-cell !important;\n }\n}\n@media (min-width: 768px) and (max-width: 991px) {\n .visible-sm-block {\n display: block !important;\n }\n}\n@media (min-width: 768px) and (max-width: 991px) {\n .visible-sm-inline {\n display: inline !important;\n }\n}\n@media (min-width: 768px) and (max-width: 991px) {\n .visible-sm-inline-block {\n display: inline-block !important;\n }\n}\n@media (min-width: 992px) and (max-width: 1199px) {\n .visible-md {\n display: block !important;\n }\n table.visible-md {\n display: table !important;\n }\n tr.visible-md {\n display: table-row !important;\n }\n th.visible-md,\n td.visible-md {\n display: table-cell !important;\n }\n}\n@media (min-width: 992px) and (max-width: 1199px) {\n .visible-md-block {\n display: block !important;\n }\n}\n@media (min-width: 992px) and (max-width: 1199px) {\n .visible-md-inline {\n display: inline !important;\n }\n}\n@media (min-width: 992px) and (max-width: 1199px) {\n .visible-md-inline-block {\n display: inline-block !important;\n }\n}\n@media (min-width: 1200px) {\n .visible-lg {\n display: block !important;\n }\n table.visible-lg {\n display: table !important;\n }\n tr.visible-lg {\n display: table-row !important;\n }\n th.visible-lg,\n td.visible-lg {\n display: table-cell !important;\n }\n}\n@media (min-width: 1200px) {\n .visible-lg-block {\n display: block !important;\n }\n}\n@media (min-width: 1200px) {\n .visible-lg-inline {\n display: inline !important;\n }\n}\n@media (min-width: 1200px) {\n .visible-lg-inline-block {\n display: inline-block !important;\n }\n}\n@media (max-width: 767px) {\n .hidden-xs {\n display: none !important;\n }\n}\n@media (min-width: 768px) and (max-width: 991px) {\n .hidden-sm {\n display: none !important;\n }\n}\n@media (min-width: 992px) and (max-width: 1199px) {\n .hidden-md {\n display: none !important;\n }\n}\n@media (min-width: 1200px) {\n .hidden-lg {\n display: none !important;\n }\n}\n.visible-print {\n display: none !important;\n}\n@media print {\n .visible-print {\n display: block !important;\n }\n table.visible-print {\n display: table !important;\n }\n tr.visible-print {\n display: table-row !important;\n }\n th.visible-print,\n td.visible-print {\n display: table-cell !important;\n }\n}\n.visible-print-block {\n display: none !important;\n}\n@media print {\n .visible-print-block {\n display: block !important;\n }\n}\n.visible-print-inline {\n display: none !important;\n}\n@media print {\n .visible-print-inline {\n display: inline !important;\n }\n}\n.visible-print-inline-block {\n display: none !important;\n}\n@media print {\n .visible-print-inline-block {\n display: inline-block !important;\n }\n}\n@media print {\n .hidden-print {\n display: none !important;\n }\n}\n/*# sourceMappingURL=bootstrap.css.map */","/*!\n * Bootstrap v3.3.7 (http://getbootstrap.com)\n * Copyright 2011-2016 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n */\n/*! normalize.css v3.0.3 | MIT License | github.com/necolas/normalize.css */\nhtml {\n font-family: sans-serif;\n -webkit-text-size-adjust: 100%;\n -ms-text-size-adjust: 100%;\n}\nbody {\n margin: 0;\n}\narticle,\naside,\ndetails,\nfigcaption,\nfigure,\nfooter,\nheader,\nhgroup,\nmain,\nmenu,\nnav,\nsection,\nsummary {\n display: block;\n}\naudio,\ncanvas,\nprogress,\nvideo {\n display: inline-block;\n vertical-align: baseline;\n}\naudio:not([controls]) {\n display: none;\n height: 0;\n}\n[hidden],\ntemplate {\n display: none;\n}\na {\n background-color: transparent;\n}\na:active,\na:hover {\n outline: 0;\n}\nabbr[title] {\n border-bottom: 1px dotted;\n}\nb,\nstrong {\n font-weight: bold;\n}\ndfn {\n font-style: italic;\n}\nh1 {\n margin: .67em 0;\n font-size: 2em;\n}\nmark {\n color: #000;\n background: #ff0;\n}\nsmall {\n font-size: 80%;\n}\nsub,\nsup {\n position: relative;\n font-size: 75%;\n line-height: 0;\n vertical-align: baseline;\n}\nsup {\n top: -.5em;\n}\nsub {\n bottom: -.25em;\n}\nimg {\n border: 0;\n}\nsvg:not(:root) {\n overflow: hidden;\n}\nfigure {\n margin: 1em 40px;\n}\nhr {\n height: 0;\n -webkit-box-sizing: content-box;\n -moz-box-sizing: content-box;\n box-sizing: content-box;\n}\npre {\n overflow: auto;\n}\ncode,\nkbd,\npre,\nsamp {\n font-family: monospace, monospace;\n font-size: 1em;\n}\nbutton,\ninput,\noptgroup,\nselect,\ntextarea {\n margin: 0;\n font: inherit;\n color: inherit;\n}\nbutton {\n overflow: visible;\n}\nbutton,\nselect {\n text-transform: none;\n}\nbutton,\nhtml input[type=\"button\"],\ninput[type=\"reset\"],\ninput[type=\"submit\"] {\n -webkit-appearance: button;\n cursor: pointer;\n}\nbutton[disabled],\nhtml input[disabled] {\n cursor: default;\n}\nbutton::-moz-focus-inner,\ninput::-moz-focus-inner {\n padding: 0;\n border: 0;\n}\ninput {\n line-height: normal;\n}\ninput[type=\"checkbox\"],\ninput[type=\"radio\"] {\n -webkit-box-sizing: border-box;\n -moz-box-sizing: border-box;\n box-sizing: border-box;\n padding: 0;\n}\ninput[type=\"number\"]::-webkit-inner-spin-button,\ninput[type=\"number\"]::-webkit-outer-spin-button {\n height: auto;\n}\ninput[type=\"search\"] {\n -webkit-box-sizing: content-box;\n -moz-box-sizing: content-box;\n box-sizing: content-box;\n -webkit-appearance: textfield;\n}\ninput[type=\"search\"]::-webkit-search-cancel-button,\ninput[type=\"search\"]::-webkit-search-decoration {\n -webkit-appearance: none;\n}\nfieldset {\n padding: .35em .625em .75em;\n margin: 0 2px;\n border: 1px solid #c0c0c0;\n}\nlegend {\n padding: 0;\n border: 0;\n}\ntextarea {\n overflow: auto;\n}\noptgroup {\n font-weight: bold;\n}\ntable {\n border-spacing: 0;\n border-collapse: collapse;\n}\ntd,\nth {\n padding: 0;\n}\n/*! Source: https://github.com/h5bp/html5-boilerplate/blob/master/src/css/main.css */\n@media print {\n *,\n *:before,\n *:after {\n color: #000 !important;\n text-shadow: none !important;\n background: transparent !important;\n -webkit-box-shadow: none !important;\n box-shadow: none !important;\n }\n a,\n a:visited {\n text-decoration: underline;\n }\n a[href]:after {\n content: \" (\" attr(href) \")\";\n }\n abbr[title]:after {\n content: \" (\" attr(title) \")\";\n }\n a[href^=\"#\"]:after,\n a[href^=\"javascript:\"]:after {\n content: \"\";\n }\n pre,\n blockquote {\n border: 1px solid #999;\n\n page-break-inside: avoid;\n }\n thead {\n display: table-header-group;\n }\n tr,\n img {\n page-break-inside: avoid;\n }\n img {\n max-width: 100% !important;\n }\n p,\n h2,\n h3 {\n orphans: 3;\n widows: 3;\n }\n h2,\n h3 {\n page-break-after: avoid;\n }\n .navbar {\n display: none;\n }\n .btn > .caret,\n .dropup > .btn > .caret {\n border-top-color: #000 !important;\n }\n .label {\n border: 1px solid #000;\n }\n .table {\n border-collapse: collapse !important;\n }\n .table td,\n .table th {\n background-color: #fff !important;\n }\n .table-bordered th,\n .table-bordered td {\n border: 1px solid #ddd !important;\n }\n}\n@font-face {\n font-family: 'Glyphicons Halflings';\n\n src: url('../fonts/glyphicons-halflings-regular.eot');\n src: url('../fonts/glyphicons-halflings-regular.eot?#iefix') format('embedded-opentype'), url('../fonts/glyphicons-halflings-regular.woff2') format('woff2'), url('../fonts/glyphicons-halflings-regular.woff') format('woff'), url('../fonts/glyphicons-halflings-regular.ttf') format('truetype'), url('../fonts/glyphicons-halflings-regular.svg#glyphicons_halflingsregular') format('svg');\n}\n.glyphicon {\n position: relative;\n top: 1px;\n display: inline-block;\n font-family: 'Glyphicons Halflings';\n font-style: normal;\n font-weight: normal;\n line-height: 1;\n\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale;\n}\n.glyphicon-asterisk:before {\n content: \"\\002a\";\n}\n.glyphicon-plus:before {\n content: \"\\002b\";\n}\n.glyphicon-euro:before,\n.glyphicon-eur:before {\n content: \"\\20ac\";\n}\n.glyphicon-minus:before {\n content: \"\\2212\";\n}\n.glyphicon-cloud:before {\n content: \"\\2601\";\n}\n.glyphicon-envelope:before {\n content: \"\\2709\";\n}\n.glyphicon-pencil:before {\n content: \"\\270f\";\n}\n.glyphicon-glass:before {\n content: \"\\e001\";\n}\n.glyphicon-music:before {\n content: \"\\e002\";\n}\n.glyphicon-search:before {\n content: \"\\e003\";\n}\n.glyphicon-heart:before {\n content: \"\\e005\";\n}\n.glyphicon-star:before {\n content: \"\\e006\";\n}\n.glyphicon-star-empty:before {\n content: \"\\e007\";\n}\n.glyphicon-user:before {\n content: \"\\e008\";\n}\n.glyphicon-film:before {\n content: \"\\e009\";\n}\n.glyphicon-th-large:before {\n content: \"\\e010\";\n}\n.glyphicon-th:before {\n content: \"\\e011\";\n}\n.glyphicon-th-list:before {\n content: \"\\e012\";\n}\n.glyphicon-ok:before {\n content: \"\\e013\";\n}\n.glyphicon-remove:before {\n content: \"\\e014\";\n}\n.glyphicon-zoom-in:before {\n content: \"\\e015\";\n}\n.glyphicon-zoom-out:before {\n content: \"\\e016\";\n}\n.glyphicon-off:before {\n content: \"\\e017\";\n}\n.glyphicon-signal:before {\n content: \"\\e018\";\n}\n.glyphicon-cog:before {\n content: \"\\e019\";\n}\n.glyphicon-trash:before {\n content: \"\\e020\";\n}\n.glyphicon-home:before {\n content: \"\\e021\";\n}\n.glyphicon-file:before {\n content: \"\\e022\";\n}\n.glyphicon-time:before {\n content: \"\\e023\";\n}\n.glyphicon-road:before {\n content: \"\\e024\";\n}\n.glyphicon-download-alt:before {\n content: \"\\e025\";\n}\n.glyphicon-download:before {\n content: \"\\e026\";\n}\n.glyphicon-upload:before {\n content: \"\\e027\";\n}\n.glyphicon-inbox:before {\n content: \"\\e028\";\n}\n.glyphicon-play-circle:before {\n content: \"\\e029\";\n}\n.glyphicon-repeat:before {\n content: \"\\e030\";\n}\n.glyphicon-refresh:before {\n content: \"\\e031\";\n}\n.glyphicon-list-alt:before {\n content: \"\\e032\";\n}\n.glyphicon-lock:before {\n content: \"\\e033\";\n}\n.glyphicon-flag:before {\n content: \"\\e034\";\n}\n.glyphicon-headphones:before {\n content: \"\\e035\";\n}\n.glyphicon-volume-off:before {\n content: \"\\e036\";\n}\n.glyphicon-volume-down:before {\n content: \"\\e037\";\n}\n.glyphicon-volume-up:before {\n content: \"\\e038\";\n}\n.glyphicon-qrcode:before {\n content: \"\\e039\";\n}\n.glyphicon-barcode:before {\n content: \"\\e040\";\n}\n.glyphicon-tag:before {\n content: \"\\e041\";\n}\n.glyphicon-tags:before {\n content: \"\\e042\";\n}\n.glyphicon-book:before {\n content: \"\\e043\";\n}\n.glyphicon-bookmark:before {\n content: \"\\e044\";\n}\n.glyphicon-print:before {\n content: \"\\e045\";\n}\n.glyphicon-camera:before {\n content: \"\\e046\";\n}\n.glyphicon-font:before {\n content: \"\\e047\";\n}\n.glyphicon-bold:before {\n content: \"\\e048\";\n}\n.glyphicon-italic:before {\n content: \"\\e049\";\n}\n.glyphicon-text-height:before {\n content: \"\\e050\";\n}\n.glyphicon-text-width:before {\n content: \"\\e051\";\n}\n.glyphicon-align-left:before {\n content: \"\\e052\";\n}\n.glyphicon-align-center:before {\n content: \"\\e053\";\n}\n.glyphicon-align-right:before {\n content: \"\\e054\";\n}\n.glyphicon-align-justify:before {\n content: \"\\e055\";\n}\n.glyphicon-list:before {\n content: \"\\e056\";\n}\n.glyphicon-indent-left:before {\n content: \"\\e057\";\n}\n.glyphicon-indent-right:before {\n content: \"\\e058\";\n}\n.glyphicon-facetime-video:before {\n content: \"\\e059\";\n}\n.glyphicon-picture:before {\n content: \"\\e060\";\n}\n.glyphicon-map-marker:before {\n content: \"\\e062\";\n}\n.glyphicon-adjust:before {\n content: \"\\e063\";\n}\n.glyphicon-tint:before {\n content: \"\\e064\";\n}\n.glyphicon-edit:before {\n content: \"\\e065\";\n}\n.glyphicon-share:before {\n content: \"\\e066\";\n}\n.glyphicon-check:before {\n content: \"\\e067\";\n}\n.glyphicon-move:before {\n content: \"\\e068\";\n}\n.glyphicon-step-backward:before {\n content: \"\\e069\";\n}\n.glyphicon-fast-backward:before {\n content: \"\\e070\";\n}\n.glyphicon-backward:before {\n content: \"\\e071\";\n}\n.glyphicon-play:before {\n content: \"\\e072\";\n}\n.glyphicon-pause:before {\n content: \"\\e073\";\n}\n.glyphicon-stop:before {\n content: \"\\e074\";\n}\n.glyphicon-forward:before {\n content: \"\\e075\";\n}\n.glyphicon-fast-forward:before {\n content: \"\\e076\";\n}\n.glyphicon-step-forward:before {\n content: \"\\e077\";\n}\n.glyphicon-eject:before {\n content: \"\\e078\";\n}\n.glyphicon-chevron-left:before {\n content: \"\\e079\";\n}\n.glyphicon-chevron-right:before {\n content: \"\\e080\";\n}\n.glyphicon-plus-sign:before {\n content: \"\\e081\";\n}\n.glyphicon-minus-sign:before {\n content: \"\\e082\";\n}\n.glyphicon-remove-sign:before {\n content: \"\\e083\";\n}\n.glyphicon-ok-sign:before {\n content: \"\\e084\";\n}\n.glyphicon-question-sign:before {\n content: \"\\e085\";\n}\n.glyphicon-info-sign:before {\n content: \"\\e086\";\n}\n.glyphicon-screenshot:before {\n content: \"\\e087\";\n}\n.glyphicon-remove-circle:before {\n content: \"\\e088\";\n}\n.glyphicon-ok-circle:before {\n content: \"\\e089\";\n}\n.glyphicon-ban-circle:before {\n content: \"\\e090\";\n}\n.glyphicon-arrow-left:before {\n content: \"\\e091\";\n}\n.glyphicon-arrow-right:before {\n content: \"\\e092\";\n}\n.glyphicon-arrow-up:before {\n content: \"\\e093\";\n}\n.glyphicon-arrow-down:before {\n content: \"\\e094\";\n}\n.glyphicon-share-alt:before {\n content: \"\\e095\";\n}\n.glyphicon-resize-full:before {\n content: \"\\e096\";\n}\n.glyphicon-resize-small:before {\n content: \"\\e097\";\n}\n.glyphicon-exclamation-sign:before {\n content: \"\\e101\";\n}\n.glyphicon-gift:before {\n content: \"\\e102\";\n}\n.glyphicon-leaf:before {\n content: \"\\e103\";\n}\n.glyphicon-fire:before {\n content: \"\\e104\";\n}\n.glyphicon-eye-open:before {\n content: \"\\e105\";\n}\n.glyphicon-eye-close:before {\n content: \"\\e106\";\n}\n.glyphicon-warning-sign:before {\n content: \"\\e107\";\n}\n.glyphicon-plane:before {\n content: \"\\e108\";\n}\n.glyphicon-calendar:before {\n content: \"\\e109\";\n}\n.glyphicon-random:before {\n content: \"\\e110\";\n}\n.glyphicon-comment:before {\n content: \"\\e111\";\n}\n.glyphicon-magnet:before {\n content: \"\\e112\";\n}\n.glyphicon-chevron-up:before {\n content: \"\\e113\";\n}\n.glyphicon-chevron-down:before {\n content: \"\\e114\";\n}\n.glyphicon-retweet:before {\n content: \"\\e115\";\n}\n.glyphicon-shopping-cart:before {\n content: \"\\e116\";\n}\n.glyphicon-folder-close:before {\n content: \"\\e117\";\n}\n.glyphicon-folder-open:before {\n content: \"\\e118\";\n}\n.glyphicon-resize-vertical:before {\n content: \"\\e119\";\n}\n.glyphicon-resize-horizontal:before {\n content: \"\\e120\";\n}\n.glyphicon-hdd:before {\n content: \"\\e121\";\n}\n.glyphicon-bullhorn:before {\n content: \"\\e122\";\n}\n.glyphicon-bell:before {\n content: \"\\e123\";\n}\n.glyphicon-certificate:before {\n content: \"\\e124\";\n}\n.glyphicon-thumbs-up:before {\n content: \"\\e125\";\n}\n.glyphicon-thumbs-down:before {\n content: \"\\e126\";\n}\n.glyphicon-hand-right:before {\n content: \"\\e127\";\n}\n.glyphicon-hand-left:before {\n content: \"\\e128\";\n}\n.glyphicon-hand-up:before {\n content: \"\\e129\";\n}\n.glyphicon-hand-down:before {\n content: \"\\e130\";\n}\n.glyphicon-circle-arrow-right:before {\n content: \"\\e131\";\n}\n.glyphicon-circle-arrow-left:before {\n content: \"\\e132\";\n}\n.glyphicon-circle-arrow-up:before {\n content: \"\\e133\";\n}\n.glyphicon-circle-arrow-down:before {\n content: \"\\e134\";\n}\n.glyphicon-globe:before {\n content: \"\\e135\";\n}\n.glyphicon-wrench:before {\n content: \"\\e136\";\n}\n.glyphicon-tasks:before {\n content: \"\\e137\";\n}\n.glyphicon-filter:before {\n content: \"\\e138\";\n}\n.glyphicon-briefcase:before {\n content: \"\\e139\";\n}\n.glyphicon-fullscreen:before {\n content: \"\\e140\";\n}\n.glyphicon-dashboard:before {\n content: \"\\e141\";\n}\n.glyphicon-paperclip:before {\n content: \"\\e142\";\n}\n.glyphicon-heart-empty:before {\n content: \"\\e143\";\n}\n.glyphicon-link:before {\n content: \"\\e144\";\n}\n.glyphicon-phone:before {\n content: \"\\e145\";\n}\n.glyphicon-pushpin:before {\n content: \"\\e146\";\n}\n.glyphicon-usd:before {\n content: \"\\e148\";\n}\n.glyphicon-gbp:before {\n content: \"\\e149\";\n}\n.glyphicon-sort:before {\n content: \"\\e150\";\n}\n.glyphicon-sort-by-alphabet:before {\n content: \"\\e151\";\n}\n.glyphicon-sort-by-alphabet-alt:before {\n content: \"\\e152\";\n}\n.glyphicon-sort-by-order:before {\n content: \"\\e153\";\n}\n.glyphicon-sort-by-order-alt:before {\n content: \"\\e154\";\n}\n.glyphicon-sort-by-attributes:before {\n content: \"\\e155\";\n}\n.glyphicon-sort-by-attributes-alt:before {\n content: \"\\e156\";\n}\n.glyphicon-unchecked:before {\n content: \"\\e157\";\n}\n.glyphicon-expand:before {\n content: \"\\e158\";\n}\n.glyphicon-collapse-down:before {\n content: \"\\e159\";\n}\n.glyphicon-collapse-up:before {\n content: \"\\e160\";\n}\n.glyphicon-log-in:before {\n content: \"\\e161\";\n}\n.glyphicon-flash:before {\n content: \"\\e162\";\n}\n.glyphicon-log-out:before {\n content: \"\\e163\";\n}\n.glyphicon-new-window:before {\n content: \"\\e164\";\n}\n.glyphicon-record:before {\n content: \"\\e165\";\n}\n.glyphicon-save:before {\n content: \"\\e166\";\n}\n.glyphicon-open:before {\n content: \"\\e167\";\n}\n.glyphicon-saved:before {\n content: \"\\e168\";\n}\n.glyphicon-import:before {\n content: \"\\e169\";\n}\n.glyphicon-export:before {\n content: \"\\e170\";\n}\n.glyphicon-send:before {\n content: \"\\e171\";\n}\n.glyphicon-floppy-disk:before {\n content: \"\\e172\";\n}\n.glyphicon-floppy-saved:before {\n content: \"\\e173\";\n}\n.glyphicon-floppy-remove:before {\n content: \"\\e174\";\n}\n.glyphicon-floppy-save:before {\n content: \"\\e175\";\n}\n.glyphicon-floppy-open:before {\n content: \"\\e176\";\n}\n.glyphicon-credit-card:before {\n content: \"\\e177\";\n}\n.glyphicon-transfer:before {\n content: \"\\e178\";\n}\n.glyphicon-cutlery:before {\n content: \"\\e179\";\n}\n.glyphicon-header:before {\n content: \"\\e180\";\n}\n.glyphicon-compressed:before {\n content: \"\\e181\";\n}\n.glyphicon-earphone:before {\n content: \"\\e182\";\n}\n.glyphicon-phone-alt:before {\n content: \"\\e183\";\n}\n.glyphicon-tower:before {\n content: \"\\e184\";\n}\n.glyphicon-stats:before {\n content: \"\\e185\";\n}\n.glyphicon-sd-video:before {\n content: \"\\e186\";\n}\n.glyphicon-hd-video:before {\n content: \"\\e187\";\n}\n.glyphicon-subtitles:before {\n content: \"\\e188\";\n}\n.glyphicon-sound-stereo:before {\n content: \"\\e189\";\n}\n.glyphicon-sound-dolby:before {\n content: \"\\e190\";\n}\n.glyphicon-sound-5-1:before {\n content: \"\\e191\";\n}\n.glyphicon-sound-6-1:before {\n content: \"\\e192\";\n}\n.glyphicon-sound-7-1:before {\n content: \"\\e193\";\n}\n.glyphicon-copyright-mark:before {\n content: \"\\e194\";\n}\n.glyphicon-registration-mark:before {\n content: \"\\e195\";\n}\n.glyphicon-cloud-download:before {\n content: \"\\e197\";\n}\n.glyphicon-cloud-upload:before {\n content: \"\\e198\";\n}\n.glyphicon-tree-conifer:before {\n content: \"\\e199\";\n}\n.glyphicon-tree-deciduous:before {\n content: \"\\e200\";\n}\n.glyphicon-cd:before {\n content: \"\\e201\";\n}\n.glyphicon-save-file:before {\n content: \"\\e202\";\n}\n.glyphicon-open-file:before {\n content: \"\\e203\";\n}\n.glyphicon-level-up:before {\n content: \"\\e204\";\n}\n.glyphicon-copy:before {\n content: \"\\e205\";\n}\n.glyphicon-paste:before {\n content: \"\\e206\";\n}\n.glyphicon-alert:before {\n content: \"\\e209\";\n}\n.glyphicon-equalizer:before {\n content: \"\\e210\";\n}\n.glyphicon-king:before {\n content: \"\\e211\";\n}\n.glyphicon-queen:before {\n content: \"\\e212\";\n}\n.glyphicon-pawn:before {\n content: \"\\e213\";\n}\n.glyphicon-bishop:before {\n content: \"\\e214\";\n}\n.glyphicon-knight:before {\n content: \"\\e215\";\n}\n.glyphicon-baby-formula:before {\n content: \"\\e216\";\n}\n.glyphicon-tent:before {\n content: \"\\26fa\";\n}\n.glyphicon-blackboard:before {\n content: \"\\e218\";\n}\n.glyphicon-bed:before {\n content: \"\\e219\";\n}\n.glyphicon-apple:before {\n content: \"\\f8ff\";\n}\n.glyphicon-erase:before {\n content: \"\\e221\";\n}\n.glyphicon-hourglass:before {\n content: \"\\231b\";\n}\n.glyphicon-lamp:before {\n content: \"\\e223\";\n}\n.glyphicon-duplicate:before {\n content: \"\\e224\";\n}\n.glyphicon-piggy-bank:before {\n content: \"\\e225\";\n}\n.glyphicon-scissors:before {\n content: \"\\e226\";\n}\n.glyphicon-bitcoin:before {\n content: \"\\e227\";\n}\n.glyphicon-btc:before {\n content: \"\\e227\";\n}\n.glyphicon-xbt:before {\n content: \"\\e227\";\n}\n.glyphicon-yen:before {\n content: \"\\00a5\";\n}\n.glyphicon-jpy:before {\n content: \"\\00a5\";\n}\n.glyphicon-ruble:before {\n content: \"\\20bd\";\n}\n.glyphicon-rub:before {\n content: \"\\20bd\";\n}\n.glyphicon-scale:before {\n content: \"\\e230\";\n}\n.glyphicon-ice-lolly:before {\n content: \"\\e231\";\n}\n.glyphicon-ice-lolly-tasted:before {\n content: \"\\e232\";\n}\n.glyphicon-education:before {\n content: \"\\e233\";\n}\n.glyphicon-option-horizontal:before {\n content: \"\\e234\";\n}\n.glyphicon-option-vertical:before {\n content: \"\\e235\";\n}\n.glyphicon-menu-hamburger:before {\n content: \"\\e236\";\n}\n.glyphicon-modal-window:before {\n content: \"\\e237\";\n}\n.glyphicon-oil:before {\n content: \"\\e238\";\n}\n.glyphicon-grain:before {\n content: \"\\e239\";\n}\n.glyphicon-sunglasses:before {\n content: \"\\e240\";\n}\n.glyphicon-text-size:before {\n content: \"\\e241\";\n}\n.glyphicon-text-color:before {\n content: \"\\e242\";\n}\n.glyphicon-text-background:before {\n content: \"\\e243\";\n}\n.glyphicon-object-align-top:before {\n content: \"\\e244\";\n}\n.glyphicon-object-align-bottom:before {\n content: \"\\e245\";\n}\n.glyphicon-object-align-horizontal:before {\n content: \"\\e246\";\n}\n.glyphicon-object-align-left:before {\n content: \"\\e247\";\n}\n.glyphicon-object-align-vertical:before {\n content: \"\\e248\";\n}\n.glyphicon-object-align-right:before {\n content: \"\\e249\";\n}\n.glyphicon-triangle-right:before {\n content: \"\\e250\";\n}\n.glyphicon-triangle-left:before {\n content: \"\\e251\";\n}\n.glyphicon-triangle-bottom:before {\n content: \"\\e252\";\n}\n.glyphicon-triangle-top:before {\n content: \"\\e253\";\n}\n.glyphicon-console:before {\n content: \"\\e254\";\n}\n.glyphicon-superscript:before {\n content: \"\\e255\";\n}\n.glyphicon-subscript:before {\n content: \"\\e256\";\n}\n.glyphicon-menu-left:before {\n content: \"\\e257\";\n}\n.glyphicon-menu-right:before {\n content: \"\\e258\";\n}\n.glyphicon-menu-down:before {\n content: \"\\e259\";\n}\n.glyphicon-menu-up:before {\n content: \"\\e260\";\n}\n* {\n -webkit-box-sizing: border-box;\n -moz-box-sizing: border-box;\n box-sizing: border-box;\n}\n*:before,\n*:after {\n -webkit-box-sizing: border-box;\n -moz-box-sizing: border-box;\n box-sizing: border-box;\n}\nhtml {\n font-size: 10px;\n\n -webkit-tap-highlight-color: rgba(0, 0, 0, 0);\n}\nbody {\n font-family: \"Helvetica Neue\", Helvetica, Arial, sans-serif;\n font-size: 14px;\n line-height: 1.42857143;\n color: #333;\n background-color: #fff;\n}\ninput,\nbutton,\nselect,\ntextarea {\n font-family: inherit;\n font-size: inherit;\n line-height: inherit;\n}\na {\n color: #337ab7;\n text-decoration: none;\n}\na:hover,\na:focus {\n color: #23527c;\n text-decoration: underline;\n}\na:focus {\n outline: 5px auto -webkit-focus-ring-color;\n outline-offset: -2px;\n}\nfigure {\n margin: 0;\n}\nimg {\n vertical-align: middle;\n}\n.img-responsive,\n.thumbnail > img,\n.thumbnail a > img,\n.carousel-inner > .item > img,\n.carousel-inner > .item > a > img {\n display: block;\n max-width: 100%;\n height: auto;\n}\n.img-rounded {\n border-radius: 6px;\n}\n.img-thumbnail {\n display: inline-block;\n max-width: 100%;\n height: auto;\n padding: 4px;\n line-height: 1.42857143;\n background-color: #fff;\n border: 1px solid #ddd;\n border-radius: 4px;\n -webkit-transition: all .2s ease-in-out;\n -o-transition: all .2s ease-in-out;\n transition: all .2s ease-in-out;\n}\n.img-circle {\n border-radius: 50%;\n}\nhr {\n margin-top: 20px;\n margin-bottom: 20px;\n border: 0;\n border-top: 1px solid #eee;\n}\n.sr-only {\n position: absolute;\n width: 1px;\n height: 1px;\n padding: 0;\n margin: -1px;\n overflow: hidden;\n clip: rect(0, 0, 0, 0);\n border: 0;\n}\n.sr-only-focusable:active,\n.sr-only-focusable:focus {\n position: static;\n width: auto;\n height: auto;\n margin: 0;\n overflow: visible;\n clip: auto;\n}\n[role=\"button\"] {\n cursor: pointer;\n}\nh1,\nh2,\nh3,\nh4,\nh5,\nh6,\n.h1,\n.h2,\n.h3,\n.h4,\n.h5,\n.h6 {\n font-family: inherit;\n font-weight: 500;\n line-height: 1.1;\n color: inherit;\n}\nh1 small,\nh2 small,\nh3 small,\nh4 small,\nh5 small,\nh6 small,\n.h1 small,\n.h2 small,\n.h3 small,\n.h4 small,\n.h5 small,\n.h6 small,\nh1 .small,\nh2 .small,\nh3 .small,\nh4 .small,\nh5 .small,\nh6 .small,\n.h1 .small,\n.h2 .small,\n.h3 .small,\n.h4 .small,\n.h5 .small,\n.h6 .small {\n font-weight: normal;\n line-height: 1;\n color: #777;\n}\nh1,\n.h1,\nh2,\n.h2,\nh3,\n.h3 {\n margin-top: 20px;\n margin-bottom: 10px;\n}\nh1 small,\n.h1 small,\nh2 small,\n.h2 small,\nh3 small,\n.h3 small,\nh1 .small,\n.h1 .small,\nh2 .small,\n.h2 .small,\nh3 .small,\n.h3 .small {\n font-size: 65%;\n}\nh4,\n.h4,\nh5,\n.h5,\nh6,\n.h6 {\n margin-top: 10px;\n margin-bottom: 10px;\n}\nh4 small,\n.h4 small,\nh5 small,\n.h5 small,\nh6 small,\n.h6 small,\nh4 .small,\n.h4 .small,\nh5 .small,\n.h5 .small,\nh6 .small,\n.h6 .small {\n font-size: 75%;\n}\nh1,\n.h1 {\n font-size: 36px;\n}\nh2,\n.h2 {\n font-size: 30px;\n}\nh3,\n.h3 {\n font-size: 24px;\n}\nh4,\n.h4 {\n font-size: 18px;\n}\nh5,\n.h5 {\n font-size: 14px;\n}\nh6,\n.h6 {\n font-size: 12px;\n}\np {\n margin: 0 0 10px;\n}\n.lead {\n margin-bottom: 20px;\n font-size: 16px;\n font-weight: 300;\n line-height: 1.4;\n}\n@media (min-width: 768px) {\n .lead {\n font-size: 21px;\n }\n}\nsmall,\n.small {\n font-size: 85%;\n}\nmark,\n.mark {\n padding: .2em;\n background-color: #fcf8e3;\n}\n.text-left {\n text-align: left;\n}\n.text-right {\n text-align: right;\n}\n.text-center {\n text-align: center;\n}\n.text-justify {\n text-align: justify;\n}\n.text-nowrap {\n white-space: nowrap;\n}\n.text-lowercase {\n text-transform: lowercase;\n}\n.text-uppercase {\n text-transform: uppercase;\n}\n.text-capitalize {\n text-transform: capitalize;\n}\n.text-muted {\n color: #777;\n}\n.text-primary {\n color: #337ab7;\n}\na.text-primary:hover,\na.text-primary:focus {\n color: #286090;\n}\n.text-success {\n color: #3c763d;\n}\na.text-success:hover,\na.text-success:focus {\n color: #2b542c;\n}\n.text-info {\n color: #31708f;\n}\na.text-info:hover,\na.text-info:focus {\n color: #245269;\n}\n.text-warning {\n color: #8a6d3b;\n}\na.text-warning:hover,\na.text-warning:focus {\n color: #66512c;\n}\n.text-danger {\n color: #a94442;\n}\na.text-danger:hover,\na.text-danger:focus {\n color: #843534;\n}\n.bg-primary {\n color: #fff;\n background-color: #337ab7;\n}\na.bg-primary:hover,\na.bg-primary:focus {\n background-color: #286090;\n}\n.bg-success {\n background-color: #dff0d8;\n}\na.bg-success:hover,\na.bg-success:focus {\n background-color: #c1e2b3;\n}\n.bg-info {\n background-color: #d9edf7;\n}\na.bg-info:hover,\na.bg-info:focus {\n background-color: #afd9ee;\n}\n.bg-warning {\n background-color: #fcf8e3;\n}\na.bg-warning:hover,\na.bg-warning:focus {\n background-color: #f7ecb5;\n}\n.bg-danger {\n background-color: #f2dede;\n}\na.bg-danger:hover,\na.bg-danger:focus {\n background-color: #e4b9b9;\n}\n.page-header {\n padding-bottom: 9px;\n margin: 40px 0 20px;\n border-bottom: 1px solid #eee;\n}\nul,\nol {\n margin-top: 0;\n margin-bottom: 10px;\n}\nul ul,\nol ul,\nul ol,\nol ol {\n margin-bottom: 0;\n}\n.list-unstyled {\n padding-left: 0;\n list-style: none;\n}\n.list-inline {\n padding-left: 0;\n margin-left: -5px;\n list-style: none;\n}\n.list-inline > li {\n display: inline-block;\n padding-right: 5px;\n padding-left: 5px;\n}\ndl {\n margin-top: 0;\n margin-bottom: 20px;\n}\ndt,\ndd {\n line-height: 1.42857143;\n}\ndt {\n font-weight: bold;\n}\ndd {\n margin-left: 0;\n}\n@media (min-width: 768px) {\n .dl-horizontal dt {\n float: left;\n width: 160px;\n overflow: hidden;\n clear: left;\n text-align: right;\n text-overflow: ellipsis;\n white-space: nowrap;\n }\n .dl-horizontal dd {\n margin-left: 180px;\n }\n}\nabbr[title],\nabbr[data-original-title] {\n cursor: help;\n border-bottom: 1px dotted #777;\n}\n.initialism {\n font-size: 90%;\n text-transform: uppercase;\n}\nblockquote {\n padding: 10px 20px;\n margin: 0 0 20px;\n font-size: 17.5px;\n border-left: 5px solid #eee;\n}\nblockquote p:last-child,\nblockquote ul:last-child,\nblockquote ol:last-child {\n margin-bottom: 0;\n}\nblockquote footer,\nblockquote small,\nblockquote .small {\n display: block;\n font-size: 80%;\n line-height: 1.42857143;\n color: #777;\n}\nblockquote footer:before,\nblockquote small:before,\nblockquote .small:before {\n content: '\\2014 \\00A0';\n}\n.blockquote-reverse,\nblockquote.pull-right {\n padding-right: 15px;\n padding-left: 0;\n text-align: right;\n border-right: 5px solid #eee;\n border-left: 0;\n}\n.blockquote-reverse footer:before,\nblockquote.pull-right footer:before,\n.blockquote-reverse small:before,\nblockquote.pull-right small:before,\n.blockquote-reverse .small:before,\nblockquote.pull-right .small:before {\n content: '';\n}\n.blockquote-reverse footer:after,\nblockquote.pull-right footer:after,\n.blockquote-reverse small:after,\nblockquote.pull-right small:after,\n.blockquote-reverse .small:after,\nblockquote.pull-right .small:after {\n content: '\\00A0 \\2014';\n}\naddress {\n margin-bottom: 20px;\n font-style: normal;\n line-height: 1.42857143;\n}\ncode,\nkbd,\npre,\nsamp {\n font-family: Menlo, Monaco, Consolas, \"Courier New\", monospace;\n}\ncode {\n padding: 2px 4px;\n font-size: 90%;\n color: #c7254e;\n background-color: #f9f2f4;\n border-radius: 4px;\n}\nkbd {\n padding: 2px 4px;\n font-size: 90%;\n color: #fff;\n background-color: #333;\n border-radius: 3px;\n -webkit-box-shadow: inset 0 -1px 0 rgba(0, 0, 0, .25);\n box-shadow: inset 0 -1px 0 rgba(0, 0, 0, .25);\n}\nkbd kbd {\n padding: 0;\n font-size: 100%;\n font-weight: bold;\n -webkit-box-shadow: none;\n box-shadow: none;\n}\npre {\n display: block;\n padding: 9.5px;\n margin: 0 0 10px;\n font-size: 13px;\n line-height: 1.42857143;\n color: #333;\n word-break: break-all;\n word-wrap: break-word;\n background-color: #f5f5f5;\n border: 1px solid #ccc;\n border-radius: 4px;\n}\npre code {\n padding: 0;\n font-size: inherit;\n color: inherit;\n white-space: pre-wrap;\n background-color: transparent;\n border-radius: 0;\n}\n.pre-scrollable {\n max-height: 340px;\n overflow-y: scroll;\n}\n.container {\n padding-right: 15px;\n padding-left: 15px;\n margin-right: auto;\n margin-left: auto;\n}\n@media (min-width: 768px) {\n .container {\n width: 750px;\n }\n}\n@media (min-width: 992px) {\n .container {\n width: 970px;\n }\n}\n@media (min-width: 1200px) {\n .container {\n width: 1170px;\n }\n}\n.container-fluid {\n padding-right: 15px;\n padding-left: 15px;\n margin-right: auto;\n margin-left: auto;\n}\n.row {\n margin-right: -15px;\n margin-left: -15px;\n}\n.col-xs-1, .col-sm-1, .col-md-1, .col-lg-1, .col-xs-2, .col-sm-2, .col-md-2, .col-lg-2, .col-xs-3, .col-sm-3, .col-md-3, .col-lg-3, .col-xs-4, .col-sm-4, .col-md-4, .col-lg-4, .col-xs-5, .col-sm-5, .col-md-5, .col-lg-5, .col-xs-6, .col-sm-6, .col-md-6, .col-lg-6, .col-xs-7, .col-sm-7, .col-md-7, .col-lg-7, .col-xs-8, .col-sm-8, .col-md-8, .col-lg-8, .col-xs-9, .col-sm-9, .col-md-9, .col-lg-9, .col-xs-10, .col-sm-10, .col-md-10, .col-lg-10, .col-xs-11, .col-sm-11, .col-md-11, .col-lg-11, .col-xs-12, .col-sm-12, .col-md-12, .col-lg-12 {\n position: relative;\n min-height: 1px;\n padding-right: 15px;\n padding-left: 15px;\n}\n.col-xs-1, .col-xs-2, .col-xs-3, .col-xs-4, .col-xs-5, .col-xs-6, .col-xs-7, .col-xs-8, .col-xs-9, .col-xs-10, .col-xs-11, .col-xs-12 {\n float: left;\n}\n.col-xs-12 {\n width: 100%;\n}\n.col-xs-11 {\n width: 91.66666667%;\n}\n.col-xs-10 {\n width: 83.33333333%;\n}\n.col-xs-9 {\n width: 75%;\n}\n.col-xs-8 {\n width: 66.66666667%;\n}\n.col-xs-7 {\n width: 58.33333333%;\n}\n.col-xs-6 {\n width: 50%;\n}\n.col-xs-5 {\n width: 41.66666667%;\n}\n.col-xs-4 {\n width: 33.33333333%;\n}\n.col-xs-3 {\n width: 25%;\n}\n.col-xs-2 {\n width: 16.66666667%;\n}\n.col-xs-1 {\n width: 8.33333333%;\n}\n.col-xs-pull-12 {\n right: 100%;\n}\n.col-xs-pull-11 {\n right: 91.66666667%;\n}\n.col-xs-pull-10 {\n right: 83.33333333%;\n}\n.col-xs-pull-9 {\n right: 75%;\n}\n.col-xs-pull-8 {\n right: 66.66666667%;\n}\n.col-xs-pull-7 {\n right: 58.33333333%;\n}\n.col-xs-pull-6 {\n right: 50%;\n}\n.col-xs-pull-5 {\n right: 41.66666667%;\n}\n.col-xs-pull-4 {\n right: 33.33333333%;\n}\n.col-xs-pull-3 {\n right: 25%;\n}\n.col-xs-pull-2 {\n right: 16.66666667%;\n}\n.col-xs-pull-1 {\n right: 8.33333333%;\n}\n.col-xs-pull-0 {\n right: auto;\n}\n.col-xs-push-12 {\n left: 100%;\n}\n.col-xs-push-11 {\n left: 91.66666667%;\n}\n.col-xs-push-10 {\n left: 83.33333333%;\n}\n.col-xs-push-9 {\n left: 75%;\n}\n.col-xs-push-8 {\n left: 66.66666667%;\n}\n.col-xs-push-7 {\n left: 58.33333333%;\n}\n.col-xs-push-6 {\n left: 50%;\n}\n.col-xs-push-5 {\n left: 41.66666667%;\n}\n.col-xs-push-4 {\n left: 33.33333333%;\n}\n.col-xs-push-3 {\n left: 25%;\n}\n.col-xs-push-2 {\n left: 16.66666667%;\n}\n.col-xs-push-1 {\n left: 8.33333333%;\n}\n.col-xs-push-0 {\n left: auto;\n}\n.col-xs-offset-12 {\n margin-left: 100%;\n}\n.col-xs-offset-11 {\n margin-left: 91.66666667%;\n}\n.col-xs-offset-10 {\n margin-left: 83.33333333%;\n}\n.col-xs-offset-9 {\n margin-left: 75%;\n}\n.col-xs-offset-8 {\n margin-left: 66.66666667%;\n}\n.col-xs-offset-7 {\n margin-left: 58.33333333%;\n}\n.col-xs-offset-6 {\n margin-left: 50%;\n}\n.col-xs-offset-5 {\n margin-left: 41.66666667%;\n}\n.col-xs-offset-4 {\n margin-left: 33.33333333%;\n}\n.col-xs-offset-3 {\n margin-left: 25%;\n}\n.col-xs-offset-2 {\n margin-left: 16.66666667%;\n}\n.col-xs-offset-1 {\n margin-left: 8.33333333%;\n}\n.col-xs-offset-0 {\n margin-left: 0;\n}\n@media (min-width: 768px) {\n .col-sm-1, .col-sm-2, .col-sm-3, .col-sm-4, .col-sm-5, .col-sm-6, .col-sm-7, .col-sm-8, .col-sm-9, .col-sm-10, .col-sm-11, .col-sm-12 {\n float: left;\n }\n .col-sm-12 {\n width: 100%;\n }\n .col-sm-11 {\n width: 91.66666667%;\n }\n .col-sm-10 {\n width: 83.33333333%;\n }\n .col-sm-9 {\n width: 75%;\n }\n .col-sm-8 {\n width: 66.66666667%;\n }\n .col-sm-7 {\n width: 58.33333333%;\n }\n .col-sm-6 {\n width: 50%;\n }\n .col-sm-5 {\n width: 41.66666667%;\n }\n .col-sm-4 {\n width: 33.33333333%;\n }\n .col-sm-3 {\n width: 25%;\n }\n .col-sm-2 {\n width: 16.66666667%;\n }\n .col-sm-1 {\n width: 8.33333333%;\n }\n .col-sm-pull-12 {\n right: 100%;\n }\n .col-sm-pull-11 {\n right: 91.66666667%;\n }\n .col-sm-pull-10 {\n right: 83.33333333%;\n }\n .col-sm-pull-9 {\n right: 75%;\n }\n .col-sm-pull-8 {\n right: 66.66666667%;\n }\n .col-sm-pull-7 {\n right: 58.33333333%;\n }\n .col-sm-pull-6 {\n right: 50%;\n }\n .col-sm-pull-5 {\n right: 41.66666667%;\n }\n .col-sm-pull-4 {\n right: 33.33333333%;\n }\n .col-sm-pull-3 {\n right: 25%;\n }\n .col-sm-pull-2 {\n right: 16.66666667%;\n }\n .col-sm-pull-1 {\n right: 8.33333333%;\n }\n .col-sm-pull-0 {\n right: auto;\n }\n .col-sm-push-12 {\n left: 100%;\n }\n .col-sm-push-11 {\n left: 91.66666667%;\n }\n .col-sm-push-10 {\n left: 83.33333333%;\n }\n .col-sm-push-9 {\n left: 75%;\n }\n .col-sm-push-8 {\n left: 66.66666667%;\n }\n .col-sm-push-7 {\n left: 58.33333333%;\n }\n .col-sm-push-6 {\n left: 50%;\n }\n .col-sm-push-5 {\n left: 41.66666667%;\n }\n .col-sm-push-4 {\n left: 33.33333333%;\n }\n .col-sm-push-3 {\n left: 25%;\n }\n .col-sm-push-2 {\n left: 16.66666667%;\n }\n .col-sm-push-1 {\n left: 8.33333333%;\n }\n .col-sm-push-0 {\n left: auto;\n }\n .col-sm-offset-12 {\n margin-left: 100%;\n }\n .col-sm-offset-11 {\n margin-left: 91.66666667%;\n }\n .col-sm-offset-10 {\n margin-left: 83.33333333%;\n }\n .col-sm-offset-9 {\n margin-left: 75%;\n }\n .col-sm-offset-8 {\n margin-left: 66.66666667%;\n }\n .col-sm-offset-7 {\n margin-left: 58.33333333%;\n }\n .col-sm-offset-6 {\n margin-left: 50%;\n }\n .col-sm-offset-5 {\n margin-left: 41.66666667%;\n }\n .col-sm-offset-4 {\n margin-left: 33.33333333%;\n }\n .col-sm-offset-3 {\n margin-left: 25%;\n }\n .col-sm-offset-2 {\n margin-left: 16.66666667%;\n }\n .col-sm-offset-1 {\n margin-left: 8.33333333%;\n }\n .col-sm-offset-0 {\n margin-left: 0;\n }\n}\n@media (min-width: 992px) {\n .col-md-1, .col-md-2, .col-md-3, .col-md-4, .col-md-5, .col-md-6, .col-md-7, .col-md-8, .col-md-9, .col-md-10, .col-md-11, .col-md-12 {\n float: left;\n }\n .col-md-12 {\n width: 100%;\n }\n .col-md-11 {\n width: 91.66666667%;\n }\n .col-md-10 {\n width: 83.33333333%;\n }\n .col-md-9 {\n width: 75%;\n }\n .col-md-8 {\n width: 66.66666667%;\n }\n .col-md-7 {\n width: 58.33333333%;\n }\n .col-md-6 {\n width: 50%;\n }\n .col-md-5 {\n width: 41.66666667%;\n }\n .col-md-4 {\n width: 33.33333333%;\n }\n .col-md-3 {\n width: 25%;\n }\n .col-md-2 {\n width: 16.66666667%;\n }\n .col-md-1 {\n width: 8.33333333%;\n }\n .col-md-pull-12 {\n right: 100%;\n }\n .col-md-pull-11 {\n right: 91.66666667%;\n }\n .col-md-pull-10 {\n right: 83.33333333%;\n }\n .col-md-pull-9 {\n right: 75%;\n }\n .col-md-pull-8 {\n right: 66.66666667%;\n }\n .col-md-pull-7 {\n right: 58.33333333%;\n }\n .col-md-pull-6 {\n right: 50%;\n }\n .col-md-pull-5 {\n right: 41.66666667%;\n }\n .col-md-pull-4 {\n right: 33.33333333%;\n }\n .col-md-pull-3 {\n right: 25%;\n }\n .col-md-pull-2 {\n right: 16.66666667%;\n }\n .col-md-pull-1 {\n right: 8.33333333%;\n }\n .col-md-pull-0 {\n right: auto;\n }\n .col-md-push-12 {\n left: 100%;\n }\n .col-md-push-11 {\n left: 91.66666667%;\n }\n .col-md-push-10 {\n left: 83.33333333%;\n }\n .col-md-push-9 {\n left: 75%;\n }\n .col-md-push-8 {\n left: 66.66666667%;\n }\n .col-md-push-7 {\n left: 58.33333333%;\n }\n .col-md-push-6 {\n left: 50%;\n }\n .col-md-push-5 {\n left: 41.66666667%;\n }\n .col-md-push-4 {\n left: 33.33333333%;\n }\n .col-md-push-3 {\n left: 25%;\n }\n .col-md-push-2 {\n left: 16.66666667%;\n }\n .col-md-push-1 {\n left: 8.33333333%;\n }\n .col-md-push-0 {\n left: auto;\n }\n .col-md-offset-12 {\n margin-left: 100%;\n }\n .col-md-offset-11 {\n margin-left: 91.66666667%;\n }\n .col-md-offset-10 {\n margin-left: 83.33333333%;\n }\n .col-md-offset-9 {\n margin-left: 75%;\n }\n .col-md-offset-8 {\n margin-left: 66.66666667%;\n }\n .col-md-offset-7 {\n margin-left: 58.33333333%;\n }\n .col-md-offset-6 {\n margin-left: 50%;\n }\n .col-md-offset-5 {\n margin-left: 41.66666667%;\n }\n .col-md-offset-4 {\n margin-left: 33.33333333%;\n }\n .col-md-offset-3 {\n margin-left: 25%;\n }\n .col-md-offset-2 {\n margin-left: 16.66666667%;\n }\n .col-md-offset-1 {\n margin-left: 8.33333333%;\n }\n .col-md-offset-0 {\n margin-left: 0;\n }\n}\n@media (min-width: 1200px) {\n .col-lg-1, .col-lg-2, .col-lg-3, .col-lg-4, .col-lg-5, .col-lg-6, .col-lg-7, .col-lg-8, .col-lg-9, .col-lg-10, .col-lg-11, .col-lg-12 {\n float: left;\n }\n .col-lg-12 {\n width: 100%;\n }\n .col-lg-11 {\n width: 91.66666667%;\n }\n .col-lg-10 {\n width: 83.33333333%;\n }\n .col-lg-9 {\n width: 75%;\n }\n .col-lg-8 {\n width: 66.66666667%;\n }\n .col-lg-7 {\n width: 58.33333333%;\n }\n .col-lg-6 {\n width: 50%;\n }\n .col-lg-5 {\n width: 41.66666667%;\n }\n .col-lg-4 {\n width: 33.33333333%;\n }\n .col-lg-3 {\n width: 25%;\n }\n .col-lg-2 {\n width: 16.66666667%;\n }\n .col-lg-1 {\n width: 8.33333333%;\n }\n .col-lg-pull-12 {\n right: 100%;\n }\n .col-lg-pull-11 {\n right: 91.66666667%;\n }\n .col-lg-pull-10 {\n right: 83.33333333%;\n }\n .col-lg-pull-9 {\n right: 75%;\n }\n .col-lg-pull-8 {\n right: 66.66666667%;\n }\n .col-lg-pull-7 {\n right: 58.33333333%;\n }\n .col-lg-pull-6 {\n right: 50%;\n }\n .col-lg-pull-5 {\n right: 41.66666667%;\n }\n .col-lg-pull-4 {\n right: 33.33333333%;\n }\n .col-lg-pull-3 {\n right: 25%;\n }\n .col-lg-pull-2 {\n right: 16.66666667%;\n }\n .col-lg-pull-1 {\n right: 8.33333333%;\n }\n .col-lg-pull-0 {\n right: auto;\n }\n .col-lg-push-12 {\n left: 100%;\n }\n .col-lg-push-11 {\n left: 91.66666667%;\n }\n .col-lg-push-10 {\n left: 83.33333333%;\n }\n .col-lg-push-9 {\n left: 75%;\n }\n .col-lg-push-8 {\n left: 66.66666667%;\n }\n .col-lg-push-7 {\n left: 58.33333333%;\n }\n .col-lg-push-6 {\n left: 50%;\n }\n .col-lg-push-5 {\n left: 41.66666667%;\n }\n .col-lg-push-4 {\n left: 33.33333333%;\n }\n .col-lg-push-3 {\n left: 25%;\n }\n .col-lg-push-2 {\n left: 16.66666667%;\n }\n .col-lg-push-1 {\n left: 8.33333333%;\n }\n .col-lg-push-0 {\n left: auto;\n }\n .col-lg-offset-12 {\n margin-left: 100%;\n }\n .col-lg-offset-11 {\n margin-left: 91.66666667%;\n }\n .col-lg-offset-10 {\n margin-left: 83.33333333%;\n }\n .col-lg-offset-9 {\n margin-left: 75%;\n }\n .col-lg-offset-8 {\n margin-left: 66.66666667%;\n }\n .col-lg-offset-7 {\n margin-left: 58.33333333%;\n }\n .col-lg-offset-6 {\n margin-left: 50%;\n }\n .col-lg-offset-5 {\n margin-left: 41.66666667%;\n }\n .col-lg-offset-4 {\n margin-left: 33.33333333%;\n }\n .col-lg-offset-3 {\n margin-left: 25%;\n }\n .col-lg-offset-2 {\n margin-left: 16.66666667%;\n }\n .col-lg-offset-1 {\n margin-left: 8.33333333%;\n }\n .col-lg-offset-0 {\n margin-left: 0;\n }\n}\ntable {\n background-color: transparent;\n}\ncaption {\n padding-top: 8px;\n padding-bottom: 8px;\n color: #777;\n text-align: left;\n}\nth {\n text-align: left;\n}\n.table {\n width: 100%;\n max-width: 100%;\n margin-bottom: 20px;\n}\n.table > thead > tr > th,\n.table > tbody > tr > th,\n.table > tfoot > tr > th,\n.table > thead > tr > td,\n.table > tbody > tr > td,\n.table > tfoot > tr > td {\n padding: 8px;\n line-height: 1.42857143;\n vertical-align: top;\n border-top: 1px solid #ddd;\n}\n.table > thead > tr > th {\n vertical-align: bottom;\n border-bottom: 2px solid #ddd;\n}\n.table > caption + thead > tr:first-child > th,\n.table > colgroup + thead > tr:first-child > th,\n.table > thead:first-child > tr:first-child > th,\n.table > caption + thead > tr:first-child > td,\n.table > colgroup + thead > tr:first-child > td,\n.table > thead:first-child > tr:first-child > td {\n border-top: 0;\n}\n.table > tbody + tbody {\n border-top: 2px solid #ddd;\n}\n.table .table {\n background-color: #fff;\n}\n.table-condensed > thead > tr > th,\n.table-condensed > tbody > tr > th,\n.table-condensed > tfoot > tr > th,\n.table-condensed > thead > tr > td,\n.table-condensed > tbody > tr > td,\n.table-condensed > tfoot > tr > td {\n padding: 5px;\n}\n.table-bordered {\n border: 1px solid #ddd;\n}\n.table-bordered > thead > tr > th,\n.table-bordered > tbody > tr > th,\n.table-bordered > tfoot > tr > th,\n.table-bordered > thead > tr > td,\n.table-bordered > tbody > tr > td,\n.table-bordered > tfoot > tr > td {\n border: 1px solid #ddd;\n}\n.table-bordered > thead > tr > th,\n.table-bordered > thead > tr > td {\n border-bottom-width: 2px;\n}\n.table-striped > tbody > tr:nth-of-type(odd) {\n background-color: #f9f9f9;\n}\n.table-hover > tbody > tr:hover {\n background-color: #f5f5f5;\n}\ntable col[class*=\"col-\"] {\n position: static;\n display: table-column;\n float: none;\n}\ntable td[class*=\"col-\"],\ntable th[class*=\"col-\"] {\n position: static;\n display: table-cell;\n float: none;\n}\n.table > thead > tr > td.active,\n.table > tbody > tr > td.active,\n.table > tfoot > tr > td.active,\n.table > thead > tr > th.active,\n.table > tbody > tr > th.active,\n.table > tfoot > tr > th.active,\n.table > thead > tr.active > td,\n.table > tbody > tr.active > td,\n.table > tfoot > tr.active > td,\n.table > thead > tr.active > th,\n.table > tbody > tr.active > th,\n.table > tfoot > tr.active > th {\n background-color: #f5f5f5;\n}\n.table-hover > tbody > tr > td.active:hover,\n.table-hover > tbody > tr > th.active:hover,\n.table-hover > tbody > tr.active:hover > td,\n.table-hover > tbody > tr:hover > .active,\n.table-hover > tbody > tr.active:hover > th {\n background-color: #e8e8e8;\n}\n.table > thead > tr > td.success,\n.table > tbody > tr > td.success,\n.table > tfoot > tr > td.success,\n.table > thead > tr > th.success,\n.table > tbody > tr > th.success,\n.table > tfoot > tr > th.success,\n.table > thead > tr.success > td,\n.table > tbody > tr.success > td,\n.table > tfoot > tr.success > td,\n.table > thead > tr.success > th,\n.table > tbody > tr.success > th,\n.table > tfoot > tr.success > th {\n background-color: #dff0d8;\n}\n.table-hover > tbody > tr > td.success:hover,\n.table-hover > tbody > tr > th.success:hover,\n.table-hover > tbody > tr.success:hover > td,\n.table-hover > tbody > tr:hover > .success,\n.table-hover > tbody > tr.success:hover > th {\n background-color: #d0e9c6;\n}\n.table > thead > tr > td.info,\n.table > tbody > tr > td.info,\n.table > tfoot > tr > td.info,\n.table > thead > tr > th.info,\n.table > tbody > tr > th.info,\n.table > tfoot > tr > th.info,\n.table > thead > tr.info > td,\n.table > tbody > tr.info > td,\n.table > tfoot > tr.info > td,\n.table > thead > tr.info > th,\n.table > tbody > tr.info > th,\n.table > tfoot > tr.info > th {\n background-color: #d9edf7;\n}\n.table-hover > tbody > tr > td.info:hover,\n.table-hover > tbody > tr > th.info:hover,\n.table-hover > tbody > tr.info:hover > td,\n.table-hover > tbody > tr:hover > .info,\n.table-hover > tbody > tr.info:hover > th {\n background-color: #c4e3f3;\n}\n.table > thead > tr > td.warning,\n.table > tbody > tr > td.warning,\n.table > tfoot > tr > td.warning,\n.table > thead > tr > th.warning,\n.table > tbody > tr > th.warning,\n.table > tfoot > tr > th.warning,\n.table > thead > tr.warning > td,\n.table > tbody > tr.warning > td,\n.table > tfoot > tr.warning > td,\n.table > thead > tr.warning > th,\n.table > tbody > tr.warning > th,\n.table > tfoot > tr.warning > th {\n background-color: #fcf8e3;\n}\n.table-hover > tbody > tr > td.warning:hover,\n.table-hover > tbody > tr > th.warning:hover,\n.table-hover > tbody > tr.warning:hover > td,\n.table-hover > tbody > tr:hover > .warning,\n.table-hover > tbody > tr.warning:hover > th {\n background-color: #faf2cc;\n}\n.table > thead > tr > td.danger,\n.table > tbody > tr > td.danger,\n.table > tfoot > tr > td.danger,\n.table > thead > tr > th.danger,\n.table > tbody > tr > th.danger,\n.table > tfoot > tr > th.danger,\n.table > thead > tr.danger > td,\n.table > tbody > tr.danger > td,\n.table > tfoot > tr.danger > td,\n.table > thead > tr.danger > th,\n.table > tbody > tr.danger > th,\n.table > tfoot > tr.danger > th {\n background-color: #f2dede;\n}\n.table-hover > tbody > tr > td.danger:hover,\n.table-hover > tbody > tr > th.danger:hover,\n.table-hover > tbody > tr.danger:hover > td,\n.table-hover > tbody > tr:hover > .danger,\n.table-hover > tbody > tr.danger:hover > th {\n background-color: #ebcccc;\n}\n.table-responsive {\n min-height: .01%;\n overflow-x: auto;\n}\n@media screen and (max-width: 767px) {\n .table-responsive {\n width: 100%;\n margin-bottom: 15px;\n overflow-y: hidden;\n -ms-overflow-style: -ms-autohiding-scrollbar;\n border: 1px solid #ddd;\n }\n .table-responsive > .table {\n margin-bottom: 0;\n }\n .table-responsive > .table > thead > tr > th,\n .table-responsive > .table > tbody > tr > th,\n .table-responsive > .table > tfoot > tr > th,\n .table-responsive > .table > thead > tr > td,\n .table-responsive > .table > tbody > tr > td,\n .table-responsive > .table > tfoot > tr > td {\n white-space: nowrap;\n }\n .table-responsive > .table-bordered {\n border: 0;\n }\n .table-responsive > .table-bordered > thead > tr > th:first-child,\n .table-responsive > .table-bordered > tbody > tr > th:first-child,\n .table-responsive > .table-bordered > tfoot > tr > th:first-child,\n .table-responsive > .table-bordered > thead > tr > td:first-child,\n .table-responsive > .table-bordered > tbody > tr > td:first-child,\n .table-responsive > .table-bordered > tfoot > tr > td:first-child {\n border-left: 0;\n }\n .table-responsive > .table-bordered > thead > tr > th:last-child,\n .table-responsive > .table-bordered > tbody > tr > th:last-child,\n .table-responsive > .table-bordered > tfoot > tr > th:last-child,\n .table-responsive > .table-bordered > thead > tr > td:last-child,\n .table-responsive > .table-bordered > tbody > tr > td:last-child,\n .table-responsive > .table-bordered > tfoot > tr > td:last-child {\n border-right: 0;\n }\n .table-responsive > .table-bordered > tbody > tr:last-child > th,\n .table-responsive > .table-bordered > tfoot > tr:last-child > th,\n .table-responsive > .table-bordered > tbody > tr:last-child > td,\n .table-responsive > .table-bordered > tfoot > tr:last-child > td {\n border-bottom: 0;\n }\n}\nfieldset {\n min-width: 0;\n padding: 0;\n margin: 0;\n border: 0;\n}\nlegend {\n display: block;\n width: 100%;\n padding: 0;\n margin-bottom: 20px;\n font-size: 21px;\n line-height: inherit;\n color: #333;\n border: 0;\n border-bottom: 1px solid #e5e5e5;\n}\nlabel {\n display: inline-block;\n max-width: 100%;\n margin-bottom: 5px;\n font-weight: bold;\n}\ninput[type=\"search\"] {\n -webkit-box-sizing: border-box;\n -moz-box-sizing: border-box;\n box-sizing: border-box;\n}\ninput[type=\"radio\"],\ninput[type=\"checkbox\"] {\n margin: 4px 0 0;\n margin-top: 1px \\9;\n line-height: normal;\n}\ninput[type=\"file\"] {\n display: block;\n}\ninput[type=\"range\"] {\n display: block;\n width: 100%;\n}\nselect[multiple],\nselect[size] {\n height: auto;\n}\ninput[type=\"file\"]:focus,\ninput[type=\"radio\"]:focus,\ninput[type=\"checkbox\"]:focus {\n outline: 5px auto -webkit-focus-ring-color;\n outline-offset: -2px;\n}\noutput {\n display: block;\n padding-top: 7px;\n font-size: 14px;\n line-height: 1.42857143;\n color: #555;\n}\n.form-control {\n display: block;\n width: 100%;\n height: 34px;\n padding: 6px 12px;\n font-size: 14px;\n line-height: 1.42857143;\n color: #555;\n background-color: #fff;\n background-image: none;\n border: 1px solid #ccc;\n border-radius: 4px;\n -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075);\n box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075);\n -webkit-transition: border-color ease-in-out .15s, -webkit-box-shadow ease-in-out .15s;\n -o-transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s;\n transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s;\n}\n.form-control:focus {\n border-color: #66afe9;\n outline: 0;\n -webkit-box-shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(102, 175, 233, .6);\n box-shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(102, 175, 233, .6);\n}\n.form-control::-moz-placeholder {\n color: #999;\n opacity: 1;\n}\n.form-control:-ms-input-placeholder {\n color: #999;\n}\n.form-control::-webkit-input-placeholder {\n color: #999;\n}\n.form-control::-ms-expand {\n background-color: transparent;\n border: 0;\n}\n.form-control[disabled],\n.form-control[readonly],\nfieldset[disabled] .form-control {\n background-color: #eee;\n opacity: 1;\n}\n.form-control[disabled],\nfieldset[disabled] .form-control {\n cursor: not-allowed;\n}\ntextarea.form-control {\n height: auto;\n}\ninput[type=\"search\"] {\n -webkit-appearance: none;\n}\n@media screen and (-webkit-min-device-pixel-ratio: 0) {\n input[type=\"date\"].form-control,\n input[type=\"time\"].form-control,\n input[type=\"datetime-local\"].form-control,\n input[type=\"month\"].form-control {\n line-height: 34px;\n }\n input[type=\"date\"].input-sm,\n input[type=\"time\"].input-sm,\n input[type=\"datetime-local\"].input-sm,\n input[type=\"month\"].input-sm,\n .input-group-sm input[type=\"date\"],\n .input-group-sm input[type=\"time\"],\n .input-group-sm input[type=\"datetime-local\"],\n .input-group-sm input[type=\"month\"] {\n line-height: 30px;\n }\n input[type=\"date\"].input-lg,\n input[type=\"time\"].input-lg,\n input[type=\"datetime-local\"].input-lg,\n input[type=\"month\"].input-lg,\n .input-group-lg input[type=\"date\"],\n .input-group-lg input[type=\"time\"],\n .input-group-lg input[type=\"datetime-local\"],\n .input-group-lg input[type=\"month\"] {\n line-height: 46px;\n }\n}\n.form-group {\n margin-bottom: 15px;\n}\n.radio,\n.checkbox {\n position: relative;\n display: block;\n margin-top: 10px;\n margin-bottom: 10px;\n}\n.radio label,\n.checkbox label {\n min-height: 20px;\n padding-left: 20px;\n margin-bottom: 0;\n font-weight: normal;\n cursor: pointer;\n}\n.radio input[type=\"radio\"],\n.radio-inline input[type=\"radio\"],\n.checkbox input[type=\"checkbox\"],\n.checkbox-inline input[type=\"checkbox\"] {\n position: absolute;\n margin-top: 4px \\9;\n margin-left: -20px;\n}\n.radio + .radio,\n.checkbox + .checkbox {\n margin-top: -5px;\n}\n.radio-inline,\n.checkbox-inline {\n position: relative;\n display: inline-block;\n padding-left: 20px;\n margin-bottom: 0;\n font-weight: normal;\n vertical-align: middle;\n cursor: pointer;\n}\n.radio-inline + .radio-inline,\n.checkbox-inline + .checkbox-inline {\n margin-top: 0;\n margin-left: 10px;\n}\ninput[type=\"radio\"][disabled],\ninput[type=\"checkbox\"][disabled],\ninput[type=\"radio\"].disabled,\ninput[type=\"checkbox\"].disabled,\nfieldset[disabled] input[type=\"radio\"],\nfieldset[disabled] input[type=\"checkbox\"] {\n cursor: not-allowed;\n}\n.radio-inline.disabled,\n.checkbox-inline.disabled,\nfieldset[disabled] .radio-inline,\nfieldset[disabled] .checkbox-inline {\n cursor: not-allowed;\n}\n.radio.disabled label,\n.checkbox.disabled label,\nfieldset[disabled] .radio label,\nfieldset[disabled] .checkbox label {\n cursor: not-allowed;\n}\n.form-control-static {\n min-height: 34px;\n padding-top: 7px;\n padding-bottom: 7px;\n margin-bottom: 0;\n}\n.form-control-static.input-lg,\n.form-control-static.input-sm {\n padding-right: 0;\n padding-left: 0;\n}\n.input-sm {\n height: 30px;\n padding: 5px 10px;\n font-size: 12px;\n line-height: 1.5;\n border-radius: 3px;\n}\nselect.input-sm {\n height: 30px;\n line-height: 30px;\n}\ntextarea.input-sm,\nselect[multiple].input-sm {\n height: auto;\n}\n.form-group-sm .form-control {\n height: 30px;\n padding: 5px 10px;\n font-size: 12px;\n line-height: 1.5;\n border-radius: 3px;\n}\n.form-group-sm select.form-control {\n height: 30px;\n line-height: 30px;\n}\n.form-group-sm textarea.form-control,\n.form-group-sm select[multiple].form-control {\n height: auto;\n}\n.form-group-sm .form-control-static {\n height: 30px;\n min-height: 32px;\n padding: 6px 10px;\n font-size: 12px;\n line-height: 1.5;\n}\n.input-lg {\n height: 46px;\n padding: 10px 16px;\n font-size: 18px;\n line-height: 1.3333333;\n border-radius: 6px;\n}\nselect.input-lg {\n height: 46px;\n line-height: 46px;\n}\ntextarea.input-lg,\nselect[multiple].input-lg {\n height: auto;\n}\n.form-group-lg .form-control {\n height: 46px;\n padding: 10px 16px;\n font-size: 18px;\n line-height: 1.3333333;\n border-radius: 6px;\n}\n.form-group-lg select.form-control {\n height: 46px;\n line-height: 46px;\n}\n.form-group-lg textarea.form-control,\n.form-group-lg select[multiple].form-control {\n height: auto;\n}\n.form-group-lg .form-control-static {\n height: 46px;\n min-height: 38px;\n padding: 11px 16px;\n font-size: 18px;\n line-height: 1.3333333;\n}\n.has-feedback {\n position: relative;\n}\n.has-feedback .form-control {\n padding-right: 42.5px;\n}\n.form-control-feedback {\n position: absolute;\n top: 0;\n right: 0;\n z-index: 2;\n display: block;\n width: 34px;\n height: 34px;\n line-height: 34px;\n text-align: center;\n pointer-events: none;\n}\n.input-lg + .form-control-feedback,\n.input-group-lg + .form-control-feedback,\n.form-group-lg .form-control + .form-control-feedback {\n width: 46px;\n height: 46px;\n line-height: 46px;\n}\n.input-sm + .form-control-feedback,\n.input-group-sm + .form-control-feedback,\n.form-group-sm .form-control + .form-control-feedback {\n width: 30px;\n height: 30px;\n line-height: 30px;\n}\n.has-success .help-block,\n.has-success .control-label,\n.has-success .radio,\n.has-success .checkbox,\n.has-success .radio-inline,\n.has-success .checkbox-inline,\n.has-success.radio label,\n.has-success.checkbox label,\n.has-success.radio-inline label,\n.has-success.checkbox-inline label {\n color: #3c763d;\n}\n.has-success .form-control {\n border-color: #3c763d;\n -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075);\n box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075);\n}\n.has-success .form-control:focus {\n border-color: #2b542c;\n -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075), 0 0 6px #67b168;\n box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075), 0 0 6px #67b168;\n}\n.has-success .input-group-addon {\n color: #3c763d;\n background-color: #dff0d8;\n border-color: #3c763d;\n}\n.has-success .form-control-feedback {\n color: #3c763d;\n}\n.has-warning .help-block,\n.has-warning .control-label,\n.has-warning .radio,\n.has-warning .checkbox,\n.has-warning .radio-inline,\n.has-warning .checkbox-inline,\n.has-warning.radio label,\n.has-warning.checkbox label,\n.has-warning.radio-inline label,\n.has-warning.checkbox-inline label {\n color: #8a6d3b;\n}\n.has-warning .form-control {\n border-color: #8a6d3b;\n -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075);\n box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075);\n}\n.has-warning .form-control:focus {\n border-color: #66512c;\n -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075), 0 0 6px #c0a16b;\n box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075), 0 0 6px #c0a16b;\n}\n.has-warning .input-group-addon {\n color: #8a6d3b;\n background-color: #fcf8e3;\n border-color: #8a6d3b;\n}\n.has-warning .form-control-feedback {\n color: #8a6d3b;\n}\n.has-error .help-block,\n.has-error .control-label,\n.has-error .radio,\n.has-error .checkbox,\n.has-error .radio-inline,\n.has-error .checkbox-inline,\n.has-error.radio label,\n.has-error.checkbox label,\n.has-error.radio-inline label,\n.has-error.checkbox-inline label {\n color: #a94442;\n}\n.has-error .form-control {\n border-color: #a94442;\n -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075);\n box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075);\n}\n.has-error .form-control:focus {\n border-color: #843534;\n -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075), 0 0 6px #ce8483;\n box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075), 0 0 6px #ce8483;\n}\n.has-error .input-group-addon {\n color: #a94442;\n background-color: #f2dede;\n border-color: #a94442;\n}\n.has-error .form-control-feedback {\n color: #a94442;\n}\n.has-feedback label ~ .form-control-feedback {\n top: 25px;\n}\n.has-feedback label.sr-only ~ .form-control-feedback {\n top: 0;\n}\n.help-block {\n display: block;\n margin-top: 5px;\n margin-bottom: 10px;\n color: #737373;\n}\n@media (min-width: 768px) {\n .form-inline .form-group {\n display: inline-block;\n margin-bottom: 0;\n vertical-align: middle;\n }\n .form-inline .form-control {\n display: inline-block;\n width: auto;\n vertical-align: middle;\n }\n .form-inline .form-control-static {\n display: inline-block;\n }\n .form-inline .input-group {\n display: inline-table;\n vertical-align: middle;\n }\n .form-inline .input-group .input-group-addon,\n .form-inline .input-group .input-group-btn,\n .form-inline .input-group .form-control {\n width: auto;\n }\n .form-inline .input-group > .form-control {\n width: 100%;\n }\n .form-inline .control-label {\n margin-bottom: 0;\n vertical-align: middle;\n }\n .form-inline .radio,\n .form-inline .checkbox {\n display: inline-block;\n margin-top: 0;\n margin-bottom: 0;\n vertical-align: middle;\n }\n .form-inline .radio label,\n .form-inline .checkbox label {\n padding-left: 0;\n }\n .form-inline .radio input[type=\"radio\"],\n .form-inline .checkbox input[type=\"checkbox\"] {\n position: relative;\n margin-left: 0;\n }\n .form-inline .has-feedback .form-control-feedback {\n top: 0;\n }\n}\n.form-horizontal .radio,\n.form-horizontal .checkbox,\n.form-horizontal .radio-inline,\n.form-horizontal .checkbox-inline {\n padding-top: 7px;\n margin-top: 0;\n margin-bottom: 0;\n}\n.form-horizontal .radio,\n.form-horizontal .checkbox {\n min-height: 27px;\n}\n.form-horizontal .form-group {\n margin-right: -15px;\n margin-left: -15px;\n}\n@media (min-width: 768px) {\n .form-horizontal .control-label {\n padding-top: 7px;\n margin-bottom: 0;\n text-align: right;\n }\n}\n.form-horizontal .has-feedback .form-control-feedback {\n right: 15px;\n}\n@media (min-width: 768px) {\n .form-horizontal .form-group-lg .control-label {\n padding-top: 11px;\n font-size: 18px;\n }\n}\n@media (min-width: 768px) {\n .form-horizontal .form-group-sm .control-label {\n padding-top: 6px;\n font-size: 12px;\n }\n}\n.btn {\n display: inline-block;\n padding: 6px 12px;\n margin-bottom: 0;\n font-size: 14px;\n font-weight: normal;\n line-height: 1.42857143;\n text-align: center;\n white-space: nowrap;\n vertical-align: middle;\n -ms-touch-action: manipulation;\n touch-action: manipulation;\n cursor: pointer;\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n user-select: none;\n background-image: none;\n border: 1px solid transparent;\n border-radius: 4px;\n}\n.btn:focus,\n.btn:active:focus,\n.btn.active:focus,\n.btn.focus,\n.btn:active.focus,\n.btn.active.focus {\n outline: 5px auto -webkit-focus-ring-color;\n outline-offset: -2px;\n}\n.btn:hover,\n.btn:focus,\n.btn.focus {\n color: #333;\n text-decoration: none;\n}\n.btn:active,\n.btn.active {\n background-image: none;\n outline: 0;\n -webkit-box-shadow: inset 0 3px 5px rgba(0, 0, 0, .125);\n box-shadow: inset 0 3px 5px rgba(0, 0, 0, .125);\n}\n.btn.disabled,\n.btn[disabled],\nfieldset[disabled] .btn {\n cursor: not-allowed;\n filter: alpha(opacity=65);\n -webkit-box-shadow: none;\n box-shadow: none;\n opacity: .65;\n}\na.btn.disabled,\nfieldset[disabled] a.btn {\n pointer-events: none;\n}\n.btn-default {\n color: #333;\n background-color: #fff;\n border-color: #ccc;\n}\n.btn-default:focus,\n.btn-default.focus {\n color: #333;\n background-color: #e6e6e6;\n border-color: #8c8c8c;\n}\n.btn-default:hover {\n color: #333;\n background-color: #e6e6e6;\n border-color: #adadad;\n}\n.btn-default:active,\n.btn-default.active,\n.open > .dropdown-toggle.btn-default {\n color: #333;\n background-color: #e6e6e6;\n border-color: #adadad;\n}\n.btn-default:active:hover,\n.btn-default.active:hover,\n.open > .dropdown-toggle.btn-default:hover,\n.btn-default:active:focus,\n.btn-default.active:focus,\n.open > .dropdown-toggle.btn-default:focus,\n.btn-default:active.focus,\n.btn-default.active.focus,\n.open > .dropdown-toggle.btn-default.focus {\n color: #333;\n background-color: #d4d4d4;\n border-color: #8c8c8c;\n}\n.btn-default:active,\n.btn-default.active,\n.open > .dropdown-toggle.btn-default {\n background-image: none;\n}\n.btn-default.disabled:hover,\n.btn-default[disabled]:hover,\nfieldset[disabled] .btn-default:hover,\n.btn-default.disabled:focus,\n.btn-default[disabled]:focus,\nfieldset[disabled] .btn-default:focus,\n.btn-default.disabled.focus,\n.btn-default[disabled].focus,\nfieldset[disabled] .btn-default.focus {\n background-color: #fff;\n border-color: #ccc;\n}\n.btn-default .badge {\n color: #fff;\n background-color: #333;\n}\n.btn-primary {\n color: #fff;\n background-color: #337ab7;\n border-color: #2e6da4;\n}\n.btn-primary:focus,\n.btn-primary.focus {\n color: #fff;\n background-color: #286090;\n border-color: #122b40;\n}\n.btn-primary:hover {\n color: #fff;\n background-color: #286090;\n border-color: #204d74;\n}\n.btn-primary:active,\n.btn-primary.active,\n.open > .dropdown-toggle.btn-primary {\n color: #fff;\n background-color: #286090;\n border-color: #204d74;\n}\n.btn-primary:active:hover,\n.btn-primary.active:hover,\n.open > .dropdown-toggle.btn-primary:hover,\n.btn-primary:active:focus,\n.btn-primary.active:focus,\n.open > .dropdown-toggle.btn-primary:focus,\n.btn-primary:active.focus,\n.btn-primary.active.focus,\n.open > .dropdown-toggle.btn-primary.focus {\n color: #fff;\n background-color: #204d74;\n border-color: #122b40;\n}\n.btn-primary:active,\n.btn-primary.active,\n.open > .dropdown-toggle.btn-primary {\n background-image: none;\n}\n.btn-primary.disabled:hover,\n.btn-primary[disabled]:hover,\nfieldset[disabled] .btn-primary:hover,\n.btn-primary.disabled:focus,\n.btn-primary[disabled]:focus,\nfieldset[disabled] .btn-primary:focus,\n.btn-primary.disabled.focus,\n.btn-primary[disabled].focus,\nfieldset[disabled] .btn-primary.focus {\n background-color: #337ab7;\n border-color: #2e6da4;\n}\n.btn-primary .badge {\n color: #337ab7;\n background-color: #fff;\n}\n.btn-success {\n color: #fff;\n background-color: #5cb85c;\n border-color: #4cae4c;\n}\n.btn-success:focus,\n.btn-success.focus {\n color: #fff;\n background-color: #449d44;\n border-color: #255625;\n}\n.btn-success:hover {\n color: #fff;\n background-color: #449d44;\n border-color: #398439;\n}\n.btn-success:active,\n.btn-success.active,\n.open > .dropdown-toggle.btn-success {\n color: #fff;\n background-color: #449d44;\n border-color: #398439;\n}\n.btn-success:active:hover,\n.btn-success.active:hover,\n.open > .dropdown-toggle.btn-success:hover,\n.btn-success:active:focus,\n.btn-success.active:focus,\n.open > .dropdown-toggle.btn-success:focus,\n.btn-success:active.focus,\n.btn-success.active.focus,\n.open > .dropdown-toggle.btn-success.focus {\n color: #fff;\n background-color: #398439;\n border-color: #255625;\n}\n.btn-success:active,\n.btn-success.active,\n.open > .dropdown-toggle.btn-success {\n background-image: none;\n}\n.btn-success.disabled:hover,\n.btn-success[disabled]:hover,\nfieldset[disabled] .btn-success:hover,\n.btn-success.disabled:focus,\n.btn-success[disabled]:focus,\nfieldset[disabled] .btn-success:focus,\n.btn-success.disabled.focus,\n.btn-success[disabled].focus,\nfieldset[disabled] .btn-success.focus {\n background-color: #5cb85c;\n border-color: #4cae4c;\n}\n.btn-success .badge {\n color: #5cb85c;\n background-color: #fff;\n}\n.btn-info {\n color: #fff;\n background-color: #5bc0de;\n border-color: #46b8da;\n}\n.btn-info:focus,\n.btn-info.focus {\n color: #fff;\n background-color: #31b0d5;\n border-color: #1b6d85;\n}\n.btn-info:hover {\n color: #fff;\n background-color: #31b0d5;\n border-color: #269abc;\n}\n.btn-info:active,\n.btn-info.active,\n.open > .dropdown-toggle.btn-info {\n color: #fff;\n background-color: #31b0d5;\n border-color: #269abc;\n}\n.btn-info:active:hover,\n.btn-info.active:hover,\n.open > .dropdown-toggle.btn-info:hover,\n.btn-info:active:focus,\n.btn-info.active:focus,\n.open > .dropdown-toggle.btn-info:focus,\n.btn-info:active.focus,\n.btn-info.active.focus,\n.open > .dropdown-toggle.btn-info.focus {\n color: #fff;\n background-color: #269abc;\n border-color: #1b6d85;\n}\n.btn-info:active,\n.btn-info.active,\n.open > .dropdown-toggle.btn-info {\n background-image: none;\n}\n.btn-info.disabled:hover,\n.btn-info[disabled]:hover,\nfieldset[disabled] .btn-info:hover,\n.btn-info.disabled:focus,\n.btn-info[disabled]:focus,\nfieldset[disabled] .btn-info:focus,\n.btn-info.disabled.focus,\n.btn-info[disabled].focus,\nfieldset[disabled] .btn-info.focus {\n background-color: #5bc0de;\n border-color: #46b8da;\n}\n.btn-info .badge {\n color: #5bc0de;\n background-color: #fff;\n}\n.btn-warning {\n color: #fff;\n background-color: #f0ad4e;\n border-color: #eea236;\n}\n.btn-warning:focus,\n.btn-warning.focus {\n color: #fff;\n background-color: #ec971f;\n border-color: #985f0d;\n}\n.btn-warning:hover {\n color: #fff;\n background-color: #ec971f;\n border-color: #d58512;\n}\n.btn-warning:active,\n.btn-warning.active,\n.open > .dropdown-toggle.btn-warning {\n color: #fff;\n background-color: #ec971f;\n border-color: #d58512;\n}\n.btn-warning:active:hover,\n.btn-warning.active:hover,\n.open > .dropdown-toggle.btn-warning:hover,\n.btn-warning:active:focus,\n.btn-warning.active:focus,\n.open > .dropdown-toggle.btn-warning:focus,\n.btn-warning:active.focus,\n.btn-warning.active.focus,\n.open > .dropdown-toggle.btn-warning.focus {\n color: #fff;\n background-color: #d58512;\n border-color: #985f0d;\n}\n.btn-warning:active,\n.btn-warning.active,\n.open > .dropdown-toggle.btn-warning {\n background-image: none;\n}\n.btn-warning.disabled:hover,\n.btn-warning[disabled]:hover,\nfieldset[disabled] .btn-warning:hover,\n.btn-warning.disabled:focus,\n.btn-warning[disabled]:focus,\nfieldset[disabled] .btn-warning:focus,\n.btn-warning.disabled.focus,\n.btn-warning[disabled].focus,\nfieldset[disabled] .btn-warning.focus {\n background-color: #f0ad4e;\n border-color: #eea236;\n}\n.btn-warning .badge {\n color: #f0ad4e;\n background-color: #fff;\n}\n.btn-danger {\n color: #fff;\n background-color: #d9534f;\n border-color: #d43f3a;\n}\n.btn-danger:focus,\n.btn-danger.focus {\n color: #fff;\n background-color: #c9302c;\n border-color: #761c19;\n}\n.btn-danger:hover {\n color: #fff;\n background-color: #c9302c;\n border-color: #ac2925;\n}\n.btn-danger:active,\n.btn-danger.active,\n.open > .dropdown-toggle.btn-danger {\n color: #fff;\n background-color: #c9302c;\n border-color: #ac2925;\n}\n.btn-danger:active:hover,\n.btn-danger.active:hover,\n.open > .dropdown-toggle.btn-danger:hover,\n.btn-danger:active:focus,\n.btn-danger.active:focus,\n.open > .dropdown-toggle.btn-danger:focus,\n.btn-danger:active.focus,\n.btn-danger.active.focus,\n.open > .dropdown-toggle.btn-danger.focus {\n color: #fff;\n background-color: #ac2925;\n border-color: #761c19;\n}\n.btn-danger:active,\n.btn-danger.active,\n.open > .dropdown-toggle.btn-danger {\n background-image: none;\n}\n.btn-danger.disabled:hover,\n.btn-danger[disabled]:hover,\nfieldset[disabled] .btn-danger:hover,\n.btn-danger.disabled:focus,\n.btn-danger[disabled]:focus,\nfieldset[disabled] .btn-danger:focus,\n.btn-danger.disabled.focus,\n.btn-danger[disabled].focus,\nfieldset[disabled] .btn-danger.focus {\n background-color: #d9534f;\n border-color: #d43f3a;\n}\n.btn-danger .badge {\n color: #d9534f;\n background-color: #fff;\n}\n.btn-link {\n font-weight: normal;\n color: #337ab7;\n border-radius: 0;\n}\n.btn-link,\n.btn-link:active,\n.btn-link.active,\n.btn-link[disabled],\nfieldset[disabled] .btn-link {\n background-color: transparent;\n -webkit-box-shadow: none;\n box-shadow: none;\n}\n.btn-link,\n.btn-link:hover,\n.btn-link:focus,\n.btn-link:active {\n border-color: transparent;\n}\n.btn-link:hover,\n.btn-link:focus {\n color: #23527c;\n text-decoration: underline;\n background-color: transparent;\n}\n.btn-link[disabled]:hover,\nfieldset[disabled] .btn-link:hover,\n.btn-link[disabled]:focus,\nfieldset[disabled] .btn-link:focus {\n color: #777;\n text-decoration: none;\n}\n.btn-lg,\n.btn-group-lg > .btn {\n padding: 10px 16px;\n font-size: 18px;\n line-height: 1.3333333;\n border-radius: 6px;\n}\n.btn-sm,\n.btn-group-sm > .btn {\n padding: 5px 10px;\n font-size: 12px;\n line-height: 1.5;\n border-radius: 3px;\n}\n.btn-xs,\n.btn-group-xs > .btn {\n padding: 1px 5px;\n font-size: 12px;\n line-height: 1.5;\n border-radius: 3px;\n}\n.btn-block {\n display: block;\n width: 100%;\n}\n.btn-block + .btn-block {\n margin-top: 5px;\n}\ninput[type=\"submit\"].btn-block,\ninput[type=\"reset\"].btn-block,\ninput[type=\"button\"].btn-block {\n width: 100%;\n}\n.fade {\n opacity: 0;\n -webkit-transition: opacity .15s linear;\n -o-transition: opacity .15s linear;\n transition: opacity .15s linear;\n}\n.fade.in {\n opacity: 1;\n}\n.collapse {\n display: none;\n}\n.collapse.in {\n display: block;\n}\ntr.collapse.in {\n display: table-row;\n}\ntbody.collapse.in {\n display: table-row-group;\n}\n.collapsing {\n position: relative;\n height: 0;\n overflow: hidden;\n -webkit-transition-timing-function: ease;\n -o-transition-timing-function: ease;\n transition-timing-function: ease;\n -webkit-transition-duration: .35s;\n -o-transition-duration: .35s;\n transition-duration: .35s;\n -webkit-transition-property: height, visibility;\n -o-transition-property: height, visibility;\n transition-property: height, visibility;\n}\n.caret {\n display: inline-block;\n width: 0;\n height: 0;\n margin-left: 2px;\n vertical-align: middle;\n border-top: 4px dashed;\n border-top: 4px solid \\9;\n border-right: 4px solid transparent;\n border-left: 4px solid transparent;\n}\n.dropup,\n.dropdown {\n position: relative;\n}\n.dropdown-toggle:focus {\n outline: 0;\n}\n.dropdown-menu {\n position: absolute;\n top: 100%;\n left: 0;\n z-index: 1000;\n display: none;\n float: left;\n min-width: 160px;\n padding: 5px 0;\n margin: 2px 0 0;\n font-size: 14px;\n text-align: left;\n list-style: none;\n background-color: #fff;\n -webkit-background-clip: padding-box;\n background-clip: padding-box;\n border: 1px solid #ccc;\n border: 1px solid rgba(0, 0, 0, .15);\n border-radius: 4px;\n -webkit-box-shadow: 0 6px 12px rgba(0, 0, 0, .175);\n box-shadow: 0 6px 12px rgba(0, 0, 0, .175);\n}\n.dropdown-menu.pull-right {\n right: 0;\n left: auto;\n}\n.dropdown-menu .divider {\n height: 1px;\n margin: 9px 0;\n overflow: hidden;\n background-color: #e5e5e5;\n}\n.dropdown-menu > li > a {\n display: block;\n padding: 3px 20px;\n clear: both;\n font-weight: normal;\n line-height: 1.42857143;\n color: #333;\n white-space: nowrap;\n}\n.dropdown-menu > li > a:hover,\n.dropdown-menu > li > a:focus {\n color: #262626;\n text-decoration: none;\n background-color: #f5f5f5;\n}\n.dropdown-menu > .active > a,\n.dropdown-menu > .active > a:hover,\n.dropdown-menu > .active > a:focus {\n color: #fff;\n text-decoration: none;\n background-color: #337ab7;\n outline: 0;\n}\n.dropdown-menu > .disabled > a,\n.dropdown-menu > .disabled > a:hover,\n.dropdown-menu > .disabled > a:focus {\n color: #777;\n}\n.dropdown-menu > .disabled > a:hover,\n.dropdown-menu > .disabled > a:focus {\n text-decoration: none;\n cursor: not-allowed;\n background-color: transparent;\n background-image: none;\n filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);\n}\n.open > .dropdown-menu {\n display: block;\n}\n.open > a {\n outline: 0;\n}\n.dropdown-menu-right {\n right: 0;\n left: auto;\n}\n.dropdown-menu-left {\n right: auto;\n left: 0;\n}\n.dropdown-header {\n display: block;\n padding: 3px 20px;\n font-size: 12px;\n line-height: 1.42857143;\n color: #777;\n white-space: nowrap;\n}\n.dropdown-backdrop {\n position: fixed;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n z-index: 990;\n}\n.pull-right > .dropdown-menu {\n right: 0;\n left: auto;\n}\n.dropup .caret,\n.navbar-fixed-bottom .dropdown .caret {\n content: \"\";\n border-top: 0;\n border-bottom: 4px dashed;\n border-bottom: 4px solid \\9;\n}\n.dropup .dropdown-menu,\n.navbar-fixed-bottom .dropdown .dropdown-menu {\n top: auto;\n bottom: 100%;\n margin-bottom: 2px;\n}\n@media (min-width: 768px) {\n .navbar-right .dropdown-menu {\n right: 0;\n left: auto;\n }\n .navbar-right .dropdown-menu-left {\n right: auto;\n left: 0;\n }\n}\n.btn-group,\n.btn-group-vertical {\n position: relative;\n display: inline-block;\n vertical-align: middle;\n}\n.btn-group > .btn,\n.btn-group-vertical > .btn {\n position: relative;\n float: left;\n}\n.btn-group > .btn:hover,\n.btn-group-vertical > .btn:hover,\n.btn-group > .btn:focus,\n.btn-group-vertical > .btn:focus,\n.btn-group > .btn:active,\n.btn-group-vertical > .btn:active,\n.btn-group > .btn.active,\n.btn-group-vertical > .btn.active {\n z-index: 2;\n}\n.btn-group .btn + .btn,\n.btn-group .btn + .btn-group,\n.btn-group .btn-group + .btn,\n.btn-group .btn-group + .btn-group {\n margin-left: -1px;\n}\n.btn-toolbar {\n margin-left: -5px;\n}\n.btn-toolbar .btn,\n.btn-toolbar .btn-group,\n.btn-toolbar .input-group {\n float: left;\n}\n.btn-toolbar > .btn,\n.btn-toolbar > .btn-group,\n.btn-toolbar > .input-group {\n margin-left: 5px;\n}\n.btn-group > .btn:not(:first-child):not(:last-child):not(.dropdown-toggle) {\n border-radius: 0;\n}\n.btn-group > .btn:first-child {\n margin-left: 0;\n}\n.btn-group > .btn:first-child:not(:last-child):not(.dropdown-toggle) {\n border-top-right-radius: 0;\n border-bottom-right-radius: 0;\n}\n.btn-group > .btn:last-child:not(:first-child),\n.btn-group > .dropdown-toggle:not(:first-child) {\n border-top-left-radius: 0;\n border-bottom-left-radius: 0;\n}\n.btn-group > .btn-group {\n float: left;\n}\n.btn-group > .btn-group:not(:first-child):not(:last-child) > .btn {\n border-radius: 0;\n}\n.btn-group > .btn-group:first-child:not(:last-child) > .btn:last-child,\n.btn-group > .btn-group:first-child:not(:last-child) > .dropdown-toggle {\n border-top-right-radius: 0;\n border-bottom-right-radius: 0;\n}\n.btn-group > .btn-group:last-child:not(:first-child) > .btn:first-child {\n border-top-left-radius: 0;\n border-bottom-left-radius: 0;\n}\n.btn-group .dropdown-toggle:active,\n.btn-group.open .dropdown-toggle {\n outline: 0;\n}\n.btn-group > .btn + .dropdown-toggle {\n padding-right: 8px;\n padding-left: 8px;\n}\n.btn-group > .btn-lg + .dropdown-toggle {\n padding-right: 12px;\n padding-left: 12px;\n}\n.btn-group.open .dropdown-toggle {\n -webkit-box-shadow: inset 0 3px 5px rgba(0, 0, 0, .125);\n box-shadow: inset 0 3px 5px rgba(0, 0, 0, .125);\n}\n.btn-group.open .dropdown-toggle.btn-link {\n -webkit-box-shadow: none;\n box-shadow: none;\n}\n.btn .caret {\n margin-left: 0;\n}\n.btn-lg .caret {\n border-width: 5px 5px 0;\n border-bottom-width: 0;\n}\n.dropup .btn-lg .caret {\n border-width: 0 5px 5px;\n}\n.btn-group-vertical > .btn,\n.btn-group-vertical > .btn-group,\n.btn-group-vertical > .btn-group > .btn {\n display: block;\n float: none;\n width: 100%;\n max-width: 100%;\n}\n.btn-group-vertical > .btn-group > .btn {\n float: none;\n}\n.btn-group-vertical > .btn + .btn,\n.btn-group-vertical > .btn + .btn-group,\n.btn-group-vertical > .btn-group + .btn,\n.btn-group-vertical > .btn-group + .btn-group {\n margin-top: -1px;\n margin-left: 0;\n}\n.btn-group-vertical > .btn:not(:first-child):not(:last-child) {\n border-radius: 0;\n}\n.btn-group-vertical > .btn:first-child:not(:last-child) {\n border-top-left-radius: 4px;\n border-top-right-radius: 4px;\n border-bottom-right-radius: 0;\n border-bottom-left-radius: 0;\n}\n.btn-group-vertical > .btn:last-child:not(:first-child) {\n border-top-left-radius: 0;\n border-top-right-radius: 0;\n border-bottom-right-radius: 4px;\n border-bottom-left-radius: 4px;\n}\n.btn-group-vertical > .btn-group:not(:first-child):not(:last-child) > .btn {\n border-radius: 0;\n}\n.btn-group-vertical > .btn-group:first-child:not(:last-child) > .btn:last-child,\n.btn-group-vertical > .btn-group:first-child:not(:last-child) > .dropdown-toggle {\n border-bottom-right-radius: 0;\n border-bottom-left-radius: 0;\n}\n.btn-group-vertical > .btn-group:last-child:not(:first-child) > .btn:first-child {\n border-top-left-radius: 0;\n border-top-right-radius: 0;\n}\n.btn-group-justified {\n display: table;\n width: 100%;\n table-layout: fixed;\n border-collapse: separate;\n}\n.btn-group-justified > .btn,\n.btn-group-justified > .btn-group {\n display: table-cell;\n float: none;\n width: 1%;\n}\n.btn-group-justified > .btn-group .btn {\n width: 100%;\n}\n.btn-group-justified > .btn-group .dropdown-menu {\n left: auto;\n}\n[data-toggle=\"buttons\"] > .btn input[type=\"radio\"],\n[data-toggle=\"buttons\"] > .btn-group > .btn input[type=\"radio\"],\n[data-toggle=\"buttons\"] > .btn input[type=\"checkbox\"],\n[data-toggle=\"buttons\"] > .btn-group > .btn input[type=\"checkbox\"] {\n position: absolute;\n clip: rect(0, 0, 0, 0);\n pointer-events: none;\n}\n.input-group {\n position: relative;\n display: table;\n border-collapse: separate;\n}\n.input-group[class*=\"col-\"] {\n float: none;\n padding-right: 0;\n padding-left: 0;\n}\n.input-group .form-control {\n position: relative;\n z-index: 2;\n float: left;\n width: 100%;\n margin-bottom: 0;\n}\n.input-group .form-control:focus {\n z-index: 3;\n}\n.input-group-lg > .form-control,\n.input-group-lg > .input-group-addon,\n.input-group-lg > .input-group-btn > .btn {\n height: 46px;\n padding: 10px 16px;\n font-size: 18px;\n line-height: 1.3333333;\n border-radius: 6px;\n}\nselect.input-group-lg > .form-control,\nselect.input-group-lg > .input-group-addon,\nselect.input-group-lg > .input-group-btn > .btn {\n height: 46px;\n line-height: 46px;\n}\ntextarea.input-group-lg > .form-control,\ntextarea.input-group-lg > .input-group-addon,\ntextarea.input-group-lg > .input-group-btn > .btn,\nselect[multiple].input-group-lg > .form-control,\nselect[multiple].input-group-lg > .input-group-addon,\nselect[multiple].input-group-lg > .input-group-btn > .btn {\n height: auto;\n}\n.input-group-sm > .form-control,\n.input-group-sm > .input-group-addon,\n.input-group-sm > .input-group-btn > .btn {\n height: 30px;\n padding: 5px 10px;\n font-size: 12px;\n line-height: 1.5;\n border-radius: 3px;\n}\nselect.input-group-sm > .form-control,\nselect.input-group-sm > .input-group-addon,\nselect.input-group-sm > .input-group-btn > .btn {\n height: 30px;\n line-height: 30px;\n}\ntextarea.input-group-sm > .form-control,\ntextarea.input-group-sm > .input-group-addon,\ntextarea.input-group-sm > .input-group-btn > .btn,\nselect[multiple].input-group-sm > .form-control,\nselect[multiple].input-group-sm > .input-group-addon,\nselect[multiple].input-group-sm > .input-group-btn > .btn {\n height: auto;\n}\n.input-group-addon,\n.input-group-btn,\n.input-group .form-control {\n display: table-cell;\n}\n.input-group-addon:not(:first-child):not(:last-child),\n.input-group-btn:not(:first-child):not(:last-child),\n.input-group .form-control:not(:first-child):not(:last-child) {\n border-radius: 0;\n}\n.input-group-addon,\n.input-group-btn {\n width: 1%;\n white-space: nowrap;\n vertical-align: middle;\n}\n.input-group-addon {\n padding: 6px 12px;\n font-size: 14px;\n font-weight: normal;\n line-height: 1;\n color: #555;\n text-align: center;\n background-color: #eee;\n border: 1px solid #ccc;\n border-radius: 4px;\n}\n.input-group-addon.input-sm {\n padding: 5px 10px;\n font-size: 12px;\n border-radius: 3px;\n}\n.input-group-addon.input-lg {\n padding: 10px 16px;\n font-size: 18px;\n border-radius: 6px;\n}\n.input-group-addon input[type=\"radio\"],\n.input-group-addon input[type=\"checkbox\"] {\n margin-top: 0;\n}\n.input-group .form-control:first-child,\n.input-group-addon:first-child,\n.input-group-btn:first-child > .btn,\n.input-group-btn:first-child > .btn-group > .btn,\n.input-group-btn:first-child > .dropdown-toggle,\n.input-group-btn:last-child > .btn:not(:last-child):not(.dropdown-toggle),\n.input-group-btn:last-child > .btn-group:not(:last-child) > .btn {\n border-top-right-radius: 0;\n border-bottom-right-radius: 0;\n}\n.input-group-addon:first-child {\n border-right: 0;\n}\n.input-group .form-control:last-child,\n.input-group-addon:last-child,\n.input-group-btn:last-child > .btn,\n.input-group-btn:last-child > .btn-group > .btn,\n.input-group-btn:last-child > .dropdown-toggle,\n.input-group-btn:first-child > .btn:not(:first-child),\n.input-group-btn:first-child > .btn-group:not(:first-child) > .btn {\n border-top-left-radius: 0;\n border-bottom-left-radius: 0;\n}\n.input-group-addon:last-child {\n border-left: 0;\n}\n.input-group-btn {\n position: relative;\n font-size: 0;\n white-space: nowrap;\n}\n.input-group-btn > .btn {\n position: relative;\n}\n.input-group-btn > .btn + .btn {\n margin-left: -1px;\n}\n.input-group-btn > .btn:hover,\n.input-group-btn > .btn:focus,\n.input-group-btn > .btn:active {\n z-index: 2;\n}\n.input-group-btn:first-child > .btn,\n.input-group-btn:first-child > .btn-group {\n margin-right: -1px;\n}\n.input-group-btn:last-child > .btn,\n.input-group-btn:last-child > .btn-group {\n z-index: 2;\n margin-left: -1px;\n}\n.nav {\n padding-left: 0;\n margin-bottom: 0;\n list-style: none;\n}\n.nav > li {\n position: relative;\n display: block;\n}\n.nav > li > a {\n position: relative;\n display: block;\n padding: 10px 15px;\n}\n.nav > li > a:hover,\n.nav > li > a:focus {\n text-decoration: none;\n background-color: #eee;\n}\n.nav > li.disabled > a {\n color: #777;\n}\n.nav > li.disabled > a:hover,\n.nav > li.disabled > a:focus {\n color: #777;\n text-decoration: none;\n cursor: not-allowed;\n background-color: transparent;\n}\n.nav .open > a,\n.nav .open > a:hover,\n.nav .open > a:focus {\n background-color: #eee;\n border-color: #337ab7;\n}\n.nav .nav-divider {\n height: 1px;\n margin: 9px 0;\n overflow: hidden;\n background-color: #e5e5e5;\n}\n.nav > li > a > img {\n max-width: none;\n}\n.nav-tabs {\n border-bottom: 1px solid #ddd;\n}\n.nav-tabs > li {\n float: left;\n margin-bottom: -1px;\n}\n.nav-tabs > li > a {\n margin-right: 2px;\n line-height: 1.42857143;\n border: 1px solid transparent;\n border-radius: 4px 4px 0 0;\n}\n.nav-tabs > li > a:hover {\n border-color: #eee #eee #ddd;\n}\n.nav-tabs > li.active > a,\n.nav-tabs > li.active > a:hover,\n.nav-tabs > li.active > a:focus {\n color: #555;\n cursor: default;\n background-color: #fff;\n border: 1px solid #ddd;\n border-bottom-color: transparent;\n}\n.nav-tabs.nav-justified {\n width: 100%;\n border-bottom: 0;\n}\n.nav-tabs.nav-justified > li {\n float: none;\n}\n.nav-tabs.nav-justified > li > a {\n margin-bottom: 5px;\n text-align: center;\n}\n.nav-tabs.nav-justified > .dropdown .dropdown-menu {\n top: auto;\n left: auto;\n}\n@media (min-width: 768px) {\n .nav-tabs.nav-justified > li {\n display: table-cell;\n width: 1%;\n }\n .nav-tabs.nav-justified > li > a {\n margin-bottom: 0;\n }\n}\n.nav-tabs.nav-justified > li > a {\n margin-right: 0;\n border-radius: 4px;\n}\n.nav-tabs.nav-justified > .active > a,\n.nav-tabs.nav-justified > .active > a:hover,\n.nav-tabs.nav-justified > .active > a:focus {\n border: 1px solid #ddd;\n}\n@media (min-width: 768px) {\n .nav-tabs.nav-justified > li > a {\n border-bottom: 1px solid #ddd;\n border-radius: 4px 4px 0 0;\n }\n .nav-tabs.nav-justified > .active > a,\n .nav-tabs.nav-justified > .active > a:hover,\n .nav-tabs.nav-justified > .active > a:focus {\n border-bottom-color: #fff;\n }\n}\n.nav-pills > li {\n float: left;\n}\n.nav-pills > li > a {\n border-radius: 4px;\n}\n.nav-pills > li + li {\n margin-left: 2px;\n}\n.nav-pills > li.active > a,\n.nav-pills > li.active > a:hover,\n.nav-pills > li.active > a:focus {\n color: #fff;\n background-color: #337ab7;\n}\n.nav-stacked > li {\n float: none;\n}\n.nav-stacked > li + li {\n margin-top: 2px;\n margin-left: 0;\n}\n.nav-justified {\n width: 100%;\n}\n.nav-justified > li {\n float: none;\n}\n.nav-justified > li > a {\n margin-bottom: 5px;\n text-align: center;\n}\n.nav-justified > .dropdown .dropdown-menu {\n top: auto;\n left: auto;\n}\n@media (min-width: 768px) {\n .nav-justified > li {\n display: table-cell;\n width: 1%;\n }\n .nav-justified > li > a {\n margin-bottom: 0;\n }\n}\n.nav-tabs-justified {\n border-bottom: 0;\n}\n.nav-tabs-justified > li > a {\n margin-right: 0;\n border-radius: 4px;\n}\n.nav-tabs-justified > .active > a,\n.nav-tabs-justified > .active > a:hover,\n.nav-tabs-justified > .active > a:focus {\n border: 1px solid #ddd;\n}\n@media (min-width: 768px) {\n .nav-tabs-justified > li > a {\n border-bottom: 1px solid #ddd;\n border-radius: 4px 4px 0 0;\n }\n .nav-tabs-justified > .active > a,\n .nav-tabs-justified > .active > a:hover,\n .nav-tabs-justified > .active > a:focus {\n border-bottom-color: #fff;\n }\n}\n.tab-content > .tab-pane {\n display: none;\n}\n.tab-content > .active {\n display: block;\n}\n.nav-tabs .dropdown-menu {\n margin-top: -1px;\n border-top-left-radius: 0;\n border-top-right-radius: 0;\n}\n.navbar {\n position: relative;\n min-height: 50px;\n margin-bottom: 20px;\n border: 1px solid transparent;\n}\n@media (min-width: 768px) {\n .navbar {\n border-radius: 4px;\n }\n}\n@media (min-width: 768px) {\n .navbar-header {\n float: left;\n }\n}\n.navbar-collapse {\n padding-right: 15px;\n padding-left: 15px;\n overflow-x: visible;\n -webkit-overflow-scrolling: touch;\n border-top: 1px solid transparent;\n -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, .1);\n box-shadow: inset 0 1px 0 rgba(255, 255, 255, .1);\n}\n.navbar-collapse.in {\n overflow-y: auto;\n}\n@media (min-width: 768px) {\n .navbar-collapse {\n width: auto;\n border-top: 0;\n -webkit-box-shadow: none;\n box-shadow: none;\n }\n .navbar-collapse.collapse {\n display: block !important;\n height: auto !important;\n padding-bottom: 0;\n overflow: visible !important;\n }\n .navbar-collapse.in {\n overflow-y: visible;\n }\n .navbar-fixed-top .navbar-collapse,\n .navbar-static-top .navbar-collapse,\n .navbar-fixed-bottom .navbar-collapse {\n padding-right: 0;\n padding-left: 0;\n }\n}\n.navbar-fixed-top .navbar-collapse,\n.navbar-fixed-bottom .navbar-collapse {\n max-height: 340px;\n}\n@media (max-device-width: 480px) and (orientation: landscape) {\n .navbar-fixed-top .navbar-collapse,\n .navbar-fixed-bottom .navbar-collapse {\n max-height: 200px;\n }\n}\n.container > .navbar-header,\n.container-fluid > .navbar-header,\n.container > .navbar-collapse,\n.container-fluid > .navbar-collapse {\n margin-right: -15px;\n margin-left: -15px;\n}\n@media (min-width: 768px) {\n .container > .navbar-header,\n .container-fluid > .navbar-header,\n .container > .navbar-collapse,\n .container-fluid > .navbar-collapse {\n margin-right: 0;\n margin-left: 0;\n }\n}\n.navbar-static-top {\n z-index: 1000;\n border-width: 0 0 1px;\n}\n@media (min-width: 768px) {\n .navbar-static-top {\n border-radius: 0;\n }\n}\n.navbar-fixed-top,\n.navbar-fixed-bottom {\n position: fixed;\n right: 0;\n left: 0;\n z-index: 1030;\n}\n@media (min-width: 768px) {\n .navbar-fixed-top,\n .navbar-fixed-bottom {\n border-radius: 0;\n }\n}\n.navbar-fixed-top {\n top: 0;\n border-width: 0 0 1px;\n}\n.navbar-fixed-bottom {\n bottom: 0;\n margin-bottom: 0;\n border-width: 1px 0 0;\n}\n.navbar-brand {\n float: left;\n height: 50px;\n padding: 15px 15px;\n font-size: 18px;\n line-height: 20px;\n}\n.navbar-brand:hover,\n.navbar-brand:focus {\n text-decoration: none;\n}\n.navbar-brand > img {\n display: block;\n}\n@media (min-width: 768px) {\n .navbar > .container .navbar-brand,\n .navbar > .container-fluid .navbar-brand {\n margin-left: -15px;\n }\n}\n.navbar-toggle {\n position: relative;\n float: right;\n padding: 9px 10px;\n margin-top: 8px;\n margin-right: 15px;\n margin-bottom: 8px;\n background-color: transparent;\n background-image: none;\n border: 1px solid transparent;\n border-radius: 4px;\n}\n.navbar-toggle:focus {\n outline: 0;\n}\n.navbar-toggle .icon-bar {\n display: block;\n width: 22px;\n height: 2px;\n border-radius: 1px;\n}\n.navbar-toggle .icon-bar + .icon-bar {\n margin-top: 4px;\n}\n@media (min-width: 768px) {\n .navbar-toggle {\n display: none;\n }\n}\n.navbar-nav {\n margin: 7.5px -15px;\n}\n.navbar-nav > li > a {\n padding-top: 10px;\n padding-bottom: 10px;\n line-height: 20px;\n}\n@media (max-width: 767px) {\n .navbar-nav .open .dropdown-menu {\n position: static;\n float: none;\n width: auto;\n margin-top: 0;\n background-color: transparent;\n border: 0;\n -webkit-box-shadow: none;\n box-shadow: none;\n }\n .navbar-nav .open .dropdown-menu > li > a,\n .navbar-nav .open .dropdown-menu .dropdown-header {\n padding: 5px 15px 5px 25px;\n }\n .navbar-nav .open .dropdown-menu > li > a {\n line-height: 20px;\n }\n .navbar-nav .open .dropdown-menu > li > a:hover,\n .navbar-nav .open .dropdown-menu > li > a:focus {\n background-image: none;\n }\n}\n@media (min-width: 768px) {\n .navbar-nav {\n float: left;\n margin: 0;\n }\n .navbar-nav > li {\n float: left;\n }\n .navbar-nav > li > a {\n padding-top: 15px;\n padding-bottom: 15px;\n }\n}\n.navbar-form {\n padding: 10px 15px;\n margin-top: 8px;\n margin-right: -15px;\n margin-bottom: 8px;\n margin-left: -15px;\n border-top: 1px solid transparent;\n border-bottom: 1px solid transparent;\n -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, .1), 0 1px 0 rgba(255, 255, 255, .1);\n box-shadow: inset 0 1px 0 rgba(255, 255, 255, .1), 0 1px 0 rgba(255, 255, 255, .1);\n}\n@media (min-width: 768px) {\n .navbar-form .form-group {\n display: inline-block;\n margin-bottom: 0;\n vertical-align: middle;\n }\n .navbar-form .form-control {\n display: inline-block;\n width: auto;\n vertical-align: middle;\n }\n .navbar-form .form-control-static {\n display: inline-block;\n }\n .navbar-form .input-group {\n display: inline-table;\n vertical-align: middle;\n }\n .navbar-form .input-group .input-group-addon,\n .navbar-form .input-group .input-group-btn,\n .navbar-form .input-group .form-control {\n width: auto;\n }\n .navbar-form .input-group > .form-control {\n width: 100%;\n }\n .navbar-form .control-label {\n margin-bottom: 0;\n vertical-align: middle;\n }\n .navbar-form .radio,\n .navbar-form .checkbox {\n display: inline-block;\n margin-top: 0;\n margin-bottom: 0;\n vertical-align: middle;\n }\n .navbar-form .radio label,\n .navbar-form .checkbox label {\n padding-left: 0;\n }\n .navbar-form .radio input[type=\"radio\"],\n .navbar-form .checkbox input[type=\"checkbox\"] {\n position: relative;\n margin-left: 0;\n }\n .navbar-form .has-feedback .form-control-feedback {\n top: 0;\n }\n}\n@media (max-width: 767px) {\n .navbar-form .form-group {\n margin-bottom: 5px;\n }\n .navbar-form .form-group:last-child {\n margin-bottom: 0;\n }\n}\n@media (min-width: 768px) {\n .navbar-form {\n width: auto;\n padding-top: 0;\n padding-bottom: 0;\n margin-right: 0;\n margin-left: 0;\n border: 0;\n -webkit-box-shadow: none;\n box-shadow: none;\n }\n}\n.navbar-nav > li > .dropdown-menu {\n margin-top: 0;\n border-top-left-radius: 0;\n border-top-right-radius: 0;\n}\n.navbar-fixed-bottom .navbar-nav > li > .dropdown-menu {\n margin-bottom: 0;\n border-top-left-radius: 4px;\n border-top-right-radius: 4px;\n border-bottom-right-radius: 0;\n border-bottom-left-radius: 0;\n}\n.navbar-btn {\n margin-top: 8px;\n margin-bottom: 8px;\n}\n.navbar-btn.btn-sm {\n margin-top: 10px;\n margin-bottom: 10px;\n}\n.navbar-btn.btn-xs {\n margin-top: 14px;\n margin-bottom: 14px;\n}\n.navbar-text {\n margin-top: 15px;\n margin-bottom: 15px;\n}\n@media (min-width: 768px) {\n .navbar-text {\n float: left;\n margin-right: 15px;\n margin-left: 15px;\n }\n}\n@media (min-width: 768px) {\n .navbar-left {\n float: left !important;\n }\n .navbar-right {\n float: right !important;\n margin-right: -15px;\n }\n .navbar-right ~ .navbar-right {\n margin-right: 0;\n }\n}\n.navbar-default {\n background-color: #f8f8f8;\n border-color: #e7e7e7;\n}\n.navbar-default .navbar-brand {\n color: #777;\n}\n.navbar-default .navbar-brand:hover,\n.navbar-default .navbar-brand:focus {\n color: #5e5e5e;\n background-color: transparent;\n}\n.navbar-default .navbar-text {\n color: #777;\n}\n.navbar-default .navbar-nav > li > a {\n color: #777;\n}\n.navbar-default .navbar-nav > li > a:hover,\n.navbar-default .navbar-nav > li > a:focus {\n color: #333;\n background-color: transparent;\n}\n.navbar-default .navbar-nav > .active > a,\n.navbar-default .navbar-nav > .active > a:hover,\n.navbar-default .navbar-nav > .active > a:focus {\n color: #555;\n background-color: #e7e7e7;\n}\n.navbar-default .navbar-nav > .disabled > a,\n.navbar-default .navbar-nav > .disabled > a:hover,\n.navbar-default .navbar-nav > .disabled > a:focus {\n color: #ccc;\n background-color: transparent;\n}\n.navbar-default .navbar-toggle {\n border-color: #ddd;\n}\n.navbar-default .navbar-toggle:hover,\n.navbar-default .navbar-toggle:focus {\n background-color: #ddd;\n}\n.navbar-default .navbar-toggle .icon-bar {\n background-color: #888;\n}\n.navbar-default .navbar-collapse,\n.navbar-default .navbar-form {\n border-color: #e7e7e7;\n}\n.navbar-default .navbar-nav > .open > a,\n.navbar-default .navbar-nav > .open > a:hover,\n.navbar-default .navbar-nav > .open > a:focus {\n color: #555;\n background-color: #e7e7e7;\n}\n@media (max-width: 767px) {\n .navbar-default .navbar-nav .open .dropdown-menu > li > a {\n color: #777;\n }\n .navbar-default .navbar-nav .open .dropdown-menu > li > a:hover,\n .navbar-default .navbar-nav .open .dropdown-menu > li > a:focus {\n color: #333;\n background-color: transparent;\n }\n .navbar-default .navbar-nav .open .dropdown-menu > .active > a,\n .navbar-default .navbar-nav .open .dropdown-menu > .active > a:hover,\n .navbar-default .navbar-nav .open .dropdown-menu > .active > a:focus {\n color: #555;\n background-color: #e7e7e7;\n }\n .navbar-default .navbar-nav .open .dropdown-menu > .disabled > a,\n .navbar-default .navbar-nav .open .dropdown-menu > .disabled > a:hover,\n .navbar-default .navbar-nav .open .dropdown-menu > .disabled > a:focus {\n color: #ccc;\n background-color: transparent;\n }\n}\n.navbar-default .navbar-link {\n color: #777;\n}\n.navbar-default .navbar-link:hover {\n color: #333;\n}\n.navbar-default .btn-link {\n color: #777;\n}\n.navbar-default .btn-link:hover,\n.navbar-default .btn-link:focus {\n color: #333;\n}\n.navbar-default .btn-link[disabled]:hover,\nfieldset[disabled] .navbar-default .btn-link:hover,\n.navbar-default .btn-link[disabled]:focus,\nfieldset[disabled] .navbar-default .btn-link:focus {\n color: #ccc;\n}\n.navbar-inverse {\n background-color: #222;\n border-color: #080808;\n}\n.navbar-inverse .navbar-brand {\n color: #9d9d9d;\n}\n.navbar-inverse .navbar-brand:hover,\n.navbar-inverse .navbar-brand:focus {\n color: #fff;\n background-color: transparent;\n}\n.navbar-inverse .navbar-text {\n color: #9d9d9d;\n}\n.navbar-inverse .navbar-nav > li > a {\n color: #9d9d9d;\n}\n.navbar-inverse .navbar-nav > li > a:hover,\n.navbar-inverse .navbar-nav > li > a:focus {\n color: #fff;\n background-color: transparent;\n}\n.navbar-inverse .navbar-nav > .active > a,\n.navbar-inverse .navbar-nav > .active > a:hover,\n.navbar-inverse .navbar-nav > .active > a:focus {\n color: #fff;\n background-color: #080808;\n}\n.navbar-inverse .navbar-nav > .disabled > a,\n.navbar-inverse .navbar-nav > .disabled > a:hover,\n.navbar-inverse .navbar-nav > .disabled > a:focus {\n color: #444;\n background-color: transparent;\n}\n.navbar-inverse .navbar-toggle {\n border-color: #333;\n}\n.navbar-inverse .navbar-toggle:hover,\n.navbar-inverse .navbar-toggle:focus {\n background-color: #333;\n}\n.navbar-inverse .navbar-toggle .icon-bar {\n background-color: #fff;\n}\n.navbar-inverse .navbar-collapse,\n.navbar-inverse .navbar-form {\n border-color: #101010;\n}\n.navbar-inverse .navbar-nav > .open > a,\n.navbar-inverse .navbar-nav > .open > a:hover,\n.navbar-inverse .navbar-nav > .open > a:focus {\n color: #fff;\n background-color: #080808;\n}\n@media (max-width: 767px) {\n .navbar-inverse .navbar-nav .open .dropdown-menu > .dropdown-header {\n border-color: #080808;\n }\n .navbar-inverse .navbar-nav .open .dropdown-menu .divider {\n background-color: #080808;\n }\n .navbar-inverse .navbar-nav .open .dropdown-menu > li > a {\n color: #9d9d9d;\n }\n .navbar-inverse .navbar-nav .open .dropdown-menu > li > a:hover,\n .navbar-inverse .navbar-nav .open .dropdown-menu > li > a:focus {\n color: #fff;\n background-color: transparent;\n }\n .navbar-inverse .navbar-nav .open .dropdown-menu > .active > a,\n .navbar-inverse .navbar-nav .open .dropdown-menu > .active > a:hover,\n .navbar-inverse .navbar-nav .open .dropdown-menu > .active > a:focus {\n color: #fff;\n background-color: #080808;\n }\n .navbar-inverse .navbar-nav .open .dropdown-menu > .disabled > a,\n .navbar-inverse .navbar-nav .open .dropdown-menu > .disabled > a:hover,\n .navbar-inverse .navbar-nav .open .dropdown-menu > .disabled > a:focus {\n color: #444;\n background-color: transparent;\n }\n}\n.navbar-inverse .navbar-link {\n color: #9d9d9d;\n}\n.navbar-inverse .navbar-link:hover {\n color: #fff;\n}\n.navbar-inverse .btn-link {\n color: #9d9d9d;\n}\n.navbar-inverse .btn-link:hover,\n.navbar-inverse .btn-link:focus {\n color: #fff;\n}\n.navbar-inverse .btn-link[disabled]:hover,\nfieldset[disabled] .navbar-inverse .btn-link:hover,\n.navbar-inverse .btn-link[disabled]:focus,\nfieldset[disabled] .navbar-inverse .btn-link:focus {\n color: #444;\n}\n.breadcrumb {\n padding: 8px 15px;\n margin-bottom: 20px;\n list-style: none;\n background-color: #f5f5f5;\n border-radius: 4px;\n}\n.breadcrumb > li {\n display: inline-block;\n}\n.breadcrumb > li + li:before {\n padding: 0 5px;\n color: #ccc;\n content: \"/\\00a0\";\n}\n.breadcrumb > .active {\n color: #777;\n}\n.pagination {\n display: inline-block;\n padding-left: 0;\n margin: 20px 0;\n border-radius: 4px;\n}\n.pagination > li {\n display: inline;\n}\n.pagination > li > a,\n.pagination > li > span {\n position: relative;\n float: left;\n padding: 6px 12px;\n margin-left: -1px;\n line-height: 1.42857143;\n color: #337ab7;\n text-decoration: none;\n background-color: #fff;\n border: 1px solid #ddd;\n}\n.pagination > li:first-child > a,\n.pagination > li:first-child > span {\n margin-left: 0;\n border-top-left-radius: 4px;\n border-bottom-left-radius: 4px;\n}\n.pagination > li:last-child > a,\n.pagination > li:last-child > span {\n border-top-right-radius: 4px;\n border-bottom-right-radius: 4px;\n}\n.pagination > li > a:hover,\n.pagination > li > span:hover,\n.pagination > li > a:focus,\n.pagination > li > span:focus {\n z-index: 2;\n color: #23527c;\n background-color: #eee;\n border-color: #ddd;\n}\n.pagination > .active > a,\n.pagination > .active > span,\n.pagination > .active > a:hover,\n.pagination > .active > span:hover,\n.pagination > .active > a:focus,\n.pagination > .active > span:focus {\n z-index: 3;\n color: #fff;\n cursor: default;\n background-color: #337ab7;\n border-color: #337ab7;\n}\n.pagination > .disabled > span,\n.pagination > .disabled > span:hover,\n.pagination > .disabled > span:focus,\n.pagination > .disabled > a,\n.pagination > .disabled > a:hover,\n.pagination > .disabled > a:focus {\n color: #777;\n cursor: not-allowed;\n background-color: #fff;\n border-color: #ddd;\n}\n.pagination-lg > li > a,\n.pagination-lg > li > span {\n padding: 10px 16px;\n font-size: 18px;\n line-height: 1.3333333;\n}\n.pagination-lg > li:first-child > a,\n.pagination-lg > li:first-child > span {\n border-top-left-radius: 6px;\n border-bottom-left-radius: 6px;\n}\n.pagination-lg > li:last-child > a,\n.pagination-lg > li:last-child > span {\n border-top-right-radius: 6px;\n border-bottom-right-radius: 6px;\n}\n.pagination-sm > li > a,\n.pagination-sm > li > span {\n padding: 5px 10px;\n font-size: 12px;\n line-height: 1.5;\n}\n.pagination-sm > li:first-child > a,\n.pagination-sm > li:first-child > span {\n border-top-left-radius: 3px;\n border-bottom-left-radius: 3px;\n}\n.pagination-sm > li:last-child > a,\n.pagination-sm > li:last-child > span {\n border-top-right-radius: 3px;\n border-bottom-right-radius: 3px;\n}\n.pager {\n padding-left: 0;\n margin: 20px 0;\n text-align: center;\n list-style: none;\n}\n.pager li {\n display: inline;\n}\n.pager li > a,\n.pager li > span {\n display: inline-block;\n padding: 5px 14px;\n background-color: #fff;\n border: 1px solid #ddd;\n border-radius: 15px;\n}\n.pager li > a:hover,\n.pager li > a:focus {\n text-decoration: none;\n background-color: #eee;\n}\n.pager .next > a,\n.pager .next > span {\n float: right;\n}\n.pager .previous > a,\n.pager .previous > span {\n float: left;\n}\n.pager .disabled > a,\n.pager .disabled > a:hover,\n.pager .disabled > a:focus,\n.pager .disabled > span {\n color: #777;\n cursor: not-allowed;\n background-color: #fff;\n}\n.label {\n display: inline;\n padding: .2em .6em .3em;\n font-size: 75%;\n font-weight: bold;\n line-height: 1;\n color: #fff;\n text-align: center;\n white-space: nowrap;\n vertical-align: baseline;\n border-radius: .25em;\n}\na.label:hover,\na.label:focus {\n color: #fff;\n text-decoration: none;\n cursor: pointer;\n}\n.label:empty {\n display: none;\n}\n.btn .label {\n position: relative;\n top: -1px;\n}\n.label-default {\n background-color: #777;\n}\n.label-default[href]:hover,\n.label-default[href]:focus {\n background-color: #5e5e5e;\n}\n.label-primary {\n background-color: #337ab7;\n}\n.label-primary[href]:hover,\n.label-primary[href]:focus {\n background-color: #286090;\n}\n.label-success {\n background-color: #5cb85c;\n}\n.label-success[href]:hover,\n.label-success[href]:focus {\n background-color: #449d44;\n}\n.label-info {\n background-color: #5bc0de;\n}\n.label-info[href]:hover,\n.label-info[href]:focus {\n background-color: #31b0d5;\n}\n.label-warning {\n background-color: #f0ad4e;\n}\n.label-warning[href]:hover,\n.label-warning[href]:focus {\n background-color: #ec971f;\n}\n.label-danger {\n background-color: #d9534f;\n}\n.label-danger[href]:hover,\n.label-danger[href]:focus {\n background-color: #c9302c;\n}\n.badge {\n display: inline-block;\n min-width: 10px;\n padding: 3px 7px;\n font-size: 12px;\n font-weight: bold;\n line-height: 1;\n color: #fff;\n text-align: center;\n white-space: nowrap;\n vertical-align: middle;\n background-color: #777;\n border-radius: 10px;\n}\n.badge:empty {\n display: none;\n}\n.btn .badge {\n position: relative;\n top: -1px;\n}\n.btn-xs .badge,\n.btn-group-xs > .btn .badge {\n top: 0;\n padding: 1px 5px;\n}\na.badge:hover,\na.badge:focus {\n color: #fff;\n text-decoration: none;\n cursor: pointer;\n}\n.list-group-item.active > .badge,\n.nav-pills > .active > a > .badge {\n color: #337ab7;\n background-color: #fff;\n}\n.list-group-item > .badge {\n float: right;\n}\n.list-group-item > .badge + .badge {\n margin-right: 5px;\n}\n.nav-pills > li > a > .badge {\n margin-left: 3px;\n}\n.jumbotron {\n padding-top: 30px;\n padding-bottom: 30px;\n margin-bottom: 30px;\n color: inherit;\n background-color: #eee;\n}\n.jumbotron h1,\n.jumbotron .h1 {\n color: inherit;\n}\n.jumbotron p {\n margin-bottom: 15px;\n font-size: 21px;\n font-weight: 200;\n}\n.jumbotron > hr {\n border-top-color: #d5d5d5;\n}\n.container .jumbotron,\n.container-fluid .jumbotron {\n padding-right: 15px;\n padding-left: 15px;\n border-radius: 6px;\n}\n.jumbotron .container {\n max-width: 100%;\n}\n@media screen and (min-width: 768px) {\n .jumbotron {\n padding-top: 48px;\n padding-bottom: 48px;\n }\n .container .jumbotron,\n .container-fluid .jumbotron {\n padding-right: 60px;\n padding-left: 60px;\n }\n .jumbotron h1,\n .jumbotron .h1 {\n font-size: 63px;\n }\n}\n.thumbnail {\n display: block;\n padding: 4px;\n margin-bottom: 20px;\n line-height: 1.42857143;\n background-color: #fff;\n border: 1px solid #ddd;\n border-radius: 4px;\n -webkit-transition: border .2s ease-in-out;\n -o-transition: border .2s ease-in-out;\n transition: border .2s ease-in-out;\n}\n.thumbnail > img,\n.thumbnail a > img {\n margin-right: auto;\n margin-left: auto;\n}\na.thumbnail:hover,\na.thumbnail:focus,\na.thumbnail.active {\n border-color: #337ab7;\n}\n.thumbnail .caption {\n padding: 9px;\n color: #333;\n}\n.alert {\n padding: 15px;\n margin-bottom: 20px;\n border: 1px solid transparent;\n border-radius: 4px;\n}\n.alert h4 {\n margin-top: 0;\n color: inherit;\n}\n.alert .alert-link {\n font-weight: bold;\n}\n.alert > p,\n.alert > ul {\n margin-bottom: 0;\n}\n.alert > p + p {\n margin-top: 5px;\n}\n.alert-dismissable,\n.alert-dismissible {\n padding-right: 35px;\n}\n.alert-dismissable .close,\n.alert-dismissible .close {\n position: relative;\n top: -2px;\n right: -21px;\n color: inherit;\n}\n.alert-success {\n color: #3c763d;\n background-color: #dff0d8;\n border-color: #d6e9c6;\n}\n.alert-success hr {\n border-top-color: #c9e2b3;\n}\n.alert-success .alert-link {\n color: #2b542c;\n}\n.alert-info {\n color: #31708f;\n background-color: #d9edf7;\n border-color: #bce8f1;\n}\n.alert-info hr {\n border-top-color: #a6e1ec;\n}\n.alert-info .alert-link {\n color: #245269;\n}\n.alert-warning {\n color: #8a6d3b;\n background-color: #fcf8e3;\n border-color: #faebcc;\n}\n.alert-warning hr {\n border-top-color: #f7e1b5;\n}\n.alert-warning .alert-link {\n color: #66512c;\n}\n.alert-danger {\n color: #a94442;\n background-color: #f2dede;\n border-color: #ebccd1;\n}\n.alert-danger hr {\n border-top-color: #e4b9c0;\n}\n.alert-danger .alert-link {\n color: #843534;\n}\n@-webkit-keyframes progress-bar-stripes {\n from {\n background-position: 40px 0;\n }\n to {\n background-position: 0 0;\n }\n}\n@-o-keyframes progress-bar-stripes {\n from {\n background-position: 40px 0;\n }\n to {\n background-position: 0 0;\n }\n}\n@keyframes progress-bar-stripes {\n from {\n background-position: 40px 0;\n }\n to {\n background-position: 0 0;\n }\n}\n.progress {\n height: 20px;\n margin-bottom: 20px;\n overflow: hidden;\n background-color: #f5f5f5;\n border-radius: 4px;\n -webkit-box-shadow: inset 0 1px 2px rgba(0, 0, 0, .1);\n box-shadow: inset 0 1px 2px rgba(0, 0, 0, .1);\n}\n.progress-bar {\n float: left;\n width: 0;\n height: 100%;\n font-size: 12px;\n line-height: 20px;\n color: #fff;\n text-align: center;\n background-color: #337ab7;\n -webkit-box-shadow: inset 0 -1px 0 rgba(0, 0, 0, .15);\n box-shadow: inset 0 -1px 0 rgba(0, 0, 0, .15);\n -webkit-transition: width .6s ease;\n -o-transition: width .6s ease;\n transition: width .6s ease;\n}\n.progress-striped .progress-bar,\n.progress-bar-striped {\n background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent);\n background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent);\n background-image: linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent);\n -webkit-background-size: 40px 40px;\n background-size: 40px 40px;\n}\n.progress.active .progress-bar,\n.progress-bar.active {\n -webkit-animation: progress-bar-stripes 2s linear infinite;\n -o-animation: progress-bar-stripes 2s linear infinite;\n animation: progress-bar-stripes 2s linear infinite;\n}\n.progress-bar-success {\n background-color: #5cb85c;\n}\n.progress-striped .progress-bar-success {\n background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent);\n background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent);\n background-image: linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent);\n}\n.progress-bar-info {\n background-color: #5bc0de;\n}\n.progress-striped .progress-bar-info {\n background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent);\n background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent);\n background-image: linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent);\n}\n.progress-bar-warning {\n background-color: #f0ad4e;\n}\n.progress-striped .progress-bar-warning {\n background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent);\n background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent);\n background-image: linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent);\n}\n.progress-bar-danger {\n background-color: #d9534f;\n}\n.progress-striped .progress-bar-danger {\n background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent);\n background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent);\n background-image: linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent);\n}\n.media {\n margin-top: 15px;\n}\n.media:first-child {\n margin-top: 0;\n}\n.media,\n.media-body {\n overflow: hidden;\n zoom: 1;\n}\n.media-body {\n width: 10000px;\n}\n.media-object {\n display: block;\n}\n.media-object.img-thumbnail {\n max-width: none;\n}\n.media-right,\n.media > .pull-right {\n padding-left: 10px;\n}\n.media-left,\n.media > .pull-left {\n padding-right: 10px;\n}\n.media-left,\n.media-right,\n.media-body {\n display: table-cell;\n vertical-align: top;\n}\n.media-middle {\n vertical-align: middle;\n}\n.media-bottom {\n vertical-align: bottom;\n}\n.media-heading {\n margin-top: 0;\n margin-bottom: 5px;\n}\n.media-list {\n padding-left: 0;\n list-style: none;\n}\n.list-group {\n padding-left: 0;\n margin-bottom: 20px;\n}\n.list-group-item {\n position: relative;\n display: block;\n padding: 10px 15px;\n margin-bottom: -1px;\n background-color: #fff;\n border: 1px solid #ddd;\n}\n.list-group-item:first-child {\n border-top-left-radius: 4px;\n border-top-right-radius: 4px;\n}\n.list-group-item:last-child {\n margin-bottom: 0;\n border-bottom-right-radius: 4px;\n border-bottom-left-radius: 4px;\n}\na.list-group-item,\nbutton.list-group-item {\n color: #555;\n}\na.list-group-item .list-group-item-heading,\nbutton.list-group-item .list-group-item-heading {\n color: #333;\n}\na.list-group-item:hover,\nbutton.list-group-item:hover,\na.list-group-item:focus,\nbutton.list-group-item:focus {\n color: #555;\n text-decoration: none;\n background-color: #f5f5f5;\n}\nbutton.list-group-item {\n width: 100%;\n text-align: left;\n}\n.list-group-item.disabled,\n.list-group-item.disabled:hover,\n.list-group-item.disabled:focus {\n color: #777;\n cursor: not-allowed;\n background-color: #eee;\n}\n.list-group-item.disabled .list-group-item-heading,\n.list-group-item.disabled:hover .list-group-item-heading,\n.list-group-item.disabled:focus .list-group-item-heading {\n color: inherit;\n}\n.list-group-item.disabled .list-group-item-text,\n.list-group-item.disabled:hover .list-group-item-text,\n.list-group-item.disabled:focus .list-group-item-text {\n color: #777;\n}\n.list-group-item.active,\n.list-group-item.active:hover,\n.list-group-item.active:focus {\n z-index: 2;\n color: #fff;\n background-color: #337ab7;\n border-color: #337ab7;\n}\n.list-group-item.active .list-group-item-heading,\n.list-group-item.active:hover .list-group-item-heading,\n.list-group-item.active:focus .list-group-item-heading,\n.list-group-item.active .list-group-item-heading > small,\n.list-group-item.active:hover .list-group-item-heading > small,\n.list-group-item.active:focus .list-group-item-heading > small,\n.list-group-item.active .list-group-item-heading > .small,\n.list-group-item.active:hover .list-group-item-heading > .small,\n.list-group-item.active:focus .list-group-item-heading > .small {\n color: inherit;\n}\n.list-group-item.active .list-group-item-text,\n.list-group-item.active:hover .list-group-item-text,\n.list-group-item.active:focus .list-group-item-text {\n color: #c7ddef;\n}\n.list-group-item-success {\n color: #3c763d;\n background-color: #dff0d8;\n}\na.list-group-item-success,\nbutton.list-group-item-success {\n color: #3c763d;\n}\na.list-group-item-success .list-group-item-heading,\nbutton.list-group-item-success .list-group-item-heading {\n color: inherit;\n}\na.list-group-item-success:hover,\nbutton.list-group-item-success:hover,\na.list-group-item-success:focus,\nbutton.list-group-item-success:focus {\n color: #3c763d;\n background-color: #d0e9c6;\n}\na.list-group-item-success.active,\nbutton.list-group-item-success.active,\na.list-group-item-success.active:hover,\nbutton.list-group-item-success.active:hover,\na.list-group-item-success.active:focus,\nbutton.list-group-item-success.active:focus {\n color: #fff;\n background-color: #3c763d;\n border-color: #3c763d;\n}\n.list-group-item-info {\n color: #31708f;\n background-color: #d9edf7;\n}\na.list-group-item-info,\nbutton.list-group-item-info {\n color: #31708f;\n}\na.list-group-item-info .list-group-item-heading,\nbutton.list-group-item-info .list-group-item-heading {\n color: inherit;\n}\na.list-group-item-info:hover,\nbutton.list-group-item-info:hover,\na.list-group-item-info:focus,\nbutton.list-group-item-info:focus {\n color: #31708f;\n background-color: #c4e3f3;\n}\na.list-group-item-info.active,\nbutton.list-group-item-info.active,\na.list-group-item-info.active:hover,\nbutton.list-group-item-info.active:hover,\na.list-group-item-info.active:focus,\nbutton.list-group-item-info.active:focus {\n color: #fff;\n background-color: #31708f;\n border-color: #31708f;\n}\n.list-group-item-warning {\n color: #8a6d3b;\n background-color: #fcf8e3;\n}\na.list-group-item-warning,\nbutton.list-group-item-warning {\n color: #8a6d3b;\n}\na.list-group-item-warning .list-group-item-heading,\nbutton.list-group-item-warning .list-group-item-heading {\n color: inherit;\n}\na.list-group-item-warning:hover,\nbutton.list-group-item-warning:hover,\na.list-group-item-warning:focus,\nbutton.list-group-item-warning:focus {\n color: #8a6d3b;\n background-color: #faf2cc;\n}\na.list-group-item-warning.active,\nbutton.list-group-item-warning.active,\na.list-group-item-warning.active:hover,\nbutton.list-group-item-warning.active:hover,\na.list-group-item-warning.active:focus,\nbutton.list-group-item-warning.active:focus {\n color: #fff;\n background-color: #8a6d3b;\n border-color: #8a6d3b;\n}\n.list-group-item-danger {\n color: #a94442;\n background-color: #f2dede;\n}\na.list-group-item-danger,\nbutton.list-group-item-danger {\n color: #a94442;\n}\na.list-group-item-danger .list-group-item-heading,\nbutton.list-group-item-danger .list-group-item-heading {\n color: inherit;\n}\na.list-group-item-danger:hover,\nbutton.list-group-item-danger:hover,\na.list-group-item-danger:focus,\nbutton.list-group-item-danger:focus {\n color: #a94442;\n background-color: #ebcccc;\n}\na.list-group-item-danger.active,\nbutton.list-group-item-danger.active,\na.list-group-item-danger.active:hover,\nbutton.list-group-item-danger.active:hover,\na.list-group-item-danger.active:focus,\nbutton.list-group-item-danger.active:focus {\n color: #fff;\n background-color: #a94442;\n border-color: #a94442;\n}\n.list-group-item-heading {\n margin-top: 0;\n margin-bottom: 5px;\n}\n.list-group-item-text {\n margin-bottom: 0;\n line-height: 1.3;\n}\n.panel {\n margin-bottom: 20px;\n background-color: #fff;\n border: 1px solid transparent;\n border-radius: 4px;\n -webkit-box-shadow: 0 1px 1px rgba(0, 0, 0, .05);\n box-shadow: 0 1px 1px rgba(0, 0, 0, .05);\n}\n.panel-body {\n padding: 15px;\n}\n.panel-heading {\n padding: 10px 15px;\n border-bottom: 1px solid transparent;\n border-top-left-radius: 3px;\n border-top-right-radius: 3px;\n}\n.panel-heading > .dropdown .dropdown-toggle {\n color: inherit;\n}\n.panel-title {\n margin-top: 0;\n margin-bottom: 0;\n font-size: 16px;\n color: inherit;\n}\n.panel-title > a,\n.panel-title > small,\n.panel-title > .small,\n.panel-title > small > a,\n.panel-title > .small > a {\n color: inherit;\n}\n.panel-footer {\n padding: 10px 15px;\n background-color: #f5f5f5;\n border-top: 1px solid #ddd;\n border-bottom-right-radius: 3px;\n border-bottom-left-radius: 3px;\n}\n.panel > .list-group,\n.panel > .panel-collapse > .list-group {\n margin-bottom: 0;\n}\n.panel > .list-group .list-group-item,\n.panel > .panel-collapse > .list-group .list-group-item {\n border-width: 1px 0;\n border-radius: 0;\n}\n.panel > .list-group:first-child .list-group-item:first-child,\n.panel > .panel-collapse > .list-group:first-child .list-group-item:first-child {\n border-top: 0;\n border-top-left-radius: 3px;\n border-top-right-radius: 3px;\n}\n.panel > .list-group:last-child .list-group-item:last-child,\n.panel > .panel-collapse > .list-group:last-child .list-group-item:last-child {\n border-bottom: 0;\n border-bottom-right-radius: 3px;\n border-bottom-left-radius: 3px;\n}\n.panel > .panel-heading + .panel-collapse > .list-group .list-group-item:first-child {\n border-top-left-radius: 0;\n border-top-right-radius: 0;\n}\n.panel-heading + .list-group .list-group-item:first-child {\n border-top-width: 0;\n}\n.list-group + .panel-footer {\n border-top-width: 0;\n}\n.panel > .table,\n.panel > .table-responsive > .table,\n.panel > .panel-collapse > .table {\n margin-bottom: 0;\n}\n.panel > .table caption,\n.panel > .table-responsive > .table caption,\n.panel > .panel-collapse > .table caption {\n padding-right: 15px;\n padding-left: 15px;\n}\n.panel > .table:first-child,\n.panel > .table-responsive:first-child > .table:first-child {\n border-top-left-radius: 3px;\n border-top-right-radius: 3px;\n}\n.panel > .table:first-child > thead:first-child > tr:first-child,\n.panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child,\n.panel > .table:first-child > tbody:first-child > tr:first-child,\n.panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child {\n border-top-left-radius: 3px;\n border-top-right-radius: 3px;\n}\n.panel > .table:first-child > thead:first-child > tr:first-child td:first-child,\n.panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child td:first-child,\n.panel > .table:first-child > tbody:first-child > tr:first-child td:first-child,\n.panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child td:first-child,\n.panel > .table:first-child > thead:first-child > tr:first-child th:first-child,\n.panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child th:first-child,\n.panel > .table:first-child > tbody:first-child > tr:first-child th:first-child,\n.panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child th:first-child {\n border-top-left-radius: 3px;\n}\n.panel > .table:first-child > thead:first-child > tr:first-child td:last-child,\n.panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child td:last-child,\n.panel > .table:first-child > tbody:first-child > tr:first-child td:last-child,\n.panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child td:last-child,\n.panel > .table:first-child > thead:first-child > tr:first-child th:last-child,\n.panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child th:last-child,\n.panel > .table:first-child > tbody:first-child > tr:first-child th:last-child,\n.panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child th:last-child {\n border-top-right-radius: 3px;\n}\n.panel > .table:last-child,\n.panel > .table-responsive:last-child > .table:last-child {\n border-bottom-right-radius: 3px;\n border-bottom-left-radius: 3px;\n}\n.panel > .table:last-child > tbody:last-child > tr:last-child,\n.panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child,\n.panel > .table:last-child > tfoot:last-child > tr:last-child,\n.panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child {\n border-bottom-right-radius: 3px;\n border-bottom-left-radius: 3px;\n}\n.panel > .table:last-child > tbody:last-child > tr:last-child td:first-child,\n.panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child td:first-child,\n.panel > .table:last-child > tfoot:last-child > tr:last-child td:first-child,\n.panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child td:first-child,\n.panel > .table:last-child > tbody:last-child > tr:last-child th:first-child,\n.panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child th:first-child,\n.panel > .table:last-child > tfoot:last-child > tr:last-child th:first-child,\n.panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child th:first-child {\n border-bottom-left-radius: 3px;\n}\n.panel > .table:last-child > tbody:last-child > tr:last-child td:last-child,\n.panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child td:last-child,\n.panel > .table:last-child > tfoot:last-child > tr:last-child td:last-child,\n.panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child td:last-child,\n.panel > .table:last-child > tbody:last-child > tr:last-child th:last-child,\n.panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child th:last-child,\n.panel > .table:last-child > tfoot:last-child > tr:last-child th:last-child,\n.panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child th:last-child {\n border-bottom-right-radius: 3px;\n}\n.panel > .panel-body + .table,\n.panel > .panel-body + .table-responsive,\n.panel > .table + .panel-body,\n.panel > .table-responsive + .panel-body {\n border-top: 1px solid #ddd;\n}\n.panel > .table > tbody:first-child > tr:first-child th,\n.panel > .table > tbody:first-child > tr:first-child td {\n border-top: 0;\n}\n.panel > .table-bordered,\n.panel > .table-responsive > .table-bordered {\n border: 0;\n}\n.panel > .table-bordered > thead > tr > th:first-child,\n.panel > .table-responsive > .table-bordered > thead > tr > th:first-child,\n.panel > .table-bordered > tbody > tr > th:first-child,\n.panel > .table-responsive > .table-bordered > tbody > tr > th:first-child,\n.panel > .table-bordered > tfoot > tr > th:first-child,\n.panel > .table-responsive > .table-bordered > tfoot > tr > th:first-child,\n.panel > .table-bordered > thead > tr > td:first-child,\n.panel > .table-responsive > .table-bordered > thead > tr > td:first-child,\n.panel > .table-bordered > tbody > tr > td:first-child,\n.panel > .table-responsive > .table-bordered > tbody > tr > td:first-child,\n.panel > .table-bordered > tfoot > tr > td:first-child,\n.panel > .table-responsive > .table-bordered > tfoot > tr > td:first-child {\n border-left: 0;\n}\n.panel > .table-bordered > thead > tr > th:last-child,\n.panel > .table-responsive > .table-bordered > thead > tr > th:last-child,\n.panel > .table-bordered > tbody > tr > th:last-child,\n.panel > .table-responsive > .table-bordered > tbody > tr > th:last-child,\n.panel > .table-bordered > tfoot > tr > th:last-child,\n.panel > .table-responsive > .table-bordered > tfoot > tr > th:last-child,\n.panel > .table-bordered > thead > tr > td:last-child,\n.panel > .table-responsive > .table-bordered > thead > tr > td:last-child,\n.panel > .table-bordered > tbody > tr > td:last-child,\n.panel > .table-responsive > .table-bordered > tbody > tr > td:last-child,\n.panel > .table-bordered > tfoot > tr > td:last-child,\n.panel > .table-responsive > .table-bordered > tfoot > tr > td:last-child {\n border-right: 0;\n}\n.panel > .table-bordered > thead > tr:first-child > td,\n.panel > .table-responsive > .table-bordered > thead > tr:first-child > td,\n.panel > .table-bordered > tbody > tr:first-child > td,\n.panel > .table-responsive > .table-bordered > tbody > tr:first-child > td,\n.panel > .table-bordered > thead > tr:first-child > th,\n.panel > .table-responsive > .table-bordered > thead > tr:first-child > th,\n.panel > .table-bordered > tbody > tr:first-child > th,\n.panel > .table-responsive > .table-bordered > tbody > tr:first-child > th {\n border-bottom: 0;\n}\n.panel > .table-bordered > tbody > tr:last-child > td,\n.panel > .table-responsive > .table-bordered > tbody > tr:last-child > td,\n.panel > .table-bordered > tfoot > tr:last-child > td,\n.panel > .table-responsive > .table-bordered > tfoot > tr:last-child > td,\n.panel > .table-bordered > tbody > tr:last-child > th,\n.panel > .table-responsive > .table-bordered > tbody > tr:last-child > th,\n.panel > .table-bordered > tfoot > tr:last-child > th,\n.panel > .table-responsive > .table-bordered > tfoot > tr:last-child > th {\n border-bottom: 0;\n}\n.panel > .table-responsive {\n margin-bottom: 0;\n border: 0;\n}\n.panel-group {\n margin-bottom: 20px;\n}\n.panel-group .panel {\n margin-bottom: 0;\n border-radius: 4px;\n}\n.panel-group .panel + .panel {\n margin-top: 5px;\n}\n.panel-group .panel-heading {\n border-bottom: 0;\n}\n.panel-group .panel-heading + .panel-collapse > .panel-body,\n.panel-group .panel-heading + .panel-collapse > .list-group {\n border-top: 1px solid #ddd;\n}\n.panel-group .panel-footer {\n border-top: 0;\n}\n.panel-group .panel-footer + .panel-collapse .panel-body {\n border-bottom: 1px solid #ddd;\n}\n.panel-default {\n border-color: #ddd;\n}\n.panel-default > .panel-heading {\n color: #333;\n background-color: #f5f5f5;\n border-color: #ddd;\n}\n.panel-default > .panel-heading + .panel-collapse > .panel-body {\n border-top-color: #ddd;\n}\n.panel-default > .panel-heading .badge {\n color: #f5f5f5;\n background-color: #333;\n}\n.panel-default > .panel-footer + .panel-collapse > .panel-body {\n border-bottom-color: #ddd;\n}\n.panel-primary {\n border-color: #337ab7;\n}\n.panel-primary > .panel-heading {\n color: #fff;\n background-color: #337ab7;\n border-color: #337ab7;\n}\n.panel-primary > .panel-heading + .panel-collapse > .panel-body {\n border-top-color: #337ab7;\n}\n.panel-primary > .panel-heading .badge {\n color: #337ab7;\n background-color: #fff;\n}\n.panel-primary > .panel-footer + .panel-collapse > .panel-body {\n border-bottom-color: #337ab7;\n}\n.panel-success {\n border-color: #d6e9c6;\n}\n.panel-success > .panel-heading {\n color: #3c763d;\n background-color: #dff0d8;\n border-color: #d6e9c6;\n}\n.panel-success > .panel-heading + .panel-collapse > .panel-body {\n border-top-color: #d6e9c6;\n}\n.panel-success > .panel-heading .badge {\n color: #dff0d8;\n background-color: #3c763d;\n}\n.panel-success > .panel-footer + .panel-collapse > .panel-body {\n border-bottom-color: #d6e9c6;\n}\n.panel-info {\n border-color: #bce8f1;\n}\n.panel-info > .panel-heading {\n color: #31708f;\n background-color: #d9edf7;\n border-color: #bce8f1;\n}\n.panel-info > .panel-heading + .panel-collapse > .panel-body {\n border-top-color: #bce8f1;\n}\n.panel-info > .panel-heading .badge {\n color: #d9edf7;\n background-color: #31708f;\n}\n.panel-info > .panel-footer + .panel-collapse > .panel-body {\n border-bottom-color: #bce8f1;\n}\n.panel-warning {\n border-color: #faebcc;\n}\n.panel-warning > .panel-heading {\n color: #8a6d3b;\n background-color: #fcf8e3;\n border-color: #faebcc;\n}\n.panel-warning > .panel-heading + .panel-collapse > .panel-body {\n border-top-color: #faebcc;\n}\n.panel-warning > .panel-heading .badge {\n color: #fcf8e3;\n background-color: #8a6d3b;\n}\n.panel-warning > .panel-footer + .panel-collapse > .panel-body {\n border-bottom-color: #faebcc;\n}\n.panel-danger {\n border-color: #ebccd1;\n}\n.panel-danger > .panel-heading {\n color: #a94442;\n background-color: #f2dede;\n border-color: #ebccd1;\n}\n.panel-danger > .panel-heading + .panel-collapse > .panel-body {\n border-top-color: #ebccd1;\n}\n.panel-danger > .panel-heading .badge {\n color: #f2dede;\n background-color: #a94442;\n}\n.panel-danger > .panel-footer + .panel-collapse > .panel-body {\n border-bottom-color: #ebccd1;\n}\n.embed-responsive {\n position: relative;\n display: block;\n height: 0;\n padding: 0;\n overflow: hidden;\n}\n.embed-responsive .embed-responsive-item,\n.embed-responsive iframe,\n.embed-responsive embed,\n.embed-responsive object,\n.embed-responsive video {\n position: absolute;\n top: 0;\n bottom: 0;\n left: 0;\n width: 100%;\n height: 100%;\n border: 0;\n}\n.embed-responsive-16by9 {\n padding-bottom: 56.25%;\n}\n.embed-responsive-4by3 {\n padding-bottom: 75%;\n}\n.well {\n min-height: 20px;\n padding: 19px;\n margin-bottom: 20px;\n background-color: #f5f5f5;\n border: 1px solid #e3e3e3;\n border-radius: 4px;\n -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, .05);\n box-shadow: inset 0 1px 1px rgba(0, 0, 0, .05);\n}\n.well blockquote {\n border-color: #ddd;\n border-color: rgba(0, 0, 0, .15);\n}\n.well-lg {\n padding: 24px;\n border-radius: 6px;\n}\n.well-sm {\n padding: 9px;\n border-radius: 3px;\n}\n.close {\n float: right;\n font-size: 21px;\n font-weight: bold;\n line-height: 1;\n color: #000;\n text-shadow: 0 1px 0 #fff;\n filter: alpha(opacity=20);\n opacity: .2;\n}\n.close:hover,\n.close:focus {\n color: #000;\n text-decoration: none;\n cursor: pointer;\n filter: alpha(opacity=50);\n opacity: .5;\n}\nbutton.close {\n -webkit-appearance: none;\n padding: 0;\n cursor: pointer;\n background: transparent;\n border: 0;\n}\n.modal-open {\n overflow: hidden;\n}\n.modal {\n position: fixed;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n z-index: 1050;\n display: none;\n overflow: hidden;\n -webkit-overflow-scrolling: touch;\n outline: 0;\n}\n.modal.fade .modal-dialog {\n -webkit-transition: -webkit-transform .3s ease-out;\n -o-transition: -o-transform .3s ease-out;\n transition: transform .3s ease-out;\n -webkit-transform: translate(0, -25%);\n -ms-transform: translate(0, -25%);\n -o-transform: translate(0, -25%);\n transform: translate(0, -25%);\n}\n.modal.in .modal-dialog {\n -webkit-transform: translate(0, 0);\n -ms-transform: translate(0, 0);\n -o-transform: translate(0, 0);\n transform: translate(0, 0);\n}\n.modal-open .modal {\n overflow-x: hidden;\n overflow-y: auto;\n}\n.modal-dialog {\n position: relative;\n width: auto;\n margin: 10px;\n}\n.modal-content {\n position: relative;\n background-color: #fff;\n -webkit-background-clip: padding-box;\n background-clip: padding-box;\n border: 1px solid #999;\n border: 1px solid rgba(0, 0, 0, .2);\n border-radius: 6px;\n outline: 0;\n -webkit-box-shadow: 0 3px 9px rgba(0, 0, 0, .5);\n box-shadow: 0 3px 9px rgba(0, 0, 0, .5);\n}\n.modal-backdrop {\n position: fixed;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n z-index: 1040;\n background-color: #000;\n}\n.modal-backdrop.fade {\n filter: alpha(opacity=0);\n opacity: 0;\n}\n.modal-backdrop.in {\n filter: alpha(opacity=50);\n opacity: .5;\n}\n.modal-header {\n padding: 15px;\n border-bottom: 1px solid #e5e5e5;\n}\n.modal-header .close {\n margin-top: -2px;\n}\n.modal-title {\n margin: 0;\n line-height: 1.42857143;\n}\n.modal-body {\n position: relative;\n padding: 15px;\n}\n.modal-footer {\n padding: 15px;\n text-align: right;\n border-top: 1px solid #e5e5e5;\n}\n.modal-footer .btn + .btn {\n margin-bottom: 0;\n margin-left: 5px;\n}\n.modal-footer .btn-group .btn + .btn {\n margin-left: -1px;\n}\n.modal-footer .btn-block + .btn-block {\n margin-left: 0;\n}\n.modal-scrollbar-measure {\n position: absolute;\n top: -9999px;\n width: 50px;\n height: 50px;\n overflow: scroll;\n}\n@media (min-width: 768px) {\n .modal-dialog {\n width: 600px;\n margin: 30px auto;\n }\n .modal-content {\n -webkit-box-shadow: 0 5px 15px rgba(0, 0, 0, .5);\n box-shadow: 0 5px 15px rgba(0, 0, 0, .5);\n }\n .modal-sm {\n width: 300px;\n }\n}\n@media (min-width: 992px) {\n .modal-lg {\n width: 900px;\n }\n}\n.tooltip {\n position: absolute;\n z-index: 1070;\n display: block;\n font-family: \"Helvetica Neue\", Helvetica, Arial, sans-serif;\n font-size: 12px;\n font-style: normal;\n font-weight: normal;\n line-height: 1.42857143;\n text-align: left;\n text-align: start;\n text-decoration: none;\n text-shadow: none;\n text-transform: none;\n letter-spacing: normal;\n word-break: normal;\n word-spacing: normal;\n word-wrap: normal;\n white-space: normal;\n filter: alpha(opacity=0);\n opacity: 0;\n\n line-break: auto;\n}\n.tooltip.in {\n filter: alpha(opacity=90);\n opacity: .9;\n}\n.tooltip.top {\n padding: 5px 0;\n margin-top: -3px;\n}\n.tooltip.right {\n padding: 0 5px;\n margin-left: 3px;\n}\n.tooltip.bottom {\n padding: 5px 0;\n margin-top: 3px;\n}\n.tooltip.left {\n padding: 0 5px;\n margin-left: -3px;\n}\n.tooltip-inner {\n max-width: 200px;\n padding: 3px 8px;\n color: #fff;\n text-align: center;\n background-color: #000;\n border-radius: 4px;\n}\n.tooltip-arrow {\n position: absolute;\n width: 0;\n height: 0;\n border-color: transparent;\n border-style: solid;\n}\n.tooltip.top .tooltip-arrow {\n bottom: 0;\n left: 50%;\n margin-left: -5px;\n border-width: 5px 5px 0;\n border-top-color: #000;\n}\n.tooltip.top-left .tooltip-arrow {\n right: 5px;\n bottom: 0;\n margin-bottom: -5px;\n border-width: 5px 5px 0;\n border-top-color: #000;\n}\n.tooltip.top-right .tooltip-arrow {\n bottom: 0;\n left: 5px;\n margin-bottom: -5px;\n border-width: 5px 5px 0;\n border-top-color: #000;\n}\n.tooltip.right .tooltip-arrow {\n top: 50%;\n left: 0;\n margin-top: -5px;\n border-width: 5px 5px 5px 0;\n border-right-color: #000;\n}\n.tooltip.left .tooltip-arrow {\n top: 50%;\n right: 0;\n margin-top: -5px;\n border-width: 5px 0 5px 5px;\n border-left-color: #000;\n}\n.tooltip.bottom .tooltip-arrow {\n top: 0;\n left: 50%;\n margin-left: -5px;\n border-width: 0 5px 5px;\n border-bottom-color: #000;\n}\n.tooltip.bottom-left .tooltip-arrow {\n top: 0;\n right: 5px;\n margin-top: -5px;\n border-width: 0 5px 5px;\n border-bottom-color: #000;\n}\n.tooltip.bottom-right .tooltip-arrow {\n top: 0;\n left: 5px;\n margin-top: -5px;\n border-width: 0 5px 5px;\n border-bottom-color: #000;\n}\n.popover {\n position: absolute;\n top: 0;\n left: 0;\n z-index: 1060;\n display: none;\n max-width: 276px;\n padding: 1px;\n font-family: \"Helvetica Neue\", Helvetica, Arial, sans-serif;\n font-size: 14px;\n font-style: normal;\n font-weight: normal;\n line-height: 1.42857143;\n text-align: left;\n text-align: start;\n text-decoration: none;\n text-shadow: none;\n text-transform: none;\n letter-spacing: normal;\n word-break: normal;\n word-spacing: normal;\n word-wrap: normal;\n white-space: normal;\n background-color: #fff;\n -webkit-background-clip: padding-box;\n background-clip: padding-box;\n border: 1px solid #ccc;\n border: 1px solid rgba(0, 0, 0, .2);\n border-radius: 6px;\n -webkit-box-shadow: 0 5px 10px rgba(0, 0, 0, .2);\n box-shadow: 0 5px 10px rgba(0, 0, 0, .2);\n\n line-break: auto;\n}\n.popover.top {\n margin-top: -10px;\n}\n.popover.right {\n margin-left: 10px;\n}\n.popover.bottom {\n margin-top: 10px;\n}\n.popover.left {\n margin-left: -10px;\n}\n.popover-title {\n padding: 8px 14px;\n margin: 0;\n font-size: 14px;\n background-color: #f7f7f7;\n border-bottom: 1px solid #ebebeb;\n border-radius: 5px 5px 0 0;\n}\n.popover-content {\n padding: 9px 14px;\n}\n.popover > .arrow,\n.popover > .arrow:after {\n position: absolute;\n display: block;\n width: 0;\n height: 0;\n border-color: transparent;\n border-style: solid;\n}\n.popover > .arrow {\n border-width: 11px;\n}\n.popover > .arrow:after {\n content: \"\";\n border-width: 10px;\n}\n.popover.top > .arrow {\n bottom: -11px;\n left: 50%;\n margin-left: -11px;\n border-top-color: #999;\n border-top-color: rgba(0, 0, 0, .25);\n border-bottom-width: 0;\n}\n.popover.top > .arrow:after {\n bottom: 1px;\n margin-left: -10px;\n content: \" \";\n border-top-color: #fff;\n border-bottom-width: 0;\n}\n.popover.right > .arrow {\n top: 50%;\n left: -11px;\n margin-top: -11px;\n border-right-color: #999;\n border-right-color: rgba(0, 0, 0, .25);\n border-left-width: 0;\n}\n.popover.right > .arrow:after {\n bottom: -10px;\n left: 1px;\n content: \" \";\n border-right-color: #fff;\n border-left-width: 0;\n}\n.popover.bottom > .arrow {\n top: -11px;\n left: 50%;\n margin-left: -11px;\n border-top-width: 0;\n border-bottom-color: #999;\n border-bottom-color: rgba(0, 0, 0, .25);\n}\n.popover.bottom > .arrow:after {\n top: 1px;\n margin-left: -10px;\n content: \" \";\n border-top-width: 0;\n border-bottom-color: #fff;\n}\n.popover.left > .arrow {\n top: 50%;\n right: -11px;\n margin-top: -11px;\n border-right-width: 0;\n border-left-color: #999;\n border-left-color: rgba(0, 0, 0, .25);\n}\n.popover.left > .arrow:after {\n right: 1px;\n bottom: -10px;\n content: \" \";\n border-right-width: 0;\n border-left-color: #fff;\n}\n.carousel {\n position: relative;\n}\n.carousel-inner {\n position: relative;\n width: 100%;\n overflow: hidden;\n}\n.carousel-inner > .item {\n position: relative;\n display: none;\n -webkit-transition: .6s ease-in-out left;\n -o-transition: .6s ease-in-out left;\n transition: .6s ease-in-out left;\n}\n.carousel-inner > .item > img,\n.carousel-inner > .item > a > img {\n line-height: 1;\n}\n@media all and (transform-3d), (-webkit-transform-3d) {\n .carousel-inner > .item {\n -webkit-transition: -webkit-transform .6s ease-in-out;\n -o-transition: -o-transform .6s ease-in-out;\n transition: transform .6s ease-in-out;\n\n -webkit-backface-visibility: hidden;\n backface-visibility: hidden;\n -webkit-perspective: 1000px;\n perspective: 1000px;\n }\n .carousel-inner > .item.next,\n .carousel-inner > .item.active.right {\n left: 0;\n -webkit-transform: translate3d(100%, 0, 0);\n transform: translate3d(100%, 0, 0);\n }\n .carousel-inner > .item.prev,\n .carousel-inner > .item.active.left {\n left: 0;\n -webkit-transform: translate3d(-100%, 0, 0);\n transform: translate3d(-100%, 0, 0);\n }\n .carousel-inner > .item.next.left,\n .carousel-inner > .item.prev.right,\n .carousel-inner > .item.active {\n left: 0;\n -webkit-transform: translate3d(0, 0, 0);\n transform: translate3d(0, 0, 0);\n }\n}\n.carousel-inner > .active,\n.carousel-inner > .next,\n.carousel-inner > .prev {\n display: block;\n}\n.carousel-inner > .active {\n left: 0;\n}\n.carousel-inner > .next,\n.carousel-inner > .prev {\n position: absolute;\n top: 0;\n width: 100%;\n}\n.carousel-inner > .next {\n left: 100%;\n}\n.carousel-inner > .prev {\n left: -100%;\n}\n.carousel-inner > .next.left,\n.carousel-inner > .prev.right {\n left: 0;\n}\n.carousel-inner > .active.left {\n left: -100%;\n}\n.carousel-inner > .active.right {\n left: 100%;\n}\n.carousel-control {\n position: absolute;\n top: 0;\n bottom: 0;\n left: 0;\n width: 15%;\n font-size: 20px;\n color: #fff;\n text-align: center;\n text-shadow: 0 1px 2px rgba(0, 0, 0, .6);\n background-color: rgba(0, 0, 0, 0);\n filter: alpha(opacity=50);\n opacity: .5;\n}\n.carousel-control.left {\n background-image: -webkit-linear-gradient(left, rgba(0, 0, 0, .5) 0%, rgba(0, 0, 0, .0001) 100%);\n background-image: -o-linear-gradient(left, rgba(0, 0, 0, .5) 0%, rgba(0, 0, 0, .0001) 100%);\n background-image: -webkit-gradient(linear, left top, right top, from(rgba(0, 0, 0, .5)), to(rgba(0, 0, 0, .0001)));\n background-image: linear-gradient(to right, rgba(0, 0, 0, .5) 0%, rgba(0, 0, 0, .0001) 100%);\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#80000000', endColorstr='#00000000', GradientType=1);\n background-repeat: repeat-x;\n}\n.carousel-control.right {\n right: 0;\n left: auto;\n background-image: -webkit-linear-gradient(left, rgba(0, 0, 0, .0001) 0%, rgba(0, 0, 0, .5) 100%);\n background-image: -o-linear-gradient(left, rgba(0, 0, 0, .0001) 0%, rgba(0, 0, 0, .5) 100%);\n background-image: -webkit-gradient(linear, left top, right top, from(rgba(0, 0, 0, .0001)), to(rgba(0, 0, 0, .5)));\n background-image: linear-gradient(to right, rgba(0, 0, 0, .0001) 0%, rgba(0, 0, 0, .5) 100%);\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#00000000', endColorstr='#80000000', GradientType=1);\n background-repeat: repeat-x;\n}\n.carousel-control:hover,\n.carousel-control:focus {\n color: #fff;\n text-decoration: none;\n filter: alpha(opacity=90);\n outline: 0;\n opacity: .9;\n}\n.carousel-control .icon-prev,\n.carousel-control .icon-next,\n.carousel-control .glyphicon-chevron-left,\n.carousel-control .glyphicon-chevron-right {\n position: absolute;\n top: 50%;\n z-index: 5;\n display: inline-block;\n margin-top: -10px;\n}\n.carousel-control .icon-prev,\n.carousel-control .glyphicon-chevron-left {\n left: 50%;\n margin-left: -10px;\n}\n.carousel-control .icon-next,\n.carousel-control .glyphicon-chevron-right {\n right: 50%;\n margin-right: -10px;\n}\n.carousel-control .icon-prev,\n.carousel-control .icon-next {\n width: 20px;\n height: 20px;\n font-family: serif;\n line-height: 1;\n}\n.carousel-control .icon-prev:before {\n content: '\\2039';\n}\n.carousel-control .icon-next:before {\n content: '\\203a';\n}\n.carousel-indicators {\n position: absolute;\n bottom: 10px;\n left: 50%;\n z-index: 15;\n width: 60%;\n padding-left: 0;\n margin-left: -30%;\n text-align: center;\n list-style: none;\n}\n.carousel-indicators li {\n display: inline-block;\n width: 10px;\n height: 10px;\n margin: 1px;\n text-indent: -999px;\n cursor: pointer;\n background-color: #000 \\9;\n background-color: rgba(0, 0, 0, 0);\n border: 1px solid #fff;\n border-radius: 10px;\n}\n.carousel-indicators .active {\n width: 12px;\n height: 12px;\n margin: 0;\n background-color: #fff;\n}\n.carousel-caption {\n position: absolute;\n right: 15%;\n bottom: 20px;\n left: 15%;\n z-index: 10;\n padding-top: 20px;\n padding-bottom: 20px;\n color: #fff;\n text-align: center;\n text-shadow: 0 1px 2px rgba(0, 0, 0, .6);\n}\n.carousel-caption .btn {\n text-shadow: none;\n}\n@media screen and (min-width: 768px) {\n .carousel-control .glyphicon-chevron-left,\n .carousel-control .glyphicon-chevron-right,\n .carousel-control .icon-prev,\n .carousel-control .icon-next {\n width: 30px;\n height: 30px;\n margin-top: -10px;\n font-size: 30px;\n }\n .carousel-control .glyphicon-chevron-left,\n .carousel-control .icon-prev {\n margin-left: -10px;\n }\n .carousel-control .glyphicon-chevron-right,\n .carousel-control .icon-next {\n margin-right: -10px;\n }\n .carousel-caption {\n right: 20%;\n left: 20%;\n padding-bottom: 30px;\n }\n .carousel-indicators {\n bottom: 20px;\n }\n}\n.clearfix:before,\n.clearfix:after,\n.dl-horizontal dd:before,\n.dl-horizontal dd:after,\n.container:before,\n.container:after,\n.container-fluid:before,\n.container-fluid:after,\n.row:before,\n.row:after,\n.form-horizontal .form-group:before,\n.form-horizontal .form-group:after,\n.btn-toolbar:before,\n.btn-toolbar:after,\n.btn-group-vertical > .btn-group:before,\n.btn-group-vertical > .btn-group:after,\n.nav:before,\n.nav:after,\n.navbar:before,\n.navbar:after,\n.navbar-header:before,\n.navbar-header:after,\n.navbar-collapse:before,\n.navbar-collapse:after,\n.pager:before,\n.pager:after,\n.panel-body:before,\n.panel-body:after,\n.modal-header:before,\n.modal-header:after,\n.modal-footer:before,\n.modal-footer:after {\n display: table;\n content: \" \";\n}\n.clearfix:after,\n.dl-horizontal dd:after,\n.container:after,\n.container-fluid:after,\n.row:after,\n.form-horizontal .form-group:after,\n.btn-toolbar:after,\n.btn-group-vertical > .btn-group:after,\n.nav:after,\n.navbar:after,\n.navbar-header:after,\n.navbar-collapse:after,\n.pager:after,\n.panel-body:after,\n.modal-header:after,\n.modal-footer:after {\n clear: both;\n}\n.center-block {\n display: block;\n margin-right: auto;\n margin-left: auto;\n}\n.pull-right {\n float: right !important;\n}\n.pull-left {\n float: left !important;\n}\n.hide {\n display: none !important;\n}\n.show {\n display: block !important;\n}\n.invisible {\n visibility: hidden;\n}\n.text-hide {\n font: 0/0 a;\n color: transparent;\n text-shadow: none;\n background-color: transparent;\n border: 0;\n}\n.hidden {\n display: none !important;\n}\n.affix {\n position: fixed;\n}\n@-ms-viewport {\n width: device-width;\n}\n.visible-xs,\n.visible-sm,\n.visible-md,\n.visible-lg {\n display: none !important;\n}\n.visible-xs-block,\n.visible-xs-inline,\n.visible-xs-inline-block,\n.visible-sm-block,\n.visible-sm-inline,\n.visible-sm-inline-block,\n.visible-md-block,\n.visible-md-inline,\n.visible-md-inline-block,\n.visible-lg-block,\n.visible-lg-inline,\n.visible-lg-inline-block {\n display: none !important;\n}\n@media (max-width: 767px) {\n .visible-xs {\n display: block !important;\n }\n table.visible-xs {\n display: table !important;\n }\n tr.visible-xs {\n display: table-row !important;\n }\n th.visible-xs,\n td.visible-xs {\n display: table-cell !important;\n }\n}\n@media (max-width: 767px) {\n .visible-xs-block {\n display: block !important;\n }\n}\n@media (max-width: 767px) {\n .visible-xs-inline {\n display: inline !important;\n }\n}\n@media (max-width: 767px) {\n .visible-xs-inline-block {\n display: inline-block !important;\n }\n}\n@media (min-width: 768px) and (max-width: 991px) {\n .visible-sm {\n display: block !important;\n }\n table.visible-sm {\n display: table !important;\n }\n tr.visible-sm {\n display: table-row !important;\n }\n th.visible-sm,\n td.visible-sm {\n display: table-cell !important;\n }\n}\n@media (min-width: 768px) and (max-width: 991px) {\n .visible-sm-block {\n display: block !important;\n }\n}\n@media (min-width: 768px) and (max-width: 991px) {\n .visible-sm-inline {\n display: inline !important;\n }\n}\n@media (min-width: 768px) and (max-width: 991px) {\n .visible-sm-inline-block {\n display: inline-block !important;\n }\n}\n@media (min-width: 992px) and (max-width: 1199px) {\n .visible-md {\n display: block !important;\n }\n table.visible-md {\n display: table !important;\n }\n tr.visible-md {\n display: table-row !important;\n }\n th.visible-md,\n td.visible-md {\n display: table-cell !important;\n }\n}\n@media (min-width: 992px) and (max-width: 1199px) {\n .visible-md-block {\n display: block !important;\n }\n}\n@media (min-width: 992px) and (max-width: 1199px) {\n .visible-md-inline {\n display: inline !important;\n }\n}\n@media (min-width: 992px) and (max-width: 1199px) {\n .visible-md-inline-block {\n display: inline-block !important;\n }\n}\n@media (min-width: 1200px) {\n .visible-lg {\n display: block !important;\n }\n table.visible-lg {\n display: table !important;\n }\n tr.visible-lg {\n display: table-row !important;\n }\n th.visible-lg,\n td.visible-lg {\n display: table-cell !important;\n }\n}\n@media (min-width: 1200px) {\n .visible-lg-block {\n display: block !important;\n }\n}\n@media (min-width: 1200px) {\n .visible-lg-inline {\n display: inline !important;\n }\n}\n@media (min-width: 1200px) {\n .visible-lg-inline-block {\n display: inline-block !important;\n }\n}\n@media (max-width: 767px) {\n .hidden-xs {\n display: none !important;\n }\n}\n@media (min-width: 768px) and (max-width: 991px) {\n .hidden-sm {\n display: none !important;\n }\n}\n@media (min-width: 992px) and (max-width: 1199px) {\n .hidden-md {\n display: none !important;\n }\n}\n@media (min-width: 1200px) {\n .hidden-lg {\n display: none !important;\n }\n}\n.visible-print {\n display: none !important;\n}\n@media print {\n .visible-print {\n display: block !important;\n }\n table.visible-print {\n display: table !important;\n }\n tr.visible-print {\n display: table-row !important;\n }\n th.visible-print,\n td.visible-print {\n display: table-cell !important;\n }\n}\n.visible-print-block {\n display: none !important;\n}\n@media print {\n .visible-print-block {\n display: block !important;\n }\n}\n.visible-print-inline {\n display: none !important;\n}\n@media print {\n .visible-print-inline {\n display: inline !important;\n }\n}\n.visible-print-inline-block {\n display: none !important;\n}\n@media print {\n .visible-print-inline-block {\n display: inline-block !important;\n }\n}\n@media print {\n .hidden-print {\n display: none !important;\n }\n}\n/*# sourceMappingURL=bootstrap.css.map */\n","//\n// Glyphicons for Bootstrap\n//\n// Since icons are fonts, they can be placed anywhere text is placed and are\n// thus automatically sized to match the surrounding child. To use, create an\n// inline element with the appropriate classes, like so:\n//\n// <a href=\"#\"><span class=\"glyphicon glyphicon-star\"></span> Star</a>\n\n// Import the fonts\n@font-face {\n font-family: 'Glyphicons Halflings';\n src: url('@{icon-font-path}@{icon-font-name}.eot');\n src: url('@{icon-font-path}@{icon-font-name}.eot?#iefix') format('embedded-opentype'),\n url('@{icon-font-path}@{icon-font-name}.woff2') format('woff2'),\n url('@{icon-font-path}@{icon-font-name}.woff') format('woff'),\n url('@{icon-font-path}@{icon-font-name}.ttf') format('truetype'),\n url('@{icon-font-path}@{icon-font-name}.svg#@{icon-font-svg-id}') format('svg');\n}\n\n// Catchall baseclass\n.glyphicon {\n position: relative;\n top: 1px;\n display: inline-block;\n font-family: 'Glyphicons Halflings';\n font-style: normal;\n font-weight: normal;\n line-height: 1;\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale;\n}\n\n// Individual icons\n.glyphicon-asterisk { &:before { content: \"\\002a\"; } }\n.glyphicon-plus { &:before { content: \"\\002b\"; } }\n.glyphicon-euro,\n.glyphicon-eur { &:before { content: \"\\20ac\"; } }\n.glyphicon-minus { &:before { content: \"\\2212\"; } }\n.glyphicon-cloud { &:before { content: \"\\2601\"; } }\n.glyphicon-envelope { &:before { content: \"\\2709\"; } }\n.glyphicon-pencil { &:before { content: \"\\270f\"; } }\n.glyphicon-glass { &:before { content: \"\\e001\"; } }\n.glyphicon-music { &:before { content: \"\\e002\"; } }\n.glyphicon-search { &:before { content: \"\\e003\"; } }\n.glyphicon-heart { &:before { content: \"\\e005\"; } }\n.glyphicon-star { &:before { content: \"\\e006\"; } }\n.glyphicon-star-empty { &:before { content: \"\\e007\"; } }\n.glyphicon-user { &:before { content: \"\\e008\"; } }\n.glyphicon-film { &:before { content: \"\\e009\"; } }\n.glyphicon-th-large { &:before { content: \"\\e010\"; } }\n.glyphicon-th { &:before { content: \"\\e011\"; } }\n.glyphicon-th-list { &:before { content: \"\\e012\"; } }\n.glyphicon-ok { &:before { content: \"\\e013\"; } }\n.glyphicon-remove { &:before { content: \"\\e014\"; } }\n.glyphicon-zoom-in { &:before { content: \"\\e015\"; } }\n.glyphicon-zoom-out { &:before { content: \"\\e016\"; } }\n.glyphicon-off { &:before { content: \"\\e017\"; } }\n.glyphicon-signal { &:before { content: \"\\e018\"; } }\n.glyphicon-cog { &:before { content: \"\\e019\"; } }\n.glyphicon-trash { &:before { content: \"\\e020\"; } }\n.glyphicon-home { &:before { content: \"\\e021\"; } }\n.glyphicon-file { &:before { content: \"\\e022\"; } }\n.glyphicon-time { &:before { content: \"\\e023\"; } }\n.glyphicon-road { &:before { content: \"\\e024\"; } }\n.glyphicon-download-alt { &:before { content: \"\\e025\"; } }\n.glyphicon-download { &:before { content: \"\\e026\"; } }\n.glyphicon-upload { &:before { content: \"\\e027\"; } }\n.glyphicon-inbox { &:before { content: \"\\e028\"; } }\n.glyphicon-play-circle { &:before { content: \"\\e029\"; } }\n.glyphicon-repeat { &:before { content: \"\\e030\"; } }\n.glyphicon-refresh { &:before { content: \"\\e031\"; } }\n.glyphicon-list-alt { &:before { content: \"\\e032\"; } }\n.glyphicon-lock { &:before { content: \"\\e033\"; } }\n.glyphicon-flag { &:before { content: \"\\e034\"; } }\n.glyphicon-headphones { &:before { content: \"\\e035\"; } }\n.glyphicon-volume-off { &:before { content: \"\\e036\"; } }\n.glyphicon-volume-down { &:before { content: \"\\e037\"; } }\n.glyphicon-volume-up { &:before { content: \"\\e038\"; } }\n.glyphicon-qrcode { &:before { content: \"\\e039\"; } }\n.glyphicon-barcode { &:before { content: \"\\e040\"; } }\n.glyphicon-tag { &:before { content: \"\\e041\"; } }\n.glyphicon-tags { &:before { content: \"\\e042\"; } }\n.glyphicon-book { &:before { content: \"\\e043\"; } }\n.glyphicon-bookmark { &:before { content: \"\\e044\"; } }\n.glyphicon-print { &:before { content: \"\\e045\"; } }\n.glyphicon-camera { &:before { content: \"\\e046\"; } }\n.glyphicon-font { &:before { content: \"\\e047\"; } }\n.glyphicon-bold { &:before { content: \"\\e048\"; } }\n.glyphicon-italic { &:before { content: \"\\e049\"; } }\n.glyphicon-text-height { &:before { content: \"\\e050\"; } }\n.glyphicon-text-width { &:before { content: \"\\e051\"; } }\n.glyphicon-align-left { &:before { content: \"\\e052\"; } }\n.glyphicon-align-center { &:before { content: \"\\e053\"; } }\n.glyphicon-align-right { &:before { content: \"\\e054\"; } }\n.glyphicon-align-justify { &:before { content: \"\\e055\"; } }\n.glyphicon-list { &:before { content: \"\\e056\"; } }\n.glyphicon-indent-left { &:before { content: \"\\e057\"; } }\n.glyphicon-indent-right { &:before { content: \"\\e058\"; } }\n.glyphicon-facetime-video { &:before { content: \"\\e059\"; } }\n.glyphicon-picture { &:before { content: \"\\e060\"; } }\n.glyphicon-map-marker { &:before { content: \"\\e062\"; } }\n.glyphicon-adjust { &:before { content: \"\\e063\"; } }\n.glyphicon-tint { &:before { content: \"\\e064\"; } }\n.glyphicon-edit { &:before { content: \"\\e065\"; } }\n.glyphicon-share { &:before { content: \"\\e066\"; } }\n.glyphicon-check { &:before { content: \"\\e067\"; } }\n.glyphicon-move { &:before { content: \"\\e068\"; } }\n.glyphicon-step-backward { &:before { content: \"\\e069\"; } }\n.glyphicon-fast-backward { &:before { content: \"\\e070\"; } }\n.glyphicon-backward { &:before { content: \"\\e071\"; } }\n.glyphicon-play { &:before { content: \"\\e072\"; } }\n.glyphicon-pause { &:before { content: \"\\e073\"; } }\n.glyphicon-stop { &:before { content: \"\\e074\"; } }\n.glyphicon-forward { &:before { content: \"\\e075\"; } }\n.glyphicon-fast-forward { &:before { content: \"\\e076\"; } }\n.glyphicon-step-forward { &:before { content: \"\\e077\"; } }\n.glyphicon-eject { &:before { content: \"\\e078\"; } }\n.glyphicon-chevron-left { &:before { content: \"\\e079\"; } }\n.glyphicon-chevron-right { &:before { content: \"\\e080\"; } }\n.glyphicon-plus-sign { &:before { content: \"\\e081\"; } }\n.glyphicon-minus-sign { &:before { content: \"\\e082\"; } }\n.glyphicon-remove-sign { &:before { content: \"\\e083\"; } }\n.glyphicon-ok-sign { &:before { content: \"\\e084\"; } }\n.glyphicon-question-sign { &:before { content: \"\\e085\"; } }\n.glyphicon-info-sign { &:before { content: \"\\e086\"; } }\n.glyphicon-screenshot { &:before { content: \"\\e087\"; } }\n.glyphicon-remove-circle { &:before { content: \"\\e088\"; } }\n.glyphicon-ok-circle { &:before { content: \"\\e089\"; } }\n.glyphicon-ban-circle { &:before { content: \"\\e090\"; } }\n.glyphicon-arrow-left { &:before { content: \"\\e091\"; } }\n.glyphicon-arrow-right { &:before { content: \"\\e092\"; } }\n.glyphicon-arrow-up { &:before { content: \"\\e093\"; } }\n.glyphicon-arrow-down { &:before { content: \"\\e094\"; } }\n.glyphicon-share-alt { &:before { content: \"\\e095\"; } }\n.glyphicon-resize-full { &:before { content: \"\\e096\"; } }\n.glyphicon-resize-small { &:before { content: \"\\e097\"; } }\n.glyphicon-exclamation-sign { &:before { content: \"\\e101\"; } }\n.glyphicon-gift { &:before { content: \"\\e102\"; } }\n.glyphicon-leaf { &:before { content: \"\\e103\"; } }\n.glyphicon-fire { &:before { content: \"\\e104\"; } }\n.glyphicon-eye-open { &:before { content: \"\\e105\"; } }\n.glyphicon-eye-close { &:before { content: \"\\e106\"; } }\n.glyphicon-warning-sign { &:before { content: \"\\e107\"; } }\n.glyphicon-plane { &:before { content: \"\\e108\"; } }\n.glyphicon-calendar { &:before { content: \"\\e109\"; } }\n.glyphicon-random { &:before { content: \"\\e110\"; } }\n.glyphicon-comment { &:before { content: \"\\e111\"; } }\n.glyphicon-magnet { &:before { content: \"\\e112\"; } }\n.glyphicon-chevron-up { &:before { content: \"\\e113\"; } }\n.glyphicon-chevron-down { &:before { content: \"\\e114\"; } }\n.glyphicon-retweet { &:before { content: \"\\e115\"; } }\n.glyphicon-shopping-cart { &:before { content: \"\\e116\"; } }\n.glyphicon-folder-close { &:before { content: \"\\e117\"; } }\n.glyphicon-folder-open { &:before { content: \"\\e118\"; } }\n.glyphicon-resize-vertical { &:before { content: \"\\e119\"; } }\n.glyphicon-resize-horizontal { &:before { content: \"\\e120\"; } }\n.glyphicon-hdd { &:before { content: \"\\e121\"; } }\n.glyphicon-bullhorn { &:before { content: \"\\e122\"; } }\n.glyphicon-bell { &:before { content: \"\\e123\"; } }\n.glyphicon-certificate { &:before { content: \"\\e124\"; } }\n.glyphicon-thumbs-up { &:before { content: \"\\e125\"; } }\n.glyphicon-thumbs-down { &:before { content: \"\\e126\"; } }\n.glyphicon-hand-right { &:before { content: \"\\e127\"; } }\n.glyphicon-hand-left { &:before { content: \"\\e128\"; } }\n.glyphicon-hand-up { &:before { content: \"\\e129\"; } }\n.glyphicon-hand-down { &:before { content: \"\\e130\"; } }\n.glyphicon-circle-arrow-right { &:before { content: \"\\e131\"; } }\n.glyphicon-circle-arrow-left { &:before { content: \"\\e132\"; } }\n.glyphicon-circle-arrow-up { &:before { content: \"\\e133\"; } }\n.glyphicon-circle-arrow-down { &:before { content: \"\\e134\"; } }\n.glyphicon-globe { &:before { content: \"\\e135\"; } }\n.glyphicon-wrench { &:before { content: \"\\e136\"; } }\n.glyphicon-tasks { &:before { content: \"\\e137\"; } }\n.glyphicon-filter { &:before { content: \"\\e138\"; } }\n.glyphicon-briefcase { &:before { content: \"\\e139\"; } }\n.glyphicon-fullscreen { &:before { content: \"\\e140\"; } }\n.glyphicon-dashboard { &:before { content: \"\\e141\"; } }\n.glyphicon-paperclip { &:before { content: \"\\e142\"; } }\n.glyphicon-heart-empty { &:before { content: \"\\e143\"; } }\n.glyphicon-link { &:before { content: \"\\e144\"; } }\n.glyphicon-phone { &:before { content: \"\\e145\"; } }\n.glyphicon-pushpin { &:before { content: \"\\e146\"; } }\n.glyphicon-usd { &:before { content: \"\\e148\"; } }\n.glyphicon-gbp { &:before { content: \"\\e149\"; } }\n.glyphicon-sort { &:before { content: \"\\e150\"; } }\n.glyphicon-sort-by-alphabet { &:before { content: \"\\e151\"; } }\n.glyphicon-sort-by-alphabet-alt { &:before { content: \"\\e152\"; } }\n.glyphicon-sort-by-order { &:before { content: \"\\e153\"; } }\n.glyphicon-sort-by-order-alt { &:before { content: \"\\e154\"; } }\n.glyphicon-sort-by-attributes { &:before { content: \"\\e155\"; } }\n.glyphicon-sort-by-attributes-alt { &:before { content: \"\\e156\"; } }\n.glyphicon-unchecked { &:before { content: \"\\e157\"; } }\n.glyphicon-expand { &:before { content: \"\\e158\"; } }\n.glyphicon-collapse-down { &:before { content: \"\\e159\"; } }\n.glyphicon-collapse-up { &:before { content: \"\\e160\"; } }\n.glyphicon-log-in { &:before { content: \"\\e161\"; } }\n.glyphicon-flash { &:before { content: \"\\e162\"; } }\n.glyphicon-log-out { &:before { content: \"\\e163\"; } }\n.glyphicon-new-window { &:before { content: \"\\e164\"; } }\n.glyphicon-record { &:before { content: \"\\e165\"; } }\n.glyphicon-save { &:before { content: \"\\e166\"; } }\n.glyphicon-open { &:before { content: \"\\e167\"; } }\n.glyphicon-saved { &:before { content: \"\\e168\"; } }\n.glyphicon-import { &:before { content: \"\\e169\"; } }\n.glyphicon-export { &:before { content: \"\\e170\"; } }\n.glyphicon-send { &:before { content: \"\\e171\"; } }\n.glyphicon-floppy-disk { &:before { content: \"\\e172\"; } }\n.glyphicon-floppy-saved { &:before { content: \"\\e173\"; } }\n.glyphicon-floppy-remove { &:before { content: \"\\e174\"; } }\n.glyphicon-floppy-save { &:before { content: \"\\e175\"; } }\n.glyphicon-floppy-open { &:before { content: \"\\e176\"; } }\n.glyphicon-credit-card { &:before { content: \"\\e177\"; } }\n.glyphicon-transfer { &:before { content: \"\\e178\"; } }\n.glyphicon-cutlery { &:before { content: \"\\e179\"; } }\n.glyphicon-header { &:before { content: \"\\e180\"; } }\n.glyphicon-compressed { &:before { content: \"\\e181\"; } }\n.glyphicon-earphone { &:before { content: \"\\e182\"; } }\n.glyphicon-phone-alt { &:before { content: \"\\e183\"; } }\n.glyphicon-tower { &:before { content: \"\\e184\"; } }\n.glyphicon-stats { &:before { content: \"\\e185\"; } }\n.glyphicon-sd-video { &:before { content: \"\\e186\"; } }\n.glyphicon-hd-video { &:before { content: \"\\e187\"; } }\n.glyphicon-subtitles { &:before { content: \"\\e188\"; } }\n.glyphicon-sound-stereo { &:before { content: \"\\e189\"; } }\n.glyphicon-sound-dolby { &:before { content: \"\\e190\"; } }\n.glyphicon-sound-5-1 { &:before { content: \"\\e191\"; } }\n.glyphicon-sound-6-1 { &:before { content: \"\\e192\"; } }\n.glyphicon-sound-7-1 { &:before { content: \"\\e193\"; } }\n.glyphicon-copyright-mark { &:before { content: \"\\e194\"; } }\n.glyphicon-registration-mark { &:before { content: \"\\e195\"; } }\n.glyphicon-cloud-download { &:before { content: \"\\e197\"; } }\n.glyphicon-cloud-upload { &:before { content: \"\\e198\"; } }\n.glyphicon-tree-conifer { &:before { content: \"\\e199\"; } }\n.glyphicon-tree-deciduous { &:before { content: \"\\e200\"; } }\n.glyphicon-cd { &:before { content: \"\\e201\"; } }\n.glyphicon-save-file { &:before { content: \"\\e202\"; } }\n.glyphicon-open-file { &:before { content: \"\\e203\"; } }\n.glyphicon-level-up { &:before { content: \"\\e204\"; } }\n.glyphicon-copy { &:before { content: \"\\e205\"; } }\n.glyphicon-paste { &:before { content: \"\\e206\"; } }\n// The following 2 Glyphicons are omitted for the time being because\n// they currently use Unicode codepoints that are outside the\n// Basic Multilingual Plane (BMP). Older buggy versions of WebKit can't handle\n// non-BMP codepoints in CSS string escapes, and thus can't display these two icons.\n// Notably, the bug affects some older versions of the Android Browser.\n// More info: https://github.com/twbs/bootstrap/issues/10106\n// .glyphicon-door { &:before { content: \"\\1f6aa\"; } }\n// .glyphicon-key { &:before { content: \"\\1f511\"; } }\n.glyphicon-alert { &:before { content: \"\\e209\"; } }\n.glyphicon-equalizer { &:before { content: \"\\e210\"; } }\n.glyphicon-king { &:before { content: \"\\e211\"; } }\n.glyphicon-queen { &:before { content: \"\\e212\"; } }\n.glyphicon-pawn { &:before { content: \"\\e213\"; } }\n.glyphicon-bishop { &:before { content: \"\\e214\"; } }\n.glyphicon-knight { &:before { content: \"\\e215\"; } }\n.glyphicon-baby-formula { &:before { content: \"\\e216\"; } }\n.glyphicon-tent { &:before { content: \"\\26fa\"; } }\n.glyphicon-blackboard { &:before { content: \"\\e218\"; } }\n.glyphicon-bed { &:before { content: \"\\e219\"; } }\n.glyphicon-apple { &:before { content: \"\\f8ff\"; } }\n.glyphicon-erase { &:before { content: \"\\e221\"; } }\n.glyphicon-hourglass { &:before { content: \"\\231b\"; } }\n.glyphicon-lamp { &:before { content: \"\\e223\"; } }\n.glyphicon-duplicate { &:before { content: \"\\e224\"; } }\n.glyphicon-piggy-bank { &:before { content: \"\\e225\"; } }\n.glyphicon-scissors { &:before { content: \"\\e226\"; } }\n.glyphicon-bitcoin { &:before { content: \"\\e227\"; } }\n.glyphicon-btc { &:before { content: \"\\e227\"; } }\n.glyphicon-xbt { &:before { content: \"\\e227\"; } }\n.glyphicon-yen { &:before { content: \"\\00a5\"; } }\n.glyphicon-jpy { &:before { content: \"\\00a5\"; } }\n.glyphicon-ruble { &:before { content: \"\\20bd\"; } }\n.glyphicon-rub { &:before { content: \"\\20bd\"; } }\n.glyphicon-scale { &:before { content: \"\\e230\"; } }\n.glyphicon-ice-lolly { &:before { content: \"\\e231\"; } }\n.glyphicon-ice-lolly-tasted { &:before { content: \"\\e232\"; } }\n.glyphicon-education { &:before { content: \"\\e233\"; } }\n.glyphicon-option-horizontal { &:before { content: \"\\e234\"; } }\n.glyphicon-option-vertical { &:before { content: \"\\e235\"; } }\n.glyphicon-menu-hamburger { &:before { content: \"\\e236\"; } }\n.glyphicon-modal-window { &:before { content: \"\\e237\"; } }\n.glyphicon-oil { &:before { content: \"\\e238\"; } }\n.glyphicon-grain { &:before { content: \"\\e239\"; } }\n.glyphicon-sunglasses { &:before { content: \"\\e240\"; } }\n.glyphicon-text-size { &:before { content: \"\\e241\"; } }\n.glyphicon-text-color { &:before { content: \"\\e242\"; } }\n.glyphicon-text-background { &:before { content: \"\\e243\"; } }\n.glyphicon-object-align-top { &:before { content: \"\\e244\"; } }\n.glyphicon-object-align-bottom { &:before { content: \"\\e245\"; } }\n.glyphicon-object-align-horizontal{ &:before { content: \"\\e246\"; } }\n.glyphicon-object-align-left { &:before { content: \"\\e247\"; } }\n.glyphicon-object-align-vertical { &:before { content: \"\\e248\"; } }\n.glyphicon-object-align-right { &:before { content: \"\\e249\"; } }\n.glyphicon-triangle-right { &:before { content: \"\\e250\"; } }\n.glyphicon-triangle-left { &:before { content: \"\\e251\"; } }\n.glyphicon-triangle-bottom { &:before { content: \"\\e252\"; } }\n.glyphicon-triangle-top { &:before { content: \"\\e253\"; } }\n.glyphicon-console { &:before { content: \"\\e254\"; } }\n.glyphicon-superscript { &:before { content: \"\\e255\"; } }\n.glyphicon-subscript { &:before { content: \"\\e256\"; } }\n.glyphicon-menu-left { &:before { content: \"\\e257\"; } }\n.glyphicon-menu-right { &:before { content: \"\\e258\"; } }\n.glyphicon-menu-down { &:before { content: \"\\e259\"; } }\n.glyphicon-menu-up { &:before { content: \"\\e260\"; } }\n","//\n// Scaffolding\n// --------------------------------------------------\n\n\n// Reset the box-sizing\n//\n// Heads up! This reset may cause conflicts with some third-party widgets.\n// For recommendations on resolving such conflicts, see\n// http://getbootstrap.com/getting-started/#third-box-sizing\n* {\n .box-sizing(border-box);\n}\n*:before,\n*:after {\n .box-sizing(border-box);\n}\n\n\n// Body reset\n\nhtml {\n font-size: 10px;\n -webkit-tap-highlight-color: rgba(0,0,0,0);\n}\n\nbody {\n font-family: @font-family-base;\n font-size: @font-size-base;\n line-height: @line-height-base;\n color: @text-color;\n background-color: @body-bg;\n}\n\n// Reset fonts for relevant elements\ninput,\nbutton,\nselect,\ntextarea {\n font-family: inherit;\n font-size: inherit;\n line-height: inherit;\n}\n\n\n// Links\n\na {\n color: @link-color;\n text-decoration: none;\n\n &:hover,\n &:focus {\n color: @link-hover-color;\n text-decoration: @link-hover-decoration;\n }\n\n &:focus {\n .tab-focus();\n }\n}\n\n\n// Figures\n//\n// We reset this here because previously Normalize had no `figure` margins. This\n// ensures we don't break anyone's use of the element.\n\nfigure {\n margin: 0;\n}\n\n\n// Images\n\nimg {\n vertical-align: middle;\n}\n\n// Responsive images (ensure images don't scale beyond their parents)\n.img-responsive {\n .img-responsive();\n}\n\n// Rounded corners\n.img-rounded {\n border-radius: @border-radius-large;\n}\n\n// Image thumbnails\n//\n// Heads up! This is mixin-ed into thumbnails.less for `.thumbnail`.\n.img-thumbnail {\n padding: @thumbnail-padding;\n line-height: @line-height-base;\n background-color: @thumbnail-bg;\n border: 1px solid @thumbnail-border;\n border-radius: @thumbnail-border-radius;\n .transition(all .2s ease-in-out);\n\n // Keep them at most 100% wide\n .img-responsive(inline-block);\n}\n\n// Perfect circle\n.img-circle {\n border-radius: 50%; // set radius in percents\n}\n\n\n// Horizontal rules\n\nhr {\n margin-top: @line-height-computed;\n margin-bottom: @line-height-computed;\n border: 0;\n border-top: 1px solid @hr-border;\n}\n\n\n// Only display content to screen readers\n//\n// See: http://a11yproject.com/posts/how-to-hide-content\n\n.sr-only {\n position: absolute;\n width: 1px;\n height: 1px;\n margin: -1px;\n padding: 0;\n overflow: hidden;\n clip: rect(0,0,0,0);\n border: 0;\n}\n\n// Use in conjunction with .sr-only to only display content when it's focused.\n// Useful for \"Skip to main content\" links; see http://www.w3.org/TR/2013/NOTE-WCAG20-TECHS-20130905/G1\n// Credit: HTML5 Boilerplate\n\n.sr-only-focusable {\n &:active,\n &:focus {\n position: static;\n width: auto;\n height: auto;\n margin: 0;\n overflow: visible;\n clip: auto;\n }\n}\n\n\n// iOS \"clickable elements\" fix for role=\"button\"\n//\n// Fixes \"clickability\" issue (and more generally, the firing of events such as focus as well)\n// for traditionally non-focusable elements with role=\"button\"\n// see https://developer.mozilla.org/en-US/docs/Web/Events/click#Safari_Mobile\n\n[role=\"button\"] {\n cursor: pointer;\n}\n","// Vendor Prefixes\n//\n// All vendor mixins are deprecated as of v3.2.0 due to the introduction of\n// Autoprefixer in our Gruntfile. They have been removed in v4.\n\n// - Animations\n// - Backface visibility\n// - Box shadow\n// - Box sizing\n// - Content columns\n// - Hyphens\n// - Placeholder text\n// - Transformations\n// - Transitions\n// - User Select\n\n\n// Animations\n.animation(@animation) {\n -webkit-animation: @animation;\n -o-animation: @animation;\n animation: @animation;\n}\n.animation-name(@name) {\n -webkit-animation-name: @name;\n animation-name: @name;\n}\n.animation-duration(@duration) {\n -webkit-animation-duration: @duration;\n animation-duration: @duration;\n}\n.animation-timing-function(@timing-function) {\n -webkit-animation-timing-function: @timing-function;\n animation-timing-function: @timing-function;\n}\n.animation-delay(@delay) {\n -webkit-animation-delay: @delay;\n animation-delay: @delay;\n}\n.animation-iteration-count(@iteration-count) {\n -webkit-animation-iteration-count: @iteration-count;\n animation-iteration-count: @iteration-count;\n}\n.animation-direction(@direction) {\n -webkit-animation-direction: @direction;\n animation-direction: @direction;\n}\n.animation-fill-mode(@fill-mode) {\n -webkit-animation-fill-mode: @fill-mode;\n animation-fill-mode: @fill-mode;\n}\n\n// Backface visibility\n// Prevent browsers from flickering when using CSS 3D transforms.\n// Default value is `visible`, but can be changed to `hidden`\n\n.backface-visibility(@visibility) {\n -webkit-backface-visibility: @visibility;\n -moz-backface-visibility: @visibility;\n backface-visibility: @visibility;\n}\n\n// Drop shadows\n//\n// Note: Deprecated `.box-shadow()` as of v3.1.0 since all of Bootstrap's\n// supported browsers that have box shadow capabilities now support it.\n\n.box-shadow(@shadow) {\n -webkit-box-shadow: @shadow; // iOS <4.3 & Android <4.1\n box-shadow: @shadow;\n}\n\n// Box sizing\n.box-sizing(@boxmodel) {\n -webkit-box-sizing: @boxmodel;\n -moz-box-sizing: @boxmodel;\n box-sizing: @boxmodel;\n}\n\n// CSS3 Content Columns\n.content-columns(@column-count; @column-gap: @grid-gutter-width) {\n -webkit-column-count: @column-count;\n -moz-column-count: @column-count;\n column-count: @column-count;\n -webkit-column-gap: @column-gap;\n -moz-column-gap: @column-gap;\n column-gap: @column-gap;\n}\n\n// Optional hyphenation\n.hyphens(@mode: auto) {\n word-wrap: break-word;\n -webkit-hyphens: @mode;\n -moz-hyphens: @mode;\n -ms-hyphens: @mode; // IE10+\n -o-hyphens: @mode;\n hyphens: @mode;\n}\n\n// Placeholder text\n.placeholder(@color: @input-color-placeholder) {\n // Firefox\n &::-moz-placeholder {\n color: @color;\n opacity: 1; // Override Firefox's unusual default opacity; see https://github.com/twbs/bootstrap/pull/11526\n }\n &:-ms-input-placeholder { color: @color; } // Internet Explorer 10+\n &::-webkit-input-placeholder { color: @color; } // Safari and Chrome\n}\n\n// Transformations\n.scale(@ratio) {\n -webkit-transform: scale(@ratio);\n -ms-transform: scale(@ratio); // IE9 only\n -o-transform: scale(@ratio);\n transform: scale(@ratio);\n}\n.scale(@ratioX; @ratioY) {\n -webkit-transform: scale(@ratioX, @ratioY);\n -ms-transform: scale(@ratioX, @ratioY); // IE9 only\n -o-transform: scale(@ratioX, @ratioY);\n transform: scale(@ratioX, @ratioY);\n}\n.scaleX(@ratio) {\n -webkit-transform: scaleX(@ratio);\n -ms-transform: scaleX(@ratio); // IE9 only\n -o-transform: scaleX(@ratio);\n transform: scaleX(@ratio);\n}\n.scaleY(@ratio) {\n -webkit-transform: scaleY(@ratio);\n -ms-transform: scaleY(@ratio); // IE9 only\n -o-transform: scaleY(@ratio);\n transform: scaleY(@ratio);\n}\n.skew(@x; @y) {\n -webkit-transform: skewX(@x) skewY(@y);\n -ms-transform: skewX(@x) skewY(@y); // See https://github.com/twbs/bootstrap/issues/4885; IE9+\n -o-transform: skewX(@x) skewY(@y);\n transform: skewX(@x) skewY(@y);\n}\n.translate(@x; @y) {\n -webkit-transform: translate(@x, @y);\n -ms-transform: translate(@x, @y); // IE9 only\n -o-transform: translate(@x, @y);\n transform: translate(@x, @y);\n}\n.translate3d(@x; @y; @z) {\n -webkit-transform: translate3d(@x, @y, @z);\n transform: translate3d(@x, @y, @z);\n}\n.rotate(@degrees) {\n -webkit-transform: rotate(@degrees);\n -ms-transform: rotate(@degrees); // IE9 only\n -o-transform: rotate(@degrees);\n transform: rotate(@degrees);\n}\n.rotateX(@degrees) {\n -webkit-transform: rotateX(@degrees);\n -ms-transform: rotateX(@degrees); // IE9 only\n -o-transform: rotateX(@degrees);\n transform: rotateX(@degrees);\n}\n.rotateY(@degrees) {\n -webkit-transform: rotateY(@degrees);\n -ms-transform: rotateY(@degrees); // IE9 only\n -o-transform: rotateY(@degrees);\n transform: rotateY(@degrees);\n}\n.perspective(@perspective) {\n -webkit-perspective: @perspective;\n -moz-perspective: @perspective;\n perspective: @perspective;\n}\n.perspective-origin(@perspective) {\n -webkit-perspective-origin: @perspective;\n -moz-perspective-origin: @perspective;\n perspective-origin: @perspective;\n}\n.transform-origin(@origin) {\n -webkit-transform-origin: @origin;\n -moz-transform-origin: @origin;\n -ms-transform-origin: @origin; // IE9 only\n transform-origin: @origin;\n}\n\n\n// Transitions\n\n.transition(@transition) {\n -webkit-transition: @transition;\n -o-transition: @transition;\n transition: @transition;\n}\n.transition-property(@transition-property) {\n -webkit-transition-property: @transition-property;\n transition-property: @transition-property;\n}\n.transition-delay(@transition-delay) {\n -webkit-transition-delay: @transition-delay;\n transition-delay: @transition-delay;\n}\n.transition-duration(@transition-duration) {\n -webkit-transition-duration: @transition-duration;\n transition-duration: @transition-duration;\n}\n.transition-timing-function(@timing-function) {\n -webkit-transition-timing-function: @timing-function;\n transition-timing-function: @timing-function;\n}\n.transition-transform(@transition) {\n -webkit-transition: -webkit-transform @transition;\n -moz-transition: -moz-transform @transition;\n -o-transition: -o-transform @transition;\n transition: transform @transition;\n}\n\n\n// User select\n// For selecting text on the page\n\n.user-select(@select) {\n -webkit-user-select: @select;\n -moz-user-select: @select;\n -ms-user-select: @select; // IE10+\n user-select: @select;\n}\n","// WebKit-style focus\n\n.tab-focus() {\n // WebKit-specific. Other browsers will keep their default outline style.\n // (Initially tried to also force default via `outline: initial`,\n // but that seems to erroneously remove the outline in Firefox altogether.)\n outline: 5px auto -webkit-focus-ring-color;\n outline-offset: -2px;\n}\n","// Image Mixins\n// - Responsive image\n// - Retina image\n\n\n// Responsive image\n//\n// Keep images from scaling beyond the width of their parents.\n.img-responsive(@display: block) {\n display: @display;\n max-width: 100%; // Part 1: Set a maximum relative to the parent\n height: auto; // Part 2: Scale the height according to the width, otherwise you get stretching\n}\n\n\n// Retina image\n//\n// Short retina mixin for setting background-image and -size. Note that the\n// spelling of `min--moz-device-pixel-ratio` is intentional.\n.img-retina(@file-1x; @file-2x; @width-1x; @height-1x) {\n background-image: url(\"@{file-1x}\");\n\n @media\n only screen and (-webkit-min-device-pixel-ratio: 2),\n only screen and ( min--moz-device-pixel-ratio: 2),\n only screen and ( -o-min-device-pixel-ratio: 2/1),\n only screen and ( min-device-pixel-ratio: 2),\n only screen and ( min-resolution: 192dpi),\n only screen and ( min-resolution: 2dppx) {\n background-image: url(\"@{file-2x}\");\n background-size: @width-1x @height-1x;\n }\n}\n","//\n// Typography\n// --------------------------------------------------\n\n\n// Headings\n// -------------------------\n\nh1, h2, h3, h4, h5, h6,\n.h1, .h2, .h3, .h4, .h5, .h6 {\n font-family: @headings-font-family;\n font-weight: @headings-font-weight;\n line-height: @headings-line-height;\n color: @headings-color;\n\n small,\n .small {\n font-weight: normal;\n line-height: 1;\n color: @headings-small-color;\n }\n}\n\nh1, .h1,\nh2, .h2,\nh3, .h3 {\n margin-top: @line-height-computed;\n margin-bottom: (@line-height-computed / 2);\n\n small,\n .small {\n font-size: 65%;\n }\n}\nh4, .h4,\nh5, .h5,\nh6, .h6 {\n margin-top: (@line-height-computed / 2);\n margin-bottom: (@line-height-computed / 2);\n\n small,\n .small {\n font-size: 75%;\n }\n}\n\nh1, .h1 { font-size: @font-size-h1; }\nh2, .h2 { font-size: @font-size-h2; }\nh3, .h3 { font-size: @font-size-h3; }\nh4, .h4 { font-size: @font-size-h4; }\nh5, .h5 { font-size: @font-size-h5; }\nh6, .h6 { font-size: @font-size-h6; }\n\n\n// Body text\n// -------------------------\n\np {\n margin: 0 0 (@line-height-computed / 2);\n}\n\n.lead {\n margin-bottom: @line-height-computed;\n font-size: floor((@font-size-base * 1.15));\n font-weight: 300;\n line-height: 1.4;\n\n @media (min-width: @screen-sm-min) {\n font-size: (@font-size-base * 1.5);\n }\n}\n\n\n// Emphasis & misc\n// -------------------------\n\n// Ex: (12px small font / 14px base font) * 100% = about 85%\nsmall,\n.small {\n font-size: floor((100% * @font-size-small / @font-size-base));\n}\n\nmark,\n.mark {\n background-color: @state-warning-bg;\n padding: .2em;\n}\n\n// Alignment\n.text-left { text-align: left; }\n.text-right { text-align: right; }\n.text-center { text-align: center; }\n.text-justify { text-align: justify; }\n.text-nowrap { white-space: nowrap; }\n\n// Transformation\n.text-lowercase { text-transform: lowercase; }\n.text-uppercase { text-transform: uppercase; }\n.text-capitalize { text-transform: capitalize; }\n\n// Contextual colors\n.text-muted {\n color: @text-muted;\n}\n.text-primary {\n .text-emphasis-variant(@brand-primary);\n}\n.text-success {\n .text-emphasis-variant(@state-success-text);\n}\n.text-info {\n .text-emphasis-variant(@state-info-text);\n}\n.text-warning {\n .text-emphasis-variant(@state-warning-text);\n}\n.text-danger {\n .text-emphasis-variant(@state-danger-text);\n}\n\n// Contextual backgrounds\n// For now we'll leave these alongside the text classes until v4 when we can\n// safely shift things around (per SemVer rules).\n.bg-primary {\n // Given the contrast here, this is the only class to have its color inverted\n // automatically.\n color: #fff;\n .bg-variant(@brand-primary);\n}\n.bg-success {\n .bg-variant(@state-success-bg);\n}\n.bg-info {\n .bg-variant(@state-info-bg);\n}\n.bg-warning {\n .bg-variant(@state-warning-bg);\n}\n.bg-danger {\n .bg-variant(@state-danger-bg);\n}\n\n\n// Page header\n// -------------------------\n\n.page-header {\n padding-bottom: ((@line-height-computed / 2) - 1);\n margin: (@line-height-computed * 2) 0 @line-height-computed;\n border-bottom: 1px solid @page-header-border-color;\n}\n\n\n// Lists\n// -------------------------\n\n// Unordered and Ordered lists\nul,\nol {\n margin-top: 0;\n margin-bottom: (@line-height-computed / 2);\n ul,\n ol {\n margin-bottom: 0;\n }\n}\n\n// List options\n\n// Unstyled keeps list items block level, just removes default browser padding and list-style\n.list-unstyled {\n padding-left: 0;\n list-style: none;\n}\n\n// Inline turns list items into inline-block\n.list-inline {\n .list-unstyled();\n margin-left: -5px;\n\n > li {\n display: inline-block;\n padding-left: 5px;\n padding-right: 5px;\n }\n}\n\n// Description Lists\ndl {\n margin-top: 0; // Remove browser default\n margin-bottom: @line-height-computed;\n}\ndt,\ndd {\n line-height: @line-height-base;\n}\ndt {\n font-weight: bold;\n}\ndd {\n margin-left: 0; // Undo browser default\n}\n\n// Horizontal description lists\n//\n// Defaults to being stacked without any of the below styles applied, until the\n// grid breakpoint is reached (default of ~768px).\n\n.dl-horizontal {\n dd {\n &:extend(.clearfix all); // Clear the floated `dt` if an empty `dd` is present\n }\n\n @media (min-width: @dl-horizontal-breakpoint) {\n dt {\n float: left;\n width: (@dl-horizontal-offset - 20);\n clear: left;\n text-align: right;\n .text-overflow();\n }\n dd {\n margin-left: @dl-horizontal-offset;\n }\n }\n}\n\n\n// Misc\n// -------------------------\n\n// Abbreviations and acronyms\nabbr[title],\n// Add data-* attribute to help out our tooltip plugin, per https://github.com/twbs/bootstrap/issues/5257\nabbr[data-original-title] {\n cursor: help;\n border-bottom: 1px dotted @abbr-border-color;\n}\n.initialism {\n font-size: 90%;\n .text-uppercase();\n}\n\n// Blockquotes\nblockquote {\n padding: (@line-height-computed / 2) @line-height-computed;\n margin: 0 0 @line-height-computed;\n font-size: @blockquote-font-size;\n border-left: 5px solid @blockquote-border-color;\n\n p,\n ul,\n ol {\n &:last-child {\n margin-bottom: 0;\n }\n }\n\n // Note: Deprecated small and .small as of v3.1.0\n // Context: https://github.com/twbs/bootstrap/issues/11660\n footer,\n small,\n .small {\n display: block;\n font-size: 80%; // back to default font-size\n line-height: @line-height-base;\n color: @blockquote-small-color;\n\n &:before {\n content: '\\2014 \\00A0'; // em dash, nbsp\n }\n }\n}\n\n// Opposite alignment of blockquote\n//\n// Heads up: `blockquote.pull-right` has been deprecated as of v3.1.0.\n.blockquote-reverse,\nblockquote.pull-right {\n padding-right: 15px;\n padding-left: 0;\n border-right: 5px solid @blockquote-border-color;\n border-left: 0;\n text-align: right;\n\n // Account for citation\n footer,\n small,\n .small {\n &:before { content: ''; }\n &:after {\n content: '\\00A0 \\2014'; // nbsp, em dash\n }\n }\n}\n\n// Addresses\naddress {\n margin-bottom: @line-height-computed;\n font-style: normal;\n line-height: @line-height-base;\n}\n","// Typography\n\n.text-emphasis-variant(@color) {\n color: @color;\n a&:hover,\n a&:focus {\n color: darken(@color, 10%);\n }\n}\n","// Contextual backgrounds\n\n.bg-variant(@color) {\n background-color: @color;\n a&:hover,\n a&:focus {\n background-color: darken(@color, 10%);\n }\n}\n","// Text overflow\n// Requires inline-block or block for proper styling\n\n.text-overflow() {\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n","//\n// Code (inline and block)\n// --------------------------------------------------\n\n\n// Inline and block code styles\ncode,\nkbd,\npre,\nsamp {\n font-family: @font-family-monospace;\n}\n\n// Inline code\ncode {\n padding: 2px 4px;\n font-size: 90%;\n color: @code-color;\n background-color: @code-bg;\n border-radius: @border-radius-base;\n}\n\n// User input typically entered via keyboard\nkbd {\n padding: 2px 4px;\n font-size: 90%;\n color: @kbd-color;\n background-color: @kbd-bg;\n border-radius: @border-radius-small;\n box-shadow: inset 0 -1px 0 rgba(0,0,0,.25);\n\n kbd {\n padding: 0;\n font-size: 100%;\n font-weight: bold;\n box-shadow: none;\n }\n}\n\n// Blocks of code\npre {\n display: block;\n padding: ((@line-height-computed - 1) / 2);\n margin: 0 0 (@line-height-computed / 2);\n font-size: (@font-size-base - 1); // 14px to 13px\n line-height: @line-height-base;\n word-break: break-all;\n word-wrap: break-word;\n color: @pre-color;\n background-color: @pre-bg;\n border: 1px solid @pre-border-color;\n border-radius: @border-radius-base;\n\n // Account for some code outputs that place code tags in pre tags\n code {\n padding: 0;\n font-size: inherit;\n color: inherit;\n white-space: pre-wrap;\n background-color: transparent;\n border-radius: 0;\n }\n}\n\n// Enable scrollable blocks of code\n.pre-scrollable {\n max-height: @pre-scrollable-max-height;\n overflow-y: scroll;\n}\n","//\n// Grid system\n// --------------------------------------------------\n\n\n// Container widths\n//\n// Set the container width, and override it for fixed navbars in media queries.\n\n.container {\n .container-fixed();\n\n @media (min-width: @screen-sm-min) {\n width: @container-sm;\n }\n @media (min-width: @screen-md-min) {\n width: @container-md;\n }\n @media (min-width: @screen-lg-min) {\n width: @container-lg;\n }\n}\n\n\n// Fluid container\n//\n// Utilizes the mixin meant for fixed width containers, but without any defined\n// width for fluid, full width layouts.\n\n.container-fluid {\n .container-fixed();\n}\n\n\n// Row\n//\n// Rows contain and clear the floats of your columns.\n\n.row {\n .make-row();\n}\n\n\n// Columns\n//\n// Common styles for small and large grid columns\n\n.make-grid-columns();\n\n\n// Extra small grid\n//\n// Columns, offsets, pushes, and pulls for extra small devices like\n// smartphones.\n\n.make-grid(xs);\n\n\n// Small grid\n//\n// Columns, offsets, pushes, and pulls for the small device range, from phones\n// to tablets.\n\n@media (min-width: @screen-sm-min) {\n .make-grid(sm);\n}\n\n\n// Medium grid\n//\n// Columns, offsets, pushes, and pulls for the desktop device range.\n\n@media (min-width: @screen-md-min) {\n .make-grid(md);\n}\n\n\n// Large grid\n//\n// Columns, offsets, pushes, and pulls for the large desktop device range.\n\n@media (min-width: @screen-lg-min) {\n .make-grid(lg);\n}\n","// Grid system\n//\n// Generate semantic grid columns with these mixins.\n\n// Centered container element\n.container-fixed(@gutter: @grid-gutter-width) {\n margin-right: auto;\n margin-left: auto;\n padding-left: floor((@gutter / 2));\n padding-right: ceil((@gutter / 2));\n &:extend(.clearfix all);\n}\n\n// Creates a wrapper for a series of columns\n.make-row(@gutter: @grid-gutter-width) {\n margin-left: ceil((@gutter / -2));\n margin-right: floor((@gutter / -2));\n &:extend(.clearfix all);\n}\n\n// Generate the extra small columns\n.make-xs-column(@columns; @gutter: @grid-gutter-width) {\n position: relative;\n float: left;\n width: percentage((@columns / @grid-columns));\n min-height: 1px;\n padding-left: (@gutter / 2);\n padding-right: (@gutter / 2);\n}\n.make-xs-column-offset(@columns) {\n margin-left: percentage((@columns / @grid-columns));\n}\n.make-xs-column-push(@columns) {\n left: percentage((@columns / @grid-columns));\n}\n.make-xs-column-pull(@columns) {\n right: percentage((@columns / @grid-columns));\n}\n\n// Generate the small columns\n.make-sm-column(@columns; @gutter: @grid-gutter-width) {\n position: relative;\n min-height: 1px;\n padding-left: (@gutter / 2);\n padding-right: (@gutter / 2);\n\n @media (min-width: @screen-sm-min) {\n float: left;\n width: percentage((@columns / @grid-columns));\n }\n}\n.make-sm-column-offset(@columns) {\n @media (min-width: @screen-sm-min) {\n margin-left: percentage((@columns / @grid-columns));\n }\n}\n.make-sm-column-push(@columns) {\n @media (min-width: @screen-sm-min) {\n left: percentage((@columns / @grid-columns));\n }\n}\n.make-sm-column-pull(@columns) {\n @media (min-width: @screen-sm-min) {\n right: percentage((@columns / @grid-columns));\n }\n}\n\n// Generate the medium columns\n.make-md-column(@columns; @gutter: @grid-gutter-width) {\n position: relative;\n min-height: 1px;\n padding-left: (@gutter / 2);\n padding-right: (@gutter / 2);\n\n @media (min-width: @screen-md-min) {\n float: left;\n width: percentage((@columns / @grid-columns));\n }\n}\n.make-md-column-offset(@columns) {\n @media (min-width: @screen-md-min) {\n margin-left: percentage((@columns / @grid-columns));\n }\n}\n.make-md-column-push(@columns) {\n @media (min-width: @screen-md-min) {\n left: percentage((@columns / @grid-columns));\n }\n}\n.make-md-column-pull(@columns) {\n @media (min-width: @screen-md-min) {\n right: percentage((@columns / @grid-columns));\n }\n}\n\n// Generate the large columns\n.make-lg-column(@columns; @gutter: @grid-gutter-width) {\n position: relative;\n min-height: 1px;\n padding-left: (@gutter / 2);\n padding-right: (@gutter / 2);\n\n @media (min-width: @screen-lg-min) {\n float: left;\n width: percentage((@columns / @grid-columns));\n }\n}\n.make-lg-column-offset(@columns) {\n @media (min-width: @screen-lg-min) {\n margin-left: percentage((@columns / @grid-columns));\n }\n}\n.make-lg-column-push(@columns) {\n @media (min-width: @screen-lg-min) {\n left: percentage((@columns / @grid-columns));\n }\n}\n.make-lg-column-pull(@columns) {\n @media (min-width: @screen-lg-min) {\n right: percentage((@columns / @grid-columns));\n }\n}\n","// Framework grid generation\n//\n// Used only by Bootstrap to generate the correct number of grid classes given\n// any value of `@grid-columns`.\n\n.make-grid-columns() {\n // Common styles for all sizes of grid columns, widths 1-12\n .col(@index) { // initial\n @item: ~\".col-xs-@{index}, .col-sm-@{index}, .col-md-@{index}, .col-lg-@{index}\";\n .col((@index + 1), @item);\n }\n .col(@index, @list) when (@index =< @grid-columns) { // general; \"=<\" isn't a typo\n @item: ~\".col-xs-@{index}, .col-sm-@{index}, .col-md-@{index}, .col-lg-@{index}\";\n .col((@index + 1), ~\"@{list}, @{item}\");\n }\n .col(@index, @list) when (@index > @grid-columns) { // terminal\n @{list} {\n position: relative;\n // Prevent columns from collapsing when empty\n min-height: 1px;\n // Inner gutter via padding\n padding-left: ceil((@grid-gutter-width / 2));\n padding-right: floor((@grid-gutter-width / 2));\n }\n }\n .col(1); // kickstart it\n}\n\n.float-grid-columns(@class) {\n .col(@index) { // initial\n @item: ~\".col-@{class}-@{index}\";\n .col((@index + 1), @item);\n }\n .col(@index, @list) when (@index =< @grid-columns) { // general\n @item: ~\".col-@{class}-@{index}\";\n .col((@index + 1), ~\"@{list}, @{item}\");\n }\n .col(@index, @list) when (@index > @grid-columns) { // terminal\n @{list} {\n float: left;\n }\n }\n .col(1); // kickstart it\n}\n\n.calc-grid-column(@index, @class, @type) when (@type = width) and (@index > 0) {\n .col-@{class}-@{index} {\n width: percentage((@index / @grid-columns));\n }\n}\n.calc-grid-column(@index, @class, @type) when (@type = push) and (@index > 0) {\n .col-@{class}-push-@{index} {\n left: percentage((@index / @grid-columns));\n }\n}\n.calc-grid-column(@index, @class, @type) when (@type = push) and (@index = 0) {\n .col-@{class}-push-0 {\n left: auto;\n }\n}\n.calc-grid-column(@index, @class, @type) when (@type = pull) and (@index > 0) {\n .col-@{class}-pull-@{index} {\n right: percentage((@index / @grid-columns));\n }\n}\n.calc-grid-column(@index, @class, @type) when (@type = pull) and (@index = 0) {\n .col-@{class}-pull-0 {\n right: auto;\n }\n}\n.calc-grid-column(@index, @class, @type) when (@type = offset) {\n .col-@{class}-offset-@{index} {\n margin-left: percentage((@index / @grid-columns));\n }\n}\n\n// Basic looping in LESS\n.loop-grid-columns(@index, @class, @type) when (@index >= 0) {\n .calc-grid-column(@index, @class, @type);\n // next iteration\n .loop-grid-columns((@index - 1), @class, @type);\n}\n\n// Create grid for specific class\n.make-grid(@class) {\n .float-grid-columns(@class);\n .loop-grid-columns(@grid-columns, @class, width);\n .loop-grid-columns(@grid-columns, @class, pull);\n .loop-grid-columns(@grid-columns, @class, push);\n .loop-grid-columns(@grid-columns, @class, offset);\n}\n","//\n// Tables\n// --------------------------------------------------\n\n\ntable {\n background-color: @table-bg;\n}\ncaption {\n padding-top: @table-cell-padding;\n padding-bottom: @table-cell-padding;\n color: @text-muted;\n text-align: left;\n}\nth {\n text-align: left;\n}\n\n\n// Baseline styles\n\n.table {\n width: 100%;\n max-width: 100%;\n margin-bottom: @line-height-computed;\n // Cells\n > thead,\n > tbody,\n > tfoot {\n > tr {\n > th,\n > td {\n padding: @table-cell-padding;\n line-height: @line-height-base;\n vertical-align: top;\n border-top: 1px solid @table-border-color;\n }\n }\n }\n // Bottom align for column headings\n > thead > tr > th {\n vertical-align: bottom;\n border-bottom: 2px solid @table-border-color;\n }\n // Remove top border from thead by default\n > caption + thead,\n > colgroup + thead,\n > thead:first-child {\n > tr:first-child {\n > th,\n > td {\n border-top: 0;\n }\n }\n }\n // Account for multiple tbody instances\n > tbody + tbody {\n border-top: 2px solid @table-border-color;\n }\n\n // Nesting\n .table {\n background-color: @body-bg;\n }\n}\n\n\n// Condensed table w/ half padding\n\n.table-condensed {\n > thead,\n > tbody,\n > tfoot {\n > tr {\n > th,\n > td {\n padding: @table-condensed-cell-padding;\n }\n }\n }\n}\n\n\n// Bordered version\n//\n// Add borders all around the table and between all the columns.\n\n.table-bordered {\n border: 1px solid @table-border-color;\n > thead,\n > tbody,\n > tfoot {\n > tr {\n > th,\n > td {\n border: 1px solid @table-border-color;\n }\n }\n }\n > thead > tr {\n > th,\n > td {\n border-bottom-width: 2px;\n }\n }\n}\n\n\n// Zebra-striping\n//\n// Default zebra-stripe styles (alternating gray and transparent backgrounds)\n\n.table-striped {\n > tbody > tr:nth-of-type(odd) {\n background-color: @table-bg-accent;\n }\n}\n\n\n// Hover effect\n//\n// Placed here since it has to come after the potential zebra striping\n\n.table-hover {\n > tbody > tr:hover {\n background-color: @table-bg-hover;\n }\n}\n\n\n// Table cell sizing\n//\n// Reset default table behavior\n\ntable col[class*=\"col-\"] {\n position: static; // Prevent border hiding in Firefox and IE9-11 (see https://github.com/twbs/bootstrap/issues/11623)\n float: none;\n display: table-column;\n}\ntable {\n td,\n th {\n &[class*=\"col-\"] {\n position: static; // Prevent border hiding in Firefox and IE9-11 (see https://github.com/twbs/bootstrap/issues/11623)\n float: none;\n display: table-cell;\n }\n }\n}\n\n\n// Table backgrounds\n//\n// Exact selectors below required to override `.table-striped` and prevent\n// inheritance to nested tables.\n\n// Generate the contextual variants\n.table-row-variant(active; @table-bg-active);\n.table-row-variant(success; @state-success-bg);\n.table-row-variant(info; @state-info-bg);\n.table-row-variant(warning; @state-warning-bg);\n.table-row-variant(danger; @state-danger-bg);\n\n\n// Responsive tables\n//\n// Wrap your tables in `.table-responsive` and we'll make them mobile friendly\n// by enabling horizontal scrolling. Only applies <768px. Everything above that\n// will display normally.\n\n.table-responsive {\n overflow-x: auto;\n min-height: 0.01%; // Workaround for IE9 bug (see https://github.com/twbs/bootstrap/issues/14837)\n\n @media screen and (max-width: @screen-xs-max) {\n width: 100%;\n margin-bottom: (@line-height-computed * 0.75);\n overflow-y: hidden;\n -ms-overflow-style: -ms-autohiding-scrollbar;\n border: 1px solid @table-border-color;\n\n // Tighten up spacing\n > .table {\n margin-bottom: 0;\n\n // Ensure the content doesn't wrap\n > thead,\n > tbody,\n > tfoot {\n > tr {\n > th,\n > td {\n white-space: nowrap;\n }\n }\n }\n }\n\n // Special overrides for the bordered tables\n > .table-bordered {\n border: 0;\n\n // Nuke the appropriate borders so that the parent can handle them\n > thead,\n > tbody,\n > tfoot {\n > tr {\n > th:first-child,\n > td:first-child {\n border-left: 0;\n }\n > th:last-child,\n > td:last-child {\n border-right: 0;\n }\n }\n }\n\n // Only nuke the last row's bottom-border in `tbody` and `tfoot` since\n // chances are there will be only one `tr` in a `thead` and that would\n // remove the border altogether.\n > tbody,\n > tfoot {\n > tr:last-child {\n > th,\n > td {\n border-bottom: 0;\n }\n }\n }\n\n }\n }\n}\n","// Tables\n\n.table-row-variant(@state; @background) {\n // Exact selectors below required to override `.table-striped` and prevent\n // inheritance to nested tables.\n .table > thead > tr,\n .table > tbody > tr,\n .table > tfoot > tr {\n > td.@{state},\n > th.@{state},\n &.@{state} > td,\n &.@{state} > th {\n background-color: @background;\n }\n }\n\n // Hover states for `.table-hover`\n // Note: this is not available for cells or rows within `thead` or `tfoot`.\n .table-hover > tbody > tr {\n > td.@{state}:hover,\n > th.@{state}:hover,\n &.@{state}:hover > td,\n &:hover > .@{state},\n &.@{state}:hover > th {\n background-color: darken(@background, 5%);\n }\n }\n}\n","//\n// Forms\n// --------------------------------------------------\n\n\n// Normalize non-controls\n//\n// Restyle and baseline non-control form elements.\n\nfieldset {\n padding: 0;\n margin: 0;\n border: 0;\n // Chrome and Firefox set a `min-width: min-content;` on fieldsets,\n // so we reset that to ensure it behaves more like a standard block element.\n // See https://github.com/twbs/bootstrap/issues/12359.\n min-width: 0;\n}\n\nlegend {\n display: block;\n width: 100%;\n padding: 0;\n margin-bottom: @line-height-computed;\n font-size: (@font-size-base * 1.5);\n line-height: inherit;\n color: @legend-color;\n border: 0;\n border-bottom: 1px solid @legend-border-color;\n}\n\nlabel {\n display: inline-block;\n max-width: 100%; // Force IE8 to wrap long content (see https://github.com/twbs/bootstrap/issues/13141)\n margin-bottom: 5px;\n font-weight: bold;\n}\n\n\n// Normalize form controls\n//\n// While most of our form styles require extra classes, some basic normalization\n// is required to ensure optimum display with or without those classes to better\n// address browser inconsistencies.\n\n// Override content-box in Normalize (* isn't specific enough)\ninput[type=\"search\"] {\n .box-sizing(border-box);\n}\n\n// Position radios and checkboxes better\ninput[type=\"radio\"],\ninput[type=\"checkbox\"] {\n margin: 4px 0 0;\n margin-top: 1px \\9; // IE8-9\n line-height: normal;\n}\n\ninput[type=\"file\"] {\n display: block;\n}\n\n// Make range inputs behave like textual form controls\ninput[type=\"range\"] {\n display: block;\n width: 100%;\n}\n\n// Make multiple select elements height not fixed\nselect[multiple],\nselect[size] {\n height: auto;\n}\n\n// Focus for file, radio, and checkbox\ninput[type=\"file\"]:focus,\ninput[type=\"radio\"]:focus,\ninput[type=\"checkbox\"]:focus {\n .tab-focus();\n}\n\n// Adjust output element\noutput {\n display: block;\n padding-top: (@padding-base-vertical + 1);\n font-size: @font-size-base;\n line-height: @line-height-base;\n color: @input-color;\n}\n\n\n// Common form controls\n//\n// Shared size and type resets for form controls. Apply `.form-control` to any\n// of the following form controls:\n//\n// select\n// textarea\n// input[type=\"text\"]\n// input[type=\"password\"]\n// input[type=\"datetime\"]\n// input[type=\"datetime-local\"]\n// input[type=\"date\"]\n// input[type=\"month\"]\n// input[type=\"time\"]\n// input[type=\"week\"]\n// input[type=\"number\"]\n// input[type=\"email\"]\n// input[type=\"url\"]\n// input[type=\"search\"]\n// input[type=\"tel\"]\n// input[type=\"color\"]\n\n.form-control {\n display: block;\n width: 100%;\n height: @input-height-base; // Make inputs at least the height of their button counterpart (base line-height + padding + border)\n padding: @padding-base-vertical @padding-base-horizontal;\n font-size: @font-size-base;\n line-height: @line-height-base;\n color: @input-color;\n background-color: @input-bg;\n background-image: none; // Reset unusual Firefox-on-Android default style; see https://github.com/necolas/normalize.css/issues/214\n border: 1px solid @input-border;\n border-radius: @input-border-radius; // Note: This has no effect on <select>s in some browsers, due to the limited stylability of <select>s in CSS.\n .box-shadow(inset 0 1px 1px rgba(0,0,0,.075));\n .transition(~\"border-color ease-in-out .15s, box-shadow ease-in-out .15s\");\n\n // Customize the `:focus` state to imitate native WebKit styles.\n .form-control-focus();\n\n // Placeholder\n .placeholder();\n\n // Unstyle the caret on `<select>`s in IE10+.\n &::-ms-expand {\n border: 0;\n background-color: transparent;\n }\n\n // Disabled and read-only inputs\n //\n // HTML5 says that controls under a fieldset > legend:first-child won't be\n // disabled if the fieldset is disabled. Due to implementation difficulty, we\n // don't honor that edge case; we style them as disabled anyway.\n &[disabled],\n &[readonly],\n fieldset[disabled] & {\n background-color: @input-bg-disabled;\n opacity: 1; // iOS fix for unreadable disabled content; see https://github.com/twbs/bootstrap/issues/11655\n }\n\n &[disabled],\n fieldset[disabled] & {\n cursor: @cursor-disabled;\n }\n\n // Reset height for `textarea`s\n textarea& {\n height: auto;\n }\n}\n\n\n// Search inputs in iOS\n//\n// This overrides the extra rounded corners on search inputs in iOS so that our\n// `.form-control` class can properly style them. Note that this cannot simply\n// be added to `.form-control` as it's not specific enough. For details, see\n// https://github.com/twbs/bootstrap/issues/11586.\n\ninput[type=\"search\"] {\n -webkit-appearance: none;\n}\n\n\n// Special styles for iOS temporal inputs\n//\n// In Mobile Safari, setting `display: block` on temporal inputs causes the\n// text within the input to become vertically misaligned. As a workaround, we\n// set a pixel line-height that matches the given height of the input, but only\n// for Safari. See https://bugs.webkit.org/show_bug.cgi?id=139848\n//\n// Note that as of 9.3, iOS doesn't support `week`.\n\n@media screen and (-webkit-min-device-pixel-ratio: 0) {\n input[type=\"date\"],\n input[type=\"time\"],\n input[type=\"datetime-local\"],\n input[type=\"month\"] {\n &.form-control {\n line-height: @input-height-base;\n }\n\n &.input-sm,\n .input-group-sm & {\n line-height: @input-height-small;\n }\n\n &.input-lg,\n .input-group-lg & {\n line-height: @input-height-large;\n }\n }\n}\n\n\n// Form groups\n//\n// Designed to help with the organization and spacing of vertical forms. For\n// horizontal forms, use the predefined grid classes.\n\n.form-group {\n margin-bottom: @form-group-margin-bottom;\n}\n\n\n// Checkboxes and radios\n//\n// Indent the labels to position radios/checkboxes as hanging controls.\n\n.radio,\n.checkbox {\n position: relative;\n display: block;\n margin-top: 10px;\n margin-bottom: 10px;\n\n label {\n min-height: @line-height-computed; // Ensure the input doesn't jump when there is no text\n padding-left: 20px;\n margin-bottom: 0;\n font-weight: normal;\n cursor: pointer;\n }\n}\n.radio input[type=\"radio\"],\n.radio-inline input[type=\"radio\"],\n.checkbox input[type=\"checkbox\"],\n.checkbox-inline input[type=\"checkbox\"] {\n position: absolute;\n margin-left: -20px;\n margin-top: 4px \\9;\n}\n\n.radio + .radio,\n.checkbox + .checkbox {\n margin-top: -5px; // Move up sibling radios or checkboxes for tighter spacing\n}\n\n// Radios and checkboxes on same line\n.radio-inline,\n.checkbox-inline {\n position: relative;\n display: inline-block;\n padding-left: 20px;\n margin-bottom: 0;\n vertical-align: middle;\n font-weight: normal;\n cursor: pointer;\n}\n.radio-inline + .radio-inline,\n.checkbox-inline + .checkbox-inline {\n margin-top: 0;\n margin-left: 10px; // space out consecutive inline controls\n}\n\n// Apply same disabled cursor tweak as for inputs\n// Some special care is needed because <label>s don't inherit their parent's `cursor`.\n//\n// Note: Neither radios nor checkboxes can be readonly.\ninput[type=\"radio\"],\ninput[type=\"checkbox\"] {\n &[disabled],\n &.disabled,\n fieldset[disabled] & {\n cursor: @cursor-disabled;\n }\n}\n// These classes are used directly on <label>s\n.radio-inline,\n.checkbox-inline {\n &.disabled,\n fieldset[disabled] & {\n cursor: @cursor-disabled;\n }\n}\n// These classes are used on elements with <label> descendants\n.radio,\n.checkbox {\n &.disabled,\n fieldset[disabled] & {\n label {\n cursor: @cursor-disabled;\n }\n }\n}\n\n\n// Static form control text\n//\n// Apply class to a `p` element to make any string of text align with labels in\n// a horizontal form layout.\n\n.form-control-static {\n // Size it appropriately next to real form controls\n padding-top: (@padding-base-vertical + 1);\n padding-bottom: (@padding-base-vertical + 1);\n // Remove default margin from `p`\n margin-bottom: 0;\n min-height: (@line-height-computed + @font-size-base);\n\n &.input-lg,\n &.input-sm {\n padding-left: 0;\n padding-right: 0;\n }\n}\n\n\n// Form control sizing\n//\n// Build on `.form-control` with modifier classes to decrease or increase the\n// height and font-size of form controls.\n//\n// The `.form-group-* form-control` variations are sadly duplicated to avoid the\n// issue documented in https://github.com/twbs/bootstrap/issues/15074.\n\n.input-sm {\n .input-size(@input-height-small; @padding-small-vertical; @padding-small-horizontal; @font-size-small; @line-height-small; @input-border-radius-small);\n}\n.form-group-sm {\n .form-control {\n height: @input-height-small;\n padding: @padding-small-vertical @padding-small-horizontal;\n font-size: @font-size-small;\n line-height: @line-height-small;\n border-radius: @input-border-radius-small;\n }\n select.form-control {\n height: @input-height-small;\n line-height: @input-height-small;\n }\n textarea.form-control,\n select[multiple].form-control {\n height: auto;\n }\n .form-control-static {\n height: @input-height-small;\n min-height: (@line-height-computed + @font-size-small);\n padding: (@padding-small-vertical + 1) @padding-small-horizontal;\n font-size: @font-size-small;\n line-height: @line-height-small;\n }\n}\n\n.input-lg {\n .input-size(@input-height-large; @padding-large-vertical; @padding-large-horizontal; @font-size-large; @line-height-large; @input-border-radius-large);\n}\n.form-group-lg {\n .form-control {\n height: @input-height-large;\n padding: @padding-large-vertical @padding-large-horizontal;\n font-size: @font-size-large;\n line-height: @line-height-large;\n border-radius: @input-border-radius-large;\n }\n select.form-control {\n height: @input-height-large;\n line-height: @input-height-large;\n }\n textarea.form-control,\n select[multiple].form-control {\n height: auto;\n }\n .form-control-static {\n height: @input-height-large;\n min-height: (@line-height-computed + @font-size-large);\n padding: (@padding-large-vertical + 1) @padding-large-horizontal;\n font-size: @font-size-large;\n line-height: @line-height-large;\n }\n}\n\n\n// Form control feedback states\n//\n// Apply contextual and semantic states to individual form controls.\n\n.has-feedback {\n // Enable absolute positioning\n position: relative;\n\n // Ensure icons don't overlap text\n .form-control {\n padding-right: (@input-height-base * 1.25);\n }\n}\n// Feedback icon (requires .glyphicon classes)\n.form-control-feedback {\n position: absolute;\n top: 0;\n right: 0;\n z-index: 2; // Ensure icon is above input groups\n display: block;\n width: @input-height-base;\n height: @input-height-base;\n line-height: @input-height-base;\n text-align: center;\n pointer-events: none;\n}\n.input-lg + .form-control-feedback,\n.input-group-lg + .form-control-feedback,\n.form-group-lg .form-control + .form-control-feedback {\n width: @input-height-large;\n height: @input-height-large;\n line-height: @input-height-large;\n}\n.input-sm + .form-control-feedback,\n.input-group-sm + .form-control-feedback,\n.form-group-sm .form-control + .form-control-feedback {\n width: @input-height-small;\n height: @input-height-small;\n line-height: @input-height-small;\n}\n\n// Feedback states\n.has-success {\n .form-control-validation(@state-success-text; @state-success-text; @state-success-bg);\n}\n.has-warning {\n .form-control-validation(@state-warning-text; @state-warning-text; @state-warning-bg);\n}\n.has-error {\n .form-control-validation(@state-danger-text; @state-danger-text; @state-danger-bg);\n}\n\n// Reposition feedback icon if input has visible label above\n.has-feedback label {\n\n & ~ .form-control-feedback {\n top: (@line-height-computed + 5); // Height of the `label` and its margin\n }\n &.sr-only ~ .form-control-feedback {\n top: 0;\n }\n}\n\n\n// Help text\n//\n// Apply to any element you wish to create light text for placement immediately\n// below a form control. Use for general help, formatting, or instructional text.\n\n.help-block {\n display: block; // account for any element using help-block\n margin-top: 5px;\n margin-bottom: 10px;\n color: lighten(@text-color, 25%); // lighten the text some for contrast\n}\n\n\n// Inline forms\n//\n// Make forms appear inline(-block) by adding the `.form-inline` class. Inline\n// forms begin stacked on extra small (mobile) devices and then go inline when\n// viewports reach <768px.\n//\n// Requires wrapping inputs and labels with `.form-group` for proper display of\n// default HTML form controls and our custom form controls (e.g., input groups).\n//\n// Heads up! This is mixin-ed into `.navbar-form` in navbars.less.\n\n.form-inline {\n\n // Kick in the inline\n @media (min-width: @screen-sm-min) {\n // Inline-block all the things for \"inline\"\n .form-group {\n display: inline-block;\n margin-bottom: 0;\n vertical-align: middle;\n }\n\n // In navbar-form, allow folks to *not* use `.form-group`\n .form-control {\n display: inline-block;\n width: auto; // Prevent labels from stacking above inputs in `.form-group`\n vertical-align: middle;\n }\n\n // Make static controls behave like regular ones\n .form-control-static {\n display: inline-block;\n }\n\n .input-group {\n display: inline-table;\n vertical-align: middle;\n\n .input-group-addon,\n .input-group-btn,\n .form-control {\n width: auto;\n }\n }\n\n // Input groups need that 100% width though\n .input-group > .form-control {\n width: 100%;\n }\n\n .control-label {\n margin-bottom: 0;\n vertical-align: middle;\n }\n\n // Remove default margin on radios/checkboxes that were used for stacking, and\n // then undo the floating of radios and checkboxes to match.\n .radio,\n .checkbox {\n display: inline-block;\n margin-top: 0;\n margin-bottom: 0;\n vertical-align: middle;\n\n label {\n padding-left: 0;\n }\n }\n .radio input[type=\"radio\"],\n .checkbox input[type=\"checkbox\"] {\n position: relative;\n margin-left: 0;\n }\n\n // Re-override the feedback icon.\n .has-feedback .form-control-feedback {\n top: 0;\n }\n }\n}\n\n\n// Horizontal forms\n//\n// Horizontal forms are built on grid classes and allow you to create forms with\n// labels on the left and inputs on the right.\n\n.form-horizontal {\n\n // Consistent vertical alignment of radios and checkboxes\n //\n // Labels also get some reset styles, but that is scoped to a media query below.\n .radio,\n .checkbox,\n .radio-inline,\n .checkbox-inline {\n margin-top: 0;\n margin-bottom: 0;\n padding-top: (@padding-base-vertical + 1); // Default padding plus a border\n }\n // Account for padding we're adding to ensure the alignment and of help text\n // and other content below items\n .radio,\n .checkbox {\n min-height: (@line-height-computed + (@padding-base-vertical + 1));\n }\n\n // Make form groups behave like rows\n .form-group {\n .make-row();\n }\n\n // Reset spacing and right align labels, but scope to media queries so that\n // labels on narrow viewports stack the same as a default form example.\n @media (min-width: @screen-sm-min) {\n .control-label {\n text-align: right;\n margin-bottom: 0;\n padding-top: (@padding-base-vertical + 1); // Default padding plus a border\n }\n }\n\n // Validation states\n //\n // Reposition the icon because it's now within a grid column and columns have\n // `position: relative;` on them. Also accounts for the grid gutter padding.\n .has-feedback .form-control-feedback {\n right: floor((@grid-gutter-width / 2));\n }\n\n // Form group sizes\n //\n // Quick utility class for applying `.input-lg` and `.input-sm` styles to the\n // inputs and labels within a `.form-group`.\n .form-group-lg {\n @media (min-width: @screen-sm-min) {\n .control-label {\n padding-top: (@padding-large-vertical + 1);\n font-size: @font-size-large;\n }\n }\n }\n .form-group-sm {\n @media (min-width: @screen-sm-min) {\n .control-label {\n padding-top: (@padding-small-vertical + 1);\n font-size: @font-size-small;\n }\n }\n }\n}\n","// Form validation states\n//\n// Used in forms.less to generate the form validation CSS for warnings, errors,\n// and successes.\n\n.form-control-validation(@text-color: #555; @border-color: #ccc; @background-color: #f5f5f5) {\n // Color the label and help text\n .help-block,\n .control-label,\n .radio,\n .checkbox,\n .radio-inline,\n .checkbox-inline,\n &.radio label,\n &.checkbox label,\n &.radio-inline label,\n &.checkbox-inline label {\n color: @text-color;\n }\n // Set the border and box shadow on specific inputs to match\n .form-control {\n border-color: @border-color;\n .box-shadow(inset 0 1px 1px rgba(0,0,0,.075)); // Redeclare so transitions work\n &:focus {\n border-color: darken(@border-color, 10%);\n @shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 6px lighten(@border-color, 20%);\n .box-shadow(@shadow);\n }\n }\n // Set validation states also for addons\n .input-group-addon {\n color: @text-color;\n border-color: @border-color;\n background-color: @background-color;\n }\n // Optional feedback icon\n .form-control-feedback {\n color: @text-color;\n }\n}\n\n\n// Form control focus state\n//\n// Generate a customized focus state and for any input with the specified color,\n// which defaults to the `@input-border-focus` variable.\n//\n// We highly encourage you to not customize the default value, but instead use\n// this to tweak colors on an as-needed basis. This aesthetic change is based on\n// WebKit's default styles, but applicable to a wider range of browsers. Its\n// usability and accessibility should be taken into account with any change.\n//\n// Example usage: change the default blue border and shadow to white for better\n// contrast against a dark gray background.\n.form-control-focus(@color: @input-border-focus) {\n @color-rgba: rgba(red(@color), green(@color), blue(@color), .6);\n &:focus {\n border-color: @color;\n outline: 0;\n .box-shadow(~\"inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px @{color-rgba}\");\n }\n}\n\n// Form control sizing\n//\n// Relative text size, padding, and border-radii changes for form controls. For\n// horizontal sizing, wrap controls in the predefined grid classes. `<select>`\n// element gets special love because it's special, and that's a fact!\n.input-size(@input-height; @padding-vertical; @padding-horizontal; @font-size; @line-height; @border-radius) {\n height: @input-height;\n padding: @padding-vertical @padding-horizontal;\n font-size: @font-size;\n line-height: @line-height;\n border-radius: @border-radius;\n\n select& {\n height: @input-height;\n line-height: @input-height;\n }\n\n textarea&,\n select[multiple]& {\n height: auto;\n }\n}\n","//\n// Buttons\n// --------------------------------------------------\n\n\n// Base styles\n// --------------------------------------------------\n\n.btn {\n display: inline-block;\n margin-bottom: 0; // For input.btn\n font-weight: @btn-font-weight;\n text-align: center;\n vertical-align: middle;\n touch-action: manipulation;\n cursor: pointer;\n background-image: none; // Reset unusual Firefox-on-Android default style; see https://github.com/necolas/normalize.css/issues/214\n border: 1px solid transparent;\n white-space: nowrap;\n .button-size(@padding-base-vertical; @padding-base-horizontal; @font-size-base; @line-height-base; @btn-border-radius-base);\n .user-select(none);\n\n &,\n &:active,\n &.active {\n &:focus,\n &.focus {\n .tab-focus();\n }\n }\n\n &:hover,\n &:focus,\n &.focus {\n color: @btn-default-color;\n text-decoration: none;\n }\n\n &:active,\n &.active {\n outline: 0;\n background-image: none;\n .box-shadow(inset 0 3px 5px rgba(0,0,0,.125));\n }\n\n &.disabled,\n &[disabled],\n fieldset[disabled] & {\n cursor: @cursor-disabled;\n .opacity(.65);\n .box-shadow(none);\n }\n\n a& {\n &.disabled,\n fieldset[disabled] & {\n pointer-events: none; // Future-proof disabling of clicks on `<a>` elements\n }\n }\n}\n\n\n// Alternate buttons\n// --------------------------------------------------\n\n.btn-default {\n .button-variant(@btn-default-color; @btn-default-bg; @btn-default-border);\n}\n.btn-primary {\n .button-variant(@btn-primary-color; @btn-primary-bg; @btn-primary-border);\n}\n// Success appears as green\n.btn-success {\n .button-variant(@btn-success-color; @btn-success-bg; @btn-success-border);\n}\n// Info appears as blue-green\n.btn-info {\n .button-variant(@btn-info-color; @btn-info-bg; @btn-info-border);\n}\n// Warning appears as orange\n.btn-warning {\n .button-variant(@btn-warning-color; @btn-warning-bg; @btn-warning-border);\n}\n// Danger and error appear as red\n.btn-danger {\n .button-variant(@btn-danger-color; @btn-danger-bg; @btn-danger-border);\n}\n\n\n// Link buttons\n// -------------------------\n\n// Make a button look and behave like a link\n.btn-link {\n color: @link-color;\n font-weight: normal;\n border-radius: 0;\n\n &,\n &:active,\n &.active,\n &[disabled],\n fieldset[disabled] & {\n background-color: transparent;\n .box-shadow(none);\n }\n &,\n &:hover,\n &:focus,\n &:active {\n border-color: transparent;\n }\n &:hover,\n &:focus {\n color: @link-hover-color;\n text-decoration: @link-hover-decoration;\n background-color: transparent;\n }\n &[disabled],\n fieldset[disabled] & {\n &:hover,\n &:focus {\n color: @btn-link-disabled-color;\n text-decoration: none;\n }\n }\n}\n\n\n// Button Sizes\n// --------------------------------------------------\n\n.btn-lg {\n // line-height: ensure even-numbered height of button next to large input\n .button-size(@padding-large-vertical; @padding-large-horizontal; @font-size-large; @line-height-large; @btn-border-radius-large);\n}\n.btn-sm {\n // line-height: ensure proper height of button next to small input\n .button-size(@padding-small-vertical; @padding-small-horizontal; @font-size-small; @line-height-small; @btn-border-radius-small);\n}\n.btn-xs {\n .button-size(@padding-xs-vertical; @padding-xs-horizontal; @font-size-small; @line-height-small; @btn-border-radius-small);\n}\n\n\n// Block button\n// --------------------------------------------------\n\n.btn-block {\n display: block;\n width: 100%;\n}\n\n// Vertically space out multiple block buttons\n.btn-block + .btn-block {\n margin-top: 5px;\n}\n\n// Specificity overrides\ninput[type=\"submit\"],\ninput[type=\"reset\"],\ninput[type=\"button\"] {\n &.btn-block {\n width: 100%;\n }\n}\n","// Button variants\n//\n// Easily pump out default styles, as well as :hover, :focus, :active,\n// and disabled options for all buttons\n\n.button-variant(@color; @background; @border) {\n color: @color;\n background-color: @background;\n border-color: @border;\n\n &:focus,\n &.focus {\n color: @color;\n background-color: darken(@background, 10%);\n border-color: darken(@border, 25%);\n }\n &:hover {\n color: @color;\n background-color: darken(@background, 10%);\n border-color: darken(@border, 12%);\n }\n &:active,\n &.active,\n .open > .dropdown-toggle& {\n color: @color;\n background-color: darken(@background, 10%);\n border-color: darken(@border, 12%);\n\n &:hover,\n &:focus,\n &.focus {\n color: @color;\n background-color: darken(@background, 17%);\n border-color: darken(@border, 25%);\n }\n }\n &:active,\n &.active,\n .open > .dropdown-toggle& {\n background-image: none;\n }\n &.disabled,\n &[disabled],\n fieldset[disabled] & {\n &:hover,\n &:focus,\n &.focus {\n background-color: @background;\n border-color: @border;\n }\n }\n\n .badge {\n color: @background;\n background-color: @color;\n }\n}\n\n// Button sizes\n.button-size(@padding-vertical; @padding-horizontal; @font-size; @line-height; @border-radius) {\n padding: @padding-vertical @padding-horizontal;\n font-size: @font-size;\n line-height: @line-height;\n border-radius: @border-radius;\n}\n","// Opacity\n\n.opacity(@opacity) {\n opacity: @opacity;\n // IE8 filter\n @opacity-ie: (@opacity * 100);\n filter: ~\"alpha(opacity=@{opacity-ie})\";\n}\n","//\n// Component animations\n// --------------------------------------------------\n\n// Heads up!\n//\n// We don't use the `.opacity()` mixin here since it causes a bug with text\n// fields in IE7-8. Source: https://github.com/twbs/bootstrap/pull/3552.\n\n.fade {\n opacity: 0;\n .transition(opacity .15s linear);\n &.in {\n opacity: 1;\n }\n}\n\n.collapse {\n display: none;\n\n &.in { display: block; }\n tr&.in { display: table-row; }\n tbody&.in { display: table-row-group; }\n}\n\n.collapsing {\n position: relative;\n height: 0;\n overflow: hidden;\n .transition-property(~\"height, visibility\");\n .transition-duration(.35s);\n .transition-timing-function(ease);\n}\n","//\n// Dropdown menus\n// --------------------------------------------------\n\n\n// Dropdown arrow/caret\n.caret {\n display: inline-block;\n width: 0;\n height: 0;\n margin-left: 2px;\n vertical-align: middle;\n border-top: @caret-width-base dashed;\n border-top: @caret-width-base solid ~\"\\9\"; // IE8\n border-right: @caret-width-base solid transparent;\n border-left: @caret-width-base solid transparent;\n}\n\n// The dropdown wrapper (div)\n.dropup,\n.dropdown {\n position: relative;\n}\n\n// Prevent the focus on the dropdown toggle when closing dropdowns\n.dropdown-toggle:focus {\n outline: 0;\n}\n\n// The dropdown menu (ul)\n.dropdown-menu {\n position: absolute;\n top: 100%;\n left: 0;\n z-index: @zindex-dropdown;\n display: none; // none by default, but block on \"open\" of the menu\n float: left;\n min-width: 160px;\n padding: 5px 0;\n margin: 2px 0 0; // override default ul\n list-style: none;\n font-size: @font-size-base;\n text-align: left; // Ensures proper alignment if parent has it changed (e.g., modal footer)\n background-color: @dropdown-bg;\n border: 1px solid @dropdown-fallback-border; // IE8 fallback\n border: 1px solid @dropdown-border;\n border-radius: @border-radius-base;\n .box-shadow(0 6px 12px rgba(0,0,0,.175));\n background-clip: padding-box;\n\n // Aligns the dropdown menu to right\n //\n // Deprecated as of 3.1.0 in favor of `.dropdown-menu-[dir]`\n &.pull-right {\n right: 0;\n left: auto;\n }\n\n // Dividers (basically an hr) within the dropdown\n .divider {\n .nav-divider(@dropdown-divider-bg);\n }\n\n // Links within the dropdown menu\n > li > a {\n display: block;\n padding: 3px 20px;\n clear: both;\n font-weight: normal;\n line-height: @line-height-base;\n color: @dropdown-link-color;\n white-space: nowrap; // prevent links from randomly breaking onto new lines\n }\n}\n\n// Hover/Focus state\n.dropdown-menu > li > a {\n &:hover,\n &:focus {\n text-decoration: none;\n color: @dropdown-link-hover-color;\n background-color: @dropdown-link-hover-bg;\n }\n}\n\n// Active state\n.dropdown-menu > .active > a {\n &,\n &:hover,\n &:focus {\n color: @dropdown-link-active-color;\n text-decoration: none;\n outline: 0;\n background-color: @dropdown-link-active-bg;\n }\n}\n\n// Disabled state\n//\n// Gray out text and ensure the hover/focus state remains gray\n\n.dropdown-menu > .disabled > a {\n &,\n &:hover,\n &:focus {\n color: @dropdown-link-disabled-color;\n }\n\n // Nuke hover/focus effects\n &:hover,\n &:focus {\n text-decoration: none;\n background-color: transparent;\n background-image: none; // Remove CSS gradient\n .reset-filter();\n cursor: @cursor-disabled;\n }\n}\n\n// Open state for the dropdown\n.open {\n // Show the menu\n > .dropdown-menu {\n display: block;\n }\n\n // Remove the outline when :focus is triggered\n > a {\n outline: 0;\n }\n}\n\n// Menu positioning\n//\n// Add extra class to `.dropdown-menu` to flip the alignment of the dropdown\n// menu with the parent.\n.dropdown-menu-right {\n left: auto; // Reset the default from `.dropdown-menu`\n right: 0;\n}\n// With v3, we enabled auto-flipping if you have a dropdown within a right\n// aligned nav component. To enable the undoing of that, we provide an override\n// to restore the default dropdown menu alignment.\n//\n// This is only for left-aligning a dropdown menu within a `.navbar-right` or\n// `.pull-right` nav component.\n.dropdown-menu-left {\n left: 0;\n right: auto;\n}\n\n// Dropdown section headers\n.dropdown-header {\n display: block;\n padding: 3px 20px;\n font-size: @font-size-small;\n line-height: @line-height-base;\n color: @dropdown-header-color;\n white-space: nowrap; // as with > li > a\n}\n\n// Backdrop to catch body clicks on mobile, etc.\n.dropdown-backdrop {\n position: fixed;\n left: 0;\n right: 0;\n bottom: 0;\n top: 0;\n z-index: (@zindex-dropdown - 10);\n}\n\n// Right aligned dropdowns\n.pull-right > .dropdown-menu {\n right: 0;\n left: auto;\n}\n\n// Allow for dropdowns to go bottom up (aka, dropup-menu)\n//\n// Just add .dropup after the standard .dropdown class and you're set, bro.\n// TODO: abstract this so that the navbar fixed styles are not placed here?\n\n.dropup,\n.navbar-fixed-bottom .dropdown {\n // Reverse the caret\n .caret {\n border-top: 0;\n border-bottom: @caret-width-base dashed;\n border-bottom: @caret-width-base solid ~\"\\9\"; // IE8\n content: \"\";\n }\n // Different positioning for bottom up menu\n .dropdown-menu {\n top: auto;\n bottom: 100%;\n margin-bottom: 2px;\n }\n}\n\n\n// Component alignment\n//\n// Reiterate per navbar.less and the modified component alignment there.\n\n@media (min-width: @grid-float-breakpoint) {\n .navbar-right {\n .dropdown-menu {\n .dropdown-menu-right();\n }\n // Necessary for overrides of the default right aligned menu.\n // Will remove come v4 in all likelihood.\n .dropdown-menu-left {\n .dropdown-menu-left();\n }\n }\n}\n","// Horizontal dividers\n//\n// Dividers (basically an hr) within dropdowns and nav lists\n\n.nav-divider(@color: #e5e5e5) {\n height: 1px;\n margin: ((@line-height-computed / 2) - 1) 0;\n overflow: hidden;\n background-color: @color;\n}\n","// Reset filters for IE\n//\n// When you need to remove a gradient background, do not forget to use this to reset\n// the IE filter for IE9 and below.\n\n.reset-filter() {\n filter: e(%(\"progid:DXImageTransform.Microsoft.gradient(enabled = false)\"));\n}\n","//\n// Button groups\n// --------------------------------------------------\n\n// Make the div behave like a button\n.btn-group,\n.btn-group-vertical {\n position: relative;\n display: inline-block;\n vertical-align: middle; // match .btn alignment given font-size hack above\n > .btn {\n position: relative;\n float: left;\n // Bring the \"active\" button to the front\n &:hover,\n &:focus,\n &:active,\n &.active {\n z-index: 2;\n }\n }\n}\n\n// Prevent double borders when buttons are next to each other\n.btn-group {\n .btn + .btn,\n .btn + .btn-group,\n .btn-group + .btn,\n .btn-group + .btn-group {\n margin-left: -1px;\n }\n}\n\n// Optional: Group multiple button groups together for a toolbar\n.btn-toolbar {\n margin-left: -5px; // Offset the first child's margin\n &:extend(.clearfix all);\n\n .btn,\n .btn-group,\n .input-group {\n float: left;\n }\n > .btn,\n > .btn-group,\n > .input-group {\n margin-left: 5px;\n }\n}\n\n.btn-group > .btn:not(:first-child):not(:last-child):not(.dropdown-toggle) {\n border-radius: 0;\n}\n\n// Set corners individual because sometimes a single button can be in a .btn-group and we need :first-child and :last-child to both match\n.btn-group > .btn:first-child {\n margin-left: 0;\n &:not(:last-child):not(.dropdown-toggle) {\n .border-right-radius(0);\n }\n}\n// Need .dropdown-toggle since :last-child doesn't apply, given that a .dropdown-menu is used immediately after it\n.btn-group > .btn:last-child:not(:first-child),\n.btn-group > .dropdown-toggle:not(:first-child) {\n .border-left-radius(0);\n}\n\n// Custom edits for including btn-groups within btn-groups (useful for including dropdown buttons within a btn-group)\n.btn-group > .btn-group {\n float: left;\n}\n.btn-group > .btn-group:not(:first-child):not(:last-child) > .btn {\n border-radius: 0;\n}\n.btn-group > .btn-group:first-child:not(:last-child) {\n > .btn:last-child,\n > .dropdown-toggle {\n .border-right-radius(0);\n }\n}\n.btn-group > .btn-group:last-child:not(:first-child) > .btn:first-child {\n .border-left-radius(0);\n}\n\n// On active and open, don't show outline\n.btn-group .dropdown-toggle:active,\n.btn-group.open .dropdown-toggle {\n outline: 0;\n}\n\n\n// Sizing\n//\n// Remix the default button sizing classes into new ones for easier manipulation.\n\n.btn-group-xs > .btn { &:extend(.btn-xs); }\n.btn-group-sm > .btn { &:extend(.btn-sm); }\n.btn-group-lg > .btn { &:extend(.btn-lg); }\n\n\n// Split button dropdowns\n// ----------------------\n\n// Give the line between buttons some depth\n.btn-group > .btn + .dropdown-toggle {\n padding-left: 8px;\n padding-right: 8px;\n}\n.btn-group > .btn-lg + .dropdown-toggle {\n padding-left: 12px;\n padding-right: 12px;\n}\n\n// The clickable button for toggling the menu\n// Remove the gradient and set the same inset shadow as the :active state\n.btn-group.open .dropdown-toggle {\n .box-shadow(inset 0 3px 5px rgba(0,0,0,.125));\n\n // Show no shadow for `.btn-link` since it has no other button styles.\n &.btn-link {\n .box-shadow(none);\n }\n}\n\n\n// Reposition the caret\n.btn .caret {\n margin-left: 0;\n}\n// Carets in other button sizes\n.btn-lg .caret {\n border-width: @caret-width-large @caret-width-large 0;\n border-bottom-width: 0;\n}\n// Upside down carets for .dropup\n.dropup .btn-lg .caret {\n border-width: 0 @caret-width-large @caret-width-large;\n}\n\n\n// Vertical button groups\n// ----------------------\n\n.btn-group-vertical {\n > .btn,\n > .btn-group,\n > .btn-group > .btn {\n display: block;\n float: none;\n width: 100%;\n max-width: 100%;\n }\n\n // Clear floats so dropdown menus can be properly placed\n > .btn-group {\n &:extend(.clearfix all);\n > .btn {\n float: none;\n }\n }\n\n > .btn + .btn,\n > .btn + .btn-group,\n > .btn-group + .btn,\n > .btn-group + .btn-group {\n margin-top: -1px;\n margin-left: 0;\n }\n}\n\n.btn-group-vertical > .btn {\n &:not(:first-child):not(:last-child) {\n border-radius: 0;\n }\n &:first-child:not(:last-child) {\n .border-top-radius(@btn-border-radius-base);\n .border-bottom-radius(0);\n }\n &:last-child:not(:first-child) {\n .border-top-radius(0);\n .border-bottom-radius(@btn-border-radius-base);\n }\n}\n.btn-group-vertical > .btn-group:not(:first-child):not(:last-child) > .btn {\n border-radius: 0;\n}\n.btn-group-vertical > .btn-group:first-child:not(:last-child) {\n > .btn:last-child,\n > .dropdown-toggle {\n .border-bottom-radius(0);\n }\n}\n.btn-group-vertical > .btn-group:last-child:not(:first-child) > .btn:first-child {\n .border-top-radius(0);\n}\n\n\n// Justified button groups\n// ----------------------\n\n.btn-group-justified {\n display: table;\n width: 100%;\n table-layout: fixed;\n border-collapse: separate;\n > .btn,\n > .btn-group {\n float: none;\n display: table-cell;\n width: 1%;\n }\n > .btn-group .btn {\n width: 100%;\n }\n\n > .btn-group .dropdown-menu {\n left: auto;\n }\n}\n\n\n// Checkbox and radio options\n//\n// In order to support the browser's form validation feedback, powered by the\n// `required` attribute, we have to \"hide\" the inputs via `clip`. We cannot use\n// `display: none;` or `visibility: hidden;` as that also hides the popover.\n// Simply visually hiding the inputs via `opacity` would leave them clickable in\n// certain cases which is prevented by using `clip` and `pointer-events`.\n// This way, we ensure a DOM element is visible to position the popover from.\n//\n// See https://github.com/twbs/bootstrap/pull/12794 and\n// https://github.com/twbs/bootstrap/pull/14559 for more information.\n\n[data-toggle=\"buttons\"] {\n > .btn,\n > .btn-group > .btn {\n input[type=\"radio\"],\n input[type=\"checkbox\"] {\n position: absolute;\n clip: rect(0,0,0,0);\n pointer-events: none;\n }\n }\n}\n","// Single side border-radius\n\n.border-top-radius(@radius) {\n border-top-right-radius: @radius;\n border-top-left-radius: @radius;\n}\n.border-right-radius(@radius) {\n border-bottom-right-radius: @radius;\n border-top-right-radius: @radius;\n}\n.border-bottom-radius(@radius) {\n border-bottom-right-radius: @radius;\n border-bottom-left-radius: @radius;\n}\n.border-left-radius(@radius) {\n border-bottom-left-radius: @radius;\n border-top-left-radius: @radius;\n}\n","//\n// Input groups\n// --------------------------------------------------\n\n// Base styles\n// -------------------------\n.input-group {\n position: relative; // For dropdowns\n display: table;\n border-collapse: separate; // prevent input groups from inheriting border styles from table cells when placed within a table\n\n // Undo padding and float of grid classes\n &[class*=\"col-\"] {\n float: none;\n padding-left: 0;\n padding-right: 0;\n }\n\n .form-control {\n // Ensure that the input is always above the *appended* addon button for\n // proper border colors.\n position: relative;\n z-index: 2;\n\n // IE9 fubars the placeholder attribute in text inputs and the arrows on\n // select elements in input groups. To fix it, we float the input. Details:\n // https://github.com/twbs/bootstrap/issues/11561#issuecomment-28936855\n float: left;\n\n width: 100%;\n margin-bottom: 0;\n\n &:focus {\n z-index: 3;\n }\n }\n}\n\n// Sizing options\n//\n// Remix the default form control sizing classes into new ones for easier\n// manipulation.\n\n.input-group-lg > .form-control,\n.input-group-lg > .input-group-addon,\n.input-group-lg > .input-group-btn > .btn {\n .input-lg();\n}\n.input-group-sm > .form-control,\n.input-group-sm > .input-group-addon,\n.input-group-sm > .input-group-btn > .btn {\n .input-sm();\n}\n\n\n// Display as table-cell\n// -------------------------\n.input-group-addon,\n.input-group-btn,\n.input-group .form-control {\n display: table-cell;\n\n &:not(:first-child):not(:last-child) {\n border-radius: 0;\n }\n}\n// Addon and addon wrapper for buttons\n.input-group-addon,\n.input-group-btn {\n width: 1%;\n white-space: nowrap;\n vertical-align: middle; // Match the inputs\n}\n\n// Text input groups\n// -------------------------\n.input-group-addon {\n padding: @padding-base-vertical @padding-base-horizontal;\n font-size: @font-size-base;\n font-weight: normal;\n line-height: 1;\n color: @input-color;\n text-align: center;\n background-color: @input-group-addon-bg;\n border: 1px solid @input-group-addon-border-color;\n border-radius: @input-border-radius;\n\n // Sizing\n &.input-sm {\n padding: @padding-small-vertical @padding-small-horizontal;\n font-size: @font-size-small;\n border-radius: @input-border-radius-small;\n }\n &.input-lg {\n padding: @padding-large-vertical @padding-large-horizontal;\n font-size: @font-size-large;\n border-radius: @input-border-radius-large;\n }\n\n // Nuke default margins from checkboxes and radios to vertically center within.\n input[type=\"radio\"],\n input[type=\"checkbox\"] {\n margin-top: 0;\n }\n}\n\n// Reset rounded corners\n.input-group .form-control:first-child,\n.input-group-addon:first-child,\n.input-group-btn:first-child > .btn,\n.input-group-btn:first-child > .btn-group > .btn,\n.input-group-btn:first-child > .dropdown-toggle,\n.input-group-btn:last-child > .btn:not(:last-child):not(.dropdown-toggle),\n.input-group-btn:last-child > .btn-group:not(:last-child) > .btn {\n .border-right-radius(0);\n}\n.input-group-addon:first-child {\n border-right: 0;\n}\n.input-group .form-control:last-child,\n.input-group-addon:last-child,\n.input-group-btn:last-child > .btn,\n.input-group-btn:last-child > .btn-group > .btn,\n.input-group-btn:last-child > .dropdown-toggle,\n.input-group-btn:first-child > .btn:not(:first-child),\n.input-group-btn:first-child > .btn-group:not(:first-child) > .btn {\n .border-left-radius(0);\n}\n.input-group-addon:last-child {\n border-left: 0;\n}\n\n// Button input groups\n// -------------------------\n.input-group-btn {\n position: relative;\n // Jankily prevent input button groups from wrapping with `white-space` and\n // `font-size` in combination with `inline-block` on buttons.\n font-size: 0;\n white-space: nowrap;\n\n // Negative margin for spacing, position for bringing hovered/focused/actived\n // element above the siblings.\n > .btn {\n position: relative;\n + .btn {\n margin-left: -1px;\n }\n // Bring the \"active\" button to the front\n &:hover,\n &:focus,\n &:active {\n z-index: 2;\n }\n }\n\n // Negative margin to only have a 1px border between the two\n &:first-child {\n > .btn,\n > .btn-group {\n margin-right: -1px;\n }\n }\n &:last-child {\n > .btn,\n > .btn-group {\n z-index: 2;\n margin-left: -1px;\n }\n }\n}\n","//\n// Navs\n// --------------------------------------------------\n\n\n// Base class\n// --------------------------------------------------\n\n.nav {\n margin-bottom: 0;\n padding-left: 0; // Override default ul/ol\n list-style: none;\n &:extend(.clearfix all);\n\n > li {\n position: relative;\n display: block;\n\n > a {\n position: relative;\n display: block;\n padding: @nav-link-padding;\n &:hover,\n &:focus {\n text-decoration: none;\n background-color: @nav-link-hover-bg;\n }\n }\n\n // Disabled state sets text to gray and nukes hover/tab effects\n &.disabled > a {\n color: @nav-disabled-link-color;\n\n &:hover,\n &:focus {\n color: @nav-disabled-link-hover-color;\n text-decoration: none;\n background-color: transparent;\n cursor: @cursor-disabled;\n }\n }\n }\n\n // Open dropdowns\n .open > a {\n &,\n &:hover,\n &:focus {\n background-color: @nav-link-hover-bg;\n border-color: @link-color;\n }\n }\n\n // Nav dividers (deprecated with v3.0.1)\n //\n // This should have been removed in v3 with the dropping of `.nav-list`, but\n // we missed it. We don't currently support this anywhere, but in the interest\n // of maintaining backward compatibility in case you use it, it's deprecated.\n .nav-divider {\n .nav-divider();\n }\n\n // Prevent IE8 from misplacing imgs\n //\n // See https://github.com/h5bp/html5-boilerplate/issues/984#issuecomment-3985989\n > li > a > img {\n max-width: none;\n }\n}\n\n\n// Tabs\n// -------------------------\n\n// Give the tabs something to sit on\n.nav-tabs {\n border-bottom: 1px solid @nav-tabs-border-color;\n > li {\n float: left;\n // Make the list-items overlay the bottom border\n margin-bottom: -1px;\n\n // Actual tabs (as links)\n > a {\n margin-right: 2px;\n line-height: @line-height-base;\n border: 1px solid transparent;\n border-radius: @border-radius-base @border-radius-base 0 0;\n &:hover {\n border-color: @nav-tabs-link-hover-border-color @nav-tabs-link-hover-border-color @nav-tabs-border-color;\n }\n }\n\n // Active state, and its :hover to override normal :hover\n &.active > a {\n &,\n &:hover,\n &:focus {\n color: @nav-tabs-active-link-hover-color;\n background-color: @nav-tabs-active-link-hover-bg;\n border: 1px solid @nav-tabs-active-link-hover-border-color;\n border-bottom-color: transparent;\n cursor: default;\n }\n }\n }\n // pulling this in mainly for less shorthand\n &.nav-justified {\n .nav-justified();\n .nav-tabs-justified();\n }\n}\n\n\n// Pills\n// -------------------------\n.nav-pills {\n > li {\n float: left;\n\n // Links rendered as pills\n > a {\n border-radius: @nav-pills-border-radius;\n }\n + li {\n margin-left: 2px;\n }\n\n // Active state\n &.active > a {\n &,\n &:hover,\n &:focus {\n color: @nav-pills-active-link-hover-color;\n background-color: @nav-pills-active-link-hover-bg;\n }\n }\n }\n}\n\n\n// Stacked pills\n.nav-stacked {\n > li {\n float: none;\n + li {\n margin-top: 2px;\n margin-left: 0; // no need for this gap between nav items\n }\n }\n}\n\n\n// Nav variations\n// --------------------------------------------------\n\n// Justified nav links\n// -------------------------\n\n.nav-justified {\n width: 100%;\n\n > li {\n float: none;\n > a {\n text-align: center;\n margin-bottom: 5px;\n }\n }\n\n > .dropdown .dropdown-menu {\n top: auto;\n left: auto;\n }\n\n @media (min-width: @screen-sm-min) {\n > li {\n display: table-cell;\n width: 1%;\n > a {\n margin-bottom: 0;\n }\n }\n }\n}\n\n// Move borders to anchors instead of bottom of list\n//\n// Mixin for adding on top the shared `.nav-justified` styles for our tabs\n.nav-tabs-justified {\n border-bottom: 0;\n\n > li > a {\n // Override margin from .nav-tabs\n margin-right: 0;\n border-radius: @border-radius-base;\n }\n\n > .active > a,\n > .active > a:hover,\n > .active > a:focus {\n border: 1px solid @nav-tabs-justified-link-border-color;\n }\n\n @media (min-width: @screen-sm-min) {\n > li > a {\n border-bottom: 1px solid @nav-tabs-justified-link-border-color;\n border-radius: @border-radius-base @border-radius-base 0 0;\n }\n > .active > a,\n > .active > a:hover,\n > .active > a:focus {\n border-bottom-color: @nav-tabs-justified-active-link-border-color;\n }\n }\n}\n\n\n// Tabbable tabs\n// -------------------------\n\n// Hide tabbable panes to start, show them when `.active`\n.tab-content {\n > .tab-pane {\n display: none;\n }\n > .active {\n display: block;\n }\n}\n\n\n// Dropdowns\n// -------------------------\n\n// Specific dropdowns\n.nav-tabs .dropdown-menu {\n // make dropdown border overlap tab border\n margin-top: -1px;\n // Remove the top rounded corners here since there is a hard edge above the menu\n .border-top-radius(0);\n}\n","//\n// Navbars\n// --------------------------------------------------\n\n\n// Wrapper and base class\n//\n// Provide a static navbar from which we expand to create full-width, fixed, and\n// other navbar variations.\n\n.navbar {\n position: relative;\n min-height: @navbar-height; // Ensure a navbar always shows (e.g., without a .navbar-brand in collapsed mode)\n margin-bottom: @navbar-margin-bottom;\n border: 1px solid transparent;\n\n // Prevent floats from breaking the navbar\n &:extend(.clearfix all);\n\n @media (min-width: @grid-float-breakpoint) {\n border-radius: @navbar-border-radius;\n }\n}\n\n\n// Navbar heading\n//\n// Groups `.navbar-brand` and `.navbar-toggle` into a single component for easy\n// styling of responsive aspects.\n\n.navbar-header {\n &:extend(.clearfix all);\n\n @media (min-width: @grid-float-breakpoint) {\n float: left;\n }\n}\n\n\n// Navbar collapse (body)\n//\n// Group your navbar content into this for easy collapsing and expanding across\n// various device sizes. By default, this content is collapsed when <768px, but\n// will expand past that for a horizontal display.\n//\n// To start (on mobile devices) the navbar links, forms, and buttons are stacked\n// vertically and include a `max-height` to overflow in case you have too much\n// content for the user's viewport.\n\n.navbar-collapse {\n overflow-x: visible;\n padding-right: @navbar-padding-horizontal;\n padding-left: @navbar-padding-horizontal;\n border-top: 1px solid transparent;\n box-shadow: inset 0 1px 0 rgba(255,255,255,.1);\n &:extend(.clearfix all);\n -webkit-overflow-scrolling: touch;\n\n &.in {\n overflow-y: auto;\n }\n\n @media (min-width: @grid-float-breakpoint) {\n width: auto;\n border-top: 0;\n box-shadow: none;\n\n &.collapse {\n display: block !important;\n height: auto !important;\n padding-bottom: 0; // Override default setting\n overflow: visible !important;\n }\n\n &.in {\n overflow-y: visible;\n }\n\n // Undo the collapse side padding for navbars with containers to ensure\n // alignment of right-aligned contents.\n .navbar-fixed-top &,\n .navbar-static-top &,\n .navbar-fixed-bottom & {\n padding-left: 0;\n padding-right: 0;\n }\n }\n}\n\n.navbar-fixed-top,\n.navbar-fixed-bottom {\n .navbar-collapse {\n max-height: @navbar-collapse-max-height;\n\n @media (max-device-width: @screen-xs-min) and (orientation: landscape) {\n max-height: 200px;\n }\n }\n}\n\n\n// Both navbar header and collapse\n//\n// When a container is present, change the behavior of the header and collapse.\n\n.container,\n.container-fluid {\n > .navbar-header,\n > .navbar-collapse {\n margin-right: -@navbar-padding-horizontal;\n margin-left: -@navbar-padding-horizontal;\n\n @media (min-width: @grid-float-breakpoint) {\n margin-right: 0;\n margin-left: 0;\n }\n }\n}\n\n\n//\n// Navbar alignment options\n//\n// Display the navbar across the entirety of the page or fixed it to the top or\n// bottom of the page.\n\n// Static top (unfixed, but 100% wide) navbar\n.navbar-static-top {\n z-index: @zindex-navbar;\n border-width: 0 0 1px;\n\n @media (min-width: @grid-float-breakpoint) {\n border-radius: 0;\n }\n}\n\n// Fix the top/bottom navbars when screen real estate supports it\n.navbar-fixed-top,\n.navbar-fixed-bottom {\n position: fixed;\n right: 0;\n left: 0;\n z-index: @zindex-navbar-fixed;\n\n // Undo the rounded corners\n @media (min-width: @grid-float-breakpoint) {\n border-radius: 0;\n }\n}\n.navbar-fixed-top {\n top: 0;\n border-width: 0 0 1px;\n}\n.navbar-fixed-bottom {\n bottom: 0;\n margin-bottom: 0; // override .navbar defaults\n border-width: 1px 0 0;\n}\n\n\n// Brand/project name\n\n.navbar-brand {\n float: left;\n padding: @navbar-padding-vertical @navbar-padding-horizontal;\n font-size: @font-size-large;\n line-height: @line-height-computed;\n height: @navbar-height;\n\n &:hover,\n &:focus {\n text-decoration: none;\n }\n\n > img {\n display: block;\n }\n\n @media (min-width: @grid-float-breakpoint) {\n .navbar > .container &,\n .navbar > .container-fluid & {\n margin-left: -@navbar-padding-horizontal;\n }\n }\n}\n\n\n// Navbar toggle\n//\n// Custom button for toggling the `.navbar-collapse`, powered by the collapse\n// JavaScript plugin.\n\n.navbar-toggle {\n position: relative;\n float: right;\n margin-right: @navbar-padding-horizontal;\n padding: 9px 10px;\n .navbar-vertical-align(34px);\n background-color: transparent;\n background-image: none; // Reset unusual Firefox-on-Android default style; see https://github.com/necolas/normalize.css/issues/214\n border: 1px solid transparent;\n border-radius: @border-radius-base;\n\n // We remove the `outline` here, but later compensate by attaching `:hover`\n // styles to `:focus`.\n &:focus {\n outline: 0;\n }\n\n // Bars\n .icon-bar {\n display: block;\n width: 22px;\n height: 2px;\n border-radius: 1px;\n }\n .icon-bar + .icon-bar {\n margin-top: 4px;\n }\n\n @media (min-width: @grid-float-breakpoint) {\n display: none;\n }\n}\n\n\n// Navbar nav links\n//\n// Builds on top of the `.nav` components with its own modifier class to make\n// the nav the full height of the horizontal nav (above 768px).\n\n.navbar-nav {\n margin: (@navbar-padding-vertical / 2) -@navbar-padding-horizontal;\n\n > li > a {\n padding-top: 10px;\n padding-bottom: 10px;\n line-height: @line-height-computed;\n }\n\n @media (max-width: @grid-float-breakpoint-max) {\n // Dropdowns get custom display when collapsed\n .open .dropdown-menu {\n position: static;\n float: none;\n width: auto;\n margin-top: 0;\n background-color: transparent;\n border: 0;\n box-shadow: none;\n > li > a,\n .dropdown-header {\n padding: 5px 15px 5px 25px;\n }\n > li > a {\n line-height: @line-height-computed;\n &:hover,\n &:focus {\n background-image: none;\n }\n }\n }\n }\n\n // Uncollapse the nav\n @media (min-width: @grid-float-breakpoint) {\n float: left;\n margin: 0;\n\n > li {\n float: left;\n > a {\n padding-top: @navbar-padding-vertical;\n padding-bottom: @navbar-padding-vertical;\n }\n }\n }\n}\n\n\n// Navbar form\n//\n// Extension of the `.form-inline` with some extra flavor for optimum display in\n// our navbars.\n\n.navbar-form {\n margin-left: -@navbar-padding-horizontal;\n margin-right: -@navbar-padding-horizontal;\n padding: 10px @navbar-padding-horizontal;\n border-top: 1px solid transparent;\n border-bottom: 1px solid transparent;\n @shadow: inset 0 1px 0 rgba(255,255,255,.1), 0 1px 0 rgba(255,255,255,.1);\n .box-shadow(@shadow);\n\n // Mixin behavior for optimum display\n .form-inline();\n\n .form-group {\n @media (max-width: @grid-float-breakpoint-max) {\n margin-bottom: 5px;\n\n &:last-child {\n margin-bottom: 0;\n }\n }\n }\n\n // Vertically center in expanded, horizontal navbar\n .navbar-vertical-align(@input-height-base);\n\n // Undo 100% width for pull classes\n @media (min-width: @grid-float-breakpoint) {\n width: auto;\n border: 0;\n margin-left: 0;\n margin-right: 0;\n padding-top: 0;\n padding-bottom: 0;\n .box-shadow(none);\n }\n}\n\n\n// Dropdown menus\n\n// Menu position and menu carets\n.navbar-nav > li > .dropdown-menu {\n margin-top: 0;\n .border-top-radius(0);\n}\n// Menu position and menu caret support for dropups via extra dropup class\n.navbar-fixed-bottom .navbar-nav > li > .dropdown-menu {\n margin-bottom: 0;\n .border-top-radius(@navbar-border-radius);\n .border-bottom-radius(0);\n}\n\n\n// Buttons in navbars\n//\n// Vertically center a button within a navbar (when *not* in a form).\n\n.navbar-btn {\n .navbar-vertical-align(@input-height-base);\n\n &.btn-sm {\n .navbar-vertical-align(@input-height-small);\n }\n &.btn-xs {\n .navbar-vertical-align(22);\n }\n}\n\n\n// Text in navbars\n//\n// Add a class to make any element properly align itself vertically within the navbars.\n\n.navbar-text {\n .navbar-vertical-align(@line-height-computed);\n\n @media (min-width: @grid-float-breakpoint) {\n float: left;\n margin-left: @navbar-padding-horizontal;\n margin-right: @navbar-padding-horizontal;\n }\n}\n\n\n// Component alignment\n//\n// Repurpose the pull utilities as their own navbar utilities to avoid specificity\n// issues with parents and chaining. Only do this when the navbar is uncollapsed\n// though so that navbar contents properly stack and align in mobile.\n//\n// Declared after the navbar components to ensure more specificity on the margins.\n\n@media (min-width: @grid-float-breakpoint) {\n .navbar-left { .pull-left(); }\n .navbar-right {\n .pull-right();\n margin-right: -@navbar-padding-horizontal;\n\n ~ .navbar-right {\n margin-right: 0;\n }\n }\n}\n\n\n// Alternate navbars\n// --------------------------------------------------\n\n// Default navbar\n.navbar-default {\n background-color: @navbar-default-bg;\n border-color: @navbar-default-border;\n\n .navbar-brand {\n color: @navbar-default-brand-color;\n &:hover,\n &:focus {\n color: @navbar-default-brand-hover-color;\n background-color: @navbar-default-brand-hover-bg;\n }\n }\n\n .navbar-text {\n color: @navbar-default-color;\n }\n\n .navbar-nav {\n > li > a {\n color: @navbar-default-link-color;\n\n &:hover,\n &:focus {\n color: @navbar-default-link-hover-color;\n background-color: @navbar-default-link-hover-bg;\n }\n }\n > .active > a {\n &,\n &:hover,\n &:focus {\n color: @navbar-default-link-active-color;\n background-color: @navbar-default-link-active-bg;\n }\n }\n > .disabled > a {\n &,\n &:hover,\n &:focus {\n color: @navbar-default-link-disabled-color;\n background-color: @navbar-default-link-disabled-bg;\n }\n }\n }\n\n .navbar-toggle {\n border-color: @navbar-default-toggle-border-color;\n &:hover,\n &:focus {\n background-color: @navbar-default-toggle-hover-bg;\n }\n .icon-bar {\n background-color: @navbar-default-toggle-icon-bar-bg;\n }\n }\n\n .navbar-collapse,\n .navbar-form {\n border-color: @navbar-default-border;\n }\n\n // Dropdown menu items\n .navbar-nav {\n // Remove background color from open dropdown\n > .open > a {\n &,\n &:hover,\n &:focus {\n background-color: @navbar-default-link-active-bg;\n color: @navbar-default-link-active-color;\n }\n }\n\n @media (max-width: @grid-float-breakpoint-max) {\n // Dropdowns get custom display when collapsed\n .open .dropdown-menu {\n > li > a {\n color: @navbar-default-link-color;\n &:hover,\n &:focus {\n color: @navbar-default-link-hover-color;\n background-color: @navbar-default-link-hover-bg;\n }\n }\n > .active > a {\n &,\n &:hover,\n &:focus {\n color: @navbar-default-link-active-color;\n background-color: @navbar-default-link-active-bg;\n }\n }\n > .disabled > a {\n &,\n &:hover,\n &:focus {\n color: @navbar-default-link-disabled-color;\n background-color: @navbar-default-link-disabled-bg;\n }\n }\n }\n }\n }\n\n\n // Links in navbars\n //\n // Add a class to ensure links outside the navbar nav are colored correctly.\n\n .navbar-link {\n color: @navbar-default-link-color;\n &:hover {\n color: @navbar-default-link-hover-color;\n }\n }\n\n .btn-link {\n color: @navbar-default-link-color;\n &:hover,\n &:focus {\n color: @navbar-default-link-hover-color;\n }\n &[disabled],\n fieldset[disabled] & {\n &:hover,\n &:focus {\n color: @navbar-default-link-disabled-color;\n }\n }\n }\n}\n\n// Inverse navbar\n\n.navbar-inverse {\n background-color: @navbar-inverse-bg;\n border-color: @navbar-inverse-border;\n\n .navbar-brand {\n color: @navbar-inverse-brand-color;\n &:hover,\n &:focus {\n color: @navbar-inverse-brand-hover-color;\n background-color: @navbar-inverse-brand-hover-bg;\n }\n }\n\n .navbar-text {\n color: @navbar-inverse-color;\n }\n\n .navbar-nav {\n > li > a {\n color: @navbar-inverse-link-color;\n\n &:hover,\n &:focus {\n color: @navbar-inverse-link-hover-color;\n background-color: @navbar-inverse-link-hover-bg;\n }\n }\n > .active > a {\n &,\n &:hover,\n &:focus {\n color: @navbar-inverse-link-active-color;\n background-color: @navbar-inverse-link-active-bg;\n }\n }\n > .disabled > a {\n &,\n &:hover,\n &:focus {\n color: @navbar-inverse-link-disabled-color;\n background-color: @navbar-inverse-link-disabled-bg;\n }\n }\n }\n\n // Darken the responsive nav toggle\n .navbar-toggle {\n border-color: @navbar-inverse-toggle-border-color;\n &:hover,\n &:focus {\n background-color: @navbar-inverse-toggle-hover-bg;\n }\n .icon-bar {\n background-color: @navbar-inverse-toggle-icon-bar-bg;\n }\n }\n\n .navbar-collapse,\n .navbar-form {\n border-color: darken(@navbar-inverse-bg, 7%);\n }\n\n // Dropdowns\n .navbar-nav {\n > .open > a {\n &,\n &:hover,\n &:focus {\n background-color: @navbar-inverse-link-active-bg;\n color: @navbar-inverse-link-active-color;\n }\n }\n\n @media (max-width: @grid-float-breakpoint-max) {\n // Dropdowns get custom display\n .open .dropdown-menu {\n > .dropdown-header {\n border-color: @navbar-inverse-border;\n }\n .divider {\n background-color: @navbar-inverse-border;\n }\n > li > a {\n color: @navbar-inverse-link-color;\n &:hover,\n &:focus {\n color: @navbar-inverse-link-hover-color;\n background-color: @navbar-inverse-link-hover-bg;\n }\n }\n > .active > a {\n &,\n &:hover,\n &:focus {\n color: @navbar-inverse-link-active-color;\n background-color: @navbar-inverse-link-active-bg;\n }\n }\n > .disabled > a {\n &,\n &:hover,\n &:focus {\n color: @navbar-inverse-link-disabled-color;\n background-color: @navbar-inverse-link-disabled-bg;\n }\n }\n }\n }\n }\n\n .navbar-link {\n color: @navbar-inverse-link-color;\n &:hover {\n color: @navbar-inverse-link-hover-color;\n }\n }\n\n .btn-link {\n color: @navbar-inverse-link-color;\n &:hover,\n &:focus {\n color: @navbar-inverse-link-hover-color;\n }\n &[disabled],\n fieldset[disabled] & {\n &:hover,\n &:focus {\n color: @navbar-inverse-link-disabled-color;\n }\n }\n }\n}\n","// Navbar vertical align\n//\n// Vertically center elements in the navbar.\n// Example: an element has a height of 30px, so write out `.navbar-vertical-align(30px);` to calculate the appropriate top margin.\n\n.navbar-vertical-align(@element-height) {\n margin-top: ((@navbar-height - @element-height) / 2);\n margin-bottom: ((@navbar-height - @element-height) / 2);\n}\n","//\n// Utility classes\n// --------------------------------------------------\n\n\n// Floats\n// -------------------------\n\n.clearfix {\n .clearfix();\n}\n.center-block {\n .center-block();\n}\n.pull-right {\n float: right !important;\n}\n.pull-left {\n float: left !important;\n}\n\n\n// Toggling content\n// -------------------------\n\n// Note: Deprecated .hide in favor of .hidden or .sr-only (as appropriate) in v3.0.1\n.hide {\n display: none !important;\n}\n.show {\n display: block !important;\n}\n.invisible {\n visibility: hidden;\n}\n.text-hide {\n .text-hide();\n}\n\n\n// Hide from screenreaders and browsers\n//\n// Credit: HTML5 Boilerplate\n\n.hidden {\n display: none !important;\n}\n\n\n// For Affix plugin\n// -------------------------\n\n.affix {\n position: fixed;\n}\n","//\n// Breadcrumbs\n// --------------------------------------------------\n\n\n.breadcrumb {\n padding: @breadcrumb-padding-vertical @breadcrumb-padding-horizontal;\n margin-bottom: @line-height-computed;\n list-style: none;\n background-color: @breadcrumb-bg;\n border-radius: @border-radius-base;\n\n > li {\n display: inline-block;\n\n + li:before {\n content: \"@{breadcrumb-separator}\\00a0\"; // Unicode space added since inline-block means non-collapsing white-space\n padding: 0 5px;\n color: @breadcrumb-color;\n }\n }\n\n > .active {\n color: @breadcrumb-active-color;\n }\n}\n","//\n// Pagination (multiple pages)\n// --------------------------------------------------\n.pagination {\n display: inline-block;\n padding-left: 0;\n margin: @line-height-computed 0;\n border-radius: @border-radius-base;\n\n > li {\n display: inline; // Remove list-style and block-level defaults\n > a,\n > span {\n position: relative;\n float: left; // Collapse white-space\n padding: @padding-base-vertical @padding-base-horizontal;\n line-height: @line-height-base;\n text-decoration: none;\n color: @pagination-color;\n background-color: @pagination-bg;\n border: 1px solid @pagination-border;\n margin-left: -1px;\n }\n &:first-child {\n > a,\n > span {\n margin-left: 0;\n .border-left-radius(@border-radius-base);\n }\n }\n &:last-child {\n > a,\n > span {\n .border-right-radius(@border-radius-base);\n }\n }\n }\n\n > li > a,\n > li > span {\n &:hover,\n &:focus {\n z-index: 2;\n color: @pagination-hover-color;\n background-color: @pagination-hover-bg;\n border-color: @pagination-hover-border;\n }\n }\n\n > .active > a,\n > .active > span {\n &,\n &:hover,\n &:focus {\n z-index: 3;\n color: @pagination-active-color;\n background-color: @pagination-active-bg;\n border-color: @pagination-active-border;\n cursor: default;\n }\n }\n\n > .disabled {\n > span,\n > span:hover,\n > span:focus,\n > a,\n > a:hover,\n > a:focus {\n color: @pagination-disabled-color;\n background-color: @pagination-disabled-bg;\n border-color: @pagination-disabled-border;\n cursor: @cursor-disabled;\n }\n }\n}\n\n// Sizing\n// --------------------------------------------------\n\n// Large\n.pagination-lg {\n .pagination-size(@padding-large-vertical; @padding-large-horizontal; @font-size-large; @line-height-large; @border-radius-large);\n}\n\n// Small\n.pagination-sm {\n .pagination-size(@padding-small-vertical; @padding-small-horizontal; @font-size-small; @line-height-small; @border-radius-small);\n}\n","// Pagination\n\n.pagination-size(@padding-vertical; @padding-horizontal; @font-size; @line-height; @border-radius) {\n > li {\n > a,\n > span {\n padding: @padding-vertical @padding-horizontal;\n font-size: @font-size;\n line-height: @line-height;\n }\n &:first-child {\n > a,\n > span {\n .border-left-radius(@border-radius);\n }\n }\n &:last-child {\n > a,\n > span {\n .border-right-radius(@border-radius);\n }\n }\n }\n}\n","//\n// Pager pagination\n// --------------------------------------------------\n\n\n.pager {\n padding-left: 0;\n margin: @line-height-computed 0;\n list-style: none;\n text-align: center;\n &:extend(.clearfix all);\n li {\n display: inline;\n > a,\n > span {\n display: inline-block;\n padding: 5px 14px;\n background-color: @pager-bg;\n border: 1px solid @pager-border;\n border-radius: @pager-border-radius;\n }\n\n > a:hover,\n > a:focus {\n text-decoration: none;\n background-color: @pager-hover-bg;\n }\n }\n\n .next {\n > a,\n > span {\n float: right;\n }\n }\n\n .previous {\n > a,\n > span {\n float: left;\n }\n }\n\n .disabled {\n > a,\n > a:hover,\n > a:focus,\n > span {\n color: @pager-disabled-color;\n background-color: @pager-bg;\n cursor: @cursor-disabled;\n }\n }\n}\n","//\n// Labels\n// --------------------------------------------------\n\n.label {\n display: inline;\n padding: .2em .6em .3em;\n font-size: 75%;\n font-weight: bold;\n line-height: 1;\n color: @label-color;\n text-align: center;\n white-space: nowrap;\n vertical-align: baseline;\n border-radius: .25em;\n\n // Add hover effects, but only for links\n a& {\n &:hover,\n &:focus {\n color: @label-link-hover-color;\n text-decoration: none;\n cursor: pointer;\n }\n }\n\n // Empty labels collapse automatically (not available in IE8)\n &:empty {\n display: none;\n }\n\n // Quick fix for labels in buttons\n .btn & {\n position: relative;\n top: -1px;\n }\n}\n\n// Colors\n// Contextual variations (linked labels get darker on :hover)\n\n.label-default {\n .label-variant(@label-default-bg);\n}\n\n.label-primary {\n .label-variant(@label-primary-bg);\n}\n\n.label-success {\n .label-variant(@label-success-bg);\n}\n\n.label-info {\n .label-variant(@label-info-bg);\n}\n\n.label-warning {\n .label-variant(@label-warning-bg);\n}\n\n.label-danger {\n .label-variant(@label-danger-bg);\n}\n","// Labels\n\n.label-variant(@color) {\n background-color: @color;\n\n &[href] {\n &:hover,\n &:focus {\n background-color: darken(@color, 10%);\n }\n }\n}\n","//\n// Badges\n// --------------------------------------------------\n\n\n// Base class\n.badge {\n display: inline-block;\n min-width: 10px;\n padding: 3px 7px;\n font-size: @font-size-small;\n font-weight: @badge-font-weight;\n color: @badge-color;\n line-height: @badge-line-height;\n vertical-align: middle;\n white-space: nowrap;\n text-align: center;\n background-color: @badge-bg;\n border-radius: @badge-border-radius;\n\n // Empty badges collapse automatically (not available in IE8)\n &:empty {\n display: none;\n }\n\n // Quick fix for badges in buttons\n .btn & {\n position: relative;\n top: -1px;\n }\n\n .btn-xs &,\n .btn-group-xs > .btn & {\n top: 0;\n padding: 1px 5px;\n }\n\n // Hover state, but only for links\n a& {\n &:hover,\n &:focus {\n color: @badge-link-hover-color;\n text-decoration: none;\n cursor: pointer;\n }\n }\n\n // Account for badges in navs\n .list-group-item.active > &,\n .nav-pills > .active > a > & {\n color: @badge-active-color;\n background-color: @badge-active-bg;\n }\n\n .list-group-item > & {\n float: right;\n }\n\n .list-group-item > & + & {\n margin-right: 5px;\n }\n\n .nav-pills > li > a > & {\n margin-left: 3px;\n }\n}\n","//\n// Jumbotron\n// --------------------------------------------------\n\n\n.jumbotron {\n padding-top: @jumbotron-padding;\n padding-bottom: @jumbotron-padding;\n margin-bottom: @jumbotron-padding;\n color: @jumbotron-color;\n background-color: @jumbotron-bg;\n\n h1,\n .h1 {\n color: @jumbotron-heading-color;\n }\n\n p {\n margin-bottom: (@jumbotron-padding / 2);\n font-size: @jumbotron-font-size;\n font-weight: 200;\n }\n\n > hr {\n border-top-color: darken(@jumbotron-bg, 10%);\n }\n\n .container &,\n .container-fluid & {\n border-radius: @border-radius-large; // Only round corners at higher resolutions if contained in a container\n padding-left: (@grid-gutter-width / 2);\n padding-right: (@grid-gutter-width / 2);\n }\n\n .container {\n max-width: 100%;\n }\n\n @media screen and (min-width: @screen-sm-min) {\n padding-top: (@jumbotron-padding * 1.6);\n padding-bottom: (@jumbotron-padding * 1.6);\n\n .container &,\n .container-fluid & {\n padding-left: (@jumbotron-padding * 2);\n padding-right: (@jumbotron-padding * 2);\n }\n\n h1,\n .h1 {\n font-size: @jumbotron-heading-font-size;\n }\n }\n}\n","//\n// Thumbnails\n// --------------------------------------------------\n\n\n// Mixin and adjust the regular image class\n.thumbnail {\n display: block;\n padding: @thumbnail-padding;\n margin-bottom: @line-height-computed;\n line-height: @line-height-base;\n background-color: @thumbnail-bg;\n border: 1px solid @thumbnail-border;\n border-radius: @thumbnail-border-radius;\n .transition(border .2s ease-in-out);\n\n > img,\n a > img {\n &:extend(.img-responsive);\n margin-left: auto;\n margin-right: auto;\n }\n\n // Add a hover state for linked versions only\n a&:hover,\n a&:focus,\n a&.active {\n border-color: @link-color;\n }\n\n // Image captions\n .caption {\n padding: @thumbnail-caption-padding;\n color: @thumbnail-caption-color;\n }\n}\n","//\n// Alerts\n// --------------------------------------------------\n\n\n// Base styles\n// -------------------------\n\n.alert {\n padding: @alert-padding;\n margin-bottom: @line-height-computed;\n border: 1px solid transparent;\n border-radius: @alert-border-radius;\n\n // Headings for larger alerts\n h4 {\n margin-top: 0;\n // Specified for the h4 to prevent conflicts of changing @headings-color\n color: inherit;\n }\n\n // Provide class for links that match alerts\n .alert-link {\n font-weight: @alert-link-font-weight;\n }\n\n // Improve alignment and spacing of inner content\n > p,\n > ul {\n margin-bottom: 0;\n }\n\n > p + p {\n margin-top: 5px;\n }\n}\n\n// Dismissible alerts\n//\n// Expand the right padding and account for the close button's positioning.\n\n.alert-dismissable, // The misspelled .alert-dismissable was deprecated in 3.2.0.\n.alert-dismissible {\n padding-right: (@alert-padding + 20);\n\n // Adjust close link position\n .close {\n position: relative;\n top: -2px;\n right: -21px;\n color: inherit;\n }\n}\n\n// Alternate styles\n//\n// Generate contextual modifier classes for colorizing the alert.\n\n.alert-success {\n .alert-variant(@alert-success-bg; @alert-success-border; @alert-success-text);\n}\n\n.alert-info {\n .alert-variant(@alert-info-bg; @alert-info-border; @alert-info-text);\n}\n\n.alert-warning {\n .alert-variant(@alert-warning-bg; @alert-warning-border; @alert-warning-text);\n}\n\n.alert-danger {\n .alert-variant(@alert-danger-bg; @alert-danger-border; @alert-danger-text);\n}\n","// Alerts\n\n.alert-variant(@background; @border; @text-color) {\n background-color: @background;\n border-color: @border;\n color: @text-color;\n\n hr {\n border-top-color: darken(@border, 5%);\n }\n .alert-link {\n color: darken(@text-color, 10%);\n }\n}\n","//\n// Progress bars\n// --------------------------------------------------\n\n\n// Bar animations\n// -------------------------\n\n// WebKit\n@-webkit-keyframes progress-bar-stripes {\n from { background-position: 40px 0; }\n to { background-position: 0 0; }\n}\n\n// Spec and IE10+\n@keyframes progress-bar-stripes {\n from { background-position: 40px 0; }\n to { background-position: 0 0; }\n}\n\n\n// Bar itself\n// -------------------------\n\n// Outer container\n.progress {\n overflow: hidden;\n height: @line-height-computed;\n margin-bottom: @line-height-computed;\n background-color: @progress-bg;\n border-radius: @progress-border-radius;\n .box-shadow(inset 0 1px 2px rgba(0,0,0,.1));\n}\n\n// Bar of progress\n.progress-bar {\n float: left;\n width: 0%;\n height: 100%;\n font-size: @font-size-small;\n line-height: @line-height-computed;\n color: @progress-bar-color;\n text-align: center;\n background-color: @progress-bar-bg;\n .box-shadow(inset 0 -1px 0 rgba(0,0,0,.15));\n .transition(width .6s ease);\n}\n\n// Striped bars\n//\n// `.progress-striped .progress-bar` is deprecated as of v3.2.0 in favor of the\n// `.progress-bar-striped` class, which you just add to an existing\n// `.progress-bar`.\n.progress-striped .progress-bar,\n.progress-bar-striped {\n #gradient > .striped();\n background-size: 40px 40px;\n}\n\n// Call animation for the active one\n//\n// `.progress.active .progress-bar` is deprecated as of v3.2.0 in favor of the\n// `.progress-bar.active` approach.\n.progress.active .progress-bar,\n.progress-bar.active {\n .animation(progress-bar-stripes 2s linear infinite);\n}\n\n\n// Variations\n// -------------------------\n\n.progress-bar-success {\n .progress-bar-variant(@progress-bar-success-bg);\n}\n\n.progress-bar-info {\n .progress-bar-variant(@progress-bar-info-bg);\n}\n\n.progress-bar-warning {\n .progress-bar-variant(@progress-bar-warning-bg);\n}\n\n.progress-bar-danger {\n .progress-bar-variant(@progress-bar-danger-bg);\n}\n","// Gradients\n\n#gradient {\n\n // Horizontal gradient, from left to right\n //\n // Creates two color stops, start and end, by specifying a color and position for each color stop.\n // Color stops are not available in IE9 and below.\n .horizontal(@start-color: #555; @end-color: #333; @start-percent: 0%; @end-percent: 100%) {\n background-image: -webkit-linear-gradient(left, @start-color @start-percent, @end-color @end-percent); // Safari 5.1-6, Chrome 10+\n background-image: -o-linear-gradient(left, @start-color @start-percent, @end-color @end-percent); // Opera 12\n background-image: linear-gradient(to right, @start-color @start-percent, @end-color @end-percent); // Standard, IE10, Firefox 16+, Opera 12.10+, Safari 7+, Chrome 26+\n background-repeat: repeat-x;\n filter: e(%(\"progid:DXImageTransform.Microsoft.gradient(startColorstr='%d', endColorstr='%d', GradientType=1)\",argb(@start-color),argb(@end-color))); // IE9 and down\n }\n\n // Vertical gradient, from top to bottom\n //\n // Creates two color stops, start and end, by specifying a color and position for each color stop.\n // Color stops are not available in IE9 and below.\n .vertical(@start-color: #555; @end-color: #333; @start-percent: 0%; @end-percent: 100%) {\n background-image: -webkit-linear-gradient(top, @start-color @start-percent, @end-color @end-percent); // Safari 5.1-6, Chrome 10+\n background-image: -o-linear-gradient(top, @start-color @start-percent, @end-color @end-percent); // Opera 12\n background-image: linear-gradient(to bottom, @start-color @start-percent, @end-color @end-percent); // Standard, IE10, Firefox 16+, Opera 12.10+, Safari 7+, Chrome 26+\n background-repeat: repeat-x;\n filter: e(%(\"progid:DXImageTransform.Microsoft.gradient(startColorstr='%d', endColorstr='%d', GradientType=0)\",argb(@start-color),argb(@end-color))); // IE9 and down\n }\n\n .directional(@start-color: #555; @end-color: #333; @deg: 45deg) {\n background-repeat: repeat-x;\n background-image: -webkit-linear-gradient(@deg, @start-color, @end-color); // Safari 5.1-6, Chrome 10+\n background-image: -o-linear-gradient(@deg, @start-color, @end-color); // Opera 12\n background-image: linear-gradient(@deg, @start-color, @end-color); // Standard, IE10, Firefox 16+, Opera 12.10+, Safari 7+, Chrome 26+\n }\n .horizontal-three-colors(@start-color: #00b3ee; @mid-color: #7a43b6; @color-stop: 50%; @end-color: #c3325f) {\n background-image: -webkit-linear-gradient(left, @start-color, @mid-color @color-stop, @end-color);\n background-image: -o-linear-gradient(left, @start-color, @mid-color @color-stop, @end-color);\n background-image: linear-gradient(to right, @start-color, @mid-color @color-stop, @end-color);\n background-repeat: no-repeat;\n filter: e(%(\"progid:DXImageTransform.Microsoft.gradient(startColorstr='%d', endColorstr='%d', GradientType=1)\",argb(@start-color),argb(@end-color))); // IE9 and down, gets no color-stop at all for proper fallback\n }\n .vertical-three-colors(@start-color: #00b3ee; @mid-color: #7a43b6; @color-stop: 50%; @end-color: #c3325f) {\n background-image: -webkit-linear-gradient(@start-color, @mid-color @color-stop, @end-color);\n background-image: -o-linear-gradient(@start-color, @mid-color @color-stop, @end-color);\n background-image: linear-gradient(@start-color, @mid-color @color-stop, @end-color);\n background-repeat: no-repeat;\n filter: e(%(\"progid:DXImageTransform.Microsoft.gradient(startColorstr='%d', endColorstr='%d', GradientType=0)\",argb(@start-color),argb(@end-color))); // IE9 and down, gets no color-stop at all for proper fallback\n }\n .radial(@inner-color: #555; @outer-color: #333) {\n background-image: -webkit-radial-gradient(circle, @inner-color, @outer-color);\n background-image: radial-gradient(circle, @inner-color, @outer-color);\n background-repeat: no-repeat;\n }\n .striped(@color: rgba(255,255,255,.15); @angle: 45deg) {\n background-image: -webkit-linear-gradient(@angle, @color 25%, transparent 25%, transparent 50%, @color 50%, @color 75%, transparent 75%, transparent);\n background-image: -o-linear-gradient(@angle, @color 25%, transparent 25%, transparent 50%, @color 50%, @color 75%, transparent 75%, transparent);\n background-image: linear-gradient(@angle, @color 25%, transparent 25%, transparent 50%, @color 50%, @color 75%, transparent 75%, transparent);\n }\n}\n","// Progress bars\n\n.progress-bar-variant(@color) {\n background-color: @color;\n\n // Deprecated parent class requirement as of v3.2.0\n .progress-striped & {\n #gradient > .striped();\n }\n}\n",".media {\n // Proper spacing between instances of .media\n margin-top: 15px;\n\n &:first-child {\n margin-top: 0;\n }\n}\n\n.media,\n.media-body {\n zoom: 1;\n overflow: hidden;\n}\n\n.media-body {\n width: 10000px;\n}\n\n.media-object {\n display: block;\n\n // Fix collapse in webkit from max-width: 100% and display: table-cell.\n &.img-thumbnail {\n max-width: none;\n }\n}\n\n.media-right,\n.media > .pull-right {\n padding-left: 10px;\n}\n\n.media-left,\n.media > .pull-left {\n padding-right: 10px;\n}\n\n.media-left,\n.media-right,\n.media-body {\n display: table-cell;\n vertical-align: top;\n}\n\n.media-middle {\n vertical-align: middle;\n}\n\n.media-bottom {\n vertical-align: bottom;\n}\n\n// Reset margins on headings for tighter default spacing\n.media-heading {\n margin-top: 0;\n margin-bottom: 5px;\n}\n\n// Media list variation\n//\n// Undo default ul/ol styles\n.media-list {\n padding-left: 0;\n list-style: none;\n}\n","//\n// List groups\n// --------------------------------------------------\n\n\n// Base class\n//\n// Easily usable on <ul>, <ol>, or <div>.\n\n.list-group {\n // No need to set list-style: none; since .list-group-item is block level\n margin-bottom: 20px;\n padding-left: 0; // reset padding because ul and ol\n}\n\n\n// Individual list items\n//\n// Use on `li`s or `div`s within the `.list-group` parent.\n\n.list-group-item {\n position: relative;\n display: block;\n padding: 10px 15px;\n // Place the border on the list items and negative margin up for better styling\n margin-bottom: -1px;\n background-color: @list-group-bg;\n border: 1px solid @list-group-border;\n\n // Round the first and last items\n &:first-child {\n .border-top-radius(@list-group-border-radius);\n }\n &:last-child {\n margin-bottom: 0;\n .border-bottom-radius(@list-group-border-radius);\n }\n}\n\n\n// Interactive list items\n//\n// Use anchor or button elements instead of `li`s or `div`s to create interactive items.\n// Includes an extra `.active` modifier class for showing selected items.\n\na.list-group-item,\nbutton.list-group-item {\n color: @list-group-link-color;\n\n .list-group-item-heading {\n color: @list-group-link-heading-color;\n }\n\n // Hover state\n &:hover,\n &:focus {\n text-decoration: none;\n color: @list-group-link-hover-color;\n background-color: @list-group-hover-bg;\n }\n}\n\nbutton.list-group-item {\n width: 100%;\n text-align: left;\n}\n\n.list-group-item {\n // Disabled state\n &.disabled,\n &.disabled:hover,\n &.disabled:focus {\n background-color: @list-group-disabled-bg;\n color: @list-group-disabled-color;\n cursor: @cursor-disabled;\n\n // Force color to inherit for custom content\n .list-group-item-heading {\n color: inherit;\n }\n .list-group-item-text {\n color: @list-group-disabled-text-color;\n }\n }\n\n // Active class on item itself, not parent\n &.active,\n &.active:hover,\n &.active:focus {\n z-index: 2; // Place active items above their siblings for proper border styling\n color: @list-group-active-color;\n background-color: @list-group-active-bg;\n border-color: @list-group-active-border;\n\n // Force color to inherit for custom content\n .list-group-item-heading,\n .list-group-item-heading > small,\n .list-group-item-heading > .small {\n color: inherit;\n }\n .list-group-item-text {\n color: @list-group-active-text-color;\n }\n }\n}\n\n\n// Contextual variants\n//\n// Add modifier classes to change text and background color on individual items.\n// Organizationally, this must come after the `:hover` states.\n\n.list-group-item-variant(success; @state-success-bg; @state-success-text);\n.list-group-item-variant(info; @state-info-bg; @state-info-text);\n.list-group-item-variant(warning; @state-warning-bg; @state-warning-text);\n.list-group-item-variant(danger; @state-danger-bg; @state-danger-text);\n\n\n// Custom content options\n//\n// Extra classes for creating well-formatted content within `.list-group-item`s.\n\n.list-group-item-heading {\n margin-top: 0;\n margin-bottom: 5px;\n}\n.list-group-item-text {\n margin-bottom: 0;\n line-height: 1.3;\n}\n","// List Groups\n\n.list-group-item-variant(@state; @background; @color) {\n .list-group-item-@{state} {\n color: @color;\n background-color: @background;\n\n a&,\n button& {\n color: @color;\n\n .list-group-item-heading {\n color: inherit;\n }\n\n &:hover,\n &:focus {\n color: @color;\n background-color: darken(@background, 5%);\n }\n &.active,\n &.active:hover,\n &.active:focus {\n color: #fff;\n background-color: @color;\n border-color: @color;\n }\n }\n }\n}\n","//\n// Panels\n// --------------------------------------------------\n\n\n// Base class\n.panel {\n margin-bottom: @line-height-computed;\n background-color: @panel-bg;\n border: 1px solid transparent;\n border-radius: @panel-border-radius;\n .box-shadow(0 1px 1px rgba(0,0,0,.05));\n}\n\n// Panel contents\n.panel-body {\n padding: @panel-body-padding;\n &:extend(.clearfix all);\n}\n\n// Optional heading\n.panel-heading {\n padding: @panel-heading-padding;\n border-bottom: 1px solid transparent;\n .border-top-radius((@panel-border-radius - 1));\n\n > .dropdown .dropdown-toggle {\n color: inherit;\n }\n}\n\n// Within heading, strip any `h*` tag of its default margins for spacing.\n.panel-title {\n margin-top: 0;\n margin-bottom: 0;\n font-size: ceil((@font-size-base * 1.125));\n color: inherit;\n\n > a,\n > small,\n > .small,\n > small > a,\n > .small > a {\n color: inherit;\n }\n}\n\n// Optional footer (stays gray in every modifier class)\n.panel-footer {\n padding: @panel-footer-padding;\n background-color: @panel-footer-bg;\n border-top: 1px solid @panel-inner-border;\n .border-bottom-radius((@panel-border-radius - 1));\n}\n\n\n// List groups in panels\n//\n// By default, space out list group content from panel headings to account for\n// any kind of custom content between the two.\n\n.panel {\n > .list-group,\n > .panel-collapse > .list-group {\n margin-bottom: 0;\n\n .list-group-item {\n border-width: 1px 0;\n border-radius: 0;\n }\n\n // Add border top radius for first one\n &:first-child {\n .list-group-item:first-child {\n border-top: 0;\n .border-top-radius((@panel-border-radius - 1));\n }\n }\n\n // Add border bottom radius for last one\n &:last-child {\n .list-group-item:last-child {\n border-bottom: 0;\n .border-bottom-radius((@panel-border-radius - 1));\n }\n }\n }\n > .panel-heading + .panel-collapse > .list-group {\n .list-group-item:first-child {\n .border-top-radius(0);\n }\n }\n}\n// Collapse space between when there's no additional content.\n.panel-heading + .list-group {\n .list-group-item:first-child {\n border-top-width: 0;\n }\n}\n.list-group + .panel-footer {\n border-top-width: 0;\n}\n\n// Tables in panels\n//\n// Place a non-bordered `.table` within a panel (not within a `.panel-body`) and\n// watch it go full width.\n\n.panel {\n > .table,\n > .table-responsive > .table,\n > .panel-collapse > .table {\n margin-bottom: 0;\n\n caption {\n padding-left: @panel-body-padding;\n padding-right: @panel-body-padding;\n }\n }\n // Add border top radius for first one\n > .table:first-child,\n > .table-responsive:first-child > .table:first-child {\n .border-top-radius((@panel-border-radius - 1));\n\n > thead:first-child,\n > tbody:first-child {\n > tr:first-child {\n border-top-left-radius: (@panel-border-radius - 1);\n border-top-right-radius: (@panel-border-radius - 1);\n\n td:first-child,\n th:first-child {\n border-top-left-radius: (@panel-border-radius - 1);\n }\n td:last-child,\n th:last-child {\n border-top-right-radius: (@panel-border-radius - 1);\n }\n }\n }\n }\n // Add border bottom radius for last one\n > .table:last-child,\n > .table-responsive:last-child > .table:last-child {\n .border-bottom-radius((@panel-border-radius - 1));\n\n > tbody:last-child,\n > tfoot:last-child {\n > tr:last-child {\n border-bottom-left-radius: (@panel-border-radius - 1);\n border-bottom-right-radius: (@panel-border-radius - 1);\n\n td:first-child,\n th:first-child {\n border-bottom-left-radius: (@panel-border-radius - 1);\n }\n td:last-child,\n th:last-child {\n border-bottom-right-radius: (@panel-border-radius - 1);\n }\n }\n }\n }\n > .panel-body + .table,\n > .panel-body + .table-responsive,\n > .table + .panel-body,\n > .table-responsive + .panel-body {\n border-top: 1px solid @table-border-color;\n }\n > .table > tbody:first-child > tr:first-child th,\n > .table > tbody:first-child > tr:first-child td {\n border-top: 0;\n }\n > .table-bordered,\n > .table-responsive > .table-bordered {\n border: 0;\n > thead,\n > tbody,\n > tfoot {\n > tr {\n > th:first-child,\n > td:first-child {\n border-left: 0;\n }\n > th:last-child,\n > td:last-child {\n border-right: 0;\n }\n }\n }\n > thead,\n > tbody {\n > tr:first-child {\n > td,\n > th {\n border-bottom: 0;\n }\n }\n }\n > tbody,\n > tfoot {\n > tr:last-child {\n > td,\n > th {\n border-bottom: 0;\n }\n }\n }\n }\n > .table-responsive {\n border: 0;\n margin-bottom: 0;\n }\n}\n\n\n// Collapsible panels (aka, accordion)\n//\n// Wrap a series of panels in `.panel-group` to turn them into an accordion with\n// the help of our collapse JavaScript plugin.\n\n.panel-group {\n margin-bottom: @line-height-computed;\n\n // Tighten up margin so it's only between panels\n .panel {\n margin-bottom: 0;\n border-radius: @panel-border-radius;\n\n + .panel {\n margin-top: 5px;\n }\n }\n\n .panel-heading {\n border-bottom: 0;\n\n + .panel-collapse > .panel-body,\n + .panel-collapse > .list-group {\n border-top: 1px solid @panel-inner-border;\n }\n }\n\n .panel-footer {\n border-top: 0;\n + .panel-collapse .panel-body {\n border-bottom: 1px solid @panel-inner-border;\n }\n }\n}\n\n\n// Contextual variations\n.panel-default {\n .panel-variant(@panel-default-border; @panel-default-text; @panel-default-heading-bg; @panel-default-border);\n}\n.panel-primary {\n .panel-variant(@panel-primary-border; @panel-primary-text; @panel-primary-heading-bg; @panel-primary-border);\n}\n.panel-success {\n .panel-variant(@panel-success-border; @panel-success-text; @panel-success-heading-bg; @panel-success-border);\n}\n.panel-info {\n .panel-variant(@panel-info-border; @panel-info-text; @panel-info-heading-bg; @panel-info-border);\n}\n.panel-warning {\n .panel-variant(@panel-warning-border; @panel-warning-text; @panel-warning-heading-bg; @panel-warning-border);\n}\n.panel-danger {\n .panel-variant(@panel-danger-border; @panel-danger-text; @panel-danger-heading-bg; @panel-danger-border);\n}\n","// Panels\n\n.panel-variant(@border; @heading-text-color; @heading-bg-color; @heading-border) {\n border-color: @border;\n\n & > .panel-heading {\n color: @heading-text-color;\n background-color: @heading-bg-color;\n border-color: @heading-border;\n\n + .panel-collapse > .panel-body {\n border-top-color: @border;\n }\n .badge {\n color: @heading-bg-color;\n background-color: @heading-text-color;\n }\n }\n & > .panel-footer {\n + .panel-collapse > .panel-body {\n border-bottom-color: @border;\n }\n }\n}\n","// Embeds responsive\n//\n// Credit: Nicolas Gallagher and SUIT CSS.\n\n.embed-responsive {\n position: relative;\n display: block;\n height: 0;\n padding: 0;\n overflow: hidden;\n\n .embed-responsive-item,\n iframe,\n embed,\n object,\n video {\n position: absolute;\n top: 0;\n left: 0;\n bottom: 0;\n height: 100%;\n width: 100%;\n border: 0;\n }\n}\n\n// Modifier class for 16:9 aspect ratio\n.embed-responsive-16by9 {\n padding-bottom: 56.25%;\n}\n\n// Modifier class for 4:3 aspect ratio\n.embed-responsive-4by3 {\n padding-bottom: 75%;\n}\n","//\n// Wells\n// --------------------------------------------------\n\n\n// Base class\n.well {\n min-height: 20px;\n padding: 19px;\n margin-bottom: 20px;\n background-color: @well-bg;\n border: 1px solid @well-border;\n border-radius: @border-radius-base;\n .box-shadow(inset 0 1px 1px rgba(0,0,0,.05));\n blockquote {\n border-color: #ddd;\n border-color: rgba(0,0,0,.15);\n }\n}\n\n// Sizes\n.well-lg {\n padding: 24px;\n border-radius: @border-radius-large;\n}\n.well-sm {\n padding: 9px;\n border-radius: @border-radius-small;\n}\n","//\n// Close icons\n// --------------------------------------------------\n\n\n.close {\n float: right;\n font-size: (@font-size-base * 1.5);\n font-weight: @close-font-weight;\n line-height: 1;\n color: @close-color;\n text-shadow: @close-text-shadow;\n .opacity(.2);\n\n &:hover,\n &:focus {\n color: @close-color;\n text-decoration: none;\n cursor: pointer;\n .opacity(.5);\n }\n\n // Additional properties for button version\n // iOS requires the button element instead of an anchor tag.\n // If you want the anchor version, it requires `href=\"#\"`.\n // See https://developer.mozilla.org/en-US/docs/Web/Events/click#Safari_Mobile\n button& {\n padding: 0;\n cursor: pointer;\n background: transparent;\n border: 0;\n -webkit-appearance: none;\n }\n}\n","//\n// Modals\n// --------------------------------------------------\n\n// .modal-open - body class for killing the scroll\n// .modal - container to scroll within\n// .modal-dialog - positioning shell for the actual modal\n// .modal-content - actual modal w/ bg and corners and shit\n\n// Kill the scroll on the body\n.modal-open {\n overflow: hidden;\n}\n\n// Container that the modal scrolls within\n.modal {\n display: none;\n overflow: hidden;\n position: fixed;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n z-index: @zindex-modal;\n -webkit-overflow-scrolling: touch;\n\n // Prevent Chrome on Windows from adding a focus outline. For details, see\n // https://github.com/twbs/bootstrap/pull/10951.\n outline: 0;\n\n // When fading in the modal, animate it to slide down\n &.fade .modal-dialog {\n .translate(0, -25%);\n .transition-transform(~\"0.3s ease-out\");\n }\n &.in .modal-dialog { .translate(0, 0) }\n}\n.modal-open .modal {\n overflow-x: hidden;\n overflow-y: auto;\n}\n\n// Shell div to position the modal with bottom padding\n.modal-dialog {\n position: relative;\n width: auto;\n margin: 10px;\n}\n\n// Actual modal\n.modal-content {\n position: relative;\n background-color: @modal-content-bg;\n border: 1px solid @modal-content-fallback-border-color; //old browsers fallback (ie8 etc)\n border: 1px solid @modal-content-border-color;\n border-radius: @border-radius-large;\n .box-shadow(0 3px 9px rgba(0,0,0,.5));\n background-clip: padding-box;\n // Remove focus outline from opened modal\n outline: 0;\n}\n\n// Modal background\n.modal-backdrop {\n position: fixed;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n z-index: @zindex-modal-background;\n background-color: @modal-backdrop-bg;\n // Fade for backdrop\n &.fade { .opacity(0); }\n &.in { .opacity(@modal-backdrop-opacity); }\n}\n\n// Modal header\n// Top section of the modal w/ title and dismiss\n.modal-header {\n padding: @modal-title-padding;\n border-bottom: 1px solid @modal-header-border-color;\n &:extend(.clearfix all);\n}\n// Close icon\n.modal-header .close {\n margin-top: -2px;\n}\n\n// Title text within header\n.modal-title {\n margin: 0;\n line-height: @modal-title-line-height;\n}\n\n// Modal body\n// Where all modal content resides (sibling of .modal-header and .modal-footer)\n.modal-body {\n position: relative;\n padding: @modal-inner-padding;\n}\n\n// Footer (for actions)\n.modal-footer {\n padding: @modal-inner-padding;\n text-align: right; // right align buttons\n border-top: 1px solid @modal-footer-border-color;\n &:extend(.clearfix all); // clear it in case folks use .pull-* classes on buttons\n\n // Properly space out buttons\n .btn + .btn {\n margin-left: 5px;\n margin-bottom: 0; // account for input[type=\"submit\"] which gets the bottom margin like all other inputs\n }\n // but override that for button groups\n .btn-group .btn + .btn {\n margin-left: -1px;\n }\n // and override it for block buttons as well\n .btn-block + .btn-block {\n margin-left: 0;\n }\n}\n\n// Measure scrollbar width for padding body during modal show/hide\n.modal-scrollbar-measure {\n position: absolute;\n top: -9999px;\n width: 50px;\n height: 50px;\n overflow: scroll;\n}\n\n// Scale up the modal\n@media (min-width: @screen-sm-min) {\n // Automatically set modal's width for larger viewports\n .modal-dialog {\n width: @modal-md;\n margin: 30px auto;\n }\n .modal-content {\n .box-shadow(0 5px 15px rgba(0,0,0,.5));\n }\n\n // Modal sizes\n .modal-sm { width: @modal-sm; }\n}\n\n@media (min-width: @screen-md-min) {\n .modal-lg { width: @modal-lg; }\n}\n","//\n// Tooltips\n// --------------------------------------------------\n\n\n// Base class\n.tooltip {\n position: absolute;\n z-index: @zindex-tooltip;\n display: block;\n // Our parent element can be arbitrary since tooltips are by default inserted as a sibling of their target element.\n // So reset our font and text properties to avoid inheriting weird values.\n .reset-text();\n font-size: @font-size-small;\n\n .opacity(0);\n\n &.in { .opacity(@tooltip-opacity); }\n &.top { margin-top: -3px; padding: @tooltip-arrow-width 0; }\n &.right { margin-left: 3px; padding: 0 @tooltip-arrow-width; }\n &.bottom { margin-top: 3px; padding: @tooltip-arrow-width 0; }\n &.left { margin-left: -3px; padding: 0 @tooltip-arrow-width; }\n}\n\n// Wrapper for the tooltip content\n.tooltip-inner {\n max-width: @tooltip-max-width;\n padding: 3px 8px;\n color: @tooltip-color;\n text-align: center;\n background-color: @tooltip-bg;\n border-radius: @border-radius-base;\n}\n\n// Arrows\n.tooltip-arrow {\n position: absolute;\n width: 0;\n height: 0;\n border-color: transparent;\n border-style: solid;\n}\n// Note: Deprecated .top-left, .top-right, .bottom-left, and .bottom-right as of v3.3.1\n.tooltip {\n &.top .tooltip-arrow {\n bottom: 0;\n left: 50%;\n margin-left: -@tooltip-arrow-width;\n border-width: @tooltip-arrow-width @tooltip-arrow-width 0;\n border-top-color: @tooltip-arrow-color;\n }\n &.top-left .tooltip-arrow {\n bottom: 0;\n right: @tooltip-arrow-width;\n margin-bottom: -@tooltip-arrow-width;\n border-width: @tooltip-arrow-width @tooltip-arrow-width 0;\n border-top-color: @tooltip-arrow-color;\n }\n &.top-right .tooltip-arrow {\n bottom: 0;\n left: @tooltip-arrow-width;\n margin-bottom: -@tooltip-arrow-width;\n border-width: @tooltip-arrow-width @tooltip-arrow-width 0;\n border-top-color: @tooltip-arrow-color;\n }\n &.right .tooltip-arrow {\n top: 50%;\n left: 0;\n margin-top: -@tooltip-arrow-width;\n border-width: @tooltip-arrow-width @tooltip-arrow-width @tooltip-arrow-width 0;\n border-right-color: @tooltip-arrow-color;\n }\n &.left .tooltip-arrow {\n top: 50%;\n right: 0;\n margin-top: -@tooltip-arrow-width;\n border-width: @tooltip-arrow-width 0 @tooltip-arrow-width @tooltip-arrow-width;\n border-left-color: @tooltip-arrow-color;\n }\n &.bottom .tooltip-arrow {\n top: 0;\n left: 50%;\n margin-left: -@tooltip-arrow-width;\n border-width: 0 @tooltip-arrow-width @tooltip-arrow-width;\n border-bottom-color: @tooltip-arrow-color;\n }\n &.bottom-left .tooltip-arrow {\n top: 0;\n right: @tooltip-arrow-width;\n margin-top: -@tooltip-arrow-width;\n border-width: 0 @tooltip-arrow-width @tooltip-arrow-width;\n border-bottom-color: @tooltip-arrow-color;\n }\n &.bottom-right .tooltip-arrow {\n top: 0;\n left: @tooltip-arrow-width;\n margin-top: -@tooltip-arrow-width;\n border-width: 0 @tooltip-arrow-width @tooltip-arrow-width;\n border-bottom-color: @tooltip-arrow-color;\n }\n}\n",".reset-text() {\n font-family: @font-family-base;\n // We deliberately do NOT reset font-size.\n font-style: normal;\n font-weight: normal;\n letter-spacing: normal;\n line-break: auto;\n line-height: @line-height-base;\n text-align: left; // Fallback for where `start` is not supported\n text-align: start;\n text-decoration: none;\n text-shadow: none;\n text-transform: none;\n white-space: normal;\n word-break: normal;\n word-spacing: normal;\n word-wrap: normal;\n}\n","//\n// Popovers\n// --------------------------------------------------\n\n\n.popover {\n position: absolute;\n top: 0;\n left: 0;\n z-index: @zindex-popover;\n display: none;\n max-width: @popover-max-width;\n padding: 1px;\n // Our parent element can be arbitrary since popovers are by default inserted as a sibling of their target element.\n // So reset our font and text properties to avoid inheriting weird values.\n .reset-text();\n font-size: @font-size-base;\n\n background-color: @popover-bg;\n background-clip: padding-box;\n border: 1px solid @popover-fallback-border-color;\n border: 1px solid @popover-border-color;\n border-radius: @border-radius-large;\n .box-shadow(0 5px 10px rgba(0,0,0,.2));\n\n // Offset the popover to account for the popover arrow\n &.top { margin-top: -@popover-arrow-width; }\n &.right { margin-left: @popover-arrow-width; }\n &.bottom { margin-top: @popover-arrow-width; }\n &.left { margin-left: -@popover-arrow-width; }\n}\n\n.popover-title {\n margin: 0; // reset heading margin\n padding: 8px 14px;\n font-size: @font-size-base;\n background-color: @popover-title-bg;\n border-bottom: 1px solid darken(@popover-title-bg, 5%);\n border-radius: (@border-radius-large - 1) (@border-radius-large - 1) 0 0;\n}\n\n.popover-content {\n padding: 9px 14px;\n}\n\n// Arrows\n//\n// .arrow is outer, .arrow:after is inner\n\n.popover > .arrow {\n &,\n &:after {\n position: absolute;\n display: block;\n width: 0;\n height: 0;\n border-color: transparent;\n border-style: solid;\n }\n}\n.popover > .arrow {\n border-width: @popover-arrow-outer-width;\n}\n.popover > .arrow:after {\n border-width: @popover-arrow-width;\n content: \"\";\n}\n\n.popover {\n &.top > .arrow {\n left: 50%;\n margin-left: -@popover-arrow-outer-width;\n border-bottom-width: 0;\n border-top-color: @popover-arrow-outer-fallback-color; // IE8 fallback\n border-top-color: @popover-arrow-outer-color;\n bottom: -@popover-arrow-outer-width;\n &:after {\n content: \" \";\n bottom: 1px;\n margin-left: -@popover-arrow-width;\n border-bottom-width: 0;\n border-top-color: @popover-arrow-color;\n }\n }\n &.right > .arrow {\n top: 50%;\n left: -@popover-arrow-outer-width;\n margin-top: -@popover-arrow-outer-width;\n border-left-width: 0;\n border-right-color: @popover-arrow-outer-fallback-color; // IE8 fallback\n border-right-color: @popover-arrow-outer-color;\n &:after {\n content: \" \";\n left: 1px;\n bottom: -@popover-arrow-width;\n border-left-width: 0;\n border-right-color: @popover-arrow-color;\n }\n }\n &.bottom > .arrow {\n left: 50%;\n margin-left: -@popover-arrow-outer-width;\n border-top-width: 0;\n border-bottom-color: @popover-arrow-outer-fallback-color; // IE8 fallback\n border-bottom-color: @popover-arrow-outer-color;\n top: -@popover-arrow-outer-width;\n &:after {\n content: \" \";\n top: 1px;\n margin-left: -@popover-arrow-width;\n border-top-width: 0;\n border-bottom-color: @popover-arrow-color;\n }\n }\n\n &.left > .arrow {\n top: 50%;\n right: -@popover-arrow-outer-width;\n margin-top: -@popover-arrow-outer-width;\n border-right-width: 0;\n border-left-color: @popover-arrow-outer-fallback-color; // IE8 fallback\n border-left-color: @popover-arrow-outer-color;\n &:after {\n content: \" \";\n right: 1px;\n border-right-width: 0;\n border-left-color: @popover-arrow-color;\n bottom: -@popover-arrow-width;\n }\n }\n}\n","//\n// Carousel\n// --------------------------------------------------\n\n\n// Wrapper for the slide container and indicators\n.carousel {\n position: relative;\n}\n\n.carousel-inner {\n position: relative;\n overflow: hidden;\n width: 100%;\n\n > .item {\n display: none;\n position: relative;\n .transition(.6s ease-in-out left);\n\n // Account for jankitude on images\n > img,\n > a > img {\n &:extend(.img-responsive);\n line-height: 1;\n }\n\n // WebKit CSS3 transforms for supported devices\n @media all and (transform-3d), (-webkit-transform-3d) {\n .transition-transform(~'0.6s ease-in-out');\n .backface-visibility(~'hidden');\n .perspective(1000px);\n\n &.next,\n &.active.right {\n .translate3d(100%, 0, 0);\n left: 0;\n }\n &.prev,\n &.active.left {\n .translate3d(-100%, 0, 0);\n left: 0;\n }\n &.next.left,\n &.prev.right,\n &.active {\n .translate3d(0, 0, 0);\n left: 0;\n }\n }\n }\n\n > .active,\n > .next,\n > .prev {\n display: block;\n }\n\n > .active {\n left: 0;\n }\n\n > .next,\n > .prev {\n position: absolute;\n top: 0;\n width: 100%;\n }\n\n > .next {\n left: 100%;\n }\n > .prev {\n left: -100%;\n }\n > .next.left,\n > .prev.right {\n left: 0;\n }\n\n > .active.left {\n left: -100%;\n }\n > .active.right {\n left: 100%;\n }\n\n}\n\n// Left/right controls for nav\n// ---------------------------\n\n.carousel-control {\n position: absolute;\n top: 0;\n left: 0;\n bottom: 0;\n width: @carousel-control-width;\n .opacity(@carousel-control-opacity);\n font-size: @carousel-control-font-size;\n color: @carousel-control-color;\n text-align: center;\n text-shadow: @carousel-text-shadow;\n background-color: rgba(0, 0, 0, 0); // Fix IE9 click-thru bug\n // We can't have this transition here because WebKit cancels the carousel\n // animation if you trip this while in the middle of another animation.\n\n // Set gradients for backgrounds\n &.left {\n #gradient > .horizontal(@start-color: rgba(0,0,0,.5); @end-color: rgba(0,0,0,.0001));\n }\n &.right {\n left: auto;\n right: 0;\n #gradient > .horizontal(@start-color: rgba(0,0,0,.0001); @end-color: rgba(0,0,0,.5));\n }\n\n // Hover/focus state\n &:hover,\n &:focus {\n outline: 0;\n color: @carousel-control-color;\n text-decoration: none;\n .opacity(.9);\n }\n\n // Toggles\n .icon-prev,\n .icon-next,\n .glyphicon-chevron-left,\n .glyphicon-chevron-right {\n position: absolute;\n top: 50%;\n margin-top: -10px;\n z-index: 5;\n display: inline-block;\n }\n .icon-prev,\n .glyphicon-chevron-left {\n left: 50%;\n margin-left: -10px;\n }\n .icon-next,\n .glyphicon-chevron-right {\n right: 50%;\n margin-right: -10px;\n }\n .icon-prev,\n .icon-next {\n width: 20px;\n height: 20px;\n line-height: 1;\n font-family: serif;\n }\n\n\n .icon-prev {\n &:before {\n content: '\\2039';// SINGLE LEFT-POINTING ANGLE QUOTATION MARK (U+2039)\n }\n }\n .icon-next {\n &:before {\n content: '\\203a';// SINGLE RIGHT-POINTING ANGLE QUOTATION MARK (U+203A)\n }\n }\n}\n\n// Optional indicator pips\n//\n// Add an unordered list with the following class and add a list item for each\n// slide your carousel holds.\n\n.carousel-indicators {\n position: absolute;\n bottom: 10px;\n left: 50%;\n z-index: 15;\n width: 60%;\n margin-left: -30%;\n padding-left: 0;\n list-style: none;\n text-align: center;\n\n li {\n display: inline-block;\n width: 10px;\n height: 10px;\n margin: 1px;\n text-indent: -999px;\n border: 1px solid @carousel-indicator-border-color;\n border-radius: 10px;\n cursor: pointer;\n\n // IE8-9 hack for event handling\n //\n // Internet Explorer 8-9 does not support clicks on elements without a set\n // `background-color`. We cannot use `filter` since that's not viewed as a\n // background color by the browser. Thus, a hack is needed.\n // See https://developer.mozilla.org/en-US/docs/Web/Events/click#Internet_Explorer\n //\n // For IE8, we set solid black as it doesn't support `rgba()`. For IE9, we\n // set alpha transparency for the best results possible.\n background-color: #000 \\9; // IE8\n background-color: rgba(0,0,0,0); // IE9\n }\n .active {\n margin: 0;\n width: 12px;\n height: 12px;\n background-color: @carousel-indicator-active-bg;\n }\n}\n\n// Optional captions\n// -----------------------------\n// Hidden by default for smaller viewports\n.carousel-caption {\n position: absolute;\n left: 15%;\n right: 15%;\n bottom: 20px;\n z-index: 10;\n padding-top: 20px;\n padding-bottom: 20px;\n color: @carousel-caption-color;\n text-align: center;\n text-shadow: @carousel-text-shadow;\n & .btn {\n text-shadow: none; // No shadow for button elements in carousel-caption\n }\n}\n\n\n// Scale up controls for tablets and up\n@media screen and (min-width: @screen-sm-min) {\n\n // Scale up the controls a smidge\n .carousel-control {\n .glyphicon-chevron-left,\n .glyphicon-chevron-right,\n .icon-prev,\n .icon-next {\n width: (@carousel-control-font-size * 1.5);\n height: (@carousel-control-font-size * 1.5);\n margin-top: (@carousel-control-font-size / -2);\n font-size: (@carousel-control-font-size * 1.5);\n }\n .glyphicon-chevron-left,\n .icon-prev {\n margin-left: (@carousel-control-font-size / -2);\n }\n .glyphicon-chevron-right,\n .icon-next {\n margin-right: (@carousel-control-font-size / -2);\n }\n }\n\n // Show and left align the captions\n .carousel-caption {\n left: 20%;\n right: 20%;\n padding-bottom: 30px;\n }\n\n // Move up the indicators\n .carousel-indicators {\n bottom: 20px;\n }\n}\n","// Clearfix\n//\n// For modern browsers\n// 1. The space content is one way to avoid an Opera bug when the\n// contenteditable attribute is included anywhere else in the document.\n// Otherwise it causes space to appear at the top and bottom of elements\n// that are clearfixed.\n// 2. The use of `table` rather than `block` is only necessary if using\n// `:before` to contain the top-margins of child elements.\n//\n// Source: http://nicolasgallagher.com/micro-clearfix-hack/\n\n.clearfix() {\n &:before,\n &:after {\n content: \" \"; // 1\n display: table; // 2\n }\n &:after {\n clear: both;\n }\n}\n","// Center-align a block level element\n\n.center-block() {\n display: block;\n margin-left: auto;\n margin-right: auto;\n}\n","// CSS image replacement\n//\n// Heads up! v3 launched with only `.hide-text()`, but per our pattern for\n// mixins being reused as classes with the same name, this doesn't hold up. As\n// of v3.0.1 we have added `.text-hide()` and deprecated `.hide-text()`.\n//\n// Source: https://github.com/h5bp/html5-boilerplate/commit/aa0396eae757\n\n// Deprecated as of v3.0.1 (has been removed in v4)\n.hide-text() {\n font: ~\"0/0\" a;\n color: transparent;\n text-shadow: none;\n background-color: transparent;\n border: 0;\n}\n\n// New mixin to use as of v3.0.1\n.text-hide() {\n .hide-text();\n}\n","//\n// Responsive: Utility classes\n// --------------------------------------------------\n\n\n// IE10 in Windows (Phone) 8\n//\n// Support for responsive views via media queries is kind of borked in IE10, for\n// Surface/desktop in split view and for Windows Phone 8. This particular fix\n// must be accompanied by a snippet of JavaScript to sniff the user agent and\n// apply some conditional CSS to *only* the Surface/desktop Windows 8. Look at\n// our Getting Started page for more information on this bug.\n//\n// For more information, see the following:\n//\n// Issue: https://github.com/twbs/bootstrap/issues/10497\n// Docs: http://getbootstrap.com/getting-started/#support-ie10-width\n// Source: http://timkadlec.com/2013/01/windows-phone-8-and-device-width/\n// Source: http://timkadlec.com/2012/10/ie10-snap-mode-and-responsive-design/\n\n@-ms-viewport {\n width: device-width;\n}\n\n\n// Visibility utilities\n// Note: Deprecated .visible-xs, .visible-sm, .visible-md, and .visible-lg as of v3.2.0\n.visible-xs,\n.visible-sm,\n.visible-md,\n.visible-lg {\n .responsive-invisibility();\n}\n\n.visible-xs-block,\n.visible-xs-inline,\n.visible-xs-inline-block,\n.visible-sm-block,\n.visible-sm-inline,\n.visible-sm-inline-block,\n.visible-md-block,\n.visible-md-inline,\n.visible-md-inline-block,\n.visible-lg-block,\n.visible-lg-inline,\n.visible-lg-inline-block {\n display: none !important;\n}\n\n.visible-xs {\n @media (max-width: @screen-xs-max) {\n .responsive-visibility();\n }\n}\n.visible-xs-block {\n @media (max-width: @screen-xs-max) {\n display: block !important;\n }\n}\n.visible-xs-inline {\n @media (max-width: @screen-xs-max) {\n display: inline !important;\n }\n}\n.visible-xs-inline-block {\n @media (max-width: @screen-xs-max) {\n display: inline-block !important;\n }\n}\n\n.visible-sm {\n @media (min-width: @screen-sm-min) and (max-width: @screen-sm-max) {\n .responsive-visibility();\n }\n}\n.visible-sm-block {\n @media (min-width: @screen-sm-min) and (max-width: @screen-sm-max) {\n display: block !important;\n }\n}\n.visible-sm-inline {\n @media (min-width: @screen-sm-min) and (max-width: @screen-sm-max) {\n display: inline !important;\n }\n}\n.visible-sm-inline-block {\n @media (min-width: @screen-sm-min) and (max-width: @screen-sm-max) {\n display: inline-block !important;\n }\n}\n\n.visible-md {\n @media (min-width: @screen-md-min) and (max-width: @screen-md-max) {\n .responsive-visibility();\n }\n}\n.visible-md-block {\n @media (min-width: @screen-md-min) and (max-width: @screen-md-max) {\n display: block !important;\n }\n}\n.visible-md-inline {\n @media (min-width: @screen-md-min) and (max-width: @screen-md-max) {\n display: inline !important;\n }\n}\n.visible-md-inline-block {\n @media (min-width: @screen-md-min) and (max-width: @screen-md-max) {\n display: inline-block !important;\n }\n}\n\n.visible-lg {\n @media (min-width: @screen-lg-min) {\n .responsive-visibility();\n }\n}\n.visible-lg-block {\n @media (min-width: @screen-lg-min) {\n display: block !important;\n }\n}\n.visible-lg-inline {\n @media (min-width: @screen-lg-min) {\n display: inline !important;\n }\n}\n.visible-lg-inline-block {\n @media (min-width: @screen-lg-min) {\n display: inline-block !important;\n }\n}\n\n.hidden-xs {\n @media (max-width: @screen-xs-max) {\n .responsive-invisibility();\n }\n}\n.hidden-sm {\n @media (min-width: @screen-sm-min) and (max-width: @screen-sm-max) {\n .responsive-invisibility();\n }\n}\n.hidden-md {\n @media (min-width: @screen-md-min) and (max-width: @screen-md-max) {\n .responsive-invisibility();\n }\n}\n.hidden-lg {\n @media (min-width: @screen-lg-min) {\n .responsive-invisibility();\n }\n}\n\n\n// Print utilities\n//\n// Media queries are placed on the inside to be mixin-friendly.\n\n// Note: Deprecated .visible-print as of v3.2.0\n.visible-print {\n .responsive-invisibility();\n\n @media print {\n .responsive-visibility();\n }\n}\n.visible-print-block {\n display: none !important;\n\n @media print {\n display: block !important;\n }\n}\n.visible-print-inline {\n display: none !important;\n\n @media print {\n display: inline !important;\n }\n}\n.visible-print-inline-block {\n display: none !important;\n\n @media print {\n display: inline-block !important;\n }\n}\n\n.hidden-print {\n @media print {\n .responsive-invisibility();\n }\n}\n","// Responsive utilities\n\n//\n// More easily include all the states for responsive-utilities.less.\n.responsive-visibility() {\n display: block !important;\n table& { display: table !important; }\n tr& { display: table-row !important; }\n th&,\n td& { display: table-cell !important; }\n}\n\n.responsive-invisibility() {\n display: none !important;\n}\n"]} \ No newline at end of file diff --git a/admin/bower_components/bootstrap/dist/fonts/glyphicons-halflings-regular.eot b/admin/bower_components/bootstrap/dist/fonts/glyphicons-halflings-regular.eot deleted file mode 100644 index b93a495..0000000 Binary files a/admin/bower_components/bootstrap/dist/fonts/glyphicons-halflings-regular.eot and /dev/null differ diff --git a/admin/bower_components/bootstrap/dist/fonts/glyphicons-halflings-regular.svg b/admin/bower_components/bootstrap/dist/fonts/glyphicons-halflings-regular.svg deleted file mode 100644 index 94fb549..0000000 --- a/admin/bower_components/bootstrap/dist/fonts/glyphicons-halflings-regular.svg +++ /dev/null @@ -1,288 +0,0 @@ -<?xml version="1.0" standalone="no"?> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" > -<svg xmlns="http://www.w3.org/2000/svg"> -<metadata></metadata> -<defs> -<font id="glyphicons_halflingsregular" horiz-adv-x="1200" > -<font-face units-per-em="1200" ascent="960" descent="-240" /> -<missing-glyph horiz-adv-x="500" /> -<glyph horiz-adv-x="0" /> -<glyph horiz-adv-x="400" /> -<glyph unicode=" " /> -<glyph unicode="*" d="M600 1100q15 0 34 -1.5t30 -3.5l11 -1q10 -2 17.5 -10.5t7.5 -18.5v-224l158 158q7 7 18 8t19 -6l106 -106q7 -8 6 -19t-8 -18l-158 -158h224q10 0 18.5 -7.5t10.5 -17.5q6 -41 6 -75q0 -15 -1.5 -34t-3.5 -30l-1 -11q-2 -10 -10.5 -17.5t-18.5 -7.5h-224l158 -158 q7 -7 8 -18t-6 -19l-106 -106q-8 -7 -19 -6t-18 8l-158 158v-224q0 -10 -7.5 -18.5t-17.5 -10.5q-41 -6 -75 -6q-15 0 -34 1.5t-30 3.5l-11 1q-10 2 -17.5 10.5t-7.5 18.5v224l-158 -158q-7 -7 -18 -8t-19 6l-106 106q-7 8 -6 19t8 18l158 158h-224q-10 0 -18.5 7.5 t-10.5 17.5q-6 41 -6 75q0 15 1.5 34t3.5 30l1 11q2 10 10.5 17.5t18.5 7.5h224l-158 158q-7 7 -8 18t6 19l106 106q8 7 19 6t18 -8l158 -158v224q0 10 7.5 18.5t17.5 10.5q41 6 75 6z" /> -<glyph unicode="+" d="M450 1100h200q21 0 35.5 -14.5t14.5 -35.5v-350h350q21 0 35.5 -14.5t14.5 -35.5v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-350v-350q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5v350h-350q-21 0 -35.5 14.5t-14.5 35.5v200q0 21 14.5 35.5t35.5 14.5 h350v350q0 21 14.5 35.5t35.5 14.5z" /> -<glyph unicode="&#xa0;" /> -<glyph unicode="&#xa5;" d="M825 1100h250q10 0 12.5 -5t-5.5 -13l-364 -364q-6 -6 -11 -18h268q10 0 13 -6t-3 -14l-120 -160q-6 -8 -18 -14t-22 -6h-125v-100h275q10 0 13 -6t-3 -14l-120 -160q-6 -8 -18 -14t-22 -6h-125v-174q0 -11 -7.5 -18.5t-18.5 -7.5h-148q-11 0 -18.5 7.5t-7.5 18.5v174 h-275q-10 0 -13 6t3 14l120 160q6 8 18 14t22 6h125v100h-275q-10 0 -13 6t3 14l120 160q6 8 18 14t22 6h118q-5 12 -11 18l-364 364q-8 8 -5.5 13t12.5 5h250q25 0 43 -18l164 -164q8 -8 18 -8t18 8l164 164q18 18 43 18z" /> -<glyph unicode="&#x2000;" horiz-adv-x="650" /> -<glyph unicode="&#x2001;" horiz-adv-x="1300" /> -<glyph unicode="&#x2002;" horiz-adv-x="650" /> -<glyph unicode="&#x2003;" horiz-adv-x="1300" /> -<glyph unicode="&#x2004;" horiz-adv-x="433" /> -<glyph unicode="&#x2005;" horiz-adv-x="325" /> -<glyph unicode="&#x2006;" horiz-adv-x="216" /> -<glyph unicode="&#x2007;" horiz-adv-x="216" /> -<glyph unicode="&#x2008;" horiz-adv-x="162" /> -<glyph unicode="&#x2009;" horiz-adv-x="260" /> -<glyph unicode="&#x200a;" horiz-adv-x="72" /> -<glyph unicode="&#x202f;" horiz-adv-x="260" /> -<glyph unicode="&#x205f;" horiz-adv-x="325" /> -<glyph unicode="&#x20ac;" d="M744 1198q242 0 354 -189q60 -104 66 -209h-181q0 45 -17.5 82.5t-43.5 61.5t-58 40.5t-60.5 24t-51.5 7.5q-19 0 -40.5 -5.5t-49.5 -20.5t-53 -38t-49 -62.5t-39 -89.5h379l-100 -100h-300q-6 -50 -6 -100h406l-100 -100h-300q9 -74 33 -132t52.5 -91t61.5 -54.5t59 -29 t47 -7.5q22 0 50.5 7.5t60.5 24.5t58 41t43.5 61t17.5 80h174q-30 -171 -128 -278q-107 -117 -274 -117q-206 0 -324 158q-36 48 -69 133t-45 204h-217l100 100h112q1 47 6 100h-218l100 100h134q20 87 51 153.5t62 103.5q117 141 297 141z" /> -<glyph unicode="&#x20bd;" d="M428 1200h350q67 0 120 -13t86 -31t57 -49.5t35 -56.5t17 -64.5t6.5 -60.5t0.5 -57v-16.5v-16.5q0 -36 -0.5 -57t-6.5 -61t-17 -65t-35 -57t-57 -50.5t-86 -31.5t-120 -13h-178l-2 -100h288q10 0 13 -6t-3 -14l-120 -160q-6 -8 -18 -14t-22 -6h-138v-175q0 -11 -5.5 -18 t-15.5 -7h-149q-10 0 -17.5 7.5t-7.5 17.5v175h-267q-10 0 -13 6t3 14l120 160q6 8 18 14t22 6h117v100h-267q-10 0 -13 6t3 14l120 160q6 8 18 14t22 6h117v475q0 10 7.5 17.5t17.5 7.5zM600 1000v-300h203q64 0 86.5 33t22.5 119q0 84 -22.5 116t-86.5 32h-203z" /> -<glyph unicode="&#x2212;" d="M250 700h800q21 0 35.5 -14.5t14.5 -35.5v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-800q-21 0 -35.5 14.5t-14.5 35.5v200q0 21 14.5 35.5t35.5 14.5z" /> -<glyph unicode="&#x231b;" d="M1000 1200v-150q0 -21 -14.5 -35.5t-35.5 -14.5h-50v-100q0 -91 -49.5 -165.5t-130.5 -109.5q81 -35 130.5 -109.5t49.5 -165.5v-150h50q21 0 35.5 -14.5t14.5 -35.5v-150h-800v150q0 21 14.5 35.5t35.5 14.5h50v150q0 91 49.5 165.5t130.5 109.5q-81 35 -130.5 109.5 t-49.5 165.5v100h-50q-21 0 -35.5 14.5t-14.5 35.5v150h800zM400 1000v-100q0 -60 32.5 -109.5t87.5 -73.5q28 -12 44 -37t16 -55t-16 -55t-44 -37q-55 -24 -87.5 -73.5t-32.5 -109.5v-150h400v150q0 60 -32.5 109.5t-87.5 73.5q-28 12 -44 37t-16 55t16 55t44 37 q55 24 87.5 73.5t32.5 109.5v100h-400z" /> -<glyph unicode="&#x25fc;" horiz-adv-x="500" d="M0 0z" /> -<glyph unicode="&#x2601;" d="M503 1089q110 0 200.5 -59.5t134.5 -156.5q44 14 90 14q120 0 205 -86.5t85 -206.5q0 -121 -85 -207.5t-205 -86.5h-750q-79 0 -135.5 57t-56.5 137q0 69 42.5 122.5t108.5 67.5q-2 12 -2 37q0 153 108 260.5t260 107.5z" /> -<glyph unicode="&#x26fa;" d="M774 1193.5q16 -9.5 20.5 -27t-5.5 -33.5l-136 -187l467 -746h30q20 0 35 -18.5t15 -39.5v-42h-1200v42q0 21 15 39.5t35 18.5h30l468 746l-135 183q-10 16 -5.5 34t20.5 28t34 5.5t28 -20.5l111 -148l112 150q9 16 27 20.5t34 -5zM600 200h377l-182 112l-195 534v-646z " /> -<glyph unicode="&#x2709;" d="M25 1100h1150q10 0 12.5 -5t-5.5 -13l-564 -567q-8 -8 -18 -8t-18 8l-564 567q-8 8 -5.5 13t12.5 5zM18 882l264 -264q8 -8 8 -18t-8 -18l-264 -264q-8 -8 -13 -5.5t-5 12.5v550q0 10 5 12.5t13 -5.5zM918 618l264 264q8 8 13 5.5t5 -12.5v-550q0 -10 -5 -12.5t-13 5.5 l-264 264q-8 8 -8 18t8 18zM818 482l364 -364q8 -8 5.5 -13t-12.5 -5h-1150q-10 0 -12.5 5t5.5 13l364 364q8 8 18 8t18 -8l164 -164q8 -8 18 -8t18 8l164 164q8 8 18 8t18 -8z" /> -<glyph unicode="&#x270f;" d="M1011 1210q19 0 33 -13l153 -153q13 -14 13 -33t-13 -33l-99 -92l-214 214l95 96q13 14 32 14zM1013 800l-615 -614l-214 214l614 614zM317 96l-333 -112l110 335z" /> -<glyph unicode="&#xe001;" d="M700 650v-550h250q21 0 35.5 -14.5t14.5 -35.5v-50h-800v50q0 21 14.5 35.5t35.5 14.5h250v550l-500 550h1200z" /> -<glyph unicode="&#xe002;" d="M368 1017l645 163q39 15 63 0t24 -49v-831q0 -55 -41.5 -95.5t-111.5 -63.5q-79 -25 -147 -4.5t-86 75t25.5 111.5t122.5 82q72 24 138 8v521l-600 -155v-606q0 -42 -44 -90t-109 -69q-79 -26 -147 -5.5t-86 75.5t25.5 111.5t122.5 82.5q72 24 138 7v639q0 38 14.5 59 t53.5 34z" /> -<glyph unicode="&#xe003;" d="M500 1191q100 0 191 -39t156.5 -104.5t104.5 -156.5t39 -191l-1 -2l1 -5q0 -141 -78 -262l275 -274q23 -26 22.5 -44.5t-22.5 -42.5l-59 -58q-26 -20 -46.5 -20t-39.5 20l-275 274q-119 -77 -261 -77l-5 1l-2 -1q-100 0 -191 39t-156.5 104.5t-104.5 156.5t-39 191 t39 191t104.5 156.5t156.5 104.5t191 39zM500 1022q-88 0 -162 -43t-117 -117t-43 -162t43 -162t117 -117t162 -43t162 43t117 117t43 162t-43 162t-117 117t-162 43z" /> -<glyph unicode="&#xe005;" d="M649 949q48 68 109.5 104t121.5 38.5t118.5 -20t102.5 -64t71 -100.5t27 -123q0 -57 -33.5 -117.5t-94 -124.5t-126.5 -127.5t-150 -152.5t-146 -174q-62 85 -145.5 174t-150 152.5t-126.5 127.5t-93.5 124.5t-33.5 117.5q0 64 28 123t73 100.5t104 64t119 20 t120.5 -38.5t104.5 -104z" /> -<glyph unicode="&#xe006;" d="M407 800l131 353q7 19 17.5 19t17.5 -19l129 -353h421q21 0 24 -8.5t-14 -20.5l-342 -249l130 -401q7 -20 -0.5 -25.5t-24.5 6.5l-343 246l-342 -247q-17 -12 -24.5 -6.5t-0.5 25.5l130 400l-347 251q-17 12 -14 20.5t23 8.5h429z" /> -<glyph unicode="&#xe007;" d="M407 800l131 353q7 19 17.5 19t17.5 -19l129 -353h421q21 0 24 -8.5t-14 -20.5l-342 -249l130 -401q7 -20 -0.5 -25.5t-24.5 6.5l-343 246l-342 -247q-17 -12 -24.5 -6.5t-0.5 25.5l130 400l-347 251q-17 12 -14 20.5t23 8.5h429zM477 700h-240l197 -142l-74 -226 l193 139l195 -140l-74 229l192 140h-234l-78 211z" /> -<glyph unicode="&#xe008;" d="M600 1200q124 0 212 -88t88 -212v-250q0 -46 -31 -98t-69 -52v-75q0 -10 6 -21.5t15 -17.5l358 -230q9 -5 15 -16.5t6 -21.5v-93q0 -10 -7.5 -17.5t-17.5 -7.5h-1150q-10 0 -17.5 7.5t-7.5 17.5v93q0 10 6 21.5t15 16.5l358 230q9 6 15 17.5t6 21.5v75q-38 0 -69 52 t-31 98v250q0 124 88 212t212 88z" /> -<glyph unicode="&#xe009;" d="M25 1100h1150q10 0 17.5 -7.5t7.5 -17.5v-1050q0 -10 -7.5 -17.5t-17.5 -7.5h-1150q-10 0 -17.5 7.5t-7.5 17.5v1050q0 10 7.5 17.5t17.5 7.5zM100 1000v-100h100v100h-100zM875 1000h-550q-10 0 -17.5 -7.5t-7.5 -17.5v-350q0 -10 7.5 -17.5t17.5 -7.5h550 q10 0 17.5 7.5t7.5 17.5v350q0 10 -7.5 17.5t-17.5 7.5zM1000 1000v-100h100v100h-100zM100 800v-100h100v100h-100zM1000 800v-100h100v100h-100zM100 600v-100h100v100h-100zM1000 600v-100h100v100h-100zM875 500h-550q-10 0 -17.5 -7.5t-7.5 -17.5v-350q0 -10 7.5 -17.5 t17.5 -7.5h550q10 0 17.5 7.5t7.5 17.5v350q0 10 -7.5 17.5t-17.5 7.5zM100 400v-100h100v100h-100zM1000 400v-100h100v100h-100zM100 200v-100h100v100h-100zM1000 200v-100h100v100h-100z" /> -<glyph unicode="&#xe010;" d="M50 1100h400q21 0 35.5 -14.5t14.5 -35.5v-400q0 -21 -14.5 -35.5t-35.5 -14.5h-400q-21 0 -35.5 14.5t-14.5 35.5v400q0 21 14.5 35.5t35.5 14.5zM650 1100h400q21 0 35.5 -14.5t14.5 -35.5v-400q0 -21 -14.5 -35.5t-35.5 -14.5h-400q-21 0 -35.5 14.5t-14.5 35.5v400 q0 21 14.5 35.5t35.5 14.5zM50 500h400q21 0 35.5 -14.5t14.5 -35.5v-400q0 -21 -14.5 -35.5t-35.5 -14.5h-400q-21 0 -35.5 14.5t-14.5 35.5v400q0 21 14.5 35.5t35.5 14.5zM650 500h400q21 0 35.5 -14.5t14.5 -35.5v-400q0 -21 -14.5 -35.5t-35.5 -14.5h-400 q-21 0 -35.5 14.5t-14.5 35.5v400q0 21 14.5 35.5t35.5 14.5z" /> -<glyph unicode="&#xe011;" d="M50 1100h200q21 0 35.5 -14.5t14.5 -35.5v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5v200q0 21 14.5 35.5t35.5 14.5zM450 1100h200q21 0 35.5 -14.5t14.5 -35.5v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5v200 q0 21 14.5 35.5t35.5 14.5zM850 1100h200q21 0 35.5 -14.5t14.5 -35.5v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5v200q0 21 14.5 35.5t35.5 14.5zM50 700h200q21 0 35.5 -14.5t14.5 -35.5v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-200 q-21 0 -35.5 14.5t-14.5 35.5v200q0 21 14.5 35.5t35.5 14.5zM450 700h200q21 0 35.5 -14.5t14.5 -35.5v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5v200q0 21 14.5 35.5t35.5 14.5zM850 700h200q21 0 35.5 -14.5t14.5 -35.5v-200 q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5v200q0 21 14.5 35.5t35.5 14.5zM50 300h200q21 0 35.5 -14.5t14.5 -35.5v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5v200q0 21 14.5 35.5t35.5 14.5zM450 300h200 q21 0 35.5 -14.5t14.5 -35.5v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5v200q0 21 14.5 35.5t35.5 14.5zM850 300h200q21 0 35.5 -14.5t14.5 -35.5v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5v200q0 21 14.5 35.5 t35.5 14.5z" /> -<glyph unicode="&#xe012;" d="M50 1100h200q21 0 35.5 -14.5t14.5 -35.5v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5v200q0 21 14.5 35.5t35.5 14.5zM450 1100h700q21 0 35.5 -14.5t14.5 -35.5v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-700q-21 0 -35.5 14.5t-14.5 35.5v200 q0 21 14.5 35.5t35.5 14.5zM50 700h200q21 0 35.5 -14.5t14.5 -35.5v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5v200q0 21 14.5 35.5t35.5 14.5zM450 700h700q21 0 35.5 -14.5t14.5 -35.5v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-700 q-21 0 -35.5 14.5t-14.5 35.5v200q0 21 14.5 35.5t35.5 14.5zM50 300h200q21 0 35.5 -14.5t14.5 -35.5v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5v200q0 21 14.5 35.5t35.5 14.5zM450 300h700q21 0 35.5 -14.5t14.5 -35.5v-200 q0 -21 -14.5 -35.5t-35.5 -14.5h-700q-21 0 -35.5 14.5t-14.5 35.5v200q0 21 14.5 35.5t35.5 14.5z" /> -<glyph unicode="&#xe013;" d="M465 477l571 571q8 8 18 8t17 -8l177 -177q8 -7 8 -17t-8 -18l-783 -784q-7 -8 -17.5 -8t-17.5 8l-384 384q-8 8 -8 18t8 17l177 177q7 8 17 8t18 -8l171 -171q7 -7 18 -7t18 7z" /> -<glyph unicode="&#xe014;" d="M904 1083l178 -179q8 -8 8 -18.5t-8 -17.5l-267 -268l267 -268q8 -7 8 -17.5t-8 -18.5l-178 -178q-8 -8 -18.5 -8t-17.5 8l-268 267l-268 -267q-7 -8 -17.5 -8t-18.5 8l-178 178q-8 8 -8 18.5t8 17.5l267 268l-267 268q-8 7 -8 17.5t8 18.5l178 178q8 8 18.5 8t17.5 -8 l268 -267l268 268q7 7 17.5 7t18.5 -7z" /> -<glyph unicode="&#xe015;" d="M507 1177q98 0 187.5 -38.5t154.5 -103.5t103.5 -154.5t38.5 -187.5q0 -141 -78 -262l300 -299q8 -8 8 -18.5t-8 -18.5l-109 -108q-7 -8 -17.5 -8t-18.5 8l-300 299q-119 -77 -261 -77q-98 0 -188 38.5t-154.5 103t-103 154.5t-38.5 188t38.5 187.5t103 154.5 t154.5 103.5t188 38.5zM506.5 1023q-89.5 0 -165.5 -44t-120 -120.5t-44 -166t44 -165.5t120 -120t165.5 -44t166 44t120.5 120t44 165.5t-44 166t-120.5 120.5t-166 44zM425 900h150q10 0 17.5 -7.5t7.5 -17.5v-75h75q10 0 17.5 -7.5t7.5 -17.5v-150q0 -10 -7.5 -17.5 t-17.5 -7.5h-75v-75q0 -10 -7.5 -17.5t-17.5 -7.5h-150q-10 0 -17.5 7.5t-7.5 17.5v75h-75q-10 0 -17.5 7.5t-7.5 17.5v150q0 10 7.5 17.5t17.5 7.5h75v75q0 10 7.5 17.5t17.5 7.5z" /> -<glyph unicode="&#xe016;" d="M507 1177q98 0 187.5 -38.5t154.5 -103.5t103.5 -154.5t38.5 -187.5q0 -141 -78 -262l300 -299q8 -8 8 -18.5t-8 -18.5l-109 -108q-7 -8 -17.5 -8t-18.5 8l-300 299q-119 -77 -261 -77q-98 0 -188 38.5t-154.5 103t-103 154.5t-38.5 188t38.5 187.5t103 154.5 t154.5 103.5t188 38.5zM506.5 1023q-89.5 0 -165.5 -44t-120 -120.5t-44 -166t44 -165.5t120 -120t165.5 -44t166 44t120.5 120t44 165.5t-44 166t-120.5 120.5t-166 44zM325 800h350q10 0 17.5 -7.5t7.5 -17.5v-150q0 -10 -7.5 -17.5t-17.5 -7.5h-350q-10 0 -17.5 7.5 t-7.5 17.5v150q0 10 7.5 17.5t17.5 7.5z" /> -<glyph unicode="&#xe017;" d="M550 1200h100q21 0 35.5 -14.5t14.5 -35.5v-400q0 -21 -14.5 -35.5t-35.5 -14.5h-100q-21 0 -35.5 14.5t-14.5 35.5v400q0 21 14.5 35.5t35.5 14.5zM800 975v166q167 -62 272 -209.5t105 -331.5q0 -117 -45.5 -224t-123 -184.5t-184.5 -123t-224 -45.5t-224 45.5 t-184.5 123t-123 184.5t-45.5 224q0 184 105 331.5t272 209.5v-166q-103 -55 -165 -155t-62 -220q0 -116 57 -214.5t155.5 -155.5t214.5 -57t214.5 57t155.5 155.5t57 214.5q0 120 -62 220t-165 155z" /> -<glyph unicode="&#xe018;" d="M1025 1200h150q10 0 17.5 -7.5t7.5 -17.5v-1150q0 -10 -7.5 -17.5t-17.5 -7.5h-150q-10 0 -17.5 7.5t-7.5 17.5v1150q0 10 7.5 17.5t17.5 7.5zM725 800h150q10 0 17.5 -7.5t7.5 -17.5v-750q0 -10 -7.5 -17.5t-17.5 -7.5h-150q-10 0 -17.5 7.5t-7.5 17.5v750 q0 10 7.5 17.5t17.5 7.5zM425 500h150q10 0 17.5 -7.5t7.5 -17.5v-450q0 -10 -7.5 -17.5t-17.5 -7.5h-150q-10 0 -17.5 7.5t-7.5 17.5v450q0 10 7.5 17.5t17.5 7.5zM125 300h150q10 0 17.5 -7.5t7.5 -17.5v-250q0 -10 -7.5 -17.5t-17.5 -7.5h-150q-10 0 -17.5 7.5t-7.5 17.5 v250q0 10 7.5 17.5t17.5 7.5z" /> -<glyph unicode="&#xe019;" d="M600 1174q33 0 74 -5l38 -152l5 -1q49 -14 94 -39l5 -2l134 80q61 -48 104 -105l-80 -134l3 -5q25 -44 39 -93l1 -6l152 -38q5 -43 5 -73q0 -34 -5 -74l-152 -38l-1 -6q-15 -49 -39 -93l-3 -5l80 -134q-48 -61 -104 -105l-134 81l-5 -3q-44 -25 -94 -39l-5 -2l-38 -151 q-43 -5 -74 -5q-33 0 -74 5l-38 151l-5 2q-49 14 -94 39l-5 3l-134 -81q-60 48 -104 105l80 134l-3 5q-25 45 -38 93l-2 6l-151 38q-6 42 -6 74q0 33 6 73l151 38l2 6q13 48 38 93l3 5l-80 134q47 61 105 105l133 -80l5 2q45 25 94 39l5 1l38 152q43 5 74 5zM600 815 q-89 0 -152 -63t-63 -151.5t63 -151.5t152 -63t152 63t63 151.5t-63 151.5t-152 63z" /> -<glyph unicode="&#xe020;" d="M500 1300h300q41 0 70.5 -29.5t29.5 -70.5v-100h275q10 0 17.5 -7.5t7.5 -17.5v-75h-1100v75q0 10 7.5 17.5t17.5 7.5h275v100q0 41 29.5 70.5t70.5 29.5zM500 1200v-100h300v100h-300zM1100 900v-800q0 -41 -29.5 -70.5t-70.5 -29.5h-700q-41 0 -70.5 29.5t-29.5 70.5 v800h900zM300 800v-700h100v700h-100zM500 800v-700h100v700h-100zM700 800v-700h100v700h-100zM900 800v-700h100v700h-100z" /> -<glyph unicode="&#xe021;" d="M18 618l620 608q8 7 18.5 7t17.5 -7l608 -608q8 -8 5.5 -13t-12.5 -5h-175v-575q0 -10 -7.5 -17.5t-17.5 -7.5h-250q-10 0 -17.5 7.5t-7.5 17.5v375h-300v-375q0 -10 -7.5 -17.5t-17.5 -7.5h-250q-10 0 -17.5 7.5t-7.5 17.5v575h-175q-10 0 -12.5 5t5.5 13z" /> -<glyph unicode="&#xe022;" d="M600 1200v-400q0 -41 29.5 -70.5t70.5 -29.5h300v-650q0 -21 -14.5 -35.5t-35.5 -14.5h-800q-21 0 -35.5 14.5t-14.5 35.5v1100q0 21 14.5 35.5t35.5 14.5h450zM1000 800h-250q-21 0 -35.5 14.5t-14.5 35.5v250z" /> -<glyph unicode="&#xe023;" d="M600 1177q117 0 224 -45.5t184.5 -123t123 -184.5t45.5 -224t-45.5 -224t-123 -184.5t-184.5 -123t-224 -45.5t-224 45.5t-184.5 123t-123 184.5t-45.5 224t45.5 224t123 184.5t184.5 123t224 45.5zM600 1027q-116 0 -214.5 -57t-155.5 -155.5t-57 -214.5t57 -214.5 t155.5 -155.5t214.5 -57t214.5 57t155.5 155.5t57 214.5t-57 214.5t-155.5 155.5t-214.5 57zM525 900h50q10 0 17.5 -7.5t7.5 -17.5v-275h175q10 0 17.5 -7.5t7.5 -17.5v-50q0 -10 -7.5 -17.5t-17.5 -7.5h-250q-10 0 -17.5 7.5t-7.5 17.5v350q0 10 7.5 17.5t17.5 7.5z" /> -<glyph unicode="&#xe024;" d="M1300 0h-538l-41 400h-242l-41 -400h-538l431 1200h209l-21 -300h162l-20 300h208zM515 800l-27 -300h224l-27 300h-170z" /> -<glyph unicode="&#xe025;" d="M550 1200h200q21 0 35.5 -14.5t14.5 -35.5v-450h191q20 0 25.5 -11.5t-7.5 -27.5l-327 -400q-13 -16 -32 -16t-32 16l-327 400q-13 16 -7.5 27.5t25.5 11.5h191v450q0 21 14.5 35.5t35.5 14.5zM1125 400h50q10 0 17.5 -7.5t7.5 -17.5v-350q0 -10 -7.5 -17.5t-17.5 -7.5 h-1050q-10 0 -17.5 7.5t-7.5 17.5v350q0 10 7.5 17.5t17.5 7.5h50q10 0 17.5 -7.5t7.5 -17.5v-175h900v175q0 10 7.5 17.5t17.5 7.5z" /> -<glyph unicode="&#xe026;" d="M600 1177q117 0 224 -45.5t184.5 -123t123 -184.5t45.5 -224t-45.5 -224t-123 -184.5t-184.5 -123t-224 -45.5t-224 45.5t-184.5 123t-123 184.5t-45.5 224t45.5 224t123 184.5t184.5 123t224 45.5zM600 1027q-116 0 -214.5 -57t-155.5 -155.5t-57 -214.5t57 -214.5 t155.5 -155.5t214.5 -57t214.5 57t155.5 155.5t57 214.5t-57 214.5t-155.5 155.5t-214.5 57zM525 900h150q10 0 17.5 -7.5t7.5 -17.5v-275h137q21 0 26 -11.5t-8 -27.5l-223 -275q-13 -16 -32 -16t-32 16l-223 275q-13 16 -8 27.5t26 11.5h137v275q0 10 7.5 17.5t17.5 7.5z " /> -<glyph unicode="&#xe027;" d="M600 1177q117 0 224 -45.5t184.5 -123t123 -184.5t45.5 -224t-45.5 -224t-123 -184.5t-184.5 -123t-224 -45.5t-224 45.5t-184.5 123t-123 184.5t-45.5 224t45.5 224t123 184.5t184.5 123t224 45.5zM600 1027q-116 0 -214.5 -57t-155.5 -155.5t-57 -214.5t57 -214.5 t155.5 -155.5t214.5 -57t214.5 57t155.5 155.5t57 214.5t-57 214.5t-155.5 155.5t-214.5 57zM632 914l223 -275q13 -16 8 -27.5t-26 -11.5h-137v-275q0 -10 -7.5 -17.5t-17.5 -7.5h-150q-10 0 -17.5 7.5t-7.5 17.5v275h-137q-21 0 -26 11.5t8 27.5l223 275q13 16 32 16 t32 -16z" /> -<glyph unicode="&#xe028;" d="M225 1200h750q10 0 19.5 -7t12.5 -17l186 -652q7 -24 7 -49v-425q0 -12 -4 -27t-9 -17q-12 -6 -37 -6h-1100q-12 0 -27 4t-17 8q-6 13 -6 38l1 425q0 25 7 49l185 652q3 10 12.5 17t19.5 7zM878 1000h-556q-10 0 -19 -7t-11 -18l-87 -450q-2 -11 4 -18t16 -7h150 q10 0 19.5 -7t11.5 -17l38 -152q2 -10 11.5 -17t19.5 -7h250q10 0 19.5 7t11.5 17l38 152q2 10 11.5 17t19.5 7h150q10 0 16 7t4 18l-87 450q-2 11 -11 18t-19 7z" /> -<glyph unicode="&#xe029;" d="M600 1177q117 0 224 -45.5t184.5 -123t123 -184.5t45.5 -224t-45.5 -224t-123 -184.5t-184.5 -123t-224 -45.5t-224 45.5t-184.5 123t-123 184.5t-45.5 224t45.5 224t123 184.5t184.5 123t224 45.5zM600 1027q-116 0 -214.5 -57t-155.5 -155.5t-57 -214.5t57 -214.5 t155.5 -155.5t214.5 -57t214.5 57t155.5 155.5t57 214.5t-57 214.5t-155.5 155.5t-214.5 57zM540 820l253 -190q17 -12 17 -30t-17 -30l-253 -190q-16 -12 -28 -6.5t-12 26.5v400q0 21 12 26.5t28 -6.5z" /> -<glyph unicode="&#xe030;" d="M947 1060l135 135q7 7 12.5 5t5.5 -13v-362q0 -10 -7.5 -17.5t-17.5 -7.5h-362q-11 0 -13 5.5t5 12.5l133 133q-109 76 -238 76q-116 0 -214.5 -57t-155.5 -155.5t-57 -214.5t57 -214.5t155.5 -155.5t214.5 -57t214.5 57t155.5 155.5t57 214.5h150q0 -117 -45.5 -224 t-123 -184.5t-184.5 -123t-224 -45.5t-224 45.5t-184.5 123t-123 184.5t-45.5 224t45.5 224t123 184.5t184.5 123t224 45.5q192 0 347 -117z" /> -<glyph unicode="&#xe031;" d="M947 1060l135 135q7 7 12.5 5t5.5 -13v-361q0 -11 -7.5 -18.5t-18.5 -7.5h-361q-11 0 -13 5.5t5 12.5l134 134q-110 75 -239 75q-116 0 -214.5 -57t-155.5 -155.5t-57 -214.5h-150q0 117 45.5 224t123 184.5t184.5 123t224 45.5q192 0 347 -117zM1027 600h150 q0 -117 -45.5 -224t-123 -184.5t-184.5 -123t-224 -45.5q-192 0 -348 118l-134 -134q-7 -8 -12.5 -5.5t-5.5 12.5v360q0 11 7.5 18.5t18.5 7.5h360q10 0 12.5 -5.5t-5.5 -12.5l-133 -133q110 -76 240 -76q116 0 214.5 57t155.5 155.5t57 214.5z" /> -<glyph unicode="&#xe032;" d="M125 1200h1050q10 0 17.5 -7.5t7.5 -17.5v-1150q0 -10 -7.5 -17.5t-17.5 -7.5h-1050q-10 0 -17.5 7.5t-7.5 17.5v1150q0 10 7.5 17.5t17.5 7.5zM1075 1000h-850q-10 0 -17.5 -7.5t-7.5 -17.5v-850q0 -10 7.5 -17.5t17.5 -7.5h850q10 0 17.5 7.5t7.5 17.5v850 q0 10 -7.5 17.5t-17.5 7.5zM325 900h50q10 0 17.5 -7.5t7.5 -17.5v-50q0 -10 -7.5 -17.5t-17.5 -7.5h-50q-10 0 -17.5 7.5t-7.5 17.5v50q0 10 7.5 17.5t17.5 7.5zM525 900h450q10 0 17.5 -7.5t7.5 -17.5v-50q0 -10 -7.5 -17.5t-17.5 -7.5h-450q-10 0 -17.5 7.5t-7.5 17.5v50 q0 10 7.5 17.5t17.5 7.5zM325 700h50q10 0 17.5 -7.5t7.5 -17.5v-50q0 -10 -7.5 -17.5t-17.5 -7.5h-50q-10 0 -17.5 7.5t-7.5 17.5v50q0 10 7.5 17.5t17.5 7.5zM525 700h450q10 0 17.5 -7.5t7.5 -17.5v-50q0 -10 -7.5 -17.5t-17.5 -7.5h-450q-10 0 -17.5 7.5t-7.5 17.5v50 q0 10 7.5 17.5t17.5 7.5zM325 500h50q10 0 17.5 -7.5t7.5 -17.5v-50q0 -10 -7.5 -17.5t-17.5 -7.5h-50q-10 0 -17.5 7.5t-7.5 17.5v50q0 10 7.5 17.5t17.5 7.5zM525 500h450q10 0 17.5 -7.5t7.5 -17.5v-50q0 -10 -7.5 -17.5t-17.5 -7.5h-450q-10 0 -17.5 7.5t-7.5 17.5v50 q0 10 7.5 17.5t17.5 7.5zM325 300h50q10 0 17.5 -7.5t7.5 -17.5v-50q0 -10 -7.5 -17.5t-17.5 -7.5h-50q-10 0 -17.5 7.5t-7.5 17.5v50q0 10 7.5 17.5t17.5 7.5zM525 300h450q10 0 17.5 -7.5t7.5 -17.5v-50q0 -10 -7.5 -17.5t-17.5 -7.5h-450q-10 0 -17.5 7.5t-7.5 17.5v50 q0 10 7.5 17.5t17.5 7.5z" /> -<glyph unicode="&#xe033;" d="M900 800v200q0 83 -58.5 141.5t-141.5 58.5h-300q-82 0 -141 -59t-59 -141v-200h-100q-41 0 -70.5 -29.5t-29.5 -70.5v-600q0 -41 29.5 -70.5t70.5 -29.5h900q41 0 70.5 29.5t29.5 70.5v600q0 41 -29.5 70.5t-70.5 29.5h-100zM400 800v150q0 21 15 35.5t35 14.5h200 q20 0 35 -14.5t15 -35.5v-150h-300z" /> -<glyph unicode="&#xe034;" d="M125 1100h50q10 0 17.5 -7.5t7.5 -17.5v-1075h-100v1075q0 10 7.5 17.5t17.5 7.5zM1075 1052q4 0 9 -2q16 -6 16 -23v-421q0 -6 -3 -12q-33 -59 -66.5 -99t-65.5 -58t-56.5 -24.5t-52.5 -6.5q-26 0 -57.5 6.5t-52.5 13.5t-60 21q-41 15 -63 22.5t-57.5 15t-65.5 7.5 q-85 0 -160 -57q-7 -5 -15 -5q-6 0 -11 3q-14 7 -14 22v438q22 55 82 98.5t119 46.5q23 2 43 0.5t43 -7t32.5 -8.5t38 -13t32.5 -11q41 -14 63.5 -21t57 -14t63.5 -7q103 0 183 87q7 8 18 8z" /> -<glyph unicode="&#xe035;" d="M600 1175q116 0 227 -49.5t192.5 -131t131 -192.5t49.5 -227v-300q0 -10 -7.5 -17.5t-17.5 -7.5h-50q-10 0 -17.5 7.5t-7.5 17.5v300q0 127 -70.5 231.5t-184.5 161.5t-245 57t-245 -57t-184.5 -161.5t-70.5 -231.5v-300q0 -10 -7.5 -17.5t-17.5 -7.5h-50 q-10 0 -17.5 7.5t-7.5 17.5v300q0 116 49.5 227t131 192.5t192.5 131t227 49.5zM220 500h160q8 0 14 -6t6 -14v-460q0 -8 -6 -14t-14 -6h-160q-8 0 -14 6t-6 14v460q0 8 6 14t14 6zM820 500h160q8 0 14 -6t6 -14v-460q0 -8 -6 -14t-14 -6h-160q-8 0 -14 6t-6 14v460 q0 8 6 14t14 6z" /> -<glyph unicode="&#xe036;" d="M321 814l258 172q9 6 15 2.5t6 -13.5v-750q0 -10 -6 -13.5t-15 2.5l-258 172q-21 14 -46 14h-250q-10 0 -17.5 7.5t-7.5 17.5v350q0 10 7.5 17.5t17.5 7.5h250q25 0 46 14zM900 668l120 120q7 7 17 7t17 -7l34 -34q7 -7 7 -17t-7 -17l-120 -120l120 -120q7 -7 7 -17 t-7 -17l-34 -34q-7 -7 -17 -7t-17 7l-120 119l-120 -119q-7 -7 -17 -7t-17 7l-34 34q-7 7 -7 17t7 17l119 120l-119 120q-7 7 -7 17t7 17l34 34q7 8 17 8t17 -8z" /> -<glyph unicode="&#xe037;" d="M321 814l258 172q9 6 15 2.5t6 -13.5v-750q0 -10 -6 -13.5t-15 2.5l-258 172q-21 14 -46 14h-250q-10 0 -17.5 7.5t-7.5 17.5v350q0 10 7.5 17.5t17.5 7.5h250q25 0 46 14zM766 900h4q10 -1 16 -10q96 -129 96 -290q0 -154 -90 -281q-6 -9 -17 -10l-3 -1q-9 0 -16 6 l-29 23q-7 7 -8.5 16.5t4.5 17.5q72 103 72 229q0 132 -78 238q-6 8 -4.5 18t9.5 17l29 22q7 5 15 5z" /> -<glyph unicode="&#xe038;" d="M967 1004h3q11 -1 17 -10q135 -179 135 -396q0 -105 -34 -206.5t-98 -185.5q-7 -9 -17 -10h-3q-9 0 -16 6l-42 34q-8 6 -9 16t5 18q111 150 111 328q0 90 -29.5 176t-84.5 157q-6 9 -5 19t10 16l42 33q7 5 15 5zM321 814l258 172q9 6 15 2.5t6 -13.5v-750q0 -10 -6 -13.5 t-15 2.5l-258 172q-21 14 -46 14h-250q-10 0 -17.5 7.5t-7.5 17.5v350q0 10 7.5 17.5t17.5 7.5h250q25 0 46 14zM766 900h4q10 -1 16 -10q96 -129 96 -290q0 -154 -90 -281q-6 -9 -17 -10l-3 -1q-9 0 -16 6l-29 23q-7 7 -8.5 16.5t4.5 17.5q72 103 72 229q0 132 -78 238 q-6 8 -4.5 18.5t9.5 16.5l29 22q7 5 15 5z" /> -<glyph unicode="&#xe039;" d="M500 900h100v-100h-100v-100h-400v-100h-100v600h500v-300zM1200 700h-200v-100h200v-200h-300v300h-200v300h-100v200h600v-500zM100 1100v-300h300v300h-300zM800 1100v-300h300v300h-300zM300 900h-100v100h100v-100zM1000 900h-100v100h100v-100zM300 500h200v-500 h-500v500h200v100h100v-100zM800 300h200v-100h-100v-100h-200v100h-100v100h100v200h-200v100h300v-300zM100 400v-300h300v300h-300zM300 200h-100v100h100v-100zM1200 200h-100v100h100v-100zM700 0h-100v100h100v-100zM1200 0h-300v100h300v-100z" /> -<glyph unicode="&#xe040;" d="M100 200h-100v1000h100v-1000zM300 200h-100v1000h100v-1000zM700 200h-200v1000h200v-1000zM900 200h-100v1000h100v-1000zM1200 200h-200v1000h200v-1000zM400 0h-300v100h300v-100zM600 0h-100v91h100v-91zM800 0h-100v91h100v-91zM1100 0h-200v91h200v-91z" /> -<glyph unicode="&#xe041;" d="M500 1200l682 -682q8 -8 8 -18t-8 -18l-464 -464q-8 -8 -18 -8t-18 8l-682 682l1 475q0 10 7.5 17.5t17.5 7.5h474zM319.5 1024.5q-29.5 29.5 -71 29.5t-71 -29.5t-29.5 -71.5t29.5 -71.5t71 -29.5t71 29.5t29.5 71.5t-29.5 71.5z" /> -<glyph unicode="&#xe042;" d="M500 1200l682 -682q8 -8 8 -18t-8 -18l-464 -464q-8 -8 -18 -8t-18 8l-682 682l1 475q0 10 7.5 17.5t17.5 7.5h474zM800 1200l682 -682q8 -8 8 -18t-8 -18l-464 -464q-8 -8 -18 -8t-18 8l-56 56l424 426l-700 700h150zM319.5 1024.5q-29.5 29.5 -71 29.5t-71 -29.5 t-29.5 -71.5t29.5 -71.5t71 -29.5t71 29.5t29.5 71.5t-29.5 71.5z" /> -<glyph unicode="&#xe043;" d="M300 1200h825q75 0 75 -75v-900q0 -25 -18 -43l-64 -64q-8 -8 -13 -5.5t-5 12.5v950q0 10 -7.5 17.5t-17.5 7.5h-700q-25 0 -43 -18l-64 -64q-8 -8 -5.5 -13t12.5 -5h700q10 0 17.5 -7.5t7.5 -17.5v-950q0 -10 -7.5 -17.5t-17.5 -7.5h-850q-10 0 -17.5 7.5t-7.5 17.5v975 q0 25 18 43l139 139q18 18 43 18z" /> -<glyph unicode="&#xe044;" d="M250 1200h800q21 0 35.5 -14.5t14.5 -35.5v-1150l-450 444l-450 -445v1151q0 21 14.5 35.5t35.5 14.5z" /> -<glyph unicode="&#xe045;" d="M822 1200h-444q-11 0 -19 -7.5t-9 -17.5l-78 -301q-7 -24 7 -45l57 -108q6 -9 17.5 -15t21.5 -6h450q10 0 21.5 6t17.5 15l62 108q14 21 7 45l-83 301q-1 10 -9 17.5t-19 7.5zM1175 800h-150q-10 0 -21 -6.5t-15 -15.5l-78 -156q-4 -9 -15 -15.5t-21 -6.5h-550 q-10 0 -21 6.5t-15 15.5l-78 156q-4 9 -15 15.5t-21 6.5h-150q-10 0 -17.5 -7.5t-7.5 -17.5v-650q0 -10 7.5 -17.5t17.5 -7.5h150q10 0 17.5 7.5t7.5 17.5v150q0 10 7.5 17.5t17.5 7.5h750q10 0 17.5 -7.5t7.5 -17.5v-150q0 -10 7.5 -17.5t17.5 -7.5h150q10 0 17.5 7.5 t7.5 17.5v650q0 10 -7.5 17.5t-17.5 7.5zM850 200h-500q-10 0 -19.5 -7t-11.5 -17l-38 -152q-2 -10 3.5 -17t15.5 -7h600q10 0 15.5 7t3.5 17l-38 152q-2 10 -11.5 17t-19.5 7z" /> -<glyph unicode="&#xe046;" d="M500 1100h200q56 0 102.5 -20.5t72.5 -50t44 -59t25 -50.5l6 -20h150q41 0 70.5 -29.5t29.5 -70.5v-600q0 -41 -29.5 -70.5t-70.5 -29.5h-1000q-41 0 -70.5 29.5t-29.5 70.5v600q0 41 29.5 70.5t70.5 29.5h150q2 8 6.5 21.5t24 48t45 61t72 48t102.5 21.5zM900 800v-100 h100v100h-100zM600 730q-95 0 -162.5 -67.5t-67.5 -162.5t67.5 -162.5t162.5 -67.5t162.5 67.5t67.5 162.5t-67.5 162.5t-162.5 67.5zM600 603q43 0 73 -30t30 -73t-30 -73t-73 -30t-73 30t-30 73t30 73t73 30z" /> -<glyph unicode="&#xe047;" d="M681 1199l385 -998q20 -50 60 -92q18 -19 36.5 -29.5t27.5 -11.5l10 -2v-66h-417v66q53 0 75 43.5t5 88.5l-82 222h-391q-58 -145 -92 -234q-11 -34 -6.5 -57t25.5 -37t46 -20t55 -6v-66h-365v66q56 24 84 52q12 12 25 30.5t20 31.5l7 13l399 1006h93zM416 521h340 l-162 457z" /> -<glyph unicode="&#xe048;" d="M753 641q5 -1 14.5 -4.5t36 -15.5t50.5 -26.5t53.5 -40t50.5 -54.5t35.5 -70t14.5 -87q0 -67 -27.5 -125.5t-71.5 -97.5t-98.5 -66.5t-108.5 -40.5t-102 -13h-500v89q41 7 70.5 32.5t29.5 65.5v827q0 24 -0.5 34t-3.5 24t-8.5 19.5t-17 13.5t-28 12.5t-42.5 11.5v71 l471 -1q57 0 115.5 -20.5t108 -57t80.5 -94t31 -124.5q0 -51 -15.5 -96.5t-38 -74.5t-45 -50.5t-38.5 -30.5zM400 700h139q78 0 130.5 48.5t52.5 122.5q0 41 -8.5 70.5t-29.5 55.5t-62.5 39.5t-103.5 13.5h-118v-350zM400 200h216q80 0 121 50.5t41 130.5q0 90 -62.5 154.5 t-156.5 64.5h-159v-400z" /> -<glyph unicode="&#xe049;" d="M877 1200l2 -57q-83 -19 -116 -45.5t-40 -66.5l-132 -839q-9 -49 13 -69t96 -26v-97h-500v97q186 16 200 98l173 832q3 17 3 30t-1.5 22.5t-9 17.5t-13.5 12.5t-21.5 10t-26 8.5t-33.5 10q-13 3 -19 5v57h425z" /> -<glyph unicode="&#xe050;" d="M1300 900h-50q0 21 -4 37t-9.5 26.5t-18 17.5t-22 11t-28.5 5.5t-31 2t-37 0.5h-200v-850q0 -22 25 -34.5t50 -13.5l25 -2v-100h-400v100q4 0 11 0.5t24 3t30 7t24 15t11 24.5v850h-200q-25 0 -37 -0.5t-31 -2t-28.5 -5.5t-22 -11t-18 -17.5t-9.5 -26.5t-4 -37h-50v300 h1000v-300zM175 1000h-75v-800h75l-125 -167l-125 167h75v800h-75l125 167z" /> -<glyph unicode="&#xe051;" d="M1100 900h-50q0 21 -4 37t-9.5 26.5t-18 17.5t-22 11t-28.5 5.5t-31 2t-37 0.5h-200v-650q0 -22 25 -34.5t50 -13.5l25 -2v-100h-400v100q4 0 11 0.5t24 3t30 7t24 15t11 24.5v650h-200q-25 0 -37 -0.5t-31 -2t-28.5 -5.5t-22 -11t-18 -17.5t-9.5 -26.5t-4 -37h-50v300 h1000v-300zM1167 50l-167 -125v75h-800v-75l-167 125l167 125v-75h800v75z" /> -<glyph unicode="&#xe052;" d="M50 1100h600q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-600q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5zM50 800h1000q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-1000q-21 0 -35.5 14.5t-14.5 35.5v100 q0 21 14.5 35.5t35.5 14.5zM50 500h800q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-800q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5zM50 200h1100q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-1100 q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5z" /> -<glyph unicode="&#xe053;" d="M250 1100h700q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-700q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5zM50 800h1100q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-1100q-21 0 -35.5 14.5t-14.5 35.5v100 q0 21 14.5 35.5t35.5 14.5zM250 500h700q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-700q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5zM50 200h1100q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-1100 q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5z" /> -<glyph unicode="&#xe054;" d="M500 950v100q0 21 14.5 35.5t35.5 14.5h600q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-600q-21 0 -35.5 14.5t-14.5 35.5zM100 650v100q0 21 14.5 35.5t35.5 14.5h1000q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-1000 q-21 0 -35.5 14.5t-14.5 35.5zM300 350v100q0 21 14.5 35.5t35.5 14.5h800q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-800q-21 0 -35.5 14.5t-14.5 35.5zM0 50v100q0 21 14.5 35.5t35.5 14.5h1100q21 0 35.5 -14.5t14.5 -35.5v-100 q0 -21 -14.5 -35.5t-35.5 -14.5h-1100q-21 0 -35.5 14.5t-14.5 35.5z" /> -<glyph unicode="&#xe055;" d="M50 1100h1100q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-1100q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5zM50 800h1100q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-1100q-21 0 -35.5 14.5t-14.5 35.5v100 q0 21 14.5 35.5t35.5 14.5zM50 500h1100q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-1100q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5zM50 200h1100q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-1100 q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5z" /> -<glyph unicode="&#xe056;" d="M50 1100h100q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-100q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5zM350 1100h800q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-800q-21 0 -35.5 14.5t-14.5 35.5v100 q0 21 14.5 35.5t35.5 14.5zM50 800h100q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-100q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5zM350 800h800q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-800 q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5zM50 500h100q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-100q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5zM350 500h800q21 0 35.5 -14.5t14.5 -35.5v-100 q0 -21 -14.5 -35.5t-35.5 -14.5h-800q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5zM50 200h100q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-100q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5zM350 200h800 q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-800q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5z" /> -<glyph unicode="&#xe057;" d="M400 0h-100v1100h100v-1100zM550 1100h100q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-100q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5zM550 800h500q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-500 q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5zM267 550l-167 -125v75h-200v100h200v75zM550 500h300q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-300q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5zM550 200h600 q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-600q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5z" /> -<glyph unicode="&#xe058;" d="M50 1100h100q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-100q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5zM900 0h-100v1100h100v-1100zM50 800h500q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-500 q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5zM1100 600h200v-100h-200v-75l-167 125l167 125v-75zM50 500h300q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-300q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5zM50 200h600 q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-600q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5z" /> -<glyph unicode="&#xe059;" d="M75 1000h750q31 0 53 -22t22 -53v-650q0 -31 -22 -53t-53 -22h-750q-31 0 -53 22t-22 53v650q0 31 22 53t53 22zM1200 300l-300 300l300 300v-600z" /> -<glyph unicode="&#xe060;" d="M44 1100h1112q18 0 31 -13t13 -31v-1012q0 -18 -13 -31t-31 -13h-1112q-18 0 -31 13t-13 31v1012q0 18 13 31t31 13zM100 1000v-737l247 182l298 -131l-74 156l293 318l236 -288v500h-1000zM342 884q56 0 95 -39t39 -94.5t-39 -95t-95 -39.5t-95 39.5t-39 95t39 94.5 t95 39z" /> -<glyph unicode="&#xe062;" d="M648 1169q117 0 216 -60t156.5 -161t57.5 -218q0 -115 -70 -258q-69 -109 -158 -225.5t-143 -179.5l-54 -62q-9 8 -25.5 24.5t-63.5 67.5t-91 103t-98.5 128t-95.5 148q-60 132 -60 249q0 88 34 169.5t91.5 142t137 96.5t166.5 36zM652.5 974q-91.5 0 -156.5 -65 t-65 -157t65 -156.5t156.5 -64.5t156.5 64.5t65 156.5t-65 157t-156.5 65z" /> -<glyph unicode="&#xe063;" d="M600 1177q117 0 224 -45.5t184.5 -123t123 -184.5t45.5 -224t-45.5 -224t-123 -184.5t-184.5 -123t-224 -45.5t-224 45.5t-184.5 123t-123 184.5t-45.5 224t45.5 224t123 184.5t184.5 123t224 45.5zM600 173v854q-116 0 -214.5 -57t-155.5 -155.5t-57 -214.5t57 -214.5 t155.5 -155.5t214.5 -57z" /> -<glyph unicode="&#xe064;" d="M554 1295q21 -72 57.5 -143.5t76 -130t83 -118t82.5 -117t70 -116t49.5 -126t18.5 -136.5q0 -71 -25.5 -135t-68.5 -111t-99 -82t-118.5 -54t-125.5 -23q-84 5 -161.5 34t-139.5 78.5t-99 125t-37 164.5q0 69 18 136.5t49.5 126.5t69.5 116.5t81.5 117.5t83.5 119 t76.5 131t58.5 143zM344 710q-23 -33 -43.5 -70.5t-40.5 -102.5t-17 -123q1 -37 14.5 -69.5t30 -52t41 -37t38.5 -24.5t33 -15q21 -7 32 -1t13 22l6 34q2 10 -2.5 22t-13.5 19q-5 4 -14 12t-29.5 40.5t-32.5 73.5q-26 89 6 271q2 11 -6 11q-8 1 -15 -10z" /> -<glyph unicode="&#xe065;" d="M1000 1013l108 115q2 1 5 2t13 2t20.5 -1t25 -9.5t28.5 -21.5q22 -22 27 -43t0 -32l-6 -10l-108 -115zM350 1100h400q50 0 105 -13l-187 -187h-368q-41 0 -70.5 -29.5t-29.5 -70.5v-500q0 -41 29.5 -70.5t70.5 -29.5h500q41 0 70.5 29.5t29.5 70.5v182l200 200v-332 q0 -165 -93.5 -257.5t-256.5 -92.5h-400q-165 0 -257.5 92.5t-92.5 257.5v400q0 165 92.5 257.5t257.5 92.5zM1009 803l-362 -362l-161 -50l55 170l355 355z" /> -<glyph unicode="&#xe066;" d="M350 1100h361q-164 -146 -216 -200h-195q-41 0 -70.5 -29.5t-29.5 -70.5v-500q0 -41 29.5 -70.5t70.5 -29.5h500q41 0 70.5 29.5t29.5 70.5l200 153v-103q0 -165 -92.5 -257.5t-257.5 -92.5h-400q-165 0 -257.5 92.5t-92.5 257.5v400q0 165 92.5 257.5t257.5 92.5z M824 1073l339 -301q8 -7 8 -17.5t-8 -17.5l-340 -306q-7 -6 -12.5 -4t-6.5 11v203q-26 1 -54.5 0t-78.5 -7.5t-92 -17.5t-86 -35t-70 -57q10 59 33 108t51.5 81.5t65 58.5t68.5 40.5t67 24.5t56 13.5t40 4.5v210q1 10 6.5 12.5t13.5 -4.5z" /> -<glyph unicode="&#xe067;" d="M350 1100h350q60 0 127 -23l-178 -177h-349q-41 0 -70.5 -29.5t-29.5 -70.5v-500q0 -41 29.5 -70.5t70.5 -29.5h500q41 0 70.5 29.5t29.5 70.5v69l200 200v-219q0 -165 -92.5 -257.5t-257.5 -92.5h-400q-165 0 -257.5 92.5t-92.5 257.5v400q0 165 92.5 257.5t257.5 92.5z M643 639l395 395q7 7 17.5 7t17.5 -7l101 -101q7 -7 7 -17.5t-7 -17.5l-531 -532q-7 -7 -17.5 -7t-17.5 7l-248 248q-7 7 -7 17.5t7 17.5l101 101q7 7 17.5 7t17.5 -7l111 -111q8 -7 18 -7t18 7z" /> -<glyph unicode="&#xe068;" d="M318 918l264 264q8 8 18 8t18 -8l260 -264q7 -8 4.5 -13t-12.5 -5h-170v-200h200v173q0 10 5 12t13 -5l264 -260q8 -7 8 -17.5t-8 -17.5l-264 -265q-8 -7 -13 -5t-5 12v173h-200v-200h170q10 0 12.5 -5t-4.5 -13l-260 -264q-8 -8 -18 -8t-18 8l-264 264q-8 8 -5.5 13 t12.5 5h175v200h-200v-173q0 -10 -5 -12t-13 5l-264 265q-8 7 -8 17.5t8 17.5l264 260q8 7 13 5t5 -12v-173h200v200h-175q-10 0 -12.5 5t5.5 13z" /> -<glyph unicode="&#xe069;" d="M250 1100h100q21 0 35.5 -14.5t14.5 -35.5v-438l464 453q15 14 25.5 10t10.5 -25v-1000q0 -21 -10.5 -25t-25.5 10l-464 453v-438q0 -21 -14.5 -35.5t-35.5 -14.5h-100q-21 0 -35.5 14.5t-14.5 35.5v1000q0 21 14.5 35.5t35.5 14.5z" /> -<glyph unicode="&#xe070;" d="M50 1100h100q21 0 35.5 -14.5t14.5 -35.5v-438l464 453q15 14 25.5 10t10.5 -25v-438l464 453q15 14 25.5 10t10.5 -25v-1000q0 -21 -10.5 -25t-25.5 10l-464 453v-438q0 -21 -10.5 -25t-25.5 10l-464 453v-438q0 -21 -14.5 -35.5t-35.5 -14.5h-100q-21 0 -35.5 14.5 t-14.5 35.5v1000q0 21 14.5 35.5t35.5 14.5z" /> -<glyph unicode="&#xe071;" d="M1200 1050v-1000q0 -21 -10.5 -25t-25.5 10l-464 453v-438q0 -21 -10.5 -25t-25.5 10l-492 480q-15 14 -15 35t15 35l492 480q15 14 25.5 10t10.5 -25v-438l464 453q15 14 25.5 10t10.5 -25z" /> -<glyph unicode="&#xe072;" d="M243 1074l814 -498q18 -11 18 -26t-18 -26l-814 -498q-18 -11 -30.5 -4t-12.5 28v1000q0 21 12.5 28t30.5 -4z" /> -<glyph unicode="&#xe073;" d="M250 1000h200q21 0 35.5 -14.5t14.5 -35.5v-800q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5v800q0 21 14.5 35.5t35.5 14.5zM650 1000h200q21 0 35.5 -14.5t14.5 -35.5v-800q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5v800 q0 21 14.5 35.5t35.5 14.5z" /> -<glyph unicode="&#xe074;" d="M1100 950v-800q0 -21 -14.5 -35.5t-35.5 -14.5h-800q-21 0 -35.5 14.5t-14.5 35.5v800q0 21 14.5 35.5t35.5 14.5h800q21 0 35.5 -14.5t14.5 -35.5z" /> -<glyph unicode="&#xe075;" d="M500 612v438q0 21 10.5 25t25.5 -10l492 -480q15 -14 15 -35t-15 -35l-492 -480q-15 -14 -25.5 -10t-10.5 25v438l-464 -453q-15 -14 -25.5 -10t-10.5 25v1000q0 21 10.5 25t25.5 -10z" /> -<glyph unicode="&#xe076;" d="M1048 1102l100 1q20 0 35 -14.5t15 -35.5l5 -1000q0 -21 -14.5 -35.5t-35.5 -14.5l-100 -1q-21 0 -35.5 14.5t-14.5 35.5l-2 437l-463 -454q-14 -15 -24.5 -10.5t-10.5 25.5l-2 437l-462 -455q-15 -14 -25.5 -9.5t-10.5 24.5l-5 1000q0 21 10.5 25.5t25.5 -10.5l466 -450 l-2 438q0 20 10.5 24.5t25.5 -9.5l466 -451l-2 438q0 21 14.5 35.5t35.5 14.5z" /> -<glyph unicode="&#xe077;" d="M850 1100h100q21 0 35.5 -14.5t14.5 -35.5v-1000q0 -21 -14.5 -35.5t-35.5 -14.5h-100q-21 0 -35.5 14.5t-14.5 35.5v438l-464 -453q-15 -14 -25.5 -10t-10.5 25v1000q0 21 10.5 25t25.5 -10l464 -453v438q0 21 14.5 35.5t35.5 14.5z" /> -<glyph unicode="&#xe078;" d="M686 1081l501 -540q15 -15 10.5 -26t-26.5 -11h-1042q-22 0 -26.5 11t10.5 26l501 540q15 15 36 15t36 -15zM150 400h1000q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-1000q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5z" /> -<glyph unicode="&#xe079;" d="M885 900l-352 -353l352 -353l-197 -198l-552 552l552 550z" /> -<glyph unicode="&#xe080;" d="M1064 547l-551 -551l-198 198l353 353l-353 353l198 198z" /> -<glyph unicode="&#xe081;" d="M600 1177q117 0 224 -45.5t184.5 -123t123 -184.5t45.5 -224t-45.5 -224t-123 -184.5t-184.5 -123t-224 -45.5t-224 45.5t-184.5 123t-123 184.5t-45.5 224t45.5 224t123 184.5t184.5 123t224 45.5zM650 900h-100q-21 0 -35.5 -14.5t-14.5 -35.5v-150h-150 q-21 0 -35.5 -14.5t-14.5 -35.5v-100q0 -21 14.5 -35.5t35.5 -14.5h150v-150q0 -21 14.5 -35.5t35.5 -14.5h100q21 0 35.5 14.5t14.5 35.5v150h150q21 0 35.5 14.5t14.5 35.5v100q0 21 -14.5 35.5t-35.5 14.5h-150v150q0 21 -14.5 35.5t-35.5 14.5z" /> -<glyph unicode="&#xe082;" d="M600 1177q117 0 224 -45.5t184.5 -123t123 -184.5t45.5 -224t-45.5 -224t-123 -184.5t-184.5 -123t-224 -45.5t-224 45.5t-184.5 123t-123 184.5t-45.5 224t45.5 224t123 184.5t184.5 123t224 45.5zM850 700h-500q-21 0 -35.5 -14.5t-14.5 -35.5v-100q0 -21 14.5 -35.5 t35.5 -14.5h500q21 0 35.5 14.5t14.5 35.5v100q0 21 -14.5 35.5t-35.5 14.5z" /> -<glyph unicode="&#xe083;" d="M600 1177q117 0 224 -45.5t184.5 -123t123 -184.5t45.5 -224t-45.5 -224t-123 -184.5t-184.5 -123t-224 -45.5t-224 45.5t-184.5 123t-123 184.5t-45.5 224t45.5 224t123 184.5t184.5 123t224 45.5zM741.5 913q-12.5 0 -21.5 -9l-120 -120l-120 120q-9 9 -21.5 9 t-21.5 -9l-141 -141q-9 -9 -9 -21.5t9 -21.5l120 -120l-120 -120q-9 -9 -9 -21.5t9 -21.5l141 -141q9 -9 21.5 -9t21.5 9l120 120l120 -120q9 -9 21.5 -9t21.5 9l141 141q9 9 9 21.5t-9 21.5l-120 120l120 120q9 9 9 21.5t-9 21.5l-141 141q-9 9 -21.5 9z" /> -<glyph unicode="&#xe084;" d="M600 1177q117 0 224 -45.5t184.5 -123t123 -184.5t45.5 -224t-45.5 -224t-123 -184.5t-184.5 -123t-224 -45.5t-224 45.5t-184.5 123t-123 184.5t-45.5 224t45.5 224t123 184.5t184.5 123t224 45.5zM546 623l-84 85q-7 7 -17.5 7t-18.5 -7l-139 -139q-7 -8 -7 -18t7 -18 l242 -241q7 -8 17.5 -8t17.5 8l375 375q7 7 7 17.5t-7 18.5l-139 139q-7 7 -17.5 7t-17.5 -7z" /> -<glyph unicode="&#xe085;" d="M600 1177q117 0 224 -45.5t184.5 -123t123 -184.5t45.5 -224t-45.5 -224t-123 -184.5t-184.5 -123t-224 -45.5t-224 45.5t-184.5 123t-123 184.5t-45.5 224t45.5 224t123 184.5t184.5 123t224 45.5zM588 941q-29 0 -59 -5.5t-63 -20.5t-58 -38.5t-41.5 -63t-16.5 -89.5 q0 -25 20 -25h131q30 -5 35 11q6 20 20.5 28t45.5 8q20 0 31.5 -10.5t11.5 -28.5q0 -23 -7 -34t-26 -18q-1 0 -13.5 -4t-19.5 -7.5t-20 -10.5t-22 -17t-18.5 -24t-15.5 -35t-8 -46q-1 -8 5.5 -16.5t20.5 -8.5h173q7 0 22 8t35 28t37.5 48t29.5 74t12 100q0 47 -17 83 t-42.5 57t-59.5 34.5t-64 18t-59 4.5zM675 400h-150q-10 0 -17.5 -7.5t-7.5 -17.5v-150q0 -10 7.5 -17.5t17.5 -7.5h150q10 0 17.5 7.5t7.5 17.5v150q0 10 -7.5 17.5t-17.5 7.5z" /> -<glyph unicode="&#xe086;" d="M600 1177q117 0 224 -45.5t184.5 -123t123 -184.5t45.5 -224t-45.5 -224t-123 -184.5t-184.5 -123t-224 -45.5t-224 45.5t-184.5 123t-123 184.5t-45.5 224t45.5 224t123 184.5t184.5 123t224 45.5zM675 1000h-150q-10 0 -17.5 -7.5t-7.5 -17.5v-150q0 -10 7.5 -17.5 t17.5 -7.5h150q10 0 17.5 7.5t7.5 17.5v150q0 10 -7.5 17.5t-17.5 7.5zM675 700h-250q-10 0 -17.5 -7.5t-7.5 -17.5v-50q0 -10 7.5 -17.5t17.5 -7.5h75v-200h-75q-10 0 -17.5 -7.5t-7.5 -17.5v-50q0 -10 7.5 -17.5t17.5 -7.5h350q10 0 17.5 7.5t7.5 17.5v50q0 10 -7.5 17.5 t-17.5 7.5h-75v275q0 10 -7.5 17.5t-17.5 7.5z" /> -<glyph unicode="&#xe087;" d="M525 1200h150q10 0 17.5 -7.5t7.5 -17.5v-194q103 -27 178.5 -102.5t102.5 -178.5h194q10 0 17.5 -7.5t7.5 -17.5v-150q0 -10 -7.5 -17.5t-17.5 -7.5h-194q-27 -103 -102.5 -178.5t-178.5 -102.5v-194q0 -10 -7.5 -17.5t-17.5 -7.5h-150q-10 0 -17.5 7.5t-7.5 17.5v194 q-103 27 -178.5 102.5t-102.5 178.5h-194q-10 0 -17.5 7.5t-7.5 17.5v150q0 10 7.5 17.5t17.5 7.5h194q27 103 102.5 178.5t178.5 102.5v194q0 10 7.5 17.5t17.5 7.5zM700 893v-168q0 -10 -7.5 -17.5t-17.5 -7.5h-150q-10 0 -17.5 7.5t-7.5 17.5v168q-68 -23 -119 -74 t-74 -119h168q10 0 17.5 -7.5t7.5 -17.5v-150q0 -10 -7.5 -17.5t-17.5 -7.5h-168q23 -68 74 -119t119 -74v168q0 10 7.5 17.5t17.5 7.5h150q10 0 17.5 -7.5t7.5 -17.5v-168q68 23 119 74t74 119h-168q-10 0 -17.5 7.5t-7.5 17.5v150q0 10 7.5 17.5t17.5 7.5h168 q-23 68 -74 119t-119 74z" /> -<glyph unicode="&#xe088;" d="M600 1177q117 0 224 -45.5t184.5 -123t123 -184.5t45.5 -224t-45.5 -224t-123 -184.5t-184.5 -123t-224 -45.5t-224 45.5t-184.5 123t-123 184.5t-45.5 224t45.5 224t123 184.5t184.5 123t224 45.5zM600 1027q-116 0 -214.5 -57t-155.5 -155.5t-57 -214.5t57 -214.5 t155.5 -155.5t214.5 -57t214.5 57t155.5 155.5t57 214.5t-57 214.5t-155.5 155.5t-214.5 57zM759 823l64 -64q7 -7 7 -17.5t-7 -17.5l-124 -124l124 -124q7 -7 7 -17.5t-7 -17.5l-64 -64q-7 -7 -17.5 -7t-17.5 7l-124 124l-124 -124q-7 -7 -17.5 -7t-17.5 7l-64 64 q-7 7 -7 17.5t7 17.5l124 124l-124 124q-7 7 -7 17.5t7 17.5l64 64q7 7 17.5 7t17.5 -7l124 -124l124 124q7 7 17.5 7t17.5 -7z" /> -<glyph unicode="&#xe089;" d="M600 1177q117 0 224 -45.5t184.5 -123t123 -184.5t45.5 -224t-45.5 -224t-123 -184.5t-184.5 -123t-224 -45.5t-224 45.5t-184.5 123t-123 184.5t-45.5 224t45.5 224t123 184.5t184.5 123t224 45.5zM600 1027q-116 0 -214.5 -57t-155.5 -155.5t-57 -214.5t57 -214.5 t155.5 -155.5t214.5 -57t214.5 57t155.5 155.5t57 214.5t-57 214.5t-155.5 155.5t-214.5 57zM782 788l106 -106q7 -7 7 -17.5t-7 -17.5l-320 -321q-8 -7 -18 -7t-18 7l-202 203q-8 7 -8 17.5t8 17.5l106 106q7 8 17.5 8t17.5 -8l79 -79l197 197q7 7 17.5 7t17.5 -7z" /> -<glyph unicode="&#xe090;" d="M600 1177q117 0 224 -45.5t184.5 -123t123 -184.5t45.5 -224t-45.5 -224t-123 -184.5t-184.5 -123t-224 -45.5t-224 45.5t-184.5 123t-123 184.5t-45.5 224t45.5 224t123 184.5t184.5 123t224 45.5zM600 1027q-116 0 -214.5 -57t-155.5 -155.5t-57 -214.5q0 -120 65 -225 l587 587q-105 65 -225 65zM965 819l-584 -584q104 -62 219 -62q116 0 214.5 57t155.5 155.5t57 214.5q0 115 -62 219z" /> -<glyph unicode="&#xe091;" d="M39 582l522 427q16 13 27.5 8t11.5 -26v-291h550q21 0 35.5 -14.5t14.5 -35.5v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-550v-291q0 -21 -11.5 -26t-27.5 8l-522 427q-16 13 -16 32t16 32z" /> -<glyph unicode="&#xe092;" d="M639 1009l522 -427q16 -13 16 -32t-16 -32l-522 -427q-16 -13 -27.5 -8t-11.5 26v291h-550q-21 0 -35.5 14.5t-14.5 35.5v200q0 21 14.5 35.5t35.5 14.5h550v291q0 21 11.5 26t27.5 -8z" /> -<glyph unicode="&#xe093;" d="M682 1161l427 -522q13 -16 8 -27.5t-26 -11.5h-291v-550q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5v550h-291q-21 0 -26 11.5t8 27.5l427 522q13 16 32 16t32 -16z" /> -<glyph unicode="&#xe094;" d="M550 1200h200q21 0 35.5 -14.5t14.5 -35.5v-550h291q21 0 26 -11.5t-8 -27.5l-427 -522q-13 -16 -32 -16t-32 16l-427 522q-13 16 -8 27.5t26 11.5h291v550q0 21 14.5 35.5t35.5 14.5z" /> -<glyph unicode="&#xe095;" d="M639 1109l522 -427q16 -13 16 -32t-16 -32l-522 -427q-16 -13 -27.5 -8t-11.5 26v291q-94 -2 -182 -20t-170.5 -52t-147 -92.5t-100.5 -135.5q5 105 27 193.5t67.5 167t113 135t167 91.5t225.5 42v262q0 21 11.5 26t27.5 -8z" /> -<glyph unicode="&#xe096;" d="M850 1200h300q21 0 35.5 -14.5t14.5 -35.5v-300q0 -21 -10.5 -25t-24.5 10l-94 94l-249 -249q-8 -7 -18 -7t-18 7l-106 106q-7 8 -7 18t7 18l249 249l-94 94q-14 14 -10 24.5t25 10.5zM350 0h-300q-21 0 -35.5 14.5t-14.5 35.5v300q0 21 10.5 25t24.5 -10l94 -94l249 249 q8 7 18 7t18 -7l106 -106q7 -8 7 -18t-7 -18l-249 -249l94 -94q14 -14 10 -24.5t-25 -10.5z" /> -<glyph unicode="&#xe097;" d="M1014 1120l106 -106q7 -8 7 -18t-7 -18l-249 -249l94 -94q14 -14 10 -24.5t-25 -10.5h-300q-21 0 -35.5 14.5t-14.5 35.5v300q0 21 10.5 25t24.5 -10l94 -94l249 249q8 7 18 7t18 -7zM250 600h300q21 0 35.5 -14.5t14.5 -35.5v-300q0 -21 -10.5 -25t-24.5 10l-94 94 l-249 -249q-8 -7 -18 -7t-18 7l-106 106q-7 8 -7 18t7 18l249 249l-94 94q-14 14 -10 24.5t25 10.5z" /> -<glyph unicode="&#xe101;" d="M600 1177q117 0 224 -45.5t184.5 -123t123 -184.5t45.5 -224t-45.5 -224t-123 -184.5t-184.5 -123t-224 -45.5t-224 45.5t-184.5 123t-123 184.5t-45.5 224t45.5 224t123 184.5t184.5 123t224 45.5zM704 900h-208q-20 0 -32 -14.5t-8 -34.5l58 -302q4 -20 21.5 -34.5 t37.5 -14.5h54q20 0 37.5 14.5t21.5 34.5l58 302q4 20 -8 34.5t-32 14.5zM675 400h-150q-10 0 -17.5 -7.5t-7.5 -17.5v-150q0 -10 7.5 -17.5t17.5 -7.5h150q10 0 17.5 7.5t7.5 17.5v150q0 10 -7.5 17.5t-17.5 7.5z" /> -<glyph unicode="&#xe102;" d="M260 1200q9 0 19 -2t15 -4l5 -2q22 -10 44 -23l196 -118q21 -13 36 -24q29 -21 37 -12q11 13 49 35l196 118q22 13 45 23q17 7 38 7q23 0 47 -16.5t37 -33.5l13 -16q14 -21 18 -45l25 -123l8 -44q1 -9 8.5 -14.5t17.5 -5.5h61q10 0 17.5 -7.5t7.5 -17.5v-50 q0 -10 -7.5 -17.5t-17.5 -7.5h-50q-10 0 -17.5 -7.5t-7.5 -17.5v-175h-400v300h-200v-300h-400v175q0 10 -7.5 17.5t-17.5 7.5h-50q-10 0 -17.5 7.5t-7.5 17.5v50q0 10 7.5 17.5t17.5 7.5h61q11 0 18 3t7 8q0 4 9 52l25 128q5 25 19 45q2 3 5 7t13.5 15t21.5 19.5t26.5 15.5 t29.5 7zM915 1079l-166 -162q-7 -7 -5 -12t12 -5h219q10 0 15 7t2 17l-51 149q-3 10 -11 12t-15 -6zM463 917l-177 157q-8 7 -16 5t-11 -12l-51 -143q-3 -10 2 -17t15 -7h231q11 0 12.5 5t-5.5 12zM500 0h-375q-10 0 -17.5 7.5t-7.5 17.5v375h400v-400zM1100 400v-375 q0 -10 -7.5 -17.5t-17.5 -7.5h-375v400h400z" /> -<glyph unicode="&#xe103;" d="M1165 1190q8 3 21 -6.5t13 -17.5q-2 -178 -24.5 -323.5t-55.5 -245.5t-87 -174.5t-102.5 -118.5t-118 -68.5t-118.5 -33t-120 -4.5t-105 9.5t-90 16.5q-61 12 -78 11q-4 1 -12.5 0t-34 -14.5t-52.5 -40.5l-153 -153q-26 -24 -37 -14.5t-11 43.5q0 64 42 102q8 8 50.5 45 t66.5 58q19 17 35 47t13 61q-9 55 -10 102.5t7 111t37 130t78 129.5q39 51 80 88t89.5 63.5t94.5 45t113.5 36t129 31t157.5 37t182 47.5zM1116 1098q-8 9 -22.5 -3t-45.5 -50q-38 -47 -119 -103.5t-142 -89.5l-62 -33q-56 -30 -102 -57t-104 -68t-102.5 -80.5t-85.5 -91 t-64 -104.5q-24 -56 -31 -86t2 -32t31.5 17.5t55.5 59.5q25 30 94 75.5t125.5 77.5t147.5 81q70 37 118.5 69t102 79.5t99 111t86.5 148.5q22 50 24 60t-6 19z" /> -<glyph unicode="&#xe104;" d="M653 1231q-39 -67 -54.5 -131t-10.5 -114.5t24.5 -96.5t47.5 -80t63.5 -62.5t68.5 -46.5t65 -30q-4 7 -17.5 35t-18.5 39.5t-17 39.5t-17 43t-13 42t-9.5 44.5t-2 42t4 43t13.5 39t23 38.5q96 -42 165 -107.5t105 -138t52 -156t13 -159t-19 -149.5q-13 -55 -44 -106.5 t-68 -87t-78.5 -64.5t-72.5 -45t-53 -22q-72 -22 -127 -11q-31 6 -13 19q6 3 17 7q13 5 32.5 21t41 44t38.5 63.5t21.5 81.5t-6.5 94.5t-50 107t-104 115.5q10 -104 -0.5 -189t-37 -140.5t-65 -93t-84 -52t-93.5 -11t-95 24.5q-80 36 -131.5 114t-53.5 171q-2 23 0 49.5 t4.5 52.5t13.5 56t27.5 60t46 64.5t69.5 68.5q-8 -53 -5 -102.5t17.5 -90t34 -68.5t44.5 -39t49 -2q31 13 38.5 36t-4.5 55t-29 64.5t-36 75t-26 75.5q-15 85 2 161.5t53.5 128.5t85.5 92.5t93.5 61t81.5 25.5z" /> -<glyph unicode="&#xe105;" d="M600 1094q82 0 160.5 -22.5t140 -59t116.5 -82.5t94.5 -95t68 -95t42.5 -82.5t14 -57.5t-14 -57.5t-43 -82.5t-68.5 -95t-94.5 -95t-116.5 -82.5t-140 -59t-159.5 -22.5t-159.5 22.5t-140 59t-116.5 82.5t-94.5 95t-68.5 95t-43 82.5t-14 57.5t14 57.5t42.5 82.5t68 95 t94.5 95t116.5 82.5t140 59t160.5 22.5zM888 829q-15 15 -18 12t5 -22q25 -57 25 -119q0 -124 -88 -212t-212 -88t-212 88t-88 212q0 59 23 114q8 19 4.5 22t-17.5 -12q-70 -69 -160 -184q-13 -16 -15 -40.5t9 -42.5q22 -36 47 -71t70 -82t92.5 -81t113 -58.5t133.5 -24.5 t133.5 24t113 58.5t92.5 81.5t70 81.5t47 70.5q11 18 9 42.5t-14 41.5q-90 117 -163 189zM448 727l-35 -36q-15 -15 -19.5 -38.5t4.5 -41.5q37 -68 93 -116q16 -13 38.5 -11t36.5 17l35 34q14 15 12.5 33.5t-16.5 33.5q-44 44 -89 117q-11 18 -28 20t-32 -12z" /> -<glyph unicode="&#xe106;" d="M592 0h-148l31 120q-91 20 -175.5 68.5t-143.5 106.5t-103.5 119t-66.5 110t-22 76q0 21 14 57.5t42.5 82.5t68 95t94.5 95t116.5 82.5t140 59t160.5 22.5q61 0 126 -15l32 121h148zM944 770l47 181q108 -85 176.5 -192t68.5 -159q0 -26 -19.5 -71t-59.5 -102t-93 -112 t-129 -104.5t-158 -75.5l46 173q77 49 136 117t97 131q11 18 9 42.5t-14 41.5q-54 70 -107 130zM310 824q-70 -69 -160 -184q-13 -16 -15 -40.5t9 -42.5q18 -30 39 -60t57 -70.5t74 -73t90 -61t105 -41.5l41 154q-107 18 -178.5 101.5t-71.5 193.5q0 59 23 114q8 19 4.5 22 t-17.5 -12zM448 727l-35 -36q-15 -15 -19.5 -38.5t4.5 -41.5q37 -68 93 -116q16 -13 38.5 -11t36.5 17l12 11l22 86l-3 4q-44 44 -89 117q-11 18 -28 20t-32 -12z" /> -<glyph unicode="&#xe107;" d="M-90 100l642 1066q20 31 48 28.5t48 -35.5l642 -1056q21 -32 7.5 -67.5t-50.5 -35.5h-1294q-37 0 -50.5 34t7.5 66zM155 200h345v75q0 10 7.5 17.5t17.5 7.5h150q10 0 17.5 -7.5t7.5 -17.5v-75h345l-445 723zM496 700h208q20 0 32 -14.5t8 -34.5l-58 -252 q-4 -20 -21.5 -34.5t-37.5 -14.5h-54q-20 0 -37.5 14.5t-21.5 34.5l-58 252q-4 20 8 34.5t32 14.5z" /> -<glyph unicode="&#xe108;" d="M650 1200q62 0 106 -44t44 -106v-339l363 -325q15 -14 26 -38.5t11 -44.5v-41q0 -20 -12 -26.5t-29 5.5l-359 249v-263q100 -93 100 -113v-64q0 -21 -13 -29t-32 1l-205 128l-205 -128q-19 -9 -32 -1t-13 29v64q0 20 100 113v263l-359 -249q-17 -12 -29 -5.5t-12 26.5v41 q0 20 11 44.5t26 38.5l363 325v339q0 62 44 106t106 44z" /> -<glyph unicode="&#xe109;" d="M850 1200h100q21 0 35.5 -14.5t14.5 -35.5v-50h50q21 0 35.5 -14.5t14.5 -35.5v-150h-1100v150q0 21 14.5 35.5t35.5 14.5h50v50q0 21 14.5 35.5t35.5 14.5h100q21 0 35.5 -14.5t14.5 -35.5v-50h500v50q0 21 14.5 35.5t35.5 14.5zM1100 800v-750q0 -21 -14.5 -35.5 t-35.5 -14.5h-1000q-21 0 -35.5 14.5t-14.5 35.5v750h1100zM100 600v-100h100v100h-100zM300 600v-100h100v100h-100zM500 600v-100h100v100h-100zM700 600v-100h100v100h-100zM900 600v-100h100v100h-100zM100 400v-100h100v100h-100zM300 400v-100h100v100h-100zM500 400 v-100h100v100h-100zM700 400v-100h100v100h-100zM900 400v-100h100v100h-100zM100 200v-100h100v100h-100zM300 200v-100h100v100h-100zM500 200v-100h100v100h-100zM700 200v-100h100v100h-100zM900 200v-100h100v100h-100z" /> -<glyph unicode="&#xe110;" d="M1135 1165l249 -230q15 -14 15 -35t-15 -35l-249 -230q-14 -14 -24.5 -10t-10.5 25v150h-159l-600 -600h-291q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5h209l600 600h241v150q0 21 10.5 25t24.5 -10zM522 819l-141 -141l-122 122h-209q-21 0 -35.5 14.5 t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5h291zM1135 565l249 -230q15 -14 15 -35t-15 -35l-249 -230q-14 -14 -24.5 -10t-10.5 25v150h-241l-181 181l141 141l122 -122h159v150q0 21 10.5 25t24.5 -10z" /> -<glyph unicode="&#xe111;" d="M100 1100h1000q41 0 70.5 -29.5t29.5 -70.5v-600q0 -41 -29.5 -70.5t-70.5 -29.5h-596l-304 -300v300h-100q-41 0 -70.5 29.5t-29.5 70.5v600q0 41 29.5 70.5t70.5 29.5z" /> -<glyph unicode="&#xe112;" d="M150 1200h200q21 0 35.5 -14.5t14.5 -35.5v-250h-300v250q0 21 14.5 35.5t35.5 14.5zM850 1200h200q21 0 35.5 -14.5t14.5 -35.5v-250h-300v250q0 21 14.5 35.5t35.5 14.5zM1100 800v-300q0 -41 -3 -77.5t-15 -89.5t-32 -96t-58 -89t-89 -77t-129 -51t-174 -20t-174 20 t-129 51t-89 77t-58 89t-32 96t-15 89.5t-3 77.5v300h300v-250v-27v-42.5t1.5 -41t5 -38t10 -35t16.5 -30t25.5 -24.5t35 -19t46.5 -12t60 -4t60 4.5t46.5 12.5t35 19.5t25 25.5t17 30.5t10 35t5 38t2 40.5t-0.5 42v25v250h300z" /> -<glyph unicode="&#xe113;" d="M1100 411l-198 -199l-353 353l-353 -353l-197 199l551 551z" /> -<glyph unicode="&#xe114;" d="M1101 789l-550 -551l-551 551l198 199l353 -353l353 353z" /> -<glyph unicode="&#xe115;" d="M404 1000h746q21 0 35.5 -14.5t14.5 -35.5v-551h150q21 0 25 -10.5t-10 -24.5l-230 -249q-14 -15 -35 -15t-35 15l-230 249q-14 14 -10 24.5t25 10.5h150v401h-381zM135 984l230 -249q14 -14 10 -24.5t-25 -10.5h-150v-400h385l215 -200h-750q-21 0 -35.5 14.5 t-14.5 35.5v550h-150q-21 0 -25 10.5t10 24.5l230 249q14 15 35 15t35 -15z" /> -<glyph unicode="&#xe116;" d="M56 1200h94q17 0 31 -11t18 -27l38 -162h896q24 0 39 -18.5t10 -42.5l-100 -475q-5 -21 -27 -42.5t-55 -21.5h-633l48 -200h535q21 0 35.5 -14.5t14.5 -35.5t-14.5 -35.5t-35.5 -14.5h-50v-50q0 -21 -14.5 -35.5t-35.5 -14.5t-35.5 14.5t-14.5 35.5v50h-300v-50 q0 -21 -14.5 -35.5t-35.5 -14.5t-35.5 14.5t-14.5 35.5v50h-31q-18 0 -32.5 10t-20.5 19l-5 10l-201 961h-54q-20 0 -35 14.5t-15 35.5t15 35.5t35 14.5z" /> -<glyph unicode="&#xe117;" d="M1200 1000v-100h-1200v100h200q0 41 29.5 70.5t70.5 29.5h300q41 0 70.5 -29.5t29.5 -70.5h500zM0 800h1200v-800h-1200v800z" /> -<glyph unicode="&#xe118;" d="M200 800l-200 -400v600h200q0 41 29.5 70.5t70.5 29.5h300q42 0 71 -29.5t29 -70.5h500v-200h-1000zM1500 700l-300 -700h-1200l300 700h1200z" /> -<glyph unicode="&#xe119;" d="M635 1184l230 -249q14 -14 10 -24.5t-25 -10.5h-150v-601h150q21 0 25 -10.5t-10 -24.5l-230 -249q-14 -15 -35 -15t-35 15l-230 249q-14 14 -10 24.5t25 10.5h150v601h-150q-21 0 -25 10.5t10 24.5l230 249q14 15 35 15t35 -15z" /> -<glyph unicode="&#xe120;" d="M936 864l249 -229q14 -15 14 -35.5t-14 -35.5l-249 -229q-15 -15 -25.5 -10.5t-10.5 24.5v151h-600v-151q0 -20 -10.5 -24.5t-25.5 10.5l-249 229q-14 15 -14 35.5t14 35.5l249 229q15 15 25.5 10.5t10.5 -25.5v-149h600v149q0 21 10.5 25.5t25.5 -10.5z" /> -<glyph unicode="&#xe121;" d="M1169 400l-172 732q-5 23 -23 45.5t-38 22.5h-672q-20 0 -38 -20t-23 -41l-172 -739h1138zM1100 300h-1000q-41 0 -70.5 -29.5t-29.5 -70.5v-100q0 -41 29.5 -70.5t70.5 -29.5h1000q41 0 70.5 29.5t29.5 70.5v100q0 41 -29.5 70.5t-70.5 29.5zM800 100v100h100v-100h-100 zM1000 100v100h100v-100h-100z" /> -<glyph unicode="&#xe122;" d="M1150 1100q21 0 35.5 -14.5t14.5 -35.5v-850q0 -21 -14.5 -35.5t-35.5 -14.5t-35.5 14.5t-14.5 35.5v850q0 21 14.5 35.5t35.5 14.5zM1000 200l-675 200h-38l47 -276q3 -16 -5.5 -20t-29.5 -4h-7h-84q-20 0 -34.5 14t-18.5 35q-55 337 -55 351v250v6q0 16 1 23.5t6.5 14 t17.5 6.5h200l675 250v-850zM0 750v-250q-4 0 -11 0.5t-24 6t-30 15t-24 30t-11 48.5v50q0 26 10.5 46t25 30t29 16t25.5 7z" /> -<glyph unicode="&#xe123;" d="M553 1200h94q20 0 29 -10.5t3 -29.5l-18 -37q83 -19 144 -82.5t76 -140.5l63 -327l118 -173h17q19 0 33 -14.5t14 -35t-13 -40.5t-31 -27q-8 -4 -23 -9.5t-65 -19.5t-103 -25t-132.5 -20t-158.5 -9q-57 0 -115 5t-104 12t-88.5 15.5t-73.5 17.5t-54.5 16t-35.5 12l-11 4 q-18 8 -31 28t-13 40.5t14 35t33 14.5h17l118 173l63 327q15 77 76 140t144 83l-18 32q-6 19 3.5 32t28.5 13zM498 110q50 -6 102 -6q53 0 102 6q-12 -49 -39.5 -79.5t-62.5 -30.5t-63 30.5t-39 79.5z" /> -<glyph unicode="&#xe124;" d="M800 946l224 78l-78 -224l234 -45l-180 -155l180 -155l-234 -45l78 -224l-224 78l-45 -234l-155 180l-155 -180l-45 234l-224 -78l78 224l-234 45l180 155l-180 155l234 45l-78 224l224 -78l45 234l155 -180l155 180z" /> -<glyph unicode="&#xe125;" d="M650 1200h50q40 0 70 -40.5t30 -84.5v-150l-28 -125h328q40 0 70 -40.5t30 -84.5v-100q0 -45 -29 -74l-238 -344q-16 -24 -38 -40.5t-45 -16.5h-250q-7 0 -42 25t-66 50l-31 25h-61q-45 0 -72.5 18t-27.5 57v400q0 36 20 63l145 196l96 198q13 28 37.5 48t51.5 20z M650 1100l-100 -212l-150 -213v-375h100l136 -100h214l250 375v125h-450l50 225v175h-50zM50 800h100q21 0 35.5 -14.5t14.5 -35.5v-500q0 -21 -14.5 -35.5t-35.5 -14.5h-100q-21 0 -35.5 14.5t-14.5 35.5v500q0 21 14.5 35.5t35.5 14.5z" /> -<glyph unicode="&#xe126;" d="M600 1100h250q23 0 45 -16.5t38 -40.5l238 -344q29 -29 29 -74v-100q0 -44 -30 -84.5t-70 -40.5h-328q28 -118 28 -125v-150q0 -44 -30 -84.5t-70 -40.5h-50q-27 0 -51.5 20t-37.5 48l-96 198l-145 196q-20 27 -20 63v400q0 39 27.5 57t72.5 18h61q124 100 139 100z M50 1000h100q21 0 35.5 -14.5t14.5 -35.5v-500q0 -21 -14.5 -35.5t-35.5 -14.5h-100q-21 0 -35.5 14.5t-14.5 35.5v500q0 21 14.5 35.5t35.5 14.5zM636 1000l-136 -100h-100v-375l150 -213l100 -212h50v175l-50 225h450v125l-250 375h-214z" /> -<glyph unicode="&#xe127;" d="M356 873l363 230q31 16 53 -6l110 -112q13 -13 13.5 -32t-11.5 -34l-84 -121h302q84 0 138 -38t54 -110t-55 -111t-139 -39h-106l-131 -339q-6 -21 -19.5 -41t-28.5 -20h-342q-7 0 -90 81t-83 94v525q0 17 14 35.5t28 28.5zM400 792v-503l100 -89h293l131 339 q6 21 19.5 41t28.5 20h203q21 0 30.5 25t0.5 50t-31 25h-456h-7h-6h-5.5t-6 0.5t-5 1.5t-5 2t-4 2.5t-4 4t-2.5 4.5q-12 25 5 47l146 183l-86 83zM50 800h100q21 0 35.5 -14.5t14.5 -35.5v-500q0 -21 -14.5 -35.5t-35.5 -14.5h-100q-21 0 -35.5 14.5t-14.5 35.5v500 q0 21 14.5 35.5t35.5 14.5z" /> -<glyph unicode="&#xe128;" d="M475 1103l366 -230q2 -1 6 -3.5t14 -10.5t18 -16.5t14.5 -20t6.5 -22.5v-525q0 -13 -86 -94t-93 -81h-342q-15 0 -28.5 20t-19.5 41l-131 339h-106q-85 0 -139.5 39t-54.5 111t54 110t138 38h302l-85 121q-11 15 -10.5 34t13.5 32l110 112q22 22 53 6zM370 945l146 -183 q17 -22 5 -47q-2 -2 -3.5 -4.5t-4 -4t-4 -2.5t-5 -2t-5 -1.5t-6 -0.5h-6h-6.5h-6h-475v-100h221q15 0 29 -20t20 -41l130 -339h294l106 89v503l-342 236zM1050 800h100q21 0 35.5 -14.5t14.5 -35.5v-500q0 -21 -14.5 -35.5t-35.5 -14.5h-100q-21 0 -35.5 14.5t-14.5 35.5 v500q0 21 14.5 35.5t35.5 14.5z" /> -<glyph unicode="&#xe129;" d="M550 1294q72 0 111 -55t39 -139v-106l339 -131q21 -6 41 -19.5t20 -28.5v-342q0 -7 -81 -90t-94 -83h-525q-17 0 -35.5 14t-28.5 28l-9 14l-230 363q-16 31 6 53l112 110q13 13 32 13.5t34 -11.5l121 -84v302q0 84 38 138t110 54zM600 972v203q0 21 -25 30.5t-50 0.5 t-25 -31v-456v-7v-6v-5.5t-0.5 -6t-1.5 -5t-2 -5t-2.5 -4t-4 -4t-4.5 -2.5q-25 -12 -47 5l-183 146l-83 -86l236 -339h503l89 100v293l-339 131q-21 6 -41 19.5t-20 28.5zM450 200h500q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-500 q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5z" /> -<glyph unicode="&#xe130;" d="M350 1100h500q21 0 35.5 14.5t14.5 35.5v100q0 21 -14.5 35.5t-35.5 14.5h-500q-21 0 -35.5 -14.5t-14.5 -35.5v-100q0 -21 14.5 -35.5t35.5 -14.5zM600 306v-106q0 -84 -39 -139t-111 -55t-110 54t-38 138v302l-121 -84q-15 -12 -34 -11.5t-32 13.5l-112 110 q-22 22 -6 53l230 363q1 2 3.5 6t10.5 13.5t16.5 17t20 13.5t22.5 6h525q13 0 94 -83t81 -90v-342q0 -15 -20 -28.5t-41 -19.5zM308 900l-236 -339l83 -86l183 146q22 17 47 5q2 -1 4.5 -2.5t4 -4t2.5 -4t2 -5t1.5 -5t0.5 -6v-5.5v-6v-7v-456q0 -22 25 -31t50 0.5t25 30.5 v203q0 15 20 28.5t41 19.5l339 131v293l-89 100h-503z" /> -<glyph unicode="&#xe131;" d="M600 1178q118 0 225 -45.5t184.5 -123t123 -184.5t45.5 -225t-45.5 -225t-123 -184.5t-184.5 -123t-225 -45.5t-225 45.5t-184.5 123t-123 184.5t-45.5 225t45.5 225t123 184.5t184.5 123t225 45.5zM914 632l-275 223q-16 13 -27.5 8t-11.5 -26v-137h-275 q-10 0 -17.5 -7.5t-7.5 -17.5v-150q0 -10 7.5 -17.5t17.5 -7.5h275v-137q0 -21 11.5 -26t27.5 8l275 223q16 13 16 32t-16 32z" /> -<glyph unicode="&#xe132;" d="M600 1178q118 0 225 -45.5t184.5 -123t123 -184.5t45.5 -225t-45.5 -225t-123 -184.5t-184.5 -123t-225 -45.5t-225 45.5t-184.5 123t-123 184.5t-45.5 225t45.5 225t123 184.5t184.5 123t225 45.5zM561 855l-275 -223q-16 -13 -16 -32t16 -32l275 -223q16 -13 27.5 -8 t11.5 26v137h275q10 0 17.5 7.5t7.5 17.5v150q0 10 -7.5 17.5t-17.5 7.5h-275v137q0 21 -11.5 26t-27.5 -8z" /> -<glyph unicode="&#xe133;" d="M600 1178q118 0 225 -45.5t184.5 -123t123 -184.5t45.5 -225t-45.5 -225t-123 -184.5t-184.5 -123t-225 -45.5t-225 45.5t-184.5 123t-123 184.5t-45.5 225t45.5 225t123 184.5t184.5 123t225 45.5zM855 639l-223 275q-13 16 -32 16t-32 -16l-223 -275q-13 -16 -8 -27.5 t26 -11.5h137v-275q0 -10 7.5 -17.5t17.5 -7.5h150q10 0 17.5 7.5t7.5 17.5v275h137q21 0 26 11.5t-8 27.5z" /> -<glyph unicode="&#xe134;" d="M600 1178q118 0 225 -45.5t184.5 -123t123 -184.5t45.5 -225t-45.5 -225t-123 -184.5t-184.5 -123t-225 -45.5t-225 45.5t-184.5 123t-123 184.5t-45.5 225t45.5 225t123 184.5t184.5 123t225 45.5zM675 900h-150q-10 0 -17.5 -7.5t-7.5 -17.5v-275h-137q-21 0 -26 -11.5 t8 -27.5l223 -275q13 -16 32 -16t32 16l223 275q13 16 8 27.5t-26 11.5h-137v275q0 10 -7.5 17.5t-17.5 7.5z" /> -<glyph unicode="&#xe135;" d="M600 1176q116 0 222.5 -46t184 -123.5t123.5 -184t46 -222.5t-46 -222.5t-123.5 -184t-184 -123.5t-222.5 -46t-222.5 46t-184 123.5t-123.5 184t-46 222.5t46 222.5t123.5 184t184 123.5t222.5 46zM627 1101q-15 -12 -36.5 -20.5t-35.5 -12t-43 -8t-39 -6.5 q-15 -3 -45.5 0t-45.5 -2q-20 -7 -51.5 -26.5t-34.5 -34.5q-3 -11 6.5 -22.5t8.5 -18.5q-3 -34 -27.5 -91t-29.5 -79q-9 -34 5 -93t8 -87q0 -9 17 -44.5t16 -59.5q12 0 23 -5t23.5 -15t19.5 -14q16 -8 33 -15t40.5 -15t34.5 -12q21 -9 52.5 -32t60 -38t57.5 -11 q7 -15 -3 -34t-22.5 -40t-9.5 -38q13 -21 23 -34.5t27.5 -27.5t36.5 -18q0 -7 -3.5 -16t-3.5 -14t5 -17q104 -2 221 112q30 29 46.5 47t34.5 49t21 63q-13 8 -37 8.5t-36 7.5q-15 7 -49.5 15t-51.5 19q-18 0 -41 -0.5t-43 -1.5t-42 -6.5t-38 -16.5q-51 -35 -66 -12 q-4 1 -3.5 25.5t0.5 25.5q-6 13 -26.5 17.5t-24.5 6.5q1 15 -0.5 30.5t-7 28t-18.5 11.5t-31 -21q-23 -25 -42 4q-19 28 -8 58q6 16 22 22q6 -1 26 -1.5t33.5 -4t19.5 -13.5q7 -12 18 -24t21.5 -20.5t20 -15t15.5 -10.5l5 -3q2 12 7.5 30.5t8 34.5t-0.5 32q-3 18 3.5 29 t18 22.5t15.5 24.5q6 14 10.5 35t8 31t15.5 22.5t34 22.5q-6 18 10 36q8 0 24 -1.5t24.5 -1.5t20 4.5t20.5 15.5q-10 23 -31 42.5t-37.5 29.5t-49 27t-43.5 23q0 1 2 8t3 11.5t1.5 10.5t-1 9.5t-4.5 4.5q31 -13 58.5 -14.5t38.5 2.5l12 5q5 28 -9.5 46t-36.5 24t-50 15 t-41 20q-18 -4 -37 0zM613 994q0 -17 8 -42t17 -45t9 -23q-8 1 -39.5 5.5t-52.5 10t-37 16.5q3 11 16 29.5t16 25.5q10 -10 19 -10t14 6t13.5 14.5t16.5 12.5z" /> -<glyph unicode="&#xe136;" d="M756 1157q164 92 306 -9l-259 -138l145 -232l251 126q6 -89 -34 -156.5t-117 -110.5q-60 -34 -127 -39.5t-126 16.5l-596 -596q-15 -16 -36.5 -16t-36.5 16l-111 110q-15 15 -15 36.5t15 37.5l600 599q-34 101 5.5 201.5t135.5 154.5z" /> -<glyph unicode="&#xe137;" horiz-adv-x="1220" d="M100 1196h1000q41 0 70.5 -29.5t29.5 -70.5v-100q0 -41 -29.5 -70.5t-70.5 -29.5h-1000q-41 0 -70.5 29.5t-29.5 70.5v100q0 41 29.5 70.5t70.5 29.5zM1100 1096h-200v-100h200v100zM100 796h1000q41 0 70.5 -29.5t29.5 -70.5v-100q0 -41 -29.5 -70.5t-70.5 -29.5h-1000 q-41 0 -70.5 29.5t-29.5 70.5v100q0 41 29.5 70.5t70.5 29.5zM1100 696h-500v-100h500v100zM100 396h1000q41 0 70.5 -29.5t29.5 -70.5v-100q0 -41 -29.5 -70.5t-70.5 -29.5h-1000q-41 0 -70.5 29.5t-29.5 70.5v100q0 41 29.5 70.5t70.5 29.5zM1100 296h-300v-100h300v100z " /> -<glyph unicode="&#xe138;" d="M150 1200h900q21 0 35.5 -14.5t14.5 -35.5t-14.5 -35.5t-35.5 -14.5h-900q-21 0 -35.5 14.5t-14.5 35.5t14.5 35.5t35.5 14.5zM700 500v-300l-200 -200v500l-350 500h900z" /> -<glyph unicode="&#xe139;" d="M500 1200h200q41 0 70.5 -29.5t29.5 -70.5v-100h300q41 0 70.5 -29.5t29.5 -70.5v-400h-500v100h-200v-100h-500v400q0 41 29.5 70.5t70.5 29.5h300v100q0 41 29.5 70.5t70.5 29.5zM500 1100v-100h200v100h-200zM1200 400v-200q0 -41 -29.5 -70.5t-70.5 -29.5h-1000 q-41 0 -70.5 29.5t-29.5 70.5v200h1200z" /> -<glyph unicode="&#xe140;" d="M50 1200h300q21 0 25 -10.5t-10 -24.5l-94 -94l199 -199q7 -8 7 -18t-7 -18l-106 -106q-8 -7 -18 -7t-18 7l-199 199l-94 -94q-14 -14 -24.5 -10t-10.5 25v300q0 21 14.5 35.5t35.5 14.5zM850 1200h300q21 0 35.5 -14.5t14.5 -35.5v-300q0 -21 -10.5 -25t-24.5 10l-94 94 l-199 -199q-8 -7 -18 -7t-18 7l-106 106q-7 8 -7 18t7 18l199 199l-94 94q-14 14 -10 24.5t25 10.5zM364 470l106 -106q7 -8 7 -18t-7 -18l-199 -199l94 -94q14 -14 10 -24.5t-25 -10.5h-300q-21 0 -35.5 14.5t-14.5 35.5v300q0 21 10.5 25t24.5 -10l94 -94l199 199 q8 7 18 7t18 -7zM1071 271l94 94q14 14 24.5 10t10.5 -25v-300q0 -21 -14.5 -35.5t-35.5 -14.5h-300q-21 0 -25 10.5t10 24.5l94 94l-199 199q-7 8 -7 18t7 18l106 106q8 7 18 7t18 -7z" /> -<glyph unicode="&#xe141;" d="M596 1192q121 0 231.5 -47.5t190 -127t127 -190t47.5 -231.5t-47.5 -231.5t-127 -190.5t-190 -127t-231.5 -47t-231.5 47t-190.5 127t-127 190.5t-47 231.5t47 231.5t127 190t190.5 127t231.5 47.5zM596 1010q-112 0 -207.5 -55.5t-151 -151t-55.5 -207.5t55.5 -207.5 t151 -151t207.5 -55.5t207.5 55.5t151 151t55.5 207.5t-55.5 207.5t-151 151t-207.5 55.5zM454.5 905q22.5 0 38.5 -16t16 -38.5t-16 -39t-38.5 -16.5t-38.5 16.5t-16 39t16 38.5t38.5 16zM754.5 905q22.5 0 38.5 -16t16 -38.5t-16 -39t-38 -16.5q-14 0 -29 10l-55 -145 q17 -23 17 -51q0 -36 -25.5 -61.5t-61.5 -25.5t-61.5 25.5t-25.5 61.5q0 32 20.5 56.5t51.5 29.5l122 126l1 1q-9 14 -9 28q0 23 16 39t38.5 16zM345.5 709q22.5 0 38.5 -16t16 -38.5t-16 -38.5t-38.5 -16t-38.5 16t-16 38.5t16 38.5t38.5 16zM854.5 709q22.5 0 38.5 -16 t16 -38.5t-16 -38.5t-38.5 -16t-38.5 16t-16 38.5t16 38.5t38.5 16z" /> -<glyph unicode="&#xe142;" d="M546 173l469 470q91 91 99 192q7 98 -52 175.5t-154 94.5q-22 4 -47 4q-34 0 -66.5 -10t-56.5 -23t-55.5 -38t-48 -41.5t-48.5 -47.5q-376 -375 -391 -390q-30 -27 -45 -41.5t-37.5 -41t-32 -46.5t-16 -47.5t-1.5 -56.5q9 -62 53.5 -95t99.5 -33q74 0 125 51l548 548 q36 36 20 75q-7 16 -21.5 26t-32.5 10q-26 0 -50 -23q-13 -12 -39 -38l-341 -338q-15 -15 -35.5 -15.5t-34.5 13.5t-14 34.5t14 34.5q327 333 361 367q35 35 67.5 51.5t78.5 16.5q14 0 29 -1q44 -8 74.5 -35.5t43.5 -68.5q14 -47 2 -96.5t-47 -84.5q-12 -11 -32 -32 t-79.5 -81t-114.5 -115t-124.5 -123.5t-123 -119.5t-96.5 -89t-57 -45q-56 -27 -120 -27q-70 0 -129 32t-93 89q-48 78 -35 173t81 163l511 511q71 72 111 96q91 55 198 55q80 0 152 -33q78 -36 129.5 -103t66.5 -154q17 -93 -11 -183.5t-94 -156.5l-482 -476 q-15 -15 -36 -16t-37 14t-17.5 34t14.5 35z" /> -<glyph unicode="&#xe143;" d="M649 949q48 68 109.5 104t121.5 38.5t118.5 -20t102.5 -64t71 -100.5t27 -123q0 -57 -33.5 -117.5t-94 -124.5t-126.5 -127.5t-150 -152.5t-146 -174q-62 85 -145.5 174t-150 152.5t-126.5 127.5t-93.5 124.5t-33.5 117.5q0 64 28 123t73 100.5t104 64t119 20 t120.5 -38.5t104.5 -104zM896 972q-33 0 -64.5 -19t-56.5 -46t-47.5 -53.5t-43.5 -45.5t-37.5 -19t-36 19t-40 45.5t-43 53.5t-54 46t-65.5 19q-67 0 -122.5 -55.5t-55.5 -132.5q0 -23 13.5 -51t46 -65t57.5 -63t76 -75l22 -22q15 -14 44 -44t50.5 -51t46 -44t41 -35t23 -12 t23.5 12t42.5 36t46 44t52.5 52t44 43q4 4 12 13q43 41 63.5 62t52 55t46 55t26 46t11.5 44q0 79 -53 133.5t-120 54.5z" /> -<glyph unicode="&#xe144;" d="M776.5 1214q93.5 0 159.5 -66l141 -141q66 -66 66 -160q0 -42 -28 -95.5t-62 -87.5l-29 -29q-31 53 -77 99l-18 18l95 95l-247 248l-389 -389l212 -212l-105 -106l-19 18l-141 141q-66 66 -66 159t66 159l283 283q65 66 158.5 66zM600 706l105 105q10 -8 19 -17l141 -141 q66 -66 66 -159t-66 -159l-283 -283q-66 -66 -159 -66t-159 66l-141 141q-66 66 -66 159.5t66 159.5l55 55q29 -55 75 -102l18 -17l-95 -95l247 -248l389 389z" /> -<glyph unicode="&#xe145;" d="M603 1200q85 0 162 -15t127 -38t79 -48t29 -46v-953q0 -41 -29.5 -70.5t-70.5 -29.5h-600q-41 0 -70.5 29.5t-29.5 70.5v953q0 21 30 46.5t81 48t129 37.5t163 15zM300 1000v-700h600v700h-600zM600 254q-43 0 -73.5 -30.5t-30.5 -73.5t30.5 -73.5t73.5 -30.5t73.5 30.5 t30.5 73.5t-30.5 73.5t-73.5 30.5z" /> -<glyph unicode="&#xe146;" d="M902 1185l283 -282q15 -15 15 -36t-14.5 -35.5t-35.5 -14.5t-35 15l-36 35l-279 -267v-300l-212 210l-308 -307l-280 -203l203 280l307 308l-210 212h300l267 279l-35 36q-15 14 -15 35t14.5 35.5t35.5 14.5t35 -15z" /> -<glyph unicode="&#xe148;" d="M700 1248v-78q38 -5 72.5 -14.5t75.5 -31.5t71 -53.5t52 -84t24 -118.5h-159q-4 36 -10.5 59t-21 45t-40 35.5t-64.5 20.5v-307l64 -13q34 -7 64 -16.5t70 -32t67.5 -52.5t47.5 -80t20 -112q0 -139 -89 -224t-244 -97v-77h-100v79q-150 16 -237 103q-40 40 -52.5 93.5 t-15.5 139.5h139q5 -77 48.5 -126t117.5 -65v335l-27 8q-46 14 -79 26.5t-72 36t-63 52t-40 72.5t-16 98q0 70 25 126t67.5 92t94.5 57t110 27v77h100zM600 754v274q-29 -4 -50 -11t-42 -21.5t-31.5 -41.5t-10.5 -65q0 -29 7 -50.5t16.5 -34t28.5 -22.5t31.5 -14t37.5 -10 q9 -3 13 -4zM700 547v-310q22 2 42.5 6.5t45 15.5t41.5 27t29 42t12 59.5t-12.5 59.5t-38 44.5t-53 31t-66.5 24.5z" /> -<glyph unicode="&#xe149;" d="M561 1197q84 0 160.5 -40t123.5 -109.5t47 -147.5h-153q0 40 -19.5 71.5t-49.5 48.5t-59.5 26t-55.5 9q-37 0 -79 -14.5t-62 -35.5q-41 -44 -41 -101q0 -26 13.5 -63t26.5 -61t37 -66q6 -9 9 -14h241v-100h-197q8 -50 -2.5 -115t-31.5 -95q-45 -62 -99 -112 q34 10 83 17.5t71 7.5q32 1 102 -16t104 -17q83 0 136 30l50 -147q-31 -19 -58 -30.5t-55 -15.5t-42 -4.5t-46 -0.5q-23 0 -76 17t-111 32.5t-96 11.5q-39 -3 -82 -16t-67 -25l-23 -11l-55 145q4 3 16 11t15.5 10.5t13 9t15.5 12t14.5 14t17.5 18.5q48 55 54 126.5 t-30 142.5h-221v100h166q-23 47 -44 104q-7 20 -12 41.5t-6 55.5t6 66.5t29.5 70.5t58.5 71q97 88 263 88z" /> -<glyph unicode="&#xe150;" d="M400 300h150q21 0 25 -11t-10 -25l-230 -250q-14 -15 -35 -15t-35 15l-230 250q-14 14 -10 25t25 11h150v900h200v-900zM935 1184l230 -249q14 -14 10 -24.5t-25 -10.5h-150v-900h-200v900h-150q-21 0 -25 10.5t10 24.5l230 249q14 15 35 15t35 -15z" /> -<glyph unicode="&#xe151;" d="M1000 700h-100v100h-100v-100h-100v500h300v-500zM400 300h150q21 0 25 -11t-10 -25l-230 -250q-14 -15 -35 -15t-35 15l-230 250q-14 14 -10 25t25 11h150v900h200v-900zM801 1100v-200h100v200h-100zM1000 350l-200 -250h200v-100h-300v150l200 250h-200v100h300v-150z " /> -<glyph unicode="&#xe152;" d="M400 300h150q21 0 25 -11t-10 -25l-230 -250q-14 -15 -35 -15t-35 15l-230 250q-14 14 -10 25t25 11h150v900h200v-900zM1000 1050l-200 -250h200v-100h-300v150l200 250h-200v100h300v-150zM1000 0h-100v100h-100v-100h-100v500h300v-500zM801 400v-200h100v200h-100z " /> -<glyph unicode="&#xe153;" d="M400 300h150q21 0 25 -11t-10 -25l-230 -250q-14 -15 -35 -15t-35 15l-230 250q-14 14 -10 25t25 11h150v900h200v-900zM1000 700h-100v400h-100v100h200v-500zM1100 0h-100v100h-200v400h300v-500zM901 400v-200h100v200h-100z" /> -<glyph unicode="&#xe154;" d="M400 300h150q21 0 25 -11t-10 -25l-230 -250q-14 -15 -35 -15t-35 15l-230 250q-14 14 -10 25t25 11h150v900h200v-900zM1100 700h-100v100h-200v400h300v-500zM901 1100v-200h100v200h-100zM1000 0h-100v400h-100v100h200v-500z" /> -<glyph unicode="&#xe155;" d="M400 300h150q21 0 25 -11t-10 -25l-230 -250q-14 -15 -35 -15t-35 15l-230 250q-14 14 -10 25t25 11h150v900h200v-900zM900 1000h-200v200h200v-200zM1000 700h-300v200h300v-200zM1100 400h-400v200h400v-200zM1200 100h-500v200h500v-200z" /> -<glyph unicode="&#xe156;" d="M400 300h150q21 0 25 -11t-10 -25l-230 -250q-14 -15 -35 -15t-35 15l-230 250q-14 14 -10 25t25 11h150v900h200v-900zM1200 1000h-500v200h500v-200zM1100 700h-400v200h400v-200zM1000 400h-300v200h300v-200zM900 100h-200v200h200v-200z" /> -<glyph unicode="&#xe157;" d="M350 1100h400q162 0 256 -93.5t94 -256.5v-400q0 -165 -93.5 -257.5t-256.5 -92.5h-400q-165 0 -257.5 92.5t-92.5 257.5v400q0 165 92.5 257.5t257.5 92.5zM800 900h-500q-41 0 -70.5 -29.5t-29.5 -70.5v-500q0 -41 29.5 -70.5t70.5 -29.5h500q41 0 70.5 29.5t29.5 70.5 v500q0 41 -29.5 70.5t-70.5 29.5z" /> -<glyph unicode="&#xe158;" d="M350 1100h400q165 0 257.5 -92.5t92.5 -257.5v-400q0 -165 -92.5 -257.5t-257.5 -92.5h-400q-163 0 -256.5 92.5t-93.5 257.5v400q0 163 94 256.5t256 93.5zM800 900h-500q-41 0 -70.5 -29.5t-29.5 -70.5v-500q0 -41 29.5 -70.5t70.5 -29.5h500q41 0 70.5 29.5t29.5 70.5 v500q0 41 -29.5 70.5t-70.5 29.5zM440 770l253 -190q17 -12 17 -30t-17 -30l-253 -190q-16 -12 -28 -6.5t-12 26.5v400q0 21 12 26.5t28 -6.5z" /> -<glyph unicode="&#xe159;" d="M350 1100h400q163 0 256.5 -94t93.5 -256v-400q0 -165 -92.5 -257.5t-257.5 -92.5h-400q-165 0 -257.5 92.5t-92.5 257.5v400q0 163 92.5 256.5t257.5 93.5zM800 900h-500q-41 0 -70.5 -29.5t-29.5 -70.5v-500q0 -41 29.5 -70.5t70.5 -29.5h500q41 0 70.5 29.5t29.5 70.5 v500q0 41 -29.5 70.5t-70.5 29.5zM350 700h400q21 0 26.5 -12t-6.5 -28l-190 -253q-12 -17 -30 -17t-30 17l-190 253q-12 16 -6.5 28t26.5 12z" /> -<glyph unicode="&#xe160;" d="M350 1100h400q165 0 257.5 -92.5t92.5 -257.5v-400q0 -163 -92.5 -256.5t-257.5 -93.5h-400q-163 0 -256.5 94t-93.5 256v400q0 165 92.5 257.5t257.5 92.5zM800 900h-500q-41 0 -70.5 -29.5t-29.5 -70.5v-500q0 -41 29.5 -70.5t70.5 -29.5h500q41 0 70.5 29.5t29.5 70.5 v500q0 41 -29.5 70.5t-70.5 29.5zM580 693l190 -253q12 -16 6.5 -28t-26.5 -12h-400q-21 0 -26.5 12t6.5 28l190 253q12 17 30 17t30 -17z" /> -<glyph unicode="&#xe161;" d="M550 1100h400q165 0 257.5 -92.5t92.5 -257.5v-400q0 -165 -92.5 -257.5t-257.5 -92.5h-400q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5h450q41 0 70.5 29.5t29.5 70.5v500q0 41 -29.5 70.5t-70.5 29.5h-450q-21 0 -35.5 14.5t-14.5 35.5v100 q0 21 14.5 35.5t35.5 14.5zM338 867l324 -284q16 -14 16 -33t-16 -33l-324 -284q-16 -14 -27 -9t-11 26v150h-250q-21 0 -35.5 14.5t-14.5 35.5v200q0 21 14.5 35.5t35.5 14.5h250v150q0 21 11 26t27 -9z" /> -<glyph unicode="&#xe162;" d="M793 1182l9 -9q8 -10 5 -27q-3 -11 -79 -225.5t-78 -221.5l300 1q24 0 32.5 -17.5t-5.5 -35.5q-1 0 -133.5 -155t-267 -312.5t-138.5 -162.5q-12 -15 -26 -15h-9l-9 8q-9 11 -4 32q2 9 42 123.5t79 224.5l39 110h-302q-23 0 -31 19q-10 21 6 41q75 86 209.5 237.5 t228 257t98.5 111.5q9 16 25 16h9z" /> -<glyph unicode="&#xe163;" d="M350 1100h400q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-450q-41 0 -70.5 -29.5t-29.5 -70.5v-500q0 -41 29.5 -70.5t70.5 -29.5h450q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-400q-165 0 -257.5 92.5t-92.5 257.5v400 q0 165 92.5 257.5t257.5 92.5zM938 867l324 -284q16 -14 16 -33t-16 -33l-324 -284q-16 -14 -27 -9t-11 26v150h-250q-21 0 -35.5 14.5t-14.5 35.5v200q0 21 14.5 35.5t35.5 14.5h250v150q0 21 11 26t27 -9z" /> -<glyph unicode="&#xe164;" d="M750 1200h400q21 0 35.5 -14.5t14.5 -35.5v-400q0 -21 -10.5 -25t-24.5 10l-109 109l-312 -312q-15 -15 -35.5 -15t-35.5 15l-141 141q-15 15 -15 35.5t15 35.5l312 312l-109 109q-14 14 -10 24.5t25 10.5zM456 900h-156q-41 0 -70.5 -29.5t-29.5 -70.5v-500 q0 -41 29.5 -70.5t70.5 -29.5h500q41 0 70.5 29.5t29.5 70.5v148l200 200v-298q0 -165 -93.5 -257.5t-256.5 -92.5h-400q-165 0 -257.5 92.5t-92.5 257.5v400q0 165 92.5 257.5t257.5 92.5h300z" /> -<glyph unicode="&#xe165;" d="M600 1186q119 0 227.5 -46.5t187 -125t125 -187t46.5 -227.5t-46.5 -227.5t-125 -187t-187 -125t-227.5 -46.5t-227.5 46.5t-187 125t-125 187t-46.5 227.5t46.5 227.5t125 187t187 125t227.5 46.5zM600 1022q-115 0 -212 -56.5t-153.5 -153.5t-56.5 -212t56.5 -212 t153.5 -153.5t212 -56.5t212 56.5t153.5 153.5t56.5 212t-56.5 212t-153.5 153.5t-212 56.5zM600 794q80 0 137 -57t57 -137t-57 -137t-137 -57t-137 57t-57 137t57 137t137 57z" /> -<glyph unicode="&#xe166;" d="M450 1200h200q21 0 35.5 -14.5t14.5 -35.5v-350h245q20 0 25 -11t-9 -26l-383 -426q-14 -15 -33.5 -15t-32.5 15l-379 426q-13 15 -8.5 26t25.5 11h250v350q0 21 14.5 35.5t35.5 14.5zM50 300h1000q21 0 35.5 -14.5t14.5 -35.5v-250h-1100v250q0 21 14.5 35.5t35.5 14.5z M900 200v-50h100v50h-100z" /> -<glyph unicode="&#xe167;" d="M583 1182l378 -435q14 -15 9 -31t-26 -16h-244v-250q0 -20 -17 -35t-39 -15h-200q-20 0 -32 14.5t-12 35.5v250h-250q-20 0 -25.5 16.5t8.5 31.5l383 431q14 16 33.5 17t33.5 -14zM50 300h1000q21 0 35.5 -14.5t14.5 -35.5v-250h-1100v250q0 21 14.5 35.5t35.5 14.5z M900 200v-50h100v50h-100z" /> -<glyph unicode="&#xe168;" d="M396 723l369 369q7 7 17.5 7t17.5 -7l139 -139q7 -8 7 -18.5t-7 -17.5l-525 -525q-7 -8 -17.5 -8t-17.5 8l-292 291q-7 8 -7 18t7 18l139 139q8 7 18.5 7t17.5 -7zM50 300h1000q21 0 35.5 -14.5t14.5 -35.5v-250h-1100v250q0 21 14.5 35.5t35.5 14.5zM900 200v-50h100v50 h-100z" /> -<glyph unicode="&#xe169;" d="M135 1023l142 142q14 14 35 14t35 -14l77 -77l-212 -212l-77 76q-14 15 -14 36t14 35zM655 855l210 210q14 14 24.5 10t10.5 -25l-2 -599q-1 -20 -15.5 -35t-35.5 -15l-597 -1q-21 0 -25 10.5t10 24.5l208 208l-154 155l212 212zM50 300h1000q21 0 35.5 -14.5t14.5 -35.5 v-250h-1100v250q0 21 14.5 35.5t35.5 14.5zM900 200v-50h100v50h-100z" /> -<glyph unicode="&#xe170;" d="M350 1200l599 -2q20 -1 35 -15.5t15 -35.5l1 -597q0 -21 -10.5 -25t-24.5 10l-208 208l-155 -154l-212 212l155 154l-210 210q-14 14 -10 24.5t25 10.5zM524 512l-76 -77q-15 -14 -36 -14t-35 14l-142 142q-14 14 -14 35t14 35l77 77zM50 300h1000q21 0 35.5 -14.5 t14.5 -35.5v-250h-1100v250q0 21 14.5 35.5t35.5 14.5zM900 200v-50h100v50h-100z" /> -<glyph unicode="&#xe171;" d="M1200 103l-483 276l-314 -399v423h-399l1196 796v-1096zM483 424v-230l683 953z" /> -<glyph unicode="&#xe172;" d="M1100 1000v-850q0 -21 -14.5 -35.5t-35.5 -14.5h-150v400h-700v-400h-150q-21 0 -35.5 14.5t-14.5 35.5v1000q0 20 14.5 35t35.5 15h250v-300h500v300h100zM700 1000h-100v200h100v-200z" /> -<glyph unicode="&#xe173;" d="M1100 1000l-2 -149l-299 -299l-95 95q-9 9 -21.5 9t-21.5 -9l-149 -147h-312v-400h-150q-21 0 -35.5 14.5t-14.5 35.5v1000q0 20 14.5 35t35.5 15h250v-300h500v300h100zM700 1000h-100v200h100v-200zM1132 638l106 -106q7 -7 7 -17.5t-7 -17.5l-420 -421q-8 -7 -18 -7 t-18 7l-202 203q-8 7 -8 17.5t8 17.5l106 106q7 8 17.5 8t17.5 -8l79 -79l297 297q7 7 17.5 7t17.5 -7z" /> -<glyph unicode="&#xe174;" d="M1100 1000v-269l-103 -103l-134 134q-15 15 -33.5 16.5t-34.5 -12.5l-266 -266h-329v-400h-150q-21 0 -35.5 14.5t-14.5 35.5v1000q0 20 14.5 35t35.5 15h250v-300h500v300h100zM700 1000h-100v200h100v-200zM1202 572l70 -70q15 -15 15 -35.5t-15 -35.5l-131 -131 l131 -131q15 -15 15 -35.5t-15 -35.5l-70 -70q-15 -15 -35.5 -15t-35.5 15l-131 131l-131 -131q-15 -15 -35.5 -15t-35.5 15l-70 70q-15 15 -15 35.5t15 35.5l131 131l-131 131q-15 15 -15 35.5t15 35.5l70 70q15 15 35.5 15t35.5 -15l131 -131l131 131q15 15 35.5 15 t35.5 -15z" /> -<glyph unicode="&#xe175;" d="M1100 1000v-300h-350q-21 0 -35.5 -14.5t-14.5 -35.5v-150h-500v-400h-150q-21 0 -35.5 14.5t-14.5 35.5v1000q0 20 14.5 35t35.5 15h250v-300h500v300h100zM700 1000h-100v200h100v-200zM850 600h100q21 0 35.5 -14.5t14.5 -35.5v-250h150q21 0 25 -10.5t-10 -24.5 l-230 -230q-14 -14 -35 -14t-35 14l-230 230q-14 14 -10 24.5t25 10.5h150v250q0 21 14.5 35.5t35.5 14.5z" /> -<glyph unicode="&#xe176;" d="M1100 1000v-400l-165 165q-14 15 -35 15t-35 -15l-263 -265h-402v-400h-150q-21 0 -35.5 14.5t-14.5 35.5v1000q0 20 14.5 35t35.5 15h250v-300h500v300h100zM700 1000h-100v200h100v-200zM935 565l230 -229q14 -15 10 -25.5t-25 -10.5h-150v-250q0 -20 -14.5 -35 t-35.5 -15h-100q-21 0 -35.5 15t-14.5 35v250h-150q-21 0 -25 10.5t10 25.5l230 229q14 15 35 15t35 -15z" /> -<glyph unicode="&#xe177;" d="M50 1100h1100q21 0 35.5 -14.5t14.5 -35.5v-150h-1200v150q0 21 14.5 35.5t35.5 14.5zM1200 800v-550q0 -21 -14.5 -35.5t-35.5 -14.5h-1100q-21 0 -35.5 14.5t-14.5 35.5v550h1200zM100 500v-200h400v200h-400z" /> -<glyph unicode="&#xe178;" d="M935 1165l248 -230q14 -14 14 -35t-14 -35l-248 -230q-14 -14 -24.5 -10t-10.5 25v150h-400v200h400v150q0 21 10.5 25t24.5 -10zM200 800h-50q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5h50v-200zM400 800h-100v200h100v-200zM18 435l247 230 q14 14 24.5 10t10.5 -25v-150h400v-200h-400v-150q0 -21 -10.5 -25t-24.5 10l-247 230q-15 14 -15 35t15 35zM900 300h-100v200h100v-200zM1000 500h51q20 0 34.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-34.5 -14.5h-51v200z" /> -<glyph unicode="&#xe179;" d="M862 1073l276 116q25 18 43.5 8t18.5 -41v-1106q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5v397q-4 1 -11 5t-24 17.5t-30 29t-24 42t-11 56.5v359q0 31 18.5 65t43.5 52zM550 1200q22 0 34.5 -12.5t14.5 -24.5l1 -13v-450q0 -28 -10.5 -59.5 t-25 -56t-29 -45t-25.5 -31.5l-10 -11v-447q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5v447q-4 4 -11 11.5t-24 30.5t-30 46t-24 55t-11 60v450q0 2 0.5 5.5t4 12t8.5 15t14.5 12t22.5 5.5q20 0 32.5 -12.5t14.5 -24.5l3 -13v-350h100v350v5.5t2.5 12 t7 15t15 12t25.5 5.5q23 0 35.5 -12.5t13.5 -24.5l1 -13v-350h100v350q0 2 0.5 5.5t3 12t7 15t15 12t24.5 5.5z" /> -<glyph unicode="&#xe180;" d="M1200 1100v-56q-4 0 -11 -0.5t-24 -3t-30 -7.5t-24 -15t-11 -24v-888q0 -22 25 -34.5t50 -13.5l25 -2v-56h-400v56q75 0 87.5 6.5t12.5 43.5v394h-500v-394q0 -37 12.5 -43.5t87.5 -6.5v-56h-400v56q4 0 11 0.5t24 3t30 7.5t24 15t11 24v888q0 22 -25 34.5t-50 13.5 l-25 2v56h400v-56q-75 0 -87.5 -6.5t-12.5 -43.5v-394h500v394q0 37 -12.5 43.5t-87.5 6.5v56h400z" /> -<glyph unicode="&#xe181;" d="M675 1000h375q21 0 35.5 -14.5t14.5 -35.5v-150h-105l-295 -98v98l-200 200h-400l100 100h375zM100 900h300q41 0 70.5 -29.5t29.5 -70.5v-500q0 -41 -29.5 -70.5t-70.5 -29.5h-300q-41 0 -70.5 29.5t-29.5 70.5v500q0 41 29.5 70.5t70.5 29.5zM100 800v-200h300v200 h-300zM1100 535l-400 -133v163l400 133v-163zM100 500v-200h300v200h-300zM1100 398v-248q0 -21 -14.5 -35.5t-35.5 -14.5h-375l-100 -100h-375l-100 100h400l200 200h105z" /> -<glyph unicode="&#xe182;" d="M17 1007l162 162q17 17 40 14t37 -22l139 -194q14 -20 11 -44.5t-20 -41.5l-119 -118q102 -142 228 -268t267 -227l119 118q17 17 42.5 19t44.5 -12l192 -136q19 -14 22.5 -37.5t-13.5 -40.5l-163 -162q-3 -1 -9.5 -1t-29.5 2t-47.5 6t-62.5 14.5t-77.5 26.5t-90 42.5 t-101.5 60t-111 83t-119 108.5q-74 74 -133.5 150.5t-94.5 138.5t-60 119.5t-34.5 100t-15 74.5t-4.5 48z" /> -<glyph unicode="&#xe183;" d="M600 1100q92 0 175 -10.5t141.5 -27t108.5 -36.5t81.5 -40t53.5 -37t31 -27l9 -10v-200q0 -21 -14.5 -33t-34.5 -9l-202 34q-20 3 -34.5 20t-14.5 38v146q-141 24 -300 24t-300 -24v-146q0 -21 -14.5 -38t-34.5 -20l-202 -34q-20 -3 -34.5 9t-14.5 33v200q3 4 9.5 10.5 t31 26t54 37.5t80.5 39.5t109 37.5t141 26.5t175 10.5zM600 795q56 0 97 -9.5t60 -23.5t30 -28t12 -24l1 -10v-50l365 -303q14 -15 24.5 -40t10.5 -45v-212q0 -21 -14.5 -35.5t-35.5 -14.5h-1100q-21 0 -35.5 14.5t-14.5 35.5v212q0 20 10.5 45t24.5 40l365 303v50 q0 4 1 10.5t12 23t30 29t60 22.5t97 10z" /> -<glyph unicode="&#xe184;" d="M1100 700l-200 -200h-600l-200 200v500h200v-200h200v200h200v-200h200v200h200v-500zM250 400h700q21 0 35.5 -14.5t14.5 -35.5t-14.5 -35.5t-35.5 -14.5h-12l137 -100h-950l137 100h-12q-21 0 -35.5 14.5t-14.5 35.5t14.5 35.5t35.5 14.5zM50 100h1100q21 0 35.5 -14.5 t14.5 -35.5v-50h-1200v50q0 21 14.5 35.5t35.5 14.5z" /> -<glyph unicode="&#xe185;" d="M700 1100h-100q-41 0 -70.5 -29.5t-29.5 -70.5v-1000h300v1000q0 41 -29.5 70.5t-70.5 29.5zM1100 800h-100q-41 0 -70.5 -29.5t-29.5 -70.5v-700h300v700q0 41 -29.5 70.5t-70.5 29.5zM400 0h-300v400q0 41 29.5 70.5t70.5 29.5h100q41 0 70.5 -29.5t29.5 -70.5v-400z " /> -<glyph unicode="&#xe186;" d="M200 1100h700q124 0 212 -88t88 -212v-500q0 -124 -88 -212t-212 -88h-700q-124 0 -212 88t-88 212v500q0 124 88 212t212 88zM100 900v-700h900v700h-900zM500 700h-200v-100h200v-300h-300v100h200v100h-200v300h300v-100zM900 700v-300l-100 -100h-200v500h200z M700 700v-300h100v300h-100z" /> -<glyph unicode="&#xe187;" d="M200 1100h700q124 0 212 -88t88 -212v-500q0 -124 -88 -212t-212 -88h-700q-124 0 -212 88t-88 212v500q0 124 88 212t212 88zM100 900v-700h900v700h-900zM500 300h-100v200h-100v-200h-100v500h100v-200h100v200h100v-500zM900 700v-300l-100 -100h-200v500h200z M700 700v-300h100v300h-100z" /> -<glyph unicode="&#xe188;" d="M200 1100h700q124 0 212 -88t88 -212v-500q0 -124 -88 -212t-212 -88h-700q-124 0 -212 88t-88 212v500q0 124 88 212t212 88zM100 900v-700h900v700h-900zM500 700h-200v-300h200v-100h-300v500h300v-100zM900 700h-200v-300h200v-100h-300v500h300v-100z" /> -<glyph unicode="&#xe189;" d="M200 1100h700q124 0 212 -88t88 -212v-500q0 -124 -88 -212t-212 -88h-700q-124 0 -212 88t-88 212v500q0 124 88 212t212 88zM100 900v-700h900v700h-900zM500 400l-300 150l300 150v-300zM900 550l-300 -150v300z" /> -<glyph unicode="&#xe190;" d="M200 1100h700q124 0 212 -88t88 -212v-500q0 -124 -88 -212t-212 -88h-700q-124 0 -212 88t-88 212v500q0 124 88 212t212 88zM100 900v-700h900v700h-900zM900 300h-700v500h700v-500zM800 700h-130q-38 0 -66.5 -43t-28.5 -108t27 -107t68 -42h130v300zM300 700v-300 h130q41 0 68 42t27 107t-28.5 108t-66.5 43h-130z" /> -<glyph unicode="&#xe191;" d="M200 1100h700q124 0 212 -88t88 -212v-500q0 -124 -88 -212t-212 -88h-700q-124 0 -212 88t-88 212v500q0 124 88 212t212 88zM100 900v-700h900v700h-900zM500 700h-200v-100h200v-300h-300v100h200v100h-200v300h300v-100zM900 300h-100v400h-100v100h200v-500z M700 300h-100v100h100v-100z" /> -<glyph unicode="&#xe192;" d="M200 1100h700q124 0 212 -88t88 -212v-500q0 -124 -88 -212t-212 -88h-700q-124 0 -212 88t-88 212v500q0 124 88 212t212 88zM100 900v-700h900v700h-900zM300 700h200v-400h-300v500h100v-100zM900 300h-100v400h-100v100h200v-500zM300 600v-200h100v200h-100z M700 300h-100v100h100v-100z" /> -<glyph unicode="&#xe193;" d="M200 1100h700q124 0 212 -88t88 -212v-500q0 -124 -88 -212t-212 -88h-700q-124 0 -212 88t-88 212v500q0 124 88 212t212 88zM100 900v-700h900v700h-900zM500 500l-199 -200h-100v50l199 200v150h-200v100h300v-300zM900 300h-100v400h-100v100h200v-500zM701 300h-100 v100h100v-100z" /> -<glyph unicode="&#xe194;" d="M600 1191q120 0 229.5 -47t188.5 -126t126 -188.5t47 -229.5t-47 -229.5t-126 -188.5t-188.5 -126t-229.5 -47t-229.5 47t-188.5 126t-126 188.5t-47 229.5t47 229.5t126 188.5t188.5 126t229.5 47zM600 1021q-114 0 -211 -56.5t-153.5 -153.5t-56.5 -211t56.5 -211 t153.5 -153.5t211 -56.5t211 56.5t153.5 153.5t56.5 211t-56.5 211t-153.5 153.5t-211 56.5zM800 700h-300v-200h300v-100h-300l-100 100v200l100 100h300v-100z" /> -<glyph unicode="&#xe195;" d="M600 1191q120 0 229.5 -47t188.5 -126t126 -188.5t47 -229.5t-47 -229.5t-126 -188.5t-188.5 -126t-229.5 -47t-229.5 47t-188.5 126t-126 188.5t-47 229.5t47 229.5t126 188.5t188.5 126t229.5 47zM600 1021q-114 0 -211 -56.5t-153.5 -153.5t-56.5 -211t56.5 -211 t153.5 -153.5t211 -56.5t211 56.5t153.5 153.5t56.5 211t-56.5 211t-153.5 153.5t-211 56.5zM800 700v-100l-50 -50l100 -100v-50h-100l-100 100h-150v-100h-100v400h300zM500 700v-100h200v100h-200z" /> -<glyph unicode="&#xe197;" d="M503 1089q110 0 200.5 -59.5t134.5 -156.5q44 14 90 14q120 0 205 -86.5t85 -207t-85 -207t-205 -86.5h-128v250q0 21 -14.5 35.5t-35.5 14.5h-300q-21 0 -35.5 -14.5t-14.5 -35.5v-250h-222q-80 0 -136 57.5t-56 136.5q0 69 43 122.5t108 67.5q-2 19 -2 37q0 100 49 185 t134 134t185 49zM525 500h150q10 0 17.5 -7.5t7.5 -17.5v-275h137q21 0 26 -11.5t-8 -27.5l-223 -244q-13 -16 -32 -16t-32 16l-223 244q-13 16 -8 27.5t26 11.5h137v275q0 10 7.5 17.5t17.5 7.5z" /> -<glyph unicode="&#xe198;" d="M502 1089q110 0 201 -59.5t135 -156.5q43 15 89 15q121 0 206 -86.5t86 -206.5q0 -99 -60 -181t-150 -110l-378 360q-13 16 -31.5 16t-31.5 -16l-381 -365h-9q-79 0 -135.5 57.5t-56.5 136.5q0 69 43 122.5t108 67.5q-2 19 -2 38q0 100 49 184.5t133.5 134t184.5 49.5z M632 467l223 -228q13 -16 8 -27.5t-26 -11.5h-137v-275q0 -10 -7.5 -17.5t-17.5 -7.5h-150q-10 0 -17.5 7.5t-7.5 17.5v275h-137q-21 0 -26 11.5t8 27.5q199 204 223 228q19 19 31.5 19t32.5 -19z" /> -<glyph unicode="&#xe199;" d="M700 100v100h400l-270 300h170l-270 300h170l-300 333l-300 -333h170l-270 -300h170l-270 -300h400v-100h-50q-21 0 -35.5 -14.5t-14.5 -35.5v-50h400v50q0 21 -14.5 35.5t-35.5 14.5h-50z" /> -<glyph unicode="&#xe200;" d="M600 1179q94 0 167.5 -56.5t99.5 -145.5q89 -6 150.5 -71.5t61.5 -155.5q0 -61 -29.5 -112.5t-79.5 -82.5q9 -29 9 -55q0 -74 -52.5 -126.5t-126.5 -52.5q-55 0 -100 30v-251q21 0 35.5 -14.5t14.5 -35.5v-50h-300v50q0 21 14.5 35.5t35.5 14.5v251q-45 -30 -100 -30 q-74 0 -126.5 52.5t-52.5 126.5q0 18 4 38q-47 21 -75.5 65t-28.5 97q0 74 52.5 126.5t126.5 52.5q5 0 23 -2q0 2 -1 10t-1 13q0 116 81.5 197.5t197.5 81.5z" /> -<glyph unicode="&#xe201;" d="M1010 1010q111 -111 150.5 -260.5t0 -299t-150.5 -260.5q-83 -83 -191.5 -126.5t-218.5 -43.5t-218.5 43.5t-191.5 126.5q-111 111 -150.5 260.5t0 299t150.5 260.5q83 83 191.5 126.5t218.5 43.5t218.5 -43.5t191.5 -126.5zM476 1065q-4 0 -8 -1q-121 -34 -209.5 -122.5 t-122.5 -209.5q-4 -12 2.5 -23t18.5 -14l36 -9q3 -1 7 -1q23 0 29 22q27 96 98 166q70 71 166 98q11 3 17.5 13.5t3.5 22.5l-9 35q-3 13 -14 19q-7 4 -15 4zM512 920q-4 0 -9 -2q-80 -24 -138.5 -82.5t-82.5 -138.5q-4 -13 2 -24t19 -14l34 -9q4 -1 8 -1q22 0 28 21 q18 58 58.5 98.5t97.5 58.5q12 3 18 13.5t3 21.5l-9 35q-3 12 -14 19q-7 4 -15 4zM719.5 719.5q-49.5 49.5 -119.5 49.5t-119.5 -49.5t-49.5 -119.5t49.5 -119.5t119.5 -49.5t119.5 49.5t49.5 119.5t-49.5 119.5zM855 551q-22 0 -28 -21q-18 -58 -58.5 -98.5t-98.5 -57.5 q-11 -4 -17 -14.5t-3 -21.5l9 -35q3 -12 14 -19q7 -4 15 -4q4 0 9 2q80 24 138.5 82.5t82.5 138.5q4 13 -2.5 24t-18.5 14l-34 9q-4 1 -8 1zM1000 515q-23 0 -29 -22q-27 -96 -98 -166q-70 -71 -166 -98q-11 -3 -17.5 -13.5t-3.5 -22.5l9 -35q3 -13 14 -19q7 -4 15 -4 q4 0 8 1q121 34 209.5 122.5t122.5 209.5q4 12 -2.5 23t-18.5 14l-36 9q-3 1 -7 1z" /> -<glyph unicode="&#xe202;" d="M700 800h300v-380h-180v200h-340v-200h-380v755q0 10 7.5 17.5t17.5 7.5h575v-400zM1000 900h-200v200zM700 300h162l-212 -212l-212 212h162v200h100v-200zM520 0h-395q-10 0 -17.5 7.5t-7.5 17.5v395zM1000 220v-195q0 -10 -7.5 -17.5t-17.5 -7.5h-195z" /> -<glyph unicode="&#xe203;" d="M700 800h300v-520l-350 350l-550 -550v1095q0 10 7.5 17.5t17.5 7.5h575v-400zM1000 900h-200v200zM862 200h-162v-200h-100v200h-162l212 212zM480 0h-355q-10 0 -17.5 7.5t-7.5 17.5v55h380v-80zM1000 80v-55q0 -10 -7.5 -17.5t-17.5 -7.5h-155v80h180z" /> -<glyph unicode="&#xe204;" d="M1162 800h-162v-200h100l100 -100h-300v300h-162l212 212zM200 800h200q27 0 40 -2t29.5 -10.5t23.5 -30t7 -57.5h300v-100h-600l-200 -350v450h100q0 36 7 57.5t23.5 30t29.5 10.5t40 2zM800 400h240l-240 -400h-800l300 500h500v-100z" /> -<glyph unicode="&#xe205;" d="M650 1100h100q21 0 35.5 -14.5t14.5 -35.5v-50h50q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-300q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5h50v50q0 21 14.5 35.5t35.5 14.5zM1000 850v150q41 0 70.5 -29.5t29.5 -70.5v-800 q0 -41 -29.5 -70.5t-70.5 -29.5h-600q-1 0 -20 4l246 246l-326 326v324q0 41 29.5 70.5t70.5 29.5v-150q0 -62 44 -106t106 -44h300q62 0 106 44t44 106zM412 250l-212 -212v162h-200v100h200v162z" /> -<glyph unicode="&#xe206;" d="M450 1100h100q21 0 35.5 -14.5t14.5 -35.5v-50h50q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-300q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5h50v50q0 21 14.5 35.5t35.5 14.5zM800 850v150q41 0 70.5 -29.5t29.5 -70.5v-500 h-200v-300h200q0 -36 -7 -57.5t-23.5 -30t-29.5 -10.5t-40 -2h-600q-41 0 -70.5 29.5t-29.5 70.5v800q0 41 29.5 70.5t70.5 29.5v-150q0 -62 44 -106t106 -44h300q62 0 106 44t44 106zM1212 250l-212 -212v162h-200v100h200v162z" /> -<glyph unicode="&#xe209;" d="M658 1197l637 -1104q23 -38 7 -65.5t-60 -27.5h-1276q-44 0 -60 27.5t7 65.5l637 1104q22 39 54 39t54 -39zM704 800h-208q-20 0 -32 -14.5t-8 -34.5l58 -302q4 -20 21.5 -34.5t37.5 -14.5h54q20 0 37.5 14.5t21.5 34.5l58 302q4 20 -8 34.5t-32 14.5zM500 300v-100h200 v100h-200z" /> -<glyph unicode="&#xe210;" d="M425 1100h250q10 0 17.5 -7.5t7.5 -17.5v-150q0 -10 -7.5 -17.5t-17.5 -7.5h-250q-10 0 -17.5 7.5t-7.5 17.5v150q0 10 7.5 17.5t17.5 7.5zM425 800h250q10 0 17.5 -7.5t7.5 -17.5v-150q0 -10 -7.5 -17.5t-17.5 -7.5h-250q-10 0 -17.5 7.5t-7.5 17.5v150q0 10 7.5 17.5 t17.5 7.5zM825 800h250q10 0 17.5 -7.5t7.5 -17.5v-150q0 -10 -7.5 -17.5t-17.5 -7.5h-250q-10 0 -17.5 7.5t-7.5 17.5v150q0 10 7.5 17.5t17.5 7.5zM25 500h250q10 0 17.5 -7.5t7.5 -17.5v-150q0 -10 -7.5 -17.5t-17.5 -7.5h-250q-10 0 -17.5 7.5t-7.5 17.5v150 q0 10 7.5 17.5t17.5 7.5zM425 500h250q10 0 17.5 -7.5t7.5 -17.5v-150q0 -10 -7.5 -17.5t-17.5 -7.5h-250q-10 0 -17.5 7.5t-7.5 17.5v150q0 10 7.5 17.5t17.5 7.5zM825 500h250q10 0 17.5 -7.5t7.5 -17.5v-150q0 -10 -7.5 -17.5t-17.5 -7.5h-250q-10 0 -17.5 7.5t-7.5 17.5 v150q0 10 7.5 17.5t17.5 7.5zM25 200h250q10 0 17.5 -7.5t7.5 -17.5v-150q0 -10 -7.5 -17.5t-17.5 -7.5h-250q-10 0 -17.5 7.5t-7.5 17.5v150q0 10 7.5 17.5t17.5 7.5zM425 200h250q10 0 17.5 -7.5t7.5 -17.5v-150q0 -10 -7.5 -17.5t-17.5 -7.5h-250q-10 0 -17.5 7.5 t-7.5 17.5v150q0 10 7.5 17.5t17.5 7.5zM825 200h250q10 0 17.5 -7.5t7.5 -17.5v-150q0 -10 -7.5 -17.5t-17.5 -7.5h-250q-10 0 -17.5 7.5t-7.5 17.5v150q0 10 7.5 17.5t17.5 7.5z" /> -<glyph unicode="&#xe211;" d="M700 1200h100v-200h-100v-100h350q62 0 86.5 -39.5t-3.5 -94.5l-66 -132q-41 -83 -81 -134h-772q-40 51 -81 134l-66 132q-28 55 -3.5 94.5t86.5 39.5h350v100h-100v200h100v100h200v-100zM250 400h700q21 0 35.5 -14.5t14.5 -35.5t-14.5 -35.5t-35.5 -14.5h-12l137 -100 h-950l138 100h-13q-21 0 -35.5 14.5t-14.5 35.5t14.5 35.5t35.5 14.5zM50 100h1100q21 0 35.5 -14.5t14.5 -35.5v-50h-1200v50q0 21 14.5 35.5t35.5 14.5z" /> -<glyph unicode="&#xe212;" d="M600 1300q40 0 68.5 -29.5t28.5 -70.5h-194q0 41 28.5 70.5t68.5 29.5zM443 1100h314q18 -37 18 -75q0 -8 -3 -25h328q41 0 44.5 -16.5t-30.5 -38.5l-175 -145h-678l-178 145q-34 22 -29 38.5t46 16.5h328q-3 17 -3 25q0 38 18 75zM250 700h700q21 0 35.5 -14.5 t14.5 -35.5t-14.5 -35.5t-35.5 -14.5h-150v-200l275 -200h-950l275 200v200h-150q-21 0 -35.5 14.5t-14.5 35.5t14.5 35.5t35.5 14.5zM50 100h1100q21 0 35.5 -14.5t14.5 -35.5v-50h-1200v50q0 21 14.5 35.5t35.5 14.5z" /> -<glyph unicode="&#xe213;" d="M600 1181q75 0 128 -53t53 -128t-53 -128t-128 -53t-128 53t-53 128t53 128t128 53zM602 798h46q34 0 55.5 -28.5t21.5 -86.5q0 -76 39 -183h-324q39 107 39 183q0 58 21.5 86.5t56.5 28.5h45zM250 400h700q21 0 35.5 -14.5t14.5 -35.5t-14.5 -35.5t-35.5 -14.5h-13 l138 -100h-950l137 100h-12q-21 0 -35.5 14.5t-14.5 35.5t14.5 35.5t35.5 14.5zM50 100h1100q21 0 35.5 -14.5t14.5 -35.5v-50h-1200v50q0 21 14.5 35.5t35.5 14.5z" /> -<glyph unicode="&#xe214;" d="M600 1300q47 0 92.5 -53.5t71 -123t25.5 -123.5q0 -78 -55.5 -133.5t-133.5 -55.5t-133.5 55.5t-55.5 133.5q0 62 34 143l144 -143l111 111l-163 163q34 26 63 26zM602 798h46q34 0 55.5 -28.5t21.5 -86.5q0 -76 39 -183h-324q39 107 39 183q0 58 21.5 86.5t56.5 28.5h45 zM250 400h700q21 0 35.5 -14.5t14.5 -35.5t-14.5 -35.5t-35.5 -14.5h-13l138 -100h-950l137 100h-12q-21 0 -35.5 14.5t-14.5 35.5t14.5 35.5t35.5 14.5zM50 100h1100q21 0 35.5 -14.5t14.5 -35.5v-50h-1200v50q0 21 14.5 35.5t35.5 14.5z" /> -<glyph unicode="&#xe215;" d="M600 1200l300 -161v-139h-300q0 -57 18.5 -108t50 -91.5t63 -72t70 -67.5t57.5 -61h-530q-60 83 -90.5 177.5t-30.5 178.5t33 164.5t87.5 139.5t126 96.5t145.5 41.5v-98zM250 400h700q21 0 35.5 -14.5t14.5 -35.5t-14.5 -35.5t-35.5 -14.5h-13l138 -100h-950l137 100 h-12q-21 0 -35.5 14.5t-14.5 35.5t14.5 35.5t35.5 14.5zM50 100h1100q21 0 35.5 -14.5t14.5 -35.5v-50h-1200v50q0 21 14.5 35.5t35.5 14.5z" /> -<glyph unicode="&#xe216;" d="M600 1300q41 0 70.5 -29.5t29.5 -70.5v-78q46 -26 73 -72t27 -100v-50h-400v50q0 54 27 100t73 72v78q0 41 29.5 70.5t70.5 29.5zM400 800h400q54 0 100 -27t72 -73h-172v-100h200v-100h-200v-100h200v-100h-200v-100h200q0 -83 -58.5 -141.5t-141.5 -58.5h-400 q-83 0 -141.5 58.5t-58.5 141.5v400q0 83 58.5 141.5t141.5 58.5z" /> -<glyph unicode="&#xe218;" d="M150 1100h900q21 0 35.5 -14.5t14.5 -35.5v-500q0 -21 -14.5 -35.5t-35.5 -14.5h-900q-21 0 -35.5 14.5t-14.5 35.5v500q0 21 14.5 35.5t35.5 14.5zM125 400h950q10 0 17.5 -7.5t7.5 -17.5v-50q0 -10 -7.5 -17.5t-17.5 -7.5h-283l224 -224q13 -13 13 -31.5t-13 -32 t-31.5 -13.5t-31.5 13l-88 88h-524l-87 -88q-13 -13 -32 -13t-32 13.5t-13 32t13 31.5l224 224h-289q-10 0 -17.5 7.5t-7.5 17.5v50q0 10 7.5 17.5t17.5 7.5zM541 300l-100 -100h324l-100 100h-124z" /> -<glyph unicode="&#xe219;" d="M200 1100h800q83 0 141.5 -58.5t58.5 -141.5v-200h-100q0 41 -29.5 70.5t-70.5 29.5h-250q-41 0 -70.5 -29.5t-29.5 -70.5h-100q0 41 -29.5 70.5t-70.5 29.5h-250q-41 0 -70.5 -29.5t-29.5 -70.5h-100v200q0 83 58.5 141.5t141.5 58.5zM100 600h1000q41 0 70.5 -29.5 t29.5 -70.5v-300h-1200v300q0 41 29.5 70.5t70.5 29.5zM300 100v-50q0 -21 -14.5 -35.5t-35.5 -14.5h-100q-21 0 -35.5 14.5t-14.5 35.5v50h200zM1100 100v-50q0 -21 -14.5 -35.5t-35.5 -14.5h-100q-21 0 -35.5 14.5t-14.5 35.5v50h200z" /> -<glyph unicode="&#xe221;" d="M480 1165l682 -683q31 -31 31 -75.5t-31 -75.5l-131 -131h-481l-517 518q-32 31 -32 75.5t32 75.5l295 296q31 31 75.5 31t76.5 -31zM108 794l342 -342l303 304l-341 341zM250 100h800q21 0 35.5 -14.5t14.5 -35.5v-50h-900v50q0 21 14.5 35.5t35.5 14.5z" /> -<glyph unicode="&#xe223;" d="M1057 647l-189 506q-8 19 -27.5 33t-40.5 14h-400q-21 0 -40.5 -14t-27.5 -33l-189 -506q-8 -19 1.5 -33t30.5 -14h625v-150q0 -21 14.5 -35.5t35.5 -14.5t35.5 14.5t14.5 35.5v150h125q21 0 30.5 14t1.5 33zM897 0h-595v50q0 21 14.5 35.5t35.5 14.5h50v50 q0 21 14.5 35.5t35.5 14.5h48v300h200v-300h47q21 0 35.5 -14.5t14.5 -35.5v-50h50q21 0 35.5 -14.5t14.5 -35.5v-50z" /> -<glyph unicode="&#xe224;" d="M900 800h300v-575q0 -10 -7.5 -17.5t-17.5 -7.5h-375v591l-300 300v84q0 10 7.5 17.5t17.5 7.5h375v-400zM1200 900h-200v200zM400 600h300v-575q0 -10 -7.5 -17.5t-17.5 -7.5h-650q-10 0 -17.5 7.5t-7.5 17.5v950q0 10 7.5 17.5t17.5 7.5h375v-400zM700 700h-200v200z " /> -<glyph unicode="&#xe225;" d="M484 1095h195q75 0 146 -32.5t124 -86t89.5 -122.5t48.5 -142q18 -14 35 -20q31 -10 64.5 6.5t43.5 48.5q10 34 -15 71q-19 27 -9 43q5 8 12.5 11t19 -1t23.5 -16q41 -44 39 -105q-3 -63 -46 -106.5t-104 -43.5h-62q-7 -55 -35 -117t-56 -100l-39 -234q-3 -20 -20 -34.5 t-38 -14.5h-100q-21 0 -33 14.5t-9 34.5l12 70q-49 -14 -91 -14h-195q-24 0 -65 8l-11 -64q-3 -20 -20 -34.5t-38 -14.5h-100q-21 0 -33 14.5t-9 34.5l26 157q-84 74 -128 175l-159 53q-19 7 -33 26t-14 40v50q0 21 14.5 35.5t35.5 14.5h124q11 87 56 166l-111 95 q-16 14 -12.5 23.5t24.5 9.5h203q116 101 250 101zM675 1000h-250q-10 0 -17.5 -7.5t-7.5 -17.5v-50q0 -10 7.5 -17.5t17.5 -7.5h250q10 0 17.5 7.5t7.5 17.5v50q0 10 -7.5 17.5t-17.5 7.5z" /> -<glyph unicode="&#xe226;" d="M641 900l423 247q19 8 42 2.5t37 -21.5l32 -38q14 -15 12.5 -36t-17.5 -34l-139 -120h-390zM50 1100h106q67 0 103 -17t66 -71l102 -212h823q21 0 35.5 -14.5t14.5 -35.5v-50q0 -21 -14 -40t-33 -26l-737 -132q-23 -4 -40 6t-26 25q-42 67 -100 67h-300q-62 0 -106 44 t-44 106v200q0 62 44 106t106 44zM173 928h-80q-19 0 -28 -14t-9 -35v-56q0 -51 42 -51h134q16 0 21.5 8t5.5 24q0 11 -16 45t-27 51q-18 28 -43 28zM550 727q-32 0 -54.5 -22.5t-22.5 -54.5t22.5 -54.5t54.5 -22.5t54.5 22.5t22.5 54.5t-22.5 54.5t-54.5 22.5zM130 389 l152 130q18 19 34 24t31 -3.5t24.5 -17.5t25.5 -28q28 -35 50.5 -51t48.5 -13l63 5l48 -179q13 -61 -3.5 -97.5t-67.5 -79.5l-80 -69q-47 -40 -109 -35.5t-103 51.5l-130 151q-40 47 -35.5 109.5t51.5 102.5zM380 377l-102 -88q-31 -27 2 -65l37 -43q13 -15 27.5 -19.5 t31.5 6.5l61 53q19 16 14 49q-2 20 -12 56t-17 45q-11 12 -19 14t-23 -8z" /> -<glyph unicode="&#xe227;" d="M625 1200h150q10 0 17.5 -7.5t7.5 -17.5v-109q79 -33 131 -87.5t53 -128.5q1 -46 -15 -84.5t-39 -61t-46 -38t-39 -21.5l-17 -6q6 0 15 -1.5t35 -9t50 -17.5t53 -30t50 -45t35.5 -64t14.5 -84q0 -59 -11.5 -105.5t-28.5 -76.5t-44 -51t-49.5 -31.5t-54.5 -16t-49.5 -6.5 t-43.5 -1v-75q0 -10 -7.5 -17.5t-17.5 -7.5h-150q-10 0 -17.5 7.5t-7.5 17.5v75h-100v-75q0 -10 -7.5 -17.5t-17.5 -7.5h-150q-10 0 -17.5 7.5t-7.5 17.5v75h-175q-10 0 -17.5 7.5t-7.5 17.5v150q0 10 7.5 17.5t17.5 7.5h75v600h-75q-10 0 -17.5 7.5t-7.5 17.5v150 q0 10 7.5 17.5t17.5 7.5h175v75q0 10 7.5 17.5t17.5 7.5h150q10 0 17.5 -7.5t7.5 -17.5v-75h100v75q0 10 7.5 17.5t17.5 7.5zM400 900v-200h263q28 0 48.5 10.5t30 25t15 29t5.5 25.5l1 10q0 4 -0.5 11t-6 24t-15 30t-30 24t-48.5 11h-263zM400 500v-200h363q28 0 48.5 10.5 t30 25t15 29t5.5 25.5l1 10q0 4 -0.5 11t-6 24t-15 30t-30 24t-48.5 11h-363z" /> -<glyph unicode="&#xe230;" d="M212 1198h780q86 0 147 -61t61 -147v-416q0 -51 -18 -142.5t-36 -157.5l-18 -66q-29 -87 -93.5 -146.5t-146.5 -59.5h-572q-82 0 -147 59t-93 147q-8 28 -20 73t-32 143.5t-20 149.5v416q0 86 61 147t147 61zM600 1045q-70 0 -132.5 -11.5t-105.5 -30.5t-78.5 -41.5 t-57 -45t-36 -41t-20.5 -30.5l-6 -12l156 -243h560l156 243q-2 5 -6 12.5t-20 29.5t-36.5 42t-57 44.5t-79 42t-105 29.5t-132.5 12zM762 703h-157l195 261z" /> -<glyph unicode="&#xe231;" d="M475 1300h150q103 0 189 -86t86 -189v-500q0 -41 -42 -83t-83 -42h-450q-41 0 -83 42t-42 83v500q0 103 86 189t189 86zM700 300v-225q0 -21 -27 -48t-48 -27h-150q-21 0 -48 27t-27 48v225h300z" /> -<glyph unicode="&#xe232;" d="M475 1300h96q0 -150 89.5 -239.5t239.5 -89.5v-446q0 -41 -42 -83t-83 -42h-450q-41 0 -83 42t-42 83v500q0 103 86 189t189 86zM700 300v-225q0 -21 -27 -48t-48 -27h-150q-21 0 -48 27t-27 48v225h300z" /> -<glyph unicode="&#xe233;" d="M1294 767l-638 -283l-378 170l-78 -60v-224l100 -150v-199l-150 148l-150 -149v200l100 150v250q0 4 -0.5 10.5t0 9.5t1 8t3 8t6.5 6l47 40l-147 65l642 283zM1000 380l-350 -166l-350 166v147l350 -165l350 165v-147z" /> -<glyph unicode="&#xe234;" d="M250 800q62 0 106 -44t44 -106t-44 -106t-106 -44t-106 44t-44 106t44 106t106 44zM650 800q62 0 106 -44t44 -106t-44 -106t-106 -44t-106 44t-44 106t44 106t106 44zM1050 800q62 0 106 -44t44 -106t-44 -106t-106 -44t-106 44t-44 106t44 106t106 44z" /> -<glyph unicode="&#xe235;" d="M550 1100q62 0 106 -44t44 -106t-44 -106t-106 -44t-106 44t-44 106t44 106t106 44zM550 700q62 0 106 -44t44 -106t-44 -106t-106 -44t-106 44t-44 106t44 106t106 44zM550 300q62 0 106 -44t44 -106t-44 -106t-106 -44t-106 44t-44 106t44 106t106 44z" /> -<glyph unicode="&#xe236;" d="M125 1100h950q10 0 17.5 -7.5t7.5 -17.5v-150q0 -10 -7.5 -17.5t-17.5 -7.5h-950q-10 0 -17.5 7.5t-7.5 17.5v150q0 10 7.5 17.5t17.5 7.5zM125 700h950q10 0 17.5 -7.5t7.5 -17.5v-150q0 -10 -7.5 -17.5t-17.5 -7.5h-950q-10 0 -17.5 7.5t-7.5 17.5v150q0 10 7.5 17.5 t17.5 7.5zM125 300h950q10 0 17.5 -7.5t7.5 -17.5v-150q0 -10 -7.5 -17.5t-17.5 -7.5h-950q-10 0 -17.5 7.5t-7.5 17.5v150q0 10 7.5 17.5t17.5 7.5z" /> -<glyph unicode="&#xe237;" d="M350 1200h500q162 0 256 -93.5t94 -256.5v-500q0 -165 -93.5 -257.5t-256.5 -92.5h-500q-165 0 -257.5 92.5t-92.5 257.5v500q0 165 92.5 257.5t257.5 92.5zM900 1000h-600q-41 0 -70.5 -29.5t-29.5 -70.5v-600q0 -41 29.5 -70.5t70.5 -29.5h600q41 0 70.5 29.5 t29.5 70.5v600q0 41 -29.5 70.5t-70.5 29.5zM350 900h500q21 0 35.5 -14.5t14.5 -35.5v-300q0 -21 -14.5 -35.5t-35.5 -14.5h-500q-21 0 -35.5 14.5t-14.5 35.5v300q0 21 14.5 35.5t35.5 14.5zM400 800v-200h400v200h-400z" /> -<glyph unicode="&#xe238;" d="M150 1100h1000q21 0 35.5 -14.5t14.5 -35.5t-14.5 -35.5t-35.5 -14.5h-50v-200h50q21 0 35.5 -14.5t14.5 -35.5t-14.5 -35.5t-35.5 -14.5h-50v-200h50q21 0 35.5 -14.5t14.5 -35.5t-14.5 -35.5t-35.5 -14.5h-50v-200h50q21 0 35.5 -14.5t14.5 -35.5t-14.5 -35.5 t-35.5 -14.5h-1000q-21 0 -35.5 14.5t-14.5 35.5t14.5 35.5t35.5 14.5h50v200h-50q-21 0 -35.5 14.5t-14.5 35.5t14.5 35.5t35.5 14.5h50v200h-50q-21 0 -35.5 14.5t-14.5 35.5t14.5 35.5t35.5 14.5h50v200h-50q-21 0 -35.5 14.5t-14.5 35.5t14.5 35.5t35.5 14.5z" /> -<glyph unicode="&#xe239;" d="M650 1187q87 -67 118.5 -156t0 -178t-118.5 -155q-87 66 -118.5 155t0 178t118.5 156zM300 800q124 0 212 -88t88 -212q-124 0 -212 88t-88 212zM1000 800q0 -124 -88 -212t-212 -88q0 124 88 212t212 88zM300 500q124 0 212 -88t88 -212q-124 0 -212 88t-88 212z M1000 500q0 -124 -88 -212t-212 -88q0 124 88 212t212 88zM700 199v-144q0 -21 -14.5 -35.5t-35.5 -14.5t-35.5 14.5t-14.5 35.5v142q40 -4 43 -4q17 0 57 6z" /> -<glyph unicode="&#xe240;" d="M745 878l69 19q25 6 45 -12l298 -295q11 -11 15 -26.5t-2 -30.5q-5 -14 -18 -23.5t-28 -9.5h-8q1 0 1 -13q0 -29 -2 -56t-8.5 -62t-20 -63t-33 -53t-51 -39t-72.5 -14h-146q-184 0 -184 288q0 24 10 47q-20 4 -62 4t-63 -4q11 -24 11 -47q0 -288 -184 -288h-142 q-48 0 -84.5 21t-56 51t-32 71.5t-16 75t-3.5 68.5q0 13 2 13h-7q-15 0 -27.5 9.5t-18.5 23.5q-6 15 -2 30.5t15 25.5l298 296q20 18 46 11l76 -19q20 -5 30.5 -22.5t5.5 -37.5t-22.5 -31t-37.5 -5l-51 12l-182 -193h891l-182 193l-44 -12q-20 -5 -37.5 6t-22.5 31t6 37.5 t31 22.5z" /> -<glyph unicode="&#xe241;" d="M1200 900h-50q0 21 -4 37t-9.5 26.5t-18 17.5t-22 11t-28.5 5.5t-31 2t-37 0.5h-200v-850q0 -22 25 -34.5t50 -13.5l25 -2v-100h-400v100q4 0 11 0.5t24 3t30 7t24 15t11 24.5v850h-200q-25 0 -37 -0.5t-31 -2t-28.5 -5.5t-22 -11t-18 -17.5t-9.5 -26.5t-4 -37h-50v300 h1000v-300zM500 450h-25q0 15 -4 24.5t-9 14.5t-17 7.5t-20 3t-25 0.5h-100v-425q0 -11 12.5 -17.5t25.5 -7.5h12v-50h-200v50q50 0 50 25v425h-100q-17 0 -25 -0.5t-20 -3t-17 -7.5t-9 -14.5t-4 -24.5h-25v150h500v-150z" /> -<glyph unicode="&#xe242;" d="M1000 300v50q-25 0 -55 32q-14 14 -25 31t-16 27l-4 11l-289 747h-69l-300 -754q-18 -35 -39 -56q-9 -9 -24.5 -18.5t-26.5 -14.5l-11 -5v-50h273v50q-49 0 -78.5 21.5t-11.5 67.5l69 176h293l61 -166q13 -34 -3.5 -66.5t-55.5 -32.5v-50h312zM412 691l134 342l121 -342 h-255zM1100 150v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-1000q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5h1000q21 0 35.5 -14.5t14.5 -35.5z" /> -<glyph unicode="&#xe243;" d="M50 1200h1100q21 0 35.5 -14.5t14.5 -35.5v-1100q0 -21 -14.5 -35.5t-35.5 -14.5h-1100q-21 0 -35.5 14.5t-14.5 35.5v1100q0 21 14.5 35.5t35.5 14.5zM611 1118h-70q-13 0 -18 -12l-299 -753q-17 -32 -35 -51q-18 -18 -56 -34q-12 -5 -12 -18v-50q0 -8 5.5 -14t14.5 -6 h273q8 0 14 6t6 14v50q0 8 -6 14t-14 6q-55 0 -71 23q-10 14 0 39l63 163h266l57 -153q11 -31 -6 -55q-12 -17 -36 -17q-8 0 -14 -6t-6 -14v-50q0 -8 6 -14t14 -6h313q8 0 14 6t6 14v50q0 7 -5.5 13t-13.5 7q-17 0 -42 25q-25 27 -40 63h-1l-288 748q-5 12 -19 12zM639 611 h-197l103 264z" /> -<glyph unicode="&#xe244;" d="M1200 1100h-1200v100h1200v-100zM50 1000h400q21 0 35.5 -14.5t14.5 -35.5v-900q0 -21 -14.5 -35.5t-35.5 -14.5h-400q-21 0 -35.5 14.5t-14.5 35.5v900q0 21 14.5 35.5t35.5 14.5zM650 1000h400q21 0 35.5 -14.5t14.5 -35.5v-400q0 -21 -14.5 -35.5t-35.5 -14.5h-400 q-21 0 -35.5 14.5t-14.5 35.5v400q0 21 14.5 35.5t35.5 14.5zM700 900v-300h300v300h-300z" /> -<glyph unicode="&#xe245;" d="M50 1200h400q21 0 35.5 -14.5t14.5 -35.5v-900q0 -21 -14.5 -35.5t-35.5 -14.5h-400q-21 0 -35.5 14.5t-14.5 35.5v900q0 21 14.5 35.5t35.5 14.5zM650 700h400q21 0 35.5 -14.5t14.5 -35.5v-400q0 -21 -14.5 -35.5t-35.5 -14.5h-400q-21 0 -35.5 14.5t-14.5 35.5v400 q0 21 14.5 35.5t35.5 14.5zM700 600v-300h300v300h-300zM1200 0h-1200v100h1200v-100z" /> -<glyph unicode="&#xe246;" d="M50 1000h400q21 0 35.5 -14.5t14.5 -35.5v-350h100v150q0 21 14.5 35.5t35.5 14.5h400q21 0 35.5 -14.5t14.5 -35.5v-150h100v-100h-100v-150q0 -21 -14.5 -35.5t-35.5 -14.5h-400q-21 0 -35.5 14.5t-14.5 35.5v150h-100v-350q0 -21 -14.5 -35.5t-35.5 -14.5h-400 q-21 0 -35.5 14.5t-14.5 35.5v800q0 21 14.5 35.5t35.5 14.5zM700 700v-300h300v300h-300z" /> -<glyph unicode="&#xe247;" d="M100 0h-100v1200h100v-1200zM250 1100h400q21 0 35.5 -14.5t14.5 -35.5v-400q0 -21 -14.5 -35.5t-35.5 -14.5h-400q-21 0 -35.5 14.5t-14.5 35.5v400q0 21 14.5 35.5t35.5 14.5zM300 1000v-300h300v300h-300zM250 500h900q21 0 35.5 -14.5t14.5 -35.5v-400 q0 -21 -14.5 -35.5t-35.5 -14.5h-900q-21 0 -35.5 14.5t-14.5 35.5v400q0 21 14.5 35.5t35.5 14.5z" /> -<glyph unicode="&#xe248;" d="M600 1100h150q21 0 35.5 -14.5t14.5 -35.5v-400q0 -21 -14.5 -35.5t-35.5 -14.5h-150v-100h450q21 0 35.5 -14.5t14.5 -35.5v-400q0 -21 -14.5 -35.5t-35.5 -14.5h-900q-21 0 -35.5 14.5t-14.5 35.5v400q0 21 14.5 35.5t35.5 14.5h350v100h-150q-21 0 -35.5 14.5 t-14.5 35.5v400q0 21 14.5 35.5t35.5 14.5h150v100h100v-100zM400 1000v-300h300v300h-300z" /> -<glyph unicode="&#xe249;" d="M1200 0h-100v1200h100v-1200zM550 1100h400q21 0 35.5 -14.5t14.5 -35.5v-400q0 -21 -14.5 -35.5t-35.5 -14.5h-400q-21 0 -35.5 14.5t-14.5 35.5v400q0 21 14.5 35.5t35.5 14.5zM600 1000v-300h300v300h-300zM50 500h900q21 0 35.5 -14.5t14.5 -35.5v-400 q0 -21 -14.5 -35.5t-35.5 -14.5h-900q-21 0 -35.5 14.5t-14.5 35.5v400q0 21 14.5 35.5t35.5 14.5z" /> -<glyph unicode="&#xe250;" d="M865 565l-494 -494q-23 -23 -41 -23q-14 0 -22 13.5t-8 38.5v1000q0 25 8 38.5t22 13.5q18 0 41 -23l494 -494q14 -14 14 -35t-14 -35z" /> -<glyph unicode="&#xe251;" d="M335 635l494 494q29 29 50 20.5t21 -49.5v-1000q0 -41 -21 -49.5t-50 20.5l-494 494q-14 14 -14 35t14 35z" /> -<glyph unicode="&#xe252;" d="M100 900h1000q41 0 49.5 -21t-20.5 -50l-494 -494q-14 -14 -35 -14t-35 14l-494 494q-29 29 -20.5 50t49.5 21z" /> -<glyph unicode="&#xe253;" d="M635 865l494 -494q29 -29 20.5 -50t-49.5 -21h-1000q-41 0 -49.5 21t20.5 50l494 494q14 14 35 14t35 -14z" /> -<glyph unicode="&#xe254;" d="M700 741v-182l-692 -323v221l413 193l-413 193v221zM1200 0h-800v200h800v-200z" /> -<glyph unicode="&#xe255;" d="M1200 900h-200v-100h200v-100h-300v300h200v100h-200v100h300v-300zM0 700h50q0 21 4 37t9.5 26.5t18 17.5t22 11t28.5 5.5t31 2t37 0.5h100v-550q0 -22 -25 -34.5t-50 -13.5l-25 -2v-100h400v100q-4 0 -11 0.5t-24 3t-30 7t-24 15t-11 24.5v550h100q25 0 37 -0.5t31 -2 t28.5 -5.5t22 -11t18 -17.5t9.5 -26.5t4 -37h50v300h-800v-300z" /> -<glyph unicode="&#xe256;" d="M800 700h-50q0 21 -4 37t-9.5 26.5t-18 17.5t-22 11t-28.5 5.5t-31 2t-37 0.5h-100v-550q0 -22 25 -34.5t50 -14.5l25 -1v-100h-400v100q4 0 11 0.5t24 3t30 7t24 15t11 24.5v550h-100q-25 0 -37 -0.5t-31 -2t-28.5 -5.5t-22 -11t-18 -17.5t-9.5 -26.5t-4 -37h-50v300 h800v-300zM1100 200h-200v-100h200v-100h-300v300h200v100h-200v100h300v-300z" /> -<glyph unicode="&#xe257;" d="M701 1098h160q16 0 21 -11t-7 -23l-464 -464l464 -464q12 -12 7 -23t-21 -11h-160q-13 0 -23 9l-471 471q-7 8 -7 18t7 18l471 471q10 9 23 9z" /> -<glyph unicode="&#xe258;" d="M339 1098h160q13 0 23 -9l471 -471q7 -8 7 -18t-7 -18l-471 -471q-10 -9 -23 -9h-160q-16 0 -21 11t7 23l464 464l-464 464q-12 12 -7 23t21 11z" /> -<glyph unicode="&#xe259;" d="M1087 882q11 -5 11 -21v-160q0 -13 -9 -23l-471 -471q-8 -7 -18 -7t-18 7l-471 471q-9 10 -9 23v160q0 16 11 21t23 -7l464 -464l464 464q12 12 23 7z" /> -<glyph unicode="&#xe260;" d="M618 993l471 -471q9 -10 9 -23v-160q0 -16 -11 -21t-23 7l-464 464l-464 -464q-12 -12 -23 -7t-11 21v160q0 13 9 23l471 471q8 7 18 7t18 -7z" /> -<glyph unicode="&#xf8ff;" d="M1000 1200q0 -124 -88 -212t-212 -88q0 124 88 212t212 88zM450 1000h100q21 0 40 -14t26 -33l79 -194q5 1 16 3q34 6 54 9.5t60 7t65.5 1t61 -10t56.5 -23t42.5 -42t29 -64t5 -92t-19.5 -121.5q-1 -7 -3 -19.5t-11 -50t-20.5 -73t-32.5 -81.5t-46.5 -83t-64 -70 t-82.5 -50q-13 -5 -42 -5t-65.5 2.5t-47.5 2.5q-14 0 -49.5 -3.5t-63 -3.5t-43.5 7q-57 25 -104.5 78.5t-75 111.5t-46.5 112t-26 90l-7 35q-15 63 -18 115t4.5 88.5t26 64t39.5 43.5t52 25.5t58.5 13t62.5 2t59.5 -4.5t55.5 -8l-147 192q-12 18 -5.5 30t27.5 12z" /> -<glyph unicode="&#x1f511;" d="M250 1200h600q21 0 35.5 -14.5t14.5 -35.5v-400q0 -21 -14.5 -35.5t-35.5 -14.5h-150v-500l-255 -178q-19 -9 -32 -1t-13 29v650h-150q-21 0 -35.5 14.5t-14.5 35.5v400q0 21 14.5 35.5t35.5 14.5zM400 1100v-100h300v100h-300z" /> -<glyph unicode="&#x1f6aa;" d="M250 1200h750q39 0 69.5 -40.5t30.5 -84.5v-933l-700 -117v950l600 125h-700v-1000h-100v1025q0 23 15.5 49t34.5 26zM500 525v-100l100 20v100z" /> -</font> -</defs></svg> \ No newline at end of file diff --git a/admin/bower_components/bootstrap/dist/fonts/glyphicons-halflings-regular.ttf b/admin/bower_components/bootstrap/dist/fonts/glyphicons-halflings-regular.ttf deleted file mode 100644 index 1413fc6..0000000 Binary files a/admin/bower_components/bootstrap/dist/fonts/glyphicons-halflings-regular.ttf and /dev/null differ diff --git a/admin/bower_components/bootstrap/dist/fonts/glyphicons-halflings-regular.woff b/admin/bower_components/bootstrap/dist/fonts/glyphicons-halflings-regular.woff deleted file mode 100644 index 9e61285..0000000 Binary files a/admin/bower_components/bootstrap/dist/fonts/glyphicons-halflings-regular.woff and /dev/null differ diff --git a/admin/bower_components/bootstrap/dist/fonts/glyphicons-halflings-regular.woff2 b/admin/bower_components/bootstrap/dist/fonts/glyphicons-halflings-regular.woff2 deleted file mode 100644 index 64539b5..0000000 Binary files a/admin/bower_components/bootstrap/dist/fonts/glyphicons-halflings-regular.woff2 and /dev/null differ diff --git a/admin/bower_components/bootstrap/dist/js/bootstrap.js b/admin/bower_components/bootstrap/dist/js/bootstrap.js deleted file mode 100644 index 8a2e99a..0000000 --- a/admin/bower_components/bootstrap/dist/js/bootstrap.js +++ /dev/null @@ -1,2377 +0,0 @@ -/*! - * Bootstrap v3.3.7 (http://getbootstrap.com) - * Copyright 2011-2016 Twitter, Inc. - * Licensed under the MIT license - */ - -if (typeof jQuery === 'undefined') { - throw new Error('Bootstrap\'s JavaScript requires jQuery') -} - -+function ($) { - 'use strict'; - var version = $.fn.jquery.split(' ')[0].split('.') - if ((version[0] < 2 && version[1] < 9) || (version[0] == 1 && version[1] == 9 && version[2] < 1) || (version[0] > 3)) { - throw new Error('Bootstrap\'s JavaScript requires jQuery version 1.9.1 or higher, but lower than version 4') - } -}(jQuery); - -/* ======================================================================== - * Bootstrap: transition.js v3.3.7 - * http://getbootstrap.com/javascript/#transitions - * ======================================================================== - * Copyright 2011-2016 Twitter, Inc. - * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) - * ======================================================================== */ - - -+function ($) { - 'use strict'; - - // CSS TRANSITION SUPPORT (Shoutout: http://www.modernizr.com/) - // ============================================================ - - function transitionEnd() { - var el = document.createElement('bootstrap') - - var transEndEventNames = { - WebkitTransition : 'webkitTransitionEnd', - MozTransition : 'transitionend', - OTransition : 'oTransitionEnd otransitionend', - transition : 'transitionend' - } - - for (var name in transEndEventNames) { - if (el.style[name] !== undefined) { - return { end: transEndEventNames[name] } - } - } - - return false // explicit for ie8 ( ._.) - } - - // http://blog.alexmaccaw.com/css-transitions - $.fn.emulateTransitionEnd = function (duration) { - var called = false - var $el = this - $(this).one('bsTransitionEnd', function () { called = true }) - var callback = function () { if (!called) $($el).trigger($.support.transition.end) } - setTimeout(callback, duration) - return this - } - - $(function () { - $.support.transition = transitionEnd() - - if (!$.support.transition) return - - $.event.special.bsTransitionEnd = { - bindType: $.support.transition.end, - delegateType: $.support.transition.end, - handle: function (e) { - if ($(e.target).is(this)) return e.handleObj.handler.apply(this, arguments) - } - } - }) - -}(jQuery); - -/* ======================================================================== - * Bootstrap: alert.js v3.3.7 - * http://getbootstrap.com/javascript/#alerts - * ======================================================================== - * Copyright 2011-2016 Twitter, Inc. - * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) - * ======================================================================== */ - - -+function ($) { - 'use strict'; - - // ALERT CLASS DEFINITION - // ====================== - - var dismiss = '[data-dismiss="alert"]' - var Alert = function (el) { - $(el).on('click', dismiss, this.close) - } - - Alert.VERSION = '3.3.7' - - Alert.TRANSITION_DURATION = 150 - - Alert.prototype.close = function (e) { - var $this = $(this) - var selector = $this.attr('data-target') - - if (!selector) { - selector = $this.attr('href') - selector = selector && selector.replace(/.*(?=#[^\s]*$)/, '') // strip for ie7 - } - - var $parent = $(selector === '#' ? [] : selector) - - if (e) e.preventDefault() - - if (!$parent.length) { - $parent = $this.closest('.alert') - } - - $parent.trigger(e = $.Event('close.bs.alert')) - - if (e.isDefaultPrevented()) return - - $parent.removeClass('in') - - function removeElement() { - // detach from parent, fire event then clean up data - $parent.detach().trigger('closed.bs.alert').remove() - } - - $.support.transition && $parent.hasClass('fade') ? - $parent - .one('bsTransitionEnd', removeElement) - .emulateTransitionEnd(Alert.TRANSITION_DURATION) : - removeElement() - } - - - // ALERT PLUGIN DEFINITION - // ======================= - - function Plugin(option) { - return this.each(function () { - var $this = $(this) - var data = $this.data('bs.alert') - - if (!data) $this.data('bs.alert', (data = new Alert(this))) - if (typeof option == 'string') data[option].call($this) - }) - } - - var old = $.fn.alert - - $.fn.alert = Plugin - $.fn.alert.Constructor = Alert - - - // ALERT NO CONFLICT - // ================= - - $.fn.alert.noConflict = function () { - $.fn.alert = old - return this - } - - - // ALERT DATA-API - // ============== - - $(document).on('click.bs.alert.data-api', dismiss, Alert.prototype.close) - -}(jQuery); - -/* ======================================================================== - * Bootstrap: button.js v3.3.7 - * http://getbootstrap.com/javascript/#buttons - * ======================================================================== - * Copyright 2011-2016 Twitter, Inc. - * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) - * ======================================================================== */ - - -+function ($) { - 'use strict'; - - // BUTTON PUBLIC CLASS DEFINITION - // ============================== - - var Button = function (element, options) { - this.$element = $(element) - this.options = $.extend({}, Button.DEFAULTS, options) - this.isLoading = false - } - - Button.VERSION = '3.3.7' - - Button.DEFAULTS = { - loadingText: 'loading...' - } - - Button.prototype.setState = function (state) { - var d = 'disabled' - var $el = this.$element - var val = $el.is('input') ? 'val' : 'html' - var data = $el.data() - - state += 'Text' - - if (data.resetText == null) $el.data('resetText', $el[val]()) - - // push to event loop to allow forms to submit - setTimeout($.proxy(function () { - $el[val](data[state] == null ? this.options[state] : data[state]) - - if (state == 'loadingText') { - this.isLoading = true - $el.addClass(d).attr(d, d).prop(d, true) - } else if (this.isLoading) { - this.isLoading = false - $el.removeClass(d).removeAttr(d).prop(d, false) - } - }, this), 0) - } - - Button.prototype.toggle = function () { - var changed = true - var $parent = this.$element.closest('[data-toggle="buttons"]') - - if ($parent.length) { - var $input = this.$element.find('input') - if ($input.prop('type') == 'radio') { - if ($input.prop('checked')) changed = false - $parent.find('.active').removeClass('active') - this.$element.addClass('active') - } else if ($input.prop('type') == 'checkbox') { - if (($input.prop('checked')) !== this.$element.hasClass('active')) changed = false - this.$element.toggleClass('active') - } - $input.prop('checked', this.$element.hasClass('active')) - if (changed) $input.trigger('change') - } else { - this.$element.attr('aria-pressed', !this.$element.hasClass('active')) - this.$element.toggleClass('active') - } - } - - - // BUTTON PLUGIN DEFINITION - // ======================== - - function Plugin(option) { - return this.each(function () { - var $this = $(this) - var data = $this.data('bs.button') - var options = typeof option == 'object' && option - - if (!data) $this.data('bs.button', (data = new Button(this, options))) - - if (option == 'toggle') data.toggle() - else if (option) data.setState(option) - }) - } - - var old = $.fn.button - - $.fn.button = Plugin - $.fn.button.Constructor = Button - - - // BUTTON NO CONFLICT - // ================== - - $.fn.button.noConflict = function () { - $.fn.button = old - return this - } - - - // BUTTON DATA-API - // =============== - - $(document) - .on('click.bs.button.data-api', '[data-toggle^="button"]', function (e) { - var $btn = $(e.target).closest('.btn') - Plugin.call($btn, 'toggle') - if (!($(e.target).is('input[type="radio"], input[type="checkbox"]'))) { - // Prevent double click on radios, and the double selections (so cancellation) on checkboxes - e.preventDefault() - // The target component still receive the focus - if ($btn.is('input,button')) $btn.trigger('focus') - else $btn.find('input:visible,button:visible').first().trigger('focus') - } - }) - .on('focus.bs.button.data-api blur.bs.button.data-api', '[data-toggle^="button"]', function (e) { - $(e.target).closest('.btn').toggleClass('focus', /^focus(in)?$/.test(e.type)) - }) - -}(jQuery); - -/* ======================================================================== - * Bootstrap: carousel.js v3.3.7 - * http://getbootstrap.com/javascript/#carousel - * ======================================================================== - * Copyright 2011-2016 Twitter, Inc. - * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) - * ======================================================================== */ - - -+function ($) { - 'use strict'; - - // CAROUSEL CLASS DEFINITION - // ========================= - - var Carousel = function (element, options) { - this.$element = $(element) - this.$indicators = this.$element.find('.carousel-indicators') - this.options = options - this.paused = null - this.sliding = null - this.interval = null - this.$active = null - this.$items = null - - this.options.keyboard && this.$element.on('keydown.bs.carousel', $.proxy(this.keydown, this)) - - this.options.pause == 'hover' && !('ontouchstart' in document.documentElement) && this.$element - .on('mouseenter.bs.carousel', $.proxy(this.pause, this)) - .on('mouseleave.bs.carousel', $.proxy(this.cycle, this)) - } - - Carousel.VERSION = '3.3.7' - - Carousel.TRANSITION_DURATION = 600 - - Carousel.DEFAULTS = { - interval: 5000, - pause: 'hover', - wrap: true, - keyboard: true - } - - Carousel.prototype.keydown = function (e) { - if (/input|textarea/i.test(e.target.tagName)) return - switch (e.which) { - case 37: this.prev(); break - case 39: this.next(); break - default: return - } - - e.preventDefault() - } - - Carousel.prototype.cycle = function (e) { - e || (this.paused = false) - - this.interval && clearInterval(this.interval) - - this.options.interval - && !this.paused - && (this.interval = setInterval($.proxy(this.next, this), this.options.interval)) - - return this - } - - Carousel.prototype.getItemIndex = function (item) { - this.$items = item.parent().children('.item') - return this.$items.index(item || this.$active) - } - - Carousel.prototype.getItemForDirection = function (direction, active) { - var activeIndex = this.getItemIndex(active) - var willWrap = (direction == 'prev' && activeIndex === 0) - || (direction == 'next' && activeIndex == (this.$items.length - 1)) - if (willWrap && !this.options.wrap) return active - var delta = direction == 'prev' ? -1 : 1 - var itemIndex = (activeIndex + delta) % this.$items.length - return this.$items.eq(itemIndex) - } - - Carousel.prototype.to = function (pos) { - var that = this - var activeIndex = this.getItemIndex(this.$active = this.$element.find('.item.active')) - - if (pos > (this.$items.length - 1) || pos < 0) return - - if (this.sliding) return this.$element.one('slid.bs.carousel', function () { that.to(pos) }) // yes, "slid" - if (activeIndex == pos) return this.pause().cycle() - - return this.slide(pos > activeIndex ? 'next' : 'prev', this.$items.eq(pos)) - } - - Carousel.prototype.pause = function (e) { - e || (this.paused = true) - - if (this.$element.find('.next, .prev').length && $.support.transition) { - this.$element.trigger($.support.transition.end) - this.cycle(true) - } - - this.interval = clearInterval(this.interval) - - return this - } - - Carousel.prototype.next = function () { - if (this.sliding) return - return this.slide('next') - } - - Carousel.prototype.prev = function () { - if (this.sliding) return - return this.slide('prev') - } - - Carousel.prototype.slide = function (type, next) { - var $active = this.$element.find('.item.active') - var $next = next || this.getItemForDirection(type, $active) - var isCycling = this.interval - var direction = type == 'next' ? 'left' : 'right' - var that = this - - if ($next.hasClass('active')) return (this.sliding = false) - - var relatedTarget = $next[0] - var slideEvent = $.Event('slide.bs.carousel', { - relatedTarget: relatedTarget, - direction: direction - }) - this.$element.trigger(slideEvent) - if (slideEvent.isDefaultPrevented()) return - - this.sliding = true - - isCycling && this.pause() - - if (this.$indicators.length) { - this.$indicators.find('.active').removeClass('active') - var $nextIndicator = $(this.$indicators.children()[this.getItemIndex($next)]) - $nextIndicator && $nextIndicator.addClass('active') - } - - var slidEvent = $.Event('slid.bs.carousel', { relatedTarget: relatedTarget, direction: direction }) // yes, "slid" - if ($.support.transition && this.$element.hasClass('slide')) { - $next.addClass(type) - $next[0].offsetWidth // force reflow - $active.addClass(direction) - $next.addClass(direction) - $active - .one('bsTransitionEnd', function () { - $next.removeClass([type, direction].join(' ')).addClass('active') - $active.removeClass(['active', direction].join(' ')) - that.sliding = false - setTimeout(function () { - that.$element.trigger(slidEvent) - }, 0) - }) - .emulateTransitionEnd(Carousel.TRANSITION_DURATION) - } else { - $active.removeClass('active') - $next.addClass('active') - this.sliding = false - this.$element.trigger(slidEvent) - } - - isCycling && this.cycle() - - return this - } - - - // CAROUSEL PLUGIN DEFINITION - // ========================== - - function Plugin(option) { - return this.each(function () { - var $this = $(this) - var data = $this.data('bs.carousel') - var options = $.extend({}, Carousel.DEFAULTS, $this.data(), typeof option == 'object' && option) - var action = typeof option == 'string' ? option : options.slide - - if (!data) $this.data('bs.carousel', (data = new Carousel(this, options))) - if (typeof option == 'number') data.to(option) - else if (action) data[action]() - else if (options.interval) data.pause().cycle() - }) - } - - var old = $.fn.carousel - - $.fn.carousel = Plugin - $.fn.carousel.Constructor = Carousel - - - // CAROUSEL NO CONFLICT - // ==================== - - $.fn.carousel.noConflict = function () { - $.fn.carousel = old - return this - } - - - // CAROUSEL DATA-API - // ================= - - var clickHandler = function (e) { - var href - var $this = $(this) - var $target = $($this.attr('data-target') || (href = $this.attr('href')) && href.replace(/.*(?=#[^\s]+$)/, '')) // strip for ie7 - if (!$target.hasClass('carousel')) return - var options = $.extend({}, $target.data(), $this.data()) - var slideIndex = $this.attr('data-slide-to') - if (slideIndex) options.interval = false - - Plugin.call($target, options) - - if (slideIndex) { - $target.data('bs.carousel').to(slideIndex) - } - - e.preventDefault() - } - - $(document) - .on('click.bs.carousel.data-api', '[data-slide]', clickHandler) - .on('click.bs.carousel.data-api', '[data-slide-to]', clickHandler) - - $(window).on('load', function () { - $('[data-ride="carousel"]').each(function () { - var $carousel = $(this) - Plugin.call($carousel, $carousel.data()) - }) - }) - -}(jQuery); - -/* ======================================================================== - * Bootstrap: collapse.js v3.3.7 - * http://getbootstrap.com/javascript/#collapse - * ======================================================================== - * Copyright 2011-2016 Twitter, Inc. - * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) - * ======================================================================== */ - -/* jshint latedef: false */ - -+function ($) { - 'use strict'; - - // COLLAPSE PUBLIC CLASS DEFINITION - // ================================ - - var Collapse = function (element, options) { - this.$element = $(element) - this.options = $.extend({}, Collapse.DEFAULTS, options) - this.$trigger = $('[data-toggle="collapse"][href="#' + element.id + '"],' + - '[data-toggle="collapse"][data-target="#' + element.id + '"]') - this.transitioning = null - - if (this.options.parent) { - this.$parent = this.getParent() - } else { - this.addAriaAndCollapsedClass(this.$element, this.$trigger) - } - - if (this.options.toggle) this.toggle() - } - - Collapse.VERSION = '3.3.7' - - Collapse.TRANSITION_DURATION = 350 - - Collapse.DEFAULTS = { - toggle: true - } - - Collapse.prototype.dimension = function () { - var hasWidth = this.$element.hasClass('width') - return hasWidth ? 'width' : 'height' - } - - Collapse.prototype.show = function () { - if (this.transitioning || this.$element.hasClass('in')) return - - var activesData - var actives = this.$parent && this.$parent.children('.panel').children('.in, .collapsing') - - if (actives && actives.length) { - activesData = actives.data('bs.collapse') - if (activesData && activesData.transitioning) return - } - - var startEvent = $.Event('show.bs.collapse') - this.$element.trigger(startEvent) - if (startEvent.isDefaultPrevented()) return - - if (actives && actives.length) { - Plugin.call(actives, 'hide') - activesData || actives.data('bs.collapse', null) - } - - var dimension = this.dimension() - - this.$element - .removeClass('collapse') - .addClass('collapsing')[dimension](0) - .attr('aria-expanded', true) - - this.$trigger - .removeClass('collapsed') - .attr('aria-expanded', true) - - this.transitioning = 1 - - var complete = function () { - this.$element - .removeClass('collapsing') - .addClass('collapse in')[dimension]('') - this.transitioning = 0 - this.$element - .trigger('shown.bs.collapse') - } - - if (!$.support.transition) return complete.call(this) - - var scrollSize = $.camelCase(['scroll', dimension].join('-')) - - this.$element - .one('bsTransitionEnd', $.proxy(complete, this)) - .emulateTransitionEnd(Collapse.TRANSITION_DURATION)[dimension](this.$element[0][scrollSize]) - } - - Collapse.prototype.hide = function () { - if (this.transitioning || !this.$element.hasClass('in')) return - - var startEvent = $.Event('hide.bs.collapse') - this.$element.trigger(startEvent) - if (startEvent.isDefaultPrevented()) return - - var dimension = this.dimension() - - this.$element[dimension](this.$element[dimension]())[0].offsetHeight - - this.$element - .addClass('collapsing') - .removeClass('collapse in') - .attr('aria-expanded', false) - - this.$trigger - .addClass('collapsed') - .attr('aria-expanded', false) - - this.transitioning = 1 - - var complete = function () { - this.transitioning = 0 - this.$element - .removeClass('collapsing') - .addClass('collapse') - .trigger('hidden.bs.collapse') - } - - if (!$.support.transition) return complete.call(this) - - this.$element - [dimension](0) - .one('bsTransitionEnd', $.proxy(complete, this)) - .emulateTransitionEnd(Collapse.TRANSITION_DURATION) - } - - Collapse.prototype.toggle = function () { - this[this.$element.hasClass('in') ? 'hide' : 'show']() - } - - Collapse.prototype.getParent = function () { - return $(this.options.parent) - .find('[data-toggle="collapse"][data-parent="' + this.options.parent + '"]') - .each($.proxy(function (i, element) { - var $element = $(element) - this.addAriaAndCollapsedClass(getTargetFromTrigger($element), $element) - }, this)) - .end() - } - - Collapse.prototype.addAriaAndCollapsedClass = function ($element, $trigger) { - var isOpen = $element.hasClass('in') - - $element.attr('aria-expanded', isOpen) - $trigger - .toggleClass('collapsed', !isOpen) - .attr('aria-expanded', isOpen) - } - - function getTargetFromTrigger($trigger) { - var href - var target = $trigger.attr('data-target') - || (href = $trigger.attr('href')) && href.replace(/.*(?=#[^\s]+$)/, '') // strip for ie7 - - return $(target) - } - - - // COLLAPSE PLUGIN DEFINITION - // ========================== - - function Plugin(option) { - return this.each(function () { - var $this = $(this) - var data = $this.data('bs.collapse') - var options = $.extend({}, Collapse.DEFAULTS, $this.data(), typeof option == 'object' && option) - - if (!data && options.toggle && /show|hide/.test(option)) options.toggle = false - if (!data) $this.data('bs.collapse', (data = new Collapse(this, options))) - if (typeof option == 'string') data[option]() - }) - } - - var old = $.fn.collapse - - $.fn.collapse = Plugin - $.fn.collapse.Constructor = Collapse - - - // COLLAPSE NO CONFLICT - // ==================== - - $.fn.collapse.noConflict = function () { - $.fn.collapse = old - return this - } - - - // COLLAPSE DATA-API - // ================= - - $(document).on('click.bs.collapse.data-api', '[data-toggle="collapse"]', function (e) { - var $this = $(this) - - if (!$this.attr('data-target')) e.preventDefault() - - var $target = getTargetFromTrigger($this) - var data = $target.data('bs.collapse') - var option = data ? 'toggle' : $this.data() - - Plugin.call($target, option) - }) - -}(jQuery); - -/* ======================================================================== - * Bootstrap: dropdown.js v3.3.7 - * http://getbootstrap.com/javascript/#dropdowns - * ======================================================================== - * Copyright 2011-2016 Twitter, Inc. - * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) - * ======================================================================== */ - - -+function ($) { - 'use strict'; - - // DROPDOWN CLASS DEFINITION - // ========================= - - var backdrop = '.dropdown-backdrop' - var toggle = '[data-toggle="dropdown"]' - var Dropdown = function (element) { - $(element).on('click.bs.dropdown', this.toggle) - } - - Dropdown.VERSION = '3.3.7' - - function getParent($this) { - var selector = $this.attr('data-target') - - if (!selector) { - selector = $this.attr('href') - selector = selector && /#[A-Za-z]/.test(selector) && selector.replace(/.*(?=#[^\s]*$)/, '') // strip for ie7 - } - - var $parent = selector && $(selector) - - return $parent && $parent.length ? $parent : $this.parent() - } - - function clearMenus(e) { - if (e && e.which === 3) return - $(backdrop).remove() - $(toggle).each(function () { - var $this = $(this) - var $parent = getParent($this) - var relatedTarget = { relatedTarget: this } - - if (!$parent.hasClass('open')) return - - if (e && e.type == 'click' && /input|textarea/i.test(e.target.tagName) && $.contains($parent[0], e.target)) return - - $parent.trigger(e = $.Event('hide.bs.dropdown', relatedTarget)) - - if (e.isDefaultPrevented()) return - - $this.attr('aria-expanded', 'false') - $parent.removeClass('open').trigger($.Event('hidden.bs.dropdown', relatedTarget)) - }) - } - - Dropdown.prototype.toggle = function (e) { - var $this = $(this) - - if ($this.is('.disabled, :disabled')) return - - var $parent = getParent($this) - var isActive = $parent.hasClass('open') - - clearMenus() - - if (!isActive) { - if ('ontouchstart' in document.documentElement && !$parent.closest('.navbar-nav').length) { - // if mobile we use a backdrop because click events don't delegate - $(document.createElement('div')) - .addClass('dropdown-backdrop') - .insertAfter($(this)) - .on('click', clearMenus) - } - - var relatedTarget = { relatedTarget: this } - $parent.trigger(e = $.Event('show.bs.dropdown', relatedTarget)) - - if (e.isDefaultPrevented()) return - - $this - .trigger('focus') - .attr('aria-expanded', 'true') - - $parent - .toggleClass('open') - .trigger($.Event('shown.bs.dropdown', relatedTarget)) - } - - return false - } - - Dropdown.prototype.keydown = function (e) { - if (!/(38|40|27|32)/.test(e.which) || /input|textarea/i.test(e.target.tagName)) return - - var $this = $(this) - - e.preventDefault() - e.stopPropagation() - - if ($this.is('.disabled, :disabled')) return - - var $parent = getParent($this) - var isActive = $parent.hasClass('open') - - if (!isActive && e.which != 27 || isActive && e.which == 27) { - if (e.which == 27) $parent.find(toggle).trigger('focus') - return $this.trigger('click') - } - - var desc = ' li:not(.disabled):visible a' - var $items = $parent.find('.dropdown-menu' + desc) - - if (!$items.length) return - - var index = $items.index(e.target) - - if (e.which == 38 && index > 0) index-- // up - if (e.which == 40 && index < $items.length - 1) index++ // down - if (!~index) index = 0 - - $items.eq(index).trigger('focus') - } - - - // DROPDOWN PLUGIN DEFINITION - // ========================== - - function Plugin(option) { - return this.each(function () { - var $this = $(this) - var data = $this.data('bs.dropdown') - - if (!data) $this.data('bs.dropdown', (data = new Dropdown(this))) - if (typeof option == 'string') data[option].call($this) - }) - } - - var old = $.fn.dropdown - - $.fn.dropdown = Plugin - $.fn.dropdown.Constructor = Dropdown - - - // DROPDOWN NO CONFLICT - // ==================== - - $.fn.dropdown.noConflict = function () { - $.fn.dropdown = old - return this - } - - - // APPLY TO STANDARD DROPDOWN ELEMENTS - // =================================== - - $(document) - .on('click.bs.dropdown.data-api', clearMenus) - .on('click.bs.dropdown.data-api', '.dropdown form', function (e) { e.stopPropagation() }) - .on('click.bs.dropdown.data-api', toggle, Dropdown.prototype.toggle) - .on('keydown.bs.dropdown.data-api', toggle, Dropdown.prototype.keydown) - .on('keydown.bs.dropdown.data-api', '.dropdown-menu', Dropdown.prototype.keydown) - -}(jQuery); - -/* ======================================================================== - * Bootstrap: modal.js v3.3.7 - * http://getbootstrap.com/javascript/#modals - * ======================================================================== - * Copyright 2011-2016 Twitter, Inc. - * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) - * ======================================================================== */ - - -+function ($) { - 'use strict'; - - // MODAL CLASS DEFINITION - // ====================== - - var Modal = function (element, options) { - this.options = options - this.$body = $(document.body) - this.$element = $(element) - this.$dialog = this.$element.find('.modal-dialog') - this.$backdrop = null - this.isShown = null - this.originalBodyPad = null - this.scrollbarWidth = 0 - this.ignoreBackdropClick = false - - if (this.options.remote) { - this.$element - .find('.modal-content') - .load(this.options.remote, $.proxy(function () { - this.$element.trigger('loaded.bs.modal') - }, this)) - } - } - - Modal.VERSION = '3.3.7' - - Modal.TRANSITION_DURATION = 300 - Modal.BACKDROP_TRANSITION_DURATION = 150 - - Modal.DEFAULTS = { - backdrop: true, - keyboard: true, - show: true - } - - Modal.prototype.toggle = function (_relatedTarget) { - return this.isShown ? this.hide() : this.show(_relatedTarget) - } - - Modal.prototype.show = function (_relatedTarget) { - var that = this - var e = $.Event('show.bs.modal', { relatedTarget: _relatedTarget }) - - this.$element.trigger(e) - - if (this.isShown || e.isDefaultPrevented()) return - - this.isShown = true - - this.checkScrollbar() - this.setScrollbar() - this.$body.addClass('modal-open') - - this.escape() - this.resize() - - this.$element.on('click.dismiss.bs.modal', '[data-dismiss="modal"]', $.proxy(this.hide, this)) - - this.$dialog.on('mousedown.dismiss.bs.modal', function () { - that.$element.one('mouseup.dismiss.bs.modal', function (e) { - if ($(e.target).is(that.$element)) that.ignoreBackdropClick = true - }) - }) - - this.backdrop(function () { - var transition = $.support.transition && that.$element.hasClass('fade') - - if (!that.$element.parent().length) { - that.$element.appendTo(that.$body) // don't move modals dom position - } - - that.$element - .show() - .scrollTop(0) - - that.adjustDialog() - - if (transition) { - that.$element[0].offsetWidth // force reflow - } - - that.$element.addClass('in') - - that.enforceFocus() - - var e = $.Event('shown.bs.modal', { relatedTarget: _relatedTarget }) - - transition ? - that.$dialog // wait for modal to slide in - .one('bsTransitionEnd', function () { - that.$element.trigger('focus').trigger(e) - }) - .emulateTransitionEnd(Modal.TRANSITION_DURATION) : - that.$element.trigger('focus').trigger(e) - }) - } - - Modal.prototype.hide = function (e) { - if (e) e.preventDefault() - - e = $.Event('hide.bs.modal') - - this.$element.trigger(e) - - if (!this.isShown || e.isDefaultPrevented()) return - - this.isShown = false - - this.escape() - this.resize() - - $(document).off('focusin.bs.modal') - - this.$element - .removeClass('in') - .off('click.dismiss.bs.modal') - .off('mouseup.dismiss.bs.modal') - - this.$dialog.off('mousedown.dismiss.bs.modal') - - $.support.transition && this.$element.hasClass('fade') ? - this.$element - .one('bsTransitionEnd', $.proxy(this.hideModal, this)) - .emulateTransitionEnd(Modal.TRANSITION_DURATION) : - this.hideModal() - } - - Modal.prototype.enforceFocus = function () { - $(document) - .off('focusin.bs.modal') // guard against infinite focus loop - .on('focusin.bs.modal', $.proxy(function (e) { - if (document !== e.target && - this.$element[0] !== e.target && - !this.$element.has(e.target).length) { - this.$element.trigger('focus') - } - }, this)) - } - - Modal.prototype.escape = function () { - if (this.isShown && this.options.keyboard) { - this.$element.on('keydown.dismiss.bs.modal', $.proxy(function (e) { - e.which == 27 && this.hide() - }, this)) - } else if (!this.isShown) { - this.$element.off('keydown.dismiss.bs.modal') - } - } - - Modal.prototype.resize = function () { - if (this.isShown) { - $(window).on('resize.bs.modal', $.proxy(this.handleUpdate, this)) - } else { - $(window).off('resize.bs.modal') - } - } - - Modal.prototype.hideModal = function () { - var that = this - this.$element.hide() - this.backdrop(function () { - that.$body.removeClass('modal-open') - that.resetAdjustments() - that.resetScrollbar() - that.$element.trigger('hidden.bs.modal') - }) - } - - Modal.prototype.removeBackdrop = function () { - this.$backdrop && this.$backdrop.remove() - this.$backdrop = null - } - - Modal.prototype.backdrop = function (callback) { - var that = this - var animate = this.$element.hasClass('fade') ? 'fade' : '' - - if (this.isShown && this.options.backdrop) { - var doAnimate = $.support.transition && animate - - this.$backdrop = $(document.createElement('div')) - .addClass('modal-backdrop ' + animate) - .appendTo(this.$body) - - this.$element.on('click.dismiss.bs.modal', $.proxy(function (e) { - if (this.ignoreBackdropClick) { - this.ignoreBackdropClick = false - return - } - if (e.target !== e.currentTarget) return - this.options.backdrop == 'static' - ? this.$element[0].focus() - : this.hide() - }, this)) - - if (doAnimate) this.$backdrop[0].offsetWidth // force reflow - - this.$backdrop.addClass('in') - - if (!callback) return - - doAnimate ? - this.$backdrop - .one('bsTransitionEnd', callback) - .emulateTransitionEnd(Modal.BACKDROP_TRANSITION_DURATION) : - callback() - - } else if (!this.isShown && this.$backdrop) { - this.$backdrop.removeClass('in') - - var callbackRemove = function () { - that.removeBackdrop() - callback && callback() - } - $.support.transition && this.$element.hasClass('fade') ? - this.$backdrop - .one('bsTransitionEnd', callbackRemove) - .emulateTransitionEnd(Modal.BACKDROP_TRANSITION_DURATION) : - callbackRemove() - - } else if (callback) { - callback() - } - } - - // these following methods are used to handle overflowing modals - - Modal.prototype.handleUpdate = function () { - this.adjustDialog() - } - - Modal.prototype.adjustDialog = function () { - var modalIsOverflowing = this.$element[0].scrollHeight > document.documentElement.clientHeight - - this.$element.css({ - paddingLeft: !this.bodyIsOverflowing && modalIsOverflowing ? this.scrollbarWidth : '', - paddingRight: this.bodyIsOverflowing && !modalIsOverflowing ? this.scrollbarWidth : '' - }) - } - - Modal.prototype.resetAdjustments = function () { - this.$element.css({ - paddingLeft: '', - paddingRight: '' - }) - } - - Modal.prototype.checkScrollbar = function () { - var fullWindowWidth = window.innerWidth - if (!fullWindowWidth) { // workaround for missing window.innerWidth in IE8 - var documentElementRect = document.documentElement.getBoundingClientRect() - fullWindowWidth = documentElementRect.right - Math.abs(documentElementRect.left) - } - this.bodyIsOverflowing = document.body.clientWidth < fullWindowWidth - this.scrollbarWidth = this.measureScrollbar() - } - - Modal.prototype.setScrollbar = function () { - var bodyPad = parseInt((this.$body.css('padding-right') || 0), 10) - this.originalBodyPad = document.body.style.paddingRight || '' - if (this.bodyIsOverflowing) this.$body.css('padding-right', bodyPad + this.scrollbarWidth) - } - - Modal.prototype.resetScrollbar = function () { - this.$body.css('padding-right', this.originalBodyPad) - } - - Modal.prototype.measureScrollbar = function () { // thx walsh - var scrollDiv = document.createElement('div') - scrollDiv.className = 'modal-scrollbar-measure' - this.$body.append(scrollDiv) - var scrollbarWidth = scrollDiv.offsetWidth - scrollDiv.clientWidth - this.$body[0].removeChild(scrollDiv) - return scrollbarWidth - } - - - // MODAL PLUGIN DEFINITION - // ======================= - - function Plugin(option, _relatedTarget) { - return this.each(function () { - var $this = $(this) - var data = $this.data('bs.modal') - var options = $.extend({}, Modal.DEFAULTS, $this.data(), typeof option == 'object' && option) - - if (!data) $this.data('bs.modal', (data = new Modal(this, options))) - if (typeof option == 'string') data[option](_relatedTarget) - else if (options.show) data.show(_relatedTarget) - }) - } - - var old = $.fn.modal - - $.fn.modal = Plugin - $.fn.modal.Constructor = Modal - - - // MODAL NO CONFLICT - // ================= - - $.fn.modal.noConflict = function () { - $.fn.modal = old - return this - } - - - // MODAL DATA-API - // ============== - - $(document).on('click.bs.modal.data-api', '[data-toggle="modal"]', function (e) { - var $this = $(this) - var href = $this.attr('href') - var $target = $($this.attr('data-target') || (href && href.replace(/.*(?=#[^\s]+$)/, ''))) // strip for ie7 - var option = $target.data('bs.modal') ? 'toggle' : $.extend({ remote: !/#/.test(href) && href }, $target.data(), $this.data()) - - if ($this.is('a')) e.preventDefault() - - $target.one('show.bs.modal', function (showEvent) { - if (showEvent.isDefaultPrevented()) return // only register focus restorer if modal will actually get shown - $target.one('hidden.bs.modal', function () { - $this.is(':visible') && $this.trigger('focus') - }) - }) - Plugin.call($target, option, this) - }) - -}(jQuery); - -/* ======================================================================== - * Bootstrap: tooltip.js v3.3.7 - * http://getbootstrap.com/javascript/#tooltip - * Inspired by the original jQuery.tipsy by Jason Frame - * ======================================================================== - * Copyright 2011-2016 Twitter, Inc. - * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) - * ======================================================================== */ - - -+function ($) { - 'use strict'; - - // TOOLTIP PUBLIC CLASS DEFINITION - // =============================== - - var Tooltip = function (element, options) { - this.type = null - this.options = null - this.enabled = null - this.timeout = null - this.hoverState = null - this.$element = null - this.inState = null - - this.init('tooltip', element, options) - } - - Tooltip.VERSION = '3.3.7' - - Tooltip.TRANSITION_DURATION = 150 - - Tooltip.DEFAULTS = { - animation: true, - placement: 'top', - selector: false, - template: '<div class="tooltip" role="tooltip"><div class="tooltip-arrow"></div><div class="tooltip-inner"></div></div>', - trigger: 'hover focus', - title: '', - delay: 0, - html: false, - container: false, - viewport: { - selector: 'body', - padding: 0 - } - } - - Tooltip.prototype.init = function (type, element, options) { - this.enabled = true - this.type = type - this.$element = $(element) - this.options = this.getOptions(options) - this.$viewport = this.options.viewport && $($.isFunction(this.options.viewport) ? this.options.viewport.call(this, this.$element) : (this.options.viewport.selector || this.options.viewport)) - this.inState = { click: false, hover: false, focus: false } - - if (this.$element[0] instanceof document.constructor && !this.options.selector) { - throw new Error('`selector` option must be specified when initializing ' + this.type + ' on the window.document object!') - } - - var triggers = this.options.trigger.split(' ') - - for (var i = triggers.length; i--;) { - var trigger = triggers[i] - - if (trigger == 'click') { - this.$element.on('click.' + this.type, this.options.selector, $.proxy(this.toggle, this)) - } else if (trigger != 'manual') { - var eventIn = trigger == 'hover' ? 'mouseenter' : 'focusin' - var eventOut = trigger == 'hover' ? 'mouseleave' : 'focusout' - - this.$element.on(eventIn + '.' + this.type, this.options.selector, $.proxy(this.enter, this)) - this.$element.on(eventOut + '.' + this.type, this.options.selector, $.proxy(this.leave, this)) - } - } - - this.options.selector ? - (this._options = $.extend({}, this.options, { trigger: 'manual', selector: '' })) : - this.fixTitle() - } - - Tooltip.prototype.getDefaults = function () { - return Tooltip.DEFAULTS - } - - Tooltip.prototype.getOptions = function (options) { - options = $.extend({}, this.getDefaults(), this.$element.data(), options) - - if (options.delay && typeof options.delay == 'number') { - options.delay = { - show: options.delay, - hide: options.delay - } - } - - return options - } - - Tooltip.prototype.getDelegateOptions = function () { - var options = {} - var defaults = this.getDefaults() - - this._options && $.each(this._options, function (key, value) { - if (defaults[key] != value) options[key] = value - }) - - return options - } - - Tooltip.prototype.enter = function (obj) { - var self = obj instanceof this.constructor ? - obj : $(obj.currentTarget).data('bs.' + this.type) - - if (!self) { - self = new this.constructor(obj.currentTarget, this.getDelegateOptions()) - $(obj.currentTarget).data('bs.' + this.type, self) - } - - if (obj instanceof $.Event) { - self.inState[obj.type == 'focusin' ? 'focus' : 'hover'] = true - } - - if (self.tip().hasClass('in') || self.hoverState == 'in') { - self.hoverState = 'in' - return - } - - clearTimeout(self.timeout) - - self.hoverState = 'in' - - if (!self.options.delay || !self.options.delay.show) return self.show() - - self.timeout = setTimeout(function () { - if (self.hoverState == 'in') self.show() - }, self.options.delay.show) - } - - Tooltip.prototype.isInStateTrue = function () { - for (var key in this.inState) { - if (this.inState[key]) return true - } - - return false - } - - Tooltip.prototype.leave = function (obj) { - var self = obj instanceof this.constructor ? - obj : $(obj.currentTarget).data('bs.' + this.type) - - if (!self) { - self = new this.constructor(obj.currentTarget, this.getDelegateOptions()) - $(obj.currentTarget).data('bs.' + this.type, self) - } - - if (obj instanceof $.Event) { - self.inState[obj.type == 'focusout' ? 'focus' : 'hover'] = false - } - - if (self.isInStateTrue()) return - - clearTimeout(self.timeout) - - self.hoverState = 'out' - - if (!self.options.delay || !self.options.delay.hide) return self.hide() - - self.timeout = setTimeout(function () { - if (self.hoverState == 'out') self.hide() - }, self.options.delay.hide) - } - - Tooltip.prototype.show = function () { - var e = $.Event('show.bs.' + this.type) - - if (this.hasContent() && this.enabled) { - this.$element.trigger(e) - - var inDom = $.contains(this.$element[0].ownerDocument.documentElement, this.$element[0]) - if (e.isDefaultPrevented() || !inDom) return - var that = this - - var $tip = this.tip() - - var tipId = this.getUID(this.type) - - this.setContent() - $tip.attr('id', tipId) - this.$element.attr('aria-describedby', tipId) - - if (this.options.animation) $tip.addClass('fade') - - var placement = typeof this.options.placement == 'function' ? - this.options.placement.call(this, $tip[0], this.$element[0]) : - this.options.placement - - var autoToken = /\s?auto?\s?/i - var autoPlace = autoToken.test(placement) - if (autoPlace) placement = placement.replace(autoToken, '') || 'top' - - $tip - .detach() - .css({ top: 0, left: 0, display: 'block' }) - .addClass(placement) - .data('bs.' + this.type, this) - - this.options.container ? $tip.appendTo(this.options.container) : $tip.insertAfter(this.$element) - this.$element.trigger('inserted.bs.' + this.type) - - var pos = this.getPosition() - var actualWidth = $tip[0].offsetWidth - var actualHeight = $tip[0].offsetHeight - - if (autoPlace) { - var orgPlacement = placement - var viewportDim = this.getPosition(this.$viewport) - - placement = placement == 'bottom' && pos.bottom + actualHeight > viewportDim.bottom ? 'top' : - placement == 'top' && pos.top - actualHeight < viewportDim.top ? 'bottom' : - placement == 'right' && pos.right + actualWidth > viewportDim.width ? 'left' : - placement == 'left' && pos.left - actualWidth < viewportDim.left ? 'right' : - placement - - $tip - .removeClass(orgPlacement) - .addClass(placement) - } - - var calculatedOffset = this.getCalculatedOffset(placement, pos, actualWidth, actualHeight) - - this.applyPlacement(calculatedOffset, placement) - - var complete = function () { - var prevHoverState = that.hoverState - that.$element.trigger('shown.bs.' + that.type) - that.hoverState = null - - if (prevHoverState == 'out') that.leave(that) - } - - $.support.transition && this.$tip.hasClass('fade') ? - $tip - .one('bsTransitionEnd', complete) - .emulateTransitionEnd(Tooltip.TRANSITION_DURATION) : - complete() - } - } - - Tooltip.prototype.applyPlacement = function (offset, placement) { - var $tip = this.tip() - var width = $tip[0].offsetWidth - var height = $tip[0].offsetHeight - - // manually read margins because getBoundingClientRect includes difference - var marginTop = parseInt($tip.css('margin-top'), 10) - var marginLeft = parseInt($tip.css('margin-left'), 10) - - // we must check for NaN for ie 8/9 - if (isNaN(marginTop)) marginTop = 0 - if (isNaN(marginLeft)) marginLeft = 0 - - offset.top += marginTop - offset.left += marginLeft - - // $.fn.offset doesn't round pixel values - // so we use setOffset directly with our own function B-0 - $.offset.setOffset($tip[0], $.extend({ - using: function (props) { - $tip.css({ - top: Math.round(props.top), - left: Math.round(props.left) - }) - } - }, offset), 0) - - $tip.addClass('in') - - // check to see if placing tip in new offset caused the tip to resize itself - var actualWidth = $tip[0].offsetWidth - var actualHeight = $tip[0].offsetHeight - - if (placement == 'top' && actualHeight != height) { - offset.top = offset.top + height - actualHeight - } - - var delta = this.getViewportAdjustedDelta(placement, offset, actualWidth, actualHeight) - - if (delta.left) offset.left += delta.left - else offset.top += delta.top - - var isVertical = /top|bottom/.test(placement) - var arrowDelta = isVertical ? delta.left * 2 - width + actualWidth : delta.top * 2 - height + actualHeight - var arrowOffsetPosition = isVertical ? 'offsetWidth' : 'offsetHeight' - - $tip.offset(offset) - this.replaceArrow(arrowDelta, $tip[0][arrowOffsetPosition], isVertical) - } - - Tooltip.prototype.replaceArrow = function (delta, dimension, isVertical) { - this.arrow() - .css(isVertical ? 'left' : 'top', 50 * (1 - delta / dimension) + '%') - .css(isVertical ? 'top' : 'left', '') - } - - Tooltip.prototype.setContent = function () { - var $tip = this.tip() - var title = this.getTitle() - - $tip.find('.tooltip-inner')[this.options.html ? 'html' : 'text'](title) - $tip.removeClass('fade in top bottom left right') - } - - Tooltip.prototype.hide = function (callback) { - var that = this - var $tip = $(this.$tip) - var e = $.Event('hide.bs.' + this.type) - - function complete() { - if (that.hoverState != 'in') $tip.detach() - if (that.$element) { // TODO: Check whether guarding this code with this `if` is really necessary. - that.$element - .removeAttr('aria-describedby') - .trigger('hidden.bs.' + that.type) - } - callback && callback() - } - - this.$element.trigger(e) - - if (e.isDefaultPrevented()) return - - $tip.removeClass('in') - - $.support.transition && $tip.hasClass('fade') ? - $tip - .one('bsTransitionEnd', complete) - .emulateTransitionEnd(Tooltip.TRANSITION_DURATION) : - complete() - - this.hoverState = null - - return this - } - - Tooltip.prototype.fixTitle = function () { - var $e = this.$element - if ($e.attr('title') || typeof $e.attr('data-original-title') != 'string') { - $e.attr('data-original-title', $e.attr('title') || '').attr('title', '') - } - } - - Tooltip.prototype.hasContent = function () { - return this.getTitle() - } - - Tooltip.prototype.getPosition = function ($element) { - $element = $element || this.$element - - var el = $element[0] - var isBody = el.tagName == 'BODY' - - var elRect = el.getBoundingClientRect() - if (elRect.width == null) { - // width and height are missing in IE8, so compute them manually; see https://github.com/twbs/bootstrap/issues/14093 - elRect = $.extend({}, elRect, { width: elRect.right - elRect.left, height: elRect.bottom - elRect.top }) - } - var isSvg = window.SVGElement && el instanceof window.SVGElement - // Avoid using $.offset() on SVGs since it gives incorrect results in jQuery 3. - // See https://github.com/twbs/bootstrap/issues/20280 - var elOffset = isBody ? { top: 0, left: 0 } : (isSvg ? null : $element.offset()) - var scroll = { scroll: isBody ? document.documentElement.scrollTop || document.body.scrollTop : $element.scrollTop() } - var outerDims = isBody ? { width: $(window).width(), height: $(window).height() } : null - - return $.extend({}, elRect, scroll, outerDims, elOffset) - } - - Tooltip.prototype.getCalculatedOffset = function (placement, pos, actualWidth, actualHeight) { - return placement == 'bottom' ? { top: pos.top + pos.height, left: pos.left + pos.width / 2 - actualWidth / 2 } : - placement == 'top' ? { top: pos.top - actualHeight, left: pos.left + pos.width / 2 - actualWidth / 2 } : - placement == 'left' ? { top: pos.top + pos.height / 2 - actualHeight / 2, left: pos.left - actualWidth } : - /* placement == 'right' */ { top: pos.top + pos.height / 2 - actualHeight / 2, left: pos.left + pos.width } - - } - - Tooltip.prototype.getViewportAdjustedDelta = function (placement, pos, actualWidth, actualHeight) { - var delta = { top: 0, left: 0 } - if (!this.$viewport) return delta - - var viewportPadding = this.options.viewport && this.options.viewport.padding || 0 - var viewportDimensions = this.getPosition(this.$viewport) - - if (/right|left/.test(placement)) { - var topEdgeOffset = pos.top - viewportPadding - viewportDimensions.scroll - var bottomEdgeOffset = pos.top + viewportPadding - viewportDimensions.scroll + actualHeight - if (topEdgeOffset < viewportDimensions.top) { // top overflow - delta.top = viewportDimensions.top - topEdgeOffset - } else if (bottomEdgeOffset > viewportDimensions.top + viewportDimensions.height) { // bottom overflow - delta.top = viewportDimensions.top + viewportDimensions.height - bottomEdgeOffset - } - } else { - var leftEdgeOffset = pos.left - viewportPadding - var rightEdgeOffset = pos.left + viewportPadding + actualWidth - if (leftEdgeOffset < viewportDimensions.left) { // left overflow - delta.left = viewportDimensions.left - leftEdgeOffset - } else if (rightEdgeOffset > viewportDimensions.right) { // right overflow - delta.left = viewportDimensions.left + viewportDimensions.width - rightEdgeOffset - } - } - - return delta - } - - Tooltip.prototype.getTitle = function () { - var title - var $e = this.$element - var o = this.options - - title = $e.attr('data-original-title') - || (typeof o.title == 'function' ? o.title.call($e[0]) : o.title) - - return title - } - - Tooltip.prototype.getUID = function (prefix) { - do prefix += ~~(Math.random() * 1000000) - while (document.getElementById(prefix)) - return prefix - } - - Tooltip.prototype.tip = function () { - if (!this.$tip) { - this.$tip = $(this.options.template) - if (this.$tip.length != 1) { - throw new Error(this.type + ' `template` option must consist of exactly 1 top-level element!') - } - } - return this.$tip - } - - Tooltip.prototype.arrow = function () { - return (this.$arrow = this.$arrow || this.tip().find('.tooltip-arrow')) - } - - Tooltip.prototype.enable = function () { - this.enabled = true - } - - Tooltip.prototype.disable = function () { - this.enabled = false - } - - Tooltip.prototype.toggleEnabled = function () { - this.enabled = !this.enabled - } - - Tooltip.prototype.toggle = function (e) { - var self = this - if (e) { - self = $(e.currentTarget).data('bs.' + this.type) - if (!self) { - self = new this.constructor(e.currentTarget, this.getDelegateOptions()) - $(e.currentTarget).data('bs.' + this.type, self) - } - } - - if (e) { - self.inState.click = !self.inState.click - if (self.isInStateTrue()) self.enter(self) - else self.leave(self) - } else { - self.tip().hasClass('in') ? self.leave(self) : self.enter(self) - } - } - - Tooltip.prototype.destroy = function () { - var that = this - clearTimeout(this.timeout) - this.hide(function () { - that.$element.off('.' + that.type).removeData('bs.' + that.type) - if (that.$tip) { - that.$tip.detach() - } - that.$tip = null - that.$arrow = null - that.$viewport = null - that.$element = null - }) - } - - - // TOOLTIP PLUGIN DEFINITION - // ========================= - - function Plugin(option) { - return this.each(function () { - var $this = $(this) - var data = $this.data('bs.tooltip') - var options = typeof option == 'object' && option - - if (!data && /destroy|hide/.test(option)) return - if (!data) $this.data('bs.tooltip', (data = new Tooltip(this, options))) - if (typeof option == 'string') data[option]() - }) - } - - var old = $.fn.tooltip - - $.fn.tooltip = Plugin - $.fn.tooltip.Constructor = Tooltip - - - // TOOLTIP NO CONFLICT - // =================== - - $.fn.tooltip.noConflict = function () { - $.fn.tooltip = old - return this - } - -}(jQuery); - -/* ======================================================================== - * Bootstrap: popover.js v3.3.7 - * http://getbootstrap.com/javascript/#popovers - * ======================================================================== - * Copyright 2011-2016 Twitter, Inc. - * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) - * ======================================================================== */ - - -+function ($) { - 'use strict'; - - // POPOVER PUBLIC CLASS DEFINITION - // =============================== - - var Popover = function (element, options) { - this.init('popover', element, options) - } - - if (!$.fn.tooltip) throw new Error('Popover requires tooltip.js') - - Popover.VERSION = '3.3.7' - - Popover.DEFAULTS = $.extend({}, $.fn.tooltip.Constructor.DEFAULTS, { - placement: 'right', - trigger: 'click', - content: '', - template: '<div class="popover" role="tooltip"><div class="arrow"></div><h3 class="popover-title"></h3><div class="popover-content"></div></div>' - }) - - - // NOTE: POPOVER EXTENDS tooltip.js - // ================================ - - Popover.prototype = $.extend({}, $.fn.tooltip.Constructor.prototype) - - Popover.prototype.constructor = Popover - - Popover.prototype.getDefaults = function () { - return Popover.DEFAULTS - } - - Popover.prototype.setContent = function () { - var $tip = this.tip() - var title = this.getTitle() - var content = this.getContent() - - $tip.find('.popover-title')[this.options.html ? 'html' : 'text'](title) - $tip.find('.popover-content').children().detach().end()[ // we use append for html objects to maintain js events - this.options.html ? (typeof content == 'string' ? 'html' : 'append') : 'text' - ](content) - - $tip.removeClass('fade top bottom left right in') - - // IE8 doesn't accept hiding via the `:empty` pseudo selector, we have to do - // this manually by checking the contents. - if (!$tip.find('.popover-title').html()) $tip.find('.popover-title').hide() - } - - Popover.prototype.hasContent = function () { - return this.getTitle() || this.getContent() - } - - Popover.prototype.getContent = function () { - var $e = this.$element - var o = this.options - - return $e.attr('data-content') - || (typeof o.content == 'function' ? - o.content.call($e[0]) : - o.content) - } - - Popover.prototype.arrow = function () { - return (this.$arrow = this.$arrow || this.tip().find('.arrow')) - } - - - // POPOVER PLUGIN DEFINITION - // ========================= - - function Plugin(option) { - return this.each(function () { - var $this = $(this) - var data = $this.data('bs.popover') - var options = typeof option == 'object' && option - - if (!data && /destroy|hide/.test(option)) return - if (!data) $this.data('bs.popover', (data = new Popover(this, options))) - if (typeof option == 'string') data[option]() - }) - } - - var old = $.fn.popover - - $.fn.popover = Plugin - $.fn.popover.Constructor = Popover - - - // POPOVER NO CONFLICT - // =================== - - $.fn.popover.noConflict = function () { - $.fn.popover = old - return this - } - -}(jQuery); - -/* ======================================================================== - * Bootstrap: scrollspy.js v3.3.7 - * http://getbootstrap.com/javascript/#scrollspy - * ======================================================================== - * Copyright 2011-2016 Twitter, Inc. - * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) - * ======================================================================== */ - - -+function ($) { - 'use strict'; - - // SCROLLSPY CLASS DEFINITION - // ========================== - - function ScrollSpy(element, options) { - this.$body = $(document.body) - this.$scrollElement = $(element).is(document.body) ? $(window) : $(element) - this.options = $.extend({}, ScrollSpy.DEFAULTS, options) - this.selector = (this.options.target || '') + ' .nav li > a' - this.offsets = [] - this.targets = [] - this.activeTarget = null - this.scrollHeight = 0 - - this.$scrollElement.on('scroll.bs.scrollspy', $.proxy(this.process, this)) - this.refresh() - this.process() - } - - ScrollSpy.VERSION = '3.3.7' - - ScrollSpy.DEFAULTS = { - offset: 10 - } - - ScrollSpy.prototype.getScrollHeight = function () { - return this.$scrollElement[0].scrollHeight || Math.max(this.$body[0].scrollHeight, document.documentElement.scrollHeight) - } - - ScrollSpy.prototype.refresh = function () { - var that = this - var offsetMethod = 'offset' - var offsetBase = 0 - - this.offsets = [] - this.targets = [] - this.scrollHeight = this.getScrollHeight() - - if (!$.isWindow(this.$scrollElement[0])) { - offsetMethod = 'position' - offsetBase = this.$scrollElement.scrollTop() - } - - this.$body - .find(this.selector) - .map(function () { - var $el = $(this) - var href = $el.data('target') || $el.attr('href') - var $href = /^#./.test(href) && $(href) - - return ($href - && $href.length - && $href.is(':visible') - && [[$href[offsetMethod]().top + offsetBase, href]]) || null - }) - .sort(function (a, b) { return a[0] - b[0] }) - .each(function () { - that.offsets.push(this[0]) - that.targets.push(this[1]) - }) - } - - ScrollSpy.prototype.process = function () { - var scrollTop = this.$scrollElement.scrollTop() + this.options.offset - var scrollHeight = this.getScrollHeight() - var maxScroll = this.options.offset + scrollHeight - this.$scrollElement.height() - var offsets = this.offsets - var targets = this.targets - var activeTarget = this.activeTarget - var i - - if (this.scrollHeight != scrollHeight) { - this.refresh() - } - - if (scrollTop >= maxScroll) { - return activeTarget != (i = targets[targets.length - 1]) && this.activate(i) - } - - if (activeTarget && scrollTop < offsets[0]) { - this.activeTarget = null - return this.clear() - } - - for (i = offsets.length; i--;) { - activeTarget != targets[i] - && scrollTop >= offsets[i] - && (offsets[i + 1] === undefined || scrollTop < offsets[i + 1]) - && this.activate(targets[i]) - } - } - - ScrollSpy.prototype.activate = function (target) { - this.activeTarget = target - - this.clear() - - var selector = this.selector + - '[data-target="' + target + '"],' + - this.selector + '[href="' + target + '"]' - - var active = $(selector) - .parents('li') - .addClass('active') - - if (active.parent('.dropdown-menu').length) { - active = active - .closest('li.dropdown') - .addClass('active') - } - - active.trigger('activate.bs.scrollspy') - } - - ScrollSpy.prototype.clear = function () { - $(this.selector) - .parentsUntil(this.options.target, '.active') - .removeClass('active') - } - - - // SCROLLSPY PLUGIN DEFINITION - // =========================== - - function Plugin(option) { - return this.each(function () { - var $this = $(this) - var data = $this.data('bs.scrollspy') - var options = typeof option == 'object' && option - - if (!data) $this.data('bs.scrollspy', (data = new ScrollSpy(this, options))) - if (typeof option == 'string') data[option]() - }) - } - - var old = $.fn.scrollspy - - $.fn.scrollspy = Plugin - $.fn.scrollspy.Constructor = ScrollSpy - - - // SCROLLSPY NO CONFLICT - // ===================== - - $.fn.scrollspy.noConflict = function () { - $.fn.scrollspy = old - return this - } - - - // SCROLLSPY DATA-API - // ================== - - $(window).on('load.bs.scrollspy.data-api', function () { - $('[data-spy="scroll"]').each(function () { - var $spy = $(this) - Plugin.call($spy, $spy.data()) - }) - }) - -}(jQuery); - -/* ======================================================================== - * Bootstrap: tab.js v3.3.7 - * http://getbootstrap.com/javascript/#tabs - * ======================================================================== - * Copyright 2011-2016 Twitter, Inc. - * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) - * ======================================================================== */ - - -+function ($) { - 'use strict'; - - // TAB CLASS DEFINITION - // ==================== - - var Tab = function (element) { - // jscs:disable requireDollarBeforejQueryAssignment - this.element = $(element) - // jscs:enable requireDollarBeforejQueryAssignment - } - - Tab.VERSION = '3.3.7' - - Tab.TRANSITION_DURATION = 150 - - Tab.prototype.show = function () { - var $this = this.element - var $ul = $this.closest('ul:not(.dropdown-menu)') - var selector = $this.data('target') - - if (!selector) { - selector = $this.attr('href') - selector = selector && selector.replace(/.*(?=#[^\s]*$)/, '') // strip for ie7 - } - - if ($this.parent('li').hasClass('active')) return - - var $previous = $ul.find('.active:last a') - var hideEvent = $.Event('hide.bs.tab', { - relatedTarget: $this[0] - }) - var showEvent = $.Event('show.bs.tab', { - relatedTarget: $previous[0] - }) - - $previous.trigger(hideEvent) - $this.trigger(showEvent) - - if (showEvent.isDefaultPrevented() || hideEvent.isDefaultPrevented()) return - - var $target = $(selector) - - this.activate($this.closest('li'), $ul) - this.activate($target, $target.parent(), function () { - $previous.trigger({ - type: 'hidden.bs.tab', - relatedTarget: $this[0] - }) - $this.trigger({ - type: 'shown.bs.tab', - relatedTarget: $previous[0] - }) - }) - } - - Tab.prototype.activate = function (element, container, callback) { - var $active = container.find('> .active') - var transition = callback - && $.support.transition - && ($active.length && $active.hasClass('fade') || !!container.find('> .fade').length) - - function next() { - $active - .removeClass('active') - .find('> .dropdown-menu > .active') - .removeClass('active') - .end() - .find('[data-toggle="tab"]') - .attr('aria-expanded', false) - - element - .addClass('active') - .find('[data-toggle="tab"]') - .attr('aria-expanded', true) - - if (transition) { - element[0].offsetWidth // reflow for transition - element.addClass('in') - } else { - element.removeClass('fade') - } - - if (element.parent('.dropdown-menu').length) { - element - .closest('li.dropdown') - .addClass('active') - .end() - .find('[data-toggle="tab"]') - .attr('aria-expanded', true) - } - - callback && callback() - } - - $active.length && transition ? - $active - .one('bsTransitionEnd', next) - .emulateTransitionEnd(Tab.TRANSITION_DURATION) : - next() - - $active.removeClass('in') - } - - - // TAB PLUGIN DEFINITION - // ===================== - - function Plugin(option) { - return this.each(function () { - var $this = $(this) - var data = $this.data('bs.tab') - - if (!data) $this.data('bs.tab', (data = new Tab(this))) - if (typeof option == 'string') data[option]() - }) - } - - var old = $.fn.tab - - $.fn.tab = Plugin - $.fn.tab.Constructor = Tab - - - // TAB NO CONFLICT - // =============== - - $.fn.tab.noConflict = function () { - $.fn.tab = old - return this - } - - - // TAB DATA-API - // ============ - - var clickHandler = function (e) { - e.preventDefault() - Plugin.call($(this), 'show') - } - - $(document) - .on('click.bs.tab.data-api', '[data-toggle="tab"]', clickHandler) - .on('click.bs.tab.data-api', '[data-toggle="pill"]', clickHandler) - -}(jQuery); - -/* ======================================================================== - * Bootstrap: affix.js v3.3.7 - * http://getbootstrap.com/javascript/#affix - * ======================================================================== - * Copyright 2011-2016 Twitter, Inc. - * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) - * ======================================================================== */ - - -+function ($) { - 'use strict'; - - // AFFIX CLASS DEFINITION - // ====================== - - var Affix = function (element, options) { - this.options = $.extend({}, Affix.DEFAULTS, options) - - this.$target = $(this.options.target) - .on('scroll.bs.affix.data-api', $.proxy(this.checkPosition, this)) - .on('click.bs.affix.data-api', $.proxy(this.checkPositionWithEventLoop, this)) - - this.$element = $(element) - this.affixed = null - this.unpin = null - this.pinnedOffset = null - - this.checkPosition() - } - - Affix.VERSION = '3.3.7' - - Affix.RESET = 'affix affix-top affix-bottom' - - Affix.DEFAULTS = { - offset: 0, - target: window - } - - Affix.prototype.getState = function (scrollHeight, height, offsetTop, offsetBottom) { - var scrollTop = this.$target.scrollTop() - var position = this.$element.offset() - var targetHeight = this.$target.height() - - if (offsetTop != null && this.affixed == 'top') return scrollTop < offsetTop ? 'top' : false - - if (this.affixed == 'bottom') { - if (offsetTop != null) return (scrollTop + this.unpin <= position.top) ? false : 'bottom' - return (scrollTop + targetHeight <= scrollHeight - offsetBottom) ? false : 'bottom' - } - - var initializing = this.affixed == null - var colliderTop = initializing ? scrollTop : position.top - var colliderHeight = initializing ? targetHeight : height - - if (offsetTop != null && scrollTop <= offsetTop) return 'top' - if (offsetBottom != null && (colliderTop + colliderHeight >= scrollHeight - offsetBottom)) return 'bottom' - - return false - } - - Affix.prototype.getPinnedOffset = function () { - if (this.pinnedOffset) return this.pinnedOffset - this.$element.removeClass(Affix.RESET).addClass('affix') - var scrollTop = this.$target.scrollTop() - var position = this.$element.offset() - return (this.pinnedOffset = position.top - scrollTop) - } - - Affix.prototype.checkPositionWithEventLoop = function () { - setTimeout($.proxy(this.checkPosition, this), 1) - } - - Affix.prototype.checkPosition = function () { - if (!this.$element.is(':visible')) return - - var height = this.$element.height() - var offset = this.options.offset - var offsetTop = offset.top - var offsetBottom = offset.bottom - var scrollHeight = Math.max($(document).height(), $(document.body).height()) - - if (typeof offset != 'object') offsetBottom = offsetTop = offset - if (typeof offsetTop == 'function') offsetTop = offset.top(this.$element) - if (typeof offsetBottom == 'function') offsetBottom = offset.bottom(this.$element) - - var affix = this.getState(scrollHeight, height, offsetTop, offsetBottom) - - if (this.affixed != affix) { - if (this.unpin != null) this.$element.css('top', '') - - var affixType = 'affix' + (affix ? '-' + affix : '') - var e = $.Event(affixType + '.bs.affix') - - this.$element.trigger(e) - - if (e.isDefaultPrevented()) return - - this.affixed = affix - this.unpin = affix == 'bottom' ? this.getPinnedOffset() : null - - this.$element - .removeClass(Affix.RESET) - .addClass(affixType) - .trigger(affixType.replace('affix', 'affixed') + '.bs.affix') - } - - if (affix == 'bottom') { - this.$element.offset({ - top: scrollHeight - height - offsetBottom - }) - } - } - - - // AFFIX PLUGIN DEFINITION - // ======================= - - function Plugin(option) { - return this.each(function () { - var $this = $(this) - var data = $this.data('bs.affix') - var options = typeof option == 'object' && option - - if (!data) $this.data('bs.affix', (data = new Affix(this, options))) - if (typeof option == 'string') data[option]() - }) - } - - var old = $.fn.affix - - $.fn.affix = Plugin - $.fn.affix.Constructor = Affix - - - // AFFIX NO CONFLICT - // ================= - - $.fn.affix.noConflict = function () { - $.fn.affix = old - return this - } - - - // AFFIX DATA-API - // ============== - - $(window).on('load', function () { - $('[data-spy="affix"]').each(function () { - var $spy = $(this) - var data = $spy.data() - - data.offset = data.offset || {} - - if (data.offsetBottom != null) data.offset.bottom = data.offsetBottom - if (data.offsetTop != null) data.offset.top = data.offsetTop - - Plugin.call($spy, data) - }) - }) - -}(jQuery); diff --git a/admin/bower_components/bootstrap/dist/js/bootstrap.min.js b/admin/bower_components/bootstrap/dist/js/bootstrap.min.js deleted file mode 100644 index 9bcd2fc..0000000 --- a/admin/bower_components/bootstrap/dist/js/bootstrap.min.js +++ /dev/null @@ -1,7 +0,0 @@ -/*! - * Bootstrap v3.3.7 (http://getbootstrap.com) - * Copyright 2011-2016 Twitter, Inc. - * Licensed under the MIT license - */ -if("undefined"==typeof jQuery)throw new Error("Bootstrap's JavaScript requires jQuery");+function(a){"use strict";var b=a.fn.jquery.split(" ")[0].split(".");if(b[0]<2&&b[1]<9||1==b[0]&&9==b[1]&&b[2]<1||b[0]>3)throw new Error("Bootstrap's JavaScript requires jQuery version 1.9.1 or higher, but lower than version 4")}(jQuery),+function(a){"use strict";function b(){var a=document.createElement("bootstrap"),b={WebkitTransition:"webkitTransitionEnd",MozTransition:"transitionend",OTransition:"oTransitionEnd otransitionend",transition:"transitionend"};for(var c in b)if(void 0!==a.style[c])return{end:b[c]};return!1}a.fn.emulateTransitionEnd=function(b){var c=!1,d=this;a(this).one("bsTransitionEnd",function(){c=!0});var e=function(){c||a(d).trigger(a.support.transition.end)};return setTimeout(e,b),this},a(function(){a.support.transition=b(),a.support.transition&&(a.event.special.bsTransitionEnd={bindType:a.support.transition.end,delegateType:a.support.transition.end,handle:function(b){if(a(b.target).is(this))return b.handleObj.handler.apply(this,arguments)}})})}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var c=a(this),e=c.data("bs.alert");e||c.data("bs.alert",e=new d(this)),"string"==typeof b&&e[b].call(c)})}var c='[data-dismiss="alert"]',d=function(b){a(b).on("click",c,this.close)};d.VERSION="3.3.7",d.TRANSITION_DURATION=150,d.prototype.close=function(b){function c(){g.detach().trigger("closed.bs.alert").remove()}var e=a(this),f=e.attr("data-target");f||(f=e.attr("href"),f=f&&f.replace(/.*(?=#[^\s]*$)/,""));var g=a("#"===f?[]:f);b&&b.preventDefault(),g.length||(g=e.closest(".alert")),g.trigger(b=a.Event("close.bs.alert")),b.isDefaultPrevented()||(g.removeClass("in"),a.support.transition&&g.hasClass("fade")?g.one("bsTransitionEnd",c).emulateTransitionEnd(d.TRANSITION_DURATION):c())};var e=a.fn.alert;a.fn.alert=b,a.fn.alert.Constructor=d,a.fn.alert.noConflict=function(){return a.fn.alert=e,this},a(document).on("click.bs.alert.data-api",c,d.prototype.close)}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var d=a(this),e=d.data("bs.button"),f="object"==typeof b&&b;e||d.data("bs.button",e=new c(this,f)),"toggle"==b?e.toggle():b&&e.setState(b)})}var c=function(b,d){this.$element=a(b),this.options=a.extend({},c.DEFAULTS,d),this.isLoading=!1};c.VERSION="3.3.7",c.DEFAULTS={loadingText:"loading..."},c.prototype.setState=function(b){var c="disabled",d=this.$element,e=d.is("input")?"val":"html",f=d.data();b+="Text",null==f.resetText&&d.data("resetText",d[e]()),setTimeout(a.proxy(function(){d[e](null==f[b]?this.options[b]:f[b]),"loadingText"==b?(this.isLoading=!0,d.addClass(c).attr(c,c).prop(c,!0)):this.isLoading&&(this.isLoading=!1,d.removeClass(c).removeAttr(c).prop(c,!1))},this),0)},c.prototype.toggle=function(){var a=!0,b=this.$element.closest('[data-toggle="buttons"]');if(b.length){var c=this.$element.find("input");"radio"==c.prop("type")?(c.prop("checked")&&(a=!1),b.find(".active").removeClass("active"),this.$element.addClass("active")):"checkbox"==c.prop("type")&&(c.prop("checked")!==this.$element.hasClass("active")&&(a=!1),this.$element.toggleClass("active")),c.prop("checked",this.$element.hasClass("active")),a&&c.trigger("change")}else this.$element.attr("aria-pressed",!this.$element.hasClass("active")),this.$element.toggleClass("active")};var d=a.fn.button;a.fn.button=b,a.fn.button.Constructor=c,a.fn.button.noConflict=function(){return a.fn.button=d,this},a(document).on("click.bs.button.data-api",'[data-toggle^="button"]',function(c){var d=a(c.target).closest(".btn");b.call(d,"toggle"),a(c.target).is('input[type="radio"], input[type="checkbox"]')||(c.preventDefault(),d.is("input,button")?d.trigger("focus"):d.find("input:visible,button:visible").first().trigger("focus"))}).on("focus.bs.button.data-api blur.bs.button.data-api",'[data-toggle^="button"]',function(b){a(b.target).closest(".btn").toggleClass("focus",/^focus(in)?$/.test(b.type))})}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var d=a(this),e=d.data("bs.carousel"),f=a.extend({},c.DEFAULTS,d.data(),"object"==typeof b&&b),g="string"==typeof b?b:f.slide;e||d.data("bs.carousel",e=new c(this,f)),"number"==typeof b?e.to(b):g?e[g]():f.interval&&e.pause().cycle()})}var c=function(b,c){this.$element=a(b),this.$indicators=this.$element.find(".carousel-indicators"),this.options=c,this.paused=null,this.sliding=null,this.interval=null,this.$active=null,this.$items=null,this.options.keyboard&&this.$element.on("keydown.bs.carousel",a.proxy(this.keydown,this)),"hover"==this.options.pause&&!("ontouchstart"in document.documentElement)&&this.$element.on("mouseenter.bs.carousel",a.proxy(this.pause,this)).on("mouseleave.bs.carousel",a.proxy(this.cycle,this))};c.VERSION="3.3.7",c.TRANSITION_DURATION=600,c.DEFAULTS={interval:5e3,pause:"hover",wrap:!0,keyboard:!0},c.prototype.keydown=function(a){if(!/input|textarea/i.test(a.target.tagName)){switch(a.which){case 37:this.prev();break;case 39:this.next();break;default:return}a.preventDefault()}},c.prototype.cycle=function(b){return b||(this.paused=!1),this.interval&&clearInterval(this.interval),this.options.interval&&!this.paused&&(this.interval=setInterval(a.proxy(this.next,this),this.options.interval)),this},c.prototype.getItemIndex=function(a){return this.$items=a.parent().children(".item"),this.$items.index(a||this.$active)},c.prototype.getItemForDirection=function(a,b){var c=this.getItemIndex(b),d="prev"==a&&0===c||"next"==a&&c==this.$items.length-1;if(d&&!this.options.wrap)return b;var e="prev"==a?-1:1,f=(c+e)%this.$items.length;return this.$items.eq(f)},c.prototype.to=function(a){var b=this,c=this.getItemIndex(this.$active=this.$element.find(".item.active"));if(!(a>this.$items.length-1||a<0))return this.sliding?this.$element.one("slid.bs.carousel",function(){b.to(a)}):c==a?this.pause().cycle():this.slide(a>c?"next":"prev",this.$items.eq(a))},c.prototype.pause=function(b){return b||(this.paused=!0),this.$element.find(".next, .prev").length&&a.support.transition&&(this.$element.trigger(a.support.transition.end),this.cycle(!0)),this.interval=clearInterval(this.interval),this},c.prototype.next=function(){if(!this.sliding)return this.slide("next")},c.prototype.prev=function(){if(!this.sliding)return this.slide("prev")},c.prototype.slide=function(b,d){var e=this.$element.find(".item.active"),f=d||this.getItemForDirection(b,e),g=this.interval,h="next"==b?"left":"right",i=this;if(f.hasClass("active"))return this.sliding=!1;var j=f[0],k=a.Event("slide.bs.carousel",{relatedTarget:j,direction:h});if(this.$element.trigger(k),!k.isDefaultPrevented()){if(this.sliding=!0,g&&this.pause(),this.$indicators.length){this.$indicators.find(".active").removeClass("active");var l=a(this.$indicators.children()[this.getItemIndex(f)]);l&&l.addClass("active")}var m=a.Event("slid.bs.carousel",{relatedTarget:j,direction:h});return a.support.transition&&this.$element.hasClass("slide")?(f.addClass(b),f[0].offsetWidth,e.addClass(h),f.addClass(h),e.one("bsTransitionEnd",function(){f.removeClass([b,h].join(" ")).addClass("active"),e.removeClass(["active",h].join(" ")),i.sliding=!1,setTimeout(function(){i.$element.trigger(m)},0)}).emulateTransitionEnd(c.TRANSITION_DURATION)):(e.removeClass("active"),f.addClass("active"),this.sliding=!1,this.$element.trigger(m)),g&&this.cycle(),this}};var d=a.fn.carousel;a.fn.carousel=b,a.fn.carousel.Constructor=c,a.fn.carousel.noConflict=function(){return a.fn.carousel=d,this};var e=function(c){var d,e=a(this),f=a(e.attr("data-target")||(d=e.attr("href"))&&d.replace(/.*(?=#[^\s]+$)/,""));if(f.hasClass("carousel")){var g=a.extend({},f.data(),e.data()),h=e.attr("data-slide-to");h&&(g.interval=!1),b.call(f,g),h&&f.data("bs.carousel").to(h),c.preventDefault()}};a(document).on("click.bs.carousel.data-api","[data-slide]",e).on("click.bs.carousel.data-api","[data-slide-to]",e),a(window).on("load",function(){a('[data-ride="carousel"]').each(function(){var c=a(this);b.call(c,c.data())})})}(jQuery),+function(a){"use strict";function b(b){var c,d=b.attr("data-target")||(c=b.attr("href"))&&c.replace(/.*(?=#[^\s]+$)/,"");return a(d)}function c(b){return this.each(function(){var c=a(this),e=c.data("bs.collapse"),f=a.extend({},d.DEFAULTS,c.data(),"object"==typeof b&&b);!e&&f.toggle&&/show|hide/.test(b)&&(f.toggle=!1),e||c.data("bs.collapse",e=new d(this,f)),"string"==typeof b&&e[b]()})}var d=function(b,c){this.$element=a(b),this.options=a.extend({},d.DEFAULTS,c),this.$trigger=a('[data-toggle="collapse"][href="#'+b.id+'"],[data-toggle="collapse"][data-target="#'+b.id+'"]'),this.transitioning=null,this.options.parent?this.$parent=this.getParent():this.addAriaAndCollapsedClass(this.$element,this.$trigger),this.options.toggle&&this.toggle()};d.VERSION="3.3.7",d.TRANSITION_DURATION=350,d.DEFAULTS={toggle:!0},d.prototype.dimension=function(){var a=this.$element.hasClass("width");return a?"width":"height"},d.prototype.show=function(){if(!this.transitioning&&!this.$element.hasClass("in")){var b,e=this.$parent&&this.$parent.children(".panel").children(".in, .collapsing");if(!(e&&e.length&&(b=e.data("bs.collapse"),b&&b.transitioning))){var f=a.Event("show.bs.collapse");if(this.$element.trigger(f),!f.isDefaultPrevented()){e&&e.length&&(c.call(e,"hide"),b||e.data("bs.collapse",null));var g=this.dimension();this.$element.removeClass("collapse").addClass("collapsing")[g](0).attr("aria-expanded",!0),this.$trigger.removeClass("collapsed").attr("aria-expanded",!0),this.transitioning=1;var h=function(){this.$element.removeClass("collapsing").addClass("collapse in")[g](""),this.transitioning=0,this.$element.trigger("shown.bs.collapse")};if(!a.support.transition)return h.call(this);var i=a.camelCase(["scroll",g].join("-"));this.$element.one("bsTransitionEnd",a.proxy(h,this)).emulateTransitionEnd(d.TRANSITION_DURATION)[g](this.$element[0][i])}}}},d.prototype.hide=function(){if(!this.transitioning&&this.$element.hasClass("in")){var b=a.Event("hide.bs.collapse");if(this.$element.trigger(b),!b.isDefaultPrevented()){var c=this.dimension();this.$element[c](this.$element[c]())[0].offsetHeight,this.$element.addClass("collapsing").removeClass("collapse in").attr("aria-expanded",!1),this.$trigger.addClass("collapsed").attr("aria-expanded",!1),this.transitioning=1;var e=function(){this.transitioning=0,this.$element.removeClass("collapsing").addClass("collapse").trigger("hidden.bs.collapse")};return a.support.transition?void this.$element[c](0).one("bsTransitionEnd",a.proxy(e,this)).emulateTransitionEnd(d.TRANSITION_DURATION):e.call(this)}}},d.prototype.toggle=function(){this[this.$element.hasClass("in")?"hide":"show"]()},d.prototype.getParent=function(){return a(this.options.parent).find('[data-toggle="collapse"][data-parent="'+this.options.parent+'"]').each(a.proxy(function(c,d){var e=a(d);this.addAriaAndCollapsedClass(b(e),e)},this)).end()},d.prototype.addAriaAndCollapsedClass=function(a,b){var c=a.hasClass("in");a.attr("aria-expanded",c),b.toggleClass("collapsed",!c).attr("aria-expanded",c)};var e=a.fn.collapse;a.fn.collapse=c,a.fn.collapse.Constructor=d,a.fn.collapse.noConflict=function(){return a.fn.collapse=e,this},a(document).on("click.bs.collapse.data-api",'[data-toggle="collapse"]',function(d){var e=a(this);e.attr("data-target")||d.preventDefault();var f=b(e),g=f.data("bs.collapse"),h=g?"toggle":e.data();c.call(f,h)})}(jQuery),+function(a){"use strict";function b(b){var c=b.attr("data-target");c||(c=b.attr("href"),c=c&&/#[A-Za-z]/.test(c)&&c.replace(/.*(?=#[^\s]*$)/,""));var d=c&&a(c);return d&&d.length?d:b.parent()}function c(c){c&&3===c.which||(a(e).remove(),a(f).each(function(){var d=a(this),e=b(d),f={relatedTarget:this};e.hasClass("open")&&(c&&"click"==c.type&&/input|textarea/i.test(c.target.tagName)&&a.contains(e[0],c.target)||(e.trigger(c=a.Event("hide.bs.dropdown",f)),c.isDefaultPrevented()||(d.attr("aria-expanded","false"),e.removeClass("open").trigger(a.Event("hidden.bs.dropdown",f)))))}))}function d(b){return this.each(function(){var c=a(this),d=c.data("bs.dropdown");d||c.data("bs.dropdown",d=new g(this)),"string"==typeof b&&d[b].call(c)})}var e=".dropdown-backdrop",f='[data-toggle="dropdown"]',g=function(b){a(b).on("click.bs.dropdown",this.toggle)};g.VERSION="3.3.7",g.prototype.toggle=function(d){var e=a(this);if(!e.is(".disabled, :disabled")){var f=b(e),g=f.hasClass("open");if(c(),!g){"ontouchstart"in document.documentElement&&!f.closest(".navbar-nav").length&&a(document.createElement("div")).addClass("dropdown-backdrop").insertAfter(a(this)).on("click",c);var h={relatedTarget:this};if(f.trigger(d=a.Event("show.bs.dropdown",h)),d.isDefaultPrevented())return;e.trigger("focus").attr("aria-expanded","true"),f.toggleClass("open").trigger(a.Event("shown.bs.dropdown",h))}return!1}},g.prototype.keydown=function(c){if(/(38|40|27|32)/.test(c.which)&&!/input|textarea/i.test(c.target.tagName)){var d=a(this);if(c.preventDefault(),c.stopPropagation(),!d.is(".disabled, :disabled")){var e=b(d),g=e.hasClass("open");if(!g&&27!=c.which||g&&27==c.which)return 27==c.which&&e.find(f).trigger("focus"),d.trigger("click");var h=" li:not(.disabled):visible a",i=e.find(".dropdown-menu"+h);if(i.length){var j=i.index(c.target);38==c.which&&j>0&&j--,40==c.which&&j<i.length-1&&j++,~j||(j=0),i.eq(j).trigger("focus")}}}};var h=a.fn.dropdown;a.fn.dropdown=d,a.fn.dropdown.Constructor=g,a.fn.dropdown.noConflict=function(){return a.fn.dropdown=h,this},a(document).on("click.bs.dropdown.data-api",c).on("click.bs.dropdown.data-api",".dropdown form",function(a){a.stopPropagation()}).on("click.bs.dropdown.data-api",f,g.prototype.toggle).on("keydown.bs.dropdown.data-api",f,g.prototype.keydown).on("keydown.bs.dropdown.data-api",".dropdown-menu",g.prototype.keydown)}(jQuery),+function(a){"use strict";function b(b,d){return this.each(function(){var e=a(this),f=e.data("bs.modal"),g=a.extend({},c.DEFAULTS,e.data(),"object"==typeof b&&b);f||e.data("bs.modal",f=new c(this,g)),"string"==typeof b?f[b](d):g.show&&f.show(d)})}var c=function(b,c){this.options=c,this.$body=a(document.body),this.$element=a(b),this.$dialog=this.$element.find(".modal-dialog"),this.$backdrop=null,this.isShown=null,this.originalBodyPad=null,this.scrollbarWidth=0,this.ignoreBackdropClick=!1,this.options.remote&&this.$element.find(".modal-content").load(this.options.remote,a.proxy(function(){this.$element.trigger("loaded.bs.modal")},this))};c.VERSION="3.3.7",c.TRANSITION_DURATION=300,c.BACKDROP_TRANSITION_DURATION=150,c.DEFAULTS={backdrop:!0,keyboard:!0,show:!0},c.prototype.toggle=function(a){return this.isShown?this.hide():this.show(a)},c.prototype.show=function(b){var d=this,e=a.Event("show.bs.modal",{relatedTarget:b});this.$element.trigger(e),this.isShown||e.isDefaultPrevented()||(this.isShown=!0,this.checkScrollbar(),this.setScrollbar(),this.$body.addClass("modal-open"),this.escape(),this.resize(),this.$element.on("click.dismiss.bs.modal",'[data-dismiss="modal"]',a.proxy(this.hide,this)),this.$dialog.on("mousedown.dismiss.bs.modal",function(){d.$element.one("mouseup.dismiss.bs.modal",function(b){a(b.target).is(d.$element)&&(d.ignoreBackdropClick=!0)})}),this.backdrop(function(){var e=a.support.transition&&d.$element.hasClass("fade");d.$element.parent().length||d.$element.appendTo(d.$body),d.$element.show().scrollTop(0),d.adjustDialog(),e&&d.$element[0].offsetWidth,d.$element.addClass("in"),d.enforceFocus();var f=a.Event("shown.bs.modal",{relatedTarget:b});e?d.$dialog.one("bsTransitionEnd",function(){d.$element.trigger("focus").trigger(f)}).emulateTransitionEnd(c.TRANSITION_DURATION):d.$element.trigger("focus").trigger(f)}))},c.prototype.hide=function(b){b&&b.preventDefault(),b=a.Event("hide.bs.modal"),this.$element.trigger(b),this.isShown&&!b.isDefaultPrevented()&&(this.isShown=!1,this.escape(),this.resize(),a(document).off("focusin.bs.modal"),this.$element.removeClass("in").off("click.dismiss.bs.modal").off("mouseup.dismiss.bs.modal"),this.$dialog.off("mousedown.dismiss.bs.modal"),a.support.transition&&this.$element.hasClass("fade")?this.$element.one("bsTransitionEnd",a.proxy(this.hideModal,this)).emulateTransitionEnd(c.TRANSITION_DURATION):this.hideModal())},c.prototype.enforceFocus=function(){a(document).off("focusin.bs.modal").on("focusin.bs.modal",a.proxy(function(a){document===a.target||this.$element[0]===a.target||this.$element.has(a.target).length||this.$element.trigger("focus")},this))},c.prototype.escape=function(){this.isShown&&this.options.keyboard?this.$element.on("keydown.dismiss.bs.modal",a.proxy(function(a){27==a.which&&this.hide()},this)):this.isShown||this.$element.off("keydown.dismiss.bs.modal")},c.prototype.resize=function(){this.isShown?a(window).on("resize.bs.modal",a.proxy(this.handleUpdate,this)):a(window).off("resize.bs.modal")},c.prototype.hideModal=function(){var a=this;this.$element.hide(),this.backdrop(function(){a.$body.removeClass("modal-open"),a.resetAdjustments(),a.resetScrollbar(),a.$element.trigger("hidden.bs.modal")})},c.prototype.removeBackdrop=function(){this.$backdrop&&this.$backdrop.remove(),this.$backdrop=null},c.prototype.backdrop=function(b){var d=this,e=this.$element.hasClass("fade")?"fade":"";if(this.isShown&&this.options.backdrop){var f=a.support.transition&&e;if(this.$backdrop=a(document.createElement("div")).addClass("modal-backdrop "+e).appendTo(this.$body),this.$element.on("click.dismiss.bs.modal",a.proxy(function(a){return this.ignoreBackdropClick?void(this.ignoreBackdropClick=!1):void(a.target===a.currentTarget&&("static"==this.options.backdrop?this.$element[0].focus():this.hide()))},this)),f&&this.$backdrop[0].offsetWidth,this.$backdrop.addClass("in"),!b)return;f?this.$backdrop.one("bsTransitionEnd",b).emulateTransitionEnd(c.BACKDROP_TRANSITION_DURATION):b()}else if(!this.isShown&&this.$backdrop){this.$backdrop.removeClass("in");var g=function(){d.removeBackdrop(),b&&b()};a.support.transition&&this.$element.hasClass("fade")?this.$backdrop.one("bsTransitionEnd",g).emulateTransitionEnd(c.BACKDROP_TRANSITION_DURATION):g()}else b&&b()},c.prototype.handleUpdate=function(){this.adjustDialog()},c.prototype.adjustDialog=function(){var a=this.$element[0].scrollHeight>document.documentElement.clientHeight;this.$element.css({paddingLeft:!this.bodyIsOverflowing&&a?this.scrollbarWidth:"",paddingRight:this.bodyIsOverflowing&&!a?this.scrollbarWidth:""})},c.prototype.resetAdjustments=function(){this.$element.css({paddingLeft:"",paddingRight:""})},c.prototype.checkScrollbar=function(){var a=window.innerWidth;if(!a){var b=document.documentElement.getBoundingClientRect();a=b.right-Math.abs(b.left)}this.bodyIsOverflowing=document.body.clientWidth<a,this.scrollbarWidth=this.measureScrollbar()},c.prototype.setScrollbar=function(){var a=parseInt(this.$body.css("padding-right")||0,10);this.originalBodyPad=document.body.style.paddingRight||"",this.bodyIsOverflowing&&this.$body.css("padding-right",a+this.scrollbarWidth)},c.prototype.resetScrollbar=function(){this.$body.css("padding-right",this.originalBodyPad)},c.prototype.measureScrollbar=function(){var a=document.createElement("div");a.className="modal-scrollbar-measure",this.$body.append(a);var b=a.offsetWidth-a.clientWidth;return this.$body[0].removeChild(a),b};var d=a.fn.modal;a.fn.modal=b,a.fn.modal.Constructor=c,a.fn.modal.noConflict=function(){return a.fn.modal=d,this},a(document).on("click.bs.modal.data-api",'[data-toggle="modal"]',function(c){var d=a(this),e=d.attr("href"),f=a(d.attr("data-target")||e&&e.replace(/.*(?=#[^\s]+$)/,"")),g=f.data("bs.modal")?"toggle":a.extend({remote:!/#/.test(e)&&e},f.data(),d.data());d.is("a")&&c.preventDefault(),f.one("show.bs.modal",function(a){a.isDefaultPrevented()||f.one("hidden.bs.modal",function(){d.is(":visible")&&d.trigger("focus")})}),b.call(f,g,this)})}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var d=a(this),e=d.data("bs.tooltip"),f="object"==typeof b&&b;!e&&/destroy|hide/.test(b)||(e||d.data("bs.tooltip",e=new c(this,f)),"string"==typeof b&&e[b]())})}var c=function(a,b){this.type=null,this.options=null,this.enabled=null,this.timeout=null,this.hoverState=null,this.$element=null,this.inState=null,this.init("tooltip",a,b)};c.VERSION="3.3.7",c.TRANSITION_DURATION=150,c.DEFAULTS={animation:!0,placement:"top",selector:!1,template:'<div class="tooltip" role="tooltip"><div class="tooltip-arrow"></div><div class="tooltip-inner"></div></div>',trigger:"hover focus",title:"",delay:0,html:!1,container:!1,viewport:{selector:"body",padding:0}},c.prototype.init=function(b,c,d){if(this.enabled=!0,this.type=b,this.$element=a(c),this.options=this.getOptions(d),this.$viewport=this.options.viewport&&a(a.isFunction(this.options.viewport)?this.options.viewport.call(this,this.$element):this.options.viewport.selector||this.options.viewport),this.inState={click:!1,hover:!1,focus:!1},this.$element[0]instanceof document.constructor&&!this.options.selector)throw new Error("`selector` option must be specified when initializing "+this.type+" on the window.document object!");for(var e=this.options.trigger.split(" "),f=e.length;f--;){var g=e[f];if("click"==g)this.$element.on("click."+this.type,this.options.selector,a.proxy(this.toggle,this));else if("manual"!=g){var h="hover"==g?"mouseenter":"focusin",i="hover"==g?"mouseleave":"focusout";this.$element.on(h+"."+this.type,this.options.selector,a.proxy(this.enter,this)),this.$element.on(i+"."+this.type,this.options.selector,a.proxy(this.leave,this))}}this.options.selector?this._options=a.extend({},this.options,{trigger:"manual",selector:""}):this.fixTitle()},c.prototype.getDefaults=function(){return c.DEFAULTS},c.prototype.getOptions=function(b){return b=a.extend({},this.getDefaults(),this.$element.data(),b),b.delay&&"number"==typeof b.delay&&(b.delay={show:b.delay,hide:b.delay}),b},c.prototype.getDelegateOptions=function(){var b={},c=this.getDefaults();return this._options&&a.each(this._options,function(a,d){c[a]!=d&&(b[a]=d)}),b},c.prototype.enter=function(b){var c=b instanceof this.constructor?b:a(b.currentTarget).data("bs."+this.type);return c||(c=new this.constructor(b.currentTarget,this.getDelegateOptions()),a(b.currentTarget).data("bs."+this.type,c)),b instanceof a.Event&&(c.inState["focusin"==b.type?"focus":"hover"]=!0),c.tip().hasClass("in")||"in"==c.hoverState?void(c.hoverState="in"):(clearTimeout(c.timeout),c.hoverState="in",c.options.delay&&c.options.delay.show?void(c.timeout=setTimeout(function(){"in"==c.hoverState&&c.show()},c.options.delay.show)):c.show())},c.prototype.isInStateTrue=function(){for(var a in this.inState)if(this.inState[a])return!0;return!1},c.prototype.leave=function(b){var c=b instanceof this.constructor?b:a(b.currentTarget).data("bs."+this.type);if(c||(c=new this.constructor(b.currentTarget,this.getDelegateOptions()),a(b.currentTarget).data("bs."+this.type,c)),b instanceof a.Event&&(c.inState["focusout"==b.type?"focus":"hover"]=!1),!c.isInStateTrue())return clearTimeout(c.timeout),c.hoverState="out",c.options.delay&&c.options.delay.hide?void(c.timeout=setTimeout(function(){"out"==c.hoverState&&c.hide()},c.options.delay.hide)):c.hide()},c.prototype.show=function(){var b=a.Event("show.bs."+this.type);if(this.hasContent()&&this.enabled){this.$element.trigger(b);var d=a.contains(this.$element[0].ownerDocument.documentElement,this.$element[0]);if(b.isDefaultPrevented()||!d)return;var e=this,f=this.tip(),g=this.getUID(this.type);this.setContent(),f.attr("id",g),this.$element.attr("aria-describedby",g),this.options.animation&&f.addClass("fade");var h="function"==typeof this.options.placement?this.options.placement.call(this,f[0],this.$element[0]):this.options.placement,i=/\s?auto?\s?/i,j=i.test(h);j&&(h=h.replace(i,"")||"top"),f.detach().css({top:0,left:0,display:"block"}).addClass(h).data("bs."+this.type,this),this.options.container?f.appendTo(this.options.container):f.insertAfter(this.$element),this.$element.trigger("inserted.bs."+this.type);var k=this.getPosition(),l=f[0].offsetWidth,m=f[0].offsetHeight;if(j){var n=h,o=this.getPosition(this.$viewport);h="bottom"==h&&k.bottom+m>o.bottom?"top":"top"==h&&k.top-m<o.top?"bottom":"right"==h&&k.right+l>o.width?"left":"left"==h&&k.left-l<o.left?"right":h,f.removeClass(n).addClass(h)}var p=this.getCalculatedOffset(h,k,l,m);this.applyPlacement(p,h);var q=function(){var a=e.hoverState;e.$element.trigger("shown.bs."+e.type),e.hoverState=null,"out"==a&&e.leave(e)};a.support.transition&&this.$tip.hasClass("fade")?f.one("bsTransitionEnd",q).emulateTransitionEnd(c.TRANSITION_DURATION):q()}},c.prototype.applyPlacement=function(b,c){var d=this.tip(),e=d[0].offsetWidth,f=d[0].offsetHeight,g=parseInt(d.css("margin-top"),10),h=parseInt(d.css("margin-left"),10);isNaN(g)&&(g=0),isNaN(h)&&(h=0),b.top+=g,b.left+=h,a.offset.setOffset(d[0],a.extend({using:function(a){d.css({top:Math.round(a.top),left:Math.round(a.left)})}},b),0),d.addClass("in");var i=d[0].offsetWidth,j=d[0].offsetHeight;"top"==c&&j!=f&&(b.top=b.top+f-j);var k=this.getViewportAdjustedDelta(c,b,i,j);k.left?b.left+=k.left:b.top+=k.top;var l=/top|bottom/.test(c),m=l?2*k.left-e+i:2*k.top-f+j,n=l?"offsetWidth":"offsetHeight";d.offset(b),this.replaceArrow(m,d[0][n],l)},c.prototype.replaceArrow=function(a,b,c){this.arrow().css(c?"left":"top",50*(1-a/b)+"%").css(c?"top":"left","")},c.prototype.setContent=function(){var a=this.tip(),b=this.getTitle();a.find(".tooltip-inner")[this.options.html?"html":"text"](b),a.removeClass("fade in top bottom left right")},c.prototype.hide=function(b){function d(){"in"!=e.hoverState&&f.detach(),e.$element&&e.$element.removeAttr("aria-describedby").trigger("hidden.bs."+e.type),b&&b()}var e=this,f=a(this.$tip),g=a.Event("hide.bs."+this.type);if(this.$element.trigger(g),!g.isDefaultPrevented())return f.removeClass("in"),a.support.transition&&f.hasClass("fade")?f.one("bsTransitionEnd",d).emulateTransitionEnd(c.TRANSITION_DURATION):d(),this.hoverState=null,this},c.prototype.fixTitle=function(){var a=this.$element;(a.attr("title")||"string"!=typeof a.attr("data-original-title"))&&a.attr("data-original-title",a.attr("title")||"").attr("title","")},c.prototype.hasContent=function(){return this.getTitle()},c.prototype.getPosition=function(b){b=b||this.$element;var c=b[0],d="BODY"==c.tagName,e=c.getBoundingClientRect();null==e.width&&(e=a.extend({},e,{width:e.right-e.left,height:e.bottom-e.top}));var f=window.SVGElement&&c instanceof window.SVGElement,g=d?{top:0,left:0}:f?null:b.offset(),h={scroll:d?document.documentElement.scrollTop||document.body.scrollTop:b.scrollTop()},i=d?{width:a(window).width(),height:a(window).height()}:null;return a.extend({},e,h,i,g)},c.prototype.getCalculatedOffset=function(a,b,c,d){return"bottom"==a?{top:b.top+b.height,left:b.left+b.width/2-c/2}:"top"==a?{top:b.top-d,left:b.left+b.width/2-c/2}:"left"==a?{top:b.top+b.height/2-d/2,left:b.left-c}:{top:b.top+b.height/2-d/2,left:b.left+b.width}},c.prototype.getViewportAdjustedDelta=function(a,b,c,d){var e={top:0,left:0};if(!this.$viewport)return e;var f=this.options.viewport&&this.options.viewport.padding||0,g=this.getPosition(this.$viewport);if(/right|left/.test(a)){var h=b.top-f-g.scroll,i=b.top+f-g.scroll+d;h<g.top?e.top=g.top-h:i>g.top+g.height&&(e.top=g.top+g.height-i)}else{var j=b.left-f,k=b.left+f+c;j<g.left?e.left=g.left-j:k>g.right&&(e.left=g.left+g.width-k)}return e},c.prototype.getTitle=function(){var a,b=this.$element,c=this.options;return a=b.attr("data-original-title")||("function"==typeof c.title?c.title.call(b[0]):c.title)},c.prototype.getUID=function(a){do a+=~~(1e6*Math.random());while(document.getElementById(a));return a},c.prototype.tip=function(){if(!this.$tip&&(this.$tip=a(this.options.template),1!=this.$tip.length))throw new Error(this.type+" `template` option must consist of exactly 1 top-level element!");return this.$tip},c.prototype.arrow=function(){return this.$arrow=this.$arrow||this.tip().find(".tooltip-arrow")},c.prototype.enable=function(){this.enabled=!0},c.prototype.disable=function(){this.enabled=!1},c.prototype.toggleEnabled=function(){this.enabled=!this.enabled},c.prototype.toggle=function(b){var c=this;b&&(c=a(b.currentTarget).data("bs."+this.type),c||(c=new this.constructor(b.currentTarget,this.getDelegateOptions()),a(b.currentTarget).data("bs."+this.type,c))),b?(c.inState.click=!c.inState.click,c.isInStateTrue()?c.enter(c):c.leave(c)):c.tip().hasClass("in")?c.leave(c):c.enter(c)},c.prototype.destroy=function(){var a=this;clearTimeout(this.timeout),this.hide(function(){a.$element.off("."+a.type).removeData("bs."+a.type),a.$tip&&a.$tip.detach(),a.$tip=null,a.$arrow=null,a.$viewport=null,a.$element=null})};var d=a.fn.tooltip;a.fn.tooltip=b,a.fn.tooltip.Constructor=c,a.fn.tooltip.noConflict=function(){return a.fn.tooltip=d,this}}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var d=a(this),e=d.data("bs.popover"),f="object"==typeof b&&b;!e&&/destroy|hide/.test(b)||(e||d.data("bs.popover",e=new c(this,f)),"string"==typeof b&&e[b]())})}var c=function(a,b){this.init("popover",a,b)};if(!a.fn.tooltip)throw new Error("Popover requires tooltip.js");c.VERSION="3.3.7",c.DEFAULTS=a.extend({},a.fn.tooltip.Constructor.DEFAULTS,{placement:"right",trigger:"click",content:"",template:'<div class="popover" role="tooltip"><div class="arrow"></div><h3 class="popover-title"></h3><div class="popover-content"></div></div>'}),c.prototype=a.extend({},a.fn.tooltip.Constructor.prototype),c.prototype.constructor=c,c.prototype.getDefaults=function(){return c.DEFAULTS},c.prototype.setContent=function(){var a=this.tip(),b=this.getTitle(),c=this.getContent();a.find(".popover-title")[this.options.html?"html":"text"](b),a.find(".popover-content").children().detach().end()[this.options.html?"string"==typeof c?"html":"append":"text"](c),a.removeClass("fade top bottom left right in"),a.find(".popover-title").html()||a.find(".popover-title").hide()},c.prototype.hasContent=function(){return this.getTitle()||this.getContent()},c.prototype.getContent=function(){var a=this.$element,b=this.options;return a.attr("data-content")||("function"==typeof b.content?b.content.call(a[0]):b.content)},c.prototype.arrow=function(){return this.$arrow=this.$arrow||this.tip().find(".arrow")};var d=a.fn.popover;a.fn.popover=b,a.fn.popover.Constructor=c,a.fn.popover.noConflict=function(){return a.fn.popover=d,this}}(jQuery),+function(a){"use strict";function b(c,d){this.$body=a(document.body),this.$scrollElement=a(a(c).is(document.body)?window:c),this.options=a.extend({},b.DEFAULTS,d),this.selector=(this.options.target||"")+" .nav li > a",this.offsets=[],this.targets=[],this.activeTarget=null,this.scrollHeight=0,this.$scrollElement.on("scroll.bs.scrollspy",a.proxy(this.process,this)),this.refresh(),this.process()}function c(c){return this.each(function(){var d=a(this),e=d.data("bs.scrollspy"),f="object"==typeof c&&c;e||d.data("bs.scrollspy",e=new b(this,f)),"string"==typeof c&&e[c]()})}b.VERSION="3.3.7",b.DEFAULTS={offset:10},b.prototype.getScrollHeight=function(){return this.$scrollElement[0].scrollHeight||Math.max(this.$body[0].scrollHeight,document.documentElement.scrollHeight)},b.prototype.refresh=function(){var b=this,c="offset",d=0;this.offsets=[],this.targets=[],this.scrollHeight=this.getScrollHeight(),a.isWindow(this.$scrollElement[0])||(c="position",d=this.$scrollElement.scrollTop()),this.$body.find(this.selector).map(function(){var b=a(this),e=b.data("target")||b.attr("href"),f=/^#./.test(e)&&a(e);return f&&f.length&&f.is(":visible")&&[[f[c]().top+d,e]]||null}).sort(function(a,b){return a[0]-b[0]}).each(function(){b.offsets.push(this[0]),b.targets.push(this[1])})},b.prototype.process=function(){var a,b=this.$scrollElement.scrollTop()+this.options.offset,c=this.getScrollHeight(),d=this.options.offset+c-this.$scrollElement.height(),e=this.offsets,f=this.targets,g=this.activeTarget;if(this.scrollHeight!=c&&this.refresh(),b>=d)return g!=(a=f[f.length-1])&&this.activate(a);if(g&&b<e[0])return this.activeTarget=null,this.clear();for(a=e.length;a--;)g!=f[a]&&b>=e[a]&&(void 0===e[a+1]||b<e[a+1])&&this.activate(f[a])},b.prototype.activate=function(b){ -this.activeTarget=b,this.clear();var c=this.selector+'[data-target="'+b+'"],'+this.selector+'[href="'+b+'"]',d=a(c).parents("li").addClass("active");d.parent(".dropdown-menu").length&&(d=d.closest("li.dropdown").addClass("active")),d.trigger("activate.bs.scrollspy")},b.prototype.clear=function(){a(this.selector).parentsUntil(this.options.target,".active").removeClass("active")};var d=a.fn.scrollspy;a.fn.scrollspy=c,a.fn.scrollspy.Constructor=b,a.fn.scrollspy.noConflict=function(){return a.fn.scrollspy=d,this},a(window).on("load.bs.scrollspy.data-api",function(){a('[data-spy="scroll"]').each(function(){var b=a(this);c.call(b,b.data())})})}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var d=a(this),e=d.data("bs.tab");e||d.data("bs.tab",e=new c(this)),"string"==typeof b&&e[b]()})}var c=function(b){this.element=a(b)};c.VERSION="3.3.7",c.TRANSITION_DURATION=150,c.prototype.show=function(){var b=this.element,c=b.closest("ul:not(.dropdown-menu)"),d=b.data("target");if(d||(d=b.attr("href"),d=d&&d.replace(/.*(?=#[^\s]*$)/,"")),!b.parent("li").hasClass("active")){var e=c.find(".active:last a"),f=a.Event("hide.bs.tab",{relatedTarget:b[0]}),g=a.Event("show.bs.tab",{relatedTarget:e[0]});if(e.trigger(f),b.trigger(g),!g.isDefaultPrevented()&&!f.isDefaultPrevented()){var h=a(d);this.activate(b.closest("li"),c),this.activate(h,h.parent(),function(){e.trigger({type:"hidden.bs.tab",relatedTarget:b[0]}),b.trigger({type:"shown.bs.tab",relatedTarget:e[0]})})}}},c.prototype.activate=function(b,d,e){function f(){g.removeClass("active").find("> .dropdown-menu > .active").removeClass("active").end().find('[data-toggle="tab"]').attr("aria-expanded",!1),b.addClass("active").find('[data-toggle="tab"]').attr("aria-expanded",!0),h?(b[0].offsetWidth,b.addClass("in")):b.removeClass("fade"),b.parent(".dropdown-menu").length&&b.closest("li.dropdown").addClass("active").end().find('[data-toggle="tab"]').attr("aria-expanded",!0),e&&e()}var g=d.find("> .active"),h=e&&a.support.transition&&(g.length&&g.hasClass("fade")||!!d.find("> .fade").length);g.length&&h?g.one("bsTransitionEnd",f).emulateTransitionEnd(c.TRANSITION_DURATION):f(),g.removeClass("in")};var d=a.fn.tab;a.fn.tab=b,a.fn.tab.Constructor=c,a.fn.tab.noConflict=function(){return a.fn.tab=d,this};var e=function(c){c.preventDefault(),b.call(a(this),"show")};a(document).on("click.bs.tab.data-api",'[data-toggle="tab"]',e).on("click.bs.tab.data-api",'[data-toggle="pill"]',e)}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var d=a(this),e=d.data("bs.affix"),f="object"==typeof b&&b;e||d.data("bs.affix",e=new c(this,f)),"string"==typeof b&&e[b]()})}var c=function(b,d){this.options=a.extend({},c.DEFAULTS,d),this.$target=a(this.options.target).on("scroll.bs.affix.data-api",a.proxy(this.checkPosition,this)).on("click.bs.affix.data-api",a.proxy(this.checkPositionWithEventLoop,this)),this.$element=a(b),this.affixed=null,this.unpin=null,this.pinnedOffset=null,this.checkPosition()};c.VERSION="3.3.7",c.RESET="affix affix-top affix-bottom",c.DEFAULTS={offset:0,target:window},c.prototype.getState=function(a,b,c,d){var e=this.$target.scrollTop(),f=this.$element.offset(),g=this.$target.height();if(null!=c&&"top"==this.affixed)return e<c&&"top";if("bottom"==this.affixed)return null!=c?!(e+this.unpin<=f.top)&&"bottom":!(e+g<=a-d)&&"bottom";var h=null==this.affixed,i=h?e:f.top,j=h?g:b;return null!=c&&e<=c?"top":null!=d&&i+j>=a-d&&"bottom"},c.prototype.getPinnedOffset=function(){if(this.pinnedOffset)return this.pinnedOffset;this.$element.removeClass(c.RESET).addClass("affix");var a=this.$target.scrollTop(),b=this.$element.offset();return this.pinnedOffset=b.top-a},c.prototype.checkPositionWithEventLoop=function(){setTimeout(a.proxy(this.checkPosition,this),1)},c.prototype.checkPosition=function(){if(this.$element.is(":visible")){var b=this.$element.height(),d=this.options.offset,e=d.top,f=d.bottom,g=Math.max(a(document).height(),a(document.body).height());"object"!=typeof d&&(f=e=d),"function"==typeof e&&(e=d.top(this.$element)),"function"==typeof f&&(f=d.bottom(this.$element));var h=this.getState(g,b,e,f);if(this.affixed!=h){null!=this.unpin&&this.$element.css("top","");var i="affix"+(h?"-"+h:""),j=a.Event(i+".bs.affix");if(this.$element.trigger(j),j.isDefaultPrevented())return;this.affixed=h,this.unpin="bottom"==h?this.getPinnedOffset():null,this.$element.removeClass(c.RESET).addClass(i).trigger(i.replace("affix","affixed")+".bs.affix")}"bottom"==h&&this.$element.offset({top:g-b-f})}};var d=a.fn.affix;a.fn.affix=b,a.fn.affix.Constructor=c,a.fn.affix.noConflict=function(){return a.fn.affix=d,this},a(window).on("load",function(){a('[data-spy="affix"]').each(function(){var c=a(this),d=c.data();d.offset=d.offset||{},null!=d.offsetBottom&&(d.offset.bottom=d.offsetBottom),null!=d.offsetTop&&(d.offset.top=d.offsetTop),b.call(c,d)})})}(jQuery); \ No newline at end of file diff --git a/admin/bower_components/bootstrap/dist/js/npm.js b/admin/bower_components/bootstrap/dist/js/npm.js deleted file mode 100644 index bf6aa80..0000000 --- a/admin/bower_components/bootstrap/dist/js/npm.js +++ /dev/null @@ -1,13 +0,0 @@ -// This file is autogenerated via the `commonjs` Grunt task. You can require() this file in a CommonJS environment. -require('../../js/transition.js') -require('../../js/alert.js') -require('../../js/button.js') -require('../../js/carousel.js') -require('../../js/collapse.js') -require('../../js/dropdown.js') -require('../../js/modal.js') -require('../../js/tooltip.js') -require('../../js/popover.js') -require('../../js/scrollspy.js') -require('../../js/tab.js') -require('../../js/affix.js') \ No newline at end of file diff --git a/admin/bower_components/bootstrap/fonts/glyphicons-halflings-regular.eot b/admin/bower_components/bootstrap/fonts/glyphicons-halflings-regular.eot deleted file mode 100644 index b93a495..0000000 Binary files a/admin/bower_components/bootstrap/fonts/glyphicons-halflings-regular.eot and /dev/null differ diff --git a/admin/bower_components/bootstrap/fonts/glyphicons-halflings-regular.svg b/admin/bower_components/bootstrap/fonts/glyphicons-halflings-regular.svg deleted file mode 100644 index 94fb549..0000000 --- a/admin/bower_components/bootstrap/fonts/glyphicons-halflings-regular.svg +++ /dev/null @@ -1,288 +0,0 @@ -<?xml version="1.0" standalone="no"?> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" > -<svg xmlns="http://www.w3.org/2000/svg"> -<metadata></metadata> -<defs> -<font id="glyphicons_halflingsregular" horiz-adv-x="1200" > -<font-face units-per-em="1200" ascent="960" descent="-240" /> -<missing-glyph horiz-adv-x="500" /> -<glyph horiz-adv-x="0" /> -<glyph horiz-adv-x="400" /> -<glyph unicode=" " /> -<glyph unicode="*" d="M600 1100q15 0 34 -1.5t30 -3.5l11 -1q10 -2 17.5 -10.5t7.5 -18.5v-224l158 158q7 7 18 8t19 -6l106 -106q7 -8 6 -19t-8 -18l-158 -158h224q10 0 18.5 -7.5t10.5 -17.5q6 -41 6 -75q0 -15 -1.5 -34t-3.5 -30l-1 -11q-2 -10 -10.5 -17.5t-18.5 -7.5h-224l158 -158 q7 -7 8 -18t-6 -19l-106 -106q-8 -7 -19 -6t-18 8l-158 158v-224q0 -10 -7.5 -18.5t-17.5 -10.5q-41 -6 -75 -6q-15 0 -34 1.5t-30 3.5l-11 1q-10 2 -17.5 10.5t-7.5 18.5v224l-158 -158q-7 -7 -18 -8t-19 6l-106 106q-7 8 -6 19t8 18l158 158h-224q-10 0 -18.5 7.5 t-10.5 17.5q-6 41 -6 75q0 15 1.5 34t3.5 30l1 11q2 10 10.5 17.5t18.5 7.5h224l-158 158q-7 7 -8 18t6 19l106 106q8 7 19 6t18 -8l158 -158v224q0 10 7.5 18.5t17.5 10.5q41 6 75 6z" /> -<glyph unicode="+" d="M450 1100h200q21 0 35.5 -14.5t14.5 -35.5v-350h350q21 0 35.5 -14.5t14.5 -35.5v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-350v-350q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5v350h-350q-21 0 -35.5 14.5t-14.5 35.5v200q0 21 14.5 35.5t35.5 14.5 h350v350q0 21 14.5 35.5t35.5 14.5z" /> -<glyph unicode="&#xa0;" /> -<glyph unicode="&#xa5;" d="M825 1100h250q10 0 12.5 -5t-5.5 -13l-364 -364q-6 -6 -11 -18h268q10 0 13 -6t-3 -14l-120 -160q-6 -8 -18 -14t-22 -6h-125v-100h275q10 0 13 -6t-3 -14l-120 -160q-6 -8 -18 -14t-22 -6h-125v-174q0 -11 -7.5 -18.5t-18.5 -7.5h-148q-11 0 -18.5 7.5t-7.5 18.5v174 h-275q-10 0 -13 6t3 14l120 160q6 8 18 14t22 6h125v100h-275q-10 0 -13 6t3 14l120 160q6 8 18 14t22 6h118q-5 12 -11 18l-364 364q-8 8 -5.5 13t12.5 5h250q25 0 43 -18l164 -164q8 -8 18 -8t18 8l164 164q18 18 43 18z" /> -<glyph unicode="&#x2000;" horiz-adv-x="650" /> -<glyph unicode="&#x2001;" horiz-adv-x="1300" /> -<glyph unicode="&#x2002;" horiz-adv-x="650" /> -<glyph unicode="&#x2003;" horiz-adv-x="1300" /> -<glyph unicode="&#x2004;" horiz-adv-x="433" /> -<glyph unicode="&#x2005;" horiz-adv-x="325" /> -<glyph unicode="&#x2006;" horiz-adv-x="216" /> -<glyph unicode="&#x2007;" horiz-adv-x="216" /> -<glyph unicode="&#x2008;" horiz-adv-x="162" /> -<glyph unicode="&#x2009;" horiz-adv-x="260" /> -<glyph unicode="&#x200a;" horiz-adv-x="72" /> -<glyph unicode="&#x202f;" horiz-adv-x="260" /> -<glyph unicode="&#x205f;" horiz-adv-x="325" /> -<glyph unicode="&#x20ac;" d="M744 1198q242 0 354 -189q60 -104 66 -209h-181q0 45 -17.5 82.5t-43.5 61.5t-58 40.5t-60.5 24t-51.5 7.5q-19 0 -40.5 -5.5t-49.5 -20.5t-53 -38t-49 -62.5t-39 -89.5h379l-100 -100h-300q-6 -50 -6 -100h406l-100 -100h-300q9 -74 33 -132t52.5 -91t61.5 -54.5t59 -29 t47 -7.5q22 0 50.5 7.5t60.5 24.5t58 41t43.5 61t17.5 80h174q-30 -171 -128 -278q-107 -117 -274 -117q-206 0 -324 158q-36 48 -69 133t-45 204h-217l100 100h112q1 47 6 100h-218l100 100h134q20 87 51 153.5t62 103.5q117 141 297 141z" /> -<glyph unicode="&#x20bd;" d="M428 1200h350q67 0 120 -13t86 -31t57 -49.5t35 -56.5t17 -64.5t6.5 -60.5t0.5 -57v-16.5v-16.5q0 -36 -0.5 -57t-6.5 -61t-17 -65t-35 -57t-57 -50.5t-86 -31.5t-120 -13h-178l-2 -100h288q10 0 13 -6t-3 -14l-120 -160q-6 -8 -18 -14t-22 -6h-138v-175q0 -11 -5.5 -18 t-15.5 -7h-149q-10 0 -17.5 7.5t-7.5 17.5v175h-267q-10 0 -13 6t3 14l120 160q6 8 18 14t22 6h117v100h-267q-10 0 -13 6t3 14l120 160q6 8 18 14t22 6h117v475q0 10 7.5 17.5t17.5 7.5zM600 1000v-300h203q64 0 86.5 33t22.5 119q0 84 -22.5 116t-86.5 32h-203z" /> -<glyph unicode="&#x2212;" d="M250 700h800q21 0 35.5 -14.5t14.5 -35.5v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-800q-21 0 -35.5 14.5t-14.5 35.5v200q0 21 14.5 35.5t35.5 14.5z" /> -<glyph unicode="&#x231b;" d="M1000 1200v-150q0 -21 -14.5 -35.5t-35.5 -14.5h-50v-100q0 -91 -49.5 -165.5t-130.5 -109.5q81 -35 130.5 -109.5t49.5 -165.5v-150h50q21 0 35.5 -14.5t14.5 -35.5v-150h-800v150q0 21 14.5 35.5t35.5 14.5h50v150q0 91 49.5 165.5t130.5 109.5q-81 35 -130.5 109.5 t-49.5 165.5v100h-50q-21 0 -35.5 14.5t-14.5 35.5v150h800zM400 1000v-100q0 -60 32.5 -109.5t87.5 -73.5q28 -12 44 -37t16 -55t-16 -55t-44 -37q-55 -24 -87.5 -73.5t-32.5 -109.5v-150h400v150q0 60 -32.5 109.5t-87.5 73.5q-28 12 -44 37t-16 55t16 55t44 37 q55 24 87.5 73.5t32.5 109.5v100h-400z" /> -<glyph unicode="&#x25fc;" horiz-adv-x="500" d="M0 0z" /> -<glyph unicode="&#x2601;" d="M503 1089q110 0 200.5 -59.5t134.5 -156.5q44 14 90 14q120 0 205 -86.5t85 -206.5q0 -121 -85 -207.5t-205 -86.5h-750q-79 0 -135.5 57t-56.5 137q0 69 42.5 122.5t108.5 67.5q-2 12 -2 37q0 153 108 260.5t260 107.5z" /> -<glyph unicode="&#x26fa;" d="M774 1193.5q16 -9.5 20.5 -27t-5.5 -33.5l-136 -187l467 -746h30q20 0 35 -18.5t15 -39.5v-42h-1200v42q0 21 15 39.5t35 18.5h30l468 746l-135 183q-10 16 -5.5 34t20.5 28t34 5.5t28 -20.5l111 -148l112 150q9 16 27 20.5t34 -5zM600 200h377l-182 112l-195 534v-646z " /> -<glyph unicode="&#x2709;" d="M25 1100h1150q10 0 12.5 -5t-5.5 -13l-564 -567q-8 -8 -18 -8t-18 8l-564 567q-8 8 -5.5 13t12.5 5zM18 882l264 -264q8 -8 8 -18t-8 -18l-264 -264q-8 -8 -13 -5.5t-5 12.5v550q0 10 5 12.5t13 -5.5zM918 618l264 264q8 8 13 5.5t5 -12.5v-550q0 -10 -5 -12.5t-13 5.5 l-264 264q-8 8 -8 18t8 18zM818 482l364 -364q8 -8 5.5 -13t-12.5 -5h-1150q-10 0 -12.5 5t5.5 13l364 364q8 8 18 8t18 -8l164 -164q8 -8 18 -8t18 8l164 164q8 8 18 8t18 -8z" /> -<glyph unicode="&#x270f;" d="M1011 1210q19 0 33 -13l153 -153q13 -14 13 -33t-13 -33l-99 -92l-214 214l95 96q13 14 32 14zM1013 800l-615 -614l-214 214l614 614zM317 96l-333 -112l110 335z" /> -<glyph unicode="&#xe001;" d="M700 650v-550h250q21 0 35.5 -14.5t14.5 -35.5v-50h-800v50q0 21 14.5 35.5t35.5 14.5h250v550l-500 550h1200z" /> -<glyph unicode="&#xe002;" d="M368 1017l645 163q39 15 63 0t24 -49v-831q0 -55 -41.5 -95.5t-111.5 -63.5q-79 -25 -147 -4.5t-86 75t25.5 111.5t122.5 82q72 24 138 8v521l-600 -155v-606q0 -42 -44 -90t-109 -69q-79 -26 -147 -5.5t-86 75.5t25.5 111.5t122.5 82.5q72 24 138 7v639q0 38 14.5 59 t53.5 34z" /> -<glyph unicode="&#xe003;" d="M500 1191q100 0 191 -39t156.5 -104.5t104.5 -156.5t39 -191l-1 -2l1 -5q0 -141 -78 -262l275 -274q23 -26 22.5 -44.5t-22.5 -42.5l-59 -58q-26 -20 -46.5 -20t-39.5 20l-275 274q-119 -77 -261 -77l-5 1l-2 -1q-100 0 -191 39t-156.5 104.5t-104.5 156.5t-39 191 t39 191t104.5 156.5t156.5 104.5t191 39zM500 1022q-88 0 -162 -43t-117 -117t-43 -162t43 -162t117 -117t162 -43t162 43t117 117t43 162t-43 162t-117 117t-162 43z" /> -<glyph unicode="&#xe005;" d="M649 949q48 68 109.5 104t121.5 38.5t118.5 -20t102.5 -64t71 -100.5t27 -123q0 -57 -33.5 -117.5t-94 -124.5t-126.5 -127.5t-150 -152.5t-146 -174q-62 85 -145.5 174t-150 152.5t-126.5 127.5t-93.5 124.5t-33.5 117.5q0 64 28 123t73 100.5t104 64t119 20 t120.5 -38.5t104.5 -104z" /> -<glyph unicode="&#xe006;" d="M407 800l131 353q7 19 17.5 19t17.5 -19l129 -353h421q21 0 24 -8.5t-14 -20.5l-342 -249l130 -401q7 -20 -0.5 -25.5t-24.5 6.5l-343 246l-342 -247q-17 -12 -24.5 -6.5t-0.5 25.5l130 400l-347 251q-17 12 -14 20.5t23 8.5h429z" /> -<glyph unicode="&#xe007;" d="M407 800l131 353q7 19 17.5 19t17.5 -19l129 -353h421q21 0 24 -8.5t-14 -20.5l-342 -249l130 -401q7 -20 -0.5 -25.5t-24.5 6.5l-343 246l-342 -247q-17 -12 -24.5 -6.5t-0.5 25.5l130 400l-347 251q-17 12 -14 20.5t23 8.5h429zM477 700h-240l197 -142l-74 -226 l193 139l195 -140l-74 229l192 140h-234l-78 211z" /> -<glyph unicode="&#xe008;" d="M600 1200q124 0 212 -88t88 -212v-250q0 -46 -31 -98t-69 -52v-75q0 -10 6 -21.5t15 -17.5l358 -230q9 -5 15 -16.5t6 -21.5v-93q0 -10 -7.5 -17.5t-17.5 -7.5h-1150q-10 0 -17.5 7.5t-7.5 17.5v93q0 10 6 21.5t15 16.5l358 230q9 6 15 17.5t6 21.5v75q-38 0 -69 52 t-31 98v250q0 124 88 212t212 88z" /> -<glyph unicode="&#xe009;" d="M25 1100h1150q10 0 17.5 -7.5t7.5 -17.5v-1050q0 -10 -7.5 -17.5t-17.5 -7.5h-1150q-10 0 -17.5 7.5t-7.5 17.5v1050q0 10 7.5 17.5t17.5 7.5zM100 1000v-100h100v100h-100zM875 1000h-550q-10 0 -17.5 -7.5t-7.5 -17.5v-350q0 -10 7.5 -17.5t17.5 -7.5h550 q10 0 17.5 7.5t7.5 17.5v350q0 10 -7.5 17.5t-17.5 7.5zM1000 1000v-100h100v100h-100zM100 800v-100h100v100h-100zM1000 800v-100h100v100h-100zM100 600v-100h100v100h-100zM1000 600v-100h100v100h-100zM875 500h-550q-10 0 -17.5 -7.5t-7.5 -17.5v-350q0 -10 7.5 -17.5 t17.5 -7.5h550q10 0 17.5 7.5t7.5 17.5v350q0 10 -7.5 17.5t-17.5 7.5zM100 400v-100h100v100h-100zM1000 400v-100h100v100h-100zM100 200v-100h100v100h-100zM1000 200v-100h100v100h-100z" /> -<glyph unicode="&#xe010;" d="M50 1100h400q21 0 35.5 -14.5t14.5 -35.5v-400q0 -21 -14.5 -35.5t-35.5 -14.5h-400q-21 0 -35.5 14.5t-14.5 35.5v400q0 21 14.5 35.5t35.5 14.5zM650 1100h400q21 0 35.5 -14.5t14.5 -35.5v-400q0 -21 -14.5 -35.5t-35.5 -14.5h-400q-21 0 -35.5 14.5t-14.5 35.5v400 q0 21 14.5 35.5t35.5 14.5zM50 500h400q21 0 35.5 -14.5t14.5 -35.5v-400q0 -21 -14.5 -35.5t-35.5 -14.5h-400q-21 0 -35.5 14.5t-14.5 35.5v400q0 21 14.5 35.5t35.5 14.5zM650 500h400q21 0 35.5 -14.5t14.5 -35.5v-400q0 -21 -14.5 -35.5t-35.5 -14.5h-400 q-21 0 -35.5 14.5t-14.5 35.5v400q0 21 14.5 35.5t35.5 14.5z" /> -<glyph unicode="&#xe011;" d="M50 1100h200q21 0 35.5 -14.5t14.5 -35.5v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5v200q0 21 14.5 35.5t35.5 14.5zM450 1100h200q21 0 35.5 -14.5t14.5 -35.5v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5v200 q0 21 14.5 35.5t35.5 14.5zM850 1100h200q21 0 35.5 -14.5t14.5 -35.5v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5v200q0 21 14.5 35.5t35.5 14.5zM50 700h200q21 0 35.5 -14.5t14.5 -35.5v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-200 q-21 0 -35.5 14.5t-14.5 35.5v200q0 21 14.5 35.5t35.5 14.5zM450 700h200q21 0 35.5 -14.5t14.5 -35.5v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5v200q0 21 14.5 35.5t35.5 14.5zM850 700h200q21 0 35.5 -14.5t14.5 -35.5v-200 q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5v200q0 21 14.5 35.5t35.5 14.5zM50 300h200q21 0 35.5 -14.5t14.5 -35.5v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5v200q0 21 14.5 35.5t35.5 14.5zM450 300h200 q21 0 35.5 -14.5t14.5 -35.5v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5v200q0 21 14.5 35.5t35.5 14.5zM850 300h200q21 0 35.5 -14.5t14.5 -35.5v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5v200q0 21 14.5 35.5 t35.5 14.5z" /> -<glyph unicode="&#xe012;" d="M50 1100h200q21 0 35.5 -14.5t14.5 -35.5v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5v200q0 21 14.5 35.5t35.5 14.5zM450 1100h700q21 0 35.5 -14.5t14.5 -35.5v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-700q-21 0 -35.5 14.5t-14.5 35.5v200 q0 21 14.5 35.5t35.5 14.5zM50 700h200q21 0 35.5 -14.5t14.5 -35.5v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5v200q0 21 14.5 35.5t35.5 14.5zM450 700h700q21 0 35.5 -14.5t14.5 -35.5v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-700 q-21 0 -35.5 14.5t-14.5 35.5v200q0 21 14.5 35.5t35.5 14.5zM50 300h200q21 0 35.5 -14.5t14.5 -35.5v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5v200q0 21 14.5 35.5t35.5 14.5zM450 300h700q21 0 35.5 -14.5t14.5 -35.5v-200 q0 -21 -14.5 -35.5t-35.5 -14.5h-700q-21 0 -35.5 14.5t-14.5 35.5v200q0 21 14.5 35.5t35.5 14.5z" /> -<glyph unicode="&#xe013;" d="M465 477l571 571q8 8 18 8t17 -8l177 -177q8 -7 8 -17t-8 -18l-783 -784q-7 -8 -17.5 -8t-17.5 8l-384 384q-8 8 -8 18t8 17l177 177q7 8 17 8t18 -8l171 -171q7 -7 18 -7t18 7z" /> -<glyph unicode="&#xe014;" d="M904 1083l178 -179q8 -8 8 -18.5t-8 -17.5l-267 -268l267 -268q8 -7 8 -17.5t-8 -18.5l-178 -178q-8 -8 -18.5 -8t-17.5 8l-268 267l-268 -267q-7 -8 -17.5 -8t-18.5 8l-178 178q-8 8 -8 18.5t8 17.5l267 268l-267 268q-8 7 -8 17.5t8 18.5l178 178q8 8 18.5 8t17.5 -8 l268 -267l268 268q7 7 17.5 7t18.5 -7z" /> -<glyph unicode="&#xe015;" d="M507 1177q98 0 187.5 -38.5t154.5 -103.5t103.5 -154.5t38.5 -187.5q0 -141 -78 -262l300 -299q8 -8 8 -18.5t-8 -18.5l-109 -108q-7 -8 -17.5 -8t-18.5 8l-300 299q-119 -77 -261 -77q-98 0 -188 38.5t-154.5 103t-103 154.5t-38.5 188t38.5 187.5t103 154.5 t154.5 103.5t188 38.5zM506.5 1023q-89.5 0 -165.5 -44t-120 -120.5t-44 -166t44 -165.5t120 -120t165.5 -44t166 44t120.5 120t44 165.5t-44 166t-120.5 120.5t-166 44zM425 900h150q10 0 17.5 -7.5t7.5 -17.5v-75h75q10 0 17.5 -7.5t7.5 -17.5v-150q0 -10 -7.5 -17.5 t-17.5 -7.5h-75v-75q0 -10 -7.5 -17.5t-17.5 -7.5h-150q-10 0 -17.5 7.5t-7.5 17.5v75h-75q-10 0 -17.5 7.5t-7.5 17.5v150q0 10 7.5 17.5t17.5 7.5h75v75q0 10 7.5 17.5t17.5 7.5z" /> -<glyph unicode="&#xe016;" d="M507 1177q98 0 187.5 -38.5t154.5 -103.5t103.5 -154.5t38.5 -187.5q0 -141 -78 -262l300 -299q8 -8 8 -18.5t-8 -18.5l-109 -108q-7 -8 -17.5 -8t-18.5 8l-300 299q-119 -77 -261 -77q-98 0 -188 38.5t-154.5 103t-103 154.5t-38.5 188t38.5 187.5t103 154.5 t154.5 103.5t188 38.5zM506.5 1023q-89.5 0 -165.5 -44t-120 -120.5t-44 -166t44 -165.5t120 -120t165.5 -44t166 44t120.5 120t44 165.5t-44 166t-120.5 120.5t-166 44zM325 800h350q10 0 17.5 -7.5t7.5 -17.5v-150q0 -10 -7.5 -17.5t-17.5 -7.5h-350q-10 0 -17.5 7.5 t-7.5 17.5v150q0 10 7.5 17.5t17.5 7.5z" /> -<glyph unicode="&#xe017;" d="M550 1200h100q21 0 35.5 -14.5t14.5 -35.5v-400q0 -21 -14.5 -35.5t-35.5 -14.5h-100q-21 0 -35.5 14.5t-14.5 35.5v400q0 21 14.5 35.5t35.5 14.5zM800 975v166q167 -62 272 -209.5t105 -331.5q0 -117 -45.5 -224t-123 -184.5t-184.5 -123t-224 -45.5t-224 45.5 t-184.5 123t-123 184.5t-45.5 224q0 184 105 331.5t272 209.5v-166q-103 -55 -165 -155t-62 -220q0 -116 57 -214.5t155.5 -155.5t214.5 -57t214.5 57t155.5 155.5t57 214.5q0 120 -62 220t-165 155z" /> -<glyph unicode="&#xe018;" d="M1025 1200h150q10 0 17.5 -7.5t7.5 -17.5v-1150q0 -10 -7.5 -17.5t-17.5 -7.5h-150q-10 0 -17.5 7.5t-7.5 17.5v1150q0 10 7.5 17.5t17.5 7.5zM725 800h150q10 0 17.5 -7.5t7.5 -17.5v-750q0 -10 -7.5 -17.5t-17.5 -7.5h-150q-10 0 -17.5 7.5t-7.5 17.5v750 q0 10 7.5 17.5t17.5 7.5zM425 500h150q10 0 17.5 -7.5t7.5 -17.5v-450q0 -10 -7.5 -17.5t-17.5 -7.5h-150q-10 0 -17.5 7.5t-7.5 17.5v450q0 10 7.5 17.5t17.5 7.5zM125 300h150q10 0 17.5 -7.5t7.5 -17.5v-250q0 -10 -7.5 -17.5t-17.5 -7.5h-150q-10 0 -17.5 7.5t-7.5 17.5 v250q0 10 7.5 17.5t17.5 7.5z" /> -<glyph unicode="&#xe019;" d="M600 1174q33 0 74 -5l38 -152l5 -1q49 -14 94 -39l5 -2l134 80q61 -48 104 -105l-80 -134l3 -5q25 -44 39 -93l1 -6l152 -38q5 -43 5 -73q0 -34 -5 -74l-152 -38l-1 -6q-15 -49 -39 -93l-3 -5l80 -134q-48 -61 -104 -105l-134 81l-5 -3q-44 -25 -94 -39l-5 -2l-38 -151 q-43 -5 -74 -5q-33 0 -74 5l-38 151l-5 2q-49 14 -94 39l-5 3l-134 -81q-60 48 -104 105l80 134l-3 5q-25 45 -38 93l-2 6l-151 38q-6 42 -6 74q0 33 6 73l151 38l2 6q13 48 38 93l3 5l-80 134q47 61 105 105l133 -80l5 2q45 25 94 39l5 1l38 152q43 5 74 5zM600 815 q-89 0 -152 -63t-63 -151.5t63 -151.5t152 -63t152 63t63 151.5t-63 151.5t-152 63z" /> -<glyph unicode="&#xe020;" d="M500 1300h300q41 0 70.5 -29.5t29.5 -70.5v-100h275q10 0 17.5 -7.5t7.5 -17.5v-75h-1100v75q0 10 7.5 17.5t17.5 7.5h275v100q0 41 29.5 70.5t70.5 29.5zM500 1200v-100h300v100h-300zM1100 900v-800q0 -41 -29.5 -70.5t-70.5 -29.5h-700q-41 0 -70.5 29.5t-29.5 70.5 v800h900zM300 800v-700h100v700h-100zM500 800v-700h100v700h-100zM700 800v-700h100v700h-100zM900 800v-700h100v700h-100z" /> -<glyph unicode="&#xe021;" d="M18 618l620 608q8 7 18.5 7t17.5 -7l608 -608q8 -8 5.5 -13t-12.5 -5h-175v-575q0 -10 -7.5 -17.5t-17.5 -7.5h-250q-10 0 -17.5 7.5t-7.5 17.5v375h-300v-375q0 -10 -7.5 -17.5t-17.5 -7.5h-250q-10 0 -17.5 7.5t-7.5 17.5v575h-175q-10 0 -12.5 5t5.5 13z" /> -<glyph unicode="&#xe022;" d="M600 1200v-400q0 -41 29.5 -70.5t70.5 -29.5h300v-650q0 -21 -14.5 -35.5t-35.5 -14.5h-800q-21 0 -35.5 14.5t-14.5 35.5v1100q0 21 14.5 35.5t35.5 14.5h450zM1000 800h-250q-21 0 -35.5 14.5t-14.5 35.5v250z" /> -<glyph unicode="&#xe023;" d="M600 1177q117 0 224 -45.5t184.5 -123t123 -184.5t45.5 -224t-45.5 -224t-123 -184.5t-184.5 -123t-224 -45.5t-224 45.5t-184.5 123t-123 184.5t-45.5 224t45.5 224t123 184.5t184.5 123t224 45.5zM600 1027q-116 0 -214.5 -57t-155.5 -155.5t-57 -214.5t57 -214.5 t155.5 -155.5t214.5 -57t214.5 57t155.5 155.5t57 214.5t-57 214.5t-155.5 155.5t-214.5 57zM525 900h50q10 0 17.5 -7.5t7.5 -17.5v-275h175q10 0 17.5 -7.5t7.5 -17.5v-50q0 -10 -7.5 -17.5t-17.5 -7.5h-250q-10 0 -17.5 7.5t-7.5 17.5v350q0 10 7.5 17.5t17.5 7.5z" /> -<glyph unicode="&#xe024;" d="M1300 0h-538l-41 400h-242l-41 -400h-538l431 1200h209l-21 -300h162l-20 300h208zM515 800l-27 -300h224l-27 300h-170z" /> -<glyph unicode="&#xe025;" d="M550 1200h200q21 0 35.5 -14.5t14.5 -35.5v-450h191q20 0 25.5 -11.5t-7.5 -27.5l-327 -400q-13 -16 -32 -16t-32 16l-327 400q-13 16 -7.5 27.5t25.5 11.5h191v450q0 21 14.5 35.5t35.5 14.5zM1125 400h50q10 0 17.5 -7.5t7.5 -17.5v-350q0 -10 -7.5 -17.5t-17.5 -7.5 h-1050q-10 0 -17.5 7.5t-7.5 17.5v350q0 10 7.5 17.5t17.5 7.5h50q10 0 17.5 -7.5t7.5 -17.5v-175h900v175q0 10 7.5 17.5t17.5 7.5z" /> -<glyph unicode="&#xe026;" d="M600 1177q117 0 224 -45.5t184.5 -123t123 -184.5t45.5 -224t-45.5 -224t-123 -184.5t-184.5 -123t-224 -45.5t-224 45.5t-184.5 123t-123 184.5t-45.5 224t45.5 224t123 184.5t184.5 123t224 45.5zM600 1027q-116 0 -214.5 -57t-155.5 -155.5t-57 -214.5t57 -214.5 t155.5 -155.5t214.5 -57t214.5 57t155.5 155.5t57 214.5t-57 214.5t-155.5 155.5t-214.5 57zM525 900h150q10 0 17.5 -7.5t7.5 -17.5v-275h137q21 0 26 -11.5t-8 -27.5l-223 -275q-13 -16 -32 -16t-32 16l-223 275q-13 16 -8 27.5t26 11.5h137v275q0 10 7.5 17.5t17.5 7.5z " /> -<glyph unicode="&#xe027;" d="M600 1177q117 0 224 -45.5t184.5 -123t123 -184.5t45.5 -224t-45.5 -224t-123 -184.5t-184.5 -123t-224 -45.5t-224 45.5t-184.5 123t-123 184.5t-45.5 224t45.5 224t123 184.5t184.5 123t224 45.5zM600 1027q-116 0 -214.5 -57t-155.5 -155.5t-57 -214.5t57 -214.5 t155.5 -155.5t214.5 -57t214.5 57t155.5 155.5t57 214.5t-57 214.5t-155.5 155.5t-214.5 57zM632 914l223 -275q13 -16 8 -27.5t-26 -11.5h-137v-275q0 -10 -7.5 -17.5t-17.5 -7.5h-150q-10 0 -17.5 7.5t-7.5 17.5v275h-137q-21 0 -26 11.5t8 27.5l223 275q13 16 32 16 t32 -16z" /> -<glyph unicode="&#xe028;" d="M225 1200h750q10 0 19.5 -7t12.5 -17l186 -652q7 -24 7 -49v-425q0 -12 -4 -27t-9 -17q-12 -6 -37 -6h-1100q-12 0 -27 4t-17 8q-6 13 -6 38l1 425q0 25 7 49l185 652q3 10 12.5 17t19.5 7zM878 1000h-556q-10 0 -19 -7t-11 -18l-87 -450q-2 -11 4 -18t16 -7h150 q10 0 19.5 -7t11.5 -17l38 -152q2 -10 11.5 -17t19.5 -7h250q10 0 19.5 7t11.5 17l38 152q2 10 11.5 17t19.5 7h150q10 0 16 7t4 18l-87 450q-2 11 -11 18t-19 7z" /> -<glyph unicode="&#xe029;" d="M600 1177q117 0 224 -45.5t184.5 -123t123 -184.5t45.5 -224t-45.5 -224t-123 -184.5t-184.5 -123t-224 -45.5t-224 45.5t-184.5 123t-123 184.5t-45.5 224t45.5 224t123 184.5t184.5 123t224 45.5zM600 1027q-116 0 -214.5 -57t-155.5 -155.5t-57 -214.5t57 -214.5 t155.5 -155.5t214.5 -57t214.5 57t155.5 155.5t57 214.5t-57 214.5t-155.5 155.5t-214.5 57zM540 820l253 -190q17 -12 17 -30t-17 -30l-253 -190q-16 -12 -28 -6.5t-12 26.5v400q0 21 12 26.5t28 -6.5z" /> -<glyph unicode="&#xe030;" d="M947 1060l135 135q7 7 12.5 5t5.5 -13v-362q0 -10 -7.5 -17.5t-17.5 -7.5h-362q-11 0 -13 5.5t5 12.5l133 133q-109 76 -238 76q-116 0 -214.5 -57t-155.5 -155.5t-57 -214.5t57 -214.5t155.5 -155.5t214.5 -57t214.5 57t155.5 155.5t57 214.5h150q0 -117 -45.5 -224 t-123 -184.5t-184.5 -123t-224 -45.5t-224 45.5t-184.5 123t-123 184.5t-45.5 224t45.5 224t123 184.5t184.5 123t224 45.5q192 0 347 -117z" /> -<glyph unicode="&#xe031;" d="M947 1060l135 135q7 7 12.5 5t5.5 -13v-361q0 -11 -7.5 -18.5t-18.5 -7.5h-361q-11 0 -13 5.5t5 12.5l134 134q-110 75 -239 75q-116 0 -214.5 -57t-155.5 -155.5t-57 -214.5h-150q0 117 45.5 224t123 184.5t184.5 123t224 45.5q192 0 347 -117zM1027 600h150 q0 -117 -45.5 -224t-123 -184.5t-184.5 -123t-224 -45.5q-192 0 -348 118l-134 -134q-7 -8 -12.5 -5.5t-5.5 12.5v360q0 11 7.5 18.5t18.5 7.5h360q10 0 12.5 -5.5t-5.5 -12.5l-133 -133q110 -76 240 -76q116 0 214.5 57t155.5 155.5t57 214.5z" /> -<glyph unicode="&#xe032;" d="M125 1200h1050q10 0 17.5 -7.5t7.5 -17.5v-1150q0 -10 -7.5 -17.5t-17.5 -7.5h-1050q-10 0 -17.5 7.5t-7.5 17.5v1150q0 10 7.5 17.5t17.5 7.5zM1075 1000h-850q-10 0 -17.5 -7.5t-7.5 -17.5v-850q0 -10 7.5 -17.5t17.5 -7.5h850q10 0 17.5 7.5t7.5 17.5v850 q0 10 -7.5 17.5t-17.5 7.5zM325 900h50q10 0 17.5 -7.5t7.5 -17.5v-50q0 -10 -7.5 -17.5t-17.5 -7.5h-50q-10 0 -17.5 7.5t-7.5 17.5v50q0 10 7.5 17.5t17.5 7.5zM525 900h450q10 0 17.5 -7.5t7.5 -17.5v-50q0 -10 -7.5 -17.5t-17.5 -7.5h-450q-10 0 -17.5 7.5t-7.5 17.5v50 q0 10 7.5 17.5t17.5 7.5zM325 700h50q10 0 17.5 -7.5t7.5 -17.5v-50q0 -10 -7.5 -17.5t-17.5 -7.5h-50q-10 0 -17.5 7.5t-7.5 17.5v50q0 10 7.5 17.5t17.5 7.5zM525 700h450q10 0 17.5 -7.5t7.5 -17.5v-50q0 -10 -7.5 -17.5t-17.5 -7.5h-450q-10 0 -17.5 7.5t-7.5 17.5v50 q0 10 7.5 17.5t17.5 7.5zM325 500h50q10 0 17.5 -7.5t7.5 -17.5v-50q0 -10 -7.5 -17.5t-17.5 -7.5h-50q-10 0 -17.5 7.5t-7.5 17.5v50q0 10 7.5 17.5t17.5 7.5zM525 500h450q10 0 17.5 -7.5t7.5 -17.5v-50q0 -10 -7.5 -17.5t-17.5 -7.5h-450q-10 0 -17.5 7.5t-7.5 17.5v50 q0 10 7.5 17.5t17.5 7.5zM325 300h50q10 0 17.5 -7.5t7.5 -17.5v-50q0 -10 -7.5 -17.5t-17.5 -7.5h-50q-10 0 -17.5 7.5t-7.5 17.5v50q0 10 7.5 17.5t17.5 7.5zM525 300h450q10 0 17.5 -7.5t7.5 -17.5v-50q0 -10 -7.5 -17.5t-17.5 -7.5h-450q-10 0 -17.5 7.5t-7.5 17.5v50 q0 10 7.5 17.5t17.5 7.5z" /> -<glyph unicode="&#xe033;" d="M900 800v200q0 83 -58.5 141.5t-141.5 58.5h-300q-82 0 -141 -59t-59 -141v-200h-100q-41 0 -70.5 -29.5t-29.5 -70.5v-600q0 -41 29.5 -70.5t70.5 -29.5h900q41 0 70.5 29.5t29.5 70.5v600q0 41 -29.5 70.5t-70.5 29.5h-100zM400 800v150q0 21 15 35.5t35 14.5h200 q20 0 35 -14.5t15 -35.5v-150h-300z" /> -<glyph unicode="&#xe034;" d="M125 1100h50q10 0 17.5 -7.5t7.5 -17.5v-1075h-100v1075q0 10 7.5 17.5t17.5 7.5zM1075 1052q4 0 9 -2q16 -6 16 -23v-421q0 -6 -3 -12q-33 -59 -66.5 -99t-65.5 -58t-56.5 -24.5t-52.5 -6.5q-26 0 -57.5 6.5t-52.5 13.5t-60 21q-41 15 -63 22.5t-57.5 15t-65.5 7.5 q-85 0 -160 -57q-7 -5 -15 -5q-6 0 -11 3q-14 7 -14 22v438q22 55 82 98.5t119 46.5q23 2 43 0.5t43 -7t32.5 -8.5t38 -13t32.5 -11q41 -14 63.5 -21t57 -14t63.5 -7q103 0 183 87q7 8 18 8z" /> -<glyph unicode="&#xe035;" d="M600 1175q116 0 227 -49.5t192.5 -131t131 -192.5t49.5 -227v-300q0 -10 -7.5 -17.5t-17.5 -7.5h-50q-10 0 -17.5 7.5t-7.5 17.5v300q0 127 -70.5 231.5t-184.5 161.5t-245 57t-245 -57t-184.5 -161.5t-70.5 -231.5v-300q0 -10 -7.5 -17.5t-17.5 -7.5h-50 q-10 0 -17.5 7.5t-7.5 17.5v300q0 116 49.5 227t131 192.5t192.5 131t227 49.5zM220 500h160q8 0 14 -6t6 -14v-460q0 -8 -6 -14t-14 -6h-160q-8 0 -14 6t-6 14v460q0 8 6 14t14 6zM820 500h160q8 0 14 -6t6 -14v-460q0 -8 -6 -14t-14 -6h-160q-8 0 -14 6t-6 14v460 q0 8 6 14t14 6z" /> -<glyph unicode="&#xe036;" d="M321 814l258 172q9 6 15 2.5t6 -13.5v-750q0 -10 -6 -13.5t-15 2.5l-258 172q-21 14 -46 14h-250q-10 0 -17.5 7.5t-7.5 17.5v350q0 10 7.5 17.5t17.5 7.5h250q25 0 46 14zM900 668l120 120q7 7 17 7t17 -7l34 -34q7 -7 7 -17t-7 -17l-120 -120l120 -120q7 -7 7 -17 t-7 -17l-34 -34q-7 -7 -17 -7t-17 7l-120 119l-120 -119q-7 -7 -17 -7t-17 7l-34 34q-7 7 -7 17t7 17l119 120l-119 120q-7 7 -7 17t7 17l34 34q7 8 17 8t17 -8z" /> -<glyph unicode="&#xe037;" d="M321 814l258 172q9 6 15 2.5t6 -13.5v-750q0 -10 -6 -13.5t-15 2.5l-258 172q-21 14 -46 14h-250q-10 0 -17.5 7.5t-7.5 17.5v350q0 10 7.5 17.5t17.5 7.5h250q25 0 46 14zM766 900h4q10 -1 16 -10q96 -129 96 -290q0 -154 -90 -281q-6 -9 -17 -10l-3 -1q-9 0 -16 6 l-29 23q-7 7 -8.5 16.5t4.5 17.5q72 103 72 229q0 132 -78 238q-6 8 -4.5 18t9.5 17l29 22q7 5 15 5z" /> -<glyph unicode="&#xe038;" d="M967 1004h3q11 -1 17 -10q135 -179 135 -396q0 -105 -34 -206.5t-98 -185.5q-7 -9 -17 -10h-3q-9 0 -16 6l-42 34q-8 6 -9 16t5 18q111 150 111 328q0 90 -29.5 176t-84.5 157q-6 9 -5 19t10 16l42 33q7 5 15 5zM321 814l258 172q9 6 15 2.5t6 -13.5v-750q0 -10 -6 -13.5 t-15 2.5l-258 172q-21 14 -46 14h-250q-10 0 -17.5 7.5t-7.5 17.5v350q0 10 7.5 17.5t17.5 7.5h250q25 0 46 14zM766 900h4q10 -1 16 -10q96 -129 96 -290q0 -154 -90 -281q-6 -9 -17 -10l-3 -1q-9 0 -16 6l-29 23q-7 7 -8.5 16.5t4.5 17.5q72 103 72 229q0 132 -78 238 q-6 8 -4.5 18.5t9.5 16.5l29 22q7 5 15 5z" /> -<glyph unicode="&#xe039;" d="M500 900h100v-100h-100v-100h-400v-100h-100v600h500v-300zM1200 700h-200v-100h200v-200h-300v300h-200v300h-100v200h600v-500zM100 1100v-300h300v300h-300zM800 1100v-300h300v300h-300zM300 900h-100v100h100v-100zM1000 900h-100v100h100v-100zM300 500h200v-500 h-500v500h200v100h100v-100zM800 300h200v-100h-100v-100h-200v100h-100v100h100v200h-200v100h300v-300zM100 400v-300h300v300h-300zM300 200h-100v100h100v-100zM1200 200h-100v100h100v-100zM700 0h-100v100h100v-100zM1200 0h-300v100h300v-100z" /> -<glyph unicode="&#xe040;" d="M100 200h-100v1000h100v-1000zM300 200h-100v1000h100v-1000zM700 200h-200v1000h200v-1000zM900 200h-100v1000h100v-1000zM1200 200h-200v1000h200v-1000zM400 0h-300v100h300v-100zM600 0h-100v91h100v-91zM800 0h-100v91h100v-91zM1100 0h-200v91h200v-91z" /> -<glyph unicode="&#xe041;" d="M500 1200l682 -682q8 -8 8 -18t-8 -18l-464 -464q-8 -8 -18 -8t-18 8l-682 682l1 475q0 10 7.5 17.5t17.5 7.5h474zM319.5 1024.5q-29.5 29.5 -71 29.5t-71 -29.5t-29.5 -71.5t29.5 -71.5t71 -29.5t71 29.5t29.5 71.5t-29.5 71.5z" /> -<glyph unicode="&#xe042;" d="M500 1200l682 -682q8 -8 8 -18t-8 -18l-464 -464q-8 -8 -18 -8t-18 8l-682 682l1 475q0 10 7.5 17.5t17.5 7.5h474zM800 1200l682 -682q8 -8 8 -18t-8 -18l-464 -464q-8 -8 -18 -8t-18 8l-56 56l424 426l-700 700h150zM319.5 1024.5q-29.5 29.5 -71 29.5t-71 -29.5 t-29.5 -71.5t29.5 -71.5t71 -29.5t71 29.5t29.5 71.5t-29.5 71.5z" /> -<glyph unicode="&#xe043;" d="M300 1200h825q75 0 75 -75v-900q0 -25 -18 -43l-64 -64q-8 -8 -13 -5.5t-5 12.5v950q0 10 -7.5 17.5t-17.5 7.5h-700q-25 0 -43 -18l-64 -64q-8 -8 -5.5 -13t12.5 -5h700q10 0 17.5 -7.5t7.5 -17.5v-950q0 -10 -7.5 -17.5t-17.5 -7.5h-850q-10 0 -17.5 7.5t-7.5 17.5v975 q0 25 18 43l139 139q18 18 43 18z" /> -<glyph unicode="&#xe044;" d="M250 1200h800q21 0 35.5 -14.5t14.5 -35.5v-1150l-450 444l-450 -445v1151q0 21 14.5 35.5t35.5 14.5z" /> -<glyph unicode="&#xe045;" d="M822 1200h-444q-11 0 -19 -7.5t-9 -17.5l-78 -301q-7 -24 7 -45l57 -108q6 -9 17.5 -15t21.5 -6h450q10 0 21.5 6t17.5 15l62 108q14 21 7 45l-83 301q-1 10 -9 17.5t-19 7.5zM1175 800h-150q-10 0 -21 -6.5t-15 -15.5l-78 -156q-4 -9 -15 -15.5t-21 -6.5h-550 q-10 0 -21 6.5t-15 15.5l-78 156q-4 9 -15 15.5t-21 6.5h-150q-10 0 -17.5 -7.5t-7.5 -17.5v-650q0 -10 7.5 -17.5t17.5 -7.5h150q10 0 17.5 7.5t7.5 17.5v150q0 10 7.5 17.5t17.5 7.5h750q10 0 17.5 -7.5t7.5 -17.5v-150q0 -10 7.5 -17.5t17.5 -7.5h150q10 0 17.5 7.5 t7.5 17.5v650q0 10 -7.5 17.5t-17.5 7.5zM850 200h-500q-10 0 -19.5 -7t-11.5 -17l-38 -152q-2 -10 3.5 -17t15.5 -7h600q10 0 15.5 7t3.5 17l-38 152q-2 10 -11.5 17t-19.5 7z" /> -<glyph unicode="&#xe046;" d="M500 1100h200q56 0 102.5 -20.5t72.5 -50t44 -59t25 -50.5l6 -20h150q41 0 70.5 -29.5t29.5 -70.5v-600q0 -41 -29.5 -70.5t-70.5 -29.5h-1000q-41 0 -70.5 29.5t-29.5 70.5v600q0 41 29.5 70.5t70.5 29.5h150q2 8 6.5 21.5t24 48t45 61t72 48t102.5 21.5zM900 800v-100 h100v100h-100zM600 730q-95 0 -162.5 -67.5t-67.5 -162.5t67.5 -162.5t162.5 -67.5t162.5 67.5t67.5 162.5t-67.5 162.5t-162.5 67.5zM600 603q43 0 73 -30t30 -73t-30 -73t-73 -30t-73 30t-30 73t30 73t73 30z" /> -<glyph unicode="&#xe047;" d="M681 1199l385 -998q20 -50 60 -92q18 -19 36.5 -29.5t27.5 -11.5l10 -2v-66h-417v66q53 0 75 43.5t5 88.5l-82 222h-391q-58 -145 -92 -234q-11 -34 -6.5 -57t25.5 -37t46 -20t55 -6v-66h-365v66q56 24 84 52q12 12 25 30.5t20 31.5l7 13l399 1006h93zM416 521h340 l-162 457z" /> -<glyph unicode="&#xe048;" d="M753 641q5 -1 14.5 -4.5t36 -15.5t50.5 -26.5t53.5 -40t50.5 -54.5t35.5 -70t14.5 -87q0 -67 -27.5 -125.5t-71.5 -97.5t-98.5 -66.5t-108.5 -40.5t-102 -13h-500v89q41 7 70.5 32.5t29.5 65.5v827q0 24 -0.5 34t-3.5 24t-8.5 19.5t-17 13.5t-28 12.5t-42.5 11.5v71 l471 -1q57 0 115.5 -20.5t108 -57t80.5 -94t31 -124.5q0 -51 -15.5 -96.5t-38 -74.5t-45 -50.5t-38.5 -30.5zM400 700h139q78 0 130.5 48.5t52.5 122.5q0 41 -8.5 70.5t-29.5 55.5t-62.5 39.5t-103.5 13.5h-118v-350zM400 200h216q80 0 121 50.5t41 130.5q0 90 -62.5 154.5 t-156.5 64.5h-159v-400z" /> -<glyph unicode="&#xe049;" d="M877 1200l2 -57q-83 -19 -116 -45.5t-40 -66.5l-132 -839q-9 -49 13 -69t96 -26v-97h-500v97q186 16 200 98l173 832q3 17 3 30t-1.5 22.5t-9 17.5t-13.5 12.5t-21.5 10t-26 8.5t-33.5 10q-13 3 -19 5v57h425z" /> -<glyph unicode="&#xe050;" d="M1300 900h-50q0 21 -4 37t-9.5 26.5t-18 17.5t-22 11t-28.5 5.5t-31 2t-37 0.5h-200v-850q0 -22 25 -34.5t50 -13.5l25 -2v-100h-400v100q4 0 11 0.5t24 3t30 7t24 15t11 24.5v850h-200q-25 0 -37 -0.5t-31 -2t-28.5 -5.5t-22 -11t-18 -17.5t-9.5 -26.5t-4 -37h-50v300 h1000v-300zM175 1000h-75v-800h75l-125 -167l-125 167h75v800h-75l125 167z" /> -<glyph unicode="&#xe051;" d="M1100 900h-50q0 21 -4 37t-9.5 26.5t-18 17.5t-22 11t-28.5 5.5t-31 2t-37 0.5h-200v-650q0 -22 25 -34.5t50 -13.5l25 -2v-100h-400v100q4 0 11 0.5t24 3t30 7t24 15t11 24.5v650h-200q-25 0 -37 -0.5t-31 -2t-28.5 -5.5t-22 -11t-18 -17.5t-9.5 -26.5t-4 -37h-50v300 h1000v-300zM1167 50l-167 -125v75h-800v-75l-167 125l167 125v-75h800v75z" /> -<glyph unicode="&#xe052;" d="M50 1100h600q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-600q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5zM50 800h1000q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-1000q-21 0 -35.5 14.5t-14.5 35.5v100 q0 21 14.5 35.5t35.5 14.5zM50 500h800q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-800q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5zM50 200h1100q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-1100 q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5z" /> -<glyph unicode="&#xe053;" d="M250 1100h700q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-700q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5zM50 800h1100q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-1100q-21 0 -35.5 14.5t-14.5 35.5v100 q0 21 14.5 35.5t35.5 14.5zM250 500h700q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-700q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5zM50 200h1100q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-1100 q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5z" /> -<glyph unicode="&#xe054;" d="M500 950v100q0 21 14.5 35.5t35.5 14.5h600q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-600q-21 0 -35.5 14.5t-14.5 35.5zM100 650v100q0 21 14.5 35.5t35.5 14.5h1000q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-1000 q-21 0 -35.5 14.5t-14.5 35.5zM300 350v100q0 21 14.5 35.5t35.5 14.5h800q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-800q-21 0 -35.5 14.5t-14.5 35.5zM0 50v100q0 21 14.5 35.5t35.5 14.5h1100q21 0 35.5 -14.5t14.5 -35.5v-100 q0 -21 -14.5 -35.5t-35.5 -14.5h-1100q-21 0 -35.5 14.5t-14.5 35.5z" /> -<glyph unicode="&#xe055;" d="M50 1100h1100q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-1100q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5zM50 800h1100q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-1100q-21 0 -35.5 14.5t-14.5 35.5v100 q0 21 14.5 35.5t35.5 14.5zM50 500h1100q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-1100q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5zM50 200h1100q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-1100 q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5z" /> -<glyph unicode="&#xe056;" d="M50 1100h100q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-100q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5zM350 1100h800q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-800q-21 0 -35.5 14.5t-14.5 35.5v100 q0 21 14.5 35.5t35.5 14.5zM50 800h100q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-100q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5zM350 800h800q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-800 q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5zM50 500h100q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-100q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5zM350 500h800q21 0 35.5 -14.5t14.5 -35.5v-100 q0 -21 -14.5 -35.5t-35.5 -14.5h-800q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5zM50 200h100q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-100q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5zM350 200h800 q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-800q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5z" /> -<glyph unicode="&#xe057;" d="M400 0h-100v1100h100v-1100zM550 1100h100q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-100q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5zM550 800h500q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-500 q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5zM267 550l-167 -125v75h-200v100h200v75zM550 500h300q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-300q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5zM550 200h600 q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-600q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5z" /> -<glyph unicode="&#xe058;" d="M50 1100h100q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-100q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5zM900 0h-100v1100h100v-1100zM50 800h500q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-500 q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5zM1100 600h200v-100h-200v-75l-167 125l167 125v-75zM50 500h300q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-300q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5zM50 200h600 q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-600q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5z" /> -<glyph unicode="&#xe059;" d="M75 1000h750q31 0 53 -22t22 -53v-650q0 -31 -22 -53t-53 -22h-750q-31 0 -53 22t-22 53v650q0 31 22 53t53 22zM1200 300l-300 300l300 300v-600z" /> -<glyph unicode="&#xe060;" d="M44 1100h1112q18 0 31 -13t13 -31v-1012q0 -18 -13 -31t-31 -13h-1112q-18 0 -31 13t-13 31v1012q0 18 13 31t31 13zM100 1000v-737l247 182l298 -131l-74 156l293 318l236 -288v500h-1000zM342 884q56 0 95 -39t39 -94.5t-39 -95t-95 -39.5t-95 39.5t-39 95t39 94.5 t95 39z" /> -<glyph unicode="&#xe062;" d="M648 1169q117 0 216 -60t156.5 -161t57.5 -218q0 -115 -70 -258q-69 -109 -158 -225.5t-143 -179.5l-54 -62q-9 8 -25.5 24.5t-63.5 67.5t-91 103t-98.5 128t-95.5 148q-60 132 -60 249q0 88 34 169.5t91.5 142t137 96.5t166.5 36zM652.5 974q-91.5 0 -156.5 -65 t-65 -157t65 -156.5t156.5 -64.5t156.5 64.5t65 156.5t-65 157t-156.5 65z" /> -<glyph unicode="&#xe063;" d="M600 1177q117 0 224 -45.5t184.5 -123t123 -184.5t45.5 -224t-45.5 -224t-123 -184.5t-184.5 -123t-224 -45.5t-224 45.5t-184.5 123t-123 184.5t-45.5 224t45.5 224t123 184.5t184.5 123t224 45.5zM600 173v854q-116 0 -214.5 -57t-155.5 -155.5t-57 -214.5t57 -214.5 t155.5 -155.5t214.5 -57z" /> -<glyph unicode="&#xe064;" d="M554 1295q21 -72 57.5 -143.5t76 -130t83 -118t82.5 -117t70 -116t49.5 -126t18.5 -136.5q0 -71 -25.5 -135t-68.5 -111t-99 -82t-118.5 -54t-125.5 -23q-84 5 -161.5 34t-139.5 78.5t-99 125t-37 164.5q0 69 18 136.5t49.5 126.5t69.5 116.5t81.5 117.5t83.5 119 t76.5 131t58.5 143zM344 710q-23 -33 -43.5 -70.5t-40.5 -102.5t-17 -123q1 -37 14.5 -69.5t30 -52t41 -37t38.5 -24.5t33 -15q21 -7 32 -1t13 22l6 34q2 10 -2.5 22t-13.5 19q-5 4 -14 12t-29.5 40.5t-32.5 73.5q-26 89 6 271q2 11 -6 11q-8 1 -15 -10z" /> -<glyph unicode="&#xe065;" d="M1000 1013l108 115q2 1 5 2t13 2t20.5 -1t25 -9.5t28.5 -21.5q22 -22 27 -43t0 -32l-6 -10l-108 -115zM350 1100h400q50 0 105 -13l-187 -187h-368q-41 0 -70.5 -29.5t-29.5 -70.5v-500q0 -41 29.5 -70.5t70.5 -29.5h500q41 0 70.5 29.5t29.5 70.5v182l200 200v-332 q0 -165 -93.5 -257.5t-256.5 -92.5h-400q-165 0 -257.5 92.5t-92.5 257.5v400q0 165 92.5 257.5t257.5 92.5zM1009 803l-362 -362l-161 -50l55 170l355 355z" /> -<glyph unicode="&#xe066;" d="M350 1100h361q-164 -146 -216 -200h-195q-41 0 -70.5 -29.5t-29.5 -70.5v-500q0 -41 29.5 -70.5t70.5 -29.5h500q41 0 70.5 29.5t29.5 70.5l200 153v-103q0 -165 -92.5 -257.5t-257.5 -92.5h-400q-165 0 -257.5 92.5t-92.5 257.5v400q0 165 92.5 257.5t257.5 92.5z M824 1073l339 -301q8 -7 8 -17.5t-8 -17.5l-340 -306q-7 -6 -12.5 -4t-6.5 11v203q-26 1 -54.5 0t-78.5 -7.5t-92 -17.5t-86 -35t-70 -57q10 59 33 108t51.5 81.5t65 58.5t68.5 40.5t67 24.5t56 13.5t40 4.5v210q1 10 6.5 12.5t13.5 -4.5z" /> -<glyph unicode="&#xe067;" d="M350 1100h350q60 0 127 -23l-178 -177h-349q-41 0 -70.5 -29.5t-29.5 -70.5v-500q0 -41 29.5 -70.5t70.5 -29.5h500q41 0 70.5 29.5t29.5 70.5v69l200 200v-219q0 -165 -92.5 -257.5t-257.5 -92.5h-400q-165 0 -257.5 92.5t-92.5 257.5v400q0 165 92.5 257.5t257.5 92.5z M643 639l395 395q7 7 17.5 7t17.5 -7l101 -101q7 -7 7 -17.5t-7 -17.5l-531 -532q-7 -7 -17.5 -7t-17.5 7l-248 248q-7 7 -7 17.5t7 17.5l101 101q7 7 17.5 7t17.5 -7l111 -111q8 -7 18 -7t18 7z" /> -<glyph unicode="&#xe068;" d="M318 918l264 264q8 8 18 8t18 -8l260 -264q7 -8 4.5 -13t-12.5 -5h-170v-200h200v173q0 10 5 12t13 -5l264 -260q8 -7 8 -17.5t-8 -17.5l-264 -265q-8 -7 -13 -5t-5 12v173h-200v-200h170q10 0 12.5 -5t-4.5 -13l-260 -264q-8 -8 -18 -8t-18 8l-264 264q-8 8 -5.5 13 t12.5 5h175v200h-200v-173q0 -10 -5 -12t-13 5l-264 265q-8 7 -8 17.5t8 17.5l264 260q8 7 13 5t5 -12v-173h200v200h-175q-10 0 -12.5 5t5.5 13z" /> -<glyph unicode="&#xe069;" d="M250 1100h100q21 0 35.5 -14.5t14.5 -35.5v-438l464 453q15 14 25.5 10t10.5 -25v-1000q0 -21 -10.5 -25t-25.5 10l-464 453v-438q0 -21 -14.5 -35.5t-35.5 -14.5h-100q-21 0 -35.5 14.5t-14.5 35.5v1000q0 21 14.5 35.5t35.5 14.5z" /> -<glyph unicode="&#xe070;" d="M50 1100h100q21 0 35.5 -14.5t14.5 -35.5v-438l464 453q15 14 25.5 10t10.5 -25v-438l464 453q15 14 25.5 10t10.5 -25v-1000q0 -21 -10.5 -25t-25.5 10l-464 453v-438q0 -21 -10.5 -25t-25.5 10l-464 453v-438q0 -21 -14.5 -35.5t-35.5 -14.5h-100q-21 0 -35.5 14.5 t-14.5 35.5v1000q0 21 14.5 35.5t35.5 14.5z" /> -<glyph unicode="&#xe071;" d="M1200 1050v-1000q0 -21 -10.5 -25t-25.5 10l-464 453v-438q0 -21 -10.5 -25t-25.5 10l-492 480q-15 14 -15 35t15 35l492 480q15 14 25.5 10t10.5 -25v-438l464 453q15 14 25.5 10t10.5 -25z" /> -<glyph unicode="&#xe072;" d="M243 1074l814 -498q18 -11 18 -26t-18 -26l-814 -498q-18 -11 -30.5 -4t-12.5 28v1000q0 21 12.5 28t30.5 -4z" /> -<glyph unicode="&#xe073;" d="M250 1000h200q21 0 35.5 -14.5t14.5 -35.5v-800q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5v800q0 21 14.5 35.5t35.5 14.5zM650 1000h200q21 0 35.5 -14.5t14.5 -35.5v-800q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5v800 q0 21 14.5 35.5t35.5 14.5z" /> -<glyph unicode="&#xe074;" d="M1100 950v-800q0 -21 -14.5 -35.5t-35.5 -14.5h-800q-21 0 -35.5 14.5t-14.5 35.5v800q0 21 14.5 35.5t35.5 14.5h800q21 0 35.5 -14.5t14.5 -35.5z" /> -<glyph unicode="&#xe075;" d="M500 612v438q0 21 10.5 25t25.5 -10l492 -480q15 -14 15 -35t-15 -35l-492 -480q-15 -14 -25.5 -10t-10.5 25v438l-464 -453q-15 -14 -25.5 -10t-10.5 25v1000q0 21 10.5 25t25.5 -10z" /> -<glyph unicode="&#xe076;" d="M1048 1102l100 1q20 0 35 -14.5t15 -35.5l5 -1000q0 -21 -14.5 -35.5t-35.5 -14.5l-100 -1q-21 0 -35.5 14.5t-14.5 35.5l-2 437l-463 -454q-14 -15 -24.5 -10.5t-10.5 25.5l-2 437l-462 -455q-15 -14 -25.5 -9.5t-10.5 24.5l-5 1000q0 21 10.5 25.5t25.5 -10.5l466 -450 l-2 438q0 20 10.5 24.5t25.5 -9.5l466 -451l-2 438q0 21 14.5 35.5t35.5 14.5z" /> -<glyph unicode="&#xe077;" d="M850 1100h100q21 0 35.5 -14.5t14.5 -35.5v-1000q0 -21 -14.5 -35.5t-35.5 -14.5h-100q-21 0 -35.5 14.5t-14.5 35.5v438l-464 -453q-15 -14 -25.5 -10t-10.5 25v1000q0 21 10.5 25t25.5 -10l464 -453v438q0 21 14.5 35.5t35.5 14.5z" /> -<glyph unicode="&#xe078;" d="M686 1081l501 -540q15 -15 10.5 -26t-26.5 -11h-1042q-22 0 -26.5 11t10.5 26l501 540q15 15 36 15t36 -15zM150 400h1000q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-1000q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5z" /> -<glyph unicode="&#xe079;" d="M885 900l-352 -353l352 -353l-197 -198l-552 552l552 550z" /> -<glyph unicode="&#xe080;" d="M1064 547l-551 -551l-198 198l353 353l-353 353l198 198z" /> -<glyph unicode="&#xe081;" d="M600 1177q117 0 224 -45.5t184.5 -123t123 -184.5t45.5 -224t-45.5 -224t-123 -184.5t-184.5 -123t-224 -45.5t-224 45.5t-184.5 123t-123 184.5t-45.5 224t45.5 224t123 184.5t184.5 123t224 45.5zM650 900h-100q-21 0 -35.5 -14.5t-14.5 -35.5v-150h-150 q-21 0 -35.5 -14.5t-14.5 -35.5v-100q0 -21 14.5 -35.5t35.5 -14.5h150v-150q0 -21 14.5 -35.5t35.5 -14.5h100q21 0 35.5 14.5t14.5 35.5v150h150q21 0 35.5 14.5t14.5 35.5v100q0 21 -14.5 35.5t-35.5 14.5h-150v150q0 21 -14.5 35.5t-35.5 14.5z" /> -<glyph unicode="&#xe082;" d="M600 1177q117 0 224 -45.5t184.5 -123t123 -184.5t45.5 -224t-45.5 -224t-123 -184.5t-184.5 -123t-224 -45.5t-224 45.5t-184.5 123t-123 184.5t-45.5 224t45.5 224t123 184.5t184.5 123t224 45.5zM850 700h-500q-21 0 -35.5 -14.5t-14.5 -35.5v-100q0 -21 14.5 -35.5 t35.5 -14.5h500q21 0 35.5 14.5t14.5 35.5v100q0 21 -14.5 35.5t-35.5 14.5z" /> -<glyph unicode="&#xe083;" d="M600 1177q117 0 224 -45.5t184.5 -123t123 -184.5t45.5 -224t-45.5 -224t-123 -184.5t-184.5 -123t-224 -45.5t-224 45.5t-184.5 123t-123 184.5t-45.5 224t45.5 224t123 184.5t184.5 123t224 45.5zM741.5 913q-12.5 0 -21.5 -9l-120 -120l-120 120q-9 9 -21.5 9 t-21.5 -9l-141 -141q-9 -9 -9 -21.5t9 -21.5l120 -120l-120 -120q-9 -9 -9 -21.5t9 -21.5l141 -141q9 -9 21.5 -9t21.5 9l120 120l120 -120q9 -9 21.5 -9t21.5 9l141 141q9 9 9 21.5t-9 21.5l-120 120l120 120q9 9 9 21.5t-9 21.5l-141 141q-9 9 -21.5 9z" /> -<glyph unicode="&#xe084;" d="M600 1177q117 0 224 -45.5t184.5 -123t123 -184.5t45.5 -224t-45.5 -224t-123 -184.5t-184.5 -123t-224 -45.5t-224 45.5t-184.5 123t-123 184.5t-45.5 224t45.5 224t123 184.5t184.5 123t224 45.5zM546 623l-84 85q-7 7 -17.5 7t-18.5 -7l-139 -139q-7 -8 -7 -18t7 -18 l242 -241q7 -8 17.5 -8t17.5 8l375 375q7 7 7 17.5t-7 18.5l-139 139q-7 7 -17.5 7t-17.5 -7z" /> -<glyph unicode="&#xe085;" d="M600 1177q117 0 224 -45.5t184.5 -123t123 -184.5t45.5 -224t-45.5 -224t-123 -184.5t-184.5 -123t-224 -45.5t-224 45.5t-184.5 123t-123 184.5t-45.5 224t45.5 224t123 184.5t184.5 123t224 45.5zM588 941q-29 0 -59 -5.5t-63 -20.5t-58 -38.5t-41.5 -63t-16.5 -89.5 q0 -25 20 -25h131q30 -5 35 11q6 20 20.5 28t45.5 8q20 0 31.5 -10.5t11.5 -28.5q0 -23 -7 -34t-26 -18q-1 0 -13.5 -4t-19.5 -7.5t-20 -10.5t-22 -17t-18.5 -24t-15.5 -35t-8 -46q-1 -8 5.5 -16.5t20.5 -8.5h173q7 0 22 8t35 28t37.5 48t29.5 74t12 100q0 47 -17 83 t-42.5 57t-59.5 34.5t-64 18t-59 4.5zM675 400h-150q-10 0 -17.5 -7.5t-7.5 -17.5v-150q0 -10 7.5 -17.5t17.5 -7.5h150q10 0 17.5 7.5t7.5 17.5v150q0 10 -7.5 17.5t-17.5 7.5z" /> -<glyph unicode="&#xe086;" d="M600 1177q117 0 224 -45.5t184.5 -123t123 -184.5t45.5 -224t-45.5 -224t-123 -184.5t-184.5 -123t-224 -45.5t-224 45.5t-184.5 123t-123 184.5t-45.5 224t45.5 224t123 184.5t184.5 123t224 45.5zM675 1000h-150q-10 0 -17.5 -7.5t-7.5 -17.5v-150q0 -10 7.5 -17.5 t17.5 -7.5h150q10 0 17.5 7.5t7.5 17.5v150q0 10 -7.5 17.5t-17.5 7.5zM675 700h-250q-10 0 -17.5 -7.5t-7.5 -17.5v-50q0 -10 7.5 -17.5t17.5 -7.5h75v-200h-75q-10 0 -17.5 -7.5t-7.5 -17.5v-50q0 -10 7.5 -17.5t17.5 -7.5h350q10 0 17.5 7.5t7.5 17.5v50q0 10 -7.5 17.5 t-17.5 7.5h-75v275q0 10 -7.5 17.5t-17.5 7.5z" /> -<glyph unicode="&#xe087;" d="M525 1200h150q10 0 17.5 -7.5t7.5 -17.5v-194q103 -27 178.5 -102.5t102.5 -178.5h194q10 0 17.5 -7.5t7.5 -17.5v-150q0 -10 -7.5 -17.5t-17.5 -7.5h-194q-27 -103 -102.5 -178.5t-178.5 -102.5v-194q0 -10 -7.5 -17.5t-17.5 -7.5h-150q-10 0 -17.5 7.5t-7.5 17.5v194 q-103 27 -178.5 102.5t-102.5 178.5h-194q-10 0 -17.5 7.5t-7.5 17.5v150q0 10 7.5 17.5t17.5 7.5h194q27 103 102.5 178.5t178.5 102.5v194q0 10 7.5 17.5t17.5 7.5zM700 893v-168q0 -10 -7.5 -17.5t-17.5 -7.5h-150q-10 0 -17.5 7.5t-7.5 17.5v168q-68 -23 -119 -74 t-74 -119h168q10 0 17.5 -7.5t7.5 -17.5v-150q0 -10 -7.5 -17.5t-17.5 -7.5h-168q23 -68 74 -119t119 -74v168q0 10 7.5 17.5t17.5 7.5h150q10 0 17.5 -7.5t7.5 -17.5v-168q68 23 119 74t74 119h-168q-10 0 -17.5 7.5t-7.5 17.5v150q0 10 7.5 17.5t17.5 7.5h168 q-23 68 -74 119t-119 74z" /> -<glyph unicode="&#xe088;" d="M600 1177q117 0 224 -45.5t184.5 -123t123 -184.5t45.5 -224t-45.5 -224t-123 -184.5t-184.5 -123t-224 -45.5t-224 45.5t-184.5 123t-123 184.5t-45.5 224t45.5 224t123 184.5t184.5 123t224 45.5zM600 1027q-116 0 -214.5 -57t-155.5 -155.5t-57 -214.5t57 -214.5 t155.5 -155.5t214.5 -57t214.5 57t155.5 155.5t57 214.5t-57 214.5t-155.5 155.5t-214.5 57zM759 823l64 -64q7 -7 7 -17.5t-7 -17.5l-124 -124l124 -124q7 -7 7 -17.5t-7 -17.5l-64 -64q-7 -7 -17.5 -7t-17.5 7l-124 124l-124 -124q-7 -7 -17.5 -7t-17.5 7l-64 64 q-7 7 -7 17.5t7 17.5l124 124l-124 124q-7 7 -7 17.5t7 17.5l64 64q7 7 17.5 7t17.5 -7l124 -124l124 124q7 7 17.5 7t17.5 -7z" /> -<glyph unicode="&#xe089;" d="M600 1177q117 0 224 -45.5t184.5 -123t123 -184.5t45.5 -224t-45.5 -224t-123 -184.5t-184.5 -123t-224 -45.5t-224 45.5t-184.5 123t-123 184.5t-45.5 224t45.5 224t123 184.5t184.5 123t224 45.5zM600 1027q-116 0 -214.5 -57t-155.5 -155.5t-57 -214.5t57 -214.5 t155.5 -155.5t214.5 -57t214.5 57t155.5 155.5t57 214.5t-57 214.5t-155.5 155.5t-214.5 57zM782 788l106 -106q7 -7 7 -17.5t-7 -17.5l-320 -321q-8 -7 -18 -7t-18 7l-202 203q-8 7 -8 17.5t8 17.5l106 106q7 8 17.5 8t17.5 -8l79 -79l197 197q7 7 17.5 7t17.5 -7z" /> -<glyph unicode="&#xe090;" d="M600 1177q117 0 224 -45.5t184.5 -123t123 -184.5t45.5 -224t-45.5 -224t-123 -184.5t-184.5 -123t-224 -45.5t-224 45.5t-184.5 123t-123 184.5t-45.5 224t45.5 224t123 184.5t184.5 123t224 45.5zM600 1027q-116 0 -214.5 -57t-155.5 -155.5t-57 -214.5q0 -120 65 -225 l587 587q-105 65 -225 65zM965 819l-584 -584q104 -62 219 -62q116 0 214.5 57t155.5 155.5t57 214.5q0 115 -62 219z" /> -<glyph unicode="&#xe091;" d="M39 582l522 427q16 13 27.5 8t11.5 -26v-291h550q21 0 35.5 -14.5t14.5 -35.5v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-550v-291q0 -21 -11.5 -26t-27.5 8l-522 427q-16 13 -16 32t16 32z" /> -<glyph unicode="&#xe092;" d="M639 1009l522 -427q16 -13 16 -32t-16 -32l-522 -427q-16 -13 -27.5 -8t-11.5 26v291h-550q-21 0 -35.5 14.5t-14.5 35.5v200q0 21 14.5 35.5t35.5 14.5h550v291q0 21 11.5 26t27.5 -8z" /> -<glyph unicode="&#xe093;" d="M682 1161l427 -522q13 -16 8 -27.5t-26 -11.5h-291v-550q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5v550h-291q-21 0 -26 11.5t8 27.5l427 522q13 16 32 16t32 -16z" /> -<glyph unicode="&#xe094;" d="M550 1200h200q21 0 35.5 -14.5t14.5 -35.5v-550h291q21 0 26 -11.5t-8 -27.5l-427 -522q-13 -16 -32 -16t-32 16l-427 522q-13 16 -8 27.5t26 11.5h291v550q0 21 14.5 35.5t35.5 14.5z" /> -<glyph unicode="&#xe095;" d="M639 1109l522 -427q16 -13 16 -32t-16 -32l-522 -427q-16 -13 -27.5 -8t-11.5 26v291q-94 -2 -182 -20t-170.5 -52t-147 -92.5t-100.5 -135.5q5 105 27 193.5t67.5 167t113 135t167 91.5t225.5 42v262q0 21 11.5 26t27.5 -8z" /> -<glyph unicode="&#xe096;" d="M850 1200h300q21 0 35.5 -14.5t14.5 -35.5v-300q0 -21 -10.5 -25t-24.5 10l-94 94l-249 -249q-8 -7 -18 -7t-18 7l-106 106q-7 8 -7 18t7 18l249 249l-94 94q-14 14 -10 24.5t25 10.5zM350 0h-300q-21 0 -35.5 14.5t-14.5 35.5v300q0 21 10.5 25t24.5 -10l94 -94l249 249 q8 7 18 7t18 -7l106 -106q7 -8 7 -18t-7 -18l-249 -249l94 -94q14 -14 10 -24.5t-25 -10.5z" /> -<glyph unicode="&#xe097;" d="M1014 1120l106 -106q7 -8 7 -18t-7 -18l-249 -249l94 -94q14 -14 10 -24.5t-25 -10.5h-300q-21 0 -35.5 14.5t-14.5 35.5v300q0 21 10.5 25t24.5 -10l94 -94l249 249q8 7 18 7t18 -7zM250 600h300q21 0 35.5 -14.5t14.5 -35.5v-300q0 -21 -10.5 -25t-24.5 10l-94 94 l-249 -249q-8 -7 -18 -7t-18 7l-106 106q-7 8 -7 18t7 18l249 249l-94 94q-14 14 -10 24.5t25 10.5z" /> -<glyph unicode="&#xe101;" d="M600 1177q117 0 224 -45.5t184.5 -123t123 -184.5t45.5 -224t-45.5 -224t-123 -184.5t-184.5 -123t-224 -45.5t-224 45.5t-184.5 123t-123 184.5t-45.5 224t45.5 224t123 184.5t184.5 123t224 45.5zM704 900h-208q-20 0 -32 -14.5t-8 -34.5l58 -302q4 -20 21.5 -34.5 t37.5 -14.5h54q20 0 37.5 14.5t21.5 34.5l58 302q4 20 -8 34.5t-32 14.5zM675 400h-150q-10 0 -17.5 -7.5t-7.5 -17.5v-150q0 -10 7.5 -17.5t17.5 -7.5h150q10 0 17.5 7.5t7.5 17.5v150q0 10 -7.5 17.5t-17.5 7.5z" /> -<glyph unicode="&#xe102;" d="M260 1200q9 0 19 -2t15 -4l5 -2q22 -10 44 -23l196 -118q21 -13 36 -24q29 -21 37 -12q11 13 49 35l196 118q22 13 45 23q17 7 38 7q23 0 47 -16.5t37 -33.5l13 -16q14 -21 18 -45l25 -123l8 -44q1 -9 8.5 -14.5t17.5 -5.5h61q10 0 17.5 -7.5t7.5 -17.5v-50 q0 -10 -7.5 -17.5t-17.5 -7.5h-50q-10 0 -17.5 -7.5t-7.5 -17.5v-175h-400v300h-200v-300h-400v175q0 10 -7.5 17.5t-17.5 7.5h-50q-10 0 -17.5 7.5t-7.5 17.5v50q0 10 7.5 17.5t17.5 7.5h61q11 0 18 3t7 8q0 4 9 52l25 128q5 25 19 45q2 3 5 7t13.5 15t21.5 19.5t26.5 15.5 t29.5 7zM915 1079l-166 -162q-7 -7 -5 -12t12 -5h219q10 0 15 7t2 17l-51 149q-3 10 -11 12t-15 -6zM463 917l-177 157q-8 7 -16 5t-11 -12l-51 -143q-3 -10 2 -17t15 -7h231q11 0 12.5 5t-5.5 12zM500 0h-375q-10 0 -17.5 7.5t-7.5 17.5v375h400v-400zM1100 400v-375 q0 -10 -7.5 -17.5t-17.5 -7.5h-375v400h400z" /> -<glyph unicode="&#xe103;" d="M1165 1190q8 3 21 -6.5t13 -17.5q-2 -178 -24.5 -323.5t-55.5 -245.5t-87 -174.5t-102.5 -118.5t-118 -68.5t-118.5 -33t-120 -4.5t-105 9.5t-90 16.5q-61 12 -78 11q-4 1 -12.5 0t-34 -14.5t-52.5 -40.5l-153 -153q-26 -24 -37 -14.5t-11 43.5q0 64 42 102q8 8 50.5 45 t66.5 58q19 17 35 47t13 61q-9 55 -10 102.5t7 111t37 130t78 129.5q39 51 80 88t89.5 63.5t94.5 45t113.5 36t129 31t157.5 37t182 47.5zM1116 1098q-8 9 -22.5 -3t-45.5 -50q-38 -47 -119 -103.5t-142 -89.5l-62 -33q-56 -30 -102 -57t-104 -68t-102.5 -80.5t-85.5 -91 t-64 -104.5q-24 -56 -31 -86t2 -32t31.5 17.5t55.5 59.5q25 30 94 75.5t125.5 77.5t147.5 81q70 37 118.5 69t102 79.5t99 111t86.5 148.5q22 50 24 60t-6 19z" /> -<glyph unicode="&#xe104;" d="M653 1231q-39 -67 -54.5 -131t-10.5 -114.5t24.5 -96.5t47.5 -80t63.5 -62.5t68.5 -46.5t65 -30q-4 7 -17.5 35t-18.5 39.5t-17 39.5t-17 43t-13 42t-9.5 44.5t-2 42t4 43t13.5 39t23 38.5q96 -42 165 -107.5t105 -138t52 -156t13 -159t-19 -149.5q-13 -55 -44 -106.5 t-68 -87t-78.5 -64.5t-72.5 -45t-53 -22q-72 -22 -127 -11q-31 6 -13 19q6 3 17 7q13 5 32.5 21t41 44t38.5 63.5t21.5 81.5t-6.5 94.5t-50 107t-104 115.5q10 -104 -0.5 -189t-37 -140.5t-65 -93t-84 -52t-93.5 -11t-95 24.5q-80 36 -131.5 114t-53.5 171q-2 23 0 49.5 t4.5 52.5t13.5 56t27.5 60t46 64.5t69.5 68.5q-8 -53 -5 -102.5t17.5 -90t34 -68.5t44.5 -39t49 -2q31 13 38.5 36t-4.5 55t-29 64.5t-36 75t-26 75.5q-15 85 2 161.5t53.5 128.5t85.5 92.5t93.5 61t81.5 25.5z" /> -<glyph unicode="&#xe105;" d="M600 1094q82 0 160.5 -22.5t140 -59t116.5 -82.5t94.5 -95t68 -95t42.5 -82.5t14 -57.5t-14 -57.5t-43 -82.5t-68.5 -95t-94.5 -95t-116.5 -82.5t-140 -59t-159.5 -22.5t-159.5 22.5t-140 59t-116.5 82.5t-94.5 95t-68.5 95t-43 82.5t-14 57.5t14 57.5t42.5 82.5t68 95 t94.5 95t116.5 82.5t140 59t160.5 22.5zM888 829q-15 15 -18 12t5 -22q25 -57 25 -119q0 -124 -88 -212t-212 -88t-212 88t-88 212q0 59 23 114q8 19 4.5 22t-17.5 -12q-70 -69 -160 -184q-13 -16 -15 -40.5t9 -42.5q22 -36 47 -71t70 -82t92.5 -81t113 -58.5t133.5 -24.5 t133.5 24t113 58.5t92.5 81.5t70 81.5t47 70.5q11 18 9 42.5t-14 41.5q-90 117 -163 189zM448 727l-35 -36q-15 -15 -19.5 -38.5t4.5 -41.5q37 -68 93 -116q16 -13 38.5 -11t36.5 17l35 34q14 15 12.5 33.5t-16.5 33.5q-44 44 -89 117q-11 18 -28 20t-32 -12z" /> -<glyph unicode="&#xe106;" d="M592 0h-148l31 120q-91 20 -175.5 68.5t-143.5 106.5t-103.5 119t-66.5 110t-22 76q0 21 14 57.5t42.5 82.5t68 95t94.5 95t116.5 82.5t140 59t160.5 22.5q61 0 126 -15l32 121h148zM944 770l47 181q108 -85 176.5 -192t68.5 -159q0 -26 -19.5 -71t-59.5 -102t-93 -112 t-129 -104.5t-158 -75.5l46 173q77 49 136 117t97 131q11 18 9 42.5t-14 41.5q-54 70 -107 130zM310 824q-70 -69 -160 -184q-13 -16 -15 -40.5t9 -42.5q18 -30 39 -60t57 -70.5t74 -73t90 -61t105 -41.5l41 154q-107 18 -178.5 101.5t-71.5 193.5q0 59 23 114q8 19 4.5 22 t-17.5 -12zM448 727l-35 -36q-15 -15 -19.5 -38.5t4.5 -41.5q37 -68 93 -116q16 -13 38.5 -11t36.5 17l12 11l22 86l-3 4q-44 44 -89 117q-11 18 -28 20t-32 -12z" /> -<glyph unicode="&#xe107;" d="M-90 100l642 1066q20 31 48 28.5t48 -35.5l642 -1056q21 -32 7.5 -67.5t-50.5 -35.5h-1294q-37 0 -50.5 34t7.5 66zM155 200h345v75q0 10 7.5 17.5t17.5 7.5h150q10 0 17.5 -7.5t7.5 -17.5v-75h345l-445 723zM496 700h208q20 0 32 -14.5t8 -34.5l-58 -252 q-4 -20 -21.5 -34.5t-37.5 -14.5h-54q-20 0 -37.5 14.5t-21.5 34.5l-58 252q-4 20 8 34.5t32 14.5z" /> -<glyph unicode="&#xe108;" d="M650 1200q62 0 106 -44t44 -106v-339l363 -325q15 -14 26 -38.5t11 -44.5v-41q0 -20 -12 -26.5t-29 5.5l-359 249v-263q100 -93 100 -113v-64q0 -21 -13 -29t-32 1l-205 128l-205 -128q-19 -9 -32 -1t-13 29v64q0 20 100 113v263l-359 -249q-17 -12 -29 -5.5t-12 26.5v41 q0 20 11 44.5t26 38.5l363 325v339q0 62 44 106t106 44z" /> -<glyph unicode="&#xe109;" d="M850 1200h100q21 0 35.5 -14.5t14.5 -35.5v-50h50q21 0 35.5 -14.5t14.5 -35.5v-150h-1100v150q0 21 14.5 35.5t35.5 14.5h50v50q0 21 14.5 35.5t35.5 14.5h100q21 0 35.5 -14.5t14.5 -35.5v-50h500v50q0 21 14.5 35.5t35.5 14.5zM1100 800v-750q0 -21 -14.5 -35.5 t-35.5 -14.5h-1000q-21 0 -35.5 14.5t-14.5 35.5v750h1100zM100 600v-100h100v100h-100zM300 600v-100h100v100h-100zM500 600v-100h100v100h-100zM700 600v-100h100v100h-100zM900 600v-100h100v100h-100zM100 400v-100h100v100h-100zM300 400v-100h100v100h-100zM500 400 v-100h100v100h-100zM700 400v-100h100v100h-100zM900 400v-100h100v100h-100zM100 200v-100h100v100h-100zM300 200v-100h100v100h-100zM500 200v-100h100v100h-100zM700 200v-100h100v100h-100zM900 200v-100h100v100h-100z" /> -<glyph unicode="&#xe110;" d="M1135 1165l249 -230q15 -14 15 -35t-15 -35l-249 -230q-14 -14 -24.5 -10t-10.5 25v150h-159l-600 -600h-291q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5h209l600 600h241v150q0 21 10.5 25t24.5 -10zM522 819l-141 -141l-122 122h-209q-21 0 -35.5 14.5 t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5h291zM1135 565l249 -230q15 -14 15 -35t-15 -35l-249 -230q-14 -14 -24.5 -10t-10.5 25v150h-241l-181 181l141 141l122 -122h159v150q0 21 10.5 25t24.5 -10z" /> -<glyph unicode="&#xe111;" d="M100 1100h1000q41 0 70.5 -29.5t29.5 -70.5v-600q0 -41 -29.5 -70.5t-70.5 -29.5h-596l-304 -300v300h-100q-41 0 -70.5 29.5t-29.5 70.5v600q0 41 29.5 70.5t70.5 29.5z" /> -<glyph unicode="&#xe112;" d="M150 1200h200q21 0 35.5 -14.5t14.5 -35.5v-250h-300v250q0 21 14.5 35.5t35.5 14.5zM850 1200h200q21 0 35.5 -14.5t14.5 -35.5v-250h-300v250q0 21 14.5 35.5t35.5 14.5zM1100 800v-300q0 -41 -3 -77.5t-15 -89.5t-32 -96t-58 -89t-89 -77t-129 -51t-174 -20t-174 20 t-129 51t-89 77t-58 89t-32 96t-15 89.5t-3 77.5v300h300v-250v-27v-42.5t1.5 -41t5 -38t10 -35t16.5 -30t25.5 -24.5t35 -19t46.5 -12t60 -4t60 4.5t46.5 12.5t35 19.5t25 25.5t17 30.5t10 35t5 38t2 40.5t-0.5 42v25v250h300z" /> -<glyph unicode="&#xe113;" d="M1100 411l-198 -199l-353 353l-353 -353l-197 199l551 551z" /> -<glyph unicode="&#xe114;" d="M1101 789l-550 -551l-551 551l198 199l353 -353l353 353z" /> -<glyph unicode="&#xe115;" d="M404 1000h746q21 0 35.5 -14.5t14.5 -35.5v-551h150q21 0 25 -10.5t-10 -24.5l-230 -249q-14 -15 -35 -15t-35 15l-230 249q-14 14 -10 24.5t25 10.5h150v401h-381zM135 984l230 -249q14 -14 10 -24.5t-25 -10.5h-150v-400h385l215 -200h-750q-21 0 -35.5 14.5 t-14.5 35.5v550h-150q-21 0 -25 10.5t10 24.5l230 249q14 15 35 15t35 -15z" /> -<glyph unicode="&#xe116;" d="M56 1200h94q17 0 31 -11t18 -27l38 -162h896q24 0 39 -18.5t10 -42.5l-100 -475q-5 -21 -27 -42.5t-55 -21.5h-633l48 -200h535q21 0 35.5 -14.5t14.5 -35.5t-14.5 -35.5t-35.5 -14.5h-50v-50q0 -21 -14.5 -35.5t-35.5 -14.5t-35.5 14.5t-14.5 35.5v50h-300v-50 q0 -21 -14.5 -35.5t-35.5 -14.5t-35.5 14.5t-14.5 35.5v50h-31q-18 0 -32.5 10t-20.5 19l-5 10l-201 961h-54q-20 0 -35 14.5t-15 35.5t15 35.5t35 14.5z" /> -<glyph unicode="&#xe117;" d="M1200 1000v-100h-1200v100h200q0 41 29.5 70.5t70.5 29.5h300q41 0 70.5 -29.5t29.5 -70.5h500zM0 800h1200v-800h-1200v800z" /> -<glyph unicode="&#xe118;" d="M200 800l-200 -400v600h200q0 41 29.5 70.5t70.5 29.5h300q42 0 71 -29.5t29 -70.5h500v-200h-1000zM1500 700l-300 -700h-1200l300 700h1200z" /> -<glyph unicode="&#xe119;" d="M635 1184l230 -249q14 -14 10 -24.5t-25 -10.5h-150v-601h150q21 0 25 -10.5t-10 -24.5l-230 -249q-14 -15 -35 -15t-35 15l-230 249q-14 14 -10 24.5t25 10.5h150v601h-150q-21 0 -25 10.5t10 24.5l230 249q14 15 35 15t35 -15z" /> -<glyph unicode="&#xe120;" d="M936 864l249 -229q14 -15 14 -35.5t-14 -35.5l-249 -229q-15 -15 -25.5 -10.5t-10.5 24.5v151h-600v-151q0 -20 -10.5 -24.5t-25.5 10.5l-249 229q-14 15 -14 35.5t14 35.5l249 229q15 15 25.5 10.5t10.5 -25.5v-149h600v149q0 21 10.5 25.5t25.5 -10.5z" /> -<glyph unicode="&#xe121;" d="M1169 400l-172 732q-5 23 -23 45.5t-38 22.5h-672q-20 0 -38 -20t-23 -41l-172 -739h1138zM1100 300h-1000q-41 0 -70.5 -29.5t-29.5 -70.5v-100q0 -41 29.5 -70.5t70.5 -29.5h1000q41 0 70.5 29.5t29.5 70.5v100q0 41 -29.5 70.5t-70.5 29.5zM800 100v100h100v-100h-100 zM1000 100v100h100v-100h-100z" /> -<glyph unicode="&#xe122;" d="M1150 1100q21 0 35.5 -14.5t14.5 -35.5v-850q0 -21 -14.5 -35.5t-35.5 -14.5t-35.5 14.5t-14.5 35.5v850q0 21 14.5 35.5t35.5 14.5zM1000 200l-675 200h-38l47 -276q3 -16 -5.5 -20t-29.5 -4h-7h-84q-20 0 -34.5 14t-18.5 35q-55 337 -55 351v250v6q0 16 1 23.5t6.5 14 t17.5 6.5h200l675 250v-850zM0 750v-250q-4 0 -11 0.5t-24 6t-30 15t-24 30t-11 48.5v50q0 26 10.5 46t25 30t29 16t25.5 7z" /> -<glyph unicode="&#xe123;" d="M553 1200h94q20 0 29 -10.5t3 -29.5l-18 -37q83 -19 144 -82.5t76 -140.5l63 -327l118 -173h17q19 0 33 -14.5t14 -35t-13 -40.5t-31 -27q-8 -4 -23 -9.5t-65 -19.5t-103 -25t-132.5 -20t-158.5 -9q-57 0 -115 5t-104 12t-88.5 15.5t-73.5 17.5t-54.5 16t-35.5 12l-11 4 q-18 8 -31 28t-13 40.5t14 35t33 14.5h17l118 173l63 327q15 77 76 140t144 83l-18 32q-6 19 3.5 32t28.5 13zM498 110q50 -6 102 -6q53 0 102 6q-12 -49 -39.5 -79.5t-62.5 -30.5t-63 30.5t-39 79.5z" /> -<glyph unicode="&#xe124;" d="M800 946l224 78l-78 -224l234 -45l-180 -155l180 -155l-234 -45l78 -224l-224 78l-45 -234l-155 180l-155 -180l-45 234l-224 -78l78 224l-234 45l180 155l-180 155l234 45l-78 224l224 -78l45 234l155 -180l155 180z" /> -<glyph unicode="&#xe125;" d="M650 1200h50q40 0 70 -40.5t30 -84.5v-150l-28 -125h328q40 0 70 -40.5t30 -84.5v-100q0 -45 -29 -74l-238 -344q-16 -24 -38 -40.5t-45 -16.5h-250q-7 0 -42 25t-66 50l-31 25h-61q-45 0 -72.5 18t-27.5 57v400q0 36 20 63l145 196l96 198q13 28 37.5 48t51.5 20z M650 1100l-100 -212l-150 -213v-375h100l136 -100h214l250 375v125h-450l50 225v175h-50zM50 800h100q21 0 35.5 -14.5t14.5 -35.5v-500q0 -21 -14.5 -35.5t-35.5 -14.5h-100q-21 0 -35.5 14.5t-14.5 35.5v500q0 21 14.5 35.5t35.5 14.5z" /> -<glyph unicode="&#xe126;" d="M600 1100h250q23 0 45 -16.5t38 -40.5l238 -344q29 -29 29 -74v-100q0 -44 -30 -84.5t-70 -40.5h-328q28 -118 28 -125v-150q0 -44 -30 -84.5t-70 -40.5h-50q-27 0 -51.5 20t-37.5 48l-96 198l-145 196q-20 27 -20 63v400q0 39 27.5 57t72.5 18h61q124 100 139 100z M50 1000h100q21 0 35.5 -14.5t14.5 -35.5v-500q0 -21 -14.5 -35.5t-35.5 -14.5h-100q-21 0 -35.5 14.5t-14.5 35.5v500q0 21 14.5 35.5t35.5 14.5zM636 1000l-136 -100h-100v-375l150 -213l100 -212h50v175l-50 225h450v125l-250 375h-214z" /> -<glyph unicode="&#xe127;" d="M356 873l363 230q31 16 53 -6l110 -112q13 -13 13.5 -32t-11.5 -34l-84 -121h302q84 0 138 -38t54 -110t-55 -111t-139 -39h-106l-131 -339q-6 -21 -19.5 -41t-28.5 -20h-342q-7 0 -90 81t-83 94v525q0 17 14 35.5t28 28.5zM400 792v-503l100 -89h293l131 339 q6 21 19.5 41t28.5 20h203q21 0 30.5 25t0.5 50t-31 25h-456h-7h-6h-5.5t-6 0.5t-5 1.5t-5 2t-4 2.5t-4 4t-2.5 4.5q-12 25 5 47l146 183l-86 83zM50 800h100q21 0 35.5 -14.5t14.5 -35.5v-500q0 -21 -14.5 -35.5t-35.5 -14.5h-100q-21 0 -35.5 14.5t-14.5 35.5v500 q0 21 14.5 35.5t35.5 14.5z" /> -<glyph unicode="&#xe128;" d="M475 1103l366 -230q2 -1 6 -3.5t14 -10.5t18 -16.5t14.5 -20t6.5 -22.5v-525q0 -13 -86 -94t-93 -81h-342q-15 0 -28.5 20t-19.5 41l-131 339h-106q-85 0 -139.5 39t-54.5 111t54 110t138 38h302l-85 121q-11 15 -10.5 34t13.5 32l110 112q22 22 53 6zM370 945l146 -183 q17 -22 5 -47q-2 -2 -3.5 -4.5t-4 -4t-4 -2.5t-5 -2t-5 -1.5t-6 -0.5h-6h-6.5h-6h-475v-100h221q15 0 29 -20t20 -41l130 -339h294l106 89v503l-342 236zM1050 800h100q21 0 35.5 -14.5t14.5 -35.5v-500q0 -21 -14.5 -35.5t-35.5 -14.5h-100q-21 0 -35.5 14.5t-14.5 35.5 v500q0 21 14.5 35.5t35.5 14.5z" /> -<glyph unicode="&#xe129;" d="M550 1294q72 0 111 -55t39 -139v-106l339 -131q21 -6 41 -19.5t20 -28.5v-342q0 -7 -81 -90t-94 -83h-525q-17 0 -35.5 14t-28.5 28l-9 14l-230 363q-16 31 6 53l112 110q13 13 32 13.5t34 -11.5l121 -84v302q0 84 38 138t110 54zM600 972v203q0 21 -25 30.5t-50 0.5 t-25 -31v-456v-7v-6v-5.5t-0.5 -6t-1.5 -5t-2 -5t-2.5 -4t-4 -4t-4.5 -2.5q-25 -12 -47 5l-183 146l-83 -86l236 -339h503l89 100v293l-339 131q-21 6 -41 19.5t-20 28.5zM450 200h500q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-500 q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5z" /> -<glyph unicode="&#xe130;" d="M350 1100h500q21 0 35.5 14.5t14.5 35.5v100q0 21 -14.5 35.5t-35.5 14.5h-500q-21 0 -35.5 -14.5t-14.5 -35.5v-100q0 -21 14.5 -35.5t35.5 -14.5zM600 306v-106q0 -84 -39 -139t-111 -55t-110 54t-38 138v302l-121 -84q-15 -12 -34 -11.5t-32 13.5l-112 110 q-22 22 -6 53l230 363q1 2 3.5 6t10.5 13.5t16.5 17t20 13.5t22.5 6h525q13 0 94 -83t81 -90v-342q0 -15 -20 -28.5t-41 -19.5zM308 900l-236 -339l83 -86l183 146q22 17 47 5q2 -1 4.5 -2.5t4 -4t2.5 -4t2 -5t1.5 -5t0.5 -6v-5.5v-6v-7v-456q0 -22 25 -31t50 0.5t25 30.5 v203q0 15 20 28.5t41 19.5l339 131v293l-89 100h-503z" /> -<glyph unicode="&#xe131;" d="M600 1178q118 0 225 -45.5t184.5 -123t123 -184.5t45.5 -225t-45.5 -225t-123 -184.5t-184.5 -123t-225 -45.5t-225 45.5t-184.5 123t-123 184.5t-45.5 225t45.5 225t123 184.5t184.5 123t225 45.5zM914 632l-275 223q-16 13 -27.5 8t-11.5 -26v-137h-275 q-10 0 -17.5 -7.5t-7.5 -17.5v-150q0 -10 7.5 -17.5t17.5 -7.5h275v-137q0 -21 11.5 -26t27.5 8l275 223q16 13 16 32t-16 32z" /> -<glyph unicode="&#xe132;" d="M600 1178q118 0 225 -45.5t184.5 -123t123 -184.5t45.5 -225t-45.5 -225t-123 -184.5t-184.5 -123t-225 -45.5t-225 45.5t-184.5 123t-123 184.5t-45.5 225t45.5 225t123 184.5t184.5 123t225 45.5zM561 855l-275 -223q-16 -13 -16 -32t16 -32l275 -223q16 -13 27.5 -8 t11.5 26v137h275q10 0 17.5 7.5t7.5 17.5v150q0 10 -7.5 17.5t-17.5 7.5h-275v137q0 21 -11.5 26t-27.5 -8z" /> -<glyph unicode="&#xe133;" d="M600 1178q118 0 225 -45.5t184.5 -123t123 -184.5t45.5 -225t-45.5 -225t-123 -184.5t-184.5 -123t-225 -45.5t-225 45.5t-184.5 123t-123 184.5t-45.5 225t45.5 225t123 184.5t184.5 123t225 45.5zM855 639l-223 275q-13 16 -32 16t-32 -16l-223 -275q-13 -16 -8 -27.5 t26 -11.5h137v-275q0 -10 7.5 -17.5t17.5 -7.5h150q10 0 17.5 7.5t7.5 17.5v275h137q21 0 26 11.5t-8 27.5z" /> -<glyph unicode="&#xe134;" d="M600 1178q118 0 225 -45.5t184.5 -123t123 -184.5t45.5 -225t-45.5 -225t-123 -184.5t-184.5 -123t-225 -45.5t-225 45.5t-184.5 123t-123 184.5t-45.5 225t45.5 225t123 184.5t184.5 123t225 45.5zM675 900h-150q-10 0 -17.5 -7.5t-7.5 -17.5v-275h-137q-21 0 -26 -11.5 t8 -27.5l223 -275q13 -16 32 -16t32 16l223 275q13 16 8 27.5t-26 11.5h-137v275q0 10 -7.5 17.5t-17.5 7.5z" /> -<glyph unicode="&#xe135;" d="M600 1176q116 0 222.5 -46t184 -123.5t123.5 -184t46 -222.5t-46 -222.5t-123.5 -184t-184 -123.5t-222.5 -46t-222.5 46t-184 123.5t-123.5 184t-46 222.5t46 222.5t123.5 184t184 123.5t222.5 46zM627 1101q-15 -12 -36.5 -20.5t-35.5 -12t-43 -8t-39 -6.5 q-15 -3 -45.5 0t-45.5 -2q-20 -7 -51.5 -26.5t-34.5 -34.5q-3 -11 6.5 -22.5t8.5 -18.5q-3 -34 -27.5 -91t-29.5 -79q-9 -34 5 -93t8 -87q0 -9 17 -44.5t16 -59.5q12 0 23 -5t23.5 -15t19.5 -14q16 -8 33 -15t40.5 -15t34.5 -12q21 -9 52.5 -32t60 -38t57.5 -11 q7 -15 -3 -34t-22.5 -40t-9.5 -38q13 -21 23 -34.5t27.5 -27.5t36.5 -18q0 -7 -3.5 -16t-3.5 -14t5 -17q104 -2 221 112q30 29 46.5 47t34.5 49t21 63q-13 8 -37 8.5t-36 7.5q-15 7 -49.5 15t-51.5 19q-18 0 -41 -0.5t-43 -1.5t-42 -6.5t-38 -16.5q-51 -35 -66 -12 q-4 1 -3.5 25.5t0.5 25.5q-6 13 -26.5 17.5t-24.5 6.5q1 15 -0.5 30.5t-7 28t-18.5 11.5t-31 -21q-23 -25 -42 4q-19 28 -8 58q6 16 22 22q6 -1 26 -1.5t33.5 -4t19.5 -13.5q7 -12 18 -24t21.5 -20.5t20 -15t15.5 -10.5l5 -3q2 12 7.5 30.5t8 34.5t-0.5 32q-3 18 3.5 29 t18 22.5t15.5 24.5q6 14 10.5 35t8 31t15.5 22.5t34 22.5q-6 18 10 36q8 0 24 -1.5t24.5 -1.5t20 4.5t20.5 15.5q-10 23 -31 42.5t-37.5 29.5t-49 27t-43.5 23q0 1 2 8t3 11.5t1.5 10.5t-1 9.5t-4.5 4.5q31 -13 58.5 -14.5t38.5 2.5l12 5q5 28 -9.5 46t-36.5 24t-50 15 t-41 20q-18 -4 -37 0zM613 994q0 -17 8 -42t17 -45t9 -23q-8 1 -39.5 5.5t-52.5 10t-37 16.5q3 11 16 29.5t16 25.5q10 -10 19 -10t14 6t13.5 14.5t16.5 12.5z" /> -<glyph unicode="&#xe136;" d="M756 1157q164 92 306 -9l-259 -138l145 -232l251 126q6 -89 -34 -156.5t-117 -110.5q-60 -34 -127 -39.5t-126 16.5l-596 -596q-15 -16 -36.5 -16t-36.5 16l-111 110q-15 15 -15 36.5t15 37.5l600 599q-34 101 5.5 201.5t135.5 154.5z" /> -<glyph unicode="&#xe137;" horiz-adv-x="1220" d="M100 1196h1000q41 0 70.5 -29.5t29.5 -70.5v-100q0 -41 -29.5 -70.5t-70.5 -29.5h-1000q-41 0 -70.5 29.5t-29.5 70.5v100q0 41 29.5 70.5t70.5 29.5zM1100 1096h-200v-100h200v100zM100 796h1000q41 0 70.5 -29.5t29.5 -70.5v-100q0 -41 -29.5 -70.5t-70.5 -29.5h-1000 q-41 0 -70.5 29.5t-29.5 70.5v100q0 41 29.5 70.5t70.5 29.5zM1100 696h-500v-100h500v100zM100 396h1000q41 0 70.5 -29.5t29.5 -70.5v-100q0 -41 -29.5 -70.5t-70.5 -29.5h-1000q-41 0 -70.5 29.5t-29.5 70.5v100q0 41 29.5 70.5t70.5 29.5zM1100 296h-300v-100h300v100z " /> -<glyph unicode="&#xe138;" d="M150 1200h900q21 0 35.5 -14.5t14.5 -35.5t-14.5 -35.5t-35.5 -14.5h-900q-21 0 -35.5 14.5t-14.5 35.5t14.5 35.5t35.5 14.5zM700 500v-300l-200 -200v500l-350 500h900z" /> -<glyph unicode="&#xe139;" d="M500 1200h200q41 0 70.5 -29.5t29.5 -70.5v-100h300q41 0 70.5 -29.5t29.5 -70.5v-400h-500v100h-200v-100h-500v400q0 41 29.5 70.5t70.5 29.5h300v100q0 41 29.5 70.5t70.5 29.5zM500 1100v-100h200v100h-200zM1200 400v-200q0 -41 -29.5 -70.5t-70.5 -29.5h-1000 q-41 0 -70.5 29.5t-29.5 70.5v200h1200z" /> -<glyph unicode="&#xe140;" d="M50 1200h300q21 0 25 -10.5t-10 -24.5l-94 -94l199 -199q7 -8 7 -18t-7 -18l-106 -106q-8 -7 -18 -7t-18 7l-199 199l-94 -94q-14 -14 -24.5 -10t-10.5 25v300q0 21 14.5 35.5t35.5 14.5zM850 1200h300q21 0 35.5 -14.5t14.5 -35.5v-300q0 -21 -10.5 -25t-24.5 10l-94 94 l-199 -199q-8 -7 -18 -7t-18 7l-106 106q-7 8 -7 18t7 18l199 199l-94 94q-14 14 -10 24.5t25 10.5zM364 470l106 -106q7 -8 7 -18t-7 -18l-199 -199l94 -94q14 -14 10 -24.5t-25 -10.5h-300q-21 0 -35.5 14.5t-14.5 35.5v300q0 21 10.5 25t24.5 -10l94 -94l199 199 q8 7 18 7t18 -7zM1071 271l94 94q14 14 24.5 10t10.5 -25v-300q0 -21 -14.5 -35.5t-35.5 -14.5h-300q-21 0 -25 10.5t10 24.5l94 94l-199 199q-7 8 -7 18t7 18l106 106q8 7 18 7t18 -7z" /> -<glyph unicode="&#xe141;" d="M596 1192q121 0 231.5 -47.5t190 -127t127 -190t47.5 -231.5t-47.5 -231.5t-127 -190.5t-190 -127t-231.5 -47t-231.5 47t-190.5 127t-127 190.5t-47 231.5t47 231.5t127 190t190.5 127t231.5 47.5zM596 1010q-112 0 -207.5 -55.5t-151 -151t-55.5 -207.5t55.5 -207.5 t151 -151t207.5 -55.5t207.5 55.5t151 151t55.5 207.5t-55.5 207.5t-151 151t-207.5 55.5zM454.5 905q22.5 0 38.5 -16t16 -38.5t-16 -39t-38.5 -16.5t-38.5 16.5t-16 39t16 38.5t38.5 16zM754.5 905q22.5 0 38.5 -16t16 -38.5t-16 -39t-38 -16.5q-14 0 -29 10l-55 -145 q17 -23 17 -51q0 -36 -25.5 -61.5t-61.5 -25.5t-61.5 25.5t-25.5 61.5q0 32 20.5 56.5t51.5 29.5l122 126l1 1q-9 14 -9 28q0 23 16 39t38.5 16zM345.5 709q22.5 0 38.5 -16t16 -38.5t-16 -38.5t-38.5 -16t-38.5 16t-16 38.5t16 38.5t38.5 16zM854.5 709q22.5 0 38.5 -16 t16 -38.5t-16 -38.5t-38.5 -16t-38.5 16t-16 38.5t16 38.5t38.5 16z" /> -<glyph unicode="&#xe142;" d="M546 173l469 470q91 91 99 192q7 98 -52 175.5t-154 94.5q-22 4 -47 4q-34 0 -66.5 -10t-56.5 -23t-55.5 -38t-48 -41.5t-48.5 -47.5q-376 -375 -391 -390q-30 -27 -45 -41.5t-37.5 -41t-32 -46.5t-16 -47.5t-1.5 -56.5q9 -62 53.5 -95t99.5 -33q74 0 125 51l548 548 q36 36 20 75q-7 16 -21.5 26t-32.5 10q-26 0 -50 -23q-13 -12 -39 -38l-341 -338q-15 -15 -35.5 -15.5t-34.5 13.5t-14 34.5t14 34.5q327 333 361 367q35 35 67.5 51.5t78.5 16.5q14 0 29 -1q44 -8 74.5 -35.5t43.5 -68.5q14 -47 2 -96.5t-47 -84.5q-12 -11 -32 -32 t-79.5 -81t-114.5 -115t-124.5 -123.5t-123 -119.5t-96.5 -89t-57 -45q-56 -27 -120 -27q-70 0 -129 32t-93 89q-48 78 -35 173t81 163l511 511q71 72 111 96q91 55 198 55q80 0 152 -33q78 -36 129.5 -103t66.5 -154q17 -93 -11 -183.5t-94 -156.5l-482 -476 q-15 -15 -36 -16t-37 14t-17.5 34t14.5 35z" /> -<glyph unicode="&#xe143;" d="M649 949q48 68 109.5 104t121.5 38.5t118.5 -20t102.5 -64t71 -100.5t27 -123q0 -57 -33.5 -117.5t-94 -124.5t-126.5 -127.5t-150 -152.5t-146 -174q-62 85 -145.5 174t-150 152.5t-126.5 127.5t-93.5 124.5t-33.5 117.5q0 64 28 123t73 100.5t104 64t119 20 t120.5 -38.5t104.5 -104zM896 972q-33 0 -64.5 -19t-56.5 -46t-47.5 -53.5t-43.5 -45.5t-37.5 -19t-36 19t-40 45.5t-43 53.5t-54 46t-65.5 19q-67 0 -122.5 -55.5t-55.5 -132.5q0 -23 13.5 -51t46 -65t57.5 -63t76 -75l22 -22q15 -14 44 -44t50.5 -51t46 -44t41 -35t23 -12 t23.5 12t42.5 36t46 44t52.5 52t44 43q4 4 12 13q43 41 63.5 62t52 55t46 55t26 46t11.5 44q0 79 -53 133.5t-120 54.5z" /> -<glyph unicode="&#xe144;" d="M776.5 1214q93.5 0 159.5 -66l141 -141q66 -66 66 -160q0 -42 -28 -95.5t-62 -87.5l-29 -29q-31 53 -77 99l-18 18l95 95l-247 248l-389 -389l212 -212l-105 -106l-19 18l-141 141q-66 66 -66 159t66 159l283 283q65 66 158.5 66zM600 706l105 105q10 -8 19 -17l141 -141 q66 -66 66 -159t-66 -159l-283 -283q-66 -66 -159 -66t-159 66l-141 141q-66 66 -66 159.5t66 159.5l55 55q29 -55 75 -102l18 -17l-95 -95l247 -248l389 389z" /> -<glyph unicode="&#xe145;" d="M603 1200q85 0 162 -15t127 -38t79 -48t29 -46v-953q0 -41 -29.5 -70.5t-70.5 -29.5h-600q-41 0 -70.5 29.5t-29.5 70.5v953q0 21 30 46.5t81 48t129 37.5t163 15zM300 1000v-700h600v700h-600zM600 254q-43 0 -73.5 -30.5t-30.5 -73.5t30.5 -73.5t73.5 -30.5t73.5 30.5 t30.5 73.5t-30.5 73.5t-73.5 30.5z" /> -<glyph unicode="&#xe146;" d="M902 1185l283 -282q15 -15 15 -36t-14.5 -35.5t-35.5 -14.5t-35 15l-36 35l-279 -267v-300l-212 210l-308 -307l-280 -203l203 280l307 308l-210 212h300l267 279l-35 36q-15 14 -15 35t14.5 35.5t35.5 14.5t35 -15z" /> -<glyph unicode="&#xe148;" d="M700 1248v-78q38 -5 72.5 -14.5t75.5 -31.5t71 -53.5t52 -84t24 -118.5h-159q-4 36 -10.5 59t-21 45t-40 35.5t-64.5 20.5v-307l64 -13q34 -7 64 -16.5t70 -32t67.5 -52.5t47.5 -80t20 -112q0 -139 -89 -224t-244 -97v-77h-100v79q-150 16 -237 103q-40 40 -52.5 93.5 t-15.5 139.5h139q5 -77 48.5 -126t117.5 -65v335l-27 8q-46 14 -79 26.5t-72 36t-63 52t-40 72.5t-16 98q0 70 25 126t67.5 92t94.5 57t110 27v77h100zM600 754v274q-29 -4 -50 -11t-42 -21.5t-31.5 -41.5t-10.5 -65q0 -29 7 -50.5t16.5 -34t28.5 -22.5t31.5 -14t37.5 -10 q9 -3 13 -4zM700 547v-310q22 2 42.5 6.5t45 15.5t41.5 27t29 42t12 59.5t-12.5 59.5t-38 44.5t-53 31t-66.5 24.5z" /> -<glyph unicode="&#xe149;" d="M561 1197q84 0 160.5 -40t123.5 -109.5t47 -147.5h-153q0 40 -19.5 71.5t-49.5 48.5t-59.5 26t-55.5 9q-37 0 -79 -14.5t-62 -35.5q-41 -44 -41 -101q0 -26 13.5 -63t26.5 -61t37 -66q6 -9 9 -14h241v-100h-197q8 -50 -2.5 -115t-31.5 -95q-45 -62 -99 -112 q34 10 83 17.5t71 7.5q32 1 102 -16t104 -17q83 0 136 30l50 -147q-31 -19 -58 -30.5t-55 -15.5t-42 -4.5t-46 -0.5q-23 0 -76 17t-111 32.5t-96 11.5q-39 -3 -82 -16t-67 -25l-23 -11l-55 145q4 3 16 11t15.5 10.5t13 9t15.5 12t14.5 14t17.5 18.5q48 55 54 126.5 t-30 142.5h-221v100h166q-23 47 -44 104q-7 20 -12 41.5t-6 55.5t6 66.5t29.5 70.5t58.5 71q97 88 263 88z" /> -<glyph unicode="&#xe150;" d="M400 300h150q21 0 25 -11t-10 -25l-230 -250q-14 -15 -35 -15t-35 15l-230 250q-14 14 -10 25t25 11h150v900h200v-900zM935 1184l230 -249q14 -14 10 -24.5t-25 -10.5h-150v-900h-200v900h-150q-21 0 -25 10.5t10 24.5l230 249q14 15 35 15t35 -15z" /> -<glyph unicode="&#xe151;" d="M1000 700h-100v100h-100v-100h-100v500h300v-500zM400 300h150q21 0 25 -11t-10 -25l-230 -250q-14 -15 -35 -15t-35 15l-230 250q-14 14 -10 25t25 11h150v900h200v-900zM801 1100v-200h100v200h-100zM1000 350l-200 -250h200v-100h-300v150l200 250h-200v100h300v-150z " /> -<glyph unicode="&#xe152;" d="M400 300h150q21 0 25 -11t-10 -25l-230 -250q-14 -15 -35 -15t-35 15l-230 250q-14 14 -10 25t25 11h150v900h200v-900zM1000 1050l-200 -250h200v-100h-300v150l200 250h-200v100h300v-150zM1000 0h-100v100h-100v-100h-100v500h300v-500zM801 400v-200h100v200h-100z " /> -<glyph unicode="&#xe153;" d="M400 300h150q21 0 25 -11t-10 -25l-230 -250q-14 -15 -35 -15t-35 15l-230 250q-14 14 -10 25t25 11h150v900h200v-900zM1000 700h-100v400h-100v100h200v-500zM1100 0h-100v100h-200v400h300v-500zM901 400v-200h100v200h-100z" /> -<glyph unicode="&#xe154;" d="M400 300h150q21 0 25 -11t-10 -25l-230 -250q-14 -15 -35 -15t-35 15l-230 250q-14 14 -10 25t25 11h150v900h200v-900zM1100 700h-100v100h-200v400h300v-500zM901 1100v-200h100v200h-100zM1000 0h-100v400h-100v100h200v-500z" /> -<glyph unicode="&#xe155;" d="M400 300h150q21 0 25 -11t-10 -25l-230 -250q-14 -15 -35 -15t-35 15l-230 250q-14 14 -10 25t25 11h150v900h200v-900zM900 1000h-200v200h200v-200zM1000 700h-300v200h300v-200zM1100 400h-400v200h400v-200zM1200 100h-500v200h500v-200z" /> -<glyph unicode="&#xe156;" d="M400 300h150q21 0 25 -11t-10 -25l-230 -250q-14 -15 -35 -15t-35 15l-230 250q-14 14 -10 25t25 11h150v900h200v-900zM1200 1000h-500v200h500v-200zM1100 700h-400v200h400v-200zM1000 400h-300v200h300v-200zM900 100h-200v200h200v-200z" /> -<glyph unicode="&#xe157;" d="M350 1100h400q162 0 256 -93.5t94 -256.5v-400q0 -165 -93.5 -257.5t-256.5 -92.5h-400q-165 0 -257.5 92.5t-92.5 257.5v400q0 165 92.5 257.5t257.5 92.5zM800 900h-500q-41 0 -70.5 -29.5t-29.5 -70.5v-500q0 -41 29.5 -70.5t70.5 -29.5h500q41 0 70.5 29.5t29.5 70.5 v500q0 41 -29.5 70.5t-70.5 29.5z" /> -<glyph unicode="&#xe158;" d="M350 1100h400q165 0 257.5 -92.5t92.5 -257.5v-400q0 -165 -92.5 -257.5t-257.5 -92.5h-400q-163 0 -256.5 92.5t-93.5 257.5v400q0 163 94 256.5t256 93.5zM800 900h-500q-41 0 -70.5 -29.5t-29.5 -70.5v-500q0 -41 29.5 -70.5t70.5 -29.5h500q41 0 70.5 29.5t29.5 70.5 v500q0 41 -29.5 70.5t-70.5 29.5zM440 770l253 -190q17 -12 17 -30t-17 -30l-253 -190q-16 -12 -28 -6.5t-12 26.5v400q0 21 12 26.5t28 -6.5z" /> -<glyph unicode="&#xe159;" d="M350 1100h400q163 0 256.5 -94t93.5 -256v-400q0 -165 -92.5 -257.5t-257.5 -92.5h-400q-165 0 -257.5 92.5t-92.5 257.5v400q0 163 92.5 256.5t257.5 93.5zM800 900h-500q-41 0 -70.5 -29.5t-29.5 -70.5v-500q0 -41 29.5 -70.5t70.5 -29.5h500q41 0 70.5 29.5t29.5 70.5 v500q0 41 -29.5 70.5t-70.5 29.5zM350 700h400q21 0 26.5 -12t-6.5 -28l-190 -253q-12 -17 -30 -17t-30 17l-190 253q-12 16 -6.5 28t26.5 12z" /> -<glyph unicode="&#xe160;" d="M350 1100h400q165 0 257.5 -92.5t92.5 -257.5v-400q0 -163 -92.5 -256.5t-257.5 -93.5h-400q-163 0 -256.5 94t-93.5 256v400q0 165 92.5 257.5t257.5 92.5zM800 900h-500q-41 0 -70.5 -29.5t-29.5 -70.5v-500q0 -41 29.5 -70.5t70.5 -29.5h500q41 0 70.5 29.5t29.5 70.5 v500q0 41 -29.5 70.5t-70.5 29.5zM580 693l190 -253q12 -16 6.5 -28t-26.5 -12h-400q-21 0 -26.5 12t6.5 28l190 253q12 17 30 17t30 -17z" /> -<glyph unicode="&#xe161;" d="M550 1100h400q165 0 257.5 -92.5t92.5 -257.5v-400q0 -165 -92.5 -257.5t-257.5 -92.5h-400q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5h450q41 0 70.5 29.5t29.5 70.5v500q0 41 -29.5 70.5t-70.5 29.5h-450q-21 0 -35.5 14.5t-14.5 35.5v100 q0 21 14.5 35.5t35.5 14.5zM338 867l324 -284q16 -14 16 -33t-16 -33l-324 -284q-16 -14 -27 -9t-11 26v150h-250q-21 0 -35.5 14.5t-14.5 35.5v200q0 21 14.5 35.5t35.5 14.5h250v150q0 21 11 26t27 -9z" /> -<glyph unicode="&#xe162;" d="M793 1182l9 -9q8 -10 5 -27q-3 -11 -79 -225.5t-78 -221.5l300 1q24 0 32.5 -17.5t-5.5 -35.5q-1 0 -133.5 -155t-267 -312.5t-138.5 -162.5q-12 -15 -26 -15h-9l-9 8q-9 11 -4 32q2 9 42 123.5t79 224.5l39 110h-302q-23 0 -31 19q-10 21 6 41q75 86 209.5 237.5 t228 257t98.5 111.5q9 16 25 16h9z" /> -<glyph unicode="&#xe163;" d="M350 1100h400q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-450q-41 0 -70.5 -29.5t-29.5 -70.5v-500q0 -41 29.5 -70.5t70.5 -29.5h450q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-400q-165 0 -257.5 92.5t-92.5 257.5v400 q0 165 92.5 257.5t257.5 92.5zM938 867l324 -284q16 -14 16 -33t-16 -33l-324 -284q-16 -14 -27 -9t-11 26v150h-250q-21 0 -35.5 14.5t-14.5 35.5v200q0 21 14.5 35.5t35.5 14.5h250v150q0 21 11 26t27 -9z" /> -<glyph unicode="&#xe164;" d="M750 1200h400q21 0 35.5 -14.5t14.5 -35.5v-400q0 -21 -10.5 -25t-24.5 10l-109 109l-312 -312q-15 -15 -35.5 -15t-35.5 15l-141 141q-15 15 -15 35.5t15 35.5l312 312l-109 109q-14 14 -10 24.5t25 10.5zM456 900h-156q-41 0 -70.5 -29.5t-29.5 -70.5v-500 q0 -41 29.5 -70.5t70.5 -29.5h500q41 0 70.5 29.5t29.5 70.5v148l200 200v-298q0 -165 -93.5 -257.5t-256.5 -92.5h-400q-165 0 -257.5 92.5t-92.5 257.5v400q0 165 92.5 257.5t257.5 92.5h300z" /> -<glyph unicode="&#xe165;" d="M600 1186q119 0 227.5 -46.5t187 -125t125 -187t46.5 -227.5t-46.5 -227.5t-125 -187t-187 -125t-227.5 -46.5t-227.5 46.5t-187 125t-125 187t-46.5 227.5t46.5 227.5t125 187t187 125t227.5 46.5zM600 1022q-115 0 -212 -56.5t-153.5 -153.5t-56.5 -212t56.5 -212 t153.5 -153.5t212 -56.5t212 56.5t153.5 153.5t56.5 212t-56.5 212t-153.5 153.5t-212 56.5zM600 794q80 0 137 -57t57 -137t-57 -137t-137 -57t-137 57t-57 137t57 137t137 57z" /> -<glyph unicode="&#xe166;" d="M450 1200h200q21 0 35.5 -14.5t14.5 -35.5v-350h245q20 0 25 -11t-9 -26l-383 -426q-14 -15 -33.5 -15t-32.5 15l-379 426q-13 15 -8.5 26t25.5 11h250v350q0 21 14.5 35.5t35.5 14.5zM50 300h1000q21 0 35.5 -14.5t14.5 -35.5v-250h-1100v250q0 21 14.5 35.5t35.5 14.5z M900 200v-50h100v50h-100z" /> -<glyph unicode="&#xe167;" d="M583 1182l378 -435q14 -15 9 -31t-26 -16h-244v-250q0 -20 -17 -35t-39 -15h-200q-20 0 -32 14.5t-12 35.5v250h-250q-20 0 -25.5 16.5t8.5 31.5l383 431q14 16 33.5 17t33.5 -14zM50 300h1000q21 0 35.5 -14.5t14.5 -35.5v-250h-1100v250q0 21 14.5 35.5t35.5 14.5z M900 200v-50h100v50h-100z" /> -<glyph unicode="&#xe168;" d="M396 723l369 369q7 7 17.5 7t17.5 -7l139 -139q7 -8 7 -18.5t-7 -17.5l-525 -525q-7 -8 -17.5 -8t-17.5 8l-292 291q-7 8 -7 18t7 18l139 139q8 7 18.5 7t17.5 -7zM50 300h1000q21 0 35.5 -14.5t14.5 -35.5v-250h-1100v250q0 21 14.5 35.5t35.5 14.5zM900 200v-50h100v50 h-100z" /> -<glyph unicode="&#xe169;" d="M135 1023l142 142q14 14 35 14t35 -14l77 -77l-212 -212l-77 76q-14 15 -14 36t14 35zM655 855l210 210q14 14 24.5 10t10.5 -25l-2 -599q-1 -20 -15.5 -35t-35.5 -15l-597 -1q-21 0 -25 10.5t10 24.5l208 208l-154 155l212 212zM50 300h1000q21 0 35.5 -14.5t14.5 -35.5 v-250h-1100v250q0 21 14.5 35.5t35.5 14.5zM900 200v-50h100v50h-100z" /> -<glyph unicode="&#xe170;" d="M350 1200l599 -2q20 -1 35 -15.5t15 -35.5l1 -597q0 -21 -10.5 -25t-24.5 10l-208 208l-155 -154l-212 212l155 154l-210 210q-14 14 -10 24.5t25 10.5zM524 512l-76 -77q-15 -14 -36 -14t-35 14l-142 142q-14 14 -14 35t14 35l77 77zM50 300h1000q21 0 35.5 -14.5 t14.5 -35.5v-250h-1100v250q0 21 14.5 35.5t35.5 14.5zM900 200v-50h100v50h-100z" /> -<glyph unicode="&#xe171;" d="M1200 103l-483 276l-314 -399v423h-399l1196 796v-1096zM483 424v-230l683 953z" /> -<glyph unicode="&#xe172;" d="M1100 1000v-850q0 -21 -14.5 -35.5t-35.5 -14.5h-150v400h-700v-400h-150q-21 0 -35.5 14.5t-14.5 35.5v1000q0 20 14.5 35t35.5 15h250v-300h500v300h100zM700 1000h-100v200h100v-200z" /> -<glyph unicode="&#xe173;" d="M1100 1000l-2 -149l-299 -299l-95 95q-9 9 -21.5 9t-21.5 -9l-149 -147h-312v-400h-150q-21 0 -35.5 14.5t-14.5 35.5v1000q0 20 14.5 35t35.5 15h250v-300h500v300h100zM700 1000h-100v200h100v-200zM1132 638l106 -106q7 -7 7 -17.5t-7 -17.5l-420 -421q-8 -7 -18 -7 t-18 7l-202 203q-8 7 -8 17.5t8 17.5l106 106q7 8 17.5 8t17.5 -8l79 -79l297 297q7 7 17.5 7t17.5 -7z" /> -<glyph unicode="&#xe174;" d="M1100 1000v-269l-103 -103l-134 134q-15 15 -33.5 16.5t-34.5 -12.5l-266 -266h-329v-400h-150q-21 0 -35.5 14.5t-14.5 35.5v1000q0 20 14.5 35t35.5 15h250v-300h500v300h100zM700 1000h-100v200h100v-200zM1202 572l70 -70q15 -15 15 -35.5t-15 -35.5l-131 -131 l131 -131q15 -15 15 -35.5t-15 -35.5l-70 -70q-15 -15 -35.5 -15t-35.5 15l-131 131l-131 -131q-15 -15 -35.5 -15t-35.5 15l-70 70q-15 15 -15 35.5t15 35.5l131 131l-131 131q-15 15 -15 35.5t15 35.5l70 70q15 15 35.5 15t35.5 -15l131 -131l131 131q15 15 35.5 15 t35.5 -15z" /> -<glyph unicode="&#xe175;" d="M1100 1000v-300h-350q-21 0 -35.5 -14.5t-14.5 -35.5v-150h-500v-400h-150q-21 0 -35.5 14.5t-14.5 35.5v1000q0 20 14.5 35t35.5 15h250v-300h500v300h100zM700 1000h-100v200h100v-200zM850 600h100q21 0 35.5 -14.5t14.5 -35.5v-250h150q21 0 25 -10.5t-10 -24.5 l-230 -230q-14 -14 -35 -14t-35 14l-230 230q-14 14 -10 24.5t25 10.5h150v250q0 21 14.5 35.5t35.5 14.5z" /> -<glyph unicode="&#xe176;" d="M1100 1000v-400l-165 165q-14 15 -35 15t-35 -15l-263 -265h-402v-400h-150q-21 0 -35.5 14.5t-14.5 35.5v1000q0 20 14.5 35t35.5 15h250v-300h500v300h100zM700 1000h-100v200h100v-200zM935 565l230 -229q14 -15 10 -25.5t-25 -10.5h-150v-250q0 -20 -14.5 -35 t-35.5 -15h-100q-21 0 -35.5 15t-14.5 35v250h-150q-21 0 -25 10.5t10 25.5l230 229q14 15 35 15t35 -15z" /> -<glyph unicode="&#xe177;" d="M50 1100h1100q21 0 35.5 -14.5t14.5 -35.5v-150h-1200v150q0 21 14.5 35.5t35.5 14.5zM1200 800v-550q0 -21 -14.5 -35.5t-35.5 -14.5h-1100q-21 0 -35.5 14.5t-14.5 35.5v550h1200zM100 500v-200h400v200h-400z" /> -<glyph unicode="&#xe178;" d="M935 1165l248 -230q14 -14 14 -35t-14 -35l-248 -230q-14 -14 -24.5 -10t-10.5 25v150h-400v200h400v150q0 21 10.5 25t24.5 -10zM200 800h-50q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5h50v-200zM400 800h-100v200h100v-200zM18 435l247 230 q14 14 24.5 10t10.5 -25v-150h400v-200h-400v-150q0 -21 -10.5 -25t-24.5 10l-247 230q-15 14 -15 35t15 35zM900 300h-100v200h100v-200zM1000 500h51q20 0 34.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-34.5 -14.5h-51v200z" /> -<glyph unicode="&#xe179;" d="M862 1073l276 116q25 18 43.5 8t18.5 -41v-1106q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5v397q-4 1 -11 5t-24 17.5t-30 29t-24 42t-11 56.5v359q0 31 18.5 65t43.5 52zM550 1200q22 0 34.5 -12.5t14.5 -24.5l1 -13v-450q0 -28 -10.5 -59.5 t-25 -56t-29 -45t-25.5 -31.5l-10 -11v-447q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5v447q-4 4 -11 11.5t-24 30.5t-30 46t-24 55t-11 60v450q0 2 0.5 5.5t4 12t8.5 15t14.5 12t22.5 5.5q20 0 32.5 -12.5t14.5 -24.5l3 -13v-350h100v350v5.5t2.5 12 t7 15t15 12t25.5 5.5q23 0 35.5 -12.5t13.5 -24.5l1 -13v-350h100v350q0 2 0.5 5.5t3 12t7 15t15 12t24.5 5.5z" /> -<glyph unicode="&#xe180;" d="M1200 1100v-56q-4 0 -11 -0.5t-24 -3t-30 -7.5t-24 -15t-11 -24v-888q0 -22 25 -34.5t50 -13.5l25 -2v-56h-400v56q75 0 87.5 6.5t12.5 43.5v394h-500v-394q0 -37 12.5 -43.5t87.5 -6.5v-56h-400v56q4 0 11 0.5t24 3t30 7.5t24 15t11 24v888q0 22 -25 34.5t-50 13.5 l-25 2v56h400v-56q-75 0 -87.5 -6.5t-12.5 -43.5v-394h500v394q0 37 -12.5 43.5t-87.5 6.5v56h400z" /> -<glyph unicode="&#xe181;" d="M675 1000h375q21 0 35.5 -14.5t14.5 -35.5v-150h-105l-295 -98v98l-200 200h-400l100 100h375zM100 900h300q41 0 70.5 -29.5t29.5 -70.5v-500q0 -41 -29.5 -70.5t-70.5 -29.5h-300q-41 0 -70.5 29.5t-29.5 70.5v500q0 41 29.5 70.5t70.5 29.5zM100 800v-200h300v200 h-300zM1100 535l-400 -133v163l400 133v-163zM100 500v-200h300v200h-300zM1100 398v-248q0 -21 -14.5 -35.5t-35.5 -14.5h-375l-100 -100h-375l-100 100h400l200 200h105z" /> -<glyph unicode="&#xe182;" d="M17 1007l162 162q17 17 40 14t37 -22l139 -194q14 -20 11 -44.5t-20 -41.5l-119 -118q102 -142 228 -268t267 -227l119 118q17 17 42.5 19t44.5 -12l192 -136q19 -14 22.5 -37.5t-13.5 -40.5l-163 -162q-3 -1 -9.5 -1t-29.5 2t-47.5 6t-62.5 14.5t-77.5 26.5t-90 42.5 t-101.5 60t-111 83t-119 108.5q-74 74 -133.5 150.5t-94.5 138.5t-60 119.5t-34.5 100t-15 74.5t-4.5 48z" /> -<glyph unicode="&#xe183;" d="M600 1100q92 0 175 -10.5t141.5 -27t108.5 -36.5t81.5 -40t53.5 -37t31 -27l9 -10v-200q0 -21 -14.5 -33t-34.5 -9l-202 34q-20 3 -34.5 20t-14.5 38v146q-141 24 -300 24t-300 -24v-146q0 -21 -14.5 -38t-34.5 -20l-202 -34q-20 -3 -34.5 9t-14.5 33v200q3 4 9.5 10.5 t31 26t54 37.5t80.5 39.5t109 37.5t141 26.5t175 10.5zM600 795q56 0 97 -9.5t60 -23.5t30 -28t12 -24l1 -10v-50l365 -303q14 -15 24.5 -40t10.5 -45v-212q0 -21 -14.5 -35.5t-35.5 -14.5h-1100q-21 0 -35.5 14.5t-14.5 35.5v212q0 20 10.5 45t24.5 40l365 303v50 q0 4 1 10.5t12 23t30 29t60 22.5t97 10z" /> -<glyph unicode="&#xe184;" d="M1100 700l-200 -200h-600l-200 200v500h200v-200h200v200h200v-200h200v200h200v-500zM250 400h700q21 0 35.5 -14.5t14.5 -35.5t-14.5 -35.5t-35.5 -14.5h-12l137 -100h-950l137 100h-12q-21 0 -35.5 14.5t-14.5 35.5t14.5 35.5t35.5 14.5zM50 100h1100q21 0 35.5 -14.5 t14.5 -35.5v-50h-1200v50q0 21 14.5 35.5t35.5 14.5z" /> -<glyph unicode="&#xe185;" d="M700 1100h-100q-41 0 -70.5 -29.5t-29.5 -70.5v-1000h300v1000q0 41 -29.5 70.5t-70.5 29.5zM1100 800h-100q-41 0 -70.5 -29.5t-29.5 -70.5v-700h300v700q0 41 -29.5 70.5t-70.5 29.5zM400 0h-300v400q0 41 29.5 70.5t70.5 29.5h100q41 0 70.5 -29.5t29.5 -70.5v-400z " /> -<glyph unicode="&#xe186;" d="M200 1100h700q124 0 212 -88t88 -212v-500q0 -124 -88 -212t-212 -88h-700q-124 0 -212 88t-88 212v500q0 124 88 212t212 88zM100 900v-700h900v700h-900zM500 700h-200v-100h200v-300h-300v100h200v100h-200v300h300v-100zM900 700v-300l-100 -100h-200v500h200z M700 700v-300h100v300h-100z" /> -<glyph unicode="&#xe187;" d="M200 1100h700q124 0 212 -88t88 -212v-500q0 -124 -88 -212t-212 -88h-700q-124 0 -212 88t-88 212v500q0 124 88 212t212 88zM100 900v-700h900v700h-900zM500 300h-100v200h-100v-200h-100v500h100v-200h100v200h100v-500zM900 700v-300l-100 -100h-200v500h200z M700 700v-300h100v300h-100z" /> -<glyph unicode="&#xe188;" d="M200 1100h700q124 0 212 -88t88 -212v-500q0 -124 -88 -212t-212 -88h-700q-124 0 -212 88t-88 212v500q0 124 88 212t212 88zM100 900v-700h900v700h-900zM500 700h-200v-300h200v-100h-300v500h300v-100zM900 700h-200v-300h200v-100h-300v500h300v-100z" /> -<glyph unicode="&#xe189;" d="M200 1100h700q124 0 212 -88t88 -212v-500q0 -124 -88 -212t-212 -88h-700q-124 0 -212 88t-88 212v500q0 124 88 212t212 88zM100 900v-700h900v700h-900zM500 400l-300 150l300 150v-300zM900 550l-300 -150v300z" /> -<glyph unicode="&#xe190;" d="M200 1100h700q124 0 212 -88t88 -212v-500q0 -124 -88 -212t-212 -88h-700q-124 0 -212 88t-88 212v500q0 124 88 212t212 88zM100 900v-700h900v700h-900zM900 300h-700v500h700v-500zM800 700h-130q-38 0 -66.5 -43t-28.5 -108t27 -107t68 -42h130v300zM300 700v-300 h130q41 0 68 42t27 107t-28.5 108t-66.5 43h-130z" /> -<glyph unicode="&#xe191;" d="M200 1100h700q124 0 212 -88t88 -212v-500q0 -124 -88 -212t-212 -88h-700q-124 0 -212 88t-88 212v500q0 124 88 212t212 88zM100 900v-700h900v700h-900zM500 700h-200v-100h200v-300h-300v100h200v100h-200v300h300v-100zM900 300h-100v400h-100v100h200v-500z M700 300h-100v100h100v-100z" /> -<glyph unicode="&#xe192;" d="M200 1100h700q124 0 212 -88t88 -212v-500q0 -124 -88 -212t-212 -88h-700q-124 0 -212 88t-88 212v500q0 124 88 212t212 88zM100 900v-700h900v700h-900zM300 700h200v-400h-300v500h100v-100zM900 300h-100v400h-100v100h200v-500zM300 600v-200h100v200h-100z M700 300h-100v100h100v-100z" /> -<glyph unicode="&#xe193;" d="M200 1100h700q124 0 212 -88t88 -212v-500q0 -124 -88 -212t-212 -88h-700q-124 0 -212 88t-88 212v500q0 124 88 212t212 88zM100 900v-700h900v700h-900zM500 500l-199 -200h-100v50l199 200v150h-200v100h300v-300zM900 300h-100v400h-100v100h200v-500zM701 300h-100 v100h100v-100z" /> -<glyph unicode="&#xe194;" d="M600 1191q120 0 229.5 -47t188.5 -126t126 -188.5t47 -229.5t-47 -229.5t-126 -188.5t-188.5 -126t-229.5 -47t-229.5 47t-188.5 126t-126 188.5t-47 229.5t47 229.5t126 188.5t188.5 126t229.5 47zM600 1021q-114 0 -211 -56.5t-153.5 -153.5t-56.5 -211t56.5 -211 t153.5 -153.5t211 -56.5t211 56.5t153.5 153.5t56.5 211t-56.5 211t-153.5 153.5t-211 56.5zM800 700h-300v-200h300v-100h-300l-100 100v200l100 100h300v-100z" /> -<glyph unicode="&#xe195;" d="M600 1191q120 0 229.5 -47t188.5 -126t126 -188.5t47 -229.5t-47 -229.5t-126 -188.5t-188.5 -126t-229.5 -47t-229.5 47t-188.5 126t-126 188.5t-47 229.5t47 229.5t126 188.5t188.5 126t229.5 47zM600 1021q-114 0 -211 -56.5t-153.5 -153.5t-56.5 -211t56.5 -211 t153.5 -153.5t211 -56.5t211 56.5t153.5 153.5t56.5 211t-56.5 211t-153.5 153.5t-211 56.5zM800 700v-100l-50 -50l100 -100v-50h-100l-100 100h-150v-100h-100v400h300zM500 700v-100h200v100h-200z" /> -<glyph unicode="&#xe197;" d="M503 1089q110 0 200.5 -59.5t134.5 -156.5q44 14 90 14q120 0 205 -86.5t85 -207t-85 -207t-205 -86.5h-128v250q0 21 -14.5 35.5t-35.5 14.5h-300q-21 0 -35.5 -14.5t-14.5 -35.5v-250h-222q-80 0 -136 57.5t-56 136.5q0 69 43 122.5t108 67.5q-2 19 -2 37q0 100 49 185 t134 134t185 49zM525 500h150q10 0 17.5 -7.5t7.5 -17.5v-275h137q21 0 26 -11.5t-8 -27.5l-223 -244q-13 -16 -32 -16t-32 16l-223 244q-13 16 -8 27.5t26 11.5h137v275q0 10 7.5 17.5t17.5 7.5z" /> -<glyph unicode="&#xe198;" d="M502 1089q110 0 201 -59.5t135 -156.5q43 15 89 15q121 0 206 -86.5t86 -206.5q0 -99 -60 -181t-150 -110l-378 360q-13 16 -31.5 16t-31.5 -16l-381 -365h-9q-79 0 -135.5 57.5t-56.5 136.5q0 69 43 122.5t108 67.5q-2 19 -2 38q0 100 49 184.5t133.5 134t184.5 49.5z M632 467l223 -228q13 -16 8 -27.5t-26 -11.5h-137v-275q0 -10 -7.5 -17.5t-17.5 -7.5h-150q-10 0 -17.5 7.5t-7.5 17.5v275h-137q-21 0 -26 11.5t8 27.5q199 204 223 228q19 19 31.5 19t32.5 -19z" /> -<glyph unicode="&#xe199;" d="M700 100v100h400l-270 300h170l-270 300h170l-300 333l-300 -333h170l-270 -300h170l-270 -300h400v-100h-50q-21 0 -35.5 -14.5t-14.5 -35.5v-50h400v50q0 21 -14.5 35.5t-35.5 14.5h-50z" /> -<glyph unicode="&#xe200;" d="M600 1179q94 0 167.5 -56.5t99.5 -145.5q89 -6 150.5 -71.5t61.5 -155.5q0 -61 -29.5 -112.5t-79.5 -82.5q9 -29 9 -55q0 -74 -52.5 -126.5t-126.5 -52.5q-55 0 -100 30v-251q21 0 35.5 -14.5t14.5 -35.5v-50h-300v50q0 21 14.5 35.5t35.5 14.5v251q-45 -30 -100 -30 q-74 0 -126.5 52.5t-52.5 126.5q0 18 4 38q-47 21 -75.5 65t-28.5 97q0 74 52.5 126.5t126.5 52.5q5 0 23 -2q0 2 -1 10t-1 13q0 116 81.5 197.5t197.5 81.5z" /> -<glyph unicode="&#xe201;" d="M1010 1010q111 -111 150.5 -260.5t0 -299t-150.5 -260.5q-83 -83 -191.5 -126.5t-218.5 -43.5t-218.5 43.5t-191.5 126.5q-111 111 -150.5 260.5t0 299t150.5 260.5q83 83 191.5 126.5t218.5 43.5t218.5 -43.5t191.5 -126.5zM476 1065q-4 0 -8 -1q-121 -34 -209.5 -122.5 t-122.5 -209.5q-4 -12 2.5 -23t18.5 -14l36 -9q3 -1 7 -1q23 0 29 22q27 96 98 166q70 71 166 98q11 3 17.5 13.5t3.5 22.5l-9 35q-3 13 -14 19q-7 4 -15 4zM512 920q-4 0 -9 -2q-80 -24 -138.5 -82.5t-82.5 -138.5q-4 -13 2 -24t19 -14l34 -9q4 -1 8 -1q22 0 28 21 q18 58 58.5 98.5t97.5 58.5q12 3 18 13.5t3 21.5l-9 35q-3 12 -14 19q-7 4 -15 4zM719.5 719.5q-49.5 49.5 -119.5 49.5t-119.5 -49.5t-49.5 -119.5t49.5 -119.5t119.5 -49.5t119.5 49.5t49.5 119.5t-49.5 119.5zM855 551q-22 0 -28 -21q-18 -58 -58.5 -98.5t-98.5 -57.5 q-11 -4 -17 -14.5t-3 -21.5l9 -35q3 -12 14 -19q7 -4 15 -4q4 0 9 2q80 24 138.5 82.5t82.5 138.5q4 13 -2.5 24t-18.5 14l-34 9q-4 1 -8 1zM1000 515q-23 0 -29 -22q-27 -96 -98 -166q-70 -71 -166 -98q-11 -3 -17.5 -13.5t-3.5 -22.5l9 -35q3 -13 14 -19q7 -4 15 -4 q4 0 8 1q121 34 209.5 122.5t122.5 209.5q4 12 -2.5 23t-18.5 14l-36 9q-3 1 -7 1z" /> -<glyph unicode="&#xe202;" d="M700 800h300v-380h-180v200h-340v-200h-380v755q0 10 7.5 17.5t17.5 7.5h575v-400zM1000 900h-200v200zM700 300h162l-212 -212l-212 212h162v200h100v-200zM520 0h-395q-10 0 -17.5 7.5t-7.5 17.5v395zM1000 220v-195q0 -10 -7.5 -17.5t-17.5 -7.5h-195z" /> -<glyph unicode="&#xe203;" d="M700 800h300v-520l-350 350l-550 -550v1095q0 10 7.5 17.5t17.5 7.5h575v-400zM1000 900h-200v200zM862 200h-162v-200h-100v200h-162l212 212zM480 0h-355q-10 0 -17.5 7.5t-7.5 17.5v55h380v-80zM1000 80v-55q0 -10 -7.5 -17.5t-17.5 -7.5h-155v80h180z" /> -<glyph unicode="&#xe204;" d="M1162 800h-162v-200h100l100 -100h-300v300h-162l212 212zM200 800h200q27 0 40 -2t29.5 -10.5t23.5 -30t7 -57.5h300v-100h-600l-200 -350v450h100q0 36 7 57.5t23.5 30t29.5 10.5t40 2zM800 400h240l-240 -400h-800l300 500h500v-100z" /> -<glyph unicode="&#xe205;" d="M650 1100h100q21 0 35.5 -14.5t14.5 -35.5v-50h50q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-300q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5h50v50q0 21 14.5 35.5t35.5 14.5zM1000 850v150q41 0 70.5 -29.5t29.5 -70.5v-800 q0 -41 -29.5 -70.5t-70.5 -29.5h-600q-1 0 -20 4l246 246l-326 326v324q0 41 29.5 70.5t70.5 29.5v-150q0 -62 44 -106t106 -44h300q62 0 106 44t44 106zM412 250l-212 -212v162h-200v100h200v162z" /> -<glyph unicode="&#xe206;" d="M450 1100h100q21 0 35.5 -14.5t14.5 -35.5v-50h50q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-300q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5h50v50q0 21 14.5 35.5t35.5 14.5zM800 850v150q41 0 70.5 -29.5t29.5 -70.5v-500 h-200v-300h200q0 -36 -7 -57.5t-23.5 -30t-29.5 -10.5t-40 -2h-600q-41 0 -70.5 29.5t-29.5 70.5v800q0 41 29.5 70.5t70.5 29.5v-150q0 -62 44 -106t106 -44h300q62 0 106 44t44 106zM1212 250l-212 -212v162h-200v100h200v162z" /> -<glyph unicode="&#xe209;" d="M658 1197l637 -1104q23 -38 7 -65.5t-60 -27.5h-1276q-44 0 -60 27.5t7 65.5l637 1104q22 39 54 39t54 -39zM704 800h-208q-20 0 -32 -14.5t-8 -34.5l58 -302q4 -20 21.5 -34.5t37.5 -14.5h54q20 0 37.5 14.5t21.5 34.5l58 302q4 20 -8 34.5t-32 14.5zM500 300v-100h200 v100h-200z" /> -<glyph unicode="&#xe210;" d="M425 1100h250q10 0 17.5 -7.5t7.5 -17.5v-150q0 -10 -7.5 -17.5t-17.5 -7.5h-250q-10 0 -17.5 7.5t-7.5 17.5v150q0 10 7.5 17.5t17.5 7.5zM425 800h250q10 0 17.5 -7.5t7.5 -17.5v-150q0 -10 -7.5 -17.5t-17.5 -7.5h-250q-10 0 -17.5 7.5t-7.5 17.5v150q0 10 7.5 17.5 t17.5 7.5zM825 800h250q10 0 17.5 -7.5t7.5 -17.5v-150q0 -10 -7.5 -17.5t-17.5 -7.5h-250q-10 0 -17.5 7.5t-7.5 17.5v150q0 10 7.5 17.5t17.5 7.5zM25 500h250q10 0 17.5 -7.5t7.5 -17.5v-150q0 -10 -7.5 -17.5t-17.5 -7.5h-250q-10 0 -17.5 7.5t-7.5 17.5v150 q0 10 7.5 17.5t17.5 7.5zM425 500h250q10 0 17.5 -7.5t7.5 -17.5v-150q0 -10 -7.5 -17.5t-17.5 -7.5h-250q-10 0 -17.5 7.5t-7.5 17.5v150q0 10 7.5 17.5t17.5 7.5zM825 500h250q10 0 17.5 -7.5t7.5 -17.5v-150q0 -10 -7.5 -17.5t-17.5 -7.5h-250q-10 0 -17.5 7.5t-7.5 17.5 v150q0 10 7.5 17.5t17.5 7.5zM25 200h250q10 0 17.5 -7.5t7.5 -17.5v-150q0 -10 -7.5 -17.5t-17.5 -7.5h-250q-10 0 -17.5 7.5t-7.5 17.5v150q0 10 7.5 17.5t17.5 7.5zM425 200h250q10 0 17.5 -7.5t7.5 -17.5v-150q0 -10 -7.5 -17.5t-17.5 -7.5h-250q-10 0 -17.5 7.5 t-7.5 17.5v150q0 10 7.5 17.5t17.5 7.5zM825 200h250q10 0 17.5 -7.5t7.5 -17.5v-150q0 -10 -7.5 -17.5t-17.5 -7.5h-250q-10 0 -17.5 7.5t-7.5 17.5v150q0 10 7.5 17.5t17.5 7.5z" /> -<glyph unicode="&#xe211;" d="M700 1200h100v-200h-100v-100h350q62 0 86.5 -39.5t-3.5 -94.5l-66 -132q-41 -83 -81 -134h-772q-40 51 -81 134l-66 132q-28 55 -3.5 94.5t86.5 39.5h350v100h-100v200h100v100h200v-100zM250 400h700q21 0 35.5 -14.5t14.5 -35.5t-14.5 -35.5t-35.5 -14.5h-12l137 -100 h-950l138 100h-13q-21 0 -35.5 14.5t-14.5 35.5t14.5 35.5t35.5 14.5zM50 100h1100q21 0 35.5 -14.5t14.5 -35.5v-50h-1200v50q0 21 14.5 35.5t35.5 14.5z" /> -<glyph unicode="&#xe212;" d="M600 1300q40 0 68.5 -29.5t28.5 -70.5h-194q0 41 28.5 70.5t68.5 29.5zM443 1100h314q18 -37 18 -75q0 -8 -3 -25h328q41 0 44.5 -16.5t-30.5 -38.5l-175 -145h-678l-178 145q-34 22 -29 38.5t46 16.5h328q-3 17 -3 25q0 38 18 75zM250 700h700q21 0 35.5 -14.5 t14.5 -35.5t-14.5 -35.5t-35.5 -14.5h-150v-200l275 -200h-950l275 200v200h-150q-21 0 -35.5 14.5t-14.5 35.5t14.5 35.5t35.5 14.5zM50 100h1100q21 0 35.5 -14.5t14.5 -35.5v-50h-1200v50q0 21 14.5 35.5t35.5 14.5z" /> -<glyph unicode="&#xe213;" d="M600 1181q75 0 128 -53t53 -128t-53 -128t-128 -53t-128 53t-53 128t53 128t128 53zM602 798h46q34 0 55.5 -28.5t21.5 -86.5q0 -76 39 -183h-324q39 107 39 183q0 58 21.5 86.5t56.5 28.5h45zM250 400h700q21 0 35.5 -14.5t14.5 -35.5t-14.5 -35.5t-35.5 -14.5h-13 l138 -100h-950l137 100h-12q-21 0 -35.5 14.5t-14.5 35.5t14.5 35.5t35.5 14.5zM50 100h1100q21 0 35.5 -14.5t14.5 -35.5v-50h-1200v50q0 21 14.5 35.5t35.5 14.5z" /> -<glyph unicode="&#xe214;" d="M600 1300q47 0 92.5 -53.5t71 -123t25.5 -123.5q0 -78 -55.5 -133.5t-133.5 -55.5t-133.5 55.5t-55.5 133.5q0 62 34 143l144 -143l111 111l-163 163q34 26 63 26zM602 798h46q34 0 55.5 -28.5t21.5 -86.5q0 -76 39 -183h-324q39 107 39 183q0 58 21.5 86.5t56.5 28.5h45 zM250 400h700q21 0 35.5 -14.5t14.5 -35.5t-14.5 -35.5t-35.5 -14.5h-13l138 -100h-950l137 100h-12q-21 0 -35.5 14.5t-14.5 35.5t14.5 35.5t35.5 14.5zM50 100h1100q21 0 35.5 -14.5t14.5 -35.5v-50h-1200v50q0 21 14.5 35.5t35.5 14.5z" /> -<glyph unicode="&#xe215;" d="M600 1200l300 -161v-139h-300q0 -57 18.5 -108t50 -91.5t63 -72t70 -67.5t57.5 -61h-530q-60 83 -90.5 177.5t-30.5 178.5t33 164.5t87.5 139.5t126 96.5t145.5 41.5v-98zM250 400h700q21 0 35.5 -14.5t14.5 -35.5t-14.5 -35.5t-35.5 -14.5h-13l138 -100h-950l137 100 h-12q-21 0 -35.5 14.5t-14.5 35.5t14.5 35.5t35.5 14.5zM50 100h1100q21 0 35.5 -14.5t14.5 -35.5v-50h-1200v50q0 21 14.5 35.5t35.5 14.5z" /> -<glyph unicode="&#xe216;" d="M600 1300q41 0 70.5 -29.5t29.5 -70.5v-78q46 -26 73 -72t27 -100v-50h-400v50q0 54 27 100t73 72v78q0 41 29.5 70.5t70.5 29.5zM400 800h400q54 0 100 -27t72 -73h-172v-100h200v-100h-200v-100h200v-100h-200v-100h200q0 -83 -58.5 -141.5t-141.5 -58.5h-400 q-83 0 -141.5 58.5t-58.5 141.5v400q0 83 58.5 141.5t141.5 58.5z" /> -<glyph unicode="&#xe218;" d="M150 1100h900q21 0 35.5 -14.5t14.5 -35.5v-500q0 -21 -14.5 -35.5t-35.5 -14.5h-900q-21 0 -35.5 14.5t-14.5 35.5v500q0 21 14.5 35.5t35.5 14.5zM125 400h950q10 0 17.5 -7.5t7.5 -17.5v-50q0 -10 -7.5 -17.5t-17.5 -7.5h-283l224 -224q13 -13 13 -31.5t-13 -32 t-31.5 -13.5t-31.5 13l-88 88h-524l-87 -88q-13 -13 -32 -13t-32 13.5t-13 32t13 31.5l224 224h-289q-10 0 -17.5 7.5t-7.5 17.5v50q0 10 7.5 17.5t17.5 7.5zM541 300l-100 -100h324l-100 100h-124z" /> -<glyph unicode="&#xe219;" d="M200 1100h800q83 0 141.5 -58.5t58.5 -141.5v-200h-100q0 41 -29.5 70.5t-70.5 29.5h-250q-41 0 -70.5 -29.5t-29.5 -70.5h-100q0 41 -29.5 70.5t-70.5 29.5h-250q-41 0 -70.5 -29.5t-29.5 -70.5h-100v200q0 83 58.5 141.5t141.5 58.5zM100 600h1000q41 0 70.5 -29.5 t29.5 -70.5v-300h-1200v300q0 41 29.5 70.5t70.5 29.5zM300 100v-50q0 -21 -14.5 -35.5t-35.5 -14.5h-100q-21 0 -35.5 14.5t-14.5 35.5v50h200zM1100 100v-50q0 -21 -14.5 -35.5t-35.5 -14.5h-100q-21 0 -35.5 14.5t-14.5 35.5v50h200z" /> -<glyph unicode="&#xe221;" d="M480 1165l682 -683q31 -31 31 -75.5t-31 -75.5l-131 -131h-481l-517 518q-32 31 -32 75.5t32 75.5l295 296q31 31 75.5 31t76.5 -31zM108 794l342 -342l303 304l-341 341zM250 100h800q21 0 35.5 -14.5t14.5 -35.5v-50h-900v50q0 21 14.5 35.5t35.5 14.5z" /> -<glyph unicode="&#xe223;" d="M1057 647l-189 506q-8 19 -27.5 33t-40.5 14h-400q-21 0 -40.5 -14t-27.5 -33l-189 -506q-8 -19 1.5 -33t30.5 -14h625v-150q0 -21 14.5 -35.5t35.5 -14.5t35.5 14.5t14.5 35.5v150h125q21 0 30.5 14t1.5 33zM897 0h-595v50q0 21 14.5 35.5t35.5 14.5h50v50 q0 21 14.5 35.5t35.5 14.5h48v300h200v-300h47q21 0 35.5 -14.5t14.5 -35.5v-50h50q21 0 35.5 -14.5t14.5 -35.5v-50z" /> -<glyph unicode="&#xe224;" d="M900 800h300v-575q0 -10 -7.5 -17.5t-17.5 -7.5h-375v591l-300 300v84q0 10 7.5 17.5t17.5 7.5h375v-400zM1200 900h-200v200zM400 600h300v-575q0 -10 -7.5 -17.5t-17.5 -7.5h-650q-10 0 -17.5 7.5t-7.5 17.5v950q0 10 7.5 17.5t17.5 7.5h375v-400zM700 700h-200v200z " /> -<glyph unicode="&#xe225;" d="M484 1095h195q75 0 146 -32.5t124 -86t89.5 -122.5t48.5 -142q18 -14 35 -20q31 -10 64.5 6.5t43.5 48.5q10 34 -15 71q-19 27 -9 43q5 8 12.5 11t19 -1t23.5 -16q41 -44 39 -105q-3 -63 -46 -106.5t-104 -43.5h-62q-7 -55 -35 -117t-56 -100l-39 -234q-3 -20 -20 -34.5 t-38 -14.5h-100q-21 0 -33 14.5t-9 34.5l12 70q-49 -14 -91 -14h-195q-24 0 -65 8l-11 -64q-3 -20 -20 -34.5t-38 -14.5h-100q-21 0 -33 14.5t-9 34.5l26 157q-84 74 -128 175l-159 53q-19 7 -33 26t-14 40v50q0 21 14.5 35.5t35.5 14.5h124q11 87 56 166l-111 95 q-16 14 -12.5 23.5t24.5 9.5h203q116 101 250 101zM675 1000h-250q-10 0 -17.5 -7.5t-7.5 -17.5v-50q0 -10 7.5 -17.5t17.5 -7.5h250q10 0 17.5 7.5t7.5 17.5v50q0 10 -7.5 17.5t-17.5 7.5z" /> -<glyph unicode="&#xe226;" d="M641 900l423 247q19 8 42 2.5t37 -21.5l32 -38q14 -15 12.5 -36t-17.5 -34l-139 -120h-390zM50 1100h106q67 0 103 -17t66 -71l102 -212h823q21 0 35.5 -14.5t14.5 -35.5v-50q0 -21 -14 -40t-33 -26l-737 -132q-23 -4 -40 6t-26 25q-42 67 -100 67h-300q-62 0 -106 44 t-44 106v200q0 62 44 106t106 44zM173 928h-80q-19 0 -28 -14t-9 -35v-56q0 -51 42 -51h134q16 0 21.5 8t5.5 24q0 11 -16 45t-27 51q-18 28 -43 28zM550 727q-32 0 -54.5 -22.5t-22.5 -54.5t22.5 -54.5t54.5 -22.5t54.5 22.5t22.5 54.5t-22.5 54.5t-54.5 22.5zM130 389 l152 130q18 19 34 24t31 -3.5t24.5 -17.5t25.5 -28q28 -35 50.5 -51t48.5 -13l63 5l48 -179q13 -61 -3.5 -97.5t-67.5 -79.5l-80 -69q-47 -40 -109 -35.5t-103 51.5l-130 151q-40 47 -35.5 109.5t51.5 102.5zM380 377l-102 -88q-31 -27 2 -65l37 -43q13 -15 27.5 -19.5 t31.5 6.5l61 53q19 16 14 49q-2 20 -12 56t-17 45q-11 12 -19 14t-23 -8z" /> -<glyph unicode="&#xe227;" d="M625 1200h150q10 0 17.5 -7.5t7.5 -17.5v-109q79 -33 131 -87.5t53 -128.5q1 -46 -15 -84.5t-39 -61t-46 -38t-39 -21.5l-17 -6q6 0 15 -1.5t35 -9t50 -17.5t53 -30t50 -45t35.5 -64t14.5 -84q0 -59 -11.5 -105.5t-28.5 -76.5t-44 -51t-49.5 -31.5t-54.5 -16t-49.5 -6.5 t-43.5 -1v-75q0 -10 -7.5 -17.5t-17.5 -7.5h-150q-10 0 -17.5 7.5t-7.5 17.5v75h-100v-75q0 -10 -7.5 -17.5t-17.5 -7.5h-150q-10 0 -17.5 7.5t-7.5 17.5v75h-175q-10 0 -17.5 7.5t-7.5 17.5v150q0 10 7.5 17.5t17.5 7.5h75v600h-75q-10 0 -17.5 7.5t-7.5 17.5v150 q0 10 7.5 17.5t17.5 7.5h175v75q0 10 7.5 17.5t17.5 7.5h150q10 0 17.5 -7.5t7.5 -17.5v-75h100v75q0 10 7.5 17.5t17.5 7.5zM400 900v-200h263q28 0 48.5 10.5t30 25t15 29t5.5 25.5l1 10q0 4 -0.5 11t-6 24t-15 30t-30 24t-48.5 11h-263zM400 500v-200h363q28 0 48.5 10.5 t30 25t15 29t5.5 25.5l1 10q0 4 -0.5 11t-6 24t-15 30t-30 24t-48.5 11h-363z" /> -<glyph unicode="&#xe230;" d="M212 1198h780q86 0 147 -61t61 -147v-416q0 -51 -18 -142.5t-36 -157.5l-18 -66q-29 -87 -93.5 -146.5t-146.5 -59.5h-572q-82 0 -147 59t-93 147q-8 28 -20 73t-32 143.5t-20 149.5v416q0 86 61 147t147 61zM600 1045q-70 0 -132.5 -11.5t-105.5 -30.5t-78.5 -41.5 t-57 -45t-36 -41t-20.5 -30.5l-6 -12l156 -243h560l156 243q-2 5 -6 12.5t-20 29.5t-36.5 42t-57 44.5t-79 42t-105 29.5t-132.5 12zM762 703h-157l195 261z" /> -<glyph unicode="&#xe231;" d="M475 1300h150q103 0 189 -86t86 -189v-500q0 -41 -42 -83t-83 -42h-450q-41 0 -83 42t-42 83v500q0 103 86 189t189 86zM700 300v-225q0 -21 -27 -48t-48 -27h-150q-21 0 -48 27t-27 48v225h300z" /> -<glyph unicode="&#xe232;" d="M475 1300h96q0 -150 89.5 -239.5t239.5 -89.5v-446q0 -41 -42 -83t-83 -42h-450q-41 0 -83 42t-42 83v500q0 103 86 189t189 86zM700 300v-225q0 -21 -27 -48t-48 -27h-150q-21 0 -48 27t-27 48v225h300z" /> -<glyph unicode="&#xe233;" d="M1294 767l-638 -283l-378 170l-78 -60v-224l100 -150v-199l-150 148l-150 -149v200l100 150v250q0 4 -0.5 10.5t0 9.5t1 8t3 8t6.5 6l47 40l-147 65l642 283zM1000 380l-350 -166l-350 166v147l350 -165l350 165v-147z" /> -<glyph unicode="&#xe234;" d="M250 800q62 0 106 -44t44 -106t-44 -106t-106 -44t-106 44t-44 106t44 106t106 44zM650 800q62 0 106 -44t44 -106t-44 -106t-106 -44t-106 44t-44 106t44 106t106 44zM1050 800q62 0 106 -44t44 -106t-44 -106t-106 -44t-106 44t-44 106t44 106t106 44z" /> -<glyph unicode="&#xe235;" d="M550 1100q62 0 106 -44t44 -106t-44 -106t-106 -44t-106 44t-44 106t44 106t106 44zM550 700q62 0 106 -44t44 -106t-44 -106t-106 -44t-106 44t-44 106t44 106t106 44zM550 300q62 0 106 -44t44 -106t-44 -106t-106 -44t-106 44t-44 106t44 106t106 44z" /> -<glyph unicode="&#xe236;" d="M125 1100h950q10 0 17.5 -7.5t7.5 -17.5v-150q0 -10 -7.5 -17.5t-17.5 -7.5h-950q-10 0 -17.5 7.5t-7.5 17.5v150q0 10 7.5 17.5t17.5 7.5zM125 700h950q10 0 17.5 -7.5t7.5 -17.5v-150q0 -10 -7.5 -17.5t-17.5 -7.5h-950q-10 0 -17.5 7.5t-7.5 17.5v150q0 10 7.5 17.5 t17.5 7.5zM125 300h950q10 0 17.5 -7.5t7.5 -17.5v-150q0 -10 -7.5 -17.5t-17.5 -7.5h-950q-10 0 -17.5 7.5t-7.5 17.5v150q0 10 7.5 17.5t17.5 7.5z" /> -<glyph unicode="&#xe237;" d="M350 1200h500q162 0 256 -93.5t94 -256.5v-500q0 -165 -93.5 -257.5t-256.5 -92.5h-500q-165 0 -257.5 92.5t-92.5 257.5v500q0 165 92.5 257.5t257.5 92.5zM900 1000h-600q-41 0 -70.5 -29.5t-29.5 -70.5v-600q0 -41 29.5 -70.5t70.5 -29.5h600q41 0 70.5 29.5 t29.5 70.5v600q0 41 -29.5 70.5t-70.5 29.5zM350 900h500q21 0 35.5 -14.5t14.5 -35.5v-300q0 -21 -14.5 -35.5t-35.5 -14.5h-500q-21 0 -35.5 14.5t-14.5 35.5v300q0 21 14.5 35.5t35.5 14.5zM400 800v-200h400v200h-400z" /> -<glyph unicode="&#xe238;" d="M150 1100h1000q21 0 35.5 -14.5t14.5 -35.5t-14.5 -35.5t-35.5 -14.5h-50v-200h50q21 0 35.5 -14.5t14.5 -35.5t-14.5 -35.5t-35.5 -14.5h-50v-200h50q21 0 35.5 -14.5t14.5 -35.5t-14.5 -35.5t-35.5 -14.5h-50v-200h50q21 0 35.5 -14.5t14.5 -35.5t-14.5 -35.5 t-35.5 -14.5h-1000q-21 0 -35.5 14.5t-14.5 35.5t14.5 35.5t35.5 14.5h50v200h-50q-21 0 -35.5 14.5t-14.5 35.5t14.5 35.5t35.5 14.5h50v200h-50q-21 0 -35.5 14.5t-14.5 35.5t14.5 35.5t35.5 14.5h50v200h-50q-21 0 -35.5 14.5t-14.5 35.5t14.5 35.5t35.5 14.5z" /> -<glyph unicode="&#xe239;" d="M650 1187q87 -67 118.5 -156t0 -178t-118.5 -155q-87 66 -118.5 155t0 178t118.5 156zM300 800q124 0 212 -88t88 -212q-124 0 -212 88t-88 212zM1000 800q0 -124 -88 -212t-212 -88q0 124 88 212t212 88zM300 500q124 0 212 -88t88 -212q-124 0 -212 88t-88 212z M1000 500q0 -124 -88 -212t-212 -88q0 124 88 212t212 88zM700 199v-144q0 -21 -14.5 -35.5t-35.5 -14.5t-35.5 14.5t-14.5 35.5v142q40 -4 43 -4q17 0 57 6z" /> -<glyph unicode="&#xe240;" d="M745 878l69 19q25 6 45 -12l298 -295q11 -11 15 -26.5t-2 -30.5q-5 -14 -18 -23.5t-28 -9.5h-8q1 0 1 -13q0 -29 -2 -56t-8.5 -62t-20 -63t-33 -53t-51 -39t-72.5 -14h-146q-184 0 -184 288q0 24 10 47q-20 4 -62 4t-63 -4q11 -24 11 -47q0 -288 -184 -288h-142 q-48 0 -84.5 21t-56 51t-32 71.5t-16 75t-3.5 68.5q0 13 2 13h-7q-15 0 -27.5 9.5t-18.5 23.5q-6 15 -2 30.5t15 25.5l298 296q20 18 46 11l76 -19q20 -5 30.5 -22.5t5.5 -37.5t-22.5 -31t-37.5 -5l-51 12l-182 -193h891l-182 193l-44 -12q-20 -5 -37.5 6t-22.5 31t6 37.5 t31 22.5z" /> -<glyph unicode="&#xe241;" d="M1200 900h-50q0 21 -4 37t-9.5 26.5t-18 17.5t-22 11t-28.5 5.5t-31 2t-37 0.5h-200v-850q0 -22 25 -34.5t50 -13.5l25 -2v-100h-400v100q4 0 11 0.5t24 3t30 7t24 15t11 24.5v850h-200q-25 0 -37 -0.5t-31 -2t-28.5 -5.5t-22 -11t-18 -17.5t-9.5 -26.5t-4 -37h-50v300 h1000v-300zM500 450h-25q0 15 -4 24.5t-9 14.5t-17 7.5t-20 3t-25 0.5h-100v-425q0 -11 12.5 -17.5t25.5 -7.5h12v-50h-200v50q50 0 50 25v425h-100q-17 0 -25 -0.5t-20 -3t-17 -7.5t-9 -14.5t-4 -24.5h-25v150h500v-150z" /> -<glyph unicode="&#xe242;" d="M1000 300v50q-25 0 -55 32q-14 14 -25 31t-16 27l-4 11l-289 747h-69l-300 -754q-18 -35 -39 -56q-9 -9 -24.5 -18.5t-26.5 -14.5l-11 -5v-50h273v50q-49 0 -78.5 21.5t-11.5 67.5l69 176h293l61 -166q13 -34 -3.5 -66.5t-55.5 -32.5v-50h312zM412 691l134 342l121 -342 h-255zM1100 150v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-1000q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5h1000q21 0 35.5 -14.5t14.5 -35.5z" /> -<glyph unicode="&#xe243;" d="M50 1200h1100q21 0 35.5 -14.5t14.5 -35.5v-1100q0 -21 -14.5 -35.5t-35.5 -14.5h-1100q-21 0 -35.5 14.5t-14.5 35.5v1100q0 21 14.5 35.5t35.5 14.5zM611 1118h-70q-13 0 -18 -12l-299 -753q-17 -32 -35 -51q-18 -18 -56 -34q-12 -5 -12 -18v-50q0 -8 5.5 -14t14.5 -6 h273q8 0 14 6t6 14v50q0 8 -6 14t-14 6q-55 0 -71 23q-10 14 0 39l63 163h266l57 -153q11 -31 -6 -55q-12 -17 -36 -17q-8 0 -14 -6t-6 -14v-50q0 -8 6 -14t14 -6h313q8 0 14 6t6 14v50q0 7 -5.5 13t-13.5 7q-17 0 -42 25q-25 27 -40 63h-1l-288 748q-5 12 -19 12zM639 611 h-197l103 264z" /> -<glyph unicode="&#xe244;" d="M1200 1100h-1200v100h1200v-100zM50 1000h400q21 0 35.5 -14.5t14.5 -35.5v-900q0 -21 -14.5 -35.5t-35.5 -14.5h-400q-21 0 -35.5 14.5t-14.5 35.5v900q0 21 14.5 35.5t35.5 14.5zM650 1000h400q21 0 35.5 -14.5t14.5 -35.5v-400q0 -21 -14.5 -35.5t-35.5 -14.5h-400 q-21 0 -35.5 14.5t-14.5 35.5v400q0 21 14.5 35.5t35.5 14.5zM700 900v-300h300v300h-300z" /> -<glyph unicode="&#xe245;" d="M50 1200h400q21 0 35.5 -14.5t14.5 -35.5v-900q0 -21 -14.5 -35.5t-35.5 -14.5h-400q-21 0 -35.5 14.5t-14.5 35.5v900q0 21 14.5 35.5t35.5 14.5zM650 700h400q21 0 35.5 -14.5t14.5 -35.5v-400q0 -21 -14.5 -35.5t-35.5 -14.5h-400q-21 0 -35.5 14.5t-14.5 35.5v400 q0 21 14.5 35.5t35.5 14.5zM700 600v-300h300v300h-300zM1200 0h-1200v100h1200v-100z" /> -<glyph unicode="&#xe246;" d="M50 1000h400q21 0 35.5 -14.5t14.5 -35.5v-350h100v150q0 21 14.5 35.5t35.5 14.5h400q21 0 35.5 -14.5t14.5 -35.5v-150h100v-100h-100v-150q0 -21 -14.5 -35.5t-35.5 -14.5h-400q-21 0 -35.5 14.5t-14.5 35.5v150h-100v-350q0 -21 -14.5 -35.5t-35.5 -14.5h-400 q-21 0 -35.5 14.5t-14.5 35.5v800q0 21 14.5 35.5t35.5 14.5zM700 700v-300h300v300h-300z" /> -<glyph unicode="&#xe247;" d="M100 0h-100v1200h100v-1200zM250 1100h400q21 0 35.5 -14.5t14.5 -35.5v-400q0 -21 -14.5 -35.5t-35.5 -14.5h-400q-21 0 -35.5 14.5t-14.5 35.5v400q0 21 14.5 35.5t35.5 14.5zM300 1000v-300h300v300h-300zM250 500h900q21 0 35.5 -14.5t14.5 -35.5v-400 q0 -21 -14.5 -35.5t-35.5 -14.5h-900q-21 0 -35.5 14.5t-14.5 35.5v400q0 21 14.5 35.5t35.5 14.5z" /> -<glyph unicode="&#xe248;" d="M600 1100h150q21 0 35.5 -14.5t14.5 -35.5v-400q0 -21 -14.5 -35.5t-35.5 -14.5h-150v-100h450q21 0 35.5 -14.5t14.5 -35.5v-400q0 -21 -14.5 -35.5t-35.5 -14.5h-900q-21 0 -35.5 14.5t-14.5 35.5v400q0 21 14.5 35.5t35.5 14.5h350v100h-150q-21 0 -35.5 14.5 t-14.5 35.5v400q0 21 14.5 35.5t35.5 14.5h150v100h100v-100zM400 1000v-300h300v300h-300z" /> -<glyph unicode="&#xe249;" d="M1200 0h-100v1200h100v-1200zM550 1100h400q21 0 35.5 -14.5t14.5 -35.5v-400q0 -21 -14.5 -35.5t-35.5 -14.5h-400q-21 0 -35.5 14.5t-14.5 35.5v400q0 21 14.5 35.5t35.5 14.5zM600 1000v-300h300v300h-300zM50 500h900q21 0 35.5 -14.5t14.5 -35.5v-400 q0 -21 -14.5 -35.5t-35.5 -14.5h-900q-21 0 -35.5 14.5t-14.5 35.5v400q0 21 14.5 35.5t35.5 14.5z" /> -<glyph unicode="&#xe250;" d="M865 565l-494 -494q-23 -23 -41 -23q-14 0 -22 13.5t-8 38.5v1000q0 25 8 38.5t22 13.5q18 0 41 -23l494 -494q14 -14 14 -35t-14 -35z" /> -<glyph unicode="&#xe251;" d="M335 635l494 494q29 29 50 20.5t21 -49.5v-1000q0 -41 -21 -49.5t-50 20.5l-494 494q-14 14 -14 35t14 35z" /> -<glyph unicode="&#xe252;" d="M100 900h1000q41 0 49.5 -21t-20.5 -50l-494 -494q-14 -14 -35 -14t-35 14l-494 494q-29 29 -20.5 50t49.5 21z" /> -<glyph unicode="&#xe253;" d="M635 865l494 -494q29 -29 20.5 -50t-49.5 -21h-1000q-41 0 -49.5 21t20.5 50l494 494q14 14 35 14t35 -14z" /> -<glyph unicode="&#xe254;" d="M700 741v-182l-692 -323v221l413 193l-413 193v221zM1200 0h-800v200h800v-200z" /> -<glyph unicode="&#xe255;" d="M1200 900h-200v-100h200v-100h-300v300h200v100h-200v100h300v-300zM0 700h50q0 21 4 37t9.5 26.5t18 17.5t22 11t28.5 5.5t31 2t37 0.5h100v-550q0 -22 -25 -34.5t-50 -13.5l-25 -2v-100h400v100q-4 0 -11 0.5t-24 3t-30 7t-24 15t-11 24.5v550h100q25 0 37 -0.5t31 -2 t28.5 -5.5t22 -11t18 -17.5t9.5 -26.5t4 -37h50v300h-800v-300z" /> -<glyph unicode="&#xe256;" d="M800 700h-50q0 21 -4 37t-9.5 26.5t-18 17.5t-22 11t-28.5 5.5t-31 2t-37 0.5h-100v-550q0 -22 25 -34.5t50 -14.5l25 -1v-100h-400v100q4 0 11 0.5t24 3t30 7t24 15t11 24.5v550h-100q-25 0 -37 -0.5t-31 -2t-28.5 -5.5t-22 -11t-18 -17.5t-9.5 -26.5t-4 -37h-50v300 h800v-300zM1100 200h-200v-100h200v-100h-300v300h200v100h-200v100h300v-300z" /> -<glyph unicode="&#xe257;" d="M701 1098h160q16 0 21 -11t-7 -23l-464 -464l464 -464q12 -12 7 -23t-21 -11h-160q-13 0 -23 9l-471 471q-7 8 -7 18t7 18l471 471q10 9 23 9z" /> -<glyph unicode="&#xe258;" d="M339 1098h160q13 0 23 -9l471 -471q7 -8 7 -18t-7 -18l-471 -471q-10 -9 -23 -9h-160q-16 0 -21 11t7 23l464 464l-464 464q-12 12 -7 23t21 11z" /> -<glyph unicode="&#xe259;" d="M1087 882q11 -5 11 -21v-160q0 -13 -9 -23l-471 -471q-8 -7 -18 -7t-18 7l-471 471q-9 10 -9 23v160q0 16 11 21t23 -7l464 -464l464 464q12 12 23 7z" /> -<glyph unicode="&#xe260;" d="M618 993l471 -471q9 -10 9 -23v-160q0 -16 -11 -21t-23 7l-464 464l-464 -464q-12 -12 -23 -7t-11 21v160q0 13 9 23l471 471q8 7 18 7t18 -7z" /> -<glyph unicode="&#xf8ff;" d="M1000 1200q0 -124 -88 -212t-212 -88q0 124 88 212t212 88zM450 1000h100q21 0 40 -14t26 -33l79 -194q5 1 16 3q34 6 54 9.5t60 7t65.5 1t61 -10t56.5 -23t42.5 -42t29 -64t5 -92t-19.5 -121.5q-1 -7 -3 -19.5t-11 -50t-20.5 -73t-32.5 -81.5t-46.5 -83t-64 -70 t-82.5 -50q-13 -5 -42 -5t-65.5 2.5t-47.5 2.5q-14 0 -49.5 -3.5t-63 -3.5t-43.5 7q-57 25 -104.5 78.5t-75 111.5t-46.5 112t-26 90l-7 35q-15 63 -18 115t4.5 88.5t26 64t39.5 43.5t52 25.5t58.5 13t62.5 2t59.5 -4.5t55.5 -8l-147 192q-12 18 -5.5 30t27.5 12z" /> -<glyph unicode="&#x1f511;" d="M250 1200h600q21 0 35.5 -14.5t14.5 -35.5v-400q0 -21 -14.5 -35.5t-35.5 -14.5h-150v-500l-255 -178q-19 -9 -32 -1t-13 29v650h-150q-21 0 -35.5 14.5t-14.5 35.5v400q0 21 14.5 35.5t35.5 14.5zM400 1100v-100h300v100h-300z" /> -<glyph unicode="&#x1f6aa;" d="M250 1200h750q39 0 69.5 -40.5t30.5 -84.5v-933l-700 -117v950l600 125h-700v-1000h-100v1025q0 23 15.5 49t34.5 26zM500 525v-100l100 20v100z" /> -</font> -</defs></svg> \ No newline at end of file diff --git a/admin/bower_components/bootstrap/fonts/glyphicons-halflings-regular.ttf b/admin/bower_components/bootstrap/fonts/glyphicons-halflings-regular.ttf deleted file mode 100644 index 1413fc6..0000000 Binary files a/admin/bower_components/bootstrap/fonts/glyphicons-halflings-regular.ttf and /dev/null differ diff --git a/admin/bower_components/bootstrap/fonts/glyphicons-halflings-regular.woff b/admin/bower_components/bootstrap/fonts/glyphicons-halflings-regular.woff deleted file mode 100644 index 9e61285..0000000 Binary files a/admin/bower_components/bootstrap/fonts/glyphicons-halflings-regular.woff and /dev/null differ diff --git a/admin/bower_components/bootstrap/fonts/glyphicons-halflings-regular.woff2 b/admin/bower_components/bootstrap/fonts/glyphicons-halflings-regular.woff2 deleted file mode 100644 index 64539b5..0000000 Binary files a/admin/bower_components/bootstrap/fonts/glyphicons-halflings-regular.woff2 and /dev/null differ diff --git a/admin/bower_components/bootstrap/grunt/.jshintrc b/admin/bower_components/bootstrap/grunt/.jshintrc deleted file mode 100644 index 0ea0495..0000000 --- a/admin/bower_components/bootstrap/grunt/.jshintrc +++ /dev/null @@ -1,7 +0,0 @@ -{ - "extends" : "../js/.jshintrc", - "asi" : false, - "browser" : false, - "es3" : false, - "node" : true -} diff --git a/admin/bower_components/bootstrap/grunt/bs-commonjs-generator.js b/admin/bower_components/bootstrap/grunt/bs-commonjs-generator.js deleted file mode 100644 index 0b4ebbf..0000000 --- a/admin/bower_components/bootstrap/grunt/bs-commonjs-generator.js +++ /dev/null @@ -1,30 +0,0 @@ -/*! - * Bootstrap Grunt task for the CommonJS module generation - * http://getbootstrap.com - * Copyright 2014-2015 Twitter, Inc. - * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) - */ - -'use strict'; - -var fs = require('fs'); -var path = require('path'); - -var COMMONJS_BANNER = '// This file is autogenerated via the `commonjs` Grunt task. You can require() this file in a CommonJS environment.\n'; - -module.exports = function generateCommonJSModule(grunt, srcFiles, destFilepath) { - var destDir = path.dirname(destFilepath); - - function srcPathToDestRequire(srcFilepath) { - var requirePath = path.relative(destDir, srcFilepath).replace(/\\/g, '/'); - return 'require(\'' + requirePath + '\')'; - } - - var moduleOutputJs = COMMONJS_BANNER + srcFiles.map(srcPathToDestRequire).join('\n'); - try { - fs.writeFileSync(destFilepath, moduleOutputJs); - } catch (err) { - grunt.fail.warn(err); - } - grunt.log.writeln('File ' + destFilepath.cyan + ' created.'); -}; diff --git a/admin/bower_components/bootstrap/grunt/bs-glyphicons-data-generator.js b/admin/bower_components/bootstrap/grunt/bs-glyphicons-data-generator.js deleted file mode 100644 index af2a82e..0000000 --- a/admin/bower_components/bootstrap/grunt/bs-glyphicons-data-generator.js +++ /dev/null @@ -1,42 +0,0 @@ -/*! - * Bootstrap Grunt task for Glyphicons data generation - * http://getbootstrap.com - * Copyright 2014-2015 Twitter, Inc. - * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) - */ - -'use strict'; - -var fs = require('fs'); - -module.exports = function generateGlyphiconsData(grunt) { - // Pass encoding, utf8, so `readFileSync` will return a string instead of a - // buffer - var glyphiconsFile = fs.readFileSync('less/glyphicons.less', 'utf8'); - var glyphiconsLines = glyphiconsFile.split('\n'); - - // Use any line that starts with ".glyphicon-" and capture the class name - var iconClassName = /^\.(glyphicon-[a-zA-Z0-9-]+)/; - var glyphiconsData = '# This file is generated via Grunt task. **Do not edit directly.**\n' + - '# See the \'build-glyphicons-data\' task in Gruntfile.js.\n\n'; - var glyphiconsYml = 'docs/_data/glyphicons.yml'; - for (var i = 0, len = glyphiconsLines.length; i < len; i++) { - var match = glyphiconsLines[i].match(iconClassName); - - if (match !== null) { - glyphiconsData += '- ' + match[1] + '\n'; - } - } - - // Create the `_data` directory if it doesn't already exist - if (!fs.existsSync('docs/_data')) { - fs.mkdirSync('docs/_data'); - } - - try { - fs.writeFileSync(glyphiconsYml, glyphiconsData); - } catch (err) { - grunt.fail.warn(err); - } - grunt.log.writeln('File ' + glyphiconsYml.cyan + ' created.'); -}; diff --git a/admin/bower_components/bootstrap/grunt/bs-lessdoc-parser.js b/admin/bower_components/bootstrap/grunt/bs-lessdoc-parser.js deleted file mode 100644 index 5a9ed2b..0000000 --- a/admin/bower_components/bootstrap/grunt/bs-lessdoc-parser.js +++ /dev/null @@ -1,237 +0,0 @@ -/*! - * Bootstrap Grunt task for parsing Less docstrings - * http://getbootstrap.com - * Copyright 2014-2015 Twitter, Inc. - * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) - */ - -'use strict'; - -var Markdown = require('markdown-it'); - -function markdown2html(markdownString) { - var md = new Markdown(); - - // the slice removes the <p>...</p> wrapper output by Markdown processor - return md.render(markdownString.trim()).slice(3, -5); -} - - -/* -Mini-language: - //== This is a normal heading, which starts a section. Sections group variables together. - //## Optional description for the heading - - //=== This is a subheading. - - //** Optional description for the following variable. You **can** use Markdown in descriptions to discuss `<html>` stuff. - @foo: #fff; - - //-- This is a heading for a section whose variables shouldn't be customizable - - All other lines are ignored completely. -*/ - - -var CUSTOMIZABLE_HEADING = /^[/]{2}={2}(.*)$/; -var UNCUSTOMIZABLE_HEADING = /^[/]{2}-{2}(.*)$/; -var SUBSECTION_HEADING = /^[/]{2}={3}(.*)$/; -var SECTION_DOCSTRING = /^[/]{2}#{2}(.+)$/; -var VAR_ASSIGNMENT = /^(@[a-zA-Z0-9_-]+):[ ]*([^ ;][^;]*);[ ]*$/; -var VAR_DOCSTRING = /^[/]{2}[*]{2}(.+)$/; - -function Section(heading, customizable) { - this.heading = heading.trim(); - this.id = this.heading.replace(/\s+/g, '-').toLowerCase(); - this.customizable = customizable; - this.docstring = null; - this.subsections = []; -} - -Section.prototype.addSubSection = function (subsection) { - this.subsections.push(subsection); -}; - -function SubSection(heading) { - this.heading = heading.trim(); - this.id = this.heading.replace(/\s+/g, '-').toLowerCase(); - this.variables = []; -} - -SubSection.prototype.addVar = function (variable) { - this.variables.push(variable); -}; - -function VarDocstring(markdownString) { - this.html = markdown2html(markdownString); -} - -function SectionDocstring(markdownString) { - this.html = markdown2html(markdownString); -} - -function Variable(name, defaultValue) { - this.name = name; - this.defaultValue = defaultValue; - this.docstring = null; -} - -function Tokenizer(fileContent) { - this._lines = fileContent.split('\n'); - this._next = undefined; -} - -Tokenizer.prototype.unshift = function (token) { - if (this._next !== undefined) { - throw new Error('Attempted to unshift twice!'); - } - this._next = token; -}; - -Tokenizer.prototype._shift = function () { - // returning null signals EOF - // returning undefined means the line was ignored - if (this._next !== undefined) { - var result = this._next; - this._next = undefined; - return result; - } - if (this._lines.length <= 0) { - return null; - } - var line = this._lines.shift(); - var match = null; - match = SUBSECTION_HEADING.exec(line); - if (match !== null) { - return new SubSection(match[1]); - } - match = CUSTOMIZABLE_HEADING.exec(line); - if (match !== null) { - return new Section(match[1], true); - } - match = UNCUSTOMIZABLE_HEADING.exec(line); - if (match !== null) { - return new Section(match[1], false); - } - match = SECTION_DOCSTRING.exec(line); - if (match !== null) { - return new SectionDocstring(match[1]); - } - match = VAR_DOCSTRING.exec(line); - if (match !== null) { - return new VarDocstring(match[1]); - } - var commentStart = line.lastIndexOf('//'); - var varLine = commentStart === -1 ? line : line.slice(0, commentStart); - match = VAR_ASSIGNMENT.exec(varLine); - if (match !== null) { - return new Variable(match[1], match[2]); - } - return undefined; -}; - -Tokenizer.prototype.shift = function () { - while (true) { - var result = this._shift(); - if (result === undefined) { - continue; - } - return result; - } -}; - -function Parser(fileContent) { - this._tokenizer = new Tokenizer(fileContent); -} - -Parser.prototype.parseFile = function () { - var sections = []; - while (true) { - var section = this.parseSection(); - if (section === null) { - if (this._tokenizer.shift() !== null) { - throw new Error('Unexpected unparsed section of file remains!'); - } - return sections; - } - sections.push(section); - } -}; - -Parser.prototype.parseSection = function () { - var section = this._tokenizer.shift(); - if (section === null) { - return null; - } - if (!(section instanceof Section)) { - throw new Error('Expected section heading; got: ' + JSON.stringify(section)); - } - var docstring = this._tokenizer.shift(); - if (docstring instanceof SectionDocstring) { - section.docstring = docstring; - } else { - this._tokenizer.unshift(docstring); - } - this.parseSubSections(section); - - return section; -}; - -Parser.prototype.parseSubSections = function (section) { - while (true) { - var subsection = this.parseSubSection(); - if (subsection === null) { - if (section.subsections.length === 0) { - // Presume an implicit initial subsection - subsection = new SubSection(''); - this.parseVars(subsection); - } else { - break; - } - } - section.addSubSection(subsection); - } - - if (section.subsections.length === 1 && !section.subsections[0].heading && section.subsections[0].variables.length === 0) { - // Ignore lone empty implicit subsection - section.subsections = []; - } -}; - -Parser.prototype.parseSubSection = function () { - var subsection = this._tokenizer.shift(); - if (subsection instanceof SubSection) { - this.parseVars(subsection); - return subsection; - } - this._tokenizer.unshift(subsection); - return null; -}; - -Parser.prototype.parseVars = function (subsection) { - while (true) { - var variable = this.parseVar(); - if (variable === null) { - return; - } - subsection.addVar(variable); - } -}; - -Parser.prototype.parseVar = function () { - var docstring = this._tokenizer.shift(); - if (!(docstring instanceof VarDocstring)) { - this._tokenizer.unshift(docstring); - docstring = null; - } - var variable = this._tokenizer.shift(); - if (variable instanceof Variable) { - variable.docstring = docstring; - return variable; - } - this._tokenizer.unshift(variable); - return null; -}; - - -module.exports = Parser; diff --git a/admin/bower_components/bootstrap/grunt/bs-raw-files-generator.js b/admin/bower_components/bootstrap/grunt/bs-raw-files-generator.js deleted file mode 100644 index 39224e4..0000000 --- a/admin/bower_components/bootstrap/grunt/bs-raw-files-generator.js +++ /dev/null @@ -1,44 +0,0 @@ -/*! - * Bootstrap Grunt task for generating raw-files.min.js for the Customizer - * http://getbootstrap.com - * Copyright 2014-2015 Twitter, Inc. - * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) - */ - -'use strict'; - -var fs = require('fs'); -var btoa = require('btoa'); -var glob = require('glob'); - -function getFiles(type) { - var files = {}; - var recursive = type === 'less'; - var globExpr = recursive ? '/**/*' : '/*'; - glob.sync(type + globExpr) - .filter(function (path) { - return type === 'fonts' ? true : new RegExp('\\.' + type + '$').test(path); - }) - .forEach(function (fullPath) { - var relativePath = fullPath.replace(/^[^/]+\//, ''); - files[relativePath] = type === 'fonts' ? btoa(fs.readFileSync(fullPath)) : fs.readFileSync(fullPath, 'utf8'); - }); - return 'var __' + type + ' = ' + JSON.stringify(files) + '\n'; -} - -module.exports = function generateRawFilesJs(grunt, banner) { - if (!banner) { - banner = ''; - } - var dirs = ['js', 'less', 'fonts']; - var files = banner + dirs.map(getFiles).reduce(function (combined, file) { - return combined + file; - }, ''); - var rawFilesJs = 'docs/assets/js/raw-files.min.js'; - try { - fs.writeFileSync(rawFilesJs, files); - } catch (err) { - grunt.fail.warn(err); - } - grunt.log.writeln('File ' + rawFilesJs.cyan + ' created.'); -}; diff --git a/admin/bower_components/bootstrap/grunt/change-version.js b/admin/bower_components/bootstrap/grunt/change-version.js deleted file mode 100644 index aa155fc..0000000 --- a/admin/bower_components/bootstrap/grunt/change-version.js +++ /dev/null @@ -1,109 +0,0 @@ -#!/usr/bin/env node -'use strict'; - -/* globals Set */ -/*! - * Script to update version number references in the project. - * Copyright 2015 Twitter, Inc. - * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) - */ -var fs = require('fs'); -var path = require('path'); -var sh = require('shelljs'); -sh.config.fatal = true; -var sed = sh.sed; - -// Blame TC39... https://github.com/benjamingr/RegExp.escape/issues/37 -RegExp.quote = function (string) { - return string.replace(/[-\\^$*+?.()|[\]{}]/g, '\\$&'); -}; -RegExp.quoteReplacement = function (string) { - return string.replace(/[$]/g, '$$'); -}; - -var DRY_RUN = false; - -function walkAsync(directory, excludedDirectories, fileCallback, errback) { - if (excludedDirectories.has(path.parse(directory).base)) { - return; - } - fs.readdir(directory, function (err, names) { - if (err) { - errback(err); - return; - } - names.forEach(function (name) { - var filepath = path.join(directory, name); - fs.lstat(filepath, function (err, stats) { - if (err) { - process.nextTick(errback, err); - return; - } - if (stats.isSymbolicLink()) { - return; - } - else if (stats.isDirectory()) { - process.nextTick(walkAsync, filepath, excludedDirectories, fileCallback, errback); - } - else if (stats.isFile()) { - process.nextTick(fileCallback, filepath); - } - }); - }); - }); -} - -function replaceRecursively(directory, excludedDirectories, allowedExtensions, original, replacement) { - original = new RegExp(RegExp.quote(original), 'g'); - replacement = RegExp.quoteReplacement(replacement); - var updateFile = !DRY_RUN ? function (filepath) { - if (allowedExtensions.has(path.parse(filepath).ext)) { - sed('-i', original, replacement, filepath); - } - } : function (filepath) { - if (allowedExtensions.has(path.parse(filepath).ext)) { - console.log('FILE: ' + filepath); - } - else { - console.log('EXCLUDED:' + filepath); - } - }; - walkAsync(directory, excludedDirectories, updateFile, function (err) { - console.error('ERROR while traversing directory!:'); - console.error(err); - process.exit(1); - }); -} - -function main(args) { - if (args.length !== 2) { - console.error('USAGE: change-version old_version new_version'); - console.error('Got arguments:', args); - process.exit(1); - } - var oldVersion = args[0]; - var newVersion = args[1]; - var EXCLUDED_DIRS = new Set([ - '.git', - 'node_modules', - 'vendor' - ]); - var INCLUDED_EXTENSIONS = new Set([ - // This extension whitelist is how we avoid modifying binary files - '', - '.css', - '.html', - '.js', - '.json', - '.less', - '.md', - '.nuspec', - '.ps1', - '.scss', - '.txt', - '.yml' - ]); - replaceRecursively('.', EXCLUDED_DIRS, INCLUDED_EXTENSIONS, oldVersion, newVersion); -} - -main(process.argv.slice(2)); diff --git a/admin/bower_components/bootstrap/grunt/configBridge.json b/admin/bower_components/bootstrap/grunt/configBridge.json deleted file mode 100644 index 9d1a142..0000000 --- a/admin/bower_components/bootstrap/grunt/configBridge.json +++ /dev/null @@ -1,46 +0,0 @@ -{ - "paths": { - "customizerJs": [ - "../assets/js/vendor/autoprefixer.js", - "../assets/js/vendor/less.min.js", - "../assets/js/vendor/jszip.min.js", - "../assets/js/vendor/uglify.min.js", - "../assets/js/vendor/Blob.js", - "../assets/js/vendor/FileSaver.js", - "../assets/js/raw-files.min.js", - "../assets/js/src/customizer.js" - ], - "docsJs": [ - "../assets/js/vendor/holder.min.js", - "../assets/js/vendor/ZeroClipboard.min.js", - "../assets/js/vendor/anchor.min.js", - "../assets/js/src/application.js" - ] - }, - "config": { - "autoprefixerBrowsers": [ - "Android 2.3", - "Android >= 4", - "Chrome >= 20", - "Firefox >= 24", - "Explorer >= 8", - "iOS >= 6", - "Opera >= 12", - "Safari >= 6" - ], - "jqueryCheck": [ - "if (typeof jQuery === 'undefined') {", - " throw new Error('Bootstrap\\'s JavaScript requires jQuery')", - "}\n" - ], - "jqueryVersionCheck": [ - "+function ($) {", - " 'use strict';", - " var version = $.fn.jquery.split(' ')[0].split('.')", - " if ((version[0] < 2 && version[1] < 9) || (version[0] == 1 && version[1] == 9 && version[2] < 1) || (version[0] > 3)) {", - " throw new Error('Bootstrap\\'s JavaScript requires jQuery version 1.9.1 or higher, but lower than version 4')", - " }", - "}(jQuery);\n\n" - ] - } -} diff --git a/admin/bower_components/bootstrap/grunt/npm-shrinkwrap.json b/admin/bower_components/bootstrap/grunt/npm-shrinkwrap.json deleted file mode 100644 index cc57def..0000000 --- a/admin/bower_components/bootstrap/grunt/npm-shrinkwrap.json +++ /dev/null @@ -1,2679 +0,0 @@ -{ - "name": "bootstrap", - "version": "3.3.7", - "dependencies": { - "abbrev": { - "version": "1.0.9", - "from": "abbrev@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.0.9.tgz" - }, - "accepts": { - "version": "1.3.3", - "from": "accepts@>=1.3.3 <1.4.0", - "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.3.tgz" - }, - "acorn": { - "version": "3.2.0", - "from": "acorn@>=3.1.0 <4.0.0", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-3.2.0.tgz" - }, - "acorn-globals": { - "version": "3.0.0", - "from": "acorn-globals@>=3.0.0 <4.0.0", - "resolved": "https://registry.npmjs.org/acorn-globals/-/acorn-globals-3.0.0.tgz" - }, - "agent-base": { - "version": "2.0.1", - "from": "agent-base@>=2.0.0 <3.0.0", - "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-2.0.1.tgz", - "dependencies": { - "semver": { - "version": "5.0.3", - "from": "semver@>=5.0.1 <5.1.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.0.3.tgz" - } - } - }, - "align-text": { - "version": "0.1.4", - "from": "align-text@>=0.1.3 <0.2.0", - "resolved": "https://registry.npmjs.org/align-text/-/align-text-0.1.4.tgz" - }, - "amdefine": { - "version": "1.0.0", - "from": "amdefine@>=0.0.4", - "resolved": "https://registry.npmjs.org/amdefine/-/amdefine-1.0.0.tgz" - }, - "ansi-regex": { - "version": "2.0.0", - "from": "ansi-regex@>=2.0.0 <3.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.0.0.tgz" - }, - "ansi-styles": { - "version": "2.2.1", - "from": "ansi-styles@>=2.2.1 <3.0.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz" - }, - "archiver": { - "version": "1.0.0", - "from": "archiver@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/archiver/-/archiver-1.0.0.tgz", - "dependencies": { - "lodash": { - "version": "4.13.1", - "from": "lodash@>=4.8.0 <5.0.0", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.13.1.tgz" - } - } - }, - "archiver-utils": { - "version": "1.2.0", - "from": "archiver-utils@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/archiver-utils/-/archiver-utils-1.2.0.tgz", - "dependencies": { - "lodash": { - "version": "4.13.1", - "from": "lodash@>=4.8.0 <5.0.0", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.13.1.tgz" - } - } - }, - "argparse": { - "version": "1.0.7", - "from": "argparse@>=1.0.2 <2.0.0", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.7.tgz" - }, - "array-differ": { - "version": "1.0.0", - "from": "array-differ@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/array-differ/-/array-differ-1.0.0.tgz" - }, - "array-find-index": { - "version": "1.0.1", - "from": "array-find-index@>=1.0.1 <2.0.0", - "resolved": "https://registry.npmjs.org/array-find-index/-/array-find-index-1.0.1.tgz" - }, - "array-union": { - "version": "1.0.2", - "from": "array-union@>=1.0.1 <2.0.0", - "resolved": "https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz" - }, - "array-uniq": { - "version": "1.0.3", - "from": "array-uniq@>=1.0.1 <2.0.0", - "resolved": "https://registry.npmjs.org/array-uniq/-/array-uniq-1.0.3.tgz" - }, - "arrify": { - "version": "1.0.1", - "from": "arrify@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz" - }, - "asap": { - "version": "2.0.4", - "from": "asap@>=2.0.3 <2.1.0", - "resolved": "https://registry.npmjs.org/asap/-/asap-2.0.4.tgz" - }, - "asn1": { - "version": "0.2.3", - "from": "asn1@>=0.2.3 <0.3.0", - "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.3.tgz" - }, - "assert-plus": { - "version": "0.2.0", - "from": "assert-plus@>=0.2.0 <0.3.0", - "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-0.2.0.tgz" - }, - "async": { - "version": "1.5.2", - "from": "async@>=1.5.2 <1.6.0", - "resolved": "https://registry.npmjs.org/async/-/async-1.5.2.tgz" - }, - "autoprefixer-core": { - "version": "5.2.1", - "from": "autoprefixer-core@>=5.1.7 <6.0.0", - "resolved": "https://registry.npmjs.org/autoprefixer-core/-/autoprefixer-core-5.2.1.tgz" - }, - "aws-sign2": { - "version": "0.6.0", - "from": "aws-sign2@>=0.6.0 <0.7.0", - "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.6.0.tgz" - }, - "aws4": { - "version": "1.4.1", - "from": "aws4@>=1.2.1 <2.0.0", - "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.4.1.tgz" - }, - "babel-runtime": { - "version": "6.9.2", - "from": "babel-runtime@>=6.9.2 <7.0.0", - "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.9.2.tgz" - }, - "babylon": { - "version": "6.8.4", - "from": "babylon@>=6.8.1 <7.0.0", - "resolved": "https://registry.npmjs.org/babylon/-/babylon-6.8.4.tgz" - }, - "balanced-match": { - "version": "0.4.1", - "from": "balanced-match@>=0.4.1 <0.5.0", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-0.4.1.tgz" - }, - "basic-auth": { - "version": "1.0.4", - "from": "basic-auth@>=1.0.3 <1.1.0", - "resolved": "https://registry.npmjs.org/basic-auth/-/basic-auth-1.0.4.tgz" - }, - "batch": { - "version": "0.5.3", - "from": "batch@0.5.3", - "resolved": "https://registry.npmjs.org/batch/-/batch-0.5.3.tgz" - }, - "bl": { - "version": "1.1.2", - "from": "bl@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/bl/-/bl-1.1.2.tgz", - "dependencies": { - "readable-stream": { - "version": "2.0.6", - "from": "readable-stream@>=2.0.5 <2.1.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.0.6.tgz" - } - } - }, - "body-parser": { - "version": "1.14.2", - "from": "body-parser@>=1.14.0 <1.15.0", - "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.14.2.tgz", - "dependencies": { - "http-errors": { - "version": "1.3.1", - "from": "http-errors@>=1.3.1 <1.4.0", - "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.3.1.tgz" - }, - "qs": { - "version": "5.2.0", - "from": "qs@5.2.0", - "resolved": "https://registry.npmjs.org/qs/-/qs-5.2.0.tgz" - } - } - }, - "boom": { - "version": "2.10.1", - "from": "boom@>=2.0.0 <3.0.0", - "resolved": "https://registry.npmjs.org/boom/-/boom-2.10.1.tgz" - }, - "brace-expansion": { - "version": "1.1.5", - "from": "brace-expansion@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.5.tgz" - }, - "browserify-zlib": { - "version": "0.1.4", - "from": "browserify-zlib@>=0.1.4 <0.2.0", - "resolved": "https://registry.npmjs.org/browserify-zlib/-/browserify-zlib-0.1.4.tgz" - }, - "browserslist": { - "version": "0.4.0", - "from": "browserslist@>=0.4.0 <0.5.0", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-0.4.0.tgz" - }, - "btoa": { - "version": "1.1.2", - "from": "btoa@>=1.1.2 <1.2.0", - "resolved": "https://registry.npmjs.org/btoa/-/btoa-1.1.2.tgz" - }, - "buffer-crc32": { - "version": "0.2.5", - "from": "buffer-crc32@>=0.2.1 <0.3.0", - "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.5.tgz" - }, - "buffer-shims": { - "version": "1.0.0", - "from": "buffer-shims@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/buffer-shims/-/buffer-shims-1.0.0.tgz" - }, - "builtin-modules": { - "version": "1.1.1", - "from": "builtin-modules@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-1.1.1.tgz" - }, - "bytes": { - "version": "2.2.0", - "from": "bytes@2.2.0", - "resolved": "https://registry.npmjs.org/bytes/-/bytes-2.2.0.tgz" - }, - "camel-case": { - "version": "3.0.0", - "from": "camel-case@>=3.0.0 <4.0.0", - "resolved": "https://registry.npmjs.org/camel-case/-/camel-case-3.0.0.tgz" - }, - "camelcase": { - "version": "2.1.1", - "from": "camelcase@>=2.0.0 <3.0.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-2.1.1.tgz" - }, - "camelcase-keys": { - "version": "2.1.0", - "from": "camelcase-keys@>=2.0.0 <3.0.0", - "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-2.1.0.tgz" - }, - "caniuse-db": { - "version": "1.0.30000506", - "from": "caniuse-db@>=1.0.30000214 <2.0.0", - "resolved": "https://registry.npmjs.org/caniuse-db/-/caniuse-db-1.0.30000506.tgz" - }, - "caseless": { - "version": "0.11.0", - "from": "caseless@>=0.11.0 <0.12.0", - "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.11.0.tgz" - }, - "center-align": { - "version": "0.1.3", - "from": "center-align@>=0.1.1 <0.2.0", - "resolved": "https://registry.npmjs.org/center-align/-/center-align-0.1.3.tgz" - }, - "chalk": { - "version": "1.1.3", - "from": "chalk@>=1.1.1 <1.2.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz" - }, - "change-case": { - "version": "3.0.0", - "from": "change-case@>=3.0.0 <3.1.0", - "resolved": "https://registry.npmjs.org/change-case/-/change-case-3.0.0.tgz" - }, - "character-parser": { - "version": "2.2.0", - "from": "character-parser@>=2.1.1 <3.0.0", - "resolved": "https://registry.npmjs.org/character-parser/-/character-parser-2.2.0.tgz" - }, - "clean-css": { - "version": "3.4.18", - "from": "clean-css@>=3.4.2 <3.5.0", - "resolved": "https://registry.npmjs.org/clean-css/-/clean-css-3.4.18.tgz" - }, - "cli": { - "version": "0.6.6", - "from": "cli@>=0.6.0 <0.7.0", - "resolved": "https://registry.npmjs.org/cli/-/cli-0.6.6.tgz", - "dependencies": { - "glob": { - "version": "3.2.11", - "from": "glob@>=3.2.1 <3.3.0", - "resolved": "https://registry.npmjs.org/glob/-/glob-3.2.11.tgz" - }, - "minimatch": { - "version": "0.3.0", - "from": "minimatch@>=0.3.0 <0.4.0", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-0.3.0.tgz" - } - } - }, - "cli-table": { - "version": "0.3.1", - "from": "cli-table@>=0.3.1 <0.4.0", - "resolved": "https://registry.npmjs.org/cli-table/-/cli-table-0.3.1.tgz", - "dependencies": { - "colors": { - "version": "1.0.3", - "from": "colors@1.0.3", - "resolved": "https://registry.npmjs.org/colors/-/colors-1.0.3.tgz" - } - } - }, - "cliui": { - "version": "2.1.0", - "from": "cliui@>=2.1.0 <3.0.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-2.1.0.tgz" - }, - "coffee-script": { - "version": "1.10.0", - "from": "coffee-script@>=1.10.0 <1.11.0", - "resolved": "https://registry.npmjs.org/coffee-script/-/coffee-script-1.10.0.tgz" - }, - "colors": { - "version": "1.1.2", - "from": "colors@>=1.1.2 <1.2.0", - "resolved": "https://registry.npmjs.org/colors/-/colors-1.1.2.tgz" - }, - "combined-stream": { - "version": "1.0.5", - "from": "combined-stream@>=1.0.5 <1.1.0", - "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.5.tgz" - }, - "commander": { - "version": "2.8.1", - "from": "commander@>=2.8.0 <2.9.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.8.1.tgz" - }, - "comment-parser": { - "version": "0.3.1", - "from": "comment-parser@>=0.3.1 <0.4.0", - "resolved": "https://registry.npmjs.org/comment-parser/-/comment-parser-0.3.1.tgz" - }, - "compress-commons": { - "version": "1.0.0", - "from": "compress-commons@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/compress-commons/-/compress-commons-1.0.0.tgz" - }, - "concat-map": { - "version": "0.0.1", - "from": "concat-map@0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz" - }, - "concat-stream": { - "version": "1.5.1", - "from": "concat-stream@>=1.4.1 <2.0.0", - "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.5.1.tgz", - "dependencies": { - "readable-stream": { - "version": "2.0.6", - "from": "readable-stream@>=2.0.0 <2.1.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.0.6.tgz" - } - } - }, - "connect": { - "version": "3.4.1", - "from": "connect@>=3.4.0 <4.0.0", - "resolved": "https://registry.npmjs.org/connect/-/connect-3.4.1.tgz" - }, - "connect-livereload": { - "version": "0.5.4", - "from": "connect-livereload@>=0.5.0 <0.6.0", - "resolved": "https://registry.npmjs.org/connect-livereload/-/connect-livereload-0.5.4.tgz" - }, - "console-browserify": { - "version": "1.1.0", - "from": "console-browserify@>=1.1.0 <1.2.0", - "resolved": "https://registry.npmjs.org/console-browserify/-/console-browserify-1.1.0.tgz" - }, - "constant-case": { - "version": "2.0.0", - "from": "constant-case@>=2.0.0 <3.0.0", - "resolved": "https://registry.npmjs.org/constant-case/-/constant-case-2.0.0.tgz" - }, - "constantinople": { - "version": "3.1.0", - "from": "constantinople@>=3.0.1 <4.0.0", - "resolved": "https://registry.npmjs.org/constantinople/-/constantinople-3.1.0.tgz" - }, - "content-type": { - "version": "1.0.2", - "from": "content-type@>=1.0.1 <1.1.0", - "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.2.tgz" - }, - "core-js": { - "version": "2.4.0", - "from": "core-js@>=2.4.0 <3.0.0", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.4.0.tgz" - }, - "core-util-is": { - "version": "1.0.2", - "from": "core-util-is@>=1.0.0 <1.1.0", - "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz" - }, - "crc32-stream": { - "version": "1.0.0", - "from": "crc32-stream@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/crc32-stream/-/crc32-stream-1.0.0.tgz" - }, - "cryptiles": { - "version": "2.0.5", - "from": "cryptiles@>=2.0.0 <3.0.0", - "resolved": "https://registry.npmjs.org/cryptiles/-/cryptiles-2.0.5.tgz" - }, - "csscomb": { - "version": "3.1.8", - "from": "csscomb@>=3.1.0 <3.2.0", - "resolved": "https://registry.npmjs.org/csscomb/-/csscomb-3.1.8.tgz", - "dependencies": { - "commander": { - "version": "2.0.0", - "from": "commander@2.0.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.0.0.tgz" - } - } - }, - "csscomb-core": { - "version": "3.0.0-3.1", - "from": "csscomb-core@3.0.0-3.1", - "resolved": "https://registry.npmjs.org/csscomb-core/-/csscomb-core-3.0.0-3.1.tgz", - "dependencies": { - "minimatch": { - "version": "0.2.12", - "from": "minimatch@0.2.12", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-0.2.12.tgz" - } - } - }, - "csslint": { - "version": "0.10.0", - "from": "csslint@>=0.10.0 <0.11.0", - "resolved": "https://registry.npmjs.org/csslint/-/csslint-0.10.0.tgz" - }, - "cst": { - "version": "0.4.4", - "from": "cst@>=0.4.3 <0.5.0", - "resolved": "https://registry.npmjs.org/cst/-/cst-0.4.4.tgz" - }, - "currently-unhandled": { - "version": "0.4.1", - "from": "currently-unhandled@>=0.4.1 <0.5.0", - "resolved": "https://registry.npmjs.org/currently-unhandled/-/currently-unhandled-0.4.1.tgz" - }, - "cycle": { - "version": "1.0.3", - "from": "cycle@>=1.0.0 <1.1.0", - "resolved": "https://registry.npmjs.org/cycle/-/cycle-1.0.3.tgz" - }, - "dashdash": { - "version": "1.14.0", - "from": "dashdash@>=1.12.0 <2.0.0", - "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.0.tgz", - "dependencies": { - "assert-plus": { - "version": "1.0.0", - "from": "assert-plus@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz" - } - } - }, - "date-now": { - "version": "0.1.4", - "from": "date-now@>=0.1.4 <0.2.0", - "resolved": "https://registry.npmjs.org/date-now/-/date-now-0.1.4.tgz" - }, - "date-time": { - "version": "1.0.0", - "from": "date-time@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/date-time/-/date-time-1.0.0.tgz" - }, - "dateformat": { - "version": "1.0.12", - "from": "dateformat@>=1.0.12 <1.1.0", - "resolved": "https://registry.npmjs.org/dateformat/-/dateformat-1.0.12.tgz" - }, - "debug": { - "version": "2.2.0", - "from": "debug@>=2.2.0 <2.3.0", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.2.0.tgz" - }, - "decamelize": { - "version": "1.2.0", - "from": "decamelize@>=1.1.2 <2.0.0", - "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz" - }, - "deep-equal": { - "version": "1.0.1", - "from": "deep-equal@*", - "resolved": "https://registry.npmjs.org/deep-equal/-/deep-equal-1.0.1.tgz" - }, - "delayed-stream": { - "version": "1.0.0", - "from": "delayed-stream@>=1.0.0 <1.1.0", - "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz" - }, - "depd": { - "version": "1.1.0", - "from": "depd@>=1.1.0 <1.2.0", - "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.0.tgz" - }, - "destroy": { - "version": "1.0.4", - "from": "destroy@>=1.0.4 <1.1.0", - "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz" - }, - "diff": { - "version": "1.3.2", - "from": "diff@>=1.3.0 <1.4.0", - "resolved": "https://registry.npmjs.org/diff/-/diff-1.3.2.tgz" - }, - "doctypes": { - "version": "1.0.0", - "from": "doctypes@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/doctypes/-/doctypes-1.0.0.tgz" - }, - "dom-serializer": { - "version": "0.1.0", - "from": "dom-serializer@>=0.0.0 <1.0.0", - "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-0.1.0.tgz", - "dependencies": { - "domelementtype": { - "version": "1.1.3", - "from": "domelementtype@>=1.1.1 <1.2.0", - "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-1.1.3.tgz" - }, - "entities": { - "version": "1.1.1", - "from": "entities@>=1.1.1 <1.2.0", - "resolved": "https://registry.npmjs.org/entities/-/entities-1.1.1.tgz" - } - } - }, - "domelementtype": { - "version": "1.3.0", - "from": "domelementtype@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-1.3.0.tgz" - }, - "domhandler": { - "version": "2.3.0", - "from": "domhandler@>=2.3.0 <2.4.0", - "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-2.3.0.tgz" - }, - "domutils": { - "version": "1.5.1", - "from": "domutils@>=1.5.0 <1.6.0", - "resolved": "https://registry.npmjs.org/domutils/-/domutils-1.5.1.tgz" - }, - "dot-case": { - "version": "2.1.0", - "from": "dot-case@>=2.1.0 <3.0.0", - "resolved": "https://registry.npmjs.org/dot-case/-/dot-case-2.1.0.tgz" - }, - "ecc-jsbn": { - "version": "0.1.1", - "from": "ecc-jsbn@>=0.1.1 <0.2.0", - "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.1.tgz" - }, - "ee-first": { - "version": "1.1.1", - "from": "ee-first@1.1.1", - "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz" - }, - "encodeurl": { - "version": "1.0.1", - "from": "encodeurl@>=1.0.1 <1.1.0", - "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.1.tgz" - }, - "end-of-stream": { - "version": "1.1.0", - "from": "end-of-stream@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.1.0.tgz" - }, - "entities": { - "version": "1.0.0", - "from": "entities@>=1.0.0 <1.1.0", - "resolved": "https://registry.npmjs.org/entities/-/entities-1.0.0.tgz" - }, - "errno": { - "version": "0.1.4", - "from": "errno@>=0.1.1 <0.2.0", - "resolved": "https://registry.npmjs.org/errno/-/errno-0.1.4.tgz" - }, - "error-ex": { - "version": "1.3.0", - "from": "error-ex@>=1.2.0 <2.0.0", - "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.0.tgz" - }, - "es6-promise": { - "version": "2.3.0", - "from": "es6-promise@>=2.3.0 <2.4.0", - "resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-2.3.0.tgz" - }, - "escape-html": { - "version": "1.0.3", - "from": "escape-html@>=1.0.3 <1.1.0", - "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz" - }, - "escape-string-regexp": { - "version": "1.0.5", - "from": "escape-string-regexp@>=1.0.2 <2.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz" - }, - "esprima": { - "version": "2.7.2", - "from": "esprima@>=2.6.0 <3.0.0", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-2.7.2.tgz" - }, - "estraverse": { - "version": "4.2.0", - "from": "estraverse@>=4.1.0 <5.0.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.2.0.tgz" - }, - "etag": { - "version": "1.7.0", - "from": "etag@>=1.7.0 <1.8.0", - "resolved": "https://registry.npmjs.org/etag/-/etag-1.7.0.tgz" - }, - "eventemitter2": { - "version": "0.4.14", - "from": "eventemitter2@>=0.4.13 <0.5.0", - "resolved": "https://registry.npmjs.org/eventemitter2/-/eventemitter2-0.4.14.tgz" - }, - "exit": { - "version": "0.1.2", - "from": "exit@>=0.1.1 <0.2.0", - "resolved": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz" - }, - "extend": { - "version": "3.0.0", - "from": "extend@>=3.0.0 <3.1.0", - "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.0.tgz" - }, - "extract-zip": { - "version": "1.5.0", - "from": "extract-zip@>=1.5.0 <1.6.0", - "resolved": "https://registry.npmjs.org/extract-zip/-/extract-zip-1.5.0.tgz", - "dependencies": { - "concat-stream": { - "version": "1.5.0", - "from": "concat-stream@1.5.0", - "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.5.0.tgz" - }, - "debug": { - "version": "0.7.4", - "from": "debug@0.7.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-0.7.4.tgz" - }, - "minimist": { - "version": "0.0.8", - "from": "minimist@0.0.8", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz" - }, - "mkdirp": { - "version": "0.5.0", - "from": "mkdirp@0.5.0", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.0.tgz" - }, - "readable-stream": { - "version": "2.0.6", - "from": "readable-stream@>=2.0.0 <2.1.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.0.6.tgz" - } - } - }, - "extsprintf": { - "version": "1.0.2", - "from": "extsprintf@1.0.2", - "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.0.2.tgz" - }, - "eyes": { - "version": "0.1.8", - "from": "eyes@>=0.1.0 <0.2.0", - "resolved": "https://registry.npmjs.org/eyes/-/eyes-0.1.8.tgz" - }, - "faye-websocket": { - "version": "0.10.0", - "from": "faye-websocket@>=0.10.0 <0.11.0", - "resolved": "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.10.0.tgz" - }, - "fd-slicer": { - "version": "1.0.1", - "from": "fd-slicer@>=1.0.1 <1.1.0", - "resolved": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.0.1.tgz" - }, - "fg-lodash": { - "version": "0.0.2", - "from": "fg-lodash@0.0.2", - "resolved": "https://registry.npmjs.org/fg-lodash/-/fg-lodash-0.0.2.tgz", - "dependencies": { - "lodash": { - "version": "2.4.2", - "from": "lodash@>=2.4.1 <3.0.0", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-2.4.2.tgz" - }, - "underscore.string": { - "version": "2.3.3", - "from": "underscore.string@>=2.3.3 <2.4.0", - "resolved": "https://registry.npmjs.org/underscore.string/-/underscore.string-2.3.3.tgz" - } - } - }, - "figures": { - "version": "1.7.0", - "from": "figures@>=1.0.1 <2.0.0", - "resolved": "https://registry.npmjs.org/figures/-/figures-1.7.0.tgz" - }, - "file-sync-cmp": { - "version": "0.1.1", - "from": "file-sync-cmp@>=0.1.0 <0.2.0", - "resolved": "https://registry.npmjs.org/file-sync-cmp/-/file-sync-cmp-0.1.1.tgz" - }, - "finalhandler": { - "version": "0.4.1", - "from": "finalhandler@0.4.1", - "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-0.4.1.tgz" - }, - "find-up": { - "version": "1.1.2", - "from": "find-up@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz" - }, - "findup-sync": { - "version": "0.3.0", - "from": "findup-sync@>=0.3.0 <0.4.0", - "resolved": "https://registry.npmjs.org/findup-sync/-/findup-sync-0.3.0.tgz", - "dependencies": { - "glob": { - "version": "5.0.15", - "from": "glob@>=5.0.0 <5.1.0", - "resolved": "https://registry.npmjs.org/glob/-/glob-5.0.15.tgz" - } - } - }, - "forever-agent": { - "version": "0.6.1", - "from": "forever-agent@>=0.6.1 <0.7.0", - "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz" - }, - "form-data": { - "version": "1.0.0-rc4", - "from": "form-data@>=1.0.0-rc4 <1.1.0", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-1.0.0-rc4.tgz" - }, - "fresh": { - "version": "0.3.0", - "from": "fresh@0.3.0", - "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.3.0.tgz" - }, - "fs-extra": { - "version": "0.26.7", - "from": "fs-extra@>=0.26.4 <0.27.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-0.26.7.tgz" - }, - "fs.realpath": { - "version": "1.0.0", - "from": "fs.realpath@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz" - }, - "gaze": { - "version": "1.1.0", - "from": "gaze@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/gaze/-/gaze-1.1.0.tgz" - }, - "generate-function": { - "version": "2.0.0", - "from": "generate-function@>=2.0.0 <3.0.0", - "resolved": "https://registry.npmjs.org/generate-function/-/generate-function-2.0.0.tgz" - }, - "generate-object-property": { - "version": "1.2.0", - "from": "generate-object-property@>=1.1.0 <2.0.0", - "resolved": "https://registry.npmjs.org/generate-object-property/-/generate-object-property-1.2.0.tgz" - }, - "get-stdin": { - "version": "4.0.1", - "from": "get-stdin@>=4.0.1 <5.0.0", - "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-4.0.1.tgz" - }, - "getobject": { - "version": "0.1.0", - "from": "getobject@>=0.1.0 <0.2.0", - "resolved": "https://registry.npmjs.org/getobject/-/getobject-0.1.0.tgz" - }, - "getpass": { - "version": "0.1.6", - "from": "getpass@>=0.1.1 <0.2.0", - "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.6.tgz", - "dependencies": { - "assert-plus": { - "version": "1.0.0", - "from": "assert-plus@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz" - } - } - }, - "glob": { - "version": "7.0.5", - "from": "glob@>=7.0.3 <7.1.0", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.0.5.tgz" - }, - "globule": { - "version": "1.0.0", - "from": "globule@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/globule/-/globule-1.0.0.tgz", - "dependencies": { - "lodash": { - "version": "4.9.0", - "from": "lodash@>=4.9.0 <4.10.0", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.9.0.tgz" - } - } - }, - "gonzales-pe": { - "version": "3.0.0-28", - "from": "gonzales-pe@3.0.0-28", - "resolved": "https://registry.npmjs.org/gonzales-pe/-/gonzales-pe-3.0.0-28.tgz" - }, - "graceful-fs": { - "version": "4.1.4", - "from": "graceful-fs@>=4.1.2 <5.0.0", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.4.tgz" - }, - "graceful-readlink": { - "version": "1.0.1", - "from": "graceful-readlink@>=1.0.0", - "resolved": "https://registry.npmjs.org/graceful-readlink/-/graceful-readlink-1.0.1.tgz" - }, - "grunt": { - "version": "1.0.1", - "from": "grunt@>=1.0.1 <1.1.0", - "resolved": "https://registry.npmjs.org/grunt/-/grunt-1.0.1.tgz", - "dependencies": { - "grunt-cli": { - "version": "1.2.0", - "from": "grunt-cli@>=1.2.0 <1.3.0", - "resolved": "https://registry.npmjs.org/grunt-cli/-/grunt-cli-1.2.0.tgz" - } - } - }, - "grunt-autoprefixer": { - "version": "3.0.4", - "from": "grunt-autoprefixer@>=3.0.4 <3.1.0", - "resolved": "https://registry.npmjs.org/grunt-autoprefixer/-/grunt-autoprefixer-3.0.4.tgz", - "dependencies": { - "ansi-regex": { - "version": "1.1.1", - "from": "ansi-regex@>=1.1.0 <2.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-1.1.1.tgz" - }, - "chalk": { - "version": "1.0.0", - "from": "chalk@>=1.0.0 <1.1.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.0.0.tgz" - }, - "has-ansi": { - "version": "1.0.3", - "from": "has-ansi@>=1.0.3 <2.0.0", - "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-1.0.3.tgz" - }, - "strip-ansi": { - "version": "2.0.1", - "from": "strip-ansi@>=2.0.1 <3.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-2.0.1.tgz" - }, - "supports-color": { - "version": "1.3.1", - "from": "supports-color@>=1.3.0 <2.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-1.3.1.tgz" - } - } - }, - "grunt-contrib-clean": { - "version": "1.0.0", - "from": "grunt-contrib-clean@>=1.0.0 <1.1.0", - "resolved": "https://registry.npmjs.org/grunt-contrib-clean/-/grunt-contrib-clean-1.0.0.tgz", - "dependencies": { - "rimraf": { - "version": "2.5.3", - "from": "rimraf@>=2.5.1 <3.0.0", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.5.3.tgz" - } - } - }, - "grunt-contrib-compress": { - "version": "1.3.0", - "from": "grunt-contrib-compress@>=1.3.0 <1.4.0", - "resolved": "https://registry.npmjs.org/grunt-contrib-compress/-/grunt-contrib-compress-1.3.0.tgz", - "dependencies": { - "lodash": { - "version": "4.13.1", - "from": "lodash@>=4.7.0 <5.0.0", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.13.1.tgz" - } - } - }, - "grunt-contrib-concat": { - "version": "1.0.1", - "from": "grunt-contrib-concat@>=1.0.0 <1.1.0", - "resolved": "https://registry.npmjs.org/grunt-contrib-concat/-/grunt-contrib-concat-1.0.1.tgz", - "dependencies": { - "source-map": { - "version": "0.5.6", - "from": "source-map@>=0.5.3 <0.6.0", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.6.tgz" - } - } - }, - "grunt-contrib-connect": { - "version": "1.0.2", - "from": "grunt-contrib-connect@>=1.0.0 <1.1.0", - "resolved": "https://registry.npmjs.org/grunt-contrib-connect/-/grunt-contrib-connect-1.0.2.tgz" - }, - "grunt-contrib-copy": { - "version": "1.0.0", - "from": "grunt-contrib-copy@>=1.0.0 <1.1.0", - "resolved": "https://registry.npmjs.org/grunt-contrib-copy/-/grunt-contrib-copy-1.0.0.tgz" - }, - "grunt-contrib-csslint": { - "version": "1.0.0", - "from": "grunt-contrib-csslint@>=1.0.0 <1.1.0", - "resolved": "https://registry.npmjs.org/grunt-contrib-csslint/-/grunt-contrib-csslint-1.0.0.tgz" - }, - "grunt-contrib-cssmin": { - "version": "1.0.1", - "from": "grunt-contrib-cssmin@>=1.0.0 <1.1.0", - "resolved": "https://registry.npmjs.org/grunt-contrib-cssmin/-/grunt-contrib-cssmin-1.0.1.tgz" - }, - "grunt-contrib-htmlmin": { - "version": "1.5.0", - "from": "grunt-contrib-htmlmin@>=1.5.0 <1.6.0", - "resolved": "https://registry.npmjs.org/grunt-contrib-htmlmin/-/grunt-contrib-htmlmin-1.5.0.tgz" - }, - "grunt-contrib-jshint": { - "version": "1.0.0", - "from": "grunt-contrib-jshint@>=1.0.0 <1.1.0", - "resolved": "https://registry.npmjs.org/grunt-contrib-jshint/-/grunt-contrib-jshint-1.0.0.tgz" - }, - "grunt-contrib-less": { - "version": "1.3.0", - "from": "grunt-contrib-less@>=1.3.0 <1.4.0", - "resolved": "https://registry.npmjs.org/grunt-contrib-less/-/grunt-contrib-less-1.3.0.tgz", - "dependencies": { - "lodash": { - "version": "4.13.1", - "from": "lodash@>=4.8.2 <5.0.0", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.13.1.tgz" - } - } - }, - "grunt-contrib-pug": { - "version": "1.0.0", - "from": "grunt-contrib-pug@>=1.0.0 <1.1.0", - "resolved": "https://registry.npmjs.org/grunt-contrib-pug/-/grunt-contrib-pug-1.0.0.tgz" - }, - "grunt-contrib-qunit": { - "version": "0.7.0", - "from": "grunt-contrib-qunit@>=0.7.0 <0.8.0", - "resolved": "https://registry.npmjs.org/grunt-contrib-qunit/-/grunt-contrib-qunit-0.7.0.tgz" - }, - "grunt-contrib-uglify": { - "version": "1.0.1", - "from": "grunt-contrib-uglify@>=1.0.0 <1.1.0", - "resolved": "https://registry.npmjs.org/grunt-contrib-uglify/-/grunt-contrib-uglify-1.0.1.tgz", - "dependencies": { - "lodash": { - "version": "4.13.1", - "from": "lodash@>=4.0.1 <5.0.0", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.13.1.tgz" - } - } - }, - "grunt-contrib-watch": { - "version": "1.0.0", - "from": "grunt-contrib-watch@>=1.0.0 <1.1.0", - "resolved": "https://registry.npmjs.org/grunt-contrib-watch/-/grunt-contrib-watch-1.0.0.tgz" - }, - "grunt-csscomb": { - "version": "3.1.1", - "from": "grunt-csscomb@>=3.1.0 <3.2.0", - "resolved": "https://registry.npmjs.org/grunt-csscomb/-/grunt-csscomb-3.1.1.tgz" - }, - "grunt-exec": { - "version": "1.0.0", - "from": "grunt-exec@>=1.0.0 <1.1.0", - "resolved": "https://registry.npmjs.org/grunt-exec/-/grunt-exec-1.0.0.tgz" - }, - "grunt-html": { - "version": "8.0.2", - "from": "grunt-html@>=8.0.1 <8.1.0", - "resolved": "https://registry.npmjs.org/grunt-html/-/grunt-html-8.0.2.tgz" - }, - "grunt-jekyll": { - "version": "0.4.4", - "from": "grunt-jekyll@>=0.4.4 <0.5.0", - "resolved": "https://registry.npmjs.org/grunt-jekyll/-/grunt-jekyll-0.4.4.tgz" - }, - "grunt-jscs": { - "version": "3.0.1", - "from": "grunt-jscs@>=3.0.1 <3.1.0", - "resolved": "https://registry.npmjs.org/grunt-jscs/-/grunt-jscs-3.0.1.tgz", - "dependencies": { - "lodash": { - "version": "4.6.1", - "from": "lodash@>=4.6.1 <4.7.0", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.6.1.tgz" - } - } - }, - "grunt-known-options": { - "version": "1.1.0", - "from": "grunt-known-options@>=1.1.0 <1.2.0", - "resolved": "https://registry.npmjs.org/grunt-known-options/-/grunt-known-options-1.1.0.tgz" - }, - "grunt-legacy-log": { - "version": "1.0.0", - "from": "grunt-legacy-log@>=1.0.0 <1.1.0", - "resolved": "https://registry.npmjs.org/grunt-legacy-log/-/grunt-legacy-log-1.0.0.tgz" - }, - "grunt-legacy-log-utils": { - "version": "1.0.0", - "from": "grunt-legacy-log-utils@>=1.0.0 <1.1.0", - "resolved": "https://registry.npmjs.org/grunt-legacy-log-utils/-/grunt-legacy-log-utils-1.0.0.tgz", - "dependencies": { - "lodash": { - "version": "4.3.0", - "from": "lodash@>=4.3.0 <4.4.0", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.3.0.tgz" - } - } - }, - "grunt-legacy-util": { - "version": "1.0.0", - "from": "grunt-legacy-util@>=1.0.0 <1.1.0", - "resolved": "https://registry.npmjs.org/grunt-legacy-util/-/grunt-legacy-util-1.0.0.tgz", - "dependencies": { - "lodash": { - "version": "4.3.0", - "from": "lodash@>=4.3.0 <4.4.0", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.3.0.tgz" - } - } - }, - "grunt-lib-phantomjs": { - "version": "0.6.0", - "from": "grunt-lib-phantomjs@>=0.6.0 <0.7.0", - "resolved": "https://registry.npmjs.org/grunt-lib-phantomjs/-/grunt-lib-phantomjs-0.6.0.tgz", - "dependencies": { - "semver": { - "version": "1.0.14", - "from": "semver@>=1.0.14 <1.1.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-1.0.14.tgz" - } - } - }, - "grunt-saucelabs": { - "version": "9.0.0", - "from": "grunt-saucelabs@>=9.0.0 <9.1.0", - "resolved": "https://registry.npmjs.org/grunt-saucelabs/-/grunt-saucelabs-9.0.0.tgz", - "dependencies": { - "lodash": { - "version": "4.13.1", - "from": "lodash@>=4.13.1 <4.14.0", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.13.1.tgz" - } - } - }, - "gzip-size": { - "version": "1.0.0", - "from": "gzip-size@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/gzip-size/-/gzip-size-1.0.0.tgz" - }, - "har-validator": { - "version": "2.0.6", - "from": "har-validator@>=2.0.6 <2.1.0", - "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-2.0.6.tgz", - "dependencies": { - "commander": { - "version": "2.9.0", - "from": "commander@>=2.9.0 <3.0.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.9.0.tgz" - } - } - }, - "has-ansi": { - "version": "2.0.0", - "from": "has-ansi@>=2.0.0 <3.0.0", - "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz" - }, - "has-color": { - "version": "0.1.7", - "from": "has-color@>=0.1.0 <0.2.0", - "resolved": "https://registry.npmjs.org/has-color/-/has-color-0.1.7.tgz" - }, - "hasha": { - "version": "2.2.0", - "from": "hasha@>=2.2.0 <3.0.0", - "resolved": "https://registry.npmjs.org/hasha/-/hasha-2.2.0.tgz" - }, - "hawk": { - "version": "3.1.3", - "from": "hawk@>=3.1.3 <3.2.0", - "resolved": "https://registry.npmjs.org/hawk/-/hawk-3.1.3.tgz" - }, - "he": { - "version": "1.1.0", - "from": "he@>=1.1.0 <1.2.0", - "resolved": "https://registry.npmjs.org/he/-/he-1.1.0.tgz" - }, - "header-case": { - "version": "1.0.0", - "from": "header-case@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/header-case/-/header-case-1.0.0.tgz" - }, - "hoek": { - "version": "2.16.3", - "from": "hoek@>=2.0.0 <3.0.0", - "resolved": "https://registry.npmjs.org/hoek/-/hoek-2.16.3.tgz" - }, - "hooker": { - "version": "0.2.3", - "from": "hooker@>=0.2.3 <0.3.0", - "resolved": "https://registry.npmjs.org/hooker/-/hooker-0.2.3.tgz" - }, - "hosted-git-info": { - "version": "2.1.5", - "from": "hosted-git-info@>=2.1.4 <3.0.0", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.1.5.tgz" - }, - "html-minifier": { - "version": "2.1.7", - "from": "html-minifier@>=2.1.7 <2.2.0", - "resolved": "https://registry.npmjs.org/html-minifier/-/html-minifier-2.1.7.tgz", - "dependencies": { - "commander": { - "version": "2.9.0", - "from": "commander@>=2.9.0 <2.10.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.9.0.tgz" - } - } - }, - "htmlparser2": { - "version": "3.8.3", - "from": "htmlparser2@>=3.8.0 <3.9.0", - "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-3.8.3.tgz", - "dependencies": { - "isarray": { - "version": "0.0.1", - "from": "isarray@0.0.1", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz" - }, - "readable-stream": { - "version": "1.1.14", - "from": "readable-stream@>=1.1.0 <1.2.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz" - } - } - }, - "http-errors": { - "version": "1.5.0", - "from": "http-errors@>=1.5.0 <1.6.0", - "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.5.0.tgz" - }, - "http-signature": { - "version": "1.1.1", - "from": "http-signature@>=1.1.0 <1.2.0", - "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.1.1.tgz" - }, - "http2": { - "version": "3.3.4", - "from": "http2@>=3.3.4 <4.0.0", - "resolved": "https://registry.npmjs.org/http2/-/http2-3.3.4.tgz" - }, - "https-proxy-agent": { - "version": "1.0.0", - "from": "https-proxy-agent@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-1.0.0.tgz" - }, - "i": { - "version": "0.3.5", - "from": "i@>=0.3.0 <0.4.0", - "resolved": "https://registry.npmjs.org/i/-/i-0.3.5.tgz" - }, - "iconv-lite": { - "version": "0.4.13", - "from": "iconv-lite@>=0.4.13 <0.5.0", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.13.tgz" - }, - "image-size": { - "version": "0.4.0", - "from": "image-size@>=0.4.0 <0.5.0", - "resolved": "https://registry.npmjs.org/image-size/-/image-size-0.4.0.tgz" - }, - "indent-string": { - "version": "2.1.0", - "from": "indent-string@>=2.1.0 <3.0.0", - "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-2.1.0.tgz" - }, - "inflight": { - "version": "1.0.5", - "from": "inflight@>=1.0.4 <2.0.0", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.5.tgz" - }, - "inherit": { - "version": "2.2.4", - "from": "inherit@>=2.2.2 <3.0.0", - "resolved": "https://registry.npmjs.org/inherit/-/inherit-2.2.4.tgz" - }, - "inherits": { - "version": "2.0.1", - "from": "inherits@>=2.0.0 <3.0.0", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz" - }, - "interpret": { - "version": "1.0.1", - "from": "interpret@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.0.1.tgz" - }, - "is-arrayish": { - "version": "0.2.1", - "from": "is-arrayish@>=0.2.1 <0.3.0", - "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz" - }, - "is-buffer": { - "version": "1.1.3", - "from": "is-buffer@>=1.0.2 <2.0.0", - "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.3.tgz" - }, - "is-builtin-module": { - "version": "1.0.0", - "from": "is-builtin-module@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/is-builtin-module/-/is-builtin-module-1.0.0.tgz" - }, - "is-expression": { - "version": "2.0.1", - "from": "is-expression@>=2.0.1 <3.0.0", - "resolved": "https://registry.npmjs.org/is-expression/-/is-expression-2.0.1.tgz", - "dependencies": { - "acorn": { - "version": "3.1.0", - "from": "acorn@>=3.1.0 <3.2.0", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-3.1.0.tgz" - } - } - }, - "is-finite": { - "version": "1.0.1", - "from": "is-finite@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/is-finite/-/is-finite-1.0.1.tgz" - }, - "is-lower-case": { - "version": "1.1.3", - "from": "is-lower-case@>=1.1.0 <2.0.0", - "resolved": "https://registry.npmjs.org/is-lower-case/-/is-lower-case-1.1.3.tgz" - }, - "is-my-json-valid": { - "version": "2.13.1", - "from": "is-my-json-valid@>=2.12.4 <3.0.0", - "resolved": "https://registry.npmjs.org/is-my-json-valid/-/is-my-json-valid-2.13.1.tgz" - }, - "is-promise": { - "version": "2.1.0", - "from": "is-promise@>=2.0.0 <3.0.0", - "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-2.1.0.tgz" - }, - "is-property": { - "version": "1.0.2", - "from": "is-property@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/is-property/-/is-property-1.0.2.tgz" - }, - "is-regex": { - "version": "1.0.3", - "from": "is-regex@>=1.0.3 <2.0.0", - "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.0.3.tgz" - }, - "is-stream": { - "version": "1.1.0", - "from": "is-stream@>=1.0.1 <2.0.0", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz" - }, - "is-typedarray": { - "version": "1.0.0", - "from": "is-typedarray@>=1.0.0 <1.1.0", - "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz" - }, - "is-upper-case": { - "version": "1.1.2", - "from": "is-upper-case@>=1.1.0 <2.0.0", - "resolved": "https://registry.npmjs.org/is-upper-case/-/is-upper-case-1.1.2.tgz" - }, - "is-utf8": { - "version": "0.2.1", - "from": "is-utf8@>=0.2.0 <0.3.0", - "resolved": "https://registry.npmjs.org/is-utf8/-/is-utf8-0.2.1.tgz" - }, - "isarray": { - "version": "1.0.0", - "from": "isarray@>=1.0.0 <1.1.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz" - }, - "isexe": { - "version": "1.1.2", - "from": "isexe@>=1.1.1 <2.0.0", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-1.1.2.tgz" - }, - "isstream": { - "version": "0.1.2", - "from": "isstream@>=0.1.2 <0.2.0", - "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz" - }, - "jodid25519": { - "version": "1.0.2", - "from": "jodid25519@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/jodid25519/-/jodid25519-1.0.2.tgz" - }, - "js-base64": { - "version": "2.1.9", - "from": "js-base64@>=2.1.8 <2.2.0", - "resolved": "https://registry.npmjs.org/js-base64/-/js-base64-2.1.9.tgz" - }, - "js-stringify": { - "version": "1.0.2", - "from": "js-stringify@>=1.0.1 <2.0.0", - "resolved": "https://registry.npmjs.org/js-stringify/-/js-stringify-1.0.2.tgz" - }, - "js-yaml": { - "version": "3.5.5", - "from": "js-yaml@>=3.5.2 <3.6.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.5.5.tgz" - }, - "jsbn": { - "version": "0.1.0", - "from": "jsbn@>=0.1.0 <0.2.0", - "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.0.tgz" - }, - "jscs": { - "version": "3.0.7", - "from": "jscs@>=3.0.5 <3.1.0", - "resolved": "https://registry.npmjs.org/jscs/-/jscs-3.0.7.tgz", - "dependencies": { - "commander": { - "version": "2.9.0", - "from": "commander@>=2.9.0 <2.10.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.9.0.tgz" - }, - "glob": { - "version": "5.0.15", - "from": "glob@>=5.0.1 <6.0.0", - "resolved": "https://registry.npmjs.org/glob/-/glob-5.0.15.tgz" - }, - "js-yaml": { - "version": "3.4.6", - "from": "js-yaml@>=3.4.0 <3.5.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.4.6.tgz" - }, - "vow": { - "version": "0.4.12", - "from": "vow@>=0.4.8 <0.5.0", - "resolved": "https://registry.npmjs.org/vow/-/vow-0.4.12.tgz" - }, - "vow-fs": { - "version": "0.3.5", - "from": "vow-fs@>=0.3.4 <0.4.0", - "resolved": "https://registry.npmjs.org/vow-fs/-/vow-fs-0.3.5.tgz", - "dependencies": { - "glob": { - "version": "4.5.3", - "from": "glob@>=4.3.1 <5.0.0", - "resolved": "https://registry.npmjs.org/glob/-/glob-4.5.3.tgz" - }, - "minimatch": { - "version": "2.0.10", - "from": "minimatch@>=2.0.1 <3.0.0", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-2.0.10.tgz" - } - } - }, - "vow-queue": { - "version": "0.4.2", - "from": "vow-queue@>=0.4.1 <0.5.0", - "resolved": "https://registry.npmjs.org/vow-queue/-/vow-queue-0.4.2.tgz" - } - } - }, - "jscs-jsdoc": { - "version": "2.0.0", - "from": "jscs-jsdoc@>=2.0.0 <3.0.0", - "resolved": "https://registry.npmjs.org/jscs-jsdoc/-/jscs-jsdoc-2.0.0.tgz" - }, - "jscs-preset-wikimedia": { - "version": "1.0.0", - "from": "jscs-preset-wikimedia@>=1.0.0 <1.1.0", - "resolved": "https://registry.npmjs.org/jscs-preset-wikimedia/-/jscs-preset-wikimedia-1.0.0.tgz" - }, - "jsdoctypeparser": { - "version": "1.2.0", - "from": "jsdoctypeparser@>=1.2.0 <1.3.0", - "resolved": "https://registry.npmjs.org/jsdoctypeparser/-/jsdoctypeparser-1.2.0.tgz" - }, - "jshint": { - "version": "2.9.2", - "from": "jshint@>=2.9.1 <2.10.0", - "resolved": "https://registry.npmjs.org/jshint/-/jshint-2.9.2.tgz", - "dependencies": { - "lodash": { - "version": "3.7.0", - "from": "lodash@>=3.7.0 <3.8.0", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-3.7.0.tgz" - }, - "minimatch": { - "version": "2.0.10", - "from": "minimatch@>=2.0.0 <2.1.0", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-2.0.10.tgz" - }, - "shelljs": { - "version": "0.3.0", - "from": "shelljs@>=0.3.0 <0.4.0", - "resolved": "https://registry.npmjs.org/shelljs/-/shelljs-0.3.0.tgz" - } - } - }, - "json-schema": { - "version": "0.2.2", - "from": "json-schema@0.2.2", - "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.2.tgz" - }, - "json-stringify-safe": { - "version": "5.0.1", - "from": "json-stringify-safe@>=5.0.1 <5.1.0", - "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz" - }, - "jsonfile": { - "version": "2.3.1", - "from": "jsonfile@>=2.1.0 <3.0.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-2.3.1.tgz" - }, - "jsonlint": { - "version": "1.6.2", - "from": "jsonlint@>=1.6.2 <1.7.0", - "resolved": "https://registry.npmjs.org/jsonlint/-/jsonlint-1.6.2.tgz" - }, - "jsonpointer": { - "version": "2.0.0", - "from": "jsonpointer@2.0.0", - "resolved": "https://registry.npmjs.org/jsonpointer/-/jsonpointer-2.0.0.tgz" - }, - "jsprim": { - "version": "1.3.0", - "from": "jsprim@>=1.2.2 <2.0.0", - "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.3.0.tgz" - }, - "jstransformer": { - "version": "1.0.0", - "from": "jstransformer@1.0.0", - "resolved": "https://registry.npmjs.org/jstransformer/-/jstransformer-1.0.0.tgz" - }, - "JSV": { - "version": "4.0.2", - "from": "JSV@>=4.0.0", - "resolved": "https://registry.npmjs.org/JSV/-/JSV-4.0.2.tgz" - }, - "kew": { - "version": "0.7.0", - "from": "kew@>=0.7.0 <0.8.0", - "resolved": "https://registry.npmjs.org/kew/-/kew-0.7.0.tgz" - }, - "kind-of": { - "version": "3.0.3", - "from": "kind-of@>=3.0.2 <4.0.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.0.3.tgz" - }, - "klaw": { - "version": "1.3.0", - "from": "klaw@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/klaw/-/klaw-1.3.0.tgz" - }, - "lazy-cache": { - "version": "1.0.4", - "from": "lazy-cache@>=1.0.3 <2.0.0", - "resolved": "https://registry.npmjs.org/lazy-cache/-/lazy-cache-1.0.4.tgz" - }, - "lazystream": { - "version": "1.0.0", - "from": "lazystream@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/lazystream/-/lazystream-1.0.0.tgz" - }, - "less": { - "version": "2.6.1", - "from": "less@>=2.6.0 <2.7.0", - "resolved": "https://registry.npmjs.org/less/-/less-2.6.1.tgz", - "dependencies": { - "source-map": { - "version": "0.5.6", - "from": "source-map@>=0.5.3 <0.6.0", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.6.tgz" - } - } - }, - "linkify-it": { - "version": "2.0.0", - "from": "linkify-it@>=2.0.0 <3.0.0", - "resolved": "https://registry.npmjs.org/linkify-it/-/linkify-it-2.0.0.tgz" - }, - "livereload-js": { - "version": "2.2.2", - "from": "livereload-js@>=2.2.0 <3.0.0", - "resolved": "https://registry.npmjs.org/livereload-js/-/livereload-js-2.2.2.tgz" - }, - "load-grunt-tasks": { - "version": "3.5.0", - "from": "load-grunt-tasks@>=3.5.0 <3.6.0", - "resolved": "https://registry.npmjs.org/load-grunt-tasks/-/load-grunt-tasks-3.5.0.tgz" - }, - "load-json-file": { - "version": "1.1.0", - "from": "load-json-file@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz" - }, - "lodash": { - "version": "3.10.1", - "from": "lodash@>=3.10.1 <3.11.0", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-3.10.1.tgz" - }, - "longest": { - "version": "1.0.1", - "from": "longest@>=1.0.1 <2.0.0", - "resolved": "https://registry.npmjs.org/longest/-/longest-1.0.1.tgz" - }, - "loud-rejection": { - "version": "1.6.0", - "from": "loud-rejection@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/loud-rejection/-/loud-rejection-1.6.0.tgz" - }, - "lower-case": { - "version": "1.1.3", - "from": "lower-case@>=1.1.1 <2.0.0", - "resolved": "https://registry.npmjs.org/lower-case/-/lower-case-1.1.3.tgz" - }, - "lower-case-first": { - "version": "1.0.2", - "from": "lower-case-first@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/lower-case-first/-/lower-case-first-1.0.2.tgz" - }, - "lru-cache": { - "version": "2.7.3", - "from": "lru-cache@>=2.0.0 <3.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-2.7.3.tgz" - }, - "map-obj": { - "version": "1.0.1", - "from": "map-obj@>=1.0.1 <2.0.0", - "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz" - }, - "markdown-it": { - "version": "7.0.0", - "from": "markdown-it@>=7.0.0 <8.0.0", - "resolved": "https://registry.npmjs.org/markdown-it/-/markdown-it-7.0.0.tgz", - "dependencies": { - "entities": { - "version": "1.1.1", - "from": "entities@>=1.1.1 <1.2.0", - "resolved": "https://registry.npmjs.org/entities/-/entities-1.1.1.tgz" - } - } - }, - "maxmin": { - "version": "1.1.0", - "from": "maxmin@>=1.1.0 <2.0.0", - "resolved": "https://registry.npmjs.org/maxmin/-/maxmin-1.1.0.tgz", - "dependencies": { - "pretty-bytes": { - "version": "1.0.4", - "from": "pretty-bytes@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/pretty-bytes/-/pretty-bytes-1.0.4.tgz" - } - } - }, - "mdurl": { - "version": "1.0.1", - "from": "mdurl@>=1.0.1 <2.0.0", - "resolved": "https://registry.npmjs.org/mdurl/-/mdurl-1.0.1.tgz" - }, - "media-typer": { - "version": "0.3.0", - "from": "media-typer@0.3.0", - "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz" - }, - "meow": { - "version": "3.7.0", - "from": "meow@>=3.3.0 <4.0.0", - "resolved": "https://registry.npmjs.org/meow/-/meow-3.7.0.tgz" - }, - "mime": { - "version": "1.3.4", - "from": "mime@1.3.4", - "resolved": "https://registry.npmjs.org/mime/-/mime-1.3.4.tgz" - }, - "mime-db": { - "version": "1.23.0", - "from": "mime-db@>=1.23.0 <1.24.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.23.0.tgz" - }, - "mime-types": { - "version": "2.1.11", - "from": "mime-types@>=2.1.11 <2.2.0", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.11.tgz" - }, - "minimatch": { - "version": "3.0.2", - "from": "minimatch@>=3.0.2 <4.0.0", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.2.tgz" - }, - "minimist": { - "version": "1.2.0", - "from": "minimist@>=1.1.3 <2.0.0", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz" - }, - "mkdirp": { - "version": "0.5.1", - "from": "mkdirp@>=0.5.0 <0.6.0", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", - "dependencies": { - "minimist": { - "version": "0.0.8", - "from": "minimist@0.0.8", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz" - } - } - }, - "morgan": { - "version": "1.7.0", - "from": "morgan@>=1.6.1 <2.0.0", - "resolved": "https://registry.npmjs.org/morgan/-/morgan-1.7.0.tgz" - }, - "ms": { - "version": "0.7.1", - "from": "ms@0.7.1", - "resolved": "https://registry.npmjs.org/ms/-/ms-0.7.1.tgz" - }, - "multimatch": { - "version": "2.1.0", - "from": "multimatch@>=2.0.0 <3.0.0", - "resolved": "https://registry.npmjs.org/multimatch/-/multimatch-2.1.0.tgz" - }, - "mute-stream": { - "version": "0.0.6", - "from": "mute-stream@>=0.0.4 <0.1.0", - "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.6.tgz" - }, - "natural-compare": { - "version": "1.2.2", - "from": "natural-compare@>=1.2.2 <1.3.0", - "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.2.2.tgz" - }, - "ncname": { - "version": "1.0.0", - "from": "ncname@>=1.0.0 <1.1.0", - "resolved": "https://registry.npmjs.org/ncname/-/ncname-1.0.0.tgz" - }, - "ncp": { - "version": "0.4.2", - "from": "ncp@>=0.4.0 <0.5.0", - "resolved": "https://registry.npmjs.org/ncp/-/ncp-0.4.2.tgz" - }, - "negotiator": { - "version": "0.6.1", - "from": "negotiator@0.6.1", - "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.1.tgz" - }, - "no-case": { - "version": "2.3.0", - "from": "no-case@>=2.2.0 <3.0.0", - "resolved": "https://registry.npmjs.org/no-case/-/no-case-2.3.0.tgz" - }, - "node-int64": { - "version": "0.4.0", - "from": "node-int64@>=0.4.0 <0.5.0", - "resolved": "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz" - }, - "node-uuid": { - "version": "1.4.7", - "from": "node-uuid@>=1.4.7 <1.5.0", - "resolved": "https://registry.npmjs.org/node-uuid/-/node-uuid-1.4.7.tgz" - }, - "nomnom": { - "version": "1.8.1", - "from": "nomnom@>=1.5.0", - "resolved": "https://registry.npmjs.org/nomnom/-/nomnom-1.8.1.tgz", - "dependencies": { - "ansi-styles": { - "version": "1.0.0", - "from": "ansi-styles@>=1.0.0 <1.1.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-1.0.0.tgz" - }, - "chalk": { - "version": "0.4.0", - "from": "chalk@>=0.4.0 <0.5.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-0.4.0.tgz" - }, - "strip-ansi": { - "version": "0.1.1", - "from": "strip-ansi@>=0.1.0 <0.2.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-0.1.1.tgz" - } - } - }, - "nopt": { - "version": "3.0.6", - "from": "nopt@>=3.0.6 <3.1.0", - "resolved": "https://registry.npmjs.org/nopt/-/nopt-3.0.6.tgz" - }, - "normalize-package-data": { - "version": "2.3.5", - "from": "normalize-package-data@>=2.3.4 <3.0.0", - "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.3.5.tgz" - }, - "normalize-path": { - "version": "2.0.1", - "from": "normalize-path@>=2.0.0 <3.0.0", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.0.1.tgz" - }, - "num2fraction": { - "version": "1.2.2", - "from": "num2fraction@>=1.1.0 <2.0.0", - "resolved": "https://registry.npmjs.org/num2fraction/-/num2fraction-1.2.2.tgz" - }, - "number-is-nan": { - "version": "1.0.0", - "from": "number-is-nan@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.0.tgz" - }, - "oauth-sign": { - "version": "0.8.2", - "from": "oauth-sign@>=0.8.1 <0.9.0", - "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.8.2.tgz" - }, - "object-assign": { - "version": "4.1.0", - "from": "object-assign@>=4.0.1 <5.0.0", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.0.tgz" - }, - "on-finished": { - "version": "2.3.0", - "from": "on-finished@>=2.3.0 <2.4.0", - "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz" - }, - "on-headers": { - "version": "1.0.1", - "from": "on-headers@>=1.0.1 <1.1.0", - "resolved": "https://registry.npmjs.org/on-headers/-/on-headers-1.0.1.tgz" - }, - "once": { - "version": "1.3.3", - "from": "once@>=1.3.0 <2.0.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.3.3.tgz" - }, - "opn": { - "version": "4.0.2", - "from": "opn@>=4.0.0 <5.0.0", - "resolved": "https://registry.npmjs.org/opn/-/opn-4.0.2.tgz" - }, - "os-tmpdir": { - "version": "1.0.1", - "from": "os-tmpdir@>=1.0.1 <1.1.0", - "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.1.tgz" - }, - "package": { - "version": "1.0.1", - "from": "package@>=1.0.0 <1.2.0", - "resolved": "https://registry.npmjs.org/package/-/package-1.0.1.tgz" - }, - "pako": { - "version": "0.2.8", - "from": "pako@>=0.2.0 <0.3.0", - "resolved": "https://registry.npmjs.org/pako/-/pako-0.2.8.tgz" - }, - "param-case": { - "version": "2.1.0", - "from": "param-case@>=2.1.0 <3.0.0", - "resolved": "https://registry.npmjs.org/param-case/-/param-case-2.1.0.tgz" - }, - "parse-json": { - "version": "2.2.0", - "from": "parse-json@>=2.2.0 <3.0.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz" - }, - "parse-ms": { - "version": "1.0.1", - "from": "parse-ms@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/parse-ms/-/parse-ms-1.0.1.tgz" - }, - "parserlib": { - "version": "0.2.5", - "from": "parserlib@>=0.2.2 <0.3.0", - "resolved": "https://registry.npmjs.org/parserlib/-/parserlib-0.2.5.tgz" - }, - "parseurl": { - "version": "1.3.1", - "from": "parseurl@>=1.3.1 <1.4.0", - "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.1.tgz" - }, - "pascal-case": { - "version": "2.0.0", - "from": "pascal-case@>=2.0.0 <3.0.0", - "resolved": "https://registry.npmjs.org/pascal-case/-/pascal-case-2.0.0.tgz" - }, - "path-case": { - "version": "2.1.0", - "from": "path-case@>=2.1.0 <3.0.0", - "resolved": "https://registry.npmjs.org/path-case/-/path-case-2.1.0.tgz" - }, - "path-exists": { - "version": "2.1.0", - "from": "path-exists@>=2.0.0 <3.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz" - }, - "path-is-absolute": { - "version": "1.0.0", - "from": "path-is-absolute@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.0.tgz" - }, - "path-type": { - "version": "1.1.0", - "from": "path-type@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-1.1.0.tgz" - }, - "pathval": { - "version": "0.1.1", - "from": "pathval@>=0.1.1 <0.2.0", - "resolved": "https://registry.npmjs.org/pathval/-/pathval-0.1.1.tgz" - }, - "pend": { - "version": "1.2.0", - "from": "pend@>=1.2.0 <1.3.0", - "resolved": "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz" - }, - "phantomjs": { - "version": "1.9.20", - "from": "phantomjs@>=1.9.0-1 <1.10.0", - "resolved": "https://registry.npmjs.org/phantomjs/-/phantomjs-1.9.20.tgz", - "dependencies": { - "bl": { - "version": "1.0.3", - "from": "bl@>=1.0.0 <1.1.0", - "resolved": "https://registry.npmjs.org/bl/-/bl-1.0.3.tgz" - }, - "qs": { - "version": "5.2.0", - "from": "qs@>=5.2.0 <5.3.0", - "resolved": "https://registry.npmjs.org/qs/-/qs-5.2.0.tgz" - }, - "readable-stream": { - "version": "2.0.6", - "from": "readable-stream@>=2.0.5 <2.1.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.0.6.tgz" - }, - "request": { - "version": "2.67.0", - "from": "request@>=2.67.0 <2.68.0", - "resolved": "https://registry.npmjs.org/request/-/request-2.67.0.tgz" - } - } - }, - "pify": { - "version": "2.3.0", - "from": "pify@>=2.0.0 <3.0.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz" - }, - "pinkie": { - "version": "2.0.4", - "from": "pinkie@>=2.0.0 <3.0.0", - "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz" - }, - "pinkie-promise": { - "version": "2.0.1", - "from": "pinkie-promise@>=2.0.0 <3.0.0", - "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz" - }, - "pkg-up": { - "version": "1.0.0", - "from": "pkg-up@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/pkg-up/-/pkg-up-1.0.0.tgz" - }, - "pkginfo": { - "version": "0.4.0", - "from": "pkginfo@>=0.0.0 <1.0.0", - "resolved": "https://registry.npmjs.org/pkginfo/-/pkginfo-0.4.0.tgz" - }, - "plur": { - "version": "1.0.0", - "from": "plur@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/plur/-/plur-1.0.0.tgz" - }, - "portscanner": { - "version": "1.0.0", - "from": "portscanner@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/portscanner/-/portscanner-1.0.0.tgz", - "dependencies": { - "async": { - "version": "0.1.15", - "from": "async@0.1.15", - "resolved": "https://registry.npmjs.org/async/-/async-0.1.15.tgz" - } - } - }, - "postcss": { - "version": "4.1.16", - "from": "postcss@>=4.1.11 <5.0.0", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-4.1.16.tgz" - }, - "pretty-bytes": { - "version": "3.0.1", - "from": "pretty-bytes@>=3.0.1 <4.0.0", - "resolved": "https://registry.npmjs.org/pretty-bytes/-/pretty-bytes-3.0.1.tgz" - }, - "pretty-ms": { - "version": "2.1.0", - "from": "pretty-ms@>=2.1.0 <3.0.0", - "resolved": "https://registry.npmjs.org/pretty-ms/-/pretty-ms-2.1.0.tgz" - }, - "process-nextick-args": { - "version": "1.0.7", - "from": "process-nextick-args@>=1.0.6 <1.1.0", - "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-1.0.7.tgz" - }, - "progress": { - "version": "1.1.8", - "from": "progress@>=1.1.8 <1.2.0", - "resolved": "https://registry.npmjs.org/progress/-/progress-1.1.8.tgz" - }, - "promise": { - "version": "7.1.1", - "from": "promise@>=7.1.1 <8.0.0", - "resolved": "https://registry.npmjs.org/promise/-/promise-7.1.1.tgz" - }, - "prompt": { - "version": "0.2.14", - "from": "prompt@>=0.2.14 <0.3.0", - "resolved": "https://registry.npmjs.org/prompt/-/prompt-0.2.14.tgz" - }, - "prr": { - "version": "0.0.0", - "from": "prr@>=0.0.0 <0.1.0", - "resolved": "https://registry.npmjs.org/prr/-/prr-0.0.0.tgz" - }, - "pug": { - "version": "2.0.0-beta3", - "from": "pug@>=2.0.0-alpha3 <3.0.0", - "resolved": "https://registry.npmjs.org/pug/-/pug-2.0.0-beta3.tgz" - }, - "pug-attrs": { - "version": "2.0.1", - "from": "pug-attrs@>=2.0.1 <3.0.0", - "resolved": "https://registry.npmjs.org/pug-attrs/-/pug-attrs-2.0.1.tgz" - }, - "pug-code-gen": { - "version": "0.0.7", - "from": "pug-code-gen@0.0.7", - "resolved": "https://registry.npmjs.org/pug-code-gen/-/pug-code-gen-0.0.7.tgz" - }, - "pug-error": { - "version": "1.3.1", - "from": "pug-error@>=1.3.0 <2.0.0", - "resolved": "https://registry.npmjs.org/pug-error/-/pug-error-1.3.1.tgz" - }, - "pug-filters": { - "version": "1.2.2", - "from": "pug-filters@>=1.2.1 <2.0.0", - "resolved": "https://registry.npmjs.org/pug-filters/-/pug-filters-1.2.2.tgz" - }, - "pug-lexer": { - "version": "2.0.2", - "from": "pug-lexer@>=2.0.0 <3.0.0", - "resolved": "https://registry.npmjs.org/pug-lexer/-/pug-lexer-2.0.2.tgz" - }, - "pug-linker": { - "version": "1.0.0", - "from": "pug-linker@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/pug-linker/-/pug-linker-1.0.0.tgz" - }, - "pug-load": { - "version": "2.0.0", - "from": "pug-load@>=2.0.0 <3.0.0", - "resolved": "https://registry.npmjs.org/pug-load/-/pug-load-2.0.0.tgz" - }, - "pug-parser": { - "version": "2.0.1", - "from": "pug-parser@>=2.0.0 <3.0.0", - "resolved": "https://registry.npmjs.org/pug-parser/-/pug-parser-2.0.1.tgz" - }, - "pug-runtime": { - "version": "2.0.1", - "from": "pug-runtime@>=2.0.1 <3.0.0", - "resolved": "https://registry.npmjs.org/pug-runtime/-/pug-runtime-2.0.1.tgz" - }, - "pug-strip-comments": { - "version": "0.0.1", - "from": "pug-strip-comments@0.0.1", - "resolved": "https://registry.npmjs.org/pug-strip-comments/-/pug-strip-comments-0.0.1.tgz", - "dependencies": { - "pug-error": { - "version": "0.0.0", - "from": "pug-error@>=0.0.0 <0.0.1", - "resolved": "https://registry.npmjs.org/pug-error/-/pug-error-0.0.0.tgz" - } - } - }, - "pug-walk": { - "version": "0.0.3", - "from": "pug-walk@>=0.0.3 <0.0.4", - "resolved": "https://registry.npmjs.org/pug-walk/-/pug-walk-0.0.3.tgz" - }, - "q": { - "version": "1.4.1", - "from": "q@>=1.4.1 <1.5.0", - "resolved": "https://registry.npmjs.org/q/-/q-1.4.1.tgz" - }, - "qs": { - "version": "6.2.0", - "from": "qs@>=6.2.0 <6.3.0", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.2.0.tgz" - }, - "range-parser": { - "version": "1.2.0", - "from": "range-parser@>=1.2.0 <1.3.0", - "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.0.tgz" - }, - "raw-body": { - "version": "2.1.7", - "from": "raw-body@>=2.1.5 <2.2.0", - "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.1.7.tgz", - "dependencies": { - "bytes": { - "version": "2.4.0", - "from": "bytes@2.4.0", - "resolved": "https://registry.npmjs.org/bytes/-/bytes-2.4.0.tgz" - } - } - }, - "read": { - "version": "1.0.7", - "from": "read@>=1.0.0 <1.1.0", - "resolved": "https://registry.npmjs.org/read/-/read-1.0.7.tgz" - }, - "read-pkg": { - "version": "1.1.0", - "from": "read-pkg@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-1.1.0.tgz" - }, - "read-pkg-up": { - "version": "1.0.1", - "from": "read-pkg-up@>=1.0.1 <2.0.0", - "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-1.0.1.tgz" - }, - "readable-stream": { - "version": "2.1.4", - "from": "readable-stream@>=2.0.0 <3.0.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.1.4.tgz" - }, - "rechoir": { - "version": "0.6.2", - "from": "rechoir@>=0.6.2 <0.7.0", - "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.6.2.tgz" - }, - "redent": { - "version": "1.0.0", - "from": "redent@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/redent/-/redent-1.0.0.tgz" - }, - "regenerator-runtime": { - "version": "0.9.5", - "from": "regenerator-runtime@>=0.9.5 <0.10.0", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.9.5.tgz" - }, - "relateurl": { - "version": "0.2.6", - "from": "relateurl@>=0.2.0 <0.3.0", - "resolved": "https://registry.npmjs.org/relateurl/-/relateurl-0.2.6.tgz" - }, - "repeat-string": { - "version": "1.5.4", - "from": "repeat-string@>=1.5.2 <2.0.0", - "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.5.4.tgz" - }, - "repeating": { - "version": "2.0.1", - "from": "repeating@>=2.0.0 <3.0.0", - "resolved": "https://registry.npmjs.org/repeating/-/repeating-2.0.1.tgz" - }, - "request": { - "version": "2.73.0", - "from": "request@>=2.51.0 <3.0.0", - "resolved": "https://registry.npmjs.org/request/-/request-2.73.0.tgz" - }, - "request-progress": { - "version": "2.0.1", - "from": "request-progress@>=2.0.1 <2.1.0", - "resolved": "https://registry.npmjs.org/request-progress/-/request-progress-2.0.1.tgz" - }, - "requestretry": { - "version": "1.9.0", - "from": "requestretry@>=1.9.0 <1.10.0", - "resolved": "https://registry.npmjs.org/requestretry/-/requestretry-1.9.0.tgz" - }, - "reserved-words": { - "version": "0.1.1", - "from": "reserved-words@>=0.1.1 <0.2.0", - "resolved": "https://registry.npmjs.org/reserved-words/-/reserved-words-0.1.1.tgz" - }, - "resolve": { - "version": "1.1.7", - "from": "resolve@>=1.1.0 <1.2.0", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.1.7.tgz" - }, - "resolve-from": { - "version": "2.0.0", - "from": "resolve-from@>=2.0.0 <3.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-2.0.0.tgz" - }, - "resolve-pkg": { - "version": "0.1.0", - "from": "resolve-pkg@>=0.1.0 <0.2.0", - "resolved": "https://registry.npmjs.org/resolve-pkg/-/resolve-pkg-0.1.0.tgz" - }, - "revalidator": { - "version": "0.1.8", - "from": "revalidator@>=0.1.0 <0.2.0", - "resolved": "https://registry.npmjs.org/revalidator/-/revalidator-0.1.8.tgz" - }, - "right-align": { - "version": "0.1.3", - "from": "right-align@>=0.1.1 <0.2.0", - "resolved": "https://registry.npmjs.org/right-align/-/right-align-0.1.3.tgz" - }, - "rimraf": { - "version": "2.2.8", - "from": "rimraf@>=2.2.8 <2.3.0", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.2.8.tgz" - }, - "sauce-tunnel": { - "version": "2.5.0", - "from": "sauce-tunnel@>=2.5.0 <2.6.0", - "resolved": "https://registry.npmjs.org/sauce-tunnel/-/sauce-tunnel-2.5.0.tgz" - }, - "saucelabs": { - "version": "1.2.0", - "from": "saucelabs@>=1.2.0 <1.3.0", - "resolved": "https://registry.npmjs.org/saucelabs/-/saucelabs-1.2.0.tgz" - }, - "semver": { - "version": "5.2.0", - "from": "semver@>=2.0.0 <3.0.0||>=3.0.0 <4.0.0||>=4.0.0 <5.0.0||>=5.0.0 <6.0.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.2.0.tgz" - }, - "send": { - "version": "0.14.1", - "from": "send@0.14.1", - "resolved": "https://registry.npmjs.org/send/-/send-0.14.1.tgz" - }, - "sentence-case": { - "version": "2.1.0", - "from": "sentence-case@>=2.1.0 <3.0.0", - "resolved": "https://registry.npmjs.org/sentence-case/-/sentence-case-2.1.0.tgz" - }, - "serve-index": { - "version": "1.8.0", - "from": "serve-index@>=1.7.1 <2.0.0", - "resolved": "https://registry.npmjs.org/serve-index/-/serve-index-1.8.0.tgz" - }, - "serve-static": { - "version": "1.11.1", - "from": "serve-static@>=1.10.0 <2.0.0", - "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.11.1.tgz" - }, - "setprototypeof": { - "version": "1.0.1", - "from": "setprototypeof@1.0.1", - "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.0.1.tgz" - }, - "shelljs": { - "version": "0.7.0", - "from": "shelljs@>=0.7.0 <0.8.0", - "resolved": "https://registry.npmjs.org/shelljs/-/shelljs-0.7.0.tgz" - }, - "shx": { - "version": "0.1.2", - "from": "shx@>=0.1.2 <0.2.0", - "resolved": "https://registry.npmjs.org/shx/-/shx-0.1.2.tgz" - }, - "sigmund": { - "version": "1.0.1", - "from": "sigmund@>=1.0.0 <1.1.0", - "resolved": "https://registry.npmjs.org/sigmund/-/sigmund-1.0.1.tgz" - }, - "signal-exit": { - "version": "3.0.0", - "from": "signal-exit@>=3.0.0 <4.0.0", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.0.tgz" - }, - "snake-case": { - "version": "2.1.0", - "from": "snake-case@>=2.1.0 <3.0.0", - "resolved": "https://registry.npmjs.org/snake-case/-/snake-case-2.1.0.tgz" - }, - "sntp": { - "version": "1.0.9", - "from": "sntp@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/sntp/-/sntp-1.0.9.tgz" - }, - "source-map": { - "version": "0.4.4", - "from": "source-map@>=0.4.2 <0.5.0", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.4.4.tgz" - }, - "source-map-support": { - "version": "0.4.1", - "from": "source-map-support@>=0.4.0 <0.5.0", - "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.4.1.tgz", - "dependencies": { - "source-map": { - "version": "0.1.32", - "from": "source-map@0.1.32", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.1.32.tgz" - } - } - }, - "spdx-correct": { - "version": "1.0.2", - "from": "spdx-correct@>=1.0.0 <1.1.0", - "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-1.0.2.tgz" - }, - "spdx-exceptions": { - "version": "1.0.5", - "from": "spdx-exceptions@>=1.0.4 <2.0.0", - "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-1.0.5.tgz" - }, - "spdx-expression-parse": { - "version": "1.0.2", - "from": "spdx-expression-parse@>=1.0.0 <1.1.0", - "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-1.0.2.tgz" - }, - "spdx-license-ids": { - "version": "1.2.1", - "from": "spdx-license-ids@>=1.0.2 <2.0.0", - "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-1.2.1.tgz" - }, - "split": { - "version": "1.0.0", - "from": "split@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/split/-/split-1.0.0.tgz" - }, - "sprintf-js": { - "version": "1.0.3", - "from": "sprintf-js@>=1.0.2 <1.1.0", - "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz" - }, - "sshpk": { - "version": "1.8.3", - "from": "sshpk@>=1.7.0 <2.0.0", - "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.8.3.tgz", - "dependencies": { - "assert-plus": { - "version": "1.0.0", - "from": "assert-plus@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz" - } - } - }, - "stack-trace": { - "version": "0.0.9", - "from": "stack-trace@>=0.0.0 <0.1.0", - "resolved": "https://registry.npmjs.org/stack-trace/-/stack-trace-0.0.9.tgz" - }, - "statuses": { - "version": "1.3.0", - "from": "statuses@>=1.3.0 <2.0.0", - "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.3.0.tgz" - }, - "stream-buffers": { - "version": "2.2.0", - "from": "stream-buffers@>=2.1.0 <3.0.0", - "resolved": "https://registry.npmjs.org/stream-buffers/-/stream-buffers-2.2.0.tgz" - }, - "string_decoder": { - "version": "0.10.31", - "from": "string_decoder@>=0.10.0 <0.11.0", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz" - }, - "stringstream": { - "version": "0.0.5", - "from": "stringstream@>=0.0.4 <0.1.0", - "resolved": "https://registry.npmjs.org/stringstream/-/stringstream-0.0.5.tgz" - }, - "strip-ansi": { - "version": "3.0.1", - "from": "strip-ansi@>=3.0.0 <4.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz" - }, - "strip-bom": { - "version": "2.0.0", - "from": "strip-bom@>=2.0.0 <3.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz" - }, - "strip-indent": { - "version": "1.0.1", - "from": "strip-indent@>=1.0.1 <2.0.0", - "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-1.0.1.tgz" - }, - "strip-json-comments": { - "version": "1.0.4", - "from": "strip-json-comments@>=1.0.2 <2.0.0", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-1.0.4.tgz" - }, - "supports-color": { - "version": "2.0.0", - "from": "supports-color@>=2.0.0 <3.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz" - }, - "swap-case": { - "version": "1.1.2", - "from": "swap-case@>=1.1.0 <2.0.0", - "resolved": "https://registry.npmjs.org/swap-case/-/swap-case-1.1.2.tgz" - }, - "tar-stream": { - "version": "1.5.2", - "from": "tar-stream@>=1.5.0 <2.0.0", - "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-1.5.2.tgz" - }, - "temporary": { - "version": "0.0.8", - "from": "temporary@>=0.0.4 <0.1.0", - "resolved": "https://registry.npmjs.org/temporary/-/temporary-0.0.8.tgz" - }, - "text-table": { - "version": "0.2.0", - "from": "text-table@>=0.2.0 <0.3.0", - "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz" - }, - "throttleit": { - "version": "1.0.0", - "from": "throttleit@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/throttleit/-/throttleit-1.0.0.tgz" - }, - "through": { - "version": "2.3.8", - "from": "through@>=2.0.0 <3.0.0", - "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz" - }, - "time-grunt": { - "version": "1.3.0", - "from": "time-grunt@>=1.3.0 <2.0.0", - "resolved": "https://registry.npmjs.org/time-grunt/-/time-grunt-1.3.0.tgz" - }, - "tiny-lr": { - "version": "0.2.1", - "from": "tiny-lr@>=0.2.1 <0.3.0", - "resolved": "https://registry.npmjs.org/tiny-lr/-/tiny-lr-0.2.1.tgz", - "dependencies": { - "qs": { - "version": "5.1.0", - "from": "qs@>=5.1.0 <5.2.0", - "resolved": "https://registry.npmjs.org/qs/-/qs-5.1.0.tgz" - } - } - }, - "title-case": { - "version": "2.1.0", - "from": "title-case@>=2.1.0 <3.0.0", - "resolved": "https://registry.npmjs.org/title-case/-/title-case-2.1.0.tgz" - }, - "tmp": { - "version": "0.0.28", - "from": "tmp@>=0.0.28 <0.0.29", - "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.28.tgz" - }, - "to-double-quotes": { - "version": "2.0.0", - "from": "to-double-quotes@>=2.0.0 <3.0.0", - "resolved": "https://registry.npmjs.org/to-double-quotes/-/to-double-quotes-2.0.0.tgz" - }, - "to-single-quotes": { - "version": "2.0.1", - "from": "to-single-quotes@>=2.0.0 <3.0.0", - "resolved": "https://registry.npmjs.org/to-single-quotes/-/to-single-quotes-2.0.1.tgz" - }, - "token-stream": { - "version": "0.0.1", - "from": "token-stream@0.0.1", - "resolved": "https://registry.npmjs.org/token-stream/-/token-stream-0.0.1.tgz" - }, - "tough-cookie": { - "version": "2.2.2", - "from": "tough-cookie@>=2.2.0 <2.3.0", - "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.2.2.tgz" - }, - "trim-newlines": { - "version": "1.0.0", - "from": "trim-newlines@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-1.0.0.tgz" - }, - "tunnel-agent": { - "version": "0.4.3", - "from": "tunnel-agent@>=0.4.1 <0.5.0", - "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.4.3.tgz" - }, - "tweetnacl": { - "version": "0.13.3", - "from": "tweetnacl@>=0.13.0 <0.14.0", - "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.13.3.tgz" - }, - "type-is": { - "version": "1.6.13", - "from": "type-is@>=1.6.10 <1.7.0", - "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.13.tgz" - }, - "typedarray": { - "version": "0.0.6", - "from": "typedarray@>=0.0.5 <0.1.0", - "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz" - }, - "uc.micro": { - "version": "1.0.2", - "from": "uc.micro@>=1.0.1 <2.0.0", - "resolved": "https://registry.npmjs.org/uc.micro/-/uc.micro-1.0.2.tgz" - }, - "uglify-js": { - "version": "2.6.4", - "from": "uglify-js@>=2.6.0 <2.7.0", - "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-2.6.4.tgz", - "dependencies": { - "async": { - "version": "0.2.10", - "from": "async@>=0.2.6 <0.3.0", - "resolved": "https://registry.npmjs.org/async/-/async-0.2.10.tgz" - }, - "source-map": { - "version": "0.5.6", - "from": "source-map@>=0.5.1 <0.6.0", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.6.tgz" - } - } - }, - "uglify-to-browserify": { - "version": "1.0.2", - "from": "uglify-to-browserify@>=1.0.0 <1.1.0", - "resolved": "https://registry.npmjs.org/uglify-to-browserify/-/uglify-to-browserify-1.0.2.tgz" - }, - "underscore": { - "version": "1.6.0", - "from": "underscore@>=1.6.0 <1.7.0", - "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.6.0.tgz" - }, - "underscore.string": { - "version": "3.2.3", - "from": "underscore.string@>=3.2.3 <3.3.0", - "resolved": "https://registry.npmjs.org/underscore.string/-/underscore.string-3.2.3.tgz" - }, - "unpipe": { - "version": "1.0.0", - "from": "unpipe@>=1.0.0 <1.1.0", - "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz" - }, - "upper-case": { - "version": "1.1.3", - "from": "upper-case@>=1.1.1 <2.0.0", - "resolved": "https://registry.npmjs.org/upper-case/-/upper-case-1.1.3.tgz" - }, - "upper-case-first": { - "version": "1.1.2", - "from": "upper-case-first@>=1.1.0 <2.0.0", - "resolved": "https://registry.npmjs.org/upper-case-first/-/upper-case-first-1.1.2.tgz" - }, - "uri-path": { - "version": "1.0.0", - "from": "uri-path@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/uri-path/-/uri-path-1.0.0.tgz" - }, - "util-deprecate": { - "version": "1.0.2", - "from": "util-deprecate@>=1.0.1 <1.1.0", - "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz" - }, - "utile": { - "version": "0.2.1", - "from": "utile@>=0.2.0 <0.3.0", - "resolved": "https://registry.npmjs.org/utile/-/utile-0.2.1.tgz", - "dependencies": { - "async": { - "version": "0.2.10", - "from": "async@>=0.2.9 <0.3.0", - "resolved": "https://registry.npmjs.org/async/-/async-0.2.10.tgz" - } - } - }, - "utils-merge": { - "version": "1.0.0", - "from": "utils-merge@1.0.0", - "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.0.tgz" - }, - "uuid": { - "version": "2.0.2", - "from": "uuid@>=2.0.2 <3.0.0", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-2.0.2.tgz" - }, - "validate-npm-package-license": { - "version": "3.0.1", - "from": "validate-npm-package-license@>=3.0.1 <4.0.0", - "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.1.tgz" - }, - "verror": { - "version": "1.3.6", - "from": "verror@1.3.6", - "resolved": "https://registry.npmjs.org/verror/-/verror-1.3.6.tgz" - }, - "void-elements": { - "version": "2.0.1", - "from": "void-elements@>=2.0.1 <3.0.0", - "resolved": "https://registry.npmjs.org/void-elements/-/void-elements-2.0.1.tgz" - }, - "vow": { - "version": "0.4.4", - "from": "vow@0.4.4", - "resolved": "https://registry.npmjs.org/vow/-/vow-0.4.4.tgz" - }, - "vow-fs": { - "version": "0.3.2", - "from": "vow-fs@0.3.2", - "resolved": "https://registry.npmjs.org/vow-fs/-/vow-fs-0.3.2.tgz", - "dependencies": { - "glob": { - "version": "3.2.8", - "from": "glob@3.2.8", - "resolved": "https://registry.npmjs.org/glob/-/glob-3.2.8.tgz" - }, - "minimatch": { - "version": "0.2.14", - "from": "minimatch@>=0.2.11 <0.3.0", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-0.2.14.tgz" - }, - "node-uuid": { - "version": "1.4.0", - "from": "node-uuid@1.4.0", - "resolved": "https://registry.npmjs.org/node-uuid/-/node-uuid-1.4.0.tgz" - } - } - }, - "vow-queue": { - "version": "0.3.1", - "from": "vow-queue@0.3.1", - "resolved": "https://registry.npmjs.org/vow-queue/-/vow-queue-0.3.1.tgz" - }, - "websocket-driver": { - "version": "0.6.5", - "from": "websocket-driver@>=0.5.1", - "resolved": "https://registry.npmjs.org/websocket-driver/-/websocket-driver-0.6.5.tgz" - }, - "websocket-extensions": { - "version": "0.1.1", - "from": "websocket-extensions@>=0.1.1", - "resolved": "https://registry.npmjs.org/websocket-extensions/-/websocket-extensions-0.1.1.tgz" - }, - "when": { - "version": "3.7.7", - "from": "when@>=3.7.5 <3.8.0", - "resolved": "https://registry.npmjs.org/when/-/when-3.7.7.tgz" - }, - "which": { - "version": "1.2.10", - "from": "which@>=1.2.1 <1.3.0", - "resolved": "https://registry.npmjs.org/which/-/which-1.2.10.tgz" - }, - "window-size": { - "version": "0.1.0", - "from": "window-size@0.1.0", - "resolved": "https://registry.npmjs.org/window-size/-/window-size-0.1.0.tgz" - }, - "winston": { - "version": "0.8.3", - "from": "winston@>=0.8.0 <0.9.0", - "resolved": "https://registry.npmjs.org/winston/-/winston-0.8.3.tgz", - "dependencies": { - "async": { - "version": "0.2.10", - "from": "async@>=0.2.0 <0.3.0", - "resolved": "https://registry.npmjs.org/async/-/async-0.2.10.tgz" - }, - "colors": { - "version": "0.6.2", - "from": "colors@>=0.6.0 <0.7.0", - "resolved": "https://registry.npmjs.org/colors/-/colors-0.6.2.tgz" - }, - "pkginfo": { - "version": "0.3.1", - "from": "pkginfo@>=0.3.0 <0.4.0", - "resolved": "https://registry.npmjs.org/pkginfo/-/pkginfo-0.3.1.tgz" - } - } - }, - "with": { - "version": "5.1.1", - "from": "with@>=5.0.0 <6.0.0", - "resolved": "https://registry.npmjs.org/with/-/with-5.1.1.tgz" - }, - "wordwrap": { - "version": "0.0.2", - "from": "wordwrap@0.0.2", - "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.2.tgz" - }, - "wrappy": { - "version": "1.0.2", - "from": "wrappy@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz" - }, - "xml-char-classes": { - "version": "1.0.0", - "from": "xml-char-classes@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/xml-char-classes/-/xml-char-classes-1.0.0.tgz" - }, - "xmlbuilder": { - "version": "3.1.0", - "from": "xmlbuilder@>=3.1.0 <4.0.0", - "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-3.1.0.tgz" - }, - "xtend": { - "version": "4.0.1", - "from": "xtend@>=4.0.0 <5.0.0", - "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.1.tgz" - }, - "yargs": { - "version": "3.10.0", - "from": "yargs@>=3.10.0 <3.11.0", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-3.10.0.tgz", - "dependencies": { - "camelcase": { - "version": "1.2.1", - "from": "camelcase@>=1.0.2 <2.0.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-1.2.1.tgz" - } - } - }, - "yauzl": { - "version": "2.4.1", - "from": "yauzl@2.4.1", - "resolved": "https://registry.npmjs.org/yauzl/-/yauzl-2.4.1.tgz" - }, - "zip-stream": { - "version": "1.0.0", - "from": "zip-stream@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/zip-stream/-/zip-stream-1.0.0.tgz", - "dependencies": { - "lodash": { - "version": "4.13.1", - "from": "lodash@>=4.8.0 <5.0.0", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.13.1.tgz" - } - } - } - } -} diff --git a/admin/bower_components/bootstrap/grunt/sauce_browsers.yml b/admin/bower_components/bootstrap/grunt/sauce_browsers.yml deleted file mode 100644 index 8fcdc52..0000000 --- a/admin/bower_components/bootstrap/grunt/sauce_browsers.yml +++ /dev/null @@ -1,82 +0,0 @@ -[ - # Docs: https://saucelabs.com/docs/platforms/webdriver - - { - browserName: "safari", - platform: "OS X 10.10" - }, - { - browserName: "chrome", - platform: "OS X 10.10" - }, - { - browserName: "firefox", - platform: "OS X 10.10" - }, - - # Mac Opera not currently supported by Sauce Labs - - { - browserName: "internet explorer", - version: "11", - platform: "Windows 8.1" - }, - { - browserName: "internet explorer", - version: "10", - platform: "Windows 8" - }, - { - browserName: "internet explorer", - version: "9", - platform: "Windows 7" - }, - { - browserName: "internet explorer", - version: "8", - platform: "Windows 7" - }, - - # { # Unofficial - # browserName: "internet explorer", - # version: "7", - # platform: "Windows XP" - # }, - - { - browserName: "chrome", - platform: "Windows 8.1" - }, - { - browserName: "firefox", - platform: "Windows 8.1" - }, - - # Win Opera 15+ not currently supported by Sauce Labs - - { - browserName: "iphone", - platform: "OS X 10.10", - version: "9.2" - }, - - # iOS Chrome not currently supported by Sauce Labs - - # Linux (unofficial) - { - browserName: "chrome", - platform: "Linux" - }, - { - browserName: "firefox", - platform: "Linux" - } - - # Android Chrome not currently supported by Sauce Labs - - # { # Android Browser (super-unofficial) - # browserName: "android", - # version: "4.0", - # platform: "Linux" - # } -] diff --git a/admin/bower_components/bootstrap/js/.jscsrc b/admin/bower_components/bootstrap/js/.jscsrc deleted file mode 100644 index 9544d2d..0000000 --- a/admin/bower_components/bootstrap/js/.jscsrc +++ /dev/null @@ -1,42 +0,0 @@ -{ - "disallowEmptyBlocks": true, - "disallowKeywords": ["with"], - "disallowMixedSpacesAndTabs": true, - "disallowMultipleLineStrings": true, - "disallowMultipleVarDecl": true, - "disallowQuotedKeysInObjects": "allButReserved", - "disallowSpaceAfterPrefixUnaryOperators": ["++", "--", "+", "-", "~", "!"], - "disallowSpaceBeforeBinaryOperators": [","], - "disallowSpaceBeforePostfixUnaryOperators": ["++", "--"], - "disallowSpacesInFunctionDeclaration": { "beforeOpeningRoundBrace": true }, - "disallowSpacesInNamedFunctionExpression": { "beforeOpeningRoundBrace": true }, - "disallowSpacesInsideArrayBrackets": true, - "disallowSpacesInsideParentheses": true, - "disallowTrailingComma": true, - "disallowTrailingWhitespace": true, - "requireCamelCaseOrUpperCaseIdentifiers": true, - "requireCapitalizedConstructors": true, - "requireCommaBeforeLineBreak": true, - "requireDollarBeforejQueryAssignment": true, - "requireDotNotation": true, - "requireLineFeedAtFileEnd": true, - "requirePaddingNewLinesAfterUseStrict": true, - "requirePaddingNewLinesBeforeExport": true, - "requireSpaceAfterBinaryOperators": ["+", "-", "/", "*", "=", "==", "===", "!=", "!==", ">", "<", ">=", "<="], - "requireSpaceAfterKeywords": ["if", "else", "for", "while", "do", "switch", "return", "try", "catch"], - "requireSpaceAfterLineComment": true, - "requireSpaceBeforeBinaryOperators": ["+", "-", "/", "*", "=", "==", "===", "!=", "!==", ">", "<", ">=", "<="], - "requireSpaceBetweenArguments": true, - "requireSpacesInAnonymousFunctionExpression": { "beforeOpeningCurlyBrace": true, "beforeOpeningRoundBrace": true }, - "requireSpacesInConditionalExpression": true, - "requireSpacesInForStatement": true, - "requireSpacesInFunctionDeclaration": { "beforeOpeningCurlyBrace": true }, - "requireSpacesInFunctionExpression": { "beforeOpeningCurlyBrace": true }, - "requireSpacesInNamedFunctionExpression": { "beforeOpeningCurlyBrace": true }, - "requireSpacesInsideObjectBrackets": "allButNested", - "validateAlignedFunctionParameters": true, - "validateIndentation": 2, - "validateLineBreaks": "LF", - "validateNewlineAfterArrayElements": true, - "validateQuoteMarks": "'" -} diff --git a/admin/bower_components/bootstrap/js/.jshintrc b/admin/bower_components/bootstrap/js/.jshintrc deleted file mode 100644 index a59e1d0..0000000 --- a/admin/bower_components/bootstrap/js/.jshintrc +++ /dev/null @@ -1,15 +0,0 @@ -{ - "asi" : true, - "browser" : true, - "eqeqeq" : false, - "eqnull" : true, - "es3" : true, - "expr" : true, - "jquery" : true, - "latedef" : true, - "laxbreak" : true, - "nonbsp" : true, - "strict" : true, - "undef" : true, - "unused" : true -} diff --git a/admin/bower_components/bootstrap/js/affix.js b/admin/bower_components/bootstrap/js/affix.js deleted file mode 100644 index 7f65168..0000000 --- a/admin/bower_components/bootstrap/js/affix.js +++ /dev/null @@ -1,162 +0,0 @@ -/* ======================================================================== - * Bootstrap: affix.js v3.3.7 - * http://getbootstrap.com/javascript/#affix - * ======================================================================== - * Copyright 2011-2016 Twitter, Inc. - * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) - * ======================================================================== */ - - -+function ($) { - 'use strict'; - - // AFFIX CLASS DEFINITION - // ====================== - - var Affix = function (element, options) { - this.options = $.extend({}, Affix.DEFAULTS, options) - - this.$target = $(this.options.target) - .on('scroll.bs.affix.data-api', $.proxy(this.checkPosition, this)) - .on('click.bs.affix.data-api', $.proxy(this.checkPositionWithEventLoop, this)) - - this.$element = $(element) - this.affixed = null - this.unpin = null - this.pinnedOffset = null - - this.checkPosition() - } - - Affix.VERSION = '3.3.7' - - Affix.RESET = 'affix affix-top affix-bottom' - - Affix.DEFAULTS = { - offset: 0, - target: window - } - - Affix.prototype.getState = function (scrollHeight, height, offsetTop, offsetBottom) { - var scrollTop = this.$target.scrollTop() - var position = this.$element.offset() - var targetHeight = this.$target.height() - - if (offsetTop != null && this.affixed == 'top') return scrollTop < offsetTop ? 'top' : false - - if (this.affixed == 'bottom') { - if (offsetTop != null) return (scrollTop + this.unpin <= position.top) ? false : 'bottom' - return (scrollTop + targetHeight <= scrollHeight - offsetBottom) ? false : 'bottom' - } - - var initializing = this.affixed == null - var colliderTop = initializing ? scrollTop : position.top - var colliderHeight = initializing ? targetHeight : height - - if (offsetTop != null && scrollTop <= offsetTop) return 'top' - if (offsetBottom != null && (colliderTop + colliderHeight >= scrollHeight - offsetBottom)) return 'bottom' - - return false - } - - Affix.prototype.getPinnedOffset = function () { - if (this.pinnedOffset) return this.pinnedOffset - this.$element.removeClass(Affix.RESET).addClass('affix') - var scrollTop = this.$target.scrollTop() - var position = this.$element.offset() - return (this.pinnedOffset = position.top - scrollTop) - } - - Affix.prototype.checkPositionWithEventLoop = function () { - setTimeout($.proxy(this.checkPosition, this), 1) - } - - Affix.prototype.checkPosition = function () { - if (!this.$element.is(':visible')) return - - var height = this.$element.height() - var offset = this.options.offset - var offsetTop = offset.top - var offsetBottom = offset.bottom - var scrollHeight = Math.max($(document).height(), $(document.body).height()) - - if (typeof offset != 'object') offsetBottom = offsetTop = offset - if (typeof offsetTop == 'function') offsetTop = offset.top(this.$element) - if (typeof offsetBottom == 'function') offsetBottom = offset.bottom(this.$element) - - var affix = this.getState(scrollHeight, height, offsetTop, offsetBottom) - - if (this.affixed != affix) { - if (this.unpin != null) this.$element.css('top', '') - - var affixType = 'affix' + (affix ? '-' + affix : '') - var e = $.Event(affixType + '.bs.affix') - - this.$element.trigger(e) - - if (e.isDefaultPrevented()) return - - this.affixed = affix - this.unpin = affix == 'bottom' ? this.getPinnedOffset() : null - - this.$element - .removeClass(Affix.RESET) - .addClass(affixType) - .trigger(affixType.replace('affix', 'affixed') + '.bs.affix') - } - - if (affix == 'bottom') { - this.$element.offset({ - top: scrollHeight - height - offsetBottom - }) - } - } - - - // AFFIX PLUGIN DEFINITION - // ======================= - - function Plugin(option) { - return this.each(function () { - var $this = $(this) - var data = $this.data('bs.affix') - var options = typeof option == 'object' && option - - if (!data) $this.data('bs.affix', (data = new Affix(this, options))) - if (typeof option == 'string') data[option]() - }) - } - - var old = $.fn.affix - - $.fn.affix = Plugin - $.fn.affix.Constructor = Affix - - - // AFFIX NO CONFLICT - // ================= - - $.fn.affix.noConflict = function () { - $.fn.affix = old - return this - } - - - // AFFIX DATA-API - // ============== - - $(window).on('load', function () { - $('[data-spy="affix"]').each(function () { - var $spy = $(this) - var data = $spy.data() - - data.offset = data.offset || {} - - if (data.offsetBottom != null) data.offset.bottom = data.offsetBottom - if (data.offsetTop != null) data.offset.top = data.offsetTop - - Plugin.call($spy, data) - }) - }) - -}(jQuery); diff --git a/admin/bower_components/bootstrap/js/alert.js b/admin/bower_components/bootstrap/js/alert.js deleted file mode 100644 index db97f3b..0000000 --- a/admin/bower_components/bootstrap/js/alert.js +++ /dev/null @@ -1,94 +0,0 @@ -/* ======================================================================== - * Bootstrap: alert.js v3.3.7 - * http://getbootstrap.com/javascript/#alerts - * ======================================================================== - * Copyright 2011-2016 Twitter, Inc. - * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) - * ======================================================================== */ - - -+function ($) { - 'use strict'; - - // ALERT CLASS DEFINITION - // ====================== - - var dismiss = '[data-dismiss="alert"]' - var Alert = function (el) { - $(el).on('click', dismiss, this.close) - } - - Alert.VERSION = '3.3.7' - - Alert.TRANSITION_DURATION = 150 - - Alert.prototype.close = function (e) { - var $this = $(this) - var selector = $this.attr('data-target') - - if (!selector) { - selector = $this.attr('href') - selector = selector && selector.replace(/.*(?=#[^\s]*$)/, '') // strip for ie7 - } - - var $parent = $(selector === '#' ? [] : selector) - - if (e) e.preventDefault() - - if (!$parent.length) { - $parent = $this.closest('.alert') - } - - $parent.trigger(e = $.Event('close.bs.alert')) - - if (e.isDefaultPrevented()) return - - $parent.removeClass('in') - - function removeElement() { - // detach from parent, fire event then clean up data - $parent.detach().trigger('closed.bs.alert').remove() - } - - $.support.transition && $parent.hasClass('fade') ? - $parent - .one('bsTransitionEnd', removeElement) - .emulateTransitionEnd(Alert.TRANSITION_DURATION) : - removeElement() - } - - - // ALERT PLUGIN DEFINITION - // ======================= - - function Plugin(option) { - return this.each(function () { - var $this = $(this) - var data = $this.data('bs.alert') - - if (!data) $this.data('bs.alert', (data = new Alert(this))) - if (typeof option == 'string') data[option].call($this) - }) - } - - var old = $.fn.alert - - $.fn.alert = Plugin - $.fn.alert.Constructor = Alert - - - // ALERT NO CONFLICT - // ================= - - $.fn.alert.noConflict = function () { - $.fn.alert = old - return this - } - - - // ALERT DATA-API - // ============== - - $(document).on('click.bs.alert.data-api', dismiss, Alert.prototype.close) - -}(jQuery); diff --git a/admin/bower_components/bootstrap/js/button.js b/admin/bower_components/bootstrap/js/button.js deleted file mode 100644 index 843b39c..0000000 --- a/admin/bower_components/bootstrap/js/button.js +++ /dev/null @@ -1,125 +0,0 @@ -/* ======================================================================== - * Bootstrap: button.js v3.3.7 - * http://getbootstrap.com/javascript/#buttons - * ======================================================================== - * Copyright 2011-2016 Twitter, Inc. - * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) - * ======================================================================== */ - - -+function ($) { - 'use strict'; - - // BUTTON PUBLIC CLASS DEFINITION - // ============================== - - var Button = function (element, options) { - this.$element = $(element) - this.options = $.extend({}, Button.DEFAULTS, options) - this.isLoading = false - } - - Button.VERSION = '3.3.7' - - Button.DEFAULTS = { - loadingText: 'loading...' - } - - Button.prototype.setState = function (state) { - var d = 'disabled' - var $el = this.$element - var val = $el.is('input') ? 'val' : 'html' - var data = $el.data() - - state += 'Text' - - if (data.resetText == null) $el.data('resetText', $el[val]()) - - // push to event loop to allow forms to submit - setTimeout($.proxy(function () { - $el[val](data[state] == null ? this.options[state] : data[state]) - - if (state == 'loadingText') { - this.isLoading = true - $el.addClass(d).attr(d, d).prop(d, true) - } else if (this.isLoading) { - this.isLoading = false - $el.removeClass(d).removeAttr(d).prop(d, false) - } - }, this), 0) - } - - Button.prototype.toggle = function () { - var changed = true - var $parent = this.$element.closest('[data-toggle="buttons"]') - - if ($parent.length) { - var $input = this.$element.find('input') - if ($input.prop('type') == 'radio') { - if ($input.prop('checked')) changed = false - $parent.find('.active').removeClass('active') - this.$element.addClass('active') - } else if ($input.prop('type') == 'checkbox') { - if (($input.prop('checked')) !== this.$element.hasClass('active')) changed = false - this.$element.toggleClass('active') - } - $input.prop('checked', this.$element.hasClass('active')) - if (changed) $input.trigger('change') - } else { - this.$element.attr('aria-pressed', !this.$element.hasClass('active')) - this.$element.toggleClass('active') - } - } - - - // BUTTON PLUGIN DEFINITION - // ======================== - - function Plugin(option) { - return this.each(function () { - var $this = $(this) - var data = $this.data('bs.button') - var options = typeof option == 'object' && option - - if (!data) $this.data('bs.button', (data = new Button(this, options))) - - if (option == 'toggle') data.toggle() - else if (option) data.setState(option) - }) - } - - var old = $.fn.button - - $.fn.button = Plugin - $.fn.button.Constructor = Button - - - // BUTTON NO CONFLICT - // ================== - - $.fn.button.noConflict = function () { - $.fn.button = old - return this - } - - - // BUTTON DATA-API - // =============== - - $(document) - .on('click.bs.button.data-api', '[data-toggle^="button"]', function (e) { - var $btn = $(e.target).closest('.btn') - Plugin.call($btn, 'toggle') - if (!($(e.target).is('input[type="radio"], input[type="checkbox"]'))) { - // Prevent double click on radios, and the double selections (so cancellation) on checkboxes - e.preventDefault() - // The target component still receive the focus - if ($btn.is('input,button')) $btn.trigger('focus') - else $btn.find('input:visible,button:visible').first().trigger('focus') - } - }) - .on('focus.bs.button.data-api blur.bs.button.data-api', '[data-toggle^="button"]', function (e) { - $(e.target).closest('.btn').toggleClass('focus', /^focus(in)?$/.test(e.type)) - }) - -}(jQuery); diff --git a/admin/bower_components/bootstrap/js/carousel.js b/admin/bower_components/bootstrap/js/carousel.js deleted file mode 100644 index 6ff954c..0000000 --- a/admin/bower_components/bootstrap/js/carousel.js +++ /dev/null @@ -1,237 +0,0 @@ -/* ======================================================================== - * Bootstrap: carousel.js v3.3.7 - * http://getbootstrap.com/javascript/#carousel - * ======================================================================== - * Copyright 2011-2016 Twitter, Inc. - * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) - * ======================================================================== */ - - -+function ($) { - 'use strict'; - - // CAROUSEL CLASS DEFINITION - // ========================= - - var Carousel = function (element, options) { - this.$element = $(element) - this.$indicators = this.$element.find('.carousel-indicators') - this.options = options - this.paused = null - this.sliding = null - this.interval = null - this.$active = null - this.$items = null - - this.options.keyboard && this.$element.on('keydown.bs.carousel', $.proxy(this.keydown, this)) - - this.options.pause == 'hover' && !('ontouchstart' in document.documentElement) && this.$element - .on('mouseenter.bs.carousel', $.proxy(this.pause, this)) - .on('mouseleave.bs.carousel', $.proxy(this.cycle, this)) - } - - Carousel.VERSION = '3.3.7' - - Carousel.TRANSITION_DURATION = 600 - - Carousel.DEFAULTS = { - interval: 5000, - pause: 'hover', - wrap: true, - keyboard: true - } - - Carousel.prototype.keydown = function (e) { - if (/input|textarea/i.test(e.target.tagName)) return - switch (e.which) { - case 37: this.prev(); break - case 39: this.next(); break - default: return - } - - e.preventDefault() - } - - Carousel.prototype.cycle = function (e) { - e || (this.paused = false) - - this.interval && clearInterval(this.interval) - - this.options.interval - && !this.paused - && (this.interval = setInterval($.proxy(this.next, this), this.options.interval)) - - return this - } - - Carousel.prototype.getItemIndex = function (item) { - this.$items = item.parent().children('.item') - return this.$items.index(item || this.$active) - } - - Carousel.prototype.getItemForDirection = function (direction, active) { - var activeIndex = this.getItemIndex(active) - var willWrap = (direction == 'prev' && activeIndex === 0) - || (direction == 'next' && activeIndex == (this.$items.length - 1)) - if (willWrap && !this.options.wrap) return active - var delta = direction == 'prev' ? -1 : 1 - var itemIndex = (activeIndex + delta) % this.$items.length - return this.$items.eq(itemIndex) - } - - Carousel.prototype.to = function (pos) { - var that = this - var activeIndex = this.getItemIndex(this.$active = this.$element.find('.item.active')) - - if (pos > (this.$items.length - 1) || pos < 0) return - - if (this.sliding) return this.$element.one('slid.bs.carousel', function () { that.to(pos) }) // yes, "slid" - if (activeIndex == pos) return this.pause().cycle() - - return this.slide(pos > activeIndex ? 'next' : 'prev', this.$items.eq(pos)) - } - - Carousel.prototype.pause = function (e) { - e || (this.paused = true) - - if (this.$element.find('.next, .prev').length && $.support.transition) { - this.$element.trigger($.support.transition.end) - this.cycle(true) - } - - this.interval = clearInterval(this.interval) - - return this - } - - Carousel.prototype.next = function () { - if (this.sliding) return - return this.slide('next') - } - - Carousel.prototype.prev = function () { - if (this.sliding) return - return this.slide('prev') - } - - Carousel.prototype.slide = function (type, next) { - var $active = this.$element.find('.item.active') - var $next = next || this.getItemForDirection(type, $active) - var isCycling = this.interval - var direction = type == 'next' ? 'left' : 'right' - var that = this - - if ($next.hasClass('active')) return (this.sliding = false) - - var relatedTarget = $next[0] - var slideEvent = $.Event('slide.bs.carousel', { - relatedTarget: relatedTarget, - direction: direction - }) - this.$element.trigger(slideEvent) - if (slideEvent.isDefaultPrevented()) return - - this.sliding = true - - isCycling && this.pause() - - if (this.$indicators.length) { - this.$indicators.find('.active').removeClass('active') - var $nextIndicator = $(this.$indicators.children()[this.getItemIndex($next)]) - $nextIndicator && $nextIndicator.addClass('active') - } - - var slidEvent = $.Event('slid.bs.carousel', { relatedTarget: relatedTarget, direction: direction }) // yes, "slid" - if ($.support.transition && this.$element.hasClass('slide')) { - $next.addClass(type) - $next[0].offsetWidth // force reflow - $active.addClass(direction) - $next.addClass(direction) - $active - .one('bsTransitionEnd', function () { - $next.removeClass([type, direction].join(' ')).addClass('active') - $active.removeClass(['active', direction].join(' ')) - that.sliding = false - setTimeout(function () { - that.$element.trigger(slidEvent) - }, 0) - }) - .emulateTransitionEnd(Carousel.TRANSITION_DURATION) - } else { - $active.removeClass('active') - $next.addClass('active') - this.sliding = false - this.$element.trigger(slidEvent) - } - - isCycling && this.cycle() - - return this - } - - - // CAROUSEL PLUGIN DEFINITION - // ========================== - - function Plugin(option) { - return this.each(function () { - var $this = $(this) - var data = $this.data('bs.carousel') - var options = $.extend({}, Carousel.DEFAULTS, $this.data(), typeof option == 'object' && option) - var action = typeof option == 'string' ? option : options.slide - - if (!data) $this.data('bs.carousel', (data = new Carousel(this, options))) - if (typeof option == 'number') data.to(option) - else if (action) data[action]() - else if (options.interval) data.pause().cycle() - }) - } - - var old = $.fn.carousel - - $.fn.carousel = Plugin - $.fn.carousel.Constructor = Carousel - - - // CAROUSEL NO CONFLICT - // ==================== - - $.fn.carousel.noConflict = function () { - $.fn.carousel = old - return this - } - - - // CAROUSEL DATA-API - // ================= - - var clickHandler = function (e) { - var href - var $this = $(this) - var $target = $($this.attr('data-target') || (href = $this.attr('href')) && href.replace(/.*(?=#[^\s]+$)/, '')) // strip for ie7 - if (!$target.hasClass('carousel')) return - var options = $.extend({}, $target.data(), $this.data()) - var slideIndex = $this.attr('data-slide-to') - if (slideIndex) options.interval = false - - Plugin.call($target, options) - - if (slideIndex) { - $target.data('bs.carousel').to(slideIndex) - } - - e.preventDefault() - } - - $(document) - .on('click.bs.carousel.data-api', '[data-slide]', clickHandler) - .on('click.bs.carousel.data-api', '[data-slide-to]', clickHandler) - - $(window).on('load', function () { - $('[data-ride="carousel"]').each(function () { - var $carousel = $(this) - Plugin.call($carousel, $carousel.data()) - }) - }) - -}(jQuery); diff --git a/admin/bower_components/bootstrap/js/collapse.js b/admin/bower_components/bootstrap/js/collapse.js deleted file mode 100644 index 1203869..0000000 --- a/admin/bower_components/bootstrap/js/collapse.js +++ /dev/null @@ -1,212 +0,0 @@ -/* ======================================================================== - * Bootstrap: collapse.js v3.3.7 - * http://getbootstrap.com/javascript/#collapse - * ======================================================================== - * Copyright 2011-2016 Twitter, Inc. - * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) - * ======================================================================== */ - -/* jshint latedef: false */ - -+function ($) { - 'use strict'; - - // COLLAPSE PUBLIC CLASS DEFINITION - // ================================ - - var Collapse = function (element, options) { - this.$element = $(element) - this.options = $.extend({}, Collapse.DEFAULTS, options) - this.$trigger = $('[data-toggle="collapse"][href="#' + element.id + '"],' + - '[data-toggle="collapse"][data-target="#' + element.id + '"]') - this.transitioning = null - - if (this.options.parent) { - this.$parent = this.getParent() - } else { - this.addAriaAndCollapsedClass(this.$element, this.$trigger) - } - - if (this.options.toggle) this.toggle() - } - - Collapse.VERSION = '3.3.7' - - Collapse.TRANSITION_DURATION = 350 - - Collapse.DEFAULTS = { - toggle: true - } - - Collapse.prototype.dimension = function () { - var hasWidth = this.$element.hasClass('width') - return hasWidth ? 'width' : 'height' - } - - Collapse.prototype.show = function () { - if (this.transitioning || this.$element.hasClass('in')) return - - var activesData - var actives = this.$parent && this.$parent.children('.panel').children('.in, .collapsing') - - if (actives && actives.length) { - activesData = actives.data('bs.collapse') - if (activesData && activesData.transitioning) return - } - - var startEvent = $.Event('show.bs.collapse') - this.$element.trigger(startEvent) - if (startEvent.isDefaultPrevented()) return - - if (actives && actives.length) { - Plugin.call(actives, 'hide') - activesData || actives.data('bs.collapse', null) - } - - var dimension = this.dimension() - - this.$element - .removeClass('collapse') - .addClass('collapsing')[dimension](0) - .attr('aria-expanded', true) - - this.$trigger - .removeClass('collapsed') - .attr('aria-expanded', true) - - this.transitioning = 1 - - var complete = function () { - this.$element - .removeClass('collapsing') - .addClass('collapse in')[dimension]('') - this.transitioning = 0 - this.$element - .trigger('shown.bs.collapse') - } - - if (!$.support.transition) return complete.call(this) - - var scrollSize = $.camelCase(['scroll', dimension].join('-')) - - this.$element - .one('bsTransitionEnd', $.proxy(complete, this)) - .emulateTransitionEnd(Collapse.TRANSITION_DURATION)[dimension](this.$element[0][scrollSize]) - } - - Collapse.prototype.hide = function () { - if (this.transitioning || !this.$element.hasClass('in')) return - - var startEvent = $.Event('hide.bs.collapse') - this.$element.trigger(startEvent) - if (startEvent.isDefaultPrevented()) return - - var dimension = this.dimension() - - this.$element[dimension](this.$element[dimension]())[0].offsetHeight - - this.$element - .addClass('collapsing') - .removeClass('collapse in') - .attr('aria-expanded', false) - - this.$trigger - .addClass('collapsed') - .attr('aria-expanded', false) - - this.transitioning = 1 - - var complete = function () { - this.transitioning = 0 - this.$element - .removeClass('collapsing') - .addClass('collapse') - .trigger('hidden.bs.collapse') - } - - if (!$.support.transition) return complete.call(this) - - this.$element - [dimension](0) - .one('bsTransitionEnd', $.proxy(complete, this)) - .emulateTransitionEnd(Collapse.TRANSITION_DURATION) - } - - Collapse.prototype.toggle = function () { - this[this.$element.hasClass('in') ? 'hide' : 'show']() - } - - Collapse.prototype.getParent = function () { - return $(this.options.parent) - .find('[data-toggle="collapse"][data-parent="' + this.options.parent + '"]') - .each($.proxy(function (i, element) { - var $element = $(element) - this.addAriaAndCollapsedClass(getTargetFromTrigger($element), $element) - }, this)) - .end() - } - - Collapse.prototype.addAriaAndCollapsedClass = function ($element, $trigger) { - var isOpen = $element.hasClass('in') - - $element.attr('aria-expanded', isOpen) - $trigger - .toggleClass('collapsed', !isOpen) - .attr('aria-expanded', isOpen) - } - - function getTargetFromTrigger($trigger) { - var href - var target = $trigger.attr('data-target') - || (href = $trigger.attr('href')) && href.replace(/.*(?=#[^\s]+$)/, '') // strip for ie7 - - return $(target) - } - - - // COLLAPSE PLUGIN DEFINITION - // ========================== - - function Plugin(option) { - return this.each(function () { - var $this = $(this) - var data = $this.data('bs.collapse') - var options = $.extend({}, Collapse.DEFAULTS, $this.data(), typeof option == 'object' && option) - - if (!data && options.toggle && /show|hide/.test(option)) options.toggle = false - if (!data) $this.data('bs.collapse', (data = new Collapse(this, options))) - if (typeof option == 'string') data[option]() - }) - } - - var old = $.fn.collapse - - $.fn.collapse = Plugin - $.fn.collapse.Constructor = Collapse - - - // COLLAPSE NO CONFLICT - // ==================== - - $.fn.collapse.noConflict = function () { - $.fn.collapse = old - return this - } - - - // COLLAPSE DATA-API - // ================= - - $(document).on('click.bs.collapse.data-api', '[data-toggle="collapse"]', function (e) { - var $this = $(this) - - if (!$this.attr('data-target')) e.preventDefault() - - var $target = getTargetFromTrigger($this) - var data = $target.data('bs.collapse') - var option = data ? 'toggle' : $this.data() - - Plugin.call($target, option) - }) - -}(jQuery); diff --git a/admin/bower_components/bootstrap/js/dropdown.js b/admin/bower_components/bootstrap/js/dropdown.js deleted file mode 100644 index 04e9c2d..0000000 --- a/admin/bower_components/bootstrap/js/dropdown.js +++ /dev/null @@ -1,165 +0,0 @@ -/* ======================================================================== - * Bootstrap: dropdown.js v3.3.7 - * http://getbootstrap.com/javascript/#dropdowns - * ======================================================================== - * Copyright 2011-2016 Twitter, Inc. - * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) - * ======================================================================== */ - - -+function ($) { - 'use strict'; - - // DROPDOWN CLASS DEFINITION - // ========================= - - var backdrop = '.dropdown-backdrop' - var toggle = '[data-toggle="dropdown"]' - var Dropdown = function (element) { - $(element).on('click.bs.dropdown', this.toggle) - } - - Dropdown.VERSION = '3.3.7' - - function getParent($this) { - var selector = $this.attr('data-target') - - if (!selector) { - selector = $this.attr('href') - selector = selector && /#[A-Za-z]/.test(selector) && selector.replace(/.*(?=#[^\s]*$)/, '') // strip for ie7 - } - - var $parent = selector && $(selector) - - return $parent && $parent.length ? $parent : $this.parent() - } - - function clearMenus(e) { - if (e && e.which === 3) return - $(backdrop).remove() - $(toggle).each(function () { - var $this = $(this) - var $parent = getParent($this) - var relatedTarget = { relatedTarget: this } - - if (!$parent.hasClass('open')) return - - if (e && e.type == 'click' && /input|textarea/i.test(e.target.tagName) && $.contains($parent[0], e.target)) return - - $parent.trigger(e = $.Event('hide.bs.dropdown', relatedTarget)) - - if (e.isDefaultPrevented()) return - - $this.attr('aria-expanded', 'false') - $parent.removeClass('open').trigger($.Event('hidden.bs.dropdown', relatedTarget)) - }) - } - - Dropdown.prototype.toggle = function (e) { - var $this = $(this) - - if ($this.is('.disabled, :disabled')) return - - var $parent = getParent($this) - var isActive = $parent.hasClass('open') - - clearMenus() - - if (!isActive) { - if ('ontouchstart' in document.documentElement && !$parent.closest('.navbar-nav').length) { - // if mobile we use a backdrop because click events don't delegate - $(document.createElement('div')) - .addClass('dropdown-backdrop') - .insertAfter($(this)) - .on('click', clearMenus) - } - - var relatedTarget = { relatedTarget: this } - $parent.trigger(e = $.Event('show.bs.dropdown', relatedTarget)) - - if (e.isDefaultPrevented()) return - - $this - .trigger('focus') - .attr('aria-expanded', 'true') - - $parent - .toggleClass('open') - .trigger($.Event('shown.bs.dropdown', relatedTarget)) - } - - return false - } - - Dropdown.prototype.keydown = function (e) { - if (!/(38|40|27|32)/.test(e.which) || /input|textarea/i.test(e.target.tagName)) return - - var $this = $(this) - - e.preventDefault() - e.stopPropagation() - - if ($this.is('.disabled, :disabled')) return - - var $parent = getParent($this) - var isActive = $parent.hasClass('open') - - if (!isActive && e.which != 27 || isActive && e.which == 27) { - if (e.which == 27) $parent.find(toggle).trigger('focus') - return $this.trigger('click') - } - - var desc = ' li:not(.disabled):visible a' - var $items = $parent.find('.dropdown-menu' + desc) - - if (!$items.length) return - - var index = $items.index(e.target) - - if (e.which == 38 && index > 0) index-- // up - if (e.which == 40 && index < $items.length - 1) index++ // down - if (!~index) index = 0 - - $items.eq(index).trigger('focus') - } - - - // DROPDOWN PLUGIN DEFINITION - // ========================== - - function Plugin(option) { - return this.each(function () { - var $this = $(this) - var data = $this.data('bs.dropdown') - - if (!data) $this.data('bs.dropdown', (data = new Dropdown(this))) - if (typeof option == 'string') data[option].call($this) - }) - } - - var old = $.fn.dropdown - - $.fn.dropdown = Plugin - $.fn.dropdown.Constructor = Dropdown - - - // DROPDOWN NO CONFLICT - // ==================== - - $.fn.dropdown.noConflict = function () { - $.fn.dropdown = old - return this - } - - - // APPLY TO STANDARD DROPDOWN ELEMENTS - // =================================== - - $(document) - .on('click.bs.dropdown.data-api', clearMenus) - .on('click.bs.dropdown.data-api', '.dropdown form', function (e) { e.stopPropagation() }) - .on('click.bs.dropdown.data-api', toggle, Dropdown.prototype.toggle) - .on('keydown.bs.dropdown.data-api', toggle, Dropdown.prototype.keydown) - .on('keydown.bs.dropdown.data-api', '.dropdown-menu', Dropdown.prototype.keydown) - -}(jQuery); diff --git a/admin/bower_components/bootstrap/js/modal.js b/admin/bower_components/bootstrap/js/modal.js deleted file mode 100644 index f84142d..0000000 --- a/admin/bower_components/bootstrap/js/modal.js +++ /dev/null @@ -1,339 +0,0 @@ -/* ======================================================================== - * Bootstrap: modal.js v3.3.7 - * http://getbootstrap.com/javascript/#modals - * ======================================================================== - * Copyright 2011-2016 Twitter, Inc. - * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) - * ======================================================================== */ - - -+function ($) { - 'use strict'; - - // MODAL CLASS DEFINITION - // ====================== - - var Modal = function (element, options) { - this.options = options - this.$body = $(document.body) - this.$element = $(element) - this.$dialog = this.$element.find('.modal-dialog') - this.$backdrop = null - this.isShown = null - this.originalBodyPad = null - this.scrollbarWidth = 0 - this.ignoreBackdropClick = false - - if (this.options.remote) { - this.$element - .find('.modal-content') - .load(this.options.remote, $.proxy(function () { - this.$element.trigger('loaded.bs.modal') - }, this)) - } - } - - Modal.VERSION = '3.3.7' - - Modal.TRANSITION_DURATION = 300 - Modal.BACKDROP_TRANSITION_DURATION = 150 - - Modal.DEFAULTS = { - backdrop: true, - keyboard: true, - show: true - } - - Modal.prototype.toggle = function (_relatedTarget) { - return this.isShown ? this.hide() : this.show(_relatedTarget) - } - - Modal.prototype.show = function (_relatedTarget) { - var that = this - var e = $.Event('show.bs.modal', { relatedTarget: _relatedTarget }) - - this.$element.trigger(e) - - if (this.isShown || e.isDefaultPrevented()) return - - this.isShown = true - - this.checkScrollbar() - this.setScrollbar() - this.$body.addClass('modal-open') - - this.escape() - this.resize() - - this.$element.on('click.dismiss.bs.modal', '[data-dismiss="modal"]', $.proxy(this.hide, this)) - - this.$dialog.on('mousedown.dismiss.bs.modal', function () { - that.$element.one('mouseup.dismiss.bs.modal', function (e) { - if ($(e.target).is(that.$element)) that.ignoreBackdropClick = true - }) - }) - - this.backdrop(function () { - var transition = $.support.transition && that.$element.hasClass('fade') - - if (!that.$element.parent().length) { - that.$element.appendTo(that.$body) // don't move modals dom position - } - - that.$element - .show() - .scrollTop(0) - - that.adjustDialog() - - if (transition) { - that.$element[0].offsetWidth // force reflow - } - - that.$element.addClass('in') - - that.enforceFocus() - - var e = $.Event('shown.bs.modal', { relatedTarget: _relatedTarget }) - - transition ? - that.$dialog // wait for modal to slide in - .one('bsTransitionEnd', function () { - that.$element.trigger('focus').trigger(e) - }) - .emulateTransitionEnd(Modal.TRANSITION_DURATION) : - that.$element.trigger('focus').trigger(e) - }) - } - - Modal.prototype.hide = function (e) { - if (e) e.preventDefault() - - e = $.Event('hide.bs.modal') - - this.$element.trigger(e) - - if (!this.isShown || e.isDefaultPrevented()) return - - this.isShown = false - - this.escape() - this.resize() - - $(document).off('focusin.bs.modal') - - this.$element - .removeClass('in') - .off('click.dismiss.bs.modal') - .off('mouseup.dismiss.bs.modal') - - this.$dialog.off('mousedown.dismiss.bs.modal') - - $.support.transition && this.$element.hasClass('fade') ? - this.$element - .one('bsTransitionEnd', $.proxy(this.hideModal, this)) - .emulateTransitionEnd(Modal.TRANSITION_DURATION) : - this.hideModal() - } - - Modal.prototype.enforceFocus = function () { - $(document) - .off('focusin.bs.modal') // guard against infinite focus loop - .on('focusin.bs.modal', $.proxy(function (e) { - if (document !== e.target && - this.$element[0] !== e.target && - !this.$element.has(e.target).length) { - this.$element.trigger('focus') - } - }, this)) - } - - Modal.prototype.escape = function () { - if (this.isShown && this.options.keyboard) { - this.$element.on('keydown.dismiss.bs.modal', $.proxy(function (e) { - e.which == 27 && this.hide() - }, this)) - } else if (!this.isShown) { - this.$element.off('keydown.dismiss.bs.modal') - } - } - - Modal.prototype.resize = function () { - if (this.isShown) { - $(window).on('resize.bs.modal', $.proxy(this.handleUpdate, this)) - } else { - $(window).off('resize.bs.modal') - } - } - - Modal.prototype.hideModal = function () { - var that = this - this.$element.hide() - this.backdrop(function () { - that.$body.removeClass('modal-open') - that.resetAdjustments() - that.resetScrollbar() - that.$element.trigger('hidden.bs.modal') - }) - } - - Modal.prototype.removeBackdrop = function () { - this.$backdrop && this.$backdrop.remove() - this.$backdrop = null - } - - Modal.prototype.backdrop = function (callback) { - var that = this - var animate = this.$element.hasClass('fade') ? 'fade' : '' - - if (this.isShown && this.options.backdrop) { - var doAnimate = $.support.transition && animate - - this.$backdrop = $(document.createElement('div')) - .addClass('modal-backdrop ' + animate) - .appendTo(this.$body) - - this.$element.on('click.dismiss.bs.modal', $.proxy(function (e) { - if (this.ignoreBackdropClick) { - this.ignoreBackdropClick = false - return - } - if (e.target !== e.currentTarget) return - this.options.backdrop == 'static' - ? this.$element[0].focus() - : this.hide() - }, this)) - - if (doAnimate) this.$backdrop[0].offsetWidth // force reflow - - this.$backdrop.addClass('in') - - if (!callback) return - - doAnimate ? - this.$backdrop - .one('bsTransitionEnd', callback) - .emulateTransitionEnd(Modal.BACKDROP_TRANSITION_DURATION) : - callback() - - } else if (!this.isShown && this.$backdrop) { - this.$backdrop.removeClass('in') - - var callbackRemove = function () { - that.removeBackdrop() - callback && callback() - } - $.support.transition && this.$element.hasClass('fade') ? - this.$backdrop - .one('bsTransitionEnd', callbackRemove) - .emulateTransitionEnd(Modal.BACKDROP_TRANSITION_DURATION) : - callbackRemove() - - } else if (callback) { - callback() - } - } - - // these following methods are used to handle overflowing modals - - Modal.prototype.handleUpdate = function () { - this.adjustDialog() - } - - Modal.prototype.adjustDialog = function () { - var modalIsOverflowing = this.$element[0].scrollHeight > document.documentElement.clientHeight - - this.$element.css({ - paddingLeft: !this.bodyIsOverflowing && modalIsOverflowing ? this.scrollbarWidth : '', - paddingRight: this.bodyIsOverflowing && !modalIsOverflowing ? this.scrollbarWidth : '' - }) - } - - Modal.prototype.resetAdjustments = function () { - this.$element.css({ - paddingLeft: '', - paddingRight: '' - }) - } - - Modal.prototype.checkScrollbar = function () { - var fullWindowWidth = window.innerWidth - if (!fullWindowWidth) { // workaround for missing window.innerWidth in IE8 - var documentElementRect = document.documentElement.getBoundingClientRect() - fullWindowWidth = documentElementRect.right - Math.abs(documentElementRect.left) - } - this.bodyIsOverflowing = document.body.clientWidth < fullWindowWidth - this.scrollbarWidth = this.measureScrollbar() - } - - Modal.prototype.setScrollbar = function () { - var bodyPad = parseInt((this.$body.css('padding-right') || 0), 10) - this.originalBodyPad = document.body.style.paddingRight || '' - if (this.bodyIsOverflowing) this.$body.css('padding-right', bodyPad + this.scrollbarWidth) - } - - Modal.prototype.resetScrollbar = function () { - this.$body.css('padding-right', this.originalBodyPad) - } - - Modal.prototype.measureScrollbar = function () { // thx walsh - var scrollDiv = document.createElement('div') - scrollDiv.className = 'modal-scrollbar-measure' - this.$body.append(scrollDiv) - var scrollbarWidth = scrollDiv.offsetWidth - scrollDiv.clientWidth - this.$body[0].removeChild(scrollDiv) - return scrollbarWidth - } - - - // MODAL PLUGIN DEFINITION - // ======================= - - function Plugin(option, _relatedTarget) { - return this.each(function () { - var $this = $(this) - var data = $this.data('bs.modal') - var options = $.extend({}, Modal.DEFAULTS, $this.data(), typeof option == 'object' && option) - - if (!data) $this.data('bs.modal', (data = new Modal(this, options))) - if (typeof option == 'string') data[option](_relatedTarget) - else if (options.show) data.show(_relatedTarget) - }) - } - - var old = $.fn.modal - - $.fn.modal = Plugin - $.fn.modal.Constructor = Modal - - - // MODAL NO CONFLICT - // ================= - - $.fn.modal.noConflict = function () { - $.fn.modal = old - return this - } - - - // MODAL DATA-API - // ============== - - $(document).on('click.bs.modal.data-api', '[data-toggle="modal"]', function (e) { - var $this = $(this) - var href = $this.attr('href') - var $target = $($this.attr('data-target') || (href && href.replace(/.*(?=#[^\s]+$)/, ''))) // strip for ie7 - var option = $target.data('bs.modal') ? 'toggle' : $.extend({ remote: !/#/.test(href) && href }, $target.data(), $this.data()) - - if ($this.is('a')) e.preventDefault() - - $target.one('show.bs.modal', function (showEvent) { - if (showEvent.isDefaultPrevented()) return // only register focus restorer if modal will actually get shown - $target.one('hidden.bs.modal', function () { - $this.is(':visible') && $this.trigger('focus') - }) - }) - Plugin.call($target, option, this) - }) - -}(jQuery); diff --git a/admin/bower_components/bootstrap/js/popover.js b/admin/bower_components/bootstrap/js/popover.js deleted file mode 100644 index efe1956..0000000 --- a/admin/bower_components/bootstrap/js/popover.js +++ /dev/null @@ -1,108 +0,0 @@ -/* ======================================================================== - * Bootstrap: popover.js v3.3.7 - * http://getbootstrap.com/javascript/#popovers - * ======================================================================== - * Copyright 2011-2016 Twitter, Inc. - * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) - * ======================================================================== */ - - -+function ($) { - 'use strict'; - - // POPOVER PUBLIC CLASS DEFINITION - // =============================== - - var Popover = function (element, options) { - this.init('popover', element, options) - } - - if (!$.fn.tooltip) throw new Error('Popover requires tooltip.js') - - Popover.VERSION = '3.3.7' - - Popover.DEFAULTS = $.extend({}, $.fn.tooltip.Constructor.DEFAULTS, { - placement: 'right', - trigger: 'click', - content: '', - template: '<div class="popover" role="tooltip"><div class="arrow"></div><h3 class="popover-title"></h3><div class="popover-content"></div></div>' - }) - - - // NOTE: POPOVER EXTENDS tooltip.js - // ================================ - - Popover.prototype = $.extend({}, $.fn.tooltip.Constructor.prototype) - - Popover.prototype.constructor = Popover - - Popover.prototype.getDefaults = function () { - return Popover.DEFAULTS - } - - Popover.prototype.setContent = function () { - var $tip = this.tip() - var title = this.getTitle() - var content = this.getContent() - - $tip.find('.popover-title')[this.options.html ? 'html' : 'text'](title) - $tip.find('.popover-content').children().detach().end()[ // we use append for html objects to maintain js events - this.options.html ? (typeof content == 'string' ? 'html' : 'append') : 'text' - ](content) - - $tip.removeClass('fade top bottom left right in') - - // IE8 doesn't accept hiding via the `:empty` pseudo selector, we have to do - // this manually by checking the contents. - if (!$tip.find('.popover-title').html()) $tip.find('.popover-title').hide() - } - - Popover.prototype.hasContent = function () { - return this.getTitle() || this.getContent() - } - - Popover.prototype.getContent = function () { - var $e = this.$element - var o = this.options - - return $e.attr('data-content') - || (typeof o.content == 'function' ? - o.content.call($e[0]) : - o.content) - } - - Popover.prototype.arrow = function () { - return (this.$arrow = this.$arrow || this.tip().find('.arrow')) - } - - - // POPOVER PLUGIN DEFINITION - // ========================= - - function Plugin(option) { - return this.each(function () { - var $this = $(this) - var data = $this.data('bs.popover') - var options = typeof option == 'object' && option - - if (!data && /destroy|hide/.test(option)) return - if (!data) $this.data('bs.popover', (data = new Popover(this, options))) - if (typeof option == 'string') data[option]() - }) - } - - var old = $.fn.popover - - $.fn.popover = Plugin - $.fn.popover.Constructor = Popover - - - // POPOVER NO CONFLICT - // =================== - - $.fn.popover.noConflict = function () { - $.fn.popover = old - return this - } - -}(jQuery); diff --git a/admin/bower_components/bootstrap/js/scrollspy.js b/admin/bower_components/bootstrap/js/scrollspy.js deleted file mode 100644 index fe19809..0000000 --- a/admin/bower_components/bootstrap/js/scrollspy.js +++ /dev/null @@ -1,172 +0,0 @@ -/* ======================================================================== - * Bootstrap: scrollspy.js v3.3.7 - * http://getbootstrap.com/javascript/#scrollspy - * ======================================================================== - * Copyright 2011-2016 Twitter, Inc. - * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) - * ======================================================================== */ - - -+function ($) { - 'use strict'; - - // SCROLLSPY CLASS DEFINITION - // ========================== - - function ScrollSpy(element, options) { - this.$body = $(document.body) - this.$scrollElement = $(element).is(document.body) ? $(window) : $(element) - this.options = $.extend({}, ScrollSpy.DEFAULTS, options) - this.selector = (this.options.target || '') + ' .nav li > a' - this.offsets = [] - this.targets = [] - this.activeTarget = null - this.scrollHeight = 0 - - this.$scrollElement.on('scroll.bs.scrollspy', $.proxy(this.process, this)) - this.refresh() - this.process() - } - - ScrollSpy.VERSION = '3.3.7' - - ScrollSpy.DEFAULTS = { - offset: 10 - } - - ScrollSpy.prototype.getScrollHeight = function () { - return this.$scrollElement[0].scrollHeight || Math.max(this.$body[0].scrollHeight, document.documentElement.scrollHeight) - } - - ScrollSpy.prototype.refresh = function () { - var that = this - var offsetMethod = 'offset' - var offsetBase = 0 - - this.offsets = [] - this.targets = [] - this.scrollHeight = this.getScrollHeight() - - if (!$.isWindow(this.$scrollElement[0])) { - offsetMethod = 'position' - offsetBase = this.$scrollElement.scrollTop() - } - - this.$body - .find(this.selector) - .map(function () { - var $el = $(this) - var href = $el.data('target') || $el.attr('href') - var $href = /^#./.test(href) && $(href) - - return ($href - && $href.length - && $href.is(':visible') - && [[$href[offsetMethod]().top + offsetBase, href]]) || null - }) - .sort(function (a, b) { return a[0] - b[0] }) - .each(function () { - that.offsets.push(this[0]) - that.targets.push(this[1]) - }) - } - - ScrollSpy.prototype.process = function () { - var scrollTop = this.$scrollElement.scrollTop() + this.options.offset - var scrollHeight = this.getScrollHeight() - var maxScroll = this.options.offset + scrollHeight - this.$scrollElement.height() - var offsets = this.offsets - var targets = this.targets - var activeTarget = this.activeTarget - var i - - if (this.scrollHeight != scrollHeight) { - this.refresh() - } - - if (scrollTop >= maxScroll) { - return activeTarget != (i = targets[targets.length - 1]) && this.activate(i) - } - - if (activeTarget && scrollTop < offsets[0]) { - this.activeTarget = null - return this.clear() - } - - for (i = offsets.length; i--;) { - activeTarget != targets[i] - && scrollTop >= offsets[i] - && (offsets[i + 1] === undefined || scrollTop < offsets[i + 1]) - && this.activate(targets[i]) - } - } - - ScrollSpy.prototype.activate = function (target) { - this.activeTarget = target - - this.clear() - - var selector = this.selector + - '[data-target="' + target + '"],' + - this.selector + '[href="' + target + '"]' - - var active = $(selector) - .parents('li') - .addClass('active') - - if (active.parent('.dropdown-menu').length) { - active = active - .closest('li.dropdown') - .addClass('active') - } - - active.trigger('activate.bs.scrollspy') - } - - ScrollSpy.prototype.clear = function () { - $(this.selector) - .parentsUntil(this.options.target, '.active') - .removeClass('active') - } - - - // SCROLLSPY PLUGIN DEFINITION - // =========================== - - function Plugin(option) { - return this.each(function () { - var $this = $(this) - var data = $this.data('bs.scrollspy') - var options = typeof option == 'object' && option - - if (!data) $this.data('bs.scrollspy', (data = new ScrollSpy(this, options))) - if (typeof option == 'string') data[option]() - }) - } - - var old = $.fn.scrollspy - - $.fn.scrollspy = Plugin - $.fn.scrollspy.Constructor = ScrollSpy - - - // SCROLLSPY NO CONFLICT - // ===================== - - $.fn.scrollspy.noConflict = function () { - $.fn.scrollspy = old - return this - } - - - // SCROLLSPY DATA-API - // ================== - - $(window).on('load.bs.scrollspy.data-api', function () { - $('[data-spy="scroll"]').each(function () { - var $spy = $(this) - Plugin.call($spy, $spy.data()) - }) - }) - -}(jQuery); diff --git a/admin/bower_components/bootstrap/js/tab.js b/admin/bower_components/bootstrap/js/tab.js deleted file mode 100644 index c4a8635..0000000 --- a/admin/bower_components/bootstrap/js/tab.js +++ /dev/null @@ -1,155 +0,0 @@ -/* ======================================================================== - * Bootstrap: tab.js v3.3.7 - * http://getbootstrap.com/javascript/#tabs - * ======================================================================== - * Copyright 2011-2016 Twitter, Inc. - * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) - * ======================================================================== */ - - -+function ($) { - 'use strict'; - - // TAB CLASS DEFINITION - // ==================== - - var Tab = function (element) { - // jscs:disable requireDollarBeforejQueryAssignment - this.element = $(element) - // jscs:enable requireDollarBeforejQueryAssignment - } - - Tab.VERSION = '3.3.7' - - Tab.TRANSITION_DURATION = 150 - - Tab.prototype.show = function () { - var $this = this.element - var $ul = $this.closest('ul:not(.dropdown-menu)') - var selector = $this.data('target') - - if (!selector) { - selector = $this.attr('href') - selector = selector && selector.replace(/.*(?=#[^\s]*$)/, '') // strip for ie7 - } - - if ($this.parent('li').hasClass('active')) return - - var $previous = $ul.find('.active:last a') - var hideEvent = $.Event('hide.bs.tab', { - relatedTarget: $this[0] - }) - var showEvent = $.Event('show.bs.tab', { - relatedTarget: $previous[0] - }) - - $previous.trigger(hideEvent) - $this.trigger(showEvent) - - if (showEvent.isDefaultPrevented() || hideEvent.isDefaultPrevented()) return - - var $target = $(selector) - - this.activate($this.closest('li'), $ul) - this.activate($target, $target.parent(), function () { - $previous.trigger({ - type: 'hidden.bs.tab', - relatedTarget: $this[0] - }) - $this.trigger({ - type: 'shown.bs.tab', - relatedTarget: $previous[0] - }) - }) - } - - Tab.prototype.activate = function (element, container, callback) { - var $active = container.find('> .active') - var transition = callback - && $.support.transition - && ($active.length && $active.hasClass('fade') || !!container.find('> .fade').length) - - function next() { - $active - .removeClass('active') - .find('> .dropdown-menu > .active') - .removeClass('active') - .end() - .find('[data-toggle="tab"]') - .attr('aria-expanded', false) - - element - .addClass('active') - .find('[data-toggle="tab"]') - .attr('aria-expanded', true) - - if (transition) { - element[0].offsetWidth // reflow for transition - element.addClass('in') - } else { - element.removeClass('fade') - } - - if (element.parent('.dropdown-menu').length) { - element - .closest('li.dropdown') - .addClass('active') - .end() - .find('[data-toggle="tab"]') - .attr('aria-expanded', true) - } - - callback && callback() - } - - $active.length && transition ? - $active - .one('bsTransitionEnd', next) - .emulateTransitionEnd(Tab.TRANSITION_DURATION) : - next() - - $active.removeClass('in') - } - - - // TAB PLUGIN DEFINITION - // ===================== - - function Plugin(option) { - return this.each(function () { - var $this = $(this) - var data = $this.data('bs.tab') - - if (!data) $this.data('bs.tab', (data = new Tab(this))) - if (typeof option == 'string') data[option]() - }) - } - - var old = $.fn.tab - - $.fn.tab = Plugin - $.fn.tab.Constructor = Tab - - - // TAB NO CONFLICT - // =============== - - $.fn.tab.noConflict = function () { - $.fn.tab = old - return this - } - - - // TAB DATA-API - // ============ - - var clickHandler = function (e) { - e.preventDefault() - Plugin.call($(this), 'show') - } - - $(document) - .on('click.bs.tab.data-api', '[data-toggle="tab"]', clickHandler) - .on('click.bs.tab.data-api', '[data-toggle="pill"]', clickHandler) - -}(jQuery); diff --git a/admin/bower_components/bootstrap/js/tooltip.js b/admin/bower_components/bootstrap/js/tooltip.js deleted file mode 100644 index e35d9c7..0000000 --- a/admin/bower_components/bootstrap/js/tooltip.js +++ /dev/null @@ -1,520 +0,0 @@ -/* ======================================================================== - * Bootstrap: tooltip.js v3.3.7 - * http://getbootstrap.com/javascript/#tooltip - * Inspired by the original jQuery.tipsy by Jason Frame - * ======================================================================== - * Copyright 2011-2016 Twitter, Inc. - * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) - * ======================================================================== */ - - -+function ($) { - 'use strict'; - - // TOOLTIP PUBLIC CLASS DEFINITION - // =============================== - - var Tooltip = function (element, options) { - this.type = null - this.options = null - this.enabled = null - this.timeout = null - this.hoverState = null - this.$element = null - this.inState = null - - this.init('tooltip', element, options) - } - - Tooltip.VERSION = '3.3.7' - - Tooltip.TRANSITION_DURATION = 150 - - Tooltip.DEFAULTS = { - animation: true, - placement: 'top', - selector: false, - template: '<div class="tooltip" role="tooltip"><div class="tooltip-arrow"></div><div class="tooltip-inner"></div></div>', - trigger: 'hover focus', - title: '', - delay: 0, - html: false, - container: false, - viewport: { - selector: 'body', - padding: 0 - } - } - - Tooltip.prototype.init = function (type, element, options) { - this.enabled = true - this.type = type - this.$element = $(element) - this.options = this.getOptions(options) - this.$viewport = this.options.viewport && $($.isFunction(this.options.viewport) ? this.options.viewport.call(this, this.$element) : (this.options.viewport.selector || this.options.viewport)) - this.inState = { click: false, hover: false, focus: false } - - if (this.$element[0] instanceof document.constructor && !this.options.selector) { - throw new Error('`selector` option must be specified when initializing ' + this.type + ' on the window.document object!') - } - - var triggers = this.options.trigger.split(' ') - - for (var i = triggers.length; i--;) { - var trigger = triggers[i] - - if (trigger == 'click') { - this.$element.on('click.' + this.type, this.options.selector, $.proxy(this.toggle, this)) - } else if (trigger != 'manual') { - var eventIn = trigger == 'hover' ? 'mouseenter' : 'focusin' - var eventOut = trigger == 'hover' ? 'mouseleave' : 'focusout' - - this.$element.on(eventIn + '.' + this.type, this.options.selector, $.proxy(this.enter, this)) - this.$element.on(eventOut + '.' + this.type, this.options.selector, $.proxy(this.leave, this)) - } - } - - this.options.selector ? - (this._options = $.extend({}, this.options, { trigger: 'manual', selector: '' })) : - this.fixTitle() - } - - Tooltip.prototype.getDefaults = function () { - return Tooltip.DEFAULTS - } - - Tooltip.prototype.getOptions = function (options) { - options = $.extend({}, this.getDefaults(), this.$element.data(), options) - - if (options.delay && typeof options.delay == 'number') { - options.delay = { - show: options.delay, - hide: options.delay - } - } - - return options - } - - Tooltip.prototype.getDelegateOptions = function () { - var options = {} - var defaults = this.getDefaults() - - this._options && $.each(this._options, function (key, value) { - if (defaults[key] != value) options[key] = value - }) - - return options - } - - Tooltip.prototype.enter = function (obj) { - var self = obj instanceof this.constructor ? - obj : $(obj.currentTarget).data('bs.' + this.type) - - if (!self) { - self = new this.constructor(obj.currentTarget, this.getDelegateOptions()) - $(obj.currentTarget).data('bs.' + this.type, self) - } - - if (obj instanceof $.Event) { - self.inState[obj.type == 'focusin' ? 'focus' : 'hover'] = true - } - - if (self.tip().hasClass('in') || self.hoverState == 'in') { - self.hoverState = 'in' - return - } - - clearTimeout(self.timeout) - - self.hoverState = 'in' - - if (!self.options.delay || !self.options.delay.show) return self.show() - - self.timeout = setTimeout(function () { - if (self.hoverState == 'in') self.show() - }, self.options.delay.show) - } - - Tooltip.prototype.isInStateTrue = function () { - for (var key in this.inState) { - if (this.inState[key]) return true - } - - return false - } - - Tooltip.prototype.leave = function (obj) { - var self = obj instanceof this.constructor ? - obj : $(obj.currentTarget).data('bs.' + this.type) - - if (!self) { - self = new this.constructor(obj.currentTarget, this.getDelegateOptions()) - $(obj.currentTarget).data('bs.' + this.type, self) - } - - if (obj instanceof $.Event) { - self.inState[obj.type == 'focusout' ? 'focus' : 'hover'] = false - } - - if (self.isInStateTrue()) return - - clearTimeout(self.timeout) - - self.hoverState = 'out' - - if (!self.options.delay || !self.options.delay.hide) return self.hide() - - self.timeout = setTimeout(function () { - if (self.hoverState == 'out') self.hide() - }, self.options.delay.hide) - } - - Tooltip.prototype.show = function () { - var e = $.Event('show.bs.' + this.type) - - if (this.hasContent() && this.enabled) { - this.$element.trigger(e) - - var inDom = $.contains(this.$element[0].ownerDocument.documentElement, this.$element[0]) - if (e.isDefaultPrevented() || !inDom) return - var that = this - - var $tip = this.tip() - - var tipId = this.getUID(this.type) - - this.setContent() - $tip.attr('id', tipId) - this.$element.attr('aria-describedby', tipId) - - if (this.options.animation) $tip.addClass('fade') - - var placement = typeof this.options.placement == 'function' ? - this.options.placement.call(this, $tip[0], this.$element[0]) : - this.options.placement - - var autoToken = /\s?auto?\s?/i - var autoPlace = autoToken.test(placement) - if (autoPlace) placement = placement.replace(autoToken, '') || 'top' - - $tip - .detach() - .css({ top: 0, left: 0, display: 'block' }) - .addClass(placement) - .data('bs.' + this.type, this) - - this.options.container ? $tip.appendTo(this.options.container) : $tip.insertAfter(this.$element) - this.$element.trigger('inserted.bs.' + this.type) - - var pos = this.getPosition() - var actualWidth = $tip[0].offsetWidth - var actualHeight = $tip[0].offsetHeight - - if (autoPlace) { - var orgPlacement = placement - var viewportDim = this.getPosition(this.$viewport) - - placement = placement == 'bottom' && pos.bottom + actualHeight > viewportDim.bottom ? 'top' : - placement == 'top' && pos.top - actualHeight < viewportDim.top ? 'bottom' : - placement == 'right' && pos.right + actualWidth > viewportDim.width ? 'left' : - placement == 'left' && pos.left - actualWidth < viewportDim.left ? 'right' : - placement - - $tip - .removeClass(orgPlacement) - .addClass(placement) - } - - var calculatedOffset = this.getCalculatedOffset(placement, pos, actualWidth, actualHeight) - - this.applyPlacement(calculatedOffset, placement) - - var complete = function () { - var prevHoverState = that.hoverState - that.$element.trigger('shown.bs.' + that.type) - that.hoverState = null - - if (prevHoverState == 'out') that.leave(that) - } - - $.support.transition && this.$tip.hasClass('fade') ? - $tip - .one('bsTransitionEnd', complete) - .emulateTransitionEnd(Tooltip.TRANSITION_DURATION) : - complete() - } - } - - Tooltip.prototype.applyPlacement = function (offset, placement) { - var $tip = this.tip() - var width = $tip[0].offsetWidth - var height = $tip[0].offsetHeight - - // manually read margins because getBoundingClientRect includes difference - var marginTop = parseInt($tip.css('margin-top'), 10) - var marginLeft = parseInt($tip.css('margin-left'), 10) - - // we must check for NaN for ie 8/9 - if (isNaN(marginTop)) marginTop = 0 - if (isNaN(marginLeft)) marginLeft = 0 - - offset.top += marginTop - offset.left += marginLeft - - // $.fn.offset doesn't round pixel values - // so we use setOffset directly with our own function B-0 - $.offset.setOffset($tip[0], $.extend({ - using: function (props) { - $tip.css({ - top: Math.round(props.top), - left: Math.round(props.left) - }) - } - }, offset), 0) - - $tip.addClass('in') - - // check to see if placing tip in new offset caused the tip to resize itself - var actualWidth = $tip[0].offsetWidth - var actualHeight = $tip[0].offsetHeight - - if (placement == 'top' && actualHeight != height) { - offset.top = offset.top + height - actualHeight - } - - var delta = this.getViewportAdjustedDelta(placement, offset, actualWidth, actualHeight) - - if (delta.left) offset.left += delta.left - else offset.top += delta.top - - var isVertical = /top|bottom/.test(placement) - var arrowDelta = isVertical ? delta.left * 2 - width + actualWidth : delta.top * 2 - height + actualHeight - var arrowOffsetPosition = isVertical ? 'offsetWidth' : 'offsetHeight' - - $tip.offset(offset) - this.replaceArrow(arrowDelta, $tip[0][arrowOffsetPosition], isVertical) - } - - Tooltip.prototype.replaceArrow = function (delta, dimension, isVertical) { - this.arrow() - .css(isVertical ? 'left' : 'top', 50 * (1 - delta / dimension) + '%') - .css(isVertical ? 'top' : 'left', '') - } - - Tooltip.prototype.setContent = function () { - var $tip = this.tip() - var title = this.getTitle() - - $tip.find('.tooltip-inner')[this.options.html ? 'html' : 'text'](title) - $tip.removeClass('fade in top bottom left right') - } - - Tooltip.prototype.hide = function (callback) { - var that = this - var $tip = $(this.$tip) - var e = $.Event('hide.bs.' + this.type) - - function complete() { - if (that.hoverState != 'in') $tip.detach() - if (that.$element) { // TODO: Check whether guarding this code with this `if` is really necessary. - that.$element - .removeAttr('aria-describedby') - .trigger('hidden.bs.' + that.type) - } - callback && callback() - } - - this.$element.trigger(e) - - if (e.isDefaultPrevented()) return - - $tip.removeClass('in') - - $.support.transition && $tip.hasClass('fade') ? - $tip - .one('bsTransitionEnd', complete) - .emulateTransitionEnd(Tooltip.TRANSITION_DURATION) : - complete() - - this.hoverState = null - - return this - } - - Tooltip.prototype.fixTitle = function () { - var $e = this.$element - if ($e.attr('title') || typeof $e.attr('data-original-title') != 'string') { - $e.attr('data-original-title', $e.attr('title') || '').attr('title', '') - } - } - - Tooltip.prototype.hasContent = function () { - return this.getTitle() - } - - Tooltip.prototype.getPosition = function ($element) { - $element = $element || this.$element - - var el = $element[0] - var isBody = el.tagName == 'BODY' - - var elRect = el.getBoundingClientRect() - if (elRect.width == null) { - // width and height are missing in IE8, so compute them manually; see https://github.com/twbs/bootstrap/issues/14093 - elRect = $.extend({}, elRect, { width: elRect.right - elRect.left, height: elRect.bottom - elRect.top }) - } - var isSvg = window.SVGElement && el instanceof window.SVGElement - // Avoid using $.offset() on SVGs since it gives incorrect results in jQuery 3. - // See https://github.com/twbs/bootstrap/issues/20280 - var elOffset = isBody ? { top: 0, left: 0 } : (isSvg ? null : $element.offset()) - var scroll = { scroll: isBody ? document.documentElement.scrollTop || document.body.scrollTop : $element.scrollTop() } - var outerDims = isBody ? { width: $(window).width(), height: $(window).height() } : null - - return $.extend({}, elRect, scroll, outerDims, elOffset) - } - - Tooltip.prototype.getCalculatedOffset = function (placement, pos, actualWidth, actualHeight) { - return placement == 'bottom' ? { top: pos.top + pos.height, left: pos.left + pos.width / 2 - actualWidth / 2 } : - placement == 'top' ? { top: pos.top - actualHeight, left: pos.left + pos.width / 2 - actualWidth / 2 } : - placement == 'left' ? { top: pos.top + pos.height / 2 - actualHeight / 2, left: pos.left - actualWidth } : - /* placement == 'right' */ { top: pos.top + pos.height / 2 - actualHeight / 2, left: pos.left + pos.width } - - } - - Tooltip.prototype.getViewportAdjustedDelta = function (placement, pos, actualWidth, actualHeight) { - var delta = { top: 0, left: 0 } - if (!this.$viewport) return delta - - var viewportPadding = this.options.viewport && this.options.viewport.padding || 0 - var viewportDimensions = this.getPosition(this.$viewport) - - if (/right|left/.test(placement)) { - var topEdgeOffset = pos.top - viewportPadding - viewportDimensions.scroll - var bottomEdgeOffset = pos.top + viewportPadding - viewportDimensions.scroll + actualHeight - if (topEdgeOffset < viewportDimensions.top) { // top overflow - delta.top = viewportDimensions.top - topEdgeOffset - } else if (bottomEdgeOffset > viewportDimensions.top + viewportDimensions.height) { // bottom overflow - delta.top = viewportDimensions.top + viewportDimensions.height - bottomEdgeOffset - } - } else { - var leftEdgeOffset = pos.left - viewportPadding - var rightEdgeOffset = pos.left + viewportPadding + actualWidth - if (leftEdgeOffset < viewportDimensions.left) { // left overflow - delta.left = viewportDimensions.left - leftEdgeOffset - } else if (rightEdgeOffset > viewportDimensions.right) { // right overflow - delta.left = viewportDimensions.left + viewportDimensions.width - rightEdgeOffset - } - } - - return delta - } - - Tooltip.prototype.getTitle = function () { - var title - var $e = this.$element - var o = this.options - - title = $e.attr('data-original-title') - || (typeof o.title == 'function' ? o.title.call($e[0]) : o.title) - - return title - } - - Tooltip.prototype.getUID = function (prefix) { - do prefix += ~~(Math.random() * 1000000) - while (document.getElementById(prefix)) - return prefix - } - - Tooltip.prototype.tip = function () { - if (!this.$tip) { - this.$tip = $(this.options.template) - if (this.$tip.length != 1) { - throw new Error(this.type + ' `template` option must consist of exactly 1 top-level element!') - } - } - return this.$tip - } - - Tooltip.prototype.arrow = function () { - return (this.$arrow = this.$arrow || this.tip().find('.tooltip-arrow')) - } - - Tooltip.prototype.enable = function () { - this.enabled = true - } - - Tooltip.prototype.disable = function () { - this.enabled = false - } - - Tooltip.prototype.toggleEnabled = function () { - this.enabled = !this.enabled - } - - Tooltip.prototype.toggle = function (e) { - var self = this - if (e) { - self = $(e.currentTarget).data('bs.' + this.type) - if (!self) { - self = new this.constructor(e.currentTarget, this.getDelegateOptions()) - $(e.currentTarget).data('bs.' + this.type, self) - } - } - - if (e) { - self.inState.click = !self.inState.click - if (self.isInStateTrue()) self.enter(self) - else self.leave(self) - } else { - self.tip().hasClass('in') ? self.leave(self) : self.enter(self) - } - } - - Tooltip.prototype.destroy = function () { - var that = this - clearTimeout(this.timeout) - this.hide(function () { - that.$element.off('.' + that.type).removeData('bs.' + that.type) - if (that.$tip) { - that.$tip.detach() - } - that.$tip = null - that.$arrow = null - that.$viewport = null - that.$element = null - }) - } - - - // TOOLTIP PLUGIN DEFINITION - // ========================= - - function Plugin(option) { - return this.each(function () { - var $this = $(this) - var data = $this.data('bs.tooltip') - var options = typeof option == 'object' && option - - if (!data && /destroy|hide/.test(option)) return - if (!data) $this.data('bs.tooltip', (data = new Tooltip(this, options))) - if (typeof option == 'string') data[option]() - }) - } - - var old = $.fn.tooltip - - $.fn.tooltip = Plugin - $.fn.tooltip.Constructor = Tooltip - - - // TOOLTIP NO CONFLICT - // =================== - - $.fn.tooltip.noConflict = function () { - $.fn.tooltip = old - return this - } - -}(jQuery); diff --git a/admin/bower_components/bootstrap/js/transition.js b/admin/bower_components/bootstrap/js/transition.js deleted file mode 100644 index db76596..0000000 --- a/admin/bower_components/bootstrap/js/transition.js +++ /dev/null @@ -1,59 +0,0 @@ -/* ======================================================================== - * Bootstrap: transition.js v3.3.7 - * http://getbootstrap.com/javascript/#transitions - * ======================================================================== - * Copyright 2011-2016 Twitter, Inc. - * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) - * ======================================================================== */ - - -+function ($) { - 'use strict'; - - // CSS TRANSITION SUPPORT (Shoutout: http://www.modernizr.com/) - // ============================================================ - - function transitionEnd() { - var el = document.createElement('bootstrap') - - var transEndEventNames = { - WebkitTransition : 'webkitTransitionEnd', - MozTransition : 'transitionend', - OTransition : 'oTransitionEnd otransitionend', - transition : 'transitionend' - } - - for (var name in transEndEventNames) { - if (el.style[name] !== undefined) { - return { end: transEndEventNames[name] } - } - } - - return false // explicit for ie8 ( ._.) - } - - // http://blog.alexmaccaw.com/css-transitions - $.fn.emulateTransitionEnd = function (duration) { - var called = false - var $el = this - $(this).one('bsTransitionEnd', function () { called = true }) - var callback = function () { if (!called) $($el).trigger($.support.transition.end) } - setTimeout(callback, duration) - return this - } - - $(function () { - $.support.transition = transitionEnd() - - if (!$.support.transition) return - - $.event.special.bsTransitionEnd = { - bindType: $.support.transition.end, - delegateType: $.support.transition.end, - handle: function (e) { - if ($(e.target).is(this)) return e.handleObj.handler.apply(this, arguments) - } - } - }) - -}(jQuery); diff --git a/admin/bower_components/bootstrap/less/.csscomb.json b/admin/bower_components/bootstrap/less/.csscomb.json deleted file mode 100644 index 40695a4..0000000 --- a/admin/bower_components/bootstrap/less/.csscomb.json +++ /dev/null @@ -1,304 +0,0 @@ -{ - "always-semicolon": true, - "block-indent": 2, - "color-case": "lower", - "color-shorthand": true, - "element-case": "lower", - "eof-newline": true, - "leading-zero": false, - "remove-empty-rulesets": true, - "space-after-colon": 1, - "space-after-combinator": 1, - "space-before-selector-delimiter": 0, - "space-between-declarations": "\n", - "space-after-opening-brace": "\n", - "space-before-closing-brace": "\n", - "space-before-colon": 0, - "space-before-combinator": 1, - "space-before-opening-brace": 1, - "strip-spaces": true, - "unitless-zero": true, - "vendor-prefix-align": true, - "sort-order": [ - [ - "position", - "top", - "right", - "bottom", - "left", - "z-index", - "display", - "float", - "width", - "min-width", - "max-width", - "height", - "min-height", - "max-height", - "-webkit-box-sizing", - "-moz-box-sizing", - "box-sizing", - "-webkit-appearance", - "padding", - "padding-top", - "padding-right", - "padding-bottom", - "padding-left", - "margin", - "margin-top", - "margin-right", - "margin-bottom", - "margin-left", - "overflow", - "overflow-x", - "overflow-y", - "-webkit-overflow-scrolling", - "-ms-overflow-x", - "-ms-overflow-y", - "-ms-overflow-style", - "clip", - "clear", - "font", - "font-family", - "font-size", - "font-style", - "font-weight", - "font-variant", - "font-size-adjust", - "font-stretch", - "font-effect", - "font-emphasize", - "font-emphasize-position", - "font-emphasize-style", - "font-smooth", - "-webkit-hyphens", - "-moz-hyphens", - "hyphens", - "line-height", - "color", - "text-align", - "-webkit-text-align-last", - "-moz-text-align-last", - "-ms-text-align-last", - "text-align-last", - "text-emphasis", - "text-emphasis-color", - "text-emphasis-style", - "text-emphasis-position", - "text-decoration", - "text-indent", - "text-justify", - "text-outline", - "-ms-text-overflow", - "text-overflow", - "text-overflow-ellipsis", - "text-overflow-mode", - "text-shadow", - "text-transform", - "text-wrap", - "-webkit-text-size-adjust", - "-ms-text-size-adjust", - "letter-spacing", - "-ms-word-break", - "word-break", - "word-spacing", - "-ms-word-wrap", - "word-wrap", - "-moz-tab-size", - "-o-tab-size", - "tab-size", - "white-space", - "vertical-align", - "list-style", - "list-style-position", - "list-style-type", - "list-style-image", - "pointer-events", - "-ms-touch-action", - "touch-action", - "cursor", - "visibility", - "zoom", - "flex-direction", - "flex-order", - "flex-pack", - "flex-align", - "table-layout", - "empty-cells", - "caption-side", - "border-spacing", - "border-collapse", - "content", - "quotes", - "counter-reset", - "counter-increment", - "resize", - "-webkit-user-select", - "-moz-user-select", - "-ms-user-select", - "-o-user-select", - "user-select", - "nav-index", - "nav-up", - "nav-right", - "nav-down", - "nav-left", - "background", - "background-color", - "background-image", - "-ms-filter:\\'progid:DXImageTransform.Microsoft.gradient", - "filter:progid:DXImageTransform.Microsoft.gradient", - "filter:progid:DXImageTransform.Microsoft.AlphaImageLoader", - "filter", - "background-repeat", - "background-attachment", - "background-position", - "background-position-x", - "background-position-y", - "-webkit-background-clip", - "-moz-background-clip", - "background-clip", - "background-origin", - "-webkit-background-size", - "-moz-background-size", - "-o-background-size", - "background-size", - "border", - "border-color", - "border-style", - "border-width", - "border-top", - "border-top-color", - "border-top-style", - "border-top-width", - "border-right", - "border-right-color", - "border-right-style", - "border-right-width", - "border-bottom", - "border-bottom-color", - "border-bottom-style", - "border-bottom-width", - "border-left", - "border-left-color", - "border-left-style", - "border-left-width", - "border-radius", - "border-top-left-radius", - "border-top-right-radius", - "border-bottom-right-radius", - "border-bottom-left-radius", - "-webkit-border-image", - "-moz-border-image", - "-o-border-image", - "border-image", - "-webkit-border-image-source", - "-moz-border-image-source", - "-o-border-image-source", - "border-image-source", - "-webkit-border-image-slice", - "-moz-border-image-slice", - "-o-border-image-slice", - "border-image-slice", - "-webkit-border-image-width", - "-moz-border-image-width", - "-o-border-image-width", - "border-image-width", - "-webkit-border-image-outset", - "-moz-border-image-outset", - "-o-border-image-outset", - "border-image-outset", - "-webkit-border-image-repeat", - "-moz-border-image-repeat", - "-o-border-image-repeat", - "border-image-repeat", - "outline", - "outline-width", - "outline-style", - "outline-color", - "outline-offset", - "-webkit-box-shadow", - "-moz-box-shadow", - "box-shadow", - "filter:progid:DXImageTransform.Microsoft.Alpha(Opacity", - "-ms-filter:\\'progid:DXImageTransform.Microsoft.Alpha", - "opacity", - "-ms-interpolation-mode", - "-webkit-transition", - "-moz-transition", - "-ms-transition", - "-o-transition", - "transition", - "-webkit-transition-delay", - "-moz-transition-delay", - "-ms-transition-delay", - "-o-transition-delay", - "transition-delay", - "-webkit-transition-timing-function", - "-moz-transition-timing-function", - "-ms-transition-timing-function", - "-o-transition-timing-function", - "transition-timing-function", - "-webkit-transition-duration", - "-moz-transition-duration", - "-ms-transition-duration", - "-o-transition-duration", - "transition-duration", - "-webkit-transition-property", - "-moz-transition-property", - "-ms-transition-property", - "-o-transition-property", - "transition-property", - "-webkit-transform", - "-moz-transform", - "-ms-transform", - "-o-transform", - "transform", - "-webkit-transform-origin", - "-moz-transform-origin", - "-ms-transform-origin", - "-o-transform-origin", - "transform-origin", - "-webkit-animation", - "-moz-animation", - "-ms-animation", - "-o-animation", - "animation", - "-webkit-animation-name", - "-moz-animation-name", - "-ms-animation-name", - "-o-animation-name", - "animation-name", - "-webkit-animation-duration", - "-moz-animation-duration", - "-ms-animation-duration", - "-o-animation-duration", - "animation-duration", - "-webkit-animation-play-state", - "-moz-animation-play-state", - "-ms-animation-play-state", - "-o-animation-play-state", - "animation-play-state", - "-webkit-animation-timing-function", - "-moz-animation-timing-function", - "-ms-animation-timing-function", - "-o-animation-timing-function", - "animation-timing-function", - "-webkit-animation-delay", - "-moz-animation-delay", - "-ms-animation-delay", - "-o-animation-delay", - "animation-delay", - "-webkit-animation-iteration-count", - "-moz-animation-iteration-count", - "-ms-animation-iteration-count", - "-o-animation-iteration-count", - "animation-iteration-count", - "-webkit-animation-direction", - "-moz-animation-direction", - "-ms-animation-direction", - "-o-animation-direction", - "animation-direction" - ] - ] -} diff --git a/admin/bower_components/bootstrap/less/.csslintrc b/admin/bower_components/bootstrap/less/.csslintrc deleted file mode 100644 index 005b862..0000000 --- a/admin/bower_components/bootstrap/less/.csslintrc +++ /dev/null @@ -1,19 +0,0 @@ -{ - "adjoining-classes": false, - "box-sizing": false, - "box-model": false, - "compatible-vendor-prefixes": false, - "floats": false, - "font-sizes": false, - "gradients": false, - "important": false, - "known-properties": false, - "outline-none": false, - "qualified-headings": false, - "regex-selectors": false, - "shorthand": false, - "text-indent": false, - "unique-headings": false, - "universal-selector": false, - "unqualified-attributes": false -} diff --git a/admin/bower_components/bootstrap/less/alerts.less b/admin/bower_components/bootstrap/less/alerts.less deleted file mode 100644 index c4199db..0000000 --- a/admin/bower_components/bootstrap/less/alerts.less +++ /dev/null @@ -1,73 +0,0 @@ -// -// Alerts -// -------------------------------------------------- - - -// Base styles -// ------------------------- - -.alert { - padding: @alert-padding; - margin-bottom: @line-height-computed; - border: 1px solid transparent; - border-radius: @alert-border-radius; - - // Headings for larger alerts - h4 { - margin-top: 0; - // Specified for the h4 to prevent conflicts of changing @headings-color - color: inherit; - } - - // Provide class for links that match alerts - .alert-link { - font-weight: @alert-link-font-weight; - } - - // Improve alignment and spacing of inner content - > p, - > ul { - margin-bottom: 0; - } - - > p + p { - margin-top: 5px; - } -} - -// Dismissible alerts -// -// Expand the right padding and account for the close button's positioning. - -.alert-dismissable, // The misspelled .alert-dismissable was deprecated in 3.2.0. -.alert-dismissible { - padding-right: (@alert-padding + 20); - - // Adjust close link position - .close { - position: relative; - top: -2px; - right: -21px; - color: inherit; - } -} - -// Alternate styles -// -// Generate contextual modifier classes for colorizing the alert. - -.alert-success { - .alert-variant(@alert-success-bg; @alert-success-border; @alert-success-text); -} - -.alert-info { - .alert-variant(@alert-info-bg; @alert-info-border; @alert-info-text); -} - -.alert-warning { - .alert-variant(@alert-warning-bg; @alert-warning-border; @alert-warning-text); -} - -.alert-danger { - .alert-variant(@alert-danger-bg; @alert-danger-border; @alert-danger-text); -} diff --git a/admin/bower_components/bootstrap/less/badges.less b/admin/bower_components/bootstrap/less/badges.less deleted file mode 100644 index 6ee16dc..0000000 --- a/admin/bower_components/bootstrap/less/badges.less +++ /dev/null @@ -1,66 +0,0 @@ -// -// Badges -// -------------------------------------------------- - - -// Base class -.badge { - display: inline-block; - min-width: 10px; - padding: 3px 7px; - font-size: @font-size-small; - font-weight: @badge-font-weight; - color: @badge-color; - line-height: @badge-line-height; - vertical-align: middle; - white-space: nowrap; - text-align: center; - background-color: @badge-bg; - border-radius: @badge-border-radius; - - // Empty badges collapse automatically (not available in IE8) - &:empty { - display: none; - } - - // Quick fix for badges in buttons - .btn & { - position: relative; - top: -1px; - } - - .btn-xs &, - .btn-group-xs > .btn & { - top: 0; - padding: 1px 5px; - } - - // Hover state, but only for links - a& { - &:hover, - &:focus { - color: @badge-link-hover-color; - text-decoration: none; - cursor: pointer; - } - } - - // Account for badges in navs - .list-group-item.active > &, - .nav-pills > .active > a > & { - color: @badge-active-color; - background-color: @badge-active-bg; - } - - .list-group-item > & { - float: right; - } - - .list-group-item > & + & { - margin-right: 5px; - } - - .nav-pills > li > a > & { - margin-left: 3px; - } -} diff --git a/admin/bower_components/bootstrap/less/bootstrap.less b/admin/bower_components/bootstrap/less/bootstrap.less deleted file mode 100644 index f0aa08f..0000000 --- a/admin/bower_components/bootstrap/less/bootstrap.less +++ /dev/null @@ -1,56 +0,0 @@ -/*! - * Bootstrap v3.3.7 (http://getbootstrap.com) - * Copyright 2011-2016 Twitter, Inc. - * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) - */ - -// Core variables and mixins -@import "variables.less"; -@import "mixins.less"; - -// Reset and dependencies -@import "normalize.less"; -@import "print.less"; -@import "glyphicons.less"; - -// Core CSS -@import "scaffolding.less"; -@import "type.less"; -@import "code.less"; -@import "grid.less"; -@import "tables.less"; -@import "forms.less"; -@import "buttons.less"; - -// Components -@import "component-animations.less"; -@import "dropdowns.less"; -@import "button-groups.less"; -@import "input-groups.less"; -@import "navs.less"; -@import "navbar.less"; -@import "breadcrumbs.less"; -@import "pagination.less"; -@import "pager.less"; -@import "labels.less"; -@import "badges.less"; -@import "jumbotron.less"; -@import "thumbnails.less"; -@import "alerts.less"; -@import "progress-bars.less"; -@import "media.less"; -@import "list-group.less"; -@import "panels.less"; -@import "responsive-embed.less"; -@import "wells.less"; -@import "close.less"; - -// Components w/ JavaScript -@import "modals.less"; -@import "tooltip.less"; -@import "popovers.less"; -@import "carousel.less"; - -// Utility classes -@import "utilities.less"; -@import "responsive-utilities.less"; diff --git a/admin/bower_components/bootstrap/less/breadcrumbs.less b/admin/bower_components/bootstrap/less/breadcrumbs.less deleted file mode 100644 index cb01d50..0000000 --- a/admin/bower_components/bootstrap/less/breadcrumbs.less +++ /dev/null @@ -1,26 +0,0 @@ -// -// Breadcrumbs -// -------------------------------------------------- - - -.breadcrumb { - padding: @breadcrumb-padding-vertical @breadcrumb-padding-horizontal; - margin-bottom: @line-height-computed; - list-style: none; - background-color: @breadcrumb-bg; - border-radius: @border-radius-base; - - > li { - display: inline-block; - - + li:before { - content: "@{breadcrumb-separator}\00a0"; // Unicode space added since inline-block means non-collapsing white-space - padding: 0 5px; - color: @breadcrumb-color; - } - } - - > .active { - color: @breadcrumb-active-color; - } -} diff --git a/admin/bower_components/bootstrap/less/button-groups.less b/admin/bower_components/bootstrap/less/button-groups.less deleted file mode 100644 index 16db0c6..0000000 --- a/admin/bower_components/bootstrap/less/button-groups.less +++ /dev/null @@ -1,244 +0,0 @@ -// -// Button groups -// -------------------------------------------------- - -// Make the div behave like a button -.btn-group, -.btn-group-vertical { - position: relative; - display: inline-block; - vertical-align: middle; // match .btn alignment given font-size hack above - > .btn { - position: relative; - float: left; - // Bring the "active" button to the front - &:hover, - &:focus, - &:active, - &.active { - z-index: 2; - } - } -} - -// Prevent double borders when buttons are next to each other -.btn-group { - .btn + .btn, - .btn + .btn-group, - .btn-group + .btn, - .btn-group + .btn-group { - margin-left: -1px; - } -} - -// Optional: Group multiple button groups together for a toolbar -.btn-toolbar { - margin-left: -5px; // Offset the first child's margin - &:extend(.clearfix all); - - .btn, - .btn-group, - .input-group { - float: left; - } - > .btn, - > .btn-group, - > .input-group { - margin-left: 5px; - } -} - -.btn-group > .btn:not(:first-child):not(:last-child):not(.dropdown-toggle) { - border-radius: 0; -} - -// Set corners individual because sometimes a single button can be in a .btn-group and we need :first-child and :last-child to both match -.btn-group > .btn:first-child { - margin-left: 0; - &:not(:last-child):not(.dropdown-toggle) { - .border-right-radius(0); - } -} -// Need .dropdown-toggle since :last-child doesn't apply, given that a .dropdown-menu is used immediately after it -.btn-group > .btn:last-child:not(:first-child), -.btn-group > .dropdown-toggle:not(:first-child) { - .border-left-radius(0); -} - -// Custom edits for including btn-groups within btn-groups (useful for including dropdown buttons within a btn-group) -.btn-group > .btn-group { - float: left; -} -.btn-group > .btn-group:not(:first-child):not(:last-child) > .btn { - border-radius: 0; -} -.btn-group > .btn-group:first-child:not(:last-child) { - > .btn:last-child, - > .dropdown-toggle { - .border-right-radius(0); - } -} -.btn-group > .btn-group:last-child:not(:first-child) > .btn:first-child { - .border-left-radius(0); -} - -// On active and open, don't show outline -.btn-group .dropdown-toggle:active, -.btn-group.open .dropdown-toggle { - outline: 0; -} - - -// Sizing -// -// Remix the default button sizing classes into new ones for easier manipulation. - -.btn-group-xs > .btn { &:extend(.btn-xs); } -.btn-group-sm > .btn { &:extend(.btn-sm); } -.btn-group-lg > .btn { &:extend(.btn-lg); } - - -// Split button dropdowns -// ---------------------- - -// Give the line between buttons some depth -.btn-group > .btn + .dropdown-toggle { - padding-left: 8px; - padding-right: 8px; -} -.btn-group > .btn-lg + .dropdown-toggle { - padding-left: 12px; - padding-right: 12px; -} - -// The clickable button for toggling the menu -// Remove the gradient and set the same inset shadow as the :active state -.btn-group.open .dropdown-toggle { - .box-shadow(inset 0 3px 5px rgba(0,0,0,.125)); - - // Show no shadow for `.btn-link` since it has no other button styles. - &.btn-link { - .box-shadow(none); - } -} - - -// Reposition the caret -.btn .caret { - margin-left: 0; -} -// Carets in other button sizes -.btn-lg .caret { - border-width: @caret-width-large @caret-width-large 0; - border-bottom-width: 0; -} -// Upside down carets for .dropup -.dropup .btn-lg .caret { - border-width: 0 @caret-width-large @caret-width-large; -} - - -// Vertical button groups -// ---------------------- - -.btn-group-vertical { - > .btn, - > .btn-group, - > .btn-group > .btn { - display: block; - float: none; - width: 100%; - max-width: 100%; - } - - // Clear floats so dropdown menus can be properly placed - > .btn-group { - &:extend(.clearfix all); - > .btn { - float: none; - } - } - - > .btn + .btn, - > .btn + .btn-group, - > .btn-group + .btn, - > .btn-group + .btn-group { - margin-top: -1px; - margin-left: 0; - } -} - -.btn-group-vertical > .btn { - &:not(:first-child):not(:last-child) { - border-radius: 0; - } - &:first-child:not(:last-child) { - .border-top-radius(@btn-border-radius-base); - .border-bottom-radius(0); - } - &:last-child:not(:first-child) { - .border-top-radius(0); - .border-bottom-radius(@btn-border-radius-base); - } -} -.btn-group-vertical > .btn-group:not(:first-child):not(:last-child) > .btn { - border-radius: 0; -} -.btn-group-vertical > .btn-group:first-child:not(:last-child) { - > .btn:last-child, - > .dropdown-toggle { - .border-bottom-radius(0); - } -} -.btn-group-vertical > .btn-group:last-child:not(:first-child) > .btn:first-child { - .border-top-radius(0); -} - - -// Justified button groups -// ---------------------- - -.btn-group-justified { - display: table; - width: 100%; - table-layout: fixed; - border-collapse: separate; - > .btn, - > .btn-group { - float: none; - display: table-cell; - width: 1%; - } - > .btn-group .btn { - width: 100%; - } - - > .btn-group .dropdown-menu { - left: auto; - } -} - - -// Checkbox and radio options -// -// In order to support the browser's form validation feedback, powered by the -// `required` attribute, we have to "hide" the inputs via `clip`. We cannot use -// `display: none;` or `visibility: hidden;` as that also hides the popover. -// Simply visually hiding the inputs via `opacity` would leave them clickable in -// certain cases which is prevented by using `clip` and `pointer-events`. -// This way, we ensure a DOM element is visible to position the popover from. -// -// See https://github.com/twbs/bootstrap/pull/12794 and -// https://github.com/twbs/bootstrap/pull/14559 for more information. - -[data-toggle="buttons"] { - > .btn, - > .btn-group > .btn { - input[type="radio"], - input[type="checkbox"] { - position: absolute; - clip: rect(0,0,0,0); - pointer-events: none; - } - } -} diff --git a/admin/bower_components/bootstrap/less/buttons.less b/admin/bower_components/bootstrap/less/buttons.less deleted file mode 100644 index 9cbb8f4..0000000 --- a/admin/bower_components/bootstrap/less/buttons.less +++ /dev/null @@ -1,166 +0,0 @@ -// -// Buttons -// -------------------------------------------------- - - -// Base styles -// -------------------------------------------------- - -.btn { - display: inline-block; - margin-bottom: 0; // For input.btn - font-weight: @btn-font-weight; - text-align: center; - vertical-align: middle; - touch-action: manipulation; - cursor: pointer; - background-image: none; // Reset unusual Firefox-on-Android default style; see https://github.com/necolas/normalize.css/issues/214 - border: 1px solid transparent; - white-space: nowrap; - .button-size(@padding-base-vertical; @padding-base-horizontal; @font-size-base; @line-height-base; @btn-border-radius-base); - .user-select(none); - - &, - &:active, - &.active { - &:focus, - &.focus { - .tab-focus(); - } - } - - &:hover, - &:focus, - &.focus { - color: @btn-default-color; - text-decoration: none; - } - - &:active, - &.active { - outline: 0; - background-image: none; - .box-shadow(inset 0 3px 5px rgba(0,0,0,.125)); - } - - &.disabled, - &[disabled], - fieldset[disabled] & { - cursor: @cursor-disabled; - .opacity(.65); - .box-shadow(none); - } - - a& { - &.disabled, - fieldset[disabled] & { - pointer-events: none; // Future-proof disabling of clicks on `<a>` elements - } - } -} - - -// Alternate buttons -// -------------------------------------------------- - -.btn-default { - .button-variant(@btn-default-color; @btn-default-bg; @btn-default-border); -} -.btn-primary { - .button-variant(@btn-primary-color; @btn-primary-bg; @btn-primary-border); -} -// Success appears as green -.btn-success { - .button-variant(@btn-success-color; @btn-success-bg; @btn-success-border); -} -// Info appears as blue-green -.btn-info { - .button-variant(@btn-info-color; @btn-info-bg; @btn-info-border); -} -// Warning appears as orange -.btn-warning { - .button-variant(@btn-warning-color; @btn-warning-bg; @btn-warning-border); -} -// Danger and error appear as red -.btn-danger { - .button-variant(@btn-danger-color; @btn-danger-bg; @btn-danger-border); -} - - -// Link buttons -// ------------------------- - -// Make a button look and behave like a link -.btn-link { - color: @link-color; - font-weight: normal; - border-radius: 0; - - &, - &:active, - &.active, - &[disabled], - fieldset[disabled] & { - background-color: transparent; - .box-shadow(none); - } - &, - &:hover, - &:focus, - &:active { - border-color: transparent; - } - &:hover, - &:focus { - color: @link-hover-color; - text-decoration: @link-hover-decoration; - background-color: transparent; - } - &[disabled], - fieldset[disabled] & { - &:hover, - &:focus { - color: @btn-link-disabled-color; - text-decoration: none; - } - } -} - - -// Button Sizes -// -------------------------------------------------- - -.btn-lg { - // line-height: ensure even-numbered height of button next to large input - .button-size(@padding-large-vertical; @padding-large-horizontal; @font-size-large; @line-height-large; @btn-border-radius-large); -} -.btn-sm { - // line-height: ensure proper height of button next to small input - .button-size(@padding-small-vertical; @padding-small-horizontal; @font-size-small; @line-height-small; @btn-border-radius-small); -} -.btn-xs { - .button-size(@padding-xs-vertical; @padding-xs-horizontal; @font-size-small; @line-height-small; @btn-border-radius-small); -} - - -// Block button -// -------------------------------------------------- - -.btn-block { - display: block; - width: 100%; -} - -// Vertically space out multiple block buttons -.btn-block + .btn-block { - margin-top: 5px; -} - -// Specificity overrides -input[type="submit"], -input[type="reset"], -input[type="button"] { - &.btn-block { - width: 100%; - } -} diff --git a/admin/bower_components/bootstrap/less/carousel.less b/admin/bower_components/bootstrap/less/carousel.less deleted file mode 100644 index 252011e..0000000 --- a/admin/bower_components/bootstrap/less/carousel.less +++ /dev/null @@ -1,270 +0,0 @@ -// -// Carousel -// -------------------------------------------------- - - -// Wrapper for the slide container and indicators -.carousel { - position: relative; -} - -.carousel-inner { - position: relative; - overflow: hidden; - width: 100%; - - > .item { - display: none; - position: relative; - .transition(.6s ease-in-out left); - - // Account for jankitude on images - > img, - > a > img { - &:extend(.img-responsive); - line-height: 1; - } - - // WebKit CSS3 transforms for supported devices - @media all and (transform-3d), (-webkit-transform-3d) { - .transition-transform(~'0.6s ease-in-out'); - .backface-visibility(~'hidden'); - .perspective(1000px); - - &.next, - &.active.right { - .translate3d(100%, 0, 0); - left: 0; - } - &.prev, - &.active.left { - .translate3d(-100%, 0, 0); - left: 0; - } - &.next.left, - &.prev.right, - &.active { - .translate3d(0, 0, 0); - left: 0; - } - } - } - - > .active, - > .next, - > .prev { - display: block; - } - - > .active { - left: 0; - } - - > .next, - > .prev { - position: absolute; - top: 0; - width: 100%; - } - - > .next { - left: 100%; - } - > .prev { - left: -100%; - } - > .next.left, - > .prev.right { - left: 0; - } - - > .active.left { - left: -100%; - } - > .active.right { - left: 100%; - } - -} - -// Left/right controls for nav -// --------------------------- - -.carousel-control { - position: absolute; - top: 0; - left: 0; - bottom: 0; - width: @carousel-control-width; - .opacity(@carousel-control-opacity); - font-size: @carousel-control-font-size; - color: @carousel-control-color; - text-align: center; - text-shadow: @carousel-text-shadow; - background-color: rgba(0, 0, 0, 0); // Fix IE9 click-thru bug - // We can't have this transition here because WebKit cancels the carousel - // animation if you trip this while in the middle of another animation. - - // Set gradients for backgrounds - &.left { - #gradient > .horizontal(@start-color: rgba(0,0,0,.5); @end-color: rgba(0,0,0,.0001)); - } - &.right { - left: auto; - right: 0; - #gradient > .horizontal(@start-color: rgba(0,0,0,.0001); @end-color: rgba(0,0,0,.5)); - } - - // Hover/focus state - &:hover, - &:focus { - outline: 0; - color: @carousel-control-color; - text-decoration: none; - .opacity(.9); - } - - // Toggles - .icon-prev, - .icon-next, - .glyphicon-chevron-left, - .glyphicon-chevron-right { - position: absolute; - top: 50%; - margin-top: -10px; - z-index: 5; - display: inline-block; - } - .icon-prev, - .glyphicon-chevron-left { - left: 50%; - margin-left: -10px; - } - .icon-next, - .glyphicon-chevron-right { - right: 50%; - margin-right: -10px; - } - .icon-prev, - .icon-next { - width: 20px; - height: 20px; - line-height: 1; - font-family: serif; - } - - - .icon-prev { - &:before { - content: '\2039';// SINGLE LEFT-POINTING ANGLE QUOTATION MARK (U+2039) - } - } - .icon-next { - &:before { - content: '\203a';// SINGLE RIGHT-POINTING ANGLE QUOTATION MARK (U+203A) - } - } -} - -// Optional indicator pips -// -// Add an unordered list with the following class and add a list item for each -// slide your carousel holds. - -.carousel-indicators { - position: absolute; - bottom: 10px; - left: 50%; - z-index: 15; - width: 60%; - margin-left: -30%; - padding-left: 0; - list-style: none; - text-align: center; - - li { - display: inline-block; - width: 10px; - height: 10px; - margin: 1px; - text-indent: -999px; - border: 1px solid @carousel-indicator-border-color; - border-radius: 10px; - cursor: pointer; - - // IE8-9 hack for event handling - // - // Internet Explorer 8-9 does not support clicks on elements without a set - // `background-color`. We cannot use `filter` since that's not viewed as a - // background color by the browser. Thus, a hack is needed. - // See https://developer.mozilla.org/en-US/docs/Web/Events/click#Internet_Explorer - // - // For IE8, we set solid black as it doesn't support `rgba()`. For IE9, we - // set alpha transparency for the best results possible. - background-color: #000 \9; // IE8 - background-color: rgba(0,0,0,0); // IE9 - } - .active { - margin: 0; - width: 12px; - height: 12px; - background-color: @carousel-indicator-active-bg; - } -} - -// Optional captions -// ----------------------------- -// Hidden by default for smaller viewports -.carousel-caption { - position: absolute; - left: 15%; - right: 15%; - bottom: 20px; - z-index: 10; - padding-top: 20px; - padding-bottom: 20px; - color: @carousel-caption-color; - text-align: center; - text-shadow: @carousel-text-shadow; - & .btn { - text-shadow: none; // No shadow for button elements in carousel-caption - } -} - - -// Scale up controls for tablets and up -@media screen and (min-width: @screen-sm-min) { - - // Scale up the controls a smidge - .carousel-control { - .glyphicon-chevron-left, - .glyphicon-chevron-right, - .icon-prev, - .icon-next { - width: (@carousel-control-font-size * 1.5); - height: (@carousel-control-font-size * 1.5); - margin-top: (@carousel-control-font-size / -2); - font-size: (@carousel-control-font-size * 1.5); - } - .glyphicon-chevron-left, - .icon-prev { - margin-left: (@carousel-control-font-size / -2); - } - .glyphicon-chevron-right, - .icon-next { - margin-right: (@carousel-control-font-size / -2); - } - } - - // Show and left align the captions - .carousel-caption { - left: 20%; - right: 20%; - padding-bottom: 30px; - } - - // Move up the indicators - .carousel-indicators { - bottom: 20px; - } -} diff --git a/admin/bower_components/bootstrap/less/close.less b/admin/bower_components/bootstrap/less/close.less deleted file mode 100644 index 6d5bfe0..0000000 --- a/admin/bower_components/bootstrap/less/close.less +++ /dev/null @@ -1,34 +0,0 @@ -// -// Close icons -// -------------------------------------------------- - - -.close { - float: right; - font-size: (@font-size-base * 1.5); - font-weight: @close-font-weight; - line-height: 1; - color: @close-color; - text-shadow: @close-text-shadow; - .opacity(.2); - - &:hover, - &:focus { - color: @close-color; - text-decoration: none; - cursor: pointer; - .opacity(.5); - } - - // Additional properties for button version - // iOS requires the button element instead of an anchor tag. - // If you want the anchor version, it requires `href="#"`. - // See https://developer.mozilla.org/en-US/docs/Web/Events/click#Safari_Mobile - button& { - padding: 0; - cursor: pointer; - background: transparent; - border: 0; - -webkit-appearance: none; - } -} diff --git a/admin/bower_components/bootstrap/less/code.less b/admin/bower_components/bootstrap/less/code.less deleted file mode 100644 index a08b4d4..0000000 --- a/admin/bower_components/bootstrap/less/code.less +++ /dev/null @@ -1,69 +0,0 @@ -// -// Code (inline and block) -// -------------------------------------------------- - - -// Inline and block code styles -code, -kbd, -pre, -samp { - font-family: @font-family-monospace; -} - -// Inline code -code { - padding: 2px 4px; - font-size: 90%; - color: @code-color; - background-color: @code-bg; - border-radius: @border-radius-base; -} - -// User input typically entered via keyboard -kbd { - padding: 2px 4px; - font-size: 90%; - color: @kbd-color; - background-color: @kbd-bg; - border-radius: @border-radius-small; - box-shadow: inset 0 -1px 0 rgba(0,0,0,.25); - - kbd { - padding: 0; - font-size: 100%; - font-weight: bold; - box-shadow: none; - } -} - -// Blocks of code -pre { - display: block; - padding: ((@line-height-computed - 1) / 2); - margin: 0 0 (@line-height-computed / 2); - font-size: (@font-size-base - 1); // 14px to 13px - line-height: @line-height-base; - word-break: break-all; - word-wrap: break-word; - color: @pre-color; - background-color: @pre-bg; - border: 1px solid @pre-border-color; - border-radius: @border-radius-base; - - // Account for some code outputs that place code tags in pre tags - code { - padding: 0; - font-size: inherit; - color: inherit; - white-space: pre-wrap; - background-color: transparent; - border-radius: 0; - } -} - -// Enable scrollable blocks of code -.pre-scrollable { - max-height: @pre-scrollable-max-height; - overflow-y: scroll; -} diff --git a/admin/bower_components/bootstrap/less/component-animations.less b/admin/bower_components/bootstrap/less/component-animations.less deleted file mode 100644 index 0bcee91..0000000 --- a/admin/bower_components/bootstrap/less/component-animations.less +++ /dev/null @@ -1,33 +0,0 @@ -// -// Component animations -// -------------------------------------------------- - -// Heads up! -// -// We don't use the `.opacity()` mixin here since it causes a bug with text -// fields in IE7-8. Source: https://github.com/twbs/bootstrap/pull/3552. - -.fade { - opacity: 0; - .transition(opacity .15s linear); - &.in { - opacity: 1; - } -} - -.collapse { - display: none; - - &.in { display: block; } - tr&.in { display: table-row; } - tbody&.in { display: table-row-group; } -} - -.collapsing { - position: relative; - height: 0; - overflow: hidden; - .transition-property(~"height, visibility"); - .transition-duration(.35s); - .transition-timing-function(ease); -} diff --git a/admin/bower_components/bootstrap/less/dropdowns.less b/admin/bower_components/bootstrap/less/dropdowns.less deleted file mode 100644 index f6876c1..0000000 --- a/admin/bower_components/bootstrap/less/dropdowns.less +++ /dev/null @@ -1,216 +0,0 @@ -// -// Dropdown menus -// -------------------------------------------------- - - -// Dropdown arrow/caret -.caret { - display: inline-block; - width: 0; - height: 0; - margin-left: 2px; - vertical-align: middle; - border-top: @caret-width-base dashed; - border-top: @caret-width-base solid ~"\9"; // IE8 - border-right: @caret-width-base solid transparent; - border-left: @caret-width-base solid transparent; -} - -// The dropdown wrapper (div) -.dropup, -.dropdown { - position: relative; -} - -// Prevent the focus on the dropdown toggle when closing dropdowns -.dropdown-toggle:focus { - outline: 0; -} - -// The dropdown menu (ul) -.dropdown-menu { - position: absolute; - top: 100%; - left: 0; - z-index: @zindex-dropdown; - display: none; // none by default, but block on "open" of the menu - float: left; - min-width: 160px; - padding: 5px 0; - margin: 2px 0 0; // override default ul - list-style: none; - font-size: @font-size-base; - text-align: left; // Ensures proper alignment if parent has it changed (e.g., modal footer) - background-color: @dropdown-bg; - border: 1px solid @dropdown-fallback-border; // IE8 fallback - border: 1px solid @dropdown-border; - border-radius: @border-radius-base; - .box-shadow(0 6px 12px rgba(0,0,0,.175)); - background-clip: padding-box; - - // Aligns the dropdown menu to right - // - // Deprecated as of 3.1.0 in favor of `.dropdown-menu-[dir]` - &.pull-right { - right: 0; - left: auto; - } - - // Dividers (basically an hr) within the dropdown - .divider { - .nav-divider(@dropdown-divider-bg); - } - - // Links within the dropdown menu - > li > a { - display: block; - padding: 3px 20px; - clear: both; - font-weight: normal; - line-height: @line-height-base; - color: @dropdown-link-color; - white-space: nowrap; // prevent links from randomly breaking onto new lines - } -} - -// Hover/Focus state -.dropdown-menu > li > a { - &:hover, - &:focus { - text-decoration: none; - color: @dropdown-link-hover-color; - background-color: @dropdown-link-hover-bg; - } -} - -// Active state -.dropdown-menu > .active > a { - &, - &:hover, - &:focus { - color: @dropdown-link-active-color; - text-decoration: none; - outline: 0; - background-color: @dropdown-link-active-bg; - } -} - -// Disabled state -// -// Gray out text and ensure the hover/focus state remains gray - -.dropdown-menu > .disabled > a { - &, - &:hover, - &:focus { - color: @dropdown-link-disabled-color; - } - - // Nuke hover/focus effects - &:hover, - &:focus { - text-decoration: none; - background-color: transparent; - background-image: none; // Remove CSS gradient - .reset-filter(); - cursor: @cursor-disabled; - } -} - -// Open state for the dropdown -.open { - // Show the menu - > .dropdown-menu { - display: block; - } - - // Remove the outline when :focus is triggered - > a { - outline: 0; - } -} - -// Menu positioning -// -// Add extra class to `.dropdown-menu` to flip the alignment of the dropdown -// menu with the parent. -.dropdown-menu-right { - left: auto; // Reset the default from `.dropdown-menu` - right: 0; -} -// With v3, we enabled auto-flipping if you have a dropdown within a right -// aligned nav component. To enable the undoing of that, we provide an override -// to restore the default dropdown menu alignment. -// -// This is only for left-aligning a dropdown menu within a `.navbar-right` or -// `.pull-right` nav component. -.dropdown-menu-left { - left: 0; - right: auto; -} - -// Dropdown section headers -.dropdown-header { - display: block; - padding: 3px 20px; - font-size: @font-size-small; - line-height: @line-height-base; - color: @dropdown-header-color; - white-space: nowrap; // as with > li > a -} - -// Backdrop to catch body clicks on mobile, etc. -.dropdown-backdrop { - position: fixed; - left: 0; - right: 0; - bottom: 0; - top: 0; - z-index: (@zindex-dropdown - 10); -} - -// Right aligned dropdowns -.pull-right > .dropdown-menu { - right: 0; - left: auto; -} - -// Allow for dropdowns to go bottom up (aka, dropup-menu) -// -// Just add .dropup after the standard .dropdown class and you're set, bro. -// TODO: abstract this so that the navbar fixed styles are not placed here? - -.dropup, -.navbar-fixed-bottom .dropdown { - // Reverse the caret - .caret { - border-top: 0; - border-bottom: @caret-width-base dashed; - border-bottom: @caret-width-base solid ~"\9"; // IE8 - content: ""; - } - // Different positioning for bottom up menu - .dropdown-menu { - top: auto; - bottom: 100%; - margin-bottom: 2px; - } -} - - -// Component alignment -// -// Reiterate per navbar.less and the modified component alignment there. - -@media (min-width: @grid-float-breakpoint) { - .navbar-right { - .dropdown-menu { - .dropdown-menu-right(); - } - // Necessary for overrides of the default right aligned menu. - // Will remove come v4 in all likelihood. - .dropdown-menu-left { - .dropdown-menu-left(); - } - } -} diff --git a/admin/bower_components/bootstrap/less/forms.less b/admin/bower_components/bootstrap/less/forms.less deleted file mode 100644 index 9377d38..0000000 --- a/admin/bower_components/bootstrap/less/forms.less +++ /dev/null @@ -1,613 +0,0 @@ -// -// Forms -// -------------------------------------------------- - - -// Normalize non-controls -// -// Restyle and baseline non-control form elements. - -fieldset { - padding: 0; - margin: 0; - border: 0; - // Chrome and Firefox set a `min-width: min-content;` on fieldsets, - // so we reset that to ensure it behaves more like a standard block element. - // See https://github.com/twbs/bootstrap/issues/12359. - min-width: 0; -} - -legend { - display: block; - width: 100%; - padding: 0; - margin-bottom: @line-height-computed; - font-size: (@font-size-base * 1.5); - line-height: inherit; - color: @legend-color; - border: 0; - border-bottom: 1px solid @legend-border-color; -} - -label { - display: inline-block; - max-width: 100%; // Force IE8 to wrap long content (see https://github.com/twbs/bootstrap/issues/13141) - margin-bottom: 5px; - font-weight: bold; -} - - -// Normalize form controls -// -// While most of our form styles require extra classes, some basic normalization -// is required to ensure optimum display with or without those classes to better -// address browser inconsistencies. - -// Override content-box in Normalize (* isn't specific enough) -input[type="search"] { - .box-sizing(border-box); -} - -// Position radios and checkboxes better -input[type="radio"], -input[type="checkbox"] { - margin: 4px 0 0; - margin-top: 1px \9; // IE8-9 - line-height: normal; -} - -input[type="file"] { - display: block; -} - -// Make range inputs behave like textual form controls -input[type="range"] { - display: block; - width: 100%; -} - -// Make multiple select elements height not fixed -select[multiple], -select[size] { - height: auto; -} - -// Focus for file, radio, and checkbox -input[type="file"]:focus, -input[type="radio"]:focus, -input[type="checkbox"]:focus { - .tab-focus(); -} - -// Adjust output element -output { - display: block; - padding-top: (@padding-base-vertical + 1); - font-size: @font-size-base; - line-height: @line-height-base; - color: @input-color; -} - - -// Common form controls -// -// Shared size and type resets for form controls. Apply `.form-control` to any -// of the following form controls: -// -// select -// textarea -// input[type="text"] -// input[type="password"] -// input[type="datetime"] -// input[type="datetime-local"] -// input[type="date"] -// input[type="month"] -// input[type="time"] -// input[type="week"] -// input[type="number"] -// input[type="email"] -// input[type="url"] -// input[type="search"] -// input[type="tel"] -// input[type="color"] - -.form-control { - display: block; - width: 100%; - height: @input-height-base; // Make inputs at least the height of their button counterpart (base line-height + padding + border) - padding: @padding-base-vertical @padding-base-horizontal; - font-size: @font-size-base; - line-height: @line-height-base; - color: @input-color; - background-color: @input-bg; - background-image: none; // Reset unusual Firefox-on-Android default style; see https://github.com/necolas/normalize.css/issues/214 - border: 1px solid @input-border; - border-radius: @input-border-radius; // Note: This has no effect on <select>s in some browsers, due to the limited stylability of <select>s in CSS. - .box-shadow(inset 0 1px 1px rgba(0,0,0,.075)); - .transition(~"border-color ease-in-out .15s, box-shadow ease-in-out .15s"); - - // Customize the `:focus` state to imitate native WebKit styles. - .form-control-focus(); - - // Placeholder - .placeholder(); - - // Unstyle the caret on `<select>`s in IE10+. - &::-ms-expand { - border: 0; - background-color: transparent; - } - - // Disabled and read-only inputs - // - // HTML5 says that controls under a fieldset > legend:first-child won't be - // disabled if the fieldset is disabled. Due to implementation difficulty, we - // don't honor that edge case; we style them as disabled anyway. - &[disabled], - &[readonly], - fieldset[disabled] & { - background-color: @input-bg-disabled; - opacity: 1; // iOS fix for unreadable disabled content; see https://github.com/twbs/bootstrap/issues/11655 - } - - &[disabled], - fieldset[disabled] & { - cursor: @cursor-disabled; - } - - // Reset height for `textarea`s - textarea& { - height: auto; - } -} - - -// Search inputs in iOS -// -// This overrides the extra rounded corners on search inputs in iOS so that our -// `.form-control` class can properly style them. Note that this cannot simply -// be added to `.form-control` as it's not specific enough. For details, see -// https://github.com/twbs/bootstrap/issues/11586. - -input[type="search"] { - -webkit-appearance: none; -} - - -// Special styles for iOS temporal inputs -// -// In Mobile Safari, setting `display: block` on temporal inputs causes the -// text within the input to become vertically misaligned. As a workaround, we -// set a pixel line-height that matches the given height of the input, but only -// for Safari. See https://bugs.webkit.org/show_bug.cgi?id=139848 -// -// Note that as of 9.3, iOS doesn't support `week`. - -@media screen and (-webkit-min-device-pixel-ratio: 0) { - input[type="date"], - input[type="time"], - input[type="datetime-local"], - input[type="month"] { - &.form-control { - line-height: @input-height-base; - } - - &.input-sm, - .input-group-sm & { - line-height: @input-height-small; - } - - &.input-lg, - .input-group-lg & { - line-height: @input-height-large; - } - } -} - - -// Form groups -// -// Designed to help with the organization and spacing of vertical forms. For -// horizontal forms, use the predefined grid classes. - -.form-group { - margin-bottom: @form-group-margin-bottom; -} - - -// Checkboxes and radios -// -// Indent the labels to position radios/checkboxes as hanging controls. - -.radio, -.checkbox { - position: relative; - display: block; - margin-top: 10px; - margin-bottom: 10px; - - label { - min-height: @line-height-computed; // Ensure the input doesn't jump when there is no text - padding-left: 20px; - margin-bottom: 0; - font-weight: normal; - cursor: pointer; - } -} -.radio input[type="radio"], -.radio-inline input[type="radio"], -.checkbox input[type="checkbox"], -.checkbox-inline input[type="checkbox"] { - position: absolute; - margin-left: -20px; - margin-top: 4px \9; -} - -.radio + .radio, -.checkbox + .checkbox { - margin-top: -5px; // Move up sibling radios or checkboxes for tighter spacing -} - -// Radios and checkboxes on same line -.radio-inline, -.checkbox-inline { - position: relative; - display: inline-block; - padding-left: 20px; - margin-bottom: 0; - vertical-align: middle; - font-weight: normal; - cursor: pointer; -} -.radio-inline + .radio-inline, -.checkbox-inline + .checkbox-inline { - margin-top: 0; - margin-left: 10px; // space out consecutive inline controls -} - -// Apply same disabled cursor tweak as for inputs -// Some special care is needed because <label>s don't inherit their parent's `cursor`. -// -// Note: Neither radios nor checkboxes can be readonly. -input[type="radio"], -input[type="checkbox"] { - &[disabled], - &.disabled, - fieldset[disabled] & { - cursor: @cursor-disabled; - } -} -// These classes are used directly on <label>s -.radio-inline, -.checkbox-inline { - &.disabled, - fieldset[disabled] & { - cursor: @cursor-disabled; - } -} -// These classes are used on elements with <label> descendants -.radio, -.checkbox { - &.disabled, - fieldset[disabled] & { - label { - cursor: @cursor-disabled; - } - } -} - - -// Static form control text -// -// Apply class to a `p` element to make any string of text align with labels in -// a horizontal form layout. - -.form-control-static { - // Size it appropriately next to real form controls - padding-top: (@padding-base-vertical + 1); - padding-bottom: (@padding-base-vertical + 1); - // Remove default margin from `p` - margin-bottom: 0; - min-height: (@line-height-computed + @font-size-base); - - &.input-lg, - &.input-sm { - padding-left: 0; - padding-right: 0; - } -} - - -// Form control sizing -// -// Build on `.form-control` with modifier classes to decrease or increase the -// height and font-size of form controls. -// -// The `.form-group-* form-control` variations are sadly duplicated to avoid the -// issue documented in https://github.com/twbs/bootstrap/issues/15074. - -.input-sm { - .input-size(@input-height-small; @padding-small-vertical; @padding-small-horizontal; @font-size-small; @line-height-small; @input-border-radius-small); -} -.form-group-sm { - .form-control { - height: @input-height-small; - padding: @padding-small-vertical @padding-small-horizontal; - font-size: @font-size-small; - line-height: @line-height-small; - border-radius: @input-border-radius-small; - } - select.form-control { - height: @input-height-small; - line-height: @input-height-small; - } - textarea.form-control, - select[multiple].form-control { - height: auto; - } - .form-control-static { - height: @input-height-small; - min-height: (@line-height-computed + @font-size-small); - padding: (@padding-small-vertical + 1) @padding-small-horizontal; - font-size: @font-size-small; - line-height: @line-height-small; - } -} - -.input-lg { - .input-size(@input-height-large; @padding-large-vertical; @padding-large-horizontal; @font-size-large; @line-height-large; @input-border-radius-large); -} -.form-group-lg { - .form-control { - height: @input-height-large; - padding: @padding-large-vertical @padding-large-horizontal; - font-size: @font-size-large; - line-height: @line-height-large; - border-radius: @input-border-radius-large; - } - select.form-control { - height: @input-height-large; - line-height: @input-height-large; - } - textarea.form-control, - select[multiple].form-control { - height: auto; - } - .form-control-static { - height: @input-height-large; - min-height: (@line-height-computed + @font-size-large); - padding: (@padding-large-vertical + 1) @padding-large-horizontal; - font-size: @font-size-large; - line-height: @line-height-large; - } -} - - -// Form control feedback states -// -// Apply contextual and semantic states to individual form controls. - -.has-feedback { - // Enable absolute positioning - position: relative; - - // Ensure icons don't overlap text - .form-control { - padding-right: (@input-height-base * 1.25); - } -} -// Feedback icon (requires .glyphicon classes) -.form-control-feedback { - position: absolute; - top: 0; - right: 0; - z-index: 2; // Ensure icon is above input groups - display: block; - width: @input-height-base; - height: @input-height-base; - line-height: @input-height-base; - text-align: center; - pointer-events: none; -} -.input-lg + .form-control-feedback, -.input-group-lg + .form-control-feedback, -.form-group-lg .form-control + .form-control-feedback { - width: @input-height-large; - height: @input-height-large; - line-height: @input-height-large; -} -.input-sm + .form-control-feedback, -.input-group-sm + .form-control-feedback, -.form-group-sm .form-control + .form-control-feedback { - width: @input-height-small; - height: @input-height-small; - line-height: @input-height-small; -} - -// Feedback states -.has-success { - .form-control-validation(@state-success-text; @state-success-text; @state-success-bg); -} -.has-warning { - .form-control-validation(@state-warning-text; @state-warning-text; @state-warning-bg); -} -.has-error { - .form-control-validation(@state-danger-text; @state-danger-text; @state-danger-bg); -} - -// Reposition feedback icon if input has visible label above -.has-feedback label { - - & ~ .form-control-feedback { - top: (@line-height-computed + 5); // Height of the `label` and its margin - } - &.sr-only ~ .form-control-feedback { - top: 0; - } -} - - -// Help text -// -// Apply to any element you wish to create light text for placement immediately -// below a form control. Use for general help, formatting, or instructional text. - -.help-block { - display: block; // account for any element using help-block - margin-top: 5px; - margin-bottom: 10px; - color: lighten(@text-color, 25%); // lighten the text some for contrast -} - - -// Inline forms -// -// Make forms appear inline(-block) by adding the `.form-inline` class. Inline -// forms begin stacked on extra small (mobile) devices and then go inline when -// viewports reach <768px. -// -// Requires wrapping inputs and labels with `.form-group` for proper display of -// default HTML form controls and our custom form controls (e.g., input groups). -// -// Heads up! This is mixin-ed into `.navbar-form` in navbars.less. - -.form-inline { - - // Kick in the inline - @media (min-width: @screen-sm-min) { - // Inline-block all the things for "inline" - .form-group { - display: inline-block; - margin-bottom: 0; - vertical-align: middle; - } - - // In navbar-form, allow folks to *not* use `.form-group` - .form-control { - display: inline-block; - width: auto; // Prevent labels from stacking above inputs in `.form-group` - vertical-align: middle; - } - - // Make static controls behave like regular ones - .form-control-static { - display: inline-block; - } - - .input-group { - display: inline-table; - vertical-align: middle; - - .input-group-addon, - .input-group-btn, - .form-control { - width: auto; - } - } - - // Input groups need that 100% width though - .input-group > .form-control { - width: 100%; - } - - .control-label { - margin-bottom: 0; - vertical-align: middle; - } - - // Remove default margin on radios/checkboxes that were used for stacking, and - // then undo the floating of radios and checkboxes to match. - .radio, - .checkbox { - display: inline-block; - margin-top: 0; - margin-bottom: 0; - vertical-align: middle; - - label { - padding-left: 0; - } - } - .radio input[type="radio"], - .checkbox input[type="checkbox"] { - position: relative; - margin-left: 0; - } - - // Re-override the feedback icon. - .has-feedback .form-control-feedback { - top: 0; - } - } -} - - -// Horizontal forms -// -// Horizontal forms are built on grid classes and allow you to create forms with -// labels on the left and inputs on the right. - -.form-horizontal { - - // Consistent vertical alignment of radios and checkboxes - // - // Labels also get some reset styles, but that is scoped to a media query below. - .radio, - .checkbox, - .radio-inline, - .checkbox-inline { - margin-top: 0; - margin-bottom: 0; - padding-top: (@padding-base-vertical + 1); // Default padding plus a border - } - // Account for padding we're adding to ensure the alignment and of help text - // and other content below items - .radio, - .checkbox { - min-height: (@line-height-computed + (@padding-base-vertical + 1)); - } - - // Make form groups behave like rows - .form-group { - .make-row(); - } - - // Reset spacing and right align labels, but scope to media queries so that - // labels on narrow viewports stack the same as a default form example. - @media (min-width: @screen-sm-min) { - .control-label { - text-align: right; - margin-bottom: 0; - padding-top: (@padding-base-vertical + 1); // Default padding plus a border - } - } - - // Validation states - // - // Reposition the icon because it's now within a grid column and columns have - // `position: relative;` on them. Also accounts for the grid gutter padding. - .has-feedback .form-control-feedback { - right: floor((@grid-gutter-width / 2)); - } - - // Form group sizes - // - // Quick utility class for applying `.input-lg` and `.input-sm` styles to the - // inputs and labels within a `.form-group`. - .form-group-lg { - @media (min-width: @screen-sm-min) { - .control-label { - padding-top: (@padding-large-vertical + 1); - font-size: @font-size-large; - } - } - } - .form-group-sm { - @media (min-width: @screen-sm-min) { - .control-label { - padding-top: (@padding-small-vertical + 1); - font-size: @font-size-small; - } - } - } -} diff --git a/admin/bower_components/bootstrap/less/glyphicons.less b/admin/bower_components/bootstrap/less/glyphicons.less deleted file mode 100644 index 7bc5852..0000000 --- a/admin/bower_components/bootstrap/less/glyphicons.less +++ /dev/null @@ -1,305 +0,0 @@ -// -// Glyphicons for Bootstrap -// -// Since icons are fonts, they can be placed anywhere text is placed and are -// thus automatically sized to match the surrounding child. To use, create an -// inline element with the appropriate classes, like so: -// -// <a href="#"><span class="glyphicon glyphicon-star"></span> Star</a> - -// Import the fonts -@font-face { - font-family: 'Glyphicons Halflings'; - src: url('@{icon-font-path}@{icon-font-name}.eot'); - src: url('@{icon-font-path}@{icon-font-name}.eot?#iefix') format('embedded-opentype'), - url('@{icon-font-path}@{icon-font-name}.woff2') format('woff2'), - url('@{icon-font-path}@{icon-font-name}.woff') format('woff'), - url('@{icon-font-path}@{icon-font-name}.ttf') format('truetype'), - url('@{icon-font-path}@{icon-font-name}.svg#@{icon-font-svg-id}') format('svg'); -} - -// Catchall baseclass -.glyphicon { - position: relative; - top: 1px; - display: inline-block; - font-family: 'Glyphicons Halflings'; - font-style: normal; - font-weight: normal; - line-height: 1; - -webkit-font-smoothing: antialiased; - -moz-osx-font-smoothing: grayscale; -} - -// Individual icons -.glyphicon-asterisk { &:before { content: "\002a"; } } -.glyphicon-plus { &:before { content: "\002b"; } } -.glyphicon-euro, -.glyphicon-eur { &:before { content: "\20ac"; } } -.glyphicon-minus { &:before { content: "\2212"; } } -.glyphicon-cloud { &:before { content: "\2601"; } } -.glyphicon-envelope { &:before { content: "\2709"; } } -.glyphicon-pencil { &:before { content: "\270f"; } } -.glyphicon-glass { &:before { content: "\e001"; } } -.glyphicon-music { &:before { content: "\e002"; } } -.glyphicon-search { &:before { content: "\e003"; } } -.glyphicon-heart { &:before { content: "\e005"; } } -.glyphicon-star { &:before { content: "\e006"; } } -.glyphicon-star-empty { &:before { content: "\e007"; } } -.glyphicon-user { &:before { content: "\e008"; } } -.glyphicon-film { &:before { content: "\e009"; } } -.glyphicon-th-large { &:before { content: "\e010"; } } -.glyphicon-th { &:before { content: "\e011"; } } -.glyphicon-th-list { &:before { content: "\e012"; } } -.glyphicon-ok { &:before { content: "\e013"; } } -.glyphicon-remove { &:before { content: "\e014"; } } -.glyphicon-zoom-in { &:before { content: "\e015"; } } -.glyphicon-zoom-out { &:before { content: "\e016"; } } -.glyphicon-off { &:before { content: "\e017"; } } -.glyphicon-signal { &:before { content: "\e018"; } } -.glyphicon-cog { &:before { content: "\e019"; } } -.glyphicon-trash { &:before { content: "\e020"; } } -.glyphicon-home { &:before { content: "\e021"; } } -.glyphicon-file { &:before { content: "\e022"; } } -.glyphicon-time { &:before { content: "\e023"; } } -.glyphicon-road { &:before { content: "\e024"; } } -.glyphicon-download-alt { &:before { content: "\e025"; } } -.glyphicon-download { &:before { content: "\e026"; } } -.glyphicon-upload { &:before { content: "\e027"; } } -.glyphicon-inbox { &:before { content: "\e028"; } } -.glyphicon-play-circle { &:before { content: "\e029"; } } -.glyphicon-repeat { &:before { content: "\e030"; } } -.glyphicon-refresh { &:before { content: "\e031"; } } -.glyphicon-list-alt { &:before { content: "\e032"; } } -.glyphicon-lock { &:before { content: "\e033"; } } -.glyphicon-flag { &:before { content: "\e034"; } } -.glyphicon-headphones { &:before { content: "\e035"; } } -.glyphicon-volume-off { &:before { content: "\e036"; } } -.glyphicon-volume-down { &:before { content: "\e037"; } } -.glyphicon-volume-up { &:before { content: "\e038"; } } -.glyphicon-qrcode { &:before { content: "\e039"; } } -.glyphicon-barcode { &:before { content: "\e040"; } } -.glyphicon-tag { &:before { content: "\e041"; } } -.glyphicon-tags { &:before { content: "\e042"; } } -.glyphicon-book { &:before { content: "\e043"; } } -.glyphicon-bookmark { &:before { content: "\e044"; } } -.glyphicon-print { &:before { content: "\e045"; } } -.glyphicon-camera { &:before { content: "\e046"; } } -.glyphicon-font { &:before { content: "\e047"; } } -.glyphicon-bold { &:before { content: "\e048"; } } -.glyphicon-italic { &:before { content: "\e049"; } } -.glyphicon-text-height { &:before { content: "\e050"; } } -.glyphicon-text-width { &:before { content: "\e051"; } } -.glyphicon-align-left { &:before { content: "\e052"; } } -.glyphicon-align-center { &:before { content: "\e053"; } } -.glyphicon-align-right { &:before { content: "\e054"; } } -.glyphicon-align-justify { &:before { content: "\e055"; } } -.glyphicon-list { &:before { content: "\e056"; } } -.glyphicon-indent-left { &:before { content: "\e057"; } } -.glyphicon-indent-right { &:before { content: "\e058"; } } -.glyphicon-facetime-video { &:before { content: "\e059"; } } -.glyphicon-picture { &:before { content: "\e060"; } } -.glyphicon-map-marker { &:before { content: "\e062"; } } -.glyphicon-adjust { &:before { content: "\e063"; } } -.glyphicon-tint { &:before { content: "\e064"; } } -.glyphicon-edit { &:before { content: "\e065"; } } -.glyphicon-share { &:before { content: "\e066"; } } -.glyphicon-check { &:before { content: "\e067"; } } -.glyphicon-move { &:before { content: "\e068"; } } -.glyphicon-step-backward { &:before { content: "\e069"; } } -.glyphicon-fast-backward { &:before { content: "\e070"; } } -.glyphicon-backward { &:before { content: "\e071"; } } -.glyphicon-play { &:before { content: "\e072"; } } -.glyphicon-pause { &:before { content: "\e073"; } } -.glyphicon-stop { &:before { content: "\e074"; } } -.glyphicon-forward { &:before { content: "\e075"; } } -.glyphicon-fast-forward { &:before { content: "\e076"; } } -.glyphicon-step-forward { &:before { content: "\e077"; } } -.glyphicon-eject { &:before { content: "\e078"; } } -.glyphicon-chevron-left { &:before { content: "\e079"; } } -.glyphicon-chevron-right { &:before { content: "\e080"; } } -.glyphicon-plus-sign { &:before { content: "\e081"; } } -.glyphicon-minus-sign { &:before { content: "\e082"; } } -.glyphicon-remove-sign { &:before { content: "\e083"; } } -.glyphicon-ok-sign { &:before { content: "\e084"; } } -.glyphicon-question-sign { &:before { content: "\e085"; } } -.glyphicon-info-sign { &:before { content: "\e086"; } } -.glyphicon-screenshot { &:before { content: "\e087"; } } -.glyphicon-remove-circle { &:before { content: "\e088"; } } -.glyphicon-ok-circle { &:before { content: "\e089"; } } -.glyphicon-ban-circle { &:before { content: "\e090"; } } -.glyphicon-arrow-left { &:before { content: "\e091"; } } -.glyphicon-arrow-right { &:before { content: "\e092"; } } -.glyphicon-arrow-up { &:before { content: "\e093"; } } -.glyphicon-arrow-down { &:before { content: "\e094"; } } -.glyphicon-share-alt { &:before { content: "\e095"; } } -.glyphicon-resize-full { &:before { content: "\e096"; } } -.glyphicon-resize-small { &:before { content: "\e097"; } } -.glyphicon-exclamation-sign { &:before { content: "\e101"; } } -.glyphicon-gift { &:before { content: "\e102"; } } -.glyphicon-leaf { &:before { content: "\e103"; } } -.glyphicon-fire { &:before { content: "\e104"; } } -.glyphicon-eye-open { &:before { content: "\e105"; } } -.glyphicon-eye-close { &:before { content: "\e106"; } } -.glyphicon-warning-sign { &:before { content: "\e107"; } } -.glyphicon-plane { &:before { content: "\e108"; } } -.glyphicon-calendar { &:before { content: "\e109"; } } -.glyphicon-random { &:before { content: "\e110"; } } -.glyphicon-comment { &:before { content: "\e111"; } } -.glyphicon-magnet { &:before { content: "\e112"; } } -.glyphicon-chevron-up { &:before { content: "\e113"; } } -.glyphicon-chevron-down { &:before { content: "\e114"; } } -.glyphicon-retweet { &:before { content: "\e115"; } } -.glyphicon-shopping-cart { &:before { content: "\e116"; } } -.glyphicon-folder-close { &:before { content: "\e117"; } } -.glyphicon-folder-open { &:before { content: "\e118"; } } -.glyphicon-resize-vertical { &:before { content: "\e119"; } } -.glyphicon-resize-horizontal { &:before { content: "\e120"; } } -.glyphicon-hdd { &:before { content: "\e121"; } } -.glyphicon-bullhorn { &:before { content: "\e122"; } } -.glyphicon-bell { &:before { content: "\e123"; } } -.glyphicon-certificate { &:before { content: "\e124"; } } -.glyphicon-thumbs-up { &:before { content: "\e125"; } } -.glyphicon-thumbs-down { &:before { content: "\e126"; } } -.glyphicon-hand-right { &:before { content: "\e127"; } } -.glyphicon-hand-left { &:before { content: "\e128"; } } -.glyphicon-hand-up { &:before { content: "\e129"; } } -.glyphicon-hand-down { &:before { content: "\e130"; } } -.glyphicon-circle-arrow-right { &:before { content: "\e131"; } } -.glyphicon-circle-arrow-left { &:before { content: "\e132"; } } -.glyphicon-circle-arrow-up { &:before { content: "\e133"; } } -.glyphicon-circle-arrow-down { &:before { content: "\e134"; } } -.glyphicon-globe { &:before { content: "\e135"; } } -.glyphicon-wrench { &:before { content: "\e136"; } } -.glyphicon-tasks { &:before { content: "\e137"; } } -.glyphicon-filter { &:before { content: "\e138"; } } -.glyphicon-briefcase { &:before { content: "\e139"; } } -.glyphicon-fullscreen { &:before { content: "\e140"; } } -.glyphicon-dashboard { &:before { content: "\e141"; } } -.glyphicon-paperclip { &:before { content: "\e142"; } } -.glyphicon-heart-empty { &:before { content: "\e143"; } } -.glyphicon-link { &:before { content: "\e144"; } } -.glyphicon-phone { &:before { content: "\e145"; } } -.glyphicon-pushpin { &:before { content: "\e146"; } } -.glyphicon-usd { &:before { content: "\e148"; } } -.glyphicon-gbp { &:before { content: "\e149"; } } -.glyphicon-sort { &:before { content: "\e150"; } } -.glyphicon-sort-by-alphabet { &:before { content: "\e151"; } } -.glyphicon-sort-by-alphabet-alt { &:before { content: "\e152"; } } -.glyphicon-sort-by-order { &:before { content: "\e153"; } } -.glyphicon-sort-by-order-alt { &:before { content: "\e154"; } } -.glyphicon-sort-by-attributes { &:before { content: "\e155"; } } -.glyphicon-sort-by-attributes-alt { &:before { content: "\e156"; } } -.glyphicon-unchecked { &:before { content: "\e157"; } } -.glyphicon-expand { &:before { content: "\e158"; } } -.glyphicon-collapse-down { &:before { content: "\e159"; } } -.glyphicon-collapse-up { &:before { content: "\e160"; } } -.glyphicon-log-in { &:before { content: "\e161"; } } -.glyphicon-flash { &:before { content: "\e162"; } } -.glyphicon-log-out { &:before { content: "\e163"; } } -.glyphicon-new-window { &:before { content: "\e164"; } } -.glyphicon-record { &:before { content: "\e165"; } } -.glyphicon-save { &:before { content: "\e166"; } } -.glyphicon-open { &:before { content: "\e167"; } } -.glyphicon-saved { &:before { content: "\e168"; } } -.glyphicon-import { &:before { content: "\e169"; } } -.glyphicon-export { &:before { content: "\e170"; } } -.glyphicon-send { &:before { content: "\e171"; } } -.glyphicon-floppy-disk { &:before { content: "\e172"; } } -.glyphicon-floppy-saved { &:before { content: "\e173"; } } -.glyphicon-floppy-remove { &:before { content: "\e174"; } } -.glyphicon-floppy-save { &:before { content: "\e175"; } } -.glyphicon-floppy-open { &:before { content: "\e176"; } } -.glyphicon-credit-card { &:before { content: "\e177"; } } -.glyphicon-transfer { &:before { content: "\e178"; } } -.glyphicon-cutlery { &:before { content: "\e179"; } } -.glyphicon-header { &:before { content: "\e180"; } } -.glyphicon-compressed { &:before { content: "\e181"; } } -.glyphicon-earphone { &:before { content: "\e182"; } } -.glyphicon-phone-alt { &:before { content: "\e183"; } } -.glyphicon-tower { &:before { content: "\e184"; } } -.glyphicon-stats { &:before { content: "\e185"; } } -.glyphicon-sd-video { &:before { content: "\e186"; } } -.glyphicon-hd-video { &:before { content: "\e187"; } } -.glyphicon-subtitles { &:before { content: "\e188"; } } -.glyphicon-sound-stereo { &:before { content: "\e189"; } } -.glyphicon-sound-dolby { &:before { content: "\e190"; } } -.glyphicon-sound-5-1 { &:before { content: "\e191"; } } -.glyphicon-sound-6-1 { &:before { content: "\e192"; } } -.glyphicon-sound-7-1 { &:before { content: "\e193"; } } -.glyphicon-copyright-mark { &:before { content: "\e194"; } } -.glyphicon-registration-mark { &:before { content: "\e195"; } } -.glyphicon-cloud-download { &:before { content: "\e197"; } } -.glyphicon-cloud-upload { &:before { content: "\e198"; } } -.glyphicon-tree-conifer { &:before { content: "\e199"; } } -.glyphicon-tree-deciduous { &:before { content: "\e200"; } } -.glyphicon-cd { &:before { content: "\e201"; } } -.glyphicon-save-file { &:before { content: "\e202"; } } -.glyphicon-open-file { &:before { content: "\e203"; } } -.glyphicon-level-up { &:before { content: "\e204"; } } -.glyphicon-copy { &:before { content: "\e205"; } } -.glyphicon-paste { &:before { content: "\e206"; } } -// The following 2 Glyphicons are omitted for the time being because -// they currently use Unicode codepoints that are outside the -// Basic Multilingual Plane (BMP). Older buggy versions of WebKit can't handle -// non-BMP codepoints in CSS string escapes, and thus can't display these two icons. -// Notably, the bug affects some older versions of the Android Browser. -// More info: https://github.com/twbs/bootstrap/issues/10106 -// .glyphicon-door { &:before { content: "\1f6aa"; } } -// .glyphicon-key { &:before { content: "\1f511"; } } -.glyphicon-alert { &:before { content: "\e209"; } } -.glyphicon-equalizer { &:before { content: "\e210"; } } -.glyphicon-king { &:before { content: "\e211"; } } -.glyphicon-queen { &:before { content: "\e212"; } } -.glyphicon-pawn { &:before { content: "\e213"; } } -.glyphicon-bishop { &:before { content: "\e214"; } } -.glyphicon-knight { &:before { content: "\e215"; } } -.glyphicon-baby-formula { &:before { content: "\e216"; } } -.glyphicon-tent { &:before { content: "\26fa"; } } -.glyphicon-blackboard { &:before { content: "\e218"; } } -.glyphicon-bed { &:before { content: "\e219"; } } -.glyphicon-apple { &:before { content: "\f8ff"; } } -.glyphicon-erase { &:before { content: "\e221"; } } -.glyphicon-hourglass { &:before { content: "\231b"; } } -.glyphicon-lamp { &:before { content: "\e223"; } } -.glyphicon-duplicate { &:before { content: "\e224"; } } -.glyphicon-piggy-bank { &:before { content: "\e225"; } } -.glyphicon-scissors { &:before { content: "\e226"; } } -.glyphicon-bitcoin { &:before { content: "\e227"; } } -.glyphicon-btc { &:before { content: "\e227"; } } -.glyphicon-xbt { &:before { content: "\e227"; } } -.glyphicon-yen { &:before { content: "\00a5"; } } -.glyphicon-jpy { &:before { content: "\00a5"; } } -.glyphicon-ruble { &:before { content: "\20bd"; } } -.glyphicon-rub { &:before { content: "\20bd"; } } -.glyphicon-scale { &:before { content: "\e230"; } } -.glyphicon-ice-lolly { &:before { content: "\e231"; } } -.glyphicon-ice-lolly-tasted { &:before { content: "\e232"; } } -.glyphicon-education { &:before { content: "\e233"; } } -.glyphicon-option-horizontal { &:before { content: "\e234"; } } -.glyphicon-option-vertical { &:before { content: "\e235"; } } -.glyphicon-menu-hamburger { &:before { content: "\e236"; } } -.glyphicon-modal-window { &:before { content: "\e237"; } } -.glyphicon-oil { &:before { content: "\e238"; } } -.glyphicon-grain { &:before { content: "\e239"; } } -.glyphicon-sunglasses { &:before { content: "\e240"; } } -.glyphicon-text-size { &:before { content: "\e241"; } } -.glyphicon-text-color { &:before { content: "\e242"; } } -.glyphicon-text-background { &:before { content: "\e243"; } } -.glyphicon-object-align-top { &:before { content: "\e244"; } } -.glyphicon-object-align-bottom { &:before { content: "\e245"; } } -.glyphicon-object-align-horizontal{ &:before { content: "\e246"; } } -.glyphicon-object-align-left { &:before { content: "\e247"; } } -.glyphicon-object-align-vertical { &:before { content: "\e248"; } } -.glyphicon-object-align-right { &:before { content: "\e249"; } } -.glyphicon-triangle-right { &:before { content: "\e250"; } } -.glyphicon-triangle-left { &:before { content: "\e251"; } } -.glyphicon-triangle-bottom { &:before { content: "\e252"; } } -.glyphicon-triangle-top { &:before { content: "\e253"; } } -.glyphicon-console { &:before { content: "\e254"; } } -.glyphicon-superscript { &:before { content: "\e255"; } } -.glyphicon-subscript { &:before { content: "\e256"; } } -.glyphicon-menu-left { &:before { content: "\e257"; } } -.glyphicon-menu-right { &:before { content: "\e258"; } } -.glyphicon-menu-down { &:before { content: "\e259"; } } -.glyphicon-menu-up { &:before { content: "\e260"; } } diff --git a/admin/bower_components/bootstrap/less/grid.less b/admin/bower_components/bootstrap/less/grid.less deleted file mode 100644 index e100655..0000000 --- a/admin/bower_components/bootstrap/less/grid.less +++ /dev/null @@ -1,84 +0,0 @@ -// -// Grid system -// -------------------------------------------------- - - -// Container widths -// -// Set the container width, and override it for fixed navbars in media queries. - -.container { - .container-fixed(); - - @media (min-width: @screen-sm-min) { - width: @container-sm; - } - @media (min-width: @screen-md-min) { - width: @container-md; - } - @media (min-width: @screen-lg-min) { - width: @container-lg; - } -} - - -// Fluid container -// -// Utilizes the mixin meant for fixed width containers, but without any defined -// width for fluid, full width layouts. - -.container-fluid { - .container-fixed(); -} - - -// Row -// -// Rows contain and clear the floats of your columns. - -.row { - .make-row(); -} - - -// Columns -// -// Common styles for small and large grid columns - -.make-grid-columns(); - - -// Extra small grid -// -// Columns, offsets, pushes, and pulls for extra small devices like -// smartphones. - -.make-grid(xs); - - -// Small grid -// -// Columns, offsets, pushes, and pulls for the small device range, from phones -// to tablets. - -@media (min-width: @screen-sm-min) { - .make-grid(sm); -} - - -// Medium grid -// -// Columns, offsets, pushes, and pulls for the desktop device range. - -@media (min-width: @screen-md-min) { - .make-grid(md); -} - - -// Large grid -// -// Columns, offsets, pushes, and pulls for the large desktop device range. - -@media (min-width: @screen-lg-min) { - .make-grid(lg); -} diff --git a/admin/bower_components/bootstrap/less/input-groups.less b/admin/bower_components/bootstrap/less/input-groups.less deleted file mode 100644 index d0763db..0000000 --- a/admin/bower_components/bootstrap/less/input-groups.less +++ /dev/null @@ -1,171 +0,0 @@ -// -// Input groups -// -------------------------------------------------- - -// Base styles -// ------------------------- -.input-group { - position: relative; // For dropdowns - display: table; - border-collapse: separate; // prevent input groups from inheriting border styles from table cells when placed within a table - - // Undo padding and float of grid classes - &[class*="col-"] { - float: none; - padding-left: 0; - padding-right: 0; - } - - .form-control { - // Ensure that the input is always above the *appended* addon button for - // proper border colors. - position: relative; - z-index: 2; - - // IE9 fubars the placeholder attribute in text inputs and the arrows on - // select elements in input groups. To fix it, we float the input. Details: - // https://github.com/twbs/bootstrap/issues/11561#issuecomment-28936855 - float: left; - - width: 100%; - margin-bottom: 0; - - &:focus { - z-index: 3; - } - } -} - -// Sizing options -// -// Remix the default form control sizing classes into new ones for easier -// manipulation. - -.input-group-lg > .form-control, -.input-group-lg > .input-group-addon, -.input-group-lg > .input-group-btn > .btn { - .input-lg(); -} -.input-group-sm > .form-control, -.input-group-sm > .input-group-addon, -.input-group-sm > .input-group-btn > .btn { - .input-sm(); -} - - -// Display as table-cell -// ------------------------- -.input-group-addon, -.input-group-btn, -.input-group .form-control { - display: table-cell; - - &:not(:first-child):not(:last-child) { - border-radius: 0; - } -} -// Addon and addon wrapper for buttons -.input-group-addon, -.input-group-btn { - width: 1%; - white-space: nowrap; - vertical-align: middle; // Match the inputs -} - -// Text input groups -// ------------------------- -.input-group-addon { - padding: @padding-base-vertical @padding-base-horizontal; - font-size: @font-size-base; - font-weight: normal; - line-height: 1; - color: @input-color; - text-align: center; - background-color: @input-group-addon-bg; - border: 1px solid @input-group-addon-border-color; - border-radius: @input-border-radius; - - // Sizing - &.input-sm { - padding: @padding-small-vertical @padding-small-horizontal; - font-size: @font-size-small; - border-radius: @input-border-radius-small; - } - &.input-lg { - padding: @padding-large-vertical @padding-large-horizontal; - font-size: @font-size-large; - border-radius: @input-border-radius-large; - } - - // Nuke default margins from checkboxes and radios to vertically center within. - input[type="radio"], - input[type="checkbox"] { - margin-top: 0; - } -} - -// Reset rounded corners -.input-group .form-control:first-child, -.input-group-addon:first-child, -.input-group-btn:first-child > .btn, -.input-group-btn:first-child > .btn-group > .btn, -.input-group-btn:first-child > .dropdown-toggle, -.input-group-btn:last-child > .btn:not(:last-child):not(.dropdown-toggle), -.input-group-btn:last-child > .btn-group:not(:last-child) > .btn { - .border-right-radius(0); -} -.input-group-addon:first-child { - border-right: 0; -} -.input-group .form-control:last-child, -.input-group-addon:last-child, -.input-group-btn:last-child > .btn, -.input-group-btn:last-child > .btn-group > .btn, -.input-group-btn:last-child > .dropdown-toggle, -.input-group-btn:first-child > .btn:not(:first-child), -.input-group-btn:first-child > .btn-group:not(:first-child) > .btn { - .border-left-radius(0); -} -.input-group-addon:last-child { - border-left: 0; -} - -// Button input groups -// ------------------------- -.input-group-btn { - position: relative; - // Jankily prevent input button groups from wrapping with `white-space` and - // `font-size` in combination with `inline-block` on buttons. - font-size: 0; - white-space: nowrap; - - // Negative margin for spacing, position for bringing hovered/focused/actived - // element above the siblings. - > .btn { - position: relative; - + .btn { - margin-left: -1px; - } - // Bring the "active" button to the front - &:hover, - &:focus, - &:active { - z-index: 2; - } - } - - // Negative margin to only have a 1px border between the two - &:first-child { - > .btn, - > .btn-group { - margin-right: -1px; - } - } - &:last-child { - > .btn, - > .btn-group { - z-index: 2; - margin-left: -1px; - } - } -} diff --git a/admin/bower_components/bootstrap/less/jumbotron.less b/admin/bower_components/bootstrap/less/jumbotron.less deleted file mode 100644 index 1d9b515..0000000 --- a/admin/bower_components/bootstrap/less/jumbotron.less +++ /dev/null @@ -1,54 +0,0 @@ -// -// Jumbotron -// -------------------------------------------------- - - -.jumbotron { - padding-top: @jumbotron-padding; - padding-bottom: @jumbotron-padding; - margin-bottom: @jumbotron-padding; - color: @jumbotron-color; - background-color: @jumbotron-bg; - - h1, - .h1 { - color: @jumbotron-heading-color; - } - - p { - margin-bottom: (@jumbotron-padding / 2); - font-size: @jumbotron-font-size; - font-weight: 200; - } - - > hr { - border-top-color: darken(@jumbotron-bg, 10%); - } - - .container &, - .container-fluid & { - border-radius: @border-radius-large; // Only round corners at higher resolutions if contained in a container - padding-left: (@grid-gutter-width / 2); - padding-right: (@grid-gutter-width / 2); - } - - .container { - max-width: 100%; - } - - @media screen and (min-width: @screen-sm-min) { - padding-top: (@jumbotron-padding * 1.6); - padding-bottom: (@jumbotron-padding * 1.6); - - .container &, - .container-fluid & { - padding-left: (@jumbotron-padding * 2); - padding-right: (@jumbotron-padding * 2); - } - - h1, - .h1 { - font-size: @jumbotron-heading-font-size; - } - } -} diff --git a/admin/bower_components/bootstrap/less/labels.less b/admin/bower_components/bootstrap/less/labels.less deleted file mode 100644 index 9a5a270..0000000 --- a/admin/bower_components/bootstrap/less/labels.less +++ /dev/null @@ -1,64 +0,0 @@ -// -// Labels -// -------------------------------------------------- - -.label { - display: inline; - padding: .2em .6em .3em; - font-size: 75%; - font-weight: bold; - line-height: 1; - color: @label-color; - text-align: center; - white-space: nowrap; - vertical-align: baseline; - border-radius: .25em; - - // Add hover effects, but only for links - a& { - &:hover, - &:focus { - color: @label-link-hover-color; - text-decoration: none; - cursor: pointer; - } - } - - // Empty labels collapse automatically (not available in IE8) - &:empty { - display: none; - } - - // Quick fix for labels in buttons - .btn & { - position: relative; - top: -1px; - } -} - -// Colors -// Contextual variations (linked labels get darker on :hover) - -.label-default { - .label-variant(@label-default-bg); -} - -.label-primary { - .label-variant(@label-primary-bg); -} - -.label-success { - .label-variant(@label-success-bg); -} - -.label-info { - .label-variant(@label-info-bg); -} - -.label-warning { - .label-variant(@label-warning-bg); -} - -.label-danger { - .label-variant(@label-danger-bg); -} diff --git a/admin/bower_components/bootstrap/less/list-group.less b/admin/bower_components/bootstrap/less/list-group.less deleted file mode 100644 index 216b912..0000000 --- a/admin/bower_components/bootstrap/less/list-group.less +++ /dev/null @@ -1,130 +0,0 @@ -// -// List groups -// -------------------------------------------------- - - -// Base class -// -// Easily usable on <ul>, <ol>, or <div>. - -.list-group { - // No need to set list-style: none; since .list-group-item is block level - margin-bottom: 20px; - padding-left: 0; // reset padding because ul and ol -} - - -// Individual list items -// -// Use on `li`s or `div`s within the `.list-group` parent. - -.list-group-item { - position: relative; - display: block; - padding: 10px 15px; - // Place the border on the list items and negative margin up for better styling - margin-bottom: -1px; - background-color: @list-group-bg; - border: 1px solid @list-group-border; - - // Round the first and last items - &:first-child { - .border-top-radius(@list-group-border-radius); - } - &:last-child { - margin-bottom: 0; - .border-bottom-radius(@list-group-border-radius); - } -} - - -// Interactive list items -// -// Use anchor or button elements instead of `li`s or `div`s to create interactive items. -// Includes an extra `.active` modifier class for showing selected items. - -a.list-group-item, -button.list-group-item { - color: @list-group-link-color; - - .list-group-item-heading { - color: @list-group-link-heading-color; - } - - // Hover state - &:hover, - &:focus { - text-decoration: none; - color: @list-group-link-hover-color; - background-color: @list-group-hover-bg; - } -} - -button.list-group-item { - width: 100%; - text-align: left; -} - -.list-group-item { - // Disabled state - &.disabled, - &.disabled:hover, - &.disabled:focus { - background-color: @list-group-disabled-bg; - color: @list-group-disabled-color; - cursor: @cursor-disabled; - - // Force color to inherit for custom content - .list-group-item-heading { - color: inherit; - } - .list-group-item-text { - color: @list-group-disabled-text-color; - } - } - - // Active class on item itself, not parent - &.active, - &.active:hover, - &.active:focus { - z-index: 2; // Place active items above their siblings for proper border styling - color: @list-group-active-color; - background-color: @list-group-active-bg; - border-color: @list-group-active-border; - - // Force color to inherit for custom content - .list-group-item-heading, - .list-group-item-heading > small, - .list-group-item-heading > .small { - color: inherit; - } - .list-group-item-text { - color: @list-group-active-text-color; - } - } -} - - -// Contextual variants -// -// Add modifier classes to change text and background color on individual items. -// Organizationally, this must come after the `:hover` states. - -.list-group-item-variant(success; @state-success-bg; @state-success-text); -.list-group-item-variant(info; @state-info-bg; @state-info-text); -.list-group-item-variant(warning; @state-warning-bg; @state-warning-text); -.list-group-item-variant(danger; @state-danger-bg; @state-danger-text); - - -// Custom content options -// -// Extra classes for creating well-formatted content within `.list-group-item`s. - -.list-group-item-heading { - margin-top: 0; - margin-bottom: 5px; -} -.list-group-item-text { - margin-bottom: 0; - line-height: 1.3; -} diff --git a/admin/bower_components/bootstrap/less/media.less b/admin/bower_components/bootstrap/less/media.less deleted file mode 100644 index 8c835e8..0000000 --- a/admin/bower_components/bootstrap/less/media.less +++ /dev/null @@ -1,66 +0,0 @@ -.media { - // Proper spacing between instances of .media - margin-top: 15px; - - &:first-child { - margin-top: 0; - } -} - -.media, -.media-body { - zoom: 1; - overflow: hidden; -} - -.media-body { - width: 10000px; -} - -.media-object { - display: block; - - // Fix collapse in webkit from max-width: 100% and display: table-cell. - &.img-thumbnail { - max-width: none; - } -} - -.media-right, -.media > .pull-right { - padding-left: 10px; -} - -.media-left, -.media > .pull-left { - padding-right: 10px; -} - -.media-left, -.media-right, -.media-body { - display: table-cell; - vertical-align: top; -} - -.media-middle { - vertical-align: middle; -} - -.media-bottom { - vertical-align: bottom; -} - -// Reset margins on headings for tighter default spacing -.media-heading { - margin-top: 0; - margin-bottom: 5px; -} - -// Media list variation -// -// Undo default ul/ol styles -.media-list { - padding-left: 0; - list-style: none; -} diff --git a/admin/bower_components/bootstrap/less/mixins.less b/admin/bower_components/bootstrap/less/mixins.less deleted file mode 100644 index e6f9fe6..0000000 --- a/admin/bower_components/bootstrap/less/mixins.less +++ /dev/null @@ -1,40 +0,0 @@ -// Mixins -// -------------------------------------------------- - -// Utilities -@import "mixins/hide-text.less"; -@import "mixins/opacity.less"; -@import "mixins/image.less"; -@import "mixins/labels.less"; -@import "mixins/reset-filter.less"; -@import "mixins/resize.less"; -@import "mixins/responsive-visibility.less"; -@import "mixins/size.less"; -@import "mixins/tab-focus.less"; -@import "mixins/reset-text.less"; -@import "mixins/text-emphasis.less"; -@import "mixins/text-overflow.less"; -@import "mixins/vendor-prefixes.less"; - -// Components -@import "mixins/alerts.less"; -@import "mixins/buttons.less"; -@import "mixins/panels.less"; -@import "mixins/pagination.less"; -@import "mixins/list-group.less"; -@import "mixins/nav-divider.less"; -@import "mixins/forms.less"; -@import "mixins/progress-bar.less"; -@import "mixins/table-row.less"; - -// Skins -@import "mixins/background-variant.less"; -@import "mixins/border-radius.less"; -@import "mixins/gradients.less"; - -// Layout -@import "mixins/clearfix.less"; -@import "mixins/center-block.less"; -@import "mixins/nav-vertical-align.less"; -@import "mixins/grid-framework.less"; -@import "mixins/grid.less"; diff --git a/admin/bower_components/bootstrap/less/mixins/alerts.less b/admin/bower_components/bootstrap/less/mixins/alerts.less deleted file mode 100644 index 396196f..0000000 --- a/admin/bower_components/bootstrap/less/mixins/alerts.less +++ /dev/null @@ -1,14 +0,0 @@ -// Alerts - -.alert-variant(@background; @border; @text-color) { - background-color: @background; - border-color: @border; - color: @text-color; - - hr { - border-top-color: darken(@border, 5%); - } - .alert-link { - color: darken(@text-color, 10%); - } -} diff --git a/admin/bower_components/bootstrap/less/mixins/background-variant.less b/admin/bower_components/bootstrap/less/mixins/background-variant.less deleted file mode 100644 index a85c22b..0000000 --- a/admin/bower_components/bootstrap/less/mixins/background-variant.less +++ /dev/null @@ -1,9 +0,0 @@ -// Contextual backgrounds - -.bg-variant(@color) { - background-color: @color; - a&:hover, - a&:focus { - background-color: darken(@color, 10%); - } -} diff --git a/admin/bower_components/bootstrap/less/mixins/border-radius.less b/admin/bower_components/bootstrap/less/mixins/border-radius.less deleted file mode 100644 index ca05dbf..0000000 --- a/admin/bower_components/bootstrap/less/mixins/border-radius.less +++ /dev/null @@ -1,18 +0,0 @@ -// Single side border-radius - -.border-top-radius(@radius) { - border-top-right-radius: @radius; - border-top-left-radius: @radius; -} -.border-right-radius(@radius) { - border-bottom-right-radius: @radius; - border-top-right-radius: @radius; -} -.border-bottom-radius(@radius) { - border-bottom-right-radius: @radius; - border-bottom-left-radius: @radius; -} -.border-left-radius(@radius) { - border-bottom-left-radius: @radius; - border-top-left-radius: @radius; -} diff --git a/admin/bower_components/bootstrap/less/mixins/buttons.less b/admin/bower_components/bootstrap/less/mixins/buttons.less deleted file mode 100644 index b294d8c..0000000 --- a/admin/bower_components/bootstrap/less/mixins/buttons.less +++ /dev/null @@ -1,65 +0,0 @@ -// Button variants -// -// Easily pump out default styles, as well as :hover, :focus, :active, -// and disabled options for all buttons - -.button-variant(@color; @background; @border) { - color: @color; - background-color: @background; - border-color: @border; - - &:focus, - &.focus { - color: @color; - background-color: darken(@background, 10%); - border-color: darken(@border, 25%); - } - &:hover { - color: @color; - background-color: darken(@background, 10%); - border-color: darken(@border, 12%); - } - &:active, - &.active, - .open > .dropdown-toggle& { - color: @color; - background-color: darken(@background, 10%); - border-color: darken(@border, 12%); - - &:hover, - &:focus, - &.focus { - color: @color; - background-color: darken(@background, 17%); - border-color: darken(@border, 25%); - } - } - &:active, - &.active, - .open > .dropdown-toggle& { - background-image: none; - } - &.disabled, - &[disabled], - fieldset[disabled] & { - &:hover, - &:focus, - &.focus { - background-color: @background; - border-color: @border; - } - } - - .badge { - color: @background; - background-color: @color; - } -} - -// Button sizes -.button-size(@padding-vertical; @padding-horizontal; @font-size; @line-height; @border-radius) { - padding: @padding-vertical @padding-horizontal; - font-size: @font-size; - line-height: @line-height; - border-radius: @border-radius; -} diff --git a/admin/bower_components/bootstrap/less/mixins/center-block.less b/admin/bower_components/bootstrap/less/mixins/center-block.less deleted file mode 100644 index d18d6de..0000000 --- a/admin/bower_components/bootstrap/less/mixins/center-block.less +++ /dev/null @@ -1,7 +0,0 @@ -// Center-align a block level element - -.center-block() { - display: block; - margin-left: auto; - margin-right: auto; -} diff --git a/admin/bower_components/bootstrap/less/mixins/clearfix.less b/admin/bower_components/bootstrap/less/mixins/clearfix.less deleted file mode 100644 index 3f7a382..0000000 --- a/admin/bower_components/bootstrap/less/mixins/clearfix.less +++ /dev/null @@ -1,22 +0,0 @@ -// Clearfix -// -// For modern browsers -// 1. The space content is one way to avoid an Opera bug when the -// contenteditable attribute is included anywhere else in the document. -// Otherwise it causes space to appear at the top and bottom of elements -// that are clearfixed. -// 2. The use of `table` rather than `block` is only necessary if using -// `:before` to contain the top-margins of child elements. -// -// Source: http://nicolasgallagher.com/micro-clearfix-hack/ - -.clearfix() { - &:before, - &:after { - content: " "; // 1 - display: table; // 2 - } - &:after { - clear: both; - } -} diff --git a/admin/bower_components/bootstrap/less/mixins/forms.less b/admin/bower_components/bootstrap/less/mixins/forms.less deleted file mode 100644 index 6f55ed9..0000000 --- a/admin/bower_components/bootstrap/less/mixins/forms.less +++ /dev/null @@ -1,85 +0,0 @@ -// Form validation states -// -// Used in forms.less to generate the form validation CSS for warnings, errors, -// and successes. - -.form-control-validation(@text-color: #555; @border-color: #ccc; @background-color: #f5f5f5) { - // Color the label and help text - .help-block, - .control-label, - .radio, - .checkbox, - .radio-inline, - .checkbox-inline, - &.radio label, - &.checkbox label, - &.radio-inline label, - &.checkbox-inline label { - color: @text-color; - } - // Set the border and box shadow on specific inputs to match - .form-control { - border-color: @border-color; - .box-shadow(inset 0 1px 1px rgba(0,0,0,.075)); // Redeclare so transitions work - &:focus { - border-color: darken(@border-color, 10%); - @shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 6px lighten(@border-color, 20%); - .box-shadow(@shadow); - } - } - // Set validation states also for addons - .input-group-addon { - color: @text-color; - border-color: @border-color; - background-color: @background-color; - } - // Optional feedback icon - .form-control-feedback { - color: @text-color; - } -} - - -// Form control focus state -// -// Generate a customized focus state and for any input with the specified color, -// which defaults to the `@input-border-focus` variable. -// -// We highly encourage you to not customize the default value, but instead use -// this to tweak colors on an as-needed basis. This aesthetic change is based on -// WebKit's default styles, but applicable to a wider range of browsers. Its -// usability and accessibility should be taken into account with any change. -// -// Example usage: change the default blue border and shadow to white for better -// contrast against a dark gray background. -.form-control-focus(@color: @input-border-focus) { - @color-rgba: rgba(red(@color), green(@color), blue(@color), .6); - &:focus { - border-color: @color; - outline: 0; - .box-shadow(~"inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px @{color-rgba}"); - } -} - -// Form control sizing -// -// Relative text size, padding, and border-radii changes for form controls. For -// horizontal sizing, wrap controls in the predefined grid classes. `<select>` -// element gets special love because it's special, and that's a fact! -.input-size(@input-height; @padding-vertical; @padding-horizontal; @font-size; @line-height; @border-radius) { - height: @input-height; - padding: @padding-vertical @padding-horizontal; - font-size: @font-size; - line-height: @line-height; - border-radius: @border-radius; - - select& { - height: @input-height; - line-height: @input-height; - } - - textarea&, - select[multiple]& { - height: auto; - } -} diff --git a/admin/bower_components/bootstrap/less/mixins/gradients.less b/admin/bower_components/bootstrap/less/mixins/gradients.less deleted file mode 100644 index 0b88a89..0000000 --- a/admin/bower_components/bootstrap/less/mixins/gradients.less +++ /dev/null @@ -1,59 +0,0 @@ -// Gradients - -#gradient { - - // Horizontal gradient, from left to right - // - // Creates two color stops, start and end, by specifying a color and position for each color stop. - // Color stops are not available in IE9 and below. - .horizontal(@start-color: #555; @end-color: #333; @start-percent: 0%; @end-percent: 100%) { - background-image: -webkit-linear-gradient(left, @start-color @start-percent, @end-color @end-percent); // Safari 5.1-6, Chrome 10+ - background-image: -o-linear-gradient(left, @start-color @start-percent, @end-color @end-percent); // Opera 12 - background-image: linear-gradient(to right, @start-color @start-percent, @end-color @end-percent); // Standard, IE10, Firefox 16+, Opera 12.10+, Safari 7+, Chrome 26+ - background-repeat: repeat-x; - filter: e(%("progid:DXImageTransform.Microsoft.gradient(startColorstr='%d', endColorstr='%d', GradientType=1)",argb(@start-color),argb(@end-color))); // IE9 and down - } - - // Vertical gradient, from top to bottom - // - // Creates two color stops, start and end, by specifying a color and position for each color stop. - // Color stops are not available in IE9 and below. - .vertical(@start-color: #555; @end-color: #333; @start-percent: 0%; @end-percent: 100%) { - background-image: -webkit-linear-gradient(top, @start-color @start-percent, @end-color @end-percent); // Safari 5.1-6, Chrome 10+ - background-image: -o-linear-gradient(top, @start-color @start-percent, @end-color @end-percent); // Opera 12 - background-image: linear-gradient(to bottom, @start-color @start-percent, @end-color @end-percent); // Standard, IE10, Firefox 16+, Opera 12.10+, Safari 7+, Chrome 26+ - background-repeat: repeat-x; - filter: e(%("progid:DXImageTransform.Microsoft.gradient(startColorstr='%d', endColorstr='%d', GradientType=0)",argb(@start-color),argb(@end-color))); // IE9 and down - } - - .directional(@start-color: #555; @end-color: #333; @deg: 45deg) { - background-repeat: repeat-x; - background-image: -webkit-linear-gradient(@deg, @start-color, @end-color); // Safari 5.1-6, Chrome 10+ - background-image: -o-linear-gradient(@deg, @start-color, @end-color); // Opera 12 - background-image: linear-gradient(@deg, @start-color, @end-color); // Standard, IE10, Firefox 16+, Opera 12.10+, Safari 7+, Chrome 26+ - } - .horizontal-three-colors(@start-color: #00b3ee; @mid-color: #7a43b6; @color-stop: 50%; @end-color: #c3325f) { - background-image: -webkit-linear-gradient(left, @start-color, @mid-color @color-stop, @end-color); - background-image: -o-linear-gradient(left, @start-color, @mid-color @color-stop, @end-color); - background-image: linear-gradient(to right, @start-color, @mid-color @color-stop, @end-color); - background-repeat: no-repeat; - filter: e(%("progid:DXImageTransform.Microsoft.gradient(startColorstr='%d', endColorstr='%d', GradientType=1)",argb(@start-color),argb(@end-color))); // IE9 and down, gets no color-stop at all for proper fallback - } - .vertical-three-colors(@start-color: #00b3ee; @mid-color: #7a43b6; @color-stop: 50%; @end-color: #c3325f) { - background-image: -webkit-linear-gradient(@start-color, @mid-color @color-stop, @end-color); - background-image: -o-linear-gradient(@start-color, @mid-color @color-stop, @end-color); - background-image: linear-gradient(@start-color, @mid-color @color-stop, @end-color); - background-repeat: no-repeat; - filter: e(%("progid:DXImageTransform.Microsoft.gradient(startColorstr='%d', endColorstr='%d', GradientType=0)",argb(@start-color),argb(@end-color))); // IE9 and down, gets no color-stop at all for proper fallback - } - .radial(@inner-color: #555; @outer-color: #333) { - background-image: -webkit-radial-gradient(circle, @inner-color, @outer-color); - background-image: radial-gradient(circle, @inner-color, @outer-color); - background-repeat: no-repeat; - } - .striped(@color: rgba(255,255,255,.15); @angle: 45deg) { - background-image: -webkit-linear-gradient(@angle, @color 25%, transparent 25%, transparent 50%, @color 50%, @color 75%, transparent 75%, transparent); - background-image: -o-linear-gradient(@angle, @color 25%, transparent 25%, transparent 50%, @color 50%, @color 75%, transparent 75%, transparent); - background-image: linear-gradient(@angle, @color 25%, transparent 25%, transparent 50%, @color 50%, @color 75%, transparent 75%, transparent); - } -} diff --git a/admin/bower_components/bootstrap/less/mixins/grid-framework.less b/admin/bower_components/bootstrap/less/mixins/grid-framework.less deleted file mode 100644 index 8c23eed..0000000 --- a/admin/bower_components/bootstrap/less/mixins/grid-framework.less +++ /dev/null @@ -1,91 +0,0 @@ -// Framework grid generation -// -// Used only by Bootstrap to generate the correct number of grid classes given -// any value of `@grid-columns`. - -.make-grid-columns() { - // Common styles for all sizes of grid columns, widths 1-12 - .col(@index) { // initial - @item: ~".col-xs-@{index}, .col-sm-@{index}, .col-md-@{index}, .col-lg-@{index}"; - .col((@index + 1), @item); - } - .col(@index, @list) when (@index =< @grid-columns) { // general; "=<" isn't a typo - @item: ~".col-xs-@{index}, .col-sm-@{index}, .col-md-@{index}, .col-lg-@{index}"; - .col((@index + 1), ~"@{list}, @{item}"); - } - .col(@index, @list) when (@index > @grid-columns) { // terminal - @{list} { - position: relative; - // Prevent columns from collapsing when empty - min-height: 1px; - // Inner gutter via padding - padding-left: ceil((@grid-gutter-width / 2)); - padding-right: floor((@grid-gutter-width / 2)); - } - } - .col(1); // kickstart it -} - -.float-grid-columns(@class) { - .col(@index) { // initial - @item: ~".col-@{class}-@{index}"; - .col((@index + 1), @item); - } - .col(@index, @list) when (@index =< @grid-columns) { // general - @item: ~".col-@{class}-@{index}"; - .col((@index + 1), ~"@{list}, @{item}"); - } - .col(@index, @list) when (@index > @grid-columns) { // terminal - @{list} { - float: left; - } - } - .col(1); // kickstart it -} - -.calc-grid-column(@index, @class, @type) when (@type = width) and (@index > 0) { - .col-@{class}-@{index} { - width: percentage((@index / @grid-columns)); - } -} -.calc-grid-column(@index, @class, @type) when (@type = push) and (@index > 0) { - .col-@{class}-push-@{index} { - left: percentage((@index / @grid-columns)); - } -} -.calc-grid-column(@index, @class, @type) when (@type = push) and (@index = 0) { - .col-@{class}-push-0 { - left: auto; - } -} -.calc-grid-column(@index, @class, @type) when (@type = pull) and (@index > 0) { - .col-@{class}-pull-@{index} { - right: percentage((@index / @grid-columns)); - } -} -.calc-grid-column(@index, @class, @type) when (@type = pull) and (@index = 0) { - .col-@{class}-pull-0 { - right: auto; - } -} -.calc-grid-column(@index, @class, @type) when (@type = offset) { - .col-@{class}-offset-@{index} { - margin-left: percentage((@index / @grid-columns)); - } -} - -// Basic looping in LESS -.loop-grid-columns(@index, @class, @type) when (@index >= 0) { - .calc-grid-column(@index, @class, @type); - // next iteration - .loop-grid-columns((@index - 1), @class, @type); -} - -// Create grid for specific class -.make-grid(@class) { - .float-grid-columns(@class); - .loop-grid-columns(@grid-columns, @class, width); - .loop-grid-columns(@grid-columns, @class, pull); - .loop-grid-columns(@grid-columns, @class, push); - .loop-grid-columns(@grid-columns, @class, offset); -} diff --git a/admin/bower_components/bootstrap/less/mixins/grid.less b/admin/bower_components/bootstrap/less/mixins/grid.less deleted file mode 100644 index df496d0..0000000 --- a/admin/bower_components/bootstrap/less/mixins/grid.less +++ /dev/null @@ -1,122 +0,0 @@ -// Grid system -// -// Generate semantic grid columns with these mixins. - -// Centered container element -.container-fixed(@gutter: @grid-gutter-width) { - margin-right: auto; - margin-left: auto; - padding-left: floor((@gutter / 2)); - padding-right: ceil((@gutter / 2)); - &:extend(.clearfix all); -} - -// Creates a wrapper for a series of columns -.make-row(@gutter: @grid-gutter-width) { - margin-left: ceil((@gutter / -2)); - margin-right: floor((@gutter / -2)); - &:extend(.clearfix all); -} - -// Generate the extra small columns -.make-xs-column(@columns; @gutter: @grid-gutter-width) { - position: relative; - float: left; - width: percentage((@columns / @grid-columns)); - min-height: 1px; - padding-left: (@gutter / 2); - padding-right: (@gutter / 2); -} -.make-xs-column-offset(@columns) { - margin-left: percentage((@columns / @grid-columns)); -} -.make-xs-column-push(@columns) { - left: percentage((@columns / @grid-columns)); -} -.make-xs-column-pull(@columns) { - right: percentage((@columns / @grid-columns)); -} - -// Generate the small columns -.make-sm-column(@columns; @gutter: @grid-gutter-width) { - position: relative; - min-height: 1px; - padding-left: (@gutter / 2); - padding-right: (@gutter / 2); - - @media (min-width: @screen-sm-min) { - float: left; - width: percentage((@columns / @grid-columns)); - } -} -.make-sm-column-offset(@columns) { - @media (min-width: @screen-sm-min) { - margin-left: percentage((@columns / @grid-columns)); - } -} -.make-sm-column-push(@columns) { - @media (min-width: @screen-sm-min) { - left: percentage((@columns / @grid-columns)); - } -} -.make-sm-column-pull(@columns) { - @media (min-width: @screen-sm-min) { - right: percentage((@columns / @grid-columns)); - } -} - -// Generate the medium columns -.make-md-column(@columns; @gutter: @grid-gutter-width) { - position: relative; - min-height: 1px; - padding-left: (@gutter / 2); - padding-right: (@gutter / 2); - - @media (min-width: @screen-md-min) { - float: left; - width: percentage((@columns / @grid-columns)); - } -} -.make-md-column-offset(@columns) { - @media (min-width: @screen-md-min) { - margin-left: percentage((@columns / @grid-columns)); - } -} -.make-md-column-push(@columns) { - @media (min-width: @screen-md-min) { - left: percentage((@columns / @grid-columns)); - } -} -.make-md-column-pull(@columns) { - @media (min-width: @screen-md-min) { - right: percentage((@columns / @grid-columns)); - } -} - -// Generate the large columns -.make-lg-column(@columns; @gutter: @grid-gutter-width) { - position: relative; - min-height: 1px; - padding-left: (@gutter / 2); - padding-right: (@gutter / 2); - - @media (min-width: @screen-lg-min) { - float: left; - width: percentage((@columns / @grid-columns)); - } -} -.make-lg-column-offset(@columns) { - @media (min-width: @screen-lg-min) { - margin-left: percentage((@columns / @grid-columns)); - } -} -.make-lg-column-push(@columns) { - @media (min-width: @screen-lg-min) { - left: percentage((@columns / @grid-columns)); - } -} -.make-lg-column-pull(@columns) { - @media (min-width: @screen-lg-min) { - right: percentage((@columns / @grid-columns)); - } -} diff --git a/admin/bower_components/bootstrap/less/mixins/hide-text.less b/admin/bower_components/bootstrap/less/mixins/hide-text.less deleted file mode 100644 index 2bb84a3..0000000 --- a/admin/bower_components/bootstrap/less/mixins/hide-text.less +++ /dev/null @@ -1,21 +0,0 @@ -// CSS image replacement -// -// Heads up! v3 launched with only `.hide-text()`, but per our pattern for -// mixins being reused as classes with the same name, this doesn't hold up. As -// of v3.0.1 we have added `.text-hide()` and deprecated `.hide-text()`. -// -// Source: https://github.com/h5bp/html5-boilerplate/commit/aa0396eae757 - -// Deprecated as of v3.0.1 (has been removed in v4) -.hide-text() { - font: ~"0/0" a; - color: transparent; - text-shadow: none; - background-color: transparent; - border: 0; -} - -// New mixin to use as of v3.0.1 -.text-hide() { - .hide-text(); -} diff --git a/admin/bower_components/bootstrap/less/mixins/image.less b/admin/bower_components/bootstrap/less/mixins/image.less deleted file mode 100644 index f233cb3..0000000 --- a/admin/bower_components/bootstrap/less/mixins/image.less +++ /dev/null @@ -1,33 +0,0 @@ -// Image Mixins -// - Responsive image -// - Retina image - - -// Responsive image -// -// Keep images from scaling beyond the width of their parents. -.img-responsive(@display: block) { - display: @display; - max-width: 100%; // Part 1: Set a maximum relative to the parent - height: auto; // Part 2: Scale the height according to the width, otherwise you get stretching -} - - -// Retina image -// -// Short retina mixin for setting background-image and -size. Note that the -// spelling of `min--moz-device-pixel-ratio` is intentional. -.img-retina(@file-1x; @file-2x; @width-1x; @height-1x) { - background-image: url("@{file-1x}"); - - @media - only screen and (-webkit-min-device-pixel-ratio: 2), - only screen and ( min--moz-device-pixel-ratio: 2), - only screen and ( -o-min-device-pixel-ratio: 2/1), - only screen and ( min-device-pixel-ratio: 2), - only screen and ( min-resolution: 192dpi), - only screen and ( min-resolution: 2dppx) { - background-image: url("@{file-2x}"); - background-size: @width-1x @height-1x; - } -} diff --git a/admin/bower_components/bootstrap/less/mixins/labels.less b/admin/bower_components/bootstrap/less/mixins/labels.less deleted file mode 100644 index 9f7a67e..0000000 --- a/admin/bower_components/bootstrap/less/mixins/labels.less +++ /dev/null @@ -1,12 +0,0 @@ -// Labels - -.label-variant(@color) { - background-color: @color; - - &[href] { - &:hover, - &:focus { - background-color: darken(@color, 10%); - } - } -} diff --git a/admin/bower_components/bootstrap/less/mixins/list-group.less b/admin/bower_components/bootstrap/less/mixins/list-group.less deleted file mode 100644 index 03aa190..0000000 --- a/admin/bower_components/bootstrap/less/mixins/list-group.less +++ /dev/null @@ -1,30 +0,0 @@ -// List Groups - -.list-group-item-variant(@state; @background; @color) { - .list-group-item-@{state} { - color: @color; - background-color: @background; - - a&, - button& { - color: @color; - - .list-group-item-heading { - color: inherit; - } - - &:hover, - &:focus { - color: @color; - background-color: darken(@background, 5%); - } - &.active, - &.active:hover, - &.active:focus { - color: #fff; - background-color: @color; - border-color: @color; - } - } - } -} diff --git a/admin/bower_components/bootstrap/less/mixins/nav-divider.less b/admin/bower_components/bootstrap/less/mixins/nav-divider.less deleted file mode 100644 index feb1e9e..0000000 --- a/admin/bower_components/bootstrap/less/mixins/nav-divider.less +++ /dev/null @@ -1,10 +0,0 @@ -// Horizontal dividers -// -// Dividers (basically an hr) within dropdowns and nav lists - -.nav-divider(@color: #e5e5e5) { - height: 1px; - margin: ((@line-height-computed / 2) - 1) 0; - overflow: hidden; - background-color: @color; -} diff --git a/admin/bower_components/bootstrap/less/mixins/nav-vertical-align.less b/admin/bower_components/bootstrap/less/mixins/nav-vertical-align.less deleted file mode 100644 index d458c78..0000000 --- a/admin/bower_components/bootstrap/less/mixins/nav-vertical-align.less +++ /dev/null @@ -1,9 +0,0 @@ -// Navbar vertical align -// -// Vertically center elements in the navbar. -// Example: an element has a height of 30px, so write out `.navbar-vertical-align(30px);` to calculate the appropriate top margin. - -.navbar-vertical-align(@element-height) { - margin-top: ((@navbar-height - @element-height) / 2); - margin-bottom: ((@navbar-height - @element-height) / 2); -} diff --git a/admin/bower_components/bootstrap/less/mixins/opacity.less b/admin/bower_components/bootstrap/less/mixins/opacity.less deleted file mode 100644 index 33ed25c..0000000 --- a/admin/bower_components/bootstrap/less/mixins/opacity.less +++ /dev/null @@ -1,8 +0,0 @@ -// Opacity - -.opacity(@opacity) { - opacity: @opacity; - // IE8 filter - @opacity-ie: (@opacity * 100); - filter: ~"alpha(opacity=@{opacity-ie})"; -} diff --git a/admin/bower_components/bootstrap/less/mixins/pagination.less b/admin/bower_components/bootstrap/less/mixins/pagination.less deleted file mode 100644 index 618804f..0000000 --- a/admin/bower_components/bootstrap/less/mixins/pagination.less +++ /dev/null @@ -1,24 +0,0 @@ -// Pagination - -.pagination-size(@padding-vertical; @padding-horizontal; @font-size; @line-height; @border-radius) { - > li { - > a, - > span { - padding: @padding-vertical @padding-horizontal; - font-size: @font-size; - line-height: @line-height; - } - &:first-child { - > a, - > span { - .border-left-radius(@border-radius); - } - } - &:last-child { - > a, - > span { - .border-right-radius(@border-radius); - } - } - } -} diff --git a/admin/bower_components/bootstrap/less/mixins/panels.less b/admin/bower_components/bootstrap/less/mixins/panels.less deleted file mode 100644 index 49ee10d..0000000 --- a/admin/bower_components/bootstrap/less/mixins/panels.less +++ /dev/null @@ -1,24 +0,0 @@ -// Panels - -.panel-variant(@border; @heading-text-color; @heading-bg-color; @heading-border) { - border-color: @border; - - & > .panel-heading { - color: @heading-text-color; - background-color: @heading-bg-color; - border-color: @heading-border; - - + .panel-collapse > .panel-body { - border-top-color: @border; - } - .badge { - color: @heading-bg-color; - background-color: @heading-text-color; - } - } - & > .panel-footer { - + .panel-collapse > .panel-body { - border-bottom-color: @border; - } - } -} diff --git a/admin/bower_components/bootstrap/less/mixins/progress-bar.less b/admin/bower_components/bootstrap/less/mixins/progress-bar.less deleted file mode 100644 index f07996a..0000000 --- a/admin/bower_components/bootstrap/less/mixins/progress-bar.less +++ /dev/null @@ -1,10 +0,0 @@ -// Progress bars - -.progress-bar-variant(@color) { - background-color: @color; - - // Deprecated parent class requirement as of v3.2.0 - .progress-striped & { - #gradient > .striped(); - } -} diff --git a/admin/bower_components/bootstrap/less/mixins/reset-filter.less b/admin/bower_components/bootstrap/less/mixins/reset-filter.less deleted file mode 100644 index 68cdb5e..0000000 --- a/admin/bower_components/bootstrap/less/mixins/reset-filter.less +++ /dev/null @@ -1,8 +0,0 @@ -// Reset filters for IE -// -// When you need to remove a gradient background, do not forget to use this to reset -// the IE filter for IE9 and below. - -.reset-filter() { - filter: e(%("progid:DXImageTransform.Microsoft.gradient(enabled = false)")); -} diff --git a/admin/bower_components/bootstrap/less/mixins/reset-text.less b/admin/bower_components/bootstrap/less/mixins/reset-text.less deleted file mode 100644 index 58dd4d1..0000000 --- a/admin/bower_components/bootstrap/less/mixins/reset-text.less +++ /dev/null @@ -1,18 +0,0 @@ -.reset-text() { - font-family: @font-family-base; - // We deliberately do NOT reset font-size. - font-style: normal; - font-weight: normal; - letter-spacing: normal; - line-break: auto; - line-height: @line-height-base; - text-align: left; // Fallback for where `start` is not supported - text-align: start; - text-decoration: none; - text-shadow: none; - text-transform: none; - white-space: normal; - word-break: normal; - word-spacing: normal; - word-wrap: normal; -} diff --git a/admin/bower_components/bootstrap/less/mixins/resize.less b/admin/bower_components/bootstrap/less/mixins/resize.less deleted file mode 100644 index 3acd3af..0000000 --- a/admin/bower_components/bootstrap/less/mixins/resize.less +++ /dev/null @@ -1,6 +0,0 @@ -// Resize anything - -.resizable(@direction) { - resize: @direction; // Options: horizontal, vertical, both - overflow: auto; // Per CSS3 UI, `resize` only applies when `overflow` isn't `visible` -} diff --git a/admin/bower_components/bootstrap/less/mixins/responsive-visibility.less b/admin/bower_components/bootstrap/less/mixins/responsive-visibility.less deleted file mode 100644 index ecf1e97..0000000 --- a/admin/bower_components/bootstrap/less/mixins/responsive-visibility.less +++ /dev/null @@ -1,15 +0,0 @@ -// Responsive utilities - -// -// More easily include all the states for responsive-utilities.less. -.responsive-visibility() { - display: block !important; - table& { display: table !important; } - tr& { display: table-row !important; } - th&, - td& { display: table-cell !important; } -} - -.responsive-invisibility() { - display: none !important; -} diff --git a/admin/bower_components/bootstrap/less/mixins/size.less b/admin/bower_components/bootstrap/less/mixins/size.less deleted file mode 100644 index a8be650..0000000 --- a/admin/bower_components/bootstrap/less/mixins/size.less +++ /dev/null @@ -1,10 +0,0 @@ -// Sizing shortcuts - -.size(@width; @height) { - width: @width; - height: @height; -} - -.square(@size) { - .size(@size; @size); -} diff --git a/admin/bower_components/bootstrap/less/mixins/tab-focus.less b/admin/bower_components/bootstrap/less/mixins/tab-focus.less deleted file mode 100644 index d12d236..0000000 --- a/admin/bower_components/bootstrap/less/mixins/tab-focus.less +++ /dev/null @@ -1,9 +0,0 @@ -// WebKit-style focus - -.tab-focus() { - // WebKit-specific. Other browsers will keep their default outline style. - // (Initially tried to also force default via `outline: initial`, - // but that seems to erroneously remove the outline in Firefox altogether.) - outline: 5px auto -webkit-focus-ring-color; - outline-offset: -2px; -} diff --git a/admin/bower_components/bootstrap/less/mixins/table-row.less b/admin/bower_components/bootstrap/less/mixins/table-row.less deleted file mode 100644 index 0f287f1..0000000 --- a/admin/bower_components/bootstrap/less/mixins/table-row.less +++ /dev/null @@ -1,28 +0,0 @@ -// Tables - -.table-row-variant(@state; @background) { - // Exact selectors below required to override `.table-striped` and prevent - // inheritance to nested tables. - .table > thead > tr, - .table > tbody > tr, - .table > tfoot > tr { - > td.@{state}, - > th.@{state}, - &.@{state} > td, - &.@{state} > th { - background-color: @background; - } - } - - // Hover states for `.table-hover` - // Note: this is not available for cells or rows within `thead` or `tfoot`. - .table-hover > tbody > tr { - > td.@{state}:hover, - > th.@{state}:hover, - &.@{state}:hover > td, - &:hover > .@{state}, - &.@{state}:hover > th { - background-color: darken(@background, 5%); - } - } -} diff --git a/admin/bower_components/bootstrap/less/mixins/text-emphasis.less b/admin/bower_components/bootstrap/less/mixins/text-emphasis.less deleted file mode 100644 index 9e8a77a..0000000 --- a/admin/bower_components/bootstrap/less/mixins/text-emphasis.less +++ /dev/null @@ -1,9 +0,0 @@ -// Typography - -.text-emphasis-variant(@color) { - color: @color; - a&:hover, - a&:focus { - color: darken(@color, 10%); - } -} diff --git a/admin/bower_components/bootstrap/less/mixins/text-overflow.less b/admin/bower_components/bootstrap/less/mixins/text-overflow.less deleted file mode 100644 index c11ad2f..0000000 --- a/admin/bower_components/bootstrap/less/mixins/text-overflow.less +++ /dev/null @@ -1,8 +0,0 @@ -// Text overflow -// Requires inline-block or block for proper styling - -.text-overflow() { - overflow: hidden; - text-overflow: ellipsis; - white-space: nowrap; -} diff --git a/admin/bower_components/bootstrap/less/mixins/vendor-prefixes.less b/admin/bower_components/bootstrap/less/mixins/vendor-prefixes.less deleted file mode 100644 index 2b5e74b..0000000 --- a/admin/bower_components/bootstrap/less/mixins/vendor-prefixes.less +++ /dev/null @@ -1,227 +0,0 @@ -// Vendor Prefixes -// -// All vendor mixins are deprecated as of v3.2.0 due to the introduction of -// Autoprefixer in our Gruntfile. They have been removed in v4. - -// - Animations -// - Backface visibility -// - Box shadow -// - Box sizing -// - Content columns -// - Hyphens -// - Placeholder text -// - Transformations -// - Transitions -// - User Select - - -// Animations -.animation(@animation) { - -webkit-animation: @animation; - -o-animation: @animation; - animation: @animation; -} -.animation-name(@name) { - -webkit-animation-name: @name; - animation-name: @name; -} -.animation-duration(@duration) { - -webkit-animation-duration: @duration; - animation-duration: @duration; -} -.animation-timing-function(@timing-function) { - -webkit-animation-timing-function: @timing-function; - animation-timing-function: @timing-function; -} -.animation-delay(@delay) { - -webkit-animation-delay: @delay; - animation-delay: @delay; -} -.animation-iteration-count(@iteration-count) { - -webkit-animation-iteration-count: @iteration-count; - animation-iteration-count: @iteration-count; -} -.animation-direction(@direction) { - -webkit-animation-direction: @direction; - animation-direction: @direction; -} -.animation-fill-mode(@fill-mode) { - -webkit-animation-fill-mode: @fill-mode; - animation-fill-mode: @fill-mode; -} - -// Backface visibility -// Prevent browsers from flickering when using CSS 3D transforms. -// Default value is `visible`, but can be changed to `hidden` - -.backface-visibility(@visibility) { - -webkit-backface-visibility: @visibility; - -moz-backface-visibility: @visibility; - backface-visibility: @visibility; -} - -// Drop shadows -// -// Note: Deprecated `.box-shadow()` as of v3.1.0 since all of Bootstrap's -// supported browsers that have box shadow capabilities now support it. - -.box-shadow(@shadow) { - -webkit-box-shadow: @shadow; // iOS <4.3 & Android <4.1 - box-shadow: @shadow; -} - -// Box sizing -.box-sizing(@boxmodel) { - -webkit-box-sizing: @boxmodel; - -moz-box-sizing: @boxmodel; - box-sizing: @boxmodel; -} - -// CSS3 Content Columns -.content-columns(@column-count; @column-gap: @grid-gutter-width) { - -webkit-column-count: @column-count; - -moz-column-count: @column-count; - column-count: @column-count; - -webkit-column-gap: @column-gap; - -moz-column-gap: @column-gap; - column-gap: @column-gap; -} - -// Optional hyphenation -.hyphens(@mode: auto) { - word-wrap: break-word; - -webkit-hyphens: @mode; - -moz-hyphens: @mode; - -ms-hyphens: @mode; // IE10+ - -o-hyphens: @mode; - hyphens: @mode; -} - -// Placeholder text -.placeholder(@color: @input-color-placeholder) { - // Firefox - &::-moz-placeholder { - color: @color; - opacity: 1; // Override Firefox's unusual default opacity; see https://github.com/twbs/bootstrap/pull/11526 - } - &:-ms-input-placeholder { color: @color; } // Internet Explorer 10+ - &::-webkit-input-placeholder { color: @color; } // Safari and Chrome -} - -// Transformations -.scale(@ratio) { - -webkit-transform: scale(@ratio); - -ms-transform: scale(@ratio); // IE9 only - -o-transform: scale(@ratio); - transform: scale(@ratio); -} -.scale(@ratioX; @ratioY) { - -webkit-transform: scale(@ratioX, @ratioY); - -ms-transform: scale(@ratioX, @ratioY); // IE9 only - -o-transform: scale(@ratioX, @ratioY); - transform: scale(@ratioX, @ratioY); -} -.scaleX(@ratio) { - -webkit-transform: scaleX(@ratio); - -ms-transform: scaleX(@ratio); // IE9 only - -o-transform: scaleX(@ratio); - transform: scaleX(@ratio); -} -.scaleY(@ratio) { - -webkit-transform: scaleY(@ratio); - -ms-transform: scaleY(@ratio); // IE9 only - -o-transform: scaleY(@ratio); - transform: scaleY(@ratio); -} -.skew(@x; @y) { - -webkit-transform: skewX(@x) skewY(@y); - -ms-transform: skewX(@x) skewY(@y); // See https://github.com/twbs/bootstrap/issues/4885; IE9+ - -o-transform: skewX(@x) skewY(@y); - transform: skewX(@x) skewY(@y); -} -.translate(@x; @y) { - -webkit-transform: translate(@x, @y); - -ms-transform: translate(@x, @y); // IE9 only - -o-transform: translate(@x, @y); - transform: translate(@x, @y); -} -.translate3d(@x; @y; @z) { - -webkit-transform: translate3d(@x, @y, @z); - transform: translate3d(@x, @y, @z); -} -.rotate(@degrees) { - -webkit-transform: rotate(@degrees); - -ms-transform: rotate(@degrees); // IE9 only - -o-transform: rotate(@degrees); - transform: rotate(@degrees); -} -.rotateX(@degrees) { - -webkit-transform: rotateX(@degrees); - -ms-transform: rotateX(@degrees); // IE9 only - -o-transform: rotateX(@degrees); - transform: rotateX(@degrees); -} -.rotateY(@degrees) { - -webkit-transform: rotateY(@degrees); - -ms-transform: rotateY(@degrees); // IE9 only - -o-transform: rotateY(@degrees); - transform: rotateY(@degrees); -} -.perspective(@perspective) { - -webkit-perspective: @perspective; - -moz-perspective: @perspective; - perspective: @perspective; -} -.perspective-origin(@perspective) { - -webkit-perspective-origin: @perspective; - -moz-perspective-origin: @perspective; - perspective-origin: @perspective; -} -.transform-origin(@origin) { - -webkit-transform-origin: @origin; - -moz-transform-origin: @origin; - -ms-transform-origin: @origin; // IE9 only - transform-origin: @origin; -} - - -// Transitions - -.transition(@transition) { - -webkit-transition: @transition; - -o-transition: @transition; - transition: @transition; -} -.transition-property(@transition-property) { - -webkit-transition-property: @transition-property; - transition-property: @transition-property; -} -.transition-delay(@transition-delay) { - -webkit-transition-delay: @transition-delay; - transition-delay: @transition-delay; -} -.transition-duration(@transition-duration) { - -webkit-transition-duration: @transition-duration; - transition-duration: @transition-duration; -} -.transition-timing-function(@timing-function) { - -webkit-transition-timing-function: @timing-function; - transition-timing-function: @timing-function; -} -.transition-transform(@transition) { - -webkit-transition: -webkit-transform @transition; - -moz-transition: -moz-transform @transition; - -o-transition: -o-transform @transition; - transition: transform @transition; -} - - -// User select -// For selecting text on the page - -.user-select(@select) { - -webkit-user-select: @select; - -moz-user-select: @select; - -ms-user-select: @select; // IE10+ - user-select: @select; -} diff --git a/admin/bower_components/bootstrap/less/modals.less b/admin/bower_components/bootstrap/less/modals.less deleted file mode 100644 index 767ce36..0000000 --- a/admin/bower_components/bootstrap/less/modals.less +++ /dev/null @@ -1,150 +0,0 @@ -// -// Modals -// -------------------------------------------------- - -// .modal-open - body class for killing the scroll -// .modal - container to scroll within -// .modal-dialog - positioning shell for the actual modal -// .modal-content - actual modal w/ bg and corners and shit - -// Kill the scroll on the body -.modal-open { - overflow: hidden; -} - -// Container that the modal scrolls within -.modal { - display: none; - overflow: hidden; - position: fixed; - top: 0; - right: 0; - bottom: 0; - left: 0; - z-index: @zindex-modal; - -webkit-overflow-scrolling: touch; - - // Prevent Chrome on Windows from adding a focus outline. For details, see - // https://github.com/twbs/bootstrap/pull/10951. - outline: 0; - - // When fading in the modal, animate it to slide down - &.fade .modal-dialog { - .translate(0, -25%); - .transition-transform(~"0.3s ease-out"); - } - &.in .modal-dialog { .translate(0, 0) } -} -.modal-open .modal { - overflow-x: hidden; - overflow-y: auto; -} - -// Shell div to position the modal with bottom padding -.modal-dialog { - position: relative; - width: auto; - margin: 10px; -} - -// Actual modal -.modal-content { - position: relative; - background-color: @modal-content-bg; - border: 1px solid @modal-content-fallback-border-color; //old browsers fallback (ie8 etc) - border: 1px solid @modal-content-border-color; - border-radius: @border-radius-large; - .box-shadow(0 3px 9px rgba(0,0,0,.5)); - background-clip: padding-box; - // Remove focus outline from opened modal - outline: 0; -} - -// Modal background -.modal-backdrop { - position: fixed; - top: 0; - right: 0; - bottom: 0; - left: 0; - z-index: @zindex-modal-background; - background-color: @modal-backdrop-bg; - // Fade for backdrop - &.fade { .opacity(0); } - &.in { .opacity(@modal-backdrop-opacity); } -} - -// Modal header -// Top section of the modal w/ title and dismiss -.modal-header { - padding: @modal-title-padding; - border-bottom: 1px solid @modal-header-border-color; - &:extend(.clearfix all); -} -// Close icon -.modal-header .close { - margin-top: -2px; -} - -// Title text within header -.modal-title { - margin: 0; - line-height: @modal-title-line-height; -} - -// Modal body -// Where all modal content resides (sibling of .modal-header and .modal-footer) -.modal-body { - position: relative; - padding: @modal-inner-padding; -} - -// Footer (for actions) -.modal-footer { - padding: @modal-inner-padding; - text-align: right; // right align buttons - border-top: 1px solid @modal-footer-border-color; - &:extend(.clearfix all); // clear it in case folks use .pull-* classes on buttons - - // Properly space out buttons - .btn + .btn { - margin-left: 5px; - margin-bottom: 0; // account for input[type="submit"] which gets the bottom margin like all other inputs - } - // but override that for button groups - .btn-group .btn + .btn { - margin-left: -1px; - } - // and override it for block buttons as well - .btn-block + .btn-block { - margin-left: 0; - } -} - -// Measure scrollbar width for padding body during modal show/hide -.modal-scrollbar-measure { - position: absolute; - top: -9999px; - width: 50px; - height: 50px; - overflow: scroll; -} - -// Scale up the modal -@media (min-width: @screen-sm-min) { - // Automatically set modal's width for larger viewports - .modal-dialog { - width: @modal-md; - margin: 30px auto; - } - .modal-content { - .box-shadow(0 5px 15px rgba(0,0,0,.5)); - } - - // Modal sizes - .modal-sm { width: @modal-sm; } -} - -@media (min-width: @screen-md-min) { - .modal-lg { width: @modal-lg; } -} diff --git a/admin/bower_components/bootstrap/less/navbar.less b/admin/bower_components/bootstrap/less/navbar.less deleted file mode 100644 index 6d751bb..0000000 --- a/admin/bower_components/bootstrap/less/navbar.less +++ /dev/null @@ -1,660 +0,0 @@ -// -// Navbars -// -------------------------------------------------- - - -// Wrapper and base class -// -// Provide a static navbar from which we expand to create full-width, fixed, and -// other navbar variations. - -.navbar { - position: relative; - min-height: @navbar-height; // Ensure a navbar always shows (e.g., without a .navbar-brand in collapsed mode) - margin-bottom: @navbar-margin-bottom; - border: 1px solid transparent; - - // Prevent floats from breaking the navbar - &:extend(.clearfix all); - - @media (min-width: @grid-float-breakpoint) { - border-radius: @navbar-border-radius; - } -} - - -// Navbar heading -// -// Groups `.navbar-brand` and `.navbar-toggle` into a single component for easy -// styling of responsive aspects. - -.navbar-header { - &:extend(.clearfix all); - - @media (min-width: @grid-float-breakpoint) { - float: left; - } -} - - -// Navbar collapse (body) -// -// Group your navbar content into this for easy collapsing and expanding across -// various device sizes. By default, this content is collapsed when <768px, but -// will expand past that for a horizontal display. -// -// To start (on mobile devices) the navbar links, forms, and buttons are stacked -// vertically and include a `max-height` to overflow in case you have too much -// content for the user's viewport. - -.navbar-collapse { - overflow-x: visible; - padding-right: @navbar-padding-horizontal; - padding-left: @navbar-padding-horizontal; - border-top: 1px solid transparent; - box-shadow: inset 0 1px 0 rgba(255,255,255,.1); - &:extend(.clearfix all); - -webkit-overflow-scrolling: touch; - - &.in { - overflow-y: auto; - } - - @media (min-width: @grid-float-breakpoint) { - width: auto; - border-top: 0; - box-shadow: none; - - &.collapse { - display: block !important; - height: auto !important; - padding-bottom: 0; // Override default setting - overflow: visible !important; - } - - &.in { - overflow-y: visible; - } - - // Undo the collapse side padding for navbars with containers to ensure - // alignment of right-aligned contents. - .navbar-fixed-top &, - .navbar-static-top &, - .navbar-fixed-bottom & { - padding-left: 0; - padding-right: 0; - } - } -} - -.navbar-fixed-top, -.navbar-fixed-bottom { - .navbar-collapse { - max-height: @navbar-collapse-max-height; - - @media (max-device-width: @screen-xs-min) and (orientation: landscape) { - max-height: 200px; - } - } -} - - -// Both navbar header and collapse -// -// When a container is present, change the behavior of the header and collapse. - -.container, -.container-fluid { - > .navbar-header, - > .navbar-collapse { - margin-right: -@navbar-padding-horizontal; - margin-left: -@navbar-padding-horizontal; - - @media (min-width: @grid-float-breakpoint) { - margin-right: 0; - margin-left: 0; - } - } -} - - -// -// Navbar alignment options -// -// Display the navbar across the entirety of the page or fixed it to the top or -// bottom of the page. - -// Static top (unfixed, but 100% wide) navbar -.navbar-static-top { - z-index: @zindex-navbar; - border-width: 0 0 1px; - - @media (min-width: @grid-float-breakpoint) { - border-radius: 0; - } -} - -// Fix the top/bottom navbars when screen real estate supports it -.navbar-fixed-top, -.navbar-fixed-bottom { - position: fixed; - right: 0; - left: 0; - z-index: @zindex-navbar-fixed; - - // Undo the rounded corners - @media (min-width: @grid-float-breakpoint) { - border-radius: 0; - } -} -.navbar-fixed-top { - top: 0; - border-width: 0 0 1px; -} -.navbar-fixed-bottom { - bottom: 0; - margin-bottom: 0; // override .navbar defaults - border-width: 1px 0 0; -} - - -// Brand/project name - -.navbar-brand { - float: left; - padding: @navbar-padding-vertical @navbar-padding-horizontal; - font-size: @font-size-large; - line-height: @line-height-computed; - height: @navbar-height; - - &:hover, - &:focus { - text-decoration: none; - } - - > img { - display: block; - } - - @media (min-width: @grid-float-breakpoint) { - .navbar > .container &, - .navbar > .container-fluid & { - margin-left: -@navbar-padding-horizontal; - } - } -} - - -// Navbar toggle -// -// Custom button for toggling the `.navbar-collapse`, powered by the collapse -// JavaScript plugin. - -.navbar-toggle { - position: relative; - float: right; - margin-right: @navbar-padding-horizontal; - padding: 9px 10px; - .navbar-vertical-align(34px); - background-color: transparent; - background-image: none; // Reset unusual Firefox-on-Android default style; see https://github.com/necolas/normalize.css/issues/214 - border: 1px solid transparent; - border-radius: @border-radius-base; - - // We remove the `outline` here, but later compensate by attaching `:hover` - // styles to `:focus`. - &:focus { - outline: 0; - } - - // Bars - .icon-bar { - display: block; - width: 22px; - height: 2px; - border-radius: 1px; - } - .icon-bar + .icon-bar { - margin-top: 4px; - } - - @media (min-width: @grid-float-breakpoint) { - display: none; - } -} - - -// Navbar nav links -// -// Builds on top of the `.nav` components with its own modifier class to make -// the nav the full height of the horizontal nav (above 768px). - -.navbar-nav { - margin: (@navbar-padding-vertical / 2) -@navbar-padding-horizontal; - - > li > a { - padding-top: 10px; - padding-bottom: 10px; - line-height: @line-height-computed; - } - - @media (max-width: @grid-float-breakpoint-max) { - // Dropdowns get custom display when collapsed - .open .dropdown-menu { - position: static; - float: none; - width: auto; - margin-top: 0; - background-color: transparent; - border: 0; - box-shadow: none; - > li > a, - .dropdown-header { - padding: 5px 15px 5px 25px; - } - > li > a { - line-height: @line-height-computed; - &:hover, - &:focus { - background-image: none; - } - } - } - } - - // Uncollapse the nav - @media (min-width: @grid-float-breakpoint) { - float: left; - margin: 0; - - > li { - float: left; - > a { - padding-top: @navbar-padding-vertical; - padding-bottom: @navbar-padding-vertical; - } - } - } -} - - -// Navbar form -// -// Extension of the `.form-inline` with some extra flavor for optimum display in -// our navbars. - -.navbar-form { - margin-left: -@navbar-padding-horizontal; - margin-right: -@navbar-padding-horizontal; - padding: 10px @navbar-padding-horizontal; - border-top: 1px solid transparent; - border-bottom: 1px solid transparent; - @shadow: inset 0 1px 0 rgba(255,255,255,.1), 0 1px 0 rgba(255,255,255,.1); - .box-shadow(@shadow); - - // Mixin behavior for optimum display - .form-inline(); - - .form-group { - @media (max-width: @grid-float-breakpoint-max) { - margin-bottom: 5px; - - &:last-child { - margin-bottom: 0; - } - } - } - - // Vertically center in expanded, horizontal navbar - .navbar-vertical-align(@input-height-base); - - // Undo 100% width for pull classes - @media (min-width: @grid-float-breakpoint) { - width: auto; - border: 0; - margin-left: 0; - margin-right: 0; - padding-top: 0; - padding-bottom: 0; - .box-shadow(none); - } -} - - -// Dropdown menus - -// Menu position and menu carets -.navbar-nav > li > .dropdown-menu { - margin-top: 0; - .border-top-radius(0); -} -// Menu position and menu caret support for dropups via extra dropup class -.navbar-fixed-bottom .navbar-nav > li > .dropdown-menu { - margin-bottom: 0; - .border-top-radius(@navbar-border-radius); - .border-bottom-radius(0); -} - - -// Buttons in navbars -// -// Vertically center a button within a navbar (when *not* in a form). - -.navbar-btn { - .navbar-vertical-align(@input-height-base); - - &.btn-sm { - .navbar-vertical-align(@input-height-small); - } - &.btn-xs { - .navbar-vertical-align(22); - } -} - - -// Text in navbars -// -// Add a class to make any element properly align itself vertically within the navbars. - -.navbar-text { - .navbar-vertical-align(@line-height-computed); - - @media (min-width: @grid-float-breakpoint) { - float: left; - margin-left: @navbar-padding-horizontal; - margin-right: @navbar-padding-horizontal; - } -} - - -// Component alignment -// -// Repurpose the pull utilities as their own navbar utilities to avoid specificity -// issues with parents and chaining. Only do this when the navbar is uncollapsed -// though so that navbar contents properly stack and align in mobile. -// -// Declared after the navbar components to ensure more specificity on the margins. - -@media (min-width: @grid-float-breakpoint) { - .navbar-left { .pull-left(); } - .navbar-right { - .pull-right(); - margin-right: -@navbar-padding-horizontal; - - ~ .navbar-right { - margin-right: 0; - } - } -} - - -// Alternate navbars -// -------------------------------------------------- - -// Default navbar -.navbar-default { - background-color: @navbar-default-bg; - border-color: @navbar-default-border; - - .navbar-brand { - color: @navbar-default-brand-color; - &:hover, - &:focus { - color: @navbar-default-brand-hover-color; - background-color: @navbar-default-brand-hover-bg; - } - } - - .navbar-text { - color: @navbar-default-color; - } - - .navbar-nav { - > li > a { - color: @navbar-default-link-color; - - &:hover, - &:focus { - color: @navbar-default-link-hover-color; - background-color: @navbar-default-link-hover-bg; - } - } - > .active > a { - &, - &:hover, - &:focus { - color: @navbar-default-link-active-color; - background-color: @navbar-default-link-active-bg; - } - } - > .disabled > a { - &, - &:hover, - &:focus { - color: @navbar-default-link-disabled-color; - background-color: @navbar-default-link-disabled-bg; - } - } - } - - .navbar-toggle { - border-color: @navbar-default-toggle-border-color; - &:hover, - &:focus { - background-color: @navbar-default-toggle-hover-bg; - } - .icon-bar { - background-color: @navbar-default-toggle-icon-bar-bg; - } - } - - .navbar-collapse, - .navbar-form { - border-color: @navbar-default-border; - } - - // Dropdown menu items - .navbar-nav { - // Remove background color from open dropdown - > .open > a { - &, - &:hover, - &:focus { - background-color: @navbar-default-link-active-bg; - color: @navbar-default-link-active-color; - } - } - - @media (max-width: @grid-float-breakpoint-max) { - // Dropdowns get custom display when collapsed - .open .dropdown-menu { - > li > a { - color: @navbar-default-link-color; - &:hover, - &:focus { - color: @navbar-default-link-hover-color; - background-color: @navbar-default-link-hover-bg; - } - } - > .active > a { - &, - &:hover, - &:focus { - color: @navbar-default-link-active-color; - background-color: @navbar-default-link-active-bg; - } - } - > .disabled > a { - &, - &:hover, - &:focus { - color: @navbar-default-link-disabled-color; - background-color: @navbar-default-link-disabled-bg; - } - } - } - } - } - - - // Links in navbars - // - // Add a class to ensure links outside the navbar nav are colored correctly. - - .navbar-link { - color: @navbar-default-link-color; - &:hover { - color: @navbar-default-link-hover-color; - } - } - - .btn-link { - color: @navbar-default-link-color; - &:hover, - &:focus { - color: @navbar-default-link-hover-color; - } - &[disabled], - fieldset[disabled] & { - &:hover, - &:focus { - color: @navbar-default-link-disabled-color; - } - } - } -} - -// Inverse navbar - -.navbar-inverse { - background-color: @navbar-inverse-bg; - border-color: @navbar-inverse-border; - - .navbar-brand { - color: @navbar-inverse-brand-color; - &:hover, - &:focus { - color: @navbar-inverse-brand-hover-color; - background-color: @navbar-inverse-brand-hover-bg; - } - } - - .navbar-text { - color: @navbar-inverse-color; - } - - .navbar-nav { - > li > a { - color: @navbar-inverse-link-color; - - &:hover, - &:focus { - color: @navbar-inverse-link-hover-color; - background-color: @navbar-inverse-link-hover-bg; - } - } - > .active > a { - &, - &:hover, - &:focus { - color: @navbar-inverse-link-active-color; - background-color: @navbar-inverse-link-active-bg; - } - } - > .disabled > a { - &, - &:hover, - &:focus { - color: @navbar-inverse-link-disabled-color; - background-color: @navbar-inverse-link-disabled-bg; - } - } - } - - // Darken the responsive nav toggle - .navbar-toggle { - border-color: @navbar-inverse-toggle-border-color; - &:hover, - &:focus { - background-color: @navbar-inverse-toggle-hover-bg; - } - .icon-bar { - background-color: @navbar-inverse-toggle-icon-bar-bg; - } - } - - .navbar-collapse, - .navbar-form { - border-color: darken(@navbar-inverse-bg, 7%); - } - - // Dropdowns - .navbar-nav { - > .open > a { - &, - &:hover, - &:focus { - background-color: @navbar-inverse-link-active-bg; - color: @navbar-inverse-link-active-color; - } - } - - @media (max-width: @grid-float-breakpoint-max) { - // Dropdowns get custom display - .open .dropdown-menu { - > .dropdown-header { - border-color: @navbar-inverse-border; - } - .divider { - background-color: @navbar-inverse-border; - } - > li > a { - color: @navbar-inverse-link-color; - &:hover, - &:focus { - color: @navbar-inverse-link-hover-color; - background-color: @navbar-inverse-link-hover-bg; - } - } - > .active > a { - &, - &:hover, - &:focus { - color: @navbar-inverse-link-active-color; - background-color: @navbar-inverse-link-active-bg; - } - } - > .disabled > a { - &, - &:hover, - &:focus { - color: @navbar-inverse-link-disabled-color; - background-color: @navbar-inverse-link-disabled-bg; - } - } - } - } - } - - .navbar-link { - color: @navbar-inverse-link-color; - &:hover { - color: @navbar-inverse-link-hover-color; - } - } - - .btn-link { - color: @navbar-inverse-link-color; - &:hover, - &:focus { - color: @navbar-inverse-link-hover-color; - } - &[disabled], - fieldset[disabled] & { - &:hover, - &:focus { - color: @navbar-inverse-link-disabled-color; - } - } - } -} diff --git a/admin/bower_components/bootstrap/less/navs.less b/admin/bower_components/bootstrap/less/navs.less deleted file mode 100644 index a3d11b1..0000000 --- a/admin/bower_components/bootstrap/less/navs.less +++ /dev/null @@ -1,242 +0,0 @@ -// -// Navs -// -------------------------------------------------- - - -// Base class -// -------------------------------------------------- - -.nav { - margin-bottom: 0; - padding-left: 0; // Override default ul/ol - list-style: none; - &:extend(.clearfix all); - - > li { - position: relative; - display: block; - - > a { - position: relative; - display: block; - padding: @nav-link-padding; - &:hover, - &:focus { - text-decoration: none; - background-color: @nav-link-hover-bg; - } - } - - // Disabled state sets text to gray and nukes hover/tab effects - &.disabled > a { - color: @nav-disabled-link-color; - - &:hover, - &:focus { - color: @nav-disabled-link-hover-color; - text-decoration: none; - background-color: transparent; - cursor: @cursor-disabled; - } - } - } - - // Open dropdowns - .open > a { - &, - &:hover, - &:focus { - background-color: @nav-link-hover-bg; - border-color: @link-color; - } - } - - // Nav dividers (deprecated with v3.0.1) - // - // This should have been removed in v3 with the dropping of `.nav-list`, but - // we missed it. We don't currently support this anywhere, but in the interest - // of maintaining backward compatibility in case you use it, it's deprecated. - .nav-divider { - .nav-divider(); - } - - // Prevent IE8 from misplacing imgs - // - // See https://github.com/h5bp/html5-boilerplate/issues/984#issuecomment-3985989 - > li > a > img { - max-width: none; - } -} - - -// Tabs -// ------------------------- - -// Give the tabs something to sit on -.nav-tabs { - border-bottom: 1px solid @nav-tabs-border-color; - > li { - float: left; - // Make the list-items overlay the bottom border - margin-bottom: -1px; - - // Actual tabs (as links) - > a { - margin-right: 2px; - line-height: @line-height-base; - border: 1px solid transparent; - border-radius: @border-radius-base @border-radius-base 0 0; - &:hover { - border-color: @nav-tabs-link-hover-border-color @nav-tabs-link-hover-border-color @nav-tabs-border-color; - } - } - - // Active state, and its :hover to override normal :hover - &.active > a { - &, - &:hover, - &:focus { - color: @nav-tabs-active-link-hover-color; - background-color: @nav-tabs-active-link-hover-bg; - border: 1px solid @nav-tabs-active-link-hover-border-color; - border-bottom-color: transparent; - cursor: default; - } - } - } - // pulling this in mainly for less shorthand - &.nav-justified { - .nav-justified(); - .nav-tabs-justified(); - } -} - - -// Pills -// ------------------------- -.nav-pills { - > li { - float: left; - - // Links rendered as pills - > a { - border-radius: @nav-pills-border-radius; - } - + li { - margin-left: 2px; - } - - // Active state - &.active > a { - &, - &:hover, - &:focus { - color: @nav-pills-active-link-hover-color; - background-color: @nav-pills-active-link-hover-bg; - } - } - } -} - - -// Stacked pills -.nav-stacked { - > li { - float: none; - + li { - margin-top: 2px; - margin-left: 0; // no need for this gap between nav items - } - } -} - - -// Nav variations -// -------------------------------------------------- - -// Justified nav links -// ------------------------- - -.nav-justified { - width: 100%; - - > li { - float: none; - > a { - text-align: center; - margin-bottom: 5px; - } - } - - > .dropdown .dropdown-menu { - top: auto; - left: auto; - } - - @media (min-width: @screen-sm-min) { - > li { - display: table-cell; - width: 1%; - > a { - margin-bottom: 0; - } - } - } -} - -// Move borders to anchors instead of bottom of list -// -// Mixin for adding on top the shared `.nav-justified` styles for our tabs -.nav-tabs-justified { - border-bottom: 0; - - > li > a { - // Override margin from .nav-tabs - margin-right: 0; - border-radius: @border-radius-base; - } - - > .active > a, - > .active > a:hover, - > .active > a:focus { - border: 1px solid @nav-tabs-justified-link-border-color; - } - - @media (min-width: @screen-sm-min) { - > li > a { - border-bottom: 1px solid @nav-tabs-justified-link-border-color; - border-radius: @border-radius-base @border-radius-base 0 0; - } - > .active > a, - > .active > a:hover, - > .active > a:focus { - border-bottom-color: @nav-tabs-justified-active-link-border-color; - } - } -} - - -// Tabbable tabs -// ------------------------- - -// Hide tabbable panes to start, show them when `.active` -.tab-content { - > .tab-pane { - display: none; - } - > .active { - display: block; - } -} - - -// Dropdowns -// ------------------------- - -// Specific dropdowns -.nav-tabs .dropdown-menu { - // make dropdown border overlap tab border - margin-top: -1px; - // Remove the top rounded corners here since there is a hard edge above the menu - .border-top-radius(0); -} diff --git a/admin/bower_components/bootstrap/less/normalize.less b/admin/bower_components/bootstrap/less/normalize.less deleted file mode 100644 index 9dddf73..0000000 --- a/admin/bower_components/bootstrap/less/normalize.less +++ /dev/null @@ -1,424 +0,0 @@ -/*! normalize.css v3.0.3 | MIT License | github.com/necolas/normalize.css */ - -// -// 1. Set default font family to sans-serif. -// 2. Prevent iOS and IE text size adjust after device orientation change, -// without disabling user zoom. -// - -html { - font-family: sans-serif; // 1 - -ms-text-size-adjust: 100%; // 2 - -webkit-text-size-adjust: 100%; // 2 -} - -// -// Remove default margin. -// - -body { - margin: 0; -} - -// HTML5 display definitions -// ========================================================================== - -// -// Correct `block` display not defined for any HTML5 element in IE 8/9. -// Correct `block` display not defined for `details` or `summary` in IE 10/11 -// and Firefox. -// Correct `block` display not defined for `main` in IE 11. -// - -article, -aside, -details, -figcaption, -figure, -footer, -header, -hgroup, -main, -menu, -nav, -section, -summary { - display: block; -} - -// -// 1. Correct `inline-block` display not defined in IE 8/9. -// 2. Normalize vertical alignment of `progress` in Chrome, Firefox, and Opera. -// - -audio, -canvas, -progress, -video { - display: inline-block; // 1 - vertical-align: baseline; // 2 -} - -// -// Prevent modern browsers from displaying `audio` without controls. -// Remove excess height in iOS 5 devices. -// - -audio:not([controls]) { - display: none; - height: 0; -} - -// -// Address `[hidden]` styling not present in IE 8/9/10. -// Hide the `template` element in IE 8/9/10/11, Safari, and Firefox < 22. -// - -[hidden], -template { - display: none; -} - -// Links -// ========================================================================== - -// -// Remove the gray background color from active links in IE 10. -// - -a { - background-color: transparent; -} - -// -// Improve readability of focused elements when they are also in an -// active/hover state. -// - -a:active, -a:hover { - outline: 0; -} - -// Text-level semantics -// ========================================================================== - -// -// Address styling not present in IE 8/9/10/11, Safari, and Chrome. -// - -abbr[title] { - border-bottom: 1px dotted; -} - -// -// Address style set to `bolder` in Firefox 4+, Safari, and Chrome. -// - -b, -strong { - font-weight: bold; -} - -// -// Address styling not present in Safari and Chrome. -// - -dfn { - font-style: italic; -} - -// -// Address variable `h1` font-size and margin within `section` and `article` -// contexts in Firefox 4+, Safari, and Chrome. -// - -h1 { - font-size: 2em; - margin: 0.67em 0; -} - -// -// Address styling not present in IE 8/9. -// - -mark { - background: #ff0; - color: #000; -} - -// -// Address inconsistent and variable font size in all browsers. -// - -small { - font-size: 80%; -} - -// -// Prevent `sub` and `sup` affecting `line-height` in all browsers. -// - -sub, -sup { - font-size: 75%; - line-height: 0; - position: relative; - vertical-align: baseline; -} - -sup { - top: -0.5em; -} - -sub { - bottom: -0.25em; -} - -// Embedded content -// ========================================================================== - -// -// Remove border when inside `a` element in IE 8/9/10. -// - -img { - border: 0; -} - -// -// Correct overflow not hidden in IE 9/10/11. -// - -svg:not(:root) { - overflow: hidden; -} - -// Grouping content -// ========================================================================== - -// -// Address margin not present in IE 8/9 and Safari. -// - -figure { - margin: 1em 40px; -} - -// -// Address differences between Firefox and other browsers. -// - -hr { - box-sizing: content-box; - height: 0; -} - -// -// Contain overflow in all browsers. -// - -pre { - overflow: auto; -} - -// -// Address odd `em`-unit font size rendering in all browsers. -// - -code, -kbd, -pre, -samp { - font-family: monospace, monospace; - font-size: 1em; -} - -// Forms -// ========================================================================== - -// -// Known limitation: by default, Chrome and Safari on OS X allow very limited -// styling of `select`, unless a `border` property is set. -// - -// -// 1. Correct color not being inherited. -// Known issue: affects color of disabled elements. -// 2. Correct font properties not being inherited. -// 3. Address margins set differently in Firefox 4+, Safari, and Chrome. -// - -button, -input, -optgroup, -select, -textarea { - color: inherit; // 1 - font: inherit; // 2 - margin: 0; // 3 -} - -// -// Address `overflow` set to `hidden` in IE 8/9/10/11. -// - -button { - overflow: visible; -} - -// -// Address inconsistent `text-transform` inheritance for `button` and `select`. -// All other form control elements do not inherit `text-transform` values. -// Correct `button` style inheritance in Firefox, IE 8/9/10/11, and Opera. -// Correct `select` style inheritance in Firefox. -// - -button, -select { - text-transform: none; -} - -// -// 1. Avoid the WebKit bug in Android 4.0.* where (2) destroys native `audio` -// and `video` controls. -// 2. Correct inability to style clickable `input` types in iOS. -// 3. Improve usability and consistency of cursor style between image-type -// `input` and others. -// - -button, -html input[type="button"], // 1 -input[type="reset"], -input[type="submit"] { - -webkit-appearance: button; // 2 - cursor: pointer; // 3 -} - -// -// Re-set default cursor for disabled elements. -// - -button[disabled], -html input[disabled] { - cursor: default; -} - -// -// Remove inner padding and border in Firefox 4+. -// - -button::-moz-focus-inner, -input::-moz-focus-inner { - border: 0; - padding: 0; -} - -// -// Address Firefox 4+ setting `line-height` on `input` using `!important` in -// the UA stylesheet. -// - -input { - line-height: normal; -} - -// -// It's recommended that you don't attempt to style these elements. -// Firefox's implementation doesn't respect box-sizing, padding, or width. -// -// 1. Address box sizing set to `content-box` in IE 8/9/10. -// 2. Remove excess padding in IE 8/9/10. -// - -input[type="checkbox"], -input[type="radio"] { - box-sizing: border-box; // 1 - padding: 0; // 2 -} - -// -// Fix the cursor style for Chrome's increment/decrement buttons. For certain -// `font-size` values of the `input`, it causes the cursor style of the -// decrement button to change from `default` to `text`. -// - -input[type="number"]::-webkit-inner-spin-button, -input[type="number"]::-webkit-outer-spin-button { - height: auto; -} - -// -// 1. Address `appearance` set to `searchfield` in Safari and Chrome. -// 2. Address `box-sizing` set to `border-box` in Safari and Chrome. -// - -input[type="search"] { - -webkit-appearance: textfield; // 1 - box-sizing: content-box; //2 -} - -// -// Remove inner padding and search cancel button in Safari and Chrome on OS X. -// Safari (but not Chrome) clips the cancel button when the search input has -// padding (and `textfield` appearance). -// - -input[type="search"]::-webkit-search-cancel-button, -input[type="search"]::-webkit-search-decoration { - -webkit-appearance: none; -} - -// -// Define consistent border, margin, and padding. -// - -fieldset { - border: 1px solid #c0c0c0; - margin: 0 2px; - padding: 0.35em 0.625em 0.75em; -} - -// -// 1. Correct `color` not being inherited in IE 8/9/10/11. -// 2. Remove padding so people aren't caught out if they zero out fieldsets. -// - -legend { - border: 0; // 1 - padding: 0; // 2 -} - -// -// Remove default vertical scrollbar in IE 8/9/10/11. -// - -textarea { - overflow: auto; -} - -// -// Don't inherit the `font-weight` (applied by a rule above). -// NOTE: the default cannot safely be changed in Chrome and Safari on OS X. -// - -optgroup { - font-weight: bold; -} - -// Tables -// ========================================================================== - -// -// Remove most spacing between table cells. -// - -table { - border-collapse: collapse; - border-spacing: 0; -} - -td, -th { - padding: 0; -} diff --git a/admin/bower_components/bootstrap/less/pager.less b/admin/bower_components/bootstrap/less/pager.less deleted file mode 100644 index 41abaaa..0000000 --- a/admin/bower_components/bootstrap/less/pager.less +++ /dev/null @@ -1,54 +0,0 @@ -// -// Pager pagination -// -------------------------------------------------- - - -.pager { - padding-left: 0; - margin: @line-height-computed 0; - list-style: none; - text-align: center; - &:extend(.clearfix all); - li { - display: inline; - > a, - > span { - display: inline-block; - padding: 5px 14px; - background-color: @pager-bg; - border: 1px solid @pager-border; - border-radius: @pager-border-radius; - } - - > a:hover, - > a:focus { - text-decoration: none; - background-color: @pager-hover-bg; - } - } - - .next { - > a, - > span { - float: right; - } - } - - .previous { - > a, - > span { - float: left; - } - } - - .disabled { - > a, - > a:hover, - > a:focus, - > span { - color: @pager-disabled-color; - background-color: @pager-bg; - cursor: @cursor-disabled; - } - } -} diff --git a/admin/bower_components/bootstrap/less/pagination.less b/admin/bower_components/bootstrap/less/pagination.less deleted file mode 100644 index 31f77aa..0000000 --- a/admin/bower_components/bootstrap/less/pagination.less +++ /dev/null @@ -1,89 +0,0 @@ -// -// Pagination (multiple pages) -// -------------------------------------------------- -.pagination { - display: inline-block; - padding-left: 0; - margin: @line-height-computed 0; - border-radius: @border-radius-base; - - > li { - display: inline; // Remove list-style and block-level defaults - > a, - > span { - position: relative; - float: left; // Collapse white-space - padding: @padding-base-vertical @padding-base-horizontal; - line-height: @line-height-base; - text-decoration: none; - color: @pagination-color; - background-color: @pagination-bg; - border: 1px solid @pagination-border; - margin-left: -1px; - } - &:first-child { - > a, - > span { - margin-left: 0; - .border-left-radius(@border-radius-base); - } - } - &:last-child { - > a, - > span { - .border-right-radius(@border-radius-base); - } - } - } - - > li > a, - > li > span { - &:hover, - &:focus { - z-index: 2; - color: @pagination-hover-color; - background-color: @pagination-hover-bg; - border-color: @pagination-hover-border; - } - } - - > .active > a, - > .active > span { - &, - &:hover, - &:focus { - z-index: 3; - color: @pagination-active-color; - background-color: @pagination-active-bg; - border-color: @pagination-active-border; - cursor: default; - } - } - - > .disabled { - > span, - > span:hover, - > span:focus, - > a, - > a:hover, - > a:focus { - color: @pagination-disabled-color; - background-color: @pagination-disabled-bg; - border-color: @pagination-disabled-border; - cursor: @cursor-disabled; - } - } -} - -// Sizing -// -------------------------------------------------- - -// Large -.pagination-lg { - .pagination-size(@padding-large-vertical; @padding-large-horizontal; @font-size-large; @line-height-large; @border-radius-large); -} - -// Small -.pagination-sm { - .pagination-size(@padding-small-vertical; @padding-small-horizontal; @font-size-small; @line-height-small; @border-radius-small); -} diff --git a/admin/bower_components/bootstrap/less/panels.less b/admin/bower_components/bootstrap/less/panels.less deleted file mode 100644 index 65aa3a8..0000000 --- a/admin/bower_components/bootstrap/less/panels.less +++ /dev/null @@ -1,271 +0,0 @@ -// -// Panels -// -------------------------------------------------- - - -// Base class -.panel { - margin-bottom: @line-height-computed; - background-color: @panel-bg; - border: 1px solid transparent; - border-radius: @panel-border-radius; - .box-shadow(0 1px 1px rgba(0,0,0,.05)); -} - -// Panel contents -.panel-body { - padding: @panel-body-padding; - &:extend(.clearfix all); -} - -// Optional heading -.panel-heading { - padding: @panel-heading-padding; - border-bottom: 1px solid transparent; - .border-top-radius((@panel-border-radius - 1)); - - > .dropdown .dropdown-toggle { - color: inherit; - } -} - -// Within heading, strip any `h*` tag of its default margins for spacing. -.panel-title { - margin-top: 0; - margin-bottom: 0; - font-size: ceil((@font-size-base * 1.125)); - color: inherit; - - > a, - > small, - > .small, - > small > a, - > .small > a { - color: inherit; - } -} - -// Optional footer (stays gray in every modifier class) -.panel-footer { - padding: @panel-footer-padding; - background-color: @panel-footer-bg; - border-top: 1px solid @panel-inner-border; - .border-bottom-radius((@panel-border-radius - 1)); -} - - -// List groups in panels -// -// By default, space out list group content from panel headings to account for -// any kind of custom content between the two. - -.panel { - > .list-group, - > .panel-collapse > .list-group { - margin-bottom: 0; - - .list-group-item { - border-width: 1px 0; - border-radius: 0; - } - - // Add border top radius for first one - &:first-child { - .list-group-item:first-child { - border-top: 0; - .border-top-radius((@panel-border-radius - 1)); - } - } - - // Add border bottom radius for last one - &:last-child { - .list-group-item:last-child { - border-bottom: 0; - .border-bottom-radius((@panel-border-radius - 1)); - } - } - } - > .panel-heading + .panel-collapse > .list-group { - .list-group-item:first-child { - .border-top-radius(0); - } - } -} -// Collapse space between when there's no additional content. -.panel-heading + .list-group { - .list-group-item:first-child { - border-top-width: 0; - } -} -.list-group + .panel-footer { - border-top-width: 0; -} - -// Tables in panels -// -// Place a non-bordered `.table` within a panel (not within a `.panel-body`) and -// watch it go full width. - -.panel { - > .table, - > .table-responsive > .table, - > .panel-collapse > .table { - margin-bottom: 0; - - caption { - padding-left: @panel-body-padding; - padding-right: @panel-body-padding; - } - } - // Add border top radius for first one - > .table:first-child, - > .table-responsive:first-child > .table:first-child { - .border-top-radius((@panel-border-radius - 1)); - - > thead:first-child, - > tbody:first-child { - > tr:first-child { - border-top-left-radius: (@panel-border-radius - 1); - border-top-right-radius: (@panel-border-radius - 1); - - td:first-child, - th:first-child { - border-top-left-radius: (@panel-border-radius - 1); - } - td:last-child, - th:last-child { - border-top-right-radius: (@panel-border-radius - 1); - } - } - } - } - // Add border bottom radius for last one - > .table:last-child, - > .table-responsive:last-child > .table:last-child { - .border-bottom-radius((@panel-border-radius - 1)); - - > tbody:last-child, - > tfoot:last-child { - > tr:last-child { - border-bottom-left-radius: (@panel-border-radius - 1); - border-bottom-right-radius: (@panel-border-radius - 1); - - td:first-child, - th:first-child { - border-bottom-left-radius: (@panel-border-radius - 1); - } - td:last-child, - th:last-child { - border-bottom-right-radius: (@panel-border-radius - 1); - } - } - } - } - > .panel-body + .table, - > .panel-body + .table-responsive, - > .table + .panel-body, - > .table-responsive + .panel-body { - border-top: 1px solid @table-border-color; - } - > .table > tbody:first-child > tr:first-child th, - > .table > tbody:first-child > tr:first-child td { - border-top: 0; - } - > .table-bordered, - > .table-responsive > .table-bordered { - border: 0; - > thead, - > tbody, - > tfoot { - > tr { - > th:first-child, - > td:first-child { - border-left: 0; - } - > th:last-child, - > td:last-child { - border-right: 0; - } - } - } - > thead, - > tbody { - > tr:first-child { - > td, - > th { - border-bottom: 0; - } - } - } - > tbody, - > tfoot { - > tr:last-child { - > td, - > th { - border-bottom: 0; - } - } - } - } - > .table-responsive { - border: 0; - margin-bottom: 0; - } -} - - -// Collapsible panels (aka, accordion) -// -// Wrap a series of panels in `.panel-group` to turn them into an accordion with -// the help of our collapse JavaScript plugin. - -.panel-group { - margin-bottom: @line-height-computed; - - // Tighten up margin so it's only between panels - .panel { - margin-bottom: 0; - border-radius: @panel-border-radius; - - + .panel { - margin-top: 5px; - } - } - - .panel-heading { - border-bottom: 0; - - + .panel-collapse > .panel-body, - + .panel-collapse > .list-group { - border-top: 1px solid @panel-inner-border; - } - } - - .panel-footer { - border-top: 0; - + .panel-collapse .panel-body { - border-bottom: 1px solid @panel-inner-border; - } - } -} - - -// Contextual variations -.panel-default { - .panel-variant(@panel-default-border; @panel-default-text; @panel-default-heading-bg; @panel-default-border); -} -.panel-primary { - .panel-variant(@panel-primary-border; @panel-primary-text; @panel-primary-heading-bg; @panel-primary-border); -} -.panel-success { - .panel-variant(@panel-success-border; @panel-success-text; @panel-success-heading-bg; @panel-success-border); -} -.panel-info { - .panel-variant(@panel-info-border; @panel-info-text; @panel-info-heading-bg; @panel-info-border); -} -.panel-warning { - .panel-variant(@panel-warning-border; @panel-warning-text; @panel-warning-heading-bg; @panel-warning-border); -} -.panel-danger { - .panel-variant(@panel-danger-border; @panel-danger-text; @panel-danger-heading-bg; @panel-danger-border); -} diff --git a/admin/bower_components/bootstrap/less/popovers.less b/admin/bower_components/bootstrap/less/popovers.less deleted file mode 100644 index 3a62a64..0000000 --- a/admin/bower_components/bootstrap/less/popovers.less +++ /dev/null @@ -1,131 +0,0 @@ -// -// Popovers -// -------------------------------------------------- - - -.popover { - position: absolute; - top: 0; - left: 0; - z-index: @zindex-popover; - display: none; - max-width: @popover-max-width; - padding: 1px; - // Our parent element can be arbitrary since popovers are by default inserted as a sibling of their target element. - // So reset our font and text properties to avoid inheriting weird values. - .reset-text(); - font-size: @font-size-base; - - background-color: @popover-bg; - background-clip: padding-box; - border: 1px solid @popover-fallback-border-color; - border: 1px solid @popover-border-color; - border-radius: @border-radius-large; - .box-shadow(0 5px 10px rgba(0,0,0,.2)); - - // Offset the popover to account for the popover arrow - &.top { margin-top: -@popover-arrow-width; } - &.right { margin-left: @popover-arrow-width; } - &.bottom { margin-top: @popover-arrow-width; } - &.left { margin-left: -@popover-arrow-width; } -} - -.popover-title { - margin: 0; // reset heading margin - padding: 8px 14px; - font-size: @font-size-base; - background-color: @popover-title-bg; - border-bottom: 1px solid darken(@popover-title-bg, 5%); - border-radius: (@border-radius-large - 1) (@border-radius-large - 1) 0 0; -} - -.popover-content { - padding: 9px 14px; -} - -// Arrows -// -// .arrow is outer, .arrow:after is inner - -.popover > .arrow { - &, - &:after { - position: absolute; - display: block; - width: 0; - height: 0; - border-color: transparent; - border-style: solid; - } -} -.popover > .arrow { - border-width: @popover-arrow-outer-width; -} -.popover > .arrow:after { - border-width: @popover-arrow-width; - content: ""; -} - -.popover { - &.top > .arrow { - left: 50%; - margin-left: -@popover-arrow-outer-width; - border-bottom-width: 0; - border-top-color: @popover-arrow-outer-fallback-color; // IE8 fallback - border-top-color: @popover-arrow-outer-color; - bottom: -@popover-arrow-outer-width; - &:after { - content: " "; - bottom: 1px; - margin-left: -@popover-arrow-width; - border-bottom-width: 0; - border-top-color: @popover-arrow-color; - } - } - &.right > .arrow { - top: 50%; - left: -@popover-arrow-outer-width; - margin-top: -@popover-arrow-outer-width; - border-left-width: 0; - border-right-color: @popover-arrow-outer-fallback-color; // IE8 fallback - border-right-color: @popover-arrow-outer-color; - &:after { - content: " "; - left: 1px; - bottom: -@popover-arrow-width; - border-left-width: 0; - border-right-color: @popover-arrow-color; - } - } - &.bottom > .arrow { - left: 50%; - margin-left: -@popover-arrow-outer-width; - border-top-width: 0; - border-bottom-color: @popover-arrow-outer-fallback-color; // IE8 fallback - border-bottom-color: @popover-arrow-outer-color; - top: -@popover-arrow-outer-width; - &:after { - content: " "; - top: 1px; - margin-left: -@popover-arrow-width; - border-top-width: 0; - border-bottom-color: @popover-arrow-color; - } - } - - &.left > .arrow { - top: 50%; - right: -@popover-arrow-outer-width; - margin-top: -@popover-arrow-outer-width; - border-right-width: 0; - border-left-color: @popover-arrow-outer-fallback-color; // IE8 fallback - border-left-color: @popover-arrow-outer-color; - &:after { - content: " "; - right: 1px; - border-right-width: 0; - border-left-color: @popover-arrow-color; - bottom: -@popover-arrow-width; - } - } -} diff --git a/admin/bower_components/bootstrap/less/print.less b/admin/bower_components/bootstrap/less/print.less deleted file mode 100644 index 66e54ab..0000000 --- a/admin/bower_components/bootstrap/less/print.less +++ /dev/null @@ -1,101 +0,0 @@ -/*! Source: https://github.com/h5bp/html5-boilerplate/blob/master/src/css/main.css */ - -// ========================================================================== -// Print styles. -// Inlined to avoid the additional HTTP request: h5bp.com/r -// ========================================================================== - -@media print { - *, - *:before, - *:after { - background: transparent !important; - color: #000 !important; // Black prints faster: h5bp.com/s - box-shadow: none !important; - text-shadow: none !important; - } - - a, - a:visited { - text-decoration: underline; - } - - a[href]:after { - content: " (" attr(href) ")"; - } - - abbr[title]:after { - content: " (" attr(title) ")"; - } - - // Don't show links that are fragment identifiers, - // or use the `javascript:` pseudo protocol - a[href^="#"]:after, - a[href^="javascript:"]:after { - content: ""; - } - - pre, - blockquote { - border: 1px solid #999; - page-break-inside: avoid; - } - - thead { - display: table-header-group; // h5bp.com/t - } - - tr, - img { - page-break-inside: avoid; - } - - img { - max-width: 100% !important; - } - - p, - h2, - h3 { - orphans: 3; - widows: 3; - } - - h2, - h3 { - page-break-after: avoid; - } - - // Bootstrap specific changes start - - // Bootstrap components - .navbar { - display: none; - } - .btn, - .dropup > .btn { - > .caret { - border-top-color: #000 !important; - } - } - .label { - border: 1px solid #000; - } - - .table { - border-collapse: collapse !important; - - td, - th { - background-color: #fff !important; - } - } - .table-bordered { - th, - td { - border: 1px solid #ddd !important; - } - } - - // Bootstrap specific changes end -} diff --git a/admin/bower_components/bootstrap/less/progress-bars.less b/admin/bower_components/bootstrap/less/progress-bars.less deleted file mode 100644 index 8868a1f..0000000 --- a/admin/bower_components/bootstrap/less/progress-bars.less +++ /dev/null @@ -1,87 +0,0 @@ -// -// Progress bars -// -------------------------------------------------- - - -// Bar animations -// ------------------------- - -// WebKit -@-webkit-keyframes progress-bar-stripes { - from { background-position: 40px 0; } - to { background-position: 0 0; } -} - -// Spec and IE10+ -@keyframes progress-bar-stripes { - from { background-position: 40px 0; } - to { background-position: 0 0; } -} - - -// Bar itself -// ------------------------- - -// Outer container -.progress { - overflow: hidden; - height: @line-height-computed; - margin-bottom: @line-height-computed; - background-color: @progress-bg; - border-radius: @progress-border-radius; - .box-shadow(inset 0 1px 2px rgba(0,0,0,.1)); -} - -// Bar of progress -.progress-bar { - float: left; - width: 0%; - height: 100%; - font-size: @font-size-small; - line-height: @line-height-computed; - color: @progress-bar-color; - text-align: center; - background-color: @progress-bar-bg; - .box-shadow(inset 0 -1px 0 rgba(0,0,0,.15)); - .transition(width .6s ease); -} - -// Striped bars -// -// `.progress-striped .progress-bar` is deprecated as of v3.2.0 in favor of the -// `.progress-bar-striped` class, which you just add to an existing -// `.progress-bar`. -.progress-striped .progress-bar, -.progress-bar-striped { - #gradient > .striped(); - background-size: 40px 40px; -} - -// Call animation for the active one -// -// `.progress.active .progress-bar` is deprecated as of v3.2.0 in favor of the -// `.progress-bar.active` approach. -.progress.active .progress-bar, -.progress-bar.active { - .animation(progress-bar-stripes 2s linear infinite); -} - - -// Variations -// ------------------------- - -.progress-bar-success { - .progress-bar-variant(@progress-bar-success-bg); -} - -.progress-bar-info { - .progress-bar-variant(@progress-bar-info-bg); -} - -.progress-bar-warning { - .progress-bar-variant(@progress-bar-warning-bg); -} - -.progress-bar-danger { - .progress-bar-variant(@progress-bar-danger-bg); -} diff --git a/admin/bower_components/bootstrap/less/responsive-embed.less b/admin/bower_components/bootstrap/less/responsive-embed.less deleted file mode 100644 index 080a511..0000000 --- a/admin/bower_components/bootstrap/less/responsive-embed.less +++ /dev/null @@ -1,35 +0,0 @@ -// Embeds responsive -// -// Credit: Nicolas Gallagher and SUIT CSS. - -.embed-responsive { - position: relative; - display: block; - height: 0; - padding: 0; - overflow: hidden; - - .embed-responsive-item, - iframe, - embed, - object, - video { - position: absolute; - top: 0; - left: 0; - bottom: 0; - height: 100%; - width: 100%; - border: 0; - } -} - -// Modifier class for 16:9 aspect ratio -.embed-responsive-16by9 { - padding-bottom: 56.25%; -} - -// Modifier class for 4:3 aspect ratio -.embed-responsive-4by3 { - padding-bottom: 75%; -} diff --git a/admin/bower_components/bootstrap/less/responsive-utilities.less b/admin/bower_components/bootstrap/less/responsive-utilities.less deleted file mode 100644 index b1db31d..0000000 --- a/admin/bower_components/bootstrap/less/responsive-utilities.less +++ /dev/null @@ -1,194 +0,0 @@ -// -// Responsive: Utility classes -// -------------------------------------------------- - - -// IE10 in Windows (Phone) 8 -// -// Support for responsive views via media queries is kind of borked in IE10, for -// Surface/desktop in split view and for Windows Phone 8. This particular fix -// must be accompanied by a snippet of JavaScript to sniff the user agent and -// apply some conditional CSS to *only* the Surface/desktop Windows 8. Look at -// our Getting Started page for more information on this bug. -// -// For more information, see the following: -// -// Issue: https://github.com/twbs/bootstrap/issues/10497 -// Docs: http://getbootstrap.com/getting-started/#support-ie10-width -// Source: http://timkadlec.com/2013/01/windows-phone-8-and-device-width/ -// Source: http://timkadlec.com/2012/10/ie10-snap-mode-and-responsive-design/ - -@-ms-viewport { - width: device-width; -} - - -// Visibility utilities -// Note: Deprecated .visible-xs, .visible-sm, .visible-md, and .visible-lg as of v3.2.0 -.visible-xs, -.visible-sm, -.visible-md, -.visible-lg { - .responsive-invisibility(); -} - -.visible-xs-block, -.visible-xs-inline, -.visible-xs-inline-block, -.visible-sm-block, -.visible-sm-inline, -.visible-sm-inline-block, -.visible-md-block, -.visible-md-inline, -.visible-md-inline-block, -.visible-lg-block, -.visible-lg-inline, -.visible-lg-inline-block { - display: none !important; -} - -.visible-xs { - @media (max-width: @screen-xs-max) { - .responsive-visibility(); - } -} -.visible-xs-block { - @media (max-width: @screen-xs-max) { - display: block !important; - } -} -.visible-xs-inline { - @media (max-width: @screen-xs-max) { - display: inline !important; - } -} -.visible-xs-inline-block { - @media (max-width: @screen-xs-max) { - display: inline-block !important; - } -} - -.visible-sm { - @media (min-width: @screen-sm-min) and (max-width: @screen-sm-max) { - .responsive-visibility(); - } -} -.visible-sm-block { - @media (min-width: @screen-sm-min) and (max-width: @screen-sm-max) { - display: block !important; - } -} -.visible-sm-inline { - @media (min-width: @screen-sm-min) and (max-width: @screen-sm-max) { - display: inline !important; - } -} -.visible-sm-inline-block { - @media (min-width: @screen-sm-min) and (max-width: @screen-sm-max) { - display: inline-block !important; - } -} - -.visible-md { - @media (min-width: @screen-md-min) and (max-width: @screen-md-max) { - .responsive-visibility(); - } -} -.visible-md-block { - @media (min-width: @screen-md-min) and (max-width: @screen-md-max) { - display: block !important; - } -} -.visible-md-inline { - @media (min-width: @screen-md-min) and (max-width: @screen-md-max) { - display: inline !important; - } -} -.visible-md-inline-block { - @media (min-width: @screen-md-min) and (max-width: @screen-md-max) { - display: inline-block !important; - } -} - -.visible-lg { - @media (min-width: @screen-lg-min) { - .responsive-visibility(); - } -} -.visible-lg-block { - @media (min-width: @screen-lg-min) { - display: block !important; - } -} -.visible-lg-inline { - @media (min-width: @screen-lg-min) { - display: inline !important; - } -} -.visible-lg-inline-block { - @media (min-width: @screen-lg-min) { - display: inline-block !important; - } -} - -.hidden-xs { - @media (max-width: @screen-xs-max) { - .responsive-invisibility(); - } -} -.hidden-sm { - @media (min-width: @screen-sm-min) and (max-width: @screen-sm-max) { - .responsive-invisibility(); - } -} -.hidden-md { - @media (min-width: @screen-md-min) and (max-width: @screen-md-max) { - .responsive-invisibility(); - } -} -.hidden-lg { - @media (min-width: @screen-lg-min) { - .responsive-invisibility(); - } -} - - -// Print utilities -// -// Media queries are placed on the inside to be mixin-friendly. - -// Note: Deprecated .visible-print as of v3.2.0 -.visible-print { - .responsive-invisibility(); - - @media print { - .responsive-visibility(); - } -} -.visible-print-block { - display: none !important; - - @media print { - display: block !important; - } -} -.visible-print-inline { - display: none !important; - - @media print { - display: inline !important; - } -} -.visible-print-inline-block { - display: none !important; - - @media print { - display: inline-block !important; - } -} - -.hidden-print { - @media print { - .responsive-invisibility(); - } -} diff --git a/admin/bower_components/bootstrap/less/scaffolding.less b/admin/bower_components/bootstrap/less/scaffolding.less deleted file mode 100644 index 64a29c6..0000000 --- a/admin/bower_components/bootstrap/less/scaffolding.less +++ /dev/null @@ -1,161 +0,0 @@ -// -// Scaffolding -// -------------------------------------------------- - - -// Reset the box-sizing -// -// Heads up! This reset may cause conflicts with some third-party widgets. -// For recommendations on resolving such conflicts, see -// http://getbootstrap.com/getting-started/#third-box-sizing -* { - .box-sizing(border-box); -} -*:before, -*:after { - .box-sizing(border-box); -} - - -// Body reset - -html { - font-size: 10px; - -webkit-tap-highlight-color: rgba(0,0,0,0); -} - -body { - font-family: @font-family-base; - font-size: @font-size-base; - line-height: @line-height-base; - color: @text-color; - background-color: @body-bg; -} - -// Reset fonts for relevant elements -input, -button, -select, -textarea { - font-family: inherit; - font-size: inherit; - line-height: inherit; -} - - -// Links - -a { - color: @link-color; - text-decoration: none; - - &:hover, - &:focus { - color: @link-hover-color; - text-decoration: @link-hover-decoration; - } - - &:focus { - .tab-focus(); - } -} - - -// Figures -// -// We reset this here because previously Normalize had no `figure` margins. This -// ensures we don't break anyone's use of the element. - -figure { - margin: 0; -} - - -// Images - -img { - vertical-align: middle; -} - -// Responsive images (ensure images don't scale beyond their parents) -.img-responsive { - .img-responsive(); -} - -// Rounded corners -.img-rounded { - border-radius: @border-radius-large; -} - -// Image thumbnails -// -// Heads up! This is mixin-ed into thumbnails.less for `.thumbnail`. -.img-thumbnail { - padding: @thumbnail-padding; - line-height: @line-height-base; - background-color: @thumbnail-bg; - border: 1px solid @thumbnail-border; - border-radius: @thumbnail-border-radius; - .transition(all .2s ease-in-out); - - // Keep them at most 100% wide - .img-responsive(inline-block); -} - -// Perfect circle -.img-circle { - border-radius: 50%; // set radius in percents -} - - -// Horizontal rules - -hr { - margin-top: @line-height-computed; - margin-bottom: @line-height-computed; - border: 0; - border-top: 1px solid @hr-border; -} - - -// Only display content to screen readers -// -// See: http://a11yproject.com/posts/how-to-hide-content - -.sr-only { - position: absolute; - width: 1px; - height: 1px; - margin: -1px; - padding: 0; - overflow: hidden; - clip: rect(0,0,0,0); - border: 0; -} - -// Use in conjunction with .sr-only to only display content when it's focused. -// Useful for "Skip to main content" links; see http://www.w3.org/TR/2013/NOTE-WCAG20-TECHS-20130905/G1 -// Credit: HTML5 Boilerplate - -.sr-only-focusable { - &:active, - &:focus { - position: static; - width: auto; - height: auto; - margin: 0; - overflow: visible; - clip: auto; - } -} - - -// iOS "clickable elements" fix for role="button" -// -// Fixes "clickability" issue (and more generally, the firing of events such as focus as well) -// for traditionally non-focusable elements with role="button" -// see https://developer.mozilla.org/en-US/docs/Web/Events/click#Safari_Mobile - -[role="button"] { - cursor: pointer; -} diff --git a/admin/bower_components/bootstrap/less/tables.less b/admin/bower_components/bootstrap/less/tables.less deleted file mode 100644 index 2242c03..0000000 --- a/admin/bower_components/bootstrap/less/tables.less +++ /dev/null @@ -1,234 +0,0 @@ -// -// Tables -// -------------------------------------------------- - - -table { - background-color: @table-bg; -} -caption { - padding-top: @table-cell-padding; - padding-bottom: @table-cell-padding; - color: @text-muted; - text-align: left; -} -th { - text-align: left; -} - - -// Baseline styles - -.table { - width: 100%; - max-width: 100%; - margin-bottom: @line-height-computed; - // Cells - > thead, - > tbody, - > tfoot { - > tr { - > th, - > td { - padding: @table-cell-padding; - line-height: @line-height-base; - vertical-align: top; - border-top: 1px solid @table-border-color; - } - } - } - // Bottom align for column headings - > thead > tr > th { - vertical-align: bottom; - border-bottom: 2px solid @table-border-color; - } - // Remove top border from thead by default - > caption + thead, - > colgroup + thead, - > thead:first-child { - > tr:first-child { - > th, - > td { - border-top: 0; - } - } - } - // Account for multiple tbody instances - > tbody + tbody { - border-top: 2px solid @table-border-color; - } - - // Nesting - .table { - background-color: @body-bg; - } -} - - -// Condensed table w/ half padding - -.table-condensed { - > thead, - > tbody, - > tfoot { - > tr { - > th, - > td { - padding: @table-condensed-cell-padding; - } - } - } -} - - -// Bordered version -// -// Add borders all around the table and between all the columns. - -.table-bordered { - border: 1px solid @table-border-color; - > thead, - > tbody, - > tfoot { - > tr { - > th, - > td { - border: 1px solid @table-border-color; - } - } - } - > thead > tr { - > th, - > td { - border-bottom-width: 2px; - } - } -} - - -// Zebra-striping -// -// Default zebra-stripe styles (alternating gray and transparent backgrounds) - -.table-striped { - > tbody > tr:nth-of-type(odd) { - background-color: @table-bg-accent; - } -} - - -// Hover effect -// -// Placed here since it has to come after the potential zebra striping - -.table-hover { - > tbody > tr:hover { - background-color: @table-bg-hover; - } -} - - -// Table cell sizing -// -// Reset default table behavior - -table col[class*="col-"] { - position: static; // Prevent border hiding in Firefox and IE9-11 (see https://github.com/twbs/bootstrap/issues/11623) - float: none; - display: table-column; -} -table { - td, - th { - &[class*="col-"] { - position: static; // Prevent border hiding in Firefox and IE9-11 (see https://github.com/twbs/bootstrap/issues/11623) - float: none; - display: table-cell; - } - } -} - - -// Table backgrounds -// -// Exact selectors below required to override `.table-striped` and prevent -// inheritance to nested tables. - -// Generate the contextual variants -.table-row-variant(active; @table-bg-active); -.table-row-variant(success; @state-success-bg); -.table-row-variant(info; @state-info-bg); -.table-row-variant(warning; @state-warning-bg); -.table-row-variant(danger; @state-danger-bg); - - -// Responsive tables -// -// Wrap your tables in `.table-responsive` and we'll make them mobile friendly -// by enabling horizontal scrolling. Only applies <768px. Everything above that -// will display normally. - -.table-responsive { - overflow-x: auto; - min-height: 0.01%; // Workaround for IE9 bug (see https://github.com/twbs/bootstrap/issues/14837) - - @media screen and (max-width: @screen-xs-max) { - width: 100%; - margin-bottom: (@line-height-computed * 0.75); - overflow-y: hidden; - -ms-overflow-style: -ms-autohiding-scrollbar; - border: 1px solid @table-border-color; - - // Tighten up spacing - > .table { - margin-bottom: 0; - - // Ensure the content doesn't wrap - > thead, - > tbody, - > tfoot { - > tr { - > th, - > td { - white-space: nowrap; - } - } - } - } - - // Special overrides for the bordered tables - > .table-bordered { - border: 0; - - // Nuke the appropriate borders so that the parent can handle them - > thead, - > tbody, - > tfoot { - > tr { - > th:first-child, - > td:first-child { - border-left: 0; - } - > th:last-child, - > td:last-child { - border-right: 0; - } - } - } - - // Only nuke the last row's bottom-border in `tbody` and `tfoot` since - // chances are there will be only one `tr` in a `thead` and that would - // remove the border altogether. - > tbody, - > tfoot { - > tr:last-child { - > th, - > td { - border-bottom: 0; - } - } - } - - } - } -} diff --git a/admin/bower_components/bootstrap/less/theme.less b/admin/bower_components/bootstrap/less/theme.less deleted file mode 100644 index fb61744..0000000 --- a/admin/bower_components/bootstrap/less/theme.less +++ /dev/null @@ -1,291 +0,0 @@ -/*! - * Bootstrap v3.3.7 (http://getbootstrap.com) - * Copyright 2011-2016 Twitter, Inc. - * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) - */ - -// -// Load core variables and mixins -// -------------------------------------------------- - -@import "variables.less"; -@import "mixins.less"; - - -// -// Buttons -// -------------------------------------------------- - -// Common styles -.btn-default, -.btn-primary, -.btn-success, -.btn-info, -.btn-warning, -.btn-danger { - text-shadow: 0 -1px 0 rgba(0,0,0,.2); - @shadow: inset 0 1px 0 rgba(255,255,255,.15), 0 1px 1px rgba(0,0,0,.075); - .box-shadow(@shadow); - - // Reset the shadow - &:active, - &.active { - .box-shadow(inset 0 3px 5px rgba(0,0,0,.125)); - } - - &.disabled, - &[disabled], - fieldset[disabled] & { - .box-shadow(none); - } - - .badge { - text-shadow: none; - } -} - -// Mixin for generating new styles -.btn-styles(@btn-color: #555) { - #gradient > .vertical(@start-color: @btn-color; @end-color: darken(@btn-color, 12%)); - .reset-filter(); // Disable gradients for IE9 because filter bleeds through rounded corners; see https://github.com/twbs/bootstrap/issues/10620 - background-repeat: repeat-x; - border-color: darken(@btn-color, 14%); - - &:hover, - &:focus { - background-color: darken(@btn-color, 12%); - background-position: 0 -15px; - } - - &:active, - &.active { - background-color: darken(@btn-color, 12%); - border-color: darken(@btn-color, 14%); - } - - &.disabled, - &[disabled], - fieldset[disabled] & { - &, - &:hover, - &:focus, - &.focus, - &:active, - &.active { - background-color: darken(@btn-color, 12%); - background-image: none; - } - } -} - -// Common styles -.btn { - // Remove the gradient for the pressed/active state - &:active, - &.active { - background-image: none; - } -} - -// Apply the mixin to the buttons -.btn-default { .btn-styles(@btn-default-bg); text-shadow: 0 1px 0 #fff; border-color: #ccc; } -.btn-primary { .btn-styles(@btn-primary-bg); } -.btn-success { .btn-styles(@btn-success-bg); } -.btn-info { .btn-styles(@btn-info-bg); } -.btn-warning { .btn-styles(@btn-warning-bg); } -.btn-danger { .btn-styles(@btn-danger-bg); } - - -// -// Images -// -------------------------------------------------- - -.thumbnail, -.img-thumbnail { - .box-shadow(0 1px 2px rgba(0,0,0,.075)); -} - - -// -// Dropdowns -// -------------------------------------------------- - -.dropdown-menu > li > a:hover, -.dropdown-menu > li > a:focus { - #gradient > .vertical(@start-color: @dropdown-link-hover-bg; @end-color: darken(@dropdown-link-hover-bg, 5%)); - background-color: darken(@dropdown-link-hover-bg, 5%); -} -.dropdown-menu > .active > a, -.dropdown-menu > .active > a:hover, -.dropdown-menu > .active > a:focus { - #gradient > .vertical(@start-color: @dropdown-link-active-bg; @end-color: darken(@dropdown-link-active-bg, 5%)); - background-color: darken(@dropdown-link-active-bg, 5%); -} - - -// -// Navbar -// -------------------------------------------------- - -// Default navbar -.navbar-default { - #gradient > .vertical(@start-color: lighten(@navbar-default-bg, 10%); @end-color: @navbar-default-bg); - .reset-filter(); // Remove gradient in IE<10 to fix bug where dropdowns don't get triggered - border-radius: @navbar-border-radius; - @shadow: inset 0 1px 0 rgba(255,255,255,.15), 0 1px 5px rgba(0,0,0,.075); - .box-shadow(@shadow); - - .navbar-nav > .open > a, - .navbar-nav > .active > a { - #gradient > .vertical(@start-color: darken(@navbar-default-link-active-bg, 5%); @end-color: darken(@navbar-default-link-active-bg, 2%)); - .box-shadow(inset 0 3px 9px rgba(0,0,0,.075)); - } -} -.navbar-brand, -.navbar-nav > li > a { - text-shadow: 0 1px 0 rgba(255,255,255,.25); -} - -// Inverted navbar -.navbar-inverse { - #gradient > .vertical(@start-color: lighten(@navbar-inverse-bg, 10%); @end-color: @navbar-inverse-bg); - .reset-filter(); // Remove gradient in IE<10 to fix bug where dropdowns don't get triggered; see https://github.com/twbs/bootstrap/issues/10257 - border-radius: @navbar-border-radius; - .navbar-nav > .open > a, - .navbar-nav > .active > a { - #gradient > .vertical(@start-color: @navbar-inverse-link-active-bg; @end-color: lighten(@navbar-inverse-link-active-bg, 2.5%)); - .box-shadow(inset 0 3px 9px rgba(0,0,0,.25)); - } - - .navbar-brand, - .navbar-nav > li > a { - text-shadow: 0 -1px 0 rgba(0,0,0,.25); - } -} - -// Undo rounded corners in static and fixed navbars -.navbar-static-top, -.navbar-fixed-top, -.navbar-fixed-bottom { - border-radius: 0; -} - -// Fix active state of dropdown items in collapsed mode -@media (max-width: @grid-float-breakpoint-max) { - .navbar .navbar-nav .open .dropdown-menu > .active > a { - &, - &:hover, - &:focus { - color: #fff; - #gradient > .vertical(@start-color: @dropdown-link-active-bg; @end-color: darken(@dropdown-link-active-bg, 5%)); - } - } -} - - -// -// Alerts -// -------------------------------------------------- - -// Common styles -.alert { - text-shadow: 0 1px 0 rgba(255,255,255,.2); - @shadow: inset 0 1px 0 rgba(255,255,255,.25), 0 1px 2px rgba(0,0,0,.05); - .box-shadow(@shadow); -} - -// Mixin for generating new styles -.alert-styles(@color) { - #gradient > .vertical(@start-color: @color; @end-color: darken(@color, 7.5%)); - border-color: darken(@color, 15%); -} - -// Apply the mixin to the alerts -.alert-success { .alert-styles(@alert-success-bg); } -.alert-info { .alert-styles(@alert-info-bg); } -.alert-warning { .alert-styles(@alert-warning-bg); } -.alert-danger { .alert-styles(@alert-danger-bg); } - - -// -// Progress bars -// -------------------------------------------------- - -// Give the progress background some depth -.progress { - #gradient > .vertical(@start-color: darken(@progress-bg, 4%); @end-color: @progress-bg) -} - -// Mixin for generating new styles -.progress-bar-styles(@color) { - #gradient > .vertical(@start-color: @color; @end-color: darken(@color, 10%)); -} - -// Apply the mixin to the progress bars -.progress-bar { .progress-bar-styles(@progress-bar-bg); } -.progress-bar-success { .progress-bar-styles(@progress-bar-success-bg); } -.progress-bar-info { .progress-bar-styles(@progress-bar-info-bg); } -.progress-bar-warning { .progress-bar-styles(@progress-bar-warning-bg); } -.progress-bar-danger { .progress-bar-styles(@progress-bar-danger-bg); } - -// Reset the striped class because our mixins don't do multiple gradients and -// the above custom styles override the new `.progress-bar-striped` in v3.2.0. -.progress-bar-striped { - #gradient > .striped(); -} - - -// -// List groups -// -------------------------------------------------- - -.list-group { - border-radius: @border-radius-base; - .box-shadow(0 1px 2px rgba(0,0,0,.075)); -} -.list-group-item.active, -.list-group-item.active:hover, -.list-group-item.active:focus { - text-shadow: 0 -1px 0 darken(@list-group-active-bg, 10%); - #gradient > .vertical(@start-color: @list-group-active-bg; @end-color: darken(@list-group-active-bg, 7.5%)); - border-color: darken(@list-group-active-border, 7.5%); - - .badge { - text-shadow: none; - } -} - - -// -// Panels -// -------------------------------------------------- - -// Common styles -.panel { - .box-shadow(0 1px 2px rgba(0,0,0,.05)); -} - -// Mixin for generating new styles -.panel-heading-styles(@color) { - #gradient > .vertical(@start-color: @color; @end-color: darken(@color, 5%)); -} - -// Apply the mixin to the panel headings only -.panel-default > .panel-heading { .panel-heading-styles(@panel-default-heading-bg); } -.panel-primary > .panel-heading { .panel-heading-styles(@panel-primary-heading-bg); } -.panel-success > .panel-heading { .panel-heading-styles(@panel-success-heading-bg); } -.panel-info > .panel-heading { .panel-heading-styles(@panel-info-heading-bg); } -.panel-warning > .panel-heading { .panel-heading-styles(@panel-warning-heading-bg); } -.panel-danger > .panel-heading { .panel-heading-styles(@panel-danger-heading-bg); } - - -// -// Wells -// -------------------------------------------------- - -.well { - #gradient > .vertical(@start-color: darken(@well-bg, 5%); @end-color: @well-bg); - border-color: darken(@well-bg, 10%); - @shadow: inset 0 1px 3px rgba(0,0,0,.05), 0 1px 0 rgba(255,255,255,.1); - .box-shadow(@shadow); -} diff --git a/admin/bower_components/bootstrap/less/thumbnails.less b/admin/bower_components/bootstrap/less/thumbnails.less deleted file mode 100644 index 0713e67..0000000 --- a/admin/bower_components/bootstrap/less/thumbnails.less +++ /dev/null @@ -1,36 +0,0 @@ -// -// Thumbnails -// -------------------------------------------------- - - -// Mixin and adjust the regular image class -.thumbnail { - display: block; - padding: @thumbnail-padding; - margin-bottom: @line-height-computed; - line-height: @line-height-base; - background-color: @thumbnail-bg; - border: 1px solid @thumbnail-border; - border-radius: @thumbnail-border-radius; - .transition(border .2s ease-in-out); - - > img, - a > img { - &:extend(.img-responsive); - margin-left: auto; - margin-right: auto; - } - - // Add a hover state for linked versions only - a&:hover, - a&:focus, - a&.active { - border-color: @link-color; - } - - // Image captions - .caption { - padding: @thumbnail-caption-padding; - color: @thumbnail-caption-color; - } -} diff --git a/admin/bower_components/bootstrap/less/tooltip.less b/admin/bower_components/bootstrap/less/tooltip.less deleted file mode 100644 index b48d63e..0000000 --- a/admin/bower_components/bootstrap/less/tooltip.less +++ /dev/null @@ -1,101 +0,0 @@ -// -// Tooltips -// -------------------------------------------------- - - -// Base class -.tooltip { - position: absolute; - z-index: @zindex-tooltip; - display: block; - // Our parent element can be arbitrary since tooltips are by default inserted as a sibling of their target element. - // So reset our font and text properties to avoid inheriting weird values. - .reset-text(); - font-size: @font-size-small; - - .opacity(0); - - &.in { .opacity(@tooltip-opacity); } - &.top { margin-top: -3px; padding: @tooltip-arrow-width 0; } - &.right { margin-left: 3px; padding: 0 @tooltip-arrow-width; } - &.bottom { margin-top: 3px; padding: @tooltip-arrow-width 0; } - &.left { margin-left: -3px; padding: 0 @tooltip-arrow-width; } -} - -// Wrapper for the tooltip content -.tooltip-inner { - max-width: @tooltip-max-width; - padding: 3px 8px; - color: @tooltip-color; - text-align: center; - background-color: @tooltip-bg; - border-radius: @border-radius-base; -} - -// Arrows -.tooltip-arrow { - position: absolute; - width: 0; - height: 0; - border-color: transparent; - border-style: solid; -} -// Note: Deprecated .top-left, .top-right, .bottom-left, and .bottom-right as of v3.3.1 -.tooltip { - &.top .tooltip-arrow { - bottom: 0; - left: 50%; - margin-left: -@tooltip-arrow-width; - border-width: @tooltip-arrow-width @tooltip-arrow-width 0; - border-top-color: @tooltip-arrow-color; - } - &.top-left .tooltip-arrow { - bottom: 0; - right: @tooltip-arrow-width; - margin-bottom: -@tooltip-arrow-width; - border-width: @tooltip-arrow-width @tooltip-arrow-width 0; - border-top-color: @tooltip-arrow-color; - } - &.top-right .tooltip-arrow { - bottom: 0; - left: @tooltip-arrow-width; - margin-bottom: -@tooltip-arrow-width; - border-width: @tooltip-arrow-width @tooltip-arrow-width 0; - border-top-color: @tooltip-arrow-color; - } - &.right .tooltip-arrow { - top: 50%; - left: 0; - margin-top: -@tooltip-arrow-width; - border-width: @tooltip-arrow-width @tooltip-arrow-width @tooltip-arrow-width 0; - border-right-color: @tooltip-arrow-color; - } - &.left .tooltip-arrow { - top: 50%; - right: 0; - margin-top: -@tooltip-arrow-width; - border-width: @tooltip-arrow-width 0 @tooltip-arrow-width @tooltip-arrow-width; - border-left-color: @tooltip-arrow-color; - } - &.bottom .tooltip-arrow { - top: 0; - left: 50%; - margin-left: -@tooltip-arrow-width; - border-width: 0 @tooltip-arrow-width @tooltip-arrow-width; - border-bottom-color: @tooltip-arrow-color; - } - &.bottom-left .tooltip-arrow { - top: 0; - right: @tooltip-arrow-width; - margin-top: -@tooltip-arrow-width; - border-width: 0 @tooltip-arrow-width @tooltip-arrow-width; - border-bottom-color: @tooltip-arrow-color; - } - &.bottom-right .tooltip-arrow { - top: 0; - left: @tooltip-arrow-width; - margin-top: -@tooltip-arrow-width; - border-width: 0 @tooltip-arrow-width @tooltip-arrow-width; - border-bottom-color: @tooltip-arrow-color; - } -} diff --git a/admin/bower_components/bootstrap/less/type.less b/admin/bower_components/bootstrap/less/type.less deleted file mode 100644 index 0d4fee4..0000000 --- a/admin/bower_components/bootstrap/less/type.less +++ /dev/null @@ -1,302 +0,0 @@ -// -// Typography -// -------------------------------------------------- - - -// Headings -// ------------------------- - -h1, h2, h3, h4, h5, h6, -.h1, .h2, .h3, .h4, .h5, .h6 { - font-family: @headings-font-family; - font-weight: @headings-font-weight; - line-height: @headings-line-height; - color: @headings-color; - - small, - .small { - font-weight: normal; - line-height: 1; - color: @headings-small-color; - } -} - -h1, .h1, -h2, .h2, -h3, .h3 { - margin-top: @line-height-computed; - margin-bottom: (@line-height-computed / 2); - - small, - .small { - font-size: 65%; - } -} -h4, .h4, -h5, .h5, -h6, .h6 { - margin-top: (@line-height-computed / 2); - margin-bottom: (@line-height-computed / 2); - - small, - .small { - font-size: 75%; - } -} - -h1, .h1 { font-size: @font-size-h1; } -h2, .h2 { font-size: @font-size-h2; } -h3, .h3 { font-size: @font-size-h3; } -h4, .h4 { font-size: @font-size-h4; } -h5, .h5 { font-size: @font-size-h5; } -h6, .h6 { font-size: @font-size-h6; } - - -// Body text -// ------------------------- - -p { - margin: 0 0 (@line-height-computed / 2); -} - -.lead { - margin-bottom: @line-height-computed; - font-size: floor((@font-size-base * 1.15)); - font-weight: 300; - line-height: 1.4; - - @media (min-width: @screen-sm-min) { - font-size: (@font-size-base * 1.5); - } -} - - -// Emphasis & misc -// ------------------------- - -// Ex: (12px small font / 14px base font) * 100% = about 85% -small, -.small { - font-size: floor((100% * @font-size-small / @font-size-base)); -} - -mark, -.mark { - background-color: @state-warning-bg; - padding: .2em; -} - -// Alignment -.text-left { text-align: left; } -.text-right { text-align: right; } -.text-center { text-align: center; } -.text-justify { text-align: justify; } -.text-nowrap { white-space: nowrap; } - -// Transformation -.text-lowercase { text-transform: lowercase; } -.text-uppercase { text-transform: uppercase; } -.text-capitalize { text-transform: capitalize; } - -// Contextual colors -.text-muted { - color: @text-muted; -} -.text-primary { - .text-emphasis-variant(@brand-primary); -} -.text-success { - .text-emphasis-variant(@state-success-text); -} -.text-info { - .text-emphasis-variant(@state-info-text); -} -.text-warning { - .text-emphasis-variant(@state-warning-text); -} -.text-danger { - .text-emphasis-variant(@state-danger-text); -} - -// Contextual backgrounds -// For now we'll leave these alongside the text classes until v4 when we can -// safely shift things around (per SemVer rules). -.bg-primary { - // Given the contrast here, this is the only class to have its color inverted - // automatically. - color: #fff; - .bg-variant(@brand-primary); -} -.bg-success { - .bg-variant(@state-success-bg); -} -.bg-info { - .bg-variant(@state-info-bg); -} -.bg-warning { - .bg-variant(@state-warning-bg); -} -.bg-danger { - .bg-variant(@state-danger-bg); -} - - -// Page header -// ------------------------- - -.page-header { - padding-bottom: ((@line-height-computed / 2) - 1); - margin: (@line-height-computed * 2) 0 @line-height-computed; - border-bottom: 1px solid @page-header-border-color; -} - - -// Lists -// ------------------------- - -// Unordered and Ordered lists -ul, -ol { - margin-top: 0; - margin-bottom: (@line-height-computed / 2); - ul, - ol { - margin-bottom: 0; - } -} - -// List options - -// Unstyled keeps list items block level, just removes default browser padding and list-style -.list-unstyled { - padding-left: 0; - list-style: none; -} - -// Inline turns list items into inline-block -.list-inline { - .list-unstyled(); - margin-left: -5px; - - > li { - display: inline-block; - padding-left: 5px; - padding-right: 5px; - } -} - -// Description Lists -dl { - margin-top: 0; // Remove browser default - margin-bottom: @line-height-computed; -} -dt, -dd { - line-height: @line-height-base; -} -dt { - font-weight: bold; -} -dd { - margin-left: 0; // Undo browser default -} - -// Horizontal description lists -// -// Defaults to being stacked without any of the below styles applied, until the -// grid breakpoint is reached (default of ~768px). - -.dl-horizontal { - dd { - &:extend(.clearfix all); // Clear the floated `dt` if an empty `dd` is present - } - - @media (min-width: @dl-horizontal-breakpoint) { - dt { - float: left; - width: (@dl-horizontal-offset - 20); - clear: left; - text-align: right; - .text-overflow(); - } - dd { - margin-left: @dl-horizontal-offset; - } - } -} - - -// Misc -// ------------------------- - -// Abbreviations and acronyms -abbr[title], -// Add data-* attribute to help out our tooltip plugin, per https://github.com/twbs/bootstrap/issues/5257 -abbr[data-original-title] { - cursor: help; - border-bottom: 1px dotted @abbr-border-color; -} -.initialism { - font-size: 90%; - .text-uppercase(); -} - -// Blockquotes -blockquote { - padding: (@line-height-computed / 2) @line-height-computed; - margin: 0 0 @line-height-computed; - font-size: @blockquote-font-size; - border-left: 5px solid @blockquote-border-color; - - p, - ul, - ol { - &:last-child { - margin-bottom: 0; - } - } - - // Note: Deprecated small and .small as of v3.1.0 - // Context: https://github.com/twbs/bootstrap/issues/11660 - footer, - small, - .small { - display: block; - font-size: 80%; // back to default font-size - line-height: @line-height-base; - color: @blockquote-small-color; - - &:before { - content: '\2014 \00A0'; // em dash, nbsp - } - } -} - -// Opposite alignment of blockquote -// -// Heads up: `blockquote.pull-right` has been deprecated as of v3.1.0. -.blockquote-reverse, -blockquote.pull-right { - padding-right: 15px; - padding-left: 0; - border-right: 5px solid @blockquote-border-color; - border-left: 0; - text-align: right; - - // Account for citation - footer, - small, - .small { - &:before { content: ''; } - &:after { - content: '\00A0 \2014'; // nbsp, em dash - } - } -} - -// Addresses -address { - margin-bottom: @line-height-computed; - font-style: normal; - line-height: @line-height-base; -} diff --git a/admin/bower_components/bootstrap/less/utilities.less b/admin/bower_components/bootstrap/less/utilities.less deleted file mode 100644 index 7a8ca27..0000000 --- a/admin/bower_components/bootstrap/less/utilities.less +++ /dev/null @@ -1,55 +0,0 @@ -// -// Utility classes -// -------------------------------------------------- - - -// Floats -// ------------------------- - -.clearfix { - .clearfix(); -} -.center-block { - .center-block(); -} -.pull-right { - float: right !important; -} -.pull-left { - float: left !important; -} - - -// Toggling content -// ------------------------- - -// Note: Deprecated .hide in favor of .hidden or .sr-only (as appropriate) in v3.0.1 -.hide { - display: none !important; -} -.show { - display: block !important; -} -.invisible { - visibility: hidden; -} -.text-hide { - .text-hide(); -} - - -// Hide from screenreaders and browsers -// -// Credit: HTML5 Boilerplate - -.hidden { - display: none !important; -} - - -// For Affix plugin -// ------------------------- - -.affix { - position: fixed; -} diff --git a/admin/bower_components/bootstrap/less/variables.less b/admin/bower_components/bootstrap/less/variables.less deleted file mode 100644 index 03b5498..0000000 --- a/admin/bower_components/bootstrap/less/variables.less +++ /dev/null @@ -1,869 +0,0 @@ -// -// Variables -// -------------------------------------------------- - - -//== Colors -// -//## Gray and brand colors for use across Bootstrap. - -@gray-base: #000; -@gray-darker: lighten(@gray-base, 13.5%); // #222 -@gray-dark: lighten(@gray-base, 20%); // #333 -@gray: lighten(@gray-base, 33.5%); // #555 -@gray-light: lighten(@gray-base, 46.7%); // #777 -@gray-lighter: lighten(@gray-base, 93.5%); // #eee - -@brand-primary: darken(#428bca, 6.5%); // #337ab7 -@brand-success: #5cb85c; -@brand-info: #5bc0de; -@brand-warning: #f0ad4e; -@brand-danger: #d9534f; - - -//== Scaffolding -// -//## Settings for some of the most global styles. - -//** Background color for `<body>`. -@body-bg: #fff; -//** Global text color on `<body>`. -@text-color: @gray-dark; - -//** Global textual link color. -@link-color: @brand-primary; -//** Link hover color set via `darken()` function. -@link-hover-color: darken(@link-color, 15%); -//** Link hover decoration. -@link-hover-decoration: underline; - - -//== Typography -// -//## Font, line-height, and color for body text, headings, and more. - -@font-family-sans-serif: "Helvetica Neue", Helvetica, Arial, sans-serif; -@font-family-serif: Georgia, "Times New Roman", Times, serif; -//** Default monospace fonts for `<code>`, `<kbd>`, and `<pre>`. -@font-family-monospace: Menlo, Monaco, Consolas, "Courier New", monospace; -@font-family-base: @font-family-sans-serif; - -@font-size-base: 14px; -@font-size-large: ceil((@font-size-base * 1.25)); // ~18px -@font-size-small: ceil((@font-size-base * 0.85)); // ~12px - -@font-size-h1: floor((@font-size-base * 2.6)); // ~36px -@font-size-h2: floor((@font-size-base * 2.15)); // ~30px -@font-size-h3: ceil((@font-size-base * 1.7)); // ~24px -@font-size-h4: ceil((@font-size-base * 1.25)); // ~18px -@font-size-h5: @font-size-base; -@font-size-h6: ceil((@font-size-base * 0.85)); // ~12px - -//** Unit-less `line-height` for use in components like buttons. -@line-height-base: 1.428571429; // 20/14 -//** Computed "line-height" (`font-size` * `line-height`) for use with `margin`, `padding`, etc. -@line-height-computed: floor((@font-size-base * @line-height-base)); // ~20px - -//** By default, this inherits from the `<body>`. -@headings-font-family: inherit; -@headings-font-weight: 500; -@headings-line-height: 1.1; -@headings-color: inherit; - - -//== Iconography -// -//## Specify custom location and filename of the included Glyphicons icon font. Useful for those including Bootstrap via Bower. - -//** Load fonts from this directory. -@icon-font-path: "../fonts/"; -//** File name for all font files. -@icon-font-name: "glyphicons-halflings-regular"; -//** Element ID within SVG icon file. -@icon-font-svg-id: "glyphicons_halflingsregular"; - - -//== Components -// -//## Define common padding and border radius sizes and more. Values based on 14px text and 1.428 line-height (~20px to start). - -@padding-base-vertical: 6px; -@padding-base-horizontal: 12px; - -@padding-large-vertical: 10px; -@padding-large-horizontal: 16px; - -@padding-small-vertical: 5px; -@padding-small-horizontal: 10px; - -@padding-xs-vertical: 1px; -@padding-xs-horizontal: 5px; - -@line-height-large: 1.3333333; // extra decimals for Win 8.1 Chrome -@line-height-small: 1.5; - -@border-radius-base: 4px; -@border-radius-large: 6px; -@border-radius-small: 3px; - -//** Global color for active items (e.g., navs or dropdowns). -@component-active-color: #fff; -//** Global background color for active items (e.g., navs or dropdowns). -@component-active-bg: @brand-primary; - -//** Width of the `border` for generating carets that indicate dropdowns. -@caret-width-base: 4px; -//** Carets increase slightly in size for larger components. -@caret-width-large: 5px; - - -//== Tables -// -//## Customizes the `.table` component with basic values, each used across all table variations. - -//** Padding for `<th>`s and `<td>`s. -@table-cell-padding: 8px; -//** Padding for cells in `.table-condensed`. -@table-condensed-cell-padding: 5px; - -//** Default background color used for all tables. -@table-bg: transparent; -//** Background color used for `.table-striped`. -@table-bg-accent: #f9f9f9; -//** Background color used for `.table-hover`. -@table-bg-hover: #f5f5f5; -@table-bg-active: @table-bg-hover; - -//** Border color for table and cell borders. -@table-border-color: #ddd; - - -//== Buttons -// -//## For each of Bootstrap's buttons, define text, background and border color. - -@btn-font-weight: normal; - -@btn-default-color: #333; -@btn-default-bg: #fff; -@btn-default-border: #ccc; - -@btn-primary-color: #fff; -@btn-primary-bg: @brand-primary; -@btn-primary-border: darken(@btn-primary-bg, 5%); - -@btn-success-color: #fff; -@btn-success-bg: @brand-success; -@btn-success-border: darken(@btn-success-bg, 5%); - -@btn-info-color: #fff; -@btn-info-bg: @brand-info; -@btn-info-border: darken(@btn-info-bg, 5%); - -@btn-warning-color: #fff; -@btn-warning-bg: @brand-warning; -@btn-warning-border: darken(@btn-warning-bg, 5%); - -@btn-danger-color: #fff; -@btn-danger-bg: @brand-danger; -@btn-danger-border: darken(@btn-danger-bg, 5%); - -@btn-link-disabled-color: @gray-light; - -// Allows for customizing button radius independently from global border radius -@btn-border-radius-base: @border-radius-base; -@btn-border-radius-large: @border-radius-large; -@btn-border-radius-small: @border-radius-small; - - -//== Forms -// -//## - -//** `<input>` background color -@input-bg: #fff; -//** `<input disabled>` background color -@input-bg-disabled: @gray-lighter; - -//** Text color for `<input>`s -@input-color: @gray; -//** `<input>` border color -@input-border: #ccc; - -// TODO: Rename `@input-border-radius` to `@input-border-radius-base` in v4 -//** Default `.form-control` border radius -// This has no effect on `<select>`s in some browsers, due to the limited stylability of `<select>`s in CSS. -@input-border-radius: @border-radius-base; -//** Large `.form-control` border radius -@input-border-radius-large: @border-radius-large; -//** Small `.form-control` border radius -@input-border-radius-small: @border-radius-small; - -//** Border color for inputs on focus -@input-border-focus: #66afe9; - -//** Placeholder text color -@input-color-placeholder: #999; - -//** Default `.form-control` height -@input-height-base: (@line-height-computed + (@padding-base-vertical * 2) + 2); -//** Large `.form-control` height -@input-height-large: (ceil(@font-size-large * @line-height-large) + (@padding-large-vertical * 2) + 2); -//** Small `.form-control` height -@input-height-small: (floor(@font-size-small * @line-height-small) + (@padding-small-vertical * 2) + 2); - -//** `.form-group` margin -@form-group-margin-bottom: 15px; - -@legend-color: @gray-dark; -@legend-border-color: #e5e5e5; - -//** Background color for textual input addons -@input-group-addon-bg: @gray-lighter; -//** Border color for textual input addons -@input-group-addon-border-color: @input-border; - -//** Disabled cursor for form controls and buttons. -@cursor-disabled: not-allowed; - - -//== Dropdowns -// -//## Dropdown menu container and contents. - -//** Background for the dropdown menu. -@dropdown-bg: #fff; -//** Dropdown menu `border-color`. -@dropdown-border: rgba(0,0,0,.15); -//** Dropdown menu `border-color` **for IE8**. -@dropdown-fallback-border: #ccc; -//** Divider color for between dropdown items. -@dropdown-divider-bg: #e5e5e5; - -//** Dropdown link text color. -@dropdown-link-color: @gray-dark; -//** Hover color for dropdown links. -@dropdown-link-hover-color: darken(@gray-dark, 5%); -//** Hover background for dropdown links. -@dropdown-link-hover-bg: #f5f5f5; - -//** Active dropdown menu item text color. -@dropdown-link-active-color: @component-active-color; -//** Active dropdown menu item background color. -@dropdown-link-active-bg: @component-active-bg; - -//** Disabled dropdown menu item background color. -@dropdown-link-disabled-color: @gray-light; - -//** Text color for headers within dropdown menus. -@dropdown-header-color: @gray-light; - -//** Deprecated `@dropdown-caret-color` as of v3.1.0 -@dropdown-caret-color: #000; - - -//-- Z-index master list -// -// Warning: Avoid customizing these values. They're used for a bird's eye view -// of components dependent on the z-axis and are designed to all work together. -// -// Note: These variables are not generated into the Customizer. - -@zindex-navbar: 1000; -@zindex-dropdown: 1000; -@zindex-popover: 1060; -@zindex-tooltip: 1070; -@zindex-navbar-fixed: 1030; -@zindex-modal-background: 1040; -@zindex-modal: 1050; - - -//== Media queries breakpoints -// -//## Define the breakpoints at which your layout will change, adapting to different screen sizes. - -// Extra small screen / phone -//** Deprecated `@screen-xs` as of v3.0.1 -@screen-xs: 480px; -//** Deprecated `@screen-xs-min` as of v3.2.0 -@screen-xs-min: @screen-xs; -//** Deprecated `@screen-phone` as of v3.0.1 -@screen-phone: @screen-xs-min; - -// Small screen / tablet -//** Deprecated `@screen-sm` as of v3.0.1 -@screen-sm: 768px; -@screen-sm-min: @screen-sm; -//** Deprecated `@screen-tablet` as of v3.0.1 -@screen-tablet: @screen-sm-min; - -// Medium screen / desktop -//** Deprecated `@screen-md` as of v3.0.1 -@screen-md: 992px; -@screen-md-min: @screen-md; -//** Deprecated `@screen-desktop` as of v3.0.1 -@screen-desktop: @screen-md-min; - -// Large screen / wide desktop -//** Deprecated `@screen-lg` as of v3.0.1 -@screen-lg: 1200px; -@screen-lg-min: @screen-lg; -//** Deprecated `@screen-lg-desktop` as of v3.0.1 -@screen-lg-desktop: @screen-lg-min; - -// So media queries don't overlap when required, provide a maximum -@screen-xs-max: (@screen-sm-min - 1); -@screen-sm-max: (@screen-md-min - 1); -@screen-md-max: (@screen-lg-min - 1); - - -//== Grid system -// -//## Define your custom responsive grid. - -//** Number of columns in the grid. -@grid-columns: 12; -//** Padding between columns. Gets divided in half for the left and right. -@grid-gutter-width: 30px; -// Navbar collapse -//** Point at which the navbar becomes uncollapsed. -@grid-float-breakpoint: @screen-sm-min; -//** Point at which the navbar begins collapsing. -@grid-float-breakpoint-max: (@grid-float-breakpoint - 1); - - -//== Container sizes -// -//## Define the maximum width of `.container` for different screen sizes. - -// Small screen / tablet -@container-tablet: (720px + @grid-gutter-width); -//** For `@screen-sm-min` and up. -@container-sm: @container-tablet; - -// Medium screen / desktop -@container-desktop: (940px + @grid-gutter-width); -//** For `@screen-md-min` and up. -@container-md: @container-desktop; - -// Large screen / wide desktop -@container-large-desktop: (1140px + @grid-gutter-width); -//** For `@screen-lg-min` and up. -@container-lg: @container-large-desktop; - - -//== Navbar -// -//## - -// Basics of a navbar -@navbar-height: 50px; -@navbar-margin-bottom: @line-height-computed; -@navbar-border-radius: @border-radius-base; -@navbar-padding-horizontal: floor((@grid-gutter-width / 2)); -@navbar-padding-vertical: ((@navbar-height - @line-height-computed) / 2); -@navbar-collapse-max-height: 340px; - -@navbar-default-color: #777; -@navbar-default-bg: #f8f8f8; -@navbar-default-border: darken(@navbar-default-bg, 6.5%); - -// Navbar links -@navbar-default-link-color: #777; -@navbar-default-link-hover-color: #333; -@navbar-default-link-hover-bg: transparent; -@navbar-default-link-active-color: #555; -@navbar-default-link-active-bg: darken(@navbar-default-bg, 6.5%); -@navbar-default-link-disabled-color: #ccc; -@navbar-default-link-disabled-bg: transparent; - -// Navbar brand label -@navbar-default-brand-color: @navbar-default-link-color; -@navbar-default-brand-hover-color: darken(@navbar-default-brand-color, 10%); -@navbar-default-brand-hover-bg: transparent; - -// Navbar toggle -@navbar-default-toggle-hover-bg: #ddd; -@navbar-default-toggle-icon-bar-bg: #888; -@navbar-default-toggle-border-color: #ddd; - - -//=== Inverted navbar -// Reset inverted navbar basics -@navbar-inverse-color: lighten(@gray-light, 15%); -@navbar-inverse-bg: #222; -@navbar-inverse-border: darken(@navbar-inverse-bg, 10%); - -// Inverted navbar links -@navbar-inverse-link-color: lighten(@gray-light, 15%); -@navbar-inverse-link-hover-color: #fff; -@navbar-inverse-link-hover-bg: transparent; -@navbar-inverse-link-active-color: @navbar-inverse-link-hover-color; -@navbar-inverse-link-active-bg: darken(@navbar-inverse-bg, 10%); -@navbar-inverse-link-disabled-color: #444; -@navbar-inverse-link-disabled-bg: transparent; - -// Inverted navbar brand label -@navbar-inverse-brand-color: @navbar-inverse-link-color; -@navbar-inverse-brand-hover-color: #fff; -@navbar-inverse-brand-hover-bg: transparent; - -// Inverted navbar toggle -@navbar-inverse-toggle-hover-bg: #333; -@navbar-inverse-toggle-icon-bar-bg: #fff; -@navbar-inverse-toggle-border-color: #333; - - -//== Navs -// -//## - -//=== Shared nav styles -@nav-link-padding: 10px 15px; -@nav-link-hover-bg: @gray-lighter; - -@nav-disabled-link-color: @gray-light; -@nav-disabled-link-hover-color: @gray-light; - -//== Tabs -@nav-tabs-border-color: #ddd; - -@nav-tabs-link-hover-border-color: @gray-lighter; - -@nav-tabs-active-link-hover-bg: @body-bg; -@nav-tabs-active-link-hover-color: @gray; -@nav-tabs-active-link-hover-border-color: #ddd; - -@nav-tabs-justified-link-border-color: #ddd; -@nav-tabs-justified-active-link-border-color: @body-bg; - -//== Pills -@nav-pills-border-radius: @border-radius-base; -@nav-pills-active-link-hover-bg: @component-active-bg; -@nav-pills-active-link-hover-color: @component-active-color; - - -//== Pagination -// -//## - -@pagination-color: @link-color; -@pagination-bg: #fff; -@pagination-border: #ddd; - -@pagination-hover-color: @link-hover-color; -@pagination-hover-bg: @gray-lighter; -@pagination-hover-border: #ddd; - -@pagination-active-color: #fff; -@pagination-active-bg: @brand-primary; -@pagination-active-border: @brand-primary; - -@pagination-disabled-color: @gray-light; -@pagination-disabled-bg: #fff; -@pagination-disabled-border: #ddd; - - -//== Pager -// -//## - -@pager-bg: @pagination-bg; -@pager-border: @pagination-border; -@pager-border-radius: 15px; - -@pager-hover-bg: @pagination-hover-bg; - -@pager-active-bg: @pagination-active-bg; -@pager-active-color: @pagination-active-color; - -@pager-disabled-color: @pagination-disabled-color; - - -//== Jumbotron -// -//## - -@jumbotron-padding: 30px; -@jumbotron-color: inherit; -@jumbotron-bg: @gray-lighter; -@jumbotron-heading-color: inherit; -@jumbotron-font-size: ceil((@font-size-base * 1.5)); -@jumbotron-heading-font-size: ceil((@font-size-base * 4.5)); - - -//== Form states and alerts -// -//## Define colors for form feedback states and, by default, alerts. - -@state-success-text: #3c763d; -@state-success-bg: #dff0d8; -@state-success-border: darken(spin(@state-success-bg, -10), 5%); - -@state-info-text: #31708f; -@state-info-bg: #d9edf7; -@state-info-border: darken(spin(@state-info-bg, -10), 7%); - -@state-warning-text: #8a6d3b; -@state-warning-bg: #fcf8e3; -@state-warning-border: darken(spin(@state-warning-bg, -10), 5%); - -@state-danger-text: #a94442; -@state-danger-bg: #f2dede; -@state-danger-border: darken(spin(@state-danger-bg, -10), 5%); - - -//== Tooltips -// -//## - -//** Tooltip max width -@tooltip-max-width: 200px; -//** Tooltip text color -@tooltip-color: #fff; -//** Tooltip background color -@tooltip-bg: #000; -@tooltip-opacity: .9; - -//** Tooltip arrow width -@tooltip-arrow-width: 5px; -//** Tooltip arrow color -@tooltip-arrow-color: @tooltip-bg; - - -//== Popovers -// -//## - -//** Popover body background color -@popover-bg: #fff; -//** Popover maximum width -@popover-max-width: 276px; -//** Popover border color -@popover-border-color: rgba(0,0,0,.2); -//** Popover fallback border color -@popover-fallback-border-color: #ccc; - -//** Popover title background color -@popover-title-bg: darken(@popover-bg, 3%); - -//** Popover arrow width -@popover-arrow-width: 10px; -//** Popover arrow color -@popover-arrow-color: @popover-bg; - -//** Popover outer arrow width -@popover-arrow-outer-width: (@popover-arrow-width + 1); -//** Popover outer arrow color -@popover-arrow-outer-color: fadein(@popover-border-color, 5%); -//** Popover outer arrow fallback color -@popover-arrow-outer-fallback-color: darken(@popover-fallback-border-color, 20%); - - -//== Labels -// -//## - -//** Default label background color -@label-default-bg: @gray-light; -//** Primary label background color -@label-primary-bg: @brand-primary; -//** Success label background color -@label-success-bg: @brand-success; -//** Info label background color -@label-info-bg: @brand-info; -//** Warning label background color -@label-warning-bg: @brand-warning; -//** Danger label background color -@label-danger-bg: @brand-danger; - -//** Default label text color -@label-color: #fff; -//** Default text color of a linked label -@label-link-hover-color: #fff; - - -//== Modals -// -//## - -//** Padding applied to the modal body -@modal-inner-padding: 15px; - -//** Padding applied to the modal title -@modal-title-padding: 15px; -//** Modal title line-height -@modal-title-line-height: @line-height-base; - -//** Background color of modal content area -@modal-content-bg: #fff; -//** Modal content border color -@modal-content-border-color: rgba(0,0,0,.2); -//** Modal content border color **for IE8** -@modal-content-fallback-border-color: #999; - -//** Modal backdrop background color -@modal-backdrop-bg: #000; -//** Modal backdrop opacity -@modal-backdrop-opacity: .5; -//** Modal header border color -@modal-header-border-color: #e5e5e5; -//** Modal footer border color -@modal-footer-border-color: @modal-header-border-color; - -@modal-lg: 900px; -@modal-md: 600px; -@modal-sm: 300px; - - -//== Alerts -// -//## Define alert colors, border radius, and padding. - -@alert-padding: 15px; -@alert-border-radius: @border-radius-base; -@alert-link-font-weight: bold; - -@alert-success-bg: @state-success-bg; -@alert-success-text: @state-success-text; -@alert-success-border: @state-success-border; - -@alert-info-bg: @state-info-bg; -@alert-info-text: @state-info-text; -@alert-info-border: @state-info-border; - -@alert-warning-bg: @state-warning-bg; -@alert-warning-text: @state-warning-text; -@alert-warning-border: @state-warning-border; - -@alert-danger-bg: @state-danger-bg; -@alert-danger-text: @state-danger-text; -@alert-danger-border: @state-danger-border; - - -//== Progress bars -// -//## - -//** Background color of the whole progress component -@progress-bg: #f5f5f5; -//** Progress bar text color -@progress-bar-color: #fff; -//** Variable for setting rounded corners on progress bar. -@progress-border-radius: @border-radius-base; - -//** Default progress bar color -@progress-bar-bg: @brand-primary; -//** Success progress bar color -@progress-bar-success-bg: @brand-success; -//** Warning progress bar color -@progress-bar-warning-bg: @brand-warning; -//** Danger progress bar color -@progress-bar-danger-bg: @brand-danger; -//** Info progress bar color -@progress-bar-info-bg: @brand-info; - - -//== List group -// -//## - -//** Background color on `.list-group-item` -@list-group-bg: #fff; -//** `.list-group-item` border color -@list-group-border: #ddd; -//** List group border radius -@list-group-border-radius: @border-radius-base; - -//** Background color of single list items on hover -@list-group-hover-bg: #f5f5f5; -//** Text color of active list items -@list-group-active-color: @component-active-color; -//** Background color of active list items -@list-group-active-bg: @component-active-bg; -//** Border color of active list elements -@list-group-active-border: @list-group-active-bg; -//** Text color for content within active list items -@list-group-active-text-color: lighten(@list-group-active-bg, 40%); - -//** Text color of disabled list items -@list-group-disabled-color: @gray-light; -//** Background color of disabled list items -@list-group-disabled-bg: @gray-lighter; -//** Text color for content within disabled list items -@list-group-disabled-text-color: @list-group-disabled-color; - -@list-group-link-color: #555; -@list-group-link-hover-color: @list-group-link-color; -@list-group-link-heading-color: #333; - - -//== Panels -// -//## - -@panel-bg: #fff; -@panel-body-padding: 15px; -@panel-heading-padding: 10px 15px; -@panel-footer-padding: @panel-heading-padding; -@panel-border-radius: @border-radius-base; - -//** Border color for elements within panels -@panel-inner-border: #ddd; -@panel-footer-bg: #f5f5f5; - -@panel-default-text: @gray-dark; -@panel-default-border: #ddd; -@panel-default-heading-bg: #f5f5f5; - -@panel-primary-text: #fff; -@panel-primary-border: @brand-primary; -@panel-primary-heading-bg: @brand-primary; - -@panel-success-text: @state-success-text; -@panel-success-border: @state-success-border; -@panel-success-heading-bg: @state-success-bg; - -@panel-info-text: @state-info-text; -@panel-info-border: @state-info-border; -@panel-info-heading-bg: @state-info-bg; - -@panel-warning-text: @state-warning-text; -@panel-warning-border: @state-warning-border; -@panel-warning-heading-bg: @state-warning-bg; - -@panel-danger-text: @state-danger-text; -@panel-danger-border: @state-danger-border; -@panel-danger-heading-bg: @state-danger-bg; - - -//== Thumbnails -// -//## - -//** Padding around the thumbnail image -@thumbnail-padding: 4px; -//** Thumbnail background color -@thumbnail-bg: @body-bg; -//** Thumbnail border color -@thumbnail-border: #ddd; -//** Thumbnail border radius -@thumbnail-border-radius: @border-radius-base; - -//** Custom text color for thumbnail captions -@thumbnail-caption-color: @text-color; -//** Padding around the thumbnail caption -@thumbnail-caption-padding: 9px; - - -//== Wells -// -//## - -@well-bg: #f5f5f5; -@well-border: darken(@well-bg, 7%); - - -//== Badges -// -//## - -@badge-color: #fff; -//** Linked badge text color on hover -@badge-link-hover-color: #fff; -@badge-bg: @gray-light; - -//** Badge text color in active nav link -@badge-active-color: @link-color; -//** Badge background color in active nav link -@badge-active-bg: #fff; - -@badge-font-weight: bold; -@badge-line-height: 1; -@badge-border-radius: 10px; - - -//== Breadcrumbs -// -//## - -@breadcrumb-padding-vertical: 8px; -@breadcrumb-padding-horizontal: 15px; -//** Breadcrumb background color -@breadcrumb-bg: #f5f5f5; -//** Breadcrumb text color -@breadcrumb-color: #ccc; -//** Text color of current page in the breadcrumb -@breadcrumb-active-color: @gray-light; -//** Textual separator for between breadcrumb elements -@breadcrumb-separator: "/"; - - -//== Carousel -// -//## - -@carousel-text-shadow: 0 1px 2px rgba(0,0,0,.6); - -@carousel-control-color: #fff; -@carousel-control-width: 15%; -@carousel-control-opacity: .5; -@carousel-control-font-size: 20px; - -@carousel-indicator-active-bg: #fff; -@carousel-indicator-border-color: #fff; - -@carousel-caption-color: #fff; - - -//== Close -// -//## - -@close-font-weight: bold; -@close-color: #000; -@close-text-shadow: 0 1px 0 #fff; - - -//== Code -// -//## - -@code-color: #c7254e; -@code-bg: #f9f2f4; - -@kbd-color: #fff; -@kbd-bg: #333; - -@pre-bg: #f5f5f5; -@pre-color: @gray-dark; -@pre-border-color: #ccc; -@pre-scrollable-max-height: 340px; - - -//== Type -// -//## - -//** Horizontal offset for forms and lists. -@component-offset-horizontal: 180px; -//** Text muted color -@text-muted: @gray-light; -//** Abbreviations and acronyms border color -@abbr-border-color: @gray-light; -//** Headings small color -@headings-small-color: @gray-light; -//** Blockquote small color -@blockquote-small-color: @gray-light; -//** Blockquote font size -@blockquote-font-size: (@font-size-base * 1.25); -//** Blockquote border color -@blockquote-border-color: @gray-lighter; -//** Page header border color -@page-header-border-color: @gray-lighter; -//** Width of horizontal description list titles -@dl-horizontal-offset: @component-offset-horizontal; -//** Point at which .dl-horizontal becomes horizontal -@dl-horizontal-breakpoint: @grid-float-breakpoint; -//** Horizontal line color. -@hr-border: @gray-lighter; diff --git a/admin/bower_components/bootstrap/less/wells.less b/admin/bower_components/bootstrap/less/wells.less deleted file mode 100644 index 15d072b..0000000 --- a/admin/bower_components/bootstrap/less/wells.less +++ /dev/null @@ -1,29 +0,0 @@ -// -// Wells -// -------------------------------------------------- - - -// Base class -.well { - min-height: 20px; - padding: 19px; - margin-bottom: 20px; - background-color: @well-bg; - border: 1px solid @well-border; - border-radius: @border-radius-base; - .box-shadow(inset 0 1px 1px rgba(0,0,0,.05)); - blockquote { - border-color: #ddd; - border-color: rgba(0,0,0,.15); - } -} - -// Sizes -.well-lg { - padding: 24px; - border-radius: @border-radius-large; -} -.well-sm { - padding: 9px; - border-radius: @border-radius-small; -} diff --git a/admin/bower_components/bootstrap/nuget/MyGet.ps1 b/admin/bower_components/bootstrap/nuget/MyGet.ps1 deleted file mode 100644 index 417d33d..0000000 --- a/admin/bower_components/bootstrap/nuget/MyGet.ps1 +++ /dev/null @@ -1,8 +0,0 @@ -$nuget = $env:NuGet - -# parse the version number out of package.json -$bsversion = ((Get-Content $env:SourcesPath\package.json) -join "`n" | ConvertFrom-Json).version - -# create packages -& $nuget pack "nuget\bootstrap.nuspec" -Verbosity detailed -NonInteractive -NoPackageAnalysis -BasePath $env:SourcesPath -Version $bsversion -& $nuget pack "nuget\bootstrap.less.nuspec" -Verbosity detailed -NonInteractive -NoPackageAnalysis -BasePath $env:SourcesPath -Version $bsversion diff --git a/admin/bower_components/bootstrap/nuget/bootstrap.less.nuspec b/admin/bower_components/bootstrap/nuget/bootstrap.less.nuspec deleted file mode 100644 index c72d9ee..0000000 --- a/admin/bower_components/bootstrap/nuget/bootstrap.less.nuspec +++ /dev/null @@ -1,28 +0,0 @@ -<?xml version="1.0"?> -<package xmlns="http://schemas.microsoft.com/packaging/2011/08/nuspec.xsd"> - <metadata> - <id>bootstrap.less</id> - <version>3.3.7</version> - <title>Bootstrap Less</title> - <authors>Twitter, Inc.</authors> - <owners>bootstrap</owners> - <description>The most popular front-end framework for developing responsive, mobile first projects on the web.</description> - <releaseNotes>http://blog.getbootstrap.com</releaseNotes> - <summary>Bootstrap framework in Less. Includes fonts and JavaScript</summary> - <language>en-us</language> - <projectUrl>http://getbootstrap.com</projectUrl> - <iconUrl>http://getbootstrap.com/apple-touch-icon.png</iconUrl> - <licenseUrl>https://github.com/twbs/bootstrap/blob/master/LICENSE</licenseUrl> - <copyright>Copyright 2016</copyright> - <requireLicenseAcceptance>false</requireLicenseAcceptance> - <dependencies> - <dependency id="jQuery" version="[1.9.1,4)" /> - </dependencies> - <tags>css js less mobile-first responsive front-end framework web</tags> - </metadata> - <files> - <file src="less\**\*.less" target="content\Content\bootstrap" /> - <file src="fonts\*.*" target="content\Content\fonts" /> - <file src="dist\js\bootstrap*.js" target="content\Scripts" /> - </files> -</package> \ No newline at end of file diff --git a/admin/bower_components/bootstrap/nuget/bootstrap.nuspec b/admin/bower_components/bootstrap/nuget/bootstrap.nuspec deleted file mode 100644 index aa0db01..0000000 --- a/admin/bower_components/bootstrap/nuget/bootstrap.nuspec +++ /dev/null @@ -1,28 +0,0 @@ -<?xml version="1.0"?> -<package xmlns="http://schemas.microsoft.com/packaging/2011/08/nuspec.xsd"> - <metadata> - <id>bootstrap</id> - <version>3.3.7</version> - <title>Bootstrap CSS</title> - <authors>Twitter, Inc.</authors> - <owners>bootstrap</owners> - <description>The most popular front-end framework for developing responsive, mobile first projects on the web.</description> - <releaseNotes>http://blog.getbootstrap.com</releaseNotes> - <summary>Bootstrap framework in CSS. Includes fonts and JavaScript</summary> - <language>en-us</language> - <projectUrl>http://getbootstrap.com</projectUrl> - <iconUrl>http://getbootstrap.com/apple-touch-icon.png</iconUrl> - <licenseUrl>https://github.com/twbs/bootstrap/blob/master/LICENSE</licenseUrl> - <copyright>Copyright 2016</copyright> - <requireLicenseAcceptance>false</requireLicenseAcceptance> - <dependencies> - <dependency id="jQuery" version="[1.9.1,4)" /> - </dependencies> - <tags>css js less mobile-first responsive front-end framework web</tags> - </metadata> - <files> - <file src="dist\css\*.*" target="content\Content" /> - <file src="dist\fonts\*.*" target="content\fonts" /> - <file src="dist\js\bootstrap*.js" target="content\Scripts" /> - </files> -</package> \ No newline at end of file diff --git a/admin/bower_components/bootstrap/package.js b/admin/bower_components/bootstrap/package.js deleted file mode 100644 index f1ddd0c..0000000 --- a/admin/bower_components/bootstrap/package.js +++ /dev/null @@ -1,32 +0,0 @@ -// package metadata file for Meteor.js - -/* jshint strict:false */ -/* global Package:true */ - -Package.describe({ - name: 'twbs:bootstrap', // http://atmospherejs.com/twbs/bootstrap - summary: 'The most popular front-end framework for developing responsive, mobile first projects on the web.', - version: '3.3.7', - git: 'https://github.com/twbs/bootstrap.git' -}); - -Package.onUse(function (api) { - api.versionsFrom('METEOR@1.0'); - api.use('jquery', 'client'); - var assets = [ - 'dist/fonts/glyphicons-halflings-regular.eot', - 'dist/fonts/glyphicons-halflings-regular.svg', - 'dist/fonts/glyphicons-halflings-regular.ttf', - 'dist/fonts/glyphicons-halflings-regular.woff', - 'dist/fonts/glyphicons-halflings-regular.woff2' - ]; - if (api.addAssets) { - api.addAssets(assets, 'client'); - } else { - api.addFiles(assets, 'client', { isAsset: true }); - } - api.addFiles([ - 'dist/css/bootstrap.css', - 'dist/js/bootstrap.js' - ], 'client'); -}); diff --git a/admin/bower_components/bootstrap/package.json b/admin/bower_components/bootstrap/package.json deleted file mode 100644 index fe4b31d..0000000 --- a/admin/bower_components/bootstrap/package.json +++ /dev/null @@ -1,89 +0,0 @@ -{ - "name": "bootstrap", - "description": "The most popular front-end framework for developing responsive, mobile first projects on the web.", - "version": "3.3.7", - "keywords": [ - "css", - "less", - "mobile-first", - "responsive", - "front-end", - "framework", - "web" - ], - "homepage": "http://getbootstrap.com", - "author": "Twitter, Inc.", - "scripts": { - "change-version": "node grunt/change-version.js", - "update-shrinkwrap": "npm shrinkwrap --dev && shx mv ./npm-shrinkwrap.json ./grunt/npm-shrinkwrap.json", - "test": "grunt test" - }, - "style": "dist/css/bootstrap.css", - "less": "less/bootstrap.less", - "main": "./dist/js/npm", - "repository": { - "type": "git", - "url": "https://github.com/twbs/bootstrap.git" - }, - "bugs": { - "url": "https://github.com/twbs/bootstrap/issues" - }, - "license": "MIT", - "devDependencies": { - "btoa": "~1.1.2", - "glob": "~7.0.3", - "grunt": "~1.0.1", - "grunt-autoprefixer": "~3.0.4", - "grunt-contrib-clean": "~1.0.0", - "grunt-contrib-compress": "~1.3.0", - "grunt-contrib-concat": "~1.0.0", - "grunt-contrib-connect": "~1.0.0", - "grunt-contrib-copy": "~1.0.0", - "grunt-contrib-csslint": "~1.0.0", - "grunt-contrib-cssmin": "~1.0.0", - "grunt-contrib-htmlmin": "~1.5.0", - "grunt-contrib-jshint": "~1.0.0", - "grunt-contrib-less": "~1.3.0", - "grunt-contrib-pug": "~1.0.0", - "grunt-contrib-qunit": "~0.7.0", - "grunt-contrib-uglify": "~1.0.0", - "grunt-contrib-watch": "~1.0.0", - "grunt-csscomb": "~3.1.0", - "grunt-exec": "~1.0.0", - "grunt-html": "~8.0.1", - "grunt-jekyll": "~0.4.4", - "grunt-jscs": "~3.0.1", - "grunt-saucelabs": "~9.0.0", - "load-grunt-tasks": "~3.5.0", - "markdown-it": "^7.0.0", - "shelljs": "^0.7.0", - "shx": "^0.1.2", - "time-grunt": "^1.3.0" - }, - "engines": { - "node": ">=0.10.1" - }, - "files": [ - "dist", - "fonts", - "grunt", - "js/*.js", - "less/**/*.less", - "Gruntfile.js", - "LICENSE" - ], - "jspm": { - "main": "js/bootstrap", - "shim": { - "js/bootstrap": { - "deps": "jquery", - "exports": "$" - } - }, - "files": [ - "css", - "fonts", - "js" - ] - } -} diff --git a/admin/bower_components/fastclick/.bower.json b/admin/bower_components/fastclick/.bower.json deleted file mode 100644 index d20384f..0000000 --- a/admin/bower_components/fastclick/.bower.json +++ /dev/null @@ -1,24 +0,0 @@ -{ - "name": "fastclick", - "main": "lib/fastclick.js", - "ignore": [ - "**/.*", - "component.json", - "package.json", - "Makefile", - "tests", - "examples" - ], - "homepage": "https://github.com/ftlabs/fastclick", - "version": "1.0.6", - "_release": "1.0.6", - "_resolution": { - "type": "version", - "tag": "v1.0.6", - "commit": "2ac7258407619398005ca720596f0d36ce66a6c8" - }, - "_source": "https://github.com/ftlabs/fastclick.git", - "_target": "^1.0.6", - "_originalSource": "fastclick", - "_direct": true -} \ No newline at end of file diff --git a/admin/bower_components/fastclick/LICENSE b/admin/bower_components/fastclick/LICENSE deleted file mode 100644 index 459a20d..0000000 --- a/admin/bower_components/fastclick/LICENSE +++ /dev/null @@ -1,22 +0,0 @@ -Copyright (c) 2014 The Financial Times Ltd. - -Permission is hereby granted, free of charge, to any person -obtaining a copy of this software and associated documentation -files (the "Software"), to deal in the Software without -restriction, including without limitation the rights to use, -copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the -Software is furnished to do so, subject to the following -conditions: - -The above copyright notice and this permission notice shall be -included in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, -EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES -OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND -NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT -HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, -WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING -FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR -OTHER DEALINGS IN THE SOFTWARE. diff --git a/admin/bower_components/fastclick/README.md b/admin/bower_components/fastclick/README.md deleted file mode 100644 index 074895d..0000000 --- a/admin/bower_components/fastclick/README.md +++ /dev/null @@ -1,140 +0,0 @@ -# FastClick # - -FastClick is a simple, easy-to-use library for eliminating the 300ms delay between a physical tap and the firing of a `click` event on mobile browsers. The aim is to make your application feel less laggy and more responsive while avoiding any interference with your current logic. - -FastClick is developed by [FT Labs](http://labs.ft.com/), part of the Financial Times. - -[Explication en français](http://maxime.sh/2013/02/supprimer-le-lag-des-clics-sur-mobile-avec-fastclick/). - -[日本語で説明](https://developer.mozilla.org/ja/docs/Mozilla/Firefox_OS/Apps/Tips_and_techniques#Make_events_immediate)。 - -## Why does the delay exist? ## - -According to [Google](https://developers.google.com/mobile/articles/fast_buttons): - -> ...mobile browsers will wait approximately 300ms from the time that you tap the button to fire the click event. The reason for this is that the browser is waiting to see if you are actually performing a double tap. - -## Compatibility ## - -The library has been deployed as part of the [FT Web App](http://app.ft.com/) and is tried and tested on the following mobile browsers: - -* Mobile Safari on iOS 3 and upwards -* Chrome on iOS 5 and upwards -* Chrome on Android (ICS) -* Opera Mobile 11.5 and upwards -* Android Browser since Android 2 -* PlayBook OS 1 and upwards - -## When it isn't needed ## - -FastClick doesn't attach any listeners on desktop browsers. - -Chrome 32+ on Android with `width=device-width` in the [viewport meta tag](https://developer.mozilla.org/en-US/docs/Mobile/Viewport_meta_tag) doesn't have a 300ms delay, therefore listeners aren't attached. - -```html -<meta name="viewport" content="width=device-width, initial-scale=1"> -``` - -Same goes for Chrome on Android (all versions) with `user-scalable=no` in the viewport meta tag. But be aware that `user-scalable=no` also disables pinch zooming, which may be an accessibility concern. - -For IE11+, you can use `touch-action: manipulation;` to disable double-tap-to-zoom on certain elements (like links and buttons). For IE10 use `-ms-touch-action: manipulation`. - -## Usage ## - -Include fastclick.js in your JavaScript bundle or add it to your HTML page like this: - -```html -<script type='application/javascript' src='/path/to/fastclick.js'></script> -``` - -The script must be loaded prior to instantiating FastClick on any element of the page. - -To instantiate FastClick on the `body`, which is the recommended method of use: - -```js -if ('addEventListener' in document) { - document.addEventListener('DOMContentLoaded', function() { - FastClick.attach(document.body); - }, false); -} -``` - -Or, if you're using jQuery: - -```js -$(function() { - FastClick.attach(document.body); -}); -``` - -If you're using Browserify or another CommonJS-style module system, the `FastClick.attach` function will be returned when you call `require('fastclick')`. As a result, the easiest way to use FastClick with these loaders is as follows: - -```js -var attachFastClick = require('fastclick'); -attachFastClick(document.body); -``` - -### Minified ### - -Run `make` to build a minified version of FastClick using the Closure Compiler REST API. The minified file is saved to `build/fastclick.min.js` or you can [download a pre-minified version](http://build.origami.ft.com/bundles/js?modules=fastclick). - -Note: the pre-minified version is built using [our build service](http://origami.ft.com/docs/developer-guide/build-service/) which exposes the `FastClick` object through `Origami.fastclick` and will have the Browserify/CommonJS API (see above). - -```js -var attachFastClick = Origami.fastclick; -attachFastClick(document.body); -``` - -### AMD ### - -FastClick has AMD (Asynchronous Module Definition) support. This allows it to be lazy-loaded with an AMD loader, such as [RequireJS](http://requirejs.org/). Note that when using the AMD style require, the full `FastClick` object will be returned, _not_ `FastClick.attach` - -```js -var FastClick = require('fastclick'); -FastClick.attach(document.body, options); -``` - -### Package managers ### - -You can install FastClick using [Component](https://github.com/component/component), [npm](https://npmjs.org/package/fastclick) or [Bower](http://bower.io/). - -For Ruby, there's a third-party gem called [fastclick-rails](http://rubygems.org/gems/fastclick-rails). For .NET there's a [NuGet package](http://nuget.org/packages/FastClick). - -## Advanced ## - -### Ignore certain elements with `needsclick` ### - -Sometimes you need FastClick to ignore certain elements. You can do this easily by adding the `needsclick` class. -```html -<a class="needsclick">Ignored by FastClick</a> -``` - -#### Use case 1: non-synthetic click required #### - -Internally, FastClick uses `document.createEvent` to fire a synthetic `click` event as soon as `touchend` is fired by the browser. It then suppresses the additional `click` event created by the browser after that. In some cases, the non-synthetic `click` event created by the browser is required, as described in the [triggering focus example](http://ftlabs.github.com/fastclick/examples/focus.html). - -This is where the `needsclick` class comes in. Add the class to any element that requires a non-synthetic click. - -#### Use case 2: Twitter Bootstrap 2.2.2 dropdowns #### - -Another example of when to use the `needsclick` class is with dropdowns in Twitter Bootstrap 2.2.2. Bootstrap add its own `touchstart` listener for dropdowns, so you want to tell FastClick to ignore those. If you don't, touch devices will automatically close the dropdown as soon as it is clicked, because both FastClick and Bootstrap execute the synthetic click, one opens the dropdown, the second closes it immediately after. - -```html -<a class="dropdown-toggle needsclick" data-toggle="dropdown">Dropdown</a> -``` - -## Examples ## - -FastClick is designed to cope with many different browser oddities. Here are some examples to illustrate this: - -* [basic use](http://ftlabs.github.com/fastclick/examples/layer.html) showing the increase in perceived responsiveness -* [triggering focus](http://ftlabs.github.com/fastclick/examples/focus.html) on an input element from a `click` handler -* [input element](http://ftlabs.github.com/fastclick/examples/input.html) which never receives clicks but gets fast focus - -## Tests ## - -There are no automated tests. The files in `tests/` are manual reduced test cases. We've had a think about how best to test these cases, but they tend to be very browser/device specific and sometimes subjective which means it's not so trivial to test. - -## Credits and collaboration ## - -FastClick is maintained by [Rowan Beentje](http://twitter.com/rowanbeentje), [Matthew Caruana Galizia](http://twitter.com/mcaruanagalizia) and [Matthew Andrews](http://twitter.com/andrewsmatt) at [FT Labs](http://labs.ft.com). All open source code released by FT Labs is licenced under the MIT licence. We welcome comments, feedback and suggestions. Please feel free to raise an issue or pull request. diff --git a/admin/bower_components/fastclick/bower.json b/admin/bower_components/fastclick/bower.json deleted file mode 100644 index 18e1abd..0000000 --- a/admin/bower_components/fastclick/bower.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "name": "fastclick", - "main": "lib/fastclick.js", - "ignore": [ - "**/.*", - "component.json", - "package.json", - "Makefile", - "tests", - "examples" - ] -} diff --git a/admin/bower_components/fastclick/lib/fastclick.js b/admin/bower_components/fastclick/lib/fastclick.js deleted file mode 100644 index 3af4f9d..0000000 --- a/admin/bower_components/fastclick/lib/fastclick.js +++ /dev/null @@ -1,841 +0,0 @@ -;(function () { - 'use strict'; - - /** - * @preserve FastClick: polyfill to remove click delays on browsers with touch UIs. - * - * @codingstandard ftlabs-jsv2 - * @copyright The Financial Times Limited [All Rights Reserved] - * @license MIT License (see LICENSE.txt) - */ - - /*jslint browser:true, node:true*/ - /*global define, Event, Node*/ - - - /** - * Instantiate fast-clicking listeners on the specified layer. - * - * @constructor - * @param {Element} layer The layer to listen on - * @param {Object} [options={}] The options to override the defaults - */ - function FastClick(layer, options) { - var oldOnClick; - - options = options || {}; - - /** - * Whether a click is currently being tracked. - * - * @type boolean - */ - this.trackingClick = false; - - - /** - * Timestamp for when click tracking started. - * - * @type number - */ - this.trackingClickStart = 0; - - - /** - * The element being tracked for a click. - * - * @type EventTarget - */ - this.targetElement = null; - - - /** - * X-coordinate of touch start event. - * - * @type number - */ - this.touchStartX = 0; - - - /** - * Y-coordinate of touch start event. - * - * @type number - */ - this.touchStartY = 0; - - - /** - * ID of the last touch, retrieved from Touch.identifier. - * - * @type number - */ - this.lastTouchIdentifier = 0; - - - /** - * Touchmove boundary, beyond which a click will be cancelled. - * - * @type number - */ - this.touchBoundary = options.touchBoundary || 10; - - - /** - * The FastClick layer. - * - * @type Element - */ - this.layer = layer; - - /** - * The minimum time between tap(touchstart and touchend) events - * - * @type number - */ - this.tapDelay = options.tapDelay || 200; - - /** - * The maximum time for a tap - * - * @type number - */ - this.tapTimeout = options.tapTimeout || 700; - - if (FastClick.notNeeded(layer)) { - return; - } - - // Some old versions of Android don't have Function.prototype.bind - function bind(method, context) { - return function() { return method.apply(context, arguments); }; - } - - - var methods = ['onMouse', 'onClick', 'onTouchStart', 'onTouchMove', 'onTouchEnd', 'onTouchCancel']; - var context = this; - for (var i = 0, l = methods.length; i < l; i++) { - context[methods[i]] = bind(context[methods[i]], context); - } - - // Set up event handlers as required - if (deviceIsAndroid) { - layer.addEventListener('mouseover', this.onMouse, true); - layer.addEventListener('mousedown', this.onMouse, true); - layer.addEventListener('mouseup', this.onMouse, true); - } - - layer.addEventListener('click', this.onClick, true); - layer.addEventListener('touchstart', this.onTouchStart, false); - layer.addEventListener('touchmove', this.onTouchMove, false); - layer.addEventListener('touchend', this.onTouchEnd, false); - layer.addEventListener('touchcancel', this.onTouchCancel, false); - - // Hack is required for browsers that don't support Event#stopImmediatePropagation (e.g. Android 2) - // which is how FastClick normally stops click events bubbling to callbacks registered on the FastClick - // layer when they are cancelled. - if (!Event.prototype.stopImmediatePropagation) { - layer.removeEventListener = function(type, callback, capture) { - var rmv = Node.prototype.removeEventListener; - if (type === 'click') { - rmv.call(layer, type, callback.hijacked || callback, capture); - } else { - rmv.call(layer, type, callback, capture); - } - }; - - layer.addEventListener = function(type, callback, capture) { - var adv = Node.prototype.addEventListener; - if (type === 'click') { - adv.call(layer, type, callback.hijacked || (callback.hijacked = function(event) { - if (!event.propagationStopped) { - callback(event); - } - }), capture); - } else { - adv.call(layer, type, callback, capture); - } - }; - } - - // If a handler is already declared in the element's onclick attribute, it will be fired before - // FastClick's onClick handler. Fix this by pulling out the user-defined handler function and - // adding it as listener. - if (typeof layer.onclick === 'function') { - - // Android browser on at least 3.2 requires a new reference to the function in layer.onclick - // - the old one won't work if passed to addEventListener directly. - oldOnClick = layer.onclick; - layer.addEventListener('click', function(event) { - oldOnClick(event); - }, false); - layer.onclick = null; - } - } - - /** - * Windows Phone 8.1 fakes user agent string to look like Android and iPhone. - * - * @type boolean - */ - var deviceIsWindowsPhone = navigator.userAgent.indexOf("Windows Phone") >= 0; - - /** - * Android requires exceptions. - * - * @type boolean - */ - var deviceIsAndroid = navigator.userAgent.indexOf('Android') > 0 && !deviceIsWindowsPhone; - - - /** - * iOS requires exceptions. - * - * @type boolean - */ - var deviceIsIOS = /iP(ad|hone|od)/.test(navigator.userAgent) && !deviceIsWindowsPhone; - - - /** - * iOS 4 requires an exception for select elements. - * - * @type boolean - */ - var deviceIsIOS4 = deviceIsIOS && (/OS 4_\d(_\d)?/).test(navigator.userAgent); - - - /** - * iOS 6.0-7.* requires the target element to be manually derived - * - * @type boolean - */ - var deviceIsIOSWithBadTarget = deviceIsIOS && (/OS [6-7]_\d/).test(navigator.userAgent); - - /** - * BlackBerry requires exceptions. - * - * @type boolean - */ - var deviceIsBlackBerry10 = navigator.userAgent.indexOf('BB10') > 0; - - /** - * Determine whether a given element requires a native click. - * - * @param {EventTarget|Element} target Target DOM element - * @returns {boolean} Returns true if the element needs a native click - */ - FastClick.prototype.needsClick = function(target) { - switch (target.nodeName.toLowerCase()) { - - // Don't send a synthetic click to disabled inputs (issue #62) - case 'button': - case 'select': - case 'textarea': - if (target.disabled) { - return true; - } - - break; - case 'input': - - // File inputs need real clicks on iOS 6 due to a browser bug (issue #68) - if ((deviceIsIOS && target.type === 'file') || target.disabled) { - return true; - } - - break; - case 'label': - case 'iframe': // iOS8 homescreen apps can prevent events bubbling into frames - case 'video': - return true; - } - - return (/\bneedsclick\b/).test(target.className); - }; - - - /** - * Determine whether a given element requires a call to focus to simulate click into element. - * - * @param {EventTarget|Element} target Target DOM element - * @returns {boolean} Returns true if the element requires a call to focus to simulate native click. - */ - FastClick.prototype.needsFocus = function(target) { - switch (target.nodeName.toLowerCase()) { - case 'textarea': - return true; - case 'select': - return !deviceIsAndroid; - case 'input': - switch (target.type) { - case 'button': - case 'checkbox': - case 'file': - case 'image': - case 'radio': - case 'submit': - return false; - } - - // No point in attempting to focus disabled inputs - return !target.disabled && !target.readOnly; - default: - return (/\bneedsfocus\b/).test(target.className); - } - }; - - - /** - * Send a click event to the specified element. - * - * @param {EventTarget|Element} targetElement - * @param {Event} event - */ - FastClick.prototype.sendClick = function(targetElement, event) { - var clickEvent, touch; - - // On some Android devices activeElement needs to be blurred otherwise the synthetic click will have no effect (#24) - if (document.activeElement && document.activeElement !== targetElement) { - document.activeElement.blur(); - } - - touch = event.changedTouches[0]; - - // Synthesise a click event, with an extra attribute so it can be tracked - clickEvent = document.createEvent('MouseEvents'); - clickEvent.initMouseEvent(this.determineEventType(targetElement), true, true, window, 1, touch.screenX, touch.screenY, touch.clientX, touch.clientY, false, false, false, false, 0, null); - clickEvent.forwardedTouchEvent = true; - targetElement.dispatchEvent(clickEvent); - }; - - FastClick.prototype.determineEventType = function(targetElement) { - - //Issue #159: Android Chrome Select Box does not open with a synthetic click event - if (deviceIsAndroid && targetElement.tagName.toLowerCase() === 'select') { - return 'mousedown'; - } - - return 'click'; - }; - - - /** - * @param {EventTarget|Element} targetElement - */ - FastClick.prototype.focus = function(targetElement) { - var length; - - // Issue #160: on iOS 7, some input elements (e.g. date datetime month) throw a vague TypeError on setSelectionRange. These elements don't have an integer value for the selectionStart and selectionEnd properties, but unfortunately that can't be used for detection because accessing the properties also throws a TypeError. Just check the type instead. Filed as Apple bug #15122724. - if (deviceIsIOS && targetElement.setSelectionRange && targetElement.type.indexOf('date') !== 0 && targetElement.type !== 'time' && targetElement.type !== 'month') { - length = targetElement.value.length; - targetElement.setSelectionRange(length, length); - } else { - targetElement.focus(); - } - }; - - - /** - * Check whether the given target element is a child of a scrollable layer and if so, set a flag on it. - * - * @param {EventTarget|Element} targetElement - */ - FastClick.prototype.updateScrollParent = function(targetElement) { - var scrollParent, parentElement; - - scrollParent = targetElement.fastClickScrollParent; - - // Attempt to discover whether the target element is contained within a scrollable layer. Re-check if the - // target element was moved to another parent. - if (!scrollParent || !scrollParent.contains(targetElement)) { - parentElement = targetElement; - do { - if (parentElement.scrollHeight > parentElement.offsetHeight) { - scrollParent = parentElement; - targetElement.fastClickScrollParent = parentElement; - break; - } - - parentElement = parentElement.parentElement; - } while (parentElement); - } - - // Always update the scroll top tracker if possible. - if (scrollParent) { - scrollParent.fastClickLastScrollTop = scrollParent.scrollTop; - } - }; - - - /** - * @param {EventTarget} targetElement - * @returns {Element|EventTarget} - */ - FastClick.prototype.getTargetElementFromEventTarget = function(eventTarget) { - - // On some older browsers (notably Safari on iOS 4.1 - see issue #56) the event target may be a text node. - if (eventTarget.nodeType === Node.TEXT_NODE) { - return eventTarget.parentNode; - } - - return eventTarget; - }; - - - /** - * On touch start, record the position and scroll offset. - * - * @param {Event} event - * @returns {boolean} - */ - FastClick.prototype.onTouchStart = function(event) { - var targetElement, touch, selection; - - // Ignore multiple touches, otherwise pinch-to-zoom is prevented if both fingers are on the FastClick element (issue #111). - if (event.targetTouches.length > 1) { - return true; - } - - targetElement = this.getTargetElementFromEventTarget(event.target); - touch = event.targetTouches[0]; - - if (deviceIsIOS) { - - // Only trusted events will deselect text on iOS (issue #49) - selection = window.getSelection(); - if (selection.rangeCount && !selection.isCollapsed) { - return true; - } - - if (!deviceIsIOS4) { - - // Weird things happen on iOS when an alert or confirm dialog is opened from a click event callback (issue #23): - // when the user next taps anywhere else on the page, new touchstart and touchend events are dispatched - // with the same identifier as the touch event that previously triggered the click that triggered the alert. - // Sadly, there is an issue on iOS 4 that causes some normal touch events to have the same identifier as an - // immediately preceeding touch event (issue #52), so this fix is unavailable on that platform. - // Issue 120: touch.identifier is 0 when Chrome dev tools 'Emulate touch events' is set with an iOS device UA string, - // which causes all touch events to be ignored. As this block only applies to iOS, and iOS identifiers are always long, - // random integers, it's safe to to continue if the identifier is 0 here. - if (touch.identifier && touch.identifier === this.lastTouchIdentifier) { - event.preventDefault(); - return false; - } - - this.lastTouchIdentifier = touch.identifier; - - // If the target element is a child of a scrollable layer (using -webkit-overflow-scrolling: touch) and: - // 1) the user does a fling scroll on the scrollable layer - // 2) the user stops the fling scroll with another tap - // then the event.target of the last 'touchend' event will be the element that was under the user's finger - // when the fling scroll was started, causing FastClick to send a click event to that layer - unless a check - // is made to ensure that a parent layer was not scrolled before sending a synthetic click (issue #42). - this.updateScrollParent(targetElement); - } - } - - this.trackingClick = true; - this.trackingClickStart = event.timeStamp; - this.targetElement = targetElement; - - this.touchStartX = touch.pageX; - this.touchStartY = touch.pageY; - - // Prevent phantom clicks on fast double-tap (issue #36) - if ((event.timeStamp - this.lastClickTime) < this.tapDelay) { - event.preventDefault(); - } - - return true; - }; - - - /** - * Based on a touchmove event object, check whether the touch has moved past a boundary since it started. - * - * @param {Event} event - * @returns {boolean} - */ - FastClick.prototype.touchHasMoved = function(event) { - var touch = event.changedTouches[0], boundary = this.touchBoundary; - - if (Math.abs(touch.pageX - this.touchStartX) > boundary || Math.abs(touch.pageY - this.touchStartY) > boundary) { - return true; - } - - return false; - }; - - - /** - * Update the last position. - * - * @param {Event} event - * @returns {boolean} - */ - FastClick.prototype.onTouchMove = function(event) { - if (!this.trackingClick) { - return true; - } - - // If the touch has moved, cancel the click tracking - if (this.targetElement !== this.getTargetElementFromEventTarget(event.target) || this.touchHasMoved(event)) { - this.trackingClick = false; - this.targetElement = null; - } - - return true; - }; - - - /** - * Attempt to find the labelled control for the given label element. - * - * @param {EventTarget|HTMLLabelElement} labelElement - * @returns {Element|null} - */ - FastClick.prototype.findControl = function(labelElement) { - - // Fast path for newer browsers supporting the HTML5 control attribute - if (labelElement.control !== undefined) { - return labelElement.control; - } - - // All browsers under test that support touch events also support the HTML5 htmlFor attribute - if (labelElement.htmlFor) { - return document.getElementById(labelElement.htmlFor); - } - - // If no for attribute exists, attempt to retrieve the first labellable descendant element - // the list of which is defined here: http://www.w3.org/TR/html5/forms.html#category-label - return labelElement.querySelector('button, input:not([type=hidden]), keygen, meter, output, progress, select, textarea'); - }; - - - /** - * On touch end, determine whether to send a click event at once. - * - * @param {Event} event - * @returns {boolean} - */ - FastClick.prototype.onTouchEnd = function(event) { - var forElement, trackingClickStart, targetTagName, scrollParent, touch, targetElement = this.targetElement; - - if (!this.trackingClick) { - return true; - } - - // Prevent phantom clicks on fast double-tap (issue #36) - if ((event.timeStamp - this.lastClickTime) < this.tapDelay) { - this.cancelNextClick = true; - return true; - } - - if ((event.timeStamp - this.trackingClickStart) > this.tapTimeout) { - return true; - } - - // Reset to prevent wrong click cancel on input (issue #156). - this.cancelNextClick = false; - - this.lastClickTime = event.timeStamp; - - trackingClickStart = this.trackingClickStart; - this.trackingClick = false; - this.trackingClickStart = 0; - - // On some iOS devices, the targetElement supplied with the event is invalid if the layer - // is performing a transition or scroll, and has to be re-detected manually. Note that - // for this to function correctly, it must be called *after* the event target is checked! - // See issue #57; also filed as rdar://13048589 . - if (deviceIsIOSWithBadTarget) { - touch = event.changedTouches[0]; - - // In certain cases arguments of elementFromPoint can be negative, so prevent setting targetElement to null - targetElement = document.elementFromPoint(touch.pageX - window.pageXOffset, touch.pageY - window.pageYOffset) || targetElement; - targetElement.fastClickScrollParent = this.targetElement.fastClickScrollParent; - } - - targetTagName = targetElement.tagName.toLowerCase(); - if (targetTagName === 'label') { - forElement = this.findControl(targetElement); - if (forElement) { - this.focus(targetElement); - if (deviceIsAndroid) { - return false; - } - - targetElement = forElement; - } - } else if (this.needsFocus(targetElement)) { - - // Case 1: If the touch started a while ago (best guess is 100ms based on tests for issue #36) then focus will be triggered anyway. Return early and unset the target element reference so that the subsequent click will be allowed through. - // Case 2: Without this exception for input elements tapped when the document is contained in an iframe, then any inputted text won't be visible even though the value attribute is updated as the user types (issue #37). - if ((event.timeStamp - trackingClickStart) > 100 || (deviceIsIOS && window.top !== window && targetTagName === 'input')) { - this.targetElement = null; - return false; - } - - this.focus(targetElement); - this.sendClick(targetElement, event); - - // Select elements need the event to go through on iOS 4, otherwise the selector menu won't open. - // Also this breaks opening selects when VoiceOver is active on iOS6, iOS7 (and possibly others) - if (!deviceIsIOS || targetTagName !== 'select') { - this.targetElement = null; - event.preventDefault(); - } - - return false; - } - - if (deviceIsIOS && !deviceIsIOS4) { - - // Don't send a synthetic click event if the target element is contained within a parent layer that was scrolled - // and this tap is being used to stop the scrolling (usually initiated by a fling - issue #42). - scrollParent = targetElement.fastClickScrollParent; - if (scrollParent && scrollParent.fastClickLastScrollTop !== scrollParent.scrollTop) { - return true; - } - } - - // Prevent the actual click from going though - unless the target node is marked as requiring - // real clicks or if it is in the whitelist in which case only non-programmatic clicks are permitted. - if (!this.needsClick(targetElement)) { - event.preventDefault(); - this.sendClick(targetElement, event); - } - - return false; - }; - - - /** - * On touch cancel, stop tracking the click. - * - * @returns {void} - */ - FastClick.prototype.onTouchCancel = function() { - this.trackingClick = false; - this.targetElement = null; - }; - - - /** - * Determine mouse events which should be permitted. - * - * @param {Event} event - * @returns {boolean} - */ - FastClick.prototype.onMouse = function(event) { - - // If a target element was never set (because a touch event was never fired) allow the event - if (!this.targetElement) { - return true; - } - - if (event.forwardedTouchEvent) { - return true; - } - - // Programmatically generated events targeting a specific element should be permitted - if (!event.cancelable) { - return true; - } - - // Derive and check the target element to see whether the mouse event needs to be permitted; - // unless explicitly enabled, prevent non-touch click events from triggering actions, - // to prevent ghost/doubleclicks. - if (!this.needsClick(this.targetElement) || this.cancelNextClick) { - - // Prevent any user-added listeners declared on FastClick element from being fired. - if (event.stopImmediatePropagation) { - event.stopImmediatePropagation(); - } else { - - // Part of the hack for browsers that don't support Event#stopImmediatePropagation (e.g. Android 2) - event.propagationStopped = true; - } - - // Cancel the event - event.stopPropagation(); - event.preventDefault(); - - return false; - } - - // If the mouse event is permitted, return true for the action to go through. - return true; - }; - - - /** - * On actual clicks, determine whether this is a touch-generated click, a click action occurring - * naturally after a delay after a touch (which needs to be cancelled to avoid duplication), or - * an actual click which should be permitted. - * - * @param {Event} event - * @returns {boolean} - */ - FastClick.prototype.onClick = function(event) { - var permitted; - - // It's possible for another FastClick-like library delivered with third-party code to fire a click event before FastClick does (issue #44). In that case, set the click-tracking flag back to false and return early. This will cause onTouchEnd to return early. - if (this.trackingClick) { - this.targetElement = null; - this.trackingClick = false; - return true; - } - - // Very odd behaviour on iOS (issue #18): if a submit element is present inside a form and the user hits enter in the iOS simulator or clicks the Go button on the pop-up OS keyboard the a kind of 'fake' click event will be triggered with the submit-type input element as the target. - if (event.target.type === 'submit' && event.detail === 0) { - return true; - } - - permitted = this.onMouse(event); - - // Only unset targetElement if the click is not permitted. This will ensure that the check for !targetElement in onMouse fails and the browser's click doesn't go through. - if (!permitted) { - this.targetElement = null; - } - - // If clicks are permitted, return true for the action to go through. - return permitted; - }; - - - /** - * Remove all FastClick's event listeners. - * - * @returns {void} - */ - FastClick.prototype.destroy = function() { - var layer = this.layer; - - if (deviceIsAndroid) { - layer.removeEventListener('mouseover', this.onMouse, true); - layer.removeEventListener('mousedown', this.onMouse, true); - layer.removeEventListener('mouseup', this.onMouse, true); - } - - layer.removeEventListener('click', this.onClick, true); - layer.removeEventListener('touchstart', this.onTouchStart, false); - layer.removeEventListener('touchmove', this.onTouchMove, false); - layer.removeEventListener('touchend', this.onTouchEnd, false); - layer.removeEventListener('touchcancel', this.onTouchCancel, false); - }; - - - /** - * Check whether FastClick is needed. - * - * @param {Element} layer The layer to listen on - */ - FastClick.notNeeded = function(layer) { - var metaViewport; - var chromeVersion; - var blackberryVersion; - var firefoxVersion; - - // Devices that don't support touch don't need FastClick - if (typeof window.ontouchstart === 'undefined') { - return true; - } - - // Chrome version - zero for other browsers - chromeVersion = +(/Chrome\/([0-9]+)/.exec(navigator.userAgent) || [,0])[1]; - - if (chromeVersion) { - - if (deviceIsAndroid) { - metaViewport = document.querySelector('meta[name=viewport]'); - - if (metaViewport) { - // Chrome on Android with user-scalable="no" doesn't need FastClick (issue #89) - if (metaViewport.content.indexOf('user-scalable=no') !== -1) { - return true; - } - // Chrome 32 and above with width=device-width or less don't need FastClick - if (chromeVersion > 31 && document.documentElement.scrollWidth <= window.outerWidth) { - return true; - } - } - - // Chrome desktop doesn't need FastClick (issue #15) - } else { - return true; - } - } - - if (deviceIsBlackBerry10) { - blackberryVersion = navigator.userAgent.match(/Version\/([0-9]*)\.([0-9]*)/); - - // BlackBerry 10.3+ does not require Fastclick library. - // https://github.com/ftlabs/fastclick/issues/251 - if (blackberryVersion[1] >= 10 && blackberryVersion[2] >= 3) { - metaViewport = document.querySelector('meta[name=viewport]'); - - if (metaViewport) { - // user-scalable=no eliminates click delay. - if (metaViewport.content.indexOf('user-scalable=no') !== -1) { - return true; - } - // width=device-width (or less than device-width) eliminates click delay. - if (document.documentElement.scrollWidth <= window.outerWidth) { - return true; - } - } - } - } - - // IE10 with -ms-touch-action: none or manipulation, which disables double-tap-to-zoom (issue #97) - if (layer.style.msTouchAction === 'none' || layer.style.touchAction === 'manipulation') { - return true; - } - - // Firefox version - zero for other browsers - firefoxVersion = +(/Firefox\/([0-9]+)/.exec(navigator.userAgent) || [,0])[1]; - - if (firefoxVersion >= 27) { - // Firefox 27+ does not have tap delay if the content is not zoomable - https://bugzilla.mozilla.org/show_bug.cgi?id=922896 - - metaViewport = document.querySelector('meta[name=viewport]'); - if (metaViewport && (metaViewport.content.indexOf('user-scalable=no') !== -1 || document.documentElement.scrollWidth <= window.outerWidth)) { - return true; - } - } - - // IE11: prefixed -ms-touch-action is no longer supported and it's recomended to use non-prefixed version - // http://msdn.microsoft.com/en-us/library/windows/apps/Hh767313.aspx - if (layer.style.touchAction === 'none' || layer.style.touchAction === 'manipulation') { - return true; - } - - return false; - }; - - - /** - * Factory method for creating a FastClick object - * - * @param {Element} layer The layer to listen on - * @param {Object} [options={}] The options to override the defaults - */ - FastClick.attach = function(layer, options) { - return new FastClick(layer, options); - }; - - - if (typeof define === 'function' && typeof define.amd === 'object' && define.amd) { - - // AMD. Register as an anonymous module. - define(function() { - return FastClick; - }); - } else if (typeof module !== 'undefined' && module.exports) { - module.exports = FastClick.attach; - module.exports.FastClick = FastClick; - } else { - window.FastClick = FastClick; - } -}()); diff --git a/admin/bower_components/font-awesome/.bower.json b/admin/bower_components/font-awesome/.bower.json deleted file mode 100644 index 91c4ea1..0000000 --- a/admin/bower_components/font-awesome/.bower.json +++ /dev/null @@ -1,37 +0,0 @@ -{ - "name": "font-awesome", - "description": "Font Awesome", - "keywords": [], - "homepage": "http://fontawesome.io", - "dependencies": {}, - "devDependencies": {}, - "license": [ - "OFL-1.1", - "MIT", - "CC-BY-3.0" - ], - "main": [ - "less/font-awesome.less", - "scss/font-awesome.scss" - ], - "ignore": [ - "*/.*", - "*.json", - "src", - "*.yml", - "Gemfile", - "Gemfile.lock", - "*.md" - ], - "version": "4.7.0", - "_release": "4.7.0", - "_resolution": { - "type": "version", - "tag": "v4.7.0", - "commit": "a3fe90fa5f6fac55d197f9cbd18e3f57dafb716c" - }, - "_source": "https://github.com/FortAwesome/Font-Awesome.git", - "_target": "^4.7.0", - "_originalSource": "font-awesome", - "_direct": true -} \ No newline at end of file diff --git a/admin/bower_components/font-awesome/.gitignore b/admin/bower_components/font-awesome/.gitignore deleted file mode 100644 index 39c4f20..0000000 --- a/admin/bower_components/font-awesome/.gitignore +++ /dev/null @@ -1,33 +0,0 @@ -*.pyc -*.egg-info -*.db -*.db.old -*.swp -*.db-journal - -.coverage -.DS_Store -.installed.cfg -_gh_pages/* - -.idea/* -.svn/* -src/website/static/* -src/website/media/* - -bin -cfcache -develop-eggs -dist -downloads -eggs -parts -tmp -.sass-cache -node_modules - -src/website/settingslocal.py -stunnel.log - -.ruby-version -.bundle diff --git a/admin/bower_components/font-awesome/.npmignore b/admin/bower_components/font-awesome/.npmignore deleted file mode 100644 index 54a691f..0000000 --- a/admin/bower_components/font-awesome/.npmignore +++ /dev/null @@ -1,42 +0,0 @@ -*.pyc -*.egg-info -*.db -*.db.old -*.swp -*.db-journal - -.coverage -.DS_Store -.installed.cfg -_gh_pages/* - -.idea/* -.svn/* -src/website/static/* -src/website/media/* - -bin -cfcache -develop-eggs -dist -downloads -eggs -parts -tmp -.sass-cache -node_modules - -src/website/settingslocal.py -stunnel.log - -.ruby-version - -# don't need these in the npm package. -src/ -_config.yml -bower.json -component.json -composer.json -CONTRIBUTING.md -Gemfile -Gemfile.lock diff --git a/admin/bower_components/font-awesome/HELP-US-OUT.txt b/admin/bower_components/font-awesome/HELP-US-OUT.txt deleted file mode 100644 index 83d083d..0000000 --- a/admin/bower_components/font-awesome/HELP-US-OUT.txt +++ /dev/null @@ -1,7 +0,0 @@ -I hope you love Font Awesome. If you've found it useful, please do me a favor and check out my latest project, -Fort Awesome (https://fortawesome.com). It makes it easy to put the perfect icons on your website. Choose from our awesome, -comprehensive icon sets or copy and paste your own. - -Please. Check it out. - --Dave Gandy diff --git a/admin/bower_components/font-awesome/bower.json b/admin/bower_components/font-awesome/bower.json deleted file mode 100644 index 9e21126..0000000 --- a/admin/bower_components/font-awesome/bower.json +++ /dev/null @@ -1,22 +0,0 @@ -{ - "name": "font-awesome", - "description": "Font Awesome", - "keywords": [], - "homepage": "http://fontawesome.io", - "dependencies": {}, - "devDependencies": {}, - "license": ["OFL-1.1", "MIT", "CC-BY-3.0"], - "main": [ - "less/font-awesome.less", - "scss/font-awesome.scss" - ], - "ignore": [ - "*/.*", - "*.json", - "src", - "*.yml", - "Gemfile", - "Gemfile.lock", - "*.md" - ] -} diff --git a/admin/bower_components/font-awesome/css/font-awesome.css b/admin/bower_components/font-awesome/css/font-awesome.css deleted file mode 100644 index ee906a8..0000000 --- a/admin/bower_components/font-awesome/css/font-awesome.css +++ /dev/null @@ -1,2337 +0,0 @@ -/*! - * Font Awesome 4.7.0 by @davegandy - http://fontawesome.io - @fontawesome - * License - http://fontawesome.io/license (Font: SIL OFL 1.1, CSS: MIT License) - */ -/* FONT PATH - * -------------------------- */ -@font-face { - font-family: 'FontAwesome'; - src: url('../fonts/fontawesome-webfont.eot?v=4.7.0'); - src: url('../fonts/fontawesome-webfont.eot?#iefix&v=4.7.0') format('embedded-opentype'), url('../fonts/fontawesome-webfont.woff2?v=4.7.0') format('woff2'), url('../fonts/fontawesome-webfont.woff?v=4.7.0') format('woff'), url('../fonts/fontawesome-webfont.ttf?v=4.7.0') format('truetype'), url('../fonts/fontawesome-webfont.svg?v=4.7.0#fontawesomeregular') format('svg'); - font-weight: normal; - font-style: normal; -} -.fa { - display: inline-block; - font: normal normal normal 14px/1 FontAwesome; - font-size: inherit; - text-rendering: auto; - -webkit-font-smoothing: antialiased; - -moz-osx-font-smoothing: grayscale; -} -/* makes the font 33% larger relative to the icon container */ -.fa-lg { - font-size: 1.33333333em; - line-height: 0.75em; - vertical-align: -15%; -} -.fa-2x { - font-size: 2em; -} -.fa-3x { - font-size: 3em; -} -.fa-4x { - font-size: 4em; -} -.fa-5x { - font-size: 5em; -} -.fa-fw { - width: 1.28571429em; - text-align: center; -} -.fa-ul { - padding-left: 0; - margin-left: 2.14285714em; - list-style-type: none; -} -.fa-ul > li { - position: relative; -} -.fa-li { - position: absolute; - left: -2.14285714em; - width: 2.14285714em; - top: 0.14285714em; - text-align: center; -} -.fa-li.fa-lg { - left: -1.85714286em; -} -.fa-border { - padding: .2em .25em .15em; - border: solid 0.08em #eeeeee; - border-radius: .1em; -} -.fa-pull-left { - float: left; -} -.fa-pull-right { - float: right; -} -.fa.fa-pull-left { - margin-right: .3em; -} -.fa.fa-pull-right { - margin-left: .3em; -} -/* Deprecated as of 4.4.0 */ -.pull-right { - float: right; -} -.pull-left { - float: left; -} -.fa.pull-left { - margin-right: .3em; -} -.fa.pull-right { - margin-left: .3em; -} -.fa-spin { - -webkit-animation: fa-spin 2s infinite linear; - animation: fa-spin 2s infinite linear; -} -.fa-pulse { - -webkit-animation: fa-spin 1s infinite steps(8); - animation: fa-spin 1s infinite steps(8); -} -@-webkit-keyframes fa-spin { - 0% { - -webkit-transform: rotate(0deg); - transform: rotate(0deg); - } - 100% { - -webkit-transform: rotate(359deg); - transform: rotate(359deg); - } -} -@keyframes fa-spin { - 0% { - -webkit-transform: rotate(0deg); - transform: rotate(0deg); - } - 100% { - -webkit-transform: rotate(359deg); - transform: rotate(359deg); - } -} -.fa-rotate-90 { - -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=1)"; - -webkit-transform: rotate(90deg); - -ms-transform: rotate(90deg); - transform: rotate(90deg); -} -.fa-rotate-180 { - -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=2)"; - -webkit-transform: rotate(180deg); - -ms-transform: rotate(180deg); - transform: rotate(180deg); -} -.fa-rotate-270 { - -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=3)"; - -webkit-transform: rotate(270deg); - -ms-transform: rotate(270deg); - transform: rotate(270deg); -} -.fa-flip-horizontal { - -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1)"; - -webkit-transform: scale(-1, 1); - -ms-transform: scale(-1, 1); - transform: scale(-1, 1); -} -.fa-flip-vertical { - -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)"; - -webkit-transform: scale(1, -1); - -ms-transform: scale(1, -1); - transform: scale(1, -1); -} -:root .fa-rotate-90, -:root .fa-rotate-180, -:root .fa-rotate-270, -:root .fa-flip-horizontal, -:root .fa-flip-vertical { - filter: none; -} -.fa-stack { - position: relative; - display: inline-block; - width: 2em; - height: 2em; - line-height: 2em; - vertical-align: middle; -} -.fa-stack-1x, -.fa-stack-2x { - position: absolute; - left: 0; - width: 100%; - text-align: center; -} -.fa-stack-1x { - line-height: inherit; -} -.fa-stack-2x { - font-size: 2em; -} -.fa-inverse { - color: #ffffff; -} -/* Font Awesome uses the Unicode Private Use Area (PUA) to ensure screen - readers do not read off random characters that represent icons */ -.fa-glass:before { - content: "\f000"; -} -.fa-music:before { - content: "\f001"; -} -.fa-search:before { - content: "\f002"; -} -.fa-envelope-o:before { - content: "\f003"; -} -.fa-heart:before { - content: "\f004"; -} -.fa-star:before { - content: "\f005"; -} -.fa-star-o:before { - content: "\f006"; -} -.fa-user:before { - content: "\f007"; -} -.fa-film:before { - content: "\f008"; -} -.fa-th-large:before { - content: "\f009"; -} -.fa-th:before { - content: "\f00a"; -} -.fa-th-list:before { - content: "\f00b"; -} -.fa-check:before { - content: "\f00c"; -} -.fa-remove:before, -.fa-close:before, -.fa-times:before { - content: "\f00d"; -} -.fa-search-plus:before { - content: "\f00e"; -} -.fa-search-minus:before { - content: "\f010"; -} -.fa-power-off:before { - content: "\f011"; -} -.fa-signal:before { - content: "\f012"; -} -.fa-gear:before, -.fa-cog:before { - content: "\f013"; -} -.fa-trash-o:before { - content: "\f014"; -} -.fa-home:before { - content: "\f015"; -} -.fa-file-o:before { - content: "\f016"; -} -.fa-clock-o:before { - content: "\f017"; -} -.fa-road:before { - content: "\f018"; -} -.fa-download:before { - content: "\f019"; -} -.fa-arrow-circle-o-down:before { - content: "\f01a"; -} -.fa-arrow-circle-o-up:before { - content: "\f01b"; -} -.fa-inbox:before { - content: "\f01c"; -} -.fa-play-circle-o:before { - content: "\f01d"; -} -.fa-rotate-right:before, -.fa-repeat:before { - content: "\f01e"; -} -.fa-refresh:before { - content: "\f021"; -} -.fa-list-alt:before { - content: "\f022"; -} -.fa-lock:before { - content: "\f023"; -} -.fa-flag:before { - content: "\f024"; -} -.fa-headphones:before { - content: "\f025"; -} -.fa-volume-off:before { - content: "\f026"; -} -.fa-volume-down:before { - content: "\f027"; -} -.fa-volume-up:before { - content: "\f028"; -} -.fa-qrcode:before { - content: "\f029"; -} -.fa-barcode:before { - content: "\f02a"; -} -.fa-tag:before { - content: "\f02b"; -} -.fa-tags:before { - content: "\f02c"; -} -.fa-book:before { - content: "\f02d"; -} -.fa-bookmark:before { - content: "\f02e"; -} -.fa-print:before { - content: "\f02f"; -} -.fa-camera:before { - content: "\f030"; -} -.fa-font:before { - content: "\f031"; -} -.fa-bold:before { - content: "\f032"; -} -.fa-italic:before { - content: "\f033"; -} -.fa-text-height:before { - content: "\f034"; -} -.fa-text-width:before { - content: "\f035"; -} -.fa-align-left:before { - content: "\f036"; -} -.fa-align-center:before { - content: "\f037"; -} -.fa-align-right:before { - content: "\f038"; -} -.fa-align-justify:before { - content: "\f039"; -} -.fa-list:before { - content: "\f03a"; -} -.fa-dedent:before, -.fa-outdent:before { - content: "\f03b"; -} -.fa-indent:before { - content: "\f03c"; -} -.fa-video-camera:before { - content: "\f03d"; -} -.fa-photo:before, -.fa-image:before, -.fa-picture-o:before { - content: "\f03e"; -} -.fa-pencil:before { - content: "\f040"; -} -.fa-map-marker:before { - content: "\f041"; -} -.fa-adjust:before { - content: "\f042"; -} -.fa-tint:before { - content: "\f043"; -} -.fa-edit:before, -.fa-pencil-square-o:before { - content: "\f044"; -} -.fa-share-square-o:before { - content: "\f045"; -} -.fa-check-square-o:before { - content: "\f046"; -} -.fa-arrows:before { - content: "\f047"; -} -.fa-step-backward:before { - content: "\f048"; -} -.fa-fast-backward:before { - content: "\f049"; -} -.fa-backward:before { - content: "\f04a"; -} -.fa-play:before { - content: "\f04b"; -} -.fa-pause:before { - content: "\f04c"; -} -.fa-stop:before { - content: "\f04d"; -} -.fa-forward:before { - content: "\f04e"; -} -.fa-fast-forward:before { - content: "\f050"; -} -.fa-step-forward:before { - content: "\f051"; -} -.fa-eject:before { - content: "\f052"; -} -.fa-chevron-left:before { - content: "\f053"; -} -.fa-chevron-right:before { - content: "\f054"; -} -.fa-plus-circle:before { - content: "\f055"; -} -.fa-minus-circle:before { - content: "\f056"; -} -.fa-times-circle:before { - content: "\f057"; -} -.fa-check-circle:before { - content: "\f058"; -} -.fa-question-circle:before { - content: "\f059"; -} -.fa-info-circle:before { - content: "\f05a"; -} -.fa-crosshairs:before { - content: "\f05b"; -} -.fa-times-circle-o:before { - content: "\f05c"; -} -.fa-check-circle-o:before { - content: "\f05d"; -} -.fa-ban:before { - content: "\f05e"; -} -.fa-arrow-left:before { - content: "\f060"; -} -.fa-arrow-right:before { - content: "\f061"; -} -.fa-arrow-up:before { - content: "\f062"; -} -.fa-arrow-down:before { - content: "\f063"; -} -.fa-mail-forward:before, -.fa-share:before { - content: "\f064"; -} -.fa-expand:before { - content: "\f065"; -} -.fa-compress:before { - content: "\f066"; -} -.fa-plus:before { - content: "\f067"; -} -.fa-minus:before { - content: "\f068"; -} -.fa-asterisk:before { - content: "\f069"; -} -.fa-exclamation-circle:before { - content: "\f06a"; -} -.fa-gift:before { - content: "\f06b"; -} -.fa-leaf:before { - content: "\f06c"; -} -.fa-fire:before { - content: "\f06d"; -} -.fa-eye:before { - content: "\f06e"; -} -.fa-eye-slash:before { - content: "\f070"; -} -.fa-warning:before, -.fa-exclamation-triangle:before { - content: "\f071"; -} -.fa-plane:before { - content: "\f072"; -} -.fa-calendar:before { - content: "\f073"; -} -.fa-random:before { - content: "\f074"; -} -.fa-comment:before { - content: "\f075"; -} -.fa-magnet:before { - content: "\f076"; -} -.fa-chevron-up:before { - content: "\f077"; -} -.fa-chevron-down:before { - content: "\f078"; -} -.fa-retweet:before { - content: "\f079"; -} -.fa-shopping-cart:before { - content: "\f07a"; -} -.fa-folder:before { - content: "\f07b"; -} -.fa-folder-open:before { - content: "\f07c"; -} -.fa-arrows-v:before { - content: "\f07d"; -} -.fa-arrows-h:before { - content: "\f07e"; -} -.fa-bar-chart-o:before, -.fa-bar-chart:before { - content: "\f080"; -} -.fa-twitter-square:before { - content: "\f081"; -} -.fa-facebook-square:before { - content: "\f082"; -} -.fa-camera-retro:before { - content: "\f083"; -} -.fa-key:before { - content: "\f084"; -} -.fa-gears:before, -.fa-cogs:before { - content: "\f085"; -} -.fa-comments:before { - content: "\f086"; -} -.fa-thumbs-o-up:before { - content: "\f087"; -} -.fa-thumbs-o-down:before { - content: "\f088"; -} -.fa-star-half:before { - content: "\f089"; -} -.fa-heart-o:before { - content: "\f08a"; -} -.fa-sign-out:before { - content: "\f08b"; -} -.fa-linkedin-square:before { - content: "\f08c"; -} -.fa-thumb-tack:before { - content: "\f08d"; -} -.fa-external-link:before { - content: "\f08e"; -} -.fa-sign-in:before { - content: "\f090"; -} -.fa-trophy:before { - content: "\f091"; -} -.fa-github-square:before { - content: "\f092"; -} -.fa-upload:before { - content: "\f093"; -} -.fa-lemon-o:before { - content: "\f094"; -} -.fa-phone:before { - content: "\f095"; -} -.fa-square-o:before { - content: "\f096"; -} -.fa-bookmark-o:before { - content: "\f097"; -} -.fa-phone-square:before { - content: "\f098"; -} -.fa-twitter:before { - content: "\f099"; -} -.fa-facebook-f:before, -.fa-facebook:before { - content: "\f09a"; -} -.fa-github:before { - content: "\f09b"; -} -.fa-unlock:before { - content: "\f09c"; -} -.fa-credit-card:before { - content: "\f09d"; -} -.fa-feed:before, -.fa-rss:before { - content: "\f09e"; -} -.fa-hdd-o:before { - content: "\f0a0"; -} -.fa-bullhorn:before { - content: "\f0a1"; -} -.fa-bell:before { - content: "\f0f3"; -} -.fa-certificate:before { - content: "\f0a3"; -} -.fa-hand-o-right:before { - content: "\f0a4"; -} -.fa-hand-o-left:before { - content: "\f0a5"; -} -.fa-hand-o-up:before { - content: "\f0a6"; -} -.fa-hand-o-down:before { - content: "\f0a7"; -} -.fa-arrow-circle-left:before { - content: "\f0a8"; -} -.fa-arrow-circle-right:before { - content: "\f0a9"; -} -.fa-arrow-circle-up:before { - content: "\f0aa"; -} -.fa-arrow-circle-down:before { - content: "\f0ab"; -} -.fa-globe:before { - content: "\f0ac"; -} -.fa-wrench:before { - content: "\f0ad"; -} -.fa-tasks:before { - content: "\f0ae"; -} -.fa-filter:before { - content: "\f0b0"; -} -.fa-briefcase:before { - content: "\f0b1"; -} -.fa-arrows-alt:before { - content: "\f0b2"; -} -.fa-group:before, -.fa-users:before { - content: "\f0c0"; -} -.fa-chain:before, -.fa-link:before { - content: "\f0c1"; -} -.fa-cloud:before { - content: "\f0c2"; -} -.fa-flask:before { - content: "\f0c3"; -} -.fa-cut:before, -.fa-scissors:before { - content: "\f0c4"; -} -.fa-copy:before, -.fa-files-o:before { - content: "\f0c5"; -} -.fa-paperclip:before { - content: "\f0c6"; -} -.fa-save:before, -.fa-floppy-o:before { - content: "\f0c7"; -} -.fa-square:before { - content: "\f0c8"; -} -.fa-navicon:before, -.fa-reorder:before, -.fa-bars:before { - content: "\f0c9"; -} -.fa-list-ul:before { - content: "\f0ca"; -} -.fa-list-ol:before { - content: "\f0cb"; -} -.fa-strikethrough:before { - content: "\f0cc"; -} -.fa-underline:before { - content: "\f0cd"; -} -.fa-table:before { - content: "\f0ce"; -} -.fa-magic:before { - content: "\f0d0"; -} -.fa-truck:before { - content: "\f0d1"; -} -.fa-pinterest:before { - content: "\f0d2"; -} -.fa-pinterest-square:before { - content: "\f0d3"; -} -.fa-google-plus-square:before { - content: "\f0d4"; -} -.fa-google-plus:before { - content: "\f0d5"; -} -.fa-money:before { - content: "\f0d6"; -} -.fa-caret-down:before { - content: "\f0d7"; -} -.fa-caret-up:before { - content: "\f0d8"; -} -.fa-caret-left:before { - content: "\f0d9"; -} -.fa-caret-right:before { - content: "\f0da"; -} -.fa-columns:before { - content: "\f0db"; -} -.fa-unsorted:before, -.fa-sort:before { - content: "\f0dc"; -} -.fa-sort-down:before, -.fa-sort-desc:before { - content: "\f0dd"; -} -.fa-sort-up:before, -.fa-sort-asc:before { - content: "\f0de"; -} -.fa-envelope:before { - content: "\f0e0"; -} -.fa-linkedin:before { - content: "\f0e1"; -} -.fa-rotate-left:before, -.fa-undo:before { - content: "\f0e2"; -} -.fa-legal:before, -.fa-gavel:before { - content: "\f0e3"; -} -.fa-dashboard:before, -.fa-tachometer:before { - content: "\f0e4"; -} -.fa-comment-o:before { - content: "\f0e5"; -} -.fa-comments-o:before { - content: "\f0e6"; -} -.fa-flash:before, -.fa-bolt:before { - content: "\f0e7"; -} -.fa-sitemap:before { - content: "\f0e8"; -} -.fa-umbrella:before { - content: "\f0e9"; -} -.fa-paste:before, -.fa-clipboard:before { - content: "\f0ea"; -} -.fa-lightbulb-o:before { - content: "\f0eb"; -} -.fa-exchange:before { - content: "\f0ec"; -} -.fa-cloud-download:before { - content: "\f0ed"; -} -.fa-cloud-upload:before { - content: "\f0ee"; -} -.fa-user-md:before { - content: "\f0f0"; -} -.fa-stethoscope:before { - content: "\f0f1"; -} -.fa-suitcase:before { - content: "\f0f2"; -} -.fa-bell-o:before { - content: "\f0a2"; -} -.fa-coffee:before { - content: "\f0f4"; -} -.fa-cutlery:before { - content: "\f0f5"; -} -.fa-file-text-o:before { - content: "\f0f6"; -} -.fa-building-o:before { - content: "\f0f7"; -} -.fa-hospital-o:before { - content: "\f0f8"; -} -.fa-ambulance:before { - content: "\f0f9"; -} -.fa-medkit:before { - content: "\f0fa"; -} -.fa-fighter-jet:before { - content: "\f0fb"; -} -.fa-beer:before { - content: "\f0fc"; -} -.fa-h-square:before { - content: "\f0fd"; -} -.fa-plus-square:before { - content: "\f0fe"; -} -.fa-angle-double-left:before { - content: "\f100"; -} -.fa-angle-double-right:before { - content: "\f101"; -} -.fa-angle-double-up:before { - content: "\f102"; -} -.fa-angle-double-down:before { - content: "\f103"; -} -.fa-angle-left:before { - content: "\f104"; -} -.fa-angle-right:before { - content: "\f105"; -} -.fa-angle-up:before { - content: "\f106"; -} -.fa-angle-down:before { - content: "\f107"; -} -.fa-desktop:before { - content: "\f108"; -} -.fa-laptop:before { - content: "\f109"; -} -.fa-tablet:before { - content: "\f10a"; -} -.fa-mobile-phone:before, -.fa-mobile:before { - content: "\f10b"; -} -.fa-circle-o:before { - content: "\f10c"; -} -.fa-quote-left:before { - content: "\f10d"; -} -.fa-quote-right:before { - content: "\f10e"; -} -.fa-spinner:before { - content: "\f110"; -} -.fa-circle:before { - content: "\f111"; -} -.fa-mail-reply:before, -.fa-reply:before { - content: "\f112"; -} -.fa-github-alt:before { - content: "\f113"; -} -.fa-folder-o:before { - content: "\f114"; -} -.fa-folder-open-o:before { - content: "\f115"; -} -.fa-smile-o:before { - content: "\f118"; -} -.fa-frown-o:before { - content: "\f119"; -} -.fa-meh-o:before { - content: "\f11a"; -} -.fa-gamepad:before { - content: "\f11b"; -} -.fa-keyboard-o:before { - content: "\f11c"; -} -.fa-flag-o:before { - content: "\f11d"; -} -.fa-flag-checkered:before { - content: "\f11e"; -} -.fa-terminal:before { - content: "\f120"; -} -.fa-code:before { - content: "\f121"; -} -.fa-mail-reply-all:before, -.fa-reply-all:before { - content: "\f122"; -} -.fa-star-half-empty:before, -.fa-star-half-full:before, -.fa-star-half-o:before { - content: "\f123"; -} -.fa-location-arrow:before { - content: "\f124"; -} -.fa-crop:before { - content: "\f125"; -} -.fa-code-fork:before { - content: "\f126"; -} -.fa-unlink:before, -.fa-chain-broken:before { - content: "\f127"; -} -.fa-question:before { - content: "\f128"; -} -.fa-info:before { - content: "\f129"; -} -.fa-exclamation:before { - content: "\f12a"; -} -.fa-superscript:before { - content: "\f12b"; -} -.fa-subscript:before { - content: "\f12c"; -} -.fa-eraser:before { - content: "\f12d"; -} -.fa-puzzle-piece:before { - content: "\f12e"; -} -.fa-microphone:before { - content: "\f130"; -} -.fa-microphone-slash:before { - content: "\f131"; -} -.fa-shield:before { - content: "\f132"; -} -.fa-calendar-o:before { - content: "\f133"; -} -.fa-fire-extinguisher:before { - content: "\f134"; -} -.fa-rocket:before { - content: "\f135"; -} -.fa-maxcdn:before { - content: "\f136"; -} -.fa-chevron-circle-left:before { - content: "\f137"; -} -.fa-chevron-circle-right:before { - content: "\f138"; -} -.fa-chevron-circle-up:before { - content: "\f139"; -} -.fa-chevron-circle-down:before { - content: "\f13a"; -} -.fa-html5:before { - content: "\f13b"; -} -.fa-css3:before { - content: "\f13c"; -} -.fa-anchor:before { - content: "\f13d"; -} -.fa-unlock-alt:before { - content: "\f13e"; -} -.fa-bullseye:before { - content: "\f140"; -} -.fa-ellipsis-h:before { - content: "\f141"; -} -.fa-ellipsis-v:before { - content: "\f142"; -} -.fa-rss-square:before { - content: "\f143"; -} -.fa-play-circle:before { - content: "\f144"; -} -.fa-ticket:before { - content: "\f145"; -} -.fa-minus-square:before { - content: "\f146"; -} -.fa-minus-square-o:before { - content: "\f147"; -} -.fa-level-up:before { - content: "\f148"; -} -.fa-level-down:before { - content: "\f149"; -} -.fa-check-square:before { - content: "\f14a"; -} -.fa-pencil-square:before { - content: "\f14b"; -} -.fa-external-link-square:before { - content: "\f14c"; -} -.fa-share-square:before { - content: "\f14d"; -} -.fa-compass:before { - content: "\f14e"; -} -.fa-toggle-down:before, -.fa-caret-square-o-down:before { - content: "\f150"; -} -.fa-toggle-up:before, -.fa-caret-square-o-up:before { - content: "\f151"; -} -.fa-toggle-right:before, -.fa-caret-square-o-right:before { - content: "\f152"; -} -.fa-euro:before, -.fa-eur:before { - content: "\f153"; -} -.fa-gbp:before { - content: "\f154"; -} -.fa-dollar:before, -.fa-usd:before { - content: "\f155"; -} -.fa-rupee:before, -.fa-inr:before { - content: "\f156"; -} -.fa-cny:before, -.fa-rmb:before, -.fa-yen:before, -.fa-jpy:before { - content: "\f157"; -} -.fa-ruble:before, -.fa-rouble:before, -.fa-rub:before { - content: "\f158"; -} -.fa-won:before, -.fa-krw:before { - content: "\f159"; -} -.fa-bitcoin:before, -.fa-btc:before { - content: "\f15a"; -} -.fa-file:before { - content: "\f15b"; -} -.fa-file-text:before { - content: "\f15c"; -} -.fa-sort-alpha-asc:before { - content: "\f15d"; -} -.fa-sort-alpha-desc:before { - content: "\f15e"; -} -.fa-sort-amount-asc:before { - content: "\f160"; -} -.fa-sort-amount-desc:before { - content: "\f161"; -} -.fa-sort-numeric-asc:before { - content: "\f162"; -} -.fa-sort-numeric-desc:before { - content: "\f163"; -} -.fa-thumbs-up:before { - content: "\f164"; -} -.fa-thumbs-down:before { - content: "\f165"; -} -.fa-youtube-square:before { - content: "\f166"; -} -.fa-youtube:before { - content: "\f167"; -} -.fa-xing:before { - content: "\f168"; -} -.fa-xing-square:before { - content: "\f169"; -} -.fa-youtube-play:before { - content: "\f16a"; -} -.fa-dropbox:before { - content: "\f16b"; -} -.fa-stack-overflow:before { - content: "\f16c"; -} -.fa-instagram:before { - content: "\f16d"; -} -.fa-flickr:before { - content: "\f16e"; -} -.fa-adn:before { - content: "\f170"; -} -.fa-bitbucket:before { - content: "\f171"; -} -.fa-bitbucket-square:before { - content: "\f172"; -} -.fa-tumblr:before { - content: "\f173"; -} -.fa-tumblr-square:before { - content: "\f174"; -} -.fa-long-arrow-down:before { - content: "\f175"; -} -.fa-long-arrow-up:before { - content: "\f176"; -} -.fa-long-arrow-left:before { - content: "\f177"; -} -.fa-long-arrow-right:before { - content: "\f178"; -} -.fa-apple:before { - content: "\f179"; -} -.fa-windows:before { - content: "\f17a"; -} -.fa-android:before { - content: "\f17b"; -} -.fa-linux:before { - content: "\f17c"; -} -.fa-dribbble:before { - content: "\f17d"; -} -.fa-skype:before { - content: "\f17e"; -} -.fa-foursquare:before { - content: "\f180"; -} -.fa-trello:before { - content: "\f181"; -} -.fa-female:before { - content: "\f182"; -} -.fa-male:before { - content: "\f183"; -} -.fa-gittip:before, -.fa-gratipay:before { - content: "\f184"; -} -.fa-sun-o:before { - content: "\f185"; -} -.fa-moon-o:before { - content: "\f186"; -} -.fa-archive:before { - content: "\f187"; -} -.fa-bug:before { - content: "\f188"; -} -.fa-vk:before { - content: "\f189"; -} -.fa-weibo:before { - content: "\f18a"; -} -.fa-renren:before { - content: "\f18b"; -} -.fa-pagelines:before { - content: "\f18c"; -} -.fa-stack-exchange:before { - content: "\f18d"; -} -.fa-arrow-circle-o-right:before { - content: "\f18e"; -} -.fa-arrow-circle-o-left:before { - content: "\f190"; -} -.fa-toggle-left:before, -.fa-caret-square-o-left:before { - content: "\f191"; -} -.fa-dot-circle-o:before { - content: "\f192"; -} -.fa-wheelchair:before { - content: "\f193"; -} -.fa-vimeo-square:before { - content: "\f194"; -} -.fa-turkish-lira:before, -.fa-try:before { - content: "\f195"; -} -.fa-plus-square-o:before { - content: "\f196"; -} -.fa-space-shuttle:before { - content: "\f197"; -} -.fa-slack:before { - content: "\f198"; -} -.fa-envelope-square:before { - content: "\f199"; -} -.fa-wordpress:before { - content: "\f19a"; -} -.fa-openid:before { - content: "\f19b"; -} -.fa-institution:before, -.fa-bank:before, -.fa-university:before { - content: "\f19c"; -} -.fa-mortar-board:before, -.fa-graduation-cap:before { - content: "\f19d"; -} -.fa-yahoo:before { - content: "\f19e"; -} -.fa-google:before { - content: "\f1a0"; -} -.fa-reddit:before { - content: "\f1a1"; -} -.fa-reddit-square:before { - content: "\f1a2"; -} -.fa-stumbleupon-circle:before { - content: "\f1a3"; -} -.fa-stumbleupon:before { - content: "\f1a4"; -} -.fa-delicious:before { - content: "\f1a5"; -} -.fa-digg:before { - content: "\f1a6"; -} -.fa-pied-piper-pp:before { - content: "\f1a7"; -} -.fa-pied-piper-alt:before { - content: "\f1a8"; -} -.fa-drupal:before { - content: "\f1a9"; -} -.fa-joomla:before { - content: "\f1aa"; -} -.fa-language:before { - content: "\f1ab"; -} -.fa-fax:before { - content: "\f1ac"; -} -.fa-building:before { - content: "\f1ad"; -} -.fa-child:before { - content: "\f1ae"; -} -.fa-paw:before { - content: "\f1b0"; -} -.fa-spoon:before { - content: "\f1b1"; -} -.fa-cube:before { - content: "\f1b2"; -} -.fa-cubes:before { - content: "\f1b3"; -} -.fa-behance:before { - content: "\f1b4"; -} -.fa-behance-square:before { - content: "\f1b5"; -} -.fa-steam:before { - content: "\f1b6"; -} -.fa-steam-square:before { - content: "\f1b7"; -} -.fa-recycle:before { - content: "\f1b8"; -} -.fa-automobile:before, -.fa-car:before { - content: "\f1b9"; -} -.fa-cab:before, -.fa-taxi:before { - content: "\f1ba"; -} -.fa-tree:before { - content: "\f1bb"; -} -.fa-spotify:before { - content: "\f1bc"; -} -.fa-deviantart:before { - content: "\f1bd"; -} -.fa-soundcloud:before { - content: "\f1be"; -} -.fa-database:before { - content: "\f1c0"; -} -.fa-file-pdf-o:before { - content: "\f1c1"; -} -.fa-file-word-o:before { - content: "\f1c2"; -} -.fa-file-excel-o:before { - content: "\f1c3"; -} -.fa-file-powerpoint-o:before { - content: "\f1c4"; -} -.fa-file-photo-o:before, -.fa-file-picture-o:before, -.fa-file-image-o:before { - content: "\f1c5"; -} -.fa-file-zip-o:before, -.fa-file-archive-o:before { - content: "\f1c6"; -} -.fa-file-sound-o:before, -.fa-file-audio-o:before { - content: "\f1c7"; -} -.fa-file-movie-o:before, -.fa-file-video-o:before { - content: "\f1c8"; -} -.fa-file-code-o:before { - content: "\f1c9"; -} -.fa-vine:before { - content: "\f1ca"; -} -.fa-codepen:before { - content: "\f1cb"; -} -.fa-jsfiddle:before { - content: "\f1cc"; -} -.fa-life-bouy:before, -.fa-life-buoy:before, -.fa-life-saver:before, -.fa-support:before, -.fa-life-ring:before { - content: "\f1cd"; -} -.fa-circle-o-notch:before { - content: "\f1ce"; -} -.fa-ra:before, -.fa-resistance:before, -.fa-rebel:before { - content: "\f1d0"; -} -.fa-ge:before, -.fa-empire:before { - content: "\f1d1"; -} -.fa-git-square:before { - content: "\f1d2"; -} -.fa-git:before { - content: "\f1d3"; -} -.fa-y-combinator-square:before, -.fa-yc-square:before, -.fa-hacker-news:before { - content: "\f1d4"; -} -.fa-tencent-weibo:before { - content: "\f1d5"; -} -.fa-qq:before { - content: "\f1d6"; -} -.fa-wechat:before, -.fa-weixin:before { - content: "\f1d7"; -} -.fa-send:before, -.fa-paper-plane:before { - content: "\f1d8"; -} -.fa-send-o:before, -.fa-paper-plane-o:before { - content: "\f1d9"; -} -.fa-history:before { - content: "\f1da"; -} -.fa-circle-thin:before { - content: "\f1db"; -} -.fa-header:before { - content: "\f1dc"; -} -.fa-paragraph:before { - content: "\f1dd"; -} -.fa-sliders:before { - content: "\f1de"; -} -.fa-share-alt:before { - content: "\f1e0"; -} -.fa-share-alt-square:before { - content: "\f1e1"; -} -.fa-bomb:before { - content: "\f1e2"; -} -.fa-soccer-ball-o:before, -.fa-futbol-o:before { - content: "\f1e3"; -} -.fa-tty:before { - content: "\f1e4"; -} -.fa-binoculars:before { - content: "\f1e5"; -} -.fa-plug:before { - content: "\f1e6"; -} -.fa-slideshare:before { - content: "\f1e7"; -} -.fa-twitch:before { - content: "\f1e8"; -} -.fa-yelp:before { - content: "\f1e9"; -} -.fa-newspaper-o:before { - content: "\f1ea"; -} -.fa-wifi:before { - content: "\f1eb"; -} -.fa-calculator:before { - content: "\f1ec"; -} -.fa-paypal:before { - content: "\f1ed"; -} -.fa-google-wallet:before { - content: "\f1ee"; -} -.fa-cc-visa:before { - content: "\f1f0"; -} -.fa-cc-mastercard:before { - content: "\f1f1"; -} -.fa-cc-discover:before { - content: "\f1f2"; -} -.fa-cc-amex:before { - content: "\f1f3"; -} -.fa-cc-paypal:before { - content: "\f1f4"; -} -.fa-cc-stripe:before { - content: "\f1f5"; -} -.fa-bell-slash:before { - content: "\f1f6"; -} -.fa-bell-slash-o:before { - content: "\f1f7"; -} -.fa-trash:before { - content: "\f1f8"; -} -.fa-copyright:before { - content: "\f1f9"; -} -.fa-at:before { - content: "\f1fa"; -} -.fa-eyedropper:before { - content: "\f1fb"; -} -.fa-paint-brush:before { - content: "\f1fc"; -} -.fa-birthday-cake:before { - content: "\f1fd"; -} -.fa-area-chart:before { - content: "\f1fe"; -} -.fa-pie-chart:before { - content: "\f200"; -} -.fa-line-chart:before { - content: "\f201"; -} -.fa-lastfm:before { - content: "\f202"; -} -.fa-lastfm-square:before { - content: "\f203"; -} -.fa-toggle-off:before { - content: "\f204"; -} -.fa-toggle-on:before { - content: "\f205"; -} -.fa-bicycle:before { - content: "\f206"; -} -.fa-bus:before { - content: "\f207"; -} -.fa-ioxhost:before { - content: "\f208"; -} -.fa-angellist:before { - content: "\f209"; -} -.fa-cc:before { - content: "\f20a"; -} -.fa-shekel:before, -.fa-sheqel:before, -.fa-ils:before { - content: "\f20b"; -} -.fa-meanpath:before { - content: "\f20c"; -} -.fa-buysellads:before { - content: "\f20d"; -} -.fa-connectdevelop:before { - content: "\f20e"; -} -.fa-dashcube:before { - content: "\f210"; -} -.fa-forumbee:before { - content: "\f211"; -} -.fa-leanpub:before { - content: "\f212"; -} -.fa-sellsy:before { - content: "\f213"; -} -.fa-shirtsinbulk:before { - content: "\f214"; -} -.fa-simplybuilt:before { - content: "\f215"; -} -.fa-skyatlas:before { - content: "\f216"; -} -.fa-cart-plus:before { - content: "\f217"; -} -.fa-cart-arrow-down:before { - content: "\f218"; -} -.fa-diamond:before { - content: "\f219"; -} -.fa-ship:before { - content: "\f21a"; -} -.fa-user-secret:before { - content: "\f21b"; -} -.fa-motorcycle:before { - content: "\f21c"; -} -.fa-street-view:before { - content: "\f21d"; -} -.fa-heartbeat:before { - content: "\f21e"; -} -.fa-venus:before { - content: "\f221"; -} -.fa-mars:before { - content: "\f222"; -} -.fa-mercury:before { - content: "\f223"; -} -.fa-intersex:before, -.fa-transgender:before { - content: "\f224"; -} -.fa-transgender-alt:before { - content: "\f225"; -} -.fa-venus-double:before { - content: "\f226"; -} -.fa-mars-double:before { - content: "\f227"; -} -.fa-venus-mars:before { - content: "\f228"; -} -.fa-mars-stroke:before { - content: "\f229"; -} -.fa-mars-stroke-v:before { - content: "\f22a"; -} -.fa-mars-stroke-h:before { - content: "\f22b"; -} -.fa-neuter:before { - content: "\f22c"; -} -.fa-genderless:before { - content: "\f22d"; -} -.fa-facebook-official:before { - content: "\f230"; -} -.fa-pinterest-p:before { - content: "\f231"; -} -.fa-whatsapp:before { - content: "\f232"; -} -.fa-server:before { - content: "\f233"; -} -.fa-user-plus:before { - content: "\f234"; -} -.fa-user-times:before { - content: "\f235"; -} -.fa-hotel:before, -.fa-bed:before { - content: "\f236"; -} -.fa-viacoin:before { - content: "\f237"; -} -.fa-train:before { - content: "\f238"; -} -.fa-subway:before { - content: "\f239"; -} -.fa-medium:before { - content: "\f23a"; -} -.fa-yc:before, -.fa-y-combinator:before { - content: "\f23b"; -} -.fa-optin-monster:before { - content: "\f23c"; -} -.fa-opencart:before { - content: "\f23d"; -} -.fa-expeditedssl:before { - content: "\f23e"; -} -.fa-battery-4:before, -.fa-battery:before, -.fa-battery-full:before { - content: "\f240"; -} -.fa-battery-3:before, -.fa-battery-three-quarters:before { - content: "\f241"; -} -.fa-battery-2:before, -.fa-battery-half:before { - content: "\f242"; -} -.fa-battery-1:before, -.fa-battery-quarter:before { - content: "\f243"; -} -.fa-battery-0:before, -.fa-battery-empty:before { - content: "\f244"; -} -.fa-mouse-pointer:before { - content: "\f245"; -} -.fa-i-cursor:before { - content: "\f246"; -} -.fa-object-group:before { - content: "\f247"; -} -.fa-object-ungroup:before { - content: "\f248"; -} -.fa-sticky-note:before { - content: "\f249"; -} -.fa-sticky-note-o:before { - content: "\f24a"; -} -.fa-cc-jcb:before { - content: "\f24b"; -} -.fa-cc-diners-club:before { - content: "\f24c"; -} -.fa-clone:before { - content: "\f24d"; -} -.fa-balance-scale:before { - content: "\f24e"; -} -.fa-hourglass-o:before { - content: "\f250"; -} -.fa-hourglass-1:before, -.fa-hourglass-start:before { - content: "\f251"; -} -.fa-hourglass-2:before, -.fa-hourglass-half:before { - content: "\f252"; -} -.fa-hourglass-3:before, -.fa-hourglass-end:before { - content: "\f253"; -} -.fa-hourglass:before { - content: "\f254"; -} -.fa-hand-grab-o:before, -.fa-hand-rock-o:before { - content: "\f255"; -} -.fa-hand-stop-o:before, -.fa-hand-paper-o:before { - content: "\f256"; -} -.fa-hand-scissors-o:before { - content: "\f257"; -} -.fa-hand-lizard-o:before { - content: "\f258"; -} -.fa-hand-spock-o:before { - content: "\f259"; -} -.fa-hand-pointer-o:before { - content: "\f25a"; -} -.fa-hand-peace-o:before { - content: "\f25b"; -} -.fa-trademark:before { - content: "\f25c"; -} -.fa-registered:before { - content: "\f25d"; -} -.fa-creative-commons:before { - content: "\f25e"; -} -.fa-gg:before { - content: "\f260"; -} -.fa-gg-circle:before { - content: "\f261"; -} -.fa-tripadvisor:before { - content: "\f262"; -} -.fa-odnoklassniki:before { - content: "\f263"; -} -.fa-odnoklassniki-square:before { - content: "\f264"; -} -.fa-get-pocket:before { - content: "\f265"; -} -.fa-wikipedia-w:before { - content: "\f266"; -} -.fa-safari:before { - content: "\f267"; -} -.fa-chrome:before { - content: "\f268"; -} -.fa-firefox:before { - content: "\f269"; -} -.fa-opera:before { - content: "\f26a"; -} -.fa-internet-explorer:before { - content: "\f26b"; -} -.fa-tv:before, -.fa-television:before { - content: "\f26c"; -} -.fa-contao:before { - content: "\f26d"; -} -.fa-500px:before { - content: "\f26e"; -} -.fa-amazon:before { - content: "\f270"; -} -.fa-calendar-plus-o:before { - content: "\f271"; -} -.fa-calendar-minus-o:before { - content: "\f272"; -} -.fa-calendar-times-o:before { - content: "\f273"; -} -.fa-calendar-check-o:before { - content: "\f274"; -} -.fa-industry:before { - content: "\f275"; -} -.fa-map-pin:before { - content: "\f276"; -} -.fa-map-signs:before { - content: "\f277"; -} -.fa-map-o:before { - content: "\f278"; -} -.fa-map:before { - content: "\f279"; -} -.fa-commenting:before { - content: "\f27a"; -} -.fa-commenting-o:before { - content: "\f27b"; -} -.fa-houzz:before { - content: "\f27c"; -} -.fa-vimeo:before { - content: "\f27d"; -} -.fa-black-tie:before { - content: "\f27e"; -} -.fa-fonticons:before { - content: "\f280"; -} -.fa-reddit-alien:before { - content: "\f281"; -} -.fa-edge:before { - content: "\f282"; -} -.fa-credit-card-alt:before { - content: "\f283"; -} -.fa-codiepie:before { - content: "\f284"; -} -.fa-modx:before { - content: "\f285"; -} -.fa-fort-awesome:before { - content: "\f286"; -} -.fa-usb:before { - content: "\f287"; -} -.fa-product-hunt:before { - content: "\f288"; -} -.fa-mixcloud:before { - content: "\f289"; -} -.fa-scribd:before { - content: "\f28a"; -} -.fa-pause-circle:before { - content: "\f28b"; -} -.fa-pause-circle-o:before { - content: "\f28c"; -} -.fa-stop-circle:before { - content: "\f28d"; -} -.fa-stop-circle-o:before { - content: "\f28e"; -} -.fa-shopping-bag:before { - content: "\f290"; -} -.fa-shopping-basket:before { - content: "\f291"; -} -.fa-hashtag:before { - content: "\f292"; -} -.fa-bluetooth:before { - content: "\f293"; -} -.fa-bluetooth-b:before { - content: "\f294"; -} -.fa-percent:before { - content: "\f295"; -} -.fa-gitlab:before { - content: "\f296"; -} -.fa-wpbeginner:before { - content: "\f297"; -} -.fa-wpforms:before { - content: "\f298"; -} -.fa-envira:before { - content: "\f299"; -} -.fa-universal-access:before { - content: "\f29a"; -} -.fa-wheelchair-alt:before { - content: "\f29b"; -} -.fa-question-circle-o:before { - content: "\f29c"; -} -.fa-blind:before { - content: "\f29d"; -} -.fa-audio-description:before { - content: "\f29e"; -} -.fa-volume-control-phone:before { - content: "\f2a0"; -} -.fa-braille:before { - content: "\f2a1"; -} -.fa-assistive-listening-systems:before { - content: "\f2a2"; -} -.fa-asl-interpreting:before, -.fa-american-sign-language-interpreting:before { - content: "\f2a3"; -} -.fa-deafness:before, -.fa-hard-of-hearing:before, -.fa-deaf:before { - content: "\f2a4"; -} -.fa-glide:before { - content: "\f2a5"; -} -.fa-glide-g:before { - content: "\f2a6"; -} -.fa-signing:before, -.fa-sign-language:before { - content: "\f2a7"; -} -.fa-low-vision:before { - content: "\f2a8"; -} -.fa-viadeo:before { - content: "\f2a9"; -} -.fa-viadeo-square:before { - content: "\f2aa"; -} -.fa-snapchat:before { - content: "\f2ab"; -} -.fa-snapchat-ghost:before { - content: "\f2ac"; -} -.fa-snapchat-square:before { - content: "\f2ad"; -} -.fa-pied-piper:before { - content: "\f2ae"; -} -.fa-first-order:before { - content: "\f2b0"; -} -.fa-yoast:before { - content: "\f2b1"; -} -.fa-themeisle:before { - content: "\f2b2"; -} -.fa-google-plus-circle:before, -.fa-google-plus-official:before { - content: "\f2b3"; -} -.fa-fa:before, -.fa-font-awesome:before { - content: "\f2b4"; -} -.fa-handshake-o:before { - content: "\f2b5"; -} -.fa-envelope-open:before { - content: "\f2b6"; -} -.fa-envelope-open-o:before { - content: "\f2b7"; -} -.fa-linode:before { - content: "\f2b8"; -} -.fa-address-book:before { - content: "\f2b9"; -} -.fa-address-book-o:before { - content: "\f2ba"; -} -.fa-vcard:before, -.fa-address-card:before { - content: "\f2bb"; -} -.fa-vcard-o:before, -.fa-address-card-o:before { - content: "\f2bc"; -} -.fa-user-circle:before { - content: "\f2bd"; -} -.fa-user-circle-o:before { - content: "\f2be"; -} -.fa-user-o:before { - content: "\f2c0"; -} -.fa-id-badge:before { - content: "\f2c1"; -} -.fa-drivers-license:before, -.fa-id-card:before { - content: "\f2c2"; -} -.fa-drivers-license-o:before, -.fa-id-card-o:before { - content: "\f2c3"; -} -.fa-quora:before { - content: "\f2c4"; -} -.fa-free-code-camp:before { - content: "\f2c5"; -} -.fa-telegram:before { - content: "\f2c6"; -} -.fa-thermometer-4:before, -.fa-thermometer:before, -.fa-thermometer-full:before { - content: "\f2c7"; -} -.fa-thermometer-3:before, -.fa-thermometer-three-quarters:before { - content: "\f2c8"; -} -.fa-thermometer-2:before, -.fa-thermometer-half:before { - content: "\f2c9"; -} -.fa-thermometer-1:before, -.fa-thermometer-quarter:before { - content: "\f2ca"; -} -.fa-thermometer-0:before, -.fa-thermometer-empty:before { - content: "\f2cb"; -} -.fa-shower:before { - content: "\f2cc"; -} -.fa-bathtub:before, -.fa-s15:before, -.fa-bath:before { - content: "\f2cd"; -} -.fa-podcast:before { - content: "\f2ce"; -} -.fa-window-maximize:before { - content: "\f2d0"; -} -.fa-window-minimize:before { - content: "\f2d1"; -} -.fa-window-restore:before { - content: "\f2d2"; -} -.fa-times-rectangle:before, -.fa-window-close:before { - content: "\f2d3"; -} -.fa-times-rectangle-o:before, -.fa-window-close-o:before { - content: "\f2d4"; -} -.fa-bandcamp:before { - content: "\f2d5"; -} -.fa-grav:before { - content: "\f2d6"; -} -.fa-etsy:before { - content: "\f2d7"; -} -.fa-imdb:before { - content: "\f2d8"; -} -.fa-ravelry:before { - content: "\f2d9"; -} -.fa-eercast:before { - content: "\f2da"; -} -.fa-microchip:before { - content: "\f2db"; -} -.fa-snowflake-o:before { - content: "\f2dc"; -} -.fa-superpowers:before { - content: "\f2dd"; -} -.fa-wpexplorer:before { - content: "\f2de"; -} -.fa-meetup:before { - content: "\f2e0"; -} -.sr-only { - position: absolute; - width: 1px; - height: 1px; - padding: 0; - margin: -1px; - overflow: hidden; - clip: rect(0, 0, 0, 0); - border: 0; -} -.sr-only-focusable:active, -.sr-only-focusable:focus { - position: static; - width: auto; - height: auto; - margin: 0; - overflow: visible; - clip: auto; -} diff --git a/admin/bower_components/font-awesome/css/font-awesome.css.map b/admin/bower_components/font-awesome/css/font-awesome.css.map deleted file mode 100644 index 60763a8..0000000 --- a/admin/bower_components/font-awesome/css/font-awesome.css.map +++ /dev/null @@ -1,7 +0,0 @@ -{ -"version": 3, -"mappings": ";;;;;;;AAGA,UAUC;EATC,WAAW,EAAE,aAAa;EAC1B,GAAG,EAAE,+CAAgE;EACrE,GAAG,EAAE,ySAAmG;EAKxG,WAAW,EAAE,MAAM;EACnB,UAAU,EAAE,MAAM;ACTpB,GAAmB;EACjB,OAAO,EAAE,YAAY;EACrB,IAAI,EAAE,uCAAwD;EAC9D,SAAS,EAAE,OAAO;EAClB,cAAc,EAAE,IAAI;EACpB,sBAAsB,EAAE,WAAW;EACnC,uBAAuB,EAAE,SAAS;EAClC,SAAS,EAAE,eAAe;;;ACN5B,MAAsB;EACpB,SAAS,EAAE,SAAS;EACpB,WAAW,EAAE,MAAS;EACtB,cAAc,EAAE,IAAI;;AAEtB,MAAsB;EAAE,SAAS,EAAE,GAAG;;AACtC,MAAsB;EAAE,SAAS,EAAE,GAAG;;AACtC,MAAsB;EAAE,SAAS,EAAE,GAAG;;AACtC,MAAsB;EAAE,SAAS,EAAE,GAAG;;ACVtC,MAAsB;EACpB,KAAK,EAAE,SAAW;EAClB,UAAU,EAAE,MAAM;;ACDpB,MAAsB;EACpB,YAAY,EAAE,CAAC;EACf,WAAW,ECKU,SAAS;EDJ9B,eAAe,EAAE,IAAI;EACrB,WAAK;IAAE,QAAQ,EAAE,QAAQ;;AAE3B,MAAsB;EACpB,QAAQ,EAAE,QAAQ;EAClB,IAAI,EAAE,UAAa;EACnB,KAAK,ECFgB,SAAS;EDG9B,GAAG,EAAE,SAAU;EACf,UAAU,EAAE,MAAM;EAClB,YAAuB;IACrB,IAAI,EAAE,UAA0B;;AEbpC,UAA0B;EACxB,OAAO,EAAE,gBAAgB;EACzB,MAAM,EAAE,iBAA4B;EACpC,aAAa,EAAE,IAAI;;AAGrB,WAAY;EAAE,KAAK,EAAE,KAAK;;AAC1B,UAAW;EAAE,KAAK,EAAE,IAAI;;AAGtB,aAAY;EAAE,YAAY,EAAE,IAAI;AAChC,cAAa;EAAE,WAAW,EAAE,IAAI;;ACXlC,QAAwB;EACtB,iBAAiB,EAAE,0BAA0B;EACrC,SAAS,EAAE,0BAA0B;;AAG/C,SAAyB;EACvB,iBAAiB,EAAE,4BAA4B;EACvC,SAAS,EAAE,4BAA4B;;AAGjD,0BASC;EARC,EAAG;IACD,iBAAiB,EAAE,YAAY;IACvB,SAAS,EAAE,YAAY;EAEjC,IAAK;IACH,iBAAiB,EAAE,cAAc;IACzB,SAAS,EAAE,cAAc;AAIrC,kBASC;EARC,EAAG;IACD,iBAAiB,EAAE,YAAY;IACvB,SAAS,EAAE,YAAY;EAEjC,IAAK;IACH,iBAAiB,EAAE,cAAc;IACzB,SAAS,EAAE,cAAc;AC5BrC,aAA8B;ECY5B,MAAM,EAAE,wDAAmE;EAC3E,iBAAiB,EAAE,aAAgB;EAC/B,aAAa,EAAE,aAAgB;EAC3B,SAAS,EAAE,aAAgB;;ADdrC,cAA8B;ECW5B,MAAM,EAAE,wDAAmE;EAC3E,iBAAiB,EAAE,cAAgB;EAC/B,aAAa,EAAE,cAAgB;EAC3B,SAAS,EAAE,cAAgB;;ADbrC,cAA8B;ECU5B,MAAM,EAAE,wDAAmE;EAC3E,iBAAiB,EAAE,cAAgB;EAC/B,aAAa,EAAE,cAAgB;EAC3B,SAAS,EAAE,cAAgB;;ADXrC,mBAAmC;ECejC,MAAM,EAAE,wDAAmE;EAC3E,iBAAiB,EAAE,YAAoB;EACnC,aAAa,EAAE,YAAoB;EAC/B,SAAS,EAAE,YAAoB;;ADjBzC,iBAAmC;ECcjC,MAAM,EAAE,wDAAmE;EAC3E,iBAAiB,EAAE,YAAoB;EACnC,aAAa,EAAE,YAAoB;EAC/B,SAAS,EAAE,YAAoB;;ADZzC;;;;uBAIuC;EACrC,MAAM,EAAE,IAAI;;AEfd,SAAyB;EACvB,QAAQ,EAAE,QAAQ;EAClB,OAAO,EAAE,YAAY;EACrB,KAAK,EAAE,GAAG;EACV,MAAM,EAAE,GAAG;EACX,WAAW,EAAE,GAAG;EAChB,cAAc,EAAE,MAAM;;AAExB,0BAAyD;EACvD,QAAQ,EAAE,QAAQ;EAClB,IAAI,EAAE,CAAC;EACP,KAAK,EAAE,IAAI;EACX,UAAU,EAAE,MAAM;;AAEpB,YAA4B;EAAE,WAAW,EAAE,OAAO;;AAClD,YAA4B;EAAE,SAAS,EAAE,GAAG;;AAC5C,WAA2B;EAAE,KAAK,ELVZ,IAAI;;;;AMN1B,gBAAgC;EAAE,OAAO,ENoQ1B,GAAO;;AMnQtB,gBAAgC;EAAE,OAAO,EN0W1B,GAAO;;AMzWtB,iBAAiC;EAAE,OAAO,ENmb1B,GAAO;;AMlbvB,qBAAqC;EAAE,OAAO,ENmL1B,GAAO;;AMlL3B,gBAAgC;EAAE,OAAO,ENkR1B,GAAO;;AMjRtB,eAA+B;EAAE,OAAO,ENke1B,GAAO;;AMjerB,iBAAiC;EAAE,OAAO,ENse1B,GAAO;;AMrevB,eAA+B;EAAE,OAAO,EN+iB1B,GAAO;;AM9iBrB,eAA+B;EAAE,OAAO,ENyN1B,GAAO;;AMxNrB,mBAAmC;EAAE,OAAO,ENggB1B,GAAO;;AM/fzB,aAA6B;EAAE,OAAO,EN8f1B,GAAO;;AM7fnB,kBAAkC;EAAE,OAAO,EN+f1B,GAAO;;AM9fxB,gBAAgC;EAAE,OAAO,ENoG1B,GAAO;;AMnGtB;;gBAEgC;EAAE,OAAO,ENkgB1B,GAAO;;AMjgBtB,sBAAsC;EAAE,OAAO,ENua1B,GAAO;;AMta5B,uBAAuC;EAAE,OAAO,ENqa1B,GAAO;;AMpa7B,oBAAoC;EAAE,OAAO,EN+X1B,GAAO;;AM9X1B,iBAAiC;EAAE,OAAO,ENsb1B,GAAO;;AMrbvB;cAC8B;EAAE,OAAO,ENwH1B,GAAO;;AMvHpB,kBAAkC;EAAE,OAAO,ENygB1B,GAAO;;AMxgBxB,eAA+B;EAAE,OAAO,ENmQ1B,GAAO;;AMlQrB,iBAAiC;EAAE,OAAO,EN6L1B,GAAO;;AM5LvB,kBAAkC;EAAE,OAAO,EN0G1B,GAAO;;AMzGxB,eAA+B;EAAE,OAAO,EN+Y1B,GAAO;;AM9YrB,mBAAmC;EAAE,OAAO,ENiJ1B,GAAO;;AMhJzB,8BAA8C;EAAE,OAAO,ENI1B,GAAO;;AMHpC,4BAA4C;EAAE,OAAO,ENM1B,GAAO;;AMLlC,gBAAgC;EAAE,OAAO,ENkQ1B,GAAO;;AMjQtB,wBAAwC;EAAE,OAAO,EN4W1B,GAAO;;AM3W9B;iBACiC;EAAE,OAAO,ENmY1B,GAAO;;AMlYvB,kBAAkC;EAAE,OAAO,EN8X1B,GAAO;;AM7XxB,mBAAmC;EAAE,OAAO,ENiS1B,GAAO;;AMhSzB,eAA+B;EAAE,OAAO,ENoS1B,GAAO;;AMnSrB,eAA+B;EAAE,OAAO,ENgM1B,GAAO;;AM/LrB,qBAAqC;EAAE,OAAO,EN+O1B,GAAO;;AM9O3B,qBAAqC;EAAE,OAAO,EN8hB1B,GAAO;;AM7hB3B,sBAAsC;EAAE,OAAO,EN4hB1B,GAAO;;AM3hB5B,oBAAoC;EAAE,OAAO,EN6hB1B,GAAO;;AM5hB1B,iBAAiC;EAAE,OAAO,EN2W1B,GAAO;;AM1WvB,kBAAkC;EAAE,OAAO,ENW1B,GAAO;;AMVxB,cAA8B;EAAE,OAAO,ENod1B,GAAO;;AMndpB,eAA+B;EAAE,OAAO,ENod1B,GAAO;;AMndrB,eAA+B;EAAE,OAAO,EN2B1B,GAAO;;AM1BrB,mBAAmC;EAAE,OAAO,EN2B1B,GAAO;;AM1BzB,gBAAgC;EAAE,OAAO,ENkW1B,GAAO;;AMjWtB,iBAAiC;EAAE,OAAO,ENwC1B,GAAO;;AMvCvB,eAA+B;EAAE,OAAO,EN8L1B,GAAO;;AM7LrB,eAA+B;EAAE,OAAO,ENmB1B,GAAO;;AMlBrB,iBAAiC;EAAE,OAAO,ENoP1B,GAAO;;AMnPvB,sBAAsC;EAAE,OAAO,ENid1B,GAAO;;AMhd5B,qBAAqC;EAAE,OAAO,ENid1B,GAAO;;AMhd3B,qBAAqC;EAAE,OAAO,EN1C1B,GAAO;;AM2C3B,uBAAuC;EAAE,OAAO,EN7C1B,GAAO;;AM8C7B,sBAAsC;EAAE,OAAO,EN3C1B,GAAO;;AM4C5B,wBAAwC;EAAE,OAAO,EN9C1B,GAAO;;AM+C9B,eAA+B;EAAE,OAAO,ENwQ1B,GAAO;;AMvQrB;kBACkC;EAAE,OAAO,ENmT1B,GAAO;;AMlTxB,iBAAiC;EAAE,OAAO,ENmO1B,GAAO;;AMlOvB,uBAAuC;EAAE,OAAO,ENigB1B,GAAO;;AMhgB7B;;oBAEoC;EAAE,OAAO,EN+T1B,GAAO;;AM9T1B,iBAAiC;EAAE,OAAO,ENwT1B,GAAO;;AMvTvB,qBAAqC;EAAE,OAAO,EN+Q1B,GAAO;;AM9Q3B,iBAAiC;EAAE,OAAO,EN5D1B,GAAO;;AM6DvB,eAA+B;EAAE,OAAO,EN8c1B,GAAO;;AM7crB;0BAC0C;EAAE,OAAO,ENqT1B,GAAO;;AMpThC,yBAAyC;EAAE,OAAO,ENuX1B,GAAO;;AMtX/B,yBAAyC;EAAE,OAAO,EN0C1B,GAAO;;AMzC/B,iBAAiC;EAAE,OAAO,ENjC1B,GAAO;;AMkCvB,wBAAwC;EAAE,OAAO,ENma1B,GAAO;;AMla9B,wBAAwC;EAAE,OAAO,EN4H1B,GAAO;;AM3H9B,mBAAmC;EAAE,OAAO,EN7B1B,GAAO;;AM8BzB,eAA+B;EAAE,OAAO,EN0T1B,GAAO;;AMzTrB,gBAAgC;EAAE,OAAO,ENwS1B,GAAO;;AMvStB,eAA+B;EAAE,OAAO,ENia1B,GAAO;;AMharB,kBAAkC;EAAE,OAAO,ENgK1B,GAAO;;AM/JxB,uBAAuC;EAAE,OAAO,ENuH1B,GAAO;;AMtH7B,uBAAuC;EAAE,OAAO,EN4Z1B,GAAO;;AM3Z7B,gBAAgC;EAAE,OAAO,EN4F1B,GAAO;;AM3FtB,uBAAuC;EAAE,OAAO,ENoC1B,GAAO;;AMnC7B,wBAAwC;EAAE,OAAO,ENoC1B,GAAO;;AMnC9B,sBAAsC;EAAE,OAAO,ENsT1B,GAAO;;AMrT5B,uBAAuC;EAAE,OAAO,ENyQ1B,GAAO;;AMxQ7B,uBAAuC;EAAE,OAAO,ENwb1B,GAAO;;AMvb7B,uBAAuC;EAAE,OAAO,ENsB1B,GAAO;;AMrB7B,0BAA0C;EAAE,OAAO,EN2T1B,GAAO;;AM1ThC,sBAAsC;EAAE,OAAO,ENsM1B,GAAO;;AMrM5B,qBAAqC;EAAE,OAAO,EN6D1B,GAAO;;AM5D3B,yBAAyC;EAAE,OAAO,ENob1B,GAAO;;AMnb/B,yBAAyC;EAAE,OAAO,ENkB1B,GAAO;;AMjB/B,cAA8B;EAAE,OAAO,EN/C1B,GAAO;;AMgDpB,qBAAqC;EAAE,OAAO,EN3D1B,GAAO;;AM4D3B,sBAAsC;EAAE,OAAO,EN3D1B,GAAO;;AM4D5B,mBAAmC;EAAE,OAAO,EN3D1B,GAAO;;AM4DzB,qBAAqC;EAAE,OAAO,EN/D1B,GAAO;;AMgE3B;gBACgC;EAAE,OAAO,ENqV1B,GAAO;;AMpVtB,iBAAiC;EAAE,OAAO,ENuF1B,GAAO;;AMtFvB,mBAAmC;EAAE,OAAO,EN4C1B,GAAO;;AM3CzB,eAA+B;EAAE,OAAO,ENmS1B,GAAO;;AMlSrB,gBAAgC;EAAE,OAAO,ENsP1B,GAAO;;AMrPtB,mBAAmC;EAAE,OAAO,EN9D1B,GAAO;;AM+DzB,6BAA6C;EAAE,OAAO,ENgF1B,GAAO;;AM/EnC,eAA+B;EAAE,OAAO,EN+I1B,GAAO;;AM9IrB,eAA+B;EAAE,OAAO,ENoM1B,GAAO;;AMnMrB,eAA+B;EAAE,OAAO,ENmH1B,GAAO;;AMlHrB,cAA8B;EAAE,OAAO,ENiF1B,GAAO;;AMhFpB,oBAAoC;EAAE,OAAO,ENiF1B,GAAO;;AMhF1B;+BAC+C;EAAE,OAAO,EN0E1B,GAAO;;AMzErC,gBAAgC;EAAE,OAAO,ENmR1B,GAAO;;AMlRtB,mBAAmC;EAAE,OAAO,EN/B1B,GAAO;;AMgCzB,iBAAiC;EAAE,OAAO,ENoS1B,GAAO;;AMnSvB,kBAAkC;EAAE,OAAO,ENwB1B,GAAO;;AMvBxB,iBAAiC;EAAE,OAAO,ENqN1B,GAAO;;AMpNvB,qBAAqC;EAAE,OAAO,ENE1B,GAAO;;AMD3B,uBAAuC;EAAE,OAAO,ENF1B,GAAO;;AMG7B,kBAAkC;EAAE,OAAO,EN2S1B,GAAO;;AM1SxB,wBAAwC;EAAE,OAAO,ENyU1B,GAAO;;AMxU9B,iBAAiC;EAAE,OAAO,EN8G1B,GAAO;;AM7GvB,sBAAsC;EAAE,OAAO,EN+G1B,GAAO;;AM9G5B,mBAAmC;EAAE,OAAO,ENnF1B,GAAO;;AMoFzB,mBAAmC;EAAE,OAAO,ENrF1B,GAAO;;AMsFzB;oBACoC;EAAE,OAAO,EN/E1B,GAAO;;AMgF1B,yBAAyC;EAAE,OAAO,ENua1B,GAAO;;AMta/B,0BAA0C;EAAE,OAAO,ENmE1B,GAAO;;AMlEhC,uBAAuC;EAAE,OAAO,EN5C1B,GAAO;;AM6C7B,cAA8B;EAAE,OAAO,ENqK1B,GAAO;;AMpKpB;eAC+B;EAAE,OAAO,ENK1B,GAAO;;AMJrB,mBAAmC;EAAE,OAAO,ENQ1B,GAAO;;AMPzB,sBAAsC;EAAE,OAAO,ENmY1B,GAAO;;AMlY5B,wBAAwC;EAAE,OAAO,ENiY1B,GAAO;;AMhY9B,oBAAoC;EAAE,OAAO,EN2V1B,GAAO;;AM1V1B,kBAAkC;EAAE,OAAO,ENyI1B,GAAO;;AMxIxB,mBAAmC;EAAE,OAAO,ENyT1B,GAAO;;AMxTzB,0BAA0C;EAAE,OAAO,ENiL1B,GAAO;;AMhLhC,qBAAqC;EAAE,OAAO,EN0X1B,GAAO;;AMzX3B,wBAAwC;EAAE,OAAO,EN8C1B,GAAO;;AM7C9B,kBAAkC;EAAE,OAAO,ENoT1B,GAAO;;AMnTxB,iBAAiC;EAAE,OAAO,EN8Y1B,GAAO;;AM7YvB,wBAAwC;EAAE,OAAO,EN6G1B,GAAO;;AM5G9B,iBAAiC;EAAE,OAAO,EN8Z1B,GAAO;;AM7ZvB,kBAAkC;EAAE,OAAO,EN+J1B,GAAO;;AM9JxB,gBAAgC;EAAE,OAAO,ENsO1B,GAAO;;AMrOtB,mBAAmC;EAAE,OAAO,EN2U1B,GAAO;;AM1UzB,qBAAqC;EAAE,OAAO,EN/E1B,GAAO;;AMgF3B,uBAAuC;EAAE,OAAO,ENoO1B,GAAO;;AMnO7B,kBAAkC;EAAE,OAAO,EN8Y1B,GAAO;;AM7YxB;mBACmC;EAAE,OAAO,ENuC1B,GAAO;;AMtCzB,iBAAiC;EAAE,OAAO,ENiG1B,GAAO;;AMhGvB,iBAAiC;EAAE,OAAO,ENiZ1B,GAAO;;AMhZvB,sBAAsC;EAAE,OAAO,ENR1B,GAAO;;AMS5B,cAA8B;EAAE,OAAO,EN4Q1B,GAAO;;AM3QpB,gBAAgC;EAAE,OAAO,ENgH1B,GAAO;;AM/GtB,mBAAmC;EAAE,OAAO,ENnF1B,GAAO;;AMoFzB,eAA+B;EAAE,OAAO,ENzG1B,GAAO;;AM0GrB,sBAAsC;EAAE,OAAO,ENzD1B,GAAO;;AM0D5B,uBAAuC;EAAE,OAAO,EN0G1B,GAAO;;AMzG7B,sBAAsC;EAAE,OAAO,ENwG1B,GAAO;;AMvG5B,oBAAoC;EAAE,OAAO,ENyG1B,GAAO;;AMxG1B,sBAAsC;EAAE,OAAO,ENqG1B,GAAO;;AMpG5B,4BAA4C;EAAE,OAAO,EN5I1B,GAAO;;AM6IlC,6BAA6C;EAAE,OAAO,ENxI1B,GAAO;;AMyInC,0BAA0C;EAAE,OAAO,ENxI1B,GAAO;;AMyIhC,4BAA4C;EAAE,OAAO,ENhJ1B,GAAO;;AMiJlC,gBAAgC;EAAE,OAAO,ENsF1B,GAAO;;AMrFtB,iBAAiC;EAAE,OAAO,ENia1B,GAAO;;AMhavB,gBAAgC;EAAE,OAAO,ENiV1B,GAAO;;AMhVtB,iBAAiC;EAAE,OAAO,ENgD1B,GAAO;;AM/CvB,oBAAoC;EAAE,OAAO,ENvG1B,GAAO;;AMwG1B,qBAAqC;EAAE,OAAO,ENzI1B,GAAO;;AM0I3B;gBACgC;EAAE,OAAO,ENqY1B,GAAO;;AMpYtB;eAC+B;EAAE,OAAO,ENuI1B,GAAO;;AMtIrB,gBAAgC;EAAE,OAAO,ENpD1B,GAAO;;AMqDtB,gBAAgC;EAAE,OAAO,EN+C1B,GAAO;;AM9CtB;mBACmC;EAAE,OAAO,ENwP1B,GAAO;;AMvPzB;kBACkC;EAAE,OAAO,ENkC1B,GAAO;;AMjCxB,oBAAoC;EAAE,OAAO,ENsL1B,GAAO;;AMrL1B;mBACmC;EAAE,OAAO,EN0C1B,GAAO;;AMzCzB,iBAAiC;EAAE,OAAO,ENiS1B,GAAO;;AMhSvB;;eAE+B;EAAE,OAAO,EN9I1B,GAAO;;AM+IrB,kBAAkC;EAAE,OAAO,ENgI1B,GAAO;;AM/HxB,kBAAkC;EAAE,OAAO,EN8H1B,GAAO;;AM7HxB,wBAAwC;EAAE,OAAO,EN4S1B,GAAO;;AM3S9B,oBAAoC;EAAE,OAAO,ENoW1B,GAAO;;AMnW1B,gBAAgC;EAAE,OAAO,ENmT1B,GAAO;;AMlTtB,gBAAgC;EAAE,OAAO,ENkI1B,GAAO;;AMjItB,gBAAgC;EAAE,OAAO,ENuV1B,GAAO;;AMtVtB,oBAAoC;EAAE,OAAO,ENwL1B,GAAO;;AMvL1B,2BAA2C;EAAE,OAAO,ENyL1B,GAAO;;AMxLjC,6BAA6C;EAAE,OAAO,ENyD1B,GAAO;;AMxDnC,sBAAsC;EAAE,OAAO,ENuD1B,GAAO;;AMtD5B,gBAAgC;EAAE,OAAO,ENsJ1B,GAAO;;AMrJtB,qBAAqC;EAAE,OAAO,ENtH1B,GAAO;;AMuH3B,mBAAmC;EAAE,OAAO,ENhH1B,GAAO;;AMiHzB,qBAAqC;EAAE,OAAO,ENvH1B,GAAO;;AMwH3B,sBAAsC;EAAE,OAAO,ENvH1B,GAAO;;AMwH5B,kBAAkC;EAAE,OAAO,ENvE1B,GAAO;;AMwExB;eAC+B;EAAE,OAAO,EN2P1B,GAAO;;AM1PrB;oBACoC;EAAE,OAAO,EN+P1B,GAAO;;AM9P1B;mBACmC;EAAE,OAAO,EN4P1B,GAAO;;AM3PzB,mBAAmC;EAAE,OAAO,ENxC1B,GAAO;;AMyCzB,mBAAmC;EAAE,OAAO,ENkG1B,GAAO;;AMjGzB;eAC+B;EAAE,OAAO,EN8U1B,GAAO;;AM7UrB;gBACgC;EAAE,OAAO,ENqB1B,GAAO;;AMpBtB;qBACqC;EAAE,OAAO,EN2R1B,GAAO;;AM1R3B,oBAAoC;EAAE,OAAO,ENpF1B,GAAO;;AMqF1B,qBAAqC;EAAE,OAAO,ENnF1B,GAAO;;AMoF3B;eAC+B;EAAE,OAAO,ENjK1B,GAAO;;AMkKrB,kBAAkC;EAAE,OAAO,ENkO1B,GAAO;;AMjOxB,mBAAmC;EAAE,OAAO,ENkU1B,GAAO;;AMjUzB;oBACoC;EAAE,OAAO,EN1G1B,GAAO;;AM2G1B,sBAAsC;EAAE,OAAO,ENgF1B,GAAO;;AM/E5B,mBAAmC;EAAE,OAAO,ENnD1B,GAAO;;AMoDzB,yBAAyC;EAAE,OAAO,ENzG1B,GAAO;;AM0G/B,uBAAuC;EAAE,OAAO,ENzG1B,GAAO;;AM0G7B,kBAAkC;EAAE,OAAO,ENsU1B,GAAO;;AMrUxB,sBAAsC;EAAE,OAAO,EN+P1B,GAAO;;AM9P5B,mBAAmC;EAAE,OAAO,ENsQ1B,GAAO;;AMrQzB,iBAAiC;EAAE,OAAO,ENvL1B,GAAO;;AMwLvB,iBAAiC;EAAE,OAAO,ENzG1B,GAAO;;AM0GvB,kBAAkC;EAAE,OAAO,ENtF1B,GAAO;;AMuFxB,sBAAsC;EAAE,OAAO,EN3B1B,GAAO;;AM4B5B,qBAAqC;EAAE,OAAO,ENxK1B,GAAO;;AMyK3B,qBAAqC;EAAE,OAAO,ENkC1B,GAAO;;AMjC3B,oBAAoC;EAAE,OAAO,EN3O1B,GAAO;;AM4O1B,iBAAiC;EAAE,OAAO,ENiG1B,GAAO;;AMhGvB,sBAAsC;EAAE,OAAO,EN/C1B,GAAO;;AMgD5B,eAA+B;EAAE,OAAO,ENpM1B,GAAO;;AMqMrB,mBAAmC;EAAE,OAAO,ENe1B,GAAO;;AMdzB,sBAAsC;EAAE,OAAO,ENgJ1B,GAAO;;AM/I5B,4BAA4C;EAAE,OAAO,EN5O1B,GAAO;;AM6OlC,6BAA6C;EAAE,OAAO,EN5O1B,GAAO;;AM6OnC,0BAA0C;EAAE,OAAO,EN5O1B,GAAO;;AM6OhC,4BAA4C;EAAE,OAAO,ENhP1B,GAAO;;AMiPlC,qBAAqC;EAAE,OAAO,EN5O1B,GAAO;;AM6O3B,sBAAsC;EAAE,OAAO,EN5O1B,GAAO;;AM6O5B,mBAAmC;EAAE,OAAO,EN5O1B,GAAO;;AM6OzB,qBAAqC;EAAE,OAAO,ENhP1B,GAAO;;AMiP3B,kBAAkC;EAAE,OAAO,ENlG1B,GAAO;;AMmGxB,iBAAiC;EAAE,OAAO,ENuC1B,GAAO;;AMtCvB,iBAAiC;EAAE,OAAO,ENoP1B,GAAO;;AMnPvB;iBACiC;EAAE,OAAO,ENyF1B,GAAO;;AMxFvB,mBAAmC;EAAE,OAAO,EN9I1B,GAAO;;AM+IzB,qBAAqC;EAAE,OAAO,EN0I1B,GAAO;;AMzI3B,sBAAsC;EAAE,OAAO,EN0I1B,GAAO;;AMzI5B,kBAAkC;EAAE,OAAO,ENgN1B,GAAO;;AM/MxB,iBAAiC;EAAE,OAAO,ENnJ1B,GAAO;;AMoJvB;gBACgC;EAAE,OAAO,ENkJ1B,GAAO;;AMjJtB,qBAAqC;EAAE,OAAO,ENnB1B,GAAO;;AMoB3B,mBAAmC;EAAE,OAAO,ENxC1B,GAAO;;AMyCzB,wBAAwC;EAAE,OAAO,ENvC1B,GAAO;;AMwC9B,kBAAkC;EAAE,OAAO,EN0L1B,GAAO;;AMzLxB,kBAAkC;EAAE,OAAO,ENpC1B,GAAO;;AMqCxB,gBAAgC;EAAE,OAAO,ENoE1B,GAAO;;AMnEtB,kBAAkC;EAAE,OAAO,ENpC1B,GAAO;;AMqCxB,qBAAqC;EAAE,OAAO,ENkB1B,GAAO;;AMjB3B,iBAAiC;EAAE,OAAO,ENrD1B,GAAO;;AMsDvB,yBAAyC;EAAE,OAAO,ENvD1B,GAAO;;AMwD/B,mBAAmC;EAAE,OAAO,ENuO1B,GAAO;;AMtOzB,eAA+B;EAAE,OAAO,ENtJ1B,GAAO;;AMuJrB;oBACoC;EAAE,OAAO,ENqI1B,GAAO;;AMpI1B;;sBAEsC;EAAE,OAAO,ENuM1B,GAAO;;AMtM5B,yBAAyC;EAAE,OAAO,ENkC1B,GAAO;;AMjC/B,eAA+B;EAAE,OAAO,EN5I1B,GAAO;;AM6IrB,oBAAoC;EAAE,OAAO,EN7J1B,GAAO;;AM8J1B;uBACuC;EAAE,OAAO,EN1L1B,GAAO;;AM2L7B,mBAAmC;EAAE,OAAO,EN4G1B,GAAO;;AM3GzB,eAA+B;EAAE,OAAO,ENT1B,GAAO;;AMUrB,sBAAsC;EAAE,OAAO,ENhH1B,GAAO;;AMiH5B,sBAAsC;EAAE,OAAO,EN8M1B,GAAO;;AM7M5B,oBAAoC;EAAE,OAAO,ENyM1B,GAAO;;AMxM1B,iBAAiC;EAAE,OAAO,ENvH1B,GAAO;;AMwHvB,uBAAuC;EAAE,OAAO,ENmG1B,GAAO;;AMlG7B,qBAAqC;EAAE,OAAO,EN8C1B,GAAO;;AM7C3B,2BAA2C;EAAE,OAAO,EN8C1B,GAAO;;AM7CjC,iBAAiC;EAAE,OAAO,ENgJ1B,GAAO;;AM/IvB,qBAAqC;EAAE,OAAO,EN5N1B,GAAO;;AM6N3B,4BAA4C;EAAE,OAAO,ENjF1B,GAAO;;AMkFlC,iBAAiC;EAAE,OAAO,ENoH1B,GAAO;;AMnHvB,iBAAiC;EAAE,OAAO,ENkC1B,GAAO;;AMjCvB,8BAA8C;EAAE,OAAO,ENlM1B,GAAO;;AMmMpC,+BAA+C;EAAE,OAAO,ENlM1B,GAAO;;AMmMrC,4BAA4C;EAAE,OAAO,ENlM1B,GAAO;;AMmMlC,8BAA8C;EAAE,OAAO,ENtM1B,GAAO;;AMuMpC,gBAAgC;EAAE,OAAO,EN/B1B,GAAO;;AMgCtB,eAA+B;EAAE,OAAO,ENjK1B,GAAO;;AMkKrB,iBAAiC;EAAE,OAAO,EN9S1B,GAAO;;AM+SvB,qBAAqC;EAAE,OAAO,ENmP1B,GAAO;;AMlP3B,mBAAmC;EAAE,OAAO,EN9O1B,GAAO;;AM+OzB,qBAAqC;EAAE,OAAO,EN/I1B,GAAO;;AMgJ3B,qBAAqC;EAAE,OAAO,EN/I1B,GAAO;;AMgJ3B,qBAAqC;EAAE,OAAO,EN4G1B,GAAO;;AM3G3B,sBAAsC;EAAE,OAAO,ENsE1B,GAAO;;AMrE5B,iBAAiC;EAAE,OAAO,EN2M1B,GAAO;;AM1MvB,uBAAuC;EAAE,OAAO,EN6B1B,GAAO;;AM5B7B,yBAAyC;EAAE,OAAO,EN6B1B,GAAO;;AM5B/B,mBAAmC;EAAE,OAAO,ENhB1B,GAAO;;AMiBzB,qBAAqC;EAAE,OAAO,ENlB1B,GAAO;;AMmB3B,uBAAuC;EAAE,OAAO,ENvN1B,GAAO;;AMwN7B,wBAAwC;EAAE,OAAO,ENiD1B,GAAO;;AMhD9B,+BAA+C;EAAE,OAAO,EN3I1B,GAAO;;AM4IrC,uBAAuC;EAAE,OAAO,ENkH1B,GAAO;;AMjH7B,kBAAkC;EAAE,OAAO,EN1L1B,GAAO;;AM2LxB;8BAC8C;EAAE,OAAO,ENjP1B,GAAO;;AMkPpC;4BAC4C;EAAE,OAAO,ENhP1B,GAAO;;AMiPlC;+BAC+C;EAAE,OAAO,ENnP1B,GAAO;;AMoPrC;cAC8B;EAAE,OAAO,EN7J1B,GAAO;;AM8JpB,cAA8B;EAAE,OAAO,EN/F1B,GAAO;;AMgGpB;cAC8B;EAAE,OAAO,EN4N1B,GAAO;;AM3NpB;cAC8B;EAAE,OAAO,ENvD1B,GAAO;;AMwDpB;;;cAG8B;EAAE,OAAO,ENrD1B,GAAO;;AMsDpB;;cAE8B;EAAE,OAAO,EN8E1B,GAAO;;AM7EpB;cAC8B;EAAE,OAAO,ENtD1B,GAAO;;AMuDpB;cAC8B;EAAE,OAAO,ENzR1B,GAAO;;AM0RpB,eAA+B;EAAE,OAAO,ENzJ1B,GAAO;;AM0JrB,oBAAoC;EAAE,OAAO,EN7I1B,GAAO;;AM8I1B,yBAAyC;EAAE,OAAO,EN2G1B,GAAO;;AM1G/B,0BAA0C;EAAE,OAAO,EN2G1B,GAAO;;AM1GhC,0BAA0C;EAAE,OAAO,EN2G1B,GAAO;;AM1GhC,2BAA2C;EAAE,OAAO,EN2G1B,GAAO;;AM1GjC,2BAA2C;EAAE,OAAO,EN8G1B,GAAO;;AM7GjC,4BAA4C;EAAE,OAAO,EN8G1B,GAAO;;AM7GlC,oBAAoC;EAAE,OAAO,ENgK1B,GAAO;;AM/J1B,sBAAsC;EAAE,OAAO,EN4J1B,GAAO;;AM3J5B,yBAAyC;EAAE,OAAO,ENwO1B,GAAO;;AMvO/B,kBAAkC;EAAE,OAAO,ENqO1B,GAAO;;AMpOxB,eAA+B;EAAE,OAAO,EN+N1B,GAAO;;AM9NrB,sBAAsC;EAAE,OAAO,EN+N1B,GAAO;;AM9N5B,uBAAuC;EAAE,OAAO,ENmO1B,GAAO;;AMlO7B,kBAAkC;EAAE,OAAO,ENxM1B,GAAO;;AMyMxB,yBAAyC;EAAE,OAAO,EN+G1B,GAAO;;AM9G/B,oBAAoC;EAAE,OAAO,ENnF1B,GAAO;;AMoF1B,iBAAiC;EAAE,OAAO,EN/I1B,GAAO;;AMgJvB,cAA8B;EAAE,OAAO,ENhX1B,GAAO;;AMiXpB,oBAAoC;EAAE,OAAO,ENxT1B,GAAO;;AMyT1B,2BAA2C;EAAE,OAAO,ENxT1B,GAAO;;AMyTjC,iBAAiC;EAAE,OAAO,ENyK1B,GAAO;;AMxKvB,wBAAwC;EAAE,OAAO,ENyK1B,GAAO;;AMxK9B,0BAA0C;EAAE,OAAO,ENtD1B,GAAO;;AMuDhC,wBAAwC;EAAE,OAAO,ENpD1B,GAAO;;AMqD9B,0BAA0C;EAAE,OAAO,ENvD1B,GAAO;;AMwDhC,2BAA2C;EAAE,OAAO,ENvD1B,GAAO;;AMwDjC,gBAAgC;EAAE,OAAO,ENxW1B,GAAO;;AMyWtB,kBAAkC;EAAE,OAAO,EN0M1B,GAAO;;AMzMxB,kBAAkC;EAAE,OAAO,ENpX1B,GAAO;;AMqXxB,gBAAgC;EAAE,OAAO,ENpE1B,GAAO;;AMqEtB,mBAAmC;EAAE,OAAO,EN1N1B,GAAO;;AM2NzB,gBAAgC;EAAE,OAAO,ENqE1B,GAAO;;AMpEtB,qBAAqC;EAAE,OAAO,ENtJ1B,GAAO;;AMuJ3B,iBAAiC;EAAE,OAAO,ENuJ1B,GAAO;;AMtJvB,iBAAiC;EAAE,OAAO,EN/L1B,GAAO;;AMgMvB,eAA+B;EAAE,OAAO,EN1D1B,GAAO;;AM2DrB;mBACmC;EAAE,OAAO,ENnI1B,GAAO;;AMoIzB,gBAAgC;EAAE,OAAO,EN2G1B,GAAO;;AM1GtB,iBAAiC;EAAE,OAAO,ENxC1B,GAAO;;AMyCvB,kBAAkC;EAAE,OAAO,ENrX1B,GAAO;;AMsXxB,cAA8B;EAAE,OAAO,ENpU1B,GAAO;;AMqUpB,aAA6B;EAAE,OAAO,ENgL1B,GAAO;;AM/KnB,gBAAgC;EAAE,OAAO,ENqL1B,GAAO;;AMpLtB,iBAAiC;EAAE,OAAO,ENa1B,GAAO;;AMZvB,oBAAoC;EAAE,OAAO,ENrC1B,GAAO;;AMsC1B,yBAAyC;EAAE,OAAO,EN8E1B,GAAO;;AM7E/B,+BAA+C;EAAE,OAAO,ENtX1B,GAAO;;AMuXrC,8BAA8C;EAAE,OAAO,ENxX1B,GAAO;;AMyXpC;8BAC8C;EAAE,OAAO,EN3T1B,GAAO;;AM4TpC,uBAAuC;EAAE,OAAO,ENjP1B,GAAO;;AMkP7B,qBAAqC;EAAE,OAAO,EN+K1B,GAAO;;AM9K3B,uBAAuC;EAAE,OAAO,ENmK1B,GAAO;;AMlK7B;cAC8B;EAAE,OAAO,ENoI1B,GAAO;;AMnIpB,wBAAwC;EAAE,OAAO,ENjB1B,GAAO;;AMkB9B,wBAAwC;EAAE,OAAO,EN6D1B,GAAO;;AM5D9B,gBAAgC;EAAE,OAAO,EN2C1B,GAAO;;AM1CtB,0BAA0C;EAAE,OAAO,EN7O1B,GAAO;;AM8OhC,oBAAoC;EAAE,OAAO,EN2K1B,GAAO;;AM1K1B,iBAAiC;EAAE,OAAO,ENvD1B,GAAO;;AMwDvB;;qBAEqC;EAAE,OAAO,ENsI1B,GAAO;;AMrI3B;yBACyC;EAAE,OAAO,ENjK1B,GAAO;;AMkK/B,gBAAgC;EAAE,OAAO,ENwK1B,GAAO;;AMvKtB,iBAAiC;EAAE,OAAO,ENvK1B,GAAO;;AMwKvB,iBAAiC;EAAE,OAAO,ENhB1B,GAAO;;AMiBvB,wBAAwC;EAAE,OAAO,ENhB1B,GAAO;;AMiB9B,6BAA6C;EAAE,OAAO,ENsE1B,GAAO;;AMrEnC,sBAAsC;EAAE,OAAO,ENoE1B,GAAO;;AMnE5B,oBAAoC;EAAE,OAAO,EN7Q1B,GAAO;;AM8Q1B,eAA+B;EAAE,OAAO,EN1Q1B,GAAO;;AM2QrB,qBAAqC;EAAE,OAAO,ENjD1B,GAAO;;AMkD3B,yBAAyC;EAAE,OAAO,ENjD1B,GAAO;;AMkD/B,iBAAiC;EAAE,OAAO,ENvQ1B,GAAO;;AMwQvB,iBAAiC;EAAE,OAAO,EN9I1B,GAAO;;AM+IvB,mBAAmC;EAAE,OAAO,ENzI1B,GAAO;;AM0IzB,cAA8B;EAAE,OAAO,EN9O1B,GAAO;;AM+OpB,mBAAmC;EAAE,OAAO,EN3W1B,GAAO;;AM4WzB,gBAAgC;EAAE,OAAO,EN9T1B,GAAO;;AM+TtB,cAA8B;EAAE,OAAO,ENnE1B,GAAO;;AMoEpB,gBAAgC;EAAE,OAAO,ENoC1B,GAAO;;AMnCtB,eAA+B;EAAE,OAAO,ENjS1B,GAAO;;AMkSrB,gBAAgC;EAAE,OAAO,ENjS1B,GAAO;;AMkStB,kBAAkC;EAAE,OAAO,ENtY1B,GAAO;;AMuYxB,yBAAyC;EAAE,OAAO,ENtY1B,GAAO;;AMuY/B,gBAAgC;EAAE,OAAO,EN2C1B,GAAO;;AM1CtB,uBAAuC;EAAE,OAAO,EN2C1B,GAAO;;AM1C7B,kBAAkC;EAAE,OAAO,ENvC1B,GAAO;;AMwCxB;cAC8B;EAAE,OAAO,EN3W1B,GAAO;;AM4WpB;eAC+B;EAAE,OAAO,EN2D1B,GAAO;;AM1DrB,eAA+B;EAAE,OAAO,ENuF1B,GAAO;;AMtFrB,kBAAkC;EAAE,OAAO,ENwB1B,GAAO;;AMvBxB,qBAAqC;EAAE,OAAO,ENpS1B,GAAO;;AMqS3B,qBAAqC;EAAE,OAAO,ENkB1B,GAAO;;AMjB3B,mBAAmC;EAAE,OAAO,EN1S1B,GAAO;;AM2SzB,qBAAqC;EAAE,OAAO,ENxP1B,GAAO;;AMyP3B,sBAAsC;EAAE,OAAO,ENjP1B,GAAO;;AMkP5B,uBAAuC;EAAE,OAAO,EN9P1B,GAAO;;AM+P7B,4BAA4C;EAAE,OAAO,ENxP1B,GAAO;;AMyPlC;;uBAEuC;EAAE,OAAO,ENjQ1B,GAAO;;AMkQ7B;yBACyC;EAAE,OAAO,ENvQ1B,GAAO;;AMwQ/B;uBACuC;EAAE,OAAO,ENxQ1B,GAAO;;AMyQ7B;uBACuC;EAAE,OAAO,EN7P1B,GAAO;;AM8P7B,sBAAsC;EAAE,OAAO,EN1Q1B,GAAO;;AM2Q5B,eAA+B;EAAE,OAAO,ENsG1B,GAAO;;AMrGrB,kBAAkC;EAAE,OAAO,ENlV1B,GAAO;;AMmVxB,mBAAmC;EAAE,OAAO,ENnL1B,GAAO;;AMoLzB;;;;oBAIoC;EAAE,OAAO,ENxK1B,GAAO;;AMyK1B,yBAAyC;EAAE,OAAO,ENpW1B,GAAO;;AMqW/B;gBACgC;EAAE,OAAO,EN1E1B,GAAO;;AM2EtB;iBACiC;EAAE,OAAO,ENpT1B,GAAO;;AMqTvB,qBAAqC;EAAE,OAAO,EN1O1B,GAAO;;AM2O3B,cAA8B;EAAE,OAAO,EN5O1B,GAAO;;AM6OpB,sBAAsC;EAAE,OAAO,EN7N1B,GAAO;;AM8N5B,wBAAwC;EAAE,OAAO,ENwB1B,GAAO;;AMvB9B,aAA6B;EAAE,OAAO,ENzF1B,GAAO;;AM0FnB;iBACiC;EAAE,OAAO,EN2F1B,GAAO;;AM1FvB;sBACsC;EAAE,OAAO,EN9H1B,GAAO;;AM+H5B;wBACwC;EAAE,OAAO,EN/H1B,GAAO;;AMgI9B,kBAAkC;EAAE,OAAO,EN3N1B,GAAO;;AM4NxB;sBACsC;EAAE,OAAO,ENrX1B,GAAO;;AMsX5B,iBAAiC;EAAE,OAAO,ENnO1B,GAAO;;AMoOvB,oBAAoC;EAAE,OAAO,ENlI1B,GAAO;;AMmI1B,kBAAkC;EAAE,OAAO,EN1C1B,GAAO;;AM2CxB,oBAAoC;EAAE,OAAO,EN7D1B,GAAO;;AM8D1B,2BAA2C;EAAE,OAAO,EN7D1B,GAAO;;AM8DjC,eAA+B;EAAE,OAAO,ENpb1B,GAAO;;AMqbrB;mBACmC;EAAE,OAAO,ENzQ1B,GAAO;;AM0QzB,cAA8B;EAAE,OAAO,ENsC1B,GAAO;;AMrCpB,qBAAqC;EAAE,OAAO,EN/b1B,GAAO;;AMgc3B,eAA+B;EAAE,OAAO,ENrH1B,GAAO;;AMsHrB,qBAAqC;EAAE,OAAO,ENlD1B,GAAO;;AMmD3B,iBAAiC;EAAE,OAAO,ENsC1B,GAAO;;AMrCvB,eAA+B;EAAE,OAAO,ENiF1B,GAAO;;AMhFrB,sBAAsC;EAAE,OAAO,ENvJ1B,GAAO;;AMwJ5B,eAA+B;EAAE,OAAO,ENuE1B,GAAO;;AMtErB,qBAAqC;EAAE,OAAO,ENjb1B,GAAO;;AMkb3B,iBAAiC;EAAE,OAAO,EN9I1B,GAAO;;AM+IvB,wBAAwC;EAAE,OAAO,ENhQ1B,GAAO;;AMiQ9B,kBAAkC;EAAE,OAAO,EN9Z1B,GAAO;;AM+ZxB,wBAAwC;EAAE,OAAO,ENla1B,GAAO;;AMma9B,sBAAsC;EAAE,OAAO,ENpa1B,GAAO;;AMqa5B,kBAAkC;EAAE,OAAO,ENta1B,GAAO;;AMuaxB,oBAAoC;EAAE,OAAO,ENpa1B,GAAO;;AMqa1B,oBAAoC;EAAE,OAAO,ENpa1B,GAAO;;AMqa1B,qBAAqC;EAAE,OAAO,ENld1B,GAAO;;AMmd3B,uBAAuC;EAAE,OAAO,ENld1B,GAAO;;AMmd7B,gBAAgC;EAAE,OAAO,ENY1B,GAAO;;AMXtB,oBAAoC;EAAE,OAAO,EN3X1B,GAAO;;AM4X1B,aAA6B;EAAE,OAAO,ENre1B,GAAO;;AMsenB,qBAAqC;EAAE,OAAO,ENjV1B,GAAO;;AMkV3B,sBAAsC;EAAE,OAAO,ENpK1B,GAAO;;AMqK5B,wBAAwC;EAAE,OAAO,ENrd1B,GAAO;;AMsd9B,qBAAqC;EAAE,OAAO,EN3f1B,GAAO;;AM4f3B,oBAAoC;EAAE,OAAO,ENvJ1B,GAAO;;AMwJ1B,qBAAqC;EAAE,OAAO,EN5N1B,GAAO;;AM6N3B,iBAAiC;EAAE,OAAO,EN1O1B,GAAO;;AM2OvB,wBAAwC;EAAE,OAAO,EN1O1B,GAAO;;AM2O9B,qBAAqC;EAAE,OAAO,ENN1B,GAAO;;AMO3B,oBAAoC;EAAE,OAAO,ENN1B,GAAO;;AMO1B,kBAAkC;EAAE,OAAO,EN/d1B,GAAO;;AMgexB,cAA8B;EAAE,OAAO,EN7c1B,GAAO;;AM8cpB,kBAAkC;EAAE,OAAO,EN1P1B,GAAO;;AM2PxB,oBAAoC;EAAE,OAAO,ENhhB1B,GAAO;;AMihB1B,aAA6B;EAAE,OAAO,EN7b1B,GAAO;;AM8bnB;;cAE8B;EAAE,OAAO,ENxQ1B,GAAO;;AMyQpB,mBAAmC;EAAE,OAAO,EN7M1B,GAAO;;AM8MzB,qBAAqC;EAAE,OAAO,ENpd1B,GAAO;;AMqd3B,yBAAyC;EAAE,OAAO,ENnZ1B,GAAO;;AMoZ/B,mBAAmC;EAAE,OAAO,ENxY1B,GAAO;;AMyYzB,mBAAmC;EAAE,OAAO,EN1T1B,GAAO;;AM2TzB,kBAAkC;EAAE,OAAO,ENxP1B,GAAO;;AMyPxB,iBAAiC;EAAE,OAAO,ENrH1B,GAAO;;AMsHvB,uBAAuC;EAAE,OAAO,ENzG1B,GAAO;;AM0G7B,sBAAsC;EAAE,OAAO,ENrG1B,GAAO;;AMsG5B,mBAAmC;EAAE,OAAO,ENpG1B,GAAO;;AMqGzB,oBAAoC;EAAE,OAAO,EN5c1B,GAAO;;AM6c1B,0BAA0C;EAAE,OAAO,EN9c1B,GAAO;;AM+chC,kBAAkC;EAAE,OAAO,EN3Y1B,GAAO;;AM4YxB,eAA+B;EAAE,OAAO,ENhH1B,GAAO;;AMiHrB,sBAAsC;EAAE,OAAO,ENI1B,GAAO;;AMH5B,qBAAqC;EAAE,OAAO,EN5M1B,GAAO;;AM6M3B,sBAAsC;EAAE,OAAO,ENpE1B,GAAO;;AMqE5B,oBAAoC;EAAE,OAAO,ENhS1B,GAAO;;AMiS1B,gBAAgC;EAAE,OAAO,ENG1B,GAAO;;AMFtB,eAA+B;EAAE,OAAO,ENtO1B,GAAO;;AMuOrB,kBAAkC;EAAE,OAAO,EN7N1B,GAAO;;AM8NxB,sBAAsC;EAAE,OAAO,ENhC1B,GAAO;;AMiC5B,0BAA0C;EAAE,OAAO,ENhC1B,GAAO;;AMiChC,uBAAuC;EAAE,OAAO,END1B,GAAO;;AME7B,sBAAsC;EAAE,OAAO,EN1O1B,GAAO;;AM2O5B,qBAAqC;EAAE,OAAO,ENF1B,GAAO;;AMG3B,sBAAsC;EAAE,OAAO,EN3O1B,GAAO;;AM4O5B,wBAAwC;EAAE,OAAO,EN1O1B,GAAO;;AM2O9B,wBAAwC;EAAE,OAAO,EN5O1B,GAAO;;AM6O9B,iBAAiC;EAAE,OAAO,ENvN1B,GAAO;;AMwNvB,4BAA4C;EAAE,OAAO,EN9X1B,GAAO;;AM+XlC,sBAAsC;EAAE,OAAO,ENhM1B,GAAO;;AMiM5B,mBAAmC;EAAE,OAAO,ENI1B,GAAO;;AMHzB,iBAAiC;EAAE,OAAO,EN7I1B,GAAO;;AM8IvB,oBAAoC;EAAE,OAAO,ENjB1B,GAAO;;AMkB1B,qBAAqC;EAAE,OAAO,ENhB1B,GAAO;;AMiB3B;cAC8B;EAAE,OAAO,ENphB1B,GAAO;;AMqhBpB,kBAAkC;EAAE,OAAO,ENd1B,GAAO;;AMexB,gBAAgC;EAAE,OAAO,ENnD1B,GAAO;;AMoDtB,iBAAiC;EAAE,OAAO,ENvF1B,GAAO;;AMwFvB,iBAAiC;EAAE,OAAO,ENrP1B,GAAO", -"sources": ["../scss/_path.scss","../scss/_core.scss","../scss/_larger.scss","../scss/_fixed-width.scss","../scss/_list.scss","../scss/_variables.scss","../scss/_bordered-pulled.scss","../scss/_animated.scss","../scss/_rotated-flipped.scss","../scss/_mixins.scss","../scss/_stacked.scss","../scss/_icons.scss"], -"names": [], -"file": "font-awesome.css" -} diff --git a/admin/bower_components/font-awesome/css/font-awesome.min.css b/admin/bower_components/font-awesome/css/font-awesome.min.css deleted file mode 100644 index 540440c..0000000 --- a/admin/bower_components/font-awesome/css/font-awesome.min.css +++ /dev/null @@ -1,4 +0,0 @@ -/*! - * Font Awesome 4.7.0 by @davegandy - http://fontawesome.io - @fontawesome - * License - http://fontawesome.io/license (Font: SIL OFL 1.1, CSS: MIT License) - */@font-face{font-family:'FontAwesome';src:url('../fonts/fontawesome-webfont.eot?v=4.7.0');src:url('../fonts/fontawesome-webfont.eot?#iefix&v=4.7.0') format('embedded-opentype'),url('../fonts/fontawesome-webfont.woff2?v=4.7.0') format('woff2'),url('../fonts/fontawesome-webfont.woff?v=4.7.0') format('woff'),url('../fonts/fontawesome-webfont.ttf?v=4.7.0') format('truetype'),url('../fonts/fontawesome-webfont.svg?v=4.7.0#fontawesomeregular') format('svg');font-weight:normal;font-style:normal}.fa{display:inline-block;font:normal normal normal 14px/1 FontAwesome;font-size:inherit;text-rendering:auto;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.fa-lg{font-size:1.33333333em;line-height:.75em;vertical-align:-15%}.fa-2x{font-size:2em}.fa-3x{font-size:3em}.fa-4x{font-size:4em}.fa-5x{font-size:5em}.fa-fw{width:1.28571429em;text-align:center}.fa-ul{padding-left:0;margin-left:2.14285714em;list-style-type:none}.fa-ul>li{position:relative}.fa-li{position:absolute;left:-2.14285714em;width:2.14285714em;top:.14285714em;text-align:center}.fa-li.fa-lg{left:-1.85714286em}.fa-border{padding:.2em .25em .15em;border:solid .08em #eee;border-radius:.1em}.fa-pull-left{float:left}.fa-pull-right{float:right}.fa.fa-pull-left{margin-right:.3em}.fa.fa-pull-right{margin-left:.3em}.pull-right{float:right}.pull-left{float:left}.fa.pull-left{margin-right:.3em}.fa.pull-right{margin-left:.3em}.fa-spin{-webkit-animation:fa-spin 2s infinite linear;animation:fa-spin 2s infinite linear}.fa-pulse{-webkit-animation:fa-spin 1s infinite steps(8);animation:fa-spin 1s infinite steps(8)}@-webkit-keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}@keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}.fa-rotate-90{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=1)";-webkit-transform:rotate(90deg);-ms-transform:rotate(90deg);transform:rotate(90deg)}.fa-rotate-180{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=2)";-webkit-transform:rotate(180deg);-ms-transform:rotate(180deg);transform:rotate(180deg)}.fa-rotate-270{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=3)";-webkit-transform:rotate(270deg);-ms-transform:rotate(270deg);transform:rotate(270deg)}.fa-flip-horizontal{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1)";-webkit-transform:scale(-1, 1);-ms-transform:scale(-1, 1);transform:scale(-1, 1)}.fa-flip-vertical{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)";-webkit-transform:scale(1, -1);-ms-transform:scale(1, -1);transform:scale(1, -1)}:root .fa-rotate-90,:root .fa-rotate-180,:root .fa-rotate-270,:root .fa-flip-horizontal,:root .fa-flip-vertical{filter:none}.fa-stack{position:relative;display:inline-block;width:2em;height:2em;line-height:2em;vertical-align:middle}.fa-stack-1x,.fa-stack-2x{position:absolute;left:0;width:100%;text-align:center}.fa-stack-1x{line-height:inherit}.fa-stack-2x{font-size:2em}.fa-inverse{color:#fff}.fa-glass:before{content:"\f000"}.fa-music:before{content:"\f001"}.fa-search:before{content:"\f002"}.fa-envelope-o:before{content:"\f003"}.fa-heart:before{content:"\f004"}.fa-star:before{content:"\f005"}.fa-star-o:before{content:"\f006"}.fa-user:before{content:"\f007"}.fa-film:before{content:"\f008"}.fa-th-large:before{content:"\f009"}.fa-th:before{content:"\f00a"}.fa-th-list:before{content:"\f00b"}.fa-check:before{content:"\f00c"}.fa-remove:before,.fa-close:before,.fa-times:before{content:"\f00d"}.fa-search-plus:before{content:"\f00e"}.fa-search-minus:before{content:"\f010"}.fa-power-off:before{content:"\f011"}.fa-signal:before{content:"\f012"}.fa-gear:before,.fa-cog:before{content:"\f013"}.fa-trash-o:before{content:"\f014"}.fa-home:before{content:"\f015"}.fa-file-o:before{content:"\f016"}.fa-clock-o:before{content:"\f017"}.fa-road:before{content:"\f018"}.fa-download:before{content:"\f019"}.fa-arrow-circle-o-down:before{content:"\f01a"}.fa-arrow-circle-o-up:before{content:"\f01b"}.fa-inbox:before{content:"\f01c"}.fa-play-circle-o:before{content:"\f01d"}.fa-rotate-right:before,.fa-repeat:before{content:"\f01e"}.fa-refresh:before{content:"\f021"}.fa-list-alt:before{content:"\f022"}.fa-lock:before{content:"\f023"}.fa-flag:before{content:"\f024"}.fa-headphones:before{content:"\f025"}.fa-volume-off:before{content:"\f026"}.fa-volume-down:before{content:"\f027"}.fa-volume-up:before{content:"\f028"}.fa-qrcode:before{content:"\f029"}.fa-barcode:before{content:"\f02a"}.fa-tag:before{content:"\f02b"}.fa-tags:before{content:"\f02c"}.fa-book:before{content:"\f02d"}.fa-bookmark:before{content:"\f02e"}.fa-print:before{content:"\f02f"}.fa-camera:before{content:"\f030"}.fa-font:before{content:"\f031"}.fa-bold:before{content:"\f032"}.fa-italic:before{content:"\f033"}.fa-text-height:before{content:"\f034"}.fa-text-width:before{content:"\f035"}.fa-align-left:before{content:"\f036"}.fa-align-center:before{content:"\f037"}.fa-align-right:before{content:"\f038"}.fa-align-justify:before{content:"\f039"}.fa-list:before{content:"\f03a"}.fa-dedent:before,.fa-outdent:before{content:"\f03b"}.fa-indent:before{content:"\f03c"}.fa-video-camera:before{content:"\f03d"}.fa-photo:before,.fa-image:before,.fa-picture-o:before{content:"\f03e"}.fa-pencil:before{content:"\f040"}.fa-map-marker:before{content:"\f041"}.fa-adjust:before{content:"\f042"}.fa-tint:before{content:"\f043"}.fa-edit:before,.fa-pencil-square-o:before{content:"\f044"}.fa-share-square-o:before{content:"\f045"}.fa-check-square-o:before{content:"\f046"}.fa-arrows:before{content:"\f047"}.fa-step-backward:before{content:"\f048"}.fa-fast-backward:before{content:"\f049"}.fa-backward:before{content:"\f04a"}.fa-play:before{content:"\f04b"}.fa-pause:before{content:"\f04c"}.fa-stop:before{content:"\f04d"}.fa-forward:before{content:"\f04e"}.fa-fast-forward:before{content:"\f050"}.fa-step-forward:before{content:"\f051"}.fa-eject:before{content:"\f052"}.fa-chevron-left:before{content:"\f053"}.fa-chevron-right:before{content:"\f054"}.fa-plus-circle:before{content:"\f055"}.fa-minus-circle:before{content:"\f056"}.fa-times-circle:before{content:"\f057"}.fa-check-circle:before{content:"\f058"}.fa-question-circle:before{content:"\f059"}.fa-info-circle:before{content:"\f05a"}.fa-crosshairs:before{content:"\f05b"}.fa-times-circle-o:before{content:"\f05c"}.fa-check-circle-o:before{content:"\f05d"}.fa-ban:before{content:"\f05e"}.fa-arrow-left:before{content:"\f060"}.fa-arrow-right:before{content:"\f061"}.fa-arrow-up:before{content:"\f062"}.fa-arrow-down:before{content:"\f063"}.fa-mail-forward:before,.fa-share:before{content:"\f064"}.fa-expand:before{content:"\f065"}.fa-compress:before{content:"\f066"}.fa-plus:before{content:"\f067"}.fa-minus:before{content:"\f068"}.fa-asterisk:before{content:"\f069"}.fa-exclamation-circle:before{content:"\f06a"}.fa-gift:before{content:"\f06b"}.fa-leaf:before{content:"\f06c"}.fa-fire:before{content:"\f06d"}.fa-eye:before{content:"\f06e"}.fa-eye-slash:before{content:"\f070"}.fa-warning:before,.fa-exclamation-triangle:before{content:"\f071"}.fa-plane:before{content:"\f072"}.fa-calendar:before{content:"\f073"}.fa-random:before{content:"\f074"}.fa-comment:before{content:"\f075"}.fa-magnet:before{content:"\f076"}.fa-chevron-up:before{content:"\f077"}.fa-chevron-down:before{content:"\f078"}.fa-retweet:before{content:"\f079"}.fa-shopping-cart:before{content:"\f07a"}.fa-folder:before{content:"\f07b"}.fa-folder-open:before{content:"\f07c"}.fa-arrows-v:before{content:"\f07d"}.fa-arrows-h:before{content:"\f07e"}.fa-bar-chart-o:before,.fa-bar-chart:before{content:"\f080"}.fa-twitter-square:before{content:"\f081"}.fa-facebook-square:before{content:"\f082"}.fa-camera-retro:before{content:"\f083"}.fa-key:before{content:"\f084"}.fa-gears:before,.fa-cogs:before{content:"\f085"}.fa-comments:before{content:"\f086"}.fa-thumbs-o-up:before{content:"\f087"}.fa-thumbs-o-down:before{content:"\f088"}.fa-star-half:before{content:"\f089"}.fa-heart-o:before{content:"\f08a"}.fa-sign-out:before{content:"\f08b"}.fa-linkedin-square:before{content:"\f08c"}.fa-thumb-tack:before{content:"\f08d"}.fa-external-link:before{content:"\f08e"}.fa-sign-in:before{content:"\f090"}.fa-trophy:before{content:"\f091"}.fa-github-square:before{content:"\f092"}.fa-upload:before{content:"\f093"}.fa-lemon-o:before{content:"\f094"}.fa-phone:before{content:"\f095"}.fa-square-o:before{content:"\f096"}.fa-bookmark-o:before{content:"\f097"}.fa-phone-square:before{content:"\f098"}.fa-twitter:before{content:"\f099"}.fa-facebook-f:before,.fa-facebook:before{content:"\f09a"}.fa-github:before{content:"\f09b"}.fa-unlock:before{content:"\f09c"}.fa-credit-card:before{content:"\f09d"}.fa-feed:before,.fa-rss:before{content:"\f09e"}.fa-hdd-o:before{content:"\f0a0"}.fa-bullhorn:before{content:"\f0a1"}.fa-bell:before{content:"\f0f3"}.fa-certificate:before{content:"\f0a3"}.fa-hand-o-right:before{content:"\f0a4"}.fa-hand-o-left:before{content:"\f0a5"}.fa-hand-o-up:before{content:"\f0a6"}.fa-hand-o-down:before{content:"\f0a7"}.fa-arrow-circle-left:before{content:"\f0a8"}.fa-arrow-circle-right:before{content:"\f0a9"}.fa-arrow-circle-up:before{content:"\f0aa"}.fa-arrow-circle-down:before{content:"\f0ab"}.fa-globe:before{content:"\f0ac"}.fa-wrench:before{content:"\f0ad"}.fa-tasks:before{content:"\f0ae"}.fa-filter:before{content:"\f0b0"}.fa-briefcase:before{content:"\f0b1"}.fa-arrows-alt:before{content:"\f0b2"}.fa-group:before,.fa-users:before{content:"\f0c0"}.fa-chain:before,.fa-link:before{content:"\f0c1"}.fa-cloud:before{content:"\f0c2"}.fa-flask:before{content:"\f0c3"}.fa-cut:before,.fa-scissors:before{content:"\f0c4"}.fa-copy:before,.fa-files-o:before{content:"\f0c5"}.fa-paperclip:before{content:"\f0c6"}.fa-save:before,.fa-floppy-o:before{content:"\f0c7"}.fa-square:before{content:"\f0c8"}.fa-navicon:before,.fa-reorder:before,.fa-bars:before{content:"\f0c9"}.fa-list-ul:before{content:"\f0ca"}.fa-list-ol:before{content:"\f0cb"}.fa-strikethrough:before{content:"\f0cc"}.fa-underline:before{content:"\f0cd"}.fa-table:before{content:"\f0ce"}.fa-magic:before{content:"\f0d0"}.fa-truck:before{content:"\f0d1"}.fa-pinterest:before{content:"\f0d2"}.fa-pinterest-square:before{content:"\f0d3"}.fa-google-plus-square:before{content:"\f0d4"}.fa-google-plus:before{content:"\f0d5"}.fa-money:before{content:"\f0d6"}.fa-caret-down:before{content:"\f0d7"}.fa-caret-up:before{content:"\f0d8"}.fa-caret-left:before{content:"\f0d9"}.fa-caret-right:before{content:"\f0da"}.fa-columns:before{content:"\f0db"}.fa-unsorted:before,.fa-sort:before{content:"\f0dc"}.fa-sort-down:before,.fa-sort-desc:before{content:"\f0dd"}.fa-sort-up:before,.fa-sort-asc:before{content:"\f0de"}.fa-envelope:before{content:"\f0e0"}.fa-linkedin:before{content:"\f0e1"}.fa-rotate-left:before,.fa-undo:before{content:"\f0e2"}.fa-legal:before,.fa-gavel:before{content:"\f0e3"}.fa-dashboard:before,.fa-tachometer:before{content:"\f0e4"}.fa-comment-o:before{content:"\f0e5"}.fa-comments-o:before{content:"\f0e6"}.fa-flash:before,.fa-bolt:before{content:"\f0e7"}.fa-sitemap:before{content:"\f0e8"}.fa-umbrella:before{content:"\f0e9"}.fa-paste:before,.fa-clipboard:before{content:"\f0ea"}.fa-lightbulb-o:before{content:"\f0eb"}.fa-exchange:before{content:"\f0ec"}.fa-cloud-download:before{content:"\f0ed"}.fa-cloud-upload:before{content:"\f0ee"}.fa-user-md:before{content:"\f0f0"}.fa-stethoscope:before{content:"\f0f1"}.fa-suitcase:before{content:"\f0f2"}.fa-bell-o:before{content:"\f0a2"}.fa-coffee:before{content:"\f0f4"}.fa-cutlery:before{content:"\f0f5"}.fa-file-text-o:before{content:"\f0f6"}.fa-building-o:before{content:"\f0f7"}.fa-hospital-o:before{content:"\f0f8"}.fa-ambulance:before{content:"\f0f9"}.fa-medkit:before{content:"\f0fa"}.fa-fighter-jet:before{content:"\f0fb"}.fa-beer:before{content:"\f0fc"}.fa-h-square:before{content:"\f0fd"}.fa-plus-square:before{content:"\f0fe"}.fa-angle-double-left:before{content:"\f100"}.fa-angle-double-right:before{content:"\f101"}.fa-angle-double-up:before{content:"\f102"}.fa-angle-double-down:before{content:"\f103"}.fa-angle-left:before{content:"\f104"}.fa-angle-right:before{content:"\f105"}.fa-angle-up:before{content:"\f106"}.fa-angle-down:before{content:"\f107"}.fa-desktop:before{content:"\f108"}.fa-laptop:before{content:"\f109"}.fa-tablet:before{content:"\f10a"}.fa-mobile-phone:before,.fa-mobile:before{content:"\f10b"}.fa-circle-o:before{content:"\f10c"}.fa-quote-left:before{content:"\f10d"}.fa-quote-right:before{content:"\f10e"}.fa-spinner:before{content:"\f110"}.fa-circle:before{content:"\f111"}.fa-mail-reply:before,.fa-reply:before{content:"\f112"}.fa-github-alt:before{content:"\f113"}.fa-folder-o:before{content:"\f114"}.fa-folder-open-o:before{content:"\f115"}.fa-smile-o:before{content:"\f118"}.fa-frown-o:before{content:"\f119"}.fa-meh-o:before{content:"\f11a"}.fa-gamepad:before{content:"\f11b"}.fa-keyboard-o:before{content:"\f11c"}.fa-flag-o:before{content:"\f11d"}.fa-flag-checkered:before{content:"\f11e"}.fa-terminal:before{content:"\f120"}.fa-code:before{content:"\f121"}.fa-mail-reply-all:before,.fa-reply-all:before{content:"\f122"}.fa-star-half-empty:before,.fa-star-half-full:before,.fa-star-half-o:before{content:"\f123"}.fa-location-arrow:before{content:"\f124"}.fa-crop:before{content:"\f125"}.fa-code-fork:before{content:"\f126"}.fa-unlink:before,.fa-chain-broken:before{content:"\f127"}.fa-question:before{content:"\f128"}.fa-info:before{content:"\f129"}.fa-exclamation:before{content:"\f12a"}.fa-superscript:before{content:"\f12b"}.fa-subscript:before{content:"\f12c"}.fa-eraser:before{content:"\f12d"}.fa-puzzle-piece:before{content:"\f12e"}.fa-microphone:before{content:"\f130"}.fa-microphone-slash:before{content:"\f131"}.fa-shield:before{content:"\f132"}.fa-calendar-o:before{content:"\f133"}.fa-fire-extinguisher:before{content:"\f134"}.fa-rocket:before{content:"\f135"}.fa-maxcdn:before{content:"\f136"}.fa-chevron-circle-left:before{content:"\f137"}.fa-chevron-circle-right:before{content:"\f138"}.fa-chevron-circle-up:before{content:"\f139"}.fa-chevron-circle-down:before{content:"\f13a"}.fa-html5:before{content:"\f13b"}.fa-css3:before{content:"\f13c"}.fa-anchor:before{content:"\f13d"}.fa-unlock-alt:before{content:"\f13e"}.fa-bullseye:before{content:"\f140"}.fa-ellipsis-h:before{content:"\f141"}.fa-ellipsis-v:before{content:"\f142"}.fa-rss-square:before{content:"\f143"}.fa-play-circle:before{content:"\f144"}.fa-ticket:before{content:"\f145"}.fa-minus-square:before{content:"\f146"}.fa-minus-square-o:before{content:"\f147"}.fa-level-up:before{content:"\f148"}.fa-level-down:before{content:"\f149"}.fa-check-square:before{content:"\f14a"}.fa-pencil-square:before{content:"\f14b"}.fa-external-link-square:before{content:"\f14c"}.fa-share-square:before{content:"\f14d"}.fa-compass:before{content:"\f14e"}.fa-toggle-down:before,.fa-caret-square-o-down:before{content:"\f150"}.fa-toggle-up:before,.fa-caret-square-o-up:before{content:"\f151"}.fa-toggle-right:before,.fa-caret-square-o-right:before{content:"\f152"}.fa-euro:before,.fa-eur:before{content:"\f153"}.fa-gbp:before{content:"\f154"}.fa-dollar:before,.fa-usd:before{content:"\f155"}.fa-rupee:before,.fa-inr:before{content:"\f156"}.fa-cny:before,.fa-rmb:before,.fa-yen:before,.fa-jpy:before{content:"\f157"}.fa-ruble:before,.fa-rouble:before,.fa-rub:before{content:"\f158"}.fa-won:before,.fa-krw:before{content:"\f159"}.fa-bitcoin:before,.fa-btc:before{content:"\f15a"}.fa-file:before{content:"\f15b"}.fa-file-text:before{content:"\f15c"}.fa-sort-alpha-asc:before{content:"\f15d"}.fa-sort-alpha-desc:before{content:"\f15e"}.fa-sort-amount-asc:before{content:"\f160"}.fa-sort-amount-desc:before{content:"\f161"}.fa-sort-numeric-asc:before{content:"\f162"}.fa-sort-numeric-desc:before{content:"\f163"}.fa-thumbs-up:before{content:"\f164"}.fa-thumbs-down:before{content:"\f165"}.fa-youtube-square:before{content:"\f166"}.fa-youtube:before{content:"\f167"}.fa-xing:before{content:"\f168"}.fa-xing-square:before{content:"\f169"}.fa-youtube-play:before{content:"\f16a"}.fa-dropbox:before{content:"\f16b"}.fa-stack-overflow:before{content:"\f16c"}.fa-instagram:before{content:"\f16d"}.fa-flickr:before{content:"\f16e"}.fa-adn:before{content:"\f170"}.fa-bitbucket:before{content:"\f171"}.fa-bitbucket-square:before{content:"\f172"}.fa-tumblr:before{content:"\f173"}.fa-tumblr-square:before{content:"\f174"}.fa-long-arrow-down:before{content:"\f175"}.fa-long-arrow-up:before{content:"\f176"}.fa-long-arrow-left:before{content:"\f177"}.fa-long-arrow-right:before{content:"\f178"}.fa-apple:before{content:"\f179"}.fa-windows:before{content:"\f17a"}.fa-android:before{content:"\f17b"}.fa-linux:before{content:"\f17c"}.fa-dribbble:before{content:"\f17d"}.fa-skype:before{content:"\f17e"}.fa-foursquare:before{content:"\f180"}.fa-trello:before{content:"\f181"}.fa-female:before{content:"\f182"}.fa-male:before{content:"\f183"}.fa-gittip:before,.fa-gratipay:before{content:"\f184"}.fa-sun-o:before{content:"\f185"}.fa-moon-o:before{content:"\f186"}.fa-archive:before{content:"\f187"}.fa-bug:before{content:"\f188"}.fa-vk:before{content:"\f189"}.fa-weibo:before{content:"\f18a"}.fa-renren:before{content:"\f18b"}.fa-pagelines:before{content:"\f18c"}.fa-stack-exchange:before{content:"\f18d"}.fa-arrow-circle-o-right:before{content:"\f18e"}.fa-arrow-circle-o-left:before{content:"\f190"}.fa-toggle-left:before,.fa-caret-square-o-left:before{content:"\f191"}.fa-dot-circle-o:before{content:"\f192"}.fa-wheelchair:before{content:"\f193"}.fa-vimeo-square:before{content:"\f194"}.fa-turkish-lira:before,.fa-try:before{content:"\f195"}.fa-plus-square-o:before{content:"\f196"}.fa-space-shuttle:before{content:"\f197"}.fa-slack:before{content:"\f198"}.fa-envelope-square:before{content:"\f199"}.fa-wordpress:before{content:"\f19a"}.fa-openid:before{content:"\f19b"}.fa-institution:before,.fa-bank:before,.fa-university:before{content:"\f19c"}.fa-mortar-board:before,.fa-graduation-cap:before{content:"\f19d"}.fa-yahoo:before{content:"\f19e"}.fa-google:before{content:"\f1a0"}.fa-reddit:before{content:"\f1a1"}.fa-reddit-square:before{content:"\f1a2"}.fa-stumbleupon-circle:before{content:"\f1a3"}.fa-stumbleupon:before{content:"\f1a4"}.fa-delicious:before{content:"\f1a5"}.fa-digg:before{content:"\f1a6"}.fa-pied-piper-pp:before{content:"\f1a7"}.fa-pied-piper-alt:before{content:"\f1a8"}.fa-drupal:before{content:"\f1a9"}.fa-joomla:before{content:"\f1aa"}.fa-language:before{content:"\f1ab"}.fa-fax:before{content:"\f1ac"}.fa-building:before{content:"\f1ad"}.fa-child:before{content:"\f1ae"}.fa-paw:before{content:"\f1b0"}.fa-spoon:before{content:"\f1b1"}.fa-cube:before{content:"\f1b2"}.fa-cubes:before{content:"\f1b3"}.fa-behance:before{content:"\f1b4"}.fa-behance-square:before{content:"\f1b5"}.fa-steam:before{content:"\f1b6"}.fa-steam-square:before{content:"\f1b7"}.fa-recycle:before{content:"\f1b8"}.fa-automobile:before,.fa-car:before{content:"\f1b9"}.fa-cab:before,.fa-taxi:before{content:"\f1ba"}.fa-tree:before{content:"\f1bb"}.fa-spotify:before{content:"\f1bc"}.fa-deviantart:before{content:"\f1bd"}.fa-soundcloud:before{content:"\f1be"}.fa-database:before{content:"\f1c0"}.fa-file-pdf-o:before{content:"\f1c1"}.fa-file-word-o:before{content:"\f1c2"}.fa-file-excel-o:before{content:"\f1c3"}.fa-file-powerpoint-o:before{content:"\f1c4"}.fa-file-photo-o:before,.fa-file-picture-o:before,.fa-file-image-o:before{content:"\f1c5"}.fa-file-zip-o:before,.fa-file-archive-o:before{content:"\f1c6"}.fa-file-sound-o:before,.fa-file-audio-o:before{content:"\f1c7"}.fa-file-movie-o:before,.fa-file-video-o:before{content:"\f1c8"}.fa-file-code-o:before{content:"\f1c9"}.fa-vine:before{content:"\f1ca"}.fa-codepen:before{content:"\f1cb"}.fa-jsfiddle:before{content:"\f1cc"}.fa-life-bouy:before,.fa-life-buoy:before,.fa-life-saver:before,.fa-support:before,.fa-life-ring:before{content:"\f1cd"}.fa-circle-o-notch:before{content:"\f1ce"}.fa-ra:before,.fa-resistance:before,.fa-rebel:before{content:"\f1d0"}.fa-ge:before,.fa-empire:before{content:"\f1d1"}.fa-git-square:before{content:"\f1d2"}.fa-git:before{content:"\f1d3"}.fa-y-combinator-square:before,.fa-yc-square:before,.fa-hacker-news:before{content:"\f1d4"}.fa-tencent-weibo:before{content:"\f1d5"}.fa-qq:before{content:"\f1d6"}.fa-wechat:before,.fa-weixin:before{content:"\f1d7"}.fa-send:before,.fa-paper-plane:before{content:"\f1d8"}.fa-send-o:before,.fa-paper-plane-o:before{content:"\f1d9"}.fa-history:before{content:"\f1da"}.fa-circle-thin:before{content:"\f1db"}.fa-header:before{content:"\f1dc"}.fa-paragraph:before{content:"\f1dd"}.fa-sliders:before{content:"\f1de"}.fa-share-alt:before{content:"\f1e0"}.fa-share-alt-square:before{content:"\f1e1"}.fa-bomb:before{content:"\f1e2"}.fa-soccer-ball-o:before,.fa-futbol-o:before{content:"\f1e3"}.fa-tty:before{content:"\f1e4"}.fa-binoculars:before{content:"\f1e5"}.fa-plug:before{content:"\f1e6"}.fa-slideshare:before{content:"\f1e7"}.fa-twitch:before{content:"\f1e8"}.fa-yelp:before{content:"\f1e9"}.fa-newspaper-o:before{content:"\f1ea"}.fa-wifi:before{content:"\f1eb"}.fa-calculator:before{content:"\f1ec"}.fa-paypal:before{content:"\f1ed"}.fa-google-wallet:before{content:"\f1ee"}.fa-cc-visa:before{content:"\f1f0"}.fa-cc-mastercard:before{content:"\f1f1"}.fa-cc-discover:before{content:"\f1f2"}.fa-cc-amex:before{content:"\f1f3"}.fa-cc-paypal:before{content:"\f1f4"}.fa-cc-stripe:before{content:"\f1f5"}.fa-bell-slash:before{content:"\f1f6"}.fa-bell-slash-o:before{content:"\f1f7"}.fa-trash:before{content:"\f1f8"}.fa-copyright:before{content:"\f1f9"}.fa-at:before{content:"\f1fa"}.fa-eyedropper:before{content:"\f1fb"}.fa-paint-brush:before{content:"\f1fc"}.fa-birthday-cake:before{content:"\f1fd"}.fa-area-chart:before{content:"\f1fe"}.fa-pie-chart:before{content:"\f200"}.fa-line-chart:before{content:"\f201"}.fa-lastfm:before{content:"\f202"}.fa-lastfm-square:before{content:"\f203"}.fa-toggle-off:before{content:"\f204"}.fa-toggle-on:before{content:"\f205"}.fa-bicycle:before{content:"\f206"}.fa-bus:before{content:"\f207"}.fa-ioxhost:before{content:"\f208"}.fa-angellist:before{content:"\f209"}.fa-cc:before{content:"\f20a"}.fa-shekel:before,.fa-sheqel:before,.fa-ils:before{content:"\f20b"}.fa-meanpath:before{content:"\f20c"}.fa-buysellads:before{content:"\f20d"}.fa-connectdevelop:before{content:"\f20e"}.fa-dashcube:before{content:"\f210"}.fa-forumbee:before{content:"\f211"}.fa-leanpub:before{content:"\f212"}.fa-sellsy:before{content:"\f213"}.fa-shirtsinbulk:before{content:"\f214"}.fa-simplybuilt:before{content:"\f215"}.fa-skyatlas:before{content:"\f216"}.fa-cart-plus:before{content:"\f217"}.fa-cart-arrow-down:before{content:"\f218"}.fa-diamond:before{content:"\f219"}.fa-ship:before{content:"\f21a"}.fa-user-secret:before{content:"\f21b"}.fa-motorcycle:before{content:"\f21c"}.fa-street-view:before{content:"\f21d"}.fa-heartbeat:before{content:"\f21e"}.fa-venus:before{content:"\f221"}.fa-mars:before{content:"\f222"}.fa-mercury:before{content:"\f223"}.fa-intersex:before,.fa-transgender:before{content:"\f224"}.fa-transgender-alt:before{content:"\f225"}.fa-venus-double:before{content:"\f226"}.fa-mars-double:before{content:"\f227"}.fa-venus-mars:before{content:"\f228"}.fa-mars-stroke:before{content:"\f229"}.fa-mars-stroke-v:before{content:"\f22a"}.fa-mars-stroke-h:before{content:"\f22b"}.fa-neuter:before{content:"\f22c"}.fa-genderless:before{content:"\f22d"}.fa-facebook-official:before{content:"\f230"}.fa-pinterest-p:before{content:"\f231"}.fa-whatsapp:before{content:"\f232"}.fa-server:before{content:"\f233"}.fa-user-plus:before{content:"\f234"}.fa-user-times:before{content:"\f235"}.fa-hotel:before,.fa-bed:before{content:"\f236"}.fa-viacoin:before{content:"\f237"}.fa-train:before{content:"\f238"}.fa-subway:before{content:"\f239"}.fa-medium:before{content:"\f23a"}.fa-yc:before,.fa-y-combinator:before{content:"\f23b"}.fa-optin-monster:before{content:"\f23c"}.fa-opencart:before{content:"\f23d"}.fa-expeditedssl:before{content:"\f23e"}.fa-battery-4:before,.fa-battery:before,.fa-battery-full:before{content:"\f240"}.fa-battery-3:before,.fa-battery-three-quarters:before{content:"\f241"}.fa-battery-2:before,.fa-battery-half:before{content:"\f242"}.fa-battery-1:before,.fa-battery-quarter:before{content:"\f243"}.fa-battery-0:before,.fa-battery-empty:before{content:"\f244"}.fa-mouse-pointer:before{content:"\f245"}.fa-i-cursor:before{content:"\f246"}.fa-object-group:before{content:"\f247"}.fa-object-ungroup:before{content:"\f248"}.fa-sticky-note:before{content:"\f249"}.fa-sticky-note-o:before{content:"\f24a"}.fa-cc-jcb:before{content:"\f24b"}.fa-cc-diners-club:before{content:"\f24c"}.fa-clone:before{content:"\f24d"}.fa-balance-scale:before{content:"\f24e"}.fa-hourglass-o:before{content:"\f250"}.fa-hourglass-1:before,.fa-hourglass-start:before{content:"\f251"}.fa-hourglass-2:before,.fa-hourglass-half:before{content:"\f252"}.fa-hourglass-3:before,.fa-hourglass-end:before{content:"\f253"}.fa-hourglass:before{content:"\f254"}.fa-hand-grab-o:before,.fa-hand-rock-o:before{content:"\f255"}.fa-hand-stop-o:before,.fa-hand-paper-o:before{content:"\f256"}.fa-hand-scissors-o:before{content:"\f257"}.fa-hand-lizard-o:before{content:"\f258"}.fa-hand-spock-o:before{content:"\f259"}.fa-hand-pointer-o:before{content:"\f25a"}.fa-hand-peace-o:before{content:"\f25b"}.fa-trademark:before{content:"\f25c"}.fa-registered:before{content:"\f25d"}.fa-creative-commons:before{content:"\f25e"}.fa-gg:before{content:"\f260"}.fa-gg-circle:before{content:"\f261"}.fa-tripadvisor:before{content:"\f262"}.fa-odnoklassniki:before{content:"\f263"}.fa-odnoklassniki-square:before{content:"\f264"}.fa-get-pocket:before{content:"\f265"}.fa-wikipedia-w:before{content:"\f266"}.fa-safari:before{content:"\f267"}.fa-chrome:before{content:"\f268"}.fa-firefox:before{content:"\f269"}.fa-opera:before{content:"\f26a"}.fa-internet-explorer:before{content:"\f26b"}.fa-tv:before,.fa-television:before{content:"\f26c"}.fa-contao:before{content:"\f26d"}.fa-500px:before{content:"\f26e"}.fa-amazon:before{content:"\f270"}.fa-calendar-plus-o:before{content:"\f271"}.fa-calendar-minus-o:before{content:"\f272"}.fa-calendar-times-o:before{content:"\f273"}.fa-calendar-check-o:before{content:"\f274"}.fa-industry:before{content:"\f275"}.fa-map-pin:before{content:"\f276"}.fa-map-signs:before{content:"\f277"}.fa-map-o:before{content:"\f278"}.fa-map:before{content:"\f279"}.fa-commenting:before{content:"\f27a"}.fa-commenting-o:before{content:"\f27b"}.fa-houzz:before{content:"\f27c"}.fa-vimeo:before{content:"\f27d"}.fa-black-tie:before{content:"\f27e"}.fa-fonticons:before{content:"\f280"}.fa-reddit-alien:before{content:"\f281"}.fa-edge:before{content:"\f282"}.fa-credit-card-alt:before{content:"\f283"}.fa-codiepie:before{content:"\f284"}.fa-modx:before{content:"\f285"}.fa-fort-awesome:before{content:"\f286"}.fa-usb:before{content:"\f287"}.fa-product-hunt:before{content:"\f288"}.fa-mixcloud:before{content:"\f289"}.fa-scribd:before{content:"\f28a"}.fa-pause-circle:before{content:"\f28b"}.fa-pause-circle-o:before{content:"\f28c"}.fa-stop-circle:before{content:"\f28d"}.fa-stop-circle-o:before{content:"\f28e"}.fa-shopping-bag:before{content:"\f290"}.fa-shopping-basket:before{content:"\f291"}.fa-hashtag:before{content:"\f292"}.fa-bluetooth:before{content:"\f293"}.fa-bluetooth-b:before{content:"\f294"}.fa-percent:before{content:"\f295"}.fa-gitlab:before{content:"\f296"}.fa-wpbeginner:before{content:"\f297"}.fa-wpforms:before{content:"\f298"}.fa-envira:before{content:"\f299"}.fa-universal-access:before{content:"\f29a"}.fa-wheelchair-alt:before{content:"\f29b"}.fa-question-circle-o:before{content:"\f29c"}.fa-blind:before{content:"\f29d"}.fa-audio-description:before{content:"\f29e"}.fa-volume-control-phone:before{content:"\f2a0"}.fa-braille:before{content:"\f2a1"}.fa-assistive-listening-systems:before{content:"\f2a2"}.fa-asl-interpreting:before,.fa-american-sign-language-interpreting:before{content:"\f2a3"}.fa-deafness:before,.fa-hard-of-hearing:before,.fa-deaf:before{content:"\f2a4"}.fa-glide:before{content:"\f2a5"}.fa-glide-g:before{content:"\f2a6"}.fa-signing:before,.fa-sign-language:before{content:"\f2a7"}.fa-low-vision:before{content:"\f2a8"}.fa-viadeo:before{content:"\f2a9"}.fa-viadeo-square:before{content:"\f2aa"}.fa-snapchat:before{content:"\f2ab"}.fa-snapchat-ghost:before{content:"\f2ac"}.fa-snapchat-square:before{content:"\f2ad"}.fa-pied-piper:before{content:"\f2ae"}.fa-first-order:before{content:"\f2b0"}.fa-yoast:before{content:"\f2b1"}.fa-themeisle:before{content:"\f2b2"}.fa-google-plus-circle:before,.fa-google-plus-official:before{content:"\f2b3"}.fa-fa:before,.fa-font-awesome:before{content:"\f2b4"}.fa-handshake-o:before{content:"\f2b5"}.fa-envelope-open:before{content:"\f2b6"}.fa-envelope-open-o:before{content:"\f2b7"}.fa-linode:before{content:"\f2b8"}.fa-address-book:before{content:"\f2b9"}.fa-address-book-o:before{content:"\f2ba"}.fa-vcard:before,.fa-address-card:before{content:"\f2bb"}.fa-vcard-o:before,.fa-address-card-o:before{content:"\f2bc"}.fa-user-circle:before{content:"\f2bd"}.fa-user-circle-o:before{content:"\f2be"}.fa-user-o:before{content:"\f2c0"}.fa-id-badge:before{content:"\f2c1"}.fa-drivers-license:before,.fa-id-card:before{content:"\f2c2"}.fa-drivers-license-o:before,.fa-id-card-o:before{content:"\f2c3"}.fa-quora:before{content:"\f2c4"}.fa-free-code-camp:before{content:"\f2c5"}.fa-telegram:before{content:"\f2c6"}.fa-thermometer-4:before,.fa-thermometer:before,.fa-thermometer-full:before{content:"\f2c7"}.fa-thermometer-3:before,.fa-thermometer-three-quarters:before{content:"\f2c8"}.fa-thermometer-2:before,.fa-thermometer-half:before{content:"\f2c9"}.fa-thermometer-1:before,.fa-thermometer-quarter:before{content:"\f2ca"}.fa-thermometer-0:before,.fa-thermometer-empty:before{content:"\f2cb"}.fa-shower:before{content:"\f2cc"}.fa-bathtub:before,.fa-s15:before,.fa-bath:before{content:"\f2cd"}.fa-podcast:before{content:"\f2ce"}.fa-window-maximize:before{content:"\f2d0"}.fa-window-minimize:before{content:"\f2d1"}.fa-window-restore:before{content:"\f2d2"}.fa-times-rectangle:before,.fa-window-close:before{content:"\f2d3"}.fa-times-rectangle-o:before,.fa-window-close-o:before{content:"\f2d4"}.fa-bandcamp:before{content:"\f2d5"}.fa-grav:before{content:"\f2d6"}.fa-etsy:before{content:"\f2d7"}.fa-imdb:before{content:"\f2d8"}.fa-ravelry:before{content:"\f2d9"}.fa-eercast:before{content:"\f2da"}.fa-microchip:before{content:"\f2db"}.fa-snowflake-o:before{content:"\f2dc"}.fa-superpowers:before{content:"\f2dd"}.fa-wpexplorer:before{content:"\f2de"}.fa-meetup:before{content:"\f2e0"}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0, 0, 0, 0);border:0}.sr-only-focusable:active,.sr-only-focusable:focus{position:static;width:auto;height:auto;margin:0;overflow:visible;clip:auto} diff --git a/admin/bower_components/font-awesome/fonts/FontAwesome.otf b/admin/bower_components/font-awesome/fonts/FontAwesome.otf deleted file mode 100644 index 401ec0f..0000000 Binary files a/admin/bower_components/font-awesome/fonts/FontAwesome.otf and /dev/null differ diff --git a/admin/bower_components/font-awesome/fonts/fontawesome-webfont.eot b/admin/bower_components/font-awesome/fonts/fontawesome-webfont.eot deleted file mode 100644 index e9f60ca..0000000 Binary files a/admin/bower_components/font-awesome/fonts/fontawesome-webfont.eot and /dev/null differ diff --git a/admin/bower_components/font-awesome/fonts/fontawesome-webfont.svg b/admin/bower_components/font-awesome/fonts/fontawesome-webfont.svg deleted file mode 100644 index 855c845..0000000 --- a/admin/bower_components/font-awesome/fonts/fontawesome-webfont.svg +++ /dev/null @@ -1,2671 +0,0 @@ -<?xml version="1.0" standalone="no"?> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" > -<svg> -<metadata> -Created by FontForge 20120731 at Mon Oct 24 17:37:40 2016 - By ,,, -Copyright Dave Gandy 2016. All rights reserved. -</metadata> -<defs> -<font id="FontAwesome" horiz-adv-x="1536" > - <font-face - font-family="FontAwesome" - font-weight="400" - font-stretch="normal" - units-per-em="1792" - panose-1="0 0 0 0 0 0 0 0 0 0" - ascent="1536" - descent="-256" - bbox="-1.02083 -256.962 2304.6 1537.02" - underline-thickness="0" - underline-position="0" - unicode-range="U+0020-F500" - /> -<missing-glyph horiz-adv-x="896" -d="M224 112h448v1312h-448v-1312zM112 0v1536h672v-1536h-672z" /> - <glyph glyph-name=".notdef" horiz-adv-x="896" -d="M224 112h448v1312h-448v-1312zM112 0v1536h672v-1536h-672z" /> - <glyph glyph-name=".null" horiz-adv-x="0" - /> - <glyph glyph-name="nonmarkingreturn" horiz-adv-x="597" - /> - <glyph glyph-name="space" unicode=" " horiz-adv-x="448" - /> - <glyph glyph-name="dieresis" unicode="&#xa8;" horiz-adv-x="1792" - /> - <glyph glyph-name="copyright" unicode="&#xa9;" horiz-adv-x="1792" - /> - <glyph glyph-name="registered" unicode="&#xae;" horiz-adv-x="1792" - /> - <glyph glyph-name="acute" unicode="&#xb4;" horiz-adv-x="1792" - /> - <glyph glyph-name="AE" unicode="&#xc6;" horiz-adv-x="1792" - /> - <glyph glyph-name="Oslash" unicode="&#xd8;" horiz-adv-x="1792" - /> - <glyph glyph-name="trademark" unicode="&#x2122;" horiz-adv-x="1792" - /> - <glyph glyph-name="infinity" unicode="&#x221e;" horiz-adv-x="1792" - /> - <glyph glyph-name="notequal" unicode="&#x2260;" horiz-adv-x="1792" - /> - <glyph glyph-name="glass" unicode="&#xf000;" horiz-adv-x="1792" -d="M1699 1350q0 -35 -43 -78l-632 -632v-768h320q26 0 45 -19t19 -45t-19 -45t-45 -19h-896q-26 0 -45 19t-19 45t19 45t45 19h320v768l-632 632q-43 43 -43 78q0 23 18 36.5t38 17.5t43 4h1408q23 0 43 -4t38 -17.5t18 -36.5z" /> - <glyph glyph-name="music" unicode="&#xf001;" -d="M1536 1312v-1120q0 -50 -34 -89t-86 -60.5t-103.5 -32t-96.5 -10.5t-96.5 10.5t-103.5 32t-86 60.5t-34 89t34 89t86 60.5t103.5 32t96.5 10.5q105 0 192 -39v537l-768 -237v-709q0 -50 -34 -89t-86 -60.5t-103.5 -32t-96.5 -10.5t-96.5 10.5t-103.5 32t-86 60.5t-34 89 -t34 89t86 60.5t103.5 32t96.5 10.5q105 0 192 -39v967q0 31 19 56.5t49 35.5l832 256q12 4 28 4q40 0 68 -28t28 -68z" /> - <glyph glyph-name="search" unicode="&#xf002;" horiz-adv-x="1664" -d="M1152 704q0 185 -131.5 316.5t-316.5 131.5t-316.5 -131.5t-131.5 -316.5t131.5 -316.5t316.5 -131.5t316.5 131.5t131.5 316.5zM1664 -128q0 -52 -38 -90t-90 -38q-54 0 -90 38l-343 342q-179 -124 -399 -124q-143 0 -273.5 55.5t-225 150t-150 225t-55.5 273.5 -t55.5 273.5t150 225t225 150t273.5 55.5t273.5 -55.5t225 -150t150 -225t55.5 -273.5q0 -220 -124 -399l343 -343q37 -37 37 -90z" /> - <glyph glyph-name="envelope" unicode="&#xf003;" horiz-adv-x="1792" -d="M1664 32v768q-32 -36 -69 -66q-268 -206 -426 -338q-51 -43 -83 -67t-86.5 -48.5t-102.5 -24.5h-1h-1q-48 0 -102.5 24.5t-86.5 48.5t-83 67q-158 132 -426 338q-37 30 -69 66v-768q0 -13 9.5 -22.5t22.5 -9.5h1472q13 0 22.5 9.5t9.5 22.5zM1664 1083v11v13.5t-0.5 13 -t-3 12.5t-5.5 9t-9 7.5t-14 2.5h-1472q-13 0 -22.5 -9.5t-9.5 -22.5q0 -168 147 -284q193 -152 401 -317q6 -5 35 -29.5t46 -37.5t44.5 -31.5t50.5 -27.5t43 -9h1h1q20 0 43 9t50.5 27.5t44.5 31.5t46 37.5t35 29.5q208 165 401 317q54 43 100.5 115.5t46.5 131.5z -M1792 1120v-1088q0 -66 -47 -113t-113 -47h-1472q-66 0 -113 47t-47 113v1088q0 66 47 113t113 47h1472q66 0 113 -47t47 -113z" /> - <glyph glyph-name="heart" unicode="&#xf004;" horiz-adv-x="1792" -d="M896 -128q-26 0 -44 18l-624 602q-10 8 -27.5 26t-55.5 65.5t-68 97.5t-53.5 121t-23.5 138q0 220 127 344t351 124q62 0 126.5 -21.5t120 -58t95.5 -68.5t76 -68q36 36 76 68t95.5 68.5t120 58t126.5 21.5q224 0 351 -124t127 -344q0 -221 -229 -450l-623 -600 -q-18 -18 -44 -18z" /> - <glyph glyph-name="star" unicode="&#xf005;" horiz-adv-x="1664" -d="M1664 889q0 -22 -26 -48l-363 -354l86 -500q1 -7 1 -20q0 -21 -10.5 -35.5t-30.5 -14.5q-19 0 -40 12l-449 236l-449 -236q-22 -12 -40 -12q-21 0 -31.5 14.5t-10.5 35.5q0 6 2 20l86 500l-364 354q-25 27 -25 48q0 37 56 46l502 73l225 455q19 41 49 41t49 -41l225 -455 -l502 -73q56 -9 56 -46z" /> - <glyph glyph-name="star_empty" unicode="&#xf006;" horiz-adv-x="1664" -d="M1137 532l306 297l-422 62l-189 382l-189 -382l-422 -62l306 -297l-73 -421l378 199l377 -199zM1664 889q0 -22 -26 -48l-363 -354l86 -500q1 -7 1 -20q0 -50 -41 -50q-19 0 -40 12l-449 236l-449 -236q-22 -12 -40 -12q-21 0 -31.5 14.5t-10.5 35.5q0 6 2 20l86 500 -l-364 354q-25 27 -25 48q0 37 56 46l502 73l225 455q19 41 49 41t49 -41l225 -455l502 -73q56 -9 56 -46z" /> - <glyph glyph-name="user" unicode="&#xf007;" horiz-adv-x="1280" -d="M1280 137q0 -109 -62.5 -187t-150.5 -78h-854q-88 0 -150.5 78t-62.5 187q0 85 8.5 160.5t31.5 152t58.5 131t94 89t134.5 34.5q131 -128 313 -128t313 128q76 0 134.5 -34.5t94 -89t58.5 -131t31.5 -152t8.5 -160.5zM1024 1024q0 -159 -112.5 -271.5t-271.5 -112.5 -t-271.5 112.5t-112.5 271.5t112.5 271.5t271.5 112.5t271.5 -112.5t112.5 -271.5z" /> - <glyph glyph-name="film" unicode="&#xf008;" horiz-adv-x="1920" -d="M384 -64v128q0 26 -19 45t-45 19h-128q-26 0 -45 -19t-19 -45v-128q0 -26 19 -45t45 -19h128q26 0 45 19t19 45zM384 320v128q0 26 -19 45t-45 19h-128q-26 0 -45 -19t-19 -45v-128q0 -26 19 -45t45 -19h128q26 0 45 19t19 45zM384 704v128q0 26 -19 45t-45 19h-128 -q-26 0 -45 -19t-19 -45v-128q0 -26 19 -45t45 -19h128q26 0 45 19t19 45zM1408 -64v512q0 26 -19 45t-45 19h-768q-26 0 -45 -19t-19 -45v-512q0 -26 19 -45t45 -19h768q26 0 45 19t19 45zM384 1088v128q0 26 -19 45t-45 19h-128q-26 0 -45 -19t-19 -45v-128q0 -26 19 -45 -t45 -19h128q26 0 45 19t19 45zM1792 -64v128q0 26 -19 45t-45 19h-128q-26 0 -45 -19t-19 -45v-128q0 -26 19 -45t45 -19h128q26 0 45 19t19 45zM1408 704v512q0 26 -19 45t-45 19h-768q-26 0 -45 -19t-19 -45v-512q0 -26 19 -45t45 -19h768q26 0 45 19t19 45zM1792 320v128 -q0 26 -19 45t-45 19h-128q-26 0 -45 -19t-19 -45v-128q0 -26 19 -45t45 -19h128q26 0 45 19t19 45zM1792 704v128q0 26 -19 45t-45 19h-128q-26 0 -45 -19t-19 -45v-128q0 -26 19 -45t45 -19h128q26 0 45 19t19 45zM1792 1088v128q0 26 -19 45t-45 19h-128q-26 0 -45 -19 -t-19 -45v-128q0 -26 19 -45t45 -19h128q26 0 45 19t19 45zM1920 1248v-1344q0 -66 -47 -113t-113 -47h-1600q-66 0 -113 47t-47 113v1344q0 66 47 113t113 47h1600q66 0 113 -47t47 -113z" /> - <glyph glyph-name="th_large" unicode="&#xf009;" horiz-adv-x="1664" -d="M768 512v-384q0 -52 -38 -90t-90 -38h-512q-52 0 -90 38t-38 90v384q0 52 38 90t90 38h512q52 0 90 -38t38 -90zM768 1280v-384q0 -52 -38 -90t-90 -38h-512q-52 0 -90 38t-38 90v384q0 52 38 90t90 38h512q52 0 90 -38t38 -90zM1664 512v-384q0 -52 -38 -90t-90 -38 -h-512q-52 0 -90 38t-38 90v384q0 52 38 90t90 38h512q52 0 90 -38t38 -90zM1664 1280v-384q0 -52 -38 -90t-90 -38h-512q-52 0 -90 38t-38 90v384q0 52 38 90t90 38h512q52 0 90 -38t38 -90z" /> - <glyph glyph-name="th" unicode="&#xf00a;" horiz-adv-x="1792" -d="M512 288v-192q0 -40 -28 -68t-68 -28h-320q-40 0 -68 28t-28 68v192q0 40 28 68t68 28h320q40 0 68 -28t28 -68zM512 800v-192q0 -40 -28 -68t-68 -28h-320q-40 0 -68 28t-28 68v192q0 40 28 68t68 28h320q40 0 68 -28t28 -68zM1152 288v-192q0 -40 -28 -68t-68 -28h-320 -q-40 0 -68 28t-28 68v192q0 40 28 68t68 28h320q40 0 68 -28t28 -68zM512 1312v-192q0 -40 -28 -68t-68 -28h-320q-40 0 -68 28t-28 68v192q0 40 28 68t68 28h320q40 0 68 -28t28 -68zM1152 800v-192q0 -40 -28 -68t-68 -28h-320q-40 0 -68 28t-28 68v192q0 40 28 68t68 28 -h320q40 0 68 -28t28 -68zM1792 288v-192q0 -40 -28 -68t-68 -28h-320q-40 0 -68 28t-28 68v192q0 40 28 68t68 28h320q40 0 68 -28t28 -68zM1152 1312v-192q0 -40 -28 -68t-68 -28h-320q-40 0 -68 28t-28 68v192q0 40 28 68t68 28h320q40 0 68 -28t28 -68zM1792 800v-192 -q0 -40 -28 -68t-68 -28h-320q-40 0 -68 28t-28 68v192q0 40 28 68t68 28h320q40 0 68 -28t28 -68zM1792 1312v-192q0 -40 -28 -68t-68 -28h-320q-40 0 -68 28t-28 68v192q0 40 28 68t68 28h320q40 0 68 -28t28 -68z" /> - <glyph glyph-name="th_list" unicode="&#xf00b;" horiz-adv-x="1792" -d="M512 288v-192q0 -40 -28 -68t-68 -28h-320q-40 0 -68 28t-28 68v192q0 40 28 68t68 28h320q40 0 68 -28t28 -68zM512 800v-192q0 -40 -28 -68t-68 -28h-320q-40 0 -68 28t-28 68v192q0 40 28 68t68 28h320q40 0 68 -28t28 -68zM1792 288v-192q0 -40 -28 -68t-68 -28h-960 -q-40 0 -68 28t-28 68v192q0 40 28 68t68 28h960q40 0 68 -28t28 -68zM512 1312v-192q0 -40 -28 -68t-68 -28h-320q-40 0 -68 28t-28 68v192q0 40 28 68t68 28h320q40 0 68 -28t28 -68zM1792 800v-192q0 -40 -28 -68t-68 -28h-960q-40 0 -68 28t-28 68v192q0 40 28 68t68 28 -h960q40 0 68 -28t28 -68zM1792 1312v-192q0 -40 -28 -68t-68 -28h-960q-40 0 -68 28t-28 68v192q0 40 28 68t68 28h960q40 0 68 -28t28 -68z" /> - <glyph glyph-name="ok" unicode="&#xf00c;" horiz-adv-x="1792" -d="M1671 970q0 -40 -28 -68l-724 -724l-136 -136q-28 -28 -68 -28t-68 28l-136 136l-362 362q-28 28 -28 68t28 68l136 136q28 28 68 28t68 -28l294 -295l656 657q28 28 68 28t68 -28l136 -136q28 -28 28 -68z" /> - <glyph glyph-name="remove" unicode="&#xf00d;" horiz-adv-x="1408" -d="M1298 214q0 -40 -28 -68l-136 -136q-28 -28 -68 -28t-68 28l-294 294l-294 -294q-28 -28 -68 -28t-68 28l-136 136q-28 28 -28 68t28 68l294 294l-294 294q-28 28 -28 68t28 68l136 136q28 28 68 28t68 -28l294 -294l294 294q28 28 68 28t68 -28l136 -136q28 -28 28 -68 -t-28 -68l-294 -294l294 -294q28 -28 28 -68z" /> - <glyph glyph-name="zoom_in" unicode="&#xf00e;" horiz-adv-x="1664" -d="M1024 736v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-224v-224q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v224h-224q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h224v224q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5v-224h224 -q13 0 22.5 -9.5t9.5 -22.5zM1152 704q0 185 -131.5 316.5t-316.5 131.5t-316.5 -131.5t-131.5 -316.5t131.5 -316.5t316.5 -131.5t316.5 131.5t131.5 316.5zM1664 -128q0 -53 -37.5 -90.5t-90.5 -37.5q-54 0 -90 38l-343 342q-179 -124 -399 -124q-143 0 -273.5 55.5 -t-225 150t-150 225t-55.5 273.5t55.5 273.5t150 225t225 150t273.5 55.5t273.5 -55.5t225 -150t150 -225t55.5 -273.5q0 -220 -124 -399l343 -343q37 -37 37 -90z" /> - <glyph glyph-name="zoom_out" unicode="&#xf010;" horiz-adv-x="1664" -d="M1024 736v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-576q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h576q13 0 22.5 -9.5t9.5 -22.5zM1152 704q0 185 -131.5 316.5t-316.5 131.5t-316.5 -131.5t-131.5 -316.5t131.5 -316.5t316.5 -131.5t316.5 131.5t131.5 316.5z -M1664 -128q0 -53 -37.5 -90.5t-90.5 -37.5q-54 0 -90 38l-343 342q-179 -124 -399 -124q-143 0 -273.5 55.5t-225 150t-150 225t-55.5 273.5t55.5 273.5t150 225t225 150t273.5 55.5t273.5 -55.5t225 -150t150 -225t55.5 -273.5q0 -220 -124 -399l343 -343q37 -37 37 -90z -" /> - <glyph glyph-name="off" unicode="&#xf011;" -d="M1536 640q0 -156 -61 -298t-164 -245t-245 -164t-298 -61t-298 61t-245 164t-164 245t-61 298q0 182 80.5 343t226.5 270q43 32 95.5 25t83.5 -50q32 -42 24.5 -94.5t-49.5 -84.5q-98 -74 -151.5 -181t-53.5 -228q0 -104 40.5 -198.5t109.5 -163.5t163.5 -109.5 -t198.5 -40.5t198.5 40.5t163.5 109.5t109.5 163.5t40.5 198.5q0 121 -53.5 228t-151.5 181q-42 32 -49.5 84.5t24.5 94.5q31 43 84 50t95 -25q146 -109 226.5 -270t80.5 -343zM896 1408v-640q0 -52 -38 -90t-90 -38t-90 38t-38 90v640q0 52 38 90t90 38t90 -38t38 -90z" /> - <glyph glyph-name="signal" unicode="&#xf012;" horiz-adv-x="1792" -d="M256 96v-192q0 -14 -9 -23t-23 -9h-192q-14 0 -23 9t-9 23v192q0 14 9 23t23 9h192q14 0 23 -9t9 -23zM640 224v-320q0 -14 -9 -23t-23 -9h-192q-14 0 -23 9t-9 23v320q0 14 9 23t23 9h192q14 0 23 -9t9 -23zM1024 480v-576q0 -14 -9 -23t-23 -9h-192q-14 0 -23 9t-9 23 -v576q0 14 9 23t23 9h192q14 0 23 -9t9 -23zM1408 864v-960q0 -14 -9 -23t-23 -9h-192q-14 0 -23 9t-9 23v960q0 14 9 23t23 9h192q14 0 23 -9t9 -23zM1792 1376v-1472q0 -14 -9 -23t-23 -9h-192q-14 0 -23 9t-9 23v1472q0 14 9 23t23 9h192q14 0 23 -9t9 -23z" /> - <glyph glyph-name="cog" unicode="&#xf013;" -d="M1024 640q0 106 -75 181t-181 75t-181 -75t-75 -181t75 -181t181 -75t181 75t75 181zM1536 749v-222q0 -12 -8 -23t-20 -13l-185 -28q-19 -54 -39 -91q35 -50 107 -138q10 -12 10 -25t-9 -23q-27 -37 -99 -108t-94 -71q-12 0 -26 9l-138 108q-44 -23 -91 -38 -q-16 -136 -29 -186q-7 -28 -36 -28h-222q-14 0 -24.5 8.5t-11.5 21.5l-28 184q-49 16 -90 37l-141 -107q-10 -9 -25 -9q-14 0 -25 11q-126 114 -165 168q-7 10 -7 23q0 12 8 23q15 21 51 66.5t54 70.5q-27 50 -41 99l-183 27q-13 2 -21 12.5t-8 23.5v222q0 12 8 23t19 13 -l186 28q14 46 39 92q-40 57 -107 138q-10 12 -10 24q0 10 9 23q26 36 98.5 107.5t94.5 71.5q13 0 26 -10l138 -107q44 23 91 38q16 136 29 186q7 28 36 28h222q14 0 24.5 -8.5t11.5 -21.5l28 -184q49 -16 90 -37l142 107q9 9 24 9q13 0 25 -10q129 -119 165 -170q7 -8 7 -22 -q0 -12 -8 -23q-15 -21 -51 -66.5t-54 -70.5q26 -50 41 -98l183 -28q13 -2 21 -12.5t8 -23.5z" /> - <glyph glyph-name="trash" unicode="&#xf014;" horiz-adv-x="1408" -d="M512 800v-576q0 -14 -9 -23t-23 -9h-64q-14 0 -23 9t-9 23v576q0 14 9 23t23 9h64q14 0 23 -9t9 -23zM768 800v-576q0 -14 -9 -23t-23 -9h-64q-14 0 -23 9t-9 23v576q0 14 9 23t23 9h64q14 0 23 -9t9 -23zM1024 800v-576q0 -14 -9 -23t-23 -9h-64q-14 0 -23 9t-9 23v576 -q0 14 9 23t23 9h64q14 0 23 -9t9 -23zM1152 76v948h-896v-948q0 -22 7 -40.5t14.5 -27t10.5 -8.5h832q3 0 10.5 8.5t14.5 27t7 40.5zM480 1152h448l-48 117q-7 9 -17 11h-317q-10 -2 -17 -11zM1408 1120v-64q0 -14 -9 -23t-23 -9h-96v-948q0 -83 -47 -143.5t-113 -60.5h-832 -q-66 0 -113 58.5t-47 141.5v952h-96q-14 0 -23 9t-9 23v64q0 14 9 23t23 9h309l70 167q15 37 54 63t79 26h320q40 0 79 -26t54 -63l70 -167h309q14 0 23 -9t9 -23z" /> - <glyph glyph-name="home" unicode="&#xf015;" horiz-adv-x="1664" -d="M1408 544v-480q0 -26 -19 -45t-45 -19h-384v384h-256v-384h-384q-26 0 -45 19t-19 45v480q0 1 0.5 3t0.5 3l575 474l575 -474q1 -2 1 -6zM1631 613l-62 -74q-8 -9 -21 -11h-3q-13 0 -21 7l-692 577l-692 -577q-12 -8 -24 -7q-13 2 -21 11l-62 74q-8 10 -7 23.5t11 21.5 -l719 599q32 26 76 26t76 -26l244 -204v195q0 14 9 23t23 9h192q14 0 23 -9t9 -23v-408l219 -182q10 -8 11 -21.5t-7 -23.5z" /> - <glyph glyph-name="file_alt" unicode="&#xf016;" -d="M1468 1156q28 -28 48 -76t20 -88v-1152q0 -40 -28 -68t-68 -28h-1344q-40 0 -68 28t-28 68v1600q0 40 28 68t68 28h896q40 0 88 -20t76 -48zM1024 1400v-376h376q-10 29 -22 41l-313 313q-12 12 -41 22zM1408 -128v1024h-416q-40 0 -68 28t-28 68v416h-768v-1536h1280z -" /> - <glyph glyph-name="time" unicode="&#xf017;" -d="M896 992v-448q0 -14 -9 -23t-23 -9h-320q-14 0 -23 9t-9 23v64q0 14 9 23t23 9h224v352q0 14 9 23t23 9h64q14 0 23 -9t9 -23zM1312 640q0 148 -73 273t-198 198t-273 73t-273 -73t-198 -198t-73 -273t73 -273t198 -198t273 -73t273 73t198 198t73 273zM1536 640 -q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" /> - <glyph glyph-name="road" unicode="&#xf018;" horiz-adv-x="1920" -d="M1111 540v4l-24 320q-1 13 -11 22.5t-23 9.5h-186q-13 0 -23 -9.5t-11 -22.5l-24 -320v-4q-1 -12 8 -20t21 -8h244q12 0 21 8t8 20zM1870 73q0 -73 -46 -73h-704q13 0 22 9.5t8 22.5l-20 256q-1 13 -11 22.5t-23 9.5h-272q-13 0 -23 -9.5t-11 -22.5l-20 -256 -q-1 -13 8 -22.5t22 -9.5h-704q-46 0 -46 73q0 54 26 116l417 1044q8 19 26 33t38 14h339q-13 0 -23 -9.5t-11 -22.5l-15 -192q-1 -14 8 -23t22 -9h166q13 0 22 9t8 23l-15 192q-1 13 -11 22.5t-23 9.5h339q20 0 38 -14t26 -33l417 -1044q26 -62 26 -116z" /> - <glyph glyph-name="download_alt" unicode="&#xf019;" horiz-adv-x="1664" -d="M1280 192q0 26 -19 45t-45 19t-45 -19t-19 -45t19 -45t45 -19t45 19t19 45zM1536 192q0 26 -19 45t-45 19t-45 -19t-19 -45t19 -45t45 -19t45 19t19 45zM1664 416v-320q0 -40 -28 -68t-68 -28h-1472q-40 0 -68 28t-28 68v320q0 40 28 68t68 28h465l135 -136 -q58 -56 136 -56t136 56l136 136h464q40 0 68 -28t28 -68zM1339 985q17 -41 -14 -70l-448 -448q-18 -19 -45 -19t-45 19l-448 448q-31 29 -14 70q17 39 59 39h256v448q0 26 19 45t45 19h256q26 0 45 -19t19 -45v-448h256q42 0 59 -39z" /> - <glyph glyph-name="download" unicode="&#xf01a;" -d="M1120 608q0 -12 -10 -24l-319 -319q-11 -9 -23 -9t-23 9l-320 320q-15 16 -7 35q8 20 30 20h192v352q0 14 9 23t23 9h192q14 0 23 -9t9 -23v-352h192q14 0 23 -9t9 -23zM768 1184q-148 0 -273 -73t-198 -198t-73 -273t73 -273t198 -198t273 -73t273 73t198 198t73 273 -t-73 273t-198 198t-273 73zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" /> - <glyph glyph-name="upload" unicode="&#xf01b;" -d="M1118 660q-8 -20 -30 -20h-192v-352q0 -14 -9 -23t-23 -9h-192q-14 0 -23 9t-9 23v352h-192q-14 0 -23 9t-9 23q0 12 10 24l319 319q11 9 23 9t23 -9l320 -320q15 -16 7 -35zM768 1184q-148 0 -273 -73t-198 -198t-73 -273t73 -273t198 -198t273 -73t273 73t198 198 -t73 273t-73 273t-198 198t-273 73zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" /> - <glyph glyph-name="inbox" unicode="&#xf01c;" -d="M1023 576h316q-1 3 -2.5 8.5t-2.5 7.5l-212 496h-708l-212 -496q-1 -3 -2.5 -8.5t-2.5 -7.5h316l95 -192h320zM1536 546v-482q0 -26 -19 -45t-45 -19h-1408q-26 0 -45 19t-19 45v482q0 62 25 123l238 552q10 25 36.5 42t52.5 17h832q26 0 52.5 -17t36.5 -42l238 -552 -q25 -61 25 -123z" /> - <glyph glyph-name="play_circle" unicode="&#xf01d;" -d="M1184 640q0 -37 -32 -55l-544 -320q-15 -9 -32 -9q-16 0 -32 8q-32 19 -32 56v640q0 37 32 56q33 18 64 -1l544 -320q32 -18 32 -55zM1312 640q0 148 -73 273t-198 198t-273 73t-273 -73t-198 -198t-73 -273t73 -273t198 -198t273 -73t273 73t198 198t73 273zM1536 640 -q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" /> - <glyph glyph-name="repeat" unicode="&#xf01e;" -d="M1536 1280v-448q0 -26 -19 -45t-45 -19h-448q-42 0 -59 40q-17 39 14 69l138 138q-148 137 -349 137q-104 0 -198.5 -40.5t-163.5 -109.5t-109.5 -163.5t-40.5 -198.5t40.5 -198.5t109.5 -163.5t163.5 -109.5t198.5 -40.5q119 0 225 52t179 147q7 10 23 12q15 0 25 -9 -l137 -138q9 -8 9.5 -20.5t-7.5 -22.5q-109 -132 -264 -204.5t-327 -72.5q-156 0 -298 61t-245 164t-164 245t-61 298t61 298t164 245t245 164t298 61q147 0 284.5 -55.5t244.5 -156.5l130 129q29 31 70 14q39 -17 39 -59z" /> - <glyph glyph-name="refresh" unicode="&#xf021;" -d="M1511 480q0 -5 -1 -7q-64 -268 -268 -434.5t-478 -166.5q-146 0 -282.5 55t-243.5 157l-129 -129q-19 -19 -45 -19t-45 19t-19 45v448q0 26 19 45t45 19h448q26 0 45 -19t19 -45t-19 -45l-137 -137q71 -66 161 -102t187 -36q134 0 250 65t186 179q11 17 53 117 -q8 23 30 23h192q13 0 22.5 -9.5t9.5 -22.5zM1536 1280v-448q0 -26 -19 -45t-45 -19h-448q-26 0 -45 19t-19 45t19 45l138 138q-148 137 -349 137q-134 0 -250 -65t-186 -179q-11 -17 -53 -117q-8 -23 -30 -23h-199q-13 0 -22.5 9.5t-9.5 22.5v7q65 268 270 434.5t480 166.5 -q146 0 284 -55.5t245 -156.5l130 129q19 19 45 19t45 -19t19 -45z" /> - <glyph glyph-name="list_alt" unicode="&#xf022;" horiz-adv-x="1792" -d="M384 352v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5zM384 608v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5z -M384 864v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5zM1536 352v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-960q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h960q13 0 22.5 -9.5t9.5 -22.5z -M1536 608v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-960q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h960q13 0 22.5 -9.5t9.5 -22.5zM1536 864v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-960q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h960q13 0 22.5 -9.5 -t9.5 -22.5zM1664 160v832q0 13 -9.5 22.5t-22.5 9.5h-1472q-13 0 -22.5 -9.5t-9.5 -22.5v-832q0 -13 9.5 -22.5t22.5 -9.5h1472q13 0 22.5 9.5t9.5 22.5zM1792 1248v-1088q0 -66 -47 -113t-113 -47h-1472q-66 0 -113 47t-47 113v1088q0 66 47 113t113 47h1472q66 0 113 -47 -t47 -113z" /> - <glyph glyph-name="lock" unicode="&#xf023;" horiz-adv-x="1152" -d="M320 768h512v192q0 106 -75 181t-181 75t-181 -75t-75 -181v-192zM1152 672v-576q0 -40 -28 -68t-68 -28h-960q-40 0 -68 28t-28 68v576q0 40 28 68t68 28h32v192q0 184 132 316t316 132t316 -132t132 -316v-192h32q40 0 68 -28t28 -68z" /> - <glyph glyph-name="flag" unicode="&#xf024;" horiz-adv-x="1792" -d="M320 1280q0 -72 -64 -110v-1266q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v1266q-64 38 -64 110q0 53 37.5 90.5t90.5 37.5t90.5 -37.5t37.5 -90.5zM1792 1216v-763q0 -25 -12.5 -38.5t-39.5 -27.5q-215 -116 -369 -116q-61 0 -123.5 22t-108.5 48 -t-115.5 48t-142.5 22q-192 0 -464 -146q-17 -9 -33 -9q-26 0 -45 19t-19 45v742q0 32 31 55q21 14 79 43q236 120 421 120q107 0 200 -29t219 -88q38 -19 88 -19q54 0 117.5 21t110 47t88 47t54.5 21q26 0 45 -19t19 -45z" /> - <glyph glyph-name="headphones" unicode="&#xf025;" horiz-adv-x="1664" -d="M1664 650q0 -166 -60 -314l-20 -49l-185 -33q-22 -83 -90.5 -136.5t-156.5 -53.5v-32q0 -14 -9 -23t-23 -9h-64q-14 0 -23 9t-9 23v576q0 14 9 23t23 9h64q14 0 23 -9t9 -23v-32q71 0 130 -35.5t93 -95.5l68 12q29 95 29 193q0 148 -88 279t-236.5 209t-315.5 78 -t-315.5 -78t-236.5 -209t-88 -279q0 -98 29 -193l68 -12q34 60 93 95.5t130 35.5v32q0 14 9 23t23 9h64q14 0 23 -9t9 -23v-576q0 -14 -9 -23t-23 -9h-64q-14 0 -23 9t-9 23v32q-88 0 -156.5 53.5t-90.5 136.5l-185 33l-20 49q-60 148 -60 314q0 151 67 291t179 242.5 -t266 163.5t320 61t320 -61t266 -163.5t179 -242.5t67 -291z" /> - <glyph glyph-name="volume_off" unicode="&#xf026;" horiz-adv-x="768" -d="M768 1184v-1088q0 -26 -19 -45t-45 -19t-45 19l-333 333h-262q-26 0 -45 19t-19 45v384q0 26 19 45t45 19h262l333 333q19 19 45 19t45 -19t19 -45z" /> - <glyph glyph-name="volume_down" unicode="&#xf027;" horiz-adv-x="1152" -d="M768 1184v-1088q0 -26 -19 -45t-45 -19t-45 19l-333 333h-262q-26 0 -45 19t-19 45v384q0 26 19 45t45 19h262l333 333q19 19 45 19t45 -19t19 -45zM1152 640q0 -76 -42.5 -141.5t-112.5 -93.5q-10 -5 -25 -5q-26 0 -45 18.5t-19 45.5q0 21 12 35.5t29 25t34 23t29 36 -t12 56.5t-12 56.5t-29 36t-34 23t-29 25t-12 35.5q0 27 19 45.5t45 18.5q15 0 25 -5q70 -27 112.5 -93t42.5 -142z" /> - <glyph glyph-name="volume_up" unicode="&#xf028;" horiz-adv-x="1664" -d="M768 1184v-1088q0 -26 -19 -45t-45 -19t-45 19l-333 333h-262q-26 0 -45 19t-19 45v384q0 26 19 45t45 19h262l333 333q19 19 45 19t45 -19t19 -45zM1152 640q0 -76 -42.5 -141.5t-112.5 -93.5q-10 -5 -25 -5q-26 0 -45 18.5t-19 45.5q0 21 12 35.5t29 25t34 23t29 36 -t12 56.5t-12 56.5t-29 36t-34 23t-29 25t-12 35.5q0 27 19 45.5t45 18.5q15 0 25 -5q70 -27 112.5 -93t42.5 -142zM1408 640q0 -153 -85 -282.5t-225 -188.5q-13 -5 -25 -5q-27 0 -46 19t-19 45q0 39 39 59q56 29 76 44q74 54 115.5 135.5t41.5 173.5t-41.5 173.5 -t-115.5 135.5q-20 15 -76 44q-39 20 -39 59q0 26 19 45t45 19q13 0 26 -5q140 -59 225 -188.5t85 -282.5zM1664 640q0 -230 -127 -422.5t-338 -283.5q-13 -5 -26 -5q-26 0 -45 19t-19 45q0 36 39 59q7 4 22.5 10.5t22.5 10.5q46 25 82 51q123 91 192 227t69 289t-69 289 -t-192 227q-36 26 -82 51q-7 4 -22.5 10.5t-22.5 10.5q-39 23 -39 59q0 26 19 45t45 19q13 0 26 -5q211 -91 338 -283.5t127 -422.5z" /> - <glyph glyph-name="qrcode" unicode="&#xf029;" horiz-adv-x="1408" -d="M384 384v-128h-128v128h128zM384 1152v-128h-128v128h128zM1152 1152v-128h-128v128h128zM128 129h384v383h-384v-383zM128 896h384v384h-384v-384zM896 896h384v384h-384v-384zM640 640v-640h-640v640h640zM1152 128v-128h-128v128h128zM1408 128v-128h-128v128h128z -M1408 640v-384h-384v128h-128v-384h-128v640h384v-128h128v128h128zM640 1408v-640h-640v640h640zM1408 1408v-640h-640v640h640z" /> - <glyph glyph-name="barcode" unicode="&#xf02a;" horiz-adv-x="1792" -d="M63 0h-63v1408h63v-1408zM126 1h-32v1407h32v-1407zM220 1h-31v1407h31v-1407zM377 1h-31v1407h31v-1407zM534 1h-62v1407h62v-1407zM660 1h-31v1407h31v-1407zM723 1h-31v1407h31v-1407zM786 1h-31v1407h31v-1407zM943 1h-63v1407h63v-1407zM1100 1h-63v1407h63v-1407z -M1226 1h-63v1407h63v-1407zM1352 1h-63v1407h63v-1407zM1446 1h-63v1407h63v-1407zM1635 1h-94v1407h94v-1407zM1698 1h-32v1407h32v-1407zM1792 0h-63v1408h63v-1408z" /> - <glyph glyph-name="tag" unicode="&#xf02b;" -d="M448 1088q0 53 -37.5 90.5t-90.5 37.5t-90.5 -37.5t-37.5 -90.5t37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5zM1515 512q0 -53 -37 -90l-491 -492q-39 -37 -91 -37q-53 0 -90 37l-715 716q-38 37 -64.5 101t-26.5 117v416q0 52 38 90t90 38h416q53 0 117 -26.5t102 -64.5 -l715 -714q37 -39 37 -91z" /> - <glyph glyph-name="tags" unicode="&#xf02c;" horiz-adv-x="1920" -d="M448 1088q0 53 -37.5 90.5t-90.5 37.5t-90.5 -37.5t-37.5 -90.5t37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5zM1515 512q0 -53 -37 -90l-491 -492q-39 -37 -91 -37q-53 0 -90 37l-715 716q-38 37 -64.5 101t-26.5 117v416q0 52 38 90t90 38h416q53 0 117 -26.5t102 -64.5 -l715 -714q37 -39 37 -91zM1899 512q0 -53 -37 -90l-491 -492q-39 -37 -91 -37q-36 0 -59 14t-53 45l470 470q37 37 37 90q0 52 -37 91l-715 714q-38 38 -102 64.5t-117 26.5h224q53 0 117 -26.5t102 -64.5l715 -714q37 -39 37 -91z" /> - <glyph glyph-name="book" unicode="&#xf02d;" horiz-adv-x="1664" -d="M1639 1058q40 -57 18 -129l-275 -906q-19 -64 -76.5 -107.5t-122.5 -43.5h-923q-77 0 -148.5 53.5t-99.5 131.5q-24 67 -2 127q0 4 3 27t4 37q1 8 -3 21.5t-3 19.5q2 11 8 21t16.5 23.5t16.5 23.5q23 38 45 91.5t30 91.5q3 10 0.5 30t-0.5 28q3 11 17 28t17 23 -q21 36 42 92t25 90q1 9 -2.5 32t0.5 28q4 13 22 30.5t22 22.5q19 26 42.5 84.5t27.5 96.5q1 8 -3 25.5t-2 26.5q2 8 9 18t18 23t17 21q8 12 16.5 30.5t15 35t16 36t19.5 32t26.5 23.5t36 11.5t47.5 -5.5l-1 -3q38 9 51 9h761q74 0 114 -56t18 -130l-274 -906 -q-36 -119 -71.5 -153.5t-128.5 -34.5h-869q-27 0 -38 -15q-11 -16 -1 -43q24 -70 144 -70h923q29 0 56 15.5t35 41.5l300 987q7 22 5 57q38 -15 59 -43zM575 1056q-4 -13 2 -22.5t20 -9.5h608q13 0 25.5 9.5t16.5 22.5l21 64q4 13 -2 22.5t-20 9.5h-608q-13 0 -25.5 -9.5 -t-16.5 -22.5zM492 800q-4 -13 2 -22.5t20 -9.5h608q13 0 25.5 9.5t16.5 22.5l21 64q4 13 -2 22.5t-20 9.5h-608q-13 0 -25.5 -9.5t-16.5 -22.5z" /> - <glyph glyph-name="bookmark" unicode="&#xf02e;" horiz-adv-x="1280" -d="M1164 1408q23 0 44 -9q33 -13 52.5 -41t19.5 -62v-1289q0 -34 -19.5 -62t-52.5 -41q-19 -8 -44 -8q-48 0 -83 32l-441 424l-441 -424q-36 -33 -83 -33q-23 0 -44 9q-33 13 -52.5 41t-19.5 62v1289q0 34 19.5 62t52.5 41q21 9 44 9h1048z" /> - <glyph glyph-name="print" unicode="&#xf02f;" horiz-adv-x="1664" -d="M384 0h896v256h-896v-256zM384 640h896v384h-160q-40 0 -68 28t-28 68v160h-640v-640zM1536 576q0 26 -19 45t-45 19t-45 -19t-19 -45t19 -45t45 -19t45 19t19 45zM1664 576v-416q0 -13 -9.5 -22.5t-22.5 -9.5h-224v-160q0 -40 -28 -68t-68 -28h-960q-40 0 -68 28t-28 68 -v160h-224q-13 0 -22.5 9.5t-9.5 22.5v416q0 79 56.5 135.5t135.5 56.5h64v544q0 40 28 68t68 28h672q40 0 88 -20t76 -48l152 -152q28 -28 48 -76t20 -88v-256h64q79 0 135.5 -56.5t56.5 -135.5z" /> - <glyph glyph-name="camera" unicode="&#xf030;" horiz-adv-x="1920" -d="M960 864q119 0 203.5 -84.5t84.5 -203.5t-84.5 -203.5t-203.5 -84.5t-203.5 84.5t-84.5 203.5t84.5 203.5t203.5 84.5zM1664 1280q106 0 181 -75t75 -181v-896q0 -106 -75 -181t-181 -75h-1408q-106 0 -181 75t-75 181v896q0 106 75 181t181 75h224l51 136 -q19 49 69.5 84.5t103.5 35.5h512q53 0 103.5 -35.5t69.5 -84.5l51 -136h224zM960 128q185 0 316.5 131.5t131.5 316.5t-131.5 316.5t-316.5 131.5t-316.5 -131.5t-131.5 -316.5t131.5 -316.5t316.5 -131.5z" /> - <glyph glyph-name="font" unicode="&#xf031;" horiz-adv-x="1664" -d="M725 977l-170 -450q33 0 136.5 -2t160.5 -2q19 0 57 2q-87 253 -184 452zM0 -128l2 79q23 7 56 12.5t57 10.5t49.5 14.5t44.5 29t31 50.5l237 616l280 724h75h53q8 -14 11 -21l205 -480q33 -78 106 -257.5t114 -274.5q15 -34 58 -144.5t72 -168.5q20 -45 35 -57 -q19 -15 88 -29.5t84 -20.5q6 -38 6 -57q0 -5 -0.5 -13.5t-0.5 -12.5q-63 0 -190 8t-191 8q-76 0 -215 -7t-178 -8q0 43 4 78l131 28q1 0 12.5 2.5t15.5 3.5t14.5 4.5t15 6.5t11 8t9 11t2.5 14q0 16 -31 96.5t-72 177.5t-42 100l-450 2q-26 -58 -76.5 -195.5t-50.5 -162.5 -q0 -22 14 -37.5t43.5 -24.5t48.5 -13.5t57 -8.5t41 -4q1 -19 1 -58q0 -9 -2 -27q-58 0 -174.5 10t-174.5 10q-8 0 -26.5 -4t-21.5 -4q-80 -14 -188 -14z" /> - <glyph glyph-name="bold" unicode="&#xf032;" horiz-adv-x="1408" -d="M555 15q74 -32 140 -32q376 0 376 335q0 114 -41 180q-27 44 -61.5 74t-67.5 46.5t-80.5 25t-84 10.5t-94.5 2q-73 0 -101 -10q0 -53 -0.5 -159t-0.5 -158q0 -8 -1 -67.5t-0.5 -96.5t4.5 -83.5t12 -66.5zM541 761q42 -7 109 -7q82 0 143 13t110 44.5t74.5 89.5t25.5 142 -q0 70 -29 122.5t-79 82t-108 43.5t-124 14q-50 0 -130 -13q0 -50 4 -151t4 -152q0 -27 -0.5 -80t-0.5 -79q0 -46 1 -69zM0 -128l2 94q15 4 85 16t106 27q7 12 12.5 27t8.5 33.5t5.5 32.5t3 37.5t0.5 34v35.5v30q0 982 -22 1025q-4 8 -22 14.5t-44.5 11t-49.5 7t-48.5 4.5 -t-30.5 3l-4 83q98 2 340 11.5t373 9.5q23 0 68 -0.5t68 -0.5q70 0 136.5 -13t128.5 -42t108 -71t74 -104.5t28 -137.5q0 -52 -16.5 -95.5t-39 -72t-64.5 -57.5t-73 -45t-84 -40q154 -35 256.5 -134t102.5 -248q0 -100 -35 -179.5t-93.5 -130.5t-138 -85.5t-163.5 -48.5 -t-176 -14q-44 0 -132 3t-132 3q-106 0 -307 -11t-231 -12z" /> - <glyph glyph-name="italic" unicode="&#xf033;" horiz-adv-x="1024" -d="M0 -126l17 85q22 7 61.5 16.5t72 19t59.5 23.5q28 35 41 101q1 7 62 289t114 543.5t52 296.5v25q-24 13 -54.5 18.5t-69.5 8t-58 5.5l19 103q33 -2 120 -6.5t149.5 -7t120.5 -2.5q48 0 98.5 2.5t121 7t98.5 6.5q-5 -39 -19 -89q-30 -10 -101.5 -28.5t-108.5 -33.5 -q-8 -19 -14 -42.5t-9 -40t-7.5 -45.5t-6.5 -42q-27 -148 -87.5 -419.5t-77.5 -355.5q-2 -9 -13 -58t-20 -90t-16 -83.5t-6 -57.5l1 -18q17 -4 185 -31q-3 -44 -16 -99q-11 0 -32.5 -1.5t-32.5 -1.5q-29 0 -87 10t-86 10q-138 2 -206 2q-51 0 -143 -9t-121 -11z" /> - <glyph glyph-name="text_height" unicode="&#xf034;" horiz-adv-x="1792" -d="M1744 128q33 0 42 -18.5t-11 -44.5l-126 -162q-20 -26 -49 -26t-49 26l-126 162q-20 26 -11 44.5t42 18.5h80v1024h-80q-33 0 -42 18.5t11 44.5l126 162q20 26 49 26t49 -26l126 -162q20 -26 11 -44.5t-42 -18.5h-80v-1024h80zM81 1407l54 -27q12 -5 211 -5q44 0 132 2 -t132 2q36 0 107.5 -0.5t107.5 -0.5h293q6 0 21 -0.5t20.5 0t16 3t17.5 9t15 17.5l42 1q4 0 14 -0.5t14 -0.5q2 -112 2 -336q0 -80 -5 -109q-39 -14 -68 -18q-25 44 -54 128q-3 9 -11 48t-14.5 73.5t-7.5 35.5q-6 8 -12 12.5t-15.5 6t-13 2.5t-18 0.5t-16.5 -0.5 -q-17 0 -66.5 0.5t-74.5 0.5t-64 -2t-71 -6q-9 -81 -8 -136q0 -94 2 -388t2 -455q0 -16 -2.5 -71.5t0 -91.5t12.5 -69q40 -21 124 -42.5t120 -37.5q5 -40 5 -50q0 -14 -3 -29l-34 -1q-76 -2 -218 8t-207 10q-50 0 -151 -9t-152 -9q-3 51 -3 52v9q17 27 61.5 43t98.5 29t78 27 -q19 42 19 383q0 101 -3 303t-3 303v117q0 2 0.5 15.5t0.5 25t-1 25.5t-3 24t-5 14q-11 12 -162 12q-33 0 -93 -12t-80 -26q-19 -13 -34 -72.5t-31.5 -111t-42.5 -53.5q-42 26 -56 44v383z" /> - <glyph glyph-name="text_width" unicode="&#xf035;" -d="M81 1407l54 -27q12 -5 211 -5q44 0 132 2t132 2q70 0 246.5 1t304.5 0.5t247 -4.5q33 -1 56 31l42 1q4 0 14 -0.5t14 -0.5q2 -112 2 -336q0 -80 -5 -109q-39 -14 -68 -18q-25 44 -54 128q-3 9 -11 47.5t-15 73.5t-7 36q-10 13 -27 19q-5 2 -66 2q-30 0 -93 1t-103 1 -t-94 -2t-96 -7q-9 -81 -8 -136l1 -152v52q0 -55 1 -154t1.5 -180t0.5 -153q0 -16 -2.5 -71.5t0 -91.5t12.5 -69q40 -21 124 -42.5t120 -37.5q5 -40 5 -50q0 -14 -3 -29l-34 -1q-76 -2 -218 8t-207 10q-50 0 -151 -9t-152 -9q-3 51 -3 52v9q17 27 61.5 43t98.5 29t78 27 -q7 16 11.5 74t6 145.5t1.5 155t-0.5 153.5t-0.5 89q0 7 -2.5 21.5t-2.5 22.5q0 7 0.5 44t1 73t0 76.5t-3 67.5t-6.5 32q-11 12 -162 12q-41 0 -163 -13.5t-138 -24.5q-19 -12 -34 -71.5t-31.5 -111.5t-42.5 -54q-42 26 -56 44v383zM1310 125q12 0 42 -19.5t57.5 -41.5 -t59.5 -49t36 -30q26 -21 26 -49t-26 -49q-4 -3 -36 -30t-59.5 -49t-57.5 -41.5t-42 -19.5q-13 0 -20.5 10.5t-10 28.5t-2.5 33.5t1.5 33t1.5 19.5h-1024q0 -2 1.5 -19.5t1.5 -33t-2.5 -33.5t-10 -28.5t-20.5 -10.5q-12 0 -42 19.5t-57.5 41.5t-59.5 49t-36 30q-26 21 -26 49 -t26 49q4 3 36 30t59.5 49t57.5 41.5t42 19.5q13 0 20.5 -10.5t10 -28.5t2.5 -33.5t-1.5 -33t-1.5 -19.5h1024q0 2 -1.5 19.5t-1.5 33t2.5 33.5t10 28.5t20.5 10.5z" /> - <glyph glyph-name="align_left" unicode="&#xf036;" horiz-adv-x="1792" -d="M1792 192v-128q0 -26 -19 -45t-45 -19h-1664q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h1664q26 0 45 -19t19 -45zM1408 576v-128q0 -26 -19 -45t-45 -19h-1280q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h1280q26 0 45 -19t19 -45zM1664 960v-128q0 -26 -19 -45 -t-45 -19h-1536q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h1536q26 0 45 -19t19 -45zM1280 1344v-128q0 -26 -19 -45t-45 -19h-1152q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h1152q26 0 45 -19t19 -45z" /> - <glyph glyph-name="align_center" unicode="&#xf037;" horiz-adv-x="1792" -d="M1792 192v-128q0 -26 -19 -45t-45 -19h-1664q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h1664q26 0 45 -19t19 -45zM1408 576v-128q0 -26 -19 -45t-45 -19h-896q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h896q26 0 45 -19t19 -45zM1664 960v-128q0 -26 -19 -45t-45 -19 -h-1408q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h1408q26 0 45 -19t19 -45zM1280 1344v-128q0 -26 -19 -45t-45 -19h-640q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h640q26 0 45 -19t19 -45z" /> - <glyph glyph-name="align_right" unicode="&#xf038;" horiz-adv-x="1792" -d="M1792 192v-128q0 -26 -19 -45t-45 -19h-1664q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h1664q26 0 45 -19t19 -45zM1792 576v-128q0 -26 -19 -45t-45 -19h-1280q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h1280q26 0 45 -19t19 -45zM1792 960v-128q0 -26 -19 -45 -t-45 -19h-1536q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h1536q26 0 45 -19t19 -45zM1792 1344v-128q0 -26 -19 -45t-45 -19h-1152q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h1152q26 0 45 -19t19 -45z" /> - <glyph glyph-name="align_justify" unicode="&#xf039;" horiz-adv-x="1792" -d="M1792 192v-128q0 -26 -19 -45t-45 -19h-1664q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h1664q26 0 45 -19t19 -45zM1792 576v-128q0 -26 -19 -45t-45 -19h-1664q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h1664q26 0 45 -19t19 -45zM1792 960v-128q0 -26 -19 -45 -t-45 -19h-1664q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h1664q26 0 45 -19t19 -45zM1792 1344v-128q0 -26 -19 -45t-45 -19h-1664q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h1664q26 0 45 -19t19 -45z" /> - <glyph glyph-name="list" unicode="&#xf03a;" horiz-adv-x="1792" -d="M256 224v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-192q-13 0 -22.5 9.5t-9.5 22.5v192q0 13 9.5 22.5t22.5 9.5h192q13 0 22.5 -9.5t9.5 -22.5zM256 608v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-192q-13 0 -22.5 9.5t-9.5 22.5v192q0 13 9.5 22.5t22.5 9.5h192q13 0 22.5 -9.5 -t9.5 -22.5zM256 992v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-192q-13 0 -22.5 9.5t-9.5 22.5v192q0 13 9.5 22.5t22.5 9.5h192q13 0 22.5 -9.5t9.5 -22.5zM1792 224v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-1344q-13 0 -22.5 9.5t-9.5 22.5v192q0 13 9.5 22.5t22.5 9.5h1344 -q13 0 22.5 -9.5t9.5 -22.5zM256 1376v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-192q-13 0 -22.5 9.5t-9.5 22.5v192q0 13 9.5 22.5t22.5 9.5h192q13 0 22.5 -9.5t9.5 -22.5zM1792 608v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-1344q-13 0 -22.5 9.5t-9.5 22.5v192q0 13 9.5 22.5 -t22.5 9.5h1344q13 0 22.5 -9.5t9.5 -22.5zM1792 992v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-1344q-13 0 -22.5 9.5t-9.5 22.5v192q0 13 9.5 22.5t22.5 9.5h1344q13 0 22.5 -9.5t9.5 -22.5zM1792 1376v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-1344q-13 0 -22.5 9.5t-9.5 22.5v192 -q0 13 9.5 22.5t22.5 9.5h1344q13 0 22.5 -9.5t9.5 -22.5z" /> - <glyph glyph-name="indent_left" unicode="&#xf03b;" horiz-adv-x="1792" -d="M384 992v-576q0 -13 -9.5 -22.5t-22.5 -9.5q-14 0 -23 9l-288 288q-9 9 -9 23t9 23l288 288q9 9 23 9q13 0 22.5 -9.5t9.5 -22.5zM1792 224v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-1728q-13 0 -22.5 9.5t-9.5 22.5v192q0 13 9.5 22.5t22.5 9.5h1728q13 0 22.5 -9.5 -t9.5 -22.5zM1792 608v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-1088q-13 0 -22.5 9.5t-9.5 22.5v192q0 13 9.5 22.5t22.5 9.5h1088q13 0 22.5 -9.5t9.5 -22.5zM1792 992v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-1088q-13 0 -22.5 9.5t-9.5 22.5v192q0 13 9.5 22.5t22.5 9.5h1088 -q13 0 22.5 -9.5t9.5 -22.5zM1792 1376v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-1728q-13 0 -22.5 9.5t-9.5 22.5v192q0 13 9.5 22.5t22.5 9.5h1728q13 0 22.5 -9.5t9.5 -22.5z" /> - <glyph glyph-name="indent_right" unicode="&#xf03c;" horiz-adv-x="1792" -d="M352 704q0 -14 -9 -23l-288 -288q-9 -9 -23 -9q-13 0 -22.5 9.5t-9.5 22.5v576q0 13 9.5 22.5t22.5 9.5q14 0 23 -9l288 -288q9 -9 9 -23zM1792 224v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-1728q-13 0 -22.5 9.5t-9.5 22.5v192q0 13 9.5 22.5t22.5 9.5h1728q13 0 22.5 -9.5 -t9.5 -22.5zM1792 608v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-1088q-13 0 -22.5 9.5t-9.5 22.5v192q0 13 9.5 22.5t22.5 9.5h1088q13 0 22.5 -9.5t9.5 -22.5zM1792 992v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-1088q-13 0 -22.5 9.5t-9.5 22.5v192q0 13 9.5 22.5t22.5 9.5h1088 -q13 0 22.5 -9.5t9.5 -22.5zM1792 1376v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-1728q-13 0 -22.5 9.5t-9.5 22.5v192q0 13 9.5 22.5t22.5 9.5h1728q13 0 22.5 -9.5t9.5 -22.5z" /> - <glyph glyph-name="facetime_video" unicode="&#xf03d;" horiz-adv-x="1792" -d="M1792 1184v-1088q0 -42 -39 -59q-13 -5 -25 -5q-27 0 -45 19l-403 403v-166q0 -119 -84.5 -203.5t-203.5 -84.5h-704q-119 0 -203.5 84.5t-84.5 203.5v704q0 119 84.5 203.5t203.5 84.5h704q119 0 203.5 -84.5t84.5 -203.5v-165l403 402q18 19 45 19q12 0 25 -5 -q39 -17 39 -59z" /> - <glyph glyph-name="picture" unicode="&#xf03e;" horiz-adv-x="1920" -d="M640 960q0 -80 -56 -136t-136 -56t-136 56t-56 136t56 136t136 56t136 -56t56 -136zM1664 576v-448h-1408v192l320 320l160 -160l512 512zM1760 1280h-1600q-13 0 -22.5 -9.5t-9.5 -22.5v-1216q0 -13 9.5 -22.5t22.5 -9.5h1600q13 0 22.5 9.5t9.5 22.5v1216 -q0 13 -9.5 22.5t-22.5 9.5zM1920 1248v-1216q0 -66 -47 -113t-113 -47h-1600q-66 0 -113 47t-47 113v1216q0 66 47 113t113 47h1600q66 0 113 -47t47 -113z" /> - <glyph glyph-name="pencil" unicode="&#xf040;" -d="M363 0l91 91l-235 235l-91 -91v-107h128v-128h107zM886 928q0 22 -22 22q-10 0 -17 -7l-542 -542q-7 -7 -7 -17q0 -22 22 -22q10 0 17 7l542 542q7 7 7 17zM832 1120l416 -416l-832 -832h-416v416zM1515 1024q0 -53 -37 -90l-166 -166l-416 416l166 165q36 38 90 38 -q53 0 91 -38l235 -234q37 -39 37 -91z" /> - <glyph glyph-name="map_marker" unicode="&#xf041;" horiz-adv-x="1024" -d="M768 896q0 106 -75 181t-181 75t-181 -75t-75 -181t75 -181t181 -75t181 75t75 181zM1024 896q0 -109 -33 -179l-364 -774q-16 -33 -47.5 -52t-67.5 -19t-67.5 19t-46.5 52l-365 774q-33 70 -33 179q0 212 150 362t362 150t362 -150t150 -362z" /> - <glyph glyph-name="adjust" unicode="&#xf042;" -d="M768 96v1088q-148 0 -273 -73t-198 -198t-73 -273t73 -273t198 -198t273 -73zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" /> - <glyph glyph-name="tint" unicode="&#xf043;" horiz-adv-x="1024" -d="M512 384q0 36 -20 69q-1 1 -15.5 22.5t-25.5 38t-25 44t-21 50.5q-4 16 -21 16t-21 -16q-7 -23 -21 -50.5t-25 -44t-25.5 -38t-15.5 -22.5q-20 -33 -20 -69q0 -53 37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5zM1024 512q0 -212 -150 -362t-362 -150t-362 150t-150 362 -q0 145 81 275q6 9 62.5 90.5t101 151t99.5 178t83 201.5q9 30 34 47t51 17t51.5 -17t33.5 -47q28 -93 83 -201.5t99.5 -178t101 -151t62.5 -90.5q81 -127 81 -275z" /> - <glyph glyph-name="edit" unicode="&#xf044;" horiz-adv-x="1792" -d="M888 352l116 116l-152 152l-116 -116v-56h96v-96h56zM1328 1072q-16 16 -33 -1l-350 -350q-17 -17 -1 -33t33 1l350 350q17 17 1 33zM1408 478v-190q0 -119 -84.5 -203.5t-203.5 -84.5h-832q-119 0 -203.5 84.5t-84.5 203.5v832q0 119 84.5 203.5t203.5 84.5h832 -q63 0 117 -25q15 -7 18 -23q3 -17 -9 -29l-49 -49q-14 -14 -32 -8q-23 6 -45 6h-832q-66 0 -113 -47t-47 -113v-832q0 -66 47 -113t113 -47h832q66 0 113 47t47 113v126q0 13 9 22l64 64q15 15 35 7t20 -29zM1312 1216l288 -288l-672 -672h-288v288zM1756 1084l-92 -92 -l-288 288l92 92q28 28 68 28t68 -28l152 -152q28 -28 28 -68t-28 -68z" /> - <glyph glyph-name="share" unicode="&#xf045;" horiz-adv-x="1664" -d="M1408 547v-259q0 -119 -84.5 -203.5t-203.5 -84.5h-832q-119 0 -203.5 84.5t-84.5 203.5v832q0 119 84.5 203.5t203.5 84.5h255v0q13 0 22.5 -9.5t9.5 -22.5q0 -27 -26 -32q-77 -26 -133 -60q-10 -4 -16 -4h-112q-66 0 -113 -47t-47 -113v-832q0 -66 47 -113t113 -47h832 -q66 0 113 47t47 113v214q0 19 18 29q28 13 54 37q16 16 35 8q21 -9 21 -29zM1645 1043l-384 -384q-18 -19 -45 -19q-12 0 -25 5q-39 17 -39 59v192h-160q-323 0 -438 -131q-119 -137 -74 -473q3 -23 -20 -34q-8 -2 -12 -2q-16 0 -26 13q-10 14 -21 31t-39.5 68.5t-49.5 99.5 -t-38.5 114t-17.5 122q0 49 3.5 91t14 90t28 88t47 81.5t68.5 74t94.5 61.5t124.5 48.5t159.5 30.5t196.5 11h160v192q0 42 39 59q13 5 25 5q26 0 45 -19l384 -384q19 -19 19 -45t-19 -45z" /> - <glyph glyph-name="check" unicode="&#xf046;" horiz-adv-x="1664" -d="M1408 606v-318q0 -119 -84.5 -203.5t-203.5 -84.5h-832q-119 0 -203.5 84.5t-84.5 203.5v832q0 119 84.5 203.5t203.5 84.5h832q63 0 117 -25q15 -7 18 -23q3 -17 -9 -29l-49 -49q-10 -10 -23 -10q-3 0 -9 2q-23 6 -45 6h-832q-66 0 -113 -47t-47 -113v-832 -q0 -66 47 -113t113 -47h832q66 0 113 47t47 113v254q0 13 9 22l64 64q10 10 23 10q6 0 12 -3q20 -8 20 -29zM1639 1095l-814 -814q-24 -24 -57 -24t-57 24l-430 430q-24 24 -24 57t24 57l110 110q24 24 57 24t57 -24l263 -263l647 647q24 24 57 24t57 -24l110 -110 -q24 -24 24 -57t-24 -57z" /> - <glyph glyph-name="move" unicode="&#xf047;" horiz-adv-x="1792" -d="M1792 640q0 -26 -19 -45l-256 -256q-19 -19 -45 -19t-45 19t-19 45v128h-384v-384h128q26 0 45 -19t19 -45t-19 -45l-256 -256q-19 -19 -45 -19t-45 19l-256 256q-19 19 -19 45t19 45t45 19h128v384h-384v-128q0 -26 -19 -45t-45 -19t-45 19l-256 256q-19 19 -19 45 -t19 45l256 256q19 19 45 19t45 -19t19 -45v-128h384v384h-128q-26 0 -45 19t-19 45t19 45l256 256q19 19 45 19t45 -19l256 -256q19 -19 19 -45t-19 -45t-45 -19h-128v-384h384v128q0 26 19 45t45 19t45 -19l256 -256q19 -19 19 -45z" /> - <glyph glyph-name="step_backward" unicode="&#xf048;" horiz-adv-x="1024" -d="M979 1395q19 19 32 13t13 -32v-1472q0 -26 -13 -32t-32 13l-710 710q-9 9 -13 19v-678q0 -26 -19 -45t-45 -19h-128q-26 0 -45 19t-19 45v1408q0 26 19 45t45 19h128q26 0 45 -19t19 -45v-678q4 10 13 19z" /> - <glyph glyph-name="fast_backward" unicode="&#xf049;" horiz-adv-x="1792" -d="M1747 1395q19 19 32 13t13 -32v-1472q0 -26 -13 -32t-32 13l-710 710q-9 9 -13 19v-710q0 -26 -13 -32t-32 13l-710 710q-9 9 -13 19v-678q0 -26 -19 -45t-45 -19h-128q-26 0 -45 19t-19 45v1408q0 26 19 45t45 19h128q26 0 45 -19t19 -45v-678q4 10 13 19l710 710 -q19 19 32 13t13 -32v-710q4 10 13 19z" /> - <glyph glyph-name="backward" unicode="&#xf04a;" horiz-adv-x="1664" -d="M1619 1395q19 19 32 13t13 -32v-1472q0 -26 -13 -32t-32 13l-710 710q-9 9 -13 19v-710q0 -26 -13 -32t-32 13l-710 710q-19 19 -19 45t19 45l710 710q19 19 32 13t13 -32v-710q4 10 13 19z" /> - <glyph glyph-name="play" unicode="&#xf04b;" horiz-adv-x="1408" -d="M1384 609l-1328 -738q-23 -13 -39.5 -3t-16.5 36v1472q0 26 16.5 36t39.5 -3l1328 -738q23 -13 23 -31t-23 -31z" /> - <glyph glyph-name="pause" unicode="&#xf04c;" -d="M1536 1344v-1408q0 -26 -19 -45t-45 -19h-512q-26 0 -45 19t-19 45v1408q0 26 19 45t45 19h512q26 0 45 -19t19 -45zM640 1344v-1408q0 -26 -19 -45t-45 -19h-512q-26 0 -45 19t-19 45v1408q0 26 19 45t45 19h512q26 0 45 -19t19 -45z" /> - <glyph glyph-name="stop" unicode="&#xf04d;" -d="M1536 1344v-1408q0 -26 -19 -45t-45 -19h-1408q-26 0 -45 19t-19 45v1408q0 26 19 45t45 19h1408q26 0 45 -19t19 -45z" /> - <glyph glyph-name="forward" unicode="&#xf04e;" horiz-adv-x="1664" -d="M45 -115q-19 -19 -32 -13t-13 32v1472q0 26 13 32t32 -13l710 -710q9 -9 13 -19v710q0 26 13 32t32 -13l710 -710q19 -19 19 -45t-19 -45l-710 -710q-19 -19 -32 -13t-13 32v710q-4 -10 -13 -19z" /> - <glyph glyph-name="fast_forward" unicode="&#xf050;" horiz-adv-x="1792" -d="M45 -115q-19 -19 -32 -13t-13 32v1472q0 26 13 32t32 -13l710 -710q9 -9 13 -19v710q0 26 13 32t32 -13l710 -710q9 -9 13 -19v678q0 26 19 45t45 19h128q26 0 45 -19t19 -45v-1408q0 -26 -19 -45t-45 -19h-128q-26 0 -45 19t-19 45v678q-4 -10 -13 -19l-710 -710 -q-19 -19 -32 -13t-13 32v710q-4 -10 -13 -19z" /> - <glyph glyph-name="step_forward" unicode="&#xf051;" horiz-adv-x="1024" -d="M45 -115q-19 -19 -32 -13t-13 32v1472q0 26 13 32t32 -13l710 -710q9 -9 13 -19v678q0 26 19 45t45 19h128q26 0 45 -19t19 -45v-1408q0 -26 -19 -45t-45 -19h-128q-26 0 -45 19t-19 45v678q-4 -10 -13 -19z" /> - <glyph glyph-name="eject" unicode="&#xf052;" horiz-adv-x="1538" -d="M14 557l710 710q19 19 45 19t45 -19l710 -710q19 -19 13 -32t-32 -13h-1472q-26 0 -32 13t13 32zM1473 0h-1408q-26 0 -45 19t-19 45v256q0 26 19 45t45 19h1408q26 0 45 -19t19 -45v-256q0 -26 -19 -45t-45 -19z" /> - <glyph glyph-name="chevron_left" unicode="&#xf053;" horiz-adv-x="1280" -d="M1171 1235l-531 -531l531 -531q19 -19 19 -45t-19 -45l-166 -166q-19 -19 -45 -19t-45 19l-742 742q-19 19 -19 45t19 45l742 742q19 19 45 19t45 -19l166 -166q19 -19 19 -45t-19 -45z" /> - <glyph glyph-name="chevron_right" unicode="&#xf054;" horiz-adv-x="1280" -d="M1107 659l-742 -742q-19 -19 -45 -19t-45 19l-166 166q-19 19 -19 45t19 45l531 531l-531 531q-19 19 -19 45t19 45l166 166q19 19 45 19t45 -19l742 -742q19 -19 19 -45t-19 -45z" /> - <glyph glyph-name="plus_sign" unicode="&#xf055;" -d="M1216 576v128q0 26 -19 45t-45 19h-256v256q0 26 -19 45t-45 19h-128q-26 0 -45 -19t-19 -45v-256h-256q-26 0 -45 -19t-19 -45v-128q0 -26 19 -45t45 -19h256v-256q0 -26 19 -45t45 -19h128q26 0 45 19t19 45v256h256q26 0 45 19t19 45zM1536 640q0 -209 -103 -385.5 -t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" /> - <glyph glyph-name="minus_sign" unicode="&#xf056;" -d="M1216 576v128q0 26 -19 45t-45 19h-768q-26 0 -45 -19t-19 -45v-128q0 -26 19 -45t45 -19h768q26 0 45 19t19 45zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5 -t103 -385.5z" /> - <glyph glyph-name="remove_sign" unicode="&#xf057;" -d="M1149 414q0 26 -19 45l-181 181l181 181q19 19 19 45q0 27 -19 46l-90 90q-19 19 -46 19q-26 0 -45 -19l-181 -181l-181 181q-19 19 -45 19q-27 0 -46 -19l-90 -90q-19 -19 -19 -46q0 -26 19 -45l181 -181l-181 -181q-19 -19 -19 -45q0 -27 19 -46l90 -90q19 -19 46 -19 -q26 0 45 19l181 181l181 -181q19 -19 45 -19q27 0 46 19l90 90q19 19 19 46zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" /> - <glyph glyph-name="ok_sign" unicode="&#xf058;" -d="M1284 802q0 28 -18 46l-91 90q-19 19 -45 19t-45 -19l-408 -407l-226 226q-19 19 -45 19t-45 -19l-91 -90q-18 -18 -18 -46q0 -27 18 -45l362 -362q19 -19 45 -19q27 0 46 19l543 543q18 18 18 45zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103 -t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" /> - <glyph glyph-name="question_sign" unicode="&#xf059;" -d="M896 160v192q0 14 -9 23t-23 9h-192q-14 0 -23 -9t-9 -23v-192q0 -14 9 -23t23 -9h192q14 0 23 9t9 23zM1152 832q0 88 -55.5 163t-138.5 116t-170 41q-243 0 -371 -213q-15 -24 8 -42l132 -100q7 -6 19 -6q16 0 25 12q53 68 86 92q34 24 86 24q48 0 85.5 -26t37.5 -59 -q0 -38 -20 -61t-68 -45q-63 -28 -115.5 -86.5t-52.5 -125.5v-36q0 -14 9 -23t23 -9h192q14 0 23 9t9 23q0 19 21.5 49.5t54.5 49.5q32 18 49 28.5t46 35t44.5 48t28 60.5t12.5 81zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5 -t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" /> - <glyph glyph-name="info_sign" unicode="&#xf05a;" -d="M1024 160v160q0 14 -9 23t-23 9h-96v512q0 14 -9 23t-23 9h-320q-14 0 -23 -9t-9 -23v-160q0 -14 9 -23t23 -9h96v-320h-96q-14 0 -23 -9t-9 -23v-160q0 -14 9 -23t23 -9h448q14 0 23 9t9 23zM896 1056v160q0 14 -9 23t-23 9h-192q-14 0 -23 -9t-9 -23v-160q0 -14 9 -23 -t23 -9h192q14 0 23 9t9 23zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" /> - <glyph glyph-name="screenshot" unicode="&#xf05b;" -d="M1197 512h-109q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h109q-32 108 -112.5 188.5t-188.5 112.5v-109q0 -26 -19 -45t-45 -19h-128q-26 0 -45 19t-19 45v109q-108 -32 -188.5 -112.5t-112.5 -188.5h109q26 0 45 -19t19 -45v-128q0 -26 -19 -45t-45 -19h-109 -q32 -108 112.5 -188.5t188.5 -112.5v109q0 26 19 45t45 19h128q26 0 45 -19t19 -45v-109q108 32 188.5 112.5t112.5 188.5zM1536 704v-128q0 -26 -19 -45t-45 -19h-143q-37 -161 -154.5 -278.5t-278.5 -154.5v-143q0 -26 -19 -45t-45 -19h-128q-26 0 -45 19t-19 45v143 -q-161 37 -278.5 154.5t-154.5 278.5h-143q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h143q37 161 154.5 278.5t278.5 154.5v143q0 26 19 45t45 19h128q26 0 45 -19t19 -45v-143q161 -37 278.5 -154.5t154.5 -278.5h143q26 0 45 -19t19 -45z" /> - <glyph glyph-name="remove_circle" unicode="&#xf05c;" -d="M1097 457l-146 -146q-10 -10 -23 -10t-23 10l-137 137l-137 -137q-10 -10 -23 -10t-23 10l-146 146q-10 10 -10 23t10 23l137 137l-137 137q-10 10 -10 23t10 23l146 146q10 10 23 10t23 -10l137 -137l137 137q10 10 23 10t23 -10l146 -146q10 -10 10 -23t-10 -23 -l-137 -137l137 -137q10 -10 10 -23t-10 -23zM1312 640q0 148 -73 273t-198 198t-273 73t-273 -73t-198 -198t-73 -273t73 -273t198 -198t273 -73t273 73t198 198t73 273zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5 -t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" /> - <glyph glyph-name="ok_circle" unicode="&#xf05d;" -d="M1171 723l-422 -422q-19 -19 -45 -19t-45 19l-294 294q-19 19 -19 45t19 45l102 102q19 19 45 19t45 -19l147 -147l275 275q19 19 45 19t45 -19l102 -102q19 -19 19 -45t-19 -45zM1312 640q0 148 -73 273t-198 198t-273 73t-273 -73t-198 -198t-73 -273t73 -273t198 -198 -t273 -73t273 73t198 198t73 273zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" /> - <glyph glyph-name="ban_circle" unicode="&#xf05e;" -d="M1312 643q0 161 -87 295l-754 -753q137 -89 297 -89q111 0 211.5 43.5t173.5 116.5t116 174.5t43 212.5zM313 344l755 754q-135 91 -300 91q-148 0 -273 -73t-198 -199t-73 -274q0 -162 89 -299zM1536 643q0 -157 -61 -300t-163.5 -246t-245 -164t-298.5 -61t-298.5 61 -t-245 164t-163.5 246t-61 300t61 299.5t163.5 245.5t245 164t298.5 61t298.5 -61t245 -164t163.5 -245.5t61 -299.5z" /> - <glyph glyph-name="arrow_left" unicode="&#xf060;" -d="M1536 640v-128q0 -53 -32.5 -90.5t-84.5 -37.5h-704l293 -294q38 -36 38 -90t-38 -90l-75 -76q-37 -37 -90 -37q-52 0 -91 37l-651 652q-37 37 -37 90q0 52 37 91l651 650q38 38 91 38q52 0 90 -38l75 -74q38 -38 38 -91t-38 -91l-293 -293h704q52 0 84.5 -37.5 -t32.5 -90.5z" /> - <glyph glyph-name="arrow_right" unicode="&#xf061;" -d="M1472 576q0 -54 -37 -91l-651 -651q-39 -37 -91 -37q-51 0 -90 37l-75 75q-38 38 -38 91t38 91l293 293h-704q-52 0 -84.5 37.5t-32.5 90.5v128q0 53 32.5 90.5t84.5 37.5h704l-293 294q-38 36 -38 90t38 90l75 75q38 38 90 38q53 0 91 -38l651 -651q37 -35 37 -90z" /> - <glyph glyph-name="arrow_up" unicode="&#xf062;" horiz-adv-x="1664" -d="M1611 565q0 -51 -37 -90l-75 -75q-38 -38 -91 -38q-54 0 -90 38l-294 293v-704q0 -52 -37.5 -84.5t-90.5 -32.5h-128q-53 0 -90.5 32.5t-37.5 84.5v704l-294 -293q-36 -38 -90 -38t-90 38l-75 75q-38 38 -38 90q0 53 38 91l651 651q35 37 90 37q54 0 91 -37l651 -651 -q37 -39 37 -91z" /> - <glyph glyph-name="arrow_down" unicode="&#xf063;" horiz-adv-x="1664" -d="M1611 704q0 -53 -37 -90l-651 -652q-39 -37 -91 -37q-53 0 -90 37l-651 652q-38 36 -38 90q0 53 38 91l74 75q39 37 91 37q53 0 90 -37l294 -294v704q0 52 38 90t90 38h128q52 0 90 -38t38 -90v-704l294 294q37 37 90 37q52 0 91 -37l75 -75q37 -39 37 -91z" /> - <glyph glyph-name="share_alt" unicode="&#xf064;" horiz-adv-x="1792" -d="M1792 896q0 -26 -19 -45l-512 -512q-19 -19 -45 -19t-45 19t-19 45v256h-224q-98 0 -175.5 -6t-154 -21.5t-133 -42.5t-105.5 -69.5t-80 -101t-48.5 -138.5t-17.5 -181q0 -55 5 -123q0 -6 2.5 -23.5t2.5 -26.5q0 -15 -8.5 -25t-23.5 -10q-16 0 -28 17q-7 9 -13 22 -t-13.5 30t-10.5 24q-127 285 -127 451q0 199 53 333q162 403 875 403h224v256q0 26 19 45t45 19t45 -19l512 -512q19 -19 19 -45z" /> - <glyph glyph-name="resize_full" unicode="&#xf065;" -d="M755 480q0 -13 -10 -23l-332 -332l144 -144q19 -19 19 -45t-19 -45t-45 -19h-448q-26 0 -45 19t-19 45v448q0 26 19 45t45 19t45 -19l144 -144l332 332q10 10 23 10t23 -10l114 -114q10 -10 10 -23zM1536 1344v-448q0 -26 -19 -45t-45 -19t-45 19l-144 144l-332 -332 -q-10 -10 -23 -10t-23 10l-114 114q-10 10 -10 23t10 23l332 332l-144 144q-19 19 -19 45t19 45t45 19h448q26 0 45 -19t19 -45z" /> - <glyph glyph-name="resize_small" unicode="&#xf066;" -d="M768 576v-448q0 -26 -19 -45t-45 -19t-45 19l-144 144l-332 -332q-10 -10 -23 -10t-23 10l-114 114q-10 10 -10 23t10 23l332 332l-144 144q-19 19 -19 45t19 45t45 19h448q26 0 45 -19t19 -45zM1523 1248q0 -13 -10 -23l-332 -332l144 -144q19 -19 19 -45t-19 -45 -t-45 -19h-448q-26 0 -45 19t-19 45v448q0 26 19 45t45 19t45 -19l144 -144l332 332q10 10 23 10t23 -10l114 -114q10 -10 10 -23z" /> - <glyph glyph-name="plus" unicode="&#xf067;" horiz-adv-x="1408" -d="M1408 800v-192q0 -40 -28 -68t-68 -28h-416v-416q0 -40 -28 -68t-68 -28h-192q-40 0 -68 28t-28 68v416h-416q-40 0 -68 28t-28 68v192q0 40 28 68t68 28h416v416q0 40 28 68t68 28h192q40 0 68 -28t28 -68v-416h416q40 0 68 -28t28 -68z" /> - <glyph glyph-name="minus" unicode="&#xf068;" horiz-adv-x="1408" -d="M1408 800v-192q0 -40 -28 -68t-68 -28h-1216q-40 0 -68 28t-28 68v192q0 40 28 68t68 28h1216q40 0 68 -28t28 -68z" /> - <glyph glyph-name="asterisk" unicode="&#xf069;" horiz-adv-x="1664" -d="M1482 486q46 -26 59.5 -77.5t-12.5 -97.5l-64 -110q-26 -46 -77.5 -59.5t-97.5 12.5l-266 153v-307q0 -52 -38 -90t-90 -38h-128q-52 0 -90 38t-38 90v307l-266 -153q-46 -26 -97.5 -12.5t-77.5 59.5l-64 110q-26 46 -12.5 97.5t59.5 77.5l266 154l-266 154 -q-46 26 -59.5 77.5t12.5 97.5l64 110q26 46 77.5 59.5t97.5 -12.5l266 -153v307q0 52 38 90t90 38h128q52 0 90 -38t38 -90v-307l266 153q46 26 97.5 12.5t77.5 -59.5l64 -110q26 -46 12.5 -97.5t-59.5 -77.5l-266 -154z" /> - <glyph glyph-name="exclamation_sign" unicode="&#xf06a;" -d="M768 1408q209 0 385.5 -103t279.5 -279.5t103 -385.5t-103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103zM896 161v190q0 14 -9 23.5t-22 9.5h-192q-13 0 -23 -10t-10 -23v-190q0 -13 10 -23t23 -10h192 -q13 0 22 9.5t9 23.5zM894 505l18 621q0 12 -10 18q-10 8 -24 8h-220q-14 0 -24 -8q-10 -6 -10 -18l17 -621q0 -10 10 -17.5t24 -7.5h185q14 0 23.5 7.5t10.5 17.5z" /> - <glyph glyph-name="gift" unicode="&#xf06b;" -d="M928 180v56v468v192h-320v-192v-468v-56q0 -25 18 -38.5t46 -13.5h192q28 0 46 13.5t18 38.5zM472 1024h195l-126 161q-26 31 -69 31q-40 0 -68 -28t-28 -68t28 -68t68 -28zM1160 1120q0 40 -28 68t-68 28q-43 0 -69 -31l-125 -161h194q40 0 68 28t28 68zM1536 864v-320 -q0 -14 -9 -23t-23 -9h-96v-416q0 -40 -28 -68t-68 -28h-1088q-40 0 -68 28t-28 68v416h-96q-14 0 -23 9t-9 23v320q0 14 9 23t23 9h440q-93 0 -158.5 65.5t-65.5 158.5t65.5 158.5t158.5 65.5q107 0 168 -77l128 -165l128 165q61 77 168 77q93 0 158.5 -65.5t65.5 -158.5 -t-65.5 -158.5t-158.5 -65.5h440q14 0 23 -9t9 -23z" /> - <glyph glyph-name="leaf" unicode="&#xf06c;" horiz-adv-x="1792" -d="M1280 832q0 26 -19 45t-45 19q-172 0 -318 -49.5t-259.5 -134t-235.5 -219.5q-19 -21 -19 -45q0 -26 19 -45t45 -19q24 0 45 19q27 24 74 71t67 66q137 124 268.5 176t313.5 52q26 0 45 19t19 45zM1792 1030q0 -95 -20 -193q-46 -224 -184.5 -383t-357.5 -268 -q-214 -108 -438 -108q-148 0 -286 47q-15 5 -88 42t-96 37q-16 0 -39.5 -32t-45 -70t-52.5 -70t-60 -32q-43 0 -63.5 17.5t-45.5 59.5q-2 4 -6 11t-5.5 10t-3 9.5t-1.5 13.5q0 35 31 73.5t68 65.5t68 56t31 48q0 4 -14 38t-16 44q-9 51 -9 104q0 115 43.5 220t119 184.5 -t170.5 139t204 95.5q55 18 145 25.5t179.5 9t178.5 6t163.5 24t113.5 56.5l29.5 29.5t29.5 28t27 20t36.5 16t43.5 4.5q39 0 70.5 -46t47.5 -112t24 -124t8 -96z" /> - <glyph glyph-name="fire" unicode="&#xf06d;" horiz-adv-x="1408" -d="M1408 -160v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-1344q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h1344q13 0 22.5 -9.5t9.5 -22.5zM1152 896q0 -78 -24.5 -144t-64 -112.5t-87.5 -88t-96 -77.5t-87.5 -72t-64 -81.5t-24.5 -96.5q0 -96 67 -224l-4 1l1 -1 -q-90 41 -160 83t-138.5 100t-113.5 122.5t-72.5 150.5t-27.5 184q0 78 24.5 144t64 112.5t87.5 88t96 77.5t87.5 72t64 81.5t24.5 96.5q0 94 -66 224l3 -1l-1 1q90 -41 160 -83t138.5 -100t113.5 -122.5t72.5 -150.5t27.5 -184z" /> - <glyph glyph-name="eye_open" unicode="&#xf06e;" horiz-adv-x="1792" -d="M1664 576q-152 236 -381 353q61 -104 61 -225q0 -185 -131.5 -316.5t-316.5 -131.5t-316.5 131.5t-131.5 316.5q0 121 61 225q-229 -117 -381 -353q133 -205 333.5 -326.5t434.5 -121.5t434.5 121.5t333.5 326.5zM944 960q0 20 -14 34t-34 14q-125 0 -214.5 -89.5 -t-89.5 -214.5q0 -20 14 -34t34 -14t34 14t14 34q0 86 61 147t147 61q20 0 34 14t14 34zM1792 576q0 -34 -20 -69q-140 -230 -376.5 -368.5t-499.5 -138.5t-499.5 139t-376.5 368q-20 35 -20 69t20 69q140 229 376.5 368t499.5 139t499.5 -139t376.5 -368q20 -35 20 -69z" /> - <glyph glyph-name="eye_close" unicode="&#xf070;" horiz-adv-x="1792" -d="M555 201l78 141q-87 63 -136 159t-49 203q0 121 61 225q-229 -117 -381 -353q167 -258 427 -375zM944 960q0 20 -14 34t-34 14q-125 0 -214.5 -89.5t-89.5 -214.5q0 -20 14 -34t34 -14t34 14t14 34q0 86 61 147t147 61q20 0 34 14t14 34zM1307 1151q0 -7 -1 -9 -q-106 -189 -316 -567t-315 -566l-49 -89q-10 -16 -28 -16q-12 0 -134 70q-16 10 -16 28q0 12 44 87q-143 65 -263.5 173t-208.5 245q-20 31 -20 69t20 69q153 235 380 371t496 136q89 0 180 -17l54 97q10 16 28 16q5 0 18 -6t31 -15.5t33 -18.5t31.5 -18.5t19.5 -11.5 -q16 -10 16 -27zM1344 704q0 -139 -79 -253.5t-209 -164.5l280 502q8 -45 8 -84zM1792 576q0 -35 -20 -69q-39 -64 -109 -145q-150 -172 -347.5 -267t-419.5 -95l74 132q212 18 392.5 137t301.5 307q-115 179 -282 294l63 112q95 -64 182.5 -153t144.5 -184q20 -34 20 -69z -" /> - <glyph glyph-name="warning_sign" unicode="&#xf071;" horiz-adv-x="1792" -d="M1024 161v190q0 14 -9.5 23.5t-22.5 9.5h-192q-13 0 -22.5 -9.5t-9.5 -23.5v-190q0 -14 9.5 -23.5t22.5 -9.5h192q13 0 22.5 9.5t9.5 23.5zM1022 535l18 459q0 12 -10 19q-13 11 -24 11h-220q-11 0 -24 -11q-10 -7 -10 -21l17 -457q0 -10 10 -16.5t24 -6.5h185 -q14 0 23.5 6.5t10.5 16.5zM1008 1469l768 -1408q35 -63 -2 -126q-17 -29 -46.5 -46t-63.5 -17h-1536q-34 0 -63.5 17t-46.5 46q-37 63 -2 126l768 1408q17 31 47 49t65 18t65 -18t47 -49z" /> - <glyph glyph-name="plane" unicode="&#xf072;" horiz-adv-x="1408" -d="M1376 1376q44 -52 12 -148t-108 -172l-161 -161l160 -696q5 -19 -12 -33l-128 -96q-7 -6 -19 -6q-4 0 -7 1q-15 3 -21 16l-279 508l-259 -259l53 -194q5 -17 -8 -31l-96 -96q-9 -9 -23 -9h-2q-15 2 -24 13l-189 252l-252 189q-11 7 -13 23q-1 13 9 25l96 97q9 9 23 9 -q6 0 8 -1l194 -53l259 259l-508 279q-14 8 -17 24q-2 16 9 27l128 128q14 13 30 8l665 -159l160 160q76 76 172 108t148 -12z" /> - <glyph glyph-name="calendar" unicode="&#xf073;" horiz-adv-x="1664" -d="M128 -128h288v288h-288v-288zM480 -128h320v288h-320v-288zM128 224h288v320h-288v-320zM480 224h320v320h-320v-320zM128 608h288v288h-288v-288zM864 -128h320v288h-320v-288zM480 608h320v288h-320v-288zM1248 -128h288v288h-288v-288zM864 224h320v320h-320v-320z -M512 1088v288q0 13 -9.5 22.5t-22.5 9.5h-64q-13 0 -22.5 -9.5t-9.5 -22.5v-288q0 -13 9.5 -22.5t22.5 -9.5h64q13 0 22.5 9.5t9.5 22.5zM1248 224h288v320h-288v-320zM864 608h320v288h-320v-288zM1248 608h288v288h-288v-288zM1280 1088v288q0 13 -9.5 22.5t-22.5 9.5h-64 -q-13 0 -22.5 -9.5t-9.5 -22.5v-288q0 -13 9.5 -22.5t22.5 -9.5h64q13 0 22.5 9.5t9.5 22.5zM1664 1152v-1280q0 -52 -38 -90t-90 -38h-1408q-52 0 -90 38t-38 90v1280q0 52 38 90t90 38h128v96q0 66 47 113t113 47h64q66 0 113 -47t47 -113v-96h384v96q0 66 47 113t113 47 -h64q66 0 113 -47t47 -113v-96h128q52 0 90 -38t38 -90z" /> - <glyph glyph-name="random" unicode="&#xf074;" horiz-adv-x="1792" -d="M666 1055q-60 -92 -137 -273q-22 45 -37 72.5t-40.5 63.5t-51 56.5t-63 35t-81.5 14.5h-224q-14 0 -23 9t-9 23v192q0 14 9 23t23 9h224q250 0 410 -225zM1792 256q0 -14 -9 -23l-320 -320q-9 -9 -23 -9q-13 0 -22.5 9.5t-9.5 22.5v192q-32 0 -85 -0.5t-81 -1t-73 1 -t-71 5t-64 10.5t-63 18.5t-58 28.5t-59 40t-55 53.5t-56 69.5q59 93 136 273q22 -45 37 -72.5t40.5 -63.5t51 -56.5t63 -35t81.5 -14.5h256v192q0 14 9 23t23 9q12 0 24 -10l319 -319q9 -9 9 -23zM1792 1152q0 -14 -9 -23l-320 -320q-9 -9 -23 -9q-13 0 -22.5 9.5t-9.5 22.5 -v192h-256q-48 0 -87 -15t-69 -45t-51 -61.5t-45 -77.5q-32 -62 -78 -171q-29 -66 -49.5 -111t-54 -105t-64 -100t-74 -83t-90 -68.5t-106.5 -42t-128 -16.5h-224q-14 0 -23 9t-9 23v192q0 14 9 23t23 9h224q48 0 87 15t69 45t51 61.5t45 77.5q32 62 78 171q29 66 49.5 111 -t54 105t64 100t74 83t90 68.5t106.5 42t128 16.5h256v192q0 14 9 23t23 9q12 0 24 -10l319 -319q9 -9 9 -23z" /> - <glyph glyph-name="comment" unicode="&#xf075;" horiz-adv-x="1792" -d="M1792 640q0 -174 -120 -321.5t-326 -233t-450 -85.5q-70 0 -145 8q-198 -175 -460 -242q-49 -14 -114 -22q-17 -2 -30.5 9t-17.5 29v1q-3 4 -0.5 12t2 10t4.5 9.5l6 9t7 8.5t8 9q7 8 31 34.5t34.5 38t31 39.5t32.5 51t27 59t26 76q-157 89 -247.5 220t-90.5 281 -q0 130 71 248.5t191 204.5t286 136.5t348 50.5q244 0 450 -85.5t326 -233t120 -321.5z" /> - <glyph glyph-name="magnet" unicode="&#xf076;" -d="M1536 704v-128q0 -201 -98.5 -362t-274 -251.5t-395.5 -90.5t-395.5 90.5t-274 251.5t-98.5 362v128q0 26 19 45t45 19h384q26 0 45 -19t19 -45v-128q0 -52 23.5 -90t53.5 -57t71 -30t64 -13t44 -2t44 2t64 13t71 30t53.5 57t23.5 90v128q0 26 19 45t45 19h384 -q26 0 45 -19t19 -45zM512 1344v-384q0 -26 -19 -45t-45 -19h-384q-26 0 -45 19t-19 45v384q0 26 19 45t45 19h384q26 0 45 -19t19 -45zM1536 1344v-384q0 -26 -19 -45t-45 -19h-384q-26 0 -45 19t-19 45v384q0 26 19 45t45 19h384q26 0 45 -19t19 -45z" /> - <glyph glyph-name="chevron_up" unicode="&#xf077;" horiz-adv-x="1792" -d="M1683 205l-166 -165q-19 -19 -45 -19t-45 19l-531 531l-531 -531q-19 -19 -45 -19t-45 19l-166 165q-19 19 -19 45.5t19 45.5l742 741q19 19 45 19t45 -19l742 -741q19 -19 19 -45.5t-19 -45.5z" /> - <glyph glyph-name="chevron_down" unicode="&#xf078;" horiz-adv-x="1792" -d="M1683 728l-742 -741q-19 -19 -45 -19t-45 19l-742 741q-19 19 -19 45.5t19 45.5l166 165q19 19 45 19t45 -19l531 -531l531 531q19 19 45 19t45 -19l166 -165q19 -19 19 -45.5t-19 -45.5z" /> - <glyph glyph-name="retweet" unicode="&#xf079;" horiz-adv-x="1920" -d="M1280 32q0 -13 -9.5 -22.5t-22.5 -9.5h-960q-8 0 -13.5 2t-9 7t-5.5 8t-3 11.5t-1 11.5v13v11v160v416h-192q-26 0 -45 19t-19 45q0 24 15 41l320 384q19 22 49 22t49 -22l320 -384q15 -17 15 -41q0 -26 -19 -45t-45 -19h-192v-384h576q16 0 25 -11l160 -192q7 -10 7 -21 -zM1920 448q0 -24 -15 -41l-320 -384q-20 -23 -49 -23t-49 23l-320 384q-15 17 -15 41q0 26 19 45t45 19h192v384h-576q-16 0 -25 12l-160 192q-7 9 -7 20q0 13 9.5 22.5t22.5 9.5h960q8 0 13.5 -2t9 -7t5.5 -8t3 -11.5t1 -11.5v-13v-11v-160v-416h192q26 0 45 -19t19 -45z -" /> - <glyph glyph-name="shopping_cart" unicode="&#xf07a;" horiz-adv-x="1664" -d="M640 0q0 -52 -38 -90t-90 -38t-90 38t-38 90t38 90t90 38t90 -38t38 -90zM1536 0q0 -52 -38 -90t-90 -38t-90 38t-38 90t38 90t90 38t90 -38t38 -90zM1664 1088v-512q0 -24 -16.5 -42.5t-40.5 -21.5l-1044 -122q13 -60 13 -70q0 -16 -24 -64h920q26 0 45 -19t19 -45 -t-19 -45t-45 -19h-1024q-26 0 -45 19t-19 45q0 11 8 31.5t16 36t21.5 40t15.5 29.5l-177 823h-204q-26 0 -45 19t-19 45t19 45t45 19h256q16 0 28.5 -6.5t19.5 -15.5t13 -24.5t8 -26t5.5 -29.5t4.5 -26h1201q26 0 45 -19t19 -45z" /> - <glyph glyph-name="folder_close" unicode="&#xf07b;" horiz-adv-x="1664" -d="M1664 928v-704q0 -92 -66 -158t-158 -66h-1216q-92 0 -158 66t-66 158v960q0 92 66 158t158 66h320q92 0 158 -66t66 -158v-32h672q92 0 158 -66t66 -158z" /> - <glyph glyph-name="folder_open" unicode="&#xf07c;" horiz-adv-x="1920" -d="M1879 584q0 -31 -31 -66l-336 -396q-43 -51 -120.5 -86.5t-143.5 -35.5h-1088q-34 0 -60.5 13t-26.5 43q0 31 31 66l336 396q43 51 120.5 86.5t143.5 35.5h1088q34 0 60.5 -13t26.5 -43zM1536 928v-160h-832q-94 0 -197 -47.5t-164 -119.5l-337 -396l-5 -6q0 4 -0.5 12.5 -t-0.5 12.5v960q0 92 66 158t158 66h320q92 0 158 -66t66 -158v-32h544q92 0 158 -66t66 -158z" /> - <glyph glyph-name="resize_vertical" unicode="&#xf07d;" horiz-adv-x="768" -d="M704 1216q0 -26 -19 -45t-45 -19h-128v-1024h128q26 0 45 -19t19 -45t-19 -45l-256 -256q-19 -19 -45 -19t-45 19l-256 256q-19 19 -19 45t19 45t45 19h128v1024h-128q-26 0 -45 19t-19 45t19 45l256 256q19 19 45 19t45 -19l256 -256q19 -19 19 -45z" /> - <glyph glyph-name="resize_horizontal" unicode="&#xf07e;" horiz-adv-x="1792" -d="M1792 640q0 -26 -19 -45l-256 -256q-19 -19 -45 -19t-45 19t-19 45v128h-1024v-128q0 -26 -19 -45t-45 -19t-45 19l-256 256q-19 19 -19 45t19 45l256 256q19 19 45 19t45 -19t19 -45v-128h1024v128q0 26 19 45t45 19t45 -19l256 -256q19 -19 19 -45z" /> - <glyph glyph-name="bar_chart" unicode="&#xf080;" horiz-adv-x="2048" -d="M640 640v-512h-256v512h256zM1024 1152v-1024h-256v1024h256zM2048 0v-128h-2048v1536h128v-1408h1920zM1408 896v-768h-256v768h256zM1792 1280v-1152h-256v1152h256z" /> - <glyph glyph-name="twitter_sign" unicode="&#xf081;" -d="M1280 926q-56 -25 -121 -34q68 40 93 117q-65 -38 -134 -51q-61 66 -153 66q-87 0 -148.5 -61.5t-61.5 -148.5q0 -29 5 -48q-129 7 -242 65t-192 155q-29 -50 -29 -106q0 -114 91 -175q-47 1 -100 26v-2q0 -75 50 -133.5t123 -72.5q-29 -8 -51 -8q-13 0 -39 4 -q21 -63 74.5 -104t121.5 -42q-116 -90 -261 -90q-26 0 -50 3q148 -94 322 -94q112 0 210 35.5t168 95t120.5 137t75 162t24.5 168.5q0 18 -1 27q63 45 105 109zM1536 1120v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5 -t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" /> - <glyph glyph-name="facebook_sign" unicode="&#xf082;" -d="M1248 1408q119 0 203.5 -84.5t84.5 -203.5v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-188v595h199l30 232h-229v148q0 56 23.5 84t91.5 28l122 1v207q-63 9 -178 9q-136 0 -217.5 -80t-81.5 -226v-171h-200v-232h200v-595h-532q-119 0 -203.5 84.5t-84.5 203.5v960 -q0 119 84.5 203.5t203.5 84.5h960z" /> - <glyph glyph-name="camera_retro" unicode="&#xf083;" horiz-adv-x="1792" -d="M928 704q0 14 -9 23t-23 9q-66 0 -113 -47t-47 -113q0 -14 9 -23t23 -9t23 9t9 23q0 40 28 68t68 28q14 0 23 9t9 23zM1152 574q0 -106 -75 -181t-181 -75t-181 75t-75 181t75 181t181 75t181 -75t75 -181zM128 0h1536v128h-1536v-128zM1280 574q0 159 -112.5 271.5 -t-271.5 112.5t-271.5 -112.5t-112.5 -271.5t112.5 -271.5t271.5 -112.5t271.5 112.5t112.5 271.5zM256 1216h384v128h-384v-128zM128 1024h1536v118v138h-828l-64 -128h-644v-128zM1792 1280v-1280q0 -53 -37.5 -90.5t-90.5 -37.5h-1536q-53 0 -90.5 37.5t-37.5 90.5v1280 -q0 53 37.5 90.5t90.5 37.5h1536q53 0 90.5 -37.5t37.5 -90.5z" /> - <glyph glyph-name="key" unicode="&#xf084;" horiz-adv-x="1792" -d="M832 1024q0 80 -56 136t-136 56t-136 -56t-56 -136q0 -42 19 -83q-41 19 -83 19q-80 0 -136 -56t-56 -136t56 -136t136 -56t136 56t56 136q0 42 -19 83q41 -19 83 -19q80 0 136 56t56 136zM1683 320q0 -17 -49 -66t-66 -49q-9 0 -28.5 16t-36.5 33t-38.5 40t-24.5 26 -l-96 -96l220 -220q28 -28 28 -68q0 -42 -39 -81t-81 -39q-40 0 -68 28l-671 671q-176 -131 -365 -131q-163 0 -265.5 102.5t-102.5 265.5q0 160 95 313t248 248t313 95q163 0 265.5 -102.5t102.5 -265.5q0 -189 -131 -365l355 -355l96 96q-3 3 -26 24.5t-40 38.5t-33 36.5 -t-16 28.5q0 17 49 66t66 49q13 0 23 -10q6 -6 46 -44.5t82 -79.5t86.5 -86t73 -78t28.5 -41z" /> - <glyph glyph-name="cogs" unicode="&#xf085;" horiz-adv-x="1920" -d="M896 640q0 106 -75 181t-181 75t-181 -75t-75 -181t75 -181t181 -75t181 75t75 181zM1664 128q0 52 -38 90t-90 38t-90 -38t-38 -90q0 -53 37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5zM1664 1152q0 52 -38 90t-90 38t-90 -38t-38 -90q0 -53 37.5 -90.5t90.5 -37.5 -t90.5 37.5t37.5 90.5zM1280 731v-185q0 -10 -7 -19.5t-16 -10.5l-155 -24q-11 -35 -32 -76q34 -48 90 -115q7 -11 7 -20q0 -12 -7 -19q-23 -30 -82.5 -89.5t-78.5 -59.5q-11 0 -21 7l-115 90q-37 -19 -77 -31q-11 -108 -23 -155q-7 -24 -30 -24h-186q-11 0 -20 7.5t-10 17.5 -l-23 153q-34 10 -75 31l-118 -89q-7 -7 -20 -7q-11 0 -21 8q-144 133 -144 160q0 9 7 19q10 14 41 53t47 61q-23 44 -35 82l-152 24q-10 1 -17 9.5t-7 19.5v185q0 10 7 19.5t16 10.5l155 24q11 35 32 76q-34 48 -90 115q-7 11 -7 20q0 12 7 20q22 30 82 89t79 59q11 0 21 -7 -l115 -90q34 18 77 32q11 108 23 154q7 24 30 24h186q11 0 20 -7.5t10 -17.5l23 -153q34 -10 75 -31l118 89q8 7 20 7q11 0 21 -8q144 -133 144 -160q0 -8 -7 -19q-12 -16 -42 -54t-45 -60q23 -48 34 -82l152 -23q10 -2 17 -10.5t7 -19.5zM1920 198v-140q0 -16 -149 -31 -q-12 -27 -30 -52q51 -113 51 -138q0 -4 -4 -7q-122 -71 -124 -71q-8 0 -46 47t-52 68q-20 -2 -30 -2t-30 2q-14 -21 -52 -68t-46 -47q-2 0 -124 71q-4 3 -4 7q0 25 51 138q-18 25 -30 52q-149 15 -149 31v140q0 16 149 31q13 29 30 52q-51 113 -51 138q0 4 4 7q4 2 35 20 -t59 34t30 16q8 0 46 -46.5t52 -67.5q20 2 30 2t30 -2q51 71 92 112l6 2q4 0 124 -70q4 -3 4 -7q0 -25 -51 -138q17 -23 30 -52q149 -15 149 -31zM1920 1222v-140q0 -16 -149 -31q-12 -27 -30 -52q51 -113 51 -138q0 -4 -4 -7q-122 -71 -124 -71q-8 0 -46 47t-52 68 -q-20 -2 -30 -2t-30 2q-14 -21 -52 -68t-46 -47q-2 0 -124 71q-4 3 -4 7q0 25 51 138q-18 25 -30 52q-149 15 -149 31v140q0 16 149 31q13 29 30 52q-51 113 -51 138q0 4 4 7q4 2 35 20t59 34t30 16q8 0 46 -46.5t52 -67.5q20 2 30 2t30 -2q51 71 92 112l6 2q4 0 124 -70 -q4 -3 4 -7q0 -25 -51 -138q17 -23 30 -52q149 -15 149 -31z" /> - <glyph glyph-name="comments" unicode="&#xf086;" horiz-adv-x="1792" -d="M1408 768q0 -139 -94 -257t-256.5 -186.5t-353.5 -68.5q-86 0 -176 16q-124 -88 -278 -128q-36 -9 -86 -16h-3q-11 0 -20.5 8t-11.5 21q-1 3 -1 6.5t0.5 6.5t2 6l2.5 5t3.5 5.5t4 5t4.5 5t4 4.5q5 6 23 25t26 29.5t22.5 29t25 38.5t20.5 44q-124 72 -195 177t-71 224 -q0 139 94 257t256.5 186.5t353.5 68.5t353.5 -68.5t256.5 -186.5t94 -257zM1792 512q0 -120 -71 -224.5t-195 -176.5q10 -24 20.5 -44t25 -38.5t22.5 -29t26 -29.5t23 -25q1 -1 4 -4.5t4.5 -5t4 -5t3.5 -5.5l2.5 -5t2 -6t0.5 -6.5t-1 -6.5q-3 -14 -13 -22t-22 -7 -q-50 7 -86 16q-154 40 -278 128q-90 -16 -176 -16q-271 0 -472 132q58 -4 88 -4q161 0 309 45t264 129q125 92 192 212t67 254q0 77 -23 152q129 -71 204 -178t75 -230z" /> - <glyph glyph-name="thumbs_up_alt" unicode="&#xf087;" -d="M256 192q0 26 -19 45t-45 19t-45 -19t-19 -45t19 -45t45 -19t45 19t19 45zM1408 768q0 51 -39 89.5t-89 38.5h-352q0 58 48 159.5t48 160.5q0 98 -32 145t-128 47q-26 -26 -38 -85t-30.5 -125.5t-59.5 -109.5q-22 -23 -77 -91q-4 -5 -23 -30t-31.5 -41t-34.5 -42.5 -t-40 -44t-38.5 -35.5t-40 -27t-35.5 -9h-32v-640h32q13 0 31.5 -3t33 -6.5t38 -11t35 -11.5t35.5 -12.5t29 -10.5q211 -73 342 -73h121q192 0 192 167q0 26 -5 56q30 16 47.5 52.5t17.5 73.5t-18 69q53 50 53 119q0 25 -10 55.5t-25 47.5q32 1 53.5 47t21.5 81zM1536 769 -q0 -89 -49 -163q9 -33 9 -69q0 -77 -38 -144q3 -21 3 -43q0 -101 -60 -178q1 -139 -85 -219.5t-227 -80.5h-36h-93q-96 0 -189.5 22.5t-216.5 65.5q-116 40 -138 40h-288q-53 0 -90.5 37.5t-37.5 90.5v640q0 53 37.5 90.5t90.5 37.5h274q36 24 137 155q58 75 107 128 -q24 25 35.5 85.5t30.5 126.5t62 108q39 37 90 37q84 0 151 -32.5t102 -101.5t35 -186q0 -93 -48 -192h176q104 0 180 -76t76 -179z" /> - <glyph glyph-name="thumbs_down_alt" unicode="&#xf088;" -d="M256 1088q0 26 -19 45t-45 19t-45 -19t-19 -45t19 -45t45 -19t45 19t19 45zM1408 512q0 35 -21.5 81t-53.5 47q15 17 25 47.5t10 55.5q0 69 -53 119q18 31 18 69q0 37 -17.5 73.5t-47.5 52.5q5 30 5 56q0 85 -49 126t-136 41h-128q-131 0 -342 -73q-5 -2 -29 -10.5 -t-35.5 -12.5t-35 -11.5t-38 -11t-33 -6.5t-31.5 -3h-32v-640h32q16 0 35.5 -9t40 -27t38.5 -35.5t40 -44t34.5 -42.5t31.5 -41t23 -30q55 -68 77 -91q41 -43 59.5 -109.5t30.5 -125.5t38 -85q96 0 128 47t32 145q0 59 -48 160.5t-48 159.5h352q50 0 89 38.5t39 89.5z -M1536 511q0 -103 -76 -179t-180 -76h-176q48 -99 48 -192q0 -118 -35 -186q-35 -69 -102 -101.5t-151 -32.5q-51 0 -90 37q-34 33 -54 82t-25.5 90.5t-17.5 84.5t-31 64q-48 50 -107 127q-101 131 -137 155h-274q-53 0 -90.5 37.5t-37.5 90.5v640q0 53 37.5 90.5t90.5 37.5 -h288q22 0 138 40q128 44 223 66t200 22h112q140 0 226.5 -79t85.5 -216v-5q60 -77 60 -178q0 -22 -3 -43q38 -67 38 -144q0 -36 -9 -69q49 -73 49 -163z" /> - <glyph glyph-name="star_half" unicode="&#xf089;" horiz-adv-x="896" -d="M832 1504v-1339l-449 -236q-22 -12 -40 -12q-21 0 -31.5 14.5t-10.5 35.5q0 6 2 20l86 500l-364 354q-25 27 -25 48q0 37 56 46l502 73l225 455q19 41 49 41z" /> - <glyph glyph-name="heart_empty" unicode="&#xf08a;" horiz-adv-x="1792" -d="M1664 940q0 81 -21.5 143t-55 98.5t-81.5 59.5t-94 31t-98 8t-112 -25.5t-110.5 -64t-86.5 -72t-60 -61.5q-18 -22 -49 -22t-49 22q-24 28 -60 61.5t-86.5 72t-110.5 64t-112 25.5t-98 -8t-94 -31t-81.5 -59.5t-55 -98.5t-21.5 -143q0 -168 187 -355l581 -560l580 559 -q188 188 188 356zM1792 940q0 -221 -229 -450l-623 -600q-18 -18 -44 -18t-44 18l-624 602q-10 8 -27.5 26t-55.5 65.5t-68 97.5t-53.5 121t-23.5 138q0 220 127 344t351 124q62 0 126.5 -21.5t120 -58t95.5 -68.5t76 -68q36 36 76 68t95.5 68.5t120 58t126.5 21.5 -q224 0 351 -124t127 -344z" /> - <glyph glyph-name="signout" unicode="&#xf08b;" horiz-adv-x="1664" -d="M640 96q0 -4 1 -20t0.5 -26.5t-3 -23.5t-10 -19.5t-20.5 -6.5h-320q-119 0 -203.5 84.5t-84.5 203.5v704q0 119 84.5 203.5t203.5 84.5h320q13 0 22.5 -9.5t9.5 -22.5q0 -4 1 -20t0.5 -26.5t-3 -23.5t-10 -19.5t-20.5 -6.5h-320q-66 0 -113 -47t-47 -113v-704 -q0 -66 47 -113t113 -47h288h11h13t11.5 -1t11.5 -3t8 -5.5t7 -9t2 -13.5zM1568 640q0 -26 -19 -45l-544 -544q-19 -19 -45 -19t-45 19t-19 45v288h-448q-26 0 -45 19t-19 45v384q0 26 19 45t45 19h448v288q0 26 19 45t45 19t45 -19l544 -544q19 -19 19 -45z" /> - <glyph glyph-name="linkedin_sign" unicode="&#xf08c;" -d="M237 122h231v694h-231v-694zM483 1030q-1 52 -36 86t-93 34t-94.5 -34t-36.5 -86q0 -51 35.5 -85.5t92.5 -34.5h1q59 0 95 34.5t36 85.5zM1068 122h231v398q0 154 -73 233t-193 79q-136 0 -209 -117h2v101h-231q3 -66 0 -694h231v388q0 38 7 56q15 35 45 59.5t74 24.5 -q116 0 116 -157v-371zM1536 1120v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" /> - <glyph glyph-name="pushpin" unicode="&#xf08d;" horiz-adv-x="1152" -d="M480 672v448q0 14 -9 23t-23 9t-23 -9t-9 -23v-448q0 -14 9 -23t23 -9t23 9t9 23zM1152 320q0 -26 -19 -45t-45 -19h-429l-51 -483q-2 -12 -10.5 -20.5t-20.5 -8.5h-1q-27 0 -32 27l-76 485h-404q-26 0 -45 19t-19 45q0 123 78.5 221.5t177.5 98.5v512q-52 0 -90 38 -t-38 90t38 90t90 38h640q52 0 90 -38t38 -90t-38 -90t-90 -38v-512q99 0 177.5 -98.5t78.5 -221.5z" /> - <glyph glyph-name="external_link" unicode="&#xf08e;" horiz-adv-x="1792" -d="M1408 608v-320q0 -119 -84.5 -203.5t-203.5 -84.5h-832q-119 0 -203.5 84.5t-84.5 203.5v832q0 119 84.5 203.5t203.5 84.5h704q14 0 23 -9t9 -23v-64q0 -14 -9 -23t-23 -9h-704q-66 0 -113 -47t-47 -113v-832q0 -66 47 -113t113 -47h832q66 0 113 47t47 113v320 -q0 14 9 23t23 9h64q14 0 23 -9t9 -23zM1792 1472v-512q0 -26 -19 -45t-45 -19t-45 19l-176 176l-652 -652q-10 -10 -23 -10t-23 10l-114 114q-10 10 -10 23t10 23l652 652l-176 176q-19 19 -19 45t19 45t45 19h512q26 0 45 -19t19 -45z" /> - <glyph glyph-name="signin" unicode="&#xf090;" -d="M1184 640q0 -26 -19 -45l-544 -544q-19 -19 -45 -19t-45 19t-19 45v288h-448q-26 0 -45 19t-19 45v384q0 26 19 45t45 19h448v288q0 26 19 45t45 19t45 -19l544 -544q19 -19 19 -45zM1536 992v-704q0 -119 -84.5 -203.5t-203.5 -84.5h-320q-13 0 -22.5 9.5t-9.5 22.5 -q0 4 -1 20t-0.5 26.5t3 23.5t10 19.5t20.5 6.5h320q66 0 113 47t47 113v704q0 66 -47 113t-113 47h-288h-11h-13t-11.5 1t-11.5 3t-8 5.5t-7 9t-2 13.5q0 4 -1 20t-0.5 26.5t3 23.5t10 19.5t20.5 6.5h320q119 0 203.5 -84.5t84.5 -203.5z" /> - <glyph glyph-name="trophy" unicode="&#xf091;" horiz-adv-x="1664" -d="M458 653q-74 162 -74 371h-256v-96q0 -78 94.5 -162t235.5 -113zM1536 928v96h-256q0 -209 -74 -371q141 29 235.5 113t94.5 162zM1664 1056v-128q0 -71 -41.5 -143t-112 -130t-173 -97.5t-215.5 -44.5q-42 -54 -95 -95q-38 -34 -52.5 -72.5t-14.5 -89.5q0 -54 30.5 -91 -t97.5 -37q75 0 133.5 -45.5t58.5 -114.5v-64q0 -14 -9 -23t-23 -9h-832q-14 0 -23 9t-9 23v64q0 69 58.5 114.5t133.5 45.5q67 0 97.5 37t30.5 91q0 51 -14.5 89.5t-52.5 72.5q-53 41 -95 95q-113 5 -215.5 44.5t-173 97.5t-112 130t-41.5 143v128q0 40 28 68t68 28h288v96 -q0 66 47 113t113 47h576q66 0 113 -47t47 -113v-96h288q40 0 68 -28t28 -68z" /> - <glyph glyph-name="github_sign" unicode="&#xf092;" -d="M519 336q4 6 -3 13q-9 7 -14 2q-4 -6 3 -13q9 -7 14 -2zM491 377q-5 7 -12 4q-6 -4 0 -12q7 -8 12 -5q6 4 0 13zM450 417q2 4 -5 8q-7 2 -8 -2q-3 -5 4 -8q8 -2 9 2zM471 394q2 1 1.5 4.5t-3.5 5.5q-6 7 -10 3t1 -11q6 -6 11 -2zM557 319q2 7 -9 11q-9 3 -13 -4 -q-2 -7 9 -11q9 -3 13 4zM599 316q0 8 -12 8q-10 0 -10 -8t11 -8t11 8zM638 323q-2 7 -13 5t-9 -9q2 -8 12 -6t10 10zM1280 640q0 212 -150 362t-362 150t-362 -150t-150 -362q0 -167 98 -300.5t252 -185.5q18 -3 26.5 5t8.5 20q0 52 -1 95q-6 -1 -15.5 -2.5t-35.5 -2t-48 4 -t-43.5 20t-29.5 41.5q-23 59 -57 74q-2 1 -4.5 3.5l-8 8t-7 9.5t4 7.5t19.5 3.5q6 0 15 -2t30 -15.5t33 -35.5q16 -28 37.5 -42t43.5 -14t38 3.5t30 9.5q7 47 33 69q-49 6 -86 18.5t-73 39t-55.5 76t-19.5 119.5q0 79 53 137q-24 62 5 136q19 6 54.5 -7.5t60.5 -29.5l26 -16 -q58 17 128 17t128 -17q11 7 28.5 18t55.5 26t57 9q29 -74 5 -136q53 -58 53 -137q0 -57 -14 -100.5t-35.5 -70t-53.5 -44.5t-62.5 -26t-68.5 -12q35 -31 35 -95q0 -40 -0.5 -89t-0.5 -51q0 -12 8.5 -20t26.5 -5q154 52 252 185.5t98 300.5zM1536 1120v-960 -q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" /> - <glyph glyph-name="upload_alt" unicode="&#xf093;" horiz-adv-x="1664" -d="M1280 64q0 26 -19 45t-45 19t-45 -19t-19 -45t19 -45t45 -19t45 19t19 45zM1536 64q0 26 -19 45t-45 19t-45 -19t-19 -45t19 -45t45 -19t45 19t19 45zM1664 288v-320q0 -40 -28 -68t-68 -28h-1472q-40 0 -68 28t-28 68v320q0 40 28 68t68 28h427q21 -56 70.5 -92 -t110.5 -36h256q61 0 110.5 36t70.5 92h427q40 0 68 -28t28 -68zM1339 936q-17 -40 -59 -40h-256v-448q0 -26 -19 -45t-45 -19h-256q-26 0 -45 19t-19 45v448h-256q-42 0 -59 40q-17 39 14 69l448 448q18 19 45 19t45 -19l448 -448q31 -30 14 -69z" /> - <glyph glyph-name="lemon" unicode="&#xf094;" -d="M1407 710q0 44 -7 113.5t-18 96.5q-12 30 -17 44t-9 36.5t-4 48.5q0 23 5 68.5t5 67.5q0 37 -10 55q-4 1 -13 1q-19 0 -58 -4.5t-59 -4.5q-60 0 -176 24t-175 24q-43 0 -94.5 -11.5t-85 -23.5t-89.5 -34q-137 -54 -202 -103q-96 -73 -159.5 -189.5t-88 -236t-24.5 -248.5 -q0 -40 12.5 -120t12.5 -121q0 -23 -11 -66.5t-11 -65.5t12 -36.5t34 -14.5q24 0 72.5 11t73.5 11q57 0 169.5 -15.5t169.5 -15.5q181 0 284 36q129 45 235.5 152.5t166 245.5t59.5 275zM1535 712q0 -165 -70 -327.5t-196 -288t-281 -180.5q-124 -44 -326 -44 -q-57 0 -170 14.5t-169 14.5q-24 0 -72.5 -14.5t-73.5 -14.5q-73 0 -123.5 55.5t-50.5 128.5q0 24 11 68t11 67q0 40 -12.5 120.5t-12.5 121.5q0 111 18 217.5t54.5 209.5t100.5 194t150 156q78 59 232 120q194 78 316 78q60 0 175.5 -24t173.5 -24q19 0 57 5t58 5 -q81 0 118 -50.5t37 -134.5q0 -23 -5 -68t-5 -68q0 -13 2 -25t3.5 -16.5t7.5 -20.5t8 -20q16 -40 25 -118.5t9 -136.5z" /> - <glyph glyph-name="phone" unicode="&#xf095;" horiz-adv-x="1408" -d="M1408 296q0 -27 -10 -70.5t-21 -68.5q-21 -50 -122 -106q-94 -51 -186 -51q-27 0 -53 3.5t-57.5 12.5t-47 14.5t-55.5 20.5t-49 18q-98 35 -175 83q-127 79 -264 216t-216 264q-48 77 -83 175q-3 9 -18 49t-20.5 55.5t-14.5 47t-12.5 57.5t-3.5 53q0 92 51 186 -q56 101 106 122q25 11 68.5 21t70.5 10q14 0 21 -3q18 -6 53 -76q11 -19 30 -54t35 -63.5t31 -53.5q3 -4 17.5 -25t21.5 -35.5t7 -28.5q0 -20 -28.5 -50t-62 -55t-62 -53t-28.5 -46q0 -9 5 -22.5t8.5 -20.5t14 -24t11.5 -19q76 -137 174 -235t235 -174q2 -1 19 -11.5t24 -14 -t20.5 -8.5t22.5 -5q18 0 46 28.5t53 62t55 62t50 28.5q14 0 28.5 -7t35.5 -21.5t25 -17.5q25 -15 53.5 -31t63.5 -35t54 -30q70 -35 76 -53q3 -7 3 -21z" /> - <glyph glyph-name="check_empty" unicode="&#xf096;" horiz-adv-x="1408" -d="M1120 1280h-832q-66 0 -113 -47t-47 -113v-832q0 -66 47 -113t113 -47h832q66 0 113 47t47 113v832q0 66 -47 113t-113 47zM1408 1120v-832q0 -119 -84.5 -203.5t-203.5 -84.5h-832q-119 0 -203.5 84.5t-84.5 203.5v832q0 119 84.5 203.5t203.5 84.5h832 -q119 0 203.5 -84.5t84.5 -203.5z" /> - <glyph glyph-name="bookmark_empty" unicode="&#xf097;" horiz-adv-x="1280" -d="M1152 1280h-1024v-1242l423 406l89 85l89 -85l423 -406v1242zM1164 1408q23 0 44 -9q33 -13 52.5 -41t19.5 -62v-1289q0 -34 -19.5 -62t-52.5 -41q-19 -8 -44 -8q-48 0 -83 32l-441 424l-441 -424q-36 -33 -83 -33q-23 0 -44 9q-33 13 -52.5 41t-19.5 62v1289 -q0 34 19.5 62t52.5 41q21 9 44 9h1048z" /> - <glyph glyph-name="phone_sign" unicode="&#xf098;" -d="M1280 343q0 11 -2 16t-18 16.5t-40.5 25t-47.5 26.5t-45.5 25t-28.5 15q-5 3 -19 13t-25 15t-21 5q-15 0 -36.5 -20.5t-39.5 -45t-38.5 -45t-33.5 -20.5q-7 0 -16.5 3.5t-15.5 6.5t-17 9.5t-14 8.5q-99 55 -170 126.5t-127 170.5q-2 3 -8.5 14t-9.5 17t-6.5 15.5 -t-3.5 16.5q0 13 20.5 33.5t45 38.5t45 39.5t20.5 36.5q0 10 -5 21t-15 25t-13 19q-3 6 -15 28.5t-25 45.5t-26.5 47.5t-25 40.5t-16.5 18t-16 2q-48 0 -101 -22q-46 -21 -80 -94.5t-34 -130.5q0 -16 2.5 -34t5 -30.5t9 -33t10 -29.5t12.5 -33t11 -30q60 -164 216.5 -320.5 -t320.5 -216.5q6 -2 30 -11t33 -12.5t29.5 -10t33 -9t30.5 -5t34 -2.5q57 0 130.5 34t94.5 80q22 53 22 101zM1536 1120v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z -" /> - <glyph glyph-name="twitter" unicode="&#xf099;" horiz-adv-x="1664" -d="M1620 1128q-67 -98 -162 -167q1 -14 1 -42q0 -130 -38 -259.5t-115.5 -248.5t-184.5 -210.5t-258 -146t-323 -54.5q-271 0 -496 145q35 -4 78 -4q225 0 401 138q-105 2 -188 64.5t-114 159.5q33 -5 61 -5q43 0 85 11q-112 23 -185.5 111.5t-73.5 205.5v4q68 -38 146 -41 -q-66 44 -105 115t-39 154q0 88 44 163q121 -149 294.5 -238.5t371.5 -99.5q-8 38 -8 74q0 134 94.5 228.5t228.5 94.5q140 0 236 -102q109 21 205 78q-37 -115 -142 -178q93 10 186 50z" /> - <glyph glyph-name="facebook" unicode="&#xf09a;" horiz-adv-x="1024" -d="M959 1524v-264h-157q-86 0 -116 -36t-30 -108v-189h293l-39 -296h-254v-759h-306v759h-255v296h255v218q0 186 104 288.5t277 102.5q147 0 228 -12z" /> - <glyph glyph-name="github" unicode="&#xf09b;" -d="M768 1408q209 0 385.5 -103t279.5 -279.5t103 -385.5q0 -251 -146.5 -451.5t-378.5 -277.5q-27 -5 -40 7t-13 30q0 3 0.5 76.5t0.5 134.5q0 97 -52 142q57 6 102.5 18t94 39t81 66.5t53 105t20.5 150.5q0 119 -79 206q37 91 -8 204q-28 9 -81 -11t-92 -44l-38 -24 -q-93 26 -192 26t-192 -26q-16 11 -42.5 27t-83.5 38.5t-85 13.5q-45 -113 -8 -204q-79 -87 -79 -206q0 -85 20.5 -150t52.5 -105t80.5 -67t94 -39t102.5 -18q-39 -36 -49 -103q-21 -10 -45 -15t-57 -5t-65.5 21.5t-55.5 62.5q-19 32 -48.5 52t-49.5 24l-20 3q-21 0 -29 -4.5 -t-5 -11.5t9 -14t13 -12l7 -5q22 -10 43.5 -38t31.5 -51l10 -23q13 -38 44 -61.5t67 -30t69.5 -7t55.5 3.5l23 4q0 -38 0.5 -88.5t0.5 -54.5q0 -18 -13 -30t-40 -7q-232 77 -378.5 277.5t-146.5 451.5q0 209 103 385.5t279.5 279.5t385.5 103zM291 305q3 7 -7 12 -q-10 3 -13 -2q-3 -7 7 -12q9 -6 13 2zM322 271q7 5 -2 16q-10 9 -16 3q-7 -5 2 -16q10 -10 16 -3zM352 226q9 7 0 19q-8 13 -17 6q-9 -5 0 -18t17 -7zM394 184q8 8 -4 19q-12 12 -20 3q-9 -8 4 -19q12 -12 20 -3zM451 159q3 11 -13 16q-15 4 -19 -7t13 -15q15 -6 19 6z -M514 154q0 13 -17 11q-16 0 -16 -11q0 -13 17 -11q16 0 16 11zM572 164q-2 11 -18 9q-16 -3 -14 -15t18 -8t14 14z" /> - <glyph glyph-name="unlock" unicode="&#xf09c;" horiz-adv-x="1664" -d="M1664 960v-256q0 -26 -19 -45t-45 -19h-64q-26 0 -45 19t-19 45v256q0 106 -75 181t-181 75t-181 -75t-75 -181v-192h96q40 0 68 -28t28 -68v-576q0 -40 -28 -68t-68 -28h-960q-40 0 -68 28t-28 68v576q0 40 28 68t68 28h672v192q0 185 131.5 316.5t316.5 131.5 -t316.5 -131.5t131.5 -316.5z" /> - <glyph glyph-name="credit_card" unicode="&#xf09d;" horiz-adv-x="1920" -d="M1760 1408q66 0 113 -47t47 -113v-1216q0 -66 -47 -113t-113 -47h-1600q-66 0 -113 47t-47 113v1216q0 66 47 113t113 47h1600zM160 1280q-13 0 -22.5 -9.5t-9.5 -22.5v-224h1664v224q0 13 -9.5 22.5t-22.5 9.5h-1600zM1760 0q13 0 22.5 9.5t9.5 22.5v608h-1664v-608 -q0 -13 9.5 -22.5t22.5 -9.5h1600zM256 128v128h256v-128h-256zM640 128v128h384v-128h-384z" /> - <glyph glyph-name="rss" unicode="&#xf09e;" horiz-adv-x="1408" -d="M384 192q0 -80 -56 -136t-136 -56t-136 56t-56 136t56 136t136 56t136 -56t56 -136zM896 69q2 -28 -17 -48q-18 -21 -47 -21h-135q-25 0 -43 16.5t-20 41.5q-22 229 -184.5 391.5t-391.5 184.5q-25 2 -41.5 20t-16.5 43v135q0 29 21 47q17 17 43 17h5q160 -13 306 -80.5 -t259 -181.5q114 -113 181.5 -259t80.5 -306zM1408 67q2 -27 -18 -47q-18 -20 -46 -20h-143q-26 0 -44.5 17.5t-19.5 42.5q-12 215 -101 408.5t-231.5 336t-336 231.5t-408.5 102q-25 1 -42.5 19.5t-17.5 43.5v143q0 28 20 46q18 18 44 18h3q262 -13 501.5 -120t425.5 -294 -q187 -186 294 -425.5t120 -501.5z" /> - <glyph glyph-name="hdd" unicode="&#xf0a0;" -d="M1040 320q0 -33 -23.5 -56.5t-56.5 -23.5t-56.5 23.5t-23.5 56.5t23.5 56.5t56.5 23.5t56.5 -23.5t23.5 -56.5zM1296 320q0 -33 -23.5 -56.5t-56.5 -23.5t-56.5 23.5t-23.5 56.5t23.5 56.5t56.5 23.5t56.5 -23.5t23.5 -56.5zM1408 160v320q0 13 -9.5 22.5t-22.5 9.5 -h-1216q-13 0 -22.5 -9.5t-9.5 -22.5v-320q0 -13 9.5 -22.5t22.5 -9.5h1216q13 0 22.5 9.5t9.5 22.5zM178 640h1180l-157 482q-4 13 -16 21.5t-26 8.5h-782q-14 0 -26 -8.5t-16 -21.5zM1536 480v-320q0 -66 -47 -113t-113 -47h-1216q-66 0 -113 47t-47 113v320q0 25 16 75 -l197 606q17 53 63 86t101 33h782q55 0 101 -33t63 -86l197 -606q16 -50 16 -75z" /> - <glyph glyph-name="bullhorn" unicode="&#xf0a1;" horiz-adv-x="1792" -d="M1664 896q53 0 90.5 -37.5t37.5 -90.5t-37.5 -90.5t-90.5 -37.5v-384q0 -52 -38 -90t-90 -38q-417 347 -812 380q-58 -19 -91 -66t-31 -100.5t40 -92.5q-20 -33 -23 -65.5t6 -58t33.5 -55t48 -50t61.5 -50.5q-29 -58 -111.5 -83t-168.5 -11.5t-132 55.5q-7 23 -29.5 87.5 -t-32 94.5t-23 89t-15 101t3.5 98.5t22 110.5h-122q-66 0 -113 47t-47 113v192q0 66 47 113t113 47h480q435 0 896 384q52 0 90 -38t38 -90v-384zM1536 292v954q-394 -302 -768 -343v-270q377 -42 768 -341z" /> - <glyph glyph-name="bell" unicode="&#xf0a2;" horiz-adv-x="1792" -d="M912 -160q0 16 -16 16q-59 0 -101.5 42.5t-42.5 101.5q0 16 -16 16t-16 -16q0 -73 51.5 -124.5t124.5 -51.5q16 0 16 16zM246 128h1300q-266 300 -266 832q0 51 -24 105t-69 103t-121.5 80.5t-169.5 31.5t-169.5 -31.5t-121.5 -80.5t-69 -103t-24 -105q0 -532 -266 -832z -M1728 128q0 -52 -38 -90t-90 -38h-448q0 -106 -75 -181t-181 -75t-181 75t-75 181h-448q-52 0 -90 38t-38 90q50 42 91 88t85 119.5t74.5 158.5t50 206t19.5 260q0 152 117 282.5t307 158.5q-8 19 -8 39q0 40 28 68t68 28t68 -28t28 -68q0 -20 -8 -39q190 -28 307 -158.5 -t117 -282.5q0 -139 19.5 -260t50 -206t74.5 -158.5t85 -119.5t91 -88z" /> - <glyph glyph-name="certificate" unicode="&#xf0a3;" -d="M1376 640l138 -135q30 -28 20 -70q-12 -41 -52 -51l-188 -48l53 -186q12 -41 -19 -70q-29 -31 -70 -19l-186 53l-48 -188q-10 -40 -51 -52q-12 -2 -19 -2q-31 0 -51 22l-135 138l-135 -138q-28 -30 -70 -20q-41 11 -51 52l-48 188l-186 -53q-41 -12 -70 19q-31 29 -19 70 -l53 186l-188 48q-40 10 -52 51q-10 42 20 70l138 135l-138 135q-30 28 -20 70q12 41 52 51l188 48l-53 186q-12 41 19 70q29 31 70 19l186 -53l48 188q10 41 51 51q41 12 70 -19l135 -139l135 139q29 30 70 19q41 -10 51 -51l48 -188l186 53q41 12 70 -19q31 -29 19 -70 -l-53 -186l188 -48q40 -10 52 -51q10 -42 -20 -70z" /> - <glyph glyph-name="hand_right" unicode="&#xf0a4;" horiz-adv-x="1792" -d="M256 192q0 26 -19 45t-45 19t-45 -19t-19 -45t19 -45t45 -19t45 19t19 45zM1664 768q0 51 -39 89.5t-89 38.5h-576q0 20 15 48.5t33 55t33 68t15 84.5q0 67 -44.5 97.5t-115.5 30.5q-24 0 -90 -139q-24 -44 -37 -65q-40 -64 -112 -145q-71 -81 -101 -106 -q-69 -57 -140 -57h-32v-640h32q72 0 167 -32t193.5 -64t179.5 -32q189 0 189 167q0 26 -5 56q30 16 47.5 52.5t17.5 73.5t-18 69q53 50 53 119q0 25 -10 55.5t-25 47.5h331q52 0 90 38t38 90zM1792 769q0 -105 -75.5 -181t-180.5 -76h-169q-4 -62 -37 -119q3 -21 3 -43 -q0 -101 -60 -178q1 -139 -85 -219.5t-227 -80.5q-133 0 -322 69q-164 59 -223 59h-288q-53 0 -90.5 37.5t-37.5 90.5v640q0 53 37.5 90.5t90.5 37.5h288q10 0 21.5 4.5t23.5 14t22.5 18t24 22.5t20.5 21.5t19 21.5t14 17q65 74 100 129q13 21 33 62t37 72t40.5 63t55 49.5 -t69.5 17.5q125 0 206.5 -67t81.5 -189q0 -68 -22 -128h374q104 0 180 -76t76 -179z" /> - <glyph glyph-name="hand_left" unicode="&#xf0a5;" horiz-adv-x="1792" -d="M1376 128h32v640h-32q-35 0 -67.5 12t-62.5 37t-50 46t-49 54q-8 9 -12 14q-72 81 -112 145q-14 22 -38 68q-1 3 -10.5 22.5t-18.5 36t-20 35.5t-21.5 30.5t-18.5 11.5q-71 0 -115.5 -30.5t-44.5 -97.5q0 -43 15 -84.5t33 -68t33 -55t15 -48.5h-576q-50 0 -89 -38.5 -t-39 -89.5q0 -52 38 -90t90 -38h331q-15 -17 -25 -47.5t-10 -55.5q0 -69 53 -119q-18 -32 -18 -69t17.5 -73.5t47.5 -52.5q-4 -24 -4 -56q0 -85 48.5 -126t135.5 -41q84 0 183 32t194 64t167 32zM1664 192q0 26 -19 45t-45 19t-45 -19t-19 -45t19 -45t45 -19t45 19t19 45z -M1792 768v-640q0 -53 -37.5 -90.5t-90.5 -37.5h-288q-59 0 -223 -59q-190 -69 -317 -69q-142 0 -230 77.5t-87 217.5l1 5q-61 76 -61 178q0 22 3 43q-33 57 -37 119h-169q-105 0 -180.5 76t-75.5 181q0 103 76 179t180 76h374q-22 60 -22 128q0 122 81.5 189t206.5 67 -q38 0 69.5 -17.5t55 -49.5t40.5 -63t37 -72t33 -62q35 -55 100 -129q2 -3 14 -17t19 -21.5t20.5 -21.5t24 -22.5t22.5 -18t23.5 -14t21.5 -4.5h288q53 0 90.5 -37.5t37.5 -90.5z" /> - <glyph glyph-name="hand_up" unicode="&#xf0a6;" -d="M1280 -64q0 26 -19 45t-45 19t-45 -19t-19 -45t19 -45t45 -19t45 19t19 45zM1408 700q0 189 -167 189q-26 0 -56 -5q-16 30 -52.5 47.5t-73.5 17.5t-69 -18q-50 53 -119 53q-25 0 -55.5 -10t-47.5 -25v331q0 52 -38 90t-90 38q-51 0 -89.5 -39t-38.5 -89v-576 -q-20 0 -48.5 15t-55 33t-68 33t-84.5 15q-67 0 -97.5 -44.5t-30.5 -115.5q0 -24 139 -90q44 -24 65 -37q64 -40 145 -112q81 -71 106 -101q57 -69 57 -140v-32h640v32q0 72 32 167t64 193.5t32 179.5zM1536 705q0 -133 -69 -322q-59 -164 -59 -223v-288q0 -53 -37.5 -90.5 -t-90.5 -37.5h-640q-53 0 -90.5 37.5t-37.5 90.5v288q0 10 -4.5 21.5t-14 23.5t-18 22.5t-22.5 24t-21.5 20.5t-21.5 19t-17 14q-74 65 -129 100q-21 13 -62 33t-72 37t-63 40.5t-49.5 55t-17.5 69.5q0 125 67 206.5t189 81.5q68 0 128 -22v374q0 104 76 180t179 76 -q105 0 181 -75.5t76 -180.5v-169q62 -4 119 -37q21 3 43 3q101 0 178 -60q139 1 219.5 -85t80.5 -227z" /> - <glyph glyph-name="hand_down" unicode="&#xf0a7;" -d="M1408 576q0 84 -32 183t-64 194t-32 167v32h-640v-32q0 -35 -12 -67.5t-37 -62.5t-46 -50t-54 -49q-9 -8 -14 -12q-81 -72 -145 -112q-22 -14 -68 -38q-3 -1 -22.5 -10.5t-36 -18.5t-35.5 -20t-30.5 -21.5t-11.5 -18.5q0 -71 30.5 -115.5t97.5 -44.5q43 0 84.5 15t68 33 -t55 33t48.5 15v-576q0 -50 38.5 -89t89.5 -39q52 0 90 38t38 90v331q46 -35 103 -35q69 0 119 53q32 -18 69 -18t73.5 17.5t52.5 47.5q24 -4 56 -4q85 0 126 48.5t41 135.5zM1280 1344q0 26 -19 45t-45 19t-45 -19t-19 -45t19 -45t45 -19t45 19t19 45zM1536 580 -q0 -142 -77.5 -230t-217.5 -87l-5 1q-76 -61 -178 -61q-22 0 -43 3q-54 -30 -119 -37v-169q0 -105 -76 -180.5t-181 -75.5q-103 0 -179 76t-76 180v374q-54 -22 -128 -22q-121 0 -188.5 81.5t-67.5 206.5q0 38 17.5 69.5t49.5 55t63 40.5t72 37t62 33q55 35 129 100 -q3 2 17 14t21.5 19t21.5 20.5t22.5 24t18 22.5t14 23.5t4.5 21.5v288q0 53 37.5 90.5t90.5 37.5h640q53 0 90.5 -37.5t37.5 -90.5v-288q0 -59 59 -223q69 -190 69 -317z" /> - <glyph glyph-name="circle_arrow_left" unicode="&#xf0a8;" -d="M1280 576v128q0 26 -19 45t-45 19h-502l189 189q19 19 19 45t-19 45l-91 91q-18 18 -45 18t-45 -18l-362 -362l-91 -91q-18 -18 -18 -45t18 -45l91 -91l362 -362q18 -18 45 -18t45 18l91 91q18 18 18 45t-18 45l-189 189h502q26 0 45 19t19 45zM1536 640 -q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" /> - <glyph glyph-name="circle_arrow_right" unicode="&#xf0a9;" -d="M1285 640q0 27 -18 45l-91 91l-362 362q-18 18 -45 18t-45 -18l-91 -91q-18 -18 -18 -45t18 -45l189 -189h-502q-26 0 -45 -19t-19 -45v-128q0 -26 19 -45t45 -19h502l-189 -189q-19 -19 -19 -45t19 -45l91 -91q18 -18 45 -18t45 18l362 362l91 91q18 18 18 45zM1536 640 -q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" /> - <glyph glyph-name="circle_arrow_up" unicode="&#xf0aa;" -d="M1284 641q0 27 -18 45l-362 362l-91 91q-18 18 -45 18t-45 -18l-91 -91l-362 -362q-18 -18 -18 -45t18 -45l91 -91q18 -18 45 -18t45 18l189 189v-502q0 -26 19 -45t45 -19h128q26 0 45 19t19 45v502l189 -189q19 -19 45 -19t45 19l91 91q18 18 18 45zM1536 640 -q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" /> - <glyph glyph-name="circle_arrow_down" unicode="&#xf0ab;" -d="M1284 639q0 27 -18 45l-91 91q-18 18 -45 18t-45 -18l-189 -189v502q0 26 -19 45t-45 19h-128q-26 0 -45 -19t-19 -45v-502l-189 189q-19 19 -45 19t-45 -19l-91 -91q-18 -18 -18 -45t18 -45l362 -362l91 -91q18 -18 45 -18t45 18l91 91l362 362q18 18 18 45zM1536 640 -q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" /> - <glyph glyph-name="globe" unicode="&#xf0ac;" -d="M768 1408q209 0 385.5 -103t279.5 -279.5t103 -385.5t-103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103zM1042 887q-2 -1 -9.5 -9.5t-13.5 -9.5q2 0 4.5 5t5 11t3.5 7q6 7 22 15q14 6 52 12q34 8 51 -11 -q-2 2 9.5 13t14.5 12q3 2 15 4.5t15 7.5l2 22q-12 -1 -17.5 7t-6.5 21q0 -2 -6 -8q0 7 -4.5 8t-11.5 -1t-9 -1q-10 3 -15 7.5t-8 16.5t-4 15q-2 5 -9.5 11t-9.5 10q-1 2 -2.5 5.5t-3 6.5t-4 5.5t-5.5 2.5t-7 -5t-7.5 -10t-4.5 -5q-3 2 -6 1.5t-4.5 -1t-4.5 -3t-5 -3.5 -q-3 -2 -8.5 -3t-8.5 -2q15 5 -1 11q-10 4 -16 3q9 4 7.5 12t-8.5 14h5q-1 4 -8.5 8.5t-17.5 8.5t-13 6q-8 5 -34 9.5t-33 0.5q-5 -6 -4.5 -10.5t4 -14t3.5 -12.5q1 -6 -5.5 -13t-6.5 -12q0 -7 14 -15.5t10 -21.5q-3 -8 -16 -16t-16 -12q-5 -8 -1.5 -18.5t10.5 -16.5 -q2 -2 1.5 -4t-3.5 -4.5t-5.5 -4t-6.5 -3.5l-3 -2q-11 -5 -20.5 6t-13.5 26q-7 25 -16 30q-23 8 -29 -1q-5 13 -41 26q-25 9 -58 4q6 1 0 15q-7 15 -19 12q3 6 4 17.5t1 13.5q3 13 12 23q1 1 7 8.5t9.5 13.5t0.5 6q35 -4 50 11q5 5 11.5 17t10.5 17q9 6 14 5.5t14.5 -5.5 -t14.5 -5q14 -1 15.5 11t-7.5 20q12 -1 3 17q-4 7 -8 9q-12 4 -27 -5q-8 -4 2 -8q-1 1 -9.5 -10.5t-16.5 -17.5t-16 5q-1 1 -5.5 13.5t-9.5 13.5q-8 0 -16 -15q3 8 -11 15t-24 8q19 12 -8 27q-7 4 -20.5 5t-19.5 -4q-5 -7 -5.5 -11.5t5 -8t10.5 -5.5t11.5 -4t8.5 -3 -q14 -10 8 -14q-2 -1 -8.5 -3.5t-11.5 -4.5t-6 -4q-3 -4 0 -14t-2 -14q-5 5 -9 17.5t-7 16.5q7 -9 -25 -6l-10 1q-4 0 -16 -2t-20.5 -1t-13.5 8q-4 8 0 20q1 4 4 2q-4 3 -11 9.5t-10 8.5q-46 -15 -94 -41q6 -1 12 1q5 2 13 6.5t10 5.5q34 14 42 7l5 5q14 -16 20 -25 -q-7 4 -30 1q-20 -6 -22 -12q7 -12 5 -18q-4 3 -11.5 10t-14.5 11t-15 5q-16 0 -22 -1q-146 -80 -235 -222q7 -7 12 -8q4 -1 5 -9t2.5 -11t11.5 3q9 -8 3 -19q1 1 44 -27q19 -17 21 -21q3 -11 -10 -18q-1 2 -9 9t-9 4q-3 -5 0.5 -18.5t10.5 -12.5q-7 0 -9.5 -16t-2.5 -35.5 -t-1 -23.5l2 -1q-3 -12 5.5 -34.5t21.5 -19.5q-13 -3 20 -43q6 -8 8 -9q3 -2 12 -7.5t15 -10t10 -10.5q4 -5 10 -22.5t14 -23.5q-2 -6 9.5 -20t10.5 -23q-1 0 -2.5 -1t-2.5 -1q3 -7 15.5 -14t15.5 -13q1 -3 2 -10t3 -11t8 -2q2 20 -24 62q-15 25 -17 29q-3 5 -5.5 15.5 -t-4.5 14.5q2 0 6 -1.5t8.5 -3.5t7.5 -4t2 -3q-3 -7 2 -17.5t12 -18.5t17 -19t12 -13q6 -6 14 -19.5t0 -13.5q9 0 20 -10.5t17 -19.5q5 -8 8 -26t5 -24q2 -7 8.5 -13.5t12.5 -9.5l16 -8t13 -7q5 -2 18.5 -10.5t21.5 -11.5q10 -4 16 -4t14.5 2.5t13.5 3.5q15 2 29 -15t21 -21 -q36 -19 55 -11q-2 -1 0.5 -7.5t8 -15.5t9 -14.5t5.5 -8.5q5 -6 18 -15t18 -15q6 4 7 9q-3 -8 7 -20t18 -10q14 3 14 32q-31 -15 -49 18q0 1 -2.5 5.5t-4 8.5t-2.5 8.5t0 7.5t5 3q9 0 10 3.5t-2 12.5t-4 13q-1 8 -11 20t-12 15q-5 -9 -16 -8t-16 9q0 -1 -1.5 -5.5t-1.5 -6.5 -q-13 0 -15 1q1 3 2.5 17.5t3.5 22.5q1 4 5.5 12t7.5 14.5t4 12.5t-4.5 9.5t-17.5 2.5q-19 -1 -26 -20q-1 -3 -3 -10.5t-5 -11.5t-9 -7q-7 -3 -24 -2t-24 5q-13 8 -22.5 29t-9.5 37q0 10 2.5 26.5t3 25t-5.5 24.5q3 2 9 9.5t10 10.5q2 1 4.5 1.5t4.5 0t4 1.5t3 6q-1 1 -4 3 -q-3 3 -4 3q7 -3 28.5 1.5t27.5 -1.5q15 -11 22 2q0 1 -2.5 9.5t-0.5 13.5q5 -27 29 -9q3 -3 15.5 -5t17.5 -5q3 -2 7 -5.5t5.5 -4.5t5 0.5t8.5 6.5q10 -14 12 -24q11 -40 19 -44q7 -3 11 -2t4.5 9.5t0 14t-1.5 12.5l-1 8v18l-1 8q-15 3 -18.5 12t1.5 18.5t15 18.5q1 1 8 3.5 -t15.5 6.5t12.5 8q21 19 15 35q7 0 11 9q-1 0 -5 3t-7.5 5t-4.5 2q9 5 2 16q5 3 7.5 11t7.5 10q9 -12 21 -2q8 8 1 16q5 7 20.5 10.5t18.5 9.5q7 -2 8 2t1 12t3 12q4 5 15 9t13 5l17 11q3 4 0 4q18 -2 31 11q10 11 -6 20q3 6 -3 9.5t-15 5.5q3 1 11.5 0.5t10.5 1.5 -q15 10 -7 16q-17 5 -43 -12zM879 10q206 36 351 189q-3 3 -12.5 4.5t-12.5 3.5q-18 7 -24 8q1 7 -2.5 13t-8 9t-12.5 8t-11 7q-2 2 -7 6t-7 5.5t-7.5 4.5t-8.5 2t-10 -1l-3 -1q-3 -1 -5.5 -2.5t-5.5 -3t-4 -3t0 -2.5q-21 17 -36 22q-5 1 -11 5.5t-10.5 7t-10 1.5t-11.5 -7 -q-5 -5 -6 -15t-2 -13q-7 5 0 17.5t2 18.5q-3 6 -10.5 4.5t-12 -4.5t-11.5 -8.5t-9 -6.5t-8.5 -5.5t-8.5 -7.5q-3 -4 -6 -12t-5 -11q-2 4 -11.5 6.5t-9.5 5.5q2 -10 4 -35t5 -38q7 -31 -12 -48q-27 -25 -29 -40q-4 -22 12 -26q0 -7 -8 -20.5t-7 -21.5q0 -6 2 -16z" /> - <glyph glyph-name="wrench" unicode="&#xf0ad;" horiz-adv-x="1664" -d="M384 64q0 26 -19 45t-45 19t-45 -19t-19 -45t19 -45t45 -19t45 19t19 45zM1028 484l-682 -682q-37 -37 -90 -37q-52 0 -91 37l-106 108q-38 36 -38 90q0 53 38 91l681 681q39 -98 114.5 -173.5t173.5 -114.5zM1662 919q0 -39 -23 -106q-47 -134 -164.5 -217.5 -t-258.5 -83.5q-185 0 -316.5 131.5t-131.5 316.5t131.5 316.5t316.5 131.5q58 0 121.5 -16.5t107.5 -46.5q16 -11 16 -28t-16 -28l-293 -169v-224l193 -107q5 3 79 48.5t135.5 81t70.5 35.5q15 0 23.5 -10t8.5 -25z" /> - <glyph glyph-name="tasks" unicode="&#xf0ae;" horiz-adv-x="1792" -d="M1024 128h640v128h-640v-128zM640 640h1024v128h-1024v-128zM1280 1152h384v128h-384v-128zM1792 320v-256q0 -26 -19 -45t-45 -19h-1664q-26 0 -45 19t-19 45v256q0 26 19 45t45 19h1664q26 0 45 -19t19 -45zM1792 832v-256q0 -26 -19 -45t-45 -19h-1664q-26 0 -45 19 -t-19 45v256q0 26 19 45t45 19h1664q26 0 45 -19t19 -45zM1792 1344v-256q0 -26 -19 -45t-45 -19h-1664q-26 0 -45 19t-19 45v256q0 26 19 45t45 19h1664q26 0 45 -19t19 -45z" /> - <glyph glyph-name="filter" unicode="&#xf0b0;" horiz-adv-x="1408" -d="M1403 1241q17 -41 -14 -70l-493 -493v-742q0 -42 -39 -59q-13 -5 -25 -5q-27 0 -45 19l-256 256q-19 19 -19 45v486l-493 493q-31 29 -14 70q17 39 59 39h1280q42 0 59 -39z" /> - <glyph glyph-name="briefcase" unicode="&#xf0b1;" horiz-adv-x="1792" -d="M640 1280h512v128h-512v-128zM1792 640v-480q0 -66 -47 -113t-113 -47h-1472q-66 0 -113 47t-47 113v480h672v-160q0 -26 19 -45t45 -19h320q26 0 45 19t19 45v160h672zM1024 640v-128h-256v128h256zM1792 1120v-384h-1792v384q0 66 47 113t113 47h352v160q0 40 28 68 -t68 28h576q40 0 68 -28t28 -68v-160h352q66 0 113 -47t47 -113z" /> - <glyph glyph-name="fullscreen" unicode="&#xf0b2;" -d="M1283 995l-355 -355l355 -355l144 144q29 31 70 14q39 -17 39 -59v-448q0 -26 -19 -45t-45 -19h-448q-42 0 -59 40q-17 39 14 69l144 144l-355 355l-355 -355l144 -144q31 -30 14 -69q-17 -40 -59 -40h-448q-26 0 -45 19t-19 45v448q0 42 40 59q39 17 69 -14l144 -144 -l355 355l-355 355l-144 -144q-19 -19 -45 -19q-12 0 -24 5q-40 17 -40 59v448q0 26 19 45t45 19h448q42 0 59 -40q17 -39 -14 -69l-144 -144l355 -355l355 355l-144 144q-31 30 -14 69q17 40 59 40h448q26 0 45 -19t19 -45v-448q0 -42 -39 -59q-13 -5 -25 -5q-26 0 -45 19z -" /> - <glyph glyph-name="group" unicode="&#xf0c0;" horiz-adv-x="1920" -d="M593 640q-162 -5 -265 -128h-134q-82 0 -138 40.5t-56 118.5q0 353 124 353q6 0 43.5 -21t97.5 -42.5t119 -21.5q67 0 133 23q-5 -37 -5 -66q0 -139 81 -256zM1664 3q0 -120 -73 -189.5t-194 -69.5h-874q-121 0 -194 69.5t-73 189.5q0 53 3.5 103.5t14 109t26.5 108.5 -t43 97.5t62 81t85.5 53.5t111.5 20q10 0 43 -21.5t73 -48t107 -48t135 -21.5t135 21.5t107 48t73 48t43 21.5q61 0 111.5 -20t85.5 -53.5t62 -81t43 -97.5t26.5 -108.5t14 -109t3.5 -103.5zM640 1280q0 -106 -75 -181t-181 -75t-181 75t-75 181t75 181t181 75t181 -75 -t75 -181zM1344 896q0 -159 -112.5 -271.5t-271.5 -112.5t-271.5 112.5t-112.5 271.5t112.5 271.5t271.5 112.5t271.5 -112.5t112.5 -271.5zM1920 671q0 -78 -56 -118.5t-138 -40.5h-134q-103 123 -265 128q81 117 81 256q0 29 -5 66q66 -23 133 -23q59 0 119 21.5t97.5 42.5 -t43.5 21q124 0 124 -353zM1792 1280q0 -106 -75 -181t-181 -75t-181 75t-75 181t75 181t181 75t181 -75t75 -181z" /> - <glyph glyph-name="link" unicode="&#xf0c1;" horiz-adv-x="1664" -d="M1456 320q0 40 -28 68l-208 208q-28 28 -68 28q-42 0 -72 -32q3 -3 19 -18.5t21.5 -21.5t15 -19t13 -25.5t3.5 -27.5q0 -40 -28 -68t-68 -28q-15 0 -27.5 3.5t-25.5 13t-19 15t-21.5 21.5t-18.5 19q-33 -31 -33 -73q0 -40 28 -68l206 -207q27 -27 68 -27q40 0 68 26 -l147 146q28 28 28 67zM753 1025q0 40 -28 68l-206 207q-28 28 -68 28q-39 0 -68 -27l-147 -146q-28 -28 -28 -67q0 -40 28 -68l208 -208q27 -27 68 -27q42 0 72 31q-3 3 -19 18.5t-21.5 21.5t-15 19t-13 25.5t-3.5 27.5q0 40 28 68t68 28q15 0 27.5 -3.5t25.5 -13t19 -15 -t21.5 -21.5t18.5 -19q33 31 33 73zM1648 320q0 -120 -85 -203l-147 -146q-83 -83 -203 -83q-121 0 -204 85l-206 207q-83 83 -83 203q0 123 88 209l-88 88q-86 -88 -208 -88q-120 0 -204 84l-208 208q-84 84 -84 204t85 203l147 146q83 83 203 83q121 0 204 -85l206 -207 -q83 -83 83 -203q0 -123 -88 -209l88 -88q86 88 208 88q120 0 204 -84l208 -208q84 -84 84 -204z" /> - <glyph glyph-name="cloud" unicode="&#xf0c2;" horiz-adv-x="1920" -d="M1920 384q0 -159 -112.5 -271.5t-271.5 -112.5h-1088q-185 0 -316.5 131.5t-131.5 316.5q0 132 71 241.5t187 163.5q-2 28 -2 43q0 212 150 362t362 150q158 0 286.5 -88t187.5 -230q70 62 166 62q106 0 181 -75t75 -181q0 -75 -41 -138q129 -30 213 -134.5t84 -239.5z -" /> - <glyph glyph-name="beaker" unicode="&#xf0c3;" horiz-adv-x="1664" -d="M1527 88q56 -89 21.5 -152.5t-140.5 -63.5h-1152q-106 0 -140.5 63.5t21.5 152.5l503 793v399h-64q-26 0 -45 19t-19 45t19 45t45 19h512q26 0 45 -19t19 -45t-19 -45t-45 -19h-64v-399zM748 813l-272 -429h712l-272 429l-20 31v37v399h-128v-399v-37z" /> - <glyph glyph-name="cut" unicode="&#xf0c4;" horiz-adv-x="1792" -d="M960 640q26 0 45 -19t19 -45t-19 -45t-45 -19t-45 19t-19 45t19 45t45 19zM1260 576l507 -398q28 -20 25 -56q-5 -35 -35 -51l-128 -64q-13 -7 -29 -7q-17 0 -31 8l-690 387l-110 -66q-8 -4 -12 -5q14 -49 10 -97q-7 -77 -56 -147.5t-132 -123.5q-132 -84 -277 -84 -q-136 0 -222 78q-90 84 -79 207q7 76 56 147t131 124q132 84 278 84q83 0 151 -31q9 13 22 22l122 73l-122 73q-13 9 -22 22q-68 -31 -151 -31q-146 0 -278 84q-82 53 -131 124t-56 147q-5 59 15.5 113t63.5 93q85 79 222 79q145 0 277 -84q83 -52 132 -123t56 -148 -q4 -48 -10 -97q4 -1 12 -5l110 -66l690 387q14 8 31 8q16 0 29 -7l128 -64q30 -16 35 -51q3 -36 -25 -56zM579 836q46 42 21 108t-106 117q-92 59 -192 59q-74 0 -113 -36q-46 -42 -21 -108t106 -117q92 -59 192 -59q74 0 113 36zM494 91q81 51 106 117t-21 108 -q-39 36 -113 36q-100 0 -192 -59q-81 -51 -106 -117t21 -108q39 -36 113 -36q100 0 192 59zM672 704l96 -58v11q0 36 33 56l14 8l-79 47l-26 -26q-3 -3 -10 -11t-12 -12q-2 -2 -4 -3.5t-3 -2.5zM896 480l96 -32l736 576l-128 64l-768 -431v-113l-160 -96l9 -8q2 -2 7 -6 -q4 -4 11 -12t11 -12l26 -26zM1600 64l128 64l-520 408l-177 -138q-2 -3 -13 -7z" /> - <glyph glyph-name="copy" unicode="&#xf0c5;" horiz-adv-x="1792" -d="M1696 1152q40 0 68 -28t28 -68v-1216q0 -40 -28 -68t-68 -28h-960q-40 0 -68 28t-28 68v288h-544q-40 0 -68 28t-28 68v672q0 40 20 88t48 76l408 408q28 28 76 48t88 20h416q40 0 68 -28t28 -68v-328q68 40 128 40h416zM1152 939l-299 -299h299v299zM512 1323l-299 -299 -h299v299zM708 676l316 316v416h-384v-416q0 -40 -28 -68t-68 -28h-416v-640h512v256q0 40 20 88t48 76zM1664 -128v1152h-384v-416q0 -40 -28 -68t-68 -28h-416v-640h896z" /> - <glyph glyph-name="paper_clip" unicode="&#xf0c6;" horiz-adv-x="1408" -d="M1404 151q0 -117 -79 -196t-196 -79q-135 0 -235 100l-777 776q-113 115 -113 271q0 159 110 270t269 111q158 0 273 -113l605 -606q10 -10 10 -22q0 -16 -30.5 -46.5t-46.5 -30.5q-13 0 -23 10l-606 607q-79 77 -181 77q-106 0 -179 -75t-73 -181q0 -105 76 -181 -l776 -777q63 -63 145 -63q64 0 106 42t42 106q0 82 -63 145l-581 581q-26 24 -60 24q-29 0 -48 -19t-19 -48q0 -32 25 -59l410 -410q10 -10 10 -22q0 -16 -31 -47t-47 -31q-12 0 -22 10l-410 410q-63 61 -63 149q0 82 57 139t139 57q88 0 149 -63l581 -581q100 -98 100 -235 -z" /> - <glyph glyph-name="save" unicode="&#xf0c7;" -d="M384 0h768v384h-768v-384zM1280 0h128v896q0 14 -10 38.5t-20 34.5l-281 281q-10 10 -34 20t-39 10v-416q0 -40 -28 -68t-68 -28h-576q-40 0 -68 28t-28 68v416h-128v-1280h128v416q0 40 28 68t68 28h832q40 0 68 -28t28 -68v-416zM896 928v320q0 13 -9.5 22.5t-22.5 9.5 -h-192q-13 0 -22.5 -9.5t-9.5 -22.5v-320q0 -13 9.5 -22.5t22.5 -9.5h192q13 0 22.5 9.5t9.5 22.5zM1536 896v-928q0 -40 -28 -68t-68 -28h-1344q-40 0 -68 28t-28 68v1344q0 40 28 68t68 28h928q40 0 88 -20t76 -48l280 -280q28 -28 48 -76t20 -88z" /> - <glyph glyph-name="sign_blank" unicode="&#xf0c8;" -d="M1536 1120v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" /> - <glyph glyph-name="reorder" unicode="&#xf0c9;" -d="M1536 192v-128q0 -26 -19 -45t-45 -19h-1408q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h1408q26 0 45 -19t19 -45zM1536 704v-128q0 -26 -19 -45t-45 -19h-1408q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h1408q26 0 45 -19t19 -45zM1536 1216v-128q0 -26 -19 -45 -t-45 -19h-1408q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h1408q26 0 45 -19t19 -45z" /> - <glyph glyph-name="ul" unicode="&#xf0ca;" horiz-adv-x="1792" -d="M384 128q0 -80 -56 -136t-136 -56t-136 56t-56 136t56 136t136 56t136 -56t56 -136zM384 640q0 -80 -56 -136t-136 -56t-136 56t-56 136t56 136t136 56t136 -56t56 -136zM1792 224v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-1216q-13 0 -22.5 9.5t-9.5 22.5v192q0 13 9.5 22.5 -t22.5 9.5h1216q13 0 22.5 -9.5t9.5 -22.5zM384 1152q0 -80 -56 -136t-136 -56t-136 56t-56 136t56 136t136 56t136 -56t56 -136zM1792 736v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-1216q-13 0 -22.5 9.5t-9.5 22.5v192q0 13 9.5 22.5t22.5 9.5h1216q13 0 22.5 -9.5t9.5 -22.5z -M1792 1248v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-1216q-13 0 -22.5 9.5t-9.5 22.5v192q0 13 9.5 22.5t22.5 9.5h1216q13 0 22.5 -9.5t9.5 -22.5z" /> - <glyph glyph-name="ol" unicode="&#xf0cb;" horiz-adv-x="1792" -d="M381 -84q0 -80 -54.5 -126t-135.5 -46q-106 0 -172 66l57 88q49 -45 106 -45q29 0 50.5 14.5t21.5 42.5q0 64 -105 56l-26 56q8 10 32.5 43.5t42.5 54t37 38.5v1q-16 0 -48.5 -1t-48.5 -1v-53h-106v152h333v-88l-95 -115q51 -12 81 -49t30 -88zM383 543v-159h-362 -q-6 36 -6 54q0 51 23.5 93t56.5 68t66 47.5t56.5 43.5t23.5 45q0 25 -14.5 38.5t-39.5 13.5q-46 0 -81 -58l-85 59q24 51 71.5 79.5t105.5 28.5q73 0 123 -41.5t50 -112.5q0 -50 -34 -91.5t-75 -64.5t-75.5 -50.5t-35.5 -52.5h127v60h105zM1792 224v-192q0 -13 -9.5 -22.5 -t-22.5 -9.5h-1216q-13 0 -22.5 9.5t-9.5 22.5v192q0 14 9 23t23 9h1216q13 0 22.5 -9.5t9.5 -22.5zM384 1123v-99h-335v99h107q0 41 0.5 121.5t0.5 121.5v12h-2q-8 -17 -50 -54l-71 76l136 127h106v-404h108zM1792 736v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-1216 -q-13 0 -22.5 9.5t-9.5 22.5v192q0 14 9 23t23 9h1216q13 0 22.5 -9.5t9.5 -22.5zM1792 1248v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-1216q-13 0 -22.5 9.5t-9.5 22.5v192q0 13 9.5 22.5t22.5 9.5h1216q13 0 22.5 -9.5t9.5 -22.5z" /> - <glyph glyph-name="strikethrough" unicode="&#xf0cc;" horiz-adv-x="1792" -d="M1760 640q14 0 23 -9t9 -23v-64q0 -14 -9 -23t-23 -9h-1728q-14 0 -23 9t-9 23v64q0 14 9 23t23 9h1728zM483 704q-28 35 -51 80q-48 98 -48 188q0 181 134 309q133 127 393 127q50 0 167 -19q66 -12 177 -48q10 -38 21 -118q14 -123 14 -183q0 -18 -5 -45l-12 -3l-84 6 -l-14 2q-50 149 -103 205q-88 91 -210 91q-114 0 -182 -59q-67 -58 -67 -146q0 -73 66 -140t279 -129q69 -20 173 -66q58 -28 95 -52h-743zM990 448h411q7 -39 7 -92q0 -111 -41 -212q-23 -56 -71 -104q-37 -35 -109 -81q-80 -48 -153 -66q-80 -21 -203 -21q-114 0 -195 23 -l-140 40q-57 16 -72 28q-8 8 -8 22v13q0 108 -2 156q-1 30 0 68l2 37v44l102 2q15 -34 30 -71t22.5 -56t12.5 -27q35 -57 80 -94q43 -36 105 -57q59 -22 132 -22q64 0 139 27q77 26 122 86q47 61 47 129q0 84 -81 157q-34 29 -137 71z" /> - <glyph glyph-name="underline" unicode="&#xf0cd;" -d="M48 1313q-37 2 -45 4l-3 88q13 1 40 1q60 0 112 -4q132 -7 166 -7q86 0 168 3q116 4 146 5q56 0 86 2l-1 -14l2 -64v-9q-60 -9 -124 -9q-60 0 -79 -25q-13 -14 -13 -132q0 -13 0.5 -32.5t0.5 -25.5l1 -229l14 -280q6 -124 51 -202q35 -59 96 -92q88 -47 177 -47 -q104 0 191 28q56 18 99 51q48 36 65 64q36 56 53 114q21 73 21 229q0 79 -3.5 128t-11 122.5t-13.5 159.5l-4 59q-5 67 -24 88q-34 35 -77 34l-100 -2l-14 3l2 86h84l205 -10q76 -3 196 10l18 -2q6 -38 6 -51q0 -7 -4 -31q-45 -12 -84 -13q-73 -11 -79 -17q-15 -15 -15 -41 -q0 -7 1.5 -27t1.5 -31q8 -19 22 -396q6 -195 -15 -304q-15 -76 -41 -122q-38 -65 -112 -123q-75 -57 -182 -89q-109 -33 -255 -33q-167 0 -284 46q-119 47 -179 122q-61 76 -83 195q-16 80 -16 237v333q0 188 -17 213q-25 36 -147 39zM1536 -96v64q0 14 -9 23t-23 9h-1472 -q-14 0 -23 -9t-9 -23v-64q0 -14 9 -23t23 -9h1472q14 0 23 9t9 23z" /> - <glyph glyph-name="table" unicode="&#xf0ce;" horiz-adv-x="1664" -d="M512 160v192q0 14 -9 23t-23 9h-320q-14 0 -23 -9t-9 -23v-192q0 -14 9 -23t23 -9h320q14 0 23 9t9 23zM512 544v192q0 14 -9 23t-23 9h-320q-14 0 -23 -9t-9 -23v-192q0 -14 9 -23t23 -9h320q14 0 23 9t9 23zM1024 160v192q0 14 -9 23t-23 9h-320q-14 0 -23 -9t-9 -23 -v-192q0 -14 9 -23t23 -9h320q14 0 23 9t9 23zM512 928v192q0 14 -9 23t-23 9h-320q-14 0 -23 -9t-9 -23v-192q0 -14 9 -23t23 -9h320q14 0 23 9t9 23zM1024 544v192q0 14 -9 23t-23 9h-320q-14 0 -23 -9t-9 -23v-192q0 -14 9 -23t23 -9h320q14 0 23 9t9 23zM1536 160v192 -q0 14 -9 23t-23 9h-320q-14 0 -23 -9t-9 -23v-192q0 -14 9 -23t23 -9h320q14 0 23 9t9 23zM1024 928v192q0 14 -9 23t-23 9h-320q-14 0 -23 -9t-9 -23v-192q0 -14 9 -23t23 -9h320q14 0 23 9t9 23zM1536 544v192q0 14 -9 23t-23 9h-320q-14 0 -23 -9t-9 -23v-192 -q0 -14 9 -23t23 -9h320q14 0 23 9t9 23zM1536 928v192q0 14 -9 23t-23 9h-320q-14 0 -23 -9t-9 -23v-192q0 -14 9 -23t23 -9h320q14 0 23 9t9 23zM1664 1248v-1088q0 -66 -47 -113t-113 -47h-1344q-66 0 -113 47t-47 113v1088q0 66 47 113t113 47h1344q66 0 113 -47t47 -113 -z" /> - <glyph glyph-name="magic" unicode="&#xf0d0;" horiz-adv-x="1664" -d="M1190 955l293 293l-107 107l-293 -293zM1637 1248q0 -27 -18 -45l-1286 -1286q-18 -18 -45 -18t-45 18l-198 198q-18 18 -18 45t18 45l1286 1286q18 18 45 18t45 -18l198 -198q18 -18 18 -45zM286 1438l98 -30l-98 -30l-30 -98l-30 98l-98 30l98 30l30 98zM636 1276 -l196 -60l-196 -60l-60 -196l-60 196l-196 60l196 60l60 196zM1566 798l98 -30l-98 -30l-30 -98l-30 98l-98 30l98 30l30 98zM926 1438l98 -30l-98 -30l-30 -98l-30 98l-98 30l98 30l30 98z" /> - <glyph glyph-name="truck" unicode="&#xf0d1;" horiz-adv-x="1792" -d="M640 128q0 52 -38 90t-90 38t-90 -38t-38 -90t38 -90t90 -38t90 38t38 90zM256 640h384v256h-158q-13 0 -22 -9l-195 -195q-9 -9 -9 -22v-30zM1536 128q0 52 -38 90t-90 38t-90 -38t-38 -90t38 -90t90 -38t90 38t38 90zM1792 1216v-1024q0 -15 -4 -26.5t-13.5 -18.5 -t-16.5 -11.5t-23.5 -6t-22.5 -2t-25.5 0t-22.5 0.5q0 -106 -75 -181t-181 -75t-181 75t-75 181h-384q0 -106 -75 -181t-181 -75t-181 75t-75 181h-64q-3 0 -22.5 -0.5t-25.5 0t-22.5 2t-23.5 6t-16.5 11.5t-13.5 18.5t-4 26.5q0 26 19 45t45 19v320q0 8 -0.5 35t0 38 -t2.5 34.5t6.5 37t14 30.5t22.5 30l198 198q19 19 50.5 32t58.5 13h160v192q0 26 19 45t45 19h1024q26 0 45 -19t19 -45z" /> - <glyph glyph-name="pinterest" unicode="&#xf0d2;" -d="M1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103q-111 0 -218 32q59 93 78 164q9 34 54 211q20 -39 73 -67.5t114 -28.5q121 0 216 68.5t147 188.5t52 270q0 114 -59.5 214t-172.5 163t-255 63q-105 0 -196 -29t-154.5 -77t-109 -110.5t-67 -129.5t-21.5 -134 -q0 -104 40 -183t117 -111q30 -12 38 20q2 7 8 31t8 30q6 23 -11 43q-51 61 -51 151q0 151 104.5 259.5t273.5 108.5q151 0 235.5 -82t84.5 -213q0 -170 -68.5 -289t-175.5 -119q-61 0 -98 43.5t-23 104.5q8 35 26.5 93.5t30 103t11.5 75.5q0 50 -27 83t-77 33 -q-62 0 -105 -57t-43 -142q0 -73 25 -122l-99 -418q-17 -70 -13 -177q-206 91 -333 281t-127 423q0 209 103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" /> - <glyph glyph-name="pinterest_sign" unicode="&#xf0d3;" -d="M1248 1408q119 0 203.5 -84.5t84.5 -203.5v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-725q85 122 108 210q9 34 53 209q21 -39 73.5 -67t112.5 -28q181 0 295.5 147.5t114.5 373.5q0 84 -35 162.5t-96.5 139t-152.5 97t-197 36.5q-104 0 -194.5 -28.5t-153 -76.5 -t-107.5 -109.5t-66.5 -128t-21.5 -132.5q0 -102 39.5 -180t116.5 -110q13 -5 23.5 0t14.5 19q10 44 15 61q6 23 -11 42q-50 62 -50 150q0 150 103.5 256.5t270.5 106.5q149 0 232.5 -81t83.5 -210q0 -168 -67.5 -286t-173.5 -118q-60 0 -97 43.5t-23 103.5q8 34 26.5 92.5 -t29.5 102t11 74.5q0 49 -26.5 81.5t-75.5 32.5q-61 0 -103.5 -56.5t-42.5 -139.5q0 -72 24 -121l-98 -414q-24 -100 -7 -254h-183q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960z" /> - <glyph glyph-name="google_plus_sign" unicode="&#xf0d4;" -d="M917 631q0 26 -6 64h-362v-132h217q-3 -24 -16.5 -50t-37.5 -53t-66.5 -44.5t-96.5 -17.5q-99 0 -169 71t-70 171t70 171t169 71q92 0 153 -59l104 101q-108 100 -257 100q-160 0 -272 -112.5t-112 -271.5t112 -271.5t272 -112.5q165 0 266.5 105t101.5 270zM1262 585 -h109v110h-109v110h-110v-110h-110v-110h110v-110h110v110zM1536 1120v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" /> - <glyph glyph-name="google_plus" unicode="&#xf0d5;" horiz-adv-x="2304" -d="M1437 623q0 -208 -87 -370.5t-248 -254t-369 -91.5q-149 0 -285 58t-234 156t-156 234t-58 285t58 285t156 234t234 156t285 58q286 0 491 -192l-199 -191q-117 113 -292 113q-123 0 -227.5 -62t-165.5 -168.5t-61 -232.5t61 -232.5t165.5 -168.5t227.5 -62 -q83 0 152.5 23t114.5 57.5t78.5 78.5t49 83t21.5 74h-416v252h692q12 -63 12 -122zM2304 745v-210h-209v-209h-210v209h-209v210h209v209h210v-209h209z" /> - <glyph glyph-name="money" unicode="&#xf0d6;" horiz-adv-x="1920" -d="M768 384h384v96h-128v448h-114l-148 -137l77 -80q42 37 55 57h2v-288h-128v-96zM1280 640q0 -70 -21 -142t-59.5 -134t-101.5 -101t-138 -39t-138 39t-101.5 101t-59.5 134t-21 142t21 142t59.5 134t101.5 101t138 39t138 -39t101.5 -101t59.5 -134t21 -142zM1792 384 -v512q-106 0 -181 75t-75 181h-1152q0 -106 -75 -181t-181 -75v-512q106 0 181 -75t75 -181h1152q0 106 75 181t181 75zM1920 1216v-1152q0 -26 -19 -45t-45 -19h-1792q-26 0 -45 19t-19 45v1152q0 26 19 45t45 19h1792q26 0 45 -19t19 -45z" /> - <glyph glyph-name="caret_down" unicode="&#xf0d7;" horiz-adv-x="1024" -d="M1024 832q0 -26 -19 -45l-448 -448q-19 -19 -45 -19t-45 19l-448 448q-19 19 -19 45t19 45t45 19h896q26 0 45 -19t19 -45z" /> - <glyph glyph-name="caret_up" unicode="&#xf0d8;" horiz-adv-x="1024" -d="M1024 320q0 -26 -19 -45t-45 -19h-896q-26 0 -45 19t-19 45t19 45l448 448q19 19 45 19t45 -19l448 -448q19 -19 19 -45z" /> - <glyph glyph-name="caret_left" unicode="&#xf0d9;" horiz-adv-x="640" -d="M640 1088v-896q0 -26 -19 -45t-45 -19t-45 19l-448 448q-19 19 -19 45t19 45l448 448q19 19 45 19t45 -19t19 -45z" /> - <glyph glyph-name="caret_right" unicode="&#xf0da;" horiz-adv-x="640" -d="M576 640q0 -26 -19 -45l-448 -448q-19 -19 -45 -19t-45 19t-19 45v896q0 26 19 45t45 19t45 -19l448 -448q19 -19 19 -45z" /> - <glyph glyph-name="columns" unicode="&#xf0db;" horiz-adv-x="1664" -d="M160 0h608v1152h-640v-1120q0 -13 9.5 -22.5t22.5 -9.5zM1536 32v1120h-640v-1152h608q13 0 22.5 9.5t9.5 22.5zM1664 1248v-1216q0 -66 -47 -113t-113 -47h-1344q-66 0 -113 47t-47 113v1216q0 66 47 113t113 47h1344q66 0 113 -47t47 -113z" /> - <glyph glyph-name="sort" unicode="&#xf0dc;" horiz-adv-x="1024" -d="M1024 448q0 -26 -19 -45l-448 -448q-19 -19 -45 -19t-45 19l-448 448q-19 19 -19 45t19 45t45 19h896q26 0 45 -19t19 -45zM1024 832q0 -26 -19 -45t-45 -19h-896q-26 0 -45 19t-19 45t19 45l448 448q19 19 45 19t45 -19l448 -448q19 -19 19 -45z" /> - <glyph glyph-name="sort_down" unicode="&#xf0dd;" horiz-adv-x="1024" -d="M1024 448q0 -26 -19 -45l-448 -448q-19 -19 -45 -19t-45 19l-448 448q-19 19 -19 45t19 45t45 19h896q26 0 45 -19t19 -45z" /> - <glyph glyph-name="sort_up" unicode="&#xf0de;" horiz-adv-x="1024" -d="M1024 832q0 -26 -19 -45t-45 -19h-896q-26 0 -45 19t-19 45t19 45l448 448q19 19 45 19t45 -19l448 -448q19 -19 19 -45z" /> - <glyph glyph-name="envelope_alt" unicode="&#xf0e0;" horiz-adv-x="1792" -d="M1792 826v-794q0 -66 -47 -113t-113 -47h-1472q-66 0 -113 47t-47 113v794q44 -49 101 -87q362 -246 497 -345q57 -42 92.5 -65.5t94.5 -48t110 -24.5h1h1q51 0 110 24.5t94.5 48t92.5 65.5q170 123 498 345q57 39 100 87zM1792 1120q0 -79 -49 -151t-122 -123 -q-376 -261 -468 -325q-10 -7 -42.5 -30.5t-54 -38t-52 -32.5t-57.5 -27t-50 -9h-1h-1q-23 0 -50 9t-57.5 27t-52 32.5t-54 38t-42.5 30.5q-91 64 -262 182.5t-205 142.5q-62 42 -117 115.5t-55 136.5q0 78 41.5 130t118.5 52h1472q65 0 112.5 -47t47.5 -113z" /> - <glyph glyph-name="linkedin" unicode="&#xf0e1;" -d="M349 911v-991h-330v991h330zM370 1217q1 -73 -50.5 -122t-135.5 -49h-2q-82 0 -132 49t-50 122q0 74 51.5 122.5t134.5 48.5t133 -48.5t51 -122.5zM1536 488v-568h-329v530q0 105 -40.5 164.5t-126.5 59.5q-63 0 -105.5 -34.5t-63.5 -85.5q-11 -30 -11 -81v-553h-329 -q2 399 2 647t-1 296l-1 48h329v-144h-2q20 32 41 56t56.5 52t87 43.5t114.5 15.5q171 0 275 -113.5t104 -332.5z" /> - <glyph glyph-name="undo" unicode="&#xf0e2;" -d="M1536 640q0 -156 -61 -298t-164 -245t-245 -164t-298 -61q-172 0 -327 72.5t-264 204.5q-7 10 -6.5 22.5t8.5 20.5l137 138q10 9 25 9q16 -2 23 -12q73 -95 179 -147t225 -52q104 0 198.5 40.5t163.5 109.5t109.5 163.5t40.5 198.5t-40.5 198.5t-109.5 163.5 -t-163.5 109.5t-198.5 40.5q-98 0 -188 -35.5t-160 -101.5l137 -138q31 -30 14 -69q-17 -40 -59 -40h-448q-26 0 -45 19t-19 45v448q0 42 40 59q39 17 69 -14l130 -129q107 101 244.5 156.5t284.5 55.5q156 0 298 -61t245 -164t164 -245t61 -298z" /> - <glyph glyph-name="legal" unicode="&#xf0e3;" horiz-adv-x="1792" -d="M1771 0q0 -53 -37 -90l-107 -108q-39 -37 -91 -37q-53 0 -90 37l-363 364q-38 36 -38 90q0 53 43 96l-256 256l-126 -126q-14 -14 -34 -14t-34 14q2 -2 12.5 -12t12.5 -13t10 -11.5t10 -13.5t6 -13.5t5.5 -16.5t1.5 -18q0 -38 -28 -68q-3 -3 -16.5 -18t-19 -20.5 -t-18.5 -16.5t-22 -15.5t-22 -9t-26 -4.5q-40 0 -68 28l-408 408q-28 28 -28 68q0 13 4.5 26t9 22t15.5 22t16.5 18.5t20.5 19t18 16.5q30 28 68 28q10 0 18 -1.5t16.5 -5.5t13.5 -6t13.5 -10t11.5 -10t13 -12.5t12 -12.5q-14 14 -14 34t14 34l348 348q14 14 34 14t34 -14 -q-2 2 -12.5 12t-12.5 13t-10 11.5t-10 13.5t-6 13.5t-5.5 16.5t-1.5 18q0 38 28 68q3 3 16.5 18t19 20.5t18.5 16.5t22 15.5t22 9t26 4.5q40 0 68 -28l408 -408q28 -28 28 -68q0 -13 -4.5 -26t-9 -22t-15.5 -22t-16.5 -18.5t-20.5 -19t-18 -16.5q-30 -28 -68 -28 -q-10 0 -18 1.5t-16.5 5.5t-13.5 6t-13.5 10t-11.5 10t-13 12.5t-12 12.5q14 -14 14 -34t-14 -34l-126 -126l256 -256q43 43 96 43q52 0 91 -37l363 -363q37 -39 37 -91z" /> - <glyph glyph-name="dashboard" unicode="&#xf0e4;" horiz-adv-x="1792" -d="M384 384q0 53 -37.5 90.5t-90.5 37.5t-90.5 -37.5t-37.5 -90.5t37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5zM576 832q0 53 -37.5 90.5t-90.5 37.5t-90.5 -37.5t-37.5 -90.5t37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5zM1004 351l101 382q6 26 -7.5 48.5t-38.5 29.5 -t-48 -6.5t-30 -39.5l-101 -382q-60 -5 -107 -43.5t-63 -98.5q-20 -77 20 -146t117 -89t146 20t89 117q16 60 -6 117t-72 91zM1664 384q0 53 -37.5 90.5t-90.5 37.5t-90.5 -37.5t-37.5 -90.5t37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5zM1024 1024q0 53 -37.5 90.5 -t-90.5 37.5t-90.5 -37.5t-37.5 -90.5t37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5zM1472 832q0 53 -37.5 90.5t-90.5 37.5t-90.5 -37.5t-37.5 -90.5t37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5zM1792 384q0 -261 -141 -483q-19 -29 -54 -29h-1402q-35 0 -54 29 -q-141 221 -141 483q0 182 71 348t191 286t286 191t348 71t348 -71t286 -191t191 -286t71 -348z" /> - <glyph glyph-name="comment_alt" unicode="&#xf0e5;" horiz-adv-x="1792" -d="M896 1152q-204 0 -381.5 -69.5t-282 -187.5t-104.5 -255q0 -112 71.5 -213.5t201.5 -175.5l87 -50l-27 -96q-24 -91 -70 -172q152 63 275 171l43 38l57 -6q69 -8 130 -8q204 0 381.5 69.5t282 187.5t104.5 255t-104.5 255t-282 187.5t-381.5 69.5zM1792 640 -q0 -174 -120 -321.5t-326 -233t-450 -85.5q-70 0 -145 8q-198 -175 -460 -242q-49 -14 -114 -22h-5q-15 0 -27 10.5t-16 27.5v1q-3 4 -0.5 12t2 10t4.5 9.5l6 9t7 8.5t8 9q7 8 31 34.5t34.5 38t31 39.5t32.5 51t27 59t26 76q-157 89 -247.5 220t-90.5 281q0 174 120 321.5 -t326 233t450 85.5t450 -85.5t326 -233t120 -321.5z" /> - <glyph glyph-name="comments_alt" unicode="&#xf0e6;" horiz-adv-x="1792" -d="M704 1152q-153 0 -286 -52t-211.5 -141t-78.5 -191q0 -82 53 -158t149 -132l97 -56l-35 -84q34 20 62 39l44 31l53 -10q78 -14 153 -14q153 0 286 52t211.5 141t78.5 191t-78.5 191t-211.5 141t-286 52zM704 1280q191 0 353.5 -68.5t256.5 -186.5t94 -257t-94 -257 -t-256.5 -186.5t-353.5 -68.5q-86 0 -176 16q-124 -88 -278 -128q-36 -9 -86 -16h-3q-11 0 -20.5 8t-11.5 21q-1 3 -1 6.5t0.5 6.5t2 6l2.5 5t3.5 5.5t4 5t4.5 5t4 4.5q5 6 23 25t26 29.5t22.5 29t25 38.5t20.5 44q-124 72 -195 177t-71 224q0 139 94 257t256.5 186.5 -t353.5 68.5zM1526 111q10 -24 20.5 -44t25 -38.5t22.5 -29t26 -29.5t23 -25q1 -1 4 -4.5t4.5 -5t4 -5t3.5 -5.5l2.5 -5t2 -6t0.5 -6.5t-1 -6.5q-3 -14 -13 -22t-22 -7q-50 7 -86 16q-154 40 -278 128q-90 -16 -176 -16q-271 0 -472 132q58 -4 88 -4q161 0 309 45t264 129 -q125 92 192 212t67 254q0 77 -23 152q129 -71 204 -178t75 -230q0 -120 -71 -224.5t-195 -176.5z" /> - <glyph glyph-name="bolt" unicode="&#xf0e7;" horiz-adv-x="896" -d="M885 970q18 -20 7 -44l-540 -1157q-13 -25 -42 -25q-4 0 -14 2q-17 5 -25.5 19t-4.5 30l197 808l-406 -101q-4 -1 -12 -1q-18 0 -31 11q-18 15 -13 39l201 825q4 14 16 23t28 9h328q19 0 32 -12.5t13 -29.5q0 -8 -5 -18l-171 -463l396 98q8 2 12 2q19 0 34 -15z" /> - <glyph glyph-name="sitemap" unicode="&#xf0e8;" horiz-adv-x="1792" -d="M1792 288v-320q0 -40 -28 -68t-68 -28h-320q-40 0 -68 28t-28 68v320q0 40 28 68t68 28h96v192h-512v-192h96q40 0 68 -28t28 -68v-320q0 -40 -28 -68t-68 -28h-320q-40 0 -68 28t-28 68v320q0 40 28 68t68 28h96v192h-512v-192h96q40 0 68 -28t28 -68v-320 -q0 -40 -28 -68t-68 -28h-320q-40 0 -68 28t-28 68v320q0 40 28 68t68 28h96v192q0 52 38 90t90 38h512v192h-96q-40 0 -68 28t-28 68v320q0 40 28 68t68 28h320q40 0 68 -28t28 -68v-320q0 -40 -28 -68t-68 -28h-96v-192h512q52 0 90 -38t38 -90v-192h96q40 0 68 -28t28 -68 -z" /> - <glyph glyph-name="umbrella" unicode="&#xf0e9;" horiz-adv-x="1664" -d="M896 708v-580q0 -104 -76 -180t-180 -76t-180 76t-76 180q0 26 19 45t45 19t45 -19t19 -45q0 -50 39 -89t89 -39t89 39t39 89v580q33 11 64 11t64 -11zM1664 681q0 -13 -9.5 -22.5t-22.5 -9.5q-11 0 -23 10q-49 46 -93 69t-102 23q-68 0 -128 -37t-103 -97 -q-7 -10 -17.5 -28t-14.5 -24q-11 -17 -28 -17q-18 0 -29 17q-4 6 -14.5 24t-17.5 28q-43 60 -102.5 97t-127.5 37t-127.5 -37t-102.5 -97q-7 -10 -17.5 -28t-14.5 -24q-11 -17 -29 -17q-17 0 -28 17q-4 6 -14.5 24t-17.5 28q-43 60 -103 97t-128 37q-58 0 -102 -23t-93 -69 -q-12 -10 -23 -10q-13 0 -22.5 9.5t-9.5 22.5q0 5 1 7q45 183 172.5 319.5t298 204.5t360.5 68q140 0 274.5 -40t246.5 -113.5t194.5 -187t115.5 -251.5q1 -2 1 -7zM896 1408v-98q-42 2 -64 2t-64 -2v98q0 26 19 45t45 19t45 -19t19 -45z" /> - <glyph glyph-name="paste" unicode="&#xf0ea;" horiz-adv-x="1792" -d="M768 -128h896v640h-416q-40 0 -68 28t-28 68v416h-384v-1152zM1024 1312v64q0 13 -9.5 22.5t-22.5 9.5h-704q-13 0 -22.5 -9.5t-9.5 -22.5v-64q0 -13 9.5 -22.5t22.5 -9.5h704q13 0 22.5 9.5t9.5 22.5zM1280 640h299l-299 299v-299zM1792 512v-672q0 -40 -28 -68t-68 -28 -h-960q-40 0 -68 28t-28 68v160h-544q-40 0 -68 28t-28 68v1344q0 40 28 68t68 28h1088q40 0 68 -28t28 -68v-328q21 -13 36 -28l408 -408q28 -28 48 -76t20 -88z" /> - <glyph glyph-name="light_bulb" unicode="&#xf0eb;" horiz-adv-x="1024" -d="M736 960q0 -13 -9.5 -22.5t-22.5 -9.5t-22.5 9.5t-9.5 22.5q0 46 -54 71t-106 25q-13 0 -22.5 9.5t-9.5 22.5t9.5 22.5t22.5 9.5q50 0 99.5 -16t87 -54t37.5 -90zM896 960q0 72 -34.5 134t-90 101.5t-123 62t-136.5 22.5t-136.5 -22.5t-123 -62t-90 -101.5t-34.5 -134 -q0 -101 68 -180q10 -11 30.5 -33t30.5 -33q128 -153 141 -298h228q13 145 141 298q10 11 30.5 33t30.5 33q68 79 68 180zM1024 960q0 -155 -103 -268q-45 -49 -74.5 -87t-59.5 -95.5t-34 -107.5q47 -28 47 -82q0 -37 -25 -64q25 -27 25 -64q0 -52 -45 -81q13 -23 13 -47 -q0 -46 -31.5 -71t-77.5 -25q-20 -44 -60 -70t-87 -26t-87 26t-60 70q-46 0 -77.5 25t-31.5 71q0 24 13 47q-45 29 -45 81q0 37 25 64q-25 27 -25 64q0 54 47 82q-4 50 -34 107.5t-59.5 95.5t-74.5 87q-103 113 -103 268q0 99 44.5 184.5t117 142t164 89t186.5 32.5 -t186.5 -32.5t164 -89t117 -142t44.5 -184.5z" /> - <glyph glyph-name="exchange" unicode="&#xf0ec;" horiz-adv-x="1792" -d="M1792 352v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-1376v-192q0 -13 -9.5 -22.5t-22.5 -9.5q-12 0 -24 10l-319 320q-9 9 -9 22q0 14 9 23l320 320q9 9 23 9q13 0 22.5 -9.5t9.5 -22.5v-192h1376q13 0 22.5 -9.5t9.5 -22.5zM1792 896q0 -14 -9 -23l-320 -320q-9 -9 -23 -9 -q-13 0 -22.5 9.5t-9.5 22.5v192h-1376q-13 0 -22.5 9.5t-9.5 22.5v192q0 13 9.5 22.5t22.5 9.5h1376v192q0 14 9 23t23 9q12 0 24 -10l319 -319q9 -9 9 -23z" /> - <glyph glyph-name="cloud_download" unicode="&#xf0ed;" horiz-adv-x="1920" -d="M1280 608q0 14 -9 23t-23 9h-224v352q0 13 -9.5 22.5t-22.5 9.5h-192q-13 0 -22.5 -9.5t-9.5 -22.5v-352h-224q-13 0 -22.5 -9.5t-9.5 -22.5q0 -14 9 -23l352 -352q9 -9 23 -9t23 9l351 351q10 12 10 24zM1920 384q0 -159 -112.5 -271.5t-271.5 -112.5h-1088 -q-185 0 -316.5 131.5t-131.5 316.5q0 130 70 240t188 165q-2 30 -2 43q0 212 150 362t362 150q156 0 285.5 -87t188.5 -231q71 62 166 62q106 0 181 -75t75 -181q0 -76 -41 -138q130 -31 213.5 -135.5t83.5 -238.5z" /> - <glyph glyph-name="cloud_upload" unicode="&#xf0ee;" horiz-adv-x="1920" -d="M1280 672q0 14 -9 23l-352 352q-9 9 -23 9t-23 -9l-351 -351q-10 -12 -10 -24q0 -14 9 -23t23 -9h224v-352q0 -13 9.5 -22.5t22.5 -9.5h192q13 0 22.5 9.5t9.5 22.5v352h224q13 0 22.5 9.5t9.5 22.5zM1920 384q0 -159 -112.5 -271.5t-271.5 -112.5h-1088 -q-185 0 -316.5 131.5t-131.5 316.5q0 130 70 240t188 165q-2 30 -2 43q0 212 150 362t362 150q156 0 285.5 -87t188.5 -231q71 62 166 62q106 0 181 -75t75 -181q0 -76 -41 -138q130 -31 213.5 -135.5t83.5 -238.5z" /> - <glyph glyph-name="user_md" unicode="&#xf0f0;" horiz-adv-x="1408" -d="M384 192q0 -26 -19 -45t-45 -19t-45 19t-19 45t19 45t45 19t45 -19t19 -45zM1408 131q0 -121 -73 -190t-194 -69h-874q-121 0 -194 69t-73 190q0 68 5.5 131t24 138t47.5 132.5t81 103t120 60.5q-22 -52 -22 -120v-203q-58 -20 -93 -70t-35 -111q0 -80 56 -136t136 -56 -t136 56t56 136q0 61 -35.5 111t-92.5 70v203q0 62 25 93q132 -104 295 -104t295 104q25 -31 25 -93v-64q-106 0 -181 -75t-75 -181v-89q-32 -29 -32 -71q0 -40 28 -68t68 -28t68 28t28 68q0 42 -32 71v89q0 52 38 90t90 38t90 -38t38 -90v-89q-32 -29 -32 -71q0 -40 28 -68 -t68 -28t68 28t28 68q0 42 -32 71v89q0 68 -34.5 127.5t-93.5 93.5q0 10 0.5 42.5t0 48t-2.5 41.5t-7 47t-13 40q68 -15 120 -60.5t81 -103t47.5 -132.5t24 -138t5.5 -131zM1088 1024q0 -159 -112.5 -271.5t-271.5 -112.5t-271.5 112.5t-112.5 271.5t112.5 271.5t271.5 112.5 -t271.5 -112.5t112.5 -271.5z" /> - <glyph glyph-name="stethoscope" unicode="&#xf0f1;" horiz-adv-x="1408" -d="M1280 832q0 26 -19 45t-45 19t-45 -19t-19 -45t19 -45t45 -19t45 19t19 45zM1408 832q0 -62 -35.5 -111t-92.5 -70v-395q0 -159 -131.5 -271.5t-316.5 -112.5t-316.5 112.5t-131.5 271.5v132q-164 20 -274 128t-110 252v512q0 26 19 45t45 19q6 0 16 -2q17 30 47 48 -t65 18q53 0 90.5 -37.5t37.5 -90.5t-37.5 -90.5t-90.5 -37.5q-33 0 -64 18v-402q0 -106 94 -181t226 -75t226 75t94 181v402q-31 -18 -64 -18q-53 0 -90.5 37.5t-37.5 90.5t37.5 90.5t90.5 37.5q35 0 65 -18t47 -48q10 2 16 2q26 0 45 -19t19 -45v-512q0 -144 -110 -252 -t-274 -128v-132q0 -106 94 -181t226 -75t226 75t94 181v395q-57 21 -92.5 70t-35.5 111q0 80 56 136t136 56t136 -56t56 -136z" /> - <glyph glyph-name="suitcase" unicode="&#xf0f2;" horiz-adv-x="1792" -d="M640 1152h512v128h-512v-128zM288 1152v-1280h-64q-92 0 -158 66t-66 158v832q0 92 66 158t158 66h64zM1408 1152v-1280h-1024v1280h128v160q0 40 28 68t68 28h576q40 0 68 -28t28 -68v-160h128zM1792 928v-832q0 -92 -66 -158t-158 -66h-64v1280h64q92 0 158 -66 -t66 -158z" /> - <glyph glyph-name="bell_alt" unicode="&#xf0f3;" horiz-adv-x="1792" -d="M912 -160q0 16 -16 16q-59 0 -101.5 42.5t-42.5 101.5q0 16 -16 16t-16 -16q0 -73 51.5 -124.5t124.5 -51.5q16 0 16 16zM1728 128q0 -52 -38 -90t-90 -38h-448q0 -106 -75 -181t-181 -75t-181 75t-75 181h-448q-52 0 -90 38t-38 90q50 42 91 88t85 119.5t74.5 158.5 -t50 206t19.5 260q0 152 117 282.5t307 158.5q-8 19 -8 39q0 40 28 68t68 28t68 -28t28 -68q0 -20 -8 -39q190 -28 307 -158.5t117 -282.5q0 -139 19.5 -260t50 -206t74.5 -158.5t85 -119.5t91 -88z" /> - <glyph glyph-name="coffee" unicode="&#xf0f4;" horiz-adv-x="1920" -d="M1664 896q0 80 -56 136t-136 56h-64v-384h64q80 0 136 56t56 136zM0 128h1792q0 -106 -75 -181t-181 -75h-1280q-106 0 -181 75t-75 181zM1856 896q0 -159 -112.5 -271.5t-271.5 -112.5h-64v-32q0 -92 -66 -158t-158 -66h-704q-92 0 -158 66t-66 158v736q0 26 19 45 -t45 19h1152q159 0 271.5 -112.5t112.5 -271.5z" /> - <glyph glyph-name="food" unicode="&#xf0f5;" horiz-adv-x="1408" -d="M640 1472v-640q0 -61 -35.5 -111t-92.5 -70v-779q0 -52 -38 -90t-90 -38h-128q-52 0 -90 38t-38 90v779q-57 20 -92.5 70t-35.5 111v640q0 26 19 45t45 19t45 -19t19 -45v-416q0 -26 19 -45t45 -19t45 19t19 45v416q0 26 19 45t45 19t45 -19t19 -45v-416q0 -26 19 -45 -t45 -19t45 19t19 45v416q0 26 19 45t45 19t45 -19t19 -45zM1408 1472v-1600q0 -52 -38 -90t-90 -38h-128q-52 0 -90 38t-38 90v512h-224q-13 0 -22.5 9.5t-9.5 22.5v800q0 132 94 226t226 94h256q26 0 45 -19t19 -45z" /> - <glyph glyph-name="file_text_alt" unicode="&#xf0f6;" -d="M1468 1156q28 -28 48 -76t20 -88v-1152q0 -40 -28 -68t-68 -28h-1344q-40 0 -68 28t-28 68v1600q0 40 28 68t68 28h896q40 0 88 -20t76 -48zM1024 1400v-376h376q-10 29 -22 41l-313 313q-12 12 -41 22zM1408 -128v1024h-416q-40 0 -68 28t-28 68v416h-768v-1536h1280z -M384 736q0 14 9 23t23 9h704q14 0 23 -9t9 -23v-64q0 -14 -9 -23t-23 -9h-704q-14 0 -23 9t-9 23v64zM1120 512q14 0 23 -9t9 -23v-64q0 -14 -9 -23t-23 -9h-704q-14 0 -23 9t-9 23v64q0 14 9 23t23 9h704zM1120 256q14 0 23 -9t9 -23v-64q0 -14 -9 -23t-23 -9h-704 -q-14 0 -23 9t-9 23v64q0 14 9 23t23 9h704z" /> - <glyph glyph-name="building" unicode="&#xf0f7;" horiz-adv-x="1408" -d="M384 224v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5zM384 480v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5z -M640 480v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5zM384 736v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5z -M1152 224v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5zM896 480v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5z -M640 736v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5zM384 992v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5z -M1152 480v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5zM896 736v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5z -M640 992v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5zM384 1248v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5z -M1152 736v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5zM896 992v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5z -M640 1248v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5zM1152 992v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5z -M896 1248v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5zM1152 1248v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5z -M896 -128h384v1536h-1152v-1536h384v224q0 13 9.5 22.5t22.5 9.5h320q13 0 22.5 -9.5t9.5 -22.5v-224zM1408 1472v-1664q0 -26 -19 -45t-45 -19h-1280q-26 0 -45 19t-19 45v1664q0 26 19 45t45 19h1280q26 0 45 -19t19 -45z" /> - <glyph glyph-name="hospital" unicode="&#xf0f8;" horiz-adv-x="1408" -d="M384 224v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5zM384 480v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5z -M640 480v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5zM384 736v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5z -M1152 224v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5zM896 480v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5z -M640 736v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5zM1152 480v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5z -M896 736v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5zM1152 736v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5z -M896 -128h384v1152h-256v-32q0 -40 -28 -68t-68 -28h-448q-40 0 -68 28t-28 68v32h-256v-1152h384v224q0 13 9.5 22.5t22.5 9.5h320q13 0 22.5 -9.5t9.5 -22.5v-224zM896 1056v320q0 13 -9.5 22.5t-22.5 9.5h-64q-13 0 -22.5 -9.5t-9.5 -22.5v-96h-128v96q0 13 -9.5 22.5 -t-22.5 9.5h-64q-13 0 -22.5 -9.5t-9.5 -22.5v-320q0 -13 9.5 -22.5t22.5 -9.5h64q13 0 22.5 9.5t9.5 22.5v96h128v-96q0 -13 9.5 -22.5t22.5 -9.5h64q13 0 22.5 9.5t9.5 22.5zM1408 1088v-1280q0 -26 -19 -45t-45 -19h-1280q-26 0 -45 19t-19 45v1280q0 26 19 45t45 19h320 -v288q0 40 28 68t68 28h448q40 0 68 -28t28 -68v-288h320q26 0 45 -19t19 -45z" /> - <glyph glyph-name="ambulance" unicode="&#xf0f9;" horiz-adv-x="1920" -d="M640 128q0 53 -37.5 90.5t-90.5 37.5t-90.5 -37.5t-37.5 -90.5t37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5zM256 640h384v256h-158q-14 -2 -22 -9l-195 -195q-7 -12 -9 -22v-30zM1536 128q0 53 -37.5 90.5t-90.5 37.5t-90.5 -37.5t-37.5 -90.5t37.5 -90.5t90.5 -37.5 -t90.5 37.5t37.5 90.5zM1664 800v192q0 14 -9 23t-23 9h-224v224q0 14 -9 23t-23 9h-192q-14 0 -23 -9t-9 -23v-224h-224q-14 0 -23 -9t-9 -23v-192q0 -14 9 -23t23 -9h224v-224q0 -14 9 -23t23 -9h192q14 0 23 9t9 23v224h224q14 0 23 9t9 23zM1920 1344v-1152 -q0 -26 -19 -45t-45 -19h-192q0 -106 -75 -181t-181 -75t-181 75t-75 181h-384q0 -106 -75 -181t-181 -75t-181 75t-75 181h-128q-26 0 -45 19t-19 45t19 45t45 19v416q0 26 13 58t32 51l198 198q19 19 51 32t58 13h160v320q0 26 19 45t45 19h1152q26 0 45 -19t19 -45z" /> - <glyph glyph-name="medkit" unicode="&#xf0fa;" horiz-adv-x="1792" -d="M1280 416v192q0 14 -9 23t-23 9h-224v224q0 14 -9 23t-23 9h-192q-14 0 -23 -9t-9 -23v-224h-224q-14 0 -23 -9t-9 -23v-192q0 -14 9 -23t23 -9h224v-224q0 -14 9 -23t23 -9h192q14 0 23 9t9 23v224h224q14 0 23 9t9 23zM640 1152h512v128h-512v-128zM256 1152v-1280h-32 -q-92 0 -158 66t-66 158v832q0 92 66 158t158 66h32zM1440 1152v-1280h-1088v1280h160v160q0 40 28 68t68 28h576q40 0 68 -28t28 -68v-160h160zM1792 928v-832q0 -92 -66 -158t-158 -66h-32v1280h32q92 0 158 -66t66 -158z" /> - <glyph glyph-name="fighter_jet" unicode="&#xf0fb;" horiz-adv-x="1920" -d="M1920 576q-1 -32 -288 -96l-352 -32l-224 -64h-64l-293 -352h69q26 0 45 -4.5t19 -11.5t-19 -11.5t-45 -4.5h-96h-160h-64v32h64v416h-160l-192 -224h-96l-32 32v192h32v32h128v8l-192 24v128l192 24v8h-128v32h-32v192l32 32h96l192 -224h160v416h-64v32h64h160h96 -q26 0 45 -4.5t19 -11.5t-19 -11.5t-45 -4.5h-69l293 -352h64l224 -64l352 -32q128 -28 200 -52t80 -34z" /> - <glyph glyph-name="beer" unicode="&#xf0fc;" horiz-adv-x="1664" -d="M640 640v384h-256v-256q0 -53 37.5 -90.5t90.5 -37.5h128zM1664 192v-192h-1152v192l128 192h-128q-159 0 -271.5 112.5t-112.5 271.5v320l-64 64l32 128h480l32 128h960l32 -192l-64 -32v-800z" /> - <glyph glyph-name="h_sign" unicode="&#xf0fd;" -d="M1280 192v896q0 26 -19 45t-45 19h-128q-26 0 -45 -19t-19 -45v-320h-512v320q0 26 -19 45t-45 19h-128q-26 0 -45 -19t-19 -45v-896q0 -26 19 -45t45 -19h128q26 0 45 19t19 45v320h512v-320q0 -26 19 -45t45 -19h128q26 0 45 19t19 45zM1536 1120v-960 -q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" /> - <glyph glyph-name="f0fe" unicode="&#xf0fe;" -d="M1280 576v128q0 26 -19 45t-45 19h-320v320q0 26 -19 45t-45 19h-128q-26 0 -45 -19t-19 -45v-320h-320q-26 0 -45 -19t-19 -45v-128q0 -26 19 -45t45 -19h320v-320q0 -26 19 -45t45 -19h128q26 0 45 19t19 45v320h320q26 0 45 19t19 45zM1536 1120v-960 -q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" /> - <glyph glyph-name="double_angle_left" unicode="&#xf100;" horiz-adv-x="1024" -d="M627 160q0 -13 -10 -23l-50 -50q-10 -10 -23 -10t-23 10l-466 466q-10 10 -10 23t10 23l466 466q10 10 23 10t23 -10l50 -50q10 -10 10 -23t-10 -23l-393 -393l393 -393q10 -10 10 -23zM1011 160q0 -13 -10 -23l-50 -50q-10 -10 -23 -10t-23 10l-466 466q-10 10 -10 23 -t10 23l466 466q10 10 23 10t23 -10l50 -50q10 -10 10 -23t-10 -23l-393 -393l393 -393q10 -10 10 -23z" /> - <glyph glyph-name="double_angle_right" unicode="&#xf101;" horiz-adv-x="1024" -d="M595 576q0 -13 -10 -23l-466 -466q-10 -10 -23 -10t-23 10l-50 50q-10 10 -10 23t10 23l393 393l-393 393q-10 10 -10 23t10 23l50 50q10 10 23 10t23 -10l466 -466q10 -10 10 -23zM979 576q0 -13 -10 -23l-466 -466q-10 -10 -23 -10t-23 10l-50 50q-10 10 -10 23t10 23 -l393 393l-393 393q-10 10 -10 23t10 23l50 50q10 10 23 10t23 -10l466 -466q10 -10 10 -23z" /> - <glyph glyph-name="double_angle_up" unicode="&#xf102;" horiz-adv-x="1152" -d="M1075 224q0 -13 -10 -23l-50 -50q-10 -10 -23 -10t-23 10l-393 393l-393 -393q-10 -10 -23 -10t-23 10l-50 50q-10 10 -10 23t10 23l466 466q10 10 23 10t23 -10l466 -466q10 -10 10 -23zM1075 608q0 -13 -10 -23l-50 -50q-10 -10 -23 -10t-23 10l-393 393l-393 -393 -q-10 -10 -23 -10t-23 10l-50 50q-10 10 -10 23t10 23l466 466q10 10 23 10t23 -10l466 -466q10 -10 10 -23z" /> - <glyph glyph-name="double_angle_down" unicode="&#xf103;" horiz-adv-x="1152" -d="M1075 672q0 -13 -10 -23l-466 -466q-10 -10 -23 -10t-23 10l-466 466q-10 10 -10 23t10 23l50 50q10 10 23 10t23 -10l393 -393l393 393q10 10 23 10t23 -10l50 -50q10 -10 10 -23zM1075 1056q0 -13 -10 -23l-466 -466q-10 -10 -23 -10t-23 10l-466 466q-10 10 -10 23 -t10 23l50 50q10 10 23 10t23 -10l393 -393l393 393q10 10 23 10t23 -10l50 -50q10 -10 10 -23z" /> - <glyph glyph-name="angle_left" unicode="&#xf104;" horiz-adv-x="640" -d="M627 992q0 -13 -10 -23l-393 -393l393 -393q10 -10 10 -23t-10 -23l-50 -50q-10 -10 -23 -10t-23 10l-466 466q-10 10 -10 23t10 23l466 466q10 10 23 10t23 -10l50 -50q10 -10 10 -23z" /> - <glyph glyph-name="angle_right" unicode="&#xf105;" horiz-adv-x="640" -d="M595 576q0 -13 -10 -23l-466 -466q-10 -10 -23 -10t-23 10l-50 50q-10 10 -10 23t10 23l393 393l-393 393q-10 10 -10 23t10 23l50 50q10 10 23 10t23 -10l466 -466q10 -10 10 -23z" /> - <glyph glyph-name="angle_up" unicode="&#xf106;" horiz-adv-x="1152" -d="M1075 352q0 -13 -10 -23l-50 -50q-10 -10 -23 -10t-23 10l-393 393l-393 -393q-10 -10 -23 -10t-23 10l-50 50q-10 10 -10 23t10 23l466 466q10 10 23 10t23 -10l466 -466q10 -10 10 -23z" /> - <glyph glyph-name="angle_down" unicode="&#xf107;" horiz-adv-x="1152" -d="M1075 800q0 -13 -10 -23l-466 -466q-10 -10 -23 -10t-23 10l-466 466q-10 10 -10 23t10 23l50 50q10 10 23 10t23 -10l393 -393l393 393q10 10 23 10t23 -10l50 -50q10 -10 10 -23z" /> - <glyph glyph-name="desktop" unicode="&#xf108;" horiz-adv-x="1920" -d="M1792 544v832q0 13 -9.5 22.5t-22.5 9.5h-1600q-13 0 -22.5 -9.5t-9.5 -22.5v-832q0 -13 9.5 -22.5t22.5 -9.5h1600q13 0 22.5 9.5t9.5 22.5zM1920 1376v-1088q0 -66 -47 -113t-113 -47h-544q0 -37 16 -77.5t32 -71t16 -43.5q0 -26 -19 -45t-45 -19h-512q-26 0 -45 19 -t-19 45q0 14 16 44t32 70t16 78h-544q-66 0 -113 47t-47 113v1088q0 66 47 113t113 47h1600q66 0 113 -47t47 -113z" /> - <glyph glyph-name="laptop" unicode="&#xf109;" horiz-adv-x="1920" -d="M416 256q-66 0 -113 47t-47 113v704q0 66 47 113t113 47h1088q66 0 113 -47t47 -113v-704q0 -66 -47 -113t-113 -47h-1088zM384 1120v-704q0 -13 9.5 -22.5t22.5 -9.5h1088q13 0 22.5 9.5t9.5 22.5v704q0 13 -9.5 22.5t-22.5 9.5h-1088q-13 0 -22.5 -9.5t-9.5 -22.5z -M1760 192h160v-96q0 -40 -47 -68t-113 -28h-1600q-66 0 -113 28t-47 68v96h160h1600zM1040 96q16 0 16 16t-16 16h-160q-16 0 -16 -16t16 -16h160z" /> - <glyph glyph-name="tablet" unicode="&#xf10a;" horiz-adv-x="1152" -d="M640 128q0 26 -19 45t-45 19t-45 -19t-19 -45t19 -45t45 -19t45 19t19 45zM1024 288v960q0 13 -9.5 22.5t-22.5 9.5h-832q-13 0 -22.5 -9.5t-9.5 -22.5v-960q0 -13 9.5 -22.5t22.5 -9.5h832q13 0 22.5 9.5t9.5 22.5zM1152 1248v-1088q0 -66 -47 -113t-113 -47h-832 -q-66 0 -113 47t-47 113v1088q0 66 47 113t113 47h832q66 0 113 -47t47 -113z" /> - <glyph glyph-name="mobile_phone" unicode="&#xf10b;" horiz-adv-x="768" -d="M464 128q0 33 -23.5 56.5t-56.5 23.5t-56.5 -23.5t-23.5 -56.5t23.5 -56.5t56.5 -23.5t56.5 23.5t23.5 56.5zM672 288v704q0 13 -9.5 22.5t-22.5 9.5h-512q-13 0 -22.5 -9.5t-9.5 -22.5v-704q0 -13 9.5 -22.5t22.5 -9.5h512q13 0 22.5 9.5t9.5 22.5zM480 1136 -q0 16 -16 16h-160q-16 0 -16 -16t16 -16h160q16 0 16 16zM768 1152v-1024q0 -52 -38 -90t-90 -38h-512q-52 0 -90 38t-38 90v1024q0 52 38 90t90 38h512q52 0 90 -38t38 -90z" /> - <glyph glyph-name="circle_blank" unicode="&#xf10c;" -d="M768 1184q-148 0 -273 -73t-198 -198t-73 -273t73 -273t198 -198t273 -73t273 73t198 198t73 273t-73 273t-198 198t-273 73zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103 -t279.5 -279.5t103 -385.5z" /> - <glyph glyph-name="quote_left" unicode="&#xf10d;" horiz-adv-x="1664" -d="M768 576v-384q0 -80 -56 -136t-136 -56h-384q-80 0 -136 56t-56 136v704q0 104 40.5 198.5t109.5 163.5t163.5 109.5t198.5 40.5h64q26 0 45 -19t19 -45v-128q0 -26 -19 -45t-45 -19h-64q-106 0 -181 -75t-75 -181v-32q0 -40 28 -68t68 -28h224q80 0 136 -56t56 -136z -M1664 576v-384q0 -80 -56 -136t-136 -56h-384q-80 0 -136 56t-56 136v704q0 104 40.5 198.5t109.5 163.5t163.5 109.5t198.5 40.5h64q26 0 45 -19t19 -45v-128q0 -26 -19 -45t-45 -19h-64q-106 0 -181 -75t-75 -181v-32q0 -40 28 -68t68 -28h224q80 0 136 -56t56 -136z" /> - <glyph glyph-name="quote_right" unicode="&#xf10e;" horiz-adv-x="1664" -d="M768 1216v-704q0 -104 -40.5 -198.5t-109.5 -163.5t-163.5 -109.5t-198.5 -40.5h-64q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h64q106 0 181 75t75 181v32q0 40 -28 68t-68 28h-224q-80 0 -136 56t-56 136v384q0 80 56 136t136 56h384q80 0 136 -56t56 -136zM1664 1216 -v-704q0 -104 -40.5 -198.5t-109.5 -163.5t-163.5 -109.5t-198.5 -40.5h-64q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h64q106 0 181 75t75 181v32q0 40 -28 68t-68 28h-224q-80 0 -136 56t-56 136v384q0 80 56 136t136 56h384q80 0 136 -56t56 -136z" /> - <glyph glyph-name="spinner" unicode="&#xf110;" horiz-adv-x="1792" -d="M526 142q0 -53 -37.5 -90.5t-90.5 -37.5q-52 0 -90 38t-38 90q0 53 37.5 90.5t90.5 37.5t90.5 -37.5t37.5 -90.5zM1024 -64q0 -53 -37.5 -90.5t-90.5 -37.5t-90.5 37.5t-37.5 90.5t37.5 90.5t90.5 37.5t90.5 -37.5t37.5 -90.5zM320 640q0 -53 -37.5 -90.5t-90.5 -37.5 -t-90.5 37.5t-37.5 90.5t37.5 90.5t90.5 37.5t90.5 -37.5t37.5 -90.5zM1522 142q0 -52 -38 -90t-90 -38q-53 0 -90.5 37.5t-37.5 90.5t37.5 90.5t90.5 37.5t90.5 -37.5t37.5 -90.5zM558 1138q0 -66 -47 -113t-113 -47t-113 47t-47 113t47 113t113 47t113 -47t47 -113z -M1728 640q0 -53 -37.5 -90.5t-90.5 -37.5t-90.5 37.5t-37.5 90.5t37.5 90.5t90.5 37.5t90.5 -37.5t37.5 -90.5zM1088 1344q0 -80 -56 -136t-136 -56t-136 56t-56 136t56 136t136 56t136 -56t56 -136zM1618 1138q0 -93 -66 -158.5t-158 -65.5q-93 0 -158.5 65.5t-65.5 158.5 -q0 92 65.5 158t158.5 66q92 0 158 -66t66 -158z" /> - <glyph glyph-name="circle" unicode="&#xf111;" -d="M1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" /> - <glyph glyph-name="reply" unicode="&#xf112;" horiz-adv-x="1792" -d="M1792 416q0 -166 -127 -451q-3 -7 -10.5 -24t-13.5 -30t-13 -22q-12 -17 -28 -17q-15 0 -23.5 10t-8.5 25q0 9 2.5 26.5t2.5 23.5q5 68 5 123q0 101 -17.5 181t-48.5 138.5t-80 101t-105.5 69.5t-133 42.5t-154 21.5t-175.5 6h-224v-256q0 -26 -19 -45t-45 -19t-45 19 -l-512 512q-19 19 -19 45t19 45l512 512q19 19 45 19t45 -19t19 -45v-256h224q713 0 875 -403q53 -134 53 -333z" /> - <glyph glyph-name="github_alt" unicode="&#xf113;" horiz-adv-x="1664" -d="M640 320q0 -40 -12.5 -82t-43 -76t-72.5 -34t-72.5 34t-43 76t-12.5 82t12.5 82t43 76t72.5 34t72.5 -34t43 -76t12.5 -82zM1280 320q0 -40 -12.5 -82t-43 -76t-72.5 -34t-72.5 34t-43 76t-12.5 82t12.5 82t43 76t72.5 34t72.5 -34t43 -76t12.5 -82zM1440 320 -q0 120 -69 204t-187 84q-41 0 -195 -21q-71 -11 -157 -11t-157 11q-152 21 -195 21q-118 0 -187 -84t-69 -204q0 -88 32 -153.5t81 -103t122 -60t140 -29.5t149 -7h168q82 0 149 7t140 29.5t122 60t81 103t32 153.5zM1664 496q0 -207 -61 -331q-38 -77 -105.5 -133t-141 -86 -t-170 -47.5t-171.5 -22t-167 -4.5q-78 0 -142 3t-147.5 12.5t-152.5 30t-137 51.5t-121 81t-86 115q-62 123 -62 331q0 237 136 396q-27 82 -27 170q0 116 51 218q108 0 190 -39.5t189 -123.5q147 35 309 35q148 0 280 -32q105 82 187 121t189 39q51 -102 51 -218 -q0 -87 -27 -168q136 -160 136 -398z" /> - <glyph glyph-name="folder_close_alt" unicode="&#xf114;" horiz-adv-x="1664" -d="M1536 224v704q0 40 -28 68t-68 28h-704q-40 0 -68 28t-28 68v64q0 40 -28 68t-68 28h-320q-40 0 -68 -28t-28 -68v-960q0 -40 28 -68t68 -28h1216q40 0 68 28t28 68zM1664 928v-704q0 -92 -66 -158t-158 -66h-1216q-92 0 -158 66t-66 158v960q0 92 66 158t158 66h320 -q92 0 158 -66t66 -158v-32h672q92 0 158 -66t66 -158z" /> - <glyph glyph-name="folder_open_alt" unicode="&#xf115;" horiz-adv-x="1920" -d="M1781 605q0 35 -53 35h-1088q-40 0 -85.5 -21.5t-71.5 -52.5l-294 -363q-18 -24 -18 -40q0 -35 53 -35h1088q40 0 86 22t71 53l294 363q18 22 18 39zM640 768h768v160q0 40 -28 68t-68 28h-576q-40 0 -68 28t-28 68v64q0 40 -28 68t-68 28h-320q-40 0 -68 -28t-28 -68 -v-853l256 315q44 53 116 87.5t140 34.5zM1909 605q0 -62 -46 -120l-295 -363q-43 -53 -116 -87.5t-140 -34.5h-1088q-92 0 -158 66t-66 158v960q0 92 66 158t158 66h320q92 0 158 -66t66 -158v-32h544q92 0 158 -66t66 -158v-160h192q54 0 99 -24.5t67 -70.5q15 -32 15 -68z -" /> - <glyph glyph-name="expand_alt" unicode="&#xf116;" horiz-adv-x="1792" - /> - <glyph glyph-name="collapse_alt" unicode="&#xf117;" horiz-adv-x="1792" - /> - <glyph glyph-name="smile" unicode="&#xf118;" -d="M1134 461q-37 -121 -138 -195t-228 -74t-228 74t-138 195q-8 25 4 48.5t38 31.5q25 8 48.5 -4t31.5 -38q25 -80 92.5 -129.5t151.5 -49.5t151.5 49.5t92.5 129.5q8 26 32 38t49 4t37 -31.5t4 -48.5zM640 896q0 -53 -37.5 -90.5t-90.5 -37.5t-90.5 37.5t-37.5 90.5 -t37.5 90.5t90.5 37.5t90.5 -37.5t37.5 -90.5zM1152 896q0 -53 -37.5 -90.5t-90.5 -37.5t-90.5 37.5t-37.5 90.5t37.5 90.5t90.5 37.5t90.5 -37.5t37.5 -90.5zM1408 640q0 130 -51 248.5t-136.5 204t-204 136.5t-248.5 51t-248.5 -51t-204 -136.5t-136.5 -204t-51 -248.5 -t51 -248.5t136.5 -204t204 -136.5t248.5 -51t248.5 51t204 136.5t136.5 204t51 248.5zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" /> - <glyph glyph-name="frown" unicode="&#xf119;" -d="M1134 307q8 -25 -4 -48.5t-37 -31.5t-49 4t-32 38q-25 80 -92.5 129.5t-151.5 49.5t-151.5 -49.5t-92.5 -129.5q-8 -26 -31.5 -38t-48.5 -4q-26 8 -38 31.5t-4 48.5q37 121 138 195t228 74t228 -74t138 -195zM640 896q0 -53 -37.5 -90.5t-90.5 -37.5t-90.5 37.5 -t-37.5 90.5t37.5 90.5t90.5 37.5t90.5 -37.5t37.5 -90.5zM1152 896q0 -53 -37.5 -90.5t-90.5 -37.5t-90.5 37.5t-37.5 90.5t37.5 90.5t90.5 37.5t90.5 -37.5t37.5 -90.5zM1408 640q0 130 -51 248.5t-136.5 204t-204 136.5t-248.5 51t-248.5 -51t-204 -136.5t-136.5 -204 -t-51 -248.5t51 -248.5t136.5 -204t204 -136.5t248.5 -51t248.5 51t204 136.5t136.5 204t51 248.5zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" /> - <glyph glyph-name="meh" unicode="&#xf11a;" -d="M1152 448q0 -26 -19 -45t-45 -19h-640q-26 0 -45 19t-19 45t19 45t45 19h640q26 0 45 -19t19 -45zM640 896q0 -53 -37.5 -90.5t-90.5 -37.5t-90.5 37.5t-37.5 90.5t37.5 90.5t90.5 37.5t90.5 -37.5t37.5 -90.5zM1152 896q0 -53 -37.5 -90.5t-90.5 -37.5t-90.5 37.5 -t-37.5 90.5t37.5 90.5t90.5 37.5t90.5 -37.5t37.5 -90.5zM1408 640q0 130 -51 248.5t-136.5 204t-204 136.5t-248.5 51t-248.5 -51t-204 -136.5t-136.5 -204t-51 -248.5t51 -248.5t136.5 -204t204 -136.5t248.5 -51t248.5 51t204 136.5t136.5 204t51 248.5zM1536 640 -q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" /> - <glyph glyph-name="gamepad" unicode="&#xf11b;" horiz-adv-x="1920" -d="M832 448v128q0 14 -9 23t-23 9h-192v192q0 14 -9 23t-23 9h-128q-14 0 -23 -9t-9 -23v-192h-192q-14 0 -23 -9t-9 -23v-128q0 -14 9 -23t23 -9h192v-192q0 -14 9 -23t23 -9h128q14 0 23 9t9 23v192h192q14 0 23 9t9 23zM1408 384q0 53 -37.5 90.5t-90.5 37.5t-90.5 -37.5 -t-37.5 -90.5t37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5zM1664 640q0 53 -37.5 90.5t-90.5 37.5t-90.5 -37.5t-37.5 -90.5t37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5zM1920 512q0 -212 -150 -362t-362 -150q-192 0 -338 128h-220q-146 -128 -338 -128q-212 0 -362 150 -t-150 362t150 362t362 150h896q212 0 362 -150t150 -362z" /> - <glyph glyph-name="keyboard" unicode="&#xf11c;" horiz-adv-x="1920" -d="M384 368v-96q0 -16 -16 -16h-96q-16 0 -16 16v96q0 16 16 16h96q16 0 16 -16zM512 624v-96q0 -16 -16 -16h-224q-16 0 -16 16v96q0 16 16 16h224q16 0 16 -16zM384 880v-96q0 -16 -16 -16h-96q-16 0 -16 16v96q0 16 16 16h96q16 0 16 -16zM1408 368v-96q0 -16 -16 -16 -h-864q-16 0 -16 16v96q0 16 16 16h864q16 0 16 -16zM768 624v-96q0 -16 -16 -16h-96q-16 0 -16 16v96q0 16 16 16h96q16 0 16 -16zM640 880v-96q0 -16 -16 -16h-96q-16 0 -16 16v96q0 16 16 16h96q16 0 16 -16zM1024 624v-96q0 -16 -16 -16h-96q-16 0 -16 16v96q0 16 16 16 -h96q16 0 16 -16zM896 880v-96q0 -16 -16 -16h-96q-16 0 -16 16v96q0 16 16 16h96q16 0 16 -16zM1280 624v-96q0 -16 -16 -16h-96q-16 0 -16 16v96q0 16 16 16h96q16 0 16 -16zM1664 368v-96q0 -16 -16 -16h-96q-16 0 -16 16v96q0 16 16 16h96q16 0 16 -16zM1152 880v-96 -q0 -16 -16 -16h-96q-16 0 -16 16v96q0 16 16 16h96q16 0 16 -16zM1408 880v-96q0 -16 -16 -16h-96q-16 0 -16 16v96q0 16 16 16h96q16 0 16 -16zM1664 880v-352q0 -16 -16 -16h-224q-16 0 -16 16v96q0 16 16 16h112v240q0 16 16 16h96q16 0 16 -16zM1792 128v896h-1664v-896 -h1664zM1920 1024v-896q0 -53 -37.5 -90.5t-90.5 -37.5h-1664q-53 0 -90.5 37.5t-37.5 90.5v896q0 53 37.5 90.5t90.5 37.5h1664q53 0 90.5 -37.5t37.5 -90.5z" /> - <glyph glyph-name="flag_alt" unicode="&#xf11d;" horiz-adv-x="1792" -d="M1664 491v616q-169 -91 -306 -91q-82 0 -145 32q-100 49 -184 76.5t-178 27.5q-173 0 -403 -127v-599q245 113 433 113q55 0 103.5 -7.5t98 -26t77 -31t82.5 -39.5l28 -14q44 -22 101 -22q120 0 293 92zM320 1280q0 -35 -17.5 -64t-46.5 -46v-1266q0 -14 -9 -23t-23 -9 -h-64q-14 0 -23 9t-9 23v1266q-29 17 -46.5 46t-17.5 64q0 53 37.5 90.5t90.5 37.5t90.5 -37.5t37.5 -90.5zM1792 1216v-763q0 -39 -35 -57q-10 -5 -17 -9q-218 -116 -369 -116q-88 0 -158 35l-28 14q-64 33 -99 48t-91 29t-114 14q-102 0 -235.5 -44t-228.5 -102 -q-15 -9 -33 -9q-16 0 -32 8q-32 19 -32 56v742q0 35 31 55q35 21 78.5 42.5t114 52t152.5 49.5t155 19q112 0 209 -31t209 -86q38 -19 89 -19q122 0 310 112q22 12 31 17q31 16 62 -2q31 -20 31 -55z" /> - <glyph glyph-name="flag_checkered" unicode="&#xf11e;" horiz-adv-x="1792" -d="M832 536v192q-181 -16 -384 -117v-185q205 96 384 110zM832 954v197q-172 -8 -384 -126v-189q215 111 384 118zM1664 491v184q-235 -116 -384 -71v224q-20 6 -39 15q-5 3 -33 17t-34.5 17t-31.5 15t-34.5 15.5t-32.5 13t-36 12.5t-35 8.5t-39.5 7.5t-39.5 4t-44 2 -q-23 0 -49 -3v-222h19q102 0 192.5 -29t197.5 -82q19 -9 39 -15v-188q42 -17 91 -17q120 0 293 92zM1664 918v189q-169 -91 -306 -91q-45 0 -78 8v-196q148 -42 384 90zM320 1280q0 -35 -17.5 -64t-46.5 -46v-1266q0 -14 -9 -23t-23 -9h-64q-14 0 -23 9t-9 23v1266 -q-29 17 -46.5 46t-17.5 64q0 53 37.5 90.5t90.5 37.5t90.5 -37.5t37.5 -90.5zM1792 1216v-763q0 -39 -35 -57q-10 -5 -17 -9q-218 -116 -369 -116q-88 0 -158 35l-28 14q-64 33 -99 48t-91 29t-114 14q-102 0 -235.5 -44t-228.5 -102q-15 -9 -33 -9q-16 0 -32 8 -q-32 19 -32 56v742q0 35 31 55q35 21 78.5 42.5t114 52t152.5 49.5t155 19q112 0 209 -31t209 -86q38 -19 89 -19q122 0 310 112q22 12 31 17q31 16 62 -2q31 -20 31 -55z" /> - <glyph glyph-name="terminal" unicode="&#xf120;" horiz-adv-x="1664" -d="M585 553l-466 -466q-10 -10 -23 -10t-23 10l-50 50q-10 10 -10 23t10 23l393 393l-393 393q-10 10 -10 23t10 23l50 50q10 10 23 10t23 -10l466 -466q10 -10 10 -23t-10 -23zM1664 96v-64q0 -14 -9 -23t-23 -9h-960q-14 0 -23 9t-9 23v64q0 14 9 23t23 9h960q14 0 23 -9 -t9 -23z" /> - <glyph glyph-name="code" unicode="&#xf121;" horiz-adv-x="1920" -d="M617 137l-50 -50q-10 -10 -23 -10t-23 10l-466 466q-10 10 -10 23t10 23l466 466q10 10 23 10t23 -10l50 -50q10 -10 10 -23t-10 -23l-393 -393l393 -393q10 -10 10 -23t-10 -23zM1208 1204l-373 -1291q-4 -13 -15.5 -19.5t-23.5 -2.5l-62 17q-13 4 -19.5 15.5t-2.5 24.5 -l373 1291q4 13 15.5 19.5t23.5 2.5l62 -17q13 -4 19.5 -15.5t2.5 -24.5zM1865 553l-466 -466q-10 -10 -23 -10t-23 10l-50 50q-10 10 -10 23t10 23l393 393l-393 393q-10 10 -10 23t10 23l50 50q10 10 23 10t23 -10l466 -466q10 -10 10 -23t-10 -23z" /> - <glyph glyph-name="reply_all" unicode="&#xf122;" horiz-adv-x="1792" -d="M640 454v-70q0 -42 -39 -59q-13 -5 -25 -5q-27 0 -45 19l-512 512q-19 19 -19 45t19 45l512 512q29 31 70 14q39 -17 39 -59v-69l-397 -398q-19 -19 -19 -45t19 -45zM1792 416q0 -58 -17 -133.5t-38.5 -138t-48 -125t-40.5 -90.5l-20 -40q-8 -17 -28 -17q-6 0 -9 1 -q-25 8 -23 34q43 400 -106 565q-64 71 -170.5 110.5t-267.5 52.5v-251q0 -42 -39 -59q-13 -5 -25 -5q-27 0 -45 19l-512 512q-19 19 -19 45t19 45l512 512q29 31 70 14q39 -17 39 -59v-262q411 -28 599 -221q169 -173 169 -509z" /> - <glyph glyph-name="star_half_empty" unicode="&#xf123;" horiz-adv-x="1664" -d="M1186 579l257 250l-356 52l-66 10l-30 60l-159 322v-963l59 -31l318 -168l-60 355l-12 66zM1638 841l-363 -354l86 -500q5 -33 -6 -51.5t-34 -18.5q-17 0 -40 12l-449 236l-449 -236q-23 -12 -40 -12q-23 0 -34 18.5t-6 51.5l86 500l-364 354q-32 32 -23 59.5t54 34.5 -l502 73l225 455q20 41 49 41q28 0 49 -41l225 -455l502 -73q45 -7 54 -34.5t-24 -59.5z" /> - <glyph glyph-name="location_arrow" unicode="&#xf124;" horiz-adv-x="1408" -d="M1401 1187l-640 -1280q-17 -35 -57 -35q-5 0 -15 2q-22 5 -35.5 22.5t-13.5 39.5v576h-576q-22 0 -39.5 13.5t-22.5 35.5t4 42t29 30l1280 640q13 7 29 7q27 0 45 -19q15 -14 18.5 -34.5t-6.5 -39.5z" /> - <glyph glyph-name="crop" unicode="&#xf125;" horiz-adv-x="1664" -d="M557 256h595v595zM512 301l595 595h-595v-595zM1664 224v-192q0 -14 -9 -23t-23 -9h-224v-224q0 -14 -9 -23t-23 -9h-192q-14 0 -23 9t-9 23v224h-864q-14 0 -23 9t-9 23v864h-224q-14 0 -23 9t-9 23v192q0 14 9 23t23 9h224v224q0 14 9 23t23 9h192q14 0 23 -9t9 -23 -v-224h851l246 247q10 9 23 9t23 -9q9 -10 9 -23t-9 -23l-247 -246v-851h224q14 0 23 -9t9 -23z" /> - <glyph glyph-name="code_fork" unicode="&#xf126;" horiz-adv-x="1024" -d="M288 64q0 40 -28 68t-68 28t-68 -28t-28 -68t28 -68t68 -28t68 28t28 68zM288 1216q0 40 -28 68t-68 28t-68 -28t-28 -68t28 -68t68 -28t68 28t28 68zM928 1088q0 40 -28 68t-68 28t-68 -28t-28 -68t28 -68t68 -28t68 28t28 68zM1024 1088q0 -52 -26 -96.5t-70 -69.5 -q-2 -287 -226 -414q-67 -38 -203 -81q-128 -40 -169.5 -71t-41.5 -100v-26q44 -25 70 -69.5t26 -96.5q0 -80 -56 -136t-136 -56t-136 56t-56 136q0 52 26 96.5t70 69.5v820q-44 25 -70 69.5t-26 96.5q0 80 56 136t136 56t136 -56t56 -136q0 -52 -26 -96.5t-70 -69.5v-497 -q54 26 154 57q55 17 87.5 29.5t70.5 31t59 39.5t40.5 51t28 69.5t8.5 91.5q-44 25 -70 69.5t-26 96.5q0 80 56 136t136 56t136 -56t56 -136z" /> - <glyph glyph-name="unlink" unicode="&#xf127;" horiz-adv-x="1664" -d="M439 265l-256 -256q-11 -9 -23 -9t-23 9q-9 10 -9 23t9 23l256 256q10 9 23 9t23 -9q9 -10 9 -23t-9 -23zM608 224v-320q0 -14 -9 -23t-23 -9t-23 9t-9 23v320q0 14 9 23t23 9t23 -9t9 -23zM384 448q0 -14 -9 -23t-23 -9h-320q-14 0 -23 9t-9 23t9 23t23 9h320 -q14 0 23 -9t9 -23zM1648 320q0 -120 -85 -203l-147 -146q-83 -83 -203 -83q-121 0 -204 85l-334 335q-21 21 -42 56l239 18l273 -274q27 -27 68 -27.5t68 26.5l147 146q28 28 28 67q0 40 -28 68l-274 275l18 239q35 -21 56 -42l336 -336q84 -86 84 -204zM1031 1044l-239 -18 -l-273 274q-28 28 -68 28q-39 0 -68 -27l-147 -146q-28 -28 -28 -67q0 -40 28 -68l274 -274l-18 -240q-35 21 -56 42l-336 336q-84 86 -84 204q0 120 85 203l147 146q83 83 203 83q121 0 204 -85l334 -335q21 -21 42 -56zM1664 960q0 -14 -9 -23t-23 -9h-320q-14 0 -23 9 -t-9 23t9 23t23 9h320q14 0 23 -9t9 -23zM1120 1504v-320q0 -14 -9 -23t-23 -9t-23 9t-9 23v320q0 14 9 23t23 9t23 -9t9 -23zM1527 1353l-256 -256q-11 -9 -23 -9t-23 9q-9 10 -9 23t9 23l256 256q10 9 23 9t23 -9q9 -10 9 -23t-9 -23z" /> - <glyph glyph-name="question" unicode="&#xf128;" horiz-adv-x="1024" -d="M704 280v-240q0 -16 -12 -28t-28 -12h-240q-16 0 -28 12t-12 28v240q0 16 12 28t28 12h240q16 0 28 -12t12 -28zM1020 880q0 -54 -15.5 -101t-35 -76.5t-55 -59.5t-57.5 -43.5t-61 -35.5q-41 -23 -68.5 -65t-27.5 -67q0 -17 -12 -32.5t-28 -15.5h-240q-15 0 -25.5 18.5 -t-10.5 37.5v45q0 83 65 156.5t143 108.5q59 27 84 56t25 76q0 42 -46.5 74t-107.5 32q-65 0 -108 -29q-35 -25 -107 -115q-13 -16 -31 -16q-12 0 -25 8l-164 125q-13 10 -15.5 25t5.5 28q160 266 464 266q80 0 161 -31t146 -83t106 -127.5t41 -158.5z" /> - <glyph glyph-name="_279" unicode="&#xf129;" horiz-adv-x="640" -d="M640 192v-128q0 -26 -19 -45t-45 -19h-512q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h64v384h-64q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h384q26 0 45 -19t19 -45v-576h64q26 0 45 -19t19 -45zM512 1344v-192q0 -26 -19 -45t-45 -19h-256q-26 0 -45 19t-19 45v192 -q0 26 19 45t45 19h256q26 0 45 -19t19 -45z" /> - <glyph glyph-name="exclamation" unicode="&#xf12a;" horiz-adv-x="640" -d="M512 288v-224q0 -26 -19 -45t-45 -19h-256q-26 0 -45 19t-19 45v224q0 26 19 45t45 19h256q26 0 45 -19t19 -45zM542 1344l-28 -768q-1 -26 -20.5 -45t-45.5 -19h-256q-26 0 -45.5 19t-20.5 45l-28 768q-1 26 17.5 45t44.5 19h320q26 0 44.5 -19t17.5 -45z" /> - <glyph glyph-name="superscript" unicode="&#xf12b;" -d="M897 167v-167h-248l-159 252l-24 42q-8 9 -11 21h-3q-1 -3 -2.5 -6.5t-3.5 -8t-3 -6.5q-10 -20 -25 -44l-155 -250h-258v167h128l197 291l-185 272h-137v168h276l139 -228q2 -4 23 -42q8 -9 11 -21h3q3 9 11 21l25 42l140 228h257v-168h-125l-184 -267l204 -296h109z -M1534 846v-206h-514l-3 27q-4 28 -4 46q0 64 26 117t65 86.5t84 65t84 54.5t65 54t26 64q0 38 -29.5 62.5t-70.5 24.5q-51 0 -97 -39q-14 -11 -36 -38l-105 92q26 37 63 66q83 65 188 65q110 0 178 -59.5t68 -158.5q0 -56 -24.5 -103t-62 -76.5t-81.5 -58.5t-82 -50.5 -t-65.5 -51.5t-30.5 -63h232v80h126z" /> - <glyph glyph-name="subscript" unicode="&#xf12c;" -d="M897 167v-167h-248l-159 252l-24 42q-8 9 -11 21h-3q-1 -3 -2.5 -6.5t-3.5 -8t-3 -6.5q-10 -20 -25 -44l-155 -250h-258v167h128l197 291l-185 272h-137v168h276l139 -228q2 -4 23 -42q8 -9 11 -21h3q3 9 11 21l25 42l140 228h257v-168h-125l-184 -267l204 -296h109z -M1536 -50v-206h-514l-4 27q-3 45 -3 46q0 64 26 117t65 86.5t84 65t84 54.5t65 54t26 64q0 38 -29.5 62.5t-70.5 24.5q-51 0 -97 -39q-14 -11 -36 -38l-105 92q26 37 63 66q80 65 188 65q110 0 178 -59.5t68 -158.5q0 -66 -34.5 -118.5t-84 -86t-99.5 -62.5t-87 -63t-41 -73 -h232v80h126z" /> - <glyph glyph-name="_283" unicode="&#xf12d;" horiz-adv-x="1920" -d="M896 128l336 384h-768l-336 -384h768zM1909 1205q15 -34 9.5 -71.5t-30.5 -65.5l-896 -1024q-38 -44 -96 -44h-768q-38 0 -69.5 20.5t-47.5 54.5q-15 34 -9.5 71.5t30.5 65.5l896 1024q38 44 96 44h768q38 0 69.5 -20.5t47.5 -54.5z" /> - <glyph glyph-name="puzzle_piece" unicode="&#xf12e;" horiz-adv-x="1664" -d="M1664 438q0 -81 -44.5 -135t-123.5 -54q-41 0 -77.5 17.5t-59 38t-56.5 38t-71 17.5q-110 0 -110 -124q0 -39 16 -115t15 -115v-5q-22 0 -33 -1q-34 -3 -97.5 -11.5t-115.5 -13.5t-98 -5q-61 0 -103 26.5t-42 83.5q0 37 17.5 71t38 56.5t38 59t17.5 77.5q0 79 -54 123.5 -t-135 44.5q-84 0 -143 -45.5t-59 -127.5q0 -43 15 -83t33.5 -64.5t33.5 -53t15 -50.5q0 -45 -46 -89q-37 -35 -117 -35q-95 0 -245 24q-9 2 -27.5 4t-27.5 4l-13 2q-1 0 -3 1q-2 0 -2 1v1024q2 -1 17.5 -3.5t34 -5t21.5 -3.5q150 -24 245 -24q80 0 117 35q46 44 46 89 -q0 22 -15 50.5t-33.5 53t-33.5 64.5t-15 83q0 82 59 127.5t144 45.5q80 0 134 -44.5t54 -123.5q0 -41 -17.5 -77.5t-38 -59t-38 -56.5t-17.5 -71q0 -57 42 -83.5t103 -26.5q64 0 180 15t163 17v-2q-1 -2 -3.5 -17.5t-5 -34t-3.5 -21.5q-24 -150 -24 -245q0 -80 35 -117 -q44 -46 89 -46q22 0 50.5 15t53 33.5t64.5 33.5t83 15q82 0 127.5 -59t45.5 -143z" /> - <glyph glyph-name="microphone" unicode="&#xf130;" horiz-adv-x="1152" -d="M1152 832v-128q0 -221 -147.5 -384.5t-364.5 -187.5v-132h256q26 0 45 -19t19 -45t-19 -45t-45 -19h-640q-26 0 -45 19t-19 45t19 45t45 19h256v132q-217 24 -364.5 187.5t-147.5 384.5v128q0 26 19 45t45 19t45 -19t19 -45v-128q0 -185 131.5 -316.5t316.5 -131.5 -t316.5 131.5t131.5 316.5v128q0 26 19 45t45 19t45 -19t19 -45zM896 1216v-512q0 -132 -94 -226t-226 -94t-226 94t-94 226v512q0 132 94 226t226 94t226 -94t94 -226z" /> - <glyph glyph-name="microphone_off" unicode="&#xf131;" horiz-adv-x="1408" -d="M271 591l-101 -101q-42 103 -42 214v128q0 26 19 45t45 19t45 -19t19 -45v-128q0 -53 15 -113zM1385 1193l-361 -361v-128q0 -132 -94 -226t-226 -94q-55 0 -109 19l-96 -96q97 -51 205 -51q185 0 316.5 131.5t131.5 316.5v128q0 26 19 45t45 19t45 -19t19 -45v-128 -q0 -221 -147.5 -384.5t-364.5 -187.5v-132h256q26 0 45 -19t19 -45t-19 -45t-45 -19h-640q-26 0 -45 19t-19 45t19 45t45 19h256v132q-125 13 -235 81l-254 -254q-10 -10 -23 -10t-23 10l-82 82q-10 10 -10 23t10 23l1234 1234q10 10 23 10t23 -10l82 -82q10 -10 10 -23 -t-10 -23zM1005 1325l-621 -621v512q0 132 94 226t226 94q102 0 184.5 -59t116.5 -152z" /> - <glyph glyph-name="shield" unicode="&#xf132;" horiz-adv-x="1280" -d="M1088 576v640h-448v-1137q119 63 213 137q235 184 235 360zM1280 1344v-768q0 -86 -33.5 -170.5t-83 -150t-118 -127.5t-126.5 -103t-121 -77.5t-89.5 -49.5t-42.5 -20q-12 -6 -26 -6t-26 6q-16 7 -42.5 20t-89.5 49.5t-121 77.5t-126.5 103t-118 127.5t-83 150 -t-33.5 170.5v768q0 26 19 45t45 19h1152q26 0 45 -19t19 -45z" /> - <glyph glyph-name="calendar_empty" unicode="&#xf133;" horiz-adv-x="1664" -d="M128 -128h1408v1024h-1408v-1024zM512 1088v288q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23v-288q0 -14 9 -23t23 -9h64q14 0 23 9t9 23zM1280 1088v288q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23v-288q0 -14 9 -23t23 -9h64q14 0 23 9t9 23zM1664 1152v-1280 -q0 -52 -38 -90t-90 -38h-1408q-52 0 -90 38t-38 90v1280q0 52 38 90t90 38h128v96q0 66 47 113t113 47h64q66 0 113 -47t47 -113v-96h384v96q0 66 47 113t113 47h64q66 0 113 -47t47 -113v-96h128q52 0 90 -38t38 -90z" /> - <glyph glyph-name="fire_extinguisher" unicode="&#xf134;" horiz-adv-x="1408" -d="M512 1344q0 26 -19 45t-45 19t-45 -19t-19 -45t19 -45t45 -19t45 19t19 45zM1408 1376v-320q0 -16 -12 -25q-8 -7 -20 -7q-4 0 -7 1l-448 96q-11 2 -18 11t-7 20h-256v-102q111 -23 183.5 -111t72.5 -203v-800q0 -26 -19 -45t-45 -19h-512q-26 0 -45 19t-19 45v800 -q0 106 62.5 190.5t161.5 114.5v111h-32q-59 0 -115 -23.5t-91.5 -53t-66 -66.5t-40.5 -53.5t-14 -24.5q-17 -35 -57 -35q-16 0 -29 7q-23 12 -31.5 37t3.5 49q5 10 14.5 26t37.5 53.5t60.5 70t85 67t108.5 52.5q-25 42 -25 86q0 66 47 113t113 47t113 -47t47 -113 -q0 -33 -14 -64h302q0 11 7 20t18 11l448 96q3 1 7 1q12 0 20 -7q12 -9 12 -25z" /> - <glyph glyph-name="rocket" unicode="&#xf135;" horiz-adv-x="1664" -d="M1440 1088q0 40 -28 68t-68 28t-68 -28t-28 -68t28 -68t68 -28t68 28t28 68zM1664 1376q0 -249 -75.5 -430.5t-253.5 -360.5q-81 -80 -195 -176l-20 -379q-2 -16 -16 -26l-384 -224q-7 -4 -16 -4q-12 0 -23 9l-64 64q-13 14 -8 32l85 276l-281 281l-276 -85q-3 -1 -9 -1 -q-14 0 -23 9l-64 64q-17 19 -5 39l224 384q10 14 26 16l379 20q96 114 176 195q188 187 358 258t431 71q14 0 24 -9.5t10 -22.5z" /> - <glyph glyph-name="maxcdn" unicode="&#xf136;" horiz-adv-x="1792" -d="M1745 763l-164 -763h-334l178 832q13 56 -15 88q-27 33 -83 33h-169l-204 -953h-334l204 953h-286l-204 -953h-334l204 953l-153 327h1276q101 0 189.5 -40.5t147.5 -113.5q60 -73 81 -168.5t0 -194.5z" /> - <glyph glyph-name="chevron_sign_left" unicode="&#xf137;" -d="M909 141l102 102q19 19 19 45t-19 45l-307 307l307 307q19 19 19 45t-19 45l-102 102q-19 19 -45 19t-45 -19l-454 -454q-19 -19 -19 -45t19 -45l454 -454q19 -19 45 -19t45 19zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5 -t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" /> - <glyph glyph-name="chevron_sign_right" unicode="&#xf138;" -d="M717 141l454 454q19 19 19 45t-19 45l-454 454q-19 19 -45 19t-45 -19l-102 -102q-19 -19 -19 -45t19 -45l307 -307l-307 -307q-19 -19 -19 -45t19 -45l102 -102q19 -19 45 -19t45 19zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5 -t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" /> - <glyph glyph-name="chevron_sign_up" unicode="&#xf139;" -d="M1165 397l102 102q19 19 19 45t-19 45l-454 454q-19 19 -45 19t-45 -19l-454 -454q-19 -19 -19 -45t19 -45l102 -102q19 -19 45 -19t45 19l307 307l307 -307q19 -19 45 -19t45 19zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5 -t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" /> - <glyph glyph-name="chevron_sign_down" unicode="&#xf13a;" -d="M813 237l454 454q19 19 19 45t-19 45l-102 102q-19 19 -45 19t-45 -19l-307 -307l-307 307q-19 19 -45 19t-45 -19l-102 -102q-19 -19 -19 -45t19 -45l454 -454q19 -19 45 -19t45 19zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5 -t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" /> - <glyph glyph-name="html5" unicode="&#xf13b;" horiz-adv-x="1408" -d="M1130 939l16 175h-884l47 -534h612l-22 -228l-197 -53l-196 53l-13 140h-175l22 -278l362 -100h4v1l359 99l50 544h-644l-15 181h674zM0 1408h1408l-128 -1438l-578 -162l-574 162z" /> - <glyph glyph-name="css3" unicode="&#xf13c;" horiz-adv-x="1792" -d="M275 1408h1505l-266 -1333l-804 -267l-698 267l71 356h297l-29 -147l422 -161l486 161l68 339h-1208l58 297h1209l38 191h-1208z" /> - <glyph glyph-name="anchor" unicode="&#xf13d;" horiz-adv-x="1792" -d="M960 1280q0 26 -19 45t-45 19t-45 -19t-19 -45t19 -45t45 -19t45 19t19 45zM1792 352v-352q0 -22 -20 -30q-8 -2 -12 -2q-12 0 -23 9l-93 93q-119 -143 -318.5 -226.5t-429.5 -83.5t-429.5 83.5t-318.5 226.5l-93 -93q-9 -9 -23 -9q-4 0 -12 2q-20 8 -20 30v352 -q0 14 9 23t23 9h352q22 0 30 -20q8 -19 -7 -35l-100 -100q67 -91 189.5 -153.5t271.5 -82.5v647h-192q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h192v163q-58 34 -93 92.5t-35 128.5q0 106 75 181t181 75t181 -75t75 -181q0 -70 -35 -128.5t-93 -92.5v-163h192q26 0 45 -19 -t19 -45v-128q0 -26 -19 -45t-45 -19h-192v-647q149 20 271.5 82.5t189.5 153.5l-100 100q-15 16 -7 35q8 20 30 20h352q14 0 23 -9t9 -23z" /> - <glyph glyph-name="unlock_alt" unicode="&#xf13e;" horiz-adv-x="1152" -d="M1056 768q40 0 68 -28t28 -68v-576q0 -40 -28 -68t-68 -28h-960q-40 0 -68 28t-28 68v576q0 40 28 68t68 28h32v320q0 185 131.5 316.5t316.5 131.5t316.5 -131.5t131.5 -316.5q0 -26 -19 -45t-45 -19h-64q-26 0 -45 19t-19 45q0 106 -75 181t-181 75t-181 -75t-75 -181 -v-320h736z" /> - <glyph glyph-name="bullseye" unicode="&#xf140;" -d="M1024 640q0 -106 -75 -181t-181 -75t-181 75t-75 181t75 181t181 75t181 -75t75 -181zM1152 640q0 159 -112.5 271.5t-271.5 112.5t-271.5 -112.5t-112.5 -271.5t112.5 -271.5t271.5 -112.5t271.5 112.5t112.5 271.5zM1280 640q0 -212 -150 -362t-362 -150t-362 150 -t-150 362t150 362t362 150t362 -150t150 -362zM1408 640q0 130 -51 248.5t-136.5 204t-204 136.5t-248.5 51t-248.5 -51t-204 -136.5t-136.5 -204t-51 -248.5t51 -248.5t136.5 -204t204 -136.5t248.5 -51t248.5 51t204 136.5t136.5 204t51 248.5zM1536 640 -q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" /> - <glyph glyph-name="ellipsis_horizontal" unicode="&#xf141;" horiz-adv-x="1408" -d="M384 800v-192q0 -40 -28 -68t-68 -28h-192q-40 0 -68 28t-28 68v192q0 40 28 68t68 28h192q40 0 68 -28t28 -68zM896 800v-192q0 -40 -28 -68t-68 -28h-192q-40 0 -68 28t-28 68v192q0 40 28 68t68 28h192q40 0 68 -28t28 -68zM1408 800v-192q0 -40 -28 -68t-68 -28h-192 -q-40 0 -68 28t-28 68v192q0 40 28 68t68 28h192q40 0 68 -28t28 -68z" /> - <glyph glyph-name="ellipsis_vertical" unicode="&#xf142;" horiz-adv-x="384" -d="M384 288v-192q0 -40 -28 -68t-68 -28h-192q-40 0 -68 28t-28 68v192q0 40 28 68t68 28h192q40 0 68 -28t28 -68zM384 800v-192q0 -40 -28 -68t-68 -28h-192q-40 0 -68 28t-28 68v192q0 40 28 68t68 28h192q40 0 68 -28t28 -68zM384 1312v-192q0 -40 -28 -68t-68 -28h-192 -q-40 0 -68 28t-28 68v192q0 40 28 68t68 28h192q40 0 68 -28t28 -68z" /> - <glyph glyph-name="_303" unicode="&#xf143;" -d="M512 256q0 53 -37.5 90.5t-90.5 37.5t-90.5 -37.5t-37.5 -90.5t37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5zM863 162q-13 233 -176.5 396.5t-396.5 176.5q-14 1 -24 -9t-10 -23v-128q0 -13 8.5 -22t21.5 -10q154 -11 264 -121t121 -264q1 -13 10 -21.5t22 -8.5h128 -q13 0 23 10t9 24zM1247 161q-5 154 -56 297.5t-139.5 260t-205 205t-260 139.5t-297.5 56q-14 1 -23 -9q-10 -10 -10 -23v-128q0 -13 9 -22t22 -10q204 -7 378 -111.5t278.5 -278.5t111.5 -378q1 -13 10 -22t22 -9h128q13 0 23 10q11 9 9 23zM1536 1120v-960 -q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" /> - <glyph glyph-name="play_sign" unicode="&#xf144;" -d="M768 1408q209 0 385.5 -103t279.5 -279.5t103 -385.5t-103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103zM1152 585q32 18 32 55t-32 55l-544 320q-31 19 -64 1q-32 -19 -32 -56v-640q0 -37 32 -56 -q16 -8 32 -8q17 0 32 9z" /> - <glyph glyph-name="ticket" unicode="&#xf145;" horiz-adv-x="1792" -d="M1024 1084l316 -316l-572 -572l-316 316zM813 105l618 618q19 19 19 45t-19 45l-362 362q-18 18 -45 18t-45 -18l-618 -618q-19 -19 -19 -45t19 -45l362 -362q18 -18 45 -18t45 18zM1702 742l-907 -908q-37 -37 -90.5 -37t-90.5 37l-126 126q56 56 56 136t-56 136 -t-136 56t-136 -56l-125 126q-37 37 -37 90.5t37 90.5l907 906q37 37 90.5 37t90.5 -37l125 -125q-56 -56 -56 -136t56 -136t136 -56t136 56l126 -125q37 -37 37 -90.5t-37 -90.5z" /> - <glyph glyph-name="minus_sign_alt" unicode="&#xf146;" -d="M1280 576v128q0 26 -19 45t-45 19h-896q-26 0 -45 -19t-19 -45v-128q0 -26 19 -45t45 -19h896q26 0 45 19t19 45zM1536 1120v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5 -t84.5 -203.5z" /> - <glyph glyph-name="check_minus" unicode="&#xf147;" horiz-adv-x="1408" -d="M1152 736v-64q0 -14 -9 -23t-23 -9h-832q-14 0 -23 9t-9 23v64q0 14 9 23t23 9h832q14 0 23 -9t9 -23zM1280 288v832q0 66 -47 113t-113 47h-832q-66 0 -113 -47t-47 -113v-832q0 -66 47 -113t113 -47h832q66 0 113 47t47 113zM1408 1120v-832q0 -119 -84.5 -203.5 -t-203.5 -84.5h-832q-119 0 -203.5 84.5t-84.5 203.5v832q0 119 84.5 203.5t203.5 84.5h832q119 0 203.5 -84.5t84.5 -203.5z" /> - <glyph glyph-name="level_up" unicode="&#xf148;" horiz-adv-x="1024" -d="M1018 933q-18 -37 -58 -37h-192v-864q0 -14 -9 -23t-23 -9h-704q-21 0 -29 18q-8 20 4 35l160 192q9 11 25 11h320v640h-192q-40 0 -58 37q-17 37 9 68l320 384q18 22 49 22t49 -22l320 -384q27 -32 9 -68z" /> - <glyph glyph-name="level_down" unicode="&#xf149;" horiz-adv-x="1024" -d="M32 1280h704q13 0 22.5 -9.5t9.5 -23.5v-863h192q40 0 58 -37t-9 -69l-320 -384q-18 -22 -49 -22t-49 22l-320 384q-26 31 -9 69q18 37 58 37h192v640h-320q-14 0 -25 11l-160 192q-13 14 -4 34q9 19 29 19z" /> - <glyph glyph-name="check_sign" unicode="&#xf14a;" -d="M685 237l614 614q19 19 19 45t-19 45l-102 102q-19 19 -45 19t-45 -19l-467 -467l-211 211q-19 19 -45 19t-45 -19l-102 -102q-19 -19 -19 -45t19 -45l358 -358q19 -19 45 -19t45 19zM1536 1120v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5 -t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" /> - <glyph glyph-name="edit_sign" unicode="&#xf14b;" -d="M404 428l152 -152l-52 -52h-56v96h-96v56zM818 818q14 -13 -3 -30l-291 -291q-17 -17 -30 -3q-14 13 3 30l291 291q17 17 30 3zM544 128l544 544l-288 288l-544 -544v-288h288zM1152 736l92 92q28 28 28 68t-28 68l-152 152q-28 28 -68 28t-68 -28l-92 -92zM1536 1120 -v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" /> - <glyph glyph-name="_312" unicode="&#xf14c;" -d="M1280 608v480q0 26 -19 45t-45 19h-480q-42 0 -59 -39q-17 -41 14 -70l144 -144l-534 -534q-19 -19 -19 -45t19 -45l102 -102q19 -19 45 -19t45 19l534 534l144 -144q18 -19 45 -19q12 0 25 5q39 17 39 59zM1536 1120v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960 -q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" /> - <glyph glyph-name="share_sign" unicode="&#xf14d;" -d="M1005 435l352 352q19 19 19 45t-19 45l-352 352q-30 31 -69 14q-40 -17 -40 -59v-160q-119 0 -216 -19.5t-162.5 -51t-114 -79t-76.5 -95.5t-44.5 -109t-21.5 -111.5t-5 -110.5q0 -181 167 -404q11 -12 25 -12q7 0 13 3q22 9 19 33q-44 354 62 473q46 52 130 75.5 -t224 23.5v-160q0 -42 40 -59q12 -5 24 -5q26 0 45 19zM1536 1120v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" /> - <glyph glyph-name="compass" unicode="&#xf14e;" -d="M640 448l256 128l-256 128v-256zM1024 1039v-542l-512 -256v542zM1312 640q0 148 -73 273t-198 198t-273 73t-273 -73t-198 -198t-73 -273t73 -273t198 -198t273 -73t273 73t198 198t73 273zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103 -t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" /> - <glyph glyph-name="collapse" unicode="&#xf150;" -d="M1145 861q18 -35 -5 -66l-320 -448q-19 -27 -52 -27t-52 27l-320 448q-23 31 -5 66q17 35 57 35h640q40 0 57 -35zM1280 160v960q0 13 -9.5 22.5t-22.5 9.5h-960q-13 0 -22.5 -9.5t-9.5 -22.5v-960q0 -13 9.5 -22.5t22.5 -9.5h960q13 0 22.5 9.5t9.5 22.5zM1536 1120 -v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" /> - <glyph glyph-name="collapse_top" unicode="&#xf151;" -d="M1145 419q-17 -35 -57 -35h-640q-40 0 -57 35q-18 35 5 66l320 448q19 27 52 27t52 -27l320 -448q23 -31 5 -66zM1280 160v960q0 13 -9.5 22.5t-22.5 9.5h-960q-13 0 -22.5 -9.5t-9.5 -22.5v-960q0 -13 9.5 -22.5t22.5 -9.5h960q13 0 22.5 9.5t9.5 22.5zM1536 1120v-960 -q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" /> - <glyph glyph-name="_317" unicode="&#xf152;" -d="M1088 640q0 -33 -27 -52l-448 -320q-31 -23 -66 -5q-35 17 -35 57v640q0 40 35 57q35 18 66 -5l448 -320q27 -19 27 -52zM1280 160v960q0 14 -9 23t-23 9h-960q-14 0 -23 -9t-9 -23v-960q0 -14 9 -23t23 -9h960q14 0 23 9t9 23zM1536 1120v-960q0 -119 -84.5 -203.5 -t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" /> - <glyph glyph-name="eur" unicode="&#xf153;" horiz-adv-x="1024" -d="M976 229l35 -159q3 -12 -3 -22.5t-17 -14.5l-5 -1q-4 -2 -10.5 -3.5t-16 -4.5t-21.5 -5.5t-25.5 -5t-30 -5t-33.5 -4.5t-36.5 -3t-38.5 -1q-234 0 -409 130.5t-238 351.5h-95q-13 0 -22.5 9.5t-9.5 22.5v113q0 13 9.5 22.5t22.5 9.5h66q-2 57 1 105h-67q-14 0 -23 9 -t-9 23v114q0 14 9 23t23 9h98q67 210 243.5 338t400.5 128q102 0 194 -23q11 -3 20 -15q6 -11 3 -24l-43 -159q-3 -13 -14 -19.5t-24 -2.5l-4 1q-4 1 -11.5 2.5l-17.5 3.5t-22.5 3.5t-26 3t-29 2.5t-29.5 1q-126 0 -226 -64t-150 -176h468q16 0 25 -12q10 -12 7 -26 -l-24 -114q-5 -26 -32 -26h-488q-3 -37 0 -105h459q15 0 25 -12q9 -12 6 -27l-24 -112q-2 -11 -11 -18.5t-20 -7.5h-387q48 -117 149.5 -185.5t228.5 -68.5q18 0 36 1.5t33.5 3.5t29.5 4.5t24.5 5t18.5 4.5l12 3l5 2q13 5 26 -2q12 -7 15 -21z" /> - <glyph glyph-name="gbp" unicode="&#xf154;" horiz-adv-x="1024" -d="M1020 399v-367q0 -14 -9 -23t-23 -9h-956q-14 0 -23 9t-9 23v150q0 13 9.5 22.5t22.5 9.5h97v383h-95q-14 0 -23 9.5t-9 22.5v131q0 14 9 23t23 9h95v223q0 171 123.5 282t314.5 111q185 0 335 -125q9 -8 10 -20.5t-7 -22.5l-103 -127q-9 -11 -22 -12q-13 -2 -23 7 -q-5 5 -26 19t-69 32t-93 18q-85 0 -137 -47t-52 -123v-215h305q13 0 22.5 -9t9.5 -23v-131q0 -13 -9.5 -22.5t-22.5 -9.5h-305v-379h414v181q0 13 9 22.5t23 9.5h162q14 0 23 -9.5t9 -22.5z" /> - <glyph glyph-name="usd" unicode="&#xf155;" horiz-adv-x="1024" -d="M978 351q0 -153 -99.5 -263.5t-258.5 -136.5v-175q0 -14 -9 -23t-23 -9h-135q-13 0 -22.5 9.5t-9.5 22.5v175q-66 9 -127.5 31t-101.5 44.5t-74 48t-46.5 37.5t-17.5 18q-17 21 -2 41l103 135q7 10 23 12q15 2 24 -9l2 -2q113 -99 243 -125q37 -8 74 -8q81 0 142.5 43 -t61.5 122q0 28 -15 53t-33.5 42t-58.5 37.5t-66 32t-80 32.5q-39 16 -61.5 25t-61.5 26.5t-62.5 31t-56.5 35.5t-53.5 42.5t-43.5 49t-35.5 58t-21 66.5t-8.5 78q0 138 98 242t255 134v180q0 13 9.5 22.5t22.5 9.5h135q14 0 23 -9t9 -23v-176q57 -6 110.5 -23t87 -33.5 -t63.5 -37.5t39 -29t15 -14q17 -18 5 -38l-81 -146q-8 -15 -23 -16q-14 -3 -27 7q-3 3 -14.5 12t-39 26.5t-58.5 32t-74.5 26t-85.5 11.5q-95 0 -155 -43t-60 -111q0 -26 8.5 -48t29.5 -41.5t39.5 -33t56 -31t60.5 -27t70 -27.5q53 -20 81 -31.5t76 -35t75.5 -42.5t62 -50 -t53 -63.5t31.5 -76.5t13 -94z" /> - <glyph glyph-name="inr" unicode="&#xf156;" horiz-adv-x="898" -d="M898 1066v-102q0 -14 -9 -23t-23 -9h-168q-23 -144 -129 -234t-276 -110q167 -178 459 -536q14 -16 4 -34q-8 -18 -29 -18h-195q-16 0 -25 12q-306 367 -498 571q-9 9 -9 22v127q0 13 9.5 22.5t22.5 9.5h112q132 0 212.5 43t102.5 125h-427q-14 0 -23 9t-9 23v102 -q0 14 9 23t23 9h413q-57 113 -268 113h-145q-13 0 -22.5 9.5t-9.5 22.5v133q0 14 9 23t23 9h832q14 0 23 -9t9 -23v-102q0 -14 -9 -23t-23 -9h-233q47 -61 64 -144h171q14 0 23 -9t9 -23z" /> - <glyph glyph-name="jpy" unicode="&#xf157;" horiz-adv-x="1027" -d="M603 0h-172q-13 0 -22.5 9t-9.5 23v330h-288q-13 0 -22.5 9t-9.5 23v103q0 13 9.5 22.5t22.5 9.5h288v85h-288q-13 0 -22.5 9t-9.5 23v104q0 13 9.5 22.5t22.5 9.5h214l-321 578q-8 16 0 32q10 16 28 16h194q19 0 29 -18l215 -425q19 -38 56 -125q10 24 30.5 68t27.5 61 -l191 420q8 19 29 19h191q17 0 27 -16q9 -14 1 -31l-313 -579h215q13 0 22.5 -9.5t9.5 -22.5v-104q0 -14 -9.5 -23t-22.5 -9h-290v-85h290q13 0 22.5 -9.5t9.5 -22.5v-103q0 -14 -9.5 -23t-22.5 -9h-290v-330q0 -13 -9.5 -22.5t-22.5 -9.5z" /> - <glyph glyph-name="rub" unicode="&#xf158;" horiz-adv-x="1280" -d="M1043 971q0 100 -65 162t-171 62h-320v-448h320q106 0 171 62t65 162zM1280 971q0 -193 -126.5 -315t-326.5 -122h-340v-118h505q14 0 23 -9t9 -23v-128q0 -14 -9 -23t-23 -9h-505v-192q0 -14 -9.5 -23t-22.5 -9h-167q-14 0 -23 9t-9 23v192h-224q-14 0 -23 9t-9 23v128 -q0 14 9 23t23 9h224v118h-224q-14 0 -23 9t-9 23v149q0 13 9 22.5t23 9.5h224v629q0 14 9 23t23 9h539q200 0 326.5 -122t126.5 -315z" /> - <glyph glyph-name="krw" unicode="&#xf159;" horiz-adv-x="1792" -d="M514 341l81 299h-159l75 -300q1 -1 1 -3t1 -3q0 1 0.5 3.5t0.5 3.5zM630 768l35 128h-292l32 -128h225zM822 768h139l-35 128h-70zM1271 340l78 300h-162l81 -299q0 -1 0.5 -3.5t1.5 -3.5q0 1 0.5 3t0.5 3zM1382 768l33 128h-297l34 -128h230zM1792 736v-64q0 -14 -9 -23 -t-23 -9h-213l-164 -616q-7 -24 -31 -24h-159q-24 0 -31 24l-166 616h-209l-167 -616q-7 -24 -31 -24h-159q-11 0 -19.5 7t-10.5 17l-160 616h-208q-14 0 -23 9t-9 23v64q0 14 9 23t23 9h175l-33 128h-142q-14 0 -23 9t-9 23v64q0 14 9 23t23 9h109l-89 344q-5 15 5 28 -q10 12 26 12h137q26 0 31 -24l90 -360h359l97 360q7 24 31 24h126q24 0 31 -24l98 -360h365l93 360q5 24 31 24h137q16 0 26 -12q10 -13 5 -28l-91 -344h111q14 0 23 -9t9 -23v-64q0 -14 -9 -23t-23 -9h-145l-34 -128h179q14 0 23 -9t9 -23z" /> - <glyph glyph-name="btc" unicode="&#xf15a;" horiz-adv-x="1280" -d="M1167 896q18 -182 -131 -258q117 -28 175 -103t45 -214q-7 -71 -32.5 -125t-64.5 -89t-97 -58.5t-121.5 -34.5t-145.5 -15v-255h-154v251q-80 0 -122 1v-252h-154v255q-18 0 -54 0.5t-55 0.5h-200l31 183h111q50 0 58 51v402h16q-6 1 -16 1v287q-13 68 -89 68h-111v164 -l212 -1q64 0 97 1v252h154v-247q82 2 122 2v245h154v-252q79 -7 140 -22.5t113 -45t82.5 -78t36.5 -114.5zM952 351q0 36 -15 64t-37 46t-57.5 30.5t-65.5 18.5t-74 9t-69 3t-64.5 -1t-47.5 -1v-338q8 0 37 -0.5t48 -0.5t53 1.5t58.5 4t57 8.5t55.5 14t47.5 21t39.5 30 -t24.5 40t9.5 51zM881 827q0 33 -12.5 58.5t-30.5 42t-48 28t-55 16.5t-61.5 8t-58 2.5t-54 -1t-39.5 -0.5v-307q5 0 34.5 -0.5t46.5 0t50 2t55 5.5t51.5 11t48.5 18.5t37 27t27 38.5t9 51z" /> - <glyph glyph-name="file" unicode="&#xf15b;" -d="M1024 1024v472q22 -14 36 -28l408 -408q14 -14 28 -36h-472zM896 992q0 -40 28 -68t68 -28h544v-1056q0 -40 -28 -68t-68 -28h-1344q-40 0 -68 28t-28 68v1600q0 40 28 68t68 28h800v-544z" /> - <glyph glyph-name="file_text" unicode="&#xf15c;" -d="M1468 1060q14 -14 28 -36h-472v472q22 -14 36 -28zM992 896h544v-1056q0 -40 -28 -68t-68 -28h-1344q-40 0 -68 28t-28 68v1600q0 40 28 68t68 28h800v-544q0 -40 28 -68t68 -28zM1152 160v64q0 14 -9 23t-23 9h-704q-14 0 -23 -9t-9 -23v-64q0 -14 9 -23t23 -9h704 -q14 0 23 9t9 23zM1152 416v64q0 14 -9 23t-23 9h-704q-14 0 -23 -9t-9 -23v-64q0 -14 9 -23t23 -9h704q14 0 23 9t9 23zM1152 672v64q0 14 -9 23t-23 9h-704q-14 0 -23 -9t-9 -23v-64q0 -14 9 -23t23 -9h704q14 0 23 9t9 23z" /> - <glyph glyph-name="sort_by_alphabet" unicode="&#xf15d;" horiz-adv-x="1664" -d="M1191 1128h177l-72 218l-12 47q-2 16 -2 20h-4l-3 -20q0 -1 -3.5 -18t-7.5 -29zM736 96q0 -12 -10 -24l-319 -319q-10 -9 -23 -9q-12 0 -23 9l-320 320q-15 16 -7 35q8 20 30 20h192v1376q0 14 9 23t23 9h192q14 0 23 -9t9 -23v-1376h192q14 0 23 -9t9 -23zM1572 -23 -v-233h-584v90l369 529q12 18 21 27l11 9v3q-2 0 -6.5 -0.5t-7.5 -0.5q-12 -3 -30 -3h-232v-115h-120v229h567v-89l-369 -530q-6 -8 -21 -26l-11 -11v-2l14 2q9 2 30 2h248v119h121zM1661 874v-106h-288v106h75l-47 144h-243l-47 -144h75v-106h-287v106h70l230 662h162 -l230 -662h70z" /> - <glyph glyph-name="_329" unicode="&#xf15e;" horiz-adv-x="1664" -d="M1191 104h177l-72 218l-12 47q-2 16 -2 20h-4l-3 -20q0 -1 -3.5 -18t-7.5 -29zM736 96q0 -12 -10 -24l-319 -319q-10 -9 -23 -9q-12 0 -23 9l-320 320q-15 16 -7 35q8 20 30 20h192v1376q0 14 9 23t23 9h192q14 0 23 -9t9 -23v-1376h192q14 0 23 -9t9 -23zM1661 -150 -v-106h-288v106h75l-47 144h-243l-47 -144h75v-106h-287v106h70l230 662h162l230 -662h70zM1572 1001v-233h-584v90l369 529q12 18 21 27l11 9v3q-2 0 -6.5 -0.5t-7.5 -0.5q-12 -3 -30 -3h-232v-115h-120v229h567v-89l-369 -530q-6 -8 -21 -26l-11 -10v-3l14 3q9 1 30 1h248 -v119h121z" /> - <glyph glyph-name="sort_by_attributes" unicode="&#xf160;" horiz-adv-x="1792" -d="M736 96q0 -12 -10 -24l-319 -319q-10 -9 -23 -9q-12 0 -23 9l-320 320q-15 16 -7 35q8 20 30 20h192v1376q0 14 9 23t23 9h192q14 0 23 -9t9 -23v-1376h192q14 0 23 -9t9 -23zM1792 -32v-192q0 -14 -9 -23t-23 -9h-832q-14 0 -23 9t-9 23v192q0 14 9 23t23 9h832 -q14 0 23 -9t9 -23zM1600 480v-192q0 -14 -9 -23t-23 -9h-640q-14 0 -23 9t-9 23v192q0 14 9 23t23 9h640q14 0 23 -9t9 -23zM1408 992v-192q0 -14 -9 -23t-23 -9h-448q-14 0 -23 9t-9 23v192q0 14 9 23t23 9h448q14 0 23 -9t9 -23zM1216 1504v-192q0 -14 -9 -23t-23 -9h-256 -q-14 0 -23 9t-9 23v192q0 14 9 23t23 9h256q14 0 23 -9t9 -23z" /> - <glyph glyph-name="sort_by_attributes_alt" unicode="&#xf161;" horiz-adv-x="1792" -d="M1216 -32v-192q0 -14 -9 -23t-23 -9h-256q-14 0 -23 9t-9 23v192q0 14 9 23t23 9h256q14 0 23 -9t9 -23zM736 96q0 -12 -10 -24l-319 -319q-10 -9 -23 -9q-12 0 -23 9l-320 320q-15 16 -7 35q8 20 30 20h192v1376q0 14 9 23t23 9h192q14 0 23 -9t9 -23v-1376h192 -q14 0 23 -9t9 -23zM1408 480v-192q0 -14 -9 -23t-23 -9h-448q-14 0 -23 9t-9 23v192q0 14 9 23t23 9h448q14 0 23 -9t9 -23zM1600 992v-192q0 -14 -9 -23t-23 -9h-640q-14 0 -23 9t-9 23v192q0 14 9 23t23 9h640q14 0 23 -9t9 -23zM1792 1504v-192q0 -14 -9 -23t-23 -9h-832 -q-14 0 -23 9t-9 23v192q0 14 9 23t23 9h832q14 0 23 -9t9 -23z" /> - <glyph glyph-name="sort_by_order" unicode="&#xf162;" -d="M1346 223q0 63 -44 116t-103 53q-52 0 -83 -37t-31 -94t36.5 -95t104.5 -38q50 0 85 27t35 68zM736 96q0 -12 -10 -24l-319 -319q-10 -9 -23 -9q-12 0 -23 9l-320 320q-15 16 -7 35q8 20 30 20h192v1376q0 14 9 23t23 9h192q14 0 23 -9t9 -23v-1376h192q14 0 23 -9t9 -23 -zM1486 165q0 -62 -13 -121.5t-41 -114t-68 -95.5t-98.5 -65.5t-127.5 -24.5q-62 0 -108 16q-24 8 -42 15l39 113q15 -7 31 -11q37 -13 75 -13q84 0 134.5 58.5t66.5 145.5h-2q-21 -23 -61.5 -37t-84.5 -14q-106 0 -173 71.5t-67 172.5q0 105 72 178t181 73q123 0 205 -94.5 -t82 -252.5zM1456 882v-114h-469v114h167v432q0 7 0.5 19t0.5 17v16h-2l-7 -12q-8 -13 -26 -31l-62 -58l-82 86l192 185h123v-654h165z" /> - <glyph glyph-name="sort_by_order_alt" unicode="&#xf163;" -d="M1346 1247q0 63 -44 116t-103 53q-52 0 -83 -37t-31 -94t36.5 -95t104.5 -38q50 0 85 27t35 68zM736 96q0 -12 -10 -24l-319 -319q-10 -9 -23 -9q-12 0 -23 9l-320 320q-15 16 -7 35q8 20 30 20h192v1376q0 14 9 23t23 9h192q14 0 23 -9t9 -23v-1376h192q14 0 23 -9 -t9 -23zM1456 -142v-114h-469v114h167v432q0 7 0.5 19t0.5 17v16h-2l-7 -12q-8 -13 -26 -31l-62 -58l-82 86l192 185h123v-654h165zM1486 1189q0 -62 -13 -121.5t-41 -114t-68 -95.5t-98.5 -65.5t-127.5 -24.5q-62 0 -108 16q-24 8 -42 15l39 113q15 -7 31 -11q37 -13 75 -13 -q84 0 134.5 58.5t66.5 145.5h-2q-21 -23 -61.5 -37t-84.5 -14q-106 0 -173 71.5t-67 172.5q0 105 72 178t181 73q123 0 205 -94.5t82 -252.5z" /> - <glyph glyph-name="_334" unicode="&#xf164;" horiz-adv-x="1664" -d="M256 192q0 26 -19 45t-45 19q-27 0 -45.5 -19t-18.5 -45q0 -27 18.5 -45.5t45.5 -18.5q26 0 45 18.5t19 45.5zM416 704v-640q0 -26 -19 -45t-45 -19h-288q-26 0 -45 19t-19 45v640q0 26 19 45t45 19h288q26 0 45 -19t19 -45zM1600 704q0 -86 -55 -149q15 -44 15 -76 -q3 -76 -43 -137q17 -56 0 -117q-15 -57 -54 -94q9 -112 -49 -181q-64 -76 -197 -78h-36h-76h-17q-66 0 -144 15.5t-121.5 29t-120.5 39.5q-123 43 -158 44q-26 1 -45 19.5t-19 44.5v641q0 25 18 43.5t43 20.5q24 2 76 59t101 121q68 87 101 120q18 18 31 48t17.5 48.5 -t13.5 60.5q7 39 12.5 61t19.5 52t34 50q19 19 45 19q46 0 82.5 -10.5t60 -26t40 -40.5t24 -45t12 -50t5 -45t0.5 -39q0 -38 -9.5 -76t-19 -60t-27.5 -56q-3 -6 -10 -18t-11 -22t-8 -24h277q78 0 135 -57t57 -135z" /> - <glyph glyph-name="_335" unicode="&#xf165;" horiz-adv-x="1664" -d="M256 960q0 -26 -19 -45t-45 -19q-27 0 -45.5 19t-18.5 45q0 27 18.5 45.5t45.5 18.5q26 0 45 -18.5t19 -45.5zM416 448v640q0 26 -19 45t-45 19h-288q-26 0 -45 -19t-19 -45v-640q0 -26 19 -45t45 -19h288q26 0 45 19t19 45zM1545 597q55 -61 55 -149q-1 -78 -57.5 -135 -t-134.5 -57h-277q4 -14 8 -24t11 -22t10 -18q18 -37 27 -57t19 -58.5t10 -76.5q0 -24 -0.5 -39t-5 -45t-12 -50t-24 -45t-40 -40.5t-60 -26t-82.5 -10.5q-26 0 -45 19q-20 20 -34 50t-19.5 52t-12.5 61q-9 42 -13.5 60.5t-17.5 48.5t-31 48q-33 33 -101 120q-49 64 -101 121 -t-76 59q-25 2 -43 20.5t-18 43.5v641q0 26 19 44.5t45 19.5q35 1 158 44q77 26 120.5 39.5t121.5 29t144 15.5h17h76h36q133 -2 197 -78q58 -69 49 -181q39 -37 54 -94q17 -61 0 -117q46 -61 43 -137q0 -32 -15 -76z" /> - <glyph glyph-name="youtube_sign" unicode="&#xf166;" -d="M919 233v157q0 50 -29 50q-17 0 -33 -16v-224q16 -16 33 -16q29 0 29 49zM1103 355h66v34q0 51 -33 51t-33 -51v-34zM532 621v-70h-80v-423h-74v423h-78v70h232zM733 495v-367h-67v40q-39 -45 -76 -45q-33 0 -42 28q-6 17 -6 54v290h66v-270q0 -24 1 -26q1 -15 15 -15 -q20 0 42 31v280h67zM985 384v-146q0 -52 -7 -73q-12 -42 -53 -42q-35 0 -68 41v-36h-67v493h67v-161q32 40 68 40q41 0 53 -42q7 -21 7 -74zM1236 255v-9q0 -29 -2 -43q-3 -22 -15 -40q-27 -40 -80 -40q-52 0 -81 38q-21 27 -21 86v129q0 59 20 86q29 38 80 38t78 -38 -q21 -29 21 -86v-76h-133v-65q0 -51 34 -51q24 0 30 26q0 1 0.5 7t0.5 16.5v21.5h68zM785 1079v-156q0 -51 -32 -51t-32 51v156q0 52 32 52t32 -52zM1318 366q0 177 -19 260q-10 44 -43 73.5t-76 34.5q-136 15 -412 15q-275 0 -411 -15q-44 -5 -76.5 -34.5t-42.5 -73.5 -q-20 -87 -20 -260q0 -176 20 -260q10 -43 42.5 -73t75.5 -35q137 -15 412 -15t412 15q43 5 75.5 35t42.5 73q20 84 20 260zM563 1017l90 296h-75l-51 -195l-53 195h-78q7 -23 23 -69l24 -69q35 -103 46 -158v-201h74v201zM852 936v130q0 58 -21 87q-29 38 -78 38 -q-51 0 -78 -38q-21 -29 -21 -87v-130q0 -58 21 -87q27 -38 78 -38q49 0 78 38q21 27 21 87zM1033 816h67v370h-67v-283q-22 -31 -42 -31q-15 0 -16 16q-1 2 -1 26v272h-67v-293q0 -37 6 -55q11 -27 43 -27q36 0 77 45v-40zM1536 1120v-960q0 -119 -84.5 -203.5t-203.5 -84.5 -h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" /> - <glyph glyph-name="youtube" unicode="&#xf167;" -d="M971 292v-211q0 -67 -39 -67q-23 0 -45 22v301q22 22 45 22q39 0 39 -67zM1309 291v-46h-90v46q0 68 45 68t45 -68zM343 509h107v94h-312v-94h105v-569h100v569zM631 -60h89v494h-89v-378q-30 -42 -57 -42q-18 0 -21 21q-1 3 -1 35v364h-89v-391q0 -49 8 -73 -q12 -37 58 -37q48 0 102 61v-54zM1060 88v197q0 73 -9 99q-17 56 -71 56q-50 0 -93 -54v217h-89v-663h89v48q45 -55 93 -55q54 0 71 55q9 27 9 100zM1398 98v13h-91q0 -51 -2 -61q-7 -36 -40 -36q-46 0 -46 69v87h179v103q0 79 -27 116q-39 51 -106 51q-68 0 -107 -51 -q-28 -37 -28 -116v-173q0 -79 29 -116q39 -51 108 -51q72 0 108 53q18 27 21 54q2 9 2 58zM790 1011v210q0 69 -43 69t-43 -69v-210q0 -70 43 -70t43 70zM1509 260q0 -234 -26 -350q-14 -59 -58 -99t-102 -46q-184 -21 -555 -21t-555 21q-58 6 -102.5 46t-57.5 99 -q-26 112 -26 350q0 234 26 350q14 59 58 99t103 47q183 20 554 20t555 -20q58 -7 102.5 -47t57.5 -99q26 -112 26 -350zM511 1536h102l-121 -399v-271h-100v271q-14 74 -61 212q-37 103 -65 187h106l71 -263zM881 1203v-175q0 -81 -28 -118q-38 -51 -106 -51q-67 0 -105 51 -q-28 38 -28 118v175q0 80 28 117q38 51 105 51q68 0 106 -51q28 -37 28 -117zM1216 1365v-499h-91v55q-53 -62 -103 -62q-46 0 -59 37q-8 24 -8 75v394h91v-367q0 -33 1 -35q3 -22 21 -22q27 0 57 43v381h91z" /> - <glyph glyph-name="xing" unicode="&#xf168;" horiz-adv-x="1408" -d="M597 869q-10 -18 -257 -456q-27 -46 -65 -46h-239q-21 0 -31 17t0 36l253 448q1 0 0 1l-161 279q-12 22 -1 37q9 15 32 15h239q40 0 66 -45zM1403 1511q11 -16 0 -37l-528 -934v-1l336 -615q11 -20 1 -37q-10 -15 -32 -15h-239q-42 0 -66 45l-339 622q18 32 531 942 -q25 45 64 45h241q22 0 31 -15z" /> - <glyph glyph-name="xing_sign" unicode="&#xf169;" -d="M685 771q0 1 -126 222q-21 34 -52 34h-184q-18 0 -26 -11q-7 -12 1 -29l125 -216v-1l-196 -346q-9 -14 0 -28q8 -13 24 -13h185q31 0 50 36zM1309 1268q-7 12 -24 12h-187q-30 0 -49 -35l-411 -729q1 -2 262 -481q20 -35 52 -35h184q18 0 25 12q8 13 -1 28l-260 476v1 -l409 723q8 16 0 28zM1536 1120v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" /> - <glyph glyph-name="youtube_play" unicode="&#xf16a;" horiz-adv-x="1792" -d="M711 408l484 250l-484 253v-503zM896 1270q168 0 324.5 -4.5t229.5 -9.5l73 -4q1 0 17 -1.5t23 -3t23.5 -4.5t28.5 -8t28 -13t31 -19.5t29 -26.5q6 -6 15.5 -18.5t29 -58.5t26.5 -101q8 -64 12.5 -136.5t5.5 -113.5v-40v-136q1 -145 -18 -290q-7 -55 -25 -99.5t-32 -61.5 -l-14 -17q-14 -15 -29 -26.5t-31 -19t-28 -12.5t-28.5 -8t-24 -4.5t-23 -3t-16.5 -1.5q-251 -19 -627 -19q-207 2 -359.5 6.5t-200.5 7.5l-49 4l-36 4q-36 5 -54.5 10t-51 21t-56.5 41q-6 6 -15.5 18.5t-29 58.5t-26.5 101q-8 64 -12.5 136.5t-5.5 113.5v40v136 -q-1 145 18 290q7 55 25 99.5t32 61.5l14 17q14 15 29 26.5t31 19.5t28 13t28.5 8t23.5 4.5t23 3t17 1.5q251 18 627 18z" /> - <glyph glyph-name="dropbox" unicode="&#xf16b;" horiz-adv-x="1792" -d="M402 829l494 -305l-342 -285l-490 319zM1388 274v-108l-490 -293v-1l-1 1l-1 -1v1l-489 293v108l147 -96l342 284v2l1 -1l1 1v-2l343 -284zM554 1418l342 -285l-494 -304l-338 270zM1390 829l338 -271l-489 -319l-343 285zM1239 1418l489 -319l-338 -270l-494 304z" /> - <glyph glyph-name="stackexchange" unicode="&#xf16c;" -d="M1289 -96h-1118v480h-160v-640h1438v640h-160v-480zM347 428l33 157l783 -165l-33 -156zM450 802l67 146l725 -339l-67 -145zM651 1158l102 123l614 -513l-102 -123zM1048 1536l477 -641l-128 -96l-477 641zM330 65v159h800v-159h-800z" /> - <glyph glyph-name="instagram" unicode="&#xf16d;" -d="M1024 640q0 106 -75 181t-181 75t-181 -75t-75 -181t75 -181t181 -75t181 75t75 181zM1162 640q0 -164 -115 -279t-279 -115t-279 115t-115 279t115 279t279 115t279 -115t115 -279zM1270 1050q0 -38 -27 -65t-65 -27t-65 27t-27 65t27 65t65 27t65 -27t27 -65zM768 1270 -q-7 0 -76.5 0.5t-105.5 0t-96.5 -3t-103 -10t-71.5 -18.5q-50 -20 -88 -58t-58 -88q-11 -29 -18.5 -71.5t-10 -103t-3 -96.5t0 -105.5t0.5 -76.5t-0.5 -76.5t0 -105.5t3 -96.5t10 -103t18.5 -71.5q20 -50 58 -88t88 -58q29 -11 71.5 -18.5t103 -10t96.5 -3t105.5 0t76.5 0.5 -t76.5 -0.5t105.5 0t96.5 3t103 10t71.5 18.5q50 20 88 58t58 88q11 29 18.5 71.5t10 103t3 96.5t0 105.5t-0.5 76.5t0.5 76.5t0 105.5t-3 96.5t-10 103t-18.5 71.5q-20 50 -58 88t-88 58q-29 11 -71.5 18.5t-103 10t-96.5 3t-105.5 0t-76.5 -0.5zM1536 640q0 -229 -5 -317 -q-10 -208 -124 -322t-322 -124q-88 -5 -317 -5t-317 5q-208 10 -322 124t-124 322q-5 88 -5 317t5 317q10 208 124 322t322 124q88 5 317 5t317 -5q208 -10 322 -124t124 -322q5 -88 5 -317z" /> - <glyph glyph-name="flickr" unicode="&#xf16e;" -d="M1248 1408q119 0 203.5 -84.5t84.5 -203.5v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960zM698 640q0 88 -62 150t-150 62t-150 -62t-62 -150t62 -150t150 -62t150 62t62 150zM1262 640q0 88 -62 150 -t-150 62t-150 -62t-62 -150t62 -150t150 -62t150 62t62 150z" /> - <glyph glyph-name="adn" unicode="&#xf170;" -d="M768 914l201 -306h-402zM1133 384h94l-459 691l-459 -691h94l104 160h522zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" /> - <glyph glyph-name="f171" unicode="&#xf171;" horiz-adv-x="1408" -d="M815 677q8 -63 -50.5 -101t-111.5 -6q-39 17 -53.5 58t-0.5 82t52 58q36 18 72.5 12t64 -35.5t27.5 -67.5zM926 698q-14 107 -113 164t-197 13q-63 -28 -100.5 -88.5t-34.5 -129.5q4 -91 77.5 -155t165.5 -56q91 8 152 84t50 168zM1165 1240q-20 27 -56 44.5t-58 22 -t-71 12.5q-291 47 -566 -2q-43 -7 -66 -12t-55 -22t-50 -43q30 -28 76 -45.5t73.5 -22t87.5 -11.5q228 -29 448 -1q63 8 89.5 12t72.5 21.5t75 46.5zM1222 205q-8 -26 -15.5 -76.5t-14 -84t-28.5 -70t-58 -56.5q-86 -48 -189.5 -71.5t-202 -22t-201.5 18.5q-46 8 -81.5 18 -t-76.5 27t-73 43.5t-52 61.5q-25 96 -57 292l6 16l18 9q223 -148 506.5 -148t507.5 148q21 -6 24 -23t-5 -45t-8 -37zM1403 1166q-26 -167 -111 -655q-5 -30 -27 -56t-43.5 -40t-54.5 -31q-252 -126 -610 -88q-248 27 -394 139q-15 12 -25.5 26.5t-17 35t-9 34t-6 39.5 -t-5.5 35q-9 50 -26.5 150t-28 161.5t-23.5 147.5t-22 158q3 26 17.5 48.5t31.5 37.5t45 30t46 22.5t48 18.5q125 46 313 64q379 37 676 -50q155 -46 215 -122q16 -20 16.5 -51t-5.5 -54z" /> - <glyph glyph-name="bitbucket_sign" unicode="&#xf172;" -d="M848 666q0 43 -41 66t-77 1q-43 -20 -42.5 -72.5t43.5 -70.5q39 -23 81 4t36 72zM928 682q8 -66 -36 -121t-110 -61t-119 40t-56 113q-2 49 25.5 93t72.5 64q70 31 141.5 -10t81.5 -118zM1100 1073q-20 -21 -53.5 -34t-53 -16t-63.5 -8q-155 -20 -324 0q-44 6 -63 9.5 -t-52.5 16t-54.5 32.5q13 19 36 31t40 15.5t47 8.5q198 35 408 1q33 -5 51 -8.5t43 -16t39 -31.5zM1142 327q0 7 5.5 26.5t3 32t-17.5 16.5q-161 -106 -365 -106t-366 106l-12 -6l-5 -12q26 -154 41 -210q47 -81 204 -108q249 -46 428 53q34 19 49 51.5t22.5 85.5t12.5 71z -M1272 1020q9 53 -8 75q-43 55 -155 88q-216 63 -487 36q-132 -12 -226 -46q-38 -15 -59.5 -25t-47 -34t-29.5 -54q8 -68 19 -138t29 -171t24 -137q1 -5 5 -31t7 -36t12 -27t22 -28q105 -80 284 -100q259 -28 440 63q24 13 39.5 23t31 29t19.5 40q48 267 80 473zM1536 1120 -v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" /> - <glyph glyph-name="tumblr" unicode="&#xf173;" horiz-adv-x="1024" -d="M944 207l80 -237q-23 -35 -111 -66t-177 -32q-104 -2 -190.5 26t-142.5 74t-95 106t-55.5 120t-16.5 118v544h-168v215q72 26 129 69.5t91 90t58 102t34 99t15 88.5q1 5 4.5 8.5t7.5 3.5h244v-424h333v-252h-334v-518q0 -30 6.5 -56t22.5 -52.5t49.5 -41.5t81.5 -14 -q78 2 134 29z" /> - <glyph glyph-name="tumblr_sign" unicode="&#xf174;" -d="M1136 75l-62 183q-44 -22 -103 -22q-36 -1 -62 10.5t-38.5 31.5t-17.5 40.5t-5 43.5v398h257v194h-256v326h-188q-8 0 -9 -10q-5 -44 -17.5 -87t-39 -95t-77 -95t-118.5 -68v-165h130v-418q0 -57 21.5 -115t65 -111t121 -85.5t176.5 -30.5q69 1 136.5 25t85.5 50z -M1536 1120v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" /> - <glyph glyph-name="long_arrow_down" unicode="&#xf175;" horiz-adv-x="768" -d="M765 237q8 -19 -5 -35l-350 -384q-10 -10 -23 -10q-14 0 -24 10l-355 384q-13 16 -5 35q9 19 29 19h224v1248q0 14 9 23t23 9h192q14 0 23 -9t9 -23v-1248h224q21 0 29 -19z" /> - <glyph glyph-name="long_arrow_up" unicode="&#xf176;" horiz-adv-x="768" -d="M765 1043q-9 -19 -29 -19h-224v-1248q0 -14 -9 -23t-23 -9h-192q-14 0 -23 9t-9 23v1248h-224q-21 0 -29 19t5 35l350 384q10 10 23 10q14 0 24 -10l355 -384q13 -16 5 -35z" /> - <glyph glyph-name="long_arrow_left" unicode="&#xf177;" horiz-adv-x="1792" -d="M1792 736v-192q0 -14 -9 -23t-23 -9h-1248v-224q0 -21 -19 -29t-35 5l-384 350q-10 10 -10 23q0 14 10 24l384 354q16 14 35 6q19 -9 19 -29v-224h1248q14 0 23 -9t9 -23z" /> - <glyph glyph-name="long_arrow_right" unicode="&#xf178;" horiz-adv-x="1792" -d="M1728 643q0 -14 -10 -24l-384 -354q-16 -14 -35 -6q-19 9 -19 29v224h-1248q-14 0 -23 9t-9 23v192q0 14 9 23t23 9h1248v224q0 21 19 29t35 -5l384 -350q10 -10 10 -23z" /> - <glyph glyph-name="apple" unicode="&#xf179;" horiz-adv-x="1408" -d="M1393 321q-39 -125 -123 -250q-129 -196 -257 -196q-49 0 -140 32q-86 32 -151 32q-61 0 -142 -33q-81 -34 -132 -34q-152 0 -301 259q-147 261 -147 503q0 228 113 374q113 144 284 144q72 0 177 -30q104 -30 138 -30q45 0 143 34q102 34 173 34q119 0 213 -65 -q52 -36 104 -100q-79 -67 -114 -118q-65 -94 -65 -207q0 -124 69 -223t158 -126zM1017 1494q0 -61 -29 -136q-30 -75 -93 -138q-54 -54 -108 -72q-37 -11 -104 -17q3 149 78 257q74 107 250 148q1 -3 2.5 -11t2.5 -11q0 -4 0.5 -10t0.5 -10z" /> - <glyph glyph-name="windows" unicode="&#xf17a;" horiz-adv-x="1664" -d="M682 530v-651l-682 94v557h682zM682 1273v-659h-682v565zM1664 530v-786l-907 125v661h907zM1664 1408v-794h-907v669z" /> - <glyph glyph-name="android" unicode="&#xf17b;" horiz-adv-x="1408" -d="M493 1053q16 0 27.5 11.5t11.5 27.5t-11.5 27.5t-27.5 11.5t-27 -11.5t-11 -27.5t11 -27.5t27 -11.5zM915 1053q16 0 27 11.5t11 27.5t-11 27.5t-27 11.5t-27.5 -11.5t-11.5 -27.5t11.5 -27.5t27.5 -11.5zM103 869q42 0 72 -30t30 -72v-430q0 -43 -29.5 -73t-72.5 -30 -t-73 30t-30 73v430q0 42 30 72t73 30zM1163 850v-666q0 -46 -32 -78t-77 -32h-75v-227q0 -43 -30 -73t-73 -30t-73 30t-30 73v227h-138v-227q0 -43 -30 -73t-73 -30q-42 0 -72 30t-30 73l-1 227h-74q-46 0 -78 32t-32 78v666h918zM931 1255q107 -55 171 -153.5t64 -215.5 -h-925q0 117 64 215.5t172 153.5l-71 131q-7 13 5 20q13 6 20 -6l72 -132q95 42 201 42t201 -42l72 132q7 12 20 6q12 -7 5 -20zM1408 767v-430q0 -43 -30 -73t-73 -30q-42 0 -72 30t-30 73v430q0 43 30 72.5t72 29.5q43 0 73 -29.5t30 -72.5z" /> - <glyph glyph-name="linux" unicode="&#xf17c;" -d="M663 1125q-11 -1 -15.5 -10.5t-8.5 -9.5q-5 -1 -5 5q0 12 19 15h10zM750 1111q-4 -1 -11.5 6.5t-17.5 4.5q24 11 32 -2q3 -6 -3 -9zM399 684q-4 1 -6 -3t-4.5 -12.5t-5.5 -13.5t-10 -13q-10 -11 -1 -12q4 -1 12.5 7t12.5 18q1 3 2 7t2 6t1.5 4.5t0.5 4v3t-1 2.5t-3 2z -M1254 325q0 18 -55 42q4 15 7.5 27.5t5 26t3 21.5t0.5 22.5t-1 19.5t-3.5 22t-4 20.5t-5 25t-5.5 26.5q-10 48 -47 103t-72 75q24 -20 57 -83q87 -162 54 -278q-11 -40 -50 -42q-31 -4 -38.5 18.5t-8 83.5t-11.5 107q-9 39 -19.5 69t-19.5 45.5t-15.5 24.5t-13 15t-7.5 7 -q-14 62 -31 103t-29.5 56t-23.5 33t-15 40q-4 21 6 53.5t4.5 49.5t-44.5 25q-15 3 -44.5 18t-35.5 16q-8 1 -11 26t8 51t36 27q37 3 51 -30t4 -58q-11 -19 -2 -26.5t30 -0.5q13 4 13 36v37q-5 30 -13.5 50t-21 30.5t-23.5 15t-27 7.5q-107 -8 -89 -134q0 -15 -1 -15 -q-9 9 -29.5 10.5t-33 -0.5t-15.5 5q1 57 -16 90t-45 34q-27 1 -41.5 -27.5t-16.5 -59.5q-1 -15 3.5 -37t13 -37.5t15.5 -13.5q10 3 16 14q4 9 -7 8q-7 0 -15.5 14.5t-9.5 33.5q-1 22 9 37t34 14q17 0 27 -21t9.5 -39t-1.5 -22q-22 -15 -31 -29q-8 -12 -27.5 -23.5 -t-20.5 -12.5q-13 -14 -15.5 -27t7.5 -18q14 -8 25 -19.5t16 -19t18.5 -13t35.5 -6.5q47 -2 102 15q2 1 23 7t34.5 10.5t29.5 13t21 17.5q9 14 20 8q5 -3 6.5 -8.5t-3 -12t-16.5 -9.5q-20 -6 -56.5 -21.5t-45.5 -19.5q-44 -19 -70 -23q-25 -5 -79 2q-10 2 -9 -2t17 -19 -q25 -23 67 -22q17 1 36 7t36 14t33.5 17.5t30 17t24.5 12t17.5 2.5t8.5 -11q0 -2 -1 -4.5t-4 -5t-6 -4.5t-8.5 -5t-9 -4.5t-10 -5t-9.5 -4.5q-28 -14 -67.5 -44t-66.5 -43t-49 -1q-21 11 -63 73q-22 31 -25 22q-1 -3 -1 -10q0 -25 -15 -56.5t-29.5 -55.5t-21 -58t11.5 -63 -q-23 -6 -62.5 -90t-47.5 -141q-2 -18 -1.5 -69t-5.5 -59q-8 -24 -29 -3q-32 31 -36 94q-2 28 4 56q4 19 -1 18q-2 -1 -4 -5q-36 -65 10 -166q5 -12 25 -28t24 -20q20 -23 104 -90.5t93 -76.5q16 -15 17.5 -38t-14 -43t-45.5 -23q8 -15 29 -44.5t28 -54t7 -70.5q46 24 7 92 -q-4 8 -10.5 16t-9.5 12t-2 6q3 5 13 9.5t20 -2.5q46 -52 166 -36q133 15 177 87q23 38 34 30q12 -6 10 -52q-1 -25 -23 -92q-9 -23 -6 -37.5t24 -15.5q3 19 14.5 77t13.5 90q2 21 -6.5 73.5t-7.5 97t23 70.5q15 18 51 18q1 37 34.5 53t72.5 10.5t60 -22.5zM626 1152 -q3 17 -2.5 30t-11.5 15q-9 2 -9 -7q2 -5 5 -6q10 0 7 -15q-3 -20 8 -20q3 0 3 3zM1045 955q-2 8 -6.5 11.5t-13 5t-14.5 5.5q-5 3 -9.5 8t-7 8t-5.5 6.5t-4 4t-4 -1.5q-14 -16 7 -43.5t39 -31.5q9 -1 14.5 8t3.5 20zM867 1168q0 11 -5 19.5t-11 12.5t-9 3q-6 0 -8 -2t0 -4 -t5 -3q14 -4 18 -31q0 -3 8 2q2 2 2 3zM921 1401q0 2 -2.5 5t-9 7t-9.5 6q-15 15 -24 15q-9 -1 -11.5 -7.5t-1 -13t-0.5 -12.5q-1 -4 -6 -10.5t-6 -9t3 -8.5q4 -3 8 0t11 9t15 9q1 1 9 1t15 2t9 7zM1486 60q20 -12 31 -24.5t12 -24t-2.5 -22.5t-15.5 -22t-23.5 -19.5 -t-30 -18.5t-31.5 -16.5t-32 -15.5t-27 -13q-38 -19 -85.5 -56t-75.5 -64q-17 -16 -68 -19.5t-89 14.5q-18 9 -29.5 23.5t-16.5 25.5t-22 19.5t-47 9.5q-44 1 -130 1q-19 0 -57 -1.5t-58 -2.5q-44 -1 -79.5 -15t-53.5 -30t-43.5 -28.5t-53.5 -11.5q-29 1 -111 31t-146 43 -q-19 4 -51 9.5t-50 9t-39.5 9.5t-33.5 14.5t-17 19.5q-10 23 7 66.5t18 54.5q1 16 -4 40t-10 42.5t-4.5 36.5t10.5 27q14 12 57 14t60 12q30 18 42 35t12 51q21 -73 -32 -106q-32 -20 -83 -15q-34 3 -43 -10q-13 -15 5 -57q2 -6 8 -18t8.5 -18t4.5 -17t1 -22q0 -15 -17 -49 -t-14 -48q3 -17 37 -26q20 -6 84.5 -18.5t99.5 -20.5q24 -6 74 -22t82.5 -23t55.5 -4q43 6 64.5 28t23 48t-7.5 58.5t-19 52t-20 36.5q-121 190 -169 242q-68 74 -113 40q-11 -9 -15 15q-3 16 -2 38q1 29 10 52t24 47t22 42q8 21 26.5 72t29.5 78t30 61t39 54 -q110 143 124 195q-12 112 -16 310q-2 90 24 151.5t106 104.5q39 21 104 21q53 1 106 -13.5t89 -41.5q57 -42 91.5 -121.5t29.5 -147.5q-5 -95 30 -214q34 -113 133 -218q55 -59 99.5 -163t59.5 -191q8 -49 5 -84.5t-12 -55.5t-20 -22q-10 -2 -23.5 -19t-27 -35.5 -t-40.5 -33.5t-61 -14q-18 1 -31.5 5t-22.5 13.5t-13.5 15.5t-11.5 20.5t-9 19.5q-22 37 -41 30t-28 -49t7 -97q20 -70 1 -195q-10 -65 18 -100.5t73 -33t85 35.5q59 49 89.5 66.5t103.5 42.5q53 18 77 36.5t18.5 34.5t-25 28.5t-51.5 23.5q-33 11 -49.5 48t-15 72.5 -t15.5 47.5q1 -31 8 -56.5t14.5 -40.5t20.5 -28.5t21 -19t21.5 -13t16.5 -9.5z" /> - <glyph glyph-name="dribble" unicode="&#xf17d;" -d="M1024 36q-42 241 -140 498h-2l-2 -1q-16 -6 -43 -16.5t-101 -49t-137 -82t-131 -114.5t-103 -148l-15 11q184 -150 418 -150q132 0 256 52zM839 643q-21 49 -53 111q-311 -93 -673 -93q-1 -7 -1 -21q0 -124 44 -236.5t124 -201.5q50 89 123.5 166.5t142.5 124.5t130.5 81 -t99.5 48l37 13q4 1 13 3.5t13 4.5zM732 855q-120 213 -244 378q-138 -65 -234 -186t-128 -272q302 0 606 80zM1416 536q-210 60 -409 29q87 -239 128 -469q111 75 185 189.5t96 250.5zM611 1277q-1 0 -2 -1q1 1 2 1zM1201 1132q-185 164 -433 164q-76 0 -155 -19 -q131 -170 246 -382q69 26 130 60.5t96.5 61.5t65.5 57t37.5 40.5zM1424 647q-3 232 -149 410l-1 -1q-9 -12 -19 -24.5t-43.5 -44.5t-71 -60.5t-100 -65t-131.5 -64.5q25 -53 44 -95q2 -5 6.5 -17t7.5 -17q36 5 74.5 7t73.5 2t69 -1.5t64 -4t56.5 -5.5t48 -6.5t36.5 -6 -t25 -4.5zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" /> - <glyph glyph-name="skype" unicode="&#xf17e;" -d="M1173 473q0 50 -19.5 91.5t-48.5 68.5t-73 49t-82.5 34t-87.5 23l-104 24q-30 7 -44 10.5t-35 11.5t-30 16t-16.5 21t-7.5 30q0 77 144 77q43 0 77 -12t54 -28.5t38 -33.5t40 -29t48 -12q47 0 75.5 32t28.5 77q0 55 -56 99.5t-142 67.5t-182 23q-68 0 -132 -15.5 -t-119.5 -47t-89 -87t-33.5 -128.5q0 -61 19 -106.5t56 -75.5t80 -48.5t103 -32.5l146 -36q90 -22 112 -36q32 -20 32 -60q0 -39 -40 -64.5t-105 -25.5q-51 0 -91.5 16t-65 38.5t-45.5 45t-46 38.5t-54 16q-50 0 -75.5 -30t-25.5 -75q0 -92 122 -157.5t291 -65.5 -q73 0 140 18.5t122.5 53.5t88.5 93.5t33 131.5zM1536 256q0 -159 -112.5 -271.5t-271.5 -112.5q-130 0 -234 80q-77 -16 -150 -16q-143 0 -273.5 55.5t-225 150t-150 225t-55.5 273.5q0 73 16 150q-80 104 -80 234q0 159 112.5 271.5t271.5 112.5q130 0 234 -80 -q77 16 150 16q143 0 273.5 -55.5t225 -150t150 -225t55.5 -273.5q0 -73 -16 -150q80 -104 80 -234z" /> - <glyph glyph-name="foursquare" unicode="&#xf180;" horiz-adv-x="1280" -d="M1000 1102l37 194q5 23 -9 40t-35 17h-712q-23 0 -38.5 -17t-15.5 -37v-1101q0 -7 6 -1l291 352q23 26 38 33.5t48 7.5h239q22 0 37 14.5t18 29.5q24 130 37 191q4 21 -11.5 40t-36.5 19h-294q-29 0 -48 19t-19 48v42q0 29 19 47.5t48 18.5h346q18 0 35 13.5t20 29.5z -M1227 1324q-15 -73 -53.5 -266.5t-69.5 -350t-35 -173.5q-6 -22 -9 -32.5t-14 -32.5t-24.5 -33t-38.5 -21t-58 -10h-271q-13 0 -22 -10q-8 -9 -426 -494q-22 -25 -58.5 -28.5t-48.5 5.5q-55 22 -55 98v1410q0 55 38 102.5t120 47.5h888q95 0 127 -53t10 -159zM1227 1324 -l-158 -790q4 17 35 173.5t69.5 350t53.5 266.5z" /> - <glyph glyph-name="trello" unicode="&#xf181;" -d="M704 192v1024q0 14 -9 23t-23 9h-480q-14 0 -23 -9t-9 -23v-1024q0 -14 9 -23t23 -9h480q14 0 23 9t9 23zM1376 576v640q0 14 -9 23t-23 9h-480q-14 0 -23 -9t-9 -23v-640q0 -14 9 -23t23 -9h480q14 0 23 9t9 23zM1536 1344v-1408q0 -26 -19 -45t-45 -19h-1408 -q-26 0 -45 19t-19 45v1408q0 26 19 45t45 19h1408q26 0 45 -19t19 -45z" /> - <glyph glyph-name="female" unicode="&#xf182;" horiz-adv-x="1280" -d="M1280 480q0 -40 -28 -68t-68 -28q-51 0 -80 43l-227 341h-45v-132l247 -411q9 -15 9 -33q0 -26 -19 -45t-45 -19h-192v-272q0 -46 -33 -79t-79 -33h-160q-46 0 -79 33t-33 79v272h-192q-26 0 -45 19t-19 45q0 18 9 33l247 411v132h-45l-227 -341q-29 -43 -80 -43 -q-40 0 -68 28t-28 68q0 29 16 53l256 384q73 107 176 107h384q103 0 176 -107l256 -384q16 -24 16 -53zM864 1280q0 -93 -65.5 -158.5t-158.5 -65.5t-158.5 65.5t-65.5 158.5t65.5 158.5t158.5 65.5t158.5 -65.5t65.5 -158.5z" /> - <glyph glyph-name="male" unicode="&#xf183;" horiz-adv-x="1024" -d="M1024 832v-416q0 -40 -28 -68t-68 -28t-68 28t-28 68v352h-64v-912q0 -46 -33 -79t-79 -33t-79 33t-33 79v464h-64v-464q0 -46 -33 -79t-79 -33t-79 33t-33 79v912h-64v-352q0 -40 -28 -68t-68 -28t-68 28t-28 68v416q0 80 56 136t136 56h640q80 0 136 -56t56 -136z -M736 1280q0 -93 -65.5 -158.5t-158.5 -65.5t-158.5 65.5t-65.5 158.5t65.5 158.5t158.5 65.5t158.5 -65.5t65.5 -158.5z" /> - <glyph glyph-name="gittip" unicode="&#xf184;" -d="M773 234l350 473q16 22 24.5 59t-6 85t-61.5 79q-40 26 -83 25.5t-73.5 -17.5t-54.5 -45q-36 -40 -96 -40q-59 0 -95 40q-24 28 -54.5 45t-73.5 17.5t-84 -25.5q-46 -31 -60.5 -79t-6 -85t24.5 -59zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103 -t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" /> - <glyph glyph-name="sun" unicode="&#xf185;" horiz-adv-x="1792" -d="M1472 640q0 117 -45.5 223.5t-123 184t-184 123t-223.5 45.5t-223.5 -45.5t-184 -123t-123 -184t-45.5 -223.5t45.5 -223.5t123 -184t184 -123t223.5 -45.5t223.5 45.5t184 123t123 184t45.5 223.5zM1748 363q-4 -15 -20 -20l-292 -96v-306q0 -16 -13 -26q-15 -10 -29 -4 -l-292 94l-180 -248q-10 -13 -26 -13t-26 13l-180 248l-292 -94q-14 -6 -29 4q-13 10 -13 26v306l-292 96q-16 5 -20 20q-5 17 4 29l180 248l-180 248q-9 13 -4 29q4 15 20 20l292 96v306q0 16 13 26q15 10 29 4l292 -94l180 248q9 12 26 12t26 -12l180 -248l292 94 -q14 6 29 -4q13 -10 13 -26v-306l292 -96q16 -5 20 -20q5 -16 -4 -29l-180 -248l180 -248q9 -12 4 -29z" /> - <glyph glyph-name="_366" unicode="&#xf186;" -d="M1262 233q-54 -9 -110 -9q-182 0 -337 90t-245 245t-90 337q0 192 104 357q-201 -60 -328.5 -229t-127.5 -384q0 -130 51 -248.5t136.5 -204t204 -136.5t248.5 -51q144 0 273.5 61.5t220.5 171.5zM1465 318q-94 -203 -283.5 -324.5t-413.5 -121.5q-156 0 -298 61 -t-245 164t-164 245t-61 298q0 153 57.5 292.5t156 241.5t235.5 164.5t290 68.5q44 2 61 -39q18 -41 -15 -72q-86 -78 -131.5 -181.5t-45.5 -218.5q0 -148 73 -273t198 -198t273 -73q118 0 228 51q41 18 72 -13q14 -14 17.5 -34t-4.5 -38z" /> - <glyph glyph-name="archive" unicode="&#xf187;" horiz-adv-x="1792" -d="M1088 704q0 26 -19 45t-45 19h-256q-26 0 -45 -19t-19 -45t19 -45t45 -19h256q26 0 45 19t19 45zM1664 896v-960q0 -26 -19 -45t-45 -19h-1408q-26 0 -45 19t-19 45v960q0 26 19 45t45 19h1408q26 0 45 -19t19 -45zM1728 1344v-256q0 -26 -19 -45t-45 -19h-1536 -q-26 0 -45 19t-19 45v256q0 26 19 45t45 19h1536q26 0 45 -19t19 -45z" /> - <glyph glyph-name="bug" unicode="&#xf188;" horiz-adv-x="1664" -d="M1632 576q0 -26 -19 -45t-45 -19h-224q0 -171 -67 -290l208 -209q19 -19 19 -45t-19 -45q-18 -19 -45 -19t-45 19l-198 197q-5 -5 -15 -13t-42 -28.5t-65 -36.5t-82 -29t-97 -13v896h-128v-896q-51 0 -101.5 13.5t-87 33t-66 39t-43.5 32.5l-15 14l-183 -207 -q-20 -21 -48 -21q-24 0 -43 16q-19 18 -20.5 44.5t15.5 46.5l202 227q-58 114 -58 274h-224q-26 0 -45 19t-19 45t19 45t45 19h224v294l-173 173q-19 19 -19 45t19 45t45 19t45 -19l173 -173h844l173 173q19 19 45 19t45 -19t19 -45t-19 -45l-173 -173v-294h224q26 0 45 -19 -t19 -45zM1152 1152h-640q0 133 93.5 226.5t226.5 93.5t226.5 -93.5t93.5 -226.5z" /> - <glyph glyph-name="vk" unicode="&#xf189;" horiz-adv-x="1920" -d="M1917 1016q23 -64 -150 -294q-24 -32 -65 -85q-40 -51 -55 -72t-30.5 -49.5t-12 -42t13 -34.5t32.5 -43t57 -53q4 -2 5 -4q141 -131 191 -221q3 -5 6.5 -12.5t7 -26.5t-0.5 -34t-25 -27.5t-59 -12.5l-256 -4q-24 -5 -56 5t-52 22l-20 12q-30 21 -70 64t-68.5 77.5t-61 58 -t-56.5 15.5q-3 -1 -8 -3.5t-17 -14.5t-21.5 -29.5t-17 -52t-6.5 -77.5q0 -15 -3.5 -27.5t-7.5 -18.5l-4 -5q-18 -19 -53 -22h-115q-71 -4 -146 16.5t-131.5 53t-103 66t-70.5 57.5l-25 24q-10 10 -27.5 30t-71.5 91t-106 151t-122.5 211t-130.5 272q-6 16 -6 27t3 16l4 6 -q15 19 57 19l274 2q12 -2 23 -6.5t16 -8.5l5 -3q16 -11 24 -32q20 -50 46 -103.5t41 -81.5l16 -29q29 -60 56 -104t48.5 -68.5t41.5 -38.5t34 -14t27 5q2 1 5 5t12 22t13.5 47t9.5 81t0 125q-2 40 -9 73t-14 46l-6 12q-25 34 -85 43q-13 2 5 24q16 19 38 30q53 26 239 24 -q82 -1 135 -13q20 -5 33.5 -13.5t20.5 -24t10.5 -32t3.5 -45.5t-1 -55t-2.5 -70.5t-1.5 -82.5q0 -11 -1 -42t-0.5 -48t3.5 -40.5t11.5 -39t22.5 -24.5q8 -2 17 -4t26 11t38 34.5t52 67t68 107.5q60 104 107 225q4 10 10 17.5t11 10.5l4 3l5 2.5t13 3t20 0.5l288 2 -q39 5 64 -2.5t31 -16.5z" /> - <glyph glyph-name="weibo" unicode="&#xf18a;" horiz-adv-x="1792" -d="M675 252q21 34 11 69t-45 50q-34 14 -73 1t-60 -46q-22 -34 -13 -68.5t43 -50.5t74.5 -2.5t62.5 47.5zM769 373q8 13 3.5 26.5t-17.5 18.5q-14 5 -28.5 -0.5t-21.5 -18.5q-17 -31 13 -45q14 -5 29 0.5t22 18.5zM943 266q-45 -102 -158 -150t-224 -12 -q-107 34 -147.5 126.5t6.5 187.5q47 93 151.5 139t210.5 19q111 -29 158.5 -119.5t2.5 -190.5zM1255 426q-9 96 -89 170t-208.5 109t-274.5 21q-223 -23 -369.5 -141.5t-132.5 -264.5q9 -96 89 -170t208.5 -109t274.5 -21q223 23 369.5 141.5t132.5 264.5zM1563 422 -q0 -68 -37 -139.5t-109 -137t-168.5 -117.5t-226 -83t-270.5 -31t-275 33.5t-240.5 93t-171.5 151t-65 199.5q0 115 69.5 245t197.5 258q169 169 341.5 236t246.5 -7q65 -64 20 -209q-4 -14 -1 -20t10 -7t14.5 0.5t13.5 3.5l6 2q139 59 246 59t153 -61q45 -63 0 -178 -q-2 -13 -4.5 -20t4.5 -12.5t12 -7.5t17 -6q57 -18 103 -47t80 -81.5t34 -116.5zM1489 1046q42 -47 54.5 -108.5t-6.5 -117.5q-8 -23 -29.5 -34t-44.5 -4q-23 8 -34 29.5t-4 44.5q20 63 -24 111t-107 35q-24 -5 -45 8t-25 37q-5 24 8 44.5t37 25.5q60 13 119 -5.5t101 -65.5z -M1670 1209q87 -96 112.5 -222.5t-13.5 -241.5q-9 -27 -34 -40t-52 -4t-40 34t-5 52q28 82 10 172t-80 158q-62 69 -148 95.5t-173 8.5q-28 -6 -52 9.5t-30 43.5t9.5 51.5t43.5 29.5q123 26 244 -11.5t208 -134.5z" /> - <glyph glyph-name="renren" unicode="&#xf18b;" -d="M1133 -34q-171 -94 -368 -94q-196 0 -367 94q138 87 235.5 211t131.5 268q35 -144 132.5 -268t235.5 -211zM638 1394v-485q0 -252 -126.5 -459.5t-330.5 -306.5q-181 215 -181 495q0 187 83.5 349.5t229.5 269.5t325 137zM1536 638q0 -280 -181 -495 -q-204 99 -330.5 306.5t-126.5 459.5v485q179 -30 325 -137t229.5 -269.5t83.5 -349.5z" /> - <glyph glyph-name="_372" unicode="&#xf18c;" horiz-adv-x="1408" -d="M1402 433q-32 -80 -76 -138t-91 -88.5t-99 -46.5t-101.5 -14.5t-96.5 8.5t-86.5 22t-69.5 27.5t-46 22.5l-17 10q-113 -228 -289.5 -359.5t-384.5 -132.5q-19 0 -32 13t-13 32t13 31.5t32 12.5q173 1 322.5 107.5t251.5 294.5q-36 -14 -72 -23t-83 -13t-91 2.5t-93 28.5 -t-92 59t-84.5 100t-74.5 146q114 47 214 57t167.5 -7.5t124.5 -56.5t88.5 -77t56.5 -82q53 131 79 291q-7 -1 -18 -2.5t-46.5 -2.5t-69.5 0.5t-81.5 10t-88.5 23t-84 42.5t-75 65t-54.5 94.5t-28.5 127.5q70 28 133.5 36.5t112.5 -1t92 -30t73.5 -50t56 -61t42 -63t27.5 -56 -t16 -39.5l4 -16q12 122 12 195q-8 6 -21.5 16t-49 44.5t-63.5 71.5t-54 93t-33 112.5t12 127t70 138.5q73 -25 127.5 -61.5t84.5 -76.5t48 -85t20.5 -89t-0.5 -85.5t-13 -76.5t-19 -62t-17 -42l-7 -15q1 -4 1 -50t-1 -72q3 7 10 18.5t30.5 43t50.5 58t71 55.5t91.5 44.5 -t112 14.5t132.5 -24q-2 -78 -21.5 -141.5t-50 -104.5t-69.5 -71.5t-81.5 -45.5t-84.5 -24t-80 -9.5t-67.5 1t-46.5 4.5l-17 3q-23 -147 -73 -283q6 7 18 18.5t49.5 41t77.5 52.5t99.5 42t117.5 20t129 -23.5t137 -77.5z" /> - <glyph glyph-name="stack_exchange" unicode="&#xf18d;" horiz-adv-x="1280" -d="M1259 283v-66q0 -85 -57.5 -144.5t-138.5 -59.5h-57l-260 -269v269h-529q-81 0 -138.5 59.5t-57.5 144.5v66h1238zM1259 609v-255h-1238v255h1238zM1259 937v-255h-1238v255h1238zM1259 1077v-67h-1238v67q0 84 57.5 143.5t138.5 59.5h846q81 0 138.5 -59.5t57.5 -143.5z -" /> - <glyph glyph-name="_374" unicode="&#xf18e;" -d="M1152 640q0 -14 -9 -23l-320 -320q-9 -9 -23 -9q-13 0 -22.5 9.5t-9.5 22.5v192h-352q-13 0 -22.5 9.5t-9.5 22.5v192q0 13 9.5 22.5t22.5 9.5h352v192q0 14 9 23t23 9q12 0 24 -10l319 -319q9 -9 9 -23zM1312 640q0 148 -73 273t-198 198t-273 73t-273 -73t-198 -198 -t-73 -273t73 -273t198 -198t273 -73t273 73t198 198t73 273zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" /> - <glyph glyph-name="arrow_circle_alt_left" unicode="&#xf190;" -d="M1152 736v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-352v-192q0 -14 -9 -23t-23 -9q-12 0 -24 10l-319 319q-9 9 -9 23t9 23l320 320q9 9 23 9q13 0 22.5 -9.5t9.5 -22.5v-192h352q13 0 22.5 -9.5t9.5 -22.5zM1312 640q0 148 -73 273t-198 198t-273 73t-273 -73t-198 -198 -t-73 -273t73 -273t198 -198t273 -73t273 73t198 198t73 273zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" /> - <glyph glyph-name="_376" unicode="&#xf191;" -d="M1024 960v-640q0 -26 -19 -45t-45 -19q-20 0 -37 12l-448 320q-27 19 -27 52t27 52l448 320q17 12 37 12q26 0 45 -19t19 -45zM1280 160v960q0 13 -9.5 22.5t-22.5 9.5h-960q-13 0 -22.5 -9.5t-9.5 -22.5v-960q0 -13 9.5 -22.5t22.5 -9.5h960q13 0 22.5 9.5t9.5 22.5z -M1536 1120v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" /> - <glyph glyph-name="dot_circle_alt" unicode="&#xf192;" -d="M1024 640q0 -106 -75 -181t-181 -75t-181 75t-75 181t75 181t181 75t181 -75t75 -181zM768 1184q-148 0 -273 -73t-198 -198t-73 -273t73 -273t198 -198t273 -73t273 73t198 198t73 273t-73 273t-198 198t-273 73zM1536 640q0 -209 -103 -385.5t-279.5 -279.5 -t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" /> - <glyph glyph-name="_378" unicode="&#xf193;" horiz-adv-x="1664" -d="M1023 349l102 -204q-58 -179 -210 -290t-339 -111q-156 0 -288.5 77.5t-210 210t-77.5 288.5q0 181 104.5 330t274.5 211l17 -131q-122 -54 -195 -165.5t-73 -244.5q0 -185 131.5 -316.5t316.5 -131.5q126 0 232.5 65t165 175.5t49.5 236.5zM1571 249l58 -114l-256 -128 -q-13 -7 -29 -7q-40 0 -57 35l-239 477h-472q-24 0 -42.5 16.5t-21.5 40.5l-96 779q-2 17 6 42q14 51 57 82.5t97 31.5q66 0 113 -47t47 -113q0 -69 -52 -117.5t-120 -41.5l37 -289h423v-128h-407l16 -128h455q40 0 57 -35l228 -455z" /> - <glyph glyph-name="vimeo_square" unicode="&#xf194;" -d="M1292 898q10 216 -161 222q-231 8 -312 -261q44 19 82 19q85 0 74 -96q-4 -57 -74 -167t-105 -110q-43 0 -82 169q-13 54 -45 255q-30 189 -160 177q-59 -7 -164 -100l-81 -72l-81 -72l52 -67q76 52 87 52q57 0 107 -179q15 -55 45 -164.5t45 -164.5q68 -179 164 -179 -q157 0 383 294q220 283 226 444zM1536 1120v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" /> - <glyph glyph-name="_380" unicode="&#xf195;" horiz-adv-x="1152" -d="M1152 704q0 -191 -94.5 -353t-256.5 -256.5t-353 -94.5h-160q-14 0 -23 9t-9 23v611l-215 -66q-3 -1 -9 -1q-10 0 -19 6q-13 10 -13 26v128q0 23 23 31l233 71v93l-215 -66q-3 -1 -9 -1q-10 0 -19 6q-13 10 -13 26v128q0 23 23 31l233 71v250q0 14 9 23t23 9h160 -q14 0 23 -9t9 -23v-181l375 116q15 5 28 -5t13 -26v-128q0 -23 -23 -31l-393 -121v-93l375 116q15 5 28 -5t13 -26v-128q0 -23 -23 -31l-393 -121v-487q188 13 318 151t130 328q0 14 9 23t23 9h160q14 0 23 -9t9 -23z" /> - <glyph glyph-name="plus_square_o" unicode="&#xf196;" horiz-adv-x="1408" -d="M1152 736v-64q0 -14 -9 -23t-23 -9h-352v-352q0 -14 -9 -23t-23 -9h-64q-14 0 -23 9t-9 23v352h-352q-14 0 -23 9t-9 23v64q0 14 9 23t23 9h352v352q0 14 9 23t23 9h64q14 0 23 -9t9 -23v-352h352q14 0 23 -9t9 -23zM1280 288v832q0 66 -47 113t-113 47h-832 -q-66 0 -113 -47t-47 -113v-832q0 -66 47 -113t113 -47h832q66 0 113 47t47 113zM1408 1120v-832q0 -119 -84.5 -203.5t-203.5 -84.5h-832q-119 0 -203.5 84.5t-84.5 203.5v832q0 119 84.5 203.5t203.5 84.5h832q119 0 203.5 -84.5t84.5 -203.5z" /> - <glyph glyph-name="_382" unicode="&#xf197;" horiz-adv-x="2176" -d="M620 416q-110 -64 -268 -64h-128v64h-64q-13 0 -22.5 23.5t-9.5 56.5q0 24 7 49q-58 2 -96.5 10.5t-38.5 20.5t38.5 20.5t96.5 10.5q-7 25 -7 49q0 33 9.5 56.5t22.5 23.5h64v64h128q158 0 268 -64h1113q42 -7 106.5 -18t80.5 -14q89 -15 150 -40.5t83.5 -47.5t22.5 -40 -t-22.5 -40t-83.5 -47.5t-150 -40.5q-16 -3 -80.5 -14t-106.5 -18h-1113zM1739 668q53 -36 53 -92t-53 -92l81 -30q68 48 68 122t-68 122zM625 400h1015q-217 -38 -456 -80q-57 0 -113 -24t-83 -48l-28 -24l-288 -288q-26 -26 -70.5 -45t-89.5 -19h-96l-93 464h29 -q157 0 273 64zM352 816h-29l93 464h96q46 0 90 -19t70 -45l288 -288q4 -4 11 -10.5t30.5 -23t48.5 -29t61.5 -23t72.5 -10.5l456 -80h-1015q-116 64 -273 64z" /> - <glyph glyph-name="_383" unicode="&#xf198;" horiz-adv-x="1664" -d="M1519 760q62 0 103.5 -40.5t41.5 -101.5q0 -97 -93 -130l-172 -59l56 -167q7 -21 7 -47q0 -59 -42 -102t-101 -43q-47 0 -85.5 27t-53.5 72l-55 165l-310 -106l55 -164q8 -24 8 -47q0 -59 -42 -102t-102 -43q-47 0 -85 27t-53 72l-55 163l-153 -53q-29 -9 -50 -9 -q-61 0 -101.5 40t-40.5 101q0 47 27.5 85t71.5 53l156 53l-105 313l-156 -54q-26 -8 -48 -8q-60 0 -101 40.5t-41 100.5q0 47 27.5 85t71.5 53l157 53l-53 159q-8 24 -8 47q0 60 42 102.5t102 42.5q47 0 85 -27t53 -72l54 -160l310 105l-54 160q-8 24 -8 47q0 59 42.5 102 -t101.5 43q47 0 85.5 -27.5t53.5 -71.5l53 -161l162 55q21 6 43 6q60 0 102.5 -39.5t42.5 -98.5q0 -45 -30 -81.5t-74 -51.5l-157 -54l105 -316l164 56q24 8 46 8zM725 498l310 105l-105 315l-310 -107z" /> - <glyph glyph-name="_384" unicode="&#xf199;" -d="M1248 1408q119 0 203.5 -84.5t84.5 -203.5v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960zM1280 352v436q-31 -35 -64 -55q-34 -22 -132.5 -85t-151.5 -99q-98 -69 -164 -69v0v0q-66 0 -164 69 -q-47 32 -142 92.5t-142 92.5q-12 8 -33 27t-31 27v-436q0 -40 28 -68t68 -28h832q40 0 68 28t28 68zM1280 925q0 41 -27.5 70t-68.5 29h-832q-40 0 -68 -28t-28 -68q0 -37 30.5 -76.5t67.5 -64.5q47 -32 137.5 -89t129.5 -83q3 -2 17 -11.5t21 -14t21 -13t23.5 -13 -t21.5 -9.5t22.5 -7.5t20.5 -2.5t20.5 2.5t22.5 7.5t21.5 9.5t23.5 13t21 13t21 14t17 11.5l267 174q35 23 66.5 62.5t31.5 73.5z" /> - <glyph glyph-name="_385" unicode="&#xf19a;" horiz-adv-x="1792" -d="M127 640q0 163 67 313l367 -1005q-196 95 -315 281t-119 411zM1415 679q0 -19 -2.5 -38.5t-10 -49.5t-11.5 -44t-17.5 -59t-17.5 -58l-76 -256l-278 826q46 3 88 8q19 2 26 18.5t-2.5 31t-28.5 13.5l-205 -10q-75 1 -202 10q-12 1 -20.5 -5t-11.5 -15t-1.5 -18.5t9 -16.5 -t19.5 -8l80 -8l120 -328l-168 -504l-280 832q46 3 88 8q19 2 26 18.5t-2.5 31t-28.5 13.5l-205 -10q-7 0 -23 0.5t-26 0.5q105 160 274.5 253.5t367.5 93.5q147 0 280.5 -53t238.5 -149h-10q-55 0 -92 -40.5t-37 -95.5q0 -12 2 -24t4 -21.5t8 -23t9 -21t12 -22.5t12.5 -21 -t14.5 -24t14 -23q63 -107 63 -212zM909 573l237 -647q1 -6 5 -11q-126 -44 -255 -44q-112 0 -217 32zM1570 1009q95 -174 95 -369q0 -209 -104 -385.5t-279 -278.5l235 678q59 169 59 276q0 42 -6 79zM896 1536q182 0 348 -71t286 -191t191 -286t71 -348t-71 -348t-191 -286 -t-286 -191t-348 -71t-348 71t-286 191t-191 286t-71 348t71 348t191 286t286 191t348 71zM896 -215q173 0 331.5 68t273 182.5t182.5 273t68 331.5t-68 331.5t-182.5 273t-273 182.5t-331.5 68t-331.5 -68t-273 -182.5t-182.5 -273t-68 -331.5t68 -331.5t182.5 -273 -t273 -182.5t331.5 -68z" /> - <glyph glyph-name="_386" unicode="&#xf19b;" horiz-adv-x="1792" -d="M1086 1536v-1536l-272 -128q-228 20 -414 102t-293 208.5t-107 272.5q0 140 100.5 263.5t275 205.5t391.5 108v-172q-217 -38 -356.5 -150t-139.5 -255q0 -152 154.5 -267t388.5 -145v1360zM1755 954l37 -390l-525 114l147 83q-119 70 -280 99v172q277 -33 481 -157z" /> - <glyph glyph-name="_387" unicode="&#xf19c;" horiz-adv-x="2048" -d="M960 1536l960 -384v-128h-128q0 -26 -20.5 -45t-48.5 -19h-1526q-28 0 -48.5 19t-20.5 45h-128v128zM256 896h256v-768h128v768h256v-768h128v768h256v-768h128v768h256v-768h59q28 0 48.5 -19t20.5 -45v-64h-1664v64q0 26 20.5 45t48.5 19h59v768zM1851 -64 -q28 0 48.5 -19t20.5 -45v-128h-1920v128q0 26 20.5 45t48.5 19h1782z" /> - <glyph glyph-name="_388" unicode="&#xf19d;" horiz-adv-x="2304" -d="M1774 700l18 -316q4 -69 -82 -128t-235 -93.5t-323 -34.5t-323 34.5t-235 93.5t-82 128l18 316l574 -181q22 -7 48 -7t48 7zM2304 1024q0 -23 -22 -31l-1120 -352q-4 -1 -10 -1t-10 1l-652 206q-43 -34 -71 -111.5t-34 -178.5q63 -36 63 -109q0 -69 -58 -107l58 -433 -q2 -14 -8 -25q-9 -11 -24 -11h-192q-15 0 -24 11q-10 11 -8 25l58 433q-58 38 -58 107q0 73 65 111q11 207 98 330l-333 104q-22 8 -22 31t22 31l1120 352q4 1 10 1t10 -1l1120 -352q22 -8 22 -31z" /> - <glyph glyph-name="_389" unicode="&#xf19e;" -d="M859 579l13 -707q-62 11 -105 11q-41 0 -105 -11l13 707q-40 69 -168.5 295.5t-216.5 374.5t-181 287q58 -15 108 -15q44 0 111 15q63 -111 133.5 -229.5t167 -276.5t138.5 -227q37 61 109.5 177.5t117.5 190t105 176t107 189.5q54 -14 107 -14q56 0 114 14v0 -q-28 -39 -60 -88.5t-49.5 -78.5t-56.5 -96t-49 -84q-146 -248 -353 -610z" /> - <glyph glyph-name="uniF1A0" unicode="&#xf1a0;" -d="M768 750h725q12 -67 12 -128q0 -217 -91 -387.5t-259.5 -266.5t-386.5 -96q-157 0 -299 60.5t-245 163.5t-163.5 245t-60.5 299t60.5 299t163.5 245t245 163.5t299 60.5q300 0 515 -201l-209 -201q-123 119 -306 119q-129 0 -238.5 -65t-173.5 -176.5t-64 -243.5 -t64 -243.5t173.5 -176.5t238.5 -65q87 0 160 24t120 60t82 82t51.5 87t22.5 78h-436v264z" /> - <glyph glyph-name="f1a1" unicode="&#xf1a1;" horiz-adv-x="1792" -d="M1095 369q16 -16 0 -31q-62 -62 -199 -62t-199 62q-16 15 0 31q6 6 15 6t15 -6q48 -49 169 -49q120 0 169 49q6 6 15 6t15 -6zM788 550q0 -37 -26 -63t-63 -26t-63.5 26t-26.5 63q0 38 26.5 64t63.5 26t63 -26.5t26 -63.5zM1183 550q0 -37 -26.5 -63t-63.5 -26t-63 26 -t-26 63t26 63.5t63 26.5t63.5 -26t26.5 -64zM1434 670q0 49 -35 84t-85 35t-86 -36q-130 90 -311 96l63 283l200 -45q0 -37 26 -63t63 -26t63.5 26.5t26.5 63.5t-26.5 63.5t-63.5 26.5q-54 0 -80 -50l-221 49q-19 5 -25 -16l-69 -312q-180 -7 -309 -97q-35 37 -87 37 -q-50 0 -85 -35t-35 -84q0 -35 18.5 -64t49.5 -44q-6 -27 -6 -56q0 -142 140 -243t337 -101q198 0 338 101t140 243q0 32 -7 57q30 15 48 43.5t18 63.5zM1792 640q0 -182 -71 -348t-191 -286t-286 -191t-348 -71t-348 71t-286 191t-191 286t-71 348t71 348t191 286t286 191 -t348 71t348 -71t286 -191t191 -286t71 -348z" /> - <glyph glyph-name="_392" unicode="&#xf1a2;" -d="M939 407q13 -13 0 -26q-53 -53 -171 -53t-171 53q-13 13 0 26q5 6 13 6t13 -6q42 -42 145 -42t145 42q5 6 13 6t13 -6zM676 563q0 -31 -23 -54t-54 -23t-54 23t-23 54q0 32 22.5 54.5t54.5 22.5t54.5 -22.5t22.5 -54.5zM1014 563q0 -31 -23 -54t-54 -23t-54 23t-23 54 -q0 32 22.5 54.5t54.5 22.5t54.5 -22.5t22.5 -54.5zM1229 666q0 42 -30 72t-73 30q-42 0 -73 -31q-113 78 -267 82l54 243l171 -39q1 -32 23.5 -54t53.5 -22q32 0 54.5 22.5t22.5 54.5t-22.5 54.5t-54.5 22.5q-48 0 -69 -43l-189 42q-17 5 -21 -13l-60 -268q-154 -6 -265 -83 -q-30 32 -74 32q-43 0 -73 -30t-30 -72q0 -30 16 -55t42 -38q-5 -25 -5 -48q0 -122 120 -208.5t289 -86.5q170 0 290 86.5t120 208.5q0 25 -6 49q25 13 40.5 37.5t15.5 54.5zM1536 1120v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960 -q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" /> - <glyph glyph-name="_393" unicode="&#xf1a3;" -d="M866 697l90 27v62q0 79 -58 135t-138 56t-138 -55.5t-58 -134.5v-283q0 -20 -14 -33.5t-33 -13.5t-32.5 13.5t-13.5 33.5v120h-151v-122q0 -82 57.5 -139t139.5 -57q81 0 138.5 56.5t57.5 136.5v280q0 19 13.5 33t33.5 14q19 0 32.5 -14t13.5 -33v-54zM1199 502v122h-150 -v-126q0 -20 -13.5 -33.5t-33.5 -13.5q-19 0 -32.5 14t-13.5 33v123l-90 -26l-60 28v-123q0 -80 58 -137t139 -57t138.5 57t57.5 139zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103 -t385.5 -103t279.5 -279.5t103 -385.5z" /> - <glyph glyph-name="f1a4" unicode="&#xf1a4;" horiz-adv-x="1920" -d="M1062 824v118q0 42 -30 72t-72 30t-72 -30t-30 -72v-612q0 -175 -126 -299t-303 -124q-178 0 -303.5 125.5t-125.5 303.5v266h328v-262q0 -43 30 -72.5t72 -29.5t72 29.5t30 72.5v620q0 171 126.5 292t301.5 121q176 0 302 -122t126 -294v-136l-195 -58zM1592 602h328 -v-266q0 -178 -125.5 -303.5t-303.5 -125.5q-177 0 -303 124.5t-126 300.5v268l131 -61l195 58v-270q0 -42 30 -71.5t72 -29.5t72 29.5t30 71.5v275z" /> - <glyph glyph-name="_395" unicode="&#xf1a5;" -d="M1472 160v480h-704v704h-480q-93 0 -158.5 -65.5t-65.5 -158.5v-480h704v-704h480q93 0 158.5 65.5t65.5 158.5zM1536 1120v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5 -t84.5 -203.5z" /> - <glyph glyph-name="_396" unicode="&#xf1a6;" horiz-adv-x="2048" -d="M328 1254h204v-983h-532v697h328v286zM328 435v369h-123v-369h123zM614 968v-697h205v697h-205zM614 1254v-204h205v204h-205zM901 968h533v-942h-533v163h328v82h-328v697zM1229 435v369h-123v-369h123zM1516 968h532v-942h-532v163h327v82h-327v697zM1843 435v369h-123 -v-369h123z" /> - <glyph glyph-name="_397" unicode="&#xf1a7;" -d="M1046 516q0 -64 -38 -109t-91 -45q-43 0 -70 15v277q28 17 70 17q53 0 91 -45.5t38 -109.5zM703 944q0 -64 -38 -109.5t-91 -45.5q-43 0 -70 15v277q28 17 70 17q53 0 91 -45t38 -109zM1265 513q0 134 -88 229t-213 95q-20 0 -39 -3q-23 -78 -78 -136q-87 -95 -211 -101 -v-636l211 41v206q51 -19 117 -19q125 0 213 95t88 229zM922 940q0 134 -88.5 229t-213.5 95q-74 0 -141 -36h-186v-840l211 41v206q55 -19 116 -19q125 0 213.5 95t88.5 229zM1536 1120v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960 -q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" /> - <glyph glyph-name="_398" unicode="&#xf1a8;" horiz-adv-x="2038" -d="M1222 607q75 3 143.5 -20.5t118 -58.5t101 -94.5t84 -108t75.5 -120.5q33 -56 78.5 -109t75.5 -80.5t99 -88.5q-48 -30 -108.5 -57.5t-138.5 -59t-114 -47.5q-44 37 -74 115t-43.5 164.5t-33 180.5t-42.5 168.5t-72.5 123t-122.5 48.5l-10 -2l-6 -4q4 -5 13 -14 -q6 -5 28 -23.5t25.5 -22t19 -18t18 -20.5t11.5 -21t10.5 -27.5t4.5 -31t4 -40.5l1 -33q1 -26 -2.5 -57.5t-7.5 -52t-12.5 -58.5t-11.5 -53q-35 1 -101 -9.5t-98 -10.5q-39 0 -72 10q-2 16 -2 47q0 74 3 96q2 13 31.5 41.5t57 59t26.5 51.5q-24 2 -43 -24 -q-36 -53 -111.5 -99.5t-136.5 -46.5q-25 0 -75.5 63t-106.5 139.5t-84 96.5q-6 4 -27 30q-482 -112 -513 -112q-16 0 -28 11t-12 27q0 15 8.5 26.5t22.5 14.5l486 106q-8 14 -8 25t5.5 17.5t16 11.5t20 7t23 4.5t18.5 4.5q4 1 15.5 7.5t17.5 6.5q15 0 28 -16t20 -33 -q163 37 172 37q17 0 29.5 -11t12.5 -28q0 -15 -8.5 -26t-23.5 -14l-182 -40l-1 -16q-1 -26 81.5 -117.5t104.5 -91.5q47 0 119 80t72 129q0 36 -23.5 53t-51 18.5t-51 11.5t-23.5 34q0 16 10 34l-68 19q43 44 43 117q0 26 -5 58q82 16 144 16q44 0 71.5 -1.5t48.5 -8.5 -t31 -13.5t20.5 -24.5t15.5 -33.5t17 -47.5t24 -60l50 25q-3 -40 -23 -60t-42.5 -21t-40 -6.5t-16.5 -20.5zM1282 842q-5 5 -13.5 15.5t-12 14.5t-10.5 11.5t-10 10.5l-8 8t-8.5 7.5t-8 5t-8.5 4.5q-7 3 -14.5 5t-20.5 2.5t-22 0.5h-32.5h-37.5q-126 0 -217 -43 -q16 30 36 46.5t54 29.5t65.5 36t46 36.5t50 55t43.5 50.5q12 -9 28 -31.5t32 -36.5t38 -13l12 1v-76l22 -1q247 95 371 190q28 21 50 39t42.5 37.5t33 31t29.5 34t24 31t24.5 37t23 38t27 47.5t29.5 53l7 9q-2 -53 -43 -139q-79 -165 -205 -264t-306 -142q-14 -3 -42 -7.5 -t-50 -9.5t-39 -14q3 -19 24.5 -46t21.5 -34q0 -11 -26 -30zM1061 -79q39 26 131.5 47.5t146.5 21.5q9 0 22.5 -15.5t28 -42.5t26 -50t24 -51t14.5 -33q-121 -45 -244 -45q-61 0 -125 11zM822 568l48 12l109 -177l-73 -48zM1323 51q3 -15 3 -16q0 -7 -17.5 -14.5t-46 -13 -t-54 -9.5t-53.5 -7.5t-32 -4.5l-7 43q21 2 60.5 8.5t72 10t60.5 3.5h14zM866 679l-96 -20l-6 17q10 1 32.5 7t34.5 6q19 0 35 -10zM1061 45h31l10 -83l-41 -12v95zM1950 1535v1v-1zM1950 1535l-1 -5l-2 -2l1 3zM1950 1535l1 1z" /> - <glyph glyph-name="_399" unicode="&#xf1a9;" -d="M1167 -50q-5 19 -24 5q-30 -22 -87 -39t-131 -17q-129 0 -193 49q-5 4 -13 4q-11 0 -26 -12q-7 -6 -7.5 -16t7.5 -20q34 -32 87.5 -46t102.5 -12.5t99 4.5q41 4 84.5 20.5t65 30t28.5 20.5q12 12 7 29zM1128 65q-19 47 -39 61q-23 15 -76 15q-47 0 -71 -10 -q-29 -12 -78 -56q-26 -24 -12 -44q9 -8 17.5 -4.5t31.5 23.5q3 2 10.5 8.5t10.5 8.5t10 7t11.5 7t12.5 5t15 4.5t16.5 2.5t20.5 1q27 0 44.5 -7.5t23 -14.5t13.5 -22q10 -17 12.5 -20t12.5 1q23 12 14 34zM1483 346q0 22 -5 44.5t-16.5 45t-34 36.5t-52.5 14 -q-33 0 -97 -41.5t-129 -83.5t-101 -42q-27 -1 -63.5 19t-76 49t-83.5 58t-100 49t-111 19q-115 -1 -197 -78.5t-84 -178.5q-2 -112 74 -164q29 -20 62.5 -28.5t103.5 -8.5q57 0 132 32.5t134 71t120 70.5t93 31q26 -1 65 -31.5t71.5 -67t68 -67.5t55.5 -32q35 -3 58.5 14 -t55.5 63q28 41 42.5 101t14.5 106zM1536 506q0 -164 -62 -304.5t-166 -236t-242.5 -149.5t-290.5 -54t-293 57.5t-247.5 157t-170.5 241.5t-64 302q0 89 19.5 172.5t49 145.5t70.5 118.5t78.5 94t78.5 69.5t64.5 46.5t42.5 24.5q14 8 51 26.5t54.5 28.5t48 30t60.5 44 -q36 28 58 72.5t30 125.5q129 -155 186 -193q44 -29 130 -68t129 -66q21 -13 39 -25t60.5 -46.5t76 -70.5t75 -95t69 -122t47 -148.5t19.5 -177.5z" /> - <glyph glyph-name="_400" unicode="&#xf1aa;" -d="M1070 463l-160 -160l-151 -152l-30 -30q-65 -64 -151.5 -87t-171.5 -2q-16 -70 -72 -115t-129 -45q-85 0 -145 60.5t-60 145.5q0 72 44.5 128t113.5 72q-22 86 1 173t88 152l12 12l151 -152l-11 -11q-37 -37 -37 -89t37 -90q37 -37 89 -37t89 37l30 30l151 152l161 160z -M729 1145l12 -12l-152 -152l-12 12q-37 37 -89 37t-89 -37t-37 -89.5t37 -89.5l29 -29l152 -152l160 -160l-151 -152l-161 160l-151 152l-30 30q-68 67 -90 159.5t5 179.5q-70 15 -115 71t-45 129q0 85 60 145.5t145 60.5q76 0 133.5 -49t69.5 -123q84 20 169.5 -3.5 -t149.5 -87.5zM1536 78q0 -85 -60 -145.5t-145 -60.5q-74 0 -131 47t-71 118q-86 -28 -179.5 -6t-161.5 90l-11 12l151 152l12 -12q37 -37 89 -37t89 37t37 89t-37 89l-30 30l-152 152l-160 160l152 152l160 -160l152 -152l29 -30q64 -64 87.5 -150.5t2.5 -171.5 -q76 -11 126.5 -68.5t50.5 -134.5zM1534 1202q0 -77 -51 -135t-127 -69q26 -85 3 -176.5t-90 -158.5l-12 -12l-151 152l12 12q37 37 37 89t-37 89t-89 37t-89 -37l-30 -30l-152 -152l-160 -160l-152 152l161 160l152 152l29 30q67 67 159 89.5t178 -3.5q11 75 68.5 126 -t135.5 51q85 0 145 -60.5t60 -145.5z" /> - <glyph glyph-name="f1ab" unicode="&#xf1ab;" -d="M654 458q-1 -3 -12.5 0.5t-31.5 11.5l-20 9q-44 20 -87 49q-7 5 -41 31.5t-38 28.5q-67 -103 -134 -181q-81 -95 -105 -110q-4 -2 -19.5 -4t-18.5 0q6 4 82 92q21 24 85.5 115t78.5 118q17 30 51 98.5t36 77.5q-8 1 -110 -33q-8 -2 -27.5 -7.5t-34.5 -9.5t-17 -5 -q-2 -2 -2 -10.5t-1 -9.5q-5 -10 -31 -15q-23 -7 -47 0q-18 4 -28 21q-4 6 -5 23q6 2 24.5 5t29.5 6q58 16 105 32q100 35 102 35q10 2 43 19.5t44 21.5q9 3 21.5 8t14.5 5.5t6 -0.5q2 -12 -1 -33q0 -2 -12.5 -27t-26.5 -53.5t-17 -33.5q-25 -50 -77 -131l64 -28 -q12 -6 74.5 -32t67.5 -28q4 -1 10.5 -25.5t4.5 -30.5zM449 944q3 -15 -4 -28q-12 -23 -50 -38q-30 -12 -60 -12q-26 3 -49 26q-14 15 -18 41l1 3q3 -3 19.5 -5t26.5 0t58 16q36 12 55 14q17 0 21 -17zM1147 815l63 -227l-139 42zM39 15l694 232v1032l-694 -233v-1031z -M1280 332l102 -31l-181 657l-100 31l-216 -536l102 -31l45 110l211 -65zM777 1294l573 -184v380zM1088 -29l158 -13l-54 -160l-40 66q-130 -83 -276 -108q-58 -12 -91 -12h-84q-79 0 -199.5 39t-183.5 85q-8 7 -8 16q0 8 5 13.5t13 5.5q4 0 18 -7.5t30.5 -16.5t20.5 -11 -q73 -37 159.5 -61.5t157.5 -24.5q95 0 167 14.5t157 50.5q15 7 30.5 15.5t34 19t28.5 16.5zM1536 1050v-1079l-774 246q-14 -6 -375 -127.5t-368 -121.5q-13 0 -18 13q0 1 -1 3v1078q3 9 4 10q5 6 20 11q107 36 149 50v384l558 -198q2 0 160.5 55t316 108.5t161.5 53.5 -q20 0 20 -21v-418z" /> - <glyph glyph-name="_402" unicode="&#xf1ac;" horiz-adv-x="1792" -d="M288 1152q66 0 113 -47t47 -113v-1088q0 -66 -47 -113t-113 -47h-128q-66 0 -113 47t-47 113v1088q0 66 47 113t113 47h128zM1664 989q58 -34 93 -93t35 -128v-768q0 -106 -75 -181t-181 -75h-864q-66 0 -113 47t-47 113v1536q0 40 28 68t68 28h672q40 0 88 -20t76 -48 -l152 -152q28 -28 48 -76t20 -88v-163zM928 0v128q0 14 -9 23t-23 9h-128q-14 0 -23 -9t-9 -23v-128q0 -14 9 -23t23 -9h128q14 0 23 9t9 23zM928 256v128q0 14 -9 23t-23 9h-128q-14 0 -23 -9t-9 -23v-128q0 -14 9 -23t23 -9h128q14 0 23 9t9 23zM928 512v128q0 14 -9 23 -t-23 9h-128q-14 0 -23 -9t-9 -23v-128q0 -14 9 -23t23 -9h128q14 0 23 9t9 23zM1184 0v128q0 14 -9 23t-23 9h-128q-14 0 -23 -9t-9 -23v-128q0 -14 9 -23t23 -9h128q14 0 23 9t9 23zM1184 256v128q0 14 -9 23t-23 9h-128q-14 0 -23 -9t-9 -23v-128q0 -14 9 -23t23 -9h128 -q14 0 23 9t9 23zM1184 512v128q0 14 -9 23t-23 9h-128q-14 0 -23 -9t-9 -23v-128q0 -14 9 -23t23 -9h128q14 0 23 9t9 23zM1440 0v128q0 14 -9 23t-23 9h-128q-14 0 -23 -9t-9 -23v-128q0 -14 9 -23t23 -9h128q14 0 23 9t9 23zM1440 256v128q0 14 -9 23t-23 9h-128 -q-14 0 -23 -9t-9 -23v-128q0 -14 9 -23t23 -9h128q14 0 23 9t9 23zM1440 512v128q0 14 -9 23t-23 9h-128q-14 0 -23 -9t-9 -23v-128q0 -14 9 -23t23 -9h128q14 0 23 9t9 23zM1536 896v256h-160q-40 0 -68 28t-28 68v160h-640v-512h896z" /> - <glyph glyph-name="_403" unicode="&#xf1ad;" -d="M1344 1536q26 0 45 -19t19 -45v-1664q0 -26 -19 -45t-45 -19h-1280q-26 0 -45 19t-19 45v1664q0 26 19 45t45 19h1280zM512 1248v-64q0 -14 9 -23t23 -9h64q14 0 23 9t9 23v64q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23zM512 992v-64q0 -14 9 -23t23 -9h64q14 0 23 9 -t9 23v64q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23zM512 736v-64q0 -14 9 -23t23 -9h64q14 0 23 9t9 23v64q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23zM512 480v-64q0 -14 9 -23t23 -9h64q14 0 23 9t9 23v64q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23zM384 160v64 -q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23v-64q0 -14 9 -23t23 -9h64q14 0 23 9t9 23zM384 416v64q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23v-64q0 -14 9 -23t23 -9h64q14 0 23 9t9 23zM384 672v64q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23v-64q0 -14 9 -23t23 -9h64 -q14 0 23 9t9 23zM384 928v64q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23v-64q0 -14 9 -23t23 -9h64q14 0 23 9t9 23zM384 1184v64q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23v-64q0 -14 9 -23t23 -9h64q14 0 23 9t9 23zM896 -96v192q0 14 -9 23t-23 9h-320q-14 0 -23 -9 -t-9 -23v-192q0 -14 9 -23t23 -9h320q14 0 23 9t9 23zM896 416v64q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23v-64q0 -14 9 -23t23 -9h64q14 0 23 9t9 23zM896 672v64q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23v-64q0 -14 9 -23t23 -9h64q14 0 23 9t9 23zM896 928v64 -q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23v-64q0 -14 9 -23t23 -9h64q14 0 23 9t9 23zM896 1184v64q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23v-64q0 -14 9 -23t23 -9h64q14 0 23 9t9 23zM1152 160v64q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23v-64q0 -14 9 -23t23 -9h64 -q14 0 23 9t9 23zM1152 416v64q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23v-64q0 -14 9 -23t23 -9h64q14 0 23 9t9 23zM1152 672v64q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23v-64q0 -14 9 -23t23 -9h64q14 0 23 9t9 23zM1152 928v64q0 14 -9 23t-23 9h-64q-14 0 -23 -9 -t-9 -23v-64q0 -14 9 -23t23 -9h64q14 0 23 9t9 23zM1152 1184v64q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23v-64q0 -14 9 -23t23 -9h64q14 0 23 9t9 23z" /> - <glyph glyph-name="_404" unicode="&#xf1ae;" horiz-adv-x="1280" -d="M1188 988l-292 -292v-824q0 -46 -33 -79t-79 -33t-79 33t-33 79v384h-64v-384q0 -46 -33 -79t-79 -33t-79 33t-33 79v824l-292 292q-28 28 -28 68t28 68q29 28 68.5 28t67.5 -28l228 -228h368l228 228q28 28 68 28t68 -28q28 -29 28 -68.5t-28 -67.5zM864 1152 -q0 -93 -65.5 -158.5t-158.5 -65.5t-158.5 65.5t-65.5 158.5t65.5 158.5t158.5 65.5t158.5 -65.5t65.5 -158.5z" /> - <glyph glyph-name="uniF1B1" unicode="&#xf1b0;" horiz-adv-x="1664" -d="M780 1064q0 -60 -19 -113.5t-63 -92.5t-105 -39q-76 0 -138 57.5t-92 135.5t-30 151q0 60 19 113.5t63 92.5t105 39q77 0 138.5 -57.5t91.5 -135t30 -151.5zM438 581q0 -80 -42 -139t-119 -59q-76 0 -141.5 55.5t-100.5 133.5t-35 152q0 80 42 139.5t119 59.5 -q76 0 141.5 -55.5t100.5 -134t35 -152.5zM832 608q118 0 255 -97.5t229 -237t92 -254.5q0 -46 -17 -76.5t-48.5 -45t-64.5 -20t-76 -5.5q-68 0 -187.5 45t-182.5 45q-66 0 -192.5 -44.5t-200.5 -44.5q-183 0 -183 146q0 86 56 191.5t139.5 192.5t187.5 146t193 59zM1071 819 -q-61 0 -105 39t-63 92.5t-19 113.5q0 74 30 151.5t91.5 135t138.5 57.5q61 0 105 -39t63 -92.5t19 -113.5q0 -73 -30 -151t-92 -135.5t-138 -57.5zM1503 923q77 0 119 -59.5t42 -139.5q0 -74 -35 -152t-100.5 -133.5t-141.5 -55.5q-77 0 -119 59t-42 139q0 74 35 152.5 -t100.5 134t141.5 55.5z" /> - <glyph glyph-name="_406" unicode="&#xf1b1;" horiz-adv-x="768" -d="M704 1008q0 -145 -57 -243.5t-152 -135.5l45 -821q2 -26 -16 -45t-44 -19h-192q-26 0 -44 19t-16 45l45 821q-95 37 -152 135.5t-57 243.5q0 128 42.5 249.5t117.5 200t160 78.5t160 -78.5t117.5 -200t42.5 -249.5z" /> - <glyph glyph-name="_407" unicode="&#xf1b2;" horiz-adv-x="1792" -d="M896 -93l640 349v636l-640 -233v-752zM832 772l698 254l-698 254l-698 -254zM1664 1024v-768q0 -35 -18 -65t-49 -47l-704 -384q-28 -16 -61 -16t-61 16l-704 384q-31 17 -49 47t-18 65v768q0 40 23 73t61 47l704 256q22 8 44 8t44 -8l704 -256q38 -14 61 -47t23 -73z -" /> - <glyph glyph-name="_408" unicode="&#xf1b3;" horiz-adv-x="2304" -d="M640 -96l384 192v314l-384 -164v-342zM576 358l404 173l-404 173l-404 -173zM1664 -96l384 192v314l-384 -164v-342zM1600 358l404 173l-404 173l-404 -173zM1152 651l384 165v266l-384 -164v-267zM1088 1030l441 189l-441 189l-441 -189zM2176 512v-416q0 -36 -19 -67 -t-52 -47l-448 -224q-25 -14 -57 -14t-57 14l-448 224q-4 2 -7 4q-2 -2 -7 -4l-448 -224q-25 -14 -57 -14t-57 14l-448 224q-33 16 -52 47t-19 67v416q0 38 21.5 70t56.5 48l434 186v400q0 38 21.5 70t56.5 48l448 192q23 10 50 10t50 -10l448 -192q35 -16 56.5 -48t21.5 -70 -v-400l434 -186q36 -16 57 -48t21 -70z" /> - <glyph glyph-name="_409" unicode="&#xf1b4;" horiz-adv-x="2048" -d="M1848 1197h-511v-124h511v124zM1596 771q-90 0 -146 -52.5t-62 -142.5h408q-18 195 -200 195zM1612 186q63 0 122 32t76 87h221q-100 -307 -427 -307q-214 0 -340.5 132t-126.5 347q0 208 130.5 345.5t336.5 137.5q138 0 240.5 -68t153 -179t50.5 -248q0 -17 -2 -47h-658 -q0 -111 57.5 -171.5t166.5 -60.5zM277 236h296q205 0 205 167q0 180 -199 180h-302v-347zM277 773h281q78 0 123.5 36.5t45.5 113.5q0 144 -190 144h-260v-294zM0 1282h594q87 0 155 -14t126.5 -47.5t90 -96.5t31.5 -154q0 -181 -172 -263q114 -32 172 -115t58 -204 -q0 -75 -24.5 -136.5t-66 -103.5t-98.5 -71t-121 -42t-134 -13h-611v1260z" /> - <glyph glyph-name="_410" unicode="&#xf1b5;" -d="M1248 1408q119 0 203.5 -84.5t84.5 -203.5v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960zM499 1041h-371v-787h382q117 0 197 57.5t80 170.5q0 158 -143 200q107 52 107 164q0 57 -19.5 96.5 -t-56.5 60.5t-79 29.5t-97 8.5zM477 723h-176v184h163q119 0 119 -90q0 -94 -106 -94zM486 388h-185v217h189q124 0 124 -113q0 -104 -128 -104zM1136 356q-68 0 -104 38t-36 107h411q1 10 1 30q0 132 -74.5 220.5t-203.5 88.5q-128 0 -210 -86t-82 -216q0 -135 79 -217 -t213 -82q205 0 267 191h-138q-11 -34 -47.5 -54t-75.5 -20zM1126 722q113 0 124 -122h-254q4 56 39 89t91 33zM964 988h319v-77h-319v77z" /> - <glyph glyph-name="_411" unicode="&#xf1b6;" horiz-adv-x="1792" -d="M1582 954q0 -101 -71.5 -172.5t-172.5 -71.5t-172.5 71.5t-71.5 172.5t71.5 172.5t172.5 71.5t172.5 -71.5t71.5 -172.5zM812 212q0 104 -73 177t-177 73q-27 0 -54 -6l104 -42q77 -31 109.5 -106.5t1.5 -151.5q-31 -77 -107 -109t-152 -1q-21 8 -62 24.5t-61 24.5 -q32 -60 91 -96.5t130 -36.5q104 0 177 73t73 177zM1642 953q0 126 -89.5 215.5t-215.5 89.5q-127 0 -216.5 -89.5t-89.5 -215.5q0 -127 89.5 -216t216.5 -89q126 0 215.5 89t89.5 216zM1792 953q0 -189 -133.5 -322t-321.5 -133l-437 -319q-12 -129 -109 -218t-229 -89 -q-121 0 -214 76t-118 192l-230 92v429l389 -157q79 48 173 48q13 0 35 -2l284 407q2 187 135.5 319t320.5 132q188 0 321.5 -133.5t133.5 -321.5z" /> - <glyph glyph-name="_412" unicode="&#xf1b7;" -d="M1242 889q0 80 -57 136.5t-137 56.5t-136.5 -57t-56.5 -136q0 -80 56.5 -136.5t136.5 -56.5t137 56.5t57 136.5zM632 301q0 -83 -58 -140.5t-140 -57.5q-56 0 -103 29t-72 77q52 -20 98 -40q60 -24 120 1.5t85 86.5q24 60 -1.5 120t-86.5 84l-82 33q22 5 42 5 -q82 0 140 -57.5t58 -140.5zM1536 1120v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v153l172 -69q20 -92 93.5 -152t168.5 -60q104 0 181 70t87 173l345 252q150 0 255.5 105.5t105.5 254.5q0 150 -105.5 255.5t-255.5 105.5 -q-148 0 -253 -104.5t-107 -252.5l-225 -322q-9 1 -28 1q-75 0 -137 -37l-297 119v468q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5zM1289 887q0 -100 -71 -170.5t-171 -70.5t-170.5 70.5t-70.5 170.5t70.5 171t170.5 71q101 0 171.5 -70.5t70.5 -171.5z -" /> - <glyph glyph-name="_413" unicode="&#xf1b8;" horiz-adv-x="1792" -d="M836 367l-15 -368l-2 -22l-420 29q-36 3 -67 31.5t-47 65.5q-11 27 -14.5 55t4 65t12 55t21.5 64t19 53q78 -12 509 -28zM449 953l180 -379l-147 92q-63 -72 -111.5 -144.5t-72.5 -125t-39.5 -94.5t-18.5 -63l-4 -21l-190 357q-17 26 -18 56t6 47l8 18q35 63 114 188 -l-140 86zM1680 436l-188 -359q-12 -29 -36.5 -46.5t-43.5 -20.5l-18 -4q-71 -7 -219 -12l8 -164l-230 367l211 362l7 -173q170 -16 283 -5t170 33zM895 1360q-47 -63 -265 -435l-317 187l-19 12l225 356q20 31 60 45t80 10q24 -2 48.5 -12t42 -21t41.5 -33t36 -34.5 -t36 -39.5t32 -35zM1550 1053l212 -363q18 -37 12.5 -76t-27.5 -74q-13 -20 -33 -37t-38 -28t-48.5 -22t-47 -16t-51.5 -14t-46 -12q-34 72 -265 436l313 195zM1407 1279l142 83l-220 -373l-419 20l151 86q-34 89 -75 166t-75.5 123.5t-64.5 80t-47 46.5l-17 13l405 -1 -q31 3 58 -10.5t39 -28.5l11 -15q39 -61 112 -190z" /> - <glyph glyph-name="_414" unicode="&#xf1b9;" horiz-adv-x="2048" -d="M480 448q0 66 -47 113t-113 47t-113 -47t-47 -113t47 -113t113 -47t113 47t47 113zM516 768h1016l-89 357q-2 8 -14 17.5t-21 9.5h-768q-9 0 -21 -9.5t-14 -17.5zM1888 448q0 66 -47 113t-113 47t-113 -47t-47 -113t47 -113t113 -47t113 47t47 113zM2048 544v-384 -q0 -14 -9 -23t-23 -9h-96v-128q0 -80 -56 -136t-136 -56t-136 56t-56 136v128h-1024v-128q0 -80 -56 -136t-136 -56t-136 56t-56 136v128h-96q-14 0 -23 9t-9 23v384q0 93 65.5 158.5t158.5 65.5h28l105 419q23 94 104 157.5t179 63.5h768q98 0 179 -63.5t104 -157.5 -l105 -419h28q93 0 158.5 -65.5t65.5 -158.5z" /> - <glyph glyph-name="_415" unicode="&#xf1ba;" horiz-adv-x="2048" -d="M1824 640q93 0 158.5 -65.5t65.5 -158.5v-384q0 -14 -9 -23t-23 -9h-96v-64q0 -80 -56 -136t-136 -56t-136 56t-56 136v64h-1024v-64q0 -80 -56 -136t-136 -56t-136 56t-56 136v64h-96q-14 0 -23 9t-9 23v384q0 93 65.5 158.5t158.5 65.5h28l105 419q23 94 104 157.5 -t179 63.5h128v224q0 14 9 23t23 9h448q14 0 23 -9t9 -23v-224h128q98 0 179 -63.5t104 -157.5l105 -419h28zM320 160q66 0 113 47t47 113t-47 113t-113 47t-113 -47t-47 -113t47 -113t113 -47zM516 640h1016l-89 357q-2 8 -14 17.5t-21 9.5h-768q-9 0 -21 -9.5t-14 -17.5z -M1728 160q66 0 113 47t47 113t-47 113t-113 47t-113 -47t-47 -113t47 -113t113 -47z" /> - <glyph glyph-name="_416" unicode="&#xf1bb;" -d="M1504 64q0 -26 -19 -45t-45 -19h-462q1 -17 6 -87.5t5 -108.5q0 -25 -18 -42.5t-43 -17.5h-320q-25 0 -43 17.5t-18 42.5q0 38 5 108.5t6 87.5h-462q-26 0 -45 19t-19 45t19 45l402 403h-229q-26 0 -45 19t-19 45t19 45l402 403h-197q-26 0 -45 19t-19 45t19 45l384 384 -q19 19 45 19t45 -19l384 -384q19 -19 19 -45t-19 -45t-45 -19h-197l402 -403q19 -19 19 -45t-19 -45t-45 -19h-229l402 -403q19 -19 19 -45z" /> - <glyph glyph-name="_417" unicode="&#xf1bc;" -d="M1127 326q0 32 -30 51q-193 115 -447 115q-133 0 -287 -34q-42 -9 -42 -52q0 -20 13.5 -34.5t35.5 -14.5q5 0 37 8q132 27 243 27q226 0 397 -103q19 -11 33 -11q19 0 33 13.5t14 34.5zM1223 541q0 40 -35 61q-237 141 -548 141q-153 0 -303 -42q-48 -13 -48 -64 -q0 -25 17.5 -42.5t42.5 -17.5q7 0 37 8q122 33 251 33q279 0 488 -124q24 -13 38 -13q25 0 42.5 17.5t17.5 42.5zM1331 789q0 47 -40 70q-126 73 -293 110.5t-343 37.5q-204 0 -364 -47q-23 -7 -38.5 -25.5t-15.5 -48.5q0 -31 20.5 -52t51.5 -21q11 0 40 8q133 37 307 37 -q159 0 309.5 -34t253.5 -95q21 -12 40 -12q29 0 50.5 20.5t21.5 51.5zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" /> - <glyph glyph-name="_418" unicode="&#xf1bd;" horiz-adv-x="1024" -d="M1024 1233l-303 -582l24 -31h279v-415h-507l-44 -30l-142 -273l-30 -30h-301v303l303 583l-24 30h-279v415h507l44 30l142 273l30 30h301v-303z" /> - <glyph glyph-name="_419" unicode="&#xf1be;" horiz-adv-x="2304" -d="M784 164l16 241l-16 523q-1 10 -7.5 17t-16.5 7q-9 0 -16 -7t-7 -17l-14 -523l14 -241q1 -10 7.5 -16.5t15.5 -6.5q22 0 24 23zM1080 193l11 211l-12 586q0 16 -13 24q-8 5 -16 5t-16 -5q-13 -8 -13 -24l-1 -6l-10 -579q0 -1 11 -236v-1q0 -10 6 -17q9 -11 23 -11 -q11 0 20 9q9 7 9 20zM35 533l20 -128l-20 -126q-2 -9 -9 -9t-9 9l-17 126l17 128q2 9 9 9t9 -9zM121 612l26 -207l-26 -203q-2 -9 -10 -9q-9 0 -9 10l-23 202l23 207q0 9 9 9q8 0 10 -9zM401 159zM213 650l25 -245l-25 -237q0 -11 -11 -11q-10 0 -12 11l-21 237l21 245 -q2 12 12 12q11 0 11 -12zM307 657l23 -252l-23 -244q-2 -13 -14 -13q-13 0 -13 13l-21 244l21 252q0 13 13 13q12 0 14 -13zM401 639l21 -234l-21 -246q-2 -16 -16 -16q-6 0 -10.5 4.5t-4.5 11.5l-20 246l20 234q0 6 4.5 10.5t10.5 4.5q14 0 16 -15zM784 164zM495 785 -l21 -380l-21 -246q0 -7 -5 -12.5t-12 -5.5q-16 0 -18 18l-18 246l18 380q2 18 18 18q7 0 12 -5.5t5 -12.5zM589 871l19 -468l-19 -244q0 -8 -5.5 -13.5t-13.5 -5.5q-18 0 -20 19l-16 244l16 468q2 19 20 19q8 0 13.5 -5.5t5.5 -13.5zM687 911l18 -506l-18 -242 -q-2 -21 -22 -21q-19 0 -21 21l-16 242l16 506q0 9 6.5 15.5t14.5 6.5q9 0 15 -6.5t7 -15.5zM1079 169v0v0v0zM881 915l15 -510l-15 -239q0 -10 -7.5 -17.5t-17.5 -7.5t-17 7t-8 18l-14 239l14 510q0 11 7.5 18t17.5 7t17.5 -7t7.5 -18zM980 896l14 -492l-14 -236 -q0 -11 -8 -19t-19 -8t-19 8t-9 19l-12 236l12 492q1 12 9 20t19 8t18.5 -8t8.5 -20zM1192 404l-14 -231v0q0 -13 -9 -22t-22 -9t-22 9t-10 22l-6 114l-6 117l12 636v3q2 15 12 24q9 7 20 7q8 0 15 -5q14 -8 16 -26zM2304 423q0 -117 -83 -199.5t-200 -82.5h-786 -q-13 2 -22 11t-9 22v899q0 23 28 33q85 34 181 34q195 0 338 -131.5t160 -323.5q53 22 110 22q117 0 200 -83t83 -201z" /> - <glyph glyph-name="uniF1C0" unicode="&#xf1c0;" -d="M768 768q237 0 443 43t325 127v-170q0 -69 -103 -128t-280 -93.5t-385 -34.5t-385 34.5t-280 93.5t-103 128v170q119 -84 325 -127t443 -43zM768 0q237 0 443 43t325 127v-170q0 -69 -103 -128t-280 -93.5t-385 -34.5t-385 34.5t-280 93.5t-103 128v170q119 -84 325 -127 -t443 -43zM768 384q237 0 443 43t325 127v-170q0 -69 -103 -128t-280 -93.5t-385 -34.5t-385 34.5t-280 93.5t-103 128v170q119 -84 325 -127t443 -43zM768 1536q208 0 385 -34.5t280 -93.5t103 -128v-128q0 -69 -103 -128t-280 -93.5t-385 -34.5t-385 34.5t-280 93.5 -t-103 128v128q0 69 103 128t280 93.5t385 34.5z" /> - <glyph glyph-name="uniF1C1" unicode="&#xf1c1;" -d="M1468 1156q28 -28 48 -76t20 -88v-1152q0 -40 -28 -68t-68 -28h-1344q-40 0 -68 28t-28 68v1600q0 40 28 68t68 28h896q40 0 88 -20t76 -48zM1024 1400v-376h376q-10 29 -22 41l-313 313q-12 12 -41 22zM1408 -128v1024h-416q-40 0 -68 28t-28 68v416h-768v-1536h1280z -M894 465q33 -26 84 -56q59 7 117 7q147 0 177 -49q16 -22 2 -52q0 -1 -1 -2l-2 -2v-1q-6 -38 -71 -38q-48 0 -115 20t-130 53q-221 -24 -392 -83q-153 -262 -242 -262q-15 0 -28 7l-24 12q-1 1 -6 5q-10 10 -6 36q9 40 56 91.5t132 96.5q14 9 23 -6q2 -2 2 -4q52 85 107 197 -q68 136 104 262q-24 82 -30.5 159.5t6.5 127.5q11 40 42 40h21h1q23 0 35 -15q18 -21 9 -68q-2 -6 -4 -8q1 -3 1 -8v-30q-2 -123 -14 -192q55 -164 146 -238zM318 54q52 24 137 158q-51 -40 -87.5 -84t-49.5 -74zM716 974q-15 -42 -2 -132q1 7 7 44q0 3 7 43q1 4 4 8 -q-1 1 -1 2q-1 2 -1 3q-1 22 -13 36q0 -1 -1 -2v-2zM592 313q135 54 284 81q-2 1 -13 9.5t-16 13.5q-76 67 -127 176q-27 -86 -83 -197q-30 -56 -45 -83zM1238 329q-24 24 -140 24q76 -28 124 -28q14 0 18 1q0 1 -2 3z" /> - <glyph glyph-name="_422" unicode="&#xf1c2;" -d="M1468 1156q28 -28 48 -76t20 -88v-1152q0 -40 -28 -68t-68 -28h-1344q-40 0 -68 28t-28 68v1600q0 40 28 68t68 28h896q40 0 88 -20t76 -48zM1024 1400v-376h376q-10 29 -22 41l-313 313q-12 12 -41 22zM1408 -128v1024h-416q-40 0 -68 28t-28 68v416h-768v-1536h1280z -M233 768v-107h70l164 -661h159l128 485q7 20 10 46q2 16 2 24h4l3 -24q1 -3 3.5 -20t5.5 -26l128 -485h159l164 661h70v107h-300v-107h90l-99 -438q-5 -20 -7 -46l-2 -21h-4q0 3 -0.5 6.5t-1.5 8t-1 6.5q-1 5 -4 21t-5 25l-144 545h-114l-144 -545q-2 -9 -4.5 -24.5 -t-3.5 -21.5l-4 -21h-4l-2 21q-2 26 -7 46l-99 438h90v107h-300z" /> - <glyph glyph-name="_423" unicode="&#xf1c3;" -d="M1468 1156q28 -28 48 -76t20 -88v-1152q0 -40 -28 -68t-68 -28h-1344q-40 0 -68 28t-28 68v1600q0 40 28 68t68 28h896q40 0 88 -20t76 -48zM1024 1400v-376h376q-10 29 -22 41l-313 313q-12 12 -41 22zM1408 -128v1024h-416q-40 0 -68 28t-28 68v416h-768v-1536h1280z -M429 106v-106h281v106h-75l103 161q5 7 10 16.5t7.5 13.5t3.5 4h2q1 -4 5 -10q2 -4 4.5 -7.5t6 -8t6.5 -8.5l107 -161h-76v-106h291v106h-68l-192 273l195 282h67v107h-279v-107h74l-103 -159q-4 -7 -10 -16.5t-9 -13.5l-2 -3h-2q-1 4 -5 10q-6 11 -17 23l-106 159h76v107 -h-290v-107h68l189 -272l-194 -283h-68z" /> - <glyph glyph-name="_424" unicode="&#xf1c4;" -d="M1468 1156q28 -28 48 -76t20 -88v-1152q0 -40 -28 -68t-68 -28h-1344q-40 0 -68 28t-28 68v1600q0 40 28 68t68 28h896q40 0 88 -20t76 -48zM1024 1400v-376h376q-10 29 -22 41l-313 313q-12 12 -41 22zM1408 -128v1024h-416q-40 0 -68 28t-28 68v416h-768v-1536h1280z -M416 106v-106h327v106h-93v167h137q76 0 118 15q67 23 106.5 87t39.5 146q0 81 -37 141t-100 87q-48 19 -130 19h-368v-107h92v-555h-92zM769 386h-119v268h120q52 0 83 -18q56 -33 56 -115q0 -89 -62 -120q-31 -15 -78 -15z" /> - <glyph glyph-name="_425" unicode="&#xf1c5;" -d="M1468 1156q28 -28 48 -76t20 -88v-1152q0 -40 -28 -68t-68 -28h-1344q-40 0 -68 28t-28 68v1600q0 40 28 68t68 28h896q40 0 88 -20t76 -48zM1024 1400v-376h376q-10 29 -22 41l-313 313q-12 12 -41 22zM1408 -128v1024h-416q-40 0 -68 28t-28 68v416h-768v-1536h1280z -M1280 320v-320h-1024v192l192 192l128 -128l384 384zM448 512q-80 0 -136 56t-56 136t56 136t136 56t136 -56t56 -136t-56 -136t-136 -56z" /> - <glyph glyph-name="_426" unicode="&#xf1c6;" -d="M640 1152v128h-128v-128h128zM768 1024v128h-128v-128h128zM640 896v128h-128v-128h128zM768 768v128h-128v-128h128zM1468 1156q28 -28 48 -76t20 -88v-1152q0 -40 -28 -68t-68 -28h-1344q-40 0 -68 28t-28 68v1600q0 40 28 68t68 28h896q40 0 88 -20t76 -48zM1024 1400 -v-376h376q-10 29 -22 41l-313 313q-12 12 -41 22zM1408 -128v1024h-416q-40 0 -68 28t-28 68v416h-128v-128h-128v128h-512v-1536h1280zM781 593l107 -349q8 -27 8 -52q0 -83 -72.5 -137.5t-183.5 -54.5t-183.5 54.5t-72.5 137.5q0 25 8 52q21 63 120 396v128h128v-128h79 -q22 0 39 -13t23 -34zM640 128q53 0 90.5 19t37.5 45t-37.5 45t-90.5 19t-90.5 -19t-37.5 -45t37.5 -45t90.5 -19z" /> - <glyph glyph-name="_427" unicode="&#xf1c7;" -d="M1468 1156q28 -28 48 -76t20 -88v-1152q0 -40 -28 -68t-68 -28h-1344q-40 0 -68 28t-28 68v1600q0 40 28 68t68 28h896q40 0 88 -20t76 -48zM1024 1400v-376h376q-10 29 -22 41l-313 313q-12 12 -41 22zM1408 -128v1024h-416q-40 0 -68 28t-28 68v416h-768v-1536h1280z -M620 686q20 -8 20 -30v-544q0 -22 -20 -30q-8 -2 -12 -2q-12 0 -23 9l-166 167h-131q-14 0 -23 9t-9 23v192q0 14 9 23t23 9h131l166 167q16 15 35 7zM1037 -3q31 0 50 24q129 159 129 363t-129 363q-16 21 -43 24t-47 -14q-21 -17 -23.5 -43.5t14.5 -47.5 -q100 -123 100 -282t-100 -282q-17 -21 -14.5 -47.5t23.5 -42.5q18 -15 40 -15zM826 145q27 0 47 20q87 93 87 219t-87 219q-18 19 -45 20t-46 -17t-20 -44.5t18 -46.5q52 -57 52 -131t-52 -131q-19 -20 -18 -46.5t20 -44.5q20 -17 44 -17z" /> - <glyph glyph-name="_428" unicode="&#xf1c8;" -d="M1468 1156q28 -28 48 -76t20 -88v-1152q0 -40 -28 -68t-68 -28h-1344q-40 0 -68 28t-28 68v1600q0 40 28 68t68 28h896q40 0 88 -20t76 -48zM1024 1400v-376h376q-10 29 -22 41l-313 313q-12 12 -41 22zM1408 -128v1024h-416q-40 0 -68 28t-28 68v416h-768v-1536h1280z -M768 768q52 0 90 -38t38 -90v-384q0 -52 -38 -90t-90 -38h-384q-52 0 -90 38t-38 90v384q0 52 38 90t90 38h384zM1260 766q20 -8 20 -30v-576q0 -22 -20 -30q-8 -2 -12 -2q-14 0 -23 9l-265 266v90l265 266q9 9 23 9q4 0 12 -2z" /> - <glyph glyph-name="_429" unicode="&#xf1c9;" -d="M1468 1156q28 -28 48 -76t20 -88v-1152q0 -40 -28 -68t-68 -28h-1344q-40 0 -68 28t-28 68v1600q0 40 28 68t68 28h896q40 0 88 -20t76 -48zM1024 1400v-376h376q-10 29 -22 41l-313 313q-12 12 -41 22zM1408 -128v1024h-416q-40 0 -68 28t-28 68v416h-768v-1536h1280z -M480 768q8 11 21 12.5t24 -6.5l51 -38q11 -8 12.5 -21t-6.5 -24l-182 -243l182 -243q8 -11 6.5 -24t-12.5 -21l-51 -38q-11 -8 -24 -6.5t-21 12.5l-226 301q-14 19 0 38zM1282 467q14 -19 0 -38l-226 -301q-8 -11 -21 -12.5t-24 6.5l-51 38q-11 8 -12.5 21t6.5 24l182 243 -l-182 243q-8 11 -6.5 24t12.5 21l51 38q11 8 24 6.5t21 -12.5zM662 6q-13 2 -20.5 13t-5.5 24l138 831q2 13 13 20.5t24 5.5l63 -10q13 -2 20.5 -13t5.5 -24l-138 -831q-2 -13 -13 -20.5t-24 -5.5z" /> - <glyph glyph-name="_430" unicode="&#xf1ca;" -d="M1497 709v-198q-101 -23 -198 -23q-65 -136 -165.5 -271t-181.5 -215.5t-128 -106.5q-80 -45 -162 3q-28 17 -60.5 43.5t-85 83.5t-102.5 128.5t-107.5 184t-105.5 244t-91.5 314.5t-70.5 390h283q26 -218 70 -398.5t104.5 -317t121.5 -235.5t140 -195q169 169 287 406 -q-142 72 -223 220t-81 333q0 192 104 314.5t284 122.5q178 0 273 -105.5t95 -297.5q0 -159 -58 -286q-7 -1 -19.5 -3t-46 -2t-63 6t-62 25.5t-50.5 51.5q31 103 31 184q0 87 -29 132t-79 45q-53 0 -85 -49.5t-32 -140.5q0 -186 105 -293.5t267 -107.5q62 0 121 14z" /> - <glyph glyph-name="_431" unicode="&#xf1cb;" horiz-adv-x="1792" -d="M216 367l603 -402v359l-334 223zM154 511l193 129l-193 129v-258zM973 -35l603 402l-269 180l-334 -223v-359zM896 458l272 182l-272 182l-272 -182zM485 733l334 223v359l-603 -402zM1445 640l193 -129v258zM1307 733l269 180l-603 402v-359zM1792 913v-546 -q0 -41 -34 -64l-819 -546q-21 -13 -43 -13t-43 13l-819 546q-34 23 -34 64v546q0 41 34 64l819 546q21 13 43 13t43 -13l819 -546q34 -23 34 -64z" /> - <glyph glyph-name="_432" unicode="&#xf1cc;" horiz-adv-x="2048" -d="M1800 764q111 -46 179.5 -145.5t68.5 -221.5q0 -164 -118 -280.5t-285 -116.5q-4 0 -11.5 0.5t-10.5 0.5h-1209h-1h-2h-5q-170 10 -288 125.5t-118 280.5q0 110 55 203t147 147q-12 39 -12 82q0 115 82 196t199 81q95 0 172 -58q75 154 222.5 248t326.5 94 -q166 0 306 -80.5t221.5 -218.5t81.5 -301q0 -6 -0.5 -18t-0.5 -18zM468 498q0 -122 84 -193t208 -71q137 0 240 99q-16 20 -47.5 56.5t-43.5 50.5q-67 -65 -144 -65q-55 0 -93.5 33.5t-38.5 87.5q0 53 38.5 87t91.5 34q44 0 84.5 -21t73 -55t65 -75t69 -82t77 -75t97 -55 -t121.5 -21q121 0 204.5 71.5t83.5 190.5q0 121 -84 192t-207 71q-143 0 -241 -97l93 -108q66 64 142 64q52 0 92 -33t40 -84q0 -57 -37 -91.5t-94 -34.5q-43 0 -82.5 21t-72 55t-65.5 75t-69.5 82t-77.5 75t-96.5 55t-118.5 21q-122 0 -207 -70.5t-85 -189.5z" /> - <glyph glyph-name="_433" unicode="&#xf1cd;" horiz-adv-x="1792" -d="M896 1536q182 0 348 -71t286 -191t191 -286t71 -348t-71 -348t-191 -286t-286 -191t-348 -71t-348 71t-286 191t-191 286t-71 348t71 348t191 286t286 191t348 71zM896 1408q-190 0 -361 -90l194 -194q82 28 167 28t167 -28l194 194q-171 90 -361 90zM218 279l194 194 -q-28 82 -28 167t28 167l-194 194q-90 -171 -90 -361t90 -361zM896 -128q190 0 361 90l-194 194q-82 -28 -167 -28t-167 28l-194 -194q171 -90 361 -90zM896 256q159 0 271.5 112.5t112.5 271.5t-112.5 271.5t-271.5 112.5t-271.5 -112.5t-112.5 -271.5t112.5 -271.5 -t271.5 -112.5zM1380 473l194 -194q90 171 90 361t-90 361l-194 -194q28 -82 28 -167t-28 -167z" /> - <glyph glyph-name="_434" unicode="&#xf1ce;" horiz-adv-x="1792" -d="M1760 640q0 -176 -68.5 -336t-184 -275.5t-275.5 -184t-336 -68.5t-336 68.5t-275.5 184t-184 275.5t-68.5 336q0 213 97 398.5t265 305.5t374 151v-228q-221 -45 -366.5 -221t-145.5 -406q0 -130 51 -248.5t136.5 -204t204 -136.5t248.5 -51t248.5 51t204 136.5 -t136.5 204t51 248.5q0 230 -145.5 406t-366.5 221v228q206 -31 374 -151t265 -305.5t97 -398.5z" /> - <glyph glyph-name="uniF1D0" unicode="&#xf1d0;" horiz-adv-x="1792" -d="M19 662q8 217 116 406t305 318h5q0 -1 -1 -3q-8 -8 -28 -33.5t-52 -76.5t-60 -110.5t-44.5 -135.5t-14 -150.5t39 -157.5t108.5 -154q50 -50 102 -69.5t90.5 -11.5t69.5 23.5t47 32.5l16 16q39 51 53 116.5t6.5 122.5t-21 107t-26.5 80l-14 29q-10 25 -30.5 49.5t-43 41 -t-43.5 29.5t-35 19l-13 6l104 115q39 -17 78 -52t59 -61l19 -27q1 48 -18.5 103.5t-40.5 87.5l-20 31l161 183l160 -181q-33 -46 -52.5 -102.5t-22.5 -90.5l-4 -33q22 37 61.5 72.5t67.5 52.5l28 17l103 -115q-44 -14 -85 -50t-60 -65l-19 -29q-31 -56 -48 -133.5t-7 -170 -t57 -156.5q33 -45 77.5 -60.5t85 -5.5t76 26.5t57.5 33.5l21 16q60 53 96.5 115t48.5 121.5t10 121.5t-18 118t-37 107.5t-45.5 93t-45 72t-34.5 47.5l-13 17q-14 13 -7 13l10 -3q40 -29 62.5 -46t62 -50t64 -58t58.5 -65t55.5 -77t45.5 -88t38 -103t23.5 -117t10.5 -136 -q3 -259 -108 -465t-312 -321t-456 -115q-185 0 -351 74t-283.5 198t-184 293t-60.5 353z" /> - <glyph glyph-name="uniF1D1" unicode="&#xf1d1;" horiz-adv-x="1792" -d="M874 -102v-66q-208 6 -385 109.5t-283 275.5l58 34q29 -49 73 -99l65 57q148 -168 368 -212l-17 -86q65 -12 121 -13zM276 428l-83 -28q22 -60 49 -112l-57 -33q-98 180 -98 385t98 385l57 -33q-30 -56 -49 -112l82 -28q-35 -100 -35 -212q0 -109 36 -212zM1528 251 -l58 -34q-106 -172 -283 -275.5t-385 -109.5v66q56 1 121 13l-17 86q220 44 368 212l65 -57q44 50 73 99zM1377 805l-233 -80q14 -42 14 -85t-14 -85l232 -80q-31 -92 -98 -169l-185 162q-57 -67 -147 -85l48 -241q-52 -10 -98 -10t-98 10l48 241q-90 18 -147 85l-185 -162 -q-67 77 -98 169l232 80q-14 42 -14 85t14 85l-233 80q33 93 99 169l185 -162q59 68 147 86l-48 240q44 10 98 10t98 -10l-48 -240q88 -18 147 -86l185 162q66 -76 99 -169zM874 1448v-66q-65 -2 -121 -13l17 -86q-220 -42 -368 -211l-65 56q-38 -42 -73 -98l-57 33 -q106 172 282 275.5t385 109.5zM1705 640q0 -205 -98 -385l-57 33q27 52 49 112l-83 28q36 103 36 212q0 112 -35 212l82 28q-19 56 -49 112l57 33q98 -180 98 -385zM1585 1063l-57 -33q-35 56 -73 98l-65 -56q-148 169 -368 211l17 86q-56 11 -121 13v66q209 -6 385 -109.5 -t282 -275.5zM1748 640q0 173 -67.5 331t-181.5 272t-272 181.5t-331 67.5t-331 -67.5t-272 -181.5t-181.5 -272t-67.5 -331t67.5 -331t181.5 -272t272 -181.5t331 -67.5t331 67.5t272 181.5t181.5 272t67.5 331zM1792 640q0 -182 -71 -348t-191 -286t-286 -191t-348 -71 -t-348 71t-286 191t-191 286t-71 348t71 348t191 286t286 191t348 71t348 -71t286 -191t191 -286t71 -348z" /> - <glyph glyph-name="uniF1D2" unicode="&#xf1d2;" -d="M582 228q0 -66 -93 -66q-107 0 -107 63q0 64 98 64q102 0 102 -61zM546 694q0 -85 -74 -85q-77 0 -77 84q0 90 77 90q36 0 55 -25.5t19 -63.5zM712 769v125q-78 -29 -135 -29q-50 29 -110 29q-86 0 -145 -57t-59 -143q0 -50 29.5 -102t73.5 -67v-3q-38 -17 -38 -85 -q0 -53 41 -77v-3q-113 -37 -113 -139q0 -45 20 -78.5t54 -51t72 -25.5t81 -8q224 0 224 188q0 67 -48 99t-126 46q-27 5 -51.5 20.5t-24.5 39.5q0 44 49 52q77 15 122 70t45 134q0 24 -10 52q37 9 49 13zM771 350h137q-2 27 -2 82v387q0 46 2 69h-137q3 -23 3 -71v-392 -q0 -50 -3 -75zM1280 366v121q-30 -21 -68 -21q-53 0 -53 82v225h52q9 0 26.5 -1t26.5 -1v117h-105q0 82 3 102h-140q4 -24 4 -55v-47h-60v-117q36 3 37 3q3 0 11 -0.5t12 -0.5v-2h-2v-217q0 -37 2.5 -64t11.5 -56.5t24.5 -48.5t43.5 -31t66 -12q64 0 108 24zM924 1072 -q0 36 -24 63.5t-60 27.5t-60.5 -27t-24.5 -64q0 -36 25 -62.5t60 -26.5t59.5 27t24.5 62zM1536 1120v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" /> - <glyph glyph-name="_438" unicode="&#xf1d3;" horiz-adv-x="1792" -d="M595 22q0 100 -165 100q-158 0 -158 -104q0 -101 172 -101q151 0 151 105zM536 777q0 61 -30 102t-89 41q-124 0 -124 -145q0 -135 124 -135q119 0 119 137zM805 1101v-202q-36 -12 -79 -22q16 -43 16 -84q0 -127 -73 -216.5t-197 -112.5q-40 -8 -59.5 -27t-19.5 -58 -q0 -31 22.5 -51.5t58 -32t78.5 -22t86 -25.5t78.5 -37.5t58 -64t22.5 -98.5q0 -304 -363 -304q-69 0 -130 12.5t-116 41t-87.5 82t-32.5 127.5q0 165 182 225v4q-67 41 -67 126q0 109 63 137v4q-72 24 -119.5 108.5t-47.5 165.5q0 139 95 231.5t235 92.5q96 0 178 -47 -q98 0 218 47zM1123 220h-222q4 45 4 134v609q0 94 -4 128h222q-4 -33 -4 -124v-613q0 -89 4 -134zM1724 442v-196q-71 -39 -174 -39q-62 0 -107 20t-70 50t-39.5 78t-18.5 92t-4 103v351h2v4q-7 0 -19 1t-18 1q-21 0 -59 -6v190h96v76q0 54 -6 89h227q-6 -41 -6 -165h171 -v-190q-15 0 -43.5 2t-42.5 2h-85v-365q0 -131 87 -131q61 0 109 33zM1148 1389q0 -58 -39 -101.5t-96 -43.5q-58 0 -98 43.5t-40 101.5q0 59 39.5 103t98.5 44q58 0 96.5 -44.5t38.5 -102.5z" /> - <glyph glyph-name="_439" unicode="&#xf1d4;" -d="M809 532l266 499h-112l-157 -312q-24 -48 -44 -92l-42 92l-155 312h-120l263 -493v-324h101v318zM1536 1120v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" /> - <glyph glyph-name="uniF1D5" unicode="&#xf1d5;" horiz-adv-x="1280" -d="M842 964q0 -80 -57 -136.5t-136 -56.5q-60 0 -111 35q-62 -67 -115 -146q-247 -371 -202 -859q1 -22 -12.5 -38.5t-34.5 -18.5h-5q-20 0 -35 13.5t-17 33.5q-14 126 -3.5 247.5t29.5 217t54 186t69 155.5t74 125q61 90 132 165q-16 35 -16 77q0 80 56.5 136.5t136.5 56.5 -t136.5 -56.5t56.5 -136.5zM1223 953q0 -158 -78 -292t-212.5 -212t-292.5 -78q-64 0 -131 14q-21 5 -32.5 23.5t-6.5 39.5q5 20 23 31.5t39 7.5q51 -13 108 -13q97 0 186 38t153 102t102 153t38 186t-38 186t-102 153t-153 102t-186 38t-186 -38t-153 -102t-102 -153 -t-38 -186q0 -114 52 -218q10 -20 3.5 -40t-25.5 -30t-39.5 -3t-30.5 26q-64 123 -64 265q0 119 46.5 227t124.5 186t186 124t226 46q158 0 292.5 -78t212.5 -212.5t78 -292.5z" /> - <glyph glyph-name="uniF1D6" unicode="&#xf1d6;" horiz-adv-x="1792" -d="M270 730q-8 19 -8 52q0 20 11 49t24 45q-1 22 7.5 53t22.5 43q0 139 92.5 288.5t217.5 209.5q139 66 324 66q133 0 266 -55q49 -21 90 -48t71 -56t55 -68t42 -74t32.5 -84.5t25.5 -89.5t22 -98l1 -5q55 -83 55 -150q0 -14 -9 -40t-9 -38q0 -1 1.5 -3.5t3.5 -5t2 -3.5 -q77 -114 120.5 -214.5t43.5 -208.5q0 -43 -19.5 -100t-55.5 -57q-9 0 -19.5 7.5t-19 17.5t-19 26t-16 26.5t-13.5 26t-9 17.5q-1 1 -3 1l-5 -4q-59 -154 -132 -223q20 -20 61.5 -38.5t69 -41.5t35.5 -65q-2 -4 -4 -16t-7 -18q-64 -97 -302 -97q-53 0 -110.5 9t-98 20 -t-104.5 30q-15 5 -23 7q-14 4 -46 4.5t-40 1.5q-41 -45 -127.5 -65t-168.5 -20q-35 0 -69 1.5t-93 9t-101 20.5t-74.5 40t-32.5 64q0 40 10 59.5t41 48.5q11 2 40.5 13t49.5 12q4 0 14 2q2 2 2 4l-2 3q-48 11 -108 105.5t-73 156.5l-5 3q-4 0 -12 -20q-18 -41 -54.5 -74.5 -t-77.5 -37.5h-1q-4 0 -6 4.5t-5 5.5q-23 54 -23 100q0 275 252 466z" /> - <glyph glyph-name="uniF1D7" unicode="&#xf1d7;" horiz-adv-x="2048" -d="M580 1075q0 41 -25 66t-66 25q-43 0 -76 -25.5t-33 -65.5q0 -39 33 -64.5t76 -25.5q41 0 66 24.5t25 65.5zM1323 568q0 28 -25.5 50t-65.5 22q-27 0 -49.5 -22.5t-22.5 -49.5q0 -28 22.5 -50.5t49.5 -22.5q40 0 65.5 22t25.5 51zM1087 1075q0 41 -24.5 66t-65.5 25 -q-43 0 -76 -25.5t-33 -65.5q0 -39 33 -64.5t76 -25.5q41 0 65.5 24.5t24.5 65.5zM1722 568q0 28 -26 50t-65 22q-27 0 -49.5 -22.5t-22.5 -49.5q0 -28 22.5 -50.5t49.5 -22.5q39 0 65 22t26 51zM1456 965q-31 4 -70 4q-169 0 -311 -77t-223.5 -208.5t-81.5 -287.5 -q0 -78 23 -152q-35 -3 -68 -3q-26 0 -50 1.5t-55 6.5t-44.5 7t-54.5 10.5t-50 10.5l-253 -127l72 218q-290 203 -290 490q0 169 97.5 311t264 223.5t363.5 81.5q176 0 332.5 -66t262 -182.5t136.5 -260.5zM2048 404q0 -117 -68.5 -223.5t-185.5 -193.5l55 -181l-199 109 -q-150 -37 -218 -37q-169 0 -311 70.5t-223.5 191.5t-81.5 264t81.5 264t223.5 191.5t311 70.5q161 0 303 -70.5t227.5 -192t85.5 -263.5z" /> - <glyph glyph-name="_443" unicode="&#xf1d8;" horiz-adv-x="1792" -d="M1764 1525q33 -24 27 -64l-256 -1536q-5 -29 -32 -45q-14 -8 -31 -8q-11 0 -24 5l-453 185l-242 -295q-18 -23 -49 -23q-13 0 -22 4q-19 7 -30.5 23.5t-11.5 36.5v349l864 1059l-1069 -925l-395 162q-37 14 -40 55q-2 40 32 59l1664 960q15 9 32 9q20 0 36 -11z" /> - <glyph glyph-name="_444" unicode="&#xf1d9;" horiz-adv-x="1792" -d="M1764 1525q33 -24 27 -64l-256 -1536q-5 -29 -32 -45q-14 -8 -31 -8q-11 0 -24 5l-527 215l-298 -327q-18 -21 -47 -21q-14 0 -23 4q-19 7 -30 23.5t-11 36.5v452l-472 193q-37 14 -40 55q-3 39 32 59l1664 960q35 21 68 -2zM1422 26l221 1323l-1434 -827l336 -137 -l863 639l-478 -797z" /> - <glyph glyph-name="_445" unicode="&#xf1da;" -d="M1536 640q0 -156 -61 -298t-164 -245t-245 -164t-298 -61q-172 0 -327 72.5t-264 204.5q-7 10 -6.5 22.5t8.5 20.5l137 138q10 9 25 9q16 -2 23 -12q73 -95 179 -147t225 -52q104 0 198.5 40.5t163.5 109.5t109.5 163.5t40.5 198.5t-40.5 198.5t-109.5 163.5 -t-163.5 109.5t-198.5 40.5q-98 0 -188 -35.5t-160 -101.5l137 -138q31 -30 14 -69q-17 -40 -59 -40h-448q-26 0 -45 19t-19 45v448q0 42 40 59q39 17 69 -14l130 -129q107 101 244.5 156.5t284.5 55.5q156 0 298 -61t245 -164t164 -245t61 -298zM896 928v-448q0 -14 -9 -23 -t-23 -9h-320q-14 0 -23 9t-9 23v64q0 14 9 23t23 9h224v352q0 14 9 23t23 9h64q14 0 23 -9t9 -23z" /> - <glyph glyph-name="_446" unicode="&#xf1db;" -d="M768 1280q-130 0 -248.5 -51t-204 -136.5t-136.5 -204t-51 -248.5t51 -248.5t136.5 -204t204 -136.5t248.5 -51t248.5 51t204 136.5t136.5 204t51 248.5t-51 248.5t-136.5 204t-204 136.5t-248.5 51zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103 -t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" /> - <glyph glyph-name="_447" unicode="&#xf1dc;" horiz-adv-x="1792" -d="M1682 -128q-44 0 -132.5 3.5t-133.5 3.5q-44 0 -132 -3.5t-132 -3.5q-24 0 -37 20.5t-13 45.5q0 31 17 46t39 17t51 7t45 15q33 21 33 140l-1 391q0 21 -1 31q-13 4 -50 4h-675q-38 0 -51 -4q-1 -10 -1 -31l-1 -371q0 -142 37 -164q16 -10 48 -13t57 -3.5t45 -15 -t20 -45.5q0 -26 -12.5 -48t-36.5 -22q-47 0 -139.5 3.5t-138.5 3.5q-43 0 -128 -3.5t-127 -3.5q-23 0 -35.5 21t-12.5 45q0 30 15.5 45t36 17.5t47.5 7.5t42 15q33 23 33 143l-1 57v813q0 3 0.5 26t0 36.5t-1.5 38.5t-3.5 42t-6.5 36.5t-11 31.5t-16 18q-15 10 -45 12t-53 2 -t-41 14t-18 45q0 26 12 48t36 22q46 0 138.5 -3.5t138.5 -3.5q42 0 126.5 3.5t126.5 3.5q25 0 37.5 -22t12.5 -48q0 -30 -17 -43.5t-38.5 -14.5t-49.5 -4t-43 -13q-35 -21 -35 -160l1 -320q0 -21 1 -32q13 -3 39 -3h699q25 0 38 3q1 11 1 32l1 320q0 139 -35 160 -q-18 11 -58.5 12.5t-66 13t-25.5 49.5q0 26 12.5 48t37.5 22q44 0 132 -3.5t132 -3.5q43 0 129 3.5t129 3.5q25 0 37.5 -22t12.5 -48q0 -30 -17.5 -44t-40 -14.5t-51.5 -3t-44 -12.5q-35 -23 -35 -161l1 -943q0 -119 34 -140q16 -10 46 -13.5t53.5 -4.5t41.5 -15.5t18 -44.5 -q0 -26 -12 -48t-36 -22z" /> - <glyph glyph-name="_448" unicode="&#xf1dd;" horiz-adv-x="1280" -d="M1278 1347v-73q0 -29 -18.5 -61t-42.5 -32q-50 0 -54 -1q-26 -6 -32 -31q-3 -11 -3 -64v-1152q0 -25 -18 -43t-43 -18h-108q-25 0 -43 18t-18 43v1218h-143v-1218q0 -25 -17.5 -43t-43.5 -18h-108q-26 0 -43.5 18t-17.5 43v496q-147 12 -245 59q-126 58 -192 179 -q-64 117 -64 259q0 166 88 286q88 118 209 159q111 37 417 37h479q25 0 43 -18t18 -43z" /> - <glyph glyph-name="_449" unicode="&#xf1de;" -d="M352 128v-128h-352v128h352zM704 256q26 0 45 -19t19 -45v-256q0 -26 -19 -45t-45 -19h-256q-26 0 -45 19t-19 45v256q0 26 19 45t45 19h256zM864 640v-128h-864v128h864zM224 1152v-128h-224v128h224zM1536 128v-128h-736v128h736zM576 1280q26 0 45 -19t19 -45v-256 -q0 -26 -19 -45t-45 -19h-256q-26 0 -45 19t-19 45v256q0 26 19 45t45 19h256zM1216 768q26 0 45 -19t19 -45v-256q0 -26 -19 -45t-45 -19h-256q-26 0 -45 19t-19 45v256q0 26 19 45t45 19h256zM1536 640v-128h-224v128h224zM1536 1152v-128h-864v128h864z" /> - <glyph glyph-name="uniF1E0" unicode="&#xf1e0;" -d="M1216 512q133 0 226.5 -93.5t93.5 -226.5t-93.5 -226.5t-226.5 -93.5t-226.5 93.5t-93.5 226.5q0 12 2 34l-360 180q-92 -86 -218 -86q-133 0 -226.5 93.5t-93.5 226.5t93.5 226.5t226.5 93.5q126 0 218 -86l360 180q-2 22 -2 34q0 133 93.5 226.5t226.5 93.5 -t226.5 -93.5t93.5 -226.5t-93.5 -226.5t-226.5 -93.5q-126 0 -218 86l-360 -180q2 -22 2 -34t-2 -34l360 -180q92 86 218 86z" /> - <glyph glyph-name="_451" unicode="&#xf1e1;" -d="M1280 341q0 88 -62.5 151t-150.5 63q-84 0 -145 -58l-241 120q2 16 2 23t-2 23l241 120q61 -58 145 -58q88 0 150.5 63t62.5 151t-62.5 150.5t-150.5 62.5t-151 -62.5t-63 -150.5q0 -7 2 -23l-241 -120q-62 57 -145 57q-88 0 -150.5 -62.5t-62.5 -150.5t62.5 -150.5 -t150.5 -62.5q83 0 145 57l241 -120q-2 -16 -2 -23q0 -88 63 -150.5t151 -62.5t150.5 62.5t62.5 150.5zM1536 1120v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" /> - <glyph glyph-name="_452" unicode="&#xf1e2;" horiz-adv-x="1792" -d="M571 947q-10 25 -34 35t-49 0q-108 -44 -191 -127t-127 -191q-10 -25 0 -49t35 -34q13 -5 24 -5q42 0 60 40q34 84 98.5 148.5t148.5 98.5q25 11 35 35t0 49zM1513 1303l46 -46l-244 -243l68 -68q19 -19 19 -45.5t-19 -45.5l-64 -64q89 -161 89 -343q0 -143 -55.5 -273.5 -t-150 -225t-225 -150t-273.5 -55.5t-273.5 55.5t-225 150t-150 225t-55.5 273.5t55.5 273.5t150 225t225 150t273.5 55.5q182 0 343 -89l64 64q19 19 45.5 19t45.5 -19l68 -68zM1521 1359q-10 -10 -22 -10q-13 0 -23 10l-91 90q-9 10 -9 23t9 23q10 9 23 9t23 -9l90 -91 -q10 -9 10 -22.5t-10 -22.5zM1751 1129q-11 -9 -23 -9t-23 9l-90 91q-10 9 -10 22.5t10 22.5q9 10 22.5 10t22.5 -10l91 -90q9 -10 9 -23t-9 -23zM1792 1312q0 -14 -9 -23t-23 -9h-96q-14 0 -23 9t-9 23t9 23t23 9h96q14 0 23 -9t9 -23zM1600 1504v-96q0 -14 -9 -23t-23 -9 -t-23 9t-9 23v96q0 14 9 23t23 9t23 -9t9 -23zM1751 1449l-91 -90q-10 -10 -22 -10q-13 0 -23 10q-10 9 -10 22.5t10 22.5l90 91q10 9 23 9t23 -9q9 -10 9 -23t-9 -23z" /> - <glyph glyph-name="_453" unicode="&#xf1e3;" horiz-adv-x="1792" -d="M609 720l287 208l287 -208l-109 -336h-355zM896 1536q182 0 348 -71t286 -191t191 -286t71 -348t-71 -348t-191 -286t-286 -191t-348 -71t-348 71t-286 191t-191 286t-71 348t71 348t191 286t286 191t348 71zM1515 186q149 203 149 454v3l-102 -89l-240 224l63 323 -l134 -12q-150 206 -389 282l53 -124l-287 -159l-287 159l53 124q-239 -76 -389 -282l135 12l62 -323l-240 -224l-102 89v-3q0 -251 149 -454l30 132l326 -40l139 -298l-116 -69q117 -39 240 -39t240 39l-116 69l139 298l326 40z" /> - <glyph glyph-name="_454" unicode="&#xf1e4;" horiz-adv-x="1792" -d="M448 224v-192q0 -14 -9 -23t-23 -9h-192q-14 0 -23 9t-9 23v192q0 14 9 23t23 9h192q14 0 23 -9t9 -23zM256 608v-192q0 -14 -9 -23t-23 -9h-192q-14 0 -23 9t-9 23v192q0 14 9 23t23 9h192q14 0 23 -9t9 -23zM832 224v-192q0 -14 -9 -23t-23 -9h-192q-14 0 -23 9t-9 23 -v192q0 14 9 23t23 9h192q14 0 23 -9t9 -23zM640 608v-192q0 -14 -9 -23t-23 -9h-192q-14 0 -23 9t-9 23v192q0 14 9 23t23 9h192q14 0 23 -9t9 -23zM66 768q-28 0 -47 19t-19 46v129h514v-129q0 -27 -19 -46t-46 -19h-383zM1216 224v-192q0 -14 -9 -23t-23 -9h-192 -q-14 0 -23 9t-9 23v192q0 14 9 23t23 9h192q14 0 23 -9t9 -23zM1024 608v-192q0 -14 -9 -23t-23 -9h-192q-14 0 -23 9t-9 23v192q0 14 9 23t23 9h192q14 0 23 -9t9 -23zM1600 224v-192q0 -14 -9 -23t-23 -9h-192q-14 0 -23 9t-9 23v192q0 14 9 23t23 9h192q14 0 23 -9t9 -23 -zM1408 608v-192q0 -14 -9 -23t-23 -9h-192q-14 0 -23 9t-9 23v192q0 14 9 23t23 9h192q14 0 23 -9t9 -23zM1792 1016v-13h-514v10q0 104 -382 102q-382 -1 -382 -102v-10h-514v13q0 17 8.5 43t34 64t65.5 75.5t110.5 76t160 67.5t224 47.5t293.5 18.5t293 -18.5t224 -47.5 -t160.5 -67.5t110.5 -76t65.5 -75.5t34 -64t8.5 -43zM1792 608v-192q0 -14 -9 -23t-23 -9h-192q-14 0 -23 9t-9 23v192q0 14 9 23t23 9h192q14 0 23 -9t9 -23zM1792 962v-129q0 -27 -19 -46t-46 -19h-384q-27 0 -46 19t-19 46v129h514z" /> - <glyph glyph-name="_455" unicode="&#xf1e5;" horiz-adv-x="1792" -d="M704 1216v-768q0 -26 -19 -45t-45 -19v-576q0 -26 -19 -45t-45 -19h-512q-26 0 -45 19t-19 45v512l249 873q7 23 31 23h424zM1024 1216v-704h-256v704h256zM1792 320v-512q0 -26 -19 -45t-45 -19h-512q-26 0 -45 19t-19 45v576q-26 0 -45 19t-19 45v768h424q24 0 31 -23z -M736 1504v-224h-352v224q0 14 9 23t23 9h288q14 0 23 -9t9 -23zM1408 1504v-224h-352v224q0 14 9 23t23 9h288q14 0 23 -9t9 -23z" /> - <glyph glyph-name="_456" unicode="&#xf1e6;" horiz-adv-x="1792" -d="M1755 1083q37 -38 37 -90.5t-37 -90.5l-401 -400l150 -150l-160 -160q-163 -163 -389.5 -186.5t-411.5 100.5l-362 -362h-181v181l362 362q-124 185 -100.5 411.5t186.5 389.5l160 160l150 -150l400 401q38 37 91 37t90 -37t37 -90.5t-37 -90.5l-400 -401l234 -234 -l401 400q38 37 91 37t90 -37z" /> - <glyph glyph-name="_457" unicode="&#xf1e7;" horiz-adv-x="1792" -d="M873 796q0 -83 -63.5 -142.5t-152.5 -59.5t-152.5 59.5t-63.5 142.5q0 84 63.5 143t152.5 59t152.5 -59t63.5 -143zM1375 796q0 -83 -63 -142.5t-153 -59.5q-89 0 -152.5 59.5t-63.5 142.5q0 84 63.5 143t152.5 59q90 0 153 -59t63 -143zM1600 616v667q0 87 -32 123.5 -t-111 36.5h-1112q-83 0 -112.5 -34t-29.5 -126v-673q43 -23 88.5 -40t81 -28t81 -18.5t71 -11t70 -4t58.5 -0.5t56.5 2t44.5 2q68 1 95 -27q6 -6 10 -9q26 -25 61 -51q7 91 118 87q5 0 36.5 -1.5t43 -2t45.5 -1t53 1t54.5 4.5t61 8.5t62 13.5t67 19.5t67.5 27t72 34.5z -M1763 621q-121 -149 -372 -252q84 -285 -23 -465q-66 -113 -183 -148q-104 -32 -182 15q-86 51 -82 164l-1 326v1q-8 2 -24.5 6t-23.5 5l-1 -338q4 -114 -83 -164q-79 -47 -183 -15q-117 36 -182 150q-105 180 -22 463q-251 103 -372 252q-25 37 -4 63t60 -1q4 -2 11.5 -7 -t10.5 -8v694q0 72 47 123t114 51h1257q67 0 114 -51t47 -123v-694l21 15q39 27 60 1t-4 -63z" /> - <glyph glyph-name="_458" unicode="&#xf1e8;" horiz-adv-x="1792" -d="M896 1102v-434h-145v434h145zM1294 1102v-434h-145v434h145zM1294 342l253 254v795h-1194v-1049h326v-217l217 217h398zM1692 1536v-1013l-434 -434h-326l-217 -217h-217v217h-398v1158l109 289h1483z" /> - <glyph glyph-name="_459" unicode="&#xf1e9;" -d="M773 217v-127q-1 -292 -6 -305q-12 -32 -51 -40q-54 -9 -181.5 38t-162.5 89q-13 15 -17 36q-1 12 4 26q4 10 34 47t181 216q1 0 60 70q15 19 39.5 24.5t49.5 -3.5q24 -10 37.5 -29t12.5 -42zM624 468q-3 -55 -52 -70l-120 -39q-275 -88 -292 -88q-35 2 -54 36 -q-12 25 -17 75q-8 76 1 166.5t30 124.5t56 32q13 0 202 -77q71 -29 115 -47l84 -34q23 -9 35.5 -30.5t11.5 -48.5zM1450 171q-7 -54 -91.5 -161t-135.5 -127q-37 -14 -63 7q-14 10 -184 287l-47 77q-14 21 -11.5 46t19.5 46q35 43 83 26q1 -1 119 -40q203 -66 242 -79.5 -t47 -20.5q28 -22 22 -61zM778 803q5 -102 -54 -122q-58 -17 -114 71l-378 598q-8 35 19 62q41 43 207.5 89.5t224.5 31.5q40 -10 49 -45q3 -18 22 -305.5t24 -379.5zM1440 695q3 -39 -26 -59q-15 -10 -329 -86q-67 -15 -91 -23l1 2q-23 -6 -46 4t-37 32q-30 47 0 87 -q1 1 75 102q125 171 150 204t34 39q28 19 65 2q48 -23 123 -133.5t81 -167.5v-3z" /> - <glyph glyph-name="_460" unicode="&#xf1ea;" horiz-adv-x="2048" -d="M1024 1024h-384v-384h384v384zM1152 384v-128h-640v128h640zM1152 1152v-640h-640v640h640zM1792 384v-128h-512v128h512zM1792 640v-128h-512v128h512zM1792 896v-128h-512v128h512zM1792 1152v-128h-512v128h512zM256 192v960h-128v-960q0 -26 19 -45t45 -19t45 19 -t19 45zM1920 192v1088h-1536v-1088q0 -33 -11 -64h1483q26 0 45 19t19 45zM2048 1408v-1216q0 -80 -56 -136t-136 -56h-1664q-80 0 -136 56t-56 136v1088h256v128h1792z" /> - <glyph glyph-name="_461" unicode="&#xf1eb;" horiz-adv-x="2048" -d="M1024 13q-20 0 -93 73.5t-73 93.5q0 32 62.5 54t103.5 22t103.5 -22t62.5 -54q0 -20 -73 -93.5t-93 -73.5zM1294 284q-2 0 -40 25t-101.5 50t-128.5 25t-128.5 -25t-101 -50t-40.5 -25q-18 0 -93.5 75t-75.5 93q0 13 10 23q78 77 196 121t233 44t233 -44t196 -121 -q10 -10 10 -23q0 -18 -75.5 -93t-93.5 -75zM1567 556q-11 0 -23 8q-136 105 -252 154.5t-268 49.5q-85 0 -170.5 -22t-149 -53t-113.5 -62t-79 -53t-31 -22q-17 0 -92 75t-75 93q0 12 10 22q132 132 320 205t380 73t380 -73t320 -205q10 -10 10 -22q0 -18 -75 -93t-92 -75z -M1838 827q-11 0 -22 9q-179 157 -371.5 236.5t-420.5 79.5t-420.5 -79.5t-371.5 -236.5q-11 -9 -22 -9q-17 0 -92.5 75t-75.5 93q0 13 10 23q187 186 445 288t527 102t527 -102t445 -288q10 -10 10 -23q0 -18 -75.5 -93t-92.5 -75z" /> - <glyph glyph-name="_462" unicode="&#xf1ec;" horiz-adv-x="1792" -d="M384 0q0 53 -37.5 90.5t-90.5 37.5t-90.5 -37.5t-37.5 -90.5t37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5zM768 0q0 53 -37.5 90.5t-90.5 37.5t-90.5 -37.5t-37.5 -90.5t37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5zM384 384q0 53 -37.5 90.5t-90.5 37.5t-90.5 -37.5 -t-37.5 -90.5t37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5zM1152 0q0 53 -37.5 90.5t-90.5 37.5t-90.5 -37.5t-37.5 -90.5t37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5zM768 384q0 53 -37.5 90.5t-90.5 37.5t-90.5 -37.5t-37.5 -90.5t37.5 -90.5t90.5 -37.5t90.5 37.5 -t37.5 90.5zM384 768q0 53 -37.5 90.5t-90.5 37.5t-90.5 -37.5t-37.5 -90.5t37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5zM1152 384q0 53 -37.5 90.5t-90.5 37.5t-90.5 -37.5t-37.5 -90.5t37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5zM768 768q0 53 -37.5 90.5t-90.5 37.5 -t-90.5 -37.5t-37.5 -90.5t37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5zM1536 0v384q0 52 -38 90t-90 38t-90 -38t-38 -90v-384q0 -52 38 -90t90 -38t90 38t38 90zM1152 768q0 53 -37.5 90.5t-90.5 37.5t-90.5 -37.5t-37.5 -90.5t37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5z -M1536 1088v256q0 26 -19 45t-45 19h-1280q-26 0 -45 -19t-19 -45v-256q0 -26 19 -45t45 -19h1280q26 0 45 19t19 45zM1536 768q0 53 -37.5 90.5t-90.5 37.5t-90.5 -37.5t-37.5 -90.5t37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5zM1664 1408v-1536q0 -52 -38 -90t-90 -38 -h-1408q-52 0 -90 38t-38 90v1536q0 52 38 90t90 38h1408q52 0 90 -38t38 -90z" /> - <glyph glyph-name="_463" unicode="&#xf1ed;" -d="M1519 890q18 -84 -4 -204q-87 -444 -565 -444h-44q-25 0 -44 -16.5t-24 -42.5l-4 -19l-55 -346l-2 -15q-5 -26 -24.5 -42.5t-44.5 -16.5h-251q-21 0 -33 15t-9 36q9 56 26.5 168t26.5 168t27 167.5t27 167.5q5 37 43 37h131q133 -2 236 21q175 39 287 144q102 95 155 246 -q24 70 35 133q1 6 2.5 7.5t3.5 1t6 -3.5q79 -59 98 -162zM1347 1172q0 -107 -46 -236q-80 -233 -302 -315q-113 -40 -252 -42q0 -1 -90 -1l-90 1q-100 0 -118 -96q-2 -8 -85 -530q-1 -10 -12 -10h-295q-22 0 -36.5 16.5t-11.5 38.5l232 1471q5 29 27.5 48t51.5 19h598 -q34 0 97.5 -13t111.5 -32q107 -41 163.5 -123t56.5 -196z" /> - <glyph glyph-name="_464" unicode="&#xf1ee;" horiz-adv-x="1792" -d="M441 864q33 0 52 -26q266 -364 362 -774h-446q-127 441 -367 749q-12 16 -3 33.5t29 17.5h373zM1000 507q-49 -199 -125 -393q-79 310 -256 594q40 221 44 449q211 -340 337 -650zM1099 1216q235 -324 384.5 -698.5t184.5 -773.5h-451q-41 665 -553 1472h435zM1792 640 -q0 -424 -101 -812q-67 560 -359 1083q-25 301 -106 584q-4 16 5.5 28.5t25.5 12.5h359q21 0 38.5 -13t22.5 -33q115 -409 115 -850z" /> - <glyph glyph-name="uniF1F0" unicode="&#xf1f0;" horiz-adv-x="2304" -d="M1975 546h-138q14 37 66 179l3 9q4 10 10 26t9 26l12 -55zM531 611l-58 295q-11 54 -75 54h-268l-2 -13q311 -79 403 -336zM710 960l-162 -438l-17 89q-26 70 -85 129.5t-131 88.5l135 -510h175l261 641h-176zM849 318h166l104 642h-166zM1617 944q-69 27 -149 27 -q-123 0 -201 -59t-79 -153q-1 -102 145 -174q48 -23 67 -41t19 -39q0 -30 -30 -46t-69 -16q-86 0 -156 33l-22 11l-23 -144q74 -34 185 -34q130 -1 208.5 59t80.5 160q0 106 -140 174q-49 25 -71 42t-22 38q0 22 24.5 38.5t70.5 16.5q70 1 124 -24l15 -8zM2042 960h-128 -q-65 0 -87 -54l-246 -588h174l35 96h212q5 -22 20 -96h154zM2304 1280v-1280q0 -52 -38 -90t-90 -38h-2048q-52 0 -90 38t-38 90v1280q0 52 38 90t90 38h2048q52 0 90 -38t38 -90z" /> - <glyph glyph-name="_466" unicode="&#xf1f1;" horiz-adv-x="2304" -d="M1119 1195q-128 85 -281 85q-103 0 -197.5 -40.5t-162.5 -108.5t-108.5 -162t-40.5 -197q0 -104 40.5 -198t108.5 -162t162 -108.5t198 -40.5q153 0 281 85q-131 107 -178 265.5t0.5 316.5t177.5 265zM1152 1171q-126 -99 -172 -249.5t-0.5 -300.5t172.5 -249 -q127 99 172.5 249t-0.5 300.5t-172 249.5zM1185 1195q130 -107 177.5 -265.5t0.5 -317t-178 -264.5q128 -85 281 -85q104 0 198 40.5t162 108.5t108.5 162t40.5 198q0 103 -40.5 197t-108.5 162t-162.5 108.5t-197.5 40.5q-153 0 -281 -85zM1926 473h7v3h-17v-3h7v-17h3v17z -M1955 456h4v20h-5l-6 -13l-6 13h-5v-20h3v15l6 -13h4l5 13v-15zM1947 16v-2h-2h-3v3h3h2v-1zM1947 7h3l-4 5h2l1 1q1 1 1 3t-1 3l-1 1h-3h-6v-13h3v5h1zM685 75q0 19 11 31t30 12q18 0 29 -12.5t11 -30.5q0 -19 -11 -31t-29 -12q-19 0 -30 12t-11 31zM1158 119q30 0 35 -32 -h-70q5 32 35 32zM1514 75q0 19 11 31t29 12t29.5 -12.5t11.5 -30.5q0 -19 -11 -31t-30 -12q-18 0 -29 12t-11 31zM1786 75q0 18 11.5 30.5t29.5 12.5t29.5 -12.5t11.5 -30.5q0 -19 -11.5 -31t-29.5 -12t-29.5 12.5t-11.5 30.5zM1944 3q-2 0 -4 1q-1 0 -3 2t-2 3q-1 2 -1 4 -q0 3 1 4q0 2 2 4l1 1q2 0 2 1q2 1 4 1q3 0 4 -1l4 -2l2 -4v-1q1 -2 1 -3l-1 -1v-3t-1 -1l-1 -2q-2 -2 -4 -2q-1 -1 -4 -1zM599 7h30v85q0 24 -14.5 38.5t-39.5 15.5q-32 0 -47 -24q-14 24 -45 24q-24 0 -39 -20v16h-30v-135h30v75q0 36 33 36q30 0 30 -36v-75h29v75 -q0 36 33 36q30 0 30 -36v-75zM765 7h29v68v67h-29v-16q-17 20 -43 20q-29 0 -48 -20t-19 -51t19 -51t48 -20q28 0 43 20v-17zM943 48q0 34 -47 40l-14 2q-23 4 -23 14q0 15 25 15q23 0 43 -11l12 24q-22 14 -55 14q-26 0 -41 -12t-15 -32q0 -33 47 -39l13 -2q24 -4 24 -14 -q0 -17 -31 -17q-25 0 -45 14l-13 -23q25 -17 58 -17q29 0 45.5 12t16.5 32zM1073 14l-8 25q-13 -7 -26 -7q-19 0 -19 22v61h48v27h-48v41h-30v-41h-28v-27h28v-61q0 -50 47 -50q21 0 36 10zM1159 146q-29 0 -48 -20t-19 -51q0 -32 19.5 -51.5t49.5 -19.5q33 0 55 19l-14 22 -q-18 -15 -39 -15q-34 0 -41 33h101v12q0 32 -18 51.5t-46 19.5zM1318 146q-23 0 -35 -20v16h-30v-135h30v76q0 35 29 35q10 0 18 -4l9 28q-9 4 -21 4zM1348 75q0 -31 19.5 -51t52.5 -20q29 0 48 16l-14 24q-18 -13 -35 -12q-18 0 -29.5 12t-11.5 31t11.5 31t29.5 12 -q19 0 35 -12l14 24q-20 16 -48 16q-33 0 -52.5 -20t-19.5 -51zM1593 7h30v68v67h-30v-16q-15 20 -42 20q-29 0 -48.5 -20t-19.5 -51t19.5 -51t48.5 -20q28 0 42 20v-17zM1726 146q-23 0 -35 -20v16h-29v-135h29v76q0 35 29 35q10 0 18 -4l9 28q-8 4 -21 4zM1866 7h29v68v122 -h-29v-71q-15 20 -43 20t-47.5 -20.5t-19.5 -50.5t19.5 -50.5t47.5 -20.5q29 0 43 20v-17zM1944 27l-2 -1h-3q-2 -1 -4 -3q-3 -1 -3 -4q-1 -2 -1 -6q0 -3 1 -5q0 -2 3 -4q2 -2 4 -3t5 -1q4 0 6 1q0 1 2 2l2 1q1 1 3 4q1 2 1 5q0 4 -1 6q-1 1 -3 4q0 1 -2 2l-2 1q-1 0 -3 0.5 -t-3 0.5zM2304 1280v-1280q0 -52 -38 -90t-90 -38h-2048q-52 0 -90 38t-38 90v1280q0 52 38 90t90 38h2048q52 0 90 -38t38 -90z" /> - <glyph glyph-name="_467" unicode="&#xf1f2;" horiz-adv-x="2304" -d="M313 759q0 -51 -36 -84q-29 -26 -89 -26h-17v220h17q61 0 89 -27q36 -31 36 -83zM2089 824q0 -52 -64 -52h-19v101h20q63 0 63 -49zM380 759q0 74 -50 120.5t-129 46.5h-95v-333h95q74 0 119 38q60 51 60 128zM410 593h65v333h-65v-333zM730 694q0 40 -20.5 62t-75.5 42 -q-29 10 -39.5 19t-10.5 23q0 16 13.5 26.5t34.5 10.5q29 0 53 -27l34 44q-41 37 -98 37q-44 0 -74 -27.5t-30 -67.5q0 -35 18 -55.5t64 -36.5q37 -13 45 -19q19 -12 19 -34q0 -20 -14 -33.5t-36 -13.5q-48 0 -71 44l-42 -40q44 -64 115 -64q51 0 83 30.5t32 79.5zM1008 604 -v77q-37 -37 -78 -37q-49 0 -80.5 32.5t-31.5 82.5q0 48 31.5 81.5t77.5 33.5q43 0 81 -38v77q-40 20 -80 20q-74 0 -125.5 -50.5t-51.5 -123.5t51 -123.5t125 -50.5q42 0 81 19zM2240 0v527q-65 -40 -144.5 -84t-237.5 -117t-329.5 -137.5t-417.5 -134.5t-504 -118h1569 -q26 0 45 19t19 45zM1389 757q0 75 -53 128t-128 53t-128 -53t-53 -128t53 -128t128 -53t128 53t53 128zM1541 584l144 342h-71l-90 -224l-89 224h-71l142 -342h35zM1714 593h184v56h-119v90h115v56h-115v74h119v57h-184v-333zM2105 593h80l-105 140q76 16 76 94q0 47 -31 73 -t-87 26h-97v-333h65v133h9zM2304 1274v-1268q0 -56 -38.5 -95t-93.5 -39h-2040q-55 0 -93.5 39t-38.5 95v1268q0 56 38.5 95t93.5 39h2040q55 0 93.5 -39t38.5 -95z" /> - <glyph glyph-name="f1f3" unicode="&#xf1f3;" horiz-adv-x="2304" -d="M119 854h89l-45 108zM740 328l74 79l-70 79h-163v-49h142v-55h-142v-54h159zM898 406l99 -110v217zM1186 453q0 33 -40 33h-84v-69h83q41 0 41 36zM1475 457q0 29 -42 29h-82v-61h81q43 0 43 32zM1197 923q0 29 -42 29h-82v-60h81q43 0 43 31zM1656 854h89l-44 108z -M699 1009v-271h-66v212l-94 -212h-57l-94 212v-212h-132l-25 60h-135l-25 -60h-70l116 271h96l110 -257v257h106l85 -184l77 184h108zM1255 453q0 -20 -5.5 -35t-14 -25t-22.5 -16.5t-26 -10t-31.5 -4.5t-31.5 -1t-32.5 0.5t-29.5 0.5v-91h-126l-80 90l-83 -90h-256v271h260 -l80 -89l82 89h207q109 0 109 -89zM964 794v-56h-217v271h217v-57h-152v-49h148v-55h-148v-54h152zM2304 235v-229q0 -55 -38.5 -94.5t-93.5 -39.5h-2040q-55 0 -93.5 39.5t-38.5 94.5v678h111l25 61h55l25 -61h218v46l19 -46h113l20 47v-47h541v99l10 1q10 0 10 -14v-86h279 -v23q23 -12 55 -18t52.5 -6.5t63 0.5t51.5 1l25 61h56l25 -61h227v58l34 -58h182v378h-180v-44l-25 44h-185v-44l-23 44h-249q-69 0 -109 -22v22h-172v-22q-24 22 -73 22h-628l-43 -97l-43 97h-198v-44l-22 44h-169l-78 -179v391q0 55 38.5 94.5t93.5 39.5h2040 -q55 0 93.5 -39.5t38.5 -94.5v-678h-120q-51 0 -81 -22v22h-177q-55 0 -78 -22v22h-316v-22q-31 22 -87 22h-209v-22q-23 22 -91 22h-234l-54 -58l-50 58h-349v-378h343l55 59l52 -59h211v89h21q59 0 90 13v-102h174v99h8q8 0 10 -2t2 -10v-87h529q57 0 88 24v-24h168 -q60 0 95 17zM1546 469q0 -23 -12 -43t-34 -29q25 -9 34 -26t9 -46v-54h-65v45q0 33 -12 43.5t-46 10.5h-69v-99h-65v271h154q48 0 77 -15t29 -58zM1269 936q0 -24 -12.5 -44t-33.5 -29q26 -9 34.5 -25.5t8.5 -46.5v-53h-65q0 9 0.5 26.5t0 25t-3 18.5t-8.5 16t-17.5 8.5 -t-29.5 3.5h-70v-98h-64v271l153 -1q49 0 78 -14.5t29 -57.5zM1798 327v-56h-216v271h216v-56h-151v-49h148v-55h-148v-54zM1372 1009v-271h-66v271h66zM2065 357q0 -86 -102 -86h-126v58h126q34 0 34 25q0 16 -17 21t-41.5 5t-49.5 3.5t-42 22.5t-17 55q0 39 26 60t66 21 -h130v-57h-119q-36 0 -36 -25q0 -16 17.5 -20.5t42 -4t49 -2.5t42 -21.5t17.5 -54.5zM2304 407v-101q-24 -35 -88 -35h-125v58h125q33 0 33 25q0 13 -12.5 19t-31 5.5t-40 2t-40 8t-31 24t-12.5 48.5q0 39 26.5 60t66.5 21h129v-57h-118q-36 0 -36 -25q0 -20 29 -22t68.5 -5 -t56.5 -26zM2139 1008v-270h-92l-122 203v-203h-132l-26 60h-134l-25 -60h-75q-129 0 -129 133q0 138 133 138h63v-59q-7 0 -28 1t-28.5 0.5t-23 -2t-21.5 -6.5t-14.5 -13.5t-11.5 -23t-3 -33.5q0 -38 13.5 -58t49.5 -20h29l92 213h97l109 -256v256h99l114 -188v188h66z" /> - <glyph glyph-name="_469" unicode="&#xf1f4;" horiz-adv-x="2304" -d="M745 630q0 -37 -25.5 -61.5t-62.5 -24.5q-29 0 -46.5 16t-17.5 44q0 37 25 62.5t62 25.5q28 0 46.5 -16.5t18.5 -45.5zM1530 779q0 -42 -22 -57t-66 -15l-32 -1l17 107q2 11 13 11h18q22 0 35 -2t25 -12.5t12 -30.5zM1881 630q0 -36 -25.5 -61t-61.5 -25q-29 0 -47 16 -t-18 44q0 37 25 62.5t62 25.5q28 0 46.5 -16.5t18.5 -45.5zM513 801q0 59 -38.5 85.5t-100.5 26.5h-160q-19 0 -21 -19l-65 -408q-1 -6 3 -11t10 -5h76q20 0 22 19l18 110q1 8 7 13t15 6.5t17 1.5t19 -1t14 -1q86 0 135 48.5t49 134.5zM822 489l41 261q1 6 -3 11t-10 5h-76 -q-14 0 -17 -33q-27 40 -95 40q-72 0 -122.5 -54t-50.5 -127q0 -59 34.5 -94t92.5 -35q28 0 58 12t48 32q-4 -12 -4 -21q0 -16 13 -16h69q19 0 22 19zM1269 752q0 5 -4 9.5t-9 4.5h-77q-11 0 -18 -10l-106 -156l-44 150q-5 16 -22 16h-75q-5 0 -9 -4.5t-4 -9.5q0 -2 19.5 -59 -t42 -123t23.5 -70q-82 -112 -82 -120q0 -13 13 -13h77q11 0 18 10l255 368q2 2 2 7zM1649 801q0 59 -38.5 85.5t-100.5 26.5h-159q-20 0 -22 -19l-65 -408q-1 -6 3 -11t10 -5h82q12 0 16 13l18 116q1 8 7 13t15 6.5t17 1.5t19 -1t14 -1q86 0 135 48.5t49 134.5zM1958 489 -l41 261q1 6 -3 11t-10 5h-76q-14 0 -17 -33q-26 40 -95 40q-72 0 -122.5 -54t-50.5 -127q0 -59 34.5 -94t92.5 -35q29 0 59 12t47 32q0 -1 -2 -9t-2 -12q0 -16 13 -16h69q19 0 22 19zM2176 898v1q0 14 -13 14h-74q-11 0 -13 -11l-65 -416l-1 -2q0 -5 4 -9.5t10 -4.5h66 -q19 0 21 19zM392 764q-5 -35 -26 -46t-60 -11l-33 -1l17 107q2 11 13 11h19q40 0 58 -11.5t12 -48.5zM2304 1280v-1280q0 -52 -38 -90t-90 -38h-2048q-52 0 -90 38t-38 90v1280q0 52 38 90t90 38h2048q52 0 90 -38t38 -90z" /> - <glyph glyph-name="_470" unicode="&#xf1f5;" horiz-adv-x="2304" -d="M1597 633q0 -69 -21 -106q-19 -35 -52 -35q-23 0 -41 9v224q29 30 57 30q57 0 57 -122zM2035 669h-110q6 98 56 98q51 0 54 -98zM476 534q0 59 -33 91.5t-101 57.5q-36 13 -52 24t-16 25q0 26 38 26q58 0 124 -33l18 112q-67 32 -149 32q-77 0 -123 -38q-48 -39 -48 -109 -q0 -58 32.5 -90.5t99.5 -56.5q39 -14 54.5 -25.5t15.5 -27.5q0 -31 -48 -31q-29 0 -70 12.5t-72 30.5l-18 -113q72 -41 168 -41q81 0 129 37q51 41 51 117zM771 749l19 111h-96v135l-129 -21l-18 -114l-46 -8l-17 -103h62v-219q0 -84 44 -120q38 -30 111 -30q32 0 79 11v118 -q-32 -7 -44 -7q-42 0 -42 50v197h77zM1087 724v139q-15 3 -28 3q-32 0 -55.5 -16t-33.5 -46l-10 56h-131v-471h150v306q26 31 82 31q16 0 26 -2zM1124 389h150v471h-150v-471zM1746 638q0 122 -45 179q-40 52 -111 52q-64 0 -117 -56l-8 47h-132v-645l150 25v151 -q36 -11 68 -11q83 0 134 56q61 65 61 202zM1278 986q0 33 -23 56t-56 23t-56 -23t-23 -56t23 -56.5t56 -23.5t56 23.5t23 56.5zM2176 629q0 113 -48 176q-50 64 -144 64q-96 0 -151.5 -66t-55.5 -180q0 -128 63 -188q55 -55 161 -55q101 0 160 40l-16 103q-57 -31 -128 -31 -q-43 0 -63 19q-23 19 -28 66h248q2 14 2 52zM2304 1280v-1280q0 -52 -38 -90t-90 -38h-2048q-52 0 -90 38t-38 90v1280q0 52 38 90t90 38h2048q52 0 90 -38t38 -90z" /> - <glyph glyph-name="_471" unicode="&#xf1f6;" horiz-adv-x="2048" -d="M1558 684q61 -356 298 -556q0 -52 -38 -90t-90 -38h-448q0 -106 -75 -181t-181 -75t-180.5 74.5t-75.5 180.5zM1024 -176q16 0 16 16t-16 16q-59 0 -101.5 42.5t-42.5 101.5q0 16 -16 16t-16 -16q0 -73 51.5 -124.5t124.5 -51.5zM2026 1424q8 -10 7.5 -23.5t-10.5 -22.5 -l-1872 -1622q-10 -8 -23.5 -7t-21.5 11l-84 96q-8 10 -7.5 23.5t10.5 21.5l186 161q-19 32 -19 66q50 42 91 88t85 119.5t74.5 158.5t50 206t19.5 260q0 152 117 282.5t307 158.5q-8 19 -8 39q0 40 28 68t68 28t68 -28t28 -68q0 -20 -8 -39q124 -18 219 -82.5t148 -157.5 -l418 363q10 8 23.5 7t21.5 -11z" /> - <glyph glyph-name="_472" unicode="&#xf1f7;" horiz-adv-x="2048" -d="M1040 -160q0 16 -16 16q-59 0 -101.5 42.5t-42.5 101.5q0 16 -16 16t-16 -16q0 -73 51.5 -124.5t124.5 -51.5q16 0 16 16zM503 315l877 760q-42 88 -132.5 146.5t-223.5 58.5q-93 0 -169.5 -31.5t-121.5 -80.5t-69 -103t-24 -105q0 -384 -137 -645zM1856 128 -q0 -52 -38 -90t-90 -38h-448q0 -106 -75 -181t-181 -75t-180.5 74.5t-75.5 180.5l149 129h757q-166 187 -227 459l111 97q61 -356 298 -556zM1942 1520l84 -96q8 -10 7.5 -23.5t-10.5 -22.5l-1872 -1622q-10 -8 -23.5 -7t-21.5 11l-84 96q-8 10 -7.5 23.5t10.5 21.5l186 161 -q-19 32 -19 66q50 42 91 88t85 119.5t74.5 158.5t50 206t19.5 260q0 152 117 282.5t307 158.5q-8 19 -8 39q0 40 28 68t68 28t68 -28t28 -68q0 -20 -8 -39q124 -18 219 -82.5t148 -157.5l418 363q10 8 23.5 7t21.5 -11z" /> - <glyph glyph-name="_473" unicode="&#xf1f8;" horiz-adv-x="1408" -d="M512 160v704q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23v-704q0 -14 9 -23t23 -9h64q14 0 23 9t9 23zM768 160v704q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23v-704q0 -14 9 -23t23 -9h64q14 0 23 9t9 23zM1024 160v704q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23v-704 -q0 -14 9 -23t23 -9h64q14 0 23 9t9 23zM480 1152h448l-48 117q-7 9 -17 11h-317q-10 -2 -17 -11zM1408 1120v-64q0 -14 -9 -23t-23 -9h-96v-948q0 -83 -47 -143.5t-113 -60.5h-832q-66 0 -113 58.5t-47 141.5v952h-96q-14 0 -23 9t-9 23v64q0 14 9 23t23 9h309l70 167 -q15 37 54 63t79 26h320q40 0 79 -26t54 -63l70 -167h309q14 0 23 -9t9 -23z" /> - <glyph glyph-name="_474" unicode="&#xf1f9;" -d="M1150 462v-109q0 -50 -36.5 -89t-94 -60.5t-118 -32.5t-117.5 -11q-205 0 -342.5 139t-137.5 346q0 203 136 339t339 136q34 0 75.5 -4.5t93 -18t92.5 -34t69 -56.5t28 -81v-109q0 -16 -16 -16h-118q-16 0 -16 16v70q0 43 -65.5 67.5t-137.5 24.5q-140 0 -228.5 -91.5 -t-88.5 -237.5q0 -151 91.5 -249.5t233.5 -98.5q68 0 138 24t70 66v70q0 7 4.5 11.5t10.5 4.5h119q6 0 11 -4.5t5 -11.5zM768 1280q-130 0 -248.5 -51t-204 -136.5t-136.5 -204t-51 -248.5t51 -248.5t136.5 -204t204 -136.5t248.5 -51t248.5 51t204 136.5t136.5 204t51 248.5 -t-51 248.5t-136.5 204t-204 136.5t-248.5 51zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" /> - <glyph glyph-name="_475" unicode="&#xf1fa;" -d="M972 761q0 108 -53.5 169t-147.5 61q-63 0 -124 -30.5t-110 -84.5t-79.5 -137t-30.5 -180q0 -112 53.5 -173t150.5 -61q96 0 176 66.5t122.5 166t42.5 203.5zM1536 640q0 -111 -37 -197t-98.5 -135t-131.5 -74.5t-145 -27.5q-6 0 -15.5 -0.5t-16.5 -0.5q-95 0 -142 53 -q-28 33 -33 83q-52 -66 -131.5 -110t-173.5 -44q-161 0 -249.5 95.5t-88.5 269.5q0 157 66 290t179 210.5t246 77.5q87 0 155 -35.5t106 -99.5l2 19l11 56q1 6 5.5 12t9.5 6h118q5 0 13 -11q5 -5 3 -16l-120 -614q-5 -24 -5 -48q0 -39 12.5 -52t44.5 -13q28 1 57 5.5t73 24 -t77 50t57 89.5t24 137q0 292 -174 466t-466 174q-130 0 -248.5 -51t-204 -136.5t-136.5 -204t-51 -248.5t51 -248.5t136.5 -204t204 -136.5t248.5 -51q228 0 405 144q11 9 24 8t21 -12l41 -49q8 -12 7 -24q-2 -13 -12 -22q-102 -83 -227.5 -128t-258.5 -45q-156 0 -298 61 -t-245 164t-164 245t-61 298t61 298t164 245t245 164t298 61q344 0 556 -212t212 -556z" /> - <glyph glyph-name="_476" unicode="&#xf1fb;" horiz-adv-x="1792" -d="M1698 1442q94 -94 94 -226.5t-94 -225.5l-225 -223l104 -104q10 -10 10 -23t-10 -23l-210 -210q-10 -10 -23 -10t-23 10l-105 105l-603 -603q-37 -37 -90 -37h-203l-256 -128l-64 64l128 256v203q0 53 37 90l603 603l-105 105q-10 10 -10 23t10 23l210 210q10 10 23 10 -t23 -10l104 -104l223 225q93 94 225.5 94t226.5 -94zM512 64l576 576l-192 192l-576 -576v-192h192z" /> - <glyph glyph-name="f1fc" unicode="&#xf1fc;" horiz-adv-x="1792" -d="M1615 1536q70 0 122.5 -46.5t52.5 -116.5q0 -63 -45 -151q-332 -629 -465 -752q-97 -91 -218 -91q-126 0 -216.5 92.5t-90.5 219.5q0 128 92 212l638 579q59 54 130 54zM706 502q39 -76 106.5 -130t150.5 -76l1 -71q4 -213 -129.5 -347t-348.5 -134q-123 0 -218 46.5 -t-152.5 127.5t-86.5 183t-29 220q7 -5 41 -30t62 -44.5t59 -36.5t46 -17q41 0 55 37q25 66 57.5 112.5t69.5 76t88 47.5t103 25.5t125 10.5z" /> - <glyph glyph-name="_478" unicode="&#xf1fd;" horiz-adv-x="1792" -d="M1792 128v-384h-1792v384q45 0 85 14t59 27.5t47 37.5q30 27 51.5 38t56.5 11q24 0 44 -7t31 -15t33 -27q29 -25 47 -38t58 -27t86 -14q45 0 85 14.5t58 27t48 37.5q21 19 32.5 27t31 15t43.5 7q35 0 56.5 -11t51.5 -38q28 -24 47 -37.5t59 -27.5t85 -14t85 14t59 27.5 -t47 37.5q30 27 51.5 38t56.5 11q34 0 55.5 -11t51.5 -38q28 -24 47 -37.5t59 -27.5t85 -14zM1792 448v-192q-24 0 -44 7t-31 15t-33 27q-29 25 -47 38t-58 27t-85 14q-46 0 -86 -14t-58 -27t-47 -38q-22 -19 -33 -27t-31 -15t-44 -7q-35 0 -56.5 11t-51.5 38q-29 25 -47 38 -t-58 27t-86 14q-45 0 -85 -14.5t-58 -27t-48 -37.5q-21 -19 -32.5 -27t-31 -15t-43.5 -7q-35 0 -56.5 11t-51.5 38q-28 24 -47 37.5t-59 27.5t-85 14q-46 0 -86 -14t-58 -27t-47 -38q-30 -27 -51.5 -38t-56.5 -11v192q0 80 56 136t136 56h64v448h256v-448h256v448h256v-448 -h256v448h256v-448h64q80 0 136 -56t56 -136zM512 1312q0 -77 -36 -118.5t-92 -41.5q-53 0 -90.5 37.5t-37.5 90.5q0 29 9.5 51t23.5 34t31 28t31 31.5t23.5 44.5t9.5 67q38 0 83 -74t45 -150zM1024 1312q0 -77 -36 -118.5t-92 -41.5q-53 0 -90.5 37.5t-37.5 90.5 -q0 29 9.5 51t23.5 34t31 28t31 31.5t23.5 44.5t9.5 67q38 0 83 -74t45 -150zM1536 1312q0 -77 -36 -118.5t-92 -41.5q-53 0 -90.5 37.5t-37.5 90.5q0 29 9.5 51t23.5 34t31 28t31 31.5t23.5 44.5t9.5 67q38 0 83 -74t45 -150z" /> - <glyph glyph-name="_479" unicode="&#xf1fe;" horiz-adv-x="2048" -d="M2048 0v-128h-2048v1536h128v-1408h1920zM1664 1024l256 -896h-1664v576l448 576l576 -576z" /> - <glyph glyph-name="_480" unicode="&#xf200;" horiz-adv-x="1792" -d="M768 646l546 -546q-106 -108 -247.5 -168t-298.5 -60q-209 0 -385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103v-762zM955 640h773q0 -157 -60 -298.5t-168 -247.5zM1664 768h-768v768q209 0 385.5 -103t279.5 -279.5t103 -385.5z" /> - <glyph glyph-name="_481" unicode="&#xf201;" horiz-adv-x="2048" -d="M2048 0v-128h-2048v1536h128v-1408h1920zM1920 1248v-435q0 -21 -19.5 -29.5t-35.5 7.5l-121 121l-633 -633q-10 -10 -23 -10t-23 10l-233 233l-416 -416l-192 192l585 585q10 10 23 10t23 -10l233 -233l464 464l-121 121q-16 16 -7.5 35.5t29.5 19.5h435q14 0 23 -9 -t9 -23z" /> - <glyph glyph-name="_482" unicode="&#xf202;" horiz-adv-x="1792" -d="M1292 832q0 -6 10 -41q10 -29 25 -49.5t41 -34t44 -20t55 -16.5q325 -91 325 -332q0 -146 -105.5 -242.5t-254.5 -96.5q-59 0 -111.5 18.5t-91.5 45.5t-77 74.5t-63 87.5t-53.5 103.5t-43.5 103t-39.5 106.5t-35.5 95q-32 81 -61.5 133.5t-73.5 96.5t-104 64t-142 20 -q-96 0 -183 -55.5t-138 -144.5t-51 -185q0 -160 106.5 -279.5t263.5 -119.5q177 0 258 95q56 63 83 116l84 -152q-15 -34 -44 -70l1 -1q-131 -152 -388 -152q-147 0 -269.5 79t-190.5 207.5t-68 274.5q0 105 43.5 206t116 176.5t172 121.5t204.5 46q87 0 159 -19t123.5 -50 -t95 -80t72.5 -99t58.5 -117t50.5 -124.5t50 -130.5t55 -127q96 -200 233 -200q81 0 138.5 48.5t57.5 128.5q0 42 -19 72t-50.5 46t-72.5 31.5t-84.5 27t-87.5 34t-81 52t-65 82t-39 122.5q-3 16 -3 33q0 110 87.5 192t198.5 78q78 -3 120.5 -14.5t90.5 -53.5h-1 -q12 -11 23 -24.5t26 -36t19 -27.5l-129 -99q-26 49 -54 70v1q-23 21 -97 21q-49 0 -84 -33t-35 -83z" /> - <glyph glyph-name="_483" unicode="&#xf203;" -d="M1432 484q0 173 -234 239q-35 10 -53 16.5t-38 25t-29 46.5q0 2 -2 8.5t-3 12t-1 7.5q0 36 24.5 59.5t60.5 23.5q54 0 71 -15h-1q20 -15 39 -51l93 71q-39 54 -49 64q-33 29 -67.5 39t-85.5 10q-80 0 -142 -57.5t-62 -137.5q0 -7 2 -23q16 -96 64.5 -140t148.5 -73 -q29 -8 49 -15.5t45 -21.5t38.5 -34.5t13.5 -46.5v-5q1 -58 -40.5 -93t-100.5 -35q-97 0 -167 144q-23 47 -51.5 121.5t-48 125.5t-54 110.5t-74 95.5t-103.5 60.5t-147 24.5q-101 0 -192 -56t-144 -148t-50 -192v-1q4 -108 50.5 -199t133.5 -147.5t196 -56.5q186 0 279 110 -q20 27 31 51l-60 109q-42 -80 -99 -116t-146 -36q-115 0 -191 87t-76 204q0 105 82 189t186 84q112 0 170 -53.5t104 -172.5q8 -21 25.5 -68.5t28.5 -76.5t31.5 -74.5t38.5 -74t45.5 -62.5t55.5 -53.5t66 -33t80 -13.5q107 0 183 69.5t76 174.5zM1536 1120v-960 -q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" /> - <glyph glyph-name="_484" unicode="&#xf204;" horiz-adv-x="2048" -d="M1152 640q0 104 -40.5 198.5t-109.5 163.5t-163.5 109.5t-198.5 40.5t-198.5 -40.5t-163.5 -109.5t-109.5 -163.5t-40.5 -198.5t40.5 -198.5t109.5 -163.5t163.5 -109.5t198.5 -40.5t198.5 40.5t163.5 109.5t109.5 163.5t40.5 198.5zM1920 640q0 104 -40.5 198.5 -t-109.5 163.5t-163.5 109.5t-198.5 40.5h-386q119 -90 188.5 -224t69.5 -288t-69.5 -288t-188.5 -224h386q104 0 198.5 40.5t163.5 109.5t109.5 163.5t40.5 198.5zM2048 640q0 -130 -51 -248.5t-136.5 -204t-204 -136.5t-248.5 -51h-768q-130 0 -248.5 51t-204 136.5 -t-136.5 204t-51 248.5t51 248.5t136.5 204t204 136.5t248.5 51h768q130 0 248.5 -51t204 -136.5t136.5 -204t51 -248.5z" /> - <glyph glyph-name="_485" unicode="&#xf205;" horiz-adv-x="2048" -d="M0 640q0 130 51 248.5t136.5 204t204 136.5t248.5 51h768q130 0 248.5 -51t204 -136.5t136.5 -204t51 -248.5t-51 -248.5t-136.5 -204t-204 -136.5t-248.5 -51h-768q-130 0 -248.5 51t-204 136.5t-136.5 204t-51 248.5zM1408 128q104 0 198.5 40.5t163.5 109.5 -t109.5 163.5t40.5 198.5t-40.5 198.5t-109.5 163.5t-163.5 109.5t-198.5 40.5t-198.5 -40.5t-163.5 -109.5t-109.5 -163.5t-40.5 -198.5t40.5 -198.5t109.5 -163.5t163.5 -109.5t198.5 -40.5z" /> - <glyph glyph-name="_486" unicode="&#xf206;" horiz-adv-x="2304" -d="M762 384h-314q-40 0 -57.5 35t6.5 67l188 251q-65 31 -137 31q-132 0 -226 -94t-94 -226t94 -226t226 -94q115 0 203 72.5t111 183.5zM576 512h186q-18 85 -75 148zM1056 512l288 384h-480l-99 -132q105 -103 126 -252h165zM2176 448q0 132 -94 226t-226 94 -q-60 0 -121 -24l174 -260q15 -23 10 -49t-27 -40q-15 -11 -36 -11q-35 0 -53 29l-174 260q-93 -95 -93 -225q0 -132 94 -226t226 -94t226 94t94 226zM2304 448q0 -185 -131.5 -316.5t-316.5 -131.5t-316.5 131.5t-131.5 316.5q0 97 39.5 183.5t109.5 149.5l-65 98l-353 -469 -q-18 -26 -51 -26h-197q-23 -164 -149 -274t-294 -110q-185 0 -316.5 131.5t-131.5 316.5t131.5 316.5t316.5 131.5q114 0 215 -55l137 183h-224q-26 0 -45 19t-19 45t19 45t45 19h384v-128h435l-85 128h-222q-26 0 -45 19t-19 45t19 45t45 19h256q33 0 53 -28l267 -400 -q91 44 192 44q185 0 316.5 -131.5t131.5 -316.5z" /> - <glyph glyph-name="_487" unicode="&#xf207;" -d="M384 320q0 53 -37.5 90.5t-90.5 37.5t-90.5 -37.5t-37.5 -90.5t37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5zM1408 320q0 53 -37.5 90.5t-90.5 37.5t-90.5 -37.5t-37.5 -90.5t37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5zM1362 716l-72 384q-5 23 -22.5 37.5t-40.5 14.5 -h-918q-23 0 -40.5 -14.5t-22.5 -37.5l-72 -384q-5 -30 14 -53t49 -23h1062q30 0 49 23t14 53zM1136 1328q0 20 -14 34t-34 14h-640q-20 0 -34 -14t-14 -34t14 -34t34 -14h640q20 0 34 14t14 34zM1536 603v-603h-128v-128q0 -53 -37.5 -90.5t-90.5 -37.5t-90.5 37.5 -t-37.5 90.5v128h-768v-128q0 -53 -37.5 -90.5t-90.5 -37.5t-90.5 37.5t-37.5 90.5v128h-128v603q0 112 25 223l103 454q9 78 97.5 137t230 89t312.5 30t312.5 -30t230 -89t97.5 -137l105 -454q23 -102 23 -223z" /> - <glyph glyph-name="_488" unicode="&#xf208;" horiz-adv-x="2048" -d="M1463 704q0 -35 -25 -60.5t-61 -25.5h-702q-36 0 -61 25.5t-25 60.5t25 60.5t61 25.5h702q36 0 61 -25.5t25 -60.5zM1677 704q0 86 -23 170h-982q-36 0 -61 25t-25 60q0 36 25 61t61 25h908q-88 143 -235 227t-320 84q-177 0 -327.5 -87.5t-238 -237.5t-87.5 -327 -q0 -86 23 -170h982q36 0 61 -25t25 -60q0 -36 -25 -61t-61 -25h-908q88 -143 235.5 -227t320.5 -84q132 0 253 51.5t208 139t139 208t52 253.5zM2048 959q0 -35 -25 -60t-61 -25h-131q17 -85 17 -170q0 -167 -65.5 -319.5t-175.5 -263t-262.5 -176t-319.5 -65.5 -q-246 0 -448.5 133t-301.5 350h-189q-36 0 -61 25t-25 61q0 35 25 60t61 25h132q-17 85 -17 170q0 167 65.5 319.5t175.5 263t262.5 176t320.5 65.5q245 0 447.5 -133t301.5 -350h188q36 0 61 -25t25 -61z" /> - <glyph glyph-name="_489" unicode="&#xf209;" horiz-adv-x="1280" -d="M953 1158l-114 -328l117 -21q165 451 165 518q0 56 -38 56q-57 0 -130 -225zM654 471l33 -88q37 42 71 67l-33 5.5t-38.5 7t-32.5 8.5zM362 1367q0 -98 159 -521q17 10 49 10q15 0 75 -5l-121 351q-75 220 -123 220q-19 0 -29 -17.5t-10 -37.5zM283 608q0 -36 51.5 -119 -t117.5 -153t100 -70q14 0 25.5 13t11.5 27q0 24 -32 102q-13 32 -32 72t-47.5 89t-61.5 81t-62 32q-20 0 -45.5 -27t-25.5 -47zM125 273q0 -41 25 -104q59 -145 183.5 -227t281.5 -82q227 0 382 170q152 169 152 427q0 43 -1 67t-11.5 62t-30.5 56q-56 49 -211.5 75.5 -t-270.5 26.5q-37 0 -49 -11q-12 -5 -12 -35q0 -34 21.5 -60t55.5 -40t77.5 -23.5t87.5 -11.5t85 -4t70 0h23q24 0 40 -19q15 -19 19 -55q-28 -28 -96 -54q-61 -22 -93 -46q-64 -46 -108.5 -114t-44.5 -137q0 -31 18.5 -88.5t18.5 -87.5l-3 -12q-4 -12 -4 -14 -q-137 10 -146 216q-8 -2 -41 -2q2 -7 2 -21q0 -53 -40.5 -89.5t-94.5 -36.5q-82 0 -166.5 78t-84.5 159q0 34 33 67q52 -64 60 -76q77 -104 133 -104q12 0 26.5 8.5t14.5 20.5q0 34 -87.5 145t-116.5 111q-43 0 -70 -44.5t-27 -90.5zM11 264q0 101 42.5 163t136.5 88 -q-28 74 -28 104q0 62 61 123t122 61q29 0 70 -15q-163 462 -163 567q0 80 41 130.5t119 50.5q131 0 325 -581q6 -17 8 -23q6 16 29 79.5t43.5 118.5t54 127.5t64.5 123t70.5 86.5t76.5 36q71 0 112 -49t41 -122q0 -108 -159 -550q61 -15 100.5 -46t58.5 -78t26 -93.5 -t7 -110.5q0 -150 -47 -280t-132 -225t-211 -150t-278 -55q-111 0 -223 42q-149 57 -258 191.5t-109 286.5z" /> - <glyph glyph-name="_490" unicode="&#xf20a;" horiz-adv-x="2048" -d="M785 528h207q-14 -158 -98.5 -248.5t-214.5 -90.5q-162 0 -254.5 116t-92.5 316q0 194 93 311.5t233 117.5q148 0 232 -87t97 -247h-203q-5 64 -35.5 99t-81.5 35q-57 0 -88.5 -60.5t-31.5 -177.5q0 -48 5 -84t18 -69.5t40 -51.5t66 -18q95 0 109 139zM1497 528h206 -q-14 -158 -98 -248.5t-214 -90.5q-162 0 -254.5 116t-92.5 316q0 194 93 311.5t233 117.5q148 0 232 -87t97 -247h-204q-4 64 -35 99t-81 35q-57 0 -88.5 -60.5t-31.5 -177.5q0 -48 5 -84t18 -69.5t39.5 -51.5t65.5 -18q49 0 76.5 38t33.5 101zM1856 647q0 207 -15.5 307 -t-60.5 161q-6 8 -13.5 14t-21.5 15t-16 11q-86 63 -697 63q-625 0 -710 -63q-5 -4 -17.5 -11.5t-21 -14t-14.5 -14.5q-45 -60 -60 -159.5t-15 -308.5q0 -208 15 -307.5t60 -160.5q6 -8 15 -15t20.5 -14t17.5 -12q44 -33 239.5 -49t470.5 -16q610 0 697 65q5 4 17 11t20.5 14 -t13.5 16q46 60 61 159t15 309zM2048 1408v-1536h-2048v1536h2048z" /> - <glyph glyph-name="_491" unicode="&#xf20b;" -d="M992 912v-496q0 -14 -9 -23t-23 -9h-160q-14 0 -23 9t-9 23v496q0 112 -80 192t-192 80h-272v-1152q0 -14 -9 -23t-23 -9h-160q-14 0 -23 9t-9 23v1344q0 14 9 23t23 9h464q135 0 249 -66.5t180.5 -180.5t66.5 -249zM1376 1376v-880q0 -135 -66.5 -249t-180.5 -180.5 -t-249 -66.5h-464q-14 0 -23 9t-9 23v960q0 14 9 23t23 9h160q14 0 23 -9t9 -23v-768h272q112 0 192 80t80 192v880q0 14 9 23t23 9h160q14 0 23 -9t9 -23z" /> - <glyph glyph-name="_492" unicode="&#xf20c;" -d="M1311 694v-114q0 -24 -13.5 -38t-37.5 -14h-202q-24 0 -38 14t-14 38v114q0 24 14 38t38 14h202q24 0 37.5 -14t13.5 -38zM821 464v250q0 53 -32.5 85.5t-85.5 32.5h-133q-68 0 -96 -52q-28 52 -96 52h-130q-53 0 -85.5 -32.5t-32.5 -85.5v-250q0 -22 21 -22h55 -q22 0 22 22v230q0 24 13.5 38t38.5 14h94q24 0 38 -14t14 -38v-230q0 -22 21 -22h54q22 0 22 22v230q0 24 14 38t38 14h97q24 0 37.5 -14t13.5 -38v-230q0 -22 22 -22h55q21 0 21 22zM1410 560v154q0 53 -33 85.5t-86 32.5h-264q-53 0 -86 -32.5t-33 -85.5v-410 -q0 -21 22 -21h55q21 0 21 21v180q31 -42 94 -42h191q53 0 86 32.5t33 85.5zM1536 1176v-1072q0 -96 -68 -164t-164 -68h-1072q-96 0 -164 68t-68 164v1072q0 96 68 164t164 68h1072q96 0 164 -68t68 -164z" /> - <glyph glyph-name="_493" unicode="&#xf20d;" -d="M915 450h-294l147 551zM1001 128h311l-324 1024h-440l-324 -1024h311l383 314zM1536 1120v-960q0 -118 -85 -203t-203 -85h-960q-118 0 -203 85t-85 203v960q0 118 85 203t203 85h960q118 0 203 -85t85 -203z" /> - <glyph glyph-name="_494" unicode="&#xf20e;" horiz-adv-x="2048" -d="M2048 641q0 -21 -13 -36.5t-33 -19.5l-205 -356q3 -9 3 -18q0 -20 -12.5 -35.5t-32.5 -19.5l-193 -337q3 -8 3 -16q0 -23 -16.5 -40t-40.5 -17q-25 0 -41 18h-400q-17 -20 -43 -20t-43 20h-399q-17 -20 -43 -20q-23 0 -40 16.5t-17 40.5q0 8 4 20l-193 335 -q-20 4 -32.5 19.5t-12.5 35.5q0 9 3 18l-206 356q-20 5 -32.5 20.5t-12.5 35.5q0 21 13.5 36.5t33.5 19.5l199 344q0 1 -0.5 3t-0.5 3q0 36 34 51l209 363q-4 10 -4 18q0 24 17 40.5t40 16.5q26 0 44 -21h396q16 21 43 21t43 -21h398q18 21 44 21q23 0 40 -16.5t17 -40.5 -q0 -6 -4 -18l207 -358q23 -1 39 -17.5t16 -38.5q0 -13 -7 -27l187 -324q19 -4 31.5 -19.5t12.5 -35.5zM1063 -158h389l-342 354h-143l-342 -354h360q18 16 39 16t39 -16zM112 654q1 -4 1 -13q0 -10 -2 -15l208 -360l15 -6l188 199v347l-187 194q-13 -8 -29 -10zM986 1438 -h-388l190 -200l554 200h-280q-16 -16 -38 -16t-38 16zM1689 226q1 6 5 11l-64 68l-17 -79h76zM1583 226l22 105l-252 266l-296 -307l63 -64h463zM1495 -142l16 28l65 310h-427l333 -343q8 4 13 5zM578 -158h5l342 354h-373v-335l4 -6q14 -5 22 -13zM552 226h402l64 66 -l-309 321l-157 -166v-221zM359 226h163v189l-168 -177q4 -8 5 -12zM358 1051q0 -1 0.5 -2t0.5 -2q0 -16 -8 -29l171 -177v269zM552 1121v-311l153 -157l297 314l-223 236zM556 1425l-4 -8v-264l205 74l-191 201q-6 -2 -10 -3zM1447 1438h-16l-621 -224l213 -225zM1023 946 -l-297 -315l311 -319l296 307zM688 634l-136 141v-284zM1038 270l-42 -44h85zM1374 618l238 -251l132 624l-3 5l-1 1zM1718 1018q-8 13 -8 29v2l-216 376q-5 1 -13 5l-437 -463l310 -327zM522 1142v223l-163 -282zM522 196h-163l163 -283v283zM1607 196l-48 -227l130 227h-82 -zM1729 266l207 361q-2 10 -2 14q0 1 3 16l-171 296l-129 -612l77 -82q5 3 15 7z" /> - <glyph glyph-name="f210" unicode="&#xf210;" -d="M0 856q0 131 91.5 226.5t222.5 95.5h742l352 358v-1470q0 -132 -91.5 -227t-222.5 -95h-780q-131 0 -222.5 95t-91.5 227v790zM1232 102l-176 180v425q0 46 -32 79t-78 33h-484q-46 0 -78 -33t-32 -79v-492q0 -46 32.5 -79.5t77.5 -33.5h770z" /> - <glyph glyph-name="_496" unicode="&#xf211;" -d="M934 1386q-317 -121 -556 -362.5t-358 -560.5q-20 89 -20 176q0 208 102.5 384.5t278.5 279t384 102.5q82 0 169 -19zM1203 1267q93 -65 164 -155q-389 -113 -674.5 -400.5t-396.5 -676.5q-93 72 -155 162q112 386 395 671t667 399zM470 -67q115 356 379.5 622t619.5 384 -q40 -92 54 -195q-292 -120 -516 -345t-343 -518q-103 14 -194 52zM1536 -125q-193 50 -367 115q-135 -84 -290 -107q109 205 274 370.5t369 275.5q-21 -152 -101 -284q65 -175 115 -370z" /> - <glyph glyph-name="f212" unicode="&#xf212;" horiz-adv-x="2048" -d="M1893 1144l155 -1272q-131 0 -257 57q-200 91 -393 91q-226 0 -374 -148q-148 148 -374 148q-193 0 -393 -91q-128 -57 -252 -57h-5l155 1272q224 127 482 127q233 0 387 -106q154 106 387 106q258 0 482 -127zM1398 157q129 0 232 -28.5t260 -93.5l-124 1021 -q-171 78 -368 78q-224 0 -374 -141q-150 141 -374 141q-197 0 -368 -78l-124 -1021q105 43 165.5 65t148.5 39.5t178 17.5q202 0 374 -108q172 108 374 108zM1438 191l-55 907q-211 -4 -359 -155q-152 155 -374 155q-176 0 -336 -66l-114 -941q124 51 228.5 76t221.5 25 -q209 0 374 -102q172 107 374 102z" /> - <glyph glyph-name="_498" unicode="&#xf213;" horiz-adv-x="2048" -d="M1500 165v733q0 21 -15 36t-35 15h-93q-20 0 -35 -15t-15 -36v-733q0 -20 15 -35t35 -15h93q20 0 35 15t15 35zM1216 165v531q0 20 -15 35t-35 15h-101q-20 0 -35 -15t-15 -35v-531q0 -20 15 -35t35 -15h101q20 0 35 15t15 35zM924 165v429q0 20 -15 35t-35 15h-101 -q-20 0 -35 -15t-15 -35v-429q0 -20 15 -35t35 -15h101q20 0 35 15t15 35zM632 165v362q0 20 -15 35t-35 15h-101q-20 0 -35 -15t-15 -35v-362q0 -20 15 -35t35 -15h101q20 0 35 15t15 35zM2048 311q0 -166 -118 -284t-284 -118h-1244q-166 0 -284 118t-118 284 -q0 116 63 214.5t168 148.5q-10 34 -10 73q0 113 80.5 193.5t193.5 80.5q102 0 180 -67q45 183 194 300t338 117q149 0 275 -73.5t199.5 -199.5t73.5 -275q0 -66 -14 -122q135 -33 221 -142.5t86 -247.5z" /> - <glyph glyph-name="_499" unicode="&#xf214;" -d="M0 1536h1536v-1392l-776 -338l-760 338v1392zM1436 209v926h-1336v-926l661 -294zM1436 1235v201h-1336v-201h1336zM181 937v-115h-37v115h37zM181 789v-115h-37v115h37zM181 641v-115h-37v115h37zM181 493v-115h-37v115h37zM181 345v-115h-37v115h37zM207 202l15 34 -l105 -47l-15 -33zM343 142l15 34l105 -46l-15 -34zM478 82l15 34l105 -46l-15 -34zM614 23l15 33l104 -46l-15 -34zM797 10l105 46l15 -33l-105 -47zM932 70l105 46l15 -34l-105 -46zM1068 130l105 46l15 -34l-105 -46zM1203 189l105 47l15 -34l-105 -46zM259 1389v-36h-114 -v36h114zM421 1389v-36h-115v36h115zM583 1389v-36h-115v36h115zM744 1389v-36h-114v36h114zM906 1389v-36h-114v36h114zM1068 1389v-36h-115v36h115zM1230 1389v-36h-115v36h115zM1391 1389v-36h-114v36h114zM181 1049v-79h-37v115h115v-36h-78zM421 1085v-36h-115v36h115z -M583 1085v-36h-115v36h115zM744 1085v-36h-114v36h114zM906 1085v-36h-114v36h114zM1068 1085v-36h-115v36h115zM1230 1085v-36h-115v36h115zM1355 970v79h-78v36h115v-115h-37zM1355 822v115h37v-115h-37zM1355 674v115h37v-115h-37zM1355 526v115h37v-115h-37zM1355 378 -v115h37v-115h-37zM1355 230v115h37v-115h-37zM760 265q-129 0 -221 91.5t-92 221.5q0 129 92 221t221 92q130 0 221.5 -92t91.5 -221q0 -130 -91.5 -221.5t-221.5 -91.5zM595 646q0 -36 19.5 -56.5t49.5 -25t64 -7t64 -2t49.5 -9t19.5 -30.5q0 -49 -112 -49q-97 0 -123 51 -h-3l-31 -63q67 -42 162 -42q29 0 56.5 5t55.5 16t45.5 33t17.5 53q0 46 -27.5 69.5t-67.5 27t-79.5 3t-67 5t-27.5 25.5q0 21 20.5 33t40.5 15t41 3q34 0 70.5 -11t51.5 -34h3l30 58q-3 1 -21 8.5t-22.5 9t-19.5 7t-22 7t-20 4.5t-24 4t-23 1q-29 0 -56.5 -5t-54 -16.5 -t-43 -34t-16.5 -53.5z" /> - <glyph glyph-name="_500" unicode="&#xf215;" horiz-adv-x="2048" -d="M863 504q0 112 -79.5 191.5t-191.5 79.5t-191 -79.5t-79 -191.5t79 -191t191 -79t191.5 79t79.5 191zM1726 505q0 112 -79 191t-191 79t-191.5 -79t-79.5 -191q0 -113 79.5 -192t191.5 -79t191 79.5t79 191.5zM2048 1314v-1348q0 -44 -31.5 -75.5t-76.5 -31.5h-1832 -q-45 0 -76.5 31.5t-31.5 75.5v1348q0 44 31.5 75.5t76.5 31.5h431q44 0 76 -31.5t32 -75.5v-161h754v161q0 44 32 75.5t76 31.5h431q45 0 76.5 -31.5t31.5 -75.5z" /> - <glyph glyph-name="_501" unicode="&#xf216;" horiz-adv-x="2048" -d="M1430 953zM1690 749q148 0 253 -98.5t105 -244.5q0 -157 -109 -261.5t-267 -104.5q-85 0 -162 27.5t-138 73.5t-118 106t-109 126t-103.5 132.5t-108.5 126.5t-117 106t-136 73.5t-159 27.5q-154 0 -251.5 -91.5t-97.5 -244.5q0 -157 104 -250t263 -93q100 0 208 37.5 -t193 98.5q5 4 21 18.5t30 24t22 9.5q14 0 24.5 -10.5t10.5 -24.5q0 -24 -60 -77q-101 -88 -234.5 -142t-260.5 -54q-133 0 -245.5 58t-180 165t-67.5 241q0 205 141.5 341t347.5 136q120 0 226.5 -43.5t185.5 -113t151.5 -153t139 -167.5t133.5 -153.5t149.5 -113 -t172.5 -43.5q102 0 168.5 61.5t66.5 162.5q0 95 -64.5 159t-159.5 64q-30 0 -81.5 -18.5t-68.5 -18.5q-20 0 -35.5 15t-15.5 35q0 18 8.5 57t8.5 59q0 159 -107.5 263t-266.5 104q-58 0 -111.5 -18.5t-84 -40.5t-55.5 -40.5t-33 -18.5q-15 0 -25.5 10.5t-10.5 25.5 -q0 19 25 46q59 67 147 103.5t182 36.5q191 0 318 -125.5t127 -315.5q0 -37 -4 -66q57 15 115 15z" /> - <glyph glyph-name="_502" unicode="&#xf217;" horiz-adv-x="1664" -d="M1216 832q0 26 -19 45t-45 19h-128v128q0 26 -19 45t-45 19t-45 -19t-19 -45v-128h-128q-26 0 -45 -19t-19 -45t19 -45t45 -19h128v-128q0 -26 19 -45t45 -19t45 19t19 45v128h128q26 0 45 19t19 45zM640 0q0 -53 -37.5 -90.5t-90.5 -37.5t-90.5 37.5t-37.5 90.5 -t37.5 90.5t90.5 37.5t90.5 -37.5t37.5 -90.5zM1536 0q0 -53 -37.5 -90.5t-90.5 -37.5t-90.5 37.5t-37.5 90.5t37.5 90.5t90.5 37.5t90.5 -37.5t37.5 -90.5zM1664 1088v-512q0 -24 -16 -42.5t-41 -21.5l-1044 -122q1 -7 4.5 -21.5t6 -26.5t2.5 -22q0 -16 -24 -64h920 -q26 0 45 -19t19 -45t-19 -45t-45 -19h-1024q-26 0 -45 19t-19 45q0 14 11 39.5t29.5 59.5t20.5 38l-177 823h-204q-26 0 -45 19t-19 45t19 45t45 19h256q16 0 28.5 -6.5t20 -15.5t13 -24.5t7.5 -26.5t5.5 -29.5t4.5 -25.5h1201q26 0 45 -19t19 -45z" /> - <glyph glyph-name="_503" unicode="&#xf218;" horiz-adv-x="1664" -d="M1280 832q0 26 -19 45t-45 19t-45 -19l-147 -146v293q0 26 -19 45t-45 19t-45 -19t-19 -45v-293l-147 146q-19 19 -45 19t-45 -19t-19 -45t19 -45l256 -256q19 -19 45 -19t45 19l256 256q19 19 19 45zM640 0q0 -53 -37.5 -90.5t-90.5 -37.5t-90.5 37.5t-37.5 90.5 -t37.5 90.5t90.5 37.5t90.5 -37.5t37.5 -90.5zM1536 0q0 -53 -37.5 -90.5t-90.5 -37.5t-90.5 37.5t-37.5 90.5t37.5 90.5t90.5 37.5t90.5 -37.5t37.5 -90.5zM1664 1088v-512q0 -24 -16 -42.5t-41 -21.5l-1044 -122q1 -7 4.5 -21.5t6 -26.5t2.5 -22q0 -16 -24 -64h920 -q26 0 45 -19t19 -45t-19 -45t-45 -19h-1024q-26 0 -45 19t-19 45q0 14 11 39.5t29.5 59.5t20.5 38l-177 823h-204q-26 0 -45 19t-19 45t19 45t45 19h256q16 0 28.5 -6.5t20 -15.5t13 -24.5t7.5 -26.5t5.5 -29.5t4.5 -25.5h1201q26 0 45 -19t19 -45z" /> - <glyph glyph-name="_504" unicode="&#xf219;" horiz-adv-x="2048" -d="M212 768l623 -665l-300 665h-323zM1024 -4l349 772h-698zM538 896l204 384h-262l-288 -384h346zM1213 103l623 665h-323zM683 896h682l-204 384h-274zM1510 896h346l-288 384h-262zM1651 1382l384 -512q14 -18 13 -41.5t-17 -40.5l-960 -1024q-18 -20 -47 -20t-47 20 -l-960 1024q-16 17 -17 40.5t13 41.5l384 512q18 26 51 26h1152q33 0 51 -26z" /> - <glyph glyph-name="_505" unicode="&#xf21a;" horiz-adv-x="2048" -d="M1811 -19q19 19 45 19t45 -19l128 -128l-90 -90l-83 83l-83 -83q-18 -19 -45 -19t-45 19l-83 83l-83 -83q-19 -19 -45 -19t-45 19l-83 83l-83 -83q-19 -19 -45 -19t-45 19l-83 83l-83 -83q-19 -19 -45 -19t-45 19l-83 83l-83 -83q-19 -19 -45 -19t-45 19l-83 83l-83 -83 -q-19 -19 -45 -19t-45 19l-83 83l-83 -83q-19 -19 -45 -19t-45 19l-128 128l90 90l83 -83l83 83q19 19 45 19t45 -19l83 -83l83 83q19 19 45 19t45 -19l83 -83l83 83q19 19 45 19t45 -19l83 -83l83 83q19 19 45 19t45 -19l83 -83l83 83q19 19 45 19t45 -19l83 -83l83 83 -q19 19 45 19t45 -19l83 -83zM237 19q-19 -19 -45 -19t-45 19l-128 128l90 90l83 -82l83 82q19 19 45 19t45 -19l83 -82l64 64v293l-210 314q-17 26 -7 56.5t40 40.5l177 58v299h128v128h256v128h256v-128h256v-128h128v-299l177 -58q30 -10 40 -40.5t-7 -56.5l-210 -314 -v-293l19 18q19 19 45 19t45 -19l83 -82l83 82q19 19 45 19t45 -19l128 -128l-90 -90l-83 83l-83 -83q-18 -19 -45 -19t-45 19l-83 83l-83 -83q-19 -19 -45 -19t-45 19l-83 83l-83 -83q-19 -19 -45 -19t-45 19l-83 83l-83 -83q-19 -19 -45 -19t-45 19l-83 83l-83 -83 -q-19 -19 -45 -19t-45 19l-83 83l-83 -83q-19 -19 -45 -19t-45 19l-83 83zM640 1152v-128l384 128l384 -128v128h-128v128h-512v-128h-128z" /> - <glyph glyph-name="_506" unicode="&#xf21b;" -d="M576 0l96 448l-96 128l-128 64zM832 0l128 640l-128 -64l-96 -128zM992 1010q-2 4 -4 6q-10 8 -96 8q-70 0 -167 -19q-7 -2 -21 -2t-21 2q-97 19 -167 19q-86 0 -96 -8q-2 -2 -4 -6q2 -18 4 -27q2 -3 7.5 -6.5t7.5 -10.5q2 -4 7.5 -20.5t7 -20.5t7.5 -17t8.5 -17t9 -14 -t12 -13.5t14 -9.5t17.5 -8t20.5 -4t24.5 -2q36 0 59 12.5t32.5 30t14.5 34.5t11.5 29.5t17.5 12.5h12q11 0 17.5 -12.5t11.5 -29.5t14.5 -34.5t32.5 -30t59 -12.5q13 0 24.5 2t20.5 4t17.5 8t14 9.5t12 13.5t9 14t8.5 17t7.5 17t7 20.5t7.5 20.5q2 7 7.5 10.5t7.5 6.5 -q2 9 4 27zM1408 131q0 -121 -73 -190t-194 -69h-874q-121 0 -194 69t-73 190q0 61 4.5 118t19 125.5t37.5 123.5t63.5 103.5t93.5 74.5l-90 220h214q-22 64 -22 128q0 12 2 32q-194 40 -194 96q0 57 210 99q17 62 51.5 134t70.5 114q32 37 76 37q30 0 84 -31t84 -31t84 31 -t84 31q44 0 76 -37q36 -42 70.5 -114t51.5 -134q210 -42 210 -99q0 -56 -194 -96q7 -81 -20 -160h214l-82 -225q63 -33 107.5 -96.5t65.5 -143.5t29 -151.5t8 -148.5z" /> - <glyph glyph-name="_507" unicode="&#xf21c;" horiz-adv-x="2304" -d="M2301 500q12 -103 -22 -198.5t-99 -163.5t-158.5 -106t-196.5 -31q-161 11 -279.5 125t-134.5 274q-12 111 27.5 210.5t118.5 170.5l-71 107q-96 -80 -151 -194t-55 -244q0 -27 -18.5 -46.5t-45.5 -19.5h-256h-69q-23 -164 -149 -274t-294 -110q-185 0 -316.5 131.5 -t-131.5 316.5t131.5 316.5t316.5 131.5q76 0 152 -27l24 45q-123 110 -304 110h-64q-26 0 -45 19t-19 45t19 45t45 19h128q78 0 145 -13.5t116.5 -38.5t71.5 -39.5t51 -36.5h512h115l-85 128h-222q-30 0 -49 22.5t-14 52.5q4 23 23 38t43 15h253q33 0 53 -28l70 -105 -l114 114q19 19 46 19h101q26 0 45 -19t19 -45v-128q0 -26 -19 -45t-45 -19h-179l115 -172q131 63 275 36q143 -26 244 -134.5t118 -253.5zM448 128q115 0 203 72.5t111 183.5h-314q-35 0 -55 31q-18 32 -1 63l147 277q-47 13 -91 13q-132 0 -226 -94t-94 -226t94 -226 -t226 -94zM1856 128q132 0 226 94t94 226t-94 226t-226 94q-60 0 -121 -24l174 -260q15 -23 10 -49t-27 -40q-15 -11 -36 -11q-35 0 -53 29l-174 260q-93 -95 -93 -225q0 -132 94 -226t226 -94z" /> - <glyph glyph-name="_508" unicode="&#xf21d;" -d="M1408 0q0 -63 -61.5 -113.5t-164 -81t-225 -46t-253.5 -15.5t-253.5 15.5t-225 46t-164 81t-61.5 113.5q0 49 33 88.5t91 66.5t118 44.5t131 29.5q26 5 48 -10.5t26 -41.5q5 -26 -10.5 -48t-41.5 -26q-58 -10 -106 -23.5t-76.5 -25.5t-48.5 -23.5t-27.5 -19.5t-8.5 -12 -q3 -11 27 -26.5t73 -33t114 -32.5t160.5 -25t201.5 -10t201.5 10t160.5 25t114 33t73 33.5t27 27.5q-1 4 -8.5 11t-27.5 19t-48.5 23.5t-76.5 25t-106 23.5q-26 4 -41.5 26t-10.5 48q4 26 26 41.5t48 10.5q71 -12 131 -29.5t118 -44.5t91 -66.5t33 -88.5zM1024 896v-384 -q0 -26 -19 -45t-45 -19h-64v-384q0 -26 -19 -45t-45 -19h-256q-26 0 -45 19t-19 45v384h-64q-26 0 -45 19t-19 45v384q0 53 37.5 90.5t90.5 37.5h384q53 0 90.5 -37.5t37.5 -90.5zM928 1280q0 -93 -65.5 -158.5t-158.5 -65.5t-158.5 65.5t-65.5 158.5t65.5 158.5t158.5 65.5 -t158.5 -65.5t65.5 -158.5z" /> - <glyph glyph-name="_509" unicode="&#xf21e;" horiz-adv-x="1792" -d="M1280 512h305q-5 -6 -10 -10.5t-9 -7.5l-3 -4l-623 -600q-18 -18 -44 -18t-44 18l-624 602q-5 2 -21 20h369q22 0 39.5 13.5t22.5 34.5l70 281l190 -667q6 -20 23 -33t39 -13q21 0 38 13t23 33l146 485l56 -112q18 -35 57 -35zM1792 940q0 -145 -103 -300h-369l-111 221 -q-8 17 -25.5 27t-36.5 8q-45 -5 -56 -46l-129 -430l-196 686q-6 20 -23.5 33t-39.5 13t-39 -13.5t-22 -34.5l-116 -464h-423q-103 155 -103 300q0 220 127 344t351 124q62 0 126.5 -21.5t120 -58t95.5 -68.5t76 -68q36 36 76 68t95.5 68.5t120 58t126.5 21.5q224 0 351 -124 -t127 -344z" /> - <glyph glyph-name="venus" unicode="&#xf221;" horiz-adv-x="1280" -d="M1152 960q0 -221 -147.5 -384.5t-364.5 -187.5v-260h224q14 0 23 -9t9 -23v-64q0 -14 -9 -23t-23 -9h-224v-224q0 -14 -9 -23t-23 -9h-64q-14 0 -23 9t-9 23v224h-224q-14 0 -23 9t-9 23v64q0 14 9 23t23 9h224v260q-150 16 -271.5 103t-186 224t-52.5 292 -q11 134 80.5 249t182 188t245.5 88q170 19 319 -54t236 -212t87 -306zM128 960q0 -185 131.5 -316.5t316.5 -131.5t316.5 131.5t131.5 316.5t-131.5 316.5t-316.5 131.5t-316.5 -131.5t-131.5 -316.5z" /> - <glyph glyph-name="_511" unicode="&#xf222;" -d="M1472 1408q26 0 45 -19t19 -45v-416q0 -14 -9 -23t-23 -9h-64q-14 0 -23 9t-9 23v262l-382 -383q126 -156 126 -359q0 -117 -45.5 -223.5t-123 -184t-184 -123t-223.5 -45.5t-223.5 45.5t-184 123t-123 184t-45.5 223.5t45.5 223.5t123 184t184 123t223.5 45.5 -q203 0 359 -126l382 382h-261q-14 0 -23 9t-9 23v64q0 14 9 23t23 9h416zM576 0q185 0 316.5 131.5t131.5 316.5t-131.5 316.5t-316.5 131.5t-316.5 -131.5t-131.5 -316.5t131.5 -316.5t316.5 -131.5z" /> - <glyph glyph-name="_512" unicode="&#xf223;" horiz-adv-x="1280" -d="M830 1220q145 -72 233.5 -210.5t88.5 -305.5q0 -221 -147.5 -384.5t-364.5 -187.5v-132h96q14 0 23 -9t9 -23v-64q0 -14 -9 -23t-23 -9h-96v-96q0 -14 -9 -23t-23 -9h-64q-14 0 -23 9t-9 23v96h-96q-14 0 -23 9t-9 23v64q0 14 9 23t23 9h96v132q-217 24 -364.5 187.5 -t-147.5 384.5q0 167 88.5 305.5t233.5 210.5q-165 96 -228 273q-6 16 3.5 29.5t26.5 13.5h69q21 0 29 -20q44 -106 140 -171t214 -65t214 65t140 171q8 20 37 20h61q17 0 26.5 -13.5t3.5 -29.5q-63 -177 -228 -273zM576 256q185 0 316.5 131.5t131.5 316.5t-131.5 316.5 -t-316.5 131.5t-316.5 -131.5t-131.5 -316.5t131.5 -316.5t316.5 -131.5z" /> - <glyph glyph-name="_513" unicode="&#xf224;" -d="M1024 1504q0 14 9 23t23 9h288q26 0 45 -19t19 -45v-288q0 -14 -9 -23t-23 -9h-64q-14 0 -23 9t-9 23v134l-254 -255q126 -158 126 -359q0 -221 -147.5 -384.5t-364.5 -187.5v-132h96q14 0 23 -9t9 -23v-64q0 -14 -9 -23t-23 -9h-96v-96q0 -14 -9 -23t-23 -9h-64 -q-14 0 -23 9t-9 23v96h-96q-14 0 -23 9t-9 23v64q0 14 9 23t23 9h96v132q-149 16 -270.5 103t-186.5 223.5t-53 291.5q16 204 160 353.5t347 172.5q118 14 228 -19t198 -103l255 254h-134q-14 0 -23 9t-9 23v64zM576 256q185 0 316.5 131.5t131.5 316.5t-131.5 316.5 -t-316.5 131.5t-316.5 -131.5t-131.5 -316.5t131.5 -316.5t316.5 -131.5z" /> - <glyph glyph-name="_514" unicode="&#xf225;" horiz-adv-x="1792" -d="M1280 1504q0 14 9 23t23 9h288q26 0 45 -19t19 -45v-288q0 -14 -9 -23t-23 -9h-64q-14 0 -23 9t-9 23v134l-254 -255q126 -158 126 -359q0 -221 -147.5 -384.5t-364.5 -187.5v-132h96q14 0 23 -9t9 -23v-64q0 -14 -9 -23t-23 -9h-96v-96q0 -14 -9 -23t-23 -9h-64 -q-14 0 -23 9t-9 23v96h-96q-14 0 -23 9t-9 23v64q0 14 9 23t23 9h96v132q-217 24 -364.5 187.5t-147.5 384.5q0 201 126 359l-52 53l-101 -111q-9 -10 -22 -10.5t-23 7.5l-48 44q-10 8 -10.5 21.5t8.5 23.5l105 115l-111 112v-134q0 -14 -9 -23t-23 -9h-64q-14 0 -23 9 -t-9 23v288q0 26 19 45t45 19h288q14 0 23 -9t9 -23v-64q0 -14 -9 -23t-23 -9h-133l106 -107l86 94q9 10 22 10.5t23 -7.5l48 -44q10 -8 10.5 -21.5t-8.5 -23.5l-90 -99l57 -56q158 126 359 126t359 -126l255 254h-134q-14 0 -23 9t-9 23v64zM832 256q185 0 316.5 131.5 -t131.5 316.5t-131.5 316.5t-316.5 131.5t-316.5 -131.5t-131.5 -316.5t131.5 -316.5t316.5 -131.5z" /> - <glyph glyph-name="_515" unicode="&#xf226;" horiz-adv-x="1792" -d="M1790 1007q12 -155 -52.5 -292t-186 -224t-271.5 -103v-260h224q14 0 23 -9t9 -23v-64q0 -14 -9 -23t-23 -9h-224v-224q0 -14 -9 -23t-23 -9h-64q-14 0 -23 9t-9 23v224h-512v-224q0 -14 -9 -23t-23 -9h-64q-14 0 -23 9t-9 23v224h-224q-14 0 -23 9t-9 23v64q0 14 9 23 -t23 9h224v260q-150 16 -271.5 103t-186 224t-52.5 292q17 206 164.5 356.5t352.5 169.5q206 21 377 -94q171 115 377 94q205 -19 352.5 -169.5t164.5 -356.5zM896 647q128 131 128 313t-128 313q-128 -131 -128 -313t128 -313zM576 512q115 0 218 57q-154 165 -154 391 -q0 224 154 391q-103 57 -218 57q-185 0 -316.5 -131.5t-131.5 -316.5t131.5 -316.5t316.5 -131.5zM1152 128v260q-137 15 -256 94q-119 -79 -256 -94v-260h512zM1216 512q185 0 316.5 131.5t131.5 316.5t-131.5 316.5t-316.5 131.5q-115 0 -218 -57q154 -167 154 -391 -q0 -226 -154 -391q103 -57 218 -57z" /> - <glyph glyph-name="_516" unicode="&#xf227;" horiz-adv-x="1920" -d="M1536 1120q0 14 9 23t23 9h288q26 0 45 -19t19 -45v-288q0 -14 -9 -23t-23 -9h-64q-14 0 -23 9t-9 23v134l-254 -255q76 -95 107.5 -214t9.5 -247q-31 -182 -166 -312t-318 -156q-210 -29 -384.5 80t-241.5 300q-117 6 -221 57.5t-177.5 133t-113.5 192.5t-32 230 -q9 135 78 252t182 191.5t248 89.5q118 14 227.5 -19t198.5 -103l255 254h-134q-14 0 -23 9t-9 23v64q0 14 9 23t23 9h288q26 0 45 -19t19 -45v-288q0 -14 -9 -23t-23 -9h-64q-14 0 -23 9t-9 23v134l-254 -255q59 -74 93 -169q182 -9 328 -124l255 254h-134q-14 0 -23 9 -t-9 23v64zM1024 704q0 20 -4 58q-162 -25 -271 -150t-109 -292q0 -20 4 -58q162 25 271 150t109 292zM128 704q0 -168 111 -294t276 -149q-3 29 -3 59q0 210 135 369.5t338 196.5q-53 120 -163.5 193t-245.5 73q-185 0 -316.5 -131.5t-131.5 -316.5zM1088 -128 -q185 0 316.5 131.5t131.5 316.5q0 168 -111 294t-276 149q3 -28 3 -59q0 -210 -135 -369.5t-338 -196.5q53 -120 163.5 -193t245.5 -73z" /> - <glyph glyph-name="_517" unicode="&#xf228;" horiz-adv-x="2048" -d="M1664 1504q0 14 9 23t23 9h288q26 0 45 -19t19 -45v-288q0 -14 -9 -23t-23 -9h-64q-14 0 -23 9t-9 23v134l-254 -255q76 -95 107.5 -214t9.5 -247q-32 -180 -164.5 -310t-313.5 -157q-223 -34 -409 90q-117 -78 -256 -93v-132h96q14 0 23 -9t9 -23v-64q0 -14 -9 -23 -t-23 -9h-96v-96q0 -14 -9 -23t-23 -9h-64q-14 0 -23 9t-9 23v96h-96q-14 0 -23 9t-9 23v64q0 14 9 23t23 9h96v132q-155 17 -279.5 109.5t-187 237.5t-39.5 307q25 187 159.5 322.5t320.5 164.5q224 34 410 -90q146 97 320 97q201 0 359 -126l255 254h-134q-14 0 -23 9 -t-9 23v64zM896 391q128 131 128 313t-128 313q-128 -131 -128 -313t128 -313zM128 704q0 -185 131.5 -316.5t316.5 -131.5q117 0 218 57q-154 167 -154 391t154 391q-101 57 -218 57q-185 0 -316.5 -131.5t-131.5 -316.5zM1216 256q185 0 316.5 131.5t131.5 316.5 -t-131.5 316.5t-316.5 131.5q-117 0 -218 -57q154 -167 154 -391t-154 -391q101 -57 218 -57z" /> - <glyph glyph-name="_518" unicode="&#xf229;" -d="M1472 1408q26 0 45 -19t19 -45v-416q0 -14 -9 -23t-23 -9h-64q-14 0 -23 9t-9 23v262l-213 -214l140 -140q9 -10 9 -23t-9 -22l-46 -46q-9 -9 -22 -9t-23 9l-140 141l-78 -79q126 -156 126 -359q0 -117 -45.5 -223.5t-123 -184t-184 -123t-223.5 -45.5t-223.5 45.5 -t-184 123t-123 184t-45.5 223.5t45.5 223.5t123 184t184 123t223.5 45.5q203 0 359 -126l78 78l-172 172q-9 10 -9 23t9 22l46 46q9 9 22 9t23 -9l172 -172l213 213h-261q-14 0 -23 9t-9 23v64q0 14 9 23t23 9h416zM576 0q185 0 316.5 131.5t131.5 316.5t-131.5 316.5 -t-316.5 131.5t-316.5 -131.5t-131.5 -316.5t131.5 -316.5t316.5 -131.5z" /> - <glyph glyph-name="_519" unicode="&#xf22a;" horiz-adv-x="1280" -d="M640 892q217 -24 364.5 -187.5t147.5 -384.5q0 -167 -87 -306t-236 -212t-319 -54q-133 15 -245.5 88t-182 188t-80.5 249q-12 155 52.5 292t186 224t271.5 103v132h-160q-14 0 -23 9t-9 23v64q0 14 9 23t23 9h160v165l-92 -92q-10 -9 -23 -9t-22 9l-46 46q-9 9 -9 22 -t9 23l202 201q19 19 45 19t45 -19l202 -201q9 -10 9 -23t-9 -22l-46 -46q-9 -9 -22 -9t-23 9l-92 92v-165h160q14 0 23 -9t9 -23v-64q0 -14 -9 -23t-23 -9h-160v-132zM576 -128q185 0 316.5 131.5t131.5 316.5t-131.5 316.5t-316.5 131.5t-316.5 -131.5t-131.5 -316.5 -t131.5 -316.5t316.5 -131.5z" /> - <glyph glyph-name="_520" unicode="&#xf22b;" horiz-adv-x="2048" -d="M1901 621q19 -19 19 -45t-19 -45l-294 -294q-9 -10 -22.5 -10t-22.5 10l-45 45q-10 9 -10 22.5t10 22.5l185 185h-294v-224q0 -14 -9 -23t-23 -9h-64q-14 0 -23 9t-9 23v224h-132q-24 -217 -187.5 -364.5t-384.5 -147.5q-167 0 -306 87t-212 236t-54 319q15 133 88 245.5 -t188 182t249 80.5q155 12 292 -52.5t224 -186t103 -271.5h132v224q0 14 9 23t23 9h64q14 0 23 -9t9 -23v-224h294l-185 185q-10 9 -10 22.5t10 22.5l45 45q9 10 22.5 10t22.5 -10zM576 128q185 0 316.5 131.5t131.5 316.5t-131.5 316.5t-316.5 131.5t-316.5 -131.5 -t-131.5 -316.5t131.5 -316.5t316.5 -131.5z" /> - <glyph glyph-name="_521" unicode="&#xf22c;" horiz-adv-x="1280" -d="M1152 960q0 -221 -147.5 -384.5t-364.5 -187.5v-612q0 -14 -9 -23t-23 -9h-64q-14 0 -23 9t-9 23v612q-217 24 -364.5 187.5t-147.5 384.5q0 117 45.5 223.5t123 184t184 123t223.5 45.5t223.5 -45.5t184 -123t123 -184t45.5 -223.5zM576 512q185 0 316.5 131.5 -t131.5 316.5t-131.5 316.5t-316.5 131.5t-316.5 -131.5t-131.5 -316.5t131.5 -316.5t316.5 -131.5z" /> - <glyph glyph-name="_522" unicode="&#xf22d;" horiz-adv-x="1280" -d="M1024 576q0 185 -131.5 316.5t-316.5 131.5t-316.5 -131.5t-131.5 -316.5t131.5 -316.5t316.5 -131.5t316.5 131.5t131.5 316.5zM1152 576q0 -117 -45.5 -223.5t-123 -184t-184 -123t-223.5 -45.5t-223.5 45.5t-184 123t-123 184t-45.5 223.5t45.5 223.5t123 184t184 123 -t223.5 45.5t223.5 -45.5t184 -123t123 -184t45.5 -223.5z" /> - <glyph glyph-name="_523" unicode="&#xf22e;" horiz-adv-x="1792" - /> - <glyph glyph-name="_524" unicode="&#xf22f;" horiz-adv-x="1792" - /> - <glyph glyph-name="_525" unicode="&#xf230;" -d="M1451 1408q35 0 60 -25t25 -60v-1366q0 -35 -25 -60t-60 -25h-391v595h199l30 232h-229v148q0 56 23.5 84t91.5 28l122 1v207q-63 9 -178 9q-136 0 -217.5 -80t-81.5 -226v-171h-200v-232h200v-595h-735q-35 0 -60 25t-25 60v1366q0 35 25 60t60 25h1366z" /> - <glyph glyph-name="_526" unicode="&#xf231;" horiz-adv-x="1280" -d="M0 939q0 108 37.5 203.5t103.5 166.5t152 123t185 78t202 26q158 0 294 -66.5t221 -193.5t85 -287q0 -96 -19 -188t-60 -177t-100 -149.5t-145 -103t-189 -38.5q-68 0 -135 32t-96 88q-10 -39 -28 -112.5t-23.5 -95t-20.5 -71t-26 -71t-32 -62.5t-46 -77.5t-62 -86.5 -l-14 -5l-9 10q-15 157 -15 188q0 92 21.5 206.5t66.5 287.5t52 203q-32 65 -32 169q0 83 52 156t132 73q61 0 95 -40.5t34 -102.5q0 -66 -44 -191t-44 -187q0 -63 45 -104.5t109 -41.5q55 0 102 25t78.5 68t56 95t38 110.5t20 111t6.5 99.5q0 173 -109.5 269.5t-285.5 96.5 -q-200 0 -334 -129.5t-134 -328.5q0 -44 12.5 -85t27 -65t27 -45.5t12.5 -30.5q0 -28 -15 -73t-37 -45q-2 0 -17 3q-51 15 -90.5 56t-61 94.5t-32.5 108t-11 106.5z" /> - <glyph glyph-name="_527" unicode="&#xf232;" -d="M985 562q13 0 97.5 -44t89.5 -53q2 -5 2 -15q0 -33 -17 -76q-16 -39 -71 -65.5t-102 -26.5q-57 0 -190 62q-98 45 -170 118t-148 185q-72 107 -71 194v8q3 91 74 158q24 22 52 22q6 0 18 -1.5t19 -1.5q19 0 26.5 -6.5t15.5 -27.5q8 -20 33 -88t25 -75q0 -21 -34.5 -57.5 -t-34.5 -46.5q0 -7 5 -15q34 -73 102 -137q56 -53 151 -101q12 -7 22 -7q15 0 54 48.5t52 48.5zM782 32q127 0 243.5 50t200.5 134t134 200.5t50 243.5t-50 243.5t-134 200.5t-200.5 134t-243.5 50t-243.5 -50t-200.5 -134t-134 -200.5t-50 -243.5q0 -203 120 -368l-79 -233 -l242 77q158 -104 345 -104zM782 1414q153 0 292.5 -60t240.5 -161t161 -240.5t60 -292.5t-60 -292.5t-161 -240.5t-240.5 -161t-292.5 -60q-195 0 -365 94l-417 -134l136 405q-108 178 -108 389q0 153 60 292.5t161 240.5t240.5 161t292.5 60z" /> - <glyph glyph-name="_528" unicode="&#xf233;" horiz-adv-x="1792" -d="M128 128h1024v128h-1024v-128zM128 640h1024v128h-1024v-128zM1696 192q0 40 -28 68t-68 28t-68 -28t-28 -68t28 -68t68 -28t68 28t28 68zM128 1152h1024v128h-1024v-128zM1696 704q0 40 -28 68t-68 28t-68 -28t-28 -68t28 -68t68 -28t68 28t28 68zM1696 1216 -q0 40 -28 68t-68 28t-68 -28t-28 -68t28 -68t68 -28t68 28t28 68zM1792 384v-384h-1792v384h1792zM1792 896v-384h-1792v384h1792zM1792 1408v-384h-1792v384h1792z" /> - <glyph glyph-name="_529" unicode="&#xf234;" horiz-adv-x="2048" -d="M704 640q-159 0 -271.5 112.5t-112.5 271.5t112.5 271.5t271.5 112.5t271.5 -112.5t112.5 -271.5t-112.5 -271.5t-271.5 -112.5zM1664 512h352q13 0 22.5 -9.5t9.5 -22.5v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-352v-352q0 -13 -9.5 -22.5t-22.5 -9.5h-192q-13 0 -22.5 9.5 -t-9.5 22.5v352h-352q-13 0 -22.5 9.5t-9.5 22.5v192q0 13 9.5 22.5t22.5 9.5h352v352q0 13 9.5 22.5t22.5 9.5h192q13 0 22.5 -9.5t9.5 -22.5v-352zM928 288q0 -52 38 -90t90 -38h256v-238q-68 -50 -171 -50h-874q-121 0 -194 69t-73 190q0 53 3.5 103.5t14 109t26.5 108.5 -t43 97.5t62 81t85.5 53.5t111.5 20q19 0 39 -17q79 -61 154.5 -91.5t164.5 -30.5t164.5 30.5t154.5 91.5q20 17 39 17q132 0 217 -96h-223q-52 0 -90 -38t-38 -90v-192z" /> - <glyph glyph-name="_530" unicode="&#xf235;" horiz-adv-x="2048" -d="M704 640q-159 0 -271.5 112.5t-112.5 271.5t112.5 271.5t271.5 112.5t271.5 -112.5t112.5 -271.5t-112.5 -271.5t-271.5 -112.5zM1781 320l249 -249q9 -9 9 -23q0 -13 -9 -22l-136 -136q-9 -9 -22 -9q-14 0 -23 9l-249 249l-249 -249q-9 -9 -23 -9q-13 0 -22 9l-136 136 -q-9 9 -9 22q0 14 9 23l249 249l-249 249q-9 9 -9 23q0 13 9 22l136 136q9 9 22 9q14 0 23 -9l249 -249l249 249q9 9 23 9q13 0 22 -9l136 -136q9 -9 9 -22q0 -14 -9 -23zM1283 320l-181 -181q-37 -37 -37 -91q0 -53 37 -90l83 -83q-21 -3 -44 -3h-874q-121 0 -194 69 -t-73 190q0 53 3.5 103.5t14 109t26.5 108.5t43 97.5t62 81t85.5 53.5t111.5 20q19 0 39 -17q154 -122 319 -122t319 122q20 17 39 17q28 0 57 -6q-28 -27 -41 -50t-13 -56q0 -54 37 -91z" /> - <glyph glyph-name="_531" unicode="&#xf236;" horiz-adv-x="2048" -d="M256 512h1728q26 0 45 -19t19 -45v-448h-256v256h-1536v-256h-256v1216q0 26 19 45t45 19h128q26 0 45 -19t19 -45v-704zM832 832q0 106 -75 181t-181 75t-181 -75t-75 -181t75 -181t181 -75t181 75t75 181zM2048 576v64q0 159 -112.5 271.5t-271.5 112.5h-704 -q-26 0 -45 -19t-19 -45v-384h1152z" /> - <glyph glyph-name="_532" unicode="&#xf237;" -d="M1536 1536l-192 -448h192v-192h-274l-55 -128h329v-192h-411l-357 -832l-357 832h-411v192h329l-55 128h-274v192h192l-192 448h256l323 -768h378l323 768h256zM768 320l108 256h-216z" /> - <glyph glyph-name="_533" unicode="&#xf238;" -d="M1088 1536q185 0 316.5 -93.5t131.5 -226.5v-896q0 -130 -125.5 -222t-305.5 -97l213 -202q16 -15 8 -35t-30 -20h-1056q-22 0 -30 20t8 35l213 202q-180 5 -305.5 97t-125.5 222v896q0 133 131.5 226.5t316.5 93.5h640zM768 192q80 0 136 56t56 136t-56 136t-136 56 -t-136 -56t-56 -136t56 -136t136 -56zM1344 768v512h-1152v-512h1152z" /> - <glyph glyph-name="_534" unicode="&#xf239;" -d="M1088 1536q185 0 316.5 -93.5t131.5 -226.5v-896q0 -130 -125.5 -222t-305.5 -97l213 -202q16 -15 8 -35t-30 -20h-1056q-22 0 -30 20t8 35l213 202q-180 5 -305.5 97t-125.5 222v896q0 133 131.5 226.5t316.5 93.5h640zM288 224q66 0 113 47t47 113t-47 113t-113 47 -t-113 -47t-47 -113t47 -113t113 -47zM704 768v512h-544v-512h544zM1248 224q66 0 113 47t47 113t-47 113t-113 47t-113 -47t-47 -113t47 -113t113 -47zM1408 768v512h-576v-512h576z" /> - <glyph glyph-name="_535" unicode="&#xf23a;" horiz-adv-x="1792" -d="M597 1115v-1173q0 -25 -12.5 -42.5t-36.5 -17.5q-17 0 -33 8l-465 233q-21 10 -35.5 33.5t-14.5 46.5v1140q0 20 10 34t29 14q14 0 44 -15l511 -256q3 -3 3 -5zM661 1014l534 -866l-534 266v600zM1792 996v-1054q0 -25 -14 -40.5t-38 -15.5t-47 13l-441 220zM1789 1116 -q0 -3 -256.5 -419.5t-300.5 -487.5l-390 634l324 527q17 28 52 28q14 0 26 -6l541 -270q4 -2 4 -6z" /> - <glyph glyph-name="_536" unicode="&#xf23b;" -d="M809 532l266 499h-112l-157 -312q-24 -48 -44 -92l-42 92l-155 312h-120l263 -493v-324h101v318zM1536 1408v-1536h-1536v1536h1536z" /> - <glyph glyph-name="_537" unicode="&#xf23c;" horiz-adv-x="2296" -d="M478 -139q-8 -16 -27 -34.5t-37 -25.5q-25 -9 -51.5 3.5t-28.5 31.5q-1 22 40 55t68 38q23 4 34 -21.5t2 -46.5zM1819 -139q7 -16 26 -34.5t38 -25.5q25 -9 51.5 3.5t27.5 31.5q2 22 -39.5 55t-68.5 38q-22 4 -33 -21.5t-2 -46.5zM1867 -30q13 -27 56.5 -59.5t77.5 -41.5 -q45 -13 82 4.5t37 50.5q0 46 -67.5 100.5t-115.5 59.5q-40 5 -63.5 -37.5t-6.5 -76.5zM428 -30q-13 -27 -56 -59.5t-77 -41.5q-45 -13 -82 4.5t-37 50.5q0 46 67.5 100.5t115.5 59.5q40 5 63 -37.5t6 -76.5zM1158 1094h1q-41 0 -76 -15q27 -8 44 -30.5t17 -49.5 -q0 -35 -27 -60t-65 -25q-52 0 -80 43q-5 -23 -5 -42q0 -74 56 -126.5t135 -52.5q80 0 136 52.5t56 126.5t-56 126.5t-136 52.5zM1462 1312q-99 109 -220.5 131.5t-245.5 -44.5q27 60 82.5 96.5t118 39.5t121.5 -17t99.5 -74.5t44.5 -131.5zM2212 73q8 -11 -11 -42 -q7 -23 7 -40q1 -56 -44.5 -112.5t-109.5 -91.5t-118 -37q-48 -2 -92 21.5t-66 65.5q-687 -25 -1259 0q-23 -41 -66.5 -65t-92.5 -22q-86 3 -179.5 80.5t-92.5 160.5q2 22 7 40q-19 31 -11 42q6 10 31 1q14 22 41 51q-7 29 2 38q11 10 39 -4q29 20 59 34q0 29 13 37 -q23 12 51 -16q35 5 61 -2q18 -4 38 -19v73q-11 0 -18 2q-53 10 -97 44.5t-55 87.5q-9 38 0 81q15 62 93 95q2 17 19 35.5t36 23.5t33 -7.5t19 -30.5h13q46 -5 60 -23q3 -3 5 -7q10 1 30.5 3.5t30.5 3.5q-15 11 -30 17q-23 40 -91 43q0 6 1 10q-62 2 -118.5 18.5t-84.5 47.5 -q-32 36 -42.5 92t-2.5 112q16 126 90 179q23 16 52 4.5t32 -40.5q0 -1 1.5 -14t2.5 -21t3 -20t5.5 -19t8.5 -10q27 -14 76 -12q48 46 98 74q-40 4 -162 -14l47 46q61 58 163 111q145 73 282 86q-20 8 -41 15.5t-47 14t-42.5 10.5t-47.5 11t-43 10q595 126 904 -139 -q98 -84 158 -222q85 -10 121 9h1q5 3 8.5 10t5.5 19t3 19.5t3 21.5l1 14q3 28 32 40t52 -5q73 -52 91 -178q7 -57 -3.5 -113t-42.5 -91q-28 -32 -83.5 -48.5t-115.5 -18.5v-10q-71 -2 -95 -43q-14 -5 -31 -17q11 -1 32 -3.5t30 -3.5q1 5 5 8q16 18 60 23h13q5 18 19 30t33 8 -t36 -23t19 -36q79 -32 93 -95q9 -40 1 -81q-12 -53 -56 -88t-97 -44q-10 -2 -17 -2q0 -49 -1 -73q20 15 38 19q26 7 61 2q28 28 51 16q14 -9 14 -37q33 -16 59 -34q27 13 38 4q10 -10 2 -38q28 -30 41 -51q23 8 31 -1zM1937 1025q0 -29 -9 -54q82 -32 112 -132 -q4 37 -9.5 98.5t-41.5 90.5q-20 19 -36 17t-16 -20zM1859 925q35 -42 47.5 -108.5t-0.5 -124.5q67 13 97 45q13 14 18 28q-3 64 -31 114.5t-79 66.5q-15 -15 -52 -21zM1822 921q-30 0 -44 1q42 -115 53 -239q21 0 43 3q16 68 1 135t-53 100zM258 839q30 100 112 132 -q-9 25 -9 54q0 18 -16.5 20t-35.5 -17q-28 -29 -41.5 -90.5t-9.5 -98.5zM294 737q29 -31 97 -45q-13 58 -0.5 124.5t47.5 108.5v0q-37 6 -52 21q-51 -16 -78.5 -66t-31.5 -115q9 -17 18 -28zM471 683q14 124 73 235q-19 -4 -55 -18l-45 -19v1q-46 -89 -20 -196q25 -3 47 -3z -M1434 644q8 -38 16.5 -108.5t11.5 -89.5q3 -18 9.5 -21.5t23.5 4.5q40 20 62 85.5t23 125.5q-24 2 -146 4zM1152 1285q-116 0 -199 -82.5t-83 -198.5q0 -117 83 -199.5t199 -82.5t199 82.5t83 199.5q0 116 -83 198.5t-199 82.5zM1380 646q-105 2 -211 0v1q-1 -27 2.5 -86 -t13.5 -66q29 -14 93.5 -14.5t95.5 10.5q9 3 11 39t-0.5 69.5t-4.5 46.5zM1112 447q8 4 9.5 48t-0.5 88t-4 63v1q-212 -3 -214 -3q-4 -20 -7 -62t0 -83t14 -46q34 -15 101 -16t101 10zM718 636q-16 -59 4.5 -118.5t77.5 -84.5q15 -8 24 -5t12 21q3 16 8 90t10 103 -q-69 -2 -136 -6zM591 510q3 -23 -34 -36q132 -141 271.5 -240t305.5 -154q172 49 310.5 146t293.5 250q-33 13 -30 34q0 2 0.5 3.5t1.5 3t1 2.5v1v-1q-17 2 -50 5.5t-48 4.5q-26 -90 -82 -132q-51 -38 -82 1q-5 6 -9 14q-7 13 -17 62q-2 -5 -5 -9t-7.5 -7t-8 -5.5t-9.5 -4 -l-10 -2.5t-12 -2l-12 -1.5t-13.5 -1t-13.5 -0.5q-106 -9 -163 11q-4 -17 -10 -26.5t-21 -15t-23 -7t-36 -3.5q-6 -1 -9 -1q-179 -17 -203 40q-2 -63 -56 -54q-47 8 -91 54q-12 13 -20 26q-17 29 -26 65q-58 -6 -87 -10q1 -2 4 -10zM507 -118q3 14 3 30q-17 71 -51 130 -t-73 70q-41 12 -101.5 -14.5t-104.5 -80t-39 -107.5q35 -53 100 -93t119 -42q51 -2 94 28t53 79zM510 53q23 -63 27 -119q195 113 392 174q-98 52 -180.5 120t-179.5 165q-6 -4 -29 -13q0 -1 -1 -4t-1 -5q31 -18 22 -37q-12 -23 -56 -34q-10 -13 -29 -24h-1q-2 -83 1 -150 -q19 -34 35 -73zM579 -113q532 -21 1145 0q-254 147 -428 196q-76 -35 -156 -57q-8 -3 -16 0q-65 21 -129 49q-208 -60 -416 -188h-1v-1q1 0 1 1zM1763 -67q4 54 28 120q14 38 33 71l-1 -1q3 77 3 153q-15 8 -30 25q-42 9 -56 33q-9 20 22 38q-2 4 -2 9q-16 4 -28 12 -q-204 -190 -383 -284q198 -59 414 -176zM2155 -90q5 54 -39 107.5t-104 80t-102 14.5q-38 -11 -72.5 -70.5t-51.5 -129.5q0 -16 3 -30q10 -49 53 -79t94 -28q54 2 119 42t100 93z" /> - <glyph glyph-name="_538" unicode="&#xf23d;" horiz-adv-x="2304" -d="M1524 -25q0 -68 -48 -116t-116 -48t-116.5 48t-48.5 116t48.5 116.5t116.5 48.5t116 -48.5t48 -116.5zM775 -25q0 -68 -48.5 -116t-116.5 -48t-116 48t-48 116t48 116.5t116 48.5t116.5 -48.5t48.5 -116.5zM0 1469q57 -60 110.5 -104.5t121 -82t136 -63t166 -45.5 -t200 -31.5t250 -18.5t304 -9.5t372.5 -2.5q139 0 244.5 -5t181 -16.5t124 -27.5t71 -39.5t24 -51.5t-19.5 -64t-56.5 -76.5t-89.5 -91t-116 -104.5t-139 -119q-185 -157 -286 -247q29 51 76.5 109t94 105.5t94.5 98.5t83 91.5t54 80.5t13 70t-45.5 55.5t-116.5 41t-204 23.5 -t-304 5q-168 -2 -314 6t-256 23t-204.5 41t-159.5 51.5t-122.5 62.5t-91.5 66.5t-68 71.5t-50.5 69.5t-40 68t-36.5 59.5z" /> - <glyph glyph-name="_539" unicode="&#xf23e;" horiz-adv-x="1792" -d="M896 1472q-169 0 -323 -66t-265.5 -177.5t-177.5 -265.5t-66 -323t66 -323t177.5 -265.5t265.5 -177.5t323 -66t323 66t265.5 177.5t177.5 265.5t66 323t-66 323t-177.5 265.5t-265.5 177.5t-323 66zM896 1536q182 0 348 -71t286 -191t191 -286t71 -348t-71 -348 -t-191 -286t-286 -191t-348 -71t-348 71t-286 191t-191 286t-71 348t71 348t191 286t286 191t348 71zM496 704q16 0 16 -16v-480q0 -16 -16 -16h-32q-16 0 -16 16v480q0 16 16 16h32zM896 640q53 0 90.5 -37.5t37.5 -90.5q0 -35 -17.5 -64t-46.5 -46v-114q0 -14 -9 -23 -t-23 -9h-64q-14 0 -23 9t-9 23v114q-29 17 -46.5 46t-17.5 64q0 53 37.5 90.5t90.5 37.5zM896 1408q209 0 385.5 -103t279.5 -279.5t103 -385.5t-103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103zM544 928v-96 -q0 -14 9 -23t23 -9h64q14 0 23 9t9 23v96q0 93 65.5 158.5t158.5 65.5t158.5 -65.5t65.5 -158.5v-96q0 -14 9 -23t23 -9h64q14 0 23 9t9 23v96q0 146 -103 249t-249 103t-249 -103t-103 -249zM1408 192v512q0 26 -19 45t-45 19h-896q-26 0 -45 -19t-19 -45v-512 -q0 -26 19 -45t45 -19h896q26 0 45 19t19 45z" /> - <glyph glyph-name="_540" unicode="&#xf240;" horiz-adv-x="2304" -d="M1920 1024v-768h-1664v768h1664zM2048 448h128v384h-128v288q0 14 -9 23t-23 9h-1856q-14 0 -23 -9t-9 -23v-960q0 -14 9 -23t23 -9h1856q14 0 23 9t9 23v288zM2304 832v-384q0 -53 -37.5 -90.5t-90.5 -37.5v-160q0 -66 -47 -113t-113 -47h-1856q-66 0 -113 47t-47 113 -v960q0 66 47 113t113 47h1856q66 0 113 -47t47 -113v-160q53 0 90.5 -37.5t37.5 -90.5z" /> - <glyph glyph-name="_541" unicode="&#xf241;" horiz-adv-x="2304" -d="M256 256v768h1280v-768h-1280zM2176 960q53 0 90.5 -37.5t37.5 -90.5v-384q0 -53 -37.5 -90.5t-90.5 -37.5v-160q0 -66 -47 -113t-113 -47h-1856q-66 0 -113 47t-47 113v960q0 66 47 113t113 47h1856q66 0 113 -47t47 -113v-160zM2176 448v384h-128v288q0 14 -9 23t-23 9 -h-1856q-14 0 -23 -9t-9 -23v-960q0 -14 9 -23t23 -9h1856q14 0 23 9t9 23v288h128z" /> - <glyph glyph-name="_542" unicode="&#xf242;" horiz-adv-x="2304" -d="M256 256v768h896v-768h-896zM2176 960q53 0 90.5 -37.5t37.5 -90.5v-384q0 -53 -37.5 -90.5t-90.5 -37.5v-160q0 -66 -47 -113t-113 -47h-1856q-66 0 -113 47t-47 113v960q0 66 47 113t113 47h1856q66 0 113 -47t47 -113v-160zM2176 448v384h-128v288q0 14 -9 23t-23 9 -h-1856q-14 0 -23 -9t-9 -23v-960q0 -14 9 -23t23 -9h1856q14 0 23 9t9 23v288h128z" /> - <glyph glyph-name="_543" unicode="&#xf243;" horiz-adv-x="2304" -d="M256 256v768h512v-768h-512zM2176 960q53 0 90.5 -37.5t37.5 -90.5v-384q0 -53 -37.5 -90.5t-90.5 -37.5v-160q0 -66 -47 -113t-113 -47h-1856q-66 0 -113 47t-47 113v960q0 66 47 113t113 47h1856q66 0 113 -47t47 -113v-160zM2176 448v384h-128v288q0 14 -9 23t-23 9 -h-1856q-14 0 -23 -9t-9 -23v-960q0 -14 9 -23t23 -9h1856q14 0 23 9t9 23v288h128z" /> - <glyph glyph-name="_544" unicode="&#xf244;" horiz-adv-x="2304" -d="M2176 960q53 0 90.5 -37.5t37.5 -90.5v-384q0 -53 -37.5 -90.5t-90.5 -37.5v-160q0 -66 -47 -113t-113 -47h-1856q-66 0 -113 47t-47 113v960q0 66 47 113t113 47h1856q66 0 113 -47t47 -113v-160zM2176 448v384h-128v288q0 14 -9 23t-23 9h-1856q-14 0 -23 -9t-9 -23 -v-960q0 -14 9 -23t23 -9h1856q14 0 23 9t9 23v288h128z" /> - <glyph glyph-name="_545" unicode="&#xf245;" horiz-adv-x="1280" -d="M1133 493q31 -30 14 -69q-17 -40 -59 -40h-382l201 -476q10 -25 0 -49t-34 -35l-177 -75q-25 -10 -49 0t-35 34l-191 452l-312 -312q-19 -19 -45 -19q-12 0 -24 5q-40 17 -40 59v1504q0 42 40 59q12 5 24 5q27 0 45 -19z" /> - <glyph glyph-name="_546" unicode="&#xf246;" horiz-adv-x="1024" -d="M832 1408q-320 0 -320 -224v-416h128v-128h-128v-544q0 -224 320 -224h64v-128h-64q-272 0 -384 146q-112 -146 -384 -146h-64v128h64q320 0 320 224v544h-128v128h128v416q0 224 -320 224h-64v128h64q272 0 384 -146q112 146 384 146h64v-128h-64z" /> - <glyph glyph-name="_547" unicode="&#xf247;" horiz-adv-x="2048" -d="M2048 1152h-128v-1024h128v-384h-384v128h-1280v-128h-384v384h128v1024h-128v384h384v-128h1280v128h384v-384zM1792 1408v-128h128v128h-128zM128 1408v-128h128v128h-128zM256 -128v128h-128v-128h128zM1664 0v128h128v1024h-128v128h-1280v-128h-128v-1024h128v-128 -h1280zM1920 -128v128h-128v-128h128zM1280 896h384v-768h-896v256h-384v768h896v-256zM512 512h640v512h-640v-512zM1536 256v512h-256v-384h-384v-128h640z" /> - <glyph glyph-name="_548" unicode="&#xf248;" horiz-adv-x="2304" -d="M2304 768h-128v-640h128v-384h-384v128h-896v-128h-384v384h128v128h-384v-128h-384v384h128v640h-128v384h384v-128h896v128h384v-384h-128v-128h384v128h384v-384zM2048 1024v-128h128v128h-128zM1408 1408v-128h128v128h-128zM128 1408v-128h128v128h-128zM256 256 -v128h-128v-128h128zM1536 384h-128v-128h128v128zM384 384h896v128h128v640h-128v128h-896v-128h-128v-640h128v-128zM896 -128v128h-128v-128h128zM2176 -128v128h-128v-128h128zM2048 128v640h-128v128h-384v-384h128v-384h-384v128h-384v-128h128v-128h896v128h128z" /> - <glyph glyph-name="_549" unicode="&#xf249;" -d="M1024 288v-416h-928q-40 0 -68 28t-28 68v1344q0 40 28 68t68 28h1344q40 0 68 -28t28 -68v-928h-416q-40 0 -68 -28t-28 -68zM1152 256h381q-15 -82 -65 -132l-184 -184q-50 -50 -132 -65v381z" /> - <glyph glyph-name="_550" unicode="&#xf24a;" -d="M1400 256h-248v-248q29 10 41 22l185 185q12 12 22 41zM1120 384h288v896h-1280v-1280h896v288q0 40 28 68t68 28zM1536 1312v-1024q0 -40 -20 -88t-48 -76l-184 -184q-28 -28 -76 -48t-88 -20h-1024q-40 0 -68 28t-28 68v1344q0 40 28 68t68 28h1344q40 0 68 -28t28 -68 -z" /> - <glyph glyph-name="_551" unicode="&#xf24b;" horiz-adv-x="2304" -d="M1951 538q0 -26 -15.5 -44.5t-38.5 -23.5q-8 -2 -18 -2h-153v140h153q10 0 18 -2q23 -5 38.5 -23.5t15.5 -44.5zM1933 751q0 -25 -15 -42t-38 -21q-3 -1 -15 -1h-139v129h139q3 0 8.5 -0.5t6.5 -0.5q23 -4 38 -21.5t15 -42.5zM728 587v308h-228v-308q0 -58 -38 -94.5 -t-105 -36.5q-108 0 -229 59v-112q53 -15 121 -23t109 -9l42 -1q328 0 328 217zM1442 403v113q-99 -52 -200 -59q-108 -8 -169 41t-61 142t61 142t169 41q101 -7 200 -58v112q-48 12 -100 19.5t-80 9.5l-28 2q-127 6 -218.5 -14t-140.5 -60t-71 -88t-22 -106t22 -106t71 -88 -t140.5 -60t218.5 -14q101 4 208 31zM2176 518q0 54 -43 88.5t-109 39.5v3q57 8 89 41.5t32 79.5q0 55 -41 88t-107 36q-3 0 -12 0.5t-14 0.5h-455v-510h491q74 0 121.5 36.5t47.5 96.5zM2304 1280v-1280q0 -52 -38 -90t-90 -38h-2048q-52 0 -90 38t-38 90v1280q0 52 38 90 -t90 38h2048q52 0 90 -38t38 -90z" /> - <glyph glyph-name="_552" unicode="&#xf24c;" horiz-adv-x="2304" -d="M858 295v693q-106 -41 -172 -135.5t-66 -211.5t66 -211.5t172 -134.5zM1362 641q0 117 -66 211.5t-172 135.5v-694q106 41 172 135.5t66 211.5zM1577 641q0 -159 -78.5 -294t-213.5 -213.5t-294 -78.5q-119 0 -227.5 46.5t-187 125t-125 187t-46.5 227.5q0 159 78.5 294 -t213.5 213.5t294 78.5t294 -78.5t213.5 -213.5t78.5 -294zM1960 634q0 139 -55.5 261.5t-147.5 205.5t-213.5 131t-252.5 48h-301q-176 0 -323.5 -81t-235 -230t-87.5 -335q0 -171 87 -317.5t236 -231.5t323 -85h301q129 0 251.5 50.5t214.5 135t147.5 202.5t55.5 246z -M2304 1280v-1280q0 -52 -38 -90t-90 -38h-2048q-52 0 -90 38t-38 90v1280q0 52 38 90t90 38h2048q52 0 90 -38t38 -90z" /> - <glyph glyph-name="_553" unicode="&#xf24d;" horiz-adv-x="1792" -d="M1664 -96v1088q0 13 -9.5 22.5t-22.5 9.5h-1088q-13 0 -22.5 -9.5t-9.5 -22.5v-1088q0 -13 9.5 -22.5t22.5 -9.5h1088q13 0 22.5 9.5t9.5 22.5zM1792 992v-1088q0 -66 -47 -113t-113 -47h-1088q-66 0 -113 47t-47 113v1088q0 66 47 113t113 47h1088q66 0 113 -47t47 -113 -zM1408 1376v-160h-128v160q0 13 -9.5 22.5t-22.5 9.5h-1088q-13 0 -22.5 -9.5t-9.5 -22.5v-1088q0 -13 9.5 -22.5t22.5 -9.5h160v-128h-160q-66 0 -113 47t-47 113v1088q0 66 47 113t113 47h1088q66 0 113 -47t47 -113z" /> - <glyph glyph-name="_554" unicode="&#xf24e;" horiz-adv-x="2304" -d="M1728 1088l-384 -704h768zM448 1088l-384 -704h768zM1269 1280q-14 -40 -45.5 -71.5t-71.5 -45.5v-1291h608q14 0 23 -9t9 -23v-64q0 -14 -9 -23t-23 -9h-1344q-14 0 -23 9t-9 23v64q0 14 9 23t23 9h608v1291q-40 14 -71.5 45.5t-45.5 71.5h-491q-14 0 -23 9t-9 23v64 -q0 14 9 23t23 9h491q21 57 70 92.5t111 35.5t111 -35.5t70 -92.5h491q14 0 23 -9t9 -23v-64q0 -14 -9 -23t-23 -9h-491zM1088 1264q33 0 56.5 23.5t23.5 56.5t-23.5 56.5t-56.5 23.5t-56.5 -23.5t-23.5 -56.5t23.5 -56.5t56.5 -23.5zM2176 384q0 -73 -46.5 -131t-117.5 -91 -t-144.5 -49.5t-139.5 -16.5t-139.5 16.5t-144.5 49.5t-117.5 91t-46.5 131q0 11 35 81t92 174.5t107 195.5t102 184t56 100q18 33 56 33t56 -33q4 -7 56 -100t102 -184t107 -195.5t92 -174.5t35 -81zM896 384q0 -73 -46.5 -131t-117.5 -91t-144.5 -49.5t-139.5 -16.5 -t-139.5 16.5t-144.5 49.5t-117.5 91t-46.5 131q0 11 35 81t92 174.5t107 195.5t102 184t56 100q18 33 56 33t56 -33q4 -7 56 -100t102 -184t107 -195.5t92 -174.5t35 -81z" /> - <glyph glyph-name="_555" unicode="&#xf250;" -d="M1408 1408q0 -261 -106.5 -461.5t-266.5 -306.5q160 -106 266.5 -306.5t106.5 -461.5h96q14 0 23 -9t9 -23v-64q0 -14 -9 -23t-23 -9h-1472q-14 0 -23 9t-9 23v64q0 14 9 23t23 9h96q0 261 106.5 461.5t266.5 306.5q-160 106 -266.5 306.5t-106.5 461.5h-96q-14 0 -23 9 -t-9 23v64q0 14 9 23t23 9h1472q14 0 23 -9t9 -23v-64q0 -14 -9 -23t-23 -9h-96zM874 700q77 29 149 92.5t129.5 152.5t92.5 210t35 253h-1024q0 -132 35 -253t92.5 -210t129.5 -152.5t149 -92.5q19 -7 30.5 -23.5t11.5 -36.5t-11.5 -36.5t-30.5 -23.5q-77 -29 -149 -92.5 -t-129.5 -152.5t-92.5 -210t-35 -253h1024q0 132 -35 253t-92.5 210t-129.5 152.5t-149 92.5q-19 7 -30.5 23.5t-11.5 36.5t11.5 36.5t30.5 23.5z" /> - <glyph glyph-name="_556" unicode="&#xf251;" -d="M1408 1408q0 -261 -106.5 -461.5t-266.5 -306.5q160 -106 266.5 -306.5t106.5 -461.5h96q14 0 23 -9t9 -23v-64q0 -14 -9 -23t-23 -9h-1472q-14 0 -23 9t-9 23v64q0 14 9 23t23 9h96q0 261 106.5 461.5t266.5 306.5q-160 106 -266.5 306.5t-106.5 461.5h-96q-14 0 -23 9 -t-9 23v64q0 14 9 23t23 9h1472q14 0 23 -9t9 -23v-64q0 -14 -9 -23t-23 -9h-96zM1280 1408h-1024q0 -66 9 -128h1006q9 61 9 128zM1280 -128q0 130 -34 249.5t-90.5 208t-126.5 152t-146 94.5h-230q-76 -31 -146 -94.5t-126.5 -152t-90.5 -208t-34 -249.5h1024z" /> - <glyph glyph-name="_557" unicode="&#xf252;" -d="M1408 1408q0 -261 -106.5 -461.5t-266.5 -306.5q160 -106 266.5 -306.5t106.5 -461.5h96q14 0 23 -9t9 -23v-64q0 -14 -9 -23t-23 -9h-1472q-14 0 -23 9t-9 23v64q0 14 9 23t23 9h96q0 261 106.5 461.5t266.5 306.5q-160 106 -266.5 306.5t-106.5 461.5h-96q-14 0 -23 9 -t-9 23v64q0 14 9 23t23 9h1472q14 0 23 -9t9 -23v-64q0 -14 -9 -23t-23 -9h-96zM1280 1408h-1024q0 -206 85 -384h854q85 178 85 384zM1223 192q-54 141 -145.5 241.5t-194.5 142.5h-230q-103 -42 -194.5 -142.5t-145.5 -241.5h910z" /> - <glyph glyph-name="_558" unicode="&#xf253;" -d="M1408 1408q0 -261 -106.5 -461.5t-266.5 -306.5q160 -106 266.5 -306.5t106.5 -461.5h96q14 0 23 -9t9 -23v-64q0 -14 -9 -23t-23 -9h-1472q-14 0 -23 9t-9 23v64q0 14 9 23t23 9h96q0 261 106.5 461.5t266.5 306.5q-160 106 -266.5 306.5t-106.5 461.5h-96q-14 0 -23 9 -t-9 23v64q0 14 9 23t23 9h1472q14 0 23 -9t9 -23v-64q0 -14 -9 -23t-23 -9h-96zM874 700q77 29 149 92.5t129.5 152.5t92.5 210t35 253h-1024q0 -132 35 -253t92.5 -210t129.5 -152.5t149 -92.5q19 -7 30.5 -23.5t11.5 -36.5t-11.5 -36.5t-30.5 -23.5q-137 -51 -244 -196 -h700q-107 145 -244 196q-19 7 -30.5 23.5t-11.5 36.5t11.5 36.5t30.5 23.5z" /> - <glyph glyph-name="_559" unicode="&#xf254;" -d="M1504 -64q14 0 23 -9t9 -23v-128q0 -14 -9 -23t-23 -9h-1472q-14 0 -23 9t-9 23v128q0 14 9 23t23 9h1472zM130 0q3 55 16 107t30 95t46 87t53.5 76t64.5 69.5t66 60t70.5 55t66.5 47.5t65 43q-43 28 -65 43t-66.5 47.5t-70.5 55t-66 60t-64.5 69.5t-53.5 76t-46 87 -t-30 95t-16 107h1276q-3 -55 -16 -107t-30 -95t-46 -87t-53.5 -76t-64.5 -69.5t-66 -60t-70.5 -55t-66.5 -47.5t-65 -43q43 -28 65 -43t66.5 -47.5t70.5 -55t66 -60t64.5 -69.5t53.5 -76t46 -87t30 -95t16 -107h-1276zM1504 1536q14 0 23 -9t9 -23v-128q0 -14 -9 -23t-23 -9 -h-1472q-14 0 -23 9t-9 23v128q0 14 9 23t23 9h1472z" /> - <glyph glyph-name="_560" unicode="&#xf255;" -d="M768 1152q-53 0 -90.5 -37.5t-37.5 -90.5v-128h-32v93q0 48 -32 81.5t-80 33.5q-46 0 -79 -33t-33 -79v-429l-32 30v172q0 48 -32 81.5t-80 33.5q-46 0 -79 -33t-33 -79v-224q0 -47 35 -82l310 -296q39 -39 39 -102q0 -26 19 -45t45 -19h640q26 0 45 19t19 45v25 -q0 41 10 77l108 436q10 36 10 77v246q0 48 -32 81.5t-80 33.5q-46 0 -79 -33t-33 -79v-32h-32v125q0 40 -25 72.5t-64 40.5q-14 2 -23 2q-46 0 -79 -33t-33 -79v-128h-32v122q0 51 -32.5 89.5t-82.5 43.5q-5 1 -13 1zM768 1280q84 0 149 -50q57 34 123 34q59 0 111 -27 -t86 -76q27 7 59 7q100 0 170 -71.5t70 -171.5v-246q0 -51 -13 -108l-109 -436q-6 -24 -6 -71q0 -80 -56 -136t-136 -56h-640q-84 0 -138 58.5t-54 142.5l-308 296q-76 73 -76 175v224q0 99 70.5 169.5t169.5 70.5q11 0 16 -1q6 95 75.5 160t164.5 65q52 0 98 -21 -q72 69 174 69z" /> - <glyph glyph-name="_561" unicode="&#xf256;" horiz-adv-x="1792" -d="M880 1408q-46 0 -79 -33t-33 -79v-656h-32v528q0 46 -33 79t-79 33t-79 -33t-33 -79v-528v-256l-154 205q-38 51 -102 51q-53 0 -90.5 -37.5t-37.5 -90.5q0 -43 26 -77l384 -512q38 -51 102 -51h688q34 0 61 22t34 56l76 405q5 32 5 59v498q0 46 -33 79t-79 33t-79 -33 -t-33 -79v-272h-32v528q0 46 -33 79t-79 33t-79 -33t-33 -79v-528h-32v656q0 46 -33 79t-79 33zM880 1536q68 0 125.5 -35.5t88.5 -96.5q19 4 42 4q99 0 169.5 -70.5t70.5 -169.5v-17q105 6 180.5 -64t75.5 -175v-498q0 -40 -8 -83l-76 -404q-14 -79 -76.5 -131t-143.5 -52 -h-688q-60 0 -114.5 27.5t-90.5 74.5l-384 512q-51 68 -51 154q0 106 75 181t181 75q78 0 128 -34v434q0 99 70.5 169.5t169.5 70.5q23 0 42 -4q31 61 88.5 96.5t125.5 35.5z" /> - <glyph glyph-name="_562" unicode="&#xf257;" horiz-adv-x="1792" -d="M1073 -128h-177q-163 0 -226 141q-23 49 -23 102v5q-62 30 -98.5 88.5t-36.5 127.5q0 38 5 48h-261q-106 0 -181 75t-75 181t75 181t181 75h113l-44 17q-74 28 -119.5 93.5t-45.5 145.5q0 106 75 181t181 75q46 0 91 -17l628 -239h401q106 0 181 -75t75 -181v-668 -q0 -88 -54 -157.5t-140 -90.5l-339 -85q-92 -23 -186 -23zM1024 583l-155 -71l-163 -74q-30 -14 -48 -41.5t-18 -60.5q0 -46 33 -79t79 -33q26 0 46 10l338 154q-49 10 -80.5 50t-31.5 90v55zM1344 272q0 46 -33 79t-79 33q-26 0 -46 -10l-290 -132q-28 -13 -37 -17 -t-30.5 -17t-29.5 -23.5t-16 -29t-8 -40.5q0 -50 31.5 -82t81.5 -32q20 0 38 9l352 160q30 14 48 41.5t18 60.5zM1112 1024l-650 248q-24 8 -46 8q-53 0 -90.5 -37.5t-37.5 -90.5q0 -40 22.5 -73t59.5 -47l526 -200v-64h-640q-53 0 -90.5 -37.5t-37.5 -90.5t37.5 -90.5 -t90.5 -37.5h535l233 106v198q0 63 46 106l111 102h-69zM1073 0q82 0 155 19l339 85q43 11 70 45.5t27 78.5v668q0 53 -37.5 90.5t-90.5 37.5h-308l-136 -126q-36 -33 -36 -82v-296q0 -46 33 -77t79 -31t79 35t33 81v208h32v-208q0 -70 -57 -114q52 -8 86.5 -48.5t34.5 -93.5 -q0 -42 -23 -78t-61 -53l-310 -141h91z" /> - <glyph glyph-name="_563" unicode="&#xf258;" horiz-adv-x="2048" -d="M1151 1536q61 0 116 -28t91 -77l572 -781q118 -159 118 -359v-355q0 -80 -56 -136t-136 -56h-384q-80 0 -136 56t-56 136v177l-286 143h-546q-80 0 -136 56t-56 136v32q0 119 84.5 203.5t203.5 84.5h420l42 128h-686q-100 0 -173.5 67.5t-81.5 166.5q-65 79 -65 182v32 -q0 80 56 136t136 56h959zM1920 -64v355q0 157 -93 284l-573 781q-39 52 -103 52h-959q-26 0 -45 -19t-19 -45q0 -32 1.5 -49.5t9.5 -40.5t25 -43q10 31 35.5 50t56.5 19h832v-32h-832q-26 0 -45 -19t-19 -45q0 -44 3 -58q8 -44 44 -73t81 -29h640h91q40 0 68 -28t28 -68 -q0 -15 -5 -30l-64 -192q-10 -29 -35 -47.5t-56 -18.5h-443q-66 0 -113 -47t-47 -113v-32q0 -26 19 -45t45 -19h561q16 0 29 -7l317 -158q24 -13 38.5 -36t14.5 -50v-197q0 -26 19 -45t45 -19h384q26 0 45 19t19 45z" /> - <glyph glyph-name="_564" unicode="&#xf259;" horiz-adv-x="2048" -d="M459 -256q-77 0 -137.5 47.5t-79.5 122.5l-101 401q-13 57 -13 108q0 45 -5 67l-116 477q-7 27 -7 57q0 93 62 161t155 78q17 85 82.5 139t152.5 54q83 0 148 -51.5t85 -132.5l83 -348l103 428q20 81 85 132.5t148 51.5q89 0 155.5 -57.5t80.5 -144.5q92 -10 152 -79 -t60 -162q0 -24 -7 -59l-123 -512q10 7 37.5 28.5t38.5 29.5t35 23t41 20.5t41.5 11t49.5 5.5q105 0 180 -74t75 -179q0 -62 -28.5 -118t-78.5 -94l-507 -380q-68 -51 -153 -51h-694zM1104 1408q-38 0 -68.5 -24t-39.5 -62l-164 -682h-127l-145 602q-9 38 -39.5 62t-68.5 24 -q-48 0 -80 -33t-32 -80q0 -15 3 -28l132 -547h-26l-99 408q-9 37 -40 62.5t-69 25.5q-47 0 -80 -33t-33 -79q0 -14 3 -26l116 -478q7 -28 9 -86t10 -88l100 -401q8 -32 34 -52.5t59 -20.5h694q42 0 76 26l507 379q56 43 56 110q0 52 -37.5 88.5t-89.5 36.5q-43 0 -77 -26 -l-307 -230v227q0 4 32 138t68 282t39 161q4 18 4 29q0 47 -32 81t-79 34q-39 0 -69.5 -24t-39.5 -62l-116 -482h-26l150 624q3 14 3 28q0 48 -31.5 82t-79.5 34z" /> - <glyph glyph-name="_565" unicode="&#xf25a;" horiz-adv-x="1792" -d="M640 1408q-53 0 -90.5 -37.5t-37.5 -90.5v-512v-384l-151 202q-41 54 -107 54q-52 0 -89 -38t-37 -90q0 -43 26 -77l384 -512q38 -51 102 -51h718q22 0 39.5 13.5t22.5 34.5l92 368q24 96 24 194v217q0 41 -28 71t-68 30t-68 -28t-28 -68h-32v61q0 48 -32 81.5t-80 33.5 -q-46 0 -79 -33t-33 -79v-64h-32v90q0 55 -37 94.5t-91 39.5q-53 0 -90.5 -37.5t-37.5 -90.5v-96h-32v570q0 55 -37 94.5t-91 39.5zM640 1536q107 0 181.5 -77.5t74.5 -184.5v-220q22 2 32 2q99 0 173 -69q47 21 99 21q113 0 184 -87q27 7 56 7q94 0 159 -67.5t65 -161.5 -v-217q0 -116 -28 -225l-92 -368q-16 -64 -68 -104.5t-118 -40.5h-718q-60 0 -114.5 27.5t-90.5 74.5l-384 512q-51 68 -51 154q0 105 74.5 180.5t179.5 75.5q71 0 130 -35v547q0 106 75 181t181 75zM768 128v384h-32v-384h32zM1024 128v384h-32v-384h32zM1280 128v384h-32 -v-384h32z" /> - <glyph glyph-name="_566" unicode="&#xf25b;" -d="M1288 889q60 0 107 -23q141 -63 141 -226v-177q0 -94 -23 -186l-85 -339q-21 -86 -90.5 -140t-157.5 -54h-668q-106 0 -181 75t-75 181v401l-239 628q-17 45 -17 91q0 106 75 181t181 75q80 0 145.5 -45.5t93.5 -119.5l17 -44v113q0 106 75 181t181 75t181 -75t75 -181 -v-261q27 5 48 5q69 0 127.5 -36.5t88.5 -98.5zM1072 896q-33 0 -60.5 -18t-41.5 -48l-74 -163l-71 -155h55q50 0 90 -31.5t50 -80.5l154 338q10 20 10 46q0 46 -33 79t-79 33zM1293 761q-22 0 -40.5 -8t-29 -16t-23.5 -29.5t-17 -30.5t-17 -37l-132 -290q-10 -20 -10 -46 -q0 -46 33 -79t79 -33q33 0 60.5 18t41.5 48l160 352q9 18 9 38q0 50 -32 81.5t-82 31.5zM128 1120q0 -22 8 -46l248 -650v-69l102 111q43 46 106 46h198l106 233v535q0 53 -37.5 90.5t-90.5 37.5t-90.5 -37.5t-37.5 -90.5v-640h-64l-200 526q-14 37 -47 59.5t-73 22.5 -q-53 0 -90.5 -37.5t-37.5 -90.5zM1180 -128q44 0 78.5 27t45.5 70l85 339q19 73 19 155v91l-141 -310q-17 -38 -53 -61t-78 -23q-53 0 -93.5 34.5t-48.5 86.5q-44 -57 -114 -57h-208v32h208q46 0 81 33t35 79t-31 79t-77 33h-296q-49 0 -82 -36l-126 -136v-308 -q0 -53 37.5 -90.5t90.5 -37.5h668z" /> - <glyph glyph-name="_567" unicode="&#xf25c;" horiz-adv-x="1973" -d="M857 992v-117q0 -13 -9.5 -22t-22.5 -9h-298v-812q0 -13 -9 -22.5t-22 -9.5h-135q-13 0 -22.5 9t-9.5 23v812h-297q-13 0 -22.5 9t-9.5 22v117q0 14 9 23t23 9h793q13 0 22.5 -9.5t9.5 -22.5zM1895 995l77 -961q1 -13 -8 -24q-10 -10 -23 -10h-134q-12 0 -21 8.5 -t-10 20.5l-46 588l-189 -425q-8 -19 -29 -19h-120q-20 0 -29 19l-188 427l-45 -590q-1 -12 -10 -20.5t-21 -8.5h-135q-13 0 -23 10q-9 10 -9 24l78 961q1 12 10 20.5t21 8.5h142q20 0 29 -19l220 -520q10 -24 20 -51q3 7 9.5 24.5t10.5 26.5l221 520q9 19 29 19h141 -q13 0 22 -8.5t10 -20.5z" /> - <glyph glyph-name="_568" unicode="&#xf25d;" horiz-adv-x="1792" -d="M1042 833q0 88 -60 121q-33 18 -117 18h-123v-281h162q66 0 102 37t36 105zM1094 548l205 -373q8 -17 -1 -31q-8 -16 -27 -16h-152q-20 0 -28 17l-194 365h-155v-350q0 -14 -9 -23t-23 -9h-134q-14 0 -23 9t-9 23v960q0 14 9 23t23 9h294q128 0 190 -24q85 -31 134 -109 -t49 -180q0 -92 -42.5 -165.5t-115.5 -109.5q6 -10 9 -16zM896 1376q-150 0 -286 -58.5t-234.5 -157t-157 -234.5t-58.5 -286t58.5 -286t157 -234.5t234.5 -157t286 -58.5t286 58.5t234.5 157t157 234.5t58.5 286t-58.5 286t-157 234.5t-234.5 157t-286 58.5zM1792 640 -q0 -182 -71 -348t-191 -286t-286 -191t-348 -71t-348 71t-286 191t-191 286t-71 348t71 348t191 286t286 191t348 71t348 -71t286 -191t191 -286t71 -348z" /> - <glyph glyph-name="_569" unicode="&#xf25e;" horiz-adv-x="1792" -d="M605 303q153 0 257 104q14 18 3 36l-45 82q-6 13 -24 17q-16 2 -27 -11l-4 -3q-4 -4 -11.5 -10t-17.5 -13.5t-23.5 -14.5t-28.5 -13t-33.5 -9.5t-37.5 -3.5q-76 0 -125 50t-49 127q0 76 48 125.5t122 49.5q37 0 71.5 -14t50.5 -28l16 -14q11 -11 26 -10q16 2 24 14l53 78 -q13 20 -2 39q-3 4 -11 12t-30 23.5t-48.5 28t-67.5 22.5t-86 10q-148 0 -246 -96.5t-98 -240.5q0 -146 97 -241.5t247 -95.5zM1235 303q153 0 257 104q14 18 4 36l-45 82q-8 14 -25 17q-16 2 -27 -11l-4 -3q-4 -4 -11.5 -10t-17.5 -13.5t-23.5 -14.5t-28.5 -13t-33.5 -9.5 -t-37.5 -3.5q-76 0 -125 50t-49 127q0 76 48 125.5t122 49.5q37 0 71.5 -14t50.5 -28l16 -14q11 -11 26 -10q16 2 24 14l53 78q13 20 -2 39q-3 4 -11 12t-30 23.5t-48.5 28t-67.5 22.5t-86 10q-147 0 -245.5 -96.5t-98.5 -240.5q0 -146 97 -241.5t247 -95.5zM896 1376 -q-150 0 -286 -58.5t-234.5 -157t-157 -234.5t-58.5 -286t58.5 -286t157 -234.5t234.5 -157t286 -58.5t286 58.5t234.5 157t157 234.5t58.5 286t-58.5 286t-157 234.5t-234.5 157t-286 58.5zM896 1536q182 0 348 -71t286 -191t191 -286t71 -348t-71 -348t-191 -286t-286 -191 -t-348 -71t-348 71t-286 191t-191 286t-71 348t71 348t191 286t286 191t348 71z" /> - <glyph glyph-name="f260" unicode="&#xf260;" horiz-adv-x="2048" -d="M736 736l384 -384l-384 -384l-672 672l672 672l168 -168l-96 -96l-72 72l-480 -480l480 -480l193 193l-289 287zM1312 1312l672 -672l-672 -672l-168 168l96 96l72 -72l480 480l-480 480l-193 -193l289 -287l-96 -96l-384 384z" /> - <glyph glyph-name="f261" unicode="&#xf261;" horiz-adv-x="1792" -d="M717 182l271 271l-279 279l-88 -88l192 -191l-96 -96l-279 279l279 279l40 -40l87 87l-127 128l-454 -454zM1075 190l454 454l-454 454l-271 -271l279 -279l88 88l-192 191l96 96l279 -279l-279 -279l-40 40l-87 -88zM1792 640q0 -182 -71 -348t-191 -286t-286 -191 -t-348 -71t-348 71t-286 191t-191 286t-71 348t71 348t191 286t286 191t348 71t348 -71t286 -191t191 -286t71 -348z" /> - <glyph glyph-name="_572" unicode="&#xf262;" horiz-adv-x="2304" -d="M651 539q0 -39 -27.5 -66.5t-65.5 -27.5q-39 0 -66.5 27.5t-27.5 66.5q0 38 27.5 65.5t66.5 27.5q38 0 65.5 -27.5t27.5 -65.5zM1805 540q0 -39 -27.5 -66.5t-66.5 -27.5t-66.5 27.5t-27.5 66.5t27.5 66t66.5 27t66.5 -27t27.5 -66zM765 539q0 79 -56.5 136t-136.5 57 -t-136.5 -56.5t-56.5 -136.5t56.5 -136.5t136.5 -56.5t136.5 56.5t56.5 136.5zM1918 540q0 80 -56.5 136.5t-136.5 56.5q-79 0 -136 -56.5t-57 -136.5t56.5 -136.5t136.5 -56.5t136.5 56.5t56.5 136.5zM850 539q0 -116 -81.5 -197.5t-196.5 -81.5q-116 0 -197.5 82t-81.5 197 -t82 196.5t197 81.5t196.5 -81.5t81.5 -196.5zM2004 540q0 -115 -81.5 -196.5t-197.5 -81.5q-115 0 -196.5 81.5t-81.5 196.5t81.5 196.5t196.5 81.5q116 0 197.5 -81.5t81.5 -196.5zM1040 537q0 191 -135.5 326.5t-326.5 135.5q-125 0 -231 -62t-168 -168.5t-62 -231.5 -t62 -231.5t168 -168.5t231 -62q191 0 326.5 135.5t135.5 326.5zM1708 1110q-254 111 -556 111q-319 0 -573 -110q117 0 223 -45.5t182.5 -122.5t122 -183t45.5 -223q0 115 43.5 219.5t118 180.5t177.5 123t217 50zM2187 537q0 191 -135 326.5t-326 135.5t-326.5 -135.5 -t-135.5 -326.5t135.5 -326.5t326.5 -135.5t326 135.5t135 326.5zM1921 1103h383q-44 -51 -75 -114.5t-40 -114.5q110 -151 110 -337q0 -156 -77 -288t-209 -208.5t-287 -76.5q-133 0 -249 56t-196 155q-47 -56 -129 -179q-11 22 -53.5 82.5t-74.5 97.5 -q-80 -99 -196.5 -155.5t-249.5 -56.5q-155 0 -287 76.5t-209 208.5t-77 288q0 186 110 337q-9 51 -40 114.5t-75 114.5h365q149 100 355 156.5t432 56.5q224 0 421 -56t348 -157z" /> - <glyph glyph-name="f263" unicode="&#xf263;" horiz-adv-x="1280" -d="M640 629q-188 0 -321 133t-133 320q0 188 133 321t321 133t321 -133t133 -321q0 -187 -133 -320t-321 -133zM640 1306q-92 0 -157.5 -65.5t-65.5 -158.5q0 -92 65.5 -157.5t157.5 -65.5t157.5 65.5t65.5 157.5q0 93 -65.5 158.5t-157.5 65.5zM1163 574q13 -27 15 -49.5 -t-4.5 -40.5t-26.5 -38.5t-42.5 -37t-61.5 -41.5q-115 -73 -315 -94l73 -72l267 -267q30 -31 30 -74t-30 -73l-12 -13q-31 -30 -74 -30t-74 30q-67 68 -267 268l-267 -268q-31 -30 -74 -30t-73 30l-12 13q-31 30 -31 73t31 74l267 267l72 72q-203 21 -317 94 -q-39 25 -61.5 41.5t-42.5 37t-26.5 38.5t-4.5 40.5t15 49.5q10 20 28 35t42 22t56 -2t65 -35q5 -4 15 -11t43 -24.5t69 -30.5t92 -24t113 -11q91 0 174 25.5t120 50.5l38 25q33 26 65 35t56 2t42 -22t28 -35z" /> - <glyph glyph-name="_574" unicode="&#xf264;" -d="M927 956q0 -66 -46.5 -112.5t-112.5 -46.5t-112.5 46.5t-46.5 112.5t46.5 112.5t112.5 46.5t112.5 -46.5t46.5 -112.5zM1141 593q-10 20 -28 32t-47.5 9.5t-60.5 -27.5q-10 -8 -29 -20t-81 -32t-127 -20t-124 18t-86 36l-27 18q-31 25 -60.5 27.5t-47.5 -9.5t-28 -32 -q-22 -45 -2 -74.5t87 -73.5q83 -53 226 -67l-51 -52q-142 -142 -191 -190q-22 -22 -22 -52.5t22 -52.5l9 -9q22 -22 52.5 -22t52.5 22l191 191q114 -115 191 -191q22 -22 52.5 -22t52.5 22l9 9q22 22 22 52.5t-22 52.5l-191 190l-52 52q141 14 225 67q67 44 87 73.5t-2 74.5 -zM1092 956q0 134 -95 229t-229 95t-229 -95t-95 -229t95 -229t229 -95t229 95t95 229zM1536 1120v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" /> - <glyph glyph-name="_575" unicode="&#xf265;" horiz-adv-x="1720" -d="M1565 1408q65 0 110 -45.5t45 -110.5v-519q0 -176 -68 -336t-182.5 -275t-274 -182.5t-334.5 -67.5q-176 0 -335.5 67.5t-274.5 182.5t-183 275t-68 336v519q0 64 46 110t110 46h1409zM861 344q47 0 82 33l404 388q37 35 37 85q0 49 -34.5 83.5t-83.5 34.5q-47 0 -82 -33 -l-323 -310l-323 310q-35 33 -81 33q-49 0 -83.5 -34.5t-34.5 -83.5q0 -51 36 -85l405 -388q33 -33 81 -33z" /> - <glyph glyph-name="_576" unicode="&#xf266;" horiz-adv-x="2304" -d="M1494 -103l-295 695q-25 -49 -158.5 -305.5t-198.5 -389.5q-1 -1 -27.5 -0.5t-26.5 1.5q-82 193 -255.5 587t-259.5 596q-21 50 -66.5 107.5t-103.5 100.5t-102 43q0 5 -0.5 24t-0.5 27h583v-50q-39 -2 -79.5 -16t-66.5 -43t-10 -64q26 -59 216.5 -499t235.5 -540 -q31 61 140 266.5t131 247.5q-19 39 -126 281t-136 295q-38 69 -201 71v50l513 -1v-47q-60 -2 -93.5 -25t-12.5 -69q33 -70 87 -189.5t86 -187.5q110 214 173 363q24 55 -10 79.5t-129 26.5q1 7 1 25v24q64 0 170.5 0.5t180 1t92.5 0.5v-49q-62 -2 -119 -33t-90 -81 -l-213 -442q13 -33 127.5 -290t121.5 -274l441 1017q-14 38 -49.5 62.5t-65 31.5t-55.5 8v50l460 -4l1 -2l-1 -44q-139 -4 -201 -145q-526 -1216 -559 -1291h-49z" /> - <glyph glyph-name="_577" unicode="&#xf267;" horiz-adv-x="1792" -d="M949 643q0 -26 -16.5 -45t-41.5 -19q-26 0 -45 16.5t-19 41.5q0 26 17 45t42 19t44 -16.5t19 -41.5zM964 585l350 581q-9 -8 -67.5 -62.5t-125.5 -116.5t-136.5 -127t-117 -110.5t-50.5 -51.5l-349 -580q7 7 67 62t126 116.5t136 127t117 111t50 50.5zM1611 640 -q0 -201 -104 -371q-3 2 -17 11t-26.5 16.5t-16.5 7.5q-13 0 -13 -13q0 -10 59 -44q-74 -112 -184.5 -190.5t-241.5 -110.5l-16 67q-1 10 -15 10q-5 0 -8 -5.5t-2 -9.5l16 -68q-72 -15 -146 -15q-199 0 -372 105q1 2 13 20.5t21.5 33.5t9.5 19q0 13 -13 13q-6 0 -17 -14.5 -t-22.5 -34.5t-13.5 -23q-113 75 -192 187.5t-110 244.5l69 15q10 3 10 15q0 5 -5.5 8t-10.5 2l-68 -15q-14 72 -14 139q0 206 109 379q2 -1 18.5 -12t30 -19t17.5 -8q13 0 13 12q0 6 -12.5 15.5t-32.5 21.5l-20 12q77 112 189 189t244 107l15 -67q2 -10 15 -10q5 0 8 5.5 -t2 10.5l-15 66q71 13 134 13q204 0 379 -109q-39 -56 -39 -65q0 -13 12 -13q11 0 48 64q111 -75 187.5 -186t107.5 -241l-56 -12q-10 -2 -10 -16q0 -5 5.5 -8t9.5 -2l57 13q14 -72 14 -140zM1696 640q0 163 -63.5 311t-170.5 255t-255 170.5t-311 63.5t-311 -63.5 -t-255 -170.5t-170.5 -255t-63.5 -311t63.5 -311t170.5 -255t255 -170.5t311 -63.5t311 63.5t255 170.5t170.5 255t63.5 311zM1792 640q0 -182 -71 -348t-191 -286t-286 -191t-348 -71t-348 71t-286 191t-191 286t-71 348t71 348t191 286t286 191t348 71t348 -71t286 -191 -t191 -286t71 -348z" /> - <glyph glyph-name="_578" unicode="&#xf268;" horiz-adv-x="1792" -d="M893 1536q240 2 451 -120q232 -134 352 -372l-742 39q-160 9 -294 -74.5t-185 -229.5l-276 424q128 159 311 245.5t383 87.5zM146 1131l337 -663q72 -143 211 -217t293 -45l-230 -451q-212 33 -385 157.5t-272.5 316t-99.5 411.5q0 267 146 491zM1732 962 -q58 -150 59.5 -310.5t-48.5 -306t-153 -272t-246 -209.5q-230 -133 -498 -119l405 623q88 131 82.5 290.5t-106.5 277.5zM896 942q125 0 213.5 -88.5t88.5 -213.5t-88.5 -213.5t-213.5 -88.5t-213.5 88.5t-88.5 213.5t88.5 213.5t213.5 88.5z" /> - <glyph glyph-name="_579" unicode="&#xf269;" horiz-adv-x="1792" -d="M903 -256q-283 0 -504.5 150.5t-329.5 398.5q-58 131 -67 301t26 332.5t111 312t179 242.5l-11 -281q11 14 68 15.5t70 -15.5q42 81 160.5 138t234.5 59q-54 -45 -119.5 -148.5t-58.5 -163.5q25 -8 62.5 -13.5t63 -7.5t68 -4t50.5 -3q15 -5 9.5 -45.5t-30.5 -75.5 -q-5 -7 -16.5 -18.5t-56.5 -35.5t-101 -34l15 -189l-139 67q-18 -43 -7.5 -81.5t36 -66.5t65.5 -41.5t81 -6.5q51 9 98 34.5t83.5 45t73.5 17.5q61 -4 89.5 -33t19.5 -65q-1 -2 -2.5 -5.5t-8.5 -12.5t-18 -15.5t-31.5 -10.5t-46.5 -1q-60 -95 -144.5 -135.5t-209.5 -29.5 -q74 -61 162.5 -82.5t168.5 -6t154.5 52t128 87.5t80.5 104q43 91 39 192.5t-37.5 188.5t-78.5 125q87 -38 137 -79.5t77 -112.5q15 170 -57.5 343t-209.5 284q265 -77 412 -279.5t151 -517.5q2 -127 -40.5 -255t-123.5 -238t-189 -196t-247.5 -135.5t-288.5 -49.5z" /> - <glyph glyph-name="_580" unicode="&#xf26a;" horiz-adv-x="1792" -d="M1493 1308q-165 110 -359 110q-155 0 -293 -73t-240 -200q-75 -93 -119.5 -218t-48.5 -266v-42q4 -141 48.5 -266t119.5 -218q102 -127 240 -200t293 -73q194 0 359 110q-121 -108 -274.5 -168t-322.5 -60q-29 0 -43 1q-175 8 -333 82t-272 193t-181 281t-67 339 -q0 182 71 348t191 286t286 191t348 71h3q168 -1 320.5 -60.5t273.5 -167.5zM1792 640q0 -192 -77 -362.5t-213 -296.5q-104 -63 -222 -63q-137 0 -255 84q154 56 253.5 233t99.5 405q0 227 -99 404t-253 234q119 83 254 83q119 0 226 -65q135 -125 210.5 -295t75.5 -361z -" /> - <glyph glyph-name="_581" unicode="&#xf26b;" horiz-adv-x="1792" -d="M1792 599q0 -56 -7 -104h-1151q0 -146 109.5 -244.5t257.5 -98.5q99 0 185.5 46.5t136.5 130.5h423q-56 -159 -170.5 -281t-267.5 -188.5t-321 -66.5q-187 0 -356 83q-228 -116 -394 -116q-237 0 -237 263q0 115 45 275q17 60 109 229q199 360 475 606 -q-184 -79 -427 -354q63 274 283.5 449.5t501.5 175.5q30 0 45 -1q255 117 433 117q64 0 116 -13t94.5 -40.5t66.5 -76.5t24 -115q0 -116 -75 -286q101 -182 101 -390zM1722 1239q0 83 -53 132t-137 49q-108 0 -254 -70q121 -47 222.5 -131.5t170.5 -195.5q51 135 51 216z -M128 2q0 -86 48.5 -132.5t134.5 -46.5q115 0 266 83q-122 72 -213.5 183t-137.5 245q-98 -205 -98 -332zM632 715h728q-5 142 -113 237t-251 95q-144 0 -251.5 -95t-112.5 -237z" /> - <glyph glyph-name="_582" unicode="&#xf26c;" horiz-adv-x="2048" -d="M1792 288v960q0 13 -9.5 22.5t-22.5 9.5h-1600q-13 0 -22.5 -9.5t-9.5 -22.5v-960q0 -13 9.5 -22.5t22.5 -9.5h1600q13 0 22.5 9.5t9.5 22.5zM1920 1248v-960q0 -66 -47 -113t-113 -47h-736v-128h352q14 0 23 -9t9 -23v-64q0 -14 -9 -23t-23 -9h-832q-14 0 -23 9t-9 23 -v64q0 14 9 23t23 9h352v128h-736q-66 0 -113 47t-47 113v960q0 66 47 113t113 47h1600q66 0 113 -47t47 -113z" /> - <glyph glyph-name="_583" unicode="&#xf26d;" horiz-adv-x="1792" -d="M138 1408h197q-70 -64 -126 -149q-36 -56 -59 -115t-30 -125.5t-8.5 -120t10.5 -132t21 -126t28 -136.5q4 -19 6 -28q51 -238 81 -329q57 -171 152 -275h-272q-48 0 -82 34t-34 82v1304q0 48 34 82t82 34zM1346 1408h308q48 0 82 -34t34 -82v-1304q0 -48 -34 -82t-82 -34 -h-178q212 210 196 565l-469 -101q-2 -45 -12 -82t-31 -72t-59.5 -59.5t-93.5 -36.5q-123 -26 -199 40q-32 27 -53 61t-51.5 129t-64.5 258q-35 163 -45.5 263t-5.5 139t23 77q20 41 62.5 73t102.5 45q45 12 83.5 6.5t67 -17t54 -35t43 -48t34.5 -56.5l468 100 -q-68 175 -180 287z" /> - <glyph glyph-name="_584" unicode="&#xf26e;" -d="M1401 -11l-6 -6q-113 -113 -259 -175q-154 -64 -317 -64q-165 0 -317 64q-148 63 -259 175q-113 112 -175 258q-42 103 -54 189q-4 28 48 36q51 8 56 -20q1 -1 1 -4q18 -90 46 -159q50 -124 152 -226q98 -98 226 -152q132 -56 276 -56q143 0 276 56q128 55 225 152l6 6 -q10 10 25 6q12 -3 33 -22q36 -37 17 -58zM929 604l-66 -66l63 -63q21 -21 -7 -49q-17 -17 -32 -17q-10 0 -19 10l-62 61l-66 -66q-5 -5 -15 -5q-15 0 -31 16l-2 2q-18 15 -18 29q0 7 8 17l66 65l-66 66q-16 16 14 45q18 18 31 18q6 0 13 -5l65 -66l65 65q18 17 48 -13 -q27 -27 11 -44zM1400 547q0 -118 -46 -228q-45 -105 -126 -186q-80 -80 -187 -126t-228 -46t-228 46t-187 126q-82 82 -125 186q-15 33 -15 40h-1q-9 27 43 44q50 16 60 -12q37 -99 97 -167h1v339v2q3 136 102 232q105 103 253 103q147 0 251 -103t104 -249 -q0 -147 -104.5 -251t-250.5 -104q-58 0 -112 16q-28 11 -13 61q16 51 44 43l14 -3q14 -3 33 -6t30 -3q104 0 176 71.5t72 174.5q0 101 -72 171q-71 71 -175 71q-107 0 -178 -80q-64 -72 -64 -160v-413q110 -67 242 -67q96 0 185 36.5t156 103.5t103.5 155t36.5 183 -q0 198 -141 339q-140 140 -339 140q-200 0 -340 -140q-53 -53 -77 -87l-2 -2q-8 -11 -13 -15.5t-21.5 -9.5t-38.5 3q-21 5 -36.5 16.5t-15.5 26.5v680q0 15 10.5 26.5t27.5 11.5h877q30 0 30 -55t-30 -55h-811v-483h1q40 42 102 84t108 61q109 46 231 46q121 0 228 -46 -t187 -126q81 -81 126 -186q46 -112 46 -229zM1369 1128q9 -8 9 -18t-5.5 -18t-16.5 -21q-26 -26 -39 -26q-9 0 -16 7q-106 91 -207 133q-128 56 -276 56q-133 0 -262 -49q-27 -10 -45 37q-9 25 -8 38q3 16 16 20q130 57 299 57q164 0 316 -64q137 -58 235 -152z" /> - <glyph glyph-name="_585" unicode="&#xf270;" horiz-adv-x="1792" -d="M1551 60q15 6 26 3t11 -17.5t-15 -33.5q-13 -16 -44 -43.5t-95.5 -68t-141 -74t-188 -58t-229.5 -24.5q-119 0 -238 31t-209 76.5t-172.5 104t-132.5 105t-84 87.5q-8 9 -10 16.5t1 12t8 7t11.5 2t11.5 -4.5q192 -117 300 -166q389 -176 799 -90q190 40 391 135z -M1758 175q11 -16 2.5 -69.5t-28.5 -102.5q-34 -83 -85 -124q-17 -14 -26 -9t0 24q21 45 44.5 121.5t6.5 98.5q-5 7 -15.5 11.5t-27 6t-29.5 2.5t-35 0t-31.5 -2t-31 -3t-22.5 -2q-6 -1 -13 -1.5t-11 -1t-8.5 -1t-7 -0.5h-5.5h-4.5t-3 0.5t-2 1.5l-1.5 3q-6 16 47 40t103 30 -q46 7 108 1t76 -24zM1364 618q0 -31 13.5 -64t32 -58t37.5 -46t33 -32l13 -11l-227 -224q-40 37 -79 75.5t-58 58.5l-19 20q-11 11 -25 33q-38 -59 -97.5 -102.5t-127.5 -63.5t-140 -23t-137.5 21t-117.5 65.5t-83 113t-31 162.5q0 84 28 154t72 116.5t106.5 83t122.5 57 -t130 34.5t119.5 18.5t99.5 6.5v127q0 65 -21 97q-34 53 -121 53q-6 0 -16.5 -1t-40.5 -12t-56 -29.5t-56 -59.5t-48 -96l-294 27q0 60 22 119t67 113t108 95t151.5 65.5t190.5 24.5q100 0 181 -25t129.5 -61.5t81 -83t45 -86t12.5 -73.5v-589zM692 597q0 -86 70 -133 -q66 -44 139 -22q84 25 114 123q14 45 14 101v162q-59 -2 -111 -12t-106.5 -33.5t-87 -71t-32.5 -114.5z" /> - <glyph glyph-name="_586" unicode="&#xf271;" horiz-adv-x="1792" -d="M1536 1280q52 0 90 -38t38 -90v-1280q0 -52 -38 -90t-90 -38h-1408q-52 0 -90 38t-38 90v1280q0 52 38 90t90 38h128v96q0 66 47 113t113 47h64q66 0 113 -47t47 -113v-96h384v96q0 66 47 113t113 47h64q66 0 113 -47t47 -113v-96h128zM1152 1376v-288q0 -14 9 -23t23 -9 -h64q14 0 23 9t9 23v288q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23zM384 1376v-288q0 -14 9 -23t23 -9h64q14 0 23 9t9 23v288q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23zM1536 -128v1024h-1408v-1024h1408zM896 448h224q14 0 23 -9t9 -23v-64q0 -14 -9 -23t-23 -9h-224 -v-224q0 -14 -9 -23t-23 -9h-64q-14 0 -23 9t-9 23v224h-224q-14 0 -23 9t-9 23v64q0 14 9 23t23 9h224v224q0 14 9 23t23 9h64q14 0 23 -9t9 -23v-224z" /> - <glyph glyph-name="_587" unicode="&#xf272;" horiz-adv-x="1792" -d="M1152 416v-64q0 -14 -9 -23t-23 -9h-576q-14 0 -23 9t-9 23v64q0 14 9 23t23 9h576q14 0 23 -9t9 -23zM128 -128h1408v1024h-1408v-1024zM512 1088v288q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23v-288q0 -14 9 -23t23 -9h64q14 0 23 9t9 23zM1280 1088v288q0 14 -9 23 -t-23 9h-64q-14 0 -23 -9t-9 -23v-288q0 -14 9 -23t23 -9h64q14 0 23 9t9 23zM1664 1152v-1280q0 -52 -38 -90t-90 -38h-1408q-52 0 -90 38t-38 90v1280q0 52 38 90t90 38h128v96q0 66 47 113t113 47h64q66 0 113 -47t47 -113v-96h384v96q0 66 47 113t113 47h64q66 0 113 -47 -t47 -113v-96h128q52 0 90 -38t38 -90z" /> - <glyph glyph-name="_588" unicode="&#xf273;" horiz-adv-x="1792" -d="M1111 151l-46 -46q-9 -9 -22 -9t-23 9l-188 189l-188 -189q-10 -9 -23 -9t-22 9l-46 46q-9 9 -9 22t9 23l189 188l-189 188q-9 10 -9 23t9 22l46 46q9 9 22 9t23 -9l188 -188l188 188q10 9 23 9t22 -9l46 -46q9 -9 9 -22t-9 -23l-188 -188l188 -188q9 -10 9 -23t-9 -22z -M128 -128h1408v1024h-1408v-1024zM512 1088v288q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23v-288q0 -14 9 -23t23 -9h64q14 0 23 9t9 23zM1280 1088v288q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23v-288q0 -14 9 -23t23 -9h64q14 0 23 9t9 23zM1664 1152v-1280 -q0 -52 -38 -90t-90 -38h-1408q-52 0 -90 38t-38 90v1280q0 52 38 90t90 38h128v96q0 66 47 113t113 47h64q66 0 113 -47t47 -113v-96h384v96q0 66 47 113t113 47h64q66 0 113 -47t47 -113v-96h128q52 0 90 -38t38 -90z" /> - <glyph glyph-name="_589" unicode="&#xf274;" horiz-adv-x="1792" -d="M1303 572l-512 -512q-10 -9 -23 -9t-23 9l-288 288q-9 10 -9 23t9 22l46 46q9 9 22 9t23 -9l220 -220l444 444q10 9 23 9t22 -9l46 -46q9 -9 9 -22t-9 -23zM128 -128h1408v1024h-1408v-1024zM512 1088v288q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23v-288q0 -14 9 -23 -t23 -9h64q14 0 23 9t9 23zM1280 1088v288q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23v-288q0 -14 9 -23t23 -9h64q14 0 23 9t9 23zM1664 1152v-1280q0 -52 -38 -90t-90 -38h-1408q-52 0 -90 38t-38 90v1280q0 52 38 90t90 38h128v96q0 66 47 113t113 47h64q66 0 113 -47 -t47 -113v-96h384v96q0 66 47 113t113 47h64q66 0 113 -47t47 -113v-96h128q52 0 90 -38t38 -90z" /> - <glyph glyph-name="_590" unicode="&#xf275;" horiz-adv-x="1792" -d="M448 1536q26 0 45 -19t19 -45v-891l536 429q17 14 40 14q26 0 45 -19t19 -45v-379l536 429q17 14 40 14q26 0 45 -19t19 -45v-1152q0 -26 -19 -45t-45 -19h-1664q-26 0 -45 19t-19 45v1664q0 26 19 45t45 19h384z" /> - <glyph glyph-name="_591" unicode="&#xf276;" horiz-adv-x="1024" -d="M512 448q66 0 128 15v-655q0 -26 -19 -45t-45 -19h-128q-26 0 -45 19t-19 45v655q62 -15 128 -15zM512 1536q212 0 362 -150t150 -362t-150 -362t-362 -150t-362 150t-150 362t150 362t362 150zM512 1312q14 0 23 9t9 23t-9 23t-23 9q-146 0 -249 -103t-103 -249 -q0 -14 9 -23t23 -9t23 9t9 23q0 119 84.5 203.5t203.5 84.5z" /> - <glyph glyph-name="_592" unicode="&#xf277;" horiz-adv-x="1792" -d="M1745 1239q10 -10 10 -23t-10 -23l-141 -141q-28 -28 -68 -28h-1344q-26 0 -45 19t-19 45v256q0 26 19 45t45 19h576v64q0 26 19 45t45 19h128q26 0 45 -19t19 -45v-64h512q40 0 68 -28zM768 320h256v-512q0 -26 -19 -45t-45 -19h-128q-26 0 -45 19t-19 45v512zM1600 768 -q26 0 45 -19t19 -45v-256q0 -26 -19 -45t-45 -19h-1344q-40 0 -68 28l-141 141q-10 10 -10 23t10 23l141 141q28 28 68 28h512v192h256v-192h576z" /> - <glyph glyph-name="_593" unicode="&#xf278;" horiz-adv-x="2048" -d="M2020 1525q28 -20 28 -53v-1408q0 -20 -11 -36t-29 -23l-640 -256q-24 -11 -48 0l-616 246l-616 -246q-10 -5 -24 -5q-19 0 -36 11q-28 20 -28 53v1408q0 20 11 36t29 23l640 256q24 11 48 0l616 -246l616 246q32 13 60 -6zM736 1390v-1270l576 -230v1270zM128 1173 -v-1270l544 217v1270zM1920 107v1270l-544 -217v-1270z" /> - <glyph glyph-name="_594" unicode="&#xf279;" horiz-adv-x="1792" -d="M512 1536q13 0 22.5 -9.5t9.5 -22.5v-1472q0 -20 -17 -28l-480 -256q-7 -4 -15 -4q-13 0 -22.5 9.5t-9.5 22.5v1472q0 20 17 28l480 256q7 4 15 4zM1760 1536q13 0 22.5 -9.5t9.5 -22.5v-1472q0 -20 -17 -28l-480 -256q-7 -4 -15 -4q-13 0 -22.5 9.5t-9.5 22.5v1472 -q0 20 17 28l480 256q7 4 15 4zM640 1536q8 0 14 -3l512 -256q18 -10 18 -29v-1472q0 -13 -9.5 -22.5t-22.5 -9.5q-8 0 -14 3l-512 256q-18 10 -18 29v1472q0 13 9.5 22.5t22.5 9.5z" /> - <glyph glyph-name="_595" unicode="&#xf27a;" horiz-adv-x="1792" -d="M640 640q0 53 -37.5 90.5t-90.5 37.5t-90.5 -37.5t-37.5 -90.5t37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5zM1024 640q0 53 -37.5 90.5t-90.5 37.5t-90.5 -37.5t-37.5 -90.5t37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5zM1408 640q0 53 -37.5 90.5t-90.5 37.5 -t-90.5 -37.5t-37.5 -90.5t37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5zM1792 640q0 -174 -120 -321.5t-326 -233t-450 -85.5q-110 0 -211 18q-173 -173 -435 -229q-52 -10 -86 -13q-12 -1 -22 6t-13 18q-4 15 20 37q5 5 23.5 21.5t25.5 23.5t23.5 25.5t24 31.5t20.5 37 -t20 48t14.5 57.5t12.5 72.5q-146 90 -229.5 216.5t-83.5 269.5q0 174 120 321.5t326 233t450 85.5t450 -85.5t326 -233t120 -321.5z" /> - <glyph glyph-name="_596" unicode="&#xf27b;" horiz-adv-x="1792" -d="M640 640q0 -53 -37.5 -90.5t-90.5 -37.5t-90.5 37.5t-37.5 90.5t37.5 90.5t90.5 37.5t90.5 -37.5t37.5 -90.5zM1024 640q0 -53 -37.5 -90.5t-90.5 -37.5t-90.5 37.5t-37.5 90.5t37.5 90.5t90.5 37.5t90.5 -37.5t37.5 -90.5zM1408 640q0 -53 -37.5 -90.5t-90.5 -37.5 -t-90.5 37.5t-37.5 90.5t37.5 90.5t90.5 37.5t90.5 -37.5t37.5 -90.5zM896 1152q-204 0 -381.5 -69.5t-282 -187.5t-104.5 -255q0 -112 71.5 -213.5t201.5 -175.5l87 -50l-27 -96q-24 -91 -70 -172q152 63 275 171l43 38l57 -6q69 -8 130 -8q204 0 381.5 69.5t282 187.5 -t104.5 255t-104.5 255t-282 187.5t-381.5 69.5zM1792 640q0 -174 -120 -321.5t-326 -233t-450 -85.5q-70 0 -145 8q-198 -175 -460 -242q-49 -14 -114 -22h-5q-15 0 -27 10.5t-16 27.5v1q-3 4 -0.5 12t2 10t4.5 9.5l6 9t7 8.5t8 9q7 8 31 34.5t34.5 38t31 39.5t32.5 51 -t27 59t26 76q-157 89 -247.5 220t-90.5 281q0 130 71 248.5t191 204.5t286 136.5t348 50.5t348 -50.5t286 -136.5t191 -204.5t71 -248.5z" /> - <glyph glyph-name="_597" unicode="&#xf27c;" horiz-adv-x="1024" -d="M512 345l512 295v-591l-512 -296v592zM0 640v-591l512 296zM512 1527v-591l-512 -296v591zM512 936l512 295v-591z" /> - <glyph glyph-name="_598" unicode="&#xf27d;" horiz-adv-x="1792" -d="M1709 1018q-10 -236 -332 -651q-333 -431 -562 -431q-142 0 -240 263q-44 160 -132 482q-72 262 -157 262q-18 0 -127 -76l-77 98q24 21 108 96.5t130 115.5q156 138 241 146q95 9 153 -55.5t81 -203.5q44 -287 66 -373q55 -249 120 -249q51 0 154 161q101 161 109 246 -q13 139 -109 139q-57 0 -121 -26q120 393 459 382q251 -8 236 -326z" /> - <glyph glyph-name="f27e" unicode="&#xf27e;" -d="M0 1408h1536v-1536h-1536v1536zM1085 293l-221 631l221 297h-634l221 -297l-221 -631l317 -304z" /> - <glyph glyph-name="uniF280" unicode="&#xf280;" -d="M0 1408h1536v-1536h-1536v1536zM908 1088l-12 -33l75 -83l-31 -114l25 -25l107 57l107 -57l25 25l-31 114l75 83l-12 33h-95l-53 96h-32l-53 -96h-95zM641 925q32 0 44.5 -16t11.5 -63l174 21q0 55 -17.5 92.5t-50.5 56t-69 25.5t-85 7q-133 0 -199 -57.5t-66 -182.5v-72 -h-96v-128h76q20 0 20 -8v-382q0 -14 -5 -20t-18 -7l-73 -7v-88h448v86l-149 14q-6 1 -8.5 1.5t-3.5 2.5t-0.5 4t1 7t0.5 10v387h191l38 128h-231q-6 0 -2 6t4 9v80q0 27 1.5 40.5t7.5 28t19.5 20t36.5 5.5zM1248 96v86l-54 9q-7 1 -9.5 2.5t-2.5 3t1 7.5t1 12v520h-275 -l-23 -101l83 -22q23 -7 23 -27v-370q0 -14 -6 -18.5t-20 -6.5l-70 -9v-86h352z" /> - <glyph glyph-name="uniF281" unicode="&#xf281;" horiz-adv-x="1792" -d="M1792 690q0 -58 -29.5 -105.5t-79.5 -72.5q12 -46 12 -96q0 -155 -106.5 -287t-290.5 -208.5t-400 -76.5t-399.5 76.5t-290 208.5t-106.5 287q0 47 11 94q-51 25 -82 73.5t-31 106.5q0 82 58 140.5t141 58.5q85 0 145 -63q218 152 515 162l116 521q3 13 15 21t26 5 -l369 -81q18 37 54 59.5t79 22.5q62 0 106 -43.5t44 -105.5t-44 -106t-106 -44t-105.5 43.5t-43.5 105.5l-334 74l-104 -472q300 -9 519 -160q58 61 143 61q83 0 141 -58.5t58 -140.5zM418 491q0 -62 43.5 -106t105.5 -44t106 44t44 106t-44 105.5t-106 43.5q-61 0 -105 -44 -t-44 -105zM1228 136q11 11 11 26t-11 26q-10 10 -25 10t-26 -10q-41 -42 -121 -62t-160 -20t-160 20t-121 62q-11 10 -26 10t-25 -10q-11 -10 -11 -25.5t11 -26.5q43 -43 118.5 -68t122.5 -29.5t91 -4.5t91 4.5t122.5 29.5t118.5 68zM1225 341q62 0 105.5 44t43.5 106 -q0 61 -44 105t-105 44q-62 0 -106 -43.5t-44 -105.5t44 -106t106 -44z" /> - <glyph glyph-name="_602" unicode="&#xf282;" horiz-adv-x="1792" -d="M69 741h1q16 126 58.5 241.5t115 217t167.5 176t223.5 117.5t276.5 43q231 0 414 -105.5t294 -303.5q104 -187 104 -442v-188h-1125q1 -111 53.5 -192.5t136.5 -122.5t189.5 -57t213 -3t208 46.5t173.5 84.5v-377q-92 -55 -229.5 -92t-312.5 -38t-316 53 -q-189 73 -311.5 249t-124.5 372q-3 242 111 412t325 268q-48 -60 -78 -125.5t-46 -159.5h635q8 77 -8 140t-47 101.5t-70.5 66.5t-80.5 41t-75 20.5t-56 8.5l-22 1q-135 -5 -259.5 -44.5t-223.5 -104.5t-176 -140.5t-138 -163.5z" /> - <glyph glyph-name="_603" unicode="&#xf283;" horiz-adv-x="2304" -d="M0 32v608h2304v-608q0 -66 -47 -113t-113 -47h-1984q-66 0 -113 47t-47 113zM640 256v-128h384v128h-384zM256 256v-128h256v128h-256zM2144 1408q66 0 113 -47t47 -113v-224h-2304v224q0 66 47 113t113 47h1984z" /> - <glyph glyph-name="_604" unicode="&#xf284;" horiz-adv-x="1792" -d="M1584 246l-218 111q-74 -120 -196.5 -189t-263.5 -69q-147 0 -271 72t-196 196t-72 270q0 110 42.5 209.5t115 172t172 115t209.5 42.5q131 0 247.5 -60.5t192.5 -168.5l215 125q-110 169 -286.5 265t-378.5 96q-161 0 -308 -63t-253 -169t-169 -253t-63 -308t63 -308 -t169 -253t253 -169t308 -63q213 0 397.5 107t290.5 292zM1030 643l693 -352q-116 -253 -334.5 -400t-492.5 -147q-182 0 -348 71t-286 191t-191 286t-71 348t71 348t191 286t286 191t348 71q260 0 470.5 -133.5t335.5 -366.5zM1543 640h-39v-160h-96v352h136q32 0 54.5 -20 -t28.5 -48t1 -56t-27.5 -48t-57.5 -20z" /> - <glyph glyph-name="uniF285" unicode="&#xf285;" horiz-adv-x="1792" -d="M1427 827l-614 386l92 151h855zM405 562l-184 116v858l1183 -743zM1424 697l147 -95v-858l-532 335zM1387 718l-500 -802h-855l356 571z" /> - <glyph glyph-name="uniF286" unicode="&#xf286;" horiz-adv-x="1792" -d="M640 528v224q0 16 -16 16h-96q-16 0 -16 -16v-224q0 -16 16 -16h96q16 0 16 16zM1152 528v224q0 16 -16 16h-96q-16 0 -16 -16v-224q0 -16 16 -16h96q16 0 16 16zM1664 496v-752h-640v320q0 80 -56 136t-136 56t-136 -56t-56 -136v-320h-640v752q0 16 16 16h96 -q16 0 16 -16v-112h128v624q0 16 16 16h96q16 0 16 -16v-112h128v112q0 16 16 16h96q16 0 16 -16v-112h128v112q0 6 2.5 9.5t8.5 5t9.5 2t11.5 0t9 -0.5v391q-32 15 -32 50q0 23 16.5 39t38.5 16t38.5 -16t16.5 -39q0 -35 -32 -50v-17q45 10 83 10q21 0 59.5 -7.5t54.5 -7.5 -q17 0 47 7.5t37 7.5q16 0 16 -16v-210q0 -15 -35 -21.5t-62 -6.5q-18 0 -54.5 7.5t-55.5 7.5q-40 0 -90 -12v-133q1 0 9 0.5t11.5 0t9.5 -2t8.5 -5t2.5 -9.5v-112h128v112q0 16 16 16h96q16 0 16 -16v-112h128v112q0 16 16 16h96q16 0 16 -16v-624h128v112q0 16 16 16h96 -q16 0 16 -16z" /> - <glyph glyph-name="_607" unicode="&#xf287;" horiz-adv-x="2304" -d="M2288 731q16 -8 16 -27t-16 -27l-320 -192q-8 -5 -16 -5q-9 0 -16 4q-16 10 -16 28v128h-858q37 -58 83 -165q16 -37 24.5 -55t24 -49t27 -47t27 -34t31.5 -26t33 -8h96v96q0 14 9 23t23 9h320q14 0 23 -9t9 -23v-320q0 -14 -9 -23t-23 -9h-320q-14 0 -23 9t-9 23v96h-96 -q-32 0 -61 10t-51 23.5t-45 40.5t-37 46t-33.5 57t-28.5 57.5t-28 60.5q-23 53 -37 81.5t-36 65t-44.5 53.5t-46.5 17h-360q-22 -84 -91 -138t-157 -54q-106 0 -181 75t-75 181t75 181t181 75q88 0 157 -54t91 -138h104q24 0 46.5 17t44.5 53.5t36 65t37 81.5q19 41 28 60.5 -t28.5 57.5t33.5 57t37 46t45 40.5t51 23.5t61 10h107q21 57 70 92.5t111 35.5q80 0 136 -56t56 -136t-56 -136t-136 -56q-62 0 -111 35.5t-70 92.5h-107q-17 0 -33 -8t-31.5 -26t-27 -34t-27 -47t-24 -49t-24.5 -55q-46 -107 -83 -165h1114v128q0 18 16 28t32 -1z" /> - <glyph glyph-name="_608" unicode="&#xf288;" horiz-adv-x="1792" -d="M1150 774q0 -56 -39.5 -95t-95.5 -39h-253v269h253q56 0 95.5 -39.5t39.5 -95.5zM1329 774q0 130 -91.5 222t-222.5 92h-433v-896h180v269h253q130 0 222 91.5t92 221.5zM1792 640q0 -182 -71 -348t-191 -286t-286 -191t-348 -71t-348 71t-286 191t-191 286t-71 348 -t71 348t191 286t286 191t348 71t348 -71t286 -191t191 -286t71 -348z" /> - <glyph glyph-name="_609" unicode="&#xf289;" horiz-adv-x="2304" -d="M1645 438q0 59 -34 106.5t-87 68.5q-7 -45 -23 -92q-7 -24 -27.5 -38t-44.5 -14q-12 0 -24 3q-31 10 -45 38.5t-4 58.5q23 71 23 143q0 123 -61 227.5t-166 165.5t-228 61q-134 0 -247 -73t-167 -194q108 -28 188 -106q22 -23 22 -55t-22 -54t-54 -22t-55 22 -q-75 75 -180 75q-106 0 -181 -74.5t-75 -180.5t75 -180.5t181 -74.5h1046q79 0 134.5 55.5t55.5 133.5zM1798 438q0 -142 -100.5 -242t-242.5 -100h-1046q-169 0 -289 119.5t-120 288.5q0 153 100 267t249 136q62 184 221 298t354 114q235 0 408.5 -158.5t196.5 -389.5 -q116 -25 192.5 -118.5t76.5 -214.5zM2048 438q0 -175 -97 -319q-23 -33 -64 -33q-24 0 -43 13q-26 17 -32 48.5t12 57.5q71 104 71 233t-71 233q-18 26 -12 57t32 49t57.5 11.5t49.5 -32.5q97 -142 97 -318zM2304 438q0 -244 -134 -443q-23 -34 -64 -34q-23 0 -42 13 -q-26 18 -32.5 49t11.5 57q108 164 108 358q0 195 -108 357q-18 26 -11.5 57.5t32.5 48.5q26 18 57 12t49 -33q134 -198 134 -442z" /> - <glyph glyph-name="_610" unicode="&#xf28a;" -d="M1500 -13q0 -89 -63 -152.5t-153 -63.5t-153.5 63.5t-63.5 152.5q0 90 63.5 153.5t153.5 63.5t153 -63.5t63 -153.5zM1267 268q-115 -15 -192.5 -102.5t-77.5 -205.5q0 -74 33 -138q-146 -78 -379 -78q-109 0 -201 21t-153.5 54.5t-110.5 76.5t-76 85t-44.5 83 -t-23.5 66.5t-6 39.5q0 19 4.5 42.5t18.5 56t36.5 58t64 43.5t94.5 18t94 -17.5t63 -41t35.5 -53t17.5 -49t4 -33.5q0 -34 -23 -81q28 -27 82 -42t93 -17l40 -1q115 0 190 51t75 133q0 26 -9 48.5t-31.5 44.5t-49.5 41t-74 44t-93.5 47.5t-119.5 56.5q-28 13 -43 20 -q-116 55 -187 100t-122.5 102t-72 125.5t-20.5 162.5q0 78 20.5 150t66 137.5t112.5 114t166.5 77t221.5 28.5q120 0 220 -26t164.5 -67t109.5 -94t64 -105.5t19 -103.5q0 -46 -15 -82.5t-36.5 -58t-48.5 -36t-49 -19.5t-39 -5h-8h-32t-39 5t-44 14t-41 28t-37 46t-24 70.5 -t-10 97.5q-15 16 -59 25.5t-81 10.5l-37 1q-68 0 -117.5 -31t-70.5 -70t-21 -76q0 -24 5 -43t24 -46t53 -51t97 -53.5t150 -58.5q76 -25 138.5 -53.5t109 -55.5t83 -59t60.5 -59.5t41 -62.5t26.5 -62t14.5 -63.5t6 -62t1 -62.5z" /> - <glyph glyph-name="_611" unicode="&#xf28b;" -d="M704 352v576q0 14 -9 23t-23 9h-256q-14 0 -23 -9t-9 -23v-576q0 -14 9 -23t23 -9h256q14 0 23 9t9 23zM1152 352v576q0 14 -9 23t-23 9h-256q-14 0 -23 -9t-9 -23v-576q0 -14 9 -23t23 -9h256q14 0 23 9t9 23zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103 -t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" /> - <glyph glyph-name="_612" unicode="&#xf28c;" -d="M768 1408q209 0 385.5 -103t279.5 -279.5t103 -385.5t-103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103zM768 96q148 0 273 73t198 198t73 273t-73 273t-198 198t-273 73t-273 -73t-198 -198t-73 -273 -t73 -273t198 -198t273 -73zM864 320q-14 0 -23 9t-9 23v576q0 14 9 23t23 9h192q14 0 23 -9t9 -23v-576q0 -14 -9 -23t-23 -9h-192zM480 320q-14 0 -23 9t-9 23v576q0 14 9 23t23 9h192q14 0 23 -9t9 -23v-576q0 -14 -9 -23t-23 -9h-192z" /> - <glyph glyph-name="_613" unicode="&#xf28d;" -d="M1088 352v576q0 14 -9 23t-23 9h-576q-14 0 -23 -9t-9 -23v-576q0 -14 9 -23t23 -9h576q14 0 23 9t9 23zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5 -t103 -385.5z" /> - <glyph glyph-name="_614" unicode="&#xf28e;" -d="M768 1408q209 0 385.5 -103t279.5 -279.5t103 -385.5t-103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103zM768 96q148 0 273 73t198 198t73 273t-73 273t-198 198t-273 73t-273 -73t-198 -198t-73 -273 -t73 -273t198 -198t273 -73zM480 320q-14 0 -23 9t-9 23v576q0 14 9 23t23 9h576q14 0 23 -9t9 -23v-576q0 -14 -9 -23t-23 -9h-576z" /> - <glyph glyph-name="_615" unicode="&#xf290;" horiz-adv-x="1792" -d="M1757 128l35 -313q3 -28 -16 -50q-19 -21 -48 -21h-1664q-29 0 -48 21q-19 22 -16 50l35 313h1722zM1664 967l86 -775h-1708l86 775q3 24 21 40.5t43 16.5h256v-128q0 -53 37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5v128h384v-128q0 -53 37.5 -90.5t90.5 -37.5 -t90.5 37.5t37.5 90.5v128h256q25 0 43 -16.5t21 -40.5zM1280 1152v-256q0 -26 -19 -45t-45 -19t-45 19t-19 45v256q0 106 -75 181t-181 75t-181 -75t-75 -181v-256q0 -26 -19 -45t-45 -19t-45 19t-19 45v256q0 159 112.5 271.5t271.5 112.5t271.5 -112.5t112.5 -271.5z" /> - <glyph glyph-name="_616" unicode="&#xf291;" horiz-adv-x="2048" -d="M1920 768q53 0 90.5 -37.5t37.5 -90.5t-37.5 -90.5t-90.5 -37.5h-15l-115 -662q-8 -46 -44 -76t-82 -30h-1280q-46 0 -82 30t-44 76l-115 662h-15q-53 0 -90.5 37.5t-37.5 90.5t37.5 90.5t90.5 37.5h1792zM485 -32q26 2 43.5 22.5t15.5 46.5l-32 416q-2 26 -22.5 43.5 -t-46.5 15.5t-43.5 -22.5t-15.5 -46.5l32 -416q2 -25 20.5 -42t43.5 -17h5zM896 32v416q0 26 -19 45t-45 19t-45 -19t-19 -45v-416q0 -26 19 -45t45 -19t45 19t19 45zM1280 32v416q0 26 -19 45t-45 19t-45 -19t-19 -45v-416q0 -26 19 -45t45 -19t45 19t19 45zM1632 27l32 416 -q2 26 -15.5 46.5t-43.5 22.5t-46.5 -15.5t-22.5 -43.5l-32 -416q-2 -26 15.5 -46.5t43.5 -22.5h5q25 0 43.5 17t20.5 42zM476 1244l-93 -412h-132l101 441q19 88 89 143.5t160 55.5h167q0 26 19 45t45 19h384q26 0 45 -19t19 -45h167q90 0 160 -55.5t89 -143.5l101 -441 -h-132l-93 412q-11 44 -45.5 72t-79.5 28h-167q0 -26 -19 -45t-45 -19h-384q-26 0 -45 19t-19 45h-167q-45 0 -79.5 -28t-45.5 -72z" /> - <glyph glyph-name="_617" unicode="&#xf292;" horiz-adv-x="1792" -d="M991 512l64 256h-254l-64 -256h254zM1759 1016l-56 -224q-7 -24 -31 -24h-327l-64 -256h311q15 0 25 -12q10 -14 6 -28l-56 -224q-5 -24 -31 -24h-327l-81 -328q-7 -24 -31 -24h-224q-16 0 -26 12q-9 12 -6 28l78 312h-254l-81 -328q-7 -24 -31 -24h-225q-15 0 -25 12 -q-9 12 -6 28l78 312h-311q-15 0 -25 12q-9 12 -6 28l56 224q7 24 31 24h327l64 256h-311q-15 0 -25 12q-10 14 -6 28l56 224q5 24 31 24h327l81 328q7 24 32 24h224q15 0 25 -12q9 -12 6 -28l-78 -312h254l81 328q7 24 32 24h224q15 0 25 -12q9 -12 6 -28l-78 -312h311 -q15 0 25 -12q9 -12 6 -28z" /> - <glyph glyph-name="_618" unicode="&#xf293;" -d="M841 483l148 -148l-149 -149zM840 1094l149 -149l-148 -148zM710 -130l464 464l-306 306l306 306l-464 464v-611l-255 255l-93 -93l320 -321l-320 -321l93 -93l255 255v-611zM1429 640q0 -209 -32 -365.5t-87.5 -257t-140.5 -162.5t-181.5 -86.5t-219.5 -24.5 -t-219.5 24.5t-181.5 86.5t-140.5 162.5t-87.5 257t-32 365.5t32 365.5t87.5 257t140.5 162.5t181.5 86.5t219.5 24.5t219.5 -24.5t181.5 -86.5t140.5 -162.5t87.5 -257t32 -365.5z" /> - <glyph glyph-name="_619" unicode="&#xf294;" horiz-adv-x="1024" -d="M596 113l173 172l-173 172v-344zM596 823l173 172l-173 172v-344zM628 640l356 -356l-539 -540v711l-297 -296l-108 108l372 373l-372 373l108 108l297 -296v711l539 -540z" /> - <glyph glyph-name="_620" unicode="&#xf295;" -d="M1280 256q0 52 -38 90t-90 38t-90 -38t-38 -90t38 -90t90 -38t90 38t38 90zM512 1024q0 52 -38 90t-90 38t-90 -38t-38 -90t38 -90t90 -38t90 38t38 90zM1536 256q0 -159 -112.5 -271.5t-271.5 -112.5t-271.5 112.5t-112.5 271.5t112.5 271.5t271.5 112.5t271.5 -112.5 -t112.5 -271.5zM1440 1344q0 -20 -13 -38l-1056 -1408q-19 -26 -51 -26h-160q-26 0 -45 19t-19 45q0 20 13 38l1056 1408q19 26 51 26h160q26 0 45 -19t19 -45zM768 1024q0 -159 -112.5 -271.5t-271.5 -112.5t-271.5 112.5t-112.5 271.5t112.5 271.5t271.5 112.5 -t271.5 -112.5t112.5 -271.5z" /> - <glyph glyph-name="_621" unicode="&#xf296;" horiz-adv-x="1792" -d="M104 830l792 -1015l-868 630q-18 13 -25 34.5t0 42.5l101 308v0zM566 830h660l-330 -1015v0zM368 1442l198 -612h-462l198 612q8 23 33 23t33 -23zM1688 830l101 -308q7 -21 0 -42.5t-25 -34.5l-868 -630l792 1015v0zM1688 830h-462l198 612q8 23 33 23t33 -23z" /> - <glyph glyph-name="_622" unicode="&#xf297;" horiz-adv-x="1792" -d="M384 704h160v224h-160v-224zM1221 372v92q-104 -36 -243 -38q-135 -1 -259.5 46.5t-220.5 122.5l1 -96q88 -80 212 -128.5t272 -47.5q129 0 238 49zM640 704h640v224h-640v-224zM1792 736q0 -187 -99 -352q89 -102 89 -229q0 -157 -129.5 -268t-313.5 -111 -q-122 0 -225 52.5t-161 140.5q-19 -1 -57 -1t-57 1q-58 -88 -161 -140.5t-225 -52.5q-184 0 -313.5 111t-129.5 268q0 127 89 229q-99 165 -99 352q0 209 120 385.5t326.5 279.5t449.5 103t449.5 -103t326.5 -279.5t120 -385.5z" /> - <glyph glyph-name="_623" unicode="&#xf298;" -d="M515 625v-128h-252v128h252zM515 880v-127h-252v127h252zM1273 369v-128h-341v128h341zM1273 625v-128h-672v128h672zM1273 880v-127h-672v127h672zM1408 20v1240q0 8 -6 14t-14 6h-32l-378 -256l-210 171l-210 -171l-378 256h-32q-8 0 -14 -6t-6 -14v-1240q0 -8 6 -14 -t14 -6h1240q8 0 14 6t6 14zM553 1130l185 150h-406zM983 1130l221 150h-406zM1536 1260v-1240q0 -62 -43 -105t-105 -43h-1240q-62 0 -105 43t-43 105v1240q0 62 43 105t105 43h1240q62 0 105 -43t43 -105z" /> - <glyph glyph-name="_624" unicode="&#xf299;" horiz-adv-x="1792" -d="M896 720q-104 196 -160 278q-139 202 -347 318q-34 19 -70 36q-89 40 -94 32t34 -38l39 -31q62 -43 112.5 -93.5t94.5 -116.5t70.5 -113t70.5 -131q9 -17 13 -25q44 -84 84 -153t98 -154t115.5 -150t131 -123.5t148.5 -90.5q153 -66 154 -60q1 3 -49 37q-53 36 -81 57 -q-77 58 -179 211t-185 310zM549 177q-76 60 -132.5 125t-98 143.5t-71 154.5t-58.5 186t-52 209t-60.5 252t-76.5 289q273 0 497.5 -36t379 -92t271 -144.5t185.5 -172.5t110 -198.5t56 -199.5t12.5 -198.5t-9.5 -173t-20 -143.5t-13 -107l323 -327h-104l-281 285 -q-22 -2 -91.5 -14t-121.5 -19t-138 -6t-160.5 17t-167.5 59t-179 111z" /> - <glyph glyph-name="_625" unicode="&#xf29a;" horiz-adv-x="1792" -d="M1374 879q-6 26 -28.5 39.5t-48.5 7.5q-261 -62 -401 -62t-401 62q-26 6 -48.5 -7.5t-28.5 -39.5t7.5 -48.5t39.5 -28.5q194 -46 303 -58q-2 -158 -15.5 -269t-26.5 -155.5t-41 -115.5l-9 -21q-10 -25 1 -49t36 -34q9 -4 23 -4q44 0 60 41l8 20q54 139 71 259h42 -q17 -120 71 -259l8 -20q16 -41 60 -41q14 0 23 4q25 10 36 34t1 49l-9 21q-28 71 -41 115.5t-26.5 155.5t-15.5 269q109 12 303 58q26 6 39.5 28.5t7.5 48.5zM1024 1024q0 53 -37.5 90.5t-90.5 37.5t-90.5 -37.5t-37.5 -90.5t37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5z -M1600 640q0 -143 -55.5 -273.5t-150 -225t-225 -150t-273.5 -55.5t-273.5 55.5t-225 150t-150 225t-55.5 273.5t55.5 273.5t150 225t225 150t273.5 55.5t273.5 -55.5t225 -150t150 -225t55.5 -273.5zM896 1408q-156 0 -298 -61t-245 -164t-164 -245t-61 -298t61 -298 -t164 -245t245 -164t298 -61t298 61t245 164t164 245t61 298t-61 298t-164 245t-245 164t-298 61zM1792 640q0 -182 -71 -348t-191 -286t-286 -191t-348 -71t-348 71t-286 191t-191 286t-71 348t71 348t191 286t286 191t348 71t348 -71t286 -191t191 -286t71 -348z" /> - <glyph glyph-name="_626" unicode="&#xf29b;" -d="M1438 723q34 -35 29 -82l-44 -551q-4 -42 -34.5 -70t-71.5 -28q-6 0 -9 1q-44 3 -72.5 36.5t-25.5 77.5l35 429l-143 -8q55 -113 55 -240q0 -216 -148 -372l-137 137q91 101 91 235q0 145 -102.5 248t-247.5 103q-134 0 -236 -92l-137 138q120 114 284 141l264 300 -l-149 87l-181 -161q-33 -30 -77 -27.5t-73 35.5t-26.5 77t34.5 73l239 213q26 23 60 26.5t64 -14.5l488 -283q36 -21 48 -68q17 -67 -26 -117l-205 -232l371 20q49 3 83 -32zM1240 1180q-74 0 -126 52t-52 126t52 126t126 52t126.5 -52t52.5 -126t-52.5 -126t-126.5 -52z -M613 -62q106 0 196 61l139 -139q-146 -116 -335 -116q-148 0 -273.5 73t-198.5 198t-73 273q0 188 116 336l139 -139q-60 -88 -60 -197q0 -145 102.5 -247.5t247.5 -102.5z" /> - <glyph glyph-name="_627" unicode="&#xf29c;" -d="M880 336v-160q0 -14 -9 -23t-23 -9h-160q-14 0 -23 9t-9 23v160q0 14 9 23t23 9h160q14 0 23 -9t9 -23zM1136 832q0 -50 -15 -90t-45.5 -69t-52 -44t-59.5 -36q-32 -18 -46.5 -28t-26 -24t-11.5 -29v-32q0 -14 -9 -23t-23 -9h-160q-14 0 -23 9t-9 23v68q0 35 10.5 64.5 -t24 47.5t39 35.5t41 25.5t44.5 21q53 25 75 43t22 49q0 42 -43.5 71.5t-95.5 29.5q-56 0 -95 -27q-29 -20 -80 -83q-9 -12 -25 -12q-11 0 -19 6l-108 82q-10 7 -12 20t5 23q122 192 349 192q129 0 238.5 -89.5t109.5 -214.5zM768 1280q-130 0 -248.5 -51t-204 -136.5 -t-136.5 -204t-51 -248.5t51 -248.5t136.5 -204t204 -136.5t248.5 -51t248.5 51t204 136.5t136.5 204t51 248.5t-51 248.5t-136.5 204t-204 136.5t-248.5 51zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5 -t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" /> - <glyph glyph-name="_628" unicode="&#xf29d;" horiz-adv-x="1408" -d="M366 1225q-64 0 -110 45.5t-46 110.5q0 64 46 109.5t110 45.5t109.5 -45.5t45.5 -109.5q0 -65 -45.5 -110.5t-109.5 -45.5zM917 583q0 -50 -30 -67.5t-63.5 -6.5t-47.5 34l-367 438q-7 12 -14 15.5t-11 1.5l-3 -3q-7 -8 4 -21l122 -139l1 -354l-161 -457 -q-67 -192 -92 -234q-15 -26 -28 -32q-50 -26 -103 -1q-29 13 -41.5 43t-9.5 57q2 17 197 618l5 416l-85 -164l35 -222q4 -24 -1 -42t-14 -27.5t-19 -16t-17 -7.5l-7 -2q-19 -3 -34.5 3t-24 16t-14 22t-7.5 19.5t-2 9.5l-46 299l211 381q23 34 113 34q75 0 107 -40l424 -521 -q7 -5 14 -17l3 -3l-1 -1q7 -13 7 -29zM514 433q43 -113 88.5 -225t69.5 -168l24 -55q36 -93 42 -125q11 -70 -36 -97q-35 -22 -66 -16t-51 22t-29 35h-1q-6 16 -8 25l-124 351zM1338 -159q31 -49 31 -57q0 -5 -3 -7q-9 -5 -14.5 0.5t-15.5 26t-16 30.5q-114 172 -423 661 -q3 -1 7 1t7 4l3 2q11 9 11 17z" /> - <glyph glyph-name="_629" unicode="&#xf29e;" horiz-adv-x="2304" -d="M504 542h171l-1 265zM1530 641q0 87 -50.5 140t-146.5 53h-54v-388h52q91 0 145 57t54 138zM956 1018l1 -756q0 -14 -9.5 -24t-23.5 -10h-216q-14 0 -23.5 10t-9.5 24v62h-291l-55 -81q-10 -15 -28 -15h-267q-21 0 -30.5 18t3.5 35l556 757q9 14 27 14h332q14 0 24 -10 -t10 -24zM1783 641q0 -193 -125.5 -303t-324.5 -110h-270q-14 0 -24 10t-10 24v756q0 14 10 24t24 10h268q200 0 326 -109t126 -302zM1939 640q0 -11 -0.5 -29t-8 -71.5t-21.5 -102t-44.5 -108t-73.5 -102.5h-51q38 45 66.5 104.5t41.5 112t21 98t9 72.5l1 27q0 8 -0.5 22.5 -t-7.5 60t-20 91.5t-41 111.5t-66 124.5h43q41 -47 72 -107t45.5 -111.5t23 -96t10.5 -70.5zM2123 640q0 -11 -0.5 -29t-8 -71.5t-21.5 -102t-45 -108t-74 -102.5h-51q38 45 66.5 104.5t41.5 112t21 98t9 72.5l1 27q0 8 -0.5 22.5t-7.5 60t-19.5 91.5t-40.5 111.5t-66 124.5 -h43q41 -47 72 -107t45.5 -111.5t23 -96t10.5 -70.5zM2304 640q0 -11 -0.5 -29t-8 -71.5t-21.5 -102t-44.5 -108t-73.5 -102.5h-51q38 45 66 104.5t41 112t21 98t9 72.5l1 27q0 8 -0.5 22.5t-7.5 60t-19.5 91.5t-40.5 111.5t-66 124.5h43q41 -47 72 -107t45.5 -111.5t23 -96 -t9.5 -70.5z" /> - <glyph glyph-name="uniF2A0" unicode="&#xf2a0;" horiz-adv-x="1408" -d="M617 -153q0 11 -13 58t-31 107t-20 69q-1 4 -5 26.5t-8.5 36t-13.5 21.5q-15 14 -51 14q-23 0 -70 -5.5t-71 -5.5q-34 0 -47 11q-6 5 -11 15.5t-7.5 20t-6.5 24t-5 18.5q-37 128 -37 255t37 255q1 4 5 18.5t6.5 24t7.5 20t11 15.5q13 11 47 11q24 0 71 -5.5t70 -5.5 -q36 0 51 14q9 8 13.5 21.5t8.5 36t5 26.5q2 9 20 69t31 107t13 58q0 22 -43.5 52.5t-75.5 42.5q-20 8 -45 8q-34 0 -98 -18q-57 -17 -96.5 -40.5t-71 -66t-46 -70t-45.5 -94.5q-6 -12 -9 -19q-49 -107 -68 -216t-19 -244t19 -244t68 -216q56 -122 83 -161q63 -91 179 -127 -l6 -2q64 -18 98 -18q25 0 45 8q32 12 75.5 42.5t43.5 52.5zM776 760q-26 0 -45 19t-19 45.5t19 45.5q37 37 37 90q0 52 -37 91q-19 19 -19 45t19 45t45 19t45 -19q75 -75 75 -181t-75 -181q-21 -19 -45 -19zM957 579q-27 0 -45 19q-19 19 -19 45t19 45q112 114 112 272 -t-112 272q-19 19 -19 45t19 45t45 19t45 -19q150 -150 150 -362t-150 -362q-18 -19 -45 -19zM1138 398q-27 0 -45 19q-19 19 -19 45t19 45q90 91 138.5 208t48.5 245t-48.5 245t-138.5 208q-19 19 -19 45t19 45t45 19t45 -19q109 -109 167 -249t58 -294t-58 -294t-167 -249 -q-18 -19 -45 -19z" /> - <glyph glyph-name="uniF2A1" unicode="&#xf2a1;" horiz-adv-x="2176" -d="M192 352q-66 0 -113 -47t-47 -113t47 -113t113 -47t113 47t47 113t-47 113t-113 47zM704 352q-66 0 -113 -47t-47 -113t47 -113t113 -47t113 47t47 113t-47 113t-113 47zM704 864q-66 0 -113 -47t-47 -113t47 -113t113 -47t113 47t47 113t-47 113t-113 47zM1472 352 -q-66 0 -113 -47t-47 -113t47 -113t113 -47t113 47t47 113t-47 113t-113 47zM1984 352q-66 0 -113 -47t-47 -113t47 -113t113 -47t113 47t47 113t-47 113t-113 47zM1472 864q-66 0 -113 -47t-47 -113t47 -113t113 -47t113 47t47 113t-47 113t-113 47zM1984 864 -q-66 0 -113 -47t-47 -113t47 -113t113 -47t113 47t47 113t-47 113t-113 47zM1984 1376q-66 0 -113 -47t-47 -113t47 -113t113 -47t113 47t47 113t-47 113t-113 47zM384 192q0 -80 -56 -136t-136 -56t-136 56t-56 136t56 136t136 56t136 -56t56 -136zM896 192q0 -80 -56 -136 -t-136 -56t-136 56t-56 136t56 136t136 56t136 -56t56 -136zM384 704q0 -80 -56 -136t-136 -56t-136 56t-56 136t56 136t136 56t136 -56t56 -136zM896 704q0 -80 -56 -136t-136 -56t-136 56t-56 136t56 136t136 56t136 -56t56 -136zM384 1216q0 -80 -56 -136t-136 -56 -t-136 56t-56 136t56 136t136 56t136 -56t56 -136zM1664 192q0 -80 -56 -136t-136 -56t-136 56t-56 136t56 136t136 56t136 -56t56 -136zM896 1216q0 -80 -56 -136t-136 -56t-136 56t-56 136t56 136t136 56t136 -56t56 -136zM2176 192q0 -80 -56 -136t-136 -56t-136 56 -t-56 136t56 136t136 56t136 -56t56 -136zM1664 704q0 -80 -56 -136t-136 -56t-136 56t-56 136t56 136t136 56t136 -56t56 -136zM2176 704q0 -80 -56 -136t-136 -56t-136 56t-56 136t56 136t136 56t136 -56t56 -136zM1664 1216q0 -80 -56 -136t-136 -56t-136 56t-56 136 -t56 136t136 56t136 -56t56 -136zM2176 1216q0 -80 -56 -136t-136 -56t-136 56t-56 136t56 136t136 56t136 -56t56 -136z" /> - <glyph glyph-name="uniF2A2" unicode="&#xf2a2;" horiz-adv-x="1792" -d="M128 -192q0 -26 -19 -45t-45 -19t-45 19t-19 45t19 45t45 19t45 -19t19 -45zM320 0q0 -26 -19 -45t-45 -19t-45 19t-19 45t19 45t45 19t45 -19t19 -45zM365 365l256 -256l-90 -90l-256 256zM704 384q0 -26 -19 -45t-45 -19t-45 19t-19 45t19 45t45 19t45 -19t19 -45z -M1411 704q0 -59 -11.5 -108.5t-37.5 -93.5t-44 -67.5t-53 -64.5q-31 -35 -45.5 -54t-33.5 -50t-26.5 -64t-7.5 -74q0 -159 -112.5 -271.5t-271.5 -112.5q-26 0 -45 19t-19 45t19 45t45 19q106 0 181 75t75 181q0 57 11.5 105.5t37 91t43.5 66.5t52 63q40 46 59.5 72 -t37.5 74.5t18 103.5q0 185 -131.5 316.5t-316.5 131.5t-316.5 -131.5t-131.5 -316.5q0 -26 -19 -45t-45 -19t-45 19t-19 45q0 117 45.5 223.5t123 184t184 123t223.5 45.5t223.5 -45.5t184 -123t123 -184t45.5 -223.5zM896 576q0 -26 -19 -45t-45 -19t-45 19t-19 45t19 45 -t45 19t45 -19t19 -45zM1184 704q0 -26 -19 -45t-45 -19t-45 19t-19 45q0 93 -65.5 158.5t-158.5 65.5q-92 0 -158 -65.5t-66 -158.5q0 -26 -19 -45t-45 -19t-45 19t-19 45q0 146 103 249t249 103t249 -103t103 -249zM1578 993q10 -25 -1 -49t-36 -34q-9 -4 -23 -4 -q-19 0 -35.5 11t-23.5 30q-68 178 -224 295q-21 16 -25 42t12 47q17 21 43 25t47 -12q183 -137 266 -351zM1788 1074q9 -25 -1.5 -49t-35.5 -34q-11 -4 -23 -4q-44 0 -60 41q-92 238 -297 393q-22 16 -25.5 42t12.5 47q16 22 42 25.5t47 -12.5q235 -175 341 -449z" /> - <glyph glyph-name="uniF2A3" unicode="&#xf2a3;" horiz-adv-x="2304" -d="M1032 576q-59 2 -84 55q-17 34 -48 53.5t-68 19.5q-53 0 -90.5 -37.5t-37.5 -90.5q0 -56 36 -89l10 -8q34 -31 82 -31q37 0 68 19.5t48 53.5q25 53 84 55zM1600 704q0 56 -36 89l-10 8q-34 31 -82 31q-37 0 -68 -19.5t-48 -53.5q-25 -53 -84 -55q59 -2 84 -55 -q17 -34 48 -53.5t68 -19.5q53 0 90.5 37.5t37.5 90.5zM1174 925q-17 -35 -55 -48t-73 4q-62 31 -134 31q-51 0 -99 -17q3 0 9.5 0.5t9.5 0.5q92 0 170.5 -50t118.5 -133q17 -36 3.5 -73.5t-49.5 -54.5q-18 -9 -39 -9q21 0 39 -9q36 -17 49.5 -54.5t-3.5 -73.5 -q-40 -83 -118.5 -133t-170.5 -50h-6q-16 2 -44 4l-290 27l-239 -120q-14 -7 -29 -7q-40 0 -57 35l-160 320q-11 23 -4 47.5t29 37.5l209 119l148 267q17 155 91.5 291.5t195.5 236.5q31 25 70.5 21.5t64.5 -34.5t21.5 -70t-34.5 -65q-70 -59 -117 -128q123 84 267 101 -q40 5 71.5 -19t35.5 -64q5 -40 -19 -71.5t-64 -35.5q-84 -10 -159 -55q46 10 99 10q115 0 218 -50q36 -18 49 -55.5t-5 -73.5zM2137 1085l160 -320q11 -23 4 -47.5t-29 -37.5l-209 -119l-148 -267q-17 -155 -91.5 -291.5t-195.5 -236.5q-26 -22 -61 -22q-45 0 -74 35 -q-25 31 -21.5 70t34.5 65q70 59 117 128q-123 -84 -267 -101q-4 -1 -12 -1q-36 0 -63.5 24t-31.5 60q-5 40 19 71.5t64 35.5q84 10 159 55q-46 -10 -99 -10q-115 0 -218 50q-36 18 -49 55.5t5 73.5q17 35 55 48t73 -4q62 -31 134 -31q51 0 99 17q-3 0 -9.5 -0.5t-9.5 -0.5 -q-92 0 -170.5 50t-118.5 133q-17 36 -3.5 73.5t49.5 54.5q18 9 39 9q-21 0 -39 9q-36 17 -49.5 54.5t3.5 73.5q40 83 118.5 133t170.5 50h6h1q14 -2 42 -4l291 -27l239 120q14 7 29 7q40 0 57 -35z" /> - <glyph glyph-name="uniF2A4" unicode="&#xf2a4;" horiz-adv-x="1792" -d="M1056 704q0 -26 19 -45t45 -19t45 19t19 45q0 146 -103 249t-249 103t-249 -103t-103 -249q0 -26 19 -45t45 -19t45 19t19 45q0 93 66 158.5t158 65.5t158 -65.5t66 -158.5zM835 1280q-117 0 -223.5 -45.5t-184 -123t-123 -184t-45.5 -223.5q0 -26 19 -45t45 -19t45 19 -t19 45q0 185 131.5 316.5t316.5 131.5t316.5 -131.5t131.5 -316.5q0 -55 -18 -103.5t-37.5 -74.5t-59.5 -72q-34 -39 -52 -63t-43.5 -66.5t-37 -91t-11.5 -105.5q0 -106 -75 -181t-181 -75q-26 0 -45 -19t-19 -45t19 -45t45 -19q159 0 271.5 112.5t112.5 271.5q0 41 7.5 74 -t26.5 64t33.5 50t45.5 54q35 41 53 64.5t44 67.5t37.5 93.5t11.5 108.5q0 117 -45.5 223.5t-123 184t-184 123t-223.5 45.5zM591 561l226 -226l-579 -579q-12 -12 -29 -12t-29 12l-168 168q-12 12 -12 29t12 29zM1612 1524l168 -168q12 -12 12 -29t-12 -30l-233 -233 -l-26 -25l-71 -71q-66 153 -195 258l91 91l207 207q13 12 30 12t29 -12z" /> - <glyph glyph-name="uniF2A5" unicode="&#xf2a5;" -d="M866 1021q0 -27 -13 -94q-11 -50 -31.5 -150t-30.5 -150q-2 -11 -4.5 -12.5t-13.5 -2.5q-20 -2 -31 -2q-58 0 -84 49.5t-26 113.5q0 88 35 174t103 124q28 14 51 14q28 0 36.5 -16.5t8.5 -47.5zM1352 597q0 14 -39 75.5t-52 66.5q-21 8 -34 8q-91 0 -226 -77l-2 2 -q3 22 27.5 135t24.5 178q0 233 -242 233q-24 0 -68 -6q-94 -17 -168.5 -89.5t-111.5 -166.5t-37 -189q0 -146 80.5 -225t227.5 -79q25 0 25 -3t-1 -5q-4 -34 -26 -117q-14 -52 -51.5 -101t-82.5 -49q-42 0 -42 47q0 24 10.5 47.5t25 39.5t29.5 28.5t26 20t11 8.5q0 3 -7 10 -q-24 22 -58.5 36.5t-65.5 14.5q-35 0 -63.5 -34t-41 -75t-12.5 -75q0 -88 51.5 -142t138.5 -54q82 0 155 53t117.5 126t65.5 153q6 22 15.5 66.5t14.5 66.5q3 12 14 18q118 60 227 60q48 0 127 -18q1 -1 4 -1q5 0 9.5 4.5t4.5 8.5zM1536 1120v-960q0 -119 -84.5 -203.5 -t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" /> - <glyph glyph-name="uniF2A6" unicode="&#xf2a6;" horiz-adv-x="1535" -d="M744 1231q0 24 -2 38.5t-8.5 30t-21 23t-37.5 7.5q-39 0 -78 -23q-105 -58 -159 -190.5t-54 -269.5q0 -44 8.5 -85.5t26.5 -80.5t52.5 -62.5t81.5 -23.5q4 0 18 -0.5t20 0t16 3t15 8.5t7 16q16 77 48 231.5t48 231.5q19 91 19 146zM1498 575q0 -7 -7.5 -13.5t-15.5 -6.5 -l-6 1q-22 3 -62 11t-72 12.5t-63 4.5q-167 0 -351 -93q-15 -8 -21 -27q-10 -36 -24.5 -105.5t-22.5 -100.5q-23 -91 -70 -179.5t-112.5 -164.5t-154.5 -123t-185 -47q-135 0 -214.5 83.5t-79.5 219.5q0 53 19.5 117t63 116.5t97.5 52.5q38 0 120 -33.5t83 -61.5 -q0 -1 -16.5 -12.5t-39.5 -31t-46 -44.5t-39 -61t-16 -74q0 -33 16.5 -53t48.5 -20q45 0 85 31.5t66.5 78t48 105.5t32.5 107t16 90v9q0 2 -3.5 3.5t-8.5 1.5h-10t-10 -0.5t-6 -0.5q-227 0 -352 122.5t-125 348.5q0 108 34.5 221t96 210t156 167.5t204.5 89.5q52 9 106 9 -q374 0 374 -360q0 -98 -38 -273t-43 -211l3 -3q101 57 182.5 88t167.5 31q22 0 53 -13q19 -7 80 -102.5t61 -116.5z" /> - <glyph glyph-name="uniF2A7" unicode="&#xf2a7;" horiz-adv-x="1664" -d="M831 863q32 0 59 -18l222 -148q61 -40 110 -97l146 -170q40 -46 29 -106l-72 -413q-6 -32 -29.5 -53.5t-55.5 -25.5l-527 -56l-352 -32h-9q-39 0 -67.5 28t-28.5 68q0 37 27 64t65 32l260 32h-448q-41 0 -69.5 30t-26.5 71q2 39 32 65t69 26l442 1l-521 64q-41 5 -66 37 -t-19 73q6 35 34.5 57.5t65.5 22.5h10l481 -60l-351 94q-38 10 -62 41.5t-18 68.5q6 36 33 58.5t62 22.5q6 0 20 -2l448 -96l217 -37q1 0 3 -0.5t3 -0.5q23 0 30.5 23t-12.5 36l-186 125q-35 23 -42 63.5t18 73.5q27 38 76 38zM761 661l186 -125l-218 37l-5 2l-36 38 -l-238 262q-1 1 -2.5 3.5t-2.5 3.5q-24 31 -18.5 70t37.5 64q31 23 68 17.5t64 -33.5l142 -147q-2 -1 -5 -3.5t-4 -4.5q-32 -45 -23 -99t55 -85zM1648 1115l15 -266q4 -73 -11 -147l-48 -219q-12 -59 -67 -87l-106 -54q2 62 -39 109l-146 170q-53 61 -117 103l-222 148 -q-34 23 -76 23q-51 0 -88 -37l-235 312q-25 33 -18 73.5t41 63.5q33 22 71.5 14t62.5 -40l266 -352l-262 455q-21 35 -10.5 75t47.5 59q35 18 72.5 6t57.5 -46l241 -420l-136 337q-15 35 -4.5 74t44.5 56q37 19 76 6t56 -51l193 -415l101 -196q8 -15 23 -17.5t27 7.5t11 26 -l-12 224q-2 41 26 71t69 31q39 0 67 -28.5t30 -67.5z" /> - <glyph glyph-name="uniF2A8" unicode="&#xf2a8;" horiz-adv-x="1792" -d="M335 180q-2 0 -6 2q-86 57 -168.5 145t-139.5 180q-21 30 -21 69q0 9 2 19t4 18t7 18t8.5 16t10.5 17t10 15t12 15.5t11 14.5q184 251 452 365q-110 198 -110 211q0 19 17 29q116 64 128 64q18 0 28 -16l124 -229q92 19 192 19q266 0 497.5 -137.5t378.5 -369.5 -q20 -31 20 -69t-20 -69q-91 -142 -218.5 -253.5t-278.5 -175.5q110 -198 110 -211q0 -20 -17 -29q-116 -64 -127 -64q-19 0 -29 16l-124 229l-64 119l-444 820l7 7q-58 -24 -99 -47q3 -5 127 -234t243 -449t119 -223q0 -7 -9 -9q-13 -3 -72 -3q-57 0 -60 7l-456 841 -q-39 -28 -82 -68q24 -43 214 -393.5t190 -354.5q0 -10 -11 -10q-14 0 -82.5 22t-72.5 28l-106 197l-224 413q-44 -53 -78 -106q2 -3 18 -25t23 -34l176 -327q0 -10 -10 -10zM1165 282l49 -91q273 111 450 385q-180 277 -459 389q67 -64 103 -148.5t36 -176.5 -q0 -106 -47 -200.5t-132 -157.5zM848 896q0 -20 14 -34t34 -14q86 0 147 -61t61 -147q0 -20 14 -34t34 -14t34 14t14 34q0 126 -89 215t-215 89q-20 0 -34 -14t-14 -34zM1214 961l-9 4l7 -7z" /> - <glyph glyph-name="uniF2A9" unicode="&#xf2a9;" horiz-adv-x="1280" -d="M1050 430q0 -215 -147 -374q-148 -161 -378 -161q-232 0 -378 161q-147 159 -147 374q0 147 68 270.5t189 196.5t268 73q96 0 182 -31q-32 -62 -39 -126q-66 28 -143 28q-167 0 -280.5 -123t-113.5 -291q0 -170 112.5 -288.5t281.5 -118.5t281 118.5t112 288.5 -q0 89 -32 166q66 13 123 49q41 -98 41 -212zM846 619q0 -192 -79.5 -345t-238.5 -253l-14 -1q-29 0 -62 5q83 32 146.5 102.5t99.5 154.5t58.5 189t30 192.5t7.5 178.5q0 69 -3 103q55 -160 55 -326zM791 947v-2q-73 214 -206 440q88 -59 142.5 -186.5t63.5 -251.5z -M1035 744q-83 0 -160 75q218 120 290 247q19 37 21 56q-42 -94 -139.5 -166.5t-204.5 -97.5q-35 54 -35 113q0 37 17 79t43 68q46 44 157 74q59 16 106 58.5t74 100.5q74 -105 74 -253q0 -109 -24 -170q-32 -77 -88.5 -130.5t-130.5 -53.5z" /> - <glyph glyph-name="uniF2AA" unicode="&#xf2aa;" -d="M1050 495q0 78 -28 147q-41 -25 -85 -34q22 -50 22 -114q0 -117 -77 -198.5t-193 -81.5t-193.5 81.5t-77.5 198.5q0 115 78 199.5t193 84.5q53 0 98 -19q4 43 27 87q-60 21 -125 21q-154 0 -257.5 -108.5t-103.5 -263.5t103.5 -261t257.5 -106t257.5 106.5t103.5 260.5z -M872 850q2 -24 2 -71q0 -63 -5 -123t-20.5 -132.5t-40.5 -130t-68.5 -106t-100.5 -70.5q21 -3 42 -3h10q219 139 219 411q0 116 -38 225zM872 850q-4 80 -44 171.5t-98 130.5q92 -156 142 -302zM1207 955q0 102 -51 174q-41 -86 -124 -109q-69 -19 -109 -53.5t-40 -99.5 -q0 -40 24 -77q74 17 140.5 67t95.5 115q-4 -52 -74.5 -111.5t-138.5 -97.5q52 -52 110 -52q51 0 90 37t60 90q17 42 17 117zM1536 1120v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5 -t84.5 -203.5z" /> - <glyph glyph-name="uniF2AB" unicode="&#xf2ab;" -d="M1279 388q0 22 -22 27q-67 15 -118 59t-80 108q-7 19 -7 25q0 15 19.5 26t43 17t43 20.5t19.5 36.5q0 19 -18.5 31.5t-38.5 12.5q-12 0 -32 -8t-31 -8q-4 0 -12 2q5 95 5 114q0 79 -17 114q-36 78 -103 121.5t-152 43.5q-199 0 -275 -165q-17 -35 -17 -114q0 -19 5 -114 -q-4 -2 -14 -2q-12 0 -32 7.5t-30 7.5q-21 0 -38.5 -12t-17.5 -32q0 -21 19.5 -35.5t43 -20.5t43 -17t19.5 -26q0 -6 -7 -25q-64 -138 -198 -167q-22 -5 -22 -27q0 -46 137 -68q2 -5 6 -26t11.5 -30.5t23.5 -9.5q12 0 37.5 4.5t39.5 4.5q35 0 67 -15t54 -32.5t57.5 -32.5 -t76.5 -15q43 0 79 15t57.5 32.5t53.5 32.5t67 15q14 0 39.5 -4t38.5 -4q16 0 23 10t11 30t6 25q137 22 137 68zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5 -t103 -385.5z" /> - <glyph glyph-name="uniF2AC" unicode="&#xf2ac;" horiz-adv-x="1664" -d="M848 1408q134 1 240.5 -68.5t163.5 -192.5q27 -58 27 -179q0 -47 -9 -191q14 -7 28 -7q18 0 51 13.5t51 13.5q29 0 56 -18t27 -46q0 -32 -31.5 -54t-69 -31.5t-69 -29t-31.5 -47.5q0 -15 12 -43q37 -82 102.5 -150t144.5 -101q28 -12 80 -23q28 -6 28 -35 -q0 -70 -219 -103q-7 -11 -11 -39t-14 -46.5t-33 -18.5q-20 0 -62 6.5t-64 6.5q-37 0 -62 -5q-32 -5 -63 -22.5t-58 -38t-58 -40.5t-76 -33.5t-99 -13.5q-52 0 -96.5 13.5t-75 33.5t-57.5 40.5t-58 38t-62 22.5q-26 5 -63 5q-24 0 -65.5 -7.5t-58.5 -7.5q-25 0 -35 18.5 -t-14 47.5t-11 40q-219 33 -219 103q0 29 28 35q52 11 80 23q78 32 144.5 101t102.5 150q12 28 12 43q0 28 -31.5 47.5t-69.5 29.5t-69.5 31.5t-31.5 52.5q0 27 26 45.5t55 18.5q15 0 48 -13t53 -13q18 0 32 7q-9 142 -9 190q0 122 27 180q64 137 172 198t264 63z" /> - <glyph glyph-name="uniF2AD" unicode="&#xf2ad;" -d="M1280 388q0 22 -22 27q-67 14 -118 58t-80 109q-7 14 -7 25q0 15 19.5 26t42.5 17t42.5 20.5t19.5 36.5q0 19 -18.5 31.5t-38.5 12.5q-11 0 -31 -8t-32 -8q-4 0 -12 2q5 63 5 115q0 78 -17 114q-36 78 -102.5 121.5t-152.5 43.5q-198 0 -275 -165q-18 -38 -18 -115 -q0 -38 6 -114q-10 -2 -15 -2q-11 0 -31.5 8t-30.5 8q-20 0 -37.5 -12.5t-17.5 -32.5q0 -21 19.5 -35.5t42.5 -20.5t42.5 -17t19.5 -26q0 -11 -7 -25q-64 -138 -198 -167q-22 -5 -22 -27q0 -47 138 -69q2 -5 6 -26t11 -30.5t23 -9.5q13 0 38.5 5t38.5 5q35 0 67.5 -15 -t54.5 -32.5t57.5 -32.5t76.5 -15q43 0 79 15t57.5 32.5t54 32.5t67.5 15q13 0 39 -4.5t39 -4.5q15 0 22.5 9.5t11.5 31t5 24.5q138 22 138 69zM1536 1120v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960 -q119 0 203.5 -84.5t84.5 -203.5z" /> - <glyph glyph-name="uniF2AE" unicode="&#xf2ae;" horiz-adv-x="2304" -d="M2304 1536q-69 -46 -125 -92t-89 -81t-59.5 -71.5t-37.5 -57.5t-22 -44.5t-14 -29.5q-10 -18 -35.5 -136.5t-48.5 -164.5q-15 -29 -50 -60.5t-67.5 -50.5t-72.5 -41t-48 -28q-47 -31 -151 -231q-341 14 -630 -158q-92 -53 -303 -179q47 16 86 31t55 22l15 7 -q71 27 163 64.5t133.5 53.5t108 34.5t142.5 31.5q186 31 465 -7q1 0 10 -3q11 -6 14 -17t-3 -22l-194 -345q-15 -29 -47 -22q-128 24 -354 24q-146 0 -402 -44.5t-392 -46.5q-82 -1 -149 13t-107 37t-61 40t-33 34l-1 1v2q0 6 6 6q138 0 371 55q192 366 374.5 524t383.5 158 -q5 0 14.5 -0.5t38 -5t55 -12t61.5 -24.5t63 -39.5t54 -59t40 -82.5l102 177q2 4 21 42.5t44.5 86.5t61 109.5t84 133.5t100.5 137q66 82 128 141.5t121.5 96.5t92.5 53.5t88 39.5z" /> - <glyph glyph-name="uniF2B0" unicode="&#xf2b0;" -d="M1322 640q0 -45 -5 -76l-236 14l224 -78q-19 -73 -58 -141l-214 103l177 -158q-44 -61 -107 -108l-157 178l103 -215q-61 -37 -140 -59l-79 228l14 -240q-38 -6 -76 -6t-76 6l14 238l-78 -226q-74 19 -140 59l103 215l-157 -178q-59 43 -108 108l178 158l-214 -104 -q-39 69 -58 141l224 79l-237 -14q-5 42 -5 76q0 35 5 77l238 -14l-225 79q19 73 58 140l214 -104l-177 159q46 61 107 108l158 -178l-103 215q67 39 140 58l77 -224l-13 236q36 6 75 6q38 0 76 -6l-14 -237l78 225q74 -19 140 -59l-103 -214l158 178q61 -47 107 -108 -l-177 -159l213 104q37 -62 58 -141l-224 -78l237 14q5 -31 5 -77zM1352 640q0 160 -78.5 295.5t-213 214t-292.5 78.5q-119 0 -227 -46.5t-186.5 -125t-124.5 -187.5t-46 -229q0 -119 46 -228t124.5 -187.5t186.5 -125t227 -46.5q158 0 292.5 78.5t213 214t78.5 294.5z -M1425 1023v-766l-657 -383l-657 383v766l657 383zM768 -183l708 412v823l-708 411l-708 -411v-823zM1536 1088v-896l-768 -448l-768 448v896l768 448z" /> - <glyph glyph-name="uniF2B1" unicode="&#xf2b1;" horiz-adv-x="1664" -d="M339 1318h691l-26 -72h-665q-110 0 -188.5 -79t-78.5 -189v-771q0 -95 60.5 -169.5t153.5 -93.5q23 -5 98 -5v-72h-45q-140 0 -239.5 100t-99.5 240v771q0 140 99.5 240t239.5 100zM1190 1536h247l-482 -1294q-23 -61 -40.5 -103.5t-45 -98t-54 -93.5t-64.5 -78.5 -t-79.5 -65t-95.5 -41t-116 -18.5v195q163 26 220 182q20 52 20 105q0 54 -20 106l-285 733h228l187 -585zM1664 978v-1111h-795q37 55 45 73h678v1038q0 85 -49.5 155t-129.5 99l25 67q101 -34 163.5 -123.5t62.5 -197.5z" /> - <glyph glyph-name="uniF2B2" unicode="&#xf2b2;" horiz-adv-x="1792" -d="M852 1227q0 -29 -17 -52.5t-45 -23.5t-45 23.5t-17 52.5t17 52.5t45 23.5t45 -23.5t17 -52.5zM688 -149v114q0 30 -20.5 51.5t-50.5 21.5t-50 -21.5t-20 -51.5v-114q0 -30 20.5 -52t49.5 -22q30 0 50.5 22t20.5 52zM860 -149v114q0 30 -20 51.5t-50 21.5t-50.5 -21.5 -t-20.5 -51.5v-114q0 -30 20.5 -52t50.5 -22q29 0 49.5 22t20.5 52zM1034 -149v114q0 30 -20.5 51.5t-50.5 21.5t-50.5 -21.5t-20.5 -51.5v-114q0 -30 20.5 -52t50.5 -22t50.5 22t20.5 52zM1208 -149v114q0 30 -20.5 51.5t-50.5 21.5t-50.5 -21.5t-20.5 -51.5v-114 -q0 -30 20.5 -52t50.5 -22t50.5 22t20.5 52zM1476 535q-84 -160 -232 -259.5t-323 -99.5q-123 0 -229.5 51.5t-178.5 137t-113 197.5t-41 232q0 88 21 174q-104 -175 -104 -390q0 -162 65 -312t185 -251q30 57 91 57q56 0 86 -50q32 50 87 50q56 0 86 -50q32 50 87 50t87 -50 -q30 50 86 50q28 0 52.5 -15.5t37.5 -40.5q112 94 177 231.5t73 287.5zM1326 564q0 75 -72 75q-17 0 -47 -6q-95 -19 -149 -19q-226 0 -226 243q0 86 30 204q-83 -127 -83 -275q0 -150 89 -260.5t235 -110.5q111 0 210 70q13 48 13 79zM884 1223q0 50 -32 89.5t-81 39.5 -t-81 -39.5t-32 -89.5q0 -51 31.5 -90.5t81.5 -39.5t81.5 39.5t31.5 90.5zM1513 884q0 96 -37.5 179t-113 137t-173.5 54q-77 0 -149 -35t-127 -94q-48 -159 -48 -268q0 -104 45.5 -157t147.5 -53q53 0 142 19q36 6 53 6q51 0 77.5 -28t26.5 -80q0 -26 -4 -46 -q75 68 117.5 165.5t42.5 200.5zM1792 667q0 -111 -33.5 -249.5t-93.5 -204.5q-58 -64 -195 -142.5t-228 -104.5l-4 -1v-114q0 -43 -29.5 -75t-72.5 -32q-56 0 -86 50q-32 -50 -87 -50t-87 50q-30 -50 -86 -50q-55 0 -87 50q-30 -50 -86 -50q-47 0 -75 33.5t-28 81.5 -q-90 -68 -198 -68q-118 0 -211 80q54 1 106 20q-113 31 -182 127q32 -7 71 -7q89 0 164 46q-192 192 -240 306q-24 56 -24 160q0 57 9 125.5t31.5 146.5t55 141t86.5 105t120 42q59 0 81 -52q19 29 42 54q2 3 12 13t13 16q10 15 23 38t25 42t28 39q87 111 211.5 177 -t260.5 66q35 0 62 -4q59 64 146 64q83 0 140 -57q5 -5 5 -12q0 -5 -6 -13.5t-12.5 -16t-16 -17l-10.5 -10.5q17 -6 36 -18t19 -24q0 -6 -16 -25q157 -138 197 -378q25 30 60 30q45 0 100 -49q90 -80 90 -279z" /> - <glyph glyph-name="uniF2B3" unicode="&#xf2b3;" -d="M917 631q0 33 -6 64h-362v-132h217q-12 -76 -74.5 -120.5t-142.5 -44.5q-99 0 -169 71.5t-70 170.5t70 170.5t169 71.5q93 0 153 -59l104 101q-108 100 -257 100q-160 0 -272 -112.5t-112 -271.5t112 -271.5t272 -112.5q165 0 266.5 105t101.5 270zM1262 585h109v110 -h-109v110h-110v-110h-110v-110h110v-110h110v110zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" /> - <glyph glyph-name="uniF2B4" unicode="&#xf2b4;" -d="M1536 1024v-839q0 -48 -49 -62q-174 -52 -338 -52q-73 0 -215.5 29.5t-227.5 29.5q-164 0 -370 -48v-338h-160v1368q-63 25 -101 81t-38 124q0 91 64 155t155 64t155 -64t64 -155q0 -68 -38 -124t-101 -81v-68q190 44 343 44q99 0 198 -15q14 -2 111.5 -22.5t149.5 -20.5 -q77 0 165 18q11 2 80 21t89 19q26 0 45 -19t19 -45z" /> - <glyph glyph-name="uniF2B5" unicode="&#xf2b5;" horiz-adv-x="2304" -d="M192 384q40 0 56 32t0 64t-56 32t-56 -32t0 -64t56 -32zM1665 442q-10 13 -38.5 50t-41.5 54t-38 49t-42.5 53t-40.5 47t-45 49l-125 -140q-83 -94 -208.5 -92t-205.5 98q-57 69 -56.5 158t58.5 157l177 206q-22 11 -51 16.5t-47.5 6t-56.5 -0.5t-49 -1q-92 0 -158 -66 -l-158 -158h-155v-544q5 0 21 0.5t22 0t19.5 -2t20.5 -4.5t17.5 -8.5t18.5 -13.5l297 -292q115 -111 227 -111q78 0 125 47q57 -20 112.5 8t72.5 85q74 -6 127 44q20 18 36 45.5t14 50.5q10 -10 43 -10q43 0 77 21t49.5 53t12 71.5t-30.5 73.5zM1824 384h96v512h-93l-157 180 -q-66 76 -169 76h-167q-89 0 -146 -67l-209 -243q-28 -33 -28 -75t27 -75q43 -51 110 -52t111 49l193 218q25 23 53.5 21.5t47 -27t8.5 -56.5q16 -19 56 -63t60 -68q29 -36 82.5 -105.5t64.5 -84.5q52 -66 60 -140zM2112 384q40 0 56 32t0 64t-56 32t-56 -32t0 -64t56 -32z -M2304 960v-640q0 -26 -19 -45t-45 -19h-434q-27 -65 -82 -106.5t-125 -51.5q-33 -48 -80.5 -81.5t-102.5 -45.5q-42 -53 -104.5 -81.5t-128.5 -24.5q-60 -34 -126 -39.5t-127.5 14t-117 53.5t-103.5 81l-287 282h-358q-26 0 -45 19t-19 45v672q0 26 19 45t45 19h421 -q14 14 47 48t47.5 48t44 40t50.5 37.5t51 25.5t62 19.5t68 5.5h117q99 0 181 -56q82 56 181 56h167q35 0 67 -6t56.5 -14.5t51.5 -26.5t44.5 -31t43 -39.5t39 -42t41 -48t41.5 -48.5h355q26 0 45 -19t19 -45z" /> - <glyph glyph-name="uniF2B6" unicode="&#xf2b6;" horiz-adv-x="1792" -d="M1792 882v-978q0 -66 -47 -113t-113 -47h-1472q-66 0 -113 47t-47 113v978q0 15 11 24q8 7 39 34.5t41.5 36t45.5 37.5t70 55.5t96 73t143.5 107t192.5 140.5q5 4 52.5 40t71.5 52.5t64 35t69 18.5t69 -18.5t65 -35.5t71 -52t52 -40q110 -80 192.5 -140.5t143.5 -107 -t96 -73t70 -55.5t45.5 -37.5t41.5 -36t39 -34.5q11 -9 11 -24zM1228 297q263 191 345 252q11 8 12.5 20.5t-6.5 23.5l-38 52q-8 11 -21 12.5t-24 -6.5q-231 -169 -343 -250q-5 -3 -52 -39t-71.5 -52.5t-64.5 -35t-69 -18.5t-69 18.5t-64.5 35t-71.5 52.5t-52 39 -q-186 134 -343 250q-11 8 -24 6.5t-21 -12.5l-38 -52q-8 -11 -6.5 -23.5t12.5 -20.5q82 -61 345 -252q10 -8 50 -38t65 -47t64 -39.5t77.5 -33.5t75.5 -11t75.5 11t79 34.5t64.5 39.5t65 47.5t48 36.5z" /> - <glyph glyph-name="uniF2B7" unicode="&#xf2b7;" horiz-adv-x="1792" -d="M1474 623l39 -51q8 -11 6.5 -23.5t-11.5 -20.5q-43 -34 -126.5 -98.5t-146.5 -113t-67 -51.5q-39 -32 -60 -48t-60.5 -41t-76.5 -36.5t-74 -11.5h-1h-1q-37 0 -74 11.5t-76 36.5t-61 41.5t-60 47.5q-5 4 -65 50.5t-143.5 111t-122.5 94.5q-11 8 -12.5 20.5t6.5 23.5 -l37 52q8 11 21.5 13t24.5 -7q94 -73 306 -236q5 -4 43.5 -35t60.5 -46.5t56.5 -32.5t58.5 -17h1h1q24 0 58.5 17t56.5 32.5t60.5 46.5t43.5 35q258 198 313 242q11 8 24 6.5t21 -12.5zM1664 -96v928q-90 83 -159 139q-91 74 -389 304q-3 2 -43 35t-61 48t-56 32.5t-59 17.5 -h-1h-1q-24 0 -59 -17.5t-56 -32.5t-61 -48t-43 -35q-215 -166 -315.5 -245.5t-129.5 -104t-82 -74.5q-14 -12 -21 -19v-928q0 -13 9.5 -22.5t22.5 -9.5h1472q13 0 22.5 9.5t9.5 22.5zM1792 832v-928q0 -66 -47 -113t-113 -47h-1472q-66 0 -113 47t-47 113v928q0 56 41 94 -q123 114 350 290.5t233 181.5q36 30 59 47.5t61.5 42t76 36.5t74.5 12h1h1q37 0 74.5 -12t76 -36.5t61.5 -42t59 -47.5q43 -36 156 -122t226 -177t201 -173q41 -38 41 -94z" /> - <glyph glyph-name="uniF2B8" unicode="&#xf2b8;" -d="M330 1l202 -214l-34 236l-216 213zM556 -225l274 218l-11 245l-300 -215zM245 413l227 -213l-48 327l-245 204zM495 189l317 214l-14 324l-352 -200zM843 178l95 -80l-2 239l-103 79q0 -1 1 -8.5t0 -12t-5 -7.5l-78 -52l85 -70q7 -6 7 -88zM138 930l256 -200l-68 465 -l-279 173zM1173 267l15 234l-230 -164l2 -240zM417 722l373 194l-19 441l-423 -163zM1270 357l20 233l-226 142l-2 -105l144 -95q6 -4 4 -9l-7 -119zM1461 496l30 222l-179 -128l-20 -228zM1273 329l-71 49l-8 -117q0 -5 -4 -8l-234 -187q-7 -5 -14 0l-98 83l7 -161 -q0 -5 -4 -8l-293 -234q-4 -2 -6 -2q-8 2 -8 3l-228 242q-4 4 -59 277q-2 7 5 11l61 37q-94 86 -95 92l-72 351q-2 7 6 12l94 45q-133 100 -135 108l-96 466q-2 10 7 13l433 135q5 0 8 -1l317 -153q6 -4 6 -9l20 -463q0 -7 -6 -10l-118 -61l126 -85q5 -2 5 -8l5 -123l121 74 -q5 4 11 0l84 -56l3 110q0 6 5 9l206 126q6 3 11 0l245 -135q4 -4 5 -7t-6.5 -60t-17.5 -124.5t-10 -70.5q0 -5 -4 -7l-191 -153q-6 -5 -13 0z" /> - <glyph glyph-name="uniF2B9" unicode="&#xf2b9;" horiz-adv-x="1664" -d="M1201 298q0 57 -5.5 107t-21 100.5t-39.5 86t-64 58t-91 22.5q-6 -4 -33.5 -20.5t-42.5 -24.5t-40.5 -20t-49 -17t-46.5 -5t-46.5 5t-49 17t-40.5 20t-42.5 24.5t-33.5 20.5q-51 0 -91 -22.5t-64 -58t-39.5 -86t-21 -100.5t-5.5 -107q0 -73 42 -121.5t103 -48.5h576 -q61 0 103 48.5t42 121.5zM1028 892q0 108 -76.5 184t-183.5 76t-183.5 -76t-76.5 -184q0 -107 76.5 -183t183.5 -76t183.5 76t76.5 183zM1664 352v-192q0 -14 -9 -23t-23 -9h-96v-224q0 -66 -47 -113t-113 -47h-1216q-66 0 -113 47t-47 113v1472q0 66 47 113t113 47h1216 -q66 0 113 -47t47 -113v-224h96q14 0 23 -9t9 -23v-192q0 -14 -9 -23t-23 -9h-96v-128h96q14 0 23 -9t9 -23v-192q0 -14 -9 -23t-23 -9h-96v-128h96q14 0 23 -9t9 -23z" /> - <glyph glyph-name="uniF2BA" unicode="&#xf2ba;" horiz-adv-x="1664" -d="M1028 892q0 -107 -76.5 -183t-183.5 -76t-183.5 76t-76.5 183q0 108 76.5 184t183.5 76t183.5 -76t76.5 -184zM980 672q46 0 82.5 -17t60 -47.5t39.5 -67t24 -81t11.5 -82.5t3.5 -79q0 -67 -39.5 -118.5t-105.5 -51.5h-576q-66 0 -105.5 51.5t-39.5 118.5q0 48 4.5 93.5 -t18.5 98.5t36.5 91.5t63 64.5t93.5 26h5q7 -4 32 -19.5t35.5 -21t33 -17t37 -16t35 -9t39.5 -4.5t39.5 4.5t35 9t37 16t33 17t35.5 21t32 19.5zM1664 928q0 -13 -9.5 -22.5t-22.5 -9.5h-96v-128h96q13 0 22.5 -9.5t9.5 -22.5v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-96v-128h96 -q13 0 22.5 -9.5t9.5 -22.5v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-96v-224q0 -66 -47 -113t-113 -47h-1216q-66 0 -113 47t-47 113v1472q0 66 47 113t113 47h1216q66 0 113 -47t47 -113v-224h96q13 0 22.5 -9.5t9.5 -22.5v-192zM1408 -96v1472q0 13 -9.5 22.5t-22.5 9.5h-1216 -q-13 0 -22.5 -9.5t-9.5 -22.5v-1472q0 -13 9.5 -22.5t22.5 -9.5h1216q13 0 22.5 9.5t9.5 22.5z" /> - <glyph glyph-name="uniF2BB" unicode="&#xf2bb;" horiz-adv-x="2048" -d="M1024 405q0 64 -9 117.5t-29.5 103t-60.5 78t-97 28.5q-6 -4 -30 -18t-37.5 -21.5t-35.5 -17.5t-43 -14.5t-42 -4.5t-42 4.5t-43 14.5t-35.5 17.5t-37.5 21.5t-30 18q-57 0 -97 -28.5t-60.5 -78t-29.5 -103t-9 -117.5t37 -106.5t91 -42.5h512q54 0 91 42.5t37 106.5z -M867 925q0 94 -66.5 160.5t-160.5 66.5t-160.5 -66.5t-66.5 -160.5t66.5 -160.5t160.5 -66.5t160.5 66.5t66.5 160.5zM1792 416v64q0 14 -9 23t-23 9h-576q-14 0 -23 -9t-9 -23v-64q0 -14 9 -23t23 -9h576q14 0 23 9t9 23zM1792 676v56q0 15 -10.5 25.5t-25.5 10.5h-568 -q-15 0 -25.5 -10.5t-10.5 -25.5v-56q0 -15 10.5 -25.5t25.5 -10.5h568q15 0 25.5 10.5t10.5 25.5zM1792 928v64q0 14 -9 23t-23 9h-576q-14 0 -23 -9t-9 -23v-64q0 -14 9 -23t23 -9h576q14 0 23 9t9 23zM2048 1248v-1216q0 -66 -47 -113t-113 -47h-352v96q0 14 -9 23t-23 9 -h-64q-14 0 -23 -9t-9 -23v-96h-768v96q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23v-96h-352q-66 0 -113 47t-47 113v1216q0 66 47 113t113 47h1728q66 0 113 -47t47 -113z" /> - <glyph glyph-name="uniF2BC" unicode="&#xf2bc;" horiz-adv-x="2048" -d="M1024 405q0 -64 -37 -106.5t-91 -42.5h-512q-54 0 -91 42.5t-37 106.5t9 117.5t29.5 103t60.5 78t97 28.5q6 -4 30 -18t37.5 -21.5t35.5 -17.5t43 -14.5t42 -4.5t42 4.5t43 14.5t35.5 17.5t37.5 21.5t30 18q57 0 97 -28.5t60.5 -78t29.5 -103t9 -117.5zM867 925 -q0 -94 -66.5 -160.5t-160.5 -66.5t-160.5 66.5t-66.5 160.5t66.5 160.5t160.5 66.5t160.5 -66.5t66.5 -160.5zM1792 480v-64q0 -14 -9 -23t-23 -9h-576q-14 0 -23 9t-9 23v64q0 14 9 23t23 9h576q14 0 23 -9t9 -23zM1792 732v-56q0 -15 -10.5 -25.5t-25.5 -10.5h-568 -q-15 0 -25.5 10.5t-10.5 25.5v56q0 15 10.5 25.5t25.5 10.5h568q15 0 25.5 -10.5t10.5 -25.5zM1792 992v-64q0 -14 -9 -23t-23 -9h-576q-14 0 -23 9t-9 23v64q0 14 9 23t23 9h576q14 0 23 -9t9 -23zM1920 32v1216q0 13 -9.5 22.5t-22.5 9.5h-1728q-13 0 -22.5 -9.5 -t-9.5 -22.5v-1216q0 -13 9.5 -22.5t22.5 -9.5h352v96q0 14 9 23t23 9h64q14 0 23 -9t9 -23v-96h768v96q0 14 9 23t23 9h64q14 0 23 -9t9 -23v-96h352q13 0 22.5 9.5t9.5 22.5zM2048 1248v-1216q0 -66 -47 -113t-113 -47h-1728q-66 0 -113 47t-47 113v1216q0 66 47 113 -t113 47h1728q66 0 113 -47t47 -113z" /> - <glyph glyph-name="uniF2BD" unicode="&#xf2bd;" horiz-adv-x="1792" -d="M1523 197q-22 155 -87.5 257.5t-184.5 118.5q-67 -74 -159.5 -115.5t-195.5 -41.5t-195.5 41.5t-159.5 115.5q-119 -16 -184.5 -118.5t-87.5 -257.5q106 -150 271 -237.5t356 -87.5t356 87.5t271 237.5zM1280 896q0 159 -112.5 271.5t-271.5 112.5t-271.5 -112.5 -t-112.5 -271.5t112.5 -271.5t271.5 -112.5t271.5 112.5t112.5 271.5zM1792 640q0 -182 -71 -347.5t-190.5 -286t-285.5 -191.5t-349 -71q-182 0 -348 71t-286 191t-191 286t-71 348t71 348t191 286t286 191t348 71t348 -71t286 -191t191 -286t71 -348z" /> - <glyph glyph-name="uniF2BE" unicode="&#xf2be;" horiz-adv-x="1792" -d="M896 1536q182 0 348 -71t286 -191t191 -286t71 -348q0 -181 -70.5 -347t-190.5 -286t-286 -191.5t-349 -71.5t-349 71t-285.5 191.5t-190.5 286t-71 347.5t71 348t191 286t286 191t348 71zM1515 185q149 205 149 455q0 156 -61 298t-164 245t-245 164t-298 61t-298 -61 -t-245 -164t-164 -245t-61 -298q0 -250 149 -455q66 327 306 327q131 -128 313 -128t313 128q240 0 306 -327zM1280 832q0 159 -112.5 271.5t-271.5 112.5t-271.5 -112.5t-112.5 -271.5t112.5 -271.5t271.5 -112.5t271.5 112.5t112.5 271.5z" /> - <glyph glyph-name="uniF2C0" unicode="&#xf2c0;" -d="M1201 752q47 -14 89.5 -38t89 -73t79.5 -115.5t55 -172t22 -236.5q0 -154 -100 -263.5t-241 -109.5h-854q-141 0 -241 109.5t-100 263.5q0 131 22 236.5t55 172t79.5 115.5t89 73t89.5 38q-79 125 -79 272q0 104 40.5 198.5t109.5 163.5t163.5 109.5t198.5 40.5 -t198.5 -40.5t163.5 -109.5t109.5 -163.5t40.5 -198.5q0 -147 -79 -272zM768 1408q-159 0 -271.5 -112.5t-112.5 -271.5t112.5 -271.5t271.5 -112.5t271.5 112.5t112.5 271.5t-112.5 271.5t-271.5 112.5zM1195 -128q88 0 150.5 71.5t62.5 173.5q0 239 -78.5 377t-225.5 145 -q-145 -127 -336 -127t-336 127q-147 -7 -225.5 -145t-78.5 -377q0 -102 62.5 -173.5t150.5 -71.5h854z" /> - <glyph glyph-name="uniF2C1" unicode="&#xf2c1;" horiz-adv-x="1280" -d="M1024 278q0 -64 -37 -107t-91 -43h-512q-54 0 -91 43t-37 107t9 118t29.5 104t61 78.5t96.5 28.5q80 -75 188 -75t188 75q56 0 96.5 -28.5t61 -78.5t29.5 -104t9 -118zM870 797q0 -94 -67.5 -160.5t-162.5 -66.5t-162.5 66.5t-67.5 160.5t67.5 160.5t162.5 66.5 -t162.5 -66.5t67.5 -160.5zM1152 -96v1376h-1024v-1376q0 -13 9.5 -22.5t22.5 -9.5h960q13 0 22.5 9.5t9.5 22.5zM1280 1376v-1472q0 -66 -47 -113t-113 -47h-960q-66 0 -113 47t-47 113v1472q0 66 47 113t113 47h352v-96q0 -14 9 -23t23 -9h192q14 0 23 9t9 23v96h352 -q66 0 113 -47t47 -113z" /> - <glyph glyph-name="uniF2C2" unicode="&#xf2c2;" horiz-adv-x="2048" -d="M896 324q0 54 -7.5 100.5t-24.5 90t-51 68.5t-81 25q-64 -64 -156 -64t-156 64q-47 0 -81 -25t-51 -68.5t-24.5 -90t-7.5 -100.5q0 -55 31.5 -93.5t75.5 -38.5h426q44 0 75.5 38.5t31.5 93.5zM768 768q0 80 -56 136t-136 56t-136 -56t-56 -136t56 -136t136 -56t136 56 -t56 136zM1792 288v64q0 14 -9 23t-23 9h-704q-14 0 -23 -9t-9 -23v-64q0 -14 9 -23t23 -9h704q14 0 23 9t9 23zM1408 544v64q0 14 -9 23t-23 9h-320q-14 0 -23 -9t-9 -23v-64q0 -14 9 -23t23 -9h320q14 0 23 9t9 23zM1792 544v64q0 14 -9 23t-23 9h-192q-14 0 -23 -9t-9 -23 -v-64q0 -14 9 -23t23 -9h192q14 0 23 9t9 23zM1792 800v64q0 14 -9 23t-23 9h-704q-14 0 -23 -9t-9 -23v-64q0 -14 9 -23t23 -9h704q14 0 23 9t9 23zM128 1152h1792v96q0 14 -9 23t-23 9h-1728q-14 0 -23 -9t-9 -23v-96zM2048 1248v-1216q0 -66 -47 -113t-113 -47h-1728 -q-66 0 -113 47t-47 113v1216q0 66 47 113t113 47h1728q66 0 113 -47t47 -113z" /> - <glyph glyph-name="uniF2C3" unicode="&#xf2c3;" horiz-adv-x="2048" -d="M896 324q0 -55 -31.5 -93.5t-75.5 -38.5h-426q-44 0 -75.5 38.5t-31.5 93.5q0 54 7.5 100.5t24.5 90t51 68.5t81 25q64 -64 156 -64t156 64q47 0 81 -25t51 -68.5t24.5 -90t7.5 -100.5zM768 768q0 -80 -56 -136t-136 -56t-136 56t-56 136t56 136t136 56t136 -56t56 -136z -M1792 352v-64q0 -14 -9 -23t-23 -9h-704q-14 0 -23 9t-9 23v64q0 14 9 23t23 9h704q14 0 23 -9t9 -23zM1408 608v-64q0 -14 -9 -23t-23 -9h-320q-14 0 -23 9t-9 23v64q0 14 9 23t23 9h320q14 0 23 -9t9 -23zM1792 608v-64q0 -14 -9 -23t-23 -9h-192q-14 0 -23 9t-9 23v64 -q0 14 9 23t23 9h192q14 0 23 -9t9 -23zM1792 864v-64q0 -14 -9 -23t-23 -9h-704q-14 0 -23 9t-9 23v64q0 14 9 23t23 9h704q14 0 23 -9t9 -23zM1920 32v1120h-1792v-1120q0 -13 9.5 -22.5t22.5 -9.5h1728q13 0 22.5 9.5t9.5 22.5zM2048 1248v-1216q0 -66 -47 -113t-113 -47 -h-1728q-66 0 -113 47t-47 113v1216q0 66 47 113t113 47h1728q66 0 113 -47t47 -113z" /> - <glyph glyph-name="uniF2C4" unicode="&#xf2c4;" horiz-adv-x="1792" -d="M1255 749q0 318 -105 474.5t-330 156.5q-222 0 -326 -157t-104 -474q0 -316 104 -471.5t326 -155.5q74 0 131 17q-22 43 -39 73t-44 65t-53.5 56.5t-63 36t-77.5 14.5q-46 0 -79 -16l-49 97q105 91 276 91q132 0 215.5 -54t150.5 -155q67 149 67 402zM1645 117h117 -q3 -27 -2 -67t-26.5 -95t-58 -100.5t-107 -78t-162.5 -32.5q-71 0 -130.5 19t-105.5 56t-79 78t-66 96q-97 -27 -205 -27q-150 0 -292.5 58t-253 158.5t-178 249t-67.5 317.5q0 170 67.5 319.5t178.5 250.5t253.5 159t291.5 58q121 0 238.5 -36t217 -106t176 -164.5 -t119.5 -219t43 -261.5q0 -190 -80.5 -347.5t-218.5 -264.5q47 -70 93.5 -106.5t104.5 -36.5q61 0 94 37.5t38 85.5z" /> - <glyph glyph-name="uniF2C5" unicode="&#xf2c5;" horiz-adv-x="2304" -d="M453 -101q0 -21 -16 -37.5t-37 -16.5q-1 0 -13 3q-63 15 -162 140q-225 284 -225 676q0 341 213 614q39 51 95 103.5t94 52.5q19 0 35 -13.5t16 -32.5q0 -27 -63 -90q-98 -102 -147 -184q-119 -199 -119 -449q0 -281 123 -491q50 -85 136 -173q2 -3 14.5 -16t19.5 -21 -t17 -20.5t14.5 -23.5t4.5 -21zM1796 33q0 -29 -17.5 -48.5t-46.5 -19.5h-1081q-26 0 -45 19t-19 45q0 29 17.5 48.5t46.5 19.5h1081q26 0 45 -19t19 -45zM1581 644q0 -134 -67 -233q-25 -38 -69.5 -78.5t-83.5 -60.5q-16 -10 -27 -10q-7 0 -15 6t-8 12q0 9 19 30t42 46 -t42 67.5t19 88.5q0 76 -35 130q-29 42 -46 42q-3 0 -3 -5q0 -12 7.5 -35.5t7.5 -36.5q0 -22 -21.5 -35t-44.5 -13q-66 0 -66 76q0 15 1.5 44t1.5 44q0 25 -10 46q-13 25 -42 53.5t-51 28.5q-5 0 -7 -0.5t-3.5 -2.5t-1.5 -6q0 -2 16 -26t16 -54q0 -37 -19 -68t-46 -54 -t-53.5 -46t-45.5 -54t-19 -68q0 -98 42 -160q29 -43 79 -63q16 -5 17 -10q1 -2 1 -5q0 -16 -18 -16q-6 0 -33 11q-119 43 -195 139.5t-76 218.5q0 55 24.5 115.5t60 115t70.5 108.5t59.5 113.5t24.5 111.5q0 53 -25 94q-29 48 -56 64q-19 9 -19 21q0 20 41 20q50 0 110 -29 -q41 -19 71 -44.5t49.5 -51t33.5 -62.5t22 -69t16 -80q0 -1 3 -17.5t4.5 -25t5.5 -25t9 -27t11 -21.5t14.5 -16.5t18.5 -5.5q23 0 37 14t14 37q0 25 -20 67t-20 52t10 10q27 0 93 -70q72 -76 102.5 -156t30.5 -186zM2304 615q0 -274 -138 -503q-19 -32 -48 -72t-68 -86.5 -t-81 -77t-74 -30.5q-16 0 -31 15.5t-15 31.5q0 15 29 50.5t68.5 77t48.5 52.5q183 230 183 531q0 131 -20.5 235t-72.5 211q-58 119 -163 228q-2 3 -13 13.5t-16.5 16.5t-15 17.5t-15 20t-9.5 18.5t-4 19q0 19 16 35.5t35 16.5q70 0 196 -169q98 -131 146 -273t60 -314 -q2 -42 2 -64z" /> - <glyph glyph-name="uniF2C6" unicode="&#xf2c6;" horiz-adv-x="1792" -d="M1189 229l147 693q9 44 -10.5 63t-51.5 7l-864 -333q-29 -11 -39.5 -25t-2.5 -26.5t32 -19.5l221 -69l513 323q21 14 32 6q7 -5 -4 -15l-415 -375v0v0l-16 -228q23 0 45 22l108 104l224 -165q64 -36 81 38zM1792 640q0 -182 -71 -348t-191 -286t-286 -191t-348 -71 -t-348 71t-286 191t-191 286t-71 348t71 348t191 286t286 191t348 71t348 -71t286 -191t191 -286t71 -348z" /> - <glyph glyph-name="uniF2C7" unicode="&#xf2c7;" horiz-adv-x="1024" -d="M640 192q0 -80 -56 -136t-136 -56t-136 56t-56 136q0 60 35 110t93 71v907h128v-907q58 -21 93 -71t35 -110zM768 192q0 77 -34 144t-94 112v768q0 80 -56 136t-136 56t-136 -56t-56 -136v-768q-60 -45 -94 -112t-34 -144q0 -133 93.5 -226.5t226.5 -93.5t226.5 93.5 -t93.5 226.5zM896 192q0 -185 -131.5 -316.5t-316.5 -131.5t-316.5 131.5t-131.5 316.5q0 182 128 313v711q0 133 93.5 226.5t226.5 93.5t226.5 -93.5t93.5 -226.5v-711q128 -131 128 -313zM1024 768v-128h-192v128h192zM1024 1024v-128h-192v128h192zM1024 1280v-128h-192 -v128h192z" /> - <glyph glyph-name="uniF2C8" unicode="&#xf2c8;" horiz-adv-x="1024" -d="M640 192q0 -80 -56 -136t-136 -56t-136 56t-56 136q0 60 35 110t93 71v651h128v-651q58 -21 93 -71t35 -110zM768 192q0 77 -34 144t-94 112v768q0 80 -56 136t-136 56t-136 -56t-56 -136v-768q-60 -45 -94 -112t-34 -144q0 -133 93.5 -226.5t226.5 -93.5t226.5 93.5 -t93.5 226.5zM896 192q0 -185 -131.5 -316.5t-316.5 -131.5t-316.5 131.5t-131.5 316.5q0 182 128 313v711q0 133 93.5 226.5t226.5 93.5t226.5 -93.5t93.5 -226.5v-711q128 -131 128 -313zM1024 768v-128h-192v128h192zM1024 1024v-128h-192v128h192zM1024 1280v-128h-192 -v128h192z" /> - <glyph glyph-name="uniF2C9" unicode="&#xf2c9;" horiz-adv-x="1024" -d="M640 192q0 -80 -56 -136t-136 -56t-136 56t-56 136q0 60 35 110t93 71v395h128v-395q58 -21 93 -71t35 -110zM768 192q0 77 -34 144t-94 112v768q0 80 -56 136t-136 56t-136 -56t-56 -136v-768q-60 -45 -94 -112t-34 -144q0 -133 93.5 -226.5t226.5 -93.5t226.5 93.5 -t93.5 226.5zM896 192q0 -185 -131.5 -316.5t-316.5 -131.5t-316.5 131.5t-131.5 316.5q0 182 128 313v711q0 133 93.5 226.5t226.5 93.5t226.5 -93.5t93.5 -226.5v-711q128 -131 128 -313zM1024 768v-128h-192v128h192zM1024 1024v-128h-192v128h192zM1024 1280v-128h-192 -v128h192z" /> - <glyph glyph-name="uniF2CA" unicode="&#xf2ca;" horiz-adv-x="1024" -d="M640 192q0 -80 -56 -136t-136 -56t-136 56t-56 136q0 60 35 110t93 71v139h128v-139q58 -21 93 -71t35 -110zM768 192q0 77 -34 144t-94 112v768q0 80 -56 136t-136 56t-136 -56t-56 -136v-768q-60 -45 -94 -112t-34 -144q0 -133 93.5 -226.5t226.5 -93.5t226.5 93.5 -t93.5 226.5zM896 192q0 -185 -131.5 -316.5t-316.5 -131.5t-316.5 131.5t-131.5 316.5q0 182 128 313v711q0 133 93.5 226.5t226.5 93.5t226.5 -93.5t93.5 -226.5v-711q128 -131 128 -313zM1024 768v-128h-192v128h192zM1024 1024v-128h-192v128h192zM1024 1280v-128h-192 -v128h192z" /> - <glyph glyph-name="uniF2CB" unicode="&#xf2cb;" horiz-adv-x="1024" -d="M640 192q0 -80 -56 -136t-136 -56t-136 56t-56 136q0 79 56 135.5t136 56.5t136 -56.5t56 -135.5zM768 192q0 77 -34 144t-94 112v768q0 80 -56 136t-136 56t-136 -56t-56 -136v-768q-60 -45 -94 -112t-34 -144q0 -133 93.5 -226.5t226.5 -93.5t226.5 93.5t93.5 226.5z -M896 192q0 -185 -131.5 -316.5t-316.5 -131.5t-316.5 131.5t-131.5 316.5q0 182 128 313v711q0 133 93.5 226.5t226.5 93.5t226.5 -93.5t93.5 -226.5v-711q128 -131 128 -313zM1024 768v-128h-192v128h192zM1024 1024v-128h-192v128h192zM1024 1280v-128h-192v128h192z" /> - <glyph glyph-name="uniF2CC" unicode="&#xf2cc;" horiz-adv-x="1920" -d="M1433 1287q10 -10 10 -23t-10 -23l-626 -626q-10 -10 -23 -10t-23 10l-82 82q-10 10 -10 23t10 23l44 44q-72 91 -81.5 207t46.5 215q-74 71 -176 71q-106 0 -181 -75t-75 -181v-1280h-256v1280q0 104 40.5 198.5t109.5 163.5t163.5 109.5t198.5 40.5q106 0 201 -41 -t166 -115q94 39 197 24.5t185 -79.5l44 44q10 10 23 10t23 -10zM1344 1024q26 0 45 -19t19 -45t-19 -45t-45 -19t-45 19t-19 45t19 45t45 19zM1600 896q-26 0 -45 19t-19 45t19 45t45 19t45 -19t19 -45t-19 -45t-45 -19zM1856 1024q26 0 45 -19t19 -45t-19 -45t-45 -19 -t-45 19t-19 45t19 45t45 19zM1216 896q26 0 45 -19t19 -45t-19 -45t-45 -19t-45 19t-19 45t19 45t45 19zM1408 832q0 26 19 45t45 19t45 -19t19 -45t-19 -45t-45 -19t-45 19t-19 45zM1728 896q26 0 45 -19t19 -45t-19 -45t-45 -19t-45 19t-19 45t19 45t45 19zM1088 768 -q26 0 45 -19t19 -45t-19 -45t-45 -19t-45 19t-19 45t19 45t45 19zM1344 640q-26 0 -45 19t-19 45t19 45t45 19t45 -19t19 -45t-19 -45t-45 -19zM1600 768q26 0 45 -19t19 -45t-19 -45t-45 -19t-45 19t-19 45t19 45t45 19zM1216 512q-26 0 -45 19t-19 45t19 45t45 19t45 -19 -t19 -45t-19 -45t-45 -19zM1472 640q26 0 45 -19t19 -45t-19 -45t-45 -19t-45 19t-19 45t19 45t45 19zM1088 512q26 0 45 -19t19 -45t-19 -45t-45 -19t-45 19t-19 45t19 45t45 19zM1344 512q26 0 45 -19t19 -45t-19 -45t-45 -19t-45 19t-19 45t19 45t45 19zM1216 384 -q26 0 45 -19t19 -45t-19 -45t-45 -19t-45 19t-19 45t19 45t45 19zM1088 256q26 0 45 -19t19 -45t-19 -45t-45 -19t-45 19t-19 45t19 45t45 19z" /> - <glyph glyph-name="uniF2CD" unicode="&#xf2cd;" horiz-adv-x="1792" -d="M1664 448v-192q0 -169 -128 -286v-194q0 -14 -9 -23t-23 -9h-64q-14 0 -23 9t-9 23v118q-63 -22 -128 -22h-768q-65 0 -128 22v-110q0 -17 -9.5 -28.5t-22.5 -11.5h-64q-13 0 -22.5 11.5t-9.5 28.5v186q-128 117 -128 286v192h1536zM704 864q0 -14 -9 -23t-23 -9t-23 9 -t-9 23t9 23t23 9t23 -9t9 -23zM768 928q0 -14 -9 -23t-23 -9t-23 9t-9 23t9 23t23 9t23 -9t9 -23zM704 992q0 -14 -9 -23t-23 -9t-23 9t-9 23t9 23t23 9t23 -9t9 -23zM832 992q0 -14 -9 -23t-23 -9t-23 9t-9 23t9 23t23 9t23 -9t9 -23zM768 1056q0 -14 -9 -23t-23 -9t-23 9 -t-9 23t9 23t23 9t23 -9t9 -23zM704 1120q0 -14 -9 -23t-23 -9t-23 9t-9 23t9 23t23 9t23 -9t9 -23zM1792 608v-64q0 -14 -9 -23t-23 -9h-1728q-14 0 -23 9t-9 23v64q0 14 9 23t23 9h96v640q0 106 75 181t181 75q108 0 184 -78q46 19 98 12t93 -39l22 22q11 11 22 0l42 -42 -q11 -11 0 -22l-314 -314q-11 -11 -22 0l-42 42q-11 11 0 22l22 22q-36 46 -40.5 104t23.5 108q-37 35 -88 35q-53 0 -90.5 -37.5t-37.5 -90.5v-640h1504q14 0 23 -9t9 -23zM896 1056q0 -14 -9 -23t-23 -9t-23 9t-9 23t9 23t23 9t23 -9t9 -23zM832 1120q0 -14 -9 -23t-23 -9 -t-23 9t-9 23t9 23t23 9t23 -9t9 -23zM768 1184q0 -14 -9 -23t-23 -9t-23 9t-9 23t9 23t23 9t23 -9t9 -23zM960 1120q0 -14 -9 -23t-23 -9t-23 9t-9 23t9 23t23 9t23 -9t9 -23zM896 1184q0 -14 -9 -23t-23 -9t-23 9t-9 23t9 23t23 9t23 -9t9 -23zM832 1248q0 -14 -9 -23 -t-23 -9t-23 9t-9 23t9 23t23 9t23 -9t9 -23zM1024 1184q0 -14 -9 -23t-23 -9t-23 9t-9 23t9 23t23 9t23 -9t9 -23zM960 1248q0 -14 -9 -23t-23 -9t-23 9t-9 23t9 23t23 9t23 -9t9 -23zM1088 1248q0 -14 -9 -23t-23 -9t-23 9t-9 23t9 23t23 9t23 -9t9 -23z" /> - <glyph glyph-name="uniF2CE" unicode="&#xf2ce;" -d="M994 344q0 -86 -17 -197q-31 -215 -55 -313q-22 -90 -152 -90t-152 90q-24 98 -55 313q-17 110 -17 197q0 168 224 168t224 -168zM1536 768q0 -240 -134 -434t-350 -280q-8 -3 -15 3t-6 15q7 48 10 66q4 32 6 47q1 9 9 12q159 81 255.5 234t96.5 337q0 180 -91 330.5 -t-247 234.5t-337 74q-124 -7 -237 -61t-193.5 -140.5t-128 -202t-46.5 -240.5q1 -184 99 -336.5t257 -231.5q7 -3 9 -12q3 -21 6 -45q1 -9 5 -32.5t6 -35.5q1 -9 -6.5 -15t-15.5 -2q-148 58 -261 169.5t-173.5 264t-52.5 319.5q7 143 66 273.5t154.5 227t225 157.5t272.5 70 -q164 10 315.5 -46.5t261 -160.5t175 -250.5t65.5 -308.5zM994 800q0 -93 -65.5 -158.5t-158.5 -65.5t-158.5 65.5t-65.5 158.5t65.5 158.5t158.5 65.5t158.5 -65.5t65.5 -158.5zM1282 768q0 -122 -53.5 -228.5t-146.5 -177.5q-8 -6 -16 -2t-10 14q-6 52 -29 92q-7 10 3 20 -q58 54 91 127t33 155q0 111 -58.5 204t-157.5 141.5t-212 36.5q-133 -15 -229 -113t-109 -231q-10 -92 23.5 -176t98.5 -144q10 -10 3 -20q-24 -41 -29 -93q-2 -9 -10 -13t-16 2q-95 74 -148.5 183t-51.5 234q3 131 69 244t177 181.5t241 74.5q144 7 268 -60t196.5 -187.5 -t72.5 -263.5z" /> - <glyph glyph-name="uniF2D0" unicode="&#xf2d0;" horiz-adv-x="1792" -d="M256 128h1280v768h-1280v-768zM1792 1248v-1216q0 -66 -47 -113t-113 -47h-1472q-66 0 -113 47t-47 113v1216q0 66 47 113t113 47h1472q66 0 113 -47t47 -113z" /> - <glyph glyph-name="uniF2D1" unicode="&#xf2d1;" horiz-adv-x="1792" -d="M1792 224v-192q0 -66 -47 -113t-113 -47h-1472q-66 0 -113 47t-47 113v192q0 66 47 113t113 47h1472q66 0 113 -47t47 -113z" /> - <glyph glyph-name="uniF2D2" unicode="&#xf2d2;" horiz-adv-x="2048" -d="M256 0h768v512h-768v-512zM1280 512h512v768h-768v-256h96q66 0 113 -47t47 -113v-352zM2048 1376v-960q0 -66 -47 -113t-113 -47h-608v-352q0 -66 -47 -113t-113 -47h-960q-66 0 -113 47t-47 113v960q0 66 47 113t113 47h608v352q0 66 47 113t113 47h960q66 0 113 -47 -t47 -113z" /> - <glyph glyph-name="uniF2D3" unicode="&#xf2d3;" horiz-adv-x="1792" -d="M1175 215l146 146q10 10 10 23t-10 23l-233 233l233 233q10 10 10 23t-10 23l-146 146q-10 10 -23 10t-23 -10l-233 -233l-233 233q-10 10 -23 10t-23 -10l-146 -146q-10 -10 -10 -23t10 -23l233 -233l-233 -233q-10 -10 -10 -23t10 -23l146 -146q10 -10 23 -10t23 10 -l233 233l233 -233q10 -10 23 -10t23 10zM1792 1248v-1216q0 -66 -47 -113t-113 -47h-1472q-66 0 -113 47t-47 113v1216q0 66 47 113t113 47h1472q66 0 113 -47t47 -113z" /> - <glyph glyph-name="uniF2D4" unicode="&#xf2d4;" horiz-adv-x="1792" -d="M1257 425l-146 -146q-10 -10 -23 -10t-23 10l-169 169l-169 -169q-10 -10 -23 -10t-23 10l-146 146q-10 10 -10 23t10 23l169 169l-169 169q-10 10 -10 23t10 23l146 146q10 10 23 10t23 -10l169 -169l169 169q10 10 23 10t23 -10l146 -146q10 -10 10 -23t-10 -23 -l-169 -169l169 -169q10 -10 10 -23t-10 -23zM256 128h1280v1024h-1280v-1024zM1792 1248v-1216q0 -66 -47 -113t-113 -47h-1472q-66 0 -113 47t-47 113v1216q0 66 47 113t113 47h1472q66 0 113 -47t47 -113z" /> - <glyph glyph-name="uniF2D5" unicode="&#xf2d5;" horiz-adv-x="1792" -d="M1070 358l306 564h-654l-306 -564h654zM1792 640q0 -182 -71 -348t-191 -286t-286 -191t-348 -71t-348 71t-286 191t-191 286t-71 348t71 348t191 286t286 191t348 71t348 -71t286 -191t191 -286t71 -348z" /> - <glyph glyph-name="uniF2D6" unicode="&#xf2d6;" horiz-adv-x="1794" -d="M1291 1060q-15 17 -35 8.5t-26 -28.5t5 -38q14 -17 40 -14.5t34 20.5t-18 52zM895 814q-8 -8 -19.5 -8t-18.5 8q-8 8 -8 19t8 18q7 8 18.5 8t19.5 -8q7 -7 7 -18t-7 -19zM1060 740l-35 -35q-12 -13 -29.5 -13t-30.5 13l-38 38q-12 13 -12 30t12 30l35 35q12 12 29.5 12 -t30.5 -12l38 -39q12 -12 12 -29.5t-12 -29.5zM951 870q-7 -8 -18.5 -8t-19.5 8q-7 8 -7 19t7 19q8 8 19 8t19 -8t8 -19t-8 -19zM1354 968q-34 -64 -107.5 -85.5t-127.5 16.5q-38 28 -61 66.5t-21 87.5t39 92t75.5 53t70.5 -5t70 -51q2 -2 13 -12.5t14.5 -13.5t13 -13.5 -t12.5 -15.5t10 -15.5t8.5 -18t4 -18.5t1 -21t-5 -22t-9.5 -24zM1555 486q3 20 -8.5 34.5t-27.5 21.5t-33 17t-23 20q-40 71 -84 98.5t-113 11.5q19 13 40 18.5t33 4.5l12 -1q2 45 -34 90q6 20 6.5 40.5t-2.5 30.5l-3 10q43 24 71 65t34 91q10 84 -43 150.5t-137 76.5 -q-60 7 -114 -18.5t-82 -74.5q-30 -51 -33.5 -101t14.5 -87t43.5 -64t56.5 -42q-45 4 -88 36t-57 88q-28 108 32 222q-16 21 -29 32q-50 0 -89 -19q19 24 42 37t36 14l13 1q0 50 -13 78q-10 21 -32.5 28.5t-47 -3.5t-37.5 -40q2 4 4 7q-7 -28 -6.5 -75.5t19 -117t48.5 -122.5 -q-25 -14 -47 -36q-35 -16 -85.5 -70.5t-84.5 -101.5l-33 -46q-90 -34 -181 -125.5t-75 -162.5q1 -16 11 -27q-15 -12 -30 -30q-21 -25 -21 -54t21.5 -40t63.5 6q41 19 77 49.5t55 60.5q-2 2 -6.5 5t-20.5 7.5t-33 3.5q23 5 51 12.5t40 10t27.5 6t26 4t23.5 0.5q14 -7 22 34 -q7 37 7 90q0 102 -40 150q106 -103 101 -219q-1 -29 -15 -50t-27 -27l-13 -6q-4 -7 -19 -32t-26 -45.5t-26.5 -52t-25 -61t-17 -63t-6.5 -66.5t10 -63q-35 54 -37 80q-22 -24 -34.5 -39t-33.5 -42t-30.5 -46t-16.5 -41t-0.5 -38t25.5 -27q45 -25 144 64t190.5 221.5 -t122.5 228.5q86 52 145 115.5t86 119.5q47 -93 154 -178q104 -83 167 -80q39 2 46 43zM1794 640q0 -182 -71 -348t-191 -286t-286.5 -191t-348.5 -71t-348.5 71t-286.5 191t-191 286t-71 348t71 348t191 286t286.5 191t348.5 71t348.5 -71t286.5 -191t191 -286t71 -348z" /> - <glyph glyph-name="uniF2D7" unicode="&#xf2d7;" -d="M518 1353v-655q103 -1 191.5 1.5t125.5 5.5l37 3q68 2 90.5 24.5t39.5 94.5l33 142h103l-14 -322l7 -319h-103l-29 127q-15 68 -45 93t-84 26q-87 8 -352 8v-556q0 -78 43.5 -115.5t133.5 -37.5h357q35 0 59.5 2t55 7.5t54 18t48.5 32t46 50.5t39 73l93 216h89 -q-6 -37 -31.5 -252t-30.5 -276q-146 5 -263.5 8t-162.5 4h-44h-628l-376 -12v102l127 25q67 13 91.5 37t25.5 79l8 643q3 402 -8 645q-2 61 -25.5 84t-91.5 36l-127 24v102l376 -12h702q139 0 374 27q-6 -68 -14 -194.5t-12 -219.5l-5 -92h-93l-32 124q-31 121 -74 179.5 -t-113 58.5h-548q-28 0 -35.5 -8.5t-7.5 -30.5z" /> - <glyph glyph-name="uniF2D8" unicode="&#xf2d8;" -d="M922 739v-182q0 -4 0.5 -15t0 -15l-1.5 -12t-3.5 -11.5t-6.5 -7.5t-11 -5.5t-16 -1.5v309q9 0 16 -1t11 -5t6.5 -5.5t3.5 -9.5t1 -10.5v-13.5v-14zM1238 643v-121q0 -1 0.5 -12.5t0 -15.5t-2.5 -11.5t-7.5 -10.5t-13.5 -3q-9 0 -14 9q-4 10 -4 165v7v8.5v9t1.5 8.5l3.5 7 -t5 5.5t8 1.5q6 0 10 -1.5t6.5 -4.5t4 -6t2 -8.5t0.5 -8v-9.5v-9zM180 407h122v472h-122v-472zM614 407h106v472h-159l-28 -221q-20 148 -32 221h-158v-472h107v312l45 -312h76l43 319v-319zM1039 712q0 67 -5 90q-3 16 -11 28.5t-17 20.5t-25 14t-26.5 8.5t-31 4t-29 1.5 -h-29.5h-12h-91v-472h56q169 -1 197 24.5t25 180.5q-1 62 -1 100zM1356 515v133q0 29 -2 45t-9.5 33.5t-24.5 25t-46 7.5q-46 0 -77 -34v154h-117v-472h110l7 30q30 -36 77 -36q50 0 66 30.5t16 83.5zM1536 1248v-1216q0 -66 -47 -113t-113 -47h-1216q-66 0 -113 47t-47 113 -v1216q0 66 47 113t113 47h1216q66 0 113 -47t47 -113z" /> - <glyph glyph-name="uniF2D9" unicode="&#xf2d9;" horiz-adv-x="2176" -d="M1143 -197q-6 1 -11 4q-13 8 -36 23t-86 65t-116.5 104.5t-112 140t-89.5 172.5q-17 3 -175 37q66 -213 235 -362t391 -184zM502 409l168 -28q-25 76 -41 167.5t-19 145.5l-4 53q-84 -82 -121 -224q5 -65 17 -114zM612 1018q-43 -64 -77 -148q44 46 74 68zM2049 584 -q0 161 -62 307t-167.5 252t-250.5 168.5t-304 62.5q-147 0 -281 -52.5t-240 -148.5q-30 -58 -45 -160q60 51 143 83.5t158.5 43t143 13.5t108.5 -1l40 -3q33 -1 53 -15.5t24.5 -33t6.5 -37t-1 -28.5q-126 11 -227.5 0.5t-183 -43.5t-142.5 -71.5t-131 -98.5 -q4 -36 11.5 -92.5t35.5 -178t62 -179.5q123 -6 247.5 14.5t214.5 53.5t162.5 67t109.5 59l37 24q22 16 39.5 20.5t30.5 -5t17 -34.5q14 -97 -39 -121q-208 -97 -467 -134q-135 -20 -317 -16q41 -96 110 -176.5t137 -127t130.5 -79t101.5 -43.5l39 -12q143 -23 263 15 -q195 99 314 289t119 418zM2123 621q-14 -135 -40 -212q-70 -208 -181.5 -346.5t-318.5 -253.5q-48 -33 -82 -44q-72 -26 -163 -16q-36 -3 -73 -3q-283 0 -504.5 173t-295.5 442q-1 0 -4 0.5t-5 0.5q-6 -50 2.5 -112.5t26 -115t36 -98t31.5 -71.5l14 -26q8 -12 54 -82 -q-71 38 -124.5 106.5t-78.5 140t-39.5 137t-17.5 107.5l-2 42q-5 2 -33.5 12.5t-48.5 18t-53 20.5t-57.5 25t-50 25.5t-42.5 27t-25 25.5q19 -10 50.5 -25.5t113 -45.5t145.5 -38l2 32q11 149 94 290q41 202 176 365q28 115 81 214q15 28 32 45t49 32q158 74 303.5 104 -t302 11t306.5 -97q220 -115 333 -336t87 -474z" /> - <glyph glyph-name="uniF2DA" unicode="&#xf2da;" horiz-adv-x="1792" -d="M1341 752q29 44 -6.5 129.5t-121.5 142.5q-58 39 -125.5 53.5t-118 4.5t-68.5 -37q-12 -23 -4.5 -28t42.5 -10q23 -3 38.5 -5t44.5 -9.5t56 -17.5q36 -13 67.5 -31.5t53 -37t40 -38.5t30.5 -38t22 -34.5t16.5 -28.5t12 -18.5t10.5 -6t11 9.5zM1704 178 -q-52 -127 -148.5 -220t-214.5 -141.5t-253 -60.5t-266 13.5t-251 91t-210 161.5t-141.5 235.5t-46.5 303.5q1 41 8.5 84.5t12.5 64t24 80.5t23 73q-51 -208 1 -397t173 -318t291 -206t346 -83t349 74.5t289 244.5q20 27 18 14q0 -4 -4 -14zM1465 627q0 -104 -40.5 -199 -t-108.5 -164t-162 -109.5t-198 -40.5t-198 40.5t-162 109.5t-108.5 164t-40.5 199t40.5 199t108.5 164t162 109.5t198 40.5t198 -40.5t162 -109.5t108.5 -164t40.5 -199zM1752 915q-65 147 -180.5 251t-253 153.5t-292 53.5t-301 -36.5t-275.5 -129t-220 -211.5t-131 -297 -t-10 -373q-49 161 -51.5 311.5t35.5 272.5t109 227t165.5 180.5t207 126t232 71t242.5 9t236 -54t216 -124.5t178 -197q33 -50 62 -121t31 -112zM1690 573q12 244 -136.5 416t-396.5 240q-8 0 -10 5t24 8q125 -4 230 -50t173 -120t116 -168.5t58.5 -199t-1 -208 -t-61.5 -197.5t-122.5 -167t-185 -117.5t-248.5 -46.5q108 30 201.5 80t174 123t129.5 176.5t55 225.5z" /> - <glyph glyph-name="uniF2DB" unicode="&#xf2db;" -d="M192 256v-128h-112q-16 0 -16 16v16h-48q-16 0 -16 16v32q0 16 16 16h48v16q0 16 16 16h112zM192 512v-128h-112q-16 0 -16 16v16h-48q-16 0 -16 16v32q0 16 16 16h48v16q0 16 16 16h112zM192 768v-128h-112q-16 0 -16 16v16h-48q-16 0 -16 16v32q0 16 16 16h48v16 -q0 16 16 16h112zM192 1024v-128h-112q-16 0 -16 16v16h-48q-16 0 -16 16v32q0 16 16 16h48v16q0 16 16 16h112zM192 1280v-128h-112q-16 0 -16 16v16h-48q-16 0 -16 16v32q0 16 16 16h48v16q0 16 16 16h112zM1280 1440v-1472q0 -40 -28 -68t-68 -28h-832q-40 0 -68 28 -t-28 68v1472q0 40 28 68t68 28h832q40 0 68 -28t28 -68zM1536 208v-32q0 -16 -16 -16h-48v-16q0 -16 -16 -16h-112v128h112q16 0 16 -16v-16h48q16 0 16 -16zM1536 464v-32q0 -16 -16 -16h-48v-16q0 -16 -16 -16h-112v128h112q16 0 16 -16v-16h48q16 0 16 -16zM1536 720v-32 -q0 -16 -16 -16h-48v-16q0 -16 -16 -16h-112v128h112q16 0 16 -16v-16h48q16 0 16 -16zM1536 976v-32q0 -16 -16 -16h-48v-16q0 -16 -16 -16h-112v128h112q16 0 16 -16v-16h48q16 0 16 -16zM1536 1232v-32q0 -16 -16 -16h-48v-16q0 -16 -16 -16h-112v128h112q16 0 16 -16v-16 -h48q16 0 16 -16z" /> - <glyph glyph-name="uniF2DC" unicode="&#xf2dc;" horiz-adv-x="1664" -d="M1566 419l-167 -33l186 -107q23 -13 29.5 -38.5t-6.5 -48.5q-14 -23 -39 -29.5t-48 6.5l-186 106l55 -160q13 -38 -12 -63.5t-60.5 -20.5t-48.5 42l-102 300l-271 156v-313l208 -238q16 -18 17 -39t-11 -36.5t-28.5 -25t-37 -5.5t-36.5 22l-112 128v-214q0 -26 -19 -45 -t-45 -19t-45 19t-19 45v214l-112 -128q-16 -18 -36.5 -22t-37 5.5t-28.5 25t-11 36.5t17 39l208 238v313l-271 -156l-102 -300q-13 -37 -48.5 -42t-60.5 20.5t-12 63.5l55 160l-186 -106q-23 -13 -48 -6.5t-39 29.5q-13 23 -6.5 48.5t29.5 38.5l186 107l-167 33 -q-29 6 -42 29t-8.5 46.5t25.5 40t50 10.5l310 -62l271 157l-271 157l-310 -62q-4 -1 -13 -1q-27 0 -44 18t-19 40t11 43t40 26l167 33l-186 107q-23 13 -29.5 38.5t6.5 48.5t39 30t48 -7l186 -106l-55 160q-13 38 12 63.5t60.5 20.5t48.5 -42l102 -300l271 -156v313 -l-208 238q-16 18 -17 39t11 36.5t28.5 25t37 5.5t36.5 -22l112 -128v214q0 26 19 45t45 19t45 -19t19 -45v-214l112 128q16 18 36.5 22t37 -5.5t28.5 -25t11 -36.5t-17 -39l-208 -238v-313l271 156l102 300q13 37 48.5 42t60.5 -20.5t12 -63.5l-55 -160l186 106 -q23 13 48 6.5t39 -29.5q13 -23 6.5 -48.5t-29.5 -38.5l-186 -107l167 -33q27 -5 40 -26t11 -43t-19 -40t-44 -18q-9 0 -13 1l-310 62l-271 -157l271 -157l310 62q29 6 50 -10.5t25.5 -40t-8.5 -46.5t-42 -29z" /> - <glyph glyph-name="uniF2DD" unicode="&#xf2dd;" horiz-adv-x="1792" -d="M1473 607q7 118 -33 226.5t-113 189t-177 131t-221 57.5q-116 7 -225.5 -32t-192 -110.5t-135 -175t-59.5 -220.5q-7 -118 33 -226.5t113 -189t177.5 -131t221.5 -57.5q155 -9 293 59t224 195.5t94 283.5zM1792 1536l-349 -348q120 -117 180.5 -272t50.5 -321 -q-11 -183 -102 -339t-241 -255.5t-332 -124.5l-999 -132l347 347q-120 116 -180.5 271.5t-50.5 321.5q11 184 102 340t241.5 255.5t332.5 124.5q167 22 500 66t500 66z" /> - <glyph glyph-name="uniF2DE" unicode="&#xf2de;" horiz-adv-x="1792" -d="M948 508l163 -329h-51l-175 350l-171 -350h-49l179 374l-78 33l21 49l240 -102l-21 -50zM563 1100l304 -130l-130 -304l-304 130zM907 915l240 -103l-103 -239l-239 102zM1188 765l191 -81l-82 -190l-190 81zM1680 640q0 159 -62 304t-167.5 250.5t-250.5 167.5t-304 62 -t-304 -62t-250.5 -167.5t-167.5 -250.5t-62 -304t62 -304t167.5 -250.5t250.5 -167.5t304 -62t304 62t250.5 167.5t167.5 250.5t62 304zM1792 640q0 -182 -71 -348t-191 -286t-286 -191t-348 -71t-348 71t-286 191t-191 286t-71 348t71 348t191 286t286 191t348 71t348 -71 -t286 -191t191 -286t71 -348z" /> - <glyph glyph-name="uniF2E0" unicode="&#xf2e0;" horiz-adv-x="1920" -d="M1334 302q-4 24 -27.5 34t-49.5 10.5t-48.5 12.5t-25.5 38q-5 47 33 139.5t75 181t32 127.5q-14 101 -117 103q-45 1 -75 -16l-3 -2l-5 -2.5t-4.5 -2t-5 -2t-5 -0.5t-6 1.5t-6 3.5t-6.5 5q-3 2 -9 8.5t-9 9t-8.5 7.5t-9.5 7.5t-9.5 5.5t-11 4.5t-11.5 2.5q-30 5 -48 -3 -t-45 -31q-1 -1 -9 -8.5t-12.5 -11t-15 -10t-16.5 -5.5t-17 3q-54 27 -84 40q-41 18 -94 -5t-76 -65q-16 -28 -41 -98.5t-43.5 -132.5t-40 -134t-21.5 -73q-22 -69 18.5 -119t110.5 -46q30 2 50.5 15t38.5 46q7 13 79 199.5t77 194.5q6 11 21.5 18t29.5 0q27 -15 21 -53 -q-2 -18 -51 -139.5t-50 -132.5q-6 -38 19.5 -56.5t60.5 -7t55 49.5q4 8 45.5 92t81.5 163.5t46 88.5q20 29 41 28q29 0 25 -38q-2 -16 -65.5 -147.5t-70.5 -159.5q-12 -53 13 -103t74 -74q17 -9 51 -15.5t71.5 -8t62.5 14t20 48.5zM383 86q3 -15 -5 -27.5t-23 -15.5 -q-14 -3 -26.5 5t-15.5 23q-3 14 5 27t22 16t27 -5t16 -23zM953 -177q12 -17 8.5 -37.5t-20.5 -32.5t-37.5 -8t-32.5 21q-11 17 -7.5 37.5t20.5 32.5t37.5 8t31.5 -21zM177 635q-18 -27 -49.5 -33t-57.5 13q-26 18 -32 50t12 58q18 27 49.5 33t57.5 -12q26 -19 32 -50.5 -t-12 -58.5zM1467 -42q19 -28 13 -61.5t-34 -52.5t-60.5 -13t-51.5 34t-13 61t33 53q28 19 60.5 13t52.5 -34zM1579 562q69 -113 42.5 -244.5t-134.5 -207.5q-90 -63 -199 -60q-20 -80 -84.5 -127t-143.5 -44.5t-140 57.5q-12 -9 -13 -10q-103 -71 -225 -48.5t-193 126.5 -q-50 73 -53 164q-83 14 -142.5 70.5t-80.5 128t-2 152t81 138.5q-36 60 -38 128t24.5 125t79.5 98.5t121 50.5q32 85 99 148t146.5 91.5t168 17t159.5 -66.5q72 21 140 17.5t128.5 -36t104.5 -80t67.5 -115t17.5 -140.5q52 -16 87 -57t45.5 -89t-5.5 -99.5t-58 -87.5z -M455 1222q14 -20 9.5 -44.5t-24.5 -38.5q-19 -14 -43.5 -9.5t-37.5 24.5q-14 20 -9.5 44.5t24.5 38.5q19 14 43.5 9.5t37.5 -24.5zM614 1503q4 -16 -5 -30.5t-26 -18.5t-31 5.5t-18 26.5q-3 17 6.5 31t25.5 18q17 4 31 -5.5t17 -26.5zM1800 555q4 -20 -6.5 -37t-30.5 -21 -q-19 -4 -36 6.5t-21 30.5t6.5 37t30.5 22q20 4 36.5 -7.5t20.5 -30.5zM1136 1448q16 -27 8.5 -58.5t-35.5 -47.5q-27 -16 -57.5 -8.5t-46.5 34.5q-16 28 -8.5 59t34.5 48t58 9t47 -36zM1882 792q4 -15 -4 -27.5t-23 -16.5q-15 -3 -27.5 5.5t-15.5 22.5q-3 15 5 28t23 16 -q14 3 26.5 -5t15.5 -23zM1691 1033q15 -22 10.5 -49t-26.5 -43q-22 -15 -49 -10t-42 27t-10 49t27 43t48.5 11t41.5 -28z" /> - <glyph glyph-name="uniF2E1" unicode="&#xf2e1;" horiz-adv-x="1792" - /> - <glyph glyph-name="uniF2E2" unicode="&#xf2e2;" horiz-adv-x="1792" - /> - <glyph glyph-name="uniF2E3" unicode="&#xf2e3;" horiz-adv-x="1792" - /> - <glyph glyph-name="uniF2E4" unicode="&#xf2e4;" horiz-adv-x="1792" - /> - <glyph glyph-name="uniF2E5" unicode="&#xf2e5;" horiz-adv-x="1792" - /> - <glyph glyph-name="uniF2E6" unicode="&#xf2e6;" horiz-adv-x="1792" - /> - <glyph glyph-name="uniF2E7" unicode="&#xf2e7;" horiz-adv-x="1792" - /> - <glyph glyph-name="_698" unicode="&#xf2e8;" horiz-adv-x="1792" - /> - <glyph glyph-name="uniF2E9" unicode="&#xf2e9;" horiz-adv-x="1792" - /> - <glyph glyph-name="uniF2EA" unicode="&#xf2ea;" horiz-adv-x="1792" - /> - <glyph glyph-name="uniF2EB" unicode="&#xf2eb;" horiz-adv-x="1792" - /> - <glyph glyph-name="uniF2EC" unicode="&#xf2ec;" horiz-adv-x="1792" - /> - <glyph glyph-name="uniF2ED" unicode="&#xf2ed;" horiz-adv-x="1792" - /> - <glyph glyph-name="uniF2EE" unicode="&#xf2ee;" horiz-adv-x="1792" - /> - <glyph glyph-name="lessequal" unicode="&#xf500;" horiz-adv-x="1792" - /> - </font> -</defs></svg> diff --git a/admin/bower_components/font-awesome/fonts/fontawesome-webfont.ttf b/admin/bower_components/font-awesome/fonts/fontawesome-webfont.ttf deleted file mode 100644 index 35acda2..0000000 Binary files a/admin/bower_components/font-awesome/fonts/fontawesome-webfont.ttf and /dev/null differ diff --git a/admin/bower_components/font-awesome/fonts/fontawesome-webfont.woff b/admin/bower_components/font-awesome/fonts/fontawesome-webfont.woff deleted file mode 100644 index 400014a..0000000 Binary files a/admin/bower_components/font-awesome/fonts/fontawesome-webfont.woff and /dev/null differ diff --git a/admin/bower_components/font-awesome/fonts/fontawesome-webfont.woff2 b/admin/bower_components/font-awesome/fonts/fontawesome-webfont.woff2 deleted file mode 100644 index 4d13fc6..0000000 Binary files a/admin/bower_components/font-awesome/fonts/fontawesome-webfont.woff2 and /dev/null differ diff --git a/admin/bower_components/font-awesome/less/animated.less b/admin/bower_components/font-awesome/less/animated.less deleted file mode 100644 index 66ad52a..0000000 --- a/admin/bower_components/font-awesome/less/animated.less +++ /dev/null @@ -1,34 +0,0 @@ -// Animated Icons -// -------------------------- - -.@{fa-css-prefix}-spin { - -webkit-animation: fa-spin 2s infinite linear; - animation: fa-spin 2s infinite linear; -} - -.@{fa-css-prefix}-pulse { - -webkit-animation: fa-spin 1s infinite steps(8); - animation: fa-spin 1s infinite steps(8); -} - -@-webkit-keyframes fa-spin { - 0% { - -webkit-transform: rotate(0deg); - transform: rotate(0deg); - } - 100% { - -webkit-transform: rotate(359deg); - transform: rotate(359deg); - } -} - -@keyframes fa-spin { - 0% { - -webkit-transform: rotate(0deg); - transform: rotate(0deg); - } - 100% { - -webkit-transform: rotate(359deg); - transform: rotate(359deg); - } -} diff --git a/admin/bower_components/font-awesome/less/bordered-pulled.less b/admin/bower_components/font-awesome/less/bordered-pulled.less deleted file mode 100644 index f1c8ad7..0000000 --- a/admin/bower_components/font-awesome/less/bordered-pulled.less +++ /dev/null @@ -1,25 +0,0 @@ -// Bordered & Pulled -// ------------------------- - -.@{fa-css-prefix}-border { - padding: .2em .25em .15em; - border: solid .08em @fa-border-color; - border-radius: .1em; -} - -.@{fa-css-prefix}-pull-left { float: left; } -.@{fa-css-prefix}-pull-right { float: right; } - -.@{fa-css-prefix} { - &.@{fa-css-prefix}-pull-left { margin-right: .3em; } - &.@{fa-css-prefix}-pull-right { margin-left: .3em; } -} - -/* Deprecated as of 4.4.0 */ -.pull-right { float: right; } -.pull-left { float: left; } - -.@{fa-css-prefix} { - &.pull-left { margin-right: .3em; } - &.pull-right { margin-left: .3em; } -} diff --git a/admin/bower_components/font-awesome/less/core.less b/admin/bower_components/font-awesome/less/core.less deleted file mode 100644 index c577ac8..0000000 --- a/admin/bower_components/font-awesome/less/core.less +++ /dev/null @@ -1,12 +0,0 @@ -// Base Class Definition -// ------------------------- - -.@{fa-css-prefix} { - display: inline-block; - font: normal normal normal @fa-font-size-base/@fa-line-height-base FontAwesome; // shortening font declaration - font-size: inherit; // can't have font-size inherit on line above, so need to override - text-rendering: auto; // optimizelegibility throws things off #1094 - -webkit-font-smoothing: antialiased; - -moz-osx-font-smoothing: grayscale; - -} diff --git a/admin/bower_components/font-awesome/less/fixed-width.less b/admin/bower_components/font-awesome/less/fixed-width.less deleted file mode 100644 index 110289f..0000000 --- a/admin/bower_components/font-awesome/less/fixed-width.less +++ /dev/null @@ -1,6 +0,0 @@ -// Fixed Width Icons -// ------------------------- -.@{fa-css-prefix}-fw { - width: (18em / 14); - text-align: center; -} diff --git a/admin/bower_components/font-awesome/less/font-awesome.less b/admin/bower_components/font-awesome/less/font-awesome.less deleted file mode 100644 index c3677de..0000000 --- a/admin/bower_components/font-awesome/less/font-awesome.less +++ /dev/null @@ -1,18 +0,0 @@ -/*! - * Font Awesome 4.7.0 by @davegandy - http://fontawesome.io - @fontawesome - * License - http://fontawesome.io/license (Font: SIL OFL 1.1, CSS: MIT License) - */ - -@import "variables.less"; -@import "mixins.less"; -@import "path.less"; -@import "core.less"; -@import "larger.less"; -@import "fixed-width.less"; -@import "list.less"; -@import "bordered-pulled.less"; -@import "animated.less"; -@import "rotated-flipped.less"; -@import "stacked.less"; -@import "icons.less"; -@import "screen-reader.less"; diff --git a/admin/bower_components/font-awesome/less/icons.less b/admin/bower_components/font-awesome/less/icons.less deleted file mode 100644 index 159d600..0000000 --- a/admin/bower_components/font-awesome/less/icons.less +++ /dev/null @@ -1,789 +0,0 @@ -/* Font Awesome uses the Unicode Private Use Area (PUA) to ensure screen - readers do not read off random characters that represent icons */ - -.@{fa-css-prefix}-glass:before { content: @fa-var-glass; } -.@{fa-css-prefix}-music:before { content: @fa-var-music; } -.@{fa-css-prefix}-search:before { content: @fa-var-search; } -.@{fa-css-prefix}-envelope-o:before { content: @fa-var-envelope-o; } -.@{fa-css-prefix}-heart:before { content: @fa-var-heart; } -.@{fa-css-prefix}-star:before { content: @fa-var-star; } -.@{fa-css-prefix}-star-o:before { content: @fa-var-star-o; } -.@{fa-css-prefix}-user:before { content: @fa-var-user; } -.@{fa-css-prefix}-film:before { content: @fa-var-film; } -.@{fa-css-prefix}-th-large:before { content: @fa-var-th-large; } -.@{fa-css-prefix}-th:before { content: @fa-var-th; } -.@{fa-css-prefix}-th-list:before { content: @fa-var-th-list; } -.@{fa-css-prefix}-check:before { content: @fa-var-check; } -.@{fa-css-prefix}-remove:before, -.@{fa-css-prefix}-close:before, -.@{fa-css-prefix}-times:before { content: @fa-var-times; } -.@{fa-css-prefix}-search-plus:before { content: @fa-var-search-plus; } -.@{fa-css-prefix}-search-minus:before { content: @fa-var-search-minus; } -.@{fa-css-prefix}-power-off:before { content: @fa-var-power-off; } -.@{fa-css-prefix}-signal:before { content: @fa-var-signal; } -.@{fa-css-prefix}-gear:before, -.@{fa-css-prefix}-cog:before { content: @fa-var-cog; } -.@{fa-css-prefix}-trash-o:before { content: @fa-var-trash-o; } -.@{fa-css-prefix}-home:before { content: @fa-var-home; } -.@{fa-css-prefix}-file-o:before { content: @fa-var-file-o; } -.@{fa-css-prefix}-clock-o:before { content: @fa-var-clock-o; } -.@{fa-css-prefix}-road:before { content: @fa-var-road; } -.@{fa-css-prefix}-download:before { content: @fa-var-download; } -.@{fa-css-prefix}-arrow-circle-o-down:before { content: @fa-var-arrow-circle-o-down; } -.@{fa-css-prefix}-arrow-circle-o-up:before { content: @fa-var-arrow-circle-o-up; } -.@{fa-css-prefix}-inbox:before { content: @fa-var-inbox; } -.@{fa-css-prefix}-play-circle-o:before { content: @fa-var-play-circle-o; } -.@{fa-css-prefix}-rotate-right:before, -.@{fa-css-prefix}-repeat:before { content: @fa-var-repeat; } -.@{fa-css-prefix}-refresh:before { content: @fa-var-refresh; } -.@{fa-css-prefix}-list-alt:before { content: @fa-var-list-alt; } -.@{fa-css-prefix}-lock:before { content: @fa-var-lock; } -.@{fa-css-prefix}-flag:before { content: @fa-var-flag; } -.@{fa-css-prefix}-headphones:before { content: @fa-var-headphones; } -.@{fa-css-prefix}-volume-off:before { content: @fa-var-volume-off; } -.@{fa-css-prefix}-volume-down:before { content: @fa-var-volume-down; } -.@{fa-css-prefix}-volume-up:before { content: @fa-var-volume-up; } -.@{fa-css-prefix}-qrcode:before { content: @fa-var-qrcode; } -.@{fa-css-prefix}-barcode:before { content: @fa-var-barcode; } -.@{fa-css-prefix}-tag:before { content: @fa-var-tag; } -.@{fa-css-prefix}-tags:before { content: @fa-var-tags; } -.@{fa-css-prefix}-book:before { content: @fa-var-book; } -.@{fa-css-prefix}-bookmark:before { content: @fa-var-bookmark; } -.@{fa-css-prefix}-print:before { content: @fa-var-print; } -.@{fa-css-prefix}-camera:before { content: @fa-var-camera; } -.@{fa-css-prefix}-font:before { content: @fa-var-font; } -.@{fa-css-prefix}-bold:before { content: @fa-var-bold; } -.@{fa-css-prefix}-italic:before { content: @fa-var-italic; } -.@{fa-css-prefix}-text-height:before { content: @fa-var-text-height; } -.@{fa-css-prefix}-text-width:before { content: @fa-var-text-width; } -.@{fa-css-prefix}-align-left:before { content: @fa-var-align-left; } -.@{fa-css-prefix}-align-center:before { content: @fa-var-align-center; } -.@{fa-css-prefix}-align-right:before { content: @fa-var-align-right; } -.@{fa-css-prefix}-align-justify:before { content: @fa-var-align-justify; } -.@{fa-css-prefix}-list:before { content: @fa-var-list; } -.@{fa-css-prefix}-dedent:before, -.@{fa-css-prefix}-outdent:before { content: @fa-var-outdent; } -.@{fa-css-prefix}-indent:before { content: @fa-var-indent; } -.@{fa-css-prefix}-video-camera:before { content: @fa-var-video-camera; } -.@{fa-css-prefix}-photo:before, -.@{fa-css-prefix}-image:before, -.@{fa-css-prefix}-picture-o:before { content: @fa-var-picture-o; } -.@{fa-css-prefix}-pencil:before { content: @fa-var-pencil; } -.@{fa-css-prefix}-map-marker:before { content: @fa-var-map-marker; } -.@{fa-css-prefix}-adjust:before { content: @fa-var-adjust; } -.@{fa-css-prefix}-tint:before { content: @fa-var-tint; } -.@{fa-css-prefix}-edit:before, -.@{fa-css-prefix}-pencil-square-o:before { content: @fa-var-pencil-square-o; } -.@{fa-css-prefix}-share-square-o:before { content: @fa-var-share-square-o; } -.@{fa-css-prefix}-check-square-o:before { content: @fa-var-check-square-o; } -.@{fa-css-prefix}-arrows:before { content: @fa-var-arrows; } -.@{fa-css-prefix}-step-backward:before { content: @fa-var-step-backward; } -.@{fa-css-prefix}-fast-backward:before { content: @fa-var-fast-backward; } -.@{fa-css-prefix}-backward:before { content: @fa-var-backward; } -.@{fa-css-prefix}-play:before { content: @fa-var-play; } -.@{fa-css-prefix}-pause:before { content: @fa-var-pause; } -.@{fa-css-prefix}-stop:before { content: @fa-var-stop; } -.@{fa-css-prefix}-forward:before { content: @fa-var-forward; } -.@{fa-css-prefix}-fast-forward:before { content: @fa-var-fast-forward; } -.@{fa-css-prefix}-step-forward:before { content: @fa-var-step-forward; } -.@{fa-css-prefix}-eject:before { content: @fa-var-eject; } -.@{fa-css-prefix}-chevron-left:before { content: @fa-var-chevron-left; } -.@{fa-css-prefix}-chevron-right:before { content: @fa-var-chevron-right; } -.@{fa-css-prefix}-plus-circle:before { content: @fa-var-plus-circle; } -.@{fa-css-prefix}-minus-circle:before { content: @fa-var-minus-circle; } -.@{fa-css-prefix}-times-circle:before { content: @fa-var-times-circle; } -.@{fa-css-prefix}-check-circle:before { content: @fa-var-check-circle; } -.@{fa-css-prefix}-question-circle:before { content: @fa-var-question-circle; } -.@{fa-css-prefix}-info-circle:before { content: @fa-var-info-circle; } -.@{fa-css-prefix}-crosshairs:before { content: @fa-var-crosshairs; } -.@{fa-css-prefix}-times-circle-o:before { content: @fa-var-times-circle-o; } -.@{fa-css-prefix}-check-circle-o:before { content: @fa-var-check-circle-o; } -.@{fa-css-prefix}-ban:before { content: @fa-var-ban; } -.@{fa-css-prefix}-arrow-left:before { content: @fa-var-arrow-left; } -.@{fa-css-prefix}-arrow-right:before { content: @fa-var-arrow-right; } -.@{fa-css-prefix}-arrow-up:before { content: @fa-var-arrow-up; } -.@{fa-css-prefix}-arrow-down:before { content: @fa-var-arrow-down; } -.@{fa-css-prefix}-mail-forward:before, -.@{fa-css-prefix}-share:before { content: @fa-var-share; } -.@{fa-css-prefix}-expand:before { content: @fa-var-expand; } -.@{fa-css-prefix}-compress:before { content: @fa-var-compress; } -.@{fa-css-prefix}-plus:before { content: @fa-var-plus; } -.@{fa-css-prefix}-minus:before { content: @fa-var-minus; } -.@{fa-css-prefix}-asterisk:before { content: @fa-var-asterisk; } -.@{fa-css-prefix}-exclamation-circle:before { content: @fa-var-exclamation-circle; } -.@{fa-css-prefix}-gift:before { content: @fa-var-gift; } -.@{fa-css-prefix}-leaf:before { content: @fa-var-leaf; } -.@{fa-css-prefix}-fire:before { content: @fa-var-fire; } -.@{fa-css-prefix}-eye:before { content: @fa-var-eye; } -.@{fa-css-prefix}-eye-slash:before { content: @fa-var-eye-slash; } -.@{fa-css-prefix}-warning:before, -.@{fa-css-prefix}-exclamation-triangle:before { content: @fa-var-exclamation-triangle; } -.@{fa-css-prefix}-plane:before { content: @fa-var-plane; } -.@{fa-css-prefix}-calendar:before { content: @fa-var-calendar; } -.@{fa-css-prefix}-random:before { content: @fa-var-random; } -.@{fa-css-prefix}-comment:before { content: @fa-var-comment; } -.@{fa-css-prefix}-magnet:before { content: @fa-var-magnet; } -.@{fa-css-prefix}-chevron-up:before { content: @fa-var-chevron-up; } -.@{fa-css-prefix}-chevron-down:before { content: @fa-var-chevron-down; } -.@{fa-css-prefix}-retweet:before { content: @fa-var-retweet; } -.@{fa-css-prefix}-shopping-cart:before { content: @fa-var-shopping-cart; } -.@{fa-css-prefix}-folder:before { content: @fa-var-folder; } -.@{fa-css-prefix}-folder-open:before { content: @fa-var-folder-open; } -.@{fa-css-prefix}-arrows-v:before { content: @fa-var-arrows-v; } -.@{fa-css-prefix}-arrows-h:before { content: @fa-var-arrows-h; } -.@{fa-css-prefix}-bar-chart-o:before, -.@{fa-css-prefix}-bar-chart:before { content: @fa-var-bar-chart; } -.@{fa-css-prefix}-twitter-square:before { content: @fa-var-twitter-square; } -.@{fa-css-prefix}-facebook-square:before { content: @fa-var-facebook-square; } -.@{fa-css-prefix}-camera-retro:before { content: @fa-var-camera-retro; } -.@{fa-css-prefix}-key:before { content: @fa-var-key; } -.@{fa-css-prefix}-gears:before, -.@{fa-css-prefix}-cogs:before { content: @fa-var-cogs; } -.@{fa-css-prefix}-comments:before { content: @fa-var-comments; } -.@{fa-css-prefix}-thumbs-o-up:before { content: @fa-var-thumbs-o-up; } -.@{fa-css-prefix}-thumbs-o-down:before { content: @fa-var-thumbs-o-down; } -.@{fa-css-prefix}-star-half:before { content: @fa-var-star-half; } -.@{fa-css-prefix}-heart-o:before { content: @fa-var-heart-o; } -.@{fa-css-prefix}-sign-out:before { content: @fa-var-sign-out; } -.@{fa-css-prefix}-linkedin-square:before { content: @fa-var-linkedin-square; } -.@{fa-css-prefix}-thumb-tack:before { content: @fa-var-thumb-tack; } -.@{fa-css-prefix}-external-link:before { content: @fa-var-external-link; } -.@{fa-css-prefix}-sign-in:before { content: @fa-var-sign-in; } -.@{fa-css-prefix}-trophy:before { content: @fa-var-trophy; } -.@{fa-css-prefix}-github-square:before { content: @fa-var-github-square; } -.@{fa-css-prefix}-upload:before { content: @fa-var-upload; } -.@{fa-css-prefix}-lemon-o:before { content: @fa-var-lemon-o; } -.@{fa-css-prefix}-phone:before { content: @fa-var-phone; } -.@{fa-css-prefix}-square-o:before { content: @fa-var-square-o; } -.@{fa-css-prefix}-bookmark-o:before { content: @fa-var-bookmark-o; } -.@{fa-css-prefix}-phone-square:before { content: @fa-var-phone-square; } -.@{fa-css-prefix}-twitter:before { content: @fa-var-twitter; } -.@{fa-css-prefix}-facebook-f:before, -.@{fa-css-prefix}-facebook:before { content: @fa-var-facebook; } -.@{fa-css-prefix}-github:before { content: @fa-var-github; } -.@{fa-css-prefix}-unlock:before { content: @fa-var-unlock; } -.@{fa-css-prefix}-credit-card:before { content: @fa-var-credit-card; } -.@{fa-css-prefix}-feed:before, -.@{fa-css-prefix}-rss:before { content: @fa-var-rss; } -.@{fa-css-prefix}-hdd-o:before { content: @fa-var-hdd-o; } -.@{fa-css-prefix}-bullhorn:before { content: @fa-var-bullhorn; } -.@{fa-css-prefix}-bell:before { content: @fa-var-bell; } -.@{fa-css-prefix}-certificate:before { content: @fa-var-certificate; } -.@{fa-css-prefix}-hand-o-right:before { content: @fa-var-hand-o-right; } -.@{fa-css-prefix}-hand-o-left:before { content: @fa-var-hand-o-left; } -.@{fa-css-prefix}-hand-o-up:before { content: @fa-var-hand-o-up; } -.@{fa-css-prefix}-hand-o-down:before { content: @fa-var-hand-o-down; } -.@{fa-css-prefix}-arrow-circle-left:before { content: @fa-var-arrow-circle-left; } -.@{fa-css-prefix}-arrow-circle-right:before { content: @fa-var-arrow-circle-right; } -.@{fa-css-prefix}-arrow-circle-up:before { content: @fa-var-arrow-circle-up; } -.@{fa-css-prefix}-arrow-circle-down:before { content: @fa-var-arrow-circle-down; } -.@{fa-css-prefix}-globe:before { content: @fa-var-globe; } -.@{fa-css-prefix}-wrench:before { content: @fa-var-wrench; } -.@{fa-css-prefix}-tasks:before { content: @fa-var-tasks; } -.@{fa-css-prefix}-filter:before { content: @fa-var-filter; } -.@{fa-css-prefix}-briefcase:before { content: @fa-var-briefcase; } -.@{fa-css-prefix}-arrows-alt:before { content: @fa-var-arrows-alt; } -.@{fa-css-prefix}-group:before, -.@{fa-css-prefix}-users:before { content: @fa-var-users; } -.@{fa-css-prefix}-chain:before, -.@{fa-css-prefix}-link:before { content: @fa-var-link; } -.@{fa-css-prefix}-cloud:before { content: @fa-var-cloud; } -.@{fa-css-prefix}-flask:before { content: @fa-var-flask; } -.@{fa-css-prefix}-cut:before, -.@{fa-css-prefix}-scissors:before { content: @fa-var-scissors; } -.@{fa-css-prefix}-copy:before, -.@{fa-css-prefix}-files-o:before { content: @fa-var-files-o; } -.@{fa-css-prefix}-paperclip:before { content: @fa-var-paperclip; } -.@{fa-css-prefix}-save:before, -.@{fa-css-prefix}-floppy-o:before { content: @fa-var-floppy-o; } -.@{fa-css-prefix}-square:before { content: @fa-var-square; } -.@{fa-css-prefix}-navicon:before, -.@{fa-css-prefix}-reorder:before, -.@{fa-css-prefix}-bars:before { content: @fa-var-bars; } -.@{fa-css-prefix}-list-ul:before { content: @fa-var-list-ul; } -.@{fa-css-prefix}-list-ol:before { content: @fa-var-list-ol; } -.@{fa-css-prefix}-strikethrough:before { content: @fa-var-strikethrough; } -.@{fa-css-prefix}-underline:before { content: @fa-var-underline; } -.@{fa-css-prefix}-table:before { content: @fa-var-table; } -.@{fa-css-prefix}-magic:before { content: @fa-var-magic; } -.@{fa-css-prefix}-truck:before { content: @fa-var-truck; } -.@{fa-css-prefix}-pinterest:before { content: @fa-var-pinterest; } -.@{fa-css-prefix}-pinterest-square:before { content: @fa-var-pinterest-square; } -.@{fa-css-prefix}-google-plus-square:before { content: @fa-var-google-plus-square; } -.@{fa-css-prefix}-google-plus:before { content: @fa-var-google-plus; } -.@{fa-css-prefix}-money:before { content: @fa-var-money; } -.@{fa-css-prefix}-caret-down:before { content: @fa-var-caret-down; } -.@{fa-css-prefix}-caret-up:before { content: @fa-var-caret-up; } -.@{fa-css-prefix}-caret-left:before { content: @fa-var-caret-left; } -.@{fa-css-prefix}-caret-right:before { content: @fa-var-caret-right; } -.@{fa-css-prefix}-columns:before { content: @fa-var-columns; } -.@{fa-css-prefix}-unsorted:before, -.@{fa-css-prefix}-sort:before { content: @fa-var-sort; } -.@{fa-css-prefix}-sort-down:before, -.@{fa-css-prefix}-sort-desc:before { content: @fa-var-sort-desc; } -.@{fa-css-prefix}-sort-up:before, -.@{fa-css-prefix}-sort-asc:before { content: @fa-var-sort-asc; } -.@{fa-css-prefix}-envelope:before { content: @fa-var-envelope; } -.@{fa-css-prefix}-linkedin:before { content: @fa-var-linkedin; } -.@{fa-css-prefix}-rotate-left:before, -.@{fa-css-prefix}-undo:before { content: @fa-var-undo; } -.@{fa-css-prefix}-legal:before, -.@{fa-css-prefix}-gavel:before { content: @fa-var-gavel; } -.@{fa-css-prefix}-dashboard:before, -.@{fa-css-prefix}-tachometer:before { content: @fa-var-tachometer; } -.@{fa-css-prefix}-comment-o:before { content: @fa-var-comment-o; } -.@{fa-css-prefix}-comments-o:before { content: @fa-var-comments-o; } -.@{fa-css-prefix}-flash:before, -.@{fa-css-prefix}-bolt:before { content: @fa-var-bolt; } -.@{fa-css-prefix}-sitemap:before { content: @fa-var-sitemap; } -.@{fa-css-prefix}-umbrella:before { content: @fa-var-umbrella; } -.@{fa-css-prefix}-paste:before, -.@{fa-css-prefix}-clipboard:before { content: @fa-var-clipboard; } -.@{fa-css-prefix}-lightbulb-o:before { content: @fa-var-lightbulb-o; } -.@{fa-css-prefix}-exchange:before { content: @fa-var-exchange; } -.@{fa-css-prefix}-cloud-download:before { content: @fa-var-cloud-download; } -.@{fa-css-prefix}-cloud-upload:before { content: @fa-var-cloud-upload; } -.@{fa-css-prefix}-user-md:before { content: @fa-var-user-md; } -.@{fa-css-prefix}-stethoscope:before { content: @fa-var-stethoscope; } -.@{fa-css-prefix}-suitcase:before { content: @fa-var-suitcase; } -.@{fa-css-prefix}-bell-o:before { content: @fa-var-bell-o; } -.@{fa-css-prefix}-coffee:before { content: @fa-var-coffee; } -.@{fa-css-prefix}-cutlery:before { content: @fa-var-cutlery; } -.@{fa-css-prefix}-file-text-o:before { content: @fa-var-file-text-o; } -.@{fa-css-prefix}-building-o:before { content: @fa-var-building-o; } -.@{fa-css-prefix}-hospital-o:before { content: @fa-var-hospital-o; } -.@{fa-css-prefix}-ambulance:before { content: @fa-var-ambulance; } -.@{fa-css-prefix}-medkit:before { content: @fa-var-medkit; } -.@{fa-css-prefix}-fighter-jet:before { content: @fa-var-fighter-jet; } -.@{fa-css-prefix}-beer:before { content: @fa-var-beer; } -.@{fa-css-prefix}-h-square:before { content: @fa-var-h-square; } -.@{fa-css-prefix}-plus-square:before { content: @fa-var-plus-square; } -.@{fa-css-prefix}-angle-double-left:before { content: @fa-var-angle-double-left; } -.@{fa-css-prefix}-angle-double-right:before { content: @fa-var-angle-double-right; } -.@{fa-css-prefix}-angle-double-up:before { content: @fa-var-angle-double-up; } -.@{fa-css-prefix}-angle-double-down:before { content: @fa-var-angle-double-down; } -.@{fa-css-prefix}-angle-left:before { content: @fa-var-angle-left; } -.@{fa-css-prefix}-angle-right:before { content: @fa-var-angle-right; } -.@{fa-css-prefix}-angle-up:before { content: @fa-var-angle-up; } -.@{fa-css-prefix}-angle-down:before { content: @fa-var-angle-down; } -.@{fa-css-prefix}-desktop:before { content: @fa-var-desktop; } -.@{fa-css-prefix}-laptop:before { content: @fa-var-laptop; } -.@{fa-css-prefix}-tablet:before { content: @fa-var-tablet; } -.@{fa-css-prefix}-mobile-phone:before, -.@{fa-css-prefix}-mobile:before { content: @fa-var-mobile; } -.@{fa-css-prefix}-circle-o:before { content: @fa-var-circle-o; } -.@{fa-css-prefix}-quote-left:before { content: @fa-var-quote-left; } -.@{fa-css-prefix}-quote-right:before { content: @fa-var-quote-right; } -.@{fa-css-prefix}-spinner:before { content: @fa-var-spinner; } -.@{fa-css-prefix}-circle:before { content: @fa-var-circle; } -.@{fa-css-prefix}-mail-reply:before, -.@{fa-css-prefix}-reply:before { content: @fa-var-reply; } -.@{fa-css-prefix}-github-alt:before { content: @fa-var-github-alt; } -.@{fa-css-prefix}-folder-o:before { content: @fa-var-folder-o; } -.@{fa-css-prefix}-folder-open-o:before { content: @fa-var-folder-open-o; } -.@{fa-css-prefix}-smile-o:before { content: @fa-var-smile-o; } -.@{fa-css-prefix}-frown-o:before { content: @fa-var-frown-o; } -.@{fa-css-prefix}-meh-o:before { content: @fa-var-meh-o; } -.@{fa-css-prefix}-gamepad:before { content: @fa-var-gamepad; } -.@{fa-css-prefix}-keyboard-o:before { content: @fa-var-keyboard-o; } -.@{fa-css-prefix}-flag-o:before { content: @fa-var-flag-o; } -.@{fa-css-prefix}-flag-checkered:before { content: @fa-var-flag-checkered; } -.@{fa-css-prefix}-terminal:before { content: @fa-var-terminal; } -.@{fa-css-prefix}-code:before { content: @fa-var-code; } -.@{fa-css-prefix}-mail-reply-all:before, -.@{fa-css-prefix}-reply-all:before { content: @fa-var-reply-all; } -.@{fa-css-prefix}-star-half-empty:before, -.@{fa-css-prefix}-star-half-full:before, -.@{fa-css-prefix}-star-half-o:before { content: @fa-var-star-half-o; } -.@{fa-css-prefix}-location-arrow:before { content: @fa-var-location-arrow; } -.@{fa-css-prefix}-crop:before { content: @fa-var-crop; } -.@{fa-css-prefix}-code-fork:before { content: @fa-var-code-fork; } -.@{fa-css-prefix}-unlink:before, -.@{fa-css-prefix}-chain-broken:before { content: @fa-var-chain-broken; } -.@{fa-css-prefix}-question:before { content: @fa-var-question; } -.@{fa-css-prefix}-info:before { content: @fa-var-info; } -.@{fa-css-prefix}-exclamation:before { content: @fa-var-exclamation; } -.@{fa-css-prefix}-superscript:before { content: @fa-var-superscript; } -.@{fa-css-prefix}-subscript:before { content: @fa-var-subscript; } -.@{fa-css-prefix}-eraser:before { content: @fa-var-eraser; } -.@{fa-css-prefix}-puzzle-piece:before { content: @fa-var-puzzle-piece; } -.@{fa-css-prefix}-microphone:before { content: @fa-var-microphone; } -.@{fa-css-prefix}-microphone-slash:before { content: @fa-var-microphone-slash; } -.@{fa-css-prefix}-shield:before { content: @fa-var-shield; } -.@{fa-css-prefix}-calendar-o:before { content: @fa-var-calendar-o; } -.@{fa-css-prefix}-fire-extinguisher:before { content: @fa-var-fire-extinguisher; } -.@{fa-css-prefix}-rocket:before { content: @fa-var-rocket; } -.@{fa-css-prefix}-maxcdn:before { content: @fa-var-maxcdn; } -.@{fa-css-prefix}-chevron-circle-left:before { content: @fa-var-chevron-circle-left; } -.@{fa-css-prefix}-chevron-circle-right:before { content: @fa-var-chevron-circle-right; } -.@{fa-css-prefix}-chevron-circle-up:before { content: @fa-var-chevron-circle-up; } -.@{fa-css-prefix}-chevron-circle-down:before { content: @fa-var-chevron-circle-down; } -.@{fa-css-prefix}-html5:before { content: @fa-var-html5; } -.@{fa-css-prefix}-css3:before { content: @fa-var-css3; } -.@{fa-css-prefix}-anchor:before { content: @fa-var-anchor; } -.@{fa-css-prefix}-unlock-alt:before { content: @fa-var-unlock-alt; } -.@{fa-css-prefix}-bullseye:before { content: @fa-var-bullseye; } -.@{fa-css-prefix}-ellipsis-h:before { content: @fa-var-ellipsis-h; } -.@{fa-css-prefix}-ellipsis-v:before { content: @fa-var-ellipsis-v; } -.@{fa-css-prefix}-rss-square:before { content: @fa-var-rss-square; } -.@{fa-css-prefix}-play-circle:before { content: @fa-var-play-circle; } -.@{fa-css-prefix}-ticket:before { content: @fa-var-ticket; } -.@{fa-css-prefix}-minus-square:before { content: @fa-var-minus-square; } -.@{fa-css-prefix}-minus-square-o:before { content: @fa-var-minus-square-o; } -.@{fa-css-prefix}-level-up:before { content: @fa-var-level-up; } -.@{fa-css-prefix}-level-down:before { content: @fa-var-level-down; } -.@{fa-css-prefix}-check-square:before { content: @fa-var-check-square; } -.@{fa-css-prefix}-pencil-square:before { content: @fa-var-pencil-square; } -.@{fa-css-prefix}-external-link-square:before { content: @fa-var-external-link-square; } -.@{fa-css-prefix}-share-square:before { content: @fa-var-share-square; } -.@{fa-css-prefix}-compass:before { content: @fa-var-compass; } -.@{fa-css-prefix}-toggle-down:before, -.@{fa-css-prefix}-caret-square-o-down:before { content: @fa-var-caret-square-o-down; } -.@{fa-css-prefix}-toggle-up:before, -.@{fa-css-prefix}-caret-square-o-up:before { content: @fa-var-caret-square-o-up; } -.@{fa-css-prefix}-toggle-right:before, -.@{fa-css-prefix}-caret-square-o-right:before { content: @fa-var-caret-square-o-right; } -.@{fa-css-prefix}-euro:before, -.@{fa-css-prefix}-eur:before { content: @fa-var-eur; } -.@{fa-css-prefix}-gbp:before { content: @fa-var-gbp; } -.@{fa-css-prefix}-dollar:before, -.@{fa-css-prefix}-usd:before { content: @fa-var-usd; } -.@{fa-css-prefix}-rupee:before, -.@{fa-css-prefix}-inr:before { content: @fa-var-inr; } -.@{fa-css-prefix}-cny:before, -.@{fa-css-prefix}-rmb:before, -.@{fa-css-prefix}-yen:before, -.@{fa-css-prefix}-jpy:before { content: @fa-var-jpy; } -.@{fa-css-prefix}-ruble:before, -.@{fa-css-prefix}-rouble:before, -.@{fa-css-prefix}-rub:before { content: @fa-var-rub; } -.@{fa-css-prefix}-won:before, -.@{fa-css-prefix}-krw:before { content: @fa-var-krw; } -.@{fa-css-prefix}-bitcoin:before, -.@{fa-css-prefix}-btc:before { content: @fa-var-btc; } -.@{fa-css-prefix}-file:before { content: @fa-var-file; } -.@{fa-css-prefix}-file-text:before { content: @fa-var-file-text; } -.@{fa-css-prefix}-sort-alpha-asc:before { content: @fa-var-sort-alpha-asc; } -.@{fa-css-prefix}-sort-alpha-desc:before { content: @fa-var-sort-alpha-desc; } -.@{fa-css-prefix}-sort-amount-asc:before { content: @fa-var-sort-amount-asc; } -.@{fa-css-prefix}-sort-amount-desc:before { content: @fa-var-sort-amount-desc; } -.@{fa-css-prefix}-sort-numeric-asc:before { content: @fa-var-sort-numeric-asc; } -.@{fa-css-prefix}-sort-numeric-desc:before { content: @fa-var-sort-numeric-desc; } -.@{fa-css-prefix}-thumbs-up:before { content: @fa-var-thumbs-up; } -.@{fa-css-prefix}-thumbs-down:before { content: @fa-var-thumbs-down; } -.@{fa-css-prefix}-youtube-square:before { content: @fa-var-youtube-square; } -.@{fa-css-prefix}-youtube:before { content: @fa-var-youtube; } -.@{fa-css-prefix}-xing:before { content: @fa-var-xing; } -.@{fa-css-prefix}-xing-square:before { content: @fa-var-xing-square; } -.@{fa-css-prefix}-youtube-play:before { content: @fa-var-youtube-play; } -.@{fa-css-prefix}-dropbox:before { content: @fa-var-dropbox; } -.@{fa-css-prefix}-stack-overflow:before { content: @fa-var-stack-overflow; } -.@{fa-css-prefix}-instagram:before { content: @fa-var-instagram; } -.@{fa-css-prefix}-flickr:before { content: @fa-var-flickr; } -.@{fa-css-prefix}-adn:before { content: @fa-var-adn; } -.@{fa-css-prefix}-bitbucket:before { content: @fa-var-bitbucket; } -.@{fa-css-prefix}-bitbucket-square:before { content: @fa-var-bitbucket-square; } -.@{fa-css-prefix}-tumblr:before { content: @fa-var-tumblr; } -.@{fa-css-prefix}-tumblr-square:before { content: @fa-var-tumblr-square; } -.@{fa-css-prefix}-long-arrow-down:before { content: @fa-var-long-arrow-down; } -.@{fa-css-prefix}-long-arrow-up:before { content: @fa-var-long-arrow-up; } -.@{fa-css-prefix}-long-arrow-left:before { content: @fa-var-long-arrow-left; } -.@{fa-css-prefix}-long-arrow-right:before { content: @fa-var-long-arrow-right; } -.@{fa-css-prefix}-apple:before { content: @fa-var-apple; } -.@{fa-css-prefix}-windows:before { content: @fa-var-windows; } -.@{fa-css-prefix}-android:before { content: @fa-var-android; } -.@{fa-css-prefix}-linux:before { content: @fa-var-linux; } -.@{fa-css-prefix}-dribbble:before { content: @fa-var-dribbble; } -.@{fa-css-prefix}-skype:before { content: @fa-var-skype; } -.@{fa-css-prefix}-foursquare:before { content: @fa-var-foursquare; } -.@{fa-css-prefix}-trello:before { content: @fa-var-trello; } -.@{fa-css-prefix}-female:before { content: @fa-var-female; } -.@{fa-css-prefix}-male:before { content: @fa-var-male; } -.@{fa-css-prefix}-gittip:before, -.@{fa-css-prefix}-gratipay:before { content: @fa-var-gratipay; } -.@{fa-css-prefix}-sun-o:before { content: @fa-var-sun-o; } -.@{fa-css-prefix}-moon-o:before { content: @fa-var-moon-o; } -.@{fa-css-prefix}-archive:before { content: @fa-var-archive; } -.@{fa-css-prefix}-bug:before { content: @fa-var-bug; } -.@{fa-css-prefix}-vk:before { content: @fa-var-vk; } -.@{fa-css-prefix}-weibo:before { content: @fa-var-weibo; } -.@{fa-css-prefix}-renren:before { content: @fa-var-renren; } -.@{fa-css-prefix}-pagelines:before { content: @fa-var-pagelines; } -.@{fa-css-prefix}-stack-exchange:before { content: @fa-var-stack-exchange; } -.@{fa-css-prefix}-arrow-circle-o-right:before { content: @fa-var-arrow-circle-o-right; } -.@{fa-css-prefix}-arrow-circle-o-left:before { content: @fa-var-arrow-circle-o-left; } -.@{fa-css-prefix}-toggle-left:before, -.@{fa-css-prefix}-caret-square-o-left:before { content: @fa-var-caret-square-o-left; } -.@{fa-css-prefix}-dot-circle-o:before { content: @fa-var-dot-circle-o; } -.@{fa-css-prefix}-wheelchair:before { content: @fa-var-wheelchair; } -.@{fa-css-prefix}-vimeo-square:before { content: @fa-var-vimeo-square; } -.@{fa-css-prefix}-turkish-lira:before, -.@{fa-css-prefix}-try:before { content: @fa-var-try; } -.@{fa-css-prefix}-plus-square-o:before { content: @fa-var-plus-square-o; } -.@{fa-css-prefix}-space-shuttle:before { content: @fa-var-space-shuttle; } -.@{fa-css-prefix}-slack:before { content: @fa-var-slack; } -.@{fa-css-prefix}-envelope-square:before { content: @fa-var-envelope-square; } -.@{fa-css-prefix}-wordpress:before { content: @fa-var-wordpress; } -.@{fa-css-prefix}-openid:before { content: @fa-var-openid; } -.@{fa-css-prefix}-institution:before, -.@{fa-css-prefix}-bank:before, -.@{fa-css-prefix}-university:before { content: @fa-var-university; } -.@{fa-css-prefix}-mortar-board:before, -.@{fa-css-prefix}-graduation-cap:before { content: @fa-var-graduation-cap; } -.@{fa-css-prefix}-yahoo:before { content: @fa-var-yahoo; } -.@{fa-css-prefix}-google:before { content: @fa-var-google; } -.@{fa-css-prefix}-reddit:before { content: @fa-var-reddit; } -.@{fa-css-prefix}-reddit-square:before { content: @fa-var-reddit-square; } -.@{fa-css-prefix}-stumbleupon-circle:before { content: @fa-var-stumbleupon-circle; } -.@{fa-css-prefix}-stumbleupon:before { content: @fa-var-stumbleupon; } -.@{fa-css-prefix}-delicious:before { content: @fa-var-delicious; } -.@{fa-css-prefix}-digg:before { content: @fa-var-digg; } -.@{fa-css-prefix}-pied-piper-pp:before { content: @fa-var-pied-piper-pp; } -.@{fa-css-prefix}-pied-piper-alt:before { content: @fa-var-pied-piper-alt; } -.@{fa-css-prefix}-drupal:before { content: @fa-var-drupal; } -.@{fa-css-prefix}-joomla:before { content: @fa-var-joomla; } -.@{fa-css-prefix}-language:before { content: @fa-var-language; } -.@{fa-css-prefix}-fax:before { content: @fa-var-fax; } -.@{fa-css-prefix}-building:before { content: @fa-var-building; } -.@{fa-css-prefix}-child:before { content: @fa-var-child; } -.@{fa-css-prefix}-paw:before { content: @fa-var-paw; } -.@{fa-css-prefix}-spoon:before { content: @fa-var-spoon; } -.@{fa-css-prefix}-cube:before { content: @fa-var-cube; } -.@{fa-css-prefix}-cubes:before { content: @fa-var-cubes; } -.@{fa-css-prefix}-behance:before { content: @fa-var-behance; } -.@{fa-css-prefix}-behance-square:before { content: @fa-var-behance-square; } -.@{fa-css-prefix}-steam:before { content: @fa-var-steam; } -.@{fa-css-prefix}-steam-square:before { content: @fa-var-steam-square; } -.@{fa-css-prefix}-recycle:before { content: @fa-var-recycle; } -.@{fa-css-prefix}-automobile:before, -.@{fa-css-prefix}-car:before { content: @fa-var-car; } -.@{fa-css-prefix}-cab:before, -.@{fa-css-prefix}-taxi:before { content: @fa-var-taxi; } -.@{fa-css-prefix}-tree:before { content: @fa-var-tree; } -.@{fa-css-prefix}-spotify:before { content: @fa-var-spotify; } -.@{fa-css-prefix}-deviantart:before { content: @fa-var-deviantart; } -.@{fa-css-prefix}-soundcloud:before { content: @fa-var-soundcloud; } -.@{fa-css-prefix}-database:before { content: @fa-var-database; } -.@{fa-css-prefix}-file-pdf-o:before { content: @fa-var-file-pdf-o; } -.@{fa-css-prefix}-file-word-o:before { content: @fa-var-file-word-o; } -.@{fa-css-prefix}-file-excel-o:before { content: @fa-var-file-excel-o; } -.@{fa-css-prefix}-file-powerpoint-o:before { content: @fa-var-file-powerpoint-o; } -.@{fa-css-prefix}-file-photo-o:before, -.@{fa-css-prefix}-file-picture-o:before, -.@{fa-css-prefix}-file-image-o:before { content: @fa-var-file-image-o; } -.@{fa-css-prefix}-file-zip-o:before, -.@{fa-css-prefix}-file-archive-o:before { content: @fa-var-file-archive-o; } -.@{fa-css-prefix}-file-sound-o:before, -.@{fa-css-prefix}-file-audio-o:before { content: @fa-var-file-audio-o; } -.@{fa-css-prefix}-file-movie-o:before, -.@{fa-css-prefix}-file-video-o:before { content: @fa-var-file-video-o; } -.@{fa-css-prefix}-file-code-o:before { content: @fa-var-file-code-o; } -.@{fa-css-prefix}-vine:before { content: @fa-var-vine; } -.@{fa-css-prefix}-codepen:before { content: @fa-var-codepen; } -.@{fa-css-prefix}-jsfiddle:before { content: @fa-var-jsfiddle; } -.@{fa-css-prefix}-life-bouy:before, -.@{fa-css-prefix}-life-buoy:before, -.@{fa-css-prefix}-life-saver:before, -.@{fa-css-prefix}-support:before, -.@{fa-css-prefix}-life-ring:before { content: @fa-var-life-ring; } -.@{fa-css-prefix}-circle-o-notch:before { content: @fa-var-circle-o-notch; } -.@{fa-css-prefix}-ra:before, -.@{fa-css-prefix}-resistance:before, -.@{fa-css-prefix}-rebel:before { content: @fa-var-rebel; } -.@{fa-css-prefix}-ge:before, -.@{fa-css-prefix}-empire:before { content: @fa-var-empire; } -.@{fa-css-prefix}-git-square:before { content: @fa-var-git-square; } -.@{fa-css-prefix}-git:before { content: @fa-var-git; } -.@{fa-css-prefix}-y-combinator-square:before, -.@{fa-css-prefix}-yc-square:before, -.@{fa-css-prefix}-hacker-news:before { content: @fa-var-hacker-news; } -.@{fa-css-prefix}-tencent-weibo:before { content: @fa-var-tencent-weibo; } -.@{fa-css-prefix}-qq:before { content: @fa-var-qq; } -.@{fa-css-prefix}-wechat:before, -.@{fa-css-prefix}-weixin:before { content: @fa-var-weixin; } -.@{fa-css-prefix}-send:before, -.@{fa-css-prefix}-paper-plane:before { content: @fa-var-paper-plane; } -.@{fa-css-prefix}-send-o:before, -.@{fa-css-prefix}-paper-plane-o:before { content: @fa-var-paper-plane-o; } -.@{fa-css-prefix}-history:before { content: @fa-var-history; } -.@{fa-css-prefix}-circle-thin:before { content: @fa-var-circle-thin; } -.@{fa-css-prefix}-header:before { content: @fa-var-header; } -.@{fa-css-prefix}-paragraph:before { content: @fa-var-paragraph; } -.@{fa-css-prefix}-sliders:before { content: @fa-var-sliders; } -.@{fa-css-prefix}-share-alt:before { content: @fa-var-share-alt; } -.@{fa-css-prefix}-share-alt-square:before { content: @fa-var-share-alt-square; } -.@{fa-css-prefix}-bomb:before { content: @fa-var-bomb; } -.@{fa-css-prefix}-soccer-ball-o:before, -.@{fa-css-prefix}-futbol-o:before { content: @fa-var-futbol-o; } -.@{fa-css-prefix}-tty:before { content: @fa-var-tty; } -.@{fa-css-prefix}-binoculars:before { content: @fa-var-binoculars; } -.@{fa-css-prefix}-plug:before { content: @fa-var-plug; } -.@{fa-css-prefix}-slideshare:before { content: @fa-var-slideshare; } -.@{fa-css-prefix}-twitch:before { content: @fa-var-twitch; } -.@{fa-css-prefix}-yelp:before { content: @fa-var-yelp; } -.@{fa-css-prefix}-newspaper-o:before { content: @fa-var-newspaper-o; } -.@{fa-css-prefix}-wifi:before { content: @fa-var-wifi; } -.@{fa-css-prefix}-calculator:before { content: @fa-var-calculator; } -.@{fa-css-prefix}-paypal:before { content: @fa-var-paypal; } -.@{fa-css-prefix}-google-wallet:before { content: @fa-var-google-wallet; } -.@{fa-css-prefix}-cc-visa:before { content: @fa-var-cc-visa; } -.@{fa-css-prefix}-cc-mastercard:before { content: @fa-var-cc-mastercard; } -.@{fa-css-prefix}-cc-discover:before { content: @fa-var-cc-discover; } -.@{fa-css-prefix}-cc-amex:before { content: @fa-var-cc-amex; } -.@{fa-css-prefix}-cc-paypal:before { content: @fa-var-cc-paypal; } -.@{fa-css-prefix}-cc-stripe:before { content: @fa-var-cc-stripe; } -.@{fa-css-prefix}-bell-slash:before { content: @fa-var-bell-slash; } -.@{fa-css-prefix}-bell-slash-o:before { content: @fa-var-bell-slash-o; } -.@{fa-css-prefix}-trash:before { content: @fa-var-trash; } -.@{fa-css-prefix}-copyright:before { content: @fa-var-copyright; } -.@{fa-css-prefix}-at:before { content: @fa-var-at; } -.@{fa-css-prefix}-eyedropper:before { content: @fa-var-eyedropper; } -.@{fa-css-prefix}-paint-brush:before { content: @fa-var-paint-brush; } -.@{fa-css-prefix}-birthday-cake:before { content: @fa-var-birthday-cake; } -.@{fa-css-prefix}-area-chart:before { content: @fa-var-area-chart; } -.@{fa-css-prefix}-pie-chart:before { content: @fa-var-pie-chart; } -.@{fa-css-prefix}-line-chart:before { content: @fa-var-line-chart; } -.@{fa-css-prefix}-lastfm:before { content: @fa-var-lastfm; } -.@{fa-css-prefix}-lastfm-square:before { content: @fa-var-lastfm-square; } -.@{fa-css-prefix}-toggle-off:before { content: @fa-var-toggle-off; } -.@{fa-css-prefix}-toggle-on:before { content: @fa-var-toggle-on; } -.@{fa-css-prefix}-bicycle:before { content: @fa-var-bicycle; } -.@{fa-css-prefix}-bus:before { content: @fa-var-bus; } -.@{fa-css-prefix}-ioxhost:before { content: @fa-var-ioxhost; } -.@{fa-css-prefix}-angellist:before { content: @fa-var-angellist; } -.@{fa-css-prefix}-cc:before { content: @fa-var-cc; } -.@{fa-css-prefix}-shekel:before, -.@{fa-css-prefix}-sheqel:before, -.@{fa-css-prefix}-ils:before { content: @fa-var-ils; } -.@{fa-css-prefix}-meanpath:before { content: @fa-var-meanpath; } -.@{fa-css-prefix}-buysellads:before { content: @fa-var-buysellads; } -.@{fa-css-prefix}-connectdevelop:before { content: @fa-var-connectdevelop; } -.@{fa-css-prefix}-dashcube:before { content: @fa-var-dashcube; } -.@{fa-css-prefix}-forumbee:before { content: @fa-var-forumbee; } -.@{fa-css-prefix}-leanpub:before { content: @fa-var-leanpub; } -.@{fa-css-prefix}-sellsy:before { content: @fa-var-sellsy; } -.@{fa-css-prefix}-shirtsinbulk:before { content: @fa-var-shirtsinbulk; } -.@{fa-css-prefix}-simplybuilt:before { content: @fa-var-simplybuilt; } -.@{fa-css-prefix}-skyatlas:before { content: @fa-var-skyatlas; } -.@{fa-css-prefix}-cart-plus:before { content: @fa-var-cart-plus; } -.@{fa-css-prefix}-cart-arrow-down:before { content: @fa-var-cart-arrow-down; } -.@{fa-css-prefix}-diamond:before { content: @fa-var-diamond; } -.@{fa-css-prefix}-ship:before { content: @fa-var-ship; } -.@{fa-css-prefix}-user-secret:before { content: @fa-var-user-secret; } -.@{fa-css-prefix}-motorcycle:before { content: @fa-var-motorcycle; } -.@{fa-css-prefix}-street-view:before { content: @fa-var-street-view; } -.@{fa-css-prefix}-heartbeat:before { content: @fa-var-heartbeat; } -.@{fa-css-prefix}-venus:before { content: @fa-var-venus; } -.@{fa-css-prefix}-mars:before { content: @fa-var-mars; } -.@{fa-css-prefix}-mercury:before { content: @fa-var-mercury; } -.@{fa-css-prefix}-intersex:before, -.@{fa-css-prefix}-transgender:before { content: @fa-var-transgender; } -.@{fa-css-prefix}-transgender-alt:before { content: @fa-var-transgender-alt; } -.@{fa-css-prefix}-venus-double:before { content: @fa-var-venus-double; } -.@{fa-css-prefix}-mars-double:before { content: @fa-var-mars-double; } -.@{fa-css-prefix}-venus-mars:before { content: @fa-var-venus-mars; } -.@{fa-css-prefix}-mars-stroke:before { content: @fa-var-mars-stroke; } -.@{fa-css-prefix}-mars-stroke-v:before { content: @fa-var-mars-stroke-v; } -.@{fa-css-prefix}-mars-stroke-h:before { content: @fa-var-mars-stroke-h; } -.@{fa-css-prefix}-neuter:before { content: @fa-var-neuter; } -.@{fa-css-prefix}-genderless:before { content: @fa-var-genderless; } -.@{fa-css-prefix}-facebook-official:before { content: @fa-var-facebook-official; } -.@{fa-css-prefix}-pinterest-p:before { content: @fa-var-pinterest-p; } -.@{fa-css-prefix}-whatsapp:before { content: @fa-var-whatsapp; } -.@{fa-css-prefix}-server:before { content: @fa-var-server; } -.@{fa-css-prefix}-user-plus:before { content: @fa-var-user-plus; } -.@{fa-css-prefix}-user-times:before { content: @fa-var-user-times; } -.@{fa-css-prefix}-hotel:before, -.@{fa-css-prefix}-bed:before { content: @fa-var-bed; } -.@{fa-css-prefix}-viacoin:before { content: @fa-var-viacoin; } -.@{fa-css-prefix}-train:before { content: @fa-var-train; } -.@{fa-css-prefix}-subway:before { content: @fa-var-subway; } -.@{fa-css-prefix}-medium:before { content: @fa-var-medium; } -.@{fa-css-prefix}-yc:before, -.@{fa-css-prefix}-y-combinator:before { content: @fa-var-y-combinator; } -.@{fa-css-prefix}-optin-monster:before { content: @fa-var-optin-monster; } -.@{fa-css-prefix}-opencart:before { content: @fa-var-opencart; } -.@{fa-css-prefix}-expeditedssl:before { content: @fa-var-expeditedssl; } -.@{fa-css-prefix}-battery-4:before, -.@{fa-css-prefix}-battery:before, -.@{fa-css-prefix}-battery-full:before { content: @fa-var-battery-full; } -.@{fa-css-prefix}-battery-3:before, -.@{fa-css-prefix}-battery-three-quarters:before { content: @fa-var-battery-three-quarters; } -.@{fa-css-prefix}-battery-2:before, -.@{fa-css-prefix}-battery-half:before { content: @fa-var-battery-half; } -.@{fa-css-prefix}-battery-1:before, -.@{fa-css-prefix}-battery-quarter:before { content: @fa-var-battery-quarter; } -.@{fa-css-prefix}-battery-0:before, -.@{fa-css-prefix}-battery-empty:before { content: @fa-var-battery-empty; } -.@{fa-css-prefix}-mouse-pointer:before { content: @fa-var-mouse-pointer; } -.@{fa-css-prefix}-i-cursor:before { content: @fa-var-i-cursor; } -.@{fa-css-prefix}-object-group:before { content: @fa-var-object-group; } -.@{fa-css-prefix}-object-ungroup:before { content: @fa-var-object-ungroup; } -.@{fa-css-prefix}-sticky-note:before { content: @fa-var-sticky-note; } -.@{fa-css-prefix}-sticky-note-o:before { content: @fa-var-sticky-note-o; } -.@{fa-css-prefix}-cc-jcb:before { content: @fa-var-cc-jcb; } -.@{fa-css-prefix}-cc-diners-club:before { content: @fa-var-cc-diners-club; } -.@{fa-css-prefix}-clone:before { content: @fa-var-clone; } -.@{fa-css-prefix}-balance-scale:before { content: @fa-var-balance-scale; } -.@{fa-css-prefix}-hourglass-o:before { content: @fa-var-hourglass-o; } -.@{fa-css-prefix}-hourglass-1:before, -.@{fa-css-prefix}-hourglass-start:before { content: @fa-var-hourglass-start; } -.@{fa-css-prefix}-hourglass-2:before, -.@{fa-css-prefix}-hourglass-half:before { content: @fa-var-hourglass-half; } -.@{fa-css-prefix}-hourglass-3:before, -.@{fa-css-prefix}-hourglass-end:before { content: @fa-var-hourglass-end; } -.@{fa-css-prefix}-hourglass:before { content: @fa-var-hourglass; } -.@{fa-css-prefix}-hand-grab-o:before, -.@{fa-css-prefix}-hand-rock-o:before { content: @fa-var-hand-rock-o; } -.@{fa-css-prefix}-hand-stop-o:before, -.@{fa-css-prefix}-hand-paper-o:before { content: @fa-var-hand-paper-o; } -.@{fa-css-prefix}-hand-scissors-o:before { content: @fa-var-hand-scissors-o; } -.@{fa-css-prefix}-hand-lizard-o:before { content: @fa-var-hand-lizard-o; } -.@{fa-css-prefix}-hand-spock-o:before { content: @fa-var-hand-spock-o; } -.@{fa-css-prefix}-hand-pointer-o:before { content: @fa-var-hand-pointer-o; } -.@{fa-css-prefix}-hand-peace-o:before { content: @fa-var-hand-peace-o; } -.@{fa-css-prefix}-trademark:before { content: @fa-var-trademark; } -.@{fa-css-prefix}-registered:before { content: @fa-var-registered; } -.@{fa-css-prefix}-creative-commons:before { content: @fa-var-creative-commons; } -.@{fa-css-prefix}-gg:before { content: @fa-var-gg; } -.@{fa-css-prefix}-gg-circle:before { content: @fa-var-gg-circle; } -.@{fa-css-prefix}-tripadvisor:before { content: @fa-var-tripadvisor; } -.@{fa-css-prefix}-odnoklassniki:before { content: @fa-var-odnoklassniki; } -.@{fa-css-prefix}-odnoklassniki-square:before { content: @fa-var-odnoklassniki-square; } -.@{fa-css-prefix}-get-pocket:before { content: @fa-var-get-pocket; } -.@{fa-css-prefix}-wikipedia-w:before { content: @fa-var-wikipedia-w; } -.@{fa-css-prefix}-safari:before { content: @fa-var-safari; } -.@{fa-css-prefix}-chrome:before { content: @fa-var-chrome; } -.@{fa-css-prefix}-firefox:before { content: @fa-var-firefox; } -.@{fa-css-prefix}-opera:before { content: @fa-var-opera; } -.@{fa-css-prefix}-internet-explorer:before { content: @fa-var-internet-explorer; } -.@{fa-css-prefix}-tv:before, -.@{fa-css-prefix}-television:before { content: @fa-var-television; } -.@{fa-css-prefix}-contao:before { content: @fa-var-contao; } -.@{fa-css-prefix}-500px:before { content: @fa-var-500px; } -.@{fa-css-prefix}-amazon:before { content: @fa-var-amazon; } -.@{fa-css-prefix}-calendar-plus-o:before { content: @fa-var-calendar-plus-o; } -.@{fa-css-prefix}-calendar-minus-o:before { content: @fa-var-calendar-minus-o; } -.@{fa-css-prefix}-calendar-times-o:before { content: @fa-var-calendar-times-o; } -.@{fa-css-prefix}-calendar-check-o:before { content: @fa-var-calendar-check-o; } -.@{fa-css-prefix}-industry:before { content: @fa-var-industry; } -.@{fa-css-prefix}-map-pin:before { content: @fa-var-map-pin; } -.@{fa-css-prefix}-map-signs:before { content: @fa-var-map-signs; } -.@{fa-css-prefix}-map-o:before { content: @fa-var-map-o; } -.@{fa-css-prefix}-map:before { content: @fa-var-map; } -.@{fa-css-prefix}-commenting:before { content: @fa-var-commenting; } -.@{fa-css-prefix}-commenting-o:before { content: @fa-var-commenting-o; } -.@{fa-css-prefix}-houzz:before { content: @fa-var-houzz; } -.@{fa-css-prefix}-vimeo:before { content: @fa-var-vimeo; } -.@{fa-css-prefix}-black-tie:before { content: @fa-var-black-tie; } -.@{fa-css-prefix}-fonticons:before { content: @fa-var-fonticons; } -.@{fa-css-prefix}-reddit-alien:before { content: @fa-var-reddit-alien; } -.@{fa-css-prefix}-edge:before { content: @fa-var-edge; } -.@{fa-css-prefix}-credit-card-alt:before { content: @fa-var-credit-card-alt; } -.@{fa-css-prefix}-codiepie:before { content: @fa-var-codiepie; } -.@{fa-css-prefix}-modx:before { content: @fa-var-modx; } -.@{fa-css-prefix}-fort-awesome:before { content: @fa-var-fort-awesome; } -.@{fa-css-prefix}-usb:before { content: @fa-var-usb; } -.@{fa-css-prefix}-product-hunt:before { content: @fa-var-product-hunt; } -.@{fa-css-prefix}-mixcloud:before { content: @fa-var-mixcloud; } -.@{fa-css-prefix}-scribd:before { content: @fa-var-scribd; } -.@{fa-css-prefix}-pause-circle:before { content: @fa-var-pause-circle; } -.@{fa-css-prefix}-pause-circle-o:before { content: @fa-var-pause-circle-o; } -.@{fa-css-prefix}-stop-circle:before { content: @fa-var-stop-circle; } -.@{fa-css-prefix}-stop-circle-o:before { content: @fa-var-stop-circle-o; } -.@{fa-css-prefix}-shopping-bag:before { content: @fa-var-shopping-bag; } -.@{fa-css-prefix}-shopping-basket:before { content: @fa-var-shopping-basket; } -.@{fa-css-prefix}-hashtag:before { content: @fa-var-hashtag; } -.@{fa-css-prefix}-bluetooth:before { content: @fa-var-bluetooth; } -.@{fa-css-prefix}-bluetooth-b:before { content: @fa-var-bluetooth-b; } -.@{fa-css-prefix}-percent:before { content: @fa-var-percent; } -.@{fa-css-prefix}-gitlab:before { content: @fa-var-gitlab; } -.@{fa-css-prefix}-wpbeginner:before { content: @fa-var-wpbeginner; } -.@{fa-css-prefix}-wpforms:before { content: @fa-var-wpforms; } -.@{fa-css-prefix}-envira:before { content: @fa-var-envira; } -.@{fa-css-prefix}-universal-access:before { content: @fa-var-universal-access; } -.@{fa-css-prefix}-wheelchair-alt:before { content: @fa-var-wheelchair-alt; } -.@{fa-css-prefix}-question-circle-o:before { content: @fa-var-question-circle-o; } -.@{fa-css-prefix}-blind:before { content: @fa-var-blind; } -.@{fa-css-prefix}-audio-description:before { content: @fa-var-audio-description; } -.@{fa-css-prefix}-volume-control-phone:before { content: @fa-var-volume-control-phone; } -.@{fa-css-prefix}-braille:before { content: @fa-var-braille; } -.@{fa-css-prefix}-assistive-listening-systems:before { content: @fa-var-assistive-listening-systems; } -.@{fa-css-prefix}-asl-interpreting:before, -.@{fa-css-prefix}-american-sign-language-interpreting:before { content: @fa-var-american-sign-language-interpreting; } -.@{fa-css-prefix}-deafness:before, -.@{fa-css-prefix}-hard-of-hearing:before, -.@{fa-css-prefix}-deaf:before { content: @fa-var-deaf; } -.@{fa-css-prefix}-glide:before { content: @fa-var-glide; } -.@{fa-css-prefix}-glide-g:before { content: @fa-var-glide-g; } -.@{fa-css-prefix}-signing:before, -.@{fa-css-prefix}-sign-language:before { content: @fa-var-sign-language; } -.@{fa-css-prefix}-low-vision:before { content: @fa-var-low-vision; } -.@{fa-css-prefix}-viadeo:before { content: @fa-var-viadeo; } -.@{fa-css-prefix}-viadeo-square:before { content: @fa-var-viadeo-square; } -.@{fa-css-prefix}-snapchat:before { content: @fa-var-snapchat; } -.@{fa-css-prefix}-snapchat-ghost:before { content: @fa-var-snapchat-ghost; } -.@{fa-css-prefix}-snapchat-square:before { content: @fa-var-snapchat-square; } -.@{fa-css-prefix}-pied-piper:before { content: @fa-var-pied-piper; } -.@{fa-css-prefix}-first-order:before { content: @fa-var-first-order; } -.@{fa-css-prefix}-yoast:before { content: @fa-var-yoast; } -.@{fa-css-prefix}-themeisle:before { content: @fa-var-themeisle; } -.@{fa-css-prefix}-google-plus-circle:before, -.@{fa-css-prefix}-google-plus-official:before { content: @fa-var-google-plus-official; } -.@{fa-css-prefix}-fa:before, -.@{fa-css-prefix}-font-awesome:before { content: @fa-var-font-awesome; } -.@{fa-css-prefix}-handshake-o:before { content: @fa-var-handshake-o; } -.@{fa-css-prefix}-envelope-open:before { content: @fa-var-envelope-open; } -.@{fa-css-prefix}-envelope-open-o:before { content: @fa-var-envelope-open-o; } -.@{fa-css-prefix}-linode:before { content: @fa-var-linode; } -.@{fa-css-prefix}-address-book:before { content: @fa-var-address-book; } -.@{fa-css-prefix}-address-book-o:before { content: @fa-var-address-book-o; } -.@{fa-css-prefix}-vcard:before, -.@{fa-css-prefix}-address-card:before { content: @fa-var-address-card; } -.@{fa-css-prefix}-vcard-o:before, -.@{fa-css-prefix}-address-card-o:before { content: @fa-var-address-card-o; } -.@{fa-css-prefix}-user-circle:before { content: @fa-var-user-circle; } -.@{fa-css-prefix}-user-circle-o:before { content: @fa-var-user-circle-o; } -.@{fa-css-prefix}-user-o:before { content: @fa-var-user-o; } -.@{fa-css-prefix}-id-badge:before { content: @fa-var-id-badge; } -.@{fa-css-prefix}-drivers-license:before, -.@{fa-css-prefix}-id-card:before { content: @fa-var-id-card; } -.@{fa-css-prefix}-drivers-license-o:before, -.@{fa-css-prefix}-id-card-o:before { content: @fa-var-id-card-o; } -.@{fa-css-prefix}-quora:before { content: @fa-var-quora; } -.@{fa-css-prefix}-free-code-camp:before { content: @fa-var-free-code-camp; } -.@{fa-css-prefix}-telegram:before { content: @fa-var-telegram; } -.@{fa-css-prefix}-thermometer-4:before, -.@{fa-css-prefix}-thermometer:before, -.@{fa-css-prefix}-thermometer-full:before { content: @fa-var-thermometer-full; } -.@{fa-css-prefix}-thermometer-3:before, -.@{fa-css-prefix}-thermometer-three-quarters:before { content: @fa-var-thermometer-three-quarters; } -.@{fa-css-prefix}-thermometer-2:before, -.@{fa-css-prefix}-thermometer-half:before { content: @fa-var-thermometer-half; } -.@{fa-css-prefix}-thermometer-1:before, -.@{fa-css-prefix}-thermometer-quarter:before { content: @fa-var-thermometer-quarter; } -.@{fa-css-prefix}-thermometer-0:before, -.@{fa-css-prefix}-thermometer-empty:before { content: @fa-var-thermometer-empty; } -.@{fa-css-prefix}-shower:before { content: @fa-var-shower; } -.@{fa-css-prefix}-bathtub:before, -.@{fa-css-prefix}-s15:before, -.@{fa-css-prefix}-bath:before { content: @fa-var-bath; } -.@{fa-css-prefix}-podcast:before { content: @fa-var-podcast; } -.@{fa-css-prefix}-window-maximize:before { content: @fa-var-window-maximize; } -.@{fa-css-prefix}-window-minimize:before { content: @fa-var-window-minimize; } -.@{fa-css-prefix}-window-restore:before { content: @fa-var-window-restore; } -.@{fa-css-prefix}-times-rectangle:before, -.@{fa-css-prefix}-window-close:before { content: @fa-var-window-close; } -.@{fa-css-prefix}-times-rectangle-o:before, -.@{fa-css-prefix}-window-close-o:before { content: @fa-var-window-close-o; } -.@{fa-css-prefix}-bandcamp:before { content: @fa-var-bandcamp; } -.@{fa-css-prefix}-grav:before { content: @fa-var-grav; } -.@{fa-css-prefix}-etsy:before { content: @fa-var-etsy; } -.@{fa-css-prefix}-imdb:before { content: @fa-var-imdb; } -.@{fa-css-prefix}-ravelry:before { content: @fa-var-ravelry; } -.@{fa-css-prefix}-eercast:before { content: @fa-var-eercast; } -.@{fa-css-prefix}-microchip:before { content: @fa-var-microchip; } -.@{fa-css-prefix}-snowflake-o:before { content: @fa-var-snowflake-o; } -.@{fa-css-prefix}-superpowers:before { content: @fa-var-superpowers; } -.@{fa-css-prefix}-wpexplorer:before { content: @fa-var-wpexplorer; } -.@{fa-css-prefix}-meetup:before { content: @fa-var-meetup; } diff --git a/admin/bower_components/font-awesome/less/larger.less b/admin/bower_components/font-awesome/less/larger.less deleted file mode 100644 index c9d6467..0000000 --- a/admin/bower_components/font-awesome/less/larger.less +++ /dev/null @@ -1,13 +0,0 @@ -// Icon Sizes -// ------------------------- - -/* makes the font 33% larger relative to the icon container */ -.@{fa-css-prefix}-lg { - font-size: (4em / 3); - line-height: (3em / 4); - vertical-align: -15%; -} -.@{fa-css-prefix}-2x { font-size: 2em; } -.@{fa-css-prefix}-3x { font-size: 3em; } -.@{fa-css-prefix}-4x { font-size: 4em; } -.@{fa-css-prefix}-5x { font-size: 5em; } diff --git a/admin/bower_components/font-awesome/less/list.less b/admin/bower_components/font-awesome/less/list.less deleted file mode 100644 index 0b44038..0000000 --- a/admin/bower_components/font-awesome/less/list.less +++ /dev/null @@ -1,19 +0,0 @@ -// List Icons -// ------------------------- - -.@{fa-css-prefix}-ul { - padding-left: 0; - margin-left: @fa-li-width; - list-style-type: none; - > li { position: relative; } -} -.@{fa-css-prefix}-li { - position: absolute; - left: -@fa-li-width; - width: @fa-li-width; - top: (2em / 14); - text-align: center; - &.@{fa-css-prefix}-lg { - left: (-@fa-li-width + (4em / 14)); - } -} diff --git a/admin/bower_components/font-awesome/less/mixins.less b/admin/bower_components/font-awesome/less/mixins.less deleted file mode 100644 index beef231..0000000 --- a/admin/bower_components/font-awesome/less/mixins.less +++ /dev/null @@ -1,60 +0,0 @@ -// Mixins -// -------------------------- - -.fa-icon() { - display: inline-block; - font: normal normal normal @fa-font-size-base/@fa-line-height-base FontAwesome; // shortening font declaration - font-size: inherit; // can't have font-size inherit on line above, so need to override - text-rendering: auto; // optimizelegibility throws things off #1094 - -webkit-font-smoothing: antialiased; - -moz-osx-font-smoothing: grayscale; - -} - -.fa-icon-rotate(@degrees, @rotation) { - -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=@{rotation})"; - -webkit-transform: rotate(@degrees); - -ms-transform: rotate(@degrees); - transform: rotate(@degrees); -} - -.fa-icon-flip(@horiz, @vert, @rotation) { - -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=@{rotation}, mirror=1)"; - -webkit-transform: scale(@horiz, @vert); - -ms-transform: scale(@horiz, @vert); - transform: scale(@horiz, @vert); -} - - -// Only display content to screen readers. A la Bootstrap 4. -// -// See: http://a11yproject.com/posts/how-to-hide-content/ - -.sr-only() { - position: absolute; - width: 1px; - height: 1px; - padding: 0; - margin: -1px; - overflow: hidden; - clip: rect(0,0,0,0); - border: 0; -} - -// Use in conjunction with .sr-only to only display content when it's focused. -// -// Useful for "Skip to main content" links; see http://www.w3.org/TR/2013/NOTE-WCAG20-TECHS-20130905/G1 -// -// Credit: HTML5 Boilerplate - -.sr-only-focusable() { - &:active, - &:focus { - position: static; - width: auto; - height: auto; - margin: 0; - overflow: visible; - clip: auto; - } -} diff --git a/admin/bower_components/font-awesome/less/path.less b/admin/bower_components/font-awesome/less/path.less deleted file mode 100644 index 835be41..0000000 --- a/admin/bower_components/font-awesome/less/path.less +++ /dev/null @@ -1,15 +0,0 @@ -/* FONT PATH - * -------------------------- */ - -@font-face { - font-family: 'FontAwesome'; - src: url('@{fa-font-path}/fontawesome-webfont.eot?v=@{fa-version}'); - src: url('@{fa-font-path}/fontawesome-webfont.eot?#iefix&v=@{fa-version}') format('embedded-opentype'), - url('@{fa-font-path}/fontawesome-webfont.woff2?v=@{fa-version}') format('woff2'), - url('@{fa-font-path}/fontawesome-webfont.woff?v=@{fa-version}') format('woff'), - url('@{fa-font-path}/fontawesome-webfont.ttf?v=@{fa-version}') format('truetype'), - url('@{fa-font-path}/fontawesome-webfont.svg?v=@{fa-version}#fontawesomeregular') format('svg'); - // src: url('@{fa-font-path}/FontAwesome.otf') format('opentype'); // used when developing fonts - font-weight: normal; - font-style: normal; -} diff --git a/admin/bower_components/font-awesome/less/rotated-flipped.less b/admin/bower_components/font-awesome/less/rotated-flipped.less deleted file mode 100644 index f6ba814..0000000 --- a/admin/bower_components/font-awesome/less/rotated-flipped.less +++ /dev/null @@ -1,20 +0,0 @@ -// Rotated & Flipped Icons -// ------------------------- - -.@{fa-css-prefix}-rotate-90 { .fa-icon-rotate(90deg, 1); } -.@{fa-css-prefix}-rotate-180 { .fa-icon-rotate(180deg, 2); } -.@{fa-css-prefix}-rotate-270 { .fa-icon-rotate(270deg, 3); } - -.@{fa-css-prefix}-flip-horizontal { .fa-icon-flip(-1, 1, 0); } -.@{fa-css-prefix}-flip-vertical { .fa-icon-flip(1, -1, 2); } - -// Hook for IE8-9 -// ------------------------- - -:root .@{fa-css-prefix}-rotate-90, -:root .@{fa-css-prefix}-rotate-180, -:root .@{fa-css-prefix}-rotate-270, -:root .@{fa-css-prefix}-flip-horizontal, -:root .@{fa-css-prefix}-flip-vertical { - filter: none; -} diff --git a/admin/bower_components/font-awesome/less/screen-reader.less b/admin/bower_components/font-awesome/less/screen-reader.less deleted file mode 100644 index 11c1881..0000000 --- a/admin/bower_components/font-awesome/less/screen-reader.less +++ /dev/null @@ -1,5 +0,0 @@ -// Screen Readers -// ------------------------- - -.sr-only { .sr-only(); } -.sr-only-focusable { .sr-only-focusable(); } diff --git a/admin/bower_components/font-awesome/less/stacked.less b/admin/bower_components/font-awesome/less/stacked.less deleted file mode 100644 index fc53fb0..0000000 --- a/admin/bower_components/font-awesome/less/stacked.less +++ /dev/null @@ -1,20 +0,0 @@ -// Stacked Icons -// ------------------------- - -.@{fa-css-prefix}-stack { - position: relative; - display: inline-block; - width: 2em; - height: 2em; - line-height: 2em; - vertical-align: middle; -} -.@{fa-css-prefix}-stack-1x, .@{fa-css-prefix}-stack-2x { - position: absolute; - left: 0; - width: 100%; - text-align: center; -} -.@{fa-css-prefix}-stack-1x { line-height: inherit; } -.@{fa-css-prefix}-stack-2x { font-size: 2em; } -.@{fa-css-prefix}-inverse { color: @fa-inverse; } diff --git a/admin/bower_components/font-awesome/less/variables.less b/admin/bower_components/font-awesome/less/variables.less deleted file mode 100644 index 7ddbbc0..0000000 --- a/admin/bower_components/font-awesome/less/variables.less +++ /dev/null @@ -1,800 +0,0 @@ -// Variables -// -------------------------- - -@fa-font-path: "../fonts"; -@fa-font-size-base: 14px; -@fa-line-height-base: 1; -//@fa-font-path: "//netdna.bootstrapcdn.com/font-awesome/4.7.0/fonts"; // for referencing Bootstrap CDN font files directly -@fa-css-prefix: fa; -@fa-version: "4.7.0"; -@fa-border-color: #eee; -@fa-inverse: #fff; -@fa-li-width: (30em / 14); - -@fa-var-500px: "\f26e"; -@fa-var-address-book: "\f2b9"; -@fa-var-address-book-o: "\f2ba"; -@fa-var-address-card: "\f2bb"; -@fa-var-address-card-o: "\f2bc"; -@fa-var-adjust: "\f042"; -@fa-var-adn: "\f170"; -@fa-var-align-center: "\f037"; -@fa-var-align-justify: "\f039"; -@fa-var-align-left: "\f036"; -@fa-var-align-right: "\f038"; -@fa-var-amazon: "\f270"; -@fa-var-ambulance: "\f0f9"; -@fa-var-american-sign-language-interpreting: "\f2a3"; -@fa-var-anchor: "\f13d"; -@fa-var-android: "\f17b"; -@fa-var-angellist: "\f209"; -@fa-var-angle-double-down: "\f103"; -@fa-var-angle-double-left: "\f100"; -@fa-var-angle-double-right: "\f101"; -@fa-var-angle-double-up: "\f102"; -@fa-var-angle-down: "\f107"; -@fa-var-angle-left: "\f104"; -@fa-var-angle-right: "\f105"; -@fa-var-angle-up: "\f106"; -@fa-var-apple: "\f179"; -@fa-var-archive: "\f187"; -@fa-var-area-chart: "\f1fe"; -@fa-var-arrow-circle-down: "\f0ab"; -@fa-var-arrow-circle-left: "\f0a8"; -@fa-var-arrow-circle-o-down: "\f01a"; -@fa-var-arrow-circle-o-left: "\f190"; -@fa-var-arrow-circle-o-right: "\f18e"; -@fa-var-arrow-circle-o-up: "\f01b"; -@fa-var-arrow-circle-right: "\f0a9"; -@fa-var-arrow-circle-up: "\f0aa"; -@fa-var-arrow-down: "\f063"; -@fa-var-arrow-left: "\f060"; -@fa-var-arrow-right: "\f061"; -@fa-var-arrow-up: "\f062"; -@fa-var-arrows: "\f047"; -@fa-var-arrows-alt: "\f0b2"; -@fa-var-arrows-h: "\f07e"; -@fa-var-arrows-v: "\f07d"; -@fa-var-asl-interpreting: "\f2a3"; -@fa-var-assistive-listening-systems: "\f2a2"; -@fa-var-asterisk: "\f069"; -@fa-var-at: "\f1fa"; -@fa-var-audio-description: "\f29e"; -@fa-var-automobile: "\f1b9"; -@fa-var-backward: "\f04a"; -@fa-var-balance-scale: "\f24e"; -@fa-var-ban: "\f05e"; -@fa-var-bandcamp: "\f2d5"; -@fa-var-bank: "\f19c"; -@fa-var-bar-chart: "\f080"; -@fa-var-bar-chart-o: "\f080"; -@fa-var-barcode: "\f02a"; -@fa-var-bars: "\f0c9"; -@fa-var-bath: "\f2cd"; -@fa-var-bathtub: "\f2cd"; -@fa-var-battery: "\f240"; -@fa-var-battery-0: "\f244"; -@fa-var-battery-1: "\f243"; -@fa-var-battery-2: "\f242"; -@fa-var-battery-3: "\f241"; -@fa-var-battery-4: "\f240"; -@fa-var-battery-empty: "\f244"; -@fa-var-battery-full: "\f240"; -@fa-var-battery-half: "\f242"; -@fa-var-battery-quarter: "\f243"; -@fa-var-battery-three-quarters: "\f241"; -@fa-var-bed: "\f236"; -@fa-var-beer: "\f0fc"; -@fa-var-behance: "\f1b4"; -@fa-var-behance-square: "\f1b5"; -@fa-var-bell: "\f0f3"; -@fa-var-bell-o: "\f0a2"; -@fa-var-bell-slash: "\f1f6"; -@fa-var-bell-slash-o: "\f1f7"; -@fa-var-bicycle: "\f206"; -@fa-var-binoculars: "\f1e5"; -@fa-var-birthday-cake: "\f1fd"; -@fa-var-bitbucket: "\f171"; -@fa-var-bitbucket-square: "\f172"; -@fa-var-bitcoin: "\f15a"; -@fa-var-black-tie: "\f27e"; -@fa-var-blind: "\f29d"; -@fa-var-bluetooth: "\f293"; -@fa-var-bluetooth-b: "\f294"; -@fa-var-bold: "\f032"; -@fa-var-bolt: "\f0e7"; -@fa-var-bomb: "\f1e2"; -@fa-var-book: "\f02d"; -@fa-var-bookmark: "\f02e"; -@fa-var-bookmark-o: "\f097"; -@fa-var-braille: "\f2a1"; -@fa-var-briefcase: "\f0b1"; -@fa-var-btc: "\f15a"; -@fa-var-bug: "\f188"; -@fa-var-building: "\f1ad"; -@fa-var-building-o: "\f0f7"; -@fa-var-bullhorn: "\f0a1"; -@fa-var-bullseye: "\f140"; -@fa-var-bus: "\f207"; -@fa-var-buysellads: "\f20d"; -@fa-var-cab: "\f1ba"; -@fa-var-calculator: "\f1ec"; -@fa-var-calendar: "\f073"; -@fa-var-calendar-check-o: "\f274"; -@fa-var-calendar-minus-o: "\f272"; -@fa-var-calendar-o: "\f133"; -@fa-var-calendar-plus-o: "\f271"; -@fa-var-calendar-times-o: "\f273"; -@fa-var-camera: "\f030"; -@fa-var-camera-retro: "\f083"; -@fa-var-car: "\f1b9"; -@fa-var-caret-down: "\f0d7"; -@fa-var-caret-left: "\f0d9"; -@fa-var-caret-right: "\f0da"; -@fa-var-caret-square-o-down: "\f150"; -@fa-var-caret-square-o-left: "\f191"; -@fa-var-caret-square-o-right: "\f152"; -@fa-var-caret-square-o-up: "\f151"; -@fa-var-caret-up: "\f0d8"; -@fa-var-cart-arrow-down: "\f218"; -@fa-var-cart-plus: "\f217"; -@fa-var-cc: "\f20a"; -@fa-var-cc-amex: "\f1f3"; -@fa-var-cc-diners-club: "\f24c"; -@fa-var-cc-discover: "\f1f2"; -@fa-var-cc-jcb: "\f24b"; -@fa-var-cc-mastercard: "\f1f1"; -@fa-var-cc-paypal: "\f1f4"; -@fa-var-cc-stripe: "\f1f5"; -@fa-var-cc-visa: "\f1f0"; -@fa-var-certificate: "\f0a3"; -@fa-var-chain: "\f0c1"; -@fa-var-chain-broken: "\f127"; -@fa-var-check: "\f00c"; -@fa-var-check-circle: "\f058"; -@fa-var-check-circle-o: "\f05d"; -@fa-var-check-square: "\f14a"; -@fa-var-check-square-o: "\f046"; -@fa-var-chevron-circle-down: "\f13a"; -@fa-var-chevron-circle-left: "\f137"; -@fa-var-chevron-circle-right: "\f138"; -@fa-var-chevron-circle-up: "\f139"; -@fa-var-chevron-down: "\f078"; -@fa-var-chevron-left: "\f053"; -@fa-var-chevron-right: "\f054"; -@fa-var-chevron-up: "\f077"; -@fa-var-child: "\f1ae"; -@fa-var-chrome: "\f268"; -@fa-var-circle: "\f111"; -@fa-var-circle-o: "\f10c"; -@fa-var-circle-o-notch: "\f1ce"; -@fa-var-circle-thin: "\f1db"; -@fa-var-clipboard: "\f0ea"; -@fa-var-clock-o: "\f017"; -@fa-var-clone: "\f24d"; -@fa-var-close: "\f00d"; -@fa-var-cloud: "\f0c2"; -@fa-var-cloud-download: "\f0ed"; -@fa-var-cloud-upload: "\f0ee"; -@fa-var-cny: "\f157"; -@fa-var-code: "\f121"; -@fa-var-code-fork: "\f126"; -@fa-var-codepen: "\f1cb"; -@fa-var-codiepie: "\f284"; -@fa-var-coffee: "\f0f4"; -@fa-var-cog: "\f013"; -@fa-var-cogs: "\f085"; -@fa-var-columns: "\f0db"; -@fa-var-comment: "\f075"; -@fa-var-comment-o: "\f0e5"; -@fa-var-commenting: "\f27a"; -@fa-var-commenting-o: "\f27b"; -@fa-var-comments: "\f086"; -@fa-var-comments-o: "\f0e6"; -@fa-var-compass: "\f14e"; -@fa-var-compress: "\f066"; -@fa-var-connectdevelop: "\f20e"; -@fa-var-contao: "\f26d"; -@fa-var-copy: "\f0c5"; -@fa-var-copyright: "\f1f9"; -@fa-var-creative-commons: "\f25e"; -@fa-var-credit-card: "\f09d"; -@fa-var-credit-card-alt: "\f283"; -@fa-var-crop: "\f125"; -@fa-var-crosshairs: "\f05b"; -@fa-var-css3: "\f13c"; -@fa-var-cube: "\f1b2"; -@fa-var-cubes: "\f1b3"; -@fa-var-cut: "\f0c4"; -@fa-var-cutlery: "\f0f5"; -@fa-var-dashboard: "\f0e4"; -@fa-var-dashcube: "\f210"; -@fa-var-database: "\f1c0"; -@fa-var-deaf: "\f2a4"; -@fa-var-deafness: "\f2a4"; -@fa-var-dedent: "\f03b"; -@fa-var-delicious: "\f1a5"; -@fa-var-desktop: "\f108"; -@fa-var-deviantart: "\f1bd"; -@fa-var-diamond: "\f219"; -@fa-var-digg: "\f1a6"; -@fa-var-dollar: "\f155"; -@fa-var-dot-circle-o: "\f192"; -@fa-var-download: "\f019"; -@fa-var-dribbble: "\f17d"; -@fa-var-drivers-license: "\f2c2"; -@fa-var-drivers-license-o: "\f2c3"; -@fa-var-dropbox: "\f16b"; -@fa-var-drupal: "\f1a9"; -@fa-var-edge: "\f282"; -@fa-var-edit: "\f044"; -@fa-var-eercast: "\f2da"; -@fa-var-eject: "\f052"; -@fa-var-ellipsis-h: "\f141"; -@fa-var-ellipsis-v: "\f142"; -@fa-var-empire: "\f1d1"; -@fa-var-envelope: "\f0e0"; -@fa-var-envelope-o: "\f003"; -@fa-var-envelope-open: "\f2b6"; -@fa-var-envelope-open-o: "\f2b7"; -@fa-var-envelope-square: "\f199"; -@fa-var-envira: "\f299"; -@fa-var-eraser: "\f12d"; -@fa-var-etsy: "\f2d7"; -@fa-var-eur: "\f153"; -@fa-var-euro: "\f153"; -@fa-var-exchange: "\f0ec"; -@fa-var-exclamation: "\f12a"; -@fa-var-exclamation-circle: "\f06a"; -@fa-var-exclamation-triangle: "\f071"; -@fa-var-expand: "\f065"; -@fa-var-expeditedssl: "\f23e"; -@fa-var-external-link: "\f08e"; -@fa-var-external-link-square: "\f14c"; -@fa-var-eye: "\f06e"; -@fa-var-eye-slash: "\f070"; -@fa-var-eyedropper: "\f1fb"; -@fa-var-fa: "\f2b4"; -@fa-var-facebook: "\f09a"; -@fa-var-facebook-f: "\f09a"; -@fa-var-facebook-official: "\f230"; -@fa-var-facebook-square: "\f082"; -@fa-var-fast-backward: "\f049"; -@fa-var-fast-forward: "\f050"; -@fa-var-fax: "\f1ac"; -@fa-var-feed: "\f09e"; -@fa-var-female: "\f182"; -@fa-var-fighter-jet: "\f0fb"; -@fa-var-file: "\f15b"; -@fa-var-file-archive-o: "\f1c6"; -@fa-var-file-audio-o: "\f1c7"; -@fa-var-file-code-o: "\f1c9"; -@fa-var-file-excel-o: "\f1c3"; -@fa-var-file-image-o: "\f1c5"; -@fa-var-file-movie-o: "\f1c8"; -@fa-var-file-o: "\f016"; -@fa-var-file-pdf-o: "\f1c1"; -@fa-var-file-photo-o: "\f1c5"; -@fa-var-file-picture-o: "\f1c5"; -@fa-var-file-powerpoint-o: "\f1c4"; -@fa-var-file-sound-o: "\f1c7"; -@fa-var-file-text: "\f15c"; -@fa-var-file-text-o: "\f0f6"; -@fa-var-file-video-o: "\f1c8"; -@fa-var-file-word-o: "\f1c2"; -@fa-var-file-zip-o: "\f1c6"; -@fa-var-files-o: "\f0c5"; -@fa-var-film: "\f008"; -@fa-var-filter: "\f0b0"; -@fa-var-fire: "\f06d"; -@fa-var-fire-extinguisher: "\f134"; -@fa-var-firefox: "\f269"; -@fa-var-first-order: "\f2b0"; -@fa-var-flag: "\f024"; -@fa-var-flag-checkered: "\f11e"; -@fa-var-flag-o: "\f11d"; -@fa-var-flash: "\f0e7"; -@fa-var-flask: "\f0c3"; -@fa-var-flickr: "\f16e"; -@fa-var-floppy-o: "\f0c7"; -@fa-var-folder: "\f07b"; -@fa-var-folder-o: "\f114"; -@fa-var-folder-open: "\f07c"; -@fa-var-folder-open-o: "\f115"; -@fa-var-font: "\f031"; -@fa-var-font-awesome: "\f2b4"; -@fa-var-fonticons: "\f280"; -@fa-var-fort-awesome: "\f286"; -@fa-var-forumbee: "\f211"; -@fa-var-forward: "\f04e"; -@fa-var-foursquare: "\f180"; -@fa-var-free-code-camp: "\f2c5"; -@fa-var-frown-o: "\f119"; -@fa-var-futbol-o: "\f1e3"; -@fa-var-gamepad: "\f11b"; -@fa-var-gavel: "\f0e3"; -@fa-var-gbp: "\f154"; -@fa-var-ge: "\f1d1"; -@fa-var-gear: "\f013"; -@fa-var-gears: "\f085"; -@fa-var-genderless: "\f22d"; -@fa-var-get-pocket: "\f265"; -@fa-var-gg: "\f260"; -@fa-var-gg-circle: "\f261"; -@fa-var-gift: "\f06b"; -@fa-var-git: "\f1d3"; -@fa-var-git-square: "\f1d2"; -@fa-var-github: "\f09b"; -@fa-var-github-alt: "\f113"; -@fa-var-github-square: "\f092"; -@fa-var-gitlab: "\f296"; -@fa-var-gittip: "\f184"; -@fa-var-glass: "\f000"; -@fa-var-glide: "\f2a5"; -@fa-var-glide-g: "\f2a6"; -@fa-var-globe: "\f0ac"; -@fa-var-google: "\f1a0"; -@fa-var-google-plus: "\f0d5"; -@fa-var-google-plus-circle: "\f2b3"; -@fa-var-google-plus-official: "\f2b3"; -@fa-var-google-plus-square: "\f0d4"; -@fa-var-google-wallet: "\f1ee"; -@fa-var-graduation-cap: "\f19d"; -@fa-var-gratipay: "\f184"; -@fa-var-grav: "\f2d6"; -@fa-var-group: "\f0c0"; -@fa-var-h-square: "\f0fd"; -@fa-var-hacker-news: "\f1d4"; -@fa-var-hand-grab-o: "\f255"; -@fa-var-hand-lizard-o: "\f258"; -@fa-var-hand-o-down: "\f0a7"; -@fa-var-hand-o-left: "\f0a5"; -@fa-var-hand-o-right: "\f0a4"; -@fa-var-hand-o-up: "\f0a6"; -@fa-var-hand-paper-o: "\f256"; -@fa-var-hand-peace-o: "\f25b"; -@fa-var-hand-pointer-o: "\f25a"; -@fa-var-hand-rock-o: "\f255"; -@fa-var-hand-scissors-o: "\f257"; -@fa-var-hand-spock-o: "\f259"; -@fa-var-hand-stop-o: "\f256"; -@fa-var-handshake-o: "\f2b5"; -@fa-var-hard-of-hearing: "\f2a4"; -@fa-var-hashtag: "\f292"; -@fa-var-hdd-o: "\f0a0"; -@fa-var-header: "\f1dc"; -@fa-var-headphones: "\f025"; -@fa-var-heart: "\f004"; -@fa-var-heart-o: "\f08a"; -@fa-var-heartbeat: "\f21e"; -@fa-var-history: "\f1da"; -@fa-var-home: "\f015"; -@fa-var-hospital-o: "\f0f8"; -@fa-var-hotel: "\f236"; -@fa-var-hourglass: "\f254"; -@fa-var-hourglass-1: "\f251"; -@fa-var-hourglass-2: "\f252"; -@fa-var-hourglass-3: "\f253"; -@fa-var-hourglass-end: "\f253"; -@fa-var-hourglass-half: "\f252"; -@fa-var-hourglass-o: "\f250"; -@fa-var-hourglass-start: "\f251"; -@fa-var-houzz: "\f27c"; -@fa-var-html5: "\f13b"; -@fa-var-i-cursor: "\f246"; -@fa-var-id-badge: "\f2c1"; -@fa-var-id-card: "\f2c2"; -@fa-var-id-card-o: "\f2c3"; -@fa-var-ils: "\f20b"; -@fa-var-image: "\f03e"; -@fa-var-imdb: "\f2d8"; -@fa-var-inbox: "\f01c"; -@fa-var-indent: "\f03c"; -@fa-var-industry: "\f275"; -@fa-var-info: "\f129"; -@fa-var-info-circle: "\f05a"; -@fa-var-inr: "\f156"; -@fa-var-instagram: "\f16d"; -@fa-var-institution: "\f19c"; -@fa-var-internet-explorer: "\f26b"; -@fa-var-intersex: "\f224"; -@fa-var-ioxhost: "\f208"; -@fa-var-italic: "\f033"; -@fa-var-joomla: "\f1aa"; -@fa-var-jpy: "\f157"; -@fa-var-jsfiddle: "\f1cc"; -@fa-var-key: "\f084"; -@fa-var-keyboard-o: "\f11c"; -@fa-var-krw: "\f159"; -@fa-var-language: "\f1ab"; -@fa-var-laptop: "\f109"; -@fa-var-lastfm: "\f202"; -@fa-var-lastfm-square: "\f203"; -@fa-var-leaf: "\f06c"; -@fa-var-leanpub: "\f212"; -@fa-var-legal: "\f0e3"; -@fa-var-lemon-o: "\f094"; -@fa-var-level-down: "\f149"; -@fa-var-level-up: "\f148"; -@fa-var-life-bouy: "\f1cd"; -@fa-var-life-buoy: "\f1cd"; -@fa-var-life-ring: "\f1cd"; -@fa-var-life-saver: "\f1cd"; -@fa-var-lightbulb-o: "\f0eb"; -@fa-var-line-chart: "\f201"; -@fa-var-link: "\f0c1"; -@fa-var-linkedin: "\f0e1"; -@fa-var-linkedin-square: "\f08c"; -@fa-var-linode: "\f2b8"; -@fa-var-linux: "\f17c"; -@fa-var-list: "\f03a"; -@fa-var-list-alt: "\f022"; -@fa-var-list-ol: "\f0cb"; -@fa-var-list-ul: "\f0ca"; -@fa-var-location-arrow: "\f124"; -@fa-var-lock: "\f023"; -@fa-var-long-arrow-down: "\f175"; -@fa-var-long-arrow-left: "\f177"; -@fa-var-long-arrow-right: "\f178"; -@fa-var-long-arrow-up: "\f176"; -@fa-var-low-vision: "\f2a8"; -@fa-var-magic: "\f0d0"; -@fa-var-magnet: "\f076"; -@fa-var-mail-forward: "\f064"; -@fa-var-mail-reply: "\f112"; -@fa-var-mail-reply-all: "\f122"; -@fa-var-male: "\f183"; -@fa-var-map: "\f279"; -@fa-var-map-marker: "\f041"; -@fa-var-map-o: "\f278"; -@fa-var-map-pin: "\f276"; -@fa-var-map-signs: "\f277"; -@fa-var-mars: "\f222"; -@fa-var-mars-double: "\f227"; -@fa-var-mars-stroke: "\f229"; -@fa-var-mars-stroke-h: "\f22b"; -@fa-var-mars-stroke-v: "\f22a"; -@fa-var-maxcdn: "\f136"; -@fa-var-meanpath: "\f20c"; -@fa-var-medium: "\f23a"; -@fa-var-medkit: "\f0fa"; -@fa-var-meetup: "\f2e0"; -@fa-var-meh-o: "\f11a"; -@fa-var-mercury: "\f223"; -@fa-var-microchip: "\f2db"; -@fa-var-microphone: "\f130"; -@fa-var-microphone-slash: "\f131"; -@fa-var-minus: "\f068"; -@fa-var-minus-circle: "\f056"; -@fa-var-minus-square: "\f146"; -@fa-var-minus-square-o: "\f147"; -@fa-var-mixcloud: "\f289"; -@fa-var-mobile: "\f10b"; -@fa-var-mobile-phone: "\f10b"; -@fa-var-modx: "\f285"; -@fa-var-money: "\f0d6"; -@fa-var-moon-o: "\f186"; -@fa-var-mortar-board: "\f19d"; -@fa-var-motorcycle: "\f21c"; -@fa-var-mouse-pointer: "\f245"; -@fa-var-music: "\f001"; -@fa-var-navicon: "\f0c9"; -@fa-var-neuter: "\f22c"; -@fa-var-newspaper-o: "\f1ea"; -@fa-var-object-group: "\f247"; -@fa-var-object-ungroup: "\f248"; -@fa-var-odnoklassniki: "\f263"; -@fa-var-odnoklassniki-square: "\f264"; -@fa-var-opencart: "\f23d"; -@fa-var-openid: "\f19b"; -@fa-var-opera: "\f26a"; -@fa-var-optin-monster: "\f23c"; -@fa-var-outdent: "\f03b"; -@fa-var-pagelines: "\f18c"; -@fa-var-paint-brush: "\f1fc"; -@fa-var-paper-plane: "\f1d8"; -@fa-var-paper-plane-o: "\f1d9"; -@fa-var-paperclip: "\f0c6"; -@fa-var-paragraph: "\f1dd"; -@fa-var-paste: "\f0ea"; -@fa-var-pause: "\f04c"; -@fa-var-pause-circle: "\f28b"; -@fa-var-pause-circle-o: "\f28c"; -@fa-var-paw: "\f1b0"; -@fa-var-paypal: "\f1ed"; -@fa-var-pencil: "\f040"; -@fa-var-pencil-square: "\f14b"; -@fa-var-pencil-square-o: "\f044"; -@fa-var-percent: "\f295"; -@fa-var-phone: "\f095"; -@fa-var-phone-square: "\f098"; -@fa-var-photo: "\f03e"; -@fa-var-picture-o: "\f03e"; -@fa-var-pie-chart: "\f200"; -@fa-var-pied-piper: "\f2ae"; -@fa-var-pied-piper-alt: "\f1a8"; -@fa-var-pied-piper-pp: "\f1a7"; -@fa-var-pinterest: "\f0d2"; -@fa-var-pinterest-p: "\f231"; -@fa-var-pinterest-square: "\f0d3"; -@fa-var-plane: "\f072"; -@fa-var-play: "\f04b"; -@fa-var-play-circle: "\f144"; -@fa-var-play-circle-o: "\f01d"; -@fa-var-plug: "\f1e6"; -@fa-var-plus: "\f067"; -@fa-var-plus-circle: "\f055"; -@fa-var-plus-square: "\f0fe"; -@fa-var-plus-square-o: "\f196"; -@fa-var-podcast: "\f2ce"; -@fa-var-power-off: "\f011"; -@fa-var-print: "\f02f"; -@fa-var-product-hunt: "\f288"; -@fa-var-puzzle-piece: "\f12e"; -@fa-var-qq: "\f1d6"; -@fa-var-qrcode: "\f029"; -@fa-var-question: "\f128"; -@fa-var-question-circle: "\f059"; -@fa-var-question-circle-o: "\f29c"; -@fa-var-quora: "\f2c4"; -@fa-var-quote-left: "\f10d"; -@fa-var-quote-right: "\f10e"; -@fa-var-ra: "\f1d0"; -@fa-var-random: "\f074"; -@fa-var-ravelry: "\f2d9"; -@fa-var-rebel: "\f1d0"; -@fa-var-recycle: "\f1b8"; -@fa-var-reddit: "\f1a1"; -@fa-var-reddit-alien: "\f281"; -@fa-var-reddit-square: "\f1a2"; -@fa-var-refresh: "\f021"; -@fa-var-registered: "\f25d"; -@fa-var-remove: "\f00d"; -@fa-var-renren: "\f18b"; -@fa-var-reorder: "\f0c9"; -@fa-var-repeat: "\f01e"; -@fa-var-reply: "\f112"; -@fa-var-reply-all: "\f122"; -@fa-var-resistance: "\f1d0"; -@fa-var-retweet: "\f079"; -@fa-var-rmb: "\f157"; -@fa-var-road: "\f018"; -@fa-var-rocket: "\f135"; -@fa-var-rotate-left: "\f0e2"; -@fa-var-rotate-right: "\f01e"; -@fa-var-rouble: "\f158"; -@fa-var-rss: "\f09e"; -@fa-var-rss-square: "\f143"; -@fa-var-rub: "\f158"; -@fa-var-ruble: "\f158"; -@fa-var-rupee: "\f156"; -@fa-var-s15: "\f2cd"; -@fa-var-safari: "\f267"; -@fa-var-save: "\f0c7"; -@fa-var-scissors: "\f0c4"; -@fa-var-scribd: "\f28a"; -@fa-var-search: "\f002"; -@fa-var-search-minus: "\f010"; -@fa-var-search-plus: "\f00e"; -@fa-var-sellsy: "\f213"; -@fa-var-send: "\f1d8"; -@fa-var-send-o: "\f1d9"; -@fa-var-server: "\f233"; -@fa-var-share: "\f064"; -@fa-var-share-alt: "\f1e0"; -@fa-var-share-alt-square: "\f1e1"; -@fa-var-share-square: "\f14d"; -@fa-var-share-square-o: "\f045"; -@fa-var-shekel: "\f20b"; -@fa-var-sheqel: "\f20b"; -@fa-var-shield: "\f132"; -@fa-var-ship: "\f21a"; -@fa-var-shirtsinbulk: "\f214"; -@fa-var-shopping-bag: "\f290"; -@fa-var-shopping-basket: "\f291"; -@fa-var-shopping-cart: "\f07a"; -@fa-var-shower: "\f2cc"; -@fa-var-sign-in: "\f090"; -@fa-var-sign-language: "\f2a7"; -@fa-var-sign-out: "\f08b"; -@fa-var-signal: "\f012"; -@fa-var-signing: "\f2a7"; -@fa-var-simplybuilt: "\f215"; -@fa-var-sitemap: "\f0e8"; -@fa-var-skyatlas: "\f216"; -@fa-var-skype: "\f17e"; -@fa-var-slack: "\f198"; -@fa-var-sliders: "\f1de"; -@fa-var-slideshare: "\f1e7"; -@fa-var-smile-o: "\f118"; -@fa-var-snapchat: "\f2ab"; -@fa-var-snapchat-ghost: "\f2ac"; -@fa-var-snapchat-square: "\f2ad"; -@fa-var-snowflake-o: "\f2dc"; -@fa-var-soccer-ball-o: "\f1e3"; -@fa-var-sort: "\f0dc"; -@fa-var-sort-alpha-asc: "\f15d"; -@fa-var-sort-alpha-desc: "\f15e"; -@fa-var-sort-amount-asc: "\f160"; -@fa-var-sort-amount-desc: "\f161"; -@fa-var-sort-asc: "\f0de"; -@fa-var-sort-desc: "\f0dd"; -@fa-var-sort-down: "\f0dd"; -@fa-var-sort-numeric-asc: "\f162"; -@fa-var-sort-numeric-desc: "\f163"; -@fa-var-sort-up: "\f0de"; -@fa-var-soundcloud: "\f1be"; -@fa-var-space-shuttle: "\f197"; -@fa-var-spinner: "\f110"; -@fa-var-spoon: "\f1b1"; -@fa-var-spotify: "\f1bc"; -@fa-var-square: "\f0c8"; -@fa-var-square-o: "\f096"; -@fa-var-stack-exchange: "\f18d"; -@fa-var-stack-overflow: "\f16c"; -@fa-var-star: "\f005"; -@fa-var-star-half: "\f089"; -@fa-var-star-half-empty: "\f123"; -@fa-var-star-half-full: "\f123"; -@fa-var-star-half-o: "\f123"; -@fa-var-star-o: "\f006"; -@fa-var-steam: "\f1b6"; -@fa-var-steam-square: "\f1b7"; -@fa-var-step-backward: "\f048"; -@fa-var-step-forward: "\f051"; -@fa-var-stethoscope: "\f0f1"; -@fa-var-sticky-note: "\f249"; -@fa-var-sticky-note-o: "\f24a"; -@fa-var-stop: "\f04d"; -@fa-var-stop-circle: "\f28d"; -@fa-var-stop-circle-o: "\f28e"; -@fa-var-street-view: "\f21d"; -@fa-var-strikethrough: "\f0cc"; -@fa-var-stumbleupon: "\f1a4"; -@fa-var-stumbleupon-circle: "\f1a3"; -@fa-var-subscript: "\f12c"; -@fa-var-subway: "\f239"; -@fa-var-suitcase: "\f0f2"; -@fa-var-sun-o: "\f185"; -@fa-var-superpowers: "\f2dd"; -@fa-var-superscript: "\f12b"; -@fa-var-support: "\f1cd"; -@fa-var-table: "\f0ce"; -@fa-var-tablet: "\f10a"; -@fa-var-tachometer: "\f0e4"; -@fa-var-tag: "\f02b"; -@fa-var-tags: "\f02c"; -@fa-var-tasks: "\f0ae"; -@fa-var-taxi: "\f1ba"; -@fa-var-telegram: "\f2c6"; -@fa-var-television: "\f26c"; -@fa-var-tencent-weibo: "\f1d5"; -@fa-var-terminal: "\f120"; -@fa-var-text-height: "\f034"; -@fa-var-text-width: "\f035"; -@fa-var-th: "\f00a"; -@fa-var-th-large: "\f009"; -@fa-var-th-list: "\f00b"; -@fa-var-themeisle: "\f2b2"; -@fa-var-thermometer: "\f2c7"; -@fa-var-thermometer-0: "\f2cb"; -@fa-var-thermometer-1: "\f2ca"; -@fa-var-thermometer-2: "\f2c9"; -@fa-var-thermometer-3: "\f2c8"; -@fa-var-thermometer-4: "\f2c7"; -@fa-var-thermometer-empty: "\f2cb"; -@fa-var-thermometer-full: "\f2c7"; -@fa-var-thermometer-half: "\f2c9"; -@fa-var-thermometer-quarter: "\f2ca"; -@fa-var-thermometer-three-quarters: "\f2c8"; -@fa-var-thumb-tack: "\f08d"; -@fa-var-thumbs-down: "\f165"; -@fa-var-thumbs-o-down: "\f088"; -@fa-var-thumbs-o-up: "\f087"; -@fa-var-thumbs-up: "\f164"; -@fa-var-ticket: "\f145"; -@fa-var-times: "\f00d"; -@fa-var-times-circle: "\f057"; -@fa-var-times-circle-o: "\f05c"; -@fa-var-times-rectangle: "\f2d3"; -@fa-var-times-rectangle-o: "\f2d4"; -@fa-var-tint: "\f043"; -@fa-var-toggle-down: "\f150"; -@fa-var-toggle-left: "\f191"; -@fa-var-toggle-off: "\f204"; -@fa-var-toggle-on: "\f205"; -@fa-var-toggle-right: "\f152"; -@fa-var-toggle-up: "\f151"; -@fa-var-trademark: "\f25c"; -@fa-var-train: "\f238"; -@fa-var-transgender: "\f224"; -@fa-var-transgender-alt: "\f225"; -@fa-var-trash: "\f1f8"; -@fa-var-trash-o: "\f014"; -@fa-var-tree: "\f1bb"; -@fa-var-trello: "\f181"; -@fa-var-tripadvisor: "\f262"; -@fa-var-trophy: "\f091"; -@fa-var-truck: "\f0d1"; -@fa-var-try: "\f195"; -@fa-var-tty: "\f1e4"; -@fa-var-tumblr: "\f173"; -@fa-var-tumblr-square: "\f174"; -@fa-var-turkish-lira: "\f195"; -@fa-var-tv: "\f26c"; -@fa-var-twitch: "\f1e8"; -@fa-var-twitter: "\f099"; -@fa-var-twitter-square: "\f081"; -@fa-var-umbrella: "\f0e9"; -@fa-var-underline: "\f0cd"; -@fa-var-undo: "\f0e2"; -@fa-var-universal-access: "\f29a"; -@fa-var-university: "\f19c"; -@fa-var-unlink: "\f127"; -@fa-var-unlock: "\f09c"; -@fa-var-unlock-alt: "\f13e"; -@fa-var-unsorted: "\f0dc"; -@fa-var-upload: "\f093"; -@fa-var-usb: "\f287"; -@fa-var-usd: "\f155"; -@fa-var-user: "\f007"; -@fa-var-user-circle: "\f2bd"; -@fa-var-user-circle-o: "\f2be"; -@fa-var-user-md: "\f0f0"; -@fa-var-user-o: "\f2c0"; -@fa-var-user-plus: "\f234"; -@fa-var-user-secret: "\f21b"; -@fa-var-user-times: "\f235"; -@fa-var-users: "\f0c0"; -@fa-var-vcard: "\f2bb"; -@fa-var-vcard-o: "\f2bc"; -@fa-var-venus: "\f221"; -@fa-var-venus-double: "\f226"; -@fa-var-venus-mars: "\f228"; -@fa-var-viacoin: "\f237"; -@fa-var-viadeo: "\f2a9"; -@fa-var-viadeo-square: "\f2aa"; -@fa-var-video-camera: "\f03d"; -@fa-var-vimeo: "\f27d"; -@fa-var-vimeo-square: "\f194"; -@fa-var-vine: "\f1ca"; -@fa-var-vk: "\f189"; -@fa-var-volume-control-phone: "\f2a0"; -@fa-var-volume-down: "\f027"; -@fa-var-volume-off: "\f026"; -@fa-var-volume-up: "\f028"; -@fa-var-warning: "\f071"; -@fa-var-wechat: "\f1d7"; -@fa-var-weibo: "\f18a"; -@fa-var-weixin: "\f1d7"; -@fa-var-whatsapp: "\f232"; -@fa-var-wheelchair: "\f193"; -@fa-var-wheelchair-alt: "\f29b"; -@fa-var-wifi: "\f1eb"; -@fa-var-wikipedia-w: "\f266"; -@fa-var-window-close: "\f2d3"; -@fa-var-window-close-o: "\f2d4"; -@fa-var-window-maximize: "\f2d0"; -@fa-var-window-minimize: "\f2d1"; -@fa-var-window-restore: "\f2d2"; -@fa-var-windows: "\f17a"; -@fa-var-won: "\f159"; -@fa-var-wordpress: "\f19a"; -@fa-var-wpbeginner: "\f297"; -@fa-var-wpexplorer: "\f2de"; -@fa-var-wpforms: "\f298"; -@fa-var-wrench: "\f0ad"; -@fa-var-xing: "\f168"; -@fa-var-xing-square: "\f169"; -@fa-var-y-combinator: "\f23b"; -@fa-var-y-combinator-square: "\f1d4"; -@fa-var-yahoo: "\f19e"; -@fa-var-yc: "\f23b"; -@fa-var-yc-square: "\f1d4"; -@fa-var-yelp: "\f1e9"; -@fa-var-yen: "\f157"; -@fa-var-yoast: "\f2b1"; -@fa-var-youtube: "\f167"; -@fa-var-youtube-play: "\f16a"; -@fa-var-youtube-square: "\f166"; - diff --git a/admin/bower_components/font-awesome/scss/_animated.scss b/admin/bower_components/font-awesome/scss/_animated.scss deleted file mode 100644 index 8a020db..0000000 --- a/admin/bower_components/font-awesome/scss/_animated.scss +++ /dev/null @@ -1,34 +0,0 @@ -// Spinning Icons -// -------------------------- - -.#{$fa-css-prefix}-spin { - -webkit-animation: fa-spin 2s infinite linear; - animation: fa-spin 2s infinite linear; -} - -.#{$fa-css-prefix}-pulse { - -webkit-animation: fa-spin 1s infinite steps(8); - animation: fa-spin 1s infinite steps(8); -} - -@-webkit-keyframes fa-spin { - 0% { - -webkit-transform: rotate(0deg); - transform: rotate(0deg); - } - 100% { - -webkit-transform: rotate(359deg); - transform: rotate(359deg); - } -} - -@keyframes fa-spin { - 0% { - -webkit-transform: rotate(0deg); - transform: rotate(0deg); - } - 100% { - -webkit-transform: rotate(359deg); - transform: rotate(359deg); - } -} diff --git a/admin/bower_components/font-awesome/scss/_bordered-pulled.scss b/admin/bower_components/font-awesome/scss/_bordered-pulled.scss deleted file mode 100644 index d4b85a0..0000000 --- a/admin/bower_components/font-awesome/scss/_bordered-pulled.scss +++ /dev/null @@ -1,25 +0,0 @@ -// Bordered & Pulled -// ------------------------- - -.#{$fa-css-prefix}-border { - padding: .2em .25em .15em; - border: solid .08em $fa-border-color; - border-radius: .1em; -} - -.#{$fa-css-prefix}-pull-left { float: left; } -.#{$fa-css-prefix}-pull-right { float: right; } - -.#{$fa-css-prefix} { - &.#{$fa-css-prefix}-pull-left { margin-right: .3em; } - &.#{$fa-css-prefix}-pull-right { margin-left: .3em; } -} - -/* Deprecated as of 4.4.0 */ -.pull-right { float: right; } -.pull-left { float: left; } - -.#{$fa-css-prefix} { - &.pull-left { margin-right: .3em; } - &.pull-right { margin-left: .3em; } -} diff --git a/admin/bower_components/font-awesome/scss/_core.scss b/admin/bower_components/font-awesome/scss/_core.scss deleted file mode 100644 index 7425ef8..0000000 --- a/admin/bower_components/font-awesome/scss/_core.scss +++ /dev/null @@ -1,12 +0,0 @@ -// Base Class Definition -// ------------------------- - -.#{$fa-css-prefix} { - display: inline-block; - font: normal normal normal #{$fa-font-size-base}/#{$fa-line-height-base} FontAwesome; // shortening font declaration - font-size: inherit; // can't have font-size inherit on line above, so need to override - text-rendering: auto; // optimizelegibility throws things off #1094 - -webkit-font-smoothing: antialiased; - -moz-osx-font-smoothing: grayscale; - -} diff --git a/admin/bower_components/font-awesome/scss/_fixed-width.scss b/admin/bower_components/font-awesome/scss/_fixed-width.scss deleted file mode 100644 index b221c98..0000000 --- a/admin/bower_components/font-awesome/scss/_fixed-width.scss +++ /dev/null @@ -1,6 +0,0 @@ -// Fixed Width Icons -// ------------------------- -.#{$fa-css-prefix}-fw { - width: (18em / 14); - text-align: center; -} diff --git a/admin/bower_components/font-awesome/scss/_icons.scss b/admin/bower_components/font-awesome/scss/_icons.scss deleted file mode 100644 index e63e702..0000000 --- a/admin/bower_components/font-awesome/scss/_icons.scss +++ /dev/null @@ -1,789 +0,0 @@ -/* Font Awesome uses the Unicode Private Use Area (PUA) to ensure screen - readers do not read off random characters that represent icons */ - -.#{$fa-css-prefix}-glass:before { content: $fa-var-glass; } -.#{$fa-css-prefix}-music:before { content: $fa-var-music; } -.#{$fa-css-prefix}-search:before { content: $fa-var-search; } -.#{$fa-css-prefix}-envelope-o:before { content: $fa-var-envelope-o; } -.#{$fa-css-prefix}-heart:before { content: $fa-var-heart; } -.#{$fa-css-prefix}-star:before { content: $fa-var-star; } -.#{$fa-css-prefix}-star-o:before { content: $fa-var-star-o; } -.#{$fa-css-prefix}-user:before { content: $fa-var-user; } -.#{$fa-css-prefix}-film:before { content: $fa-var-film; } -.#{$fa-css-prefix}-th-large:before { content: $fa-var-th-large; } -.#{$fa-css-prefix}-th:before { content: $fa-var-th; } -.#{$fa-css-prefix}-th-list:before { content: $fa-var-th-list; } -.#{$fa-css-prefix}-check:before { content: $fa-var-check; } -.#{$fa-css-prefix}-remove:before, -.#{$fa-css-prefix}-close:before, -.#{$fa-css-prefix}-times:before { content: $fa-var-times; } -.#{$fa-css-prefix}-search-plus:before { content: $fa-var-search-plus; } -.#{$fa-css-prefix}-search-minus:before { content: $fa-var-search-minus; } -.#{$fa-css-prefix}-power-off:before { content: $fa-var-power-off; } -.#{$fa-css-prefix}-signal:before { content: $fa-var-signal; } -.#{$fa-css-prefix}-gear:before, -.#{$fa-css-prefix}-cog:before { content: $fa-var-cog; } -.#{$fa-css-prefix}-trash-o:before { content: $fa-var-trash-o; } -.#{$fa-css-prefix}-home:before { content: $fa-var-home; } -.#{$fa-css-prefix}-file-o:before { content: $fa-var-file-o; } -.#{$fa-css-prefix}-clock-o:before { content: $fa-var-clock-o; } -.#{$fa-css-prefix}-road:before { content: $fa-var-road; } -.#{$fa-css-prefix}-download:before { content: $fa-var-download; } -.#{$fa-css-prefix}-arrow-circle-o-down:before { content: $fa-var-arrow-circle-o-down; } -.#{$fa-css-prefix}-arrow-circle-o-up:before { content: $fa-var-arrow-circle-o-up; } -.#{$fa-css-prefix}-inbox:before { content: $fa-var-inbox; } -.#{$fa-css-prefix}-play-circle-o:before { content: $fa-var-play-circle-o; } -.#{$fa-css-prefix}-rotate-right:before, -.#{$fa-css-prefix}-repeat:before { content: $fa-var-repeat; } -.#{$fa-css-prefix}-refresh:before { content: $fa-var-refresh; } -.#{$fa-css-prefix}-list-alt:before { content: $fa-var-list-alt; } -.#{$fa-css-prefix}-lock:before { content: $fa-var-lock; } -.#{$fa-css-prefix}-flag:before { content: $fa-var-flag; } -.#{$fa-css-prefix}-headphones:before { content: $fa-var-headphones; } -.#{$fa-css-prefix}-volume-off:before { content: $fa-var-volume-off; } -.#{$fa-css-prefix}-volume-down:before { content: $fa-var-volume-down; } -.#{$fa-css-prefix}-volume-up:before { content: $fa-var-volume-up; } -.#{$fa-css-prefix}-qrcode:before { content: $fa-var-qrcode; } -.#{$fa-css-prefix}-barcode:before { content: $fa-var-barcode; } -.#{$fa-css-prefix}-tag:before { content: $fa-var-tag; } -.#{$fa-css-prefix}-tags:before { content: $fa-var-tags; } -.#{$fa-css-prefix}-book:before { content: $fa-var-book; } -.#{$fa-css-prefix}-bookmark:before { content: $fa-var-bookmark; } -.#{$fa-css-prefix}-print:before { content: $fa-var-print; } -.#{$fa-css-prefix}-camera:before { content: $fa-var-camera; } -.#{$fa-css-prefix}-font:before { content: $fa-var-font; } -.#{$fa-css-prefix}-bold:before { content: $fa-var-bold; } -.#{$fa-css-prefix}-italic:before { content: $fa-var-italic; } -.#{$fa-css-prefix}-text-height:before { content: $fa-var-text-height; } -.#{$fa-css-prefix}-text-width:before { content: $fa-var-text-width; } -.#{$fa-css-prefix}-align-left:before { content: $fa-var-align-left; } -.#{$fa-css-prefix}-align-center:before { content: $fa-var-align-center; } -.#{$fa-css-prefix}-align-right:before { content: $fa-var-align-right; } -.#{$fa-css-prefix}-align-justify:before { content: $fa-var-align-justify; } -.#{$fa-css-prefix}-list:before { content: $fa-var-list; } -.#{$fa-css-prefix}-dedent:before, -.#{$fa-css-prefix}-outdent:before { content: $fa-var-outdent; } -.#{$fa-css-prefix}-indent:before { content: $fa-var-indent; } -.#{$fa-css-prefix}-video-camera:before { content: $fa-var-video-camera; } -.#{$fa-css-prefix}-photo:before, -.#{$fa-css-prefix}-image:before, -.#{$fa-css-prefix}-picture-o:before { content: $fa-var-picture-o; } -.#{$fa-css-prefix}-pencil:before { content: $fa-var-pencil; } -.#{$fa-css-prefix}-map-marker:before { content: $fa-var-map-marker; } -.#{$fa-css-prefix}-adjust:before { content: $fa-var-adjust; } -.#{$fa-css-prefix}-tint:before { content: $fa-var-tint; } -.#{$fa-css-prefix}-edit:before, -.#{$fa-css-prefix}-pencil-square-o:before { content: $fa-var-pencil-square-o; } -.#{$fa-css-prefix}-share-square-o:before { content: $fa-var-share-square-o; } -.#{$fa-css-prefix}-check-square-o:before { content: $fa-var-check-square-o; } -.#{$fa-css-prefix}-arrows:before { content: $fa-var-arrows; } -.#{$fa-css-prefix}-step-backward:before { content: $fa-var-step-backward; } -.#{$fa-css-prefix}-fast-backward:before { content: $fa-var-fast-backward; } -.#{$fa-css-prefix}-backward:before { content: $fa-var-backward; } -.#{$fa-css-prefix}-play:before { content: $fa-var-play; } -.#{$fa-css-prefix}-pause:before { content: $fa-var-pause; } -.#{$fa-css-prefix}-stop:before { content: $fa-var-stop; } -.#{$fa-css-prefix}-forward:before { content: $fa-var-forward; } -.#{$fa-css-prefix}-fast-forward:before { content: $fa-var-fast-forward; } -.#{$fa-css-prefix}-step-forward:before { content: $fa-var-step-forward; } -.#{$fa-css-prefix}-eject:before { content: $fa-var-eject; } -.#{$fa-css-prefix}-chevron-left:before { content: $fa-var-chevron-left; } -.#{$fa-css-prefix}-chevron-right:before { content: $fa-var-chevron-right; } -.#{$fa-css-prefix}-plus-circle:before { content: $fa-var-plus-circle; } -.#{$fa-css-prefix}-minus-circle:before { content: $fa-var-minus-circle; } -.#{$fa-css-prefix}-times-circle:before { content: $fa-var-times-circle; } -.#{$fa-css-prefix}-check-circle:before { content: $fa-var-check-circle; } -.#{$fa-css-prefix}-question-circle:before { content: $fa-var-question-circle; } -.#{$fa-css-prefix}-info-circle:before { content: $fa-var-info-circle; } -.#{$fa-css-prefix}-crosshairs:before { content: $fa-var-crosshairs; } -.#{$fa-css-prefix}-times-circle-o:before { content: $fa-var-times-circle-o; } -.#{$fa-css-prefix}-check-circle-o:before { content: $fa-var-check-circle-o; } -.#{$fa-css-prefix}-ban:before { content: $fa-var-ban; } -.#{$fa-css-prefix}-arrow-left:before { content: $fa-var-arrow-left; } -.#{$fa-css-prefix}-arrow-right:before { content: $fa-var-arrow-right; } -.#{$fa-css-prefix}-arrow-up:before { content: $fa-var-arrow-up; } -.#{$fa-css-prefix}-arrow-down:before { content: $fa-var-arrow-down; } -.#{$fa-css-prefix}-mail-forward:before, -.#{$fa-css-prefix}-share:before { content: $fa-var-share; } -.#{$fa-css-prefix}-expand:before { content: $fa-var-expand; } -.#{$fa-css-prefix}-compress:before { content: $fa-var-compress; } -.#{$fa-css-prefix}-plus:before { content: $fa-var-plus; } -.#{$fa-css-prefix}-minus:before { content: $fa-var-minus; } -.#{$fa-css-prefix}-asterisk:before { content: $fa-var-asterisk; } -.#{$fa-css-prefix}-exclamation-circle:before { content: $fa-var-exclamation-circle; } -.#{$fa-css-prefix}-gift:before { content: $fa-var-gift; } -.#{$fa-css-prefix}-leaf:before { content: $fa-var-leaf; } -.#{$fa-css-prefix}-fire:before { content: $fa-var-fire; } -.#{$fa-css-prefix}-eye:before { content: $fa-var-eye; } -.#{$fa-css-prefix}-eye-slash:before { content: $fa-var-eye-slash; } -.#{$fa-css-prefix}-warning:before, -.#{$fa-css-prefix}-exclamation-triangle:before { content: $fa-var-exclamation-triangle; } -.#{$fa-css-prefix}-plane:before { content: $fa-var-plane; } -.#{$fa-css-prefix}-calendar:before { content: $fa-var-calendar; } -.#{$fa-css-prefix}-random:before { content: $fa-var-random; } -.#{$fa-css-prefix}-comment:before { content: $fa-var-comment; } -.#{$fa-css-prefix}-magnet:before { content: $fa-var-magnet; } -.#{$fa-css-prefix}-chevron-up:before { content: $fa-var-chevron-up; } -.#{$fa-css-prefix}-chevron-down:before { content: $fa-var-chevron-down; } -.#{$fa-css-prefix}-retweet:before { content: $fa-var-retweet; } -.#{$fa-css-prefix}-shopping-cart:before { content: $fa-var-shopping-cart; } -.#{$fa-css-prefix}-folder:before { content: $fa-var-folder; } -.#{$fa-css-prefix}-folder-open:before { content: $fa-var-folder-open; } -.#{$fa-css-prefix}-arrows-v:before { content: $fa-var-arrows-v; } -.#{$fa-css-prefix}-arrows-h:before { content: $fa-var-arrows-h; } -.#{$fa-css-prefix}-bar-chart-o:before, -.#{$fa-css-prefix}-bar-chart:before { content: $fa-var-bar-chart; } -.#{$fa-css-prefix}-twitter-square:before { content: $fa-var-twitter-square; } -.#{$fa-css-prefix}-facebook-square:before { content: $fa-var-facebook-square; } -.#{$fa-css-prefix}-camera-retro:before { content: $fa-var-camera-retro; } -.#{$fa-css-prefix}-key:before { content: $fa-var-key; } -.#{$fa-css-prefix}-gears:before, -.#{$fa-css-prefix}-cogs:before { content: $fa-var-cogs; } -.#{$fa-css-prefix}-comments:before { content: $fa-var-comments; } -.#{$fa-css-prefix}-thumbs-o-up:before { content: $fa-var-thumbs-o-up; } -.#{$fa-css-prefix}-thumbs-o-down:before { content: $fa-var-thumbs-o-down; } -.#{$fa-css-prefix}-star-half:before { content: $fa-var-star-half; } -.#{$fa-css-prefix}-heart-o:before { content: $fa-var-heart-o; } -.#{$fa-css-prefix}-sign-out:before { content: $fa-var-sign-out; } -.#{$fa-css-prefix}-linkedin-square:before { content: $fa-var-linkedin-square; } -.#{$fa-css-prefix}-thumb-tack:before { content: $fa-var-thumb-tack; } -.#{$fa-css-prefix}-external-link:before { content: $fa-var-external-link; } -.#{$fa-css-prefix}-sign-in:before { content: $fa-var-sign-in; } -.#{$fa-css-prefix}-trophy:before { content: $fa-var-trophy; } -.#{$fa-css-prefix}-github-square:before { content: $fa-var-github-square; } -.#{$fa-css-prefix}-upload:before { content: $fa-var-upload; } -.#{$fa-css-prefix}-lemon-o:before { content: $fa-var-lemon-o; } -.#{$fa-css-prefix}-phone:before { content: $fa-var-phone; } -.#{$fa-css-prefix}-square-o:before { content: $fa-var-square-o; } -.#{$fa-css-prefix}-bookmark-o:before { content: $fa-var-bookmark-o; } -.#{$fa-css-prefix}-phone-square:before { content: $fa-var-phone-square; } -.#{$fa-css-prefix}-twitter:before { content: $fa-var-twitter; } -.#{$fa-css-prefix}-facebook-f:before, -.#{$fa-css-prefix}-facebook:before { content: $fa-var-facebook; } -.#{$fa-css-prefix}-github:before { content: $fa-var-github; } -.#{$fa-css-prefix}-unlock:before { content: $fa-var-unlock; } -.#{$fa-css-prefix}-credit-card:before { content: $fa-var-credit-card; } -.#{$fa-css-prefix}-feed:before, -.#{$fa-css-prefix}-rss:before { content: $fa-var-rss; } -.#{$fa-css-prefix}-hdd-o:before { content: $fa-var-hdd-o; } -.#{$fa-css-prefix}-bullhorn:before { content: $fa-var-bullhorn; } -.#{$fa-css-prefix}-bell:before { content: $fa-var-bell; } -.#{$fa-css-prefix}-certificate:before { content: $fa-var-certificate; } -.#{$fa-css-prefix}-hand-o-right:before { content: $fa-var-hand-o-right; } -.#{$fa-css-prefix}-hand-o-left:before { content: $fa-var-hand-o-left; } -.#{$fa-css-prefix}-hand-o-up:before { content: $fa-var-hand-o-up; } -.#{$fa-css-prefix}-hand-o-down:before { content: $fa-var-hand-o-down; } -.#{$fa-css-prefix}-arrow-circle-left:before { content: $fa-var-arrow-circle-left; } -.#{$fa-css-prefix}-arrow-circle-right:before { content: $fa-var-arrow-circle-right; } -.#{$fa-css-prefix}-arrow-circle-up:before { content: $fa-var-arrow-circle-up; } -.#{$fa-css-prefix}-arrow-circle-down:before { content: $fa-var-arrow-circle-down; } -.#{$fa-css-prefix}-globe:before { content: $fa-var-globe; } -.#{$fa-css-prefix}-wrench:before { content: $fa-var-wrench; } -.#{$fa-css-prefix}-tasks:before { content: $fa-var-tasks; } -.#{$fa-css-prefix}-filter:before { content: $fa-var-filter; } -.#{$fa-css-prefix}-briefcase:before { content: $fa-var-briefcase; } -.#{$fa-css-prefix}-arrows-alt:before { content: $fa-var-arrows-alt; } -.#{$fa-css-prefix}-group:before, -.#{$fa-css-prefix}-users:before { content: $fa-var-users; } -.#{$fa-css-prefix}-chain:before, -.#{$fa-css-prefix}-link:before { content: $fa-var-link; } -.#{$fa-css-prefix}-cloud:before { content: $fa-var-cloud; } -.#{$fa-css-prefix}-flask:before { content: $fa-var-flask; } -.#{$fa-css-prefix}-cut:before, -.#{$fa-css-prefix}-scissors:before { content: $fa-var-scissors; } -.#{$fa-css-prefix}-copy:before, -.#{$fa-css-prefix}-files-o:before { content: $fa-var-files-o; } -.#{$fa-css-prefix}-paperclip:before { content: $fa-var-paperclip; } -.#{$fa-css-prefix}-save:before, -.#{$fa-css-prefix}-floppy-o:before { content: $fa-var-floppy-o; } -.#{$fa-css-prefix}-square:before { content: $fa-var-square; } -.#{$fa-css-prefix}-navicon:before, -.#{$fa-css-prefix}-reorder:before, -.#{$fa-css-prefix}-bars:before { content: $fa-var-bars; } -.#{$fa-css-prefix}-list-ul:before { content: $fa-var-list-ul; } -.#{$fa-css-prefix}-list-ol:before { content: $fa-var-list-ol; } -.#{$fa-css-prefix}-strikethrough:before { content: $fa-var-strikethrough; } -.#{$fa-css-prefix}-underline:before { content: $fa-var-underline; } -.#{$fa-css-prefix}-table:before { content: $fa-var-table; } -.#{$fa-css-prefix}-magic:before { content: $fa-var-magic; } -.#{$fa-css-prefix}-truck:before { content: $fa-var-truck; } -.#{$fa-css-prefix}-pinterest:before { content: $fa-var-pinterest; } -.#{$fa-css-prefix}-pinterest-square:before { content: $fa-var-pinterest-square; } -.#{$fa-css-prefix}-google-plus-square:before { content: $fa-var-google-plus-square; } -.#{$fa-css-prefix}-google-plus:before { content: $fa-var-google-plus; } -.#{$fa-css-prefix}-money:before { content: $fa-var-money; } -.#{$fa-css-prefix}-caret-down:before { content: $fa-var-caret-down; } -.#{$fa-css-prefix}-caret-up:before { content: $fa-var-caret-up; } -.#{$fa-css-prefix}-caret-left:before { content: $fa-var-caret-left; } -.#{$fa-css-prefix}-caret-right:before { content: $fa-var-caret-right; } -.#{$fa-css-prefix}-columns:before { content: $fa-var-columns; } -.#{$fa-css-prefix}-unsorted:before, -.#{$fa-css-prefix}-sort:before { content: $fa-var-sort; } -.#{$fa-css-prefix}-sort-down:before, -.#{$fa-css-prefix}-sort-desc:before { content: $fa-var-sort-desc; } -.#{$fa-css-prefix}-sort-up:before, -.#{$fa-css-prefix}-sort-asc:before { content: $fa-var-sort-asc; } -.#{$fa-css-prefix}-envelope:before { content: $fa-var-envelope; } -.#{$fa-css-prefix}-linkedin:before { content: $fa-var-linkedin; } -.#{$fa-css-prefix}-rotate-left:before, -.#{$fa-css-prefix}-undo:before { content: $fa-var-undo; } -.#{$fa-css-prefix}-legal:before, -.#{$fa-css-prefix}-gavel:before { content: $fa-var-gavel; } -.#{$fa-css-prefix}-dashboard:before, -.#{$fa-css-prefix}-tachometer:before { content: $fa-var-tachometer; } -.#{$fa-css-prefix}-comment-o:before { content: $fa-var-comment-o; } -.#{$fa-css-prefix}-comments-o:before { content: $fa-var-comments-o; } -.#{$fa-css-prefix}-flash:before, -.#{$fa-css-prefix}-bolt:before { content: $fa-var-bolt; } -.#{$fa-css-prefix}-sitemap:before { content: $fa-var-sitemap; } -.#{$fa-css-prefix}-umbrella:before { content: $fa-var-umbrella; } -.#{$fa-css-prefix}-paste:before, -.#{$fa-css-prefix}-clipboard:before { content: $fa-var-clipboard; } -.#{$fa-css-prefix}-lightbulb-o:before { content: $fa-var-lightbulb-o; } -.#{$fa-css-prefix}-exchange:before { content: $fa-var-exchange; } -.#{$fa-css-prefix}-cloud-download:before { content: $fa-var-cloud-download; } -.#{$fa-css-prefix}-cloud-upload:before { content: $fa-var-cloud-upload; } -.#{$fa-css-prefix}-user-md:before { content: $fa-var-user-md; } -.#{$fa-css-prefix}-stethoscope:before { content: $fa-var-stethoscope; } -.#{$fa-css-prefix}-suitcase:before { content: $fa-var-suitcase; } -.#{$fa-css-prefix}-bell-o:before { content: $fa-var-bell-o; } -.#{$fa-css-prefix}-coffee:before { content: $fa-var-coffee; } -.#{$fa-css-prefix}-cutlery:before { content: $fa-var-cutlery; } -.#{$fa-css-prefix}-file-text-o:before { content: $fa-var-file-text-o; } -.#{$fa-css-prefix}-building-o:before { content: $fa-var-building-o; } -.#{$fa-css-prefix}-hospital-o:before { content: $fa-var-hospital-o; } -.#{$fa-css-prefix}-ambulance:before { content: $fa-var-ambulance; } -.#{$fa-css-prefix}-medkit:before { content: $fa-var-medkit; } -.#{$fa-css-prefix}-fighter-jet:before { content: $fa-var-fighter-jet; } -.#{$fa-css-prefix}-beer:before { content: $fa-var-beer; } -.#{$fa-css-prefix}-h-square:before { content: $fa-var-h-square; } -.#{$fa-css-prefix}-plus-square:before { content: $fa-var-plus-square; } -.#{$fa-css-prefix}-angle-double-left:before { content: $fa-var-angle-double-left; } -.#{$fa-css-prefix}-angle-double-right:before { content: $fa-var-angle-double-right; } -.#{$fa-css-prefix}-angle-double-up:before { content: $fa-var-angle-double-up; } -.#{$fa-css-prefix}-angle-double-down:before { content: $fa-var-angle-double-down; } -.#{$fa-css-prefix}-angle-left:before { content: $fa-var-angle-left; } -.#{$fa-css-prefix}-angle-right:before { content: $fa-var-angle-right; } -.#{$fa-css-prefix}-angle-up:before { content: $fa-var-angle-up; } -.#{$fa-css-prefix}-angle-down:before { content: $fa-var-angle-down; } -.#{$fa-css-prefix}-desktop:before { content: $fa-var-desktop; } -.#{$fa-css-prefix}-laptop:before { content: $fa-var-laptop; } -.#{$fa-css-prefix}-tablet:before { content: $fa-var-tablet; } -.#{$fa-css-prefix}-mobile-phone:before, -.#{$fa-css-prefix}-mobile:before { content: $fa-var-mobile; } -.#{$fa-css-prefix}-circle-o:before { content: $fa-var-circle-o; } -.#{$fa-css-prefix}-quote-left:before { content: $fa-var-quote-left; } -.#{$fa-css-prefix}-quote-right:before { content: $fa-var-quote-right; } -.#{$fa-css-prefix}-spinner:before { content: $fa-var-spinner; } -.#{$fa-css-prefix}-circle:before { content: $fa-var-circle; } -.#{$fa-css-prefix}-mail-reply:before, -.#{$fa-css-prefix}-reply:before { content: $fa-var-reply; } -.#{$fa-css-prefix}-github-alt:before { content: $fa-var-github-alt; } -.#{$fa-css-prefix}-folder-o:before { content: $fa-var-folder-o; } -.#{$fa-css-prefix}-folder-open-o:before { content: $fa-var-folder-open-o; } -.#{$fa-css-prefix}-smile-o:before { content: $fa-var-smile-o; } -.#{$fa-css-prefix}-frown-o:before { content: $fa-var-frown-o; } -.#{$fa-css-prefix}-meh-o:before { content: $fa-var-meh-o; } -.#{$fa-css-prefix}-gamepad:before { content: $fa-var-gamepad; } -.#{$fa-css-prefix}-keyboard-o:before { content: $fa-var-keyboard-o; } -.#{$fa-css-prefix}-flag-o:before { content: $fa-var-flag-o; } -.#{$fa-css-prefix}-flag-checkered:before { content: $fa-var-flag-checkered; } -.#{$fa-css-prefix}-terminal:before { content: $fa-var-terminal; } -.#{$fa-css-prefix}-code:before { content: $fa-var-code; } -.#{$fa-css-prefix}-mail-reply-all:before, -.#{$fa-css-prefix}-reply-all:before { content: $fa-var-reply-all; } -.#{$fa-css-prefix}-star-half-empty:before, -.#{$fa-css-prefix}-star-half-full:before, -.#{$fa-css-prefix}-star-half-o:before { content: $fa-var-star-half-o; } -.#{$fa-css-prefix}-location-arrow:before { content: $fa-var-location-arrow; } -.#{$fa-css-prefix}-crop:before { content: $fa-var-crop; } -.#{$fa-css-prefix}-code-fork:before { content: $fa-var-code-fork; } -.#{$fa-css-prefix}-unlink:before, -.#{$fa-css-prefix}-chain-broken:before { content: $fa-var-chain-broken; } -.#{$fa-css-prefix}-question:before { content: $fa-var-question; } -.#{$fa-css-prefix}-info:before { content: $fa-var-info; } -.#{$fa-css-prefix}-exclamation:before { content: $fa-var-exclamation; } -.#{$fa-css-prefix}-superscript:before { content: $fa-var-superscript; } -.#{$fa-css-prefix}-subscript:before { content: $fa-var-subscript; } -.#{$fa-css-prefix}-eraser:before { content: $fa-var-eraser; } -.#{$fa-css-prefix}-puzzle-piece:before { content: $fa-var-puzzle-piece; } -.#{$fa-css-prefix}-microphone:before { content: $fa-var-microphone; } -.#{$fa-css-prefix}-microphone-slash:before { content: $fa-var-microphone-slash; } -.#{$fa-css-prefix}-shield:before { content: $fa-var-shield; } -.#{$fa-css-prefix}-calendar-o:before { content: $fa-var-calendar-o; } -.#{$fa-css-prefix}-fire-extinguisher:before { content: $fa-var-fire-extinguisher; } -.#{$fa-css-prefix}-rocket:before { content: $fa-var-rocket; } -.#{$fa-css-prefix}-maxcdn:before { content: $fa-var-maxcdn; } -.#{$fa-css-prefix}-chevron-circle-left:before { content: $fa-var-chevron-circle-left; } -.#{$fa-css-prefix}-chevron-circle-right:before { content: $fa-var-chevron-circle-right; } -.#{$fa-css-prefix}-chevron-circle-up:before { content: $fa-var-chevron-circle-up; } -.#{$fa-css-prefix}-chevron-circle-down:before { content: $fa-var-chevron-circle-down; } -.#{$fa-css-prefix}-html5:before { content: $fa-var-html5; } -.#{$fa-css-prefix}-css3:before { content: $fa-var-css3; } -.#{$fa-css-prefix}-anchor:before { content: $fa-var-anchor; } -.#{$fa-css-prefix}-unlock-alt:before { content: $fa-var-unlock-alt; } -.#{$fa-css-prefix}-bullseye:before { content: $fa-var-bullseye; } -.#{$fa-css-prefix}-ellipsis-h:before { content: $fa-var-ellipsis-h; } -.#{$fa-css-prefix}-ellipsis-v:before { content: $fa-var-ellipsis-v; } -.#{$fa-css-prefix}-rss-square:before { content: $fa-var-rss-square; } -.#{$fa-css-prefix}-play-circle:before { content: $fa-var-play-circle; } -.#{$fa-css-prefix}-ticket:before { content: $fa-var-ticket; } -.#{$fa-css-prefix}-minus-square:before { content: $fa-var-minus-square; } -.#{$fa-css-prefix}-minus-square-o:before { content: $fa-var-minus-square-o; } -.#{$fa-css-prefix}-level-up:before { content: $fa-var-level-up; } -.#{$fa-css-prefix}-level-down:before { content: $fa-var-level-down; } -.#{$fa-css-prefix}-check-square:before { content: $fa-var-check-square; } -.#{$fa-css-prefix}-pencil-square:before { content: $fa-var-pencil-square; } -.#{$fa-css-prefix}-external-link-square:before { content: $fa-var-external-link-square; } -.#{$fa-css-prefix}-share-square:before { content: $fa-var-share-square; } -.#{$fa-css-prefix}-compass:before { content: $fa-var-compass; } -.#{$fa-css-prefix}-toggle-down:before, -.#{$fa-css-prefix}-caret-square-o-down:before { content: $fa-var-caret-square-o-down; } -.#{$fa-css-prefix}-toggle-up:before, -.#{$fa-css-prefix}-caret-square-o-up:before { content: $fa-var-caret-square-o-up; } -.#{$fa-css-prefix}-toggle-right:before, -.#{$fa-css-prefix}-caret-square-o-right:before { content: $fa-var-caret-square-o-right; } -.#{$fa-css-prefix}-euro:before, -.#{$fa-css-prefix}-eur:before { content: $fa-var-eur; } -.#{$fa-css-prefix}-gbp:before { content: $fa-var-gbp; } -.#{$fa-css-prefix}-dollar:before, -.#{$fa-css-prefix}-usd:before { content: $fa-var-usd; } -.#{$fa-css-prefix}-rupee:before, -.#{$fa-css-prefix}-inr:before { content: $fa-var-inr; } -.#{$fa-css-prefix}-cny:before, -.#{$fa-css-prefix}-rmb:before, -.#{$fa-css-prefix}-yen:before, -.#{$fa-css-prefix}-jpy:before { content: $fa-var-jpy; } -.#{$fa-css-prefix}-ruble:before, -.#{$fa-css-prefix}-rouble:before, -.#{$fa-css-prefix}-rub:before { content: $fa-var-rub; } -.#{$fa-css-prefix}-won:before, -.#{$fa-css-prefix}-krw:before { content: $fa-var-krw; } -.#{$fa-css-prefix}-bitcoin:before, -.#{$fa-css-prefix}-btc:before { content: $fa-var-btc; } -.#{$fa-css-prefix}-file:before { content: $fa-var-file; } -.#{$fa-css-prefix}-file-text:before { content: $fa-var-file-text; } -.#{$fa-css-prefix}-sort-alpha-asc:before { content: $fa-var-sort-alpha-asc; } -.#{$fa-css-prefix}-sort-alpha-desc:before { content: $fa-var-sort-alpha-desc; } -.#{$fa-css-prefix}-sort-amount-asc:before { content: $fa-var-sort-amount-asc; } -.#{$fa-css-prefix}-sort-amount-desc:before { content: $fa-var-sort-amount-desc; } -.#{$fa-css-prefix}-sort-numeric-asc:before { content: $fa-var-sort-numeric-asc; } -.#{$fa-css-prefix}-sort-numeric-desc:before { content: $fa-var-sort-numeric-desc; } -.#{$fa-css-prefix}-thumbs-up:before { content: $fa-var-thumbs-up; } -.#{$fa-css-prefix}-thumbs-down:before { content: $fa-var-thumbs-down; } -.#{$fa-css-prefix}-youtube-square:before { content: $fa-var-youtube-square; } -.#{$fa-css-prefix}-youtube:before { content: $fa-var-youtube; } -.#{$fa-css-prefix}-xing:before { content: $fa-var-xing; } -.#{$fa-css-prefix}-xing-square:before { content: $fa-var-xing-square; } -.#{$fa-css-prefix}-youtube-play:before { content: $fa-var-youtube-play; } -.#{$fa-css-prefix}-dropbox:before { content: $fa-var-dropbox; } -.#{$fa-css-prefix}-stack-overflow:before { content: $fa-var-stack-overflow; } -.#{$fa-css-prefix}-instagram:before { content: $fa-var-instagram; } -.#{$fa-css-prefix}-flickr:before { content: $fa-var-flickr; } -.#{$fa-css-prefix}-adn:before { content: $fa-var-adn; } -.#{$fa-css-prefix}-bitbucket:before { content: $fa-var-bitbucket; } -.#{$fa-css-prefix}-bitbucket-square:before { content: $fa-var-bitbucket-square; } -.#{$fa-css-prefix}-tumblr:before { content: $fa-var-tumblr; } -.#{$fa-css-prefix}-tumblr-square:before { content: $fa-var-tumblr-square; } -.#{$fa-css-prefix}-long-arrow-down:before { content: $fa-var-long-arrow-down; } -.#{$fa-css-prefix}-long-arrow-up:before { content: $fa-var-long-arrow-up; } -.#{$fa-css-prefix}-long-arrow-left:before { content: $fa-var-long-arrow-left; } -.#{$fa-css-prefix}-long-arrow-right:before { content: $fa-var-long-arrow-right; } -.#{$fa-css-prefix}-apple:before { content: $fa-var-apple; } -.#{$fa-css-prefix}-windows:before { content: $fa-var-windows; } -.#{$fa-css-prefix}-android:before { content: $fa-var-android; } -.#{$fa-css-prefix}-linux:before { content: $fa-var-linux; } -.#{$fa-css-prefix}-dribbble:before { content: $fa-var-dribbble; } -.#{$fa-css-prefix}-skype:before { content: $fa-var-skype; } -.#{$fa-css-prefix}-foursquare:before { content: $fa-var-foursquare; } -.#{$fa-css-prefix}-trello:before { content: $fa-var-trello; } -.#{$fa-css-prefix}-female:before { content: $fa-var-female; } -.#{$fa-css-prefix}-male:before { content: $fa-var-male; } -.#{$fa-css-prefix}-gittip:before, -.#{$fa-css-prefix}-gratipay:before { content: $fa-var-gratipay; } -.#{$fa-css-prefix}-sun-o:before { content: $fa-var-sun-o; } -.#{$fa-css-prefix}-moon-o:before { content: $fa-var-moon-o; } -.#{$fa-css-prefix}-archive:before { content: $fa-var-archive; } -.#{$fa-css-prefix}-bug:before { content: $fa-var-bug; } -.#{$fa-css-prefix}-vk:before { content: $fa-var-vk; } -.#{$fa-css-prefix}-weibo:before { content: $fa-var-weibo; } -.#{$fa-css-prefix}-renren:before { content: $fa-var-renren; } -.#{$fa-css-prefix}-pagelines:before { content: $fa-var-pagelines; } -.#{$fa-css-prefix}-stack-exchange:before { content: $fa-var-stack-exchange; } -.#{$fa-css-prefix}-arrow-circle-o-right:before { content: $fa-var-arrow-circle-o-right; } -.#{$fa-css-prefix}-arrow-circle-o-left:before { content: $fa-var-arrow-circle-o-left; } -.#{$fa-css-prefix}-toggle-left:before, -.#{$fa-css-prefix}-caret-square-o-left:before { content: $fa-var-caret-square-o-left; } -.#{$fa-css-prefix}-dot-circle-o:before { content: $fa-var-dot-circle-o; } -.#{$fa-css-prefix}-wheelchair:before { content: $fa-var-wheelchair; } -.#{$fa-css-prefix}-vimeo-square:before { content: $fa-var-vimeo-square; } -.#{$fa-css-prefix}-turkish-lira:before, -.#{$fa-css-prefix}-try:before { content: $fa-var-try; } -.#{$fa-css-prefix}-plus-square-o:before { content: $fa-var-plus-square-o; } -.#{$fa-css-prefix}-space-shuttle:before { content: $fa-var-space-shuttle; } -.#{$fa-css-prefix}-slack:before { content: $fa-var-slack; } -.#{$fa-css-prefix}-envelope-square:before { content: $fa-var-envelope-square; } -.#{$fa-css-prefix}-wordpress:before { content: $fa-var-wordpress; } -.#{$fa-css-prefix}-openid:before { content: $fa-var-openid; } -.#{$fa-css-prefix}-institution:before, -.#{$fa-css-prefix}-bank:before, -.#{$fa-css-prefix}-university:before { content: $fa-var-university; } -.#{$fa-css-prefix}-mortar-board:before, -.#{$fa-css-prefix}-graduation-cap:before { content: $fa-var-graduation-cap; } -.#{$fa-css-prefix}-yahoo:before { content: $fa-var-yahoo; } -.#{$fa-css-prefix}-google:before { content: $fa-var-google; } -.#{$fa-css-prefix}-reddit:before { content: $fa-var-reddit; } -.#{$fa-css-prefix}-reddit-square:before { content: $fa-var-reddit-square; } -.#{$fa-css-prefix}-stumbleupon-circle:before { content: $fa-var-stumbleupon-circle; } -.#{$fa-css-prefix}-stumbleupon:before { content: $fa-var-stumbleupon; } -.#{$fa-css-prefix}-delicious:before { content: $fa-var-delicious; } -.#{$fa-css-prefix}-digg:before { content: $fa-var-digg; } -.#{$fa-css-prefix}-pied-piper-pp:before { content: $fa-var-pied-piper-pp; } -.#{$fa-css-prefix}-pied-piper-alt:before { content: $fa-var-pied-piper-alt; } -.#{$fa-css-prefix}-drupal:before { content: $fa-var-drupal; } -.#{$fa-css-prefix}-joomla:before { content: $fa-var-joomla; } -.#{$fa-css-prefix}-language:before { content: $fa-var-language; } -.#{$fa-css-prefix}-fax:before { content: $fa-var-fax; } -.#{$fa-css-prefix}-building:before { content: $fa-var-building; } -.#{$fa-css-prefix}-child:before { content: $fa-var-child; } -.#{$fa-css-prefix}-paw:before { content: $fa-var-paw; } -.#{$fa-css-prefix}-spoon:before { content: $fa-var-spoon; } -.#{$fa-css-prefix}-cube:before { content: $fa-var-cube; } -.#{$fa-css-prefix}-cubes:before { content: $fa-var-cubes; } -.#{$fa-css-prefix}-behance:before { content: $fa-var-behance; } -.#{$fa-css-prefix}-behance-square:before { content: $fa-var-behance-square; } -.#{$fa-css-prefix}-steam:before { content: $fa-var-steam; } -.#{$fa-css-prefix}-steam-square:before { content: $fa-var-steam-square; } -.#{$fa-css-prefix}-recycle:before { content: $fa-var-recycle; } -.#{$fa-css-prefix}-automobile:before, -.#{$fa-css-prefix}-car:before { content: $fa-var-car; } -.#{$fa-css-prefix}-cab:before, -.#{$fa-css-prefix}-taxi:before { content: $fa-var-taxi; } -.#{$fa-css-prefix}-tree:before { content: $fa-var-tree; } -.#{$fa-css-prefix}-spotify:before { content: $fa-var-spotify; } -.#{$fa-css-prefix}-deviantart:before { content: $fa-var-deviantart; } -.#{$fa-css-prefix}-soundcloud:before { content: $fa-var-soundcloud; } -.#{$fa-css-prefix}-database:before { content: $fa-var-database; } -.#{$fa-css-prefix}-file-pdf-o:before { content: $fa-var-file-pdf-o; } -.#{$fa-css-prefix}-file-word-o:before { content: $fa-var-file-word-o; } -.#{$fa-css-prefix}-file-excel-o:before { content: $fa-var-file-excel-o; } -.#{$fa-css-prefix}-file-powerpoint-o:before { content: $fa-var-file-powerpoint-o; } -.#{$fa-css-prefix}-file-photo-o:before, -.#{$fa-css-prefix}-file-picture-o:before, -.#{$fa-css-prefix}-file-image-o:before { content: $fa-var-file-image-o; } -.#{$fa-css-prefix}-file-zip-o:before, -.#{$fa-css-prefix}-file-archive-o:before { content: $fa-var-file-archive-o; } -.#{$fa-css-prefix}-file-sound-o:before, -.#{$fa-css-prefix}-file-audio-o:before { content: $fa-var-file-audio-o; } -.#{$fa-css-prefix}-file-movie-o:before, -.#{$fa-css-prefix}-file-video-o:before { content: $fa-var-file-video-o; } -.#{$fa-css-prefix}-file-code-o:before { content: $fa-var-file-code-o; } -.#{$fa-css-prefix}-vine:before { content: $fa-var-vine; } -.#{$fa-css-prefix}-codepen:before { content: $fa-var-codepen; } -.#{$fa-css-prefix}-jsfiddle:before { content: $fa-var-jsfiddle; } -.#{$fa-css-prefix}-life-bouy:before, -.#{$fa-css-prefix}-life-buoy:before, -.#{$fa-css-prefix}-life-saver:before, -.#{$fa-css-prefix}-support:before, -.#{$fa-css-prefix}-life-ring:before { content: $fa-var-life-ring; } -.#{$fa-css-prefix}-circle-o-notch:before { content: $fa-var-circle-o-notch; } -.#{$fa-css-prefix}-ra:before, -.#{$fa-css-prefix}-resistance:before, -.#{$fa-css-prefix}-rebel:before { content: $fa-var-rebel; } -.#{$fa-css-prefix}-ge:before, -.#{$fa-css-prefix}-empire:before { content: $fa-var-empire; } -.#{$fa-css-prefix}-git-square:before { content: $fa-var-git-square; } -.#{$fa-css-prefix}-git:before { content: $fa-var-git; } -.#{$fa-css-prefix}-y-combinator-square:before, -.#{$fa-css-prefix}-yc-square:before, -.#{$fa-css-prefix}-hacker-news:before { content: $fa-var-hacker-news; } -.#{$fa-css-prefix}-tencent-weibo:before { content: $fa-var-tencent-weibo; } -.#{$fa-css-prefix}-qq:before { content: $fa-var-qq; } -.#{$fa-css-prefix}-wechat:before, -.#{$fa-css-prefix}-weixin:before { content: $fa-var-weixin; } -.#{$fa-css-prefix}-send:before, -.#{$fa-css-prefix}-paper-plane:before { content: $fa-var-paper-plane; } -.#{$fa-css-prefix}-send-o:before, -.#{$fa-css-prefix}-paper-plane-o:before { content: $fa-var-paper-plane-o; } -.#{$fa-css-prefix}-history:before { content: $fa-var-history; } -.#{$fa-css-prefix}-circle-thin:before { content: $fa-var-circle-thin; } -.#{$fa-css-prefix}-header:before { content: $fa-var-header; } -.#{$fa-css-prefix}-paragraph:before { content: $fa-var-paragraph; } -.#{$fa-css-prefix}-sliders:before { content: $fa-var-sliders; } -.#{$fa-css-prefix}-share-alt:before { content: $fa-var-share-alt; } -.#{$fa-css-prefix}-share-alt-square:before { content: $fa-var-share-alt-square; } -.#{$fa-css-prefix}-bomb:before { content: $fa-var-bomb; } -.#{$fa-css-prefix}-soccer-ball-o:before, -.#{$fa-css-prefix}-futbol-o:before { content: $fa-var-futbol-o; } -.#{$fa-css-prefix}-tty:before { content: $fa-var-tty; } -.#{$fa-css-prefix}-binoculars:before { content: $fa-var-binoculars; } -.#{$fa-css-prefix}-plug:before { content: $fa-var-plug; } -.#{$fa-css-prefix}-slideshare:before { content: $fa-var-slideshare; } -.#{$fa-css-prefix}-twitch:before { content: $fa-var-twitch; } -.#{$fa-css-prefix}-yelp:before { content: $fa-var-yelp; } -.#{$fa-css-prefix}-newspaper-o:before { content: $fa-var-newspaper-o; } -.#{$fa-css-prefix}-wifi:before { content: $fa-var-wifi; } -.#{$fa-css-prefix}-calculator:before { content: $fa-var-calculator; } -.#{$fa-css-prefix}-paypal:before { content: $fa-var-paypal; } -.#{$fa-css-prefix}-google-wallet:before { content: $fa-var-google-wallet; } -.#{$fa-css-prefix}-cc-visa:before { content: $fa-var-cc-visa; } -.#{$fa-css-prefix}-cc-mastercard:before { content: $fa-var-cc-mastercard; } -.#{$fa-css-prefix}-cc-discover:before { content: $fa-var-cc-discover; } -.#{$fa-css-prefix}-cc-amex:before { content: $fa-var-cc-amex; } -.#{$fa-css-prefix}-cc-paypal:before { content: $fa-var-cc-paypal; } -.#{$fa-css-prefix}-cc-stripe:before { content: $fa-var-cc-stripe; } -.#{$fa-css-prefix}-bell-slash:before { content: $fa-var-bell-slash; } -.#{$fa-css-prefix}-bell-slash-o:before { content: $fa-var-bell-slash-o; } -.#{$fa-css-prefix}-trash:before { content: $fa-var-trash; } -.#{$fa-css-prefix}-copyright:before { content: $fa-var-copyright; } -.#{$fa-css-prefix}-at:before { content: $fa-var-at; } -.#{$fa-css-prefix}-eyedropper:before { content: $fa-var-eyedropper; } -.#{$fa-css-prefix}-paint-brush:before { content: $fa-var-paint-brush; } -.#{$fa-css-prefix}-birthday-cake:before { content: $fa-var-birthday-cake; } -.#{$fa-css-prefix}-area-chart:before { content: $fa-var-area-chart; } -.#{$fa-css-prefix}-pie-chart:before { content: $fa-var-pie-chart; } -.#{$fa-css-prefix}-line-chart:before { content: $fa-var-line-chart; } -.#{$fa-css-prefix}-lastfm:before { content: $fa-var-lastfm; } -.#{$fa-css-prefix}-lastfm-square:before { content: $fa-var-lastfm-square; } -.#{$fa-css-prefix}-toggle-off:before { content: $fa-var-toggle-off; } -.#{$fa-css-prefix}-toggle-on:before { content: $fa-var-toggle-on; } -.#{$fa-css-prefix}-bicycle:before { content: $fa-var-bicycle; } -.#{$fa-css-prefix}-bus:before { content: $fa-var-bus; } -.#{$fa-css-prefix}-ioxhost:before { content: $fa-var-ioxhost; } -.#{$fa-css-prefix}-angellist:before { content: $fa-var-angellist; } -.#{$fa-css-prefix}-cc:before { content: $fa-var-cc; } -.#{$fa-css-prefix}-shekel:before, -.#{$fa-css-prefix}-sheqel:before, -.#{$fa-css-prefix}-ils:before { content: $fa-var-ils; } -.#{$fa-css-prefix}-meanpath:before { content: $fa-var-meanpath; } -.#{$fa-css-prefix}-buysellads:before { content: $fa-var-buysellads; } -.#{$fa-css-prefix}-connectdevelop:before { content: $fa-var-connectdevelop; } -.#{$fa-css-prefix}-dashcube:before { content: $fa-var-dashcube; } -.#{$fa-css-prefix}-forumbee:before { content: $fa-var-forumbee; } -.#{$fa-css-prefix}-leanpub:before { content: $fa-var-leanpub; } -.#{$fa-css-prefix}-sellsy:before { content: $fa-var-sellsy; } -.#{$fa-css-prefix}-shirtsinbulk:before { content: $fa-var-shirtsinbulk; } -.#{$fa-css-prefix}-simplybuilt:before { content: $fa-var-simplybuilt; } -.#{$fa-css-prefix}-skyatlas:before { content: $fa-var-skyatlas; } -.#{$fa-css-prefix}-cart-plus:before { content: $fa-var-cart-plus; } -.#{$fa-css-prefix}-cart-arrow-down:before { content: $fa-var-cart-arrow-down; } -.#{$fa-css-prefix}-diamond:before { content: $fa-var-diamond; } -.#{$fa-css-prefix}-ship:before { content: $fa-var-ship; } -.#{$fa-css-prefix}-user-secret:before { content: $fa-var-user-secret; } -.#{$fa-css-prefix}-motorcycle:before { content: $fa-var-motorcycle; } -.#{$fa-css-prefix}-street-view:before { content: $fa-var-street-view; } -.#{$fa-css-prefix}-heartbeat:before { content: $fa-var-heartbeat; } -.#{$fa-css-prefix}-venus:before { content: $fa-var-venus; } -.#{$fa-css-prefix}-mars:before { content: $fa-var-mars; } -.#{$fa-css-prefix}-mercury:before { content: $fa-var-mercury; } -.#{$fa-css-prefix}-intersex:before, -.#{$fa-css-prefix}-transgender:before { content: $fa-var-transgender; } -.#{$fa-css-prefix}-transgender-alt:before { content: $fa-var-transgender-alt; } -.#{$fa-css-prefix}-venus-double:before { content: $fa-var-venus-double; } -.#{$fa-css-prefix}-mars-double:before { content: $fa-var-mars-double; } -.#{$fa-css-prefix}-venus-mars:before { content: $fa-var-venus-mars; } -.#{$fa-css-prefix}-mars-stroke:before { content: $fa-var-mars-stroke; } -.#{$fa-css-prefix}-mars-stroke-v:before { content: $fa-var-mars-stroke-v; } -.#{$fa-css-prefix}-mars-stroke-h:before { content: $fa-var-mars-stroke-h; } -.#{$fa-css-prefix}-neuter:before { content: $fa-var-neuter; } -.#{$fa-css-prefix}-genderless:before { content: $fa-var-genderless; } -.#{$fa-css-prefix}-facebook-official:before { content: $fa-var-facebook-official; } -.#{$fa-css-prefix}-pinterest-p:before { content: $fa-var-pinterest-p; } -.#{$fa-css-prefix}-whatsapp:before { content: $fa-var-whatsapp; } -.#{$fa-css-prefix}-server:before { content: $fa-var-server; } -.#{$fa-css-prefix}-user-plus:before { content: $fa-var-user-plus; } -.#{$fa-css-prefix}-user-times:before { content: $fa-var-user-times; } -.#{$fa-css-prefix}-hotel:before, -.#{$fa-css-prefix}-bed:before { content: $fa-var-bed; } -.#{$fa-css-prefix}-viacoin:before { content: $fa-var-viacoin; } -.#{$fa-css-prefix}-train:before { content: $fa-var-train; } -.#{$fa-css-prefix}-subway:before { content: $fa-var-subway; } -.#{$fa-css-prefix}-medium:before { content: $fa-var-medium; } -.#{$fa-css-prefix}-yc:before, -.#{$fa-css-prefix}-y-combinator:before { content: $fa-var-y-combinator; } -.#{$fa-css-prefix}-optin-monster:before { content: $fa-var-optin-monster; } -.#{$fa-css-prefix}-opencart:before { content: $fa-var-opencart; } -.#{$fa-css-prefix}-expeditedssl:before { content: $fa-var-expeditedssl; } -.#{$fa-css-prefix}-battery-4:before, -.#{$fa-css-prefix}-battery:before, -.#{$fa-css-prefix}-battery-full:before { content: $fa-var-battery-full; } -.#{$fa-css-prefix}-battery-3:before, -.#{$fa-css-prefix}-battery-three-quarters:before { content: $fa-var-battery-three-quarters; } -.#{$fa-css-prefix}-battery-2:before, -.#{$fa-css-prefix}-battery-half:before { content: $fa-var-battery-half; } -.#{$fa-css-prefix}-battery-1:before, -.#{$fa-css-prefix}-battery-quarter:before { content: $fa-var-battery-quarter; } -.#{$fa-css-prefix}-battery-0:before, -.#{$fa-css-prefix}-battery-empty:before { content: $fa-var-battery-empty; } -.#{$fa-css-prefix}-mouse-pointer:before { content: $fa-var-mouse-pointer; } -.#{$fa-css-prefix}-i-cursor:before { content: $fa-var-i-cursor; } -.#{$fa-css-prefix}-object-group:before { content: $fa-var-object-group; } -.#{$fa-css-prefix}-object-ungroup:before { content: $fa-var-object-ungroup; } -.#{$fa-css-prefix}-sticky-note:before { content: $fa-var-sticky-note; } -.#{$fa-css-prefix}-sticky-note-o:before { content: $fa-var-sticky-note-o; } -.#{$fa-css-prefix}-cc-jcb:before { content: $fa-var-cc-jcb; } -.#{$fa-css-prefix}-cc-diners-club:before { content: $fa-var-cc-diners-club; } -.#{$fa-css-prefix}-clone:before { content: $fa-var-clone; } -.#{$fa-css-prefix}-balance-scale:before { content: $fa-var-balance-scale; } -.#{$fa-css-prefix}-hourglass-o:before { content: $fa-var-hourglass-o; } -.#{$fa-css-prefix}-hourglass-1:before, -.#{$fa-css-prefix}-hourglass-start:before { content: $fa-var-hourglass-start; } -.#{$fa-css-prefix}-hourglass-2:before, -.#{$fa-css-prefix}-hourglass-half:before { content: $fa-var-hourglass-half; } -.#{$fa-css-prefix}-hourglass-3:before, -.#{$fa-css-prefix}-hourglass-end:before { content: $fa-var-hourglass-end; } -.#{$fa-css-prefix}-hourglass:before { content: $fa-var-hourglass; } -.#{$fa-css-prefix}-hand-grab-o:before, -.#{$fa-css-prefix}-hand-rock-o:before { content: $fa-var-hand-rock-o; } -.#{$fa-css-prefix}-hand-stop-o:before, -.#{$fa-css-prefix}-hand-paper-o:before { content: $fa-var-hand-paper-o; } -.#{$fa-css-prefix}-hand-scissors-o:before { content: $fa-var-hand-scissors-o; } -.#{$fa-css-prefix}-hand-lizard-o:before { content: $fa-var-hand-lizard-o; } -.#{$fa-css-prefix}-hand-spock-o:before { content: $fa-var-hand-spock-o; } -.#{$fa-css-prefix}-hand-pointer-o:before { content: $fa-var-hand-pointer-o; } -.#{$fa-css-prefix}-hand-peace-o:before { content: $fa-var-hand-peace-o; } -.#{$fa-css-prefix}-trademark:before { content: $fa-var-trademark; } -.#{$fa-css-prefix}-registered:before { content: $fa-var-registered; } -.#{$fa-css-prefix}-creative-commons:before { content: $fa-var-creative-commons; } -.#{$fa-css-prefix}-gg:before { content: $fa-var-gg; } -.#{$fa-css-prefix}-gg-circle:before { content: $fa-var-gg-circle; } -.#{$fa-css-prefix}-tripadvisor:before { content: $fa-var-tripadvisor; } -.#{$fa-css-prefix}-odnoklassniki:before { content: $fa-var-odnoklassniki; } -.#{$fa-css-prefix}-odnoklassniki-square:before { content: $fa-var-odnoklassniki-square; } -.#{$fa-css-prefix}-get-pocket:before { content: $fa-var-get-pocket; } -.#{$fa-css-prefix}-wikipedia-w:before { content: $fa-var-wikipedia-w; } -.#{$fa-css-prefix}-safari:before { content: $fa-var-safari; } -.#{$fa-css-prefix}-chrome:before { content: $fa-var-chrome; } -.#{$fa-css-prefix}-firefox:before { content: $fa-var-firefox; } -.#{$fa-css-prefix}-opera:before { content: $fa-var-opera; } -.#{$fa-css-prefix}-internet-explorer:before { content: $fa-var-internet-explorer; } -.#{$fa-css-prefix}-tv:before, -.#{$fa-css-prefix}-television:before { content: $fa-var-television; } -.#{$fa-css-prefix}-contao:before { content: $fa-var-contao; } -.#{$fa-css-prefix}-500px:before { content: $fa-var-500px; } -.#{$fa-css-prefix}-amazon:before { content: $fa-var-amazon; } -.#{$fa-css-prefix}-calendar-plus-o:before { content: $fa-var-calendar-plus-o; } -.#{$fa-css-prefix}-calendar-minus-o:before { content: $fa-var-calendar-minus-o; } -.#{$fa-css-prefix}-calendar-times-o:before { content: $fa-var-calendar-times-o; } -.#{$fa-css-prefix}-calendar-check-o:before { content: $fa-var-calendar-check-o; } -.#{$fa-css-prefix}-industry:before { content: $fa-var-industry; } -.#{$fa-css-prefix}-map-pin:before { content: $fa-var-map-pin; } -.#{$fa-css-prefix}-map-signs:before { content: $fa-var-map-signs; } -.#{$fa-css-prefix}-map-o:before { content: $fa-var-map-o; } -.#{$fa-css-prefix}-map:before { content: $fa-var-map; } -.#{$fa-css-prefix}-commenting:before { content: $fa-var-commenting; } -.#{$fa-css-prefix}-commenting-o:before { content: $fa-var-commenting-o; } -.#{$fa-css-prefix}-houzz:before { content: $fa-var-houzz; } -.#{$fa-css-prefix}-vimeo:before { content: $fa-var-vimeo; } -.#{$fa-css-prefix}-black-tie:before { content: $fa-var-black-tie; } -.#{$fa-css-prefix}-fonticons:before { content: $fa-var-fonticons; } -.#{$fa-css-prefix}-reddit-alien:before { content: $fa-var-reddit-alien; } -.#{$fa-css-prefix}-edge:before { content: $fa-var-edge; } -.#{$fa-css-prefix}-credit-card-alt:before { content: $fa-var-credit-card-alt; } -.#{$fa-css-prefix}-codiepie:before { content: $fa-var-codiepie; } -.#{$fa-css-prefix}-modx:before { content: $fa-var-modx; } -.#{$fa-css-prefix}-fort-awesome:before { content: $fa-var-fort-awesome; } -.#{$fa-css-prefix}-usb:before { content: $fa-var-usb; } -.#{$fa-css-prefix}-product-hunt:before { content: $fa-var-product-hunt; } -.#{$fa-css-prefix}-mixcloud:before { content: $fa-var-mixcloud; } -.#{$fa-css-prefix}-scribd:before { content: $fa-var-scribd; } -.#{$fa-css-prefix}-pause-circle:before { content: $fa-var-pause-circle; } -.#{$fa-css-prefix}-pause-circle-o:before { content: $fa-var-pause-circle-o; } -.#{$fa-css-prefix}-stop-circle:before { content: $fa-var-stop-circle; } -.#{$fa-css-prefix}-stop-circle-o:before { content: $fa-var-stop-circle-o; } -.#{$fa-css-prefix}-shopping-bag:before { content: $fa-var-shopping-bag; } -.#{$fa-css-prefix}-shopping-basket:before { content: $fa-var-shopping-basket; } -.#{$fa-css-prefix}-hashtag:before { content: $fa-var-hashtag; } -.#{$fa-css-prefix}-bluetooth:before { content: $fa-var-bluetooth; } -.#{$fa-css-prefix}-bluetooth-b:before { content: $fa-var-bluetooth-b; } -.#{$fa-css-prefix}-percent:before { content: $fa-var-percent; } -.#{$fa-css-prefix}-gitlab:before { content: $fa-var-gitlab; } -.#{$fa-css-prefix}-wpbeginner:before { content: $fa-var-wpbeginner; } -.#{$fa-css-prefix}-wpforms:before { content: $fa-var-wpforms; } -.#{$fa-css-prefix}-envira:before { content: $fa-var-envira; } -.#{$fa-css-prefix}-universal-access:before { content: $fa-var-universal-access; } -.#{$fa-css-prefix}-wheelchair-alt:before { content: $fa-var-wheelchair-alt; } -.#{$fa-css-prefix}-question-circle-o:before { content: $fa-var-question-circle-o; } -.#{$fa-css-prefix}-blind:before { content: $fa-var-blind; } -.#{$fa-css-prefix}-audio-description:before { content: $fa-var-audio-description; } -.#{$fa-css-prefix}-volume-control-phone:before { content: $fa-var-volume-control-phone; } -.#{$fa-css-prefix}-braille:before { content: $fa-var-braille; } -.#{$fa-css-prefix}-assistive-listening-systems:before { content: $fa-var-assistive-listening-systems; } -.#{$fa-css-prefix}-asl-interpreting:before, -.#{$fa-css-prefix}-american-sign-language-interpreting:before { content: $fa-var-american-sign-language-interpreting; } -.#{$fa-css-prefix}-deafness:before, -.#{$fa-css-prefix}-hard-of-hearing:before, -.#{$fa-css-prefix}-deaf:before { content: $fa-var-deaf; } -.#{$fa-css-prefix}-glide:before { content: $fa-var-glide; } -.#{$fa-css-prefix}-glide-g:before { content: $fa-var-glide-g; } -.#{$fa-css-prefix}-signing:before, -.#{$fa-css-prefix}-sign-language:before { content: $fa-var-sign-language; } -.#{$fa-css-prefix}-low-vision:before { content: $fa-var-low-vision; } -.#{$fa-css-prefix}-viadeo:before { content: $fa-var-viadeo; } -.#{$fa-css-prefix}-viadeo-square:before { content: $fa-var-viadeo-square; } -.#{$fa-css-prefix}-snapchat:before { content: $fa-var-snapchat; } -.#{$fa-css-prefix}-snapchat-ghost:before { content: $fa-var-snapchat-ghost; } -.#{$fa-css-prefix}-snapchat-square:before { content: $fa-var-snapchat-square; } -.#{$fa-css-prefix}-pied-piper:before { content: $fa-var-pied-piper; } -.#{$fa-css-prefix}-first-order:before { content: $fa-var-first-order; } -.#{$fa-css-prefix}-yoast:before { content: $fa-var-yoast; } -.#{$fa-css-prefix}-themeisle:before { content: $fa-var-themeisle; } -.#{$fa-css-prefix}-google-plus-circle:before, -.#{$fa-css-prefix}-google-plus-official:before { content: $fa-var-google-plus-official; } -.#{$fa-css-prefix}-fa:before, -.#{$fa-css-prefix}-font-awesome:before { content: $fa-var-font-awesome; } -.#{$fa-css-prefix}-handshake-o:before { content: $fa-var-handshake-o; } -.#{$fa-css-prefix}-envelope-open:before { content: $fa-var-envelope-open; } -.#{$fa-css-prefix}-envelope-open-o:before { content: $fa-var-envelope-open-o; } -.#{$fa-css-prefix}-linode:before { content: $fa-var-linode; } -.#{$fa-css-prefix}-address-book:before { content: $fa-var-address-book; } -.#{$fa-css-prefix}-address-book-o:before { content: $fa-var-address-book-o; } -.#{$fa-css-prefix}-vcard:before, -.#{$fa-css-prefix}-address-card:before { content: $fa-var-address-card; } -.#{$fa-css-prefix}-vcard-o:before, -.#{$fa-css-prefix}-address-card-o:before { content: $fa-var-address-card-o; } -.#{$fa-css-prefix}-user-circle:before { content: $fa-var-user-circle; } -.#{$fa-css-prefix}-user-circle-o:before { content: $fa-var-user-circle-o; } -.#{$fa-css-prefix}-user-o:before { content: $fa-var-user-o; } -.#{$fa-css-prefix}-id-badge:before { content: $fa-var-id-badge; } -.#{$fa-css-prefix}-drivers-license:before, -.#{$fa-css-prefix}-id-card:before { content: $fa-var-id-card; } -.#{$fa-css-prefix}-drivers-license-o:before, -.#{$fa-css-prefix}-id-card-o:before { content: $fa-var-id-card-o; } -.#{$fa-css-prefix}-quora:before { content: $fa-var-quora; } -.#{$fa-css-prefix}-free-code-camp:before { content: $fa-var-free-code-camp; } -.#{$fa-css-prefix}-telegram:before { content: $fa-var-telegram; } -.#{$fa-css-prefix}-thermometer-4:before, -.#{$fa-css-prefix}-thermometer:before, -.#{$fa-css-prefix}-thermometer-full:before { content: $fa-var-thermometer-full; } -.#{$fa-css-prefix}-thermometer-3:before, -.#{$fa-css-prefix}-thermometer-three-quarters:before { content: $fa-var-thermometer-three-quarters; } -.#{$fa-css-prefix}-thermometer-2:before, -.#{$fa-css-prefix}-thermometer-half:before { content: $fa-var-thermometer-half; } -.#{$fa-css-prefix}-thermometer-1:before, -.#{$fa-css-prefix}-thermometer-quarter:before { content: $fa-var-thermometer-quarter; } -.#{$fa-css-prefix}-thermometer-0:before, -.#{$fa-css-prefix}-thermometer-empty:before { content: $fa-var-thermometer-empty; } -.#{$fa-css-prefix}-shower:before { content: $fa-var-shower; } -.#{$fa-css-prefix}-bathtub:before, -.#{$fa-css-prefix}-s15:before, -.#{$fa-css-prefix}-bath:before { content: $fa-var-bath; } -.#{$fa-css-prefix}-podcast:before { content: $fa-var-podcast; } -.#{$fa-css-prefix}-window-maximize:before { content: $fa-var-window-maximize; } -.#{$fa-css-prefix}-window-minimize:before { content: $fa-var-window-minimize; } -.#{$fa-css-prefix}-window-restore:before { content: $fa-var-window-restore; } -.#{$fa-css-prefix}-times-rectangle:before, -.#{$fa-css-prefix}-window-close:before { content: $fa-var-window-close; } -.#{$fa-css-prefix}-times-rectangle-o:before, -.#{$fa-css-prefix}-window-close-o:before { content: $fa-var-window-close-o; } -.#{$fa-css-prefix}-bandcamp:before { content: $fa-var-bandcamp; } -.#{$fa-css-prefix}-grav:before { content: $fa-var-grav; } -.#{$fa-css-prefix}-etsy:before { content: $fa-var-etsy; } -.#{$fa-css-prefix}-imdb:before { content: $fa-var-imdb; } -.#{$fa-css-prefix}-ravelry:before { content: $fa-var-ravelry; } -.#{$fa-css-prefix}-eercast:before { content: $fa-var-eercast; } -.#{$fa-css-prefix}-microchip:before { content: $fa-var-microchip; } -.#{$fa-css-prefix}-snowflake-o:before { content: $fa-var-snowflake-o; } -.#{$fa-css-prefix}-superpowers:before { content: $fa-var-superpowers; } -.#{$fa-css-prefix}-wpexplorer:before { content: $fa-var-wpexplorer; } -.#{$fa-css-prefix}-meetup:before { content: $fa-var-meetup; } diff --git a/admin/bower_components/font-awesome/scss/_larger.scss b/admin/bower_components/font-awesome/scss/_larger.scss deleted file mode 100644 index 41e9a81..0000000 --- a/admin/bower_components/font-awesome/scss/_larger.scss +++ /dev/null @@ -1,13 +0,0 @@ -// Icon Sizes -// ------------------------- - -/* makes the font 33% larger relative to the icon container */ -.#{$fa-css-prefix}-lg { - font-size: (4em / 3); - line-height: (3em / 4); - vertical-align: -15%; -} -.#{$fa-css-prefix}-2x { font-size: 2em; } -.#{$fa-css-prefix}-3x { font-size: 3em; } -.#{$fa-css-prefix}-4x { font-size: 4em; } -.#{$fa-css-prefix}-5x { font-size: 5em; } diff --git a/admin/bower_components/font-awesome/scss/_list.scss b/admin/bower_components/font-awesome/scss/_list.scss deleted file mode 100644 index 7d1e4d5..0000000 --- a/admin/bower_components/font-awesome/scss/_list.scss +++ /dev/null @@ -1,19 +0,0 @@ -// List Icons -// ------------------------- - -.#{$fa-css-prefix}-ul { - padding-left: 0; - margin-left: $fa-li-width; - list-style-type: none; - > li { position: relative; } -} -.#{$fa-css-prefix}-li { - position: absolute; - left: -$fa-li-width; - width: $fa-li-width; - top: (2em / 14); - text-align: center; - &.#{$fa-css-prefix}-lg { - left: -$fa-li-width + (4em / 14); - } -} diff --git a/admin/bower_components/font-awesome/scss/_mixins.scss b/admin/bower_components/font-awesome/scss/_mixins.scss deleted file mode 100644 index c3bbd57..0000000 --- a/admin/bower_components/font-awesome/scss/_mixins.scss +++ /dev/null @@ -1,60 +0,0 @@ -// Mixins -// -------------------------- - -@mixin fa-icon() { - display: inline-block; - font: normal normal normal #{$fa-font-size-base}/#{$fa-line-height-base} FontAwesome; // shortening font declaration - font-size: inherit; // can't have font-size inherit on line above, so need to override - text-rendering: auto; // optimizelegibility throws things off #1094 - -webkit-font-smoothing: antialiased; - -moz-osx-font-smoothing: grayscale; - -} - -@mixin fa-icon-rotate($degrees, $rotation) { - -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=#{$rotation})"; - -webkit-transform: rotate($degrees); - -ms-transform: rotate($degrees); - transform: rotate($degrees); -} - -@mixin fa-icon-flip($horiz, $vert, $rotation) { - -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=#{$rotation}, mirror=1)"; - -webkit-transform: scale($horiz, $vert); - -ms-transform: scale($horiz, $vert); - transform: scale($horiz, $vert); -} - - -// Only display content to screen readers. A la Bootstrap 4. -// -// See: http://a11yproject.com/posts/how-to-hide-content/ - -@mixin sr-only { - position: absolute; - width: 1px; - height: 1px; - padding: 0; - margin: -1px; - overflow: hidden; - clip: rect(0,0,0,0); - border: 0; -} - -// Use in conjunction with .sr-only to only display content when it's focused. -// -// Useful for "Skip to main content" links; see http://www.w3.org/TR/2013/NOTE-WCAG20-TECHS-20130905/G1 -// -// Credit: HTML5 Boilerplate - -@mixin sr-only-focusable { - &:active, - &:focus { - position: static; - width: auto; - height: auto; - margin: 0; - overflow: visible; - clip: auto; - } -} diff --git a/admin/bower_components/font-awesome/scss/_path.scss b/admin/bower_components/font-awesome/scss/_path.scss deleted file mode 100644 index bb457c2..0000000 --- a/admin/bower_components/font-awesome/scss/_path.scss +++ /dev/null @@ -1,15 +0,0 @@ -/* FONT PATH - * -------------------------- */ - -@font-face { - font-family: 'FontAwesome'; - src: url('#{$fa-font-path}/fontawesome-webfont.eot?v=#{$fa-version}'); - src: url('#{$fa-font-path}/fontawesome-webfont.eot?#iefix&v=#{$fa-version}') format('embedded-opentype'), - url('#{$fa-font-path}/fontawesome-webfont.woff2?v=#{$fa-version}') format('woff2'), - url('#{$fa-font-path}/fontawesome-webfont.woff?v=#{$fa-version}') format('woff'), - url('#{$fa-font-path}/fontawesome-webfont.ttf?v=#{$fa-version}') format('truetype'), - url('#{$fa-font-path}/fontawesome-webfont.svg?v=#{$fa-version}#fontawesomeregular') format('svg'); -// src: url('#{$fa-font-path}/FontAwesome.otf') format('opentype'); // used when developing fonts - font-weight: normal; - font-style: normal; -} diff --git a/admin/bower_components/font-awesome/scss/_rotated-flipped.scss b/admin/bower_components/font-awesome/scss/_rotated-flipped.scss deleted file mode 100644 index a3558fd..0000000 --- a/admin/bower_components/font-awesome/scss/_rotated-flipped.scss +++ /dev/null @@ -1,20 +0,0 @@ -// Rotated & Flipped Icons -// ------------------------- - -.#{$fa-css-prefix}-rotate-90 { @include fa-icon-rotate(90deg, 1); } -.#{$fa-css-prefix}-rotate-180 { @include fa-icon-rotate(180deg, 2); } -.#{$fa-css-prefix}-rotate-270 { @include fa-icon-rotate(270deg, 3); } - -.#{$fa-css-prefix}-flip-horizontal { @include fa-icon-flip(-1, 1, 0); } -.#{$fa-css-prefix}-flip-vertical { @include fa-icon-flip(1, -1, 2); } - -// Hook for IE8-9 -// ------------------------- - -:root .#{$fa-css-prefix}-rotate-90, -:root .#{$fa-css-prefix}-rotate-180, -:root .#{$fa-css-prefix}-rotate-270, -:root .#{$fa-css-prefix}-flip-horizontal, -:root .#{$fa-css-prefix}-flip-vertical { - filter: none; -} diff --git a/admin/bower_components/font-awesome/scss/_screen-reader.scss b/admin/bower_components/font-awesome/scss/_screen-reader.scss deleted file mode 100644 index 637426f..0000000 --- a/admin/bower_components/font-awesome/scss/_screen-reader.scss +++ /dev/null @@ -1,5 +0,0 @@ -// Screen Readers -// ------------------------- - -.sr-only { @include sr-only(); } -.sr-only-focusable { @include sr-only-focusable(); } diff --git a/admin/bower_components/font-awesome/scss/_stacked.scss b/admin/bower_components/font-awesome/scss/_stacked.scss deleted file mode 100644 index aef7403..0000000 --- a/admin/bower_components/font-awesome/scss/_stacked.scss +++ /dev/null @@ -1,20 +0,0 @@ -// Stacked Icons -// ------------------------- - -.#{$fa-css-prefix}-stack { - position: relative; - display: inline-block; - width: 2em; - height: 2em; - line-height: 2em; - vertical-align: middle; -} -.#{$fa-css-prefix}-stack-1x, .#{$fa-css-prefix}-stack-2x { - position: absolute; - left: 0; - width: 100%; - text-align: center; -} -.#{$fa-css-prefix}-stack-1x { line-height: inherit; } -.#{$fa-css-prefix}-stack-2x { font-size: 2em; } -.#{$fa-css-prefix}-inverse { color: $fa-inverse; } diff --git a/admin/bower_components/font-awesome/scss/_variables.scss b/admin/bower_components/font-awesome/scss/_variables.scss deleted file mode 100644 index 498fc4a..0000000 --- a/admin/bower_components/font-awesome/scss/_variables.scss +++ /dev/null @@ -1,800 +0,0 @@ -// Variables -// -------------------------- - -$fa-font-path: "../fonts" !default; -$fa-font-size-base: 14px !default; -$fa-line-height-base: 1 !default; -//$fa-font-path: "//netdna.bootstrapcdn.com/font-awesome/4.7.0/fonts" !default; // for referencing Bootstrap CDN font files directly -$fa-css-prefix: fa !default; -$fa-version: "4.7.0" !default; -$fa-border-color: #eee !default; -$fa-inverse: #fff !default; -$fa-li-width: (30em / 14) !default; - -$fa-var-500px: "\f26e"; -$fa-var-address-book: "\f2b9"; -$fa-var-address-book-o: "\f2ba"; -$fa-var-address-card: "\f2bb"; -$fa-var-address-card-o: "\f2bc"; -$fa-var-adjust: "\f042"; -$fa-var-adn: "\f170"; -$fa-var-align-center: "\f037"; -$fa-var-align-justify: "\f039"; -$fa-var-align-left: "\f036"; -$fa-var-align-right: "\f038"; -$fa-var-amazon: "\f270"; -$fa-var-ambulance: "\f0f9"; -$fa-var-american-sign-language-interpreting: "\f2a3"; -$fa-var-anchor: "\f13d"; -$fa-var-android: "\f17b"; -$fa-var-angellist: "\f209"; -$fa-var-angle-double-down: "\f103"; -$fa-var-angle-double-left: "\f100"; -$fa-var-angle-double-right: "\f101"; -$fa-var-angle-double-up: "\f102"; -$fa-var-angle-down: "\f107"; -$fa-var-angle-left: "\f104"; -$fa-var-angle-right: "\f105"; -$fa-var-angle-up: "\f106"; -$fa-var-apple: "\f179"; -$fa-var-archive: "\f187"; -$fa-var-area-chart: "\f1fe"; -$fa-var-arrow-circle-down: "\f0ab"; -$fa-var-arrow-circle-left: "\f0a8"; -$fa-var-arrow-circle-o-down: "\f01a"; -$fa-var-arrow-circle-o-left: "\f190"; -$fa-var-arrow-circle-o-right: "\f18e"; -$fa-var-arrow-circle-o-up: "\f01b"; -$fa-var-arrow-circle-right: "\f0a9"; -$fa-var-arrow-circle-up: "\f0aa"; -$fa-var-arrow-down: "\f063"; -$fa-var-arrow-left: "\f060"; -$fa-var-arrow-right: "\f061"; -$fa-var-arrow-up: "\f062"; -$fa-var-arrows: "\f047"; -$fa-var-arrows-alt: "\f0b2"; -$fa-var-arrows-h: "\f07e"; -$fa-var-arrows-v: "\f07d"; -$fa-var-asl-interpreting: "\f2a3"; -$fa-var-assistive-listening-systems: "\f2a2"; -$fa-var-asterisk: "\f069"; -$fa-var-at: "\f1fa"; -$fa-var-audio-description: "\f29e"; -$fa-var-automobile: "\f1b9"; -$fa-var-backward: "\f04a"; -$fa-var-balance-scale: "\f24e"; -$fa-var-ban: "\f05e"; -$fa-var-bandcamp: "\f2d5"; -$fa-var-bank: "\f19c"; -$fa-var-bar-chart: "\f080"; -$fa-var-bar-chart-o: "\f080"; -$fa-var-barcode: "\f02a"; -$fa-var-bars: "\f0c9"; -$fa-var-bath: "\f2cd"; -$fa-var-bathtub: "\f2cd"; -$fa-var-battery: "\f240"; -$fa-var-battery-0: "\f244"; -$fa-var-battery-1: "\f243"; -$fa-var-battery-2: "\f242"; -$fa-var-battery-3: "\f241"; -$fa-var-battery-4: "\f240"; -$fa-var-battery-empty: "\f244"; -$fa-var-battery-full: "\f240"; -$fa-var-battery-half: "\f242"; -$fa-var-battery-quarter: "\f243"; -$fa-var-battery-three-quarters: "\f241"; -$fa-var-bed: "\f236"; -$fa-var-beer: "\f0fc"; -$fa-var-behance: "\f1b4"; -$fa-var-behance-square: "\f1b5"; -$fa-var-bell: "\f0f3"; -$fa-var-bell-o: "\f0a2"; -$fa-var-bell-slash: "\f1f6"; -$fa-var-bell-slash-o: "\f1f7"; -$fa-var-bicycle: "\f206"; -$fa-var-binoculars: "\f1e5"; -$fa-var-birthday-cake: "\f1fd"; -$fa-var-bitbucket: "\f171"; -$fa-var-bitbucket-square: "\f172"; -$fa-var-bitcoin: "\f15a"; -$fa-var-black-tie: "\f27e"; -$fa-var-blind: "\f29d"; -$fa-var-bluetooth: "\f293"; -$fa-var-bluetooth-b: "\f294"; -$fa-var-bold: "\f032"; -$fa-var-bolt: "\f0e7"; -$fa-var-bomb: "\f1e2"; -$fa-var-book: "\f02d"; -$fa-var-bookmark: "\f02e"; -$fa-var-bookmark-o: "\f097"; -$fa-var-braille: "\f2a1"; -$fa-var-briefcase: "\f0b1"; -$fa-var-btc: "\f15a"; -$fa-var-bug: "\f188"; -$fa-var-building: "\f1ad"; -$fa-var-building-o: "\f0f7"; -$fa-var-bullhorn: "\f0a1"; -$fa-var-bullseye: "\f140"; -$fa-var-bus: "\f207"; -$fa-var-buysellads: "\f20d"; -$fa-var-cab: "\f1ba"; -$fa-var-calculator: "\f1ec"; -$fa-var-calendar: "\f073"; -$fa-var-calendar-check-o: "\f274"; -$fa-var-calendar-minus-o: "\f272"; -$fa-var-calendar-o: "\f133"; -$fa-var-calendar-plus-o: "\f271"; -$fa-var-calendar-times-o: "\f273"; -$fa-var-camera: "\f030"; -$fa-var-camera-retro: "\f083"; -$fa-var-car: "\f1b9"; -$fa-var-caret-down: "\f0d7"; -$fa-var-caret-left: "\f0d9"; -$fa-var-caret-right: "\f0da"; -$fa-var-caret-square-o-down: "\f150"; -$fa-var-caret-square-o-left: "\f191"; -$fa-var-caret-square-o-right: "\f152"; -$fa-var-caret-square-o-up: "\f151"; -$fa-var-caret-up: "\f0d8"; -$fa-var-cart-arrow-down: "\f218"; -$fa-var-cart-plus: "\f217"; -$fa-var-cc: "\f20a"; -$fa-var-cc-amex: "\f1f3"; -$fa-var-cc-diners-club: "\f24c"; -$fa-var-cc-discover: "\f1f2"; -$fa-var-cc-jcb: "\f24b"; -$fa-var-cc-mastercard: "\f1f1"; -$fa-var-cc-paypal: "\f1f4"; -$fa-var-cc-stripe: "\f1f5"; -$fa-var-cc-visa: "\f1f0"; -$fa-var-certificate: "\f0a3"; -$fa-var-chain: "\f0c1"; -$fa-var-chain-broken: "\f127"; -$fa-var-check: "\f00c"; -$fa-var-check-circle: "\f058"; -$fa-var-check-circle-o: "\f05d"; -$fa-var-check-square: "\f14a"; -$fa-var-check-square-o: "\f046"; -$fa-var-chevron-circle-down: "\f13a"; -$fa-var-chevron-circle-left: "\f137"; -$fa-var-chevron-circle-right: "\f138"; -$fa-var-chevron-circle-up: "\f139"; -$fa-var-chevron-down: "\f078"; -$fa-var-chevron-left: "\f053"; -$fa-var-chevron-right: "\f054"; -$fa-var-chevron-up: "\f077"; -$fa-var-child: "\f1ae"; -$fa-var-chrome: "\f268"; -$fa-var-circle: "\f111"; -$fa-var-circle-o: "\f10c"; -$fa-var-circle-o-notch: "\f1ce"; -$fa-var-circle-thin: "\f1db"; -$fa-var-clipboard: "\f0ea"; -$fa-var-clock-o: "\f017"; -$fa-var-clone: "\f24d"; -$fa-var-close: "\f00d"; -$fa-var-cloud: "\f0c2"; -$fa-var-cloud-download: "\f0ed"; -$fa-var-cloud-upload: "\f0ee"; -$fa-var-cny: "\f157"; -$fa-var-code: "\f121"; -$fa-var-code-fork: "\f126"; -$fa-var-codepen: "\f1cb"; -$fa-var-codiepie: "\f284"; -$fa-var-coffee: "\f0f4"; -$fa-var-cog: "\f013"; -$fa-var-cogs: "\f085"; -$fa-var-columns: "\f0db"; -$fa-var-comment: "\f075"; -$fa-var-comment-o: "\f0e5"; -$fa-var-commenting: "\f27a"; -$fa-var-commenting-o: "\f27b"; -$fa-var-comments: "\f086"; -$fa-var-comments-o: "\f0e6"; -$fa-var-compass: "\f14e"; -$fa-var-compress: "\f066"; -$fa-var-connectdevelop: "\f20e"; -$fa-var-contao: "\f26d"; -$fa-var-copy: "\f0c5"; -$fa-var-copyright: "\f1f9"; -$fa-var-creative-commons: "\f25e"; -$fa-var-credit-card: "\f09d"; -$fa-var-credit-card-alt: "\f283"; -$fa-var-crop: "\f125"; -$fa-var-crosshairs: "\f05b"; -$fa-var-css3: "\f13c"; -$fa-var-cube: "\f1b2"; -$fa-var-cubes: "\f1b3"; -$fa-var-cut: "\f0c4"; -$fa-var-cutlery: "\f0f5"; -$fa-var-dashboard: "\f0e4"; -$fa-var-dashcube: "\f210"; -$fa-var-database: "\f1c0"; -$fa-var-deaf: "\f2a4"; -$fa-var-deafness: "\f2a4"; -$fa-var-dedent: "\f03b"; -$fa-var-delicious: "\f1a5"; -$fa-var-desktop: "\f108"; -$fa-var-deviantart: "\f1bd"; -$fa-var-diamond: "\f219"; -$fa-var-digg: "\f1a6"; -$fa-var-dollar: "\f155"; -$fa-var-dot-circle-o: "\f192"; -$fa-var-download: "\f019"; -$fa-var-dribbble: "\f17d"; -$fa-var-drivers-license: "\f2c2"; -$fa-var-drivers-license-o: "\f2c3"; -$fa-var-dropbox: "\f16b"; -$fa-var-drupal: "\f1a9"; -$fa-var-edge: "\f282"; -$fa-var-edit: "\f044"; -$fa-var-eercast: "\f2da"; -$fa-var-eject: "\f052"; -$fa-var-ellipsis-h: "\f141"; -$fa-var-ellipsis-v: "\f142"; -$fa-var-empire: "\f1d1"; -$fa-var-envelope: "\f0e0"; -$fa-var-envelope-o: "\f003"; -$fa-var-envelope-open: "\f2b6"; -$fa-var-envelope-open-o: "\f2b7"; -$fa-var-envelope-square: "\f199"; -$fa-var-envira: "\f299"; -$fa-var-eraser: "\f12d"; -$fa-var-etsy: "\f2d7"; -$fa-var-eur: "\f153"; -$fa-var-euro: "\f153"; -$fa-var-exchange: "\f0ec"; -$fa-var-exclamation: "\f12a"; -$fa-var-exclamation-circle: "\f06a"; -$fa-var-exclamation-triangle: "\f071"; -$fa-var-expand: "\f065"; -$fa-var-expeditedssl: "\f23e"; -$fa-var-external-link: "\f08e"; -$fa-var-external-link-square: "\f14c"; -$fa-var-eye: "\f06e"; -$fa-var-eye-slash: "\f070"; -$fa-var-eyedropper: "\f1fb"; -$fa-var-fa: "\f2b4"; -$fa-var-facebook: "\f09a"; -$fa-var-facebook-f: "\f09a"; -$fa-var-facebook-official: "\f230"; -$fa-var-facebook-square: "\f082"; -$fa-var-fast-backward: "\f049"; -$fa-var-fast-forward: "\f050"; -$fa-var-fax: "\f1ac"; -$fa-var-feed: "\f09e"; -$fa-var-female: "\f182"; -$fa-var-fighter-jet: "\f0fb"; -$fa-var-file: "\f15b"; -$fa-var-file-archive-o: "\f1c6"; -$fa-var-file-audio-o: "\f1c7"; -$fa-var-file-code-o: "\f1c9"; -$fa-var-file-excel-o: "\f1c3"; -$fa-var-file-image-o: "\f1c5"; -$fa-var-file-movie-o: "\f1c8"; -$fa-var-file-o: "\f016"; -$fa-var-file-pdf-o: "\f1c1"; -$fa-var-file-photo-o: "\f1c5"; -$fa-var-file-picture-o: "\f1c5"; -$fa-var-file-powerpoint-o: "\f1c4"; -$fa-var-file-sound-o: "\f1c7"; -$fa-var-file-text: "\f15c"; -$fa-var-file-text-o: "\f0f6"; -$fa-var-file-video-o: "\f1c8"; -$fa-var-file-word-o: "\f1c2"; -$fa-var-file-zip-o: "\f1c6"; -$fa-var-files-o: "\f0c5"; -$fa-var-film: "\f008"; -$fa-var-filter: "\f0b0"; -$fa-var-fire: "\f06d"; -$fa-var-fire-extinguisher: "\f134"; -$fa-var-firefox: "\f269"; -$fa-var-first-order: "\f2b0"; -$fa-var-flag: "\f024"; -$fa-var-flag-checkered: "\f11e"; -$fa-var-flag-o: "\f11d"; -$fa-var-flash: "\f0e7"; -$fa-var-flask: "\f0c3"; -$fa-var-flickr: "\f16e"; -$fa-var-floppy-o: "\f0c7"; -$fa-var-folder: "\f07b"; -$fa-var-folder-o: "\f114"; -$fa-var-folder-open: "\f07c"; -$fa-var-folder-open-o: "\f115"; -$fa-var-font: "\f031"; -$fa-var-font-awesome: "\f2b4"; -$fa-var-fonticons: "\f280"; -$fa-var-fort-awesome: "\f286"; -$fa-var-forumbee: "\f211"; -$fa-var-forward: "\f04e"; -$fa-var-foursquare: "\f180"; -$fa-var-free-code-camp: "\f2c5"; -$fa-var-frown-o: "\f119"; -$fa-var-futbol-o: "\f1e3"; -$fa-var-gamepad: "\f11b"; -$fa-var-gavel: "\f0e3"; -$fa-var-gbp: "\f154"; -$fa-var-ge: "\f1d1"; -$fa-var-gear: "\f013"; -$fa-var-gears: "\f085"; -$fa-var-genderless: "\f22d"; -$fa-var-get-pocket: "\f265"; -$fa-var-gg: "\f260"; -$fa-var-gg-circle: "\f261"; -$fa-var-gift: "\f06b"; -$fa-var-git: "\f1d3"; -$fa-var-git-square: "\f1d2"; -$fa-var-github: "\f09b"; -$fa-var-github-alt: "\f113"; -$fa-var-github-square: "\f092"; -$fa-var-gitlab: "\f296"; -$fa-var-gittip: "\f184"; -$fa-var-glass: "\f000"; -$fa-var-glide: "\f2a5"; -$fa-var-glide-g: "\f2a6"; -$fa-var-globe: "\f0ac"; -$fa-var-google: "\f1a0"; -$fa-var-google-plus: "\f0d5"; -$fa-var-google-plus-circle: "\f2b3"; -$fa-var-google-plus-official: "\f2b3"; -$fa-var-google-plus-square: "\f0d4"; -$fa-var-google-wallet: "\f1ee"; -$fa-var-graduation-cap: "\f19d"; -$fa-var-gratipay: "\f184"; -$fa-var-grav: "\f2d6"; -$fa-var-group: "\f0c0"; -$fa-var-h-square: "\f0fd"; -$fa-var-hacker-news: "\f1d4"; -$fa-var-hand-grab-o: "\f255"; -$fa-var-hand-lizard-o: "\f258"; -$fa-var-hand-o-down: "\f0a7"; -$fa-var-hand-o-left: "\f0a5"; -$fa-var-hand-o-right: "\f0a4"; -$fa-var-hand-o-up: "\f0a6"; -$fa-var-hand-paper-o: "\f256"; -$fa-var-hand-peace-o: "\f25b"; -$fa-var-hand-pointer-o: "\f25a"; -$fa-var-hand-rock-o: "\f255"; -$fa-var-hand-scissors-o: "\f257"; -$fa-var-hand-spock-o: "\f259"; -$fa-var-hand-stop-o: "\f256"; -$fa-var-handshake-o: "\f2b5"; -$fa-var-hard-of-hearing: "\f2a4"; -$fa-var-hashtag: "\f292"; -$fa-var-hdd-o: "\f0a0"; -$fa-var-header: "\f1dc"; -$fa-var-headphones: "\f025"; -$fa-var-heart: "\f004"; -$fa-var-heart-o: "\f08a"; -$fa-var-heartbeat: "\f21e"; -$fa-var-history: "\f1da"; -$fa-var-home: "\f015"; -$fa-var-hospital-o: "\f0f8"; -$fa-var-hotel: "\f236"; -$fa-var-hourglass: "\f254"; -$fa-var-hourglass-1: "\f251"; -$fa-var-hourglass-2: "\f252"; -$fa-var-hourglass-3: "\f253"; -$fa-var-hourglass-end: "\f253"; -$fa-var-hourglass-half: "\f252"; -$fa-var-hourglass-o: "\f250"; -$fa-var-hourglass-start: "\f251"; -$fa-var-houzz: "\f27c"; -$fa-var-html5: "\f13b"; -$fa-var-i-cursor: "\f246"; -$fa-var-id-badge: "\f2c1"; -$fa-var-id-card: "\f2c2"; -$fa-var-id-card-o: "\f2c3"; -$fa-var-ils: "\f20b"; -$fa-var-image: "\f03e"; -$fa-var-imdb: "\f2d8"; -$fa-var-inbox: "\f01c"; -$fa-var-indent: "\f03c"; -$fa-var-industry: "\f275"; -$fa-var-info: "\f129"; -$fa-var-info-circle: "\f05a"; -$fa-var-inr: "\f156"; -$fa-var-instagram: "\f16d"; -$fa-var-institution: "\f19c"; -$fa-var-internet-explorer: "\f26b"; -$fa-var-intersex: "\f224"; -$fa-var-ioxhost: "\f208"; -$fa-var-italic: "\f033"; -$fa-var-joomla: "\f1aa"; -$fa-var-jpy: "\f157"; -$fa-var-jsfiddle: "\f1cc"; -$fa-var-key: "\f084"; -$fa-var-keyboard-o: "\f11c"; -$fa-var-krw: "\f159"; -$fa-var-language: "\f1ab"; -$fa-var-laptop: "\f109"; -$fa-var-lastfm: "\f202"; -$fa-var-lastfm-square: "\f203"; -$fa-var-leaf: "\f06c"; -$fa-var-leanpub: "\f212"; -$fa-var-legal: "\f0e3"; -$fa-var-lemon-o: "\f094"; -$fa-var-level-down: "\f149"; -$fa-var-level-up: "\f148"; -$fa-var-life-bouy: "\f1cd"; -$fa-var-life-buoy: "\f1cd"; -$fa-var-life-ring: "\f1cd"; -$fa-var-life-saver: "\f1cd"; -$fa-var-lightbulb-o: "\f0eb"; -$fa-var-line-chart: "\f201"; -$fa-var-link: "\f0c1"; -$fa-var-linkedin: "\f0e1"; -$fa-var-linkedin-square: "\f08c"; -$fa-var-linode: "\f2b8"; -$fa-var-linux: "\f17c"; -$fa-var-list: "\f03a"; -$fa-var-list-alt: "\f022"; -$fa-var-list-ol: "\f0cb"; -$fa-var-list-ul: "\f0ca"; -$fa-var-location-arrow: "\f124"; -$fa-var-lock: "\f023"; -$fa-var-long-arrow-down: "\f175"; -$fa-var-long-arrow-left: "\f177"; -$fa-var-long-arrow-right: "\f178"; -$fa-var-long-arrow-up: "\f176"; -$fa-var-low-vision: "\f2a8"; -$fa-var-magic: "\f0d0"; -$fa-var-magnet: "\f076"; -$fa-var-mail-forward: "\f064"; -$fa-var-mail-reply: "\f112"; -$fa-var-mail-reply-all: "\f122"; -$fa-var-male: "\f183"; -$fa-var-map: "\f279"; -$fa-var-map-marker: "\f041"; -$fa-var-map-o: "\f278"; -$fa-var-map-pin: "\f276"; -$fa-var-map-signs: "\f277"; -$fa-var-mars: "\f222"; -$fa-var-mars-double: "\f227"; -$fa-var-mars-stroke: "\f229"; -$fa-var-mars-stroke-h: "\f22b"; -$fa-var-mars-stroke-v: "\f22a"; -$fa-var-maxcdn: "\f136"; -$fa-var-meanpath: "\f20c"; -$fa-var-medium: "\f23a"; -$fa-var-medkit: "\f0fa"; -$fa-var-meetup: "\f2e0"; -$fa-var-meh-o: "\f11a"; -$fa-var-mercury: "\f223"; -$fa-var-microchip: "\f2db"; -$fa-var-microphone: "\f130"; -$fa-var-microphone-slash: "\f131"; -$fa-var-minus: "\f068"; -$fa-var-minus-circle: "\f056"; -$fa-var-minus-square: "\f146"; -$fa-var-minus-square-o: "\f147"; -$fa-var-mixcloud: "\f289"; -$fa-var-mobile: "\f10b"; -$fa-var-mobile-phone: "\f10b"; -$fa-var-modx: "\f285"; -$fa-var-money: "\f0d6"; -$fa-var-moon-o: "\f186"; -$fa-var-mortar-board: "\f19d"; -$fa-var-motorcycle: "\f21c"; -$fa-var-mouse-pointer: "\f245"; -$fa-var-music: "\f001"; -$fa-var-navicon: "\f0c9"; -$fa-var-neuter: "\f22c"; -$fa-var-newspaper-o: "\f1ea"; -$fa-var-object-group: "\f247"; -$fa-var-object-ungroup: "\f248"; -$fa-var-odnoklassniki: "\f263"; -$fa-var-odnoklassniki-square: "\f264"; -$fa-var-opencart: "\f23d"; -$fa-var-openid: "\f19b"; -$fa-var-opera: "\f26a"; -$fa-var-optin-monster: "\f23c"; -$fa-var-outdent: "\f03b"; -$fa-var-pagelines: "\f18c"; -$fa-var-paint-brush: "\f1fc"; -$fa-var-paper-plane: "\f1d8"; -$fa-var-paper-plane-o: "\f1d9"; -$fa-var-paperclip: "\f0c6"; -$fa-var-paragraph: "\f1dd"; -$fa-var-paste: "\f0ea"; -$fa-var-pause: "\f04c"; -$fa-var-pause-circle: "\f28b"; -$fa-var-pause-circle-o: "\f28c"; -$fa-var-paw: "\f1b0"; -$fa-var-paypal: "\f1ed"; -$fa-var-pencil: "\f040"; -$fa-var-pencil-square: "\f14b"; -$fa-var-pencil-square-o: "\f044"; -$fa-var-percent: "\f295"; -$fa-var-phone: "\f095"; -$fa-var-phone-square: "\f098"; -$fa-var-photo: "\f03e"; -$fa-var-picture-o: "\f03e"; -$fa-var-pie-chart: "\f200"; -$fa-var-pied-piper: "\f2ae"; -$fa-var-pied-piper-alt: "\f1a8"; -$fa-var-pied-piper-pp: "\f1a7"; -$fa-var-pinterest: "\f0d2"; -$fa-var-pinterest-p: "\f231"; -$fa-var-pinterest-square: "\f0d3"; -$fa-var-plane: "\f072"; -$fa-var-play: "\f04b"; -$fa-var-play-circle: "\f144"; -$fa-var-play-circle-o: "\f01d"; -$fa-var-plug: "\f1e6"; -$fa-var-plus: "\f067"; -$fa-var-plus-circle: "\f055"; -$fa-var-plus-square: "\f0fe"; -$fa-var-plus-square-o: "\f196"; -$fa-var-podcast: "\f2ce"; -$fa-var-power-off: "\f011"; -$fa-var-print: "\f02f"; -$fa-var-product-hunt: "\f288"; -$fa-var-puzzle-piece: "\f12e"; -$fa-var-qq: "\f1d6"; -$fa-var-qrcode: "\f029"; -$fa-var-question: "\f128"; -$fa-var-question-circle: "\f059"; -$fa-var-question-circle-o: "\f29c"; -$fa-var-quora: "\f2c4"; -$fa-var-quote-left: "\f10d"; -$fa-var-quote-right: "\f10e"; -$fa-var-ra: "\f1d0"; -$fa-var-random: "\f074"; -$fa-var-ravelry: "\f2d9"; -$fa-var-rebel: "\f1d0"; -$fa-var-recycle: "\f1b8"; -$fa-var-reddit: "\f1a1"; -$fa-var-reddit-alien: "\f281"; -$fa-var-reddit-square: "\f1a2"; -$fa-var-refresh: "\f021"; -$fa-var-registered: "\f25d"; -$fa-var-remove: "\f00d"; -$fa-var-renren: "\f18b"; -$fa-var-reorder: "\f0c9"; -$fa-var-repeat: "\f01e"; -$fa-var-reply: "\f112"; -$fa-var-reply-all: "\f122"; -$fa-var-resistance: "\f1d0"; -$fa-var-retweet: "\f079"; -$fa-var-rmb: "\f157"; -$fa-var-road: "\f018"; -$fa-var-rocket: "\f135"; -$fa-var-rotate-left: "\f0e2"; -$fa-var-rotate-right: "\f01e"; -$fa-var-rouble: "\f158"; -$fa-var-rss: "\f09e"; -$fa-var-rss-square: "\f143"; -$fa-var-rub: "\f158"; -$fa-var-ruble: "\f158"; -$fa-var-rupee: "\f156"; -$fa-var-s15: "\f2cd"; -$fa-var-safari: "\f267"; -$fa-var-save: "\f0c7"; -$fa-var-scissors: "\f0c4"; -$fa-var-scribd: "\f28a"; -$fa-var-search: "\f002"; -$fa-var-search-minus: "\f010"; -$fa-var-search-plus: "\f00e"; -$fa-var-sellsy: "\f213"; -$fa-var-send: "\f1d8"; -$fa-var-send-o: "\f1d9"; -$fa-var-server: "\f233"; -$fa-var-share: "\f064"; -$fa-var-share-alt: "\f1e0"; -$fa-var-share-alt-square: "\f1e1"; -$fa-var-share-square: "\f14d"; -$fa-var-share-square-o: "\f045"; -$fa-var-shekel: "\f20b"; -$fa-var-sheqel: "\f20b"; -$fa-var-shield: "\f132"; -$fa-var-ship: "\f21a"; -$fa-var-shirtsinbulk: "\f214"; -$fa-var-shopping-bag: "\f290"; -$fa-var-shopping-basket: "\f291"; -$fa-var-shopping-cart: "\f07a"; -$fa-var-shower: "\f2cc"; -$fa-var-sign-in: "\f090"; -$fa-var-sign-language: "\f2a7"; -$fa-var-sign-out: "\f08b"; -$fa-var-signal: "\f012"; -$fa-var-signing: "\f2a7"; -$fa-var-simplybuilt: "\f215"; -$fa-var-sitemap: "\f0e8"; -$fa-var-skyatlas: "\f216"; -$fa-var-skype: "\f17e"; -$fa-var-slack: "\f198"; -$fa-var-sliders: "\f1de"; -$fa-var-slideshare: "\f1e7"; -$fa-var-smile-o: "\f118"; -$fa-var-snapchat: "\f2ab"; -$fa-var-snapchat-ghost: "\f2ac"; -$fa-var-snapchat-square: "\f2ad"; -$fa-var-snowflake-o: "\f2dc"; -$fa-var-soccer-ball-o: "\f1e3"; -$fa-var-sort: "\f0dc"; -$fa-var-sort-alpha-asc: "\f15d"; -$fa-var-sort-alpha-desc: "\f15e"; -$fa-var-sort-amount-asc: "\f160"; -$fa-var-sort-amount-desc: "\f161"; -$fa-var-sort-asc: "\f0de"; -$fa-var-sort-desc: "\f0dd"; -$fa-var-sort-down: "\f0dd"; -$fa-var-sort-numeric-asc: "\f162"; -$fa-var-sort-numeric-desc: "\f163"; -$fa-var-sort-up: "\f0de"; -$fa-var-soundcloud: "\f1be"; -$fa-var-space-shuttle: "\f197"; -$fa-var-spinner: "\f110"; -$fa-var-spoon: "\f1b1"; -$fa-var-spotify: "\f1bc"; -$fa-var-square: "\f0c8"; -$fa-var-square-o: "\f096"; -$fa-var-stack-exchange: "\f18d"; -$fa-var-stack-overflow: "\f16c"; -$fa-var-star: "\f005"; -$fa-var-star-half: "\f089"; -$fa-var-star-half-empty: "\f123"; -$fa-var-star-half-full: "\f123"; -$fa-var-star-half-o: "\f123"; -$fa-var-star-o: "\f006"; -$fa-var-steam: "\f1b6"; -$fa-var-steam-square: "\f1b7"; -$fa-var-step-backward: "\f048"; -$fa-var-step-forward: "\f051"; -$fa-var-stethoscope: "\f0f1"; -$fa-var-sticky-note: "\f249"; -$fa-var-sticky-note-o: "\f24a"; -$fa-var-stop: "\f04d"; -$fa-var-stop-circle: "\f28d"; -$fa-var-stop-circle-o: "\f28e"; -$fa-var-street-view: "\f21d"; -$fa-var-strikethrough: "\f0cc"; -$fa-var-stumbleupon: "\f1a4"; -$fa-var-stumbleupon-circle: "\f1a3"; -$fa-var-subscript: "\f12c"; -$fa-var-subway: "\f239"; -$fa-var-suitcase: "\f0f2"; -$fa-var-sun-o: "\f185"; -$fa-var-superpowers: "\f2dd"; -$fa-var-superscript: "\f12b"; -$fa-var-support: "\f1cd"; -$fa-var-table: "\f0ce"; -$fa-var-tablet: "\f10a"; -$fa-var-tachometer: "\f0e4"; -$fa-var-tag: "\f02b"; -$fa-var-tags: "\f02c"; -$fa-var-tasks: "\f0ae"; -$fa-var-taxi: "\f1ba"; -$fa-var-telegram: "\f2c6"; -$fa-var-television: "\f26c"; -$fa-var-tencent-weibo: "\f1d5"; -$fa-var-terminal: "\f120"; -$fa-var-text-height: "\f034"; -$fa-var-text-width: "\f035"; -$fa-var-th: "\f00a"; -$fa-var-th-large: "\f009"; -$fa-var-th-list: "\f00b"; -$fa-var-themeisle: "\f2b2"; -$fa-var-thermometer: "\f2c7"; -$fa-var-thermometer-0: "\f2cb"; -$fa-var-thermometer-1: "\f2ca"; -$fa-var-thermometer-2: "\f2c9"; -$fa-var-thermometer-3: "\f2c8"; -$fa-var-thermometer-4: "\f2c7"; -$fa-var-thermometer-empty: "\f2cb"; -$fa-var-thermometer-full: "\f2c7"; -$fa-var-thermometer-half: "\f2c9"; -$fa-var-thermometer-quarter: "\f2ca"; -$fa-var-thermometer-three-quarters: "\f2c8"; -$fa-var-thumb-tack: "\f08d"; -$fa-var-thumbs-down: "\f165"; -$fa-var-thumbs-o-down: "\f088"; -$fa-var-thumbs-o-up: "\f087"; -$fa-var-thumbs-up: "\f164"; -$fa-var-ticket: "\f145"; -$fa-var-times: "\f00d"; -$fa-var-times-circle: "\f057"; -$fa-var-times-circle-o: "\f05c"; -$fa-var-times-rectangle: "\f2d3"; -$fa-var-times-rectangle-o: "\f2d4"; -$fa-var-tint: "\f043"; -$fa-var-toggle-down: "\f150"; -$fa-var-toggle-left: "\f191"; -$fa-var-toggle-off: "\f204"; -$fa-var-toggle-on: "\f205"; -$fa-var-toggle-right: "\f152"; -$fa-var-toggle-up: "\f151"; -$fa-var-trademark: "\f25c"; -$fa-var-train: "\f238"; -$fa-var-transgender: "\f224"; -$fa-var-transgender-alt: "\f225"; -$fa-var-trash: "\f1f8"; -$fa-var-trash-o: "\f014"; -$fa-var-tree: "\f1bb"; -$fa-var-trello: "\f181"; -$fa-var-tripadvisor: "\f262"; -$fa-var-trophy: "\f091"; -$fa-var-truck: "\f0d1"; -$fa-var-try: "\f195"; -$fa-var-tty: "\f1e4"; -$fa-var-tumblr: "\f173"; -$fa-var-tumblr-square: "\f174"; -$fa-var-turkish-lira: "\f195"; -$fa-var-tv: "\f26c"; -$fa-var-twitch: "\f1e8"; -$fa-var-twitter: "\f099"; -$fa-var-twitter-square: "\f081"; -$fa-var-umbrella: "\f0e9"; -$fa-var-underline: "\f0cd"; -$fa-var-undo: "\f0e2"; -$fa-var-universal-access: "\f29a"; -$fa-var-university: "\f19c"; -$fa-var-unlink: "\f127"; -$fa-var-unlock: "\f09c"; -$fa-var-unlock-alt: "\f13e"; -$fa-var-unsorted: "\f0dc"; -$fa-var-upload: "\f093"; -$fa-var-usb: "\f287"; -$fa-var-usd: "\f155"; -$fa-var-user: "\f007"; -$fa-var-user-circle: "\f2bd"; -$fa-var-user-circle-o: "\f2be"; -$fa-var-user-md: "\f0f0"; -$fa-var-user-o: "\f2c0"; -$fa-var-user-plus: "\f234"; -$fa-var-user-secret: "\f21b"; -$fa-var-user-times: "\f235"; -$fa-var-users: "\f0c0"; -$fa-var-vcard: "\f2bb"; -$fa-var-vcard-o: "\f2bc"; -$fa-var-venus: "\f221"; -$fa-var-venus-double: "\f226"; -$fa-var-venus-mars: "\f228"; -$fa-var-viacoin: "\f237"; -$fa-var-viadeo: "\f2a9"; -$fa-var-viadeo-square: "\f2aa"; -$fa-var-video-camera: "\f03d"; -$fa-var-vimeo: "\f27d"; -$fa-var-vimeo-square: "\f194"; -$fa-var-vine: "\f1ca"; -$fa-var-vk: "\f189"; -$fa-var-volume-control-phone: "\f2a0"; -$fa-var-volume-down: "\f027"; -$fa-var-volume-off: "\f026"; -$fa-var-volume-up: "\f028"; -$fa-var-warning: "\f071"; -$fa-var-wechat: "\f1d7"; -$fa-var-weibo: "\f18a"; -$fa-var-weixin: "\f1d7"; -$fa-var-whatsapp: "\f232"; -$fa-var-wheelchair: "\f193"; -$fa-var-wheelchair-alt: "\f29b"; -$fa-var-wifi: "\f1eb"; -$fa-var-wikipedia-w: "\f266"; -$fa-var-window-close: "\f2d3"; -$fa-var-window-close-o: "\f2d4"; -$fa-var-window-maximize: "\f2d0"; -$fa-var-window-minimize: "\f2d1"; -$fa-var-window-restore: "\f2d2"; -$fa-var-windows: "\f17a"; -$fa-var-won: "\f159"; -$fa-var-wordpress: "\f19a"; -$fa-var-wpbeginner: "\f297"; -$fa-var-wpexplorer: "\f2de"; -$fa-var-wpforms: "\f298"; -$fa-var-wrench: "\f0ad"; -$fa-var-xing: "\f168"; -$fa-var-xing-square: "\f169"; -$fa-var-y-combinator: "\f23b"; -$fa-var-y-combinator-square: "\f1d4"; -$fa-var-yahoo: "\f19e"; -$fa-var-yc: "\f23b"; -$fa-var-yc-square: "\f1d4"; -$fa-var-yelp: "\f1e9"; -$fa-var-yen: "\f157"; -$fa-var-yoast: "\f2b1"; -$fa-var-youtube: "\f167"; -$fa-var-youtube-play: "\f16a"; -$fa-var-youtube-square: "\f166"; - diff --git a/admin/bower_components/font-awesome/scss/font-awesome.scss b/admin/bower_components/font-awesome/scss/font-awesome.scss deleted file mode 100644 index f1c83aa..0000000 --- a/admin/bower_components/font-awesome/scss/font-awesome.scss +++ /dev/null @@ -1,18 +0,0 @@ -/*! - * Font Awesome 4.7.0 by @davegandy - http://fontawesome.io - @fontawesome - * License - http://fontawesome.io/license (Font: SIL OFL 1.1, CSS: MIT License) - */ - -@import "variables"; -@import "mixins"; -@import "path"; -@import "core"; -@import "larger"; -@import "fixed-width"; -@import "list"; -@import "bordered-pulled"; -@import "animated"; -@import "rotated-flipped"; -@import "stacked"; -@import "icons"; -@import "screen-reader"; diff --git a/admin/bower_components/jquery-knob/.bower.json b/admin/bower_components/jquery-knob/.bower.json deleted file mode 100644 index 5b8adec..0000000 --- a/admin/bower_components/jquery-knob/.bower.json +++ /dev/null @@ -1,23 +0,0 @@ -{ - "name": "jquery-knob", - "version": "1.2.13", - "main": "js/jquery.knob.js", - "description": "Nice, downward compatible, touchable, jQuery dial.", - "license": "MIT", - "ignore": [], - "dependencies": { - "jquery": ">=1.7.0" - }, - "devDependencies": {}, - "homepage": "https://github.com/aterrien/jQuery-Knob", - "_release": "1.2.13", - "_resolution": { - "type": "version", - "tag": "1.2.13", - "commit": "755309e933d326ffaa5a2d758dc377147b766515" - }, - "_source": "https://github.com/aterrien/jQuery-Knob.git", - "_target": "^1.2.13", - "_originalSource": "jquery-knob", - "_direct": true -} \ No newline at end of file diff --git a/admin/bower_components/jquery-knob/.gitignore b/admin/bower_components/jquery-knob/.gitignore deleted file mode 100644 index c094bf5..0000000 --- a/admin/bower_components/jquery-knob/.gitignore +++ /dev/null @@ -1 +0,0 @@ -nbproject/ \ No newline at end of file diff --git a/admin/bower_components/jquery-knob/LICENSE b/admin/bower_components/jquery-knob/LICENSE deleted file mode 100644 index f5db321..0000000 --- a/admin/bower_components/jquery-knob/LICENSE +++ /dev/null @@ -1,20 +0,0 @@ -The MIT License (MIT) - -Copyright (c) 2013 Anthony Terrien - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/admin/bower_components/jquery-knob/README.md b/admin/bower_components/jquery-knob/README.md deleted file mode 100644 index 2257ff4..0000000 --- a/admin/bower_components/jquery-knob/README.md +++ /dev/null @@ -1,148 +0,0 @@ -jQuery Knob -============= - -- canvas based ; no png or jpg sprites. -- touch, mouse and mousewheel, keyboard events implemented. -- downward compatible ; overloads an input element. - -Example -------- - -```html -<input type="text" value="75" class="dial"> - -<script> - $(function() { - $(".dial").knob(); - }); -</script> -``` - -Options -------- - -Options are provided as attributes 'data-option': - -```html -<input type="text" class="dial" data-min="-50" data-max="50"> -``` - -... or in the "knob()" call : - -```javascript -$(".dial").knob({ - 'min':-50, - 'max':50 -}); -``` - -The following options are supported : - -Behaviors : -* min : min value | default=0. -* max : max value | default=100. -* step : step size | default=1. -* angleOffset : starting angle in degrees | default=0. -* angleArc : arc size in degrees | default=360. -* stopper : stop at min & max on keydown/mousewheel | default=true. -* readOnly : disable input and events | default=false. -* rotation : direction of progression | default=clockwise. - -UI : -* cursor : display mode "cursor", cursor size could be changed passing a numeric value to the option, default width is used when passing boolean value "true" | default=gauge. -* thickness : gauge thickness. -* lineCap : gauge stroke endings. | default=butt, round=rounded line endings -* width : dial width. -* height : dial height. -* displayInput : default=true | false=hide input. -* displayPrevious : default=false | true=displays the previous value with transparency. -* fgColor : foreground color. -* inputColor : input value (number) color. -* font : font family. -* fontWeight : font weight. -* bgColor : background color. - -Hooks -------- - -```html -<script> - $(".dial").knob({ - 'release' : function (v) { /*make something*/ } - }); -</script> -``` - -* 'release' : executed on release - - Parameters : - + value : int, current value - -* 'change' : executed at each change of the value - - Parameters : - + value : int, current value - -* 'draw' : when drawing the canvas - - Context : - - this.g : canvas context 2D (see Canvas documentation) - - this.$ : jQuery wrapped element - - this.o : options - - this.i : input - - ... console.log(this); - -* 'cancel' : triggered on [esc] keydown - -* 'format' : allows to format output (add unit %, ms ...) - -The scope (this) of each hook function is the current Knob instance (refer to the demo code). - -Example -------- - -```html -<input type="text" value="75" class="dial"> - -<script> - $(".dial").knob({ - 'change' : function (v) { console.log(v); } - }); -</script> -``` - -Dynamically configure -------- - -```html -<script> - $('.dial').trigger( - 'configure', - { - "min":10, - "max":40, - "fgColor":"#FF0000", - "skin":"tron", - "cursor":true - } - ); -</script> -``` - -Set the value -------- - -```html -<script> - $('.dial') - .val(27) - .trigger('change'); -</script> -``` - -Supported browser -------- - -Tested on Chrome, Safari, Firefox, IE>=8.0 (IE8.0 with excanvas). - -![secretplan](https://raw.github.com/aterrien/jQuery-Knob/master/secretplan.jpg) diff --git a/admin/bower_components/jquery-knob/bower.json b/admin/bower_components/jquery-knob/bower.json deleted file mode 100644 index 1eeb316..0000000 --- a/admin/bower_components/jquery-knob/bower.json +++ /dev/null @@ -1,13 +0,0 @@ -{ - "name": "jquery-knob", - "version": "1.2.13", - "main": "js/jquery.knob.js", - "description": "Nice, downward compatible, touchable, jQuery dial.", - "license": "MIT", - "ignore": [], - "dependencies": { - "jquery": ">=1.7.0" - }, - "devDependencies": {} -} - diff --git a/admin/bower_components/jquery-knob/dist/jquery.knob.min.js b/admin/bower_components/jquery-knob/dist/jquery.knob.min.js deleted file mode 100644 index 72d6ed2..0000000 --- a/admin/bower_components/jquery-knob/dist/jquery.knob.min.js +++ /dev/null @@ -1 +0,0 @@ -(function(e){if(typeof define==="function"&&define.amd){define(["jquery"],e)}else{e(jQuery)}})(function(e){"use strict";var t={},n=Math.max,r=Math.min;t.c={};t.c.d=e(document);t.c.t=function(e){return e.originalEvent.touches.length-1};t.o=function(){var n=this;this.o=null;this.$=null;this.i=null;this.g=null;this.v=null;this.cv=null;this.x=0;this.y=0;this.w=0;this.h=0;this.$c=null;this.c=null;this.t=0;this.isInit=false;this.fgColor=null;this.pColor=null;this.dH=null;this.cH=null;this.eH=null;this.rH=null;this.scale=1;this.relative=false;this.relativeWidth=false;this.relativeHeight=false;this.$div=null;this.run=function(){var t=function(e,t){var r;for(r in t){n.o[r]=t[r]}n._carve().init();n._configure()._draw()};if(this.$.data("kontroled"))return;this.$.data("kontroled",true);this.extend();this.o=e.extend({min:this.$.data("min")!==undefined?this.$.data("min"):0,max:this.$.data("max")!==undefined?this.$.data("max"):100,stopper:true,readOnly:this.$.data("readonly")||this.$.attr("readonly")==="readonly",cursor:this.$.data("cursor")===true&&30||this.$.data("cursor")||0,thickness:this.$.data("thickness")&&Math.max(Math.min(this.$.data("thickness"),1),.01)||.35,lineCap:this.$.data("linecap")||"butt",width:this.$.data("width")||200,height:this.$.data("height")||200,displayInput:this.$.data("displayinput")==null||this.$.data("displayinput"),displayPrevious:this.$.data("displayprevious"),fgColor:this.$.data("fgcolor")||"#87CEEB",inputColor:this.$.data("inputcolor"),font:this.$.data("font")||"Arial",fontWeight:this.$.data("font-weight")||"bold",inline:false,step:this.$.data("step")||1,rotation:this.$.data("rotation"),draw:null,change:null,cancel:null,release:null,format:function(e){return e},parse:function(e){return parseFloat(e)}},this.o);this.o.flip=this.o.rotation==="anticlockwise"||this.o.rotation==="acw";if(!this.o.inputColor){this.o.inputColor=this.o.fgColor}if(this.$.is("fieldset")){this.v={};this.i=this.$.find("input");this.i.each(function(t){var r=e(this);n.i[t]=r;n.v[t]=n.o.parse(r.val());r.bind("change blur",function(){var e={};e[t]=r.val();n.val(n._validate(e))})});this.$.find("legend").remove()}else{this.i=this.$;this.v=this.o.parse(this.$.val());this.v===""&&(this.v=this.o.min);this.$.bind("change blur",function(){n.val(n._validate(n.o.parse(n.$.val())))})}!this.o.displayInput&&this.$.hide();this.$c=e(document.createElement("canvas")).attr({width:this.o.width,height:this.o.height});this.$div=e('<div style="'+(this.o.inline?"display:inline;":"")+"width:"+this.o.width+"px;height:"+this.o.height+"px;"+'"></div>');this.$.wrap(this.$div).before(this.$c);this.$div=this.$.parent();if(typeof G_vmlCanvasManager!=="undefined"){G_vmlCanvasManager.initElement(this.$c[0])}this.c=this.$c[0].getContext?this.$c[0].getContext("2d"):null;if(!this.c){throw{name:"CanvasNotSupportedException",message:"Canvas not supported. Please use excanvas on IE8.0.",toString:function(){return this.name+": "+this.message}}}this.scale=(window.devicePixelRatio||1)/(this.c.webkitBackingStorePixelRatio||this.c.mozBackingStorePixelRatio||this.c.msBackingStorePixelRatio||this.c.oBackingStorePixelRatio||this.c.backingStorePixelRatio||1);this.relativeWidth=this.o.width%1!==0&&this.o.width.indexOf("%");this.relativeHeight=this.o.height%1!==0&&this.o.height.indexOf("%");this.relative=this.relativeWidth||this.relativeHeight;this._carve();if(this.v instanceof Object){this.cv={};this.copy(this.v,this.cv)}else{this.cv=this.v}this.$.bind("configure",t).parent().bind("configure",t);this._listen()._configure()._xy().init();this.isInit=true;this.$.val(this.o.format(this.v));this._draw();return this};this._carve=function(){if(this.relative){var e=this.relativeWidth?this.$div.parent().width()*parseInt(this.o.width)/100:this.$div.parent().width(),t=this.relativeHeight?this.$div.parent().height()*parseInt(this.o.height)/100:this.$div.parent().height();this.w=this.h=Math.min(e,t)}else{this.w=this.o.width;this.h=this.o.height}this.$div.css({width:this.w+"px",height:this.h+"px"});this.$c.attr({width:this.w,height:this.h});if(this.scale!==1){this.$c[0].width=this.$c[0].width*this.scale;this.$c[0].height=this.$c[0].height*this.scale;this.$c.width(this.w);this.$c.height(this.h)}return this};this._draw=function(){var e=true;n.g=n.c;n.clear();n.dH&&(e=n.dH());e!==false&&n.draw()};this._touch=function(e){var r=function(e){var t=n.xy2val(e.originalEvent.touches[n.t].pageX,e.originalEvent.touches[n.t].pageY);if(t==n.cv)return;if(n.cH&&n.cH(t)===false)return;n.change(n._validate(t));n._draw()};this.t=t.c.t(e);r(e);t.c.d.bind("touchmove.k",r).bind("touchend.k",function(){t.c.d.unbind("touchmove.k touchend.k");n.val(n.cv)});return this};this._mouse=function(e){var r=function(e){var t=n.xy2val(e.pageX,e.pageY);if(t==n.cv)return;if(n.cH&&n.cH(t)===false)return;n.change(n._validate(t));n._draw()};r(e);t.c.d.bind("mousemove.k",r).bind("keyup.k",function(e){if(e.keyCode===27){t.c.d.unbind("mouseup.k mousemove.k keyup.k");if(n.eH&&n.eH()===false)return;n.cancel()}}).bind("mouseup.k",function(e){t.c.d.unbind("mousemove.k mouseup.k keyup.k");n.val(n.cv)});return this};this._xy=function(){var e=this.$c.offset();this.x=e.left;this.y=e.top;return this};this._listen=function(){if(!this.o.readOnly){this.$c.bind("mousedown",function(e){e.preventDefault();n._xy()._mouse(e)}).bind("touchstart",function(e){e.preventDefault();n._xy()._touch(e)});this.listen()}else{this.$.attr("readonly","readonly")}if(this.relative){e(window).resize(function(){n._carve().init();n._draw()})}return this};this._configure=function(){if(this.o.draw)this.dH=this.o.draw;if(this.o.change)this.cH=this.o.change;if(this.o.cancel)this.eH=this.o.cancel;if(this.o.release)this.rH=this.o.release;if(this.o.displayPrevious){this.pColor=this.h2rgba(this.o.fgColor,"0.4");this.fgColor=this.h2rgba(this.o.fgColor,"0.6")}else{this.fgColor=this.o.fgColor}return this};this._clear=function(){this.$c[0].width=this.$c[0].width};this._validate=function(e){var t=~~((e<0?-.5:.5)+e/this.o.step)*this.o.step;return Math.round(t*100)/100};this.listen=function(){};this.extend=function(){};this.init=function(){};this.change=function(e){};this.val=function(e){};this.xy2val=function(e,t){};this.draw=function(){};this.clear=function(){this._clear()};this.h2rgba=function(e,t){var n;e=e.substring(1,7);n=[parseInt(e.substring(0,2),16),parseInt(e.substring(2,4),16),parseInt(e.substring(4,6),16)];return"rgba("+n[0]+","+n[1]+","+n[2]+","+t+")"};this.copy=function(e,t){for(var n in e){t[n]=e[n]}}};t.Dial=function(){t.o.call(this);this.startAngle=null;this.xy=null;this.radius=null;this.lineWidth=null;this.cursorExt=null;this.w2=null;this.PI2=2*Math.PI;this.extend=function(){this.o=e.extend({bgColor:this.$.data("bgcolor")||"#EEEEEE",angleOffset:this.$.data("angleoffset")||0,angleArc:this.$.data("anglearc")||360,inline:true},this.o)};this.val=function(e,t){if(null!=e){e=this.o.parse(e);if(t!==false&&e!=this.v&&this.rH&&this.rH(e)===false){return}this.cv=this.o.stopper?n(r(e,this.o.max),this.o.min):e;this.v=this.cv;this.$.val(this.o.format(this.v));this._draw()}else{return this.v}};this.xy2val=function(e,t){var i,s;i=Math.atan2(e-(this.x+this.w2),-(t-this.y-this.w2))-this.angleOffset;if(this.o.flip){i=this.angleArc-i-this.PI2}if(this.angleArc!=this.PI2&&i<0&&i>-.5){i=0}else if(i<0){i+=this.PI2}s=i*(this.o.max-this.o.min)/this.angleArc+this.o.min;this.o.stopper&&(s=n(r(s,this.o.max),this.o.min));return s};this.listen=function(){var t=this,i,s,o=function(e){e.preventDefault();var o=e.originalEvent,u=o.detail||o.wheelDeltaX,a=o.detail||o.wheelDeltaY,f=t._validate(t.o.parse(t.$.val()))+(u>0||a>0?t.o.step:u<0||a<0?-t.o.step:0);f=n(r(f,t.o.max),t.o.min);t.val(f,false);if(t.rH){clearTimeout(i);i=setTimeout(function(){t.rH(f);i=null},100);if(!s){s=setTimeout(function(){if(i)t.rH(f);s=null},200)}}},u,a,f=1,l={37:-t.o.step,38:t.o.step,39:t.o.step,40:-t.o.step};this.$.bind("keydown",function(i){var s=i.keyCode;if(s>=96&&s<=105){s=i.keyCode=s-48}u=parseInt(String.fromCharCode(s));if(isNaN(u)){s!==13&&s!==8&&s!==9&&s!==189&&(s!==190||t.$.val().match(/\./))&&i.preventDefault();if(e.inArray(s,[37,38,39,40])>-1){i.preventDefault();var o=t.o.parse(t.$.val())+l[s]*f;t.o.stopper&&(o=n(r(o,t.o.max),t.o.min));t.change(t._validate(o));t._draw();a=window.setTimeout(function(){f*=2},30)}}}).bind("keyup",function(e){if(isNaN(u)){if(a){window.clearTimeout(a);a=null;f=1;t.val(t.$.val())}}else{t.$.val()>t.o.max&&t.$.val(t.o.max)||t.$.val()<t.o.min&&t.$.val(t.o.min)}});this.$c.bind("mousewheel DOMMouseScroll",o);this.$.bind("mousewheel DOMMouseScroll",o)};this.init=function(){if(this.v<this.o.min||this.v>this.o.max){this.v=this.o.min}this.$.val(this.v);this.w2=this.w/2;this.cursorExt=this.o.cursor/100;this.xy=this.w2*this.scale;this.lineWidth=this.xy*this.o.thickness;this.lineCap=this.o.lineCap;this.radius=this.xy-this.lineWidth/2;this.o.angleOffset&&(this.o.angleOffset=isNaN(this.o.angleOffset)?0:this.o.angleOffset);this.o.angleArc&&(this.o.angleArc=isNaN(this.o.angleArc)?this.PI2:this.o.angleArc);this.angleOffset=this.o.angleOffset*Math.PI/180;this.angleArc=this.o.angleArc*Math.PI/180;this.startAngle=1.5*Math.PI+this.angleOffset;this.endAngle=1.5*Math.PI+this.angleOffset+this.angleArc;var e=n(String(Math.abs(this.o.max)).length,String(Math.abs(this.o.min)).length,2)+2;this.o.displayInput&&this.i.css({width:(this.w/2+4>>0)+"px",height:(this.w/3>>0)+"px",position:"absolute","vertical-align":"middle","margin-top":(this.w/3>>0)+"px","margin-left":"-"+(this.w*3/4+2>>0)+"px",border:0,background:"none",font:this.o.fontWeight+" "+(this.w/e>>0)+"px "+this.o.font,"text-align":"center",color:this.o.inputColor||this.o.fgColor,padding:"0px","-webkit-appearance":"none"})||this.i.css({width:"0px",visibility:"hidden"})};this.change=function(e){this.cv=e;this.$.val(this.o.format(e))};this.angle=function(e){return(e-this.o.min)*this.angleArc/(this.o.max-this.o.min)};this.arc=function(e){var t,n;e=this.angle(e);if(this.o.flip){t=this.endAngle+1e-5;n=t-e-1e-5}else{t=this.startAngle-1e-5;n=t+e+1e-5}this.o.cursor&&(t=n-this.cursorExt)&&(n=n+this.cursorExt);return{s:t,e:n,d:this.o.flip&&!this.o.cursor}};this.draw=function(){var e=this.g,t=this.arc(this.cv),n,r=1;e.lineWidth=this.lineWidth;e.lineCap=this.lineCap;if(this.o.bgColor!=="none"){e.beginPath();e.strokeStyle=this.o.bgColor;e.arc(this.xy,this.xy,this.radius,this.endAngle-1e-5,this.startAngle+1e-5,true);e.stroke()}if(this.o.displayPrevious){n=this.arc(this.v);e.beginPath();e.strokeStyle=this.pColor;e.arc(this.xy,this.xy,this.radius,n.s,n.e,n.d);e.stroke();r=this.cv==this.v}e.beginPath();e.strokeStyle=r?this.o.fgColor:this.fgColor;e.arc(this.xy,this.xy,this.radius,t.s,t.e,t.d);e.stroke()};this.cancel=function(){this.val(this.v)}};e.fn.dial=e.fn.knob=function(n){return this.each(function(){var r=new t.Dial;r.o=n;r.$=e(this);r.run()}).parent()}}) \ No newline at end of file diff --git a/admin/bower_components/jquery-knob/excanvas.js b/admin/bower_components/jquery-knob/excanvas.js deleted file mode 100644 index 367764b..0000000 --- a/admin/bower_components/jquery-knob/excanvas.js +++ /dev/null @@ -1,924 +0,0 @@ -// Copyright 2006 Google Inc. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - - -// Known Issues: -// -// * Patterns are not implemented. -// * Radial gradient are not implemented. The VML version of these look very -// different from the canvas one. -// * Clipping paths are not implemented. -// * Coordsize. The width and height attribute have higher priority than the -// width and height style values which isn't correct. -// * Painting mode isn't implemented. -// * Canvas width/height should is using content-box by default. IE in -// Quirks mode will draw the canvas using border-box. Either change your -// doctype to HTML5 -// (http://www.whatwg.org/specs/web-apps/current-work/#the-doctype) -// or use Box Sizing Behavior from WebFX -// (http://webfx.eae.net/dhtml/boxsizing/boxsizing.html) -// * Non uniform scaling does not correctly scale strokes. -// * Optimize. There is always room for speed improvements. - -// Only add this code if we do not already have a canvas implementation -if (!document.createElement('canvas').getContext) { - -(function() { - - // alias some functions to make (compiled) code shorter - var m = Math; - var mr = m.round; - var ms = m.sin; - var mc = m.cos; - var abs = m.abs; - var sqrt = m.sqrt; - - // this is used for sub pixel precision - var Z = 10; - var Z2 = Z / 2; - - /** - * This funtion is assigned to the <canvas> elements as element.getContext(). - * @this {HTMLElement} - * @return {CanvasRenderingContext2D_} - */ - function getContext() { - return this.context_ || - (this.context_ = new CanvasRenderingContext2D_(this)); - } - - var slice = Array.prototype.slice; - - /** - * Binds a function to an object. The returned function will always use the - * passed in {@code obj} as {@code this}. - * - * Example: - * - * g = bind(f, obj, a, b) - * g(c, d) // will do f.call(obj, a, b, c, d) - * - * @param {Function} f The function to bind the object to - * @param {Object} obj The object that should act as this when the function - * is called - * @param {*} var_args Rest arguments that will be used as the initial - * arguments when the function is called - * @return {Function} A new function that has bound this - */ - function bind(f, obj, var_args) { - var a = slice.call(arguments, 2); - return function() { - return f.apply(obj, a.concat(slice.call(arguments))); - }; - } - - var G_vmlCanvasManager_ = { - init: function(opt_doc) { - if (/MSIE/.test(navigator.userAgent) && !window.opera) { - var doc = opt_doc || document; - // Create a dummy element so that IE will allow canvas elements to be - // recognized. - doc.createElement('canvas'); - doc.attachEvent('onreadystatechange', bind(this.init_, this, doc)); - } - }, - - init_: function(doc) { - // create xmlns - if (!doc.namespaces['g_vml_']) { - doc.namespaces.add('g_vml_', 'urn:schemas-microsoft-com:vml', - '#default#VML'); - - } - if (!doc.namespaces['g_o_']) { - doc.namespaces.add('g_o_', 'urn:schemas-microsoft-com:office:office', - '#default#VML'); - } - - // Setup default CSS. Only add one style sheet per document - if (!doc.styleSheets['ex_canvas_']) { - var ss = doc.createStyleSheet(); - ss.owningElement.id = 'ex_canvas_'; - ss.cssText = 'canvas{display:inline-block;overflow:hidden;' + - // default size is 300x150 in Gecko and Opera - 'text-align:left;width:300px;height:150px}' + - 'g_vml_\\:*{behavior:url(#default#VML)}' + - 'g_o_\\:*{behavior:url(#default#VML)}'; - - } - - // find all canvas elements - var els = doc.getElementsByTagName('canvas'); - for (var i = 0; i < els.length; i++) { - this.initElement(els[i]); - } - }, - - /** - * Public initializes a canvas element so that it can be used as canvas - * element from now on. This is called automatically before the page is - * loaded but if you are creating elements using createElement you need to - * make sure this is called on the element. - * @param {HTMLElement} el The canvas element to initialize. - * @return {HTMLElement} the element that was created. - */ - initElement: function(el) { - if (!el.getContext) { - - el.getContext = getContext; - - // Remove fallback content. There is no way to hide text nodes so we - // just remove all childNodes. We could hide all elements and remove - // text nodes but who really cares about the fallback content. - el.innerHTML = ''; - - // do not use inline function because that will leak memory - el.attachEvent('onpropertychange', onPropertyChange); - el.attachEvent('onresize', onResize); - - var attrs = el.attributes; - if (attrs.width && attrs.width.specified) { - // TODO: use runtimeStyle and coordsize - // el.getContext().setWidth_(attrs.width.nodeValue); - el.style.width = attrs.width.nodeValue + 'px'; - } else { - el.width = el.clientWidth; - } - if (attrs.height && attrs.height.specified) { - // TODO: use runtimeStyle and coordsize - // el.getContext().setHeight_(attrs.height.nodeValue); - el.style.height = attrs.height.nodeValue + 'px'; - } else { - el.height = el.clientHeight; - } - //el.getContext().setCoordsize_() - } - return el; - } - }; - - function onPropertyChange(e) { - var el = e.srcElement; - - switch (e.propertyName) { - case 'width': - el.style.width = el.attributes.width.nodeValue + 'px'; - el.getContext().clearRect(); - break; - case 'height': - el.style.height = el.attributes.height.nodeValue + 'px'; - el.getContext().clearRect(); - break; - } - } - - function onResize(e) { - var el = e.srcElement; - if (el.firstChild) { - el.firstChild.style.width = el.clientWidth + 'px'; - el.firstChild.style.height = el.clientHeight + 'px'; - } - } - - G_vmlCanvasManager_.init(); - - // precompute "00" to "FF" - var dec2hex = []; - for (var i = 0; i < 16; i++) { - for (var j = 0; j < 16; j++) { - dec2hex[i * 16 + j] = i.toString(16) + j.toString(16); - } - } - - function createMatrixIdentity() { - return [ - [1, 0, 0], - [0, 1, 0], - [0, 0, 1] - ]; - } - - function matrixMultiply(m1, m2) { - var result = createMatrixIdentity(); - - for (var x = 0; x < 3; x++) { - for (var y = 0; y < 3; y++) { - var sum = 0; - - for (var z = 0; z < 3; z++) { - sum += m1[x][z] * m2[z][y]; - } - - result[x][y] = sum; - } - } - return result; - } - - function copyState(o1, o2) { - o2.fillStyle = o1.fillStyle; - o2.lineCap = o1.lineCap; - o2.lineJoin = o1.lineJoin; - o2.lineWidth = o1.lineWidth; - o2.miterLimit = o1.miterLimit; - o2.shadowBlur = o1.shadowBlur; - o2.shadowColor = o1.shadowColor; - o2.shadowOffsetX = o1.shadowOffsetX; - o2.shadowOffsetY = o1.shadowOffsetY; - o2.strokeStyle = o1.strokeStyle; - o2.globalAlpha = o1.globalAlpha; - o2.arcScaleX_ = o1.arcScaleX_; - o2.arcScaleY_ = o1.arcScaleY_; - o2.lineScale_ = o1.lineScale_; - } - - function processStyle(styleString) { - var str, alpha = 1; - - styleString = String(styleString); - if (styleString.substring(0, 3) == 'rgb') { - var start = styleString.indexOf('(', 3); - var end = styleString.indexOf(')', start + 1); - var guts = styleString.substring(start + 1, end).split(','); - - str = '#'; - for (var i = 0; i < 3; i++) { - str += dec2hex[Number(guts[i])]; - } - - if (guts.length == 4 && styleString.substr(3, 1) == 'a') { - alpha = guts[3]; - } - } else { - str = styleString; - } - - return {color: str, alpha: alpha}; - } - - function processLineCap(lineCap) { - switch (lineCap) { - case 'butt': - return 'flat'; - case 'round': - return 'round'; - case 'square': - default: - return 'square'; - } - } - - /** - * This class implements CanvasRenderingContext2D interface as described by - * the WHATWG. - * @param {HTMLElement} surfaceElement The element that the 2D context should - * be associated with - */ - function CanvasRenderingContext2D_(surfaceElement) { - this.m_ = createMatrixIdentity(); - - this.mStack_ = []; - this.aStack_ = []; - this.currentPath_ = []; - - // Canvas context properties - this.strokeStyle = '#000'; - this.fillStyle = '#000'; - - this.lineWidth = 1; - this.lineJoin = 'miter'; - this.lineCap = 'butt'; - this.miterLimit = Z * 1; - this.globalAlpha = 1; - this.canvas = surfaceElement; - - var el = surfaceElement.ownerDocument.createElement('div'); - el.style.width = surfaceElement.clientWidth + 'px'; - el.style.height = surfaceElement.clientHeight + 'px'; - el.style.overflow = 'hidden'; - el.style.position = 'absolute'; - surfaceElement.appendChild(el); - - this.element_ = el; - this.arcScaleX_ = 1; - this.arcScaleY_ = 1; - this.lineScale_ = 1; - } - - var contextPrototype = CanvasRenderingContext2D_.prototype; - contextPrototype.clearRect = function() { - this.element_.innerHTML = ''; - }; - - contextPrototype.beginPath = function() { - // TODO: Branch current matrix so that save/restore has no effect - // as per safari docs. - this.currentPath_ = []; - }; - - contextPrototype.moveTo = function(aX, aY) { - var p = this.getCoords_(aX, aY); - this.currentPath_.push({type: 'moveTo', x: p.x, y: p.y}); - this.currentX_ = p.x; - this.currentY_ = p.y; - }; - - contextPrototype.lineTo = function(aX, aY) { - var p = this.getCoords_(aX, aY); - this.currentPath_.push({type: 'lineTo', x: p.x, y: p.y}); - - this.currentX_ = p.x; - this.currentY_ = p.y; - }; - - contextPrototype.bezierCurveTo = function(aCP1x, aCP1y, - aCP2x, aCP2y, - aX, aY) { - var p = this.getCoords_(aX, aY); - var cp1 = this.getCoords_(aCP1x, aCP1y); - var cp2 = this.getCoords_(aCP2x, aCP2y); - bezierCurveTo(this, cp1, cp2, p); - }; - - // Helper function that takes the already fixed cordinates. - function bezierCurveTo(self, cp1, cp2, p) { - self.currentPath_.push({ - type: 'bezierCurveTo', - cp1x: cp1.x, - cp1y: cp1.y, - cp2x: cp2.x, - cp2y: cp2.y, - x: p.x, - y: p.y - }); - self.currentX_ = p.x; - self.currentY_ = p.y; - } - - contextPrototype.quadraticCurveTo = function(aCPx, aCPy, aX, aY) { - // the following is lifted almost directly from - // http://developer.mozilla.org/en/docs/Canvas_tutorial:Drawing_shapes - - var cp = this.getCoords_(aCPx, aCPy); - var p = this.getCoords_(aX, aY); - - var cp1 = { - x: this.currentX_ + 2.0 / 3.0 * (cp.x - this.currentX_), - y: this.currentY_ + 2.0 / 3.0 * (cp.y - this.currentY_) - }; - var cp2 = { - x: cp1.x + (p.x - this.currentX_) / 3.0, - y: cp1.y + (p.y - this.currentY_) / 3.0 - }; - - bezierCurveTo(this, cp1, cp2, p); - }; - - contextPrototype.arc = function(aX, aY, aRadius, - aStartAngle, aEndAngle, aClockwise) { - aRadius *= Z; - var arcType = aClockwise ? 'at' : 'wa'; - - var xStart = aX + mc(aStartAngle) * aRadius - Z2; - var yStart = aY + ms(aStartAngle) * aRadius - Z2; - - var xEnd = aX + mc(aEndAngle) * aRadius - Z2; - var yEnd = aY + ms(aEndAngle) * aRadius - Z2; - - // IE won't render arches drawn counter clockwise if xStart == xEnd. - if (xStart == xEnd && !aClockwise) { - xStart += 0.125; // Offset xStart by 1/80 of a pixel. Use something - // that can be represented in binary - } - - var p = this.getCoords_(aX, aY); - var pStart = this.getCoords_(xStart, yStart); - var pEnd = this.getCoords_(xEnd, yEnd); - - this.currentPath_.push({type: arcType, - x: p.x, - y: p.y, - radius: aRadius, - xStart: pStart.x, - yStart: pStart.y, - xEnd: pEnd.x, - yEnd: pEnd.y}); - - }; - - contextPrototype.rect = function(aX, aY, aWidth, aHeight) { - this.moveTo(aX, aY); - this.lineTo(aX + aWidth, aY); - this.lineTo(aX + aWidth, aY + aHeight); - this.lineTo(aX, aY + aHeight); - this.closePath(); - }; - - contextPrototype.strokeRect = function(aX, aY, aWidth, aHeight) { - var oldPath = this.currentPath_; - this.beginPath(); - - this.moveTo(aX, aY); - this.lineTo(aX + aWidth, aY); - this.lineTo(aX + aWidth, aY + aHeight); - this.lineTo(aX, aY + aHeight); - this.closePath(); - this.stroke(); - - this.currentPath_ = oldPath; - }; - - contextPrototype.fillRect = function(aX, aY, aWidth, aHeight) { - var oldPath = this.currentPath_; - this.beginPath(); - - this.moveTo(aX, aY); - this.lineTo(aX + aWidth, aY); - this.lineTo(aX + aWidth, aY + aHeight); - this.lineTo(aX, aY + aHeight); - this.closePath(); - this.fill(); - - this.currentPath_ = oldPath; - }; - - contextPrototype.createLinearGradient = function(aX0, aY0, aX1, aY1) { - var gradient = new CanvasGradient_('gradient'); - gradient.x0_ = aX0; - gradient.y0_ = aY0; - gradient.x1_ = aX1; - gradient.y1_ = aY1; - return gradient; - }; - - contextPrototype.createRadialGradient = function(aX0, aY0, aR0, - aX1, aY1, aR1) { - var gradient = new CanvasGradient_('gradientradial'); - gradient.x0_ = aX0; - gradient.y0_ = aY0; - gradient.r0_ = aR0; - gradient.x1_ = aX1; - gradient.y1_ = aY1; - gradient.r1_ = aR1; - return gradient; - }; - - contextPrototype.drawImage = function(image, var_args) { - var dx, dy, dw, dh, sx, sy, sw, sh; - - // to find the original width we overide the width and height - var oldRuntimeWidth = image.runtimeStyle.width; - var oldRuntimeHeight = image.runtimeStyle.height; - image.runtimeStyle.width = 'auto'; - image.runtimeStyle.height = 'auto'; - - // get the original size - var w = image.width; - var h = image.height; - - // and remove overides - image.runtimeStyle.width = oldRuntimeWidth; - image.runtimeStyle.height = oldRuntimeHeight; - - if (arguments.length == 3) { - dx = arguments[1]; - dy = arguments[2]; - sx = sy = 0; - sw = dw = w; - sh = dh = h; - } else if (arguments.length == 5) { - dx = arguments[1]; - dy = arguments[2]; - dw = arguments[3]; - dh = arguments[4]; - sx = sy = 0; - sw = w; - sh = h; - } else if (arguments.length == 9) { - sx = arguments[1]; - sy = arguments[2]; - sw = arguments[3]; - sh = arguments[4]; - dx = arguments[5]; - dy = arguments[6]; - dw = arguments[7]; - dh = arguments[8]; - } else { - throw Error('Invalid number of arguments'); - } - - var d = this.getCoords_(dx, dy); - - var w2 = sw / 2; - var h2 = sh / 2; - - var vmlStr = []; - - var W = 10; - var H = 10; - - // For some reason that I've now forgotten, using divs didn't work - vmlStr.push(' <g_vml_:group', - ' coordsize="', Z * W, ',', Z * H, '"', - ' coordorigin="0,0"' , - ' style="width:', W, 'px;height:', H, 'px;position:absolute;'); - - // If filters are necessary (rotation exists), create them - // filters are bog-slow, so only create them if abbsolutely necessary - // The following check doesn't account for skews (which don't exist - // in the canvas spec (yet) anyway. - - if (this.m_[0][0] != 1 || this.m_[0][1]) { - var filter = []; - - // Note the 12/21 reversal - filter.push('M11=', this.m_[0][0], ',', - 'M12=', this.m_[1][0], ',', - 'M21=', this.m_[0][1], ',', - 'M22=', this.m_[1][1], ',', - 'Dx=', mr(d.x / Z), ',', - 'Dy=', mr(d.y / Z), ''); - - // Bounding box calculation (need to minimize displayed area so that - // filters don't waste time on unused pixels. - var max = d; - var c2 = this.getCoords_(dx + dw, dy); - var c3 = this.getCoords_(dx, dy + dh); - var c4 = this.getCoords_(dx + dw, dy + dh); - - max.x = m.max(max.x, c2.x, c3.x, c4.x); - max.y = m.max(max.y, c2.y, c3.y, c4.y); - - vmlStr.push('padding:0 ', mr(max.x / Z), 'px ', mr(max.y / Z), - 'px 0;filter:progid:DXImageTransform.Microsoft.Matrix(', - filter.join(''), ", sizingmethod='clip');") - } else { - vmlStr.push('top:', mr(d.y / Z), 'px;left:', mr(d.x / Z), 'px;'); - } - - vmlStr.push(' ">' , - '<g_vml_:image src="', image.src, '"', - ' style="width:', Z * dw, 'px;', - ' height:', Z * dh, 'px;"', - ' cropleft="', sx / w, '"', - ' croptop="', sy / h, '"', - ' cropright="', (w - sx - sw) / w, '"', - ' cropbottom="', (h - sy - sh) / h, '"', - ' />', - '</g_vml_:group>'); - - this.element_.insertAdjacentHTML('BeforeEnd', - vmlStr.join('')); - }; - - contextPrototype.stroke = function(aFill) { - var lineStr = []; - var lineOpen = false; - var a = processStyle(aFill ? this.fillStyle : this.strokeStyle); - var color = a.color; - var opacity = a.alpha * this.globalAlpha; - - var W = 10; - var H = 10; - - lineStr.push('<g_vml_:shape', - ' filled="', !!aFill, '"', - ' style="position:absolute;width:', W, 'px;height:', H, 'px;"', - ' coordorigin="0 0" coordsize="', Z * W, ' ', Z * H, '"', - ' stroked="', !aFill, '"', - ' path="'); - - var newSeq = false; - var min = {x: null, y: null}; - var max = {x: null, y: null}; - - for (var i = 0; i < this.currentPath_.length; i++) { - var p = this.currentPath_[i]; - var c; - - switch (p.type) { - case 'moveTo': - c = p; - lineStr.push(' m ', mr(p.x), ',', mr(p.y)); - break; - case 'lineTo': - lineStr.push(' l ', mr(p.x), ',', mr(p.y)); - break; - case 'close': - lineStr.push(' x '); - p = null; - break; - case 'bezierCurveTo': - lineStr.push(' c ', - mr(p.cp1x), ',', mr(p.cp1y), ',', - mr(p.cp2x), ',', mr(p.cp2y), ',', - mr(p.x), ',', mr(p.y)); - break; - case 'at': - case 'wa': - lineStr.push(' ', p.type, ' ', - mr(p.x - this.arcScaleX_ * p.radius), ',', - mr(p.y - this.arcScaleY_ * p.radius), ' ', - mr(p.x + this.arcScaleX_ * p.radius), ',', - mr(p.y + this.arcScaleY_ * p.radius), ' ', - mr(p.xStart), ',', mr(p.yStart), ' ', - mr(p.xEnd), ',', mr(p.yEnd)); - break; - } - - - // TODO: Following is broken for curves due to - // move to proper paths. - - // Figure out dimensions so we can do gradient fills - // properly - if (p) { - if (min.x == null || p.x < min.x) { - min.x = p.x; - } - if (max.x == null || p.x > max.x) { - max.x = p.x; - } - if (min.y == null || p.y < min.y) { - min.y = p.y; - } - if (max.y == null || p.y > max.y) { - max.y = p.y; - } - } - } - lineStr.push(' ">'); - - if (!aFill) { - var lineWidth = this.lineScale_ * this.lineWidth; - - // VML cannot correctly render a line if the width is less than 1px. - // In that case, we dilute the color to make the line look thinner. - if (lineWidth < 1) { - opacity *= lineWidth; - } - - lineStr.push( - '<g_vml_:stroke', - ' opacity="', opacity, '"', - ' joinstyle="', this.lineJoin, '"', - ' miterlimit="', this.miterLimit, '"', - ' endcap="', processLineCap(this.lineCap), '"', - ' weight="', lineWidth, 'px"', - ' color="', color, '" />' - ); - } else if (typeof this.fillStyle == 'object') { - var fillStyle = this.fillStyle; - var angle = 0; - var focus = {x: 0, y: 0}; - - // additional offset - var shift = 0; - // scale factor for offset - var expansion = 1; - - if (fillStyle.type_ == 'gradient') { - var x0 = fillStyle.x0_ / this.arcScaleX_; - var y0 = fillStyle.y0_ / this.arcScaleY_; - var x1 = fillStyle.x1_ / this.arcScaleX_; - var y1 = fillStyle.y1_ / this.arcScaleY_; - var p0 = this.getCoords_(x0, y0); - var p1 = this.getCoords_(x1, y1); - var dx = p1.x - p0.x; - var dy = p1.y - p0.y; - angle = Math.atan2(dx, dy) * 180 / Math.PI; - - // The angle should be a non-negative number. - if (angle < 0) { - angle += 360; - } - - // Very small angles produce an unexpected result because they are - // converted to a scientific notation string. - if (angle < 1e-6) { - angle = 0; - } - } else { - var p0 = this.getCoords_(fillStyle.x0_, fillStyle.y0_); - var width = max.x - min.x; - var height = max.y - min.y; - focus = { - x: (p0.x - min.x) / width, - y: (p0.y - min.y) / height - }; - - width /= this.arcScaleX_ * Z; - height /= this.arcScaleY_ * Z; - var dimension = m.max(width, height); - shift = 2 * fillStyle.r0_ / dimension; - expansion = 2 * fillStyle.r1_ / dimension - shift; - } - - // We need to sort the color stops in ascending order by offset, - // otherwise IE won't interpret it correctly. - var stops = fillStyle.colors_; - stops.sort(function(cs1, cs2) { - return cs1.offset - cs2.offset; - }); - - var length = stops.length; - var color1 = stops[0].color; - var color2 = stops[length - 1].color; - var opacity1 = stops[0].alpha * this.globalAlpha; - var opacity2 = stops[length - 1].alpha * this.globalAlpha; - - var colors = []; - for (var i = 0; i < length; i++) { - var stop = stops[i]; - colors.push(stop.offset * expansion + shift + ' ' + stop.color); - } - - // When colors attribute is used, the meanings of opacity and o:opacity2 - // are reversed. - lineStr.push('<g_vml_:fill type="', fillStyle.type_, '"', - ' method="none" focus="100%"', - ' color="', color1, '"', - ' color2="', color2, '"', - ' colors="', colors.join(','), '"', - ' opacity="', opacity2, '"', - ' g_o_:opacity2="', opacity1, '"', - ' angle="', angle, '"', - ' focusposition="', focus.x, ',', focus.y, '" />'); - } else { - lineStr.push('<g_vml_:fill color="', color, '" opacity="', opacity, - '" />'); - } - - lineStr.push('</g_vml_:shape>'); - - this.element_.insertAdjacentHTML('beforeEnd', lineStr.join('')); - }; - - contextPrototype.fill = function() { - this.stroke(true); - } - - contextPrototype.closePath = function() { - this.currentPath_.push({type: 'close'}); - }; - - /** - * @private - */ - contextPrototype.getCoords_ = function(aX, aY) { - var m = this.m_; - return { - x: Z * (aX * m[0][0] + aY * m[1][0] + m[2][0]) - Z2, - y: Z * (aX * m[0][1] + aY * m[1][1] + m[2][1]) - Z2 - } - }; - - contextPrototype.save = function() { - var o = {}; - copyState(this, o); - this.aStack_.push(o); - this.mStack_.push(this.m_); - this.m_ = matrixMultiply(createMatrixIdentity(), this.m_); - }; - - contextPrototype.restore = function() { - copyState(this.aStack_.pop(), this); - this.m_ = this.mStack_.pop(); - }; - - function matrixIsFinite(m) { - for (var j = 0; j < 3; j++) { - for (var k = 0; k < 2; k++) { - if (!isFinite(m[j][k]) || isNaN(m[j][k])) { - return false; - } - } - } - return true; - } - - function setM(ctx, m, updateLineScale) { - if (!matrixIsFinite(m)) { - return; - } - ctx.m_ = m; - - if (updateLineScale) { - // Get the line scale. - // Determinant of this.m_ means how much the area is enlarged by the - // transformation. So its square root can be used as a scale factor - // for width. - var det = m[0][0] * m[1][1] - m[0][1] * m[1][0]; - ctx.lineScale_ = sqrt(abs(det)); - } - } - - contextPrototype.translate = function(aX, aY) { - var m1 = [ - [1, 0, 0], - [0, 1, 0], - [aX, aY, 1] - ]; - - setM(this, matrixMultiply(m1, this.m_), false); - }; - - contextPrototype.rotate = function(aRot) { - var c = mc(aRot); - var s = ms(aRot); - - var m1 = [ - [c, s, 0], - [-s, c, 0], - [0, 0, 1] - ]; - - setM(this, matrixMultiply(m1, this.m_), false); - }; - - contextPrototype.scale = function(aX, aY) { - this.arcScaleX_ *= aX; - this.arcScaleY_ *= aY; - var m1 = [ - [aX, 0, 0], - [0, aY, 0], - [0, 0, 1] - ]; - - setM(this, matrixMultiply(m1, this.m_), true); - }; - - contextPrototype.transform = function(m11, m12, m21, m22, dx, dy) { - var m1 = [ - [m11, m12, 0], - [m21, m22, 0], - [dx, dy, 1] - ]; - - setM(this, matrixMultiply(m1, this.m_), true); - }; - - contextPrototype.setTransform = function(m11, m12, m21, m22, dx, dy) { - var m = [ - [m11, m12, 0], - [m21, m22, 0], - [dx, dy, 1] - ]; - - setM(this, m, true); - }; - - /******** STUBS ********/ - contextPrototype.clip = function() { - // TODO: Implement - }; - - contextPrototype.arcTo = function() { - // TODO: Implement - }; - - contextPrototype.createPattern = function() { - return new CanvasPattern_; - }; - - // Gradient / Pattern Stubs - function CanvasGradient_(aType) { - this.type_ = aType; - this.x0_ = 0; - this.y0_ = 0; - this.r0_ = 0; - this.x1_ = 0; - this.y1_ = 0; - this.r1_ = 0; - this.colors_ = []; - } - - CanvasGradient_.prototype.addColorStop = function(aOffset, aColor) { - aColor = processStyle(aColor); - this.colors_.push({offset: aOffset, - color: aColor.color, - alpha: aColor.alpha}); - }; - - function CanvasPattern_() {} - - // set up externs - G_vmlCanvasManager = G_vmlCanvasManager_; - CanvasRenderingContext2D = CanvasRenderingContext2D_; - CanvasGradient = CanvasGradient_; - CanvasPattern = CanvasPattern_; - -})(); - -} // if diff --git a/admin/bower_components/jquery-knob/index.html b/admin/bower_components/jquery-knob/index.html deleted file mode 100644 index f5ecfc7..0000000 --- a/admin/bower_components/jquery-knob/index.html +++ /dev/null @@ -1,303 +0,0 @@ -<!DOCTYPE html> -<html> - <head> - <title>jQuery Knob demo</title> - <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.9.0/jquery.min.js"></script> - <!--[if IE]><script type="text/javascript" src="excanvas.js"></script><![endif]--> - <script src="dist/jquery.knob.min.js"></script> - <script> - $(function($) { - - $(".knob").knob({ - change : function (value) { - //console.log("change : " + value); - }, - release : function (value) { - //console.log(this.$.attr('value')); - console.log("release : " + value); - }, - cancel : function () { - console.log("cancel : ", this); - }, - /*format : function (value) { - return value + '%'; - },*/ - draw : function () { - - // "tron" case - if(this.$.data('skin') == 'tron') { - - this.cursorExt = 0.3; - - var a = this.arc(this.cv) // Arc - , pa // Previous arc - , r = 1; - - this.g.lineWidth = this.lineWidth; - - if (this.o.displayPrevious) { - pa = this.arc(this.v); - this.g.beginPath(); - this.g.strokeStyle = this.pColor; - this.g.arc(this.xy, this.xy, this.radius - this.lineWidth, pa.s, pa.e, pa.d); - this.g.stroke(); - } - - this.g.beginPath(); - this.g.strokeStyle = r ? this.o.fgColor : this.fgColor ; - this.g.arc(this.xy, this.xy, this.radius - this.lineWidth, a.s, a.e, a.d); - this.g.stroke(); - - this.g.lineWidth = 2; - this.g.beginPath(); - this.g.strokeStyle = this.o.fgColor; - this.g.arc( this.xy, this.xy, this.radius - this.lineWidth + 1 + this.lineWidth * 2 / 3, 0, 2 * Math.PI, false); - this.g.stroke(); - - return false; - } - } - }); - - // Example of infinite knob, iPod click wheel - var v, up=0,down=0,i=0 - ,$idir = $("div.idir") - ,$ival = $("div.ival") - ,incr = function() { i++; $idir.show().html("+").fadeOut(); $ival.html(i); } - ,decr = function() { i--; $idir.show().html("-").fadeOut(); $ival.html(i); }; - $("input.infinite").knob( - { - min : 0 - , max : 20 - , stopper : false - , change : function () { - if(v > this.cv){ - if(up){ - decr(); - up=0; - }else{up=1;down=0;} - } else { - if(v < this.cv){ - if(down){ - incr(); - down=0; - }else{down=1;up=0;} - } - } - v = this.cv; - } - }); - }); - </script> - <style> - body{ - padding: 0; - margin: 0px 50px; - font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; - font-weight: 300; - text-rendering: optimizelegibility; - } - p{font-size: 30px; line-height: 30px} - div.demo{text-align: center; width: 280px; float: left} - div.demo > p{font-size: 20px} - </style> - </head> - <body> - <div style="width:100%;font-size:40px;letter-spacing:-8px;line-height:40px;"> - <h1>jQuery Knob</h1> - </div> - <div> - <p>Nice, downward compatible, touchable, jQuery dial. <a href="http://flattr.com/thing/674900/jQuery-Knob" target="_blank"><img src="http://api.flattr.com/button/flattr-badge-large.png" alt="Flattr this" title="Flattr this" border="0" /></a></p> - <p style="font-size: 20px">* implemented interactions : mouse click and wheel mouse, keyboard (on focus) and fingers (touch events)</p> - </div> - <div class="demo"> - <p>&#215; Disable display input</p> - <pre> -data-width="100" -data-displayInput=false - </pre> - <input class="knob" data-width="100" data-displayInput=false value="35"> - </div> - <div class="demo"> - <p>&#215; 'cursor' mode</p> - <pre> -data-width="150" -data-cursor=true -data-thickness=.3 -data-fgColor="#222222" - </pre> - <input class="knob" data-width="150" data-cursor=true data-fgColor="#222222" data-thickness=.3 value="29"> - </div> - <div class="demo" > - <p>&#215; Display previous value</p> - <pre> -data-displayPrevious=true -data-min="-100" - </pre> - <input class="knob" data-width="200" data-min="-100" data-displayPrevious=true value="44"> - </div> - <div style="clear:both"></div> - <div class="demo"> - <p>&#215; Angle offset</p> - <pre> -data-angleOffset=90 -data-linecap=round - </pre> - <input class="knob" data-angleOffset=90 data-linecap=round value="35"> - </div> - <div class="demo"> - <p>&#215; Angle offset and arc</p> - <pre> -data-fgColor="#66CC66" -data-angleOffset=-125 -data-angleArc=250 -data-rotation=anticlockwise - </pre> - <input class="knob" data-angleOffset=-125 data-angleArc=250 data-fgColor="#66EE66" data-rotation="anticlockwise" value="35"> - </div> - <div class="demo" > - <p>&#215; 4-digit, step 0.1</p> - <pre> -data-step=".1" -data-min="-10000" -data-max="10000" -value="0" -data-displayPrevious=true - </pre> - <input class="knob" data-min="-10000" data-displayPrevious=true data-max="10000" data-step=".1" value="0"> - </div> - <div style="clear:both"></div> - <div style="text-align: center"> - <p style="font-size: 20px">&#215; Overloaded 'draw' method</p> - </div> - <div style="background-color: #222; height: 340px"> - <div class="demo" style="background-color:#222; color:#FFF;"> - <pre> - data-width="75" - data-fgColor="#ffec03" - data-skin="tron" - data-thickness=".2" - data-displayPrevious=true - </pre> - <input class="knob" data-width="75" data-displayPrevious=true data-fgColor="#ffec03" data-skin="tron" data-cursor=true value="75" data-thickness=".2"> - </div> - <div class="demo" style="background-color:#222; color:#FFF;"> - <pre> - data-width="150" - data-fgColor="#ffec03" - data-skin="tron" - data-thickness=".2" - data-displayPrevious=true - </pre> - <input class="knob" data-width="150" data-displayPrevious=true data-fgColor="#ffec03" data-skin="tron" data-thickness=".2" value="75"> - </div> - <div class="demo" style="background-color:#222; color:#FFF;"> - <pre> - data-width="150" - data-fgColor="#C0ffff" - data-skin="tron" - data-thickness=".1" - data-angleOffset="180" - </pre> - <input class="knob" data-width="150" data-angleOffset="180" data-fgColor="#C0ffff" data-skin="tron" data-thickness=".1" value="35"> - </div> - </div> - <div style="clear:both"></div> - <div class="demo" style="width:100%"> - <p>&#215; Responsive</p> - <pre> -data-width="80%" - </pre> - <div style="width: 30%; border: 3px dashed; margin-bottom: 20px"> - <i> - Current div width is 30% of window width.<br> - Knob width is 80% of current div.<br> - Knob width is 80% of 30% of window width.<br> - Test resizing window. - </i> - <br> - <br> - <input class="knob" data-width="80%" value="35"> - </div> - </div> - <div style="clear:both"></div> - <script> - function clock() { - var $s = $(".second"), - $m = $(".minute"), - $h = $(".hour"); - d = new Date(), - s = d.getSeconds(), - m = d.getMinutes(), - h = d.getHours(); - $s.val(s).trigger("change"); - $m.val(m).trigger("change"); - $h.val(h).trigger("change"); - setTimeout("clock()", 1000); - } - clock(); - </script> - <div class="demo" style="color:#EEE;background:#222;height:420px;width:100%"> - <p>&#215; Superpose (clock)</p> - <div style="position:relative;width:350px;margin:auto"> - <div style="position:absolute;left:10px;top:10px"> - <input class="knob hour" data-min="0" data-max="24" data-bgColor="#333" data-fgColor="#ffec03" data-displayInput=false data-width="300" data-height="300" data-thickness=".3"> - </div> - <div style="position:absolute;left:60px;top:60px"> - <input class="knob minute" data-min="0" data-max="60" data-bgColor="#333" data-displayInput=false data-width="200" data-height="200" data-thickness=".45"> - </div> - <div style="position:absolute;left:110px;top:110px"> - <input class="knob second" data-min="0" data-max="60" data-bgColor="#333" data-fgColor="rgb(127, 255, 0)" data-displayInput=false data-width="100" data-height="100" data-thickness=".3"> - </div> - </div> - </div> - <div style="clear:both"></div> - <div class="demo"> - <p>&#215; Readonly</p> - <pre> -readonly (or data-readOnly=true) -data-thickness=".4" -data-fgColor="chartreuse" - </pre> - <input class="knob" data-fgColor="chartreuse" data-thickness=".4" readonly value="22"> - </div> - <div class="demo"> - <p>&#215; Dynamic</p> - <pre> -data-width="200" - </pre> - <input type="button" onclick="$('.knob-dyn').knob();" value="knobify!"> - <input type="text" class="knob-dyn" data-width="200" data-cursor=true value="56"> - <pre> -data-width="50" -data-cursor=true - </pre> - <input type="button" onclick="$('.knob-dyn2').knob();" value="knobify!"> - <input type="text" class="knob-dyn2" data-width="50" data-thickness=".4" value="56"> - </div> - <div class="demo" style="height:440px;width:300px"> - <p>&#215; Infinite || iPod click wheel</p> - <div style="float:left;width:180px;height:320px;padding:20px;background-color:#EEEEEE;text-align:center;"> - <pre> -data-width="150" -data-cursor=true -data-thickness=".5" -data-fgColor="#AAAAAA" -data-bgColor="#FFFFFF" -data-displayInput="false" -+ some code - </pre> - <input class="infinite" value="0" data-width="150" data-thickness=".5" data-fgColor="#AAAAAA" data-bgColor="#FFFFFF" data-displayInput="false" data-cursor=true> - </div> - <div style="float:left;margin-top:200px;"> - <div class="ival" style="width:80px;text-align:center;font-size:50px;color:#AAA">0</div> - <div class="idir" style="width:80px;text-align:center;font-size:50px;"></div> - </div> - </div> - <div style="clear:both"></div> - <div style="margin-top:30px;text-align:center"> - <img src="https://raw.github.com/aterrien/jQuery-Knob/master/secretplan.jpg"> - <p style="font-size:20px;">jQuery Knob is &copy; 2012 Anthony Terrien - MIT License</p> - </div> - </body> -</html> diff --git a/admin/bower_components/jquery-knob/js/jquery.knob.js b/admin/bower_components/jquery-knob/js/jquery.knob.js deleted file mode 100644 index 792313c..0000000 --- a/admin/bower_components/jquery-knob/js/jquery.knob.js +++ /dev/null @@ -1,805 +0,0 @@ -/*!jQuery Knob*/ -/** - * Downward compatible, touchable dial - * - * Version: 1.2.12 - * Requires: jQuery v1.7+ - * - * Copyright (c) 2012 Anthony Terrien - * Under MIT License (http://www.opensource.org/licenses/mit-license.php) - * - * Thanks to vor, eskimoblood, spiffistan, FabrizioC - */ -(function (factory) { - if (typeof exports === 'object') { - // CommonJS - module.exports = factory(require('jquery')); - } else if (typeof define === 'function' && define.amd) { - // AMD. Register as an anonymous module. - define(['jquery'], factory); - } else { - // Browser globals - factory(jQuery); - } -}(function ($) { - - /** - * Kontrol library - */ - "use strict"; - - /** - * Definition of globals and core - */ - var k = {}, // kontrol - max = Math.max, - min = Math.min; - - k.c = {}; - k.c.d = $(document); - k.c.t = function (e) { - return e.originalEvent.touches.length - 1; - }; - - /** - * Kontrol Object - * - * Definition of an abstract UI control - * - * Each concrete component must call this one. - * <code> - * k.o.call(this); - * </code> - */ - k.o = function () { - var s = this; - - this.o = null; // array of options - this.$ = null; // jQuery wrapped element - this.i = null; // mixed HTMLInputElement or array of HTMLInputElement - this.g = null; // deprecated 2D graphics context for 'pre-rendering' - this.v = null; // value ; mixed array or integer - this.cv = null; // change value ; not commited value - this.x = 0; // canvas x position - this.y = 0; // canvas y position - this.w = 0; // canvas width - this.h = 0; // canvas height - this.$c = null; // jQuery canvas element - this.c = null; // rendered canvas context - this.t = 0; // touches index - this.isInit = false; - this.fgColor = null; // main color - this.pColor = null; // previous color - this.dH = null; // draw hook - this.cH = null; // change hook - this.eH = null; // cancel hook - this.rH = null; // release hook - this.scale = 1; // scale factor - this.relative = false; - this.relativeWidth = false; - this.relativeHeight = false; - this.$div = null; // component div - - this.run = function () { - var cf = function (e, conf) { - var k; - for (k in conf) { - s.o[k] = conf[k]; - } - s._carve().init(); - s._configure() - ._draw(); - }; - - if (this.$.data('kontroled')) return; - this.$.data('kontroled', true); - - this.extend(); - this.o = $.extend({ - // Config - min: this.$.data('min') !== undefined ? this.$.data('min') : 0, - max: this.$.data('max') !== undefined ? this.$.data('max') : 100, - stopper: true, - readOnly: this.$.data('readonly') || (this.$.attr('readonly') === 'readonly'), - - // UI - cursor: this.$.data('cursor') === true && 30 - || this.$.data('cursor') || 0, - thickness: this.$.data('thickness') - && Math.max(Math.min(this.$.data('thickness'), 1), 0.01) - || 0.35, - lineCap: this.$.data('linecap') || 'butt', - width: this.$.data('width') || 200, - height: this.$.data('height') || 200, - displayInput: this.$.data('displayinput') == null || this.$.data('displayinput'), - displayPrevious: this.$.data('displayprevious'), - fgColor: this.$.data('fgcolor') || '#87CEEB', - inputColor: this.$.data('inputcolor'), - font: this.$.data('font') || 'Arial', - fontWeight: this.$.data('font-weight') || 'bold', - inline: false, - step: this.$.data('step') || 1, - rotation: this.$.data('rotation'), - - // Hooks - draw: null, // function () {} - change: null, // function (value) {} - cancel: null, // function () {} - release: null, // function (value) {} - - // Output formatting, allows to add unit: %, ms ... - format: function(v) { - return v; - }, - parse: function (v) { - return parseFloat(v); - } - }, this.o - ); - - // finalize options - this.o.flip = this.o.rotation === 'anticlockwise' || this.o.rotation === 'acw'; - if (!this.o.inputColor) { - this.o.inputColor = this.o.fgColor; - } - - // routing value - if (this.$.is('fieldset')) { - - // fieldset = array of integer - this.v = {}; - this.i = this.$.find('input'); - this.i.each(function(k) { - var $this = $(this); - s.i[k] = $this; - s.v[k] = s.o.parse($this.val()); - - $this.bind( - 'change blur', - function () { - var val = {}; - val[k] = $this.val(); - s.val(s._validate(val)); - } - ); - }); - this.$.find('legend').remove(); - } else { - - // input = integer - this.i = this.$; - this.v = this.o.parse(this.$.val()); - this.v === '' && (this.v = this.o.min); - this.$.bind( - 'change blur', - function () { - s.val(s._validate(s.o.parse(s.$.val()))); - } - ); - - } - - !this.o.displayInput && this.$.hide(); - - // adds needed DOM elements (canvas, div) - this.$c = $(document.createElement('canvas')).attr({ - width: this.o.width, - height: this.o.height - }); - - // wraps all elements in a div - // add to DOM before Canvas init is triggered - this.$div = $('<div style="' - + (this.o.inline ? 'display:inline;' : '') - + 'width:' + this.o.width + 'px;height:' + this.o.height + 'px;' - + '"></div>'); - - this.$.wrap(this.$div).before(this.$c); - this.$div = this.$.parent(); - - if (typeof G_vmlCanvasManager !== 'undefined') { - G_vmlCanvasManager.initElement(this.$c[0]); - } - - this.c = this.$c[0].getContext ? this.$c[0].getContext('2d') : null; - - if (!this.c) { - throw { - name: "CanvasNotSupportedException", - message: "Canvas not supported. Please use excanvas on IE8.0.", - toString: function(){return this.name + ": " + this.message} - } - } - - // hdpi support - this.scale = (window.devicePixelRatio || 1) / ( - this.c.webkitBackingStorePixelRatio || - this.c.mozBackingStorePixelRatio || - this.c.msBackingStorePixelRatio || - this.c.oBackingStorePixelRatio || - this.c.backingStorePixelRatio || 1 - ); - - // detects relative width / height - this.relativeWidth = this.o.width % 1 !== 0 - && this.o.width.indexOf('%'); - this.relativeHeight = this.o.height % 1 !== 0 - && this.o.height.indexOf('%'); - this.relative = this.relativeWidth || this.relativeHeight; - - // computes size and carves the component - this._carve(); - - // prepares props for transaction - if (this.v instanceof Object) { - this.cv = {}; - this.copy(this.v, this.cv); - } else { - this.cv = this.v; - } - - // binds configure event - this.$ - .bind("configure", cf) - .parent() - .bind("configure", cf); - - // finalize init - this._listen() - ._configure() - ._xy() - .init(); - - this.isInit = true; - - this.$.val(this.o.format(this.v)); - this._draw(); - - return this; - }; - - this._carve = function() { - if (this.relative) { - var w = this.relativeWidth ? - this.$div.parent().width() * - parseInt(this.o.width) / 100 - : this.$div.parent().width(), - h = this.relativeHeight ? - this.$div.parent().height() * - parseInt(this.o.height) / 100 - : this.$div.parent().height(); - - // apply relative - this.w = this.h = Math.min(w, h); - } else { - this.w = this.o.width; - this.h = this.o.height; - } - - // finalize div - this.$div.css({ - 'width': this.w + 'px', - 'height': this.h + 'px' - }); - - // finalize canvas with computed width - this.$c.attr({ - width: this.w, - height: this.h - }); - - // scaling - if (this.scale !== 1) { - this.$c[0].width = this.$c[0].width * this.scale; - this.$c[0].height = this.$c[0].height * this.scale; - this.$c.width(this.w); - this.$c.height(this.h); - } - - return this; - }; - - this._draw = function () { - - // canvas pre-rendering - var d = true; - - s.g = s.c; - - s.clear(); - - s.dH && (d = s.dH()); - - d !== false && s.draw(); - }; - - this._touch = function (e) { - var touchMove = function (e) { - var v = s.xy2val( - e.originalEvent.touches[s.t].pageX, - e.originalEvent.touches[s.t].pageY - ); - - if (v == s.cv) return; - - if (s.cH && s.cH(v) === false) return; - - s.change(s._validate(v)); - s._draw(); - }; - - // get touches index - this.t = k.c.t(e); - - // First touch - touchMove(e); - - // Touch events listeners - k.c.d - .bind("touchmove.k", touchMove) - .bind( - "touchend.k", - function () { - k.c.d.unbind('touchmove.k touchend.k'); - s.val(s.cv); - } - ); - - return this; - }; - - this._mouse = function (e) { - var mouseMove = function (e) { - var v = s.xy2val(e.pageX, e.pageY); - - if (v == s.cv) return; - - if (s.cH && (s.cH(v) === false)) return; - - s.change(s._validate(v)); - s._draw(); - }; - - // First click - mouseMove(e); - - // Mouse events listeners - k.c.d - .bind("mousemove.k", mouseMove) - .bind( - // Escape key cancel current change - "keyup.k", - function (e) { - if (e.keyCode === 27) { - k.c.d.unbind("mouseup.k mousemove.k keyup.k"); - - if (s.eH && s.eH() === false) - return; - - s.cancel(); - } - } - ) - .bind( - "mouseup.k", - function (e) { - k.c.d.unbind('mousemove.k mouseup.k keyup.k'); - s.val(s.cv); - } - ); - - return this; - }; - - this._xy = function () { - var o = this.$c.offset(); - this.x = o.left; - this.y = o.top; - - return this; - }; - - this._listen = function () { - if (!this.o.readOnly) { - this.$c - .bind( - "mousedown", - function (e) { - e.preventDefault(); - s._xy()._mouse(e); - } - ) - .bind( - "touchstart", - function (e) { - e.preventDefault(); - s._xy()._touch(e); - } - ); - - this.listen(); - } else { - this.$.attr('readonly', 'readonly'); - } - - if (this.relative) { - $(window).resize(function() { - s._carve().init(); - s._draw(); - }); - } - - return this; - }; - - this._configure = function () { - - // Hooks - if (this.o.draw) this.dH = this.o.draw; - if (this.o.change) this.cH = this.o.change; - if (this.o.cancel) this.eH = this.o.cancel; - if (this.o.release) this.rH = this.o.release; - - if (this.o.displayPrevious) { - this.pColor = this.h2rgba(this.o.fgColor, "0.4"); - this.fgColor = this.h2rgba(this.o.fgColor, "0.6"); - } else { - this.fgColor = this.o.fgColor; - } - - return this; - }; - - this._clear = function () { - this.$c[0].width = this.$c[0].width; - }; - - this._validate = function (v) { - var val = (~~ (((v < 0) ? -0.5 : 0.5) + (v/this.o.step))) * this.o.step; - return Math.round(val * 100) / 100; - }; - - // Abstract methods - this.listen = function () {}; // on start, one time - this.extend = function () {}; // each time configure triggered - this.init = function () {}; // each time configure triggered - this.change = function (v) {}; // on change - this.val = function (v) {}; // on release - this.xy2val = function (x, y) {}; // - this.draw = function () {}; // on change / on release - this.clear = function () { this._clear(); }; - - // Utils - this.h2rgba = function (h, a) { - var rgb; - h = h.substring(1,7); - rgb = [ - parseInt(h.substring(0,2), 16), - parseInt(h.substring(2,4), 16), - parseInt(h.substring(4,6), 16) - ]; - - return "rgba(" + rgb[0] + "," + rgb[1] + "," + rgb[2] + "," + a + ")"; - }; - - this.copy = function (f, t) { - for (var i in f) { - t[i] = f[i]; - } - }; - }; - - - /** - * k.Dial - */ - k.Dial = function () { - k.o.call(this); - - this.startAngle = null; - this.xy = null; - this.radius = null; - this.lineWidth = null; - this.cursorExt = null; - this.w2 = null; - this.PI2 = 2*Math.PI; - - this.extend = function () { - this.o = $.extend({ - bgColor: this.$.data('bgcolor') || '#EEEEEE', - angleOffset: this.$.data('angleoffset') || 0, - angleArc: this.$.data('anglearc') || 360, - inline: true - }, this.o); - }; - - this.val = function (v, triggerRelease) { - if (null != v) { - - // reverse format - v = this.o.parse(v); - - if (triggerRelease !== false - && v != this.v - && this.rH - && this.rH(v) === false) { return; } - - this.cv = this.o.stopper ? max(min(v, this.o.max), this.o.min) : v; - this.v = this.cv; - this.$.val(this.o.format(this.v)); - this._draw(); - } else { - return this.v; - } - }; - - this.xy2val = function (x, y) { - var a, ret; - - a = Math.atan2( - x - (this.x + this.w2), - - (y - this.y - this.w2) - ) - this.angleOffset; - - if (this.o.flip) { - a = this.angleArc - a - this.PI2; - } - - if (this.angleArc != this.PI2 && (a < 0) && (a > -0.5)) { - - // if isset angleArc option, set to min if .5 under min - a = 0; - } else if (a < 0) { - a += this.PI2; - } - - ret = (a * (this.o.max - this.o.min) / this.angleArc) + this.o.min; - - this.o.stopper && (ret = max(min(ret, this.o.max), this.o.min)); - - return ret; - }; - - this.listen = function () { - - // bind MouseWheel - var s = this, mwTimerStop, - mwTimerRelease, - mw = function (e) { - e.preventDefault(); - - var ori = e.originalEvent, - deltaX = ori.detail || ori.wheelDeltaX, - deltaY = ori.detail || ori.wheelDeltaY, - v = s._validate(s.o.parse(s.$.val())) - + ( - deltaX > 0 || deltaY > 0 - ? s.o.step - : deltaX < 0 || deltaY < 0 ? -s.o.step : 0 - ); - - v = max(min(v, s.o.max), s.o.min); - - s.val(v, false); - - if (s.rH) { - // Handle mousewheel stop - clearTimeout(mwTimerStop); - mwTimerStop = setTimeout(function () { - s.rH(v); - mwTimerStop = null; - }, 100); - - // Handle mousewheel releases - if (!mwTimerRelease) { - mwTimerRelease = setTimeout(function () { - if (mwTimerStop) - s.rH(v); - mwTimerRelease = null; - }, 200); - } - } - }, - kval, - to, - m = 1, - kv = { - 37: -s.o.step, - 38: s.o.step, - 39: s.o.step, - 40: -s.o.step - }; - - this.$ - .bind( - "keydown", - function (e) { - var kc = e.keyCode; - - // numpad support - if (kc >= 96 && kc <= 105) { - kc = e.keyCode = kc - 48; - } - - kval = parseInt(String.fromCharCode(kc)); - - if (isNaN(kval)) { - (kc !== 13) // enter - && kc !== 8 // bs - && kc !== 9 // tab - && kc !== 189 // - - && (kc !== 190 - || s.$.val().match(/\./)) // . allowed once - && e.preventDefault(); - - // arrows - if ($.inArray(kc,[37,38,39,40]) > -1) { - e.preventDefault(); - - var v = s.o.parse(s.$.val()) + kv[kc] * m; - s.o.stopper && (v = max(min(v, s.o.max), s.o.min)); - - s.change(s._validate(v)); - s._draw(); - - // long time keydown speed-up - to = window.setTimeout(function () { - m *= 2; - }, 30); - } - } - } - ) - .bind( - "keyup", - function (e) { - if (isNaN(kval)) { - if (to) { - window.clearTimeout(to); - to = null; - m = 1; - s.val(s.$.val()); - } - } else { - // kval postcond - (s.$.val() > s.o.max && s.$.val(s.o.max)) - || (s.$.val() < s.o.min && s.$.val(s.o.min)); - } - } - ); - - this.$c.bind("mousewheel DOMMouseScroll", mw); - this.$.bind("mousewheel DOMMouseScroll", mw); - }; - - this.init = function () { - if (this.v < this.o.min - || this.v > this.o.max) { this.v = this.o.min; } - - this.$.val(this.v); - this.w2 = this.w / 2; - this.cursorExt = this.o.cursor / 100; - this.xy = this.w2 * this.scale; - this.lineWidth = this.xy * this.o.thickness; - this.lineCap = this.o.lineCap; - this.radius = this.xy - this.lineWidth / 2; - - this.o.angleOffset - && (this.o.angleOffset = isNaN(this.o.angleOffset) ? 0 : this.o.angleOffset); - - this.o.angleArc - && (this.o.angleArc = isNaN(this.o.angleArc) ? this.PI2 : this.o.angleArc); - - // deg to rad - this.angleOffset = this.o.angleOffset * Math.PI / 180; - this.angleArc = this.o.angleArc * Math.PI / 180; - - // compute start and end angles - this.startAngle = 1.5 * Math.PI + this.angleOffset; - this.endAngle = 1.5 * Math.PI + this.angleOffset + this.angleArc; - - var s = max( - String(Math.abs(this.o.max)).length, - String(Math.abs(this.o.min)).length, - 2 - ) + 2; - - this.o.displayInput - && this.i.css({ - 'width' : ((this.w / 2 + 4) >> 0) + 'px', - 'height' : ((this.w / 3) >> 0) + 'px', - 'position' : 'absolute', - 'vertical-align' : 'middle', - 'margin-top' : ((this.w / 3) >> 0) + 'px', - 'margin-left' : '-' + ((this.w * 3 / 4 + 2) >> 0) + 'px', - 'border' : 0, - 'background' : 'none', - 'font' : this.o.fontWeight + ' ' + ((this.w / s) >> 0) + 'px ' + this.o.font, - 'text-align' : 'center', - 'color' : this.o.inputColor || this.o.fgColor, - 'padding' : '0px', - '-webkit-appearance': 'none' - }) || this.i.css({ - 'width': '0px', - 'visibility': 'hidden' - }); - }; - - this.change = function (v) { - this.cv = v; - this.$.val(this.o.format(v)); - }; - - this.angle = function (v) { - return (v - this.o.min) * this.angleArc / (this.o.max - this.o.min); - }; - - this.arc = function (v) { - var sa, ea; - v = this.angle(v); - if (this.o.flip) { - sa = this.endAngle + 0.00001; - ea = sa - v - 0.00001; - } else { - sa = this.startAngle - 0.00001; - ea = sa + v + 0.00001; - } - this.o.cursor - && (sa = ea - this.cursorExt) - && (ea = ea + this.cursorExt); - - return { - s: sa, - e: ea, - d: this.o.flip && !this.o.cursor - }; - }; - - this.draw = function () { - var c = this.g, // context - a = this.arc(this.cv), // Arc - pa, // Previous arc - r = 1; - - c.lineWidth = this.lineWidth; - c.lineCap = this.lineCap; - - if (this.o.bgColor !== "none") { - c.beginPath(); - c.strokeStyle = this.o.bgColor; - c.arc(this.xy, this.xy, this.radius, this.endAngle - 0.00001, this.startAngle + 0.00001, true); - c.stroke(); - } - - if (this.o.displayPrevious) { - pa = this.arc(this.v); - c.beginPath(); - c.strokeStyle = this.pColor; - c.arc(this.xy, this.xy, this.radius, pa.s, pa.e, pa.d); - c.stroke(); - r = this.cv == this.v; - } - - c.beginPath(); - c.strokeStyle = r ? this.o.fgColor : this.fgColor ; - c.arc(this.xy, this.xy, this.radius, a.s, a.e, a.d); - c.stroke(); - }; - - this.cancel = function () { - this.val(this.v); - }; - }; - - $.fn.dial = $.fn.knob = function (o) { - return this.each( - function () { - var d = new k.Dial(); - d.o = o; - d.$ = $(this); - d.run(); - } - ).parent(); - }; - -})); diff --git a/admin/bower_components/jquery-knob/knob.jquery.json b/admin/bower_components/jquery-knob/knob.jquery.json deleted file mode 100644 index 01a9063..0000000 --- a/admin/bower_components/jquery-knob/knob.jquery.json +++ /dev/null @@ -1,37 +0,0 @@ -{ - "name": "knob", - "title": "jQuery Knob", - "description": "Nice, downward compatible, touchable, jQuery dial.", - "keywords": [ - "dial", - "button", - "knob", - "ui", - "input" - ], - "version": "1.2.13", - "author": { - "name": "Anthony Terrien", - "url": "https://github.com/aterrien" - }, - "maintainers": [ - { - "name": "Anthony Terrien", - "email": "kontrol@anthonyterrien.com", - "url": "http://anthonyterrien.com/knob" - } - ], - "licenses": [ - { - "type": "MIT", - "url": "http://opensource.org/licenses/mit-license.php" - } - ], - "bugs": "https://github.com/aterrien/jQuery-Knob/issues", - "homepage": "https://github.com/aterrien/jQuery-Knob", - "docs": "https://github.com/aterrien/jQuery-Knob", - "download": "https://github.com/aterrien/jQuery-Knob/tags", - "dependencies": { - "jquery": ">=1.7.0" - } -} diff --git a/admin/bower_components/jquery-knob/package.json b/admin/bower_components/jquery-knob/package.json deleted file mode 100644 index fbb4245..0000000 --- a/admin/bower_components/jquery-knob/package.json +++ /dev/null @@ -1,24 +0,0 @@ -{ - "name": "jquery-knob", - "version": "1.2.13", - "description": "Nice, downward compatible, touchable, jQuery dial", - "main": "dist/jquery.knob.min.js", - "scripts": { - "test": "echo \"Error: no test specified\" && exit 1" - }, - "repository": { - "type": "git", - "url": "git+https://github.com/aterrien/jQuery-Knob.git" - }, - "keywords": [ - "jquery", - "knob", - "dial" - ], - "author": "Anthony Terrien", - "license": "MIT", - "bugs": { - "url": "https://github.com/aterrien/jQuery-Knob/issues" - }, - "homepage": "https://github.com/aterrien/jQuery-Knob#readme" -} diff --git a/admin/bower_components/jquery-knob/secretplan.jpg b/admin/bower_components/jquery-knob/secretplan.jpg deleted file mode 100644 index e6f98de..0000000 Binary files a/admin/bower_components/jquery-knob/secretplan.jpg and /dev/null differ diff --git a/admin/bower_components/jquery-slimscroll/.bower.json b/admin/bower_components/jquery-slimscroll/.bower.json deleted file mode 100644 index 94e33a0..0000000 --- a/admin/bower_components/jquery-slimscroll/.bower.json +++ /dev/null @@ -1,59 +0,0 @@ -{ - "name": "jquery-slimscroll", - "version": "1.3.8", - "description": "slimScroll is a small jQuery plugin that transforms any div into a scrollable area. slimScroll doesn't occupy any visual space as it only appears on a user initiated mouse-over.", - "keywords": [ - "scrollbar", - "scroll", - "slimscroll", - "scrollable", - "scrolling", - "scroller", - "ui", - "jquery-plugin", - "ecosystem:jquery" - ], - "homepage": "http://rocha.la/jQuery-slimScroll/", - "authors": [ - { - "name": "Piotr Rochala", - "homepage": "http://rocha.la/" - } - ], - "repository": { - "type": "git", - "url": "https://github.com/rochal/jQuery-slimScroll.git" - }, - "main": [ - "jquery.slimscroll.js", - "jquery.slimscroll.min.js" - ], - "licenses": [ - { - "type": "MIT", - "url": "http://www.opensource.org/licenses/mit-license.php" - }, - { - "type": "GPL", - "url": "http://www.opensource.org/licenses/gpl-license.php" - } - ], - "moduleType": [], - "ignore": [ - "**/.*", - "node_modules", - "bower_components", - "test", - "tests" - ], - "_release": "1.3.8", - "_resolution": { - "type": "version", - "tag": "v1.3.8", - "commit": "cf39d364e777ef95574c30c42d3b85cb2bf325d3" - }, - "_source": "https://github.com/rochal/jQuery-slimScroll.git", - "_target": "^1.3.8", - "_originalSource": "slimscroll", - "_direct": true -} \ No newline at end of file diff --git a/admin/bower_components/jquery-slimscroll/README.md b/admin/bower_components/jquery-slimscroll/README.md deleted file mode 100644 index bc90347..0000000 --- a/admin/bower_components/jquery-slimscroll/README.md +++ /dev/null @@ -1,8 +0,0 @@ -# What is slimScroll? - -slimScroll is a small jQuery plugin that transforms any div into a scrollable area with a nice scrollbar - similar to the one Facebook and Google started using in their products recently. slimScroll doesn't occupy any visual space as it only appears on a user initiated mouse-over. User can drag the scrollbar or use mouse-wheel to change the scroll value. - -Demo and deocumentation available here: [jQuery slimScroll docs](http://rocha.la/jQuery-slimScroll) - -Copyright (c) 2011 Piotr Rochala (http://rocha.la) -Dual licensed under the MIT (http://www.opensource.org/licenses/mit-license.php) and GPL (http://www.opensource.org/licenses/gpl-license.php) licenses. \ No newline at end of file diff --git a/admin/bower_components/jquery-slimscroll/bower.json b/admin/bower_components/jquery-slimscroll/bower.json deleted file mode 100644 index 831eb32..0000000 --- a/admin/bower_components/jquery-slimscroll/bower.json +++ /dev/null @@ -1,46 +0,0 @@ -{ - "name": "jquery-slimscroll", - "version": "1.3.8", - "description": "slimScroll is a small jQuery plugin that transforms any div into a scrollable area. slimScroll doesn't occupy any visual space as it only appears on a user initiated mouse-over.", - "keywords": [ - "scrollbar", - "scroll", - "slimscroll", - "scrollable", - "scrolling", - "scroller", - "ui", - "jquery-plugin", - "ecosystem:jquery" - ], - "homepage": "http://rocha.la/jQuery-slimScroll/", - "authors": [ - { "name": "Piotr Rochala", "homepage": "http://rocha.la/" } - ], - "repository": { - "type": "git", - "url": "https://github.com/rochal/jQuery-slimScroll.git" - }, - "main": [ - "jquery.slimscroll.js", - "jquery.slimscroll.min.js" - ], - "licenses" : [ - { - "type": "MIT", - "url": "http://www.opensource.org/licenses/mit-license.php" - }, - { - "type": "GPL", - "url": "http://www.opensource.org/licenses/gpl-license.php" - } - ], - "moduleType": [], - "ignore": [ - "**/.*", - "node_modules", - "bower_components", - "test", - "tests" - ] -} diff --git a/admin/bower_components/jquery-slimscroll/examples/allow-page-scroll.html b/admin/bower_components/jquery-slimscroll/examples/allow-page-scroll.html deleted file mode 100644 index b594de3..0000000 --- a/admin/bower_components/jquery-slimscroll/examples/allow-page-scroll.html +++ /dev/null @@ -1,94 +0,0 @@ -<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> -<html> -<head> -<title>jquery.slimscroll - allow page scroll</title> -<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> -<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.0/jquery.min.js"></script> -<link href="libs/prettify/prettify.css" type="text/css" rel="stylesheet" /> -<script type="text/javascript" src="libs/prettify/prettify.js"></script> -<script type="text/javascript" src="../jquery.slimscroll.js"></script> -<link href="style.css" type="text/css" rel="stylesheet" /> -</head> -<body> -<a id="git-fork" href="https://github.com/rochal/jQuery-slimScroll"><img src="https://s3.amazonaws.com/github/ribbons/forkme_right_red_aa0000.png" alt="Fork me on GitHub"></a> -<div class="examples"> - <div id="testDiv"> - <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nam rhoncus, felis interdum condimentum consectetur, nisl libero elementum eros, vehicula congue lacus eros non diam. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Vivamus mauris lorem, lacinia id tempus non, imperdiet et leo. Cras sit amet erat sit amet lacus egestas placerat. Aenean ultricies ultrices mauris ac congue. In vel tortor vel velit tristique tempus ac id nisi. Proin quis lorem velit. Nunc dui dui, blandit a ullamcorper vitae, congue fringilla lectus. Aliquam ultricies malesuada feugiat. Vestibulum placerat turpis et eros lobortis vel semper sapien pulvinar.</p> - <p>Pellentesque rhoncus aliquet porta. Sed vel magna eu turpis pharetra consequat ut vitae lectus. In molestie sollicitudin mi sit amet convallis. Aliquam erat volutpat. Nullam feugiat placerat ipsum eget malesuada. Nulla facilisis nunc non dolor vehicula pretium. Sed dui magna, sodales id pharetra non, ullamcorper eu sapien. Mauris ac consectetur leo. Mauris consequat, lectus ut bibendum pulvinar, leo magna feugiat enim, eu commodo lacus sem vel ante. Sed tempus metus eget leo mollis vulputate. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos.</p> - <p>Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Sed pulvinar rhoncus quam, vel semper tellus viverra id. Nulla rutrum porttitor odio, a rutrum purus gravida non. Etiam ac purus augue, eget vestibulum purus. Aenean venenatis ullamcorper augue, non consequat elit tempor sed. Donec velit sapien, volutpat sed ultricies egestas, semper a ante. Fusce dapibus, quam eget auctor suscipit, nibh leo posuere ante, at auctor nisi lacus in sem. Morbi interdum consectetur euismod. Cras accumsan est lacus. Nulla eleifend, eros vel consequat commodo, arcu nunc malesuada nunc, quis sagittis felis sem ac turpis.</p> - <p>Nulla rhoncus elementum convallis. Mauris condimentum aliquet egestas. Ut iaculis nisi eget tellus accumsan venenatis. Maecenas imperdiet aliquam porta. Aenean ultrices dolor sed quam laoreet varius. Curabitur condimentum blandit erat, quis accumsan eros interdum vitae. Curabitur ligula arcu, sollicitudin vitae iaculis sed, blandit sit amet enim. Morbi ullamcorper, metus vel mollis tristique, arcu turpis malesuada nisi, at dignissim lorem odio a orci. Proin ultrices, ipsum ut vestibulum interdum, libero felis auctor mi, vitae convallis nisl justo ac tellus. Integer nec lacinia turpis. Etiam massa nisl, rhoncus quis rutrum in, pretium eu leo. Proin a velit ut nulla laoreet vestibulum. Curabitur eu elit vitae felis auctor tincidunt. Curabitur tincidunt, metus sed sollicitudin cursus, quam elit commodo erat, ut tempor erat sapien vitae velit. Morbi nec viverra erat.</p> - <p>Nullam scelerisque facilisis pretium. Vivamus lectus leo, commodo ac sagittis ac, dictum a mi. Donec quis massa ut libero malesuada commodo in et risus. Fusce nunc dolor, aliquet vel rutrum in, molestie sit amet massa. Aliquam suscipit, justo a commodo condimentum, enim sapien fringilla ante, sed lobortis orci lectus in ante. Donec vel interdum est. Donec placerat cursus lacus, eu ultricies nisl tincidunt a. Fusce libero risus, sagittis eleifend iaculis aliquet, condimentum vitae diam. Suspendisse potenti. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Proin leo purus, sodales a venenatis luctus, faucibus ac enim. Sed id metus ac sem lobortis pretium. Mauris faucibus tempor scelerisque. Nunc vulputate interdum tortor, non tincidunt dui condimentum eget. Aenean in porttitor velit. Nam accumsan rhoncus risus id consectetur.</p> - <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nam rhoncus, felis interdum condimentum consectetur, nisl libero elementum eros, vehicula congue lacus eros non diam. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Vivamus mauris lorem, lacinia id tempus non, imperdiet et leo. Cras sit amet erat sit amet lacus egestas placerat. Aenean ultricies ultrices mauris ac congue. In vel tortor vel velit tristique tempus ac id nisi. Proin quis lorem velit. Nunc dui dui, blandit a ullamcorper vitae, congue fringilla lectus. Aliquam ultricies malesuada feugiat. Vestibulum placerat turpis et eros lobortis vel semper sapien pulvinar.</p> - <p>Pellentesque rhoncus aliquet porta. Sed vel magna eu turpis pharetra consequat ut vitae lectus. In molestie sollicitudin mi sit amet convallis. Aliquam erat volutpat. Nullam feugiat placerat ipsum eget malesuada. Nulla facilisis nunc non dolor vehicula pretium. Sed dui magna, sodales id pharetra non, ullamcorper eu sapien. Mauris ac consectetur leo. Mauris consequat, lectus ut bibendum pulvinar, leo magna feugiat enim, eu commodo lacus sem vel ante. Sed tempus metus eget leo mollis vulputate. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos.</p> - <p>Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Sed pulvinar rhoncus quam, vel semper tellus viverra id. Nulla rutrum porttitor odio, a rutrum purus gravida non. Etiam ac purus augue, eget vestibulum purus. Aenean venenatis ullamcorper augue, non consequat elit tempor sed. Donec velit sapien, volutpat sed ultricies egestas, semper a ante. Fusce dapibus, quam eget auctor suscipit, nibh leo posuere ante, at auctor nisi lacus in sem. Morbi interdum consectetur euismod. Cras accumsan est lacus. Nulla eleifend, eros vel consequat commodo, arcu nunc malesuada nunc, quis sagittis felis sem ac turpis.</p> - <p>Nulla rhoncus elementum convallis. Mauris condimentum aliquet egestas. Ut iaculis nisi eget tellus accumsan venenatis. Maecenas imperdiet aliquam porta. Aenean ultrices dolor sed quam laoreet varius. Curabitur condimentum blandit erat, quis accumsan eros interdum vitae. Curabitur ligula arcu, sollicitudin vitae iaculis sed, blandit sit amet enim. Morbi ullamcorper, metus vel mollis tristique, arcu turpis malesuada nisi, at dignissim lorem odio a orci. Proin ultrices, ipsum ut vestibulum interdum, libero felis auctor mi, vitae convallis nisl justo ac tellus. Integer nec lacinia turpis. Etiam massa nisl, rhoncus quis rutrum in, pretium eu leo. Proin a velit ut nulla laoreet vestibulum. Curabitur eu elit vitae felis auctor tincidunt. Curabitur tincidunt, metus sed sollicitudin cursus, quam elit commodo erat, ut tempor erat sapien vitae velit. Morbi nec viverra erat.</p> - <p>Nullam scelerisque facilisis pretium. Vivamus lectus leo, commodo ac sagittis ac, dictum a mi. Donec quis massa ut libero malesuada commodo in et risus. Fusce nunc dolor, aliquet vel rutrum in, molestie sit amet massa. Aliquam suscipit, justo a commodo condimentum, enim sapien fringilla ante, sed lobortis orci lectus in ante. Donec vel interdum est. Donec placerat cursus lacus, eu ultricies nisl tincidunt a. Fusce libero risus, sagittis eleifend iaculis aliquet, condimentum vitae diam. Suspendisse potenti. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Proin leo purus, sodales a venenatis luctus, faucibus ac enim. Sed id metus ac sem lobortis pretium. Mauris faucibus tempor scelerisque. Nunc vulputate interdum tortor, non tincidunt dui condimentum eget. Aenean in porttitor velit. Nam accumsan rhoncus risus id consectetur.</p> - <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nam rhoncus, felis interdum condimentum consectetur, nisl libero elementum eros, vehicula congue lacus eros non diam. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Vivamus mauris lorem, lacinia id tempus non, imperdiet et leo. Cras sit amet erat sit amet lacus egestas placerat. Aenean ultricies ultrices mauris ac congue. In vel tortor vel velit tristique tempus ac id nisi. Proin quis lorem velit. Nunc dui dui, blandit a ullamcorper vitae, congue fringilla lectus. Aliquam ultricies malesuada feugiat. Vestibulum placerat turpis et eros lobortis vel semper sapien pulvinar.</p> - <p>Pellentesque rhoncus aliquet porta. Sed vel magna eu turpis pharetra consequat ut vitae lectus. In molestie sollicitudin mi sit amet convallis. Aliquam erat volutpat. Nullam feugiat placerat ipsum eget malesuada. Nulla facilisis nunc non dolor vehicula pretium. Sed dui magna, sodales id pharetra non, ullamcorper eu sapien. Mauris ac consectetur leo. Mauris consequat, lectus ut bibendum pulvinar, leo magna feugiat enim, eu commodo lacus sem vel ante. Sed tempus metus eget leo mollis vulputate. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos.</p> - <p>Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Sed pulvinar rhoncus quam, vel semper tellus viverra id. Nulla rutrum porttitor odio, a rutrum purus gravida non. Etiam ac purus augue, eget vestibulum purus. Aenean venenatis ullamcorper augue, non consequat elit tempor sed. Donec velit sapien, volutpat sed ultricies egestas, semper a ante. Fusce dapibus, quam eget auctor suscipit, nibh leo posuere ante, at auctor nisi lacus in sem. Morbi interdum consectetur euismod. Cras accumsan est lacus. Nulla eleifend, eros vel consequat commodo, arcu nunc malesuada nunc, quis sagittis felis sem ac turpis.</p> - <p>Nulla rhoncus elementum convallis. Mauris condimentum aliquet egestas. Ut iaculis nisi eget tellus accumsan venenatis. Maecenas imperdiet aliquam porta. Aenean ultrices dolor sed quam laoreet varius. Curabitur condimentum blandit erat, quis accumsan eros interdum vitae. Curabitur ligula arcu, sollicitudin vitae iaculis sed, blandit sit amet enim. Morbi ullamcorper, metus vel mollis tristique, arcu turpis malesuada nisi, at dignissim lorem odio a orci. Proin ultrices, ipsum ut vestibulum interdum, libero felis auctor mi, vitae convallis nisl justo ac tellus. Integer nec lacinia turpis. Etiam massa nisl, rhoncus quis rutrum in, pretium eu leo. Proin a velit ut nulla laoreet vestibulum. Curabitur eu elit vitae felis auctor tincidunt. Curabitur tincidunt, metus sed sollicitudin cursus, quam elit commodo erat, ut tempor erat sapien vitae velit. Morbi nec viverra erat.</p> - <p>Nullam scelerisque facilisis pretium. Vivamus lectus leo, commodo ac sagittis ac, dictum a mi. Donec quis massa ut libero malesuada commodo in et risus. Fusce nunc dolor, aliquet vel rutrum in, molestie sit amet massa. Aliquam suscipit, justo a commodo condimentum, enim sapien fringilla ante, sed lobortis orci lectus in ante. Donec vel interdum est. Donec placerat cursus lacus, eu ultricies nisl tincidunt a. Fusce libero risus, sagittis eleifend iaculis aliquet, condimentum vitae diam. Suspendisse potenti. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Proin leo purus, sodales a venenatis luctus, faucibus ac enim. Sed id metus ac sem lobortis pretium. Mauris faucibus tempor scelerisque. Nunc vulputate interdum tortor, non tincidunt dui condimentum eget. Aenean in porttitor velit. Nam accumsan rhoncus risus id consectetur.</p> - </div> - -<pre class="prettyprint"> - $('#testDiv').slimScroll(); -</pre> - - <div id="testDiv2"> - <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nam rhoncus, felis interdum condimentum consectetur, nisl libero elementum eros, vehicula congue lacus eros non diam. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Vivamus mauris lorem, lacinia id tempus non, imperdiet et leo. Cras sit amet erat sit amet lacus egestas placerat. Aenean ultricies ultrices mauris ac congue. In vel tortor vel velit tristique tempus ac id nisi. Proin quis lorem velit. Nunc dui dui, blandit a ullamcorper vitae, congue fringilla lectus. Aliquam ultricies malesuada feugiat. Vestibulum placerat turpis et eros lobortis vel semper sapien pulvinar.</p> - <p>Pellentesque rhoncus aliquet porta. Sed vel magna eu turpis pharetra consequat ut vitae lectus. In molestie sollicitudin mi sit amet convallis. Aliquam erat volutpat. Nullam feugiat placerat ipsum eget malesuada. Nulla facilisis nunc non dolor vehicula pretium. Sed dui magna, sodales id pharetra non, ullamcorper eu sapien. Mauris ac consectetur leo. Mauris consequat, lectus ut bibendum pulvinar, leo magna feugiat enim, eu commodo lacus sem vel ante. Sed tempus metus eget leo mollis vulputate. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos.</p> - <p>Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Sed pulvinar rhoncus quam, vel semper tellus viverra id. Nulla rutrum porttitor odio, a rutrum purus gravida non. Etiam ac purus augue, eget vestibulum purus. Aenean venenatis ullamcorper augue, non consequat elit tempor sed. Donec velit sapien, volutpat sed ultricies egestas, semper a ante. Fusce dapibus, quam eget auctor suscipit, nibh leo posuere ante, at auctor nisi lacus in sem. Morbi interdum consectetur euismod. Cras accumsan est lacus. Nulla eleifend, eros vel consequat commodo, arcu nunc malesuada nunc, quis sagittis felis sem ac turpis.</p> - <p>Nulla rhoncus elementum convallis. Mauris condimentum aliquet egestas. Ut iaculis nisi eget tellus accumsan venenatis. Maecenas imperdiet aliquam porta. Aenean ultrices dolor sed quam laoreet varius. Curabitur condimentum blandit erat, quis accumsan eros interdum vitae. Curabitur ligula arcu, sollicitudin vitae iaculis sed, blandit sit amet enim. Morbi ullamcorper, metus vel mollis tristique, arcu turpis malesuada nisi, at dignissim lorem odio a orci. Proin ultrices, ipsum ut vestibulum interdum, libero felis auctor mi, vitae convallis nisl justo ac tellus. Integer nec lacinia turpis. Etiam massa nisl, rhoncus quis rutrum in, pretium eu leo. Proin a velit ut nulla laoreet vestibulum. Curabitur eu elit vitae felis auctor tincidunt. Curabitur tincidunt, metus sed sollicitudin cursus, quam elit commodo erat, ut tempor erat sapien vitae velit. Morbi nec viverra erat.</p> - <p>Nullam scelerisque facilisis pretium. Vivamus lectus leo, commodo ac sagittis ac, dictum a mi. Donec quis massa ut libero malesuada commodo in et risus. Fusce nunc dolor, aliquet vel rutrum in, molestie sit amet massa. Aliquam suscipit, justo a commodo condimentum, enim sapien fringilla ante, sed lobortis orci lectus in ante. Donec vel interdum est. Donec placerat cursus lacus, eu ultricies nisl tincidunt a. Fusce libero risus, sagittis eleifend iaculis aliquet, condimentum vitae diam. Suspendisse potenti. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Proin leo purus, sodales a venenatis luctus, faucibus ac enim. Sed id metus ac sem lobortis pretium. Mauris faucibus tempor scelerisque. Nunc vulputate interdum tortor, non tincidunt dui condimentum eget. Aenean in porttitor velit. Nam accumsan rhoncus risus id consectetur.</p> - <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nam rhoncus, felis interdum condimentum consectetur, nisl libero elementum eros, vehicula congue lacus eros non diam. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Vivamus mauris lorem, lacinia id tempus non, imperdiet et leo. Cras sit amet erat sit amet lacus egestas placerat. Aenean ultricies ultrices mauris ac congue. In vel tortor vel velit tristique tempus ac id nisi. Proin quis lorem velit. Nunc dui dui, blandit a ullamcorper vitae, congue fringilla lectus. Aliquam ultricies malesuada feugiat. Vestibulum placerat turpis et eros lobortis vel semper sapien pulvinar.</p> - <p><span class="helloDiv" style="background:green;font-weigh:bold;">Hello!</span>Pellentesque rhoncus aliquet porta. Sed vel magna eu turpis pharetra consequat ut vitae lectus. In molestie sollicitudin mi sit amet convallis. Aliquam erat volutpat. Nullam feugiat placerat ipsum eget malesuada. Nulla facilisis nunc non dolor vehicula pretium. Sed dui magna, sodales id pharetra non, ullamcorper eu sapien. Mauris ac consectetur leo. Mauris consequat, lectus ut bibendum pulvinar, leo magna feugiat enim, eu commodo lacus sem vel ante. Sed tempus metus eget leo mollis vulputate. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos.</p> - <p>Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Sed pulvinar rhoncus quam, vel semper tellus viverra id. Nulla rutrum porttitor odio, a rutrum purus gravida non. Etiam ac purus augue, eget vestibulum purus. Aenean venenatis ullamcorper augue, non consequat elit tempor sed. Donec velit sapien, volutpat sed ultricies egestas, semper a ante. Fusce dapibus, quam eget auctor suscipit, nibh leo posuere ante, at auctor nisi lacus in sem. Morbi interdum consectetur euismod. Cras accumsan est lacus. Nulla eleifend, eros vel consequat commodo, arcu nunc malesuada nunc, quis sagittis felis sem ac turpis.</p> - <p>Nulla rhoncus elementum convallis. Mauris condimentum aliquet egestas. Ut iaculis nisi eget tellus accumsan venenatis. Maecenas imperdiet aliquam porta. Aenean ultrices dolor sed quam laoreet varius. Curabitur condimentum blandit erat, quis accumsan eros interdum vitae. Curabitur ligula arcu, sollicitudin vitae iaculis sed, blandit sit amet enim. Morbi ullamcorper, metus vel mollis tristique, arcu turpis malesuada nisi, at dignissim lorem odio a orci. Proin ultrices, ipsum ut vestibulum interdum, libero felis auctor mi, vitae convallis nisl justo ac tellus. Integer nec lacinia turpis. Etiam massa nisl, rhoncus quis rutrum in, pretium eu leo. Proin a velit ut nulla laoreet vestibulum. Curabitur eu elit vitae felis auctor tincidunt. Curabitur tincidunt, metus sed sollicitudin cursus, quam elit commodo erat, ut tempor erat sapien vitae velit. Morbi nec viverra erat.</p> - <p>Nullam scelerisque facilisis pretium. Vivamus lectus leo, commodo ac sagittis ac, dictum a mi. Donec quis massa ut libero malesuada commodo in et risus. Fusce nunc dolor, aliquet vel rutrum in, molestie sit amet massa. Aliquam suscipit, justo a commodo condimentum, enim sapien fringilla ante, sed lobortis orci lectus in ante. Donec vel interdum est. Donec placerat cursus lacus, eu ultricies nisl tincidunt a. Fusce libero risus, sagittis eleifend iaculis aliquet, condimentum vitae diam. Suspendisse potenti. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Proin leo purus, sodales a venenatis luctus, faucibus ac enim. Sed id metus ac sem lobortis pretium. Mauris faucibus tempor scelerisque. Nunc vulputate interdum tortor, non tincidunt dui condimentum eget. Aenean in porttitor velit. Nam accumsan rhoncus risus id consectetur.</p> - <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nam rhoncus, felis interdum condimentum consectetur, nisl libero elementum eros, vehicula congue lacus eros non diam. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Vivamus mauris lorem, lacinia id tempus non, imperdiet et leo. Cras sit amet erat sit amet lacus egestas placerat. Aenean ultricies ultrices mauris ac congue. In vel tortor vel velit tristique tempus ac id nisi. Proin quis lorem velit. Nunc dui dui, blandit a ullamcorper vitae, congue fringilla lectus. Aliquam ultricies malesuada feugiat. Vestibulum placerat turpis et eros lobortis vel semper sapien pulvinar.</p> - <p>Pellentesque rhoncus aliquet porta. Sed vel magna eu turpis pharetra consequat ut vitae lectus. In molestie sollicitudin mi sit amet convallis. Aliquam erat volutpat. Nullam feugiat placerat ipsum eget malesuada. Nulla facilisis nunc non dolor vehicula pretium. Sed dui magna, sodales id pharetra non, ullamcorper eu sapien. Mauris ac consectetur leo. Mauris consequat, lectus ut bibendum pulvinar, leo magna feugiat enim, eu commodo lacus sem vel ante. Sed tempus metus eget leo mollis vulputate. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos.</p> - <p>Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Sed pulvinar rhoncus quam, vel semper tellus viverra id. Nulla rutrum porttitor odio, a rutrum purus gravida non. Etiam ac purus augue, eget vestibulum purus. Aenean venenatis ullamcorper augue, non consequat elit tempor sed. Donec velit sapien, volutpat sed ultricies egestas, semper a ante. Fusce dapibus, quam eget auctor suscipit, nibh leo posuere ante, at auctor nisi lacus in sem. Morbi interdum consectetur euismod. Cras accumsan est lacus. Nulla eleifend, eros vel consequat commodo, arcu nunc malesuada nunc, quis sagittis felis sem ac turpis.</p> - <p>Nulla rhoncus elementum convallis. Mauris condimentum aliquet egestas. Ut iaculis nisi eget tellus accumsan venenatis. Maecenas imperdiet aliquam porta. Aenean ultrices dolor sed quam laoreet varius. Curabitur condimentum blandit erat, quis accumsan eros interdum vitae. Curabitur ligula arcu, sollicitudin vitae iaculis sed, blandit sit amet enim. Morbi ullamcorper, metus vel mollis tristique, arcu turpis malesuada nisi, at dignissim lorem odio a orci. Proin ultrices, ipsum ut vestibulum interdum, libero felis auctor mi, vitae convallis nisl justo ac tellus. Integer nec lacinia turpis. Etiam massa nisl, rhoncus quis rutrum in, pretium eu leo. Proin a velit ut nulla laoreet vestibulum. Curabitur eu elit vitae felis auctor tincidunt. Curabitur tincidunt, metus sed sollicitudin cursus, quam elit commodo erat, ut tempor erat sapien vitae velit. Morbi nec viverra erat.</p> - <p>Nullam scelerisque facilisis pretium. Vivamus lectus leo, commodo ac sagittis ac, dictum a mi. Donec quis massa ut libero malesuada commodo in et risus. Fusce nunc dolor, aliquet vel rutrum in, molestie sit amet massa. Aliquam suscipit, justo a commodo condimentum, enim sapien fringilla ante, sed lobortis orci lectus in ante. Donec vel interdum est. Donec placerat cursus lacus, eu ultricies nisl tincidunt a. Fusce libero risus, sagittis eleifend iaculis aliquet, condimentum vitae diam. Suspendisse potenti. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Proin leo purus, sodales a venenatis luctus, faucibus ac enim. Sed id metus ac sem lobortis pretium. Mauris faucibus tempor scelerisque. Nunc vulputate interdum tortor, non tincidunt dui condimentum eget. Aenean in porttitor velit. Nam accumsan rhoncus risus id consectetur.</p> - </div> - -<pre class="prettyprint"> - $('#testDiv2').slimScroll({ - allowPageScroll: true - }); -</pre> - -<div style="height:500px;">...adding height...</div> -</div> - -<script type="text/javascript"> - $(function(){ - - $('#testDiv').slimScroll(); - - $('#testDiv2').slimScroll({ - allowPageScroll: true - }); - - }); -</script> - - -<script type="text/javascript"> - - //enable syntax highlighter - prettyPrint(); - - var _gaq = _gaq || []; - _gaq.push(['_setAccount', 'UA-3112455-22']); - _gaq.push(['_setDomainName', 'none']); - _gaq.push(['_trackPageview']); - - (function() { - var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true; - ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js'; - var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s); - })(); -</script> -</body> -</html> \ No newline at end of file diff --git a/admin/bower_components/jquery-slimscroll/examples/chaining.html b/admin/bower_components/jquery-slimscroll/examples/chaining.html deleted file mode 100644 index fead426..0000000 --- a/admin/bower_components/jquery-slimscroll/examples/chaining.html +++ /dev/null @@ -1,80 +0,0 @@ -<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> -<html> -<head> -<title>jquery.slimscroll - chaining</title> -<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> -<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.0/jquery.min.js"></script> -<link href="libs/prettify/prettify.css" type="text/css" rel="stylesheet" /> -<script type="text/javascript" src="libs/prettify/prettify.js"></script> -<script type="text/javascript" src="../jquery.slimscroll.js"></script> -<link href="style.css" type="text/css" rel="stylesheet" /> -</head> -<body> -<a id="git-fork" href="https://github.com/rochal/jQuery-slimScroll"><img src="https://s3.amazonaws.com/github/ribbons/forkme_right_red_aa0000.png" alt="Fork me on GitHub"></a> -<div class="examples"> - <div id="testDiv"> - <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nam rhoncus, felis interdum condimentum consectetur, nisl libero elementum eros, vehicula congue lacus eros non diam. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Vivamus mauris lorem, lacinia id tempus non, imperdiet et leo. Cras sit amet erat sit amet lacus egestas placerat. Aenean ultricies ultrices mauris ac congue. In vel tortor vel velit tristique tempus ac id nisi. Proin quis lorem velit. Nunc dui dui, blandit a ullamcorper vitae, congue fringilla lectus. Aliquam ultricies malesuada feugiat. Vestibulum placerat turpis et eros lobortis vel semper sapien pulvinar.</p> - <p>Pellentesque rhoncus aliquet porta. Sed vel magna eu turpis pharetra consequat ut vitae lectus. In molestie sollicitudin mi sit amet convallis. Aliquam erat volutpat. Nullam feugiat placerat ipsum eget malesuada. Nulla facilisis nunc non dolor vehicula pretium. Sed dui magna, sodales id pharetra non, ullamcorper eu sapien. Mauris ac consectetur leo. Mauris consequat, lectus ut bibendum pulvinar, leo magna feugiat enim, eu commodo lacus sem vel ante. Sed tempus metus eget leo mollis vulputate. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos.</p> - <p>Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Sed pulvinar rhoncus quam, vel semper tellus viverra id. Nulla rutrum porttitor odio, a rutrum purus gravida non. Etiam ac purus augue, eget vestibulum purus. Aenean venenatis ullamcorper augue, non consequat elit tempor sed. Donec velit sapien, volutpat sed ultricies egestas, semper a ante. Fusce dapibus, quam eget auctor suscipit, nibh leo posuere ante, at auctor nisi lacus in sem. Morbi interdum consectetur euismod. Cras accumsan est lacus. Nulla eleifend, eros vel consequat commodo, arcu nunc malesuada nunc, quis sagittis felis sem ac turpis.</p> - <p>Nulla rhoncus elementum convallis. Mauris condimentum aliquet egestas. Ut iaculis nisi eget tellus accumsan venenatis. Maecenas imperdiet aliquam porta. Aenean ultrices dolor sed quam laoreet varius. Curabitur condimentum blandit erat, quis accumsan eros interdum vitae. Curabitur ligula arcu, sollicitudin vitae iaculis sed, blandit sit amet enim. Morbi ullamcorper, metus vel mollis tristique, arcu turpis malesuada nisi, at dignissim lorem odio a orci. Proin ultrices, ipsum ut vestibulum interdum, libero felis auctor mi, vitae convallis nisl justo ac tellus. Integer nec lacinia turpis. Etiam massa nisl, rhoncus quis rutrum in, pretium eu leo. Proin a velit ut nulla laoreet vestibulum. Curabitur eu elit vitae felis auctor tincidunt. Curabitur tincidunt, metus sed sollicitudin cursus, quam elit commodo erat, ut tempor erat sapien vitae velit. Morbi nec viverra erat.</p> - <p>Nullam scelerisque facilisis pretium. Vivamus lectus leo, commodo ac sagittis ac, dictum a mi. Donec quis massa ut libero malesuada commodo in et risus. Fusce nunc dolor, aliquet vel rutrum in, molestie sit amet massa. Aliquam suscipit, justo a commodo condimentum, enim sapien fringilla ante, sed lobortis orci lectus in ante. Donec vel interdum est. Donec placerat cursus lacus, eu ultricies nisl tincidunt a. Fusce libero risus, sagittis eleifend iaculis aliquet, condimentum vitae diam. Suspendisse potenti. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Proin leo purus, sodales a venenatis luctus, faucibus ac enim. Sed id metus ac sem lobortis pretium. Mauris faucibus tempor scelerisque. Nunc vulputate interdum tortor, non tincidunt dui condimentum eget. Aenean in porttitor velit. Nam accumsan rhoncus risus id consectetur.</p> - <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nam rhoncus, felis interdum condimentum consectetur, nisl libero elementum eros, vehicula congue lacus eros non diam. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Vivamus mauris lorem, lacinia id tempus non, imperdiet et leo. Cras sit amet erat sit amet lacus egestas placerat. Aenean ultricies ultrices mauris ac congue. In vel tortor vel velit tristique tempus ac id nisi. Proin quis lorem velit. Nunc dui dui, blandit a ullamcorper vitae, congue fringilla lectus. Aliquam ultricies malesuada feugiat. Vestibulum placerat turpis et eros lobortis vel semper sapien pulvinar.</p> - <p>Pellentesque rhoncus aliquet porta. Sed vel magna eu turpis pharetra consequat ut vitae lectus. In molestie sollicitudin mi sit amet convallis. Aliquam erat volutpat. Nullam feugiat placerat ipsum eget malesuada. Nulla facilisis nunc non dolor vehicula pretium. Sed dui magna, sodales id pharetra non, ullamcorper eu sapien. Mauris ac consectetur leo. Mauris consequat, lectus ut bibendum pulvinar, leo magna feugiat enim, eu commodo lacus sem vel ante. Sed tempus metus eget leo mollis vulputate. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos.</p> - <p>Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Sed pulvinar rhoncus quam, vel semper tellus viverra id. Nulla rutrum porttitor odio, a rutrum purus gravida non. Etiam ac purus augue, eget vestibulum purus. Aenean venenatis ullamcorper augue, non consequat elit tempor sed. Donec velit sapien, volutpat sed ultricies egestas, semper a ante. Fusce dapibus, quam eget auctor suscipit, nibh leo posuere ante, at auctor nisi lacus in sem. Morbi interdum consectetur euismod. Cras accumsan est lacus. Nulla eleifend, eros vel consequat commodo, arcu nunc malesuada nunc, quis sagittis felis sem ac turpis.</p> - <p>Nulla rhoncus elementum convallis. Mauris condimentum aliquet egestas. Ut iaculis nisi eget tellus accumsan venenatis. Maecenas imperdiet aliquam porta. Aenean ultrices dolor sed quam laoreet varius. Curabitur condimentum blandit erat, quis accumsan eros interdum vitae. Curabitur ligula arcu, sollicitudin vitae iaculis sed, blandit sit amet enim. Morbi ullamcorper, metus vel mollis tristique, arcu turpis malesuada nisi, at dignissim lorem odio a orci. Proin ultrices, ipsum ut vestibulum interdum, libero felis auctor mi, vitae convallis nisl justo ac tellus. Integer nec lacinia turpis. Etiam massa nisl, rhoncus quis rutrum in, pretium eu leo. Proin a velit ut nulla laoreet vestibulum. Curabitur eu elit vitae felis auctor tincidunt. Curabitur tincidunt, metus sed sollicitudin cursus, quam elit commodo erat, ut tempor erat sapien vitae velit. Morbi nec viverra erat.</p> - <p>Nullam scelerisque facilisis pretium. Vivamus lectus leo, commodo ac sagittis ac, dictum a mi. Donec quis massa ut libero malesuada commodo in et risus. Fusce nunc dolor, aliquet vel rutrum in, molestie sit amet massa. Aliquam suscipit, justo a commodo condimentum, enim sapien fringilla ante, sed lobortis orci lectus in ante. Donec vel interdum est. Donec placerat cursus lacus, eu ultricies nisl tincidunt a. Fusce libero risus, sagittis eleifend iaculis aliquet, condimentum vitae diam. Suspendisse potenti. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Proin leo purus, sodales a venenatis luctus, faucibus ac enim. Sed id metus ac sem lobortis pretium. Mauris faucibus tempor scelerisque. Nunc vulputate interdum tortor, non tincidunt dui condimentum eget. Aenean in porttitor velit. Nam accumsan rhoncus risus id consectetur.</p> - <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nam rhoncus, felis interdum condimentum consectetur, nisl libero elementum eros, vehicula congue lacus eros non diam. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Vivamus mauris lorem, lacinia id tempus non, imperdiet et leo. Cras sit amet erat sit amet lacus egestas placerat. Aenean ultricies ultrices mauris ac congue. In vel tortor vel velit tristique tempus ac id nisi. Proin quis lorem velit. Nunc dui dui, blandit a ullamcorper vitae, congue fringilla lectus. Aliquam ultricies malesuada feugiat. Vestibulum placerat turpis et eros lobortis vel semper sapien pulvinar.</p> - <p>Pellentesque rhoncus aliquet porta. Sed vel magna eu turpis pharetra consequat ut vitae lectus. In molestie sollicitudin mi sit amet convallis. Aliquam erat volutpat. Nullam feugiat placerat ipsum eget malesuada. Nulla facilisis nunc non dolor vehicula pretium. Sed dui magna, sodales id pharetra non, ullamcorper eu sapien. Mauris ac consectetur leo. Mauris consequat, lectus ut bibendum pulvinar, leo magna feugiat enim, eu commodo lacus sem vel ante. Sed tempus metus eget leo mollis vulputate. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos.</p> - <p>Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Sed pulvinar rhoncus quam, vel semper tellus viverra id. Nulla rutrum porttitor odio, a rutrum purus gravida non. Etiam ac purus augue, eget vestibulum purus. Aenean venenatis ullamcorper augue, non consequat elit tempor sed. Donec velit sapien, volutpat sed ultricies egestas, semper a ante. Fusce dapibus, quam eget auctor suscipit, nibh leo posuere ante, at auctor nisi lacus in sem. Morbi interdum consectetur euismod. Cras accumsan est lacus. Nulla eleifend, eros vel consequat commodo, arcu nunc malesuada nunc, quis sagittis felis sem ac turpis.</p> - <p>Nulla rhoncus elementum convallis. Mauris condimentum aliquet egestas. Ut iaculis nisi eget tellus accumsan venenatis. Maecenas imperdiet aliquam porta. Aenean ultrices dolor sed quam laoreet varius. Curabitur condimentum blandit erat, quis accumsan eros interdum vitae. Curabitur ligula arcu, sollicitudin vitae iaculis sed, blandit sit amet enim. Morbi ullamcorper, metus vel mollis tristique, arcu turpis malesuada nisi, at dignissim lorem odio a orci. Proin ultrices, ipsum ut vestibulum interdum, libero felis auctor mi, vitae convallis nisl justo ac tellus. Integer nec lacinia turpis. Etiam massa nisl, rhoncus quis rutrum in, pretium eu leo. Proin a velit ut nulla laoreet vestibulum. Curabitur eu elit vitae felis auctor tincidunt. Curabitur tincidunt, metus sed sollicitudin cursus, quam elit commodo erat, ut tempor erat sapien vitae velit. Morbi nec viverra erat.</p> - <p>Nullam scelerisque facilisis pretium. Vivamus lectus leo, commodo ac sagittis ac, dictum a mi. Donec quis massa ut libero malesuada commodo in et risus. Fusce nunc dolor, aliquet vel rutrum in, molestie sit amet massa. Aliquam suscipit, justo a commodo condimentum, enim sapien fringilla ante, sed lobortis orci lectus in ante. Donec vel interdum est. Donec placerat cursus lacus, eu ultricies nisl tincidunt a. Fusce libero risus, sagittis eleifend iaculis aliquet, condimentum vitae diam. Suspendisse potenti. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Proin leo purus, sodales a venenatis luctus, faucibus ac enim. Sed id metus ac sem lobortis pretium. Mauris faucibus tempor scelerisque. Nunc vulputate interdum tortor, non tincidunt dui condimentum eget. Aenean in porttitor velit. Nam accumsan rhoncus risus id consectetur.</p> - </div> - -<pre class="prettyprint"> -$('#testDiv').slimscroll({ - height: '250px' -}).parent().css({ - background: '#237FAD', - border: '2px dashed #184055' -}); -</pre> - - -</div> - -<script type="text/javascript"> - $(function(){ - $('#testDiv').slimscroll({ - height: '250px' - }).parent().css({ - background: '#237FAD', - border: '2px dashed #184055' - }); - - $('#testDiv2').slimScroll({ - height: '100px', - width: '300px' - }); - - }); -</script> - - -<script type="text/javascript"> - - //enable syntax highlighter - prettyPrint(); - - var _gaq = _gaq || []; - _gaq.push(['_setAccount', 'UA-3112455-22']); - _gaq.push(['_setDomainName', 'none']); - _gaq.push(['_trackPageview']); - - (function() { - var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true; - ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js'; - var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s); - })(); -</script> -</body> -</html> \ No newline at end of file diff --git a/admin/bower_components/jquery-slimscroll/examples/disable-fade-out.html b/admin/bower_components/jquery-slimscroll/examples/disable-fade-out.html deleted file mode 100644 index 7c8e6fa..0000000 --- a/admin/bower_components/jquery-slimscroll/examples/disable-fade-out.html +++ /dev/null @@ -1,94 +0,0 @@ -<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> -<html> -<head> -<title>jquery.slimscroll - disable fade out</title> -<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> -<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.0/jquery.min.js"></script> - -<link href="libs/prettify/prettify.css" type="text/css" rel="stylesheet" /> -<script type="text/javascript" src="libs/prettify/prettify.js"></script> -<script type="text/javascript" src="../jquery.slimscroll.js"></script> -<link href="style.css" type="text/css" rel="stylesheet" /> -</head> -<body> -<a id="git-fork" href="https://github.com/rochal/jQuery-slimScroll"><img src="https://s3.amazonaws.com/github/ribbons/forkme_right_red_aa0000.png" alt="Fork me on GitHub"></a> -<div class="examples"> - <div id="testDiv"> - <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nam rhoncus, felis interdum condimentum consectetur, nisl libero elementum eros, vehicula congue lacus eros non diam. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Vivamus mauris lorem, lacinia id tempus non, imperdiet et leo. Cras sit amet erat sit amet lacus egestas placerat. Aenean ultricies ultrices mauris ac congue. In vel tortor vel velit tristique tempus ac id nisi. Proin quis lorem velit. Nunc dui dui, blandit a ullamcorper vitae, congue fringilla lectus. Aliquam ultricies malesuada feugiat. Vestibulum placerat turpis et eros lobortis vel semper sapien pulvinar.</p> - <p>Pellentesque rhoncus aliquet porta. Sed vel magna eu turpis pharetra consequat ut vitae lectus. In molestie sollicitudin mi sit amet convallis. Aliquam erat volutpat. Nullam feugiat placerat ipsum eget malesuada. Nulla facilisis nunc non dolor vehicula pretium. Sed dui magna, sodales id pharetra non, ullamcorper eu sapien. Mauris ac consectetur leo. Mauris consequat, lectus ut bibendum pulvinar, leo magna feugiat enim, eu commodo lacus sem vel ante. Sed tempus metus eget leo mollis vulputate. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos.</p> - <p>Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Sed pulvinar rhoncus quam, vel semper tellus viverra id. Nulla rutrum porttitor odio, a rutrum purus gravida non. Etiam ac purus augue, eget vestibulum purus. Aenean venenatis ullamcorper augue, non consequat elit tempor sed. Donec velit sapien, volutpat sed ultricies egestas, semper a ante. Fusce dapibus, quam eget auctor suscipit, nibh leo posuere ante, at auctor nisi lacus in sem. Morbi interdum consectetur euismod. Cras accumsan est lacus. Nulla eleifend, eros vel consequat commodo, arcu nunc malesuada nunc, quis sagittis felis sem ac turpis.</p> - <p>Nulla rhoncus elementum convallis. Mauris condimentum aliquet egestas. Ut iaculis nisi eget tellus accumsan venenatis. Maecenas imperdiet aliquam porta. Aenean ultrices dolor sed quam laoreet varius. Curabitur condimentum blandit erat, quis accumsan eros interdum vitae. Curabitur ligula arcu, sollicitudin vitae iaculis sed, blandit sit amet enim. Morbi ullamcorper, metus vel mollis tristique, arcu turpis malesuada nisi, at dignissim lorem odio a orci. Proin ultrices, ipsum ut vestibulum interdum, libero felis auctor mi, vitae convallis nisl justo ac tellus. Integer nec lacinia turpis. Etiam massa nisl, rhoncus quis rutrum in, pretium eu leo. Proin a velit ut nulla laoreet vestibulum. Curabitur eu elit vitae felis auctor tincidunt. Curabitur tincidunt, metus sed sollicitudin cursus, quam elit commodo erat, ut tempor erat sapien vitae velit. Morbi nec viverra erat.</p> - <p>Nullam scelerisque facilisis pretium. Vivamus lectus leo, commodo ac sagittis ac, dictum a mi. Donec quis massa ut libero malesuada commodo in et risus. Fusce nunc dolor, aliquet vel rutrum in, molestie sit amet massa. Aliquam suscipit, justo a commodo condimentum, enim sapien fringilla ante, sed lobortis orci lectus in ante. Donec vel interdum est. Donec placerat cursus lacus, eu ultricies nisl tincidunt a. Fusce libero risus, sagittis eleifend iaculis aliquet, condimentum vitae diam. Suspendisse potenti. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Proin leo purus, sodales a venenatis luctus, faucibus ac enim. Sed id metus ac sem lobortis pretium. Mauris faucibus tempor scelerisque. Nunc vulputate interdum tortor, non tincidunt dui condimentum eget. Aenean in porttitor velit. Nam accumsan rhoncus risus id consectetur.</p> - <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nam rhoncus, felis interdum condimentum consectetur, nisl libero elementum eros, vehicula congue lacus eros non diam. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Vivamus mauris lorem, lacinia id tempus non, imperdiet et leo. Cras sit amet erat sit amet lacus egestas placerat. Aenean ultricies ultrices mauris ac congue. In vel tortor vel velit tristique tempus ac id nisi. Proin quis lorem velit. Nunc dui dui, blandit a ullamcorper vitae, congue fringilla lectus. Aliquam ultricies malesuada feugiat. Vestibulum placerat turpis et eros lobortis vel semper sapien pulvinar.</p> - <p>Pellentesque rhoncus aliquet porta. Sed vel magna eu turpis pharetra consequat ut vitae lectus. In molestie sollicitudin mi sit amet convallis. Aliquam erat volutpat. Nullam feugiat placerat ipsum eget malesuada. Nulla facilisis nunc non dolor vehicula pretium. Sed dui magna, sodales id pharetra non, ullamcorper eu sapien. Mauris ac consectetur leo. Mauris consequat, lectus ut bibendum pulvinar, leo magna feugiat enim, eu commodo lacus sem vel ante. Sed tempus metus eget leo mollis vulputate. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos.</p> - <p>Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Sed pulvinar rhoncus quam, vel semper tellus viverra id. Nulla rutrum porttitor odio, a rutrum purus gravida non. Etiam ac purus augue, eget vestibulum purus. Aenean venenatis ullamcorper augue, non consequat elit tempor sed. Donec velit sapien, volutpat sed ultricies egestas, semper a ante. Fusce dapibus, quam eget auctor suscipit, nibh leo posuere ante, at auctor nisi lacus in sem. Morbi interdum consectetur euismod. Cras accumsan est lacus. Nulla eleifend, eros vel consequat commodo, arcu nunc malesuada nunc, quis sagittis felis sem ac turpis.</p> - <p>Nulla rhoncus elementum convallis. Mauris condimentum aliquet egestas. Ut iaculis nisi eget tellus accumsan venenatis. Maecenas imperdiet aliquam porta. Aenean ultrices dolor sed quam laoreet varius. Curabitur condimentum blandit erat, quis accumsan eros interdum vitae. Curabitur ligula arcu, sollicitudin vitae iaculis sed, blandit sit amet enim. Morbi ullamcorper, metus vel mollis tristique, arcu turpis malesuada nisi, at dignissim lorem odio a orci. Proin ultrices, ipsum ut vestibulum interdum, libero felis auctor mi, vitae convallis nisl justo ac tellus. Integer nec lacinia turpis. Etiam massa nisl, rhoncus quis rutrum in, pretium eu leo. Proin a velit ut nulla laoreet vestibulum. Curabitur eu elit vitae felis auctor tincidunt. Curabitur tincidunt, metus sed sollicitudin cursus, quam elit commodo erat, ut tempor erat sapien vitae velit. Morbi nec viverra erat.</p> - <p>Nullam scelerisque facilisis pretium. Vivamus lectus leo, commodo ac sagittis ac, dictum a mi. Donec quis massa ut libero malesuada commodo in et risus. Fusce nunc dolor, aliquet vel rutrum in, molestie sit amet massa. Aliquam suscipit, justo a commodo condimentum, enim sapien fringilla ante, sed lobortis orci lectus in ante. Donec vel interdum est. Donec placerat cursus lacus, eu ultricies nisl tincidunt a. Fusce libero risus, sagittis eleifend iaculis aliquet, condimentum vitae diam. Suspendisse potenti. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Proin leo purus, sodales a venenatis luctus, faucibus ac enim. Sed id metus ac sem lobortis pretium. Mauris faucibus tempor scelerisque. Nunc vulputate interdum tortor, non tincidunt dui condimentum eget. Aenean in porttitor velit. Nam accumsan rhoncus risus id consectetur.</p> - <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nam rhoncus, felis interdum condimentum consectetur, nisl libero elementum eros, vehicula congue lacus eros non diam. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Vivamus mauris lorem, lacinia id tempus non, imperdiet et leo. Cras sit amet erat sit amet lacus egestas placerat. Aenean ultricies ultrices mauris ac congue. In vel tortor vel velit tristique tempus ac id nisi. Proin quis lorem velit. Nunc dui dui, blandit a ullamcorper vitae, congue fringilla lectus. Aliquam ultricies malesuada feugiat. Vestibulum placerat turpis et eros lobortis vel semper sapien pulvinar.</p> - <p>Pellentesque rhoncus aliquet porta. Sed vel magna eu turpis pharetra consequat ut vitae lectus. In molestie sollicitudin mi sit amet convallis. Aliquam erat volutpat. Nullam feugiat placerat ipsum eget malesuada. Nulla facilisis nunc non dolor vehicula pretium. Sed dui magna, sodales id pharetra non, ullamcorper eu sapien. Mauris ac consectetur leo. Mauris consequat, lectus ut bibendum pulvinar, leo magna feugiat enim, eu commodo lacus sem vel ante. Sed tempus metus eget leo mollis vulputate. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos.</p> - <p>Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Sed pulvinar rhoncus quam, vel semper tellus viverra id. Nulla rutrum porttitor odio, a rutrum purus gravida non. Etiam ac purus augue, eget vestibulum purus. Aenean venenatis ullamcorper augue, non consequat elit tempor sed. Donec velit sapien, volutpat sed ultricies egestas, semper a ante. Fusce dapibus, quam eget auctor suscipit, nibh leo posuere ante, at auctor nisi lacus in sem. Morbi interdum consectetur euismod. Cras accumsan est lacus. Nulla eleifend, eros vel consequat commodo, arcu nunc malesuada nunc, quis sagittis felis sem ac turpis.</p> - <p>Nulla rhoncus elementum convallis. Mauris condimentum aliquet egestas. Ut iaculis nisi eget tellus accumsan venenatis. Maecenas imperdiet aliquam porta. Aenean ultrices dolor sed quam laoreet varius. Curabitur condimentum blandit erat, quis accumsan eros interdum vitae. Curabitur ligula arcu, sollicitudin vitae iaculis sed, blandit sit amet enim. Morbi ullamcorper, metus vel mollis tristique, arcu turpis malesuada nisi, at dignissim lorem odio a orci. Proin ultrices, ipsum ut vestibulum interdum, libero felis auctor mi, vitae convallis nisl justo ac tellus. Integer nec lacinia turpis. Etiam massa nisl, rhoncus quis rutrum in, pretium eu leo. Proin a velit ut nulla laoreet vestibulum. Curabitur eu elit vitae felis auctor tincidunt. Curabitur tincidunt, metus sed sollicitudin cursus, quam elit commodo erat, ut tempor erat sapien vitae velit. Morbi nec viverra erat.</p> - <p>Nullam scelerisque facilisis pretium. Vivamus lectus leo, commodo ac sagittis ac, dictum a mi. Donec quis massa ut libero malesuada commodo in et risus. Fusce nunc dolor, aliquet vel rutrum in, molestie sit amet massa. Aliquam suscipit, justo a commodo condimentum, enim sapien fringilla ante, sed lobortis orci lectus in ante. Donec vel interdum est. Donec placerat cursus lacus, eu ultricies nisl tincidunt a. Fusce libero risus, sagittis eleifend iaculis aliquet, condimentum vitae diam. Suspendisse potenti. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Proin leo purus, sodales a venenatis luctus, faucibus ac enim. Sed id metus ac sem lobortis pretium. Mauris faucibus tempor scelerisque. Nunc vulputate interdum tortor, non tincidunt dui condimentum eget. Aenean in porttitor velit. Nam accumsan rhoncus risus id consectetur.</p> - </div> - -<pre class="prettyprint"> -$('#testDiv').slimscroll(); -</pre> - - <div id="testDiv2"> - <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nam rhoncus, felis interdum condimentum consectetur, nisl libero elementum eros, vehicula congue lacus eros non diam. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Vivamus mauris lorem, lacinia id tempus non, imperdiet et leo. Cras sit amet erat sit amet lacus egestas placerat. Aenean ultricies ultrices mauris ac congue. In vel tortor vel velit tristique tempus ac id nisi. Proin quis lorem velit. Nunc dui dui, blandit a ullamcorper vitae, congue fringilla lectus. Aliquam ultricies malesuada feugiat. Vestibulum placerat turpis et eros lobortis vel semper sapien pulvinar.</p> - <p>Pellentesque rhoncus aliquet porta. Sed vel magna eu turpis pharetra consequat ut vitae lectus. In molestie sollicitudin mi sit amet convallis. Aliquam erat volutpat. Nullam feugiat placerat ipsum eget malesuada. Nulla facilisis nunc non dolor vehicula pretium. Sed dui magna, sodales id pharetra non, ullamcorper eu sapien. Mauris ac consectetur leo. Mauris consequat, lectus ut bibendum pulvinar, leo magna feugiat enim, eu commodo lacus sem vel ante. Sed tempus metus eget leo mollis vulputate. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos.</p> - <p>Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Sed pulvinar rhoncus quam, vel semper tellus viverra id. Nulla rutrum porttitor odio, a rutrum purus gravida non. Etiam ac purus augue, eget vestibulum purus. Aenean venenatis ullamcorper augue, non consequat elit tempor sed. Donec velit sapien, volutpat sed ultricies egestas, semper a ante. Fusce dapibus, quam eget auctor suscipit, nibh leo posuere ante, at auctor nisi lacus in sem. Morbi interdum consectetur euismod. Cras accumsan est lacus. Nulla eleifend, eros vel consequat commodo, arcu nunc malesuada nunc, quis sagittis felis sem ac turpis.</p> - <p>Nulla rhoncus elementum convallis. Mauris condimentum aliquet egestas. Ut iaculis nisi eget tellus accumsan venenatis. Maecenas imperdiet aliquam porta. Aenean ultrices dolor sed quam laoreet varius. Curabitur condimentum blandit erat, quis accumsan eros interdum vitae. Curabitur ligula arcu, sollicitudin vitae iaculis sed, blandit sit amet enim. Morbi ullamcorper, metus vel mollis tristique, arcu turpis malesuada nisi, at dignissim lorem odio a orci. Proin ultrices, ipsum ut vestibulum interdum, libero felis auctor mi, vitae convallis nisl justo ac tellus. Integer nec lacinia turpis. Etiam massa nisl, rhoncus quis rutrum in, pretium eu leo. Proin a velit ut nulla laoreet vestibulum. Curabitur eu elit vitae felis auctor tincidunt. Curabitur tincidunt, metus sed sollicitudin cursus, quam elit commodo erat, ut tempor erat sapien vitae velit. Morbi nec viverra erat.</p> - <p>Nullam scelerisque facilisis pretium. Vivamus lectus leo, commodo ac sagittis ac, dictum a mi. Donec quis massa ut libero malesuada commodo in et risus. Fusce nunc dolor, aliquet vel rutrum in, molestie sit amet massa. Aliquam suscipit, justo a commodo condimentum, enim sapien fringilla ante, sed lobortis orci lectus in ante. Donec vel interdum est. Donec placerat cursus lacus, eu ultricies nisl tincidunt a. Fusce libero risus, sagittis eleifend iaculis aliquet, condimentum vitae diam. Suspendisse potenti. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Proin leo purus, sodales a venenatis luctus, faucibus ac enim. Sed id metus ac sem lobortis pretium. Mauris faucibus tempor scelerisque. Nunc vulputate interdum tortor, non tincidunt dui condimentum eget. Aenean in porttitor velit. Nam accumsan rhoncus risus id consectetur.</p> - <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nam rhoncus, felis interdum condimentum consectetur, nisl libero elementum eros, vehicula congue lacus eros non diam. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Vivamus mauris lorem, lacinia id tempus non, imperdiet et leo. Cras sit amet erat sit amet lacus egestas placerat. Aenean ultricies ultrices mauris ac congue. In vel tortor vel velit tristique tempus ac id nisi. Proin quis lorem velit. Nunc dui dui, blandit a ullamcorper vitae, congue fringilla lectus. Aliquam ultricies malesuada feugiat. Vestibulum placerat turpis et eros lobortis vel semper sapien pulvinar.</p> - <p>Pellentesque rhoncus aliquet porta. Sed vel magna eu turpis pharetra consequat ut vitae lectus. In molestie sollicitudin mi sit amet convallis. Aliquam erat volutpat. Nullam feugiat placerat ipsum eget malesuada. Nulla facilisis nunc non dolor vehicula pretium. Sed dui magna, sodales id pharetra non, ullamcorper eu sapien. Mauris ac consectetur leo. Mauris consequat, lectus ut bibendum pulvinar, leo magna feugiat enim, eu commodo lacus sem vel ante. Sed tempus metus eget leo mollis vulputate. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos.</p> - <p>Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Sed pulvinar rhoncus quam, vel semper tellus viverra id. Nulla rutrum porttitor odio, a rutrum purus gravida non. Etiam ac purus augue, eget vestibulum purus. Aenean venenatis ullamcorper augue, non consequat elit tempor sed. Donec velit sapien, volutpat sed ultricies egestas, semper a ante. Fusce dapibus, quam eget auctor suscipit, nibh leo posuere ante, at auctor nisi lacus in sem. Morbi interdum consectetur euismod. Cras accumsan est lacus. Nulla eleifend, eros vel consequat commodo, arcu nunc malesuada nunc, quis sagittis felis sem ac turpis.</p> - <p>Nulla rhoncus elementum convallis. Mauris condimentum aliquet egestas. Ut iaculis nisi eget tellus accumsan venenatis. Maecenas imperdiet aliquam porta. Aenean ultrices dolor sed quam laoreet varius. Curabitur condimentum blandit erat, quis accumsan eros interdum vitae. Curabitur ligula arcu, sollicitudin vitae iaculis sed, blandit sit amet enim. Morbi ullamcorper, metus vel mollis tristique, arcu turpis malesuada nisi, at dignissim lorem odio a orci. Proin ultrices, ipsum ut vestibulum interdum, libero felis auctor mi, vitae convallis nisl justo ac tellus. Integer nec lacinia turpis. Etiam massa nisl, rhoncus quis rutrum in, pretium eu leo. Proin a velit ut nulla laoreet vestibulum. Curabitur eu elit vitae felis auctor tincidunt. Curabitur tincidunt, metus sed sollicitudin cursus, quam elit commodo erat, ut tempor erat sapien vitae velit. Morbi nec viverra erat.</p> - <p>Nullam scelerisque facilisis pretium. Vivamus lectus leo, commodo ac sagittis ac, dictum a mi. Donec quis massa ut libero malesuada commodo in et risus. Fusce nunc dolor, aliquet vel rutrum in, molestie sit amet massa. Aliquam suscipit, justo a commodo condimentum, enim sapien fringilla ante, sed lobortis orci lectus in ante. Donec vel interdum est. Donec placerat cursus lacus, eu ultricies nisl tincidunt a. Fusce libero risus, sagittis eleifend iaculis aliquet, condimentum vitae diam. Suspendisse potenti. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Proin leo purus, sodales a venenatis luctus, faucibus ac enim. Sed id metus ac sem lobortis pretium. Mauris faucibus tempor scelerisque. Nunc vulputate interdum tortor, non tincidunt dui condimentum eget. Aenean in porttitor velit. Nam accumsan rhoncus risus id consectetur.</p> - <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nam rhoncus, felis interdum condimentum consectetur, nisl libero elementum eros, vehicula congue lacus eros non diam. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Vivamus mauris lorem, lacinia id tempus non, imperdiet et leo. Cras sit amet erat sit amet lacus egestas placerat. Aenean ultricies ultrices mauris ac congue. In vel tortor vel velit tristique tempus ac id nisi. Proin quis lorem velit. Nunc dui dui, blandit a ullamcorper vitae, congue fringilla lectus. Aliquam ultricies malesuada feugiat. Vestibulum placerat turpis et eros lobortis vel semper sapien pulvinar.</p> - <p>Pellentesque rhoncus aliquet porta. Sed vel magna eu turpis pharetra consequat ut vitae lectus. In molestie sollicitudin mi sit amet convallis. Aliquam erat volutpat. Nullam feugiat placerat ipsum eget malesuada. Nulla facilisis nunc non dolor vehicula pretium. Sed dui magna, sodales id pharetra non, ullamcorper eu sapien. Mauris ac consectetur leo. Mauris consequat, lectus ut bibendum pulvinar, leo magna feugiat enim, eu commodo lacus sem vel ante. Sed tempus metus eget leo mollis vulputate. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos.</p> - <p>Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Sed pulvinar rhoncus quam, vel semper tellus viverra id. Nulla rutrum porttitor odio, a rutrum purus gravida non. Etiam ac purus augue, eget vestibulum purus. Aenean venenatis ullamcorper augue, non consequat elit tempor sed. Donec velit sapien, volutpat sed ultricies egestas, semper a ante. Fusce dapibus, quam eget auctor suscipit, nibh leo posuere ante, at auctor nisi lacus in sem. Morbi interdum consectetur euismod. Cras accumsan est lacus. Nulla eleifend, eros vel consequat commodo, arcu nunc malesuada nunc, quis sagittis felis sem ac turpis.</p> - <p>Nulla rhoncus elementum convallis. Mauris condimentum aliquet egestas. Ut iaculis nisi eget tellus accumsan venenatis. Maecenas imperdiet aliquam porta. Aenean ultrices dolor sed quam laoreet varius. Curabitur condimentum blandit erat, quis accumsan eros interdum vitae. Curabitur ligula arcu, sollicitudin vitae iaculis sed, blandit sit amet enim. Morbi ullamcorper, metus vel mollis tristique, arcu turpis malesuada nisi, at dignissim lorem odio a orci. Proin ultrices, ipsum ut vestibulum interdum, libero felis auctor mi, vitae convallis nisl justo ac tellus. Integer nec lacinia turpis. Etiam massa nisl, rhoncus quis rutrum in, pretium eu leo. Proin a velit ut nulla laoreet vestibulum. Curabitur eu elit vitae felis auctor tincidunt. Curabitur tincidunt, metus sed sollicitudin cursus, quam elit commodo erat, ut tempor erat sapien vitae velit. Morbi nec viverra erat.</p> - <p>Nullam scelerisque facilisis pretium. Vivamus lectus leo, commodo ac sagittis ac, dictum a mi. Donec quis massa ut libero malesuada commodo in et risus. Fusce nunc dolor, aliquet vel rutrum in, molestie sit amet massa. Aliquam suscipit, justo a commodo condimentum, enim sapien fringilla ante, sed lobortis orci lectus in ante. Donec vel interdum est. Donec placerat cursus lacus, eu ultricies nisl tincidunt a. Fusce libero risus, sagittis eleifend iaculis aliquet, condimentum vitae diam. Suspendisse potenti. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Proin leo purus, sodales a venenatis luctus, faucibus ac enim. Sed id metus ac sem lobortis pretium. Mauris faucibus tempor scelerisque. Nunc vulputate interdum tortor, non tincidunt dui condimentum eget. Aenean in porttitor velit. Nam accumsan rhoncus risus id consectetur.</p> - </div> - -<pre class="prettyprint"> -$('#testDiv2').slimscroll({ - disableFadeOut: true -}); -</pre> - -</div> - -<script type="text/javascript"> - $(function(){ - - $('#testDiv').slimscroll(); - - $('#testDiv2').slimscroll({ - disableFadeOut: true - }); - - }); -</script> - - -<script type="text/javascript"> - - //enable syntax highlighter - prettyPrint(); - - var _gaq = _gaq || []; - _gaq.push(['_setAccount', 'UA-3112455-22']); - _gaq.push(['_setDomainName', 'none']); - _gaq.push(['_trackPageview']); - - (function() { - var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true; - ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js'; - var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s); - })(); -</script> -</body> -</html> \ No newline at end of file diff --git a/admin/bower_components/jquery-slimscroll/examples/dynamic-content.html b/admin/bower_components/jquery-slimscroll/examples/dynamic-content.html deleted file mode 100644 index 1ac5e56..0000000 --- a/admin/bower_components/jquery-slimscroll/examples/dynamic-content.html +++ /dev/null @@ -1,81 +0,0 @@ -<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> -<html> -<head> -<title>jquery.slimscroll - dynamic content</title> -<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> -<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.0/jquery.min.js"></script> - -<link href="libs/prettify/prettify.css" type="text/css" rel="stylesheet" /> -<script type="text/javascript" src="libs/prettify/prettify.js"></script> -<script type="text/javascript" src="../jquery.slimscroll.js"></script> -<link href="style.css" type="text/css" rel="stylesheet" /> -</head> -<body> -<a id="git-fork" href="https://github.com/rochal/jQuery-slimScroll"><img src="https://s3.amazonaws.com/github/ribbons/forkme_right_red_aa0000.png" alt="Fork me on GitHub"></a> -<div class="examples"> - - - <div id="testDiv"> - </div> - - <pre class="prettyprint"> - // update content every second - setInterval(function(){ - var el = $('&lt;div&gt;&lt;/div&gt;').html('#' + $('#testDiv').children().length) - .css({ padding: '3px', border: '1px solid #ccc', margin: '5px' }); - $('#testDiv').append(el); - - // update slimscroll every time content changes - $('#testDiv').slimscroll(); - }, 1000); - - $('#testDiv').slimscroll({ - alwaysVisible: true, - height: 150 - }); - </pre> - - - -</div> - -<script type="text/javascript"> - $(function(){ - - // update content every second - setInterval(function(){ - var el = $('<div></div>').html('#' + $('#testDiv').children().length) - .css({ padding: '3px', border: '1px solid #ccc', margin: '5px' }); - $('#testDiv').append(el); - - // update slimscroll every time content changes - $('#testDiv').slimscroll(); - }, 1000); - - $('#testDiv').slimscroll({ - alwaysVisible: true, - height: 150 - }); - - }); -</script> - - -<script type="text/javascript"> - - //enable syntax highlighter - prettyPrint(); - - var _gaq = _gaq || []; - _gaq.push(['_setAccount', 'UA-3112455-22']); - _gaq.push(['_setDomainName', 'none']); - _gaq.push(['_trackPageview']); - - (function() { - var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true; - ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js'; - var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s); - })(); -</script> -</body> -</html> \ No newline at end of file diff --git a/admin/bower_components/jquery-slimscroll/examples/height-width.html b/admin/bower_components/jquery-slimscroll/examples/height-width.html deleted file mode 100644 index 4b006b0..0000000 --- a/admin/bower_components/jquery-slimscroll/examples/height-width.html +++ /dev/null @@ -1,125 +0,0 @@ -<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> -<html> -<head> -<title>jquery.slimscroll - height / width</title> -<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> -<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.0/jquery.min.js"></script> - -<link href="libs/prettify/prettify.css" type="text/css" rel="stylesheet" /> -<script type="text/javascript" src="libs/prettify/prettify.js"></script> -<script type="text/javascript" src="../jquery.slimscroll.js"></script> -<link href="style.css" type="text/css" rel="stylesheet" /> -</head> -<body> -<a id="git-fork" href="https://github.com/rochal/jQuery-slimScroll"><img src="https://s3.amazonaws.com/github/ribbons/forkme_right_red_aa0000.png" alt="Fork me on GitHub"></a> -<div class="examples"> - <div style="height:300px;"> - <div id="testDiv"> - <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nam rhoncus, felis interdum condimentum consectetur, nisl libero elementum eros, vehicula congue lacus eros non diam. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Vivamus mauris lorem, lacinia id tempus non, imperdiet et leo. Cras sit amet erat sit amet lacus egestas placerat. Aenean ultricies ultrices mauris ac congue. In vel tortor vel velit tristique tempus ac id nisi. Proin quis lorem velit. Nunc dui dui, blandit a ullamcorper vitae, congue fringilla lectus. Aliquam ultricies malesuada feugiat. Vestibulum placerat turpis et eros lobortis vel semper sapien pulvinar.</p> - <p>Pellentesque rhoncus aliquet porta. Sed vel magna eu turpis pharetra consequat ut vitae lectus. In molestie sollicitudin mi sit amet convallis. Aliquam erat volutpat. Nullam feugiat placerat ipsum eget malesuada. Nulla facilisis nunc non dolor vehicula pretium. Sed dui magna, sodales id pharetra non, ullamcorper eu sapien. Mauris ac consectetur leo. Mauris consequat, lectus ut bibendum pulvinar, leo magna feugiat enim, eu commodo lacus sem vel ante. Sed tempus metus eget leo mollis vulputate. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos.</p> - <p>Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Sed pulvinar rhoncus quam, vel semper tellus viverra id. Nulla rutrum porttitor odio, a rutrum purus gravida non. Etiam ac purus augue, eget vestibulum purus. Aenean venenatis ullamcorper augue, non consequat elit tempor sed. Donec velit sapien, volutpat sed ultricies egestas, semper a ante. Fusce dapibus, quam eget auctor suscipit, nibh leo posuere ante, at auctor nisi lacus in sem. Morbi interdum consectetur euismod. Cras accumsan est lacus. Nulla eleifend, eros vel consequat commodo, arcu nunc malesuada nunc, quis sagittis felis sem ac turpis.</p> - <p>Nulla rhoncus elementum convallis. Mauris condimentum aliquet egestas. Ut iaculis nisi eget tellus accumsan venenatis. Maecenas imperdiet aliquam porta. Aenean ultrices dolor sed quam laoreet varius. Curabitur condimentum blandit erat, quis accumsan eros interdum vitae. Curabitur ligula arcu, sollicitudin vitae iaculis sed, blandit sit amet enim. Morbi ullamcorper, metus vel mollis tristique, arcu turpis malesuada nisi, at dignissim lorem odio a orci. Proin ultrices, ipsum ut vestibulum interdum, libero felis auctor mi, vitae convallis nisl justo ac tellus. Integer nec lacinia turpis. Etiam massa nisl, rhoncus quis rutrum in, pretium eu leo. Proin a velit ut nulla laoreet vestibulum. Curabitur eu elit vitae felis auctor tincidunt. Curabitur tincidunt, metus sed sollicitudin cursus, quam elit commodo erat, ut tempor erat sapien vitae velit. Morbi nec viverra erat.</p> - <p>Nullam scelerisque facilisis pretium. Vivamus lectus leo, commodo ac sagittis ac, dictum a mi. Donec quis massa ut libero malesuada commodo in et risus. Fusce nunc dolor, aliquet vel rutrum in, molestie sit amet massa. Aliquam suscipit, justo a commodo condimentum, enim sapien fringilla ante, sed lobortis orci lectus in ante. Donec vel interdum est. Donec placerat cursus lacus, eu ultricies nisl tincidunt a. Fusce libero risus, sagittis eleifend iaculis aliquet, condimentum vitae diam. Suspendisse potenti. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Proin leo purus, sodales a venenatis luctus, faucibus ac enim. Sed id metus ac sem lobortis pretium. Mauris faucibus tempor scelerisque. Nunc vulputate interdum tortor, non tincidunt dui condimentum eget. Aenean in porttitor velit. Nam accumsan rhoncus risus id consectetur.</p> - <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nam rhoncus, felis interdum condimentum consectetur, nisl libero elementum eros, vehicula congue lacus eros non diam. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Vivamus mauris lorem, lacinia id tempus non, imperdiet et leo. Cras sit amet erat sit amet lacus egestas placerat. Aenean ultricies ultrices mauris ac congue. In vel tortor vel velit tristique tempus ac id nisi. Proin quis lorem velit. Nunc dui dui, blandit a ullamcorper vitae, congue fringilla lectus. Aliquam ultricies malesuada feugiat. Vestibulum placerat turpis et eros lobortis vel semper sapien pulvinar.</p> - <p>Pellentesque rhoncus aliquet porta. Sed vel magna eu turpis pharetra consequat ut vitae lectus. In molestie sollicitudin mi sit amet convallis. Aliquam erat volutpat. Nullam feugiat placerat ipsum eget malesuada. Nulla facilisis nunc non dolor vehicula pretium. Sed dui magna, sodales id pharetra non, ullamcorper eu sapien. Mauris ac consectetur leo. Mauris consequat, lectus ut bibendum pulvinar, leo magna feugiat enim, eu commodo lacus sem vel ante. Sed tempus metus eget leo mollis vulputate. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos.</p> - <p>Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Sed pulvinar rhoncus quam, vel semper tellus viverra id. Nulla rutrum porttitor odio, a rutrum purus gravida non. Etiam ac purus augue, eget vestibulum purus. Aenean venenatis ullamcorper augue, non consequat elit tempor sed. Donec velit sapien, volutpat sed ultricies egestas, semper a ante. Fusce dapibus, quam eget auctor suscipit, nibh leo posuere ante, at auctor nisi lacus in sem. Morbi interdum consectetur euismod. Cras accumsan est lacus. Nulla eleifend, eros vel consequat commodo, arcu nunc malesuada nunc, quis sagittis felis sem ac turpis.</p> - <p>Nulla rhoncus elementum convallis. Mauris condimentum aliquet egestas. Ut iaculis nisi eget tellus accumsan venenatis. Maecenas imperdiet aliquam porta. Aenean ultrices dolor sed quam laoreet varius. Curabitur condimentum blandit erat, quis accumsan eros interdum vitae. Curabitur ligula arcu, sollicitudin vitae iaculis sed, blandit sit amet enim. Morbi ullamcorper, metus vel mollis tristique, arcu turpis malesuada nisi, at dignissim lorem odio a orci. Proin ultrices, ipsum ut vestibulum interdum, libero felis auctor mi, vitae convallis nisl justo ac tellus. Integer nec lacinia turpis. Etiam massa nisl, rhoncus quis rutrum in, pretium eu leo. Proin a velit ut nulla laoreet vestibulum. Curabitur eu elit vitae felis auctor tincidunt. Curabitur tincidunt, metus sed sollicitudin cursus, quam elit commodo erat, ut tempor erat sapien vitae velit. Morbi nec viverra erat.</p> - <p>Nullam scelerisque facilisis pretium. Vivamus lectus leo, commodo ac sagittis ac, dictum a mi. Donec quis massa ut libero malesuada commodo in et risus. Fusce nunc dolor, aliquet vel rutrum in, molestie sit amet massa. Aliquam suscipit, justo a commodo condimentum, enim sapien fringilla ante, sed lobortis orci lectus in ante. Donec vel interdum est. Donec placerat cursus lacus, eu ultricies nisl tincidunt a. Fusce libero risus, sagittis eleifend iaculis aliquet, condimentum vitae diam. Suspendisse potenti. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Proin leo purus, sodales a venenatis luctus, faucibus ac enim. Sed id metus ac sem lobortis pretium. Mauris faucibus tempor scelerisque. Nunc vulputate interdum tortor, non tincidunt dui condimentum eget. Aenean in porttitor velit. Nam accumsan rhoncus risus id consectetur.</p> - <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nam rhoncus, felis interdum condimentum consectetur, nisl libero elementum eros, vehicula congue lacus eros non diam. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Vivamus mauris lorem, lacinia id tempus non, imperdiet et leo. Cras sit amet erat sit amet lacus egestas placerat. Aenean ultricies ultrices mauris ac congue. In vel tortor vel velit tristique tempus ac id nisi. Proin quis lorem velit. Nunc dui dui, blandit a ullamcorper vitae, congue fringilla lectus. Aliquam ultricies malesuada feugiat. Vestibulum placerat turpis et eros lobortis vel semper sapien pulvinar.</p> - <p>Pellentesque rhoncus aliquet porta. Sed vel magna eu turpis pharetra consequat ut vitae lectus. In molestie sollicitudin mi sit amet convallis. Aliquam erat volutpat. Nullam feugiat placerat ipsum eget malesuada. Nulla facilisis nunc non dolor vehicula pretium. Sed dui magna, sodales id pharetra non, ullamcorper eu sapien. Mauris ac consectetur leo. Mauris consequat, lectus ut bibendum pulvinar, leo magna feugiat enim, eu commodo lacus sem vel ante. Sed tempus metus eget leo mollis vulputate. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos.</p> - <p>Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Sed pulvinar rhoncus quam, vel semper tellus viverra id. Nulla rutrum porttitor odio, a rutrum purus gravida non. Etiam ac purus augue, eget vestibulum purus. Aenean venenatis ullamcorper augue, non consequat elit tempor sed. Donec velit sapien, volutpat sed ultricies egestas, semper a ante. Fusce dapibus, quam eget auctor suscipit, nibh leo posuere ante, at auctor nisi lacus in sem. Morbi interdum consectetur euismod. Cras accumsan est lacus. Nulla eleifend, eros vel consequat commodo, arcu nunc malesuada nunc, quis sagittis felis sem ac turpis.</p> - <p>Nulla rhoncus elementum convallis. Mauris condimentum aliquet egestas. Ut iaculis nisi eget tellus accumsan venenatis. Maecenas imperdiet aliquam porta. Aenean ultrices dolor sed quam laoreet varius. Curabitur condimentum blandit erat, quis accumsan eros interdum vitae. Curabitur ligula arcu, sollicitudin vitae iaculis sed, blandit sit amet enim. Morbi ullamcorper, metus vel mollis tristique, arcu turpis malesuada nisi, at dignissim lorem odio a orci. Proin ultrices, ipsum ut vestibulum interdum, libero felis auctor mi, vitae convallis nisl justo ac tellus. Integer nec lacinia turpis. Etiam massa nisl, rhoncus quis rutrum in, pretium eu leo. Proin a velit ut nulla laoreet vestibulum. Curabitur eu elit vitae felis auctor tincidunt. Curabitur tincidunt, metus sed sollicitudin cursus, quam elit commodo erat, ut tempor erat sapien vitae velit. Morbi nec viverra erat.</p> - <p>Nullam scelerisque facilisis pretium. Vivamus lectus leo, commodo ac sagittis ac, dictum a mi. Donec quis massa ut libero malesuada commodo in et risus. Fusce nunc dolor, aliquet vel rutrum in, molestie sit amet massa. Aliquam suscipit, justo a commodo condimentum, enim sapien fringilla ante, sed lobortis orci lectus in ante. Donec vel interdum est. Donec placerat cursus lacus, eu ultricies nisl tincidunt a. Fusce libero risus, sagittis eleifend iaculis aliquet, condimentum vitae diam. Suspendisse potenti. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Proin leo purus, sodales a venenatis luctus, faucibus ac enim. Sed id metus ac sem lobortis pretium. Mauris faucibus tempor scelerisque. Nunc vulputate interdum tortor, non tincidunt dui condimentum eget. Aenean in porttitor velit. Nam accumsan rhoncus risus id consectetur.</p> - </div> - </div> - -<pre class="prettyprint"> -$('#testDiv').slimscroll({ - height: 'auto' -}); -</pre> - - <div id="testDiv2"> - <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nam rhoncus, felis interdum condimentum consectetur, nisl libero elementum eros, vehicula congue lacus eros non diam. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Vivamus mauris lorem, lacinia id tempus non, imperdiet et leo. Cras sit amet erat sit amet lacus egestas placerat. Aenean ultricies ultrices mauris ac congue. In vel tortor vel velit tristique tempus ac id nisi. Proin quis lorem velit. Nunc dui dui, blandit a ullamcorper vitae, congue fringilla lectus. Aliquam ultricies malesuada feugiat. Vestibulum placerat turpis et eros lobortis vel semper sapien pulvinar.</p> - <p>Pellentesque rhoncus aliquet porta. Sed vel magna eu turpis pharetra consequat ut vitae lectus. In molestie sollicitudin mi sit amet convallis. Aliquam erat volutpat. Nullam feugiat placerat ipsum eget malesuada. Nulla facilisis nunc non dolor vehicula pretium. Sed dui magna, sodales id pharetra non, ullamcorper eu sapien. Mauris ac consectetur leo. Mauris consequat, lectus ut bibendum pulvinar, leo magna feugiat enim, eu commodo lacus sem vel ante. Sed tempus metus eget leo mollis vulputate. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos.</p> - <p>Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Sed pulvinar rhoncus quam, vel semper tellus viverra id. Nulla rutrum porttitor odio, a rutrum purus gravida non. Etiam ac purus augue, eget vestibulum purus. Aenean venenatis ullamcorper augue, non consequat elit tempor sed. Donec velit sapien, volutpat sed ultricies egestas, semper a ante. Fusce dapibus, quam eget auctor suscipit, nibh leo posuere ante, at auctor nisi lacus in sem. Morbi interdum consectetur euismod. Cras accumsan est lacus. Nulla eleifend, eros vel consequat commodo, arcu nunc malesuada nunc, quis sagittis felis sem ac turpis.</p> - <p>Nulla rhoncus elementum convallis. Mauris condimentum aliquet egestas. Ut iaculis nisi eget tellus accumsan venenatis. Maecenas imperdiet aliquam porta. Aenean ultrices dolor sed quam laoreet varius. Curabitur condimentum blandit erat, quis accumsan eros interdum vitae. Curabitur ligula arcu, sollicitudin vitae iaculis sed, blandit sit amet enim. Morbi ullamcorper, metus vel mollis tristique, arcu turpis malesuada nisi, at dignissim lorem odio a orci. Proin ultrices, ipsum ut vestibulum interdum, libero felis auctor mi, vitae convallis nisl justo ac tellus. Integer nec lacinia turpis. Etiam massa nisl, rhoncus quis rutrum in, pretium eu leo. Proin a velit ut nulla laoreet vestibulum. Curabitur eu elit vitae felis auctor tincidunt. Curabitur tincidunt, metus sed sollicitudin cursus, quam elit commodo erat, ut tempor erat sapien vitae velit. Morbi nec viverra erat.</p> - <p>Nullam scelerisque facilisis pretium. Vivamus lectus leo, commodo ac sagittis ac, dictum a mi. Donec quis massa ut libero malesuada commodo in et risus. Fusce nunc dolor, aliquet vel rutrum in, molestie sit amet massa. Aliquam suscipit, justo a commodo condimentum, enim sapien fringilla ante, sed lobortis orci lectus in ante. Donec vel interdum est. Donec placerat cursus lacus, eu ultricies nisl tincidunt a. Fusce libero risus, sagittis eleifend iaculis aliquet, condimentum vitae diam. Suspendisse potenti. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Proin leo purus, sodales a venenatis luctus, faucibus ac enim. Sed id metus ac sem lobortis pretium. Mauris faucibus tempor scelerisque. Nunc vulputate interdum tortor, non tincidunt dui condimentum eget. Aenean in porttitor velit. Nam accumsan rhoncus risus id consectetur.</p> - <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nam rhoncus, felis interdum condimentum consectetur, nisl libero elementum eros, vehicula congue lacus eros non diam. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Vivamus mauris lorem, lacinia id tempus non, imperdiet et leo. Cras sit amet erat sit amet lacus egestas placerat. Aenean ultricies ultrices mauris ac congue. In vel tortor vel velit tristique tempus ac id nisi. Proin quis lorem velit. Nunc dui dui, blandit a ullamcorper vitae, congue fringilla lectus. Aliquam ultricies malesuada feugiat. Vestibulum placerat turpis et eros lobortis vel semper sapien pulvinar.</p> - <p>Pellentesque rhoncus aliquet porta. Sed vel magna eu turpis pharetra consequat ut vitae lectus. In molestie sollicitudin mi sit amet convallis. Aliquam erat volutpat. Nullam feugiat placerat ipsum eget malesuada. Nulla facilisis nunc non dolor vehicula pretium. Sed dui magna, sodales id pharetra non, ullamcorper eu sapien. Mauris ac consectetur leo. Mauris consequat, lectus ut bibendum pulvinar, leo magna feugiat enim, eu commodo lacus sem vel ante. Sed tempus metus eget leo mollis vulputate. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos.</p> - <p>Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Sed pulvinar rhoncus quam, vel semper tellus viverra id. Nulla rutrum porttitor odio, a rutrum purus gravida non. Etiam ac purus augue, eget vestibulum purus. Aenean venenatis ullamcorper augue, non consequat elit tempor sed. Donec velit sapien, volutpat sed ultricies egestas, semper a ante. Fusce dapibus, quam eget auctor suscipit, nibh leo posuere ante, at auctor nisi lacus in sem. Morbi interdum consectetur euismod. Cras accumsan est lacus. Nulla eleifend, eros vel consequat commodo, arcu nunc malesuada nunc, quis sagittis felis sem ac turpis.</p> - <p>Nulla rhoncus elementum convallis. Mauris condimentum aliquet egestas. Ut iaculis nisi eget tellus accumsan venenatis. Maecenas imperdiet aliquam porta. Aenean ultrices dolor sed quam laoreet varius. Curabitur condimentum blandit erat, quis accumsan eros interdum vitae. Curabitur ligula arcu, sollicitudin vitae iaculis sed, blandit sit amet enim. Morbi ullamcorper, metus vel mollis tristique, arcu turpis malesuada nisi, at dignissim lorem odio a orci. Proin ultrices, ipsum ut vestibulum interdum, libero felis auctor mi, vitae convallis nisl justo ac tellus. Integer nec lacinia turpis. Etiam massa nisl, rhoncus quis rutrum in, pretium eu leo. Proin a velit ut nulla laoreet vestibulum. Curabitur eu elit vitae felis auctor tincidunt. Curabitur tincidunt, metus sed sollicitudin cursus, quam elit commodo erat, ut tempor erat sapien vitae velit. Morbi nec viverra erat.</p> - <p>Nullam scelerisque facilisis pretium. Vivamus lectus leo, commodo ac sagittis ac, dictum a mi. Donec quis massa ut libero malesuada commodo in et risus. Fusce nunc dolor, aliquet vel rutrum in, molestie sit amet massa. Aliquam suscipit, justo a commodo condimentum, enim sapien fringilla ante, sed lobortis orci lectus in ante. Donec vel interdum est. Donec placerat cursus lacus, eu ultricies nisl tincidunt a. Fusce libero risus, sagittis eleifend iaculis aliquet, condimentum vitae diam. Suspendisse potenti. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Proin leo purus, sodales a venenatis luctus, faucibus ac enim. Sed id metus ac sem lobortis pretium. Mauris faucibus tempor scelerisque. Nunc vulputate interdum tortor, non tincidunt dui condimentum eget. Aenean in porttitor velit. Nam accumsan rhoncus risus id consectetur.</p> - <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nam rhoncus, felis interdum condimentum consectetur, nisl libero elementum eros, vehicula congue lacus eros non diam. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Vivamus mauris lorem, lacinia id tempus non, imperdiet et leo. Cras sit amet erat sit amet lacus egestas placerat. Aenean ultricies ultrices mauris ac congue. In vel tortor vel velit tristique tempus ac id nisi. Proin quis lorem velit. Nunc dui dui, blandit a ullamcorper vitae, congue fringilla lectus. Aliquam ultricies malesuada feugiat. Vestibulum placerat turpis et eros lobortis vel semper sapien pulvinar.</p> - <p>Pellentesque rhoncus aliquet porta. Sed vel magna eu turpis pharetra consequat ut vitae lectus. In molestie sollicitudin mi sit amet convallis. Aliquam erat volutpat. Nullam feugiat placerat ipsum eget malesuada. Nulla facilisis nunc non dolor vehicula pretium. Sed dui magna, sodales id pharetra non, ullamcorper eu sapien. Mauris ac consectetur leo. Mauris consequat, lectus ut bibendum pulvinar, leo magna feugiat enim, eu commodo lacus sem vel ante. Sed tempus metus eget leo mollis vulputate. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos.</p> - <p>Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Sed pulvinar rhoncus quam, vel semper tellus viverra id. Nulla rutrum porttitor odio, a rutrum purus gravida non. Etiam ac purus augue, eget vestibulum purus. Aenean venenatis ullamcorper augue, non consequat elit tempor sed. Donec velit sapien, volutpat sed ultricies egestas, semper a ante. Fusce dapibus, quam eget auctor suscipit, nibh leo posuere ante, at auctor nisi lacus in sem. Morbi interdum consectetur euismod. Cras accumsan est lacus. Nulla eleifend, eros vel consequat commodo, arcu nunc malesuada nunc, quis sagittis felis sem ac turpis.</p> - <p>Nulla rhoncus elementum convallis. Mauris condimentum aliquet egestas. Ut iaculis nisi eget tellus accumsan venenatis. Maecenas imperdiet aliquam porta. Aenean ultrices dolor sed quam laoreet varius. Curabitur condimentum blandit erat, quis accumsan eros interdum vitae. Curabitur ligula arcu, sollicitudin vitae iaculis sed, blandit sit amet enim. Morbi ullamcorper, metus vel mollis tristique, arcu turpis malesuada nisi, at dignissim lorem odio a orci. Proin ultrices, ipsum ut vestibulum interdum, libero felis auctor mi, vitae convallis nisl justo ac tellus. Integer nec lacinia turpis. Etiam massa nisl, rhoncus quis rutrum in, pretium eu leo. Proin a velit ut nulla laoreet vestibulum. Curabitur eu elit vitae felis auctor tincidunt. Curabitur tincidunt, metus sed sollicitudin cursus, quam elit commodo erat, ut tempor erat sapien vitae velit. Morbi nec viverra erat.</p> - <p>Nullam scelerisque facilisis pretium. Vivamus lectus leo, commodo ac sagittis ac, dictum a mi. Donec quis massa ut libero malesuada commodo in et risus. Fusce nunc dolor, aliquet vel rutrum in, molestie sit amet massa. Aliquam suscipit, justo a commodo condimentum, enim sapien fringilla ante, sed lobortis orci lectus in ante. Donec vel interdum est. Donec placerat cursus lacus, eu ultricies nisl tincidunt a. Fusce libero risus, sagittis eleifend iaculis aliquet, condimentum vitae diam. Suspendisse potenti. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Proin leo purus, sodales a venenatis luctus, faucibus ac enim. Sed id metus ac sem lobortis pretium. Mauris faucibus tempor scelerisque. Nunc vulputate interdum tortor, non tincidunt dui condimentum eget. Aenean in porttitor velit. Nam accumsan rhoncus risus id consectetur.</p> - </div> - -<pre class="prettyprint"> -$('#testDiv2').slimscroll({ - height: '100px', - width: '300px' -}); -</pre> - - <div id="testDiv3"> - <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nam rhoncus, felis interdum condimentum consectetur, nisl libero elementum eros, vehicula congue lacus eros non diam. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Vivamus mauris lorem, lacinia id tempus non, imperdiet et leo. Cras sit amet erat sit amet lacus egestas placerat. Aenean ultricies ultrices mauris ac congue. In vel tortor vel velit tristique tempus ac id nisi. Proin quis lorem velit. Nunc dui dui, blandit a ullamcorper vitae, congue fringilla lectus. Aliquam ultricies malesuada feugiat. Vestibulum placerat turpis et eros lobortis vel semper sapien pulvinar.</p> - <p>Pellentesque rhoncus aliquet porta. Sed vel magna eu turpis pharetra consequat ut vitae lectus. In molestie sollicitudin mi sit amet convallis. Aliquam erat volutpat. Nullam feugiat placerat ipsum eget malesuada. Nulla facilisis nunc non dolor vehicula pretium. Sed dui magna, sodales id pharetra non, ullamcorper eu sapien. Mauris ac consectetur leo. Mauris consequat, lectus ut bibendum pulvinar, leo magna feugiat enim, eu commodo lacus sem vel ante. Sed tempus metus eget leo mollis vulputate. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos.</p> - <p>Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Sed pulvinar rhoncus quam, vel semper tellus viverra id. Nulla rutrum porttitor odio, a rutrum purus gravida non. Etiam ac purus augue, eget vestibulum purus. Aenean venenatis ullamcorper augue, non consequat elit tempor sed. Donec velit sapien, volutpat sed ultricies egestas, semper a ante. Fusce dapibus, quam eget auctor suscipit, nibh leo posuere ante, at auctor nisi lacus in sem. Morbi interdum consectetur euismod. Cras accumsan est lacus. Nulla eleifend, eros vel consequat commodo, arcu nunc malesuada nunc, quis sagittis felis sem ac turpis.</p> - <p>Nulla rhoncus elementum convallis. Mauris condimentum aliquet egestas. Ut iaculis nisi eget tellus accumsan venenatis. Maecenas imperdiet aliquam porta. Aenean ultrices dolor sed quam laoreet varius. Curabitur condimentum blandit erat, quis accumsan eros interdum vitae. Curabitur ligula arcu, sollicitudin vitae iaculis sed, blandit sit amet enim. Morbi ullamcorper, metus vel mollis tristique, arcu turpis malesuada nisi, at dignissim lorem odio a orci. Proin ultrices, ipsum ut vestibulum interdum, libero felis auctor mi, vitae convallis nisl justo ac tellus. Integer nec lacinia turpis. Etiam massa nisl, rhoncus quis rutrum in, pretium eu leo. Proin a velit ut nulla laoreet vestibulum. Curabitur eu elit vitae felis auctor tincidunt. Curabitur tincidunt, metus sed sollicitudin cursus, quam elit commodo erat, ut tempor erat sapien vitae velit. Morbi nec viverra erat.</p> - <p>Nullam scelerisque facilisis pretium. Vivamus lectus leo, commodo ac sagittis ac, dictum a mi. Donec quis massa ut libero malesuada commodo in et risus. Fusce nunc dolor, aliquet vel rutrum in, molestie sit amet massa. Aliquam suscipit, justo a commodo condimentum, enim sapien fringilla ante, sed lobortis orci lectus in ante. Donec vel interdum est. Donec placerat cursus lacus, eu ultricies nisl tincidunt a. Fusce libero risus, sagittis eleifend iaculis aliquet, condimentum vitae diam. Suspendisse potenti. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Proin leo purus, sodales a venenatis luctus, faucibus ac enim. Sed id metus ac sem lobortis pretium. Mauris faucibus tempor scelerisque. Nunc vulputate interdum tortor, non tincidunt dui condimentum eget. Aenean in porttitor velit. Nam accumsan rhoncus risus id consectetur.</p> - <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nam rhoncus, felis interdum condimentum consectetur, nisl libero elementum eros, vehicula congue lacus eros non diam. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Vivamus mauris lorem, lacinia id tempus non, imperdiet et leo. Cras sit amet erat sit amet lacus egestas placerat. Aenean ultricies ultrices mauris ac congue. In vel tortor vel velit tristique tempus ac id nisi. Proin quis lorem velit. Nunc dui dui, blandit a ullamcorper vitae, congue fringilla lectus. Aliquam ultricies malesuada feugiat. Vestibulum placerat turpis et eros lobortis vel semper sapien pulvinar.</p> - <p>Pellentesque rhoncus aliquet porta. Sed vel magna eu turpis pharetra consequat ut vitae lectus. In molestie sollicitudin mi sit amet convallis. Aliquam erat volutpat. Nullam feugiat placerat ipsum eget malesuada. Nulla facilisis nunc non dolor vehicula pretium. Sed dui magna, sodales id pharetra non, ullamcorper eu sapien. Mauris ac consectetur leo. Mauris consequat, lectus ut bibendum pulvinar, leo magna feugiat enim, eu commodo lacus sem vel ante. Sed tempus metus eget leo mollis vulputate. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos.</p> - <p>Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Sed pulvinar rhoncus quam, vel semper tellus viverra id. Nulla rutrum porttitor odio, a rutrum purus gravida non. Etiam ac purus augue, eget vestibulum purus. Aenean venenatis ullamcorper augue, non consequat elit tempor sed. Donec velit sapien, volutpat sed ultricies egestas, semper a ante. Fusce dapibus, quam eget auctor suscipit, nibh leo posuere ante, at auctor nisi lacus in sem. Morbi interdum consectetur euismod. Cras accumsan est lacus. Nulla eleifend, eros vel consequat commodo, arcu nunc malesuada nunc, quis sagittis felis sem ac turpis.</p> - <p>Nulla rhoncus elementum convallis. Mauris condimentum aliquet egestas. Ut iaculis nisi eget tellus accumsan venenatis. Maecenas imperdiet aliquam porta. Aenean ultrices dolor sed quam laoreet varius. Curabitur condimentum blandit erat, quis accumsan eros interdum vitae. Curabitur ligula arcu, sollicitudin vitae iaculis sed, blandit sit amet enim. Morbi ullamcorper, metus vel mollis tristique, arcu turpis malesuada nisi, at dignissim lorem odio a orci. Proin ultrices, ipsum ut vestibulum interdum, libero felis auctor mi, vitae convallis nisl justo ac tellus. Integer nec lacinia turpis. Etiam massa nisl, rhoncus quis rutrum in, pretium eu leo. Proin a velit ut nulla laoreet vestibulum. Curabitur eu elit vitae felis auctor tincidunt. Curabitur tincidunt, metus sed sollicitudin cursus, quam elit commodo erat, ut tempor erat sapien vitae velit. Morbi nec viverra erat.</p> - <p>Nullam scelerisque facilisis pretium. Vivamus lectus leo, commodo ac sagittis ac, dictum a mi. Donec quis massa ut libero malesuada commodo in et risus. Fusce nunc dolor, aliquet vel rutrum in, molestie sit amet massa. Aliquam suscipit, justo a commodo condimentum, enim sapien fringilla ante, sed lobortis orci lectus in ante. Donec vel interdum est. Donec placerat cursus lacus, eu ultricies nisl tincidunt a. Fusce libero risus, sagittis eleifend iaculis aliquet, condimentum vitae diam. Suspendisse potenti. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Proin leo purus, sodales a venenatis luctus, faucibus ac enim. Sed id metus ac sem lobortis pretium. Mauris faucibus tempor scelerisque. Nunc vulputate interdum tortor, non tincidunt dui condimentum eget. Aenean in porttitor velit. Nam accumsan rhoncus risus id consectetur.</p> - <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nam rhoncus, felis interdum condimentum consectetur, nisl libero elementum eros, vehicula congue lacus eros non diam. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Vivamus mauris lorem, lacinia id tempus non, imperdiet et leo. Cras sit amet erat sit amet lacus egestas placerat. Aenean ultricies ultrices mauris ac congue. In vel tortor vel velit tristique tempus ac id nisi. Proin quis lorem velit. Nunc dui dui, blandit a ullamcorper vitae, congue fringilla lectus. Aliquam ultricies malesuada feugiat. Vestibulum placerat turpis et eros lobortis vel semper sapien pulvinar.</p> - <p>Pellentesque rhoncus aliquet porta. Sed vel magna eu turpis pharetra consequat ut vitae lectus. In molestie sollicitudin mi sit amet convallis. Aliquam erat volutpat. Nullam feugiat placerat ipsum eget malesuada. Nulla facilisis nunc non dolor vehicula pretium. Sed dui magna, sodales id pharetra non, ullamcorper eu sapien. Mauris ac consectetur leo. Mauris consequat, lectus ut bibendum pulvinar, leo magna feugiat enim, eu commodo lacus sem vel ante. Sed tempus metus eget leo mollis vulputate. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos.</p> - <p>Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Sed pulvinar rhoncus quam, vel semper tellus viverra id. Nulla rutrum porttitor odio, a rutrum purus gravida non. Etiam ac purus augue, eget vestibulum purus. Aenean venenatis ullamcorper augue, non consequat elit tempor sed. Donec velit sapien, volutpat sed ultricies egestas, semper a ante. Fusce dapibus, quam eget auctor suscipit, nibh leo posuere ante, at auctor nisi lacus in sem. Morbi interdum consectetur euismod. Cras accumsan est lacus. Nulla eleifend, eros vel consequat commodo, arcu nunc malesuada nunc, quis sagittis felis sem ac turpis.</p> - <p>Nulla rhoncus elementum convallis. Mauris condimentum aliquet egestas. Ut iaculis nisi eget tellus accumsan venenatis. Maecenas imperdiet aliquam porta. Aenean ultrices dolor sed quam laoreet varius. Curabitur condimentum blandit erat, quis accumsan eros interdum vitae. Curabitur ligula arcu, sollicitudin vitae iaculis sed, blandit sit amet enim. Morbi ullamcorper, metus vel mollis tristique, arcu turpis malesuada nisi, at dignissim lorem odio a orci. Proin ultrices, ipsum ut vestibulum interdum, libero felis auctor mi, vitae convallis nisl justo ac tellus. Integer nec lacinia turpis. Etiam massa nisl, rhoncus quis rutrum in, pretium eu leo. Proin a velit ut nulla laoreet vestibulum. Curabitur eu elit vitae felis auctor tincidunt. Curabitur tincidunt, metus sed sollicitudin cursus, quam elit commodo erat, ut tempor erat sapien vitae velit. Morbi nec viverra erat.</p> - <p>Nullam scelerisque facilisis pretium. Vivamus lectus leo, commodo ac sagittis ac, dictum a mi. Donec quis massa ut libero malesuada commodo in et risus. Fusce nunc dolor, aliquet vel rutrum in, molestie sit amet massa. Aliquam suscipit, justo a commodo condimentum, enim sapien fringilla ante, sed lobortis orci lectus in ante. Donec vel interdum est. Donec placerat cursus lacus, eu ultricies nisl tincidunt a. Fusce libero risus, sagittis eleifend iaculis aliquet, condimentum vitae diam. Suspendisse potenti. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Proin leo purus, sodales a venenatis luctus, faucibus ac enim. Sed id metus ac sem lobortis pretium. Mauris faucibus tempor scelerisque. Nunc vulputate interdum tortor, non tincidunt dui condimentum eget. Aenean in porttitor velit. Nam accumsan rhoncus risus id consectetur.</p> - </div> - -<pre class="prettyprint"> -$('#testDiv3').slimscroll(); -</pre> - -</div> - -<script type="text/javascript"> - $(function(){ - $('#testDiv').slimScroll({ - height: 'auto' - }); - - $('#testDiv2').slimScroll({ - height: '100px', - width: '300px' - }); - - $('#testDiv3').slimScroll(); - - }); -</script> - - -<script type="text/javascript"> - - //enable syntax highlighter - prettyPrint(); - - var _gaq = _gaq || []; - _gaq.push(['_setAccount', 'UA-3112455-22']); - _gaq.push(['_setDomainName', 'none']); - _gaq.push(['_trackPageview']); - - (function() { - var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true; - ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js'; - var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s); - })(); -</script> -</body> -</html> \ No newline at end of file diff --git a/admin/bower_components/jquery-slimscroll/examples/index.html b/admin/bower_components/jquery-slimscroll/examples/index.html deleted file mode 100644 index 890dd71..0000000 --- a/admin/bower_components/jquery-slimscroll/examples/index.html +++ /dev/null @@ -1,9 +0,0 @@ -<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Frameset//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd"> -<html> - <head> - </head> - <frameset framespacing="0" cols="250,*" frameborder="0" noresize> - <frame name="nav" src="navigation.html" target="top"> - <frame name="main" src="height-width.html" target="main"> - </frameset> -</html> \ No newline at end of file diff --git a/admin/bower_components/jquery-slimscroll/examples/libs/prettify/prettify.css b/admin/bower_components/jquery-slimscroll/examples/libs/prettify/prettify.css deleted file mode 100644 index 400fd74..0000000 --- a/admin/bower_components/jquery-slimscroll/examples/libs/prettify/prettify.css +++ /dev/null @@ -1,52 +0,0 @@ -/* Pretty printing styles. Used with prettify.js. */ - -/* SPAN elements with the classes below are added by prettyprint. */ -.pln { color: #000 } /* plain text */ - -@media screen { - .str { color: #080 } /* string content */ - .kwd { color: #008 } /* a keyword */ - .com { color: #800 } /* a comment */ - .typ { color: #606 } /* a type name */ - .lit { color: #066 } /* a literal value */ - /* punctuation, lisp open bracket, lisp close bracket */ - .pun, .opn, .clo { color: #660 } - .tag { color: #008 } /* a markup tag name */ - .atn { color: #606 } /* a markup attribute name */ - .atv { color: #080 } /* a markup attribute value */ - .dec, .var { color: #606 } /* a declaration; a variable name */ - .fun { color: red } /* a function name */ -} - -/* Use higher contrast and text-weight for printable form. */ -@media print, projection { - .str { color: #060 } - .kwd { color: #006; font-weight: bold } - .com { color: #600; font-style: italic } - .typ { color: #404; font-weight: bold } - .lit { color: #044 } - .pun, .opn, .clo { color: #440 } - .tag { color: #006; font-weight: bold } - .atn { color: #404 } - .atv { color: #060 } -} - -/* Put a border around prettyprinted code snippets. */ -pre.prettyprint { padding: 2px; border: 1px solid #888 } - -/* Specify class=linenums on a pre to get line numbering */ -ol.linenums { margin-top: 0; margin-bottom: 0 } /* IE indents via margin-left */ -li.L0, -li.L1, -li.L2, -li.L3, -li.L5, -li.L6, -li.L7, -li.L8 { list-style-type: none } -/* Alternate shading for lines */ -li.L1, -li.L3, -li.L5, -li.L7, -li.L9 { background: #eee } diff --git a/admin/bower_components/jquery-slimscroll/examples/libs/prettify/prettify.js b/admin/bower_components/jquery-slimscroll/examples/libs/prettify/prettify.js deleted file mode 100644 index 037c26d..0000000 --- a/admin/bower_components/jquery-slimscroll/examples/libs/prettify/prettify.js +++ /dev/null @@ -1,1477 +0,0 @@ -// Copyright (C) 2006 Google Inc. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - - -/** - * @fileoverview - * some functions for browser-side pretty printing of code contained in html. - * - * <p> - * For a fairly comprehensive set of languages see the - * <a href="http://google-code-prettify.googlecode.com/svn/trunk/README.html#langs">README</a> - * file that came with this source. At a minimum, the lexer should work on a - * number of languages including C and friends, Java, Python, Bash, SQL, HTML, - * XML, CSS, Javascript, and Makefiles. It works passably on Ruby, PHP and Awk - * and a subset of Perl, but, because of commenting conventions, doesn't work on - * Smalltalk, Lisp-like, or CAML-like languages without an explicit lang class. - * <p> - * Usage: <ol> - * <li> include this source file in an html page via - * {@code <script type="text/javascript" src="/path/to/prettify.js"></script>} - * <li> define style rules. See the example page for examples. - * <li> mark the {@code <pre>} and {@code <code>} tags in your source with - * {@code class=prettyprint.} - * You can also use the (html deprecated) {@code <xmp>} tag, but the pretty - * printer needs to do more substantial DOM manipulations to support that, so - * some css styles may not be preserved. - * </ol> - * That's it. I wanted to keep the API as simple as possible, so there's no - * need to specify which language the code is in, but if you wish, you can add - * another class to the {@code <pre>} or {@code <code>} element to specify the - * language, as in {@code <pre class="prettyprint lang-java">}. Any class that - * starts with "lang-" followed by a file extension, specifies the file type. - * See the "lang-*.js" files in this directory for code that implements - * per-language file handlers. - * <p> - * Change log:<br> - * cbeust, 2006/08/22 - * <blockquote> - * Java annotations (start with "@") are now captured as literals ("lit") - * </blockquote> - * @requires console - */ - -// JSLint declarations -/*global console, document, navigator, setTimeout, window */ - -/** - * Split {@code prettyPrint} into multiple timeouts so as not to interfere with - * UI events. - * If set to {@code false}, {@code prettyPrint()} is synchronous. - */ -window['PR_SHOULD_USE_CONTINUATION'] = true; - -(function () { - // Keyword lists for various languages. - // We use things that coerce to strings to make them compact when minified - // and to defeat aggressive optimizers that fold large string constants. - var FLOW_CONTROL_KEYWORDS = ["break,continue,do,else,for,if,return,while"]; - var C_KEYWORDS = [FLOW_CONTROL_KEYWORDS,"auto,case,char,const,default," + - "double,enum,extern,float,goto,int,long,register,short,signed,sizeof," + - "static,struct,switch,typedef,union,unsigned,void,volatile"]; - var COMMON_KEYWORDS = [C_KEYWORDS,"catch,class,delete,false,import," + - "new,operator,private,protected,public,this,throw,true,try,typeof"]; - var CPP_KEYWORDS = [COMMON_KEYWORDS,"alignof,align_union,asm,axiom,bool," + - "concept,concept_map,const_cast,constexpr,decltype," + - "dynamic_cast,explicit,export,friend,inline,late_check," + - "mutable,namespace,nullptr,reinterpret_cast,static_assert,static_cast," + - "template,typeid,typename,using,virtual,where"]; - var JAVA_KEYWORDS = [COMMON_KEYWORDS, - "abstract,boolean,byte,extends,final,finally,implements,import," + - "instanceof,null,native,package,strictfp,super,synchronized,throws," + - "transient"]; - var CSHARP_KEYWORDS = [JAVA_KEYWORDS, - "as,base,by,checked,decimal,delegate,descending,dynamic,event," + - "fixed,foreach,from,group,implicit,in,interface,internal,into,is,lock," + - "object,out,override,orderby,params,partial,readonly,ref,sbyte,sealed," + - "stackalloc,string,select,uint,ulong,unchecked,unsafe,ushort,var"]; - var COFFEE_KEYWORDS = "all,and,by,catch,class,else,extends,false,finally," + - "for,if,in,is,isnt,loop,new,no,not,null,of,off,on,or,return,super,then," + - "true,try,unless,until,when,while,yes"; - var JSCRIPT_KEYWORDS = [COMMON_KEYWORDS, - "debugger,eval,export,function,get,null,set,undefined,var,with," + - "Infinity,NaN"]; - var PERL_KEYWORDS = "caller,delete,die,do,dump,elsif,eval,exit,foreach,for," + - "goto,if,import,last,local,my,next,no,our,print,package,redo,require," + - "sub,undef,unless,until,use,wantarray,while,BEGIN,END"; - var PYTHON_KEYWORDS = [FLOW_CONTROL_KEYWORDS, "and,as,assert,class,def,del," + - "elif,except,exec,finally,from,global,import,in,is,lambda," + - "nonlocal,not,or,pass,print,raise,try,with,yield," + - "False,True,None"]; - var RUBY_KEYWORDS = [FLOW_CONTROL_KEYWORDS, "alias,and,begin,case,class," + - "def,defined,elsif,end,ensure,false,in,module,next,nil,not,or,redo," + - "rescue,retry,self,super,then,true,undef,unless,until,when,yield," + - "BEGIN,END"]; - var SH_KEYWORDS = [FLOW_CONTROL_KEYWORDS, "case,done,elif,esac,eval,fi," + - "function,in,local,set,then,until"]; - var ALL_KEYWORDS = [ - CPP_KEYWORDS, CSHARP_KEYWORDS, JSCRIPT_KEYWORDS, PERL_KEYWORDS + - PYTHON_KEYWORDS, RUBY_KEYWORDS, SH_KEYWORDS]; - var C_TYPES = /^(DIR|FILE|vector|(de|priority_)?queue|list|stack|(const_)?iterator|(multi)?(set|map)|bitset|u?(int|float)\d*)/; - - // token style names. correspond to css classes - /** - * token style for a string literal - * @const - */ - var PR_STRING = 'str'; - /** - * token style for a keyword - * @const - */ - var PR_KEYWORD = 'kwd'; - /** - * token style for a comment - * @const - */ - var PR_COMMENT = 'com'; - /** - * token style for a type - * @const - */ - var PR_TYPE = 'typ'; - /** - * token style for a literal value. e.g. 1, null, true. - * @const - */ - var PR_LITERAL = 'lit'; - /** - * token style for a punctuation string. - * @const - */ - var PR_PUNCTUATION = 'pun'; - /** - * token style for a punctuation string. - * @const - */ - var PR_PLAIN = 'pln'; - - /** - * token style for an sgml tag. - * @const - */ - var PR_TAG = 'tag'; - /** - * token style for a markup declaration such as a DOCTYPE. - * @const - */ - var PR_DECLARATION = 'dec'; - /** - * token style for embedded source. - * @const - */ - var PR_SOURCE = 'src'; - /** - * token style for an sgml attribute name. - * @const - */ - var PR_ATTRIB_NAME = 'atn'; - /** - * token style for an sgml attribute value. - * @const - */ - var PR_ATTRIB_VALUE = 'atv'; - - /** - * A class that indicates a section of markup that is not code, e.g. to allow - * embedding of line numbers within code listings. - * @const - */ - var PR_NOCODE = 'nocode'; - - - -/** - * A set of tokens that can precede a regular expression literal in - * javascript - * http://web.archive.org/web/20070717142515/http://www.mozilla.org/js/language/js20/rationale/syntax.html - * has the full list, but I've removed ones that might be problematic when - * seen in languages that don't support regular expression literals. - * - * <p>Specifically, I've removed any keywords that can't precede a regexp - * literal in a syntactically legal javascript program, and I've removed the - * "in" keyword since it's not a keyword in many languages, and might be used - * as a count of inches. - * - * <p>The link a above does not accurately describe EcmaScript rules since - * it fails to distinguish between (a=++/b/i) and (a++/b/i) but it works - * very well in practice. - * - * @private - * @const - */ -var REGEXP_PRECEDER_PATTERN = '(?:^^\\.?|[+-]|\\!|\\!=|\\!==|\\#|\\%|\\%=|&|&&|&&=|&=|\\(|\\*|\\*=|\\+=|\\,|\\-=|\\->|\\/|\\/=|:|::|\\;|<|<<|<<=|<=|=|==|===|>|>=|>>|>>=|>>>|>>>=|\\?|\\@|\\[|\\^|\\^=|\\^\\^|\\^\\^=|\\{|\\||\\|=|\\|\\||\\|\\|=|\\~|break|case|continue|delete|do|else|finally|instanceof|return|throw|try|typeof)\\s*'; - -// CAVEAT: this does not properly handle the case where a regular -// expression immediately follows another since a regular expression may -// have flags for case-sensitivity and the like. Having regexp tokens -// adjacent is not valid in any language I'm aware of, so I'm punting. -// TODO: maybe style special characters inside a regexp as punctuation. - - - /** - * Given a group of {@link RegExp}s, returns a {@code RegExp} that globally - * matches the union of the sets of strings matched by the input RegExp. - * Since it matches globally, if the input strings have a start-of-input - * anchor (/^.../), it is ignored for the purposes of unioning. - * @param {Array.<RegExp>} regexs non multiline, non-global regexs. - * @return {RegExp} a global regex. - */ - function combinePrefixPatterns(regexs) { - var capturedGroupIndex = 0; - - var needToFoldCase = false; - var ignoreCase = false; - for (var i = 0, n = regexs.length; i < n; ++i) { - var regex = regexs[i]; - if (regex.ignoreCase) { - ignoreCase = true; - } else if (/[a-z]/i.test(regex.source.replace( - /\\u[0-9a-f]{4}|\\x[0-9a-f]{2}|\\[^ux]/gi, ''))) { - needToFoldCase = true; - ignoreCase = false; - break; - } - } - - var escapeCharToCodeUnit = { - 'b': 8, - 't': 9, - 'n': 0xa, - 'v': 0xb, - 'f': 0xc, - 'r': 0xd - }; - - function decodeEscape(charsetPart) { - var cc0 = charsetPart.charCodeAt(0); - if (cc0 !== 92 /* \\ */) { - return cc0; - } - var c1 = charsetPart.charAt(1); - cc0 = escapeCharToCodeUnit[c1]; - if (cc0) { - return cc0; - } else if ('0' <= c1 && c1 <= '7') { - return parseInt(charsetPart.substring(1), 8); - } else if (c1 === 'u' || c1 === 'x') { - return parseInt(charsetPart.substring(2), 16); - } else { - return charsetPart.charCodeAt(1); - } - } - - function encodeEscape(charCode) { - if (charCode < 0x20) { - return (charCode < 0x10 ? '\\x0' : '\\x') + charCode.toString(16); - } - var ch = String.fromCharCode(charCode); - if (ch === '\\' || ch === '-' || ch === '[' || ch === ']') { - ch = '\\' + ch; - } - return ch; - } - - function caseFoldCharset(charSet) { - var charsetParts = charSet.substring(1, charSet.length - 1).match( - new RegExp( - '\\\\u[0-9A-Fa-f]{4}' - + '|\\\\x[0-9A-Fa-f]{2}' - + '|\\\\[0-3][0-7]{0,2}' - + '|\\\\[0-7]{1,2}' - + '|\\\\[\\s\\S]' - + '|-' - + '|[^-\\\\]', - 'g')); - var groups = []; - var ranges = []; - var inverse = charsetParts[0] === '^'; - for (var i = inverse ? 1 : 0, n = charsetParts.length; i < n; ++i) { - var p = charsetParts[i]; - if (/\\[bdsw]/i.test(p)) { // Don't muck with named groups. - groups.push(p); - } else { - var start = decodeEscape(p); - var end; - if (i + 2 < n && '-' === charsetParts[i + 1]) { - end = decodeEscape(charsetParts[i + 2]); - i += 2; - } else { - end = start; - } - ranges.push([start, end]); - // If the range might intersect letters, then expand it. - // This case handling is too simplistic. - // It does not deal with non-latin case folding. - // It works for latin source code identifiers though. - if (!(end < 65 || start > 122)) { - if (!(end < 65 || start > 90)) { - ranges.push([Math.max(65, start) | 32, Math.min(end, 90) | 32]); - } - if (!(end < 97 || start > 122)) { - ranges.push([Math.max(97, start) & ~32, Math.min(end, 122) & ~32]); - } - } - } - } - - // [[1, 10], [3, 4], [8, 12], [14, 14], [16, 16], [17, 17]] - // -> [[1, 12], [14, 14], [16, 17]] - ranges.sort(function (a, b) { return (a[0] - b[0]) || (b[1] - a[1]); }); - var consolidatedRanges = []; - var lastRange = [NaN, NaN]; - for (var i = 0; i < ranges.length; ++i) { - var range = ranges[i]; - if (range[0] <= lastRange[1] + 1) { - lastRange[1] = Math.max(lastRange[1], range[1]); - } else { - consolidatedRanges.push(lastRange = range); - } - } - - var out = ['[']; - if (inverse) { out.push('^'); } - out.push.apply(out, groups); - for (var i = 0; i < consolidatedRanges.length; ++i) { - var range = consolidatedRanges[i]; - out.push(encodeEscape(range[0])); - if (range[1] > range[0]) { - if (range[1] + 1 > range[0]) { out.push('-'); } - out.push(encodeEscape(range[1])); - } - } - out.push(']'); - return out.join(''); - } - - function allowAnywhereFoldCaseAndRenumberGroups(regex) { - // Split into character sets, escape sequences, punctuation strings - // like ('(', '(?:', ')', '^'), and runs of characters that do not - // include any of the above. - var parts = regex.source.match( - new RegExp( - '(?:' - + '\\[(?:[^\\x5C\\x5D]|\\\\[\\s\\S])*\\]' // a character set - + '|\\\\u[A-Fa-f0-9]{4}' // a unicode escape - + '|\\\\x[A-Fa-f0-9]{2}' // a hex escape - + '|\\\\[0-9]+' // a back-reference or octal escape - + '|\\\\[^ux0-9]' // other escape sequence - + '|\\(\\?[:!=]' // start of a non-capturing group - + '|[\\(\\)\\^]' // start/emd of a group, or line start - + '|[^\\x5B\\x5C\\(\\)\\^]+' // run of other characters - + ')', - 'g')); - var n = parts.length; - - // Maps captured group numbers to the number they will occupy in - // the output or to -1 if that has not been determined, or to - // undefined if they need not be capturing in the output. - var capturedGroups = []; - - // Walk over and identify back references to build the capturedGroups - // mapping. - for (var i = 0, groupIndex = 0; i < n; ++i) { - var p = parts[i]; - if (p === '(') { - // groups are 1-indexed, so max group index is count of '(' - ++groupIndex; - } else if ('\\' === p.charAt(0)) { - var decimalValue = +p.substring(1); - if (decimalValue && decimalValue <= groupIndex) { - capturedGroups[decimalValue] = -1; - } - } - } - - // Renumber groups and reduce capturing groups to non-capturing groups - // where possible. - for (var i = 1; i < capturedGroups.length; ++i) { - if (-1 === capturedGroups[i]) { - capturedGroups[i] = ++capturedGroupIndex; - } - } - for (var i = 0, groupIndex = 0; i < n; ++i) { - var p = parts[i]; - if (p === '(') { - ++groupIndex; - if (capturedGroups[groupIndex] === undefined) { - parts[i] = '(?:'; - } - } else if ('\\' === p.charAt(0)) { - var decimalValue = +p.substring(1); - if (decimalValue && decimalValue <= groupIndex) { - parts[i] = '\\' + capturedGroups[groupIndex]; - } - } - } - - // Remove any prefix anchors so that the output will match anywhere. - // ^^ really does mean an anchored match though. - for (var i = 0, groupIndex = 0; i < n; ++i) { - if ('^' === parts[i] && '^' !== parts[i + 1]) { parts[i] = ''; } - } - - // Expand letters to groups to handle mixing of case-sensitive and - // case-insensitive patterns if necessary. - if (regex.ignoreCase && needToFoldCase) { - for (var i = 0; i < n; ++i) { - var p = parts[i]; - var ch0 = p.charAt(0); - if (p.length >= 2 && ch0 === '[') { - parts[i] = caseFoldCharset(p); - } else if (ch0 !== '\\') { - // TODO: handle letters in numeric escapes. - parts[i] = p.replace( - /[a-zA-Z]/g, - function (ch) { - var cc = ch.charCodeAt(0); - return '[' + String.fromCharCode(cc & ~32, cc | 32) + ']'; - }); - } - } - } - - return parts.join(''); - } - - var rewritten = []; - for (var i = 0, n = regexs.length; i < n; ++i) { - var regex = regexs[i]; - if (regex.global || regex.multiline) { throw new Error('' + regex); } - rewritten.push( - '(?:' + allowAnywhereFoldCaseAndRenumberGroups(regex) + ')'); - } - - return new RegExp(rewritten.join('|'), ignoreCase ? 'gi' : 'g'); - } - - - /** - * Split markup into a string of source code and an array mapping ranges in - * that string to the text nodes in which they appear. - * - * <p> - * The HTML DOM structure:</p> - * <pre> - * (Element "p" - * (Element "b" - * (Text "print ")) ; #1 - * (Text "'Hello '") ; #2 - * (Element "br") ; #3 - * (Text " + 'World';")) ; #4 - * </pre> - * <p> - * corresponds to the HTML - * {@code <p><b>print </b>'Hello '<br> + 'World';</p>}.</p> - * - * <p> - * It will produce the output:</p> - * <pre> - * { - * sourceCode: "print 'Hello '\n + 'World';", - * // 1 2 - * // 012345678901234 5678901234567 - * spans: [0, #1, 6, #2, 14, #3, 15, #4] - * } - * </pre> - * <p> - * where #1 is a reference to the {@code "print "} text node above, and so - * on for the other text nodes. - * </p> - * - * <p> - * The {@code} spans array is an array of pairs. Even elements are the start - * indices of substrings, and odd elements are the text nodes (or BR elements) - * that contain the text for those substrings. - * Substrings continue until the next index or the end of the source. - * </p> - * - * @param {Node} node an HTML DOM subtree containing source-code. - * @return {Object} source code and the text nodes in which they occur. - */ - function extractSourceSpans(node) { - var nocode = /(?:^|\s)nocode(?:\s|$)/; - - var chunks = []; - var length = 0; - var spans = []; - var k = 0; - - var whitespace; - if (node.currentStyle) { - whitespace = node.currentStyle.whiteSpace; - } else if (window.getComputedStyle) { - whitespace = document.defaultView.getComputedStyle(node, null) - .getPropertyValue('white-space'); - } - var isPreformatted = whitespace && 'pre' === whitespace.substring(0, 3); - - function walk(node) { - switch (node.nodeType) { - case 1: // Element - if (nocode.test(node.className)) { return; } - for (var child = node.firstChild; child; child = child.nextSibling) { - walk(child); - } - var nodeName = node.nodeName; - if ('BR' === nodeName || 'LI' === nodeName) { - chunks[k] = '\n'; - spans[k << 1] = length++; - spans[(k++ << 1) | 1] = node; - } - break; - case 3: case 4: // Text - var text = node.nodeValue; - if (text.length) { - if (!isPreformatted) { - text = text.replace(/[ \t\r\n]+/g, ' '); - } else { - text = text.replace(/\r\n?/g, '\n'); // Normalize newlines. - } - // TODO: handle tabs here? - chunks[k] = text; - spans[k << 1] = length; - length += text.length; - spans[(k++ << 1) | 1] = node; - } - break; - } - } - - walk(node); - - return { - sourceCode: chunks.join('').replace(/\n$/, ''), - spans: spans - }; - } - - - /** - * Apply the given language handler to sourceCode and add the resulting - * decorations to out. - * @param {number} basePos the index of sourceCode within the chunk of source - * whose decorations are already present on out. - */ - function appendDecorations(basePos, sourceCode, langHandler, out) { - if (!sourceCode) { return; } - var job = { - sourceCode: sourceCode, - basePos: basePos - }; - langHandler(job); - out.push.apply(out, job.decorations); - } - - var notWs = /\S/; - - /** - * Given an element, if it contains only one child element and any text nodes - * it contains contain only space characters, return the sole child element. - * Otherwise returns undefined. - * <p> - * This is meant to return the CODE element in {@code <pre><code ...>} when - * there is a single child element that contains all the non-space textual - * content, but not to return anything where there are multiple child elements - * as in {@code <pre><code>...</code><code>...</code></pre>} or when there - * is textual content. - */ - function childContentWrapper(element) { - var wrapper = undefined; - for (var c = element.firstChild; c; c = c.nextSibling) { - var type = c.nodeType; - wrapper = (type === 1) // Element Node - ? (wrapper ? element : c) - : (type === 3) // Text Node - ? (notWs.test(c.nodeValue) ? element : wrapper) - : wrapper; - } - return wrapper === element ? undefined : wrapper; - } - - /** Given triples of [style, pattern, context] returns a lexing function, - * The lexing function interprets the patterns to find token boundaries and - * returns a decoration list of the form - * [index_0, style_0, index_1, style_1, ..., index_n, style_n] - * where index_n is an index into the sourceCode, and style_n is a style - * constant like PR_PLAIN. index_n-1 <= index_n, and style_n-1 applies to - * all characters in sourceCode[index_n-1:index_n]. - * - * The stylePatterns is a list whose elements have the form - * [style : string, pattern : RegExp, DEPRECATED, shortcut : string]. - * - * Style is a style constant like PR_PLAIN, or can be a string of the - * form 'lang-FOO', where FOO is a language extension describing the - * language of the portion of the token in $1 after pattern executes. - * E.g., if style is 'lang-lisp', and group 1 contains the text - * '(hello (world))', then that portion of the token will be passed to the - * registered lisp handler for formatting. - * The text before and after group 1 will be restyled using this decorator - * so decorators should take care that this doesn't result in infinite - * recursion. For example, the HTML lexer rule for SCRIPT elements looks - * something like ['lang-js', /<[s]cript>(.+?)<\/script>/]. This may match - * '<script>foo()<\/script>', which would cause the current decorator to - * be called with '<script>' which would not match the same rule since - * group 1 must not be empty, so it would be instead styled as PR_TAG by - * the generic tag rule. The handler registered for the 'js' extension would - * then be called with 'foo()', and finally, the current decorator would - * be called with '<\/script>' which would not match the original rule and - * so the generic tag rule would identify it as a tag. - * - * Pattern must only match prefixes, and if it matches a prefix, then that - * match is considered a token with the same style. - * - * Context is applied to the last non-whitespace, non-comment token - * recognized. - * - * Shortcut is an optional string of characters, any of which, if the first - * character, gurantee that this pattern and only this pattern matches. - * - * @param {Array} shortcutStylePatterns patterns that always start with - * a known character. Must have a shortcut string. - * @param {Array} fallthroughStylePatterns patterns that will be tried in - * order if the shortcut ones fail. May have shortcuts. - * - * @return {function (Object)} a - * function that takes source code and returns a list of decorations. - */ - function createSimpleLexer(shortcutStylePatterns, fallthroughStylePatterns) { - var shortcuts = {}; - var tokenizer; - (function () { - var allPatterns = shortcutStylePatterns.concat(fallthroughStylePatterns); - var allRegexs = []; - var regexKeys = {}; - for (var i = 0, n = allPatterns.length; i < n; ++i) { - var patternParts = allPatterns[i]; - var shortcutChars = patternParts[3]; - if (shortcutChars) { - for (var c = shortcutChars.length; --c >= 0;) { - shortcuts[shortcutChars.charAt(c)] = patternParts; - } - } - var regex = patternParts[1]; - var k = '' + regex; - if (!regexKeys.hasOwnProperty(k)) { - allRegexs.push(regex); - regexKeys[k] = null; - } - } - allRegexs.push(/[\0-\uffff]/); - tokenizer = combinePrefixPatterns(allRegexs); - })(); - - var nPatterns = fallthroughStylePatterns.length; - - /** - * Lexes job.sourceCode and produces an output array job.decorations of - * style classes preceded by the position at which they start in - * job.sourceCode in order. - * - * @param {Object} job an object like <pre>{ - * sourceCode: {string} sourceText plain text, - * basePos: {int} position of job.sourceCode in the larger chunk of - * sourceCode. - * }</pre> - */ - var decorate = function (job) { - var sourceCode = job.sourceCode, basePos = job.basePos; - /** Even entries are positions in source in ascending order. Odd enties - * are style markers (e.g., PR_COMMENT) that run from that position until - * the end. - * @type {Array.<number|string>} - */ - var decorations = [basePos, PR_PLAIN]; - var pos = 0; // index into sourceCode - var tokens = sourceCode.match(tokenizer) || []; - var styleCache = {}; - - for (var ti = 0, nTokens = tokens.length; ti < nTokens; ++ti) { - var token = tokens[ti]; - var style = styleCache[token]; - var match = void 0; - - var isEmbedded; - if (typeof style === 'string') { - isEmbedded = false; - } else { - var patternParts = shortcuts[token.charAt(0)]; - if (patternParts) { - match = token.match(patternParts[1]); - style = patternParts[0]; - } else { - for (var i = 0; i < nPatterns; ++i) { - patternParts = fallthroughStylePatterns[i]; - match = token.match(patternParts[1]); - if (match) { - style = patternParts[0]; - break; - } - } - - if (!match) { // make sure that we make progress - style = PR_PLAIN; - } - } - - isEmbedded = style.length >= 5 && 'lang-' === style.substring(0, 5); - if (isEmbedded && !(match && typeof match[1] === 'string')) { - isEmbedded = false; - style = PR_SOURCE; - } - - if (!isEmbedded) { styleCache[token] = style; } - } - - var tokenStart = pos; - pos += token.length; - - if (!isEmbedded) { - decorations.push(basePos + tokenStart, style); - } else { // Treat group 1 as an embedded block of source code. - var embeddedSource = match[1]; - var embeddedSourceStart = token.indexOf(embeddedSource); - var embeddedSourceEnd = embeddedSourceStart + embeddedSource.length; - if (match[2]) { - // If embeddedSource can be blank, then it would match at the - // beginning which would cause us to infinitely recurse on the - // entire token, so we catch the right context in match[2]. - embeddedSourceEnd = token.length - match[2].length; - embeddedSourceStart = embeddedSourceEnd - embeddedSource.length; - } - var lang = style.substring(5); - // Decorate the left of the embedded source - appendDecorations( - basePos + tokenStart, - token.substring(0, embeddedSourceStart), - decorate, decorations); - // Decorate the embedded source - appendDecorations( - basePos + tokenStart + embeddedSourceStart, - embeddedSource, - langHandlerForExtension(lang, embeddedSource), - decorations); - // Decorate the right of the embedded section - appendDecorations( - basePos + tokenStart + embeddedSourceEnd, - token.substring(embeddedSourceEnd), - decorate, decorations); - } - } - job.decorations = decorations; - }; - return decorate; - } - - /** returns a function that produces a list of decorations from source text. - * - * This code treats ", ', and ` as string delimiters, and \ as a string - * escape. It does not recognize perl's qq() style strings. - * It has no special handling for double delimiter escapes as in basic, or - * the tripled delimiters used in python, but should work on those regardless - * although in those cases a single string literal may be broken up into - * multiple adjacent string literals. - * - * It recognizes C, C++, and shell style comments. - * - * @param {Object} options a set of optional parameters. - * @return {function (Object)} a function that examines the source code - * in the input job and builds the decoration list. - */ - function sourceDecorator(options) { - var shortcutStylePatterns = [], fallthroughStylePatterns = []; - if (options['tripleQuotedStrings']) { - // '''multi-line-string''', 'single-line-string', and double-quoted - shortcutStylePatterns.push( - [PR_STRING, /^(?:\'\'\'(?:[^\'\\]|\\[\s\S]|\'{1,2}(?=[^\']))*(?:\'\'\'|$)|\"\"\"(?:[^\"\\]|\\[\s\S]|\"{1,2}(?=[^\"]))*(?:\"\"\"|$)|\'(?:[^\\\']|\\[\s\S])*(?:\'|$)|\"(?:[^\\\"]|\\[\s\S])*(?:\"|$))/, - null, '\'"']); - } else if (options['multiLineStrings']) { - // 'multi-line-string', "multi-line-string" - shortcutStylePatterns.push( - [PR_STRING, /^(?:\'(?:[^\\\']|\\[\s\S])*(?:\'|$)|\"(?:[^\\\"]|\\[\s\S])*(?:\"|$)|\`(?:[^\\\`]|\\[\s\S])*(?:\`|$))/, - null, '\'"`']); - } else { - // 'single-line-string', "single-line-string" - shortcutStylePatterns.push( - [PR_STRING, - /^(?:\'(?:[^\\\'\r\n]|\\.)*(?:\'|$)|\"(?:[^\\\"\r\n]|\\.)*(?:\"|$))/, - null, '"\'']); - } - if (options['verbatimStrings']) { - // verbatim-string-literal production from the C# grammar. See issue 93. - fallthroughStylePatterns.push( - [PR_STRING, /^@\"(?:[^\"]|\"\")*(?:\"|$)/, null]); - } - var hc = options['hashComments']; - if (hc) { - if (options['cStyleComments']) { - if (hc > 1) { // multiline hash comments - shortcutStylePatterns.push( - [PR_COMMENT, /^#(?:##(?:[^#]|#(?!##))*(?:###|$)|.*)/, null, '#']); - } else { - // Stop C preprocessor declarations at an unclosed open comment - shortcutStylePatterns.push( - [PR_COMMENT, /^#(?:(?:define|elif|else|endif|error|ifdef|include|ifndef|line|pragma|undef|warning)\b|[^\r\n]*)/, - null, '#']); - } - fallthroughStylePatterns.push( - [PR_STRING, - /^<(?:(?:(?:\.\.\/)*|\/?)(?:[\w-]+(?:\/[\w-]+)+)?[\w-]+\.h|[a-z]\w*)>/, - null]); - } else { - shortcutStylePatterns.push([PR_COMMENT, /^#[^\r\n]*/, null, '#']); - } - } - if (options['cStyleComments']) { - fallthroughStylePatterns.push([PR_COMMENT, /^\/\/[^\r\n]*/, null]); - fallthroughStylePatterns.push( - [PR_COMMENT, /^\/\*[\s\S]*?(?:\*\/|$)/, null]); - } - if (options['regexLiterals']) { - /** - * @const - */ - var REGEX_LITERAL = ( - // A regular expression literal starts with a slash that is - // not followed by * or / so that it is not confused with - // comments. - '/(?=[^/*])' - // and then contains any number of raw characters, - + '(?:[^/\\x5B\\x5C]' - // escape sequences (\x5C), - + '|\\x5C[\\s\\S]' - // or non-nesting character sets (\x5B\x5D); - + '|\\x5B(?:[^\\x5C\\x5D]|\\x5C[\\s\\S])*(?:\\x5D|$))+' - // finally closed by a /. - + '/'); - fallthroughStylePatterns.push( - ['lang-regex', - new RegExp('^' + REGEXP_PRECEDER_PATTERN + '(' + REGEX_LITERAL + ')') - ]); - } - - var types = options['types']; - if (types) { - fallthroughStylePatterns.push([PR_TYPE, types]); - } - - var keywords = ("" + options['keywords']).replace(/^ | $/g, ''); - if (keywords.length) { - fallthroughStylePatterns.push( - [PR_KEYWORD, - new RegExp('^(?:' + keywords.replace(/[\s,]+/g, '|') + ')\\b'), - null]); - } - - shortcutStylePatterns.push([PR_PLAIN, /^\s+/, null, ' \r\n\t\xA0']); - fallthroughStylePatterns.push( - // TODO(mikesamuel): recognize non-latin letters and numerals in idents - [PR_LITERAL, /^@[a-z_$][a-z_$@0-9]*/i, null], - [PR_TYPE, /^(?:[@_]?[A-Z]+[a-z][A-Za-z_$@0-9]*|\w+_t\b)/, null], - [PR_PLAIN, /^[a-z_$][a-z_$@0-9]*/i, null], - [PR_LITERAL, - new RegExp( - '^(?:' - // A hex number - + '0x[a-f0-9]+' - // or an octal or decimal number, - + '|(?:\\d(?:_\\d+)*\\d*(?:\\.\\d*)?|\\.\\d\\+)' - // possibly in scientific notation - + '(?:e[+\\-]?\\d+)?' - + ')' - // with an optional modifier like UL for unsigned long - + '[a-z]*', 'i'), - null, '0123456789'], - // Don't treat escaped quotes in bash as starting strings. See issue 144. - [PR_PLAIN, /^\\[\s\S]?/, null], - [PR_PUNCTUATION, /^.[^\s\w\.$@\'\"\`\/\#\\]*/, null]); - - return createSimpleLexer(shortcutStylePatterns, fallthroughStylePatterns); - } - - var decorateSource = sourceDecorator({ - 'keywords': ALL_KEYWORDS, - 'hashComments': true, - 'cStyleComments': true, - 'multiLineStrings': true, - 'regexLiterals': true - }); - - /** - * Given a DOM subtree, wraps it in a list, and puts each line into its own - * list item. - * - * @param {Node} node modified in place. Its content is pulled into an - * HTMLOListElement, and each line is moved into a separate list item. - * This requires cloning elements, so the input might not have unique - * IDs after numbering. - */ - function numberLines(node, opt_startLineNum) { - var nocode = /(?:^|\s)nocode(?:\s|$)/; - var lineBreak = /\r\n?|\n/; - - var document = node.ownerDocument; - - var whitespace; - if (node.currentStyle) { - whitespace = node.currentStyle.whiteSpace; - } else if (window.getComputedStyle) { - whitespace = document.defaultView.getComputedStyle(node, null) - .getPropertyValue('white-space'); - } - // If it's preformatted, then we need to split lines on line breaks - // in addition to <BR>s. - var isPreformatted = whitespace && 'pre' === whitespace.substring(0, 3); - - var li = document.createElement('LI'); - while (node.firstChild) { - li.appendChild(node.firstChild); - } - // An array of lines. We split below, so this is initialized to one - // un-split line. - var listItems = [li]; - - function walk(node) { - switch (node.nodeType) { - case 1: // Element - if (nocode.test(node.className)) { break; } - if ('BR' === node.nodeName) { - breakAfter(node); - // Discard the <BR> since it is now flush against a </LI>. - if (node.parentNode) { - node.parentNode.removeChild(node); - } - } else { - for (var child = node.firstChild; child; child = child.nextSibling) { - walk(child); - } - } - break; - case 3: case 4: // Text - if (isPreformatted) { - var text = node.nodeValue; - var match = text.match(lineBreak); - if (match) { - var firstLine = text.substring(0, match.index); - node.nodeValue = firstLine; - var tail = text.substring(match.index + match[0].length); - if (tail) { - var parent = node.parentNode; - parent.insertBefore( - document.createTextNode(tail), node.nextSibling); - } - breakAfter(node); - if (!firstLine) { - // Don't leave blank text nodes in the DOM. - node.parentNode.removeChild(node); - } - } - } - break; - } - } - - // Split a line after the given node. - function breakAfter(lineEndNode) { - // If there's nothing to the right, then we can skip ending the line - // here, and move root-wards since splitting just before an end-tag - // would require us to create a bunch of empty copies. - while (!lineEndNode.nextSibling) { - lineEndNode = lineEndNode.parentNode; - if (!lineEndNode) { return; } - } - - function breakLeftOf(limit, copy) { - // Clone shallowly if this node needs to be on both sides of the break. - var rightSide = copy ? limit.cloneNode(false) : limit; - var parent = limit.parentNode; - if (parent) { - // We clone the parent chain. - // This helps us resurrect important styling elements that cross lines. - // E.g. in <i>Foo<br>Bar</i> - // should be rewritten to <li><i>Foo</i></li><li><i>Bar</i></li>. - var parentClone = breakLeftOf(parent, 1); - // Move the clone and everything to the right of the original - // onto the cloned parent. - var next = limit.nextSibling; - parentClone.appendChild(rightSide); - for (var sibling = next; sibling; sibling = next) { - next = sibling.nextSibling; - parentClone.appendChild(sibling); - } - } - return rightSide; - } - - var copiedListItem = breakLeftOf(lineEndNode.nextSibling, 0); - - // Walk the parent chain until we reach an unattached LI. - for (var parent; - // Check nodeType since IE invents document fragments. - (parent = copiedListItem.parentNode) && parent.nodeType === 1;) { - copiedListItem = parent; - } - // Put it on the list of lines for later processing. - listItems.push(copiedListItem); - } - - // Split lines while there are lines left to split. - for (var i = 0; // Number of lines that have been split so far. - i < listItems.length; // length updated by breakAfter calls. - ++i) { - walk(listItems[i]); - } - - // Make sure numeric indices show correctly. - if (opt_startLineNum === (opt_startLineNum|0)) { - listItems[0].setAttribute('value', opt_startLineNum); - } - - var ol = document.createElement('OL'); - ol.className = 'linenums'; - var offset = Math.max(0, ((opt_startLineNum - 1 /* zero index */)) | 0) || 0; - for (var i = 0, n = listItems.length; i < n; ++i) { - li = listItems[i]; - // Stick a class on the LIs so that stylesheets can - // color odd/even rows, or any other row pattern that - // is co-prime with 10. - li.className = 'L' + ((i + offset) % 10); - if (!li.firstChild) { - li.appendChild(document.createTextNode('\xA0')); - } - ol.appendChild(li); - } - - node.appendChild(ol); - } - - /** - * Breaks {@code job.sourceCode} around style boundaries in - * {@code job.decorations} and modifies {@code job.sourceNode} in place. - * @param {Object} job like <pre>{ - * sourceCode: {string} source as plain text, - * spans: {Array.<number|Node>} alternating span start indices into source - * and the text node or element (e.g. {@code <BR>}) corresponding to that - * span. - * decorations: {Array.<number|string} an array of style classes preceded - * by the position at which they start in job.sourceCode in order - * }</pre> - * @private - */ - function recombineTagsAndDecorations(job) { - var isIE = /\bMSIE\b/.test(navigator.userAgent); - var newlineRe = /\n/g; - - var source = job.sourceCode; - var sourceLength = source.length; - // Index into source after the last code-unit recombined. - var sourceIndex = 0; - - var spans = job.spans; - var nSpans = spans.length; - // Index into spans after the last span which ends at or before sourceIndex. - var spanIndex = 0; - - var decorations = job.decorations; - var nDecorations = decorations.length; - // Index into decorations after the last decoration which ends at or before - // sourceIndex. - var decorationIndex = 0; - - // Remove all zero-length decorations. - decorations[nDecorations] = sourceLength; - var decPos, i; - for (i = decPos = 0; i < nDecorations;) { - if (decorations[i] !== decorations[i + 2]) { - decorations[decPos++] = decorations[i++]; - decorations[decPos++] = decorations[i++]; - } else { - i += 2; - } - } - nDecorations = decPos; - - // Simplify decorations. - for (i = decPos = 0; i < nDecorations;) { - var startPos = decorations[i]; - // Conflate all adjacent decorations that use the same style. - var startDec = decorations[i + 1]; - var end = i + 2; - while (end + 2 <= nDecorations && decorations[end + 1] === startDec) { - end += 2; - } - decorations[decPos++] = startPos; - decorations[decPos++] = startDec; - i = end; - } - - nDecorations = decorations.length = decPos; - - var decoration = null; - while (spanIndex < nSpans) { - var spanStart = spans[spanIndex]; - var spanEnd = spans[spanIndex + 2] || sourceLength; - - var decStart = decorations[decorationIndex]; - var decEnd = decorations[decorationIndex + 2] || sourceLength; - - var end = Math.min(spanEnd, decEnd); - - var textNode = spans[spanIndex + 1]; - var styledText; - if (textNode.nodeType !== 1 // Don't muck with <BR>s or <LI>s - // Don't introduce spans around empty text nodes. - && (styledText = source.substring(sourceIndex, end))) { - // This may seem bizarre, and it is. Emitting LF on IE causes the - // code to display with spaces instead of line breaks. - // Emitting Windows standard issue linebreaks (CRLF) causes a blank - // space to appear at the beginning of every line but the first. - // Emitting an old Mac OS 9 line separator makes everything spiffy. - if (isIE) { styledText = styledText.replace(newlineRe, '\r'); } - textNode.nodeValue = styledText; - var document = textNode.ownerDocument; - var span = document.createElement('SPAN'); - span.className = decorations[decorationIndex + 1]; - var parentNode = textNode.parentNode; - parentNode.replaceChild(span, textNode); - span.appendChild(textNode); - if (sourceIndex < spanEnd) { // Split off a text node. - spans[spanIndex + 1] = textNode - // TODO: Possibly optimize by using '' if there's no flicker. - = document.createTextNode(source.substring(end, spanEnd)); - parentNode.insertBefore(textNode, span.nextSibling); - } - } - - sourceIndex = end; - - if (sourceIndex >= spanEnd) { - spanIndex += 2; - } - if (sourceIndex >= decEnd) { - decorationIndex += 2; - } - } - } - - - /** Maps language-specific file extensions to handlers. */ - var langHandlerRegistry = {}; - /** Register a language handler for the given file extensions. - * @param {function (Object)} handler a function from source code to a list - * of decorations. Takes a single argument job which describes the - * state of the computation. The single parameter has the form - * {@code { - * sourceCode: {string} as plain text. - * decorations: {Array.<number|string>} an array of style classes - * preceded by the position at which they start in - * job.sourceCode in order. - * The language handler should assigned this field. - * basePos: {int} the position of source in the larger source chunk. - * All positions in the output decorations array are relative - * to the larger source chunk. - * } } - * @param {Array.<string>} fileExtensions - */ - function registerLangHandler(handler, fileExtensions) { - for (var i = fileExtensions.length; --i >= 0;) { - var ext = fileExtensions[i]; - if (!langHandlerRegistry.hasOwnProperty(ext)) { - langHandlerRegistry[ext] = handler; - } else if (window['console']) { - console['warn']('cannot override language handler %s', ext); - } - } - } - function langHandlerForExtension(extension, source) { - if (!(extension && langHandlerRegistry.hasOwnProperty(extension))) { - // Treat it as markup if the first non whitespace character is a < and - // the last non-whitespace character is a >. - extension = /^\s*</.test(source) - ? 'default-markup' - : 'default-code'; - } - return langHandlerRegistry[extension]; - } - registerLangHandler(decorateSource, ['default-code']); - registerLangHandler( - createSimpleLexer( - [], - [ - [PR_PLAIN, /^[^<?]+/], - [PR_DECLARATION, /^<!\w[^>]*(?:>|$)/], - [PR_COMMENT, /^<\!--[\s\S]*?(?:-\->|$)/], - // Unescaped content in an unknown language - ['lang-', /^<\?([\s\S]+?)(?:\?>|$)/], - ['lang-', /^<%([\s\S]+?)(?:%>|$)/], - [PR_PUNCTUATION, /^(?:<[%?]|[%?]>)/], - ['lang-', /^<xmp\b[^>]*>([\s\S]+?)<\/xmp\b[^>]*>/i], - // Unescaped content in javascript. (Or possibly vbscript). - ['lang-js', /^<script\b[^>]*>([\s\S]*?)(<\/script\b[^>]*>)/i], - // Contains unescaped stylesheet content - ['lang-css', /^<style\b[^>]*>([\s\S]*?)(<\/style\b[^>]*>)/i], - ['lang-in.tag', /^(<\/?[a-z][^<>]*>)/i] - ]), - ['default-markup', 'htm', 'html', 'mxml', 'xhtml', 'xml', 'xsl']); - registerLangHandler( - createSimpleLexer( - [ - [PR_PLAIN, /^[\s]+/, null, ' \t\r\n'], - [PR_ATTRIB_VALUE, /^(?:\"[^\"]*\"?|\'[^\']*\'?)/, null, '\"\''] - ], - [ - [PR_TAG, /^^<\/?[a-z](?:[\w.:-]*\w)?|\/?>$/i], - [PR_ATTRIB_NAME, /^(?!style[\s=]|on)[a-z](?:[\w:-]*\w)?/i], - ['lang-uq.val', /^=\s*([^>\'\"\s]*(?:[^>\'\"\s\/]|\/(?=\s)))/], - [PR_PUNCTUATION, /^[=<>\/]+/], - ['lang-js', /^on\w+\s*=\s*\"([^\"]+)\"/i], - ['lang-js', /^on\w+\s*=\s*\'([^\']+)\'/i], - ['lang-js', /^on\w+\s*=\s*([^\"\'>\s]+)/i], - ['lang-css', /^style\s*=\s*\"([^\"]+)\"/i], - ['lang-css', /^style\s*=\s*\'([^\']+)\'/i], - ['lang-css', /^style\s*=\s*([^\"\'>\s]+)/i] - ]), - ['in.tag']); - registerLangHandler( - createSimpleLexer([], [[PR_ATTRIB_VALUE, /^[\s\S]+/]]), ['uq.val']); - registerLangHandler(sourceDecorator({ - 'keywords': CPP_KEYWORDS, - 'hashComments': true, - 'cStyleComments': true, - 'types': C_TYPES - }), ['c', 'cc', 'cpp', 'cxx', 'cyc', 'm']); - registerLangHandler(sourceDecorator({ - 'keywords': 'null,true,false' - }), ['json']); - registerLangHandler(sourceDecorator({ - 'keywords': CSHARP_KEYWORDS, - 'hashComments': true, - 'cStyleComments': true, - 'verbatimStrings': true, - 'types': C_TYPES - }), ['cs']); - registerLangHandler(sourceDecorator({ - 'keywords': JAVA_KEYWORDS, - 'cStyleComments': true - }), ['java']); - registerLangHandler(sourceDecorator({ - 'keywords': SH_KEYWORDS, - 'hashComments': true, - 'multiLineStrings': true - }), ['bsh', 'csh', 'sh']); - registerLangHandler(sourceDecorator({ - 'keywords': PYTHON_KEYWORDS, - 'hashComments': true, - 'multiLineStrings': true, - 'tripleQuotedStrings': true - }), ['cv', 'py']); - registerLangHandler(sourceDecorator({ - 'keywords': PERL_KEYWORDS, - 'hashComments': true, - 'multiLineStrings': true, - 'regexLiterals': true - }), ['perl', 'pl', 'pm']); - registerLangHandler(sourceDecorator({ - 'keywords': RUBY_KEYWORDS, - 'hashComments': true, - 'multiLineStrings': true, - 'regexLiterals': true - }), ['rb']); - registerLangHandler(sourceDecorator({ - 'keywords': JSCRIPT_KEYWORDS, - 'cStyleComments': true, - 'regexLiterals': true - }), ['js']); - registerLangHandler(sourceDecorator({ - 'keywords': COFFEE_KEYWORDS, - 'hashComments': 3, // ### style block comments - 'cStyleComments': true, - 'multilineStrings': true, - 'tripleQuotedStrings': true, - 'regexLiterals': true - }), ['coffee']); - registerLangHandler(createSimpleLexer([], [[PR_STRING, /^[\s\S]+/]]), ['regex']); - - function applyDecorator(job) { - var opt_langExtension = job.langExtension; - - try { - // Extract tags, and convert the source code to plain text. - var sourceAndSpans = extractSourceSpans(job.sourceNode); - /** Plain text. @type {string} */ - var source = sourceAndSpans.sourceCode; - job.sourceCode = source; - job.spans = sourceAndSpans.spans; - job.basePos = 0; - - // Apply the appropriate language handler - langHandlerForExtension(opt_langExtension, source)(job); - - // Integrate the decorations and tags back into the source code, - // modifying the sourceNode in place. - recombineTagsAndDecorations(job); - } catch (e) { - if ('console' in window) { - console['log'](e && e['stack'] ? e['stack'] : e); - } - } - } - - /** - * @param sourceCodeHtml {string} The HTML to pretty print. - * @param opt_langExtension {string} The language name to use. - * Typically, a filename extension like 'cpp' or 'java'. - * @param opt_numberLines {number|boolean} True to number lines, - * or the 1-indexed number of the first line in sourceCodeHtml. - */ - function prettyPrintOne(sourceCodeHtml, opt_langExtension, opt_numberLines) { - var container = document.createElement('PRE'); - // This could cause images to load and onload listeners to fire. - // E.g. <img onerror="alert(1337)" src="nosuchimage.png">. - // We assume that the inner HTML is from a trusted source. - container.innerHTML = sourceCodeHtml; - if (opt_numberLines) { - numberLines(container, opt_numberLines); - } - - var job = { - langExtension: opt_langExtension, - numberLines: opt_numberLines, - sourceNode: container - }; - applyDecorator(job); - return container.innerHTML; - } - - function prettyPrint(opt_whenDone) { - function byTagName(tn) { return document.getElementsByTagName(tn); } - // fetch a list of nodes to rewrite - var codeSegments = [byTagName('pre'), byTagName('code'), byTagName('xmp')]; - var elements = []; - for (var i = 0; i < codeSegments.length; ++i) { - for (var j = 0, n = codeSegments[i].length; j < n; ++j) { - elements.push(codeSegments[i][j]); - } - } - codeSegments = null; - - var clock = Date; - if (!clock['now']) { - clock = { 'now': function () { return +(new Date); } }; - } - - // The loop is broken into a series of continuations to make sure that we - // don't make the browser unresponsive when rewriting a large page. - var k = 0; - var prettyPrintingJob; - - var langExtensionRe = /\blang(?:uage)?-([\w.]+)(?!\S)/; - var prettyPrintRe = /\bprettyprint\b/; - - function doWork() { - var endTime = (window['PR_SHOULD_USE_CONTINUATION'] ? - clock['now']() + 250 /* ms */ : - Infinity); - for (; k < elements.length && clock['now']() < endTime; k++) { - var cs = elements[k]; - var className = cs.className; - if (className.indexOf('prettyprint') >= 0) { - // If the classes includes a language extensions, use it. - // Language extensions can be specified like - // <pre class="prettyprint lang-cpp"> - // the language extension "cpp" is used to find a language handler as - // passed to PR.registerLangHandler. - // HTML5 recommends that a language be specified using "language-" - // as the prefix instead. Google Code Prettify supports both. - // http://dev.w3.org/html5/spec-author-view/the-code-element.html - var langExtension = className.match(langExtensionRe); - // Support <pre class="prettyprint"><code class="language-c"> - var wrapper; - if (!langExtension && (wrapper = childContentWrapper(cs)) - && "CODE" === wrapper.tagName) { - langExtension = wrapper.className.match(langExtensionRe); - } - - if (langExtension) { - langExtension = langExtension[1]; - } - - // make sure this is not nested in an already prettified element - var nested = false; - for (var p = cs.parentNode; p; p = p.parentNode) { - if ((p.tagName === 'pre' || p.tagName === 'code' || - p.tagName === 'xmp') && - p.className && p.className.indexOf('prettyprint') >= 0) { - nested = true; - break; - } - } - if (!nested) { - // Look for a class like linenums or linenums:<n> where <n> is the - // 1-indexed number of the first line. - var lineNums = cs.className.match(/\blinenums\b(?::(\d+))?/); - lineNums = lineNums - ? lineNums[1] && lineNums[1].length ? +lineNums[1] : true - : false; - if (lineNums) { numberLines(cs, lineNums); } - - // do the pretty printing - prettyPrintingJob = { - langExtension: langExtension, - sourceNode: cs, - numberLines: lineNums - }; - applyDecorator(prettyPrintingJob); - } - } - } - if (k < elements.length) { - // finish up in a continuation - setTimeout(doWork, 250); - } else if (opt_whenDone) { - opt_whenDone(); - } - } - - doWork(); - } - - /** - * Find all the {@code <pre>} and {@code <code>} tags in the DOM with - * {@code class=prettyprint} and prettify them. - * - * @param {Function?} opt_whenDone if specified, called when the last entry - * has been finished. - */ - window['prettyPrintOne'] = prettyPrintOne; - /** - * Pretty print a chunk of code. - * - * @param {string} sourceCodeHtml code as html - * @return {string} code as html, but prettier - */ - window['prettyPrint'] = prettyPrint; - /** - * Contains functions for creating and registering new language handlers. - * @type {Object} - */ - window['PR'] = { - 'createSimpleLexer': createSimpleLexer, - 'registerLangHandler': registerLangHandler, - 'sourceDecorator': sourceDecorator, - 'PR_ATTRIB_NAME': PR_ATTRIB_NAME, - 'PR_ATTRIB_VALUE': PR_ATTRIB_VALUE, - 'PR_COMMENT': PR_COMMENT, - 'PR_DECLARATION': PR_DECLARATION, - 'PR_KEYWORD': PR_KEYWORD, - 'PR_LITERAL': PR_LITERAL, - 'PR_NOCODE': PR_NOCODE, - 'PR_PLAIN': PR_PLAIN, - 'PR_PUNCTUATION': PR_PUNCTUATION, - 'PR_SOURCE': PR_SOURCE, - 'PR_STRING': PR_STRING, - 'PR_TAG': PR_TAG, - 'PR_TYPE': PR_TYPE - }; -})(); diff --git a/admin/bower_components/jquery-slimscroll/examples/mouse-wheel.html b/admin/bower_components/jquery-slimscroll/examples/mouse-wheel.html deleted file mode 100644 index 434c80c..0000000 --- a/admin/bower_components/jquery-slimscroll/examples/mouse-wheel.html +++ /dev/null @@ -1,99 +0,0 @@ -<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> -<html> -<head> -<title>jquery.slimscroll - mouse wheel</title> -<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> -<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.0/jquery.min.js"></script> - -<link href="libs/prettify/prettify.css" type="text/css" rel="stylesheet" /> -<script type="text/javascript" src="libs/prettify/prettify.js"></script> -<script type="text/javascript" src="../jquery.slimscroll.js"></script> -<link href="style.css" type="text/css" rel="stylesheet" /> -</head> -<body> -<a id="git-fork" href="https://github.com/rochal/jQuery-slimScroll"><img src="https://s3.amazonaws.com/github/ribbons/forkme_right_red_aa0000.png" alt="Fork me on GitHub"></a> - -<div class="examples"> - <div id="testDiv"> - <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nam rhoncus, felis interdum condimentum consectetur, nisl libero elementum eros, vehicula congue lacus eros non diam. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Vivamus mauris lorem, lacinia id tempus non, imperdiet et leo. Cras sit amet erat sit amet lacus egestas placerat. Aenean ultricies ultrices mauris ac congue. In vel tortor vel velit tristique tempus ac id nisi. Proin quis lorem velit. Nunc dui dui, blandit a ullamcorper vitae, congue fringilla lectus. Aliquam ultricies malesuada feugiat. Vestibulum placerat turpis et eros lobortis vel semper sapien pulvinar.</p> - <p>Pellentesque rhoncus aliquet porta. Sed vel magna eu turpis pharetra consequat ut vitae lectus. In molestie sollicitudin mi sit amet convallis. Aliquam erat volutpat. Nullam feugiat placerat ipsum eget malesuada. Nulla facilisis nunc non dolor vehicula pretium. Sed dui magna, sodales id pharetra non, ullamcorper eu sapien. Mauris ac consectetur leo. Mauris consequat, lectus ut bibendum pulvinar, leo magna feugiat enim, eu commodo lacus sem vel ante. Sed tempus metus eget leo mollis vulputate. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos.</p> - <p>Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Sed pulvinar rhoncus quam, vel semper tellus viverra id. Nulla rutrum porttitor odio, a rutrum purus gravida non. Etiam ac purus augue, eget vestibulum purus. Aenean venenatis ullamcorper augue, non consequat elit tempor sed. Donec velit sapien, volutpat sed ultricies egestas, semper a ante. Fusce dapibus, quam eget auctor suscipit, nibh leo posuere ante, at auctor nisi lacus in sem. Morbi interdum consectetur euismod. Cras accumsan est lacus. Nulla eleifend, eros vel consequat commodo, arcu nunc malesuada nunc, quis sagittis felis sem ac turpis.</p> - <p>Nulla rhoncus elementum convallis. Mauris condimentum aliquet egestas. Ut iaculis nisi eget tellus accumsan venenatis. Maecenas imperdiet aliquam porta. Aenean ultrices dolor sed quam laoreet varius. Curabitur condimentum blandit erat, quis accumsan eros interdum vitae. Curabitur ligula arcu, sollicitudin vitae iaculis sed, blandit sit amet enim. Morbi ullamcorper, metus vel mollis tristique, arcu turpis malesuada nisi, at dignissim lorem odio a orci. Proin ultrices, ipsum ut vestibulum interdum, libero felis auctor mi, vitae convallis nisl justo ac tellus. Integer nec lacinia turpis. Etiam massa nisl, rhoncus quis rutrum in, pretium eu leo. Proin a velit ut nulla laoreet vestibulum. Curabitur eu elit vitae felis auctor tincidunt. Curabitur tincidunt, metus sed sollicitudin cursus, quam elit commodo erat, ut tempor erat sapien vitae velit. Morbi nec viverra erat.</p> - <p>Nullam scelerisque facilisis pretium. Vivamus lectus leo, commodo ac sagittis ac, dictum a mi. Donec quis massa ut libero malesuada commodo in et risus. Fusce nunc dolor, aliquet vel rutrum in, molestie sit amet massa. Aliquam suscipit, justo a commodo condimentum, enim sapien fringilla ante, sed lobortis orci lectus in ante. Donec vel interdum est. Donec placerat cursus lacus, eu ultricies nisl tincidunt a. Fusce libero risus, sagittis eleifend iaculis aliquet, condimentum vitae diam. Suspendisse potenti. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Proin leo purus, sodales a venenatis luctus, faucibus ac enim. Sed id metus ac sem lobortis pretium. Mauris faucibus tempor scelerisque. Nunc vulputate interdum tortor, non tincidunt dui condimentum eget. Aenean in porttitor velit. Nam accumsan rhoncus risus id consectetur.</p> - <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nam rhoncus, felis interdum condimentum consectetur, nisl libero elementum eros, vehicula congue lacus eros non diam. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Vivamus mauris lorem, lacinia id tempus non, imperdiet et leo. Cras sit amet erat sit amet lacus egestas placerat. Aenean ultricies ultrices mauris ac congue. In vel tortor vel velit tristique tempus ac id nisi. Proin quis lorem velit. Nunc dui dui, blandit a ullamcorper vitae, congue fringilla lectus. Aliquam ultricies malesuada feugiat. Vestibulum placerat turpis et eros lobortis vel semper sapien pulvinar.</p> - <p>Pellentesque rhoncus aliquet porta. Sed vel magna eu turpis pharetra consequat ut vitae lectus. In molestie sollicitudin mi sit amet convallis. Aliquam erat volutpat. Nullam feugiat placerat ipsum eget malesuada. Nulla facilisis nunc non dolor vehicula pretium. Sed dui magna, sodales id pharetra non, ullamcorper eu sapien. Mauris ac consectetur leo. Mauris consequat, lectus ut bibendum pulvinar, leo magna feugiat enim, eu commodo lacus sem vel ante. Sed tempus metus eget leo mollis vulputate. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos.</p> - <p>Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Sed pulvinar rhoncus quam, vel semper tellus viverra id. Nulla rutrum porttitor odio, a rutrum purus gravida non. Etiam ac purus augue, eget vestibulum purus. Aenean venenatis ullamcorper augue, non consequat elit tempor sed. Donec velit sapien, volutpat sed ultricies egestas, semper a ante. Fusce dapibus, quam eget auctor suscipit, nibh leo posuere ante, at auctor nisi lacus in sem. Morbi interdum consectetur euismod. Cras accumsan est lacus. Nulla eleifend, eros vel consequat commodo, arcu nunc malesuada nunc, quis sagittis felis sem ac turpis.</p> - <p>Nulla rhoncus elementum convallis. Mauris condimentum aliquet egestas. Ut iaculis nisi eget tellus accumsan venenatis. Maecenas imperdiet aliquam porta. Aenean ultrices dolor sed quam laoreet varius. Curabitur condimentum blandit erat, quis accumsan eros interdum vitae. Curabitur ligula arcu, sollicitudin vitae iaculis sed, blandit sit amet enim. Morbi ullamcorper, metus vel mollis tristique, arcu turpis malesuada nisi, at dignissim lorem odio a orci. Proin ultrices, ipsum ut vestibulum interdum, libero felis auctor mi, vitae convallis nisl justo ac tellus. Integer nec lacinia turpis. Etiam massa nisl, rhoncus quis rutrum in, pretium eu leo. Proin a velit ut nulla laoreet vestibulum. Curabitur eu elit vitae felis auctor tincidunt. Curabitur tincidunt, metus sed sollicitudin cursus, quam elit commodo erat, ut tempor erat sapien vitae velit. Morbi nec viverra erat.</p> - <p>Nullam scelerisque facilisis pretium. Vivamus lectus leo, commodo ac sagittis ac, dictum a mi. Donec quis massa ut libero malesuada commodo in et risus. Fusce nunc dolor, aliquet vel rutrum in, molestie sit amet massa. Aliquam suscipit, justo a commodo condimentum, enim sapien fringilla ante, sed lobortis orci lectus in ante. Donec vel interdum est. Donec placerat cursus lacus, eu ultricies nisl tincidunt a. Fusce libero risus, sagittis eleifend iaculis aliquet, condimentum vitae diam. Suspendisse potenti. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Proin leo purus, sodales a venenatis luctus, faucibus ac enim. Sed id metus ac sem lobortis pretium. Mauris faucibus tempor scelerisque. Nunc vulputate interdum tortor, non tincidunt dui condimentum eget. Aenean in porttitor velit. Nam accumsan rhoncus risus id consectetur.</p> - <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nam rhoncus, felis interdum condimentum consectetur, nisl libero elementum eros, vehicula congue lacus eros non diam. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Vivamus mauris lorem, lacinia id tempus non, imperdiet et leo. Cras sit amet erat sit amet lacus egestas placerat. Aenean ultricies ultrices mauris ac congue. In vel tortor vel velit tristique tempus ac id nisi. Proin quis lorem velit. Nunc dui dui, blandit a ullamcorper vitae, congue fringilla lectus. Aliquam ultricies malesuada feugiat. Vestibulum placerat turpis et eros lobortis vel semper sapien pulvinar.</p> - <p>Pellentesque rhoncus aliquet porta. Sed vel magna eu turpis pharetra consequat ut vitae lectus. In molestie sollicitudin mi sit amet convallis. Aliquam erat volutpat. Nullam feugiat placerat ipsum eget malesuada. Nulla facilisis nunc non dolor vehicula pretium. Sed dui magna, sodales id pharetra non, ullamcorper eu sapien. Mauris ac consectetur leo. Mauris consequat, lectus ut bibendum pulvinar, leo magna feugiat enim, eu commodo lacus sem vel ante. Sed tempus metus eget leo mollis vulputate. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos.</p> - <p>Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Sed pulvinar rhoncus quam, vel semper tellus viverra id. Nulla rutrum porttitor odio, a rutrum purus gravida non. Etiam ac purus augue, eget vestibulum purus. Aenean venenatis ullamcorper augue, non consequat elit tempor sed. Donec velit sapien, volutpat sed ultricies egestas, semper a ante. Fusce dapibus, quam eget auctor suscipit, nibh leo posuere ante, at auctor nisi lacus in sem. Morbi interdum consectetur euismod. Cras accumsan est lacus. Nulla eleifend, eros vel consequat commodo, arcu nunc malesuada nunc, quis sagittis felis sem ac turpis.</p> - <p>Nulla rhoncus elementum convallis. Mauris condimentum aliquet egestas. Ut iaculis nisi eget tellus accumsan venenatis. Maecenas imperdiet aliquam porta. Aenean ultrices dolor sed quam laoreet varius. Curabitur condimentum blandit erat, quis accumsan eros interdum vitae. Curabitur ligula arcu, sollicitudin vitae iaculis sed, blandit sit amet enim. Morbi ullamcorper, metus vel mollis tristique, arcu turpis malesuada nisi, at dignissim lorem odio a orci. Proin ultrices, ipsum ut vestibulum interdum, libero felis auctor mi, vitae convallis nisl justo ac tellus. Integer nec lacinia turpis. Etiam massa nisl, rhoncus quis rutrum in, pretium eu leo. Proin a velit ut nulla laoreet vestibulum. Curabitur eu elit vitae felis auctor tincidunt. Curabitur tincidunt, metus sed sollicitudin cursus, quam elit commodo erat, ut tempor erat sapien vitae velit. Morbi nec viverra erat.</p> - <p>Nullam scelerisque facilisis pretium. Vivamus lectus leo, commodo ac sagittis ac, dictum a mi. Donec quis massa ut libero malesuada commodo in et risus. Fusce nunc dolor, aliquet vel rutrum in, molestie sit amet massa. Aliquam suscipit, justo a commodo condimentum, enim sapien fringilla ante, sed lobortis orci lectus in ante. Donec vel interdum est. Donec placerat cursus lacus, eu ultricies nisl tincidunt a. Fusce libero risus, sagittis eleifend iaculis aliquet, condimentum vitae diam. Suspendisse potenti. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Proin leo purus, sodales a venenatis luctus, faucibus ac enim. Sed id metus ac sem lobortis pretium. Mauris faucibus tempor scelerisque. Nunc vulputate interdum tortor, non tincidunt dui condimentum eget. Aenean in porttitor velit. Nam accumsan rhoncus risus id consectetur.</p> - </div> - -<pre class="prettyprint"> - $('#testDiv').slimScroll({ - wheelStep: 20 - }); -</pre> - - <div id="testDiv2"> - <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nam rhoncus, felis interdum condimentum consectetur, nisl libero elementum eros, vehicula congue lacus eros non diam. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Vivamus mauris lorem, lacinia id tempus non, imperdiet et leo. Cras sit amet erat sit amet lacus egestas placerat. Aenean ultricies ultrices mauris ac congue. In vel tortor vel velit tristique tempus ac id nisi. Proin quis lorem velit. Nunc dui dui, blandit a ullamcorper vitae, congue fringilla lectus. Aliquam ultricies malesuada feugiat. Vestibulum placerat turpis et eros lobortis vel semper sapien pulvinar.</p> - <p>Pellentesque rhoncus aliquet porta. Sed vel magna eu turpis pharetra consequat ut vitae lectus. In molestie sollicitudin mi sit amet convallis. Aliquam erat volutpat. Nullam feugiat placerat ipsum eget malesuada. Nulla facilisis nunc non dolor vehicula pretium. Sed dui magna, sodales id pharetra non, ullamcorper eu sapien. Mauris ac consectetur leo. Mauris consequat, lectus ut bibendum pulvinar, leo magna feugiat enim, eu commodo lacus sem vel ante. Sed tempus metus eget leo mollis vulputate. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos.</p> - <p>Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Sed pulvinar rhoncus quam, vel semper tellus viverra id. Nulla rutrum porttitor odio, a rutrum purus gravida non. Etiam ac purus augue, eget vestibulum purus. Aenean venenatis ullamcorper augue, non consequat elit tempor sed. Donec velit sapien, volutpat sed ultricies egestas, semper a ante. Fusce dapibus, quam eget auctor suscipit, nibh leo posuere ante, at auctor nisi lacus in sem. Morbi interdum consectetur euismod. Cras accumsan est lacus. Nulla eleifend, eros vel consequat commodo, arcu nunc malesuada nunc, quis sagittis felis sem ac turpis.</p> - <p>Nulla rhoncus elementum convallis. Mauris condimentum aliquet egestas. Ut iaculis nisi eget tellus accumsan venenatis. Maecenas imperdiet aliquam porta. Aenean ultrices dolor sed quam laoreet varius. Curabitur condimentum blandit erat, quis accumsan eros interdum vitae. Curabitur ligula arcu, sollicitudin vitae iaculis sed, blandit sit amet enim. Morbi ullamcorper, metus vel mollis tristique, arcu turpis malesuada nisi, at dignissim lorem odio a orci. Proin ultrices, ipsum ut vestibulum interdum, libero felis auctor mi, vitae convallis nisl justo ac tellus. Integer nec lacinia turpis. Etiam massa nisl, rhoncus quis rutrum in, pretium eu leo. Proin a velit ut nulla laoreet vestibulum. Curabitur eu elit vitae felis auctor tincidunt. Curabitur tincidunt, metus sed sollicitudin cursus, quam elit commodo erat, ut tempor erat sapien vitae velit. Morbi nec viverra erat.</p> - <p>Nullam scelerisque facilisis pretium. Vivamus lectus leo, commodo ac sagittis ac, dictum a mi. Donec quis massa ut libero malesuada commodo in et risus. Fusce nunc dolor, aliquet vel rutrum in, molestie sit amet massa. Aliquam suscipit, justo a commodo condimentum, enim sapien fringilla ante, sed lobortis orci lectus in ante. Donec vel interdum est. Donec placerat cursus lacus, eu ultricies nisl tincidunt a. Fusce libero risus, sagittis eleifend iaculis aliquet, condimentum vitae diam. Suspendisse potenti. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Proin leo purus, sodales a venenatis luctus, faucibus ac enim. Sed id metus ac sem lobortis pretium. Mauris faucibus tempor scelerisque. Nunc vulputate interdum tortor, non tincidunt dui condimentum eget. Aenean in porttitor velit. Nam accumsan rhoncus risus id consectetur.</p> - <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nam rhoncus, felis interdum condimentum consectetur, nisl libero elementum eros, vehicula congue lacus eros non diam. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Vivamus mauris lorem, lacinia id tempus non, imperdiet et leo. Cras sit amet erat sit amet lacus egestas placerat. Aenean ultricies ultrices mauris ac congue. In vel tortor vel velit tristique tempus ac id nisi. Proin quis lorem velit. Nunc dui dui, blandit a ullamcorper vitae, congue fringilla lectus. Aliquam ultricies malesuada feugiat. Vestibulum placerat turpis et eros lobortis vel semper sapien pulvinar.</p> - <p>Pellentesque rhoncus aliquet porta. Sed vel magna eu turpis pharetra consequat ut vitae lectus. In molestie sollicitudin mi sit amet convallis. Aliquam erat volutpat. Nullam feugiat placerat ipsum eget malesuada. Nulla facilisis nunc non dolor vehicula pretium. Sed dui magna, sodales id pharetra non, ullamcorper eu sapien. Mauris ac consectetur leo. Mauris consequat, lectus ut bibendum pulvinar, leo magna feugiat enim, eu commodo lacus sem vel ante. Sed tempus metus eget leo mollis vulputate. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos.</p> - <p>Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Sed pulvinar rhoncus quam, vel semper tellus viverra id. Nulla rutrum porttitor odio, a rutrum purus gravida non. Etiam ac purus augue, eget vestibulum purus. Aenean venenatis ullamcorper augue, non consequat elit tempor sed. Donec velit sapien, volutpat sed ultricies egestas, semper a ante. Fusce dapibus, quam eget auctor suscipit, nibh leo posuere ante, at auctor nisi lacus in sem. Morbi interdum consectetur euismod. Cras accumsan est lacus. Nulla eleifend, eros vel consequat commodo, arcu nunc malesuada nunc, quis sagittis felis sem ac turpis.</p> - <p>Nulla rhoncus elementum convallis. Mauris condimentum aliquet egestas. Ut iaculis nisi eget tellus accumsan venenatis. Maecenas imperdiet aliquam porta. Aenean ultrices dolor sed quam laoreet varius. Curabitur condimentum blandit erat, quis accumsan eros interdum vitae. Curabitur ligula arcu, sollicitudin vitae iaculis sed, blandit sit amet enim. Morbi ullamcorper, metus vel mollis tristique, arcu turpis malesuada nisi, at dignissim lorem odio a orci. Proin ultrices, ipsum ut vestibulum interdum, libero felis auctor mi, vitae convallis nisl justo ac tellus. Integer nec lacinia turpis. Etiam massa nisl, rhoncus quis rutrum in, pretium eu leo. Proin a velit ut nulla laoreet vestibulum. Curabitur eu elit vitae felis auctor tincidunt. Curabitur tincidunt, metus sed sollicitudin cursus, quam elit commodo erat, ut tempor erat sapien vitae velit. Morbi nec viverra erat.</p> - <p>Nullam scelerisque facilisis pretium. Vivamus lectus leo, commodo ac sagittis ac, dictum a mi. Donec quis massa ut libero malesuada commodo in et risus. Fusce nunc dolor, aliquet vel rutrum in, molestie sit amet massa. Aliquam suscipit, justo a commodo condimentum, enim sapien fringilla ante, sed lobortis orci lectus in ante. Donec vel interdum est. Donec placerat cursus lacus, eu ultricies nisl tincidunt a. Fusce libero risus, sagittis eleifend iaculis aliquet, condimentum vitae diam. Suspendisse potenti. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Proin leo purus, sodales a venenatis luctus, faucibus ac enim. Sed id metus ac sem lobortis pretium. Mauris faucibus tempor scelerisque. Nunc vulputate interdum tortor, non tincidunt dui condimentum eget. Aenean in porttitor velit. Nam accumsan rhoncus risus id consectetur.</p> - <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nam rhoncus, felis interdum condimentum consectetur, nisl libero elementum eros, vehicula congue lacus eros non diam. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Vivamus mauris lorem, lacinia id tempus non, imperdiet et leo. Cras sit amet erat sit amet lacus egestas placerat. Aenean ultricies ultrices mauris ac congue. In vel tortor vel velit tristique tempus ac id nisi. Proin quis lorem velit. Nunc dui dui, blandit a ullamcorper vitae, congue fringilla lectus. Aliquam ultricies malesuada feugiat. Vestibulum placerat turpis et eros lobortis vel semper sapien pulvinar.</p> - <p>Pellentesque rhoncus aliquet porta. Sed vel magna eu turpis pharetra consequat ut vitae lectus. In molestie sollicitudin mi sit amet convallis. Aliquam erat volutpat. Nullam feugiat placerat ipsum eget malesuada. Nulla facilisis nunc non dolor vehicula pretium. Sed dui magna, sodales id pharetra non, ullamcorper eu sapien. Mauris ac consectetur leo. Mauris consequat, lectus ut bibendum pulvinar, leo magna feugiat enim, eu commodo lacus sem vel ante. Sed tempus metus eget leo mollis vulputate. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos.</p> - <p>Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Sed pulvinar rhoncus quam, vel semper tellus viverra id. Nulla rutrum porttitor odio, a rutrum purus gravida non. Etiam ac purus augue, eget vestibulum purus. Aenean venenatis ullamcorper augue, non consequat elit tempor sed. Donec velit sapien, volutpat sed ultricies egestas, semper a ante. Fusce dapibus, quam eget auctor suscipit, nibh leo posuere ante, at auctor nisi lacus in sem. Morbi interdum consectetur euismod. Cras accumsan est lacus. Nulla eleifend, eros vel consequat commodo, arcu nunc malesuada nunc, quis sagittis felis sem ac turpis.</p> - <p>Nulla rhoncus elementum convallis. Mauris condimentum aliquet egestas. Ut iaculis nisi eget tellus accumsan venenatis. Maecenas imperdiet aliquam porta. Aenean ultrices dolor sed quam laoreet varius. Curabitur condimentum blandit erat, quis accumsan eros interdum vitae. Curabitur ligula arcu, sollicitudin vitae iaculis sed, blandit sit amet enim. Morbi ullamcorper, metus vel mollis tristique, arcu turpis malesuada nisi, at dignissim lorem odio a orci. Proin ultrices, ipsum ut vestibulum interdum, libero felis auctor mi, vitae convallis nisl justo ac tellus. Integer nec lacinia turpis. Etiam massa nisl, rhoncus quis rutrum in, pretium eu leo. Proin a velit ut nulla laoreet vestibulum. Curabitur eu elit vitae felis auctor tincidunt. Curabitur tincidunt, metus sed sollicitudin cursus, quam elit commodo erat, ut tempor erat sapien vitae velit. Morbi nec viverra erat.</p> - <p>Nullam scelerisque facilisis pretium. Vivamus lectus leo, commodo ac sagittis ac, dictum a mi. Donec quis massa ut libero malesuada commodo in et risus. Fusce nunc dolor, aliquet vel rutrum in, molestie sit amet massa. Aliquam suscipit, justo a commodo condimentum, enim sapien fringilla ante, sed lobortis orci lectus in ante. Donec vel interdum est. Donec placerat cursus lacus, eu ultricies nisl tincidunt a. Fusce libero risus, sagittis eleifend iaculis aliquet, condimentum vitae diam. Suspendisse potenti. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Proin leo purus, sodales a venenatis luctus, faucibus ac enim. Sed id metus ac sem lobortis pretium. Mauris faucibus tempor scelerisque. Nunc vulputate interdum tortor, non tincidunt dui condimentum eget. Aenean in porttitor velit. Nam accumsan rhoncus risus id consectetur.</p> - </div> - -<pre class="prettyprint"> - $('#testDiv2').slimScroll({ - wheelStep: 100 - }); -</pre> - -</div> - -<script type="text/javascript"> - $(function(){ - - $('#testDiv').slimScroll({ - wheelStep: 20 - }); - - $('#testDiv2').slimScroll({ - wheelStep: 100 - }); - - }); -</script> - - -<script type="text/javascript"> - - //enable syntax highlighter - prettyPrint(); - - var _gaq = _gaq || []; - _gaq.push(['_setAccount', 'UA-3112455-22']); - _gaq.push(['_setDomainName', 'none']); - _gaq.push(['_trackPageview']); - - (function() { - var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true; - ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js'; - var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s); - })(); -</script> -</body> -</html> \ No newline at end of file diff --git a/admin/bower_components/jquery-slimscroll/examples/multiple-elements.html b/admin/bower_components/jquery-slimscroll/examples/multiple-elements.html deleted file mode 100644 index 8923825..0000000 --- a/admin/bower_components/jquery-slimscroll/examples/multiple-elements.html +++ /dev/null @@ -1,120 +0,0 @@ -<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> -<html> -<head> -<title>jquery.slimscroll - multiple elements</title> -<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> -<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.0/jquery.min.js"></script> - -<link href="libs/prettify/prettify.css" type="text/css" rel="stylesheet" /> -<script type="text/javascript" src="libs/prettify/prettify.js"></script> -<script type="text/javascript" src="../jquery.slimscroll.js"></script> -<link href="style.css" type="text/css" rel="stylesheet" /> -</head> -<body> -<a id="git-fork" href="https://github.com/rochal/jQuery-slimScroll"><img src="https://s3.amazonaws.com/github/ribbons/forkme_right_red_aa0000.png" alt="Fork me on GitHub"></a> - -<div class="examples"> -<div style="height:80px;float:left;"> - <div class="area"> - <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nam rhoncus, felis interdum condimentum consectetur, nisl libero elementum eros, vehicula congue lacus eros non diam. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Vivamus mauris lorem, lacinia id tempus non, imperdiet et leo. Cras sit amet erat sit amet lacus egestas placerat. Aenean ultricies ultrices mauris ac congue. In vel tortor vel velit tristique tempus ac id nisi. Proin quis lorem velit. Nunc dui dui, blandit a ullamcorper vitae, congue fringilla lectus. Aliquam ultricies malesuada feugiat. Vestibulum placerat turpis et eros lobortis vel semper sapien pulvinar.</p> - <p>Pellentesque rhoncus aliquet porta. Sed vel magna eu turpis pharetra consequat ut vitae lectus. In molestie sollicitudin mi sit amet convallis. Aliquam erat volutpat. Nullam feugiat placerat ipsum eget malesuada. Nulla facilisis nunc non dolor vehicula pretium. Sed dui magna, sodales id pharetra non, ullamcorper eu sapien. Mauris ac consectetur leo. Mauris consequat, lectus ut bibendum pulvinar, leo magna feugiat enim, eu commodo lacus sem vel ante. Sed tempus metus eget leo mollis vulputate. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos.</p> - <p>Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Sed pulvinar rhoncus quam, vel semper tellus viverra id. Nulla rutrum porttitor odio, a rutrum purus gravida non. Etiam ac purus augue, eget vestibulum purus. Aenean venenatis ullamcorper augue, non consequat elit tempor sed. Donec velit sapien, volutpat sed ultricies egestas, semper a ante. Fusce dapibus, quam eget auctor suscipit, nibh leo posuere ante, at auctor nisi lacus in sem. Morbi interdum consectetur euismod. Cras accumsan est lacus. Nulla eleifend, eros vel consequat commodo, arcu nunc malesuada nunc, quis sagittis felis sem ac turpis.</p> - <p>Nulla rhoncus elementum convallis. Mauris condimentum aliquet egestas. Ut iaculis nisi eget tellus accumsan venenatis. Maecenas imperdiet aliquam porta. Aenean ultrices dolor sed quam laoreet varius. Curabitur condimentum blandit erat, quis accumsan eros interdum vitae. Curabitur ligula arcu, sollicitudin vitae iaculis sed, blandit sit amet enim. Morbi ullamcorper, metus vel mollis tristique, arcu turpis malesuada nisi, at dignissim lorem odio a orci. Proin ultrices, ipsum ut vestibulum interdum, libero felis auctor mi, vitae convallis nisl justo ac tellus. Integer nec lacinia turpis. Etiam massa nisl, rhoncus quis rutrum in, pretium eu leo. Proin a velit ut nulla laoreet vestibulum. Curabitur eu elit vitae felis auctor tincidunt. Curabitur tincidunt, metus sed sollicitudin cursus, quam elit commodo erat, ut tempor erat sapien vitae velit. Morbi nec viverra erat.</p> - <p>Nullam scelerisque facilisis pretium. Vivamus lectus leo, commodo ac sagittis ac, dictum a mi. Donec quis massa ut libero malesuada commodo in et risus. Fusce nunc dolor, aliquet vel rutrum in, molestie sit amet massa. Aliquam suscipit, justo a commodo condimentum, enim sapien fringilla ante, sed lobortis orci lectus in ante. Donec vel interdum est. Donec placerat cursus lacus, eu ultricies nisl tincidunt a. Fusce libero risus, sagittis eleifend iaculis aliquet, condimentum vitae diam. Suspendisse potenti. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Proin leo purus, sodales a venenatis luctus, faucibus ac enim. Sed id metus ac sem lobortis pretium. Mauris faucibus tempor scelerisque. Nunc vulputate interdum tortor, non tincidunt dui condimentum eget. Aenean in porttitor velit. Nam accumsan rhoncus risus id consectetur.</p> - <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nam rhoncus, felis interdum condimentum consectetur, nisl libero elementum eros, vehicula congue lacus eros non diam. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Vivamus mauris lorem, lacinia id tempus non, imperdiet et leo. Cras sit amet erat sit amet lacus egestas placerat. Aenean ultricies ultrices mauris ac congue. In vel tortor vel velit tristique tempus ac id nisi. Proin quis lorem velit. Nunc dui dui, blandit a ullamcorper vitae, congue fringilla lectus. Aliquam ultricies malesuada feugiat. Vestibulum placerat turpis et eros lobortis vel semper sapien pulvinar.</p> - <p>Pellentesque rhoncus aliquet porta. Sed vel magna eu turpis pharetra consequat ut vitae lectus. In molestie sollicitudin mi sit amet convallis. Aliquam erat volutpat. Nullam feugiat placerat ipsum eget malesuada. Nulla facilisis nunc non dolor vehicula pretium. Sed dui magna, sodales id pharetra non, ullamcorper eu sapien. Mauris ac consectetur leo. Mauris consequat, lectus ut bibendum pulvinar, leo magna feugiat enim, eu commodo lacus sem vel ante. Sed tempus metus eget leo mollis vulputate. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos.</p> - <p>Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Sed pulvinar rhoncus quam, vel semper tellus viverra id. Nulla rutrum porttitor odio, a rutrum purus gravida non. Etiam ac purus augue, eget vestibulum purus. Aenean venenatis ullamcorper augue, non consequat elit tempor sed. Donec velit sapien, volutpat sed ultricies egestas, semper a ante. Fusce dapibus, quam eget auctor suscipit, nibh leo posuere ante, at auctor nisi lacus in sem. Morbi interdum consectetur euismod. Cras accumsan est lacus. Nulla eleifend, eros vel consequat commodo, arcu nunc malesuada nunc, quis sagittis felis sem ac turpis.</p> - <p>Nulla rhoncus elementum convallis. Mauris condimentum aliquet egestas. Ut iaculis nisi eget tellus accumsan venenatis. Maecenas imperdiet aliquam porta. Aenean ultrices dolor sed quam laoreet varius. Curabitur condimentum blandit erat, quis accumsan eros interdum vitae. Curabitur ligula arcu, sollicitudin vitae iaculis sed, blandit sit amet enim. Morbi ullamcorper, metus vel mollis tristique, arcu turpis malesuada nisi, at dignissim lorem odio a orci. Proin ultrices, ipsum ut vestibulum interdum, libero felis auctor mi, vitae convallis nisl justo ac tellus. Integer nec lacinia turpis. Etiam massa nisl, rhoncus quis rutrum in, pretium eu leo. Proin a velit ut nulla laoreet vestibulum. Curabitur eu elit vitae felis auctor tincidunt. Curabitur tincidunt, metus sed sollicitudin cursus, quam elit commodo erat, ut tempor erat sapien vitae velit. Morbi nec viverra erat.</p> - <p>Nullam scelerisque facilisis pretium. Vivamus lectus leo, commodo ac sagittis ac, dictum a mi. Donec quis massa ut libero malesuada commodo in et risus. Fusce nunc dolor, aliquet vel rutrum in, molestie sit amet massa. Aliquam suscipit, justo a commodo condimentum, enim sapien fringilla ante, sed lobortis orci lectus in ante. Donec vel interdum est. Donec placerat cursus lacus, eu ultricies nisl tincidunt a. Fusce libero risus, sagittis eleifend iaculis aliquet, condimentum vitae diam. Suspendisse potenti. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Proin leo purus, sodales a venenatis luctus, faucibus ac enim. Sed id metus ac sem lobortis pretium. Mauris faucibus tempor scelerisque. Nunc vulputate interdum tortor, non tincidunt dui condimentum eget. Aenean in porttitor velit. Nam accumsan rhoncus risus id consectetur.</p> - <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nam rhoncus, felis interdum condimentum consectetur, nisl libero elementum eros, vehicula congue lacus eros non diam. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Vivamus mauris lorem, lacinia id tempus non, imperdiet et leo. Cras sit amet erat sit amet lacus egestas placerat. Aenean ultricies ultrices mauris ac congue. In vel tortor vel velit tristique tempus ac id nisi. Proin quis lorem velit. Nunc dui dui, blandit a ullamcorper vitae, congue fringilla lectus. Aliquam ultricies malesuada feugiat. Vestibulum placerat turpis et eros lobortis vel semper sapien pulvinar.</p> - <p>Pellentesque rhoncus aliquet porta. Sed vel magna eu turpis pharetra consequat ut vitae lectus. In molestie sollicitudin mi sit amet convallis. Aliquam erat volutpat. Nullam feugiat placerat ipsum eget malesuada. Nulla facilisis nunc non dolor vehicula pretium. Sed dui magna, sodales id pharetra non, ullamcorper eu sapien. Mauris ac consectetur leo. Mauris consequat, lectus ut bibendum pulvinar, leo magna feugiat enim, eu commodo lacus sem vel ante. Sed tempus metus eget leo mollis vulputate. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos.</p> - <p>Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Sed pulvinar rhoncus quam, vel semper tellus viverra id. Nulla rutrum porttitor odio, a rutrum purus gravida non. Etiam ac purus augue, eget vestibulum purus. Aenean venenatis ullamcorper augue, non consequat elit tempor sed. Donec velit sapien, volutpat sed ultricies egestas, semper a ante. Fusce dapibus, quam eget auctor suscipit, nibh leo posuere ante, at auctor nisi lacus in sem. Morbi interdum consectetur euismod. Cras accumsan est lacus. Nulla eleifend, eros vel consequat commodo, arcu nunc malesuada nunc, quis sagittis felis sem ac turpis.</p> - <p>Nulla rhoncus elementum convallis. Mauris condimentum aliquet egestas. Ut iaculis nisi eget tellus accumsan venenatis. Maecenas imperdiet aliquam porta. Aenean ultrices dolor sed quam laoreet varius. Curabitur condimentum blandit erat, quis accumsan eros interdum vitae. Curabitur ligula arcu, sollicitudin vitae iaculis sed, blandit sit amet enim. Morbi ullamcorper, metus vel mollis tristique, arcu turpis malesuada nisi, at dignissim lorem odio a orci. Proin ultrices, ipsum ut vestibulum interdum, libero felis auctor mi, vitae convallis nisl justo ac tellus. Integer nec lacinia turpis. Etiam massa nisl, rhoncus quis rutrum in, pretium eu leo. Proin a velit ut nulla laoreet vestibulum. Curabitur eu elit vitae felis auctor tincidunt. Curabitur tincidunt, metus sed sollicitudin cursus, quam elit commodo erat, ut tempor erat sapien vitae velit. Morbi nec viverra erat.</p> - <p>Nullam scelerisque facilisis pretium. Vivamus lectus leo, commodo ac sagittis ac, dictum a mi. Donec quis massa ut libero malesuada commodo in et risus. Fusce nunc dolor, aliquet vel rutrum in, molestie sit amet massa. Aliquam suscipit, justo a commodo condimentum, enim sapien fringilla ante, sed lobortis orci lectus in ante. Donec vel interdum est. Donec placerat cursus lacus, eu ultricies nisl tincidunt a. Fusce libero risus, sagittis eleifend iaculis aliquet, condimentum vitae diam. Suspendisse potenti. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Proin leo purus, sodales a venenatis luctus, faucibus ac enim. Sed id metus ac sem lobortis pretium. Mauris faucibus tempor scelerisque. Nunc vulputate interdum tortor, non tincidunt dui condimentum eget. Aenean in porttitor velit. Nam accumsan rhoncus risus id consectetur.</p> - </div> -</div> -<div style="height:400px;float:left;"> - <div class="area"> - <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nam rhoncus, felis interdum condimentum consectetur, nisl libero elementum eros, vehicula congue lacus eros non diam. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Vivamus mauris lorem, lacinia id tempus non, imperdiet et leo. Cras sit amet erat sit amet lacus egestas placerat. Aenean ultricies ultrices mauris ac congue. In vel tortor vel velit tristique tempus ac id nisi. Proin quis lorem velit. Nunc dui dui, blandit a ullamcorper vitae, congue fringilla lectus. Aliquam ultricies malesuada feugiat. Vestibulum placerat turpis et eros lobortis vel semper sapien pulvinar.</p> - <p>Pellentesque rhoncus aliquet porta. Sed vel magna eu turpis pharetra consequat ut vitae lectus. In molestie sollicitudin mi sit amet convallis. Aliquam erat volutpat. Nullam feugiat placerat ipsum eget malesuada. Nulla facilisis nunc non dolor vehicula pretium. Sed dui magna, sodales id pharetra non, ullamcorper eu sapien. Mauris ac consectetur leo. Mauris consequat, lectus ut bibendum pulvinar, leo magna feugiat enim, eu commodo lacus sem vel ante. Sed tempus metus eget leo mollis vulputate. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos.</p> - <p>Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Sed pulvinar rhoncus quam, vel semper tellus viverra id. Nulla rutrum porttitor odio, a rutrum purus gravida non. Etiam ac purus augue, eget vestibulum purus. Aenean venenatis ullamcorper augue, non consequat elit tempor sed. Donec velit sapien, volutpat sed ultricies egestas, semper a ante. Fusce dapibus, quam eget auctor suscipit, nibh leo posuere ante, at auctor nisi lacus in sem. Morbi interdum consectetur euismod. Cras accumsan est lacus. Nulla eleifend, eros vel consequat commodo, arcu nunc malesuada nunc, quis sagittis felis sem ac turpis.</p> - <p>Nulla rhoncus elementum convallis. Mauris condimentum aliquet egestas. Ut iaculis nisi eget tellus accumsan venenatis. Maecenas imperdiet aliquam porta. Aenean ultrices dolor sed quam laoreet varius. Curabitur condimentum blandit erat, quis accumsan eros interdum vitae. Curabitur ligula arcu, sollicitudin vitae iaculis sed, blandit sit amet enim. Morbi ullamcorper, metus vel mollis tristique, arcu turpis malesuada nisi, at dignissim lorem odio a orci. Proin ultrices, ipsum ut vestibulum interdum, libero felis auctor mi, vitae convallis nisl justo ac tellus. Integer nec lacinia turpis. Etiam massa nisl, rhoncus quis rutrum in, pretium eu leo. Proin a velit ut nulla laoreet vestibulum. Curabitur eu elit vitae felis auctor tincidunt. Curabitur tincidunt, metus sed sollicitudin cursus, quam elit commodo erat, ut tempor erat sapien vitae velit. Morbi nec viverra erat.</p> - <p>Nullam scelerisque facilisis pretium. Vivamus lectus leo, commodo ac sagittis ac, dictum a mi. Donec quis massa ut libero malesuada commodo in et risus. Fusce nunc dolor, aliquet vel rutrum in, molestie sit amet massa. Aliquam suscipit, justo a commodo condimentum, enim sapien fringilla ante, sed lobortis orci lectus in ante. Donec vel interdum est. Donec placerat cursus lacus, eu ultricies nisl tincidunt a. Fusce libero risus, sagittis eleifend iaculis aliquet, condimentum vitae diam. Suspendisse potenti. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Proin leo purus, sodales a venenatis luctus, faucibus ac enim. Sed id metus ac sem lobortis pretium. Mauris faucibus tempor scelerisque. Nunc vulputate interdum tortor, non tincidunt dui condimentum eget. Aenean in porttitor velit. Nam accumsan rhoncus risus id consectetur.</p> - <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nam rhoncus, felis interdum condimentum consectetur, nisl libero elementum eros, vehicula congue lacus eros non diam. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Vivamus mauris lorem, lacinia id tempus non, imperdiet et leo. Cras sit amet erat sit amet lacus egestas placerat. Aenean ultricies ultrices mauris ac congue. In vel tortor vel velit tristique tempus ac id nisi. Proin quis lorem velit. Nunc dui dui, blandit a ullamcorper vitae, congue fringilla lectus. Aliquam ultricies malesuada feugiat. Vestibulum placerat turpis et eros lobortis vel semper sapien pulvinar.</p> - <p>Pellentesque rhoncus aliquet porta. Sed vel magna eu turpis pharetra consequat ut vitae lectus. In molestie sollicitudin mi sit amet convallis. Aliquam erat volutpat. Nullam feugiat placerat ipsum eget malesuada. Nulla facilisis nunc non dolor vehicula pretium. Sed dui magna, sodales id pharetra non, ullamcorper eu sapien. Mauris ac consectetur leo. Mauris consequat, lectus ut bibendum pulvinar, leo magna feugiat enim, eu commodo lacus sem vel ante. Sed tempus metus eget leo mollis vulputate. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos.</p> - <p>Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Sed pulvinar rhoncus quam, vel semper tellus viverra id. Nulla rutrum porttitor odio, a rutrum purus gravida non. Etiam ac purus augue, eget vestibulum purus. Aenean venenatis ullamcorper augue, non consequat elit tempor sed. Donec velit sapien, volutpat sed ultricies egestas, semper a ante. Fusce dapibus, quam eget auctor suscipit, nibh leo posuere ante, at auctor nisi lacus in sem. Morbi interdum consectetur euismod. Cras accumsan est lacus. Nulla eleifend, eros vel consequat commodo, arcu nunc malesuada nunc, quis sagittis felis sem ac turpis.</p> - <p>Nulla rhoncus elementum convallis. Mauris condimentum aliquet egestas. Ut iaculis nisi eget tellus accumsan venenatis. Maecenas imperdiet aliquam porta. Aenean ultrices dolor sed quam laoreet varius. Curabitur condimentum blandit erat, quis accumsan eros interdum vitae. Curabitur ligula arcu, sollicitudin vitae iaculis sed, blandit sit amet enim. Morbi ullamcorper, metus vel mollis tristique, arcu turpis malesuada nisi, at dignissim lorem odio a orci. Proin ultrices, ipsum ut vestibulum interdum, libero felis auctor mi, vitae convallis nisl justo ac tellus. Integer nec lacinia turpis. Etiam massa nisl, rhoncus quis rutrum in, pretium eu leo. Proin a velit ut nulla laoreet vestibulum. Curabitur eu elit vitae felis auctor tincidunt. Curabitur tincidunt, metus sed sollicitudin cursus, quam elit commodo erat, ut tempor erat sapien vitae velit. Morbi nec viverra erat.</p> - <p>Nullam scelerisque facilisis pretium. Vivamus lectus leo, commodo ac sagittis ac, dictum a mi. Donec quis massa ut libero malesuada commodo in et risus. Fusce nunc dolor, aliquet vel rutrum in, molestie sit amet massa. Aliquam suscipit, justo a commodo condimentum, enim sapien fringilla ante, sed lobortis orci lectus in ante. Donec vel interdum est. Donec placerat cursus lacus, eu ultricies nisl tincidunt a. Fusce libero risus, sagittis eleifend iaculis aliquet, condimentum vitae diam. Suspendisse potenti. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Proin leo purus, sodales a venenatis luctus, faucibus ac enim. Sed id metus ac sem lobortis pretium. Mauris faucibus tempor scelerisque. Nunc vulputate interdum tortor, non tincidunt dui condimentum eget. Aenean in porttitor velit. Nam accumsan rhoncus risus id consectetur.</p> - <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nam rhoncus, felis interdum condimentum consectetur, nisl libero elementum eros, vehicula congue lacus eros non diam. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Vivamus mauris lorem, lacinia id tempus non, imperdiet et leo. Cras sit amet erat sit amet lacus egestas placerat. Aenean ultricies ultrices mauris ac congue. In vel tortor vel velit tristique tempus ac id nisi. Proin quis lorem velit. Nunc dui dui, blandit a ullamcorper vitae, congue fringilla lectus. Aliquam ultricies malesuada feugiat. Vestibulum placerat turpis et eros lobortis vel semper sapien pulvinar.</p> - <p>Pellentesque rhoncus aliquet porta. Sed vel magna eu turpis pharetra consequat ut vitae lectus. In molestie sollicitudin mi sit amet convallis. Aliquam erat volutpat. Nullam feugiat placerat ipsum eget malesuada. Nulla facilisis nunc non dolor vehicula pretium. Sed dui magna, sodales id pharetra non, ullamcorper eu sapien. Mauris ac consectetur leo. Mauris consequat, lectus ut bibendum pulvinar, leo magna feugiat enim, eu commodo lacus sem vel ante. Sed tempus metus eget leo mollis vulputate. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos.</p> - <p>Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Sed pulvinar rhoncus quam, vel semper tellus viverra id. Nulla rutrum porttitor odio, a rutrum purus gravida non. Etiam ac purus augue, eget vestibulum purus. Aenean venenatis ullamcorper augue, non consequat elit tempor sed. Donec velit sapien, volutpat sed ultricies egestas, semper a ante. Fusce dapibus, quam eget auctor suscipit, nibh leo posuere ante, at auctor nisi lacus in sem. Morbi interdum consectetur euismod. Cras accumsan est lacus. Nulla eleifend, eros vel consequat commodo, arcu nunc malesuada nunc, quis sagittis felis sem ac turpis.</p> - <p>Nulla rhoncus elementum convallis. Mauris condimentum aliquet egestas. Ut iaculis nisi eget tellus accumsan venenatis. Maecenas imperdiet aliquam porta. Aenean ultrices dolor sed quam laoreet varius. Curabitur condimentum blandit erat, quis accumsan eros interdum vitae. Curabitur ligula arcu, sollicitudin vitae iaculis sed, blandit sit amet enim. Morbi ullamcorper, metus vel mollis tristique, arcu turpis malesuada nisi, at dignissim lorem odio a orci. Proin ultrices, ipsum ut vestibulum interdum, libero felis auctor mi, vitae convallis nisl justo ac tellus. Integer nec lacinia turpis. Etiam massa nisl, rhoncus quis rutrum in, pretium eu leo. Proin a velit ut nulla laoreet vestibulum. Curabitur eu elit vitae felis auctor tincidunt. Curabitur tincidunt, metus sed sollicitudin cursus, quam elit commodo erat, ut tempor erat sapien vitae velit. Morbi nec viverra erat.</p> - <p>Nullam scelerisque facilisis pretium. Vivamus lectus leo, commodo ac sagittis ac, dictum a mi. Donec quis massa ut libero malesuada commodo in et risus. Fusce nunc dolor, aliquet vel rutrum in, molestie sit amet massa. Aliquam suscipit, justo a commodo condimentum, enim sapien fringilla ante, sed lobortis orci lectus in ante. Donec vel interdum est. Donec placerat cursus lacus, eu ultricies nisl tincidunt a. Fusce libero risus, sagittis eleifend iaculis aliquet, condimentum vitae diam. Suspendisse potenti. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Proin leo purus, sodales a venenatis luctus, faucibus ac enim. Sed id metus ac sem lobortis pretium. Mauris faucibus tempor scelerisque. Nunc vulputate interdum tortor, non tincidunt dui condimentum eget. Aenean in porttitor velit. Nam accumsan rhoncus risus id consectetur.</p> - </div> -</div> -<div style="height:300px;float:left;"> - <div class="area"> - <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nam rhoncus, felis interdum condimentum consectetur, nisl libero elementum eros, vehicula congue lacus eros non diam. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Vivamus mauris lorem, lacinia id tempus non, imperdiet et leo. Cras sit amet erat sit amet lacus egestas placerat. Aenean ultricies ultrices mauris ac congue. In vel tortor vel velit tristique tempus ac id nisi. Proin quis lorem velit. Nunc dui dui, blandit a ullamcorper vitae, congue fringilla lectus. Aliquam ultricies malesuada feugiat. Vestibulum placerat turpis et eros lobortis vel semper sapien pulvinar.</p> - <p>Pellentesque rhoncus aliquet porta. Sed vel magna eu turpis pharetra consequat ut vitae lectus. In molestie sollicitudin mi sit amet convallis. Aliquam erat volutpat. Nullam feugiat placerat ipsum eget malesuada. Nulla facilisis nunc non dolor vehicula pretium. Sed dui magna, sodales id pharetra non, ullamcorper eu sapien. Mauris ac consectetur leo. Mauris consequat, lectus ut bibendum pulvinar, leo magna feugiat enim, eu commodo lacus sem vel ante. Sed tempus metus eget leo mollis vulputate. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos.</p> - <p>Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Sed pulvinar rhoncus quam, vel semper tellus viverra id. Nulla rutrum porttitor odio, a rutrum purus gravida non. Etiam ac purus augue, eget vestibulum purus. Aenean venenatis ullamcorper augue, non consequat elit tempor sed. Donec velit sapien, volutpat sed ultricies egestas, semper a ante. Fusce dapibus, quam eget auctor suscipit, nibh leo posuere ante, at auctor nisi lacus in sem. Morbi interdum consectetur euismod. Cras accumsan est lacus. Nulla eleifend, eros vel consequat commodo, arcu nunc malesuada nunc, quis sagittis felis sem ac turpis.</p> - <p>Nulla rhoncus elementum convallis. Mauris condimentum aliquet egestas. Ut iaculis nisi eget tellus accumsan venenatis. Maecenas imperdiet aliquam porta. Aenean ultrices dolor sed quam laoreet varius. Curabitur condimentum blandit erat, quis accumsan eros interdum vitae. Curabitur ligula arcu, sollicitudin vitae iaculis sed, blandit sit amet enim. Morbi ullamcorper, metus vel mollis tristique, arcu turpis malesuada nisi, at dignissim lorem odio a orci. Proin ultrices, ipsum ut vestibulum interdum, libero felis auctor mi, vitae convallis nisl justo ac tellus. Integer nec lacinia turpis. Etiam massa nisl, rhoncus quis rutrum in, pretium eu leo. Proin a velit ut nulla laoreet vestibulum. Curabitur eu elit vitae felis auctor tincidunt. Curabitur tincidunt, metus sed sollicitudin cursus, quam elit commodo erat, ut tempor erat sapien vitae velit. Morbi nec viverra erat.</p> - <p>Nullam scelerisque facilisis pretium. Vivamus lectus leo, commodo ac sagittis ac, dictum a mi. Donec quis massa ut libero malesuada commodo in et risus. Fusce nunc dolor, aliquet vel rutrum in, molestie sit amet massa. Aliquam suscipit, justo a commodo condimentum, enim sapien fringilla ante, sed lobortis orci lectus in ante. Donec vel interdum est. Donec placerat cursus lacus, eu ultricies nisl tincidunt a. Fusce libero risus, sagittis eleifend iaculis aliquet, condimentum vitae diam. Suspendisse potenti. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Proin leo purus, sodales a venenatis luctus, faucibus ac enim. Sed id metus ac sem lobortis pretium. Mauris faucibus tempor scelerisque. Nunc vulputate interdum tortor, non tincidunt dui condimentum eget. Aenean in porttitor velit. Nam accumsan rhoncus risus id consectetur.</p> - <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nam rhoncus, felis interdum condimentum consectetur, nisl libero elementum eros, vehicula congue lacus eros non diam. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Vivamus mauris lorem, lacinia id tempus non, imperdiet et leo. Cras sit amet erat sit amet lacus egestas placerat. Aenean ultricies ultrices mauris ac congue. In vel tortor vel velit tristique tempus ac id nisi. Proin quis lorem velit. Nunc dui dui, blandit a ullamcorper vitae, congue fringilla lectus. Aliquam ultricies malesuada feugiat. Vestibulum placerat turpis et eros lobortis vel semper sapien pulvinar.</p> - <p>Pellentesque rhoncus aliquet porta. Sed vel magna eu turpis pharetra consequat ut vitae lectus. In molestie sollicitudin mi sit amet convallis. Aliquam erat volutpat. Nullam feugiat placerat ipsum eget malesuada. Nulla facilisis nunc non dolor vehicula pretium. Sed dui magna, sodales id pharetra non, ullamcorper eu sapien. Mauris ac consectetur leo. Mauris consequat, lectus ut bibendum pulvinar, leo magna feugiat enim, eu commodo lacus sem vel ante. Sed tempus metus eget leo mollis vulputate. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos.</p> - <p>Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Sed pulvinar rhoncus quam, vel semper tellus viverra id. Nulla rutrum porttitor odio, a rutrum purus gravida non. Etiam ac purus augue, eget vestibulum purus. Aenean venenatis ullamcorper augue, non consequat elit tempor sed. Donec velit sapien, volutpat sed ultricies egestas, semper a ante. Fusce dapibus, quam eget auctor suscipit, nibh leo posuere ante, at auctor nisi lacus in sem. Morbi interdum consectetur euismod. Cras accumsan est lacus. Nulla eleifend, eros vel consequat commodo, arcu nunc malesuada nunc, quis sagittis felis sem ac turpis.</p> - <p>Nulla rhoncus elementum convallis. Mauris condimentum aliquet egestas. Ut iaculis nisi eget tellus accumsan venenatis. Maecenas imperdiet aliquam porta. Aenean ultrices dolor sed quam laoreet varius. Curabitur condimentum blandit erat, quis accumsan eros interdum vitae. Curabitur ligula arcu, sollicitudin vitae iaculis sed, blandit sit amet enim. Morbi ullamcorper, metus vel mollis tristique, arcu turpis malesuada nisi, at dignissim lorem odio a orci. Proin ultrices, ipsum ut vestibulum interdum, libero felis auctor mi, vitae convallis nisl justo ac tellus. Integer nec lacinia turpis. Etiam massa nisl, rhoncus quis rutrum in, pretium eu leo. Proin a velit ut nulla laoreet vestibulum. Curabitur eu elit vitae felis auctor tincidunt. Curabitur tincidunt, metus sed sollicitudin cursus, quam elit commodo erat, ut tempor erat sapien vitae velit. Morbi nec viverra erat.</p> - <p>Nullam scelerisque facilisis pretium. Vivamus lectus leo, commodo ac sagittis ac, dictum a mi. Donec quis massa ut libero malesuada commodo in et risus. Fusce nunc dolor, aliquet vel rutrum in, molestie sit amet massa. Aliquam suscipit, justo a commodo condimentum, enim sapien fringilla ante, sed lobortis orci lectus in ante. Donec vel interdum est. Donec placerat cursus lacus, eu ultricies nisl tincidunt a. Fusce libero risus, sagittis eleifend iaculis aliquet, condimentum vitae diam. Suspendisse potenti. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Proin leo purus, sodales a venenatis luctus, faucibus ac enim. Sed id metus ac sem lobortis pretium. Mauris faucibus tempor scelerisque. Nunc vulputate interdum tortor, non tincidunt dui condimentum eget. Aenean in porttitor velit. Nam accumsan rhoncus risus id consectetur.</p> - <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nam rhoncus, felis interdum condimentum consectetur, nisl libero elementum eros, vehicula congue lacus eros non diam. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Vivamus mauris lorem, lacinia id tempus non, imperdiet et leo. Cras sit amet erat sit amet lacus egestas placerat. Aenean ultricies ultrices mauris ac congue. In vel tortor vel velit tristique tempus ac id nisi. Proin quis lorem velit. Nunc dui dui, blandit a ullamcorper vitae, congue fringilla lectus. Aliquam ultricies malesuada feugiat. Vestibulum placerat turpis et eros lobortis vel semper sapien pulvinar.</p> - <p>Pellentesque rhoncus aliquet porta. Sed vel magna eu turpis pharetra consequat ut vitae lectus. In molestie sollicitudin mi sit amet convallis. Aliquam erat volutpat. Nullam feugiat placerat ipsum eget malesuada. Nulla facilisis nunc non dolor vehicula pretium. Sed dui magna, sodales id pharetra non, ullamcorper eu sapien. Mauris ac consectetur leo. Mauris consequat, lectus ut bibendum pulvinar, leo magna feugiat enim, eu commodo lacus sem vel ante. Sed tempus metus eget leo mollis vulputate. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos.</p> - <p>Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Sed pulvinar rhoncus quam, vel semper tellus viverra id. Nulla rutrum porttitor odio, a rutrum purus gravida non. Etiam ac purus augue, eget vestibulum purus. Aenean venenatis ullamcorper augue, non consequat elit tempor sed. Donec velit sapien, volutpat sed ultricies egestas, semper a ante. Fusce dapibus, quam eget auctor suscipit, nibh leo posuere ante, at auctor nisi lacus in sem. Morbi interdum consectetur euismod. Cras accumsan est lacus. Nulla eleifend, eros vel consequat commodo, arcu nunc malesuada nunc, quis sagittis felis sem ac turpis.</p> - <p>Nulla rhoncus elementum convallis. Mauris condimentum aliquet egestas. Ut iaculis nisi eget tellus accumsan venenatis. Maecenas imperdiet aliquam porta. Aenean ultrices dolor sed quam laoreet varius. Curabitur condimentum blandit erat, quis accumsan eros interdum vitae. Curabitur ligula arcu, sollicitudin vitae iaculis sed, blandit sit amet enim. Morbi ullamcorper, metus vel mollis tristique, arcu turpis malesuada nisi, at dignissim lorem odio a orci. Proin ultrices, ipsum ut vestibulum interdum, libero felis auctor mi, vitae convallis nisl justo ac tellus. Integer nec lacinia turpis. Etiam massa nisl, rhoncus quis rutrum in, pretium eu leo. Proin a velit ut nulla laoreet vestibulum. Curabitur eu elit vitae felis auctor tincidunt. Curabitur tincidunt, metus sed sollicitudin cursus, quam elit commodo erat, ut tempor erat sapien vitae velit. Morbi nec viverra erat.</p> - <p>Nullam scelerisque facilisis pretium. Vivamus lectus leo, commodo ac sagittis ac, dictum a mi. Donec quis massa ut libero malesuada commodo in et risus. Fusce nunc dolor, aliquet vel rutrum in, molestie sit amet massa. Aliquam suscipit, justo a commodo condimentum, enim sapien fringilla ante, sed lobortis orci lectus in ante. Donec vel interdum est. Donec placerat cursus lacus, eu ultricies nisl tincidunt a. Fusce libero risus, sagittis eleifend iaculis aliquet, condimentum vitae diam. Suspendisse potenti. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Proin leo purus, sodales a venenatis luctus, faucibus ac enim. Sed id metus ac sem lobortis pretium. Mauris faucibus tempor scelerisque. Nunc vulputate interdum tortor, non tincidunt dui condimentum eget. Aenean in porttitor velit. Nam accumsan rhoncus risus id consectetur.</p> - </div> -</div> - -<div style="clear:both"></div> -<pre class="prettyprint"> - $('.area').slimscroll({ - width: '200px', - }).parent().css({ - 'float': 'left', - 'margin-right': '30px' - }); -</pre> - -<div style="clear:both"></div> -</div> - -<script type="text/javascript"> - $(function(){ - - $('.area').slimscroll({ - width: '200px', - height: 'auto' - }).parent().css({ - 'float': 'left', - 'margin-right': '30px' - }); - - }); -</script> - - -<script type="text/javascript"> - - //enable syntax highlighter - prettyPrint(); - - var _gaq = _gaq || []; - _gaq.push(['_setAccount', 'UA-3112455-22']); - _gaq.push(['_setDomainName', 'none']); - _gaq.push(['_trackPageview']); - - (function() { - var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true; - ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js'; - var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s); - })(); -</script> -</body> -</html> \ No newline at end of file diff --git a/admin/bower_components/jquery-slimscroll/examples/navigation.html b/admin/bower_components/jquery-slimscroll/examples/navigation.html deleted file mode 100644 index 2df6272..0000000 --- a/admin/bower_components/jquery-slimscroll/examples/navigation.html +++ /dev/null @@ -1,30 +0,0 @@ -<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> -<html> -<head> -<title>jquery.slimscroll - navigation</title> -<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> -<link href="style.css" type="text/css" rel="stylesheet" /> -</head> -<body> -<div id="nav"> - <h1>jQuery slimScroll</h1> - <h2>Facebook-style jQuery Scrollbar</h1> - <hr /> - <ul> - <li><a target="main" href="height-width.html">Height / Width options</a></li> - <li><a target="main" href="scrollbar.html">Scrollbar options</a></li> - <li><a target="main" href="rail.html">Rail options</a></li> - <li><a target="main" href="start-position.html">Start position</a></li> - <li><a target="main" href="chaining.html">Chaining</a></li> - <li><a target="main" href="multiple-elements.html">Mulitple bindings</a></li> - <li><a target="main" href="programmatic-scrolling.html">Programmatic Scrolling</a></li> - <li><a target="main" href="scroll-events.html">Scroll Events</a></li> - <li><a target="main" href="allow-page-scroll.html">allowPageScroll option</a></li> - <li><a target="main" href="disable-fade-out.html">disableFadeOut option</a></li> - <li><a target="main" href="mouse-wheel.html">wheelStep option</a></li> - <li><a target="main" href="nested.html">nested elements</a></li> - <li><a target="main" href="dynamic-content.html">dynamic content</a></li> - </ul> -</div> -</body> -</html> \ No newline at end of file diff --git a/admin/bower_components/jquery-slimscroll/examples/nested.html b/admin/bower_components/jquery-slimscroll/examples/nested.html deleted file mode 100644 index 92bd599..0000000 --- a/admin/bower_components/jquery-slimscroll/examples/nested.html +++ /dev/null @@ -1,82 +0,0 @@ -<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> -<html> -<head> -<title>jquery.slimscroll - nested elements</title> -<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> -<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.0/jquery.min.js"></script> - -<link href="libs/prettify/prettify.css" type="text/css" rel="stylesheet" /> -<script type="text/javascript" src="libs/prettify/prettify.js"></script> -<script type="text/javascript" src="../jquery.slimscroll.js"></script> -<link href="style.css" type="text/css" rel="stylesheet" /> -</head> -<body> -<a id="git-fork" href="https://github.com/rochal/jQuery-slimScroll"><img src="https://s3.amazonaws.com/github/ribbons/forkme_right_red_aa0000.png" alt="Fork me on GitHub"></a> - -<div class="examples"> - <div id="testDiv"> - <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nam rhoncus, felis interdum condimentum consectetur, nisl libero elementum eros, vehicula congue lacus eros non diam. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Vivamus mauris lorem, lacinia id tempus non, imperdiet et leo. Cras sit amet erat sit amet lacus egestas placerat. Aenean ultricies ultrices mauris ac congue. In vel tortor vel velit tristique tempus ac id nisi. Proin quis lorem velit. Nunc dui dui, blandit a ullamcorper vitae, congue fringilla lectus. Aliquam ultricies malesuada feugiat. Vestibulum placerat turpis et eros lobortis vel semper sapien pulvinar.</p> - <div id="testDivNested"> - <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nam rhoncus, felis interdum condimentum consectetur, nisl libero elementum eros, vehicula congue lacus eros non diam. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Vivamus mauris lorem, lacinia id tempus non, imperdiet et leo. Cras sit amet erat sit amet lacus egestas placerat. Aenean ultricies ultrices mauris ac congue. In vel tortor vel velit tristique tempus ac id nisi. Proin quis lorem velit. Nunc dui dui, blandit a ullamcorper vitae, congue fringilla lectus. Aliquam ultricies malesuada feugiat. Vestibulum placerat turpis et eros lobortis vel semper sapien pulvinar.</p> - <p>Pellentesque rhoncus aliquet porta. Sed vel magna eu turpis pharetra consequat ut vitae lectus. In molestie sollicitudin mi sit amet convallis. Aliquam erat volutpat. Nullam feugiat placerat ipsum eget malesuada. Nulla facilisis nunc non dolor vehicula pretium. Sed dui magna, sodales id pharetra non, ullamcorper eu sapien. Mauris ac consectetur leo. Mauris consequat, lectus ut bibendum pulvinar, leo magna feugiat enim, eu commodo lacus sem vel ante. Sed tempus metus eget leo mollis vulputate. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos.</p> - <p>Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Sed pulvinar rhoncus quam, vel semper tellus viverra id. Nulla rutrum porttitor odio, a rutrum purus gravida non. Etiam ac purus augue, eget vestibulum purus. Aenean venenatis ullamcorper augue, non consequat elit tempor sed. Donec velit sapien, volutpat sed ultricies egestas, semper a ante. Fusce dapibus, quam eget auctor suscipit, nibh leo posuere ante, at auctor nisi lacus in sem. Morbi interdum consectetur euismod. Cras accumsan est lacus. Nulla eleifend, eros vel consequat commodo, arcu nunc malesuada nunc, quis sagittis felis sem ac turpis.</p> - <p>Nulla rhoncus elementum convallis. Mauris condimentum aliquet egestas. Ut iaculis nisi eget tellus accumsan venenatis. Maecenas imperdiet aliquam porta. Aenean ultrices dolor sed quam laoreet varius. Curabitur condimentum blandit erat, quis accumsan eros interdum vitae. Curabitur ligula arcu, sollicitudin vitae iaculis sed, blandit sit amet enim. Morbi ullamcorper, metus vel mollis tristique, arcu turpis malesuada nisi, at dignissim lorem odio a orci. Proin ultrices, ipsum ut vestibulum interdum, libero felis auctor mi, vitae convallis nisl justo ac tellus. Integer nec lacinia turpis. Etiam massa nisl, rhoncus quis rutrum in, pretium eu leo. Proin a velit ut nulla laoreet vestibulum. Curabitur eu elit vitae felis auctor tincidunt. Curabitur tincidunt, metus sed sollicitudin cursus, quam elit commodo erat, ut tempor erat sapien vitae velit. Morbi nec viverra erat.</p> - <p>Nullam scelerisque facilisis pretium. Vivamus lectus leo, commodo ac sagittis ac, dictum a mi. Donec quis massa ut libero malesuada commodo in et risus. Fusce nunc dolor, aliquet vel rutrum in, molestie sit amet massa. Aliquam suscipit, justo a commodo condimentum, enim sapien fringilla ante, sed lobortis orci lectus in ante. Donec vel interdum est. Donec placerat cursus lacus, eu ultricies nisl tincidunt a. Fusce libero risus, sagittis eleifend iaculis aliquet, condimentum vitae diam. Suspendisse potenti. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Proin leo purus, sodales a venenatis luctus, faucibus ac enim. Sed id metus ac sem lobortis pretium. Mauris faucibus tempor scelerisque. Nunc vulputate interdum tortor, non tincidunt dui condimentum eget. Aenean in porttitor velit. Nam accumsan rhoncus risus id consectetur.</p> - <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nam rhoncus, felis interdum condimentum consectetur, nisl libero elementum eros, vehicula congue lacus eros non diam. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Vivamus mauris lorem, lacinia id tempus non, imperdiet et leo. Cras sit amet erat sit amet lacus egestas placerat. Aenean ultricies ultrices mauris ac congue. In vel tortor vel velit tristique tempus ac id nisi. Proin quis lorem velit. Nunc dui dui, blandit a ullamcorper vitae, congue fringilla lectus. Aliquam ultricies malesuada feugiat. Vestibulum placerat turpis et eros lobortis vel semper sapien pulvinar.</p> - </div> - <p>Pellentesque rhoncus aliquet porta. Sed vel magna eu turpis pharetra consequat ut vitae lectus. In molestie sollicitudin mi sit amet convallis. Aliquam erat volutpat. Nullam feugiat placerat ipsum eget malesuada. Nulla facilisis nunc non dolor vehicula pretium. Sed dui magna, sodales id pharetra non, ullamcorper eu sapien. Mauris ac consectetur leo. Mauris consequat, lectus ut bibendum pulvinar, leo magna feugiat enim, eu commodo lacus sem vel ante. Sed tempus metus eget leo mollis vulputate. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos.</p> - <p>Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Sed pulvinar rhoncus quam, vel semper tellus viverra id. Nulla rutrum porttitor odio, a rutrum purus gravida non. Etiam ac purus augue, eget vestibulum purus. Aenean venenatis ullamcorper augue, non consequat elit tempor sed. Donec velit sapien, volutpat sed ultricies egestas, semper a ante. Fusce dapibus, quam eget auctor suscipit, nibh leo posuere ante, at auctor nisi lacus in sem. Morbi interdum consectetur euismod. Cras accumsan est lacus. Nulla eleifend, eros vel consequat commodo, arcu nunc malesuada nunc, quis sagittis felis sem ac turpis.</p> - <p>Nulla rhoncus elementum convallis. Mauris condimentum aliquet egestas. Ut iaculis nisi eget tellus accumsan venenatis. Maecenas imperdiet aliquam porta. Aenean ultrices dolor sed quam laoreet varius. Curabitur condimentum blandit erat, quis accumsan eros interdum vitae. Curabitur ligula arcu, sollicitudin vitae iaculis sed, blandit sit amet enim. Morbi ullamcorper, metus vel mollis tristique, arcu turpis malesuada nisi, at dignissim lorem odio a orci. Proin ultrices, ipsum ut vestibulum interdum, libero felis auctor mi, vitae convallis nisl justo ac tellus. Integer nec lacinia turpis. Etiam massa nisl, rhoncus quis rutrum in, pretium eu leo. Proin a velit ut nulla laoreet vestibulum. Curabitur eu elit vitae felis auctor tincidunt. Curabitur tincidunt, metus sed sollicitudin cursus, quam elit commodo erat, ut tempor erat sapien vitae velit. Morbi nec viverra erat.</p> - <p>Nullam scelerisque facilisis pretium. Vivamus lectus leo, commodo ac sagittis ac, dictum a mi. Donec quis massa ut libero malesuada commodo in et risus. Fusce nunc dolor, aliquet vel rutrum in, molestie sit amet massa. Aliquam suscipit, justo a commodo condimentum, enim sapien fringilla ante, sed lobortis orci lectus in ante. Donec vel interdum est. Donec placerat cursus lacus, eu ultricies nisl tincidunt a. Fusce libero risus, sagittis eleifend iaculis aliquet, condimentum vitae diam. Suspendisse potenti. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Proin leo purus, sodales a venenatis luctus, faucibus ac enim. Sed id metus ac sem lobortis pretium. Mauris faucibus tempor scelerisque. Nunc vulputate interdum tortor, non tincidunt dui condimentum eget. Aenean in porttitor velit. Nam accumsan rhoncus risus id consectetur.</p> - <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nam rhoncus, felis interdum condimentum consectetur, nisl libero elementum eros, vehicula congue lacus eros non diam. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Vivamus mauris lorem, lacinia id tempus non, imperdiet et leo. Cras sit amet erat sit amet lacus egestas placerat. Aenean ultricies ultrices mauris ac congue. In vel tortor vel velit tristique tempus ac id nisi. Proin quis lorem velit. Nunc dui dui, blandit a ullamcorper vitae, congue fringilla lectus. Aliquam ultricies malesuada feugiat. Vestibulum placerat turpis et eros lobortis vel semper sapien pulvinar.</p> - </div> - -<pre class="prettyprint"> - $('#testDiv').slimscroll({ - height: '500px' - }); - $('#testDivNested').slimscroll({ - width: '300px', - height: '200px' - }); -</pre> - - -</div> - -<script type="text/javascript"> - $(function(){ - - $('#testDiv').slimscroll({ - height: '500px' - }); - $('#testDivNested').slimscroll({ - width: '300px', - height: '200px' - }).parent().css({ - 'float': 'left', - 'margin': '0 10px 10px 0' - }); - - }); -</script> - - -<script type="text/javascript"> - - //enable syntax highlighter - prettyPrint(); - - var _gaq = _gaq || []; - _gaq.push(['_setAccount', 'UA-3112455-22']); - _gaq.push(['_setDomainName', 'none']); - _gaq.push(['_trackPageview']); - - (function() { - var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true; - ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js'; - var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s); - })(); -</script> -</body> -</html> \ No newline at end of file diff --git a/admin/bower_components/jquery-slimscroll/examples/programmatic-scrolling.html b/admin/bower_components/jquery-slimscroll/examples/programmatic-scrolling.html deleted file mode 100644 index 163e753..0000000 --- a/admin/bower_components/jquery-slimscroll/examples/programmatic-scrolling.html +++ /dev/null @@ -1,138 +0,0 @@ -<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> -<html> -<head> -<title>jquery.slimscroll - programmatic scrolling</title> -<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> -<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.0/jquery.min.js"></script> - -<link href="libs/prettify/prettify.css" type="text/css" rel="stylesheet" /> -<script type="text/javascript" src="libs/prettify/prettify.js"></script> -<script type="text/javascript" src="../jquery.slimscroll.js"></script> -<link href="style.css" type="text/css" rel="stylesheet" /> -</head> -<body> -<a id="git-fork" href="https://github.com/rochal/jQuery-slimScroll"><img src="https://s3.amazonaws.com/github/ribbons/forkme_right_red_aa0000.png" alt="Fork me on GitHub"></a> - -<div class="examples"> - <div id="testDiv"> - <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nam rhoncus, felis interdum condimentum consectetur, nisl libero elementum eros, vehicula congue lacus eros non diam. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Vivamus mauris lorem, lacinia id tempus non, imperdiet et leo. Cras sit amet erat sit amet lacus egestas placerat. Aenean ultricies ultrices mauris ac congue. In vel tortor vel velit tristique tempus ac id nisi. Proin quis lorem velit. Nunc dui dui, blandit a ullamcorper vitae, congue fringilla lectus. Aliquam ultricies malesuada feugiat. Vestibulum placerat turpis et eros lobortis vel semper sapien pulvinar.</p> - <p>Pellentesque rhoncus aliquet porta. Sed vel magna eu turpis pharetra consequat ut vitae lectus. In molestie sollicitudin mi sit amet convallis. Aliquam erat volutpat. Nullam feugiat placerat ipsum eget malesuada. Nulla facilisis nunc non dolor vehicula pretium. Sed dui magna, sodales id pharetra non, ullamcorper eu sapien. Mauris ac consectetur leo. Mauris consequat, lectus ut bibendum pulvinar, leo magna feugiat enim, eu commodo lacus sem vel ante. Sed tempus metus eget leo mollis vulputate. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos.</p> - <p>Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Sed pulvinar rhoncus quam, vel semper tellus viverra id. Nulla rutrum porttitor odio, a rutrum purus gravida non. Etiam ac purus augue, eget vestibulum purus. Aenean venenatis ullamcorper augue, non consequat elit tempor sed. Donec velit sapien, volutpat sed ultricies egestas, semper a ante. Fusce dapibus, quam eget auctor suscipit, nibh leo posuere ante, at auctor nisi lacus in sem. Morbi interdum consectetur euismod. Cras accumsan est lacus. Nulla eleifend, eros vel consequat commodo, arcu nunc malesuada nunc, quis sagittis felis sem ac turpis.</p> - <p>Nulla rhoncus elementum convallis. Mauris condimentum aliquet egestas. Ut iaculis nisi eget tellus accumsan venenatis. Maecenas imperdiet aliquam porta. Aenean ultrices dolor sed quam laoreet varius. Curabitur condimentum blandit erat, quis accumsan eros interdum vitae. Curabitur ligula arcu, sollicitudin vitae iaculis sed, blandit sit amet enim. Morbi ullamcorper, metus vel mollis tristique, arcu turpis malesuada nisi, at dignissim lorem odio a orci. Proin ultrices, ipsum ut vestibulum interdum, libero felis auctor mi, vitae convallis nisl justo ac tellus. Integer nec lacinia turpis. Etiam massa nisl, rhoncus quis rutrum in, pretium eu leo. Proin a velit ut nulla laoreet vestibulum. Curabitur eu elit vitae felis auctor tincidunt. Curabitur tincidunt, metus sed sollicitudin cursus, quam elit commodo erat, ut tempor erat sapien vitae velit. Morbi nec viverra erat.</p> - <p>Nullam scelerisque facilisis pretium. Vivamus lectus leo, commodo ac sagittis ac, dictum a mi. Donec quis massa ut libero malesuada commodo in et risus. Fusce nunc dolor, aliquet vel rutrum in, molestie sit amet massa. Aliquam suscipit, justo a commodo condimentum, enim sapien fringilla ante, sed lobortis orci lectus in ante. Donec vel interdum est. Donec placerat cursus lacus, eu ultricies nisl tincidunt a. Fusce libero risus, sagittis eleifend iaculis aliquet, condimentum vitae diam. Suspendisse potenti. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Proin leo purus, sodales a venenatis luctus, faucibus ac enim. Sed id metus ac sem lobortis pretium. Mauris faucibus tempor scelerisque. Nunc vulputate interdum tortor, non tincidunt dui condimentum eget. Aenean in porttitor velit. Nam accumsan rhoncus risus id consectetur.</p> - <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nam rhoncus, felis interdum condimentum consectetur, nisl libero elementum eros, vehicula congue lacus eros non diam. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Vivamus mauris lorem, lacinia id tempus non, imperdiet et leo. Cras sit amet erat sit amet lacus egestas placerat. Aenean ultricies ultrices mauris ac congue. In vel tortor vel velit tristique tempus ac id nisi. Proin quis lorem velit. Nunc dui dui, blandit a ullamcorper vitae, congue fringilla lectus. Aliquam ultricies malesuada feugiat. Vestibulum placerat turpis et eros lobortis vel semper sapien pulvinar.</p> - <p>Pellentesque rhoncus aliquet porta. Sed vel magna eu turpis pharetra consequat ut vitae lectus. In molestie sollicitudin mi sit amet convallis. Aliquam erat volutpat. Nullam feugiat placerat ipsum eget malesuada. Nulla facilisis nunc non dolor vehicula pretium. Sed dui magna, sodales id pharetra non, ullamcorper eu sapien. Mauris ac consectetur leo. Mauris consequat, lectus ut bibendum pulvinar, leo magna feugiat enim, eu commodo lacus sem vel ante. Sed tempus metus eget leo mollis vulputate. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos.</p> - <p>Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Sed pulvinar rhoncus quam, vel semper tellus viverra id. Nulla rutrum porttitor odio, a rutrum purus gravida non. Etiam ac purus augue, eget vestibulum purus. Aenean venenatis ullamcorper augue, non consequat elit tempor sed. Donec velit sapien, volutpat sed ultricies egestas, semper a ante. Fusce dapibus, quam eget auctor suscipit, nibh leo posuere ante, at auctor nisi lacus in sem. Morbi interdum consectetur euismod. Cras accumsan est lacus. Nulla eleifend, eros vel consequat commodo, arcu nunc malesuada nunc, quis sagittis felis sem ac turpis.</p> - <p>Nulla rhoncus elementum convallis. Mauris condimentum aliquet egestas. Ut iaculis nisi eget tellus accumsan venenatis. Maecenas imperdiet aliquam porta. Aenean ultrices dolor sed quam laoreet varius. Curabitur condimentum blandit erat, quis accumsan eros interdum vitae. Curabitur ligula arcu, sollicitudin vitae iaculis sed, blandit sit amet enim. Morbi ullamcorper, metus vel mollis tristique, arcu turpis malesuada nisi, at dignissim lorem odio a orci. Proin ultrices, ipsum ut vestibulum interdum, libero felis auctor mi, vitae convallis nisl justo ac tellus. Integer nec lacinia turpis. Etiam massa nisl, rhoncus quis rutrum in, pretium eu leo. Proin a velit ut nulla laoreet vestibulum. Curabitur eu elit vitae felis auctor tincidunt. Curabitur tincidunt, metus sed sollicitudin cursus, quam elit commodo erat, ut tempor erat sapien vitae velit. Morbi nec viverra erat.</p> - <p>Nullam scelerisque facilisis pretium. Vivamus lectus leo, commodo ac sagittis ac, dictum a mi. Donec quis massa ut libero malesuada commodo in et risus. Fusce nunc dolor, aliquet vel rutrum in, molestie sit amet massa. Aliquam suscipit, justo a commodo condimentum, enim sapien fringilla ante, sed lobortis orci lectus in ante. Donec vel interdum est. Donec placerat cursus lacus, eu ultricies nisl tincidunt a. Fusce libero risus, sagittis eleifend iaculis aliquet, condimentum vitae diam. Suspendisse potenti. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Proin leo purus, sodales a venenatis luctus, faucibus ac enim. Sed id metus ac sem lobortis pretium. Mauris faucibus tempor scelerisque. Nunc vulputate interdum tortor, non tincidunt dui condimentum eget. Aenean in porttitor velit. Nam accumsan rhoncus risus id consectetur.</p> - <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nam rhoncus, felis interdum condimentum consectetur, nisl libero elementum eros, vehicula congue lacus eros non diam. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Vivamus mauris lorem, lacinia id tempus non, imperdiet et leo. Cras sit amet erat sit amet lacus egestas placerat. Aenean ultricies ultrices mauris ac congue. In vel tortor vel velit tristique tempus ac id nisi. Proin quis lorem velit. Nunc dui dui, blandit a ullamcorper vitae, congue fringilla lectus. Aliquam ultricies malesuada feugiat. Vestibulum placerat turpis et eros lobortis vel semper sapien pulvinar.</p> - <p>Pellentesque rhoncus aliquet porta. Sed vel magna eu turpis pharetra consequat ut vitae lectus. In molestie sollicitudin mi sit amet convallis. Aliquam erat volutpat. Nullam feugiat placerat ipsum eget malesuada. Nulla facilisis nunc non dolor vehicula pretium. Sed dui magna, sodales id pharetra non, ullamcorper eu sapien. Mauris ac consectetur leo. Mauris consequat, lectus ut bibendum pulvinar, leo magna feugiat enim, eu commodo lacus sem vel ante. Sed tempus metus eget leo mollis vulputate. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos.</p> - <p>Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Sed pulvinar rhoncus quam, vel semper tellus viverra id. Nulla rutrum porttitor odio, a rutrum purus gravida non. Etiam ac purus augue, eget vestibulum purus. Aenean venenatis ullamcorper augue, non consequat elit tempor sed. Donec velit sapien, volutpat sed ultricies egestas, semper a ante. Fusce dapibus, quam eget auctor suscipit, nibh leo posuere ante, at auctor nisi lacus in sem. Morbi interdum consectetur euismod. Cras accumsan est lacus. Nulla eleifend, eros vel consequat commodo, arcu nunc malesuada nunc, quis sagittis felis sem ac turpis.</p> - <p>Nulla rhoncus elementum convallis. Mauris condimentum aliquet egestas. Ut iaculis nisi eget tellus accumsan venenatis. Maecenas imperdiet aliquam porta. Aenean ultrices dolor sed quam laoreet varius. Curabitur condimentum blandit erat, quis accumsan eros interdum vitae. Curabitur ligula arcu, sollicitudin vitae iaculis sed, blandit sit amet enim. Morbi ullamcorper, metus vel mollis tristique, arcu turpis malesuada nisi, at dignissim lorem odio a orci. Proin ultrices, ipsum ut vestibulum interdum, libero felis auctor mi, vitae convallis nisl justo ac tellus. Integer nec lacinia turpis. Etiam massa nisl, rhoncus quis rutrum in, pretium eu leo. Proin a velit ut nulla laoreet vestibulum. Curabitur eu elit vitae felis auctor tincidunt. Curabitur tincidunt, metus sed sollicitudin cursus, quam elit commodo erat, ut tempor erat sapien vitae velit. Morbi nec viverra erat.</p> - <p>Nullam scelerisque facilisis pretium. Vivamus lectus leo, commodo ac sagittis ac, dictum a mi. Donec quis massa ut libero malesuada commodo in et risus. Fusce nunc dolor, aliquet vel rutrum in, molestie sit amet massa. Aliquam suscipit, justo a commodo condimentum, enim sapien fringilla ante, sed lobortis orci lectus in ante. Donec vel interdum est. Donec placerat cursus lacus, eu ultricies nisl tincidunt a. Fusce libero risus, sagittis eleifend iaculis aliquet, condimentum vitae diam. Suspendisse potenti. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Proin leo purus, sodales a venenatis luctus, faucibus ac enim. Sed id metus ac sem lobortis pretium. Mauris faucibus tempor scelerisque. Nunc vulputate interdum tortor, non tincidunt dui condimentum eget. Aenean in porttitor velit. Nam accumsan rhoncus risus id consectetur.</p> - </div> - <input type="button" id="scrollDown" value="scroll down by 50 px" /> - <input type="button" id="scrollUp" value="scroll up by 50 px" /> - - -<pre class="prettyprint"> -$('#testDiv').slimscroll({ - height: '250px' -}); - -$('#scrollDown').click(function(){ - $('#testDiv').slimScroll({ scrollBy: '50px' }); -}); - -$('#scrollUp').click(function(){ - $('#testDiv').slimScroll({ scrollBy: '-50px' }); -}); -</pre> - - <div id="testDiv2"> - <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nam rhoncus, felis interdum condimentum consectetur, nisl libero elementum eros, vehicula congue lacus eros non diam. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Vivamus mauris lorem, lacinia id tempus non, imperdiet et leo. Cras sit amet erat sit amet lacus egestas placerat. Aenean ultricies ultrices mauris ac congue. In vel tortor vel velit tristique tempus ac id nisi. Proin quis lorem velit. Nunc dui dui, blandit a ullamcorper vitae, congue fringilla lectus. Aliquam ultricies malesuada feugiat. Vestibulum placerat turpis et eros lobortis vel semper sapien pulvinar.</p> - <p>Pellentesque rhoncus aliquet porta. Sed vel magna eu turpis pharetra consequat ut vitae lectus. In molestie sollicitudin mi sit amet convallis. Aliquam erat volutpat. Nullam feugiat placerat ipsum eget malesuada. Nulla facilisis nunc non dolor vehicula pretium. Sed dui magna, sodales id pharetra non, ullamcorper eu sapien. Mauris ac consectetur leo. Mauris consequat, lectus ut bibendum pulvinar, leo magna feugiat enim, eu commodo lacus sem vel ante. Sed tempus metus eget leo mollis vulputate. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos.</p> - <p>Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Sed pulvinar rhoncus quam, vel semper tellus viverra id. Nulla rutrum porttitor odio, a rutrum purus gravida non. Etiam ac purus augue, eget vestibulum purus. Aenean venenatis ullamcorper augue, non consequat elit tempor sed. Donec velit sapien, volutpat sed ultricies egestas, semper a ante. Fusce dapibus, quam eget auctor suscipit, nibh leo posuere ante, at auctor nisi lacus in sem. Morbi interdum consectetur euismod. Cras accumsan est lacus. Nulla eleifend, eros vel consequat commodo, arcu nunc malesuada nunc, quis sagittis felis sem ac turpis.</p> - <p>Nulla rhoncus elementum convallis. Mauris condimentum aliquet egestas. Ut iaculis nisi eget tellus accumsan venenatis. Maecenas imperdiet aliquam porta. Aenean ultrices dolor sed quam laoreet varius. Curabitur condimentum blandit erat, quis accumsan eros interdum vitae. Curabitur ligula arcu, sollicitudin vitae iaculis sed, blandit sit amet enim. Morbi ullamcorper, metus vel mollis tristique, arcu turpis malesuada nisi, at dignissim lorem odio a orci. Proin ultrices, ipsum ut vestibulum interdum, libero felis auctor mi, vitae convallis nisl justo ac tellus. Integer nec lacinia turpis. Etiam massa nisl, rhoncus quis rutrum in, pretium eu leo. Proin a velit ut nulla laoreet vestibulum. Curabitur eu elit vitae felis auctor tincidunt. Curabitur tincidunt, metus sed sollicitudin cursus, quam elit commodo erat, ut tempor erat sapien vitae velit. Morbi nec viverra erat.</p> - <p>Nullam scelerisque facilisis pretium. Vivamus lectus leo, commodo ac sagittis ac, dictum a mi. Donec quis massa ut libero malesuada commodo in et risus. Fusce nunc dolor, aliquet vel rutrum in, molestie sit amet massa. Aliquam suscipit, justo a commodo condimentum, enim sapien fringilla ante, sed lobortis orci lectus in ante. Donec vel interdum est. Donec placerat cursus lacus, eu ultricies nisl tincidunt a. Fusce libero risus, sagittis eleifend iaculis aliquet, condimentum vitae diam. Suspendisse potenti. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Proin leo purus, sodales a venenatis luctus, faucibus ac enim. Sed id metus ac sem lobortis pretium. Mauris faucibus tempor scelerisque. Nunc vulputate interdum tortor, non tincidunt dui condimentum eget. Aenean in porttitor velit. Nam accumsan rhoncus risus id consectetur.</p> - <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nam rhoncus, felis interdum condimentum consectetur, nisl libero elementum eros, vehicula congue lacus eros non diam. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Vivamus mauris lorem, lacinia id tempus non, imperdiet et leo. Cras sit amet erat sit amet lacus egestas placerat. Aenean ultricies ultrices mauris ac congue. In vel tortor vel velit tristique tempus ac id nisi. Proin quis lorem velit. Nunc dui dui, blandit a ullamcorper vitae, congue fringilla lectus. Aliquam ultricies malesuada feugiat. Vestibulum placerat turpis et eros lobortis vel semper sapien pulvinar.</p> - <p>Pellentesque rhoncus aliquet porta. Sed vel magna eu turpis pharetra consequat ut vitae lectus. In molestie sollicitudin mi sit amet convallis. Aliquam erat volutpat. Nullam feugiat placerat ipsum eget malesuada. Nulla facilisis nunc non dolor vehicula pretium. Sed dui magna, sodales id pharetra non, ullamcorper eu sapien. Mauris ac consectetur leo. Mauris consequat, lectus ut bibendum pulvinar, leo magna feugiat enim, eu commodo lacus sem vel ante. Sed tempus metus eget leo mollis vulputate. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos.</p> - <p>Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Sed pulvinar rhoncus quam, vel semper tellus viverra id. Nulla rutrum porttitor odio, a rutrum purus gravida non. Etiam ac purus augue, eget vestibulum purus. Aenean venenatis ullamcorper augue, non consequat elit tempor sed. Donec velit sapien, volutpat sed ultricies egestas, semper a ante. Fusce dapibus, quam eget auctor suscipit, nibh leo posuere ante, at auctor nisi lacus in sem. Morbi interdum consectetur euismod. Cras accumsan est lacus. Nulla eleifend, eros vel consequat commodo, arcu nunc malesuada nunc, quis sagittis felis sem ac turpis.</p> - <p>Nulla rhoncus elementum convallis. Mauris condimentum aliquet egestas. Ut iaculis nisi eget tellus accumsan venenatis. Maecenas imperdiet aliquam porta. Aenean ultrices dolor sed quam laoreet varius. Curabitur condimentum blandit erat, quis accumsan eros interdum vitae. Curabitur ligula arcu, sollicitudin vitae iaculis sed, blandit sit amet enim. Morbi ullamcorper, metus vel mollis tristique, arcu turpis malesuada nisi, at dignissim lorem odio a orci. Proin ultrices, ipsum ut vestibulum interdum, libero felis auctor mi, vitae convallis nisl justo ac tellus. Integer nec lacinia turpis. Etiam massa nisl, rhoncus quis rutrum in, pretium eu leo. Proin a velit ut nulla laoreet vestibulum. Curabitur eu elit vitae felis auctor tincidunt. Curabitur tincidunt, metus sed sollicitudin cursus, quam elit commodo erat, ut tempor erat sapien vitae velit. Morbi nec viverra erat.</p> - <p>Nullam scelerisque facilisis pretium. Vivamus lectus leo, commodo ac sagittis ac, dictum a mi. Donec quis massa ut libero malesuada commodo in et risus. Fusce nunc dolor, aliquet vel rutrum in, molestie sit amet massa. Aliquam suscipit, justo a commodo condimentum, enim sapien fringilla ante, sed lobortis orci lectus in ante. Donec vel interdum est. Donec placerat cursus lacus, eu ultricies nisl tincidunt a. Fusce libero risus, sagittis eleifend iaculis aliquet, condimentum vitae diam. Suspendisse potenti. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Proin leo purus, sodales a venenatis luctus, faucibus ac enim. Sed id metus ac sem lobortis pretium. Mauris faucibus tempor scelerisque. Nunc vulputate interdum tortor, non tincidunt dui condimentum eget. Aenean in porttitor velit. Nam accumsan rhoncus risus id consectetur.</p> - <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nam rhoncus, felis interdum condimentum consectetur, nisl libero elementum eros, vehicula congue lacus eros non diam. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Vivamus mauris lorem, lacinia id tempus non, imperdiet et leo. Cras sit amet erat sit amet lacus egestas placerat. Aenean ultricies ultrices mauris ac congue. In vel tortor vel velit tristique tempus ac id nisi. Proin quis lorem velit. Nunc dui dui, blandit a ullamcorper vitae, congue fringilla lectus. Aliquam ultricies malesuada feugiat. Vestibulum placerat turpis et eros lobortis vel semper sapien pulvinar.</p> - <p>Pellentesque rhoncus aliquet porta. Sed vel magna eu turpis pharetra consequat ut vitae lectus. In molestie sollicitudin mi sit amet convallis. Aliquam erat volutpat. Nullam feugiat placerat ipsum eget malesuada. Nulla facilisis nunc non dolor vehicula pretium. Sed dui magna, sodales id pharetra non, ullamcorper eu sapien. Mauris ac consectetur leo. Mauris consequat, lectus ut bibendum pulvinar, leo magna feugiat enim, eu commodo lacus sem vel ante. Sed tempus metus eget leo mollis vulputate. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos.</p> - <p>Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Sed pulvinar rhoncus quam, vel semper tellus viverra id. Nulla rutrum porttitor odio, a rutrum purus gravida non. Etiam ac purus augue, eget vestibulum purus. Aenean venenatis ullamcorper augue, non consequat elit tempor sed. Donec velit sapien, volutpat sed ultricies egestas, semper a ante. Fusce dapibus, quam eget auctor suscipit, nibh leo posuere ante, at auctor nisi lacus in sem. Morbi interdum consectetur euismod. Cras accumsan est lacus. Nulla eleifend, eros vel consequat commodo, arcu nunc malesuada nunc, quis sagittis felis sem ac turpis.</p> - <p>Nulla rhoncus elementum convallis. Mauris condimentum aliquet egestas. Ut iaculis nisi eget tellus accumsan venenatis. Maecenas imperdiet aliquam porta. Aenean ultrices dolor sed quam laoreet varius. Curabitur condimentum blandit erat, quis accumsan eros interdum vitae. Curabitur ligula arcu, sollicitudin vitae iaculis sed, blandit sit amet enim. Morbi ullamcorper, metus vel mollis tristique, arcu turpis malesuada nisi, at dignissim lorem odio a orci. Proin ultrices, ipsum ut vestibulum interdum, libero felis auctor mi, vitae convallis nisl justo ac tellus. Integer nec lacinia turpis. Etiam massa nisl, rhoncus quis rutrum in, pretium eu leo. Proin a velit ut nulla laoreet vestibulum. Curabitur eu elit vitae felis auctor tincidunt. Curabitur tincidunt, metus sed sollicitudin cursus, quam elit commodo erat, ut tempor erat sapien vitae velit. Morbi nec viverra erat.</p> - <p>Nullam scelerisque facilisis pretium. Vivamus lectus leo, commodo ac sagittis ac, dictum a mi. Donec quis massa ut libero malesuada commodo in et risus. Fusce nunc dolor, aliquet vel rutrum in, molestie sit amet massa. Aliquam suscipit, justo a commodo condimentum, enim sapien fringilla ante, sed lobortis orci lectus in ante. Donec vel interdum est. Donec placerat cursus lacus, eu ultricies nisl tincidunt a. Fusce libero risus, sagittis eleifend iaculis aliquet, condimentum vitae diam. Suspendisse potenti. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Proin leo purus, sodales a venenatis luctus, faucibus ac enim. Sed id metus ac sem lobortis pretium. Mauris faucibus tempor scelerisque. Nunc vulputate interdum tortor, non tincidunt dui condimentum eget. Aenean in porttitor velit. Nam accumsan rhoncus risus id consectetur.</p> - </div> - <input type="button" id="scrollDownTo" value="Scroll to 300px from the top" /> - <input type="button" id="scrollUpTo" value="Scroll to 20px from the top" /> - - -<pre class="prettyprint"> -$('#testDiv2').slimscroll({ - height: '250px' -}); - -$('#scrollDownTo').click(function(){ - $('#testDiv2').slimScroll({ scrollTo: '300px' }); -}); - -$('#scrollUpTo').click(function(){ - $('#testDiv2').slimScroll({ scrollTo: '20px' }); -}); -</pre> - - - -</div> - -<script type="text/javascript"> - $(function(){ - $('#testDiv').slimscroll({ - height: '250px' - }); - - $('#scrollDown').click(function(){ - $('#testDiv').slimScroll({ scrollBy: '50px' }); - }); - - $('#scrollUp').click(function(){ - $('#testDiv').slimScroll({ scrollBy: '-50px' }); - }); - - $('#testDiv2').slimscroll({ - height: '250px' - }); - - $('#scrollDownTo').click(function(){ - $('#testDiv2').slimScroll({ scrollTo: '300px' }); - }); - - $('#scrollUpTo').click(function(){ - $('#testDiv2').slimScroll({ scrollTo: '20px' }); - }); - - }); -</script> - - -<script type="text/javascript"> - - //enable syntax highlighter - prettyPrint(); - - var _gaq = _gaq || []; - _gaq.push(['_setAccount', 'UA-3112455-22']); - _gaq.push(['_setDomainName', 'none']); - _gaq.push(['_trackPageview']); - - (function() { - var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true; - ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js'; - var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s); - })(); -</script> -</body> -</html> \ No newline at end of file diff --git a/admin/bower_components/jquery-slimscroll/examples/rail.html b/admin/bower_components/jquery-slimscroll/examples/rail.html deleted file mode 100644 index 4f77f34..0000000 --- a/admin/bower_components/jquery-slimscroll/examples/rail.html +++ /dev/null @@ -1,190 +0,0 @@ -<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> -<html> -<head> -<title>jquery.slimscroll - rail options</title> -<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> -<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.0/jquery.min.js"></script> - -<link href="libs/prettify/prettify.css" type="text/css" rel="stylesheet" /> -<script type="text/javascript" src="libs/prettify/prettify.js"></script> -<script type="text/javascript" src="../jquery.slimscroll.js"></script> -<link href="style.css" type="text/css" rel="stylesheet" /> -</head> -<body> -<a id="git-fork" href="https://github.com/rochal/jQuery-slimScroll"><img src="https://s3.amazonaws.com/github/ribbons/forkme_right_red_aa0000.png" alt="Fork me on GitHub"></a> - -<div class="examples"> - <div id="testDiv"> - <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nam rhoncus, felis interdum condimentum consectetur, nisl libero elementum eros, vehicula congue lacus eros non diam. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Vivamus mauris lorem, lacinia id tempus non, imperdiet et leo. Cras sit amet erat sit amet lacus egestas placerat. Aenean ultricies ultrices mauris ac congue. In vel tortor vel velit tristique tempus ac id nisi. Proin quis lorem velit. Nunc dui dui, blandit a ullamcorper vitae, congue fringilla lectus. Aliquam ultricies malesuada feugiat. Vestibulum placerat turpis et eros lobortis vel semper sapien pulvinar.</p> - <p>Pellentesque rhoncus aliquet porta. Sed vel magna eu turpis pharetra consequat ut vitae lectus. In molestie sollicitudin mi sit amet convallis. Aliquam erat volutpat. Nullam feugiat placerat ipsum eget malesuada. Nulla facilisis nunc non dolor vehicula pretium. Sed dui magna, sodales id pharetra non, ullamcorper eu sapien. Mauris ac consectetur leo. Mauris consequat, lectus ut bibendum pulvinar, leo magna feugiat enim, eu commodo lacus sem vel ante. Sed tempus metus eget leo mollis vulputate. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos.</p> - <p>Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Sed pulvinar rhoncus quam, vel semper tellus viverra id. Nulla rutrum porttitor odio, a rutrum purus gravida non. Etiam ac purus augue, eget vestibulum purus. Aenean venenatis ullamcorper augue, non consequat elit tempor sed. Donec velit sapien, volutpat sed ultricies egestas, semper a ante. Fusce dapibus, quam eget auctor suscipit, nibh leo posuere ante, at auctor nisi lacus in sem. Morbi interdum consectetur euismod. Cras accumsan est lacus. Nulla eleifend, eros vel consequat commodo, arcu nunc malesuada nunc, quis sagittis felis sem ac turpis.</p> - <p>Nulla rhoncus elementum convallis. Mauris condimentum aliquet egestas. Ut iaculis nisi eget tellus accumsan venenatis. Maecenas imperdiet aliquam porta. Aenean ultrices dolor sed quam laoreet varius. Curabitur condimentum blandit erat, quis accumsan eros interdum vitae. Curabitur ligula arcu, sollicitudin vitae iaculis sed, blandit sit amet enim. Morbi ullamcorper, metus vel mollis tristique, arcu turpis malesuada nisi, at dignissim lorem odio a orci. Proin ultrices, ipsum ut vestibulum interdum, libero felis auctor mi, vitae convallis nisl justo ac tellus. Integer nec lacinia turpis. Etiam massa nisl, rhoncus quis rutrum in, pretium eu leo. Proin a velit ut nulla laoreet vestibulum. Curabitur eu elit vitae felis auctor tincidunt. Curabitur tincidunt, metus sed sollicitudin cursus, quam elit commodo erat, ut tempor erat sapien vitae velit. Morbi nec viverra erat.</p> - <p>Nullam scelerisque facilisis pretium. Vivamus lectus leo, commodo ac sagittis ac, dictum a mi. Donec quis massa ut libero malesuada commodo in et risus. Fusce nunc dolor, aliquet vel rutrum in, molestie sit amet massa. Aliquam suscipit, justo a commodo condimentum, enim sapien fringilla ante, sed lobortis orci lectus in ante. Donec vel interdum est. Donec placerat cursus lacus, eu ultricies nisl tincidunt a. Fusce libero risus, sagittis eleifend iaculis aliquet, condimentum vitae diam. Suspendisse potenti. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Proin leo purus, sodales a venenatis luctus, faucibus ac enim. Sed id metus ac sem lobortis pretium. Mauris faucibus tempor scelerisque. Nunc vulputate interdum tortor, non tincidunt dui condimentum eget. Aenean in porttitor velit. Nam accumsan rhoncus risus id consectetur.</p> - <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nam rhoncus, felis interdum condimentum consectetur, nisl libero elementum eros, vehicula congue lacus eros non diam. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Vivamus mauris lorem, lacinia id tempus non, imperdiet et leo. Cras sit amet erat sit amet lacus egestas placerat. Aenean ultricies ultrices mauris ac congue. In vel tortor vel velit tristique tempus ac id nisi. Proin quis lorem velit. Nunc dui dui, blandit a ullamcorper vitae, congue fringilla lectus. Aliquam ultricies malesuada feugiat. Vestibulum placerat turpis et eros lobortis vel semper sapien pulvinar.</p> - <p>Pellentesque rhoncus aliquet porta. Sed vel magna eu turpis pharetra consequat ut vitae lectus. In molestie sollicitudin mi sit amet convallis. Aliquam erat volutpat. Nullam feugiat placerat ipsum eget malesuada. Nulla facilisis nunc non dolor vehicula pretium. Sed dui magna, sodales id pharetra non, ullamcorper eu sapien. Mauris ac consectetur leo. Mauris consequat, lectus ut bibendum pulvinar, leo magna feugiat enim, eu commodo lacus sem vel ante. Sed tempus metus eget leo mollis vulputate. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos.</p> - <p>Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Sed pulvinar rhoncus quam, vel semper tellus viverra id. Nulla rutrum porttitor odio, a rutrum purus gravida non. Etiam ac purus augue, eget vestibulum purus. Aenean venenatis ullamcorper augue, non consequat elit tempor sed. Donec velit sapien, volutpat sed ultricies egestas, semper a ante. Fusce dapibus, quam eget auctor suscipit, nibh leo posuere ante, at auctor nisi lacus in sem. Morbi interdum consectetur euismod. Cras accumsan est lacus. Nulla eleifend, eros vel consequat commodo, arcu nunc malesuada nunc, quis sagittis felis sem ac turpis.</p> - <p>Nulla rhoncus elementum convallis. Mauris condimentum aliquet egestas. Ut iaculis nisi eget tellus accumsan venenatis. Maecenas imperdiet aliquam porta. Aenean ultrices dolor sed quam laoreet varius. Curabitur condimentum blandit erat, quis accumsan eros interdum vitae. Curabitur ligula arcu, sollicitudin vitae iaculis sed, blandit sit amet enim. Morbi ullamcorper, metus vel mollis tristique, arcu turpis malesuada nisi, at dignissim lorem odio a orci. Proin ultrices, ipsum ut vestibulum interdum, libero felis auctor mi, vitae convallis nisl justo ac tellus. Integer nec lacinia turpis. Etiam massa nisl, rhoncus quis rutrum in, pretium eu leo. Proin a velit ut nulla laoreet vestibulum. Curabitur eu elit vitae felis auctor tincidunt. Curabitur tincidunt, metus sed sollicitudin cursus, quam elit commodo erat, ut tempor erat sapien vitae velit. Morbi nec viverra erat.</p> - <p>Nullam scelerisque facilisis pretium. Vivamus lectus leo, commodo ac sagittis ac, dictum a mi. Donec quis massa ut libero malesuada commodo in et risus. Fusce nunc dolor, aliquet vel rutrum in, molestie sit amet massa. Aliquam suscipit, justo a commodo condimentum, enim sapien fringilla ante, sed lobortis orci lectus in ante. Donec vel interdum est. Donec placerat cursus lacus, eu ultricies nisl tincidunt a. Fusce libero risus, sagittis eleifend iaculis aliquet, condimentum vitae diam. Suspendisse potenti. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Proin leo purus, sodales a venenatis luctus, faucibus ac enim. Sed id metus ac sem lobortis pretium. Mauris faucibus tempor scelerisque. Nunc vulputate interdum tortor, non tincidunt dui condimentum eget. Aenean in porttitor velit. Nam accumsan rhoncus risus id consectetur.</p> - <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nam rhoncus, felis interdum condimentum consectetur, nisl libero elementum eros, vehicula congue lacus eros non diam. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Vivamus mauris lorem, lacinia id tempus non, imperdiet et leo. Cras sit amet erat sit amet lacus egestas placerat. Aenean ultricies ultrices mauris ac congue. In vel tortor vel velit tristique tempus ac id nisi. Proin quis lorem velit. Nunc dui dui, blandit a ullamcorper vitae, congue fringilla lectus. Aliquam ultricies malesuada feugiat. Vestibulum placerat turpis et eros lobortis vel semper sapien pulvinar.</p> - <p>Pellentesque rhoncus aliquet porta. Sed vel magna eu turpis pharetra consequat ut vitae lectus. In molestie sollicitudin mi sit amet convallis. Aliquam erat volutpat. Nullam feugiat placerat ipsum eget malesuada. Nulla facilisis nunc non dolor vehicula pretium. Sed dui magna, sodales id pharetra non, ullamcorper eu sapien. Mauris ac consectetur leo. Mauris consequat, lectus ut bibendum pulvinar, leo magna feugiat enim, eu commodo lacus sem vel ante. Sed tempus metus eget leo mollis vulputate. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos.</p> - <p>Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Sed pulvinar rhoncus quam, vel semper tellus viverra id. Nulla rutrum porttitor odio, a rutrum purus gravida non. Etiam ac purus augue, eget vestibulum purus. Aenean venenatis ullamcorper augue, non consequat elit tempor sed. Donec velit sapien, volutpat sed ultricies egestas, semper a ante. Fusce dapibus, quam eget auctor suscipit, nibh leo posuere ante, at auctor nisi lacus in sem. Morbi interdum consectetur euismod. Cras accumsan est lacus. Nulla eleifend, eros vel consequat commodo, arcu nunc malesuada nunc, quis sagittis felis sem ac turpis.</p> - <p>Nulla rhoncus elementum convallis. Mauris condimentum aliquet egestas. Ut iaculis nisi eget tellus accumsan venenatis. Maecenas imperdiet aliquam porta. Aenean ultrices dolor sed quam laoreet varius. Curabitur condimentum blandit erat, quis accumsan eros interdum vitae. Curabitur ligula arcu, sollicitudin vitae iaculis sed, blandit sit amet enim. Morbi ullamcorper, metus vel mollis tristique, arcu turpis malesuada nisi, at dignissim lorem odio a orci. Proin ultrices, ipsum ut vestibulum interdum, libero felis auctor mi, vitae convallis nisl justo ac tellus. Integer nec lacinia turpis. Etiam massa nisl, rhoncus quis rutrum in, pretium eu leo. Proin a velit ut nulla laoreet vestibulum. Curabitur eu elit vitae felis auctor tincidunt. Curabitur tincidunt, metus sed sollicitudin cursus, quam elit commodo erat, ut tempor erat sapien vitae velit. Morbi nec viverra erat.</p> - <p>Nullam scelerisque facilisis pretium. Vivamus lectus leo, commodo ac sagittis ac, dictum a mi. Donec quis massa ut libero malesuada commodo in et risus. Fusce nunc dolor, aliquet vel rutrum in, molestie sit amet massa. Aliquam suscipit, justo a commodo condimentum, enim sapien fringilla ante, sed lobortis orci lectus in ante. Donec vel interdum est. Donec placerat cursus lacus, eu ultricies nisl tincidunt a. Fusce libero risus, sagittis eleifend iaculis aliquet, condimentum vitae diam. Suspendisse potenti. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Proin leo purus, sodales a venenatis luctus, faucibus ac enim. Sed id metus ac sem lobortis pretium. Mauris faucibus tempor scelerisque. Nunc vulputate interdum tortor, non tincidunt dui condimentum eget. Aenean in porttitor velit. Nam accumsan rhoncus risus id consectetur.</p> - </div> - -<pre class="prettyprint"> - $('#testDiv').slimScroll({ - alwaysVisible: true, - railVisible: true - }); -</pre> - - <div id="testDiv2"> - <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nam rhoncus, felis interdum condimentum consectetur, nisl libero elementum eros, vehicula congue lacus eros non diam. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Vivamus mauris lorem, lacinia id tempus non, imperdiet et leo. Cras sit amet erat sit amet lacus egestas placerat. Aenean ultricies ultrices mauris ac congue. In vel tortor vel velit tristique tempus ac id nisi. Proin quis lorem velit. Nunc dui dui, blandit a ullamcorper vitae, congue fringilla lectus. Aliquam ultricies malesuada feugiat. Vestibulum placerat turpis et eros lobortis vel semper sapien pulvinar.</p> - <p>Pellentesque rhoncus aliquet porta. Sed vel magna eu turpis pharetra consequat ut vitae lectus. In molestie sollicitudin mi sit amet convallis. Aliquam erat volutpat. Nullam feugiat placerat ipsum eget malesuada. Nulla facilisis nunc non dolor vehicula pretium. Sed dui magna, sodales id pharetra non, ullamcorper eu sapien. Mauris ac consectetur leo. Mauris consequat, lectus ut bibendum pulvinar, leo magna feugiat enim, eu commodo lacus sem vel ante. Sed tempus metus eget leo mollis vulputate. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos.</p> - <p>Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Sed pulvinar rhoncus quam, vel semper tellus viverra id. Nulla rutrum porttitor odio, a rutrum purus gravida non. Etiam ac purus augue, eget vestibulum purus. Aenean venenatis ullamcorper augue, non consequat elit tempor sed. Donec velit sapien, volutpat sed ultricies egestas, semper a ante. Fusce dapibus, quam eget auctor suscipit, nibh leo posuere ante, at auctor nisi lacus in sem. Morbi interdum consectetur euismod. Cras accumsan est lacus. Nulla eleifend, eros vel consequat commodo, arcu nunc malesuada nunc, quis sagittis felis sem ac turpis.</p> - <p>Nulla rhoncus elementum convallis. Mauris condimentum aliquet egestas. Ut iaculis nisi eget tellus accumsan venenatis. Maecenas imperdiet aliquam porta. Aenean ultrices dolor sed quam laoreet varius. Curabitur condimentum blandit erat, quis accumsan eros interdum vitae. Curabitur ligula arcu, sollicitudin vitae iaculis sed, blandit sit amet enim. Morbi ullamcorper, metus vel mollis tristique, arcu turpis malesuada nisi, at dignissim lorem odio a orci. Proin ultrices, ipsum ut vestibulum interdum, libero felis auctor mi, vitae convallis nisl justo ac tellus. Integer nec lacinia turpis. Etiam massa nisl, rhoncus quis rutrum in, pretium eu leo. Proin a velit ut nulla laoreet vestibulum. Curabitur eu elit vitae felis auctor tincidunt. Curabitur tincidunt, metus sed sollicitudin cursus, quam elit commodo erat, ut tempor erat sapien vitae velit. Morbi nec viverra erat.</p> - <p>Nullam scelerisque facilisis pretium. Vivamus lectus leo, commodo ac sagittis ac, dictum a mi. Donec quis massa ut libero malesuada commodo in et risus. Fusce nunc dolor, aliquet vel rutrum in, molestie sit amet massa. Aliquam suscipit, justo a commodo condimentum, enim sapien fringilla ante, sed lobortis orci lectus in ante. Donec vel interdum est. Donec placerat cursus lacus, eu ultricies nisl tincidunt a. Fusce libero risus, sagittis eleifend iaculis aliquet, condimentum vitae diam. Suspendisse potenti. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Proin leo purus, sodales a venenatis luctus, faucibus ac enim. Sed id metus ac sem lobortis pretium. Mauris faucibus tempor scelerisque. Nunc vulputate interdum tortor, non tincidunt dui condimentum eget. Aenean in porttitor velit. Nam accumsan rhoncus risus id consectetur.</p> - <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nam rhoncus, felis interdum condimentum consectetur, nisl libero elementum eros, vehicula congue lacus eros non diam. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Vivamus mauris lorem, lacinia id tempus non, imperdiet et leo. Cras sit amet erat sit amet lacus egestas placerat. Aenean ultricies ultrices mauris ac congue. In vel tortor vel velit tristique tempus ac id nisi. Proin quis lorem velit. Nunc dui dui, blandit a ullamcorper vitae, congue fringilla lectus. Aliquam ultricies malesuada feugiat. Vestibulum placerat turpis et eros lobortis vel semper sapien pulvinar.</p> - <p>Pellentesque rhoncus aliquet porta. Sed vel magna eu turpis pharetra consequat ut vitae lectus. In molestie sollicitudin mi sit amet convallis. Aliquam erat volutpat. Nullam feugiat placerat ipsum eget malesuada. Nulla facilisis nunc non dolor vehicula pretium. Sed dui magna, sodales id pharetra non, ullamcorper eu sapien. Mauris ac consectetur leo. Mauris consequat, lectus ut bibendum pulvinar, leo magna feugiat enim, eu commodo lacus sem vel ante. Sed tempus metus eget leo mollis vulputate. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos.</p> - <p>Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Sed pulvinar rhoncus quam, vel semper tellus viverra id. Nulla rutrum porttitor odio, a rutrum purus gravida non. Etiam ac purus augue, eget vestibulum purus. Aenean venenatis ullamcorper augue, non consequat elit tempor sed. Donec velit sapien, volutpat sed ultricies egestas, semper a ante. Fusce dapibus, quam eget auctor suscipit, nibh leo posuere ante, at auctor nisi lacus in sem. Morbi interdum consectetur euismod. Cras accumsan est lacus. Nulla eleifend, eros vel consequat commodo, arcu nunc malesuada nunc, quis sagittis felis sem ac turpis.</p> - <p>Nulla rhoncus elementum convallis. Mauris condimentum aliquet egestas. Ut iaculis nisi eget tellus accumsan venenatis. Maecenas imperdiet aliquam porta. Aenean ultrices dolor sed quam laoreet varius. Curabitur condimentum blandit erat, quis accumsan eros interdum vitae. Curabitur ligula arcu, sollicitudin vitae iaculis sed, blandit sit amet enim. Morbi ullamcorper, metus vel mollis tristique, arcu turpis malesuada nisi, at dignissim lorem odio a orci. Proin ultrices, ipsum ut vestibulum interdum, libero felis auctor mi, vitae convallis nisl justo ac tellus. Integer nec lacinia turpis. Etiam massa nisl, rhoncus quis rutrum in, pretium eu leo. Proin a velit ut nulla laoreet vestibulum. Curabitur eu elit vitae felis auctor tincidunt. Curabitur tincidunt, metus sed sollicitudin cursus, quam elit commodo erat, ut tempor erat sapien vitae velit. Morbi nec viverra erat.</p> - <p>Nullam scelerisque facilisis pretium. Vivamus lectus leo, commodo ac sagittis ac, dictum a mi. Donec quis massa ut libero malesuada commodo in et risus. Fusce nunc dolor, aliquet vel rutrum in, molestie sit amet massa. Aliquam suscipit, justo a commodo condimentum, enim sapien fringilla ante, sed lobortis orci lectus in ante. Donec vel interdum est. Donec placerat cursus lacus, eu ultricies nisl tincidunt a. Fusce libero risus, sagittis eleifend iaculis aliquet, condimentum vitae diam. Suspendisse potenti. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Proin leo purus, sodales a venenatis luctus, faucibus ac enim. Sed id metus ac sem lobortis pretium. Mauris faucibus tempor scelerisque. Nunc vulputate interdum tortor, non tincidunt dui condimentum eget. Aenean in porttitor velit. Nam accumsan rhoncus risus id consectetur.</p> - <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nam rhoncus, felis interdum condimentum consectetur, nisl libero elementum eros, vehicula congue lacus eros non diam. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Vivamus mauris lorem, lacinia id tempus non, imperdiet et leo. Cras sit amet erat sit amet lacus egestas placerat. Aenean ultricies ultrices mauris ac congue. In vel tortor vel velit tristique tempus ac id nisi. Proin quis lorem velit. Nunc dui dui, blandit a ullamcorper vitae, congue fringilla lectus. Aliquam ultricies malesuada feugiat. Vestibulum placerat turpis et eros lobortis vel semper sapien pulvinar.</p> - <p>Pellentesque rhoncus aliquet porta. Sed vel magna eu turpis pharetra consequat ut vitae lectus. In molestie sollicitudin mi sit amet convallis. Aliquam erat volutpat. Nullam feugiat placerat ipsum eget malesuada. Nulla facilisis nunc non dolor vehicula pretium. Sed dui magna, sodales id pharetra non, ullamcorper eu sapien. Mauris ac consectetur leo. Mauris consequat, lectus ut bibendum pulvinar, leo magna feugiat enim, eu commodo lacus sem vel ante. Sed tempus metus eget leo mollis vulputate. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos.</p> - <p>Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Sed pulvinar rhoncus quam, vel semper tellus viverra id. Nulla rutrum porttitor odio, a rutrum purus gravida non. Etiam ac purus augue, eget vestibulum purus. Aenean venenatis ullamcorper augue, non consequat elit tempor sed. Donec velit sapien, volutpat sed ultricies egestas, semper a ante. Fusce dapibus, quam eget auctor suscipit, nibh leo posuere ante, at auctor nisi lacus in sem. Morbi interdum consectetur euismod. Cras accumsan est lacus. Nulla eleifend, eros vel consequat commodo, arcu nunc malesuada nunc, quis sagittis felis sem ac turpis.</p> - <p>Nulla rhoncus elementum convallis. Mauris condimentum aliquet egestas. Ut iaculis nisi eget tellus accumsan venenatis. Maecenas imperdiet aliquam porta. Aenean ultrices dolor sed quam laoreet varius. Curabitur condimentum blandit erat, quis accumsan eros interdum vitae. Curabitur ligula arcu, sollicitudin vitae iaculis sed, blandit sit amet enim. Morbi ullamcorper, metus vel mollis tristique, arcu turpis malesuada nisi, at dignissim lorem odio a orci. Proin ultrices, ipsum ut vestibulum interdum, libero felis auctor mi, vitae convallis nisl justo ac tellus. Integer nec lacinia turpis. Etiam massa nisl, rhoncus quis rutrum in, pretium eu leo. Proin a velit ut nulla laoreet vestibulum. Curabitur eu elit vitae felis auctor tincidunt. Curabitur tincidunt, metus sed sollicitudin cursus, quam elit commodo erat, ut tempor erat sapien vitae velit. Morbi nec viverra erat.</p> - <p>Nullam scelerisque facilisis pretium. Vivamus lectus leo, commodo ac sagittis ac, dictum a mi. Donec quis massa ut libero malesuada commodo in et risus. Fusce nunc dolor, aliquet vel rutrum in, molestie sit amet massa. Aliquam suscipit, justo a commodo condimentum, enim sapien fringilla ante, sed lobortis orci lectus in ante. Donec vel interdum est. Donec placerat cursus lacus, eu ultricies nisl tincidunt a. Fusce libero risus, sagittis eleifend iaculis aliquet, condimentum vitae diam. Suspendisse potenti. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Proin leo purus, sodales a venenatis luctus, faucibus ac enim. Sed id metus ac sem lobortis pretium. Mauris faucibus tempor scelerisque. Nunc vulputate interdum tortor, non tincidunt dui condimentum eget. Aenean in porttitor velit. Nam accumsan rhoncus risus id consectetur.</p> - </div> - -<pre class="prettyprint"> - $('#testDiv2').slimScroll({ - railVisible: true, - railColor: '#f00' - }); -</pre> - - <div id="testDiv3"> - <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nam rhoncus, felis interdum condimentum consectetur, nisl libero elementum eros, vehicula congue lacus eros non diam. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Vivamus mauris lorem, lacinia id tempus non, imperdiet et leo. Cras sit amet erat sit amet lacus egestas placerat. Aenean ultricies ultrices mauris ac congue. In vel tortor vel velit tristique tempus ac id nisi. Proin quis lorem velit. Nunc dui dui, blandit a ullamcorper vitae, congue fringilla lectus. Aliquam ultricies malesuada feugiat. Vestibulum placerat turpis et eros lobortis vel semper sapien pulvinar.</p> - <p>Pellentesque rhoncus aliquet porta. Sed vel magna eu turpis pharetra consequat ut vitae lectus. In molestie sollicitudin mi sit amet convallis. Aliquam erat volutpat. Nullam feugiat placerat ipsum eget malesuada. Nulla facilisis nunc non dolor vehicula pretium. Sed dui magna, sodales id pharetra non, ullamcorper eu sapien. Mauris ac consectetur leo. Mauris consequat, lectus ut bibendum pulvinar, leo magna feugiat enim, eu commodo lacus sem vel ante. Sed tempus metus eget leo mollis vulputate. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos.</p> - <p>Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Sed pulvinar rhoncus quam, vel semper tellus viverra id. Nulla rutrum porttitor odio, a rutrum purus gravida non. Etiam ac purus augue, eget vestibulum purus. Aenean venenatis ullamcorper augue, non consequat elit tempor sed. Donec velit sapien, volutpat sed ultricies egestas, semper a ante. Fusce dapibus, quam eget auctor suscipit, nibh leo posuere ante, at auctor nisi lacus in sem. Morbi interdum consectetur euismod. Cras accumsan est lacus. Nulla eleifend, eros vel consequat commodo, arcu nunc malesuada nunc, quis sagittis felis sem ac turpis.</p> - <p>Nulla rhoncus elementum convallis. Mauris condimentum aliquet egestas. Ut iaculis nisi eget tellus accumsan venenatis. Maecenas imperdiet aliquam porta. Aenean ultrices dolor sed quam laoreet varius. Curabitur condimentum blandit erat, quis accumsan eros interdum vitae. Curabitur ligula arcu, sollicitudin vitae iaculis sed, blandit sit amet enim. Morbi ullamcorper, metus vel mollis tristique, arcu turpis malesuada nisi, at dignissim lorem odio a orci. Proin ultrices, ipsum ut vestibulum interdum, libero felis auctor mi, vitae convallis nisl justo ac tellus. Integer nec lacinia turpis. Etiam massa nisl, rhoncus quis rutrum in, pretium eu leo. Proin a velit ut nulla laoreet vestibulum. Curabitur eu elit vitae felis auctor tincidunt. Curabitur tincidunt, metus sed sollicitudin cursus, quam elit commodo erat, ut tempor erat sapien vitae velit. Morbi nec viverra erat.</p> - <p>Nullam scelerisque facilisis pretium. Vivamus lectus leo, commodo ac sagittis ac, dictum a mi. Donec quis massa ut libero malesuada commodo in et risus. Fusce nunc dolor, aliquet vel rutrum in, molestie sit amet massa. Aliquam suscipit, justo a commodo condimentum, enim sapien fringilla ante, sed lobortis orci lectus in ante. Donec vel interdum est. Donec placerat cursus lacus, eu ultricies nisl tincidunt a. Fusce libero risus, sagittis eleifend iaculis aliquet, condimentum vitae diam. Suspendisse potenti. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Proin leo purus, sodales a venenatis luctus, faucibus ac enim. Sed id metus ac sem lobortis pretium. Mauris faucibus tempor scelerisque. Nunc vulputate interdum tortor, non tincidunt dui condimentum eget. Aenean in porttitor velit. Nam accumsan rhoncus risus id consectetur.</p> - <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nam rhoncus, felis interdum condimentum consectetur, nisl libero elementum eros, vehicula congue lacus eros non diam. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Vivamus mauris lorem, lacinia id tempus non, imperdiet et leo. Cras sit amet erat sit amet lacus egestas placerat. Aenean ultricies ultrices mauris ac congue. In vel tortor vel velit tristique tempus ac id nisi. Proin quis lorem velit. Nunc dui dui, blandit a ullamcorper vitae, congue fringilla lectus. Aliquam ultricies malesuada feugiat. Vestibulum placerat turpis et eros lobortis vel semper sapien pulvinar.</p> - <p>Pellentesque rhoncus aliquet porta. Sed vel magna eu turpis pharetra consequat ut vitae lectus. In molestie sollicitudin mi sit amet convallis. Aliquam erat volutpat. Nullam feugiat placerat ipsum eget malesuada. Nulla facilisis nunc non dolor vehicula pretium. Sed dui magna, sodales id pharetra non, ullamcorper eu sapien. Mauris ac consectetur leo. Mauris consequat, lectus ut bibendum pulvinar, leo magna feugiat enim, eu commodo lacus sem vel ante. Sed tempus metus eget leo mollis vulputate. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos.</p> - <p>Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Sed pulvinar rhoncus quam, vel semper tellus viverra id. Nulla rutrum porttitor odio, a rutrum purus gravida non. Etiam ac purus augue, eget vestibulum purus. Aenean venenatis ullamcorper augue, non consequat elit tempor sed. Donec velit sapien, volutpat sed ultricies egestas, semper a ante. Fusce dapibus, quam eget auctor suscipit, nibh leo posuere ante, at auctor nisi lacus in sem. Morbi interdum consectetur euismod. Cras accumsan est lacus. Nulla eleifend, eros vel consequat commodo, arcu nunc malesuada nunc, quis sagittis felis sem ac turpis.</p> - <p>Nulla rhoncus elementum convallis. Mauris condimentum aliquet egestas. Ut iaculis nisi eget tellus accumsan venenatis. Maecenas imperdiet aliquam porta. Aenean ultrices dolor sed quam laoreet varius. Curabitur condimentum blandit erat, quis accumsan eros interdum vitae. Curabitur ligula arcu, sollicitudin vitae iaculis sed, blandit sit amet enim. Morbi ullamcorper, metus vel mollis tristique, arcu turpis malesuada nisi, at dignissim lorem odio a orci. Proin ultrices, ipsum ut vestibulum interdum, libero felis auctor mi, vitae convallis nisl justo ac tellus. Integer nec lacinia turpis. Etiam massa nisl, rhoncus quis rutrum in, pretium eu leo. Proin a velit ut nulla laoreet vestibulum. Curabitur eu elit vitae felis auctor tincidunt. Curabitur tincidunt, metus sed sollicitudin cursus, quam elit commodo erat, ut tempor erat sapien vitae velit. Morbi nec viverra erat.</p> - <p>Nullam scelerisque facilisis pretium. Vivamus lectus leo, commodo ac sagittis ac, dictum a mi. Donec quis massa ut libero malesuada commodo in et risus. Fusce nunc dolor, aliquet vel rutrum in, molestie sit amet massa. Aliquam suscipit, justo a commodo condimentum, enim sapien fringilla ante, sed lobortis orci lectus in ante. Donec vel interdum est. Donec placerat cursus lacus, eu ultricies nisl tincidunt a. Fusce libero risus, sagittis eleifend iaculis aliquet, condimentum vitae diam. Suspendisse potenti. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Proin leo purus, sodales a venenatis luctus, faucibus ac enim. Sed id metus ac sem lobortis pretium. Mauris faucibus tempor scelerisque. Nunc vulputate interdum tortor, non tincidunt dui condimentum eget. Aenean in porttitor velit. Nam accumsan rhoncus risus id consectetur.</p> - <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nam rhoncus, felis interdum condimentum consectetur, nisl libero elementum eros, vehicula congue lacus eros non diam. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Vivamus mauris lorem, lacinia id tempus non, imperdiet et leo. Cras sit amet erat sit amet lacus egestas placerat. Aenean ultricies ultrices mauris ac congue. In vel tortor vel velit tristique tempus ac id nisi. Proin quis lorem velit. Nunc dui dui, blandit a ullamcorper vitae, congue fringilla lectus. Aliquam ultricies malesuada feugiat. Vestibulum placerat turpis et eros lobortis vel semper sapien pulvinar.</p> - <p>Pellentesque rhoncus aliquet porta. Sed vel magna eu turpis pharetra consequat ut vitae lectus. In molestie sollicitudin mi sit amet convallis. Aliquam erat volutpat. Nullam feugiat placerat ipsum eget malesuada. Nulla facilisis nunc non dolor vehicula pretium. Sed dui magna, sodales id pharetra non, ullamcorper eu sapien. Mauris ac consectetur leo. Mauris consequat, lectus ut bibendum pulvinar, leo magna feugiat enim, eu commodo lacus sem vel ante. Sed tempus metus eget leo mollis vulputate. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos.</p> - <p>Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Sed pulvinar rhoncus quam, vel semper tellus viverra id. Nulla rutrum porttitor odio, a rutrum purus gravida non. Etiam ac purus augue, eget vestibulum purus. Aenean venenatis ullamcorper augue, non consequat elit tempor sed. Donec velit sapien, volutpat sed ultricies egestas, semper a ante. Fusce dapibus, quam eget auctor suscipit, nibh leo posuere ante, at auctor nisi lacus in sem. Morbi interdum consectetur euismod. Cras accumsan est lacus. Nulla eleifend, eros vel consequat commodo, arcu nunc malesuada nunc, quis sagittis felis sem ac turpis.</p> - <p>Nulla rhoncus elementum convallis. Mauris condimentum aliquet egestas. Ut iaculis nisi eget tellus accumsan venenatis. Maecenas imperdiet aliquam porta. Aenean ultrices dolor sed quam laoreet varius. Curabitur condimentum blandit erat, quis accumsan eros interdum vitae. Curabitur ligula arcu, sollicitudin vitae iaculis sed, blandit sit amet enim. Morbi ullamcorper, metus vel mollis tristique, arcu turpis malesuada nisi, at dignissim lorem odio a orci. Proin ultrices, ipsum ut vestibulum interdum, libero felis auctor mi, vitae convallis nisl justo ac tellus. Integer nec lacinia turpis. Etiam massa nisl, rhoncus quis rutrum in, pretium eu leo. Proin a velit ut nulla laoreet vestibulum. Curabitur eu elit vitae felis auctor tincidunt. Curabitur tincidunt, metus sed sollicitudin cursus, quam elit commodo erat, ut tempor erat sapien vitae velit. Morbi nec viverra erat.</p> - <p>Nullam scelerisque facilisis pretium. Vivamus lectus leo, commodo ac sagittis ac, dictum a mi. Donec quis massa ut libero malesuada commodo in et risus. Fusce nunc dolor, aliquet vel rutrum in, molestie sit amet massa. Aliquam suscipit, justo a commodo condimentum, enim sapien fringilla ante, sed lobortis orci lectus in ante. Donec vel interdum est. Donec placerat cursus lacus, eu ultricies nisl tincidunt a. Fusce libero risus, sagittis eleifend iaculis aliquet, condimentum vitae diam. Suspendisse potenti. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Proin leo purus, sodales a venenatis luctus, faucibus ac enim. Sed id metus ac sem lobortis pretium. Mauris faucibus tempor scelerisque. Nunc vulputate interdum tortor, non tincidunt dui condimentum eget. Aenean in porttitor velit. Nam accumsan rhoncus risus id consectetur.</p> - </div> - -<pre class="prettyprint"> - $('#testDiv3').slimScroll({ - railVisible: true, - railOpacity: 0.8 - }); -</pre> - - <div id="testDiv4"> - <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nam rhoncus, felis interdum condimentum consectetur, nisl libero elementum eros, vehicula congue lacus eros non diam. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Vivamus mauris lorem, lacinia id tempus non, imperdiet et leo. Cras sit amet erat sit amet lacus egestas placerat. Aenean ultricies ultrices mauris ac congue. In vel tortor vel velit tristique tempus ac id nisi. Proin quis lorem velit. Nunc dui dui, blandit a ullamcorper vitae, congue fringilla lectus. Aliquam ultricies malesuada feugiat. Vestibulum placerat turpis et eros lobortis vel semper sapien pulvinar.</p> - <p>Pellentesque rhoncus aliquet porta. Sed vel magna eu turpis pharetra consequat ut vitae lectus. In molestie sollicitudin mi sit amet convallis. Aliquam erat volutpat. Nullam feugiat placerat ipsum eget malesuada. Nulla facilisis nunc non dolor vehicula pretium. Sed dui magna, sodales id pharetra non, ullamcorper eu sapien. Mauris ac consectetur leo. Mauris consequat, lectus ut bibendum pulvinar, leo magna feugiat enim, eu commodo lacus sem vel ante. Sed tempus metus eget leo mollis vulputate. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos.</p> - <p>Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Sed pulvinar rhoncus quam, vel semper tellus viverra id. Nulla rutrum porttitor odio, a rutrum purus gravida non. Etiam ac purus augue, eget vestibulum purus. Aenean venenatis ullamcorper augue, non consequat elit tempor sed. Donec velit sapien, volutpat sed ultricies egestas, semper a ante. Fusce dapibus, quam eget auctor suscipit, nibh leo posuere ante, at auctor nisi lacus in sem. Morbi interdum consectetur euismod. Cras accumsan est lacus. Nulla eleifend, eros vel consequat commodo, arcu nunc malesuada nunc, quis sagittis felis sem ac turpis.</p> - <p>Nulla rhoncus elementum convallis. Mauris condimentum aliquet egestas. Ut iaculis nisi eget tellus accumsan venenatis. Maecenas imperdiet aliquam porta. Aenean ultrices dolor sed quam laoreet varius. Curabitur condimentum blandit erat, quis accumsan eros interdum vitae. Curabitur ligula arcu, sollicitudin vitae iaculis sed, blandit sit amet enim. Morbi ullamcorper, metus vel mollis tristique, arcu turpis malesuada nisi, at dignissim lorem odio a orci. Proin ultrices, ipsum ut vestibulum interdum, libero felis auctor mi, vitae convallis nisl justo ac tellus. Integer nec lacinia turpis. Etiam massa nisl, rhoncus quis rutrum in, pretium eu leo. Proin a velit ut nulla laoreet vestibulum. Curabitur eu elit vitae felis auctor tincidunt. Curabitur tincidunt, metus sed sollicitudin cursus, quam elit commodo erat, ut tempor erat sapien vitae velit. Morbi nec viverra erat.</p> - <p>Nullam scelerisque facilisis pretium. Vivamus lectus leo, commodo ac sagittis ac, dictum a mi. Donec quis massa ut libero malesuada commodo in et risus. Fusce nunc dolor, aliquet vel rutrum in, molestie sit amet massa. Aliquam suscipit, justo a commodo condimentum, enim sapien fringilla ante, sed lobortis orci lectus in ante. Donec vel interdum est. Donec placerat cursus lacus, eu ultricies nisl tincidunt a. Fusce libero risus, sagittis eleifend iaculis aliquet, condimentum vitae diam. Suspendisse potenti. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Proin leo purus, sodales a venenatis luctus, faucibus ac enim. Sed id metus ac sem lobortis pretium. Mauris faucibus tempor scelerisque. Nunc vulputate interdum tortor, non tincidunt dui condimentum eget. Aenean in porttitor velit. Nam accumsan rhoncus risus id consectetur.</p> - <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nam rhoncus, felis interdum condimentum consectetur, nisl libero elementum eros, vehicula congue lacus eros non diam. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Vivamus mauris lorem, lacinia id tempus non, imperdiet et leo. Cras sit amet erat sit amet lacus egestas placerat. Aenean ultricies ultrices mauris ac congue. In vel tortor vel velit tristique tempus ac id nisi. Proin quis lorem velit. Nunc dui dui, blandit a ullamcorper vitae, congue fringilla lectus. Aliquam ultricies malesuada feugiat. Vestibulum placerat turpis et eros lobortis vel semper sapien pulvinar.</p> - <p>Pellentesque rhoncus aliquet porta. Sed vel magna eu turpis pharetra consequat ut vitae lectus. In molestie sollicitudin mi sit amet convallis. Aliquam erat volutpat. Nullam feugiat placerat ipsum eget malesuada. Nulla facilisis nunc non dolor vehicula pretium. Sed dui magna, sodales id pharetra non, ullamcorper eu sapien. Mauris ac consectetur leo. Mauris consequat, lectus ut bibendum pulvinar, leo magna feugiat enim, eu commodo lacus sem vel ante. Sed tempus metus eget leo mollis vulputate. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos.</p> - <p>Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Sed pulvinar rhoncus quam, vel semper tellus viverra id. Nulla rutrum porttitor odio, a rutrum purus gravida non. Etiam ac purus augue, eget vestibulum purus. Aenean venenatis ullamcorper augue, non consequat elit tempor sed. Donec velit sapien, volutpat sed ultricies egestas, semper a ante. Fusce dapibus, quam eget auctor suscipit, nibh leo posuere ante, at auctor nisi lacus in sem. Morbi interdum consectetur euismod. Cras accumsan est lacus. Nulla eleifend, eros vel consequat commodo, arcu nunc malesuada nunc, quis sagittis felis sem ac turpis.</p> - <p>Nulla rhoncus elementum convallis. Mauris condimentum aliquet egestas. Ut iaculis nisi eget tellus accumsan venenatis. Maecenas imperdiet aliquam porta. Aenean ultrices dolor sed quam laoreet varius. Curabitur condimentum blandit erat, quis accumsan eros interdum vitae. Curabitur ligula arcu, sollicitudin vitae iaculis sed, blandit sit amet enim. Morbi ullamcorper, metus vel mollis tristique, arcu turpis malesuada nisi, at dignissim lorem odio a orci. Proin ultrices, ipsum ut vestibulum interdum, libero felis auctor mi, vitae convallis nisl justo ac tellus. Integer nec lacinia turpis. Etiam massa nisl, rhoncus quis rutrum in, pretium eu leo. Proin a velit ut nulla laoreet vestibulum. Curabitur eu elit vitae felis auctor tincidunt. Curabitur tincidunt, metus sed sollicitudin cursus, quam elit commodo erat, ut tempor erat sapien vitae velit. Morbi nec viverra erat.</p> - <p>Nullam scelerisque facilisis pretium. Vivamus lectus leo, commodo ac sagittis ac, dictum a mi. Donec quis massa ut libero malesuada commodo in et risus. Fusce nunc dolor, aliquet vel rutrum in, molestie sit amet massa. Aliquam suscipit, justo a commodo condimentum, enim sapien fringilla ante, sed lobortis orci lectus in ante. Donec vel interdum est. Donec placerat cursus lacus, eu ultricies nisl tincidunt a. Fusce libero risus, sagittis eleifend iaculis aliquet, condimentum vitae diam. Suspendisse potenti. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Proin leo purus, sodales a venenatis luctus, faucibus ac enim. Sed id metus ac sem lobortis pretium. Mauris faucibus tempor scelerisque. Nunc vulputate interdum tortor, non tincidunt dui condimentum eget. Aenean in porttitor velit. Nam accumsan rhoncus risus id consectetur.</p> - <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nam rhoncus, felis interdum condimentum consectetur, nisl libero elementum eros, vehicula congue lacus eros non diam. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Vivamus mauris lorem, lacinia id tempus non, imperdiet et leo. Cras sit amet erat sit amet lacus egestas placerat. Aenean ultricies ultrices mauris ac congue. In vel tortor vel velit tristique tempus ac id nisi. Proin quis lorem velit. Nunc dui dui, blandit a ullamcorper vitae, congue fringilla lectus. Aliquam ultricies malesuada feugiat. Vestibulum placerat turpis et eros lobortis vel semper sapien pulvinar.</p> - <p>Pellentesque rhoncus aliquet porta. Sed vel magna eu turpis pharetra consequat ut vitae lectus. In molestie sollicitudin mi sit amet convallis. Aliquam erat volutpat. Nullam feugiat placerat ipsum eget malesuada. Nulla facilisis nunc non dolor vehicula pretium. Sed dui magna, sodales id pharetra non, ullamcorper eu sapien. Mauris ac consectetur leo. Mauris consequat, lectus ut bibendum pulvinar, leo magna feugiat enim, eu commodo lacus sem vel ante. Sed tempus metus eget leo mollis vulputate. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos.</p> - <p>Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Sed pulvinar rhoncus quam, vel semper tellus viverra id. Nulla rutrum porttitor odio, a rutrum purus gravida non. Etiam ac purus augue, eget vestibulum purus. Aenean venenatis ullamcorper augue, non consequat elit tempor sed. Donec velit sapien, volutpat sed ultricies egestas, semper a ante. Fusce dapibus, quam eget auctor suscipit, nibh leo posuere ante, at auctor nisi lacus in sem. Morbi interdum consectetur euismod. Cras accumsan est lacus. Nulla eleifend, eros vel consequat commodo, arcu nunc malesuada nunc, quis sagittis felis sem ac turpis.</p> - <p>Nulla rhoncus elementum convallis. Mauris condimentum aliquet egestas. Ut iaculis nisi eget tellus accumsan venenatis. Maecenas imperdiet aliquam porta. Aenean ultrices dolor sed quam laoreet varius. Curabitur condimentum blandit erat, quis accumsan eros interdum vitae. Curabitur ligula arcu, sollicitudin vitae iaculis sed, blandit sit amet enim. Morbi ullamcorper, metus vel mollis tristique, arcu turpis malesuada nisi, at dignissim lorem odio a orci. Proin ultrices, ipsum ut vestibulum interdum, libero felis auctor mi, vitae convallis nisl justo ac tellus. Integer nec lacinia turpis. Etiam massa nisl, rhoncus quis rutrum in, pretium eu leo. Proin a velit ut nulla laoreet vestibulum. Curabitur eu elit vitae felis auctor tincidunt. Curabitur tincidunt, metus sed sollicitudin cursus, quam elit commodo erat, ut tempor erat sapien vitae velit. Morbi nec viverra erat.</p> - <p>Nullam scelerisque facilisis pretium. Vivamus lectus leo, commodo ac sagittis ac, dictum a mi. Donec quis massa ut libero malesuada commodo in et risus. Fusce nunc dolor, aliquet vel rutrum in, molestie sit amet massa. Aliquam suscipit, justo a commodo condimentum, enim sapien fringilla ante, sed lobortis orci lectus in ante. Donec vel interdum est. Donec placerat cursus lacus, eu ultricies nisl tincidunt a. Fusce libero risus, sagittis eleifend iaculis aliquet, condimentum vitae diam. Suspendisse potenti. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Proin leo purus, sodales a venenatis luctus, faucibus ac enim. Sed id metus ac sem lobortis pretium. Mauris faucibus tempor scelerisque. Nunc vulputate interdum tortor, non tincidunt dui condimentum eget. Aenean in porttitor velit. Nam accumsan rhoncus risus id consectetur.</p> - </div> - -<pre class="prettyprint"> - $('#testDiv4').slimscroll({ - railVisible: true, - railBorderRadius: 0 - }); -</pre> - - <div id="testDiv5"> - <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nam rhoncus, felis interdum condimentum consectetur, nisl libero elementum eros, vehicula congue lacus eros non diam. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Vivamus mauris lorem, lacinia id tempus non, imperdiet et leo. Cras sit amet erat sit amet lacus egestas placerat. Aenean ultricies ultrices mauris ac congue. In vel tortor vel velit tristique tempus ac id nisi. Proin quis lorem velit. Nunc dui dui, blandit a ullamcorper vitae, congue fringilla lectus. Aliquam ultricies malesuada feugiat. Vestibulum placerat turpis et eros lobortis vel semper sapien pulvinar.</p> - <p>Pellentesque rhoncus aliquet porta. Sed vel magna eu turpis pharetra consequat ut vitae lectus. In molestie sollicitudin mi sit amet convallis. Aliquam erat volutpat. Nullam feugiat placerat ipsum eget malesuada. Nulla facilisis nunc non dolor vehicula pretium. Sed dui magna, sodales id pharetra non, ullamcorper eu sapien. Mauris ac consectetur leo. Mauris consequat, lectus ut bibendum pulvinar, leo magna feugiat enim, eu commodo lacus sem vel ante. Sed tempus metus eget leo mollis vulputate. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos.</p> - <p>Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Sed pulvinar rhoncus quam, vel semper tellus viverra id. Nulla rutrum porttitor odio, a rutrum purus gravida non. Etiam ac purus augue, eget vestibulum purus. Aenean venenatis ullamcorper augue, non consequat elit tempor sed. Donec velit sapien, volutpat sed ultricies egestas, semper a ante. Fusce dapibus, quam eget auctor suscipit, nibh leo posuere ante, at auctor nisi lacus in sem. Morbi interdum consectetur euismod. Cras accumsan est lacus. Nulla eleifend, eros vel consequat commodo, arcu nunc malesuada nunc, quis sagittis felis sem ac turpis.</p> - <p>Nulla rhoncus elementum convallis. Mauris condimentum aliquet egestas. Ut iaculis nisi eget tellus accumsan venenatis. Maecenas imperdiet aliquam porta. Aenean ultrices dolor sed quam laoreet varius. Curabitur condimentum blandit erat, quis accumsan eros interdum vitae. Curabitur ligula arcu, sollicitudin vitae iaculis sed, blandit sit amet enim. Morbi ullamcorper, metus vel mollis tristique, arcu turpis malesuada nisi, at dignissim lorem odio a orci. Proin ultrices, ipsum ut vestibulum interdum, libero felis auctor mi, vitae convallis nisl justo ac tellus. Integer nec lacinia turpis. Etiam massa nisl, rhoncus quis rutrum in, pretium eu leo. Proin a velit ut nulla laoreet vestibulum. Curabitur eu elit vitae felis auctor tincidunt. Curabitur tincidunt, metus sed sollicitudin cursus, quam elit commodo erat, ut tempor erat sapien vitae velit. Morbi nec viverra erat.</p> - <p>Nullam scelerisque facilisis pretium. Vivamus lectus leo, commodo ac sagittis ac, dictum a mi. Donec quis massa ut libero malesuada commodo in et risus. Fusce nunc dolor, aliquet vel rutrum in, molestie sit amet massa. Aliquam suscipit, justo a commodo condimentum, enim sapien fringilla ante, sed lobortis orci lectus in ante. Donec vel interdum est. Donec placerat cursus lacus, eu ultricies nisl tincidunt a. Fusce libero risus, sagittis eleifend iaculis aliquet, condimentum vitae diam. Suspendisse potenti. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Proin leo purus, sodales a venenatis luctus, faucibus ac enim. Sed id metus ac sem lobortis pretium. Mauris faucibus tempor scelerisque. Nunc vulputate interdum tortor, non tincidunt dui condimentum eget. Aenean in porttitor velit. Nam accumsan rhoncus risus id consectetur.</p> - <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nam rhoncus, felis interdum condimentum consectetur, nisl libero elementum eros, vehicula congue lacus eros non diam. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Vivamus mauris lorem, lacinia id tempus non, imperdiet et leo. Cras sit amet erat sit amet lacus egestas placerat. Aenean ultricies ultrices mauris ac congue. In vel tortor vel velit tristique tempus ac id nisi. Proin quis lorem velit. Nunc dui dui, blandit a ullamcorper vitae, congue fringilla lectus. Aliquam ultricies malesuada feugiat. Vestibulum placerat turpis et eros lobortis vel semper sapien pulvinar.</p> - <p>Pellentesque rhoncus aliquet porta. Sed vel magna eu turpis pharetra consequat ut vitae lectus. In molestie sollicitudin mi sit amet convallis. Aliquam erat volutpat. Nullam feugiat placerat ipsum eget malesuada. Nulla facilisis nunc non dolor vehicula pretium. Sed dui magna, sodales id pharetra non, ullamcorper eu sapien. Mauris ac consectetur leo. Mauris consequat, lectus ut bibendum pulvinar, leo magna feugiat enim, eu commodo lacus sem vel ante. Sed tempus metus eget leo mollis vulputate. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos.</p> - <p>Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Sed pulvinar rhoncus quam, vel semper tellus viverra id. Nulla rutrum porttitor odio, a rutrum purus gravida non. Etiam ac purus augue, eget vestibulum purus. Aenean venenatis ullamcorper augue, non consequat elit tempor sed. Donec velit sapien, volutpat sed ultricies egestas, semper a ante. Fusce dapibus, quam eget auctor suscipit, nibh leo posuere ante, at auctor nisi lacus in sem. Morbi interdum consectetur euismod. Cras accumsan est lacus. Nulla eleifend, eros vel consequat commodo, arcu nunc malesuada nunc, quis sagittis felis sem ac turpis.</p> - <p>Nulla rhoncus elementum convallis. Mauris condimentum aliquet egestas. Ut iaculis nisi eget tellus accumsan venenatis. Maecenas imperdiet aliquam porta. Aenean ultrices dolor sed quam laoreet varius. Curabitur condimentum blandit erat, quis accumsan eros interdum vitae. Curabitur ligula arcu, sollicitudin vitae iaculis sed, blandit sit amet enim. Morbi ullamcorper, metus vel mollis tristique, arcu turpis malesuada nisi, at dignissim lorem odio a orci. Proin ultrices, ipsum ut vestibulum interdum, libero felis auctor mi, vitae convallis nisl justo ac tellus. Integer nec lacinia turpis. Etiam massa nisl, rhoncus quis rutrum in, pretium eu leo. Proin a velit ut nulla laoreet vestibulum. Curabitur eu elit vitae felis auctor tincidunt. Curabitur tincidunt, metus sed sollicitudin cursus, quam elit commodo erat, ut tempor erat sapien vitae velit. Morbi nec viverra erat.</p> - <p>Nullam scelerisque facilisis pretium. Vivamus lectus leo, commodo ac sagittis ac, dictum a mi. Donec quis massa ut libero malesuada commodo in et risus. Fusce nunc dolor, aliquet vel rutrum in, molestie sit amet massa. Aliquam suscipit, justo a commodo condimentum, enim sapien fringilla ante, sed lobortis orci lectus in ante. Donec vel interdum est. Donec placerat cursus lacus, eu ultricies nisl tincidunt a. Fusce libero risus, sagittis eleifend iaculis aliquet, condimentum vitae diam. Suspendisse potenti. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Proin leo purus, sodales a venenatis luctus, faucibus ac enim. Sed id metus ac sem lobortis pretium. Mauris faucibus tempor scelerisque. Nunc vulputate interdum tortor, non tincidunt dui condimentum eget. Aenean in porttitor velit. Nam accumsan rhoncus risus id consectetur.</p> - <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nam rhoncus, felis interdum condimentum consectetur, nisl libero elementum eros, vehicula congue lacus eros non diam. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Vivamus mauris lorem, lacinia id tempus non, imperdiet et leo. Cras sit amet erat sit amet lacus egestas placerat. Aenean ultricies ultrices mauris ac congue. In vel tortor vel velit tristique tempus ac id nisi. Proin quis lorem velit. Nunc dui dui, blandit a ullamcorper vitae, congue fringilla lectus. Aliquam ultricies malesuada feugiat. Vestibulum placerat turpis et eros lobortis vel semper sapien pulvinar.</p> - <p>Pellentesque rhoncus aliquet porta. Sed vel magna eu turpis pharetra consequat ut vitae lectus. In molestie sollicitudin mi sit amet convallis. Aliquam erat volutpat. Nullam feugiat placerat ipsum eget malesuada. Nulla facilisis nunc non dolor vehicula pretium. Sed dui magna, sodales id pharetra non, ullamcorper eu sapien. Mauris ac consectetur leo. Mauris consequat, lectus ut bibendum pulvinar, leo magna feugiat enim, eu commodo lacus sem vel ante. Sed tempus metus eget leo mollis vulputate. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos.</p> - <p>Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Sed pulvinar rhoncus quam, vel semper tellus viverra id. Nulla rutrum porttitor odio, a rutrum purus gravida non. Etiam ac purus augue, eget vestibulum purus. Aenean venenatis ullamcorper augue, non consequat elit tempor sed. Donec velit sapien, volutpat sed ultricies egestas, semper a ante. Fusce dapibus, quam eget auctor suscipit, nibh leo posuere ante, at auctor nisi lacus in sem. Morbi interdum consectetur euismod. Cras accumsan est lacus. Nulla eleifend, eros vel consequat commodo, arcu nunc malesuada nunc, quis sagittis felis sem ac turpis.</p> - <p>Nulla rhoncus elementum convallis. Mauris condimentum aliquet egestas. Ut iaculis nisi eget tellus accumsan venenatis. Maecenas imperdiet aliquam porta. Aenean ultrices dolor sed quam laoreet varius. Curabitur condimentum blandit erat, quis accumsan eros interdum vitae. Curabitur ligula arcu, sollicitudin vitae iaculis sed, blandit sit amet enim. Morbi ullamcorper, metus vel mollis tristique, arcu turpis malesuada nisi, at dignissim lorem odio a orci. Proin ultrices, ipsum ut vestibulum interdum, libero felis auctor mi, vitae convallis nisl justo ac tellus. Integer nec lacinia turpis. Etiam massa nisl, rhoncus quis rutrum in, pretium eu leo. Proin a velit ut nulla laoreet vestibulum. Curabitur eu elit vitae felis auctor tincidunt. Curabitur tincidunt, metus sed sollicitudin cursus, quam elit commodo erat, ut tempor erat sapien vitae velit. Morbi nec viverra erat.</p> - <p>Nullam scelerisque facilisis pretium. Vivamus lectus leo, commodo ac sagittis ac, dictum a mi. Donec quis massa ut libero malesuada commodo in et risus. Fusce nunc dolor, aliquet vel rutrum in, molestie sit amet massa. Aliquam suscipit, justo a commodo condimentum, enim sapien fringilla ante, sed lobortis orci lectus in ante. Donec vel interdum est. Donec placerat cursus lacus, eu ultricies nisl tincidunt a. Fusce libero risus, sagittis eleifend iaculis aliquet, condimentum vitae diam. Suspendisse potenti. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Proin leo purus, sodales a venenatis luctus, faucibus ac enim. Sed id metus ac sem lobortis pretium. Mauris faucibus tempor scelerisque. Nunc vulputate interdum tortor, non tincidunt dui condimentum eget. Aenean in porttitor velit. Nam accumsan rhoncus risus id consectetur.</p> - </div> - -<pre class="prettyprint"> - $('#testDiv5').slimscroll({ - railDraggable: false - }); -</pre> - -</div> - -<script type="text/javascript"> - $(function(){ - - $('#testDiv').slimScroll({ - alwaysVisible: true, - railVisible: true - }); - - $('#testDiv2').slimScroll({ - railVisible: true, - railColor: '#f00' - }); - - $('#testDiv3').slimScroll({ - railVisible: true, - railOpacity: 0.8 - }); - - $('#testDiv4').slimscroll({ - railVisible: true, - railBorderRadius: 0 - }); - - $('#testDiv5').slimscroll({ - railDraggable: false - }); - }); -</script> - - -<script type="text/javascript"> - - //enable syntax highlighter - prettyPrint(); - - var _gaq = _gaq || []; - _gaq.push(['_setAccount', 'UA-3112455-22']); - _gaq.push(['_setDomainName', 'none']); - _gaq.push(['_trackPageview']); - - (function() { - var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true; - ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js'; - var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s); - })(); -</script> -</body> -</html> \ No newline at end of file diff --git a/admin/bower_components/jquery-slimscroll/examples/scroll-events.html b/admin/bower_components/jquery-slimscroll/examples/scroll-events.html deleted file mode 100644 index 9eabbdc..0000000 --- a/admin/bower_components/jquery-slimscroll/examples/scroll-events.html +++ /dev/null @@ -1,88 +0,0 @@ -<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> -<html> -<head> -<title>jquery.slimscroll - top/bottom events</title> -<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> -<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.0/jquery.min.js"></script> - -<link href="libs/prettify/prettify.css" type="text/css" rel="stylesheet" /> -<script type="text/javascript" src="libs/prettify/prettify.js"></script> -<script type="text/javascript" src="../jquery.slimscroll.js"></script> -<link href="style.css" type="text/css" rel="stylesheet" /> -</head> -<body> -<a id="git-fork" href="https://github.com/rochal/jQuery-slimScroll"><img src="https://s3.amazonaws.com/github/ribbons/forkme_right_red_aa0000.png" alt="Fork me on GitHub"></a> - -<div class="examples"> - <div id="testDiv"> - <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nam rhoncus, felis interdum condimentum consectetur, nisl libero elementum eros, vehicula congue lacus eros non diam. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Vivamus mauris lorem, lacinia id tempus non, imperdiet et leo. Cras sit amet erat sit amet lacus egestas placerat. Aenean ultricies ultrices mauris ac congue. In vel tortor vel velit tristique tempus ac id nisi. Proin quis lorem velit. Nunc dui dui, blandit a ullamcorper vitae, congue fringilla lectus. Aliquam ultricies malesuada feugiat. Vestibulum placerat turpis et eros lobortis vel semper sapien pulvinar.</p> - <p>Pellentesque rhoncus aliquet porta. Sed vel magna eu turpis pharetra consequat ut vitae lectus. In molestie sollicitudin mi sit amet convallis. Aliquam erat volutpat. Nullam feugiat placerat ipsum eget malesuada. Nulla facilisis nunc non dolor vehicula pretium. Sed dui magna, sodales id pharetra non, ullamcorper eu sapien. Mauris ac consectetur leo. Mauris consequat, lectus ut bibendum pulvinar, leo magna feugiat enim, eu commodo lacus sem vel ante. Sed tempus metus eget leo mollis vulputate. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos.</p> - <p>Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Sed pulvinar rhoncus quam, vel semper tellus viverra id. Nulla rutrum porttitor odio, a rutrum purus gravida non. Etiam ac purus augue, eget vestibulum purus. Aenean venenatis ullamcorper augue, non consequat elit tempor sed. Donec velit sapien, volutpat sed ultricies egestas, semper a ante. Fusce dapibus, quam eget auctor suscipit, nibh leo posuere ante, at auctor nisi lacus in sem. Morbi interdum consectetur euismod. Cras accumsan est lacus. Nulla eleifend, eros vel consequat commodo, arcu nunc malesuada nunc, quis sagittis felis sem ac turpis.</p> - <p>Nulla rhoncus elementum convallis. Mauris condimentum aliquet egestas. Ut iaculis nisi eget tellus accumsan venenatis. Maecenas imperdiet aliquam porta. Aenean ultrices dolor sed quam laoreet varius. Curabitur condimentum blandit erat, quis accumsan eros interdum vitae. Curabitur ligula arcu, sollicitudin vitae iaculis sed, blandit sit amet enim. Morbi ullamcorper, metus vel mollis tristique, arcu turpis malesuada nisi, at dignissim lorem odio a orci. Proin ultrices, ipsum ut vestibulum interdum, libero felis auctor mi, vitae convallis nisl justo ac tellus. Integer nec lacinia turpis. Etiam massa nisl, rhoncus quis rutrum in, pretium eu leo. Proin a velit ut nulla laoreet vestibulum. Curabitur eu elit vitae felis auctor tincidunt. Curabitur tincidunt, metus sed sollicitudin cursus, quam elit commodo erat, ut tempor erat sapien vitae velit. Morbi nec viverra erat.</p> - <p>Nullam scelerisque facilisis pretium. Vivamus lectus leo, commodo ac sagittis ac, dictum a mi. Donec quis massa ut libero malesuada commodo in et risus. Fusce nunc dolor, aliquet vel rutrum in, molestie sit amet massa. Aliquam suscipit, justo a commodo condimentum, enim sapien fringilla ante, sed lobortis orci lectus in ante. Donec vel interdum est. Donec placerat cursus lacus, eu ultricies nisl tincidunt a. Fusce libero risus, sagittis eleifend iaculis aliquet, condimentum vitae diam. Suspendisse potenti. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Proin leo purus, sodales a venenatis luctus, faucibus ac enim. Sed id metus ac sem lobortis pretium. Mauris faucibus tempor scelerisque. Nunc vulputate interdum tortor, non tincidunt dui condimentum eget. Aenean in porttitor velit. Nam accumsan rhoncus risus id consectetur.</p> - <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nam rhoncus, felis interdum condimentum consectetur, nisl libero elementum eros, vehicula congue lacus eros non diam. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Vivamus mauris lorem, lacinia id tempus non, imperdiet et leo. Cras sit amet erat sit amet lacus egestas placerat. Aenean ultricies ultrices mauris ac congue. In vel tortor vel velit tristique tempus ac id nisi. Proin quis lorem velit. Nunc dui dui, blandit a ullamcorper vitae, congue fringilla lectus. Aliquam ultricies malesuada feugiat. Vestibulum placerat turpis et eros lobortis vel semper sapien pulvinar.</p> - </div> - <div style="padding:2px;border:1px dashed #333;margin:2px;" id="testDivOut"></div> - -<pre class="prettyprint"> - $('#testDiv').slimscroll({ - alwaysVisible: true - }).bind('slimscroll', function(e, pos) { - $('#testDivOut').append("Reached " + pos + ", "); - }); -</pre> - - <div id="testDiv2"> - <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nam rhoncus, felis interdum condimentum consectetur, nisl libero elementum eros, vehicula congue lacus eros non diam. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Vivamus mauris lorem, lacinia id tempus non, imperdiet et leo. Cras sit amet erat sit amet lacus egestas placerat. Aenean ultricies ultrices mauris ac congue. In vel tortor vel velit tristique tempus ac id nisi. Proin quis lorem velit. Nunc dui dui, blandit a ullamcorper vitae, congue fringilla lectus. Aliquam ultricies malesuada feugiat. Vestibulum placerat turpis et eros lobortis vel semper sapien pulvinar.</p> - <p>Pellentesque rhoncus aliquet porta. Sed vel magna eu turpis pharetra consequat ut vitae lectus. In molestie sollicitudin mi sit amet convallis. Aliquam erat volutpat. Nullam feugiat placerat ipsum eget malesuada. Nulla facilisis nunc non dolor vehicula pretium. Sed dui magna, sodales id pharetra non, ullamcorper eu sapien. Mauris ac consectetur leo. Mauris consequat, lectus ut bibendum pulvinar, leo magna feugiat enim, eu commodo lacus sem vel ante. Sed tempus metus eget leo mollis vulputate. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos.</p> - <p>Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Sed pulvinar rhoncus quam, vel semper tellus viverra id. Nulla rutrum porttitor odio, a rutrum purus gravida non. Etiam ac purus augue, eget vestibulum purus. Aenean venenatis ullamcorper augue, non consequat elit tempor sed. Donec velit sapien, volutpat sed ultricies egestas, semper a ante. Fusce dapibus, quam eget auctor suscipit, nibh leo posuere ante, at auctor nisi lacus in sem. Morbi interdum consectetur euismod. Cras accumsan est lacus. Nulla eleifend, eros vel consequat commodo, arcu nunc malesuada nunc, quis sagittis felis sem ac turpis.</p> - <p>Nulla rhoncus elementum convallis. Mauris condimentum aliquet egestas. Ut iaculis nisi eget tellus accumsan venenatis. Maecenas imperdiet aliquam porta. Aenean ultrices dolor sed quam laoreet varius. Curabitur condimentum blandit erat, quis accumsan eros interdum vitae. Curabitur ligula arcu, sollicitudin vitae iaculis sed, blandit sit amet enim. Morbi ullamcorper, metus vel mollis tristique, arcu turpis malesuada nisi, at dignissim lorem odio a orci. Proin ultrices, ipsum ut vestibulum interdum, libero felis auctor mi, vitae convallis nisl justo ac tellus. Integer nec lacinia turpis. Etiam massa nisl, rhoncus quis rutrum in, pretium eu leo. Proin a velit ut nulla laoreet vestibulum. Curabitur eu elit vitae felis auctor tincidunt. Curabitur tincidunt, metus sed sollicitudin cursus, quam elit commodo erat, ut tempor erat sapien vitae velit. Morbi nec viverra erat.</p> - <p>Nullam scelerisque facilisis pretium. Vivamus lectus leo, commodo ac sagittis ac, dictum a mi. Donec quis massa ut libero malesuada commodo in et risus. Fusce nunc dolor, aliquet vel rutrum in, molestie sit amet massa. Aliquam suscipit, justo a commodo condimentum, enim sapien fringilla ante, sed lobortis orci lectus in ante. Donec vel interdum est. Donec placerat cursus lacus, eu ultricies nisl tincidunt a. Fusce libero risus, sagittis eleifend iaculis aliquet, condimentum vitae diam. Suspendisse potenti. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Proin leo purus, sodales a venenatis luctus, faucibus ac enim. Sed id metus ac sem lobortis pretium. Mauris faucibus tempor scelerisque. Nunc vulputate interdum tortor, non tincidunt dui condimentum eget. Aenean in porttitor velit. Nam accumsan rhoncus risus id consectetur.</p> - <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nam rhoncus, felis interdum condimentum consectetur, nisl libero elementum eros, vehicula congue lacus eros non diam. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Vivamus mauris lorem, lacinia id tempus non, imperdiet et leo. Cras sit amet erat sit amet lacus egestas placerat. Aenean ultricies ultrices mauris ac congue. In vel tortor vel velit tristique tempus ac id nisi. Proin quis lorem velit. Nunc dui dui, blandit a ullamcorper vitae, congue fringilla lectus. Aliquam ultricies malesuada feugiat. Vestibulum placerat turpis et eros lobortis vel semper sapien pulvinar.</p> - </div> - <div style="padding:2px;border:1px dashed #333;margin:2px;" id="testDivOut2"></div> - -<pre class="prettyprint"> - $('#testDiv2').slimscroll().bind('slimscrolling', function(e, pos) { - $('#testDivOut2').append("Scroll value: " + pos + "px"); - }); -</pre> - - -</div> - -<script type="text/javascript"> - $(function(){ - - $('#testDiv').slimscroll({ - alwaysVisible: true - }).bind('slimscroll', function(e, pos) { - $('#testDivOut').append("Reached " + pos + ", "); - }); - - $('#testDiv2').slimscroll().bind('slimscrolling', function(e, pos) { - $('#testDivOut2').append("Scroll: " + pos + "px, "); - }); - - }); -</script> - - -<script type="text/javascript"> - - //enable syntax highlighter - prettyPrint(); - - var _gaq = _gaq || []; - _gaq.push(['_setAccount', 'UA-3112455-22']); - _gaq.push(['_setDomainName', 'none']); - _gaq.push(['_trackPageview']); - - (function() { - var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true; - ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js'; - var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s); - })(); -</script> -</body> -</html> \ No newline at end of file diff --git a/admin/bower_components/jquery-slimscroll/examples/scrollbar.html b/admin/bower_components/jquery-slimscroll/examples/scrollbar.html deleted file mode 100644 index 9f13b03..0000000 --- a/admin/bower_components/jquery-slimscroll/examples/scrollbar.html +++ /dev/null @@ -1,189 +0,0 @@ -<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> -<html> -<head> -<title>jquery.slimscroll - scrollbar options</title> -<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> -<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.0/jquery.min.js"></script> - -<link href="libs/prettify/prettify.css" type="text/css" rel="stylesheet" /> -<script type="text/javascript" src="libs/prettify/prettify.js"></script> -<script type="text/javascript" src="../jquery.slimscroll.js"></script> -<link href="style.css" type="text/css" rel="stylesheet" /> -</head> -<body> -<a id="git-fork" href="https://github.com/rochal/jQuery-slimScroll"><img src="https://s3.amazonaws.com/github/ribbons/forkme_right_red_aa0000.png" alt="Fork me on GitHub"></a> - -<div class="examples"> - <div id="testDiv"> - <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nam rhoncus, felis interdum condimentum consectetur, nisl libero elementum eros, vehicula congue lacus eros non diam. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Vivamus mauris lorem, lacinia id tempus non, imperdiet et leo. Cras sit amet erat sit amet lacus egestas placerat. Aenean ultricies ultrices mauris ac congue. In vel tortor vel velit tristique tempus ac id nisi. Proin quis lorem velit. Nunc dui dui, blandit a ullamcorper vitae, congue fringilla lectus. Aliquam ultricies malesuada feugiat. Vestibulum placerat turpis et eros lobortis vel semper sapien pulvinar.</p> - <p>Pellentesque rhoncus aliquet porta. Sed vel magna eu turpis pharetra consequat ut vitae lectus. In molestie sollicitudin mi sit amet convallis. Aliquam erat volutpat. Nullam feugiat placerat ipsum eget malesuada. Nulla facilisis nunc non dolor vehicula pretium. Sed dui magna, sodales id pharetra non, ullamcorper eu sapien. Mauris ac consectetur leo. Mauris consequat, lectus ut bibendum pulvinar, leo magna feugiat enim, eu commodo lacus sem vel ante. Sed tempus metus eget leo mollis vulputate. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos.</p> - <p>Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Sed pulvinar rhoncus quam, vel semper tellus viverra id. Nulla rutrum porttitor odio, a rutrum purus gravida non. Etiam ac purus augue, eget vestibulum purus. Aenean venenatis ullamcorper augue, non consequat elit tempor sed. Donec velit sapien, volutpat sed ultricies egestas, semper a ante. Fusce dapibus, quam eget auctor suscipit, nibh leo posuere ante, at auctor nisi lacus in sem. Morbi interdum consectetur euismod. Cras accumsan est lacus. Nulla eleifend, eros vel consequat commodo, arcu nunc malesuada nunc, quis sagittis felis sem ac turpis.</p> - <p>Nulla rhoncus elementum convallis. Mauris condimentum aliquet egestas. Ut iaculis nisi eget tellus accumsan venenatis. Maecenas imperdiet aliquam porta. Aenean ultrices dolor sed quam laoreet varius. Curabitur condimentum blandit erat, quis accumsan eros interdum vitae. Curabitur ligula arcu, sollicitudin vitae iaculis sed, blandit sit amet enim. Morbi ullamcorper, metus vel mollis tristique, arcu turpis malesuada nisi, at dignissim lorem odio a orci. Proin ultrices, ipsum ut vestibulum interdum, libero felis auctor mi, vitae convallis nisl justo ac tellus. Integer nec lacinia turpis. Etiam massa nisl, rhoncus quis rutrum in, pretium eu leo. Proin a velit ut nulla laoreet vestibulum. Curabitur eu elit vitae felis auctor tincidunt. Curabitur tincidunt, metus sed sollicitudin cursus, quam elit commodo erat, ut tempor erat sapien vitae velit. Morbi nec viverra erat.</p> - <p>Nullam scelerisque facilisis pretium. Vivamus lectus leo, commodo ac sagittis ac, dictum a mi. Donec quis massa ut libero malesuada commodo in et risus. Fusce nunc dolor, aliquet vel rutrum in, molestie sit amet massa. Aliquam suscipit, justo a commodo condimentum, enim sapien fringilla ante, sed lobortis orci lectus in ante. Donec vel interdum est. Donec placerat cursus lacus, eu ultricies nisl tincidunt a. Fusce libero risus, sagittis eleifend iaculis aliquet, condimentum vitae diam. Suspendisse potenti. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Proin leo purus, sodales a venenatis luctus, faucibus ac enim. Sed id metus ac sem lobortis pretium. Mauris faucibus tempor scelerisque. Nunc vulputate interdum tortor, non tincidunt dui condimentum eget. Aenean in porttitor velit. Nam accumsan rhoncus risus id consectetur.</p> - <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nam rhoncus, felis interdum condimentum consectetur, nisl libero elementum eros, vehicula congue lacus eros non diam. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Vivamus mauris lorem, lacinia id tempus non, imperdiet et leo. Cras sit amet erat sit amet lacus egestas placerat. Aenean ultricies ultrices mauris ac congue. In vel tortor vel velit tristique tempus ac id nisi. Proin quis lorem velit. Nunc dui dui, blandit a ullamcorper vitae, congue fringilla lectus. Aliquam ultricies malesuada feugiat. Vestibulum placerat turpis et eros lobortis vel semper sapien pulvinar.</p> - <p>Pellentesque rhoncus aliquet porta. Sed vel magna eu turpis pharetra consequat ut vitae lectus. In molestie sollicitudin mi sit amet convallis. Aliquam erat volutpat. Nullam feugiat placerat ipsum eget malesuada. Nulla facilisis nunc non dolor vehicula pretium. Sed dui magna, sodales id pharetra non, ullamcorper eu sapien. Mauris ac consectetur leo. Mauris consequat, lectus ut bibendum pulvinar, leo magna feugiat enim, eu commodo lacus sem vel ante. Sed tempus metus eget leo mollis vulputate. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos.</p> - <p>Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Sed pulvinar rhoncus quam, vel semper tellus viverra id. Nulla rutrum porttitor odio, a rutrum purus gravida non. Etiam ac purus augue, eget vestibulum purus. Aenean venenatis ullamcorper augue, non consequat elit tempor sed. Donec velit sapien, volutpat sed ultricies egestas, semper a ante. Fusce dapibus, quam eget auctor suscipit, nibh leo posuere ante, at auctor nisi lacus in sem. Morbi interdum consectetur euismod. Cras accumsan est lacus. Nulla eleifend, eros vel consequat commodo, arcu nunc malesuada nunc, quis sagittis felis sem ac turpis.</p> - <p>Nulla rhoncus elementum convallis. Mauris condimentum aliquet egestas. Ut iaculis nisi eget tellus accumsan venenatis. Maecenas imperdiet aliquam porta. Aenean ultrices dolor sed quam laoreet varius. Curabitur condimentum blandit erat, quis accumsan eros interdum vitae. Curabitur ligula arcu, sollicitudin vitae iaculis sed, blandit sit amet enim. Morbi ullamcorper, metus vel mollis tristique, arcu turpis malesuada nisi, at dignissim lorem odio a orci. Proin ultrices, ipsum ut vestibulum interdum, libero felis auctor mi, vitae convallis nisl justo ac tellus. Integer nec lacinia turpis. Etiam massa nisl, rhoncus quis rutrum in, pretium eu leo. Proin a velit ut nulla laoreet vestibulum. Curabitur eu elit vitae felis auctor tincidunt. Curabitur tincidunt, metus sed sollicitudin cursus, quam elit commodo erat, ut tempor erat sapien vitae velit. Morbi nec viverra erat.</p> - <p>Nullam scelerisque facilisis pretium. Vivamus lectus leo, commodo ac sagittis ac, dictum a mi. Donec quis massa ut libero malesuada commodo in et risus. Fusce nunc dolor, aliquet vel rutrum in, molestie sit amet massa. Aliquam suscipit, justo a commodo condimentum, enim sapien fringilla ante, sed lobortis orci lectus in ante. Donec vel interdum est. Donec placerat cursus lacus, eu ultricies nisl tincidunt a. Fusce libero risus, sagittis eleifend iaculis aliquet, condimentum vitae diam. Suspendisse potenti. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Proin leo purus, sodales a venenatis luctus, faucibus ac enim. Sed id metus ac sem lobortis pretium. Mauris faucibus tempor scelerisque. Nunc vulputate interdum tortor, non tincidunt dui condimentum eget. Aenean in porttitor velit. Nam accumsan rhoncus risus id consectetur.</p> - <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nam rhoncus, felis interdum condimentum consectetur, nisl libero elementum eros, vehicula congue lacus eros non diam. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Vivamus mauris lorem, lacinia id tempus non, imperdiet et leo. Cras sit amet erat sit amet lacus egestas placerat. Aenean ultricies ultrices mauris ac congue. In vel tortor vel velit tristique tempus ac id nisi. Proin quis lorem velit. Nunc dui dui, blandit a ullamcorper vitae, congue fringilla lectus. Aliquam ultricies malesuada feugiat. Vestibulum placerat turpis et eros lobortis vel semper sapien pulvinar.</p> - <p>Pellentesque rhoncus aliquet porta. Sed vel magna eu turpis pharetra consequat ut vitae lectus. In molestie sollicitudin mi sit amet convallis. Aliquam erat volutpat. Nullam feugiat placerat ipsum eget malesuada. Nulla facilisis nunc non dolor vehicula pretium. Sed dui magna, sodales id pharetra non, ullamcorper eu sapien. Mauris ac consectetur leo. Mauris consequat, lectus ut bibendum pulvinar, leo magna feugiat enim, eu commodo lacus sem vel ante. Sed tempus metus eget leo mollis vulputate. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos.</p> - <p>Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Sed pulvinar rhoncus quam, vel semper tellus viverra id. Nulla rutrum porttitor odio, a rutrum purus gravida non. Etiam ac purus augue, eget vestibulum purus. Aenean venenatis ullamcorper augue, non consequat elit tempor sed. Donec velit sapien, volutpat sed ultricies egestas, semper a ante. Fusce dapibus, quam eget auctor suscipit, nibh leo posuere ante, at auctor nisi lacus in sem. Morbi interdum consectetur euismod. Cras accumsan est lacus. Nulla eleifend, eros vel consequat commodo, arcu nunc malesuada nunc, quis sagittis felis sem ac turpis.</p> - <p>Nulla rhoncus elementum convallis. Mauris condimentum aliquet egestas. Ut iaculis nisi eget tellus accumsan venenatis. Maecenas imperdiet aliquam porta. Aenean ultrices dolor sed quam laoreet varius. Curabitur condimentum blandit erat, quis accumsan eros interdum vitae. Curabitur ligula arcu, sollicitudin vitae iaculis sed, blandit sit amet enim. Morbi ullamcorper, metus vel mollis tristique, arcu turpis malesuada nisi, at dignissim lorem odio a orci. Proin ultrices, ipsum ut vestibulum interdum, libero felis auctor mi, vitae convallis nisl justo ac tellus. Integer nec lacinia turpis. Etiam massa nisl, rhoncus quis rutrum in, pretium eu leo. Proin a velit ut nulla laoreet vestibulum. Curabitur eu elit vitae felis auctor tincidunt. Curabitur tincidunt, metus sed sollicitudin cursus, quam elit commodo erat, ut tempor erat sapien vitae velit. Morbi nec viverra erat.</p> - <p>Nullam scelerisque facilisis pretium. Vivamus lectus leo, commodo ac sagittis ac, dictum a mi. Donec quis massa ut libero malesuada commodo in et risus. Fusce nunc dolor, aliquet vel rutrum in, molestie sit amet massa. Aliquam suscipit, justo a commodo condimentum, enim sapien fringilla ante, sed lobortis orci lectus in ante. Donec vel interdum est. Donec placerat cursus lacus, eu ultricies nisl tincidunt a. Fusce libero risus, sagittis eleifend iaculis aliquet, condimentum vitae diam. Suspendisse potenti. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Proin leo purus, sodales a venenatis luctus, faucibus ac enim. Sed id metus ac sem lobortis pretium. Mauris faucibus tempor scelerisque. Nunc vulputate interdum tortor, non tincidunt dui condimentum eget. Aenean in porttitor velit. Nam accumsan rhoncus risus id consectetur.</p> - </div> - -<pre class="prettyprint"> - $('#testDiv').slimscroll({ - size: '15px' - }); -</pre> - - <div id="testDiv2"> - <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nam rhoncus, felis interdum condimentum consectetur, nisl libero elementum eros, vehicula congue lacus eros non diam. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Vivamus mauris lorem, lacinia id tempus non, imperdiet et leo. Cras sit amet erat sit amet lacus egestas placerat. Aenean ultricies ultrices mauris ac congue. In vel tortor vel velit tristique tempus ac id nisi. Proin quis lorem velit. Nunc dui dui, blandit a ullamcorper vitae, congue fringilla lectus. Aliquam ultricies malesuada feugiat. Vestibulum placerat turpis et eros lobortis vel semper sapien pulvinar.</p> - <p>Pellentesque rhoncus aliquet porta. Sed vel magna eu turpis pharetra consequat ut vitae lectus. In molestie sollicitudin mi sit amet convallis. Aliquam erat volutpat. Nullam feugiat placerat ipsum eget malesuada. Nulla facilisis nunc non dolor vehicula pretium. Sed dui magna, sodales id pharetra non, ullamcorper eu sapien. Mauris ac consectetur leo. Mauris consequat, lectus ut bibendum pulvinar, leo magna feugiat enim, eu commodo lacus sem vel ante. Sed tempus metus eget leo mollis vulputate. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos.</p> - <p>Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Sed pulvinar rhoncus quam, vel semper tellus viverra id. Nulla rutrum porttitor odio, a rutrum purus gravida non. Etiam ac purus augue, eget vestibulum purus. Aenean venenatis ullamcorper augue, non consequat elit tempor sed. Donec velit sapien, volutpat sed ultricies egestas, semper a ante. Fusce dapibus, quam eget auctor suscipit, nibh leo posuere ante, at auctor nisi lacus in sem. Morbi interdum consectetur euismod. Cras accumsan est lacus. Nulla eleifend, eros vel consequat commodo, arcu nunc malesuada nunc, quis sagittis felis sem ac turpis.</p> - <p>Nulla rhoncus elementum convallis. Mauris condimentum aliquet egestas. Ut iaculis nisi eget tellus accumsan venenatis. Maecenas imperdiet aliquam porta. Aenean ultrices dolor sed quam laoreet varius. Curabitur condimentum blandit erat, quis accumsan eros interdum vitae. Curabitur ligula arcu, sollicitudin vitae iaculis sed, blandit sit amet enim. Morbi ullamcorper, metus vel mollis tristique, arcu turpis malesuada nisi, at dignissim lorem odio a orci. Proin ultrices, ipsum ut vestibulum interdum, libero felis auctor mi, vitae convallis nisl justo ac tellus. Integer nec lacinia turpis. Etiam massa nisl, rhoncus quis rutrum in, pretium eu leo. Proin a velit ut nulla laoreet vestibulum. Curabitur eu elit vitae felis auctor tincidunt. Curabitur tincidunt, metus sed sollicitudin cursus, quam elit commodo erat, ut tempor erat sapien vitae velit. Morbi nec viverra erat.</p> - <p>Nullam scelerisque facilisis pretium. Vivamus lectus leo, commodo ac sagittis ac, dictum a mi. Donec quis massa ut libero malesuada commodo in et risus. Fusce nunc dolor, aliquet vel rutrum in, molestie sit amet massa. Aliquam suscipit, justo a commodo condimentum, enim sapien fringilla ante, sed lobortis orci lectus in ante. Donec vel interdum est. Donec placerat cursus lacus, eu ultricies nisl tincidunt a. Fusce libero risus, sagittis eleifend iaculis aliquet, condimentum vitae diam. Suspendisse potenti. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Proin leo purus, sodales a venenatis luctus, faucibus ac enim. Sed id metus ac sem lobortis pretium. Mauris faucibus tempor scelerisque. Nunc vulputate interdum tortor, non tincidunt dui condimentum eget. Aenean in porttitor velit. Nam accumsan rhoncus risus id consectetur.</p> - <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nam rhoncus, felis interdum condimentum consectetur, nisl libero elementum eros, vehicula congue lacus eros non diam. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Vivamus mauris lorem, lacinia id tempus non, imperdiet et leo. Cras sit amet erat sit amet lacus egestas placerat. Aenean ultricies ultrices mauris ac congue. In vel tortor vel velit tristique tempus ac id nisi. Proin quis lorem velit. Nunc dui dui, blandit a ullamcorper vitae, congue fringilla lectus. Aliquam ultricies malesuada feugiat. Vestibulum placerat turpis et eros lobortis vel semper sapien pulvinar.</p> - <p>Pellentesque rhoncus aliquet porta. Sed vel magna eu turpis pharetra consequat ut vitae lectus. In molestie sollicitudin mi sit amet convallis. Aliquam erat volutpat. Nullam feugiat placerat ipsum eget malesuada. Nulla facilisis nunc non dolor vehicula pretium. Sed dui magna, sodales id pharetra non, ullamcorper eu sapien. Mauris ac consectetur leo. Mauris consequat, lectus ut bibendum pulvinar, leo magna feugiat enim, eu commodo lacus sem vel ante. Sed tempus metus eget leo mollis vulputate. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos.</p> - <p>Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Sed pulvinar rhoncus quam, vel semper tellus viverra id. Nulla rutrum porttitor odio, a rutrum purus gravida non. Etiam ac purus augue, eget vestibulum purus. Aenean venenatis ullamcorper augue, non consequat elit tempor sed. Donec velit sapien, volutpat sed ultricies egestas, semper a ante. Fusce dapibus, quam eget auctor suscipit, nibh leo posuere ante, at auctor nisi lacus in sem. Morbi interdum consectetur euismod. Cras accumsan est lacus. Nulla eleifend, eros vel consequat commodo, arcu nunc malesuada nunc, quis sagittis felis sem ac turpis.</p> - <p>Nulla rhoncus elementum convallis. Mauris condimentum aliquet egestas. Ut iaculis nisi eget tellus accumsan venenatis. Maecenas imperdiet aliquam porta. Aenean ultrices dolor sed quam laoreet varius. Curabitur condimentum blandit erat, quis accumsan eros interdum vitae. Curabitur ligula arcu, sollicitudin vitae iaculis sed, blandit sit amet enim. Morbi ullamcorper, metus vel mollis tristique, arcu turpis malesuada nisi, at dignissim lorem odio a orci. Proin ultrices, ipsum ut vestibulum interdum, libero felis auctor mi, vitae convallis nisl justo ac tellus. Integer nec lacinia turpis. Etiam massa nisl, rhoncus quis rutrum in, pretium eu leo. Proin a velit ut nulla laoreet vestibulum. Curabitur eu elit vitae felis auctor tincidunt. Curabitur tincidunt, metus sed sollicitudin cursus, quam elit commodo erat, ut tempor erat sapien vitae velit. Morbi nec viverra erat.</p> - <p>Nullam scelerisque facilisis pretium. Vivamus lectus leo, commodo ac sagittis ac, dictum a mi. Donec quis massa ut libero malesuada commodo in et risus. Fusce nunc dolor, aliquet vel rutrum in, molestie sit amet massa. Aliquam suscipit, justo a commodo condimentum, enim sapien fringilla ante, sed lobortis orci lectus in ante. Donec vel interdum est. Donec placerat cursus lacus, eu ultricies nisl tincidunt a. Fusce libero risus, sagittis eleifend iaculis aliquet, condimentum vitae diam. Suspendisse potenti. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Proin leo purus, sodales a venenatis luctus, faucibus ac enim. Sed id metus ac sem lobortis pretium. Mauris faucibus tempor scelerisque. Nunc vulputate interdum tortor, non tincidunt dui condimentum eget. Aenean in porttitor velit. Nam accumsan rhoncus risus id consectetur.</p> - <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nam rhoncus, felis interdum condimentum consectetur, nisl libero elementum eros, vehicula congue lacus eros non diam. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Vivamus mauris lorem, lacinia id tempus non, imperdiet et leo. Cras sit amet erat sit amet lacus egestas placerat. Aenean ultricies ultrices mauris ac congue. In vel tortor vel velit tristique tempus ac id nisi. Proin quis lorem velit. Nunc dui dui, blandit a ullamcorper vitae, congue fringilla lectus. Aliquam ultricies malesuada feugiat. Vestibulum placerat turpis et eros lobortis vel semper sapien pulvinar.</p> - <p>Pellentesque rhoncus aliquet porta. Sed vel magna eu turpis pharetra consequat ut vitae lectus. In molestie sollicitudin mi sit amet convallis. Aliquam erat volutpat. Nullam feugiat placerat ipsum eget malesuada. Nulla facilisis nunc non dolor vehicula pretium. Sed dui magna, sodales id pharetra non, ullamcorper eu sapien. Mauris ac consectetur leo. Mauris consequat, lectus ut bibendum pulvinar, leo magna feugiat enim, eu commodo lacus sem vel ante. Sed tempus metus eget leo mollis vulputate. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos.</p> - <p>Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Sed pulvinar rhoncus quam, vel semper tellus viverra id. Nulla rutrum porttitor odio, a rutrum purus gravida non. Etiam ac purus augue, eget vestibulum purus. Aenean venenatis ullamcorper augue, non consequat elit tempor sed. Donec velit sapien, volutpat sed ultricies egestas, semper a ante. Fusce dapibus, quam eget auctor suscipit, nibh leo posuere ante, at auctor nisi lacus in sem. Morbi interdum consectetur euismod. Cras accumsan est lacus. Nulla eleifend, eros vel consequat commodo, arcu nunc malesuada nunc, quis sagittis felis sem ac turpis.</p> - <p>Nulla rhoncus elementum convallis. Mauris condimentum aliquet egestas. Ut iaculis nisi eget tellus accumsan venenatis. Maecenas imperdiet aliquam porta. Aenean ultrices dolor sed quam laoreet varius. Curabitur condimentum blandit erat, quis accumsan eros interdum vitae. Curabitur ligula arcu, sollicitudin vitae iaculis sed, blandit sit amet enim. Morbi ullamcorper, metus vel mollis tristique, arcu turpis malesuada nisi, at dignissim lorem odio a orci. Proin ultrices, ipsum ut vestibulum interdum, libero felis auctor mi, vitae convallis nisl justo ac tellus. Integer nec lacinia turpis. Etiam massa nisl, rhoncus quis rutrum in, pretium eu leo. Proin a velit ut nulla laoreet vestibulum. Curabitur eu elit vitae felis auctor tincidunt. Curabitur tincidunt, metus sed sollicitudin cursus, quam elit commodo erat, ut tempor erat sapien vitae velit. Morbi nec viverra erat.</p> - <p>Nullam scelerisque facilisis pretium. Vivamus lectus leo, commodo ac sagittis ac, dictum a mi. Donec quis massa ut libero malesuada commodo in et risus. Fusce nunc dolor, aliquet vel rutrum in, molestie sit amet massa. Aliquam suscipit, justo a commodo condimentum, enim sapien fringilla ante, sed lobortis orci lectus in ante. Donec vel interdum est. Donec placerat cursus lacus, eu ultricies nisl tincidunt a. Fusce libero risus, sagittis eleifend iaculis aliquet, condimentum vitae diam. Suspendisse potenti. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Proin leo purus, sodales a venenatis luctus, faucibus ac enim. Sed id metus ac sem lobortis pretium. Mauris faucibus tempor scelerisque. Nunc vulputate interdum tortor, non tincidunt dui condimentum eget. Aenean in porttitor velit. Nam accumsan rhoncus risus id consectetur.</p> - </div> - -<pre class="prettyprint"> - $('#testDiv2').slimScroll({ - position: 'left' - }); -</pre> - - <div id="testDiv3"> - <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nam rhoncus, felis interdum condimentum consectetur, nisl libero elementum eros, vehicula congue lacus eros non diam. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Vivamus mauris lorem, lacinia id tempus non, imperdiet et leo. Cras sit amet erat sit amet lacus egestas placerat. Aenean ultricies ultrices mauris ac congue. In vel tortor vel velit tristique tempus ac id nisi. Proin quis lorem velit. Nunc dui dui, blandit a ullamcorper vitae, congue fringilla lectus. Aliquam ultricies malesuada feugiat. Vestibulum placerat turpis et eros lobortis vel semper sapien pulvinar.</p> - <p>Pellentesque rhoncus aliquet porta. Sed vel magna eu turpis pharetra consequat ut vitae lectus. In molestie sollicitudin mi sit amet convallis. Aliquam erat volutpat. Nullam feugiat placerat ipsum eget malesuada. Nulla facilisis nunc non dolor vehicula pretium. Sed dui magna, sodales id pharetra non, ullamcorper eu sapien. Mauris ac consectetur leo. Mauris consequat, lectus ut bibendum pulvinar, leo magna feugiat enim, eu commodo lacus sem vel ante. Sed tempus metus eget leo mollis vulputate. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos.</p> - <p>Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Sed pulvinar rhoncus quam, vel semper tellus viverra id. Nulla rutrum porttitor odio, a rutrum purus gravida non. Etiam ac purus augue, eget vestibulum purus. Aenean venenatis ullamcorper augue, non consequat elit tempor sed. Donec velit sapien, volutpat sed ultricies egestas, semper a ante. Fusce dapibus, quam eget auctor suscipit, nibh leo posuere ante, at auctor nisi lacus in sem. Morbi interdum consectetur euismod. Cras accumsan est lacus. Nulla eleifend, eros vel consequat commodo, arcu nunc malesuada nunc, quis sagittis felis sem ac turpis.</p> - <p>Nulla rhoncus elementum convallis. Mauris condimentum aliquet egestas. Ut iaculis nisi eget tellus accumsan venenatis. Maecenas imperdiet aliquam porta. Aenean ultrices dolor sed quam laoreet varius. Curabitur condimentum blandit erat, quis accumsan eros interdum vitae. Curabitur ligula arcu, sollicitudin vitae iaculis sed, blandit sit amet enim. Morbi ullamcorper, metus vel mollis tristique, arcu turpis malesuada nisi, at dignissim lorem odio a orci. Proin ultrices, ipsum ut vestibulum interdum, libero felis auctor mi, vitae convallis nisl justo ac tellus. Integer nec lacinia turpis. Etiam massa nisl, rhoncus quis rutrum in, pretium eu leo. Proin a velit ut nulla laoreet vestibulum. Curabitur eu elit vitae felis auctor tincidunt. Curabitur tincidunt, metus sed sollicitudin cursus, quam elit commodo erat, ut tempor erat sapien vitae velit. Morbi nec viverra erat.</p> - <p>Nullam scelerisque facilisis pretium. Vivamus lectus leo, commodo ac sagittis ac, dictum a mi. Donec quis massa ut libero malesuada commodo in et risus. Fusce nunc dolor, aliquet vel rutrum in, molestie sit amet massa. Aliquam suscipit, justo a commodo condimentum, enim sapien fringilla ante, sed lobortis orci lectus in ante. Donec vel interdum est. Donec placerat cursus lacus, eu ultricies nisl tincidunt a. Fusce libero risus, sagittis eleifend iaculis aliquet, condimentum vitae diam. Suspendisse potenti. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Proin leo purus, sodales a venenatis luctus, faucibus ac enim. Sed id metus ac sem lobortis pretium. Mauris faucibus tempor scelerisque. Nunc vulputate interdum tortor, non tincidunt dui condimentum eget. Aenean in porttitor velit. Nam accumsan rhoncus risus id consectetur.</p> - <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nam rhoncus, felis interdum condimentum consectetur, nisl libero elementum eros, vehicula congue lacus eros non diam. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Vivamus mauris lorem, lacinia id tempus non, imperdiet et leo. Cras sit amet erat sit amet lacus egestas placerat. Aenean ultricies ultrices mauris ac congue. In vel tortor vel velit tristique tempus ac id nisi. Proin quis lorem velit. Nunc dui dui, blandit a ullamcorper vitae, congue fringilla lectus. Aliquam ultricies malesuada feugiat. Vestibulum placerat turpis et eros lobortis vel semper sapien pulvinar.</p> - <p>Pellentesque rhoncus aliquet porta. Sed vel magna eu turpis pharetra consequat ut vitae lectus. In molestie sollicitudin mi sit amet convallis. Aliquam erat volutpat. Nullam feugiat placerat ipsum eget malesuada. Nulla facilisis nunc non dolor vehicula pretium. Sed dui magna, sodales id pharetra non, ullamcorper eu sapien. Mauris ac consectetur leo. Mauris consequat, lectus ut bibendum pulvinar, leo magna feugiat enim, eu commodo lacus sem vel ante. Sed tempus metus eget leo mollis vulputate. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos.</p> - <p>Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Sed pulvinar rhoncus quam, vel semper tellus viverra id. Nulla rutrum porttitor odio, a rutrum purus gravida non. Etiam ac purus augue, eget vestibulum purus. Aenean venenatis ullamcorper augue, non consequat elit tempor sed. Donec velit sapien, volutpat sed ultricies egestas, semper a ante. Fusce dapibus, quam eget auctor suscipit, nibh leo posuere ante, at auctor nisi lacus in sem. Morbi interdum consectetur euismod. Cras accumsan est lacus. Nulla eleifend, eros vel consequat commodo, arcu nunc malesuada nunc, quis sagittis felis sem ac turpis.</p> - <p>Nulla rhoncus elementum convallis. Mauris condimentum aliquet egestas. Ut iaculis nisi eget tellus accumsan venenatis. Maecenas imperdiet aliquam porta. Aenean ultrices dolor sed quam laoreet varius. Curabitur condimentum blandit erat, quis accumsan eros interdum vitae. Curabitur ligula arcu, sollicitudin vitae iaculis sed, blandit sit amet enim. Morbi ullamcorper, metus vel mollis tristique, arcu turpis malesuada nisi, at dignissim lorem odio a orci. Proin ultrices, ipsum ut vestibulum interdum, libero felis auctor mi, vitae convallis nisl justo ac tellus. Integer nec lacinia turpis. Etiam massa nisl, rhoncus quis rutrum in, pretium eu leo. Proin a velit ut nulla laoreet vestibulum. Curabitur eu elit vitae felis auctor tincidunt. Curabitur tincidunt, metus sed sollicitudin cursus, quam elit commodo erat, ut tempor erat sapien vitae velit. Morbi nec viverra erat.</p> - <p>Nullam scelerisque facilisis pretium. Vivamus lectus leo, commodo ac sagittis ac, dictum a mi. Donec quis massa ut libero malesuada commodo in et risus. Fusce nunc dolor, aliquet vel rutrum in, molestie sit amet massa. Aliquam suscipit, justo a commodo condimentum, enim sapien fringilla ante, sed lobortis orci lectus in ante. Donec vel interdum est. Donec placerat cursus lacus, eu ultricies nisl tincidunt a. Fusce libero risus, sagittis eleifend iaculis aliquet, condimentum vitae diam. Suspendisse potenti. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Proin leo purus, sodales a venenatis luctus, faucibus ac enim. Sed id metus ac sem lobortis pretium. Mauris faucibus tempor scelerisque. Nunc vulputate interdum tortor, non tincidunt dui condimentum eget. Aenean in porttitor velit. Nam accumsan rhoncus risus id consectetur.</p> - <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nam rhoncus, felis interdum condimentum consectetur, nisl libero elementum eros, vehicula congue lacus eros non diam. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Vivamus mauris lorem, lacinia id tempus non, imperdiet et leo. Cras sit amet erat sit amet lacus egestas placerat. Aenean ultricies ultrices mauris ac congue. In vel tortor vel velit tristique tempus ac id nisi. Proin quis lorem velit. Nunc dui dui, blandit a ullamcorper vitae, congue fringilla lectus. Aliquam ultricies malesuada feugiat. Vestibulum placerat turpis et eros lobortis vel semper sapien pulvinar.</p> - <p>Pellentesque rhoncus aliquet porta. Sed vel magna eu turpis pharetra consequat ut vitae lectus. In molestie sollicitudin mi sit amet convallis. Aliquam erat volutpat. Nullam feugiat placerat ipsum eget malesuada. Nulla facilisis nunc non dolor vehicula pretium. Sed dui magna, sodales id pharetra non, ullamcorper eu sapien. Mauris ac consectetur leo. Mauris consequat, lectus ut bibendum pulvinar, leo magna feugiat enim, eu commodo lacus sem vel ante. Sed tempus metus eget leo mollis vulputate. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos.</p> - <p>Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Sed pulvinar rhoncus quam, vel semper tellus viverra id. Nulla rutrum porttitor odio, a rutrum purus gravida non. Etiam ac purus augue, eget vestibulum purus. Aenean venenatis ullamcorper augue, non consequat elit tempor sed. Donec velit sapien, volutpat sed ultricies egestas, semper a ante. Fusce dapibus, quam eget auctor suscipit, nibh leo posuere ante, at auctor nisi lacus in sem. Morbi interdum consectetur euismod. Cras accumsan est lacus. Nulla eleifend, eros vel consequat commodo, arcu nunc malesuada nunc, quis sagittis felis sem ac turpis.</p> - <p>Nulla rhoncus elementum convallis. Mauris condimentum aliquet egestas. Ut iaculis nisi eget tellus accumsan venenatis. Maecenas imperdiet aliquam porta. Aenean ultrices dolor sed quam laoreet varius. Curabitur condimentum blandit erat, quis accumsan eros interdum vitae. Curabitur ligula arcu, sollicitudin vitae iaculis sed, blandit sit amet enim. Morbi ullamcorper, metus vel mollis tristique, arcu turpis malesuada nisi, at dignissim lorem odio a orci. Proin ultrices, ipsum ut vestibulum interdum, libero felis auctor mi, vitae convallis nisl justo ac tellus. Integer nec lacinia turpis. Etiam massa nisl, rhoncus quis rutrum in, pretium eu leo. Proin a velit ut nulla laoreet vestibulum. Curabitur eu elit vitae felis auctor tincidunt. Curabitur tincidunt, metus sed sollicitudin cursus, quam elit commodo erat, ut tempor erat sapien vitae velit. Morbi nec viverra erat.</p> - <p>Nullam scelerisque facilisis pretium. Vivamus lectus leo, commodo ac sagittis ac, dictum a mi. Donec quis massa ut libero malesuada commodo in et risus. Fusce nunc dolor, aliquet vel rutrum in, molestie sit amet massa. Aliquam suscipit, justo a commodo condimentum, enim sapien fringilla ante, sed lobortis orci lectus in ante. Donec vel interdum est. Donec placerat cursus lacus, eu ultricies nisl tincidunt a. Fusce libero risus, sagittis eleifend iaculis aliquet, condimentum vitae diam. Suspendisse potenti. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Proin leo purus, sodales a venenatis luctus, faucibus ac enim. Sed id metus ac sem lobortis pretium. Mauris faucibus tempor scelerisque. Nunc vulputate interdum tortor, non tincidunt dui condimentum eget. Aenean in porttitor velit. Nam accumsan rhoncus risus id consectetur.</p> - </div> - -<pre class="prettyprint"> - $('#testDiv3').slimScroll({ - color: '#00f' - }); -</pre> - - - - <div id="testDiv4"> - <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nam rhoncus, felis interdum condimentum consectetur, nisl libero elementum eros, vehicula congue lacus eros non diam. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Vivamus mauris lorem, lacinia id tempus non, imperdiet et leo. Cras sit amet erat sit amet lacus egestas placerat. Aenean ultricies ultrices mauris ac congue. In vel tortor vel velit tristique tempus ac id nisi. Proin quis lorem velit. Nunc dui dui, blandit a ullamcorper vitae, congue fringilla lectus. Aliquam ultricies malesuada feugiat. Vestibulum placerat turpis et eros lobortis vel semper sapien pulvinar.</p> - <p>Pellentesque rhoncus aliquet porta. Sed vel magna eu turpis pharetra consequat ut vitae lectus. In molestie sollicitudin mi sit amet convallis. Aliquam erat volutpat. Nullam feugiat placerat ipsum eget malesuada. Nulla facilisis nunc non dolor vehicula pretium. Sed dui magna, sodales id pharetra non, ullamcorper eu sapien. Mauris ac consectetur leo. Mauris consequat, lectus ut bibendum pulvinar, leo magna feugiat enim, eu commodo lacus sem vel ante. Sed tempus metus eget leo mollis vulputate. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos.</p> - <p>Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Sed pulvinar rhoncus quam, vel semper tellus viverra id. Nulla rutrum porttitor odio, a rutrum purus gravida non. Etiam ac purus augue, eget vestibulum purus. Aenean venenatis ullamcorper augue, non consequat elit tempor sed. Donec velit sapien, volutpat sed ultricies egestas, semper a ante. Fusce dapibus, quam eget auctor suscipit, nibh leo posuere ante, at auctor nisi lacus in sem. Morbi interdum consectetur euismod. Cras accumsan est lacus. Nulla eleifend, eros vel consequat commodo, arcu nunc malesuada nunc, quis sagittis felis sem ac turpis.</p> - <p>Nulla rhoncus elementum convallis. Mauris condimentum aliquet egestas. Ut iaculis nisi eget tellus accumsan venenatis. Maecenas imperdiet aliquam porta. Aenean ultrices dolor sed quam laoreet varius. Curabitur condimentum blandit erat, quis accumsan eros interdum vitae. Curabitur ligula arcu, sollicitudin vitae iaculis sed, blandit sit amet enim. Morbi ullamcorper, metus vel mollis tristique, arcu turpis malesuada nisi, at dignissim lorem odio a orci. Proin ultrices, ipsum ut vestibulum interdum, libero felis auctor mi, vitae convallis nisl justo ac tellus. Integer nec lacinia turpis. Etiam massa nisl, rhoncus quis rutrum in, pretium eu leo. Proin a velit ut nulla laoreet vestibulum. Curabitur eu elit vitae felis auctor tincidunt. Curabitur tincidunt, metus sed sollicitudin cursus, quam elit commodo erat, ut tempor erat sapien vitae velit. Morbi nec viverra erat.</p> - <p>Nullam scelerisque facilisis pretium. Vivamus lectus leo, commodo ac sagittis ac, dictum a mi. Donec quis massa ut libero malesuada commodo in et risus. Fusce nunc dolor, aliquet vel rutrum in, molestie sit amet massa. Aliquam suscipit, justo a commodo condimentum, enim sapien fringilla ante, sed lobortis orci lectus in ante. Donec vel interdum est. Donec placerat cursus lacus, eu ultricies nisl tincidunt a. Fusce libero risus, sagittis eleifend iaculis aliquet, condimentum vitae diam. Suspendisse potenti. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Proin leo purus, sodales a venenatis luctus, faucibus ac enim. Sed id metus ac sem lobortis pretium. Mauris faucibus tempor scelerisque. Nunc vulputate interdum tortor, non tincidunt dui condimentum eget. Aenean in porttitor velit. Nam accumsan rhoncus risus id consectetur.</p> - <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nam rhoncus, felis interdum condimentum consectetur, nisl libero elementum eros, vehicula congue lacus eros non diam. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Vivamus mauris lorem, lacinia id tempus non, imperdiet et leo. Cras sit amet erat sit amet lacus egestas placerat. Aenean ultricies ultrices mauris ac congue. In vel tortor vel velit tristique tempus ac id nisi. Proin quis lorem velit. Nunc dui dui, blandit a ullamcorper vitae, congue fringilla lectus. Aliquam ultricies malesuada feugiat. Vestibulum placerat turpis et eros lobortis vel semper sapien pulvinar.</p> - <p>Pellentesque rhoncus aliquet porta. Sed vel magna eu turpis pharetra consequat ut vitae lectus. In molestie sollicitudin mi sit amet convallis. Aliquam erat volutpat. Nullam feugiat placerat ipsum eget malesuada. Nulla facilisis nunc non dolor vehicula pretium. Sed dui magna, sodales id pharetra non, ullamcorper eu sapien. Mauris ac consectetur leo. Mauris consequat, lectus ut bibendum pulvinar, leo magna feugiat enim, eu commodo lacus sem vel ante. Sed tempus metus eget leo mollis vulputate. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos.</p> - <p>Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Sed pulvinar rhoncus quam, vel semper tellus viverra id. Nulla rutrum porttitor odio, a rutrum purus gravida non. Etiam ac purus augue, eget vestibulum purus. Aenean venenatis ullamcorper augue, non consequat elit tempor sed. Donec velit sapien, volutpat sed ultricies egestas, semper a ante. Fusce dapibus, quam eget auctor suscipit, nibh leo posuere ante, at auctor nisi lacus in sem. Morbi interdum consectetur euismod. Cras accumsan est lacus. Nulla eleifend, eros vel consequat commodo, arcu nunc malesuada nunc, quis sagittis felis sem ac turpis.</p> - <p>Nulla rhoncus elementum convallis. Mauris condimentum aliquet egestas. Ut iaculis nisi eget tellus accumsan venenatis. Maecenas imperdiet aliquam porta. Aenean ultrices dolor sed quam laoreet varius. Curabitur condimentum blandit erat, quis accumsan eros interdum vitae. Curabitur ligula arcu, sollicitudin vitae iaculis sed, blandit sit amet enim. Morbi ullamcorper, metus vel mollis tristique, arcu turpis malesuada nisi, at dignissim lorem odio a orci. Proin ultrices, ipsum ut vestibulum interdum, libero felis auctor mi, vitae convallis nisl justo ac tellus. Integer nec lacinia turpis. Etiam massa nisl, rhoncus quis rutrum in, pretium eu leo. Proin a velit ut nulla laoreet vestibulum. Curabitur eu elit vitae felis auctor tincidunt. Curabitur tincidunt, metus sed sollicitudin cursus, quam elit commodo erat, ut tempor erat sapien vitae velit. Morbi nec viverra erat.</p> - <p>Nullam scelerisque facilisis pretium. Vivamus lectus leo, commodo ac sagittis ac, dictum a mi. Donec quis massa ut libero malesuada commodo in et risus. Fusce nunc dolor, aliquet vel rutrum in, molestie sit amet massa. Aliquam suscipit, justo a commodo condimentum, enim sapien fringilla ante, sed lobortis orci lectus in ante. Donec vel interdum est. Donec placerat cursus lacus, eu ultricies nisl tincidunt a. Fusce libero risus, sagittis eleifend iaculis aliquet, condimentum vitae diam. Suspendisse potenti. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Proin leo purus, sodales a venenatis luctus, faucibus ac enim. Sed id metus ac sem lobortis pretium. Mauris faucibus tempor scelerisque. Nunc vulputate interdum tortor, non tincidunt dui condimentum eget. Aenean in porttitor velit. Nam accumsan rhoncus risus id consectetur.</p> - <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nam rhoncus, felis interdum condimentum consectetur, nisl libero elementum eros, vehicula congue lacus eros non diam. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Vivamus mauris lorem, lacinia id tempus non, imperdiet et leo. Cras sit amet erat sit amet lacus egestas placerat. Aenean ultricies ultrices mauris ac congue. In vel tortor vel velit tristique tempus ac id nisi. Proin quis lorem velit. Nunc dui dui, blandit a ullamcorper vitae, congue fringilla lectus. Aliquam ultricies malesuada feugiat. Vestibulum placerat turpis et eros lobortis vel semper sapien pulvinar.</p> - <p>Pellentesque rhoncus aliquet porta. Sed vel magna eu turpis pharetra consequat ut vitae lectus. In molestie sollicitudin mi sit amet convallis. Aliquam erat volutpat. Nullam feugiat placerat ipsum eget malesuada. Nulla facilisis nunc non dolor vehicula pretium. Sed dui magna, sodales id pharetra non, ullamcorper eu sapien. Mauris ac consectetur leo. Mauris consequat, lectus ut bibendum pulvinar, leo magna feugiat enim, eu commodo lacus sem vel ante. Sed tempus metus eget leo mollis vulputate. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos.</p> - <p>Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Sed pulvinar rhoncus quam, vel semper tellus viverra id. Nulla rutrum porttitor odio, a rutrum purus gravida non. Etiam ac purus augue, eget vestibulum purus. Aenean venenatis ullamcorper augue, non consequat elit tempor sed. Donec velit sapien, volutpat sed ultricies egestas, semper a ante. Fusce dapibus, quam eget auctor suscipit, nibh leo posuere ante, at auctor nisi lacus in sem. Morbi interdum consectetur euismod. Cras accumsan est lacus. Nulla eleifend, eros vel consequat commodo, arcu nunc malesuada nunc, quis sagittis felis sem ac turpis.</p> - <p>Nulla rhoncus elementum convallis. Mauris condimentum aliquet egestas. Ut iaculis nisi eget tellus accumsan venenatis. Maecenas imperdiet aliquam porta. Aenean ultrices dolor sed quam laoreet varius. Curabitur condimentum blandit erat, quis accumsan eros interdum vitae. Curabitur ligula arcu, sollicitudin vitae iaculis sed, blandit sit amet enim. Morbi ullamcorper, metus vel mollis tristique, arcu turpis malesuada nisi, at dignissim lorem odio a orci. Proin ultrices, ipsum ut vestibulum interdum, libero felis auctor mi, vitae convallis nisl justo ac tellus. Integer nec lacinia turpis. Etiam massa nisl, rhoncus quis rutrum in, pretium eu leo. Proin a velit ut nulla laoreet vestibulum. Curabitur eu elit vitae felis auctor tincidunt. Curabitur tincidunt, metus sed sollicitudin cursus, quam elit commodo erat, ut tempor erat sapien vitae velit. Morbi nec viverra erat.</p> - <p>Nullam scelerisque facilisis pretium. Vivamus lectus leo, commodo ac sagittis ac, dictum a mi. Donec quis massa ut libero malesuada commodo in et risus. Fusce nunc dolor, aliquet vel rutrum in, molestie sit amet massa. Aliquam suscipit, justo a commodo condimentum, enim sapien fringilla ante, sed lobortis orci lectus in ante. Donec vel interdum est. Donec placerat cursus lacus, eu ultricies nisl tincidunt a. Fusce libero risus, sagittis eleifend iaculis aliquet, condimentum vitae diam. Suspendisse potenti. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Proin leo purus, sodales a venenatis luctus, faucibus ac enim. Sed id metus ac sem lobortis pretium. Mauris faucibus tempor scelerisque. Nunc vulputate interdum tortor, non tincidunt dui condimentum eget. Aenean in porttitor velit. Nam accumsan rhoncus risus id consectetur.</p> - </div> - -<pre class="prettyprint"> - $('#testDiv4').slimScroll({ - alwaysVisible: true - }); -</pre> - - - - <div id="testDiv5"> - <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nam rhoncus, felis interdum condimentum consectetur, nisl libero elementum eros, vehicula congue lacus eros non diam. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Vivamus mauris lorem, lacinia id tempus non, imperdiet et leo. Cras sit amet erat sit amet lacus egestas placerat. Aenean ultricies ultrices mauris ac congue. In vel tortor vel velit tristique tempus ac id nisi. Proin quis lorem velit. Nunc dui dui, blandit a ullamcorper vitae, congue fringilla lectus. Aliquam ultricies malesuada feugiat. Vestibulum placerat turpis et eros lobortis vel semper sapien pulvinar.</p> - <p>Pellentesque rhoncus aliquet porta. Sed vel magna eu turpis pharetra consequat ut vitae lectus. In molestie sollicitudin mi sit amet convallis. Aliquam erat volutpat. Nullam feugiat placerat ipsum eget malesuada. Nulla facilisis nunc non dolor vehicula pretium. Sed dui magna, sodales id pharetra non, ullamcorper eu sapien. Mauris ac consectetur leo. Mauris consequat, lectus ut bibendum pulvinar, leo magna feugiat enim, eu commodo lacus sem vel ante. Sed tempus metus eget leo mollis vulputate. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos.</p> - <p>Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Sed pulvinar rhoncus quam, vel semper tellus viverra id. Nulla rutrum porttitor odio, a rutrum purus gravida non. Etiam ac purus augue, eget vestibulum purus. Aenean venenatis ullamcorper augue, non consequat elit tempor sed. Donec velit sapien, volutpat sed ultricies egestas, semper a ante. Fusce dapibus, quam eget auctor suscipit, nibh leo posuere ante, at auctor nisi lacus in sem. Morbi interdum consectetur euismod. Cras accumsan est lacus. Nulla eleifend, eros vel consequat commodo, arcu nunc malesuada nunc, quis sagittis felis sem ac turpis.</p> - <p>Nulla rhoncus elementum convallis. Mauris condimentum aliquet egestas. Ut iaculis nisi eget tellus accumsan venenatis. Maecenas imperdiet aliquam porta. Aenean ultrices dolor sed quam laoreet varius. Curabitur condimentum blandit erat, quis accumsan eros interdum vitae. Curabitur ligula arcu, sollicitudin vitae iaculis sed, blandit sit amet enim. Morbi ullamcorper, metus vel mollis tristique, arcu turpis malesuada nisi, at dignissim lorem odio a orci. Proin ultrices, ipsum ut vestibulum interdum, libero felis auctor mi, vitae convallis nisl justo ac tellus. Integer nec lacinia turpis. Etiam massa nisl, rhoncus quis rutrum in, pretium eu leo. Proin a velit ut nulla laoreet vestibulum. Curabitur eu elit vitae felis auctor tincidunt. Curabitur tincidunt, metus sed sollicitudin cursus, quam elit commodo erat, ut tempor erat sapien vitae velit. Morbi nec viverra erat.</p> - <p>Nullam scelerisque facilisis pretium. Vivamus lectus leo, commodo ac sagittis ac, dictum a mi. Donec quis massa ut libero malesuada commodo in et risus. Fusce nunc dolor, aliquet vel rutrum in, molestie sit amet massa. Aliquam suscipit, justo a commodo condimentum, enim sapien fringilla ante, sed lobortis orci lectus in ante. Donec vel interdum est. Donec placerat cursus lacus, eu ultricies nisl tincidunt a. Fusce libero risus, sagittis eleifend iaculis aliquet, condimentum vitae diam. Suspendisse potenti. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Proin leo purus, sodales a venenatis luctus, faucibus ac enim. Sed id metus ac sem lobortis pretium. Mauris faucibus tempor scelerisque. Nunc vulputate interdum tortor, non tincidunt dui condimentum eget. Aenean in porttitor velit. Nam accumsan rhoncus risus id consectetur.</p> - <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nam rhoncus, felis interdum condimentum consectetur, nisl libero elementum eros, vehicula congue lacus eros non diam. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Vivamus mauris lorem, lacinia id tempus non, imperdiet et leo. Cras sit amet erat sit amet lacus egestas placerat. Aenean ultricies ultrices mauris ac congue. In vel tortor vel velit tristique tempus ac id nisi. Proin quis lorem velit. Nunc dui dui, blandit a ullamcorper vitae, congue fringilla lectus. Aliquam ultricies malesuada feugiat. Vestibulum placerat turpis et eros lobortis vel semper sapien pulvinar.</p> - <p>Pellentesque rhoncus aliquet porta. Sed vel magna eu turpis pharetra consequat ut vitae lectus. In molestie sollicitudin mi sit amet convallis. Aliquam erat volutpat. Nullam feugiat placerat ipsum eget malesuada. Nulla facilisis nunc non dolor vehicula pretium. Sed dui magna, sodales id pharetra non, ullamcorper eu sapien. Mauris ac consectetur leo. Mauris consequat, lectus ut bibendum pulvinar, leo magna feugiat enim, eu commodo lacus sem vel ante. Sed tempus metus eget leo mollis vulputate. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos.</p> - <p>Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Sed pulvinar rhoncus quam, vel semper tellus viverra id. Nulla rutrum porttitor odio, a rutrum purus gravida non. Etiam ac purus augue, eget vestibulum purus. Aenean venenatis ullamcorper augue, non consequat elit tempor sed. Donec velit sapien, volutpat sed ultricies egestas, semper a ante. Fusce dapibus, quam eget auctor suscipit, nibh leo posuere ante, at auctor nisi lacus in sem. Morbi interdum consectetur euismod. Cras accumsan est lacus. Nulla eleifend, eros vel consequat commodo, arcu nunc malesuada nunc, quis sagittis felis sem ac turpis.</p> - <p>Nulla rhoncus elementum convallis. Mauris condimentum aliquet egestas. Ut iaculis nisi eget tellus accumsan venenatis. Maecenas imperdiet aliquam porta. Aenean ultrices dolor sed quam laoreet varius. Curabitur condimentum blandit erat, quis accumsan eros interdum vitae. Curabitur ligula arcu, sollicitudin vitae iaculis sed, blandit sit amet enim. Morbi ullamcorper, metus vel mollis tristique, arcu turpis malesuada nisi, at dignissim lorem odio a orci. Proin ultrices, ipsum ut vestibulum interdum, libero felis auctor mi, vitae convallis nisl justo ac tellus. Integer nec lacinia turpis. Etiam massa nisl, rhoncus quis rutrum in, pretium eu leo. Proin a velit ut nulla laoreet vestibulum. Curabitur eu elit vitae felis auctor tincidunt. Curabitur tincidunt, metus sed sollicitudin cursus, quam elit commodo erat, ut tempor erat sapien vitae velit. Morbi nec viverra erat.</p> - <p>Nullam scelerisque facilisis pretium. Vivamus lectus leo, commodo ac sagittis ac, dictum a mi. Donec quis massa ut libero malesuada commodo in et risus. Fusce nunc dolor, aliquet vel rutrum in, molestie sit amet massa. Aliquam suscipit, justo a commodo condimentum, enim sapien fringilla ante, sed lobortis orci lectus in ante. Donec vel interdum est. Donec placerat cursus lacus, eu ultricies nisl tincidunt a. Fusce libero risus, sagittis eleifend iaculis aliquet, condimentum vitae diam. Suspendisse potenti. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Proin leo purus, sodales a venenatis luctus, faucibus ac enim. Sed id metus ac sem lobortis pretium. Mauris faucibus tempor scelerisque. Nunc vulputate interdum tortor, non tincidunt dui condimentum eget. Aenean in porttitor velit. Nam accumsan rhoncus risus id consectetur.</p> - <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nam rhoncus, felis interdum condimentum consectetur, nisl libero elementum eros, vehicula congue lacus eros non diam. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Vivamus mauris lorem, lacinia id tempus non, imperdiet et leo. Cras sit amet erat sit amet lacus egestas placerat. Aenean ultricies ultrices mauris ac congue. In vel tortor vel velit tristique tempus ac id nisi. Proin quis lorem velit. Nunc dui dui, blandit a ullamcorper vitae, congue fringilla lectus. Aliquam ultricies malesuada feugiat. Vestibulum placerat turpis et eros lobortis vel semper sapien pulvinar.</p> - <p>Pellentesque rhoncus aliquet porta. Sed vel magna eu turpis pharetra consequat ut vitae lectus. In molestie sollicitudin mi sit amet convallis. Aliquam erat volutpat. Nullam feugiat placerat ipsum eget malesuada. Nulla facilisis nunc non dolor vehicula pretium. Sed dui magna, sodales id pharetra non, ullamcorper eu sapien. Mauris ac consectetur leo. Mauris consequat, lectus ut bibendum pulvinar, leo magna feugiat enim, eu commodo lacus sem vel ante. Sed tempus metus eget leo mollis vulputate. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos.</p> - <p>Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Sed pulvinar rhoncus quam, vel semper tellus viverra id. Nulla rutrum porttitor odio, a rutrum purus gravida non. Etiam ac purus augue, eget vestibulum purus. Aenean venenatis ullamcorper augue, non consequat elit tempor sed. Donec velit sapien, volutpat sed ultricies egestas, semper a ante. Fusce dapibus, quam eget auctor suscipit, nibh leo posuere ante, at auctor nisi lacus in sem. Morbi interdum consectetur euismod. Cras accumsan est lacus. Nulla eleifend, eros vel consequat commodo, arcu nunc malesuada nunc, quis sagittis felis sem ac turpis.</p> - <p>Nulla rhoncus elementum convallis. Mauris condimentum aliquet egestas. Ut iaculis nisi eget tellus accumsan venenatis. Maecenas imperdiet aliquam porta. Aenean ultrices dolor sed quam laoreet varius. Curabitur condimentum blandit erat, quis accumsan eros interdum vitae. Curabitur ligula arcu, sollicitudin vitae iaculis sed, blandit sit amet enim. Morbi ullamcorper, metus vel mollis tristique, arcu turpis malesuada nisi, at dignissim lorem odio a orci. Proin ultrices, ipsum ut vestibulum interdum, libero felis auctor mi, vitae convallis nisl justo ac tellus. Integer nec lacinia turpis. Etiam massa nisl, rhoncus quis rutrum in, pretium eu leo. Proin a velit ut nulla laoreet vestibulum. Curabitur eu elit vitae felis auctor tincidunt. Curabitur tincidunt, metus sed sollicitudin cursus, quam elit commodo erat, ut tempor erat sapien vitae velit. Morbi nec viverra erat.</p> - <p>Nullam scelerisque facilisis pretium. Vivamus lectus leo, commodo ac sagittis ac, dictum a mi. Donec quis massa ut libero malesuada commodo in et risus. Fusce nunc dolor, aliquet vel rutrum in, molestie sit amet massa. Aliquam suscipit, justo a commodo condimentum, enim sapien fringilla ante, sed lobortis orci lectus in ante. Donec vel interdum est. Donec placerat cursus lacus, eu ultricies nisl tincidunt a. Fusce libero risus, sagittis eleifend iaculis aliquet, condimentum vitae diam. Suspendisse potenti. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Proin leo purus, sodales a venenatis luctus, faucibus ac enim. Sed id metus ac sem lobortis pretium. Mauris faucibus tempor scelerisque. Nunc vulputate interdum tortor, non tincidunt dui condimentum eget. Aenean in porttitor velit. Nam accumsan rhoncus risus id consectetur.</p> - </div> - -<pre class="prettyprint"> - $('#testDiv5').slimScroll({ - distance: '20px', - opacity: 1 - }); -</pre> - - -</div> - -<script type="text/javascript"> - $(function(){ - $('#testDiv').slimscroll({ - size: '15px' - }); - - $('#testDiv2').slimScroll({ - position: 'left' - }); - - $('#testDiv3').slimScroll({ - color: '#00f' - }); - - $('#testDiv4').slimScroll({ - alwaysVisible: true - }); - - $('#testDiv5').slimScroll({ - distance: '20px', - opacity: 1 - }); - - }); -</script> - - -<script type="text/javascript"> - - //enable syntax highlighter - prettyPrint(); - - var _gaq = _gaq || []; - _gaq.push(['_setAccount', 'UA-3112455-22']); - _gaq.push(['_setDomainName', 'none']); - _gaq.push(['_trackPageview']); - - (function() { - var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true; - ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js'; - var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s); - })(); -</script> -</body> -</html> \ No newline at end of file diff --git a/admin/bower_components/jquery-slimscroll/examples/start-position.html b/admin/bower_components/jquery-slimscroll/examples/start-position.html deleted file mode 100644 index 8afdda6..0000000 --- a/admin/bower_components/jquery-slimscroll/examples/start-position.html +++ /dev/null @@ -1,100 +0,0 @@ -<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> -<html> -<head> -<title>jquery.slimscroll - start position</title> -<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> -<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.0/jquery.min.js"></script> - -<link href="libs/prettify/prettify.css" type="text/css" rel="stylesheet" /> -<script type="text/javascript" src="libs/prettify/prettify.js"></script> -<script type="text/javascript" src="../jquery.slimscroll.js"></script> -<link href="style.css" type="text/css" rel="stylesheet" /> -</head> -<body> -<a id="git-fork" href="https://github.com/rochal/jQuery-slimScroll"><img src="https://s3.amazonaws.com/github/ribbons/forkme_right_red_aa0000.png" alt="Fork me on GitHub"></a> - -<div class="examples"> - <div id="testDiv"> - <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nam rhoncus, felis interdum condimentum consectetur, nisl libero elementum eros, vehicula congue lacus eros non diam. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Vivamus mauris lorem, lacinia id tempus non, imperdiet et leo. Cras sit amet erat sit amet lacus egestas placerat. Aenean ultricies ultrices mauris ac congue. In vel tortor vel velit tristique tempus ac id nisi. Proin quis lorem velit. Nunc dui dui, blandit a ullamcorper vitae, congue fringilla lectus. Aliquam ultricies malesuada feugiat. Vestibulum placerat turpis et eros lobortis vel semper sapien pulvinar.</p> - <p>Pellentesque rhoncus aliquet porta. Sed vel magna eu turpis pharetra consequat ut vitae lectus. In molestie sollicitudin mi sit amet convallis. Aliquam erat volutpat. Nullam feugiat placerat ipsum eget malesuada. Nulla facilisis nunc non dolor vehicula pretium. Sed dui magna, sodales id pharetra non, ullamcorper eu sapien. Mauris ac consectetur leo. Mauris consequat, lectus ut bibendum pulvinar, leo magna feugiat enim, eu commodo lacus sem vel ante. Sed tempus metus eget leo mollis vulputate. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos.</p> - <p>Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Sed pulvinar rhoncus quam, vel semper tellus viverra id. Nulla rutrum porttitor odio, a rutrum purus gravida non. Etiam ac purus augue, eget vestibulum purus. Aenean venenatis ullamcorper augue, non consequat elit tempor sed. Donec velit sapien, volutpat sed ultricies egestas, semper a ante. Fusce dapibus, quam eget auctor suscipit, nibh leo posuere ante, at auctor nisi lacus in sem. Morbi interdum consectetur euismod. Cras accumsan est lacus. Nulla eleifend, eros vel consequat commodo, arcu nunc malesuada nunc, quis sagittis felis sem ac turpis.</p> - <p>Nulla rhoncus elementum convallis. Mauris condimentum aliquet egestas. Ut iaculis nisi eget tellus accumsan venenatis. Maecenas imperdiet aliquam porta. Aenean ultrices dolor sed quam laoreet varius. Curabitur condimentum blandit erat, quis accumsan eros interdum vitae. Curabitur ligula arcu, sollicitudin vitae iaculis sed, blandit sit amet enim. Morbi ullamcorper, metus vel mollis tristique, arcu turpis malesuada nisi, at dignissim lorem odio a orci. Proin ultrices, ipsum ut vestibulum interdum, libero felis auctor mi, vitae convallis nisl justo ac tellus. Integer nec lacinia turpis. Etiam massa nisl, rhoncus quis rutrum in, pretium eu leo. Proin a velit ut nulla laoreet vestibulum. Curabitur eu elit vitae felis auctor tincidunt. Curabitur tincidunt, metus sed sollicitudin cursus, quam elit commodo erat, ut tempor erat sapien vitae velit. Morbi nec viverra erat.</p> - <p>Nullam scelerisque facilisis pretium. Vivamus lectus leo, commodo ac sagittis ac, dictum a mi. Donec quis massa ut libero malesuada commodo in et risus. Fusce nunc dolor, aliquet vel rutrum in, molestie sit amet massa. Aliquam suscipit, justo a commodo condimentum, enim sapien fringilla ante, sed lobortis orci lectus in ante. Donec vel interdum est. Donec placerat cursus lacus, eu ultricies nisl tincidunt a. Fusce libero risus, sagittis eleifend iaculis aliquet, condimentum vitae diam. Suspendisse potenti. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Proin leo purus, sodales a venenatis luctus, faucibus ac enim. Sed id metus ac sem lobortis pretium. Mauris faucibus tempor scelerisque. Nunc vulputate interdum tortor, non tincidunt dui condimentum eget. Aenean in porttitor velit. Nam accumsan rhoncus risus id consectetur.</p> - <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nam rhoncus, felis interdum condimentum consectetur, nisl libero elementum eros, vehicula congue lacus eros non diam. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Vivamus mauris lorem, lacinia id tempus non, imperdiet et leo. Cras sit amet erat sit amet lacus egestas placerat. Aenean ultricies ultrices mauris ac congue. In vel tortor vel velit tristique tempus ac id nisi. Proin quis lorem velit. Nunc dui dui, blandit a ullamcorper vitae, congue fringilla lectus. Aliquam ultricies malesuada feugiat. Vestibulum placerat turpis et eros lobortis vel semper sapien pulvinar.</p> - <p>Pellentesque rhoncus aliquet porta. Sed vel magna eu turpis pharetra consequat ut vitae lectus. In molestie sollicitudin mi sit amet convallis. Aliquam erat volutpat. Nullam feugiat placerat ipsum eget malesuada. Nulla facilisis nunc non dolor vehicula pretium. Sed dui magna, sodales id pharetra non, ullamcorper eu sapien. Mauris ac consectetur leo. Mauris consequat, lectus ut bibendum pulvinar, leo magna feugiat enim, eu commodo lacus sem vel ante. Sed tempus metus eget leo mollis vulputate. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos.</p> - <p>Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Sed pulvinar rhoncus quam, vel semper tellus viverra id. Nulla rutrum porttitor odio, a rutrum purus gravida non. Etiam ac purus augue, eget vestibulum purus. Aenean venenatis ullamcorper augue, non consequat elit tempor sed. Donec velit sapien, volutpat sed ultricies egestas, semper a ante. Fusce dapibus, quam eget auctor suscipit, nibh leo posuere ante, at auctor nisi lacus in sem. Morbi interdum consectetur euismod. Cras accumsan est lacus. Nulla eleifend, eros vel consequat commodo, arcu nunc malesuada nunc, quis sagittis felis sem ac turpis.</p> - <p>Nulla rhoncus elementum convallis. Mauris condimentum aliquet egestas. Ut iaculis nisi eget tellus accumsan venenatis. Maecenas imperdiet aliquam porta. Aenean ultrices dolor sed quam laoreet varius. Curabitur condimentum blandit erat, quis accumsan eros interdum vitae. Curabitur ligula arcu, sollicitudin vitae iaculis sed, blandit sit amet enim. Morbi ullamcorper, metus vel mollis tristique, arcu turpis malesuada nisi, at dignissim lorem odio a orci. Proin ultrices, ipsum ut vestibulum interdum, libero felis auctor mi, vitae convallis nisl justo ac tellus. Integer nec lacinia turpis. Etiam massa nisl, rhoncus quis rutrum in, pretium eu leo. Proin a velit ut nulla laoreet vestibulum. Curabitur eu elit vitae felis auctor tincidunt. Curabitur tincidunt, metus sed sollicitudin cursus, quam elit commodo erat, ut tempor erat sapien vitae velit. Morbi nec viverra erat.</p> - <p>Nullam scelerisque facilisis pretium. Vivamus lectus leo, commodo ac sagittis ac, dictum a mi. Donec quis massa ut libero malesuada commodo in et risus. Fusce nunc dolor, aliquet vel rutrum in, molestie sit amet massa. Aliquam suscipit, justo a commodo condimentum, enim sapien fringilla ante, sed lobortis orci lectus in ante. Donec vel interdum est. Donec placerat cursus lacus, eu ultricies nisl tincidunt a. Fusce libero risus, sagittis eleifend iaculis aliquet, condimentum vitae diam. Suspendisse potenti. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Proin leo purus, sodales a venenatis luctus, faucibus ac enim. Sed id metus ac sem lobortis pretium. Mauris faucibus tempor scelerisque. Nunc vulputate interdum tortor, non tincidunt dui condimentum eget. Aenean in porttitor velit. Nam accumsan rhoncus risus id consectetur.</p> - <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nam rhoncus, felis interdum condimentum consectetur, nisl libero elementum eros, vehicula congue lacus eros non diam. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Vivamus mauris lorem, lacinia id tempus non, imperdiet et leo. Cras sit amet erat sit amet lacus egestas placerat. Aenean ultricies ultrices mauris ac congue. In vel tortor vel velit tristique tempus ac id nisi. Proin quis lorem velit. Nunc dui dui, blandit a ullamcorper vitae, congue fringilla lectus. Aliquam ultricies malesuada feugiat. Vestibulum placerat turpis et eros lobortis vel semper sapien pulvinar.</p> - <p>Pellentesque rhoncus aliquet porta. Sed vel magna eu turpis pharetra consequat ut vitae lectus. In molestie sollicitudin mi sit amet convallis. Aliquam erat volutpat. Nullam feugiat placerat ipsum eget malesuada. Nulla facilisis nunc non dolor vehicula pretium. Sed dui magna, sodales id pharetra non, ullamcorper eu sapien. Mauris ac consectetur leo. Mauris consequat, lectus ut bibendum pulvinar, leo magna feugiat enim, eu commodo lacus sem vel ante. Sed tempus metus eget leo mollis vulputate. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos.</p> - <p>Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Sed pulvinar rhoncus quam, vel semper tellus viverra id. Nulla rutrum porttitor odio, a rutrum purus gravida non. Etiam ac purus augue, eget vestibulum purus. Aenean venenatis ullamcorper augue, non consequat elit tempor sed. Donec velit sapien, volutpat sed ultricies egestas, semper a ante. Fusce dapibus, quam eget auctor suscipit, nibh leo posuere ante, at auctor nisi lacus in sem. Morbi interdum consectetur euismod. Cras accumsan est lacus. Nulla eleifend, eros vel consequat commodo, arcu nunc malesuada nunc, quis sagittis felis sem ac turpis.</p> - <p>Nulla rhoncus elementum convallis. Mauris condimentum aliquet egestas. Ut iaculis nisi eget tellus accumsan venenatis. Maecenas imperdiet aliquam porta. Aenean ultrices dolor sed quam laoreet varius. Curabitur condimentum blandit erat, quis accumsan eros interdum vitae. Curabitur ligula arcu, sollicitudin vitae iaculis sed, blandit sit amet enim. Morbi ullamcorper, metus vel mollis tristique, arcu turpis malesuada nisi, at dignissim lorem odio a orci. Proin ultrices, ipsum ut vestibulum interdum, libero felis auctor mi, vitae convallis nisl justo ac tellus. Integer nec lacinia turpis. Etiam massa nisl, rhoncus quis rutrum in, pretium eu leo. Proin a velit ut nulla laoreet vestibulum. Curabitur eu elit vitae felis auctor tincidunt. Curabitur tincidunt, metus sed sollicitudin cursus, quam elit commodo erat, ut tempor erat sapien vitae velit. Morbi nec viverra erat.</p> - <p>Nullam scelerisque facilisis pretium. Vivamus lectus leo, commodo ac sagittis ac, dictum a mi. Donec quis massa ut libero malesuada commodo in et risus. Fusce nunc dolor, aliquet vel rutrum in, molestie sit amet massa. Aliquam suscipit, justo a commodo condimentum, enim sapien fringilla ante, sed lobortis orci lectus in ante. Donec vel interdum est. Donec placerat cursus lacus, eu ultricies nisl tincidunt a. Fusce libero risus, sagittis eleifend iaculis aliquet, condimentum vitae diam. Suspendisse potenti. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Proin leo purus, sodales a venenatis luctus, faucibus ac enim. Sed id metus ac sem lobortis pretium. Mauris faucibus tempor scelerisque. Nunc vulputate interdum tortor, non tincidunt dui condimentum eget. Aenean in porttitor velit. Nam accumsan rhoncus risus id consectetur.</p> - </div> - -<pre class="prettyprint"> - $('#testDiv').slimScroll({ - start: 'bottom' - }); -</pre> - - <div id="testDiv2"> - <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nam rhoncus, felis interdum condimentum consectetur, nisl libero elementum eros, vehicula congue lacus eros non diam. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Vivamus mauris lorem, lacinia id tempus non, imperdiet et leo. Cras sit amet erat sit amet lacus egestas placerat. Aenean ultricies ultrices mauris ac congue. In vel tortor vel velit tristique tempus ac id nisi. Proin quis lorem velit. Nunc dui dui, blandit a ullamcorper vitae, congue fringilla lectus. Aliquam ultricies malesuada feugiat. Vestibulum placerat turpis et eros lobortis vel semper sapien pulvinar.</p> - <p>Pellentesque rhoncus aliquet porta. Sed vel magna eu turpis pharetra consequat ut vitae lectus. In molestie sollicitudin mi sit amet convallis. Aliquam erat volutpat. Nullam feugiat placerat ipsum eget malesuada. Nulla facilisis nunc non dolor vehicula pretium. Sed dui magna, sodales id pharetra non, ullamcorper eu sapien. Mauris ac consectetur leo. Mauris consequat, lectus ut bibendum pulvinar, leo magna feugiat enim, eu commodo lacus sem vel ante. Sed tempus metus eget leo mollis vulputate. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos.</p> - <p>Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Sed pulvinar rhoncus quam, vel semper tellus viverra id. Nulla rutrum porttitor odio, a rutrum purus gravida non. Etiam ac purus augue, eget vestibulum purus. Aenean venenatis ullamcorper augue, non consequat elit tempor sed. Donec velit sapien, volutpat sed ultricies egestas, semper a ante. Fusce dapibus, quam eget auctor suscipit, nibh leo posuere ante, at auctor nisi lacus in sem. Morbi interdum consectetur euismod. Cras accumsan est lacus. Nulla eleifend, eros vel consequat commodo, arcu nunc malesuada nunc, quis sagittis felis sem ac turpis.</p> - <p>Nulla rhoncus elementum convallis. Mauris condimentum aliquet egestas. Ut iaculis nisi eget tellus accumsan venenatis. Maecenas imperdiet aliquam porta. Aenean ultrices dolor sed quam laoreet varius. Curabitur condimentum blandit erat, quis accumsan eros interdum vitae. Curabitur ligula arcu, sollicitudin vitae iaculis sed, blandit sit amet enim. Morbi ullamcorper, metus vel mollis tristique, arcu turpis malesuada nisi, at dignissim lorem odio a orci. Proin ultrices, ipsum ut vestibulum interdum, libero felis auctor mi, vitae convallis nisl justo ac tellus. Integer nec lacinia turpis. Etiam massa nisl, rhoncus quis rutrum in, pretium eu leo. Proin a velit ut nulla laoreet vestibulum. Curabitur eu elit vitae felis auctor tincidunt. Curabitur tincidunt, metus sed sollicitudin cursus, quam elit commodo erat, ut tempor erat sapien vitae velit. Morbi nec viverra erat.</p> - <p>Nullam scelerisque facilisis pretium. Vivamus lectus leo, commodo ac sagittis ac, dictum a mi. Donec quis massa ut libero malesuada commodo in et risus. Fusce nunc dolor, aliquet vel rutrum in, molestie sit amet massa. Aliquam suscipit, justo a commodo condimentum, enim sapien fringilla ante, sed lobortis orci lectus in ante. Donec vel interdum est. Donec placerat cursus lacus, eu ultricies nisl tincidunt a. Fusce libero risus, sagittis eleifend iaculis aliquet, condimentum vitae diam. Suspendisse potenti. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Proin leo purus, sodales a venenatis luctus, faucibus ac enim. Sed id metus ac sem lobortis pretium. Mauris faucibus tempor scelerisque. Nunc vulputate interdum tortor, non tincidunt dui condimentum eget. Aenean in porttitor velit. Nam accumsan rhoncus risus id consectetur.</p> - <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nam rhoncus, felis interdum condimentum consectetur, nisl libero elementum eros, vehicula congue lacus eros non diam. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Vivamus mauris lorem, lacinia id tempus non, imperdiet et leo. Cras sit amet erat sit amet lacus egestas placerat. Aenean ultricies ultrices mauris ac congue. In vel tortor vel velit tristique tempus ac id nisi. Proin quis lorem velit. Nunc dui dui, blandit a ullamcorper vitae, congue fringilla lectus. Aliquam ultricies malesuada feugiat. Vestibulum placerat turpis et eros lobortis vel semper sapien pulvinar.</p> - <p><span class="helloDiv" style="background:green;font-weigh:bold;">Hello!</span>Pellentesque rhoncus aliquet porta. Sed vel magna eu turpis pharetra consequat ut vitae lectus. In molestie sollicitudin mi sit amet convallis. Aliquam erat volutpat. Nullam feugiat placerat ipsum eget malesuada. Nulla facilisis nunc non dolor vehicula pretium. Sed dui magna, sodales id pharetra non, ullamcorper eu sapien. Mauris ac consectetur leo. Mauris consequat, lectus ut bibendum pulvinar, leo magna feugiat enim, eu commodo lacus sem vel ante. Sed tempus metus eget leo mollis vulputate. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos.</p> - <p>Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Sed pulvinar rhoncus quam, vel semper tellus viverra id. Nulla rutrum porttitor odio, a rutrum purus gravida non. Etiam ac purus augue, eget vestibulum purus. Aenean venenatis ullamcorper augue, non consequat elit tempor sed. Donec velit sapien, volutpat sed ultricies egestas, semper a ante. Fusce dapibus, quam eget auctor suscipit, nibh leo posuere ante, at auctor nisi lacus in sem. Morbi interdum consectetur euismod. Cras accumsan est lacus. Nulla eleifend, eros vel consequat commodo, arcu nunc malesuada nunc, quis sagittis felis sem ac turpis.</p> - <p>Nulla rhoncus elementum convallis. Mauris condimentum aliquet egestas. Ut iaculis nisi eget tellus accumsan venenatis. Maecenas imperdiet aliquam porta. Aenean ultrices dolor sed quam laoreet varius. Curabitur condimentum blandit erat, quis accumsan eros interdum vitae. Curabitur ligula arcu, sollicitudin vitae iaculis sed, blandit sit amet enim. Morbi ullamcorper, metus vel mollis tristique, arcu turpis malesuada nisi, at dignissim lorem odio a orci. Proin ultrices, ipsum ut vestibulum interdum, libero felis auctor mi, vitae convallis nisl justo ac tellus. Integer nec lacinia turpis. Etiam massa nisl, rhoncus quis rutrum in, pretium eu leo. Proin a velit ut nulla laoreet vestibulum. Curabitur eu elit vitae felis auctor tincidunt. Curabitur tincidunt, metus sed sollicitudin cursus, quam elit commodo erat, ut tempor erat sapien vitae velit. Morbi nec viverra erat.</p> - <p>Nullam scelerisque facilisis pretium. Vivamus lectus leo, commodo ac sagittis ac, dictum a mi. Donec quis massa ut libero malesuada commodo in et risus. Fusce nunc dolor, aliquet vel rutrum in, molestie sit amet massa. Aliquam suscipit, justo a commodo condimentum, enim sapien fringilla ante, sed lobortis orci lectus in ante. Donec vel interdum est. Donec placerat cursus lacus, eu ultricies nisl tincidunt a. Fusce libero risus, sagittis eleifend iaculis aliquet, condimentum vitae diam. Suspendisse potenti. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Proin leo purus, sodales a venenatis luctus, faucibus ac enim. Sed id metus ac sem lobortis pretium. Mauris faucibus tempor scelerisque. Nunc vulputate interdum tortor, non tincidunt dui condimentum eget. Aenean in porttitor velit. Nam accumsan rhoncus risus id consectetur.</p> - <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nam rhoncus, felis interdum condimentum consectetur, nisl libero elementum eros, vehicula congue lacus eros non diam. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Vivamus mauris lorem, lacinia id tempus non, imperdiet et leo. Cras sit amet erat sit amet lacus egestas placerat. Aenean ultricies ultrices mauris ac congue. In vel tortor vel velit tristique tempus ac id nisi. Proin quis lorem velit. Nunc dui dui, blandit a ullamcorper vitae, congue fringilla lectus. Aliquam ultricies malesuada feugiat. Vestibulum placerat turpis et eros lobortis vel semper sapien pulvinar.</p> - <p>Pellentesque rhoncus aliquet porta. Sed vel magna eu turpis pharetra consequat ut vitae lectus. In molestie sollicitudin mi sit amet convallis. Aliquam erat volutpat. Nullam feugiat placerat ipsum eget malesuada. Nulla facilisis nunc non dolor vehicula pretium. Sed dui magna, sodales id pharetra non, ullamcorper eu sapien. Mauris ac consectetur leo. Mauris consequat, lectus ut bibendum pulvinar, leo magna feugiat enim, eu commodo lacus sem vel ante. Sed tempus metus eget leo mollis vulputate. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos.</p> - <p>Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Sed pulvinar rhoncus quam, vel semper tellus viverra id. Nulla rutrum porttitor odio, a rutrum purus gravida non. Etiam ac purus augue, eget vestibulum purus. Aenean venenatis ullamcorper augue, non consequat elit tempor sed. Donec velit sapien, volutpat sed ultricies egestas, semper a ante. Fusce dapibus, quam eget auctor suscipit, nibh leo posuere ante, at auctor nisi lacus in sem. Morbi interdum consectetur euismod. Cras accumsan est lacus. Nulla eleifend, eros vel consequat commodo, arcu nunc malesuada nunc, quis sagittis felis sem ac turpis.</p> - <p>Nulla rhoncus elementum convallis. Mauris condimentum aliquet egestas. Ut iaculis nisi eget tellus accumsan venenatis. Maecenas imperdiet aliquam porta. Aenean ultrices dolor sed quam laoreet varius. Curabitur condimentum blandit erat, quis accumsan eros interdum vitae. Curabitur ligula arcu, sollicitudin vitae iaculis sed, blandit sit amet enim. Morbi ullamcorper, metus vel mollis tristique, arcu turpis malesuada nisi, at dignissim lorem odio a orci. Proin ultrices, ipsum ut vestibulum interdum, libero felis auctor mi, vitae convallis nisl justo ac tellus. Integer nec lacinia turpis. Etiam massa nisl, rhoncus quis rutrum in, pretium eu leo. Proin a velit ut nulla laoreet vestibulum. Curabitur eu elit vitae felis auctor tincidunt. Curabitur tincidunt, metus sed sollicitudin cursus, quam elit commodo erat, ut tempor erat sapien vitae velit. Morbi nec viverra erat.</p> - <p>Nullam scelerisque facilisis pretium. Vivamus lectus leo, commodo ac sagittis ac, dictum a mi. Donec quis massa ut libero malesuada commodo in et risus. Fusce nunc dolor, aliquet vel rutrum in, molestie sit amet massa. Aliquam suscipit, justo a commodo condimentum, enim sapien fringilla ante, sed lobortis orci lectus in ante. Donec vel interdum est. Donec placerat cursus lacus, eu ultricies nisl tincidunt a. Fusce libero risus, sagittis eleifend iaculis aliquet, condimentum vitae diam. Suspendisse potenti. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Proin leo purus, sodales a venenatis luctus, faucibus ac enim. Sed id metus ac sem lobortis pretium. Mauris faucibus tempor scelerisque. Nunc vulputate interdum tortor, non tincidunt dui condimentum eget. Aenean in porttitor velit. Nam accumsan rhoncus risus id consectetur.</p> - </div> - -<pre class="prettyprint"> - $('#testDiv2').slimScroll({ - start: $('.helloDiv') - }); -</pre> - - -</div> - -<script type="text/javascript"> - $(function(){ - - $('#testDiv').slimScroll({ - start: 'bottom' - }); - - $('#testDiv2').slimScroll({ - start: $('.helloDiv') - }); - - }); -</script> - - -<script type="text/javascript"> - - //enable syntax highlighter - prettyPrint(); - - var _gaq = _gaq || []; - _gaq.push(['_setAccount', 'UA-3112455-22']); - _gaq.push(['_setDomainName', 'none']); - _gaq.push(['_trackPageview']); - - (function() { - var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true; - ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js'; - var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s); - })(); -</script> -</body> -</html> \ No newline at end of file diff --git a/admin/bower_components/jquery-slimscroll/examples/style.css b/admin/bower_components/jquery-slimscroll/examples/style.css deleted file mode 100644 index b676c81..0000000 --- a/admin/bower_components/jquery-slimscroll/examples/style.css +++ /dev/null @@ -1,13 +0,0 @@ -body { font-family:Verdana,sans-serif; font-size:12px; color:#000; background:#111; } -h1 { font-size:20px; margin:0 } -h2 { font-size:10px; margin:0 } -p { margin:5px 0; font-size:12px; } -pre.prettyprint { padding:15px; border:1px solid #eee; border-radius:5px; background:#eee; border-bottom:3px solid; } -.examples { border-radius:20px; background:#fff; padding:15px; - margin:0 150px 0 0; border-collapse: collapse; border:1px solid #000; } -.slimScrollDiv { border:1px solid #eee; } -#nav { position:fixed; top:0; left:0; background:#fff; padding:15px; border-radius:20px; width:200px; } -#nav ul { list-style-type:square; list-style-position:inside; margin:20px 0 0 0; padding:0; } -#nav a { text-decoration:none; color:#000; } -#nav a:hover { text-decoration: underline } -#git-fork img { position:fixed; top:0; right:0; border:0; z-index:999; } \ No newline at end of file diff --git a/admin/bower_components/jquery-slimscroll/jquery.slimscroll.js b/admin/bower_components/jquery-slimscroll/jquery.slimscroll.js deleted file mode 100644 index 90caed3..0000000 --- a/admin/bower_components/jquery-slimscroll/jquery.slimscroll.js +++ /dev/null @@ -1,474 +0,0 @@ -/*! Copyright (c) 2011 Piotr Rochala (http://rocha.la) - * Dual licensed under the MIT (http://www.opensource.org/licenses/mit-license.php) - * and GPL (http://www.opensource.org/licenses/gpl-license.php) licenses. - * - * Version: 1.3.8 - * - */ -(function($) { - - $.fn.extend({ - slimScroll: function(options) { - - var defaults = { - - // width in pixels of the visible scroll area - width : 'auto', - - // height in pixels of the visible scroll area - height : '250px', - - // width in pixels of the scrollbar and rail - size : '7px', - - // scrollbar color, accepts any hex/color value - color: '#000', - - // scrollbar position - left/right - position : 'right', - - // distance in pixels between the side edge and the scrollbar - distance : '1px', - - // default scroll position on load - top / bottom / $('selector') - start : 'top', - - // sets scrollbar opacity - opacity : .4, - - // enables always-on mode for the scrollbar - alwaysVisible : false, - - // check if we should hide the scrollbar when user is hovering over - disableFadeOut : false, - - // sets visibility of the rail - railVisible : false, - - // sets rail color - railColor : '#333', - - // sets rail opacity - railOpacity : .2, - - // whether we should use jQuery UI Draggable to enable bar dragging - railDraggable : true, - - // defautlt CSS class of the slimscroll rail - railClass : 'slimScrollRail', - - // defautlt CSS class of the slimscroll bar - barClass : 'slimScrollBar', - - // defautlt CSS class of the slimscroll wrapper - wrapperClass : 'slimScrollDiv', - - // check if mousewheel should scroll the window if we reach top/bottom - allowPageScroll : false, - - // scroll amount applied to each mouse wheel step - wheelStep : 20, - - // scroll amount applied when user is using gestures - touchScrollStep : 200, - - // sets border radius - borderRadius: '7px', - - // sets border radius of the rail - railBorderRadius : '7px' - }; - - var o = $.extend(defaults, options); - - // do it for every element that matches selector - this.each(function(){ - - var isOverPanel, isOverBar, isDragg, queueHide, touchDif, - barHeight, percentScroll, lastScroll, - divS = '<div></div>', - minBarHeight = 30, - releaseScroll = false; - - // used in event handlers and for better minification - var me = $(this); - - // ensure we are not binding it again - if (me.parent().hasClass(o.wrapperClass)) - { - // start from last bar position - var offset = me.scrollTop(); - - // find bar and rail - bar = me.siblings('.' + o.barClass); - rail = me.siblings('.' + o.railClass); - - getBarHeight(); - - // check if we should scroll existing instance - if ($.isPlainObject(options)) - { - // Pass height: auto to an existing slimscroll object to force a resize after contents have changed - if ( 'height' in options && options.height == 'auto' ) { - me.parent().css('height', 'auto'); - me.css('height', 'auto'); - var height = me.parent().parent().height(); - me.parent().css('height', height); - me.css('height', height); - } else if ('height' in options) { - var h = options.height; - me.parent().css('height', h); - me.css('height', h); - } - - if ('scrollTo' in options) - { - // jump to a static point - offset = parseInt(o.scrollTo); - } - else if ('scrollBy' in options) - { - // jump by value pixels - offset += parseInt(o.scrollBy); - } - else if ('destroy' in options) - { - // remove slimscroll elements - bar.remove(); - rail.remove(); - me.unwrap(); - return; - } - - // scroll content by the given offset - scrollContent(offset, false, true); - } - - return; - } - else if ($.isPlainObject(options)) - { - if ('destroy' in options) - { - return; - } - } - - // optionally set height to the parent's height - o.height = (o.height == 'auto') ? me.parent().height() : o.height; - - // wrap content - var wrapper = $(divS) - .addClass(o.wrapperClass) - .css({ - position: 'relative', - overflow: 'hidden', - width: o.width, - height: o.height - }); - - // update style for the div - me.css({ - overflow: 'hidden', - width: o.width, - height: o.height - }); - - // create scrollbar rail - var rail = $(divS) - .addClass(o.railClass) - .css({ - width: o.size, - height: '100%', - position: 'absolute', - top: 0, - display: (o.alwaysVisible && o.railVisible) ? 'block' : 'none', - 'border-radius': o.railBorderRadius, - background: o.railColor, - opacity: o.railOpacity, - zIndex: 90 - }); - - // create scrollbar - var bar = $(divS) - .addClass(o.barClass) - .css({ - background: o.color, - width: o.size, - position: 'absolute', - top: 0, - opacity: o.opacity, - display: o.alwaysVisible ? 'block' : 'none', - 'border-radius' : o.borderRadius, - BorderRadius: o.borderRadius, - MozBorderRadius: o.borderRadius, - WebkitBorderRadius: o.borderRadius, - zIndex: 99 - }); - - // set position - var posCss = (o.position == 'right') ? { right: o.distance } : { left: o.distance }; - rail.css(posCss); - bar.css(posCss); - - // wrap it - me.wrap(wrapper); - - // append to parent div - me.parent().append(bar); - me.parent().append(rail); - - // make it draggable and no longer dependent on the jqueryUI - if (o.railDraggable){ - bar.bind("mousedown", function(e) { - var $doc = $(document); - isDragg = true; - t = parseFloat(bar.css('top')); - pageY = e.pageY; - - $doc.bind("mousemove.slimscroll", function(e){ - currTop = t + e.pageY - pageY; - bar.css('top', currTop); - scrollContent(0, bar.position().top, false);// scroll content - }); - - $doc.bind("mouseup.slimscroll", function(e) { - isDragg = false;hideBar(); - $doc.unbind('.slimscroll'); - }); - return false; - }).bind("selectstart.slimscroll", function(e){ - e.stopPropagation(); - e.preventDefault(); - return false; - }); - } - - // on rail over - rail.hover(function(){ - showBar(); - }, function(){ - hideBar(); - }); - - // on bar over - bar.hover(function(){ - isOverBar = true; - }, function(){ - isOverBar = false; - }); - - // show on parent mouseover - me.hover(function(){ - isOverPanel = true; - showBar(); - hideBar(); - }, function(){ - isOverPanel = false; - hideBar(); - }); - - // support for mobile - me.bind('touchstart', function(e,b){ - if (e.originalEvent.touches.length) - { - // record where touch started - touchDif = e.originalEvent.touches[0].pageY; - } - }); - - me.bind('touchmove', function(e){ - // prevent scrolling the page if necessary - if(!releaseScroll) - { - e.originalEvent.preventDefault(); - } - if (e.originalEvent.touches.length) - { - // see how far user swiped - var diff = (touchDif - e.originalEvent.touches[0].pageY) / o.touchScrollStep; - // scroll content - scrollContent(diff, true); - touchDif = e.originalEvent.touches[0].pageY; - } - }); - - // set up initial height - getBarHeight(); - - // check start position - if (o.start === 'bottom') - { - // scroll content to bottom - bar.css({ top: me.outerHeight() - bar.outerHeight() }); - scrollContent(0, true); - } - else if (o.start !== 'top') - { - // assume jQuery selector - scrollContent($(o.start).position().top, null, true); - - // make sure bar stays hidden - if (!o.alwaysVisible) { bar.hide(); } - } - - // attach scroll events - attachWheel(this); - - function _onWheel(e) - { - // use mouse wheel only when mouse is over - if (!isOverPanel) { return; } - - var e = e || window.event; - - var delta = 0; - if (e.wheelDelta) { delta = -e.wheelDelta/120; } - if (e.detail) { delta = e.detail / 3; } - - var target = e.target || e.srcTarget || e.srcElement; - if ($(target).closest('.' + o.wrapperClass).is(me.parent())) { - // scroll content - scrollContent(delta, true); - } - - // stop window scroll - if (e.preventDefault && !releaseScroll) { e.preventDefault(); } - if (!releaseScroll) { e.returnValue = false; } - } - - function scrollContent(y, isWheel, isJump) - { - releaseScroll = false; - var delta = y; - var maxTop = me.outerHeight() - bar.outerHeight(); - - if (isWheel) - { - // move bar with mouse wheel - delta = parseInt(bar.css('top')) + y * parseInt(o.wheelStep) / 100 * bar.outerHeight(); - - // move bar, make sure it doesn't go out - delta = Math.min(Math.max(delta, 0), maxTop); - - // if scrolling down, make sure a fractional change to the - // scroll position isn't rounded away when the scrollbar's CSS is set - // this flooring of delta would happened automatically when - // bar.css is set below, but we floor here for clarity - delta = (y > 0) ? Math.ceil(delta) : Math.floor(delta); - - // scroll the scrollbar - bar.css({ top: delta + 'px' }); - } - - // calculate actual scroll amount - percentScroll = parseInt(bar.css('top')) / (me.outerHeight() - bar.outerHeight()); - delta = percentScroll * (me[0].scrollHeight - me.outerHeight()); - - if (isJump) - { - delta = y; - var offsetTop = delta / me[0].scrollHeight * me.outerHeight(); - offsetTop = Math.min(Math.max(offsetTop, 0), maxTop); - bar.css({ top: offsetTop + 'px' }); - } - - // scroll content - me.scrollTop(delta); - - // fire scrolling event - me.trigger('slimscrolling', ~~delta); - - // ensure bar is visible - showBar(); - - // trigger hide when scroll is stopped - hideBar(); - } - - function attachWheel(target) - { - if (window.addEventListener) - { - target.addEventListener('DOMMouseScroll', _onWheel, false ); - target.addEventListener('mousewheel', _onWheel, false ); - } - else - { - document.attachEvent("onmousewheel", _onWheel) - } - } - - function getBarHeight() - { - // calculate scrollbar height and make sure it is not too small - barHeight = Math.max((me.outerHeight() / me[0].scrollHeight) * me.outerHeight(), minBarHeight); - bar.css({ height: barHeight + 'px' }); - - // hide scrollbar if content is not long enough - var display = barHeight == me.outerHeight() ? 'none' : 'block'; - bar.css({ display: display }); - } - - function showBar() - { - // recalculate bar height - getBarHeight(); - clearTimeout(queueHide); - - // when bar reached top or bottom - if (percentScroll == ~~percentScroll) - { - //release wheel - releaseScroll = o.allowPageScroll; - - // publish approporiate event - if (lastScroll != percentScroll) - { - var msg = (~~percentScroll == 0) ? 'top' : 'bottom'; - me.trigger('slimscroll', msg); - } - } - else - { - releaseScroll = false; - } - lastScroll = percentScroll; - - // show only when required - if(barHeight >= me.outerHeight()) { - //allow window scroll - releaseScroll = true; - return; - } - bar.stop(true,true).fadeIn('fast'); - if (o.railVisible) { rail.stop(true,true).fadeIn('fast'); } - } - - function hideBar() - { - // only hide when options allow it - if (!o.alwaysVisible) - { - queueHide = setTimeout(function(){ - if (!(o.disableFadeOut && isOverPanel) && !isOverBar && !isDragg) - { - bar.fadeOut('slow'); - rail.fadeOut('slow'); - } - }, 1000); - } - } - - }); - - // maintain chainability - return this; - } - }); - - $.fn.extend({ - slimscroll: $.fn.slimScroll - }); - -})(jQuery); diff --git a/admin/bower_components/jquery-slimscroll/jquery.slimscroll.min.js b/admin/bower_components/jquery-slimscroll/jquery.slimscroll.min.js deleted file mode 100644 index 7531ab3..0000000 --- a/admin/bower_components/jquery-slimscroll/jquery.slimscroll.min.js +++ /dev/null @@ -1,16 +0,0 @@ -/*! Copyright (c) 2011 Piotr Rochala (http://rocha.la) - * Dual licensed under the MIT (http://www.opensource.org/licenses/mit-license.php) - * and GPL (http://www.opensource.org/licenses/gpl-license.php) licenses. - * - * Version: 1.3.8 - * - */ -(function(e){e.fn.extend({slimScroll:function(f){var a=e.extend({width:"auto",height:"250px",size:"7px",color:"#000",position:"right",distance:"1px",start:"top",opacity:.4,alwaysVisible:!1,disableFadeOut:!1,railVisible:!1,railColor:"#333",railOpacity:.2,railDraggable:!0,railClass:"slimScrollRail",barClass:"slimScrollBar",wrapperClass:"slimScrollDiv",allowPageScroll:!1,wheelStep:20,touchScrollStep:200,borderRadius:"7px",railBorderRadius:"7px"},f);this.each(function(){function v(d){if(r){d=d||window.event; -var c=0;d.wheelDelta&&(c=-d.wheelDelta/120);d.detail&&(c=d.detail/3);e(d.target||d.srcTarget||d.srcElement).closest("."+a.wrapperClass).is(b.parent())&&n(c,!0);d.preventDefault&&!k&&d.preventDefault();k||(d.returnValue=!1)}}function n(d,g,e){k=!1;var f=b.outerHeight()-c.outerHeight();g&&(g=parseInt(c.css("top"))+d*parseInt(a.wheelStep)/100*c.outerHeight(),g=Math.min(Math.max(g,0),f),g=0<d?Math.ceil(g):Math.floor(g),c.css({top:g+"px"}));l=parseInt(c.css("top"))/(b.outerHeight()-c.outerHeight());g= -l*(b[0].scrollHeight-b.outerHeight());e&&(g=d,d=g/b[0].scrollHeight*b.outerHeight(),d=Math.min(Math.max(d,0),f),c.css({top:d+"px"}));b.scrollTop(g);b.trigger("slimscrolling",~~g);w();p()}function x(){u=Math.max(b.outerHeight()/b[0].scrollHeight*b.outerHeight(),30);c.css({height:u+"px"});var a=u==b.outerHeight()?"none":"block";c.css({display:a})}function w(){x();clearTimeout(B);l==~~l?(k=a.allowPageScroll,C!=l&&b.trigger("slimscroll",0==~~l?"top":"bottom")):k=!1;C=l;u>=b.outerHeight()?k=!0:(c.stop(!0, -!0).fadeIn("fast"),a.railVisible&&m.stop(!0,!0).fadeIn("fast"))}function p(){a.alwaysVisible||(B=setTimeout(function(){a.disableFadeOut&&r||y||z||(c.fadeOut("slow"),m.fadeOut("slow"))},1E3))}var r,y,z,B,A,u,l,C,k=!1,b=e(this);if(b.parent().hasClass(a.wrapperClass)){var q=b.scrollTop(),c=b.siblings("."+a.barClass),m=b.siblings("."+a.railClass);x();if(e.isPlainObject(f)){if("height"in f&&"auto"==f.height){b.parent().css("height","auto");b.css("height","auto");var h=b.parent().parent().height();b.parent().css("height", -h);b.css("height",h)}else"height"in f&&(h=f.height,b.parent().css("height",h),b.css("height",h));if("scrollTo"in f)q=parseInt(a.scrollTo);else if("scrollBy"in f)q+=parseInt(a.scrollBy);else if("destroy"in f){c.remove();m.remove();b.unwrap();return}n(q,!1,!0)}}else if(!(e.isPlainObject(f)&&"destroy"in f)){a.height="auto"==a.height?b.parent().height():a.height;q=e("<div></div>").addClass(a.wrapperClass).css({position:"relative",overflow:"hidden",width:a.width,height:a.height});b.css({overflow:"hidden", -width:a.width,height:a.height});var m=e("<div></div>").addClass(a.railClass).css({width:a.size,height:"100%",position:"absolute",top:0,display:a.alwaysVisible&&a.railVisible?"block":"none","border-radius":a.railBorderRadius,background:a.railColor,opacity:a.railOpacity,zIndex:90}),c=e("<div></div>").addClass(a.barClass).css({background:a.color,width:a.size,position:"absolute",top:0,opacity:a.opacity,display:a.alwaysVisible?"block":"none","border-radius":a.borderRadius,BorderRadius:a.borderRadius,MozBorderRadius:a.borderRadius, -WebkitBorderRadius:a.borderRadius,zIndex:99}),h="right"==a.position?{right:a.distance}:{left:a.distance};m.css(h);c.css(h);b.wrap(q);b.parent().append(c);b.parent().append(m);a.railDraggable&&c.bind("mousedown",function(a){var b=e(document);z=!0;t=parseFloat(c.css("top"));pageY=a.pageY;b.bind("mousemove.slimscroll",function(a){currTop=t+a.pageY-pageY;c.css("top",currTop);n(0,c.position().top,!1)});b.bind("mouseup.slimscroll",function(a){z=!1;p();b.unbind(".slimscroll")});return!1}).bind("selectstart.slimscroll", -function(a){a.stopPropagation();a.preventDefault();return!1});m.hover(function(){w()},function(){p()});c.hover(function(){y=!0},function(){y=!1});b.hover(function(){r=!0;w();p()},function(){r=!1;p()});b.bind("touchstart",function(a,b){a.originalEvent.touches.length&&(A=a.originalEvent.touches[0].pageY)});b.bind("touchmove",function(b){k||b.originalEvent.preventDefault();b.originalEvent.touches.length&&(n((A-b.originalEvent.touches[0].pageY)/a.touchScrollStep,!0),A=b.originalEvent.touches[0].pageY)}); -x();"bottom"===a.start?(c.css({top:b.outerHeight()-c.outerHeight()}),n(0,!0)):"top"!==a.start&&(n(e(a.start).position().top,null,!0),a.alwaysVisible||c.hide());window.addEventListener?(this.addEventListener("DOMMouseScroll",v,!1),this.addEventListener("mousewheel",v,!1)):document.attachEvent("onmousewheel",v)}});return this}});e.fn.extend({slimscroll:e.fn.slimScroll})})(jQuery); \ No newline at end of file diff --git a/admin/bower_components/jquery-slimscroll/package.json b/admin/bower_components/jquery-slimscroll/package.json deleted file mode 100644 index 147e92d..0000000 --- a/admin/bower_components/jquery-slimscroll/package.json +++ /dev/null @@ -1,32 +0,0 @@ -{ - "name" : "jquery-slimscroll", - "main" : "jquery.slimscroll.js", - "version" : "1.3.8", - "title" : "jQuery slimScroll scrollbar", - "description" : "slimScroll is a small jQuery plugin that transforms any div into a scrollable area. slimScroll doesn't occupy any visual space as it only appears on a user initiated mouse-over.", - "keywords" : ["scrollbar", "scroll", "slimscroll", "scrollable", "scrolling", "scroller", "ui", "jquery-plugin", "ecosystem:jquery"], - "homepage" : "http://rocha.la/jQuery-slimScroll/", - "repository": { - "type": "git", - "url": "https://github.com/rochal/jQuery-slimScroll.git" - }, - "author" : { - "name" : "Piotr Rochala", - "url" : "http://rocha.la/" - }, - - "dependencies" : { - "jquery" : ">= 1.7" - }, - - "licenses" : [ - { - "type": "MIT", - "url": "http://www.opensource.org/licenses/mit-license.php" - }, - { - "type": "GPL", - "url": "http://www.opensource.org/licenses/gpl-license.php" - } - ] -} \ No newline at end of file diff --git a/admin/bower_components/jquery-sparkline/.bower.json b/admin/bower_components/jquery-sparkline/.bower.json deleted file mode 100644 index 12b9c02..0000000 --- a/admin/bower_components/jquery-sparkline/.bower.json +++ /dev/null @@ -1,27 +0,0 @@ -{ - "name": "jquery-sparkline", - "version": "2.1.3", - "homepage": "https://github.com/rkgrep/jquery.sparkline", - "authors": [ - "Gareth Watts <gareth@omnipotent.net>" - ], - "main": "dist/jquery.sparkline.js", - "license": "BSD 3", - "ignore": [ - "**/.*", - "node_modules", - "bower_components", - "test", - "tests" - ], - "_release": "2.1.3", - "_resolution": { - "type": "version", - "tag": "v2.1.3", - "commit": "47b1f5a7daaa45739a75f8fd1d7c2948693d66fd" - }, - "_source": "https://github.com/rkgrep/jquery.sparkline.git", - "_target": "^2.1.3", - "_originalSource": "jquery-sparkline", - "_direct": true -} \ No newline at end of file diff --git a/admin/bower_components/jquery-sparkline/Changelog.txt b/admin/bower_components/jquery-sparkline/Changelog.txt deleted file mode 100644 index 3f7eb9d..0000000 --- a/admin/bower_components/jquery-sparkline/Changelog.txt +++ /dev/null @@ -1,324 +0,0 @@ -jQuery Sparkline Plugin ChangeLog -http://omnipotent.net/jquery.sparkline/ - -2.1.x ??? - -+ Fix for IE <= 9 for loading CSS when 31 stylesheets are already present - - -2.1.2 15/June/2013 - -+ Make compatible with jQuery 1.10 - -+ Fix intermittent "undefined error" with IE8 (issue 64) -Thanks Tim Tucker - -+ Performance/minification size improvement (PR 34) -Thanks Tim Tucker - -+ Prevent the plugin from being instatiated more than once (PR 37) -Thanks Tim Tucker - - -2.1.1 26/January/2013 - -+ Fix a couple of issues rendering pie charts in IE when they slices that make -up a negligible percentage of the whole chart (issue 49) - -+ Don't display line chart final marker if final value is null (issue 46) - -+ Make compatible with jQuery 1.9.0 (issue 60) - - -2.1 15/October/2012 - -+ Added support for Internet Explorer 10 (issue 18) -Thanks Jonathan Sampson - -+ Enable the plugin to be loaded dynamically (issue 6) -Thanks joeenzminger - -+ Pie charts with zero in the array of values will no longer -cause IE to display "undefined" in the page (issue 9) - -+ Null values in bar charts are now correctly omitted by default (issue 23) - -+ Null values in line charts would cause value highligting to be -incorrect (issue 4) - -+ Raise default z-index for tooltips to ensure they always appear on top -of the chart (issue 5) - -+ Allow target and performance values to be set to null for bullet charts, -omitting them from the chart (issue 3) - -+ Fix clipping of highlight marker spots if min/max/final spots are disabled -in line charts (issue 31) - -+ Line charts with normalRangeMin=0 will now render the normal range -correctly (issue 7) -Thanks Tim Mathewso - -+ Add support for AMD based module loaders such as requirejs (PR 32) -Thanks Tim Tucker - -+ Fix interquartile range calculation used by box plots (PR 10) -Thanks Claudio Riva - - -2.0 29/April/2012 - -+ jQuery.sparkline now requires jQuery 1.4.3 or later - -+ All charts now support mouseover and click actions -Adds options: disableInteraction, disableTooltips, disableHighlight - -+ Added sparklineClick and sparklineRegionChange events - -+ Line charts have highlightSpotColor and highlightLineColor options -for controlling mouseover highligiting - -+ All charts display tooltips and highlight values when moused-over by default -Adds options: tooltipContainer, tooltipOffsetX, tooltipOffsetY, tooltipFormatter, -tooltipChartTitle, tooltipFormat, tooltipPrefix, tooltipSuffix, -tooltipSkipNull, tooltipValueLookups, highlightLighten, numberFormatter, -numberDigitGroupSep, numberDecimalMark, numberDigitGroupCount - -+ Fix error when all null values are fed to a line chart -Thanks Ton Voon - -+ Fix off-by-one error that caused the bottom of filled line charts to -be unlevel - Thanks Sylvain Vieujot for the bug report - -+ Pie charts with a single value now render correctly -Thanks Juan Manuel - -+ Charts that have their dimensions specified exactly in pixels may see -improved performance -Thanks Sean Carpenter - -+ Coloured spots may be added to some or all values on a line chart now using -the new valueSpots option -Thanks Russ Beebe for the suggestion - -+ Bar and tristates charts now support using range of values for the colorMap -option - Eg. allows all bars with values betweeen 10 and 20 to be green - -+ Pie charts may now have a border using the borderWidth and borderColor -options - Thanks Michael Mior for the suggestion - -+ Added a disableHiddenCheck option - If you know your charts will never be -in a hidden block (display:none) at time of rendering, disabling this check -may improve performance - -+ Reduce number of DOM interactions when rendering charts in Internet Explorer -to increase render performance - -+ Bar charts may now have stacked values by providing an array of arrays -or by passing a comma and colon delimited series of values (eg. "1:2:3,2:3:1") - -+ Fix a bug where some spots would be drawn in the wrong position on line -charts if the x values were supplied as well as the y - -+ Fix a bug causing hidden composite sparklines to fail to render -once $.sparkline_display_visible() is called. - -+ If there are multiple calls to sparkline() on a hidden element, the plugin -will now only render the most recent one when the element becomes visible, -saving CPU time for the same visual result. - -+ If a hidden sparkline waiting to be rendered is removed from the DOM -via jQuery's .remove() or .html() etc methods then it will be -removed from the pending queue the next time $.sparkline_display_visible() -is called, preventing a memory leak. - -+ Add the $.range_map() and $.spformat() methods - - -1.6 30/November/2010 - -+ Allow options to be set as tag attributes, as well as passed in to the sparkline -function as an argument. See new enableTagOptions and tagOptionPrefix options. - -+ Added alternate methods of passing values in via HTML. -Can now include inline values in a comment, or pass values in as a values -attribute on the tag: -<span class="sparkline"><!-- 1,2,3,4,5 --></span> -<span class="sparkline" values="1,2,3,4,5"></span> - -+ bullet graphs now handle non-integer values correctly - -+ Added drawNormalOnTop option to line charts to force the normal -range to be drawn over the top of the line chart's fill color - -+ Detect if an element is not inserted into the DOM so that $.sparkline_display_visible() -will function correctly after it's later inserted. - -+ Remove the use of the Array indexOf prototype that was added to IE to avoid -conflicts with other libraries. - -+ Default settings are now exposed as $.fn.sparkline.defaults allowing -script-wide changes to be made instead of passing them to the sparkline function -on each call - - -1.5.1 01/March/2010 - -+ 1 character typo fix for IE - Thanks to Daniel Kenyon-Jones for the heads up - - -1.5 26/February/2010 - -+ Very small pie slices could fill the whole chart in IE -Thanks to Peter Doel for catching and fixing it - -+ Added chartRangeClip option to force values outside of chartRangeMin/chartRangeMax -to be clipped - -+ Added chartRangeMinX/chartRangeMaxX for line charts - -+ Allow chart types other than line chart to be used as composites. - -+ colorMap may now pass null as a colour to omit that bar from display entirely - -+ colorMap may now be passed as an Array of values allowing the colour of each -bar to be specified individually, rather than mapping by value - -+ Added nullColor option to bar charts to force null values to show up as a thin line - -+ Performance improvements with IE - - -1.4.3 14/September/2009 - -+ Updated default pie chart colours - Thanks Liel Dulev - -+ Null values can now be supplied to line and bar charts -(use 'null' as the value) - Thanks to Ed Blachman for -testing/debugging help - -+ Added colorMap option for bar charts - -+ Added lineWidth option for line charts - Can be an integer or a float -(try 1.5 or 2) - - -1.4.2 25/April/2009 - -+ Fixed rendering of circular spots on line charts -for Internet Explorer 8 - - -1.4.1 27/March/2009 - -+ Fixed minor off-by-1-pixel display glitch with IE - -+ Improved compatibilty with jQuery 1.3 which could cause some sparklines -not to be rendered in certain situations - - -1.4 25/February/2009 - -+ Added the box plot chart type - -+ Fixed a canvas rendering issue that would display some charts with -fuzzy lines - -+ Fixed error in bar charts which would causes bars to be too short. - -+ Couple of other minor bug fixes - - -1.3 25/January/2009 - -+ Sparklines can't be automatically displayed into hidden elements (ie. -with display:none) - Added a $.sparkline_display_visible() function -to render any sparklines that were generated while a tag was -hidden - -+ Fixed positioning issues where sparklines would be displayed a few -pixels offset from their containers in some browsers - -+ Made a first attempt at IE8 support. IE8 beta 2 seems to -have some vml related bugs though so having more than one sparkline -on a line doesn't work correctly, nor do the markers on line charts - -+ Misc other bug fixes - -+ Updated the web site with a new look - - -1.2.1 24/November/2008 - -+ Pie chart bug fixes: Divide by zero error resolved -and IE rendering issue if a pie slice is equal to 0 -Thanks to Hubert Mandeville for a patch fixing both issues - - -1.2 - 19/November/2008 - -+ Fixed positioning of min/max line markers for fixed range graphs -(thanks to Stéphane Busso) - -+ Fixed rendering of bar charts with negative values - -+ All values in a bar chart have a height now (min values used to -have height = 0) - -+ Added zeroColor option for bar charts which allows assignment of -a different color for values that are equal to zero - -+ Line charts can now specify both x and y values if required in one of -three ways: -a) Inline with HTML with values interleaved: -x1:y1,x2:y2,x3:y3 -eg. <span class="linechart">1:10,5:8,7:10</span> -b) Programatically using an x,y array for each value: -$('#mychart').sparkline([ [1,10], [5,8], [7,10] ]); -c) Programatically using a separate array for the x values: -$('#mychart').sparkline( [10,8,10], { xvalues: [1,5,7] }); - -+ Added chartRangeMin and chartRangeMax to line, bar and discrete graphs -This allows you to artificialy fix the min/max values for the graph -so that multiple graphs can share the same scale. - -+ Added defaultPixelsPerValue option to specify how many pixels wide -each value should be in a dynamically sized line graph - -+ Added offset option to piecharts - Takes a positive or negative degree -offset to start drawing the chart from. - - -1.1 - 29/July/2008 - -+ Added minSpotColor and maxSpotColor to line charts - If set then spot -markers are placed at the cordinates of the minimum and maximum values. - -+ Added normalRangeMin and normalRangeMax to line charts - If set then -a normalRangeColor band will be drawn on the graph - -+ Added chart compositing - Applying another chart to a DOM element with -an option of composite: true will cause the second (or more) chart to be -overlayed on the first rather than replacing it. - -+ Added optional colorMap option to tristate chart - This allows specific -colors to be supplied for specific values - -+ Added discrete chart type - Uses fixed size discrete vertical lines to mark -each values in a series - -+ Added bullet graph type - Implementation of Stephen Few's bullet graphs - -+ Added pie chart type - -+ Improved auto height option to match the line height of the containing -element - -+ Fixed some off by one positioning errors - -+ Reduced the default radius of spot markers from 2 to 1.5 pixels - - -1.0 - 17/July/2008 - -+ Initial Release diff --git a/admin/bower_components/jquery-sparkline/Makefile b/admin/bower_components/jquery-sparkline/Makefile deleted file mode 100644 index 6b7bd64..0000000 --- a/admin/bower_components/jquery-sparkline/Makefile +++ /dev/null @@ -1,41 +0,0 @@ -SRC_DIR = src -DIST_DIR = dist -COMPILER ?= `which uglifyjs` --no-copyright - - -SRC_FILES = $(SRC_DIR)/header.js\ - $(SRC_DIR)/defaults.js\ - $(SRC_DIR)/utils.js\ - $(SRC_DIR)/simpledraw.js\ - $(SRC_DIR)/rangemap.js\ - $(SRC_DIR)/interact.js\ - $(SRC_DIR)/base.js\ - $(SRC_DIR)/chart-line.js\ - $(SRC_DIR)/chart-bar.js\ - $(SRC_DIR)/chart-tristate.js\ - $(SRC_DIR)/chart-discrete.js\ - $(SRC_DIR)/chart-bullet.js\ - $(SRC_DIR)/chart-pie.js\ - $(SRC_DIR)/chart-box.js\ - $(SRC_DIR)/vcanvas-base.js\ - $(SRC_DIR)/vcanvas-canvas.js\ - $(SRC_DIR)/vcanvas-vml.js\ - $(SRC_DIR)/footer.js - - -VERSION = $(shell cat version.txt) - -all: jqs-gzip jqs-min-gzip Changelog.txt - -jqs: ${SRC_FILES} - cat ${SRC_FILES} | sed 's/@VERSION@/${VERSION}/' >${DIST_DIR}/jquery.sparkline.js - -jqs-min: jqs - cat minheader.txt | sed 's/@VERSION@/${VERSION}/' >dist/jquery.sparkline.min.js - ${COMPILER} dist/jquery.sparkline.js >>dist/jquery.sparkline.min.js - -jqs-gzip: jqs - gzip -9 < dist/jquery.sparkline.js >dist/jquery.sparkline.js.gz - -jqs-min-gzip: jqs-min - gzip -9 < dist/jquery.sparkline.min.js >dist/jquery.sparkline.min.js.gz diff --git a/admin/bower_components/jquery-sparkline/README.md b/admin/bower_components/jquery-sparkline/README.md deleted file mode 100644 index 1088d5e..0000000 --- a/admin/bower_components/jquery-sparkline/README.md +++ /dev/null @@ -1,19 +0,0 @@ -jQuery Sparklines -================= - -This jQuery plugin makes it easy to generate a number of different types -of sparklines directly in the browser, using online a line of two of HTML -and Javascript. - -The plugin has no dependencies other than jQuery and works with all modern -browsers and also Internet Explorer 6 and later (excanvas is not required -for IE support). - -See the [jQuery Sparkline project page](http://omnipotent.net/jquery.sparkline/) -for live examples and documentation. - -## License - -Released under the New BSD License - -(c) Splunk, Inc 2012 diff --git a/admin/bower_components/jquery-sparkline/bower.json b/admin/bower_components/jquery-sparkline/bower.json deleted file mode 100644 index a1c6824..0000000 --- a/admin/bower_components/jquery-sparkline/bower.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "name": "jquery-sparkline", - "version": "2.1.3", - "homepage": "https://github.com/rkgrep/jquery.sparkline", - "authors": [ - "Gareth Watts <gareth@omnipotent.net>" - ], - "main": "dist/jquery.sparkline.js", - "license": "BSD 3", - "ignore": [ - "**/.*", - "node_modules", - "bower_components", - "test", - "tests" - ] -} diff --git a/admin/bower_components/jquery-sparkline/dist/jquery.sparkline.js b/admin/bower_components/jquery-sparkline/dist/jquery.sparkline.js deleted file mode 100644 index 38be69a..0000000 --- a/admin/bower_components/jquery-sparkline/dist/jquery.sparkline.js +++ /dev/null @@ -1,3063 +0,0 @@ -/** -* -* jquery.sparkline.js -* -* v2.1.3 -* (c) Splunk, Inc -* Contact: Gareth Watts (gareth@splunk.com) -* http://omnipotent.net/jquery.sparkline/ -* -* Generates inline sparkline charts from data supplied either to the method -* or inline in HTML -* -* Compatible with Internet Explorer 6.0+ and modern browsers equipped with the canvas tag -* (Firefox 2.0+, Safari, Opera, etc) -* -* License: New BSD License -* -* Copyright (c) 2012, Splunk Inc. -* All rights reserved. -* -* Redistribution and use in source and binary forms, with or without modification, -* are permitted provided that the following conditions are met: -* -* * Redistributions of source code must retain the above copyright notice, -* this list of conditions and the following disclaimer. -* * Redistributions in binary form must reproduce the above copyright notice, -* this list of conditions and the following disclaimer in the documentation -* and/or other materials provided with the distribution. -* * Neither the name of Splunk Inc nor the names of its contributors may -* be used to endorse or promote products derived from this software without -* specific prior written permission. -* -* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY -* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES -* OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT -* SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT -* OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) -* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, -* OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -* -* -* Usage: -* $(selector).sparkline(values, options) -* -* If values is undefined or set to 'html' then the data values are read from the specified tag: -* <p>Sparkline: <span class="sparkline">1,4,6,6,8,5,3,5</span></p> -* $('.sparkline').sparkline(); -* There must be no spaces in the enclosed data set -* -* Otherwise values must be an array of numbers or null values -* <p>Sparkline: <span id="sparkline1">This text replaced if the browser is compatible</span></p> -* $('#sparkline1').sparkline([1,4,6,6,8,5,3,5]) -* $('#sparkline2').sparkline([1,4,6,null,null,5,3,5]) -* -* Values can also be specified in an HTML comment, or as a values attribute: -* <p>Sparkline: <span class="sparkline"><!--1,4,6,6,8,5,3,5 --></span></p> -* <p>Sparkline: <span class="sparkline" values="1,4,6,6,8,5,3,5"></span></p> -* $('.sparkline').sparkline(); -* -* For line charts, x values can also be specified: -* <p>Sparkline: <span class="sparkline">1:1,2.7:4,3.4:6,5:6,6:8,8.7:5,9:3,10:5</span></p> -* $('#sparkline1').sparkline([ [1,1], [2.7,4], [3.4,6], [5,6], [6,8], [8.7,5], [9,3], [10,5] ]) -* -* By default, options should be passed in as the second argument to the sparkline function: -* $('.sparkline').sparkline([1,2,3,4], {type: 'bar'}) -* -* Options can also be set by passing them on the tag itself. This feature is disabled by default though -* as there's a slight performance overhead: -* $('.sparkline').sparkline([1,2,3,4], {enableTagOptions: true}) -* <p>Sparkline: <span class="sparkline" sparkType="bar" sparkBarColor="red">loading</span></p> -* Prefix all options supplied as tag attribute with "spark" (configurable by setting tagOptionsPrefix) -* -* Supported options: -* lineColor - Color of the line used for the chart -* fillColor - Color used to fill in the chart - Set to '' or false for a transparent chart -* width - Width of the chart - Defaults to 3 times the number of values in pixels -* height - Height of the chart - Defaults to the height of the containing element -* chartRangeMin - Specify the minimum value to use for the Y range of the chart - Defaults to the minimum value supplied -* chartRangeMax - Specify the maximum value to use for the Y range of the chart - Defaults to the maximum value supplied -* chartRangeClip - Clip out of range values to the max/min specified by chartRangeMin and chartRangeMax -* chartRangeMinX - Specify the minimum value to use for the X range of the chart - Defaults to the minimum value supplied -* chartRangeMaxX - Specify the maximum value to use for the X range of the chart - Defaults to the maximum value supplied -* composite - If true then don't erase any existing chart attached to the tag, but draw -* another chart over the top - Note that width and height are ignored if an -* existing chart is detected. -* tagValuesAttribute - Name of tag attribute to check for data values - Defaults to 'values' -* enableTagOptions - Whether to check tags for sparkline options -* tagOptionsPrefix - Prefix used for options supplied as tag attributes - Defaults to 'spark' -* disableHiddenCheck - If set to true, then the plugin will assume that charts will never be drawn into a -* hidden dom element, avoding a browser reflow -* disableInteraction - If set to true then all mouseover/click interaction behaviour will be disabled, -* making the plugin perform much like it did in 1.x -* disableTooltips - If set to true then tooltips will be disabled - Defaults to false (tooltips enabled) -* disableHighlight - If set to true then highlighting of selected chart elements on mouseover will be disabled -* defaults to false (highlights enabled) -* highlightLighten - Factor to lighten/darken highlighted chart values by - Defaults to 1.4 for a 40% increase -* tooltipContainer - Specify which DOM element the tooltip should be rendered into - defaults to document.body -* tooltipClassname - Optional CSS classname to apply to tooltips - If not specified then a default style will be applied -* tooltipOffsetX - How many pixels away from the mouse pointer to render the tooltip on the X axis -* tooltipOffsetY - How many pixels away from the mouse pointer to render the tooltip on the r axis -* tooltipFormatter - Optional callback that allows you to override the HTML displayed in the tooltip -* callback is given arguments of (sparkline, options, fields) -* tooltipChartTitle - If specified then the tooltip uses the string specified by this setting as a title -* tooltipFormat - A format string or SPFormat object (or an array thereof for multiple entries) -* to control the format of the tooltip -* tooltipPrefix - A string to prepend to each field displayed in a tooltip -* tooltipSuffix - A string to append to each field displayed in a tooltip -* tooltipSkipNull - If true then null values will not have a tooltip displayed (defaults to true) -* tooltipValueLookups - An object or range map to map field values to tooltip strings -* (eg. to map -1 to "Lost", 0 to "Draw", and 1 to "Win") -* numberFormatter - Optional callback for formatting numbers in tooltips -* numberDigitGroupSep - Character to use for group separator in numbers "1,234" - Defaults to "," -* numberDecimalMark - Character to use for the decimal point when formatting numbers - Defaults to "." -* numberDigitGroupCount - Number of digits between group separator - Defaults to 3 -* -* There are 7 types of sparkline, selected by supplying a "type" option of 'line' (default), -* 'bar', 'tristate', 'bullet', 'discrete', 'pie' or 'box' -* line - Line chart. Options: -* spotColor - Set to '' to not end each line in a circular spot -* minSpotColor - If set, color of spot at minimum value -* maxSpotColor - If set, color of spot at maximum value -* spotRadius - Radius in pixels -* lineWidth - Width of line in pixels -* normalRangeMin -* normalRangeMax - If set draws a filled horizontal bar between these two values marking the "normal" -* or expected range of values -* normalRangeColor - Color to use for the above bar -* drawNormalOnTop - Draw the normal range above the chart fill color if true -* defaultPixelsPerValue - Defaults to 3 pixels of width for each value in the chart -* highlightSpotColor - The color to use for drawing a highlight spot on mouseover - Set to null to disable -* highlightLineColor - The color to use for drawing a highlight line on mouseover - Set to null to disable -* valueSpots - Specify which points to draw spots on, and in which color. Accepts a range map -* -* bar - Bar chart. Options: -* barColor - Color of bars for postive values -* negBarColor - Color of bars for negative values -* zeroColor - Color of bars with zero values -* nullColor - Color of bars with null values - Defaults to omitting the bar entirely -* barWidth - Width of bars in pixels -* colorMap - Optional mappnig of values to colors to override the *BarColor values above -* can be an Array of values to control the color of individual bars or a range map -* to specify colors for individual ranges of values -* barSpacing - Gap between bars in pixels -* zeroAxis - Centers the y-axis around zero if true -* -* tristate - Charts values of win (>0), lose (<0) or draw (=0) -* posBarColor - Color of win values -* negBarColor - Color of lose values -* zeroBarColor - Color of draw values -* barWidth - Width of bars in pixels -* barSpacing - Gap between bars in pixels -* colorMap - Optional mappnig of values to colors to override the *BarColor values above -* can be an Array of values to control the color of individual bars or a range map -* to specify colors for individual ranges of values -* -* discrete - Options: -* lineHeight - Height of each line in pixels - Defaults to 30% of the graph height -* thesholdValue - Values less than this value will be drawn using thresholdColor instead of lineColor -* thresholdColor -* -* bullet - Values for bullet graphs msut be in the order: target, performance, range1, range2, range3, ... -* options: -* targetColor - The color of the vertical target marker -* targetWidth - The width of the target marker in pixels -* performanceColor - The color of the performance measure horizontal bar -* rangeColors - Colors to use for each qualitative range background color -* -* pie - Pie chart. Options: -* sliceColors - An array of colors to use for pie slices -* offset - Angle in degrees to offset the first slice - Try -90 or +90 -* borderWidth - Width of border to draw around the pie chart, in pixels - Defaults to 0 (no border) -* borderColor - Color to use for the pie chart border - Defaults to #000 -* -* box - Box plot. Options: -* raw - Set to true to supply pre-computed plot points as values -* values should be: low_outlier, low_whisker, q1, median, q3, high_whisker, high_outlier -* When set to false you can supply any number of values and the box plot will -* be computed for you. Default is false. -* showOutliers - Set to true (default) to display outliers as circles -* outlierIQR - Interquartile range used to determine outliers. Default 1.5 -* boxLineColor - Outline color of the box -* boxFillColor - Fill color for the box -* whiskerColor - Line color used for whiskers -* outlierLineColor - Outline color of outlier circles -* outlierFillColor - Fill color of the outlier circles -* spotRadius - Radius of outlier circles -* medianColor - Line color of the median line -* target - Draw a target cross hair at the supplied value (default undefined) -* -* -* -* Examples: -* $('#sparkline1').sparkline(myvalues, { lineColor: '#f00', fillColor: false }); -* $('.barsparks').sparkline('html', { type:'bar', height:'40px', barWidth:5 }); -* $('#tristate').sparkline([1,1,-1,1,0,0,-1], { type:'tristate' }): -* $('#discrete').sparkline([1,3,4,5,5,3,4,5], { type:'discrete' }); -* $('#bullet').sparkline([10,12,12,9,7], { type:'bullet' }); -* $('#pie').sparkline([1,1,2], { type:'pie' }); -*/ - -/*jslint regexp: true, browser: true, jquery: true, white: true, nomen: false, plusplus: false, maxerr: 500, indent: 4 */ - -(function(document, Math, undefined) { // performance/minified-size optimization -(function(factory) { - if(typeof define === 'function' && define.amd) { - define(['jquery'], factory); - } else if (jQuery && !jQuery.fn.sparkline) { - factory(jQuery); - } -} -(function($) { - 'use strict'; - - var UNSET_OPTION = {}, - getDefaults, createClass, SPFormat, clipval, quartile, normalizeValue, normalizeValues, - remove, isNumber, all, sum, addCSS, ensureArray, formatNumber, RangeMap, - MouseHandler, Tooltip, barHighlightMixin, - line, bar, tristate, discrete, bullet, pie, box, defaultStyles, initStyles, - VShape, VCanvas_base, VCanvas_canvas, VCanvas_vml, pending, shapeCount = 0; - - /** - * Default configuration settings - */ - getDefaults = function () { - return { - // Settings common to most/all chart types - common: { - type: 'line', - lineColor: '#00f', - fillColor: '#cdf', - defaultPixelsPerValue: 3, - width: 'auto', - height: 'auto', - composite: false, - tagValuesAttribute: 'values', - tagOptionsPrefix: 'spark', - enableTagOptions: false, - enableHighlight: true, - highlightLighten: 1.4, - tooltipSkipNull: true, - tooltipPrefix: '', - tooltipSuffix: '', - disableHiddenCheck: false, - numberFormatter: false, - numberDigitGroupCount: 3, - numberDigitGroupSep: ',', - numberDecimalMark: '.', - disableTooltips: false, - disableInteraction: false - }, - // Defaults for line charts - line: { - spotColor: '#f80', - highlightSpotColor: '#5f5', - highlightLineColor: '#f22', - spotRadius: 1.5, - minSpotColor: '#f80', - maxSpotColor: '#f80', - lineWidth: 1, - normalRangeMin: undefined, - normalRangeMax: undefined, - normalRangeColor: '#ccc', - drawNormalOnTop: false, - chartRangeMin: undefined, - chartRangeMax: undefined, - chartRangeMinX: undefined, - chartRangeMaxX: undefined, - tooltipFormat: new SPFormat('<span style="color: {{color}}">&#9679;</span> {{prefix}}{{y}}{{suffix}}') - }, - // Defaults for bar charts - bar: { - barColor: '#3366cc', - negBarColor: '#f44', - stackedBarColor: ['#3366cc', '#dc3912', '#ff9900', '#109618', '#66aa00', - '#dd4477', '#0099c6', '#990099'], - zeroColor: undefined, - nullColor: undefined, - zeroAxis: true, - barWidth: 4, - barSpacing: 1, - chartRangeMax: undefined, - chartRangeMin: undefined, - chartRangeClip: false, - colorMap: undefined, - tooltipFormat: new SPFormat('<span style="color: {{color}}">&#9679;</span> {{prefix}}{{value}}{{suffix}}') - }, - // Defaults for tristate charts - tristate: { - barWidth: 4, - barSpacing: 1, - posBarColor: '#6f6', - negBarColor: '#f44', - zeroBarColor: '#999', - colorMap: {}, - tooltipFormat: new SPFormat('<span style="color: {{color}}">&#9679;</span> {{value:map}}'), - tooltipValueLookups: { map: { '-1': 'Loss', '0': 'Draw', '1': 'Win' } } - }, - // Defaults for discrete charts - discrete: { - lineHeight: 'auto', - thresholdColor: undefined, - thresholdValue: 0, - chartRangeMax: undefined, - chartRangeMin: undefined, - chartRangeClip: false, - tooltipFormat: new SPFormat('{{prefix}}{{value}}{{suffix}}') - }, - // Defaults for bullet charts - bullet: { - targetColor: '#f33', - targetWidth: 3, // width of the target bar in pixels - performanceColor: '#33f', - rangeColors: ['#d3dafe', '#a8b6ff', '#7f94ff'], - base: undefined, // set this to a number to change the base start number - tooltipFormat: new SPFormat('{{fieldkey:fields}} - {{value}}'), - tooltipValueLookups: { fields: {r: 'Range', p: 'Performance', t: 'Target'} } - }, - // Defaults for pie charts - pie: { - offset: 0, - sliceColors: ['#3366cc', '#dc3912', '#ff9900', '#109618', '#66aa00', - '#dd4477', '#0099c6', '#990099'], - borderWidth: 0, - borderColor: '#000', - tooltipFormat: new SPFormat('<span style="color: {{color}}">&#9679;</span> {{value}} ({{percent.1}}%)') - }, - // Defaults for box plots - box: { - raw: false, - boxLineColor: '#000', - boxFillColor: '#cdf', - whiskerColor: '#000', - outlierLineColor: '#333', - outlierFillColor: '#fff', - medianColor: '#f00', - showOutliers: true, - outlierIQR: 1.5, - spotRadius: 1.5, - target: undefined, - targetColor: '#4a2', - chartRangeMax: undefined, - chartRangeMin: undefined, - tooltipFormat: new SPFormat('{{field:fields}}: {{value}}'), - tooltipFormatFieldlistKey: 'field', - tooltipValueLookups: { fields: { lq: 'Lower Quartile', med: 'Median', - uq: 'Upper Quartile', lo: 'Left Outlier', ro: 'Right Outlier', - lw: 'Left Whisker', rw: 'Right Whisker'} } - } - }; - }; - - // You can have tooltips use a css class other than jqstooltip by specifying tooltipClassname - defaultStyles = '.jqstooltip { ' + - 'position: absolute;' + - 'left: 0px;' + - 'top: 0px;' + - 'visibility: hidden;' + - 'background: rgb(0, 0, 0) transparent;' + - 'background-color: rgba(0,0,0,0.6);' + - 'filter:progid:DXImageTransform.Microsoft.gradient(startColorstr=#99000000, endColorstr=#99000000);' + - '-ms-filter: "progid:DXImageTransform.Microsoft.gradient(startColorstr=#99000000, endColorstr=#99000000)";' + - 'color: white;' + - 'font: 10px arial, san serif;' + - 'text-align: left;' + - 'white-space: nowrap;' + - 'padding: 5px;' + - 'border: 1px solid white;' + - 'box-sizing: content-box;' + - 'z-index: 10000;' + - '}' + - '.jqsfield { ' + - 'color: white;' + - 'font: 10px arial, san serif;' + - 'text-align: left;' + - '}'; - - /** - * Utilities - */ - - createClass = function (/* [baseclass, [mixin, ...]], definition */) { - var Class, args; - Class = function () { - this.init.apply(this, arguments); - }; - if (arguments.length > 1) { - if (arguments[0]) { - Class.prototype = $.extend(new arguments[0](), arguments[arguments.length - 1]); - Class._super = arguments[0].prototype; - } else { - Class.prototype = arguments[arguments.length - 1]; - } - if (arguments.length > 2) { - args = Array.prototype.slice.call(arguments, 1, -1); - args.unshift(Class.prototype); - $.extend.apply($, args); - } - } else { - Class.prototype = arguments[0]; - } - Class.prototype.cls = Class; - return Class; - }; - - /** - * Wraps a format string for tooltips - * {{x}} - * {{x.2} - * {{x:months}} - */ - $.SPFormatClass = SPFormat = createClass({ - fre: /\{\{([\w.]+?)(:(.+?))?\}\}/g, - precre: /(\w+)\.(\d+)/, - - init: function (format, fclass) { - this.format = format; - this.fclass = fclass; - }, - - render: function (fieldset, lookups, options) { - var self = this, - fields = fieldset, - match, token, lookupkey, fieldvalue, prec; - return this.format.replace(this.fre, function () { - var lookup; - token = arguments[1]; - lookupkey = arguments[3]; - match = self.precre.exec(token); - if (match) { - prec = match[2]; - token = match[1]; - } else { - prec = false; - } - fieldvalue = fields[token]; - if (fieldvalue === undefined) { - return ''; - } - if (lookupkey && lookups && lookups[lookupkey]) { - lookup = lookups[lookupkey]; - if (lookup.get) { // RangeMap - return lookups[lookupkey].get(fieldvalue) || fieldvalue; - } else { - return lookups[lookupkey][fieldvalue] || fieldvalue; - } - } - if (isNumber(fieldvalue)) { - if (options.get('numberFormatter')) { - fieldvalue = options.get('numberFormatter')(fieldvalue); - } else { - fieldvalue = formatNumber(fieldvalue, prec, - options.get('numberDigitGroupCount'), - options.get('numberDigitGroupSep'), - options.get('numberDecimalMark')); - } - } - return fieldvalue; - }); - } - }); - - // convience method to avoid needing the new operator - $.spformat = function(format, fclass) { - return new SPFormat(format, fclass); - }; - - clipval = function (val, min, max) { - if (val < min) { - return min; - } - if (val > max) { - return max; - } - return val; - }; - - quartile = function (values, q) { - var vl; - if (q === 2) { - vl = Math.floor(values.length / 2); - return values.length % 2 ? values[vl] : (values[vl-1] + values[vl]) / 2; - } else { - if (values.length % 2 ) { // odd - vl = (values.length * q + q) / 4; - return vl % 1 ? (values[Math.floor(vl)] + values[Math.floor(vl) - 1]) / 2 : values[vl-1]; - } else { //even - vl = (values.length * q + 2) / 4; - return vl % 1 ? (values[Math.floor(vl)] + values[Math.floor(vl) - 1]) / 2 : values[vl-1]; - - } - } - }; - - normalizeValue = function (val) { - var nf; - switch (val) { - case 'undefined': - val = undefined; - break; - case 'null': - val = null; - break; - case 'true': - val = true; - break; - case 'false': - val = false; - break; - default: - nf = parseFloat(val); - if (val == nf) { - val = nf; - } - } - return val; - }; - - normalizeValues = function (vals) { - var i, result = []; - for (i = vals.length; i--;) { - result[i] = normalizeValue(vals[i]); - } - return result; - }; - - remove = function (vals, filter) { - var i, vl, result = []; - for (i = 0, vl = vals.length; i < vl; i++) { - if (vals[i] !== filter) { - result.push(vals[i]); - } - } - return result; - }; - - isNumber = function (num) { - return !isNaN(parseFloat(num)) && isFinite(num); - }; - - formatNumber = function (num, prec, groupsize, groupsep, decsep) { - var p, i; - num = (prec === false ? parseFloat(num).toString() : num.toFixed(prec)).split(''); - p = (p = $.inArray('.', num)) < 0 ? num.length : p; - if (p < num.length) { - num[p] = decsep; - } - for (i = p - groupsize; i > 0; i -= groupsize) { - num.splice(i, 0, groupsep); - } - return num.join(''); - }; - - // determine if all values of an array match a value - // returns true if the array is empty - all = function (val, arr, ignoreNull) { - var i; - for (i = arr.length; i--; ) { - if (ignoreNull && arr[i] === null) continue; - if (arr[i] !== val) { - return false; - } - } - return true; - }; - - // sums the numeric values in an array, ignoring other values - sum = function (vals) { - var total = 0, i; - for (i = vals.length; i--;) { - total += typeof vals[i] === 'number' ? vals[i] : 0; - } - return total; - }; - - ensureArray = function (val) { - return $.isArray(val) ? val : [val]; - }; - - // http://paulirish.com/2008/bookmarklet-inject-new-css-rules/ - addCSS = function(css) { - var tag, iefail; - if (document.createStyleSheet) { - try { - document.createStyleSheet().cssText = css; - return; - } catch (e) { - // IE <= 9 maxes out at 31 stylesheets; inject into page instead. - iefail = true; - } - } - tag = document.createElement('style'); - tag.type = 'text/css'; - document.getElementsByTagName('head')[0].appendChild(tag); - if (iefail) { - document.styleSheets[document.styleSheets.length - 1].cssText = css; - } else { - tag[(typeof document.body.style.WebkitAppearance == 'string') /* webkit only */ ? 'innerText' : 'innerHTML'] = css; - } - }; - - // Provide a cross-browser interface to a few simple drawing primitives - $.fn.simpledraw = function (width, height, useExisting, interact) { - var target, mhandler; - if (useExisting && (target = this.data('_jqs_vcanvas'))) { - return target; - } - - if ($.fn.sparkline.canvas === false) { - // We've already determined that neither Canvas nor VML are available - return false; - - } else if ($.fn.sparkline.canvas === undefined) { - // No function defined yet -- need to see if we support Canvas or VML - var el = document.createElement('canvas'); - if (!!(el.getContext && el.getContext('2d'))) { - // Canvas is available - $.fn.sparkline.canvas = function(width, height, target, interact) { - return new VCanvas_canvas(width, height, target, interact); - }; - } else if (document.namespaces && !document.namespaces.v) { - // VML is available - document.namespaces.add('v', 'urn:schemas-microsoft-com:vml', '#default#VML'); - $.fn.sparkline.canvas = function(width, height, target, interact) { - return new VCanvas_vml(width, height, target); - }; - } else { - // Neither Canvas nor VML are available - $.fn.sparkline.canvas = false; - return false; - } - } - - if (width === undefined) { - width = $(this).innerWidth(); - } - if (height === undefined) { - height = $(this).innerHeight(); - } - - target = $.fn.sparkline.canvas(width, height, this, interact); - - mhandler = $(this).data('_jqs_mhandler'); - if (mhandler) { - mhandler.registerCanvas(target); - } - return target; - }; - - $.fn.cleardraw = function () { - var target = this.data('_jqs_vcanvas'); - if (target) { - target.reset(); - } - }; - - $.RangeMapClass = RangeMap = createClass({ - init: function (map) { - var key, range, rangelist = []; - for (key in map) { - if (map.hasOwnProperty(key) && typeof key === 'string' && key.indexOf(':') > -1) { - range = key.split(':'); - range[0] = range[0].length === 0 ? -Infinity : parseFloat(range[0]); - range[1] = range[1].length === 0 ? Infinity : parseFloat(range[1]); - range[2] = map[key]; - rangelist.push(range); - } - } - this.map = map; - this.rangelist = rangelist || false; - }, - - get: function (value) { - var rangelist = this.rangelist, - i, range, result; - if ((result = this.map[value]) !== undefined) { - return result; - } - if (rangelist) { - for (i = rangelist.length; i--;) { - range = rangelist[i]; - if (range[0] <= value && range[1] >= value) { - return range[2]; - } - } - } - return undefined; - } - }); - - // Convenience function - $.range_map = function(map) { - return new RangeMap(map); - }; - - MouseHandler = createClass({ - init: function (el, options) { - var $el = $(el); - this.$el = $el; - this.options = options; - this.currentPageX = 0; - this.currentPageY = 0; - this.el = el; - this.splist = []; - this.tooltip = null; - this.over = false; - this.displayTooltips = !options.get('disableTooltips'); - this.highlightEnabled = !options.get('disableHighlight'); - }, - - registerSparkline: function (sp) { - this.splist.push(sp); - if (this.over) { - this.updateDisplay(); - } - }, - - registerCanvas: function (canvas) { - var $canvas = $(canvas.canvas); - this.canvas = canvas; - this.$canvas = $canvas; - $canvas.mouseenter($.proxy(this.mouseenter, this)); - $canvas.mouseleave($.proxy(this.mouseleave, this)); - $canvas.click($.proxy(this.mouseclick, this)); - }, - - reset: function (removeTooltip) { - this.splist = []; - if (this.tooltip && removeTooltip) { - this.tooltip.remove(); - this.tooltip = undefined; - } - }, - - mouseclick: function (e) { - var clickEvent = $.Event('sparklineClick'); - clickEvent.originalEvent = e; - clickEvent.sparklines = this.splist; - this.$el.trigger(clickEvent); - }, - - mouseenter: function (e) { - $(document.body).unbind('mousemove.jqs'); - $(document.body).bind('mousemove.jqs', $.proxy(this.mousemove, this)); - this.over = true; - this.currentPageX = e.pageX; - this.currentPageY = e.pageY; - this.currentEl = e.target; - if (!this.tooltip && this.displayTooltips) { - this.tooltip = new Tooltip(this.options); - this.tooltip.updatePosition(e.pageX, e.pageY); - } - this.updateDisplay(); - }, - - mouseleave: function () { - $(document.body).unbind('mousemove.jqs'); - var splist = this.splist, - spcount = splist.length, - needsRefresh = false, - sp, i; - this.over = false; - this.currentEl = null; - - if (this.tooltip) { - this.tooltip.remove(); - this.tooltip = null; - } - - for (i = 0; i < spcount; i++) { - sp = splist[i]; - if (sp.clearRegionHighlight()) { - needsRefresh = true; - } - } - - if (needsRefresh) { - this.canvas.render(); - } - }, - - mousemove: function (e) { - this.currentPageX = e.pageX; - this.currentPageY = e.pageY; - this.currentEl = e.target; - if (this.tooltip) { - this.tooltip.updatePosition(e.pageX, e.pageY); - } - this.updateDisplay(); - }, - - updateDisplay: function () { - var splist = this.splist, - spcount = splist.length, - needsRefresh = false, - offset = this.$canvas.offset(), - localX = this.currentPageX - offset.left, - localY = this.currentPageY - offset.top, - tooltiphtml, sp, i, result, changeEvent; - if (!this.over) { - return; - } - for (i = 0; i < spcount; i++) { - sp = splist[i]; - result = sp.setRegionHighlight(this.currentEl, localX, localY); - if (result) { - needsRefresh = true; - } - } - if (needsRefresh) { - changeEvent = $.Event('sparklineRegionChange'); - changeEvent.sparklines = this.splist; - this.$el.trigger(changeEvent); - if (this.tooltip) { - tooltiphtml = ''; - for (i = 0; i < spcount; i++) { - sp = splist[i]; - tooltiphtml += sp.getCurrentRegionTooltip(); - } - this.tooltip.setContent(tooltiphtml); - } - if (!this.disableHighlight) { - this.canvas.render(); - } - } - if (result === null) { - this.mouseleave(); - } - } - }); - - - Tooltip = createClass({ - sizeStyle: 'position: static !important;' + - 'display: block !important;' + - 'visibility: hidden !important;' + - 'float: left !important;', - - init: function (options) { - var tooltipClassname = options.get('tooltipClassname', 'jqstooltip'), - sizetipStyle = this.sizeStyle, - offset; - this.container = options.get('tooltipContainer') || document.body; - this.tooltipOffsetX = options.get('tooltipOffsetX', 10); - this.tooltipOffsetY = options.get('tooltipOffsetY', 12); - // remove any previous lingering tooltip - $('#jqssizetip').remove(); - $('#jqstooltip').remove(); - this.sizetip = $('<div/>', { - id: 'jqssizetip', - style: sizetipStyle, - 'class': tooltipClassname - }); - this.tooltip = $('<div/>', { - id: 'jqstooltip', - 'class': tooltipClassname - }).appendTo(this.container); - // account for the container's location - offset = this.tooltip.offset(); - this.offsetLeft = offset.left; - this.offsetTop = offset.top; - this.hidden = true; - $(window).unbind('resize.jqs scroll.jqs'); - $(window).bind('resize.jqs scroll.jqs', $.proxy(this.updateWindowDims, this)); - this.updateWindowDims(); - }, - - updateWindowDims: function () { - this.scrollTop = $(window).scrollTop(); - this.scrollLeft = $(window).scrollLeft(); - this.scrollRight = this.scrollLeft + $(window).width(); - this.updatePosition(); - }, - - getSize: function (content) { - this.sizetip.html(content).appendTo(this.container); - this.width = this.sizetip.width() + 1; - this.height = this.sizetip.height(); - this.sizetip.remove(); - }, - - setContent: function (content) { - if (!content) { - this.tooltip.css('visibility', 'hidden'); - this.hidden = true; - return; - } - this.getSize(content); - this.tooltip.html(content) - .css({ - 'width': this.width, - 'height': this.height, - 'visibility': 'visible' - }); - if (this.hidden) { - this.hidden = false; - this.updatePosition(); - } - }, - - updatePosition: function (x, y) { - if (x === undefined) { - if (this.mousex === undefined) { - return; - } - x = this.mousex - this.offsetLeft; - y = this.mousey - this.offsetTop; - - } else { - this.mousex = x = x - this.offsetLeft; - this.mousey = y = y - this.offsetTop; - } - if (!this.height || !this.width || this.hidden) { - return; - } - - y -= this.height + this.tooltipOffsetY; - x += this.tooltipOffsetX; - - if (y < this.scrollTop) { - y = this.scrollTop; - } - if (x < this.scrollLeft) { - x = this.scrollLeft; - } else if (x + this.width > this.scrollRight) { - x = this.scrollRight - this.width; - } - - this.tooltip.css({ - 'left': x, - 'top': y - }); - }, - - remove: function () { - this.tooltip.remove(); - this.sizetip.remove(); - this.sizetip = this.tooltip = undefined; - $(window).unbind('resize.jqs scroll.jqs'); - } - }); - - initStyles = function() { - addCSS(defaultStyles); - }; - - $(initStyles); - - pending = []; - $.fn.sparkline = function (userValues, userOptions) { - return this.each(function () { - var options = new $.fn.sparkline.options(this, userOptions), - $this = $(this), - render, i; - render = function () { - var values, width, height, tmp, mhandler, sp, vals; - if (userValues === 'html' || userValues === undefined) { - vals = this.getAttribute(options.get('tagValuesAttribute')); - if (vals === undefined || vals === null) { - vals = $this.html(); - } - values = vals.replace(/(^\s*<!--)|(-->\s*$)|\s+/g, '').split(','); - } else { - values = userValues; - } - - width = options.get('width') === 'auto' ? values.length * options.get('defaultPixelsPerValue') : options.get('width'); - if (options.get('height') === 'auto') { - if (!options.get('composite') || !$.data(this, '_jqs_vcanvas')) { - // must be a better way to get the line height - tmp = document.createElement('span'); - tmp.innerHTML = 'a'; - $this.html(tmp); - height = $(tmp).innerHeight() || $(tmp).height(); - $(tmp).remove(); - tmp = null; - } - } else { - height = options.get('height'); - } - - if (!options.get('disableInteraction')) { - mhandler = $.data(this, '_jqs_mhandler'); - if (!mhandler) { - mhandler = new MouseHandler(this, options); - $.data(this, '_jqs_mhandler', mhandler); - } else if (!options.get('composite')) { - mhandler.reset(); - } - } else { - mhandler = false; - } - - if (options.get('composite') && !$.data(this, '_jqs_vcanvas')) { - if (!$.data(this, '_jqs_errnotify')) { - alert('Attempted to attach a composite sparkline to an element with no existing sparkline'); - $.data(this, '_jqs_errnotify', true); - } - return; - } - - sp = new $.fn.sparkline[options.get('type')](this, values, options, width, height); - - sp.render(); - - if (mhandler) { - mhandler.registerSparkline(sp); - } - }; - if (($(this).html() && !options.get('disableHiddenCheck') && $(this).is(':hidden')) || !$(this).parents('body').length) { - if (!options.get('composite') && $.data(this, '_jqs_pending')) { - // remove any existing references to the element - for (i = pending.length; i; i--) { - if (pending[i - 1][0] == this) { - pending.splice(i - 1, 1); - } - } - } - pending.push([this, render]); - $.data(this, '_jqs_pending', true); - } else { - render.call(this); - } - }); - }; - - $.fn.sparkline.defaults = getDefaults(); - - - $.sparkline_display_visible = function () { - var el, i, pl; - var done = []; - for (i = 0, pl = pending.length; i < pl; i++) { - el = pending[i][0]; - if ($(el).is(':visible') && !$(el).parents().is(':hidden')) { - pending[i][1].call(el); - $.data(pending[i][0], '_jqs_pending', false); - done.push(i); - } else if (!$(el).closest('html').length && !$.data(el, '_jqs_pending')) { - // element has been inserted and removed from the DOM - // If it was not yet inserted into the dom then the .data request - // will return true. - // removing from the dom causes the data to be removed. - $.data(pending[i][0], '_jqs_pending', false); - done.push(i); - } - } - for (i = done.length; i; i--) { - pending.splice(done[i - 1], 1); - } - }; - - - /** - * User option handler - */ - $.fn.sparkline.options = createClass({ - init: function (tag, userOptions) { - var extendedOptions, defaults, base, tagOptionType; - this.userOptions = userOptions = userOptions || {}; - this.tag = tag; - this.tagValCache = {}; - defaults = $.fn.sparkline.defaults; - base = defaults.common; - this.tagOptionsPrefix = userOptions.enableTagOptions && (userOptions.tagOptionsPrefix || base.tagOptionsPrefix); - - tagOptionType = this.getTagSetting('type'); - if (tagOptionType === UNSET_OPTION) { - extendedOptions = defaults[userOptions.type || base.type]; - } else { - extendedOptions = defaults[tagOptionType]; - } - this.mergedOptions = $.extend({}, base, extendedOptions, userOptions); - }, - - - getTagSetting: function (key) { - var prefix = this.tagOptionsPrefix, - val, i, pairs, keyval; - if (prefix === false || prefix === undefined) { - return UNSET_OPTION; - } - if (this.tagValCache.hasOwnProperty(key)) { - val = this.tagValCache.key; - } else { - val = this.tag.getAttribute(prefix + key); - if (val === undefined || val === null) { - val = UNSET_OPTION; - } else if (val.substr(0, 1) === '[') { - val = val.substr(1, val.length - 2).split(','); - for (i = val.length; i--;) { - val[i] = normalizeValue(val[i].replace(/(^\s*)|(\s*$)/g, '')); - } - } else if (val.substr(0, 1) === '{') { - pairs = val.substr(1, val.length - 2).split(','); - val = {}; - for (i = pairs.length; i--;) { - keyval = pairs[i].split(':', 2); - val[keyval[0].replace(/(^\s*)|(\s*$)/g, '')] = normalizeValue(keyval[1].replace(/(^\s*)|(\s*$)/g, '')); - } - } else { - val = normalizeValue(val); - } - this.tagValCache.key = val; - } - return val; - }, - - get: function (key, defaultval) { - var tagOption = this.getTagSetting(key), - result; - if (tagOption !== UNSET_OPTION) { - return tagOption; - } - return (result = this.mergedOptions[key]) === undefined ? defaultval : result; - } - }); - - - $.fn.sparkline._base = createClass({ - disabled: false, - - init: function (el, values, options, width, height) { - this.el = el; - this.$el = $(el); - this.values = values; - this.options = options; - this.width = width; - this.height = height; - this.currentRegion = undefined; - }, - - /** - * Setup the canvas - */ - initTarget: function () { - var interactive = !this.options.get('disableInteraction'); - if (!(this.target = this.$el.simpledraw(this.width, this.height, this.options.get('composite'), interactive))) { - this.disabled = true; - } else { - this.canvasWidth = this.target.pixelWidth; - this.canvasHeight = this.target.pixelHeight; - } - }, - - /** - * Actually render the chart to the canvas - */ - render: function () { - if (this.disabled) { - this.el.innerHTML = ''; - return false; - } - return true; - }, - - /** - * Return a region id for a given x/y co-ordinate - */ - getRegion: function (x, y) { - }, - - /** - * Highlight an item based on the moused-over x,y co-ordinate - */ - setRegionHighlight: function (el, x, y) { - var currentRegion = this.currentRegion, - highlightEnabled = !this.options.get('disableHighlight'), - newRegion; - if (x > this.canvasWidth || y > this.canvasHeight || x < 0 || y < 0) { - return null; - } - newRegion = this.getRegion(el, x, y); - if (currentRegion !== newRegion) { - if (currentRegion !== undefined && highlightEnabled) { - this.removeHighlight(); - } - this.currentRegion = newRegion; - if (newRegion !== undefined && highlightEnabled) { - this.renderHighlight(); - } - return true; - } - return false; - }, - - /** - * Reset any currently highlighted item - */ - clearRegionHighlight: function () { - if (this.currentRegion !== undefined) { - this.removeHighlight(); - this.currentRegion = undefined; - return true; - } - return false; - }, - - renderHighlight: function () { - this.changeHighlight(true); - }, - - removeHighlight: function () { - this.changeHighlight(false); - }, - - changeHighlight: function (highlight) {}, - - /** - * Fetch the HTML to display as a tooltip - */ - getCurrentRegionTooltip: function () { - var options = this.options, - header = '', - entries = [], - fields, formats, formatlen, fclass, text, i, - showFields, showFieldsKey, newFields, fv, - formatter, format, fieldlen, j; - if (this.currentRegion === undefined) { - return ''; - } - fields = this.getCurrentRegionFields(); - formatter = options.get('tooltipFormatter'); - if (formatter) { - return formatter(this, options, fields); - } - if (options.get('tooltipChartTitle')) { - header += '<div class="jqs jqstitle">' + options.get('tooltipChartTitle') + '</div>\n'; - } - formats = this.options.get('tooltipFormat'); - if (!formats) { - return ''; - } - if (!$.isArray(formats)) { - formats = [formats]; - } - if (!$.isArray(fields)) { - fields = [fields]; - } - showFields = this.options.get('tooltipFormatFieldlist'); - showFieldsKey = this.options.get('tooltipFormatFieldlistKey'); - if (showFields && showFieldsKey) { - // user-selected ordering of fields - newFields = []; - for (i = fields.length; i--;) { - fv = fields[i][showFieldsKey]; - if ((j = $.inArray(fv, showFields)) != -1) { - newFields[j] = fields[i]; - } - } - fields = newFields; - } - formatlen = formats.length; - fieldlen = fields.length; - for (i = 0; i < formatlen; i++) { - format = formats[i]; - if (typeof format === 'string') { - format = new SPFormat(format); - } - fclass = format.fclass || 'jqsfield'; - for (j = 0; j < fieldlen; j++) { - if (!fields[j].isNull || !options.get('tooltipSkipNull')) { - $.extend(fields[j], { - prefix: options.get('tooltipPrefix'), - suffix: options.get('tooltipSuffix') - }); - text = format.render(fields[j], options.get('tooltipValueLookups'), options); - entries.push('<div class="' + fclass + '">' + text + '</div>'); - } - } - } - if (entries.length) { - return header + entries.join('\n'); - } - return ''; - }, - - getCurrentRegionFields: function () {}, - - calcHighlightColor: function (color, options) { - var highlightColor = options.get('highlightColor'), - lighten = options.get('highlightLighten'), - parse, mult, rgbnew, i; - if (highlightColor) { - return highlightColor; - } - if (lighten) { - // extract RGB values - parse = /^#([0-9a-f])([0-9a-f])([0-9a-f])$/i.exec(color) || /^#([0-9a-f]{2})([0-9a-f]{2})([0-9a-f]{2})$/i.exec(color); - if (parse) { - rgbnew = []; - mult = color.length === 4 ? 16 : 1; - for (i = 0; i < 3; i++) { - rgbnew[i] = clipval(Math.round(parseInt(parse[i + 1], 16) * mult * lighten), 0, 255); - } - return 'rgb(' + rgbnew.join(',') + ')'; - } - - } - return color; - } - - }); - - barHighlightMixin = { - changeHighlight: function (highlight) { - var currentRegion = this.currentRegion, - target = this.target, - shapeids = this.regionShapes[currentRegion], - newShapes; - // will be null if the region value was null - if (shapeids) { - newShapes = this.renderRegion(currentRegion, highlight); - if ($.isArray(newShapes) || $.isArray(shapeids)) { - target.replaceWithShapes(shapeids, newShapes); - this.regionShapes[currentRegion] = $.map(newShapes, function (newShape) { - return newShape.id; - }); - } else { - target.replaceWithShape(shapeids, newShapes); - this.regionShapes[currentRegion] = newShapes.id; - } - } - }, - - render: function () { - var values = this.values, - target = this.target, - regionShapes = this.regionShapes, - shapes, ids, i, j; - - if (!this.cls._super.render.call(this)) { - return; - } - for (i = values.length; i--;) { - shapes = this.renderRegion(i); - if (shapes) { - if ($.isArray(shapes)) { - ids = []; - for (j = shapes.length; j--;) { - shapes[j].append(); - ids.push(shapes[j].id); - } - regionShapes[i] = ids; - } else { - shapes.append(); - regionShapes[i] = shapes.id; // store just the shapeid - } - } else { - // null value - regionShapes[i] = null; - } - } - target.render(); - } - }; - - /** - * Line charts - */ - $.fn.sparkline.line = line = createClass($.fn.sparkline._base, { - type: 'line', - - init: function (el, values, options, width, height) { - line._super.init.call(this, el, values, options, width, height); - this.vertices = []; - this.regionMap = []; - this.xvalues = []; - this.yvalues = []; - this.yminmax = []; - this.hightlightSpotId = null; - this.lastShapeId = null; - this.initTarget(); - }, - - getRegion: function (el, x, y) { - var i, - regionMap = this.regionMap; // maps regions to value positions - for (i = regionMap.length; i--;) { - if (regionMap[i] !== null && x >= regionMap[i][0] && x <= regionMap[i][1]) { - return regionMap[i][2]; - } - } - return undefined; - }, - - getCurrentRegionFields: function () { - var currentRegion = this.currentRegion; - return { - isNull: this.yvalues[currentRegion] === null, - x: this.xvalues[currentRegion], - y: this.yvalues[currentRegion], - color: this.options.get('lineColor'), - fillColor: this.options.get('fillColor'), - offset: currentRegion - }; - }, - - renderHighlight: function () { - var currentRegion = this.currentRegion, - target = this.target, - vertex = this.vertices[currentRegion], - options = this.options, - spotRadius = options.get('spotRadius'), - highlightSpotColor = options.get('highlightSpotColor'), - highlightLineColor = options.get('highlightLineColor'), - highlightSpot, highlightLine; - - if (!vertex) { - return; - } - if (spotRadius && highlightSpotColor) { - highlightSpot = target.drawCircle(vertex[0], vertex[1], - spotRadius, undefined, highlightSpotColor); - this.highlightSpotId = highlightSpot.id; - target.insertAfterShape(this.lastShapeId, highlightSpot); - } - if (highlightLineColor) { - highlightLine = target.drawLine(vertex[0], this.canvasTop, vertex[0], - this.canvasTop + this.canvasHeight, highlightLineColor); - this.highlightLineId = highlightLine.id; - target.insertAfterShape(this.lastShapeId, highlightLine); - } - }, - - removeHighlight: function () { - var target = this.target; - if (this.highlightSpotId) { - target.removeShapeId(this.highlightSpotId); - this.highlightSpotId = null; - } - if (this.highlightLineId) { - target.removeShapeId(this.highlightLineId); - this.highlightLineId = null; - } - }, - - scanValues: function () { - var values = this.values, - valcount = values.length, - xvalues = this.xvalues, - yvalues = this.yvalues, - yminmax = this.yminmax, - i, val, isStr, isArray, sp; - for (i = 0; i < valcount; i++) { - val = values[i]; - isStr = typeof(values[i]) === 'string'; - isArray = typeof(values[i]) === 'object' && values[i] instanceof Array; - sp = isStr && values[i].split(':'); - if (isStr && sp.length === 2) { // x:y - xvalues.push(Number(sp[0])); - yvalues.push(Number(sp[1])); - yminmax.push(Number(sp[1])); - } else if (isArray) { - xvalues.push(val[0]); - yvalues.push(val[1]); - yminmax.push(val[1]); - } else { - xvalues.push(i); - if (values[i] === null || values[i] === 'null') { - yvalues.push(null); - } else { - yvalues.push(Number(val)); - yminmax.push(Number(val)); - } - } - } - if (this.options.get('xvalues')) { - xvalues = this.options.get('xvalues'); - } - - this.maxy = this.maxyorg = Math.max.apply(Math, yminmax); - this.miny = this.minyorg = Math.min.apply(Math, yminmax); - - this.maxx = Math.max.apply(Math, xvalues); - this.minx = Math.min.apply(Math, xvalues); - - this.xvalues = xvalues; - this.yvalues = yvalues; - this.yminmax = yminmax; - - }, - - processRangeOptions: function () { - var options = this.options, - normalRangeMin = options.get('normalRangeMin'), - normalRangeMax = options.get('normalRangeMax'); - - if (normalRangeMin !== undefined) { - if (normalRangeMin < this.miny) { - this.miny = normalRangeMin; - } - if (normalRangeMax > this.maxy) { - this.maxy = normalRangeMax; - } - } - if (options.get('chartRangeMin') !== undefined && (options.get('chartRangeClip') || options.get('chartRangeMin') < this.miny)) { - this.miny = options.get('chartRangeMin'); - } - if (options.get('chartRangeMax') !== undefined && (options.get('chartRangeClip') || options.get('chartRangeMax') > this.maxy)) { - this.maxy = options.get('chartRangeMax'); - } - if (options.get('chartRangeMinX') !== undefined && (options.get('chartRangeClipX') || options.get('chartRangeMinX') < this.minx)) { - this.minx = options.get('chartRangeMinX'); - } - if (options.get('chartRangeMaxX') !== undefined && (options.get('chartRangeClipX') || options.get('chartRangeMaxX') > this.maxx)) { - this.maxx = options.get('chartRangeMaxX'); - } - - }, - - drawNormalRange: function (canvasLeft, canvasTop, canvasHeight, canvasWidth, rangey) { - var normalRangeMin = this.options.get('normalRangeMin'), - normalRangeMax = this.options.get('normalRangeMax'), - ytop = canvasTop + Math.round(canvasHeight - (canvasHeight * ((normalRangeMax - this.miny) / rangey))), - height = Math.round((canvasHeight * (normalRangeMax - normalRangeMin)) / rangey); - this.target.drawRect(canvasLeft, ytop, canvasWidth, height, undefined, this.options.get('normalRangeColor')).append(); - }, - - render: function () { - var options = this.options, - target = this.target, - canvasWidth = this.canvasWidth, - canvasHeight = this.canvasHeight, - vertices = this.vertices, - spotRadius = options.get('spotRadius'), - regionMap = this.regionMap, - rangex, rangey, yvallast, - canvasTop, canvasLeft, - vertex, path, paths, x, y, xnext, xpos, xposnext, - last, next, yvalcount, lineShapes, fillShapes, plen, - valueSpots, hlSpotsEnabled, color, xvalues, yvalues, i; - - if (!line._super.render.call(this)) { - return; - } - - this.scanValues(); - this.processRangeOptions(); - - xvalues = this.xvalues; - yvalues = this.yvalues; - - if (!this.yminmax.length || this.yvalues.length < 2) { - // empty or all null valuess - return; - } - - canvasTop = canvasLeft = 0; - - rangex = this.maxx - this.minx === 0 ? 1 : this.maxx - this.minx; - rangey = this.maxy - this.miny === 0 ? 1 : this.maxy - this.miny; - yvallast = this.yvalues.length - 1; - - if (spotRadius && (canvasWidth < (spotRadius * 4) || canvasHeight < (spotRadius * 4))) { - spotRadius = 0; - } - if (spotRadius) { - // adjust the canvas size as required so that spots will fit - hlSpotsEnabled = options.get('highlightSpotColor') && !options.get('disableInteraction'); - if (hlSpotsEnabled || options.get('minSpotColor') || (options.get('spotColor') && yvalues[yvallast] === this.miny)) { - canvasHeight -= Math.ceil(spotRadius); - } - if (hlSpotsEnabled || options.get('maxSpotColor') || (options.get('spotColor') && yvalues[yvallast] === this.maxy)) { - canvasHeight -= Math.ceil(spotRadius); - canvasTop += Math.ceil(spotRadius); - } - if (hlSpotsEnabled || - ((options.get('minSpotColor') || options.get('maxSpotColor')) && (yvalues[0] === this.miny || yvalues[0] === this.maxy))) { - canvasLeft += Math.ceil(spotRadius); - canvasWidth -= Math.ceil(spotRadius); - } - if (hlSpotsEnabled || options.get('spotColor') || - (options.get('minSpotColor') || options.get('maxSpotColor') && - (yvalues[yvallast] === this.miny || yvalues[yvallast] === this.maxy))) { - canvasWidth -= Math.ceil(spotRadius); - } - } - - - canvasHeight--; - - if (options.get('normalRangeMin') !== undefined && !options.get('drawNormalOnTop')) { - this.drawNormalRange(canvasLeft, canvasTop, canvasHeight, canvasWidth, rangey); - } - - path = []; - paths = [path]; - last = next = null; - yvalcount = yvalues.length; - for (i = 0; i < yvalcount; i++) { - x = xvalues[i]; - xnext = xvalues[i + 1]; - y = yvalues[i]; - xpos = canvasLeft + Math.round((x - this.minx) * (canvasWidth / rangex)); - xposnext = i < yvalcount - 1 ? canvasLeft + Math.round((xnext - this.minx) * (canvasWidth / rangex)) : canvasWidth; - next = xpos + ((xposnext - xpos) / 2); - regionMap[i] = [last || 0, next, i]; - last = next; - if (y === null) { - if (i) { - if (yvalues[i - 1] !== null) { - path = []; - paths.push(path); - } - vertices.push(null); - } - } else { - if (y < this.miny) { - y = this.miny; - } - if (y > this.maxy) { - y = this.maxy; - } - if (!path.length) { - // previous value was null - path.push([xpos, canvasTop + canvasHeight]); - } - vertex = [xpos, canvasTop + Math.round(canvasHeight - (canvasHeight * ((y - this.miny) / rangey)))]; - path.push(vertex); - vertices.push(vertex); - } - } - - lineShapes = []; - fillShapes = []; - plen = paths.length; - for (i = 0; i < plen; i++) { - path = paths[i]; - if (path.length) { - if (options.get('fillColor')) { - path.push([path[path.length - 1][0], (canvasTop + canvasHeight)]); - fillShapes.push(path.slice(0)); - path.pop(); - } - // if there's only a single point in this path, then we want to display it - // as a vertical line which means we keep path[0] as is - if (path.length > 2) { - // else we want the first value - path[0] = [path[0][0], path[1][1]]; - } - lineShapes.push(path); - } - } - - // draw the fill first, then optionally the normal range, then the line on top of that - plen = fillShapes.length; - for (i = 0; i < plen; i++) { - target.drawShape(fillShapes[i], - options.get('fillColor'), options.get('fillColor')).append(); - } - - if (options.get('normalRangeMin') !== undefined && options.get('drawNormalOnTop')) { - this.drawNormalRange(canvasLeft, canvasTop, canvasHeight, canvasWidth, rangey); - } - - plen = lineShapes.length; - for (i = 0; i < plen; i++) { - target.drawShape(lineShapes[i], options.get('lineColor'), undefined, - options.get('lineWidth')).append(); - } - - if (spotRadius && options.get('valueSpots')) { - valueSpots = options.get('valueSpots'); - if (valueSpots.get === undefined) { - valueSpots = new RangeMap(valueSpots); - } - for (i = 0; i < yvalcount; i++) { - color = valueSpots.get(yvalues[i]); - if (color) { - target.drawCircle(canvasLeft + Math.round((xvalues[i] - this.minx) * (canvasWidth / rangex)), - canvasTop + Math.round(canvasHeight - (canvasHeight * ((yvalues[i] - this.miny) / rangey))), - spotRadius, undefined, - color).append(); - } - } - - } - if (spotRadius && options.get('spotColor') && yvalues[yvallast] !== null) { - target.drawCircle(canvasLeft + Math.round((xvalues[xvalues.length - 1] - this.minx) * (canvasWidth / rangex)), - canvasTop + Math.round(canvasHeight - (canvasHeight * ((yvalues[yvallast] - this.miny) / rangey))), - spotRadius, undefined, - options.get('spotColor')).append(); - } - if (this.maxy !== this.minyorg) { - if (spotRadius && options.get('minSpotColor')) { - x = xvalues[$.inArray(this.minyorg, yvalues)]; - target.drawCircle(canvasLeft + Math.round((x - this.minx) * (canvasWidth / rangex)), - canvasTop + Math.round(canvasHeight - (canvasHeight * ((this.minyorg - this.miny) / rangey))), - spotRadius, undefined, - options.get('minSpotColor')).append(); - } - if (spotRadius && options.get('maxSpotColor')) { - x = xvalues[$.inArray(this.maxyorg, yvalues)]; - target.drawCircle(canvasLeft + Math.round((x - this.minx) * (canvasWidth / rangex)), - canvasTop + Math.round(canvasHeight - (canvasHeight * ((this.maxyorg - this.miny) / rangey))), - spotRadius, undefined, - options.get('maxSpotColor')).append(); - } - } - - this.lastShapeId = target.getLastShapeId(); - this.canvasTop = canvasTop; - target.render(); - } - }); - - /** - * Bar charts - */ - $.fn.sparkline.bar = bar = createClass($.fn.sparkline._base, barHighlightMixin, { - type: 'bar', - - init: function (el, values, options, width, height) { - var barWidth = parseInt(options.get('barWidth'), 10), - barSpacing = parseInt(options.get('barSpacing'), 10), - chartRangeMin = options.get('chartRangeMin'), - chartRangeMax = options.get('chartRangeMax'), - chartRangeClip = options.get('chartRangeClip'), - stackMin = Infinity, - stackMax = -Infinity, - isStackString, groupMin, groupMax, stackRanges, - numValues, i, vlen, range, zeroAxis, xaxisOffset, min, max, clipMin, clipMax, - stacked, vlist, j, slen, svals, val, yoffset, yMaxCalc, canvasHeightEf; - bar._super.init.call(this, el, values, options, width, height); - - // scan values to determine whether to stack bars - for (i = 0, vlen = values.length; i < vlen; i++) { - val = values[i]; - isStackString = typeof(val) === 'string' && val.indexOf(':') > -1; - if (isStackString || $.isArray(val)) { - stacked = true; - if (isStackString) { - val = values[i] = normalizeValues(val.split(':')); - } - val = remove(val, null); // min/max will treat null as zero - groupMin = Math.min.apply(Math, val); - groupMax = Math.max.apply(Math, val); - if (groupMin < stackMin) { - stackMin = groupMin; - } - if (groupMax > stackMax) { - stackMax = groupMax; - } - } - } - - this.stacked = stacked; - this.regionShapes = {}; - this.barWidth = barWidth; - this.barSpacing = barSpacing; - this.totalBarWidth = barWidth + barSpacing; - this.width = width = (values.length * barWidth) + ((values.length - 1) * barSpacing); - - this.initTarget(); - - if (chartRangeClip) { - clipMin = chartRangeMin === undefined ? -Infinity : chartRangeMin; - clipMax = chartRangeMax === undefined ? Infinity : chartRangeMax; - } - - numValues = []; - stackRanges = stacked ? [] : numValues; - var stackTotals = []; - var stackRangesNeg = []; - for (i = 0, vlen = values.length; i < vlen; i++) { - if (stacked) { - vlist = values[i]; - values[i] = svals = []; - stackTotals[i] = 0; - stackRanges[i] = stackRangesNeg[i] = 0; - for (j = 0, slen = vlist.length; j < slen; j++) { - val = svals[j] = chartRangeClip ? clipval(vlist[j], clipMin, clipMax) : vlist[j]; - if (val !== null) { - if (val > 0) { - stackTotals[i] += val; - } - if (stackMin < 0 && stackMax > 0) { - if (val < 0) { - stackRangesNeg[i] += Math.abs(val); - } else { - stackRanges[i] += val; - } - } else { - stackRanges[i] += Math.abs(val - (val < 0 ? stackMax : stackMin)); - } - numValues.push(val); - } - } - } else { - val = chartRangeClip ? clipval(values[i], clipMin, clipMax) : values[i]; - val = values[i] = normalizeValue(val); - if (val !== null) { - numValues.push(val); - } - } - } - this.max = max = Math.max.apply(Math, numValues); - this.min = min = Math.min.apply(Math, numValues); - this.stackMax = stackMax = stacked ? Math.max.apply(Math, stackTotals) : max; - this.stackMin = stackMin = stacked ? Math.min.apply(Math, numValues) : min; - - if (options.get('chartRangeMin') !== undefined && (options.get('chartRangeClip') || options.get('chartRangeMin') < min)) { - min = options.get('chartRangeMin'); - } - if (options.get('chartRangeMax') !== undefined && (options.get('chartRangeClip') || options.get('chartRangeMax') > max)) { - max = options.get('chartRangeMax'); - } - - this.zeroAxis = zeroAxis = options.get('zeroAxis', true); - if (min <= 0 && max >= 0 && zeroAxis) { - xaxisOffset = 0; - } else if (zeroAxis == false) { - xaxisOffset = min; - } else if (min > 0) { - xaxisOffset = min; - } else { - xaxisOffset = max; - } - this.xaxisOffset = xaxisOffset; - - range = stacked ? (Math.max.apply(Math, stackRanges) + Math.max.apply(Math, stackRangesNeg)) : max - min; - - // as we plot zero/min values a single pixel line, we add a pixel to all other - // values - Reduce the effective canvas size to suit - this.canvasHeightEf = (zeroAxis && min < 0) ? this.canvasHeight - 2 : this.canvasHeight - 1; - - if (min < xaxisOffset) { - yMaxCalc = (stacked && max >= 0) ? stackMax : max; - yoffset = (yMaxCalc - xaxisOffset) / range * this.canvasHeight; - if (yoffset !== Math.ceil(yoffset)) { - this.canvasHeightEf -= 2; - yoffset = Math.ceil(yoffset); - } - } else { - yoffset = this.canvasHeight; - } - this.yoffset = yoffset; - - if ($.isArray(options.get('colorMap'))) { - this.colorMapByIndex = options.get('colorMap'); - this.colorMapByValue = null; - } else { - this.colorMapByIndex = null; - this.colorMapByValue = options.get('colorMap'); - if (this.colorMapByValue && this.colorMapByValue.get === undefined) { - this.colorMapByValue = new RangeMap(this.colorMapByValue); - } - } - - this.range = range; - }, - - getRegion: function (el, x, y) { - var result = Math.floor(x / this.totalBarWidth); - return (result < 0 || result >= this.values.length) ? undefined : result; - }, - - getCurrentRegionFields: function () { - var currentRegion = this.currentRegion, - values = ensureArray(this.values[currentRegion]), - result = [], - value, i; - for (i = values.length; i--;) { - value = values[i]; - result.push({ - isNull: value === null, - value: value, - color: this.calcColor(i, value, currentRegion), - offset: currentRegion - }); - } - return result; - }, - - calcColor: function (stacknum, value, valuenum) { - var colorMapByIndex = this.colorMapByIndex, - colorMapByValue = this.colorMapByValue, - options = this.options, - color, newColor; - if (this.stacked) { - color = options.get('stackedBarColor'); - } else { - color = (value < 0) ? options.get('negBarColor') : options.get('barColor'); - } - if (value === 0 && options.get('zeroColor') !== undefined) { - color = options.get('zeroColor'); - } - if (colorMapByValue && (newColor = colorMapByValue.get(value))) { - color = newColor; - } else if (colorMapByIndex && colorMapByIndex.length > valuenum) { - color = colorMapByIndex[valuenum]; - } - return $.isArray(color) ? color[stacknum % color.length] : color; - }, - - /** - * Render bar(s) for a region - */ - renderRegion: function (valuenum, highlight) { - var vals = this.values[valuenum], - options = this.options, - xaxisOffset = this.xaxisOffset, - result = [], - range = this.range, - stacked = this.stacked, - target = this.target, - x = valuenum * this.totalBarWidth, - canvasHeightEf = this.canvasHeightEf, - yoffset = this.yoffset, - y, height, color, isNull, yoffsetNeg, i, valcount, val, minPlotted, allMin; - - vals = $.isArray(vals) ? vals : [vals]; - valcount = vals.length; - val = vals[0]; - isNull = all(null, vals); - allMin = all(xaxisOffset, vals, true); - - if (isNull) { - if (options.get('nullColor')) { - color = highlight ? options.get('nullColor') : this.calcHighlightColor(options.get('nullColor'), options); - y = (yoffset > 0) ? yoffset - 1 : yoffset; - return target.drawRect(x, y, this.barWidth - 1, 0, color, color); - } else { - return undefined; - } - } - yoffsetNeg = yoffset; - for (i = 0; i < valcount; i++) { - val = vals[i]; - - if (stacked && val === xaxisOffset) { - if (!allMin || minPlotted) { - continue; - } - minPlotted = true; - } - - if (range > 0) { - height = Math.floor(canvasHeightEf * ((Math.abs(val - xaxisOffset) / range))) + 1; - } else { - height = 1; - } - if (val < xaxisOffset || (val === xaxisOffset && yoffset === 0)) { - y = yoffsetNeg; - yoffsetNeg += height; - } else { - y = yoffset - height; - yoffset -= height; - } - color = this.calcColor(i, val, valuenum); - if (highlight) { - color = this.calcHighlightColor(color, options); - } - result.push(target.drawRect(x, y, this.barWidth - 1, height - 1, color, color)); - } - if (result.length === 1) { - return result[0]; - } - return result; - } - }); - - /** - * Tristate charts - */ - $.fn.sparkline.tristate = tristate = createClass($.fn.sparkline._base, barHighlightMixin, { - type: 'tristate', - - init: function (el, values, options, width, height) { - var barWidth = parseInt(options.get('barWidth'), 10), - barSpacing = parseInt(options.get('barSpacing'), 10); - tristate._super.init.call(this, el, values, options, width, height); - - this.regionShapes = {}; - this.barWidth = barWidth; - this.barSpacing = barSpacing; - this.totalBarWidth = barWidth + barSpacing; - this.values = $.map(values, Number); - this.width = width = (values.length * barWidth) + ((values.length - 1) * barSpacing); - - if ($.isArray(options.get('colorMap'))) { - this.colorMapByIndex = options.get('colorMap'); - this.colorMapByValue = null; - } else { - this.colorMapByIndex = null; - this.colorMapByValue = options.get('colorMap'); - if (this.colorMapByValue && this.colorMapByValue.get === undefined) { - this.colorMapByValue = new RangeMap(this.colorMapByValue); - } - } - this.initTarget(); - }, - - getRegion: function (el, x, y) { - return Math.floor(x / this.totalBarWidth); - }, - - getCurrentRegionFields: function () { - var currentRegion = this.currentRegion; - return { - isNull: this.values[currentRegion] === undefined, - value: this.values[currentRegion], - color: this.calcColor(this.values[currentRegion], currentRegion), - offset: currentRegion - }; - }, - - calcColor: function (value, valuenum) { - var values = this.values, - options = this.options, - colorMapByIndex = this.colorMapByIndex, - colorMapByValue = this.colorMapByValue, - color, newColor; - - if (colorMapByValue && (newColor = colorMapByValue.get(value))) { - color = newColor; - } else if (colorMapByIndex && colorMapByIndex.length > valuenum) { - color = colorMapByIndex[valuenum]; - } else if (values[valuenum] < 0) { - color = options.get('negBarColor'); - } else if (values[valuenum] > 0) { - color = options.get('posBarColor'); - } else { - color = options.get('zeroBarColor'); - } - return color; - }, - - renderRegion: function (valuenum, highlight) { - var values = this.values, - options = this.options, - target = this.target, - canvasHeight, height, halfHeight, - x, y, color; - - canvasHeight = target.pixelHeight; - halfHeight = Math.round(canvasHeight / 2); - - x = valuenum * this.totalBarWidth; - if (values[valuenum] < 0) { - y = halfHeight; - height = halfHeight - 1; - } else if (values[valuenum] > 0) { - y = 0; - height = halfHeight - 1; - } else { - y = halfHeight - 1; - height = 2; - } - color = this.calcColor(values[valuenum], valuenum); - if (color === null) { - return; - } - if (highlight) { - color = this.calcHighlightColor(color, options); - } - return target.drawRect(x, y, this.barWidth - 1, height - 1, color, color); - } - }); - - /** - * Discrete charts - */ - $.fn.sparkline.discrete = discrete = createClass($.fn.sparkline._base, barHighlightMixin, { - type: 'discrete', - - init: function (el, values, options, width, height) { - discrete._super.init.call(this, el, values, options, width, height); - - this.regionShapes = {}; - this.values = values = $.map(values, Number); - this.min = Math.min.apply(Math, values); - this.max = Math.max.apply(Math, values); - this.range = this.max - this.min; - this.width = width = options.get('width') === 'auto' ? values.length * 2 : this.width; - this.interval = Math.floor(width / values.length); - this.itemWidth = width / values.length; - if (options.get('chartRangeMin') !== undefined && (options.get('chartRangeClip') || options.get('chartRangeMin') < this.min)) { - this.min = options.get('chartRangeMin'); - } - if (options.get('chartRangeMax') !== undefined && (options.get('chartRangeClip') || options.get('chartRangeMax') > this.max)) { - this.max = options.get('chartRangeMax'); - } - this.initTarget(); - if (this.target) { - this.lineHeight = options.get('lineHeight') === 'auto' ? Math.round(this.canvasHeight * 0.3) : options.get('lineHeight'); - } - }, - - getRegion: function (el, x, y) { - return Math.floor(x / this.itemWidth); - }, - - getCurrentRegionFields: function () { - var currentRegion = this.currentRegion; - return { - isNull: this.values[currentRegion] === undefined, - value: this.values[currentRegion], - offset: currentRegion - }; - }, - - renderRegion: function (valuenum, highlight) { - var values = this.values, - options = this.options, - min = this.min, - max = this.max, - range = this.range, - interval = this.interval, - target = this.target, - canvasHeight = this.canvasHeight, - lineHeight = this.lineHeight, - pheight = canvasHeight - lineHeight, - ytop, val, color, x; - - val = clipval(values[valuenum], min, max); - x = valuenum * interval; - ytop = Math.round(pheight - pheight * ((val - min) / range)); - color = (options.get('thresholdColor') && val < options.get('thresholdValue')) ? options.get('thresholdColor') : options.get('lineColor'); - if (highlight) { - color = this.calcHighlightColor(color, options); - } - return target.drawLine(x, ytop, x, ytop + lineHeight, color); - } - }); - - /** - * Bullet charts - */ - $.fn.sparkline.bullet = bullet = createClass($.fn.sparkline._base, { - type: 'bullet', - - init: function (el, values, options, width, height) { - var min, max, vals; - bullet._super.init.call(this, el, values, options, width, height); - - // values: target, performance, range1, range2, range3 - this.values = values = normalizeValues(values); - // target or performance could be null - vals = values.slice(); - vals[0] = vals[0] === null ? vals[2] : vals[0]; - vals[1] = values[1] === null ? vals[2] : vals[1]; - min = Math.min.apply(Math, values); - max = Math.max.apply(Math, values); - if (options.get('base') === undefined) { - min = min < 0 ? min : 0; - } else { - min = options.get('base'); - } - this.min = min; - this.max = max; - this.range = max - min; - this.shapes = {}; - this.valueShapes = {}; - this.regiondata = {}; - this.width = width = options.get('width') === 'auto' ? '4.0em' : width; - this.target = this.$el.simpledraw(width, height, options.get('composite')); - if (!values.length) { - this.disabled = true; - } - this.initTarget(); - }, - - getRegion: function (el, x, y) { - var shapeid = this.target.getShapeAt(el, x, y); - return (shapeid !== undefined && this.shapes[shapeid] !== undefined) ? this.shapes[shapeid] : undefined; - }, - - getCurrentRegionFields: function () { - var currentRegion = this.currentRegion; - return { - fieldkey: currentRegion.substr(0, 1), - value: this.values[currentRegion.substr(1)], - region: currentRegion - }; - }, - - changeHighlight: function (highlight) { - var currentRegion = this.currentRegion, - shapeid = this.valueShapes[currentRegion], - shape; - delete this.shapes[shapeid]; - switch (currentRegion.substr(0, 1)) { - case 'r': - shape = this.renderRange(currentRegion.substr(1), highlight); - break; - case 'p': - shape = this.renderPerformance(highlight); - break; - case 't': - shape = this.renderTarget(highlight); - break; - } - this.valueShapes[currentRegion] = shape.id; - this.shapes[shape.id] = currentRegion; - this.target.replaceWithShape(shapeid, shape); - }, - - renderRange: function (rn, highlight) { - var rangeval = this.values[rn], - rangewidth = Math.round(this.canvasWidth * ((rangeval - this.min) / this.range)), - color = this.options.get('rangeColors')[rn - 2]; - if (highlight) { - color = this.calcHighlightColor(color, this.options); - } - return this.target.drawRect(0, 0, rangewidth - 1, this.canvasHeight - 1, color, color); - }, - - renderPerformance: function (highlight) { - var perfval = this.values[1], - perfwidth = Math.round(this.canvasWidth * ((perfval - this.min) / this.range)), - color = this.options.get('performanceColor'); - if (highlight) { - color = this.calcHighlightColor(color, this.options); - } - return this.target.drawRect(0, Math.round(this.canvasHeight * 0.3), perfwidth - 1, - Math.round(this.canvasHeight * 0.4) - 1, color, color); - }, - - renderTarget: function (highlight) { - var targetval = this.values[0], - x = Math.round(this.canvasWidth * ((targetval - this.min) / this.range) - (this.options.get('targetWidth') / 2)), - targettop = Math.round(this.canvasHeight * 0.10), - targetheight = this.canvasHeight - (targettop * 2), - color = this.options.get('targetColor'); - if (highlight) { - color = this.calcHighlightColor(color, this.options); - } - return this.target.drawRect(x, targettop, this.options.get('targetWidth') - 1, targetheight - 1, color, color); - }, - - render: function () { - var vlen = this.values.length, - target = this.target, - i, shape; - if (!bullet._super.render.call(this)) { - return; - } - for (i = 2; i < vlen; i++) { - shape = this.renderRange(i).append(); - this.shapes[shape.id] = 'r' + i; - this.valueShapes['r' + i] = shape.id; - } - if (this.values[1] !== null) { - shape = this.renderPerformance().append(); - this.shapes[shape.id] = 'p1'; - this.valueShapes.p1 = shape.id; - } - if (this.values[0] !== null) { - shape = this.renderTarget().append(); - this.shapes[shape.id] = 't0'; - this.valueShapes.t0 = shape.id; - } - target.render(); - } - }); - - /** - * Pie charts - */ - $.fn.sparkline.pie = pie = createClass($.fn.sparkline._base, { - type: 'pie', - - init: function (el, values, options, width, height) { - var total = 0, i; - - pie._super.init.call(this, el, values, options, width, height); - - this.shapes = {}; // map shape ids to value offsets - this.valueShapes = {}; // maps value offsets to shape ids - this.values = values = $.map(values, Number); - - if (options.get('width') === 'auto') { - this.width = this.height; - } - - if (values.length > 0) { - for (i = values.length; i--;) { - total += values[i]; - } - } - this.total = total; - this.initTarget(); - this.radius = Math.floor(Math.min(this.canvasWidth, this.canvasHeight) / 2); - }, - - getRegion: function (el, x, y) { - var shapeid = this.target.getShapeAt(el, x, y); - return (shapeid !== undefined && this.shapes[shapeid] !== undefined) ? this.shapes[shapeid] : undefined; - }, - - getCurrentRegionFields: function () { - var currentRegion = this.currentRegion; - return { - isNull: this.values[currentRegion] === undefined, - value: this.values[currentRegion], - percent: this.values[currentRegion] / this.total * 100, - color: this.options.get('sliceColors')[currentRegion % this.options.get('sliceColors').length], - offset: currentRegion - }; - }, - - changeHighlight: function (highlight) { - var currentRegion = this.currentRegion, - newslice = this.renderSlice(currentRegion, highlight), - shapeid = this.valueShapes[currentRegion]; - delete this.shapes[shapeid]; - this.target.replaceWithShape(shapeid, newslice); - this.valueShapes[currentRegion] = newslice.id; - this.shapes[newslice.id] = currentRegion; - }, - - renderSlice: function (valuenum, highlight) { - var target = this.target, - options = this.options, - radius = this.radius, - borderWidth = options.get('borderWidth'), - offset = options.get('offset'), - circle = 2 * Math.PI, - values = this.values, - total = this.total, - next = offset ? (2*Math.PI)*(offset/360) : 0, - start, end, i, vlen, color; - - vlen = values.length; - for (i = 0; i < vlen; i++) { - start = next; - end = next; - if (total > 0) { // avoid divide by zero - end = next + (circle * (values[i] / total)); - } - if (valuenum === i) { - color = options.get('sliceColors')[i % options.get('sliceColors').length]; - if (highlight) { - color = this.calcHighlightColor(color, options); - } - - return target.drawPieSlice(radius, radius, radius - borderWidth, start, end, undefined, color); - } - next = end; - } - }, - - render: function () { - var target = this.target, - values = this.values, - options = this.options, - radius = this.radius, - borderWidth = options.get('borderWidth'), - shape, i; - - if (!pie._super.render.call(this)) { - return; - } - if (borderWidth) { - target.drawCircle(radius, radius, Math.floor(radius - (borderWidth / 2)), - options.get('borderColor'), undefined, borderWidth).append(); - } - for (i = values.length; i--;) { - if (values[i]) { // don't render zero values - shape = this.renderSlice(i).append(); - this.valueShapes[i] = shape.id; // store just the shapeid - this.shapes[shape.id] = i; - } - } - target.render(); - } - }); - - /** - * Box plots - */ - $.fn.sparkline.box = box = createClass($.fn.sparkline._base, { - type: 'box', - - init: function (el, values, options, width, height) { - box._super.init.call(this, el, values, options, width, height); - this.values = $.map(values, Number); - this.width = options.get('width') === 'auto' ? '4.0em' : width; - this.initTarget(); - if (!this.values.length) { - this.disabled = 1; - } - }, - - /** - * Simulate a single region - */ - getRegion: function () { - return 1; - }, - - getCurrentRegionFields: function () { - var result = [ - { field: 'lq', value: this.quartiles[0] }, - { field: 'med', value: this.quartiles[1] }, - { field: 'uq', value: this.quartiles[2] } - ]; - if (this.loutlier !== undefined) { - result.push({ field: 'lo', value: this.loutlier}); - } - if (this.routlier !== undefined) { - result.push({ field: 'ro', value: this.routlier}); - } - if (this.lwhisker !== undefined) { - result.push({ field: 'lw', value: this.lwhisker}); - } - if (this.rwhisker !== undefined) { - result.push({ field: 'rw', value: this.rwhisker}); - } - return result; - }, - - render: function () { - var target = this.target, - values = this.values, - vlen = values.length, - options = this.options, - canvasWidth = this.canvasWidth, - canvasHeight = this.canvasHeight, - minValue = options.get('chartRangeMin') === undefined ? Math.min.apply(Math, values) : options.get('chartRangeMin'), - maxValue = options.get('chartRangeMax') === undefined ? Math.max.apply(Math, values) : options.get('chartRangeMax'), - canvasLeft = 0, - lwhisker, loutlier, iqr, q1, q2, q3, rwhisker, routlier, i, - size, unitSize; - - if (!box._super.render.call(this)) { - return; - } - - if (options.get('raw')) { - if (options.get('showOutliers') && values.length > 5) { - loutlier = values[0]; - lwhisker = values[1]; - q1 = values[2]; - q2 = values[3]; - q3 = values[4]; - rwhisker = values[5]; - routlier = values[6]; - } else { - lwhisker = values[0]; - q1 = values[1]; - q2 = values[2]; - q3 = values[3]; - rwhisker = values[4]; - } - } else { - values.sort(function (a, b) { return a - b; }); - q1 = quartile(values, 1); - q2 = quartile(values, 2); - q3 = quartile(values, 3); - iqr = q3 - q1; - if (options.get('showOutliers')) { - lwhisker = rwhisker = undefined; - for (i = 0; i < vlen; i++) { - if (lwhisker === undefined && values[i] > q1 - (iqr * options.get('outlierIQR'))) { - lwhisker = values[i]; - } - if (values[i] < q3 + (iqr * options.get('outlierIQR'))) { - rwhisker = values[i]; - } - } - loutlier = values[0]; - routlier = values[vlen - 1]; - } else { - lwhisker = values[0]; - rwhisker = values[vlen - 1]; - } - } - this.quartiles = [q1, q2, q3]; - this.lwhisker = lwhisker; - this.rwhisker = rwhisker; - this.loutlier = loutlier; - this.routlier = routlier; - - unitSize = canvasWidth / (maxValue - minValue + 1); - if (options.get('showOutliers')) { - canvasLeft = Math.ceil(options.get('spotRadius')); - canvasWidth -= 2 * Math.ceil(options.get('spotRadius')); - unitSize = canvasWidth / (maxValue - minValue + 1); - if (loutlier < lwhisker) { - target.drawCircle((loutlier - minValue) * unitSize + canvasLeft, - canvasHeight / 2, - options.get('spotRadius'), - options.get('outlierLineColor'), - options.get('outlierFillColor')).append(); - } - if (routlier > rwhisker) { - target.drawCircle((routlier - minValue) * unitSize + canvasLeft, - canvasHeight / 2, - options.get('spotRadius'), - options.get('outlierLineColor'), - options.get('outlierFillColor')).append(); - } - } - - // box - target.drawRect( - Math.round((q1 - minValue) * unitSize + canvasLeft), - Math.round(canvasHeight * 0.1), - Math.round((q3 - q1) * unitSize), - Math.round(canvasHeight * 0.8), - options.get('boxLineColor'), - options.get('boxFillColor')).append(); - // left whisker - target.drawLine( - Math.round((lwhisker - minValue) * unitSize + canvasLeft), - Math.round(canvasHeight / 2), - Math.round((q1 - minValue) * unitSize + canvasLeft), - Math.round(canvasHeight / 2), - options.get('lineColor')).append(); - target.drawLine( - Math.round((lwhisker - minValue) * unitSize + canvasLeft), - Math.round(canvasHeight / 4), - Math.round((lwhisker - minValue) * unitSize + canvasLeft), - Math.round(canvasHeight - canvasHeight / 4), - options.get('whiskerColor')).append(); - // right whisker - target.drawLine(Math.round((rwhisker - minValue) * unitSize + canvasLeft), - Math.round(canvasHeight / 2), - Math.round((q3 - minValue) * unitSize + canvasLeft), - Math.round(canvasHeight / 2), - options.get('lineColor')).append(); - target.drawLine( - Math.round((rwhisker - minValue) * unitSize + canvasLeft), - Math.round(canvasHeight / 4), - Math.round((rwhisker - minValue) * unitSize + canvasLeft), - Math.round(canvasHeight - canvasHeight / 4), - options.get('whiskerColor')).append(); - // median line - target.drawLine( - Math.round((q2 - minValue) * unitSize + canvasLeft), - Math.round(canvasHeight * 0.1), - Math.round((q2 - minValue) * unitSize + canvasLeft), - Math.round(canvasHeight * 0.9), - options.get('medianColor')).append(); - if (options.get('target')) { - size = Math.ceil(options.get('spotRadius')); - target.drawLine( - Math.round((options.get('target') - minValue) * unitSize + canvasLeft), - Math.round((canvasHeight / 2) - size), - Math.round((options.get('target') - minValue) * unitSize + canvasLeft), - Math.round((canvasHeight / 2) + size), - options.get('targetColor')).append(); - target.drawLine( - Math.round((options.get('target') - minValue) * unitSize + canvasLeft - size), - Math.round(canvasHeight / 2), - Math.round((options.get('target') - minValue) * unitSize + canvasLeft + size), - Math.round(canvasHeight / 2), - options.get('targetColor')).append(); - } - target.render(); - } - }); - - // Setup a very simple "virtual canvas" to make drawing the few shapes we need easier - // This is accessible as $(foo).simpledraw() - - VShape = createClass({ - init: function (target, id, type, args) { - this.target = target; - this.id = id; - this.type = type; - this.args = args; - }, - append: function () { - this.target.appendShape(this); - return this; - } - }); - - VCanvas_base = createClass({ - _pxregex: /(\d+)(px)?\s*$/i, - - init: function (width, height, target) { - if (!width) { - return; - } - this.width = width; - this.height = height; - this.target = target; - this.lastShapeId = null; - if (target[0]) { - target = target[0]; - } - $.data(target, '_jqs_vcanvas', this); - }, - - drawLine: function (x1, y1, x2, y2, lineColor, lineWidth) { - return this.drawShape([[x1, y1], [x2, y2]], lineColor, lineWidth); - }, - - drawShape: function (path, lineColor, fillColor, lineWidth) { - return this._genShape('Shape', [path, lineColor, fillColor, lineWidth]); - }, - - drawCircle: function (x, y, radius, lineColor, fillColor, lineWidth) { - return this._genShape('Circle', [x, y, radius, lineColor, fillColor, lineWidth]); - }, - - drawPieSlice: function (x, y, radius, startAngle, endAngle, lineColor, fillColor) { - return this._genShape('PieSlice', [x, y, radius, startAngle, endAngle, lineColor, fillColor]); - }, - - drawRect: function (x, y, width, height, lineColor, fillColor) { - return this._genShape('Rect', [x, y, width, height, lineColor, fillColor]); - }, - - getElement: function () { - return this.canvas; - }, - - /** - * Return the most recently inserted shape id - */ - getLastShapeId: function () { - return this.lastShapeId; - }, - - /** - * Clear and reset the canvas - */ - reset: function () { - alert('reset not implemented'); - }, - - _insert: function (el, target) { - $(target).html(el); - }, - - /** - * Calculate the pixel dimensions of the canvas - */ - _calculatePixelDims: function (width, height, canvas) { - // XXX This should probably be a configurable option - var match; - match = this._pxregex.exec(height); - if (match) { - this.pixelHeight = match[1]; - } else { - this.pixelHeight = $(canvas).height(); - } - match = this._pxregex.exec(width); - if (match) { - this.pixelWidth = match[1]; - } else { - this.pixelWidth = $(canvas).width(); - } - }, - - /** - * Generate a shape object and id for later rendering - */ - _genShape: function (shapetype, shapeargs) { - var id = shapeCount++; - shapeargs.unshift(id); - return new VShape(this, id, shapetype, shapeargs); - }, - - /** - * Add a shape to the end of the render queue - */ - appendShape: function (shape) { - alert('appendShape not implemented'); - }, - - /** - * Replace one shape with another - */ - replaceWithShape: function (shapeid, shape) { - alert('replaceWithShape not implemented'); - }, - - /** - * Insert one shape after another in the render queue - */ - insertAfterShape: function (shapeid, shape) { - alert('insertAfterShape not implemented'); - }, - - /** - * Remove a shape from the queue - */ - removeShapeId: function (shapeid) { - alert('removeShapeId not implemented'); - }, - - /** - * Find a shape at the specified x/y co-ordinates - */ - getShapeAt: function (el, x, y) { - alert('getShapeAt not implemented'); - }, - - /** - * Render all queued shapes onto the canvas - */ - render: function () { - alert('render not implemented'); - } - }); - - VCanvas_canvas = createClass(VCanvas_base, { - init: function (width, height, target, interact) { - VCanvas_canvas._super.init.call(this, width, height, target); - this.canvas = document.createElement('canvas'); - if (target[0]) { - target = target[0]; - } - $.data(target, '_jqs_vcanvas', this); - $(this.canvas).css({ display: 'inline-block', width: width, height: height, verticalAlign: 'top' }); - this._insert(this.canvas, target); - this._calculatePixelDims(width, height, this.canvas); - this.canvas.width = this.pixelWidth; - this.canvas.height = this.pixelHeight; - this.interact = interact; - this.shapes = {}; - this.shapeseq = []; - this.currentTargetShapeId = undefined; - $(this.canvas).css({width: this.pixelWidth, height: this.pixelHeight}); - }, - - _getContext: function (lineColor, fillColor, lineWidth) { - var context = this.canvas.getContext('2d'); - if (lineColor !== undefined) { - context.strokeStyle = lineColor; - } - context.lineWidth = lineWidth === undefined ? 1 : lineWidth; - if (fillColor !== undefined) { - context.fillStyle = fillColor; - } - return context; - }, - - reset: function () { - var context = this._getContext(); - context.clearRect(0, 0, this.pixelWidth, this.pixelHeight); - this.shapes = {}; - this.shapeseq = []; - this.currentTargetShapeId = undefined; - }, - - _drawShape: function (shapeid, path, lineColor, fillColor, lineWidth) { - var context = this._getContext(lineColor, fillColor, lineWidth), - i, plen; - context.beginPath(); - context.moveTo(path[0][0] + 0.5, path[0][1] + 0.5); - for (i = 1, plen = path.length; i < plen; i++) { - context.lineTo(path[i][0] + 0.5, path[i][1] + 0.5); // the 0.5 offset gives us crisp pixel-width lines - } - if (lineColor !== undefined) { - context.stroke(); - } - if (fillColor !== undefined) { - context.fill(); - } - if (this.targetX !== undefined && this.targetY !== undefined && - context.isPointInPath(this.targetX, this.targetY)) { - this.currentTargetShapeId = shapeid; - } - }, - - _drawCircle: function (shapeid, x, y, radius, lineColor, fillColor, lineWidth) { - var context = this._getContext(lineColor, fillColor, lineWidth); - context.beginPath(); - context.arc(x, y, radius, 0, 2 * Math.PI, false); - if (this.targetX !== undefined && this.targetY !== undefined && - context.isPointInPath(this.targetX, this.targetY)) { - this.currentTargetShapeId = shapeid; - } - if (lineColor !== undefined) { - context.stroke(); - } - if (fillColor !== undefined) { - context.fill(); - } - }, - - _drawPieSlice: function (shapeid, x, y, radius, startAngle, endAngle, lineColor, fillColor) { - var context = this._getContext(lineColor, fillColor); - context.beginPath(); - context.moveTo(x, y); - context.arc(x, y, radius, startAngle, endAngle, false); - context.lineTo(x, y); - context.closePath(); - if (lineColor !== undefined) { - context.stroke(); - } - if (fillColor) { - context.fill(); - } - if (this.targetX !== undefined && this.targetY !== undefined && - context.isPointInPath(this.targetX, this.targetY)) { - this.currentTargetShapeId = shapeid; - } - }, - - _drawRect: function (shapeid, x, y, width, height, lineColor, fillColor) { - return this._drawShape(shapeid, [[x, y], [x + width, y], [x + width, y + height], [x, y + height], [x, y]], lineColor, fillColor); - }, - - appendShape: function (shape) { - this.shapes[shape.id] = shape; - this.shapeseq.push(shape.id); - this.lastShapeId = shape.id; - return shape.id; - }, - - replaceWithShape: function (shapeid, shape) { - var shapeseq = this.shapeseq, - i; - this.shapes[shape.id] = shape; - for (i = shapeseq.length; i--;) { - if (shapeseq[i] == shapeid) { - shapeseq[i] = shape.id; - } - } - delete this.shapes[shapeid]; - }, - - replaceWithShapes: function (shapeids, shapes) { - var shapeseq = this.shapeseq, - shapemap = {}, - sid, i, first; - - for (i = shapeids.length; i--;) { - shapemap[shapeids[i]] = true; - } - for (i = shapeseq.length; i--;) { - sid = shapeseq[i]; - if (shapemap[sid]) { - shapeseq.splice(i, 1); - delete this.shapes[sid]; - first = i; - } - } - for (i = shapes.length; i--;) { - shapeseq.splice(first, 0, shapes[i].id); - this.shapes[shapes[i].id] = shapes[i]; - } - - }, - - insertAfterShape: function (shapeid, shape) { - var shapeseq = this.shapeseq, - i; - for (i = shapeseq.length; i--;) { - if (shapeseq[i] === shapeid) { - shapeseq.splice(i + 1, 0, shape.id); - this.shapes[shape.id] = shape; - return; - } - } - }, - - removeShapeId: function (shapeid) { - var shapeseq = this.shapeseq, - i; - for (i = shapeseq.length; i--;) { - if (shapeseq[i] === shapeid) { - shapeseq.splice(i, 1); - break; - } - } - delete this.shapes[shapeid]; - }, - - getShapeAt: function (el, x, y) { - this.targetX = x; - this.targetY = y; - this.render(); - return this.currentTargetShapeId; - }, - - render: function () { - var shapeseq = this.shapeseq, - shapes = this.shapes, - shapeCount = shapeseq.length, - context = this._getContext(), - shapeid, shape, i; - context.clearRect(0, 0, this.pixelWidth, this.pixelHeight); - for (i = 0; i < shapeCount; i++) { - shapeid = shapeseq[i]; - shape = shapes[shapeid]; - this['_draw' + shape.type].apply(this, shape.args); - } - if (!this.interact) { - // not interactive so no need to keep the shapes array - this.shapes = {}; - this.shapeseq = []; - } - } - - }); - - VCanvas_vml = createClass(VCanvas_base, { - init: function (width, height, target) { - var groupel; - VCanvas_vml._super.init.call(this, width, height, target); - if (target[0]) { - target = target[0]; - } - $.data(target, '_jqs_vcanvas', this); - this.canvas = document.createElement('span'); - $(this.canvas).css({ display: 'inline-block', position: 'relative', overflow: 'hidden', width: width, height: height, margin: '0px', padding: '0px', verticalAlign: 'top'}); - this._insert(this.canvas, target); - this._calculatePixelDims(width, height, this.canvas); - this.canvas.width = this.pixelWidth; - this.canvas.height = this.pixelHeight; - groupel = '<v:group coordorigin="0 0" coordsize="' + this.pixelWidth + ' ' + this.pixelHeight + '"' + - ' style="position:absolute;top:0;left:0;width:' + this.pixelWidth + 'px;height=' + this.pixelHeight + 'px;"></v:group>'; - this.canvas.insertAdjacentHTML('beforeEnd', groupel); - this.group = $(this.canvas).children()[0]; - this.rendered = false; - this.prerender = ''; - }, - - _drawShape: function (shapeid, path, lineColor, fillColor, lineWidth) { - var vpath = [], - initial, stroke, fill, closed, vel, plen, i; - for (i = 0, plen = path.length; i < plen; i++) { - vpath[i] = '' + (path[i][0]) + ',' + (path[i][1]); - } - initial = vpath.splice(0, 1); - lineWidth = lineWidth === undefined ? 1 : lineWidth; - stroke = lineColor === undefined ? ' stroked="false" ' : ' strokeWeight="' + lineWidth + 'px" strokeColor="' + lineColor + '" '; - fill = fillColor === undefined ? ' filled="false"' : ' fillColor="' + fillColor + '" filled="true" '; - closed = vpath[0] === vpath[vpath.length - 1] ? 'x ' : ''; - vel = '<v:shape coordorigin="0 0" coordsize="' + this.pixelWidth + ' ' + this.pixelHeight + '" ' + - ' id="jqsshape' + shapeid + '" ' + - stroke + - fill + - ' style="position:absolute;left:0px;top:0px;height:' + this.pixelHeight + 'px;width:' + this.pixelWidth + 'px;padding:0px;margin:0px;" ' + - ' path="m ' + initial + ' l ' + vpath.join(', ') + ' ' + closed + 'e">' + - ' </v:shape>'; - return vel; - }, - - _drawCircle: function (shapeid, x, y, radius, lineColor, fillColor, lineWidth) { - var stroke, fill, vel; - x -= radius; - y -= radius; - stroke = lineColor === undefined ? ' stroked="false" ' : ' strokeWeight="' + lineWidth + 'px" strokeColor="' + lineColor + '" '; - fill = fillColor === undefined ? ' filled="false"' : ' fillColor="' + fillColor + '" filled="true" '; - vel = '<v:oval ' + - ' id="jqsshape' + shapeid + '" ' + - stroke + - fill + - ' style="position:absolute;top:' + y + 'px; left:' + x + 'px; width:' + (radius * 2) + 'px; height:' + (radius * 2) + 'px"></v:oval>'; - return vel; - - }, - - _drawPieSlice: function (shapeid, x, y, radius, startAngle, endAngle, lineColor, fillColor) { - var vpath, startx, starty, endx, endy, stroke, fill, vel; - if (startAngle === endAngle) { - return ''; // VML seems to have problem when start angle equals end angle. - } - if ((endAngle - startAngle) === (2 * Math.PI)) { - startAngle = 0.0; // VML seems to have a problem when drawing a full circle that doesn't start 0 - endAngle = (2 * Math.PI); - } - - startx = x + Math.round(Math.cos(startAngle) * radius); - starty = y + Math.round(Math.sin(startAngle) * radius); - endx = x + Math.round(Math.cos(endAngle) * radius); - endy = y + Math.round(Math.sin(endAngle) * radius); - - if (startx === endx && starty === endy) { - if ((endAngle - startAngle) < Math.PI) { - // Prevent very small slices from being mistaken as a whole pie - return ''; - } - // essentially going to be the entire circle, so ignore startAngle - startx = endx = x + radius; - starty = endy = y; - } - - if (startx === endx && starty === endy && (endAngle - startAngle) < Math.PI) { - return ''; - } - - vpath = [x - radius, y - radius, x + radius, y + radius, startx, starty, endx, endy]; - stroke = lineColor === undefined ? ' stroked="false" ' : ' strokeWeight="1px" strokeColor="' + lineColor + '" '; - fill = fillColor === undefined ? ' filled="false"' : ' fillColor="' + fillColor + '" filled="true" '; - vel = '<v:shape coordorigin="0 0" coordsize="' + this.pixelWidth + ' ' + this.pixelHeight + '" ' + - ' id="jqsshape' + shapeid + '" ' + - stroke + - fill + - ' style="position:absolute;left:0px;top:0px;height:' + this.pixelHeight + 'px;width:' + this.pixelWidth + 'px;padding:0px;margin:0px;" ' + - ' path="m ' + x + ',' + y + ' wa ' + vpath.join(', ') + ' x e">' + - ' </v:shape>'; - return vel; - }, - - _drawRect: function (shapeid, x, y, width, height, lineColor, fillColor) { - return this._drawShape(shapeid, [[x, y], [x, y + height], [x + width, y + height], [x + width, y], [x, y]], lineColor, fillColor); - }, - - reset: function () { - this.group.innerHTML = ''; - }, - - appendShape: function (shape) { - var vel = this['_draw' + shape.type].apply(this, shape.args); - if (this.rendered) { - this.group.insertAdjacentHTML('beforeEnd', vel); - } else { - this.prerender += vel; - } - this.lastShapeId = shape.id; - return shape.id; - }, - - replaceWithShape: function (shapeid, shape) { - var existing = $('#jqsshape' + shapeid), - vel = this['_draw' + shape.type].apply(this, shape.args); - existing[0].outerHTML = vel; - }, - - replaceWithShapes: function (shapeids, shapes) { - // replace the first shapeid with all the new shapes then toast the remaining old shapes - var existing = $('#jqsshape' + shapeids[0]), - replace = '', - slen = shapes.length, - i; - for (i = 0; i < slen; i++) { - replace += this['_draw' + shapes[i].type].apply(this, shapes[i].args); - } - existing[0].outerHTML = replace; - for (i = 1; i < shapeids.length; i++) { - $('#jqsshape' + shapeids[i]).remove(); - } - }, - - insertAfterShape: function (shapeid, shape) { - var existing = $('#jqsshape' + shapeid), - vel = this['_draw' + shape.type].apply(this, shape.args); - existing[0].insertAdjacentHTML('afterEnd', vel); - }, - - removeShapeId: function (shapeid) { - var existing = $('#jqsshape' + shapeid); - this.group.removeChild(existing[0]); - }, - - getShapeAt: function (el, x, y) { - var shapeid = el.id.substr(8); - return shapeid; - }, - - render: function () { - if (!this.rendered) { - // batch the intial render into a single repaint - this.group.innerHTML = this.prerender; - this.rendered = true; - } - } - }); - -}))}(document, Math)); diff --git a/admin/bower_components/jquery-sparkline/dist/jquery.sparkline.min.js b/admin/bower_components/jquery-sparkline/dist/jquery.sparkline.min.js deleted file mode 100644 index 8e18cd8..0000000 --- a/admin/bower_components/jquery-sparkline/dist/jquery.sparkline.min.js +++ /dev/null @@ -1,6 +0,0 @@ -/* jquery.sparkline 2.1.3 - http://omnipotent.net/jquery.sparkline/ -** Licensed under the New BSD License - see above site for details */ - -(function(document,Math,undefined){(function(factory){if(typeof define==="function"&&define.amd){define(["jquery"],factory)}else if(jQuery&&!jQuery.fn.sparkline){factory(jQuery)}})(function($){"use strict";var UNSET_OPTION={},getDefaults,createClass,SPFormat,clipval,quartile,normalizeValue,normalizeValues,remove,isNumber,all,sum,addCSS,ensureArray,formatNumber,RangeMap,MouseHandler,Tooltip,barHighlightMixin,line,bar,tristate,discrete,bullet,pie,box,defaultStyles,initStyles,VShape,VCanvas_base,VCanvas_canvas,VCanvas_vml,pending,shapeCount=0;getDefaults=function(){return{common:{type:"line",lineColor:"#00f",fillColor:"#cdf",defaultPixelsPerValue:3,width:"auto",height:"auto",composite:false,tagValuesAttribute:"values",tagOptionsPrefix:"spark",enableTagOptions:false,enableHighlight:true,highlightLighten:1.4,tooltipSkipNull:true,tooltipPrefix:"",tooltipSuffix:"",disableHiddenCheck:false,numberFormatter:false,numberDigitGroupCount:3,numberDigitGroupSep:",",numberDecimalMark:".",disableTooltips:false,disableInteraction:false},line:{spotColor:"#f80",highlightSpotColor:"#5f5",highlightLineColor:"#f22",spotRadius:1.5,minSpotColor:"#f80",maxSpotColor:"#f80",lineWidth:1,normalRangeMin:undefined,normalRangeMax:undefined,normalRangeColor:"#ccc",drawNormalOnTop:false,chartRangeMin:undefined,chartRangeMax:undefined,chartRangeMinX:undefined,chartRangeMaxX:undefined,tooltipFormat:new SPFormat('<span style="color: {{color}}">&#9679;</span> {{prefix}}{{y}}{{suffix}}')},bar:{barColor:"#3366cc",negBarColor:"#f44",stackedBarColor:["#3366cc","#dc3912","#ff9900","#109618","#66aa00","#dd4477","#0099c6","#990099"],zeroColor:undefined,nullColor:undefined,zeroAxis:true,barWidth:4,barSpacing:1,chartRangeMax:undefined,chartRangeMin:undefined,chartRangeClip:false,colorMap:undefined,tooltipFormat:new SPFormat('<span style="color: {{color}}">&#9679;</span> {{prefix}}{{value}}{{suffix}}')},tristate:{barWidth:4,barSpacing:1,posBarColor:"#6f6",negBarColor:"#f44",zeroBarColor:"#999",colorMap:{},tooltipFormat:new SPFormat('<span style="color: {{color}}">&#9679;</span> {{value:map}}'),tooltipValueLookups:{map:{"-1":"Loss",0:"Draw",1:"Win"}}},discrete:{lineHeight:"auto",thresholdColor:undefined,thresholdValue:0,chartRangeMax:undefined,chartRangeMin:undefined,chartRangeClip:false,tooltipFormat:new SPFormat("{{prefix}}{{value}}{{suffix}}")},bullet:{targetColor:"#f33",targetWidth:3,performanceColor:"#33f",rangeColors:["#d3dafe","#a8b6ff","#7f94ff"],base:undefined,tooltipFormat:new SPFormat("{{fieldkey:fields}} - {{value}}"),tooltipValueLookups:{fields:{r:"Range",p:"Performance",t:"Target"}}},pie:{offset:0,sliceColors:["#3366cc","#dc3912","#ff9900","#109618","#66aa00","#dd4477","#0099c6","#990099"],borderWidth:0,borderColor:"#000",tooltipFormat:new SPFormat('<span style="color: {{color}}">&#9679;</span> {{value}} ({{percent.1}}%)')},box:{raw:false,boxLineColor:"#000",boxFillColor:"#cdf",whiskerColor:"#000",outlierLineColor:"#333",outlierFillColor:"#fff",medianColor:"#f00",showOutliers:true,outlierIQR:1.5,spotRadius:1.5,target:undefined,targetColor:"#4a2",chartRangeMax:undefined,chartRangeMin:undefined,tooltipFormat:new SPFormat("{{field:fields}}: {{value}}"),tooltipFormatFieldlistKey:"field",tooltipValueLookups:{fields:{lq:"Lower Quartile",med:"Median",uq:"Upper Quartile",lo:"Left Outlier",ro:"Right Outlier",lw:"Left Whisker",rw:"Right Whisker"}}}}};defaultStyles=".jqstooltip { "+"position: absolute;"+"left: 0px;"+"top: 0px;"+"visibility: hidden;"+"background: rgb(0, 0, 0) transparent;"+"background-color: rgba(0,0,0,0.6);"+"filter:progid:DXImageTransform.Microsoft.gradient(startColorstr=#99000000, endColorstr=#99000000);"+'-ms-filter: "progid:DXImageTransform.Microsoft.gradient(startColorstr=#99000000, endColorstr=#99000000)";'+"color: white;"+"font: 10px arial, san serif;"+"text-align: left;"+"white-space: nowrap;"+"padding: 5px;"+"border: 1px solid white;"+"box-sizing: content-box;"+"z-index: 10000;"+"}"+".jqsfield { "+"color: white;"+"font: 10px arial, san serif;"+"text-align: left;"+"}";createClass=function(){var Class,args;Class=function(){this.init.apply(this,arguments)};if(arguments.length>1){if(arguments[0]){Class.prototype=$.extend(new arguments[0],arguments[arguments.length-1]);Class._super=arguments[0].prototype}else{Class.prototype=arguments[arguments.length-1]}if(arguments.length>2){args=Array.prototype.slice.call(arguments,1,-1);args.unshift(Class.prototype);$.extend.apply($,args)}}else{Class.prototype=arguments[0]}Class.prototype.cls=Class;return Class};$.SPFormatClass=SPFormat=createClass({fre:/\{\{([\w.]+?)(:(.+?))?\}\}/g,precre:/(\w+)\.(\d+)/,init:function(format,fclass){this.format=format;this.fclass=fclass},render:function(fieldset,lookups,options){var self=this,fields=fieldset,match,token,lookupkey,fieldvalue,prec;return this.format.replace(this.fre,function(){var lookup;token=arguments[1];lookupkey=arguments[3];match=self.precre.exec(token);if(match){prec=match[2];token=match[1]}else{prec=false}fieldvalue=fields[token];if(fieldvalue===undefined){return""}if(lookupkey&&lookups&&lookups[lookupkey]){lookup=lookups[lookupkey];if(lookup.get){return lookups[lookupkey].get(fieldvalue)||fieldvalue}else{return lookups[lookupkey][fieldvalue]||fieldvalue}}if(isNumber(fieldvalue)){if(options.get("numberFormatter")){fieldvalue=options.get("numberFormatter")(fieldvalue)}else{fieldvalue=formatNumber(fieldvalue,prec,options.get("numberDigitGroupCount"),options.get("numberDigitGroupSep"),options.get("numberDecimalMark"))}}return fieldvalue})}});$.spformat=function(format,fclass){return new SPFormat(format,fclass)};clipval=function(val,min,max){if(val<min){return min}if(val>max){return max}return val};quartile=function(values,q){var vl;if(q===2){vl=Math.floor(values.length/2);return values.length%2?values[vl]:(values[vl-1]+values[vl])/2}else{if(values.length%2){vl=(values.length*q+q)/4;return vl%1?(values[Math.floor(vl)]+values[Math.floor(vl)-1])/2:values[vl-1]}else{vl=(values.length*q+2)/4;return vl%1?(values[Math.floor(vl)]+values[Math.floor(vl)-1])/2:values[vl-1]}}};normalizeValue=function(val){var nf;switch(val){case"undefined":val=undefined;break;case"null":val=null;break;case"true":val=true;break;case"false":val=false;break;default:nf=parseFloat(val);if(val==nf){val=nf}}return val};normalizeValues=function(vals){var i,result=[];for(i=vals.length;i--;){result[i]=normalizeValue(vals[i])}return result};remove=function(vals,filter){var i,vl,result=[];for(i=0,vl=vals.length;i<vl;i++){if(vals[i]!==filter){result.push(vals[i])}}return result};isNumber=function(num){return!isNaN(parseFloat(num))&&isFinite(num)};formatNumber=function(num,prec,groupsize,groupsep,decsep){var p,i;num=(prec===false?parseFloat(num).toString():num.toFixed(prec)).split("");p=(p=$.inArray(".",num))<0?num.length:p;if(p<num.length){num[p]=decsep}for(i=p-groupsize;i>0;i-=groupsize){num.splice(i,0,groupsep)}return num.join("")};all=function(val,arr,ignoreNull){var i;for(i=arr.length;i--;){if(ignoreNull&&arr[i]===null)continue;if(arr[i]!==val){return false}}return true};sum=function(vals){var total=0,i;for(i=vals.length;i--;){total+=typeof vals[i]==="number"?vals[i]:0}return total};ensureArray=function(val){return $.isArray(val)?val:[val]};addCSS=function(css){var tag,iefail;if(document.createStyleSheet){try{document.createStyleSheet().cssText=css;return}catch(e){iefail=true}}tag=document.createElement("style");tag.type="text/css";document.getElementsByTagName("head")[0].appendChild(tag);if(iefail){document.styleSheets[document.styleSheets.length-1].cssText=css}else{tag[typeof document.body.style.WebkitAppearance=="string"?"innerText":"innerHTML"]=css}};$.fn.simpledraw=function(width,height,useExisting,interact){var target,mhandler;if(useExisting&&(target=this.data("_jqs_vcanvas"))){return target}if($.fn.sparkline.canvas===false){return false}else if($.fn.sparkline.canvas===undefined){var el=document.createElement("canvas");if(!!(el.getContext&&el.getContext("2d"))){$.fn.sparkline.canvas=function(width,height,target,interact){return new VCanvas_canvas(width,height,target,interact)}}else if(document.namespaces&&!document.namespaces.v){document.namespaces.add("v","urn:schemas-microsoft-com:vml","#default#VML");$.fn.sparkline.canvas=function(width,height,target,interact){return new VCanvas_vml(width,height,target)}}else{$.fn.sparkline.canvas=false;return false}}if(width===undefined){width=$(this).innerWidth()}if(height===undefined){height=$(this).innerHeight()}target=$.fn.sparkline.canvas(width,height,this,interact);mhandler=$(this).data("_jqs_mhandler");if(mhandler){mhandler.registerCanvas(target)}return target};$.fn.cleardraw=function(){var target=this.data("_jqs_vcanvas");if(target){target.reset()}};$.RangeMapClass=RangeMap=createClass({init:function(map){var key,range,rangelist=[];for(key in map){if(map.hasOwnProperty(key)&&typeof key==="string"&&key.indexOf(":")>-1){range=key.split(":");range[0]=range[0].length===0?-Infinity:parseFloat(range[0]);range[1]=range[1].length===0?Infinity:parseFloat(range[1]);range[2]=map[key];rangelist.push(range)}}this.map=map;this.rangelist=rangelist||false},get:function(value){var rangelist=this.rangelist,i,range,result;if((result=this.map[value])!==undefined){return result}if(rangelist){for(i=rangelist.length;i--;){range=rangelist[i];if(range[0]<=value&&range[1]>=value){return range[2]}}}return undefined}});$.range_map=function(map){return new RangeMap(map)};MouseHandler=createClass({init:function(el,options){var $el=$(el);this.$el=$el;this.options=options;this.currentPageX=0;this.currentPageY=0;this.el=el;this.splist=[];this.tooltip=null;this.over=false;this.displayTooltips=!options.get("disableTooltips");this.highlightEnabled=!options.get("disableHighlight")},registerSparkline:function(sp){this.splist.push(sp);if(this.over){this.updateDisplay()}},registerCanvas:function(canvas){var $canvas=$(canvas.canvas);this.canvas=canvas;this.$canvas=$canvas;$canvas.mouseenter($.proxy(this.mouseenter,this));$canvas.mouseleave($.proxy(this.mouseleave,this));$canvas.click($.proxy(this.mouseclick,this))},reset:function(removeTooltip){this.splist=[];if(this.tooltip&&removeTooltip){this.tooltip.remove();this.tooltip=undefined}},mouseclick:function(e){var clickEvent=$.Event("sparklineClick");clickEvent.originalEvent=e;clickEvent.sparklines=this.splist;this.$el.trigger(clickEvent)},mouseenter:function(e){$(document.body).unbind("mousemove.jqs");$(document.body).bind("mousemove.jqs",$.proxy(this.mousemove,this));this.over=true;this.currentPageX=e.pageX;this.currentPageY=e.pageY;this.currentEl=e.target;if(!this.tooltip&&this.displayTooltips){this.tooltip=new Tooltip(this.options);this.tooltip.updatePosition(e.pageX,e.pageY)}this.updateDisplay()},mouseleave:function(){$(document.body).unbind("mousemove.jqs");var splist=this.splist,spcount=splist.length,needsRefresh=false,sp,i;this.over=false;this.currentEl=null;if(this.tooltip){this.tooltip.remove();this.tooltip=null}for(i=0;i<spcount;i++){sp=splist[i];if(sp.clearRegionHighlight()){needsRefresh=true}}if(needsRefresh){this.canvas.render()}},mousemove:function(e){this.currentPageX=e.pageX;this.currentPageY=e.pageY;this.currentEl=e.target;if(this.tooltip){this.tooltip.updatePosition(e.pageX,e.pageY)}this.updateDisplay()},updateDisplay:function(){var splist=this.splist,spcount=splist.length,needsRefresh=false,offset=this.$canvas.offset(),localX=this.currentPageX-offset.left,localY=this.currentPageY-offset.top,tooltiphtml,sp,i,result,changeEvent;if(!this.over){return}for(i=0;i<spcount;i++){sp=splist[i];result=sp.setRegionHighlight(this.currentEl,localX,localY);if(result){needsRefresh=true}}if(needsRefresh){changeEvent=$.Event("sparklineRegionChange");changeEvent.sparklines=this.splist;this.$el.trigger(changeEvent);if(this.tooltip){tooltiphtml="";for(i=0;i<spcount;i++){sp=splist[i];tooltiphtml+=sp.getCurrentRegionTooltip()}this.tooltip.setContent(tooltiphtml)}if(!this.disableHighlight){this.canvas.render()}}if(result===null){this.mouseleave()}}});Tooltip=createClass({sizeStyle:"position: static !important;"+"display: block !important;"+"visibility: hidden !important;"+"float: left !important;",init:function(options){var tooltipClassname=options.get("tooltipClassname","jqstooltip"),sizetipStyle=this.sizeStyle,offset;this.container=options.get("tooltipContainer")||document.body;this.tooltipOffsetX=options.get("tooltipOffsetX",10);this.tooltipOffsetY=options.get("tooltipOffsetY",12);$("#jqssizetip").remove();$("#jqstooltip").remove();this.sizetip=$("<div/>",{id:"jqssizetip",style:sizetipStyle,"class":tooltipClassname});this.tooltip=$("<div/>",{id:"jqstooltip","class":tooltipClassname}).appendTo(this.container);offset=this.tooltip.offset();this.offsetLeft=offset.left;this.offsetTop=offset.top;this.hidden=true;$(window).unbind("resize.jqs scroll.jqs");$(window).bind("resize.jqs scroll.jqs",$.proxy(this.updateWindowDims,this));this.updateWindowDims()},updateWindowDims:function(){this.scrollTop=$(window).scrollTop();this.scrollLeft=$(window).scrollLeft();this.scrollRight=this.scrollLeft+$(window).width();this.updatePosition()},getSize:function(content){this.sizetip.html(content).appendTo(this.container);this.width=this.sizetip.width()+1;this.height=this.sizetip.height();this.sizetip.remove()},setContent:function(content){if(!content){this.tooltip.css("visibility","hidden");this.hidden=true;return}this.getSize(content);this.tooltip.html(content).css({width:this.width,height:this.height,visibility:"visible"});if(this.hidden){this.hidden=false;this.updatePosition()}},updatePosition:function(x,y){if(x===undefined){if(this.mousex===undefined){return}x=this.mousex-this.offsetLeft;y=this.mousey-this.offsetTop}else{this.mousex=x=x-this.offsetLeft;this.mousey=y=y-this.offsetTop}if(!this.height||!this.width||this.hidden){return}y-=this.height+this.tooltipOffsetY;x+=this.tooltipOffsetX;if(y<this.scrollTop){y=this.scrollTop}if(x<this.scrollLeft){x=this.scrollLeft}else if(x+this.width>this.scrollRight){x=this.scrollRight-this.width}this.tooltip.css({left:x,top:y})},remove:function(){this.tooltip.remove();this.sizetip.remove();this.sizetip=this.tooltip=undefined;$(window).unbind("resize.jqs scroll.jqs")}});initStyles=function(){addCSS(defaultStyles)};$(initStyles);pending=[];$.fn.sparkline=function(userValues,userOptions){return this.each(function(){var options=new $.fn.sparkline.options(this,userOptions),$this=$(this),render,i;render=function(){var values,width,height,tmp,mhandler,sp,vals;if(userValues==="html"||userValues===undefined){vals=this.getAttribute(options.get("tagValuesAttribute"));if(vals===undefined||vals===null){vals=$this.html()}values=vals.replace(/(^\s*<!--)|(-->\s*$)|\s+/g,"").split(",")}else{values=userValues}width=options.get("width")==="auto"?values.length*options.get("defaultPixelsPerValue"):options.get("width");if(options.get("height")==="auto"){if(!options.get("composite")||!$.data(this,"_jqs_vcanvas")){tmp=document.createElement("span");tmp.innerHTML="a";$this.html(tmp);height=$(tmp).innerHeight()||$(tmp).height();$(tmp).remove();tmp=null}}else{height=options.get("height")}if(!options.get("disableInteraction")){mhandler=$.data(this,"_jqs_mhandler");if(!mhandler){mhandler=new MouseHandler(this,options);$.data(this,"_jqs_mhandler",mhandler)}else if(!options.get("composite")){mhandler.reset()}}else{mhandler=false}if(options.get("composite")&&!$.data(this,"_jqs_vcanvas")){if(!$.data(this,"_jqs_errnotify")){alert("Attempted to attach a composite sparkline to an element with no existing sparkline");$.data(this,"_jqs_errnotify",true)}return}sp=new($.fn.sparkline[options.get("type")])(this,values,options,width,height);sp.render();if(mhandler){mhandler.registerSparkline(sp)}};if($(this).html()&&!options.get("disableHiddenCheck")&&$(this).is(":hidden")||!$(this).parents("body").length){if(!options.get("composite")&&$.data(this,"_jqs_pending")){for(i=pending.length;i;i--){if(pending[i-1][0]==this){pending.splice(i-1,1)}}}pending.push([this,render]);$.data(this,"_jqs_pending",true)}else{render.call(this)}})};$.fn.sparkline.defaults=getDefaults();$.sparkline_display_visible=function(){var el,i,pl;var done=[];for(i=0,pl=pending.length;i<pl;i++){el=pending[i][0];if($(el).is(":visible")&&!$(el).parents().is(":hidden")){pending[i][1].call(el);$.data(pending[i][0],"_jqs_pending",false);done.push(i)}else if(!$(el).closest("html").length&&!$.data(el,"_jqs_pending")){$.data(pending[i][0],"_jqs_pending",false);done.push(i)}}for(i=done.length;i;i--){pending.splice(done[i-1],1)}};$.fn.sparkline.options=createClass({init:function(tag,userOptions){var extendedOptions,defaults,base,tagOptionType;this.userOptions=userOptions=userOptions||{};this.tag=tag;this.tagValCache={};defaults=$.fn.sparkline.defaults;base=defaults.common;this.tagOptionsPrefix=userOptions.enableTagOptions&&(userOptions.tagOptionsPrefix||base.tagOptionsPrefix);tagOptionType=this.getTagSetting("type");if(tagOptionType===UNSET_OPTION){extendedOptions=defaults[userOptions.type||base.type]}else{extendedOptions=defaults[tagOptionType]}this.mergedOptions=$.extend({},base,extendedOptions,userOptions)},getTagSetting:function(key){var prefix=this.tagOptionsPrefix,val,i,pairs,keyval;if(prefix===false||prefix===undefined){return UNSET_OPTION}if(this.tagValCache.hasOwnProperty(key)){val=this.tagValCache.key}else{val=this.tag.getAttribute(prefix+key);if(val===undefined||val===null){val=UNSET_OPTION}else if(val.substr(0,1)==="["){val=val.substr(1,val.length-2).split(",");for(i=val.length;i--;){val[i]=normalizeValue(val[i].replace(/(^\s*)|(\s*$)/g,""))}}else if(val.substr(0,1)==="{"){pairs=val.substr(1,val.length-2).split(",");val={};for(i=pairs.length;i--;){keyval=pairs[i].split(":",2);val[keyval[0].replace(/(^\s*)|(\s*$)/g,"")]=normalizeValue(keyval[1].replace(/(^\s*)|(\s*$)/g,""))}}else{val=normalizeValue(val)}this.tagValCache.key=val}return val},get:function(key,defaultval){var tagOption=this.getTagSetting(key),result;if(tagOption!==UNSET_OPTION){return tagOption}return(result=this.mergedOptions[key])===undefined?defaultval:result}});$.fn.sparkline._base=createClass({disabled:false,init:function(el,values,options,width,height){this.el=el;this.$el=$(el);this.values=values;this.options=options;this.width=width;this.height=height;this.currentRegion=undefined},initTarget:function(){var interactive=!this.options.get("disableInteraction");if(!(this.target=this.$el.simpledraw(this.width,this.height,this.options.get("composite"),interactive))){this.disabled=true}else{this.canvasWidth=this.target.pixelWidth;this.canvasHeight=this.target.pixelHeight}},render:function(){if(this.disabled){this.el.innerHTML="";return false}return true},getRegion:function(x,y){},setRegionHighlight:function(el,x,y){var currentRegion=this.currentRegion,highlightEnabled=!this.options.get("disableHighlight"),newRegion;if(x>this.canvasWidth||y>this.canvasHeight||x<0||y<0){return null}newRegion=this.getRegion(el,x,y);if(currentRegion!==newRegion){if(currentRegion!==undefined&&highlightEnabled){this.removeHighlight()}this.currentRegion=newRegion;if(newRegion!==undefined&&highlightEnabled){this.renderHighlight()}return true}return false},clearRegionHighlight:function(){if(this.currentRegion!==undefined){this.removeHighlight();this.currentRegion=undefined;return true}return false},renderHighlight:function(){this.changeHighlight(true)},removeHighlight:function(){this.changeHighlight(false)},changeHighlight:function(highlight){},getCurrentRegionTooltip:function(){var options=this.options,header="",entries=[],fields,formats,formatlen,fclass,text,i,showFields,showFieldsKey,newFields,fv,formatter,format,fieldlen,j;if(this.currentRegion===undefined){return""}fields=this.getCurrentRegionFields();formatter=options.get("tooltipFormatter");if(formatter){return formatter(this,options,fields)}if(options.get("tooltipChartTitle")){header+='<div class="jqs jqstitle">'+options.get("tooltipChartTitle")+"</div>\n"}formats=this.options.get("tooltipFormat");if(!formats){return""}if(!$.isArray(formats)){formats=[formats]}if(!$.isArray(fields)){fields=[fields]}showFields=this.options.get("tooltipFormatFieldlist");showFieldsKey=this.options.get("tooltipFormatFieldlistKey");if(showFields&&showFieldsKey){newFields=[];for(i=fields.length;i--;){fv=fields[i][showFieldsKey];if((j=$.inArray(fv,showFields))!=-1){newFields[j]=fields[i]}}fields=newFields}formatlen=formats.length;fieldlen=fields.length;for(i=0;i<formatlen;i++){format=formats[i];if(typeof format==="string"){format=new SPFormat(format)}fclass=format.fclass||"jqsfield";for(j=0;j<fieldlen;j++){if(!fields[j].isNull||!options.get("tooltipSkipNull")){$.extend(fields[j],{prefix:options.get("tooltipPrefix"),suffix:options.get("tooltipSuffix")});text=format.render(fields[j],options.get("tooltipValueLookups"),options);entries.push('<div class="'+fclass+'">'+text+"</div>")}}}if(entries.length){return header+entries.join("\n")}return""},getCurrentRegionFields:function(){},calcHighlightColor:function(color,options){var highlightColor=options.get("highlightColor"),lighten=options.get("highlightLighten"),parse,mult,rgbnew,i;if(highlightColor){return highlightColor}if(lighten){parse=/^#([0-9a-f])([0-9a-f])([0-9a-f])$/i.exec(color)||/^#([0-9a-f]{2})([0-9a-f]{2})([0-9a-f]{2})$/i.exec(color);if(parse){rgbnew=[];mult=color.length===4?16:1;for(i=0;i<3;i++){rgbnew[i]=clipval(Math.round(parseInt(parse[i+1],16)*mult*lighten),0,255)}return"rgb("+rgbnew.join(",")+")"}}return color}});barHighlightMixin={changeHighlight:function(highlight){var currentRegion=this.currentRegion,target=this.target,shapeids=this.regionShapes[currentRegion],newShapes;if(shapeids){newShapes=this.renderRegion(currentRegion,highlight);if($.isArray(newShapes)||$.isArray(shapeids)){target.replaceWithShapes(shapeids,newShapes);this.regionShapes[currentRegion]=$.map(newShapes,function(newShape){return newShape.id})}else{target.replaceWithShape(shapeids,newShapes);this.regionShapes[currentRegion]=newShapes.id}}},render:function(){var values=this.values,target=this.target,regionShapes=this.regionShapes,shapes,ids,i,j;if(!this.cls._super.render.call(this)){return}for(i=values.length;i--;){shapes=this.renderRegion(i);if(shapes){if($.isArray(shapes)){ids=[];for(j=shapes.length;j--;){shapes[j].append();ids.push(shapes[j].id)}regionShapes[i]=ids}else{shapes.append();regionShapes[i]=shapes.id}}else{regionShapes[i]=null}}target.render()}};$.fn.sparkline.line=line=createClass($.fn.sparkline._base,{type:"line",init:function(el,values,options,width,height){line._super.init.call(this,el,values,options,width,height);this.vertices=[];this.regionMap=[];this.xvalues=[];this.yvalues=[];this.yminmax=[];this.hightlightSpotId=null;this.lastShapeId=null;this.initTarget()},getRegion:function(el,x,y){var i,regionMap=this.regionMap;for(i=regionMap.length;i--;){if(regionMap[i]!==null&&x>=regionMap[i][0]&&x<=regionMap[i][1]){return regionMap[i][2]}}return undefined},getCurrentRegionFields:function(){var currentRegion=this.currentRegion;return{isNull:this.yvalues[currentRegion]===null,x:this.xvalues[currentRegion],y:this.yvalues[currentRegion],color:this.options.get("lineColor"),fillColor:this.options.get("fillColor"),offset:currentRegion}},renderHighlight:function(){var currentRegion=this.currentRegion,target=this.target,vertex=this.vertices[currentRegion],options=this.options,spotRadius=options.get("spotRadius"),highlightSpotColor=options.get("highlightSpotColor"),highlightLineColor=options.get("highlightLineColor"),highlightSpot,highlightLine;if(!vertex){return}if(spotRadius&&highlightSpotColor){highlightSpot=target.drawCircle(vertex[0],vertex[1],spotRadius,undefined,highlightSpotColor);this.highlightSpotId=highlightSpot.id;target.insertAfterShape(this.lastShapeId,highlightSpot)}if(highlightLineColor){highlightLine=target.drawLine(vertex[0],this.canvasTop,vertex[0],this.canvasTop+this.canvasHeight,highlightLineColor);this.highlightLineId=highlightLine.id;target.insertAfterShape(this.lastShapeId,highlightLine)}},removeHighlight:function(){var target=this.target;if(this.highlightSpotId){target.removeShapeId(this.highlightSpotId);this.highlightSpotId=null}if(this.highlightLineId){target.removeShapeId(this.highlightLineId);this.highlightLineId=null}},scanValues:function(){var values=this.values,valcount=values.length,xvalues=this.xvalues,yvalues=this.yvalues,yminmax=this.yminmax,i,val,isStr,isArray,sp;for(i=0;i<valcount;i++){val=values[i];isStr=typeof values[i]==="string";isArray=typeof values[i]==="object"&&values[i]instanceof Array;sp=isStr&&values[i].split(":");if(isStr&&sp.length===2){xvalues.push(Number(sp[0]));yvalues.push(Number(sp[1]));yminmax.push(Number(sp[1]))}else if(isArray){xvalues.push(val[0]);yvalues.push(val[1]);yminmax.push(val[1])}else{xvalues.push(i);if(values[i]===null||values[i]==="null"){yvalues.push(null)}else{yvalues.push(Number(val));yminmax.push(Number(val))}}}if(this.options.get("xvalues")){xvalues=this.options.get("xvalues")}this.maxy=this.maxyorg=Math.max.apply(Math,yminmax);this.miny=this.minyorg=Math.min.apply(Math,yminmax);this.maxx=Math.max.apply(Math,xvalues);this.minx=Math.min.apply(Math,xvalues);this.xvalues=xvalues;this.yvalues=yvalues;this.yminmax=yminmax},processRangeOptions:function(){var options=this.options,normalRangeMin=options.get("normalRangeMin"),normalRangeMax=options.get("normalRangeMax");if(normalRangeMin!==undefined){if(normalRangeMin<this.miny){this.miny=normalRangeMin}if(normalRangeMax>this.maxy){this.maxy=normalRangeMax}}if(options.get("chartRangeMin")!==undefined&&(options.get("chartRangeClip")||options.get("chartRangeMin")<this.miny)){this.miny=options.get("chartRangeMin")}if(options.get("chartRangeMax")!==undefined&&(options.get("chartRangeClip")||options.get("chartRangeMax")>this.maxy)){this.maxy=options.get("chartRangeMax")}if(options.get("chartRangeMinX")!==undefined&&(options.get("chartRangeClipX")||options.get("chartRangeMinX")<this.minx)){this.minx=options.get("chartRangeMinX")}if(options.get("chartRangeMaxX")!==undefined&&(options.get("chartRangeClipX")||options.get("chartRangeMaxX")>this.maxx)){this.maxx=options.get("chartRangeMaxX")}},drawNormalRange:function(canvasLeft,canvasTop,canvasHeight,canvasWidth,rangey){var normalRangeMin=this.options.get("normalRangeMin"),normalRangeMax=this.options.get("normalRangeMax"),ytop=canvasTop+Math.round(canvasHeight-canvasHeight*((normalRangeMax-this.miny)/rangey)),height=Math.round(canvasHeight*(normalRangeMax-normalRangeMin)/rangey);this.target.drawRect(canvasLeft,ytop,canvasWidth,height,undefined,this.options.get("normalRangeColor")).append()},render:function(){var options=this.options,target=this.target,canvasWidth=this.canvasWidth,canvasHeight=this.canvasHeight,vertices=this.vertices,spotRadius=options.get("spotRadius"),regionMap=this.regionMap,rangex,rangey,yvallast,canvasTop,canvasLeft,vertex,path,paths,x,y,xnext,xpos,xposnext,last,next,yvalcount,lineShapes,fillShapes,plen,valueSpots,hlSpotsEnabled,color,xvalues,yvalues,i;if(!line._super.render.call(this)){return}this.scanValues();this.processRangeOptions();xvalues=this.xvalues;yvalues=this.yvalues;if(!this.yminmax.length||this.yvalues.length<2){return}canvasTop=canvasLeft=0;rangex=this.maxx-this.minx===0?1:this.maxx-this.minx;rangey=this.maxy-this.miny===0?1:this.maxy-this.miny;yvallast=this.yvalues.length-1;if(spotRadius&&(canvasWidth<spotRadius*4||canvasHeight<spotRadius*4)){spotRadius=0}if(spotRadius){hlSpotsEnabled=options.get("highlightSpotColor")&&!options.get("disableInteraction");if(hlSpotsEnabled||options.get("minSpotColor")||options.get("spotColor")&&yvalues[yvallast]===this.miny){canvasHeight-=Math.ceil(spotRadius)}if(hlSpotsEnabled||options.get("maxSpotColor")||options.get("spotColor")&&yvalues[yvallast]===this.maxy){canvasHeight-=Math.ceil(spotRadius);canvasTop+=Math.ceil(spotRadius)}if(hlSpotsEnabled||(options.get("minSpotColor")||options.get("maxSpotColor"))&&(yvalues[0]===this.miny||yvalues[0]===this.maxy)){canvasLeft+=Math.ceil(spotRadius);canvasWidth-=Math.ceil(spotRadius)}if(hlSpotsEnabled||options.get("spotColor")||(options.get("minSpotColor")||options.get("maxSpotColor")&&(yvalues[yvallast]===this.miny||yvalues[yvallast]===this.maxy))){canvasWidth-=Math.ceil(spotRadius)}}canvasHeight--;if(options.get("normalRangeMin")!==undefined&&!options.get("drawNormalOnTop")){this.drawNormalRange(canvasLeft,canvasTop,canvasHeight,canvasWidth,rangey)}path=[];paths=[path];last=next=null;yvalcount=yvalues.length;for(i=0;i<yvalcount;i++){x=xvalues[i];xnext=xvalues[i+1];y=yvalues[i];xpos=canvasLeft+Math.round((x-this.minx)*(canvasWidth/rangex));xposnext=i<yvalcount-1?canvasLeft+Math.round((xnext-this.minx)*(canvasWidth/rangex)):canvasWidth;next=xpos+(xposnext-xpos)/2;regionMap[i]=[last||0,next,i];last=next;if(y===null){if(i){if(yvalues[i-1]!==null){path=[];paths.push(path)}vertices.push(null)}}else{if(y<this.miny){y=this.miny}if(y>this.maxy){y=this.maxy}if(!path.length){path.push([xpos,canvasTop+canvasHeight])}vertex=[xpos,canvasTop+Math.round(canvasHeight-canvasHeight*((y-this.miny)/rangey))];path.push(vertex);vertices.push(vertex)}}lineShapes=[];fillShapes=[];plen=paths.length;for(i=0;i<plen;i++){path=paths[i];if(path.length){if(options.get("fillColor")){path.push([path[path.length-1][0],canvasTop+canvasHeight]);fillShapes.push(path.slice(0));path.pop()}if(path.length>2){path[0]=[path[0][0],path[1][1]]}lineShapes.push(path)}}plen=fillShapes.length;for(i=0;i<plen;i++){target.drawShape(fillShapes[i],options.get("fillColor"),options.get("fillColor")).append()}if(options.get("normalRangeMin")!==undefined&&options.get("drawNormalOnTop")){this.drawNormalRange(canvasLeft,canvasTop,canvasHeight,canvasWidth,rangey)}plen=lineShapes.length;for(i=0;i<plen;i++){target.drawShape(lineShapes[i],options.get("lineColor"),undefined,options.get("lineWidth")).append()}if(spotRadius&&options.get("valueSpots")){valueSpots=options.get("valueSpots");if(valueSpots.get===undefined){valueSpots=new RangeMap(valueSpots)}for(i=0;i<yvalcount;i++){color=valueSpots.get(yvalues[i]);if(color){target.drawCircle(canvasLeft+Math.round((xvalues[i]-this.minx)*(canvasWidth/rangex)),canvasTop+Math.round(canvasHeight-canvasHeight*((yvalues[i]-this.miny)/rangey)),spotRadius,undefined,color).append()}}}if(spotRadius&&options.get("spotColor")&&yvalues[yvallast]!==null){target.drawCircle(canvasLeft+Math.round((xvalues[xvalues.length-1]-this.minx)*(canvasWidth/rangex)),canvasTop+Math.round(canvasHeight-canvasHeight*((yvalues[yvallast]-this.miny)/rangey)),spotRadius,undefined,options.get("spotColor")).append()}if(this.maxy!==this.minyorg){if(spotRadius&&options.get("minSpotColor")){x=xvalues[$.inArray(this.minyorg,yvalues)];target.drawCircle(canvasLeft+Math.round((x-this.minx)*(canvasWidth/rangex)),canvasTop+Math.round(canvasHeight-canvasHeight*((this.minyorg-this.miny)/rangey)),spotRadius,undefined,options.get("minSpotColor")).append()}if(spotRadius&&options.get("maxSpotColor")){x=xvalues[$.inArray(this.maxyorg,yvalues)];target.drawCircle(canvasLeft+Math.round((x-this.minx)*(canvasWidth/rangex)),canvasTop+Math.round(canvasHeight-canvasHeight*((this.maxyorg-this.miny)/rangey)),spotRadius,undefined,options.get("maxSpotColor")).append()}}this.lastShapeId=target.getLastShapeId();this.canvasTop=canvasTop;target.render()}});$.fn.sparkline.bar=bar=createClass($.fn.sparkline._base,barHighlightMixin,{type:"bar",init:function(el,values,options,width,height){var barWidth=parseInt(options.get("barWidth"),10),barSpacing=parseInt(options.get("barSpacing"),10),chartRangeMin=options.get("chartRangeMin"),chartRangeMax=options.get("chartRangeMax"),chartRangeClip=options.get("chartRangeClip"),stackMin=Infinity,stackMax=-Infinity,isStackString,groupMin,groupMax,stackRanges,numValues,i,vlen,range,zeroAxis,xaxisOffset,min,max,clipMin,clipMax,stacked,vlist,j,slen,svals,val,yoffset,yMaxCalc,canvasHeightEf;bar._super.init.call(this,el,values,options,width,height);for(i=0,vlen=values.length;i<vlen;i++){val=values[i];isStackString=typeof val==="string"&&val.indexOf(":")>-1;if(isStackString||$.isArray(val)){stacked=true;if(isStackString){val=values[i]=normalizeValues(val.split(":")); - -}val=remove(val,null);groupMin=Math.min.apply(Math,val);groupMax=Math.max.apply(Math,val);if(groupMin<stackMin){stackMin=groupMin}if(groupMax>stackMax){stackMax=groupMax}}}this.stacked=stacked;this.regionShapes={};this.barWidth=barWidth;this.barSpacing=barSpacing;this.totalBarWidth=barWidth+barSpacing;this.width=width=values.length*barWidth+(values.length-1)*barSpacing;this.initTarget();if(chartRangeClip){clipMin=chartRangeMin===undefined?-Infinity:chartRangeMin;clipMax=chartRangeMax===undefined?Infinity:chartRangeMax}numValues=[];stackRanges=stacked?[]:numValues;var stackTotals=[];var stackRangesNeg=[];for(i=0,vlen=values.length;i<vlen;i++){if(stacked){vlist=values[i];values[i]=svals=[];stackTotals[i]=0;stackRanges[i]=stackRangesNeg[i]=0;for(j=0,slen=vlist.length;j<slen;j++){val=svals[j]=chartRangeClip?clipval(vlist[j],clipMin,clipMax):vlist[j];if(val!==null){if(val>0){stackTotals[i]+=val}if(stackMin<0&&stackMax>0){if(val<0){stackRangesNeg[i]+=Math.abs(val)}else{stackRanges[i]+=val}}else{stackRanges[i]+=Math.abs(val-(val<0?stackMax:stackMin))}numValues.push(val)}}}else{val=chartRangeClip?clipval(values[i],clipMin,clipMax):values[i];val=values[i]=normalizeValue(val);if(val!==null){numValues.push(val)}}}this.max=max=Math.max.apply(Math,numValues);this.min=min=Math.min.apply(Math,numValues);this.stackMax=stackMax=stacked?Math.max.apply(Math,stackTotals):max;this.stackMin=stackMin=stacked?Math.min.apply(Math,numValues):min;if(options.get("chartRangeMin")!==undefined&&(options.get("chartRangeClip")||options.get("chartRangeMin")<min)){min=options.get("chartRangeMin")}if(options.get("chartRangeMax")!==undefined&&(options.get("chartRangeClip")||options.get("chartRangeMax")>max)){max=options.get("chartRangeMax")}this.zeroAxis=zeroAxis=options.get("zeroAxis",true);if(min<=0&&max>=0&&zeroAxis){xaxisOffset=0}else if(zeroAxis==false){xaxisOffset=min}else if(min>0){xaxisOffset=min}else{xaxisOffset=max}this.xaxisOffset=xaxisOffset;range=stacked?Math.max.apply(Math,stackRanges)+Math.max.apply(Math,stackRangesNeg):max-min;this.canvasHeightEf=zeroAxis&&min<0?this.canvasHeight-2:this.canvasHeight-1;if(min<xaxisOffset){yMaxCalc=stacked&&max>=0?stackMax:max;yoffset=(yMaxCalc-xaxisOffset)/range*this.canvasHeight;if(yoffset!==Math.ceil(yoffset)){this.canvasHeightEf-=2;yoffset=Math.ceil(yoffset)}}else{yoffset=this.canvasHeight}this.yoffset=yoffset;if($.isArray(options.get("colorMap"))){this.colorMapByIndex=options.get("colorMap");this.colorMapByValue=null}else{this.colorMapByIndex=null;this.colorMapByValue=options.get("colorMap");if(this.colorMapByValue&&this.colorMapByValue.get===undefined){this.colorMapByValue=new RangeMap(this.colorMapByValue)}}this.range=range},getRegion:function(el,x,y){var result=Math.floor(x/this.totalBarWidth);return result<0||result>=this.values.length?undefined:result},getCurrentRegionFields:function(){var currentRegion=this.currentRegion,values=ensureArray(this.values[currentRegion]),result=[],value,i;for(i=values.length;i--;){value=values[i];result.push({isNull:value===null,value:value,color:this.calcColor(i,value,currentRegion),offset:currentRegion})}return result},calcColor:function(stacknum,value,valuenum){var colorMapByIndex=this.colorMapByIndex,colorMapByValue=this.colorMapByValue,options=this.options,color,newColor;if(this.stacked){color=options.get("stackedBarColor")}else{color=value<0?options.get("negBarColor"):options.get("barColor")}if(value===0&&options.get("zeroColor")!==undefined){color=options.get("zeroColor")}if(colorMapByValue&&(newColor=colorMapByValue.get(value))){color=newColor}else if(colorMapByIndex&&colorMapByIndex.length>valuenum){color=colorMapByIndex[valuenum]}return $.isArray(color)?color[stacknum%color.length]:color},renderRegion:function(valuenum,highlight){var vals=this.values[valuenum],options=this.options,xaxisOffset=this.xaxisOffset,result=[],range=this.range,stacked=this.stacked,target=this.target,x=valuenum*this.totalBarWidth,canvasHeightEf=this.canvasHeightEf,yoffset=this.yoffset,y,height,color,isNull,yoffsetNeg,i,valcount,val,minPlotted,allMin;vals=$.isArray(vals)?vals:[vals];valcount=vals.length;val=vals[0];isNull=all(null,vals);allMin=all(xaxisOffset,vals,true);if(isNull){if(options.get("nullColor")){color=highlight?options.get("nullColor"):this.calcHighlightColor(options.get("nullColor"),options);y=yoffset>0?yoffset-1:yoffset;return target.drawRect(x,y,this.barWidth-1,0,color,color)}else{return undefined}}yoffsetNeg=yoffset;for(i=0;i<valcount;i++){val=vals[i];if(stacked&&val===xaxisOffset){if(!allMin||minPlotted){continue}minPlotted=true}if(range>0){height=Math.floor(canvasHeightEf*(Math.abs(val-xaxisOffset)/range))+1}else{height=1}if(val<xaxisOffset||val===xaxisOffset&&yoffset===0){y=yoffsetNeg;yoffsetNeg+=height}else{y=yoffset-height;yoffset-=height}color=this.calcColor(i,val,valuenum);if(highlight){color=this.calcHighlightColor(color,options)}result.push(target.drawRect(x,y,this.barWidth-1,height-1,color,color))}if(result.length===1){return result[0]}return result}});$.fn.sparkline.tristate=tristate=createClass($.fn.sparkline._base,barHighlightMixin,{type:"tristate",init:function(el,values,options,width,height){var barWidth=parseInt(options.get("barWidth"),10),barSpacing=parseInt(options.get("barSpacing"),10);tristate._super.init.call(this,el,values,options,width,height);this.regionShapes={};this.barWidth=barWidth;this.barSpacing=barSpacing;this.totalBarWidth=barWidth+barSpacing;this.values=$.map(values,Number);this.width=width=values.length*barWidth+(values.length-1)*barSpacing;if($.isArray(options.get("colorMap"))){this.colorMapByIndex=options.get("colorMap");this.colorMapByValue=null}else{this.colorMapByIndex=null;this.colorMapByValue=options.get("colorMap");if(this.colorMapByValue&&this.colorMapByValue.get===undefined){this.colorMapByValue=new RangeMap(this.colorMapByValue)}}this.initTarget()},getRegion:function(el,x,y){return Math.floor(x/this.totalBarWidth)},getCurrentRegionFields:function(){var currentRegion=this.currentRegion;return{isNull:this.values[currentRegion]===undefined,value:this.values[currentRegion],color:this.calcColor(this.values[currentRegion],currentRegion),offset:currentRegion}},calcColor:function(value,valuenum){var values=this.values,options=this.options,colorMapByIndex=this.colorMapByIndex,colorMapByValue=this.colorMapByValue,color,newColor;if(colorMapByValue&&(newColor=colorMapByValue.get(value))){color=newColor}else if(colorMapByIndex&&colorMapByIndex.length>valuenum){color=colorMapByIndex[valuenum]}else if(values[valuenum]<0){color=options.get("negBarColor")}else if(values[valuenum]>0){color=options.get("posBarColor")}else{color=options.get("zeroBarColor")}return color},renderRegion:function(valuenum,highlight){var values=this.values,options=this.options,target=this.target,canvasHeight,height,halfHeight,x,y,color;canvasHeight=target.pixelHeight;halfHeight=Math.round(canvasHeight/2);x=valuenum*this.totalBarWidth;if(values[valuenum]<0){y=halfHeight;height=halfHeight-1}else if(values[valuenum]>0){y=0;height=halfHeight-1}else{y=halfHeight-1;height=2}color=this.calcColor(values[valuenum],valuenum);if(color===null){return}if(highlight){color=this.calcHighlightColor(color,options)}return target.drawRect(x,y,this.barWidth-1,height-1,color,color)}});$.fn.sparkline.discrete=discrete=createClass($.fn.sparkline._base,barHighlightMixin,{type:"discrete",init:function(el,values,options,width,height){discrete._super.init.call(this,el,values,options,width,height);this.regionShapes={};this.values=values=$.map(values,Number);this.min=Math.min.apply(Math,values);this.max=Math.max.apply(Math,values);this.range=this.max-this.min;this.width=width=options.get("width")==="auto"?values.length*2:this.width;this.interval=Math.floor(width/values.length);this.itemWidth=width/values.length;if(options.get("chartRangeMin")!==undefined&&(options.get("chartRangeClip")||options.get("chartRangeMin")<this.min)){this.min=options.get("chartRangeMin")}if(options.get("chartRangeMax")!==undefined&&(options.get("chartRangeClip")||options.get("chartRangeMax")>this.max)){this.max=options.get("chartRangeMax")}this.initTarget();if(this.target){this.lineHeight=options.get("lineHeight")==="auto"?Math.round(this.canvasHeight*.3):options.get("lineHeight")}},getRegion:function(el,x,y){return Math.floor(x/this.itemWidth)},getCurrentRegionFields:function(){var currentRegion=this.currentRegion;return{isNull:this.values[currentRegion]===undefined,value:this.values[currentRegion],offset:currentRegion}},renderRegion:function(valuenum,highlight){var values=this.values,options=this.options,min=this.min,max=this.max,range=this.range,interval=this.interval,target=this.target,canvasHeight=this.canvasHeight,lineHeight=this.lineHeight,pheight=canvasHeight-lineHeight,ytop,val,color,x;val=clipval(values[valuenum],min,max);x=valuenum*interval;ytop=Math.round(pheight-pheight*((val-min)/range));color=options.get("thresholdColor")&&val<options.get("thresholdValue")?options.get("thresholdColor"):options.get("lineColor");if(highlight){color=this.calcHighlightColor(color,options)}return target.drawLine(x,ytop,x,ytop+lineHeight,color)}});$.fn.sparkline.bullet=bullet=createClass($.fn.sparkline._base,{type:"bullet",init:function(el,values,options,width,height){var min,max,vals;bullet._super.init.call(this,el,values,options,width,height);this.values=values=normalizeValues(values);vals=values.slice();vals[0]=vals[0]===null?vals[2]:vals[0];vals[1]=values[1]===null?vals[2]:vals[1];min=Math.min.apply(Math,values);max=Math.max.apply(Math,values);if(options.get("base")===undefined){min=min<0?min:0}else{min=options.get("base")}this.min=min;this.max=max;this.range=max-min;this.shapes={};this.valueShapes={};this.regiondata={};this.width=width=options.get("width")==="auto"?"4.0em":width;this.target=this.$el.simpledraw(width,height,options.get("composite"));if(!values.length){this.disabled=true}this.initTarget()},getRegion:function(el,x,y){var shapeid=this.target.getShapeAt(el,x,y);return shapeid!==undefined&&this.shapes[shapeid]!==undefined?this.shapes[shapeid]:undefined},getCurrentRegionFields:function(){var currentRegion=this.currentRegion;return{fieldkey:currentRegion.substr(0,1),value:this.values[currentRegion.substr(1)],region:currentRegion}},changeHighlight:function(highlight){var currentRegion=this.currentRegion,shapeid=this.valueShapes[currentRegion],shape;delete this.shapes[shapeid];switch(currentRegion.substr(0,1)){case"r":shape=this.renderRange(currentRegion.substr(1),highlight);break;case"p":shape=this.renderPerformance(highlight);break;case"t":shape=this.renderTarget(highlight);break}this.valueShapes[currentRegion]=shape.id;this.shapes[shape.id]=currentRegion;this.target.replaceWithShape(shapeid,shape)},renderRange:function(rn,highlight){var rangeval=this.values[rn],rangewidth=Math.round(this.canvasWidth*((rangeval-this.min)/this.range)),color=this.options.get("rangeColors")[rn-2];if(highlight){color=this.calcHighlightColor(color,this.options)}return this.target.drawRect(0,0,rangewidth-1,this.canvasHeight-1,color,color)},renderPerformance:function(highlight){var perfval=this.values[1],perfwidth=Math.round(this.canvasWidth*((perfval-this.min)/this.range)),color=this.options.get("performanceColor");if(highlight){color=this.calcHighlightColor(color,this.options)}return this.target.drawRect(0,Math.round(this.canvasHeight*.3),perfwidth-1,Math.round(this.canvasHeight*.4)-1,color,color)},renderTarget:function(highlight){var targetval=this.values[0],x=Math.round(this.canvasWidth*((targetval-this.min)/this.range)-this.options.get("targetWidth")/2),targettop=Math.round(this.canvasHeight*.1),targetheight=this.canvasHeight-targettop*2,color=this.options.get("targetColor");if(highlight){color=this.calcHighlightColor(color,this.options)}return this.target.drawRect(x,targettop,this.options.get("targetWidth")-1,targetheight-1,color,color)},render:function(){var vlen=this.values.length,target=this.target,i,shape;if(!bullet._super.render.call(this)){return}for(i=2;i<vlen;i++){shape=this.renderRange(i).append();this.shapes[shape.id]="r"+i;this.valueShapes["r"+i]=shape.id}if(this.values[1]!==null){shape=this.renderPerformance().append();this.shapes[shape.id]="p1";this.valueShapes.p1=shape.id}if(this.values[0]!==null){shape=this.renderTarget().append();this.shapes[shape.id]="t0";this.valueShapes.t0=shape.id}target.render()}});$.fn.sparkline.pie=pie=createClass($.fn.sparkline._base,{type:"pie",init:function(el,values,options,width,height){var total=0,i;pie._super.init.call(this,el,values,options,width,height);this.shapes={};this.valueShapes={};this.values=values=$.map(values,Number);if(options.get("width")==="auto"){this.width=this.height}if(values.length>0){for(i=values.length;i--;){total+=values[i]}}this.total=total;this.initTarget();this.radius=Math.floor(Math.min(this.canvasWidth,this.canvasHeight)/2)},getRegion:function(el,x,y){var shapeid=this.target.getShapeAt(el,x,y);return shapeid!==undefined&&this.shapes[shapeid]!==undefined?this.shapes[shapeid]:undefined},getCurrentRegionFields:function(){var currentRegion=this.currentRegion;return{isNull:this.values[currentRegion]===undefined,value:this.values[currentRegion],percent:this.values[currentRegion]/this.total*100,color:this.options.get("sliceColors")[currentRegion%this.options.get("sliceColors").length],offset:currentRegion}},changeHighlight:function(highlight){var currentRegion=this.currentRegion,newslice=this.renderSlice(currentRegion,highlight),shapeid=this.valueShapes[currentRegion];delete this.shapes[shapeid];this.target.replaceWithShape(shapeid,newslice);this.valueShapes[currentRegion]=newslice.id;this.shapes[newslice.id]=currentRegion},renderSlice:function(valuenum,highlight){var target=this.target,options=this.options,radius=this.radius,borderWidth=options.get("borderWidth"),offset=options.get("offset"),circle=2*Math.PI,values=this.values,total=this.total,next=offset?2*Math.PI*(offset/360):0,start,end,i,vlen,color;vlen=values.length;for(i=0;i<vlen;i++){start=next;end=next;if(total>0){end=next+circle*(values[i]/total)}if(valuenum===i){color=options.get("sliceColors")[i%options.get("sliceColors").length];if(highlight){color=this.calcHighlightColor(color,options)}return target.drawPieSlice(radius,radius,radius-borderWidth,start,end,undefined,color)}next=end}},render:function(){var target=this.target,values=this.values,options=this.options,radius=this.radius,borderWidth=options.get("borderWidth"),shape,i;if(!pie._super.render.call(this)){return}if(borderWidth){target.drawCircle(radius,radius,Math.floor(radius-borderWidth/2),options.get("borderColor"),undefined,borderWidth).append()}for(i=values.length;i--;){if(values[i]){shape=this.renderSlice(i).append();this.valueShapes[i]=shape.id;this.shapes[shape.id]=i}}target.render()}});$.fn.sparkline.box=box=createClass($.fn.sparkline._base,{type:"box",init:function(el,values,options,width,height){box._super.init.call(this,el,values,options,width,height);this.values=$.map(values,Number);this.width=options.get("width")==="auto"?"4.0em":width;this.initTarget();if(!this.values.length){this.disabled=1}},getRegion:function(){return 1},getCurrentRegionFields:function(){var result=[{field:"lq",value:this.quartiles[0]},{field:"med",value:this.quartiles[1]},{field:"uq",value:this.quartiles[2]}];if(this.loutlier!==undefined){result.push({field:"lo",value:this.loutlier})}if(this.routlier!==undefined){result.push({field:"ro",value:this.routlier})}if(this.lwhisker!==undefined){result.push({field:"lw",value:this.lwhisker})}if(this.rwhisker!==undefined){result.push({field:"rw",value:this.rwhisker})}return result},render:function(){var target=this.target,values=this.values,vlen=values.length,options=this.options,canvasWidth=this.canvasWidth,canvasHeight=this.canvasHeight,minValue=options.get("chartRangeMin")===undefined?Math.min.apply(Math,values):options.get("chartRangeMin"),maxValue=options.get("chartRangeMax")===undefined?Math.max.apply(Math,values):options.get("chartRangeMax"),canvasLeft=0,lwhisker,loutlier,iqr,q1,q2,q3,rwhisker,routlier,i,size,unitSize;if(!box._super.render.call(this)){return}if(options.get("raw")){if(options.get("showOutliers")&&values.length>5){loutlier=values[0];lwhisker=values[1];q1=values[2];q2=values[3];q3=values[4];rwhisker=values[5];routlier=values[6]}else{lwhisker=values[0];q1=values[1];q2=values[2];q3=values[3];rwhisker=values[4]}}else{values.sort(function(a,b){return a-b});q1=quartile(values,1);q2=quartile(values,2);q3=quartile(values,3);iqr=q3-q1;if(options.get("showOutliers")){lwhisker=rwhisker=undefined;for(i=0;i<vlen;i++){if(lwhisker===undefined&&values[i]>q1-iqr*options.get("outlierIQR")){lwhisker=values[i]}if(values[i]<q3+iqr*options.get("outlierIQR")){rwhisker=values[i]}}loutlier=values[0];routlier=values[vlen-1]}else{lwhisker=values[0];rwhisker=values[vlen-1]}}this.quartiles=[q1,q2,q3];this.lwhisker=lwhisker;this.rwhisker=rwhisker;this.loutlier=loutlier;this.routlier=routlier;unitSize=canvasWidth/(maxValue-minValue+1);if(options.get("showOutliers")){canvasLeft=Math.ceil(options.get("spotRadius"));canvasWidth-=2*Math.ceil(options.get("spotRadius"));unitSize=canvasWidth/(maxValue-minValue+1);if(loutlier<lwhisker){target.drawCircle((loutlier-minValue)*unitSize+canvasLeft,canvasHeight/2,options.get("spotRadius"),options.get("outlierLineColor"),options.get("outlierFillColor")).append()}if(routlier>rwhisker){target.drawCircle((routlier-minValue)*unitSize+canvasLeft,canvasHeight/2,options.get("spotRadius"),options.get("outlierLineColor"),options.get("outlierFillColor")).append()}}target.drawRect(Math.round((q1-minValue)*unitSize+canvasLeft),Math.round(canvasHeight*.1),Math.round((q3-q1)*unitSize),Math.round(canvasHeight*.8),options.get("boxLineColor"),options.get("boxFillColor")).append();target.drawLine(Math.round((lwhisker-minValue)*unitSize+canvasLeft),Math.round(canvasHeight/2),Math.round((q1-minValue)*unitSize+canvasLeft),Math.round(canvasHeight/2),options.get("lineColor")).append();target.drawLine(Math.round((lwhisker-minValue)*unitSize+canvasLeft),Math.round(canvasHeight/4),Math.round((lwhisker-minValue)*unitSize+canvasLeft),Math.round(canvasHeight-canvasHeight/4),options.get("whiskerColor")).append();target.drawLine(Math.round((rwhisker-minValue)*unitSize+canvasLeft),Math.round(canvasHeight/2),Math.round((q3-minValue)*unitSize+canvasLeft),Math.round(canvasHeight/2),options.get("lineColor")).append();target.drawLine(Math.round((rwhisker-minValue)*unitSize+canvasLeft),Math.round(canvasHeight/4),Math.round((rwhisker-minValue)*unitSize+canvasLeft),Math.round(canvasHeight-canvasHeight/4),options.get("whiskerColor")).append();target.drawLine(Math.round((q2-minValue)*unitSize+canvasLeft),Math.round(canvasHeight*.1),Math.round((q2-minValue)*unitSize+canvasLeft),Math.round(canvasHeight*.9),options.get("medianColor")).append();if(options.get("target")){size=Math.ceil(options.get("spotRadius"));target.drawLine(Math.round((options.get("target")-minValue)*unitSize+canvasLeft),Math.round(canvasHeight/2-size),Math.round((options.get("target")-minValue)*unitSize+canvasLeft),Math.round(canvasHeight/2+size),options.get("targetColor")).append();target.drawLine(Math.round((options.get("target")-minValue)*unitSize+canvasLeft-size),Math.round(canvasHeight/2),Math.round((options.get("target")-minValue)*unitSize+canvasLeft+size),Math.round(canvasHeight/2),options.get("targetColor")).append()}target.render()}});VShape=createClass({init:function(target,id,type,args){this.target=target;this.id=id;this.type=type;this.args=args},append:function(){this.target.appendShape(this);return this}});VCanvas_base=createClass({_pxregex:/(\d+)(px)?\s*$/i,init:function(width,height,target){if(!width){return}this.width=width;this.height=height;this.target=target;this.lastShapeId=null;if(target[0]){target=target[0]}$.data(target,"_jqs_vcanvas",this)},drawLine:function(x1,y1,x2,y2,lineColor,lineWidth){return this.drawShape([[x1,y1],[x2,y2]],lineColor,lineWidth)},drawShape:function(path,lineColor,fillColor,lineWidth){return this._genShape("Shape",[path,lineColor,fillColor,lineWidth])},drawCircle:function(x,y,radius,lineColor,fillColor,lineWidth){return this._genShape("Circle",[x,y,radius,lineColor,fillColor,lineWidth])},drawPieSlice:function(x,y,radius,startAngle,endAngle,lineColor,fillColor){return this._genShape("PieSlice",[x,y,radius,startAngle,endAngle,lineColor,fillColor])},drawRect:function(x,y,width,height,lineColor,fillColor){return this._genShape("Rect",[x,y,width,height,lineColor,fillColor])},getElement:function(){return this.canvas},getLastShapeId:function(){return this.lastShapeId},reset:function(){alert("reset not implemented")},_insert:function(el,target){$(target).html(el)},_calculatePixelDims:function(width,height,canvas){var match;match=this._pxregex.exec(height);if(match){this.pixelHeight=match[1]}else{this.pixelHeight=$(canvas).height()}match=this._pxregex.exec(width);if(match){this.pixelWidth=match[1]}else{this.pixelWidth=$(canvas).width()}},_genShape:function(shapetype,shapeargs){var id=shapeCount++;shapeargs.unshift(id);return new VShape(this,id,shapetype,shapeargs)},appendShape:function(shape){alert("appendShape not implemented")},replaceWithShape:function(shapeid,shape){alert("replaceWithShape not implemented")},insertAfterShape:function(shapeid,shape){alert("insertAfterShape not implemented")},removeShapeId:function(shapeid){alert("removeShapeId not implemented")},getShapeAt:function(el,x,y){alert("getShapeAt not implemented")},render:function(){alert("render not implemented")}});VCanvas_canvas=createClass(VCanvas_base,{init:function(width,height,target,interact){VCanvas_canvas._super.init.call(this,width,height,target);this.canvas=document.createElement("canvas");if(target[0]){target=target[0]}$.data(target,"_jqs_vcanvas",this);$(this.canvas).css({display:"inline-block",width:width,height:height,verticalAlign:"top"});this._insert(this.canvas,target);this._calculatePixelDims(width,height,this.canvas);this.canvas.width=this.pixelWidth;this.canvas.height=this.pixelHeight;this.interact=interact;this.shapes={};this.shapeseq=[];this.currentTargetShapeId=undefined;$(this.canvas).css({width:this.pixelWidth,height:this.pixelHeight})},_getContext:function(lineColor,fillColor,lineWidth){var context=this.canvas.getContext("2d");if(lineColor!==undefined){context.strokeStyle=lineColor}context.lineWidth=lineWidth===undefined?1:lineWidth;if(fillColor!==undefined){context.fillStyle=fillColor}return context},reset:function(){var context=this._getContext();context.clearRect(0,0,this.pixelWidth,this.pixelHeight);this.shapes={};this.shapeseq=[];this.currentTargetShapeId=undefined},_drawShape:function(shapeid,path,lineColor,fillColor,lineWidth){var context=this._getContext(lineColor,fillColor,lineWidth),i,plen;context.beginPath();context.moveTo(path[0][0]+.5,path[0][1]+.5);for(i=1,plen=path.length;i<plen;i++){context.lineTo(path[i][0]+.5,path[i][1]+.5)}if(lineColor!==undefined){context.stroke()}if(fillColor!==undefined){context.fill()}if(this.targetX!==undefined&&this.targetY!==undefined&&context.isPointInPath(this.targetX,this.targetY)){this.currentTargetShapeId=shapeid}},_drawCircle:function(shapeid,x,y,radius,lineColor,fillColor,lineWidth){var context=this._getContext(lineColor,fillColor,lineWidth);context.beginPath();context.arc(x,y,radius,0,2*Math.PI,false);if(this.targetX!==undefined&&this.targetY!==undefined&&context.isPointInPath(this.targetX,this.targetY)){this.currentTargetShapeId=shapeid}if(lineColor!==undefined){context.stroke()}if(fillColor!==undefined){context.fill()}},_drawPieSlice:function(shapeid,x,y,radius,startAngle,endAngle,lineColor,fillColor){var context=this._getContext(lineColor,fillColor);context.beginPath();context.moveTo(x,y);context.arc(x,y,radius,startAngle,endAngle,false);context.lineTo(x,y);context.closePath();if(lineColor!==undefined){context.stroke()}if(fillColor){context.fill()}if(this.targetX!==undefined&&this.targetY!==undefined&&context.isPointInPath(this.targetX,this.targetY)){this.currentTargetShapeId=shapeid}},_drawRect:function(shapeid,x,y,width,height,lineColor,fillColor){return this._drawShape(shapeid,[[x,y],[x+width,y],[x+width,y+height],[x,y+height],[x,y]],lineColor,fillColor)},appendShape:function(shape){this.shapes[shape.id]=shape;this.shapeseq.push(shape.id);this.lastShapeId=shape.id;return shape.id},replaceWithShape:function(shapeid,shape){var shapeseq=this.shapeseq,i;this.shapes[shape.id]=shape;for(i=shapeseq.length;i--;){if(shapeseq[i]==shapeid){shapeseq[i]=shape.id}}delete this.shapes[shapeid]},replaceWithShapes:function(shapeids,shapes){var shapeseq=this.shapeseq,shapemap={},sid,i,first;for(i=shapeids.length;i--;){shapemap[shapeids[i]]=true}for(i=shapeseq.length;i--;){sid=shapeseq[i];if(shapemap[sid]){shapeseq.splice(i,1);delete this.shapes[sid];first=i}}for(i=shapes.length;i--;){shapeseq.splice(first,0,shapes[i].id);this.shapes[shapes[i].id]=shapes[i]}},insertAfterShape:function(shapeid,shape){var shapeseq=this.shapeseq,i;for(i=shapeseq.length;i--;){if(shapeseq[i]===shapeid){shapeseq.splice(i+1,0,shape.id);this.shapes[shape.id]=shape;return}}},removeShapeId:function(shapeid){var shapeseq=this.shapeseq,i;for(i=shapeseq.length;i--;){if(shapeseq[i]===shapeid){shapeseq.splice(i,1);break}}delete this.shapes[shapeid]},getShapeAt:function(el,x,y){this.targetX=x;this.targetY=y;this.render();return this.currentTargetShapeId},render:function(){var shapeseq=this.shapeseq,shapes=this.shapes,shapeCount=shapeseq.length,context=this._getContext(),shapeid,shape,i;context.clearRect(0,0,this.pixelWidth,this.pixelHeight);for(i=0;i<shapeCount;i++){shapeid=shapeseq[i];shape=shapes[shapeid];this["_draw"+shape.type].apply(this,shape.args)}if(!this.interact){this.shapes={};this.shapeseq=[]}}});VCanvas_vml=createClass(VCanvas_base,{init:function(width,height,target){var groupel;VCanvas_vml._super.init.call(this,width,height,target);if(target[0]){target=target[0]}$.data(target,"_jqs_vcanvas",this);this.canvas=document.createElement("span");$(this.canvas).css({display:"inline-block",position:"relative",overflow:"hidden",width:width,height:height,margin:"0px",padding:"0px",verticalAlign:"top"});this._insert(this.canvas,target);this._calculatePixelDims(width,height,this.canvas);this.canvas.width=this.pixelWidth;this.canvas.height=this.pixelHeight;groupel='<v:group coordorigin="0 0" coordsize="'+this.pixelWidth+" "+this.pixelHeight+'"'+' style="position:absolute;top:0;left:0;width:'+this.pixelWidth+"px;height="+this.pixelHeight+'px;"></v:group>';this.canvas.insertAdjacentHTML("beforeEnd",groupel);this.group=$(this.canvas).children()[0];this.rendered=false;this.prerender=""},_drawShape:function(shapeid,path,lineColor,fillColor,lineWidth){var vpath=[],initial,stroke,fill,closed,vel,plen,i;for(i=0,plen=path.length;i<plen;i++){vpath[i]=""+path[i][0]+","+path[i][1]}initial=vpath.splice(0,1);lineWidth=lineWidth===undefined?1:lineWidth;stroke=lineColor===undefined?' stroked="false" ':' strokeWeight="'+lineWidth+'px" strokeColor="'+lineColor+'" ';fill=fillColor===undefined?' filled="false"':' fillColor="'+fillColor+'" filled="true" ';closed=vpath[0]===vpath[vpath.length-1]?"x ":"";vel='<v:shape coordorigin="0 0" coordsize="'+this.pixelWidth+" "+this.pixelHeight+'" '+' id="jqsshape'+shapeid+'" '+stroke+fill+' style="position:absolute;left:0px;top:0px;height:'+this.pixelHeight+"px;width:"+this.pixelWidth+'px;padding:0px;margin:0px;" '+' path="m '+initial+" l "+vpath.join(", ")+" "+closed+'e">'+" </v:shape>";return vel},_drawCircle:function(shapeid,x,y,radius,lineColor,fillColor,lineWidth){var stroke,fill,vel;x-=radius;y-=radius;stroke=lineColor===undefined?' stroked="false" ':' strokeWeight="'+lineWidth+'px" strokeColor="'+lineColor+'" ';fill=fillColor===undefined?' filled="false"':' fillColor="'+fillColor+'" filled="true" ';vel="<v:oval "+' id="jqsshape'+shapeid+'" '+stroke+fill+' style="position:absolute;top:'+y+"px; left:"+x+"px; width:"+radius*2+"px; height:"+radius*2+'px"></v:oval>';return vel},_drawPieSlice:function(shapeid,x,y,radius,startAngle,endAngle,lineColor,fillColor){var vpath,startx,starty,endx,endy,stroke,fill,vel;if(startAngle===endAngle){return""}if(endAngle-startAngle===2*Math.PI){startAngle=0;endAngle=2*Math.PI}startx=x+Math.round(Math.cos(startAngle)*radius);starty=y+Math.round(Math.sin(startAngle)*radius);endx=x+Math.round(Math.cos(endAngle)*radius);endy=y+Math.round(Math.sin(endAngle)*radius);if(startx===endx&&starty===endy){if(endAngle-startAngle<Math.PI){return""}startx=endx=x+radius;starty=endy=y}if(startx===endx&&starty===endy&&endAngle-startAngle<Math.PI){return""}vpath=[x-radius,y-radius,x+radius,y+radius,startx,starty,endx,endy];stroke=lineColor===undefined?' stroked="false" ':' strokeWeight="1px" strokeColor="'+lineColor+'" ';fill=fillColor===undefined?' filled="false"':' fillColor="'+fillColor+'" filled="true" ';vel='<v:shape coordorigin="0 0" coordsize="'+this.pixelWidth+" "+this.pixelHeight+'" '+' id="jqsshape'+shapeid+'" '+stroke+fill+' style="position:absolute;left:0px;top:0px;height:'+this.pixelHeight+"px;width:"+this.pixelWidth+'px;padding:0px;margin:0px;" '+' path="m '+x+","+y+" wa "+vpath.join(", ")+' x e">'+" </v:shape>";return vel},_drawRect:function(shapeid,x,y,width,height,lineColor,fillColor){return this._drawShape(shapeid,[[x,y],[x,y+height],[x+width,y+height],[x+width,y],[x,y]],lineColor,fillColor)},reset:function(){this.group.innerHTML=""},appendShape:function(shape){var vel=this["_draw"+shape.type].apply(this,shape.args);if(this.rendered){this.group.insertAdjacentHTML("beforeEnd",vel)}else{this.prerender+=vel}this.lastShapeId=shape.id;return shape.id},replaceWithShape:function(shapeid,shape){var existing=$("#jqsshape"+shapeid),vel=this["_draw"+shape.type].apply(this,shape.args);existing[0].outerHTML=vel},replaceWithShapes:function(shapeids,shapes){var existing=$("#jqsshape"+shapeids[0]),replace="",slen=shapes.length,i;for(i=0;i<slen;i++){replace+=this["_draw"+shapes[i].type].apply(this,shapes[i].args)}existing[0].outerHTML=replace;for(i=1;i<shapeids.length;i++){$("#jqsshape"+shapeids[i]).remove()}},insertAfterShape:function(shapeid,shape){var existing=$("#jqsshape"+shapeid),vel=this["_draw"+shape.type].apply(this,shape.args);existing[0].insertAdjacentHTML("afterEnd",vel)},removeShapeId:function(shapeid){var existing=$("#jqsshape"+shapeid);this.group.removeChild(existing[0])},getShapeAt:function(el,x,y){var shapeid=el.id.substr(8);return shapeid},render:function(){if(!this.rendered){this.group.innerHTML=this.prerender;this.rendered=true}}})})})(document,Math); \ No newline at end of file diff --git a/admin/bower_components/jquery-sparkline/minheader.txt b/admin/bower_components/jquery-sparkline/minheader.txt deleted file mode 100644 index 267b6db..0000000 --- a/admin/bower_components/jquery-sparkline/minheader.txt +++ /dev/null @@ -1,3 +0,0 @@ -/* jquery.sparkline @VERSION@ - http://omnipotent.net/jquery.sparkline/ -** Licensed under the New BSD License - see above site for details */ - diff --git a/admin/bower_components/jquery-sparkline/sparkline.jquery.json b/admin/bower_components/jquery-sparkline/sparkline.jquery.json deleted file mode 100644 index 25242e6..0000000 --- a/admin/bower_components/jquery-sparkline/sparkline.jquery.json +++ /dev/null @@ -1,34 +0,0 @@ -{ - "name": "sparkline", - "title": "jQuery Sparkline", - "description": "Easily generate small, inline sparkline charts directly in the browser", - "keywords": [ - "canvas", - "charts", - "graphics", - "graphing", - "graphs", - "sparklines", - "ui", - "vml" - ], - "version": "2.1.2", - "author": { - "name": "Gareth Watts", - "url": "http://gwatts.com/" - }, - "licenses": [ - { - "type": "BSD-3-Clause", - "url": "http://opensource.org/licenses/BSD-3-Clause" - } - ], - "bugs": "https://github.com/gwatts/jquery.sparkline/issues", - "homepage": "http://omnipotent.net/jquery.sparkline/", - "demo": "http://omnipotent.net/jquery.sparkline/", - "docs": "http://omnipotent.net/jquery.sparkline/#s-docs", - "download": "http://omnipotent.net/jquery.sparkline/#s-download", - "dependencies": { - "jquery": ">=1.4.3" - } -} diff --git a/admin/bower_components/jquery-sparkline/src/base.js b/admin/bower_components/jquery-sparkline/src/base.js deleted file mode 100644 index f9356da..0000000 --- a/admin/bower_components/jquery-sparkline/src/base.js +++ /dev/null @@ -1,415 +0,0 @@ - initStyles = function() { - addCSS(defaultStyles); - }; - - $(initStyles); - - pending = []; - $.fn.sparkline = function (userValues, userOptions) { - return this.each(function () { - var options = new $.fn.sparkline.options(this, userOptions), - $this = $(this), - render, i; - render = function () { - var values, width, height, tmp, mhandler, sp, vals; - if (userValues === 'html' || userValues === undefined) { - vals = this.getAttribute(options.get('tagValuesAttribute')); - if (vals === undefined || vals === null) { - vals = $this.html(); - } - values = vals.replace(/(^\s*<!--)|(-->\s*$)|\s+/g, '').split(','); - } else { - values = userValues; - } - - width = options.get('width') === 'auto' ? values.length * options.get('defaultPixelsPerValue') : options.get('width'); - if (options.get('height') === 'auto') { - if (!options.get('composite') || !$.data(this, '_jqs_vcanvas')) { - // must be a better way to get the line height - tmp = document.createElement('span'); - tmp.innerHTML = 'a'; - $this.html(tmp); - height = $(tmp).innerHeight() || $(tmp).height(); - $(tmp).remove(); - tmp = null; - } - } else { - height = options.get('height'); - } - - if (!options.get('disableInteraction')) { - mhandler = $.data(this, '_jqs_mhandler'); - if (!mhandler) { - mhandler = new MouseHandler(this, options); - $.data(this, '_jqs_mhandler', mhandler); - } else if (!options.get('composite')) { - mhandler.reset(); - } - } else { - mhandler = false; - } - - if (options.get('composite') && !$.data(this, '_jqs_vcanvas')) { - if (!$.data(this, '_jqs_errnotify')) { - alert('Attempted to attach a composite sparkline to an element with no existing sparkline'); - $.data(this, '_jqs_errnotify', true); - } - return; - } - - sp = new $.fn.sparkline[options.get('type')](this, values, options, width, height); - - sp.render(); - - if (mhandler) { - mhandler.registerSparkline(sp); - } - }; - if (($(this).html() && !options.get('disableHiddenCheck') && $(this).is(':hidden')) || !$(this).parents('body').length) { - if (!options.get('composite') && $.data(this, '_jqs_pending')) { - // remove any existing references to the element - for (i = pending.length; i; i--) { - if (pending[i - 1][0] == this) { - pending.splice(i - 1, 1); - } - } - } - pending.push([this, render]); - $.data(this, '_jqs_pending', true); - } else { - render.call(this); - } - }); - }; - - $.fn.sparkline.defaults = getDefaults(); - - - $.sparkline_display_visible = function () { - var el, i, pl; - var done = []; - for (i = 0, pl = pending.length; i < pl; i++) { - el = pending[i][0]; - if ($(el).is(':visible') && !$(el).parents().is(':hidden')) { - pending[i][1].call(el); - $.data(pending[i][0], '_jqs_pending', false); - done.push(i); - } else if (!$(el).closest('html').length && !$.data(el, '_jqs_pending')) { - // element has been inserted and removed from the DOM - // If it was not yet inserted into the dom then the .data request - // will return true. - // removing from the dom causes the data to be removed. - $.data(pending[i][0], '_jqs_pending', false); - done.push(i); - } - } - for (i = done.length; i; i--) { - pending.splice(done[i - 1], 1); - } - }; - - - /** - * User option handler - */ - $.fn.sparkline.options = createClass({ - init: function (tag, userOptions) { - var extendedOptions, defaults, base, tagOptionType; - this.userOptions = userOptions = userOptions || {}; - this.tag = tag; - this.tagValCache = {}; - defaults = $.fn.sparkline.defaults; - base = defaults.common; - this.tagOptionsPrefix = userOptions.enableTagOptions && (userOptions.tagOptionsPrefix || base.tagOptionsPrefix); - - tagOptionType = this.getTagSetting('type'); - if (tagOptionType === UNSET_OPTION) { - extendedOptions = defaults[userOptions.type || base.type]; - } else { - extendedOptions = defaults[tagOptionType]; - } - this.mergedOptions = $.extend({}, base, extendedOptions, userOptions); - }, - - - getTagSetting: function (key) { - var prefix = this.tagOptionsPrefix, - val, i, pairs, keyval; - if (prefix === false || prefix === undefined) { - return UNSET_OPTION; - } - if (this.tagValCache.hasOwnProperty(key)) { - val = this.tagValCache.key; - } else { - val = this.tag.getAttribute(prefix + key); - if (val === undefined || val === null) { - val = UNSET_OPTION; - } else if (val.substr(0, 1) === '[') { - val = val.substr(1, val.length - 2).split(','); - for (i = val.length; i--;) { - val[i] = normalizeValue(val[i].replace(/(^\s*)|(\s*$)/g, '')); - } - } else if (val.substr(0, 1) === '{') { - pairs = val.substr(1, val.length - 2).split(','); - val = {}; - for (i = pairs.length; i--;) { - keyval = pairs[i].split(':', 2); - val[keyval[0].replace(/(^\s*)|(\s*$)/g, '')] = normalizeValue(keyval[1].replace(/(^\s*)|(\s*$)/g, '')); - } - } else { - val = normalizeValue(val); - } - this.tagValCache.key = val; - } - return val; - }, - - get: function (key, defaultval) { - var tagOption = this.getTagSetting(key), - result; - if (tagOption !== UNSET_OPTION) { - return tagOption; - } - return (result = this.mergedOptions[key]) === undefined ? defaultval : result; - } - }); - - - $.fn.sparkline._base = createClass({ - disabled: false, - - init: function (el, values, options, width, height) { - this.el = el; - this.$el = $(el); - this.values = values; - this.options = options; - this.width = width; - this.height = height; - this.currentRegion = undefined; - }, - - /** - * Setup the canvas - */ - initTarget: function () { - var interactive = !this.options.get('disableInteraction'); - if (!(this.target = this.$el.simpledraw(this.width, this.height, this.options.get('composite'), interactive))) { - this.disabled = true; - } else { - this.canvasWidth = this.target.pixelWidth; - this.canvasHeight = this.target.pixelHeight; - } - }, - - /** - * Actually render the chart to the canvas - */ - render: function () { - if (this.disabled) { - this.el.innerHTML = ''; - return false; - } - return true; - }, - - /** - * Return a region id for a given x/y co-ordinate - */ - getRegion: function (x, y) { - }, - - /** - * Highlight an item based on the moused-over x,y co-ordinate - */ - setRegionHighlight: function (el, x, y) { - var currentRegion = this.currentRegion, - highlightEnabled = !this.options.get('disableHighlight'), - newRegion; - if (x > this.canvasWidth || y > this.canvasHeight || x < 0 || y < 0) { - return null; - } - newRegion = this.getRegion(el, x, y); - if (currentRegion !== newRegion) { - if (currentRegion !== undefined && highlightEnabled) { - this.removeHighlight(); - } - this.currentRegion = newRegion; - if (newRegion !== undefined && highlightEnabled) { - this.renderHighlight(); - } - return true; - } - return false; - }, - - /** - * Reset any currently highlighted item - */ - clearRegionHighlight: function () { - if (this.currentRegion !== undefined) { - this.removeHighlight(); - this.currentRegion = undefined; - return true; - } - return false; - }, - - renderHighlight: function () { - this.changeHighlight(true); - }, - - removeHighlight: function () { - this.changeHighlight(false); - }, - - changeHighlight: function (highlight) {}, - - /** - * Fetch the HTML to display as a tooltip - */ - getCurrentRegionTooltip: function () { - var options = this.options, - header = '', - entries = [], - fields, formats, formatlen, fclass, text, i, - showFields, showFieldsKey, newFields, fv, - formatter, format, fieldlen, j; - if (this.currentRegion === undefined) { - return ''; - } - fields = this.getCurrentRegionFields(); - formatter = options.get('tooltipFormatter'); - if (formatter) { - return formatter(this, options, fields); - } - if (options.get('tooltipChartTitle')) { - header += '<div class="jqs jqstitle">' + options.get('tooltipChartTitle') + '</div>\n'; - } - formats = this.options.get('tooltipFormat'); - if (!formats) { - return ''; - } - if (!$.isArray(formats)) { - formats = [formats]; - } - if (!$.isArray(fields)) { - fields = [fields]; - } - showFields = this.options.get('tooltipFormatFieldlist'); - showFieldsKey = this.options.get('tooltipFormatFieldlistKey'); - if (showFields && showFieldsKey) { - // user-selected ordering of fields - newFields = []; - for (i = fields.length; i--;) { - fv = fields[i][showFieldsKey]; - if ((j = $.inArray(fv, showFields)) != -1) { - newFields[j] = fields[i]; - } - } - fields = newFields; - } - formatlen = formats.length; - fieldlen = fields.length; - for (i = 0; i < formatlen; i++) { - format = formats[i]; - if (typeof format === 'string') { - format = new SPFormat(format); - } - fclass = format.fclass || 'jqsfield'; - for (j = 0; j < fieldlen; j++) { - if (!fields[j].isNull || !options.get('tooltipSkipNull')) { - $.extend(fields[j], { - prefix: options.get('tooltipPrefix'), - suffix: options.get('tooltipSuffix') - }); - text = format.render(fields[j], options.get('tooltipValueLookups'), options); - entries.push('<div class="' + fclass + '">' + text + '</div>'); - } - } - } - if (entries.length) { - return header + entries.join('\n'); - } - return ''; - }, - - getCurrentRegionFields: function () {}, - - calcHighlightColor: function (color, options) { - var highlightColor = options.get('highlightColor'), - lighten = options.get('highlightLighten'), - parse, mult, rgbnew, i; - if (highlightColor) { - return highlightColor; - } - if (lighten) { - // extract RGB values - parse = /^#([0-9a-f])([0-9a-f])([0-9a-f])$/i.exec(color) || /^#([0-9a-f]{2})([0-9a-f]{2})([0-9a-f]{2})$/i.exec(color); - if (parse) { - rgbnew = []; - mult = color.length === 4 ? 16 : 1; - for (i = 0; i < 3; i++) { - rgbnew[i] = clipval(Math.round(parseInt(parse[i + 1], 16) * mult * lighten), 0, 255); - } - return 'rgb(' + rgbnew.join(',') + ')'; - } - - } - return color; - } - - }); - - barHighlightMixin = { - changeHighlight: function (highlight) { - var currentRegion = this.currentRegion, - target = this.target, - shapeids = this.regionShapes[currentRegion], - newShapes; - // will be null if the region value was null - if (shapeids) { - newShapes = this.renderRegion(currentRegion, highlight); - if ($.isArray(newShapes) || $.isArray(shapeids)) { - target.replaceWithShapes(shapeids, newShapes); - this.regionShapes[currentRegion] = $.map(newShapes, function (newShape) { - return newShape.id; - }); - } else { - target.replaceWithShape(shapeids, newShapes); - this.regionShapes[currentRegion] = newShapes.id; - } - } - }, - - render: function () { - var values = this.values, - target = this.target, - regionShapes = this.regionShapes, - shapes, ids, i, j; - - if (!this.cls._super.render.call(this)) { - return; - } - for (i = values.length; i--;) { - shapes = this.renderRegion(i); - if (shapes) { - if ($.isArray(shapes)) { - ids = []; - for (j = shapes.length; j--;) { - shapes[j].append(); - ids.push(shapes[j].id); - } - regionShapes[i] = ids; - } else { - shapes.append(); - regionShapes[i] = shapes.id; // store just the shapeid - } - } else { - // null value - regionShapes[i] = null; - } - } - target.render(); - } - }; - diff --git a/admin/bower_components/jquery-sparkline/src/chart-bar.js b/admin/bower_components/jquery-sparkline/src/chart-bar.js deleted file mode 100644 index de0e376..0000000 --- a/admin/bower_components/jquery-sparkline/src/chart-bar.js +++ /dev/null @@ -1,256 +0,0 @@ - /** - * Bar charts - */ - $.fn.sparkline.bar = bar = createClass($.fn.sparkline._base, barHighlightMixin, { - type: 'bar', - - init: function (el, values, options, width, height) { - var barWidth = parseInt(options.get('barWidth'), 10), - barSpacing = parseInt(options.get('barSpacing'), 10), - chartRangeMin = options.get('chartRangeMin'), - chartRangeMax = options.get('chartRangeMax'), - chartRangeClip = options.get('chartRangeClip'), - stackMin = Infinity, - stackMax = -Infinity, - isStackString, groupMin, groupMax, stackRanges, - numValues, i, vlen, range, zeroAxis, xaxisOffset, min, max, clipMin, clipMax, - stacked, vlist, j, slen, svals, val, yoffset, yMaxCalc, canvasHeightEf; - bar._super.init.call(this, el, values, options, width, height); - - // scan values to determine whether to stack bars - for (i = 0, vlen = values.length; i < vlen; i++) { - val = values[i]; - isStackString = typeof(val) === 'string' && val.indexOf(':') > -1; - if (isStackString || $.isArray(val)) { - stacked = true; - if (isStackString) { - val = values[i] = normalizeValues(val.split(':')); - } - val = remove(val, null); // min/max will treat null as zero - groupMin = Math.min.apply(Math, val); - groupMax = Math.max.apply(Math, val); - if (groupMin < stackMin) { - stackMin = groupMin; - } - if (groupMax > stackMax) { - stackMax = groupMax; - } - } - } - - this.stacked = stacked; - this.regionShapes = {}; - this.barWidth = barWidth; - this.barSpacing = barSpacing; - this.totalBarWidth = barWidth + barSpacing; - this.width = width = (values.length * barWidth) + ((values.length - 1) * barSpacing); - - this.initTarget(); - - if (chartRangeClip) { - clipMin = chartRangeMin === undefined ? -Infinity : chartRangeMin; - clipMax = chartRangeMax === undefined ? Infinity : chartRangeMax; - } - - numValues = []; - stackRanges = stacked ? [] : numValues; - var stackTotals = []; - var stackRangesNeg = []; - for (i = 0, vlen = values.length; i < vlen; i++) { - if (stacked) { - vlist = values[i]; - values[i] = svals = []; - stackTotals[i] = 0; - stackRanges[i] = stackRangesNeg[i] = 0; - for (j = 0, slen = vlist.length; j < slen; j++) { - val = svals[j] = chartRangeClip ? clipval(vlist[j], clipMin, clipMax) : vlist[j]; - if (val !== null) { - if (val > 0) { - stackTotals[i] += val; - } - if (stackMin < 0 && stackMax > 0) { - if (val < 0) { - stackRangesNeg[i] += Math.abs(val); - } else { - stackRanges[i] += val; - } - } else { - stackRanges[i] += Math.abs(val - (val < 0 ? stackMax : stackMin)); - } - numValues.push(val); - } - } - } else { - val = chartRangeClip ? clipval(values[i], clipMin, clipMax) : values[i]; - val = values[i] = normalizeValue(val); - if (val !== null) { - numValues.push(val); - } - } - } - this.max = max = Math.max.apply(Math, numValues); - this.min = min = Math.min.apply(Math, numValues); - this.stackMax = stackMax = stacked ? Math.max.apply(Math, stackTotals) : max; - this.stackMin = stackMin = stacked ? Math.min.apply(Math, numValues) : min; - - if (options.get('chartRangeMin') !== undefined && (options.get('chartRangeClip') || options.get('chartRangeMin') < min)) { - min = options.get('chartRangeMin'); - } - if (options.get('chartRangeMax') !== undefined && (options.get('chartRangeClip') || options.get('chartRangeMax') > max)) { - max = options.get('chartRangeMax'); - } - - this.zeroAxis = zeroAxis = options.get('zeroAxis', true); - if (min <= 0 && max >= 0 && zeroAxis) { - xaxisOffset = 0; - } else if (zeroAxis == false) { - xaxisOffset = min; - } else if (min > 0) { - xaxisOffset = min; - } else { - xaxisOffset = max; - } - this.xaxisOffset = xaxisOffset; - - range = stacked ? (Math.max.apply(Math, stackRanges) + Math.max.apply(Math, stackRangesNeg)) : max - min; - - // as we plot zero/min values a single pixel line, we add a pixel to all other - // values - Reduce the effective canvas size to suit - this.canvasHeightEf = (zeroAxis && min < 0) ? this.canvasHeight - 2 : this.canvasHeight - 1; - - if (min < xaxisOffset) { - yMaxCalc = (stacked && max >= 0) ? stackMax : max; - yoffset = (yMaxCalc - xaxisOffset) / range * this.canvasHeight; - if (yoffset !== Math.ceil(yoffset)) { - this.canvasHeightEf -= 2; - yoffset = Math.ceil(yoffset); - } - } else { - yoffset = this.canvasHeight; - } - this.yoffset = yoffset; - - if ($.isArray(options.get('colorMap'))) { - this.colorMapByIndex = options.get('colorMap'); - this.colorMapByValue = null; - } else { - this.colorMapByIndex = null; - this.colorMapByValue = options.get('colorMap'); - if (this.colorMapByValue && this.colorMapByValue.get === undefined) { - this.colorMapByValue = new RangeMap(this.colorMapByValue); - } - } - - this.range = range; - }, - - getRegion: function (el, x, y) { - var result = Math.floor(x / this.totalBarWidth); - return (result < 0 || result >= this.values.length) ? undefined : result; - }, - - getCurrentRegionFields: function () { - var currentRegion = this.currentRegion, - values = ensureArray(this.values[currentRegion]), - result = [], - value, i; - for (i = values.length; i--;) { - value = values[i]; - result.push({ - isNull: value === null, - value: value, - color: this.calcColor(i, value, currentRegion), - offset: currentRegion - }); - } - return result; - }, - - calcColor: function (stacknum, value, valuenum) { - var colorMapByIndex = this.colorMapByIndex, - colorMapByValue = this.colorMapByValue, - options = this.options, - color, newColor; - if (this.stacked) { - color = options.get('stackedBarColor'); - } else { - color = (value < 0) ? options.get('negBarColor') : options.get('barColor'); - } - if (value === 0 && options.get('zeroColor') !== undefined) { - color = options.get('zeroColor'); - } - if (colorMapByValue && (newColor = colorMapByValue.get(value))) { - color = newColor; - } else if (colorMapByIndex && colorMapByIndex.length > valuenum) { - color = colorMapByIndex[valuenum]; - } - return $.isArray(color) ? color[stacknum % color.length] : color; - }, - - /** - * Render bar(s) for a region - */ - renderRegion: function (valuenum, highlight) { - var vals = this.values[valuenum], - options = this.options, - xaxisOffset = this.xaxisOffset, - result = [], - range = this.range, - stacked = this.stacked, - target = this.target, - x = valuenum * this.totalBarWidth, - canvasHeightEf = this.canvasHeightEf, - yoffset = this.yoffset, - y, height, color, isNull, yoffsetNeg, i, valcount, val, minPlotted, allMin; - - vals = $.isArray(vals) ? vals : [vals]; - valcount = vals.length; - val = vals[0]; - isNull = all(null, vals); - allMin = all(xaxisOffset, vals, true); - - if (isNull) { - if (options.get('nullColor')) { - color = highlight ? options.get('nullColor') : this.calcHighlightColor(options.get('nullColor'), options); - y = (yoffset > 0) ? yoffset - 1 : yoffset; - return target.drawRect(x, y, this.barWidth - 1, 0, color, color); - } else { - return undefined; - } - } - yoffsetNeg = yoffset; - for (i = 0; i < valcount; i++) { - val = vals[i]; - - if (stacked && val === xaxisOffset) { - if (!allMin || minPlotted) { - continue; - } - minPlotted = true; - } - - if (range > 0) { - height = Math.floor(canvasHeightEf * ((Math.abs(val - xaxisOffset) / range))) + 1; - } else { - height = 1; - } - if (val < xaxisOffset || (val === xaxisOffset && yoffset === 0)) { - y = yoffsetNeg; - yoffsetNeg += height; - } else { - y = yoffset - height; - yoffset -= height; - } - color = this.calcColor(i, val, valuenum); - if (highlight) { - color = this.calcHighlightColor(color, options); - } - result.push(target.drawRect(x, y, this.barWidth - 1, height - 1, color, color)); - } - if (result.length === 1) { - return result[0]; - } - return result; - } - }); - diff --git a/admin/bower_components/jquery-sparkline/src/chart-box.js b/admin/bower_components/jquery-sparkline/src/chart-box.js deleted file mode 100644 index 8f0eb9f..0000000 --- a/admin/bower_components/jquery-sparkline/src/chart-box.js +++ /dev/null @@ -1,186 +0,0 @@ - /** - * Box plots - */ - $.fn.sparkline.box = box = createClass($.fn.sparkline._base, { - type: 'box', - - init: function (el, values, options, width, height) { - box._super.init.call(this, el, values, options, width, height); - this.values = $.map(values, Number); - this.width = options.get('width') === 'auto' ? '4.0em' : width; - this.initTarget(); - if (!this.values.length) { - this.disabled = 1; - } - }, - - /** - * Simulate a single region - */ - getRegion: function () { - return 1; - }, - - getCurrentRegionFields: function () { - var result = [ - { field: 'lq', value: this.quartiles[0] }, - { field: 'med', value: this.quartiles[1] }, - { field: 'uq', value: this.quartiles[2] } - ]; - if (this.loutlier !== undefined) { - result.push({ field: 'lo', value: this.loutlier}); - } - if (this.routlier !== undefined) { - result.push({ field: 'ro', value: this.routlier}); - } - if (this.lwhisker !== undefined) { - result.push({ field: 'lw', value: this.lwhisker}); - } - if (this.rwhisker !== undefined) { - result.push({ field: 'rw', value: this.rwhisker}); - } - return result; - }, - - render: function () { - var target = this.target, - values = this.values, - vlen = values.length, - options = this.options, - canvasWidth = this.canvasWidth, - canvasHeight = this.canvasHeight, - minValue = options.get('chartRangeMin') === undefined ? Math.min.apply(Math, values) : options.get('chartRangeMin'), - maxValue = options.get('chartRangeMax') === undefined ? Math.max.apply(Math, values) : options.get('chartRangeMax'), - canvasLeft = 0, - lwhisker, loutlier, iqr, q1, q2, q3, rwhisker, routlier, i, - size, unitSize; - - if (!box._super.render.call(this)) { - return; - } - - if (options.get('raw')) { - if (options.get('showOutliers') && values.length > 5) { - loutlier = values[0]; - lwhisker = values[1]; - q1 = values[2]; - q2 = values[3]; - q3 = values[4]; - rwhisker = values[5]; - routlier = values[6]; - } else { - lwhisker = values[0]; - q1 = values[1]; - q2 = values[2]; - q3 = values[3]; - rwhisker = values[4]; - } - } else { - values.sort(function (a, b) { return a - b; }); - q1 = quartile(values, 1); - q2 = quartile(values, 2); - q3 = quartile(values, 3); - iqr = q3 - q1; - if (options.get('showOutliers')) { - lwhisker = rwhisker = undefined; - for (i = 0; i < vlen; i++) { - if (lwhisker === undefined && values[i] > q1 - (iqr * options.get('outlierIQR'))) { - lwhisker = values[i]; - } - if (values[i] < q3 + (iqr * options.get('outlierIQR'))) { - rwhisker = values[i]; - } - } - loutlier = values[0]; - routlier = values[vlen - 1]; - } else { - lwhisker = values[0]; - rwhisker = values[vlen - 1]; - } - } - this.quartiles = [q1, q2, q3]; - this.lwhisker = lwhisker; - this.rwhisker = rwhisker; - this.loutlier = loutlier; - this.routlier = routlier; - - unitSize = canvasWidth / (maxValue - minValue + 1); - if (options.get('showOutliers')) { - canvasLeft = Math.ceil(options.get('spotRadius')); - canvasWidth -= 2 * Math.ceil(options.get('spotRadius')); - unitSize = canvasWidth / (maxValue - minValue + 1); - if (loutlier < lwhisker) { - target.drawCircle((loutlier - minValue) * unitSize + canvasLeft, - canvasHeight / 2, - options.get('spotRadius'), - options.get('outlierLineColor'), - options.get('outlierFillColor')).append(); - } - if (routlier > rwhisker) { - target.drawCircle((routlier - minValue) * unitSize + canvasLeft, - canvasHeight / 2, - options.get('spotRadius'), - options.get('outlierLineColor'), - options.get('outlierFillColor')).append(); - } - } - - // box - target.drawRect( - Math.round((q1 - minValue) * unitSize + canvasLeft), - Math.round(canvasHeight * 0.1), - Math.round((q3 - q1) * unitSize), - Math.round(canvasHeight * 0.8), - options.get('boxLineColor'), - options.get('boxFillColor')).append(); - // left whisker - target.drawLine( - Math.round((lwhisker - minValue) * unitSize + canvasLeft), - Math.round(canvasHeight / 2), - Math.round((q1 - minValue) * unitSize + canvasLeft), - Math.round(canvasHeight / 2), - options.get('lineColor')).append(); - target.drawLine( - Math.round((lwhisker - minValue) * unitSize + canvasLeft), - Math.round(canvasHeight / 4), - Math.round((lwhisker - minValue) * unitSize + canvasLeft), - Math.round(canvasHeight - canvasHeight / 4), - options.get('whiskerColor')).append(); - // right whisker - target.drawLine(Math.round((rwhisker - minValue) * unitSize + canvasLeft), - Math.round(canvasHeight / 2), - Math.round((q3 - minValue) * unitSize + canvasLeft), - Math.round(canvasHeight / 2), - options.get('lineColor')).append(); - target.drawLine( - Math.round((rwhisker - minValue) * unitSize + canvasLeft), - Math.round(canvasHeight / 4), - Math.round((rwhisker - minValue) * unitSize + canvasLeft), - Math.round(canvasHeight - canvasHeight / 4), - options.get('whiskerColor')).append(); - // median line - target.drawLine( - Math.round((q2 - minValue) * unitSize + canvasLeft), - Math.round(canvasHeight * 0.1), - Math.round((q2 - minValue) * unitSize + canvasLeft), - Math.round(canvasHeight * 0.9), - options.get('medianColor')).append(); - if (options.get('target')) { - size = Math.ceil(options.get('spotRadius')); - target.drawLine( - Math.round((options.get('target') - minValue) * unitSize + canvasLeft), - Math.round((canvasHeight / 2) - size), - Math.round((options.get('target') - minValue) * unitSize + canvasLeft), - Math.round((canvasHeight / 2) + size), - options.get('targetColor')).append(); - target.drawLine( - Math.round((options.get('target') - minValue) * unitSize + canvasLeft - size), - Math.round(canvasHeight / 2), - Math.round((options.get('target') - minValue) * unitSize + canvasLeft + size), - Math.round(canvasHeight / 2), - options.get('targetColor')).append(); - } - target.render(); - } - }); - diff --git a/admin/bower_components/jquery-sparkline/src/chart-bullet.js b/admin/bower_components/jquery-sparkline/src/chart-bullet.js deleted file mode 100644 index 8e17fae..0000000 --- a/admin/bower_components/jquery-sparkline/src/chart-bullet.js +++ /dev/null @@ -1,131 +0,0 @@ - /** - * Bullet charts - */ - $.fn.sparkline.bullet = bullet = createClass($.fn.sparkline._base, { - type: 'bullet', - - init: function (el, values, options, width, height) { - var min, max, vals; - bullet._super.init.call(this, el, values, options, width, height); - - // values: target, performance, range1, range2, range3 - this.values = values = normalizeValues(values); - // target or performance could be null - vals = values.slice(); - vals[0] = vals[0] === null ? vals[2] : vals[0]; - vals[1] = values[1] === null ? vals[2] : vals[1]; - min = Math.min.apply(Math, values); - max = Math.max.apply(Math, values); - if (options.get('base') === undefined) { - min = min < 0 ? min : 0; - } else { - min = options.get('base'); - } - this.min = min; - this.max = max; - this.range = max - min; - this.shapes = {}; - this.valueShapes = {}; - this.regiondata = {}; - this.width = width = options.get('width') === 'auto' ? '4.0em' : width; - this.target = this.$el.simpledraw(width, height, options.get('composite')); - if (!values.length) { - this.disabled = true; - } - this.initTarget(); - }, - - getRegion: function (el, x, y) { - var shapeid = this.target.getShapeAt(el, x, y); - return (shapeid !== undefined && this.shapes[shapeid] !== undefined) ? this.shapes[shapeid] : undefined; - }, - - getCurrentRegionFields: function () { - var currentRegion = this.currentRegion; - return { - fieldkey: currentRegion.substr(0, 1), - value: this.values[currentRegion.substr(1)], - region: currentRegion - }; - }, - - changeHighlight: function (highlight) { - var currentRegion = this.currentRegion, - shapeid = this.valueShapes[currentRegion], - shape; - delete this.shapes[shapeid]; - switch (currentRegion.substr(0, 1)) { - case 'r': - shape = this.renderRange(currentRegion.substr(1), highlight); - break; - case 'p': - shape = this.renderPerformance(highlight); - break; - case 't': - shape = this.renderTarget(highlight); - break; - } - this.valueShapes[currentRegion] = shape.id; - this.shapes[shape.id] = currentRegion; - this.target.replaceWithShape(shapeid, shape); - }, - - renderRange: function (rn, highlight) { - var rangeval = this.values[rn], - rangewidth = Math.round(this.canvasWidth * ((rangeval - this.min) / this.range)), - color = this.options.get('rangeColors')[rn - 2]; - if (highlight) { - color = this.calcHighlightColor(color, this.options); - } - return this.target.drawRect(0, 0, rangewidth - 1, this.canvasHeight - 1, color, color); - }, - - renderPerformance: function (highlight) { - var perfval = this.values[1], - perfwidth = Math.round(this.canvasWidth * ((perfval - this.min) / this.range)), - color = this.options.get('performanceColor'); - if (highlight) { - color = this.calcHighlightColor(color, this.options); - } - return this.target.drawRect(0, Math.round(this.canvasHeight * 0.3), perfwidth - 1, - Math.round(this.canvasHeight * 0.4) - 1, color, color); - }, - - renderTarget: function (highlight) { - var targetval = this.values[0], - x = Math.round(this.canvasWidth * ((targetval - this.min) / this.range) - (this.options.get('targetWidth') / 2)), - targettop = Math.round(this.canvasHeight * 0.10), - targetheight = this.canvasHeight - (targettop * 2), - color = this.options.get('targetColor'); - if (highlight) { - color = this.calcHighlightColor(color, this.options); - } - return this.target.drawRect(x, targettop, this.options.get('targetWidth') - 1, targetheight - 1, color, color); - }, - - render: function () { - var vlen = this.values.length, - target = this.target, - i, shape; - if (!bullet._super.render.call(this)) { - return; - } - for (i = 2; i < vlen; i++) { - shape = this.renderRange(i).append(); - this.shapes[shape.id] = 'r' + i; - this.valueShapes['r' + i] = shape.id; - } - if (this.values[1] !== null) { - shape = this.renderPerformance().append(); - this.shapes[shape.id] = 'p1'; - this.valueShapes.p1 = shape.id; - } - if (this.values[0] !== null) { - shape = this.renderTarget().append(); - this.shapes[shape.id] = 't0'; - this.valueShapes.t0 = shape.id; - } - target.render(); - } - }); - diff --git a/admin/bower_components/jquery-sparkline/src/chart-discrete.js b/admin/bower_components/jquery-sparkline/src/chart-discrete.js deleted file mode 100644 index 5335a14..0000000 --- a/admin/bower_components/jquery-sparkline/src/chart-discrete.js +++ /dev/null @@ -1,66 +0,0 @@ - /** - * Discrete charts - */ - $.fn.sparkline.discrete = discrete = createClass($.fn.sparkline._base, barHighlightMixin, { - type: 'discrete', - - init: function (el, values, options, width, height) { - discrete._super.init.call(this, el, values, options, width, height); - - this.regionShapes = {}; - this.values = values = $.map(values, Number); - this.min = Math.min.apply(Math, values); - this.max = Math.max.apply(Math, values); - this.range = this.max - this.min; - this.width = width = options.get('width') === 'auto' ? values.length * 2 : this.width; - this.interval = Math.floor(width / values.length); - this.itemWidth = width / values.length; - if (options.get('chartRangeMin') !== undefined && (options.get('chartRangeClip') || options.get('chartRangeMin') < this.min)) { - this.min = options.get('chartRangeMin'); - } - if (options.get('chartRangeMax') !== undefined && (options.get('chartRangeClip') || options.get('chartRangeMax') > this.max)) { - this.max = options.get('chartRangeMax'); - } - this.initTarget(); - if (this.target) { - this.lineHeight = options.get('lineHeight') === 'auto' ? Math.round(this.canvasHeight * 0.3) : options.get('lineHeight'); - } - }, - - getRegion: function (el, x, y) { - return Math.floor(x / this.itemWidth); - }, - - getCurrentRegionFields: function () { - var currentRegion = this.currentRegion; - return { - isNull: this.values[currentRegion] === undefined, - value: this.values[currentRegion], - offset: currentRegion - }; - }, - - renderRegion: function (valuenum, highlight) { - var values = this.values, - options = this.options, - min = this.min, - max = this.max, - range = this.range, - interval = this.interval, - target = this.target, - canvasHeight = this.canvasHeight, - lineHeight = this.lineHeight, - pheight = canvasHeight - lineHeight, - ytop, val, color, x; - - val = clipval(values[valuenum], min, max); - x = valuenum * interval; - ytop = Math.round(pheight - pheight * ((val - min) / range)); - color = (options.get('thresholdColor') && val < options.get('thresholdValue')) ? options.get('thresholdColor') : options.get('lineColor'); - if (highlight) { - color = this.calcHighlightColor(color, options); - } - return target.drawLine(x, ytop, x, ytop + lineHeight, color); - } - }); - diff --git a/admin/bower_components/jquery-sparkline/src/chart-line.js b/admin/bower_components/jquery-sparkline/src/chart-line.js deleted file mode 100644 index bb1c7ef..0000000 --- a/admin/bower_components/jquery-sparkline/src/chart-line.js +++ /dev/null @@ -1,350 +0,0 @@ - /** - * Line charts - */ - $.fn.sparkline.line = line = createClass($.fn.sparkline._base, { - type: 'line', - - init: function (el, values, options, width, height) { - line._super.init.call(this, el, values, options, width, height); - this.vertices = []; - this.regionMap = []; - this.xvalues = []; - this.yvalues = []; - this.yminmax = []; - this.hightlightSpotId = null; - this.lastShapeId = null; - this.initTarget(); - }, - - getRegion: function (el, x, y) { - var i, - regionMap = this.regionMap; // maps regions to value positions - for (i = regionMap.length; i--;) { - if (regionMap[i] !== null && x >= regionMap[i][0] && x <= regionMap[i][1]) { - return regionMap[i][2]; - } - } - return undefined; - }, - - getCurrentRegionFields: function () { - var currentRegion = this.currentRegion; - return { - isNull: this.yvalues[currentRegion] === null, - x: this.xvalues[currentRegion], - y: this.yvalues[currentRegion], - color: this.options.get('lineColor'), - fillColor: this.options.get('fillColor'), - offset: currentRegion - }; - }, - - renderHighlight: function () { - var currentRegion = this.currentRegion, - target = this.target, - vertex = this.vertices[currentRegion], - options = this.options, - spotRadius = options.get('spotRadius'), - highlightSpotColor = options.get('highlightSpotColor'), - highlightLineColor = options.get('highlightLineColor'), - highlightSpot, highlightLine; - - if (!vertex) { - return; - } - if (spotRadius && highlightSpotColor) { - highlightSpot = target.drawCircle(vertex[0], vertex[1], - spotRadius, undefined, highlightSpotColor); - this.highlightSpotId = highlightSpot.id; - target.insertAfterShape(this.lastShapeId, highlightSpot); - } - if (highlightLineColor) { - highlightLine = target.drawLine(vertex[0], this.canvasTop, vertex[0], - this.canvasTop + this.canvasHeight, highlightLineColor); - this.highlightLineId = highlightLine.id; - target.insertAfterShape(this.lastShapeId, highlightLine); - } - }, - - removeHighlight: function () { - var target = this.target; - if (this.highlightSpotId) { - target.removeShapeId(this.highlightSpotId); - this.highlightSpotId = null; - } - if (this.highlightLineId) { - target.removeShapeId(this.highlightLineId); - this.highlightLineId = null; - } - }, - - scanValues: function () { - var values = this.values, - valcount = values.length, - xvalues = this.xvalues, - yvalues = this.yvalues, - yminmax = this.yminmax, - i, val, isStr, isArray, sp; - for (i = 0; i < valcount; i++) { - val = values[i]; - isStr = typeof(values[i]) === 'string'; - isArray = typeof(values[i]) === 'object' && values[i] instanceof Array; - sp = isStr && values[i].split(':'); - if (isStr && sp.length === 2) { // x:y - xvalues.push(Number(sp[0])); - yvalues.push(Number(sp[1])); - yminmax.push(Number(sp[1])); - } else if (isArray) { - xvalues.push(val[0]); - yvalues.push(val[1]); - yminmax.push(val[1]); - } else { - xvalues.push(i); - if (values[i] === null || values[i] === 'null') { - yvalues.push(null); - } else { - yvalues.push(Number(val)); - yminmax.push(Number(val)); - } - } - } - if (this.options.get('xvalues')) { - xvalues = this.options.get('xvalues'); - } - - this.maxy = this.maxyorg = Math.max.apply(Math, yminmax); - this.miny = this.minyorg = Math.min.apply(Math, yminmax); - - this.maxx = Math.max.apply(Math, xvalues); - this.minx = Math.min.apply(Math, xvalues); - - this.xvalues = xvalues; - this.yvalues = yvalues; - this.yminmax = yminmax; - - }, - - processRangeOptions: function () { - var options = this.options, - normalRangeMin = options.get('normalRangeMin'), - normalRangeMax = options.get('normalRangeMax'); - - if (normalRangeMin !== undefined) { - if (normalRangeMin < this.miny) { - this.miny = normalRangeMin; - } - if (normalRangeMax > this.maxy) { - this.maxy = normalRangeMax; - } - } - if (options.get('chartRangeMin') !== undefined && (options.get('chartRangeClip') || options.get('chartRangeMin') < this.miny)) { - this.miny = options.get('chartRangeMin'); - } - if (options.get('chartRangeMax') !== undefined && (options.get('chartRangeClip') || options.get('chartRangeMax') > this.maxy)) { - this.maxy = options.get('chartRangeMax'); - } - if (options.get('chartRangeMinX') !== undefined && (options.get('chartRangeClipX') || options.get('chartRangeMinX') < this.minx)) { - this.minx = options.get('chartRangeMinX'); - } - if (options.get('chartRangeMaxX') !== undefined && (options.get('chartRangeClipX') || options.get('chartRangeMaxX') > this.maxx)) { - this.maxx = options.get('chartRangeMaxX'); - } - - }, - - drawNormalRange: function (canvasLeft, canvasTop, canvasHeight, canvasWidth, rangey) { - var normalRangeMin = this.options.get('normalRangeMin'), - normalRangeMax = this.options.get('normalRangeMax'), - ytop = canvasTop + Math.round(canvasHeight - (canvasHeight * ((normalRangeMax - this.miny) / rangey))), - height = Math.round((canvasHeight * (normalRangeMax - normalRangeMin)) / rangey); - this.target.drawRect(canvasLeft, ytop, canvasWidth, height, undefined, this.options.get('normalRangeColor')).append(); - }, - - render: function () { - var options = this.options, - target = this.target, - canvasWidth = this.canvasWidth, - canvasHeight = this.canvasHeight, - vertices = this.vertices, - spotRadius = options.get('spotRadius'), - regionMap = this.regionMap, - rangex, rangey, yvallast, - canvasTop, canvasLeft, - vertex, path, paths, x, y, xnext, xpos, xposnext, - last, next, yvalcount, lineShapes, fillShapes, plen, - valueSpots, hlSpotsEnabled, color, xvalues, yvalues, i; - - if (!line._super.render.call(this)) { - return; - } - - this.scanValues(); - this.processRangeOptions(); - - xvalues = this.xvalues; - yvalues = this.yvalues; - - if (!this.yminmax.length || this.yvalues.length < 2) { - // empty or all null valuess - return; - } - - canvasTop = canvasLeft = 0; - - rangex = this.maxx - this.minx === 0 ? 1 : this.maxx - this.minx; - rangey = this.maxy - this.miny === 0 ? 1 : this.maxy - this.miny; - yvallast = this.yvalues.length - 1; - - if (spotRadius && (canvasWidth < (spotRadius * 4) || canvasHeight < (spotRadius * 4))) { - spotRadius = 0; - } - if (spotRadius) { - // adjust the canvas size as required so that spots will fit - hlSpotsEnabled = options.get('highlightSpotColor') && !options.get('disableInteraction'); - if (hlSpotsEnabled || options.get('minSpotColor') || (options.get('spotColor') && yvalues[yvallast] === this.miny)) { - canvasHeight -= Math.ceil(spotRadius); - } - if (hlSpotsEnabled || options.get('maxSpotColor') || (options.get('spotColor') && yvalues[yvallast] === this.maxy)) { - canvasHeight -= Math.ceil(spotRadius); - canvasTop += Math.ceil(spotRadius); - } - if (hlSpotsEnabled || - ((options.get('minSpotColor') || options.get('maxSpotColor')) && (yvalues[0] === this.miny || yvalues[0] === this.maxy))) { - canvasLeft += Math.ceil(spotRadius); - canvasWidth -= Math.ceil(spotRadius); - } - if (hlSpotsEnabled || options.get('spotColor') || - (options.get('minSpotColor') || options.get('maxSpotColor') && - (yvalues[yvallast] === this.miny || yvalues[yvallast] === this.maxy))) { - canvasWidth -= Math.ceil(spotRadius); - } - } - - - canvasHeight--; - - if (options.get('normalRangeMin') !== undefined && !options.get('drawNormalOnTop')) { - this.drawNormalRange(canvasLeft, canvasTop, canvasHeight, canvasWidth, rangey); - } - - path = []; - paths = [path]; - last = next = null; - yvalcount = yvalues.length; - for (i = 0; i < yvalcount; i++) { - x = xvalues[i]; - xnext = xvalues[i + 1]; - y = yvalues[i]; - xpos = canvasLeft + Math.round((x - this.minx) * (canvasWidth / rangex)); - xposnext = i < yvalcount - 1 ? canvasLeft + Math.round((xnext - this.minx) * (canvasWidth / rangex)) : canvasWidth; - next = xpos + ((xposnext - xpos) / 2); - regionMap[i] = [last || 0, next, i]; - last = next; - if (y === null) { - if (i) { - if (yvalues[i - 1] !== null) { - path = []; - paths.push(path); - } - vertices.push(null); - } - } else { - if (y < this.miny) { - y = this.miny; - } - if (y > this.maxy) { - y = this.maxy; - } - if (!path.length) { - // previous value was null - path.push([xpos, canvasTop + canvasHeight]); - } - vertex = [xpos, canvasTop + Math.round(canvasHeight - (canvasHeight * ((y - this.miny) / rangey)))]; - path.push(vertex); - vertices.push(vertex); - } - } - - lineShapes = []; - fillShapes = []; - plen = paths.length; - for (i = 0; i < plen; i++) { - path = paths[i]; - if (path.length) { - if (options.get('fillColor')) { - path.push([path[path.length - 1][0], (canvasTop + canvasHeight)]); - fillShapes.push(path.slice(0)); - path.pop(); - } - // if there's only a single point in this path, then we want to display it - // as a vertical line which means we keep path[0] as is - if (path.length > 2) { - // else we want the first value - path[0] = [path[0][0], path[1][1]]; - } - lineShapes.push(path); - } - } - - // draw the fill first, then optionally the normal range, then the line on top of that - plen = fillShapes.length; - for (i = 0; i < plen; i++) { - target.drawShape(fillShapes[i], - options.get('fillColor'), options.get('fillColor')).append(); - } - - if (options.get('normalRangeMin') !== undefined && options.get('drawNormalOnTop')) { - this.drawNormalRange(canvasLeft, canvasTop, canvasHeight, canvasWidth, rangey); - } - - plen = lineShapes.length; - for (i = 0; i < plen; i++) { - target.drawShape(lineShapes[i], options.get('lineColor'), undefined, - options.get('lineWidth')).append(); - } - - if (spotRadius && options.get('valueSpots')) { - valueSpots = options.get('valueSpots'); - if (valueSpots.get === undefined) { - valueSpots = new RangeMap(valueSpots); - } - for (i = 0; i < yvalcount; i++) { - color = valueSpots.get(yvalues[i]); - if (color) { - target.drawCircle(canvasLeft + Math.round((xvalues[i] - this.minx) * (canvasWidth / rangex)), - canvasTop + Math.round(canvasHeight - (canvasHeight * ((yvalues[i] - this.miny) / rangey))), - spotRadius, undefined, - color).append(); - } - } - - } - if (spotRadius && options.get('spotColor') && yvalues[yvallast] !== null) { - target.drawCircle(canvasLeft + Math.round((xvalues[xvalues.length - 1] - this.minx) * (canvasWidth / rangex)), - canvasTop + Math.round(canvasHeight - (canvasHeight * ((yvalues[yvallast] - this.miny) / rangey))), - spotRadius, undefined, - options.get('spotColor')).append(); - } - if (this.maxy !== this.minyorg) { - if (spotRadius && options.get('minSpotColor')) { - x = xvalues[$.inArray(this.minyorg, yvalues)]; - target.drawCircle(canvasLeft + Math.round((x - this.minx) * (canvasWidth / rangex)), - canvasTop + Math.round(canvasHeight - (canvasHeight * ((this.minyorg - this.miny) / rangey))), - spotRadius, undefined, - options.get('minSpotColor')).append(); - } - if (spotRadius && options.get('maxSpotColor')) { - x = xvalues[$.inArray(this.maxyorg, yvalues)]; - target.drawCircle(canvasLeft + Math.round((x - this.minx) * (canvasWidth / rangex)), - canvasTop + Math.round(canvasHeight - (canvasHeight * ((this.maxyorg - this.miny) / rangey))), - spotRadius, undefined, - options.get('maxSpotColor')).append(); - } - } - - this.lastShapeId = target.getLastShapeId(); - this.canvasTop = canvasTop; - target.render(); - } - }); - diff --git a/admin/bower_components/jquery-sparkline/src/chart-pie.js b/admin/bower_components/jquery-sparkline/src/chart-pie.js deleted file mode 100644 index c04beca..0000000 --- a/admin/bower_components/jquery-sparkline/src/chart-pie.js +++ /dev/null @@ -1,112 +0,0 @@ - /** - * Pie charts - */ - $.fn.sparkline.pie = pie = createClass($.fn.sparkline._base, { - type: 'pie', - - init: function (el, values, options, width, height) { - var total = 0, i; - - pie._super.init.call(this, el, values, options, width, height); - - this.shapes = {}; // map shape ids to value offsets - this.valueShapes = {}; // maps value offsets to shape ids - this.values = values = $.map(values, Number); - - if (options.get('width') === 'auto') { - this.width = this.height; - } - - if (values.length > 0) { - for (i = values.length; i--;) { - total += values[i]; - } - } - this.total = total; - this.initTarget(); - this.radius = Math.floor(Math.min(this.canvasWidth, this.canvasHeight) / 2); - }, - - getRegion: function (el, x, y) { - var shapeid = this.target.getShapeAt(el, x, y); - return (shapeid !== undefined && this.shapes[shapeid] !== undefined) ? this.shapes[shapeid] : undefined; - }, - - getCurrentRegionFields: function () { - var currentRegion = this.currentRegion; - return { - isNull: this.values[currentRegion] === undefined, - value: this.values[currentRegion], - percent: this.values[currentRegion] / this.total * 100, - color: this.options.get('sliceColors')[currentRegion % this.options.get('sliceColors').length], - offset: currentRegion - }; - }, - - changeHighlight: function (highlight) { - var currentRegion = this.currentRegion, - newslice = this.renderSlice(currentRegion, highlight), - shapeid = this.valueShapes[currentRegion]; - delete this.shapes[shapeid]; - this.target.replaceWithShape(shapeid, newslice); - this.valueShapes[currentRegion] = newslice.id; - this.shapes[newslice.id] = currentRegion; - }, - - renderSlice: function (valuenum, highlight) { - var target = this.target, - options = this.options, - radius = this.radius, - borderWidth = options.get('borderWidth'), - offset = options.get('offset'), - circle = 2 * Math.PI, - values = this.values, - total = this.total, - next = offset ? (2*Math.PI)*(offset/360) : 0, - start, end, i, vlen, color; - - vlen = values.length; - for (i = 0; i < vlen; i++) { - start = next; - end = next; - if (total > 0) { // avoid divide by zero - end = next + (circle * (values[i] / total)); - } - if (valuenum === i) { - color = options.get('sliceColors')[i % options.get('sliceColors').length]; - if (highlight) { - color = this.calcHighlightColor(color, options); - } - - return target.drawPieSlice(radius, radius, radius - borderWidth, start, end, undefined, color); - } - next = end; - } - }, - - render: function () { - var target = this.target, - values = this.values, - options = this.options, - radius = this.radius, - borderWidth = options.get('borderWidth'), - shape, i; - - if (!pie._super.render.call(this)) { - return; - } - if (borderWidth) { - target.drawCircle(radius, radius, Math.floor(radius - (borderWidth / 2)), - options.get('borderColor'), undefined, borderWidth).append(); - } - for (i = values.length; i--;) { - if (values[i]) { // don't render zero values - shape = this.renderSlice(i).append(); - this.valueShapes[i] = shape.id; // store just the shapeid - this.shapes[shape.id] = i; - } - } - target.render(); - } - }); - diff --git a/admin/bower_components/jquery-sparkline/src/chart-tristate.js b/admin/bower_components/jquery-sparkline/src/chart-tristate.js deleted file mode 100644 index 6b2771b..0000000 --- a/admin/bower_components/jquery-sparkline/src/chart-tristate.js +++ /dev/null @@ -1,98 +0,0 @@ - /** - * Tristate charts - */ - $.fn.sparkline.tristate = tristate = createClass($.fn.sparkline._base, barHighlightMixin, { - type: 'tristate', - - init: function (el, values, options, width, height) { - var barWidth = parseInt(options.get('barWidth'), 10), - barSpacing = parseInt(options.get('barSpacing'), 10); - tristate._super.init.call(this, el, values, options, width, height); - - this.regionShapes = {}; - this.barWidth = barWidth; - this.barSpacing = barSpacing; - this.totalBarWidth = barWidth + barSpacing; - this.values = $.map(values, Number); - this.width = width = (values.length * barWidth) + ((values.length - 1) * barSpacing); - - if ($.isArray(options.get('colorMap'))) { - this.colorMapByIndex = options.get('colorMap'); - this.colorMapByValue = null; - } else { - this.colorMapByIndex = null; - this.colorMapByValue = options.get('colorMap'); - if (this.colorMapByValue && this.colorMapByValue.get === undefined) { - this.colorMapByValue = new RangeMap(this.colorMapByValue); - } - } - this.initTarget(); - }, - - getRegion: function (el, x, y) { - return Math.floor(x / this.totalBarWidth); - }, - - getCurrentRegionFields: function () { - var currentRegion = this.currentRegion; - return { - isNull: this.values[currentRegion] === undefined, - value: this.values[currentRegion], - color: this.calcColor(this.values[currentRegion], currentRegion), - offset: currentRegion - }; - }, - - calcColor: function (value, valuenum) { - var values = this.values, - options = this.options, - colorMapByIndex = this.colorMapByIndex, - colorMapByValue = this.colorMapByValue, - color, newColor; - - if (colorMapByValue && (newColor = colorMapByValue.get(value))) { - color = newColor; - } else if (colorMapByIndex && colorMapByIndex.length > valuenum) { - color = colorMapByIndex[valuenum]; - } else if (values[valuenum] < 0) { - color = options.get('negBarColor'); - } else if (values[valuenum] > 0) { - color = options.get('posBarColor'); - } else { - color = options.get('zeroBarColor'); - } - return color; - }, - - renderRegion: function (valuenum, highlight) { - var values = this.values, - options = this.options, - target = this.target, - canvasHeight, height, halfHeight, - x, y, color; - - canvasHeight = target.pixelHeight; - halfHeight = Math.round(canvasHeight / 2); - - x = valuenum * this.totalBarWidth; - if (values[valuenum] < 0) { - y = halfHeight; - height = halfHeight - 1; - } else if (values[valuenum] > 0) { - y = 0; - height = halfHeight - 1; - } else { - y = halfHeight - 1; - height = 2; - } - color = this.calcColor(values[valuenum], valuenum); - if (color === null) { - return; - } - if (highlight) { - color = this.calcHighlightColor(color, options); - } - return target.drawRect(x, y, this.barWidth - 1, height - 1, color, color); - } - }); - diff --git a/admin/bower_components/jquery-sparkline/src/defaults.js b/admin/bower_components/jquery-sparkline/src/defaults.js deleted file mode 100644 index d3848a2..0000000 --- a/admin/bower_components/jquery-sparkline/src/defaults.js +++ /dev/null @@ -1,156 +0,0 @@ - /** - * Default configuration settings - */ - getDefaults = function () { - return { - // Settings common to most/all chart types - common: { - type: 'line', - lineColor: '#00f', - fillColor: '#cdf', - defaultPixelsPerValue: 3, - width: 'auto', - height: 'auto', - composite: false, - tagValuesAttribute: 'values', - tagOptionsPrefix: 'spark', - enableTagOptions: false, - enableHighlight: true, - highlightLighten: 1.4, - tooltipSkipNull: true, - tooltipPrefix: '', - tooltipSuffix: '', - disableHiddenCheck: false, - numberFormatter: false, - numberDigitGroupCount: 3, - numberDigitGroupSep: ',', - numberDecimalMark: '.', - disableTooltips: false, - disableInteraction: false - }, - // Defaults for line charts - line: { - spotColor: '#f80', - highlightSpotColor: '#5f5', - highlightLineColor: '#f22', - spotRadius: 1.5, - minSpotColor: '#f80', - maxSpotColor: '#f80', - lineWidth: 1, - normalRangeMin: undefined, - normalRangeMax: undefined, - normalRangeColor: '#ccc', - drawNormalOnTop: false, - chartRangeMin: undefined, - chartRangeMax: undefined, - chartRangeMinX: undefined, - chartRangeMaxX: undefined, - tooltipFormat: new SPFormat('<span style="color: {{color}}">&#9679;</span> {{prefix}}{{y}}{{suffix}}') - }, - // Defaults for bar charts - bar: { - barColor: '#3366cc', - negBarColor: '#f44', - stackedBarColor: ['#3366cc', '#dc3912', '#ff9900', '#109618', '#66aa00', - '#dd4477', '#0099c6', '#990099'], - zeroColor: undefined, - nullColor: undefined, - zeroAxis: true, - barWidth: 4, - barSpacing: 1, - chartRangeMax: undefined, - chartRangeMin: undefined, - chartRangeClip: false, - colorMap: undefined, - tooltipFormat: new SPFormat('<span style="color: {{color}}">&#9679;</span> {{prefix}}{{value}}{{suffix}}') - }, - // Defaults for tristate charts - tristate: { - barWidth: 4, - barSpacing: 1, - posBarColor: '#6f6', - negBarColor: '#f44', - zeroBarColor: '#999', - colorMap: {}, - tooltipFormat: new SPFormat('<span style="color: {{color}}">&#9679;</span> {{value:map}}'), - tooltipValueLookups: { map: { '-1': 'Loss', '0': 'Draw', '1': 'Win' } } - }, - // Defaults for discrete charts - discrete: { - lineHeight: 'auto', - thresholdColor: undefined, - thresholdValue: 0, - chartRangeMax: undefined, - chartRangeMin: undefined, - chartRangeClip: false, - tooltipFormat: new SPFormat('{{prefix}}{{value}}{{suffix}}') - }, - // Defaults for bullet charts - bullet: { - targetColor: '#f33', - targetWidth: 3, // width of the target bar in pixels - performanceColor: '#33f', - rangeColors: ['#d3dafe', '#a8b6ff', '#7f94ff'], - base: undefined, // set this to a number to change the base start number - tooltipFormat: new SPFormat('{{fieldkey:fields}} - {{value}}'), - tooltipValueLookups: { fields: {r: 'Range', p: 'Performance', t: 'Target'} } - }, - // Defaults for pie charts - pie: { - offset: 0, - sliceColors: ['#3366cc', '#dc3912', '#ff9900', '#109618', '#66aa00', - '#dd4477', '#0099c6', '#990099'], - borderWidth: 0, - borderColor: '#000', - tooltipFormat: new SPFormat('<span style="color: {{color}}">&#9679;</span> {{value}} ({{percent.1}}%)') - }, - // Defaults for box plots - box: { - raw: false, - boxLineColor: '#000', - boxFillColor: '#cdf', - whiskerColor: '#000', - outlierLineColor: '#333', - outlierFillColor: '#fff', - medianColor: '#f00', - showOutliers: true, - outlierIQR: 1.5, - spotRadius: 1.5, - target: undefined, - targetColor: '#4a2', - chartRangeMax: undefined, - chartRangeMin: undefined, - tooltipFormat: new SPFormat('{{field:fields}}: {{value}}'), - tooltipFormatFieldlistKey: 'field', - tooltipValueLookups: { fields: { lq: 'Lower Quartile', med: 'Median', - uq: 'Upper Quartile', lo: 'Left Outlier', ro: 'Right Outlier', - lw: 'Left Whisker', rw: 'Right Whisker'} } - } - }; - }; - - // You can have tooltips use a css class other than jqstooltip by specifying tooltipClassname - defaultStyles = '.jqstooltip { ' + - 'position: absolute;' + - 'left: 0px;' + - 'top: 0px;' + - 'visibility: hidden;' + - 'background: rgb(0, 0, 0) transparent;' + - 'background-color: rgba(0,0,0,0.6);' + - 'filter:progid:DXImageTransform.Microsoft.gradient(startColorstr=#99000000, endColorstr=#99000000);' + - '-ms-filter: "progid:DXImageTransform.Microsoft.gradient(startColorstr=#99000000, endColorstr=#99000000)";' + - 'color: white;' + - 'font: 10px arial, san serif;' + - 'text-align: left;' + - 'white-space: nowrap;' + - 'padding: 5px;' + - 'border: 1px solid white;' + - 'box-sizing: content-box;' + - 'z-index: 10000;' + - '}' + - '.jqsfield { ' + - 'color: white;' + - 'font: 10px arial, san serif;' + - 'text-align: left;' + - '}'; - diff --git a/admin/bower_components/jquery-sparkline/src/footer.js b/admin/bower_components/jquery-sparkline/src/footer.js deleted file mode 100644 index 6780cba..0000000 --- a/admin/bower_components/jquery-sparkline/src/footer.js +++ /dev/null @@ -1 +0,0 @@ -}))}(document, Math)); diff --git a/admin/bower_components/jquery-sparkline/src/header.js b/admin/bower_components/jquery-sparkline/src/header.js deleted file mode 100644 index b6c8aa9..0000000 --- a/admin/bower_components/jquery-sparkline/src/header.js +++ /dev/null @@ -1,222 +0,0 @@ -/** -* -* jquery.sparkline.js -* -* v@VERSION@ -* (c) Splunk, Inc -* Contact: Gareth Watts (gareth@splunk.com) -* http://omnipotent.net/jquery.sparkline/ -* -* Generates inline sparkline charts from data supplied either to the method -* or inline in HTML -* -* Compatible with Internet Explorer 6.0+ and modern browsers equipped with the canvas tag -* (Firefox 2.0+, Safari, Opera, etc) -* -* License: New BSD License -* -* Copyright (c) 2012, Splunk Inc. -* All rights reserved. -* -* Redistribution and use in source and binary forms, with or without modification, -* are permitted provided that the following conditions are met: -* -* * Redistributions of source code must retain the above copyright notice, -* this list of conditions and the following disclaimer. -* * Redistributions in binary form must reproduce the above copyright notice, -* this list of conditions and the following disclaimer in the documentation -* and/or other materials provided with the distribution. -* * Neither the name of Splunk Inc nor the names of its contributors may -* be used to endorse or promote products derived from this software without -* specific prior written permission. -* -* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY -* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES -* OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT -* SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT -* OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) -* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, -* OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -* -* -* Usage: -* $(selector).sparkline(values, options) -* -* If values is undefined or set to 'html' then the data values are read from the specified tag: -* <p>Sparkline: <span class="sparkline">1,4,6,6,8,5,3,5</span></p> -* $('.sparkline').sparkline(); -* There must be no spaces in the enclosed data set -* -* Otherwise values must be an array of numbers or null values -* <p>Sparkline: <span id="sparkline1">This text replaced if the browser is compatible</span></p> -* $('#sparkline1').sparkline([1,4,6,6,8,5,3,5]) -* $('#sparkline2').sparkline([1,4,6,null,null,5,3,5]) -* -* Values can also be specified in an HTML comment, or as a values attribute: -* <p>Sparkline: <span class="sparkline"><!--1,4,6,6,8,5,3,5 --></span></p> -* <p>Sparkline: <span class="sparkline" values="1,4,6,6,8,5,3,5"></span></p> -* $('.sparkline').sparkline(); -* -* For line charts, x values can also be specified: -* <p>Sparkline: <span class="sparkline">1:1,2.7:4,3.4:6,5:6,6:8,8.7:5,9:3,10:5</span></p> -* $('#sparkline1').sparkline([ [1,1], [2.7,4], [3.4,6], [5,6], [6,8], [8.7,5], [9,3], [10,5] ]) -* -* By default, options should be passed in as the second argument to the sparkline function: -* $('.sparkline').sparkline([1,2,3,4], {type: 'bar'}) -* -* Options can also be set by passing them on the tag itself. This feature is disabled by default though -* as there's a slight performance overhead: -* $('.sparkline').sparkline([1,2,3,4], {enableTagOptions: true}) -* <p>Sparkline: <span class="sparkline" sparkType="bar" sparkBarColor="red">loading</span></p> -* Prefix all options supplied as tag attribute with "spark" (configurable by setting tagOptionsPrefix) -* -* Supported options: -* lineColor - Color of the line used for the chart -* fillColor - Color used to fill in the chart - Set to '' or false for a transparent chart -* width - Width of the chart - Defaults to 3 times the number of values in pixels -* height - Height of the chart - Defaults to the height of the containing element -* chartRangeMin - Specify the minimum value to use for the Y range of the chart - Defaults to the minimum value supplied -* chartRangeMax - Specify the maximum value to use for the Y range of the chart - Defaults to the maximum value supplied -* chartRangeClip - Clip out of range values to the max/min specified by chartRangeMin and chartRangeMax -* chartRangeMinX - Specify the minimum value to use for the X range of the chart - Defaults to the minimum value supplied -* chartRangeMaxX - Specify the maximum value to use for the X range of the chart - Defaults to the maximum value supplied -* composite - If true then don't erase any existing chart attached to the tag, but draw -* another chart over the top - Note that width and height are ignored if an -* existing chart is detected. -* tagValuesAttribute - Name of tag attribute to check for data values - Defaults to 'values' -* enableTagOptions - Whether to check tags for sparkline options -* tagOptionsPrefix - Prefix used for options supplied as tag attributes - Defaults to 'spark' -* disableHiddenCheck - If set to true, then the plugin will assume that charts will never be drawn into a -* hidden dom element, avoding a browser reflow -* disableInteraction - If set to true then all mouseover/click interaction behaviour will be disabled, -* making the plugin perform much like it did in 1.x -* disableTooltips - If set to true then tooltips will be disabled - Defaults to false (tooltips enabled) -* disableHighlight - If set to true then highlighting of selected chart elements on mouseover will be disabled -* defaults to false (highlights enabled) -* highlightLighten - Factor to lighten/darken highlighted chart values by - Defaults to 1.4 for a 40% increase -* tooltipContainer - Specify which DOM element the tooltip should be rendered into - defaults to document.body -* tooltipClassname - Optional CSS classname to apply to tooltips - If not specified then a default style will be applied -* tooltipOffsetX - How many pixels away from the mouse pointer to render the tooltip on the X axis -* tooltipOffsetY - How many pixels away from the mouse pointer to render the tooltip on the r axis -* tooltipFormatter - Optional callback that allows you to override the HTML displayed in the tooltip -* callback is given arguments of (sparkline, options, fields) -* tooltipChartTitle - If specified then the tooltip uses the string specified by this setting as a title -* tooltipFormat - A format string or SPFormat object (or an array thereof for multiple entries) -* to control the format of the tooltip -* tooltipPrefix - A string to prepend to each field displayed in a tooltip -* tooltipSuffix - A string to append to each field displayed in a tooltip -* tooltipSkipNull - If true then null values will not have a tooltip displayed (defaults to true) -* tooltipValueLookups - An object or range map to map field values to tooltip strings -* (eg. to map -1 to "Lost", 0 to "Draw", and 1 to "Win") -* numberFormatter - Optional callback for formatting numbers in tooltips -* numberDigitGroupSep - Character to use for group separator in numbers "1,234" - Defaults to "," -* numberDecimalMark - Character to use for the decimal point when formatting numbers - Defaults to "." -* numberDigitGroupCount - Number of digits between group separator - Defaults to 3 -* -* There are 7 types of sparkline, selected by supplying a "type" option of 'line' (default), -* 'bar', 'tristate', 'bullet', 'discrete', 'pie' or 'box' -* line - Line chart. Options: -* spotColor - Set to '' to not end each line in a circular spot -* minSpotColor - If set, color of spot at minimum value -* maxSpotColor - If set, color of spot at maximum value -* spotRadius - Radius in pixels -* lineWidth - Width of line in pixels -* normalRangeMin -* normalRangeMax - If set draws a filled horizontal bar between these two values marking the "normal" -* or expected range of values -* normalRangeColor - Color to use for the above bar -* drawNormalOnTop - Draw the normal range above the chart fill color if true -* defaultPixelsPerValue - Defaults to 3 pixels of width for each value in the chart -* highlightSpotColor - The color to use for drawing a highlight spot on mouseover - Set to null to disable -* highlightLineColor - The color to use for drawing a highlight line on mouseover - Set to null to disable -* valueSpots - Specify which points to draw spots on, and in which color. Accepts a range map -* -* bar - Bar chart. Options: -* barColor - Color of bars for postive values -* negBarColor - Color of bars for negative values -* zeroColor - Color of bars with zero values -* nullColor - Color of bars with null values - Defaults to omitting the bar entirely -* barWidth - Width of bars in pixels -* colorMap - Optional mappnig of values to colors to override the *BarColor values above -* can be an Array of values to control the color of individual bars or a range map -* to specify colors for individual ranges of values -* barSpacing - Gap between bars in pixels -* zeroAxis - Centers the y-axis around zero if true -* -* tristate - Charts values of win (>0), lose (<0) or draw (=0) -* posBarColor - Color of win values -* negBarColor - Color of lose values -* zeroBarColor - Color of draw values -* barWidth - Width of bars in pixels -* barSpacing - Gap between bars in pixels -* colorMap - Optional mappnig of values to colors to override the *BarColor values above -* can be an Array of values to control the color of individual bars or a range map -* to specify colors for individual ranges of values -* -* discrete - Options: -* lineHeight - Height of each line in pixels - Defaults to 30% of the graph height -* thesholdValue - Values less than this value will be drawn using thresholdColor instead of lineColor -* thresholdColor -* -* bullet - Values for bullet graphs msut be in the order: target, performance, range1, range2, range3, ... -* options: -* targetColor - The color of the vertical target marker -* targetWidth - The width of the target marker in pixels -* performanceColor - The color of the performance measure horizontal bar -* rangeColors - Colors to use for each qualitative range background color -* -* pie - Pie chart. Options: -* sliceColors - An array of colors to use for pie slices -* offset - Angle in degrees to offset the first slice - Try -90 or +90 -* borderWidth - Width of border to draw around the pie chart, in pixels - Defaults to 0 (no border) -* borderColor - Color to use for the pie chart border - Defaults to #000 -* -* box - Box plot. Options: -* raw - Set to true to supply pre-computed plot points as values -* values should be: low_outlier, low_whisker, q1, median, q3, high_whisker, high_outlier -* When set to false you can supply any number of values and the box plot will -* be computed for you. Default is false. -* showOutliers - Set to true (default) to display outliers as circles -* outlierIQR - Interquartile range used to determine outliers. Default 1.5 -* boxLineColor - Outline color of the box -* boxFillColor - Fill color for the box -* whiskerColor - Line color used for whiskers -* outlierLineColor - Outline color of outlier circles -* outlierFillColor - Fill color of the outlier circles -* spotRadius - Radius of outlier circles -* medianColor - Line color of the median line -* target - Draw a target cross hair at the supplied value (default undefined) -* -* -* -* Examples: -* $('#sparkline1').sparkline(myvalues, { lineColor: '#f00', fillColor: false }); -* $('.barsparks').sparkline('html', { type:'bar', height:'40px', barWidth:5 }); -* $('#tristate').sparkline([1,1,-1,1,0,0,-1], { type:'tristate' }): -* $('#discrete').sparkline([1,3,4,5,5,3,4,5], { type:'discrete' }); -* $('#bullet').sparkline([10,12,12,9,7], { type:'bullet' }); -* $('#pie').sparkline([1,1,2], { type:'pie' }); -*/ - -/*jslint regexp: true, browser: true, jquery: true, white: true, nomen: false, plusplus: false, maxerr: 500, indent: 4 */ - -(function(document, Math, undefined) { // performance/minified-size optimization -(function(factory) { - if(typeof define === 'function' && define.amd) { - define(['jquery'], factory); - } else if (jQuery && !jQuery.fn.sparkline) { - factory(jQuery); - } -} -(function($) { - 'use strict'; - - var UNSET_OPTION = {}, - getDefaults, createClass, SPFormat, clipval, quartile, normalizeValue, normalizeValues, - remove, isNumber, all, sum, addCSS, ensureArray, formatNumber, RangeMap, - MouseHandler, Tooltip, barHighlightMixin, - line, bar, tristate, discrete, bullet, pie, box, defaultStyles, initStyles, - VShape, VCanvas_base, VCanvas_canvas, VCanvas_vml, pending, shapeCount = 0; - diff --git a/admin/bower_components/jquery-sparkline/src/interact.js b/admin/bower_components/jquery-sparkline/src/interact.js deleted file mode 100644 index 25b338f..0000000 --- a/admin/bower_components/jquery-sparkline/src/interact.js +++ /dev/null @@ -1,247 +0,0 @@ - MouseHandler = createClass({ - init: function (el, options) { - var $el = $(el); - this.$el = $el; - this.options = options; - this.currentPageX = 0; - this.currentPageY = 0; - this.el = el; - this.splist = []; - this.tooltip = null; - this.over = false; - this.displayTooltips = !options.get('disableTooltips'); - this.highlightEnabled = !options.get('disableHighlight'); - }, - - registerSparkline: function (sp) { - this.splist.push(sp); - if (this.over) { - this.updateDisplay(); - } - }, - - registerCanvas: function (canvas) { - var $canvas = $(canvas.canvas); - this.canvas = canvas; - this.$canvas = $canvas; - $canvas.mouseenter($.proxy(this.mouseenter, this)); - $canvas.mouseleave($.proxy(this.mouseleave, this)); - $canvas.click($.proxy(this.mouseclick, this)); - }, - - reset: function (removeTooltip) { - this.splist = []; - if (this.tooltip && removeTooltip) { - this.tooltip.remove(); - this.tooltip = undefined; - } - }, - - mouseclick: function (e) { - var clickEvent = $.Event('sparklineClick'); - clickEvent.originalEvent = e; - clickEvent.sparklines = this.splist; - this.$el.trigger(clickEvent); - }, - - mouseenter: function (e) { - $(document.body).unbind('mousemove.jqs'); - $(document.body).bind('mousemove.jqs', $.proxy(this.mousemove, this)); - this.over = true; - this.currentPageX = e.pageX; - this.currentPageY = e.pageY; - this.currentEl = e.target; - if (!this.tooltip && this.displayTooltips) { - this.tooltip = new Tooltip(this.options); - this.tooltip.updatePosition(e.pageX, e.pageY); - } - this.updateDisplay(); - }, - - mouseleave: function () { - $(document.body).unbind('mousemove.jqs'); - var splist = this.splist, - spcount = splist.length, - needsRefresh = false, - sp, i; - this.over = false; - this.currentEl = null; - - if (this.tooltip) { - this.tooltip.remove(); - this.tooltip = null; - } - - for (i = 0; i < spcount; i++) { - sp = splist[i]; - if (sp.clearRegionHighlight()) { - needsRefresh = true; - } - } - - if (needsRefresh) { - this.canvas.render(); - } - }, - - mousemove: function (e) { - this.currentPageX = e.pageX; - this.currentPageY = e.pageY; - this.currentEl = e.target; - if (this.tooltip) { - this.tooltip.updatePosition(e.pageX, e.pageY); - } - this.updateDisplay(); - }, - - updateDisplay: function () { - var splist = this.splist, - spcount = splist.length, - needsRefresh = false, - offset = this.$canvas.offset(), - localX = this.currentPageX - offset.left, - localY = this.currentPageY - offset.top, - tooltiphtml, sp, i, result, changeEvent; - if (!this.over) { - return; - } - for (i = 0; i < spcount; i++) { - sp = splist[i]; - result = sp.setRegionHighlight(this.currentEl, localX, localY); - if (result) { - needsRefresh = true; - } - } - if (needsRefresh) { - changeEvent = $.Event('sparklineRegionChange'); - changeEvent.sparklines = this.splist; - this.$el.trigger(changeEvent); - if (this.tooltip) { - tooltiphtml = ''; - for (i = 0; i < spcount; i++) { - sp = splist[i]; - tooltiphtml += sp.getCurrentRegionTooltip(); - } - this.tooltip.setContent(tooltiphtml); - } - if (!this.disableHighlight) { - this.canvas.render(); - } - } - if (result === null) { - this.mouseleave(); - } - } - }); - - - Tooltip = createClass({ - sizeStyle: 'position: static !important;' + - 'display: block !important;' + - 'visibility: hidden !important;' + - 'float: left !important;', - - init: function (options) { - var tooltipClassname = options.get('tooltipClassname', 'jqstooltip'), - sizetipStyle = this.sizeStyle, - offset; - this.container = options.get('tooltipContainer') || document.body; - this.tooltipOffsetX = options.get('tooltipOffsetX', 10); - this.tooltipOffsetY = options.get('tooltipOffsetY', 12); - // remove any previous lingering tooltip - $('#jqssizetip').remove(); - $('#jqstooltip').remove(); - this.sizetip = $('<div/>', { - id: 'jqssizetip', - style: sizetipStyle, - 'class': tooltipClassname - }); - this.tooltip = $('<div/>', { - id: 'jqstooltip', - 'class': tooltipClassname - }).appendTo(this.container); - // account for the container's location - offset = this.tooltip.offset(); - this.offsetLeft = offset.left; - this.offsetTop = offset.top; - this.hidden = true; - $(window).unbind('resize.jqs scroll.jqs'); - $(window).bind('resize.jqs scroll.jqs', $.proxy(this.updateWindowDims, this)); - this.updateWindowDims(); - }, - - updateWindowDims: function () { - this.scrollTop = $(window).scrollTop(); - this.scrollLeft = $(window).scrollLeft(); - this.scrollRight = this.scrollLeft + $(window).width(); - this.updatePosition(); - }, - - getSize: function (content) { - this.sizetip.html(content).appendTo(this.container); - this.width = this.sizetip.width() + 1; - this.height = this.sizetip.height(); - this.sizetip.remove(); - }, - - setContent: function (content) { - if (!content) { - this.tooltip.css('visibility', 'hidden'); - this.hidden = true; - return; - } - this.getSize(content); - this.tooltip.html(content) - .css({ - 'width': this.width, - 'height': this.height, - 'visibility': 'visible' - }); - if (this.hidden) { - this.hidden = false; - this.updatePosition(); - } - }, - - updatePosition: function (x, y) { - if (x === undefined) { - if (this.mousex === undefined) { - return; - } - x = this.mousex - this.offsetLeft; - y = this.mousey - this.offsetTop; - - } else { - this.mousex = x = x - this.offsetLeft; - this.mousey = y = y - this.offsetTop; - } - if (!this.height || !this.width || this.hidden) { - return; - } - - y -= this.height + this.tooltipOffsetY; - x += this.tooltipOffsetX; - - if (y < this.scrollTop) { - y = this.scrollTop; - } - if (x < this.scrollLeft) { - x = this.scrollLeft; - } else if (x + this.width > this.scrollRight) { - x = this.scrollRight - this.width; - } - - this.tooltip.css({ - 'left': x, - 'top': y - }); - }, - - remove: function () { - this.tooltip.remove(); - this.sizetip.remove(); - this.sizetip = this.tooltip = undefined; - $(window).unbind('resize.jqs scroll.jqs'); - } - }); - diff --git a/admin/bower_components/jquery-sparkline/src/rangemap.js b/admin/bower_components/jquery-sparkline/src/rangemap.js deleted file mode 100644 index 9aaf3bb..0000000 --- a/admin/bower_components/jquery-sparkline/src/rangemap.js +++ /dev/null @@ -1,39 +0,0 @@ - $.RangeMapClass = RangeMap = createClass({ - init: function (map) { - var key, range, rangelist = []; - for (key in map) { - if (map.hasOwnProperty(key) && typeof key === 'string' && key.indexOf(':') > -1) { - range = key.split(':'); - range[0] = range[0].length === 0 ? -Infinity : parseFloat(range[0]); - range[1] = range[1].length === 0 ? Infinity : parseFloat(range[1]); - range[2] = map[key]; - rangelist.push(range); - } - } - this.map = map; - this.rangelist = rangelist || false; - }, - - get: function (value) { - var rangelist = this.rangelist, - i, range, result; - if ((result = this.map[value]) !== undefined) { - return result; - } - if (rangelist) { - for (i = rangelist.length; i--;) { - range = rangelist[i]; - if (range[0] <= value && range[1] >= value) { - return range[2]; - } - } - } - return undefined; - } - }); - - // Convenience function - $.range_map = function(map) { - return new RangeMap(map); - }; - diff --git a/admin/bower_components/jquery-sparkline/src/simpledraw.js b/admin/bower_components/jquery-sparkline/src/simpledraw.js deleted file mode 100644 index 3983e56..0000000 --- a/admin/bower_components/jquery-sparkline/src/simpledraw.js +++ /dev/null @@ -1,55 +0,0 @@ - // Provide a cross-browser interface to a few simple drawing primitives - $.fn.simpledraw = function (width, height, useExisting, interact) { - var target, mhandler; - if (useExisting && (target = this.data('_jqs_vcanvas'))) { - return target; - } - - if ($.fn.sparkline.canvas === false) { - // We've already determined that neither Canvas nor VML are available - return false; - - } else if ($.fn.sparkline.canvas === undefined) { - // No function defined yet -- need to see if we support Canvas or VML - var el = document.createElement('canvas'); - if (!!(el.getContext && el.getContext('2d'))) { - // Canvas is available - $.fn.sparkline.canvas = function(width, height, target, interact) { - return new VCanvas_canvas(width, height, target, interact); - }; - } else if (document.namespaces && !document.namespaces.v) { - // VML is available - document.namespaces.add('v', 'urn:schemas-microsoft-com:vml', '#default#VML'); - $.fn.sparkline.canvas = function(width, height, target, interact) { - return new VCanvas_vml(width, height, target); - }; - } else { - // Neither Canvas nor VML are available - $.fn.sparkline.canvas = false; - return false; - } - } - - if (width === undefined) { - width = $(this).innerWidth(); - } - if (height === undefined) { - height = $(this).innerHeight(); - } - - target = $.fn.sparkline.canvas(width, height, this, interact); - - mhandler = $(this).data('_jqs_mhandler'); - if (mhandler) { - mhandler.registerCanvas(target); - } - return target; - }; - - $.fn.cleardraw = function () { - var target = this.data('_jqs_vcanvas'); - if (target) { - target.reset(); - } - }; - diff --git a/admin/bower_components/jquery-sparkline/src/utils.js b/admin/bower_components/jquery-sparkline/src/utils.js deleted file mode 100644 index 6a18711..0000000 --- a/admin/bower_components/jquery-sparkline/src/utils.js +++ /dev/null @@ -1,224 +0,0 @@ - /** - * Utilities - */ - - createClass = function (/* [baseclass, [mixin, ...]], definition */) { - var Class, args; - Class = function () { - this.init.apply(this, arguments); - }; - if (arguments.length > 1) { - if (arguments[0]) { - Class.prototype = $.extend(new arguments[0](), arguments[arguments.length - 1]); - Class._super = arguments[0].prototype; - } else { - Class.prototype = arguments[arguments.length - 1]; - } - if (arguments.length > 2) { - args = Array.prototype.slice.call(arguments, 1, -1); - args.unshift(Class.prototype); - $.extend.apply($, args); - } - } else { - Class.prototype = arguments[0]; - } - Class.prototype.cls = Class; - return Class; - }; - - /** - * Wraps a format string for tooltips - * {{x}} - * {{x.2} - * {{x:months}} - */ - $.SPFormatClass = SPFormat = createClass({ - fre: /\{\{([\w.]+?)(:(.+?))?\}\}/g, - precre: /(\w+)\.(\d+)/, - - init: function (format, fclass) { - this.format = format; - this.fclass = fclass; - }, - - render: function (fieldset, lookups, options) { - var self = this, - fields = fieldset, - match, token, lookupkey, fieldvalue, prec; - return this.format.replace(this.fre, function () { - var lookup; - token = arguments[1]; - lookupkey = arguments[3]; - match = self.precre.exec(token); - if (match) { - prec = match[2]; - token = match[1]; - } else { - prec = false; - } - fieldvalue = fields[token]; - if (fieldvalue === undefined) { - return ''; - } - if (lookupkey && lookups && lookups[lookupkey]) { - lookup = lookups[lookupkey]; - if (lookup.get) { // RangeMap - return lookups[lookupkey].get(fieldvalue) || fieldvalue; - } else { - return lookups[lookupkey][fieldvalue] || fieldvalue; - } - } - if (isNumber(fieldvalue)) { - if (options.get('numberFormatter')) { - fieldvalue = options.get('numberFormatter')(fieldvalue); - } else { - fieldvalue = formatNumber(fieldvalue, prec, - options.get('numberDigitGroupCount'), - options.get('numberDigitGroupSep'), - options.get('numberDecimalMark')); - } - } - return fieldvalue; - }); - } - }); - - // convience method to avoid needing the new operator - $.spformat = function(format, fclass) { - return new SPFormat(format, fclass); - }; - - clipval = function (val, min, max) { - if (val < min) { - return min; - } - if (val > max) { - return max; - } - return val; - }; - - quartile = function (values, q) { - var vl; - if (q === 2) { - vl = Math.floor(values.length / 2); - return values.length % 2 ? values[vl] : (values[vl-1] + values[vl]) / 2; - } else { - if (values.length % 2 ) { // odd - vl = (values.length * q + q) / 4; - return vl % 1 ? (values[Math.floor(vl)] + values[Math.floor(vl) - 1]) / 2 : values[vl-1]; - } else { //even - vl = (values.length * q + 2) / 4; - return vl % 1 ? (values[Math.floor(vl)] + values[Math.floor(vl) - 1]) / 2 : values[vl-1]; - - } - } - }; - - normalizeValue = function (val) { - var nf; - switch (val) { - case 'undefined': - val = undefined; - break; - case 'null': - val = null; - break; - case 'true': - val = true; - break; - case 'false': - val = false; - break; - default: - nf = parseFloat(val); - if (val == nf) { - val = nf; - } - } - return val; - }; - - normalizeValues = function (vals) { - var i, result = []; - for (i = vals.length; i--;) { - result[i] = normalizeValue(vals[i]); - } - return result; - }; - - remove = function (vals, filter) { - var i, vl, result = []; - for (i = 0, vl = vals.length; i < vl; i++) { - if (vals[i] !== filter) { - result.push(vals[i]); - } - } - return result; - }; - - isNumber = function (num) { - return !isNaN(parseFloat(num)) && isFinite(num); - }; - - formatNumber = function (num, prec, groupsize, groupsep, decsep) { - var p, i; - num = (prec === false ? parseFloat(num).toString() : num.toFixed(prec)).split(''); - p = (p = $.inArray('.', num)) < 0 ? num.length : p; - if (p < num.length) { - num[p] = decsep; - } - for (i = p - groupsize; i > 0; i -= groupsize) { - num.splice(i, 0, groupsep); - } - return num.join(''); - }; - - // determine if all values of an array match a value - // returns true if the array is empty - all = function (val, arr, ignoreNull) { - var i; - for (i = arr.length; i--; ) { - if (ignoreNull && arr[i] === null) continue; - if (arr[i] !== val) { - return false; - } - } - return true; - }; - - // sums the numeric values in an array, ignoring other values - sum = function (vals) { - var total = 0, i; - for (i = vals.length; i--;) { - total += typeof vals[i] === 'number' ? vals[i] : 0; - } - return total; - }; - - ensureArray = function (val) { - return $.isArray(val) ? val : [val]; - }; - - // http://paulirish.com/2008/bookmarklet-inject-new-css-rules/ - addCSS = function(css) { - var tag, iefail; - if (document.createStyleSheet) { - try { - document.createStyleSheet().cssText = css; - return; - } catch (e) { - // IE <= 9 maxes out at 31 stylesheets; inject into page instead. - iefail = true; - } - } - tag = document.createElement('style'); - tag.type = 'text/css'; - document.getElementsByTagName('head')[0].appendChild(tag); - if (iefail) { - document.styleSheets[document.styleSheets.length - 1].cssText = css; - } else { - tag[(typeof document.body.style.WebkitAppearance == 'string') /* webkit only */ ? 'innerText' : 'innerHTML'] = css; - } - }; - diff --git a/admin/bower_components/jquery-sparkline/src/vcanvas-base.js b/admin/bower_components/jquery-sparkline/src/vcanvas-base.js deleted file mode 100644 index fcd89ee..0000000 --- a/admin/bower_components/jquery-sparkline/src/vcanvas-base.js +++ /dev/null @@ -1,147 +0,0 @@ - // Setup a very simple "virtual canvas" to make drawing the few shapes we need easier - // This is accessible as $(foo).simpledraw() - - VShape = createClass({ - init: function (target, id, type, args) { - this.target = target; - this.id = id; - this.type = type; - this.args = args; - }, - append: function () { - this.target.appendShape(this); - return this; - } - }); - - VCanvas_base = createClass({ - _pxregex: /(\d+)(px)?\s*$/i, - - init: function (width, height, target) { - if (!width) { - return; - } - this.width = width; - this.height = height; - this.target = target; - this.lastShapeId = null; - if (target[0]) { - target = target[0]; - } - $.data(target, '_jqs_vcanvas', this); - }, - - drawLine: function (x1, y1, x2, y2, lineColor, lineWidth) { - return this.drawShape([[x1, y1], [x2, y2]], lineColor, lineWidth); - }, - - drawShape: function (path, lineColor, fillColor, lineWidth) { - return this._genShape('Shape', [path, lineColor, fillColor, lineWidth]); - }, - - drawCircle: function (x, y, radius, lineColor, fillColor, lineWidth) { - return this._genShape('Circle', [x, y, radius, lineColor, fillColor, lineWidth]); - }, - - drawPieSlice: function (x, y, radius, startAngle, endAngle, lineColor, fillColor) { - return this._genShape('PieSlice', [x, y, radius, startAngle, endAngle, lineColor, fillColor]); - }, - - drawRect: function (x, y, width, height, lineColor, fillColor) { - return this._genShape('Rect', [x, y, width, height, lineColor, fillColor]); - }, - - getElement: function () { - return this.canvas; - }, - - /** - * Return the most recently inserted shape id - */ - getLastShapeId: function () { - return this.lastShapeId; - }, - - /** - * Clear and reset the canvas - */ - reset: function () { - alert('reset not implemented'); - }, - - _insert: function (el, target) { - $(target).html(el); - }, - - /** - * Calculate the pixel dimensions of the canvas - */ - _calculatePixelDims: function (width, height, canvas) { - // XXX This should probably be a configurable option - var match; - match = this._pxregex.exec(height); - if (match) { - this.pixelHeight = match[1]; - } else { - this.pixelHeight = $(canvas).height(); - } - match = this._pxregex.exec(width); - if (match) { - this.pixelWidth = match[1]; - } else { - this.pixelWidth = $(canvas).width(); - } - }, - - /** - * Generate a shape object and id for later rendering - */ - _genShape: function (shapetype, shapeargs) { - var id = shapeCount++; - shapeargs.unshift(id); - return new VShape(this, id, shapetype, shapeargs); - }, - - /** - * Add a shape to the end of the render queue - */ - appendShape: function (shape) { - alert('appendShape not implemented'); - }, - - /** - * Replace one shape with another - */ - replaceWithShape: function (shapeid, shape) { - alert('replaceWithShape not implemented'); - }, - - /** - * Insert one shape after another in the render queue - */ - insertAfterShape: function (shapeid, shape) { - alert('insertAfterShape not implemented'); - }, - - /** - * Remove a shape from the queue - */ - removeShapeId: function (shapeid) { - alert('removeShapeId not implemented'); - }, - - /** - * Find a shape at the specified x/y co-ordinates - */ - getShapeAt: function (el, x, y) { - alert('getShapeAt not implemented'); - }, - - /** - * Render all queued shapes onto the canvas - */ - render: function () { - alert('render not implemented'); - } - }); - diff --git a/admin/bower_components/jquery-sparkline/src/vcanvas-canvas.js b/admin/bower_components/jquery-sparkline/src/vcanvas-canvas.js deleted file mode 100644 index 7ecc62d..0000000 --- a/admin/bower_components/jquery-sparkline/src/vcanvas-canvas.js +++ /dev/null @@ -1,193 +0,0 @@ - VCanvas_canvas = createClass(VCanvas_base, { - init: function (width, height, target, interact) { - VCanvas_canvas._super.init.call(this, width, height, target); - this.canvas = document.createElement('canvas'); - if (target[0]) { - target = target[0]; - } - $.data(target, '_jqs_vcanvas', this); - $(this.canvas).css({ display: 'inline-block', width: width, height: height, verticalAlign: 'top' }); - this._insert(this.canvas, target); - this._calculatePixelDims(width, height, this.canvas); - this.canvas.width = this.pixelWidth; - this.canvas.height = this.pixelHeight; - this.interact = interact; - this.shapes = {}; - this.shapeseq = []; - this.currentTargetShapeId = undefined; - $(this.canvas).css({width: this.pixelWidth, height: this.pixelHeight}); - }, - - _getContext: function (lineColor, fillColor, lineWidth) { - var context = this.canvas.getContext('2d'); - if (lineColor !== undefined) { - context.strokeStyle = lineColor; - } - context.lineWidth = lineWidth === undefined ? 1 : lineWidth; - if (fillColor !== undefined) { - context.fillStyle = fillColor; - } - return context; - }, - - reset: function () { - var context = this._getContext(); - context.clearRect(0, 0, this.pixelWidth, this.pixelHeight); - this.shapes = {}; - this.shapeseq = []; - this.currentTargetShapeId = undefined; - }, - - _drawShape: function (shapeid, path, lineColor, fillColor, lineWidth) { - var context = this._getContext(lineColor, fillColor, lineWidth), - i, plen; - context.beginPath(); - context.moveTo(path[0][0] + 0.5, path[0][1] + 0.5); - for (i = 1, plen = path.length; i < plen; i++) { - context.lineTo(path[i][0] + 0.5, path[i][1] + 0.5); // the 0.5 offset gives us crisp pixel-width lines - } - if (lineColor !== undefined) { - context.stroke(); - } - if (fillColor !== undefined) { - context.fill(); - } - if (this.targetX !== undefined && this.targetY !== undefined && - context.isPointInPath(this.targetX, this.targetY)) { - this.currentTargetShapeId = shapeid; - } - }, - - _drawCircle: function (shapeid, x, y, radius, lineColor, fillColor, lineWidth) { - var context = this._getContext(lineColor, fillColor, lineWidth); - context.beginPath(); - context.arc(x, y, radius, 0, 2 * Math.PI, false); - if (this.targetX !== undefined && this.targetY !== undefined && - context.isPointInPath(this.targetX, this.targetY)) { - this.currentTargetShapeId = shapeid; - } - if (lineColor !== undefined) { - context.stroke(); - } - if (fillColor !== undefined) { - context.fill(); - } - }, - - _drawPieSlice: function (shapeid, x, y, radius, startAngle, endAngle, lineColor, fillColor) { - var context = this._getContext(lineColor, fillColor); - context.beginPath(); - context.moveTo(x, y); - context.arc(x, y, radius, startAngle, endAngle, false); - context.lineTo(x, y); - context.closePath(); - if (lineColor !== undefined) { - context.stroke(); - } - if (fillColor) { - context.fill(); - } - if (this.targetX !== undefined && this.targetY !== undefined && - context.isPointInPath(this.targetX, this.targetY)) { - this.currentTargetShapeId = shapeid; - } - }, - - _drawRect: function (shapeid, x, y, width, height, lineColor, fillColor) { - return this._drawShape(shapeid, [[x, y], [x + width, y], [x + width, y + height], [x, y + height], [x, y]], lineColor, fillColor); - }, - - appendShape: function (shape) { - this.shapes[shape.id] = shape; - this.shapeseq.push(shape.id); - this.lastShapeId = shape.id; - return shape.id; - }, - - replaceWithShape: function (shapeid, shape) { - var shapeseq = this.shapeseq, - i; - this.shapes[shape.id] = shape; - for (i = shapeseq.length; i--;) { - if (shapeseq[i] == shapeid) { - shapeseq[i] = shape.id; - } - } - delete this.shapes[shapeid]; - }, - - replaceWithShapes: function (shapeids, shapes) { - var shapeseq = this.shapeseq, - shapemap = {}, - sid, i, first; - - for (i = shapeids.length; i--;) { - shapemap[shapeids[i]] = true; - } - for (i = shapeseq.length; i--;) { - sid = shapeseq[i]; - if (shapemap[sid]) { - shapeseq.splice(i, 1); - delete this.shapes[sid]; - first = i; - } - } - for (i = shapes.length; i--;) { - shapeseq.splice(first, 0, shapes[i].id); - this.shapes[shapes[i].id] = shapes[i]; - } - - }, - - insertAfterShape: function (shapeid, shape) { - var shapeseq = this.shapeseq, - i; - for (i = shapeseq.length; i--;) { - if (shapeseq[i] === shapeid) { - shapeseq.splice(i + 1, 0, shape.id); - this.shapes[shape.id] = shape; - return; - } - } - }, - - removeShapeId: function (shapeid) { - var shapeseq = this.shapeseq, - i; - for (i = shapeseq.length; i--;) { - if (shapeseq[i] === shapeid) { - shapeseq.splice(i, 1); - break; - } - } - delete this.shapes[shapeid]; - }, - - getShapeAt: function (el, x, y) { - this.targetX = x; - this.targetY = y; - this.render(); - return this.currentTargetShapeId; - }, - - render: function () { - var shapeseq = this.shapeseq, - shapes = this.shapes, - shapeCount = shapeseq.length, - context = this._getContext(), - shapeid, shape, i; - context.clearRect(0, 0, this.pixelWidth, this.pixelHeight); - for (i = 0; i < shapeCount; i++) { - shapeid = shapeseq[i]; - shape = shapes[shapeid]; - this['_draw' + shape.type].apply(this, shape.args); - } - if (!this.interact) { - // not interactive so no need to keep the shapes array - this.shapes = {}; - this.shapeseq = []; - } - } - - }); - diff --git a/admin/bower_components/jquery-sparkline/src/vcanvas-vml.js b/admin/bower_components/jquery-sparkline/src/vcanvas-vml.js deleted file mode 100644 index e7e1905..0000000 --- a/admin/bower_components/jquery-sparkline/src/vcanvas-vml.js +++ /dev/null @@ -1,165 +0,0 @@ - VCanvas_vml = createClass(VCanvas_base, { - init: function (width, height, target) { - var groupel; - VCanvas_vml._super.init.call(this, width, height, target); - if (target[0]) { - target = target[0]; - } - $.data(target, '_jqs_vcanvas', this); - this.canvas = document.createElement('span'); - $(this.canvas).css({ display: 'inline-block', position: 'relative', overflow: 'hidden', width: width, height: height, margin: '0px', padding: '0px', verticalAlign: 'top'}); - this._insert(this.canvas, target); - this._calculatePixelDims(width, height, this.canvas); - this.canvas.width = this.pixelWidth; - this.canvas.height = this.pixelHeight; - groupel = '<v:group coordorigin="0 0" coordsize="' + this.pixelWidth + ' ' + this.pixelHeight + '"' + - ' style="position:absolute;top:0;left:0;width:' + this.pixelWidth + 'px;height=' + this.pixelHeight + 'px;"></v:group>'; - this.canvas.insertAdjacentHTML('beforeEnd', groupel); - this.group = $(this.canvas).children()[0]; - this.rendered = false; - this.prerender = ''; - }, - - _drawShape: function (shapeid, path, lineColor, fillColor, lineWidth) { - var vpath = [], - initial, stroke, fill, closed, vel, plen, i; - for (i = 0, plen = path.length; i < plen; i++) { - vpath[i] = '' + (path[i][0]) + ',' + (path[i][1]); - } - initial = vpath.splice(0, 1); - lineWidth = lineWidth === undefined ? 1 : lineWidth; - stroke = lineColor === undefined ? ' stroked="false" ' : ' strokeWeight="' + lineWidth + 'px" strokeColor="' + lineColor + '" '; - fill = fillColor === undefined ? ' filled="false"' : ' fillColor="' + fillColor + '" filled="true" '; - closed = vpath[0] === vpath[vpath.length - 1] ? 'x ' : ''; - vel = '<v:shape coordorigin="0 0" coordsize="' + this.pixelWidth + ' ' + this.pixelHeight + '" ' + - ' id="jqsshape' + shapeid + '" ' + - stroke + - fill + - ' style="position:absolute;left:0px;top:0px;height:' + this.pixelHeight + 'px;width:' + this.pixelWidth + 'px;padding:0px;margin:0px;" ' + - ' path="m ' + initial + ' l ' + vpath.join(', ') + ' ' + closed + 'e">' + - ' </v:shape>'; - return vel; - }, - - _drawCircle: function (shapeid, x, y, radius, lineColor, fillColor, lineWidth) { - var stroke, fill, vel; - x -= radius; - y -= radius; - stroke = lineColor === undefined ? ' stroked="false" ' : ' strokeWeight="' + lineWidth + 'px" strokeColor="' + lineColor + '" '; - fill = fillColor === undefined ? ' filled="false"' : ' fillColor="' + fillColor + '" filled="true" '; - vel = '<v:oval ' + - ' id="jqsshape' + shapeid + '" ' + - stroke + - fill + - ' style="position:absolute;top:' + y + 'px; left:' + x + 'px; width:' + (radius * 2) + 'px; height:' + (radius * 2) + 'px"></v:oval>'; - return vel; - - }, - - _drawPieSlice: function (shapeid, x, y, radius, startAngle, endAngle, lineColor, fillColor) { - var vpath, startx, starty, endx, endy, stroke, fill, vel; - if (startAngle === endAngle) { - return ''; // VML seems to have problem when start angle equals end angle. - } - if ((endAngle - startAngle) === (2 * Math.PI)) { - startAngle = 0.0; // VML seems to have a problem when drawing a full circle that doesn't start 0 - endAngle = (2 * Math.PI); - } - - startx = x + Math.round(Math.cos(startAngle) * radius); - starty = y + Math.round(Math.sin(startAngle) * radius); - endx = x + Math.round(Math.cos(endAngle) * radius); - endy = y + Math.round(Math.sin(endAngle) * radius); - - if (startx === endx && starty === endy) { - if ((endAngle - startAngle) < Math.PI) { - // Prevent very small slices from being mistaken as a whole pie - return ''; - } - // essentially going to be the entire circle, so ignore startAngle - startx = endx = x + radius; - starty = endy = y; - } - - if (startx === endx && starty === endy && (endAngle - startAngle) < Math.PI) { - return ''; - } - - vpath = [x - radius, y - radius, x + radius, y + radius, startx, starty, endx, endy]; - stroke = lineColor === undefined ? ' stroked="false" ' : ' strokeWeight="1px" strokeColor="' + lineColor + '" '; - fill = fillColor === undefined ? ' filled="false"' : ' fillColor="' + fillColor + '" filled="true" '; - vel = '<v:shape coordorigin="0 0" coordsize="' + this.pixelWidth + ' ' + this.pixelHeight + '" ' + - ' id="jqsshape' + shapeid + '" ' + - stroke + - fill + - ' style="position:absolute;left:0px;top:0px;height:' + this.pixelHeight + 'px;width:' + this.pixelWidth + 'px;padding:0px;margin:0px;" ' + - ' path="m ' + x + ',' + y + ' wa ' + vpath.join(', ') + ' x e">' + - ' </v:shape>'; - return vel; - }, - - _drawRect: function (shapeid, x, y, width, height, lineColor, fillColor) { - return this._drawShape(shapeid, [[x, y], [x, y + height], [x + width, y + height], [x + width, y], [x, y]], lineColor, fillColor); - }, - - reset: function () { - this.group.innerHTML = ''; - }, - - appendShape: function (shape) { - var vel = this['_draw' + shape.type].apply(this, shape.args); - if (this.rendered) { - this.group.insertAdjacentHTML('beforeEnd', vel); - } else { - this.prerender += vel; - } - this.lastShapeId = shape.id; - return shape.id; - }, - - replaceWithShape: function (shapeid, shape) { - var existing = $('#jqsshape' + shapeid), - vel = this['_draw' + shape.type].apply(this, shape.args); - existing[0].outerHTML = vel; - }, - - replaceWithShapes: function (shapeids, shapes) { - // replace the first shapeid with all the new shapes then toast the remaining old shapes - var existing = $('#jqsshape' + shapeids[0]), - replace = '', - slen = shapes.length, - i; - for (i = 0; i < slen; i++) { - replace += this['_draw' + shapes[i].type].apply(this, shapes[i].args); - } - existing[0].outerHTML = replace; - for (i = 1; i < shapeids.length; i++) { - $('#jqsshape' + shapeids[i]).remove(); - } - }, - - insertAfterShape: function (shapeid, shape) { - var existing = $('#jqsshape' + shapeid), - vel = this['_draw' + shape.type].apply(this, shape.args); - existing[0].insertAdjacentHTML('afterEnd', vel); - }, - - removeShapeId: function (shapeid) { - var existing = $('#jqsshape' + shapeid); - this.group.removeChild(existing[0]); - }, - - getShapeAt: function (el, x, y) { - var shapeid = el.id.substr(8); - return shapeid; - }, - - render: function () { - if (!this.rendered) { - // batch the intial render into a single repaint - this.group.innerHTML = this.prerender; - this.rendered = true; - } - } - }); - diff --git a/admin/bower_components/jquery-sparkline/version.txt b/admin/bower_components/jquery-sparkline/version.txt deleted file mode 100644 index ac2cdeb..0000000 --- a/admin/bower_components/jquery-sparkline/version.txt +++ /dev/null @@ -1 +0,0 @@ -2.1.3 diff --git a/admin/bower_components/moment/.bower.json b/admin/bower_components/moment/.bower.json deleted file mode 100644 index 40f520e..0000000 --- a/admin/bower_components/moment/.bower.json +++ /dev/null @@ -1,36 +0,0 @@ -{ - "name": "moment", - "license": "MIT", - "main": "moment.js", - "ignore": [ - "**/.*", - "benchmarks", - "bower_components", - "meteor", - "node_modules", - "scripts", - "tasks", - "test", - "component.json", - "composer.json", - "CONTRIBUTING.md", - "ender.js", - "Gruntfile.js", - "Moment.js.nuspec", - "package.js", - "package.json", - "ISSUE_TEMPLATE.md", - "typing-tests" - ], - "homepage": "https://github.com/moment/moment", - "version": "2.18.1", - "_release": "2.18.1", - "_resolution": { - "type": "version", - "tag": "2.18.1", - "commit": "0af7d4f5f25f911c2eaab2a7ccb534c17e65c536" - }, - "_source": "https://github.com/moment/moment.git", - "_target": "^2.18.1", - "_originalSource": "moment" -} \ No newline at end of file diff --git a/admin/bower_components/moment/CHANGELOG.md b/admin/bower_components/moment/CHANGELOG.md deleted file mode 100644 index bff62fa..0000000 --- a/admin/bower_components/moment/CHANGELOG.md +++ /dev/null @@ -1,766 +0,0 @@ -Changelog -========= - -### 2.18.1 - -* Release Mar 22, 2017 - -* [#3853](https://github.com/moment/moment/pull/3853) [misc] Fix invalid whitespace character causing inability to parse - moment.js - -### 2.18.0 [See full changelog](https://gist.github.com/ichernev/78920c5a1e419fb28c6e4546d1b7235c) - -* Release Mar 18, 2017 - -## Features - -* [#3708](https://github.com/moment/moment/pull/3708) [feature] RFC2822 parsing -* [#3611](https://github.com/moment/moment/pull/3611) [feature] Durations gain validity -* [#3738](https://github.com/moment/moment/pull/3738) [feature] Enable relative time for multiple seconds, request [#2558](https://github.com/moment/moment/issues/2558) -* [#3766](https://github.com/moment/moment/pull/3766) [feature] Add support for k and kk format parsing - -## Bugfixes - -* [#3643](https://github.com/moment/moment/pull/3643) [bugfix] Fixes [#3520](https://github.com/moment/moment/issues/3520), parseZone incorrectly handled minutes under 16 -* [#3710](https://github.com/moment/moment/pull/3710) [bugfix] Fixes [#3632](https://github.com/moment/moment/issues/3632), toISOString returns null for invalid date -* [#3787](https://github.com/moment/moment/pull/3787) [bugfix] Fixes [#3717](https://github.com/moment/moment/issues/3717), ensure day-of-year is non-zero -* [#3780](https://github.com/moment/moment/pull/3780) [bugfix] Fixes [#3765](https://github.com/moment/moment/issues/3765): Ensure year 0 is formatted with YYYY -* [#3806](https://github.com/moment/moment/pull/3806) [bugfix] Fixes [#3805](https://github.com/moment/moment/issues/3805), fix locale month getters for standalone/format cases - -7 new locales, many locale improvements and some misc changes - -### 2.17.1 [Also available here](https://gist.github.com/ichernev/f38280b2b29c4932914a6d3a4e50bfb2) -* Release Dec 03, 2016 - -* [#3638](https://github.com/moment/moment/pull/3638) [misc] TS: Make typescript definitions work with 1.x -* [#3628](https://github.com/moment/moment/pull/3628) [misc] Adds "sign CLA" link to `CONTRIBUTING.md` -* [#3640](https://github.com/moment/moment/pull/3640) [misc] Fix locale issues - -### 2.17.0 [Also available here](https://gist.github.com/ichernev/ed58f76fb95205eeac653d719972b90c) -* Release Nov 22, 2016 - -* [#3435](https://github.com/moment/moment/pull/3435) [new locale] yo: Yoruba (Nigeria) locale -* [#3595](https://github.com/moment/moment/pull/3595) [bugfix] Fix accidental reference to global "value" variable -* [#3506](https://github.com/moment/moment/pull/3506) [bugfix] Fix invalid moments returning valid dates to method calls -* [#3563](https://github.com/moment/moment/pull/3563) [locale] ca: Change future relative time -* [#3504](https://github.com/moment/moment/pull/3504) [tests] Fixes [#3463](https://github.com/moment/moment/issues/3463), parseZone not handling Z correctly (tests only) -* [#3591](https://github.com/moment/moment/pull/3591) [misc] typescript: update typescript to 2.0.8, add strictNullChecks=true -* [#3597](https://github.com/moment/moment/pull/3597) [misc] Fixed capitalization in nuget spec - -### 2.16.0 [See full changelog](https://gist.github.com/ichernev/17bffc1005a032cb1a8ac4c1558b4994) -* Release Nov 9, 2016 - -## Features -* [#3530](https://github.com/moment/moment/pull/3530) [feature] Check whether input is date before checking if format is array -* [#3515](https://github.com/moment/moment/pull/3515) [feature] Fix [#2300](https://github.com/moment/moment/issues/2300): Default to current week. - -## Bugfixes -* [#3546](https://github.com/moment/moment/pull/3546) [bugfix] Implement lazy-loading of child locales with missing prents -* [#3523](https://github.com/moment/moment/pull/3523) [bugfix] parseZone should handle UTC -* [#3502](https://github.com/moment/moment/pull/3502) [bugfix] Fix [#3500](https://github.com/moment/moment/issues/3500): ISO 8601 parsing should match the full string, not the beginning of the string. -* [#3581](https://github.com/moment/moment/pull/3581) [bugfix] Fix parseZone, redo [#3504](https://github.com/moment/moment/issues/3504), fix [#3463](https://github.com/moment/moment/issues/3463) - -## New Locales -* [#3416](https://github.com/moment/moment/pull/3416) [new locale] nl-be: Dutch (Belgium) locale -* [#3393](https://github.com/moment/moment/pull/3393) [new locale] ar-dz: Arabic (Algeria) locale -* [#3342](https://github.com/moment/moment/pull/3342) [new locale] tet: Tetun Dili (East Timor) locale - -And more locale, build and typescript improvements - -### 2.15.2 -* Release Oct 23, 2016 -* [#3525](https://github.com/moment/moment/pull/3525) Speedup month standalone/format regexes **(IMPORTANT)** -* [#3466](https://github.com/moment/moment/pull/3466) Fix typo of Javanese - -### 2.15.1 -* Release Sept 20, 2016 -* [#3438](https://github.com/moment/moment/pull/3438) Fix locale autoload, revert [#3344](https://github.com/moment/moment/pull/3344) - -### 2.15.0 [See full changelog](https://gist.github.com/ichernev/10e1c5bf647545c72ca30e9628a09ed3) -- Release Sept 12, 2016 - -## New Locales -* [#3255](https://github.com/moment/moment/pull/3255) [new locale] mi: Maori language -* [#3267](https://github.com/moment/moment/pull/3267) [new locale] ar-ly: Arabic (Libya) locale -* [#3333](https://github.com/moment/moment/pull/3333) [new locale] zh-hk: Chinese (Hong Kong) locale - -## Bugfixes -* [#3276](https://github.com/moment/moment/pull/3276) [bugfix] duration: parser: Support ms durations in .NET syntax -* [#3312](https://github.com/moment/moment/pull/3312) [bugfix] locales: Enable locale-data getters without moment (fixes [#3284](https://github.com/moment/moment/issues/3284)) -* [#3381](https://github.com/moment/moment/pull/3381) [bugfix] parsing: Fix parseZone without timezone in string, fixes [#3083](https://github.com/moment/moment/issues/3083) -* [#3383](https://github.com/moment/moment/pull/3383) [bugfix] toJSON: Fix isValid so that toJSON works after a moment is frozen -* [#3427](https://github.com/moment/moment/pull/3427) [bugfix] ie8: Fix IE8 (regression in 2.14.x) - -## Packaging -* [#3299](https://github.com/moment/moment/pull/3299) [pkg] npm: Do not include .npmignore in npm package -* [#3273](https://github.com/moment/moment/pull/3273) [pkg] jspm: Include moment.d.ts file in package -* [#3344](https://github.com/moment/moment/pull/3344) [pkg] exports: use module.require for nodejs - -Also some locale and typescript improvements - -### 2.14.1 -- Release July 20, 2016 -* [#3280](https://github.com/moment/moment/pull/3280) Fix typescript definitions - - -### 2.14.0 [See full changelog](https://gist.github.com/ichernev/812e79ac36a7829a22598fe964bfc18a) - -- Release July 20, 2016 - -## New Features -* [#3233](https://github.com/moment/moment/pull/3233) Introduce month.isFormat for format/standalone discovery -* [#2848](https://github.com/moment/moment/pull/2848) Allow user to get/set the rounding method used when calculating relative time -* [#3112](https://github.com/moment/moment/pull/3112) optimize configFromStringAndFormat -* [#3147](https://github.com/moment/moment/pull/3147) Call calendar format function with moment context -* [#3160](https://github.com/moment/moment/pull/3160) deprecate isDSTShifted -* [#3175](https://github.com/moment/moment/pull/3175) make moment calendar extensible with ad-hoc options -* [#3191](https://github.com/moment/moment/pull/3191) toDate returns a copy of the internal date object -* [#3192](https://github.com/moment/moment/pull/3192) Adding support for rollup import. -* [#3238](https://github.com/moment/moment/pull/3238) Handle empty object and empty array for creation as now -* [#3082](https://github.com/moment/moment/pull/3082) Use relative AMD moment dependency - -## Bugfixes -* [#3241](https://github.com/moment/moment/pull/3241) Escape all 24 mixed pieces, not only first 12 in computeMonthsParse -* [#3008](https://github.com/moment/moment/pull/3008) Object setter orders sets based on size of unit -* [#3177](https://github.com/moment/moment/pull/3177) Bug Fix [#2704](https://github.com/moment/moment/pull/2704) - isoWeekday(String) inconsistent with isoWeekday(Number) -* [#3230](https://github.com/moment/moment/pull/3230) fix passing date with format string to ignore format string -* [#3232](https://github.com/moment/moment/pull/3232) Fix negative 0 in certain diff cases -* [#3235](https://github.com/moment/moment/pull/3235) Use proper locale inheritance for the base locale, fixes [#3137](https://github.com/moment/moment/pull/3137) - -Plus es-do locale and locale bugfixes - -### 2.13.0 [See full changelog](https://gist.github.com/ichernev/0132fcf5b61f7fc140b0bb0090480d49) -- Release April 18, 2016 - -## Enhancements: -* [#2982](https://github.com/moment/moment/pull/2982) Add 'date' as alias to 'day' for startOf() and endOf(). -* [#2955](https://github.com/moment/moment/pull/2955) Add parsing negative components in durations when ISO 8601 -* [#2991](https://github.com/moment/moment/pull/2991) isBetween support for both open and closed intervals -* [#3105](https://github.com/moment/moment/pull/3105) Add localeSorted argument to weekday listers -* [#3102](https://github.com/moment/moment/pull/3102) Add k and kk formatting tokens - -## Bugfixes -* [#3109](https://github.com/moment/moment/pull/3109) Fix [#1756](https://github.com/moment/moment/issues/1756) Resolved thread-safe issue on server side. -* [#3078](https://github.com/moment/moment/pull/3078) Fix parsing for months/weekdays with weird characters -* [#3098](https://github.com/moment/moment/pull/3098) Use Z suffix when in UTC mode ([#3020](https://github.com/moment/moment/issues/3020)) -* [#2995](https://github.com/moment/moment/pull/2995) Fix floating point rounding errors in durations -* [#3059](https://github.com/moment/moment/pull/3059) fix bug where diff returns -0 in month-related diffs -* [#3045](https://github.com/moment/moment/pull/3045) Fix mistaking any input for 'a' token -* [#2877](https://github.com/moment/moment/pull/2877) Use explicit .valueOf() calls instead of coercion -* [#3036](https://github.com/moment/moment/pull/3036) Year setter should keep time when DST changes - -Plus 3 new locales and locale fixes. - -### 2.12.0 [See full changelog](https://gist.github.com/ichernev/6e5bfdf8d6522fc4ac73) - -- Release March 7, 2016 - -## Enhancements: -* [#2932](https://github.com/moment/moment/pull/2932) List loaded locales -* [#2818](https://github.com/moment/moment/pull/2818) Parse ISO-8061 duration containing both day and week values -* [#2774](https://github.com/moment/moment/pull/2774) Implement locale inheritance and locale updating - -## Bugfixes: -* [#2970](https://github.com/moment/moment/pull/2970) change add subtract to handle decimal values by rounding -* [#2887](https://github.com/moment/moment/pull/2887) Fix toJSON casting of invalid moment -* [#2897](https://github.com/moment/moment/pull/2897) parse string arguments for month() correctly, closes #2884 -* [#2946](https://github.com/moment/moment/pull/2946) Fix usage suggestions for min and max - -## New locales: -* [#2917](https://github.com/moment/moment/pull/2917) Locale Punjabi(Gurmukhi) India format conversion - -And more - -### 2.11.2 (Fix ReDoS attack vector) - -- Release February 7, 2016 - -* [#2939](https://github.com/moment/moment/pull/2939) use full-string match to speed up aspnet regex match - -### 2.11.1 [See full changelog](https://gist.github.com/ichernev/8ec3ee25b749b4cff3c2) - -- Release January 9, 2016 - -## Bugfixes: -* [#2881](https://github.com/moment/moment/pull/2881) Revert "Merge pull request #2746 from mbad0la:develop" Sep->Sept -* [#2868](https://github.com/moment/moment/pull/2868) Add format and parse token Y, so it actually works -* [#2865](https://github.com/moment/moment/pull/2865) Use typeof checks for undefined for global variables -* [#2858](https://github.com/moment/moment/pull/2858) Fix Date mocking regression introduced in 2.11.0 -* [#2864](https://github.com/moment/moment/pull/2864) Include changelog in npm release -* [#2830](https://github.com/moment/moment/pull/2830) dep: add grunt-cli -* [#2869](https://github.com/moment/moment/pull/2869) Fix months parsing for some locales - -### 2.11.0 [See full changelog](https://gist.github.com/ichernev/6594bc29719dde6b2f66) - -- Release January 4, 2016 - -* [#2624](https://github.com/moment/moment/pull/2624) Proper handling of invalid moments -* [#2634](https://github.com/moment/moment/pull/2634) Fix strict month parsing issue in cs,ru,sk -* [#2735](https://github.com/moment/moment/pull/2735) Reset the locale back to 'en' after defining all locales in min/locales.js -* [#2702](https://github.com/moment/moment/pull/2702) Week rework -* [#2746](https://github.com/moment/moment/pull/2746) Changed September Abbreviation to "Sept" in locale-specific english - files and default locale file -* [#2646](https://github.com/moment/moment/pull/2646) Fix [#2645](https://github.com/moment/moment/pull/2645) - invalid dates pre-1970 - -* [#2641](https://github.com/moment/moment/pull/2641) Implement basic format and comma as ms separator in ISO 8601 -* [#2665](https://github.com/moment/moment/pull/2665) Implement stricter weekday parsing -* [#2700](https://github.com/moment/moment/pull/2700) Add [Hh]mm and [Hh]mmss formatting tokens, so you can parse 123 with - hmm for example -* [#2565](https://github.com/moment/moment/pull/2565) [#2835](https://github.com/moment/moment/pull/2835) Expose arguments used for moment creation with creationData - (fix [#2443](https://github.com/moment/moment/pull/2443)) -* [#2648](https://github.com/moment/moment/pull/2648) fix issue [#2640](https://github.com/moment/moment/pull/2640): support instanceof operator -* [#2709](https://github.com/moment/moment/pull/2709) Add isSameOrAfter and isSameOrBefore comparison methods -* [#2721](https://github.com/moment/moment/pull/2721) Fix moment creation from object with strings values -* [#2740](https://github.com/moment/moment/pull/2740) Enable 'd hh:mm:ss.sss' format for durations -* [#2766](https://github.com/moment/moment/pull/2766) [#2833](https://github.com/moment/moment/pull/2833) Alternate Clock Source Support - -### 2.10.6 - -- Release July 28, 2015 - -[#2515](https://github.com/moment/moment/pull/2515) Fix regression introduced -in `2.10.5` related to `moment.ISO_8601` parsing. - -### 2.10.5 [See full changelog](https://gist.github.com/ichernev/6ec13ac7efc396da44b2) - -- Release July 26, 2015 - -Important changes: -* [#2357](https://github.com/moment/moment/pull/2357) Improve unit bubbling for ISO dates - this fixes day to year conversions to work around end-of-year (~365 days). As - a side effect 365 days is 11 months and 30 days, and 366 days is one year. -* [#2438](https://github.com/moment/moment/pull/2438) Fix inconsistent moment.min and moment.max results - Return invalid result if any of the inputs is invalid -* [#2494](https://github.com/moment/moment/pull/2494) Fix two digit year parsing with YYYY format - This brings the benefits of YY to YYYY -* [#2368](https://github.com/moment/moment/pull/2368) perf: use faster form of copying dates, across the board improvement - - -### 2.10.3 [See full changelog](https://gist.github.com/ichernev/f264b9bed5b00f8b1b7f) - -- Release May 13, 2015 - -* add `moment.fn.to` and `moment.fn.toNow` (similar to `from` and `fromNow`) -* new locales (Sinhalese (si), Montenegrin (me), Javanese (ja)) -* performance improvements - -### 2.10.2 - -- Release April 9, 2015 - -* fixed moment-with-locales in browser env caused by esperanto change - -### 2.10.1 - -* regression: Add moment.duration.fn back - -### 2.10.0 - -Ported code to es6 modules. - -### 2.9.0 [See full changelog](https://gist.github.com/ichernev/0c9a9b49951111a27ce7) - -- Release January 8, 2015 - -languages: -* [2104](https://github.com/moment/moment/issues/2104) Frisian (fy) language file with unit test -* [2097](https://github.com/moment/moment/issues/2097) add ar-tn locale - -deprecations: -* [2074](https://github.com/moment/moment/issues/2074) Implement `moment.fn.utcOffset`, deprecate `moment.fn.zone` - -features: -* [2088](https://github.com/moment/moment/issues/2088) add moment.fn.isBetween -* [2054](https://github.com/moment/moment/issues/2054) Call updateOffset when creating moment (needed for default timezone in - moment-timezone) -* [1893](https://github.com/moment/moment/issues/1893) Add moment.isDate method -* [1825](https://github.com/moment/moment/issues/1825) Implement toJSON function on Duration -* [1809](https://github.com/moment/moment/issues/1809) Allowing moment.set() to accept a hash of units -* [2128](https://github.com/moment/moment/issues/2128) Add firstDayOfWeek, firstDayOfYear locale getters -* [2131](https://github.com/moment/moment/issues/2131) Add quarter diff support - -Some bugfixes and language improvements -- [full changelog](https://gist.github.com/ichernev/0c9a9b49951111a27ce7) - -### 2.8.4 [See full changelog](https://gist.github.com/ichernev/a4fcb0a46d74e4b9b996) - -- Release November 19, 2014 - -Features: - -* [#2000](https://github.com/moment/moment/issues/2000) Add LTS localised format that includes seconds -* [#1960](https://github.com/moment/moment/issues/1960) added formatToken 'x' for unix offset in milliseconds #1938 -* [#1965](https://github.com/moment/moment/issues/1965) Support 24:00:00.000 to mean next day, at midnight. -* [#2002](https://github.com/moment/moment/issues/2002) Accept 'date' key when creating moment with object -* [#2009](https://github.com/moment/moment/issues/2009) Use native toISOString when we can - -Some bugfixes and language improvements -- [full changelog](https://gist.github.com/ichernev/a4fcb0a46d74e4b9b996) - -### 2.8.3 - -- Release September 5, 2014 - -Bugfixes: - -* [#1801](https://github.com/moment/moment/issues/1801) proper pluralization for Arabic -* [#1833](https://github.com/moment/moment/issues/1833) improve spm integration -* [#1871](https://github.com/moment/moment/issues/1871) fix zone bug caused by Firefox 24 -* [#1882](https://github.com/moment/moment/issues/1882) Use hh:mm in Czech -* [#1883](https://github.com/moment/moment/issues/1883) Fix 2.8.0 regression in duration as conversions -* [#1890](https://github.com/moment/moment/issues/1890) Faster travis builds -* [#1892](https://github.com/moment/moment/issues/1892) Faster isBefore/After/Same -* [#1848](https://github.com/moment/moment/issues/1848) Fix flaky month diffs -* [#1895](https://github.com/moment/moment/issues/1895) Fix 2.8.0 regression in moment.utc with format array -* [#1896](https://github.com/moment/moment/issues/1896) Support setting invalid instance locale (noop) -* [#1897](https://github.com/moment/moment/issues/1897) Support moment([str]) in addition to moment([int]) - -### 2.8.2 - -- Release August 22, 2014 - -Minor bugfixes: - -* [#1874](https://github.com/moment/moment/issues/1874) use `Object.prototype.hasOwnProperty` - instead of `obj.hasOwnProperty` (ie8 bug) -* [#1873](https://github.com/moment/moment/issues/1873) add `duration#toString()` -* [#1859](https://github.com/moment/moment/issues/1859) better month/weekday names in norwegian -* [#1812](https://github.com/moment/moment/issues/1812) meridiem parsing for greek -* [#1804](https://github.com/moment/moment/issues/1804) spanish del -> de -* [#1800](https://github.com/moment/moment/issues/1800) korean LT improvement - -### 2.8.1 - -- Release August 1, 2014 - -* bugfix [#1813](https://github.com/moment/moment/issues/1813): fix moment().lang([key]) incompatibility - -### 2.8.0 [See changelog](https://gist.github.com/ichernev/ac3899324a5fa6c8c9b4) - -- Release July 31, 2014 - -* incompatible changes - * [#1761](https://github.com/moment/moment/issues/1761): moments created without a language are no longer following the global language, in case it changes. Only newly created moments take the global language by default. In case you're affected by this, wait, comment on [#1797](https://github.com/moment/moment/issues/1797) and wait for a proper reimplementation - * [#1642](https://github.com/moment/moment/issues/1642): 45 days is no longer "a month" according to humanize, cutoffs for month, and year have changed. Hopefully your code does not depend on a particular answer from humanize (which it shouldn't anyway) - * [#1784](https://github.com/moment/moment/issues/1784): if you use the human readable English datetime format in a weird way (like storing them in a database) that would break when the format changes you're at risk. - -* deprecations (old behavior will be dropped in 3.0) - * [#1761](https://github.com/moment/moment/issues/1761) `lang` is renamed to `locale`, `langData` -> `localeData`. Also there is now `defineLocale` that should be used when creating new locales - * [#1763](https://github.com/moment/moment/issues/1763) `add(unit, value)` and `subtract(unit, value)` are now deprecated. Use `add(value, unit)` and `subtract(value, unit)` instead. - * [#1759](https://github.com/moment/moment/issues/1759) rename `duration.toIsoString` to `duration.toISOString`. The js standard library and moment's `toISOString` follow that convention. - -* new locales - * [#1789](https://github.com/moment/moment/issues/1789) Tibetan (bo) - * [#1786](https://github.com/moment/moment/issues/1786) Africaans (af) - * [#1778](https://github.com/moment/moment/issues/1778) Burmese (my) - * [#1727](https://github.com/moment/moment/issues/1727) Belarusian (be) - -* bugfixes, locale bugfixes, performance improvements, features - -### 2.7.0 [See changelog](https://gist.github.com/ichernev/b0a3d456d5a84c9901d7) - -- Release June 12, 2014 - -* new languages - - * [#1678](https://github.com/moment/moment/issues/1678) Bengali (bn) - * [#1628](https://github.com/moment/moment/issues/1628) Azerbaijani (az) - * [#1633](https://github.com/moment/moment/issues/1633) Arabic, Saudi Arabia (ar-sa) - * [#1648](https://github.com/moment/moment/issues/1648) Austrian German (de-at) - -* features - - * [#1663](https://github.com/moment/moment/issues/1663) configurable relative time thresholds - * [#1554](https://github.com/moment/moment/issues/1554) support anchor time in moment.calendar - * [#1693](https://github.com/moment/moment/issues/1693) support moment.ISO_8601 as parsing format - * [#1637](https://github.com/moment/moment/issues/1637) add moment.min and moment.max and deprecate min/max instance methods - * [#1704](https://github.com/moment/moment/issues/1704) support string value in add/subtract - * [#1647](https://github.com/moment/moment/issues/1647) add spm support (package manager) - -* bugfixes - -### 2.6.0 [See changelog](https://gist.github.com/ichernev/10544682) - -- Release April 12 , 2014 - -* languages - * [#1529](https://github.com/moment/moment/issues/1529) Serbian-Cyrillic (sr-cyr) - * [#1544](https://github.com/moment/moment/issues/1544), [#1546](https://github.com/moment/moment/issues/1546) Khmer Cambodia (km) - -* features - * [#1419](https://github.com/moment/moment/issues/1419), [#1468](https://github.com/moment/moment/issues/1468), [#1467](https://github.com/moment/moment/issues/1467), [#1546](https://github.com/moment/moment/issues/1546) better handling of timezone-d moments around DST - * [#1462](https://github.com/moment/moment/issues/1462) add weeksInYear and isoWeeksInYear - * [#1475](https://github.com/moment/moment/issues/1475) support ordinal parsing - * [#1499](https://github.com/moment/moment/issues/1499) composer support - * [#1577](https://github.com/moment/moment/issues/1577), [#1604](https://github.com/moment/moment/issues/1604) put Date parsing in moment.createFromInputFallback so it can be properly deprecated and controlled in the future - * [#1545](https://github.com/moment/moment/issues/1545) extract two-digit year parsing in moment.parseTwoDigitYear, so it can be overwritten - * [#1590](https://github.com/moment/moment/issues/1590) (see [#1574](https://github.com/moment/moment/issues/1574)) set AMD global before module definition to better support non AMD module dependencies used in AMD environment - * [#1589](https://github.com/moment/moment/issues/1589) remove global in Node.JS environment (was not working before, nobody complained, was scheduled for removal anyway) - * [#1586](https://github.com/moment/moment/issues/1586) support quarter setting and parsing - -* 18 bugs fixed - -### 2.5.1 - -- Release January 22, 2014 - -* languages - * [#1392](https://github.com/moment/moment/issues/1392) Armenian (hy-am) - -* bugfixes - * [#1429](https://github.com/moment/moment/issues/1429) fixes [#1423](https://github.com/moment/moment/issues/1423) weird chrome-32 bug with js object creation - * [#1421](https://github.com/moment/moment/issues/1421) remove html entities from Welsh - * [#1418](https://github.com/moment/moment/issues/1418) fixes [#1401](https://github.com/moment/moment/issues/1401) improved non-padded tokens in strict matching - * [#1417](https://github.com/moment/moment/issues/1417) fixes [#1404](https://github.com/moment/moment/issues/1404) handle buggy moment object created by property cloning - * [#1398](https://github.com/moment/moment/issues/1398) fixes [#1397](https://github.com/moment/moment/issues/1397) fix Arabic-like week number parsing - * [#1396](https://github.com/moment/moment/issues/1396) add leftZeroFill(4) to GGGG and gggg formats - * [#1373](https://github.com/moment/moment/issues/1373) use lowercase for months and days in Catalan - -* testing - * [#1374](https://github.com/moment/moment/issues/1374) run tests on multiple browser/os combos via SauceLabs and Travis - -### 2.5.0 [See changelog](https://gist.github.com/ichernev/8104451) - -- Release Dec 24, 2013 - -* New languages - * Luxemburish (lb) [1247](https://github.com/moment/moment/issues/1247) - * Serbian (rs) [1319](https://github.com/moment/moment/issues/1319) - * Tamil (ta) [1324](https://github.com/moment/moment/issues/1324) - * Macedonian (mk) [1337](https://github.com/moment/moment/issues/1337) - -* Features - * [1311](https://github.com/moment/moment/issues/1311) Add quarter getter and format token `Q` - * [1303](https://github.com/moment/moment/issues/1303) strict parsing now respects number of digits per token (fix [1196](https://github.com/moment/moment/issues/1196)) - * 0d30bb7 add jspm support - * [1347](https://github.com/moment/moment/issues/1347) improve zone parsing - * [1362](https://github.com/moment/moment/issues/1362) support merideam parsing in Korean - -* 22 bugfixes - -### 2.4.0 - -- Release Oct 27, 2013 - -* **Deprecate** globally exported moment, will be removed in next major -* New languages - * Farose (fo) [#1206](https://github.com/moment/moment/issues/1206) - * Tagalog/Filipino (tl-ph) [#1197](https://github.com/moment/moment/issues/1197) - * Welsh (cy) [#1215](https://github.com/moment/moment/issues/1215) -* Bugfixes - * properly handle Z at the end of iso RegExp [#1187](https://github.com/moment/moment/issues/1187) - * chinese meridian time improvements [#1076](https://github.com/moment/moment/issues/1076) - * fix language tests [#1177](https://github.com/moment/moment/issues/1177) - * remove some failing tests (that should have never existed :)) - [#1185](https://github.com/moment/moment/issues/1185) - [#1183](https://github.com/moment/moment/issues/1183) - * handle russian noun cases in weird cases [#1195](https://github.com/moment/moment/issues/1195) - -### 2.3.1 - -- Release Oct 9, 2013 - -Removed a trailing comma [1169] and fixed a bug with `months`, `weekdays` getters [#1171](https://github.com/moment/moment/issues/1171). - -### 2.3.0 [See changelog](https://gist.github.com/ichernev/6864354) - -- Release Oct 7, 2013 - -Changed isValid, added strict parsing. -Week tokens parsing. - -### 2.2.1 - -- Release Sep 12, 2013 - -Fixed bug in string prototype test. -Updated authors and contributors. - -### 2.2.0 [See changelog](https://gist.github.com/ichernev/00f837a9baf46a3565e4) - -- Release Sep 11, 2013 - -Added bower support. - -Language files now use UMD. - -Creating moment defaults to current date/month/year. - -Added a bundle of moment and all language files. - -### 2.1.0 [See changelog](https://gist.github.com/timrwood/b8c2d90d528eddb53ab5) - -- Release Jul 8, 2013 - -Added better week support. - -Added ability to set offset with `moment#zone`. - -Added ability to set month or weekday from a string. - -Added `moment#min` and `moment#max` - -### 2.0.0 [See changelog](https://gist.github.com/timrwood/e72f2eef320ed9e37c51) - -- Release Feb 9, 2013 - -Added short form localized tokens. - -Added ability to define language a string should be parsed in. - -Added support for reversed add/subtract arguments. - -Added support for `endOf('week')` and `startOf('week')`. - -Fixed the logic for `moment#diff(Moment, 'months')` and `moment#diff(Moment, 'years')` - -`moment#diff` now floors instead of rounds. - -Normalized `moment#toString`. - -Added `isSame`, `isAfter`, and `isBefore` methods. - -Added better week support. - -Added `moment#toJSON` - -Bugfix: Fixed parsing of first century dates - -Bugfix: Parsing 10Sep2001 should work as expected - -Bugfix: Fixed weirdness with `moment.utc()` parsing. - -Changed language ordinal method to return the number + ordinal instead of just the ordinal. - -Changed two digit year parsing cutoff to match strptime. - -Removed `moment#sod` and `moment#eod` in favor of `moment#startOf` and `moment#endOf`. - -Removed `moment.humanizeDuration()` in favor of `moment.duration().humanize()`. - -Removed the lang data objects from the top level namespace. - -Duplicate `Date` passed to `moment()` instead of referencing it. - -### 1.7.2 [See discussion](https://github.com/timrwood/moment/issues/456) - -- Release Oct 2, 2012 - -Bugfixes - -### 1.7.1 [See discussion](https://github.com/timrwood/moment/issues/384) - -- Release Oct 1, 2012 - -Bugfixes - -### 1.7.0 [See discussion](https://github.com/timrwood/moment/issues/288) - -- Release Jul 26, 2012 - -Added `moment.fn.endOf()` and `moment.fn.startOf()`. - -Added validation via `moment.fn.isValid()`. - -Made formatting method 3x faster. http://jsperf.com/momentjs-cached-format-functions - -Add support for month/weekday callbacks in `moment.fn.format()` - -Added instance specific languages. - -Added two letter weekday abbreviations with the formatting token `dd`. - -Various language updates. - -Various bugfixes. - -### 1.6.0 [See discussion](https://github.com/timrwood/moment/pull/268) - -- Release Apr 26, 2012 - -Added Durations. - -Revamped parser to support parsing non-separated strings (YYYYMMDD vs YYYY-MM-DD). - -Added support for millisecond parsing and formatting tokens (S SS SSS) - -Added a getter for `moment.lang()` - -Various bugfixes. - -There are a few things deprecated in the 1.6.0 release. - -1. The format tokens `z` and `zz` (timezone abbreviations like EST CST MST etc) will no longer be supported. Due to inconsistent browser support, we are unable to consistently produce this value. See [this issue](https://github.com/timrwood/moment/issues/162) for more background. - -2. The method `moment.fn.native` is deprecated in favor of `moment.fn.toDate`. There continue to be issues with Google Closure Compiler throwing errors when using `native`, even in valid instances. - -3. The way to customize am/pm strings is being changed. This would only affect you if you created a custom language file. For more information, see [this issue](https://github.com/timrwood/moment/pull/222). - -### 1.5.0 [See milestone](https://github.com/timrwood/moment/issues?milestone=10&page=1&state=closed) - -- Release Mar 20, 2012 - -Added UTC mode. - -Added automatic ISO8601 parsing. - -Various bugfixes. - -### 1.4.0 [See milestone](https://github.com/timrwood/moment/issues?milestone=8&state=closed) - -- Release Feb 4, 2012 - -Added `moment.fn.toDate` as a replacement for `moment.fn.native`. - -Added `moment.fn.sod` and `moment.fn.eod` to get the start and end of day. - -Various bugfixes. - -### 1.3.0 [See milestone](https://github.com/timrwood/moment/issues?milestone=7&state=closed) - -- Release Jan 5, 2012 - -Added support for parsing month names in the current language. - -Added escape blocks for parsing tokens. - -Added `moment.fn.calendar` to format strings like 'Today 2:30 PM', 'Tomorrow 1:25 AM', and 'Last Sunday 4:30 AM'. - -Added `moment.fn.day` as a setter. - -Various bugfixes - -### 1.2.0 [See milestone](https://github.com/timrwood/moment/issues?milestone=4&state=closed) - -- Release Dec 7, 2011 - -Added timezones to parser and formatter. - -Added `moment.fn.isDST`. - -Added `moment.fn.zone` to get the timezone offset in minutes. - -### 1.1.2 [See milestone](https://github.com/timrwood/moment/issues?milestone=6&state=closed) - -- Release Nov 18, 2011 - -Various bugfixes - -### 1.1.1 [See milestone](https://github.com/timrwood/moment/issues?milestone=5&state=closed) - -- Release Nov 12, 2011 - -Added time specific diffs (months, days, hours, etc) - -### 1.1.0 - -- Release Oct 28, 2011 - -Added `moment.fn.format` localized masks. 'L LL LLL LLLL' [issue 29](https://github.com/timrwood/moment/pull/29) - -Fixed [issue 31](https://github.com/timrwood/moment/pull/31). - -### 1.0.1 - -- Release Oct 18, 2011 - -Added `moment.version` to get the current version. - -Removed `window !== undefined` when checking if module exists to support browserify. [issue 25](https://github.com/timrwood/moment/pull/25) - -### 1.0.0 - -- Release - -Added convenience methods for getting and setting date parts. - -Added better support for `moment.add()`. - -Added better lang support in NodeJS. - -Renamed library from underscore.date to Moment.js - -### 0.6.1 - -- Release Oct 12, 2011 - -Added Portuguese, Italian, and French language support - -### 0.6.0 - -- Release Sep 21, 2011 - -Added _date.lang() support. -Added support for passing multiple formats to try to parse a date. _date("07-10-1986", ["MM-DD-YYYY", "YYYY-MM-DD"]); -Made parse from string and single format 25% faster. - -### 0.5.2 - -- Release Jul 11, 2011 - -Bugfix for [issue 8](https://github.com/timrwood/underscore.date/pull/8) and [issue 9](https://github.com/timrwood/underscore.date/pull/9). - -### 0.5.1 - -- Release Jun 17, 2011 - -Bugfix for [issue 5](https://github.com/timrwood/underscore.date/pull/5). - -### 0.5.0 - -- Release Jun 13, 2011 - -Dropped the redundant `_date.date()` in favor of `_date()`. -Removed `_date.now()`, as it is a duplicate of `_date()` with no parameters. -Removed `_date.isLeapYear(yearNumber)`. Use `_date([yearNumber]).isLeapYear()` instead. -Exposed customization options through the `_date.relativeTime`, `_date.weekdays`, `_date.weekdaysShort`, `_date.months`, `_date.monthsShort`, and `_date.ordinal` variables instead of the `_date.customize()` function. - -### 0.4.1 - -- Release May 9, 2011 - -Added date input formats for input strings. - -### 0.4.0 - -- Release May 9, 2011 - -Added underscore.date to npm. Removed dependencies on underscore. - -### 0.3.2 - -- Release Apr 9, 2011 - -Added `'z'` and `'zz'` to `_.date().format()`. Cleaned up some redundant code to trim off some bytes. - -### 0.3.1 - -- Release Mar 25, 2011 - -Cleaned up the namespace. Moved all date manipulation and display functions to the _.date() object. - -### 0.3.0 - -- Release Mar 25, 2011 - -Switched to the Underscore methodology of not mucking with the native objects' prototypes. -Made chaining possible. - -### 0.2.1 - -- Release - -Changed date names to be a more pseudo standardized 'dddd, MMMM Do YYYY, h:mm:ss a'. -Added `Date.prototype` functions `add`, `subtract`, `isdst`, and `isleapyear`. - -### 0.2.0 - -- Release - -Changed function names to be more concise. -Changed date format from php date format to custom format. - -### 0.1.0 - -- Release - -Initial release - diff --git a/admin/bower_components/moment/LICENSE b/admin/bower_components/moment/LICENSE deleted file mode 100644 index 8618b73..0000000 --- a/admin/bower_components/moment/LICENSE +++ /dev/null @@ -1,22 +0,0 @@ -Copyright (c) JS Foundation and other contributors - -Permission is hereby granted, free of charge, to any person -obtaining a copy of this software and associated documentation -files (the "Software"), to deal in the Software without -restriction, including without limitation the rights to use, -copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the -Software is furnished to do so, subject to the following -conditions: - -The above copyright notice and this permission notice shall be -included in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, -EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES -OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND -NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT -HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, -WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING -FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR -OTHER DEALINGS IN THE SOFTWARE. diff --git a/admin/bower_components/moment/README.md b/admin/bower_components/moment/README.md deleted file mode 100644 index c45e9d6..0000000 --- a/admin/bower_components/moment/README.md +++ /dev/null @@ -1,58 +0,0 @@ -[![Join the chat at https://gitter.im/moment/moment](https://badges.gitter.im/Join%20Chat.svg)](https://gitter.im/moment/moment?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge) - -[![NPM version][npm-version-image]][npm-url] [![NPM downloads][npm-downloads-image]][npm-url] [![MIT License][license-image]][license-url] [![Build Status][travis-image]][travis-url] -[![Coverage Status](https://coveralls.io/repos/moment/moment/badge.svg?branch=develop)](https://coveralls.io/r/moment/moment?branch=develop) - -A lightweight JavaScript date library for parsing, validating, manipulating, and formatting dates. - -**[Documentation](http://momentjs.com/docs/)** - -## Port to ECMAScript 6 (version 2.10.0) - -Moment 2.10.0 does not bring any new features, but the code is now written in -ECMAScript 6 modules and placed inside `src/`. Previously `moment.js`, `locale/*.js` and -`test/moment/*.js`, `test/locale/*.js` contained the source of the project. Now -the source is in `src/`, temporary build (ECMAScript 5) files are placed under -`build/umd/` (for running tests during development), and the `moment.js` and -`locale/*.js` files are updated only on release. - -If you want to use a particular revision of the code, make sure to run -`grunt transpile update-index`, so `moment.js` and `locales/*.js` are synced -with `src/*`. We might place that in a commit hook in the future. - -## Upgrading to 2.0.0 - -There are a number of small backwards incompatible changes with version 2.0.0. [See the full descriptions here](https://gist.github.com/timrwood/e72f2eef320ed9e37c51#backwards-incompatible-changes) - - * Changed language ordinal method to return the number + ordinal instead of just the ordinal. - - * Changed two digit year parsing cutoff to match strptime. - - * Removed `moment#sod` and `moment#eod` in favor of `moment#startOf` and `moment#endOf`. - - * Removed `moment.humanizeDuration()` in favor of `moment.duration().humanize()`. - - * Removed the lang data objects from the top level namespace. - - * Duplicate `Date` passed to `moment()` instead of referencing it. - -## [Changelog](https://github.com/moment/moment/blob/develop/CHANGELOG.md) - -## [Contributing](https://github.com/moment/moment/blob/develop/CONTRIBUTING.md) - -We're looking for co-maintainers! If you want to become a master of time please -write to [ichernev](https://github.com/ichernev). - -## License - -Moment.js is freely distributable under the terms of the [MIT license](https://github.com/moment/moment/blob/develop/LICENSE). - -[license-image]: http://img.shields.io/badge/license-MIT-blue.svg?style=flat -[license-url]: LICENSE - -[npm-url]: https://npmjs.org/package/moment -[npm-version-image]: http://img.shields.io/npm/v/moment.svg?style=flat -[npm-downloads-image]: http://img.shields.io/npm/dm/moment.svg?style=flat - -[travis-url]: http://travis-ci.org/moment/moment -[travis-image]: http://img.shields.io/travis/moment/moment/develop.svg?style=flat diff --git a/admin/bower_components/moment/bower.json b/admin/bower_components/moment/bower.json deleted file mode 100644 index 992086f..0000000 --- a/admin/bower_components/moment/bower.json +++ /dev/null @@ -1,25 +0,0 @@ -{ - "name": "moment", - "license": "MIT", - "main": "moment.js", - "ignore": [ - "**/.*", - "benchmarks", - "bower_components", - "meteor", - "node_modules", - "scripts", - "tasks", - "test", - "component.json", - "composer.json", - "CONTRIBUTING.md", - "ender.js", - "Gruntfile.js", - "Moment.js.nuspec", - "package.js", - "package.json", - "ISSUE_TEMPLATE.md", - "typing-tests" - ] -} diff --git a/admin/bower_components/moment/locale/af.js b/admin/bower_components/moment/locale/af.js deleted file mode 100644 index a89257f..0000000 --- a/admin/bower_components/moment/locale/af.js +++ /dev/null @@ -1,73 +0,0 @@ -//! moment.js locale configuration -//! locale : Afrikaans [af] -//! author : Werner Mollentze : https://github.com/wernerm - -;(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' - && typeof require === 'function' ? factory(require('../moment')) : - typeof define === 'function' && define.amd ? define(['../moment'], factory) : - factory(global.moment) -}(this, (function (moment) { 'use strict'; - - -var af = moment.defineLocale('af', { - months : 'Januarie_Februarie_Maart_April_Mei_Junie_Julie_Augustus_September_Oktober_November_Desember'.split('_'), - monthsShort : 'Jan_Feb_Mrt_Apr_Mei_Jun_Jul_Aug_Sep_Okt_Nov_Des'.split('_'), - weekdays : 'Sondag_Maandag_Dinsdag_Woensdag_Donderdag_Vrydag_Saterdag'.split('_'), - weekdaysShort : 'Son_Maa_Din_Woe_Don_Vry_Sat'.split('_'), - weekdaysMin : 'So_Ma_Di_Wo_Do_Vr_Sa'.split('_'), - meridiemParse: /vm|nm/i, - isPM : function (input) { - return /^nm$/i.test(input); - }, - meridiem : function (hours, minutes, isLower) { - if (hours < 12) { - return isLower ? 'vm' : 'VM'; - } else { - return isLower ? 'nm' : 'NM'; - } - }, - longDateFormat : { - LT : 'HH:mm', - LTS : 'HH:mm:ss', - L : 'DD/MM/YYYY', - LL : 'D MMMM YYYY', - LLL : 'D MMMM YYYY HH:mm', - LLLL : 'dddd, D MMMM YYYY HH:mm' - }, - calendar : { - sameDay : '[Vandag om] LT', - nextDay : '[Môre om] LT', - nextWeek : 'dddd [om] LT', - lastDay : '[Gister om] LT', - lastWeek : '[Laas] dddd [om] LT', - sameElse : 'L' - }, - relativeTime : { - future : 'oor %s', - past : '%s gelede', - s : '\'n paar sekondes', - m : '\'n minuut', - mm : '%d minute', - h : '\'n uur', - hh : '%d ure', - d : '\'n dag', - dd : '%d dae', - M : '\'n maand', - MM : '%d maande', - y : '\'n jaar', - yy : '%d jaar' - }, - dayOfMonthOrdinalParse: /\d{1,2}(ste|de)/, - ordinal : function (number) { - return number + ((number === 1 || number === 8 || number >= 20) ? 'ste' : 'de'); // Thanks to Joris Röling : https://github.com/jjupiter - }, - week : { - dow : 1, // Maandag is die eerste dag van die week. - doy : 4 // Die week wat die 4de Januarie bevat is die eerste week van die jaar. - } -}); - -return af; - -}))); diff --git a/admin/bower_components/moment/locale/ar-dz.js b/admin/bower_components/moment/locale/ar-dz.js deleted file mode 100644 index f394594..0000000 --- a/admin/bower_components/moment/locale/ar-dz.js +++ /dev/null @@ -1,59 +0,0 @@ -//! moment.js locale configuration -//! locale : Arabic (Algeria) [ar-dz] -//! author : Noureddine LOUAHEDJ : https://github.com/noureddineme - -;(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' - && typeof require === 'function' ? factory(require('../moment')) : - typeof define === 'function' && define.amd ? define(['../moment'], factory) : - factory(global.moment) -}(this, (function (moment) { 'use strict'; - - -var arDz = moment.defineLocale('ar-dz', { - months : 'جانفي_فيفري_مارس_أفريل_ماي_جوان_جويلية_أوت_سبتمبر_أكتوبر_نوفمبر_ديسمبر'.split('_'), - monthsShort : 'جانفي_فيفري_مارس_أفريل_ماي_جوان_جويلية_أوت_سبتمبر_أكتوبر_نوفمبر_ديسمبر'.split('_'), - weekdays : 'الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'), - weekdaysShort : 'احد_اثنين_ثلاثاء_اربعاء_خميس_جمعة_سبت'.split('_'), - weekdaysMin : 'أح_إث_ثلا_أر_خم_جم_سب'.split('_'), - weekdaysParseExact : true, - longDateFormat : { - LT : 'HH:mm', - LTS : 'HH:mm:ss', - L : 'DD/MM/YYYY', - LL : 'D MMMM YYYY', - LLL : 'D MMMM YYYY HH:mm', - LLLL : 'dddd D MMMM YYYY HH:mm' - }, - 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 : 0, // Sunday is the first day of the week. - doy : 4 // The week that contains Jan 1st is the first week of the year. - } -}); - -return arDz; - -}))); diff --git a/admin/bower_components/moment/locale/ar-kw.js b/admin/bower_components/moment/locale/ar-kw.js deleted file mode 100644 index 93c7dd5..0000000 --- a/admin/bower_components/moment/locale/ar-kw.js +++ /dev/null @@ -1,59 +0,0 @@ -//! moment.js locale configuration -//! locale : Arabic (Kuwait) [ar-kw] -//! author : Nusret Parlak: https://github.com/nusretparlak - -;(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' - && typeof require === 'function' ? factory(require('../moment')) : - typeof define === 'function' && define.amd ? define(['../moment'], factory) : - factory(global.moment) -}(this, (function (moment) { 'use strict'; - - -var arKw = moment.defineLocale('ar-kw', { - months : 'يناير_فبراير_مارس_أبريل_ماي_يونيو_يوليوز_غشت_شتنبر_أكتوبر_نونبر_دجنبر'.split('_'), - monthsShort : 'يناير_فبراير_مارس_أبريل_ماي_يونيو_يوليوز_غشت_شتنبر_أكتوبر_نونبر_دجنبر'.split('_'), - weekdays : 'الأحد_الإتنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'), - weekdaysShort : 'احد_اتنين_ثلاثاء_اربعاء_خميس_جمعة_سبت'.split('_'), - weekdaysMin : 'ح_ن_ث_ر_خ_ج_س'.split('_'), - weekdaysParseExact : true, - longDateFormat : { - LT : 'HH:mm', - LTS : 'HH:mm:ss', - L : 'DD/MM/YYYY', - LL : 'D MMMM YYYY', - LLL : 'D MMMM YYYY HH:mm', - LLLL : 'dddd D MMMM YYYY HH:mm' - }, - 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 : 0, // Sunday is the first day of the week. - doy : 12 // The week that contains Jan 1st is the first week of the year. - } -}); - -return arKw; - -}))); diff --git a/admin/bower_components/moment/locale/ar-ly.js b/admin/bower_components/moment/locale/ar-ly.js deleted file mode 100644 index 7180ed4..0000000 --- a/admin/bower_components/moment/locale/ar-ly.js +++ /dev/null @@ -1,126 +0,0 @@ -//! moment.js locale configuration -//! locale : Arabic (Lybia) [ar-ly] -//! author : Ali Hmer: https://github.com/kikoanis - -;(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' - && typeof require === 'function' ? factory(require('../moment')) : - typeof define === 'function' && define.amd ? define(['../moment'], factory) : - factory(global.moment) -}(this, (function (moment) { 'use strict'; - - -var symbolMap = { - '1': '1', - '2': '2', - '3': '3', - '4': '4', - '5': '5', - '6': '6', - '7': '7', - '8': '8', - '9': '9', - '0': '0' -}; -var pluralForm = function (n) { - return n === 0 ? 0 : n === 1 ? 1 : n === 2 ? 2 : n % 100 >= 3 && n % 100 <= 10 ? 3 : n % 100 >= 11 ? 4 : 5; -}; -var plurals = { - s : ['أقل من ثانية', 'ثانية واحدة', ['ثانيتان', 'ثانيتين'], '%d ثوان', '%d ثانية', '%d ثانية'], - m : ['أقل من دقيقة', 'دقيقة واحدة', ['دقيقتان', 'دقيقتين'], '%d دقائق', '%d دقيقة', '%d دقيقة'], - h : ['أقل من ساعة', 'ساعة واحدة', ['ساعتان', 'ساعتين'], '%d ساعات', '%d ساعة', '%d ساعة'], - d : ['أقل من يوم', 'يوم واحد', ['يومان', 'يومين'], '%d أيام', '%d يومًا', '%d يوم'], - M : ['أقل من شهر', 'شهر واحد', ['شهران', 'شهرين'], '%d أشهر', '%d شهرا', '%d شهر'], - y : ['أقل من عام', 'عام واحد', ['عامان', 'عامين'], '%d أعوام', '%d عامًا', '%d عام'] -}; -var pluralize = function (u) { - return function (number, withoutSuffix, string, isFuture) { - var f = pluralForm(number), - str = plurals[u][pluralForm(number)]; - if (f === 2) { - str = str[withoutSuffix ? 0 : 1]; - } - return str.replace(/%d/i, number); - }; -}; -var months = [ - 'يناير', - 'فبراير', - 'مارس', - 'أبريل', - 'مايو', - 'يونيو', - 'يوليو', - 'أغسطس', - 'سبتمبر', - 'أكتوبر', - 'نوفمبر', - 'ديسمبر' -]; - -var arLy = moment.defineLocale('ar-ly', { - months : months, - monthsShort : months, - weekdays : 'الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'), - weekdaysShort : 'أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت'.split('_'), - weekdaysMin : 'ح_ن_ث_ر_خ_ج_س'.split('_'), - weekdaysParseExact : true, - longDateFormat : { - LT : 'HH:mm', - LTS : 'HH:mm:ss', - L : 'D/\u200FM/\u200FYYYY', - LL : 'D MMMM YYYY', - LLL : 'D MMMM YYYY HH:mm', - LLLL : 'dddd D MMMM YYYY HH:mm' - }, - meridiemParse: /ص|م/, - isPM : function (input) { - return 'م' === input; - }, - meridiem : function (hour, minute, isLower) { - if (hour < 12) { - return 'ص'; - } else { - return 'م'; - } - }, - calendar : { - sameDay: '[اليوم عند الساعة] LT', - nextDay: '[غدًا عند الساعة] LT', - nextWeek: 'dddd [عند الساعة] LT', - lastDay: '[أمس عند الساعة] LT', - lastWeek: 'dddd [عند الساعة] LT', - sameElse: 'L' - }, - relativeTime : { - future : 'بعد %s', - past : 'منذ %s', - s : pluralize('s'), - m : pluralize('m'), - mm : pluralize('m'), - h : pluralize('h'), - hh : pluralize('h'), - d : pluralize('d'), - dd : pluralize('d'), - M : pluralize('M'), - MM : pluralize('M'), - y : pluralize('y'), - yy : pluralize('y') - }, - preparse: function (string) { - return string.replace(/\u200f/g, '').replace(/،/g, ','); - }, - postformat: function (string) { - return string.replace(/\d/g, function (match) { - return symbolMap[match]; - }).replace(/,/g, '،'); - }, - week : { - dow : 6, // Saturday is the first day of the week. - doy : 12 // The week that contains Jan 1st is the first week of the year. - } -}); - -return arLy; - -}))); diff --git a/admin/bower_components/moment/locale/ar-ma.js b/admin/bower_components/moment/locale/ar-ma.js deleted file mode 100644 index cbd810b..0000000 --- a/admin/bower_components/moment/locale/ar-ma.js +++ /dev/null @@ -1,60 +0,0 @@ -//! moment.js locale configuration -//! locale : Arabic (Morocco) [ar-ma] -//! author : ElFadili Yassine : https://github.com/ElFadiliY -//! author : Abdel Said : https://github.com/abdelsaid - -;(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' - && typeof require === 'function' ? factory(require('../moment')) : - typeof define === 'function' && define.amd ? define(['../moment'], factory) : - factory(global.moment) -}(this, (function (moment) { 'use strict'; - - -var arMa = moment.defineLocale('ar-ma', { - months : 'يناير_فبراير_مارس_أبريل_ماي_يونيو_يوليوز_غشت_شتنبر_أكتوبر_نونبر_دجنبر'.split('_'), - monthsShort : 'يناير_فبراير_مارس_أبريل_ماي_يونيو_يوليوز_غشت_شتنبر_أكتوبر_نونبر_دجنبر'.split('_'), - weekdays : 'الأحد_الإتنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'), - weekdaysShort : 'احد_اتنين_ثلاثاء_اربعاء_خميس_جمعة_سبت'.split('_'), - weekdaysMin : 'ح_ن_ث_ر_خ_ج_س'.split('_'), - weekdaysParseExact : true, - longDateFormat : { - LT : 'HH:mm', - LTS : 'HH:mm:ss', - L : 'DD/MM/YYYY', - LL : 'D MMMM YYYY', - LLL : 'D MMMM YYYY HH:mm', - LLLL : 'dddd D MMMM YYYY HH:mm' - }, - 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, // Saturday is the first day of the week. - doy : 12 // The week that contains Jan 1st is the first week of the year. - } -}); - -return arMa; - -}))); diff --git a/admin/bower_components/moment/locale/ar-sa.js b/admin/bower_components/moment/locale/ar-sa.js deleted file mode 100644 index dccd0d8..0000000 --- a/admin/bower_components/moment/locale/ar-sa.js +++ /dev/null @@ -1,105 +0,0 @@ -//! moment.js locale configuration -//! locale : Arabic (Saudi Arabia) [ar-sa] -//! author : Suhail Alkowaileet : https://github.com/xsoh - -;(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' - && typeof require === 'function' ? factory(require('../moment')) : - typeof define === 'function' && define.amd ? define(['../moment'], factory) : - factory(global.moment) -}(this, (function (moment) { 'use strict'; - - -var symbolMap = { - '1': '١', - '2': '٢', - '3': '٣', - '4': '٤', - '5': '٥', - '6': '٦', - '7': '٧', - '8': '٨', - '9': '٩', - '0': '٠' -}; -var numberMap = { - '١': '1', - '٢': '2', - '٣': '3', - '٤': '4', - '٥': '5', - '٦': '6', - '٧': '7', - '٨': '8', - '٩': '9', - '٠': '0' -}; - -var arSa = moment.defineLocale('ar-sa', { - months : 'يناير_فبراير_مارس_أبريل_مايو_يونيو_يوليو_أغسطس_سبتمبر_أكتوبر_نوفمبر_ديسمبر'.split('_'), - monthsShort : 'يناير_فبراير_مارس_أبريل_مايو_يونيو_يوليو_أغسطس_سبتمبر_أكتوبر_نوفمبر_ديسمبر'.split('_'), - weekdays : 'الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'), - weekdaysShort : 'أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت'.split('_'), - weekdaysMin : 'ح_ن_ث_ر_خ_ج_س'.split('_'), - weekdaysParseExact : true, - longDateFormat : { - LT : 'HH:mm', - LTS : 'HH:mm:ss', - L : 'DD/MM/YYYY', - LL : 'D MMMM YYYY', - LLL : 'D MMMM YYYY HH:mm', - LLLL : 'dddd D MMMM YYYY HH:mm' - }, - meridiemParse: /ص|م/, - isPM : function (input) { - return 'م' === input; - }, - meridiem : function (hour, minute, isLower) { - if (hour < 12) { - return 'ص'; - } else { - return 'م'; - } - }, - 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 (string) { - return string.replace(/[١٢٣٤٥٦٧٨٩٠]/g, function (match) { - return numberMap[match]; - }).replace(/،/g, ','); - }, - postformat: function (string) { - return string.replace(/\d/g, function (match) { - return symbolMap[match]; - }).replace(/,/g, '،'); - }, - week : { - dow : 0, // Sunday is the first day of the week. - doy : 6 // The week that contains Jan 1st is the first week of the year. - } -}); - -return arSa; - -}))); diff --git a/admin/bower_components/moment/locale/ar-tn.js b/admin/bower_components/moment/locale/ar-tn.js deleted file mode 100644 index 5f0d38b..0000000 --- a/admin/bower_components/moment/locale/ar-tn.js +++ /dev/null @@ -1,59 +0,0 @@ -//! moment.js locale configuration -//! locale : Arabic (Tunisia) [ar-tn] -//! author : Nader Toukabri : https://github.com/naderio - -;(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' - && typeof require === 'function' ? factory(require('../moment')) : - typeof define === 'function' && define.amd ? define(['../moment'], factory) : - factory(global.moment) -}(this, (function (moment) { 'use strict'; - - -var arTn = moment.defineLocale('ar-tn', { - months: 'جانفي_فيفري_مارس_أفريل_ماي_جوان_جويلية_أوت_سبتمبر_أكتوبر_نوفمبر_ديسمبر'.split('_'), - monthsShort: 'جانفي_فيفري_مارس_أفريل_ماي_جوان_جويلية_أوت_سبتمبر_أكتوبر_نوفمبر_ديسمبر'.split('_'), - weekdays: 'الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'), - weekdaysShort: 'أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت'.split('_'), - weekdaysMin: 'ح_ن_ث_ر_خ_ج_س'.split('_'), - weekdaysParseExact : true, - longDateFormat: { - LT: 'HH:mm', - LTS: 'HH:mm:ss', - L: 'DD/MM/YYYY', - LL: 'D MMMM YYYY', - LLL: 'D MMMM YYYY HH:mm', - LLLL: 'dddd D MMMM YYYY HH:mm' - }, - 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, // Monday is the first day of the week. - doy: 4 // The week that contains Jan 4th is the first week of the year. - } -}); - -return arTn; - -}))); diff --git a/admin/bower_components/moment/locale/ar.js b/admin/bower_components/moment/locale/ar.js deleted file mode 100644 index d263e4c..0000000 --- a/admin/bower_components/moment/locale/ar.js +++ /dev/null @@ -1,142 +0,0 @@ -//! moment.js locale configuration -//! locale : Arabic [ar] -//! author : Abdel Said: https://github.com/abdelsaid -//! author : Ahmed Elkhatib -//! author : forabi https://github.com/forabi - -;(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' - && typeof require === 'function' ? factory(require('../moment')) : - typeof define === 'function' && define.amd ? define(['../moment'], factory) : - factory(global.moment) -}(this, (function (moment) { 'use strict'; - - -var symbolMap = { - '1': '١', - '2': '٢', - '3': '٣', - '4': '٤', - '5': '٥', - '6': '٦', - '7': '٧', - '8': '٨', - '9': '٩', - '0': '٠' -}; -var numberMap = { - '١': '1', - '٢': '2', - '٣': '3', - '٤': '4', - '٥': '5', - '٦': '6', - '٧': '7', - '٨': '8', - '٩': '9', - '٠': '0' -}; -var pluralForm = function (n) { - return n === 0 ? 0 : n === 1 ? 1 : n === 2 ? 2 : n % 100 >= 3 && n % 100 <= 10 ? 3 : n % 100 >= 11 ? 4 : 5; -}; -var plurals = { - s : ['أقل من ثانية', 'ثانية واحدة', ['ثانيتان', 'ثانيتين'], '%d ثوان', '%d ثانية', '%d ثانية'], - m : ['أقل من دقيقة', 'دقيقة واحدة', ['دقيقتان', 'دقيقتين'], '%d دقائق', '%d دقيقة', '%d دقيقة'], - h : ['أقل من ساعة', 'ساعة واحدة', ['ساعتان', 'ساعتين'], '%d ساعات', '%d ساعة', '%d ساعة'], - d : ['أقل من يوم', 'يوم واحد', ['يومان', 'يومين'], '%d أيام', '%d يومًا', '%d يوم'], - M : ['أقل من شهر', 'شهر واحد', ['شهران', 'شهرين'], '%d أشهر', '%d شهرا', '%d شهر'], - y : ['أقل من عام', 'عام واحد', ['عامان', 'عامين'], '%d أعوام', '%d عامًا', '%d عام'] -}; -var pluralize = function (u) { - return function (number, withoutSuffix, string, isFuture) { - var f = pluralForm(number), - str = plurals[u][pluralForm(number)]; - if (f === 2) { - str = str[withoutSuffix ? 0 : 1]; - } - return str.replace(/%d/i, number); - }; -}; -var months = [ - 'كانون الثاني يناير', - 'شباط فبراير', - 'آذار مارس', - 'نيسان أبريل', - 'أيار مايو', - 'حزيران يونيو', - 'تموز يوليو', - 'آب أغسطس', - 'أيلول سبتمبر', - 'تشرين الأول أكتوبر', - 'تشرين الثاني نوفمبر', - 'كانون الأول ديسمبر' -]; - -var ar = moment.defineLocale('ar', { - months : months, - monthsShort : months, - weekdays : 'الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'), - weekdaysShort : 'أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت'.split('_'), - weekdaysMin : 'ح_ن_ث_ر_خ_ج_س'.split('_'), - weekdaysParseExact : true, - longDateFormat : { - LT : 'HH:mm', - LTS : 'HH:mm:ss', - L : 'D/\u200FM/\u200FYYYY', - LL : 'D MMMM YYYY', - LLL : 'D MMMM YYYY HH:mm', - LLLL : 'dddd D MMMM YYYY HH:mm' - }, - meridiemParse: /ص|م/, - isPM : function (input) { - return 'م' === input; - }, - meridiem : function (hour, minute, isLower) { - if (hour < 12) { - return 'ص'; - } else { - return 'م'; - } - }, - calendar : { - sameDay: '[اليوم عند الساعة] LT', - nextDay: '[غدًا عند الساعة] LT', - nextWeek: 'dddd [عند الساعة] LT', - lastDay: '[أمس عند الساعة] LT', - lastWeek: 'dddd [عند الساعة] LT', - sameElse: 'L' - }, - relativeTime : { - future : 'بعد %s', - past : 'منذ %s', - s : pluralize('s'), - m : pluralize('m'), - mm : pluralize('m'), - h : pluralize('h'), - hh : pluralize('h'), - d : pluralize('d'), - dd : pluralize('d'), - M : pluralize('M'), - MM : pluralize('M'), - y : pluralize('y'), - yy : pluralize('y') - }, - preparse: function (string) { - return string.replace(/\u200f/g, '').replace(/[١٢٣٤٥٦٧٨٩٠]/g, function (match) { - return numberMap[match]; - }).replace(/،/g, ','); - }, - postformat: function (string) { - return string.replace(/\d/g, function (match) { - return symbolMap[match]; - }).replace(/,/g, '،'); - }, - week : { - dow : 6, // Saturday is the first day of the week. - doy : 12 // The week that contains Jan 1st is the first week of the year. - } -}); - -return ar; - -}))); diff --git a/admin/bower_components/moment/locale/az.js b/admin/bower_components/moment/locale/az.js deleted file mode 100644 index 56021b4..0000000 --- a/admin/bower_components/moment/locale/az.js +++ /dev/null @@ -1,105 +0,0 @@ -//! moment.js locale configuration -//! locale : Azerbaijani [az] -//! author : topchiyev : https://github.com/topchiyev - -;(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' - && typeof require === 'function' ? factory(require('../moment')) : - typeof define === 'function' && define.amd ? define(['../moment'], factory) : - factory(global.moment) -}(this, (function (moment) { 'use strict'; - - -var suffixes = { - 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ı' -}; - -var az = moment.defineLocale('az', { - months : 'yanvar_fevral_mart_aprel_may_iyun_iyul_avqust_sentyabr_oktyabr_noyabr_dekabr'.split('_'), - monthsShort : 'yan_fev_mar_apr_may_iyn_iyl_avq_sen_okt_noy_dek'.split('_'), - weekdays : 'Bazar_Bazar ertəsi_Çərşənbə axşamı_Çərşənbə_Cümə axşamı_Cümə_Şənbə'.split('_'), - weekdaysShort : 'Baz_BzE_ÇAx_Çər_CAx_Cüm_Şən'.split('_'), - weekdaysMin : 'Bz_BE_ÇA_Çə_CA_Cü_Şə'.split('_'), - weekdaysParseExact : true, - longDateFormat : { - LT : 'HH:mm', - LTS : 'HH:mm:ss', - L : 'DD.MM.YYYY', - LL : 'D MMMM YYYY', - LLL : 'D MMMM YYYY HH:mm', - LLLL : 'dddd, D MMMM YYYY HH:mm' - }, - calendar : { - sameDay : '[bugün saat] LT', - nextDay : '[sabah saat] LT', - nextWeek : '[gələn həftə] dddd [saat] LT', - lastDay : '[dünən] LT', - lastWeek : '[keçən həftə] dddd [saat] LT', - sameElse : 'L' - }, - relativeTime : { - future : '%s sonra', - past : '%s əvvəl', - s : 'birneçə saniyyə', - m : 'bir dəqiqə', - mm : '%d dəqiqə', - h : 'bir saat', - hh : '%d saat', - d : 'bir gün', - dd : '%d gün', - M : 'bir ay', - MM : '%d ay', - y : 'bir il', - yy : '%d il' - }, - meridiemParse: /gecə|səhər|gündüz|axşam/, - isPM : function (input) { - return /^(gündüz|axşam)$/.test(input); - }, - meridiem : function (hour, minute, isLower) { - if (hour < 4) { - return 'gecə'; - } else if (hour < 12) { - return 'səhər'; - } else if (hour < 17) { - return 'gündüz'; - } else { - return 'axşam'; - } - }, - dayOfMonthOrdinalParse: /\d{1,2}-(ıncı|inci|nci|üncü|ncı|uncu)/, - ordinal : function (number) { - if (number === 0) { // special case for zero - return number + '-ıncı'; - } - var a = number % 10, - b = number % 100 - a, - c = number >= 100 ? 100 : null; - return number + (suffixes[a] || suffixes[b] || suffixes[c]); - }, - week : { - dow : 1, // Monday is the first day of the week. - doy : 7 // The week that contains Jan 1st is the first week of the year. - } -}); - -return az; - -}))); diff --git a/admin/bower_components/moment/locale/be.js b/admin/bower_components/moment/locale/be.js deleted file mode 100644 index 83025fd..0000000 --- a/admin/bower_components/moment/locale/be.js +++ /dev/null @@ -1,134 +0,0 @@ -//! moment.js locale configuration -//! locale : Belarusian [be] -//! author : Dmitry Demidov : https://github.com/demidov91 -//! author: Praleska: http://praleska.pro/ -//! Author : Menelion Elensúle : https://github.com/Oire - -;(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' - && typeof require === 'function' ? factory(require('../moment')) : - typeof define === 'function' && define.amd ? define(['../moment'], factory) : - factory(global.moment) -}(this, (function (moment) { 'use strict'; - - -function plural(word, num) { - var forms = word.split('_'); - return num % 10 === 1 && num % 100 !== 11 ? forms[0] : (num % 10 >= 2 && num % 10 <= 4 && (num % 100 < 10 || num % 100 >= 20) ? forms[1] : forms[2]); -} -function relativeTimeWithPlural(number, withoutSuffix, key) { - var format = { - 'mm': withoutSuffix ? 'хвіліна_хвіліны_хвілін' : 'хвіліну_хвіліны_хвілін', - 'hh': withoutSuffix ? 'гадзіна_гадзіны_гадзін' : 'гадзіну_гадзіны_гадзін', - 'dd': 'дзень_дні_дзён', - 'MM': 'месяц_месяцы_месяцаў', - 'yy': 'год_гады_гадоў' - }; - if (key === 'm') { - return withoutSuffix ? 'хвіліна' : 'хвіліну'; - } - else if (key === 'h') { - return withoutSuffix ? 'гадзіна' : 'гадзіну'; - } - else { - return number + ' ' + plural(format[key], +number); - } -} - -var be = moment.defineLocale('be', { - months : { - format: 'студзеня_лютага_сакавіка_красавіка_траўня_чэрвеня_ліпеня_жніўня_верасня_кастрычніка_лістапада_снежня'.split('_'), - standalone: 'студзень_люты_сакавік_красавік_травень_чэрвень_ліпень_жнівень_верасень_кастрычнік_лістапад_снежань'.split('_') - }, - monthsShort : 'студ_лют_сак_крас_трав_чэрв_ліп_жнів_вер_каст_ліст_снеж'.split('_'), - weekdays : { - format: 'нядзелю_панядзелак_аўторак_сераду_чацвер_пятніцу_суботу'.split('_'), - standalone: 'нядзеля_панядзелак_аўторак_серада_чацвер_пятніца_субота'.split('_'), - isFormat: /\[ ?[Вв] ?(?:мінулую|наступную)? ?\] ?dddd/ - }, - weekdaysShort : 'нд_пн_ат_ср_чц_пт_сб'.split('_'), - weekdaysMin : 'нд_пн_ат_ср_чц_пт_сб'.split('_'), - longDateFormat : { - LT : 'HH:mm', - LTS : 'HH:mm:ss', - L : 'DD.MM.YYYY', - LL : 'D MMMM YYYY г.', - LLL : 'D MMMM YYYY г., HH:mm', - LLLL : 'dddd, D MMMM YYYY г., HH:mm' - }, - calendar : { - sameDay: '[Сёння ў] LT', - nextDay: '[Заўтра ў] LT', - lastDay: '[Учора ў] LT', - nextWeek: function () { - return '[У] dddd [ў] LT'; - }, - lastWeek: function () { - switch (this.day()) { - case 0: - case 3: - case 5: - case 6: - return '[У мінулую] dddd [ў] LT'; - case 1: - case 2: - case 4: - return '[У мінулы] dddd [ў] LT'; - } - }, - sameElse: 'L' - }, - relativeTime : { - future : 'праз %s', - past : '%s таму', - s : 'некалькі секунд', - m : relativeTimeWithPlural, - mm : relativeTimeWithPlural, - h : relativeTimeWithPlural, - hh : relativeTimeWithPlural, - d : 'дзень', - dd : relativeTimeWithPlural, - M : 'месяц', - MM : relativeTimeWithPlural, - y : 'год', - yy : relativeTimeWithPlural - }, - meridiemParse: /ночы|раніцы|дня|вечара/, - isPM : function (input) { - return /^(дня|вечара)$/.test(input); - }, - meridiem : function (hour, minute, isLower) { - if (hour < 4) { - return 'ночы'; - } else if (hour < 12) { - return 'раніцы'; - } else if (hour < 17) { - return 'дня'; - } else { - return 'вечара'; - } - }, - dayOfMonthOrdinalParse: /\d{1,2}-(і|ы|га)/, - ordinal: function (number, period) { - switch (period) { - case 'M': - case 'd': - case 'DDD': - case 'w': - case 'W': - return (number % 10 === 2 || number % 10 === 3) && (number % 100 !== 12 && number % 100 !== 13) ? number + '-і' : number + '-ы'; - case 'D': - return number + '-га'; - default: - return number; - } - }, - week : { - dow : 1, // Monday is the first day of the week. - doy : 7 // The week that contains Jan 1st is the first week of the year. - } -}); - -return be; - -}))); diff --git a/admin/bower_components/moment/locale/bg.js b/admin/bower_components/moment/locale/bg.js deleted file mode 100644 index ee06d19..0000000 --- a/admin/bower_components/moment/locale/bg.js +++ /dev/null @@ -1,90 +0,0 @@ -//! moment.js locale configuration -//! locale : Bulgarian [bg] -//! author : Krasen Borisov : https://github.com/kraz - -;(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' - && typeof require === 'function' ? factory(require('../moment')) : - typeof define === 'function' && define.amd ? define(['../moment'], factory) : - factory(global.moment) -}(this, (function (moment) { 'use strict'; - - -var bg = moment.defineLocale('bg', { - months : 'януари_февруари_март_април_май_юни_юли_август_септември_октомври_ноември_декември'.split('_'), - monthsShort : 'янр_фев_мар_апр_май_юни_юли_авг_сеп_окт_ное_дек'.split('_'), - weekdays : 'неделя_понеделник_вторник_сряда_четвъртък_петък_събота'.split('_'), - weekdaysShort : 'нед_пон_вто_сря_чет_пет_съб'.split('_'), - weekdaysMin : 'нд_пн_вт_ср_чт_пт_сб'.split('_'), - longDateFormat : { - LT : 'H:mm', - LTS : 'H:mm:ss', - L : 'D.MM.YYYY', - LL : 'D MMMM YYYY', - LLL : 'D MMMM YYYY H:mm', - LLLL : 'dddd, D MMMM YYYY H:mm' - }, - 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 години' - }, - dayOfMonthOrdinalParse: /\d{1,2}-(ев|ен|ти|ви|ри|ми)/, - ordinal : function (number) { - var lastDigit = number % 10, - last2Digits = number % 100; - if (number === 0) { - return number + '-ев'; - } else if (last2Digits === 0) { - return number + '-ен'; - } else if (last2Digits > 10 && last2Digits < 20) { - return number + '-ти'; - } else if (lastDigit === 1) { - return number + '-ви'; - } else if (lastDigit === 2) { - return number + '-ри'; - } else if (lastDigit === 7 || lastDigit === 8) { - return number + '-ми'; - } else { - return number + '-ти'; - } - }, - week : { - dow : 1, // Monday is the first day of the week. - doy : 7 // The week that contains Jan 1st is the first week of the year. - } -}); - -return bg; - -}))); diff --git a/admin/bower_components/moment/locale/bn.js b/admin/bower_components/moment/locale/bn.js deleted file mode 100644 index b6f942a..0000000 --- a/admin/bower_components/moment/locale/bn.js +++ /dev/null @@ -1,119 +0,0 @@ -//! moment.js locale configuration -//! locale : Bengali [bn] -//! author : Kaushik Gandhi : https://github.com/kaushikgandhi - -;(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' - && typeof require === 'function' ? factory(require('../moment')) : - typeof define === 'function' && define.amd ? define(['../moment'], factory) : - factory(global.moment) -}(this, (function (moment) { 'use strict'; - - -var symbolMap = { - '1': '১', - '2': '২', - '3': '৩', - '4': '৪', - '5': '৫', - '6': '৬', - '7': '৭', - '8': '৮', - '9': '৯', - '0': '০' -}; -var numberMap = { - '১': '1', - '২': '2', - '৩': '3', - '৪': '4', - '৫': '5', - '৬': '6', - '৭': '7', - '৮': '8', - '৯': '9', - '০': '0' -}; - -var bn = moment.defineLocale('bn', { - months : 'জানুয়ারী_ফেব্রুয়ারি_মার্চ_এপ্রিল_মে_জুন_জুলাই_আগস্ট_সেপ্টেম্বর_অক্টোবর_নভেম্বর_ডিসেম্বর'.split('_'), - monthsShort : 'জানু_ফেব_মার্চ_এপ্র_মে_জুন_জুল_আগ_সেপ্ট_অক্টো_নভে_ডিসে'.split('_'), - weekdays : 'রবিবার_সোমবার_মঙ্গলবার_বুধবার_বৃহস্পতিবার_শুক্রবার_শনিবার'.split('_'), - weekdaysShort : 'রবি_সোম_মঙ্গল_বুধ_বৃহস্পতি_শুক্র_শনি'.split('_'), - weekdaysMin : 'রবি_সোম_মঙ্গ_বুধ_বৃহঃ_শুক্র_শনি'.split('_'), - longDateFormat : { - LT : 'A h:mm সময়', - LTS : 'A h:mm:ss সময়', - L : 'DD/MM/YYYY', - LL : 'D MMMM YYYY', - LLL : 'D MMMM YYYY, A h:mm সময়', - LLLL : 'dddd, D MMMM YYYY, A h:mm সময়' - }, - 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 (string) { - return string.replace(/[১২৩৪৫৬৭৮৯০]/g, function (match) { - return numberMap[match]; - }); - }, - postformat: function (string) { - return string.replace(/\d/g, function (match) { - return symbolMap[match]; - }); - }, - meridiemParse: /রাত|সকাল|দুপুর|বিকাল|রাত/, - meridiemHour : function (hour, meridiem) { - if (hour === 12) { - hour = 0; - } - if ((meridiem === 'রাত' && hour >= 4) || - (meridiem === 'দুপুর' && hour < 5) || - meridiem === 'বিকাল') { - return hour + 12; - } else { - return hour; - } - }, - meridiem : function (hour, minute, isLower) { - if (hour < 4) { - return 'রাত'; - } else if (hour < 10) { - return 'সকাল'; - } else if (hour < 17) { - return 'দুপুর'; - } else if (hour < 20) { - return 'বিকাল'; - } else { - return 'রাত'; - } - }, - week : { - dow : 0, // Sunday is the first day of the week. - doy : 6 // The week that contains Jan 1st is the first week of the year. - } -}); - -return bn; - -}))); diff --git a/admin/bower_components/moment/locale/bo.js b/admin/bower_components/moment/locale/bo.js deleted file mode 100644 index eb6db47..0000000 --- a/admin/bower_components/moment/locale/bo.js +++ /dev/null @@ -1,119 +0,0 @@ -//! moment.js locale configuration -//! locale : Tibetan [bo] -//! author : Thupten N. Chakrishar : https://github.com/vajradog - -;(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' - && typeof require === 'function' ? factory(require('../moment')) : - typeof define === 'function' && define.amd ? define(['../moment'], factory) : - factory(global.moment) -}(this, (function (moment) { 'use strict'; - - -var symbolMap = { - '1': '༡', - '2': '༢', - '3': '༣', - '4': '༤', - '5': '༥', - '6': '༦', - '7': '༧', - '8': '༨', - '9': '༩', - '0': '༠' -}; -var numberMap = { - '༡': '1', - '༢': '2', - '༣': '3', - '༤': '4', - '༥': '5', - '༦': '6', - '༧': '7', - '༨': '8', - '༩': '9', - '༠': '0' -}; - -var bo = moment.defineLocale('bo', { - months : 'ཟླ་བ་དང་པོ_ཟླ་བ་གཉིས་པ_ཟླ་བ་གསུམ་པ_ཟླ་བ་བཞི་པ_ཟླ་བ་ལྔ་པ_ཟླ་བ་དྲུག་པ_ཟླ་བ་བདུན་པ_ཟླ་བ་བརྒྱད་པ_ཟླ་བ་དགུ་པ_ཟླ་བ་བཅུ་པ_ཟླ་བ་བཅུ་གཅིག་པ_ཟླ་བ་བཅུ་གཉིས་པ'.split('_'), - monthsShort : 'ཟླ་བ་དང་པོ_ཟླ་བ་གཉིས་པ_ཟླ་བ་གསུམ་པ_ཟླ་བ་བཞི་པ_ཟླ་བ་ལྔ་པ_ཟླ་བ་དྲུག་པ_ཟླ་བ་བདུན་པ_ཟླ་བ་བརྒྱད་པ_ཟླ་བ་དགུ་པ_ཟླ་བ་བཅུ་པ_ཟླ་བ་བཅུ་གཅིག་པ_ཟླ་བ་བཅུ་གཉིས་པ'.split('_'), - weekdays : 'གཟའ་ཉི་མ་_གཟའ་ཟླ་བ་_གཟའ་མིག་དམར་_གཟའ་ལྷག་པ་_གཟའ་ཕུར་བུ_གཟའ་པ་སངས་_གཟའ་སྤེན་པ་'.split('_'), - weekdaysShort : 'ཉི་མ་_ཟླ་བ་_མིག་དམར་_ལྷག་པ་_ཕུར་བུ_པ་སངས་_སྤེན་པ་'.split('_'), - weekdaysMin : 'ཉི་མ་_ཟླ་བ་_མིག་དམར་_ལྷག་པ་_ཕུར་བུ_པ་སངས་_སྤེན་པ་'.split('_'), - longDateFormat : { - LT : 'A h:mm', - LTS : 'A h:mm:ss', - L : 'DD/MM/YYYY', - LL : 'D MMMM YYYY', - LLL : 'D MMMM YYYY, A h:mm', - LLLL : 'dddd, D MMMM YYYY, A h:mm' - }, - calendar : { - sameDay : '[དི་རིང] LT', - nextDay : '[སང་ཉིན] LT', - nextWeek : '[བདུན་ཕྲག་རྗེས་མ], 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 (string) { - return string.replace(/[༡༢༣༤༥༦༧༨༩༠]/g, function (match) { - return numberMap[match]; - }); - }, - postformat: function (string) { - return string.replace(/\d/g, function (match) { - return symbolMap[match]; - }); - }, - meridiemParse: /མཚན་མོ|ཞོགས་ཀས|ཉིན་གུང|དགོང་དག|མཚན་མོ/, - meridiemHour : function (hour, meridiem) { - if (hour === 12) { - hour = 0; - } - if ((meridiem === 'མཚན་མོ' && hour >= 4) || - (meridiem === 'ཉིན་གུང' && hour < 5) || - meridiem === 'དགོང་དག') { - return hour + 12; - } else { - return hour; - } - }, - meridiem : function (hour, minute, isLower) { - if (hour < 4) { - return 'མཚན་མོ'; - } else if (hour < 10) { - return 'ཞོགས་ཀས'; - } else if (hour < 17) { - return 'ཉིན་གུང'; - } else if (hour < 20) { - return 'དགོང་དག'; - } else { - return 'མཚན་མོ'; - } - }, - week : { - dow : 0, // Sunday is the first day of the week. - doy : 6 // The week that contains Jan 1st is the first week of the year. - } -}); - -return bo; - -}))); diff --git a/admin/bower_components/moment/locale/br.js b/admin/bower_components/moment/locale/br.js deleted file mode 100644 index 7233063..0000000 --- a/admin/bower_components/moment/locale/br.js +++ /dev/null @@ -1,108 +0,0 @@ -//! moment.js locale configuration -//! locale : Breton [br] -//! author : Jean-Baptiste Le Duigou : https://github.com/jbleduigou - -;(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' - && typeof require === 'function' ? factory(require('../moment')) : - typeof define === 'function' && define.amd ? define(['../moment'], factory) : - factory(global.moment) -}(this, (function (moment) { 'use strict'; - - -function relativeTimeWithMutation(number, withoutSuffix, key) { - var format = { - 'mm': 'munutenn', - 'MM': 'miz', - 'dd': 'devezh' - }; - return number + ' ' + mutation(format[key], number); -} -function specialMutationForYears(number) { - switch (lastNumber(number)) { - case 1: - case 3: - case 4: - case 5: - case 9: - return number + ' bloaz'; - default: - return number + ' vloaz'; - } -} -function lastNumber(number) { - if (number > 9) { - return lastNumber(number % 10); - } - return number; -} -function mutation(text, number) { - if (number === 2) { - return softMutation(text); - } - return text; -} -function softMutation(text) { - var mutationTable = { - 'm': 'v', - 'b': 'v', - 'd': 'z' - }; - if (mutationTable[text.charAt(0)] === undefined) { - return text; - } - return mutationTable[text.charAt(0)] + text.substring(1); -} - -var br = moment.defineLocale('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('_'), - weekdaysParseExact : true, - longDateFormat : { - LT : 'h[e]mm A', - LTS : 'h[e]mm:ss A', - L : 'DD/MM/YYYY', - LL : 'D [a viz] MMMM YYYY', - LLL : 'D [a viz] MMMM YYYY h[e]mm A', - LLLL : 'dddd, D [a viz] MMMM YYYY h[e]mm A' - }, - 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 : relativeTimeWithMutation, - h : 'un eur', - hh : '%d eur', - d : 'un devezh', - dd : relativeTimeWithMutation, - M : 'ur miz', - MM : relativeTimeWithMutation, - y : 'ur bloaz', - yy : specialMutationForYears - }, - dayOfMonthOrdinalParse: /\d{1,2}(añ|vet)/, - ordinal : function (number) { - var output = (number === 1) ? 'añ' : 'vet'; - return number + output; - }, - week : { - dow : 1, // Monday is the first day of the week. - doy : 4 // The week that contains Jan 4th is the first week of the year. - } -}); - -return br; - -}))); diff --git a/admin/bower_components/moment/locale/bs.js b/admin/bower_components/moment/locale/bs.js deleted file mode 100644 index 760a786..0000000 --- a/admin/bower_components/moment/locale/bs.js +++ /dev/null @@ -1,143 +0,0 @@ -//! moment.js locale configuration -//! locale : Bosnian [bs] -//! author : Nedim Cholich : https://github.com/frontyard -//! based on (hr) translation by Bojan Marković - -;(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' - && typeof require === 'function' ? factory(require('../moment')) : - typeof define === 'function' && define.amd ? define(['../moment'], factory) : - factory(global.moment) -}(this, (function (moment) { 'use strict'; - - -function translate(number, withoutSuffix, key) { - var result = number + ' '; - switch (key) { - case 'm': - return withoutSuffix ? 'jedna minuta' : 'jedne minute'; - case 'mm': - if (number === 1) { - result += 'minuta'; - } else if (number === 2 || number === 3 || number === 4) { - result += 'minute'; - } else { - result += 'minuta'; - } - return result; - case 'h': - return withoutSuffix ? 'jedan sat' : 'jednog sata'; - case 'hh': - if (number === 1) { - result += 'sat'; - } else if (number === 2 || number === 3 || number === 4) { - result += 'sata'; - } else { - result += 'sati'; - } - return result; - case 'dd': - if (number === 1) { - result += 'dan'; - } else { - result += 'dana'; - } - return result; - case 'MM': - if (number === 1) { - result += 'mjesec'; - } else if (number === 2 || number === 3 || number === 4) { - result += 'mjeseca'; - } else { - result += 'mjeseci'; - } - return result; - case 'yy': - if (number === 1) { - result += 'godina'; - } else if (number === 2 || number === 3 || number === 4) { - result += 'godine'; - } else { - result += 'godina'; - } - return result; - } -} - -var bs = moment.defineLocale('bs', { - months : 'januar_februar_mart_april_maj_juni_juli_august_septembar_oktobar_novembar_decembar'.split('_'), - monthsShort : 'jan._feb._mar._apr._maj._jun._jul._aug._sep._okt._nov._dec.'.split('_'), - monthsParseExact: true, - 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('_'), - weekdaysParseExact : true, - longDateFormat : { - LT : 'H:mm', - LTS : 'H:mm:ss', - L : 'DD.MM.YYYY', - LL : 'D. MMMM YYYY', - LLL : 'D. MMMM YYYY H:mm', - LLLL : 'dddd, D. MMMM YYYY H:mm' - }, - 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 : translate, - mm : translate, - h : translate, - hh : translate, - d : 'dan', - dd : translate, - M : 'mjesec', - MM : translate, - y : 'godinu', - yy : translate - }, - dayOfMonthOrdinalParse: /\d{1,2}\./, - ordinal : '%d.', - week : { - dow : 1, // Monday is the first day of the week. - doy : 7 // The week that contains Jan 1st is the first week of the year. - } -}); - -return bs; - -}))); diff --git a/admin/bower_components/moment/locale/ca.js b/admin/bower_components/moment/locale/ca.js deleted file mode 100644 index bc490a2..0000000 --- a/admin/bower_components/moment/locale/ca.js +++ /dev/null @@ -1,88 +0,0 @@ -//! moment.js locale configuration -//! locale : Catalan [ca] -//! author : Juan G. Hurtado : https://github.com/juanghurtado - -;(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' - && typeof require === 'function' ? factory(require('../moment')) : - typeof define === 'function' && define.amd ? define(['../moment'], factory) : - factory(global.moment) -}(this, (function (moment) { 'use strict'; - - -var ca = moment.defineLocale('ca', { - months : { - standalone: 'gener_febrer_març_abril_maig_juny_juliol_agost_setembre_octubre_novembre_desembre'.split('_'), - format: 'de gener_de febrer_de març_d\'abril_de maig_de juny_de juliol_d\'agost_de setembre_d\'octubre_de novembre_de desembre'.split('_'), - isFormat: /D[oD]?(\s)+MMMM/ - }, - monthsShort : 'gen._febr._març_abr._maig_juny_jul._ag._set._oct._nov._des.'.split('_'), - monthsParseExact : true, - 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('_'), - weekdaysParseExact : true, - longDateFormat : { - LT : 'H:mm', - LTS : 'H:mm:ss', - L : 'DD/MM/YYYY', - LL : '[el] D MMMM [de] YYYY', - ll : 'D MMM YYYY', - LLL : '[el] D MMMM [de] YYYY [a les] H:mm', - lll : 'D MMM YYYY, H:mm', - LLLL : '[el] dddd D MMMM [de] YYYY [a les] H:mm', - llll : 'ddd D MMM YYYY, H:mm' - }, - calendar : { - sameDay : function () { - return '[avui a ' + ((this.hours() !== 1) ? 'les' : 'la') + '] LT'; - }, - nextDay : function () { - return '[demà a ' + ((this.hours() !== 1) ? 'les' : 'la') + '] LT'; - }, - nextWeek : function () { - return 'dddd [a ' + ((this.hours() !== 1) ? 'les' : 'la') + '] LT'; - }, - lastDay : function () { - return '[ahir a ' + ((this.hours() !== 1) ? 'les' : 'la') + '] LT'; - }, - lastWeek : function () { - return '[el] dddd [passat a ' + ((this.hours() !== 1) ? 'les' : 'la') + '] LT'; - }, - sameElse : 'L' - }, - relativeTime : { - future : 'd\'aquí %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' - }, - dayOfMonthOrdinalParse: /\d{1,2}(r|n|t|è|a)/, - ordinal : function (number, period) { - var output = (number === 1) ? 'r' : - (number === 2) ? 'n' : - (number === 3) ? 'r' : - (number === 4) ? 't' : 'è'; - if (period === 'w' || period === 'W') { - output = 'a'; - } - return number + output; - }, - week : { - dow : 1, // Monday is the first day of the week. - doy : 4 // The week that contains Jan 4th is the first week of the year. - } -}); - -return ca; - -}))); diff --git a/admin/bower_components/moment/locale/cs.js b/admin/bower_components/moment/locale/cs.js deleted file mode 100644 index 952dc49..0000000 --- a/admin/bower_components/moment/locale/cs.js +++ /dev/null @@ -1,172 +0,0 @@ -//! moment.js locale configuration -//! locale : Czech [cs] -//! author : petrbela : https://github.com/petrbela - -;(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' - && typeof require === 'function' ? factory(require('../moment')) : - typeof define === 'function' && define.amd ? define(['../moment'], factory) : - factory(global.moment) -}(this, (function (moment) { 'use strict'; - - -var months = 'leden_únor_březen_duben_květen_červen_červenec_srpen_září_říjen_listopad_prosinec'.split('_'); -var monthsShort = 'led_úno_bře_dub_kvě_čvn_čvc_srp_zář_říj_lis_pro'.split('_'); -function plural(n) { - return (n > 1) && (n < 5) && (~~(n / 10) !== 1); -} -function translate(number, withoutSuffix, key, isFuture) { - var result = number + ' '; - switch (key) { - case 's': // a few seconds / in a few seconds / a few seconds ago - return (withoutSuffix || isFuture) ? 'pár sekund' : 'pár sekundami'; - case 'm': // a minute / in a minute / a minute ago - return withoutSuffix ? 'minuta' : (isFuture ? 'minutu' : 'minutou'); - case 'mm': // 9 minutes / in 9 minutes / 9 minutes ago - if (withoutSuffix || isFuture) { - return result + (plural(number) ? 'minuty' : 'minut'); - } else { - return result + 'minutami'; - } - break; - case 'h': // an hour / in an hour / an hour ago - return withoutSuffix ? 'hodina' : (isFuture ? 'hodinu' : 'hodinou'); - case 'hh': // 9 hours / in 9 hours / 9 hours ago - if (withoutSuffix || isFuture) { - return result + (plural(number) ? 'hodiny' : 'hodin'); - } else { - return result + 'hodinami'; - } - break; - case 'd': // a day / in a day / a day ago - return (withoutSuffix || isFuture) ? 'den' : 'dnem'; - case 'dd': // 9 days / in 9 days / 9 days ago - if (withoutSuffix || isFuture) { - return result + (plural(number) ? 'dny' : 'dní'); - } else { - return result + 'dny'; - } - break; - case 'M': // a month / in a month / a month ago - return (withoutSuffix || isFuture) ? 'měsíc' : 'měsícem'; - case 'MM': // 9 months / in 9 months / 9 months ago - if (withoutSuffix || isFuture) { - return result + (plural(number) ? 'měsíce' : 'měsíců'); - } else { - return result + 'měsíci'; - } - break; - case 'y': // a year / in a year / a year ago - return (withoutSuffix || isFuture) ? 'rok' : 'rokem'; - case 'yy': // 9 years / in 9 years / 9 years ago - if (withoutSuffix || isFuture) { - return result + (plural(number) ? 'roky' : 'let'); - } else { - return result + 'lety'; - } - break; - } -} - -var cs = moment.defineLocale('cs', { - months : months, - monthsShort : monthsShort, - monthsParse : (function (months, monthsShort) { - var i, _monthsParse = []; - for (i = 0; i < 12; i++) { - // use custom parser to solve problem with July (červenec) - _monthsParse[i] = new RegExp('^' + months[i] + '$|^' + monthsShort[i] + '$', 'i'); - } - return _monthsParse; - }(months, monthsShort)), - shortMonthsParse : (function (monthsShort) { - var i, _shortMonthsParse = []; - for (i = 0; i < 12; i++) { - _shortMonthsParse[i] = new RegExp('^' + monthsShort[i] + '$', 'i'); - } - return _shortMonthsParse; - }(monthsShort)), - longMonthsParse : (function (months) { - var i, _longMonthsParse = []; - for (i = 0; i < 12; i++) { - _longMonthsParse[i] = new RegExp('^' + months[i] + '$', 'i'); - } - return _longMonthsParse; - }(months)), - 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', - LTS : 'H:mm:ss', - L : 'DD.MM.YYYY', - LL : 'D. MMMM YYYY', - LLL : 'D. MMMM YYYY H:mm', - LLLL : 'dddd D. MMMM YYYY H:mm', - l : 'D. M. YYYY' - }, - 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 : translate, - m : translate, - mm : translate, - h : translate, - hh : translate, - d : translate, - dd : translate, - M : translate, - MM : translate, - y : translate, - yy : translate - }, - dayOfMonthOrdinalParse : /\d{1,2}\./, - ordinal : '%d.', - week : { - dow : 1, // Monday is the first day of the week. - doy : 4 // The week that contains Jan 4th is the first week of the year. - } -}); - -return cs; - -}))); diff --git a/admin/bower_components/moment/locale/cv.js b/admin/bower_components/moment/locale/cv.js deleted file mode 100644 index 6d20779..0000000 --- a/admin/bower_components/moment/locale/cv.js +++ /dev/null @@ -1,63 +0,0 @@ -//! moment.js locale configuration -//! locale : Chuvash [cv] -//! author : Anatoly Mironov : https://github.com/mirontoli - -;(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' - && typeof require === 'function' ? factory(require('../moment')) : - typeof define === 'function' && define.amd ? define(['../moment'], factory) : - factory(global.moment) -}(this, (function (moment) { 'use strict'; - - -var cv = moment.defineLocale('cv', { - months : 'кӑрлач_нарӑс_пуш_ака_май_ҫӗртме_утӑ_ҫурла_авӑн_юпа_чӳк_раштав'.split('_'), - monthsShort : 'кӑр_нар_пуш_ака_май_ҫӗр_утӑ_ҫур_авн_юпа_чӳк_раш'.split('_'), - weekdays : 'вырсарникун_тунтикун_ытларикун_юнкун_кӗҫнерникун_эрнекун_шӑматкун'.split('_'), - weekdaysShort : 'выр_тун_ытл_юн_кӗҫ_эрн_шӑм'.split('_'), - weekdaysMin : 'вр_тн_ыт_юн_кҫ_эр_шм'.split('_'), - longDateFormat : { - LT : 'HH:mm', - LTS : 'HH:mm:ss', - L : 'DD-MM-YYYY', - LL : 'YYYY [ҫулхи] MMMM [уйӑхӗн] D[-мӗшӗ]', - LLL : 'YYYY [ҫулхи] MMMM [уйӑхӗн] D[-мӗшӗ], HH:mm', - LLLL : 'dddd, YYYY [ҫулхи] MMMM [уйӑхӗн] D[-мӗшӗ], HH:mm' - }, - calendar : { - sameDay: '[Паян] LT [сехетре]', - nextDay: '[Ыран] LT [сехетре]', - lastDay: '[Ӗнер] LT [сехетре]', - nextWeek: '[Ҫитес] dddd LT [сехетре]', - lastWeek: '[Иртнӗ] dddd LT [сехетре]', - sameElse: 'L' - }, - relativeTime : { - future : function (output) { - var affix = /сехет$/i.exec(output) ? 'рен' : /ҫул$/i.exec(output) ? 'тан' : 'ран'; - return output + affix; - }, - past : '%s каялла', - s : 'пӗр-ик ҫеккунт', - m : 'пӗр минут', - mm : '%d минут', - h : 'пӗр сехет', - hh : '%d сехет', - d : 'пӗр кун', - dd : '%d кун', - M : 'пӗр уйӑх', - MM : '%d уйӑх', - y : 'пӗр ҫул', - yy : '%d ҫул' - }, - dayOfMonthOrdinalParse: /\d{1,2}-мӗш/, - ordinal : '%d-мӗш', - week : { - dow : 1, // Monday is the first day of the week. - doy : 7 // The week that contains Jan 1st is the first week of the year. - } -}); - -return cv; - -}))); diff --git a/admin/bower_components/moment/locale/cy.js b/admin/bower_components/moment/locale/cy.js deleted file mode 100644 index c570c22..0000000 --- a/admin/bower_components/moment/locale/cy.js +++ /dev/null @@ -1,81 +0,0 @@ -//! moment.js locale configuration -//! locale : Welsh [cy] -//! author : Robert Allen : https://github.com/robgallen -//! author : https://github.com/ryangreaves - -;(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' - && typeof require === 'function' ? factory(require('../moment')) : - typeof define === 'function' && define.amd ? define(['../moment'], factory) : - factory(global.moment) -}(this, (function (moment) { 'use strict'; - - -var cy = moment.defineLocale('cy', { - months: 'Ionawr_Chwefror_Mawrth_Ebrill_Mai_Mehefin_Gorffennaf_Awst_Medi_Hydref_Tachwedd_Rhagfyr'.split('_'), - monthsShort: 'Ion_Chwe_Maw_Ebr_Mai_Meh_Gor_Aws_Med_Hyd_Tach_Rhag'.split('_'), - weekdays: 'Dydd Sul_Dydd Llun_Dydd Mawrth_Dydd Mercher_Dydd Iau_Dydd Gwener_Dydd Sadwrn'.split('_'), - weekdaysShort: 'Sul_Llun_Maw_Mer_Iau_Gwe_Sad'.split('_'), - weekdaysMin: 'Su_Ll_Ma_Me_Ia_Gw_Sa'.split('_'), - weekdaysParseExact : true, - // time formats are the same as en-gb - longDateFormat: { - LT: 'HH:mm', - LTS : 'HH:mm:ss', - L: 'DD/MM/YYYY', - LL: 'D MMMM YYYY', - LLL: 'D MMMM YYYY HH:mm', - LLLL: 'dddd, D MMMM YYYY HH:mm' - }, - calendar: { - sameDay: '[Heddiw am] LT', - nextDay: '[Yfory am] LT', - nextWeek: 'dddd [am] LT', - lastDay: '[Ddoe am] LT', - lastWeek: 'dddd [diwethaf am] LT', - sameElse: 'L' - }, - relativeTime: { - future: 'mewn %s', - past: '%s yn ôl', - s: 'ychydig eiliadau', - m: 'munud', - mm: '%d munud', - h: 'awr', - hh: '%d awr', - d: 'diwrnod', - dd: '%d diwrnod', - M: 'mis', - MM: '%d mis', - y: 'blwyddyn', - yy: '%d flynedd' - }, - dayOfMonthOrdinalParse: /\d{1,2}(fed|ain|af|il|ydd|ed|eg)/, - // traditional ordinal numbers above 31 are not commonly used in colloquial Welsh - ordinal: function (number) { - var b = number, - output = '', - lookup = [ - '', 'af', 'il', 'ydd', 'ydd', 'ed', 'ed', 'ed', 'fed', 'fed', 'fed', // 1af to 10fed - 'eg', 'fed', 'eg', 'eg', 'fed', 'eg', 'eg', 'fed', 'eg', 'fed' // 11eg to 20fed - ]; - if (b > 20) { - if (b === 40 || b === 50 || b === 60 || b === 80 || b === 100) { - output = 'fed'; // not 30ain, 70ain or 90ain - } else { - output = 'ain'; - } - } else if (b > 0) { - output = lookup[b]; - } - return number + output; - }, - week : { - dow : 1, // Monday is the first day of the week. - doy : 4 // The week that contains Jan 4th is the first week of the year. - } -}); - -return cy; - -}))); diff --git a/admin/bower_components/moment/locale/da.js b/admin/bower_components/moment/locale/da.js deleted file mode 100644 index 357d870..0000000 --- a/admin/bower_components/moment/locale/da.js +++ /dev/null @@ -1,60 +0,0 @@ -//! moment.js locale configuration -//! locale : Danish [da] -//! author : Ulrik Nielsen : https://github.com/mrbase - -;(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' - && typeof require === 'function' ? factory(require('../moment')) : - typeof define === 'function' && define.amd ? define(['../moment'], factory) : - factory(global.moment) -}(this, (function (moment) { 'use strict'; - - -var da = moment.defineLocale('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', - LTS : 'HH:mm:ss', - L : 'DD/MM/YYYY', - LL : 'D. MMMM YYYY', - LLL : 'D. MMMM YYYY HH:mm', - LLLL : 'dddd [d.] D. MMMM YYYY [kl.] HH:mm' - }, - calendar : { - sameDay : '[i dag kl.] LT', - nextDay : '[i morgen kl.] LT', - nextWeek : 'på dddd [kl.] LT', - lastDay : '[i går kl.] LT', - lastWeek : '[i] dddd[s 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' - }, - dayOfMonthOrdinalParse: /\d{1,2}\./, - ordinal : '%d.', - week : { - dow : 1, // Monday is the first day of the week. - doy : 4 // The week that contains Jan 4th is the first week of the year. - } -}); - -return da; - -}))); diff --git a/admin/bower_components/moment/locale/de-at.js b/admin/bower_components/moment/locale/de-at.js deleted file mode 100644 index aee7b8c..0000000 --- a/admin/bower_components/moment/locale/de-at.js +++ /dev/null @@ -1,79 +0,0 @@ -//! moment.js locale configuration -//! locale : German (Austria) [de-at] -//! author : lluchs : https://github.com/lluchs -//! author: Menelion Elensúle: https://github.com/Oire -//! author : Martin Groller : https://github.com/MadMG -//! author : Mikolaj Dadela : https://github.com/mik01aj - -;(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' - && typeof require === 'function' ? factory(require('../moment')) : - typeof define === 'function' && define.amd ? define(['../moment'], factory) : - factory(global.moment) -}(this, (function (moment) { 'use strict'; - - -function processRelativeTime(number, withoutSuffix, key, isFuture) { - var format = { - 'm': ['eine Minute', 'einer Minute'], - 'h': ['eine Stunde', 'einer Stunde'], - 'd': ['ein Tag', 'einem Tag'], - 'dd': [number + ' Tage', number + ' Tagen'], - 'M': ['ein Monat', 'einem Monat'], - 'MM': [number + ' Monate', number + ' Monaten'], - 'y': ['ein Jahr', 'einem Jahr'], - 'yy': [number + ' Jahre', number + ' Jahren'] - }; - return withoutSuffix ? format[key][0] : format[key][1]; -} - -var deAt = moment.defineLocale('de-at', { - months : 'Jänner_Februar_März_April_Mai_Juni_Juli_August_September_Oktober_November_Dezember'.split('_'), - monthsShort : 'Jän._Febr._Mrz._Apr._Mai_Jun._Jul._Aug._Sept._Okt._Nov._Dez.'.split('_'), - monthsParseExact : true, - 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('_'), - weekdaysParseExact : true, - longDateFormat : { - LT: 'HH:mm', - LTS: 'HH:mm:ss', - L : 'DD.MM.YYYY', - LL : 'D. MMMM YYYY', - LLL : 'D. MMMM YYYY HH:mm', - LLLL : 'dddd, D. MMMM YYYY HH:mm' - }, - calendar : { - sameDay: '[heute um] LT [Uhr]', - sameElse: 'L', - nextDay: '[morgen um] LT [Uhr]', - nextWeek: 'dddd [um] LT [Uhr]', - lastDay: '[gestern um] LT [Uhr]', - lastWeek: '[letzten] dddd [um] LT [Uhr]' - }, - relativeTime : { - future : 'in %s', - past : 'vor %s', - s : 'ein paar Sekunden', - m : processRelativeTime, - mm : '%d Minuten', - h : processRelativeTime, - hh : '%d Stunden', - d : processRelativeTime, - dd : processRelativeTime, - M : processRelativeTime, - MM : processRelativeTime, - y : processRelativeTime, - yy : processRelativeTime - }, - dayOfMonthOrdinalParse: /\d{1,2}\./, - ordinal : '%d.', - week : { - dow : 1, // Monday is the first day of the week. - doy : 4 // The week that contains Jan 4th is the first week of the year. - } -}); - -return deAt; - -}))); diff --git a/admin/bower_components/moment/locale/de-ch.js b/admin/bower_components/moment/locale/de-ch.js deleted file mode 100644 index e70f5e9..0000000 --- a/admin/bower_components/moment/locale/de-ch.js +++ /dev/null @@ -1,78 +0,0 @@ -//! moment.js locale configuration -//! locale : German (Switzerland) [de-ch] -//! author : sschueller : https://github.com/sschueller - -;(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' - && typeof require === 'function' ? factory(require('../moment')) : - typeof define === 'function' && define.amd ? define(['../moment'], factory) : - factory(global.moment) -}(this, (function (moment) { 'use strict'; - - -// based on: https://www.bk.admin.ch/dokumentation/sprachen/04915/05016/index.html?lang=de# - -function processRelativeTime(number, withoutSuffix, key, isFuture) { - var format = { - 'm': ['eine Minute', 'einer Minute'], - 'h': ['eine Stunde', 'einer Stunde'], - 'd': ['ein Tag', 'einem Tag'], - 'dd': [number + ' Tage', number + ' Tagen'], - 'M': ['ein Monat', 'einem Monat'], - 'MM': [number + ' Monate', number + ' Monaten'], - 'y': ['ein Jahr', 'einem Jahr'], - 'yy': [number + ' Jahre', number + ' Jahren'] - }; - return withoutSuffix ? format[key][0] : format[key][1]; -} - -var deCh = moment.defineLocale('de-ch', { - months : 'Januar_Februar_März_April_Mai_Juni_Juli_August_September_Oktober_November_Dezember'.split('_'), - monthsShort : 'Jan._Febr._März_April_Mai_Juni_Juli_Aug._Sept._Okt._Nov._Dez.'.split('_'), - monthsParseExact : true, - 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('_'), - weekdaysParseExact : true, - longDateFormat : { - LT: 'HH.mm', - LTS: 'HH.mm.ss', - L : 'DD.MM.YYYY', - LL : 'D. MMMM YYYY', - LLL : 'D. MMMM YYYY HH.mm', - LLLL : 'dddd, D. MMMM YYYY HH.mm' - }, - calendar : { - sameDay: '[heute um] LT [Uhr]', - sameElse: 'L', - nextDay: '[morgen um] LT [Uhr]', - nextWeek: 'dddd [um] LT [Uhr]', - lastDay: '[gestern um] LT [Uhr]', - lastWeek: '[letzten] dddd [um] LT [Uhr]' - }, - relativeTime : { - future : 'in %s', - past : 'vor %s', - s : 'ein paar Sekunden', - m : processRelativeTime, - mm : '%d Minuten', - h : processRelativeTime, - hh : '%d Stunden', - d : processRelativeTime, - dd : processRelativeTime, - M : processRelativeTime, - MM : processRelativeTime, - y : processRelativeTime, - yy : processRelativeTime - }, - dayOfMonthOrdinalParse: /\d{1,2}\./, - ordinal : '%d.', - week : { - dow : 1, // Monday is the first day of the week. - doy : 4 // The week that contains Jan 4th is the first week of the year. - } -}); - -return deCh; - -}))); diff --git a/admin/bower_components/moment/locale/de.js b/admin/bower_components/moment/locale/de.js deleted file mode 100644 index a3263e8..0000000 --- a/admin/bower_components/moment/locale/de.js +++ /dev/null @@ -1,78 +0,0 @@ -//! moment.js locale configuration -//! locale : German [de] -//! author : lluchs : https://github.com/lluchs -//! author: Menelion Elensúle: https://github.com/Oire -//! author : Mikolaj Dadela : https://github.com/mik01aj - -;(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' - && typeof require === 'function' ? factory(require('../moment')) : - typeof define === 'function' && define.amd ? define(['../moment'], factory) : - factory(global.moment) -}(this, (function (moment) { 'use strict'; - - -function processRelativeTime(number, withoutSuffix, key, isFuture) { - var format = { - 'm': ['eine Minute', 'einer Minute'], - 'h': ['eine Stunde', 'einer Stunde'], - 'd': ['ein Tag', 'einem Tag'], - 'dd': [number + ' Tage', number + ' Tagen'], - 'M': ['ein Monat', 'einem Monat'], - 'MM': [number + ' Monate', number + ' Monaten'], - 'y': ['ein Jahr', 'einem Jahr'], - 'yy': [number + ' Jahre', number + ' Jahren'] - }; - return withoutSuffix ? format[key][0] : format[key][1]; -} - -var de = moment.defineLocale('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('_'), - monthsParseExact : true, - 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('_'), - weekdaysParseExact : true, - longDateFormat : { - LT: 'HH:mm', - LTS: 'HH:mm:ss', - L : 'DD.MM.YYYY', - LL : 'D. MMMM YYYY', - LLL : 'D. MMMM YYYY HH:mm', - LLLL : 'dddd, D. MMMM YYYY HH:mm' - }, - calendar : { - sameDay: '[heute um] LT [Uhr]', - sameElse: 'L', - nextDay: '[morgen um] LT [Uhr]', - nextWeek: 'dddd [um] LT [Uhr]', - lastDay: '[gestern um] LT [Uhr]', - lastWeek: '[letzten] dddd [um] LT [Uhr]' - }, - relativeTime : { - future : 'in %s', - past : 'vor %s', - s : 'ein paar Sekunden', - m : processRelativeTime, - mm : '%d Minuten', - h : processRelativeTime, - hh : '%d Stunden', - d : processRelativeTime, - dd : processRelativeTime, - M : processRelativeTime, - MM : processRelativeTime, - y : processRelativeTime, - yy : processRelativeTime - }, - dayOfMonthOrdinalParse: /\d{1,2}\./, - ordinal : '%d.', - week : { - dow : 1, // Monday is the first day of the week. - doy : 4 // The week that contains Jan 4th is the first week of the year. - } -}); - -return de; - -}))); diff --git a/admin/bower_components/moment/locale/dv.js b/admin/bower_components/moment/locale/dv.js deleted file mode 100644 index 065df78..0000000 --- a/admin/bower_components/moment/locale/dv.js +++ /dev/null @@ -1,100 +0,0 @@ -//! moment.js locale configuration -//! locale : Maldivian [dv] -//! author : Jawish Hameed : https://github.com/jawish - -;(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' - && typeof require === 'function' ? factory(require('../moment')) : - typeof define === 'function' && define.amd ? define(['../moment'], factory) : - factory(global.moment) -}(this, (function (moment) { 'use strict'; - - -var months = [ - 'ޖެނުއަރީ', - 'ފެބްރުއަރީ', - 'މާރިޗު', - 'އޭޕްރީލު', - 'މޭ', - 'ޖޫން', - 'ޖުލައި', - 'އޯގަސްޓު', - 'ސެޕްޓެމްބަރު', - 'އޮކްޓޯބަރު', - 'ނޮވެމްބަރު', - 'ޑިސެމްބަރު' -]; -var weekdays = [ - 'އާދިއްތަ', - 'ހޯމަ', - 'އަންގާރަ', - 'ބުދަ', - 'ބުރާސްފަތި', - 'ހުކުރު', - 'ހޮނިހިރު' -]; - -var dv = moment.defineLocale('dv', { - months : months, - monthsShort : months, - weekdays : weekdays, - weekdaysShort : weekdays, - weekdaysMin : 'އާދި_ހޯމަ_އަން_ބުދަ_ބުރާ_ހުކު_ހޮނި'.split('_'), - longDateFormat : { - - LT : 'HH:mm', - LTS : 'HH:mm:ss', - L : 'D/M/YYYY', - LL : 'D MMMM YYYY', - LLL : 'D MMMM YYYY HH:mm', - LLLL : 'dddd D MMMM YYYY HH:mm' - }, - meridiemParse: /މކ|މފ/, - isPM : function (input) { - return 'މފ' === input; - }, - meridiem : function (hour, minute, isLower) { - if (hour < 12) { - return 'މކ'; - } else { - return 'މފ'; - } - }, - 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 (string) { - return string.replace(/،/g, ','); - }, - postformat: function (string) { - return string.replace(/,/g, '،'); - }, - week : { - dow : 7, // Sunday is the first day of the week. - doy : 12 // The week that contains Jan 1st is the first week of the year. - } -}); - -return dv; - -}))); diff --git a/admin/bower_components/moment/locale/el.js b/admin/bower_components/moment/locale/el.js deleted file mode 100644 index bf3f4c9..0000000 --- a/admin/bower_components/moment/locale/el.js +++ /dev/null @@ -1,100 +0,0 @@ -//! moment.js locale configuration -//! locale : Greek [el] -//! author : Aggelos Karalias : https://github.com/mehiel - -;(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' - && typeof require === 'function' ? factory(require('../moment')) : - typeof define === 'function' && define.amd ? define(['../moment'], factory) : - factory(global.moment) -}(this, (function (moment) { 'use strict'; - -function isFunction(input) { - return input instanceof Function || Object.prototype.toString.call(input) === '[object Function]'; -} - - -var el = moment.defineLocale('el', { - monthsNominativeEl : 'Ιανουάριος_Φεβρουάριος_Μάρτιος_Απρίλιος_Μάιος_Ιούνιος_Ιούλιος_Αύγουστος_Σεπτέμβριος_Οκτώβριος_Νοέμβριος_Δεκέμβριος'.split('_'), - monthsGenitiveEl : 'Ιανουαρίου_Φεβρουαρίου_Μαρτίου_Απριλίου_Μαΐου_Ιουνίου_Ιουλίου_Αυγούστου_Σεπτεμβρίου_Οκτωβρίου_Νοεμβρίου_Δεκεμβρίου'.split('_'), - months : function (momentToFormat, format) { - if (!momentToFormat) { - return this._monthsNominativeEl; - } else if (/D/.test(format.substring(0, format.indexOf('MMMM')))) { // if there is a day number before 'MMMM' - return this._monthsGenitiveEl[momentToFormat.month()]; - } else { - return this._monthsNominativeEl[momentToFormat.month()]; - } - }, - monthsShort : 'Ιαν_Φεβ_Μαρ_Απρ_Μαϊ_Ιουν_Ιουλ_Αυγ_Σεπ_Οκτ_Νοε_Δεκ'.split('_'), - weekdays : 'Κυριακή_Δευτέρα_Τρίτη_Τετάρτη_Πέμπτη_Παρασκευή_Σάββατο'.split('_'), - weekdaysShort : 'Κυρ_Δευ_Τρι_Τετ_Πεμ_Παρ_Σαβ'.split('_'), - weekdaysMin : 'Κυ_Δε_Τρ_Τε_Πε_Πα_Σα'.split('_'), - meridiem : function (hours, minutes, isLower) { - if (hours > 11) { - return isLower ? 'μμ' : 'ΜΜ'; - } else { - return isLower ? 'πμ' : 'ΠΜ'; - } - }, - isPM : function (input) { - return ((input + '').toLowerCase()[0] === 'μ'); - }, - meridiemParse : /[ΠΜ]\.?Μ?\.?/i, - longDateFormat : { - LT : 'h:mm A', - LTS : 'h:mm:ss A', - L : 'DD/MM/YYYY', - LL : 'D MMMM YYYY', - LLL : 'D MMMM YYYY h:mm A', - LLLL : 'dddd, D MMMM YYYY h:mm A' - }, - calendarEl : { - sameDay : '[Σήμερα {}] LT', - nextDay : '[Αύριο {}] LT', - nextWeek : 'dddd [{}] LT', - lastDay : '[Χθες {}] LT', - lastWeek : function () { - switch (this.day()) { - case 6: - return '[το προηγούμενο] dddd [{}] LT'; - default: - return '[την προηγούμενη] dddd [{}] LT'; - } - }, - sameElse : 'L' - }, - calendar : function (key, mom) { - var output = this._calendarEl[key], - hours = mom && mom.hours(); - if (isFunction(output)) { - output = output.apply(mom); - } - return output.replace('{}', (hours % 12 === 1 ? 'στη' : 'στις')); - }, - relativeTime : { - future : 'σε %s', - past : '%s πριν', - s : 'λίγα δευτερόλεπτα', - m : 'ένα λεπτό', - mm : '%d λεπτά', - h : 'μία ώρα', - hh : '%d ώρες', - d : 'μία μέρα', - dd : '%d μέρες', - M : 'ένας μήνας', - MM : '%d μήνες', - y : 'ένας χρόνος', - yy : '%d χρόνια' - }, - dayOfMonthOrdinalParse: /\d{1,2}η/, - ordinal: '%dη', - week : { - dow : 1, // Monday is the first day of the week. - doy : 4 // The week that contains Jan 4st is the first week of the year. - } -}); - -return el; - -}))); diff --git a/admin/bower_components/moment/locale/en-au.js b/admin/bower_components/moment/locale/en-au.js deleted file mode 100644 index e8a8fdc..0000000 --- a/admin/bower_components/moment/locale/en-au.js +++ /dev/null @@ -1,67 +0,0 @@ -//! moment.js locale configuration -//! locale : English (Australia) [en-au] -//! author : Jared Morse : https://github.com/jarcoal - -;(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' - && typeof require === 'function' ? factory(require('../moment')) : - typeof define === 'function' && define.amd ? define(['../moment'], factory) : - factory(global.moment) -}(this, (function (moment) { 'use strict'; - - -var enAu = moment.defineLocale('en-au', { - 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', - LTS : 'h:mm:ss A', - L : 'DD/MM/YYYY', - LL : 'D MMMM YYYY', - LLL : 'D MMMM YYYY h:mm A', - LLLL : 'dddd, D MMMM YYYY h:mm A' - }, - 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' - }, - dayOfMonthOrdinalParse: /\d{1,2}(st|nd|rd|th)/, - ordinal : function (number) { - var b = number % 10, - output = (~~(number % 100 / 10) === 1) ? 'th' : - (b === 1) ? 'st' : - (b === 2) ? 'nd' : - (b === 3) ? 'rd' : 'th'; - return number + output; - }, - week : { - dow : 1, // Monday is the first day of the week. - doy : 4 // The week that contains Jan 4th is the first week of the year. - } -}); - -return enAu; - -}))); diff --git a/admin/bower_components/moment/locale/en-ca.js b/admin/bower_components/moment/locale/en-ca.js deleted file mode 100644 index 3629bf1..0000000 --- a/admin/bower_components/moment/locale/en-ca.js +++ /dev/null @@ -1,63 +0,0 @@ -//! moment.js locale configuration -//! locale : English (Canada) [en-ca] -//! author : Jonathan Abourbih : https://github.com/jonbca - -;(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' - && typeof require === 'function' ? factory(require('../moment')) : - typeof define === 'function' && define.amd ? define(['../moment'], factory) : - factory(global.moment) -}(this, (function (moment) { 'use strict'; - - -var enCa = moment.defineLocale('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', - LTS : 'h:mm:ss A', - L : 'YYYY-MM-DD', - LL : 'MMMM D, YYYY', - LLL : 'MMMM D, YYYY h:mm A', - LLLL : 'dddd, MMMM D, YYYY h:mm A' - }, - 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' - }, - dayOfMonthOrdinalParse: /\d{1,2}(st|nd|rd|th)/, - ordinal : function (number) { - var b = number % 10, - output = (~~(number % 100 / 10) === 1) ? 'th' : - (b === 1) ? 'st' : - (b === 2) ? 'nd' : - (b === 3) ? 'rd' : 'th'; - return number + output; - } -}); - -return enCa; - -}))); diff --git a/admin/bower_components/moment/locale/en-gb.js b/admin/bower_components/moment/locale/en-gb.js deleted file mode 100644 index fe48a78..0000000 --- a/admin/bower_components/moment/locale/en-gb.js +++ /dev/null @@ -1,67 +0,0 @@ -//! moment.js locale configuration -//! locale : English (United Kingdom) [en-gb] -//! author : Chris Gedrim : https://github.com/chrisgedrim - -;(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' - && typeof require === 'function' ? factory(require('../moment')) : - typeof define === 'function' && define.amd ? define(['../moment'], factory) : - factory(global.moment) -}(this, (function (moment) { 'use strict'; - - -var enGb = moment.defineLocale('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', - LTS : 'HH:mm:ss', - L : 'DD/MM/YYYY', - LL : 'D MMMM YYYY', - LLL : 'D MMMM YYYY HH:mm', - LLLL : 'dddd, D MMMM YYYY HH:mm' - }, - 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' - }, - dayOfMonthOrdinalParse: /\d{1,2}(st|nd|rd|th)/, - ordinal : function (number) { - var b = number % 10, - output = (~~(number % 100 / 10) === 1) ? 'th' : - (b === 1) ? 'st' : - (b === 2) ? 'nd' : - (b === 3) ? 'rd' : 'th'; - return number + output; - }, - week : { - dow : 1, // Monday is the first day of the week. - doy : 4 // The week that contains Jan 4th is the first week of the year. - } -}); - -return enGb; - -}))); diff --git a/admin/bower_components/moment/locale/en-ie.js b/admin/bower_components/moment/locale/en-ie.js deleted file mode 100644 index bb0ccce..0000000 --- a/admin/bower_components/moment/locale/en-ie.js +++ /dev/null @@ -1,67 +0,0 @@ -//! moment.js locale configuration -//! locale : English (Ireland) [en-ie] -//! author : Chris Cartlidge : https://github.com/chriscartlidge - -;(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' - && typeof require === 'function' ? factory(require('../moment')) : - typeof define === 'function' && define.amd ? define(['../moment'], factory) : - factory(global.moment) -}(this, (function (moment) { 'use strict'; - - -var enIe = moment.defineLocale('en-ie', { - 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', - LTS : 'HH:mm:ss', - L : 'DD-MM-YYYY', - LL : 'D MMMM YYYY', - LLL : 'D MMMM YYYY HH:mm', - LLLL : 'dddd D MMMM YYYY HH:mm' - }, - 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' - }, - dayOfMonthOrdinalParse: /\d{1,2}(st|nd|rd|th)/, - ordinal : function (number) { - var b = number % 10, - output = (~~(number % 100 / 10) === 1) ? 'th' : - (b === 1) ? 'st' : - (b === 2) ? 'nd' : - (b === 3) ? 'rd' : 'th'; - return number + output; - }, - week : { - dow : 1, // Monday is the first day of the week. - doy : 4 // The week that contains Jan 4th is the first week of the year. - } -}); - -return enIe; - -}))); diff --git a/admin/bower_components/moment/locale/en-nz.js b/admin/bower_components/moment/locale/en-nz.js deleted file mode 100644 index 7005231..0000000 --- a/admin/bower_components/moment/locale/en-nz.js +++ /dev/null @@ -1,67 +0,0 @@ -//! moment.js locale configuration -//! locale : English (New Zealand) [en-nz] -//! author : Luke McGregor : https://github.com/lukemcgregor - -;(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' - && typeof require === 'function' ? factory(require('../moment')) : - typeof define === 'function' && define.amd ? define(['../moment'], factory) : - factory(global.moment) -}(this, (function (moment) { 'use strict'; - - -var enNz = moment.defineLocale('en-nz', { - 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', - LTS : 'h:mm:ss A', - L : 'DD/MM/YYYY', - LL : 'D MMMM YYYY', - LLL : 'D MMMM YYYY h:mm A', - LLLL : 'dddd, D MMMM YYYY h:mm A' - }, - 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' - }, - dayOfMonthOrdinalParse: /\d{1,2}(st|nd|rd|th)/, - ordinal : function (number) { - var b = number % 10, - output = (~~(number % 100 / 10) === 1) ? 'th' : - (b === 1) ? 'st' : - (b === 2) ? 'nd' : - (b === 3) ? 'rd' : 'th'; - return number + output; - }, - week : { - dow : 1, // Monday is the first day of the week. - doy : 4 // The week that contains Jan 4th is the first week of the year. - } -}); - -return enNz; - -}))); diff --git a/admin/bower_components/moment/locale/eo.js b/admin/bower_components/moment/locale/eo.js deleted file mode 100644 index 8001c83..0000000 --- a/admin/bower_components/moment/locale/eo.js +++ /dev/null @@ -1,73 +0,0 @@ -//! moment.js locale configuration -//! locale : Esperanto [eo] -//! author : Colin Dean : https://github.com/colindean -//! author : Mia Nordentoft Imperatori : https://github.com/miestasmia -//! comment : miestasmia corrected the translation by colindean - -;(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' - && typeof require === 'function' ? factory(require('../moment')) : - typeof define === 'function' && define.amd ? define(['../moment'], factory) : - factory(global.moment) -}(this, (function (moment) { 'use strict'; - - -var eo = moment.defineLocale('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', - LTS : 'HH:mm:ss', - L : 'YYYY-MM-DD', - LL : 'D[-a de] MMMM, YYYY', - LLL : 'D[-a de] MMMM, YYYY HH:mm', - LLLL : 'dddd, [la] D[-a de] MMMM, YYYY HH:mm' - }, - meridiemParse: /[ap]\.t\.m/i, - isPM: function (input) { - return input.charAt(0).toLowerCase() === 'p'; - }, - meridiem : function (hours, minutes, isLower) { - if (hours > 11) { - return isLower ? 'p.t.m.' : 'P.T.M.'; - } else { - return isLower ? '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 : 'post %s', - past : 'antaŭ %s', - s : 'sekundoj', - m : 'minuto', - mm : '%d minutoj', - h : 'horo', - hh : '%d horoj', - d : 'tago',//ne 'diurno', ĉar estas uzita por proksimumo - dd : '%d tagoj', - M : 'monato', - MM : '%d monatoj', - y : 'jaro', - yy : '%d jaroj' - }, - dayOfMonthOrdinalParse: /\d{1,2}a/, - ordinal : '%da', - week : { - dow : 1, // Monday is the first day of the week. - doy : 7 // The week that contains Jan 1st is the first week of the year. - } -}); - -return eo; - -}))); diff --git a/admin/bower_components/moment/locale/es-do.js b/admin/bower_components/moment/locale/es-do.js deleted file mode 100644 index 1af11ad..0000000 --- a/admin/bower_components/moment/locale/es-do.js +++ /dev/null @@ -1,82 +0,0 @@ -//! moment.js locale configuration -//! locale : Spanish (Dominican Republic) [es-do] - -;(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' - && typeof require === 'function' ? factory(require('../moment')) : - typeof define === 'function' && define.amd ? define(['../moment'], factory) : - factory(global.moment) -}(this, (function (moment) { 'use strict'; - - -var monthsShortDot = 'ene._feb._mar._abr._may._jun._jul._ago._sep._oct._nov._dic.'.split('_'); -var monthsShort = 'ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic'.split('_'); - -var esDo = moment.defineLocale('es-do', { - months : 'enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre'.split('_'), - monthsShort : function (m, format) { - if (!m) { - return monthsShortDot; - } else if (/-MMM-/.test(format)) { - return monthsShort[m.month()]; - } else { - return monthsShortDot[m.month()]; - } - }, - monthsParseExact : true, - 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('_'), - weekdaysParseExact : true, - longDateFormat : { - LT : 'h:mm A', - LTS : 'h:mm:ss A', - L : 'DD/MM/YYYY', - LL : 'D [de] MMMM [de] YYYY', - LLL : 'D [de] MMMM [de] YYYY h:mm A', - LLLL : 'dddd, D [de] MMMM [de] YYYY h:mm A' - }, - calendar : { - sameDay : function () { - return '[hoy a la' + ((this.hours() !== 1) ? 's' : '') + '] LT'; - }, - nextDay : function () { - return '[mañana a la' + ((this.hours() !== 1) ? 's' : '') + '] LT'; - }, - nextWeek : function () { - return 'dddd [a la' + ((this.hours() !== 1) ? 's' : '') + '] LT'; - }, - lastDay : function () { - return '[ayer a la' + ((this.hours() !== 1) ? 's' : '') + '] LT'; - }, - lastWeek : function () { - return '[el] dddd [pasado a la' + ((this.hours() !== 1) ? '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' - }, - dayOfMonthOrdinalParse : /\d{1,2}º/, - ordinal : '%dº', - week : { - dow : 1, // Monday is the first day of the week. - doy : 4 // The week that contains Jan 4th is the first week of the year. - } -}); - -return esDo; - -}))); diff --git a/admin/bower_components/moment/locale/es.js b/admin/bower_components/moment/locale/es.js deleted file mode 100644 index c0dea59..0000000 --- a/admin/bower_components/moment/locale/es.js +++ /dev/null @@ -1,83 +0,0 @@ -//! moment.js locale configuration -//! locale : Spanish [es] -//! author : Julio Napurí : https://github.com/julionc - -;(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' - && typeof require === 'function' ? factory(require('../moment')) : - typeof define === 'function' && define.amd ? define(['../moment'], factory) : - factory(global.moment) -}(this, (function (moment) { 'use strict'; - - -var monthsShortDot = 'ene._feb._mar._abr._may._jun._jul._ago._sep._oct._nov._dic.'.split('_'); -var monthsShort = 'ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic'.split('_'); - -var es = moment.defineLocale('es', { - months : 'enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre'.split('_'), - monthsShort : function (m, format) { - if (!m) { - return monthsShortDot; - } else if (/-MMM-/.test(format)) { - return monthsShort[m.month()]; - } else { - return monthsShortDot[m.month()]; - } - }, - monthsParseExact : true, - 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('_'), - weekdaysParseExact : true, - longDateFormat : { - LT : 'H:mm', - LTS : 'H:mm:ss', - L : 'DD/MM/YYYY', - LL : 'D [de] MMMM [de] YYYY', - LLL : 'D [de] MMMM [de] YYYY H:mm', - LLLL : 'dddd, D [de] MMMM [de] YYYY H:mm' - }, - calendar : { - sameDay : function () { - return '[hoy a la' + ((this.hours() !== 1) ? 's' : '') + '] LT'; - }, - nextDay : function () { - return '[mañana a la' + ((this.hours() !== 1) ? 's' : '') + '] LT'; - }, - nextWeek : function () { - return 'dddd [a la' + ((this.hours() !== 1) ? 's' : '') + '] LT'; - }, - lastDay : function () { - return '[ayer a la' + ((this.hours() !== 1) ? 's' : '') + '] LT'; - }, - lastWeek : function () { - return '[el] dddd [pasado a la' + ((this.hours() !== 1) ? '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' - }, - dayOfMonthOrdinalParse : /\d{1,2}º/, - ordinal : '%dº', - week : { - dow : 1, // Monday is the first day of the week. - doy : 4 // The week that contains Jan 4th is the first week of the year. - } -}); - -return es; - -}))); diff --git a/admin/bower_components/moment/locale/et.js b/admin/bower_components/moment/locale/et.js deleted file mode 100644 index 3a759e9..0000000 --- a/admin/bower_components/moment/locale/et.js +++ /dev/null @@ -1,80 +0,0 @@ -//! moment.js locale configuration -//! locale : Estonian [et] -//! author : Henry Kehlmann : https://github.com/madhenry -//! improvements : Illimar Tambek : https://github.com/ragulka - -;(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' - && typeof require === 'function' ? factory(require('../moment')) : - typeof define === 'function' && define.amd ? define(['../moment'], factory) : - factory(global.moment) -}(this, (function (moment) { 'use strict'; - - -function processRelativeTime(number, withoutSuffix, key, isFuture) { - var format = { - 's' : ['mõne sekundi', 'mõni sekund', 'paar sekundit'], - 'm' : ['ühe minuti', 'üks minut'], - 'mm': [number + ' minuti', number + ' minutit'], - 'h' : ['ühe tunni', 'tund aega', 'üks tund'], - 'hh': [number + ' tunni', number + ' tundi'], - 'd' : ['ühe päeva', 'üks päev'], - 'M' : ['kuu aja', 'kuu aega', 'üks kuu'], - 'MM': [number + ' kuu', number + ' kuud'], - 'y' : ['ühe aasta', 'aasta', 'üks aasta'], - 'yy': [number + ' aasta', number + ' aastat'] - }; - if (withoutSuffix) { - return format[key][2] ? format[key][2] : format[key][1]; - } - return isFuture ? format[key][0] : format[key][1]; -} - -var et = moment.defineLocale('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 : 'P_E_T_K_N_R_L'.split('_'), - weekdaysMin : 'P_E_T_K_N_R_L'.split('_'), - longDateFormat : { - LT : 'H:mm', - LTS : 'H:mm:ss', - L : 'DD.MM.YYYY', - LL : 'D. MMMM YYYY', - LLL : 'D. MMMM YYYY H:mm', - LLLL : 'dddd, D. MMMM YYYY H:mm' - }, - 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 : processRelativeTime, - m : processRelativeTime, - mm : processRelativeTime, - h : processRelativeTime, - hh : processRelativeTime, - d : processRelativeTime, - dd : '%d päeva', - M : processRelativeTime, - MM : processRelativeTime, - y : processRelativeTime, - yy : processRelativeTime - }, - dayOfMonthOrdinalParse: /\d{1,2}\./, - ordinal : '%d.', - week : { - dow : 1, // Monday is the first day of the week. - doy : 4 // The week that contains Jan 4th is the first week of the year. - } -}); - -return et; - -}))); diff --git a/admin/bower_components/moment/locale/eu.js b/admin/bower_components/moment/locale/eu.js deleted file mode 100644 index e2021cf..0000000 --- a/admin/bower_components/moment/locale/eu.js +++ /dev/null @@ -1,66 +0,0 @@ -//! moment.js locale configuration -//! locale : Basque [eu] -//! author : Eneko Illarramendi : https://github.com/eillarra - -;(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' - && typeof require === 'function' ? factory(require('../moment')) : - typeof define === 'function' && define.amd ? define(['../moment'], factory) : - factory(global.moment) -}(this, (function (moment) { 'use strict'; - - -var eu = moment.defineLocale('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('_'), - monthsParseExact : true, - 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('_'), - weekdaysParseExact : true, - longDateFormat : { - LT : 'HH:mm', - LTS : 'HH:mm:ss', - L : 'YYYY-MM-DD', - LL : 'YYYY[ko] MMMM[ren] D[a]', - LLL : 'YYYY[ko] MMMM[ren] D[a] HH:mm', - LLLL : 'dddd, YYYY[ko] MMMM[ren] D[a] HH:mm', - l : 'YYYY-M-D', - ll : 'YYYY[ko] MMM D[a]', - lll : 'YYYY[ko] MMM D[a] HH:mm', - llll : 'ddd, YYYY[ko] MMM D[a] HH:mm' - }, - 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' - }, - dayOfMonthOrdinalParse: /\d{1,2}\./, - ordinal : '%d.', - week : { - dow : 1, // Monday is the first day of the week. - doy : 7 // The week that contains Jan 1st is the first week of the year. - } -}); - -return eu; - -}))); diff --git a/admin/bower_components/moment/locale/fa.js b/admin/bower_components/moment/locale/fa.js deleted file mode 100644 index e6e5619..0000000 --- a/admin/bower_components/moment/locale/fa.js +++ /dev/null @@ -1,107 +0,0 @@ -//! moment.js locale configuration -//! locale : Persian [fa] -//! author : Ebrahim Byagowi : https://github.com/ebraminio - -;(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' - && typeof require === 'function' ? factory(require('../moment')) : - typeof define === 'function' && define.amd ? define(['../moment'], factory) : - factory(global.moment) -}(this, (function (moment) { 'use strict'; - - -var symbolMap = { - '1': '۱', - '2': '۲', - '3': '۳', - '4': '۴', - '5': '۵', - '6': '۶', - '7': '۷', - '8': '۸', - '9': '۹', - '0': '۰' -}; -var numberMap = { - '۱': '1', - '۲': '2', - '۳': '3', - '۴': '4', - '۵': '5', - '۶': '6', - '۷': '7', - '۸': '8', - '۹': '9', - '۰': '0' -}; - -var fa = moment.defineLocale('fa', { - months : 'ژانویه_فوریه_مارس_آوریل_مه_ژوئن_ژوئیه_اوت_سپتامبر_اکتبر_نوامبر_دسامبر'.split('_'), - monthsShort : 'ژانویه_فوریه_مارس_آوریل_مه_ژوئن_ژوئیه_اوت_سپتامبر_اکتبر_نوامبر_دسامبر'.split('_'), - weekdays : 'یک\u200cشنبه_دوشنبه_سه\u200cشنبه_چهارشنبه_پنج\u200cشنبه_جمعه_شنبه'.split('_'), - weekdaysShort : 'یک\u200cشنبه_دوشنبه_سه\u200cشنبه_چهارشنبه_پنج\u200cشنبه_جمعه_شنبه'.split('_'), - weekdaysMin : 'ی_د_س_چ_پ_ج_ش'.split('_'), - weekdaysParseExact : true, - longDateFormat : { - LT : 'HH:mm', - LTS : 'HH:mm:ss', - L : 'DD/MM/YYYY', - LL : 'D MMMM YYYY', - LLL : 'D MMMM YYYY HH:mm', - LLLL : 'dddd, D MMMM YYYY HH:mm' - }, - meridiemParse: /قبل از ظهر|بعد از ظهر/, - isPM: function (input) { - return /بعد از ظهر/.test(input); - }, - meridiem : function (hour, minute, isLower) { - if (hour < 12) { - return 'قبل از ظهر'; - } else { - return 'بعد از ظهر'; - } - }, - 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 (string) { - return string.replace(/[۰-۹]/g, function (match) { - return numberMap[match]; - }).replace(/،/g, ','); - }, - postformat: function (string) { - return string.replace(/\d/g, function (match) { - return symbolMap[match]; - }).replace(/,/g, '،'); - }, - dayOfMonthOrdinalParse: /\d{1,2}م/, - ordinal : '%dم', - week : { - dow : 6, // Saturday is the first day of the week. - doy : 12 // The week that contains Jan 1st is the first week of the year. - } -}); - -return fa; - -}))); diff --git a/admin/bower_components/moment/locale/fi.js b/admin/bower_components/moment/locale/fi.js deleted file mode 100644 index 3eeef5c..0000000 --- a/admin/bower_components/moment/locale/fi.js +++ /dev/null @@ -1,107 +0,0 @@ -//! moment.js locale configuration -//! locale : Finnish [fi] -//! author : Tarmo Aidantausta : https://github.com/bleadof - -;(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' - && typeof require === 'function' ? factory(require('../moment')) : - typeof define === 'function' && define.amd ? define(['../moment'], factory) : - factory(global.moment) -}(this, (function (moment) { 'use strict'; - - -var numbersPast = 'nolla yksi kaksi kolme neljä viisi kuusi seitsemän kahdeksan yhdeksän'.split(' '); -var numbersFuture = [ - 'nolla', 'yhden', 'kahden', 'kolmen', 'neljän', 'viiden', 'kuuden', - numbersPast[7], numbersPast[8], numbersPast[9] - ]; -function translate(number, withoutSuffix, key, isFuture) { - var result = ''; - switch (key) { - case 's': - return isFuture ? 'muutaman sekunnin' : 'muutama sekunti'; - case 'm': - return isFuture ? 'minuutin' : 'minuutti'; - case 'mm': - result = isFuture ? 'minuutin' : 'minuuttia'; - break; - case 'h': - return isFuture ? 'tunnin' : 'tunti'; - case 'hh': - result = isFuture ? 'tunnin' : 'tuntia'; - break; - case 'd': - return isFuture ? 'päivän' : 'päivä'; - case 'dd': - result = isFuture ? 'päivän' : 'päivää'; - break; - case 'M': - return isFuture ? 'kuukauden' : 'kuukausi'; - case 'MM': - result = isFuture ? 'kuukauden' : 'kuukautta'; - break; - case 'y': - return isFuture ? 'vuoden' : 'vuosi'; - case 'yy': - result = isFuture ? 'vuoden' : 'vuotta'; - break; - } - result = verbalNumber(number, isFuture) + ' ' + result; - return result; -} -function verbalNumber(number, isFuture) { - return number < 10 ? (isFuture ? numbersFuture[number] : numbersPast[number]) : number; -} - -var fi = moment.defineLocale('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', - LTS : 'HH.mm.ss', - L : 'DD.MM.YYYY', - LL : 'Do MMMM[ta] YYYY', - LLL : 'Do MMMM[ta] YYYY, [klo] HH.mm', - LLLL : 'dddd, Do MMMM[ta] YYYY, [klo] HH.mm', - l : 'D.M.YYYY', - ll : 'Do MMM YYYY', - lll : 'Do MMM YYYY, [klo] HH.mm', - llll : 'ddd, Do MMM YYYY, [klo] HH.mm' - }, - 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 : translate, - m : translate, - mm : translate, - h : translate, - hh : translate, - d : translate, - dd : translate, - M : translate, - MM : translate, - y : translate, - yy : translate - }, - dayOfMonthOrdinalParse: /\d{1,2}\./, - ordinal : '%d.', - week : { - dow : 1, // Monday is the first day of the week. - doy : 4 // The week that contains Jan 4th is the first week of the year. - } -}); - -return fi; - -}))); diff --git a/admin/bower_components/moment/locale/fo.js b/admin/bower_components/moment/locale/fo.js deleted file mode 100644 index eec43bc..0000000 --- a/admin/bower_components/moment/locale/fo.js +++ /dev/null @@ -1,60 +0,0 @@ -//! moment.js locale configuration -//! locale : Faroese [fo] -//! author : Ragnar Johannesen : https://github.com/ragnar123 - -;(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' - && typeof require === 'function' ? factory(require('../moment')) : - typeof define === 'function' && define.amd ? define(['../moment'], factory) : - factory(global.moment) -}(this, (function (moment) { 'use strict'; - - -var fo = moment.defineLocale('fo', { - months : 'januar_februar_mars_apríl_mai_juni_juli_august_september_oktober_november_desember'.split('_'), - monthsShort : 'jan_feb_mar_apr_mai_jun_jul_aug_sep_okt_nov_des'.split('_'), - weekdays : 'sunnudagur_mánadagur_týsdagur_mikudagur_hósdagur_fríggjadagur_leygardagur'.split('_'), - weekdaysShort : 'sun_mán_týs_mik_hós_frí_ley'.split('_'), - weekdaysMin : 'su_má_tý_mi_hó_fr_le'.split('_'), - longDateFormat : { - LT : 'HH:mm', - LTS : 'HH:mm:ss', - L : 'DD/MM/YYYY', - LL : 'D MMMM YYYY', - LLL : 'D MMMM YYYY HH:mm', - LLLL : 'dddd D. MMMM, YYYY HH:mm' - }, - calendar : { - sameDay : '[Í dag kl.] LT', - nextDay : '[Í morgin kl.] LT', - nextWeek : 'dddd [kl.] LT', - lastDay : '[Í gjár kl.] LT', - lastWeek : '[síðstu] dddd [kl] LT', - sameElse : 'L' - }, - relativeTime : { - future : 'um %s', - past : '%s síðani', - s : 'fá sekund', - m : 'ein minutt', - mm : '%d minuttir', - h : 'ein tími', - hh : '%d tímar', - d : 'ein dagur', - dd : '%d dagar', - M : 'ein mánaði', - MM : '%d mánaðir', - y : 'eitt ár', - yy : '%d ár' - }, - dayOfMonthOrdinalParse: /\d{1,2}\./, - ordinal : '%d.', - week : { - dow : 1, // Monday is the first day of the week. - doy : 4 // The week that contains Jan 4th is the first week of the year. - } -}); - -return fo; - -}))); diff --git a/admin/bower_components/moment/locale/fr-ca.js b/admin/bower_components/moment/locale/fr-ca.js deleted file mode 100644 index 49e61d2..0000000 --- a/admin/bower_components/moment/locale/fr-ca.js +++ /dev/null @@ -1,74 +0,0 @@ -//! moment.js locale configuration -//! locale : French (Canada) [fr-ca] -//! author : Jonathan Abourbih : https://github.com/jonbca - -;(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' - && typeof require === 'function' ? factory(require('../moment')) : - typeof define === 'function' && define.amd ? define(['../moment'], factory) : - factory(global.moment) -}(this, (function (moment) { 'use strict'; - - -var frCa = moment.defineLocale('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('_'), - monthsParseExact : true, - 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('_'), - weekdaysParseExact : true, - longDateFormat : { - LT : 'HH:mm', - LTS : 'HH:mm:ss', - L : 'YYYY-MM-DD', - LL : 'D MMMM YYYY', - LLL : 'D MMMM YYYY HH:mm', - LLLL : 'dddd D MMMM YYYY HH:mm' - }, - 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' - }, - dayOfMonthOrdinalParse: /\d{1,2}(er|e)/, - ordinal : function (number, period) { - switch (period) { - // Words with masculine grammatical gender: mois, trimestre, jour - default: - case 'M': - case 'Q': - case 'D': - case 'DDD': - case 'd': - return number + (number === 1 ? 'er' : 'e'); - - // Words with feminine grammatical gender: semaine - case 'w': - case 'W': - return number + (number === 1 ? 're' : 'e'); - } - } -}); - -return frCa; - -}))); diff --git a/admin/bower_components/moment/locale/fr-ch.js b/admin/bower_components/moment/locale/fr-ch.js deleted file mode 100644 index 38bf858..0000000 --- a/admin/bower_components/moment/locale/fr-ch.js +++ /dev/null @@ -1,78 +0,0 @@ -//! moment.js locale configuration -//! locale : French (Switzerland) [fr-ch] -//! author : Gaspard Bucher : https://github.com/gaspard - -;(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' - && typeof require === 'function' ? factory(require('../moment')) : - typeof define === 'function' && define.amd ? define(['../moment'], factory) : - factory(global.moment) -}(this, (function (moment) { 'use strict'; - - -var frCh = moment.defineLocale('fr-ch', { - 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('_'), - monthsParseExact : true, - 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('_'), - weekdaysParseExact : true, - longDateFormat : { - LT : 'HH:mm', - LTS : 'HH:mm:ss', - L : 'DD.MM.YYYY', - LL : 'D MMMM YYYY', - LLL : 'D MMMM YYYY HH:mm', - LLLL : 'dddd D MMMM YYYY HH:mm' - }, - 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' - }, - dayOfMonthOrdinalParse: /\d{1,2}(er|e)/, - ordinal : function (number, period) { - switch (period) { - // Words with masculine grammatical gender: mois, trimestre, jour - default: - case 'M': - case 'Q': - case 'D': - case 'DDD': - case 'd': - return number + (number === 1 ? 'er' : 'e'); - - // Words with feminine grammatical gender: semaine - case 'w': - case 'W': - return number + (number === 1 ? 're' : 'e'); - } - }, - week : { - dow : 1, // Monday is the first day of the week. - doy : 4 // The week that contains Jan 4th is the first week of the year. - } -}); - -return frCh; - -}))); diff --git a/admin/bower_components/moment/locale/fr.js b/admin/bower_components/moment/locale/fr.js deleted file mode 100644 index 7e4cfbc..0000000 --- a/admin/bower_components/moment/locale/fr.js +++ /dev/null @@ -1,83 +0,0 @@ -//! moment.js locale configuration -//! locale : French [fr] -//! author : John Fischer : https://github.com/jfroffice - -;(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' - && typeof require === 'function' ? factory(require('../moment')) : - typeof define === 'function' && define.amd ? define(['../moment'], factory) : - factory(global.moment) -}(this, (function (moment) { 'use strict'; - - -var fr = moment.defineLocale('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('_'), - monthsParseExact : true, - 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('_'), - weekdaysParseExact : true, - longDateFormat : { - LT : 'HH:mm', - LTS : 'HH:mm:ss', - L : 'DD/MM/YYYY', - LL : 'D MMMM YYYY', - LLL : 'D MMMM YYYY HH:mm', - LLLL : 'dddd D MMMM YYYY HH:mm' - }, - 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' - }, - dayOfMonthOrdinalParse: /\d{1,2}(er|)/, - ordinal : function (number, period) { - switch (period) { - // TODO: Return 'e' when day of month > 1. Move this case inside - // block for masculine words below. - // See https://github.com/moment/moment/issues/3375 - case 'D': - return number + (number === 1 ? 'er' : ''); - - // Words with masculine grammatical gender: mois, trimestre, jour - default: - case 'M': - case 'Q': - case 'DDD': - case 'd': - return number + (number === 1 ? 'er' : 'e'); - - // Words with feminine grammatical gender: semaine - case 'w': - case 'W': - return number + (number === 1 ? 're' : 'e'); - } - }, - week : { - dow : 1, // Monday is the first day of the week. - doy : 4 // The week that contains Jan 4th is the first week of the year. - } -}); - -return fr; - -}))); diff --git a/admin/bower_components/moment/locale/fy.js b/admin/bower_components/moment/locale/fy.js deleted file mode 100644 index 2ed7d5b..0000000 --- a/admin/bower_components/moment/locale/fy.js +++ /dev/null @@ -1,75 +0,0 @@ -//! moment.js locale configuration -//! locale : Frisian [fy] -//! author : Robin van der Vliet : https://github.com/robin0van0der0v - -;(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' - && typeof require === 'function' ? factory(require('../moment')) : - typeof define === 'function' && define.amd ? define(['../moment'], factory) : - factory(global.moment) -}(this, (function (moment) { 'use strict'; - - -var monthsShortWithDots = 'jan._feb._mrt._apr._mai_jun._jul._aug._sep._okt._nov._des.'.split('_'); -var monthsShortWithoutDots = 'jan_feb_mrt_apr_mai_jun_jul_aug_sep_okt_nov_des'.split('_'); - -var fy = moment.defineLocale('fy', { - months : 'jannewaris_febrewaris_maart_april_maaie_juny_july_augustus_septimber_oktober_novimber_desimber'.split('_'), - monthsShort : function (m, format) { - if (!m) { - return monthsShortWithDots; - } else if (/-MMM-/.test(format)) { - return monthsShortWithoutDots[m.month()]; - } else { - return monthsShortWithDots[m.month()]; - } - }, - monthsParseExact : true, - weekdays : 'snein_moandei_tiisdei_woansdei_tongersdei_freed_sneon'.split('_'), - weekdaysShort : 'si._mo._ti._wo._to._fr._so.'.split('_'), - weekdaysMin : 'Si_Mo_Ti_Wo_To_Fr_So'.split('_'), - weekdaysParseExact : true, - longDateFormat : { - LT : 'HH:mm', - LTS : 'HH:mm:ss', - L : 'DD-MM-YYYY', - LL : 'D MMMM YYYY', - LLL : 'D MMMM YYYY HH:mm', - LLLL : 'dddd D MMMM YYYY HH:mm' - }, - calendar : { - sameDay: '[hjoed om] LT', - nextDay: '[moarn om] LT', - nextWeek: 'dddd [om] LT', - lastDay: '[juster om] LT', - lastWeek: '[ôfrûne] dddd [om] LT', - sameElse: 'L' - }, - relativeTime : { - future : 'oer %s', - past : '%s lyn', - s : 'in pear sekonden', - m : 'ien minút', - mm : '%d minuten', - h : 'ien oere', - hh : '%d oeren', - d : 'ien dei', - dd : '%d dagen', - M : 'ien moanne', - MM : '%d moannen', - y : 'ien jier', - yy : '%d jierren' - }, - dayOfMonthOrdinalParse: /\d{1,2}(ste|de)/, - ordinal : function (number) { - return number + ((number === 1 || number === 8 || number >= 20) ? 'ste' : 'de'); - }, - week : { - dow : 1, // Monday is the first day of the week. - doy : 4 // The week that contains Jan 4th is the first week of the year. - } -}); - -return fy; - -}))); diff --git a/admin/bower_components/moment/locale/gd.js b/admin/bower_components/moment/locale/gd.js deleted file mode 100644 index af9eec8..0000000 --- a/admin/bower_components/moment/locale/gd.js +++ /dev/null @@ -1,76 +0,0 @@ -//! moment.js locale configuration -//! locale : Scottish Gaelic [gd] -//! author : Jon Ashdown : https://github.com/jonashdown - -;(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' - && typeof require === 'function' ? factory(require('../moment')) : - typeof define === 'function' && define.amd ? define(['../moment'], factory) : - factory(global.moment) -}(this, (function (moment) { 'use strict'; - - -var months = [ - 'Am Faoilleach', 'An Gearran', 'Am Màrt', 'An Giblean', 'An Cèitean', 'An t-Ògmhios', 'An t-Iuchar', 'An Lùnastal', 'An t-Sultain', 'An Dàmhair', 'An t-Samhain', 'An Dùbhlachd' -]; - -var monthsShort = ['Faoi', 'Gear', 'Màrt', 'Gibl', 'Cèit', 'Ògmh', 'Iuch', 'Lùn', 'Sult', 'Dàmh', 'Samh', 'Dùbh']; - -var weekdays = ['Didòmhnaich', 'Diluain', 'Dimàirt', 'Diciadain', 'Diardaoin', 'Dihaoine', 'Disathairne']; - -var weekdaysShort = ['Did', 'Dil', 'Dim', 'Dic', 'Dia', 'Dih', 'Dis']; - -var weekdaysMin = ['Dò', 'Lu', 'Mà', 'Ci', 'Ar', 'Ha', 'Sa']; - -var gd = moment.defineLocale('gd', { - months : months, - monthsShort : monthsShort, - monthsParseExact : true, - weekdays : weekdays, - weekdaysShort : weekdaysShort, - weekdaysMin : weekdaysMin, - longDateFormat : { - LT : 'HH:mm', - LTS : 'HH:mm:ss', - L : 'DD/MM/YYYY', - LL : 'D MMMM YYYY', - LLL : 'D MMMM YYYY HH:mm', - LLLL : 'dddd, D MMMM YYYY HH:mm' - }, - calendar : { - sameDay : '[An-diugh aig] LT', - nextDay : '[A-màireach aig] LT', - nextWeek : 'dddd [aig] LT', - lastDay : '[An-dè aig] LT', - lastWeek : 'dddd [seo chaidh] [aig] LT', - sameElse : 'L' - }, - relativeTime : { - future : 'ann an %s', - past : 'bho chionn %s', - s : 'beagan diogan', - m : 'mionaid', - mm : '%d mionaidean', - h : 'uair', - hh : '%d uairean', - d : 'latha', - dd : '%d latha', - M : 'mìos', - MM : '%d mìosan', - y : 'bliadhna', - yy : '%d bliadhna' - }, - dayOfMonthOrdinalParse : /\d{1,2}(d|na|mh)/, - ordinal : function (number) { - var output = number === 1 ? 'd' : number % 10 === 2 ? 'na' : 'mh'; - return number + output; - }, - week : { - dow : 1, // Monday is the first day of the week. - doy : 4 // The week that contains Jan 4th is the first week of the year. - } -}); - -return gd; - -}))); diff --git a/admin/bower_components/moment/locale/gl.js b/admin/bower_components/moment/locale/gl.js deleted file mode 100644 index e894db7..0000000 --- a/admin/bower_components/moment/locale/gl.js +++ /dev/null @@ -1,77 +0,0 @@ -//! moment.js locale configuration -//! locale : Galician [gl] -//! author : Juan G. Hurtado : https://github.com/juanghurtado - -;(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' - && typeof require === 'function' ? factory(require('../moment')) : - typeof define === 'function' && define.amd ? define(['../moment'], factory) : - factory(global.moment) -}(this, (function (moment) { 'use strict'; - - -var gl = moment.defineLocale('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('_'), - monthsParseExact: true, - 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('_'), - weekdaysParseExact : true, - longDateFormat : { - LT : 'H:mm', - LTS : 'H:mm:ss', - L : 'DD/MM/YYYY', - LL : 'D [de] MMMM [de] YYYY', - LLL : 'D [de] MMMM [de] YYYY H:mm', - LLLL : 'dddd, D [de] MMMM [de] YYYY H:mm' - }, - calendar : { - sameDay : function () { - return '[hoxe ' + ((this.hours() !== 1) ? 'ás' : 'á') + '] LT'; - }, - nextDay : function () { - return '[mañá ' + ((this.hours() !== 1) ? 'ás' : 'á') + '] LT'; - }, - nextWeek : function () { - return 'dddd [' + ((this.hours() !== 1) ? 'ás' : 'a') + '] LT'; - }, - lastDay : function () { - return '[onte ' + ((this.hours() !== 1) ? 'á' : 'a') + '] LT'; - }, - lastWeek : function () { - return '[o] dddd [pasado ' + ((this.hours() !== 1) ? 'ás' : 'a') + '] LT'; - }, - sameElse : 'L' - }, - relativeTime : { - future : function (str) { - if (str.indexOf('un') === 0) { - return 'n' + str; - } - return 'en ' + str; - }, - 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' - }, - dayOfMonthOrdinalParse : /\d{1,2}º/, - ordinal : '%dº', - week : { - dow : 1, // Monday is the first day of the week. - doy : 4 // The week that contains Jan 4th is the first week of the year. - } -}); - -return gl; - -}))); diff --git a/admin/bower_components/moment/locale/gom-latn.js b/admin/bower_components/moment/locale/gom-latn.js deleted file mode 100644 index 084b4b2..0000000 --- a/admin/bower_components/moment/locale/gom-latn.js +++ /dev/null @@ -1,122 +0,0 @@ -//! moment.js locale configuration -//! locale : Konkani Latin script [gom-latn] -//! author : The Discoverer : https://github.com/WikiDiscoverer - -;(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' - && typeof require === 'function' ? factory(require('../moment')) : - typeof define === 'function' && define.amd ? define(['../moment'], factory) : - factory(global.moment) -}(this, (function (moment) { 'use strict'; - - -function processRelativeTime(number, withoutSuffix, key, isFuture) { - var format = { - 's': ['thodde secondanim', 'thodde second'], - 'm': ['eka mintan', 'ek minute'], - 'mm': [number + ' mintanim', number + ' mintam'], - 'h': ['eka horan', 'ek hor'], - 'hh': [number + ' horanim', number + ' hor'], - 'd': ['eka disan', 'ek dis'], - 'dd': [number + ' disanim', number + ' dis'], - 'M': ['eka mhoinean', 'ek mhoino'], - 'MM': [number + ' mhoineanim', number + ' mhoine'], - 'y': ['eka vorsan', 'ek voros'], - 'yy': [number + ' vorsanim', number + ' vorsam'] - }; - return withoutSuffix ? format[key][0] : format[key][1]; -} - -var gomLatn = moment.defineLocale('gom-latn', { - months : 'Janer_Febrer_Mars_Abril_Mai_Jun_Julai_Agost_Setembr_Otubr_Novembr_Dezembr'.split('_'), - monthsShort : 'Jan._Feb._Mars_Abr._Mai_Jun_Jul._Ago._Set._Otu._Nov._Dez.'.split('_'), - monthsParseExact : true, - weekdays : 'Aitar_Somar_Mongllar_Budvar_Brestar_Sukrar_Son\'var'.split('_'), - weekdaysShort : 'Ait._Som._Mon._Bud._Bre._Suk._Son.'.split('_'), - weekdaysMin : 'Ai_Sm_Mo_Bu_Br_Su_Sn'.split('_'), - weekdaysParseExact : true, - longDateFormat : { - LT : 'A h:mm [vazta]', - LTS : 'A h:mm:ss [vazta]', - L : 'DD-MM-YYYY', - LL : 'D MMMM YYYY', - LLL : 'D MMMM YYYY A h:mm [vazta]', - LLLL : 'dddd, MMMM[achea] Do, YYYY, A h:mm [vazta]', - llll: 'ddd, D MMM YYYY, A h:mm [vazta]' - }, - calendar : { - sameDay: '[Aiz] LT', - nextDay: '[Faleam] LT', - nextWeek: '[Ieta to] dddd[,] LT', - lastDay: '[Kal] LT', - lastWeek: '[Fatlo] dddd[,] LT', - sameElse: 'L' - }, - relativeTime : { - future : '%s', - past : '%s adim', - s : processRelativeTime, - m : processRelativeTime, - mm : processRelativeTime, - h : processRelativeTime, - hh : processRelativeTime, - d : processRelativeTime, - dd : processRelativeTime, - M : processRelativeTime, - MM : processRelativeTime, - y : processRelativeTime, - yy : processRelativeTime - }, - dayOfMonthOrdinalParse : /\d{1,2}(er)/, - ordinal : function (number, period) { - switch (period) { - // the ordinal 'er' only applies to day of the month - case 'D': - return number + 'er'; - default: - case 'M': - case 'Q': - case 'DDD': - case 'd': - case 'w': - case 'W': - return number; - } - }, - week : { - dow : 1, // Monday is the first day of the week. - doy : 4 // The week that contains Jan 4th is the first week of the year. - }, - meridiemParse: /rati|sokalli|donparam|sanje/, - meridiemHour : function (hour, meridiem) { - if (hour === 12) { - hour = 0; - } - if (meridiem === 'rati') { - return hour < 4 ? hour : hour + 12; - } else if (meridiem === 'sokalli') { - return hour; - } else if (meridiem === 'donparam') { - return hour > 12 ? hour : hour + 12; - } else if (meridiem === 'sanje') { - return hour + 12; - } - }, - meridiem : function (hour, minute, isLower) { - if (hour < 4) { - return 'rati'; - } else if (hour < 12) { - return 'sokalli'; - } else if (hour < 16) { - return 'donparam'; - } else if (hour < 20) { - return 'sanje'; - } else { - return 'rati'; - } - } -}); - -return gomLatn; - -}))); diff --git a/admin/bower_components/moment/locale/he.js b/admin/bower_components/moment/locale/he.js deleted file mode 100644 index e884381..0000000 --- a/admin/bower_components/moment/locale/he.js +++ /dev/null @@ -1,99 +0,0 @@ -//! moment.js locale configuration -//! locale : Hebrew [he] -//! author : Tomer Cohen : https://github.com/tomer -//! author : Moshe Simantov : https://github.com/DevelopmentIL -//! author : Tal Ater : https://github.com/TalAter - -;(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' - && typeof require === 'function' ? factory(require('../moment')) : - typeof define === 'function' && define.amd ? define(['../moment'], factory) : - factory(global.moment) -}(this, (function (moment) { 'use strict'; - - -var he = moment.defineLocale('he', { - months : 'ינואר_פברואר_מרץ_אפריל_מאי_יוני_יולי_אוגוסט_ספטמבר_אוקטובר_נובמבר_דצמבר'.split('_'), - monthsShort : 'ינו׳_פבר׳_מרץ_אפר׳_מאי_יוני_יולי_אוג׳_ספט׳_אוק׳_נוב׳_דצמ׳'.split('_'), - weekdays : 'ראשון_שני_שלישי_רביעי_חמישי_שישי_שבת'.split('_'), - weekdaysShort : 'א׳_ב׳_ג׳_ד׳_ה׳_ו׳_ש׳'.split('_'), - weekdaysMin : 'א_ב_ג_ד_ה_ו_ש'.split('_'), - longDateFormat : { - LT : 'HH:mm', - LTS : 'HH:mm:ss', - L : 'DD/MM/YYYY', - LL : 'D [ב]MMMM YYYY', - LLL : 'D [ב]MMMM YYYY HH:mm', - LLLL : 'dddd, D [ב]MMMM YYYY HH:mm', - l : 'D/M/YYYY', - ll : 'D MMM YYYY', - lll : 'D MMM YYYY HH:mm', - llll : 'ddd, D MMM YYYY HH:mm' - }, - 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 (number) { - if (number === 2) { - return 'שעתיים'; - } - return number + ' שעות'; - }, - d : 'יום', - dd : function (number) { - if (number === 2) { - return 'יומיים'; - } - return number + ' ימים'; - }, - M : 'חודש', - MM : function (number) { - if (number === 2) { - return 'חודשיים'; - } - return number + ' חודשים'; - }, - y : 'שנה', - yy : function (number) { - if (number === 2) { - return 'שנתיים'; - } else if (number % 10 === 0 && number !== 10) { - return number + ' שנה'; - } - return number + ' שנים'; - } - }, - meridiemParse: /אחה"צ|לפנה"צ|אחרי הצהריים|לפני הצהריים|לפנות בוקר|בבוקר|בערב/i, - isPM : function (input) { - return /^(אחה"צ|אחרי הצהריים|בערב)$/.test(input); - }, - meridiem : function (hour, minute, isLower) { - if (hour < 5) { - return 'לפנות בוקר'; - } else if (hour < 10) { - return 'בבוקר'; - } else if (hour < 12) { - return isLower ? 'לפנה"צ' : 'לפני הצהריים'; - } else if (hour < 18) { - return isLower ? 'אחה"צ' : 'אחרי הצהריים'; - } else { - return 'בערב'; - } - } -}); - -return he; - -}))); diff --git a/admin/bower_components/moment/locale/hi.js b/admin/bower_components/moment/locale/hi.js deleted file mode 100644 index 58afc6b..0000000 --- a/admin/bower_components/moment/locale/hi.js +++ /dev/null @@ -1,124 +0,0 @@ -//! moment.js locale configuration -//! locale : Hindi [hi] -//! author : Mayank Singhal : https://github.com/mayanksinghal - -;(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' - && typeof require === 'function' ? factory(require('../moment')) : - typeof define === 'function' && define.amd ? define(['../moment'], factory) : - factory(global.moment) -}(this, (function (moment) { 'use strict'; - - -var symbolMap = { - '1': '१', - '2': '२', - '3': '३', - '4': '४', - '5': '५', - '6': '६', - '7': '७', - '8': '८', - '9': '९', - '0': '०' -}; -var numberMap = { - '१': '1', - '२': '2', - '३': '3', - '४': '4', - '५': '5', - '६': '6', - '७': '7', - '८': '8', - '९': '9', - '०': '0' -}; - -var hi = moment.defineLocale('hi', { - months : 'जनवरी_फ़रवरी_मार्च_अप्रैल_मई_जून_जुलाई_अगस्त_सितम्बर_अक्टूबर_नवम्बर_दिसम्बर'.split('_'), - monthsShort : 'जन._फ़र._मार्च_अप्रै._मई_जून_जुल._अग._सित._अक्टू._नव._दिस.'.split('_'), - monthsParseExact: true, - weekdays : 'रविवार_सोमवार_मंगलवार_बुधवार_गुरूवार_शुक्रवार_शनिवार'.split('_'), - weekdaysShort : 'रवि_सोम_मंगल_बुध_गुरू_शुक्र_शनि'.split('_'), - weekdaysMin : 'र_सो_मं_बु_गु_शु_श'.split('_'), - longDateFormat : { - LT : 'A h:mm बजे', - LTS : 'A h:mm:ss बजे', - L : 'DD/MM/YYYY', - LL : 'D MMMM YYYY', - LLL : 'D MMMM YYYY, A h:mm बजे', - LLLL : 'dddd, D MMMM YYYY, A h:mm बजे' - }, - 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 (string) { - return string.replace(/[१२३४५६७८९०]/g, function (match) { - return numberMap[match]; - }); - }, - postformat: function (string) { - return string.replace(/\d/g, function (match) { - return symbolMap[match]; - }); - }, - // Hindi notation for meridiems are quite fuzzy in practice. While there exists - // a rigid notion of a 'Pahar' it is not used as rigidly in modern Hindi. - meridiemParse: /रात|सुबह|दोपहर|शाम/, - meridiemHour : function (hour, meridiem) { - if (hour === 12) { - hour = 0; - } - if (meridiem === 'रात') { - return hour < 4 ? hour : hour + 12; - } else if (meridiem === 'सुबह') { - return hour; - } else if (meridiem === 'दोपहर') { - return hour >= 10 ? hour : hour + 12; - } else if (meridiem === 'शाम') { - return hour + 12; - } - }, - meridiem : function (hour, minute, isLower) { - if (hour < 4) { - return 'रात'; - } else if (hour < 10) { - return 'सुबह'; - } else if (hour < 17) { - return 'दोपहर'; - } else if (hour < 20) { - return 'शाम'; - } else { - return 'रात'; - } - }, - week : { - dow : 0, // Sunday is the first day of the week. - doy : 6 // The week that contains Jan 1st is the first week of the year. - } -}); - -return hi; - -}))); diff --git a/admin/bower_components/moment/locale/hr.js b/admin/bower_components/moment/locale/hr.js deleted file mode 100644 index 5caeec8..0000000 --- a/admin/bower_components/moment/locale/hr.js +++ /dev/null @@ -1,145 +0,0 @@ -//! moment.js locale configuration -//! locale : Croatian [hr] -//! author : Bojan Marković : https://github.com/bmarkovic - -;(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' - && typeof require === 'function' ? factory(require('../moment')) : - typeof define === 'function' && define.amd ? define(['../moment'], factory) : - factory(global.moment) -}(this, (function (moment) { 'use strict'; - - -function translate(number, withoutSuffix, key) { - var result = number + ' '; - switch (key) { - case 'm': - return withoutSuffix ? 'jedna minuta' : 'jedne minute'; - case 'mm': - if (number === 1) { - result += 'minuta'; - } else if (number === 2 || number === 3 || number === 4) { - result += 'minute'; - } else { - result += 'minuta'; - } - return result; - case 'h': - return withoutSuffix ? 'jedan sat' : 'jednog sata'; - case 'hh': - if (number === 1) { - result += 'sat'; - } else if (number === 2 || number === 3 || number === 4) { - result += 'sata'; - } else { - result += 'sati'; - } - return result; - case 'dd': - if (number === 1) { - result += 'dan'; - } else { - result += 'dana'; - } - return result; - case 'MM': - if (number === 1) { - result += 'mjesec'; - } else if (number === 2 || number === 3 || number === 4) { - result += 'mjeseca'; - } else { - result += 'mjeseci'; - } - return result; - case 'yy': - if (number === 1) { - result += 'godina'; - } else if (number === 2 || number === 3 || number === 4) { - result += 'godine'; - } else { - result += 'godina'; - } - return result; - } -} - -var hr = moment.defineLocale('hr', { - months : { - format: 'siječnja_veljače_ožujka_travnja_svibnja_lipnja_srpnja_kolovoza_rujna_listopada_studenoga_prosinca'.split('_'), - standalone: 'siječanj_veljača_ožujak_travanj_svibanj_lipanj_srpanj_kolovoz_rujan_listopad_studeni_prosinac'.split('_') - }, - monthsShort : 'sij._velj._ožu._tra._svi._lip._srp._kol._ruj._lis._stu._pro.'.split('_'), - monthsParseExact: true, - 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('_'), - weekdaysParseExact : true, - longDateFormat : { - LT : 'H:mm', - LTS : 'H:mm:ss', - L : 'DD.MM.YYYY', - LL : 'D. MMMM YYYY', - LLL : 'D. MMMM YYYY H:mm', - LLLL : 'dddd, D. MMMM YYYY H:mm' - }, - 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 : translate, - mm : translate, - h : translate, - hh : translate, - d : 'dan', - dd : translate, - M : 'mjesec', - MM : translate, - y : 'godinu', - yy : translate - }, - dayOfMonthOrdinalParse: /\d{1,2}\./, - ordinal : '%d.', - week : { - dow : 1, // Monday is the first day of the week. - doy : 7 // The week that contains Jan 1st is the first week of the year. - } -}); - -return hr; - -}))); diff --git a/admin/bower_components/moment/locale/hu.js b/admin/bower_components/moment/locale/hu.js deleted file mode 100644 index e215874..0000000 --- a/admin/bower_components/moment/locale/hu.js +++ /dev/null @@ -1,109 +0,0 @@ -//! moment.js locale configuration -//! locale : Hungarian [hu] -//! author : Adam Brunner : https://github.com/adambrunner - -;(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' - && typeof require === 'function' ? factory(require('../moment')) : - typeof define === 'function' && define.amd ? define(['../moment'], factory) : - factory(global.moment) -}(this, (function (moment) { 'use strict'; - - -var weekEndings = 'vasárnap hétfőn kedden szerdán csütörtökön pénteken szombaton'.split(' '); -function translate(number, withoutSuffix, key, isFuture) { - var num = number, - suffix; - switch (key) { - case 's': - return (isFuture || withoutSuffix) ? 'néhány másodperc' : 'néhány másodperce'; - case 'm': - return 'egy' + (isFuture || withoutSuffix ? ' perc' : ' perce'); - case 'mm': - return num + (isFuture || withoutSuffix ? ' perc' : ' perce'); - case 'h': - return 'egy' + (isFuture || withoutSuffix ? ' óra' : ' órája'); - case 'hh': - return num + (isFuture || withoutSuffix ? ' óra' : ' órája'); - case 'd': - return 'egy' + (isFuture || withoutSuffix ? ' nap' : ' napja'); - case 'dd': - return num + (isFuture || withoutSuffix ? ' nap' : ' napja'); - case 'M': - return 'egy' + (isFuture || withoutSuffix ? ' hónap' : ' hónapja'); - case 'MM': - return num + (isFuture || withoutSuffix ? ' hónap' : ' hónapja'); - case 'y': - return 'egy' + (isFuture || withoutSuffix ? ' év' : ' éve'); - case 'yy': - return num + (isFuture || withoutSuffix ? ' év' : ' éve'); - } - return ''; -} -function week(isFuture) { - return (isFuture ? '' : '[múlt] ') + '[' + weekEndings[this.day()] + '] LT[-kor]'; -} - -var hu = moment.defineLocale('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 : 'vas_hét_kedd_sze_csüt_pén_szo'.split('_'), - weekdaysMin : 'v_h_k_sze_cs_p_szo'.split('_'), - longDateFormat : { - LT : 'H:mm', - LTS : 'H:mm:ss', - L : 'YYYY.MM.DD.', - LL : 'YYYY. MMMM D.', - LLL : 'YYYY. MMMM D. H:mm', - LLLL : 'YYYY. MMMM D., dddd H:mm' - }, - meridiemParse: /de|du/i, - isPM: function (input) { - return input.charAt(1).toLowerCase() === 'u'; - }, - meridiem : function (hours, minutes, isLower) { - if (hours < 12) { - return isLower === true ? 'de' : 'DE'; - } else { - return isLower === true ? 'du' : 'DU'; - } - }, - calendar : { - sameDay : '[ma] LT[-kor]', - nextDay : '[holnap] LT[-kor]', - nextWeek : function () { - return week.call(this, true); - }, - lastDay : '[tegnap] LT[-kor]', - lastWeek : function () { - return week.call(this, false); - }, - sameElse : 'L' - }, - relativeTime : { - future : '%s múlva', - past : '%s', - s : translate, - m : translate, - mm : translate, - h : translate, - hh : translate, - d : translate, - dd : translate, - M : translate, - MM : translate, - y : translate, - yy : translate - }, - dayOfMonthOrdinalParse: /\d{1,2}\./, - ordinal : '%d.', - week : { - dow : 1, // Monday is the first day of the week. - doy : 4 // The week that contains Jan 4th is the first week of the year. - } -}); - -return hu; - -}))); diff --git a/admin/bower_components/moment/locale/hy-am.js b/admin/bower_components/moment/locale/hy-am.js deleted file mode 100644 index 0b76845..0000000 --- a/admin/bower_components/moment/locale/hy-am.js +++ /dev/null @@ -1,95 +0,0 @@ -//! moment.js locale configuration -//! locale : Armenian [hy-am] -//! author : Armendarabyan : https://github.com/armendarabyan - -;(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' - && typeof require === 'function' ? factory(require('../moment')) : - typeof define === 'function' && define.amd ? define(['../moment'], factory) : - factory(global.moment) -}(this, (function (moment) { 'use strict'; - - -var hyAm = moment.defineLocale('hy-am', { - months : { - format: 'հունվարի_փետրվարի_մարտի_ապրիլի_մայիսի_հունիսի_հուլիսի_օգոստոսի_սեպտեմբերի_հոկտեմբերի_նոյեմբերի_դեկտեմբերի'.split('_'), - standalone: 'հունվար_փետրվար_մարտ_ապրիլ_մայիս_հունիս_հուլիս_օգոստոս_սեպտեմբեր_հոկտեմբեր_նոյեմբեր_դեկտեմբեր'.split('_') - }, - monthsShort : 'հնվ_փտր_մրտ_ապր_մյս_հնս_հլս_օգս_սպտ_հկտ_նմբ_դկտ'.split('_'), - weekdays : 'կիրակի_երկուշաբթի_երեքշաբթի_չորեքշաբթի_հինգշաբթի_ուրբաթ_շաբաթ'.split('_'), - weekdaysShort : 'կրկ_երկ_երք_չրք_հնգ_ուրբ_շբթ'.split('_'), - weekdaysMin : 'կրկ_երկ_երք_չրք_հնգ_ուրբ_շբթ'.split('_'), - longDateFormat : { - LT : 'HH:mm', - LTS : 'HH:mm:ss', - L : 'DD.MM.YYYY', - LL : 'D MMMM YYYY թ.', - LLL : 'D MMMM YYYY թ., HH:mm', - LLLL : 'dddd, D MMMM YYYY թ., HH:mm' - }, - calendar : { - sameDay: '[այսօր] LT', - nextDay: '[վաղը] LT', - lastDay: '[երեկ] LT', - nextWeek: function () { - return 'dddd [օրը ժամը] LT'; - }, - lastWeek: function () { - 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 տարի' - }, - meridiemParse: /գիշերվա|առավոտվա|ցերեկվա|երեկոյան/, - isPM: function (input) { - return /^(ցերեկվա|երեկոյան)$/.test(input); - }, - meridiem : function (hour) { - if (hour < 4) { - return 'գիշերվա'; - } else if (hour < 12) { - return 'առավոտվա'; - } else if (hour < 17) { - return 'ցերեկվա'; - } else { - return 'երեկոյան'; - } - }, - dayOfMonthOrdinalParse: /\d{1,2}|\d{1,2}-(ին|րդ)/, - ordinal: function (number, period) { - switch (period) { - case 'DDD': - case 'w': - case 'W': - case 'DDDo': - if (number === 1) { - return number + '-ին'; - } - return number + '-րդ'; - default: - return number; - } - }, - week : { - dow : 1, // Monday is the first day of the week. - doy : 7 // The week that contains Jan 1st is the first week of the year. - } -}); - -return hyAm; - -}))); diff --git a/admin/bower_components/moment/locale/id.js b/admin/bower_components/moment/locale/id.js deleted file mode 100644 index a1cfb18..0000000 --- a/admin/bower_components/moment/locale/id.js +++ /dev/null @@ -1,83 +0,0 @@ -//! moment.js locale configuration -//! locale : Indonesian [id] -//! author : Mohammad Satrio Utomo : https://github.com/tyok -//! reference: http://id.wikisource.org/wiki/Pedoman_Umum_Ejaan_Bahasa_Indonesia_yang_Disempurnakan - -;(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' - && typeof require === 'function' ? factory(require('../moment')) : - typeof define === 'function' && define.amd ? define(['../moment'], factory) : - factory(global.moment) -}(this, (function (moment) { 'use strict'; - - -var id = moment.defineLocale('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', - LTS : 'HH.mm.ss', - L : 'DD/MM/YYYY', - LL : 'D MMMM YYYY', - LLL : 'D MMMM YYYY [pukul] HH.mm', - LLLL : 'dddd, D MMMM YYYY [pukul] HH.mm' - }, - meridiemParse: /pagi|siang|sore|malam/, - meridiemHour : function (hour, meridiem) { - if (hour === 12) { - hour = 0; - } - if (meridiem === 'pagi') { - return hour; - } else if (meridiem === 'siang') { - return hour >= 11 ? hour : hour + 12; - } else if (meridiem === 'sore' || meridiem === 'malam') { - return hour + 12; - } - }, - meridiem : function (hours, minutes, isLower) { - if (hours < 11) { - return 'pagi'; - } else if (hours < 15) { - return 'siang'; - } else if (hours < 19) { - return 'sore'; - } else { - return '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, // Monday is the first day of the week. - doy : 7 // The week that contains Jan 1st is the first week of the year. - } -}); - -return id; - -}))); diff --git a/admin/bower_components/moment/locale/is.js b/admin/bower_components/moment/locale/is.js deleted file mode 100644 index 541b270..0000000 --- a/admin/bower_components/moment/locale/is.js +++ /dev/null @@ -1,127 +0,0 @@ -//! moment.js locale configuration -//! locale : Icelandic [is] -//! author : Hinrik Örn Sigurðsson : https://github.com/hinrik - -;(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' - && typeof require === 'function' ? factory(require('../moment')) : - typeof define === 'function' && define.amd ? define(['../moment'], factory) : - factory(global.moment) -}(this, (function (moment) { 'use strict'; - - -function plural(n) { - if (n % 100 === 11) { - return true; - } else if (n % 10 === 1) { - return false; - } - return true; -} -function translate(number, withoutSuffix, key, isFuture) { - var result = number + ' '; - switch (key) { - case 's': - return withoutSuffix || isFuture ? 'nokkrar sekúndur' : 'nokkrum sekúndum'; - case 'm': - return withoutSuffix ? 'mínúta' : 'mínútu'; - case 'mm': - if (plural(number)) { - return result + (withoutSuffix || isFuture ? 'mínútur' : 'mínútum'); - } else if (withoutSuffix) { - return result + 'mínúta'; - } - return result + 'mínútu'; - case 'hh': - if (plural(number)) { - return result + (withoutSuffix || isFuture ? 'klukkustundir' : 'klukkustundum'); - } - return result + 'klukkustund'; - case 'd': - if (withoutSuffix) { - return 'dagur'; - } - return isFuture ? 'dag' : 'degi'; - case 'dd': - if (plural(number)) { - if (withoutSuffix) { - return result + 'dagar'; - } - return result + (isFuture ? 'daga' : 'dögum'); - } else if (withoutSuffix) { - return result + 'dagur'; - } - return result + (isFuture ? 'dag' : 'degi'); - case 'M': - if (withoutSuffix) { - return 'mánuður'; - } - return isFuture ? 'mánuð' : 'mánuði'; - case 'MM': - if (plural(number)) { - if (withoutSuffix) { - return result + 'mánuðir'; - } - return result + (isFuture ? 'mánuði' : 'mánuðum'); - } else if (withoutSuffix) { - return result + 'mánuður'; - } - return result + (isFuture ? 'mánuð' : 'mánuði'); - case 'y': - return withoutSuffix || isFuture ? 'ár' : 'ári'; - case 'yy': - if (plural(number)) { - return result + (withoutSuffix || isFuture ? 'ár' : 'árum'); - } - return result + (withoutSuffix || isFuture ? 'ár' : 'ári'); - } -} - -var is = moment.defineLocale('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', - LTS : 'H:mm:ss', - L : 'DD.MM.YYYY', - LL : 'D. MMMM YYYY', - LLL : 'D. MMMM YYYY [kl.] H:mm', - LLLL : 'dddd, D. MMMM YYYY [kl.] H:mm' - }, - 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 : translate, - m : translate, - mm : translate, - h : 'klukkustund', - hh : translate, - d : translate, - dd : translate, - M : translate, - MM : translate, - y : translate, - yy : translate - }, - dayOfMonthOrdinalParse: /\d{1,2}\./, - ordinal : '%d.', - week : { - dow : 1, // Monday is the first day of the week. - doy : 4 // The week that contains Jan 4th is the first week of the year. - } -}); - -return is; - -}))); diff --git a/admin/bower_components/moment/locale/it.js b/admin/bower_components/moment/locale/it.js deleted file mode 100644 index f3079cb..0000000 --- a/admin/bower_components/moment/locale/it.js +++ /dev/null @@ -1,70 +0,0 @@ -//! moment.js locale configuration -//! locale : Italian [it] -//! author : Lorenzo : https://github.com/aliem -//! author: Mattia Larentis: https://github.com/nostalgiaz - -;(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' - && typeof require === 'function' ? factory(require('../moment')) : - typeof define === 'function' && define.amd ? define(['../moment'], factory) : - factory(global.moment) -}(this, (function (moment) { 'use strict'; - - -var it = moment.defineLocale('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 : 'do_lu_ma_me_gi_ve_sa'.split('_'), - longDateFormat : { - LT : 'HH:mm', - LTS : 'HH:mm:ss', - L : 'DD/MM/YYYY', - LL : 'D MMMM YYYY', - LLL : 'D MMMM YYYY HH:mm', - LLLL : 'dddd, D MMMM YYYY HH:mm' - }, - calendar : { - sameDay: '[Oggi alle] LT', - nextDay: '[Domani alle] LT', - nextWeek: 'dddd [alle] LT', - lastDay: '[Ieri alle] LT', - lastWeek: function () { - switch (this.day()) { - case 0: - return '[la scorsa] dddd [alle] LT'; - default: - return '[lo scorso] dddd [alle] LT'; - } - }, - sameElse: 'L' - }, - relativeTime : { - future : function (s) { - return ((/^[0-9].+$/).test(s) ? 'tra' : 'in') + ' ' + s; - }, - past : '%s fa', - s : 'alcuni 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' - }, - dayOfMonthOrdinalParse : /\d{1,2}º/, - ordinal: '%dº', - week : { - dow : 1, // Monday is the first day of the week. - doy : 4 // The week that contains Jan 4th is the first week of the year. - } -}); - -return it; - -}))); diff --git a/admin/bower_components/moment/locale/ja.js b/admin/bower_components/moment/locale/ja.js deleted file mode 100644 index b2e6553..0000000 --- a/admin/bower_components/moment/locale/ja.js +++ /dev/null @@ -1,80 +0,0 @@ -//! moment.js locale configuration -//! locale : Japanese [ja] -//! author : LI Long : https://github.com/baryon - -;(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' - && typeof require === 'function' ? factory(require('../moment')) : - typeof define === 'function' && define.amd ? define(['../moment'], factory) : - factory(global.moment) -}(this, (function (moment) { 'use strict'; - - -var ja = moment.defineLocale('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 : 'HH:mm', - LTS : 'HH:mm:ss', - L : 'YYYY/MM/DD', - LL : 'YYYY年M月D日', - LLL : 'YYYY年M月D日 HH:mm', - LLLL : 'YYYY年M月D日 HH:mm dddd', - l : 'YYYY/MM/DD', - ll : 'YYYY年M月D日', - lll : 'YYYY年M月D日 HH:mm', - llll : 'YYYY年M月D日 HH:mm dddd' - }, - meridiemParse: /午前|午後/i, - isPM : function (input) { - return input === '午後'; - }, - meridiem : function (hour, minute, isLower) { - if (hour < 12) { - return '午前'; - } else { - return '午後'; - } - }, - calendar : { - sameDay : '[今日] LT', - nextDay : '[明日] LT', - nextWeek : '[来週]dddd LT', - lastDay : '[昨日] LT', - lastWeek : '[前週]dddd LT', - sameElse : 'L' - }, - dayOfMonthOrdinalParse : /\d{1,2}日/, - ordinal : function (number, period) { - switch (period) { - case 'd': - case 'D': - case 'DDD': - return number + '日'; - default: - return number; - } - }, - 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年' - } -}); - -return ja; - -}))); diff --git a/admin/bower_components/moment/locale/jv.js b/admin/bower_components/moment/locale/jv.js deleted file mode 100644 index 5b939e0..0000000 --- a/admin/bower_components/moment/locale/jv.js +++ /dev/null @@ -1,83 +0,0 @@ -//! moment.js locale configuration -//! locale : Javanese [jv] -//! author : Rony Lantip : https://github.com/lantip -//! reference: http://jv.wikipedia.org/wiki/Basa_Jawa - -;(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' - && typeof require === 'function' ? factory(require('../moment')) : - typeof define === 'function' && define.amd ? define(['../moment'], factory) : - factory(global.moment) -}(this, (function (moment) { 'use strict'; - - -var jv = moment.defineLocale('jv', { - months : 'Januari_Februari_Maret_April_Mei_Juni_Juli_Agustus_September_Oktober_Nopember_Desember'.split('_'), - monthsShort : 'Jan_Feb_Mar_Apr_Mei_Jun_Jul_Ags_Sep_Okt_Nop_Des'.split('_'), - weekdays : 'Minggu_Senen_Seloso_Rebu_Kemis_Jemuwah_Septu'.split('_'), - weekdaysShort : 'Min_Sen_Sel_Reb_Kem_Jem_Sep'.split('_'), - weekdaysMin : 'Mg_Sn_Sl_Rb_Km_Jm_Sp'.split('_'), - longDateFormat : { - LT : 'HH.mm', - LTS : 'HH.mm.ss', - L : 'DD/MM/YYYY', - LL : 'D MMMM YYYY', - LLL : 'D MMMM YYYY [pukul] HH.mm', - LLLL : 'dddd, D MMMM YYYY [pukul] HH.mm' - }, - meridiemParse: /enjing|siyang|sonten|ndalu/, - meridiemHour : function (hour, meridiem) { - if (hour === 12) { - hour = 0; - } - if (meridiem === 'enjing') { - return hour; - } else if (meridiem === 'siyang') { - return hour >= 11 ? hour : hour + 12; - } else if (meridiem === 'sonten' || meridiem === 'ndalu') { - return hour + 12; - } - }, - meridiem : function (hours, minutes, isLower) { - if (hours < 11) { - return 'enjing'; - } else if (hours < 15) { - return 'siyang'; - } else if (hours < 19) { - return 'sonten'; - } else { - return 'ndalu'; - } - }, - calendar : { - sameDay : '[Dinten puniko pukul] LT', - nextDay : '[Mbenjang pukul] LT', - nextWeek : 'dddd [pukul] LT', - lastDay : '[Kala wingi pukul] LT', - lastWeek : 'dddd [kepengker pukul] LT', - sameElse : 'L' - }, - relativeTime : { - future : 'wonten ing %s', - past : '%s ingkang kepengker', - s : 'sawetawis detik', - m : 'setunggal menit', - mm : '%d menit', - h : 'setunggal jam', - hh : '%d jam', - d : 'sedinten', - dd : '%d dinten', - M : 'sewulan', - MM : '%d wulan', - y : 'setaun', - yy : '%d taun' - }, - week : { - dow : 1, // Monday is the first day of the week. - doy : 7 // The week that contains Jan 1st is the first week of the year. - } -}); - -return jv; - -}))); diff --git a/admin/bower_components/moment/locale/ka.js b/admin/bower_components/moment/locale/ka.js deleted file mode 100644 index 2a95638..0000000 --- a/admin/bower_components/moment/locale/ka.js +++ /dev/null @@ -1,89 +0,0 @@ -//! moment.js locale configuration -//! locale : Georgian [ka] -//! author : Irakli Janiashvili : https://github.com/irakli-janiashvili - -;(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' - && typeof require === 'function' ? factory(require('../moment')) : - typeof define === 'function' && define.amd ? define(['../moment'], factory) : - factory(global.moment) -}(this, (function (moment) { 'use strict'; - - -var ka = moment.defineLocale('ka', { - months : { - standalone: 'იანვარი_თებერვალი_მარტი_აპრილი_მაისი_ივნისი_ივლისი_აგვისტო_სექტემბერი_ოქტომბერი_ნოემბერი_დეკემბერი'.split('_'), - format: 'იანვარს_თებერვალს_მარტს_აპრილის_მაისს_ივნისს_ივლისს_აგვისტს_სექტემბერს_ოქტომბერს_ნოემბერს_დეკემბერს'.split('_') - }, - monthsShort : 'იან_თებ_მარ_აპრ_მაი_ივნ_ივლ_აგვ_სექ_ოქტ_ნოე_დეკ'.split('_'), - weekdays : { - standalone: 'კვირა_ორშაბათი_სამშაბათი_ოთხშაბათი_ხუთშაბათი_პარასკევი_შაბათი'.split('_'), - format: 'კვირას_ორშაბათს_სამშაბათს_ოთხშაბათს_ხუთშაბათს_პარასკევს_შაბათს'.split('_'), - isFormat: /(წინა|შემდეგ)/ - }, - weekdaysShort : 'კვი_ორშ_სამ_ოთხ_ხუთ_პარ_შაბ'.split('_'), - weekdaysMin : 'კვ_ორ_სა_ოთ_ხუ_პა_შა'.split('_'), - longDateFormat : { - LT : 'h:mm A', - LTS : 'h:mm:ss A', - L : 'DD/MM/YYYY', - LL : 'D MMMM YYYY', - LLL : 'D MMMM YYYY h:mm A', - LLLL : 'dddd, D MMMM YYYY h:mm A' - }, - calendar : { - sameDay : '[დღეს] LT[-ზე]', - nextDay : '[ხვალ] LT[-ზე]', - lastDay : '[გუშინ] LT[-ზე]', - nextWeek : '[შემდეგ] dddd LT[-ზე]', - lastWeek : '[წინა] dddd LT-ზე', - sameElse : 'L' - }, - relativeTime : { - future : function (s) { - return (/(წამი|წუთი|საათი|წელი)/).test(s) ? - s.replace(/ი$/, 'ში') : - s + 'ში'; - }, - past : function (s) { - if ((/(წამი|წუთი|საათი|დღე|თვე)/).test(s)) { - return s.replace(/(ი|ე)$/, 'ის უკან'); - } - if ((/წელი/).test(s)) { - return s.replace(/წელი$/, 'წლის უკან'); - } - }, - s : 'რამდენიმე წამი', - m : 'წუთი', - mm : '%d წუთი', - h : 'საათი', - hh : '%d საათი', - d : 'დღე', - dd : '%d დღე', - M : 'თვე', - MM : '%d თვე', - y : 'წელი', - yy : '%d წელი' - }, - dayOfMonthOrdinalParse: /0|1-ლი|მე-\d{1,2}|\d{1,2}-ე/, - ordinal : function (number) { - if (number === 0) { - return number; - } - if (number === 1) { - return number + '-ლი'; - } - if ((number < 20) || (number <= 100 && (number % 20 === 0)) || (number % 100 === 0)) { - return 'მე-' + number; - } - return number + '-ე'; - }, - week : { - dow : 1, - doy : 7 - } -}); - -return ka; - -}))); diff --git a/admin/bower_components/moment/locale/kk.js b/admin/bower_components/moment/locale/kk.js deleted file mode 100644 index 777a529..0000000 --- a/admin/bower_components/moment/locale/kk.js +++ /dev/null @@ -1,87 +0,0 @@ -//! moment.js locale configuration -//! locale : Kazakh [kk] -//! authors : Nurlan Rakhimzhanov : https://github.com/nurlan - -;(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' - && typeof require === 'function' ? factory(require('../moment')) : - typeof define === 'function' && define.amd ? define(['../moment'], factory) : - factory(global.moment) -}(this, (function (moment) { 'use strict'; - - -var suffixes = { - 0: '-ші', - 1: '-ші', - 2: '-ші', - 3: '-ші', - 4: '-ші', - 5: '-ші', - 6: '-шы', - 7: '-ші', - 8: '-ші', - 9: '-шы', - 10: '-шы', - 20: '-шы', - 30: '-шы', - 40: '-шы', - 50: '-ші', - 60: '-шы', - 70: '-ші', - 80: '-ші', - 90: '-шы', - 100: '-ші' -}; - -var kk = moment.defineLocale('kk', { - months : 'қаңтар_ақпан_наурыз_сәуір_мамыр_маусым_шілде_тамыз_қыркүйек_қазан_қараша_желтоқсан'.split('_'), - monthsShort : 'қаң_ақп_нау_сәу_мам_мау_шіл_там_қыр_қаз_қар_жел'.split('_'), - weekdays : 'жексенбі_дүйсенбі_сейсенбі_сәрсенбі_бейсенбі_жұма_сенбі'.split('_'), - weekdaysShort : 'жек_дүй_сей_сәр_бей_жұм_сен'.split('_'), - weekdaysMin : 'жк_дй_сй_ср_бй_жм_сн'.split('_'), - longDateFormat : { - LT : 'HH:mm', - LTS : 'HH:mm:ss', - L : 'DD.MM.YYYY', - LL : 'D MMMM YYYY', - LLL : 'D MMMM YYYY HH:mm', - LLLL : 'dddd, D MMMM YYYY HH:mm' - }, - 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 жыл' - }, - dayOfMonthOrdinalParse: /\d{1,2}-(ші|шы)/, - ordinal : function (number) { - var a = number % 10, - b = number >= 100 ? 100 : null; - return number + (suffixes[number] || suffixes[a] || suffixes[b]); - }, - week : { - dow : 1, // Monday is the first day of the week. - doy : 7 // The week that contains Jan 1st is the first week of the year. - } -}); - -return kk; - -}))); diff --git a/admin/bower_components/moment/locale/km.js b/admin/bower_components/moment/locale/km.js deleted file mode 100644 index 71482a7..0000000 --- a/admin/bower_components/moment/locale/km.js +++ /dev/null @@ -1,58 +0,0 @@ -//! moment.js locale configuration -//! locale : Cambodian [km] -//! author : Kruy Vanna : https://github.com/kruyvanna - -;(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' - && typeof require === 'function' ? factory(require('../moment')) : - typeof define === 'function' && define.amd ? define(['../moment'], factory) : - factory(global.moment) -}(this, (function (moment) { 'use strict'; - - -var km = moment.defineLocale('km', { - months: 'មករា_កុម្ភៈ_មីនា_មេសា_ឧសភា_មិថុនា_កក្កដា_សីហា_កញ្ញា_តុលា_វិច្ឆិកា_ធ្នូ'.split('_'), - monthsShort: 'មករា_កុម្ភៈ_មីនា_មេសា_ឧសភា_មិថុនា_កក្កដា_សីហា_កញ្ញា_តុលា_វិច្ឆិកា_ធ្នូ'.split('_'), - weekdays: 'អាទិត្យ_ច័ន្ទ_អង្គារ_ពុធ_ព្រហស្បតិ៍_សុក្រ_សៅរ៍'.split('_'), - weekdaysShort: 'អាទិត្យ_ច័ន្ទ_អង្គារ_ពុធ_ព្រហស្បតិ៍_សុក្រ_សៅរ៍'.split('_'), - weekdaysMin: 'អាទិត្យ_ច័ន្ទ_អង្គារ_ពុធ_ព្រហស្បតិ៍_សុក្រ_សៅរ៍'.split('_'), - longDateFormat: { - LT: 'HH:mm', - LTS : 'HH:mm:ss', - L: 'DD/MM/YYYY', - LL: 'D MMMM YYYY', - LLL: 'D MMMM YYYY HH:mm', - LLLL: 'dddd, D MMMM YYYY HH:mm' - }, - 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, // Monday is the first day of the week. - doy: 4 // The week that contains Jan 4th is the first week of the year. - } -}); - -return km; - -}))); diff --git a/admin/bower_components/moment/locale/kn.js b/admin/bower_components/moment/locale/kn.js deleted file mode 100644 index aeacafa..0000000 --- a/admin/bower_components/moment/locale/kn.js +++ /dev/null @@ -1,126 +0,0 @@ -//! moment.js locale configuration -//! locale : Kannada [kn] -//! author : Rajeev Naik : https://github.com/rajeevnaikte - -;(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' - && typeof require === 'function' ? factory(require('../moment')) : - typeof define === 'function' && define.amd ? define(['../moment'], factory) : - factory(global.moment) -}(this, (function (moment) { 'use strict'; - - -var symbolMap = { - '1': '೧', - '2': '೨', - '3': '೩', - '4': '೪', - '5': '೫', - '6': '೬', - '7': '೭', - '8': '೮', - '9': '೯', - '0': '೦' -}; -var numberMap = { - '೧': '1', - '೨': '2', - '೩': '3', - '೪': '4', - '೫': '5', - '೬': '6', - '೭': '7', - '೮': '8', - '೯': '9', - '೦': '0' -}; - -var kn = moment.defineLocale('kn', { - months : 'ಜನವರಿ_ಫೆಬ್ರವರಿ_ಮಾರ್ಚ್_ಏಪ್ರಿಲ್_ಮೇ_ಜೂನ್_ಜುಲೈ_ಆಗಸ್ಟ್_ಸೆಪ್ಟೆಂಬರ್_ಅಕ್ಟೋಬರ್_ನವೆಂಬರ್_ಡಿಸೆಂಬರ್'.split('_'), - monthsShort : 'ಜನ_ಫೆಬ್ರ_ಮಾರ್ಚ್_ಏಪ್ರಿಲ್_ಮೇ_ಜೂನ್_ಜುಲೈ_ಆಗಸ್ಟ್_ಸೆಪ್ಟೆಂಬ_ಅಕ್ಟೋಬ_ನವೆಂಬ_ಡಿಸೆಂಬ'.split('_'), - monthsParseExact: true, - weekdays : 'ಭಾನುವಾರ_ಸೋಮವಾರ_ಮಂಗಳವಾರ_ಬುಧವಾರ_ಗುರುವಾರ_ಶುಕ್ರವಾರ_ಶನಿವಾರ'.split('_'), - weekdaysShort : 'ಭಾನು_ಸೋಮ_ಮಂಗಳ_ಬುಧ_ಗುರು_ಶುಕ್ರ_ಶನಿ'.split('_'), - weekdaysMin : 'ಭಾ_ಸೋ_ಮಂ_ಬು_ಗು_ಶು_ಶ'.split('_'), - longDateFormat : { - LT : 'A h:mm', - LTS : 'A h:mm:ss', - L : 'DD/MM/YYYY', - LL : 'D MMMM YYYY', - LLL : 'D MMMM YYYY, A h:mm', - LLLL : 'dddd, D MMMM YYYY, A h:mm' - }, - 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 (string) { - return string.replace(/[೧೨೩೪೫೬೭೮೯೦]/g, function (match) { - return numberMap[match]; - }); - }, - postformat: function (string) { - return string.replace(/\d/g, function (match) { - return symbolMap[match]; - }); - }, - meridiemParse: /ರಾತ್ರಿ|ಬೆಳಿಗ್ಗೆ|ಮಧ್ಯಾಹ್ನ|ಸಂಜೆ/, - meridiemHour : function (hour, meridiem) { - if (hour === 12) { - hour = 0; - } - if (meridiem === 'ರಾತ್ರಿ') { - return hour < 4 ? hour : hour + 12; - } else if (meridiem === 'ಬೆಳಿಗ್ಗೆ') { - return hour; - } else if (meridiem === 'ಮಧ್ಯಾಹ್ನ') { - return hour >= 10 ? hour : hour + 12; - } else if (meridiem === 'ಸಂಜೆ') { - return hour + 12; - } - }, - meridiem : function (hour, minute, isLower) { - if (hour < 4) { - return 'ರಾತ್ರಿ'; - } else if (hour < 10) { - return 'ಬೆಳಿಗ್ಗೆ'; - } else if (hour < 17) { - return 'ಮಧ್ಯಾಹ್ನ'; - } else if (hour < 20) { - return 'ಸಂಜೆ'; - } else { - return 'ರಾತ್ರಿ'; - } - }, - dayOfMonthOrdinalParse: /\d{1,2}(ನೇ)/, - ordinal : function (number) { - return number + 'ನೇ'; - }, - week : { - dow : 0, // Sunday is the first day of the week. - doy : 6 // The week that contains Jan 1st is the first week of the year. - } -}); - -return kn; - -}))); diff --git a/admin/bower_components/moment/locale/ko.js b/admin/bower_components/moment/locale/ko.js deleted file mode 100644 index 13d1c4d..0000000 --- a/admin/bower_components/moment/locale/ko.js +++ /dev/null @@ -1,69 +0,0 @@ -//! moment.js locale configuration -//! locale : Korean [ko] -//! author : Kyungwook, Park : https://github.com/kyungw00k -//! author : Jeeeyul Lee <jeeeyul@gmail.com> - -;(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' - && typeof require === 'function' ? factory(require('../moment')) : - typeof define === 'function' && define.amd ? define(['../moment'], factory) : - factory(global.moment) -}(this, (function (moment) { 'use strict'; - - -var ko = moment.defineLocale('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', - LTS : 'A h:mm:ss', - L : 'YYYY.MM.DD', - LL : 'YYYY년 MMMM D일', - LLL : 'YYYY년 MMMM D일 A h:mm', - LLLL : 'YYYY년 MMMM D일 dddd A h:mm', - l : 'YYYY.MM.DD', - ll : 'YYYY년 MMMM D일', - lll : 'YYYY년 MMMM D일 A h:mm', - llll : 'YYYY년 MMMM D일 dddd A h:mm' - }, - calendar : { - sameDay : '오늘 LT', - nextDay : '내일 LT', - nextWeek : 'dddd LT', - lastDay : '어제 LT', - lastWeek : '지난주 dddd LT', - sameElse : 'L' - }, - relativeTime : { - future : '%s 후', - past : '%s 전', - s : '몇 초', - ss : '%d초', - m : '1분', - mm : '%d분', - h : '한 시간', - hh : '%d시간', - d : '하루', - dd : '%d일', - M : '한 달', - MM : '%d달', - y : '일 년', - yy : '%d년' - }, - dayOfMonthOrdinalParse : /\d{1,2}일/, - ordinal : '%d일', - meridiemParse : /오전|오후/, - isPM : function (token) { - return token === '오후'; - }, - meridiem : function (hour, minute, isUpper) { - return hour < 12 ? '오전' : '오후'; - } -}); - -return ko; - -}))); diff --git a/admin/bower_components/moment/locale/ky.js b/admin/bower_components/moment/locale/ky.js deleted file mode 100644 index ae4053a..0000000 --- a/admin/bower_components/moment/locale/ky.js +++ /dev/null @@ -1,88 +0,0 @@ -//! moment.js locale configuration -//! locale : Kyrgyz [ky] -//! author : Chyngyz Arystan uulu : https://github.com/chyngyz - -;(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' - && typeof require === 'function' ? factory(require('../moment')) : - typeof define === 'function' && define.amd ? define(['../moment'], factory) : - factory(global.moment) -}(this, (function (moment) { 'use strict'; - - - -var suffixes = { - 0: '-чү', - 1: '-чи', - 2: '-чи', - 3: '-чү', - 4: '-чү', - 5: '-чи', - 6: '-чы', - 7: '-чи', - 8: '-чи', - 9: '-чу', - 10: '-чу', - 20: '-чы', - 30: '-чу', - 40: '-чы', - 50: '-чү', - 60: '-чы', - 70: '-чи', - 80: '-чи', - 90: '-чу', - 100: '-чү' -}; - -var ky = moment.defineLocale('ky', { - months : 'январь_февраль_март_апрель_май_июнь_июль_август_сентябрь_октябрь_ноябрь_декабрь'.split('_'), - monthsShort : 'янв_фев_март_апр_май_июнь_июль_авг_сен_окт_ноя_дек'.split('_'), - weekdays : 'Жекшемби_Дүйшөмбү_Шейшемби_Шаршемби_Бейшемби_Жума_Ишемби'.split('_'), - weekdaysShort : 'Жек_Дүй_Шей_Шар_Бей_Жум_Ише'.split('_'), - weekdaysMin : 'Жк_Дй_Шй_Шр_Бй_Жм_Иш'.split('_'), - longDateFormat : { - LT : 'HH:mm', - LTS : 'HH:mm:ss', - L : 'DD.MM.YYYY', - LL : 'D MMMM YYYY', - LLL : 'D MMMM YYYY HH:mm', - LLLL : 'dddd, D MMMM YYYY HH:mm' - }, - 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 жыл' - }, - dayOfMonthOrdinalParse: /\d{1,2}-(чи|чы|чү|чу)/, - ordinal : function (number) { - var a = number % 10, - b = number >= 100 ? 100 : null; - return number + (suffixes[number] || suffixes[a] || suffixes[b]); - }, - week : { - dow : 1, // Monday is the first day of the week. - doy : 7 // The week that contains Jan 1st is the first week of the year. - } -}); - -return ky; - -}))); diff --git a/admin/bower_components/moment/locale/lb.js b/admin/bower_components/moment/locale/lb.js deleted file mode 100644 index 56c1803..0000000 --- a/admin/bower_components/moment/locale/lb.js +++ /dev/null @@ -1,137 +0,0 @@ -//! moment.js locale configuration -//! locale : Luxembourgish [lb] -//! author : mweimerskirch : https://github.com/mweimerskirch -//! author : David Raison : https://github.com/kwisatz - -;(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' - && typeof require === 'function' ? factory(require('../moment')) : - typeof define === 'function' && define.amd ? define(['../moment'], factory) : - factory(global.moment) -}(this, (function (moment) { 'use strict'; - - -function processRelativeTime(number, withoutSuffix, key, isFuture) { - var format = { - 'm': ['eng Minutt', 'enger Minutt'], - 'h': ['eng Stonn', 'enger Stonn'], - 'd': ['een Dag', 'engem Dag'], - 'M': ['ee Mount', 'engem Mount'], - 'y': ['ee Joer', 'engem Joer'] - }; - return withoutSuffix ? format[key][0] : format[key][1]; -} -function processFutureTime(string) { - var number = string.substr(0, string.indexOf(' ')); - if (eifelerRegelAppliesToNumber(number)) { - return 'a ' + string; - } - return 'an ' + string; -} -function processPastTime(string) { - var number = string.substr(0, string.indexOf(' ')); - if (eifelerRegelAppliesToNumber(number)) { - return 'viru ' + string; - } - return 'virun ' + string; -} -/** - * Returns true if the word before the given number loses the '-n' ending. - * e.g. 'an 10 Deeg' but 'a 5 Deeg' - * - * @param number {integer} - * @returns {boolean} - */ -function eifelerRegelAppliesToNumber(number) { - number = parseInt(number, 10); - if (isNaN(number)) { - return false; - } - if (number < 0) { - // Negative Number --> always true - return true; - } else if (number < 10) { - // Only 1 digit - if (4 <= number && number <= 7) { - return true; - } - return false; - } else if (number < 100) { - // 2 digits - var lastDigit = number % 10, firstDigit = number / 10; - if (lastDigit === 0) { - return eifelerRegelAppliesToNumber(firstDigit); - } - return eifelerRegelAppliesToNumber(lastDigit); - } else if (number < 10000) { - // 3 or 4 digits --> recursively check first digit - while (number >= 10) { - number = number / 10; - } - return eifelerRegelAppliesToNumber(number); - } else { - // Anything larger than 4 digits: recursively check first n-3 digits - number = number / 1000; - return eifelerRegelAppliesToNumber(number); - } -} - -var lb = moment.defineLocale('lb', { - months: 'Januar_Februar_Mäerz_Abrëll_Mee_Juni_Juli_August_September_Oktober_November_Dezember'.split('_'), - monthsShort: 'Jan._Febr._Mrz._Abr._Mee_Jun._Jul._Aug._Sept._Okt._Nov._Dez.'.split('_'), - monthsParseExact : true, - weekdays: 'Sonndeg_Méindeg_Dënschdeg_Mëttwoch_Donneschdeg_Freideg_Samschdeg'.split('_'), - weekdaysShort: 'So._Mé._Dë._Më._Do._Fr._Sa.'.split('_'), - weekdaysMin: 'So_Mé_Dë_Më_Do_Fr_Sa'.split('_'), - weekdaysParseExact : true, - longDateFormat: { - LT: 'H:mm [Auer]', - LTS: 'H:mm:ss [Auer]', - L: 'DD.MM.YYYY', - LL: 'D. MMMM YYYY', - LLL: 'D. MMMM YYYY H:mm [Auer]', - LLLL: 'dddd, D. MMMM YYYY H:mm [Auer]' - }, - calendar: { - sameDay: '[Haut um] LT', - sameElse: 'L', - nextDay: '[Muer um] LT', - nextWeek: 'dddd [um] LT', - lastDay: '[Gëschter um] LT', - lastWeek: function () { - // Different date string for 'Dënschdeg' (Tuesday) and 'Donneschdeg' (Thursday) due to phonological rule - switch (this.day()) { - case 2: - case 4: - return '[Leschten] dddd [um] LT'; - default: - return '[Leschte] dddd [um] LT'; - } - } - }, - relativeTime : { - future : processFutureTime, - past : processPastTime, - s : 'e puer Sekonnen', - m : processRelativeTime, - mm : '%d Minutten', - h : processRelativeTime, - hh : '%d Stonnen', - d : processRelativeTime, - dd : '%d Deeg', - M : processRelativeTime, - MM : '%d Méint', - y : processRelativeTime, - yy : '%d Joer' - }, - dayOfMonthOrdinalParse: /\d{1,2}\./, - ordinal: '%d.', - week: { - dow: 1, // Monday is the first day of the week. - doy: 4 // The week that contains Jan 4th is the first week of the year. - } -}); - -return lb; - -}))); diff --git a/admin/bower_components/moment/locale/lo.js b/admin/bower_components/moment/locale/lo.js deleted file mode 100644 index 8e5cdbd..0000000 --- a/admin/bower_components/moment/locale/lo.js +++ /dev/null @@ -1,70 +0,0 @@ -//! moment.js locale configuration -//! locale : Lao [lo] -//! author : Ryan Hart : https://github.com/ryanhart2 - -;(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' - && typeof require === 'function' ? factory(require('../moment')) : - typeof define === 'function' && define.amd ? define(['../moment'], factory) : - factory(global.moment) -}(this, (function (moment) { 'use strict'; - - -var lo = moment.defineLocale('lo', { - months : 'ມັງກອນ_ກຸມພາ_ມີນາ_ເມສາ_ພຶດສະພາ_ມິຖຸນາ_ກໍລະກົດ_ສິງຫາ_ກັນຍາ_ຕຸລາ_ພະຈິກ_ທັນວາ'.split('_'), - monthsShort : 'ມັງກອນ_ກຸມພາ_ມີນາ_ເມສາ_ພຶດສະພາ_ມິຖຸນາ_ກໍລະກົດ_ສິງຫາ_ກັນຍາ_ຕຸລາ_ພະຈິກ_ທັນວາ'.split('_'), - weekdays : 'ອາທິດ_ຈັນ_ອັງຄານ_ພຸດ_ພະຫັດ_ສຸກ_ເສົາ'.split('_'), - weekdaysShort : 'ທິດ_ຈັນ_ອັງຄານ_ພຸດ_ພະຫັດ_ສຸກ_ເສົາ'.split('_'), - weekdaysMin : 'ທ_ຈ_ອຄ_ພ_ພຫ_ສກ_ສ'.split('_'), - weekdaysParseExact : true, - longDateFormat : { - LT : 'HH:mm', - LTS : 'HH:mm:ss', - L : 'DD/MM/YYYY', - LL : 'D MMMM YYYY', - LLL : 'D MMMM YYYY HH:mm', - LLLL : 'ວັນdddd D MMMM YYYY HH:mm' - }, - meridiemParse: /ຕອນເຊົ້າ|ຕອນແລງ/, - isPM: function (input) { - return input === 'ຕອນແລງ'; - }, - meridiem : function (hour, minute, isLower) { - if (hour < 12) { - return 'ຕອນເຊົ້າ'; - } else { - return 'ຕອນແລງ'; - } - }, - 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 ປີ' - }, - dayOfMonthOrdinalParse: /(ທີ່)\d{1,2}/, - ordinal : function (number) { - return 'ທີ່' + number; - } -}); - -return lo; - -}))); diff --git a/admin/bower_components/moment/locale/lt.js b/admin/bower_components/moment/locale/lt.js deleted file mode 100644 index d2fb760..0000000 --- a/admin/bower_components/moment/locale/lt.js +++ /dev/null @@ -1,117 +0,0 @@ -//! moment.js locale configuration -//! locale : Lithuanian [lt] -//! author : Mindaugas Mozūras : https://github.com/mmozuras - -;(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' - && typeof require === 'function' ? factory(require('../moment')) : - typeof define === 'function' && define.amd ? define(['../moment'], factory) : - factory(global.moment) -}(this, (function (moment) { 'use strict'; - - -var units = { - 'm' : 'minutė_minutės_minutę', - 'mm': 'minutės_minučių_minutes', - 'h' : 'valanda_valandos_valandą', - 'hh': 'valandos_valandų_valandas', - 'd' : 'diena_dienos_dieną', - 'dd': 'dienos_dienų_dienas', - 'M' : 'mėnuo_mėnesio_mėnesį', - 'MM': 'mėnesiai_mėnesių_mėnesius', - 'y' : 'metai_metų_metus', - 'yy': 'metai_metų_metus' -}; -function translateSeconds(number, withoutSuffix, key, isFuture) { - if (withoutSuffix) { - return 'kelios sekundės'; - } else { - return isFuture ? 'kelių sekundžių' : 'kelias sekundes'; - } -} -function translateSingular(number, withoutSuffix, key, isFuture) { - return withoutSuffix ? forms(key)[0] : (isFuture ? forms(key)[1] : forms(key)[2]); -} -function special(number) { - return number % 10 === 0 || (number > 10 && number < 20); -} -function forms(key) { - return units[key].split('_'); -} -function translate(number, withoutSuffix, key, isFuture) { - var result = number + ' '; - if (number === 1) { - return result + translateSingular(number, withoutSuffix, key[0], isFuture); - } else if (withoutSuffix) { - return result + (special(number) ? forms(key)[1] : forms(key)[0]); - } else { - if (isFuture) { - return result + forms(key)[1]; - } else { - return result + (special(number) ? forms(key)[1] : forms(key)[2]); - } - } -} -var lt = moment.defineLocale('lt', { - months : { - format: 'sausio_vasario_kovo_balandžio_gegužės_birželio_liepos_rugpjūčio_rugsėjo_spalio_lapkričio_gruodžio'.split('_'), - standalone: 'sausis_vasaris_kovas_balandis_gegužė_birželis_liepa_rugpjūtis_rugsėjis_spalis_lapkritis_gruodis'.split('_'), - isFormat: /D[oD]?(\[[^\[\]]*\]|\s)+MMMM?|MMMM?(\[[^\[\]]*\]|\s)+D[oD]?/ - }, - monthsShort : 'sau_vas_kov_bal_geg_bir_lie_rgp_rgs_spa_lap_grd'.split('_'), - weekdays : { - format: 'sekmadienį_pirmadienį_antradienį_trečiadienį_ketvirtadienį_penktadienį_šeštadienį'.split('_'), - standalone: 'sekmadienis_pirmadienis_antradienis_trečiadienis_ketvirtadienis_penktadienis_šeštadienis'.split('_'), - isFormat: /dddd HH:mm/ - }, - weekdaysShort : 'Sek_Pir_Ant_Tre_Ket_Pen_Šeš'.split('_'), - weekdaysMin : 'S_P_A_T_K_Pn_Š'.split('_'), - weekdaysParseExact : true, - longDateFormat : { - LT : 'HH:mm', - LTS : 'HH:mm:ss', - L : 'YYYY-MM-DD', - LL : 'YYYY [m.] MMMM D [d.]', - LLL : 'YYYY [m.] MMMM D [d.], HH:mm [val.]', - LLLL : 'YYYY [m.] MMMM D [d.], dddd, HH:mm [val.]', - l : 'YYYY-MM-DD', - ll : 'YYYY [m.] MMMM D [d.]', - lll : 'YYYY [m.] MMMM D [d.], HH:mm [val.]', - llll : 'YYYY [m.] MMMM D [d.], ddd, HH:mm [val.]' - }, - calendar : { - sameDay : '[Šiandien] LT', - nextDay : '[Rytoj] LT', - nextWeek : 'dddd LT', - lastDay : '[Vakar] LT', - lastWeek : '[Praėjusį] dddd LT', - sameElse : 'L' - }, - relativeTime : { - future : 'po %s', - past : 'prieš %s', - s : translateSeconds, - m : translateSingular, - mm : translate, - h : translateSingular, - hh : translate, - d : translateSingular, - dd : translate, - M : translateSingular, - MM : translate, - y : translateSingular, - yy : translate - }, - dayOfMonthOrdinalParse: /\d{1,2}-oji/, - ordinal : function (number) { - return number + '-oji'; - }, - week : { - dow : 1, // Monday is the first day of the week. - doy : 4 // The week that contains Jan 4th is the first week of the year. - } -}); - -return lt; - -}))); diff --git a/admin/bower_components/moment/locale/lv.js b/admin/bower_components/moment/locale/lv.js deleted file mode 100644 index e2d9887..0000000 --- a/admin/bower_components/moment/locale/lv.js +++ /dev/null @@ -1,97 +0,0 @@ -//! moment.js locale configuration -//! locale : Latvian [lv] -//! author : Kristaps Karlsons : https://github.com/skakri -//! author : Jānis Elmeris : https://github.com/JanisE - -;(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' - && typeof require === 'function' ? factory(require('../moment')) : - typeof define === 'function' && define.amd ? define(['../moment'], factory) : - factory(global.moment) -}(this, (function (moment) { 'use strict'; - - -var units = { - 'm': 'minūtes_minūtēm_minūte_minūtes'.split('_'), - 'mm': 'minūtes_minūtēm_minūte_minūtes'.split('_'), - 'h': 'stundas_stundām_stunda_stundas'.split('_'), - 'hh': 'stundas_stundām_stunda_stundas'.split('_'), - 'd': 'dienas_dienām_diena_dienas'.split('_'), - 'dd': 'dienas_dienām_diena_dienas'.split('_'), - 'M': 'mēneša_mēnešiem_mēnesis_mēneši'.split('_'), - 'MM': 'mēneša_mēnešiem_mēnesis_mēneši'.split('_'), - 'y': 'gada_gadiem_gads_gadi'.split('_'), - 'yy': 'gada_gadiem_gads_gadi'.split('_') -}; -/** - * @param withoutSuffix boolean true = a length of time; false = before/after a period of time. - */ -function format(forms, number, withoutSuffix) { - if (withoutSuffix) { - // E.g. "21 minūte", "3 minūtes". - return number % 10 === 1 && number % 100 !== 11 ? forms[2] : forms[3]; - } else { - // E.g. "21 minūtes" as in "pēc 21 minūtes". - // E.g. "3 minūtēm" as in "pēc 3 minūtēm". - return number % 10 === 1 && number % 100 !== 11 ? forms[0] : forms[1]; - } -} -function relativeTimeWithPlural(number, withoutSuffix, key) { - return number + ' ' + format(units[key], number, withoutSuffix); -} -function relativeTimeWithSingular(number, withoutSuffix, key) { - return format(units[key], number, withoutSuffix); -} -function relativeSeconds(number, withoutSuffix) { - return withoutSuffix ? 'dažas sekundes' : 'dažām sekundēm'; -} - -var lv = moment.defineLocale('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('_'), - weekdaysParseExact : true, - longDateFormat : { - LT : 'HH:mm', - LTS : 'HH:mm:ss', - L : 'DD.MM.YYYY.', - LL : 'YYYY. [gada] D. MMMM', - LLL : 'YYYY. [gada] D. MMMM, HH:mm', - LLLL : 'YYYY. [gada] D. MMMM, dddd, HH:mm' - }, - 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 : 'pēc %s', - past : 'pirms %s', - s : relativeSeconds, - m : relativeTimeWithSingular, - mm : relativeTimeWithPlural, - h : relativeTimeWithSingular, - hh : relativeTimeWithPlural, - d : relativeTimeWithSingular, - dd : relativeTimeWithPlural, - M : relativeTimeWithSingular, - MM : relativeTimeWithPlural, - y : relativeTimeWithSingular, - yy : relativeTimeWithPlural - }, - dayOfMonthOrdinalParse: /\d{1,2}\./, - ordinal : '%d.', - week : { - dow : 1, // Monday is the first day of the week. - doy : 4 // The week that contains Jan 4th is the first week of the year. - } -}); - -return lv; - -}))); diff --git a/admin/bower_components/moment/locale/me.js b/admin/bower_components/moment/locale/me.js deleted file mode 100644 index 07ed6ca..0000000 --- a/admin/bower_components/moment/locale/me.js +++ /dev/null @@ -1,111 +0,0 @@ -//! moment.js locale configuration -//! locale : Montenegrin [me] -//! author : Miodrag Nikač <miodrag@restartit.me> : https://github.com/miodragnikac - -;(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' - && typeof require === 'function' ? factory(require('../moment')) : - typeof define === 'function' && define.amd ? define(['../moment'], factory) : - factory(global.moment) -}(this, (function (moment) { 'use strict'; - - -var translator = { - words: { //Different grammatical cases - m: ['jedan minut', 'jednog minuta'], - mm: ['minut', 'minuta', 'minuta'], - h: ['jedan sat', 'jednog sata'], - hh: ['sat', 'sata', 'sati'], - dd: ['dan', 'dana', 'dana'], - MM: ['mjesec', 'mjeseca', 'mjeseci'], - yy: ['godina', 'godine', 'godina'] - }, - correctGrammaticalCase: function (number, wordKey) { - return number === 1 ? wordKey[0] : (number >= 2 && number <= 4 ? wordKey[1] : wordKey[2]); - }, - translate: function (number, withoutSuffix, key) { - var wordKey = translator.words[key]; - if (key.length === 1) { - return withoutSuffix ? wordKey[0] : wordKey[1]; - } else { - return number + ' ' + translator.correctGrammaticalCase(number, wordKey); - } - } -}; - -var me = moment.defineLocale('me', { - months: 'januar_februar_mart_april_maj_jun_jul_avgust_septembar_oktobar_novembar_decembar'.split('_'), - monthsShort: 'jan._feb._mar._apr._maj_jun_jul_avg._sep._okt._nov._dec.'.split('_'), - monthsParseExact : true, - 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('_'), - weekdaysParseExact : true, - longDateFormat: { - LT: 'H:mm', - LTS : 'H:mm:ss', - L: 'DD.MM.YYYY', - LL: 'D. MMMM YYYY', - LLL: 'D. MMMM YYYY H:mm', - LLLL: 'dddd, D. MMMM YYYY H:mm' - }, - calendar: { - sameDay: '[danas u] LT', - nextDay: '[sjutra 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če u] LT', - lastWeek : function () { - var lastWeekDays = [ - '[prošle] [nedjelje] [u] LT', - '[prošlog] [ponedjeljka] [u] LT', - '[prošlog] [utorka] [u] LT', - '[prošle] [srijede] [u] LT', - '[prošlog] [četvrtka] [u] LT', - '[prošlog] [petka] [u] LT', - '[prošle] [subote] [u] LT' - ]; - return lastWeekDays[this.day()]; - }, - sameElse : 'L' - }, - relativeTime : { - future : 'za %s', - past : 'prije %s', - s : 'nekoliko sekundi', - m : translator.translate, - mm : translator.translate, - h : translator.translate, - hh : translator.translate, - d : 'dan', - dd : translator.translate, - M : 'mjesec', - MM : translator.translate, - y : 'godinu', - yy : translator.translate - }, - dayOfMonthOrdinalParse: /\d{1,2}\./, - ordinal : '%d.', - week : { - dow : 1, // Monday is the first day of the week. - doy : 7 // The week that contains Jan 1st is the first week of the year. - } -}); - -return me; - -}))); diff --git a/admin/bower_components/moment/locale/mi.js b/admin/bower_components/moment/locale/mi.js deleted file mode 100644 index c5cce37..0000000 --- a/admin/bower_components/moment/locale/mi.js +++ /dev/null @@ -1,64 +0,0 @@ -//! moment.js locale configuration -//! locale : Maori [mi] -//! author : John Corrigan <robbiecloset@gmail.com> : https://github.com/johnideal - -;(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' - && typeof require === 'function' ? factory(require('../moment')) : - typeof define === 'function' && define.amd ? define(['../moment'], factory) : - factory(global.moment) -}(this, (function (moment) { 'use strict'; - - -var mi = moment.defineLocale('mi', { - months: 'Kohi-tāte_Hui-tanguru_Poutū-te-rangi_Paenga-whāwhā_Haratua_Pipiri_Hōngoingoi_Here-turi-kōkā_Mahuru_Whiringa-ā-nuku_Whiringa-ā-rangi_Hakihea'.split('_'), - monthsShort: 'Kohi_Hui_Pou_Pae_Hara_Pipi_Hōngoi_Here_Mahu_Whi-nu_Whi-ra_Haki'.split('_'), - monthsRegex: /(?:['a-z\u0101\u014D\u016B]+\-?){1,3}/i, - monthsStrictRegex: /(?:['a-z\u0101\u014D\u016B]+\-?){1,3}/i, - monthsShortRegex: /(?:['a-z\u0101\u014D\u016B]+\-?){1,3}/i, - monthsShortStrictRegex: /(?:['a-z\u0101\u014D\u016B]+\-?){1,2}/i, - weekdays: 'Rātapu_Mane_Tūrei_Wenerei_Tāite_Paraire_Hātarei'.split('_'), - weekdaysShort: 'Ta_Ma_Tū_We_Tāi_Pa_Hā'.split('_'), - weekdaysMin: 'Ta_Ma_Tū_We_Tāi_Pa_Hā'.split('_'), - longDateFormat: { - LT: 'HH:mm', - LTS: 'HH:mm:ss', - L: 'DD/MM/YYYY', - LL: 'D MMMM YYYY', - LLL: 'D MMMM YYYY [i] HH:mm', - LLLL: 'dddd, D MMMM YYYY [i] HH:mm' - }, - calendar: { - sameDay: '[i teie mahana, i] LT', - nextDay: '[apopo i] LT', - nextWeek: 'dddd [i] LT', - lastDay: '[inanahi i] LT', - lastWeek: 'dddd [whakamutunga i] LT', - sameElse: 'L' - }, - relativeTime: { - future: 'i roto i %s', - past: '%s i mua', - s: 'te hēkona ruarua', - m: 'he meneti', - mm: '%d meneti', - h: 'te haora', - hh: '%d haora', - d: 'he ra', - dd: '%d ra', - M: 'he marama', - MM: '%d marama', - y: 'he tau', - yy: '%d tau' - }, - dayOfMonthOrdinalParse: /\d{1,2}º/, - ordinal: '%dº', - week : { - dow : 1, // Monday is the first day of the week. - doy : 4 // The week that contains Jan 4th is the first week of the year. - } -}); - -return mi; - -}))); diff --git a/admin/bower_components/moment/locale/mk.js b/admin/bower_components/moment/locale/mk.js deleted file mode 100644 index cdfb1e1..0000000 --- a/admin/bower_components/moment/locale/mk.js +++ /dev/null @@ -1,90 +0,0 @@ -//! moment.js locale configuration -//! locale : Macedonian [mk] -//! author : Borislav Mickov : https://github.com/B0k0 - -;(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' - && typeof require === 'function' ? factory(require('../moment')) : - typeof define === 'function' && define.amd ? define(['../moment'], factory) : - factory(global.moment) -}(this, (function (moment) { 'use strict'; - - -var mk = moment.defineLocale('mk', { - months : 'јануари_февруари_март_април_мај_јуни_јули_август_септември_октомври_ноември_декември'.split('_'), - monthsShort : 'јан_фев_мар_апр_мај_јун_јул_авг_сеп_окт_ное_дек'.split('_'), - weekdays : 'недела_понеделник_вторник_среда_четврток_петок_сабота'.split('_'), - weekdaysShort : 'нед_пон_вто_сре_чет_пет_саб'.split('_'), - weekdaysMin : 'нe_пo_вт_ср_че_пе_сa'.split('_'), - longDateFormat : { - LT : 'H:mm', - LTS : 'H:mm:ss', - L : 'D.MM.YYYY', - LL : 'D MMMM YYYY', - LLL : 'D MMMM YYYY H:mm', - LLLL : 'dddd, D MMMM YYYY H:mm' - }, - 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 години' - }, - dayOfMonthOrdinalParse: /\d{1,2}-(ев|ен|ти|ви|ри|ми)/, - ordinal : function (number) { - var lastDigit = number % 10, - last2Digits = number % 100; - if (number === 0) { - return number + '-ев'; - } else if (last2Digits === 0) { - return number + '-ен'; - } else if (last2Digits > 10 && last2Digits < 20) { - return number + '-ти'; - } else if (lastDigit === 1) { - return number + '-ви'; - } else if (lastDigit === 2) { - return number + '-ри'; - } else if (lastDigit === 7 || lastDigit === 8) { - return number + '-ми'; - } else { - return number + '-ти'; - } - }, - week : { - dow : 1, // Monday is the first day of the week. - doy : 7 // The week that contains Jan 1st is the first week of the year. - } -}); - -return mk; - -}))); diff --git a/admin/bower_components/moment/locale/ml.js b/admin/bower_components/moment/locale/ml.js deleted file mode 100644 index e5f52e9..0000000 --- a/admin/bower_components/moment/locale/ml.js +++ /dev/null @@ -1,81 +0,0 @@ -//! moment.js locale configuration -//! locale : Malayalam [ml] -//! author : Floyd Pink : https://github.com/floydpink - -;(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' - && typeof require === 'function' ? factory(require('../moment')) : - typeof define === 'function' && define.amd ? define(['../moment'], factory) : - factory(global.moment) -}(this, (function (moment) { 'use strict'; - - -var ml = moment.defineLocale('ml', { - months : 'ജനുവരി_ഫെബ്രുവരി_മാർച്ച്_ഏപ്രിൽ_മേയ്_ജൂൺ_ജൂലൈ_ഓഗസ്റ്റ്_സെപ്റ്റംബർ_ഒക്ടോബർ_നവംബർ_ഡിസംബർ'.split('_'), - monthsShort : 'ജനു._ഫെബ്രു._മാർ._ഏപ്രി._മേയ്_ജൂൺ_ജൂലൈ._ഓഗ._സെപ്റ്റ._ഒക്ടോ._നവം._ഡിസം.'.split('_'), - monthsParseExact : true, - weekdays : 'ഞായറാഴ്ച_തിങ്കളാഴ്ച_ചൊവ്വാഴ്ച_ബുധനാഴ്ച_വ്യാഴാഴ്ച_വെള്ളിയാഴ്ച_ശനിയാഴ്ച'.split('_'), - weekdaysShort : 'ഞായർ_തിങ്കൾ_ചൊവ്വ_ബുധൻ_വ്യാഴം_വെള്ളി_ശനി'.split('_'), - weekdaysMin : 'ഞാ_തി_ചൊ_ബു_വ്യാ_വെ_ശ'.split('_'), - longDateFormat : { - LT : 'A h:mm -നു', - LTS : 'A h:mm:ss -നു', - L : 'DD/MM/YYYY', - LL : 'D MMMM YYYY', - LLL : 'D MMMM YYYY, A h:mm -നു', - LLLL : 'dddd, D MMMM YYYY, A h:mm -നു' - }, - 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 വർഷം' - }, - meridiemParse: /രാത്രി|രാവിലെ|ഉച്ച കഴിഞ്ഞ്|വൈകുന്നേരം|രാത്രി/i, - meridiemHour : function (hour, meridiem) { - if (hour === 12) { - hour = 0; - } - if ((meridiem === 'രാത്രി' && hour >= 4) || - meridiem === 'ഉച്ച കഴിഞ്ഞ്' || - meridiem === 'വൈകുന്നേരം') { - return hour + 12; - } else { - return hour; - } - }, - meridiem : function (hour, minute, isLower) { - if (hour < 4) { - return 'രാത്രി'; - } else if (hour < 12) { - return 'രാവിലെ'; - } else if (hour < 17) { - return 'ഉച്ച കഴിഞ്ഞ്'; - } else if (hour < 20) { - return 'വൈകുന്നേരം'; - } else { - return 'രാത്രി'; - } - } -}); - -return ml; - -}))); diff --git a/admin/bower_components/moment/locale/mr.js b/admin/bower_components/moment/locale/mr.js deleted file mode 100644 index abe1024..0000000 --- a/admin/bower_components/moment/locale/mr.js +++ /dev/null @@ -1,159 +0,0 @@ -//! moment.js locale configuration -//! locale : Marathi [mr] -//! author : Harshad Kale : https://github.com/kalehv -//! author : Vivek Athalye : https://github.com/vnathalye - -;(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' - && typeof require === 'function' ? factory(require('../moment')) : - typeof define === 'function' && define.amd ? define(['../moment'], factory) : - factory(global.moment) -}(this, (function (moment) { 'use strict'; - - -var symbolMap = { - '1': '१', - '2': '२', - '3': '३', - '4': '४', - '5': '५', - '6': '६', - '7': '७', - '8': '८', - '9': '९', - '0': '०' -}; -var numberMap = { - '१': '1', - '२': '2', - '३': '3', - '४': '4', - '५': '5', - '६': '6', - '७': '7', - '८': '8', - '९': '9', - '०': '0' -}; - -function relativeTimeMr(number, withoutSuffix, string, isFuture) -{ - var output = ''; - if (withoutSuffix) { - switch (string) { - case 's': output = 'काही सेकंद'; break; - case 'm': output = 'एक मिनिट'; break; - case 'mm': output = '%d मिनिटे'; break; - case 'h': output = 'एक तास'; break; - case 'hh': output = '%d तास'; break; - case 'd': output = 'एक दिवस'; break; - case 'dd': output = '%d दिवस'; break; - case 'M': output = 'एक महिना'; break; - case 'MM': output = '%d महिने'; break; - case 'y': output = 'एक वर्ष'; break; - case 'yy': output = '%d वर्षे'; break; - } - } - else { - switch (string) { - case 's': output = 'काही सेकंदां'; break; - case 'm': output = 'एका मिनिटा'; break; - case 'mm': output = '%d मिनिटां'; break; - case 'h': output = 'एका तासा'; break; - case 'hh': output = '%d तासां'; break; - case 'd': output = 'एका दिवसा'; break; - case 'dd': output = '%d दिवसां'; break; - case 'M': output = 'एका महिन्या'; break; - case 'MM': output = '%d महिन्यां'; break; - case 'y': output = 'एका वर्षा'; break; - case 'yy': output = '%d वर्षां'; break; - } - } - return output.replace(/%d/i, number); -} - -var mr = moment.defineLocale('mr', { - months : 'जानेवारी_फेब्रुवारी_मार्च_एप्रिल_मे_जून_जुलै_ऑगस्ट_सप्टेंबर_ऑक्टोबर_नोव्हेंबर_डिसेंबर'.split('_'), - monthsShort: 'जाने._फेब्रु._मार्च._एप्रि._मे._जून._जुलै._ऑग._सप्टें._ऑक्टो._नोव्हें._डिसें.'.split('_'), - monthsParseExact : true, - weekdays : 'रविवार_सोमवार_मंगळवार_बुधवार_गुरूवार_शुक्रवार_शनिवार'.split('_'), - weekdaysShort : 'रवि_सोम_मंगळ_बुध_गुरू_शुक्र_शनि'.split('_'), - weekdaysMin : 'र_सो_मं_बु_गु_शु_श'.split('_'), - longDateFormat : { - LT : 'A h:mm वाजता', - LTS : 'A h:mm:ss वाजता', - L : 'DD/MM/YYYY', - LL : 'D MMMM YYYY', - LLL : 'D MMMM YYYY, A h:mm वाजता', - LLLL : 'dddd, D MMMM YYYY, A h:mm वाजता' - }, - calendar : { - sameDay : '[आज] LT', - nextDay : '[उद्या] LT', - nextWeek : 'dddd, LT', - lastDay : '[काल] LT', - lastWeek: '[मागील] dddd, LT', - sameElse : 'L' - }, - relativeTime : { - future: '%sमध्ये', - past: '%sपूर्वी', - s: relativeTimeMr, - m: relativeTimeMr, - mm: relativeTimeMr, - h: relativeTimeMr, - hh: relativeTimeMr, - d: relativeTimeMr, - dd: relativeTimeMr, - M: relativeTimeMr, - MM: relativeTimeMr, - y: relativeTimeMr, - yy: relativeTimeMr - }, - preparse: function (string) { - return string.replace(/[१२३४५६७८९०]/g, function (match) { - return numberMap[match]; - }); - }, - postformat: function (string) { - return string.replace(/\d/g, function (match) { - return symbolMap[match]; - }); - }, - meridiemParse: /रात्री|सकाळी|दुपारी|सायंकाळी/, - meridiemHour : function (hour, meridiem) { - if (hour === 12) { - hour = 0; - } - if (meridiem === 'रात्री') { - return hour < 4 ? hour : hour + 12; - } else if (meridiem === 'सकाळी') { - return hour; - } else if (meridiem === 'दुपारी') { - return hour >= 10 ? hour : hour + 12; - } else if (meridiem === 'सायंकाळी') { - return hour + 12; - } - }, - meridiem: function (hour, minute, isLower) { - if (hour < 4) { - return 'रात्री'; - } else if (hour < 10) { - return 'सकाळी'; - } else if (hour < 17) { - return 'दुपारी'; - } else if (hour < 20) { - return 'सायंकाळी'; - } else { - return 'रात्री'; - } - }, - week : { - dow : 0, // Sunday is the first day of the week. - doy : 6 // The week that contains Jan 1st is the first week of the year. - } -}); - -return mr; - -}))); diff --git a/admin/bower_components/moment/locale/ms-my.js b/admin/bower_components/moment/locale/ms-my.js deleted file mode 100644 index 0cb403d..0000000 --- a/admin/bower_components/moment/locale/ms-my.js +++ /dev/null @@ -1,83 +0,0 @@ -//! moment.js locale configuration -//! locale : Malay [ms-my] -//! note : DEPRECATED, the correct one is [ms] -//! author : Weldan Jamili : https://github.com/weldan - -;(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' - && typeof require === 'function' ? factory(require('../moment')) : - typeof define === 'function' && define.amd ? define(['../moment'], factory) : - factory(global.moment) -}(this, (function (moment) { 'use strict'; - - -var msMy = moment.defineLocale('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', - LTS : 'HH.mm.ss', - L : 'DD/MM/YYYY', - LL : 'D MMMM YYYY', - LLL : 'D MMMM YYYY [pukul] HH.mm', - LLLL : 'dddd, D MMMM YYYY [pukul] HH.mm' - }, - meridiemParse: /pagi|tengahari|petang|malam/, - meridiemHour: function (hour, meridiem) { - if (hour === 12) { - hour = 0; - } - if (meridiem === 'pagi') { - return hour; - } else if (meridiem === 'tengahari') { - return hour >= 11 ? hour : hour + 12; - } else if (meridiem === 'petang' || meridiem === 'malam') { - return hour + 12; - } - }, - meridiem : function (hours, minutes, isLower) { - if (hours < 11) { - return 'pagi'; - } else if (hours < 15) { - return 'tengahari'; - } else if (hours < 19) { - return 'petang'; - } else { - return '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, // Monday is the first day of the week. - doy : 7 // The week that contains Jan 1st is the first week of the year. - } -}); - -return msMy; - -}))); diff --git a/admin/bower_components/moment/locale/ms.js b/admin/bower_components/moment/locale/ms.js deleted file mode 100644 index 4d4afff..0000000 --- a/admin/bower_components/moment/locale/ms.js +++ /dev/null @@ -1,82 +0,0 @@ -//! moment.js locale configuration -//! locale : Malay [ms] -//! author : Weldan Jamili : https://github.com/weldan - -;(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' - && typeof require === 'function' ? factory(require('../moment')) : - typeof define === 'function' && define.amd ? define(['../moment'], factory) : - factory(global.moment) -}(this, (function (moment) { 'use strict'; - - -var ms = moment.defineLocale('ms', { - 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', - LTS : 'HH.mm.ss', - L : 'DD/MM/YYYY', - LL : 'D MMMM YYYY', - LLL : 'D MMMM YYYY [pukul] HH.mm', - LLLL : 'dddd, D MMMM YYYY [pukul] HH.mm' - }, - meridiemParse: /pagi|tengahari|petang|malam/, - meridiemHour: function (hour, meridiem) { - if (hour === 12) { - hour = 0; - } - if (meridiem === 'pagi') { - return hour; - } else if (meridiem === 'tengahari') { - return hour >= 11 ? hour : hour + 12; - } else if (meridiem === 'petang' || meridiem === 'malam') { - return hour + 12; - } - }, - meridiem : function (hours, minutes, isLower) { - if (hours < 11) { - return 'pagi'; - } else if (hours < 15) { - return 'tengahari'; - } else if (hours < 19) { - return 'petang'; - } else { - return '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, // Monday is the first day of the week. - doy : 7 // The week that contains Jan 1st is the first week of the year. - } -}); - -return ms; - -}))); diff --git a/admin/bower_components/moment/locale/my.js b/admin/bower_components/moment/locale/my.js deleted file mode 100644 index 32d67e2..0000000 --- a/admin/bower_components/moment/locale/my.js +++ /dev/null @@ -1,96 +0,0 @@ -//! moment.js locale configuration -//! locale : Burmese [my] -//! author : Squar team, mysquar.com -//! author : David Rossellat : https://github.com/gholadr -//! author : Tin Aung Lin : https://github.com/thanyawzinmin - -;(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' - && typeof require === 'function' ? factory(require('../moment')) : - typeof define === 'function' && define.amd ? define(['../moment'], factory) : - factory(global.moment) -}(this, (function (moment) { 'use strict'; - - -var symbolMap = { - '1': '၁', - '2': '၂', - '3': '၃', - '4': '၄', - '5': '၅', - '6': '၆', - '7': '၇', - '8': '၈', - '9': '၉', - '0': '၀' -}; -var numberMap = { - '၁': '1', - '၂': '2', - '၃': '3', - '၄': '4', - '၅': '5', - '၆': '6', - '၇': '7', - '၈': '8', - '၉': '9', - '၀': '0' -}; - -var my = moment.defineLocale('my', { - months: 'ဇန်နဝါရီ_ဖေဖော်ဝါရီ_မတ်_ဧပြီ_မေ_ဇွန်_ဇူလိုင်_သြဂုတ်_စက်တင်ဘာ_အောက်တိုဘာ_နိုဝင်ဘာ_ဒီဇင်ဘာ'.split('_'), - monthsShort: 'ဇန်_ဖေ_မတ်_ပြီ_မေ_ဇွန်_လိုင်_သြ_စက်_အောက်_နို_ဒီ'.split('_'), - weekdays: 'တနင်္ဂနွေ_တနင်္လာ_အင်္ဂါ_ဗုဒ္ဓဟူး_ကြာသပတေး_သောကြာ_စနေ'.split('_'), - weekdaysShort: 'နွေ_လာ_ဂါ_ဟူး_ကြာ_သော_နေ'.split('_'), - weekdaysMin: 'နွေ_လာ_ဂါ_ဟူး_ကြာ_သော_နေ'.split('_'), - - longDateFormat: { - LT: 'HH:mm', - LTS: 'HH:mm:ss', - L: 'DD/MM/YYYY', - LL: 'D MMMM YYYY', - LLL: 'D MMMM YYYY HH:mm', - LLLL: 'dddd D MMMM YYYY HH:mm' - }, - 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 (string) { - return string.replace(/[၁၂၃၄၅၆၇၈၉၀]/g, function (match) { - return numberMap[match]; - }); - }, - postformat: function (string) { - return string.replace(/\d/g, function (match) { - return symbolMap[match]; - }); - }, - week: { - dow: 1, // Monday is the first day of the week. - doy: 4 // The week that contains Jan 1st is the first week of the year. - } -}); - -return my; - -}))); diff --git a/admin/bower_components/moment/locale/nb.js b/admin/bower_components/moment/locale/nb.js deleted file mode 100644 index 2cfe374..0000000 --- a/admin/bower_components/moment/locale/nb.js +++ /dev/null @@ -1,63 +0,0 @@ -//! moment.js locale configuration -//! locale : Norwegian Bokmål [nb] -//! authors : Espen Hovlandsdal : https://github.com/rexxars -//! Sigurd Gartmann : https://github.com/sigurdga - -;(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' - && typeof require === 'function' ? factory(require('../moment')) : - typeof define === 'function' && define.amd ? define(['../moment'], factory) : - factory(global.moment) -}(this, (function (moment) { 'use strict'; - - -var nb = moment.defineLocale('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('_'), - monthsParseExact : true, - 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('_'), - weekdaysParseExact : true, - longDateFormat : { - LT : 'HH:mm', - LTS : 'HH:mm:ss', - L : 'DD.MM.YYYY', - LL : 'D. MMMM YYYY', - LLL : 'D. MMMM YYYY [kl.] HH:mm', - LLLL : 'dddd D. MMMM YYYY [kl.] HH:mm' - }, - 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 : '%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' - }, - dayOfMonthOrdinalParse: /\d{1,2}\./, - ordinal : '%d.', - week : { - dow : 1, // Monday is the first day of the week. - doy : 4 // The week that contains Jan 4th is the first week of the year. - } -}); - -return nb; - -}))); diff --git a/admin/bower_components/moment/locale/ne.js b/admin/bower_components/moment/locale/ne.js deleted file mode 100644 index a35947a..0000000 --- a/admin/bower_components/moment/locale/ne.js +++ /dev/null @@ -1,123 +0,0 @@ -//! moment.js locale configuration -//! locale : Nepalese [ne] -//! author : suvash : https://github.com/suvash - -;(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' - && typeof require === 'function' ? factory(require('../moment')) : - typeof define === 'function' && define.amd ? define(['../moment'], factory) : - factory(global.moment) -}(this, (function (moment) { 'use strict'; - - -var symbolMap = { - '1': '१', - '2': '२', - '3': '३', - '4': '४', - '5': '५', - '6': '६', - '7': '७', - '8': '८', - '9': '९', - '0': '०' -}; -var numberMap = { - '१': '1', - '२': '2', - '३': '3', - '४': '4', - '५': '5', - '६': '6', - '७': '7', - '८': '8', - '९': '9', - '०': '0' -}; - -var ne = moment.defineLocale('ne', { - months : 'जनवरी_फेब्रुवरी_मार्च_अप्रिल_मई_जुन_जुलाई_अगष्ट_सेप्टेम्बर_अक्टोबर_नोभेम्बर_डिसेम्बर'.split('_'), - monthsShort : 'जन._फेब्रु._मार्च_अप्रि._मई_जुन_जुलाई._अग._सेप्ट._अक्टो._नोभे._डिसे.'.split('_'), - monthsParseExact : true, - weekdays : 'आइतबार_सोमबार_मङ्गलबार_बुधबार_बिहिबार_शुक्रबार_शनिबार'.split('_'), - weekdaysShort : 'आइत._सोम._मङ्गल._बुध._बिहि._शुक्र._शनि.'.split('_'), - weekdaysMin : 'आ._सो._मं._बु._बि._शु._श.'.split('_'), - weekdaysParseExact : true, - longDateFormat : { - LT : 'Aको h:mm बजे', - LTS : 'Aको h:mm:ss बजे', - L : 'DD/MM/YYYY', - LL : 'D MMMM YYYY', - LLL : 'D MMMM YYYY, Aको h:mm बजे', - LLLL : 'dddd, D MMMM YYYY, Aको h:mm बजे' - }, - preparse: function (string) { - return string.replace(/[१२३४५६७८९०]/g, function (match) { - return numberMap[match]; - }); - }, - postformat: function (string) { - return string.replace(/\d/g, function (match) { - return symbolMap[match]; - }); - }, - meridiemParse: /राति|बिहान|दिउँसो|साँझ/, - meridiemHour : function (hour, meridiem) { - if (hour === 12) { - hour = 0; - } - if (meridiem === 'राति') { - return hour < 4 ? hour : hour + 12; - } else if (meridiem === 'बिहान') { - return hour; - } else if (meridiem === 'दिउँसो') { - return hour >= 10 ? hour : hour + 12; - } else if (meridiem === 'साँझ') { - return hour + 12; - } - }, - meridiem : function (hour, minute, isLower) { - if (hour < 3) { - return 'राति'; - } else if (hour < 12) { - return 'बिहान'; - } else if (hour < 16) { - return 'दिउँसो'; - } else if (hour < 20) { - return 'साँझ'; - } else { - return 'राति'; - } - }, - 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 : 0, // Sunday is the first day of the week. - doy : 6 // The week that contains Jan 1st is the first week of the year. - } -}); - -return ne; - -}))); diff --git a/admin/bower_components/moment/locale/nl-be.js b/admin/bower_components/moment/locale/nl-be.js deleted file mode 100644 index 8588eab..0000000 --- a/admin/bower_components/moment/locale/nl-be.js +++ /dev/null @@ -1,88 +0,0 @@ -//! moment.js locale configuration -//! locale : Dutch (Belgium) [nl-be] -//! author : Joris Röling : https://github.com/jorisroling -//! author : Jacob Middag : https://github.com/middagj - -;(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' - && typeof require === 'function' ? factory(require('../moment')) : - typeof define === 'function' && define.amd ? define(['../moment'], factory) : - factory(global.moment) -}(this, (function (moment) { 'use strict'; - - -var monthsShortWithDots = 'jan._feb._mrt._apr._mei_jun._jul._aug._sep._okt._nov._dec.'.split('_'); -var monthsShortWithoutDots = 'jan_feb_mrt_apr_mei_jun_jul_aug_sep_okt_nov_dec'.split('_'); - -var monthsParse = [/^jan/i, /^feb/i, /^maart|mrt.?$/i, /^apr/i, /^mei$/i, /^jun[i.]?$/i, /^jul[i.]?$/i, /^aug/i, /^sep/i, /^okt/i, /^nov/i, /^dec/i]; -var monthsRegex = /^(januari|februari|maart|april|mei|april|ju[nl]i|augustus|september|oktober|november|december|jan\.?|feb\.?|mrt\.?|apr\.?|ju[nl]\.?|aug\.?|sep\.?|okt\.?|nov\.?|dec\.?)/i; - -var nlBe = moment.defineLocale('nl-be', { - months : 'januari_februari_maart_april_mei_juni_juli_augustus_september_oktober_november_december'.split('_'), - monthsShort : function (m, format) { - if (!m) { - return monthsShortWithDots; - } else if (/-MMM-/.test(format)) { - return monthsShortWithoutDots[m.month()]; - } else { - return monthsShortWithDots[m.month()]; - } - }, - - monthsRegex: monthsRegex, - monthsShortRegex: monthsRegex, - monthsStrictRegex: /^(januari|februari|maart|mei|ju[nl]i|april|augustus|september|oktober|november|december)/i, - monthsShortStrictRegex: /^(jan\.?|feb\.?|mrt\.?|apr\.?|mei|ju[nl]\.?|aug\.?|sep\.?|okt\.?|nov\.?|dec\.?)/i, - - monthsParse : monthsParse, - longMonthsParse : monthsParse, - shortMonthsParse : monthsParse, - - 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('_'), - weekdaysParseExact : true, - longDateFormat : { - LT : 'HH:mm', - LTS : 'HH:mm:ss', - L : 'DD/MM/YYYY', - LL : 'D MMMM YYYY', - LLL : 'D MMMM YYYY HH:mm', - LLLL : 'dddd D MMMM YYYY HH:mm' - }, - 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' - }, - dayOfMonthOrdinalParse: /\d{1,2}(ste|de)/, - ordinal : function (number) { - return number + ((number === 1 || number === 8 || number >= 20) ? 'ste' : 'de'); - }, - week : { - dow : 1, // Monday is the first day of the week. - doy : 4 // The week that contains Jan 4th is the first week of the year. - } -}); - -return nlBe; - -}))); diff --git a/admin/bower_components/moment/locale/nl.js b/admin/bower_components/moment/locale/nl.js deleted file mode 100644 index 2863b08..0000000 --- a/admin/bower_components/moment/locale/nl.js +++ /dev/null @@ -1,88 +0,0 @@ -//! moment.js locale configuration -//! locale : Dutch [nl] -//! author : Joris Röling : https://github.com/jorisroling -//! author : Jacob Middag : https://github.com/middagj - -;(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' - && typeof require === 'function' ? factory(require('../moment')) : - typeof define === 'function' && define.amd ? define(['../moment'], factory) : - factory(global.moment) -}(this, (function (moment) { 'use strict'; - - -var monthsShortWithDots = 'jan._feb._mrt._apr._mei_jun._jul._aug._sep._okt._nov._dec.'.split('_'); -var monthsShortWithoutDots = 'jan_feb_mrt_apr_mei_jun_jul_aug_sep_okt_nov_dec'.split('_'); - -var monthsParse = [/^jan/i, /^feb/i, /^maart|mrt.?$/i, /^apr/i, /^mei$/i, /^jun[i.]?$/i, /^jul[i.]?$/i, /^aug/i, /^sep/i, /^okt/i, /^nov/i, /^dec/i]; -var monthsRegex = /^(januari|februari|maart|april|mei|april|ju[nl]i|augustus|september|oktober|november|december|jan\.?|feb\.?|mrt\.?|apr\.?|ju[nl]\.?|aug\.?|sep\.?|okt\.?|nov\.?|dec\.?)/i; - -var nl = moment.defineLocale('nl', { - months : 'januari_februari_maart_april_mei_juni_juli_augustus_september_oktober_november_december'.split('_'), - monthsShort : function (m, format) { - if (!m) { - return monthsShortWithDots; - } else if (/-MMM-/.test(format)) { - return monthsShortWithoutDots[m.month()]; - } else { - return monthsShortWithDots[m.month()]; - } - }, - - monthsRegex: monthsRegex, - monthsShortRegex: monthsRegex, - monthsStrictRegex: /^(januari|februari|maart|mei|ju[nl]i|april|augustus|september|oktober|november|december)/i, - monthsShortStrictRegex: /^(jan\.?|feb\.?|mrt\.?|apr\.?|mei|ju[nl]\.?|aug\.?|sep\.?|okt\.?|nov\.?|dec\.?)/i, - - monthsParse : monthsParse, - longMonthsParse : monthsParse, - shortMonthsParse : monthsParse, - - 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('_'), - weekdaysParseExact : true, - longDateFormat : { - LT : 'HH:mm', - LTS : 'HH:mm:ss', - L : 'DD-MM-YYYY', - LL : 'D MMMM YYYY', - LLL : 'D MMMM YYYY HH:mm', - LLLL : 'dddd D MMMM YYYY HH:mm' - }, - 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' - }, - dayOfMonthOrdinalParse: /\d{1,2}(ste|de)/, - ordinal : function (number) { - return number + ((number === 1 || number === 8 || number >= 20) ? 'ste' : 'de'); - }, - week : { - dow : 1, // Monday is the first day of the week. - doy : 4 // The week that contains Jan 4th is the first week of the year. - } -}); - -return nl; - -}))); diff --git a/admin/bower_components/moment/locale/nn.js b/admin/bower_components/moment/locale/nn.js deleted file mode 100644 index 90dda8c..0000000 --- a/admin/bower_components/moment/locale/nn.js +++ /dev/null @@ -1,60 +0,0 @@ -//! moment.js locale configuration -//! locale : Nynorsk [nn] -//! author : https://github.com/mechuwind - -;(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' - && typeof require === 'function' ? factory(require('../moment')) : - typeof define === 'function' && define.amd ? define(['../moment'], factory) : - factory(global.moment) -}(this, (function (moment) { 'use strict'; - - -var nn = moment.defineLocale('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', - LTS : 'HH:mm:ss', - L : 'DD.MM.YYYY', - LL : 'D. MMMM YYYY', - LLL : 'D. MMMM YYYY [kl.] H:mm', - LLLL : 'dddd D. MMMM YYYY [kl.] HH:mm' - }, - calendar : { - sameDay: '[I dag klokka] LT', - nextDay: '[I morgon klokka] LT', - nextWeek: 'dddd [klokka] LT', - lastDay: '[I går klokka] LT', - lastWeek: '[Føregåande] dddd [klokka] LT', - sameElse: 'L' - }, - relativeTime : { - future : 'om %s', - past : '%s sidan', - s : 'nokre sekund', - m : 'eit minutt', - mm : '%d minutt', - h : 'ein time', - hh : '%d timar', - d : 'ein dag', - dd : '%d dagar', - M : 'ein månad', - MM : '%d månader', - y : 'eit år', - yy : '%d år' - }, - dayOfMonthOrdinalParse: /\d{1,2}\./, - ordinal : '%d.', - week : { - dow : 1, // Monday is the first day of the week. - doy : 4 // The week that contains Jan 4th is the first week of the year. - } -}); - -return nn; - -}))); diff --git a/admin/bower_components/moment/locale/pa-in.js b/admin/bower_components/moment/locale/pa-in.js deleted file mode 100644 index 6dec8d1..0000000 --- a/admin/bower_components/moment/locale/pa-in.js +++ /dev/null @@ -1,124 +0,0 @@ -//! moment.js locale configuration -//! locale : Punjabi (India) [pa-in] -//! author : Harpreet Singh : https://github.com/harpreetkhalsagtbit - -;(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' - && typeof require === 'function' ? factory(require('../moment')) : - typeof define === 'function' && define.amd ? define(['../moment'], factory) : - factory(global.moment) -}(this, (function (moment) { 'use strict'; - - -var symbolMap = { - '1': '੧', - '2': '੨', - '3': '੩', - '4': '੪', - '5': '੫', - '6': '੬', - '7': '੭', - '8': '੮', - '9': '੯', - '0': '੦' -}; -var numberMap = { - '੧': '1', - '੨': '2', - '੩': '3', - '੪': '4', - '੫': '5', - '੬': '6', - '੭': '7', - '੮': '8', - '੯': '9', - '੦': '0' -}; - -var paIn = moment.defineLocale('pa-in', { - // There are months name as per Nanakshahi Calender but they are not used as rigidly in modern Punjabi. - months : 'ਜਨਵਰੀ_ਫ਼ਰਵਰੀ_ਮਾਰਚ_ਅਪ੍ਰੈਲ_ਮਈ_ਜੂਨ_ਜੁਲਾਈ_ਅਗਸਤ_ਸਤੰਬਰ_ਅਕਤੂਬਰ_ਨਵੰਬਰ_ਦਸੰਬਰ'.split('_'), - monthsShort : 'ਜਨਵਰੀ_ਫ਼ਰਵਰੀ_ਮਾਰਚ_ਅਪ੍ਰੈਲ_ਮਈ_ਜੂਨ_ਜੁਲਾਈ_ਅਗਸਤ_ਸਤੰਬਰ_ਅਕਤੂਬਰ_ਨਵੰਬਰ_ਦਸੰਬਰ'.split('_'), - weekdays : 'ਐਤਵਾਰ_ਸੋਮਵਾਰ_ਮੰਗਲਵਾਰ_ਬੁਧਵਾਰ_ਵੀਰਵਾਰ_ਸ਼ੁੱਕਰਵਾਰ_ਸ਼ਨੀਚਰਵਾਰ'.split('_'), - weekdaysShort : 'ਐਤ_ਸੋਮ_ਮੰਗਲ_ਬੁਧ_ਵੀਰ_ਸ਼ੁਕਰ_ਸ਼ਨੀ'.split('_'), - weekdaysMin : 'ਐਤ_ਸੋਮ_ਮੰਗਲ_ਬੁਧ_ਵੀਰ_ਸ਼ੁਕਰ_ਸ਼ਨੀ'.split('_'), - longDateFormat : { - LT : 'A h:mm ਵਜੇ', - LTS : 'A h:mm:ss ਵਜੇ', - L : 'DD/MM/YYYY', - LL : 'D MMMM YYYY', - LLL : 'D MMMM YYYY, A h:mm ਵਜੇ', - LLLL : 'dddd, D MMMM YYYY, A h:mm ਵਜੇ' - }, - 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 (string) { - return string.replace(/[੧੨੩੪੫੬੭੮੯੦]/g, function (match) { - return numberMap[match]; - }); - }, - postformat: function (string) { - return string.replace(/\d/g, function (match) { - return symbolMap[match]; - }); - }, - // Punjabi notation for meridiems are quite fuzzy in practice. While there exists - // a rigid notion of a 'Pahar' it is not used as rigidly in modern Punjabi. - meridiemParse: /ਰਾਤ|ਸਵੇਰ|ਦੁਪਹਿਰ|ਸ਼ਾਮ/, - meridiemHour : function (hour, meridiem) { - if (hour === 12) { - hour = 0; - } - if (meridiem === 'ਰਾਤ') { - return hour < 4 ? hour : hour + 12; - } else if (meridiem === 'ਸਵੇਰ') { - return hour; - } else if (meridiem === 'ਦੁਪਹਿਰ') { - return hour >= 10 ? hour : hour + 12; - } else if (meridiem === 'ਸ਼ਾਮ') { - return hour + 12; - } - }, - meridiem : function (hour, minute, isLower) { - if (hour < 4) { - return 'ਰਾਤ'; - } else if (hour < 10) { - return 'ਸਵੇਰ'; - } else if (hour < 17) { - return 'ਦੁਪਹਿਰ'; - } else if (hour < 20) { - return 'ਸ਼ਾਮ'; - } else { - return 'ਰਾਤ'; - } - }, - week : { - dow : 0, // Sunday is the first day of the week. - doy : 6 // The week that contains Jan 1st is the first week of the year. - } -}); - -return paIn; - -}))); diff --git a/admin/bower_components/moment/locale/pl.js b/admin/bower_components/moment/locale/pl.js deleted file mode 100644 index af2c331..0000000 --- a/admin/bower_components/moment/locale/pl.js +++ /dev/null @@ -1,107 +0,0 @@ -//! moment.js locale configuration -//! locale : Polish [pl] -//! author : Rafal Hirsz : https://github.com/evoL - -;(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' - && typeof require === 'function' ? factory(require('../moment')) : - typeof define === 'function' && define.amd ? define(['../moment'], factory) : - factory(global.moment) -}(this, (function (moment) { 'use strict'; - - -var monthsNominative = 'styczeń_luty_marzec_kwiecień_maj_czerwiec_lipiec_sierpień_wrzesień_październik_listopad_grudzień'.split('_'); -var monthsSubjective = 'stycznia_lutego_marca_kwietnia_maja_czerwca_lipca_sierpnia_września_października_listopada_grudnia'.split('_'); -function plural(n) { - return (n % 10 < 5) && (n % 10 > 1) && ((~~(n / 10) % 10) !== 1); -} -function translate(number, withoutSuffix, key) { - var result = number + ' '; - switch (key) { - case 'm': - return withoutSuffix ? 'minuta' : 'minutę'; - case 'mm': - return result + (plural(number) ? 'minuty' : 'minut'); - case 'h': - return withoutSuffix ? 'godzina' : 'godzinę'; - case 'hh': - return result + (plural(number) ? 'godziny' : 'godzin'); - case 'MM': - return result + (plural(number) ? 'miesiące' : 'miesięcy'); - case 'yy': - return result + (plural(number) ? 'lata' : 'lat'); - } -} - -var pl = moment.defineLocale('pl', { - months : function (momentToFormat, format) { - if (!momentToFormat) { - return monthsNominative; - } else if (format === '') { - // Hack: if format empty we know this is used to generate - // RegExp by moment. Give then back both valid forms of months - // in RegExp ready format. - return '(' + monthsSubjective[momentToFormat.month()] + '|' + monthsNominative[momentToFormat.month()] + ')'; - } else if (/D MMMM/.test(format)) { - return monthsSubjective[momentToFormat.month()]; - } else { - return monthsNominative[momentToFormat.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 : 'ndz_pon_wt_śr_czw_pt_sob'.split('_'), - weekdaysMin : 'Nd_Pn_Wt_Śr_Cz_Pt_So'.split('_'), - longDateFormat : { - LT : 'HH:mm', - LTS : 'HH:mm:ss', - L : 'DD.MM.YYYY', - LL : 'D MMMM YYYY', - LLL : 'D MMMM YYYY HH:mm', - LLLL : 'dddd, D MMMM YYYY HH:mm' - }, - 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 : translate, - mm : translate, - h : translate, - hh : translate, - d : '1 dzień', - dd : '%d dni', - M : 'miesiąc', - MM : translate, - y : 'rok', - yy : translate - }, - dayOfMonthOrdinalParse: /\d{1,2}\./, - ordinal : '%d.', - week : { - dow : 1, // Monday is the first day of the week. - doy : 4 // The week that contains Jan 4th is the first week of the year. - } -}); - -return pl; - -}))); diff --git a/admin/bower_components/moment/locale/pt-br.js b/admin/bower_components/moment/locale/pt-br.js deleted file mode 100644 index dbcd0fd..0000000 --- a/admin/bower_components/moment/locale/pt-br.js +++ /dev/null @@ -1,61 +0,0 @@ -//! moment.js locale configuration -//! locale : Portuguese (Brazil) [pt-br] -//! author : Caio Ribeiro Pereira : https://github.com/caio-ribeiro-pereira - -;(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' - && typeof require === 'function' ? factory(require('../moment')) : - typeof define === 'function' && define.amd ? define(['../moment'], factory) : - factory(global.moment) -}(this, (function (moment) { 'use strict'; - - -var ptBr = moment.defineLocale('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 : 'Do_2ª_3ª_4ª_5ª_6ª_Sá'.split('_'), - weekdaysParseExact : true, - longDateFormat : { - LT : 'HH:mm', - LTS : 'HH:mm:ss', - L : 'DD/MM/YYYY', - LL : 'D [de] MMMM [de] YYYY', - LLL : 'D [de] MMMM [de] YYYY [às] HH:mm', - LLLL : 'dddd, D [de] MMMM [de] YYYY [às] HH:mm' - }, - calendar : { - sameDay: '[Hoje às] LT', - nextDay: '[Amanhã às] LT', - nextWeek: 'dddd [às] LT', - lastDay: '[Ontem às] LT', - lastWeek: function () { - return (this.day() === 0 || this.day() === 6) ? - '[Último] dddd [às] LT' : // Saturday + Sunday - '[Última] dddd [às] LT'; // Monday - Friday - }, - sameElse: 'L' - }, - relativeTime : { - future : 'em %s', - past : '%s atrás', - s : 'poucos 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' - }, - dayOfMonthOrdinalParse: /\d{1,2}º/, - ordinal : '%dº' -}); - -return ptBr; - -}))); diff --git a/admin/bower_components/moment/locale/pt.js b/admin/bower_components/moment/locale/pt.js deleted file mode 100644 index 2d7175c..0000000 --- a/admin/bower_components/moment/locale/pt.js +++ /dev/null @@ -1,65 +0,0 @@ -//! moment.js locale configuration -//! locale : Portuguese [pt] -//! author : Jefferson : https://github.com/jalex79 - -;(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' - && typeof require === 'function' ? factory(require('../moment')) : - typeof define === 'function' && define.amd ? define(['../moment'], factory) : - factory(global.moment) -}(this, (function (moment) { 'use strict'; - - -var pt = moment.defineLocale('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 : 'Do_2ª_3ª_4ª_5ª_6ª_Sá'.split('_'), - weekdaysParseExact : true, - longDateFormat : { - LT : 'HH:mm', - LTS : 'HH:mm:ss', - L : 'DD/MM/YYYY', - LL : 'D [de] MMMM [de] YYYY', - LLL : 'D [de] MMMM [de] YYYY HH:mm', - LLLL : 'dddd, D [de] MMMM [de] YYYY HH:mm' - }, - calendar : { - sameDay: '[Hoje às] LT', - nextDay: '[Amanhã às] LT', - nextWeek: 'dddd [às] LT', - lastDay: '[Ontem às] LT', - lastWeek: function () { - return (this.day() === 0 || this.day() === 6) ? - '[Último] dddd [às] LT' : // Saturday + Sunday - '[Última] dddd [às] LT'; // Monday - Friday - }, - sameElse: 'L' - }, - relativeTime : { - future : 'em %s', - past : 'há %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' - }, - dayOfMonthOrdinalParse: /\d{1,2}º/, - ordinal : '%dº', - week : { - dow : 1, // Monday is the first day of the week. - doy : 4 // The week that contains Jan 4th is the first week of the year. - } -}); - -return pt; - -}))); diff --git a/admin/bower_components/moment/locale/ro.js b/admin/bower_components/moment/locale/ro.js deleted file mode 100644 index 8a0cd75..0000000 --- a/admin/bower_components/moment/locale/ro.js +++ /dev/null @@ -1,75 +0,0 @@ -//! moment.js locale configuration -//! locale : Romanian [ro] -//! author : Vlad Gurdiga : https://github.com/gurdiga -//! author : Valentin Agachi : https://github.com/avaly - -;(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' - && typeof require === 'function' ? factory(require('../moment')) : - typeof define === 'function' && define.amd ? define(['../moment'], factory) : - factory(global.moment) -}(this, (function (moment) { 'use strict'; - - -function relativeTimeWithPlural(number, withoutSuffix, key) { - var format = { - 'mm': 'minute', - 'hh': 'ore', - 'dd': 'zile', - 'MM': 'luni', - 'yy': 'ani' - }, - separator = ' '; - if (number % 100 >= 20 || (number >= 100 && number % 100 === 0)) { - separator = ' de '; - } - return number + separator + format[key]; -} - -var ro = moment.defineLocale('ro', { - months : 'ianuarie_februarie_martie_aprilie_mai_iunie_iulie_august_septembrie_octombrie_noiembrie_decembrie'.split('_'), - monthsShort : 'ian._febr._mart._apr._mai_iun._iul._aug._sept._oct._nov._dec.'.split('_'), - monthsParseExact: true, - 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', - LTS : 'H:mm:ss', - 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 : relativeTimeWithPlural, - h : 'o oră', - hh : relativeTimeWithPlural, - d : 'o zi', - dd : relativeTimeWithPlural, - M : 'o lună', - MM : relativeTimeWithPlural, - y : 'un an', - yy : relativeTimeWithPlural - }, - week : { - dow : 1, // Monday is the first day of the week. - doy : 7 // The week that contains Jan 1st is the first week of the year. - } -}); - -return ro; - -}))); diff --git a/admin/bower_components/moment/locale/ru.js b/admin/bower_components/moment/locale/ru.js deleted file mode 100644 index b45731e..0000000 --- a/admin/bower_components/moment/locale/ru.js +++ /dev/null @@ -1,183 +0,0 @@ -//! moment.js locale configuration -//! locale : Russian [ru] -//! author : Viktorminator : https://github.com/Viktorminator -//! Author : Menelion Elensúle : https://github.com/Oire -//! author : Коренберг Марк : https://github.com/socketpair - -;(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' - && typeof require === 'function' ? factory(require('../moment')) : - typeof define === 'function' && define.amd ? define(['../moment'], factory) : - factory(global.moment) -}(this, (function (moment) { 'use strict'; - - -function plural(word, num) { - var forms = word.split('_'); - return num % 10 === 1 && num % 100 !== 11 ? forms[0] : (num % 10 >= 2 && num % 10 <= 4 && (num % 100 < 10 || num % 100 >= 20) ? forms[1] : forms[2]); -} -function relativeTimeWithPlural(number, withoutSuffix, key) { - var format = { - 'mm': withoutSuffix ? 'минута_минуты_минут' : 'минуту_минуты_минут', - 'hh': 'час_часа_часов', - 'dd': 'день_дня_дней', - 'MM': 'месяц_месяца_месяцев', - 'yy': 'год_года_лет' - }; - if (key === 'm') { - return withoutSuffix ? 'минута' : 'минуту'; - } - else { - return number + ' ' + plural(format[key], +number); - } -} -var monthsParse = [/^янв/i, /^фев/i, /^мар/i, /^апр/i, /^ма[йя]/i, /^июн/i, /^июл/i, /^авг/i, /^сен/i, /^окт/i, /^ноя/i, /^дек/i]; - -// http://new.gramota.ru/spravka/rules/139-prop : § 103 -// Сокращения месяцев: http://new.gramota.ru/spravka/buro/search-answer?s=242637 -// CLDR data: http://www.unicode.org/cldr/charts/28/summary/ru.html#1753 -var ru = moment.defineLocale('ru', { - months : { - format: 'января_февраля_марта_апреля_мая_июня_июля_августа_сентября_октября_ноября_декабря'.split('_'), - standalone: 'январь_февраль_март_апрель_май_июнь_июль_август_сентябрь_октябрь_ноябрь_декабрь'.split('_') - }, - monthsShort : { - // по CLDR именно "июл." и "июн.", но какой смысл менять букву на точку ? - format: 'янв._февр._мар._апр._мая_июня_июля_авг._сент._окт._нояб._дек.'.split('_'), - standalone: 'янв._февр._март_апр._май_июнь_июль_авг._сент._окт._нояб._дек.'.split('_') - }, - weekdays : { - standalone: 'воскресенье_понедельник_вторник_среда_четверг_пятница_суббота'.split('_'), - format: 'воскресенье_понедельник_вторник_среду_четверг_пятницу_субботу'.split('_'), - isFormat: /\[ ?[Вв] ?(?:прошлую|следующую|эту)? ?\] ?dddd/ - }, - weekdaysShort : 'вс_пн_вт_ср_чт_пт_сб'.split('_'), - weekdaysMin : 'вс_пн_вт_ср_чт_пт_сб'.split('_'), - monthsParse : monthsParse, - longMonthsParse : monthsParse, - shortMonthsParse : monthsParse, - - // полные названия с падежами, по три буквы, для некоторых, по 4 буквы, сокращения с точкой и без точки - monthsRegex: /^(январ[ья]|янв\.?|феврал[ья]|февр?\.?|марта?|мар\.?|апрел[ья]|апр\.?|ма[йя]|июн[ья]|июн\.?|июл[ья]|июл\.?|августа?|авг\.?|сентябр[ья]|сент?\.?|октябр[ья]|окт\.?|ноябр[ья]|нояб?\.?|декабр[ья]|дек\.?)/i, - - // копия предыдущего - monthsShortRegex: /^(январ[ья]|янв\.?|феврал[ья]|февр?\.?|марта?|мар\.?|апрел[ья]|апр\.?|ма[йя]|июн[ья]|июн\.?|июл[ья]|июл\.?|августа?|авг\.?|сентябр[ья]|сент?\.?|октябр[ья]|окт\.?|ноябр[ья]|нояб?\.?|декабр[ья]|дек\.?)/i, - - // полные названия с падежами - monthsStrictRegex: /^(январ[яь]|феврал[яь]|марта?|апрел[яь]|ма[яй]|июн[яь]|июл[яь]|августа?|сентябр[яь]|октябр[яь]|ноябр[яь]|декабр[яь])/i, - - // Выражение, которое соотвествует только сокращённым формам - monthsShortStrictRegex: /^(янв\.|февр?\.|мар[т.]|апр\.|ма[яй]|июн[ья.]|июл[ья.]|авг\.|сент?\.|окт\.|нояб?\.|дек\.)/i, - longDateFormat : { - LT : 'HH:mm', - LTS : 'HH:mm:ss', - L : 'DD.MM.YYYY', - LL : 'D MMMM YYYY г.', - LLL : 'D MMMM YYYY г., HH:mm', - LLLL : 'dddd, D MMMM YYYY г., HH:mm' - }, - calendar : { - sameDay: '[Сегодня в] LT', - nextDay: '[Завтра в] LT', - lastDay: '[Вчера в] LT', - nextWeek: function (now) { - if (now.week() !== this.week()) { - 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'; - } - } else { - if (this.day() === 2) { - return '[Во] dddd [в] LT'; - } else { - return '[В] dddd [в] LT'; - } - } - }, - lastWeek: function (now) { - if (now.week() !== this.week()) { - 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'; - } - } else { - if (this.day() === 2) { - return '[Во] dddd [в] LT'; - } else { - return '[В] dddd [в] LT'; - } - } - }, - sameElse: 'L' - }, - relativeTime : { - future : 'через %s', - past : '%s назад', - s : 'несколько секунд', - m : relativeTimeWithPlural, - mm : relativeTimeWithPlural, - h : 'час', - hh : relativeTimeWithPlural, - d : 'день', - dd : relativeTimeWithPlural, - M : 'месяц', - MM : relativeTimeWithPlural, - y : 'год', - yy : relativeTimeWithPlural - }, - meridiemParse: /ночи|утра|дня|вечера/i, - isPM : function (input) { - return /^(дня|вечера)$/.test(input); - }, - meridiem : function (hour, minute, isLower) { - if (hour < 4) { - return 'ночи'; - } else if (hour < 12) { - return 'утра'; - } else if (hour < 17) { - return 'дня'; - } else { - return 'вечера'; - } - }, - dayOfMonthOrdinalParse: /\d{1,2}-(й|го|я)/, - ordinal: function (number, period) { - switch (period) { - case 'M': - case 'd': - case 'DDD': - return number + '-й'; - case 'D': - return number + '-го'; - case 'w': - case 'W': - return number + '-я'; - default: - return number; - } - }, - week : { - dow : 1, // Monday is the first day of the week. - doy : 7 // The week that contains Jan 1st is the first week of the year. - } -}); - -return ru; - -}))); diff --git a/admin/bower_components/moment/locale/sd.js b/admin/bower_components/moment/locale/sd.js deleted file mode 100644 index 0fcf7e1..0000000 --- a/admin/bower_components/moment/locale/sd.js +++ /dev/null @@ -1,98 +0,0 @@ -//! moment.js locale configuration -//! locale : Sindhi [sd] -//! author : Narain Sagar : https://github.com/narainsagar - -;(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' - && typeof require === 'function' ? factory(require('../moment')) : - typeof define === 'function' && define.amd ? define(['../moment'], factory) : - factory(global.moment) -}(this, (function (moment) { 'use strict'; - - -var months = [ - 'جنوري', - 'فيبروري', - 'مارچ', - 'اپريل', - 'مئي', - 'جون', - 'جولاءِ', - 'آگسٽ', - 'سيپٽمبر', - 'آڪٽوبر', - 'نومبر', - 'ڊسمبر' -]; -var days = [ - 'آچر', - 'سومر', - 'اڱارو', - 'اربع', - 'خميس', - 'جمع', - 'ڇنڇر' -]; - -var sd = moment.defineLocale('sd', { - months : months, - monthsShort : months, - weekdays : days, - weekdaysShort : days, - weekdaysMin : days, - longDateFormat : { - LT : 'HH:mm', - LTS : 'HH:mm:ss', - L : 'DD/MM/YYYY', - LL : 'D MMMM YYYY', - LLL : 'D MMMM YYYY HH:mm', - LLLL : 'dddd، D MMMM YYYY HH:mm' - }, - meridiemParse: /صبح|شام/, - isPM : function (input) { - return 'شام' === input; - }, - meridiem : function (hour, minute, isLower) { - if (hour < 12) { - return 'صبح'; - } - return 'شام'; - }, - 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 (string) { - return string.replace(/،/g, ','); - }, - postformat: function (string) { - return string.replace(/,/g, '،'); - }, - week : { - dow : 1, // Monday is the first day of the week. - doy : 4 // The week that contains Jan 4th is the first week of the year. - } -}); - -return sd; - -}))); diff --git a/admin/bower_components/moment/locale/se.js b/admin/bower_components/moment/locale/se.js deleted file mode 100644 index d44d0df..0000000 --- a/admin/bower_components/moment/locale/se.js +++ /dev/null @@ -1,61 +0,0 @@ -//! moment.js locale configuration -//! locale : Northern Sami [se] -//! authors : Bård Rolstad Henriksen : https://github.com/karamell - -;(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' - && typeof require === 'function' ? factory(require('../moment')) : - typeof define === 'function' && define.amd ? define(['../moment'], factory) : - factory(global.moment) -}(this, (function (moment) { 'use strict'; - - - -var se = moment.defineLocale('se', { - months : 'ođđajagemánnu_guovvamánnu_njukčamánnu_cuoŋománnu_miessemánnu_geassemánnu_suoidnemánnu_borgemánnu_čakčamánnu_golggotmánnu_skábmamánnu_juovlamánnu'.split('_'), - monthsShort : 'ođđj_guov_njuk_cuo_mies_geas_suoi_borg_čakč_golg_skáb_juov'.split('_'), - weekdays : 'sotnabeaivi_vuossárga_maŋŋebárga_gaskavahkku_duorastat_bearjadat_lávvardat'.split('_'), - weekdaysShort : 'sotn_vuos_maŋ_gask_duor_bear_láv'.split('_'), - weekdaysMin : 's_v_m_g_d_b_L'.split('_'), - longDateFormat : { - LT : 'HH:mm', - LTS : 'HH:mm:ss', - L : 'DD.MM.YYYY', - LL : 'MMMM D. [b.] YYYY', - LLL : 'MMMM D. [b.] YYYY [ti.] HH:mm', - LLLL : 'dddd, MMMM D. [b.] YYYY [ti.] HH:mm' - }, - calendar : { - sameDay: '[otne ti] LT', - nextDay: '[ihttin ti] LT', - nextWeek: 'dddd [ti] LT', - lastDay: '[ikte ti] LT', - lastWeek: '[ovddit] dddd [ti] LT', - sameElse: 'L' - }, - relativeTime : { - future : '%s geažes', - past : 'maŋit %s', - s : 'moadde sekunddat', - m : 'okta minuhta', - mm : '%d minuhtat', - h : 'okta diimmu', - hh : '%d diimmut', - d : 'okta beaivi', - dd : '%d beaivvit', - M : 'okta mánnu', - MM : '%d mánut', - y : 'okta jahki', - yy : '%d jagit' - }, - dayOfMonthOrdinalParse: /\d{1,2}\./, - ordinal : '%d.', - week : { - dow : 1, // Monday is the first day of the week. - doy : 4 // The week that contains Jan 4th is the first week of the year. - } -}); - -return se; - -}))); diff --git a/admin/bower_components/moment/locale/si.js b/admin/bower_components/moment/locale/si.js deleted file mode 100644 index f5c124e..0000000 --- a/admin/bower_components/moment/locale/si.js +++ /dev/null @@ -1,71 +0,0 @@ -//! moment.js locale configuration -//! locale : Sinhalese [si] -//! author : Sampath Sitinamaluwa : https://github.com/sampathsris - -;(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' - && typeof require === 'function' ? factory(require('../moment')) : - typeof define === 'function' && define.amd ? define(['../moment'], factory) : - factory(global.moment) -}(this, (function (moment) { 'use strict'; - - -/*jshint -W100*/ -var si = moment.defineLocale('si', { - months : 'ජනවාරි_පෙබරවාරි_මාර්තු_අප්‍රේල්_මැයි_ජූනි_ජූලි_අගෝස්තු_සැප්තැම්බර්_ඔක්තෝබර්_නොවැම්බර්_දෙසැම්බර්'.split('_'), - monthsShort : 'ජන_පෙබ_මාර්_අප්_මැයි_ජූනි_ජූලි_අගෝ_සැප්_ඔක්_නොවැ_දෙසැ'.split('_'), - weekdays : 'ඉරිදා_සඳුදා_අඟහරුවාදා_බදාදා_බ්‍රහස්පතින්දා_සිකුරාදා_සෙනසුරාදා'.split('_'), - weekdaysShort : 'ඉරි_සඳු_අඟ_බදා_බ්‍රහ_සිකු_සෙන'.split('_'), - weekdaysMin : 'ඉ_ස_අ_බ_බ්‍ර_සි_සෙ'.split('_'), - weekdaysParseExact : true, - longDateFormat : { - LT : 'a h:mm', - LTS : 'a h:mm:ss', - L : 'YYYY/MM/DD', - LL : 'YYYY MMMM D', - LLL : 'YYYY MMMM D, a h:mm', - LLLL : 'YYYY MMMM D [වැනි] dddd, a h:mm:ss' - }, - 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' - }, - dayOfMonthOrdinalParse: /\d{1,2} වැනි/, - ordinal : function (number) { - return number + ' වැනි'; - }, - meridiemParse : /පෙර වරු|පස් වරු|පෙ.ව|ප.ව./, - isPM : function (input) { - return input === 'ප.ව.' || input === 'පස් වරු'; - }, - meridiem : function (hours, minutes, isLower) { - if (hours > 11) { - return isLower ? 'ප.ව.' : 'පස් වරු'; - } else { - return isLower ? 'පෙ.ව.' : 'පෙර වරු'; - } - } -}); - -return si; - -}))); diff --git a/admin/bower_components/moment/locale/sk.js b/admin/bower_components/moment/locale/sk.js deleted file mode 100644 index aa61da6..0000000 --- a/admin/bower_components/moment/locale/sk.js +++ /dev/null @@ -1,150 +0,0 @@ -//! moment.js locale configuration -//! locale : Slovak [sk] -//! author : Martin Minka : https://github.com/k2s -//! based on work of petrbela : https://github.com/petrbela - -;(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' - && typeof require === 'function' ? factory(require('../moment')) : - typeof define === 'function' && define.amd ? define(['../moment'], factory) : - factory(global.moment) -}(this, (function (moment) { 'use strict'; - - -var months = 'január_február_marec_apríl_máj_jún_júl_august_september_október_november_december'.split('_'); -var monthsShort = 'jan_feb_mar_apr_máj_jún_júl_aug_sep_okt_nov_dec'.split('_'); -function plural(n) { - return (n > 1) && (n < 5); -} -function translate(number, withoutSuffix, key, isFuture) { - var result = number + ' '; - switch (key) { - case 's': // a few seconds / in a few seconds / a few seconds ago - return (withoutSuffix || isFuture) ? 'pár sekúnd' : 'pár sekundami'; - case 'm': // a minute / in a minute / a minute ago - return withoutSuffix ? 'minúta' : (isFuture ? 'minútu' : 'minútou'); - case 'mm': // 9 minutes / in 9 minutes / 9 minutes ago - if (withoutSuffix || isFuture) { - return result + (plural(number) ? 'minúty' : 'minút'); - } else { - return result + 'minútami'; - } - break; - case 'h': // an hour / in an hour / an hour ago - return withoutSuffix ? 'hodina' : (isFuture ? 'hodinu' : 'hodinou'); - case 'hh': // 9 hours / in 9 hours / 9 hours ago - if (withoutSuffix || isFuture) { - return result + (plural(number) ? 'hodiny' : 'hodín'); - } else { - return result + 'hodinami'; - } - break; - case 'd': // a day / in a day / a day ago - return (withoutSuffix || isFuture) ? 'deň' : 'dňom'; - case 'dd': // 9 days / in 9 days / 9 days ago - if (withoutSuffix || isFuture) { - return result + (plural(number) ? 'dni' : 'dní'); - } else { - return result + 'dňami'; - } - break; - case 'M': // a month / in a month / a month ago - return (withoutSuffix || isFuture) ? 'mesiac' : 'mesiacom'; - case 'MM': // 9 months / in 9 months / 9 months ago - if (withoutSuffix || isFuture) { - return result + (plural(number) ? 'mesiace' : 'mesiacov'); - } else { - return result + 'mesiacmi'; - } - break; - case 'y': // a year / in a year / a year ago - return (withoutSuffix || isFuture) ? 'rok' : 'rokom'; - case 'yy': // 9 years / in 9 years / 9 years ago - if (withoutSuffix || isFuture) { - return result + (plural(number) ? 'roky' : 'rokov'); - } else { - return result + 'rokmi'; - } - break; - } -} - -var sk = moment.defineLocale('sk', { - months : months, - monthsShort : monthsShort, - 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', - LTS : 'H:mm:ss', - L : 'DD.MM.YYYY', - LL : 'D. MMMM YYYY', - LLL : 'D. MMMM YYYY H:mm', - LLLL : 'dddd D. MMMM YYYY H:mm' - }, - 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 : translate, - m : translate, - mm : translate, - h : translate, - hh : translate, - d : translate, - dd : translate, - M : translate, - MM : translate, - y : translate, - yy : translate - }, - dayOfMonthOrdinalParse: /\d{1,2}\./, - ordinal : '%d.', - week : { - dow : 1, // Monday is the first day of the week. - doy : 4 // The week that contains Jan 4th is the first week of the year. - } -}); - -return sk; - -}))); diff --git a/admin/bower_components/moment/locale/sl.js b/admin/bower_components/moment/locale/sl.js deleted file mode 100644 index e74b3a1..0000000 --- a/admin/bower_components/moment/locale/sl.js +++ /dev/null @@ -1,162 +0,0 @@ -//! moment.js locale configuration -//! locale : Slovenian [sl] -//! author : Robert Sedovšek : https://github.com/sedovsek - -;(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' - && typeof require === 'function' ? factory(require('../moment')) : - typeof define === 'function' && define.amd ? define(['../moment'], factory) : - factory(global.moment) -}(this, (function (moment) { 'use strict'; - - -function processRelativeTime(number, withoutSuffix, key, isFuture) { - var result = number + ' '; - switch (key) { - case 's': - return withoutSuffix || isFuture ? 'nekaj sekund' : 'nekaj sekundami'; - case 'm': - return withoutSuffix ? 'ena minuta' : 'eno minuto'; - case 'mm': - if (number === 1) { - result += withoutSuffix ? 'minuta' : 'minuto'; - } else if (number === 2) { - result += withoutSuffix || isFuture ? 'minuti' : 'minutama'; - } else if (number < 5) { - result += withoutSuffix || isFuture ? 'minute' : 'minutami'; - } else { - result += withoutSuffix || isFuture ? 'minut' : 'minutami'; - } - return result; - case 'h': - return withoutSuffix ? 'ena ura' : 'eno uro'; - case 'hh': - if (number === 1) { - result += withoutSuffix ? 'ura' : 'uro'; - } else if (number === 2) { - result += withoutSuffix || isFuture ? 'uri' : 'urama'; - } else if (number < 5) { - result += withoutSuffix || isFuture ? 'ure' : 'urami'; - } else { - result += withoutSuffix || isFuture ? 'ur' : 'urami'; - } - return result; - case 'd': - return withoutSuffix || isFuture ? 'en dan' : 'enim dnem'; - case 'dd': - if (number === 1) { - result += withoutSuffix || isFuture ? 'dan' : 'dnem'; - } else if (number === 2) { - result += withoutSuffix || isFuture ? 'dni' : 'dnevoma'; - } else { - result += withoutSuffix || isFuture ? 'dni' : 'dnevi'; - } - return result; - case 'M': - return withoutSuffix || isFuture ? 'en mesec' : 'enim mesecem'; - case 'MM': - if (number === 1) { - result += withoutSuffix || isFuture ? 'mesec' : 'mesecem'; - } else if (number === 2) { - result += withoutSuffix || isFuture ? 'meseca' : 'mesecema'; - } else if (number < 5) { - result += withoutSuffix || isFuture ? 'mesece' : 'meseci'; - } else { - result += withoutSuffix || isFuture ? 'mesecev' : 'meseci'; - } - return result; - case 'y': - return withoutSuffix || isFuture ? 'eno leto' : 'enim letom'; - case 'yy': - if (number === 1) { - result += withoutSuffix || isFuture ? 'leto' : 'letom'; - } else if (number === 2) { - result += withoutSuffix || isFuture ? 'leti' : 'letoma'; - } else if (number < 5) { - result += withoutSuffix || isFuture ? 'leta' : 'leti'; - } else { - result += withoutSuffix || isFuture ? 'let' : 'leti'; - } - return result; - } -} - -var sl = moment.defineLocale('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('_'), - monthsParseExact: true, - 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('_'), - weekdaysParseExact : true, - longDateFormat : { - LT : 'H:mm', - LTS : 'H:mm:ss', - L : 'DD.MM.YYYY', - LL : 'D. MMMM YYYY', - LLL : 'D. MMMM YYYY H:mm', - LLLL : 'dddd, D. MMMM YYYY H:mm' - }, - 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: - return '[prejšnjo] [nedeljo] [ob] LT'; - case 3: - return '[prejšnjo] [sredo] [ob] LT'; - case 6: - return '[prejšnjo] [soboto] [ob] LT'; - case 1: - case 2: - case 4: - case 5: - return '[prejšnji] dddd [ob] LT'; - } - }, - sameElse : 'L' - }, - relativeTime : { - future : 'čez %s', - past : 'pred %s', - s : processRelativeTime, - m : processRelativeTime, - mm : processRelativeTime, - h : processRelativeTime, - hh : processRelativeTime, - d : processRelativeTime, - dd : processRelativeTime, - M : processRelativeTime, - MM : processRelativeTime, - y : processRelativeTime, - yy : processRelativeTime - }, - dayOfMonthOrdinalParse: /\d{1,2}\./, - ordinal : '%d.', - week : { - dow : 1, // Monday is the first day of the week. - doy : 7 // The week that contains Jan 1st is the first week of the year. - } -}); - -return sl; - -}))); diff --git a/admin/bower_components/moment/locale/sq.js b/admin/bower_components/moment/locale/sq.js deleted file mode 100644 index b92dc17..0000000 --- a/admin/bower_components/moment/locale/sq.js +++ /dev/null @@ -1,70 +0,0 @@ -//! moment.js locale configuration -//! locale : Albanian [sq] -//! author : Flakërim Ismani : https://github.com/flakerimi -//! author : Menelion Elensúle : https://github.com/Oire -//! author : Oerd Cukalla : https://github.com/oerd - -;(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' - && typeof require === 'function' ? factory(require('../moment')) : - typeof define === 'function' && define.amd ? define(['../moment'], factory) : - factory(global.moment) -}(this, (function (moment) { 'use strict'; - - -var sq = moment.defineLocale('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 Martë_E Mërkurë_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('_'), - weekdaysParseExact : true, - meridiemParse: /PD|MD/, - isPM: function (input) { - return input.charAt(0) === 'M'; - }, - meridiem : function (hours, minutes, isLower) { - return hours < 12 ? 'PD' : 'MD'; - }, - longDateFormat : { - LT : 'HH:mm', - LTS : 'HH:mm:ss', - L : 'DD/MM/YYYY', - LL : 'D MMMM YYYY', - LLL : 'D MMMM YYYY HH:mm', - LLLL : 'dddd, D MMMM YYYY HH:mm' - }, - calendar : { - sameDay : '[Sot në] LT', - nextDay : '[Nesër në] LT', - nextWeek : 'dddd [në] LT', - lastDay : '[Dje në] LT', - lastWeek : 'dddd [e kaluar në] LT', - sameElse : 'L' - }, - relativeTime : { - future : 'në %s', - past : '%s më parë', - s : 'disa sekonda', - m : 'një minutë', - mm : '%d minuta', - h : 'një orë', - hh : '%d orë', - d : 'një ditë', - dd : '%d ditë', - M : 'një muaj', - MM : '%d muaj', - y : 'një vit', - yy : '%d vite' - }, - dayOfMonthOrdinalParse: /\d{1,2}\./, - ordinal : '%d.', - week : { - dow : 1, // Monday is the first day of the week. - doy : 4 // The week that contains Jan 4th is the first week of the year. - } -}); - -return sq; - -}))); diff --git a/admin/bower_components/moment/locale/sr-cyrl.js b/admin/bower_components/moment/locale/sr-cyrl.js deleted file mode 100644 index 3007819..0000000 --- a/admin/bower_components/moment/locale/sr-cyrl.js +++ /dev/null @@ -1,110 +0,0 @@ -//! moment.js locale configuration -//! locale : Serbian Cyrillic [sr-cyrl] -//! author : Milan Janačković<milanjanackovic@gmail.com> : https://github.com/milan-j - -;(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' - && typeof require === 'function' ? factory(require('../moment')) : - typeof define === 'function' && define.amd ? define(['../moment'], factory) : - factory(global.moment) -}(this, (function (moment) { 'use strict'; - - -var translator = { - words: { //Different grammatical cases - m: ['један минут', 'једне минуте'], - mm: ['минут', 'минуте', 'минута'], - h: ['један сат', 'једног сата'], - hh: ['сат', 'сата', 'сати'], - dd: ['дан', 'дана', 'дана'], - MM: ['месец', 'месеца', 'месеци'], - yy: ['година', 'године', 'година'] - }, - correctGrammaticalCase: function (number, wordKey) { - return number === 1 ? wordKey[0] : (number >= 2 && number <= 4 ? wordKey[1] : wordKey[2]); - }, - translate: function (number, withoutSuffix, key) { - var wordKey = translator.words[key]; - if (key.length === 1) { - return withoutSuffix ? wordKey[0] : wordKey[1]; - } else { - return number + ' ' + translator.correctGrammaticalCase(number, wordKey); - } - } -}; - -var srCyrl = moment.defineLocale('sr-cyrl', { - months: 'јануар_фебруар_март_април_мај_јун_јул_август_септембар_октобар_новембар_децембар'.split('_'), - monthsShort: 'јан._феб._мар._апр._мај_јун_јул_авг._сеп._окт._нов._дец.'.split('_'), - monthsParseExact: true, - weekdays: 'недеља_понедељак_уторак_среда_четвртак_петак_субота'.split('_'), - weekdaysShort: 'нед._пон._уто._сре._чет._пет._суб.'.split('_'), - weekdaysMin: 'не_по_ут_ср_че_пе_су'.split('_'), - weekdaysParseExact : true, - longDateFormat: { - LT: 'H:mm', - LTS : 'H:mm:ss', - L: 'DD.MM.YYYY', - LL: 'D. MMMM YYYY', - LLL: 'D. MMMM YYYY H:mm', - LLLL: 'dddd, D. MMMM YYYY H:mm' - }, - calendar: { - sameDay: '[данас у] LT', - nextDay: '[сутра у] LT', - nextWeek: function () { - switch (this.day()) { - case 0: - return '[у] [недељу] [у] LT'; - case 3: - return '[у] [среду] [у] LT'; - case 6: - return '[у] [суботу] [у] LT'; - case 1: - case 2: - case 4: - case 5: - return '[у] dddd [у] LT'; - } - }, - lastDay : '[јуче у] LT', - lastWeek : function () { - var lastWeekDays = [ - '[прошле] [недеље] [у] LT', - '[прошлог] [понедељка] [у] LT', - '[прошлог] [уторка] [у] LT', - '[прошле] [среде] [у] LT', - '[прошлог] [четвртка] [у] LT', - '[прошлог] [петка] [у] LT', - '[прошле] [суботе] [у] LT' - ]; - return lastWeekDays[this.day()]; - }, - sameElse : 'L' - }, - relativeTime : { - future : 'за %s', - past : 'пре %s', - s : 'неколико секунди', - m : translator.translate, - mm : translator.translate, - h : translator.translate, - hh : translator.translate, - d : 'дан', - dd : translator.translate, - M : 'месец', - MM : translator.translate, - y : 'годину', - yy : translator.translate - }, - dayOfMonthOrdinalParse: /\d{1,2}\./, - ordinal : '%d.', - week : { - dow : 1, // Monday is the first day of the week. - doy : 7 // The week that contains Jan 1st is the first week of the year. - } -}); - -return srCyrl; - -}))); diff --git a/admin/bower_components/moment/locale/sr.js b/admin/bower_components/moment/locale/sr.js deleted file mode 100644 index 90778a9..0000000 --- a/admin/bower_components/moment/locale/sr.js +++ /dev/null @@ -1,110 +0,0 @@ -//! moment.js locale configuration -//! locale : Serbian [sr] -//! author : Milan Janačković<milanjanackovic@gmail.com> : https://github.com/milan-j - -;(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' - && typeof require === 'function' ? factory(require('../moment')) : - typeof define === 'function' && define.amd ? define(['../moment'], factory) : - factory(global.moment) -}(this, (function (moment) { 'use strict'; - - -var translator = { - words: { //Different grammatical cases - m: ['jedan minut', 'jedne minute'], - mm: ['minut', 'minute', 'minuta'], - h: ['jedan sat', 'jednog sata'], - hh: ['sat', 'sata', 'sati'], - dd: ['dan', 'dana', 'dana'], - MM: ['mesec', 'meseca', 'meseci'], - yy: ['godina', 'godine', 'godina'] - }, - correctGrammaticalCase: function (number, wordKey) { - return number === 1 ? wordKey[0] : (number >= 2 && number <= 4 ? wordKey[1] : wordKey[2]); - }, - translate: function (number, withoutSuffix, key) { - var wordKey = translator.words[key]; - if (key.length === 1) { - return withoutSuffix ? wordKey[0] : wordKey[1]; - } else { - return number + ' ' + translator.correctGrammaticalCase(number, wordKey); - } - } -}; - -var sr = moment.defineLocale('sr', { - months: 'januar_februar_mart_april_maj_jun_jul_avgust_septembar_oktobar_novembar_decembar'.split('_'), - monthsShort: 'jan._feb._mar._apr._maj_jun_jul_avg._sep._okt._nov._dec.'.split('_'), - monthsParseExact: true, - weekdays: 'nedelja_ponedeljak_utorak_sreda_četvrtak_petak_subota'.split('_'), - weekdaysShort: 'ned._pon._uto._sre._čet._pet._sub.'.split('_'), - weekdaysMin: 'ne_po_ut_sr_če_pe_su'.split('_'), - weekdaysParseExact : true, - longDateFormat: { - LT: 'H:mm', - LTS : 'H:mm:ss', - L: 'DD.MM.YYYY', - LL: 'D. MMMM YYYY', - LLL: 'D. MMMM YYYY H:mm', - LLLL: 'dddd, D. MMMM YYYY H:mm' - }, - calendar: { - sameDay: '[danas u] LT', - nextDay: '[sutra u] LT', - nextWeek: function () { - switch (this.day()) { - case 0: - return '[u] [nedelju] [u] LT'; - case 3: - return '[u] [sredu] [u] LT'; - case 6: - return '[u] [subotu] [u] LT'; - case 1: - case 2: - case 4: - case 5: - return '[u] dddd [u] LT'; - } - }, - lastDay : '[juče u] LT', - lastWeek : function () { - var lastWeekDays = [ - '[prošle] [nedelje] [u] LT', - '[prošlog] [ponedeljka] [u] LT', - '[prošlog] [utorka] [u] LT', - '[prošle] [srede] [u] LT', - '[prošlog] [četvrtka] [u] LT', - '[prošlog] [petka] [u] LT', - '[prošle] [subote] [u] LT' - ]; - return lastWeekDays[this.day()]; - }, - sameElse : 'L' - }, - relativeTime : { - future : 'za %s', - past : 'pre %s', - s : 'nekoliko sekundi', - m : translator.translate, - mm : translator.translate, - h : translator.translate, - hh : translator.translate, - d : 'dan', - dd : translator.translate, - M : 'mesec', - MM : translator.translate, - y : 'godinu', - yy : translator.translate - }, - dayOfMonthOrdinalParse: /\d{1,2}\./, - ordinal : '%d.', - week : { - dow : 1, // Monday is the first day of the week. - doy : 7 // The week that contains Jan 1st is the first week of the year. - } -}); - -return sr; - -}))); diff --git a/admin/bower_components/moment/locale/ss.js b/admin/bower_components/moment/locale/ss.js deleted file mode 100644 index e89e2db..0000000 --- a/admin/bower_components/moment/locale/ss.js +++ /dev/null @@ -1,89 +0,0 @@ -//! moment.js locale configuration -//! locale : siSwati [ss] -//! author : Nicolai Davies<mail@nicolai.io> : https://github.com/nicolaidavies - -;(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' - && typeof require === 'function' ? factory(require('../moment')) : - typeof define === 'function' && define.amd ? define(['../moment'], factory) : - factory(global.moment) -}(this, (function (moment) { 'use strict'; - - - -var ss = moment.defineLocale('ss', { - months : "Bhimbidvwane_Indlovana_Indlov'lenkhulu_Mabasa_Inkhwekhweti_Inhlaba_Kholwane_Ingci_Inyoni_Imphala_Lweti_Ingongoni".split('_'), - monthsShort : 'Bhi_Ina_Inu_Mab_Ink_Inh_Kho_Igc_Iny_Imp_Lwe_Igo'.split('_'), - weekdays : 'Lisontfo_Umsombuluko_Lesibili_Lesitsatfu_Lesine_Lesihlanu_Umgcibelo'.split('_'), - weekdaysShort : 'Lis_Umb_Lsb_Les_Lsi_Lsh_Umg'.split('_'), - weekdaysMin : 'Li_Us_Lb_Lt_Ls_Lh_Ug'.split('_'), - weekdaysParseExact : true, - longDateFormat : { - LT : 'h:mm A', - LTS : 'h:mm:ss A', - L : 'DD/MM/YYYY', - LL : 'D MMMM YYYY', - LLL : 'D MMMM YYYY h:mm A', - LLLL : 'dddd, D MMMM YYYY h:mm A' - }, - calendar : { - sameDay : '[Namuhla nga] LT', - nextDay : '[Kusasa nga] LT', - nextWeek : 'dddd [nga] LT', - lastDay : '[Itolo nga] LT', - lastWeek : 'dddd [leliphelile] [nga] LT', - sameElse : 'L' - }, - relativeTime : { - future : 'nga %s', - past : 'wenteka nga %s', - s : 'emizuzwana lomcane', - m : 'umzuzu', - mm : '%d emizuzu', - h : 'lihora', - hh : '%d emahora', - d : 'lilanga', - dd : '%d emalanga', - M : 'inyanga', - MM : '%d tinyanga', - y : 'umnyaka', - yy : '%d iminyaka' - }, - meridiemParse: /ekuseni|emini|entsambama|ebusuku/, - meridiem : function (hours, minutes, isLower) { - if (hours < 11) { - return 'ekuseni'; - } else if (hours < 15) { - return 'emini'; - } else if (hours < 19) { - return 'entsambama'; - } else { - return 'ebusuku'; - } - }, - meridiemHour : function (hour, meridiem) { - if (hour === 12) { - hour = 0; - } - if (meridiem === 'ekuseni') { - return hour; - } else if (meridiem === 'emini') { - return hour >= 11 ? hour : hour + 12; - } else if (meridiem === 'entsambama' || meridiem === 'ebusuku') { - if (hour === 0) { - return 0; - } - return hour + 12; - } - }, - dayOfMonthOrdinalParse: /\d{1,2}/, - ordinal : '%d', - week : { - dow : 1, // Monday is the first day of the week. - doy : 4 // The week that contains Jan 4th is the first week of the year. - } -}); - -return ss; - -}))); diff --git a/admin/bower_components/moment/locale/sv.js b/admin/bower_components/moment/locale/sv.js deleted file mode 100644 index 1aa7660..0000000 --- a/admin/bower_components/moment/locale/sv.js +++ /dev/null @@ -1,69 +0,0 @@ -//! moment.js locale configuration -//! locale : Swedish [sv] -//! author : Jens Alm : https://github.com/ulmus - -;(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' - && typeof require === 'function' ? factory(require('../moment')) : - typeof define === 'function' && define.amd ? define(['../moment'], factory) : - factory(global.moment) -}(this, (function (moment) { 'use strict'; - - -var sv = moment.defineLocale('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', - LTS : 'HH:mm:ss', - L : 'YYYY-MM-DD', - LL : 'D MMMM YYYY', - LLL : 'D MMMM YYYY [kl.] HH:mm', - LLLL : 'dddd D MMMM YYYY [kl.] HH:mm', - lll : 'D MMM YYYY HH:mm', - llll : 'ddd D MMM YYYY HH:mm' - }, - calendar : { - sameDay: '[Idag] LT', - nextDay: '[Imorgon] LT', - lastDay: '[Igår] LT', - nextWeek: '[På] dddd LT', - lastWeek: '[I] dddd[s] 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' - }, - dayOfMonthOrdinalParse: /\d{1,2}(e|a)/, - ordinal : function (number) { - var b = number % 10, - output = (~~(number % 100 / 10) === 1) ? 'e' : - (b === 1) ? 'a' : - (b === 2) ? 'a' : - (b === 3) ? 'e' : 'e'; - return number + output; - }, - week : { - dow : 1, // Monday is the first day of the week. - doy : 4 // The week that contains Jan 4th is the first week of the year. - } -}); - -return sv; - -}))); diff --git a/admin/bower_components/moment/locale/sw.js b/admin/bower_components/moment/locale/sw.js deleted file mode 100644 index 9ed314f..0000000 --- a/admin/bower_components/moment/locale/sw.js +++ /dev/null @@ -1,59 +0,0 @@ -//! moment.js locale configuration -//! locale : Swahili [sw] -//! author : Fahad Kassim : https://github.com/fadsel - -;(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' - && typeof require === 'function' ? factory(require('../moment')) : - typeof define === 'function' && define.amd ? define(['../moment'], factory) : - factory(global.moment) -}(this, (function (moment) { 'use strict'; - - -var sw = moment.defineLocale('sw', { - months : 'Januari_Februari_Machi_Aprili_Mei_Juni_Julai_Agosti_Septemba_Oktoba_Novemba_Desemba'.split('_'), - monthsShort : 'Jan_Feb_Mac_Apr_Mei_Jun_Jul_Ago_Sep_Okt_Nov_Des'.split('_'), - weekdays : 'Jumapili_Jumatatu_Jumanne_Jumatano_Alhamisi_Ijumaa_Jumamosi'.split('_'), - weekdaysShort : 'Jpl_Jtat_Jnne_Jtan_Alh_Ijm_Jmos'.split('_'), - weekdaysMin : 'J2_J3_J4_J5_Al_Ij_J1'.split('_'), - weekdaysParseExact : true, - longDateFormat : { - LT : 'HH:mm', - LTS : 'HH:mm:ss', - L : 'DD.MM.YYYY', - LL : 'D MMMM YYYY', - LLL : 'D MMMM YYYY HH:mm', - LLLL : 'dddd, D MMMM YYYY HH:mm' - }, - calendar : { - sameDay : '[leo saa] LT', - nextDay : '[kesho saa] LT', - nextWeek : '[wiki ijayo] dddd [saat] LT', - lastDay : '[jana] LT', - lastWeek : '[wiki iliyopita] dddd [saat] LT', - sameElse : 'L' - }, - relativeTime : { - future : '%s baadaye', - past : 'tokea %s', - s : 'hivi punde', - m : 'dakika moja', - mm : 'dakika %d', - h : 'saa limoja', - hh : 'masaa %d', - d : 'siku moja', - dd : 'masiku %d', - M : 'mwezi mmoja', - MM : 'miezi %d', - y : 'mwaka mmoja', - yy : 'miaka %d' - }, - week : { - dow : 1, // Monday is the first day of the week. - doy : 7 // The week that contains Jan 1st is the first week of the year. - } -}); - -return sw; - -}))); diff --git a/admin/bower_components/moment/locale/ta.js b/admin/bower_components/moment/locale/ta.js deleted file mode 100644 index d9d2555..0000000 --- a/admin/bower_components/moment/locale/ta.js +++ /dev/null @@ -1,130 +0,0 @@ -//! moment.js locale configuration -//! locale : Tamil [ta] -//! author : Arjunkumar Krishnamoorthy : https://github.com/tk120404 - -;(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' - && typeof require === 'function' ? factory(require('../moment')) : - typeof define === 'function' && define.amd ? define(['../moment'], factory) : - factory(global.moment) -}(this, (function (moment) { 'use strict'; - - -var symbolMap = { - '1': '௧', - '2': '௨', - '3': '௩', - '4': '௪', - '5': '௫', - '6': '௬', - '7': '௭', - '8': '௮', - '9': '௯', - '0': '௦' -}; -var numberMap = { - '௧': '1', - '௨': '2', - '௩': '3', - '௪': '4', - '௫': '5', - '௬': '6', - '௭': '7', - '௮': '8', - '௯': '9', - '௦': '0' -}; - -var ta = moment.defineLocale('ta', { - months : 'ஜனவரி_பிப்ரவரி_மார்ச்_ஏப்ரல்_மே_ஜூன்_ஜூலை_ஆகஸ்ட்_செப்டெம்பர்_அக்டோபர்_நவம்பர்_டிசம்பர்'.split('_'), - monthsShort : 'ஜனவரி_பிப்ரவரி_மார்ச்_ஏப்ரல்_மே_ஜூன்_ஜூலை_ஆகஸ்ட்_செப்டெம்பர்_அக்டோபர்_நவம்பர்_டிசம்பர்'.split('_'), - weekdays : 'ஞாயிற்றுக்கிழமை_திங்கட்கிழமை_செவ்வாய்கிழமை_புதன்கிழமை_வியாழக்கிழமை_வெள்ளிக்கிழமை_சனிக்கிழமை'.split('_'), - weekdaysShort : 'ஞாயிறு_திங்கள்_செவ்வாய்_புதன்_வியாழன்_வெள்ளி_சனி'.split('_'), - weekdaysMin : 'ஞா_தி_செ_பு_வி_வெ_ச'.split('_'), - longDateFormat : { - LT : 'HH:mm', - LTS : 'HH:mm:ss', - L : 'DD/MM/YYYY', - LL : 'D MMMM YYYY', - LLL : 'D MMMM YYYY, HH:mm', - LLLL : 'dddd, D MMMM YYYY, HH:mm' - }, - 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 ஆண்டுகள்' - }, - dayOfMonthOrdinalParse: /\d{1,2}வது/, - ordinal : function (number) { - return number + 'வது'; - }, - preparse: function (string) { - return string.replace(/[௧௨௩௪௫௬௭௮௯௦]/g, function (match) { - return numberMap[match]; - }); - }, - postformat: function (string) { - return string.replace(/\d/g, function (match) { - return symbolMap[match]; - }); - }, - // refer http://ta.wikipedia.org/s/1er1 - meridiemParse: /யாமம்|வைகறை|காலை|நண்பகல்|எற்பாடு|மாலை/, - meridiem : function (hour, minute, isLower) { - if (hour < 2) { - return ' யாமம்'; - } else if (hour < 6) { - return ' வைகறை'; // வைகறை - } else if (hour < 10) { - return ' காலை'; // காலை - } else if (hour < 14) { - return ' நண்பகல்'; // நண்பகல் - } else if (hour < 18) { - return ' எற்பாடு'; // எற்பாடு - } else if (hour < 22) { - return ' மாலை'; // மாலை - } else { - return ' யாமம்'; - } - }, - meridiemHour : function (hour, meridiem) { - if (hour === 12) { - hour = 0; - } - if (meridiem === 'யாமம்') { - return hour < 2 ? hour : hour + 12; - } else if (meridiem === 'வைகறை' || meridiem === 'காலை') { - return hour; - } else if (meridiem === 'நண்பகல்') { - return hour >= 10 ? hour : hour + 12; - } else { - return hour + 12; - } - }, - week : { - dow : 0, // Sunday is the first day of the week. - doy : 6 // The week that contains Jan 1st is the first week of the year. - } -}); - -return ta; - -}))); diff --git a/admin/bower_components/moment/locale/te.js b/admin/bower_components/moment/locale/te.js deleted file mode 100644 index fe33904..0000000 --- a/admin/bower_components/moment/locale/te.js +++ /dev/null @@ -1,89 +0,0 @@ -//! moment.js locale configuration -//! locale : Telugu [te] -//! author : Krishna Chaitanya Thota : https://github.com/kcthota - -;(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' - && typeof require === 'function' ? factory(require('../moment')) : - typeof define === 'function' && define.amd ? define(['../moment'], factory) : - factory(global.moment) -}(this, (function (moment) { 'use strict'; - - -var te = moment.defineLocale('te', { - months : 'జనవరి_ఫిబ్రవరి_మార్చి_ఏప్రిల్_మే_జూన్_జూలై_ఆగస్టు_సెప్టెంబర్_అక్టోబర్_నవంబర్_డిసెంబర్'.split('_'), - monthsShort : 'జన._ఫిబ్ర._మార్చి_ఏప్రి._మే_జూన్_జూలై_ఆగ._సెప్._అక్టో._నవ._డిసె.'.split('_'), - monthsParseExact : true, - weekdays : 'ఆదివారం_సోమవారం_మంగళవారం_బుధవారం_గురువారం_శుక్రవారం_శనివారం'.split('_'), - weekdaysShort : 'ఆది_సోమ_మంగళ_బుధ_గురు_శుక్ర_శని'.split('_'), - weekdaysMin : 'ఆ_సో_మం_బు_గు_శు_శ'.split('_'), - longDateFormat : { - LT : 'A h:mm', - LTS : 'A h:mm:ss', - L : 'DD/MM/YYYY', - LL : 'D MMMM YYYY', - LLL : 'D MMMM YYYY, A h:mm', - LLLL : 'dddd, D MMMM YYYY, A h:mm' - }, - 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 సంవత్సరాలు' - }, - dayOfMonthOrdinalParse : /\d{1,2}వ/, - ordinal : '%dవ', - meridiemParse: /రాత్రి|ఉదయం|మధ్యాహ్నం|సాయంత్రం/, - meridiemHour : function (hour, meridiem) { - if (hour === 12) { - hour = 0; - } - if (meridiem === 'రాత్రి') { - return hour < 4 ? hour : hour + 12; - } else if (meridiem === 'ఉదయం') { - return hour; - } else if (meridiem === 'మధ్యాహ్నం') { - return hour >= 10 ? hour : hour + 12; - } else if (meridiem === 'సాయంత్రం') { - return hour + 12; - } - }, - meridiem : function (hour, minute, isLower) { - if (hour < 4) { - return 'రాత్రి'; - } else if (hour < 10) { - return 'ఉదయం'; - } else if (hour < 17) { - return 'మధ్యాహ్నం'; - } else if (hour < 20) { - return 'సాయంత్రం'; - } else { - return 'రాత్రి'; - } - }, - week : { - dow : 0, // Sunday is the first day of the week. - doy : 6 // The week that contains Jan 1st is the first week of the year. - } -}); - -return te; - -}))); diff --git a/admin/bower_components/moment/locale/tet.js b/admin/bower_components/moment/locale/tet.js deleted file mode 100644 index c9c2928..0000000 --- a/admin/bower_components/moment/locale/tet.js +++ /dev/null @@ -1,68 +0,0 @@ -//! moment.js locale configuration -//! locale : Tetun Dili (East Timor) [tet] -//! author : Joshua Brooks : https://github.com/joshbrooks -//! author : Onorio De J. Afonso : https://github.com/marobo - -;(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' - && typeof require === 'function' ? factory(require('../moment')) : - typeof define === 'function' && define.amd ? define(['../moment'], factory) : - factory(global.moment) -}(this, (function (moment) { 'use strict'; - - -var tet = moment.defineLocale('tet', { - months : 'Janeiru_Fevereiru_Marsu_Abril_Maiu_Juniu_Juliu_Augustu_Setembru_Outubru_Novembru_Dezembru'.split('_'), - monthsShort : 'Jan_Fev_Mar_Abr_Mai_Jun_Jul_Aug_Set_Out_Nov_Dez'.split('_'), - weekdays : 'Domingu_Segunda_Tersa_Kuarta_Kinta_Sexta_Sabadu'.split('_'), - weekdaysShort : 'Dom_Seg_Ters_Kua_Kint_Sext_Sab'.split('_'), - weekdaysMin : 'Do_Seg_Te_Ku_Ki_Sex_Sa'.split('_'), - longDateFormat : { - LT : 'HH:mm', - LTS : 'HH:mm:ss', - L : 'DD/MM/YYYY', - LL : 'D MMMM YYYY', - LLL : 'D MMMM YYYY HH:mm', - LLLL : 'dddd, D MMMM YYYY HH:mm' - }, - calendar : { - sameDay: '[Ohin iha] LT', - nextDay: '[Aban iha] LT', - nextWeek: 'dddd [iha] LT', - lastDay: '[Horiseik iha] LT', - lastWeek: 'dddd [semana kotuk] [iha] LT', - sameElse: 'L' - }, - relativeTime : { - future : 'iha %s', - past : '%s liuba', - s : 'minutu balun', - m : 'minutu ida', - mm : 'minutus %d', - h : 'horas ida', - hh : 'horas %d', - d : 'loron ida', - dd : 'loron %d', - M : 'fulan ida', - MM : 'fulan %d', - y : 'tinan ida', - yy : 'tinan %d' - }, - dayOfMonthOrdinalParse: /\d{1,2}(st|nd|rd|th)/, - ordinal : function (number) { - var b = number % 10, - output = (~~(number % 100 / 10) === 1) ? 'th' : - (b === 1) ? 'st' : - (b === 2) ? 'nd' : - (b === 3) ? 'rd' : 'th'; - return number + output; - }, - week : { - dow : 1, // Monday is the first day of the week. - doy : 4 // The week that contains Jan 4th is the first week of the year. - } -}); - -return tet; - -}))); diff --git a/admin/bower_components/moment/locale/th.js b/admin/bower_components/moment/locale/th.js deleted file mode 100644 index 17ec0f1..0000000 --- a/admin/bower_components/moment/locale/th.js +++ /dev/null @@ -1,67 +0,0 @@ -//! moment.js locale configuration -//! locale : Thai [th] -//! author : Kridsada Thanabulpong : https://github.com/sirn - -;(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' - && typeof require === 'function' ? factory(require('../moment')) : - typeof define === 'function' && define.amd ? define(['../moment'], factory) : - factory(global.moment) -}(this, (function (moment) { 'use strict'; - - -var th = moment.defineLocale('th', { - months : 'มกราคม_กุมภาพันธ์_มีนาคม_เมษายน_พฤษภาคม_มิถุนายน_กรกฎาคม_สิงหาคม_กันยายน_ตุลาคม_พฤศจิกายน_ธันวาคม'.split('_'), - monthsShort : 'ม.ค._ก.พ._มี.ค._เม.ย._พ.ค._มิ.ย._ก.ค._ส.ค._ก.ย._ต.ค._พ.ย._ธ.ค.'.split('_'), - monthsParseExact: true, - weekdays : 'อาทิตย์_จันทร์_อังคาร_พุธ_พฤหัสบดี_ศุกร์_เสาร์'.split('_'), - weekdaysShort : 'อาทิตย์_จันทร์_อังคาร_พุธ_พฤหัส_ศุกร์_เสาร์'.split('_'), // yes, three characters difference - weekdaysMin : 'อา._จ._อ._พ._พฤ._ศ._ส.'.split('_'), - weekdaysParseExact : true, - longDateFormat : { - LT : 'H:mm', - LTS : 'H:mm:ss', - L : 'DD/MM/YYYY', - LL : 'D MMMM YYYY', - LLL : 'D MMMM YYYY เวลา H:mm', - LLLL : 'วันddddที่ D MMMM YYYY เวลา H:mm' - }, - meridiemParse: /ก่อนเที่ยง|หลังเที่ยง/, - isPM: function (input) { - return input === 'หลังเที่ยง'; - }, - meridiem : function (hour, minute, isLower) { - if (hour < 12) { - return 'ก่อนเที่ยง'; - } else { - return 'หลังเที่ยง'; - } - }, - 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 ปี' - } -}); - -return th; - -}))); diff --git a/admin/bower_components/moment/locale/tl-ph.js b/admin/bower_components/moment/locale/tl-ph.js deleted file mode 100644 index f66b022..0000000 --- a/admin/bower_components/moment/locale/tl-ph.js +++ /dev/null @@ -1,62 +0,0 @@ -//! moment.js locale configuration -//! locale : Tagalog (Philippines) [tl-ph] -//! author : Dan Hagman : https://github.com/hagmandan - -;(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' - && typeof require === 'function' ? factory(require('../moment')) : - typeof define === 'function' && define.amd ? define(['../moment'], factory) : - factory(global.moment) -}(this, (function (moment) { 'use strict'; - - -var tlPh = moment.defineLocale('tl-ph', { - months : 'Enero_Pebrero_Marso_Abril_Mayo_Hunyo_Hulyo_Agosto_Setyembre_Oktubre_Nobyembre_Disyembre'.split('_'), - monthsShort : 'Ene_Peb_Mar_Abr_May_Hun_Hul_Ago_Set_Okt_Nob_Dis'.split('_'), - weekdays : 'Linggo_Lunes_Martes_Miyerkules_Huwebes_Biyernes_Sabado'.split('_'), - weekdaysShort : 'Lin_Lun_Mar_Miy_Huw_Biy_Sab'.split('_'), - weekdaysMin : 'Li_Lu_Ma_Mi_Hu_Bi_Sab'.split('_'), - longDateFormat : { - LT : 'HH:mm', - LTS : 'HH:mm:ss', - L : 'MM/D/YYYY', - LL : 'MMMM D, YYYY', - LLL : 'MMMM D, YYYY HH:mm', - LLLL : 'dddd, MMMM DD, YYYY HH:mm' - }, - calendar : { - sameDay: 'LT [ngayong araw]', - nextDay: '[Bukas ng] LT', - nextWeek: 'LT [sa susunod na] dddd', - lastDay: 'LT [kahapon]', - lastWeek: 'LT [noong nakaraang] dddd', - sameElse: 'L' - }, - relativeTime : { - future : 'sa loob ng %s', - past : '%s ang nakalipas', - s : 'ilang segundo', - m : 'isang minuto', - mm : '%d minuto', - h : 'isang oras', - hh : '%d oras', - d : 'isang araw', - dd : '%d araw', - M : 'isang buwan', - MM : '%d buwan', - y : 'isang taon', - yy : '%d taon' - }, - dayOfMonthOrdinalParse: /\d{1,2}/, - ordinal : function (number) { - return number; - }, - week : { - dow : 1, // Monday is the first day of the week. - doy : 4 // The week that contains Jan 4th is the first week of the year. - } -}); - -return tlPh; - -}))); diff --git a/admin/bower_components/moment/locale/tlh.js b/admin/bower_components/moment/locale/tlh.js deleted file mode 100644 index 7c3123c..0000000 --- a/admin/bower_components/moment/locale/tlh.js +++ /dev/null @@ -1,120 +0,0 @@ -//! moment.js locale configuration -//! locale : Klingon [tlh] -//! author : Dominika Kruk : https://github.com/amaranthrose - -;(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' - && typeof require === 'function' ? factory(require('../moment')) : - typeof define === 'function' && define.amd ? define(['../moment'], factory) : - factory(global.moment) -}(this, (function (moment) { 'use strict'; - - -var numbersNouns = 'pagh_wa’_cha’_wej_loS_vagh_jav_Soch_chorgh_Hut'.split('_'); - -function translateFuture(output) { - var time = output; - time = (output.indexOf('jaj') !== -1) ? - time.slice(0, -3) + 'leS' : - (output.indexOf('jar') !== -1) ? - time.slice(0, -3) + 'waQ' : - (output.indexOf('DIS') !== -1) ? - time.slice(0, -3) + 'nem' : - time + ' pIq'; - return time; -} - -function translatePast(output) { - var time = output; - time = (output.indexOf('jaj') !== -1) ? - time.slice(0, -3) + 'Hu’' : - (output.indexOf('jar') !== -1) ? - time.slice(0, -3) + 'wen' : - (output.indexOf('DIS') !== -1) ? - time.slice(0, -3) + 'ben' : - time + ' ret'; - return time; -} - -function translate(number, withoutSuffix, string, isFuture) { - var numberNoun = numberAsNoun(number); - switch (string) { - case 'mm': - return numberNoun + ' tup'; - case 'hh': - return numberNoun + ' rep'; - case 'dd': - return numberNoun + ' jaj'; - case 'MM': - return numberNoun + ' jar'; - case 'yy': - return numberNoun + ' DIS'; - } -} - -function numberAsNoun(number) { - var hundred = Math.floor((number % 1000) / 100), - ten = Math.floor((number % 100) / 10), - one = number % 10, - word = ''; - if (hundred > 0) { - word += numbersNouns[hundred] + 'vatlh'; - } - if (ten > 0) { - word += ((word !== '') ? ' ' : '') + numbersNouns[ten] + 'maH'; - } - if (one > 0) { - word += ((word !== '') ? ' ' : '') + numbersNouns[one]; - } - return (word === '') ? 'pagh' : word; -} - -var tlh = moment.defineLocale('tlh', { - months : 'tera’ jar wa’_tera’ jar cha’_tera’ jar wej_tera’ jar loS_tera’ jar vagh_tera’ jar jav_tera’ jar Soch_tera’ jar chorgh_tera’ jar Hut_tera’ jar wa’maH_tera’ jar wa’maH wa’_tera’ jar wa’maH cha’'.split('_'), - monthsShort : 'jar wa’_jar cha’_jar wej_jar loS_jar vagh_jar jav_jar Soch_jar chorgh_jar Hut_jar wa’maH_jar wa’maH wa’_jar wa’maH cha’'.split('_'), - monthsParseExact : true, - weekdays : 'lojmItjaj_DaSjaj_povjaj_ghItlhjaj_loghjaj_buqjaj_ghInjaj'.split('_'), - weekdaysShort : 'lojmItjaj_DaSjaj_povjaj_ghItlhjaj_loghjaj_buqjaj_ghInjaj'.split('_'), - weekdaysMin : 'lojmItjaj_DaSjaj_povjaj_ghItlhjaj_loghjaj_buqjaj_ghInjaj'.split('_'), - longDateFormat : { - LT : 'HH:mm', - LTS : 'HH:mm:ss', - L : 'DD.MM.YYYY', - LL : 'D MMMM YYYY', - LLL : 'D MMMM YYYY HH:mm', - LLLL : 'dddd, D MMMM YYYY HH:mm' - }, - calendar : { - sameDay: '[DaHjaj] LT', - nextDay: '[wa’leS] LT', - nextWeek: 'LLL', - lastDay: '[wa’Hu’] LT', - lastWeek: 'LLL', - sameElse: 'L' - }, - relativeTime : { - future : translateFuture, - past : translatePast, - s : 'puS lup', - m : 'wa’ tup', - mm : translate, - h : 'wa’ rep', - hh : translate, - d : 'wa’ jaj', - dd : translate, - M : 'wa’ jar', - MM : translate, - y : 'wa’ DIS', - yy : translate - }, - dayOfMonthOrdinalParse: /\d{1,2}\./, - ordinal : '%d.', - week : { - dow : 1, // Monday is the first day of the week. - doy : 4 // The week that contains Jan 4th is the first week of the year. - } -}); - -return tlh; - -}))); diff --git a/admin/bower_components/moment/locale/tr.js b/admin/bower_components/moment/locale/tr.js deleted file mode 100644 index c4c58ca..0000000 --- a/admin/bower_components/moment/locale/tr.js +++ /dev/null @@ -1,90 +0,0 @@ -//! moment.js locale configuration -//! locale : Turkish [tr] -//! authors : Erhan Gundogan : https://github.com/erhangundogan, -//! Burak Yiğit Kaya: https://github.com/BYK - -;(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' - && typeof require === 'function' ? factory(require('../moment')) : - typeof define === 'function' && define.amd ? define(['../moment'], factory) : - factory(global.moment) -}(this, (function (moment) { 'use strict'; - - -var suffixes = { - 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ı' -}; - -var tr = moment.defineLocale('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', - LTS : 'HH:mm:ss', - L : 'DD.MM.YYYY', - LL : 'D MMMM YYYY', - LLL : 'D MMMM YYYY HH:mm', - LLLL : 'dddd, D MMMM YYYY HH:mm' - }, - 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' - }, - dayOfMonthOrdinalParse: /\d{1,2}'(inci|nci|üncü|ncı|uncu|ıncı)/, - ordinal : function (number) { - if (number === 0) { // special case for zero - return number + '\'ıncı'; - } - var a = number % 10, - b = number % 100 - a, - c = number >= 100 ? 100 : null; - return number + (suffixes[a] || suffixes[b] || suffixes[c]); - }, - week : { - dow : 1, // Monday is the first day of the week. - doy : 7 // The week that contains Jan 1st is the first week of the year. - } -}); - -return tr; - -}))); diff --git a/admin/bower_components/moment/locale/tzl.js b/admin/bower_components/moment/locale/tzl.js deleted file mode 100644 index 978fcb4..0000000 --- a/admin/bower_components/moment/locale/tzl.js +++ /dev/null @@ -1,91 +0,0 @@ -//! moment.js locale configuration -//! locale : Talossan [tzl] -//! author : Robin van der Vliet : https://github.com/robin0van0der0v -//! author : Iustì Canun - -;(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' - && typeof require === 'function' ? factory(require('../moment')) : - typeof define === 'function' && define.amd ? define(['../moment'], factory) : - factory(global.moment) -}(this, (function (moment) { 'use strict'; - - -// After the year there should be a slash and the amount of years since December 26, 1979 in Roman numerals. -// This is currently too difficult (maybe even impossible) to add. -var tzl = moment.defineLocale('tzl', { - months : 'Januar_Fevraglh_Març_Avrïu_Mai_Gün_Julia_Guscht_Setemvar_Listopäts_Noemvar_Zecemvar'.split('_'), - monthsShort : 'Jan_Fev_Mar_Avr_Mai_Gün_Jul_Gus_Set_Lis_Noe_Zec'.split('_'), - weekdays : 'Súladi_Lúneçi_Maitzi_Márcuri_Xhúadi_Viénerçi_Sáturi'.split('_'), - weekdaysShort : 'Súl_Lún_Mai_Már_Xhú_Vié_Sát'.split('_'), - weekdaysMin : 'Sú_Lú_Ma_Má_Xh_Vi_Sá'.split('_'), - longDateFormat : { - LT : 'HH.mm', - LTS : 'HH.mm.ss', - L : 'DD.MM.YYYY', - LL : 'D. MMMM [dallas] YYYY', - LLL : 'D. MMMM [dallas] YYYY HH.mm', - LLLL : 'dddd, [li] D. MMMM [dallas] YYYY HH.mm' - }, - meridiemParse: /d\'o|d\'a/i, - isPM : function (input) { - return 'd\'o' === input.toLowerCase(); - }, - meridiem : function (hours, minutes, isLower) { - if (hours > 11) { - return isLower ? 'd\'o' : 'D\'O'; - } else { - return isLower ? 'd\'a' : 'D\'A'; - } - }, - calendar : { - sameDay : '[oxhi à] LT', - nextDay : '[demà à] LT', - nextWeek : 'dddd [à] LT', - lastDay : '[ieiri à] LT', - lastWeek : '[sür el] dddd [lasteu à] LT', - sameElse : 'L' - }, - relativeTime : { - future : 'osprei %s', - past : 'ja%s', - s : processRelativeTime, - m : processRelativeTime, - mm : processRelativeTime, - h : processRelativeTime, - hh : processRelativeTime, - d : processRelativeTime, - dd : processRelativeTime, - M : processRelativeTime, - MM : processRelativeTime, - y : processRelativeTime, - yy : processRelativeTime - }, - dayOfMonthOrdinalParse: /\d{1,2}\./, - ordinal : '%d.', - week : { - dow : 1, // Monday is the first day of the week. - doy : 4 // The week that contains Jan 4th is the first week of the year. - } -}); - -function processRelativeTime(number, withoutSuffix, key, isFuture) { - var format = { - 's': ['viensas secunds', '\'iensas secunds'], - 'm': ['\'n míut', '\'iens míut'], - 'mm': [number + ' míuts', '' + number + ' míuts'], - 'h': ['\'n þora', '\'iensa þora'], - 'hh': [number + ' þoras', '' + number + ' þoras'], - 'd': ['\'n ziua', '\'iensa ziua'], - 'dd': [number + ' ziuas', '' + number + ' ziuas'], - 'M': ['\'n mes', '\'iens mes'], - 'MM': [number + ' mesen', '' + number + ' mesen'], - 'y': ['\'n ar', '\'iens ar'], - 'yy': [number + ' ars', '' + number + ' ars'] - }; - return isFuture ? format[key][0] : (withoutSuffix ? format[key][0] : format[key][1]); -} - -return tzl; - -}))); diff --git a/admin/bower_components/moment/locale/tzm-latn.js b/admin/bower_components/moment/locale/tzm-latn.js deleted file mode 100644 index 4d742c5..0000000 --- a/admin/bower_components/moment/locale/tzm-latn.js +++ /dev/null @@ -1,58 +0,0 @@ -//! moment.js locale configuration -//! locale : Central Atlas Tamazight Latin [tzm-latn] -//! author : Abdel Said : https://github.com/abdelsaid - -;(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' - && typeof require === 'function' ? factory(require('../moment')) : - typeof define === 'function' && define.amd ? define(['../moment'], factory) : - factory(global.moment) -}(this, (function (moment) { 'use strict'; - - -var tzmLatn = moment.defineLocale('tzm-latn', { - 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', - LTS : 'HH:mm:ss', - L : 'DD/MM/YYYY', - LL : 'D MMMM YYYY', - LLL : 'D MMMM YYYY HH:mm', - LLLL : 'dddd D MMMM YYYY HH:mm' - }, - 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, // Saturday is the first day of the week. - doy : 12 // The week that contains Jan 1st is the first week of the year. - } -}); - -return tzmLatn; - -}))); diff --git a/admin/bower_components/moment/locale/tzm.js b/admin/bower_components/moment/locale/tzm.js deleted file mode 100644 index 1d1c260..0000000 --- a/admin/bower_components/moment/locale/tzm.js +++ /dev/null @@ -1,58 +0,0 @@ -//! moment.js locale configuration -//! locale : Central Atlas Tamazight [tzm] -//! author : Abdel Said : https://github.com/abdelsaid - -;(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' - && typeof require === 'function' ? factory(require('../moment')) : - typeof define === 'function' && define.amd ? define(['../moment'], factory) : - factory(global.moment) -}(this, (function (moment) { 'use strict'; - - -var tzm = moment.defineLocale('tzm', { - months : 'ⵉⵏⵏⴰⵢⵔ_ⴱⵕⴰⵢⵕ_ⵎⴰⵕⵚ_ⵉⴱⵔⵉⵔ_ⵎⴰⵢⵢⵓ_ⵢⵓⵏⵢⵓ_ⵢⵓⵍⵢⵓⵣ_ⵖⵓⵛⵜ_ⵛⵓⵜⴰⵏⴱⵉⵔ_ⴽⵟⵓⴱⵕ_ⵏⵓⵡⴰⵏⴱⵉⵔ_ⴷⵓⵊⵏⴱⵉⵔ'.split('_'), - monthsShort : 'ⵉⵏⵏⴰⵢⵔ_ⴱⵕⴰⵢⵕ_ⵎⴰⵕⵚ_ⵉⴱⵔⵉⵔ_ⵎⴰⵢⵢⵓ_ⵢⵓⵏⵢⵓ_ⵢⵓⵍⵢⵓⵣ_ⵖⵓⵛⵜ_ⵛⵓⵜⴰⵏⴱⵉⵔ_ⴽⵟⵓⴱⵕ_ⵏⵓⵡⴰⵏⴱⵉⵔ_ⴷⵓⵊⵏⴱⵉⵔ'.split('_'), - weekdays : 'ⴰⵙⴰⵎⴰⵙ_ⴰⵢⵏⴰⵙ_ⴰⵙⵉⵏⴰⵙ_ⴰⴽⵔⴰⵙ_ⴰⴽⵡⴰⵙ_ⴰⵙⵉⵎⵡⴰⵙ_ⴰⵙⵉⴹⵢⴰⵙ'.split('_'), - weekdaysShort : 'ⴰⵙⴰⵎⴰⵙ_ⴰⵢⵏⴰⵙ_ⴰⵙⵉⵏⴰⵙ_ⴰⴽⵔⴰⵙ_ⴰⴽⵡⴰⵙ_ⴰⵙⵉⵎⵡⴰⵙ_ⴰⵙⵉⴹⵢⴰⵙ'.split('_'), - weekdaysMin : 'ⴰⵙⴰⵎⴰⵙ_ⴰⵢⵏⴰⵙ_ⴰⵙⵉⵏⴰⵙ_ⴰⴽⵔⴰⵙ_ⴰⴽⵡⴰⵙ_ⴰⵙⵉⵎⵡⴰⵙ_ⴰⵙⵉⴹⵢⴰⵙ'.split('_'), - longDateFormat : { - LT : 'HH:mm', - LTS: 'HH:mm:ss', - L : 'DD/MM/YYYY', - LL : 'D MMMM YYYY', - LLL : 'D MMMM YYYY HH:mm', - LLLL : 'dddd D MMMM YYYY HH:mm' - }, - 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, // Saturday is the first day of the week. - doy : 12 // The week that contains Jan 1st is the first week of the year. - } -}); - -return tzm; - -}))); diff --git a/admin/bower_components/moment/locale/uk.js b/admin/bower_components/moment/locale/uk.js deleted file mode 100644 index 1aff8c1..0000000 --- a/admin/bower_components/moment/locale/uk.js +++ /dev/null @@ -1,151 +0,0 @@ -//! moment.js locale configuration -//! locale : Ukrainian [uk] -//! author : zemlanin : https://github.com/zemlanin -//! Author : Menelion Elensúle : https://github.com/Oire - -;(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' - && typeof require === 'function' ? factory(require('../moment')) : - typeof define === 'function' && define.amd ? define(['../moment'], factory) : - factory(global.moment) -}(this, (function (moment) { 'use strict'; - - -function plural(word, num) { - var forms = word.split('_'); - return num % 10 === 1 && num % 100 !== 11 ? forms[0] : (num % 10 >= 2 && num % 10 <= 4 && (num % 100 < 10 || num % 100 >= 20) ? forms[1] : forms[2]); -} -function relativeTimeWithPlural(number, withoutSuffix, key) { - var format = { - 'mm': withoutSuffix ? 'хвилина_хвилини_хвилин' : 'хвилину_хвилини_хвилин', - 'hh': withoutSuffix ? 'година_години_годин' : 'годину_години_годин', - 'dd': 'день_дні_днів', - 'MM': 'місяць_місяці_місяців', - 'yy': 'рік_роки_років' - }; - if (key === 'm') { - return withoutSuffix ? 'хвилина' : 'хвилину'; - } - else if (key === 'h') { - return withoutSuffix ? 'година' : 'годину'; - } - else { - return number + ' ' + plural(format[key], +number); - } -} -function weekdaysCaseReplace(m, format) { - var weekdays = { - 'nominative': 'неділя_понеділок_вівторок_середа_четвер_п’ятниця_субота'.split('_'), - 'accusative': 'неділю_понеділок_вівторок_середу_четвер_п’ятницю_суботу'.split('_'), - 'genitive': 'неділі_понеділка_вівторка_середи_четверга_п’ятниці_суботи'.split('_') - }; - - if (!m) { - return weekdays['nominative']; - } - - var nounCase = (/(\[[ВвУу]\]) ?dddd/).test(format) ? - 'accusative' : - ((/\[?(?:минулої|наступної)? ?\] ?dddd/).test(format) ? - 'genitive' : - 'nominative'); - return weekdays[nounCase][m.day()]; -} -function processHoursFunction(str) { - return function () { - return str + 'о' + (this.hours() === 11 ? 'б' : '') + '] LT'; - }; -} - -var uk = moment.defineLocale('uk', { - months : { - 'format': 'січня_лютого_березня_квітня_травня_червня_липня_серпня_вересня_жовтня_листопада_грудня'.split('_'), - 'standalone': 'січень_лютий_березень_квітень_травень_червень_липень_серпень_вересень_жовтень_листопад_грудень'.split('_') - }, - monthsShort : 'січ_лют_бер_квіт_трав_черв_лип_серп_вер_жовт_лист_груд'.split('_'), - weekdays : weekdaysCaseReplace, - weekdaysShort : 'нд_пн_вт_ср_чт_пт_сб'.split('_'), - weekdaysMin : 'нд_пн_вт_ср_чт_пт_сб'.split('_'), - longDateFormat : { - LT : 'HH:mm', - LTS : 'HH:mm:ss', - L : 'DD.MM.YYYY', - LL : 'D MMMM YYYY р.', - LLL : 'D MMMM YYYY р., HH:mm', - LLLL : 'dddd, D MMMM YYYY р., HH:mm' - }, - calendar : { - sameDay: processHoursFunction('[Сьогодні '), - nextDay: processHoursFunction('[Завтра '), - lastDay: processHoursFunction('[Вчора '), - nextWeek: processHoursFunction('[У] dddd ['), - lastWeek: function () { - switch (this.day()) { - case 0: - case 3: - case 5: - case 6: - return processHoursFunction('[Минулої] dddd [').call(this); - case 1: - case 2: - case 4: - return processHoursFunction('[Минулого] dddd [').call(this); - } - }, - sameElse: 'L' - }, - relativeTime : { - future : 'за %s', - past : '%s тому', - s : 'декілька секунд', - m : relativeTimeWithPlural, - mm : relativeTimeWithPlural, - h : 'годину', - hh : relativeTimeWithPlural, - d : 'день', - dd : relativeTimeWithPlural, - M : 'місяць', - MM : relativeTimeWithPlural, - y : 'рік', - yy : relativeTimeWithPlural - }, - // M. E.: those two are virtually unused but a user might want to implement them for his/her website for some reason - meridiemParse: /ночі|ранку|дня|вечора/, - isPM: function (input) { - return /^(дня|вечора)$/.test(input); - }, - meridiem : function (hour, minute, isLower) { - if (hour < 4) { - return 'ночі'; - } else if (hour < 12) { - return 'ранку'; - } else if (hour < 17) { - return 'дня'; - } else { - return 'вечора'; - } - }, - dayOfMonthOrdinalParse: /\d{1,2}-(й|го)/, - ordinal: function (number, period) { - switch (period) { - case 'M': - case 'd': - case 'DDD': - case 'w': - case 'W': - return number + '-й'; - case 'D': - return number + '-го'; - default: - return number; - } - }, - week : { - dow : 1, // Monday is the first day of the week. - doy : 7 // The week that contains Jan 1st is the first week of the year. - } -}); - -return uk; - -}))); diff --git a/admin/bower_components/moment/locale/ur.js b/admin/bower_components/moment/locale/ur.js deleted file mode 100644 index 4cf1c07..0000000 --- a/admin/bower_components/moment/locale/ur.js +++ /dev/null @@ -1,99 +0,0 @@ -//! moment.js locale configuration -//! locale : Urdu [ur] -//! author : Sawood Alam : https://github.com/ibnesayeed -//! author : Zack : https://github.com/ZackVision - -;(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' - && typeof require === 'function' ? factory(require('../moment')) : - typeof define === 'function' && define.amd ? define(['../moment'], factory) : - factory(global.moment) -}(this, (function (moment) { 'use strict'; - - -var months = [ - 'جنوری', - 'فروری', - 'مارچ', - 'اپریل', - 'مئی', - 'جون', - 'جولائی', - 'اگست', - 'ستمبر', - 'اکتوبر', - 'نومبر', - 'دسمبر' -]; -var days = [ - 'اتوار', - 'پیر', - 'منگل', - 'بدھ', - 'جمعرات', - 'جمعہ', - 'ہفتہ' -]; - -var ur = moment.defineLocale('ur', { - months : months, - monthsShort : months, - weekdays : days, - weekdaysShort : days, - weekdaysMin : days, - longDateFormat : { - LT : 'HH:mm', - LTS : 'HH:mm:ss', - L : 'DD/MM/YYYY', - LL : 'D MMMM YYYY', - LLL : 'D MMMM YYYY HH:mm', - LLLL : 'dddd، D MMMM YYYY HH:mm' - }, - meridiemParse: /صبح|شام/, - isPM : function (input) { - return 'شام' === input; - }, - meridiem : function (hour, minute, isLower) { - if (hour < 12) { - return 'صبح'; - } - return 'شام'; - }, - 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 (string) { - return string.replace(/،/g, ','); - }, - postformat: function (string) { - return string.replace(/,/g, '،'); - }, - week : { - dow : 1, // Monday is the first day of the week. - doy : 4 // The week that contains Jan 4th is the first week of the year. - } -}); - -return ur; - -}))); diff --git a/admin/bower_components/moment/locale/uz-latn.js b/admin/bower_components/moment/locale/uz-latn.js deleted file mode 100644 index 21463b7..0000000 --- a/admin/bower_components/moment/locale/uz-latn.js +++ /dev/null @@ -1,58 +0,0 @@ -//! moment.js locale configuration -//! locale : Uzbek Latin [uz-latn] -//! author : Rasulbek Mirzayev : github.com/Rasulbeeek - -;(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' - && typeof require === 'function' ? factory(require('../moment')) : - typeof define === 'function' && define.amd ? define(['../moment'], factory) : - factory(global.moment) -}(this, (function (moment) { 'use strict'; - - -var uzLatn = moment.defineLocale('uz-latn', { - months : 'Yanvar_Fevral_Mart_Aprel_May_Iyun_Iyul_Avgust_Sentabr_Oktabr_Noyabr_Dekabr'.split('_'), - monthsShort : 'Yan_Fev_Mar_Apr_May_Iyun_Iyul_Avg_Sen_Okt_Noy_Dek'.split('_'), - weekdays : 'Yakshanba_Dushanba_Seshanba_Chorshanba_Payshanba_Juma_Shanba'.split('_'), - weekdaysShort : 'Yak_Dush_Sesh_Chor_Pay_Jum_Shan'.split('_'), - weekdaysMin : 'Ya_Du_Se_Cho_Pa_Ju_Sha'.split('_'), - longDateFormat : { - LT : 'HH:mm', - LTS : 'HH:mm:ss', - L : 'DD/MM/YYYY', - LL : 'D MMMM YYYY', - LLL : 'D MMMM YYYY HH:mm', - LLLL : 'D MMMM YYYY, dddd HH:mm' - }, - calendar : { - sameDay : '[Bugun soat] LT [da]', - nextDay : '[Ertaga] LT [da]', - nextWeek : 'dddd [kuni soat] LT [da]', - lastDay : '[Kecha soat] LT [da]', - lastWeek : '[O\'tgan] dddd [kuni soat] LT [da]', - sameElse : 'L' - }, - relativeTime : { - future : 'Yaqin %s ichida', - past : 'Bir necha %s oldin', - s : 'soniya', - m : 'bir daqiqa', - mm : '%d daqiqa', - h : 'bir soat', - hh : '%d soat', - d : 'bir kun', - dd : '%d kun', - M : 'bir oy', - MM : '%d oy', - y : 'bir yil', - yy : '%d yil' - }, - week : { - dow : 1, // Monday is the first day of the week. - doy : 7 // The week that contains Jan 1st is the first week of the year. - } -}); - -return uzLatn; - -}))); diff --git a/admin/bower_components/moment/locale/uz.js b/admin/bower_components/moment/locale/uz.js deleted file mode 100644 index 378461e..0000000 --- a/admin/bower_components/moment/locale/uz.js +++ /dev/null @@ -1,58 +0,0 @@ -//! moment.js locale configuration -//! locale : Uzbek [uz] -//! author : Sardor Muminov : https://github.com/muminoff - -;(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' - && typeof require === 'function' ? factory(require('../moment')) : - typeof define === 'function' && define.amd ? define(['../moment'], factory) : - factory(global.moment) -}(this, (function (moment) { 'use strict'; - - -var uz = moment.defineLocale('uz', { - months : 'январ_феврал_март_апрел_май_июн_июл_август_сентябр_октябр_ноябр_декабр'.split('_'), - monthsShort : 'янв_фев_мар_апр_май_июн_июл_авг_сен_окт_ноя_дек'.split('_'), - weekdays : 'Якшанба_Душанба_Сешанба_Чоршанба_Пайшанба_Жума_Шанба'.split('_'), - weekdaysShort : 'Якш_Душ_Сеш_Чор_Пай_Жум_Шан'.split('_'), - weekdaysMin : 'Як_Ду_Се_Чо_Па_Жу_Ша'.split('_'), - longDateFormat : { - LT : 'HH:mm', - LTS : 'HH:mm:ss', - L : 'DD/MM/YYYY', - LL : 'D MMMM YYYY', - LLL : 'D MMMM YYYY HH:mm', - LLLL : 'D MMMM YYYY, dddd HH:mm' - }, - 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, // Monday is the first day of the week. - doy : 7 // The week that contains Jan 4th is the first week of the year. - } -}); - -return uz; - -}))); diff --git a/admin/bower_components/moment/locale/vi.js b/admin/bower_components/moment/locale/vi.js deleted file mode 100644 index 1adacc3..0000000 --- a/admin/bower_components/moment/locale/vi.js +++ /dev/null @@ -1,79 +0,0 @@ -//! moment.js locale configuration -//! locale : Vietnamese [vi] -//! author : Bang Nguyen : https://github.com/bangnk - -;(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' - && typeof require === 'function' ? factory(require('../moment')) : - typeof define === 'function' && define.amd ? define(['../moment'], factory) : - factory(global.moment) -}(this, (function (moment) { 'use strict'; - - -var vi = moment.defineLocale('vi', { - months : 'tháng 1_tháng 2_tháng 3_tháng 4_tháng 5_tháng 6_tháng 7_tháng 8_tháng 9_tháng 10_tháng 11_tháng 12'.split('_'), - monthsShort : 'Th01_Th02_Th03_Th04_Th05_Th06_Th07_Th08_Th09_Th10_Th11_Th12'.split('_'), - monthsParseExact : true, - weekdays : 'chủ nhật_thứ hai_thứ ba_thứ tư_thứ năm_thứ sáu_thứ bảy'.split('_'), - weekdaysShort : 'CN_T2_T3_T4_T5_T6_T7'.split('_'), - weekdaysMin : 'CN_T2_T3_T4_T5_T6_T7'.split('_'), - weekdaysParseExact : true, - meridiemParse: /sa|ch/i, - isPM : function (input) { - return /^ch$/i.test(input); - }, - meridiem : function (hours, minutes, isLower) { - if (hours < 12) { - return isLower ? 'sa' : 'SA'; - } else { - return isLower ? 'ch' : 'CH'; - } - }, - longDateFormat : { - LT : 'HH:mm', - LTS : 'HH:mm:ss', - L : 'DD/MM/YYYY', - LL : 'D MMMM [năm] YYYY', - LLL : 'D MMMM [năm] YYYY HH:mm', - LLLL : 'dddd, D MMMM [năm] YYYY HH:mm', - l : 'DD/M/YYYY', - ll : 'D MMM YYYY', - lll : 'D MMM YYYY HH:mm', - llll : 'ddd, D MMM YYYY HH:mm' - }, - calendar : { - sameDay: '[Hôm nay lúc] LT', - nextDay: '[Ngày mai lúc] LT', - nextWeek: 'dddd [tuần tới lúc] LT', - lastDay: '[Hôm qua lúc] LT', - lastWeek: 'dddd [tuần rồi lúc] LT', - sameElse: 'L' - }, - relativeTime : { - future : '%s tới', - past : '%s trước', - s : 'vài giây', - m : 'một phút', - mm : '%d phút', - h : 'một giờ', - hh : '%d giờ', - d : 'một ngày', - dd : '%d ngày', - M : 'một tháng', - MM : '%d tháng', - y : 'một năm', - yy : '%d năm' - }, - dayOfMonthOrdinalParse: /\d{1,2}/, - ordinal : function (number) { - return number; - }, - week : { - dow : 1, // Monday is the first day of the week. - doy : 4 // The week that contains Jan 4th is the first week of the year. - } -}); - -return vi; - -}))); diff --git a/admin/bower_components/moment/locale/x-pseudo.js b/admin/bower_components/moment/locale/x-pseudo.js deleted file mode 100644 index b906e16..0000000 --- a/admin/bower_components/moment/locale/x-pseudo.js +++ /dev/null @@ -1,68 +0,0 @@ -//! moment.js locale configuration -//! locale : Pseudo [x-pseudo] -//! author : Andrew Hood : https://github.com/andrewhood125 - -;(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' - && typeof require === 'function' ? factory(require('../moment')) : - typeof define === 'function' && define.amd ? define(['../moment'], factory) : - factory(global.moment) -}(this, (function (moment) { 'use strict'; - - -var xPseudo = moment.defineLocale('x-pseudo', { - months : 'J~áñúá~rý_F~ébrú~árý_~Márc~h_Áp~ríl_~Máý_~Júñé~_Júl~ý_Áú~gúst~_Sép~témb~ér_Ó~ctób~ér_Ñ~óvém~bér_~Décé~mbér'.split('_'), - monthsShort : 'J~áñ_~Féb_~Már_~Ápr_~Máý_~Júñ_~Júl_~Áúg_~Sép_~Óct_~Ñóv_~Déc'.split('_'), - monthsParseExact : true, - weekdays : 'S~úñdá~ý_Mó~ñdáý~_Túé~sdáý~_Wéd~ñésd~áý_T~húrs~dáý_~Fríd~áý_S~átúr~dáý'.split('_'), - weekdaysShort : 'S~úñ_~Móñ_~Túé_~Wéd_~Thú_~Frí_~Sát'.split('_'), - weekdaysMin : 'S~ú_Mó~_Tú_~Wé_T~h_Fr~_Sá'.split('_'), - weekdaysParseExact : true, - longDateFormat : { - LT : 'HH:mm', - L : 'DD/MM/YYYY', - LL : 'D MMMM YYYY', - LLL : 'D MMMM YYYY HH:mm', - LLLL : 'dddd, D MMMM YYYY HH:mm' - }, - calendar : { - sameDay : '[T~ódá~ý át] LT', - nextDay : '[T~ómó~rró~w át] LT', - nextWeek : 'dddd [át] LT', - lastDay : '[Ý~ést~érdá~ý át] LT', - lastWeek : '[L~ást] dddd [át] LT', - sameElse : 'L' - }, - relativeTime : { - future : 'í~ñ %s', - past : '%s á~gó', - s : 'á ~féw ~sécó~ñds', - m : 'á ~míñ~úté', - mm : '%d m~íñú~tés', - h : 'á~ñ hó~úr', - hh : '%d h~óúrs', - d : 'á ~dáý', - dd : '%d d~áýs', - M : 'á ~móñ~th', - MM : '%d m~óñt~hs', - y : 'á ~ýéár', - yy : '%d ý~éárs' - }, - dayOfMonthOrdinalParse: /\d{1,2}(th|st|nd|rd)/, - ordinal : function (number) { - var b = number % 10, - output = (~~(number % 100 / 10) === 1) ? 'th' : - (b === 1) ? 'st' : - (b === 2) ? 'nd' : - (b === 3) ? 'rd' : 'th'; - return number + output; - }, - week : { - dow : 1, // Monday is the first day of the week. - doy : 4 // The week that contains Jan 4th is the first week of the year. - } -}); - -return xPseudo; - -}))); diff --git a/admin/bower_components/moment/locale/yo.js b/admin/bower_components/moment/locale/yo.js deleted file mode 100644 index ec28a91..0000000 --- a/admin/bower_components/moment/locale/yo.js +++ /dev/null @@ -1,60 +0,0 @@ -//! moment.js locale configuration -//! locale : Yoruba Nigeria [yo] -//! author : Atolagbe Abisoye : https://github.com/andela-batolagbe - -;(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' - && typeof require === 'function' ? factory(require('../moment')) : - typeof define === 'function' && define.amd ? define(['../moment'], factory) : - factory(global.moment) -}(this, (function (moment) { 'use strict'; - - -var yo = moment.defineLocale('yo', { - months : 'Sẹ́rẹ́_Èrèlè_Ẹrẹ̀nà_Ìgbé_Èbibi_Òkùdu_Agẹmo_Ògún_Owewe_Ọ̀wàrà_Bélú_Ọ̀pẹ̀̀'.split('_'), - monthsShort : 'Sẹ́r_Èrl_Ẹrn_Ìgb_Èbi_Òkù_Agẹ_Ògú_Owe_Ọ̀wà_Bél_Ọ̀pẹ̀̀'.split('_'), - weekdays : 'Àìkú_Ajé_Ìsẹ́gun_Ọjọ́rú_Ọjọ́bọ_Ẹtì_Àbámẹ́ta'.split('_'), - weekdaysShort : 'Àìk_Ajé_Ìsẹ́_Ọjr_Ọjb_Ẹtì_Àbá'.split('_'), - weekdaysMin : 'Àì_Aj_Ìs_Ọr_Ọb_Ẹt_Àb'.split('_'), - longDateFormat : { - LT : 'h:mm A', - LTS : 'h:mm:ss A', - L : 'DD/MM/YYYY', - LL : 'D MMMM YYYY', - LLL : 'D MMMM YYYY h:mm A', - LLLL : 'dddd, D MMMM YYYY h:mm A' - }, - calendar : { - sameDay : '[Ònì ni] LT', - nextDay : '[Ọ̀la ni] LT', - nextWeek : 'dddd [Ọsẹ̀ tón\'bọ] [ni] LT', - lastDay : '[Àna ni] LT', - lastWeek : 'dddd [Ọsẹ̀ tólọ́] [ni] LT', - sameElse : 'L' - }, - relativeTime : { - future : 'ní %s', - past : '%s kọjá', - s : 'ìsẹjú aayá die', - m : 'ìsẹjú kan', - mm : 'ìsẹjú %d', - h : 'wákati kan', - hh : 'wákati %d', - d : 'ọjọ́ kan', - dd : 'ọjọ́ %d', - M : 'osù kan', - MM : 'osù %d', - y : 'ọdún kan', - yy : 'ọdún %d' - }, - dayOfMonthOrdinalParse : /ọjọ́\s\d{1,2}/, - ordinal : 'ọjọ́ %d', - week : { - dow : 1, // Monday is the first day of the week. - doy : 4 // The week that contains Jan 4th is the first week of the year. - } -}); - -return yo; - -}))); diff --git a/admin/bower_components/moment/locale/zh-cn.js b/admin/bower_components/moment/locale/zh-cn.js deleted file mode 100644 index 005e941..0000000 --- a/admin/bower_components/moment/locale/zh-cn.js +++ /dev/null @@ -1,111 +0,0 @@ -//! moment.js locale configuration -//! locale : Chinese (China) [zh-cn] -//! author : suupic : https://github.com/suupic -//! author : Zeno Zeng : https://github.com/zenozeng - -;(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' - && typeof require === 'function' ? factory(require('../moment')) : - typeof define === 'function' && define.amd ? define(['../moment'], factory) : - factory(global.moment) -}(this, (function (moment) { 'use strict'; - - -var zhCn = moment.defineLocale('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 : 'HH:mm', - LTS : 'HH:mm:ss', - L : 'YYYY年MMMD日', - LL : 'YYYY年MMMD日', - LLL : 'YYYY年MMMD日Ah点mm分', - LLLL : 'YYYY年MMMD日ddddAh点mm分', - l : 'YYYY年MMMD日', - ll : 'YYYY年MMMD日', - lll : 'YYYY年MMMD日 HH:mm', - llll : 'YYYY年MMMD日dddd HH:mm' - }, - meridiemParse: /凌晨|早上|上午|中午|下午|晚上/, - meridiemHour: function (hour, meridiem) { - if (hour === 12) { - hour = 0; - } - if (meridiem === '凌晨' || meridiem === '早上' || - meridiem === '上午') { - return hour; - } else if (meridiem === '下午' || meridiem === '晚上') { - return hour + 12; - } else { - // '中午' - return hour >= 11 ? hour : hour + 12; - } - }, - meridiem : function (hour, minute, isLower) { - var hm = hour * 100 + minute; - if (hm < 600) { - return '凌晨'; - } else if (hm < 900) { - return '早上'; - } else if (hm < 1130) { - return '上午'; - } else if (hm < 1230) { - return '中午'; - } else if (hm < 1800) { - return '下午'; - } else { - return '晚上'; - } - }, - calendar : { - sameDay : '[今天]LT', - nextDay : '[明天]LT', - nextWeek : '[下]ddddLT', - lastDay : '[昨天]LT', - lastWeek : '[上]ddddLT', - sameElse : 'L' - }, - dayOfMonthOrdinalParse: /\d{1,2}(日|月|周)/, - ordinal : function (number, period) { - switch (period) { - case 'd': - case 'D': - case 'DDD': - return number + '日'; - case 'M': - return number + '月'; - case 'w': - case 'W': - return number + '周'; - default: - return number; - } - }, - 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 年' - }, - week : { - // GB/T 7408-1994《数据元和交换格式·信息交换·日期和时间表示法》与ISO 8601:1988等效 - dow : 1, // Monday is the first day of the week. - doy : 4 // The week that contains Jan 4th is the first week of the year. - } -}); - -return zhCn; - -}))); diff --git a/admin/bower_components/moment/locale/zh-hk.js b/admin/bower_components/moment/locale/zh-hk.js deleted file mode 100644 index 5ded143..0000000 --- a/admin/bower_components/moment/locale/zh-hk.js +++ /dev/null @@ -1,105 +0,0 @@ -//! moment.js locale configuration -//! locale : Chinese (Hong Kong) [zh-hk] -//! author : Ben : https://github.com/ben-lin -//! author : Chris Lam : https://github.com/hehachris -//! author : Konstantin : https://github.com/skfd - -;(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' - && typeof require === 'function' ? factory(require('../moment')) : - typeof define === 'function' && define.amd ? define(['../moment'], factory) : - factory(global.moment) -}(this, (function (moment) { 'use strict'; - - -var zhHk = moment.defineLocale('zh-hk', { - months : '一月_二月_三月_四月_五月_六月_七月_八月_九月_十月_十一月_十二月'.split('_'), - monthsShort : '1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月'.split('_'), - weekdays : '星期日_星期一_星期二_星期三_星期四_星期五_星期六'.split('_'), - weekdaysShort : '週日_週一_週二_週三_週四_週五_週六'.split('_'), - weekdaysMin : '日_一_二_三_四_五_六'.split('_'), - longDateFormat : { - LT : 'HH:mm', - LTS : 'HH:mm:ss', - L : 'YYYY年MMMD日', - LL : 'YYYY年MMMD日', - LLL : 'YYYY年MMMD日 HH:mm', - LLLL : 'YYYY年MMMD日dddd HH:mm', - l : 'YYYY年MMMD日', - ll : 'YYYY年MMMD日', - lll : 'YYYY年MMMD日 HH:mm', - llll : 'YYYY年MMMD日dddd HH:mm' - }, - meridiemParse: /凌晨|早上|上午|中午|下午|晚上/, - meridiemHour : function (hour, meridiem) { - if (hour === 12) { - hour = 0; - } - if (meridiem === '凌晨' || meridiem === '早上' || meridiem === '上午') { - return hour; - } else if (meridiem === '中午') { - return hour >= 11 ? hour : hour + 12; - } else if (meridiem === '下午' || meridiem === '晚上') { - return hour + 12; - } - }, - meridiem : function (hour, minute, isLower) { - var hm = hour * 100 + minute; - if (hm < 600) { - return '凌晨'; - } else if (hm < 900) { - return '早上'; - } else if (hm < 1130) { - return '上午'; - } else if (hm < 1230) { - return '中午'; - } else if (hm < 1800) { - return '下午'; - } else { - return '晚上'; - } - }, - calendar : { - sameDay : '[今天]LT', - nextDay : '[明天]LT', - nextWeek : '[下]ddddLT', - lastDay : '[昨天]LT', - lastWeek : '[上]ddddLT', - sameElse : 'L' - }, - dayOfMonthOrdinalParse: /\d{1,2}(日|月|週)/, - ordinal : function (number, period) { - switch (period) { - case 'd' : - case 'D' : - case 'DDD' : - return number + '日'; - case 'M' : - return number + '月'; - case 'w' : - case 'W' : - return number + '週'; - default : - return number; - } - }, - 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 年' - } -}); - -return zhHk; - -}))); diff --git a/admin/bower_components/moment/locale/zh-tw.js b/admin/bower_components/moment/locale/zh-tw.js deleted file mode 100644 index 50a6b6a..0000000 --- a/admin/bower_components/moment/locale/zh-tw.js +++ /dev/null @@ -1,104 +0,0 @@ -//! moment.js locale configuration -//! locale : Chinese (Taiwan) [zh-tw] -//! author : Ben : https://github.com/ben-lin -//! author : Chris Lam : https://github.com/hehachris - -;(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' - && typeof require === 'function' ? factory(require('../moment')) : - typeof define === 'function' && define.amd ? define(['../moment'], factory) : - factory(global.moment) -}(this, (function (moment) { 'use strict'; - - -var zhTw = moment.defineLocale('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 : 'HH:mm', - LTS : 'HH:mm:ss', - L : 'YYYY年MMMD日', - LL : 'YYYY年MMMD日', - LLL : 'YYYY年MMMD日 HH:mm', - LLLL : 'YYYY年MMMD日dddd HH:mm', - l : 'YYYY年MMMD日', - ll : 'YYYY年MMMD日', - lll : 'YYYY年MMMD日 HH:mm', - llll : 'YYYY年MMMD日dddd HH:mm' - }, - meridiemParse: /凌晨|早上|上午|中午|下午|晚上/, - meridiemHour : function (hour, meridiem) { - if (hour === 12) { - hour = 0; - } - if (meridiem === '凌晨' || meridiem === '早上' || meridiem === '上午') { - return hour; - } else if (meridiem === '中午') { - return hour >= 11 ? hour : hour + 12; - } else if (meridiem === '下午' || meridiem === '晚上') { - return hour + 12; - } - }, - meridiem : function (hour, minute, isLower) { - var hm = hour * 100 + minute; - if (hm < 600) { - return '凌晨'; - } else if (hm < 900) { - return '早上'; - } else if (hm < 1130) { - return '上午'; - } else if (hm < 1230) { - return '中午'; - } else if (hm < 1800) { - return '下午'; - } else { - return '晚上'; - } - }, - calendar : { - sameDay : '[今天]LT', - nextDay : '[明天]LT', - nextWeek : '[下]ddddLT', - lastDay : '[昨天]LT', - lastWeek : '[上]ddddLT', - sameElse : 'L' - }, - dayOfMonthOrdinalParse: /\d{1,2}(日|月|週)/, - ordinal : function (number, period) { - switch (period) { - case 'd' : - case 'D' : - case 'DDD' : - return number + '日'; - case 'M' : - return number + '月'; - case 'w' : - case 'W' : - return number + '週'; - default : - return number; - } - }, - 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 年' - } -}); - -return zhTw; - -}))); diff --git a/admin/bower_components/moment/min/locales.js b/admin/bower_components/moment/min/locales.js deleted file mode 100644 index 583ab58..0000000 --- a/admin/bower_components/moment/min/locales.js +++ /dev/null @@ -1,9252 +0,0 @@ -;(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' - && typeof require === 'function' ? factory(require('../moment')) : - typeof define === 'function' && define.amd ? define(['../moment'], factory) : - factory(global.moment) -}(this, (function (moment) { 'use strict'; - -//! moment.js locale configuration -//! locale : Afrikaans [af] -//! author : Werner Mollentze : https://github.com/wernerm - -moment.defineLocale('af', { - months : 'Januarie_Februarie_Maart_April_Mei_Junie_Julie_Augustus_September_Oktober_November_Desember'.split('_'), - monthsShort : 'Jan_Feb_Mrt_Apr_Mei_Jun_Jul_Aug_Sep_Okt_Nov_Des'.split('_'), - weekdays : 'Sondag_Maandag_Dinsdag_Woensdag_Donderdag_Vrydag_Saterdag'.split('_'), - weekdaysShort : 'Son_Maa_Din_Woe_Don_Vry_Sat'.split('_'), - weekdaysMin : 'So_Ma_Di_Wo_Do_Vr_Sa'.split('_'), - meridiemParse: /vm|nm/i, - isPM : function (input) { - return /^nm$/i.test(input); - }, - meridiem : function (hours, minutes, isLower) { - if (hours < 12) { - return isLower ? 'vm' : 'VM'; - } else { - return isLower ? 'nm' : 'NM'; - } - }, - longDateFormat : { - LT : 'HH:mm', - LTS : 'HH:mm:ss', - L : 'DD/MM/YYYY', - LL : 'D MMMM YYYY', - LLL : 'D MMMM YYYY HH:mm', - LLLL : 'dddd, D MMMM YYYY HH:mm' - }, - calendar : { - sameDay : '[Vandag om] LT', - nextDay : '[Môre om] LT', - nextWeek : 'dddd [om] LT', - lastDay : '[Gister om] LT', - lastWeek : '[Laas] dddd [om] LT', - sameElse : 'L' - }, - relativeTime : { - future : 'oor %s', - past : '%s gelede', - s : '\'n paar sekondes', - m : '\'n minuut', - mm : '%d minute', - h : '\'n uur', - hh : '%d ure', - d : '\'n dag', - dd : '%d dae', - M : '\'n maand', - MM : '%d maande', - y : '\'n jaar', - yy : '%d jaar' - }, - dayOfMonthOrdinalParse: /\d{1,2}(ste|de)/, - ordinal : function (number) { - return number + ((number === 1 || number === 8 || number >= 20) ? 'ste' : 'de'); // Thanks to Joris Röling : https://github.com/jjupiter - }, - week : { - dow : 1, // Maandag is die eerste dag van die week. - doy : 4 // Die week wat die 4de Januarie bevat is die eerste week van die jaar. - } -}); - -//! moment.js locale configuration -//! locale : Arabic (Algeria) [ar-dz] -//! author : Noureddine LOUAHEDJ : https://github.com/noureddineme - -moment.defineLocale('ar-dz', { - months : 'جانفي_فيفري_مارس_أفريل_ماي_جوان_جويلية_أوت_سبتمبر_أكتوبر_نوفمبر_ديسمبر'.split('_'), - monthsShort : 'جانفي_فيفري_مارس_أفريل_ماي_جوان_جويلية_أوت_سبتمبر_أكتوبر_نوفمبر_ديسمبر'.split('_'), - weekdays : 'الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'), - weekdaysShort : 'احد_اثنين_ثلاثاء_اربعاء_خميس_جمعة_سبت'.split('_'), - weekdaysMin : 'أح_إث_ثلا_أر_خم_جم_سب'.split('_'), - weekdaysParseExact : true, - longDateFormat : { - LT : 'HH:mm', - LTS : 'HH:mm:ss', - L : 'DD/MM/YYYY', - LL : 'D MMMM YYYY', - LLL : 'D MMMM YYYY HH:mm', - LLLL : 'dddd D MMMM YYYY HH:mm' - }, - 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 : 0, // Sunday is the first day of the week. - doy : 4 // The week that contains Jan 1st is the first week of the year. - } -}); - -//! moment.js locale configuration -//! locale : Arabic (Kuwait) [ar-kw] -//! author : Nusret Parlak: https://github.com/nusretparlak - -moment.defineLocale('ar-kw', { - months : 'يناير_فبراير_مارس_أبريل_ماي_يونيو_يوليوز_غشت_شتنبر_أكتوبر_نونبر_دجنبر'.split('_'), - monthsShort : 'يناير_فبراير_مارس_أبريل_ماي_يونيو_يوليوز_غشت_شتنبر_أكتوبر_نونبر_دجنبر'.split('_'), - weekdays : 'الأحد_الإتنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'), - weekdaysShort : 'احد_اتنين_ثلاثاء_اربعاء_خميس_جمعة_سبت'.split('_'), - weekdaysMin : 'ح_ن_ث_ر_خ_ج_س'.split('_'), - weekdaysParseExact : true, - longDateFormat : { - LT : 'HH:mm', - LTS : 'HH:mm:ss', - L : 'DD/MM/YYYY', - LL : 'D MMMM YYYY', - LLL : 'D MMMM YYYY HH:mm', - LLLL : 'dddd D MMMM YYYY HH:mm' - }, - 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 : 0, // Sunday is the first day of the week. - doy : 12 // The week that contains Jan 1st is the first week of the year. - } -}); - -//! moment.js locale configuration -//! locale : Arabic (Lybia) [ar-ly] -//! author : Ali Hmer: https://github.com/kikoanis - -var symbolMap = { - '1': '1', - '2': '2', - '3': '3', - '4': '4', - '5': '5', - '6': '6', - '7': '7', - '8': '8', - '9': '9', - '0': '0' -}; -var pluralForm = function (n) { - return n === 0 ? 0 : n === 1 ? 1 : n === 2 ? 2 : n % 100 >= 3 && n % 100 <= 10 ? 3 : n % 100 >= 11 ? 4 : 5; -}; -var plurals = { - s : ['أقل من ثانية', 'ثانية واحدة', ['ثانيتان', 'ثانيتين'], '%d ثوان', '%d ثانية', '%d ثانية'], - m : ['أقل من دقيقة', 'دقيقة واحدة', ['دقيقتان', 'دقيقتين'], '%d دقائق', '%d دقيقة', '%d دقيقة'], - h : ['أقل من ساعة', 'ساعة واحدة', ['ساعتان', 'ساعتين'], '%d ساعات', '%d ساعة', '%d ساعة'], - d : ['أقل من يوم', 'يوم واحد', ['يومان', 'يومين'], '%d أيام', '%d يومًا', '%d يوم'], - M : ['أقل من شهر', 'شهر واحد', ['شهران', 'شهرين'], '%d أشهر', '%d شهرا', '%d شهر'], - y : ['أقل من عام', 'عام واحد', ['عامان', 'عامين'], '%d أعوام', '%d عامًا', '%d عام'] -}; -var pluralize = function (u) { - return function (number, withoutSuffix, string, isFuture) { - var f = pluralForm(number), - str = plurals[u][pluralForm(number)]; - if (f === 2) { - str = str[withoutSuffix ? 0 : 1]; - } - return str.replace(/%d/i, number); - }; -}; -var months = [ - 'يناير', - 'فبراير', - 'مارس', - 'أبريل', - 'مايو', - 'يونيو', - 'يوليو', - 'أغسطس', - 'سبتمبر', - 'أكتوبر', - 'نوفمبر', - 'ديسمبر' -]; - -moment.defineLocale('ar-ly', { - months : months, - monthsShort : months, - weekdays : 'الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'), - weekdaysShort : 'أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت'.split('_'), - weekdaysMin : 'ح_ن_ث_ر_خ_ج_س'.split('_'), - weekdaysParseExact : true, - longDateFormat : { - LT : 'HH:mm', - LTS : 'HH:mm:ss', - L : 'D/\u200FM/\u200FYYYY', - LL : 'D MMMM YYYY', - LLL : 'D MMMM YYYY HH:mm', - LLLL : 'dddd D MMMM YYYY HH:mm' - }, - meridiemParse: /ص|م/, - isPM : function (input) { - return 'م' === input; - }, - meridiem : function (hour, minute, isLower) { - if (hour < 12) { - return 'ص'; - } else { - return 'م'; - } - }, - calendar : { - sameDay: '[اليوم عند الساعة] LT', - nextDay: '[غدًا عند الساعة] LT', - nextWeek: 'dddd [عند الساعة] LT', - lastDay: '[أمس عند الساعة] LT', - lastWeek: 'dddd [عند الساعة] LT', - sameElse: 'L' - }, - relativeTime : { - future : 'بعد %s', - past : 'منذ %s', - s : pluralize('s'), - m : pluralize('m'), - mm : pluralize('m'), - h : pluralize('h'), - hh : pluralize('h'), - d : pluralize('d'), - dd : pluralize('d'), - M : pluralize('M'), - MM : pluralize('M'), - y : pluralize('y'), - yy : pluralize('y') - }, - preparse: function (string) { - return string.replace(/\u200f/g, '').replace(/،/g, ','); - }, - postformat: function (string) { - return string.replace(/\d/g, function (match) { - return symbolMap[match]; - }).replace(/,/g, '،'); - }, - week : { - dow : 6, // Saturday is the first day of the week. - doy : 12 // The week that contains Jan 1st is the first week of the year. - } -}); - -//! moment.js locale configuration -//! locale : Arabic (Morocco) [ar-ma] -//! author : ElFadili Yassine : https://github.com/ElFadiliY -//! author : Abdel Said : https://github.com/abdelsaid - -moment.defineLocale('ar-ma', { - months : 'يناير_فبراير_مارس_أبريل_ماي_يونيو_يوليوز_غشت_شتنبر_أكتوبر_نونبر_دجنبر'.split('_'), - monthsShort : 'يناير_فبراير_مارس_أبريل_ماي_يونيو_يوليوز_غشت_شتنبر_أكتوبر_نونبر_دجنبر'.split('_'), - weekdays : 'الأحد_الإتنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'), - weekdaysShort : 'احد_اتنين_ثلاثاء_اربعاء_خميس_جمعة_سبت'.split('_'), - weekdaysMin : 'ح_ن_ث_ر_خ_ج_س'.split('_'), - weekdaysParseExact : true, - longDateFormat : { - LT : 'HH:mm', - LTS : 'HH:mm:ss', - L : 'DD/MM/YYYY', - LL : 'D MMMM YYYY', - LLL : 'D MMMM YYYY HH:mm', - LLLL : 'dddd D MMMM YYYY HH:mm' - }, - 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, // Saturday is the first day of the week. - doy : 12 // The week that contains Jan 1st is the first week of the year. - } -}); - -//! moment.js locale configuration -//! locale : Arabic (Saudi Arabia) [ar-sa] -//! author : Suhail Alkowaileet : https://github.com/xsoh - -var symbolMap$1 = { - '1': '١', - '2': '٢', - '3': '٣', - '4': '٤', - '5': '٥', - '6': '٦', - '7': '٧', - '8': '٨', - '9': '٩', - '0': '٠' -}; -var numberMap = { - '١': '1', - '٢': '2', - '٣': '3', - '٤': '4', - '٥': '5', - '٦': '6', - '٧': '7', - '٨': '8', - '٩': '9', - '٠': '0' -}; - -moment.defineLocale('ar-sa', { - months : 'يناير_فبراير_مارس_أبريل_مايو_يونيو_يوليو_أغسطس_سبتمبر_أكتوبر_نوفمبر_ديسمبر'.split('_'), - monthsShort : 'يناير_فبراير_مارس_أبريل_مايو_يونيو_يوليو_أغسطس_سبتمبر_أكتوبر_نوفمبر_ديسمبر'.split('_'), - weekdays : 'الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'), - weekdaysShort : 'أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت'.split('_'), - weekdaysMin : 'ح_ن_ث_ر_خ_ج_س'.split('_'), - weekdaysParseExact : true, - longDateFormat : { - LT : 'HH:mm', - LTS : 'HH:mm:ss', - L : 'DD/MM/YYYY', - LL : 'D MMMM YYYY', - LLL : 'D MMMM YYYY HH:mm', - LLLL : 'dddd D MMMM YYYY HH:mm' - }, - meridiemParse: /ص|م/, - isPM : function (input) { - return 'م' === input; - }, - meridiem : function (hour, minute, isLower) { - if (hour < 12) { - return 'ص'; - } else { - return 'م'; - } - }, - 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 (string) { - return string.replace(/[١٢٣٤٥٦٧٨٩٠]/g, function (match) { - return numberMap[match]; - }).replace(/،/g, ','); - }, - postformat: function (string) { - return string.replace(/\d/g, function (match) { - return symbolMap$1[match]; - }).replace(/,/g, '،'); - }, - week : { - dow : 0, // Sunday is the first day of the week. - doy : 6 // The week that contains Jan 1st is the first week of the year. - } -}); - -//! moment.js locale configuration -//! locale : Arabic (Tunisia) [ar-tn] -//! author : Nader Toukabri : https://github.com/naderio - -moment.defineLocale('ar-tn', { - months: 'جانفي_فيفري_مارس_أفريل_ماي_جوان_جويلية_أوت_سبتمبر_أكتوبر_نوفمبر_ديسمبر'.split('_'), - monthsShort: 'جانفي_فيفري_مارس_أفريل_ماي_جوان_جويلية_أوت_سبتمبر_أكتوبر_نوفمبر_ديسمبر'.split('_'), - weekdays: 'الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'), - weekdaysShort: 'أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت'.split('_'), - weekdaysMin: 'ح_ن_ث_ر_خ_ج_س'.split('_'), - weekdaysParseExact : true, - longDateFormat: { - LT: 'HH:mm', - LTS: 'HH:mm:ss', - L: 'DD/MM/YYYY', - LL: 'D MMMM YYYY', - LLL: 'D MMMM YYYY HH:mm', - LLLL: 'dddd D MMMM YYYY HH:mm' - }, - 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, // Monday is the first day of the week. - doy: 4 // The week that contains Jan 4th is the first week of the year. - } -}); - -//! moment.js locale configuration -//! locale : Arabic [ar] -//! author : Abdel Said: https://github.com/abdelsaid -//! author : Ahmed Elkhatib -//! author : forabi https://github.com/forabi - -var symbolMap$2 = { - '1': '١', - '2': '٢', - '3': '٣', - '4': '٤', - '5': '٥', - '6': '٦', - '7': '٧', - '8': '٨', - '9': '٩', - '0': '٠' -}; -var numberMap$1 = { - '١': '1', - '٢': '2', - '٣': '3', - '٤': '4', - '٥': '5', - '٦': '6', - '٧': '7', - '٨': '8', - '٩': '9', - '٠': '0' -}; -var pluralForm$1 = function (n) { - return n === 0 ? 0 : n === 1 ? 1 : n === 2 ? 2 : n % 100 >= 3 && n % 100 <= 10 ? 3 : n % 100 >= 11 ? 4 : 5; -}; -var plurals$1 = { - s : ['أقل من ثانية', 'ثانية واحدة', ['ثانيتان', 'ثانيتين'], '%d ثوان', '%d ثانية', '%d ثانية'], - m : ['أقل من دقيقة', 'دقيقة واحدة', ['دقيقتان', 'دقيقتين'], '%d دقائق', '%d دقيقة', '%d دقيقة'], - h : ['أقل من ساعة', 'ساعة واحدة', ['ساعتان', 'ساعتين'], '%d ساعات', '%d ساعة', '%d ساعة'], - d : ['أقل من يوم', 'يوم واحد', ['يومان', 'يومين'], '%d أيام', '%d يومًا', '%d يوم'], - M : ['أقل من شهر', 'شهر واحد', ['شهران', 'شهرين'], '%d أشهر', '%d شهرا', '%d شهر'], - y : ['أقل من عام', 'عام واحد', ['عامان', 'عامين'], '%d أعوام', '%d عامًا', '%d عام'] -}; -var pluralize$1 = function (u) { - return function (number, withoutSuffix, string, isFuture) { - var f = pluralForm$1(number), - str = plurals$1[u][pluralForm$1(number)]; - if (f === 2) { - str = str[withoutSuffix ? 0 : 1]; - } - return str.replace(/%d/i, number); - }; -}; -var months$1 = [ - 'كانون الثاني يناير', - 'شباط فبراير', - 'آذار مارس', - 'نيسان أبريل', - 'أيار مايو', - 'حزيران يونيو', - 'تموز يوليو', - 'آب أغسطس', - 'أيلول سبتمبر', - 'تشرين الأول أكتوبر', - 'تشرين الثاني نوفمبر', - 'كانون الأول ديسمبر' -]; - -moment.defineLocale('ar', { - months : months$1, - monthsShort : months$1, - weekdays : 'الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'), - weekdaysShort : 'أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت'.split('_'), - weekdaysMin : 'ح_ن_ث_ر_خ_ج_س'.split('_'), - weekdaysParseExact : true, - longDateFormat : { - LT : 'HH:mm', - LTS : 'HH:mm:ss', - L : 'D/\u200FM/\u200FYYYY', - LL : 'D MMMM YYYY', - LLL : 'D MMMM YYYY HH:mm', - LLLL : 'dddd D MMMM YYYY HH:mm' - }, - meridiemParse: /ص|م/, - isPM : function (input) { - return 'م' === input; - }, - meridiem : function (hour, minute, isLower) { - if (hour < 12) { - return 'ص'; - } else { - return 'م'; - } - }, - calendar : { - sameDay: '[اليوم عند الساعة] LT', - nextDay: '[غدًا عند الساعة] LT', - nextWeek: 'dddd [عند الساعة] LT', - lastDay: '[أمس عند الساعة] LT', - lastWeek: 'dddd [عند الساعة] LT', - sameElse: 'L' - }, - relativeTime : { - future : 'بعد %s', - past : 'منذ %s', - s : pluralize$1('s'), - m : pluralize$1('m'), - mm : pluralize$1('m'), - h : pluralize$1('h'), - hh : pluralize$1('h'), - d : pluralize$1('d'), - dd : pluralize$1('d'), - M : pluralize$1('M'), - MM : pluralize$1('M'), - y : pluralize$1('y'), - yy : pluralize$1('y') - }, - preparse: function (string) { - return string.replace(/\u200f/g, '').replace(/[١٢٣٤٥٦٧٨٩٠]/g, function (match) { - return numberMap$1[match]; - }).replace(/،/g, ','); - }, - postformat: function (string) { - return string.replace(/\d/g, function (match) { - return symbolMap$2[match]; - }).replace(/,/g, '،'); - }, - week : { - dow : 6, // Saturday is the first day of the week. - doy : 12 // The week that contains Jan 1st is the first week of the year. - } -}); - -//! moment.js locale configuration -//! locale : Azerbaijani [az] -//! author : topchiyev : https://github.com/topchiyev - -var suffixes = { - 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ı' -}; - -moment.defineLocale('az', { - months : 'yanvar_fevral_mart_aprel_may_iyun_iyul_avqust_sentyabr_oktyabr_noyabr_dekabr'.split('_'), - monthsShort : 'yan_fev_mar_apr_may_iyn_iyl_avq_sen_okt_noy_dek'.split('_'), - weekdays : 'Bazar_Bazar ertəsi_Çərşənbə axşamı_Çərşənbə_Cümə axşamı_Cümə_Şənbə'.split('_'), - weekdaysShort : 'Baz_BzE_ÇAx_Çər_CAx_Cüm_Şən'.split('_'), - weekdaysMin : 'Bz_BE_ÇA_Çə_CA_Cü_Şə'.split('_'), - weekdaysParseExact : true, - longDateFormat : { - LT : 'HH:mm', - LTS : 'HH:mm:ss', - L : 'DD.MM.YYYY', - LL : 'D MMMM YYYY', - LLL : 'D MMMM YYYY HH:mm', - LLLL : 'dddd, D MMMM YYYY HH:mm' - }, - calendar : { - sameDay : '[bugün saat] LT', - nextDay : '[sabah saat] LT', - nextWeek : '[gələn həftə] dddd [saat] LT', - lastDay : '[dünən] LT', - lastWeek : '[keçən həftə] dddd [saat] LT', - sameElse : 'L' - }, - relativeTime : { - future : '%s sonra', - past : '%s əvvəl', - s : 'birneçə saniyyə', - m : 'bir dəqiqə', - mm : '%d dəqiqə', - h : 'bir saat', - hh : '%d saat', - d : 'bir gün', - dd : '%d gün', - M : 'bir ay', - MM : '%d ay', - y : 'bir il', - yy : '%d il' - }, - meridiemParse: /gecə|səhər|gündüz|axşam/, - isPM : function (input) { - return /^(gündüz|axşam)$/.test(input); - }, - meridiem : function (hour, minute, isLower) { - if (hour < 4) { - return 'gecə'; - } else if (hour < 12) { - return 'səhər'; - } else if (hour < 17) { - return 'gündüz'; - } else { - return 'axşam'; - } - }, - dayOfMonthOrdinalParse: /\d{1,2}-(ıncı|inci|nci|üncü|ncı|uncu)/, - ordinal : function (number) { - if (number === 0) { // special case for zero - return number + '-ıncı'; - } - var a = number % 10, - b = number % 100 - a, - c = number >= 100 ? 100 : null; - return number + (suffixes[a] || suffixes[b] || suffixes[c]); - }, - week : { - dow : 1, // Monday is the first day of the week. - doy : 7 // The week that contains Jan 1st is the first week of the year. - } -}); - -//! moment.js locale configuration -//! locale : Belarusian [be] -//! author : Dmitry Demidov : https://github.com/demidov91 -//! author: Praleska: http://praleska.pro/ -//! Author : Menelion Elensúle : https://github.com/Oire - -function plural(word, num) { - var forms = word.split('_'); - return num % 10 === 1 && num % 100 !== 11 ? forms[0] : (num % 10 >= 2 && num % 10 <= 4 && (num % 100 < 10 || num % 100 >= 20) ? forms[1] : forms[2]); -} -function relativeTimeWithPlural(number, withoutSuffix, key) { - var format = { - 'mm': withoutSuffix ? 'хвіліна_хвіліны_хвілін' : 'хвіліну_хвіліны_хвілін', - 'hh': withoutSuffix ? 'гадзіна_гадзіны_гадзін' : 'гадзіну_гадзіны_гадзін', - 'dd': 'дзень_дні_дзён', - 'MM': 'месяц_месяцы_месяцаў', - 'yy': 'год_гады_гадоў' - }; - if (key === 'm') { - return withoutSuffix ? 'хвіліна' : 'хвіліну'; - } - else if (key === 'h') { - return withoutSuffix ? 'гадзіна' : 'гадзіну'; - } - else { - return number + ' ' + plural(format[key], +number); - } -} - -moment.defineLocale('be', { - months : { - format: 'студзеня_лютага_сакавіка_красавіка_траўня_чэрвеня_ліпеня_жніўня_верасня_кастрычніка_лістапада_снежня'.split('_'), - standalone: 'студзень_люты_сакавік_красавік_травень_чэрвень_ліпень_жнівень_верасень_кастрычнік_лістапад_снежань'.split('_') - }, - monthsShort : 'студ_лют_сак_крас_трав_чэрв_ліп_жнів_вер_каст_ліст_снеж'.split('_'), - weekdays : { - format: 'нядзелю_панядзелак_аўторак_сераду_чацвер_пятніцу_суботу'.split('_'), - standalone: 'нядзеля_панядзелак_аўторак_серада_чацвер_пятніца_субота'.split('_'), - isFormat: /\[ ?[Вв] ?(?:мінулую|наступную)? ?\] ?dddd/ - }, - weekdaysShort : 'нд_пн_ат_ср_чц_пт_сб'.split('_'), - weekdaysMin : 'нд_пн_ат_ср_чц_пт_сб'.split('_'), - longDateFormat : { - LT : 'HH:mm', - LTS : 'HH:mm:ss', - L : 'DD.MM.YYYY', - LL : 'D MMMM YYYY г.', - LLL : 'D MMMM YYYY г., HH:mm', - LLLL : 'dddd, D MMMM YYYY г., HH:mm' - }, - calendar : { - sameDay: '[Сёння ў] LT', - nextDay: '[Заўтра ў] LT', - lastDay: '[Учора ў] LT', - nextWeek: function () { - return '[У] dddd [ў] LT'; - }, - lastWeek: function () { - switch (this.day()) { - case 0: - case 3: - case 5: - case 6: - return '[У мінулую] dddd [ў] LT'; - case 1: - case 2: - case 4: - return '[У мінулы] dddd [ў] LT'; - } - }, - sameElse: 'L' - }, - relativeTime : { - future : 'праз %s', - past : '%s таму', - s : 'некалькі секунд', - m : relativeTimeWithPlural, - mm : relativeTimeWithPlural, - h : relativeTimeWithPlural, - hh : relativeTimeWithPlural, - d : 'дзень', - dd : relativeTimeWithPlural, - M : 'месяц', - MM : relativeTimeWithPlural, - y : 'год', - yy : relativeTimeWithPlural - }, - meridiemParse: /ночы|раніцы|дня|вечара/, - isPM : function (input) { - return /^(дня|вечара)$/.test(input); - }, - meridiem : function (hour, minute, isLower) { - if (hour < 4) { - return 'ночы'; - } else if (hour < 12) { - return 'раніцы'; - } else if (hour < 17) { - return 'дня'; - } else { - return 'вечара'; - } - }, - dayOfMonthOrdinalParse: /\d{1,2}-(і|ы|га)/, - ordinal: function (number, period) { - switch (period) { - case 'M': - case 'd': - case 'DDD': - case 'w': - case 'W': - return (number % 10 === 2 || number % 10 === 3) && (number % 100 !== 12 && number % 100 !== 13) ? number + '-і' : number + '-ы'; - case 'D': - return number + '-га'; - default: - return number; - } - }, - week : { - dow : 1, // Monday is the first day of the week. - doy : 7 // The week that contains Jan 1st is the first week of the year. - } -}); - -//! moment.js locale configuration -//! locale : Bulgarian [bg] -//! author : Krasen Borisov : https://github.com/kraz - -moment.defineLocale('bg', { - months : 'януари_февруари_март_април_май_юни_юли_август_септември_октомври_ноември_декември'.split('_'), - monthsShort : 'янр_фев_мар_апр_май_юни_юли_авг_сеп_окт_ное_дек'.split('_'), - weekdays : 'неделя_понеделник_вторник_сряда_четвъртък_петък_събота'.split('_'), - weekdaysShort : 'нед_пон_вто_сря_чет_пет_съб'.split('_'), - weekdaysMin : 'нд_пн_вт_ср_чт_пт_сб'.split('_'), - longDateFormat : { - LT : 'H:mm', - LTS : 'H:mm:ss', - L : 'D.MM.YYYY', - LL : 'D MMMM YYYY', - LLL : 'D MMMM YYYY H:mm', - LLLL : 'dddd, D MMMM YYYY H:mm' - }, - 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 години' - }, - dayOfMonthOrdinalParse: /\d{1,2}-(ев|ен|ти|ви|ри|ми)/, - ordinal : function (number) { - var lastDigit = number % 10, - last2Digits = number % 100; - if (number === 0) { - return number + '-ев'; - } else if (last2Digits === 0) { - return number + '-ен'; - } else if (last2Digits > 10 && last2Digits < 20) { - return number + '-ти'; - } else if (lastDigit === 1) { - return number + '-ви'; - } else if (lastDigit === 2) { - return number + '-ри'; - } else if (lastDigit === 7 || lastDigit === 8) { - return number + '-ми'; - } else { - return number + '-ти'; - } - }, - week : { - dow : 1, // Monday is the first day of the week. - doy : 7 // The week that contains Jan 1st is the first week of the year. - } -}); - -//! moment.js locale configuration -//! locale : Bengali [bn] -//! author : Kaushik Gandhi : https://github.com/kaushikgandhi - -var symbolMap$3 = { - '1': '১', - '2': '২', - '3': '৩', - '4': '৪', - '5': '৫', - '6': '৬', - '7': '৭', - '8': '৮', - '9': '৯', - '0': '০' -}; -var numberMap$2 = { - '১': '1', - '২': '2', - '৩': '3', - '৪': '4', - '৫': '5', - '৬': '6', - '৭': '7', - '৮': '8', - '৯': '9', - '০': '0' -}; - -moment.defineLocale('bn', { - months : 'জানুয়ারী_ফেব্রুয়ারি_মার্চ_এপ্রিল_মে_জুন_জুলাই_আগস্ট_সেপ্টেম্বর_অক্টোবর_নভেম্বর_ডিসেম্বর'.split('_'), - monthsShort : 'জানু_ফেব_মার্চ_এপ্র_মে_জুন_জুল_আগ_সেপ্ট_অক্টো_নভে_ডিসে'.split('_'), - weekdays : 'রবিবার_সোমবার_মঙ্গলবার_বুধবার_বৃহস্পতিবার_শুক্রবার_শনিবার'.split('_'), - weekdaysShort : 'রবি_সোম_মঙ্গল_বুধ_বৃহস্পতি_শুক্র_শনি'.split('_'), - weekdaysMin : 'রবি_সোম_মঙ্গ_বুধ_বৃহঃ_শুক্র_শনি'.split('_'), - longDateFormat : { - LT : 'A h:mm সময়', - LTS : 'A h:mm:ss সময়', - L : 'DD/MM/YYYY', - LL : 'D MMMM YYYY', - LLL : 'D MMMM YYYY, A h:mm সময়', - LLLL : 'dddd, D MMMM YYYY, A h:mm সময়' - }, - 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 (string) { - return string.replace(/[১২৩৪৫৬৭৮৯০]/g, function (match) { - return numberMap$2[match]; - }); - }, - postformat: function (string) { - return string.replace(/\d/g, function (match) { - return symbolMap$3[match]; - }); - }, - meridiemParse: /রাত|সকাল|দুপুর|বিকাল|রাত/, - meridiemHour : function (hour, meridiem) { - if (hour === 12) { - hour = 0; - } - if ((meridiem === 'রাত' && hour >= 4) || - (meridiem === 'দুপুর' && hour < 5) || - meridiem === 'বিকাল') { - return hour + 12; - } else { - return hour; - } - }, - meridiem : function (hour, minute, isLower) { - if (hour < 4) { - return 'রাত'; - } else if (hour < 10) { - return 'সকাল'; - } else if (hour < 17) { - return 'দুপুর'; - } else if (hour < 20) { - return 'বিকাল'; - } else { - return 'রাত'; - } - }, - week : { - dow : 0, // Sunday is the first day of the week. - doy : 6 // The week that contains Jan 1st is the first week of the year. - } -}); - -//! moment.js locale configuration -//! locale : Tibetan [bo] -//! author : Thupten N. Chakrishar : https://github.com/vajradog - -var symbolMap$4 = { - '1': '༡', - '2': '༢', - '3': '༣', - '4': '༤', - '5': '༥', - '6': '༦', - '7': '༧', - '8': '༨', - '9': '༩', - '0': '༠' -}; -var numberMap$3 = { - '༡': '1', - '༢': '2', - '༣': '3', - '༤': '4', - '༥': '5', - '༦': '6', - '༧': '7', - '༨': '8', - '༩': '9', - '༠': '0' -}; - -moment.defineLocale('bo', { - months : 'ཟླ་བ་དང་པོ_ཟླ་བ་གཉིས་པ_ཟླ་བ་གསུམ་པ_ཟླ་བ་བཞི་པ_ཟླ་བ་ལྔ་པ_ཟླ་བ་དྲུག་པ_ཟླ་བ་བདུན་པ_ཟླ་བ་བརྒྱད་པ_ཟླ་བ་དགུ་པ_ཟླ་བ་བཅུ་པ_ཟླ་བ་བཅུ་གཅིག་པ_ཟླ་བ་བཅུ་གཉིས་པ'.split('_'), - monthsShort : 'ཟླ་བ་དང་པོ_ཟླ་བ་གཉིས་པ_ཟླ་བ་གསུམ་པ_ཟླ་བ་བཞི་པ_ཟླ་བ་ལྔ་པ_ཟླ་བ་དྲུག་པ_ཟླ་བ་བདུན་པ_ཟླ་བ་བརྒྱད་པ_ཟླ་བ་དགུ་པ_ཟླ་བ་བཅུ་པ_ཟླ་བ་བཅུ་གཅིག་པ_ཟླ་བ་བཅུ་གཉིས་པ'.split('_'), - weekdays : 'གཟའ་ཉི་མ་_གཟའ་ཟླ་བ་_གཟའ་མིག་དམར་_གཟའ་ལྷག་པ་_གཟའ་ཕུར་བུ_གཟའ་པ་སངས་_གཟའ་སྤེན་པ་'.split('_'), - weekdaysShort : 'ཉི་མ་_ཟླ་བ་_མིག་དམར་_ལྷག་པ་_ཕུར་བུ_པ་སངས་_སྤེན་པ་'.split('_'), - weekdaysMin : 'ཉི་མ་_ཟླ་བ་_མིག་དམར་_ལྷག་པ་_ཕུར་བུ_པ་སངས་_སྤེན་པ་'.split('_'), - longDateFormat : { - LT : 'A h:mm', - LTS : 'A h:mm:ss', - L : 'DD/MM/YYYY', - LL : 'D MMMM YYYY', - LLL : 'D MMMM YYYY, A h:mm', - LLLL : 'dddd, D MMMM YYYY, A h:mm' - }, - calendar : { - sameDay : '[དི་རིང] LT', - nextDay : '[སང་ཉིན] LT', - nextWeek : '[བདུན་ཕྲག་རྗེས་མ], 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 (string) { - return string.replace(/[༡༢༣༤༥༦༧༨༩༠]/g, function (match) { - return numberMap$3[match]; - }); - }, - postformat: function (string) { - return string.replace(/\d/g, function (match) { - return symbolMap$4[match]; - }); - }, - meridiemParse: /མཚན་མོ|ཞོགས་ཀས|ཉིན་གུང|དགོང་དག|མཚན་མོ/, - meridiemHour : function (hour, meridiem) { - if (hour === 12) { - hour = 0; - } - if ((meridiem === 'མཚན་མོ' && hour >= 4) || - (meridiem === 'ཉིན་གུང' && hour < 5) || - meridiem === 'དགོང་དག') { - return hour + 12; - } else { - return hour; - } - }, - meridiem : function (hour, minute, isLower) { - if (hour < 4) { - return 'མཚན་མོ'; - } else if (hour < 10) { - return 'ཞོགས་ཀས'; - } else if (hour < 17) { - return 'ཉིན་གུང'; - } else if (hour < 20) { - return 'དགོང་དག'; - } else { - return 'མཚན་མོ'; - } - }, - week : { - dow : 0, // Sunday is the first day of the week. - doy : 6 // The week that contains Jan 1st is the first week of the year. - } -}); - -//! moment.js locale configuration -//! locale : Breton [br] -//! author : Jean-Baptiste Le Duigou : https://github.com/jbleduigou - -function relativeTimeWithMutation(number, withoutSuffix, key) { - var format = { - 'mm': 'munutenn', - 'MM': 'miz', - 'dd': 'devezh' - }; - return number + ' ' + mutation(format[key], number); -} -function specialMutationForYears(number) { - switch (lastNumber(number)) { - case 1: - case 3: - case 4: - case 5: - case 9: - return number + ' bloaz'; - default: - return number + ' vloaz'; - } -} -function lastNumber(number) { - if (number > 9) { - return lastNumber(number % 10); - } - return number; -} -function mutation(text, number) { - if (number === 2) { - return softMutation(text); - } - return text; -} -function softMutation(text) { - var mutationTable = { - 'm': 'v', - 'b': 'v', - 'd': 'z' - }; - if (mutationTable[text.charAt(0)] === undefined) { - return text; - } - return mutationTable[text.charAt(0)] + text.substring(1); -} - -moment.defineLocale('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('_'), - weekdaysParseExact : true, - longDateFormat : { - LT : 'h[e]mm A', - LTS : 'h[e]mm:ss A', - L : 'DD/MM/YYYY', - LL : 'D [a viz] MMMM YYYY', - LLL : 'D [a viz] MMMM YYYY h[e]mm A', - LLLL : 'dddd, D [a viz] MMMM YYYY h[e]mm A' - }, - 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 : relativeTimeWithMutation, - h : 'un eur', - hh : '%d eur', - d : 'un devezh', - dd : relativeTimeWithMutation, - M : 'ur miz', - MM : relativeTimeWithMutation, - y : 'ur bloaz', - yy : specialMutationForYears - }, - dayOfMonthOrdinalParse: /\d{1,2}(añ|vet)/, - ordinal : function (number) { - var output = (number === 1) ? 'añ' : 'vet'; - return number + output; - }, - week : { - dow : 1, // Monday is the first day of the week. - doy : 4 // The week that contains Jan 4th is the first week of the year. - } -}); - -//! moment.js locale configuration -//! locale : Bosnian [bs] -//! author : Nedim Cholich : https://github.com/frontyard -//! based on (hr) translation by Bojan Marković - -function translate(number, withoutSuffix, key) { - var result = number + ' '; - switch (key) { - case 'm': - return withoutSuffix ? 'jedna minuta' : 'jedne minute'; - case 'mm': - if (number === 1) { - result += 'minuta'; - } else if (number === 2 || number === 3 || number === 4) { - result += 'minute'; - } else { - result += 'minuta'; - } - return result; - case 'h': - return withoutSuffix ? 'jedan sat' : 'jednog sata'; - case 'hh': - if (number === 1) { - result += 'sat'; - } else if (number === 2 || number === 3 || number === 4) { - result += 'sata'; - } else { - result += 'sati'; - } - return result; - case 'dd': - if (number === 1) { - result += 'dan'; - } else { - result += 'dana'; - } - return result; - case 'MM': - if (number === 1) { - result += 'mjesec'; - } else if (number === 2 || number === 3 || number === 4) { - result += 'mjeseca'; - } else { - result += 'mjeseci'; - } - return result; - case 'yy': - if (number === 1) { - result += 'godina'; - } else if (number === 2 || number === 3 || number === 4) { - result += 'godine'; - } else { - result += 'godina'; - } - return result; - } -} - -moment.defineLocale('bs', { - months : 'januar_februar_mart_april_maj_juni_juli_august_septembar_oktobar_novembar_decembar'.split('_'), - monthsShort : 'jan._feb._mar._apr._maj._jun._jul._aug._sep._okt._nov._dec.'.split('_'), - monthsParseExact: true, - 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('_'), - weekdaysParseExact : true, - longDateFormat : { - LT : 'H:mm', - LTS : 'H:mm:ss', - L : 'DD.MM.YYYY', - LL : 'D. MMMM YYYY', - LLL : 'D. MMMM YYYY H:mm', - LLLL : 'dddd, D. MMMM YYYY H:mm' - }, - 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 : translate, - mm : translate, - h : translate, - hh : translate, - d : 'dan', - dd : translate, - M : 'mjesec', - MM : translate, - y : 'godinu', - yy : translate - }, - dayOfMonthOrdinalParse: /\d{1,2}\./, - ordinal : '%d.', - week : { - dow : 1, // Monday is the first day of the week. - doy : 7 // The week that contains Jan 1st is the first week of the year. - } -}); - -//! moment.js locale configuration -//! locale : Catalan [ca] -//! author : Juan G. Hurtado : https://github.com/juanghurtado - -moment.defineLocale('ca', { - months : { - standalone: 'gener_febrer_març_abril_maig_juny_juliol_agost_setembre_octubre_novembre_desembre'.split('_'), - format: 'de gener_de febrer_de març_d\'abril_de maig_de juny_de juliol_d\'agost_de setembre_d\'octubre_de novembre_de desembre'.split('_'), - isFormat: /D[oD]?(\s)+MMMM/ - }, - monthsShort : 'gen._febr._març_abr._maig_juny_jul._ag._set._oct._nov._des.'.split('_'), - monthsParseExact : true, - 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('_'), - weekdaysParseExact : true, - longDateFormat : { - LT : 'H:mm', - LTS : 'H:mm:ss', - L : 'DD/MM/YYYY', - LL : '[el] D MMMM [de] YYYY', - ll : 'D MMM YYYY', - LLL : '[el] D MMMM [de] YYYY [a les] H:mm', - lll : 'D MMM YYYY, H:mm', - LLLL : '[el] dddd D MMMM [de] YYYY [a les] H:mm', - llll : 'ddd D MMM YYYY, H:mm' - }, - calendar : { - sameDay : function () { - return '[avui a ' + ((this.hours() !== 1) ? 'les' : 'la') + '] LT'; - }, - nextDay : function () { - return '[demà a ' + ((this.hours() !== 1) ? 'les' : 'la') + '] LT'; - }, - nextWeek : function () { - return 'dddd [a ' + ((this.hours() !== 1) ? 'les' : 'la') + '] LT'; - }, - lastDay : function () { - return '[ahir a ' + ((this.hours() !== 1) ? 'les' : 'la') + '] LT'; - }, - lastWeek : function () { - return '[el] dddd [passat a ' + ((this.hours() !== 1) ? 'les' : 'la') + '] LT'; - }, - sameElse : 'L' - }, - relativeTime : { - future : 'd\'aquí %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' - }, - dayOfMonthOrdinalParse: /\d{1,2}(r|n|t|è|a)/, - ordinal : function (number, period) { - var output = (number === 1) ? 'r' : - (number === 2) ? 'n' : - (number === 3) ? 'r' : - (number === 4) ? 't' : 'è'; - if (period === 'w' || period === 'W') { - output = 'a'; - } - return number + output; - }, - week : { - dow : 1, // Monday is the first day of the week. - doy : 4 // The week that contains Jan 4th is the first week of the year. - } -}); - -//! moment.js locale configuration -//! locale : Czech [cs] -//! author : petrbela : https://github.com/petrbela - -var months$2 = 'leden_únor_březen_duben_květen_červen_červenec_srpen_září_říjen_listopad_prosinec'.split('_'); -var monthsShort = 'led_úno_bře_dub_kvě_čvn_čvc_srp_zář_říj_lis_pro'.split('_'); -function plural$1(n) { - return (n > 1) && (n < 5) && (~~(n / 10) !== 1); -} -function translate$1(number, withoutSuffix, key, isFuture) { - var result = number + ' '; - switch (key) { - case 's': // a few seconds / in a few seconds / a few seconds ago - return (withoutSuffix || isFuture) ? 'pár sekund' : 'pár sekundami'; - case 'm': // a minute / in a minute / a minute ago - return withoutSuffix ? 'minuta' : (isFuture ? 'minutu' : 'minutou'); - case 'mm': // 9 minutes / in 9 minutes / 9 minutes ago - if (withoutSuffix || isFuture) { - return result + (plural$1(number) ? 'minuty' : 'minut'); - } else { - return result + 'minutami'; - } - break; - case 'h': // an hour / in an hour / an hour ago - return withoutSuffix ? 'hodina' : (isFuture ? 'hodinu' : 'hodinou'); - case 'hh': // 9 hours / in 9 hours / 9 hours ago - if (withoutSuffix || isFuture) { - return result + (plural$1(number) ? 'hodiny' : 'hodin'); - } else { - return result + 'hodinami'; - } - break; - case 'd': // a day / in a day / a day ago - return (withoutSuffix || isFuture) ? 'den' : 'dnem'; - case 'dd': // 9 days / in 9 days / 9 days ago - if (withoutSuffix || isFuture) { - return result + (plural$1(number) ? 'dny' : 'dní'); - } else { - return result + 'dny'; - } - break; - case 'M': // a month / in a month / a month ago - return (withoutSuffix || isFuture) ? 'měsíc' : 'měsícem'; - case 'MM': // 9 months / in 9 months / 9 months ago - if (withoutSuffix || isFuture) { - return result + (plural$1(number) ? 'měsíce' : 'měsíců'); - } else { - return result + 'měsíci'; - } - break; - case 'y': // a year / in a year / a year ago - return (withoutSuffix || isFuture) ? 'rok' : 'rokem'; - case 'yy': // 9 years / in 9 years / 9 years ago - if (withoutSuffix || isFuture) { - return result + (plural$1(number) ? 'roky' : 'let'); - } else { - return result + 'lety'; - } - break; - } -} - -moment.defineLocale('cs', { - months : months$2, - monthsShort : monthsShort, - monthsParse : (function (months, monthsShort) { - var i, _monthsParse = []; - for (i = 0; i < 12; i++) { - // use custom parser to solve problem with July (červenec) - _monthsParse[i] = new RegExp('^' + months[i] + '$|^' + monthsShort[i] + '$', 'i'); - } - return _monthsParse; - }(months$2, monthsShort)), - shortMonthsParse : (function (monthsShort) { - var i, _shortMonthsParse = []; - for (i = 0; i < 12; i++) { - _shortMonthsParse[i] = new RegExp('^' + monthsShort[i] + '$', 'i'); - } - return _shortMonthsParse; - }(monthsShort)), - longMonthsParse : (function (months) { - var i, _longMonthsParse = []; - for (i = 0; i < 12; i++) { - _longMonthsParse[i] = new RegExp('^' + months[i] + '$', 'i'); - } - return _longMonthsParse; - }(months$2)), - 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', - LTS : 'H:mm:ss', - L : 'DD.MM.YYYY', - LL : 'D. MMMM YYYY', - LLL : 'D. MMMM YYYY H:mm', - LLLL : 'dddd D. MMMM YYYY H:mm', - l : 'D. M. YYYY' - }, - 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 : translate$1, - m : translate$1, - mm : translate$1, - h : translate$1, - hh : translate$1, - d : translate$1, - dd : translate$1, - M : translate$1, - MM : translate$1, - y : translate$1, - yy : translate$1 - }, - dayOfMonthOrdinalParse : /\d{1,2}\./, - ordinal : '%d.', - week : { - dow : 1, // Monday is the first day of the week. - doy : 4 // The week that contains Jan 4th is the first week of the year. - } -}); - -//! moment.js locale configuration -//! locale : Chuvash [cv] -//! author : Anatoly Mironov : https://github.com/mirontoli - -moment.defineLocale('cv', { - months : 'кӑрлач_нарӑс_пуш_ака_май_ҫӗртме_утӑ_ҫурла_авӑн_юпа_чӳк_раштав'.split('_'), - monthsShort : 'кӑр_нар_пуш_ака_май_ҫӗр_утӑ_ҫур_авн_юпа_чӳк_раш'.split('_'), - weekdays : 'вырсарникун_тунтикун_ытларикун_юнкун_кӗҫнерникун_эрнекун_шӑматкун'.split('_'), - weekdaysShort : 'выр_тун_ытл_юн_кӗҫ_эрн_шӑм'.split('_'), - weekdaysMin : 'вр_тн_ыт_юн_кҫ_эр_шм'.split('_'), - longDateFormat : { - LT : 'HH:mm', - LTS : 'HH:mm:ss', - L : 'DD-MM-YYYY', - LL : 'YYYY [ҫулхи] MMMM [уйӑхӗн] D[-мӗшӗ]', - LLL : 'YYYY [ҫулхи] MMMM [уйӑхӗн] D[-мӗшӗ], HH:mm', - LLLL : 'dddd, YYYY [ҫулхи] MMMM [уйӑхӗн] D[-мӗшӗ], HH:mm' - }, - calendar : { - sameDay: '[Паян] LT [сехетре]', - nextDay: '[Ыран] LT [сехетре]', - lastDay: '[Ӗнер] LT [сехетре]', - nextWeek: '[Ҫитес] dddd LT [сехетре]', - lastWeek: '[Иртнӗ] dddd LT [сехетре]', - sameElse: 'L' - }, - relativeTime : { - future : function (output) { - var affix = /сехет$/i.exec(output) ? 'рен' : /ҫул$/i.exec(output) ? 'тан' : 'ран'; - return output + affix; - }, - past : '%s каялла', - s : 'пӗр-ик ҫеккунт', - m : 'пӗр минут', - mm : '%d минут', - h : 'пӗр сехет', - hh : '%d сехет', - d : 'пӗр кун', - dd : '%d кун', - M : 'пӗр уйӑх', - MM : '%d уйӑх', - y : 'пӗр ҫул', - yy : '%d ҫул' - }, - dayOfMonthOrdinalParse: /\d{1,2}-мӗш/, - ordinal : '%d-мӗш', - week : { - dow : 1, // Monday is the first day of the week. - doy : 7 // The week that contains Jan 1st is the first week of the year. - } -}); - -//! moment.js locale configuration -//! locale : Welsh [cy] -//! author : Robert Allen : https://github.com/robgallen -//! author : https://github.com/ryangreaves - -moment.defineLocale('cy', { - months: 'Ionawr_Chwefror_Mawrth_Ebrill_Mai_Mehefin_Gorffennaf_Awst_Medi_Hydref_Tachwedd_Rhagfyr'.split('_'), - monthsShort: 'Ion_Chwe_Maw_Ebr_Mai_Meh_Gor_Aws_Med_Hyd_Tach_Rhag'.split('_'), - weekdays: 'Dydd Sul_Dydd Llun_Dydd Mawrth_Dydd Mercher_Dydd Iau_Dydd Gwener_Dydd Sadwrn'.split('_'), - weekdaysShort: 'Sul_Llun_Maw_Mer_Iau_Gwe_Sad'.split('_'), - weekdaysMin: 'Su_Ll_Ma_Me_Ia_Gw_Sa'.split('_'), - weekdaysParseExact : true, - // time formats are the same as en-gb - longDateFormat: { - LT: 'HH:mm', - LTS : 'HH:mm:ss', - L: 'DD/MM/YYYY', - LL: 'D MMMM YYYY', - LLL: 'D MMMM YYYY HH:mm', - LLLL: 'dddd, D MMMM YYYY HH:mm' - }, - calendar: { - sameDay: '[Heddiw am] LT', - nextDay: '[Yfory am] LT', - nextWeek: 'dddd [am] LT', - lastDay: '[Ddoe am] LT', - lastWeek: 'dddd [diwethaf am] LT', - sameElse: 'L' - }, - relativeTime: { - future: 'mewn %s', - past: '%s yn ôl', - s: 'ychydig eiliadau', - m: 'munud', - mm: '%d munud', - h: 'awr', - hh: '%d awr', - d: 'diwrnod', - dd: '%d diwrnod', - M: 'mis', - MM: '%d mis', - y: 'blwyddyn', - yy: '%d flynedd' - }, - dayOfMonthOrdinalParse: /\d{1,2}(fed|ain|af|il|ydd|ed|eg)/, - // traditional ordinal numbers above 31 are not commonly used in colloquial Welsh - ordinal: function (number) { - var b = number, - output = '', - lookup = [ - '', 'af', 'il', 'ydd', 'ydd', 'ed', 'ed', 'ed', 'fed', 'fed', 'fed', // 1af to 10fed - 'eg', 'fed', 'eg', 'eg', 'fed', 'eg', 'eg', 'fed', 'eg', 'fed' // 11eg to 20fed - ]; - if (b > 20) { - if (b === 40 || b === 50 || b === 60 || b === 80 || b === 100) { - output = 'fed'; // not 30ain, 70ain or 90ain - } else { - output = 'ain'; - } - } else if (b > 0) { - output = lookup[b]; - } - return number + output; - }, - week : { - dow : 1, // Monday is the first day of the week. - doy : 4 // The week that contains Jan 4th is the first week of the year. - } -}); - -//! moment.js locale configuration -//! locale : Danish [da] -//! author : Ulrik Nielsen : https://github.com/mrbase - -moment.defineLocale('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', - LTS : 'HH:mm:ss', - L : 'DD/MM/YYYY', - LL : 'D. MMMM YYYY', - LLL : 'D. MMMM YYYY HH:mm', - LLLL : 'dddd [d.] D. MMMM YYYY [kl.] HH:mm' - }, - calendar : { - sameDay : '[i dag kl.] LT', - nextDay : '[i morgen kl.] LT', - nextWeek : 'på dddd [kl.] LT', - lastDay : '[i går kl.] LT', - lastWeek : '[i] dddd[s 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' - }, - dayOfMonthOrdinalParse: /\d{1,2}\./, - ordinal : '%d.', - week : { - dow : 1, // Monday is the first day of the week. - doy : 4 // The week that contains Jan 4th is the first week of the year. - } -}); - -//! moment.js locale configuration -//! locale : German (Austria) [de-at] -//! author : lluchs : https://github.com/lluchs -//! author: Menelion Elensúle: https://github.com/Oire -//! author : Martin Groller : https://github.com/MadMG -//! author : Mikolaj Dadela : https://github.com/mik01aj - -function processRelativeTime(number, withoutSuffix, key, isFuture) { - var format = { - 'm': ['eine Minute', 'einer Minute'], - 'h': ['eine Stunde', 'einer Stunde'], - 'd': ['ein Tag', 'einem Tag'], - 'dd': [number + ' Tage', number + ' Tagen'], - 'M': ['ein Monat', 'einem Monat'], - 'MM': [number + ' Monate', number + ' Monaten'], - 'y': ['ein Jahr', 'einem Jahr'], - 'yy': [number + ' Jahre', number + ' Jahren'] - }; - return withoutSuffix ? format[key][0] : format[key][1]; -} - -moment.defineLocale('de-at', { - months : 'Jänner_Februar_März_April_Mai_Juni_Juli_August_September_Oktober_November_Dezember'.split('_'), - monthsShort : 'Jän._Febr._Mrz._Apr._Mai_Jun._Jul._Aug._Sept._Okt._Nov._Dez.'.split('_'), - monthsParseExact : true, - 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('_'), - weekdaysParseExact : true, - longDateFormat : { - LT: 'HH:mm', - LTS: 'HH:mm:ss', - L : 'DD.MM.YYYY', - LL : 'D. MMMM YYYY', - LLL : 'D. MMMM YYYY HH:mm', - LLLL : 'dddd, D. MMMM YYYY HH:mm' - }, - calendar : { - sameDay: '[heute um] LT [Uhr]', - sameElse: 'L', - nextDay: '[morgen um] LT [Uhr]', - nextWeek: 'dddd [um] LT [Uhr]', - lastDay: '[gestern um] LT [Uhr]', - lastWeek: '[letzten] dddd [um] LT [Uhr]' - }, - relativeTime : { - future : 'in %s', - past : 'vor %s', - s : 'ein paar Sekunden', - m : processRelativeTime, - mm : '%d Minuten', - h : processRelativeTime, - hh : '%d Stunden', - d : processRelativeTime, - dd : processRelativeTime, - M : processRelativeTime, - MM : processRelativeTime, - y : processRelativeTime, - yy : processRelativeTime - }, - dayOfMonthOrdinalParse: /\d{1,2}\./, - ordinal : '%d.', - week : { - dow : 1, // Monday is the first day of the week. - doy : 4 // The week that contains Jan 4th is the first week of the year. - } -}); - -//! moment.js locale configuration -//! locale : German (Switzerland) [de-ch] -//! author : sschueller : https://github.com/sschueller - -// based on: https://www.bk.admin.ch/dokumentation/sprachen/04915/05016/index.html?lang=de# - -function processRelativeTime$1(number, withoutSuffix, key, isFuture) { - var format = { - 'm': ['eine Minute', 'einer Minute'], - 'h': ['eine Stunde', 'einer Stunde'], - 'd': ['ein Tag', 'einem Tag'], - 'dd': [number + ' Tage', number + ' Tagen'], - 'M': ['ein Monat', 'einem Monat'], - 'MM': [number + ' Monate', number + ' Monaten'], - 'y': ['ein Jahr', 'einem Jahr'], - 'yy': [number + ' Jahre', number + ' Jahren'] - }; - return withoutSuffix ? format[key][0] : format[key][1]; -} - -moment.defineLocale('de-ch', { - months : 'Januar_Februar_März_April_Mai_Juni_Juli_August_September_Oktober_November_Dezember'.split('_'), - monthsShort : 'Jan._Febr._März_April_Mai_Juni_Juli_Aug._Sept._Okt._Nov._Dez.'.split('_'), - monthsParseExact : true, - 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('_'), - weekdaysParseExact : true, - longDateFormat : { - LT: 'HH.mm', - LTS: 'HH.mm.ss', - L : 'DD.MM.YYYY', - LL : 'D. MMMM YYYY', - LLL : 'D. MMMM YYYY HH.mm', - LLLL : 'dddd, D. MMMM YYYY HH.mm' - }, - calendar : { - sameDay: '[heute um] LT [Uhr]', - sameElse: 'L', - nextDay: '[morgen um] LT [Uhr]', - nextWeek: 'dddd [um] LT [Uhr]', - lastDay: '[gestern um] LT [Uhr]', - lastWeek: '[letzten] dddd [um] LT [Uhr]' - }, - relativeTime : { - future : 'in %s', - past : 'vor %s', - s : 'ein paar Sekunden', - m : processRelativeTime$1, - mm : '%d Minuten', - h : processRelativeTime$1, - hh : '%d Stunden', - d : processRelativeTime$1, - dd : processRelativeTime$1, - M : processRelativeTime$1, - MM : processRelativeTime$1, - y : processRelativeTime$1, - yy : processRelativeTime$1 - }, - dayOfMonthOrdinalParse: /\d{1,2}\./, - ordinal : '%d.', - week : { - dow : 1, // Monday is the first day of the week. - doy : 4 // The week that contains Jan 4th is the first week of the year. - } -}); - -//! moment.js locale configuration -//! locale : German [de] -//! author : lluchs : https://github.com/lluchs -//! author: Menelion Elensúle: https://github.com/Oire -//! author : Mikolaj Dadela : https://github.com/mik01aj - -function processRelativeTime$2(number, withoutSuffix, key, isFuture) { - var format = { - 'm': ['eine Minute', 'einer Minute'], - 'h': ['eine Stunde', 'einer Stunde'], - 'd': ['ein Tag', 'einem Tag'], - 'dd': [number + ' Tage', number + ' Tagen'], - 'M': ['ein Monat', 'einem Monat'], - 'MM': [number + ' Monate', number + ' Monaten'], - 'y': ['ein Jahr', 'einem Jahr'], - 'yy': [number + ' Jahre', number + ' Jahren'] - }; - return withoutSuffix ? format[key][0] : format[key][1]; -} - -moment.defineLocale('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('_'), - monthsParseExact : true, - 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('_'), - weekdaysParseExact : true, - longDateFormat : { - LT: 'HH:mm', - LTS: 'HH:mm:ss', - L : 'DD.MM.YYYY', - LL : 'D. MMMM YYYY', - LLL : 'D. MMMM YYYY HH:mm', - LLLL : 'dddd, D. MMMM YYYY HH:mm' - }, - calendar : { - sameDay: '[heute um] LT [Uhr]', - sameElse: 'L', - nextDay: '[morgen um] LT [Uhr]', - nextWeek: 'dddd [um] LT [Uhr]', - lastDay: '[gestern um] LT [Uhr]', - lastWeek: '[letzten] dddd [um] LT [Uhr]' - }, - relativeTime : { - future : 'in %s', - past : 'vor %s', - s : 'ein paar Sekunden', - m : processRelativeTime$2, - mm : '%d Minuten', - h : processRelativeTime$2, - hh : '%d Stunden', - d : processRelativeTime$2, - dd : processRelativeTime$2, - M : processRelativeTime$2, - MM : processRelativeTime$2, - y : processRelativeTime$2, - yy : processRelativeTime$2 - }, - dayOfMonthOrdinalParse: /\d{1,2}\./, - ordinal : '%d.', - week : { - dow : 1, // Monday is the first day of the week. - doy : 4 // The week that contains Jan 4th is the first week of the year. - } -}); - -//! moment.js locale configuration -//! locale : Maldivian [dv] -//! author : Jawish Hameed : https://github.com/jawish - -var months$3 = [ - 'ޖެނުއަރީ', - 'ފެބްރުއަރީ', - 'މާރިޗު', - 'އޭޕްރީލު', - 'މޭ', - 'ޖޫން', - 'ޖުލައި', - 'އޯގަސްޓު', - 'ސެޕްޓެމްބަރު', - 'އޮކްޓޯބަރު', - 'ނޮވެމްބަރު', - 'ޑިސެމްބަރު' -]; -var weekdays = [ - 'އާދިއްތަ', - 'ހޯމަ', - 'އަންގާރަ', - 'ބުދަ', - 'ބުރާސްފަތި', - 'ހުކުރު', - 'ހޮނިހިރު' -]; - -moment.defineLocale('dv', { - months : months$3, - monthsShort : months$3, - weekdays : weekdays, - weekdaysShort : weekdays, - weekdaysMin : 'އާދި_ހޯމަ_އަން_ބުދަ_ބުރާ_ހުކު_ހޮނި'.split('_'), - longDateFormat : { - - LT : 'HH:mm', - LTS : 'HH:mm:ss', - L : 'D/M/YYYY', - LL : 'D MMMM YYYY', - LLL : 'D MMMM YYYY HH:mm', - LLLL : 'dddd D MMMM YYYY HH:mm' - }, - meridiemParse: /މކ|މފ/, - isPM : function (input) { - return 'މފ' === input; - }, - meridiem : function (hour, minute, isLower) { - if (hour < 12) { - return 'މކ'; - } else { - return 'މފ'; - } - }, - 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 (string) { - return string.replace(/،/g, ','); - }, - postformat: function (string) { - return string.replace(/,/g, '،'); - }, - week : { - dow : 7, // Sunday is the first day of the week. - doy : 12 // The week that contains Jan 1st is the first week of the year. - } -}); - -function isFunction(input) { - return input instanceof Function || Object.prototype.toString.call(input) === '[object Function]'; -} - -//! moment.js locale configuration -//! locale : Greek [el] -//! author : Aggelos Karalias : https://github.com/mehiel - -moment.defineLocale('el', { - monthsNominativeEl : 'Ιανουάριος_Φεβρουάριος_Μάρτιος_Απρίλιος_Μάιος_Ιούνιος_Ιούλιος_Αύγουστος_Σεπτέμβριος_Οκτώβριος_Νοέμβριος_Δεκέμβριος'.split('_'), - monthsGenitiveEl : 'Ιανουαρίου_Φεβρουαρίου_Μαρτίου_Απριλίου_Μαΐου_Ιουνίου_Ιουλίου_Αυγούστου_Σεπτεμβρίου_Οκτωβρίου_Νοεμβρίου_Δεκεμβρίου'.split('_'), - months : function (momentToFormat, format) { - if (!momentToFormat) { - return this._monthsNominativeEl; - } else if (/D/.test(format.substring(0, format.indexOf('MMMM')))) { // if there is a day number before 'MMMM' - return this._monthsGenitiveEl[momentToFormat.month()]; - } else { - return this._monthsNominativeEl[momentToFormat.month()]; - } - }, - monthsShort : 'Ιαν_Φεβ_Μαρ_Απρ_Μαϊ_Ιουν_Ιουλ_Αυγ_Σεπ_Οκτ_Νοε_Δεκ'.split('_'), - weekdays : 'Κυριακή_Δευτέρα_Τρίτη_Τετάρτη_Πέμπτη_Παρασκευή_Σάββατο'.split('_'), - weekdaysShort : 'Κυρ_Δευ_Τρι_Τετ_Πεμ_Παρ_Σαβ'.split('_'), - weekdaysMin : 'Κυ_Δε_Τρ_Τε_Πε_Πα_Σα'.split('_'), - meridiem : function (hours, minutes, isLower) { - if (hours > 11) { - return isLower ? 'μμ' : 'ΜΜ'; - } else { - return isLower ? 'πμ' : 'ΠΜ'; - } - }, - isPM : function (input) { - return ((input + '').toLowerCase()[0] === 'μ'); - }, - meridiemParse : /[ΠΜ]\.?Μ?\.?/i, - longDateFormat : { - LT : 'h:mm A', - LTS : 'h:mm:ss A', - L : 'DD/MM/YYYY', - LL : 'D MMMM YYYY', - LLL : 'D MMMM YYYY h:mm A', - LLLL : 'dddd, D MMMM YYYY h:mm A' - }, - calendarEl : { - sameDay : '[Σήμερα {}] LT', - nextDay : '[Αύριο {}] LT', - nextWeek : 'dddd [{}] LT', - lastDay : '[Χθες {}] LT', - lastWeek : function () { - switch (this.day()) { - case 6: - return '[το προηγούμενο] dddd [{}] LT'; - default: - return '[την προηγούμενη] dddd [{}] LT'; - } - }, - sameElse : 'L' - }, - calendar : function (key, mom) { - var output = this._calendarEl[key], - hours = mom && mom.hours(); - if (isFunction(output)) { - output = output.apply(mom); - } - return output.replace('{}', (hours % 12 === 1 ? 'στη' : 'στις')); - }, - relativeTime : { - future : 'σε %s', - past : '%s πριν', - s : 'λίγα δευτερόλεπτα', - m : 'ένα λεπτό', - mm : '%d λεπτά', - h : 'μία ώρα', - hh : '%d ώρες', - d : 'μία μέρα', - dd : '%d μέρες', - M : 'ένας μήνας', - MM : '%d μήνες', - y : 'ένας χρόνος', - yy : '%d χρόνια' - }, - dayOfMonthOrdinalParse: /\d{1,2}η/, - ordinal: '%dη', - week : { - dow : 1, // Monday is the first day of the week. - doy : 4 // The week that contains Jan 4st is the first week of the year. - } -}); - -//! moment.js locale configuration -//! locale : English (Australia) [en-au] -//! author : Jared Morse : https://github.com/jarcoal - -moment.defineLocale('en-au', { - 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', - LTS : 'h:mm:ss A', - L : 'DD/MM/YYYY', - LL : 'D MMMM YYYY', - LLL : 'D MMMM YYYY h:mm A', - LLLL : 'dddd, D MMMM YYYY h:mm A' - }, - 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' - }, - dayOfMonthOrdinalParse: /\d{1,2}(st|nd|rd|th)/, - ordinal : function (number) { - var b = number % 10, - output = (~~(number % 100 / 10) === 1) ? 'th' : - (b === 1) ? 'st' : - (b === 2) ? 'nd' : - (b === 3) ? 'rd' : 'th'; - return number + output; - }, - week : { - dow : 1, // Monday is the first day of the week. - doy : 4 // The week that contains Jan 4th is the first week of the year. - } -}); - -//! moment.js locale configuration -//! locale : English (Canada) [en-ca] -//! author : Jonathan Abourbih : https://github.com/jonbca - -moment.defineLocale('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', - LTS : 'h:mm:ss A', - L : 'YYYY-MM-DD', - LL : 'MMMM D, YYYY', - LLL : 'MMMM D, YYYY h:mm A', - LLLL : 'dddd, MMMM D, YYYY h:mm A' - }, - 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' - }, - dayOfMonthOrdinalParse: /\d{1,2}(st|nd|rd|th)/, - ordinal : function (number) { - var b = number % 10, - output = (~~(number % 100 / 10) === 1) ? 'th' : - (b === 1) ? 'st' : - (b === 2) ? 'nd' : - (b === 3) ? 'rd' : 'th'; - return number + output; - } -}); - -//! moment.js locale configuration -//! locale : English (United Kingdom) [en-gb] -//! author : Chris Gedrim : https://github.com/chrisgedrim - -moment.defineLocale('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', - LTS : 'HH:mm:ss', - L : 'DD/MM/YYYY', - LL : 'D MMMM YYYY', - LLL : 'D MMMM YYYY HH:mm', - LLLL : 'dddd, D MMMM YYYY HH:mm' - }, - 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' - }, - dayOfMonthOrdinalParse: /\d{1,2}(st|nd|rd|th)/, - ordinal : function (number) { - var b = number % 10, - output = (~~(number % 100 / 10) === 1) ? 'th' : - (b === 1) ? 'st' : - (b === 2) ? 'nd' : - (b === 3) ? 'rd' : 'th'; - return number + output; - }, - week : { - dow : 1, // Monday is the first day of the week. - doy : 4 // The week that contains Jan 4th is the first week of the year. - } -}); - -//! moment.js locale configuration -//! locale : English (Ireland) [en-ie] -//! author : Chris Cartlidge : https://github.com/chriscartlidge - -moment.defineLocale('en-ie', { - 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', - LTS : 'HH:mm:ss', - L : 'DD-MM-YYYY', - LL : 'D MMMM YYYY', - LLL : 'D MMMM YYYY HH:mm', - LLLL : 'dddd D MMMM YYYY HH:mm' - }, - 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' - }, - dayOfMonthOrdinalParse: /\d{1,2}(st|nd|rd|th)/, - ordinal : function (number) { - var b = number % 10, - output = (~~(number % 100 / 10) === 1) ? 'th' : - (b === 1) ? 'st' : - (b === 2) ? 'nd' : - (b === 3) ? 'rd' : 'th'; - return number + output; - }, - week : { - dow : 1, // Monday is the first day of the week. - doy : 4 // The week that contains Jan 4th is the first week of the year. - } -}); - -//! moment.js locale configuration -//! locale : English (New Zealand) [en-nz] -//! author : Luke McGregor : https://github.com/lukemcgregor - -moment.defineLocale('en-nz', { - 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', - LTS : 'h:mm:ss A', - L : 'DD/MM/YYYY', - LL : 'D MMMM YYYY', - LLL : 'D MMMM YYYY h:mm A', - LLLL : 'dddd, D MMMM YYYY h:mm A' - }, - 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' - }, - dayOfMonthOrdinalParse: /\d{1,2}(st|nd|rd|th)/, - ordinal : function (number) { - var b = number % 10, - output = (~~(number % 100 / 10) === 1) ? 'th' : - (b === 1) ? 'st' : - (b === 2) ? 'nd' : - (b === 3) ? 'rd' : 'th'; - return number + output; - }, - week : { - dow : 1, // Monday is the first day of the week. - doy : 4 // The week that contains Jan 4th is the first week of the year. - } -}); - -//! moment.js locale configuration -//! locale : Esperanto [eo] -//! author : Colin Dean : https://github.com/colindean -//! author : Mia Nordentoft Imperatori : https://github.com/miestasmia -//! comment : miestasmia corrected the translation by colindean - -moment.defineLocale('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', - LTS : 'HH:mm:ss', - L : 'YYYY-MM-DD', - LL : 'D[-a de] MMMM, YYYY', - LLL : 'D[-a de] MMMM, YYYY HH:mm', - LLLL : 'dddd, [la] D[-a de] MMMM, YYYY HH:mm' - }, - meridiemParse: /[ap]\.t\.m/i, - isPM: function (input) { - return input.charAt(0).toLowerCase() === 'p'; - }, - meridiem : function (hours, minutes, isLower) { - if (hours > 11) { - return isLower ? 'p.t.m.' : 'P.T.M.'; - } else { - return isLower ? '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 : 'post %s', - past : 'antaŭ %s', - s : 'sekundoj', - m : 'minuto', - mm : '%d minutoj', - h : 'horo', - hh : '%d horoj', - d : 'tago',//ne 'diurno', ĉar estas uzita por proksimumo - dd : '%d tagoj', - M : 'monato', - MM : '%d monatoj', - y : 'jaro', - yy : '%d jaroj' - }, - dayOfMonthOrdinalParse: /\d{1,2}a/, - ordinal : '%da', - week : { - dow : 1, // Monday is the first day of the week. - doy : 7 // The week that contains Jan 1st is the first week of the year. - } -}); - -//! moment.js locale configuration -//! locale : Spanish (Dominican Republic) [es-do] - -var monthsShortDot = 'ene._feb._mar._abr._may._jun._jul._ago._sep._oct._nov._dic.'.split('_'); -var monthsShort$1 = 'ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic'.split('_'); - -moment.defineLocale('es-do', { - months : 'enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre'.split('_'), - monthsShort : function (m, format) { - if (!m) { - return monthsShortDot; - } else if (/-MMM-/.test(format)) { - return monthsShort$1[m.month()]; - } else { - return monthsShortDot[m.month()]; - } - }, - monthsParseExact : true, - 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('_'), - weekdaysParseExact : true, - longDateFormat : { - LT : 'h:mm A', - LTS : 'h:mm:ss A', - L : 'DD/MM/YYYY', - LL : 'D [de] MMMM [de] YYYY', - LLL : 'D [de] MMMM [de] YYYY h:mm A', - LLLL : 'dddd, D [de] MMMM [de] YYYY h:mm A' - }, - calendar : { - sameDay : function () { - return '[hoy a la' + ((this.hours() !== 1) ? 's' : '') + '] LT'; - }, - nextDay : function () { - return '[mañana a la' + ((this.hours() !== 1) ? 's' : '') + '] LT'; - }, - nextWeek : function () { - return 'dddd [a la' + ((this.hours() !== 1) ? 's' : '') + '] LT'; - }, - lastDay : function () { - return '[ayer a la' + ((this.hours() !== 1) ? 's' : '') + '] LT'; - }, - lastWeek : function () { - return '[el] dddd [pasado a la' + ((this.hours() !== 1) ? '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' - }, - dayOfMonthOrdinalParse : /\d{1,2}º/, - ordinal : '%dº', - week : { - dow : 1, // Monday is the first day of the week. - doy : 4 // The week that contains Jan 4th is the first week of the year. - } -}); - -//! moment.js locale configuration -//! locale : Spanish [es] -//! author : Julio Napurí : https://github.com/julionc - -var monthsShortDot$1 = 'ene._feb._mar._abr._may._jun._jul._ago._sep._oct._nov._dic.'.split('_'); -var monthsShort$2 = 'ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic'.split('_'); - -moment.defineLocale('es', { - months : 'enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre'.split('_'), - monthsShort : function (m, format) { - if (!m) { - return monthsShortDot$1; - } else if (/-MMM-/.test(format)) { - return monthsShort$2[m.month()]; - } else { - return monthsShortDot$1[m.month()]; - } - }, - monthsParseExact : true, - 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('_'), - weekdaysParseExact : true, - longDateFormat : { - LT : 'H:mm', - LTS : 'H:mm:ss', - L : 'DD/MM/YYYY', - LL : 'D [de] MMMM [de] YYYY', - LLL : 'D [de] MMMM [de] YYYY H:mm', - LLLL : 'dddd, D [de] MMMM [de] YYYY H:mm' - }, - calendar : { - sameDay : function () { - return '[hoy a la' + ((this.hours() !== 1) ? 's' : '') + '] LT'; - }, - nextDay : function () { - return '[mañana a la' + ((this.hours() !== 1) ? 's' : '') + '] LT'; - }, - nextWeek : function () { - return 'dddd [a la' + ((this.hours() !== 1) ? 's' : '') + '] LT'; - }, - lastDay : function () { - return '[ayer a la' + ((this.hours() !== 1) ? 's' : '') + '] LT'; - }, - lastWeek : function () { - return '[el] dddd [pasado a la' + ((this.hours() !== 1) ? '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' - }, - dayOfMonthOrdinalParse : /\d{1,2}º/, - ordinal : '%dº', - week : { - dow : 1, // Monday is the first day of the week. - doy : 4 // The week that contains Jan 4th is the first week of the year. - } -}); - -//! moment.js locale configuration -//! locale : Estonian [et] -//! author : Henry Kehlmann : https://github.com/madhenry -//! improvements : Illimar Tambek : https://github.com/ragulka - -function processRelativeTime$3(number, withoutSuffix, key, isFuture) { - var format = { - 's' : ['mõne sekundi', 'mõni sekund', 'paar sekundit'], - 'm' : ['ühe minuti', 'üks minut'], - 'mm': [number + ' minuti', number + ' minutit'], - 'h' : ['ühe tunni', 'tund aega', 'üks tund'], - 'hh': [number + ' tunni', number + ' tundi'], - 'd' : ['ühe päeva', 'üks päev'], - 'M' : ['kuu aja', 'kuu aega', 'üks kuu'], - 'MM': [number + ' kuu', number + ' kuud'], - 'y' : ['ühe aasta', 'aasta', 'üks aasta'], - 'yy': [number + ' aasta', number + ' aastat'] - }; - if (withoutSuffix) { - return format[key][2] ? format[key][2] : format[key][1]; - } - return isFuture ? format[key][0] : format[key][1]; -} - -moment.defineLocale('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 : 'P_E_T_K_N_R_L'.split('_'), - weekdaysMin : 'P_E_T_K_N_R_L'.split('_'), - longDateFormat : { - LT : 'H:mm', - LTS : 'H:mm:ss', - L : 'DD.MM.YYYY', - LL : 'D. MMMM YYYY', - LLL : 'D. MMMM YYYY H:mm', - LLLL : 'dddd, D. MMMM YYYY H:mm' - }, - 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 : processRelativeTime$3, - m : processRelativeTime$3, - mm : processRelativeTime$3, - h : processRelativeTime$3, - hh : processRelativeTime$3, - d : processRelativeTime$3, - dd : '%d päeva', - M : processRelativeTime$3, - MM : processRelativeTime$3, - y : processRelativeTime$3, - yy : processRelativeTime$3 - }, - dayOfMonthOrdinalParse: /\d{1,2}\./, - ordinal : '%d.', - week : { - dow : 1, // Monday is the first day of the week. - doy : 4 // The week that contains Jan 4th is the first week of the year. - } -}); - -//! moment.js locale configuration -//! locale : Basque [eu] -//! author : Eneko Illarramendi : https://github.com/eillarra - -moment.defineLocale('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('_'), - monthsParseExact : true, - 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('_'), - weekdaysParseExact : true, - longDateFormat : { - LT : 'HH:mm', - LTS : 'HH:mm:ss', - L : 'YYYY-MM-DD', - LL : 'YYYY[ko] MMMM[ren] D[a]', - LLL : 'YYYY[ko] MMMM[ren] D[a] HH:mm', - LLLL : 'dddd, YYYY[ko] MMMM[ren] D[a] HH:mm', - l : 'YYYY-M-D', - ll : 'YYYY[ko] MMM D[a]', - lll : 'YYYY[ko] MMM D[a] HH:mm', - llll : 'ddd, YYYY[ko] MMM D[a] HH:mm' - }, - 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' - }, - dayOfMonthOrdinalParse: /\d{1,2}\./, - ordinal : '%d.', - week : { - dow : 1, // Monday is the first day of the week. - doy : 7 // The week that contains Jan 1st is the first week of the year. - } -}); - -//! moment.js locale configuration -//! locale : Persian [fa] -//! author : Ebrahim Byagowi : https://github.com/ebraminio - -var symbolMap$5 = { - '1': '۱', - '2': '۲', - '3': '۳', - '4': '۴', - '5': '۵', - '6': '۶', - '7': '۷', - '8': '۸', - '9': '۹', - '0': '۰' -}; -var numberMap$4 = { - '۱': '1', - '۲': '2', - '۳': '3', - '۴': '4', - '۵': '5', - '۶': '6', - '۷': '7', - '۸': '8', - '۹': '9', - '۰': '0' -}; - -moment.defineLocale('fa', { - months : 'ژانویه_فوریه_مارس_آوریل_مه_ژوئن_ژوئیه_اوت_سپتامبر_اکتبر_نوامبر_دسامبر'.split('_'), - monthsShort : 'ژانویه_فوریه_مارس_آوریل_مه_ژوئن_ژوئیه_اوت_سپتامبر_اکتبر_نوامبر_دسامبر'.split('_'), - weekdays : 'یک\u200cشنبه_دوشنبه_سه\u200cشنبه_چهارشنبه_پنج\u200cشنبه_جمعه_شنبه'.split('_'), - weekdaysShort : 'یک\u200cشنبه_دوشنبه_سه\u200cشنبه_چهارشنبه_پنج\u200cشنبه_جمعه_شنبه'.split('_'), - weekdaysMin : 'ی_د_س_چ_پ_ج_ش'.split('_'), - weekdaysParseExact : true, - longDateFormat : { - LT : 'HH:mm', - LTS : 'HH:mm:ss', - L : 'DD/MM/YYYY', - LL : 'D MMMM YYYY', - LLL : 'D MMMM YYYY HH:mm', - LLLL : 'dddd, D MMMM YYYY HH:mm' - }, - meridiemParse: /قبل از ظهر|بعد از ظهر/, - isPM: function (input) { - return /بعد از ظهر/.test(input); - }, - meridiem : function (hour, minute, isLower) { - if (hour < 12) { - return 'قبل از ظهر'; - } else { - return 'بعد از ظهر'; - } - }, - 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 (string) { - return string.replace(/[۰-۹]/g, function (match) { - return numberMap$4[match]; - }).replace(/،/g, ','); - }, - postformat: function (string) { - return string.replace(/\d/g, function (match) { - return symbolMap$5[match]; - }).replace(/,/g, '،'); - }, - dayOfMonthOrdinalParse: /\d{1,2}م/, - ordinal : '%dم', - week : { - dow : 6, // Saturday is the first day of the week. - doy : 12 // The week that contains Jan 1st is the first week of the year. - } -}); - -//! moment.js locale configuration -//! locale : Finnish [fi] -//! author : Tarmo Aidantausta : https://github.com/bleadof - -var numbersPast = 'nolla yksi kaksi kolme neljä viisi kuusi seitsemän kahdeksan yhdeksän'.split(' '); -var numbersFuture = [ - 'nolla', 'yhden', 'kahden', 'kolmen', 'neljän', 'viiden', 'kuuden', - numbersPast[7], numbersPast[8], numbersPast[9] - ]; -function translate$2(number, withoutSuffix, key, isFuture) { - var result = ''; - switch (key) { - case 's': - return isFuture ? 'muutaman sekunnin' : 'muutama sekunti'; - case 'm': - return isFuture ? 'minuutin' : 'minuutti'; - case 'mm': - result = isFuture ? 'minuutin' : 'minuuttia'; - break; - case 'h': - return isFuture ? 'tunnin' : 'tunti'; - case 'hh': - result = isFuture ? 'tunnin' : 'tuntia'; - break; - case 'd': - return isFuture ? 'päivän' : 'päivä'; - case 'dd': - result = isFuture ? 'päivän' : 'päivää'; - break; - case 'M': - return isFuture ? 'kuukauden' : 'kuukausi'; - case 'MM': - result = isFuture ? 'kuukauden' : 'kuukautta'; - break; - case 'y': - return isFuture ? 'vuoden' : 'vuosi'; - case 'yy': - result = isFuture ? 'vuoden' : 'vuotta'; - break; - } - result = verbalNumber(number, isFuture) + ' ' + result; - return result; -} -function verbalNumber(number, isFuture) { - return number < 10 ? (isFuture ? numbersFuture[number] : numbersPast[number]) : number; -} - -moment.defineLocale('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', - LTS : 'HH.mm.ss', - L : 'DD.MM.YYYY', - LL : 'Do MMMM[ta] YYYY', - LLL : 'Do MMMM[ta] YYYY, [klo] HH.mm', - LLLL : 'dddd, Do MMMM[ta] YYYY, [klo] HH.mm', - l : 'D.M.YYYY', - ll : 'Do MMM YYYY', - lll : 'Do MMM YYYY, [klo] HH.mm', - llll : 'ddd, Do MMM YYYY, [klo] HH.mm' - }, - 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 : translate$2, - m : translate$2, - mm : translate$2, - h : translate$2, - hh : translate$2, - d : translate$2, - dd : translate$2, - M : translate$2, - MM : translate$2, - y : translate$2, - yy : translate$2 - }, - dayOfMonthOrdinalParse: /\d{1,2}\./, - ordinal : '%d.', - week : { - dow : 1, // Monday is the first day of the week. - doy : 4 // The week that contains Jan 4th is the first week of the year. - } -}); - -//! moment.js locale configuration -//! locale : Faroese [fo] -//! author : Ragnar Johannesen : https://github.com/ragnar123 - -moment.defineLocale('fo', { - months : 'januar_februar_mars_apríl_mai_juni_juli_august_september_oktober_november_desember'.split('_'), - monthsShort : 'jan_feb_mar_apr_mai_jun_jul_aug_sep_okt_nov_des'.split('_'), - weekdays : 'sunnudagur_mánadagur_týsdagur_mikudagur_hósdagur_fríggjadagur_leygardagur'.split('_'), - weekdaysShort : 'sun_mán_týs_mik_hós_frí_ley'.split('_'), - weekdaysMin : 'su_má_tý_mi_hó_fr_le'.split('_'), - longDateFormat : { - LT : 'HH:mm', - LTS : 'HH:mm:ss', - L : 'DD/MM/YYYY', - LL : 'D MMMM YYYY', - LLL : 'D MMMM YYYY HH:mm', - LLLL : 'dddd D. MMMM, YYYY HH:mm' - }, - calendar : { - sameDay : '[Í dag kl.] LT', - nextDay : '[Í morgin kl.] LT', - nextWeek : 'dddd [kl.] LT', - lastDay : '[Í gjár kl.] LT', - lastWeek : '[síðstu] dddd [kl] LT', - sameElse : 'L' - }, - relativeTime : { - future : 'um %s', - past : '%s síðani', - s : 'fá sekund', - m : 'ein minutt', - mm : '%d minuttir', - h : 'ein tími', - hh : '%d tímar', - d : 'ein dagur', - dd : '%d dagar', - M : 'ein mánaði', - MM : '%d mánaðir', - y : 'eitt ár', - yy : '%d ár' - }, - dayOfMonthOrdinalParse: /\d{1,2}\./, - ordinal : '%d.', - week : { - dow : 1, // Monday is the first day of the week. - doy : 4 // The week that contains Jan 4th is the first week of the year. - } -}); - -//! moment.js locale configuration -//! locale : French (Canada) [fr-ca] -//! author : Jonathan Abourbih : https://github.com/jonbca - -moment.defineLocale('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('_'), - monthsParseExact : true, - 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('_'), - weekdaysParseExact : true, - longDateFormat : { - LT : 'HH:mm', - LTS : 'HH:mm:ss', - L : 'YYYY-MM-DD', - LL : 'D MMMM YYYY', - LLL : 'D MMMM YYYY HH:mm', - LLLL : 'dddd D MMMM YYYY HH:mm' - }, - 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' - }, - dayOfMonthOrdinalParse: /\d{1,2}(er|e)/, - ordinal : function (number, period) { - switch (period) { - // Words with masculine grammatical gender: mois, trimestre, jour - default: - case 'M': - case 'Q': - case 'D': - case 'DDD': - case 'd': - return number + (number === 1 ? 'er' : 'e'); - - // Words with feminine grammatical gender: semaine - case 'w': - case 'W': - return number + (number === 1 ? 're' : 'e'); - } - } -}); - -//! moment.js locale configuration -//! locale : French (Switzerland) [fr-ch] -//! author : Gaspard Bucher : https://github.com/gaspard - -moment.defineLocale('fr-ch', { - 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('_'), - monthsParseExact : true, - 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('_'), - weekdaysParseExact : true, - longDateFormat : { - LT : 'HH:mm', - LTS : 'HH:mm:ss', - L : 'DD.MM.YYYY', - LL : 'D MMMM YYYY', - LLL : 'D MMMM YYYY HH:mm', - LLLL : 'dddd D MMMM YYYY HH:mm' - }, - 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' - }, - dayOfMonthOrdinalParse: /\d{1,2}(er|e)/, - ordinal : function (number, period) { - switch (period) { - // Words with masculine grammatical gender: mois, trimestre, jour - default: - case 'M': - case 'Q': - case 'D': - case 'DDD': - case 'd': - return number + (number === 1 ? 'er' : 'e'); - - // Words with feminine grammatical gender: semaine - case 'w': - case 'W': - return number + (number === 1 ? 're' : 'e'); - } - }, - week : { - dow : 1, // Monday is the first day of the week. - doy : 4 // The week that contains Jan 4th is the first week of the year. - } -}); - -//! moment.js locale configuration -//! locale : French [fr] -//! author : John Fischer : https://github.com/jfroffice - -moment.defineLocale('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('_'), - monthsParseExact : true, - 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('_'), - weekdaysParseExact : true, - longDateFormat : { - LT : 'HH:mm', - LTS : 'HH:mm:ss', - L : 'DD/MM/YYYY', - LL : 'D MMMM YYYY', - LLL : 'D MMMM YYYY HH:mm', - LLLL : 'dddd D MMMM YYYY HH:mm' - }, - 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' - }, - dayOfMonthOrdinalParse: /\d{1,2}(er|)/, - ordinal : function (number, period) { - switch (period) { - // TODO: Return 'e' when day of month > 1. Move this case inside - // block for masculine words below. - // See https://github.com/moment/moment/issues/3375 - case 'D': - return number + (number === 1 ? 'er' : ''); - - // Words with masculine grammatical gender: mois, trimestre, jour - default: - case 'M': - case 'Q': - case 'DDD': - case 'd': - return number + (number === 1 ? 'er' : 'e'); - - // Words with feminine grammatical gender: semaine - case 'w': - case 'W': - return number + (number === 1 ? 're' : 'e'); - } - }, - week : { - dow : 1, // Monday is the first day of the week. - doy : 4 // The week that contains Jan 4th is the first week of the year. - } -}); - -//! moment.js locale configuration -//! locale : Frisian [fy] -//! author : Robin van der Vliet : https://github.com/robin0van0der0v - -var monthsShortWithDots = 'jan._feb._mrt._apr._mai_jun._jul._aug._sep._okt._nov._des.'.split('_'); -var monthsShortWithoutDots = 'jan_feb_mrt_apr_mai_jun_jul_aug_sep_okt_nov_des'.split('_'); - -moment.defineLocale('fy', { - months : 'jannewaris_febrewaris_maart_april_maaie_juny_july_augustus_septimber_oktober_novimber_desimber'.split('_'), - monthsShort : function (m, format) { - if (!m) { - return monthsShortWithDots; - } else if (/-MMM-/.test(format)) { - return monthsShortWithoutDots[m.month()]; - } else { - return monthsShortWithDots[m.month()]; - } - }, - monthsParseExact : true, - weekdays : 'snein_moandei_tiisdei_woansdei_tongersdei_freed_sneon'.split('_'), - weekdaysShort : 'si._mo._ti._wo._to._fr._so.'.split('_'), - weekdaysMin : 'Si_Mo_Ti_Wo_To_Fr_So'.split('_'), - weekdaysParseExact : true, - longDateFormat : { - LT : 'HH:mm', - LTS : 'HH:mm:ss', - L : 'DD-MM-YYYY', - LL : 'D MMMM YYYY', - LLL : 'D MMMM YYYY HH:mm', - LLLL : 'dddd D MMMM YYYY HH:mm' - }, - calendar : { - sameDay: '[hjoed om] LT', - nextDay: '[moarn om] LT', - nextWeek: 'dddd [om] LT', - lastDay: '[juster om] LT', - lastWeek: '[ôfrûne] dddd [om] LT', - sameElse: 'L' - }, - relativeTime : { - future : 'oer %s', - past : '%s lyn', - s : 'in pear sekonden', - m : 'ien minút', - mm : '%d minuten', - h : 'ien oere', - hh : '%d oeren', - d : 'ien dei', - dd : '%d dagen', - M : 'ien moanne', - MM : '%d moannen', - y : 'ien jier', - yy : '%d jierren' - }, - dayOfMonthOrdinalParse: /\d{1,2}(ste|de)/, - ordinal : function (number) { - return number + ((number === 1 || number === 8 || number >= 20) ? 'ste' : 'de'); - }, - week : { - dow : 1, // Monday is the first day of the week. - doy : 4 // The week that contains Jan 4th is the first week of the year. - } -}); - -//! moment.js locale configuration -//! locale : Scottish Gaelic [gd] -//! author : Jon Ashdown : https://github.com/jonashdown - -var months$4 = [ - 'Am Faoilleach', 'An Gearran', 'Am Màrt', 'An Giblean', 'An Cèitean', 'An t-Ògmhios', 'An t-Iuchar', 'An Lùnastal', 'An t-Sultain', 'An Dàmhair', 'An t-Samhain', 'An Dùbhlachd' -]; - -var monthsShort$3 = ['Faoi', 'Gear', 'Màrt', 'Gibl', 'Cèit', 'Ògmh', 'Iuch', 'Lùn', 'Sult', 'Dàmh', 'Samh', 'Dùbh']; - -var weekdays$1 = ['Didòmhnaich', 'Diluain', 'Dimàirt', 'Diciadain', 'Diardaoin', 'Dihaoine', 'Disathairne']; - -var weekdaysShort = ['Did', 'Dil', 'Dim', 'Dic', 'Dia', 'Dih', 'Dis']; - -var weekdaysMin = ['Dò', 'Lu', 'Mà', 'Ci', 'Ar', 'Ha', 'Sa']; - -moment.defineLocale('gd', { - months : months$4, - monthsShort : monthsShort$3, - monthsParseExact : true, - weekdays : weekdays$1, - weekdaysShort : weekdaysShort, - weekdaysMin : weekdaysMin, - longDateFormat : { - LT : 'HH:mm', - LTS : 'HH:mm:ss', - L : 'DD/MM/YYYY', - LL : 'D MMMM YYYY', - LLL : 'D MMMM YYYY HH:mm', - LLLL : 'dddd, D MMMM YYYY HH:mm' - }, - calendar : { - sameDay : '[An-diugh aig] LT', - nextDay : '[A-màireach aig] LT', - nextWeek : 'dddd [aig] LT', - lastDay : '[An-dè aig] LT', - lastWeek : 'dddd [seo chaidh] [aig] LT', - sameElse : 'L' - }, - relativeTime : { - future : 'ann an %s', - past : 'bho chionn %s', - s : 'beagan diogan', - m : 'mionaid', - mm : '%d mionaidean', - h : 'uair', - hh : '%d uairean', - d : 'latha', - dd : '%d latha', - M : 'mìos', - MM : '%d mìosan', - y : 'bliadhna', - yy : '%d bliadhna' - }, - dayOfMonthOrdinalParse : /\d{1,2}(d|na|mh)/, - ordinal : function (number) { - var output = number === 1 ? 'd' : number % 10 === 2 ? 'na' : 'mh'; - return number + output; - }, - week : { - dow : 1, // Monday is the first day of the week. - doy : 4 // The week that contains Jan 4th is the first week of the year. - } -}); - -//! moment.js locale configuration -//! locale : Galician [gl] -//! author : Juan G. Hurtado : https://github.com/juanghurtado - -moment.defineLocale('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('_'), - monthsParseExact: true, - 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('_'), - weekdaysParseExact : true, - longDateFormat : { - LT : 'H:mm', - LTS : 'H:mm:ss', - L : 'DD/MM/YYYY', - LL : 'D [de] MMMM [de] YYYY', - LLL : 'D [de] MMMM [de] YYYY H:mm', - LLLL : 'dddd, D [de] MMMM [de] YYYY H:mm' - }, - calendar : { - sameDay : function () { - return '[hoxe ' + ((this.hours() !== 1) ? 'ás' : 'á') + '] LT'; - }, - nextDay : function () { - return '[mañá ' + ((this.hours() !== 1) ? 'ás' : 'á') + '] LT'; - }, - nextWeek : function () { - return 'dddd [' + ((this.hours() !== 1) ? 'ás' : 'a') + '] LT'; - }, - lastDay : function () { - return '[onte ' + ((this.hours() !== 1) ? 'á' : 'a') + '] LT'; - }, - lastWeek : function () { - return '[o] dddd [pasado ' + ((this.hours() !== 1) ? 'ás' : 'a') + '] LT'; - }, - sameElse : 'L' - }, - relativeTime : { - future : function (str) { - if (str.indexOf('un') === 0) { - return 'n' + str; - } - return 'en ' + str; - }, - 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' - }, - dayOfMonthOrdinalParse : /\d{1,2}º/, - ordinal : '%dº', - week : { - dow : 1, // Monday is the first day of the week. - doy : 4 // The week that contains Jan 4th is the first week of the year. - } -}); - -//! moment.js locale configuration -//! locale : Konkani Latin script [gom-latn] -//! author : The Discoverer : https://github.com/WikiDiscoverer - -function processRelativeTime$4(number, withoutSuffix, key, isFuture) { - var format = { - 's': ['thodde secondanim', 'thodde second'], - 'm': ['eka mintan', 'ek minute'], - 'mm': [number + ' mintanim', number + ' mintam'], - 'h': ['eka horan', 'ek hor'], - 'hh': [number + ' horanim', number + ' hor'], - 'd': ['eka disan', 'ek dis'], - 'dd': [number + ' disanim', number + ' dis'], - 'M': ['eka mhoinean', 'ek mhoino'], - 'MM': [number + ' mhoineanim', number + ' mhoine'], - 'y': ['eka vorsan', 'ek voros'], - 'yy': [number + ' vorsanim', number + ' vorsam'] - }; - return withoutSuffix ? format[key][0] : format[key][1]; -} - -moment.defineLocale('gom-latn', { - months : 'Janer_Febrer_Mars_Abril_Mai_Jun_Julai_Agost_Setembr_Otubr_Novembr_Dezembr'.split('_'), - monthsShort : 'Jan._Feb._Mars_Abr._Mai_Jun_Jul._Ago._Set._Otu._Nov._Dez.'.split('_'), - monthsParseExact : true, - weekdays : 'Aitar_Somar_Mongllar_Budvar_Brestar_Sukrar_Son\'var'.split('_'), - weekdaysShort : 'Ait._Som._Mon._Bud._Bre._Suk._Son.'.split('_'), - weekdaysMin : 'Ai_Sm_Mo_Bu_Br_Su_Sn'.split('_'), - weekdaysParseExact : true, - longDateFormat : { - LT : 'A h:mm [vazta]', - LTS : 'A h:mm:ss [vazta]', - L : 'DD-MM-YYYY', - LL : 'D MMMM YYYY', - LLL : 'D MMMM YYYY A h:mm [vazta]', - LLLL : 'dddd, MMMM[achea] Do, YYYY, A h:mm [vazta]', - llll: 'ddd, D MMM YYYY, A h:mm [vazta]' - }, - calendar : { - sameDay: '[Aiz] LT', - nextDay: '[Faleam] LT', - nextWeek: '[Ieta to] dddd[,] LT', - lastDay: '[Kal] LT', - lastWeek: '[Fatlo] dddd[,] LT', - sameElse: 'L' - }, - relativeTime : { - future : '%s', - past : '%s adim', - s : processRelativeTime$4, - m : processRelativeTime$4, - mm : processRelativeTime$4, - h : processRelativeTime$4, - hh : processRelativeTime$4, - d : processRelativeTime$4, - dd : processRelativeTime$4, - M : processRelativeTime$4, - MM : processRelativeTime$4, - y : processRelativeTime$4, - yy : processRelativeTime$4 - }, - dayOfMonthOrdinalParse : /\d{1,2}(er)/, - ordinal : function (number, period) { - switch (period) { - // the ordinal 'er' only applies to day of the month - case 'D': - return number + 'er'; - default: - case 'M': - case 'Q': - case 'DDD': - case 'd': - case 'w': - case 'W': - return number; - } - }, - week : { - dow : 1, // Monday is the first day of the week. - doy : 4 // The week that contains Jan 4th is the first week of the year. - }, - meridiemParse: /rati|sokalli|donparam|sanje/, - meridiemHour : function (hour, meridiem) { - if (hour === 12) { - hour = 0; - } - if (meridiem === 'rati') { - return hour < 4 ? hour : hour + 12; - } else if (meridiem === 'sokalli') { - return hour; - } else if (meridiem === 'donparam') { - return hour > 12 ? hour : hour + 12; - } else if (meridiem === 'sanje') { - return hour + 12; - } - }, - meridiem : function (hour, minute, isLower) { - if (hour < 4) { - return 'rati'; - } else if (hour < 12) { - return 'sokalli'; - } else if (hour < 16) { - return 'donparam'; - } else if (hour < 20) { - return 'sanje'; - } else { - return 'rati'; - } - } -}); - -//! moment.js locale configuration -//! locale : Hebrew [he] -//! author : Tomer Cohen : https://github.com/tomer -//! author : Moshe Simantov : https://github.com/DevelopmentIL -//! author : Tal Ater : https://github.com/TalAter - -moment.defineLocale('he', { - months : 'ינואר_פברואר_מרץ_אפריל_מאי_יוני_יולי_אוגוסט_ספטמבר_אוקטובר_נובמבר_דצמבר'.split('_'), - monthsShort : 'ינו׳_פבר׳_מרץ_אפר׳_מאי_יוני_יולי_אוג׳_ספט׳_אוק׳_נוב׳_דצמ׳'.split('_'), - weekdays : 'ראשון_שני_שלישי_רביעי_חמישי_שישי_שבת'.split('_'), - weekdaysShort : 'א׳_ב׳_ג׳_ד׳_ה׳_ו׳_ש׳'.split('_'), - weekdaysMin : 'א_ב_ג_ד_ה_ו_ש'.split('_'), - longDateFormat : { - LT : 'HH:mm', - LTS : 'HH:mm:ss', - L : 'DD/MM/YYYY', - LL : 'D [ב]MMMM YYYY', - LLL : 'D [ב]MMMM YYYY HH:mm', - LLLL : 'dddd, D [ב]MMMM YYYY HH:mm', - l : 'D/M/YYYY', - ll : 'D MMM YYYY', - lll : 'D MMM YYYY HH:mm', - llll : 'ddd, D MMM YYYY HH:mm' - }, - 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 (number) { - if (number === 2) { - return 'שעתיים'; - } - return number + ' שעות'; - }, - d : 'יום', - dd : function (number) { - if (number === 2) { - return 'יומיים'; - } - return number + ' ימים'; - }, - M : 'חודש', - MM : function (number) { - if (number === 2) { - return 'חודשיים'; - } - return number + ' חודשים'; - }, - y : 'שנה', - yy : function (number) { - if (number === 2) { - return 'שנתיים'; - } else if (number % 10 === 0 && number !== 10) { - return number + ' שנה'; - } - return number + ' שנים'; - } - }, - meridiemParse: /אחה"צ|לפנה"צ|אחרי הצהריים|לפני הצהריים|לפנות בוקר|בבוקר|בערב/i, - isPM : function (input) { - return /^(אחה"צ|אחרי הצהריים|בערב)$/.test(input); - }, - meridiem : function (hour, minute, isLower) { - if (hour < 5) { - return 'לפנות בוקר'; - } else if (hour < 10) { - return 'בבוקר'; - } else if (hour < 12) { - return isLower ? 'לפנה"צ' : 'לפני הצהריים'; - } else if (hour < 18) { - return isLower ? 'אחה"צ' : 'אחרי הצהריים'; - } else { - return 'בערב'; - } - } -}); - -//! moment.js locale configuration -//! locale : Hindi [hi] -//! author : Mayank Singhal : https://github.com/mayanksinghal - -var symbolMap$6 = { - '1': '१', - '2': '२', - '3': '३', - '4': '४', - '5': '५', - '6': '६', - '7': '७', - '8': '८', - '9': '९', - '0': '०' -}; -var numberMap$5 = { - '१': '1', - '२': '2', - '३': '3', - '४': '4', - '५': '5', - '६': '6', - '७': '7', - '८': '8', - '९': '9', - '०': '0' -}; - -moment.defineLocale('hi', { - months : 'जनवरी_फ़रवरी_मार्च_अप्रैल_मई_जून_जुलाई_अगस्त_सितम्बर_अक्टूबर_नवम्बर_दिसम्बर'.split('_'), - monthsShort : 'जन._फ़र._मार्च_अप्रै._मई_जून_जुल._अग._सित._अक्टू._नव._दिस.'.split('_'), - monthsParseExact: true, - weekdays : 'रविवार_सोमवार_मंगलवार_बुधवार_गुरूवार_शुक्रवार_शनिवार'.split('_'), - weekdaysShort : 'रवि_सोम_मंगल_बुध_गुरू_शुक्र_शनि'.split('_'), - weekdaysMin : 'र_सो_मं_बु_गु_शु_श'.split('_'), - longDateFormat : { - LT : 'A h:mm बजे', - LTS : 'A h:mm:ss बजे', - L : 'DD/MM/YYYY', - LL : 'D MMMM YYYY', - LLL : 'D MMMM YYYY, A h:mm बजे', - LLLL : 'dddd, D MMMM YYYY, A h:mm बजे' - }, - 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 (string) { - return string.replace(/[१२३४५६७८९०]/g, function (match) { - return numberMap$5[match]; - }); - }, - postformat: function (string) { - return string.replace(/\d/g, function (match) { - return symbolMap$6[match]; - }); - }, - // Hindi notation for meridiems are quite fuzzy in practice. While there exists - // a rigid notion of a 'Pahar' it is not used as rigidly in modern Hindi. - meridiemParse: /रात|सुबह|दोपहर|शाम/, - meridiemHour : function (hour, meridiem) { - if (hour === 12) { - hour = 0; - } - if (meridiem === 'रात') { - return hour < 4 ? hour : hour + 12; - } else if (meridiem === 'सुबह') { - return hour; - } else if (meridiem === 'दोपहर') { - return hour >= 10 ? hour : hour + 12; - } else if (meridiem === 'शाम') { - return hour + 12; - } - }, - meridiem : function (hour, minute, isLower) { - if (hour < 4) { - return 'रात'; - } else if (hour < 10) { - return 'सुबह'; - } else if (hour < 17) { - return 'दोपहर'; - } else if (hour < 20) { - return 'शाम'; - } else { - return 'रात'; - } - }, - week : { - dow : 0, // Sunday is the first day of the week. - doy : 6 // The week that contains Jan 1st is the first week of the year. - } -}); - -//! moment.js locale configuration -//! locale : Croatian [hr] -//! author : Bojan Marković : https://github.com/bmarkovic - -function translate$3(number, withoutSuffix, key) { - var result = number + ' '; - switch (key) { - case 'm': - return withoutSuffix ? 'jedna minuta' : 'jedne minute'; - case 'mm': - if (number === 1) { - result += 'minuta'; - } else if (number === 2 || number === 3 || number === 4) { - result += 'minute'; - } else { - result += 'minuta'; - } - return result; - case 'h': - return withoutSuffix ? 'jedan sat' : 'jednog sata'; - case 'hh': - if (number === 1) { - result += 'sat'; - } else if (number === 2 || number === 3 || number === 4) { - result += 'sata'; - } else { - result += 'sati'; - } - return result; - case 'dd': - if (number === 1) { - result += 'dan'; - } else { - result += 'dana'; - } - return result; - case 'MM': - if (number === 1) { - result += 'mjesec'; - } else if (number === 2 || number === 3 || number === 4) { - result += 'mjeseca'; - } else { - result += 'mjeseci'; - } - return result; - case 'yy': - if (number === 1) { - result += 'godina'; - } else if (number === 2 || number === 3 || number === 4) { - result += 'godine'; - } else { - result += 'godina'; - } - return result; - } -} - -moment.defineLocale('hr', { - months : { - format: 'siječnja_veljače_ožujka_travnja_svibnja_lipnja_srpnja_kolovoza_rujna_listopada_studenoga_prosinca'.split('_'), - standalone: 'siječanj_veljača_ožujak_travanj_svibanj_lipanj_srpanj_kolovoz_rujan_listopad_studeni_prosinac'.split('_') - }, - monthsShort : 'sij._velj._ožu._tra._svi._lip._srp._kol._ruj._lis._stu._pro.'.split('_'), - monthsParseExact: true, - 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('_'), - weekdaysParseExact : true, - longDateFormat : { - LT : 'H:mm', - LTS : 'H:mm:ss', - L : 'DD.MM.YYYY', - LL : 'D. MMMM YYYY', - LLL : 'D. MMMM YYYY H:mm', - LLLL : 'dddd, D. MMMM YYYY H:mm' - }, - 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 : translate$3, - mm : translate$3, - h : translate$3, - hh : translate$3, - d : 'dan', - dd : translate$3, - M : 'mjesec', - MM : translate$3, - y : 'godinu', - yy : translate$3 - }, - dayOfMonthOrdinalParse: /\d{1,2}\./, - ordinal : '%d.', - week : { - dow : 1, // Monday is the first day of the week. - doy : 7 // The week that contains Jan 1st is the first week of the year. - } -}); - -//! moment.js locale configuration -//! locale : Hungarian [hu] -//! author : Adam Brunner : https://github.com/adambrunner - -var weekEndings = 'vasárnap hétfőn kedden szerdán csütörtökön pénteken szombaton'.split(' '); -function translate$4(number, withoutSuffix, key, isFuture) { - var num = number, - suffix; - switch (key) { - case 's': - return (isFuture || withoutSuffix) ? 'néhány másodperc' : 'néhány másodperce'; - case 'm': - return 'egy' + (isFuture || withoutSuffix ? ' perc' : ' perce'); - case 'mm': - return num + (isFuture || withoutSuffix ? ' perc' : ' perce'); - case 'h': - return 'egy' + (isFuture || withoutSuffix ? ' óra' : ' órája'); - case 'hh': - return num + (isFuture || withoutSuffix ? ' óra' : ' órája'); - case 'd': - return 'egy' + (isFuture || withoutSuffix ? ' nap' : ' napja'); - case 'dd': - return num + (isFuture || withoutSuffix ? ' nap' : ' napja'); - case 'M': - return 'egy' + (isFuture || withoutSuffix ? ' hónap' : ' hónapja'); - case 'MM': - return num + (isFuture || withoutSuffix ? ' hónap' : ' hónapja'); - case 'y': - return 'egy' + (isFuture || withoutSuffix ? ' év' : ' éve'); - case 'yy': - return num + (isFuture || withoutSuffix ? ' év' : ' éve'); - } - return ''; -} -function week(isFuture) { - return (isFuture ? '' : '[múlt] ') + '[' + weekEndings[this.day()] + '] LT[-kor]'; -} - -moment.defineLocale('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 : 'vas_hét_kedd_sze_csüt_pén_szo'.split('_'), - weekdaysMin : 'v_h_k_sze_cs_p_szo'.split('_'), - longDateFormat : { - LT : 'H:mm', - LTS : 'H:mm:ss', - L : 'YYYY.MM.DD.', - LL : 'YYYY. MMMM D.', - LLL : 'YYYY. MMMM D. H:mm', - LLLL : 'YYYY. MMMM D., dddd H:mm' - }, - meridiemParse: /de|du/i, - isPM: function (input) { - return input.charAt(1).toLowerCase() === 'u'; - }, - meridiem : function (hours, minutes, isLower) { - if (hours < 12) { - return isLower === true ? 'de' : 'DE'; - } else { - return isLower === true ? 'du' : 'DU'; - } - }, - calendar : { - sameDay : '[ma] LT[-kor]', - nextDay : '[holnap] LT[-kor]', - nextWeek : function () { - return week.call(this, true); - }, - lastDay : '[tegnap] LT[-kor]', - lastWeek : function () { - return week.call(this, false); - }, - sameElse : 'L' - }, - relativeTime : { - future : '%s múlva', - past : '%s', - s : translate$4, - m : translate$4, - mm : translate$4, - h : translate$4, - hh : translate$4, - d : translate$4, - dd : translate$4, - M : translate$4, - MM : translate$4, - y : translate$4, - yy : translate$4 - }, - dayOfMonthOrdinalParse: /\d{1,2}\./, - ordinal : '%d.', - week : { - dow : 1, // Monday is the first day of the week. - doy : 4 // The week that contains Jan 4th is the first week of the year. - } -}); - -//! moment.js locale configuration -//! locale : Armenian [hy-am] -//! author : Armendarabyan : https://github.com/armendarabyan - -moment.defineLocale('hy-am', { - months : { - format: 'հունվարի_փետրվարի_մարտի_ապրիլի_մայիսի_հունիսի_հուլիսի_օգոստոսի_սեպտեմբերի_հոկտեմբերի_նոյեմբերի_դեկտեմբերի'.split('_'), - standalone: 'հունվար_փետրվար_մարտ_ապրիլ_մայիս_հունիս_հուլիս_օգոստոս_սեպտեմբեր_հոկտեմբեր_նոյեմբեր_դեկտեմբեր'.split('_') - }, - monthsShort : 'հնվ_փտր_մրտ_ապր_մյս_հնս_հլս_օգս_սպտ_հկտ_նմբ_դկտ'.split('_'), - weekdays : 'կիրակի_երկուշաբթի_երեքշաբթի_չորեքշաբթի_հինգշաբթի_ուրբաթ_շաբաթ'.split('_'), - weekdaysShort : 'կրկ_երկ_երք_չրք_հնգ_ուրբ_շբթ'.split('_'), - weekdaysMin : 'կրկ_երկ_երք_չրք_հնգ_ուրբ_շբթ'.split('_'), - longDateFormat : { - LT : 'HH:mm', - LTS : 'HH:mm:ss', - L : 'DD.MM.YYYY', - LL : 'D MMMM YYYY թ.', - LLL : 'D MMMM YYYY թ., HH:mm', - LLLL : 'dddd, D MMMM YYYY թ., HH:mm' - }, - calendar : { - sameDay: '[այսօր] LT', - nextDay: '[վաղը] LT', - lastDay: '[երեկ] LT', - nextWeek: function () { - return 'dddd [օրը ժամը] LT'; - }, - lastWeek: function () { - 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 տարի' - }, - meridiemParse: /գիշերվա|առավոտվա|ցերեկվա|երեկոյան/, - isPM: function (input) { - return /^(ցերեկվա|երեկոյան)$/.test(input); - }, - meridiem : function (hour) { - if (hour < 4) { - return 'գիշերվա'; - } else if (hour < 12) { - return 'առավոտվա'; - } else if (hour < 17) { - return 'ցերեկվա'; - } else { - return 'երեկոյան'; - } - }, - dayOfMonthOrdinalParse: /\d{1,2}|\d{1,2}-(ին|րդ)/, - ordinal: function (number, period) { - switch (period) { - case 'DDD': - case 'w': - case 'W': - case 'DDDo': - if (number === 1) { - return number + '-ին'; - } - return number + '-րդ'; - default: - return number; - } - }, - week : { - dow : 1, // Monday is the first day of the week. - doy : 7 // The week that contains Jan 1st is the first week of the year. - } -}); - -//! moment.js locale configuration -//! locale : Indonesian [id] -//! author : Mohammad Satrio Utomo : https://github.com/tyok -//! reference: http://id.wikisource.org/wiki/Pedoman_Umum_Ejaan_Bahasa_Indonesia_yang_Disempurnakan - -moment.defineLocale('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', - LTS : 'HH.mm.ss', - L : 'DD/MM/YYYY', - LL : 'D MMMM YYYY', - LLL : 'D MMMM YYYY [pukul] HH.mm', - LLLL : 'dddd, D MMMM YYYY [pukul] HH.mm' - }, - meridiemParse: /pagi|siang|sore|malam/, - meridiemHour : function (hour, meridiem) { - if (hour === 12) { - hour = 0; - } - if (meridiem === 'pagi') { - return hour; - } else if (meridiem === 'siang') { - return hour >= 11 ? hour : hour + 12; - } else if (meridiem === 'sore' || meridiem === 'malam') { - return hour + 12; - } - }, - meridiem : function (hours, minutes, isLower) { - if (hours < 11) { - return 'pagi'; - } else if (hours < 15) { - return 'siang'; - } else if (hours < 19) { - return 'sore'; - } else { - return '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, // Monday is the first day of the week. - doy : 7 // The week that contains Jan 1st is the first week of the year. - } -}); - -//! moment.js locale configuration -//! locale : Icelandic [is] -//! author : Hinrik Örn Sigurðsson : https://github.com/hinrik - -function plural$2(n) { - if (n % 100 === 11) { - return true; - } else if (n % 10 === 1) { - return false; - } - return true; -} -function translate$5(number, withoutSuffix, key, isFuture) { - var result = number + ' '; - switch (key) { - case 's': - return withoutSuffix || isFuture ? 'nokkrar sekúndur' : 'nokkrum sekúndum'; - case 'm': - return withoutSuffix ? 'mínúta' : 'mínútu'; - case 'mm': - if (plural$2(number)) { - return result + (withoutSuffix || isFuture ? 'mínútur' : 'mínútum'); - } else if (withoutSuffix) { - return result + 'mínúta'; - } - return result + 'mínútu'; - case 'hh': - if (plural$2(number)) { - return result + (withoutSuffix || isFuture ? 'klukkustundir' : 'klukkustundum'); - } - return result + 'klukkustund'; - case 'd': - if (withoutSuffix) { - return 'dagur'; - } - return isFuture ? 'dag' : 'degi'; - case 'dd': - if (plural$2(number)) { - if (withoutSuffix) { - return result + 'dagar'; - } - return result + (isFuture ? 'daga' : 'dögum'); - } else if (withoutSuffix) { - return result + 'dagur'; - } - return result + (isFuture ? 'dag' : 'degi'); - case 'M': - if (withoutSuffix) { - return 'mánuður'; - } - return isFuture ? 'mánuð' : 'mánuði'; - case 'MM': - if (plural$2(number)) { - if (withoutSuffix) { - return result + 'mánuðir'; - } - return result + (isFuture ? 'mánuði' : 'mánuðum'); - } else if (withoutSuffix) { - return result + 'mánuður'; - } - return result + (isFuture ? 'mánuð' : 'mánuði'); - case 'y': - return withoutSuffix || isFuture ? 'ár' : 'ári'; - case 'yy': - if (plural$2(number)) { - return result + (withoutSuffix || isFuture ? 'ár' : 'árum'); - } - return result + (withoutSuffix || isFuture ? 'ár' : 'ári'); - } -} - -moment.defineLocale('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', - LTS : 'H:mm:ss', - L : 'DD.MM.YYYY', - LL : 'D. MMMM YYYY', - LLL : 'D. MMMM YYYY [kl.] H:mm', - LLLL : 'dddd, D. MMMM YYYY [kl.] H:mm' - }, - 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 : translate$5, - m : translate$5, - mm : translate$5, - h : 'klukkustund', - hh : translate$5, - d : translate$5, - dd : translate$5, - M : translate$5, - MM : translate$5, - y : translate$5, - yy : translate$5 - }, - dayOfMonthOrdinalParse: /\d{1,2}\./, - ordinal : '%d.', - week : { - dow : 1, // Monday is the first day of the week. - doy : 4 // The week that contains Jan 4th is the first week of the year. - } -}); - -//! moment.js locale configuration -//! locale : Italian [it] -//! author : Lorenzo : https://github.com/aliem -//! author: Mattia Larentis: https://github.com/nostalgiaz - -moment.defineLocale('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 : 'do_lu_ma_me_gi_ve_sa'.split('_'), - longDateFormat : { - LT : 'HH:mm', - LTS : 'HH:mm:ss', - L : 'DD/MM/YYYY', - LL : 'D MMMM YYYY', - LLL : 'D MMMM YYYY HH:mm', - LLLL : 'dddd, D MMMM YYYY HH:mm' - }, - calendar : { - sameDay: '[Oggi alle] LT', - nextDay: '[Domani alle] LT', - nextWeek: 'dddd [alle] LT', - lastDay: '[Ieri alle] LT', - lastWeek: function () { - switch (this.day()) { - case 0: - return '[la scorsa] dddd [alle] LT'; - default: - return '[lo scorso] dddd [alle] LT'; - } - }, - sameElse: 'L' - }, - relativeTime : { - future : function (s) { - return ((/^[0-9].+$/).test(s) ? 'tra' : 'in') + ' ' + s; - }, - past : '%s fa', - s : 'alcuni 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' - }, - dayOfMonthOrdinalParse : /\d{1,2}º/, - ordinal: '%dº', - week : { - dow : 1, // Monday is the first day of the week. - doy : 4 // The week that contains Jan 4th is the first week of the year. - } -}); - -//! moment.js locale configuration -//! locale : Japanese [ja] -//! author : LI Long : https://github.com/baryon - -moment.defineLocale('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 : 'HH:mm', - LTS : 'HH:mm:ss', - L : 'YYYY/MM/DD', - LL : 'YYYY年M月D日', - LLL : 'YYYY年M月D日 HH:mm', - LLLL : 'YYYY年M月D日 HH:mm dddd', - l : 'YYYY/MM/DD', - ll : 'YYYY年M月D日', - lll : 'YYYY年M月D日 HH:mm', - llll : 'YYYY年M月D日 HH:mm dddd' - }, - meridiemParse: /午前|午後/i, - isPM : function (input) { - return input === '午後'; - }, - meridiem : function (hour, minute, isLower) { - if (hour < 12) { - return '午前'; - } else { - return '午後'; - } - }, - calendar : { - sameDay : '[今日] LT', - nextDay : '[明日] LT', - nextWeek : '[来週]dddd LT', - lastDay : '[昨日] LT', - lastWeek : '[前週]dddd LT', - sameElse : 'L' - }, - dayOfMonthOrdinalParse : /\d{1,2}日/, - ordinal : function (number, period) { - switch (period) { - case 'd': - case 'D': - case 'DDD': - return number + '日'; - default: - return number; - } - }, - 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年' - } -}); - -//! moment.js locale configuration -//! locale : Javanese [jv] -//! author : Rony Lantip : https://github.com/lantip -//! reference: http://jv.wikipedia.org/wiki/Basa_Jawa - -moment.defineLocale('jv', { - months : 'Januari_Februari_Maret_April_Mei_Juni_Juli_Agustus_September_Oktober_Nopember_Desember'.split('_'), - monthsShort : 'Jan_Feb_Mar_Apr_Mei_Jun_Jul_Ags_Sep_Okt_Nop_Des'.split('_'), - weekdays : 'Minggu_Senen_Seloso_Rebu_Kemis_Jemuwah_Septu'.split('_'), - weekdaysShort : 'Min_Sen_Sel_Reb_Kem_Jem_Sep'.split('_'), - weekdaysMin : 'Mg_Sn_Sl_Rb_Km_Jm_Sp'.split('_'), - longDateFormat : { - LT : 'HH.mm', - LTS : 'HH.mm.ss', - L : 'DD/MM/YYYY', - LL : 'D MMMM YYYY', - LLL : 'D MMMM YYYY [pukul] HH.mm', - LLLL : 'dddd, D MMMM YYYY [pukul] HH.mm' - }, - meridiemParse: /enjing|siyang|sonten|ndalu/, - meridiemHour : function (hour, meridiem) { - if (hour === 12) { - hour = 0; - } - if (meridiem === 'enjing') { - return hour; - } else if (meridiem === 'siyang') { - return hour >= 11 ? hour : hour + 12; - } else if (meridiem === 'sonten' || meridiem === 'ndalu') { - return hour + 12; - } - }, - meridiem : function (hours, minutes, isLower) { - if (hours < 11) { - return 'enjing'; - } else if (hours < 15) { - return 'siyang'; - } else if (hours < 19) { - return 'sonten'; - } else { - return 'ndalu'; - } - }, - calendar : { - sameDay : '[Dinten puniko pukul] LT', - nextDay : '[Mbenjang pukul] LT', - nextWeek : 'dddd [pukul] LT', - lastDay : '[Kala wingi pukul] LT', - lastWeek : 'dddd [kepengker pukul] LT', - sameElse : 'L' - }, - relativeTime : { - future : 'wonten ing %s', - past : '%s ingkang kepengker', - s : 'sawetawis detik', - m : 'setunggal menit', - mm : '%d menit', - h : 'setunggal jam', - hh : '%d jam', - d : 'sedinten', - dd : '%d dinten', - M : 'sewulan', - MM : '%d wulan', - y : 'setaun', - yy : '%d taun' - }, - week : { - dow : 1, // Monday is the first day of the week. - doy : 7 // The week that contains Jan 1st is the first week of the year. - } -}); - -//! moment.js locale configuration -//! locale : Georgian [ka] -//! author : Irakli Janiashvili : https://github.com/irakli-janiashvili - -moment.defineLocale('ka', { - months : { - standalone: 'იანვარი_თებერვალი_მარტი_აპრილი_მაისი_ივნისი_ივლისი_აგვისტო_სექტემბერი_ოქტომბერი_ნოემბერი_დეკემბერი'.split('_'), - format: 'იანვარს_თებერვალს_მარტს_აპრილის_მაისს_ივნისს_ივლისს_აგვისტს_სექტემბერს_ოქტომბერს_ნოემბერს_დეკემბერს'.split('_') - }, - monthsShort : 'იან_თებ_მარ_აპრ_მაი_ივნ_ივლ_აგვ_სექ_ოქტ_ნოე_დეკ'.split('_'), - weekdays : { - standalone: 'კვირა_ორშაბათი_სამშაბათი_ოთხშაბათი_ხუთშაბათი_პარასკევი_შაბათი'.split('_'), - format: 'კვირას_ორშაბათს_სამშაბათს_ოთხშაბათს_ხუთშაბათს_პარასკევს_შაბათს'.split('_'), - isFormat: /(წინა|შემდეგ)/ - }, - weekdaysShort : 'კვი_ორშ_სამ_ოთხ_ხუთ_პარ_შაბ'.split('_'), - weekdaysMin : 'კვ_ორ_სა_ოთ_ხუ_პა_შა'.split('_'), - longDateFormat : { - LT : 'h:mm A', - LTS : 'h:mm:ss A', - L : 'DD/MM/YYYY', - LL : 'D MMMM YYYY', - LLL : 'D MMMM YYYY h:mm A', - LLLL : 'dddd, D MMMM YYYY h:mm A' - }, - calendar : { - sameDay : '[დღეს] LT[-ზე]', - nextDay : '[ხვალ] LT[-ზე]', - lastDay : '[გუშინ] LT[-ზე]', - nextWeek : '[შემდეგ] dddd LT[-ზე]', - lastWeek : '[წინა] dddd LT-ზე', - sameElse : 'L' - }, - relativeTime : { - future : function (s) { - return (/(წამი|წუთი|საათი|წელი)/).test(s) ? - s.replace(/ი$/, 'ში') : - s + 'ში'; - }, - past : function (s) { - if ((/(წამი|წუთი|საათი|დღე|თვე)/).test(s)) { - return s.replace(/(ი|ე)$/, 'ის უკან'); - } - if ((/წელი/).test(s)) { - return s.replace(/წელი$/, 'წლის უკან'); - } - }, - s : 'რამდენიმე წამი', - m : 'წუთი', - mm : '%d წუთი', - h : 'საათი', - hh : '%d საათი', - d : 'დღე', - dd : '%d დღე', - M : 'თვე', - MM : '%d თვე', - y : 'წელი', - yy : '%d წელი' - }, - dayOfMonthOrdinalParse: /0|1-ლი|მე-\d{1,2}|\d{1,2}-ე/, - ordinal : function (number) { - if (number === 0) { - return number; - } - if (number === 1) { - return number + '-ლი'; - } - if ((number < 20) || (number <= 100 && (number % 20 === 0)) || (number % 100 === 0)) { - return 'მე-' + number; - } - return number + '-ე'; - }, - week : { - dow : 1, - doy : 7 - } -}); - -//! moment.js locale configuration -//! locale : Kazakh [kk] -//! authors : Nurlan Rakhimzhanov : https://github.com/nurlan - -var suffixes$1 = { - 0: '-ші', - 1: '-ші', - 2: '-ші', - 3: '-ші', - 4: '-ші', - 5: '-ші', - 6: '-шы', - 7: '-ші', - 8: '-ші', - 9: '-шы', - 10: '-шы', - 20: '-шы', - 30: '-шы', - 40: '-шы', - 50: '-ші', - 60: '-шы', - 70: '-ші', - 80: '-ші', - 90: '-шы', - 100: '-ші' -}; - -moment.defineLocale('kk', { - months : 'қаңтар_ақпан_наурыз_сәуір_мамыр_маусым_шілде_тамыз_қыркүйек_қазан_қараша_желтоқсан'.split('_'), - monthsShort : 'қаң_ақп_нау_сәу_мам_мау_шіл_там_қыр_қаз_қар_жел'.split('_'), - weekdays : 'жексенбі_дүйсенбі_сейсенбі_сәрсенбі_бейсенбі_жұма_сенбі'.split('_'), - weekdaysShort : 'жек_дүй_сей_сәр_бей_жұм_сен'.split('_'), - weekdaysMin : 'жк_дй_сй_ср_бй_жм_сн'.split('_'), - longDateFormat : { - LT : 'HH:mm', - LTS : 'HH:mm:ss', - L : 'DD.MM.YYYY', - LL : 'D MMMM YYYY', - LLL : 'D MMMM YYYY HH:mm', - LLLL : 'dddd, D MMMM YYYY HH:mm' - }, - 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 жыл' - }, - dayOfMonthOrdinalParse: /\d{1,2}-(ші|шы)/, - ordinal : function (number) { - var a = number % 10, - b = number >= 100 ? 100 : null; - return number + (suffixes$1[number] || suffixes$1[a] || suffixes$1[b]); - }, - week : { - dow : 1, // Monday is the first day of the week. - doy : 7 // The week that contains Jan 1st is the first week of the year. - } -}); - -//! moment.js locale configuration -//! locale : Cambodian [km] -//! author : Kruy Vanna : https://github.com/kruyvanna - -moment.defineLocale('km', { - months: 'មករា_កុម្ភៈ_មីនា_មេសា_ឧសភា_មិថុនា_កក្កដា_សីហា_កញ្ញា_តុលា_វិច្ឆិកា_ធ្នូ'.split('_'), - monthsShort: 'មករា_កុម្ភៈ_មីនា_មេសា_ឧសភា_មិថុនា_កក្កដា_សីហា_កញ្ញា_តុលា_វិច្ឆិកា_ធ្នូ'.split('_'), - weekdays: 'អាទិត្យ_ច័ន្ទ_អង្គារ_ពុធ_ព្រហស្បតិ៍_សុក្រ_សៅរ៍'.split('_'), - weekdaysShort: 'អាទិត្យ_ច័ន្ទ_អង្គារ_ពុធ_ព្រហស្បតិ៍_សុក្រ_សៅរ៍'.split('_'), - weekdaysMin: 'អាទិត្យ_ច័ន្ទ_អង្គារ_ពុធ_ព្រហស្បតិ៍_សុក្រ_សៅរ៍'.split('_'), - longDateFormat: { - LT: 'HH:mm', - LTS : 'HH:mm:ss', - L: 'DD/MM/YYYY', - LL: 'D MMMM YYYY', - LLL: 'D MMMM YYYY HH:mm', - LLLL: 'dddd, D MMMM YYYY HH:mm' - }, - 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, // Monday is the first day of the week. - doy: 4 // The week that contains Jan 4th is the first week of the year. - } -}); - -//! moment.js locale configuration -//! locale : Kannada [kn] -//! author : Rajeev Naik : https://github.com/rajeevnaikte - -var symbolMap$7 = { - '1': '೧', - '2': '೨', - '3': '೩', - '4': '೪', - '5': '೫', - '6': '೬', - '7': '೭', - '8': '೮', - '9': '೯', - '0': '೦' -}; -var numberMap$6 = { - '೧': '1', - '೨': '2', - '೩': '3', - '೪': '4', - '೫': '5', - '೬': '6', - '೭': '7', - '೮': '8', - '೯': '9', - '೦': '0' -}; - -moment.defineLocale('kn', { - months : 'ಜನವರಿ_ಫೆಬ್ರವರಿ_ಮಾರ್ಚ್_ಏಪ್ರಿಲ್_ಮೇ_ಜೂನ್_ಜುಲೈ_ಆಗಸ್ಟ್_ಸೆಪ್ಟೆಂಬರ್_ಅಕ್ಟೋಬರ್_ನವೆಂಬರ್_ಡಿಸೆಂಬರ್'.split('_'), - monthsShort : 'ಜನ_ಫೆಬ್ರ_ಮಾರ್ಚ್_ಏಪ್ರಿಲ್_ಮೇ_ಜೂನ್_ಜುಲೈ_ಆಗಸ್ಟ್_ಸೆಪ್ಟೆಂಬ_ಅಕ್ಟೋಬ_ನವೆಂಬ_ಡಿಸೆಂಬ'.split('_'), - monthsParseExact: true, - weekdays : 'ಭಾನುವಾರ_ಸೋಮವಾರ_ಮಂಗಳವಾರ_ಬುಧವಾರ_ಗುರುವಾರ_ಶುಕ್ರವಾರ_ಶನಿವಾರ'.split('_'), - weekdaysShort : 'ಭಾನು_ಸೋಮ_ಮಂಗಳ_ಬುಧ_ಗುರು_ಶುಕ್ರ_ಶನಿ'.split('_'), - weekdaysMin : 'ಭಾ_ಸೋ_ಮಂ_ಬು_ಗು_ಶು_ಶ'.split('_'), - longDateFormat : { - LT : 'A h:mm', - LTS : 'A h:mm:ss', - L : 'DD/MM/YYYY', - LL : 'D MMMM YYYY', - LLL : 'D MMMM YYYY, A h:mm', - LLLL : 'dddd, D MMMM YYYY, A h:mm' - }, - 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 (string) { - return string.replace(/[೧೨೩೪೫೬೭೮೯೦]/g, function (match) { - return numberMap$6[match]; - }); - }, - postformat: function (string) { - return string.replace(/\d/g, function (match) { - return symbolMap$7[match]; - }); - }, - meridiemParse: /ರಾತ್ರಿ|ಬೆಳಿಗ್ಗೆ|ಮಧ್ಯಾಹ್ನ|ಸಂಜೆ/, - meridiemHour : function (hour, meridiem) { - if (hour === 12) { - hour = 0; - } - if (meridiem === 'ರಾತ್ರಿ') { - return hour < 4 ? hour : hour + 12; - } else if (meridiem === 'ಬೆಳಿಗ್ಗೆ') { - return hour; - } else if (meridiem === 'ಮಧ್ಯಾಹ್ನ') { - return hour >= 10 ? hour : hour + 12; - } else if (meridiem === 'ಸಂಜೆ') { - return hour + 12; - } - }, - meridiem : function (hour, minute, isLower) { - if (hour < 4) { - return 'ರಾತ್ರಿ'; - } else if (hour < 10) { - return 'ಬೆಳಿಗ್ಗೆ'; - } else if (hour < 17) { - return 'ಮಧ್ಯಾಹ್ನ'; - } else if (hour < 20) { - return 'ಸಂಜೆ'; - } else { - return 'ರಾತ್ರಿ'; - } - }, - dayOfMonthOrdinalParse: /\d{1,2}(ನೇ)/, - ordinal : function (number) { - return number + 'ನೇ'; - }, - week : { - dow : 0, // Sunday is the first day of the week. - doy : 6 // The week that contains Jan 1st is the first week of the year. - } -}); - -//! moment.js locale configuration -//! locale : Korean [ko] -//! author : Kyungwook, Park : https://github.com/kyungw00k -//! author : Jeeeyul Lee <jeeeyul@gmail.com> - -moment.defineLocale('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', - LTS : 'A h:mm:ss', - L : 'YYYY.MM.DD', - LL : 'YYYY년 MMMM D일', - LLL : 'YYYY년 MMMM D일 A h:mm', - LLLL : 'YYYY년 MMMM D일 dddd A h:mm', - l : 'YYYY.MM.DD', - ll : 'YYYY년 MMMM D일', - lll : 'YYYY년 MMMM D일 A h:mm', - llll : 'YYYY년 MMMM D일 dddd A h:mm' - }, - calendar : { - sameDay : '오늘 LT', - nextDay : '내일 LT', - nextWeek : 'dddd LT', - lastDay : '어제 LT', - lastWeek : '지난주 dddd LT', - sameElse : 'L' - }, - relativeTime : { - future : '%s 후', - past : '%s 전', - s : '몇 초', - ss : '%d초', - m : '1분', - mm : '%d분', - h : '한 시간', - hh : '%d시간', - d : '하루', - dd : '%d일', - M : '한 달', - MM : '%d달', - y : '일 년', - yy : '%d년' - }, - dayOfMonthOrdinalParse : /\d{1,2}일/, - ordinal : '%d일', - meridiemParse : /오전|오후/, - isPM : function (token) { - return token === '오후'; - }, - meridiem : function (hour, minute, isUpper) { - return hour < 12 ? '오전' : '오후'; - } -}); - -//! moment.js locale configuration -//! locale : Kyrgyz [ky] -//! author : Chyngyz Arystan uulu : https://github.com/chyngyz - - -var suffixes$2 = { - 0: '-чү', - 1: '-чи', - 2: '-чи', - 3: '-чү', - 4: '-чү', - 5: '-чи', - 6: '-чы', - 7: '-чи', - 8: '-чи', - 9: '-чу', - 10: '-чу', - 20: '-чы', - 30: '-чу', - 40: '-чы', - 50: '-чү', - 60: '-чы', - 70: '-чи', - 80: '-чи', - 90: '-чу', - 100: '-чү' -}; - -moment.defineLocale('ky', { - months : 'январь_февраль_март_апрель_май_июнь_июль_август_сентябрь_октябрь_ноябрь_декабрь'.split('_'), - monthsShort : 'янв_фев_март_апр_май_июнь_июль_авг_сен_окт_ноя_дек'.split('_'), - weekdays : 'Жекшемби_Дүйшөмбү_Шейшемби_Шаршемби_Бейшемби_Жума_Ишемби'.split('_'), - weekdaysShort : 'Жек_Дүй_Шей_Шар_Бей_Жум_Ише'.split('_'), - weekdaysMin : 'Жк_Дй_Шй_Шр_Бй_Жм_Иш'.split('_'), - longDateFormat : { - LT : 'HH:mm', - LTS : 'HH:mm:ss', - L : 'DD.MM.YYYY', - LL : 'D MMMM YYYY', - LLL : 'D MMMM YYYY HH:mm', - LLLL : 'dddd, D MMMM YYYY HH:mm' - }, - 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 жыл' - }, - dayOfMonthOrdinalParse: /\d{1,2}-(чи|чы|чү|чу)/, - ordinal : function (number) { - var a = number % 10, - b = number >= 100 ? 100 : null; - return number + (suffixes$2[number] || suffixes$2[a] || suffixes$2[b]); - }, - week : { - dow : 1, // Monday is the first day of the week. - doy : 7 // The week that contains Jan 1st is the first week of the year. - } -}); - -//! moment.js locale configuration -//! locale : Luxembourgish [lb] -//! author : mweimerskirch : https://github.com/mweimerskirch -//! author : David Raison : https://github.com/kwisatz - -function processRelativeTime$5(number, withoutSuffix, key, isFuture) { - var format = { - 'm': ['eng Minutt', 'enger Minutt'], - 'h': ['eng Stonn', 'enger Stonn'], - 'd': ['een Dag', 'engem Dag'], - 'M': ['ee Mount', 'engem Mount'], - 'y': ['ee Joer', 'engem Joer'] - }; - return withoutSuffix ? format[key][0] : format[key][1]; -} -function processFutureTime(string) { - var number = string.substr(0, string.indexOf(' ')); - if (eifelerRegelAppliesToNumber(number)) { - return 'a ' + string; - } - return 'an ' + string; -} -function processPastTime(string) { - var number = string.substr(0, string.indexOf(' ')); - if (eifelerRegelAppliesToNumber(number)) { - return 'viru ' + string; - } - return 'virun ' + string; -} -/** - * Returns true if the word before the given number loses the '-n' ending. - * e.g. 'an 10 Deeg' but 'a 5 Deeg' - * - * @param number {integer} - * @returns {boolean} - */ -function eifelerRegelAppliesToNumber(number) { - number = parseInt(number, 10); - if (isNaN(number)) { - return false; - } - if (number < 0) { - // Negative Number --> always true - return true; - } else if (number < 10) { - // Only 1 digit - if (4 <= number && number <= 7) { - return true; - } - return false; - } else if (number < 100) { - // 2 digits - var lastDigit = number % 10, firstDigit = number / 10; - if (lastDigit === 0) { - return eifelerRegelAppliesToNumber(firstDigit); - } - return eifelerRegelAppliesToNumber(lastDigit); - } else if (number < 10000) { - // 3 or 4 digits --> recursively check first digit - while (number >= 10) { - number = number / 10; - } - return eifelerRegelAppliesToNumber(number); - } else { - // Anything larger than 4 digits: recursively check first n-3 digits - number = number / 1000; - return eifelerRegelAppliesToNumber(number); - } -} - -moment.defineLocale('lb', { - months: 'Januar_Februar_Mäerz_Abrëll_Mee_Juni_Juli_August_September_Oktober_November_Dezember'.split('_'), - monthsShort: 'Jan._Febr._Mrz._Abr._Mee_Jun._Jul._Aug._Sept._Okt._Nov._Dez.'.split('_'), - monthsParseExact : true, - weekdays: 'Sonndeg_Méindeg_Dënschdeg_Mëttwoch_Donneschdeg_Freideg_Samschdeg'.split('_'), - weekdaysShort: 'So._Mé._Dë._Më._Do._Fr._Sa.'.split('_'), - weekdaysMin: 'So_Mé_Dë_Më_Do_Fr_Sa'.split('_'), - weekdaysParseExact : true, - longDateFormat: { - LT: 'H:mm [Auer]', - LTS: 'H:mm:ss [Auer]', - L: 'DD.MM.YYYY', - LL: 'D. MMMM YYYY', - LLL: 'D. MMMM YYYY H:mm [Auer]', - LLLL: 'dddd, D. MMMM YYYY H:mm [Auer]' - }, - calendar: { - sameDay: '[Haut um] LT', - sameElse: 'L', - nextDay: '[Muer um] LT', - nextWeek: 'dddd [um] LT', - lastDay: '[Gëschter um] LT', - lastWeek: function () { - // Different date string for 'Dënschdeg' (Tuesday) and 'Donneschdeg' (Thursday) due to phonological rule - switch (this.day()) { - case 2: - case 4: - return '[Leschten] dddd [um] LT'; - default: - return '[Leschte] dddd [um] LT'; - } - } - }, - relativeTime : { - future : processFutureTime, - past : processPastTime, - s : 'e puer Sekonnen', - m : processRelativeTime$5, - mm : '%d Minutten', - h : processRelativeTime$5, - hh : '%d Stonnen', - d : processRelativeTime$5, - dd : '%d Deeg', - M : processRelativeTime$5, - MM : '%d Méint', - y : processRelativeTime$5, - yy : '%d Joer' - }, - dayOfMonthOrdinalParse: /\d{1,2}\./, - ordinal: '%d.', - week: { - dow: 1, // Monday is the first day of the week. - doy: 4 // The week that contains Jan 4th is the first week of the year. - } -}); - -//! moment.js locale configuration -//! locale : Lao [lo] -//! author : Ryan Hart : https://github.com/ryanhart2 - -moment.defineLocale('lo', { - months : 'ມັງກອນ_ກຸມພາ_ມີນາ_ເມສາ_ພຶດສະພາ_ມິຖຸນາ_ກໍລະກົດ_ສິງຫາ_ກັນຍາ_ຕຸລາ_ພະຈິກ_ທັນວາ'.split('_'), - monthsShort : 'ມັງກອນ_ກຸມພາ_ມີນາ_ເມສາ_ພຶດສະພາ_ມິຖຸນາ_ກໍລະກົດ_ສິງຫາ_ກັນຍາ_ຕຸລາ_ພະຈິກ_ທັນວາ'.split('_'), - weekdays : 'ອາທິດ_ຈັນ_ອັງຄານ_ພຸດ_ພະຫັດ_ສຸກ_ເສົາ'.split('_'), - weekdaysShort : 'ທິດ_ຈັນ_ອັງຄານ_ພຸດ_ພະຫັດ_ສຸກ_ເສົາ'.split('_'), - weekdaysMin : 'ທ_ຈ_ອຄ_ພ_ພຫ_ສກ_ສ'.split('_'), - weekdaysParseExact : true, - longDateFormat : { - LT : 'HH:mm', - LTS : 'HH:mm:ss', - L : 'DD/MM/YYYY', - LL : 'D MMMM YYYY', - LLL : 'D MMMM YYYY HH:mm', - LLLL : 'ວັນdddd D MMMM YYYY HH:mm' - }, - meridiemParse: /ຕອນເຊົ້າ|ຕອນແລງ/, - isPM: function (input) { - return input === 'ຕອນແລງ'; - }, - meridiem : function (hour, minute, isLower) { - if (hour < 12) { - return 'ຕອນເຊົ້າ'; - } else { - return 'ຕອນແລງ'; - } - }, - 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 ປີ' - }, - dayOfMonthOrdinalParse: /(ທີ່)\d{1,2}/, - ordinal : function (number) { - return 'ທີ່' + number; - } -}); - -//! moment.js locale configuration -//! locale : Lithuanian [lt] -//! author : Mindaugas Mozūras : https://github.com/mmozuras - -var units = { - 'm' : 'minutė_minutės_minutę', - 'mm': 'minutės_minučių_minutes', - 'h' : 'valanda_valandos_valandą', - 'hh': 'valandos_valandų_valandas', - 'd' : 'diena_dienos_dieną', - 'dd': 'dienos_dienų_dienas', - 'M' : 'mėnuo_mėnesio_mėnesį', - 'MM': 'mėnesiai_mėnesių_mėnesius', - 'y' : 'metai_metų_metus', - 'yy': 'metai_metų_metus' -}; -function translateSeconds(number, withoutSuffix, key, isFuture) { - if (withoutSuffix) { - return 'kelios sekundės'; - } else { - return isFuture ? 'kelių sekundžių' : 'kelias sekundes'; - } -} -function translateSingular(number, withoutSuffix, key, isFuture) { - return withoutSuffix ? forms(key)[0] : (isFuture ? forms(key)[1] : forms(key)[2]); -} -function special(number) { - return number % 10 === 0 || (number > 10 && number < 20); -} -function forms(key) { - return units[key].split('_'); -} -function translate$6(number, withoutSuffix, key, isFuture) { - var result = number + ' '; - if (number === 1) { - return result + translateSingular(number, withoutSuffix, key[0], isFuture); - } else if (withoutSuffix) { - return result + (special(number) ? forms(key)[1] : forms(key)[0]); - } else { - if (isFuture) { - return result + forms(key)[1]; - } else { - return result + (special(number) ? forms(key)[1] : forms(key)[2]); - } - } -} -moment.defineLocale('lt', { - months : { - format: 'sausio_vasario_kovo_balandžio_gegužės_birželio_liepos_rugpjūčio_rugsėjo_spalio_lapkričio_gruodžio'.split('_'), - standalone: 'sausis_vasaris_kovas_balandis_gegužė_birželis_liepa_rugpjūtis_rugsėjis_spalis_lapkritis_gruodis'.split('_'), - isFormat: /D[oD]?(\[[^\[\]]*\]|\s)+MMMM?|MMMM?(\[[^\[\]]*\]|\s)+D[oD]?/ - }, - monthsShort : 'sau_vas_kov_bal_geg_bir_lie_rgp_rgs_spa_lap_grd'.split('_'), - weekdays : { - format: 'sekmadienį_pirmadienį_antradienį_trečiadienį_ketvirtadienį_penktadienį_šeštadienį'.split('_'), - standalone: 'sekmadienis_pirmadienis_antradienis_trečiadienis_ketvirtadienis_penktadienis_šeštadienis'.split('_'), - isFormat: /dddd HH:mm/ - }, - weekdaysShort : 'Sek_Pir_Ant_Tre_Ket_Pen_Šeš'.split('_'), - weekdaysMin : 'S_P_A_T_K_Pn_Š'.split('_'), - weekdaysParseExact : true, - longDateFormat : { - LT : 'HH:mm', - LTS : 'HH:mm:ss', - L : 'YYYY-MM-DD', - LL : 'YYYY [m.] MMMM D [d.]', - LLL : 'YYYY [m.] MMMM D [d.], HH:mm [val.]', - LLLL : 'YYYY [m.] MMMM D [d.], dddd, HH:mm [val.]', - l : 'YYYY-MM-DD', - ll : 'YYYY [m.] MMMM D [d.]', - lll : 'YYYY [m.] MMMM D [d.], HH:mm [val.]', - llll : 'YYYY [m.] MMMM D [d.], ddd, HH:mm [val.]' - }, - calendar : { - sameDay : '[Šiandien] LT', - nextDay : '[Rytoj] LT', - nextWeek : 'dddd LT', - lastDay : '[Vakar] LT', - lastWeek : '[Praėjusį] dddd LT', - sameElse : 'L' - }, - relativeTime : { - future : 'po %s', - past : 'prieš %s', - s : translateSeconds, - m : translateSingular, - mm : translate$6, - h : translateSingular, - hh : translate$6, - d : translateSingular, - dd : translate$6, - M : translateSingular, - MM : translate$6, - y : translateSingular, - yy : translate$6 - }, - dayOfMonthOrdinalParse: /\d{1,2}-oji/, - ordinal : function (number) { - return number + '-oji'; - }, - week : { - dow : 1, // Monday is the first day of the week. - doy : 4 // The week that contains Jan 4th is the first week of the year. - } -}); - -//! moment.js locale configuration -//! locale : Latvian [lv] -//! author : Kristaps Karlsons : https://github.com/skakri -//! author : Jānis Elmeris : https://github.com/JanisE - -var units$1 = { - 'm': 'minūtes_minūtēm_minūte_minūtes'.split('_'), - 'mm': 'minūtes_minūtēm_minūte_minūtes'.split('_'), - 'h': 'stundas_stundām_stunda_stundas'.split('_'), - 'hh': 'stundas_stundām_stunda_stundas'.split('_'), - 'd': 'dienas_dienām_diena_dienas'.split('_'), - 'dd': 'dienas_dienām_diena_dienas'.split('_'), - 'M': 'mēneša_mēnešiem_mēnesis_mēneši'.split('_'), - 'MM': 'mēneša_mēnešiem_mēnesis_mēneši'.split('_'), - 'y': 'gada_gadiem_gads_gadi'.split('_'), - 'yy': 'gada_gadiem_gads_gadi'.split('_') -}; -/** - * @param withoutSuffix boolean true = a length of time; false = before/after a period of time. - */ -function format(forms, number, withoutSuffix) { - if (withoutSuffix) { - // E.g. "21 minūte", "3 minūtes". - return number % 10 === 1 && number % 100 !== 11 ? forms[2] : forms[3]; - } else { - // E.g. "21 minūtes" as in "pēc 21 minūtes". - // E.g. "3 minūtēm" as in "pēc 3 minūtēm". - return number % 10 === 1 && number % 100 !== 11 ? forms[0] : forms[1]; - } -} -function relativeTimeWithPlural$1(number, withoutSuffix, key) { - return number + ' ' + format(units$1[key], number, withoutSuffix); -} -function relativeTimeWithSingular(number, withoutSuffix, key) { - return format(units$1[key], number, withoutSuffix); -} -function relativeSeconds(number, withoutSuffix) { - return withoutSuffix ? 'dažas sekundes' : 'dažām sekundēm'; -} - -moment.defineLocale('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('_'), - weekdaysParseExact : true, - longDateFormat : { - LT : 'HH:mm', - LTS : 'HH:mm:ss', - L : 'DD.MM.YYYY.', - LL : 'YYYY. [gada] D. MMMM', - LLL : 'YYYY. [gada] D. MMMM, HH:mm', - LLLL : 'YYYY. [gada] D. MMMM, dddd, HH:mm' - }, - 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 : 'pēc %s', - past : 'pirms %s', - s : relativeSeconds, - m : relativeTimeWithSingular, - mm : relativeTimeWithPlural$1, - h : relativeTimeWithSingular, - hh : relativeTimeWithPlural$1, - d : relativeTimeWithSingular, - dd : relativeTimeWithPlural$1, - M : relativeTimeWithSingular, - MM : relativeTimeWithPlural$1, - y : relativeTimeWithSingular, - yy : relativeTimeWithPlural$1 - }, - dayOfMonthOrdinalParse: /\d{1,2}\./, - ordinal : '%d.', - week : { - dow : 1, // Monday is the first day of the week. - doy : 4 // The week that contains Jan 4th is the first week of the year. - } -}); - -//! moment.js locale configuration -//! locale : Montenegrin [me] -//! author : Miodrag Nikač <miodrag@restartit.me> : https://github.com/miodragnikac - -var translator = { - words: { //Different grammatical cases - m: ['jedan minut', 'jednog minuta'], - mm: ['minut', 'minuta', 'minuta'], - h: ['jedan sat', 'jednog sata'], - hh: ['sat', 'sata', 'sati'], - dd: ['dan', 'dana', 'dana'], - MM: ['mjesec', 'mjeseca', 'mjeseci'], - yy: ['godina', 'godine', 'godina'] - }, - correctGrammaticalCase: function (number, wordKey) { - return number === 1 ? wordKey[0] : (number >= 2 && number <= 4 ? wordKey[1] : wordKey[2]); - }, - translate: function (number, withoutSuffix, key) { - var wordKey = translator.words[key]; - if (key.length === 1) { - return withoutSuffix ? wordKey[0] : wordKey[1]; - } else { - return number + ' ' + translator.correctGrammaticalCase(number, wordKey); - } - } -}; - -moment.defineLocale('me', { - months: 'januar_februar_mart_april_maj_jun_jul_avgust_septembar_oktobar_novembar_decembar'.split('_'), - monthsShort: 'jan._feb._mar._apr._maj_jun_jul_avg._sep._okt._nov._dec.'.split('_'), - monthsParseExact : true, - 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('_'), - weekdaysParseExact : true, - longDateFormat: { - LT: 'H:mm', - LTS : 'H:mm:ss', - L: 'DD.MM.YYYY', - LL: 'D. MMMM YYYY', - LLL: 'D. MMMM YYYY H:mm', - LLLL: 'dddd, D. MMMM YYYY H:mm' - }, - calendar: { - sameDay: '[danas u] LT', - nextDay: '[sjutra 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če u] LT', - lastWeek : function () { - var lastWeekDays = [ - '[prošle] [nedjelje] [u] LT', - '[prošlog] [ponedjeljka] [u] LT', - '[prošlog] [utorka] [u] LT', - '[prošle] [srijede] [u] LT', - '[prošlog] [četvrtka] [u] LT', - '[prošlog] [petka] [u] LT', - '[prošle] [subote] [u] LT' - ]; - return lastWeekDays[this.day()]; - }, - sameElse : 'L' - }, - relativeTime : { - future : 'za %s', - past : 'prije %s', - s : 'nekoliko sekundi', - m : translator.translate, - mm : translator.translate, - h : translator.translate, - hh : translator.translate, - d : 'dan', - dd : translator.translate, - M : 'mjesec', - MM : translator.translate, - y : 'godinu', - yy : translator.translate - }, - dayOfMonthOrdinalParse: /\d{1,2}\./, - ordinal : '%d.', - week : { - dow : 1, // Monday is the first day of the week. - doy : 7 // The week that contains Jan 1st is the first week of the year. - } -}); - -//! moment.js locale configuration -//! locale : Maori [mi] -//! author : John Corrigan <robbiecloset@gmail.com> : https://github.com/johnideal - -moment.defineLocale('mi', { - months: 'Kohi-tāte_Hui-tanguru_Poutū-te-rangi_Paenga-whāwhā_Haratua_Pipiri_Hōngoingoi_Here-turi-kōkā_Mahuru_Whiringa-ā-nuku_Whiringa-ā-rangi_Hakihea'.split('_'), - monthsShort: 'Kohi_Hui_Pou_Pae_Hara_Pipi_Hōngoi_Here_Mahu_Whi-nu_Whi-ra_Haki'.split('_'), - monthsRegex: /(?:['a-z\u0101\u014D\u016B]+\-?){1,3}/i, - monthsStrictRegex: /(?:['a-z\u0101\u014D\u016B]+\-?){1,3}/i, - monthsShortRegex: /(?:['a-z\u0101\u014D\u016B]+\-?){1,3}/i, - monthsShortStrictRegex: /(?:['a-z\u0101\u014D\u016B]+\-?){1,2}/i, - weekdays: 'Rātapu_Mane_Tūrei_Wenerei_Tāite_Paraire_Hātarei'.split('_'), - weekdaysShort: 'Ta_Ma_Tū_We_Tāi_Pa_Hā'.split('_'), - weekdaysMin: 'Ta_Ma_Tū_We_Tāi_Pa_Hā'.split('_'), - longDateFormat: { - LT: 'HH:mm', - LTS: 'HH:mm:ss', - L: 'DD/MM/YYYY', - LL: 'D MMMM YYYY', - LLL: 'D MMMM YYYY [i] HH:mm', - LLLL: 'dddd, D MMMM YYYY [i] HH:mm' - }, - calendar: { - sameDay: '[i teie mahana, i] LT', - nextDay: '[apopo i] LT', - nextWeek: 'dddd [i] LT', - lastDay: '[inanahi i] LT', - lastWeek: 'dddd [whakamutunga i] LT', - sameElse: 'L' - }, - relativeTime: { - future: 'i roto i %s', - past: '%s i mua', - s: 'te hēkona ruarua', - m: 'he meneti', - mm: '%d meneti', - h: 'te haora', - hh: '%d haora', - d: 'he ra', - dd: '%d ra', - M: 'he marama', - MM: '%d marama', - y: 'he tau', - yy: '%d tau' - }, - dayOfMonthOrdinalParse: /\d{1,2}º/, - ordinal: '%dº', - week : { - dow : 1, // Monday is the first day of the week. - doy : 4 // The week that contains Jan 4th is the first week of the year. - } -}); - -//! moment.js locale configuration -//! locale : Macedonian [mk] -//! author : Borislav Mickov : https://github.com/B0k0 - -moment.defineLocale('mk', { - months : 'јануари_февруари_март_април_мај_јуни_јули_август_септември_октомври_ноември_декември'.split('_'), - monthsShort : 'јан_фев_мар_апр_мај_јун_јул_авг_сеп_окт_ное_дек'.split('_'), - weekdays : 'недела_понеделник_вторник_среда_четврток_петок_сабота'.split('_'), - weekdaysShort : 'нед_пон_вто_сре_чет_пет_саб'.split('_'), - weekdaysMin : 'нe_пo_вт_ср_че_пе_сa'.split('_'), - longDateFormat : { - LT : 'H:mm', - LTS : 'H:mm:ss', - L : 'D.MM.YYYY', - LL : 'D MMMM YYYY', - LLL : 'D MMMM YYYY H:mm', - LLLL : 'dddd, D MMMM YYYY H:mm' - }, - 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 години' - }, - dayOfMonthOrdinalParse: /\d{1,2}-(ев|ен|ти|ви|ри|ми)/, - ordinal : function (number) { - var lastDigit = number % 10, - last2Digits = number % 100; - if (number === 0) { - return number + '-ев'; - } else if (last2Digits === 0) { - return number + '-ен'; - } else if (last2Digits > 10 && last2Digits < 20) { - return number + '-ти'; - } else if (lastDigit === 1) { - return number + '-ви'; - } else if (lastDigit === 2) { - return number + '-ри'; - } else if (lastDigit === 7 || lastDigit === 8) { - return number + '-ми'; - } else { - return number + '-ти'; - } - }, - week : { - dow : 1, // Monday is the first day of the week. - doy : 7 // The week that contains Jan 1st is the first week of the year. - } -}); - -//! moment.js locale configuration -//! locale : Malayalam [ml] -//! author : Floyd Pink : https://github.com/floydpink - -moment.defineLocale('ml', { - months : 'ജനുവരി_ഫെബ്രുവരി_മാർച്ച്_ഏപ്രിൽ_മേയ്_ജൂൺ_ജൂലൈ_ഓഗസ്റ്റ്_സെപ്റ്റംബർ_ഒക്ടോബർ_നവംബർ_ഡിസംബർ'.split('_'), - monthsShort : 'ജനു._ഫെബ്രു._മാർ._ഏപ്രി._മേയ്_ജൂൺ_ജൂലൈ._ഓഗ._സെപ്റ്റ._ഒക്ടോ._നവം._ഡിസം.'.split('_'), - monthsParseExact : true, - weekdays : 'ഞായറാഴ്ച_തിങ്കളാഴ്ച_ചൊവ്വാഴ്ച_ബുധനാഴ്ച_വ്യാഴാഴ്ച_വെള്ളിയാഴ്ച_ശനിയാഴ്ച'.split('_'), - weekdaysShort : 'ഞായർ_തിങ്കൾ_ചൊവ്വ_ബുധൻ_വ്യാഴം_വെള്ളി_ശനി'.split('_'), - weekdaysMin : 'ഞാ_തി_ചൊ_ബു_വ്യാ_വെ_ശ'.split('_'), - longDateFormat : { - LT : 'A h:mm -നു', - LTS : 'A h:mm:ss -നു', - L : 'DD/MM/YYYY', - LL : 'D MMMM YYYY', - LLL : 'D MMMM YYYY, A h:mm -നു', - LLLL : 'dddd, D MMMM YYYY, A h:mm -നു' - }, - 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 വർഷം' - }, - meridiemParse: /രാത്രി|രാവിലെ|ഉച്ച കഴിഞ്ഞ്|വൈകുന്നേരം|രാത്രി/i, - meridiemHour : function (hour, meridiem) { - if (hour === 12) { - hour = 0; - } - if ((meridiem === 'രാത്രി' && hour >= 4) || - meridiem === 'ഉച്ച കഴിഞ്ഞ്' || - meridiem === 'വൈകുന്നേരം') { - return hour + 12; - } else { - return hour; - } - }, - meridiem : function (hour, minute, isLower) { - if (hour < 4) { - return 'രാത്രി'; - } else if (hour < 12) { - return 'രാവിലെ'; - } else if (hour < 17) { - return 'ഉച്ച കഴിഞ്ഞ്'; - } else if (hour < 20) { - return 'വൈകുന്നേരം'; - } else { - return 'രാത്രി'; - } - } -}); - -//! moment.js locale configuration -//! locale : Marathi [mr] -//! author : Harshad Kale : https://github.com/kalehv -//! author : Vivek Athalye : https://github.com/vnathalye - -var symbolMap$8 = { - '1': '१', - '2': '२', - '3': '३', - '4': '४', - '5': '५', - '6': '६', - '7': '७', - '8': '८', - '9': '९', - '0': '०' -}; -var numberMap$7 = { - '१': '1', - '२': '2', - '३': '3', - '४': '4', - '५': '5', - '६': '6', - '७': '7', - '८': '8', - '९': '9', - '०': '0' -}; - -function relativeTimeMr(number, withoutSuffix, string, isFuture) -{ - var output = ''; - if (withoutSuffix) { - switch (string) { - case 's': output = 'काही सेकंद'; break; - case 'm': output = 'एक मिनिट'; break; - case 'mm': output = '%d मिनिटे'; break; - case 'h': output = 'एक तास'; break; - case 'hh': output = '%d तास'; break; - case 'd': output = 'एक दिवस'; break; - case 'dd': output = '%d दिवस'; break; - case 'M': output = 'एक महिना'; break; - case 'MM': output = '%d महिने'; break; - case 'y': output = 'एक वर्ष'; break; - case 'yy': output = '%d वर्षे'; break; - } - } - else { - switch (string) { - case 's': output = 'काही सेकंदां'; break; - case 'm': output = 'एका मिनिटा'; break; - case 'mm': output = '%d मिनिटां'; break; - case 'h': output = 'एका तासा'; break; - case 'hh': output = '%d तासां'; break; - case 'd': output = 'एका दिवसा'; break; - case 'dd': output = '%d दिवसां'; break; - case 'M': output = 'एका महिन्या'; break; - case 'MM': output = '%d महिन्यां'; break; - case 'y': output = 'एका वर्षा'; break; - case 'yy': output = '%d वर्षां'; break; - } - } - return output.replace(/%d/i, number); -} - -moment.defineLocale('mr', { - months : 'जानेवारी_फेब्रुवारी_मार्च_एप्रिल_मे_जून_जुलै_ऑगस्ट_सप्टेंबर_ऑक्टोबर_नोव्हेंबर_डिसेंबर'.split('_'), - monthsShort: 'जाने._फेब्रु._मार्च._एप्रि._मे._जून._जुलै._ऑग._सप्टें._ऑक्टो._नोव्हें._डिसें.'.split('_'), - monthsParseExact : true, - weekdays : 'रविवार_सोमवार_मंगळवार_बुधवार_गुरूवार_शुक्रवार_शनिवार'.split('_'), - weekdaysShort : 'रवि_सोम_मंगळ_बुध_गुरू_शुक्र_शनि'.split('_'), - weekdaysMin : 'र_सो_मं_बु_गु_शु_श'.split('_'), - longDateFormat : { - LT : 'A h:mm वाजता', - LTS : 'A h:mm:ss वाजता', - L : 'DD/MM/YYYY', - LL : 'D MMMM YYYY', - LLL : 'D MMMM YYYY, A h:mm वाजता', - LLLL : 'dddd, D MMMM YYYY, A h:mm वाजता' - }, - calendar : { - sameDay : '[आज] LT', - nextDay : '[उद्या] LT', - nextWeek : 'dddd, LT', - lastDay : '[काल] LT', - lastWeek: '[मागील] dddd, LT', - sameElse : 'L' - }, - relativeTime : { - future: '%sमध्ये', - past: '%sपूर्वी', - s: relativeTimeMr, - m: relativeTimeMr, - mm: relativeTimeMr, - h: relativeTimeMr, - hh: relativeTimeMr, - d: relativeTimeMr, - dd: relativeTimeMr, - M: relativeTimeMr, - MM: relativeTimeMr, - y: relativeTimeMr, - yy: relativeTimeMr - }, - preparse: function (string) { - return string.replace(/[१२३४५६७८९०]/g, function (match) { - return numberMap$7[match]; - }); - }, - postformat: function (string) { - return string.replace(/\d/g, function (match) { - return symbolMap$8[match]; - }); - }, - meridiemParse: /रात्री|सकाळी|दुपारी|सायंकाळी/, - meridiemHour : function (hour, meridiem) { - if (hour === 12) { - hour = 0; - } - if (meridiem === 'रात्री') { - return hour < 4 ? hour : hour + 12; - } else if (meridiem === 'सकाळी') { - return hour; - } else if (meridiem === 'दुपारी') { - return hour >= 10 ? hour : hour + 12; - } else if (meridiem === 'सायंकाळी') { - return hour + 12; - } - }, - meridiem: function (hour, minute, isLower) { - if (hour < 4) { - return 'रात्री'; - } else if (hour < 10) { - return 'सकाळी'; - } else if (hour < 17) { - return 'दुपारी'; - } else if (hour < 20) { - return 'सायंकाळी'; - } else { - return 'रात्री'; - } - }, - week : { - dow : 0, // Sunday is the first day of the week. - doy : 6 // The week that contains Jan 1st is the first week of the year. - } -}); - -//! moment.js locale configuration -//! locale : Malay [ms-my] -//! note : DEPRECATED, the correct one is [ms] -//! author : Weldan Jamili : https://github.com/weldan - -moment.defineLocale('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', - LTS : 'HH.mm.ss', - L : 'DD/MM/YYYY', - LL : 'D MMMM YYYY', - LLL : 'D MMMM YYYY [pukul] HH.mm', - LLLL : 'dddd, D MMMM YYYY [pukul] HH.mm' - }, - meridiemParse: /pagi|tengahari|petang|malam/, - meridiemHour: function (hour, meridiem) { - if (hour === 12) { - hour = 0; - } - if (meridiem === 'pagi') { - return hour; - } else if (meridiem === 'tengahari') { - return hour >= 11 ? hour : hour + 12; - } else if (meridiem === 'petang' || meridiem === 'malam') { - return hour + 12; - } - }, - meridiem : function (hours, minutes, isLower) { - if (hours < 11) { - return 'pagi'; - } else if (hours < 15) { - return 'tengahari'; - } else if (hours < 19) { - return 'petang'; - } else { - return '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, // Monday is the first day of the week. - doy : 7 // The week that contains Jan 1st is the first week of the year. - } -}); - -//! moment.js locale configuration -//! locale : Malay [ms] -//! author : Weldan Jamili : https://github.com/weldan - -moment.defineLocale('ms', { - 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', - LTS : 'HH.mm.ss', - L : 'DD/MM/YYYY', - LL : 'D MMMM YYYY', - LLL : 'D MMMM YYYY [pukul] HH.mm', - LLLL : 'dddd, D MMMM YYYY [pukul] HH.mm' - }, - meridiemParse: /pagi|tengahari|petang|malam/, - meridiemHour: function (hour, meridiem) { - if (hour === 12) { - hour = 0; - } - if (meridiem === 'pagi') { - return hour; - } else if (meridiem === 'tengahari') { - return hour >= 11 ? hour : hour + 12; - } else if (meridiem === 'petang' || meridiem === 'malam') { - return hour + 12; - } - }, - meridiem : function (hours, minutes, isLower) { - if (hours < 11) { - return 'pagi'; - } else if (hours < 15) { - return 'tengahari'; - } else if (hours < 19) { - return 'petang'; - } else { - return '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, // Monday is the first day of the week. - doy : 7 // The week that contains Jan 1st is the first week of the year. - } -}); - -//! moment.js locale configuration -//! locale : Burmese [my] -//! author : Squar team, mysquar.com -//! author : David Rossellat : https://github.com/gholadr -//! author : Tin Aung Lin : https://github.com/thanyawzinmin - -var symbolMap$9 = { - '1': '၁', - '2': '၂', - '3': '၃', - '4': '၄', - '5': '၅', - '6': '၆', - '7': '၇', - '8': '၈', - '9': '၉', - '0': '၀' -}; -var numberMap$8 = { - '၁': '1', - '၂': '2', - '၃': '3', - '၄': '4', - '၅': '5', - '၆': '6', - '၇': '7', - '၈': '8', - '၉': '9', - '၀': '0' -}; - -moment.defineLocale('my', { - months: 'ဇန်နဝါရီ_ဖေဖော်ဝါရီ_မတ်_ဧပြီ_မေ_ဇွန်_ဇူလိုင်_သြဂုတ်_စက်တင်ဘာ_အောက်တိုဘာ_နိုဝင်ဘာ_ဒီဇင်ဘာ'.split('_'), - monthsShort: 'ဇန်_ဖေ_မတ်_ပြီ_မေ_ဇွန်_လိုင်_သြ_စက်_အောက်_နို_ဒီ'.split('_'), - weekdays: 'တနင်္ဂနွေ_တနင်္လာ_အင်္ဂါ_ဗုဒ္ဓဟူး_ကြာသပတေး_သောကြာ_စနေ'.split('_'), - weekdaysShort: 'နွေ_လာ_ဂါ_ဟူး_ကြာ_သော_နေ'.split('_'), - weekdaysMin: 'နွေ_လာ_ဂါ_ဟူး_ကြာ_သော_နေ'.split('_'), - - longDateFormat: { - LT: 'HH:mm', - LTS: 'HH:mm:ss', - L: 'DD/MM/YYYY', - LL: 'D MMMM YYYY', - LLL: 'D MMMM YYYY HH:mm', - LLLL: 'dddd D MMMM YYYY HH:mm' - }, - 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 (string) { - return string.replace(/[၁၂၃၄၅၆၇၈၉၀]/g, function (match) { - return numberMap$8[match]; - }); - }, - postformat: function (string) { - return string.replace(/\d/g, function (match) { - return symbolMap$9[match]; - }); - }, - week: { - dow: 1, // Monday is the first day of the week. - doy: 4 // The week that contains Jan 1st is the first week of the year. - } -}); - -//! moment.js locale configuration -//! locale : Norwegian Bokmål [nb] -//! authors : Espen Hovlandsdal : https://github.com/rexxars -//! Sigurd Gartmann : https://github.com/sigurdga - -moment.defineLocale('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('_'), - monthsParseExact : true, - 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('_'), - weekdaysParseExact : true, - longDateFormat : { - LT : 'HH:mm', - LTS : 'HH:mm:ss', - L : 'DD.MM.YYYY', - LL : 'D. MMMM YYYY', - LLL : 'D. MMMM YYYY [kl.] HH:mm', - LLLL : 'dddd D. MMMM YYYY [kl.] HH:mm' - }, - 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 : '%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' - }, - dayOfMonthOrdinalParse: /\d{1,2}\./, - ordinal : '%d.', - week : { - dow : 1, // Monday is the first day of the week. - doy : 4 // The week that contains Jan 4th is the first week of the year. - } -}); - -//! moment.js locale configuration -//! locale : Nepalese [ne] -//! author : suvash : https://github.com/suvash - -var symbolMap$10 = { - '1': '१', - '2': '२', - '3': '३', - '4': '४', - '5': '५', - '6': '६', - '7': '७', - '8': '८', - '9': '९', - '0': '०' -}; -var numberMap$9 = { - '१': '1', - '२': '2', - '३': '3', - '४': '4', - '५': '5', - '६': '6', - '७': '7', - '८': '8', - '९': '9', - '०': '0' -}; - -moment.defineLocale('ne', { - months : 'जनवरी_फेब्रुवरी_मार्च_अप्रिल_मई_जुन_जुलाई_अगष्ट_सेप्टेम्बर_अक्टोबर_नोभेम्बर_डिसेम्बर'.split('_'), - monthsShort : 'जन._फेब्रु._मार्च_अप्रि._मई_जुन_जुलाई._अग._सेप्ट._अक्टो._नोभे._डिसे.'.split('_'), - monthsParseExact : true, - weekdays : 'आइतबार_सोमबार_मङ्गलबार_बुधबार_बिहिबार_शुक्रबार_शनिबार'.split('_'), - weekdaysShort : 'आइत._सोम._मङ्गल._बुध._बिहि._शुक्र._शनि.'.split('_'), - weekdaysMin : 'आ._सो._मं._बु._बि._शु._श.'.split('_'), - weekdaysParseExact : true, - longDateFormat : { - LT : 'Aको h:mm बजे', - LTS : 'Aको h:mm:ss बजे', - L : 'DD/MM/YYYY', - LL : 'D MMMM YYYY', - LLL : 'D MMMM YYYY, Aको h:mm बजे', - LLLL : 'dddd, D MMMM YYYY, Aको h:mm बजे' - }, - preparse: function (string) { - return string.replace(/[१२३४५६७८९०]/g, function (match) { - return numberMap$9[match]; - }); - }, - postformat: function (string) { - return string.replace(/\d/g, function (match) { - return symbolMap$10[match]; - }); - }, - meridiemParse: /राति|बिहान|दिउँसो|साँझ/, - meridiemHour : function (hour, meridiem) { - if (hour === 12) { - hour = 0; - } - if (meridiem === 'राति') { - return hour < 4 ? hour : hour + 12; - } else if (meridiem === 'बिहान') { - return hour; - } else if (meridiem === 'दिउँसो') { - return hour >= 10 ? hour : hour + 12; - } else if (meridiem === 'साँझ') { - return hour + 12; - } - }, - meridiem : function (hour, minute, isLower) { - if (hour < 3) { - return 'राति'; - } else if (hour < 12) { - return 'बिहान'; - } else if (hour < 16) { - return 'दिउँसो'; - } else if (hour < 20) { - return 'साँझ'; - } else { - return 'राति'; - } - }, - 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 : 0, // Sunday is the first day of the week. - doy : 6 // The week that contains Jan 1st is the first week of the year. - } -}); - -//! moment.js locale configuration -//! locale : Dutch (Belgium) [nl-be] -//! author : Joris Röling : https://github.com/jorisroling -//! author : Jacob Middag : https://github.com/middagj - -var monthsShortWithDots$1 = 'jan._feb._mrt._apr._mei_jun._jul._aug._sep._okt._nov._dec.'.split('_'); -var monthsShortWithoutDots$1 = 'jan_feb_mrt_apr_mei_jun_jul_aug_sep_okt_nov_dec'.split('_'); - -var monthsParse = [/^jan/i, /^feb/i, /^maart|mrt.?$/i, /^apr/i, /^mei$/i, /^jun[i.]?$/i, /^jul[i.]?$/i, /^aug/i, /^sep/i, /^okt/i, /^nov/i, /^dec/i]; -var monthsRegex = /^(januari|februari|maart|april|mei|april|ju[nl]i|augustus|september|oktober|november|december|jan\.?|feb\.?|mrt\.?|apr\.?|ju[nl]\.?|aug\.?|sep\.?|okt\.?|nov\.?|dec\.?)/i; - -moment.defineLocale('nl-be', { - months : 'januari_februari_maart_april_mei_juni_juli_augustus_september_oktober_november_december'.split('_'), - monthsShort : function (m, format) { - if (!m) { - return monthsShortWithDots$1; - } else if (/-MMM-/.test(format)) { - return monthsShortWithoutDots$1[m.month()]; - } else { - return monthsShortWithDots$1[m.month()]; - } - }, - - monthsRegex: monthsRegex, - monthsShortRegex: monthsRegex, - monthsStrictRegex: /^(januari|februari|maart|mei|ju[nl]i|april|augustus|september|oktober|november|december)/i, - monthsShortStrictRegex: /^(jan\.?|feb\.?|mrt\.?|apr\.?|mei|ju[nl]\.?|aug\.?|sep\.?|okt\.?|nov\.?|dec\.?)/i, - - monthsParse : monthsParse, - longMonthsParse : monthsParse, - shortMonthsParse : monthsParse, - - 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('_'), - weekdaysParseExact : true, - longDateFormat : { - LT : 'HH:mm', - LTS : 'HH:mm:ss', - L : 'DD/MM/YYYY', - LL : 'D MMMM YYYY', - LLL : 'D MMMM YYYY HH:mm', - LLLL : 'dddd D MMMM YYYY HH:mm' - }, - 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' - }, - dayOfMonthOrdinalParse: /\d{1,2}(ste|de)/, - ordinal : function (number) { - return number + ((number === 1 || number === 8 || number >= 20) ? 'ste' : 'de'); - }, - week : { - dow : 1, // Monday is the first day of the week. - doy : 4 // The week that contains Jan 4th is the first week of the year. - } -}); - -//! moment.js locale configuration -//! locale : Dutch [nl] -//! author : Joris Röling : https://github.com/jorisroling -//! author : Jacob Middag : https://github.com/middagj - -var monthsShortWithDots$2 = 'jan._feb._mrt._apr._mei_jun._jul._aug._sep._okt._nov._dec.'.split('_'); -var monthsShortWithoutDots$2 = 'jan_feb_mrt_apr_mei_jun_jul_aug_sep_okt_nov_dec'.split('_'); - -var monthsParse$1 = [/^jan/i, /^feb/i, /^maart|mrt.?$/i, /^apr/i, /^mei$/i, /^jun[i.]?$/i, /^jul[i.]?$/i, /^aug/i, /^sep/i, /^okt/i, /^nov/i, /^dec/i]; -var monthsRegex$1 = /^(januari|februari|maart|april|mei|april|ju[nl]i|augustus|september|oktober|november|december|jan\.?|feb\.?|mrt\.?|apr\.?|ju[nl]\.?|aug\.?|sep\.?|okt\.?|nov\.?|dec\.?)/i; - -moment.defineLocale('nl', { - months : 'januari_februari_maart_april_mei_juni_juli_augustus_september_oktober_november_december'.split('_'), - monthsShort : function (m, format) { - if (!m) { - return monthsShortWithDots$2; - } else if (/-MMM-/.test(format)) { - return monthsShortWithoutDots$2[m.month()]; - } else { - return monthsShortWithDots$2[m.month()]; - } - }, - - monthsRegex: monthsRegex$1, - monthsShortRegex: monthsRegex$1, - monthsStrictRegex: /^(januari|februari|maart|mei|ju[nl]i|april|augustus|september|oktober|november|december)/i, - monthsShortStrictRegex: /^(jan\.?|feb\.?|mrt\.?|apr\.?|mei|ju[nl]\.?|aug\.?|sep\.?|okt\.?|nov\.?|dec\.?)/i, - - monthsParse : monthsParse$1, - longMonthsParse : monthsParse$1, - shortMonthsParse : monthsParse$1, - - 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('_'), - weekdaysParseExact : true, - longDateFormat : { - LT : 'HH:mm', - LTS : 'HH:mm:ss', - L : 'DD-MM-YYYY', - LL : 'D MMMM YYYY', - LLL : 'D MMMM YYYY HH:mm', - LLLL : 'dddd D MMMM YYYY HH:mm' - }, - 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' - }, - dayOfMonthOrdinalParse: /\d{1,2}(ste|de)/, - ordinal : function (number) { - return number + ((number === 1 || number === 8 || number >= 20) ? 'ste' : 'de'); - }, - week : { - dow : 1, // Monday is the first day of the week. - doy : 4 // The week that contains Jan 4th is the first week of the year. - } -}); - -//! moment.js locale configuration -//! locale : Nynorsk [nn] -//! author : https://github.com/mechuwind - -moment.defineLocale('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', - LTS : 'HH:mm:ss', - L : 'DD.MM.YYYY', - LL : 'D. MMMM YYYY', - LLL : 'D. MMMM YYYY [kl.] H:mm', - LLLL : 'dddd D. MMMM YYYY [kl.] HH:mm' - }, - calendar : { - sameDay: '[I dag klokka] LT', - nextDay: '[I morgon klokka] LT', - nextWeek: 'dddd [klokka] LT', - lastDay: '[I går klokka] LT', - lastWeek: '[Føregåande] dddd [klokka] LT', - sameElse: 'L' - }, - relativeTime : { - future : 'om %s', - past : '%s sidan', - s : 'nokre sekund', - m : 'eit minutt', - mm : '%d minutt', - h : 'ein time', - hh : '%d timar', - d : 'ein dag', - dd : '%d dagar', - M : 'ein månad', - MM : '%d månader', - y : 'eit år', - yy : '%d år' - }, - dayOfMonthOrdinalParse: /\d{1,2}\./, - ordinal : '%d.', - week : { - dow : 1, // Monday is the first day of the week. - doy : 4 // The week that contains Jan 4th is the first week of the year. - } -}); - -//! moment.js locale configuration -//! locale : Punjabi (India) [pa-in] -//! author : Harpreet Singh : https://github.com/harpreetkhalsagtbit - -var symbolMap$11 = { - '1': '੧', - '2': '੨', - '3': '੩', - '4': '੪', - '5': '੫', - '6': '੬', - '7': '੭', - '8': '੮', - '9': '੯', - '0': '੦' -}; -var numberMap$10 = { - '੧': '1', - '੨': '2', - '੩': '3', - '੪': '4', - '੫': '5', - '੬': '6', - '੭': '7', - '੮': '8', - '੯': '9', - '੦': '0' -}; - -moment.defineLocale('pa-in', { - // There are months name as per Nanakshahi Calender but they are not used as rigidly in modern Punjabi. - months : 'ਜਨਵਰੀ_ਫ਼ਰਵਰੀ_ਮਾਰਚ_ਅਪ੍ਰੈਲ_ਮਈ_ਜੂਨ_ਜੁਲਾਈ_ਅਗਸਤ_ਸਤੰਬਰ_ਅਕਤੂਬਰ_ਨਵੰਬਰ_ਦਸੰਬਰ'.split('_'), - monthsShort : 'ਜਨਵਰੀ_ਫ਼ਰਵਰੀ_ਮਾਰਚ_ਅਪ੍ਰੈਲ_ਮਈ_ਜੂਨ_ਜੁਲਾਈ_ਅਗਸਤ_ਸਤੰਬਰ_ਅਕਤੂਬਰ_ਨਵੰਬਰ_ਦਸੰਬਰ'.split('_'), - weekdays : 'ਐਤਵਾਰ_ਸੋਮਵਾਰ_ਮੰਗਲਵਾਰ_ਬੁਧਵਾਰ_ਵੀਰਵਾਰ_ਸ਼ੁੱਕਰਵਾਰ_ਸ਼ਨੀਚਰਵਾਰ'.split('_'), - weekdaysShort : 'ਐਤ_ਸੋਮ_ਮੰਗਲ_ਬੁਧ_ਵੀਰ_ਸ਼ੁਕਰ_ਸ਼ਨੀ'.split('_'), - weekdaysMin : 'ਐਤ_ਸੋਮ_ਮੰਗਲ_ਬੁਧ_ਵੀਰ_ਸ਼ੁਕਰ_ਸ਼ਨੀ'.split('_'), - longDateFormat : { - LT : 'A h:mm ਵਜੇ', - LTS : 'A h:mm:ss ਵਜੇ', - L : 'DD/MM/YYYY', - LL : 'D MMMM YYYY', - LLL : 'D MMMM YYYY, A h:mm ਵਜੇ', - LLLL : 'dddd, D MMMM YYYY, A h:mm ਵਜੇ' - }, - 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 (string) { - return string.replace(/[੧੨੩੪੫੬੭੮੯੦]/g, function (match) { - return numberMap$10[match]; - }); - }, - postformat: function (string) { - return string.replace(/\d/g, function (match) { - return symbolMap$11[match]; - }); - }, - // Punjabi notation for meridiems are quite fuzzy in practice. While there exists - // a rigid notion of a 'Pahar' it is not used as rigidly in modern Punjabi. - meridiemParse: /ਰਾਤ|ਸਵੇਰ|ਦੁਪਹਿਰ|ਸ਼ਾਮ/, - meridiemHour : function (hour, meridiem) { - if (hour === 12) { - hour = 0; - } - if (meridiem === 'ਰਾਤ') { - return hour < 4 ? hour : hour + 12; - } else if (meridiem === 'ਸਵੇਰ') { - return hour; - } else if (meridiem === 'ਦੁਪਹਿਰ') { - return hour >= 10 ? hour : hour + 12; - } else if (meridiem === 'ਸ਼ਾਮ') { - return hour + 12; - } - }, - meridiem : function (hour, minute, isLower) { - if (hour < 4) { - return 'ਰਾਤ'; - } else if (hour < 10) { - return 'ਸਵੇਰ'; - } else if (hour < 17) { - return 'ਦੁਪਹਿਰ'; - } else if (hour < 20) { - return 'ਸ਼ਾਮ'; - } else { - return 'ਰਾਤ'; - } - }, - week : { - dow : 0, // Sunday is the first day of the week. - doy : 6 // The week that contains Jan 1st is the first week of the year. - } -}); - -//! moment.js locale configuration -//! locale : Polish [pl] -//! author : Rafal Hirsz : https://github.com/evoL - -var monthsNominative = 'styczeń_luty_marzec_kwiecień_maj_czerwiec_lipiec_sierpień_wrzesień_październik_listopad_grudzień'.split('_'); -var monthsSubjective = 'stycznia_lutego_marca_kwietnia_maja_czerwca_lipca_sierpnia_września_października_listopada_grudnia'.split('_'); -function plural$3(n) { - return (n % 10 < 5) && (n % 10 > 1) && ((~~(n / 10) % 10) !== 1); -} -function translate$7(number, withoutSuffix, key) { - var result = number + ' '; - switch (key) { - case 'm': - return withoutSuffix ? 'minuta' : 'minutę'; - case 'mm': - return result + (plural$3(number) ? 'minuty' : 'minut'); - case 'h': - return withoutSuffix ? 'godzina' : 'godzinę'; - case 'hh': - return result + (plural$3(number) ? 'godziny' : 'godzin'); - case 'MM': - return result + (plural$3(number) ? 'miesiące' : 'miesięcy'); - case 'yy': - return result + (plural$3(number) ? 'lata' : 'lat'); - } -} - -moment.defineLocale('pl', { - months : function (momentToFormat, format) { - if (!momentToFormat) { - return monthsNominative; - } else if (format === '') { - // Hack: if format empty we know this is used to generate - // RegExp by moment. Give then back both valid forms of months - // in RegExp ready format. - return '(' + monthsSubjective[momentToFormat.month()] + '|' + monthsNominative[momentToFormat.month()] + ')'; - } else if (/D MMMM/.test(format)) { - return monthsSubjective[momentToFormat.month()]; - } else { - return monthsNominative[momentToFormat.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 : 'ndz_pon_wt_śr_czw_pt_sob'.split('_'), - weekdaysMin : 'Nd_Pn_Wt_Śr_Cz_Pt_So'.split('_'), - longDateFormat : { - LT : 'HH:mm', - LTS : 'HH:mm:ss', - L : 'DD.MM.YYYY', - LL : 'D MMMM YYYY', - LLL : 'D MMMM YYYY HH:mm', - LLLL : 'dddd, D MMMM YYYY HH:mm' - }, - 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 : translate$7, - mm : translate$7, - h : translate$7, - hh : translate$7, - d : '1 dzień', - dd : '%d dni', - M : 'miesiąc', - MM : translate$7, - y : 'rok', - yy : translate$7 - }, - dayOfMonthOrdinalParse: /\d{1,2}\./, - ordinal : '%d.', - week : { - dow : 1, // Monday is the first day of the week. - doy : 4 // The week that contains Jan 4th is the first week of the year. - } -}); - -//! moment.js locale configuration -//! locale : Portuguese (Brazil) [pt-br] -//! author : Caio Ribeiro Pereira : https://github.com/caio-ribeiro-pereira - -moment.defineLocale('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 : 'Do_2ª_3ª_4ª_5ª_6ª_Sá'.split('_'), - weekdaysParseExact : true, - longDateFormat : { - LT : 'HH:mm', - LTS : 'HH:mm:ss', - L : 'DD/MM/YYYY', - LL : 'D [de] MMMM [de] YYYY', - LLL : 'D [de] MMMM [de] YYYY [às] HH:mm', - LLLL : 'dddd, D [de] MMMM [de] YYYY [às] HH:mm' - }, - calendar : { - sameDay: '[Hoje às] LT', - nextDay: '[Amanhã às] LT', - nextWeek: 'dddd [às] LT', - lastDay: '[Ontem às] LT', - lastWeek: function () { - return (this.day() === 0 || this.day() === 6) ? - '[Último] dddd [às] LT' : // Saturday + Sunday - '[Última] dddd [às] LT'; // Monday - Friday - }, - sameElse: 'L' - }, - relativeTime : { - future : 'em %s', - past : '%s atrás', - s : 'poucos 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' - }, - dayOfMonthOrdinalParse: /\d{1,2}º/, - ordinal : '%dº' -}); - -//! moment.js locale configuration -//! locale : Portuguese [pt] -//! author : Jefferson : https://github.com/jalex79 - -moment.defineLocale('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 : 'Do_2ª_3ª_4ª_5ª_6ª_Sá'.split('_'), - weekdaysParseExact : true, - longDateFormat : { - LT : 'HH:mm', - LTS : 'HH:mm:ss', - L : 'DD/MM/YYYY', - LL : 'D [de] MMMM [de] YYYY', - LLL : 'D [de] MMMM [de] YYYY HH:mm', - LLLL : 'dddd, D [de] MMMM [de] YYYY HH:mm' - }, - calendar : { - sameDay: '[Hoje às] LT', - nextDay: '[Amanhã às] LT', - nextWeek: 'dddd [às] LT', - lastDay: '[Ontem às] LT', - lastWeek: function () { - return (this.day() === 0 || this.day() === 6) ? - '[Último] dddd [às] LT' : // Saturday + Sunday - '[Última] dddd [às] LT'; // Monday - Friday - }, - sameElse: 'L' - }, - relativeTime : { - future : 'em %s', - past : 'há %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' - }, - dayOfMonthOrdinalParse: /\d{1,2}º/, - ordinal : '%dº', - week : { - dow : 1, // Monday is the first day of the week. - doy : 4 // The week that contains Jan 4th is the first week of the year. - } -}); - -//! moment.js locale configuration -//! locale : Romanian [ro] -//! author : Vlad Gurdiga : https://github.com/gurdiga -//! author : Valentin Agachi : https://github.com/avaly - -function relativeTimeWithPlural$2(number, withoutSuffix, key) { - var format = { - 'mm': 'minute', - 'hh': 'ore', - 'dd': 'zile', - 'MM': 'luni', - 'yy': 'ani' - }, - separator = ' '; - if (number % 100 >= 20 || (number >= 100 && number % 100 === 0)) { - separator = ' de '; - } - return number + separator + format[key]; -} - -moment.defineLocale('ro', { - months : 'ianuarie_februarie_martie_aprilie_mai_iunie_iulie_august_septembrie_octombrie_noiembrie_decembrie'.split('_'), - monthsShort : 'ian._febr._mart._apr._mai_iun._iul._aug._sept._oct._nov._dec.'.split('_'), - monthsParseExact: true, - 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', - LTS : 'H:mm:ss', - 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 : relativeTimeWithPlural$2, - h : 'o oră', - hh : relativeTimeWithPlural$2, - d : 'o zi', - dd : relativeTimeWithPlural$2, - M : 'o lună', - MM : relativeTimeWithPlural$2, - y : 'un an', - yy : relativeTimeWithPlural$2 - }, - week : { - dow : 1, // Monday is the first day of the week. - doy : 7 // The week that contains Jan 1st is the first week of the year. - } -}); - -//! moment.js locale configuration -//! locale : Russian [ru] -//! author : Viktorminator : https://github.com/Viktorminator -//! Author : Menelion Elensúle : https://github.com/Oire -//! author : Коренберг Марк : https://github.com/socketpair - -function plural$4(word, num) { - var forms = word.split('_'); - return num % 10 === 1 && num % 100 !== 11 ? forms[0] : (num % 10 >= 2 && num % 10 <= 4 && (num % 100 < 10 || num % 100 >= 20) ? forms[1] : forms[2]); -} -function relativeTimeWithPlural$3(number, withoutSuffix, key) { - var format = { - 'mm': withoutSuffix ? 'минута_минуты_минут' : 'минуту_минуты_минут', - 'hh': 'час_часа_часов', - 'dd': 'день_дня_дней', - 'MM': 'месяц_месяца_месяцев', - 'yy': 'год_года_лет' - }; - if (key === 'm') { - return withoutSuffix ? 'минута' : 'минуту'; - } - else { - return number + ' ' + plural$4(format[key], +number); - } -} -var monthsParse$2 = [/^янв/i, /^фев/i, /^мар/i, /^апр/i, /^ма[йя]/i, /^июн/i, /^июл/i, /^авг/i, /^сен/i, /^окт/i, /^ноя/i, /^дек/i]; - -// http://new.gramota.ru/spravka/rules/139-prop : § 103 -// Сокращения месяцев: http://new.gramota.ru/spravka/buro/search-answer?s=242637 -// CLDR data: http://www.unicode.org/cldr/charts/28/summary/ru.html#1753 -moment.defineLocale('ru', { - months : { - format: 'января_февраля_марта_апреля_мая_июня_июля_августа_сентября_октября_ноября_декабря'.split('_'), - standalone: 'январь_февраль_март_апрель_май_июнь_июль_август_сентябрь_октябрь_ноябрь_декабрь'.split('_') - }, - monthsShort : { - // по CLDR именно "июл." и "июн.", но какой смысл менять букву на точку ? - format: 'янв._февр._мар._апр._мая_июня_июля_авг._сент._окт._нояб._дек.'.split('_'), - standalone: 'янв._февр._март_апр._май_июнь_июль_авг._сент._окт._нояб._дек.'.split('_') - }, - weekdays : { - standalone: 'воскресенье_понедельник_вторник_среда_четверг_пятница_суббота'.split('_'), - format: 'воскресенье_понедельник_вторник_среду_четверг_пятницу_субботу'.split('_'), - isFormat: /\[ ?[Вв] ?(?:прошлую|следующую|эту)? ?\] ?dddd/ - }, - weekdaysShort : 'вс_пн_вт_ср_чт_пт_сб'.split('_'), - weekdaysMin : 'вс_пн_вт_ср_чт_пт_сб'.split('_'), - monthsParse : monthsParse$2, - longMonthsParse : monthsParse$2, - shortMonthsParse : monthsParse$2, - - // полные названия с падежами, по три буквы, для некоторых, по 4 буквы, сокращения с точкой и без точки - monthsRegex: /^(январ[ья]|янв\.?|феврал[ья]|февр?\.?|марта?|мар\.?|апрел[ья]|апр\.?|ма[йя]|июн[ья]|июн\.?|июл[ья]|июл\.?|августа?|авг\.?|сентябр[ья]|сент?\.?|октябр[ья]|окт\.?|ноябр[ья]|нояб?\.?|декабр[ья]|дек\.?)/i, - - // копия предыдущего - monthsShortRegex: /^(январ[ья]|янв\.?|феврал[ья]|февр?\.?|марта?|мар\.?|апрел[ья]|апр\.?|ма[йя]|июн[ья]|июн\.?|июл[ья]|июл\.?|августа?|авг\.?|сентябр[ья]|сент?\.?|октябр[ья]|окт\.?|ноябр[ья]|нояб?\.?|декабр[ья]|дек\.?)/i, - - // полные названия с падежами - monthsStrictRegex: /^(январ[яь]|феврал[яь]|марта?|апрел[яь]|ма[яй]|июн[яь]|июл[яь]|августа?|сентябр[яь]|октябр[яь]|ноябр[яь]|декабр[яь])/i, - - // Выражение, которое соотвествует только сокращённым формам - monthsShortStrictRegex: /^(янв\.|февр?\.|мар[т.]|апр\.|ма[яй]|июн[ья.]|июл[ья.]|авг\.|сент?\.|окт\.|нояб?\.|дек\.)/i, - longDateFormat : { - LT : 'HH:mm', - LTS : 'HH:mm:ss', - L : 'DD.MM.YYYY', - LL : 'D MMMM YYYY г.', - LLL : 'D MMMM YYYY г., HH:mm', - LLLL : 'dddd, D MMMM YYYY г., HH:mm' - }, - calendar : { - sameDay: '[Сегодня в] LT', - nextDay: '[Завтра в] LT', - lastDay: '[Вчера в] LT', - nextWeek: function (now) { - if (now.week() !== this.week()) { - 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'; - } - } else { - if (this.day() === 2) { - return '[Во] dddd [в] LT'; - } else { - return '[В] dddd [в] LT'; - } - } - }, - lastWeek: function (now) { - if (now.week() !== this.week()) { - 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'; - } - } else { - if (this.day() === 2) { - return '[Во] dddd [в] LT'; - } else { - return '[В] dddd [в] LT'; - } - } - }, - sameElse: 'L' - }, - relativeTime : { - future : 'через %s', - past : '%s назад', - s : 'несколько секунд', - m : relativeTimeWithPlural$3, - mm : relativeTimeWithPlural$3, - h : 'час', - hh : relativeTimeWithPlural$3, - d : 'день', - dd : relativeTimeWithPlural$3, - M : 'месяц', - MM : relativeTimeWithPlural$3, - y : 'год', - yy : relativeTimeWithPlural$3 - }, - meridiemParse: /ночи|утра|дня|вечера/i, - isPM : function (input) { - return /^(дня|вечера)$/.test(input); - }, - meridiem : function (hour, minute, isLower) { - if (hour < 4) { - return 'ночи'; - } else if (hour < 12) { - return 'утра'; - } else if (hour < 17) { - return 'дня'; - } else { - return 'вечера'; - } - }, - dayOfMonthOrdinalParse: /\d{1,2}-(й|го|я)/, - ordinal: function (number, period) { - switch (period) { - case 'M': - case 'd': - case 'DDD': - return number + '-й'; - case 'D': - return number + '-го'; - case 'w': - case 'W': - return number + '-я'; - default: - return number; - } - }, - week : { - dow : 1, // Monday is the first day of the week. - doy : 7 // The week that contains Jan 1st is the first week of the year. - } -}); - -//! moment.js locale configuration -//! locale : Sindhi [sd] -//! author : Narain Sagar : https://github.com/narainsagar - -var months$5 = [ - 'جنوري', - 'فيبروري', - 'مارچ', - 'اپريل', - 'مئي', - 'جون', - 'جولاءِ', - 'آگسٽ', - 'سيپٽمبر', - 'آڪٽوبر', - 'نومبر', - 'ڊسمبر' -]; -var days = [ - 'آچر', - 'سومر', - 'اڱارو', - 'اربع', - 'خميس', - 'جمع', - 'ڇنڇر' -]; - -moment.defineLocale('sd', { - months : months$5, - monthsShort : months$5, - weekdays : days, - weekdaysShort : days, - weekdaysMin : days, - longDateFormat : { - LT : 'HH:mm', - LTS : 'HH:mm:ss', - L : 'DD/MM/YYYY', - LL : 'D MMMM YYYY', - LLL : 'D MMMM YYYY HH:mm', - LLLL : 'dddd، D MMMM YYYY HH:mm' - }, - meridiemParse: /صبح|شام/, - isPM : function (input) { - return 'شام' === input; - }, - meridiem : function (hour, minute, isLower) { - if (hour < 12) { - return 'صبح'; - } - return 'شام'; - }, - 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 (string) { - return string.replace(/،/g, ','); - }, - postformat: function (string) { - return string.replace(/,/g, '،'); - }, - week : { - dow : 1, // Monday is the first day of the week. - doy : 4 // The week that contains Jan 4th is the first week of the year. - } -}); - -//! moment.js locale configuration -//! locale : Northern Sami [se] -//! authors : Bård Rolstad Henriksen : https://github.com/karamell - - -moment.defineLocale('se', { - months : 'ođđajagemánnu_guovvamánnu_njukčamánnu_cuoŋománnu_miessemánnu_geassemánnu_suoidnemánnu_borgemánnu_čakčamánnu_golggotmánnu_skábmamánnu_juovlamánnu'.split('_'), - monthsShort : 'ođđj_guov_njuk_cuo_mies_geas_suoi_borg_čakč_golg_skáb_juov'.split('_'), - weekdays : 'sotnabeaivi_vuossárga_maŋŋebárga_gaskavahkku_duorastat_bearjadat_lávvardat'.split('_'), - weekdaysShort : 'sotn_vuos_maŋ_gask_duor_bear_láv'.split('_'), - weekdaysMin : 's_v_m_g_d_b_L'.split('_'), - longDateFormat : { - LT : 'HH:mm', - LTS : 'HH:mm:ss', - L : 'DD.MM.YYYY', - LL : 'MMMM D. [b.] YYYY', - LLL : 'MMMM D. [b.] YYYY [ti.] HH:mm', - LLLL : 'dddd, MMMM D. [b.] YYYY [ti.] HH:mm' - }, - calendar : { - sameDay: '[otne ti] LT', - nextDay: '[ihttin ti] LT', - nextWeek: 'dddd [ti] LT', - lastDay: '[ikte ti] LT', - lastWeek: '[ovddit] dddd [ti] LT', - sameElse: 'L' - }, - relativeTime : { - future : '%s geažes', - past : 'maŋit %s', - s : 'moadde sekunddat', - m : 'okta minuhta', - mm : '%d minuhtat', - h : 'okta diimmu', - hh : '%d diimmut', - d : 'okta beaivi', - dd : '%d beaivvit', - M : 'okta mánnu', - MM : '%d mánut', - y : 'okta jahki', - yy : '%d jagit' - }, - dayOfMonthOrdinalParse: /\d{1,2}\./, - ordinal : '%d.', - week : { - dow : 1, // Monday is the first day of the week. - doy : 4 // The week that contains Jan 4th is the first week of the year. - } -}); - -//! moment.js locale configuration -//! locale : Sinhalese [si] -//! author : Sampath Sitinamaluwa : https://github.com/sampathsris - -/*jshint -W100*/ -moment.defineLocale('si', { - months : 'ජනවාරි_පෙබරවාරි_මාර්තු_අප්‍රේල්_මැයි_ජූනි_ජූලි_අගෝස්තු_සැප්තැම්බර්_ඔක්තෝබර්_නොවැම්බර්_දෙසැම්බර්'.split('_'), - monthsShort : 'ජන_පෙබ_මාර්_අප්_මැයි_ජූනි_ජූලි_අගෝ_සැප්_ඔක්_නොවැ_දෙසැ'.split('_'), - weekdays : 'ඉරිදා_සඳුදා_අඟහරුවාදා_බදාදා_බ්‍රහස්පතින්දා_සිකුරාදා_සෙනසුරාදා'.split('_'), - weekdaysShort : 'ඉරි_සඳු_අඟ_බදා_බ්‍රහ_සිකු_සෙන'.split('_'), - weekdaysMin : 'ඉ_ස_අ_බ_බ්‍ර_සි_සෙ'.split('_'), - weekdaysParseExact : true, - longDateFormat : { - LT : 'a h:mm', - LTS : 'a h:mm:ss', - L : 'YYYY/MM/DD', - LL : 'YYYY MMMM D', - LLL : 'YYYY MMMM D, a h:mm', - LLLL : 'YYYY MMMM D [වැනි] dddd, a h:mm:ss' - }, - 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' - }, - dayOfMonthOrdinalParse: /\d{1,2} වැනි/, - ordinal : function (number) { - return number + ' වැනි'; - }, - meridiemParse : /පෙර වරු|පස් වරු|පෙ.ව|ප.ව./, - isPM : function (input) { - return input === 'ප.ව.' || input === 'පස් වරු'; - }, - meridiem : function (hours, minutes, isLower) { - if (hours > 11) { - return isLower ? 'ප.ව.' : 'පස් වරු'; - } else { - return isLower ? 'පෙ.ව.' : 'පෙර වරු'; - } - } -}); - -//! moment.js locale configuration -//! locale : Slovak [sk] -//! author : Martin Minka : https://github.com/k2s -//! based on work of petrbela : https://github.com/petrbela - -var months$6 = 'január_február_marec_apríl_máj_jún_júl_august_september_október_november_december'.split('_'); -var monthsShort$4 = 'jan_feb_mar_apr_máj_jún_júl_aug_sep_okt_nov_dec'.split('_'); -function plural$5(n) { - return (n > 1) && (n < 5); -} -function translate$8(number, withoutSuffix, key, isFuture) { - var result = number + ' '; - switch (key) { - case 's': // a few seconds / in a few seconds / a few seconds ago - return (withoutSuffix || isFuture) ? 'pár sekúnd' : 'pár sekundami'; - case 'm': // a minute / in a minute / a minute ago - return withoutSuffix ? 'minúta' : (isFuture ? 'minútu' : 'minútou'); - case 'mm': // 9 minutes / in 9 minutes / 9 minutes ago - if (withoutSuffix || isFuture) { - return result + (plural$5(number) ? 'minúty' : 'minút'); - } else { - return result + 'minútami'; - } - break; - case 'h': // an hour / in an hour / an hour ago - return withoutSuffix ? 'hodina' : (isFuture ? 'hodinu' : 'hodinou'); - case 'hh': // 9 hours / in 9 hours / 9 hours ago - if (withoutSuffix || isFuture) { - return result + (plural$5(number) ? 'hodiny' : 'hodín'); - } else { - return result + 'hodinami'; - } - break; - case 'd': // a day / in a day / a day ago - return (withoutSuffix || isFuture) ? 'deň' : 'dňom'; - case 'dd': // 9 days / in 9 days / 9 days ago - if (withoutSuffix || isFuture) { - return result + (plural$5(number) ? 'dni' : 'dní'); - } else { - return result + 'dňami'; - } - break; - case 'M': // a month / in a month / a month ago - return (withoutSuffix || isFuture) ? 'mesiac' : 'mesiacom'; - case 'MM': // 9 months / in 9 months / 9 months ago - if (withoutSuffix || isFuture) { - return result + (plural$5(number) ? 'mesiace' : 'mesiacov'); - } else { - return result + 'mesiacmi'; - } - break; - case 'y': // a year / in a year / a year ago - return (withoutSuffix || isFuture) ? 'rok' : 'rokom'; - case 'yy': // 9 years / in 9 years / 9 years ago - if (withoutSuffix || isFuture) { - return result + (plural$5(number) ? 'roky' : 'rokov'); - } else { - return result + 'rokmi'; - } - break; - } -} - -moment.defineLocale('sk', { - months : months$6, - monthsShort : monthsShort$4, - 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', - LTS : 'H:mm:ss', - L : 'DD.MM.YYYY', - LL : 'D. MMMM YYYY', - LLL : 'D. MMMM YYYY H:mm', - LLLL : 'dddd D. MMMM YYYY H:mm' - }, - 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 : translate$8, - m : translate$8, - mm : translate$8, - h : translate$8, - hh : translate$8, - d : translate$8, - dd : translate$8, - M : translate$8, - MM : translate$8, - y : translate$8, - yy : translate$8 - }, - dayOfMonthOrdinalParse: /\d{1,2}\./, - ordinal : '%d.', - week : { - dow : 1, // Monday is the first day of the week. - doy : 4 // The week that contains Jan 4th is the first week of the year. - } -}); - -//! moment.js locale configuration -//! locale : Slovenian [sl] -//! author : Robert Sedovšek : https://github.com/sedovsek - -function processRelativeTime$6(number, withoutSuffix, key, isFuture) { - var result = number + ' '; - switch (key) { - case 's': - return withoutSuffix || isFuture ? 'nekaj sekund' : 'nekaj sekundami'; - case 'm': - return withoutSuffix ? 'ena minuta' : 'eno minuto'; - case 'mm': - if (number === 1) { - result += withoutSuffix ? 'minuta' : 'minuto'; - } else if (number === 2) { - result += withoutSuffix || isFuture ? 'minuti' : 'minutama'; - } else if (number < 5) { - result += withoutSuffix || isFuture ? 'minute' : 'minutami'; - } else { - result += withoutSuffix || isFuture ? 'minut' : 'minutami'; - } - return result; - case 'h': - return withoutSuffix ? 'ena ura' : 'eno uro'; - case 'hh': - if (number === 1) { - result += withoutSuffix ? 'ura' : 'uro'; - } else if (number === 2) { - result += withoutSuffix || isFuture ? 'uri' : 'urama'; - } else if (number < 5) { - result += withoutSuffix || isFuture ? 'ure' : 'urami'; - } else { - result += withoutSuffix || isFuture ? 'ur' : 'urami'; - } - return result; - case 'd': - return withoutSuffix || isFuture ? 'en dan' : 'enim dnem'; - case 'dd': - if (number === 1) { - result += withoutSuffix || isFuture ? 'dan' : 'dnem'; - } else if (number === 2) { - result += withoutSuffix || isFuture ? 'dni' : 'dnevoma'; - } else { - result += withoutSuffix || isFuture ? 'dni' : 'dnevi'; - } - return result; - case 'M': - return withoutSuffix || isFuture ? 'en mesec' : 'enim mesecem'; - case 'MM': - if (number === 1) { - result += withoutSuffix || isFuture ? 'mesec' : 'mesecem'; - } else if (number === 2) { - result += withoutSuffix || isFuture ? 'meseca' : 'mesecema'; - } else if (number < 5) { - result += withoutSuffix || isFuture ? 'mesece' : 'meseci'; - } else { - result += withoutSuffix || isFuture ? 'mesecev' : 'meseci'; - } - return result; - case 'y': - return withoutSuffix || isFuture ? 'eno leto' : 'enim letom'; - case 'yy': - if (number === 1) { - result += withoutSuffix || isFuture ? 'leto' : 'letom'; - } else if (number === 2) { - result += withoutSuffix || isFuture ? 'leti' : 'letoma'; - } else if (number < 5) { - result += withoutSuffix || isFuture ? 'leta' : 'leti'; - } else { - result += withoutSuffix || isFuture ? 'let' : 'leti'; - } - return result; - } -} - -moment.defineLocale('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('_'), - monthsParseExact: true, - 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('_'), - weekdaysParseExact : true, - longDateFormat : { - LT : 'H:mm', - LTS : 'H:mm:ss', - L : 'DD.MM.YYYY', - LL : 'D. MMMM YYYY', - LLL : 'D. MMMM YYYY H:mm', - LLLL : 'dddd, D. MMMM YYYY H:mm' - }, - 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: - return '[prejšnjo] [nedeljo] [ob] LT'; - case 3: - return '[prejšnjo] [sredo] [ob] LT'; - case 6: - return '[prejšnjo] [soboto] [ob] LT'; - case 1: - case 2: - case 4: - case 5: - return '[prejšnji] dddd [ob] LT'; - } - }, - sameElse : 'L' - }, - relativeTime : { - future : 'čez %s', - past : 'pred %s', - s : processRelativeTime$6, - m : processRelativeTime$6, - mm : processRelativeTime$6, - h : processRelativeTime$6, - hh : processRelativeTime$6, - d : processRelativeTime$6, - dd : processRelativeTime$6, - M : processRelativeTime$6, - MM : processRelativeTime$6, - y : processRelativeTime$6, - yy : processRelativeTime$6 - }, - dayOfMonthOrdinalParse: /\d{1,2}\./, - ordinal : '%d.', - week : { - dow : 1, // Monday is the first day of the week. - doy : 7 // The week that contains Jan 1st is the first week of the year. - } -}); - -//! moment.js locale configuration -//! locale : Albanian [sq] -//! author : Flakërim Ismani : https://github.com/flakerimi -//! author : Menelion Elensúle : https://github.com/Oire -//! author : Oerd Cukalla : https://github.com/oerd - -moment.defineLocale('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 Martë_E Mërkurë_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('_'), - weekdaysParseExact : true, - meridiemParse: /PD|MD/, - isPM: function (input) { - return input.charAt(0) === 'M'; - }, - meridiem : function (hours, minutes, isLower) { - return hours < 12 ? 'PD' : 'MD'; - }, - longDateFormat : { - LT : 'HH:mm', - LTS : 'HH:mm:ss', - L : 'DD/MM/YYYY', - LL : 'D MMMM YYYY', - LLL : 'D MMMM YYYY HH:mm', - LLLL : 'dddd, D MMMM YYYY HH:mm' - }, - calendar : { - sameDay : '[Sot në] LT', - nextDay : '[Nesër në] LT', - nextWeek : 'dddd [në] LT', - lastDay : '[Dje në] LT', - lastWeek : 'dddd [e kaluar në] LT', - sameElse : 'L' - }, - relativeTime : { - future : 'në %s', - past : '%s më parë', - s : 'disa sekonda', - m : 'një minutë', - mm : '%d minuta', - h : 'një orë', - hh : '%d orë', - d : 'një ditë', - dd : '%d ditë', - M : 'një muaj', - MM : '%d muaj', - y : 'një vit', - yy : '%d vite' - }, - dayOfMonthOrdinalParse: /\d{1,2}\./, - ordinal : '%d.', - week : { - dow : 1, // Monday is the first day of the week. - doy : 4 // The week that contains Jan 4th is the first week of the year. - } -}); - -//! moment.js locale configuration -//! locale : Serbian Cyrillic [sr-cyrl] -//! author : Milan Janačković<milanjanackovic@gmail.com> : https://github.com/milan-j - -var translator$1 = { - words: { //Different grammatical cases - m: ['један минут', 'једне минуте'], - mm: ['минут', 'минуте', 'минута'], - h: ['један сат', 'једног сата'], - hh: ['сат', 'сата', 'сати'], - dd: ['дан', 'дана', 'дана'], - MM: ['месец', 'месеца', 'месеци'], - yy: ['година', 'године', 'година'] - }, - correctGrammaticalCase: function (number, wordKey) { - return number === 1 ? wordKey[0] : (number >= 2 && number <= 4 ? wordKey[1] : wordKey[2]); - }, - translate: function (number, withoutSuffix, key) { - var wordKey = translator$1.words[key]; - if (key.length === 1) { - return withoutSuffix ? wordKey[0] : wordKey[1]; - } else { - return number + ' ' + translator$1.correctGrammaticalCase(number, wordKey); - } - } -}; - -moment.defineLocale('sr-cyrl', { - months: 'јануар_фебруар_март_април_мај_јун_јул_август_септембар_октобар_новембар_децембар'.split('_'), - monthsShort: 'јан._феб._мар._апр._мај_јун_јул_авг._сеп._окт._нов._дец.'.split('_'), - monthsParseExact: true, - weekdays: 'недеља_понедељак_уторак_среда_четвртак_петак_субота'.split('_'), - weekdaysShort: 'нед._пон._уто._сре._чет._пет._суб.'.split('_'), - weekdaysMin: 'не_по_ут_ср_че_пе_су'.split('_'), - weekdaysParseExact : true, - longDateFormat: { - LT: 'H:mm', - LTS : 'H:mm:ss', - L: 'DD.MM.YYYY', - LL: 'D. MMMM YYYY', - LLL: 'D. MMMM YYYY H:mm', - LLLL: 'dddd, D. MMMM YYYY H:mm' - }, - calendar: { - sameDay: '[данас у] LT', - nextDay: '[сутра у] LT', - nextWeek: function () { - switch (this.day()) { - case 0: - return '[у] [недељу] [у] LT'; - case 3: - return '[у] [среду] [у] LT'; - case 6: - return '[у] [суботу] [у] LT'; - case 1: - case 2: - case 4: - case 5: - return '[у] dddd [у] LT'; - } - }, - lastDay : '[јуче у] LT', - lastWeek : function () { - var lastWeekDays = [ - '[прошле] [недеље] [у] LT', - '[прошлог] [понедељка] [у] LT', - '[прошлог] [уторка] [у] LT', - '[прошле] [среде] [у] LT', - '[прошлог] [четвртка] [у] LT', - '[прошлог] [петка] [у] LT', - '[прошле] [суботе] [у] LT' - ]; - return lastWeekDays[this.day()]; - }, - sameElse : 'L' - }, - relativeTime : { - future : 'за %s', - past : 'пре %s', - s : 'неколико секунди', - m : translator$1.translate, - mm : translator$1.translate, - h : translator$1.translate, - hh : translator$1.translate, - d : 'дан', - dd : translator$1.translate, - M : 'месец', - MM : translator$1.translate, - y : 'годину', - yy : translator$1.translate - }, - dayOfMonthOrdinalParse: /\d{1,2}\./, - ordinal : '%d.', - week : { - dow : 1, // Monday is the first day of the week. - doy : 7 // The week that contains Jan 1st is the first week of the year. - } -}); - -//! moment.js locale configuration -//! locale : Serbian [sr] -//! author : Milan Janačković<milanjanackovic@gmail.com> : https://github.com/milan-j - -var translator$2 = { - words: { //Different grammatical cases - m: ['jedan minut', 'jedne minute'], - mm: ['minut', 'minute', 'minuta'], - h: ['jedan sat', 'jednog sata'], - hh: ['sat', 'sata', 'sati'], - dd: ['dan', 'dana', 'dana'], - MM: ['mesec', 'meseca', 'meseci'], - yy: ['godina', 'godine', 'godina'] - }, - correctGrammaticalCase: function (number, wordKey) { - return number === 1 ? wordKey[0] : (number >= 2 && number <= 4 ? wordKey[1] : wordKey[2]); - }, - translate: function (number, withoutSuffix, key) { - var wordKey = translator$2.words[key]; - if (key.length === 1) { - return withoutSuffix ? wordKey[0] : wordKey[1]; - } else { - return number + ' ' + translator$2.correctGrammaticalCase(number, wordKey); - } - } -}; - -moment.defineLocale('sr', { - months: 'januar_februar_mart_april_maj_jun_jul_avgust_septembar_oktobar_novembar_decembar'.split('_'), - monthsShort: 'jan._feb._mar._apr._maj_jun_jul_avg._sep._okt._nov._dec.'.split('_'), - monthsParseExact: true, - weekdays: 'nedelja_ponedeljak_utorak_sreda_četvrtak_petak_subota'.split('_'), - weekdaysShort: 'ned._pon._uto._sre._čet._pet._sub.'.split('_'), - weekdaysMin: 'ne_po_ut_sr_če_pe_su'.split('_'), - weekdaysParseExact : true, - longDateFormat: { - LT: 'H:mm', - LTS : 'H:mm:ss', - L: 'DD.MM.YYYY', - LL: 'D. MMMM YYYY', - LLL: 'D. MMMM YYYY H:mm', - LLLL: 'dddd, D. MMMM YYYY H:mm' - }, - calendar: { - sameDay: '[danas u] LT', - nextDay: '[sutra u] LT', - nextWeek: function () { - switch (this.day()) { - case 0: - return '[u] [nedelju] [u] LT'; - case 3: - return '[u] [sredu] [u] LT'; - case 6: - return '[u] [subotu] [u] LT'; - case 1: - case 2: - case 4: - case 5: - return '[u] dddd [u] LT'; - } - }, - lastDay : '[juče u] LT', - lastWeek : function () { - var lastWeekDays = [ - '[prošle] [nedelje] [u] LT', - '[prošlog] [ponedeljka] [u] LT', - '[prošlog] [utorka] [u] LT', - '[prošle] [srede] [u] LT', - '[prošlog] [četvrtka] [u] LT', - '[prošlog] [petka] [u] LT', - '[prošle] [subote] [u] LT' - ]; - return lastWeekDays[this.day()]; - }, - sameElse : 'L' - }, - relativeTime : { - future : 'za %s', - past : 'pre %s', - s : 'nekoliko sekundi', - m : translator$2.translate, - mm : translator$2.translate, - h : translator$2.translate, - hh : translator$2.translate, - d : 'dan', - dd : translator$2.translate, - M : 'mesec', - MM : translator$2.translate, - y : 'godinu', - yy : translator$2.translate - }, - dayOfMonthOrdinalParse: /\d{1,2}\./, - ordinal : '%d.', - week : { - dow : 1, // Monday is the first day of the week. - doy : 7 // The week that contains Jan 1st is the first week of the year. - } -}); - -//! moment.js locale configuration -//! locale : siSwati [ss] -//! author : Nicolai Davies<mail@nicolai.io> : https://github.com/nicolaidavies - - -moment.defineLocale('ss', { - months : "Bhimbidvwane_Indlovana_Indlov'lenkhulu_Mabasa_Inkhwekhweti_Inhlaba_Kholwane_Ingci_Inyoni_Imphala_Lweti_Ingongoni".split('_'), - monthsShort : 'Bhi_Ina_Inu_Mab_Ink_Inh_Kho_Igc_Iny_Imp_Lwe_Igo'.split('_'), - weekdays : 'Lisontfo_Umsombuluko_Lesibili_Lesitsatfu_Lesine_Lesihlanu_Umgcibelo'.split('_'), - weekdaysShort : 'Lis_Umb_Lsb_Les_Lsi_Lsh_Umg'.split('_'), - weekdaysMin : 'Li_Us_Lb_Lt_Ls_Lh_Ug'.split('_'), - weekdaysParseExact : true, - longDateFormat : { - LT : 'h:mm A', - LTS : 'h:mm:ss A', - L : 'DD/MM/YYYY', - LL : 'D MMMM YYYY', - LLL : 'D MMMM YYYY h:mm A', - LLLL : 'dddd, D MMMM YYYY h:mm A' - }, - calendar : { - sameDay : '[Namuhla nga] LT', - nextDay : '[Kusasa nga] LT', - nextWeek : 'dddd [nga] LT', - lastDay : '[Itolo nga] LT', - lastWeek : 'dddd [leliphelile] [nga] LT', - sameElse : 'L' - }, - relativeTime : { - future : 'nga %s', - past : 'wenteka nga %s', - s : 'emizuzwana lomcane', - m : 'umzuzu', - mm : '%d emizuzu', - h : 'lihora', - hh : '%d emahora', - d : 'lilanga', - dd : '%d emalanga', - M : 'inyanga', - MM : '%d tinyanga', - y : 'umnyaka', - yy : '%d iminyaka' - }, - meridiemParse: /ekuseni|emini|entsambama|ebusuku/, - meridiem : function (hours, minutes, isLower) { - if (hours < 11) { - return 'ekuseni'; - } else if (hours < 15) { - return 'emini'; - } else if (hours < 19) { - return 'entsambama'; - } else { - return 'ebusuku'; - } - }, - meridiemHour : function (hour, meridiem) { - if (hour === 12) { - hour = 0; - } - if (meridiem === 'ekuseni') { - return hour; - } else if (meridiem === 'emini') { - return hour >= 11 ? hour : hour + 12; - } else if (meridiem === 'entsambama' || meridiem === 'ebusuku') { - if (hour === 0) { - return 0; - } - return hour + 12; - } - }, - dayOfMonthOrdinalParse: /\d{1,2}/, - ordinal : '%d', - week : { - dow : 1, // Monday is the first day of the week. - doy : 4 // The week that contains Jan 4th is the first week of the year. - } -}); - -//! moment.js locale configuration -//! locale : Swedish [sv] -//! author : Jens Alm : https://github.com/ulmus - -moment.defineLocale('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', - LTS : 'HH:mm:ss', - L : 'YYYY-MM-DD', - LL : 'D MMMM YYYY', - LLL : 'D MMMM YYYY [kl.] HH:mm', - LLLL : 'dddd D MMMM YYYY [kl.] HH:mm', - lll : 'D MMM YYYY HH:mm', - llll : 'ddd D MMM YYYY HH:mm' - }, - calendar : { - sameDay: '[Idag] LT', - nextDay: '[Imorgon] LT', - lastDay: '[Igår] LT', - nextWeek: '[På] dddd LT', - lastWeek: '[I] dddd[s] 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' - }, - dayOfMonthOrdinalParse: /\d{1,2}(e|a)/, - ordinal : function (number) { - var b = number % 10, - output = (~~(number % 100 / 10) === 1) ? 'e' : - (b === 1) ? 'a' : - (b === 2) ? 'a' : - (b === 3) ? 'e' : 'e'; - return number + output; - }, - week : { - dow : 1, // Monday is the first day of the week. - doy : 4 // The week that contains Jan 4th is the first week of the year. - } -}); - -//! moment.js locale configuration -//! locale : Swahili [sw] -//! author : Fahad Kassim : https://github.com/fadsel - -moment.defineLocale('sw', { - months : 'Januari_Februari_Machi_Aprili_Mei_Juni_Julai_Agosti_Septemba_Oktoba_Novemba_Desemba'.split('_'), - monthsShort : 'Jan_Feb_Mac_Apr_Mei_Jun_Jul_Ago_Sep_Okt_Nov_Des'.split('_'), - weekdays : 'Jumapili_Jumatatu_Jumanne_Jumatano_Alhamisi_Ijumaa_Jumamosi'.split('_'), - weekdaysShort : 'Jpl_Jtat_Jnne_Jtan_Alh_Ijm_Jmos'.split('_'), - weekdaysMin : 'J2_J3_J4_J5_Al_Ij_J1'.split('_'), - weekdaysParseExact : true, - longDateFormat : { - LT : 'HH:mm', - LTS : 'HH:mm:ss', - L : 'DD.MM.YYYY', - LL : 'D MMMM YYYY', - LLL : 'D MMMM YYYY HH:mm', - LLLL : 'dddd, D MMMM YYYY HH:mm' - }, - calendar : { - sameDay : '[leo saa] LT', - nextDay : '[kesho saa] LT', - nextWeek : '[wiki ijayo] dddd [saat] LT', - lastDay : '[jana] LT', - lastWeek : '[wiki iliyopita] dddd [saat] LT', - sameElse : 'L' - }, - relativeTime : { - future : '%s baadaye', - past : 'tokea %s', - s : 'hivi punde', - m : 'dakika moja', - mm : 'dakika %d', - h : 'saa limoja', - hh : 'masaa %d', - d : 'siku moja', - dd : 'masiku %d', - M : 'mwezi mmoja', - MM : 'miezi %d', - y : 'mwaka mmoja', - yy : 'miaka %d' - }, - week : { - dow : 1, // Monday is the first day of the week. - doy : 7 // The week that contains Jan 1st is the first week of the year. - } -}); - -//! moment.js locale configuration -//! locale : Tamil [ta] -//! author : Arjunkumar Krishnamoorthy : https://github.com/tk120404 - -var symbolMap$12 = { - '1': '௧', - '2': '௨', - '3': '௩', - '4': '௪', - '5': '௫', - '6': '௬', - '7': '௭', - '8': '௮', - '9': '௯', - '0': '௦' -}; -var numberMap$11 = { - '௧': '1', - '௨': '2', - '௩': '3', - '௪': '4', - '௫': '5', - '௬': '6', - '௭': '7', - '௮': '8', - '௯': '9', - '௦': '0' -}; - -moment.defineLocale('ta', { - months : 'ஜனவரி_பிப்ரவரி_மார்ச்_ஏப்ரல்_மே_ஜூன்_ஜூலை_ஆகஸ்ட்_செப்டெம்பர்_அக்டோபர்_நவம்பர்_டிசம்பர்'.split('_'), - monthsShort : 'ஜனவரி_பிப்ரவரி_மார்ச்_ஏப்ரல்_மே_ஜூன்_ஜூலை_ஆகஸ்ட்_செப்டெம்பர்_அக்டோபர்_நவம்பர்_டிசம்பர்'.split('_'), - weekdays : 'ஞாயிற்றுக்கிழமை_திங்கட்கிழமை_செவ்வாய்கிழமை_புதன்கிழமை_வியாழக்கிழமை_வெள்ளிக்கிழமை_சனிக்கிழமை'.split('_'), - weekdaysShort : 'ஞாயிறு_திங்கள்_செவ்வாய்_புதன்_வியாழன்_வெள்ளி_சனி'.split('_'), - weekdaysMin : 'ஞா_தி_செ_பு_வி_வெ_ச'.split('_'), - longDateFormat : { - LT : 'HH:mm', - LTS : 'HH:mm:ss', - L : 'DD/MM/YYYY', - LL : 'D MMMM YYYY', - LLL : 'D MMMM YYYY, HH:mm', - LLLL : 'dddd, D MMMM YYYY, HH:mm' - }, - 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 ஆண்டுகள்' - }, - dayOfMonthOrdinalParse: /\d{1,2}வது/, - ordinal : function (number) { - return number + 'வது'; - }, - preparse: function (string) { - return string.replace(/[௧௨௩௪௫௬௭௮௯௦]/g, function (match) { - return numberMap$11[match]; - }); - }, - postformat: function (string) { - return string.replace(/\d/g, function (match) { - return symbolMap$12[match]; - }); - }, - // refer http://ta.wikipedia.org/s/1er1 - meridiemParse: /யாமம்|வைகறை|காலை|நண்பகல்|எற்பாடு|மாலை/, - meridiem : function (hour, minute, isLower) { - if (hour < 2) { - return ' யாமம்'; - } else if (hour < 6) { - return ' வைகறை'; // வைகறை - } else if (hour < 10) { - return ' காலை'; // காலை - } else if (hour < 14) { - return ' நண்பகல்'; // நண்பகல் - } else if (hour < 18) { - return ' எற்பாடு'; // எற்பாடு - } else if (hour < 22) { - return ' மாலை'; // மாலை - } else { - return ' யாமம்'; - } - }, - meridiemHour : function (hour, meridiem) { - if (hour === 12) { - hour = 0; - } - if (meridiem === 'யாமம்') { - return hour < 2 ? hour : hour + 12; - } else if (meridiem === 'வைகறை' || meridiem === 'காலை') { - return hour; - } else if (meridiem === 'நண்பகல்') { - return hour >= 10 ? hour : hour + 12; - } else { - return hour + 12; - } - }, - week : { - dow : 0, // Sunday is the first day of the week. - doy : 6 // The week that contains Jan 1st is the first week of the year. - } -}); - -//! moment.js locale configuration -//! locale : Telugu [te] -//! author : Krishna Chaitanya Thota : https://github.com/kcthota - -moment.defineLocale('te', { - months : 'జనవరి_ఫిబ్రవరి_మార్చి_ఏప్రిల్_మే_జూన్_జూలై_ఆగస్టు_సెప్టెంబర్_అక్టోబర్_నవంబర్_డిసెంబర్'.split('_'), - monthsShort : 'జన._ఫిబ్ర._మార్చి_ఏప్రి._మే_జూన్_జూలై_ఆగ._సెప్._అక్టో._నవ._డిసె.'.split('_'), - monthsParseExact : true, - weekdays : 'ఆదివారం_సోమవారం_మంగళవారం_బుధవారం_గురువారం_శుక్రవారం_శనివారం'.split('_'), - weekdaysShort : 'ఆది_సోమ_మంగళ_బుధ_గురు_శుక్ర_శని'.split('_'), - weekdaysMin : 'ఆ_సో_మం_బు_గు_శు_శ'.split('_'), - longDateFormat : { - LT : 'A h:mm', - LTS : 'A h:mm:ss', - L : 'DD/MM/YYYY', - LL : 'D MMMM YYYY', - LLL : 'D MMMM YYYY, A h:mm', - LLLL : 'dddd, D MMMM YYYY, A h:mm' - }, - 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 సంవత్సరాలు' - }, - dayOfMonthOrdinalParse : /\d{1,2}వ/, - ordinal : '%dవ', - meridiemParse: /రాత్రి|ఉదయం|మధ్యాహ్నం|సాయంత్రం/, - meridiemHour : function (hour, meridiem) { - if (hour === 12) { - hour = 0; - } - if (meridiem === 'రాత్రి') { - return hour < 4 ? hour : hour + 12; - } else if (meridiem === 'ఉదయం') { - return hour; - } else if (meridiem === 'మధ్యాహ్నం') { - return hour >= 10 ? hour : hour + 12; - } else if (meridiem === 'సాయంత్రం') { - return hour + 12; - } - }, - meridiem : function (hour, minute, isLower) { - if (hour < 4) { - return 'రాత్రి'; - } else if (hour < 10) { - return 'ఉదయం'; - } else if (hour < 17) { - return 'మధ్యాహ్నం'; - } else if (hour < 20) { - return 'సాయంత్రం'; - } else { - return 'రాత్రి'; - } - }, - week : { - dow : 0, // Sunday is the first day of the week. - doy : 6 // The week that contains Jan 1st is the first week of the year. - } -}); - -//! moment.js locale configuration -//! locale : Tetun Dili (East Timor) [tet] -//! author : Joshua Brooks : https://github.com/joshbrooks -//! author : Onorio De J. Afonso : https://github.com/marobo - -moment.defineLocale('tet', { - months : 'Janeiru_Fevereiru_Marsu_Abril_Maiu_Juniu_Juliu_Augustu_Setembru_Outubru_Novembru_Dezembru'.split('_'), - monthsShort : 'Jan_Fev_Mar_Abr_Mai_Jun_Jul_Aug_Set_Out_Nov_Dez'.split('_'), - weekdays : 'Domingu_Segunda_Tersa_Kuarta_Kinta_Sexta_Sabadu'.split('_'), - weekdaysShort : 'Dom_Seg_Ters_Kua_Kint_Sext_Sab'.split('_'), - weekdaysMin : 'Do_Seg_Te_Ku_Ki_Sex_Sa'.split('_'), - longDateFormat : { - LT : 'HH:mm', - LTS : 'HH:mm:ss', - L : 'DD/MM/YYYY', - LL : 'D MMMM YYYY', - LLL : 'D MMMM YYYY HH:mm', - LLLL : 'dddd, D MMMM YYYY HH:mm' - }, - calendar : { - sameDay: '[Ohin iha] LT', - nextDay: '[Aban iha] LT', - nextWeek: 'dddd [iha] LT', - lastDay: '[Horiseik iha] LT', - lastWeek: 'dddd [semana kotuk] [iha] LT', - sameElse: 'L' - }, - relativeTime : { - future : 'iha %s', - past : '%s liuba', - s : 'minutu balun', - m : 'minutu ida', - mm : 'minutus %d', - h : 'horas ida', - hh : 'horas %d', - d : 'loron ida', - dd : 'loron %d', - M : 'fulan ida', - MM : 'fulan %d', - y : 'tinan ida', - yy : 'tinan %d' - }, - dayOfMonthOrdinalParse: /\d{1,2}(st|nd|rd|th)/, - ordinal : function (number) { - var b = number % 10, - output = (~~(number % 100 / 10) === 1) ? 'th' : - (b === 1) ? 'st' : - (b === 2) ? 'nd' : - (b === 3) ? 'rd' : 'th'; - return number + output; - }, - week : { - dow : 1, // Monday is the first day of the week. - doy : 4 // The week that contains Jan 4th is the first week of the year. - } -}); - -//! moment.js locale configuration -//! locale : Thai [th] -//! author : Kridsada Thanabulpong : https://github.com/sirn - -moment.defineLocale('th', { - months : 'มกราคม_กุมภาพันธ์_มีนาคม_เมษายน_พฤษภาคม_มิถุนายน_กรกฎาคม_สิงหาคม_กันยายน_ตุลาคม_พฤศจิกายน_ธันวาคม'.split('_'), - monthsShort : 'ม.ค._ก.พ._มี.ค._เม.ย._พ.ค._มิ.ย._ก.ค._ส.ค._ก.ย._ต.ค._พ.ย._ธ.ค.'.split('_'), - monthsParseExact: true, - weekdays : 'อาทิตย์_จันทร์_อังคาร_พุธ_พฤหัสบดี_ศุกร์_เสาร์'.split('_'), - weekdaysShort : 'อาทิตย์_จันทร์_อังคาร_พุธ_พฤหัส_ศุกร์_เสาร์'.split('_'), // yes, three characters difference - weekdaysMin : 'อา._จ._อ._พ._พฤ._ศ._ส.'.split('_'), - weekdaysParseExact : true, - longDateFormat : { - LT : 'H:mm', - LTS : 'H:mm:ss', - L : 'DD/MM/YYYY', - LL : 'D MMMM YYYY', - LLL : 'D MMMM YYYY เวลา H:mm', - LLLL : 'วันddddที่ D MMMM YYYY เวลา H:mm' - }, - meridiemParse: /ก่อนเที่ยง|หลังเที่ยง/, - isPM: function (input) { - return input === 'หลังเที่ยง'; - }, - meridiem : function (hour, minute, isLower) { - if (hour < 12) { - return 'ก่อนเที่ยง'; - } else { - return 'หลังเที่ยง'; - } - }, - 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 ปี' - } -}); - -//! moment.js locale configuration -//! locale : Tagalog (Philippines) [tl-ph] -//! author : Dan Hagman : https://github.com/hagmandan - -moment.defineLocale('tl-ph', { - months : 'Enero_Pebrero_Marso_Abril_Mayo_Hunyo_Hulyo_Agosto_Setyembre_Oktubre_Nobyembre_Disyembre'.split('_'), - monthsShort : 'Ene_Peb_Mar_Abr_May_Hun_Hul_Ago_Set_Okt_Nob_Dis'.split('_'), - weekdays : 'Linggo_Lunes_Martes_Miyerkules_Huwebes_Biyernes_Sabado'.split('_'), - weekdaysShort : 'Lin_Lun_Mar_Miy_Huw_Biy_Sab'.split('_'), - weekdaysMin : 'Li_Lu_Ma_Mi_Hu_Bi_Sab'.split('_'), - longDateFormat : { - LT : 'HH:mm', - LTS : 'HH:mm:ss', - L : 'MM/D/YYYY', - LL : 'MMMM D, YYYY', - LLL : 'MMMM D, YYYY HH:mm', - LLLL : 'dddd, MMMM DD, YYYY HH:mm' - }, - calendar : { - sameDay: 'LT [ngayong araw]', - nextDay: '[Bukas ng] LT', - nextWeek: 'LT [sa susunod na] dddd', - lastDay: 'LT [kahapon]', - lastWeek: 'LT [noong nakaraang] dddd', - sameElse: 'L' - }, - relativeTime : { - future : 'sa loob ng %s', - past : '%s ang nakalipas', - s : 'ilang segundo', - m : 'isang minuto', - mm : '%d minuto', - h : 'isang oras', - hh : '%d oras', - d : 'isang araw', - dd : '%d araw', - M : 'isang buwan', - MM : '%d buwan', - y : 'isang taon', - yy : '%d taon' - }, - dayOfMonthOrdinalParse: /\d{1,2}/, - ordinal : function (number) { - return number; - }, - week : { - dow : 1, // Monday is the first day of the week. - doy : 4 // The week that contains Jan 4th is the first week of the year. - } -}); - -//! moment.js locale configuration -//! locale : Klingon [tlh] -//! author : Dominika Kruk : https://github.com/amaranthrose - -var numbersNouns = 'pagh_wa’_cha’_wej_loS_vagh_jav_Soch_chorgh_Hut'.split('_'); - -function translateFuture(output) { - var time = output; - time = (output.indexOf('jaj') !== -1) ? - time.slice(0, -3) + 'leS' : - (output.indexOf('jar') !== -1) ? - time.slice(0, -3) + 'waQ' : - (output.indexOf('DIS') !== -1) ? - time.slice(0, -3) + 'nem' : - time + ' pIq'; - return time; -} - -function translatePast(output) { - var time = output; - time = (output.indexOf('jaj') !== -1) ? - time.slice(0, -3) + 'Hu’' : - (output.indexOf('jar') !== -1) ? - time.slice(0, -3) + 'wen' : - (output.indexOf('DIS') !== -1) ? - time.slice(0, -3) + 'ben' : - time + ' ret'; - return time; -} - -function translate$9(number, withoutSuffix, string, isFuture) { - var numberNoun = numberAsNoun(number); - switch (string) { - case 'mm': - return numberNoun + ' tup'; - case 'hh': - return numberNoun + ' rep'; - case 'dd': - return numberNoun + ' jaj'; - case 'MM': - return numberNoun + ' jar'; - case 'yy': - return numberNoun + ' DIS'; - } -} - -function numberAsNoun(number) { - var hundred = Math.floor((number % 1000) / 100), - ten = Math.floor((number % 100) / 10), - one = number % 10, - word = ''; - if (hundred > 0) { - word += numbersNouns[hundred] + 'vatlh'; - } - if (ten > 0) { - word += ((word !== '') ? ' ' : '') + numbersNouns[ten] + 'maH'; - } - if (one > 0) { - word += ((word !== '') ? ' ' : '') + numbersNouns[one]; - } - return (word === '') ? 'pagh' : word; -} - -moment.defineLocale('tlh', { - months : 'tera’ jar wa’_tera’ jar cha’_tera’ jar wej_tera’ jar loS_tera’ jar vagh_tera’ jar jav_tera’ jar Soch_tera’ jar chorgh_tera’ jar Hut_tera’ jar wa’maH_tera’ jar wa’maH wa’_tera’ jar wa’maH cha’'.split('_'), - monthsShort : 'jar wa’_jar cha’_jar wej_jar loS_jar vagh_jar jav_jar Soch_jar chorgh_jar Hut_jar wa’maH_jar wa’maH wa’_jar wa’maH cha’'.split('_'), - monthsParseExact : true, - weekdays : 'lojmItjaj_DaSjaj_povjaj_ghItlhjaj_loghjaj_buqjaj_ghInjaj'.split('_'), - weekdaysShort : 'lojmItjaj_DaSjaj_povjaj_ghItlhjaj_loghjaj_buqjaj_ghInjaj'.split('_'), - weekdaysMin : 'lojmItjaj_DaSjaj_povjaj_ghItlhjaj_loghjaj_buqjaj_ghInjaj'.split('_'), - longDateFormat : { - LT : 'HH:mm', - LTS : 'HH:mm:ss', - L : 'DD.MM.YYYY', - LL : 'D MMMM YYYY', - LLL : 'D MMMM YYYY HH:mm', - LLLL : 'dddd, D MMMM YYYY HH:mm' - }, - calendar : { - sameDay: '[DaHjaj] LT', - nextDay: '[wa’leS] LT', - nextWeek: 'LLL', - lastDay: '[wa’Hu’] LT', - lastWeek: 'LLL', - sameElse: 'L' - }, - relativeTime : { - future : translateFuture, - past : translatePast, - s : 'puS lup', - m : 'wa’ tup', - mm : translate$9, - h : 'wa’ rep', - hh : translate$9, - d : 'wa’ jaj', - dd : translate$9, - M : 'wa’ jar', - MM : translate$9, - y : 'wa’ DIS', - yy : translate$9 - }, - dayOfMonthOrdinalParse: /\d{1,2}\./, - ordinal : '%d.', - week : { - dow : 1, // Monday is the first day of the week. - doy : 4 // The week that contains Jan 4th is the first week of the year. - } -}); - -//! moment.js locale configuration -//! locale : Turkish [tr] -//! authors : Erhan Gundogan : https://github.com/erhangundogan, -//! Burak Yiğit Kaya: https://github.com/BYK - -var suffixes$3 = { - 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ı' -}; - -moment.defineLocale('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', - LTS : 'HH:mm:ss', - L : 'DD.MM.YYYY', - LL : 'D MMMM YYYY', - LLL : 'D MMMM YYYY HH:mm', - LLLL : 'dddd, D MMMM YYYY HH:mm' - }, - 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' - }, - dayOfMonthOrdinalParse: /\d{1,2}'(inci|nci|üncü|ncı|uncu|ıncı)/, - ordinal : function (number) { - if (number === 0) { // special case for zero - return number + '\'ıncı'; - } - var a = number % 10, - b = number % 100 - a, - c = number >= 100 ? 100 : null; - return number + (suffixes$3[a] || suffixes$3[b] || suffixes$3[c]); - }, - week : { - dow : 1, // Monday is the first day of the week. - doy : 7 // The week that contains Jan 1st is the first week of the year. - } -}); - -//! moment.js locale configuration -//! locale : Talossan [tzl] -//! author : Robin van der Vliet : https://github.com/robin0van0der0v -//! author : Iustì Canun - -// After the year there should be a slash and the amount of years since December 26, 1979 in Roman numerals. -// This is currently too difficult (maybe even impossible) to add. -moment.defineLocale('tzl', { - months : 'Januar_Fevraglh_Març_Avrïu_Mai_Gün_Julia_Guscht_Setemvar_Listopäts_Noemvar_Zecemvar'.split('_'), - monthsShort : 'Jan_Fev_Mar_Avr_Mai_Gün_Jul_Gus_Set_Lis_Noe_Zec'.split('_'), - weekdays : 'Súladi_Lúneçi_Maitzi_Márcuri_Xhúadi_Viénerçi_Sáturi'.split('_'), - weekdaysShort : 'Súl_Lún_Mai_Már_Xhú_Vié_Sát'.split('_'), - weekdaysMin : 'Sú_Lú_Ma_Má_Xh_Vi_Sá'.split('_'), - longDateFormat : { - LT : 'HH.mm', - LTS : 'HH.mm.ss', - L : 'DD.MM.YYYY', - LL : 'D. MMMM [dallas] YYYY', - LLL : 'D. MMMM [dallas] YYYY HH.mm', - LLLL : 'dddd, [li] D. MMMM [dallas] YYYY HH.mm' - }, - meridiemParse: /d\'o|d\'a/i, - isPM : function (input) { - return 'd\'o' === input.toLowerCase(); - }, - meridiem : function (hours, minutes, isLower) { - if (hours > 11) { - return isLower ? 'd\'o' : 'D\'O'; - } else { - return isLower ? 'd\'a' : 'D\'A'; - } - }, - calendar : { - sameDay : '[oxhi à] LT', - nextDay : '[demà à] LT', - nextWeek : 'dddd [à] LT', - lastDay : '[ieiri à] LT', - lastWeek : '[sür el] dddd [lasteu à] LT', - sameElse : 'L' - }, - relativeTime : { - future : 'osprei %s', - past : 'ja%s', - s : processRelativeTime$7, - m : processRelativeTime$7, - mm : processRelativeTime$7, - h : processRelativeTime$7, - hh : processRelativeTime$7, - d : processRelativeTime$7, - dd : processRelativeTime$7, - M : processRelativeTime$7, - MM : processRelativeTime$7, - y : processRelativeTime$7, - yy : processRelativeTime$7 - }, - dayOfMonthOrdinalParse: /\d{1,2}\./, - ordinal : '%d.', - week : { - dow : 1, // Monday is the first day of the week. - doy : 4 // The week that contains Jan 4th is the first week of the year. - } -}); - -function processRelativeTime$7(number, withoutSuffix, key, isFuture) { - var format = { - 's': ['viensas secunds', '\'iensas secunds'], - 'm': ['\'n míut', '\'iens míut'], - 'mm': [number + ' míuts', '' + number + ' míuts'], - 'h': ['\'n þora', '\'iensa þora'], - 'hh': [number + ' þoras', '' + number + ' þoras'], - 'd': ['\'n ziua', '\'iensa ziua'], - 'dd': [number + ' ziuas', '' + number + ' ziuas'], - 'M': ['\'n mes', '\'iens mes'], - 'MM': [number + ' mesen', '' + number + ' mesen'], - 'y': ['\'n ar', '\'iens ar'], - 'yy': [number + ' ars', '' + number + ' ars'] - }; - return isFuture ? format[key][0] : (withoutSuffix ? format[key][0] : format[key][1]); -} - -//! moment.js locale configuration -//! locale : Central Atlas Tamazight Latin [tzm-latn] -//! author : Abdel Said : https://github.com/abdelsaid - -moment.defineLocale('tzm-latn', { - 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', - LTS : 'HH:mm:ss', - L : 'DD/MM/YYYY', - LL : 'D MMMM YYYY', - LLL : 'D MMMM YYYY HH:mm', - LLLL : 'dddd D MMMM YYYY HH:mm' - }, - 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, // Saturday is the first day of the week. - doy : 12 // The week that contains Jan 1st is the first week of the year. - } -}); - -//! moment.js locale configuration -//! locale : Central Atlas Tamazight [tzm] -//! author : Abdel Said : https://github.com/abdelsaid - -moment.defineLocale('tzm', { - months : 'ⵉⵏⵏⴰⵢⵔ_ⴱⵕⴰⵢⵕ_ⵎⴰⵕⵚ_ⵉⴱⵔⵉⵔ_ⵎⴰⵢⵢⵓ_ⵢⵓⵏⵢⵓ_ⵢⵓⵍⵢⵓⵣ_ⵖⵓⵛⵜ_ⵛⵓⵜⴰⵏⴱⵉⵔ_ⴽⵟⵓⴱⵕ_ⵏⵓⵡⴰⵏⴱⵉⵔ_ⴷⵓⵊⵏⴱⵉⵔ'.split('_'), - monthsShort : 'ⵉⵏⵏⴰⵢⵔ_ⴱⵕⴰⵢⵕ_ⵎⴰⵕⵚ_ⵉⴱⵔⵉⵔ_ⵎⴰⵢⵢⵓ_ⵢⵓⵏⵢⵓ_ⵢⵓⵍⵢⵓⵣ_ⵖⵓⵛⵜ_ⵛⵓⵜⴰⵏⴱⵉⵔ_ⴽⵟⵓⴱⵕ_ⵏⵓⵡⴰⵏⴱⵉⵔ_ⴷⵓⵊⵏⴱⵉⵔ'.split('_'), - weekdays : 'ⴰⵙⴰⵎⴰⵙ_ⴰⵢⵏⴰⵙ_ⴰⵙⵉⵏⴰⵙ_ⴰⴽⵔⴰⵙ_ⴰⴽⵡⴰⵙ_ⴰⵙⵉⵎⵡⴰⵙ_ⴰⵙⵉⴹⵢⴰⵙ'.split('_'), - weekdaysShort : 'ⴰⵙⴰⵎⴰⵙ_ⴰⵢⵏⴰⵙ_ⴰⵙⵉⵏⴰⵙ_ⴰⴽⵔⴰⵙ_ⴰⴽⵡⴰⵙ_ⴰⵙⵉⵎⵡⴰⵙ_ⴰⵙⵉⴹⵢⴰⵙ'.split('_'), - weekdaysMin : 'ⴰⵙⴰⵎⴰⵙ_ⴰⵢⵏⴰⵙ_ⴰⵙⵉⵏⴰⵙ_ⴰⴽⵔⴰⵙ_ⴰⴽⵡⴰⵙ_ⴰⵙⵉⵎⵡⴰⵙ_ⴰⵙⵉⴹⵢⴰⵙ'.split('_'), - longDateFormat : { - LT : 'HH:mm', - LTS: 'HH:mm:ss', - L : 'DD/MM/YYYY', - LL : 'D MMMM YYYY', - LLL : 'D MMMM YYYY HH:mm', - LLLL : 'dddd D MMMM YYYY HH:mm' - }, - 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, // Saturday is the first day of the week. - doy : 12 // The week that contains Jan 1st is the first week of the year. - } -}); - -//! moment.js locale configuration -//! locale : Ukrainian [uk] -//! author : zemlanin : https://github.com/zemlanin -//! Author : Menelion Elensúle : https://github.com/Oire - -function plural$6(word, num) { - var forms = word.split('_'); - return num % 10 === 1 && num % 100 !== 11 ? forms[0] : (num % 10 >= 2 && num % 10 <= 4 && (num % 100 < 10 || num % 100 >= 20) ? forms[1] : forms[2]); -} -function relativeTimeWithPlural$4(number, withoutSuffix, key) { - var format = { - 'mm': withoutSuffix ? 'хвилина_хвилини_хвилин' : 'хвилину_хвилини_хвилин', - 'hh': withoutSuffix ? 'година_години_годин' : 'годину_години_годин', - 'dd': 'день_дні_днів', - 'MM': 'місяць_місяці_місяців', - 'yy': 'рік_роки_років' - }; - if (key === 'm') { - return withoutSuffix ? 'хвилина' : 'хвилину'; - } - else if (key === 'h') { - return withoutSuffix ? 'година' : 'годину'; - } - else { - return number + ' ' + plural$6(format[key], +number); - } -} -function weekdaysCaseReplace(m, format) { - var weekdays = { - 'nominative': 'неділя_понеділок_вівторок_середа_четвер_п’ятниця_субота'.split('_'), - 'accusative': 'неділю_понеділок_вівторок_середу_четвер_п’ятницю_суботу'.split('_'), - 'genitive': 'неділі_понеділка_вівторка_середи_четверга_п’ятниці_суботи'.split('_') - }; - - if (!m) { - return weekdays['nominative']; - } - - var nounCase = (/(\[[ВвУу]\]) ?dddd/).test(format) ? - 'accusative' : - ((/\[?(?:минулої|наступної)? ?\] ?dddd/).test(format) ? - 'genitive' : - 'nominative'); - return weekdays[nounCase][m.day()]; -} -function processHoursFunction(str) { - return function () { - return str + 'о' + (this.hours() === 11 ? 'б' : '') + '] LT'; - }; -} - -moment.defineLocale('uk', { - months : { - 'format': 'січня_лютого_березня_квітня_травня_червня_липня_серпня_вересня_жовтня_листопада_грудня'.split('_'), - 'standalone': 'січень_лютий_березень_квітень_травень_червень_липень_серпень_вересень_жовтень_листопад_грудень'.split('_') - }, - monthsShort : 'січ_лют_бер_квіт_трав_черв_лип_серп_вер_жовт_лист_груд'.split('_'), - weekdays : weekdaysCaseReplace, - weekdaysShort : 'нд_пн_вт_ср_чт_пт_сб'.split('_'), - weekdaysMin : 'нд_пн_вт_ср_чт_пт_сб'.split('_'), - longDateFormat : { - LT : 'HH:mm', - LTS : 'HH:mm:ss', - L : 'DD.MM.YYYY', - LL : 'D MMMM YYYY р.', - LLL : 'D MMMM YYYY р., HH:mm', - LLLL : 'dddd, D MMMM YYYY р., HH:mm' - }, - calendar : { - sameDay: processHoursFunction('[Сьогодні '), - nextDay: processHoursFunction('[Завтра '), - lastDay: processHoursFunction('[Вчора '), - nextWeek: processHoursFunction('[У] dddd ['), - lastWeek: function () { - switch (this.day()) { - case 0: - case 3: - case 5: - case 6: - return processHoursFunction('[Минулої] dddd [').call(this); - case 1: - case 2: - case 4: - return processHoursFunction('[Минулого] dddd [').call(this); - } - }, - sameElse: 'L' - }, - relativeTime : { - future : 'за %s', - past : '%s тому', - s : 'декілька секунд', - m : relativeTimeWithPlural$4, - mm : relativeTimeWithPlural$4, - h : 'годину', - hh : relativeTimeWithPlural$4, - d : 'день', - dd : relativeTimeWithPlural$4, - M : 'місяць', - MM : relativeTimeWithPlural$4, - y : 'рік', - yy : relativeTimeWithPlural$4 - }, - // M. E.: those two are virtually unused but a user might want to implement them for his/her website for some reason - meridiemParse: /ночі|ранку|дня|вечора/, - isPM: function (input) { - return /^(дня|вечора)$/.test(input); - }, - meridiem : function (hour, minute, isLower) { - if (hour < 4) { - return 'ночі'; - } else if (hour < 12) { - return 'ранку'; - } else if (hour < 17) { - return 'дня'; - } else { - return 'вечора'; - } - }, - dayOfMonthOrdinalParse: /\d{1,2}-(й|го)/, - ordinal: function (number, period) { - switch (period) { - case 'M': - case 'd': - case 'DDD': - case 'w': - case 'W': - return number + '-й'; - case 'D': - return number + '-го'; - default: - return number; - } - }, - week : { - dow : 1, // Monday is the first day of the week. - doy : 7 // The week that contains Jan 1st is the first week of the year. - } -}); - -//! moment.js locale configuration -//! locale : Urdu [ur] -//! author : Sawood Alam : https://github.com/ibnesayeed -//! author : Zack : https://github.com/ZackVision - -var months$7 = [ - 'جنوری', - 'فروری', - 'مارچ', - 'اپریل', - 'مئی', - 'جون', - 'جولائی', - 'اگست', - 'ستمبر', - 'اکتوبر', - 'نومبر', - 'دسمبر' -]; -var days$1 = [ - 'اتوار', - 'پیر', - 'منگل', - 'بدھ', - 'جمعرات', - 'جمعہ', - 'ہفتہ' -]; - -moment.defineLocale('ur', { - months : months$7, - monthsShort : months$7, - weekdays : days$1, - weekdaysShort : days$1, - weekdaysMin : days$1, - longDateFormat : { - LT : 'HH:mm', - LTS : 'HH:mm:ss', - L : 'DD/MM/YYYY', - LL : 'D MMMM YYYY', - LLL : 'D MMMM YYYY HH:mm', - LLLL : 'dddd، D MMMM YYYY HH:mm' - }, - meridiemParse: /صبح|شام/, - isPM : function (input) { - return 'شام' === input; - }, - meridiem : function (hour, minute, isLower) { - if (hour < 12) { - return 'صبح'; - } - return 'شام'; - }, - 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 (string) { - return string.replace(/،/g, ','); - }, - postformat: function (string) { - return string.replace(/,/g, '،'); - }, - week : { - dow : 1, // Monday is the first day of the week. - doy : 4 // The week that contains Jan 4th is the first week of the year. - } -}); - -//! moment.js locale configuration -//! locale : Uzbek Latin [uz-latn] -//! author : Rasulbek Mirzayev : github.com/Rasulbeeek - -moment.defineLocale('uz-latn', { - months : 'Yanvar_Fevral_Mart_Aprel_May_Iyun_Iyul_Avgust_Sentabr_Oktabr_Noyabr_Dekabr'.split('_'), - monthsShort : 'Yan_Fev_Mar_Apr_May_Iyun_Iyul_Avg_Sen_Okt_Noy_Dek'.split('_'), - weekdays : 'Yakshanba_Dushanba_Seshanba_Chorshanba_Payshanba_Juma_Shanba'.split('_'), - weekdaysShort : 'Yak_Dush_Sesh_Chor_Pay_Jum_Shan'.split('_'), - weekdaysMin : 'Ya_Du_Se_Cho_Pa_Ju_Sha'.split('_'), - longDateFormat : { - LT : 'HH:mm', - LTS : 'HH:mm:ss', - L : 'DD/MM/YYYY', - LL : 'D MMMM YYYY', - LLL : 'D MMMM YYYY HH:mm', - LLLL : 'D MMMM YYYY, dddd HH:mm' - }, - calendar : { - sameDay : '[Bugun soat] LT [da]', - nextDay : '[Ertaga] LT [da]', - nextWeek : 'dddd [kuni soat] LT [da]', - lastDay : '[Kecha soat] LT [da]', - lastWeek : '[O\'tgan] dddd [kuni soat] LT [da]', - sameElse : 'L' - }, - relativeTime : { - future : 'Yaqin %s ichida', - past : 'Bir necha %s oldin', - s : 'soniya', - m : 'bir daqiqa', - mm : '%d daqiqa', - h : 'bir soat', - hh : '%d soat', - d : 'bir kun', - dd : '%d kun', - M : 'bir oy', - MM : '%d oy', - y : 'bir yil', - yy : '%d yil' - }, - week : { - dow : 1, // Monday is the first day of the week. - doy : 7 // The week that contains Jan 1st is the first week of the year. - } -}); - -//! moment.js locale configuration -//! locale : Uzbek [uz] -//! author : Sardor Muminov : https://github.com/muminoff - -moment.defineLocale('uz', { - months : 'январ_феврал_март_апрел_май_июн_июл_август_сентябр_октябр_ноябр_декабр'.split('_'), - monthsShort : 'янв_фев_мар_апр_май_июн_июл_авг_сен_окт_ноя_дек'.split('_'), - weekdays : 'Якшанба_Душанба_Сешанба_Чоршанба_Пайшанба_Жума_Шанба'.split('_'), - weekdaysShort : 'Якш_Душ_Сеш_Чор_Пай_Жум_Шан'.split('_'), - weekdaysMin : 'Як_Ду_Се_Чо_Па_Жу_Ша'.split('_'), - longDateFormat : { - LT : 'HH:mm', - LTS : 'HH:mm:ss', - L : 'DD/MM/YYYY', - LL : 'D MMMM YYYY', - LLL : 'D MMMM YYYY HH:mm', - LLLL : 'D MMMM YYYY, dddd HH:mm' - }, - 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, // Monday is the first day of the week. - doy : 7 // The week that contains Jan 4th is the first week of the year. - } -}); - -//! moment.js locale configuration -//! locale : Vietnamese [vi] -//! author : Bang Nguyen : https://github.com/bangnk - -moment.defineLocale('vi', { - months : 'tháng 1_tháng 2_tháng 3_tháng 4_tháng 5_tháng 6_tháng 7_tháng 8_tháng 9_tháng 10_tháng 11_tháng 12'.split('_'), - monthsShort : 'Th01_Th02_Th03_Th04_Th05_Th06_Th07_Th08_Th09_Th10_Th11_Th12'.split('_'), - monthsParseExact : true, - weekdays : 'chủ nhật_thứ hai_thứ ba_thứ tư_thứ năm_thứ sáu_thứ bảy'.split('_'), - weekdaysShort : 'CN_T2_T3_T4_T5_T6_T7'.split('_'), - weekdaysMin : 'CN_T2_T3_T4_T5_T6_T7'.split('_'), - weekdaysParseExact : true, - meridiemParse: /sa|ch/i, - isPM : function (input) { - return /^ch$/i.test(input); - }, - meridiem : function (hours, minutes, isLower) { - if (hours < 12) { - return isLower ? 'sa' : 'SA'; - } else { - return isLower ? 'ch' : 'CH'; - } - }, - longDateFormat : { - LT : 'HH:mm', - LTS : 'HH:mm:ss', - L : 'DD/MM/YYYY', - LL : 'D MMMM [năm] YYYY', - LLL : 'D MMMM [năm] YYYY HH:mm', - LLLL : 'dddd, D MMMM [năm] YYYY HH:mm', - l : 'DD/M/YYYY', - ll : 'D MMM YYYY', - lll : 'D MMM YYYY HH:mm', - llll : 'ddd, D MMM YYYY HH:mm' - }, - calendar : { - sameDay: '[Hôm nay lúc] LT', - nextDay: '[Ngày mai lúc] LT', - nextWeek: 'dddd [tuần tới lúc] LT', - lastDay: '[Hôm qua lúc] LT', - lastWeek: 'dddd [tuần rồi lúc] LT', - sameElse: 'L' - }, - relativeTime : { - future : '%s tới', - past : '%s trước', - s : 'vài giây', - m : 'một phút', - mm : '%d phút', - h : 'một giờ', - hh : '%d giờ', - d : 'một ngày', - dd : '%d ngày', - M : 'một tháng', - MM : '%d tháng', - y : 'một năm', - yy : '%d năm' - }, - dayOfMonthOrdinalParse: /\d{1,2}/, - ordinal : function (number) { - return number; - }, - week : { - dow : 1, // Monday is the first day of the week. - doy : 4 // The week that contains Jan 4th is the first week of the year. - } -}); - -//! moment.js locale configuration -//! locale : Pseudo [x-pseudo] -//! author : Andrew Hood : https://github.com/andrewhood125 - -moment.defineLocale('x-pseudo', { - months : 'J~áñúá~rý_F~ébrú~árý_~Márc~h_Áp~ríl_~Máý_~Júñé~_Júl~ý_Áú~gúst~_Sép~témb~ér_Ó~ctób~ér_Ñ~óvém~bér_~Décé~mbér'.split('_'), - monthsShort : 'J~áñ_~Féb_~Már_~Ápr_~Máý_~Júñ_~Júl_~Áúg_~Sép_~Óct_~Ñóv_~Déc'.split('_'), - monthsParseExact : true, - weekdays : 'S~úñdá~ý_Mó~ñdáý~_Túé~sdáý~_Wéd~ñésd~áý_T~húrs~dáý_~Fríd~áý_S~átúr~dáý'.split('_'), - weekdaysShort : 'S~úñ_~Móñ_~Túé_~Wéd_~Thú_~Frí_~Sát'.split('_'), - weekdaysMin : 'S~ú_Mó~_Tú_~Wé_T~h_Fr~_Sá'.split('_'), - weekdaysParseExact : true, - longDateFormat : { - LT : 'HH:mm', - L : 'DD/MM/YYYY', - LL : 'D MMMM YYYY', - LLL : 'D MMMM YYYY HH:mm', - LLLL : 'dddd, D MMMM YYYY HH:mm' - }, - calendar : { - sameDay : '[T~ódá~ý át] LT', - nextDay : '[T~ómó~rró~w át] LT', - nextWeek : 'dddd [át] LT', - lastDay : '[Ý~ést~érdá~ý át] LT', - lastWeek : '[L~ást] dddd [át] LT', - sameElse : 'L' - }, - relativeTime : { - future : 'í~ñ %s', - past : '%s á~gó', - s : 'á ~féw ~sécó~ñds', - m : 'á ~míñ~úté', - mm : '%d m~íñú~tés', - h : 'á~ñ hó~úr', - hh : '%d h~óúrs', - d : 'á ~dáý', - dd : '%d d~áýs', - M : 'á ~móñ~th', - MM : '%d m~óñt~hs', - y : 'á ~ýéár', - yy : '%d ý~éárs' - }, - dayOfMonthOrdinalParse: /\d{1,2}(th|st|nd|rd)/, - ordinal : function (number) { - var b = number % 10, - output = (~~(number % 100 / 10) === 1) ? 'th' : - (b === 1) ? 'st' : - (b === 2) ? 'nd' : - (b === 3) ? 'rd' : 'th'; - return number + output; - }, - week : { - dow : 1, // Monday is the first day of the week. - doy : 4 // The week that contains Jan 4th is the first week of the year. - } -}); - -//! moment.js locale configuration -//! locale : Yoruba Nigeria [yo] -//! author : Atolagbe Abisoye : https://github.com/andela-batolagbe - -moment.defineLocale('yo', { - months : 'Sẹ́rẹ́_Èrèlè_Ẹrẹ̀nà_Ìgbé_Èbibi_Òkùdu_Agẹmo_Ògún_Owewe_Ọ̀wàrà_Bélú_Ọ̀pẹ̀̀'.split('_'), - monthsShort : 'Sẹ́r_Èrl_Ẹrn_Ìgb_Èbi_Òkù_Agẹ_Ògú_Owe_Ọ̀wà_Bél_Ọ̀pẹ̀̀'.split('_'), - weekdays : 'Àìkú_Ajé_Ìsẹ́gun_Ọjọ́rú_Ọjọ́bọ_Ẹtì_Àbámẹ́ta'.split('_'), - weekdaysShort : 'Àìk_Ajé_Ìsẹ́_Ọjr_Ọjb_Ẹtì_Àbá'.split('_'), - weekdaysMin : 'Àì_Aj_Ìs_Ọr_Ọb_Ẹt_Àb'.split('_'), - longDateFormat : { - LT : 'h:mm A', - LTS : 'h:mm:ss A', - L : 'DD/MM/YYYY', - LL : 'D MMMM YYYY', - LLL : 'D MMMM YYYY h:mm A', - LLLL : 'dddd, D MMMM YYYY h:mm A' - }, - calendar : { - sameDay : '[Ònì ni] LT', - nextDay : '[Ọ̀la ni] LT', - nextWeek : 'dddd [Ọsẹ̀ tón\'bọ] [ni] LT', - lastDay : '[Àna ni] LT', - lastWeek : 'dddd [Ọsẹ̀ tólọ́] [ni] LT', - sameElse : 'L' - }, - relativeTime : { - future : 'ní %s', - past : '%s kọjá', - s : 'ìsẹjú aayá die', - m : 'ìsẹjú kan', - mm : 'ìsẹjú %d', - h : 'wákati kan', - hh : 'wákati %d', - d : 'ọjọ́ kan', - dd : 'ọjọ́ %d', - M : 'osù kan', - MM : 'osù %d', - y : 'ọdún kan', - yy : 'ọdún %d' - }, - dayOfMonthOrdinalParse : /ọjọ́\s\d{1,2}/, - ordinal : 'ọjọ́ %d', - week : { - dow : 1, // Monday is the first day of the week. - doy : 4 // The week that contains Jan 4th is the first week of the year. - } -}); - -//! moment.js locale configuration -//! locale : Chinese (China) [zh-cn] -//! author : suupic : https://github.com/suupic -//! author : Zeno Zeng : https://github.com/zenozeng - -moment.defineLocale('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 : 'HH:mm', - LTS : 'HH:mm:ss', - L : 'YYYY年MMMD日', - LL : 'YYYY年MMMD日', - LLL : 'YYYY年MMMD日Ah点mm分', - LLLL : 'YYYY年MMMD日ddddAh点mm分', - l : 'YYYY年MMMD日', - ll : 'YYYY年MMMD日', - lll : 'YYYY年MMMD日 HH:mm', - llll : 'YYYY年MMMD日dddd HH:mm' - }, - meridiemParse: /凌晨|早上|上午|中午|下午|晚上/, - meridiemHour: function (hour, meridiem) { - if (hour === 12) { - hour = 0; - } - if (meridiem === '凌晨' || meridiem === '早上' || - meridiem === '上午') { - return hour; - } else if (meridiem === '下午' || meridiem === '晚上') { - return hour + 12; - } else { - // '中午' - return hour >= 11 ? hour : hour + 12; - } - }, - meridiem : function (hour, minute, isLower) { - var hm = hour * 100 + minute; - if (hm < 600) { - return '凌晨'; - } else if (hm < 900) { - return '早上'; - } else if (hm < 1130) { - return '上午'; - } else if (hm < 1230) { - return '中午'; - } else if (hm < 1800) { - return '下午'; - } else { - return '晚上'; - } - }, - calendar : { - sameDay : '[今天]LT', - nextDay : '[明天]LT', - nextWeek : '[下]ddddLT', - lastDay : '[昨天]LT', - lastWeek : '[上]ddddLT', - sameElse : 'L' - }, - dayOfMonthOrdinalParse: /\d{1,2}(日|月|周)/, - ordinal : function (number, period) { - switch (period) { - case 'd': - case 'D': - case 'DDD': - return number + '日'; - case 'M': - return number + '月'; - case 'w': - case 'W': - return number + '周'; - default: - return number; - } - }, - 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 年' - }, - week : { - // GB/T 7408-1994《数据元和交换格式·信息交换·日期和时间表示法》与ISO 8601:1988等效 - dow : 1, // Monday is the first day of the week. - doy : 4 // The week that contains Jan 4th is the first week of the year. - } -}); - -//! moment.js locale configuration -//! locale : Chinese (Hong Kong) [zh-hk] -//! author : Ben : https://github.com/ben-lin -//! author : Chris Lam : https://github.com/hehachris -//! author : Konstantin : https://github.com/skfd - -moment.defineLocale('zh-hk', { - months : '一月_二月_三月_四月_五月_六月_七月_八月_九月_十月_十一月_十二月'.split('_'), - monthsShort : '1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月'.split('_'), - weekdays : '星期日_星期一_星期二_星期三_星期四_星期五_星期六'.split('_'), - weekdaysShort : '週日_週一_週二_週三_週四_週五_週六'.split('_'), - weekdaysMin : '日_一_二_三_四_五_六'.split('_'), - longDateFormat : { - LT : 'HH:mm', - LTS : 'HH:mm:ss', - L : 'YYYY年MMMD日', - LL : 'YYYY年MMMD日', - LLL : 'YYYY年MMMD日 HH:mm', - LLLL : 'YYYY年MMMD日dddd HH:mm', - l : 'YYYY年MMMD日', - ll : 'YYYY年MMMD日', - lll : 'YYYY年MMMD日 HH:mm', - llll : 'YYYY年MMMD日dddd HH:mm' - }, - meridiemParse: /凌晨|早上|上午|中午|下午|晚上/, - meridiemHour : function (hour, meridiem) { - if (hour === 12) { - hour = 0; - } - if (meridiem === '凌晨' || meridiem === '早上' || meridiem === '上午') { - return hour; - } else if (meridiem === '中午') { - return hour >= 11 ? hour : hour + 12; - } else if (meridiem === '下午' || meridiem === '晚上') { - return hour + 12; - } - }, - meridiem : function (hour, minute, isLower) { - var hm = hour * 100 + minute; - if (hm < 600) { - return '凌晨'; - } else if (hm < 900) { - return '早上'; - } else if (hm < 1130) { - return '上午'; - } else if (hm < 1230) { - return '中午'; - } else if (hm < 1800) { - return '下午'; - } else { - return '晚上'; - } - }, - calendar : { - sameDay : '[今天]LT', - nextDay : '[明天]LT', - nextWeek : '[下]ddddLT', - lastDay : '[昨天]LT', - lastWeek : '[上]ddddLT', - sameElse : 'L' - }, - dayOfMonthOrdinalParse: /\d{1,2}(日|月|週)/, - ordinal : function (number, period) { - switch (period) { - case 'd' : - case 'D' : - case 'DDD' : - return number + '日'; - case 'M' : - return number + '月'; - case 'w' : - case 'W' : - return number + '週'; - default : - return number; - } - }, - 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 年' - } -}); - -//! moment.js locale configuration -//! locale : Chinese (Taiwan) [zh-tw] -//! author : Ben : https://github.com/ben-lin -//! author : Chris Lam : https://github.com/hehachris - -moment.defineLocale('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 : 'HH:mm', - LTS : 'HH:mm:ss', - L : 'YYYY年MMMD日', - LL : 'YYYY年MMMD日', - LLL : 'YYYY年MMMD日 HH:mm', - LLLL : 'YYYY年MMMD日dddd HH:mm', - l : 'YYYY年MMMD日', - ll : 'YYYY年MMMD日', - lll : 'YYYY年MMMD日 HH:mm', - llll : 'YYYY年MMMD日dddd HH:mm' - }, - meridiemParse: /凌晨|早上|上午|中午|下午|晚上/, - meridiemHour : function (hour, meridiem) { - if (hour === 12) { - hour = 0; - } - if (meridiem === '凌晨' || meridiem === '早上' || meridiem === '上午') { - return hour; - } else if (meridiem === '中午') { - return hour >= 11 ? hour : hour + 12; - } else if (meridiem === '下午' || meridiem === '晚上') { - return hour + 12; - } - }, - meridiem : function (hour, minute, isLower) { - var hm = hour * 100 + minute; - if (hm < 600) { - return '凌晨'; - } else if (hm < 900) { - return '早上'; - } else if (hm < 1130) { - return '上午'; - } else if (hm < 1230) { - return '中午'; - } else if (hm < 1800) { - return '下午'; - } else { - return '晚上'; - } - }, - calendar : { - sameDay : '[今天]LT', - nextDay : '[明天]LT', - nextWeek : '[下]ddddLT', - lastDay : '[昨天]LT', - lastWeek : '[上]ddddLT', - sameElse : 'L' - }, - dayOfMonthOrdinalParse: /\d{1,2}(日|月|週)/, - ordinal : function (number, period) { - switch (period) { - case 'd' : - case 'D' : - case 'DDD' : - return number + '日'; - case 'M' : - return number + '月'; - case 'w' : - case 'W' : - return number + '週'; - default : - return number; - } - }, - 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 年' - } -}); - -moment.locale('en'); - -return moment; - -}))); diff --git a/admin/bower_components/moment/min/locales.min.js b/admin/bower_components/moment/min/locales.min.js deleted file mode 100644 index 54698df..0000000 --- a/admin/bower_components/moment/min/locales.min.js +++ /dev/null @@ -1,498 +0,0 @@ -!function(a,b){"object"==typeof exports&&"undefined"!=typeof module&&"function"==typeof require?b(require("../moment")):"function"==typeof define&&define.amd?define(["../moment"],b):b(a.moment)}(this,function(a){"use strict"; -//! moment.js locale configuration -//! locale : Belarusian [be] -//! author : Dmitry Demidov : https://github.com/demidov91 -//! author: Praleska: http://praleska.pro/ -//! Author : Menelion Elensúle : https://github.com/Oire -function b(a,b){var c=a.split("_");return b%10===1&&b%100!==11?c[0]:b%10>=2&&b%10<=4&&(b%100<10||b%100>=20)?c[1]:c[2]}function c(a,c,d){var e={mm:c?"хвіліна_хвіліны_хвілін":"хвіліну_хвіліны_хвілін",hh:c?"гадзіна_гадзіны_гадзін":"гадзіну_гадзіны_гадзін",dd:"дзень_дні_дзён",MM:"месяц_месяцы_месяцаў",yy:"год_гады_гадоў"};return"m"===d?c?"хвіліна":"хвіліну":"h"===d?c?"гадзіна":"гадзіну":a+" "+b(e[d],+a)} -//! moment.js locale configuration -//! locale : Breton [br] -//! author : Jean-Baptiste Le Duigou : https://github.com/jbleduigou -function d(a,b,c){var d={mm:"munutenn",MM:"miz",dd:"devezh"};return a+" "+g(d[c],a)}function e(a){switch(f(a)){case 1:case 3:case 4:case 5:case 9:return a+" bloaz";default:return a+" vloaz"}}function f(a){return a>9?f(a%10):a}function g(a,b){return 2===b?h(a):a}function h(a){var b={m:"v",b:"v",d:"z"};return void 0===b[a.charAt(0)]?a:b[a.charAt(0)]+a.substring(1)} -//! moment.js locale configuration -//! locale : Bosnian [bs] -//! author : Nedim Cholich : https://github.com/frontyard -//! based on (hr) translation by Bojan Marković -function i(a,b,c){var d=a+" ";switch(c){case"m":return b?"jedna minuta":"jedne minute";case"mm":return d+=1===a?"minuta":2===a||3===a||4===a?"minute":"minuta";case"h":return b?"jedan sat":"jednog sata";case"hh":return d+=1===a?"sat":2===a||3===a||4===a?"sata":"sati";case"dd":return d+=1===a?"dan":"dana";case"MM":return d+=1===a?"mjesec":2===a||3===a||4===a?"mjeseca":"mjeseci";case"yy":return d+=1===a?"godina":2===a||3===a||4===a?"godine":"godina"}}function j(a){return a>1&&a<5&&1!==~~(a/10)}function k(a,b,c,d){var e=a+" ";switch(c){case"s":return b||d?"pár sekund":"pár sekundami";case"m":return b?"minuta":d?"minutu":"minutou";case"mm":return b||d?e+(j(a)?"minuty":"minut"):e+"minutami";break;case"h":return b?"hodina":d?"hodinu":"hodinou";case"hh":return b||d?e+(j(a)?"hodiny":"hodin"):e+"hodinami";break;case"d":return b||d?"den":"dnem";case"dd":return b||d?e+(j(a)?"dny":"dní"):e+"dny";break;case"M":return b||d?"měsíc":"měsícem";case"MM":return b||d?e+(j(a)?"měsíce":"měsíců"):e+"měsíci";break;case"y":return b||d?"rok":"rokem";case"yy":return b||d?e+(j(a)?"roky":"let"):e+"lety"}} -//! moment.js locale configuration -//! locale : German (Austria) [de-at] -//! author : lluchs : https://github.com/lluchs -//! author: Menelion Elensúle: https://github.com/Oire -//! author : Martin Groller : https://github.com/MadMG -//! author : Mikolaj Dadela : https://github.com/mik01aj -function l(a,b,c,d){var e={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 b?e[c][0]:e[c][1]} -//! moment.js locale configuration -//! locale : German (Switzerland) [de-ch] -//! author : sschueller : https://github.com/sschueller -function m(a,b,c,d){var e={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 b?e[c][0]:e[c][1]} -//! moment.js locale configuration -//! locale : German [de] -//! author : lluchs : https://github.com/lluchs -//! author: Menelion Elensúle: https://github.com/Oire -//! author : Mikolaj Dadela : https://github.com/mik01aj -function n(a,b,c,d){var e={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 b?e[c][0]:e[c][1]}function o(a){return a instanceof Function||"[object Function]"===Object.prototype.toString.call(a)} -//! moment.js locale configuration -//! locale : Estonian [et] -//! author : Henry Kehlmann : https://github.com/madhenry -//! improvements : Illimar Tambek : https://github.com/ragulka -function p(a,b,c,d){var e={s:["mõne sekundi","mõni sekund","paar sekundit"],m:["ühe minuti","üks minut"],mm:[a+" minuti",a+" minutit"],h:["ühe tunni","tund aega","üks tund"],hh:[a+" tunni",a+" tundi"],d:["ühe päeva","üks päev"],M:["kuu aja","kuu aega","üks kuu"],MM:[a+" kuu",a+" kuud"],y:["ühe aasta","aasta","üks aasta"],yy:[a+" aasta",a+" aastat"]};return b?e[c][2]?e[c][2]:e[c][1]:d?e[c][0]:e[c][1]}function q(a,b,c,d){var e="";switch(c){case"s":return d?"muutaman sekunnin":"muutama sekunti";case"m":return d?"minuutin":"minuutti";case"mm":e=d?"minuutin":"minuuttia";break;case"h":return d?"tunnin":"tunti";case"hh":e=d?"tunnin":"tuntia";break;case"d":return d?"päivän":"päivä";case"dd":e=d?"päivän":"päivää";break;case"M":return d?"kuukauden":"kuukausi";case"MM":e=d?"kuukauden":"kuukautta";break;case"y":return d?"vuoden":"vuosi";case"yy":e=d?"vuoden":"vuotta"}return e=r(a,d)+" "+e}function r(a,b){return a<10?b?Ea[a]:Da[a]:a} -//! moment.js locale configuration -//! locale : Konkani Latin script [gom-latn] -//! author : The Discoverer : https://github.com/WikiDiscoverer -function s(a,b,c,d){var e={s:["thodde secondanim","thodde second"],m:["eka mintan","ek minute"],mm:[a+" mintanim",a+" mintam"],h:["eka horan","ek hor"],hh:[a+" horanim",a+" hor"],d:["eka disan","ek dis"],dd:[a+" disanim",a+" dis"],M:["eka mhoinean","ek mhoino"],MM:[a+" mhoineanim",a+" mhoine"],y:["eka vorsan","ek voros"],yy:[a+" vorsanim",a+" vorsam"]};return b?e[c][0]:e[c][1]} -//! moment.js locale configuration -//! locale : Croatian [hr] -//! author : Bojan Marković : https://github.com/bmarkovic -function t(a,b,c){var d=a+" ";switch(c){case"m":return b?"jedna minuta":"jedne minute";case"mm":return d+=1===a?"minuta":2===a||3===a||4===a?"minute":"minuta";case"h":return b?"jedan sat":"jednog sata";case"hh":return d+=1===a?"sat":2===a||3===a||4===a?"sata":"sati";case"dd":return d+=1===a?"dan":"dana";case"MM":return d+=1===a?"mjesec":2===a||3===a||4===a?"mjeseca":"mjeseci";case"yy":return d+=1===a?"godina":2===a||3===a||4===a?"godine":"godina"}}function u(a,b,c,d){var e=a;switch(c){case"s":return d||b?"néhány másodperc":"néhány másodperce";case"m":return"egy"+(d||b?" perc":" perce");case"mm":return e+(d||b?" perc":" perce");case"h":return"egy"+(d||b?" óra":" órája");case"hh":return e+(d||b?" óra":" órája");case"d":return"egy"+(d||b?" nap":" napja");case"dd":return e+(d||b?" nap":" napja");case"M":return"egy"+(d||b?" hónap":" hónapja");case"MM":return e+(d||b?" hónap":" hónapja");case"y":return"egy"+(d||b?" év":" éve");case"yy":return e+(d||b?" év":" éve")}return""}function v(a){return(a?"":"[múlt] ")+"["+Oa[this.day()]+"] LT[-kor]"} -//! moment.js locale configuration -//! locale : Icelandic [is] -//! author : Hinrik Örn Sigurðsson : https://github.com/hinrik -function w(a){return a%100===11||a%10!==1}function x(a,b,c,d){var e=a+" ";switch(c){case"s":return b||d?"nokkrar sekúndur":"nokkrum sekúndum";case"m":return b?"mínúta":"mínútu";case"mm":return w(a)?e+(b||d?"mínútur":"mínútum"):b?e+"mínúta":e+"mínútu";case"hh":return w(a)?e+(b||d?"klukkustundir":"klukkustundum"):e+"klukkustund";case"d":return b?"dagur":d?"dag":"degi";case"dd":return w(a)?b?e+"dagar":e+(d?"daga":"dögum"):b?e+"dagur":e+(d?"dag":"degi");case"M":return b?"mánuður":d?"mánuð":"mánuði";case"MM":return w(a)?b?e+"mánuðir":e+(d?"mánuði":"mánuðum"):b?e+"mánuður":e+(d?"mánuð":"mánuði");case"y":return b||d?"ár":"ári";case"yy":return w(a)?e+(b||d?"ár":"árum"):e+(b||d?"ár":"ári")}} -//! moment.js locale configuration -//! locale : Luxembourgish [lb] -//! author : mweimerskirch : https://github.com/mweimerskirch -//! author : David Raison : https://github.com/kwisatz -function y(a,b,c,d){var e={m:["eng Minutt","enger Minutt"],h:["eng Stonn","enger Stonn"],d:["een Dag","engem Dag"],M:["ee Mount","engem Mount"],y:["ee Joer","engem Joer"]};return b?e[c][0]:e[c][1]}function z(a){var b=a.substr(0,a.indexOf(" "));return B(b)?"a "+a:"an "+a}function A(a){var b=a.substr(0,a.indexOf(" "));return B(b)?"viru "+a:"virun "+a}function B(a){if(a=parseInt(a,10),isNaN(a))return!1;if(a<0)return!0;if(a<10)return 4<=a&&a<=7;if(a<100){var b=a%10,c=a/10;return B(0===b?c:b)}if(a<1e4){for(;a>=10;)a/=10;return B(a)}return a/=1e3,B(a)}function C(a,b,c,d){return b?"kelios sekundės":d?"kelių sekundžių":"kelias sekundes"}function D(a,b,c,d){return b?F(c)[0]:d?F(c)[1]:F(c)[2]}function E(a){return a%10===0||a>10&&a<20}function F(a){return Ta[a].split("_")}function G(a,b,c,d){var e=a+" ";return 1===a?e+D(a,b,c[0],d):b?e+(E(a)?F(c)[1]:F(c)[0]):d?e+F(c)[1]:e+(E(a)?F(c)[1]:F(c)[2])}function H(a,b,c){return c?b%10===1&&b%100!==11?a[2]:a[3]:b%10===1&&b%100!==11?a[0]:a[1]}function I(a,b,c){return a+" "+H(Ua[c],a,b)}function J(a,b,c){return H(Ua[c],a,b)}function K(a,b){return b?"dažas sekundes":"dažām sekundēm"}function L(a,b,c,d){var e="";if(b)switch(c){case"s":e="काही सेकंद";break;case"m":e="एक मिनिट";break;case"mm":e="%d मिनिटे";break;case"h":e="एक तास";break;case"hh":e="%d तास";break;case"d":e="एक दिवस";break;case"dd":e="%d दिवस";break;case"M":e="एक महिना";break;case"MM":e="%d महिने";break;case"y":e="एक वर्ष";break;case"yy":e="%d वर्षे"}else switch(c){case"s":e="काही सेकंदां";break;case"m":e="एका मिनिटा";break;case"mm":e="%d मिनिटां";break;case"h":e="एका तासा";break;case"hh":e="%d तासां";break;case"d":e="एका दिवसा";break;case"dd":e="%d दिवसां";break;case"M":e="एका महिन्या";break;case"MM":e="%d महिन्यां";break;case"y":e="एका वर्षा";break;case"yy":e="%d वर्षां"}return e.replace(/%d/i,a)}function M(a){return a%10<5&&a%10>1&&~~(a/10)%10!==1}function N(a,b,c){var d=a+" ";switch(c){case"m":return b?"minuta":"minutę";case"mm":return d+(M(a)?"minuty":"minut");case"h":return b?"godzina":"godzinę";case"hh":return d+(M(a)?"godziny":"godzin");case"MM":return d+(M(a)?"miesiące":"miesięcy");case"yy":return d+(M(a)?"lata":"lat")}} -//! moment.js locale configuration -//! locale : Romanian [ro] -//! author : Vlad Gurdiga : https://github.com/gurdiga -//! author : Valentin Agachi : https://github.com/avaly -function O(a,b,c){var d={mm:"minute",hh:"ore",dd:"zile",MM:"luni",yy:"ani"},e=" ";return(a%100>=20||a>=100&&a%100===0)&&(e=" de "),a+e+d[c]} -//! moment.js locale configuration -//! locale : Russian [ru] -//! author : Viktorminator : https://github.com/Viktorminator -//! Author : Menelion Elensúle : https://github.com/Oire -//! author : Коренберг Марк : https://github.com/socketpair -function P(a,b){var c=a.split("_");return b%10===1&&b%100!==11?c[0]:b%10>=2&&b%10<=4&&(b%100<10||b%100>=20)?c[1]:c[2]}function Q(a,b,c){var d={mm:b?"минута_минуты_минут":"минуту_минуты_минут",hh:"час_часа_часов",dd:"день_дня_дней",MM:"месяц_месяца_месяцев",yy:"год_года_лет"};return"m"===c?b?"минута":"минуту":a+" "+P(d[c],+a)}function R(a){return a>1&&a<5}function S(a,b,c,d){var e=a+" ";switch(c){case"s":return b||d?"pár sekúnd":"pár sekundami";case"m":return b?"minúta":d?"minútu":"minútou";case"mm":return b||d?e+(R(a)?"minúty":"minút"):e+"minútami";break;case"h":return b?"hodina":d?"hodinu":"hodinou";case"hh":return b||d?e+(R(a)?"hodiny":"hodín"):e+"hodinami";break;case"d":return b||d?"deň":"dňom";case"dd":return b||d?e+(R(a)?"dni":"dní"):e+"dňami";break;case"M":return b||d?"mesiac":"mesiacom";case"MM":return b||d?e+(R(a)?"mesiace":"mesiacov"):e+"mesiacmi";break;case"y":return b||d?"rok":"rokom";case"yy":return b||d?e+(R(a)?"roky":"rokov"):e+"rokmi"}} -//! moment.js locale configuration -//! locale : Slovenian [sl] -//! author : Robert Sedovšek : https://github.com/sedovsek -function T(a,b,c,d){var e=a+" ";switch(c){case"s":return b||d?"nekaj sekund":"nekaj sekundami";case"m":return b?"ena minuta":"eno minuto";case"mm":return e+=1===a?b?"minuta":"minuto":2===a?b||d?"minuti":"minutama":a<5?b||d?"minute":"minutami":b||d?"minut":"minutami";case"h":return b?"ena ura":"eno uro";case"hh":return e+=1===a?b?"ura":"uro":2===a?b||d?"uri":"urama":a<5?b||d?"ure":"urami":b||d?"ur":"urami";case"d":return b||d?"en dan":"enim dnem";case"dd":return e+=1===a?b||d?"dan":"dnem":2===a?b||d?"dni":"dnevoma":b||d?"dni":"dnevi";case"M":return b||d?"en mesec":"enim mesecem";case"MM":return e+=1===a?b||d?"mesec":"mesecem":2===a?b||d?"meseca":"mesecema":a<5?b||d?"mesece":"meseci":b||d?"mesecev":"meseci";case"y":return b||d?"eno leto":"enim letom";case"yy":return e+=1===a?b||d?"leto":"letom":2===a?b||d?"leti":"letoma":a<5?b||d?"leta":"leti":b||d?"let":"leti"}}function U(a){var b=a;return b=a.indexOf("jaj")!==-1?b.slice(0,-3)+"leS":a.indexOf("jar")!==-1?b.slice(0,-3)+"waQ":a.indexOf("DIS")!==-1?b.slice(0,-3)+"nem":b+" pIq"}function V(a){var b=a;return b=a.indexOf("jaj")!==-1?b.slice(0,-3)+"Hu’":a.indexOf("jar")!==-1?b.slice(0,-3)+"wen":a.indexOf("DIS")!==-1?b.slice(0,-3)+"ben":b+" ret"}function W(a,b,c,d){var e=X(a);switch(c){case"mm":return e+" tup";case"hh":return e+" rep";case"dd":return e+" jaj";case"MM":return e+" jar";case"yy":return e+" DIS"}}function X(a){var b=Math.floor(a%1e3/100),c=Math.floor(a%100/10),d=a%10,e="";return b>0&&(e+=vb[b]+"vatlh"),c>0&&(e+=(""!==e?" ":"")+vb[c]+"maH"),d>0&&(e+=(""!==e?" ":"")+vb[d]),""===e?"pagh":e}function Y(a,b,c,d){var e={s:["viensas secunds","'iensas secunds"],m:["'n míut","'iens míut"],mm:[a+" míuts",""+a+" míuts"],h:["'n þora","'iensa þora"],hh:[a+" þoras",""+a+" þoras"],d:["'n ziua","'iensa ziua"],dd:[a+" ziuas",""+a+" ziuas"],M:["'n mes","'iens mes"],MM:[a+" mesen",""+a+" mesen"],y:["'n ar","'iens ar"],yy:[a+" ars",""+a+" ars"]};return d?e[c][0]:b?e[c][0]:e[c][1]} -//! moment.js locale configuration -//! locale : Ukrainian [uk] -//! author : zemlanin : https://github.com/zemlanin -//! Author : Menelion Elensúle : https://github.com/Oire -function Z(a,b){var c=a.split("_");return b%10===1&&b%100!==11?c[0]:b%10>=2&&b%10<=4&&(b%100<10||b%100>=20)?c[1]:c[2]}function $(a,b,c){var d={mm:b?"хвилина_хвилини_хвилин":"хвилину_хвилини_хвилин",hh:b?"година_години_годин":"годину_години_годин",dd:"день_дні_днів",MM:"місяць_місяці_місяців",yy:"рік_роки_років"};return"m"===c?b?"хвилина":"хвилину":"h"===c?b?"година":"годину":a+" "+Z(d[c],+a)}function _(a,b){var c={nominative:"неділя_понеділок_вівторок_середа_четвер_п’ятниця_субота".split("_"),accusative:"неділю_понеділок_вівторок_середу_четвер_п’ятницю_суботу".split("_"),genitive:"неділі_понеділка_вівторка_середи_четверга_п’ятниці_суботи".split("_")};if(!a)return c.nominative;var d=/(\[[ВвУу]\]) ?dddd/.test(b)?"accusative":/\[?(?:минулої|наступної)? ?\] ?dddd/.test(b)?"genitive":"nominative";return c[d][a.day()]}function aa(a){return function(){return a+"о"+(11===this.hours()?"б":"")+"] LT"}} -//! moment.js locale configuration -//! locale : Afrikaans [af] -//! author : Werner Mollentze : https://github.com/wernerm -a.defineLocale("af",{months:"Januarie_Februarie_Maart_April_Mei_Junie_Julie_Augustus_September_Oktober_November_Desember".split("_"),monthsShort:"Jan_Feb_Mrt_Apr_Mei_Jun_Jul_Aug_Sep_Okt_Nov_Des".split("_"),weekdays:"Sondag_Maandag_Dinsdag_Woensdag_Donderdag_Vrydag_Saterdag".split("_"),weekdaysShort:"Son_Maa_Din_Woe_Don_Vry_Sat".split("_"),weekdaysMin:"So_Ma_Di_Wo_Do_Vr_Sa".split("_"),meridiemParse:/vm|nm/i,isPM:function(a){return/^nm$/i.test(a)},meridiem:function(a,b,c){return a<12?c?"vm":"VM":c?"nm":"NM"},longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[Vandag om] LT",nextDay:"[Môre om] LT",nextWeek:"dddd [om] LT",lastDay:"[Gister om] LT",lastWeek:"[Laas] dddd [om] LT",sameElse:"L"},relativeTime:{future:"oor %s",past:"%s gelede",s:"'n paar sekondes",m:"'n minuut",mm:"%d minute",h:"'n uur",hh:"%d ure",d:"'n dag",dd:"%d dae",M:"'n maand",MM:"%d maande",y:"'n jaar",yy:"%d jaar"},dayOfMonthOrdinalParse:/\d{1,2}(ste|de)/,ordinal:function(a){return a+(1===a||8===a||a>=20?"ste":"de")},week:{dow:1,doy:4}}), -//! moment.js locale configuration -//! locale : Arabic (Algeria) [ar-dz] -//! author : Noureddine LOUAHEDJ : https://github.com/noureddineme -a.defineLocale("ar-dz",{months:"جانفي_فيفري_مارس_أفريل_ماي_جوان_جويلية_أوت_سبتمبر_أكتوبر_نوفمبر_ديسمبر".split("_"),monthsShort:"جانفي_فيفري_مارس_أفريل_ماي_جوان_جويلية_أوت_سبتمبر_أكتوبر_نوفمبر_ديسمبر".split("_"),weekdays:"الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت".split("_"),weekdaysShort:"احد_اثنين_ثلاثاء_اربعاء_خميس_جمعة_سبت".split("_"),weekdaysMin:"أح_إث_ثلا_أر_خم_جم_سب".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},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:0,doy:4}}), -//! moment.js locale configuration -//! locale : Arabic (Kuwait) [ar-kw] -//! author : Nusret Parlak: https://github.com/nusretparlak -a.defineLocale("ar-kw",{months:"يناير_فبراير_مارس_أبريل_ماي_يونيو_يوليوز_غشت_شتنبر_أكتوبر_نونبر_دجنبر".split("_"),monthsShort:"يناير_فبراير_مارس_أبريل_ماي_يونيو_يوليوز_غشت_شتنبر_أكتوبر_نونبر_دجنبر".split("_"),weekdays:"الأحد_الإتنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت".split("_"),weekdaysShort:"احد_اتنين_ثلاثاء_اربعاء_خميس_جمعة_سبت".split("_"),weekdaysMin:"ح_ن_ث_ر_خ_ج_س".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},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:0,doy:12}}); -//! moment.js locale configuration -//! locale : Arabic (Lybia) [ar-ly] -//! author : Ali Hmer: https://github.com/kikoanis -var ba={1:"1",2:"2",3:"3",4:"4",5:"5",6:"6",7:"7",8:"8",9:"9",0:"0"},ca=function(a){return 0===a?0:1===a?1:2===a?2:a%100>=3&&a%100<=10?3:a%100>=11?4:5},da={s:["أقل من ثانية","ثانية واحدة",["ثانيتان","ثانيتين"],"%d ثوان","%d ثانية","%d ثانية"],m:["أقل من دقيقة","دقيقة واحدة",["دقيقتان","دقيقتين"],"%d دقائق","%d دقيقة","%d دقيقة"],h:["أقل من ساعة","ساعة واحدة",["ساعتان","ساعتين"],"%d ساعات","%d ساعة","%d ساعة"],d:["أقل من يوم","يوم واحد",["يومان","يومين"],"%d أيام","%d يومًا","%d يوم"],M:["أقل من شهر","شهر واحد",["شهران","شهرين"],"%d أشهر","%d شهرا","%d شهر"],y:["أقل من عام","عام واحد",["عامان","عامين"],"%d أعوام","%d عامًا","%d عام"]},ea=function(a){return function(b,c,d,e){var f=ca(b),g=da[a][ca(b)];return 2===f&&(g=g[c?0:1]),g.replace(/%d/i,b)}},fa=["يناير","فبراير","مارس","أبريل","مايو","يونيو","يوليو","أغسطس","سبتمبر","أكتوبر","نوفمبر","ديسمبر"];a.defineLocale("ar-ly",{months:fa,monthsShort:fa,weekdays:"الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت".split("_"),weekdaysShort:"أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت".split("_"),weekdaysMin:"ح_ن_ث_ر_خ_ج_س".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"D/‏M/‏YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},meridiemParse:/ص|م/,isPM:function(a){return"م"===a},meridiem:function(a,b,c){return a<12?"ص":"م"},calendar:{sameDay:"[اليوم عند الساعة] LT",nextDay:"[غدًا عند الساعة] LT",nextWeek:"dddd [عند الساعة] LT",lastDay:"[أمس عند الساعة] LT",lastWeek:"dddd [عند الساعة] LT",sameElse:"L"},relativeTime:{future:"بعد %s",past:"منذ %s",s:ea("s"),m:ea("m"),mm:ea("m"),h:ea("h"),hh:ea("h"),d:ea("d"),dd:ea("d"),M:ea("M"),MM:ea("M"),y:ea("y"),yy:ea("y")},preparse:function(a){return a.replace(/\u200f/g,"").replace(/،/g,",")},postformat:function(a){return a.replace(/\d/g,function(a){return ba[a]}).replace(/,/g,"،")},week:{dow:6,doy:12}}), -//! moment.js locale configuration -//! locale : Arabic (Morocco) [ar-ma] -//! author : ElFadili Yassine : https://github.com/ElFadiliY -//! author : Abdel Said : https://github.com/abdelsaid -a.defineLocale("ar-ma",{months:"يناير_فبراير_مارس_أبريل_ماي_يونيو_يوليوز_غشت_شتنبر_أكتوبر_نونبر_دجنبر".split("_"),monthsShort:"يناير_فبراير_مارس_أبريل_ماي_يونيو_يوليوز_غشت_شتنبر_أكتوبر_نونبر_دجنبر".split("_"),weekdays:"الأحد_الإتنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت".split("_"),weekdaysShort:"احد_اتنين_ثلاثاء_اربعاء_خميس_جمعة_سبت".split("_"),weekdaysMin:"ح_ن_ث_ر_خ_ج_س".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},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}}); -//! moment.js locale configuration -//! locale : Arabic (Saudi Arabia) [ar-sa] -//! author : Suhail Alkowaileet : https://github.com/xsoh -var ga={1:"١",2:"٢",3:"٣",4:"٤",5:"٥",6:"٦",7:"٧",8:"٨",9:"٩",0:"٠"},ha={"١":"1","٢":"2","٣":"3","٤":"4","٥":"5","٦":"6","٧":"7","٨":"8","٩":"9","٠":"0"};a.defineLocale("ar-sa",{months:"يناير_فبراير_مارس_أبريل_مايو_يونيو_يوليو_أغسطس_سبتمبر_أكتوبر_نوفمبر_ديسمبر".split("_"),monthsShort:"يناير_فبراير_مارس_أبريل_مايو_يونيو_يوليو_أغسطس_سبتمبر_أكتوبر_نوفمبر_ديسمبر".split("_"),weekdays:"الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت".split("_"),weekdaysShort:"أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت".split("_"),weekdaysMin:"ح_ن_ث_ر_خ_ج_س".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},meridiemParse:/ص|م/,isPM:function(a){return"م"===a},meridiem:function(a,b,c){return a<12?"ص":"م"},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 ha[a]}).replace(/،/g,",")},postformat:function(a){return a.replace(/\d/g,function(a){return ga[a]}).replace(/,/g,"،")},week:{dow:0,doy:6}}), -//! moment.js locale configuration -//! locale : Arabic (Tunisia) [ar-tn] -//! author : Nader Toukabri : https://github.com/naderio -a.defineLocale("ar-tn",{months:"جانفي_فيفري_مارس_أفريل_ماي_جوان_جويلية_أوت_سبتمبر_أكتوبر_نوفمبر_ديسمبر".split("_"),monthsShort:"جانفي_فيفري_مارس_أفريل_ماي_جوان_جويلية_أوت_سبتمبر_أكتوبر_نوفمبر_ديسمبر".split("_"),weekdays:"الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت".split("_"),weekdaysShort:"أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت".split("_"),weekdaysMin:"ح_ن_ث_ر_خ_ج_س".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},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:4}}); -//! moment.js locale configuration -//! locale : Arabic [ar] -//! author : Abdel Said: https://github.com/abdelsaid -//! author : Ahmed Elkhatib -//! author : forabi https://github.com/forabi -var ia={1:"١",2:"٢",3:"٣",4:"٤",5:"٥",6:"٦",7:"٧",8:"٨",9:"٩",0:"٠"},ja={"١":"1","٢":"2","٣":"3","٤":"4","٥":"5","٦":"6","٧":"7","٨":"8","٩":"9","٠":"0"},ka=function(a){return 0===a?0:1===a?1:2===a?2:a%100>=3&&a%100<=10?3:a%100>=11?4:5},la={s:["أقل من ثانية","ثانية واحدة",["ثانيتان","ثانيتين"],"%d ثوان","%d ثانية","%d ثانية"],m:["أقل من دقيقة","دقيقة واحدة",["دقيقتان","دقيقتين"],"%d دقائق","%d دقيقة","%d دقيقة"],h:["أقل من ساعة","ساعة واحدة",["ساعتان","ساعتين"],"%d ساعات","%d ساعة","%d ساعة"],d:["أقل من يوم","يوم واحد",["يومان","يومين"],"%d أيام","%d يومًا","%d يوم"],M:["أقل من شهر","شهر واحد",["شهران","شهرين"],"%d أشهر","%d شهرا","%d شهر"],y:["أقل من عام","عام واحد",["عامان","عامين"],"%d أعوام","%d عامًا","%d عام"]},ma=function(a){return function(b,c,d,e){var f=ka(b),g=la[a][ka(b)];return 2===f&&(g=g[c?0:1]),g.replace(/%d/i,b)}},na=["كانون الثاني يناير","شباط فبراير","آذار مارس","نيسان أبريل","أيار مايو","حزيران يونيو","تموز يوليو","آب أغسطس","أيلول سبتمبر","تشرين الأول أكتوبر","تشرين الثاني نوفمبر","كانون الأول ديسمبر"];a.defineLocale("ar",{months:na,monthsShort:na,weekdays:"الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت".split("_"),weekdaysShort:"أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت".split("_"),weekdaysMin:"ح_ن_ث_ر_خ_ج_س".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"D/‏M/‏YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},meridiemParse:/ص|م/,isPM:function(a){return"م"===a},meridiem:function(a,b,c){return a<12?"ص":"م"},calendar:{sameDay:"[اليوم عند الساعة] LT",nextDay:"[غدًا عند الساعة] LT",nextWeek:"dddd [عند الساعة] LT",lastDay:"[أمس عند الساعة] LT",lastWeek:"dddd [عند الساعة] LT",sameElse:"L"},relativeTime:{future:"بعد %s",past:"منذ %s",s:ma("s"),m:ma("m"),mm:ma("m"),h:ma("h"),hh:ma("h"),d:ma("d"),dd:ma("d"),M:ma("M"),MM:ma("M"),y:ma("y"),yy:ma("y")},preparse:function(a){return a.replace(/\u200f/g,"").replace(/[١٢٣٤٥٦٧٨٩٠]/g,function(a){return ja[a]}).replace(/،/g,",")},postformat:function(a){return a.replace(/\d/g,function(a){return ia[a]}).replace(/,/g,"،")},week:{dow:6,doy:12}}); -//! moment.js locale configuration -//! locale : Azerbaijani [az] -//! author : topchiyev : https://github.com/topchiyev -var oa={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.defineLocale("az",{months:"yanvar_fevral_mart_aprel_may_iyun_iyul_avqust_sentyabr_oktyabr_noyabr_dekabr".split("_"),monthsShort:"yan_fev_mar_apr_may_iyn_iyl_avq_sen_okt_noy_dek".split("_"),weekdays:"Bazar_Bazar ertəsi_Çərşənbə axşamı_Çərşənbə_Cümə axşamı_Cümə_Şənbə".split("_"),weekdaysShort:"Baz_BzE_ÇAx_Çər_CAx_Cüm_Şən".split("_"),weekdaysMin:"Bz_BE_ÇA_Çə_CA_Cü_Şə".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[bugün saat] LT",nextDay:"[sabah saat] LT",nextWeek:"[gələn həftə] dddd [saat] LT",lastDay:"[dünən] LT",lastWeek:"[keçən həftə] dddd [saat] LT",sameElse:"L"},relativeTime:{future:"%s sonra",past:"%s əvvəl",s:"birneçə saniyyə",m:"bir dəqiqə",mm:"%d dəqiqə",h:"bir saat",hh:"%d saat",d:"bir gün",dd:"%d gün",M:"bir ay",MM:"%d ay",y:"bir il",yy:"%d il"},meridiemParse:/gecə|səhər|gündüz|axşam/,isPM:function(a){return/^(gündüz|axşam)$/.test(a)},meridiem:function(a,b,c){return a<4?"gecə":a<12?"səhər":a<17?"gündüz":"axşam"},dayOfMonthOrdinalParse:/\d{1,2}-(ıncı|inci|nci|üncü|ncı|uncu)/,ordinal:function(a){if(0===a)return a+"-ıncı";var b=a%10,c=a%100-b,d=a>=100?100:null;return a+(oa[b]||oa[c]||oa[d])},week:{dow:1,doy:7}}),a.defineLocale("be",{months:{format:"студзеня_лютага_сакавіка_красавіка_траўня_чэрвеня_ліпеня_жніўня_верасня_кастрычніка_лістапада_снежня".split("_"),standalone:"студзень_люты_сакавік_красавік_травень_чэрвень_ліпень_жнівень_верасень_кастрычнік_лістапад_снежань".split("_")},monthsShort:"студ_лют_сак_крас_трав_чэрв_ліп_жнів_вер_каст_ліст_снеж".split("_"),weekdays:{format:"нядзелю_панядзелак_аўторак_сераду_чацвер_пятніцу_суботу".split("_"),standalone:"нядзеля_панядзелак_аўторак_серада_чацвер_пятніца_субота".split("_"),isFormat:/\[ ?[Вв] ?(?:мінулую|наступную)? ?\] ?dddd/},weekdaysShort:"нд_пн_ат_ср_чц_пт_сб".split("_"),weekdaysMin:"нд_пн_ат_ср_чц_пт_сб".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY г.",LLL:"D MMMM YYYY г., HH:mm",LLLL:"dddd, D MMMM YYYY г., HH:mm"},calendar:{sameDay:"[Сёння ў] LT",nextDay:"[Заўтра ў] LT",lastDay:"[Учора ў] LT",nextWeek:function(){return"[У] dddd [ў] LT"},lastWeek:function(){switch(this.day()){case 0:case 3:case 5:case 6:return"[У мінулую] dddd [ў] LT";case 1:case 2:case 4:return"[У мінулы] dddd [ў] LT"}},sameElse:"L"},relativeTime:{future:"праз %s",past:"%s таму",s:"некалькі секунд",m:c,mm:c,h:c,hh:c,d:"дзень",dd:c,M:"месяц",MM:c,y:"год",yy:c},meridiemParse:/ночы|раніцы|дня|вечара/,isPM:function(a){return/^(дня|вечара)$/.test(a)},meridiem:function(a,b,c){return a<4?"ночы":a<12?"раніцы":a<17?"дня":"вечара"},dayOfMonthOrdinalParse:/\d{1,2}-(і|ы|га)/,ordinal:function(a,b){switch(b){case"M":case"d":case"DDD":case"w":case"W":return a%10!==2&&a%10!==3||a%100===12||a%100===13?a+"-ы":a+"-і";case"D":return a+"-га";default:return a}},week:{dow:1,doy:7}}), -//! moment.js locale configuration -//! locale : Bulgarian [bg] -//! author : Krasen Borisov : https://github.com/kraz -a.defineLocale("bg",{months:"януари_февруари_март_април_май_юни_юли_август_септември_октомври_ноември_декември".split("_"),monthsShort:"янр_фев_мар_апр_май_юни_юли_авг_сеп_окт_ное_дек".split("_"),weekdays:"неделя_понеделник_вторник_сряда_четвъртък_петък_събота".split("_"),weekdaysShort:"нед_пон_вто_сря_чет_пет_съб".split("_"),weekdaysMin:"нд_пн_вт_ср_чт_пт_сб".split("_"),longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"D.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY H:mm",LLLL:"dddd, D MMMM YYYY H:mm"},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 години"},dayOfMonthOrdinalParse:/\d{1,2}-(ев|ен|ти|ви|ри|ми)/,ordinal:function(a){var b=a%10,c=a%100;return 0===a?a+"-ев":0===c?a+"-ен":c>10&&c<20?a+"-ти":1===b?a+"-ви":2===b?a+"-ри":7===b||8===b?a+"-ми":a+"-ти"},week:{dow:1,doy:7}}); -//! moment.js locale configuration -//! locale : Bengali [bn] -//! author : Kaushik Gandhi : https://github.com/kaushikgandhi -var pa={1:"১",2:"২",3:"৩",4:"৪",5:"৫",6:"৬",7:"৭",8:"৮",9:"৯",0:"০"},qa={"১":"1","২":"2","৩":"3","৪":"4","৫":"5","৬":"6","৭":"7","৮":"8","৯":"9","০":"0"};a.defineLocale("bn",{months:"জানুয়ারী_ফেব্রুয়ারি_মার্চ_এপ্রিল_মে_জুন_জুলাই_আগস্ট_সেপ্টেম্বর_অক্টোবর_নভেম্বর_ডিসেম্বর".split("_"),monthsShort:"জানু_ফেব_মার্চ_এপ্র_মে_জুন_জুল_আগ_সেপ্ট_অক্টো_নভে_ডিসে".split("_"),weekdays:"রবিবার_সোমবার_মঙ্গলবার_বুধবার_বৃহস্পতিবার_শুক্রবার_শনিবার".split("_"),weekdaysShort:"রবি_সোম_মঙ্গল_বুধ_বৃহস্পতি_শুক্র_শনি".split("_"),weekdaysMin:"রবি_সোম_মঙ্গ_বুধ_বৃহঃ_শুক্র_শনি".split("_"),longDateFormat:{LT:"A h:mm সময়",LTS:"A h:mm:ss সময়",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY, A h:mm সময়",LLLL:"dddd, D MMMM YYYY, A h:mm সময়"},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 qa[a]})},postformat:function(a){return a.replace(/\d/g,function(a){return pa[a]})},meridiemParse:/রাত|সকাল|দুপুর|বিকাল|রাত/,meridiemHour:function(a,b){return 12===a&&(a=0),"রাত"===b&&a>=4||"দুপুর"===b&&a<5||"বিকাল"===b?a+12:a},meridiem:function(a,b,c){return a<4?"রাত":a<10?"সকাল":a<17?"দুপুর":a<20?"বিকাল":"রাত"},week:{dow:0,doy:6}}); -//! moment.js locale configuration -//! locale : Tibetan [bo] -//! author : Thupten N. Chakrishar : https://github.com/vajradog -var ra={1:"༡",2:"༢",3:"༣",4:"༤",5:"༥",6:"༦",7:"༧",8:"༨",9:"༩",0:"༠"},sa={"༡":"1","༢":"2","༣":"3","༤":"4","༥":"5","༦":"6","༧":"7","༨":"8","༩":"9","༠":"0"};a.defineLocale("bo",{months:"ཟླ་བ་དང་པོ_ཟླ་བ་གཉིས་པ_ཟླ་བ་གསུམ་པ_ཟླ་བ་བཞི་པ_ཟླ་བ་ལྔ་པ_ཟླ་བ་དྲུག་པ_ཟླ་བ་བདུན་པ_ཟླ་བ་བརྒྱད་པ_ཟླ་བ་དགུ་པ_ཟླ་བ་བཅུ་པ_ཟླ་བ་བཅུ་གཅིག་པ_ཟླ་བ་བཅུ་གཉིས་པ".split("_"),monthsShort:"ཟླ་བ་དང་པོ_ཟླ་བ་གཉིས་པ_ཟླ་བ་གསུམ་པ_ཟླ་བ་བཞི་པ_ཟླ་བ་ལྔ་པ_ཟླ་བ་དྲུག་པ_ཟླ་བ་བདུན་པ_ཟླ་བ་བརྒྱད་པ_ཟླ་བ་དགུ་པ_ཟླ་བ་བཅུ་པ_ཟླ་བ་བཅུ་གཅིག་པ_ཟླ་བ་བཅུ་གཉིས་པ".split("_"),weekdays:"གཟའ་ཉི་མ་_གཟའ་ཟླ་བ་_གཟའ་མིག་དམར་_གཟའ་ལྷག་པ་_གཟའ་ཕུར་བུ_གཟའ་པ་སངས་_གཟའ་སྤེན་པ་".split("_"),weekdaysShort:"ཉི་མ་_ཟླ་བ་_མིག་དམར་_ལྷག་པ་_ཕུར་བུ_པ་སངས་_སྤེན་པ་".split("_"),weekdaysMin:"ཉི་མ་_ཟླ་བ་_མིག་དམར་_ལྷག་པ་_ཕུར་བུ_པ་སངས་_སྤེན་པ་".split("_"),longDateFormat:{LT:"A h:mm",LTS:"A h:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY, A h:mm",LLLL:"dddd, D MMMM YYYY, A h:mm"},calendar:{sameDay:"[དི་རིང] LT",nextDay:"[སང་ཉིན] LT",nextWeek:"[བདུན་ཕྲག་རྗེས་མ], 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 sa[a]})},postformat:function(a){return a.replace(/\d/g,function(a){return ra[a]})},meridiemParse:/མཚན་མོ|ཞོགས་ཀས|ཉིན་གུང|དགོང་དག|མཚན་མོ/,meridiemHour:function(a,b){return 12===a&&(a=0),"མཚན་མོ"===b&&a>=4||"ཉིན་གུང"===b&&a<5||"དགོང་དག"===b?a+12:a},meridiem:function(a,b,c){return a<4?"མཚན་མོ":a<10?"ཞོགས་ཀས":a<17?"ཉིན་གུང":a<20?"དགོང་དག":"མཚན་མོ"},week:{dow:0,doy:6}}),a.defineLocale("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("_"),weekdaysParseExact:!0,longDateFormat:{LT:"h[e]mm A",LTS:"h[e]mm:ss A",L:"DD/MM/YYYY",LL:"D [a viz] MMMM YYYY",LLL:"D [a viz] MMMM YYYY h[e]mm A",LLLL:"dddd, D [a viz] MMMM YYYY h[e]mm A"},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:d,h:"un eur",hh:"%d eur",d:"un devezh",dd:d,M:"ur miz",MM:d,y:"ur bloaz",yy:e},dayOfMonthOrdinalParse:/\d{1,2}(añ|vet)/,ordinal:function(a){var b=1===a?"añ":"vet";return a+b},week:{dow:1,doy:4}}),a.defineLocale("bs",{months:"januar_februar_mart_april_maj_juni_juli_august_septembar_oktobar_novembar_decembar".split("_"),monthsShort:"jan._feb._mar._apr._maj._jun._jul._aug._sep._okt._nov._dec.".split("_"),monthsParseExact:!0,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("_"),weekdaysParseExact:!0,longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY H:mm",LLLL:"dddd, D. MMMM YYYY H:mm"},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:i,mm:i,h:i,hh:i,d:"dan",dd:i,M:"mjesec",MM:i,y:"godinu",yy:i},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:7}}), -//! moment.js locale configuration -//! locale : Catalan [ca] -//! author : Juan G. Hurtado : https://github.com/juanghurtado -a.defineLocale("ca",{months:{standalone:"gener_febrer_març_abril_maig_juny_juliol_agost_setembre_octubre_novembre_desembre".split("_"),format:"de gener_de febrer_de març_d'abril_de maig_de juny_de juliol_d'agost_de setembre_d'octubre_de novembre_de desembre".split("_"),isFormat:/D[oD]?(\s)+MMMM/},monthsShort:"gen._febr._març_abr._maig_juny_jul._ag._set._oct._nov._des.".split("_"),monthsParseExact:!0,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("_"),weekdaysParseExact:!0,longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD/MM/YYYY",LL:"[el] D MMMM [de] YYYY",ll:"D MMM YYYY",LLL:"[el] D MMMM [de] YYYY [a les] H:mm",lll:"D MMM YYYY, H:mm",LLLL:"[el] dddd D MMMM [de] YYYY [a les] H:mm",llll:"ddd D MMM YYYY, H:mm"},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:"d'aquí %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"},dayOfMonthOrdinalParse:/\d{1,2}(r|n|t|è|a)/,ordinal:function(a,b){var c=1===a?"r":2===a?"n":3===a?"r":4===a?"t":"è";return"w"!==b&&"W"!==b||(c="a"),a+c},week:{dow:1,doy:4}}); -//! moment.js locale configuration -//! locale : Czech [cs] -//! author : petrbela : https://github.com/petrbela -var ta="leden_únor_březen_duben_květen_červen_červenec_srpen_září_říjen_listopad_prosinec".split("_"),ua="led_úno_bře_dub_kvě_čvn_čvc_srp_zář_říj_lis_pro".split("_");a.defineLocale("cs",{months:ta,monthsShort:ua,monthsParse:function(a,b){var c,d=[];for(c=0;c<12;c++)d[c]=new RegExp("^"+a[c]+"$|^"+b[c]+"$","i");return d}(ta,ua),shortMonthsParse:function(a){var b,c=[];for(b=0;b<12;b++)c[b]=new RegExp("^"+a[b]+"$","i");return c}(ua),longMonthsParse:function(a){var b,c=[];for(b=0;b<12;b++)c[b]=new RegExp("^"+a[b]+"$","i");return c}(ta),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",LTS:"H:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY H:mm",LLLL:"dddd D. MMMM YYYY H:mm",l:"D. M. YYYY"},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:k,m:k,mm:k,h:k,hh:k,d:k,dd:k,M:k,MM:k,y:k,yy:k},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}}), -//! moment.js locale configuration -//! locale : Chuvash [cv] -//! author : Anatoly Mironov : https://github.com/mirontoli -a.defineLocale("cv",{months:"кӑрлач_нарӑс_пуш_ака_май_ҫӗртме_утӑ_ҫурла_авӑн_юпа_чӳк_раштав".split("_"),monthsShort:"кӑр_нар_пуш_ака_май_ҫӗр_утӑ_ҫур_авн_юпа_чӳк_раш".split("_"),weekdays:"вырсарникун_тунтикун_ытларикун_юнкун_кӗҫнерникун_эрнекун_шӑматкун".split("_"),weekdaysShort:"выр_тун_ытл_юн_кӗҫ_эрн_шӑм".split("_"),weekdaysMin:"вр_тн_ыт_юн_кҫ_эр_шм".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD-MM-YYYY",LL:"YYYY [ҫулхи] MMMM [уйӑхӗн] D[-мӗшӗ]",LLL:"YYYY [ҫулхи] MMMM [уйӑхӗн] D[-мӗшӗ], HH:mm",LLLL:"dddd, YYYY [ҫулхи] MMMM [уйӑхӗн] D[-мӗшӗ], HH:mm"},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 ҫул"},dayOfMonthOrdinalParse:/\d{1,2}-мӗш/,ordinal:"%d-мӗш",week:{dow:1,doy:7}}), -//! moment.js locale configuration -//! locale : Welsh [cy] -//! author : Robert Allen : https://github.com/robgallen -//! author : https://github.com/ryangreaves -a.defineLocale("cy",{months:"Ionawr_Chwefror_Mawrth_Ebrill_Mai_Mehefin_Gorffennaf_Awst_Medi_Hydref_Tachwedd_Rhagfyr".split("_"),monthsShort:"Ion_Chwe_Maw_Ebr_Mai_Meh_Gor_Aws_Med_Hyd_Tach_Rhag".split("_"),weekdays:"Dydd Sul_Dydd Llun_Dydd Mawrth_Dydd Mercher_Dydd Iau_Dydd Gwener_Dydd Sadwrn".split("_"),weekdaysShort:"Sul_Llun_Maw_Mer_Iau_Gwe_Sad".split("_"),weekdaysMin:"Su_Ll_Ma_Me_Ia_Gw_Sa".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[Heddiw am] LT",nextDay:"[Yfory am] LT",nextWeek:"dddd [am] LT",lastDay:"[Ddoe am] LT",lastWeek:"dddd [diwethaf am] LT",sameElse:"L"},relativeTime:{future:"mewn %s",past:"%s yn ôl",s:"ychydig eiliadau",m:"munud",mm:"%d munud",h:"awr",hh:"%d awr",d:"diwrnod",dd:"%d diwrnod",M:"mis",MM:"%d mis",y:"blwyddyn",yy:"%d flynedd"},dayOfMonthOrdinalParse:/\d{1,2}(fed|ain|af|il|ydd|ed|eg)/,ordinal:function(a){var b=a,c="",d=["","af","il","ydd","ydd","ed","ed","ed","fed","fed","fed","eg","fed","eg","eg","fed","eg","eg","fed","eg","fed"];return b>20?c=40===b||50===b||60===b||80===b||100===b?"fed":"ain":b>0&&(c=d[b]),a+c},week:{dow:1,doy:4}}), -//! moment.js locale configuration -//! locale : Danish [da] -//! author : Ulrik Nielsen : https://github.com/mrbase -a.defineLocale("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",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY HH:mm",LLLL:"dddd [d.] D. MMMM YYYY [kl.] HH:mm"},calendar:{sameDay:"[i dag kl.] LT",nextDay:"[i morgen kl.] LT",nextWeek:"på dddd [kl.] LT",lastDay:"[i går kl.] LT",lastWeek:"[i] dddd[s 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"},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}}),a.defineLocale("de-at",{months:"Jänner_Februar_März_April_Mai_Juni_Juli_August_September_Oktober_November_Dezember".split("_"),monthsShort:"Jän._Febr._Mrz._Apr._Mai_Jun._Jul._Aug._Sept._Okt._Nov._Dez.".split("_"),monthsParseExact:!0,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("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY HH:mm",LLLL:"dddd, D. MMMM YYYY HH:mm"},calendar:{sameDay:"[heute um] LT [Uhr]",sameElse:"L",nextDay:"[morgen um] LT [Uhr]",nextWeek:"dddd [um] LT [Uhr]",lastDay:"[gestern um] LT [Uhr]",lastWeek:"[letzten] dddd [um] LT [Uhr]"},relativeTime:{future:"in %s",past:"vor %s",s:"ein paar Sekunden",m:l,mm:"%d Minuten",h:l,hh:"%d Stunden",d:l,dd:l,M:l,MM:l,y:l,yy:l},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}}),a.defineLocale("de-ch",{months:"Januar_Februar_März_April_Mai_Juni_Juli_August_September_Oktober_November_Dezember".split("_"),monthsShort:"Jan._Febr._März_April_Mai_Juni_Juli_Aug._Sept._Okt._Nov._Dez.".split("_"),monthsParseExact:!0,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("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH.mm",LTS:"HH.mm.ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY HH.mm",LLLL:"dddd, D. MMMM YYYY HH.mm"},calendar:{sameDay:"[heute um] LT [Uhr]",sameElse:"L",nextDay:"[morgen um] LT [Uhr]",nextWeek:"dddd [um] LT [Uhr]",lastDay:"[gestern um] LT [Uhr]",lastWeek:"[letzten] dddd [um] LT [Uhr]"},relativeTime:{future:"in %s",past:"vor %s",s:"ein paar Sekunden",m:m,mm:"%d Minuten",h:m,hh:"%d Stunden",d:m,dd:m,M:m,MM:m,y:m,yy:m},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}}),a.defineLocale("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("_"),monthsParseExact:!0,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("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY HH:mm",LLLL:"dddd, D. MMMM YYYY HH:mm"},calendar:{sameDay:"[heute um] LT [Uhr]",sameElse:"L",nextDay:"[morgen um] LT [Uhr]",nextWeek:"dddd [um] LT [Uhr]",lastDay:"[gestern um] LT [Uhr]",lastWeek:"[letzten] dddd [um] LT [Uhr]"},relativeTime:{future:"in %s",past:"vor %s",s:"ein paar Sekunden",m:n,mm:"%d Minuten",h:n,hh:"%d Stunden",d:n,dd:n,M:n,MM:n,y:n,yy:n},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}}); -//! moment.js locale configuration -//! locale : Maldivian [dv] -//! author : Jawish Hameed : https://github.com/jawish -var va=["ޖެނުއަރީ","ފެބްރުއަރީ","މާރިޗު","އޭޕްރީލު","މޭ","ޖޫން","ޖުލައި","އޯގަސްޓު","ސެޕްޓެމްބަރު","އޮކްޓޯބަރު","ނޮވެމްބަރު","ޑިސެމްބަރު"],wa=["އާދިއްތަ","ހޯމަ","އަންގާރަ","ބުދަ","ބުރާސްފަތި","ހުކުރު","ހޮނިހިރު"];a.defineLocale("dv",{months:va,monthsShort:va,weekdays:wa,weekdaysShort:wa,weekdaysMin:"އާދި_ހޯމަ_އަން_ބުދަ_ބުރާ_ހުކު_ހޮނި".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"D/M/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},meridiemParse:/މކ|މފ/,isPM:function(a){return"މފ"===a},meridiem:function(a,b,c){return a<12?"މކ":"މފ"},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,",")},postformat:function(a){return a.replace(/,/g,"،")},week:{dow:7,doy:12}}), -//! moment.js locale configuration -//! locale : Greek [el] -//! author : Aggelos Karalias : https://github.com/mehiel -a.defineLocale("el",{monthsNominativeEl:"Ιανουάριος_Φεβρουάριος_Μάρτιος_Απρίλιος_Μάιος_Ιούνιος_Ιούλιος_Αύγουστος_Σεπτέμβριος_Οκτώβριος_Νοέμβριος_Δεκέμβριος".split("_"),monthsGenitiveEl:"Ιανουαρίου_Φεβρουαρίου_Μαρτίου_Απριλίου_Μαΐου_Ιουνίου_Ιουλίου_Αυγούστου_Σεπτεμβρίου_Οκτωβρίου_Νοεμβρίου_Δεκεμβρίου".split("_"),months:function(a,b){return a?/D/.test(b.substring(0,b.indexOf("MMMM")))?this._monthsGenitiveEl[a.month()]:this._monthsNominativeEl[a.month()]:this._monthsNominativeEl},monthsShort:"Ιαν_Φεβ_Μαρ_Απρ_Μαϊ_Ιουν_Ιουλ_Αυγ_Σεπ_Οκτ_Νοε_Δεκ".split("_"),weekdays:"Κυριακή_Δευτέρα_Τρίτη_Τετάρτη_Πέμπτη_Παρασκευή_Σάββατο".split("_"),weekdaysShort:"Κυρ_Δευ_Τρι_Τετ_Πεμ_Παρ_Σαβ".split("_"),weekdaysMin:"Κυ_Δε_Τρ_Τε_Πε_Πα_Σα".split("_"),meridiem:function(a,b,c){return a>11?c?"μμ":"ΜΜ":c?"πμ":"ΠΜ"},isPM:function(a){return"μ"===(a+"").toLowerCase()[0]},meridiemParse:/[ΠΜ]\.?Μ?\.?/i,longDateFormat:{LT:"h:mm A",LTS:"h:mm:ss A",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY h:mm A",LLLL:"dddd, D MMMM YYYY h:mm A"},calendarEl:{sameDay:"[Σήμερα {}] LT",nextDay:"[Αύριο {}] LT",nextWeek:"dddd [{}] LT",lastDay:"[Χθες {}] LT",lastWeek:function(){switch(this.day()){case 6:return"[το προηγούμενο] dddd [{}] LT";default:return"[την προηγούμενη] dddd [{}] LT"}},sameElse:"L"},calendar:function(a,b){var c=this._calendarEl[a],d=b&&b.hours();return o(c)&&(c=c.apply(b)),c.replace("{}",d%12===1?"στη":"στις")},relativeTime:{future:"σε %s",past:"%s πριν",s:"λίγα δευτερόλεπτα",m:"ένα λεπτό",mm:"%d λεπτά",h:"μία ώρα",hh:"%d ώρες",d:"μία μέρα",dd:"%d μέρες",M:"ένας μήνας",MM:"%d μήνες",y:"ένας χρόνος",yy:"%d χρόνια"},dayOfMonthOrdinalParse:/\d{1,2}η/,ordinal:"%dη",week:{dow:1,doy:4}}), -//! moment.js locale configuration -//! locale : English (Australia) [en-au] -//! author : Jared Morse : https://github.com/jarcoal -a.defineLocale("en-au",{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",LTS:"h:mm:ss A",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY h:mm A",LLLL:"dddd, D MMMM YYYY h:mm A"},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"},dayOfMonthOrdinalParse:/\d{1,2}(st|nd|rd|th)/,ordinal:function(a){var b=a%10,c=1===~~(a%100/10)?"th":1===b?"st":2===b?"nd":3===b?"rd":"th";return a+c},week:{dow:1,doy:4}}), -//! moment.js locale configuration -//! locale : English (Canada) [en-ca] -//! author : Jonathan Abourbih : https://github.com/jonbca -a.defineLocale("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",LTS:"h:mm:ss A",L:"YYYY-MM-DD",LL:"MMMM D, YYYY",LLL:"MMMM D, YYYY h:mm A",LLLL:"dddd, MMMM D, YYYY h:mm A"},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"},dayOfMonthOrdinalParse:/\d{1,2}(st|nd|rd|th)/,ordinal:function(a){var b=a%10,c=1===~~(a%100/10)?"th":1===b?"st":2===b?"nd":3===b?"rd":"th";return a+c}}), -//! moment.js locale configuration -//! locale : English (United Kingdom) [en-gb] -//! author : Chris Gedrim : https://github.com/chrisgedrim -a.defineLocale("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",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},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"},dayOfMonthOrdinalParse:/\d{1,2}(st|nd|rd|th)/,ordinal:function(a){var b=a%10,c=1===~~(a%100/10)?"th":1===b?"st":2===b?"nd":3===b?"rd":"th";return a+c},week:{dow:1,doy:4}}), -//! moment.js locale configuration -//! locale : English (Ireland) [en-ie] -//! author : Chris Cartlidge : https://github.com/chriscartlidge -a.defineLocale("en-ie",{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",LTS:"HH:mm:ss",L:"DD-MM-YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},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"},dayOfMonthOrdinalParse:/\d{1,2}(st|nd|rd|th)/,ordinal:function(a){var b=a%10,c=1===~~(a%100/10)?"th":1===b?"st":2===b?"nd":3===b?"rd":"th";return a+c},week:{dow:1,doy:4}}), -//! moment.js locale configuration -//! locale : English (New Zealand) [en-nz] -//! author : Luke McGregor : https://github.com/lukemcgregor -a.defineLocale("en-nz",{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",LTS:"h:mm:ss A",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY h:mm A",LLLL:"dddd, D MMMM YYYY h:mm A"},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"},dayOfMonthOrdinalParse:/\d{1,2}(st|nd|rd|th)/,ordinal:function(a){var b=a%10,c=1===~~(a%100/10)?"th":1===b?"st":2===b?"nd":3===b?"rd":"th";return a+c},week:{dow:1,doy:4}}), -//! moment.js locale configuration -//! locale : Esperanto [eo] -//! author : Colin Dean : https://github.com/colindean -//! author : Mia Nordentoft Imperatori : https://github.com/miestasmia -//! comment : miestasmia corrected the translation by colindean -a.defineLocale("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",LTS:"HH:mm:ss",L:"YYYY-MM-DD",LL:"D[-a de] MMMM, YYYY",LLL:"D[-a de] MMMM, YYYY HH:mm",LLLL:"dddd, [la] D[-a de] MMMM, YYYY HH:mm"},meridiemParse:/[ap]\.t\.m/i,isPM:function(a){return"p"===a.charAt(0).toLowerCase()},meridiem:function(a,b,c){return a>11?c?"p.t.m.":"P.T.M.":c?"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:"post %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"},dayOfMonthOrdinalParse:/\d{1,2}a/,ordinal:"%da",week:{dow:1,doy:7}}); -//! moment.js locale configuration -//! locale : Spanish (Dominican Republic) [es-do] -var xa="ene._feb._mar._abr._may._jun._jul._ago._sep._oct._nov._dic.".split("_"),ya="ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic".split("_");a.defineLocale("es-do",{months:"enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre".split("_"),monthsShort:function(a,b){return a?/-MMM-/.test(b)?ya[a.month()]:xa[a.month()]:xa},monthsParseExact:!0,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("_"),weekdaysParseExact:!0,longDateFormat:{LT:"h:mm A",LTS:"h:mm:ss A",L:"DD/MM/YYYY",LL:"D [de] MMMM [de] YYYY",LLL:"D [de] MMMM [de] YYYY h:mm A",LLLL:"dddd, D [de] MMMM [de] YYYY h:mm A"},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"},dayOfMonthOrdinalParse:/\d{1,2}º/,ordinal:"%dº",week:{dow:1,doy:4}}); -//! moment.js locale configuration -//! locale : Spanish [es] -//! author : Julio Napurí : https://github.com/julionc -var za="ene._feb._mar._abr._may._jun._jul._ago._sep._oct._nov._dic.".split("_"),Aa="ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic".split("_");a.defineLocale("es",{months:"enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre".split("_"),monthsShort:function(a,b){return a?/-MMM-/.test(b)?Aa[a.month()]:za[a.month()]:za},monthsParseExact:!0,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("_"),weekdaysParseExact:!0,longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD/MM/YYYY",LL:"D [de] MMMM [de] YYYY",LLL:"D [de] MMMM [de] YYYY H:mm",LLLL:"dddd, D [de] MMMM [de] YYYY H:mm"},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"},dayOfMonthOrdinalParse:/\d{1,2}º/,ordinal:"%dº",week:{dow:1,doy:4}}),a.defineLocale("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:"P_E_T_K_N_R_L".split("_"),weekdaysMin:"P_E_T_K_N_R_L".split("_"),longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY H:mm",LLLL:"dddd, D. MMMM YYYY H:mm"},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:p,m:p,mm:p,h:p,hh:p,d:p,dd:"%d päeva",M:p,MM:p,y:p,yy:p},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}}), -//! moment.js locale configuration -//! locale : Basque [eu] -//! author : Eneko Illarramendi : https://github.com/eillarra -a.defineLocale("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("_"),monthsParseExact:!0,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("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"YYYY-MM-DD",LL:"YYYY[ko] MMMM[ren] D[a]",LLL:"YYYY[ko] MMMM[ren] D[a] HH:mm",LLLL:"dddd, YYYY[ko] MMMM[ren] D[a] HH:mm",l:"YYYY-M-D",ll:"YYYY[ko] MMM D[a]",lll:"YYYY[ko] MMM D[a] HH:mm",llll:"ddd, YYYY[ko] MMM D[a] HH:mm"},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"},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:7}}); -//! moment.js locale configuration -//! locale : Persian [fa] -//! author : Ebrahim Byagowi : https://github.com/ebraminio -var Ba={1:"۱",2:"۲",3:"۳",4:"۴",5:"۵",6:"۶",7:"۷",8:"۸",9:"۹",0:"۰"},Ca={"۱":"1","۲":"2","۳":"3","۴":"4","۵":"5","۶":"6","۷":"7","۸":"8","۹":"9","۰":"0"};a.defineLocale("fa",{months:"ژانویه_فوریه_مارس_آوریل_مه_ژوئن_ژوئیه_اوت_سپتامبر_اکتبر_نوامبر_دسامبر".split("_"),monthsShort:"ژانویه_فوریه_مارس_آوریل_مه_ژوئن_ژوئیه_اوت_سپتامبر_اکتبر_نوامبر_دسامبر".split("_"),weekdays:"یک‌شنبه_دوشنبه_سه‌شنبه_چهارشنبه_پنج‌شنبه_جمعه_شنبه".split("_"),weekdaysShort:"یک‌شنبه_دوشنبه_سه‌شنبه_چهارشنبه_پنج‌شنبه_جمعه_شنبه".split("_"),weekdaysMin:"ی_د_س_چ_پ_ج_ش".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},meridiemParse:/قبل از ظهر|بعد از ظهر/,isPM:function(a){return/بعد از ظهر/.test(a)},meridiem:function(a,b,c){return a<12?"قبل از ظهر":"بعد از ظهر"},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 Ca[a]}).replace(/،/g,",")},postformat:function(a){return a.replace(/\d/g,function(a){return Ba[a]}).replace(/,/g,"،")},dayOfMonthOrdinalParse:/\d{1,2}م/,ordinal:"%dم",week:{dow:6,doy:12}}); -//! moment.js locale configuration -//! locale : Finnish [fi] -//! author : Tarmo Aidantausta : https://github.com/bleadof -var Da="nolla yksi kaksi kolme neljä viisi kuusi seitsemän kahdeksan yhdeksän".split(" "),Ea=["nolla","yhden","kahden","kolmen","neljän","viiden","kuuden",Da[7],Da[8],Da[9]];a.defineLocale("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",LTS:"HH.mm.ss",L:"DD.MM.YYYY",LL:"Do MMMM[ta] YYYY",LLL:"Do MMMM[ta] YYYY, [klo] HH.mm",LLLL:"dddd, Do MMMM[ta] YYYY, [klo] HH.mm",l:"D.M.YYYY",ll:"Do MMM YYYY",lll:"Do MMM YYYY, [klo] HH.mm",llll:"ddd, Do MMM YYYY, [klo] HH.mm"},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:q,m:q,mm:q,h:q,hh:q,d:q,dd:q,M:q,MM:q,y:q,yy:q},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}}), -//! moment.js locale configuration -//! locale : Faroese [fo] -//! author : Ragnar Johannesen : https://github.com/ragnar123 -a.defineLocale("fo",{months:"januar_februar_mars_apríl_mai_juni_juli_august_september_oktober_november_desember".split("_"),monthsShort:"jan_feb_mar_apr_mai_jun_jul_aug_sep_okt_nov_des".split("_"),weekdays:"sunnudagur_mánadagur_týsdagur_mikudagur_hósdagur_fríggjadagur_leygardagur".split("_"),weekdaysShort:"sun_mán_týs_mik_hós_frí_ley".split("_"),weekdaysMin:"su_má_tý_mi_hó_fr_le".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D. MMMM, YYYY HH:mm"},calendar:{sameDay:"[Í dag kl.] LT",nextDay:"[Í morgin kl.] LT",nextWeek:"dddd [kl.] LT",lastDay:"[Í gjár kl.] LT",lastWeek:"[síðstu] dddd [kl] LT",sameElse:"L"},relativeTime:{future:"um %s",past:"%s síðani",s:"fá sekund",m:"ein minutt",mm:"%d minuttir",h:"ein tími",hh:"%d tímar",d:"ein dagur",dd:"%d dagar",M:"ein mánaði",MM:"%d mánaðir",y:"eitt ár",yy:"%d ár"},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}}), -//! moment.js locale configuration -//! locale : French (Canada) [fr-ca] -//! author : Jonathan Abourbih : https://github.com/jonbca -a.defineLocale("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("_"),monthsParseExact:!0,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("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"YYYY-MM-DD",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},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"},dayOfMonthOrdinalParse:/\d{1,2}(er|e)/,ordinal:function(a,b){switch(b){default:case"M":case"Q":case"D":case"DDD":case"d":return a+(1===a?"er":"e");case"w":case"W":return a+(1===a?"re":"e")}}}), -//! moment.js locale configuration -//! locale : French (Switzerland) [fr-ch] -//! author : Gaspard Bucher : https://github.com/gaspard -a.defineLocale("fr-ch",{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("_"),monthsParseExact:!0,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("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},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"},dayOfMonthOrdinalParse:/\d{1,2}(er|e)/,ordinal:function(a,b){switch(b){default:case"M":case"Q":case"D":case"DDD":case"d":return a+(1===a?"er":"e");case"w":case"W":return a+(1===a?"re":"e")}},week:{dow:1,doy:4}}), -//! moment.js locale configuration -//! locale : French [fr] -//! author : John Fischer : https://github.com/jfroffice -a.defineLocale("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("_"),monthsParseExact:!0,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("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},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"},dayOfMonthOrdinalParse:/\d{1,2}(er|)/,ordinal:function(a,b){switch(b){case"D":return a+(1===a?"er":"");default:case"M":case"Q":case"DDD":case"d":return a+(1===a?"er":"e");case"w":case"W":return a+(1===a?"re":"e")}},week:{dow:1,doy:4}}); -//! moment.js locale configuration -//! locale : Frisian [fy] -//! author : Robin van der Vliet : https://github.com/robin0van0der0v -var Fa="jan._feb._mrt._apr._mai_jun._jul._aug._sep._okt._nov._des.".split("_"),Ga="jan_feb_mrt_apr_mai_jun_jul_aug_sep_okt_nov_des".split("_");a.defineLocale("fy",{months:"jannewaris_febrewaris_maart_april_maaie_juny_july_augustus_septimber_oktober_novimber_desimber".split("_"),monthsShort:function(a,b){return a?/-MMM-/.test(b)?Ga[a.month()]:Fa[a.month()]:Fa},monthsParseExact:!0,weekdays:"snein_moandei_tiisdei_woansdei_tongersdei_freed_sneon".split("_"),weekdaysShort:"si._mo._ti._wo._to._fr._so.".split("_"),weekdaysMin:"Si_Mo_Ti_Wo_To_Fr_So".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD-MM-YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[hjoed om] LT",nextDay:"[moarn om] LT",nextWeek:"dddd [om] LT",lastDay:"[juster om] LT",lastWeek:"[ôfrûne] dddd [om] LT",sameElse:"L"},relativeTime:{future:"oer %s",past:"%s lyn",s:"in pear sekonden",m:"ien minút",mm:"%d minuten",h:"ien oere",hh:"%d oeren",d:"ien dei",dd:"%d dagen",M:"ien moanne",MM:"%d moannen",y:"ien jier",yy:"%d jierren"},dayOfMonthOrdinalParse:/\d{1,2}(ste|de)/,ordinal:function(a){return a+(1===a||8===a||a>=20?"ste":"de")},week:{dow:1,doy:4}}); -//! moment.js locale configuration -//! locale : Scottish Gaelic [gd] -//! author : Jon Ashdown : https://github.com/jonashdown -var Ha=["Am Faoilleach","An Gearran","Am Màrt","An Giblean","An Cèitean","An t-Ògmhios","An t-Iuchar","An Lùnastal","An t-Sultain","An Dàmhair","An t-Samhain","An Dùbhlachd"],Ia=["Faoi","Gear","Màrt","Gibl","Cèit","Ògmh","Iuch","Lùn","Sult","Dàmh","Samh","Dùbh"],Ja=["Didòmhnaich","Diluain","Dimàirt","Diciadain","Diardaoin","Dihaoine","Disathairne"],Ka=["Did","Dil","Dim","Dic","Dia","Dih","Dis"],La=["Dò","Lu","Mà","Ci","Ar","Ha","Sa"];a.defineLocale("gd",{months:Ha,monthsShort:Ia,monthsParseExact:!0,weekdays:Ja,weekdaysShort:Ka,weekdaysMin:La,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[An-diugh aig] LT",nextDay:"[A-màireach aig] LT",nextWeek:"dddd [aig] LT",lastDay:"[An-dè aig] LT",lastWeek:"dddd [seo chaidh] [aig] LT",sameElse:"L"},relativeTime:{future:"ann an %s",past:"bho chionn %s",s:"beagan diogan",m:"mionaid",mm:"%d mionaidean",h:"uair",hh:"%d uairean",d:"latha",dd:"%d latha",M:"mìos",MM:"%d mìosan",y:"bliadhna",yy:"%d bliadhna"},dayOfMonthOrdinalParse:/\d{1,2}(d|na|mh)/,ordinal:function(a){var b=1===a?"d":a%10===2?"na":"mh";return a+b},week:{dow:1,doy:4}}), -//! moment.js locale configuration -//! locale : Galician [gl] -//! author : Juan G. Hurtado : https://github.com/juanghurtado -a.defineLocale("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("_"),monthsParseExact:!0,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("_"),weekdaysParseExact:!0,longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD/MM/YYYY",LL:"D [de] MMMM [de] YYYY",LLL:"D [de] MMMM [de] YYYY H:mm",LLLL:"dddd, D [de] MMMM [de] YYYY H:mm"},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 0===a.indexOf("un")?"n"+a:"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"},dayOfMonthOrdinalParse:/\d{1,2}º/,ordinal:"%dº",week:{dow:1,doy:4}}),a.defineLocale("gom-latn",{months:"Janer_Febrer_Mars_Abril_Mai_Jun_Julai_Agost_Setembr_Otubr_Novembr_Dezembr".split("_"),monthsShort:"Jan._Feb._Mars_Abr._Mai_Jun_Jul._Ago._Set._Otu._Nov._Dez.".split("_"),monthsParseExact:!0,weekdays:"Aitar_Somar_Mongllar_Budvar_Brestar_Sukrar_Son'var".split("_"),weekdaysShort:"Ait._Som._Mon._Bud._Bre._Suk._Son.".split("_"),weekdaysMin:"Ai_Sm_Mo_Bu_Br_Su_Sn".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"A h:mm [vazta]",LTS:"A h:mm:ss [vazta]",L:"DD-MM-YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY A h:mm [vazta]",LLLL:"dddd, MMMM[achea] Do, YYYY, A h:mm [vazta]",llll:"ddd, D MMM YYYY, A h:mm [vazta]"},calendar:{sameDay:"[Aiz] LT",nextDay:"[Faleam] LT",nextWeek:"[Ieta to] dddd[,] LT",lastDay:"[Kal] LT",lastWeek:"[Fatlo] dddd[,] LT",sameElse:"L"},relativeTime:{future:"%s",past:"%s adim",s:s,m:s,mm:s,h:s,hh:s,d:s,dd:s,M:s,MM:s,y:s,yy:s},dayOfMonthOrdinalParse:/\d{1,2}(er)/,ordinal:function(a,b){switch(b){case"D":return a+"er";default:case"M":case"Q":case"DDD":case"d":case"w":case"W":return a}},week:{dow:1,doy:4},meridiemParse:/rati|sokalli|donparam|sanje/,meridiemHour:function(a,b){return 12===a&&(a=0),"rati"===b?a<4?a:a+12:"sokalli"===b?a:"donparam"===b?a>12?a:a+12:"sanje"===b?a+12:void 0},meridiem:function(a,b,c){return a<4?"rati":a<12?"sokalli":a<16?"donparam":a<20?"sanje":"rati"}}), -//! moment.js locale configuration -//! locale : Hebrew [he] -//! author : Tomer Cohen : https://github.com/tomer -//! author : Moshe Simantov : https://github.com/DevelopmentIL -//! author : Tal Ater : https://github.com/TalAter -a.defineLocale("he",{months:"ינואר_פברואר_מרץ_אפריל_מאי_יוני_יולי_אוגוסט_ספטמבר_אוקטובר_נובמבר_דצמבר".split("_"),monthsShort:"ינו׳_פבר׳_מרץ_אפר׳_מאי_יוני_יולי_אוג׳_ספט׳_אוק׳_נוב׳_דצמ׳".split("_"),weekdays:"ראשון_שני_שלישי_רביעי_חמישי_שישי_שבת".split("_"),weekdaysShort:"א׳_ב׳_ג׳_ד׳_ה׳_ו׳_ש׳".split("_"),weekdaysMin:"א_ב_ג_ד_ה_ו_ש".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D [ב]MMMM YYYY",LLL:"D [ב]MMMM YYYY HH:mm",LLLL:"dddd, D [ב]MMMM YYYY HH:mm",l:"D/M/YYYY",ll:"D MMM YYYY",lll:"D MMM YYYY HH:mm",llll:"ddd, D MMM YYYY HH:mm"},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%10===0&&10!==a?a+" שנה":a+" שנים"}},meridiemParse:/אחה"צ|לפנה"צ|אחרי הצהריים|לפני הצהריים|לפנות בוקר|בבוקר|בערב/i,isPM:function(a){return/^(אחה"צ|אחרי הצהריים|בערב)$/.test(a)},meridiem:function(a,b,c){return a<5?"לפנות בוקר":a<10?"בבוקר":a<12?c?'לפנה"צ':"לפני הצהריים":a<18?c?'אחה"צ':"אחרי הצהריים":"בערב"}}); -//! moment.js locale configuration -//! locale : Hindi [hi] -//! author : Mayank Singhal : https://github.com/mayanksinghal -var Ma={1:"१",2:"२",3:"३",4:"४",5:"५",6:"६",7:"७",8:"८",9:"९",0:"०"},Na={"१":"1","२":"2","३":"3","४":"4","५":"5","६":"6","७":"7","८":"8","९":"9","०":"0"};a.defineLocale("hi",{months:"जनवरी_फ़रवरी_मार्च_अप्रैल_मई_जून_जुलाई_अगस्त_सितम्बर_अक्टूबर_नवम्बर_दिसम्बर".split("_"),monthsShort:"जन._फ़र._मार्च_अप्रै._मई_जून_जुल._अग._सित._अक्टू._नव._दिस.".split("_"),monthsParseExact:!0,weekdays:"रविवार_सोमवार_मंगलवार_बुधवार_गुरूवार_शुक्रवार_शनिवार".split("_"),weekdaysShort:"रवि_सोम_मंगल_बुध_गुरू_शुक्र_शनि".split("_"),weekdaysMin:"र_सो_मं_बु_गु_शु_श".split("_"),longDateFormat:{LT:"A h:mm बजे",LTS:"A h:mm:ss बजे",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY, A h:mm बजे",LLLL:"dddd, D MMMM YYYY, A h:mm बजे"},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 Na[a]})},postformat:function(a){return a.replace(/\d/g,function(a){return Ma[a]})},meridiemParse:/रात|सुबह|दोपहर|शाम/,meridiemHour:function(a,b){return 12===a&&(a=0),"रात"===b?a<4?a:a+12:"सुबह"===b?a:"दोपहर"===b?a>=10?a:a+12:"शाम"===b?a+12:void 0},meridiem:function(a,b,c){return a<4?"रात":a<10?"सुबह":a<17?"दोपहर":a<20?"शाम":"रात"},week:{dow:0,doy:6}}),a.defineLocale("hr",{months:{format:"siječnja_veljače_ožujka_travnja_svibnja_lipnja_srpnja_kolovoza_rujna_listopada_studenoga_prosinca".split("_"),standalone:"siječanj_veljača_ožujak_travanj_svibanj_lipanj_srpanj_kolovoz_rujan_listopad_studeni_prosinac".split("_")},monthsShort:"sij._velj._ožu._tra._svi._lip._srp._kol._ruj._lis._stu._pro.".split("_"),monthsParseExact:!0,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("_"),weekdaysParseExact:!0,longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY H:mm",LLLL:"dddd, D. MMMM YYYY H:mm"},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:t,mm:t,h:t,hh:t,d:"dan",dd:t,M:"mjesec",MM:t,y:"godinu",yy:t},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:7}}); -//! moment.js locale configuration -//! locale : Hungarian [hu] -//! author : Adam Brunner : https://github.com/adambrunner -var Oa="vasárnap hétfőn kedden szerdán csütörtökön pénteken szombaton".split(" ");a.defineLocale("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:"vas_hét_kedd_sze_csüt_pén_szo".split("_"),weekdaysMin:"v_h_k_sze_cs_p_szo".split("_"),longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"YYYY.MM.DD.",LL:"YYYY. MMMM D.",LLL:"YYYY. MMMM D. H:mm",LLLL:"YYYY. MMMM D., dddd H:mm"},meridiemParse:/de|du/i,isPM:function(a){return"u"===a.charAt(1).toLowerCase()},meridiem:function(a,b,c){return a<12?c===!0?"de":"DE":c===!0?"du":"DU"},calendar:{sameDay:"[ma] LT[-kor]",nextDay:"[holnap] LT[-kor]",nextWeek:function(){return v.call(this,!0)},lastDay:"[tegnap] LT[-kor]",lastWeek:function(){return v.call(this,!1)},sameElse:"L"},relativeTime:{future:"%s múlva",past:"%s",s:u,m:u,mm:u,h:u,hh:u,d:u,dd:u,M:u,MM:u,y:u,yy:u},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}}), -//! moment.js locale configuration -//! locale : Armenian [hy-am] -//! author : Armendarabyan : https://github.com/armendarabyan -a.defineLocale("hy-am",{months:{format:"հունվարի_փետրվարի_մարտի_ապրիլի_մայիսի_հունիսի_հուլիսի_օգոստոսի_սեպտեմբերի_հոկտեմբերի_նոյեմբերի_դեկտեմբերի".split("_"),standalone:"հունվար_փետրվար_մարտ_ապրիլ_մայիս_հունիս_հուլիս_օգոստոս_սեպտեմբեր_հոկտեմբեր_նոյեմբեր_դեկտեմբեր".split("_")},monthsShort:"հնվ_փտր_մրտ_ապր_մյս_հնս_հլս_օգս_սպտ_հկտ_նմբ_դկտ".split("_"),weekdays:"կիրակի_երկուշաբթի_երեքշաբթի_չորեքշաբթի_հինգշաբթի_ուրբաթ_շաբաթ".split("_"),weekdaysShort:"կրկ_երկ_երք_չրք_հնգ_ուրբ_շբթ".split("_"),weekdaysMin:"կրկ_երկ_երք_չրք_հնգ_ուրբ_շբթ".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY թ.",LLL:"D MMMM YYYY թ., HH:mm",LLLL:"dddd, D MMMM YYYY թ., HH:mm"},calendar:{sameDay:"[այսօր] LT",nextDay:"[վաղը] LT",lastDay:"[երեկ] LT",nextWeek:function(){return"dddd [օրը ժամը] LT"},lastWeek:function(){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 տարի"},meridiemParse:/գիշերվա|առավոտվա|ցերեկվա|երեկոյան/,isPM:function(a){return/^(ցերեկվա|երեկոյան)$/.test(a)},meridiem:function(a){return a<4?"գիշերվա":a<12?"առավոտվա":a<17?"ցերեկվա":"երեկոյան"},dayOfMonthOrdinalParse:/\d{1,2}|\d{1,2}-(ին|րդ)/,ordinal:function(a,b){switch(b){case"DDD":case"w":case"W":case"DDDo":return 1===a?a+"-ին":a+"-րդ";default:return a}},week:{dow:1,doy:7}}), -//! moment.js locale configuration -//! locale : Indonesian [id] -//! author : Mohammad Satrio Utomo : https://github.com/tyok -//! reference: http://id.wikisource.org/wiki/Pedoman_Umum_Ejaan_Bahasa_Indonesia_yang_Disempurnakan -a.defineLocale("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",LTS:"HH.mm.ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY [pukul] HH.mm",LLLL:"dddd, D MMMM YYYY [pukul] HH.mm"},meridiemParse:/pagi|siang|sore|malam/,meridiemHour:function(a,b){return 12===a&&(a=0),"pagi"===b?a:"siang"===b?a>=11?a:a+12:"sore"===b||"malam"===b?a+12:void 0},meridiem:function(a,b,c){return a<11?"pagi":a<15?"siang":a<19?"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}}),a.defineLocale("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",LTS:"H:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY [kl.] H:mm",LLLL:"dddd, D. MMMM YYYY [kl.] H:mm"},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:x,m:x,mm:x,h:"klukkustund",hh:x,d:x,dd:x,M:x,MM:x,y:x,yy:x},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}}), -//! moment.js locale configuration -//! locale : Italian [it] -//! author : Lorenzo : https://github.com/aliem -//! author: Mattia Larentis: https://github.com/nostalgiaz -a.defineLocale("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:"do_lu_ma_me_gi_ve_sa".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[Oggi alle] LT",nextDay:"[Domani alle] LT",nextWeek:"dddd [alle] LT",lastDay:"[Ieri alle] LT",lastWeek:function(){switch(this.day()){case 0:return"[la scorsa] dddd [alle] LT";default:return"[lo scorso] dddd [alle] LT"}},sameElse:"L"},relativeTime:{future:function(a){return(/^[0-9].+$/.test(a)?"tra":"in")+" "+a},past:"%s fa",s:"alcuni 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"},dayOfMonthOrdinalParse:/\d{1,2}º/,ordinal:"%dº",week:{dow:1,doy:4}}), -//! moment.js locale configuration -//! locale : Japanese [ja] -//! author : LI Long : https://github.com/baryon -a.defineLocale("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:"HH:mm",LTS:"HH:mm:ss",L:"YYYY/MM/DD",LL:"YYYY年M月D日",LLL:"YYYY年M月D日 HH:mm",LLLL:"YYYY年M月D日 HH:mm dddd",l:"YYYY/MM/DD",ll:"YYYY年M月D日",lll:"YYYY年M月D日 HH:mm",llll:"YYYY年M月D日 HH:mm dddd"},meridiemParse:/午前|午後/i,isPM:function(a){return"午後"===a},meridiem:function(a,b,c){return a<12?"午前":"午後"},calendar:{sameDay:"[今日] LT",nextDay:"[明日] LT",nextWeek:"[来週]dddd LT",lastDay:"[昨日] LT",lastWeek:"[前週]dddd LT",sameElse:"L"},dayOfMonthOrdinalParse:/\d{1,2}日/,ordinal:function(a,b){switch(b){case"d":case"D":case"DDD":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年"}}), -//! moment.js locale configuration -//! locale : Javanese [jv] -//! author : Rony Lantip : https://github.com/lantip -//! reference: http://jv.wikipedia.org/wiki/Basa_Jawa -a.defineLocale("jv",{months:"Januari_Februari_Maret_April_Mei_Juni_Juli_Agustus_September_Oktober_Nopember_Desember".split("_"),monthsShort:"Jan_Feb_Mar_Apr_Mei_Jun_Jul_Ags_Sep_Okt_Nop_Des".split("_"),weekdays:"Minggu_Senen_Seloso_Rebu_Kemis_Jemuwah_Septu".split("_"),weekdaysShort:"Min_Sen_Sel_Reb_Kem_Jem_Sep".split("_"),weekdaysMin:"Mg_Sn_Sl_Rb_Km_Jm_Sp".split("_"),longDateFormat:{LT:"HH.mm",LTS:"HH.mm.ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY [pukul] HH.mm",LLLL:"dddd, D MMMM YYYY [pukul] HH.mm"},meridiemParse:/enjing|siyang|sonten|ndalu/,meridiemHour:function(a,b){return 12===a&&(a=0),"enjing"===b?a:"siyang"===b?a>=11?a:a+12:"sonten"===b||"ndalu"===b?a+12:void 0},meridiem:function(a,b,c){return a<11?"enjing":a<15?"siyang":a<19?"sonten":"ndalu"},calendar:{sameDay:"[Dinten puniko pukul] LT",nextDay:"[Mbenjang pukul] LT",nextWeek:"dddd [pukul] LT",lastDay:"[Kala wingi pukul] LT",lastWeek:"dddd [kepengker pukul] LT",sameElse:"L"},relativeTime:{future:"wonten ing %s",past:"%s ingkang kepengker",s:"sawetawis detik",m:"setunggal menit",mm:"%d menit",h:"setunggal jam",hh:"%d jam",d:"sedinten",dd:"%d dinten",M:"sewulan",MM:"%d wulan",y:"setaun",yy:"%d taun"},week:{dow:1,doy:7}}), -//! moment.js locale configuration -//! locale : Georgian [ka] -//! author : Irakli Janiashvili : https://github.com/irakli-janiashvili -a.defineLocale("ka",{months:{standalone:"იანვარი_თებერვალი_მარტი_აპრილი_მაისი_ივნისი_ივლისი_აგვისტო_სექტემბერი_ოქტომბერი_ნოემბერი_დეკემბერი".split("_"),format:"იანვარს_თებერვალს_მარტს_აპრილის_მაისს_ივნისს_ივლისს_აგვისტს_სექტემბერს_ოქტომბერს_ნოემბერს_დეკემბერს".split("_")},monthsShort:"იან_თებ_მარ_აპრ_მაი_ივნ_ივლ_აგვ_სექ_ოქტ_ნოე_დეკ".split("_"),weekdays:{standalone:"კვირა_ორშაბათი_სამშაბათი_ოთხშაბათი_ხუთშაბათი_პარასკევი_შაბათი".split("_"),format:"კვირას_ორშაბათს_სამშაბათს_ოთხშაბათს_ხუთშაბათს_პარასკევს_შაბათს".split("_"),isFormat:/(წინა|შემდეგ)/},weekdaysShort:"კვი_ორშ_სამ_ოთხ_ხუთ_პარ_შაბ".split("_"),weekdaysMin:"კვ_ორ_სა_ოთ_ხუ_პა_შა".split("_"),longDateFormat:{LT:"h:mm A",LTS:"h:mm:ss A",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY h:mm A",LLLL:"dddd, D MMMM YYYY h:mm A"},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){return/(წამი|წუთი|საათი|დღე|თვე)/.test(a)?a.replace(/(ი|ე)$/,"ის უკან"):/წელი/.test(a)?a.replace(/წელი$/,"წლის უკან"):void 0},s:"რამდენიმე წამი",m:"წუთი",mm:"%d წუთი",h:"საათი",hh:"%d საათი",d:"დღე",dd:"%d დღე",M:"თვე",MM:"%d თვე",y:"წელი",yy:"%d წელი"},dayOfMonthOrdinalParse:/0|1-ლი|მე-\d{1,2}|\d{1,2}-ე/,ordinal:function(a){return 0===a?a:1===a?a+"-ლი":a<20||a<=100&&a%20===0||a%100===0?"მე-"+a:a+"-ე"},week:{dow:1,doy:7}}); -//! moment.js locale configuration -//! locale : Kazakh [kk] -//! authors : Nurlan Rakhimzhanov : https://github.com/nurlan -var Pa={0:"-ші",1:"-ші",2:"-ші",3:"-ші",4:"-ші",5:"-ші",6:"-шы",7:"-ші",8:"-ші",9:"-шы",10:"-шы",20:"-шы",30:"-шы",40:"-шы",50:"-ші",60:"-шы",70:"-ші",80:"-ші",90:"-шы",100:"-ші"};a.defineLocale("kk",{months:"қаңтар_ақпан_наурыз_сәуір_мамыр_маусым_шілде_тамыз_қыркүйек_қазан_қараша_желтоқсан".split("_"),monthsShort:"қаң_ақп_нау_сәу_мам_мау_шіл_там_қыр_қаз_қар_жел".split("_"),weekdays:"жексенбі_дүйсенбі_сейсенбі_сәрсенбі_бейсенбі_жұма_сенбі".split("_"),weekdaysShort:"жек_дүй_сей_сәр_бей_жұм_сен".split("_"),weekdaysMin:"жк_дй_сй_ср_бй_жм_сн".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},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 жыл"},dayOfMonthOrdinalParse:/\d{1,2}-(ші|шы)/,ordinal:function(a){var b=a%10,c=a>=100?100:null;return a+(Pa[a]||Pa[b]||Pa[c])},week:{dow:1,doy:7}}), -//! moment.js locale configuration -//! locale : Cambodian [km] -//! author : Kruy Vanna : https://github.com/kruyvanna -a.defineLocale("km",{months:"មករា_កុម្ភៈ_មីនា_មេសា_ឧសភា_មិថុនា_កក្កដា_សីហា_កញ្ញា_តុលា_វិច្ឆិកា_ធ្នូ".split("_"),monthsShort:"មករា_កុម្ភៈ_មីនា_មេសា_ឧសភា_មិថុនា_កក្កដា_សីហា_កញ្ញា_តុលា_វិច្ឆិកា_ធ្នូ".split("_"),weekdays:"អាទិត្យ_ច័ន្ទ_អង្គារ_ពុធ_ព្រហស្បតិ៍_សុក្រ_សៅរ៍".split("_"),weekdaysShort:"អាទិត្យ_ច័ន្ទ_អង្គារ_ពុធ_ព្រហស្បតិ៍_សុក្រ_សៅរ៍".split("_"),weekdaysMin:"អាទិត្យ_ច័ន្ទ_អង្គារ_ពុធ_ព្រហស្បតិ៍_សុក្រ_សៅរ៍".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},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:4}}); -//! moment.js locale configuration -//! locale : Kannada [kn] -//! author : Rajeev Naik : https://github.com/rajeevnaikte -var Qa={1:"೧",2:"೨",3:"೩",4:"೪",5:"೫",6:"೬",7:"೭",8:"೮",9:"೯",0:"೦"},Ra={"೧":"1","೨":"2","೩":"3","೪":"4","೫":"5","೬":"6","೭":"7","೮":"8","೯":"9","೦":"0"};a.defineLocale("kn",{months:"ಜನವರಿ_ಫೆಬ್ರವರಿ_ಮಾರ್ಚ್_ಏಪ್ರಿಲ್_ಮೇ_ಜೂನ್_ಜುಲೈ_ಆಗಸ್ಟ್_ಸೆಪ್ಟೆಂಬರ್_ಅಕ್ಟೋಬರ್_ನವೆಂಬರ್_ಡಿಸೆಂಬರ್".split("_"),monthsShort:"ಜನ_ಫೆಬ್ರ_ಮಾರ್ಚ್_ಏಪ್ರಿಲ್_ಮೇ_ಜೂನ್_ಜುಲೈ_ಆಗಸ್ಟ್_ಸೆಪ್ಟೆಂಬ_ಅಕ್ಟೋಬ_ನವೆಂಬ_ಡಿಸೆಂಬ".split("_"),monthsParseExact:!0,weekdays:"ಭಾನುವಾರ_ಸೋಮವಾರ_ಮಂಗಳವಾರ_ಬುಧವಾರ_ಗುರುವಾರ_ಶುಕ್ರವಾರ_ಶನಿವಾರ".split("_"),weekdaysShort:"ಭಾನು_ಸೋಮ_ಮಂಗಳ_ಬುಧ_ಗುರು_ಶುಕ್ರ_ಶನಿ".split("_"),weekdaysMin:"ಭಾ_ಸೋ_ಮಂ_ಬು_ಗು_ಶು_ಶ".split("_"),longDateFormat:{LT:"A h:mm",LTS:"A h:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY, A h:mm",LLLL:"dddd, D MMMM YYYY, A h:mm"},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 Ra[a]})},postformat:function(a){return a.replace(/\d/g,function(a){return Qa[a]})},meridiemParse:/ರಾತ್ರಿ|ಬೆಳಿಗ್ಗೆ|ಮಧ್ಯಾಹ್ನ|ಸಂಜೆ/,meridiemHour:function(a,b){return 12===a&&(a=0),"ರಾತ್ರಿ"===b?a<4?a:a+12:"ಬೆಳಿಗ್ಗೆ"===b?a:"ಮಧ್ಯಾಹ್ನ"===b?a>=10?a:a+12:"ಸಂಜೆ"===b?a+12:void 0},meridiem:function(a,b,c){return a<4?"ರಾತ್ರಿ":a<10?"ಬೆಳಿಗ್ಗೆ":a<17?"ಮಧ್ಯಾಹ್ನ":a<20?"ಸಂಜೆ":"ರಾತ್ರಿ"},dayOfMonthOrdinalParse:/\d{1,2}(ನೇ)/,ordinal:function(a){return a+"ನೇ"},week:{dow:0,doy:6}}), -//! moment.js locale configuration -//! locale : Korean [ko] -//! author : Kyungwook, Park : https://github.com/kyungw00k -//! author : Jeeeyul Lee <jeeeyul@gmail.com> -a.defineLocale("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",LTS:"A h:mm:ss",L:"YYYY.MM.DD",LL:"YYYY년 MMMM D일",LLL:"YYYY년 MMMM D일 A h:mm",LLLL:"YYYY년 MMMM D일 dddd A h:mm",l:"YYYY.MM.DD",ll:"YYYY년 MMMM D일",lll:"YYYY년 MMMM D일 A h:mm",llll:"YYYY년 MMMM D일 dddd A h:mm"},calendar:{sameDay:"오늘 LT",nextDay:"내일 LT",nextWeek:"dddd LT",lastDay:"어제 LT",lastWeek:"지난주 dddd LT",sameElse:"L"},relativeTime:{future:"%s 후",past:"%s 전",s:"몇 초",ss:"%d초",m:"1분",mm:"%d분",h:"한 시간",hh:"%d시간",d:"하루",dd:"%d일",M:"한 달",MM:"%d달",y:"일 년",yy:"%d년"},dayOfMonthOrdinalParse:/\d{1,2}일/,ordinal:"%d일",meridiemParse:/오전|오후/,isPM:function(a){return"오후"===a},meridiem:function(a,b,c){return a<12?"오전":"오후"}}); -//! moment.js locale configuration -//! locale : Kyrgyz [ky] -//! author : Chyngyz Arystan uulu : https://github.com/chyngyz -var Sa={0:"-чү",1:"-чи",2:"-чи",3:"-чү",4:"-чү",5:"-чи",6:"-чы",7:"-чи",8:"-чи",9:"-чу",10:"-чу",20:"-чы",30:"-чу",40:"-чы",50:"-чү",60:"-чы",70:"-чи",80:"-чи",90:"-чу",100:"-чү"};a.defineLocale("ky",{months:"январь_февраль_март_апрель_май_июнь_июль_август_сентябрь_октябрь_ноябрь_декабрь".split("_"),monthsShort:"янв_фев_март_апр_май_июнь_июль_авг_сен_окт_ноя_дек".split("_"),weekdays:"Жекшемби_Дүйшөмбү_Шейшемби_Шаршемби_Бейшемби_Жума_Ишемби".split("_"),weekdaysShort:"Жек_Дүй_Шей_Шар_Бей_Жум_Ише".split("_"),weekdaysMin:"Жк_Дй_Шй_Шр_Бй_Жм_Иш".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},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 жыл"},dayOfMonthOrdinalParse:/\d{1,2}-(чи|чы|чү|чу)/,ordinal:function(a){var b=a%10,c=a>=100?100:null;return a+(Sa[a]||Sa[b]||Sa[c])},week:{dow:1,doy:7}}),a.defineLocale("lb",{months:"Januar_Februar_Mäerz_Abrëll_Mee_Juni_Juli_August_September_Oktober_November_Dezember".split("_"),monthsShort:"Jan._Febr._Mrz._Abr._Mee_Jun._Jul._Aug._Sept._Okt._Nov._Dez.".split("_"),monthsParseExact:!0,weekdays:"Sonndeg_Méindeg_Dënschdeg_Mëttwoch_Donneschdeg_Freideg_Samschdeg".split("_"),weekdaysShort:"So._Mé._Dë._Më._Do._Fr._Sa.".split("_"),weekdaysMin:"So_Mé_Dë_Më_Do_Fr_Sa".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"H:mm [Auer]",LTS:"H:mm:ss [Auer]",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY H:mm [Auer]",LLLL:"dddd, D. MMMM YYYY H:mm [Auer]"},calendar:{sameDay:"[Haut um] LT",sameElse:"L",nextDay:"[Muer um] LT",nextWeek:"dddd [um] LT",lastDay:"[Gëschter um] LT",lastWeek:function(){switch(this.day()){case 2:case 4:return"[Leschten] dddd [um] LT";default:return"[Leschte] dddd [um] LT"}}},relativeTime:{future:z,past:A,s:"e puer Sekonnen",m:y,mm:"%d Minutten",h:y,hh:"%d Stonnen",d:y,dd:"%d Deeg",M:y,MM:"%d Méint",y:y,yy:"%d Joer"},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}}), -//! moment.js locale configuration -//! locale : Lao [lo] -//! author : Ryan Hart : https://github.com/ryanhart2 -a.defineLocale("lo",{months:"ມັງກອນ_ກຸມພາ_ມີນາ_ເມສາ_ພຶດສະພາ_ມິຖຸນາ_ກໍລະກົດ_ສິງຫາ_ກັນຍາ_ຕຸລາ_ພະຈິກ_ທັນວາ".split("_"),monthsShort:"ມັງກອນ_ກຸມພາ_ມີນາ_ເມສາ_ພຶດສະພາ_ມິຖຸນາ_ກໍລະກົດ_ສິງຫາ_ກັນຍາ_ຕຸລາ_ພະຈິກ_ທັນວາ".split("_"),weekdays:"ອາທິດ_ຈັນ_ອັງຄານ_ພຸດ_ພະຫັດ_ສຸກ_ເສົາ".split("_"),weekdaysShort:"ທິດ_ຈັນ_ອັງຄານ_ພຸດ_ພະຫັດ_ສຸກ_ເສົາ".split("_"),weekdaysMin:"ທ_ຈ_ອຄ_ພ_ພຫ_ສກ_ສ".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"ວັນdddd D MMMM YYYY HH:mm"},meridiemParse:/ຕອນເຊົ້າ|ຕອນແລງ/,isPM:function(a){return"ຕອນແລງ"===a},meridiem:function(a,b,c){return a<12?"ຕອນເຊົ້າ":"ຕອນແລງ"},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 ປີ"},dayOfMonthOrdinalParse:/(ທີ່)\d{1,2}/,ordinal:function(a){return"ທີ່"+a}}); -//! moment.js locale configuration -//! locale : Lithuanian [lt] -//! author : Mindaugas Mozūras : https://github.com/mmozuras -var Ta={m:"minutė_minutės_minutę",mm:"minutės_minučių_minutes",h:"valanda_valandos_valandą",hh:"valandos_valandų_valandas",d:"diena_dienos_dieną",dd:"dienos_dienų_dienas",M:"mėnuo_mėnesio_mėnesį",MM:"mėnesiai_mėnesių_mėnesius",y:"metai_metų_metus",yy:"metai_metų_metus"};a.defineLocale("lt",{months:{format:"sausio_vasario_kovo_balandžio_gegužės_birželio_liepos_rugpjūčio_rugsėjo_spalio_lapkričio_gruodžio".split("_"),standalone:"sausis_vasaris_kovas_balandis_gegužė_birželis_liepa_rugpjūtis_rugsėjis_spalis_lapkritis_gruodis".split("_"),isFormat:/D[oD]?(\[[^\[\]]*\]|\s)+MMMM?|MMMM?(\[[^\[\]]*\]|\s)+D[oD]?/},monthsShort:"sau_vas_kov_bal_geg_bir_lie_rgp_rgs_spa_lap_grd".split("_"),weekdays:{format:"sekmadienį_pirmadienį_antradienį_trečiadienį_ketvirtadienį_penktadienį_šeštadienį".split("_"),standalone:"sekmadienis_pirmadienis_antradienis_trečiadienis_ketvirtadienis_penktadienis_šeštadienis".split("_"),isFormat:/dddd HH:mm/},weekdaysShort:"Sek_Pir_Ant_Tre_Ket_Pen_Šeš".split("_"),weekdaysMin:"S_P_A_T_K_Pn_Š".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"YYYY-MM-DD",LL:"YYYY [m.] MMMM D [d.]",LLL:"YYYY [m.] MMMM D [d.], HH:mm [val.]",LLLL:"YYYY [m.] MMMM D [d.], dddd, HH:mm [val.]",l:"YYYY-MM-DD",ll:"YYYY [m.] MMMM D [d.]",lll:"YYYY [m.] MMMM D [d.], HH:mm [val.]",llll:"YYYY [m.] MMMM D [d.], ddd, HH:mm [val.]"},calendar:{sameDay:"[Šiandien] LT",nextDay:"[Rytoj] LT",nextWeek:"dddd LT",lastDay:"[Vakar] LT",lastWeek:"[Praėjusį] dddd LT",sameElse:"L"},relativeTime:{future:"po %s",past:"prieš %s",s:C,m:D,mm:G,h:D,hh:G,d:D,dd:G,M:D,MM:G,y:D,yy:G},dayOfMonthOrdinalParse:/\d{1,2}-oji/,ordinal:function(a){return a+"-oji"},week:{dow:1,doy:4}}); -//! moment.js locale configuration -//! locale : Latvian [lv] -//! author : Kristaps Karlsons : https://github.com/skakri -//! author : Jānis Elmeris : https://github.com/JanisE -var Ua={m:"minūtes_minūtēm_minūte_minūtes".split("_"),mm:"minūtes_minūtēm_minūte_minūtes".split("_"),h:"stundas_stundām_stunda_stundas".split("_"),hh:"stundas_stundām_stunda_stundas".split("_"),d:"dienas_dienām_diena_dienas".split("_"),dd:"dienas_dienām_diena_dienas".split("_"),M:"mēneša_mēnešiem_mēnesis_mēneši".split("_"),MM:"mēneša_mēnešiem_mēnesis_mēneši".split("_"),y:"gada_gadiem_gads_gadi".split("_"),yy:"gada_gadiem_gads_gadi".split("_")};a.defineLocale("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("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY.",LL:"YYYY. [gada] D. MMMM",LLL:"YYYY. [gada] D. MMMM, HH:mm",LLLL:"YYYY. [gada] D. MMMM, dddd, HH:mm"},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:"pēc %s",past:"pirms %s",s:K,m:J,mm:I,h:J,hh:I,d:J,dd:I,M:J,MM:I,y:J,yy:I},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}}); -//! moment.js locale configuration -//! locale : Montenegrin [me] -//! author : Miodrag Nikač <miodrag@restartit.me> : https://github.com/miodragnikac -var Va={words:{m:["jedan minut","jednog minuta"],mm:["minut","minuta","minuta"],h:["jedan sat","jednog sata"],hh:["sat","sata","sati"],dd:["dan","dana","dana"],MM:["mjesec","mjeseca","mjeseci"],yy:["godina","godine","godina"]},correctGrammaticalCase:function(a,b){return 1===a?b[0]:a>=2&&a<=4?b[1]:b[2]},translate:function(a,b,c){var d=Va.words[c];return 1===c.length?b?d[0]:d[1]:a+" "+Va.correctGrammaticalCase(a,d)}};a.defineLocale("me",{months:"januar_februar_mart_april_maj_jun_jul_avgust_septembar_oktobar_novembar_decembar".split("_"),monthsShort:"jan._feb._mar._apr._maj_jun_jul_avg._sep._okt._nov._dec.".split("_"),monthsParseExact:!0,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("_"),weekdaysParseExact:!0,longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY H:mm",LLLL:"dddd, D. MMMM YYYY H:mm"},calendar:{sameDay:"[danas u] LT",nextDay:"[sjutra 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če u] LT",lastWeek:function(){var a=["[prošle] [nedjelje] [u] LT","[prošlog] [ponedjeljka] [u] LT","[prošlog] [utorka] [u] LT","[prošle] [srijede] [u] LT","[prošlog] [četvrtka] [u] LT","[prošlog] [petka] [u] LT","[prošle] [subote] [u] LT"];return a[this.day()]},sameElse:"L"},relativeTime:{future:"za %s",past:"prije %s",s:"nekoliko sekundi",m:Va.translate,mm:Va.translate,h:Va.translate,hh:Va.translate,d:"dan",dd:Va.translate,M:"mjesec",MM:Va.translate,y:"godinu",yy:Va.translate},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:7}}), -//! moment.js locale configuration -//! locale : Maori [mi] -//! author : John Corrigan <robbiecloset@gmail.com> : https://github.com/johnideal -a.defineLocale("mi",{months:"Kohi-tāte_Hui-tanguru_Poutū-te-rangi_Paenga-whāwhā_Haratua_Pipiri_Hōngoingoi_Here-turi-kōkā_Mahuru_Whiringa-ā-nuku_Whiringa-ā-rangi_Hakihea".split("_"),monthsShort:"Kohi_Hui_Pou_Pae_Hara_Pipi_Hōngoi_Here_Mahu_Whi-nu_Whi-ra_Haki".split("_"),monthsRegex:/(?:['a-z\u0101\u014D\u016B]+\-?){1,3}/i,monthsStrictRegex:/(?:['a-z\u0101\u014D\u016B]+\-?){1,3}/i,monthsShortRegex:/(?:['a-z\u0101\u014D\u016B]+\-?){1,3}/i,monthsShortStrictRegex:/(?:['a-z\u0101\u014D\u016B]+\-?){1,2}/i,weekdays:"Rātapu_Mane_Tūrei_Wenerei_Tāite_Paraire_Hātarei".split("_"),weekdaysShort:"Ta_Ma_Tū_We_Tāi_Pa_Hā".split("_"),weekdaysMin:"Ta_Ma_Tū_We_Tāi_Pa_Hā".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY [i] HH:mm",LLLL:"dddd, D MMMM YYYY [i] HH:mm"},calendar:{sameDay:"[i teie mahana, i] LT",nextDay:"[apopo i] LT",nextWeek:"dddd [i] LT",lastDay:"[inanahi i] LT",lastWeek:"dddd [whakamutunga i] LT",sameElse:"L"},relativeTime:{future:"i roto i %s",past:"%s i mua",s:"te hēkona ruarua",m:"he meneti",mm:"%d meneti",h:"te haora",hh:"%d haora",d:"he ra",dd:"%d ra",M:"he marama",MM:"%d marama",y:"he tau",yy:"%d tau"},dayOfMonthOrdinalParse:/\d{1,2}º/,ordinal:"%dº",week:{dow:1,doy:4}}), -//! moment.js locale configuration -//! locale : Macedonian [mk] -//! author : Borislav Mickov : https://github.com/B0k0 -a.defineLocale("mk",{months:"јануари_февруари_март_април_мај_јуни_јули_август_септември_октомври_ноември_декември".split("_"),monthsShort:"јан_фев_мар_апр_мај_јун_јул_авг_сеп_окт_ное_дек".split("_"),weekdays:"недела_понеделник_вторник_среда_четврток_петок_сабота".split("_"),weekdaysShort:"нед_пон_вто_сре_чет_пет_саб".split("_"),weekdaysMin:"нe_пo_вт_ср_че_пе_сa".split("_"),longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"D.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY H:mm",LLLL:"dddd, D MMMM YYYY H:mm"},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 години"},dayOfMonthOrdinalParse:/\d{1,2}-(ев|ен|ти|ви|ри|ми)/,ordinal:function(a){var b=a%10,c=a%100;return 0===a?a+"-ев":0===c?a+"-ен":c>10&&c<20?a+"-ти":1===b?a+"-ви":2===b?a+"-ри":7===b||8===b?a+"-ми":a+"-ти"},week:{dow:1,doy:7}}), -//! moment.js locale configuration -//! locale : Malayalam [ml] -//! author : Floyd Pink : https://github.com/floydpink -a.defineLocale("ml",{months:"ജനുവരി_ഫെബ്രുവരി_മാർച്ച്_ഏപ്രിൽ_മേയ്_ജൂൺ_ജൂലൈ_ഓഗസ്റ്റ്_സെപ്റ്റംബർ_ഒക്ടോബർ_നവംബർ_ഡിസംബർ".split("_"),monthsShort:"ജനു._ഫെബ്രു._മാർ._ഏപ്രി._മേയ്_ജൂൺ_ജൂലൈ._ഓഗ._സെപ്റ്റ._ഒക്ടോ._നവം._ഡിസം.".split("_"),monthsParseExact:!0,weekdays:"ഞായറാഴ്ച_തിങ്കളാഴ്ച_ചൊവ്വാഴ്ച_ബുധനാഴ്ച_വ്യാഴാഴ്ച_വെള്ളിയാഴ്ച_ശനിയാഴ്ച".split("_"),weekdaysShort:"ഞായർ_തിങ്കൾ_ചൊവ്വ_ബുധൻ_വ്യാഴം_വെള്ളി_ശനി".split("_"),weekdaysMin:"ഞാ_തി_ചൊ_ബു_വ്യാ_വെ_ശ".split("_"),longDateFormat:{LT:"A h:mm -നു",LTS:"A h:mm:ss -നു",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY, A h:mm -നു",LLLL:"dddd, D MMMM YYYY, A h:mm -നു"},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 വർഷം"},meridiemParse:/രാത്രി|രാവിലെ|ഉച്ച കഴിഞ്ഞ്|വൈകുന്നേരം|രാത്രി/i,meridiemHour:function(a,b){return 12===a&&(a=0),"രാത്രി"===b&&a>=4||"ഉച്ച കഴിഞ്ഞ്"===b||"വൈകുന്നേരം"===b?a+12:a},meridiem:function(a,b,c){return a<4?"രാത്രി":a<12?"രാവിലെ":a<17?"ഉച്ച കഴിഞ്ഞ്":a<20?"വൈകുന്നേരം":"രാത്രി"}}); -//! moment.js locale configuration -//! locale : Marathi [mr] -//! author : Harshad Kale : https://github.com/kalehv -//! author : Vivek Athalye : https://github.com/vnathalye -var Wa={1:"१",2:"२",3:"३",4:"४",5:"५",6:"६",7:"७",8:"८",9:"९",0:"०"},Xa={"१":"1","२":"2","३":"3","४":"4","५":"5","६":"6","७":"7","८":"8","९":"9","०":"0"};a.defineLocale("mr",{months:"जानेवारी_फेब्रुवारी_मार्च_एप्रिल_मे_जून_जुलै_ऑगस्ट_सप्टेंबर_ऑक्टोबर_नोव्हेंबर_डिसेंबर".split("_"),monthsShort:"जाने._फेब्रु._मार्च._एप्रि._मे._जून._जुलै._ऑग._सप्टें._ऑक्टो._नोव्हें._डिसें.".split("_"),monthsParseExact:!0,weekdays:"रविवार_सोमवार_मंगळवार_बुधवार_गुरूवार_शुक्रवार_शनिवार".split("_"),weekdaysShort:"रवि_सोम_मंगळ_बुध_गुरू_शुक्र_शनि".split("_"),weekdaysMin:"र_सो_मं_बु_गु_शु_श".split("_"),longDateFormat:{LT:"A h:mm वाजता",LTS:"A h:mm:ss वाजता",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY, A h:mm वाजता",LLLL:"dddd, D MMMM YYYY, A h:mm वाजता"},calendar:{sameDay:"[आज] LT",nextDay:"[उद्या] LT",nextWeek:"dddd, LT",lastDay:"[काल] LT",lastWeek:"[मागील] dddd, LT",sameElse:"L"},relativeTime:{future:"%sमध्ये",past:"%sपूर्वी",s:L,m:L,mm:L,h:L,hh:L,d:L,dd:L,M:L,MM:L,y:L,yy:L},preparse:function(a){return a.replace(/[१२३४५६७८९०]/g,function(a){return Xa[a]})},postformat:function(a){return a.replace(/\d/g,function(a){return Wa[a]})},meridiemParse:/रात्री|सकाळी|दुपारी|सायंकाळी/,meridiemHour:function(a,b){return 12===a&&(a=0),"रात्री"===b?a<4?a:a+12:"सकाळी"===b?a:"दुपारी"===b?a>=10?a:a+12:"सायंकाळी"===b?a+12:void 0},meridiem:function(a,b,c){return a<4?"रात्री":a<10?"सकाळी":a<17?"दुपारी":a<20?"सायंकाळी":"रात्री"},week:{dow:0,doy:6}}), -//! moment.js locale configuration -//! locale : Malay [ms-my] -//! note : DEPRECATED, the correct one is [ms] -//! author : Weldan Jamili : https://github.com/weldan -a.defineLocale("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",LTS:"HH.mm.ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY [pukul] HH.mm",LLLL:"dddd, D MMMM YYYY [pukul] HH.mm"},meridiemParse:/pagi|tengahari|petang|malam/,meridiemHour:function(a,b){return 12===a&&(a=0),"pagi"===b?a:"tengahari"===b?a>=11?a:a+12:"petang"===b||"malam"===b?a+12:void 0},meridiem:function(a,b,c){return a<11?"pagi":a<15?"tengahari":a<19?"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}}), -//! moment.js locale configuration -//! locale : Malay [ms] -//! author : Weldan Jamili : https://github.com/weldan -a.defineLocale("ms",{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",LTS:"HH.mm.ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY [pukul] HH.mm",LLLL:"dddd, D MMMM YYYY [pukul] HH.mm"},meridiemParse:/pagi|tengahari|petang|malam/,meridiemHour:function(a,b){return 12===a&&(a=0),"pagi"===b?a:"tengahari"===b?a>=11?a:a+12:"petang"===b||"malam"===b?a+12:void 0},meridiem:function(a,b,c){return a<11?"pagi":a<15?"tengahari":a<19?"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}}); -//! moment.js locale configuration -//! locale : Burmese [my] -//! author : Squar team, mysquar.com -//! author : David Rossellat : https://github.com/gholadr -//! author : Tin Aung Lin : https://github.com/thanyawzinmin -var Ya={1:"၁",2:"၂",3:"၃",4:"၄",5:"၅",6:"၆",7:"၇",8:"၈",9:"၉",0:"၀"},Za={"၁":"1","၂":"2","၃":"3","၄":"4","၅":"5","၆":"6","၇":"7","၈":"8","၉":"9","၀":"0"};a.defineLocale("my",{months:"ဇန်နဝါရီ_ဖေဖော်ဝါရီ_မတ်_ဧပြီ_မေ_ဇွန်_ဇူလိုင်_သြဂုတ်_စက်တင်ဘာ_အောက်တိုဘာ_နိုဝင်ဘာ_ဒီဇင်ဘာ".split("_"),monthsShort:"ဇန်_ဖေ_မတ်_ပြီ_မေ_ဇွန်_လိုင်_သြ_စက်_အောက်_နို_ဒီ".split("_"),weekdays:"တနင်္ဂနွေ_တနင်္လာ_အင်္ဂါ_ဗုဒ္ဓဟူး_ကြာသပတေး_သောကြာ_စနေ".split("_"),weekdaysShort:"နွေ_လာ_ဂါ_ဟူး_ကြာ_သော_နေ".split("_"),weekdaysMin:"နွေ_လာ_ဂါ_ဟူး_ကြာ_သော_နေ".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},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 Za[a]})},postformat:function(a){return a.replace(/\d/g,function(a){return Ya[a]})},week:{dow:1,doy:4}}), -//! moment.js locale configuration -//! locale : Norwegian Bokmål [nb] -//! authors : Espen Hovlandsdal : https://github.com/rexxars -//! Sigurd Gartmann : https://github.com/sigurdga -a.defineLocale("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("_"),monthsParseExact:!0,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("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY [kl.] HH:mm",LLLL:"dddd D. MMMM YYYY [kl.] HH:mm"},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:"%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"},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}}); -//! moment.js locale configuration -//! locale : Nepalese [ne] -//! author : suvash : https://github.com/suvash -var $a={1:"१",2:"२",3:"३",4:"४",5:"५",6:"६",7:"७",8:"८",9:"९",0:"०"},_a={"१":"1","२":"2","३":"3","४":"4","५":"5","६":"6","७":"7","८":"8","९":"9","०":"0"};a.defineLocale("ne",{months:"जनवरी_फेब्रुवरी_मार्च_अप्रिल_मई_जुन_जुलाई_अगष्ट_सेप्टेम्बर_अक्टोबर_नोभेम्बर_डिसेम्बर".split("_"),monthsShort:"जन._फेब्रु._मार्च_अप्रि._मई_जुन_जुलाई._अग._सेप्ट._अक्टो._नोभे._डिसे.".split("_"),monthsParseExact:!0,weekdays:"आइतबार_सोमबार_मङ्गलबार_बुधबार_बिहिबार_शुक्रबार_शनिबार".split("_"),weekdaysShort:"आइत._सोम._मङ्गल._बुध._बिहि._शुक्र._शनि.".split("_"),weekdaysMin:"आ._सो._मं._बु._बि._शु._श.".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"Aको h:mm बजे",LTS:"Aको h:mm:ss बजे",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY, Aको h:mm बजे",LLLL:"dddd, D MMMM YYYY, Aको h:mm बजे"},preparse:function(a){return a.replace(/[१२३४५६७८९०]/g,function(a){return _a[a]})},postformat:function(a){return a.replace(/\d/g,function(a){return $a[a]})},meridiemParse:/राति|बिहान|दिउँसो|साँझ/,meridiemHour:function(a,b){return 12===a&&(a=0),"राति"===b?a<4?a:a+12:"बिहान"===b?a:"दिउँसो"===b?a>=10?a:a+12:"साँझ"===b?a+12:void 0},meridiem:function(a,b,c){return a<3?"राति":a<12?"बिहान":a<16?"दिउँसो":a<20?"साँझ":"राति"},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:0,doy:6}}); -//! moment.js locale configuration -//! locale : Dutch (Belgium) [nl-be] -//! author : Joris Röling : https://github.com/jorisroling -//! author : Jacob Middag : https://github.com/middagj -var ab="jan._feb._mrt._apr._mei_jun._jul._aug._sep._okt._nov._dec.".split("_"),bb="jan_feb_mrt_apr_mei_jun_jul_aug_sep_okt_nov_dec".split("_"),cb=[/^jan/i,/^feb/i,/^maart|mrt.?$/i,/^apr/i,/^mei$/i,/^jun[i.]?$/i,/^jul[i.]?$/i,/^aug/i,/^sep/i,/^okt/i,/^nov/i,/^dec/i],db=/^(januari|februari|maart|april|mei|april|ju[nl]i|augustus|september|oktober|november|december|jan\.?|feb\.?|mrt\.?|apr\.?|ju[nl]\.?|aug\.?|sep\.?|okt\.?|nov\.?|dec\.?)/i;a.defineLocale("nl-be",{months:"januari_februari_maart_april_mei_juni_juli_augustus_september_oktober_november_december".split("_"),monthsShort:function(a,b){return a?/-MMM-/.test(b)?bb[a.month()]:ab[a.month()]:ab},monthsRegex:db,monthsShortRegex:db,monthsStrictRegex:/^(januari|februari|maart|mei|ju[nl]i|april|augustus|september|oktober|november|december)/i,monthsShortStrictRegex:/^(jan\.?|feb\.?|mrt\.?|apr\.?|mei|ju[nl]\.?|aug\.?|sep\.?|okt\.?|nov\.?|dec\.?)/i,monthsParse:cb,longMonthsParse:cb,shortMonthsParse:cb,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("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},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"},dayOfMonthOrdinalParse:/\d{1,2}(ste|de)/,ordinal:function(a){return a+(1===a||8===a||a>=20?"ste":"de")},week:{dow:1,doy:4}}); -//! moment.js locale configuration -//! locale : Dutch [nl] -//! author : Joris Röling : https://github.com/jorisroling -//! author : Jacob Middag : https://github.com/middagj -var eb="jan._feb._mrt._apr._mei_jun._jul._aug._sep._okt._nov._dec.".split("_"),fb="jan_feb_mrt_apr_mei_jun_jul_aug_sep_okt_nov_dec".split("_"),gb=[/^jan/i,/^feb/i,/^maart|mrt.?$/i,/^apr/i,/^mei$/i,/^jun[i.]?$/i,/^jul[i.]?$/i,/^aug/i,/^sep/i,/^okt/i,/^nov/i,/^dec/i],hb=/^(januari|februari|maart|april|mei|april|ju[nl]i|augustus|september|oktober|november|december|jan\.?|feb\.?|mrt\.?|apr\.?|ju[nl]\.?|aug\.?|sep\.?|okt\.?|nov\.?|dec\.?)/i;a.defineLocale("nl",{months:"januari_februari_maart_april_mei_juni_juli_augustus_september_oktober_november_december".split("_"),monthsShort:function(a,b){return a?/-MMM-/.test(b)?fb[a.month()]:eb[a.month()]:eb},monthsRegex:hb,monthsShortRegex:hb,monthsStrictRegex:/^(januari|februari|maart|mei|ju[nl]i|april|augustus|september|oktober|november|december)/i,monthsShortStrictRegex:/^(jan\.?|feb\.?|mrt\.?|apr\.?|mei|ju[nl]\.?|aug\.?|sep\.?|okt\.?|nov\.?|dec\.?)/i,monthsParse:gb,longMonthsParse:gb,shortMonthsParse:gb,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("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD-MM-YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},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"},dayOfMonthOrdinalParse:/\d{1,2}(ste|de)/,ordinal:function(a){return a+(1===a||8===a||a>=20?"ste":"de")},week:{dow:1,doy:4}}), -//! moment.js locale configuration -//! locale : Nynorsk [nn] -//! author : https://github.com/mechuwind -a.defineLocale("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",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY [kl.] H:mm",LLLL:"dddd D. MMMM YYYY [kl.] HH:mm"},calendar:{sameDay:"[I dag klokka] LT",nextDay:"[I morgon klokka] LT",nextWeek:"dddd [klokka] LT",lastDay:"[I går klokka] LT",lastWeek:"[Føregåande] dddd [klokka] LT",sameElse:"L"},relativeTime:{future:"om %s",past:"%s sidan",s:"nokre sekund",m:"eit minutt",mm:"%d minutt",h:"ein time",hh:"%d timar",d:"ein dag",dd:"%d dagar",M:"ein månad",MM:"%d månader",y:"eit år",yy:"%d år"},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}}); -//! moment.js locale configuration -//! locale : Punjabi (India) [pa-in] -//! author : Harpreet Singh : https://github.com/harpreetkhalsagtbit -var ib={1:"੧",2:"੨",3:"੩",4:"੪",5:"੫",6:"੬",7:"੭",8:"੮",9:"੯",0:"੦"},jb={"੧":"1","੨":"2","੩":"3","੪":"4","੫":"5","੬":"6","੭":"7","੮":"8","੯":"9","੦":"0"};a.defineLocale("pa-in",{months:"ਜਨਵਰੀ_ਫ਼ਰਵਰੀ_ਮਾਰਚ_ਅਪ੍ਰੈਲ_ਮਈ_ਜੂਨ_ਜੁਲਾਈ_ਅਗਸਤ_ਸਤੰਬਰ_ਅਕਤੂਬਰ_ਨਵੰਬਰ_ਦਸੰਬਰ".split("_"),monthsShort:"ਜਨਵਰੀ_ਫ਼ਰਵਰੀ_ਮਾਰਚ_ਅਪ੍ਰੈਲ_ਮਈ_ਜੂਨ_ਜੁਲਾਈ_ਅਗਸਤ_ਸਤੰਬਰ_ਅਕਤੂਬਰ_ਨਵੰਬਰ_ਦਸੰਬਰ".split("_"),weekdays:"ਐਤਵਾਰ_ਸੋਮਵਾਰ_ਮੰਗਲਵਾਰ_ਬੁਧਵਾਰ_ਵੀਰਵਾਰ_ਸ਼ੁੱਕਰਵਾਰ_ਸ਼ਨੀਚਰਵਾਰ".split("_"),weekdaysShort:"ਐਤ_ਸੋਮ_ਮੰਗਲ_ਬੁਧ_ਵੀਰ_ਸ਼ੁਕਰ_ਸ਼ਨੀ".split("_"),weekdaysMin:"ਐਤ_ਸੋਮ_ਮੰਗਲ_ਬੁਧ_ਵੀਰ_ਸ਼ੁਕਰ_ਸ਼ਨੀ".split("_"),longDateFormat:{LT:"A h:mm ਵਜੇ",LTS:"A h:mm:ss ਵਜੇ",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY, A h:mm ਵਜੇ",LLLL:"dddd, D MMMM YYYY, A h:mm ਵਜੇ"},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 jb[a]})},postformat:function(a){return a.replace(/\d/g,function(a){return ib[a]})},meridiemParse:/ਰਾਤ|ਸਵੇਰ|ਦੁਪਹਿਰ|ਸ਼ਾਮ/,meridiemHour:function(a,b){return 12===a&&(a=0),"ਰਾਤ"===b?a<4?a:a+12:"ਸਵੇਰ"===b?a:"ਦੁਪਹਿਰ"===b?a>=10?a:a+12:"ਸ਼ਾਮ"===b?a+12:void 0},meridiem:function(a,b,c){return a<4?"ਰਾਤ":a<10?"ਸਵੇਰ":a<17?"ਦੁਪਹਿਰ":a<20?"ਸ਼ਾਮ":"ਰਾਤ"},week:{dow:0,doy:6}}); -//! moment.js locale configuration -//! locale : Polish [pl] -//! author : Rafal Hirsz : https://github.com/evoL -var kb="styczeń_luty_marzec_kwiecień_maj_czerwiec_lipiec_sierpień_wrzesień_październik_listopad_grudzień".split("_"),lb="stycznia_lutego_marca_kwietnia_maja_czerwca_lipca_sierpnia_września_października_listopada_grudnia".split("_");a.defineLocale("pl",{months:function(a,b){return a?""===b?"("+lb[a.month()]+"|"+kb[a.month()]+")":/D MMMM/.test(b)?lb[a.month()]:kb[a.month()]:kb},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:"ndz_pon_wt_śr_czw_pt_sob".split("_"),weekdaysMin:"Nd_Pn_Wt_Śr_Cz_Pt_So".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},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:N,mm:N,h:N,hh:N,d:"1 dzień",dd:"%d dni",M:"miesiąc",MM:N,y:"rok",yy:N},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}}), -//! moment.js locale configuration -//! locale : Portuguese (Brazil) [pt-br] -//! author : Caio Ribeiro Pereira : https://github.com/caio-ribeiro-pereira -a.defineLocale("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:"Do_2ª_3ª_4ª_5ª_6ª_Sá".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D [de] MMMM [de] YYYY",LLL:"D [de] MMMM [de] YYYY [às] HH:mm",LLLL:"dddd, D [de] MMMM [de] YYYY [às] HH:mm"},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:"poucos 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"},dayOfMonthOrdinalParse:/\d{1,2}º/,ordinal:"%dº"}), -//! moment.js locale configuration -//! locale : Portuguese [pt] -//! author : Jefferson : https://github.com/jalex79 -a.defineLocale("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:"Do_2ª_3ª_4ª_5ª_6ª_Sá".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D [de] MMMM [de] YYYY",LLL:"D [de] MMMM [de] YYYY HH:mm",LLLL:"dddd, D [de] MMMM [de] YYYY HH:mm"},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:"há %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"},dayOfMonthOrdinalParse:/\d{1,2}º/,ordinal:"%dº",week:{dow:1,doy:4}}),a.defineLocale("ro",{months:"ianuarie_februarie_martie_aprilie_mai_iunie_iulie_august_septembrie_octombrie_noiembrie_decembrie".split("_"),monthsShort:"ian._febr._mart._apr._mai_iun._iul._aug._sept._oct._nov._dec.".split("_"),monthsParseExact:!0,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",LTS:"H:mm:ss",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:O,h:"o oră",hh:O,d:"o zi",dd:O,M:"o lună",MM:O,y:"un an",yy:O},week:{dow:1,doy:7}});var mb=[/^янв/i,/^фев/i,/^мар/i,/^апр/i,/^ма[йя]/i,/^июн/i,/^июл/i,/^авг/i,/^сен/i,/^окт/i,/^ноя/i,/^дек/i];a.defineLocale("ru",{months:{format:"января_февраля_марта_апреля_мая_июня_июля_августа_сентября_октября_ноября_декабря".split("_"),standalone:"январь_февраль_март_апрель_май_июнь_июль_август_сентябрь_октябрь_ноябрь_декабрь".split("_")},monthsShort:{format:"янв._февр._мар._апр._мая_июня_июля_авг._сент._окт._нояб._дек.".split("_"),standalone:"янв._февр._март_апр._май_июнь_июль_авг._сент._окт._нояб._дек.".split("_")},weekdays:{standalone:"воскресенье_понедельник_вторник_среда_четверг_пятница_суббота".split("_"),format:"воскресенье_понедельник_вторник_среду_четверг_пятницу_субботу".split("_"),isFormat:/\[ ?[Вв] ?(?:прошлую|следующую|эту)? ?\] ?dddd/},weekdaysShort:"вс_пн_вт_ср_чт_пт_сб".split("_"),weekdaysMin:"вс_пн_вт_ср_чт_пт_сб".split("_"),monthsParse:mb,longMonthsParse:mb,shortMonthsParse:mb,monthsRegex:/^(январ[ья]|янв\.?|феврал[ья]|февр?\.?|марта?|мар\.?|апрел[ья]|апр\.?|ма[йя]|июн[ья]|июн\.?|июл[ья]|июл\.?|августа?|авг\.?|сентябр[ья]|сент?\.?|октябр[ья]|окт\.?|ноябр[ья]|нояб?\.?|декабр[ья]|дек\.?)/i,monthsShortRegex:/^(январ[ья]|янв\.?|феврал[ья]|февр?\.?|марта?|мар\.?|апрел[ья]|апр\.?|ма[йя]|июн[ья]|июн\.?|июл[ья]|июл\.?|августа?|авг\.?|сентябр[ья]|сент?\.?|октябр[ья]|окт\.?|ноябр[ья]|нояб?\.?|декабр[ья]|дек\.?)/i,monthsStrictRegex:/^(январ[яь]|феврал[яь]|марта?|апрел[яь]|ма[яй]|июн[яь]|июл[яь]|августа?|сентябр[яь]|октябр[яь]|ноябр[яь]|декабр[яь])/i,monthsShortStrictRegex:/^(янв\.|февр?\.|мар[т.]|апр\.|ма[яй]|июн[ья.]|июл[ья.]|авг\.|сент?\.|окт\.|нояб?\.|дек\.)/i,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY г.",LLL:"D MMMM YYYY г., HH:mm",LLLL:"dddd, D MMMM YYYY г., HH:mm"},calendar:{sameDay:"[Сегодня в] LT",nextDay:"[Завтра в] LT",lastDay:"[Вчера в] LT",nextWeek:function(a){if(a.week()===this.week())return 2===this.day()?"[Во] dddd [в] LT":"[В] dddd [в] LT";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"}},lastWeek:function(a){if(a.week()===this.week())return 2===this.day()?"[Во] dddd [в] LT":"[В] dddd [в] LT";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:Q,mm:Q,h:"час",hh:Q,d:"день",dd:Q,M:"месяц",MM:Q,y:"год",yy:Q},meridiemParse:/ночи|утра|дня|вечера/i,isPM:function(a){return/^(дня|вечера)$/.test(a)},meridiem:function(a,b,c){return a<4?"ночи":a<12?"утра":a<17?"дня":"вечера"},dayOfMonthOrdinalParse:/\d{1,2}-(й|го|я)/,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}}); -//! moment.js locale configuration -//! locale : Sindhi [sd] -//! author : Narain Sagar : https://github.com/narainsagar -var nb=["جنوري","فيبروري","مارچ","اپريل","مئي","جون","جولاءِ","آگسٽ","سيپٽمبر","آڪٽوبر","نومبر","ڊسمبر"],ob=["آچر","سومر","اڱارو","اربع","خميس","جمع","ڇنڇر"];a.defineLocale("sd",{months:nb,monthsShort:nb,weekdays:ob,weekdaysShort:ob,weekdaysMin:ob,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd، D MMMM YYYY HH:mm"},meridiemParse:/صبح|شام/,isPM:function(a){return"شام"===a},meridiem:function(a,b,c){return a<12?"صبح":"شام"},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,",")},postformat:function(a){return a.replace(/,/g,"،")},week:{dow:1,doy:4}}), -//! moment.js locale configuration -//! locale : Northern Sami [se] -//! authors : Bård Rolstad Henriksen : https://github.com/karamell -a.defineLocale("se",{months:"ođđajagemánnu_guovvamánnu_njukčamánnu_cuoŋománnu_miessemánnu_geassemánnu_suoidnemánnu_borgemánnu_čakčamánnu_golggotmánnu_skábmamánnu_juovlamánnu".split("_"),monthsShort:"ođđj_guov_njuk_cuo_mies_geas_suoi_borg_čakč_golg_skáb_juov".split("_"),weekdays:"sotnabeaivi_vuossárga_maŋŋebárga_gaskavahkku_duorastat_bearjadat_lávvardat".split("_"),weekdaysShort:"sotn_vuos_maŋ_gask_duor_bear_láv".split("_"),weekdaysMin:"s_v_m_g_d_b_L".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"MMMM D. [b.] YYYY",LLL:"MMMM D. [b.] YYYY [ti.] HH:mm",LLLL:"dddd, MMMM D. [b.] YYYY [ti.] HH:mm"},calendar:{sameDay:"[otne ti] LT",nextDay:"[ihttin ti] LT",nextWeek:"dddd [ti] LT",lastDay:"[ikte ti] LT",lastWeek:"[ovddit] dddd [ti] LT",sameElse:"L"},relativeTime:{future:"%s geažes",past:"maŋit %s",s:"moadde sekunddat",m:"okta minuhta",mm:"%d minuhtat",h:"okta diimmu",hh:"%d diimmut",d:"okta beaivi",dd:"%d beaivvit",M:"okta mánnu",MM:"%d mánut",y:"okta jahki",yy:"%d jagit"},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}}), -//! moment.js locale configuration -//! locale : Sinhalese [si] -//! author : Sampath Sitinamaluwa : https://github.com/sampathsris -a.defineLocale("si",{months:"ජනවාරි_පෙබරවාරි_මාර්තු_අප්‍රේල්_මැයි_ජූනි_ජූලි_අගෝස්තු_සැප්තැම්බර්_ඔක්තෝබර්_නොවැම්බර්_දෙසැම්බර්".split("_"),monthsShort:"ජන_පෙබ_මාර්_අප්_මැයි_ජූනි_ජූලි_අගෝ_සැප්_ඔක්_නොවැ_දෙසැ".split("_"),weekdays:"ඉරිදා_සඳුදා_අඟහරුවාදා_බදාදා_බ්‍රහස්පතින්දා_සිකුරාදා_සෙනසුරාදා".split("_"),weekdaysShort:"ඉරි_සඳු_අඟ_බදා_බ්‍රහ_සිකු_සෙන".split("_"),weekdaysMin:"ඉ_ස_අ_බ_බ්‍ර_සි_සෙ".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"a h:mm",LTS:"a h:mm:ss",L:"YYYY/MM/DD",LL:"YYYY MMMM D",LLL:"YYYY MMMM D, a h:mm",LLLL:"YYYY MMMM D [වැනි] dddd, a h:mm:ss"},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"},dayOfMonthOrdinalParse:/\d{1,2} වැනි/,ordinal:function(a){return a+" වැනි"},meridiemParse:/පෙර වරු|පස් වරු|පෙ.ව|ප.ව./,isPM:function(a){return"ප.ව."===a||"පස් වරු"===a},meridiem:function(a,b,c){return a>11?c?"ප.ව.":"පස් වරු":c?"පෙ.ව.":"පෙර වරු"}}); -//! moment.js locale configuration -//! locale : Slovak [sk] -//! author : Martin Minka : https://github.com/k2s -//! based on work of petrbela : https://github.com/petrbela -var pb="január_február_marec_apríl_máj_jún_júl_august_september_október_november_december".split("_"),qb="jan_feb_mar_apr_máj_jún_júl_aug_sep_okt_nov_dec".split("_");a.defineLocale("sk",{months:pb,monthsShort:qb,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",LTS:"H:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY H:mm",LLLL:"dddd D. MMMM YYYY H:mm"},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:S,m:S,mm:S,h:S,hh:S,d:S,dd:S,M:S,MM:S,y:S,yy:S},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}}),a.defineLocale("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("_"),monthsParseExact:!0,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("_"),weekdaysParseExact:!0,longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY H:mm",LLLL:"dddd, D. MMMM YYYY H:mm"},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:return"[prejšnjo] [nedeljo] [ob] LT";case 3:return"[prejšnjo] [sredo] [ob] LT";case 6:return"[prejšnjo] [soboto] [ob] LT";case 1:case 2:case 4:case 5:return"[prejšnji] dddd [ob] LT"}},sameElse:"L"},relativeTime:{future:"čez %s",past:"pred %s",s:T,m:T,mm:T,h:T,hh:T,d:T,dd:T,M:T,MM:T,y:T,yy:T},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:7}}), -//! moment.js locale configuration -//! locale : Albanian [sq] -//! author : Flakërim Ismani : https://github.com/flakerimi -//! author : Menelion Elensúle : https://github.com/Oire -//! author : Oerd Cukalla : https://github.com/oerd -a.defineLocale("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 Martë_E Mërkurë_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("_"),weekdaysParseExact:!0,meridiemParse:/PD|MD/,isPM:function(a){return"M"===a.charAt(0)},meridiem:function(a,b,c){return a<12?"PD":"MD"},longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[Sot në] LT",nextDay:"[Nesër në] LT",nextWeek:"dddd [në] LT",lastDay:"[Dje në] LT",lastWeek:"dddd [e kaluar në] LT",sameElse:"L"},relativeTime:{future:"në %s",past:"%s më parë",s:"disa sekonda",m:"një minutë",mm:"%d minuta",h:"një orë",hh:"%d orë",d:"një ditë",dd:"%d ditë",M:"një muaj",MM:"%d muaj",y:"një vit",yy:"%d vite"},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}}); -//! moment.js locale configuration -//! locale : Serbian Cyrillic [sr-cyrl] -//! author : Milan Janačković<milanjanackovic@gmail.com> : https://github.com/milan-j -var rb={words:{m:["један минут","једне минуте"],mm:["минут","минуте","минута"],h:["један сат","једног сата"],hh:["сат","сата","сати"],dd:["дан","дана","дана"],MM:["месец","месеца","месеци"],yy:["година","године","година"]},correctGrammaticalCase:function(a,b){return 1===a?b[0]:a>=2&&a<=4?b[1]:b[2]},translate:function(a,b,c){var d=rb.words[c];return 1===c.length?b?d[0]:d[1]:a+" "+rb.correctGrammaticalCase(a,d)}};a.defineLocale("sr-cyrl",{months:"јануар_фебруар_март_април_мај_јун_јул_август_септембар_октобар_новембар_децембар".split("_"),monthsShort:"јан._феб._мар._апр._мај_јун_јул_авг._сеп._окт._нов._дец.".split("_"),monthsParseExact:!0,weekdays:"недеља_понедељак_уторак_среда_четвртак_петак_субота".split("_"),weekdaysShort:"нед._пон._уто._сре._чет._пет._суб.".split("_"),weekdaysMin:"не_по_ут_ср_че_пе_су".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY H:mm",LLLL:"dddd, D. MMMM YYYY H:mm"},calendar:{sameDay:"[данас у] LT",nextDay:"[сутра у] LT",nextWeek:function(){switch(this.day()){case 0:return"[у] [недељу] [у] LT";case 3:return"[у] [среду] [у] LT";case 6:return"[у] [суботу] [у] LT";case 1:case 2:case 4:case 5:return"[у] dddd [у] LT"}},lastDay:"[јуче у] LT",lastWeek:function(){var a=["[прошле] [недеље] [у] LT","[прошлог] [понедељка] [у] LT","[прошлог] [уторка] [у] LT","[прошле] [среде] [у] LT","[прошлог] [четвртка] [у] LT","[прошлог] [петка] [у] LT","[прошле] [суботе] [у] LT"];return a[this.day()]},sameElse:"L"},relativeTime:{future:"за %s",past:"пре %s",s:"неколико секунди",m:rb.translate,mm:rb.translate,h:rb.translate,hh:rb.translate,d:"дан",dd:rb.translate,M:"месец",MM:rb.translate,y:"годину",yy:rb.translate},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:7}}); -//! moment.js locale configuration -//! locale : Serbian [sr] -//! author : Milan Janačković<milanjanackovic@gmail.com> : https://github.com/milan-j -var sb={words:{m:["jedan minut","jedne minute"],mm:["minut","minute","minuta"],h:["jedan sat","jednog sata"],hh:["sat","sata","sati"],dd:["dan","dana","dana"],MM:["mesec","meseca","meseci"],yy:["godina","godine","godina"]},correctGrammaticalCase:function(a,b){return 1===a?b[0]:a>=2&&a<=4?b[1]:b[2]},translate:function(a,b,c){var d=sb.words[c];return 1===c.length?b?d[0]:d[1]:a+" "+sb.correctGrammaticalCase(a,d)}};a.defineLocale("sr",{months:"januar_februar_mart_april_maj_jun_jul_avgust_septembar_oktobar_novembar_decembar".split("_"),monthsShort:"jan._feb._mar._apr._maj_jun_jul_avg._sep._okt._nov._dec.".split("_"),monthsParseExact:!0,weekdays:"nedelja_ponedeljak_utorak_sreda_četvrtak_petak_subota".split("_"),weekdaysShort:"ned._pon._uto._sre._čet._pet._sub.".split("_"),weekdaysMin:"ne_po_ut_sr_če_pe_su".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY H:mm",LLLL:"dddd, D. MMMM YYYY H:mm"},calendar:{sameDay:"[danas u] LT",nextDay:"[sutra u] LT",nextWeek:function(){switch(this.day()){case 0:return"[u] [nedelju] [u] LT";case 3:return"[u] [sredu] [u] LT";case 6:return"[u] [subotu] [u] LT";case 1:case 2:case 4:case 5:return"[u] dddd [u] LT"}},lastDay:"[juče u] LT",lastWeek:function(){var a=["[prošle] [nedelje] [u] LT","[prošlog] [ponedeljka] [u] LT","[prošlog] [utorka] [u] LT","[prošle] [srede] [u] LT","[prošlog] [četvrtka] [u] LT","[prošlog] [petka] [u] LT","[prošle] [subote] [u] LT"];return a[this.day()]},sameElse:"L"},relativeTime:{future:"za %s",past:"pre %s",s:"nekoliko sekundi",m:sb.translate,mm:sb.translate,h:sb.translate,hh:sb.translate,d:"dan",dd:sb.translate,M:"mesec",MM:sb.translate,y:"godinu",yy:sb.translate},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:7}}), -//! moment.js locale configuration -//! locale : siSwati [ss] -//! author : Nicolai Davies<mail@nicolai.io> : https://github.com/nicolaidavies -a.defineLocale("ss",{months:"Bhimbidvwane_Indlovana_Indlov'lenkhulu_Mabasa_Inkhwekhweti_Inhlaba_Kholwane_Ingci_Inyoni_Imphala_Lweti_Ingongoni".split("_"),monthsShort:"Bhi_Ina_Inu_Mab_Ink_Inh_Kho_Igc_Iny_Imp_Lwe_Igo".split("_"),weekdays:"Lisontfo_Umsombuluko_Lesibili_Lesitsatfu_Lesine_Lesihlanu_Umgcibelo".split("_"),weekdaysShort:"Lis_Umb_Lsb_Les_Lsi_Lsh_Umg".split("_"),weekdaysMin:"Li_Us_Lb_Lt_Ls_Lh_Ug".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"h:mm A",LTS:"h:mm:ss A",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY h:mm A",LLLL:"dddd, D MMMM YYYY h:mm A"},calendar:{sameDay:"[Namuhla nga] LT",nextDay:"[Kusasa nga] LT",nextWeek:"dddd [nga] LT",lastDay:"[Itolo nga] LT",lastWeek:"dddd [leliphelile] [nga] LT",sameElse:"L"},relativeTime:{future:"nga %s",past:"wenteka nga %s",s:"emizuzwana lomcane",m:"umzuzu",mm:"%d emizuzu",h:"lihora",hh:"%d emahora",d:"lilanga",dd:"%d emalanga",M:"inyanga",MM:"%d tinyanga",y:"umnyaka",yy:"%d iminyaka"},meridiemParse:/ekuseni|emini|entsambama|ebusuku/,meridiem:function(a,b,c){return a<11?"ekuseni":a<15?"emini":a<19?"entsambama":"ebusuku"},meridiemHour:function(a,b){return 12===a&&(a=0),"ekuseni"===b?a:"emini"===b?a>=11?a:a+12:"entsambama"===b||"ebusuku"===b?0===a?0:a+12:void 0},dayOfMonthOrdinalParse:/\d{1,2}/,ordinal:"%d",week:{dow:1,doy:4}}), -//! moment.js locale configuration -//! locale : Swedish [sv] -//! author : Jens Alm : https://github.com/ulmus -a.defineLocale("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",LTS:"HH:mm:ss",L:"YYYY-MM-DD",LL:"D MMMM YYYY",LLL:"D MMMM YYYY [kl.] HH:mm",LLLL:"dddd D MMMM YYYY [kl.] HH:mm",lll:"D MMM YYYY HH:mm",llll:"ddd D MMM YYYY HH:mm"},calendar:{sameDay:"[Idag] LT",nextDay:"[Imorgon] LT",lastDay:"[Igår] LT",nextWeek:"[På] dddd LT",lastWeek:"[I] dddd[s] 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"},dayOfMonthOrdinalParse:/\d{1,2}(e|a)/,ordinal:function(a){var b=a%10,c=1===~~(a%100/10)?"e":1===b?"a":2===b?"a":"e";return a+c},week:{dow:1,doy:4}}), -//! moment.js locale configuration -//! locale : Swahili [sw] -//! author : Fahad Kassim : https://github.com/fadsel -a.defineLocale("sw",{months:"Januari_Februari_Machi_Aprili_Mei_Juni_Julai_Agosti_Septemba_Oktoba_Novemba_Desemba".split("_"),monthsShort:"Jan_Feb_Mac_Apr_Mei_Jun_Jul_Ago_Sep_Okt_Nov_Des".split("_"),weekdays:"Jumapili_Jumatatu_Jumanne_Jumatano_Alhamisi_Ijumaa_Jumamosi".split("_"),weekdaysShort:"Jpl_Jtat_Jnne_Jtan_Alh_Ijm_Jmos".split("_"),weekdaysMin:"J2_J3_J4_J5_Al_Ij_J1".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[leo saa] LT",nextDay:"[kesho saa] LT",nextWeek:"[wiki ijayo] dddd [saat] LT",lastDay:"[jana] LT",lastWeek:"[wiki iliyopita] dddd [saat] LT",sameElse:"L"},relativeTime:{future:"%s baadaye",past:"tokea %s",s:"hivi punde",m:"dakika moja",mm:"dakika %d",h:"saa limoja",hh:"masaa %d",d:"siku moja",dd:"masiku %d",M:"mwezi mmoja",MM:"miezi %d",y:"mwaka mmoja",yy:"miaka %d"},week:{dow:1,doy:7}}); -//! moment.js locale configuration -//! locale : Tamil [ta] -//! author : Arjunkumar Krishnamoorthy : https://github.com/tk120404 -var tb={1:"௧",2:"௨",3:"௩",4:"௪",5:"௫",6:"௬",7:"௭",8:"௮",9:"௯",0:"௦"},ub={"௧":"1","௨":"2","௩":"3","௪":"4","௫":"5","௬":"6","௭":"7","௮":"8","௯":"9","௦":"0"};a.defineLocale("ta",{months:"ஜனவரி_பிப்ரவரி_மார்ச்_ஏப்ரல்_மே_ஜூன்_ஜூலை_ஆகஸ்ட்_செப்டெம்பர்_அக்டோபர்_நவம்பர்_டிசம்பர்".split("_"),monthsShort:"ஜனவரி_பிப்ரவரி_மார்ச்_ஏப்ரல்_மே_ஜூன்_ஜூலை_ஆகஸ்ட்_செப்டெம்பர்_அக்டோபர்_நவம்பர்_டிசம்பர்".split("_"),weekdays:"ஞாயிற்றுக்கிழமை_திங்கட்கிழமை_செவ்வாய்கிழமை_புதன்கிழமை_வியாழக்கிழமை_வெள்ளிக்கிழமை_சனிக்கிழமை".split("_"),weekdaysShort:"ஞாயிறு_திங்கள்_செவ்வாய்_புதன்_வியாழன்_வெள்ளி_சனி".split("_"),weekdaysMin:"ஞா_தி_செ_பு_வி_வெ_ச".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY, HH:mm",LLLL:"dddd, D MMMM YYYY, HH:mm"},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 ஆண்டுகள்"},dayOfMonthOrdinalParse:/\d{1,2}வது/,ordinal:function(a){return a+"வது"},preparse:function(a){return a.replace(/[௧௨௩௪௫௬௭௮௯௦]/g,function(a){return ub[a]})},postformat:function(a){return a.replace(/\d/g,function(a){return tb[a]})},meridiemParse:/யாமம்|வைகறை|காலை|நண்பகல்|எற்பாடு|மாலை/,meridiem:function(a,b,c){return a<2?" யாமம்":a<6?" வைகறை":a<10?" காலை":a<14?" நண்பகல்":a<18?" எற்பாடு":a<22?" மாலை":" யாமம்"},meridiemHour:function(a,b){return 12===a&&(a=0),"யாமம்"===b?a<2?a:a+12:"வைகறை"===b||"காலை"===b?a:"நண்பகல்"===b&&a>=10?a:a+12},week:{dow:0,doy:6}}), -//! moment.js locale configuration -//! locale : Telugu [te] -//! author : Krishna Chaitanya Thota : https://github.com/kcthota -a.defineLocale("te",{months:"జనవరి_ఫిబ్రవరి_మార్చి_ఏప్రిల్_మే_జూన్_జూలై_ఆగస్టు_సెప్టెంబర్_అక్టోబర్_నవంబర్_డిసెంబర్".split("_"),monthsShort:"జన._ఫిబ్ర._మార్చి_ఏప్రి._మే_జూన్_జూలై_ఆగ._సెప్._అక్టో._నవ._డిసె.".split("_"),monthsParseExact:!0,weekdays:"ఆదివారం_సోమవారం_మంగళవారం_బుధవారం_గురువారం_శుక్రవారం_శనివారం".split("_"),weekdaysShort:"ఆది_సోమ_మంగళ_బుధ_గురు_శుక్ర_శని".split("_"),weekdaysMin:"ఆ_సో_మం_బు_గు_శు_శ".split("_"),longDateFormat:{LT:"A h:mm",LTS:"A h:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY, A h:mm",LLLL:"dddd, D MMMM YYYY, A h:mm"},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 సంవత్సరాలు"},dayOfMonthOrdinalParse:/\d{1,2}వ/,ordinal:"%dవ",meridiemParse:/రాత్రి|ఉదయం|మధ్యాహ్నం|సాయంత్రం/,meridiemHour:function(a,b){return 12===a&&(a=0),"రాత్రి"===b?a<4?a:a+12:"ఉదయం"===b?a:"మధ్యాహ్నం"===b?a>=10?a:a+12:"సాయంత్రం"===b?a+12:void 0},meridiem:function(a,b,c){return a<4?"రాత్రి":a<10?"ఉదయం":a<17?"మధ్యాహ్నం":a<20?"సాయంత్రం":"రాత్రి"},week:{dow:0,doy:6}}), -//! moment.js locale configuration -//! locale : Tetun Dili (East Timor) [tet] -//! author : Joshua Brooks : https://github.com/joshbrooks -//! author : Onorio De J. Afonso : https://github.com/marobo -a.defineLocale("tet",{months:"Janeiru_Fevereiru_Marsu_Abril_Maiu_Juniu_Juliu_Augustu_Setembru_Outubru_Novembru_Dezembru".split("_"),monthsShort:"Jan_Fev_Mar_Abr_Mai_Jun_Jul_Aug_Set_Out_Nov_Dez".split("_"),weekdays:"Domingu_Segunda_Tersa_Kuarta_Kinta_Sexta_Sabadu".split("_"),weekdaysShort:"Dom_Seg_Ters_Kua_Kint_Sext_Sab".split("_"),weekdaysMin:"Do_Seg_Te_Ku_Ki_Sex_Sa".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[Ohin iha] LT",nextDay:"[Aban iha] LT",nextWeek:"dddd [iha] LT",lastDay:"[Horiseik iha] LT",lastWeek:"dddd [semana kotuk] [iha] LT",sameElse:"L"},relativeTime:{future:"iha %s",past:"%s liuba",s:"minutu balun",m:"minutu ida",mm:"minutus %d",h:"horas ida",hh:"horas %d",d:"loron ida",dd:"loron %d",M:"fulan ida",MM:"fulan %d",y:"tinan ida",yy:"tinan %d"},dayOfMonthOrdinalParse:/\d{1,2}(st|nd|rd|th)/,ordinal:function(a){var b=a%10,c=1===~~(a%100/10)?"th":1===b?"st":2===b?"nd":3===b?"rd":"th";return a+c},week:{dow:1,doy:4}}), -//! moment.js locale configuration -//! locale : Thai [th] -//! author : Kridsada Thanabulpong : https://github.com/sirn -a.defineLocale("th",{months:"มกราคม_กุมภาพันธ์_มีนาคม_เมษายน_พฤษภาคม_มิถุนายน_กรกฎาคม_สิงหาคม_กันยายน_ตุลาคม_พฤศจิกายน_ธันวาคม".split("_"),monthsShort:"ม.ค._ก.พ._มี.ค._เม.ย._พ.ค._มิ.ย._ก.ค._ส.ค._ก.ย._ต.ค._พ.ย._ธ.ค.".split("_"),monthsParseExact:!0,weekdays:"อาทิตย์_จันทร์_อังคาร_พุธ_พฤหัสบดี_ศุกร์_เสาร์".split("_"),weekdaysShort:"อาทิตย์_จันทร์_อังคาร_พุธ_พฤหัส_ศุกร์_เสาร์".split("_"),weekdaysMin:"อา._จ._อ._พ._พฤ._ศ._ส.".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY เวลา H:mm",LLLL:"วันddddที่ D MMMM YYYY เวลา H:mm"},meridiemParse:/ก่อนเที่ยง|หลังเที่ยง/,isPM:function(a){return"หลังเที่ยง"===a},meridiem:function(a,b,c){return a<12?"ก่อนเที่ยง":"หลังเที่ยง"},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 ปี"}}), -//! moment.js locale configuration -//! locale : Tagalog (Philippines) [tl-ph] -//! author : Dan Hagman : https://github.com/hagmandan -a.defineLocale("tl-ph",{months:"Enero_Pebrero_Marso_Abril_Mayo_Hunyo_Hulyo_Agosto_Setyembre_Oktubre_Nobyembre_Disyembre".split("_"),monthsShort:"Ene_Peb_Mar_Abr_May_Hun_Hul_Ago_Set_Okt_Nob_Dis".split("_"),weekdays:"Linggo_Lunes_Martes_Miyerkules_Huwebes_Biyernes_Sabado".split("_"),weekdaysShort:"Lin_Lun_Mar_Miy_Huw_Biy_Sab".split("_"),weekdaysMin:"Li_Lu_Ma_Mi_Hu_Bi_Sab".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"MM/D/YYYY",LL:"MMMM D, YYYY",LLL:"MMMM D, YYYY HH:mm",LLLL:"dddd, MMMM DD, YYYY HH:mm"},calendar:{sameDay:"LT [ngayong araw]",nextDay:"[Bukas ng] LT",nextWeek:"LT [sa susunod na] dddd",lastDay:"LT [kahapon]",lastWeek:"LT [noong nakaraang] dddd",sameElse:"L"},relativeTime:{future:"sa loob ng %s",past:"%s ang nakalipas",s:"ilang segundo",m:"isang minuto",mm:"%d minuto",h:"isang oras",hh:"%d oras",d:"isang araw",dd:"%d araw",M:"isang buwan",MM:"%d buwan",y:"isang taon",yy:"%d taon"},dayOfMonthOrdinalParse:/\d{1,2}/,ordinal:function(a){return a},week:{dow:1,doy:4}}); -//! moment.js locale configuration -//! locale : Klingon [tlh] -//! author : Dominika Kruk : https://github.com/amaranthrose -var vb="pagh_wa’_cha’_wej_loS_vagh_jav_Soch_chorgh_Hut".split("_");a.defineLocale("tlh",{months:"tera’ jar wa’_tera’ jar cha’_tera’ jar wej_tera’ jar loS_tera’ jar vagh_tera’ jar jav_tera’ jar Soch_tera’ jar chorgh_tera’ jar Hut_tera’ jar wa’maH_tera’ jar wa’maH wa’_tera’ jar wa’maH cha’".split("_"),monthsShort:"jar wa’_jar cha’_jar wej_jar loS_jar vagh_jar jav_jar Soch_jar chorgh_jar Hut_jar wa’maH_jar wa’maH wa’_jar wa’maH cha’".split("_"),monthsParseExact:!0,weekdays:"lojmItjaj_DaSjaj_povjaj_ghItlhjaj_loghjaj_buqjaj_ghInjaj".split("_"),weekdaysShort:"lojmItjaj_DaSjaj_povjaj_ghItlhjaj_loghjaj_buqjaj_ghInjaj".split("_"),weekdaysMin:"lojmItjaj_DaSjaj_povjaj_ghItlhjaj_loghjaj_buqjaj_ghInjaj".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[DaHjaj] LT",nextDay:"[wa’leS] LT",nextWeek:"LLL",lastDay:"[wa’Hu’] LT",lastWeek:"LLL",sameElse:"L"},relativeTime:{future:U,past:V,s:"puS lup",m:"wa’ tup",mm:W,h:"wa’ rep",hh:W,d:"wa’ jaj",dd:W,M:"wa’ jar",MM:W,y:"wa’ DIS",yy:W},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}}); -//! moment.js locale configuration -//! locale : Turkish [tr] -//! authors : Erhan Gundogan : https://github.com/erhangundogan, -//! Burak Yiğit Kaya: https://github.com/BYK -var wb={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.defineLocale("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",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},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"},dayOfMonthOrdinalParse:/\d{1,2}'(inci|nci|üncü|ncı|uncu|ıncı)/,ordinal:function(a){if(0===a)return a+"'ıncı";var b=a%10,c=a%100-b,d=a>=100?100:null;return a+(wb[b]||wb[c]||wb[d])},week:{dow:1,doy:7}}), -//! moment.js locale configuration -//! locale : Talossan [tzl] -//! author : Robin van der Vliet : https://github.com/robin0van0der0v -//! author : Iustì Canun -a.defineLocale("tzl",{months:"Januar_Fevraglh_Març_Avrïu_Mai_Gün_Julia_Guscht_Setemvar_Listopäts_Noemvar_Zecemvar".split("_"),monthsShort:"Jan_Fev_Mar_Avr_Mai_Gün_Jul_Gus_Set_Lis_Noe_Zec".split("_"),weekdays:"Súladi_Lúneçi_Maitzi_Márcuri_Xhúadi_Viénerçi_Sáturi".split("_"),weekdaysShort:"Súl_Lún_Mai_Már_Xhú_Vié_Sát".split("_"),weekdaysMin:"Sú_Lú_Ma_Má_Xh_Vi_Sá".split("_"),longDateFormat:{LT:"HH.mm",LTS:"HH.mm.ss",L:"DD.MM.YYYY",LL:"D. MMMM [dallas] YYYY",LLL:"D. MMMM [dallas] YYYY HH.mm",LLLL:"dddd, [li] D. MMMM [dallas] YYYY HH.mm"},meridiemParse:/d\'o|d\'a/i,isPM:function(a){return"d'o"===a.toLowerCase()},meridiem:function(a,b,c){return a>11?c?"d'o":"D'O":c?"d'a":"D'A"},calendar:{sameDay:"[oxhi à] LT",nextDay:"[demà à] LT",nextWeek:"dddd [à] LT",lastDay:"[ieiri à] LT",lastWeek:"[sür el] dddd [lasteu à] LT",sameElse:"L"},relativeTime:{future:"osprei %s",past:"ja%s",s:Y,m:Y,mm:Y,h:Y,hh:Y,d:Y,dd:Y,M:Y,MM:Y,y:Y,yy:Y},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}}), -//! moment.js locale configuration -//! locale : Central Atlas Tamazight Latin [tzm-latn] -//! author : Abdel Said : https://github.com/abdelsaid -a.defineLocale("tzm-latn",{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",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},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}}), -//! moment.js locale configuration -//! locale : Central Atlas Tamazight [tzm] -//! author : Abdel Said : https://github.com/abdelsaid -a.defineLocale("tzm",{months:"ⵉⵏⵏⴰⵢⵔ_ⴱⵕⴰⵢⵕ_ⵎⴰⵕⵚ_ⵉⴱⵔⵉⵔ_ⵎⴰⵢⵢⵓ_ⵢⵓⵏⵢⵓ_ⵢⵓⵍⵢⵓⵣ_ⵖⵓⵛⵜ_ⵛⵓⵜⴰⵏⴱⵉⵔ_ⴽⵟⵓⴱⵕ_ⵏⵓⵡⴰⵏⴱⵉⵔ_ⴷⵓⵊⵏⴱⵉⵔ".split("_"),monthsShort:"ⵉⵏⵏⴰⵢⵔ_ⴱⵕⴰⵢⵕ_ⵎⴰⵕⵚ_ⵉⴱⵔⵉⵔ_ⵎⴰⵢⵢⵓ_ⵢⵓⵏⵢⵓ_ⵢⵓⵍⵢⵓⵣ_ⵖⵓⵛⵜ_ⵛⵓⵜⴰⵏⴱⵉⵔ_ⴽⵟⵓⴱⵕ_ⵏⵓⵡⴰⵏⴱⵉⵔ_ⴷⵓⵊⵏⴱⵉⵔ".split("_"),weekdays:"ⴰⵙⴰⵎⴰⵙ_ⴰⵢⵏⴰⵙ_ⴰⵙⵉⵏⴰⵙ_ⴰⴽⵔⴰⵙ_ⴰⴽⵡⴰⵙ_ⴰⵙⵉⵎⵡⴰⵙ_ⴰⵙⵉⴹⵢⴰⵙ".split("_"),weekdaysShort:"ⴰⵙⴰⵎⴰⵙ_ⴰⵢⵏⴰⵙ_ⴰⵙⵉⵏⴰⵙ_ⴰⴽⵔⴰⵙ_ⴰⴽⵡⴰⵙ_ⴰⵙⵉⵎⵡⴰⵙ_ⴰⵙⵉⴹⵢⴰⵙ".split("_"),weekdaysMin:"ⴰⵙⴰⵎⴰⵙ_ⴰⵢⵏⴰⵙ_ⴰⵙⵉⵏⴰⵙ_ⴰⴽⵔⴰⵙ_ⴰⴽⵡⴰⵙ_ⴰⵙⵉⵎⵡⴰⵙ_ⴰⵙⵉⴹⵢⴰⵙ".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},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}}),a.defineLocale("uk",{months:{format:"січня_лютого_березня_квітня_травня_червня_липня_серпня_вересня_жовтня_листопада_грудня".split("_"),standalone:"січень_лютий_березень_квітень_травень_червень_липень_серпень_вересень_жовтень_листопад_грудень".split("_")},monthsShort:"січ_лют_бер_квіт_трав_черв_лип_серп_вер_жовт_лист_груд".split("_"),weekdays:_,weekdaysShort:"нд_пн_вт_ср_чт_пт_сб".split("_"),weekdaysMin:"нд_пн_вт_ср_чт_пт_сб".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY р.",LLL:"D MMMM YYYY р., HH:mm",LLLL:"dddd, D MMMM YYYY р., HH:mm"},calendar:{sameDay:aa("[Сьогодні "),nextDay:aa("[Завтра "),lastDay:aa("[Вчора "),nextWeek:aa("[У] dddd ["),lastWeek:function(){switch(this.day()){case 0:case 3:case 5:case 6:return aa("[Минулої] dddd [").call(this);case 1:case 2:case 4:return aa("[Минулого] dddd [").call(this)}},sameElse:"L"},relativeTime:{future:"за %s",past:"%s тому",s:"декілька секунд",m:$,mm:$,h:"годину",hh:$,d:"день",dd:$,M:"місяць",MM:$,y:"рік",yy:$},meridiemParse:/ночі|ранку|дня|вечора/,isPM:function(a){return/^(дня|вечора)$/.test(a)},meridiem:function(a,b,c){return a<4?"ночі":a<12?"ранку":a<17?"дня":"вечора"},dayOfMonthOrdinalParse:/\d{1,2}-(й|го)/,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}}); -//! moment.js locale configuration -//! locale : Urdu [ur] -//! author : Sawood Alam : https://github.com/ibnesayeed -//! author : Zack : https://github.com/ZackVision -var xb=["جنوری","فروری","مارچ","اپریل","مئی","جون","جولائی","اگست","ستمبر","اکتوبر","نومبر","دسمبر"],yb=["اتوار","پیر","منگل","بدھ","جمعرات","جمعہ","ہفتہ"]; -//! moment.js locale configuration -//! locale : Uzbek Latin [uz-latn] -//! author : Rasulbek Mirzayev : github.com/Rasulbeeek -//! moment.js locale configuration -//! locale : Uzbek [uz] -//! author : Sardor Muminov : https://github.com/muminoff -//! moment.js locale configuration -//! locale : Vietnamese [vi] -//! author : Bang Nguyen : https://github.com/bangnk -//! moment.js locale configuration -//! locale : Pseudo [x-pseudo] -//! author : Andrew Hood : https://github.com/andrewhood125 -//! moment.js locale configuration -//! locale : Yoruba Nigeria [yo] -//! author : Atolagbe Abisoye : https://github.com/andela-batolagbe -//! moment.js locale configuration -//! locale : Chinese (China) [zh-cn] -//! author : suupic : https://github.com/suupic -//! author : Zeno Zeng : https://github.com/zenozeng -//! moment.js locale configuration -//! locale : Chinese (Hong Kong) [zh-hk] -//! author : Ben : https://github.com/ben-lin -//! author : Chris Lam : https://github.com/hehachris -//! author : Konstantin : https://github.com/skfd -//! moment.js locale configuration -//! locale : Chinese (Taiwan) [zh-tw] -//! author : Ben : https://github.com/ben-lin -//! author : Chris Lam : https://github.com/hehachris -return a.defineLocale("ur",{months:xb,monthsShort:xb,weekdays:yb,weekdaysShort:yb,weekdaysMin:yb,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd، D MMMM YYYY HH:mm"},meridiemParse:/صبح|شام/,isPM:function(a){return"شام"===a},meridiem:function(a,b,c){return a<12?"صبح":"شام"},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,",")},postformat:function(a){return a.replace(/,/g,"،")},week:{dow:1,doy:4}}),a.defineLocale("uz-latn",{months:"Yanvar_Fevral_Mart_Aprel_May_Iyun_Iyul_Avgust_Sentabr_Oktabr_Noyabr_Dekabr".split("_"),monthsShort:"Yan_Fev_Mar_Apr_May_Iyun_Iyul_Avg_Sen_Okt_Noy_Dek".split("_"),weekdays:"Yakshanba_Dushanba_Seshanba_Chorshanba_Payshanba_Juma_Shanba".split("_"),weekdaysShort:"Yak_Dush_Sesh_Chor_Pay_Jum_Shan".split("_"),weekdaysMin:"Ya_Du_Se_Cho_Pa_Ju_Sha".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"D MMMM YYYY, dddd HH:mm"},calendar:{sameDay:"[Bugun soat] LT [da]",nextDay:"[Ertaga] LT [da]",nextWeek:"dddd [kuni soat] LT [da]",lastDay:"[Kecha soat] LT [da]",lastWeek:"[O'tgan] dddd [kuni soat] LT [da]",sameElse:"L"},relativeTime:{future:"Yaqin %s ichida",past:"Bir necha %s oldin",s:"soniya",m:"bir daqiqa",mm:"%d daqiqa",h:"bir soat",hh:"%d soat",d:"bir kun",dd:"%d kun",M:"bir oy",MM:"%d oy",y:"bir yil",yy:"%d yil"},week:{dow:1,doy:7}}),a.defineLocale("uz",{months:"январ_феврал_март_апрел_май_июн_июл_август_сентябр_октябр_ноябр_декабр".split("_"),monthsShort:"янв_фев_мар_апр_май_июн_июл_авг_сен_окт_ноя_дек".split("_"),weekdays:"Якшанба_Душанба_Сешанба_Чоршанба_Пайшанба_Жума_Шанба".split("_"),weekdaysShort:"Якш_Душ_Сеш_Чор_Пай_Жум_Шан".split("_"),weekdaysMin:"Як_Ду_Се_Чо_Па_Жу_Ша".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"D MMMM YYYY, dddd HH:mm"},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}}),a.defineLocale("vi",{months:"tháng 1_tháng 2_tháng 3_tháng 4_tháng 5_tháng 6_tháng 7_tháng 8_tháng 9_tháng 10_tháng 11_tháng 12".split("_"),monthsShort:"Th01_Th02_Th03_Th04_Th05_Th06_Th07_Th08_Th09_Th10_Th11_Th12".split("_"),monthsParseExact:!0,weekdays:"chủ nhật_thứ hai_thứ ba_thứ tư_thứ năm_thứ sáu_thứ bảy".split("_"),weekdaysShort:"CN_T2_T3_T4_T5_T6_T7".split("_"),weekdaysMin:"CN_T2_T3_T4_T5_T6_T7".split("_"),weekdaysParseExact:!0,meridiemParse:/sa|ch/i,isPM:function(a){return/^ch$/i.test(a)},meridiem:function(a,b,c){return a<12?c?"sa":"SA":c?"ch":"CH"},longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM [năm] YYYY",LLL:"D MMMM [năm] YYYY HH:mm",LLLL:"dddd, D MMMM [năm] YYYY HH:mm",l:"DD/M/YYYY",ll:"D MMM YYYY",lll:"D MMM YYYY HH:mm",llll:"ddd, D MMM YYYY HH:mm"},calendar:{sameDay:"[Hôm nay lúc] LT",nextDay:"[Ngày mai lúc] LT",nextWeek:"dddd [tuần tới lúc] LT",lastDay:"[Hôm qua lúc] LT",lastWeek:"dddd [tuần rồi lúc] LT",sameElse:"L"},relativeTime:{future:"%s tới",past:"%s trước",s:"vài giây",m:"một phút",mm:"%d phút",h:"một giờ",hh:"%d giờ",d:"một ngày",dd:"%d ngày",M:"một tháng",MM:"%d tháng",y:"một năm",yy:"%d năm"},dayOfMonthOrdinalParse:/\d{1,2}/,ordinal:function(a){return a},week:{dow:1,doy:4}}),a.defineLocale("x-pseudo",{months:"J~áñúá~rý_F~ébrú~árý_~Márc~h_Áp~ríl_~Máý_~Júñé~_Júl~ý_Áú~gúst~_Sép~témb~ér_Ó~ctób~ér_Ñ~óvém~bér_~Décé~mbér".split("_"),monthsShort:"J~áñ_~Féb_~Már_~Ápr_~Máý_~Júñ_~Júl_~Áúg_~Sép_~Óct_~Ñóv_~Déc".split("_"),monthsParseExact:!0,weekdays:"S~úñdá~ý_Mó~ñdáý~_Túé~sdáý~_Wéd~ñésd~áý_T~húrs~dáý_~Fríd~áý_S~átúr~dáý".split("_"),weekdaysShort:"S~úñ_~Móñ_~Túé_~Wéd_~Thú_~Frí_~Sát".split("_"),weekdaysMin:"S~ú_Mó~_Tú_~Wé_T~h_Fr~_Sá".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[T~ódá~ý át] LT",nextDay:"[T~ómó~rró~w át] LT",nextWeek:"dddd [át] LT",lastDay:"[Ý~ést~érdá~ý át] LT",lastWeek:"[L~ást] dddd [át] LT",sameElse:"L"},relativeTime:{future:"í~ñ %s",past:"%s á~gó",s:"á ~féw ~sécó~ñds",m:"á ~míñ~úté",mm:"%d m~íñú~tés",h:"á~ñ hó~úr",hh:"%d h~óúrs",d:"á ~dáý",dd:"%d d~áýs",M:"á ~móñ~th",MM:"%d m~óñt~hs",y:"á ~ýéár",yy:"%d ý~éárs"},dayOfMonthOrdinalParse:/\d{1,2}(th|st|nd|rd)/,ordinal:function(a){var b=a%10,c=1===~~(a%100/10)?"th":1===b?"st":2===b?"nd":3===b?"rd":"th";return a+c},week:{dow:1,doy:4}}),a.defineLocale("yo",{months:"Sẹ́rẹ́_Èrèlè_Ẹrẹ̀nà_Ìgbé_Èbibi_Òkùdu_Agẹmo_Ògún_Owewe_Ọ̀wàrà_Bélú_Ọ̀pẹ̀̀".split("_"),monthsShort:"Sẹ́r_Èrl_Ẹrn_Ìgb_Èbi_Òkù_Agẹ_Ògú_Owe_Ọ̀wà_Bél_Ọ̀pẹ̀̀".split("_"),weekdays:"Àìkú_Ajé_Ìsẹ́gun_Ọjọ́rú_Ọjọ́bọ_Ẹtì_Àbámẹ́ta".split("_"),weekdaysShort:"Àìk_Ajé_Ìsẹ́_Ọjr_Ọjb_Ẹtì_Àbá".split("_"),weekdaysMin:"Àì_Aj_Ìs_Ọr_Ọb_Ẹt_Àb".split("_"),longDateFormat:{LT:"h:mm A",LTS:"h:mm:ss A",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY h:mm A",LLLL:"dddd, D MMMM YYYY h:mm A"},calendar:{sameDay:"[Ònì ni] LT",nextDay:"[Ọ̀la ni] LT",nextWeek:"dddd [Ọsẹ̀ tón'bọ] [ni] LT",lastDay:"[Àna ni] LT",lastWeek:"dddd [Ọsẹ̀ tólọ́] [ni] LT",sameElse:"L"},relativeTime:{future:"ní %s",past:"%s kọjá",s:"ìsẹjú aayá die",m:"ìsẹjú kan",mm:"ìsẹjú %d",h:"wákati kan",hh:"wákati %d",d:"ọjọ́ kan",dd:"ọjọ́ %d",M:"osù kan",MM:"osù %d",y:"ọdún kan",yy:"ọdún %d"},dayOfMonthOrdinalParse:/ọjọ́\s\d{1,2}/,ordinal:"ọjọ́ %d",week:{dow:1,doy:4}}),a.defineLocale("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:"HH:mm",LTS:"HH:mm:ss",L:"YYYY年MMMD日",LL:"YYYY年MMMD日",LLL:"YYYY年MMMD日Ah点mm分",LLLL:"YYYY年MMMD日ddddAh点mm分",l:"YYYY年MMMD日",ll:"YYYY年MMMD日",lll:"YYYY年MMMD日 HH:mm",llll:"YYYY年MMMD日dddd HH:mm"},meridiemParse:/凌晨|早上|上午|中午|下午|晚上/,meridiemHour:function(a,b){return 12===a&&(a=0),"凌晨"===b||"早上"===b||"上午"===b?a:"下午"===b||"晚上"===b?a+12:a>=11?a:a+12},meridiem:function(a,b,c){var d=100*a+b;return d<600?"凌晨":d<900?"早上":d<1130?"上午":d<1230?"中午":d<1800?"下午":"晚上"},calendar:{sameDay:"[今天]LT",nextDay:"[明天]LT",nextWeek:"[下]ddddLT",lastDay:"[昨天]LT",lastWeek:"[上]ddddLT",sameElse:"L"},dayOfMonthOrdinalParse:/\d{1,2}(日|月|周)/,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 年"},week:{dow:1,doy:4}}),a.defineLocale("zh-hk",{months:"一月_二月_三月_四月_五月_六月_七月_八月_九月_十月_十一月_十二月".split("_"),monthsShort:"1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月".split("_"),weekdays:"星期日_星期一_星期二_星期三_星期四_星期五_星期六".split("_"),weekdaysShort:"週日_週一_週二_週三_週四_週五_週六".split("_"),weekdaysMin:"日_一_二_三_四_五_六".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"YYYY年MMMD日",LL:"YYYY年MMMD日",LLL:"YYYY年MMMD日 HH:mm",LLLL:"YYYY年MMMD日dddd HH:mm",l:"YYYY年MMMD日",ll:"YYYY年MMMD日",lll:"YYYY年MMMD日 HH:mm",llll:"YYYY年MMMD日dddd HH:mm"},meridiemParse:/凌晨|早上|上午|中午|下午|晚上/,meridiemHour:function(a,b){return 12===a&&(a=0),"凌晨"===b||"早上"===b||"上午"===b?a:"中午"===b?a>=11?a:a+12:"下午"===b||"晚上"===b?a+12:void 0},meridiem:function(a,b,c){var d=100*a+b;return d<600?"凌晨":d<900?"早上":d<1130?"上午":d<1230?"中午":d<1800?"下午":"晚上"},calendar:{sameDay:"[今天]LT",nextDay:"[明天]LT",nextWeek:"[下]ddddLT",lastDay:"[昨天]LT",lastWeek:"[上]ddddLT",sameElse:"L"},dayOfMonthOrdinalParse:/\d{1,2}(日|月|週)/,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 年"}}),a.defineLocale("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:"HH:mm",LTS:"HH:mm:ss",L:"YYYY年MMMD日",LL:"YYYY年MMMD日",LLL:"YYYY年MMMD日 HH:mm",LLLL:"YYYY年MMMD日dddd HH:mm",l:"YYYY年MMMD日",ll:"YYYY年MMMD日",lll:"YYYY年MMMD日 HH:mm",llll:"YYYY年MMMD日dddd HH:mm"},meridiemParse:/凌晨|早上|上午|中午|下午|晚上/,meridiemHour:function(a,b){return 12===a&&(a=0),"凌晨"===b||"早上"===b||"上午"===b?a:"中午"===b?a>=11?a:a+12:"下午"===b||"晚上"===b?a+12:void 0},meridiem:function(a,b,c){var d=100*a+b;return d<600?"凌晨":d<900?"早上":d<1130?"上午":d<1230?"中午":d<1800?"下午":"晚上"},calendar:{sameDay:"[今天]LT",nextDay:"[明天]LT",nextWeek:"[下]ddddLT",lastDay:"[昨天]LT",lastWeek:"[上]ddddLT",sameElse:"L"},dayOfMonthOrdinalParse:/\d{1,2}(日|月|週)/,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 年"}}),a.locale("en"),a}); \ No newline at end of file diff --git a/admin/bower_components/moment/min/moment-with-locales.js b/admin/bower_components/moment/min/moment-with-locales.js deleted file mode 100644 index 67447c2..0000000 --- a/admin/bower_components/moment/min/moment-with-locales.js +++ /dev/null @@ -1,13700 +0,0 @@ -;(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() : - typeof define === 'function' && define.amd ? define(factory) : - global.moment = factory() -}(this, (function () { 'use strict'; - -var hookCallback; - -function hooks () { - return hookCallback.apply(null, arguments); -} - -// This is done to register the method called with moment() -// without creating circular dependencies. -function setHookCallback (callback) { - hookCallback = callback; -} - -function isArray(input) { - return input instanceof Array || Object.prototype.toString.call(input) === '[object Array]'; -} - -function isObject(input) { - // IE8 will treat undefined and null as object if it wasn't for - // input != null - return input != null && Object.prototype.toString.call(input) === '[object Object]'; -} - -function isObjectEmpty(obj) { - var k; - for (k in obj) { - // even if its not own property I'd still call it non-empty - return false; - } - return true; -} - -function isUndefined(input) { - return input === void 0; -} - -function isNumber(input) { - return typeof input === 'number' || Object.prototype.toString.call(input) === '[object Number]'; -} - -function isDate(input) { - return input instanceof Date || Object.prototype.toString.call(input) === '[object Date]'; -} - -function map(arr, fn) { - var res = [], i; - for (i = 0; i < arr.length; ++i) { - res.push(fn(arr[i], i)); - } - return res; -} - -function hasOwnProp(a, b) { - return Object.prototype.hasOwnProperty.call(a, b); -} - -function extend(a, b) { - for (var i in b) { - if (hasOwnProp(b, i)) { - a[i] = b[i]; - } - } - - if (hasOwnProp(b, 'toString')) { - a.toString = b.toString; - } - - if (hasOwnProp(b, 'valueOf')) { - a.valueOf = b.valueOf; - } - - return a; -} - -function createUTC (input, format, locale, strict) { - return createLocalOrUTC(input, format, locale, strict, true).utc(); -} - -function defaultParsingFlags() { - // We need to deep clone this object. - return { - empty : false, - unusedTokens : [], - unusedInput : [], - overflow : -2, - charsLeftOver : 0, - nullInput : false, - invalidMonth : null, - invalidFormat : false, - userInvalidated : false, - iso : false, - parsedDateParts : [], - meridiem : null, - rfc2822 : false, - weekdayMismatch : false - }; -} - -function getParsingFlags(m) { - if (m._pf == null) { - m._pf = defaultParsingFlags(); - } - return m._pf; -} - -var some; -if (Array.prototype.some) { - some = Array.prototype.some; -} else { - some = function (fun) { - var t = Object(this); - var len = t.length >>> 0; - - for (var i = 0; i < len; i++) { - if (i in t && fun.call(this, t[i], i, t)) { - return true; - } - } - - return false; - }; -} - -var some$1 = some; - -function isValid(m) { - if (m._isValid == null) { - var flags = getParsingFlags(m); - var parsedParts = some$1.call(flags.parsedDateParts, function (i) { - return i != null; - }); - var isNowValid = !isNaN(m._d.getTime()) && - flags.overflow < 0 && - !flags.empty && - !flags.invalidMonth && - !flags.invalidWeekday && - !flags.nullInput && - !flags.invalidFormat && - !flags.userInvalidated && - (!flags.meridiem || (flags.meridiem && parsedParts)); - - if (m._strict) { - isNowValid = isNowValid && - flags.charsLeftOver === 0 && - flags.unusedTokens.length === 0 && - flags.bigHour === undefined; - } - - if (Object.isFrozen == null || !Object.isFrozen(m)) { - m._isValid = isNowValid; - } - else { - return isNowValid; - } - } - return m._isValid; -} - -function createInvalid (flags) { - var m = createUTC(NaN); - if (flags != null) { - extend(getParsingFlags(m), flags); - } - else { - getParsingFlags(m).userInvalidated = true; - } - - return m; -} - -// Plugins that add properties should also add the key here (null value), -// so we can properly clone ourselves. -var momentProperties = hooks.momentProperties = []; - -function copyConfig(to, from) { - var i, prop, val; - - if (!isUndefined(from._isAMomentObject)) { - to._isAMomentObject = from._isAMomentObject; - } - if (!isUndefined(from._i)) { - to._i = from._i; - } - if (!isUndefined(from._f)) { - to._f = from._f; - } - if (!isUndefined(from._l)) { - to._l = from._l; - } - if (!isUndefined(from._strict)) { - to._strict = from._strict; - } - if (!isUndefined(from._tzm)) { - to._tzm = from._tzm; - } - if (!isUndefined(from._isUTC)) { - to._isUTC = from._isUTC; - } - if (!isUndefined(from._offset)) { - to._offset = from._offset; - } - if (!isUndefined(from._pf)) { - to._pf = getParsingFlags(from); - } - if (!isUndefined(from._locale)) { - to._locale = from._locale; - } - - if (momentProperties.length > 0) { - for (i = 0; i < momentProperties.length; i++) { - prop = momentProperties[i]; - val = from[prop]; - if (!isUndefined(val)) { - to[prop] = val; - } - } - } - - return to; -} - -var updateInProgress = false; - -// Moment prototype object -function Moment(config) { - copyConfig(this, config); - this._d = new Date(config._d != null ? config._d.getTime() : NaN); - if (!this.isValid()) { - this._d = new Date(NaN); - } - // Prevent infinite loop in case updateOffset creates new moment - // objects. - if (updateInProgress === false) { - updateInProgress = true; - hooks.updateOffset(this); - updateInProgress = false; - } -} - -function isMoment (obj) { - return obj instanceof Moment || (obj != null && obj._isAMomentObject != null); -} - -function absFloor (number) { - if (number < 0) { - // -0 -> 0 - return Math.ceil(number) || 0; - } else { - return Math.floor(number); - } -} - -function toInt(argumentForCoercion) { - var coercedNumber = +argumentForCoercion, - value = 0; - - if (coercedNumber !== 0 && isFinite(coercedNumber)) { - value = absFloor(coercedNumber); - } - - return value; -} - -// compare two arrays, return the number of differences -function compareArrays(array1, array2, dontConvert) { - var len = Math.min(array1.length, array2.length), - lengthDiff = Math.abs(array1.length - array2.length), - diffs = 0, - i; - for (i = 0; i < len; i++) { - if ((dontConvert && array1[i] !== array2[i]) || - (!dontConvert && toInt(array1[i]) !== toInt(array2[i]))) { - diffs++; - } - } - return diffs + lengthDiff; -} - -function warn(msg) { - if (hooks.suppressDeprecationWarnings === false && - (typeof console !== 'undefined') && console.warn) { - console.warn('Deprecation warning: ' + msg); - } -} - -function deprecate(msg, fn) { - var firstTime = true; - - return extend(function () { - if (hooks.deprecationHandler != null) { - hooks.deprecationHandler(null, msg); - } - if (firstTime) { - var args = []; - var arg; - for (var i = 0; i < arguments.length; i++) { - arg = ''; - if (typeof arguments[i] === 'object') { - arg += '\n[' + i + '] '; - for (var key in arguments[0]) { - arg += key + ': ' + arguments[0][key] + ', '; - } - arg = arg.slice(0, -2); // Remove trailing comma and space - } else { - arg = arguments[i]; - } - args.push(arg); - } - warn(msg + '\nArguments: ' + Array.prototype.slice.call(args).join('') + '\n' + (new Error()).stack); - firstTime = false; - } - return fn.apply(this, arguments); - }, fn); -} - -var deprecations = {}; - -function deprecateSimple(name, msg) { - if (hooks.deprecationHandler != null) { - hooks.deprecationHandler(name, msg); - } - if (!deprecations[name]) { - warn(msg); - deprecations[name] = true; - } -} - -hooks.suppressDeprecationWarnings = false; -hooks.deprecationHandler = null; - -function isFunction(input) { - return input instanceof Function || Object.prototype.toString.call(input) === '[object Function]'; -} - -function set (config) { - var prop, i; - for (i in config) { - prop = config[i]; - if (isFunction(prop)) { - this[i] = prop; - } else { - this['_' + i] = prop; - } - } - this._config = config; - // Lenient ordinal parsing accepts just a number in addition to - // number + (possibly) stuff coming from _dayOfMonthOrdinalParse. - // TODO: Remove "ordinalParse" fallback in next major release. - this._dayOfMonthOrdinalParseLenient = new RegExp( - (this._dayOfMonthOrdinalParse.source || this._ordinalParse.source) + - '|' + (/\d{1,2}/).source); -} - -function mergeConfigs(parentConfig, childConfig) { - var res = extend({}, parentConfig), prop; - for (prop in childConfig) { - if (hasOwnProp(childConfig, prop)) { - if (isObject(parentConfig[prop]) && isObject(childConfig[prop])) { - res[prop] = {}; - extend(res[prop], parentConfig[prop]); - extend(res[prop], childConfig[prop]); - } else if (childConfig[prop] != null) { - res[prop] = childConfig[prop]; - } else { - delete res[prop]; - } - } - } - for (prop in parentConfig) { - if (hasOwnProp(parentConfig, prop) && - !hasOwnProp(childConfig, prop) && - isObject(parentConfig[prop])) { - // make sure changes to properties don't modify parent config - res[prop] = extend({}, res[prop]); - } - } - return res; -} - -function Locale(config) { - if (config != null) { - this.set(config); - } -} - -var keys; - -if (Object.keys) { - keys = Object.keys; -} else { - keys = function (obj) { - var i, res = []; - for (i in obj) { - if (hasOwnProp(obj, i)) { - res.push(i); - } - } - return res; - }; -} - -var keys$1 = keys; - -var defaultCalendar = { - sameDay : '[Today at] LT', - nextDay : '[Tomorrow at] LT', - nextWeek : 'dddd [at] LT', - lastDay : '[Yesterday at] LT', - lastWeek : '[Last] dddd [at] LT', - sameElse : 'L' -}; - -function calendar (key, mom, now) { - var output = this._calendar[key] || this._calendar['sameElse']; - return isFunction(output) ? output.call(mom, now) : output; -} - -var defaultLongDateFormat = { - LTS : 'h:mm:ss A', - LT : 'h:mm A', - L : 'MM/DD/YYYY', - LL : 'MMMM D, YYYY', - LLL : 'MMMM D, YYYY h:mm A', - LLLL : 'dddd, MMMM D, YYYY h:mm A' -}; - -function longDateFormat (key) { - var format = this._longDateFormat[key], - formatUpper = this._longDateFormat[key.toUpperCase()]; - - if (format || !formatUpper) { - return format; - } - - this._longDateFormat[key] = formatUpper.replace(/MMMM|MM|DD|dddd/g, function (val) { - return val.slice(1); - }); - - return this._longDateFormat[key]; -} - -var defaultInvalidDate = 'Invalid date'; - -function invalidDate () { - return this._invalidDate; -} - -var defaultOrdinal = '%d'; -var defaultDayOfMonthOrdinalParse = /\d{1,2}/; - -function ordinal (number) { - return this._ordinal.replace('%d', number); -} - -var defaultRelativeTime = { - future : 'in %s', - past : '%s ago', - s : 'a few seconds', - ss : '%d 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' -}; - -function relativeTime (number, withoutSuffix, string, isFuture) { - var output = this._relativeTime[string]; - return (isFunction(output)) ? - output(number, withoutSuffix, string, isFuture) : - output.replace(/%d/i, number); -} - -function pastFuture (diff, output) { - var format = this._relativeTime[diff > 0 ? 'future' : 'past']; - return isFunction(format) ? format(output) : format.replace(/%s/i, output); -} - -var aliases = {}; - -function addUnitAlias (unit, shorthand) { - var lowerCase = unit.toLowerCase(); - aliases[lowerCase] = aliases[lowerCase + 's'] = aliases[shorthand] = unit; -} - -function normalizeUnits(units) { - return typeof units === 'string' ? aliases[units] || aliases[units.toLowerCase()] : undefined; -} - -function normalizeObjectUnits(inputObject) { - var normalizedInput = {}, - normalizedProp, - prop; - - for (prop in inputObject) { - if (hasOwnProp(inputObject, prop)) { - normalizedProp = normalizeUnits(prop); - if (normalizedProp) { - normalizedInput[normalizedProp] = inputObject[prop]; - } - } - } - - return normalizedInput; -} - -var priorities = {}; - -function addUnitPriority(unit, priority) { - priorities[unit] = priority; -} - -function getPrioritizedUnits(unitsObj) { - var units = []; - for (var u in unitsObj) { - units.push({unit: u, priority: priorities[u]}); - } - units.sort(function (a, b) { - return a.priority - b.priority; - }); - return units; -} - -function makeGetSet (unit, keepTime) { - return function (value) { - if (value != null) { - set$1(this, unit, value); - hooks.updateOffset(this, keepTime); - return this; - } else { - return get(this, unit); - } - }; -} - -function get (mom, unit) { - return mom.isValid() ? - mom._d['get' + (mom._isUTC ? 'UTC' : '') + unit]() : NaN; -} - -function set$1 (mom, unit, value) { - if (mom.isValid()) { - mom._d['set' + (mom._isUTC ? 'UTC' : '') + unit](value); - } -} - -// MOMENTS - -function stringGet (units) { - units = normalizeUnits(units); - if (isFunction(this[units])) { - return this[units](); - } - return this; -} - - -function stringSet (units, value) { - if (typeof units === 'object') { - units = normalizeObjectUnits(units); - var prioritized = getPrioritizedUnits(units); - for (var i = 0; i < prioritized.length; i++) { - this[prioritized[i].unit](units[prioritized[i].unit]); - } - } else { - units = normalizeUnits(units); - if (isFunction(this[units])) { - return this[units](value); - } - } - return this; -} - -function zeroFill(number, targetLength, forceSign) { - var absNumber = '' + Math.abs(number), - zerosToFill = targetLength - absNumber.length, - sign = number >= 0; - return (sign ? (forceSign ? '+' : '') : '-') + - Math.pow(10, Math.max(0, zerosToFill)).toString().substr(1) + absNumber; -} - -var formattingTokens = /(\[[^\[]*\])|(\\)?([Hh]mm(ss)?|Mo|MM?M?M?|Do|DDDo|DD?D?D?|ddd?d?|do?|w[o|w]?|W[o|W]?|Qo?|YYYYYY|YYYYY|YYYY|YY|gg(ggg?)?|GG(GGG?)?|e|E|a|A|hh?|HH?|kk?|mm?|ss?|S{1,9}|x|X|zz?|ZZ?|.)/g; - -var localFormattingTokens = /(\[[^\[]*\])|(\\)?(LTS|LT|LL?L?L?|l{1,4})/g; - -var formatFunctions = {}; - -var formatTokenFunctions = {}; - -// token: 'M' -// padded: ['MM', 2] -// ordinal: 'Mo' -// callback: function () { this.month() + 1 } -function addFormatToken (token, padded, ordinal, callback) { - var func = callback; - if (typeof callback === 'string') { - func = function () { - return this[callback](); - }; - } - if (token) { - formatTokenFunctions[token] = func; - } - if (padded) { - formatTokenFunctions[padded[0]] = function () { - return zeroFill(func.apply(this, arguments), padded[1], padded[2]); - }; - } - if (ordinal) { - formatTokenFunctions[ordinal] = function () { - return this.localeData().ordinal(func.apply(this, arguments), token); - }; - } -} - -function removeFormattingTokens(input) { - if (input.match(/\[[\s\S]/)) { - return input.replace(/^\[|\]$/g, ''); - } - return input.replace(/\\/g, ''); -} - -function makeFormatFunction(format) { - var array = format.match(formattingTokens), i, length; - - for (i = 0, length = array.length; i < length; i++) { - if (formatTokenFunctions[array[i]]) { - array[i] = formatTokenFunctions[array[i]]; - } else { - array[i] = removeFormattingTokens(array[i]); - } - } - - return function (mom) { - var output = '', i; - for (i = 0; i < length; i++) { - output += isFunction(array[i]) ? array[i].call(mom, format) : array[i]; - } - return output; - }; -} - -// format date using native date object -function formatMoment(m, format) { - if (!m.isValid()) { - return m.localeData().invalidDate(); - } - - format = expandFormat(format, m.localeData()); - formatFunctions[format] = formatFunctions[format] || makeFormatFunction(format); - - return formatFunctions[format](m); -} - -function expandFormat(format, locale) { - var i = 5; - - function replaceLongDateFormatTokens(input) { - return locale.longDateFormat(input) || input; - } - - localFormattingTokens.lastIndex = 0; - while (i >= 0 && localFormattingTokens.test(format)) { - format = format.replace(localFormattingTokens, replaceLongDateFormatTokens); - localFormattingTokens.lastIndex = 0; - i -= 1; - } - - return format; -} - -var match1 = /\d/; // 0 - 9 -var match2 = /\d\d/; // 00 - 99 -var match3 = /\d{3}/; // 000 - 999 -var match4 = /\d{4}/; // 0000 - 9999 -var match6 = /[+-]?\d{6}/; // -999999 - 999999 -var match1to2 = /\d\d?/; // 0 - 99 -var match3to4 = /\d\d\d\d?/; // 999 - 9999 -var match5to6 = /\d\d\d\d\d\d?/; // 99999 - 999999 -var match1to3 = /\d{1,3}/; // 0 - 999 -var match1to4 = /\d{1,4}/; // 0 - 9999 -var match1to6 = /[+-]?\d{1,6}/; // -999999 - 999999 - -var matchUnsigned = /\d+/; // 0 - inf -var matchSigned = /[+-]?\d+/; // -inf - inf - -var matchOffset = /Z|[+-]\d\d:?\d\d/gi; // +00:00 -00:00 +0000 -0000 or Z -var matchShortOffset = /Z|[+-]\d\d(?::?\d\d)?/gi; // +00 -00 +00:00 -00:00 +0000 -0000 or Z - -var matchTimestamp = /[+-]?\d+(\.\d{1,3})?/; // 123456789 123456789.123 - -// any word (or two) characters or numbers including two/three word month in arabic. -// includes scottish gaelic two word and hyphenated months -var matchWord = /[0-9]*['a-z\u00A0-\u05FF\u0700-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]+|[\u0600-\u06FF\/]+(\s*?[\u0600-\u06FF]+){1,2}/i; - - -var regexes = {}; - -function addRegexToken (token, regex, strictRegex) { - regexes[token] = isFunction(regex) ? regex : function (isStrict, localeData) { - return (isStrict && strictRegex) ? strictRegex : regex; - }; -} - -function getParseRegexForToken (token, config) { - if (!hasOwnProp(regexes, token)) { - return new RegExp(unescapeFormat(token)); - } - - return regexes[token](config._strict, config._locale); -} - -// Code from http://stackoverflow.com/questions/3561493/is-there-a-regexp-escape-function-in-javascript -function unescapeFormat(s) { - return regexEscape(s.replace('\\', '').replace(/\\(\[)|\\(\])|\[([^\]\[]*)\]|\\(.)/g, function (matched, p1, p2, p3, p4) { - return p1 || p2 || p3 || p4; - })); -} - -function regexEscape(s) { - return s.replace(/[-\/\\^$*+?.()|[\]{}]/g, '\\$&'); -} - -var tokens = {}; - -function addParseToken (token, callback) { - var i, func = callback; - if (typeof token === 'string') { - token = [token]; - } - if (isNumber(callback)) { - func = function (input, array) { - array[callback] = toInt(input); - }; - } - for (i = 0; i < token.length; i++) { - tokens[token[i]] = func; - } -} - -function addWeekParseToken (token, callback) { - addParseToken(token, function (input, array, config, token) { - config._w = config._w || {}; - callback(input, config._w, config, token); - }); -} - -function addTimeToArrayFromToken(token, input, config) { - if (input != null && hasOwnProp(tokens, token)) { - tokens[token](input, config._a, config, token); - } -} - -var YEAR = 0; -var MONTH = 1; -var DATE = 2; -var HOUR = 3; -var MINUTE = 4; -var SECOND = 5; -var MILLISECOND = 6; -var WEEK = 7; -var WEEKDAY = 8; - -var indexOf; - -if (Array.prototype.indexOf) { - indexOf = Array.prototype.indexOf; -} else { - indexOf = function (o) { - // I know - var i; - for (i = 0; i < this.length; ++i) { - if (this[i] === o) { - return i; - } - } - return -1; - }; -} - -var indexOf$1 = indexOf; - -function daysInMonth(year, month) { - return new Date(Date.UTC(year, month + 1, 0)).getUTCDate(); -} - -// FORMATTING - -addFormatToken('M', ['MM', 2], 'Mo', function () { - return this.month() + 1; -}); - -addFormatToken('MMM', 0, 0, function (format) { - return this.localeData().monthsShort(this, format); -}); - -addFormatToken('MMMM', 0, 0, function (format) { - return this.localeData().months(this, format); -}); - -// ALIASES - -addUnitAlias('month', 'M'); - -// PRIORITY - -addUnitPriority('month', 8); - -// PARSING - -addRegexToken('M', match1to2); -addRegexToken('MM', match1to2, match2); -addRegexToken('MMM', function (isStrict, locale) { - return locale.monthsShortRegex(isStrict); -}); -addRegexToken('MMMM', function (isStrict, locale) { - return locale.monthsRegex(isStrict); -}); - -addParseToken(['M', 'MM'], function (input, array) { - array[MONTH] = toInt(input) - 1; -}); - -addParseToken(['MMM', 'MMMM'], function (input, array, config, token) { - var month = config._locale.monthsParse(input, token, config._strict); - // if we didn't find a month name, mark the date as invalid. - if (month != null) { - array[MONTH] = month; - } else { - getParsingFlags(config).invalidMonth = input; - } -}); - -// LOCALES - -var MONTHS_IN_FORMAT = /D[oD]?(\[[^\[\]]*\]|\s)+MMMM?/; -var defaultLocaleMonths = 'January_February_March_April_May_June_July_August_September_October_November_December'.split('_'); -function localeMonths (m, format) { - if (!m) { - return isArray(this._months) ? this._months : - this._months['standalone']; - } - return isArray(this._months) ? this._months[m.month()] : - this._months[(this._months.isFormat || MONTHS_IN_FORMAT).test(format) ? 'format' : 'standalone'][m.month()]; -} - -var defaultLocaleMonthsShort = 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'); -function localeMonthsShort (m, format) { - if (!m) { - return isArray(this._monthsShort) ? this._monthsShort : - this._monthsShort['standalone']; - } - return isArray(this._monthsShort) ? this._monthsShort[m.month()] : - this._monthsShort[MONTHS_IN_FORMAT.test(format) ? 'format' : 'standalone'][m.month()]; -} - -function handleStrictParse(monthName, format, strict) { - var i, ii, mom, llc = monthName.toLocaleLowerCase(); - if (!this._monthsParse) { - // this is not used - this._monthsParse = []; - this._longMonthsParse = []; - this._shortMonthsParse = []; - for (i = 0; i < 12; ++i) { - mom = createUTC([2000, i]); - this._shortMonthsParse[i] = this.monthsShort(mom, '').toLocaleLowerCase(); - this._longMonthsParse[i] = this.months(mom, '').toLocaleLowerCase(); - } - } - - if (strict) { - if (format === 'MMM') { - ii = indexOf$1.call(this._shortMonthsParse, llc); - return ii !== -1 ? ii : null; - } else { - ii = indexOf$1.call(this._longMonthsParse, llc); - return ii !== -1 ? ii : null; - } - } else { - if (format === 'MMM') { - ii = indexOf$1.call(this._shortMonthsParse, llc); - if (ii !== -1) { - return ii; - } - ii = indexOf$1.call(this._longMonthsParse, llc); - return ii !== -1 ? ii : null; - } else { - ii = indexOf$1.call(this._longMonthsParse, llc); - if (ii !== -1) { - return ii; - } - ii = indexOf$1.call(this._shortMonthsParse, llc); - return ii !== -1 ? ii : null; - } - } -} - -function localeMonthsParse (monthName, format, strict) { - var i, mom, regex; - - if (this._monthsParseExact) { - return handleStrictParse.call(this, monthName, format, strict); - } - - if (!this._monthsParse) { - this._monthsParse = []; - this._longMonthsParse = []; - this._shortMonthsParse = []; - } - - // TODO: add sorting - // Sorting makes sure if one month (or abbr) is a prefix of another - // see sorting in computeMonthsParse - for (i = 0; i < 12; i++) { - // make the regex if we don't have it already - mom = createUTC([2000, i]); - if (strict && !this._longMonthsParse[i]) { - this._longMonthsParse[i] = new RegExp('^' + this.months(mom, '').replace('.', '') + '$', 'i'); - this._shortMonthsParse[i] = new RegExp('^' + this.monthsShort(mom, '').replace('.', '') + '$', 'i'); - } - if (!strict && !this._monthsParse[i]) { - regex = '^' + this.months(mom, '') + '|^' + this.monthsShort(mom, ''); - this._monthsParse[i] = new RegExp(regex.replace('.', ''), 'i'); - } - // test the regex - if (strict && format === 'MMMM' && this._longMonthsParse[i].test(monthName)) { - return i; - } else if (strict && format === 'MMM' && this._shortMonthsParse[i].test(monthName)) { - return i; - } else if (!strict && this._monthsParse[i].test(monthName)) { - return i; - } - } -} - -// MOMENTS - -function setMonth (mom, value) { - var dayOfMonth; - - if (!mom.isValid()) { - // No op - return mom; - } - - if (typeof value === 'string') { - if (/^\d+$/.test(value)) { - value = toInt(value); - } else { - value = mom.localeData().monthsParse(value); - // TODO: Another silent failure? - if (!isNumber(value)) { - return mom; - } - } - } - - dayOfMonth = Math.min(mom.date(), daysInMonth(mom.year(), value)); - mom._d['set' + (mom._isUTC ? 'UTC' : '') + 'Month'](value, dayOfMonth); - return mom; -} - -function getSetMonth (value) { - if (value != null) { - setMonth(this, value); - hooks.updateOffset(this, true); - return this; - } else { - return get(this, 'Month'); - } -} - -function getDaysInMonth () { - return daysInMonth(this.year(), this.month()); -} - -var defaultMonthsShortRegex = matchWord; -function monthsShortRegex (isStrict) { - if (this._monthsParseExact) { - if (!hasOwnProp(this, '_monthsRegex')) { - computeMonthsParse.call(this); - } - if (isStrict) { - return this._monthsShortStrictRegex; - } else { - return this._monthsShortRegex; - } - } else { - if (!hasOwnProp(this, '_monthsShortRegex')) { - this._monthsShortRegex = defaultMonthsShortRegex; - } - return this._monthsShortStrictRegex && isStrict ? - this._monthsShortStrictRegex : this._monthsShortRegex; - } -} - -var defaultMonthsRegex = matchWord; -function monthsRegex (isStrict) { - if (this._monthsParseExact) { - if (!hasOwnProp(this, '_monthsRegex')) { - computeMonthsParse.call(this); - } - if (isStrict) { - return this._monthsStrictRegex; - } else { - return this._monthsRegex; - } - } else { - if (!hasOwnProp(this, '_monthsRegex')) { - this._monthsRegex = defaultMonthsRegex; - } - return this._monthsStrictRegex && isStrict ? - this._monthsStrictRegex : this._monthsRegex; - } -} - -function computeMonthsParse () { - function cmpLenRev(a, b) { - return b.length - a.length; - } - - var shortPieces = [], longPieces = [], mixedPieces = [], - i, mom; - for (i = 0; i < 12; i++) { - // make the regex if we don't have it already - mom = createUTC([2000, i]); - shortPieces.push(this.monthsShort(mom, '')); - longPieces.push(this.months(mom, '')); - mixedPieces.push(this.months(mom, '')); - mixedPieces.push(this.monthsShort(mom, '')); - } - // Sorting makes sure if one month (or abbr) is a prefix of another it - // will match the longer piece. - shortPieces.sort(cmpLenRev); - longPieces.sort(cmpLenRev); - mixedPieces.sort(cmpLenRev); - for (i = 0; i < 12; i++) { - shortPieces[i] = regexEscape(shortPieces[i]); - longPieces[i] = regexEscape(longPieces[i]); - } - for (i = 0; i < 24; i++) { - mixedPieces[i] = regexEscape(mixedPieces[i]); - } - - this._monthsRegex = new RegExp('^(' + mixedPieces.join('|') + ')', 'i'); - this._monthsShortRegex = this._monthsRegex; - this._monthsStrictRegex = new RegExp('^(' + longPieces.join('|') + ')', 'i'); - this._monthsShortStrictRegex = new RegExp('^(' + shortPieces.join('|') + ')', 'i'); -} - -// FORMATTING - -addFormatToken('Y', 0, 0, function () { - var y = this.year(); - return y <= 9999 ? '' + y : '+' + y; -}); - -addFormatToken(0, ['YY', 2], 0, function () { - return this.year() % 100; -}); - -addFormatToken(0, ['YYYY', 4], 0, 'year'); -addFormatToken(0, ['YYYYY', 5], 0, 'year'); -addFormatToken(0, ['YYYYYY', 6, true], 0, 'year'); - -// ALIASES - -addUnitAlias('year', 'y'); - -// PRIORITIES - -addUnitPriority('year', 1); - -// PARSING - -addRegexToken('Y', matchSigned); -addRegexToken('YY', match1to2, match2); -addRegexToken('YYYY', match1to4, match4); -addRegexToken('YYYYY', match1to6, match6); -addRegexToken('YYYYYY', match1to6, match6); - -addParseToken(['YYYYY', 'YYYYYY'], YEAR); -addParseToken('YYYY', function (input, array) { - array[YEAR] = input.length === 2 ? hooks.parseTwoDigitYear(input) : toInt(input); -}); -addParseToken('YY', function (input, array) { - array[YEAR] = hooks.parseTwoDigitYear(input); -}); -addParseToken('Y', function (input, array) { - array[YEAR] = parseInt(input, 10); -}); - -// HELPERS - -function daysInYear(year) { - return isLeapYear(year) ? 366 : 365; -} - -function isLeapYear(year) { - return (year % 4 === 0 && year % 100 !== 0) || year % 400 === 0; -} - -// HOOKS - -hooks.parseTwoDigitYear = function (input) { - return toInt(input) + (toInt(input) > 68 ? 1900 : 2000); -}; - -// MOMENTS - -var getSetYear = makeGetSet('FullYear', true); - -function getIsLeapYear () { - return isLeapYear(this.year()); -} - -function createDate (y, m, d, h, M, s, ms) { - // can't just apply() to create a date: - // https://stackoverflow.com/q/181348 - var date = new Date(y, m, d, h, M, s, ms); - - // the date constructor remaps years 0-99 to 1900-1999 - if (y < 100 && y >= 0 && isFinite(date.getFullYear())) { - date.setFullYear(y); - } - return date; -} - -function createUTCDate (y) { - var date = new Date(Date.UTC.apply(null, arguments)); - - // the Date.UTC function remaps years 0-99 to 1900-1999 - if (y < 100 && y >= 0 && isFinite(date.getUTCFullYear())) { - date.setUTCFullYear(y); - } - return date; -} - -// start-of-first-week - start-of-year -function firstWeekOffset(year, dow, doy) { - var // first-week day -- which january is always in the first week (4 for iso, 1 for other) - fwd = 7 + dow - doy, - // first-week day local weekday -- which local weekday is fwd - fwdlw = (7 + createUTCDate(year, 0, fwd).getUTCDay() - dow) % 7; - - return -fwdlw + fwd - 1; -} - -// https://en.wikipedia.org/wiki/ISO_week_date#Calculating_a_date_given_the_year.2C_week_number_and_weekday -function dayOfYearFromWeeks(year, week, weekday, dow, doy) { - var localWeekday = (7 + weekday - dow) % 7, - weekOffset = firstWeekOffset(year, dow, doy), - dayOfYear = 1 + 7 * (week - 1) + localWeekday + weekOffset, - resYear, resDayOfYear; - - if (dayOfYear <= 0) { - resYear = year - 1; - resDayOfYear = daysInYear(resYear) + dayOfYear; - } else if (dayOfYear > daysInYear(year)) { - resYear = year + 1; - resDayOfYear = dayOfYear - daysInYear(year); - } else { - resYear = year; - resDayOfYear = dayOfYear; - } - - return { - year: resYear, - dayOfYear: resDayOfYear - }; -} - -function weekOfYear(mom, dow, doy) { - var weekOffset = firstWeekOffset(mom.year(), dow, doy), - week = Math.floor((mom.dayOfYear() - weekOffset - 1) / 7) + 1, - resWeek, resYear; - - if (week < 1) { - resYear = mom.year() - 1; - resWeek = week + weeksInYear(resYear, dow, doy); - } else if (week > weeksInYear(mom.year(), dow, doy)) { - resWeek = week - weeksInYear(mom.year(), dow, doy); - resYear = mom.year() + 1; - } else { - resYear = mom.year(); - resWeek = week; - } - - return { - week: resWeek, - year: resYear - }; -} - -function weeksInYear(year, dow, doy) { - var weekOffset = firstWeekOffset(year, dow, doy), - weekOffsetNext = firstWeekOffset(year + 1, dow, doy); - return (daysInYear(year) - weekOffset + weekOffsetNext) / 7; -} - -// FORMATTING - -addFormatToken('w', ['ww', 2], 'wo', 'week'); -addFormatToken('W', ['WW', 2], 'Wo', 'isoWeek'); - -// ALIASES - -addUnitAlias('week', 'w'); -addUnitAlias('isoWeek', 'W'); - -// PRIORITIES - -addUnitPriority('week', 5); -addUnitPriority('isoWeek', 5); - -// PARSING - -addRegexToken('w', match1to2); -addRegexToken('ww', match1to2, match2); -addRegexToken('W', match1to2); -addRegexToken('WW', match1to2, match2); - -addWeekParseToken(['w', 'ww', 'W', 'WW'], function (input, week, config, token) { - week[token.substr(0, 1)] = toInt(input); -}); - -// HELPERS - -// LOCALES - -function localeWeek (mom) { - return weekOfYear(mom, this._week.dow, this._week.doy).week; -} - -var defaultLocaleWeek = { - dow : 0, // Sunday is the first day of the week. - doy : 6 // The week that contains Jan 1st is the first week of the year. -}; - -function localeFirstDayOfWeek () { - return this._week.dow; -} - -function localeFirstDayOfYear () { - return this._week.doy; -} - -// MOMENTS - -function getSetWeek (input) { - var week = this.localeData().week(this); - return input == null ? week : this.add((input - week) * 7, 'd'); -} - -function getSetISOWeek (input) { - var week = weekOfYear(this, 1, 4).week; - return input == null ? week : this.add((input - week) * 7, 'd'); -} - -// FORMATTING - -addFormatToken('d', 0, 'do', 'day'); - -addFormatToken('dd', 0, 0, function (format) { - return this.localeData().weekdaysMin(this, format); -}); - -addFormatToken('ddd', 0, 0, function (format) { - return this.localeData().weekdaysShort(this, format); -}); - -addFormatToken('dddd', 0, 0, function (format) { - return this.localeData().weekdays(this, format); -}); - -addFormatToken('e', 0, 0, 'weekday'); -addFormatToken('E', 0, 0, 'isoWeekday'); - -// ALIASES - -addUnitAlias('day', 'd'); -addUnitAlias('weekday', 'e'); -addUnitAlias('isoWeekday', 'E'); - -// PRIORITY -addUnitPriority('day', 11); -addUnitPriority('weekday', 11); -addUnitPriority('isoWeekday', 11); - -// PARSING - -addRegexToken('d', match1to2); -addRegexToken('e', match1to2); -addRegexToken('E', match1to2); -addRegexToken('dd', function (isStrict, locale) { - return locale.weekdaysMinRegex(isStrict); -}); -addRegexToken('ddd', function (isStrict, locale) { - return locale.weekdaysShortRegex(isStrict); -}); -addRegexToken('dddd', function (isStrict, locale) { - return locale.weekdaysRegex(isStrict); -}); - -addWeekParseToken(['dd', 'ddd', 'dddd'], function (input, week, config, token) { - var weekday = config._locale.weekdaysParse(input, token, config._strict); - // if we didn't get a weekday name, mark the date as invalid - if (weekday != null) { - week.d = weekday; - } else { - getParsingFlags(config).invalidWeekday = input; - } -}); - -addWeekParseToken(['d', 'e', 'E'], function (input, week, config, token) { - week[token] = toInt(input); -}); - -// HELPERS - -function parseWeekday(input, locale) { - if (typeof input !== 'string') { - return input; - } - - if (!isNaN(input)) { - return parseInt(input, 10); - } - - input = locale.weekdaysParse(input); - if (typeof input === 'number') { - return input; - } - - return null; -} - -function parseIsoWeekday(input, locale) { - if (typeof input === 'string') { - return locale.weekdaysParse(input) % 7 || 7; - } - return isNaN(input) ? null : input; -} - -// LOCALES - -var defaultLocaleWeekdays = 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split('_'); -function localeWeekdays (m, format) { - if (!m) { - return isArray(this._weekdays) ? this._weekdays : - this._weekdays['standalone']; - } - return isArray(this._weekdays) ? this._weekdays[m.day()] : - this._weekdays[this._weekdays.isFormat.test(format) ? 'format' : 'standalone'][m.day()]; -} - -var defaultLocaleWeekdaysShort = 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'); -function localeWeekdaysShort (m) { - return (m) ? this._weekdaysShort[m.day()] : this._weekdaysShort; -} - -var defaultLocaleWeekdaysMin = 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'); -function localeWeekdaysMin (m) { - return (m) ? this._weekdaysMin[m.day()] : this._weekdaysMin; -} - -function handleStrictParse$1(weekdayName, format, strict) { - var i, ii, mom, llc = weekdayName.toLocaleLowerCase(); - if (!this._weekdaysParse) { - this._weekdaysParse = []; - this._shortWeekdaysParse = []; - this._minWeekdaysParse = []; - - for (i = 0; i < 7; ++i) { - mom = createUTC([2000, 1]).day(i); - this._minWeekdaysParse[i] = this.weekdaysMin(mom, '').toLocaleLowerCase(); - this._shortWeekdaysParse[i] = this.weekdaysShort(mom, '').toLocaleLowerCase(); - this._weekdaysParse[i] = this.weekdays(mom, '').toLocaleLowerCase(); - } - } - - if (strict) { - if (format === 'dddd') { - ii = indexOf$1.call(this._weekdaysParse, llc); - return ii !== -1 ? ii : null; - } else if (format === 'ddd') { - ii = indexOf$1.call(this._shortWeekdaysParse, llc); - return ii !== -1 ? ii : null; - } else { - ii = indexOf$1.call(this._minWeekdaysParse, llc); - return ii !== -1 ? ii : null; - } - } else { - if (format === 'dddd') { - ii = indexOf$1.call(this._weekdaysParse, llc); - if (ii !== -1) { - return ii; - } - ii = indexOf$1.call(this._shortWeekdaysParse, llc); - if (ii !== -1) { - return ii; - } - ii = indexOf$1.call(this._minWeekdaysParse, llc); - return ii !== -1 ? ii : null; - } else if (format === 'ddd') { - ii = indexOf$1.call(this._shortWeekdaysParse, llc); - if (ii !== -1) { - return ii; - } - ii = indexOf$1.call(this._weekdaysParse, llc); - if (ii !== -1) { - return ii; - } - ii = indexOf$1.call(this._minWeekdaysParse, llc); - return ii !== -1 ? ii : null; - } else { - ii = indexOf$1.call(this._minWeekdaysParse, llc); - if (ii !== -1) { - return ii; - } - ii = indexOf$1.call(this._weekdaysParse, llc); - if (ii !== -1) { - return ii; - } - ii = indexOf$1.call(this._shortWeekdaysParse, llc); - return ii !== -1 ? ii : null; - } - } -} - -function localeWeekdaysParse (weekdayName, format, strict) { - var i, mom, regex; - - if (this._weekdaysParseExact) { - return handleStrictParse$1.call(this, weekdayName, format, strict); - } - - if (!this._weekdaysParse) { - this._weekdaysParse = []; - this._minWeekdaysParse = []; - this._shortWeekdaysParse = []; - this._fullWeekdaysParse = []; - } - - for (i = 0; i < 7; i++) { - // make the regex if we don't have it already - - mom = createUTC([2000, 1]).day(i); - if (strict && !this._fullWeekdaysParse[i]) { - this._fullWeekdaysParse[i] = new RegExp('^' + this.weekdays(mom, '').replace('.', '\.?') + '$', 'i'); - this._shortWeekdaysParse[i] = new RegExp('^' + this.weekdaysShort(mom, '').replace('.', '\.?') + '$', 'i'); - this._minWeekdaysParse[i] = new RegExp('^' + this.weekdaysMin(mom, '').replace('.', '\.?') + '$', 'i'); - } - if (!this._weekdaysParse[i]) { - regex = '^' + this.weekdays(mom, '') + '|^' + this.weekdaysShort(mom, '') + '|^' + this.weekdaysMin(mom, ''); - this._weekdaysParse[i] = new RegExp(regex.replace('.', ''), 'i'); - } - // test the regex - if (strict && format === 'dddd' && this._fullWeekdaysParse[i].test(weekdayName)) { - return i; - } else if (strict && format === 'ddd' && this._shortWeekdaysParse[i].test(weekdayName)) { - return i; - } else if (strict && format === 'dd' && this._minWeekdaysParse[i].test(weekdayName)) { - return i; - } else if (!strict && this._weekdaysParse[i].test(weekdayName)) { - return i; - } - } -} - -// MOMENTS - -function getSetDayOfWeek (input) { - if (!this.isValid()) { - return input != null ? this : NaN; - } - var day = this._isUTC ? this._d.getUTCDay() : this._d.getDay(); - if (input != null) { - input = parseWeekday(input, this.localeData()); - return this.add(input - day, 'd'); - } else { - return day; - } -} - -function getSetLocaleDayOfWeek (input) { - if (!this.isValid()) { - return input != null ? this : NaN; - } - var weekday = (this.day() + 7 - this.localeData()._week.dow) % 7; - return input == null ? weekday : this.add(input - weekday, 'd'); -} - -function getSetISODayOfWeek (input) { - if (!this.isValid()) { - return input != null ? this : NaN; - } - - // behaves the same as moment#day except - // as a getter, returns 7 instead of 0 (1-7 range instead of 0-6) - // as a setter, sunday should belong to the previous week. - - if (input != null) { - var weekday = parseIsoWeekday(input, this.localeData()); - return this.day(this.day() % 7 ? weekday : weekday - 7); - } else { - return this.day() || 7; - } -} - -var defaultWeekdaysRegex = matchWord; -function weekdaysRegex (isStrict) { - if (this._weekdaysParseExact) { - if (!hasOwnProp(this, '_weekdaysRegex')) { - computeWeekdaysParse.call(this); - } - if (isStrict) { - return this._weekdaysStrictRegex; - } else { - return this._weekdaysRegex; - } - } else { - if (!hasOwnProp(this, '_weekdaysRegex')) { - this._weekdaysRegex = defaultWeekdaysRegex; - } - return this._weekdaysStrictRegex && isStrict ? - this._weekdaysStrictRegex : this._weekdaysRegex; - } -} - -var defaultWeekdaysShortRegex = matchWord; -function weekdaysShortRegex (isStrict) { - if (this._weekdaysParseExact) { - if (!hasOwnProp(this, '_weekdaysRegex')) { - computeWeekdaysParse.call(this); - } - if (isStrict) { - return this._weekdaysShortStrictRegex; - } else { - return this._weekdaysShortRegex; - } - } else { - if (!hasOwnProp(this, '_weekdaysShortRegex')) { - this._weekdaysShortRegex = defaultWeekdaysShortRegex; - } - return this._weekdaysShortStrictRegex && isStrict ? - this._weekdaysShortStrictRegex : this._weekdaysShortRegex; - } -} - -var defaultWeekdaysMinRegex = matchWord; -function weekdaysMinRegex (isStrict) { - if (this._weekdaysParseExact) { - if (!hasOwnProp(this, '_weekdaysRegex')) { - computeWeekdaysParse.call(this); - } - if (isStrict) { - return this._weekdaysMinStrictRegex; - } else { - return this._weekdaysMinRegex; - } - } else { - if (!hasOwnProp(this, '_weekdaysMinRegex')) { - this._weekdaysMinRegex = defaultWeekdaysMinRegex; - } - return this._weekdaysMinStrictRegex && isStrict ? - this._weekdaysMinStrictRegex : this._weekdaysMinRegex; - } -} - - -function computeWeekdaysParse () { - function cmpLenRev(a, b) { - return b.length - a.length; - } - - var minPieces = [], shortPieces = [], longPieces = [], mixedPieces = [], - i, mom, minp, shortp, longp; - for (i = 0; i < 7; i++) { - // make the regex if we don't have it already - mom = createUTC([2000, 1]).day(i); - minp = this.weekdaysMin(mom, ''); - shortp = this.weekdaysShort(mom, ''); - longp = this.weekdays(mom, ''); - minPieces.push(minp); - shortPieces.push(shortp); - longPieces.push(longp); - mixedPieces.push(minp); - mixedPieces.push(shortp); - mixedPieces.push(longp); - } - // Sorting makes sure if one weekday (or abbr) is a prefix of another it - // will match the longer piece. - minPieces.sort(cmpLenRev); - shortPieces.sort(cmpLenRev); - longPieces.sort(cmpLenRev); - mixedPieces.sort(cmpLenRev); - for (i = 0; i < 7; i++) { - shortPieces[i] = regexEscape(shortPieces[i]); - longPieces[i] = regexEscape(longPieces[i]); - mixedPieces[i] = regexEscape(mixedPieces[i]); - } - - this._weekdaysRegex = new RegExp('^(' + mixedPieces.join('|') + ')', 'i'); - this._weekdaysShortRegex = this._weekdaysRegex; - this._weekdaysMinRegex = this._weekdaysRegex; - - this._weekdaysStrictRegex = new RegExp('^(' + longPieces.join('|') + ')', 'i'); - this._weekdaysShortStrictRegex = new RegExp('^(' + shortPieces.join('|') + ')', 'i'); - this._weekdaysMinStrictRegex = new RegExp('^(' + minPieces.join('|') + ')', 'i'); -} - -// FORMATTING - -function hFormat() { - return this.hours() % 12 || 12; -} - -function kFormat() { - return this.hours() || 24; -} - -addFormatToken('H', ['HH', 2], 0, 'hour'); -addFormatToken('h', ['hh', 2], 0, hFormat); -addFormatToken('k', ['kk', 2], 0, kFormat); - -addFormatToken('hmm', 0, 0, function () { - return '' + hFormat.apply(this) + zeroFill(this.minutes(), 2); -}); - -addFormatToken('hmmss', 0, 0, function () { - return '' + hFormat.apply(this) + zeroFill(this.minutes(), 2) + - zeroFill(this.seconds(), 2); -}); - -addFormatToken('Hmm', 0, 0, function () { - return '' + this.hours() + zeroFill(this.minutes(), 2); -}); - -addFormatToken('Hmmss', 0, 0, function () { - return '' + this.hours() + zeroFill(this.minutes(), 2) + - zeroFill(this.seconds(), 2); -}); - -function meridiem (token, lowercase) { - addFormatToken(token, 0, 0, function () { - return this.localeData().meridiem(this.hours(), this.minutes(), lowercase); - }); -} - -meridiem('a', true); -meridiem('A', false); - -// ALIASES - -addUnitAlias('hour', 'h'); - -// PRIORITY -addUnitPriority('hour', 13); - -// PARSING - -function matchMeridiem (isStrict, locale) { - return locale._meridiemParse; -} - -addRegexToken('a', matchMeridiem); -addRegexToken('A', matchMeridiem); -addRegexToken('H', match1to2); -addRegexToken('h', match1to2); -addRegexToken('k', match1to2); -addRegexToken('HH', match1to2, match2); -addRegexToken('hh', match1to2, match2); -addRegexToken('kk', match1to2, match2); - -addRegexToken('hmm', match3to4); -addRegexToken('hmmss', match5to6); -addRegexToken('Hmm', match3to4); -addRegexToken('Hmmss', match5to6); - -addParseToken(['H', 'HH'], HOUR); -addParseToken(['k', 'kk'], function (input, array, config) { - var kInput = toInt(input); - array[HOUR] = kInput === 24 ? 0 : kInput; -}); -addParseToken(['a', 'A'], function (input, array, config) { - config._isPm = config._locale.isPM(input); - config._meridiem = input; -}); -addParseToken(['h', 'hh'], function (input, array, config) { - array[HOUR] = toInt(input); - getParsingFlags(config).bigHour = true; -}); -addParseToken('hmm', function (input, array, config) { - var pos = input.length - 2; - array[HOUR] = toInt(input.substr(0, pos)); - array[MINUTE] = toInt(input.substr(pos)); - getParsingFlags(config).bigHour = true; -}); -addParseToken('hmmss', function (input, array, config) { - var pos1 = input.length - 4; - var pos2 = input.length - 2; - array[HOUR] = toInt(input.substr(0, pos1)); - array[MINUTE] = toInt(input.substr(pos1, 2)); - array[SECOND] = toInt(input.substr(pos2)); - getParsingFlags(config).bigHour = true; -}); -addParseToken('Hmm', function (input, array, config) { - var pos = input.length - 2; - array[HOUR] = toInt(input.substr(0, pos)); - array[MINUTE] = toInt(input.substr(pos)); -}); -addParseToken('Hmmss', function (input, array, config) { - var pos1 = input.length - 4; - var pos2 = input.length - 2; - array[HOUR] = toInt(input.substr(0, pos1)); - array[MINUTE] = toInt(input.substr(pos1, 2)); - array[SECOND] = toInt(input.substr(pos2)); -}); - -// LOCALES - -function localeIsPM (input) { - // IE8 Quirks Mode & IE7 Standards Mode do not allow accessing strings like arrays - // Using charAt should be more compatible. - return ((input + '').toLowerCase().charAt(0) === 'p'); -} - -var defaultLocaleMeridiemParse = /[ap]\.?m?\.?/i; -function localeMeridiem (hours, minutes, isLower) { - if (hours > 11) { - return isLower ? 'pm' : 'PM'; - } else { - return isLower ? 'am' : 'AM'; - } -} - - -// MOMENTS - -// Setting the hour should keep the time, because the user explicitly -// specified which hour he wants. So trying to maintain the same hour (in -// a new timezone) makes sense. Adding/subtracting hours does not follow -// this rule. -var getSetHour = makeGetSet('Hours', true); - -// months -// week -// weekdays -// meridiem -var baseConfig = { - calendar: defaultCalendar, - longDateFormat: defaultLongDateFormat, - invalidDate: defaultInvalidDate, - ordinal: defaultOrdinal, - dayOfMonthOrdinalParse: defaultDayOfMonthOrdinalParse, - relativeTime: defaultRelativeTime, - - months: defaultLocaleMonths, - monthsShort: defaultLocaleMonthsShort, - - week: defaultLocaleWeek, - - weekdays: defaultLocaleWeekdays, - weekdaysMin: defaultLocaleWeekdaysMin, - weekdaysShort: defaultLocaleWeekdaysShort, - - meridiemParse: defaultLocaleMeridiemParse -}; - -// internal storage for locale config files -var locales = {}; -var localeFamilies = {}; -var globalLocale; - -function normalizeLocale(key) { - return key ? key.toLowerCase().replace('_', '-') : key; -} - -// pick the locale from the array -// try ['en-au', 'en-gb'] as 'en-au', 'en-gb', 'en', as in move through the list trying each -// substring from most specific to least, but move to the next array item if it's a more specific variant than the current root -function chooseLocale(names) { - var i = 0, j, next, locale, split; - - while (i < names.length) { - split = normalizeLocale(names[i]).split('-'); - j = split.length; - next = normalizeLocale(names[i + 1]); - next = next ? next.split('-') : null; - while (j > 0) { - locale = loadLocale(split.slice(0, j).join('-')); - if (locale) { - return locale; - } - if (next && next.length >= j && compareArrays(split, next, true) >= j - 1) { - //the next array item is better than a shallower substring of this one - break; - } - j--; - } - i++; - } - return null; -} - -function loadLocale(name) { - var oldLocale = null; - // TODO: Find a better way to register and load all the locales in Node - if (!locales[name] && (typeof module !== 'undefined') && - module && module.exports) { - try { - oldLocale = globalLocale._abbr; - require('./locale/' + name); - // because defineLocale currently also sets the global locale, we - // want to undo that for lazy loaded locales - getSetGlobalLocale(oldLocale); - } catch (e) { } - } - return locales[name]; -} - -// This function will load locale and then set the global locale. If -// no arguments are passed in, it will simply return the current global -// locale key. -function getSetGlobalLocale (key, values) { - var data; - if (key) { - if (isUndefined(values)) { - data = getLocale(key); - } - else { - data = defineLocale(key, values); - } - - if (data) { - // moment.duration._locale = moment._locale = data; - globalLocale = data; - } - } - - return globalLocale._abbr; -} - -function defineLocale (name, config) { - if (config !== null) { - var parentConfig = baseConfig; - config.abbr = name; - if (locales[name] != null) { - deprecateSimple('defineLocaleOverride', - 'use moment.updateLocale(localeName, config) to change ' + - 'an existing locale. moment.defineLocale(localeName, ' + - 'config) should only be used for creating a new locale ' + - 'See http://momentjs.com/guides/#/warnings/define-locale/ for more info.'); - parentConfig = locales[name]._config; - } else if (config.parentLocale != null) { - if (locales[config.parentLocale] != null) { - parentConfig = locales[config.parentLocale]._config; - } else { - if (!localeFamilies[config.parentLocale]) { - localeFamilies[config.parentLocale] = []; - } - localeFamilies[config.parentLocale].push({ - name: name, - config: config - }); - return null; - } - } - locales[name] = new Locale(mergeConfigs(parentConfig, config)); - - if (localeFamilies[name]) { - localeFamilies[name].forEach(function (x) { - defineLocale(x.name, x.config); - }); - } - - // backwards compat for now: also set the locale - // make sure we set the locale AFTER all child locales have been - // created, so we won't end up with the child locale set. - getSetGlobalLocale(name); - - - return locales[name]; - } else { - // useful for testing - delete locales[name]; - return null; - } -} - -function updateLocale(name, config) { - if (config != null) { - var locale, parentConfig = baseConfig; - // MERGE - if (locales[name] != null) { - parentConfig = locales[name]._config; - } - config = mergeConfigs(parentConfig, config); - locale = new Locale(config); - locale.parentLocale = locales[name]; - locales[name] = locale; - - // backwards compat for now: also set the locale - getSetGlobalLocale(name); - } else { - // pass null for config to unupdate, useful for tests - if (locales[name] != null) { - if (locales[name].parentLocale != null) { - locales[name] = locales[name].parentLocale; - } else if (locales[name] != null) { - delete locales[name]; - } - } - } - return locales[name]; -} - -// returns locale data -function getLocale (key) { - var locale; - - if (key && key._locale && key._locale._abbr) { - key = key._locale._abbr; - } - - if (!key) { - return globalLocale; - } - - if (!isArray(key)) { - //short-circuit everything else - locale = loadLocale(key); - if (locale) { - return locale; - } - key = [key]; - } - - return chooseLocale(key); -} - -function listLocales() { - return keys$1(locales); -} - -function checkOverflow (m) { - var overflow; - var a = m._a; - - if (a && getParsingFlags(m).overflow === -2) { - overflow = - a[MONTH] < 0 || a[MONTH] > 11 ? MONTH : - a[DATE] < 1 || a[DATE] > daysInMonth(a[YEAR], a[MONTH]) ? DATE : - a[HOUR] < 0 || a[HOUR] > 24 || (a[HOUR] === 24 && (a[MINUTE] !== 0 || a[SECOND] !== 0 || a[MILLISECOND] !== 0)) ? HOUR : - a[MINUTE] < 0 || a[MINUTE] > 59 ? MINUTE : - a[SECOND] < 0 || a[SECOND] > 59 ? SECOND : - a[MILLISECOND] < 0 || a[MILLISECOND] > 999 ? MILLISECOND : - -1; - - if (getParsingFlags(m)._overflowDayOfYear && (overflow < YEAR || overflow > DATE)) { - overflow = DATE; - } - if (getParsingFlags(m)._overflowWeeks && overflow === -1) { - overflow = WEEK; - } - if (getParsingFlags(m)._overflowWeekday && overflow === -1) { - overflow = WEEKDAY; - } - - getParsingFlags(m).overflow = overflow; - } - - return m; -} - -// iso 8601 regex -// 0000-00-00 0000-W00 or 0000-W00-0 + T + 00 or 00:00 or 00:00:00 or 00:00:00.000 + +00:00 or +0000 or +00) -var extendedIsoRegex = /^\s*((?:[+-]\d{6}|\d{4})-(?:\d\d-\d\d|W\d\d-\d|W\d\d|\d\d\d|\d\d))(?:(T| )(\d\d(?::\d\d(?::\d\d(?:[.,]\d+)?)?)?)([\+\-]\d\d(?::?\d\d)?|\s*Z)?)?$/; -var basicIsoRegex = /^\s*((?:[+-]\d{6}|\d{4})(?:\d\d\d\d|W\d\d\d|W\d\d|\d\d\d|\d\d))(?:(T| )(\d\d(?:\d\d(?:\d\d(?:[.,]\d+)?)?)?)([\+\-]\d\d(?::?\d\d)?|\s*Z)?)?$/; - -var tzRegex = /Z|[+-]\d\d(?::?\d\d)?/; - -var isoDates = [ - ['YYYYYY-MM-DD', /[+-]\d{6}-\d\d-\d\d/], - ['YYYY-MM-DD', /\d{4}-\d\d-\d\d/], - ['GGGG-[W]WW-E', /\d{4}-W\d\d-\d/], - ['GGGG-[W]WW', /\d{4}-W\d\d/, false], - ['YYYY-DDD', /\d{4}-\d{3}/], - ['YYYY-MM', /\d{4}-\d\d/, false], - ['YYYYYYMMDD', /[+-]\d{10}/], - ['YYYYMMDD', /\d{8}/], - // YYYYMM is NOT allowed by the standard - ['GGGG[W]WWE', /\d{4}W\d{3}/], - ['GGGG[W]WW', /\d{4}W\d{2}/, false], - ['YYYYDDD', /\d{7}/] -]; - -// iso time formats and regexes -var isoTimes = [ - ['HH:mm:ss.SSSS', /\d\d:\d\d:\d\d\.\d+/], - ['HH:mm:ss,SSSS', /\d\d:\d\d:\d\d,\d+/], - ['HH:mm:ss', /\d\d:\d\d:\d\d/], - ['HH:mm', /\d\d:\d\d/], - ['HHmmss.SSSS', /\d\d\d\d\d\d\.\d+/], - ['HHmmss,SSSS', /\d\d\d\d\d\d,\d+/], - ['HHmmss', /\d\d\d\d\d\d/], - ['HHmm', /\d\d\d\d/], - ['HH', /\d\d/] -]; - -var aspNetJsonRegex = /^\/?Date\((\-?\d+)/i; - -// date from iso format -function configFromISO(config) { - var i, l, - string = config._i, - match = extendedIsoRegex.exec(string) || basicIsoRegex.exec(string), - allowTime, dateFormat, timeFormat, tzFormat; - - if (match) { - getParsingFlags(config).iso = true; - - for (i = 0, l = isoDates.length; i < l; i++) { - if (isoDates[i][1].exec(match[1])) { - dateFormat = isoDates[i][0]; - allowTime = isoDates[i][2] !== false; - break; - } - } - if (dateFormat == null) { - config._isValid = false; - return; - } - if (match[3]) { - for (i = 0, l = isoTimes.length; i < l; i++) { - if (isoTimes[i][1].exec(match[3])) { - // match[2] should be 'T' or space - timeFormat = (match[2] || ' ') + isoTimes[i][0]; - break; - } - } - if (timeFormat == null) { - config._isValid = false; - return; - } - } - if (!allowTime && timeFormat != null) { - config._isValid = false; - return; - } - if (match[4]) { - if (tzRegex.exec(match[4])) { - tzFormat = 'Z'; - } else { - config._isValid = false; - return; - } - } - config._f = dateFormat + (timeFormat || '') + (tzFormat || ''); - configFromStringAndFormat(config); - } else { - config._isValid = false; - } -} - -// RFC 2822 regex: For details see https://tools.ietf.org/html/rfc2822#section-3.3 -var basicRfcRegex = /^((?:Mon|Tue|Wed|Thu|Fri|Sat|Sun),?\s)?(\d?\d\s(?:Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\s(?:\d\d)?\d\d\s)(\d\d:\d\d)(\:\d\d)?(\s(?:UT|GMT|[ECMP][SD]T|[A-IK-Za-ik-z]|[+-]\d{4}))$/; - -// date and time from ref 2822 format -function configFromRFC2822(config) { - var string, match, dayFormat, - dateFormat, timeFormat, tzFormat; - var timezones = { - ' GMT': ' +0000', - ' EDT': ' -0400', - ' EST': ' -0500', - ' CDT': ' -0500', - ' CST': ' -0600', - ' MDT': ' -0600', - ' MST': ' -0700', - ' PDT': ' -0700', - ' PST': ' -0800' - }; - var military = 'YXWVUTSRQPONZABCDEFGHIKLM'; - var timezone, timezoneIndex; - - string = config._i - .replace(/\([^\)]*\)|[\n\t]/g, ' ') // Remove comments and folding whitespace - .replace(/(\s\s+)/g, ' ') // Replace multiple-spaces with a single space - .replace(/^\s|\s$/g, ''); // Remove leading and trailing spaces - match = basicRfcRegex.exec(string); - - if (match) { - dayFormat = match[1] ? 'ddd' + ((match[1].length === 5) ? ', ' : ' ') : ''; - dateFormat = 'D MMM ' + ((match[2].length > 10) ? 'YYYY ' : 'YY '); - timeFormat = 'HH:mm' + (match[4] ? ':ss' : ''); - - // TODO: Replace the vanilla JS Date object with an indepentent day-of-week check. - if (match[1]) { // day of week given - var momentDate = new Date(match[2]); - var momentDay = ['Sun','Mon','Tue','Wed','Thu','Fri','Sat'][momentDate.getDay()]; - - if (match[1].substr(0,3) !== momentDay) { - getParsingFlags(config).weekdayMismatch = true; - config._isValid = false; - return; - } - } - - switch (match[5].length) { - case 2: // military - if (timezoneIndex === 0) { - timezone = ' +0000'; - } else { - timezoneIndex = military.indexOf(match[5][1].toUpperCase()) - 12; - timezone = ((timezoneIndex < 0) ? ' -' : ' +') + - (('' + timezoneIndex).replace(/^-?/, '0')).match(/..$/)[0] + '00'; - } - break; - case 4: // Zone - timezone = timezones[match[5]]; - break; - default: // UT or +/-9999 - timezone = timezones[' GMT']; - } - match[5] = timezone; - config._i = match.splice(1).join(''); - tzFormat = ' ZZ'; - config._f = dayFormat + dateFormat + timeFormat + tzFormat; - configFromStringAndFormat(config); - getParsingFlags(config).rfc2822 = true; - } else { - config._isValid = false; - } -} - -// date from iso format or fallback -function configFromString(config) { - var matched = aspNetJsonRegex.exec(config._i); - - if (matched !== null) { - config._d = new Date(+matched[1]); - return; - } - - configFromISO(config); - if (config._isValid === false) { - delete config._isValid; - } else { - return; - } - - configFromRFC2822(config); - if (config._isValid === false) { - delete config._isValid; - } else { - return; - } - - // Final attempt, use Input Fallback - hooks.createFromInputFallback(config); -} - -hooks.createFromInputFallback = deprecate( - 'value provided is not in a recognized RFC2822 or ISO format. moment construction falls back to js Date(), ' + - 'which is not reliable across all browsers and versions. Non RFC2822/ISO date formats are ' + - 'discouraged and will be removed in an upcoming major release. Please refer to ' + - 'http://momentjs.com/guides/#/warnings/js-date/ for more info.', - function (config) { - config._d = new Date(config._i + (config._useUTC ? ' UTC' : '')); - } -); - -// Pick the first defined of two or three arguments. -function defaults(a, b, c) { - if (a != null) { - return a; - } - if (b != null) { - return b; - } - return c; -} - -function currentDateArray(config) { - // hooks is actually the exported moment object - var nowValue = new Date(hooks.now()); - if (config._useUTC) { - return [nowValue.getUTCFullYear(), nowValue.getUTCMonth(), nowValue.getUTCDate()]; - } - return [nowValue.getFullYear(), nowValue.getMonth(), nowValue.getDate()]; -} - -// convert an array to a date. -// the array should mirror the parameters below -// note: all values past the year are optional and will default to the lowest possible value. -// [year, month, day , hour, minute, second, millisecond] -function configFromArray (config) { - var i, date, input = [], currentDate, yearToUse; - - if (config._d) { - return; - } - - currentDate = currentDateArray(config); - - //compute day of the year from weeks and weekdays - if (config._w && config._a[DATE] == null && config._a[MONTH] == null) { - dayOfYearFromWeekInfo(config); - } - - //if the day of the year is set, figure out what it is - if (config._dayOfYear != null) { - yearToUse = defaults(config._a[YEAR], currentDate[YEAR]); - - if (config._dayOfYear > daysInYear(yearToUse) || config._dayOfYear === 0) { - getParsingFlags(config)._overflowDayOfYear = true; - } - - date = createUTCDate(yearToUse, 0, config._dayOfYear); - config._a[MONTH] = date.getUTCMonth(); - config._a[DATE] = date.getUTCDate(); - } - - // Default to current date. - // * if no year, month, day of month are given, default to today - // * if day of month is given, default month and year - // * if month is given, default only year - // * if year is given, don't default anything - for (i = 0; i < 3 && config._a[i] == null; ++i) { - config._a[i] = input[i] = currentDate[i]; - } - - // Zero out whatever was not defaulted, including time - for (; i < 7; i++) { - config._a[i] = input[i] = (config._a[i] == null) ? (i === 2 ? 1 : 0) : config._a[i]; - } - - // Check for 24:00:00.000 - if (config._a[HOUR] === 24 && - config._a[MINUTE] === 0 && - config._a[SECOND] === 0 && - config._a[MILLISECOND] === 0) { - config._nextDay = true; - config._a[HOUR] = 0; - } - - config._d = (config._useUTC ? createUTCDate : createDate).apply(null, input); - // Apply timezone offset from input. The actual utcOffset can be changed - // with parseZone. - if (config._tzm != null) { - config._d.setUTCMinutes(config._d.getUTCMinutes() - config._tzm); - } - - if (config._nextDay) { - config._a[HOUR] = 24; - } -} - -function dayOfYearFromWeekInfo(config) { - var w, weekYear, week, weekday, dow, doy, temp, weekdayOverflow; - - w = config._w; - if (w.GG != null || w.W != null || w.E != null) { - dow = 1; - doy = 4; - - // TODO: We need to take the current isoWeekYear, but that depends on - // how we interpret now (local, utc, fixed offset). So create - // a now version of current config (take local/utc/offset flags, and - // create now). - weekYear = defaults(w.GG, config._a[YEAR], weekOfYear(createLocal(), 1, 4).year); - week = defaults(w.W, 1); - weekday = defaults(w.E, 1); - if (weekday < 1 || weekday > 7) { - weekdayOverflow = true; - } - } else { - dow = config._locale._week.dow; - doy = config._locale._week.doy; - - var curWeek = weekOfYear(createLocal(), dow, doy); - - weekYear = defaults(w.gg, config._a[YEAR], curWeek.year); - - // Default to current week. - week = defaults(w.w, curWeek.week); - - if (w.d != null) { - // weekday -- low day numbers are considered next week - weekday = w.d; - if (weekday < 0 || weekday > 6) { - weekdayOverflow = true; - } - } else if (w.e != null) { - // local weekday -- counting starts from begining of week - weekday = w.e + dow; - if (w.e < 0 || w.e > 6) { - weekdayOverflow = true; - } - } else { - // default to begining of week - weekday = dow; - } - } - if (week < 1 || week > weeksInYear(weekYear, dow, doy)) { - getParsingFlags(config)._overflowWeeks = true; - } else if (weekdayOverflow != null) { - getParsingFlags(config)._overflowWeekday = true; - } else { - temp = dayOfYearFromWeeks(weekYear, week, weekday, dow, doy); - config._a[YEAR] = temp.year; - config._dayOfYear = temp.dayOfYear; - } -} - -// constant that refers to the ISO standard -hooks.ISO_8601 = function () {}; - -// constant that refers to the RFC 2822 form -hooks.RFC_2822 = function () {}; - -// date from string and format string -function configFromStringAndFormat(config) { - // TODO: Move this to another part of the creation flow to prevent circular deps - if (config._f === hooks.ISO_8601) { - configFromISO(config); - return; - } - if (config._f === hooks.RFC_2822) { - configFromRFC2822(config); - return; - } - config._a = []; - getParsingFlags(config).empty = true; - - // This array is used to make a Date, either with `new Date` or `Date.UTC` - var string = '' + config._i, - i, parsedInput, tokens, token, skipped, - stringLength = string.length, - totalParsedInputLength = 0; - - tokens = expandFormat(config._f, config._locale).match(formattingTokens) || []; - - for (i = 0; i < tokens.length; i++) { - token = tokens[i]; - parsedInput = (string.match(getParseRegexForToken(token, config)) || [])[0]; - // console.log('token', token, 'parsedInput', parsedInput, - // 'regex', getParseRegexForToken(token, config)); - if (parsedInput) { - skipped = string.substr(0, string.indexOf(parsedInput)); - if (skipped.length > 0) { - getParsingFlags(config).unusedInput.push(skipped); - } - string = string.slice(string.indexOf(parsedInput) + parsedInput.length); - totalParsedInputLength += parsedInput.length; - } - // don't parse if it's not a known token - if (formatTokenFunctions[token]) { - if (parsedInput) { - getParsingFlags(config).empty = false; - } - else { - getParsingFlags(config).unusedTokens.push(token); - } - addTimeToArrayFromToken(token, parsedInput, config); - } - else if (config._strict && !parsedInput) { - getParsingFlags(config).unusedTokens.push(token); - } - } - - // add remaining unparsed input length to the string - getParsingFlags(config).charsLeftOver = stringLength - totalParsedInputLength; - if (string.length > 0) { - getParsingFlags(config).unusedInput.push(string); - } - - // clear _12h flag if hour is <= 12 - if (config._a[HOUR] <= 12 && - getParsingFlags(config).bigHour === true && - config._a[HOUR] > 0) { - getParsingFlags(config).bigHour = undefined; - } - - getParsingFlags(config).parsedDateParts = config._a.slice(0); - getParsingFlags(config).meridiem = config._meridiem; - // handle meridiem - config._a[HOUR] = meridiemFixWrap(config._locale, config._a[HOUR], config._meridiem); - - configFromArray(config); - checkOverflow(config); -} - - -function meridiemFixWrap (locale, hour, meridiem) { - var isPm; - - if (meridiem == null) { - // nothing to do - return hour; - } - if (locale.meridiemHour != null) { - return locale.meridiemHour(hour, meridiem); - } else if (locale.isPM != null) { - // Fallback - isPm = locale.isPM(meridiem); - if (isPm && hour < 12) { - hour += 12; - } - if (!isPm && hour === 12) { - hour = 0; - } - return hour; - } else { - // this is not supposed to happen - return hour; - } -} - -// date from string and array of format strings -function configFromStringAndArray(config) { - var tempConfig, - bestMoment, - - scoreToBeat, - i, - currentScore; - - if (config._f.length === 0) { - getParsingFlags(config).invalidFormat = true; - config._d = new Date(NaN); - return; - } - - for (i = 0; i < config._f.length; i++) { - currentScore = 0; - tempConfig = copyConfig({}, config); - if (config._useUTC != null) { - tempConfig._useUTC = config._useUTC; - } - tempConfig._f = config._f[i]; - configFromStringAndFormat(tempConfig); - - if (!isValid(tempConfig)) { - continue; - } - - // if there is any input that was not parsed add a penalty for that format - currentScore += getParsingFlags(tempConfig).charsLeftOver; - - //or tokens - currentScore += getParsingFlags(tempConfig).unusedTokens.length * 10; - - getParsingFlags(tempConfig).score = currentScore; - - if (scoreToBeat == null || currentScore < scoreToBeat) { - scoreToBeat = currentScore; - bestMoment = tempConfig; - } - } - - extend(config, bestMoment || tempConfig); -} - -function configFromObject(config) { - if (config._d) { - return; - } - - var i = normalizeObjectUnits(config._i); - config._a = map([i.year, i.month, i.day || i.date, i.hour, i.minute, i.second, i.millisecond], function (obj) { - return obj && parseInt(obj, 10); - }); - - configFromArray(config); -} - -function createFromConfig (config) { - var res = new Moment(checkOverflow(prepareConfig(config))); - if (res._nextDay) { - // Adding is smart enough around DST - res.add(1, 'd'); - res._nextDay = undefined; - } - - return res; -} - -function prepareConfig (config) { - var input = config._i, - format = config._f; - - config._locale = config._locale || getLocale(config._l); - - if (input === null || (format === undefined && input === '')) { - return createInvalid({nullInput: true}); - } - - if (typeof input === 'string') { - config._i = input = config._locale.preparse(input); - } - - if (isMoment(input)) { - return new Moment(checkOverflow(input)); - } else if (isDate(input)) { - config._d = input; - } else if (isArray(format)) { - configFromStringAndArray(config); - } else if (format) { - configFromStringAndFormat(config); - } else { - configFromInput(config); - } - - if (!isValid(config)) { - config._d = null; - } - - return config; -} - -function configFromInput(config) { - var input = config._i; - if (isUndefined(input)) { - config._d = new Date(hooks.now()); - } else if (isDate(input)) { - config._d = new Date(input.valueOf()); - } else if (typeof input === 'string') { - configFromString(config); - } else if (isArray(input)) { - config._a = map(input.slice(0), function (obj) { - return parseInt(obj, 10); - }); - configFromArray(config); - } else if (isObject(input)) { - configFromObject(config); - } else if (isNumber(input)) { - // from milliseconds - config._d = new Date(input); - } else { - hooks.createFromInputFallback(config); - } -} - -function createLocalOrUTC (input, format, locale, strict, isUTC) { - var c = {}; - - if (locale === true || locale === false) { - strict = locale; - locale = undefined; - } - - if ((isObject(input) && isObjectEmpty(input)) || - (isArray(input) && input.length === 0)) { - input = undefined; - } - // object construction must be done this way. - // https://github.com/moment/moment/issues/1423 - c._isAMomentObject = true; - c._useUTC = c._isUTC = isUTC; - c._l = locale; - c._i = input; - c._f = format; - c._strict = strict; - - return createFromConfig(c); -} - -function createLocal (input, format, locale, strict) { - return createLocalOrUTC(input, format, locale, strict, false); -} - -var prototypeMin = deprecate( - 'moment().min is deprecated, use moment.max instead. http://momentjs.com/guides/#/warnings/min-max/', - function () { - var other = createLocal.apply(null, arguments); - if (this.isValid() && other.isValid()) { - return other < this ? this : other; - } else { - return createInvalid(); - } - } -); - -var prototypeMax = deprecate( - 'moment().max is deprecated, use moment.min instead. http://momentjs.com/guides/#/warnings/min-max/', - function () { - var other = createLocal.apply(null, arguments); - if (this.isValid() && other.isValid()) { - return other > this ? this : other; - } else { - return createInvalid(); - } - } -); - -// Pick a moment m from moments so that m[fn](other) is true for all -// other. This relies on the function fn to be transitive. -// -// moments should either be an array of moment objects or an array, whose -// first element is an array of moment objects. -function pickBy(fn, moments) { - var res, i; - if (moments.length === 1 && isArray(moments[0])) { - moments = moments[0]; - } - if (!moments.length) { - return createLocal(); - } - res = moments[0]; - for (i = 1; i < moments.length; ++i) { - if (!moments[i].isValid() || moments[i][fn](res)) { - res = moments[i]; - } - } - return res; -} - -// TODO: Use [].sort instead? -function min () { - var args = [].slice.call(arguments, 0); - - return pickBy('isBefore', args); -} - -function max () { - var args = [].slice.call(arguments, 0); - - return pickBy('isAfter', args); -} - -var now = function () { - return Date.now ? Date.now() : +(new Date()); -}; - -var ordering = ['year', 'quarter', 'month', 'week', 'day', 'hour', 'minute', 'second', 'millisecond']; - -function isDurationValid(m) { - for (var key in m) { - if (!(ordering.indexOf(key) !== -1 && (m[key] == null || !isNaN(m[key])))) { - return false; - } - } - - var unitHasDecimal = false; - for (var i = 0; i < ordering.length; ++i) { - if (m[ordering[i]]) { - if (unitHasDecimal) { - return false; // only allow non-integers for smallest unit - } - if (parseFloat(m[ordering[i]]) !== toInt(m[ordering[i]])) { - unitHasDecimal = true; - } - } - } - - return true; -} - -function isValid$1() { - return this._isValid; -} - -function createInvalid$1() { - return createDuration(NaN); -} - -function Duration (duration) { - var normalizedInput = normalizeObjectUnits(duration), - years = normalizedInput.year || 0, - quarters = normalizedInput.quarter || 0, - months = normalizedInput.month || 0, - weeks = normalizedInput.week || 0, - days = normalizedInput.day || 0, - hours = normalizedInput.hour || 0, - minutes = normalizedInput.minute || 0, - seconds = normalizedInput.second || 0, - milliseconds = normalizedInput.millisecond || 0; - - this._isValid = isDurationValid(normalizedInput); - - // representation for dateAddRemove - this._milliseconds = +milliseconds + - seconds * 1e3 + // 1000 - minutes * 6e4 + // 1000 * 60 - hours * 1000 * 60 * 60; //using 1000 * 60 * 60 instead of 36e5 to avoid floating point rounding errors https://github.com/moment/moment/issues/2978 - // Because of dateAddRemove treats 24 hours as different from a - // day when working around DST, we need to store them separately - this._days = +days + - weeks * 7; - // It is impossible translate months into days without knowing - // which months you are are talking about, so we have to store - // it separately. - this._months = +months + - quarters * 3 + - years * 12; - - this._data = {}; - - this._locale = getLocale(); - - this._bubble(); -} - -function isDuration (obj) { - return obj instanceof Duration; -} - -function absRound (number) { - if (number < 0) { - return Math.round(-1 * number) * -1; - } else { - return Math.round(number); - } -} - -// FORMATTING - -function offset (token, separator) { - addFormatToken(token, 0, 0, function () { - var offset = this.utcOffset(); - var sign = '+'; - if (offset < 0) { - offset = -offset; - sign = '-'; - } - return sign + zeroFill(~~(offset / 60), 2) + separator + zeroFill(~~(offset) % 60, 2); - }); -} - -offset('Z', ':'); -offset('ZZ', ''); - -// PARSING - -addRegexToken('Z', matchShortOffset); -addRegexToken('ZZ', matchShortOffset); -addParseToken(['Z', 'ZZ'], function (input, array, config) { - config._useUTC = true; - config._tzm = offsetFromString(matchShortOffset, input); -}); - -// HELPERS - -// timezone chunker -// '+10:00' > ['10', '00'] -// '-1530' > ['-15', '30'] -var chunkOffset = /([\+\-]|\d\d)/gi; - -function offsetFromString(matcher, string) { - var matches = (string || '').match(matcher); - - if (matches === null) { - return null; - } - - var chunk = matches[matches.length - 1] || []; - var parts = (chunk + '').match(chunkOffset) || ['-', 0, 0]; - var minutes = +(parts[1] * 60) + toInt(parts[2]); - - return minutes === 0 ? - 0 : - parts[0] === '+' ? minutes : -minutes; -} - -// Return a moment from input, that is local/utc/zone equivalent to model. -function cloneWithOffset(input, model) { - var res, diff; - if (model._isUTC) { - res = model.clone(); - diff = (isMoment(input) || isDate(input) ? input.valueOf() : createLocal(input).valueOf()) - res.valueOf(); - // Use low-level api, because this fn is low-level api. - res._d.setTime(res._d.valueOf() + diff); - hooks.updateOffset(res, false); - return res; - } else { - return createLocal(input).local(); - } -} - -function getDateOffset (m) { - // On Firefox.24 Date#getTimezoneOffset returns a floating point. - // https://github.com/moment/moment/pull/1871 - return -Math.round(m._d.getTimezoneOffset() / 15) * 15; -} - -// HOOKS - -// This function will be called whenever a moment is mutated. -// It is intended to keep the offset in sync with the timezone. -hooks.updateOffset = function () {}; - -// MOMENTS - -// keepLocalTime = true means only change the timezone, without -// affecting the local hour. So 5:31:26 +0300 --[utcOffset(2, true)]--> -// 5:31:26 +0200 It is possible that 5:31:26 doesn't exist with offset -// +0200, so we adjust the time as needed, to be valid. -// -// Keeping the time actually adds/subtracts (one hour) -// from the actual represented time. That is why we call updateOffset -// a second time. In case it wants us to change the offset again -// _changeInProgress == true case, then we have to adjust, because -// there is no such time in the given timezone. -function getSetOffset (input, keepLocalTime, keepMinutes) { - var offset = this._offset || 0, - localAdjust; - if (!this.isValid()) { - return input != null ? this : NaN; - } - if (input != null) { - if (typeof input === 'string') { - input = offsetFromString(matchShortOffset, input); - if (input === null) { - return this; - } - } else if (Math.abs(input) < 16 && !keepMinutes) { - input = input * 60; - } - if (!this._isUTC && keepLocalTime) { - localAdjust = getDateOffset(this); - } - this._offset = input; - this._isUTC = true; - if (localAdjust != null) { - this.add(localAdjust, 'm'); - } - if (offset !== input) { - if (!keepLocalTime || this._changeInProgress) { - addSubtract(this, createDuration(input - offset, 'm'), 1, false); - } else if (!this._changeInProgress) { - this._changeInProgress = true; - hooks.updateOffset(this, true); - this._changeInProgress = null; - } - } - return this; - } else { - return this._isUTC ? offset : getDateOffset(this); - } -} - -function getSetZone (input, keepLocalTime) { - if (input != null) { - if (typeof input !== 'string') { - input = -input; - } - - this.utcOffset(input, keepLocalTime); - - return this; - } else { - return -this.utcOffset(); - } -} - -function setOffsetToUTC (keepLocalTime) { - return this.utcOffset(0, keepLocalTime); -} - -function setOffsetToLocal (keepLocalTime) { - if (this._isUTC) { - this.utcOffset(0, keepLocalTime); - this._isUTC = false; - - if (keepLocalTime) { - this.subtract(getDateOffset(this), 'm'); - } - } - return this; -} - -function setOffsetToParsedOffset () { - if (this._tzm != null) { - this.utcOffset(this._tzm, false, true); - } else if (typeof this._i === 'string') { - var tZone = offsetFromString(matchOffset, this._i); - if (tZone != null) { - this.utcOffset(tZone); - } - else { - this.utcOffset(0, true); - } - } - return this; -} - -function hasAlignedHourOffset (input) { - if (!this.isValid()) { - return false; - } - input = input ? createLocal(input).utcOffset() : 0; - - return (this.utcOffset() - input) % 60 === 0; -} - -function isDaylightSavingTime () { - return ( - this.utcOffset() > this.clone().month(0).utcOffset() || - this.utcOffset() > this.clone().month(5).utcOffset() - ); -} - -function isDaylightSavingTimeShifted () { - if (!isUndefined(this._isDSTShifted)) { - return this._isDSTShifted; - } - - var c = {}; - - copyConfig(c, this); - c = prepareConfig(c); - - if (c._a) { - var other = c._isUTC ? createUTC(c._a) : createLocal(c._a); - this._isDSTShifted = this.isValid() && - compareArrays(c._a, other.toArray()) > 0; - } else { - this._isDSTShifted = false; - } - - return this._isDSTShifted; -} - -function isLocal () { - return this.isValid() ? !this._isUTC : false; -} - -function isUtcOffset () { - return this.isValid() ? this._isUTC : false; -} - -function isUtc () { - return this.isValid() ? this._isUTC && this._offset === 0 : false; -} - -// ASP.NET json date format regex -var aspNetRegex = /^(\-)?(?:(\d*)[. ])?(\d+)\:(\d+)(?:\:(\d+)(\.\d*)?)?$/; - -// from http://docs.closure-library.googlecode.com/git/closure_goog_date_date.js.source.html -// somewhat more in line with 4.4.3.2 2004 spec, but allows decimal anywhere -// and further modified to allow for strings containing both week and day -var isoRegex = /^(-)?P(?:(-?[0-9,.]*)Y)?(?:(-?[0-9,.]*)M)?(?:(-?[0-9,.]*)W)?(?:(-?[0-9,.]*)D)?(?:T(?:(-?[0-9,.]*)H)?(?:(-?[0-9,.]*)M)?(?:(-?[0-9,.]*)S)?)?$/; - -function createDuration (input, key) { - var duration = input, - // matching against regexp is expensive, do it on demand - match = null, - sign, - ret, - diffRes; - - if (isDuration(input)) { - duration = { - ms : input._milliseconds, - d : input._days, - M : input._months - }; - } else if (isNumber(input)) { - duration = {}; - if (key) { - duration[key] = input; - } else { - duration.milliseconds = input; - } - } else if (!!(match = aspNetRegex.exec(input))) { - sign = (match[1] === '-') ? -1 : 1; - duration = { - y : 0, - d : toInt(match[DATE]) * sign, - h : toInt(match[HOUR]) * sign, - m : toInt(match[MINUTE]) * sign, - s : toInt(match[SECOND]) * sign, - ms : toInt(absRound(match[MILLISECOND] * 1000)) * sign // the millisecond decimal point is included in the match - }; - } else if (!!(match = isoRegex.exec(input))) { - sign = (match[1] === '-') ? -1 : 1; - duration = { - y : parseIso(match[2], sign), - M : parseIso(match[3], sign), - w : parseIso(match[4], sign), - d : parseIso(match[5], sign), - h : parseIso(match[6], sign), - m : parseIso(match[7], sign), - s : parseIso(match[8], sign) - }; - } else if (duration == null) {// checks for null or undefined - duration = {}; - } else if (typeof duration === 'object' && ('from' in duration || 'to' in duration)) { - diffRes = momentsDifference(createLocal(duration.from), createLocal(duration.to)); - - duration = {}; - duration.ms = diffRes.milliseconds; - duration.M = diffRes.months; - } - - ret = new Duration(duration); - - if (isDuration(input) && hasOwnProp(input, '_locale')) { - ret._locale = input._locale; - } - - return ret; -} - -createDuration.fn = Duration.prototype; -createDuration.invalid = createInvalid$1; - -function parseIso (inp, sign) { - // We'd normally use ~~inp for this, but unfortunately it also - // converts floats to ints. - // inp may be undefined, so careful calling replace on it. - var res = inp && parseFloat(inp.replace(',', '.')); - // apply sign while we're at it - return (isNaN(res) ? 0 : res) * sign; -} - -function positiveMomentsDifference(base, other) { - var res = {milliseconds: 0, months: 0}; - - res.months = other.month() - base.month() + - (other.year() - base.year()) * 12; - if (base.clone().add(res.months, 'M').isAfter(other)) { - --res.months; - } - - res.milliseconds = +other - +(base.clone().add(res.months, 'M')); - - return res; -} - -function momentsDifference(base, other) { - var res; - if (!(base.isValid() && other.isValid())) { - return {milliseconds: 0, months: 0}; - } - - other = cloneWithOffset(other, base); - if (base.isBefore(other)) { - res = positiveMomentsDifference(base, other); - } else { - res = positiveMomentsDifference(other, base); - res.milliseconds = -res.milliseconds; - res.months = -res.months; - } - - return res; -} - -// TODO: remove 'name' arg after deprecation is removed -function createAdder(direction, name) { - return function (val, period) { - var dur, tmp; - //invert the arguments, but complain about it - if (period !== null && !isNaN(+period)) { - deprecateSimple(name, 'moment().' + name + '(period, number) is deprecated. Please use moment().' + name + '(number, period). ' + - 'See http://momentjs.com/guides/#/warnings/add-inverted-param/ for more info.'); - tmp = val; val = period; period = tmp; - } - - val = typeof val === 'string' ? +val : val; - dur = createDuration(val, period); - addSubtract(this, dur, direction); - return this; - }; -} - -function addSubtract (mom, duration, isAdding, updateOffset) { - var milliseconds = duration._milliseconds, - days = absRound(duration._days), - months = absRound(duration._months); - - if (!mom.isValid()) { - // No op - return; - } - - updateOffset = updateOffset == null ? true : updateOffset; - - if (milliseconds) { - mom._d.setTime(mom._d.valueOf() + milliseconds * isAdding); - } - if (days) { - set$1(mom, 'Date', get(mom, 'Date') + days * isAdding); - } - if (months) { - setMonth(mom, get(mom, 'Month') + months * isAdding); - } - if (updateOffset) { - hooks.updateOffset(mom, days || months); - } -} - -var add = createAdder(1, 'add'); -var subtract = createAdder(-1, 'subtract'); - -function getCalendarFormat(myMoment, now) { - var diff = myMoment.diff(now, 'days', true); - return diff < -6 ? 'sameElse' : - diff < -1 ? 'lastWeek' : - diff < 0 ? 'lastDay' : - diff < 1 ? 'sameDay' : - diff < 2 ? 'nextDay' : - diff < 7 ? 'nextWeek' : 'sameElse'; -} - -function calendar$1 (time, formats) { - // We want to compare the start of today, vs this. - // Getting start-of-today depends on whether we're local/utc/offset or not. - var now = time || createLocal(), - sod = cloneWithOffset(now, this).startOf('day'), - format = hooks.calendarFormat(this, sod) || 'sameElse'; - - var output = formats && (isFunction(formats[format]) ? formats[format].call(this, now) : formats[format]); - - return this.format(output || this.localeData().calendar(format, this, createLocal(now))); -} - -function clone () { - return new Moment(this); -} - -function isAfter (input, units) { - var localInput = isMoment(input) ? input : createLocal(input); - if (!(this.isValid() && localInput.isValid())) { - return false; - } - units = normalizeUnits(!isUndefined(units) ? units : 'millisecond'); - if (units === 'millisecond') { - return this.valueOf() > localInput.valueOf(); - } else { - return localInput.valueOf() < this.clone().startOf(units).valueOf(); - } -} - -function isBefore (input, units) { - var localInput = isMoment(input) ? input : createLocal(input); - if (!(this.isValid() && localInput.isValid())) { - return false; - } - units = normalizeUnits(!isUndefined(units) ? units : 'millisecond'); - if (units === 'millisecond') { - return this.valueOf() < localInput.valueOf(); - } else { - return this.clone().endOf(units).valueOf() < localInput.valueOf(); - } -} - -function isBetween (from, to, units, inclusivity) { - inclusivity = inclusivity || '()'; - return (inclusivity[0] === '(' ? this.isAfter(from, units) : !this.isBefore(from, units)) && - (inclusivity[1] === ')' ? this.isBefore(to, units) : !this.isAfter(to, units)); -} - -function isSame (input, units) { - var localInput = isMoment(input) ? input : createLocal(input), - inputMs; - if (!(this.isValid() && localInput.isValid())) { - return false; - } - units = normalizeUnits(units || 'millisecond'); - if (units === 'millisecond') { - return this.valueOf() === localInput.valueOf(); - } else { - inputMs = localInput.valueOf(); - return this.clone().startOf(units).valueOf() <= inputMs && inputMs <= this.clone().endOf(units).valueOf(); - } -} - -function isSameOrAfter (input, units) { - return this.isSame(input, units) || this.isAfter(input,units); -} - -function isSameOrBefore (input, units) { - return this.isSame(input, units) || this.isBefore(input,units); -} - -function diff (input, units, asFloat) { - var that, - zoneDelta, - delta, output; - - if (!this.isValid()) { - return NaN; - } - - that = cloneWithOffset(input, this); - - if (!that.isValid()) { - return NaN; - } - - zoneDelta = (that.utcOffset() - this.utcOffset()) * 6e4; - - units = normalizeUnits(units); - - if (units === 'year' || units === 'month' || units === 'quarter') { - output = monthDiff(this, that); - if (units === 'quarter') { - output = output / 3; - } else if (units === 'year') { - output = output / 12; - } - } else { - delta = this - that; - output = units === 'second' ? delta / 1e3 : // 1000 - units === 'minute' ? delta / 6e4 : // 1000 * 60 - units === 'hour' ? delta / 36e5 : // 1000 * 60 * 60 - units === 'day' ? (delta - zoneDelta) / 864e5 : // 1000 * 60 * 60 * 24, negate dst - units === 'week' ? (delta - zoneDelta) / 6048e5 : // 1000 * 60 * 60 * 24 * 7, negate dst - delta; - } - return asFloat ? output : absFloor(output); -} - -function monthDiff (a, b) { - // difference in months - var wholeMonthDiff = ((b.year() - a.year()) * 12) + (b.month() - a.month()), - // b is in (anchor - 1 month, anchor + 1 month) - anchor = a.clone().add(wholeMonthDiff, 'months'), - anchor2, adjust; - - if (b - anchor < 0) { - anchor2 = a.clone().add(wholeMonthDiff - 1, 'months'); - // linear across the month - adjust = (b - anchor) / (anchor - anchor2); - } else { - anchor2 = a.clone().add(wholeMonthDiff + 1, 'months'); - // linear across the month - adjust = (b - anchor) / (anchor2 - anchor); - } - - //check for negative zero, return zero if negative zero - return -(wholeMonthDiff + adjust) || 0; -} - -hooks.defaultFormat = 'YYYY-MM-DDTHH:mm:ssZ'; -hooks.defaultFormatUtc = 'YYYY-MM-DDTHH:mm:ss[Z]'; - -function toString () { - return this.clone().locale('en').format('ddd MMM DD YYYY HH:mm:ss [GMT]ZZ'); -} - -function toISOString() { - if (!this.isValid()) { - return null; - } - var m = this.clone().utc(); - if (m.year() < 0 || m.year() > 9999) { - return formatMoment(m, 'YYYYYY-MM-DD[T]HH:mm:ss.SSS[Z]'); - } - if (isFunction(Date.prototype.toISOString)) { - // native implementation is ~50x faster, use it when we can - return this.toDate().toISOString(); - } - return formatMoment(m, 'YYYY-MM-DD[T]HH:mm:ss.SSS[Z]'); -} - -/** - * Return a human readable representation of a moment that can - * also be evaluated to get a new moment which is the same - * - * @link https://nodejs.org/dist/latest/docs/api/util.html#util_custom_inspect_function_on_objects - */ -function inspect () { - if (!this.isValid()) { - return 'moment.invalid(/* ' + this._i + ' */)'; - } - var func = 'moment'; - var zone = ''; - if (!this.isLocal()) { - func = this.utcOffset() === 0 ? 'moment.utc' : 'moment.parseZone'; - zone = 'Z'; - } - var prefix = '[' + func + '("]'; - var year = (0 <= this.year() && this.year() <= 9999) ? 'YYYY' : 'YYYYYY'; - var datetime = '-MM-DD[T]HH:mm:ss.SSS'; - var suffix = zone + '[")]'; - - return this.format(prefix + year + datetime + suffix); -} - -function format (inputString) { - if (!inputString) { - inputString = this.isUtc() ? hooks.defaultFormatUtc : hooks.defaultFormat; - } - var output = formatMoment(this, inputString); - return this.localeData().postformat(output); -} - -function from (time, withoutSuffix) { - if (this.isValid() && - ((isMoment(time) && time.isValid()) || - createLocal(time).isValid())) { - return createDuration({to: this, from: time}).locale(this.locale()).humanize(!withoutSuffix); - } else { - return this.localeData().invalidDate(); - } -} - -function fromNow (withoutSuffix) { - return this.from(createLocal(), withoutSuffix); -} - -function to (time, withoutSuffix) { - if (this.isValid() && - ((isMoment(time) && time.isValid()) || - createLocal(time).isValid())) { - return createDuration({from: this, to: time}).locale(this.locale()).humanize(!withoutSuffix); - } else { - return this.localeData().invalidDate(); - } -} - -function toNow (withoutSuffix) { - return this.to(createLocal(), withoutSuffix); -} - -// If passed a locale key, it will set the locale for this -// instance. Otherwise, it will return the locale configuration -// variables for this instance. -function locale (key) { - var newLocaleData; - - if (key === undefined) { - return this._locale._abbr; - } else { - newLocaleData = getLocale(key); - if (newLocaleData != null) { - this._locale = newLocaleData; - } - return this; - } -} - -var lang = deprecate( - 'moment().lang() is deprecated. Instead, use moment().localeData() to get the language configuration. Use moment().locale() to change languages.', - function (key) { - if (key === undefined) { - return this.localeData(); - } else { - return this.locale(key); - } - } -); - -function localeData () { - return this._locale; -} - -function startOf (units) { - units = normalizeUnits(units); - // the following switch intentionally omits break keywords - // to utilize falling through the cases. - switch (units) { - case 'year': - this.month(0); - /* falls through */ - case 'quarter': - case 'month': - this.date(1); - /* falls through */ - case 'week': - case 'isoWeek': - case 'day': - case 'date': - this.hours(0); - /* falls through */ - case 'hour': - this.minutes(0); - /* falls through */ - case 'minute': - this.seconds(0); - /* falls through */ - case 'second': - this.milliseconds(0); - } - - // weeks are a special case - if (units === 'week') { - this.weekday(0); - } - if (units === 'isoWeek') { - this.isoWeekday(1); - } - - // quarters are also special - if (units === 'quarter') { - this.month(Math.floor(this.month() / 3) * 3); - } - - return this; -} - -function endOf (units) { - units = normalizeUnits(units); - if (units === undefined || units === 'millisecond') { - return this; - } - - // 'date' is an alias for 'day', so it should be considered as such. - if (units === 'date') { - units = 'day'; - } - - return this.startOf(units).add(1, (units === 'isoWeek' ? 'week' : units)).subtract(1, 'ms'); -} - -function valueOf () { - return this._d.valueOf() - ((this._offset || 0) * 60000); -} - -function unix () { - return Math.floor(this.valueOf() / 1000); -} - -function toDate () { - return new Date(this.valueOf()); -} - -function toArray () { - var m = this; - return [m.year(), m.month(), m.date(), m.hour(), m.minute(), m.second(), m.millisecond()]; -} - -function toObject () { - var m = this; - return { - years: m.year(), - months: m.month(), - date: m.date(), - hours: m.hours(), - minutes: m.minutes(), - seconds: m.seconds(), - milliseconds: m.milliseconds() - }; -} - -function toJSON () { - // new Date(NaN).toJSON() === null - return this.isValid() ? this.toISOString() : null; -} - -function isValid$2 () { - return isValid(this); -} - -function parsingFlags () { - return extend({}, getParsingFlags(this)); -} - -function invalidAt () { - return getParsingFlags(this).overflow; -} - -function creationData() { - return { - input: this._i, - format: this._f, - locale: this._locale, - isUTC: this._isUTC, - strict: this._strict - }; -} - -// FORMATTING - -addFormatToken(0, ['gg', 2], 0, function () { - return this.weekYear() % 100; -}); - -addFormatToken(0, ['GG', 2], 0, function () { - return this.isoWeekYear() % 100; -}); - -function addWeekYearFormatToken (token, getter) { - addFormatToken(0, [token, token.length], 0, getter); -} - -addWeekYearFormatToken('gggg', 'weekYear'); -addWeekYearFormatToken('ggggg', 'weekYear'); -addWeekYearFormatToken('GGGG', 'isoWeekYear'); -addWeekYearFormatToken('GGGGG', 'isoWeekYear'); - -// ALIASES - -addUnitAlias('weekYear', 'gg'); -addUnitAlias('isoWeekYear', 'GG'); - -// PRIORITY - -addUnitPriority('weekYear', 1); -addUnitPriority('isoWeekYear', 1); - - -// PARSING - -addRegexToken('G', matchSigned); -addRegexToken('g', matchSigned); -addRegexToken('GG', match1to2, match2); -addRegexToken('gg', match1to2, match2); -addRegexToken('GGGG', match1to4, match4); -addRegexToken('gggg', match1to4, match4); -addRegexToken('GGGGG', match1to6, match6); -addRegexToken('ggggg', match1to6, match6); - -addWeekParseToken(['gggg', 'ggggg', 'GGGG', 'GGGGG'], function (input, week, config, token) { - week[token.substr(0, 2)] = toInt(input); -}); - -addWeekParseToken(['gg', 'GG'], function (input, week, config, token) { - week[token] = hooks.parseTwoDigitYear(input); -}); - -// MOMENTS - -function getSetWeekYear (input) { - return getSetWeekYearHelper.call(this, - input, - this.week(), - this.weekday(), - this.localeData()._week.dow, - this.localeData()._week.doy); -} - -function getSetISOWeekYear (input) { - return getSetWeekYearHelper.call(this, - input, this.isoWeek(), this.isoWeekday(), 1, 4); -} - -function getISOWeeksInYear () { - return weeksInYear(this.year(), 1, 4); -} - -function getWeeksInYear () { - var weekInfo = this.localeData()._week; - return weeksInYear(this.year(), weekInfo.dow, weekInfo.doy); -} - -function getSetWeekYearHelper(input, week, weekday, dow, doy) { - var weeksTarget; - if (input == null) { - return weekOfYear(this, dow, doy).year; - } else { - weeksTarget = weeksInYear(input, dow, doy); - if (week > weeksTarget) { - week = weeksTarget; - } - return setWeekAll.call(this, input, week, weekday, dow, doy); - } -} - -function setWeekAll(weekYear, week, weekday, dow, doy) { - var dayOfYearData = dayOfYearFromWeeks(weekYear, week, weekday, dow, doy), - date = createUTCDate(dayOfYearData.year, 0, dayOfYearData.dayOfYear); - - this.year(date.getUTCFullYear()); - this.month(date.getUTCMonth()); - this.date(date.getUTCDate()); - return this; -} - -// FORMATTING - -addFormatToken('Q', 0, 'Qo', 'quarter'); - -// ALIASES - -addUnitAlias('quarter', 'Q'); - -// PRIORITY - -addUnitPriority('quarter', 7); - -// PARSING - -addRegexToken('Q', match1); -addParseToken('Q', function (input, array) { - array[MONTH] = (toInt(input) - 1) * 3; -}); - -// MOMENTS - -function getSetQuarter (input) { - return input == null ? Math.ceil((this.month() + 1) / 3) : this.month((input - 1) * 3 + this.month() % 3); -} - -// FORMATTING - -addFormatToken('D', ['DD', 2], 'Do', 'date'); - -// ALIASES - -addUnitAlias('date', 'D'); - -// PRIOROITY -addUnitPriority('date', 9); - -// PARSING - -addRegexToken('D', match1to2); -addRegexToken('DD', match1to2, match2); -addRegexToken('Do', function (isStrict, locale) { - // TODO: Remove "ordinalParse" fallback in next major release. - return isStrict ? - (locale._dayOfMonthOrdinalParse || locale._ordinalParse) : - locale._dayOfMonthOrdinalParseLenient; -}); - -addParseToken(['D', 'DD'], DATE); -addParseToken('Do', function (input, array) { - array[DATE] = toInt(input.match(match1to2)[0], 10); -}); - -// MOMENTS - -var getSetDayOfMonth = makeGetSet('Date', true); - -// FORMATTING - -addFormatToken('DDD', ['DDDD', 3], 'DDDo', 'dayOfYear'); - -// ALIASES - -addUnitAlias('dayOfYear', 'DDD'); - -// PRIORITY -addUnitPriority('dayOfYear', 4); - -// PARSING - -addRegexToken('DDD', match1to3); -addRegexToken('DDDD', match3); -addParseToken(['DDD', 'DDDD'], function (input, array, config) { - config._dayOfYear = toInt(input); -}); - -// HELPERS - -// MOMENTS - -function getSetDayOfYear (input) { - var dayOfYear = Math.round((this.clone().startOf('day') - this.clone().startOf('year')) / 864e5) + 1; - return input == null ? dayOfYear : this.add((input - dayOfYear), 'd'); -} - -// FORMATTING - -addFormatToken('m', ['mm', 2], 0, 'minute'); - -// ALIASES - -addUnitAlias('minute', 'm'); - -// PRIORITY - -addUnitPriority('minute', 14); - -// PARSING - -addRegexToken('m', match1to2); -addRegexToken('mm', match1to2, match2); -addParseToken(['m', 'mm'], MINUTE); - -// MOMENTS - -var getSetMinute = makeGetSet('Minutes', false); - -// FORMATTING - -addFormatToken('s', ['ss', 2], 0, 'second'); - -// ALIASES - -addUnitAlias('second', 's'); - -// PRIORITY - -addUnitPriority('second', 15); - -// PARSING - -addRegexToken('s', match1to2); -addRegexToken('ss', match1to2, match2); -addParseToken(['s', 'ss'], SECOND); - -// MOMENTS - -var getSetSecond = makeGetSet('Seconds', false); - -// FORMATTING - -addFormatToken('S', 0, 0, function () { - return ~~(this.millisecond() / 100); -}); - -addFormatToken(0, ['SS', 2], 0, function () { - return ~~(this.millisecond() / 10); -}); - -addFormatToken(0, ['SSS', 3], 0, 'millisecond'); -addFormatToken(0, ['SSSS', 4], 0, function () { - return this.millisecond() * 10; -}); -addFormatToken(0, ['SSSSS', 5], 0, function () { - return this.millisecond() * 100; -}); -addFormatToken(0, ['SSSSSS', 6], 0, function () { - return this.millisecond() * 1000; -}); -addFormatToken(0, ['SSSSSSS', 7], 0, function () { - return this.millisecond() * 10000; -}); -addFormatToken(0, ['SSSSSSSS', 8], 0, function () { - return this.millisecond() * 100000; -}); -addFormatToken(0, ['SSSSSSSSS', 9], 0, function () { - return this.millisecond() * 1000000; -}); - - -// ALIASES - -addUnitAlias('millisecond', 'ms'); - -// PRIORITY - -addUnitPriority('millisecond', 16); - -// PARSING - -addRegexToken('S', match1to3, match1); -addRegexToken('SS', match1to3, match2); -addRegexToken('SSS', match1to3, match3); - -var token; -for (token = 'SSSS'; token.length <= 9; token += 'S') { - addRegexToken(token, matchUnsigned); -} - -function parseMs(input, array) { - array[MILLISECOND] = toInt(('0.' + input) * 1000); -} - -for (token = 'S'; token.length <= 9; token += 'S') { - addParseToken(token, parseMs); -} -// MOMENTS - -var getSetMillisecond = makeGetSet('Milliseconds', false); - -// FORMATTING - -addFormatToken('z', 0, 0, 'zoneAbbr'); -addFormatToken('zz', 0, 0, 'zoneName'); - -// MOMENTS - -function getZoneAbbr () { - return this._isUTC ? 'UTC' : ''; -} - -function getZoneName () { - return this._isUTC ? 'Coordinated Universal Time' : ''; -} - -var proto = Moment.prototype; - -proto.add = add; -proto.calendar = calendar$1; -proto.clone = clone; -proto.diff = diff; -proto.endOf = endOf; -proto.format = format; -proto.from = from; -proto.fromNow = fromNow; -proto.to = to; -proto.toNow = toNow; -proto.get = stringGet; -proto.invalidAt = invalidAt; -proto.isAfter = isAfter; -proto.isBefore = isBefore; -proto.isBetween = isBetween; -proto.isSame = isSame; -proto.isSameOrAfter = isSameOrAfter; -proto.isSameOrBefore = isSameOrBefore; -proto.isValid = isValid$2; -proto.lang = lang; -proto.locale = locale; -proto.localeData = localeData; -proto.max = prototypeMax; -proto.min = prototypeMin; -proto.parsingFlags = parsingFlags; -proto.set = stringSet; -proto.startOf = startOf; -proto.subtract = subtract; -proto.toArray = toArray; -proto.toObject = toObject; -proto.toDate = toDate; -proto.toISOString = toISOString; -proto.inspect = inspect; -proto.toJSON = toJSON; -proto.toString = toString; -proto.unix = unix; -proto.valueOf = valueOf; -proto.creationData = creationData; - -// Year -proto.year = getSetYear; -proto.isLeapYear = getIsLeapYear; - -// Week Year -proto.weekYear = getSetWeekYear; -proto.isoWeekYear = getSetISOWeekYear; - -// Quarter -proto.quarter = proto.quarters = getSetQuarter; - -// Month -proto.month = getSetMonth; -proto.daysInMonth = getDaysInMonth; - -// Week -proto.week = proto.weeks = getSetWeek; -proto.isoWeek = proto.isoWeeks = getSetISOWeek; -proto.weeksInYear = getWeeksInYear; -proto.isoWeeksInYear = getISOWeeksInYear; - -// Day -proto.date = getSetDayOfMonth; -proto.day = proto.days = getSetDayOfWeek; -proto.weekday = getSetLocaleDayOfWeek; -proto.isoWeekday = getSetISODayOfWeek; -proto.dayOfYear = getSetDayOfYear; - -// Hour -proto.hour = proto.hours = getSetHour; - -// Minute -proto.minute = proto.minutes = getSetMinute; - -// Second -proto.second = proto.seconds = getSetSecond; - -// Millisecond -proto.millisecond = proto.milliseconds = getSetMillisecond; - -// Offset -proto.utcOffset = getSetOffset; -proto.utc = setOffsetToUTC; -proto.local = setOffsetToLocal; -proto.parseZone = setOffsetToParsedOffset; -proto.hasAlignedHourOffset = hasAlignedHourOffset; -proto.isDST = isDaylightSavingTime; -proto.isLocal = isLocal; -proto.isUtcOffset = isUtcOffset; -proto.isUtc = isUtc; -proto.isUTC = isUtc; - -// Timezone -proto.zoneAbbr = getZoneAbbr; -proto.zoneName = getZoneName; - -// Deprecations -proto.dates = deprecate('dates accessor is deprecated. Use date instead.', getSetDayOfMonth); -proto.months = deprecate('months accessor is deprecated. Use month instead', getSetMonth); -proto.years = deprecate('years accessor is deprecated. Use year instead', getSetYear); -proto.zone = deprecate('moment().zone is deprecated, use moment().utcOffset instead. http://momentjs.com/guides/#/warnings/zone/', getSetZone); -proto.isDSTShifted = deprecate('isDSTShifted is deprecated. See http://momentjs.com/guides/#/warnings/dst-shifted/ for more information', isDaylightSavingTimeShifted); - -function createUnix (input) { - return createLocal(input * 1000); -} - -function createInZone () { - return createLocal.apply(null, arguments).parseZone(); -} - -function preParsePostFormat (string) { - return string; -} - -var proto$1 = Locale.prototype; - -proto$1.calendar = calendar; -proto$1.longDateFormat = longDateFormat; -proto$1.invalidDate = invalidDate; -proto$1.ordinal = ordinal; -proto$1.preparse = preParsePostFormat; -proto$1.postformat = preParsePostFormat; -proto$1.relativeTime = relativeTime; -proto$1.pastFuture = pastFuture; -proto$1.set = set; - -// Month -proto$1.months = localeMonths; -proto$1.monthsShort = localeMonthsShort; -proto$1.monthsParse = localeMonthsParse; -proto$1.monthsRegex = monthsRegex; -proto$1.monthsShortRegex = monthsShortRegex; - -// Week -proto$1.week = localeWeek; -proto$1.firstDayOfYear = localeFirstDayOfYear; -proto$1.firstDayOfWeek = localeFirstDayOfWeek; - -// Day of Week -proto$1.weekdays = localeWeekdays; -proto$1.weekdaysMin = localeWeekdaysMin; -proto$1.weekdaysShort = localeWeekdaysShort; -proto$1.weekdaysParse = localeWeekdaysParse; - -proto$1.weekdaysRegex = weekdaysRegex; -proto$1.weekdaysShortRegex = weekdaysShortRegex; -proto$1.weekdaysMinRegex = weekdaysMinRegex; - -// Hours -proto$1.isPM = localeIsPM; -proto$1.meridiem = localeMeridiem; - -function get$1 (format, index, field, setter) { - var locale = getLocale(); - var utc = createUTC().set(setter, index); - return locale[field](utc, format); -} - -function listMonthsImpl (format, index, field) { - if (isNumber(format)) { - index = format; - format = undefined; - } - - format = format || ''; - - if (index != null) { - return get$1(format, index, field, 'month'); - } - - var i; - var out = []; - for (i = 0; i < 12; i++) { - out[i] = get$1(format, i, field, 'month'); - } - return out; -} - -// () -// (5) -// (fmt, 5) -// (fmt) -// (true) -// (true, 5) -// (true, fmt, 5) -// (true, fmt) -function listWeekdaysImpl (localeSorted, format, index, field) { - if (typeof localeSorted === 'boolean') { - if (isNumber(format)) { - index = format; - format = undefined; - } - - format = format || ''; - } else { - format = localeSorted; - index = format; - localeSorted = false; - - if (isNumber(format)) { - index = format; - format = undefined; - } - - format = format || ''; - } - - var locale = getLocale(), - shift = localeSorted ? locale._week.dow : 0; - - if (index != null) { - return get$1(format, (index + shift) % 7, field, 'day'); - } - - var i; - var out = []; - for (i = 0; i < 7; i++) { - out[i] = get$1(format, (i + shift) % 7, field, 'day'); - } - return out; -} - -function listMonths (format, index) { - return listMonthsImpl(format, index, 'months'); -} - -function listMonthsShort (format, index) { - return listMonthsImpl(format, index, 'monthsShort'); -} - -function listWeekdays (localeSorted, format, index) { - return listWeekdaysImpl(localeSorted, format, index, 'weekdays'); -} - -function listWeekdaysShort (localeSorted, format, index) { - return listWeekdaysImpl(localeSorted, format, index, 'weekdaysShort'); -} - -function listWeekdaysMin (localeSorted, format, index) { - return listWeekdaysImpl(localeSorted, format, index, 'weekdaysMin'); -} - -getSetGlobalLocale('en', { - dayOfMonthOrdinalParse: /\d{1,2}(th|st|nd|rd)/, - ordinal : function (number) { - var b = number % 10, - output = (toInt(number % 100 / 10) === 1) ? 'th' : - (b === 1) ? 'st' : - (b === 2) ? 'nd' : - (b === 3) ? 'rd' : 'th'; - return number + output; - } -}); - -// Side effect imports -hooks.lang = deprecate('moment.lang is deprecated. Use moment.locale instead.', getSetGlobalLocale); -hooks.langData = deprecate('moment.langData is deprecated. Use moment.localeData instead.', getLocale); - -var mathAbs = Math.abs; - -function abs () { - var data = this._data; - - this._milliseconds = mathAbs(this._milliseconds); - this._days = mathAbs(this._days); - this._months = mathAbs(this._months); - - data.milliseconds = mathAbs(data.milliseconds); - data.seconds = mathAbs(data.seconds); - data.minutes = mathAbs(data.minutes); - data.hours = mathAbs(data.hours); - data.months = mathAbs(data.months); - data.years = mathAbs(data.years); - - return this; -} - -function addSubtract$1 (duration, input, value, direction) { - var other = createDuration(input, value); - - duration._milliseconds += direction * other._milliseconds; - duration._days += direction * other._days; - duration._months += direction * other._months; - - return duration._bubble(); -} - -// supports only 2.0-style add(1, 's') or add(duration) -function add$1 (input, value) { - return addSubtract$1(this, input, value, 1); -} - -// supports only 2.0-style subtract(1, 's') or subtract(duration) -function subtract$1 (input, value) { - return addSubtract$1(this, input, value, -1); -} - -function absCeil (number) { - if (number < 0) { - return Math.floor(number); - } else { - return Math.ceil(number); - } -} - -function bubble () { - var milliseconds = this._milliseconds; - var days = this._days; - var months = this._months; - var data = this._data; - var seconds, minutes, hours, years, monthsFromDays; - - // if we have a mix of positive and negative values, bubble down first - // check: https://github.com/moment/moment/issues/2166 - if (!((milliseconds >= 0 && days >= 0 && months >= 0) || - (milliseconds <= 0 && days <= 0 && months <= 0))) { - milliseconds += absCeil(monthsToDays(months) + days) * 864e5; - days = 0; - months = 0; - } - - // The following code bubbles up values, see the tests for - // examples of what that means. - data.milliseconds = milliseconds % 1000; - - seconds = absFloor(milliseconds / 1000); - data.seconds = seconds % 60; - - minutes = absFloor(seconds / 60); - data.minutes = minutes % 60; - - hours = absFloor(minutes / 60); - data.hours = hours % 24; - - days += absFloor(hours / 24); - - // convert days to months - monthsFromDays = absFloor(daysToMonths(days)); - months += monthsFromDays; - days -= absCeil(monthsToDays(monthsFromDays)); - - // 12 months -> 1 year - years = absFloor(months / 12); - months %= 12; - - data.days = days; - data.months = months; - data.years = years; - - return this; -} - -function daysToMonths (days) { - // 400 years have 146097 days (taking into account leap year rules) - // 400 years have 12 months === 4800 - return days * 4800 / 146097; -} - -function monthsToDays (months) { - // the reverse of daysToMonths - return months * 146097 / 4800; -} - -function as (units) { - if (!this.isValid()) { - return NaN; - } - var days; - var months; - var milliseconds = this._milliseconds; - - units = normalizeUnits(units); - - if (units === 'month' || units === 'year') { - days = this._days + milliseconds / 864e5; - months = this._months + daysToMonths(days); - return units === 'month' ? months : months / 12; - } else { - // handle milliseconds separately because of floating point math errors (issue #1867) - days = this._days + Math.round(monthsToDays(this._months)); - switch (units) { - case 'week' : return days / 7 + milliseconds / 6048e5; - case 'day' : return days + milliseconds / 864e5; - case 'hour' : return days * 24 + milliseconds / 36e5; - case 'minute' : return days * 1440 + milliseconds / 6e4; - case 'second' : return days * 86400 + milliseconds / 1000; - // Math.floor prevents floating point math errors here - case 'millisecond': return Math.floor(days * 864e5) + milliseconds; - default: throw new Error('Unknown unit ' + units); - } - } -} - -// TODO: Use this.as('ms')? -function valueOf$1 () { - if (!this.isValid()) { - return NaN; - } - return ( - this._milliseconds + - this._days * 864e5 + - (this._months % 12) * 2592e6 + - toInt(this._months / 12) * 31536e6 - ); -} - -function makeAs (alias) { - return function () { - return this.as(alias); - }; -} - -var asMilliseconds = makeAs('ms'); -var asSeconds = makeAs('s'); -var asMinutes = makeAs('m'); -var asHours = makeAs('h'); -var asDays = makeAs('d'); -var asWeeks = makeAs('w'); -var asMonths = makeAs('M'); -var asYears = makeAs('y'); - -function get$2 (units) { - units = normalizeUnits(units); - return this.isValid() ? this[units + 's']() : NaN; -} - -function makeGetter(name) { - return function () { - return this.isValid() ? this._data[name] : NaN; - }; -} - -var milliseconds = makeGetter('milliseconds'); -var seconds = makeGetter('seconds'); -var minutes = makeGetter('minutes'); -var hours = makeGetter('hours'); -var days = makeGetter('days'); -var months = makeGetter('months'); -var years = makeGetter('years'); - -function weeks () { - return absFloor(this.days() / 7); -} - -var round = Math.round; -var thresholds = { - ss: 44, // a few seconds to seconds - s : 45, // seconds to minute - m : 45, // minutes to hour - h : 22, // hours to day - d : 26, // days to month - M : 11 // months to year -}; - -// helper function for moment.fn.from, moment.fn.fromNow, and moment.duration.fn.humanize -function substituteTimeAgo(string, number, withoutSuffix, isFuture, locale) { - return locale.relativeTime(number || 1, !!withoutSuffix, string, isFuture); -} - -function relativeTime$1 (posNegDuration, withoutSuffix, locale) { - var duration = createDuration(posNegDuration).abs(); - var seconds = round(duration.as('s')); - var minutes = round(duration.as('m')); - var hours = round(duration.as('h')); - var days = round(duration.as('d')); - var months = round(duration.as('M')); - var years = round(duration.as('y')); - - var a = seconds <= thresholds.ss && ['s', seconds] || - seconds < thresholds.s && ['ss', seconds] || - minutes <= 1 && ['m'] || - minutes < thresholds.m && ['mm', minutes] || - hours <= 1 && ['h'] || - hours < thresholds.h && ['hh', hours] || - days <= 1 && ['d'] || - days < thresholds.d && ['dd', days] || - months <= 1 && ['M'] || - months < thresholds.M && ['MM', months] || - years <= 1 && ['y'] || ['yy', years]; - - a[2] = withoutSuffix; - a[3] = +posNegDuration > 0; - a[4] = locale; - return substituteTimeAgo.apply(null, a); -} - -// This function allows you to set the rounding function for relative time strings -function getSetRelativeTimeRounding (roundingFunction) { - if (roundingFunction === undefined) { - return round; - } - if (typeof(roundingFunction) === 'function') { - round = roundingFunction; - return true; - } - return false; -} - -// This function allows you to set a threshold for relative time strings -function getSetRelativeTimeThreshold (threshold, limit) { - if (thresholds[threshold] === undefined) { - return false; - } - if (limit === undefined) { - return thresholds[threshold]; - } - thresholds[threshold] = limit; - if (threshold === 's') { - thresholds.ss = limit - 1; - } - return true; -} - -function humanize (withSuffix) { - if (!this.isValid()) { - return this.localeData().invalidDate(); - } - - var locale = this.localeData(); - var output = relativeTime$1(this, !withSuffix, locale); - - if (withSuffix) { - output = locale.pastFuture(+this, output); - } - - return locale.postformat(output); -} - -var abs$1 = Math.abs; - -function toISOString$1() { - // for ISO strings we do not use the normal bubbling rules: - // * milliseconds bubble up until they become hours - // * days do not bubble at all - // * months bubble up until they become years - // This is because there is no context-free conversion between hours and days - // (think of clock changes) - // and also not between days and months (28-31 days per month) - if (!this.isValid()) { - return this.localeData().invalidDate(); - } - - var seconds = abs$1(this._milliseconds) / 1000; - var days = abs$1(this._days); - var months = abs$1(this._months); - var minutes, hours, years; - - // 3600 seconds -> 60 minutes -> 1 hour - minutes = absFloor(seconds / 60); - hours = absFloor(minutes / 60); - seconds %= 60; - minutes %= 60; - - // 12 months -> 1 year - years = absFloor(months / 12); - months %= 12; - - - // inspired by https://github.com/dordille/moment-isoduration/blob/master/moment.isoduration.js - var Y = years; - var M = months; - var D = days; - var h = hours; - var m = minutes; - var s = seconds; - var total = this.asSeconds(); - - if (!total) { - // this is the same as C#'s (Noda) and python (isodate)... - // but not other JS (goog.date) - return 'P0D'; - } - - return (total < 0 ? '-' : '') + - 'P' + - (Y ? Y + 'Y' : '') + - (M ? M + 'M' : '') + - (D ? D + 'D' : '') + - ((h || m || s) ? 'T' : '') + - (h ? h + 'H' : '') + - (m ? m + 'M' : '') + - (s ? s + 'S' : ''); -} - -var proto$2 = Duration.prototype; - -proto$2.isValid = isValid$1; -proto$2.abs = abs; -proto$2.add = add$1; -proto$2.subtract = subtract$1; -proto$2.as = as; -proto$2.asMilliseconds = asMilliseconds; -proto$2.asSeconds = asSeconds; -proto$2.asMinutes = asMinutes; -proto$2.asHours = asHours; -proto$2.asDays = asDays; -proto$2.asWeeks = asWeeks; -proto$2.asMonths = asMonths; -proto$2.asYears = asYears; -proto$2.valueOf = valueOf$1; -proto$2._bubble = bubble; -proto$2.get = get$2; -proto$2.milliseconds = milliseconds; -proto$2.seconds = seconds; -proto$2.minutes = minutes; -proto$2.hours = hours; -proto$2.days = days; -proto$2.weeks = weeks; -proto$2.months = months; -proto$2.years = years; -proto$2.humanize = humanize; -proto$2.toISOString = toISOString$1; -proto$2.toString = toISOString$1; -proto$2.toJSON = toISOString$1; -proto$2.locale = locale; -proto$2.localeData = localeData; - -// Deprecations -proto$2.toIsoString = deprecate('toIsoString() is deprecated. Please use toISOString() instead (notice the capitals)', toISOString$1); -proto$2.lang = lang; - -// Side effect imports - -// FORMATTING - -addFormatToken('X', 0, 0, 'unix'); -addFormatToken('x', 0, 0, 'valueOf'); - -// PARSING - -addRegexToken('x', matchSigned); -addRegexToken('X', matchTimestamp); -addParseToken('X', function (input, array, config) { - config._d = new Date(parseFloat(input, 10) * 1000); -}); -addParseToken('x', function (input, array, config) { - config._d = new Date(toInt(input)); -}); - -// Side effect imports - -//! moment.js -//! version : 2.18.1 -//! authors : Tim Wood, Iskren Chernev, Moment.js contributors -//! license : MIT -//! momentjs.com - -hooks.version = '2.18.1'; - -setHookCallback(createLocal); - -hooks.fn = proto; -hooks.min = min; -hooks.max = max; -hooks.now = now; -hooks.utc = createUTC; -hooks.unix = createUnix; -hooks.months = listMonths; -hooks.isDate = isDate; -hooks.locale = getSetGlobalLocale; -hooks.invalid = createInvalid; -hooks.duration = createDuration; -hooks.isMoment = isMoment; -hooks.weekdays = listWeekdays; -hooks.parseZone = createInZone; -hooks.localeData = getLocale; -hooks.isDuration = isDuration; -hooks.monthsShort = listMonthsShort; -hooks.weekdaysMin = listWeekdaysMin; -hooks.defineLocale = defineLocale; -hooks.updateLocale = updateLocale; -hooks.locales = listLocales; -hooks.weekdaysShort = listWeekdaysShort; -hooks.normalizeUnits = normalizeUnits; -hooks.relativeTimeRounding = getSetRelativeTimeRounding; -hooks.relativeTimeThreshold = getSetRelativeTimeThreshold; -hooks.calendarFormat = getCalendarFormat; -hooks.prototype = proto; - -//! moment.js locale configuration -//! locale : Afrikaans [af] -//! author : Werner Mollentze : https://github.com/wernerm - -hooks.defineLocale('af', { - months : 'Januarie_Februarie_Maart_April_Mei_Junie_Julie_Augustus_September_Oktober_November_Desember'.split('_'), - monthsShort : 'Jan_Feb_Mrt_Apr_Mei_Jun_Jul_Aug_Sep_Okt_Nov_Des'.split('_'), - weekdays : 'Sondag_Maandag_Dinsdag_Woensdag_Donderdag_Vrydag_Saterdag'.split('_'), - weekdaysShort : 'Son_Maa_Din_Woe_Don_Vry_Sat'.split('_'), - weekdaysMin : 'So_Ma_Di_Wo_Do_Vr_Sa'.split('_'), - meridiemParse: /vm|nm/i, - isPM : function (input) { - return /^nm$/i.test(input); - }, - meridiem : function (hours, minutes, isLower) { - if (hours < 12) { - return isLower ? 'vm' : 'VM'; - } else { - return isLower ? 'nm' : 'NM'; - } - }, - longDateFormat : { - LT : 'HH:mm', - LTS : 'HH:mm:ss', - L : 'DD/MM/YYYY', - LL : 'D MMMM YYYY', - LLL : 'D MMMM YYYY HH:mm', - LLLL : 'dddd, D MMMM YYYY HH:mm' - }, - calendar : { - sameDay : '[Vandag om] LT', - nextDay : '[Môre om] LT', - nextWeek : 'dddd [om] LT', - lastDay : '[Gister om] LT', - lastWeek : '[Laas] dddd [om] LT', - sameElse : 'L' - }, - relativeTime : { - future : 'oor %s', - past : '%s gelede', - s : '\'n paar sekondes', - m : '\'n minuut', - mm : '%d minute', - h : '\'n uur', - hh : '%d ure', - d : '\'n dag', - dd : '%d dae', - M : '\'n maand', - MM : '%d maande', - y : '\'n jaar', - yy : '%d jaar' - }, - dayOfMonthOrdinalParse: /\d{1,2}(ste|de)/, - ordinal : function (number) { - return number + ((number === 1 || number === 8 || number >= 20) ? 'ste' : 'de'); // Thanks to Joris Röling : https://github.com/jjupiter - }, - week : { - dow : 1, // Maandag is die eerste dag van die week. - doy : 4 // Die week wat die 4de Januarie bevat is die eerste week van die jaar. - } -}); - -//! moment.js locale configuration -//! locale : Arabic (Algeria) [ar-dz] -//! author : Noureddine LOUAHEDJ : https://github.com/noureddineme - -hooks.defineLocale('ar-dz', { - months : 'جانفي_فيفري_مارس_أفريل_ماي_جوان_جويلية_أوت_سبتمبر_أكتوبر_نوفمبر_ديسمبر'.split('_'), - monthsShort : 'جانفي_فيفري_مارس_أفريل_ماي_جوان_جويلية_أوت_سبتمبر_أكتوبر_نوفمبر_ديسمبر'.split('_'), - weekdays : 'الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'), - weekdaysShort : 'احد_اثنين_ثلاثاء_اربعاء_خميس_جمعة_سبت'.split('_'), - weekdaysMin : 'أح_إث_ثلا_أر_خم_جم_سب'.split('_'), - weekdaysParseExact : true, - longDateFormat : { - LT : 'HH:mm', - LTS : 'HH:mm:ss', - L : 'DD/MM/YYYY', - LL : 'D MMMM YYYY', - LLL : 'D MMMM YYYY HH:mm', - LLLL : 'dddd D MMMM YYYY HH:mm' - }, - 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 : 0, // Sunday is the first day of the week. - doy : 4 // The week that contains Jan 1st is the first week of the year. - } -}); - -//! moment.js locale configuration -//! locale : Arabic (Kuwait) [ar-kw] -//! author : Nusret Parlak: https://github.com/nusretparlak - -hooks.defineLocale('ar-kw', { - months : 'يناير_فبراير_مارس_أبريل_ماي_يونيو_يوليوز_غشت_شتنبر_أكتوبر_نونبر_دجنبر'.split('_'), - monthsShort : 'يناير_فبراير_مارس_أبريل_ماي_يونيو_يوليوز_غشت_شتنبر_أكتوبر_نونبر_دجنبر'.split('_'), - weekdays : 'الأحد_الإتنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'), - weekdaysShort : 'احد_اتنين_ثلاثاء_اربعاء_خميس_جمعة_سبت'.split('_'), - weekdaysMin : 'ح_ن_ث_ر_خ_ج_س'.split('_'), - weekdaysParseExact : true, - longDateFormat : { - LT : 'HH:mm', - LTS : 'HH:mm:ss', - L : 'DD/MM/YYYY', - LL : 'D MMMM YYYY', - LLL : 'D MMMM YYYY HH:mm', - LLLL : 'dddd D MMMM YYYY HH:mm' - }, - 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 : 0, // Sunday is the first day of the week. - doy : 12 // The week that contains Jan 1st is the first week of the year. - } -}); - -//! moment.js locale configuration -//! locale : Arabic (Lybia) [ar-ly] -//! author : Ali Hmer: https://github.com/kikoanis - -var symbolMap = { - '1': '1', - '2': '2', - '3': '3', - '4': '4', - '5': '5', - '6': '6', - '7': '7', - '8': '8', - '9': '9', - '0': '0' -}; -var pluralForm = function (n) { - return n === 0 ? 0 : n === 1 ? 1 : n === 2 ? 2 : n % 100 >= 3 && n % 100 <= 10 ? 3 : n % 100 >= 11 ? 4 : 5; -}; -var plurals = { - s : ['أقل من ثانية', 'ثانية واحدة', ['ثانيتان', 'ثانيتين'], '%d ثوان', '%d ثانية', '%d ثانية'], - m : ['أقل من دقيقة', 'دقيقة واحدة', ['دقيقتان', 'دقيقتين'], '%d دقائق', '%d دقيقة', '%d دقيقة'], - h : ['أقل من ساعة', 'ساعة واحدة', ['ساعتان', 'ساعتين'], '%d ساعات', '%d ساعة', '%d ساعة'], - d : ['أقل من يوم', 'يوم واحد', ['يومان', 'يومين'], '%d أيام', '%d يومًا', '%d يوم'], - M : ['أقل من شهر', 'شهر واحد', ['شهران', 'شهرين'], '%d أشهر', '%d شهرا', '%d شهر'], - y : ['أقل من عام', 'عام واحد', ['عامان', 'عامين'], '%d أعوام', '%d عامًا', '%d عام'] -}; -var pluralize = function (u) { - return function (number, withoutSuffix, string, isFuture) { - var f = pluralForm(number), - str = plurals[u][pluralForm(number)]; - if (f === 2) { - str = str[withoutSuffix ? 0 : 1]; - } - return str.replace(/%d/i, number); - }; -}; -var months$1 = [ - 'يناير', - 'فبراير', - 'مارس', - 'أبريل', - 'مايو', - 'يونيو', - 'يوليو', - 'أغسطس', - 'سبتمبر', - 'أكتوبر', - 'نوفمبر', - 'ديسمبر' -]; - -hooks.defineLocale('ar-ly', { - months : months$1, - monthsShort : months$1, - weekdays : 'الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'), - weekdaysShort : 'أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت'.split('_'), - weekdaysMin : 'ح_ن_ث_ر_خ_ج_س'.split('_'), - weekdaysParseExact : true, - longDateFormat : { - LT : 'HH:mm', - LTS : 'HH:mm:ss', - L : 'D/\u200FM/\u200FYYYY', - LL : 'D MMMM YYYY', - LLL : 'D MMMM YYYY HH:mm', - LLLL : 'dddd D MMMM YYYY HH:mm' - }, - meridiemParse: /ص|م/, - isPM : function (input) { - return 'م' === input; - }, - meridiem : function (hour, minute, isLower) { - if (hour < 12) { - return 'ص'; - } else { - return 'م'; - } - }, - calendar : { - sameDay: '[اليوم عند الساعة] LT', - nextDay: '[غدًا عند الساعة] LT', - nextWeek: 'dddd [عند الساعة] LT', - lastDay: '[أمس عند الساعة] LT', - lastWeek: 'dddd [عند الساعة] LT', - sameElse: 'L' - }, - relativeTime : { - future : 'بعد %s', - past : 'منذ %s', - s : pluralize('s'), - m : pluralize('m'), - mm : pluralize('m'), - h : pluralize('h'), - hh : pluralize('h'), - d : pluralize('d'), - dd : pluralize('d'), - M : pluralize('M'), - MM : pluralize('M'), - y : pluralize('y'), - yy : pluralize('y') - }, - preparse: function (string) { - return string.replace(/\u200f/g, '').replace(/،/g, ','); - }, - postformat: function (string) { - return string.replace(/\d/g, function (match) { - return symbolMap[match]; - }).replace(/,/g, '،'); - }, - week : { - dow : 6, // Saturday is the first day of the week. - doy : 12 // The week that contains Jan 1st is the first week of the year. - } -}); - -//! moment.js locale configuration -//! locale : Arabic (Morocco) [ar-ma] -//! author : ElFadili Yassine : https://github.com/ElFadiliY -//! author : Abdel Said : https://github.com/abdelsaid - -hooks.defineLocale('ar-ma', { - months : 'يناير_فبراير_مارس_أبريل_ماي_يونيو_يوليوز_غشت_شتنبر_أكتوبر_نونبر_دجنبر'.split('_'), - monthsShort : 'يناير_فبراير_مارس_أبريل_ماي_يونيو_يوليوز_غشت_شتنبر_أكتوبر_نونبر_دجنبر'.split('_'), - weekdays : 'الأحد_الإتنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'), - weekdaysShort : 'احد_اتنين_ثلاثاء_اربعاء_خميس_جمعة_سبت'.split('_'), - weekdaysMin : 'ح_ن_ث_ر_خ_ج_س'.split('_'), - weekdaysParseExact : true, - longDateFormat : { - LT : 'HH:mm', - LTS : 'HH:mm:ss', - L : 'DD/MM/YYYY', - LL : 'D MMMM YYYY', - LLL : 'D MMMM YYYY HH:mm', - LLLL : 'dddd D MMMM YYYY HH:mm' - }, - 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, // Saturday is the first day of the week. - doy : 12 // The week that contains Jan 1st is the first week of the year. - } -}); - -//! moment.js locale configuration -//! locale : Arabic (Saudi Arabia) [ar-sa] -//! author : Suhail Alkowaileet : https://github.com/xsoh - -var symbolMap$1 = { - '1': '١', - '2': '٢', - '3': '٣', - '4': '٤', - '5': '٥', - '6': '٦', - '7': '٧', - '8': '٨', - '9': '٩', - '0': '٠' -}; -var numberMap = { - '١': '1', - '٢': '2', - '٣': '3', - '٤': '4', - '٥': '5', - '٦': '6', - '٧': '7', - '٨': '8', - '٩': '9', - '٠': '0' -}; - -hooks.defineLocale('ar-sa', { - months : 'يناير_فبراير_مارس_أبريل_مايو_يونيو_يوليو_أغسطس_سبتمبر_أكتوبر_نوفمبر_ديسمبر'.split('_'), - monthsShort : 'يناير_فبراير_مارس_أبريل_مايو_يونيو_يوليو_أغسطس_سبتمبر_أكتوبر_نوفمبر_ديسمبر'.split('_'), - weekdays : 'الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'), - weekdaysShort : 'أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت'.split('_'), - weekdaysMin : 'ح_ن_ث_ر_خ_ج_س'.split('_'), - weekdaysParseExact : true, - longDateFormat : { - LT : 'HH:mm', - LTS : 'HH:mm:ss', - L : 'DD/MM/YYYY', - LL : 'D MMMM YYYY', - LLL : 'D MMMM YYYY HH:mm', - LLLL : 'dddd D MMMM YYYY HH:mm' - }, - meridiemParse: /ص|م/, - isPM : function (input) { - return 'م' === input; - }, - meridiem : function (hour, minute, isLower) { - if (hour < 12) { - return 'ص'; - } else { - return 'م'; - } - }, - 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 (string) { - return string.replace(/[١٢٣٤٥٦٧٨٩٠]/g, function (match) { - return numberMap[match]; - }).replace(/،/g, ','); - }, - postformat: function (string) { - return string.replace(/\d/g, function (match) { - return symbolMap$1[match]; - }).replace(/,/g, '،'); - }, - week : { - dow : 0, // Sunday is the first day of the week. - doy : 6 // The week that contains Jan 1st is the first week of the year. - } -}); - -//! moment.js locale configuration -//! locale : Arabic (Tunisia) [ar-tn] -//! author : Nader Toukabri : https://github.com/naderio - -hooks.defineLocale('ar-tn', { - months: 'جانفي_فيفري_مارس_أفريل_ماي_جوان_جويلية_أوت_سبتمبر_أكتوبر_نوفمبر_ديسمبر'.split('_'), - monthsShort: 'جانفي_فيفري_مارس_أفريل_ماي_جوان_جويلية_أوت_سبتمبر_أكتوبر_نوفمبر_ديسمبر'.split('_'), - weekdays: 'الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'), - weekdaysShort: 'أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت'.split('_'), - weekdaysMin: 'ح_ن_ث_ر_خ_ج_س'.split('_'), - weekdaysParseExact : true, - longDateFormat: { - LT: 'HH:mm', - LTS: 'HH:mm:ss', - L: 'DD/MM/YYYY', - LL: 'D MMMM YYYY', - LLL: 'D MMMM YYYY HH:mm', - LLLL: 'dddd D MMMM YYYY HH:mm' - }, - 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, // Monday is the first day of the week. - doy: 4 // The week that contains Jan 4th is the first week of the year. - } -}); - -//! moment.js locale configuration -//! locale : Arabic [ar] -//! author : Abdel Said: https://github.com/abdelsaid -//! author : Ahmed Elkhatib -//! author : forabi https://github.com/forabi - -var symbolMap$2 = { - '1': '١', - '2': '٢', - '3': '٣', - '4': '٤', - '5': '٥', - '6': '٦', - '7': '٧', - '8': '٨', - '9': '٩', - '0': '٠' -}; -var numberMap$1 = { - '١': '1', - '٢': '2', - '٣': '3', - '٤': '4', - '٥': '5', - '٦': '6', - '٧': '7', - '٨': '8', - '٩': '9', - '٠': '0' -}; -var pluralForm$1 = function (n) { - return n === 0 ? 0 : n === 1 ? 1 : n === 2 ? 2 : n % 100 >= 3 && n % 100 <= 10 ? 3 : n % 100 >= 11 ? 4 : 5; -}; -var plurals$1 = { - s : ['أقل من ثانية', 'ثانية واحدة', ['ثانيتان', 'ثانيتين'], '%d ثوان', '%d ثانية', '%d ثانية'], - m : ['أقل من دقيقة', 'دقيقة واحدة', ['دقيقتان', 'دقيقتين'], '%d دقائق', '%d دقيقة', '%d دقيقة'], - h : ['أقل من ساعة', 'ساعة واحدة', ['ساعتان', 'ساعتين'], '%d ساعات', '%d ساعة', '%d ساعة'], - d : ['أقل من يوم', 'يوم واحد', ['يومان', 'يومين'], '%d أيام', '%d يومًا', '%d يوم'], - M : ['أقل من شهر', 'شهر واحد', ['شهران', 'شهرين'], '%d أشهر', '%d شهرا', '%d شهر'], - y : ['أقل من عام', 'عام واحد', ['عامان', 'عامين'], '%d أعوام', '%d عامًا', '%d عام'] -}; -var pluralize$1 = function (u) { - return function (number, withoutSuffix, string, isFuture) { - var f = pluralForm$1(number), - str = plurals$1[u][pluralForm$1(number)]; - if (f === 2) { - str = str[withoutSuffix ? 0 : 1]; - } - return str.replace(/%d/i, number); - }; -}; -var months$2 = [ - 'كانون الثاني يناير', - 'شباط فبراير', - 'آذار مارس', - 'نيسان أبريل', - 'أيار مايو', - 'حزيران يونيو', - 'تموز يوليو', - 'آب أغسطس', - 'أيلول سبتمبر', - 'تشرين الأول أكتوبر', - 'تشرين الثاني نوفمبر', - 'كانون الأول ديسمبر' -]; - -hooks.defineLocale('ar', { - months : months$2, - monthsShort : months$2, - weekdays : 'الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'), - weekdaysShort : 'أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت'.split('_'), - weekdaysMin : 'ح_ن_ث_ر_خ_ج_س'.split('_'), - weekdaysParseExact : true, - longDateFormat : { - LT : 'HH:mm', - LTS : 'HH:mm:ss', - L : 'D/\u200FM/\u200FYYYY', - LL : 'D MMMM YYYY', - LLL : 'D MMMM YYYY HH:mm', - LLLL : 'dddd D MMMM YYYY HH:mm' - }, - meridiemParse: /ص|م/, - isPM : function (input) { - return 'م' === input; - }, - meridiem : function (hour, minute, isLower) { - if (hour < 12) { - return 'ص'; - } else { - return 'م'; - } - }, - calendar : { - sameDay: '[اليوم عند الساعة] LT', - nextDay: '[غدًا عند الساعة] LT', - nextWeek: 'dddd [عند الساعة] LT', - lastDay: '[أمس عند الساعة] LT', - lastWeek: 'dddd [عند الساعة] LT', - sameElse: 'L' - }, - relativeTime : { - future : 'بعد %s', - past : 'منذ %s', - s : pluralize$1('s'), - m : pluralize$1('m'), - mm : pluralize$1('m'), - h : pluralize$1('h'), - hh : pluralize$1('h'), - d : pluralize$1('d'), - dd : pluralize$1('d'), - M : pluralize$1('M'), - MM : pluralize$1('M'), - y : pluralize$1('y'), - yy : pluralize$1('y') - }, - preparse: function (string) { - return string.replace(/\u200f/g, '').replace(/[١٢٣٤٥٦٧٨٩٠]/g, function (match) { - return numberMap$1[match]; - }).replace(/،/g, ','); - }, - postformat: function (string) { - return string.replace(/\d/g, function (match) { - return symbolMap$2[match]; - }).replace(/,/g, '،'); - }, - week : { - dow : 6, // Saturday is the first day of the week. - doy : 12 // The week that contains Jan 1st is the first week of the year. - } -}); - -//! moment.js locale configuration -//! locale : Azerbaijani [az] -//! author : topchiyev : https://github.com/topchiyev - -var suffixes = { - 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ı' -}; - -hooks.defineLocale('az', { - months : 'yanvar_fevral_mart_aprel_may_iyun_iyul_avqust_sentyabr_oktyabr_noyabr_dekabr'.split('_'), - monthsShort : 'yan_fev_mar_apr_may_iyn_iyl_avq_sen_okt_noy_dek'.split('_'), - weekdays : 'Bazar_Bazar ertəsi_Çərşənbə axşamı_Çərşənbə_Cümə axşamı_Cümə_Şənbə'.split('_'), - weekdaysShort : 'Baz_BzE_ÇAx_Çər_CAx_Cüm_Şən'.split('_'), - weekdaysMin : 'Bz_BE_ÇA_Çə_CA_Cü_Şə'.split('_'), - weekdaysParseExact : true, - longDateFormat : { - LT : 'HH:mm', - LTS : 'HH:mm:ss', - L : 'DD.MM.YYYY', - LL : 'D MMMM YYYY', - LLL : 'D MMMM YYYY HH:mm', - LLLL : 'dddd, D MMMM YYYY HH:mm' - }, - calendar : { - sameDay : '[bugün saat] LT', - nextDay : '[sabah saat] LT', - nextWeek : '[gələn həftə] dddd [saat] LT', - lastDay : '[dünən] LT', - lastWeek : '[keçən həftə] dddd [saat] LT', - sameElse : 'L' - }, - relativeTime : { - future : '%s sonra', - past : '%s əvvəl', - s : 'birneçə saniyyə', - m : 'bir dəqiqə', - mm : '%d dəqiqə', - h : 'bir saat', - hh : '%d saat', - d : 'bir gün', - dd : '%d gün', - M : 'bir ay', - MM : '%d ay', - y : 'bir il', - yy : '%d il' - }, - meridiemParse: /gecə|səhər|gündüz|axşam/, - isPM : function (input) { - return /^(gündüz|axşam)$/.test(input); - }, - meridiem : function (hour, minute, isLower) { - if (hour < 4) { - return 'gecə'; - } else if (hour < 12) { - return 'səhər'; - } else if (hour < 17) { - return 'gündüz'; - } else { - return 'axşam'; - } - }, - dayOfMonthOrdinalParse: /\d{1,2}-(ıncı|inci|nci|üncü|ncı|uncu)/, - ordinal : function (number) { - if (number === 0) { // special case for zero - return number + '-ıncı'; - } - var a = number % 10, - b = number % 100 - a, - c = number >= 100 ? 100 : null; - return number + (suffixes[a] || suffixes[b] || suffixes[c]); - }, - week : { - dow : 1, // Monday is the first day of the week. - doy : 7 // The week that contains Jan 1st is the first week of the year. - } -}); - -//! moment.js locale configuration -//! locale : Belarusian [be] -//! author : Dmitry Demidov : https://github.com/demidov91 -//! author: Praleska: http://praleska.pro/ -//! Author : Menelion Elensúle : https://github.com/Oire - -function plural(word, num) { - var forms = word.split('_'); - return num % 10 === 1 && num % 100 !== 11 ? forms[0] : (num % 10 >= 2 && num % 10 <= 4 && (num % 100 < 10 || num % 100 >= 20) ? forms[1] : forms[2]); -} -function relativeTimeWithPlural(number, withoutSuffix, key) { - var format = { - 'mm': withoutSuffix ? 'хвіліна_хвіліны_хвілін' : 'хвіліну_хвіліны_хвілін', - 'hh': withoutSuffix ? 'гадзіна_гадзіны_гадзін' : 'гадзіну_гадзіны_гадзін', - 'dd': 'дзень_дні_дзён', - 'MM': 'месяц_месяцы_месяцаў', - 'yy': 'год_гады_гадоў' - }; - if (key === 'm') { - return withoutSuffix ? 'хвіліна' : 'хвіліну'; - } - else if (key === 'h') { - return withoutSuffix ? 'гадзіна' : 'гадзіну'; - } - else { - return number + ' ' + plural(format[key], +number); - } -} - -hooks.defineLocale('be', { - months : { - format: 'студзеня_лютага_сакавіка_красавіка_траўня_чэрвеня_ліпеня_жніўня_верасня_кастрычніка_лістапада_снежня'.split('_'), - standalone: 'студзень_люты_сакавік_красавік_травень_чэрвень_ліпень_жнівень_верасень_кастрычнік_лістапад_снежань'.split('_') - }, - monthsShort : 'студ_лют_сак_крас_трав_чэрв_ліп_жнів_вер_каст_ліст_снеж'.split('_'), - weekdays : { - format: 'нядзелю_панядзелак_аўторак_сераду_чацвер_пятніцу_суботу'.split('_'), - standalone: 'нядзеля_панядзелак_аўторак_серада_чацвер_пятніца_субота'.split('_'), - isFormat: /\[ ?[Вв] ?(?:мінулую|наступную)? ?\] ?dddd/ - }, - weekdaysShort : 'нд_пн_ат_ср_чц_пт_сб'.split('_'), - weekdaysMin : 'нд_пн_ат_ср_чц_пт_сб'.split('_'), - longDateFormat : { - LT : 'HH:mm', - LTS : 'HH:mm:ss', - L : 'DD.MM.YYYY', - LL : 'D MMMM YYYY г.', - LLL : 'D MMMM YYYY г., HH:mm', - LLLL : 'dddd, D MMMM YYYY г., HH:mm' - }, - calendar : { - sameDay: '[Сёння ў] LT', - nextDay: '[Заўтра ў] LT', - lastDay: '[Учора ў] LT', - nextWeek: function () { - return '[У] dddd [ў] LT'; - }, - lastWeek: function () { - switch (this.day()) { - case 0: - case 3: - case 5: - case 6: - return '[У мінулую] dddd [ў] LT'; - case 1: - case 2: - case 4: - return '[У мінулы] dddd [ў] LT'; - } - }, - sameElse: 'L' - }, - relativeTime : { - future : 'праз %s', - past : '%s таму', - s : 'некалькі секунд', - m : relativeTimeWithPlural, - mm : relativeTimeWithPlural, - h : relativeTimeWithPlural, - hh : relativeTimeWithPlural, - d : 'дзень', - dd : relativeTimeWithPlural, - M : 'месяц', - MM : relativeTimeWithPlural, - y : 'год', - yy : relativeTimeWithPlural - }, - meridiemParse: /ночы|раніцы|дня|вечара/, - isPM : function (input) { - return /^(дня|вечара)$/.test(input); - }, - meridiem : function (hour, minute, isLower) { - if (hour < 4) { - return 'ночы'; - } else if (hour < 12) { - return 'раніцы'; - } else if (hour < 17) { - return 'дня'; - } else { - return 'вечара'; - } - }, - dayOfMonthOrdinalParse: /\d{1,2}-(і|ы|га)/, - ordinal: function (number, period) { - switch (period) { - case 'M': - case 'd': - case 'DDD': - case 'w': - case 'W': - return (number % 10 === 2 || number % 10 === 3) && (number % 100 !== 12 && number % 100 !== 13) ? number + '-і' : number + '-ы'; - case 'D': - return number + '-га'; - default: - return number; - } - }, - week : { - dow : 1, // Monday is the first day of the week. - doy : 7 // The week that contains Jan 1st is the first week of the year. - } -}); - -//! moment.js locale configuration -//! locale : Bulgarian [bg] -//! author : Krasen Borisov : https://github.com/kraz - -hooks.defineLocale('bg', { - months : 'януари_февруари_март_април_май_юни_юли_август_септември_октомври_ноември_декември'.split('_'), - monthsShort : 'янр_фев_мар_апр_май_юни_юли_авг_сеп_окт_ное_дек'.split('_'), - weekdays : 'неделя_понеделник_вторник_сряда_четвъртък_петък_събота'.split('_'), - weekdaysShort : 'нед_пон_вто_сря_чет_пет_съб'.split('_'), - weekdaysMin : 'нд_пн_вт_ср_чт_пт_сб'.split('_'), - longDateFormat : { - LT : 'H:mm', - LTS : 'H:mm:ss', - L : 'D.MM.YYYY', - LL : 'D MMMM YYYY', - LLL : 'D MMMM YYYY H:mm', - LLLL : 'dddd, D MMMM YYYY H:mm' - }, - 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 години' - }, - dayOfMonthOrdinalParse: /\d{1,2}-(ев|ен|ти|ви|ри|ми)/, - ordinal : function (number) { - var lastDigit = number % 10, - last2Digits = number % 100; - if (number === 0) { - return number + '-ев'; - } else if (last2Digits === 0) { - return number + '-ен'; - } else if (last2Digits > 10 && last2Digits < 20) { - return number + '-ти'; - } else if (lastDigit === 1) { - return number + '-ви'; - } else if (lastDigit === 2) { - return number + '-ри'; - } else if (lastDigit === 7 || lastDigit === 8) { - return number + '-ми'; - } else { - return number + '-ти'; - } - }, - week : { - dow : 1, // Monday is the first day of the week. - doy : 7 // The week that contains Jan 1st is the first week of the year. - } -}); - -//! moment.js locale configuration -//! locale : Bengali [bn] -//! author : Kaushik Gandhi : https://github.com/kaushikgandhi - -var symbolMap$3 = { - '1': '১', - '2': '২', - '3': '৩', - '4': '৪', - '5': '৫', - '6': '৬', - '7': '৭', - '8': '৮', - '9': '৯', - '0': '০' -}; -var numberMap$2 = { - '১': '1', - '২': '2', - '৩': '3', - '৪': '4', - '৫': '5', - '৬': '6', - '৭': '7', - '৮': '8', - '৯': '9', - '০': '0' -}; - -hooks.defineLocale('bn', { - months : 'জানুয়ারী_ফেব্রুয়ারি_মার্চ_এপ্রিল_মে_জুন_জুলাই_আগস্ট_সেপ্টেম্বর_অক্টোবর_নভেম্বর_ডিসেম্বর'.split('_'), - monthsShort : 'জানু_ফেব_মার্চ_এপ্র_মে_জুন_জুল_আগ_সেপ্ট_অক্টো_নভে_ডিসে'.split('_'), - weekdays : 'রবিবার_সোমবার_মঙ্গলবার_বুধবার_বৃহস্পতিবার_শুক্রবার_শনিবার'.split('_'), - weekdaysShort : 'রবি_সোম_মঙ্গল_বুধ_বৃহস্পতি_শুক্র_শনি'.split('_'), - weekdaysMin : 'রবি_সোম_মঙ্গ_বুধ_বৃহঃ_শুক্র_শনি'.split('_'), - longDateFormat : { - LT : 'A h:mm সময়', - LTS : 'A h:mm:ss সময়', - L : 'DD/MM/YYYY', - LL : 'D MMMM YYYY', - LLL : 'D MMMM YYYY, A h:mm সময়', - LLLL : 'dddd, D MMMM YYYY, A h:mm সময়' - }, - 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 (string) { - return string.replace(/[১২৩৪৫৬৭৮৯০]/g, function (match) { - return numberMap$2[match]; - }); - }, - postformat: function (string) { - return string.replace(/\d/g, function (match) { - return symbolMap$3[match]; - }); - }, - meridiemParse: /রাত|সকাল|দুপুর|বিকাল|রাত/, - meridiemHour : function (hour, meridiem) { - if (hour === 12) { - hour = 0; - } - if ((meridiem === 'রাত' && hour >= 4) || - (meridiem === 'দুপুর' && hour < 5) || - meridiem === 'বিকাল') { - return hour + 12; - } else { - return hour; - } - }, - meridiem : function (hour, minute, isLower) { - if (hour < 4) { - return 'রাত'; - } else if (hour < 10) { - return 'সকাল'; - } else if (hour < 17) { - return 'দুপুর'; - } else if (hour < 20) { - return 'বিকাল'; - } else { - return 'রাত'; - } - }, - week : { - dow : 0, // Sunday is the first day of the week. - doy : 6 // The week that contains Jan 1st is the first week of the year. - } -}); - -//! moment.js locale configuration -//! locale : Tibetan [bo] -//! author : Thupten N. Chakrishar : https://github.com/vajradog - -var symbolMap$4 = { - '1': '༡', - '2': '༢', - '3': '༣', - '4': '༤', - '5': '༥', - '6': '༦', - '7': '༧', - '8': '༨', - '9': '༩', - '0': '༠' -}; -var numberMap$3 = { - '༡': '1', - '༢': '2', - '༣': '3', - '༤': '4', - '༥': '5', - '༦': '6', - '༧': '7', - '༨': '8', - '༩': '9', - '༠': '0' -}; - -hooks.defineLocale('bo', { - months : 'ཟླ་བ་དང་པོ_ཟླ་བ་གཉིས་པ_ཟླ་བ་གསུམ་པ_ཟླ་བ་བཞི་པ_ཟླ་བ་ལྔ་པ_ཟླ་བ་དྲུག་པ_ཟླ་བ་བདུན་པ_ཟླ་བ་བརྒྱད་པ_ཟླ་བ་དགུ་པ_ཟླ་བ་བཅུ་པ_ཟླ་བ་བཅུ་གཅིག་པ_ཟླ་བ་བཅུ་གཉིས་པ'.split('_'), - monthsShort : 'ཟླ་བ་དང་པོ_ཟླ་བ་གཉིས་པ_ཟླ་བ་གསུམ་པ_ཟླ་བ་བཞི་པ_ཟླ་བ་ལྔ་པ_ཟླ་བ་དྲུག་པ_ཟླ་བ་བདུན་པ_ཟླ་བ་བརྒྱད་པ_ཟླ་བ་དགུ་པ_ཟླ་བ་བཅུ་པ_ཟླ་བ་བཅུ་གཅིག་པ_ཟླ་བ་བཅུ་གཉིས་པ'.split('_'), - weekdays : 'གཟའ་ཉི་མ་_གཟའ་ཟླ་བ་_གཟའ་མིག་དམར་_གཟའ་ལྷག་པ་_གཟའ་ཕུར་བུ_གཟའ་པ་སངས་_གཟའ་སྤེན་པ་'.split('_'), - weekdaysShort : 'ཉི་མ་_ཟླ་བ་_མིག་དམར་_ལྷག་པ་_ཕུར་བུ_པ་སངས་_སྤེན་པ་'.split('_'), - weekdaysMin : 'ཉི་མ་_ཟླ་བ་_མིག་དམར་_ལྷག་པ་_ཕུར་བུ_པ་སངས་_སྤེན་པ་'.split('_'), - longDateFormat : { - LT : 'A h:mm', - LTS : 'A h:mm:ss', - L : 'DD/MM/YYYY', - LL : 'D MMMM YYYY', - LLL : 'D MMMM YYYY, A h:mm', - LLLL : 'dddd, D MMMM YYYY, A h:mm' - }, - calendar : { - sameDay : '[དི་རིང] LT', - nextDay : '[སང་ཉིན] LT', - nextWeek : '[བདུན་ཕྲག་རྗེས་མ], 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 (string) { - return string.replace(/[༡༢༣༤༥༦༧༨༩༠]/g, function (match) { - return numberMap$3[match]; - }); - }, - postformat: function (string) { - return string.replace(/\d/g, function (match) { - return symbolMap$4[match]; - }); - }, - meridiemParse: /མཚན་མོ|ཞོགས་ཀས|ཉིན་གུང|དགོང་དག|མཚན་མོ/, - meridiemHour : function (hour, meridiem) { - if (hour === 12) { - hour = 0; - } - if ((meridiem === 'མཚན་མོ' && hour >= 4) || - (meridiem === 'ཉིན་གུང' && hour < 5) || - meridiem === 'དགོང་དག') { - return hour + 12; - } else { - return hour; - } - }, - meridiem : function (hour, minute, isLower) { - if (hour < 4) { - return 'མཚན་མོ'; - } else if (hour < 10) { - return 'ཞོགས་ཀས'; - } else if (hour < 17) { - return 'ཉིན་གུང'; - } else if (hour < 20) { - return 'དགོང་དག'; - } else { - return 'མཚན་མོ'; - } - }, - week : { - dow : 0, // Sunday is the first day of the week. - doy : 6 // The week that contains Jan 1st is the first week of the year. - } -}); - -//! moment.js locale configuration -//! locale : Breton [br] -//! author : Jean-Baptiste Le Duigou : https://github.com/jbleduigou - -function relativeTimeWithMutation(number, withoutSuffix, key) { - var format = { - 'mm': 'munutenn', - 'MM': 'miz', - 'dd': 'devezh' - }; - return number + ' ' + mutation(format[key], number); -} -function specialMutationForYears(number) { - switch (lastNumber(number)) { - case 1: - case 3: - case 4: - case 5: - case 9: - return number + ' bloaz'; - default: - return number + ' vloaz'; - } -} -function lastNumber(number) { - if (number > 9) { - return lastNumber(number % 10); - } - return number; -} -function mutation(text, number) { - if (number === 2) { - return softMutation(text); - } - return text; -} -function softMutation(text) { - var mutationTable = { - 'm': 'v', - 'b': 'v', - 'd': 'z' - }; - if (mutationTable[text.charAt(0)] === undefined) { - return text; - } - return mutationTable[text.charAt(0)] + text.substring(1); -} - -hooks.defineLocale('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('_'), - weekdaysParseExact : true, - longDateFormat : { - LT : 'h[e]mm A', - LTS : 'h[e]mm:ss A', - L : 'DD/MM/YYYY', - LL : 'D [a viz] MMMM YYYY', - LLL : 'D [a viz] MMMM YYYY h[e]mm A', - LLLL : 'dddd, D [a viz] MMMM YYYY h[e]mm A' - }, - 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 : relativeTimeWithMutation, - h : 'un eur', - hh : '%d eur', - d : 'un devezh', - dd : relativeTimeWithMutation, - M : 'ur miz', - MM : relativeTimeWithMutation, - y : 'ur bloaz', - yy : specialMutationForYears - }, - dayOfMonthOrdinalParse: /\d{1,2}(añ|vet)/, - ordinal : function (number) { - var output = (number === 1) ? 'añ' : 'vet'; - return number + output; - }, - week : { - dow : 1, // Monday is the first day of the week. - doy : 4 // The week that contains Jan 4th is the first week of the year. - } -}); - -//! moment.js locale configuration -//! locale : Bosnian [bs] -//! author : Nedim Cholich : https://github.com/frontyard -//! based on (hr) translation by Bojan Marković - -function translate(number, withoutSuffix, key) { - var result = number + ' '; - switch (key) { - case 'm': - return withoutSuffix ? 'jedna minuta' : 'jedne minute'; - case 'mm': - if (number === 1) { - result += 'minuta'; - } else if (number === 2 || number === 3 || number === 4) { - result += 'minute'; - } else { - result += 'minuta'; - } - return result; - case 'h': - return withoutSuffix ? 'jedan sat' : 'jednog sata'; - case 'hh': - if (number === 1) { - result += 'sat'; - } else if (number === 2 || number === 3 || number === 4) { - result += 'sata'; - } else { - result += 'sati'; - } - return result; - case 'dd': - if (number === 1) { - result += 'dan'; - } else { - result += 'dana'; - } - return result; - case 'MM': - if (number === 1) { - result += 'mjesec'; - } else if (number === 2 || number === 3 || number === 4) { - result += 'mjeseca'; - } else { - result += 'mjeseci'; - } - return result; - case 'yy': - if (number === 1) { - result += 'godina'; - } else if (number === 2 || number === 3 || number === 4) { - result += 'godine'; - } else { - result += 'godina'; - } - return result; - } -} - -hooks.defineLocale('bs', { - months : 'januar_februar_mart_april_maj_juni_juli_august_septembar_oktobar_novembar_decembar'.split('_'), - monthsShort : 'jan._feb._mar._apr._maj._jun._jul._aug._sep._okt._nov._dec.'.split('_'), - monthsParseExact: true, - 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('_'), - weekdaysParseExact : true, - longDateFormat : { - LT : 'H:mm', - LTS : 'H:mm:ss', - L : 'DD.MM.YYYY', - LL : 'D. MMMM YYYY', - LLL : 'D. MMMM YYYY H:mm', - LLLL : 'dddd, D. MMMM YYYY H:mm' - }, - 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 : translate, - mm : translate, - h : translate, - hh : translate, - d : 'dan', - dd : translate, - M : 'mjesec', - MM : translate, - y : 'godinu', - yy : translate - }, - dayOfMonthOrdinalParse: /\d{1,2}\./, - ordinal : '%d.', - week : { - dow : 1, // Monday is the first day of the week. - doy : 7 // The week that contains Jan 1st is the first week of the year. - } -}); - -//! moment.js locale configuration -//! locale : Catalan [ca] -//! author : Juan G. Hurtado : https://github.com/juanghurtado - -hooks.defineLocale('ca', { - months : { - standalone: 'gener_febrer_març_abril_maig_juny_juliol_agost_setembre_octubre_novembre_desembre'.split('_'), - format: 'de gener_de febrer_de març_d\'abril_de maig_de juny_de juliol_d\'agost_de setembre_d\'octubre_de novembre_de desembre'.split('_'), - isFormat: /D[oD]?(\s)+MMMM/ - }, - monthsShort : 'gen._febr._març_abr._maig_juny_jul._ag._set._oct._nov._des.'.split('_'), - monthsParseExact : true, - 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('_'), - weekdaysParseExact : true, - longDateFormat : { - LT : 'H:mm', - LTS : 'H:mm:ss', - L : 'DD/MM/YYYY', - LL : '[el] D MMMM [de] YYYY', - ll : 'D MMM YYYY', - LLL : '[el] D MMMM [de] YYYY [a les] H:mm', - lll : 'D MMM YYYY, H:mm', - LLLL : '[el] dddd D MMMM [de] YYYY [a les] H:mm', - llll : 'ddd D MMM YYYY, H:mm' - }, - calendar : { - sameDay : function () { - return '[avui a ' + ((this.hours() !== 1) ? 'les' : 'la') + '] LT'; - }, - nextDay : function () { - return '[demà a ' + ((this.hours() !== 1) ? 'les' : 'la') + '] LT'; - }, - nextWeek : function () { - return 'dddd [a ' + ((this.hours() !== 1) ? 'les' : 'la') + '] LT'; - }, - lastDay : function () { - return '[ahir a ' + ((this.hours() !== 1) ? 'les' : 'la') + '] LT'; - }, - lastWeek : function () { - return '[el] dddd [passat a ' + ((this.hours() !== 1) ? 'les' : 'la') + '] LT'; - }, - sameElse : 'L' - }, - relativeTime : { - future : 'd\'aquí %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' - }, - dayOfMonthOrdinalParse: /\d{1,2}(r|n|t|è|a)/, - ordinal : function (number, period) { - var output = (number === 1) ? 'r' : - (number === 2) ? 'n' : - (number === 3) ? 'r' : - (number === 4) ? 't' : 'è'; - if (period === 'w' || period === 'W') { - output = 'a'; - } - return number + output; - }, - week : { - dow : 1, // Monday is the first day of the week. - doy : 4 // The week that contains Jan 4th is the first week of the year. - } -}); - -//! moment.js locale configuration -//! locale : Czech [cs] -//! author : petrbela : https://github.com/petrbela - -var months$3 = 'leden_únor_březen_duben_květen_červen_červenec_srpen_září_říjen_listopad_prosinec'.split('_'); -var monthsShort = 'led_úno_bře_dub_kvě_čvn_čvc_srp_zář_říj_lis_pro'.split('_'); -function plural$1(n) { - return (n > 1) && (n < 5) && (~~(n / 10) !== 1); -} -function translate$1(number, withoutSuffix, key, isFuture) { - var result = number + ' '; - switch (key) { - case 's': // a few seconds / in a few seconds / a few seconds ago - return (withoutSuffix || isFuture) ? 'pár sekund' : 'pár sekundami'; - case 'm': // a minute / in a minute / a minute ago - return withoutSuffix ? 'minuta' : (isFuture ? 'minutu' : 'minutou'); - case 'mm': // 9 minutes / in 9 minutes / 9 minutes ago - if (withoutSuffix || isFuture) { - return result + (plural$1(number) ? 'minuty' : 'minut'); - } else { - return result + 'minutami'; - } - break; - case 'h': // an hour / in an hour / an hour ago - return withoutSuffix ? 'hodina' : (isFuture ? 'hodinu' : 'hodinou'); - case 'hh': // 9 hours / in 9 hours / 9 hours ago - if (withoutSuffix || isFuture) { - return result + (plural$1(number) ? 'hodiny' : 'hodin'); - } else { - return result + 'hodinami'; - } - break; - case 'd': // a day / in a day / a day ago - return (withoutSuffix || isFuture) ? 'den' : 'dnem'; - case 'dd': // 9 days / in 9 days / 9 days ago - if (withoutSuffix || isFuture) { - return result + (plural$1(number) ? 'dny' : 'dní'); - } else { - return result + 'dny'; - } - break; - case 'M': // a month / in a month / a month ago - return (withoutSuffix || isFuture) ? 'měsíc' : 'měsícem'; - case 'MM': // 9 months / in 9 months / 9 months ago - if (withoutSuffix || isFuture) { - return result + (plural$1(number) ? 'měsíce' : 'měsíců'); - } else { - return result + 'měsíci'; - } - break; - case 'y': // a year / in a year / a year ago - return (withoutSuffix || isFuture) ? 'rok' : 'rokem'; - case 'yy': // 9 years / in 9 years / 9 years ago - if (withoutSuffix || isFuture) { - return result + (plural$1(number) ? 'roky' : 'let'); - } else { - return result + 'lety'; - } - break; - } -} - -hooks.defineLocale('cs', { - months : months$3, - monthsShort : monthsShort, - monthsParse : (function (months, monthsShort) { - var i, _monthsParse = []; - for (i = 0; i < 12; i++) { - // use custom parser to solve problem with July (červenec) - _monthsParse[i] = new RegExp('^' + months[i] + '$|^' + monthsShort[i] + '$', 'i'); - } - return _monthsParse; - }(months$3, monthsShort)), - shortMonthsParse : (function (monthsShort) { - var i, _shortMonthsParse = []; - for (i = 0; i < 12; i++) { - _shortMonthsParse[i] = new RegExp('^' + monthsShort[i] + '$', 'i'); - } - return _shortMonthsParse; - }(monthsShort)), - longMonthsParse : (function (months) { - var i, _longMonthsParse = []; - for (i = 0; i < 12; i++) { - _longMonthsParse[i] = new RegExp('^' + months[i] + '$', 'i'); - } - return _longMonthsParse; - }(months$3)), - 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', - LTS : 'H:mm:ss', - L : 'DD.MM.YYYY', - LL : 'D. MMMM YYYY', - LLL : 'D. MMMM YYYY H:mm', - LLLL : 'dddd D. MMMM YYYY H:mm', - l : 'D. M. YYYY' - }, - 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 : translate$1, - m : translate$1, - mm : translate$1, - h : translate$1, - hh : translate$1, - d : translate$1, - dd : translate$1, - M : translate$1, - MM : translate$1, - y : translate$1, - yy : translate$1 - }, - dayOfMonthOrdinalParse : /\d{1,2}\./, - ordinal : '%d.', - week : { - dow : 1, // Monday is the first day of the week. - doy : 4 // The week that contains Jan 4th is the first week of the year. - } -}); - -//! moment.js locale configuration -//! locale : Chuvash [cv] -//! author : Anatoly Mironov : https://github.com/mirontoli - -hooks.defineLocale('cv', { - months : 'кӑрлач_нарӑс_пуш_ака_май_ҫӗртме_утӑ_ҫурла_авӑн_юпа_чӳк_раштав'.split('_'), - monthsShort : 'кӑр_нар_пуш_ака_май_ҫӗр_утӑ_ҫур_авн_юпа_чӳк_раш'.split('_'), - weekdays : 'вырсарникун_тунтикун_ытларикун_юнкун_кӗҫнерникун_эрнекун_шӑматкун'.split('_'), - weekdaysShort : 'выр_тун_ытл_юн_кӗҫ_эрн_шӑм'.split('_'), - weekdaysMin : 'вр_тн_ыт_юн_кҫ_эр_шм'.split('_'), - longDateFormat : { - LT : 'HH:mm', - LTS : 'HH:mm:ss', - L : 'DD-MM-YYYY', - LL : 'YYYY [ҫулхи] MMMM [уйӑхӗн] D[-мӗшӗ]', - LLL : 'YYYY [ҫулхи] MMMM [уйӑхӗн] D[-мӗшӗ], HH:mm', - LLLL : 'dddd, YYYY [ҫулхи] MMMM [уйӑхӗн] D[-мӗшӗ], HH:mm' - }, - calendar : { - sameDay: '[Паян] LT [сехетре]', - nextDay: '[Ыран] LT [сехетре]', - lastDay: '[Ӗнер] LT [сехетре]', - nextWeek: '[Ҫитес] dddd LT [сехетре]', - lastWeek: '[Иртнӗ] dddd LT [сехетре]', - sameElse: 'L' - }, - relativeTime : { - future : function (output) { - var affix = /сехет$/i.exec(output) ? 'рен' : /ҫул$/i.exec(output) ? 'тан' : 'ран'; - return output + affix; - }, - past : '%s каялла', - s : 'пӗр-ик ҫеккунт', - m : 'пӗр минут', - mm : '%d минут', - h : 'пӗр сехет', - hh : '%d сехет', - d : 'пӗр кун', - dd : '%d кун', - M : 'пӗр уйӑх', - MM : '%d уйӑх', - y : 'пӗр ҫул', - yy : '%d ҫул' - }, - dayOfMonthOrdinalParse: /\d{1,2}-мӗш/, - ordinal : '%d-мӗш', - week : { - dow : 1, // Monday is the first day of the week. - doy : 7 // The week that contains Jan 1st is the first week of the year. - } -}); - -//! moment.js locale configuration -//! locale : Welsh [cy] -//! author : Robert Allen : https://github.com/robgallen -//! author : https://github.com/ryangreaves - -hooks.defineLocale('cy', { - months: 'Ionawr_Chwefror_Mawrth_Ebrill_Mai_Mehefin_Gorffennaf_Awst_Medi_Hydref_Tachwedd_Rhagfyr'.split('_'), - monthsShort: 'Ion_Chwe_Maw_Ebr_Mai_Meh_Gor_Aws_Med_Hyd_Tach_Rhag'.split('_'), - weekdays: 'Dydd Sul_Dydd Llun_Dydd Mawrth_Dydd Mercher_Dydd Iau_Dydd Gwener_Dydd Sadwrn'.split('_'), - weekdaysShort: 'Sul_Llun_Maw_Mer_Iau_Gwe_Sad'.split('_'), - weekdaysMin: 'Su_Ll_Ma_Me_Ia_Gw_Sa'.split('_'), - weekdaysParseExact : true, - // time formats are the same as en-gb - longDateFormat: { - LT: 'HH:mm', - LTS : 'HH:mm:ss', - L: 'DD/MM/YYYY', - LL: 'D MMMM YYYY', - LLL: 'D MMMM YYYY HH:mm', - LLLL: 'dddd, D MMMM YYYY HH:mm' - }, - calendar: { - sameDay: '[Heddiw am] LT', - nextDay: '[Yfory am] LT', - nextWeek: 'dddd [am] LT', - lastDay: '[Ddoe am] LT', - lastWeek: 'dddd [diwethaf am] LT', - sameElse: 'L' - }, - relativeTime: { - future: 'mewn %s', - past: '%s yn ôl', - s: 'ychydig eiliadau', - m: 'munud', - mm: '%d munud', - h: 'awr', - hh: '%d awr', - d: 'diwrnod', - dd: '%d diwrnod', - M: 'mis', - MM: '%d mis', - y: 'blwyddyn', - yy: '%d flynedd' - }, - dayOfMonthOrdinalParse: /\d{1,2}(fed|ain|af|il|ydd|ed|eg)/, - // traditional ordinal numbers above 31 are not commonly used in colloquial Welsh - ordinal: function (number) { - var b = number, - output = '', - lookup = [ - '', 'af', 'il', 'ydd', 'ydd', 'ed', 'ed', 'ed', 'fed', 'fed', 'fed', // 1af to 10fed - 'eg', 'fed', 'eg', 'eg', 'fed', 'eg', 'eg', 'fed', 'eg', 'fed' // 11eg to 20fed - ]; - if (b > 20) { - if (b === 40 || b === 50 || b === 60 || b === 80 || b === 100) { - output = 'fed'; // not 30ain, 70ain or 90ain - } else { - output = 'ain'; - } - } else if (b > 0) { - output = lookup[b]; - } - return number + output; - }, - week : { - dow : 1, // Monday is the first day of the week. - doy : 4 // The week that contains Jan 4th is the first week of the year. - } -}); - -//! moment.js locale configuration -//! locale : Danish [da] -//! author : Ulrik Nielsen : https://github.com/mrbase - -hooks.defineLocale('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', - LTS : 'HH:mm:ss', - L : 'DD/MM/YYYY', - LL : 'D. MMMM YYYY', - LLL : 'D. MMMM YYYY HH:mm', - LLLL : 'dddd [d.] D. MMMM YYYY [kl.] HH:mm' - }, - calendar : { - sameDay : '[i dag kl.] LT', - nextDay : '[i morgen kl.] LT', - nextWeek : 'på dddd [kl.] LT', - lastDay : '[i går kl.] LT', - lastWeek : '[i] dddd[s 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' - }, - dayOfMonthOrdinalParse: /\d{1,2}\./, - ordinal : '%d.', - week : { - dow : 1, // Monday is the first day of the week. - doy : 4 // The week that contains Jan 4th is the first week of the year. - } -}); - -//! moment.js locale configuration -//! locale : German (Austria) [de-at] -//! author : lluchs : https://github.com/lluchs -//! author: Menelion Elensúle: https://github.com/Oire -//! author : Martin Groller : https://github.com/MadMG -//! author : Mikolaj Dadela : https://github.com/mik01aj - -function processRelativeTime(number, withoutSuffix, key, isFuture) { - var format = { - 'm': ['eine Minute', 'einer Minute'], - 'h': ['eine Stunde', 'einer Stunde'], - 'd': ['ein Tag', 'einem Tag'], - 'dd': [number + ' Tage', number + ' Tagen'], - 'M': ['ein Monat', 'einem Monat'], - 'MM': [number + ' Monate', number + ' Monaten'], - 'y': ['ein Jahr', 'einem Jahr'], - 'yy': [number + ' Jahre', number + ' Jahren'] - }; - return withoutSuffix ? format[key][0] : format[key][1]; -} - -hooks.defineLocale('de-at', { - months : 'Jänner_Februar_März_April_Mai_Juni_Juli_August_September_Oktober_November_Dezember'.split('_'), - monthsShort : 'Jän._Febr._Mrz._Apr._Mai_Jun._Jul._Aug._Sept._Okt._Nov._Dez.'.split('_'), - monthsParseExact : true, - 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('_'), - weekdaysParseExact : true, - longDateFormat : { - LT: 'HH:mm', - LTS: 'HH:mm:ss', - L : 'DD.MM.YYYY', - LL : 'D. MMMM YYYY', - LLL : 'D. MMMM YYYY HH:mm', - LLLL : 'dddd, D. MMMM YYYY HH:mm' - }, - calendar : { - sameDay: '[heute um] LT [Uhr]', - sameElse: 'L', - nextDay: '[morgen um] LT [Uhr]', - nextWeek: 'dddd [um] LT [Uhr]', - lastDay: '[gestern um] LT [Uhr]', - lastWeek: '[letzten] dddd [um] LT [Uhr]' - }, - relativeTime : { - future : 'in %s', - past : 'vor %s', - s : 'ein paar Sekunden', - m : processRelativeTime, - mm : '%d Minuten', - h : processRelativeTime, - hh : '%d Stunden', - d : processRelativeTime, - dd : processRelativeTime, - M : processRelativeTime, - MM : processRelativeTime, - y : processRelativeTime, - yy : processRelativeTime - }, - dayOfMonthOrdinalParse: /\d{1,2}\./, - ordinal : '%d.', - week : { - dow : 1, // Monday is the first day of the week. - doy : 4 // The week that contains Jan 4th is the first week of the year. - } -}); - -//! moment.js locale configuration -//! locale : German (Switzerland) [de-ch] -//! author : sschueller : https://github.com/sschueller - -// based on: https://www.bk.admin.ch/dokumentation/sprachen/04915/05016/index.html?lang=de# - -function processRelativeTime$1(number, withoutSuffix, key, isFuture) { - var format = { - 'm': ['eine Minute', 'einer Minute'], - 'h': ['eine Stunde', 'einer Stunde'], - 'd': ['ein Tag', 'einem Tag'], - 'dd': [number + ' Tage', number + ' Tagen'], - 'M': ['ein Monat', 'einem Monat'], - 'MM': [number + ' Monate', number + ' Monaten'], - 'y': ['ein Jahr', 'einem Jahr'], - 'yy': [number + ' Jahre', number + ' Jahren'] - }; - return withoutSuffix ? format[key][0] : format[key][1]; -} - -hooks.defineLocale('de-ch', { - months : 'Januar_Februar_März_April_Mai_Juni_Juli_August_September_Oktober_November_Dezember'.split('_'), - monthsShort : 'Jan._Febr._März_April_Mai_Juni_Juli_Aug._Sept._Okt._Nov._Dez.'.split('_'), - monthsParseExact : true, - 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('_'), - weekdaysParseExact : true, - longDateFormat : { - LT: 'HH.mm', - LTS: 'HH.mm.ss', - L : 'DD.MM.YYYY', - LL : 'D. MMMM YYYY', - LLL : 'D. MMMM YYYY HH.mm', - LLLL : 'dddd, D. MMMM YYYY HH.mm' - }, - calendar : { - sameDay: '[heute um] LT [Uhr]', - sameElse: 'L', - nextDay: '[morgen um] LT [Uhr]', - nextWeek: 'dddd [um] LT [Uhr]', - lastDay: '[gestern um] LT [Uhr]', - lastWeek: '[letzten] dddd [um] LT [Uhr]' - }, - relativeTime : { - future : 'in %s', - past : 'vor %s', - s : 'ein paar Sekunden', - m : processRelativeTime$1, - mm : '%d Minuten', - h : processRelativeTime$1, - hh : '%d Stunden', - d : processRelativeTime$1, - dd : processRelativeTime$1, - M : processRelativeTime$1, - MM : processRelativeTime$1, - y : processRelativeTime$1, - yy : processRelativeTime$1 - }, - dayOfMonthOrdinalParse: /\d{1,2}\./, - ordinal : '%d.', - week : { - dow : 1, // Monday is the first day of the week. - doy : 4 // The week that contains Jan 4th is the first week of the year. - } -}); - -//! moment.js locale configuration -//! locale : German [de] -//! author : lluchs : https://github.com/lluchs -//! author: Menelion Elensúle: https://github.com/Oire -//! author : Mikolaj Dadela : https://github.com/mik01aj - -function processRelativeTime$2(number, withoutSuffix, key, isFuture) { - var format = { - 'm': ['eine Minute', 'einer Minute'], - 'h': ['eine Stunde', 'einer Stunde'], - 'd': ['ein Tag', 'einem Tag'], - 'dd': [number + ' Tage', number + ' Tagen'], - 'M': ['ein Monat', 'einem Monat'], - 'MM': [number + ' Monate', number + ' Monaten'], - 'y': ['ein Jahr', 'einem Jahr'], - 'yy': [number + ' Jahre', number + ' Jahren'] - }; - return withoutSuffix ? format[key][0] : format[key][1]; -} - -hooks.defineLocale('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('_'), - monthsParseExact : true, - 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('_'), - weekdaysParseExact : true, - longDateFormat : { - LT: 'HH:mm', - LTS: 'HH:mm:ss', - L : 'DD.MM.YYYY', - LL : 'D. MMMM YYYY', - LLL : 'D. MMMM YYYY HH:mm', - LLLL : 'dddd, D. MMMM YYYY HH:mm' - }, - calendar : { - sameDay: '[heute um] LT [Uhr]', - sameElse: 'L', - nextDay: '[morgen um] LT [Uhr]', - nextWeek: 'dddd [um] LT [Uhr]', - lastDay: '[gestern um] LT [Uhr]', - lastWeek: '[letzten] dddd [um] LT [Uhr]' - }, - relativeTime : { - future : 'in %s', - past : 'vor %s', - s : 'ein paar Sekunden', - m : processRelativeTime$2, - mm : '%d Minuten', - h : processRelativeTime$2, - hh : '%d Stunden', - d : processRelativeTime$2, - dd : processRelativeTime$2, - M : processRelativeTime$2, - MM : processRelativeTime$2, - y : processRelativeTime$2, - yy : processRelativeTime$2 - }, - dayOfMonthOrdinalParse: /\d{1,2}\./, - ordinal : '%d.', - week : { - dow : 1, // Monday is the first day of the week. - doy : 4 // The week that contains Jan 4th is the first week of the year. - } -}); - -//! moment.js locale configuration -//! locale : Maldivian [dv] -//! author : Jawish Hameed : https://github.com/jawish - -var months$4 = [ - 'ޖެނުއަރީ', - 'ފެބްރުއަރީ', - 'މާރިޗު', - 'އޭޕްރީލު', - 'މޭ', - 'ޖޫން', - 'ޖުލައި', - 'އޯގަސްޓު', - 'ސެޕްޓެމްބަރު', - 'އޮކްޓޯބަރު', - 'ނޮވެމްބަރު', - 'ޑިސެމްބަރު' -]; -var weekdays = [ - 'އާދިއްތަ', - 'ހޯމަ', - 'އަންގާރަ', - 'ބުދަ', - 'ބުރާސްފަތި', - 'ހުކުރު', - 'ހޮނިހިރު' -]; - -hooks.defineLocale('dv', { - months : months$4, - monthsShort : months$4, - weekdays : weekdays, - weekdaysShort : weekdays, - weekdaysMin : 'އާދި_ހޯމަ_އަން_ބުދަ_ބުރާ_ހުކު_ހޮނި'.split('_'), - longDateFormat : { - - LT : 'HH:mm', - LTS : 'HH:mm:ss', - L : 'D/M/YYYY', - LL : 'D MMMM YYYY', - LLL : 'D MMMM YYYY HH:mm', - LLLL : 'dddd D MMMM YYYY HH:mm' - }, - meridiemParse: /މކ|މފ/, - isPM : function (input) { - return 'މފ' === input; - }, - meridiem : function (hour, minute, isLower) { - if (hour < 12) { - return 'މކ'; - } else { - return 'މފ'; - } - }, - 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 (string) { - return string.replace(/،/g, ','); - }, - postformat: function (string) { - return string.replace(/,/g, '،'); - }, - week : { - dow : 7, // Sunday is the first day of the week. - doy : 12 // The week that contains Jan 1st is the first week of the year. - } -}); - -//! moment.js locale configuration -//! locale : Greek [el] -//! author : Aggelos Karalias : https://github.com/mehiel - -hooks.defineLocale('el', { - monthsNominativeEl : 'Ιανουάριος_Φεβρουάριος_Μάρτιος_Απρίλιος_Μάιος_Ιούνιος_Ιούλιος_Αύγουστος_Σεπτέμβριος_Οκτώβριος_Νοέμβριος_Δεκέμβριος'.split('_'), - monthsGenitiveEl : 'Ιανουαρίου_Φεβρουαρίου_Μαρτίου_Απριλίου_Μαΐου_Ιουνίου_Ιουλίου_Αυγούστου_Σεπτεμβρίου_Οκτωβρίου_Νοεμβρίου_Δεκεμβρίου'.split('_'), - months : function (momentToFormat, format) { - if (!momentToFormat) { - return this._monthsNominativeEl; - } else if (/D/.test(format.substring(0, format.indexOf('MMMM')))) { // if there is a day number before 'MMMM' - return this._monthsGenitiveEl[momentToFormat.month()]; - } else { - return this._monthsNominativeEl[momentToFormat.month()]; - } - }, - monthsShort : 'Ιαν_Φεβ_Μαρ_Απρ_Μαϊ_Ιουν_Ιουλ_Αυγ_Σεπ_Οκτ_Νοε_Δεκ'.split('_'), - weekdays : 'Κυριακή_Δευτέρα_Τρίτη_Τετάρτη_Πέμπτη_Παρασκευή_Σάββατο'.split('_'), - weekdaysShort : 'Κυρ_Δευ_Τρι_Τετ_Πεμ_Παρ_Σαβ'.split('_'), - weekdaysMin : 'Κυ_Δε_Τρ_Τε_Πε_Πα_Σα'.split('_'), - meridiem : function (hours, minutes, isLower) { - if (hours > 11) { - return isLower ? 'μμ' : 'ΜΜ'; - } else { - return isLower ? 'πμ' : 'ΠΜ'; - } - }, - isPM : function (input) { - return ((input + '').toLowerCase()[0] === 'μ'); - }, - meridiemParse : /[ΠΜ]\.?Μ?\.?/i, - longDateFormat : { - LT : 'h:mm A', - LTS : 'h:mm:ss A', - L : 'DD/MM/YYYY', - LL : 'D MMMM YYYY', - LLL : 'D MMMM YYYY h:mm A', - LLLL : 'dddd, D MMMM YYYY h:mm A' - }, - calendarEl : { - sameDay : '[Σήμερα {}] LT', - nextDay : '[Αύριο {}] LT', - nextWeek : 'dddd [{}] LT', - lastDay : '[Χθες {}] LT', - lastWeek : function () { - switch (this.day()) { - case 6: - return '[το προηγούμενο] dddd [{}] LT'; - default: - return '[την προηγούμενη] dddd [{}] LT'; - } - }, - sameElse : 'L' - }, - calendar : function (key, mom) { - var output = this._calendarEl[key], - hours = mom && mom.hours(); - if (isFunction(output)) { - output = output.apply(mom); - } - return output.replace('{}', (hours % 12 === 1 ? 'στη' : 'στις')); - }, - relativeTime : { - future : 'σε %s', - past : '%s πριν', - s : 'λίγα δευτερόλεπτα', - m : 'ένα λεπτό', - mm : '%d λεπτά', - h : 'μία ώρα', - hh : '%d ώρες', - d : 'μία μέρα', - dd : '%d μέρες', - M : 'ένας μήνας', - MM : '%d μήνες', - y : 'ένας χρόνος', - yy : '%d χρόνια' - }, - dayOfMonthOrdinalParse: /\d{1,2}η/, - ordinal: '%dη', - week : { - dow : 1, // Monday is the first day of the week. - doy : 4 // The week that contains Jan 4st is the first week of the year. - } -}); - -//! moment.js locale configuration -//! locale : English (Australia) [en-au] -//! author : Jared Morse : https://github.com/jarcoal - -hooks.defineLocale('en-au', { - 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', - LTS : 'h:mm:ss A', - L : 'DD/MM/YYYY', - LL : 'D MMMM YYYY', - LLL : 'D MMMM YYYY h:mm A', - LLLL : 'dddd, D MMMM YYYY h:mm A' - }, - 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' - }, - dayOfMonthOrdinalParse: /\d{1,2}(st|nd|rd|th)/, - ordinal : function (number) { - var b = number % 10, - output = (~~(number % 100 / 10) === 1) ? 'th' : - (b === 1) ? 'st' : - (b === 2) ? 'nd' : - (b === 3) ? 'rd' : 'th'; - return number + output; - }, - week : { - dow : 1, // Monday is the first day of the week. - doy : 4 // The week that contains Jan 4th is the first week of the year. - } -}); - -//! moment.js locale configuration -//! locale : English (Canada) [en-ca] -//! author : Jonathan Abourbih : https://github.com/jonbca - -hooks.defineLocale('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', - LTS : 'h:mm:ss A', - L : 'YYYY-MM-DD', - LL : 'MMMM D, YYYY', - LLL : 'MMMM D, YYYY h:mm A', - LLLL : 'dddd, MMMM D, YYYY h:mm A' - }, - 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' - }, - dayOfMonthOrdinalParse: /\d{1,2}(st|nd|rd|th)/, - ordinal : function (number) { - var b = number % 10, - output = (~~(number % 100 / 10) === 1) ? 'th' : - (b === 1) ? 'st' : - (b === 2) ? 'nd' : - (b === 3) ? 'rd' : 'th'; - return number + output; - } -}); - -//! moment.js locale configuration -//! locale : English (United Kingdom) [en-gb] -//! author : Chris Gedrim : https://github.com/chrisgedrim - -hooks.defineLocale('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', - LTS : 'HH:mm:ss', - L : 'DD/MM/YYYY', - LL : 'D MMMM YYYY', - LLL : 'D MMMM YYYY HH:mm', - LLLL : 'dddd, D MMMM YYYY HH:mm' - }, - 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' - }, - dayOfMonthOrdinalParse: /\d{1,2}(st|nd|rd|th)/, - ordinal : function (number) { - var b = number % 10, - output = (~~(number % 100 / 10) === 1) ? 'th' : - (b === 1) ? 'st' : - (b === 2) ? 'nd' : - (b === 3) ? 'rd' : 'th'; - return number + output; - }, - week : { - dow : 1, // Monday is the first day of the week. - doy : 4 // The week that contains Jan 4th is the first week of the year. - } -}); - -//! moment.js locale configuration -//! locale : English (Ireland) [en-ie] -//! author : Chris Cartlidge : https://github.com/chriscartlidge - -hooks.defineLocale('en-ie', { - 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', - LTS : 'HH:mm:ss', - L : 'DD-MM-YYYY', - LL : 'D MMMM YYYY', - LLL : 'D MMMM YYYY HH:mm', - LLLL : 'dddd D MMMM YYYY HH:mm' - }, - 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' - }, - dayOfMonthOrdinalParse: /\d{1,2}(st|nd|rd|th)/, - ordinal : function (number) { - var b = number % 10, - output = (~~(number % 100 / 10) === 1) ? 'th' : - (b === 1) ? 'st' : - (b === 2) ? 'nd' : - (b === 3) ? 'rd' : 'th'; - return number + output; - }, - week : { - dow : 1, // Monday is the first day of the week. - doy : 4 // The week that contains Jan 4th is the first week of the year. - } -}); - -//! moment.js locale configuration -//! locale : English (New Zealand) [en-nz] -//! author : Luke McGregor : https://github.com/lukemcgregor - -hooks.defineLocale('en-nz', { - 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', - LTS : 'h:mm:ss A', - L : 'DD/MM/YYYY', - LL : 'D MMMM YYYY', - LLL : 'D MMMM YYYY h:mm A', - LLLL : 'dddd, D MMMM YYYY h:mm A' - }, - 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' - }, - dayOfMonthOrdinalParse: /\d{1,2}(st|nd|rd|th)/, - ordinal : function (number) { - var b = number % 10, - output = (~~(number % 100 / 10) === 1) ? 'th' : - (b === 1) ? 'st' : - (b === 2) ? 'nd' : - (b === 3) ? 'rd' : 'th'; - return number + output; - }, - week : { - dow : 1, // Monday is the first day of the week. - doy : 4 // The week that contains Jan 4th is the first week of the year. - } -}); - -//! moment.js locale configuration -//! locale : Esperanto [eo] -//! author : Colin Dean : https://github.com/colindean -//! author : Mia Nordentoft Imperatori : https://github.com/miestasmia -//! comment : miestasmia corrected the translation by colindean - -hooks.defineLocale('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', - LTS : 'HH:mm:ss', - L : 'YYYY-MM-DD', - LL : 'D[-a de] MMMM, YYYY', - LLL : 'D[-a de] MMMM, YYYY HH:mm', - LLLL : 'dddd, [la] D[-a de] MMMM, YYYY HH:mm' - }, - meridiemParse: /[ap]\.t\.m/i, - isPM: function (input) { - return input.charAt(0).toLowerCase() === 'p'; - }, - meridiem : function (hours, minutes, isLower) { - if (hours > 11) { - return isLower ? 'p.t.m.' : 'P.T.M.'; - } else { - return isLower ? '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 : 'post %s', - past : 'antaŭ %s', - s : 'sekundoj', - m : 'minuto', - mm : '%d minutoj', - h : 'horo', - hh : '%d horoj', - d : 'tago',//ne 'diurno', ĉar estas uzita por proksimumo - dd : '%d tagoj', - M : 'monato', - MM : '%d monatoj', - y : 'jaro', - yy : '%d jaroj' - }, - dayOfMonthOrdinalParse: /\d{1,2}a/, - ordinal : '%da', - week : { - dow : 1, // Monday is the first day of the week. - doy : 7 // The week that contains Jan 1st is the first week of the year. - } -}); - -//! moment.js locale configuration -//! locale : Spanish (Dominican Republic) [es-do] - -var monthsShortDot = 'ene._feb._mar._abr._may._jun._jul._ago._sep._oct._nov._dic.'.split('_'); -var monthsShort$1 = 'ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic'.split('_'); - -hooks.defineLocale('es-do', { - months : 'enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre'.split('_'), - monthsShort : function (m, format) { - if (!m) { - return monthsShortDot; - } else if (/-MMM-/.test(format)) { - return monthsShort$1[m.month()]; - } else { - return monthsShortDot[m.month()]; - } - }, - monthsParseExact : true, - 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('_'), - weekdaysParseExact : true, - longDateFormat : { - LT : 'h:mm A', - LTS : 'h:mm:ss A', - L : 'DD/MM/YYYY', - LL : 'D [de] MMMM [de] YYYY', - LLL : 'D [de] MMMM [de] YYYY h:mm A', - LLLL : 'dddd, D [de] MMMM [de] YYYY h:mm A' - }, - calendar : { - sameDay : function () { - return '[hoy a la' + ((this.hours() !== 1) ? 's' : '') + '] LT'; - }, - nextDay : function () { - return '[mañana a la' + ((this.hours() !== 1) ? 's' : '') + '] LT'; - }, - nextWeek : function () { - return 'dddd [a la' + ((this.hours() !== 1) ? 's' : '') + '] LT'; - }, - lastDay : function () { - return '[ayer a la' + ((this.hours() !== 1) ? 's' : '') + '] LT'; - }, - lastWeek : function () { - return '[el] dddd [pasado a la' + ((this.hours() !== 1) ? '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' - }, - dayOfMonthOrdinalParse : /\d{1,2}º/, - ordinal : '%dº', - week : { - dow : 1, // Monday is the first day of the week. - doy : 4 // The week that contains Jan 4th is the first week of the year. - } -}); - -//! moment.js locale configuration -//! locale : Spanish [es] -//! author : Julio Napurí : https://github.com/julionc - -var monthsShortDot$1 = 'ene._feb._mar._abr._may._jun._jul._ago._sep._oct._nov._dic.'.split('_'); -var monthsShort$2 = 'ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic'.split('_'); - -hooks.defineLocale('es', { - months : 'enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre'.split('_'), - monthsShort : function (m, format) { - if (!m) { - return monthsShortDot$1; - } else if (/-MMM-/.test(format)) { - return monthsShort$2[m.month()]; - } else { - return monthsShortDot$1[m.month()]; - } - }, - monthsParseExact : true, - 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('_'), - weekdaysParseExact : true, - longDateFormat : { - LT : 'H:mm', - LTS : 'H:mm:ss', - L : 'DD/MM/YYYY', - LL : 'D [de] MMMM [de] YYYY', - LLL : 'D [de] MMMM [de] YYYY H:mm', - LLLL : 'dddd, D [de] MMMM [de] YYYY H:mm' - }, - calendar : { - sameDay : function () { - return '[hoy a la' + ((this.hours() !== 1) ? 's' : '') + '] LT'; - }, - nextDay : function () { - return '[mañana a la' + ((this.hours() !== 1) ? 's' : '') + '] LT'; - }, - nextWeek : function () { - return 'dddd [a la' + ((this.hours() !== 1) ? 's' : '') + '] LT'; - }, - lastDay : function () { - return '[ayer a la' + ((this.hours() !== 1) ? 's' : '') + '] LT'; - }, - lastWeek : function () { - return '[el] dddd [pasado a la' + ((this.hours() !== 1) ? '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' - }, - dayOfMonthOrdinalParse : /\d{1,2}º/, - ordinal : '%dº', - week : { - dow : 1, // Monday is the first day of the week. - doy : 4 // The week that contains Jan 4th is the first week of the year. - } -}); - -//! moment.js locale configuration -//! locale : Estonian [et] -//! author : Henry Kehlmann : https://github.com/madhenry -//! improvements : Illimar Tambek : https://github.com/ragulka - -function processRelativeTime$3(number, withoutSuffix, key, isFuture) { - var format = { - 's' : ['mõne sekundi', 'mõni sekund', 'paar sekundit'], - 'm' : ['ühe minuti', 'üks minut'], - 'mm': [number + ' minuti', number + ' minutit'], - 'h' : ['ühe tunni', 'tund aega', 'üks tund'], - 'hh': [number + ' tunni', number + ' tundi'], - 'd' : ['ühe päeva', 'üks päev'], - 'M' : ['kuu aja', 'kuu aega', 'üks kuu'], - 'MM': [number + ' kuu', number + ' kuud'], - 'y' : ['ühe aasta', 'aasta', 'üks aasta'], - 'yy': [number + ' aasta', number + ' aastat'] - }; - if (withoutSuffix) { - return format[key][2] ? format[key][2] : format[key][1]; - } - return isFuture ? format[key][0] : format[key][1]; -} - -hooks.defineLocale('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 : 'P_E_T_K_N_R_L'.split('_'), - weekdaysMin : 'P_E_T_K_N_R_L'.split('_'), - longDateFormat : { - LT : 'H:mm', - LTS : 'H:mm:ss', - L : 'DD.MM.YYYY', - LL : 'D. MMMM YYYY', - LLL : 'D. MMMM YYYY H:mm', - LLLL : 'dddd, D. MMMM YYYY H:mm' - }, - 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 : processRelativeTime$3, - m : processRelativeTime$3, - mm : processRelativeTime$3, - h : processRelativeTime$3, - hh : processRelativeTime$3, - d : processRelativeTime$3, - dd : '%d päeva', - M : processRelativeTime$3, - MM : processRelativeTime$3, - y : processRelativeTime$3, - yy : processRelativeTime$3 - }, - dayOfMonthOrdinalParse: /\d{1,2}\./, - ordinal : '%d.', - week : { - dow : 1, // Monday is the first day of the week. - doy : 4 // The week that contains Jan 4th is the first week of the year. - } -}); - -//! moment.js locale configuration -//! locale : Basque [eu] -//! author : Eneko Illarramendi : https://github.com/eillarra - -hooks.defineLocale('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('_'), - monthsParseExact : true, - 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('_'), - weekdaysParseExact : true, - longDateFormat : { - LT : 'HH:mm', - LTS : 'HH:mm:ss', - L : 'YYYY-MM-DD', - LL : 'YYYY[ko] MMMM[ren] D[a]', - LLL : 'YYYY[ko] MMMM[ren] D[a] HH:mm', - LLLL : 'dddd, YYYY[ko] MMMM[ren] D[a] HH:mm', - l : 'YYYY-M-D', - ll : 'YYYY[ko] MMM D[a]', - lll : 'YYYY[ko] MMM D[a] HH:mm', - llll : 'ddd, YYYY[ko] MMM D[a] HH:mm' - }, - 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' - }, - dayOfMonthOrdinalParse: /\d{1,2}\./, - ordinal : '%d.', - week : { - dow : 1, // Monday is the first day of the week. - doy : 7 // The week that contains Jan 1st is the first week of the year. - } -}); - -//! moment.js locale configuration -//! locale : Persian [fa] -//! author : Ebrahim Byagowi : https://github.com/ebraminio - -var symbolMap$5 = { - '1': '۱', - '2': '۲', - '3': '۳', - '4': '۴', - '5': '۵', - '6': '۶', - '7': '۷', - '8': '۸', - '9': '۹', - '0': '۰' -}; -var numberMap$4 = { - '۱': '1', - '۲': '2', - '۳': '3', - '۴': '4', - '۵': '5', - '۶': '6', - '۷': '7', - '۸': '8', - '۹': '9', - '۰': '0' -}; - -hooks.defineLocale('fa', { - months : 'ژانویه_فوریه_مارس_آوریل_مه_ژوئن_ژوئیه_اوت_سپتامبر_اکتبر_نوامبر_دسامبر'.split('_'), - monthsShort : 'ژانویه_فوریه_مارس_آوریل_مه_ژوئن_ژوئیه_اوت_سپتامبر_اکتبر_نوامبر_دسامبر'.split('_'), - weekdays : 'یک\u200cشنبه_دوشنبه_سه\u200cشنبه_چهارشنبه_پنج\u200cشنبه_جمعه_شنبه'.split('_'), - weekdaysShort : 'یک\u200cشنبه_دوشنبه_سه\u200cشنبه_چهارشنبه_پنج\u200cشنبه_جمعه_شنبه'.split('_'), - weekdaysMin : 'ی_د_س_چ_پ_ج_ش'.split('_'), - weekdaysParseExact : true, - longDateFormat : { - LT : 'HH:mm', - LTS : 'HH:mm:ss', - L : 'DD/MM/YYYY', - LL : 'D MMMM YYYY', - LLL : 'D MMMM YYYY HH:mm', - LLLL : 'dddd, D MMMM YYYY HH:mm' - }, - meridiemParse: /قبل از ظهر|بعد از ظهر/, - isPM: function (input) { - return /بعد از ظهر/.test(input); - }, - meridiem : function (hour, minute, isLower) { - if (hour < 12) { - return 'قبل از ظهر'; - } else { - return 'بعد از ظهر'; - } - }, - 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 (string) { - return string.replace(/[۰-۹]/g, function (match) { - return numberMap$4[match]; - }).replace(/،/g, ','); - }, - postformat: function (string) { - return string.replace(/\d/g, function (match) { - return symbolMap$5[match]; - }).replace(/,/g, '،'); - }, - dayOfMonthOrdinalParse: /\d{1,2}م/, - ordinal : '%dم', - week : { - dow : 6, // Saturday is the first day of the week. - doy : 12 // The week that contains Jan 1st is the first week of the year. - } -}); - -//! moment.js locale configuration -//! locale : Finnish [fi] -//! author : Tarmo Aidantausta : https://github.com/bleadof - -var numbersPast = 'nolla yksi kaksi kolme neljä viisi kuusi seitsemän kahdeksan yhdeksän'.split(' '); -var numbersFuture = [ - 'nolla', 'yhden', 'kahden', 'kolmen', 'neljän', 'viiden', 'kuuden', - numbersPast[7], numbersPast[8], numbersPast[9] - ]; -function translate$2(number, withoutSuffix, key, isFuture) { - var result = ''; - switch (key) { - case 's': - return isFuture ? 'muutaman sekunnin' : 'muutama sekunti'; - case 'm': - return isFuture ? 'minuutin' : 'minuutti'; - case 'mm': - result = isFuture ? 'minuutin' : 'minuuttia'; - break; - case 'h': - return isFuture ? 'tunnin' : 'tunti'; - case 'hh': - result = isFuture ? 'tunnin' : 'tuntia'; - break; - case 'd': - return isFuture ? 'päivän' : 'päivä'; - case 'dd': - result = isFuture ? 'päivän' : 'päivää'; - break; - case 'M': - return isFuture ? 'kuukauden' : 'kuukausi'; - case 'MM': - result = isFuture ? 'kuukauden' : 'kuukautta'; - break; - case 'y': - return isFuture ? 'vuoden' : 'vuosi'; - case 'yy': - result = isFuture ? 'vuoden' : 'vuotta'; - break; - } - result = verbalNumber(number, isFuture) + ' ' + result; - return result; -} -function verbalNumber(number, isFuture) { - return number < 10 ? (isFuture ? numbersFuture[number] : numbersPast[number]) : number; -} - -hooks.defineLocale('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', - LTS : 'HH.mm.ss', - L : 'DD.MM.YYYY', - LL : 'Do MMMM[ta] YYYY', - LLL : 'Do MMMM[ta] YYYY, [klo] HH.mm', - LLLL : 'dddd, Do MMMM[ta] YYYY, [klo] HH.mm', - l : 'D.M.YYYY', - ll : 'Do MMM YYYY', - lll : 'Do MMM YYYY, [klo] HH.mm', - llll : 'ddd, Do MMM YYYY, [klo] HH.mm' - }, - 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 : translate$2, - m : translate$2, - mm : translate$2, - h : translate$2, - hh : translate$2, - d : translate$2, - dd : translate$2, - M : translate$2, - MM : translate$2, - y : translate$2, - yy : translate$2 - }, - dayOfMonthOrdinalParse: /\d{1,2}\./, - ordinal : '%d.', - week : { - dow : 1, // Monday is the first day of the week. - doy : 4 // The week that contains Jan 4th is the first week of the year. - } -}); - -//! moment.js locale configuration -//! locale : Faroese [fo] -//! author : Ragnar Johannesen : https://github.com/ragnar123 - -hooks.defineLocale('fo', { - months : 'januar_februar_mars_apríl_mai_juni_juli_august_september_oktober_november_desember'.split('_'), - monthsShort : 'jan_feb_mar_apr_mai_jun_jul_aug_sep_okt_nov_des'.split('_'), - weekdays : 'sunnudagur_mánadagur_týsdagur_mikudagur_hósdagur_fríggjadagur_leygardagur'.split('_'), - weekdaysShort : 'sun_mán_týs_mik_hós_frí_ley'.split('_'), - weekdaysMin : 'su_má_tý_mi_hó_fr_le'.split('_'), - longDateFormat : { - LT : 'HH:mm', - LTS : 'HH:mm:ss', - L : 'DD/MM/YYYY', - LL : 'D MMMM YYYY', - LLL : 'D MMMM YYYY HH:mm', - LLLL : 'dddd D. MMMM, YYYY HH:mm' - }, - calendar : { - sameDay : '[Í dag kl.] LT', - nextDay : '[Í morgin kl.] LT', - nextWeek : 'dddd [kl.] LT', - lastDay : '[Í gjár kl.] LT', - lastWeek : '[síðstu] dddd [kl] LT', - sameElse : 'L' - }, - relativeTime : { - future : 'um %s', - past : '%s síðani', - s : 'fá sekund', - m : 'ein minutt', - mm : '%d minuttir', - h : 'ein tími', - hh : '%d tímar', - d : 'ein dagur', - dd : '%d dagar', - M : 'ein mánaði', - MM : '%d mánaðir', - y : 'eitt ár', - yy : '%d ár' - }, - dayOfMonthOrdinalParse: /\d{1,2}\./, - ordinal : '%d.', - week : { - dow : 1, // Monday is the first day of the week. - doy : 4 // The week that contains Jan 4th is the first week of the year. - } -}); - -//! moment.js locale configuration -//! locale : French (Canada) [fr-ca] -//! author : Jonathan Abourbih : https://github.com/jonbca - -hooks.defineLocale('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('_'), - monthsParseExact : true, - 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('_'), - weekdaysParseExact : true, - longDateFormat : { - LT : 'HH:mm', - LTS : 'HH:mm:ss', - L : 'YYYY-MM-DD', - LL : 'D MMMM YYYY', - LLL : 'D MMMM YYYY HH:mm', - LLLL : 'dddd D MMMM YYYY HH:mm' - }, - 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' - }, - dayOfMonthOrdinalParse: /\d{1,2}(er|e)/, - ordinal : function (number, period) { - switch (period) { - // Words with masculine grammatical gender: mois, trimestre, jour - default: - case 'M': - case 'Q': - case 'D': - case 'DDD': - case 'd': - return number + (number === 1 ? 'er' : 'e'); - - // Words with feminine grammatical gender: semaine - case 'w': - case 'W': - return number + (number === 1 ? 're' : 'e'); - } - } -}); - -//! moment.js locale configuration -//! locale : French (Switzerland) [fr-ch] -//! author : Gaspard Bucher : https://github.com/gaspard - -hooks.defineLocale('fr-ch', { - 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('_'), - monthsParseExact : true, - 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('_'), - weekdaysParseExact : true, - longDateFormat : { - LT : 'HH:mm', - LTS : 'HH:mm:ss', - L : 'DD.MM.YYYY', - LL : 'D MMMM YYYY', - LLL : 'D MMMM YYYY HH:mm', - LLLL : 'dddd D MMMM YYYY HH:mm' - }, - 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' - }, - dayOfMonthOrdinalParse: /\d{1,2}(er|e)/, - ordinal : function (number, period) { - switch (period) { - // Words with masculine grammatical gender: mois, trimestre, jour - default: - case 'M': - case 'Q': - case 'D': - case 'DDD': - case 'd': - return number + (number === 1 ? 'er' : 'e'); - - // Words with feminine grammatical gender: semaine - case 'w': - case 'W': - return number + (number === 1 ? 're' : 'e'); - } - }, - week : { - dow : 1, // Monday is the first day of the week. - doy : 4 // The week that contains Jan 4th is the first week of the year. - } -}); - -//! moment.js locale configuration -//! locale : French [fr] -//! author : John Fischer : https://github.com/jfroffice - -hooks.defineLocale('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('_'), - monthsParseExact : true, - 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('_'), - weekdaysParseExact : true, - longDateFormat : { - LT : 'HH:mm', - LTS : 'HH:mm:ss', - L : 'DD/MM/YYYY', - LL : 'D MMMM YYYY', - LLL : 'D MMMM YYYY HH:mm', - LLLL : 'dddd D MMMM YYYY HH:mm' - }, - 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' - }, - dayOfMonthOrdinalParse: /\d{1,2}(er|)/, - ordinal : function (number, period) { - switch (period) { - // TODO: Return 'e' when day of month > 1. Move this case inside - // block for masculine words below. - // See https://github.com/moment/moment/issues/3375 - case 'D': - return number + (number === 1 ? 'er' : ''); - - // Words with masculine grammatical gender: mois, trimestre, jour - default: - case 'M': - case 'Q': - case 'DDD': - case 'd': - return number + (number === 1 ? 'er' : 'e'); - - // Words with feminine grammatical gender: semaine - case 'w': - case 'W': - return number + (number === 1 ? 're' : 'e'); - } - }, - week : { - dow : 1, // Monday is the first day of the week. - doy : 4 // The week that contains Jan 4th is the first week of the year. - } -}); - -//! moment.js locale configuration -//! locale : Frisian [fy] -//! author : Robin van der Vliet : https://github.com/robin0van0der0v - -var monthsShortWithDots = 'jan._feb._mrt._apr._mai_jun._jul._aug._sep._okt._nov._des.'.split('_'); -var monthsShortWithoutDots = 'jan_feb_mrt_apr_mai_jun_jul_aug_sep_okt_nov_des'.split('_'); - -hooks.defineLocale('fy', { - months : 'jannewaris_febrewaris_maart_april_maaie_juny_july_augustus_septimber_oktober_novimber_desimber'.split('_'), - monthsShort : function (m, format) { - if (!m) { - return monthsShortWithDots; - } else if (/-MMM-/.test(format)) { - return monthsShortWithoutDots[m.month()]; - } else { - return monthsShortWithDots[m.month()]; - } - }, - monthsParseExact : true, - weekdays : 'snein_moandei_tiisdei_woansdei_tongersdei_freed_sneon'.split('_'), - weekdaysShort : 'si._mo._ti._wo._to._fr._so.'.split('_'), - weekdaysMin : 'Si_Mo_Ti_Wo_To_Fr_So'.split('_'), - weekdaysParseExact : true, - longDateFormat : { - LT : 'HH:mm', - LTS : 'HH:mm:ss', - L : 'DD-MM-YYYY', - LL : 'D MMMM YYYY', - LLL : 'D MMMM YYYY HH:mm', - LLLL : 'dddd D MMMM YYYY HH:mm' - }, - calendar : { - sameDay: '[hjoed om] LT', - nextDay: '[moarn om] LT', - nextWeek: 'dddd [om] LT', - lastDay: '[juster om] LT', - lastWeek: '[ôfrûne] dddd [om] LT', - sameElse: 'L' - }, - relativeTime : { - future : 'oer %s', - past : '%s lyn', - s : 'in pear sekonden', - m : 'ien minút', - mm : '%d minuten', - h : 'ien oere', - hh : '%d oeren', - d : 'ien dei', - dd : '%d dagen', - M : 'ien moanne', - MM : '%d moannen', - y : 'ien jier', - yy : '%d jierren' - }, - dayOfMonthOrdinalParse: /\d{1,2}(ste|de)/, - ordinal : function (number) { - return number + ((number === 1 || number === 8 || number >= 20) ? 'ste' : 'de'); - }, - week : { - dow : 1, // Monday is the first day of the week. - doy : 4 // The week that contains Jan 4th is the first week of the year. - } -}); - -//! moment.js locale configuration -//! locale : Scottish Gaelic [gd] -//! author : Jon Ashdown : https://github.com/jonashdown - -var months$5 = [ - 'Am Faoilleach', 'An Gearran', 'Am Màrt', 'An Giblean', 'An Cèitean', 'An t-Ògmhios', 'An t-Iuchar', 'An Lùnastal', 'An t-Sultain', 'An Dàmhair', 'An t-Samhain', 'An Dùbhlachd' -]; - -var monthsShort$3 = ['Faoi', 'Gear', 'Màrt', 'Gibl', 'Cèit', 'Ògmh', 'Iuch', 'Lùn', 'Sult', 'Dàmh', 'Samh', 'Dùbh']; - -var weekdays$1 = ['Didòmhnaich', 'Diluain', 'Dimàirt', 'Diciadain', 'Diardaoin', 'Dihaoine', 'Disathairne']; - -var weekdaysShort = ['Did', 'Dil', 'Dim', 'Dic', 'Dia', 'Dih', 'Dis']; - -var weekdaysMin = ['Dò', 'Lu', 'Mà', 'Ci', 'Ar', 'Ha', 'Sa']; - -hooks.defineLocale('gd', { - months : months$5, - monthsShort : monthsShort$3, - monthsParseExact : true, - weekdays : weekdays$1, - weekdaysShort : weekdaysShort, - weekdaysMin : weekdaysMin, - longDateFormat : { - LT : 'HH:mm', - LTS : 'HH:mm:ss', - L : 'DD/MM/YYYY', - LL : 'D MMMM YYYY', - LLL : 'D MMMM YYYY HH:mm', - LLLL : 'dddd, D MMMM YYYY HH:mm' - }, - calendar : { - sameDay : '[An-diugh aig] LT', - nextDay : '[A-màireach aig] LT', - nextWeek : 'dddd [aig] LT', - lastDay : '[An-dè aig] LT', - lastWeek : 'dddd [seo chaidh] [aig] LT', - sameElse : 'L' - }, - relativeTime : { - future : 'ann an %s', - past : 'bho chionn %s', - s : 'beagan diogan', - m : 'mionaid', - mm : '%d mionaidean', - h : 'uair', - hh : '%d uairean', - d : 'latha', - dd : '%d latha', - M : 'mìos', - MM : '%d mìosan', - y : 'bliadhna', - yy : '%d bliadhna' - }, - dayOfMonthOrdinalParse : /\d{1,2}(d|na|mh)/, - ordinal : function (number) { - var output = number === 1 ? 'd' : number % 10 === 2 ? 'na' : 'mh'; - return number + output; - }, - week : { - dow : 1, // Monday is the first day of the week. - doy : 4 // The week that contains Jan 4th is the first week of the year. - } -}); - -//! moment.js locale configuration -//! locale : Galician [gl] -//! author : Juan G. Hurtado : https://github.com/juanghurtado - -hooks.defineLocale('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('_'), - monthsParseExact: true, - 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('_'), - weekdaysParseExact : true, - longDateFormat : { - LT : 'H:mm', - LTS : 'H:mm:ss', - L : 'DD/MM/YYYY', - LL : 'D [de] MMMM [de] YYYY', - LLL : 'D [de] MMMM [de] YYYY H:mm', - LLLL : 'dddd, D [de] MMMM [de] YYYY H:mm' - }, - calendar : { - sameDay : function () { - return '[hoxe ' + ((this.hours() !== 1) ? 'ás' : 'á') + '] LT'; - }, - nextDay : function () { - return '[mañá ' + ((this.hours() !== 1) ? 'ás' : 'á') + '] LT'; - }, - nextWeek : function () { - return 'dddd [' + ((this.hours() !== 1) ? 'ás' : 'a') + '] LT'; - }, - lastDay : function () { - return '[onte ' + ((this.hours() !== 1) ? 'á' : 'a') + '] LT'; - }, - lastWeek : function () { - return '[o] dddd [pasado ' + ((this.hours() !== 1) ? 'ás' : 'a') + '] LT'; - }, - sameElse : 'L' - }, - relativeTime : { - future : function (str) { - if (str.indexOf('un') === 0) { - return 'n' + str; - } - return 'en ' + str; - }, - 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' - }, - dayOfMonthOrdinalParse : /\d{1,2}º/, - ordinal : '%dº', - week : { - dow : 1, // Monday is the first day of the week. - doy : 4 // The week that contains Jan 4th is the first week of the year. - } -}); - -//! moment.js locale configuration -//! locale : Konkani Latin script [gom-latn] -//! author : The Discoverer : https://github.com/WikiDiscoverer - -function processRelativeTime$4(number, withoutSuffix, key, isFuture) { - var format = { - 's': ['thodde secondanim', 'thodde second'], - 'm': ['eka mintan', 'ek minute'], - 'mm': [number + ' mintanim', number + ' mintam'], - 'h': ['eka horan', 'ek hor'], - 'hh': [number + ' horanim', number + ' hor'], - 'd': ['eka disan', 'ek dis'], - 'dd': [number + ' disanim', number + ' dis'], - 'M': ['eka mhoinean', 'ek mhoino'], - 'MM': [number + ' mhoineanim', number + ' mhoine'], - 'y': ['eka vorsan', 'ek voros'], - 'yy': [number + ' vorsanim', number + ' vorsam'] - }; - return withoutSuffix ? format[key][0] : format[key][1]; -} - -hooks.defineLocale('gom-latn', { - months : 'Janer_Febrer_Mars_Abril_Mai_Jun_Julai_Agost_Setembr_Otubr_Novembr_Dezembr'.split('_'), - monthsShort : 'Jan._Feb._Mars_Abr._Mai_Jun_Jul._Ago._Set._Otu._Nov._Dez.'.split('_'), - monthsParseExact : true, - weekdays : 'Aitar_Somar_Mongllar_Budvar_Brestar_Sukrar_Son\'var'.split('_'), - weekdaysShort : 'Ait._Som._Mon._Bud._Bre._Suk._Son.'.split('_'), - weekdaysMin : 'Ai_Sm_Mo_Bu_Br_Su_Sn'.split('_'), - weekdaysParseExact : true, - longDateFormat : { - LT : 'A h:mm [vazta]', - LTS : 'A h:mm:ss [vazta]', - L : 'DD-MM-YYYY', - LL : 'D MMMM YYYY', - LLL : 'D MMMM YYYY A h:mm [vazta]', - LLLL : 'dddd, MMMM[achea] Do, YYYY, A h:mm [vazta]', - llll: 'ddd, D MMM YYYY, A h:mm [vazta]' - }, - calendar : { - sameDay: '[Aiz] LT', - nextDay: '[Faleam] LT', - nextWeek: '[Ieta to] dddd[,] LT', - lastDay: '[Kal] LT', - lastWeek: '[Fatlo] dddd[,] LT', - sameElse: 'L' - }, - relativeTime : { - future : '%s', - past : '%s adim', - s : processRelativeTime$4, - m : processRelativeTime$4, - mm : processRelativeTime$4, - h : processRelativeTime$4, - hh : processRelativeTime$4, - d : processRelativeTime$4, - dd : processRelativeTime$4, - M : processRelativeTime$4, - MM : processRelativeTime$4, - y : processRelativeTime$4, - yy : processRelativeTime$4 - }, - dayOfMonthOrdinalParse : /\d{1,2}(er)/, - ordinal : function (number, period) { - switch (period) { - // the ordinal 'er' only applies to day of the month - case 'D': - return number + 'er'; - default: - case 'M': - case 'Q': - case 'DDD': - case 'd': - case 'w': - case 'W': - return number; - } - }, - week : { - dow : 1, // Monday is the first day of the week. - doy : 4 // The week that contains Jan 4th is the first week of the year. - }, - meridiemParse: /rati|sokalli|donparam|sanje/, - meridiemHour : function (hour, meridiem) { - if (hour === 12) { - hour = 0; - } - if (meridiem === 'rati') { - return hour < 4 ? hour : hour + 12; - } else if (meridiem === 'sokalli') { - return hour; - } else if (meridiem === 'donparam') { - return hour > 12 ? hour : hour + 12; - } else if (meridiem === 'sanje') { - return hour + 12; - } - }, - meridiem : function (hour, minute, isLower) { - if (hour < 4) { - return 'rati'; - } else if (hour < 12) { - return 'sokalli'; - } else if (hour < 16) { - return 'donparam'; - } else if (hour < 20) { - return 'sanje'; - } else { - return 'rati'; - } - } -}); - -//! moment.js locale configuration -//! locale : Hebrew [he] -//! author : Tomer Cohen : https://github.com/tomer -//! author : Moshe Simantov : https://github.com/DevelopmentIL -//! author : Tal Ater : https://github.com/TalAter - -hooks.defineLocale('he', { - months : 'ינואר_פברואר_מרץ_אפריל_מאי_יוני_יולי_אוגוסט_ספטמבר_אוקטובר_נובמבר_דצמבר'.split('_'), - monthsShort : 'ינו׳_פבר׳_מרץ_אפר׳_מאי_יוני_יולי_אוג׳_ספט׳_אוק׳_נוב׳_דצמ׳'.split('_'), - weekdays : 'ראשון_שני_שלישי_רביעי_חמישי_שישי_שבת'.split('_'), - weekdaysShort : 'א׳_ב׳_ג׳_ד׳_ה׳_ו׳_ש׳'.split('_'), - weekdaysMin : 'א_ב_ג_ד_ה_ו_ש'.split('_'), - longDateFormat : { - LT : 'HH:mm', - LTS : 'HH:mm:ss', - L : 'DD/MM/YYYY', - LL : 'D [ב]MMMM YYYY', - LLL : 'D [ב]MMMM YYYY HH:mm', - LLLL : 'dddd, D [ב]MMMM YYYY HH:mm', - l : 'D/M/YYYY', - ll : 'D MMM YYYY', - lll : 'D MMM YYYY HH:mm', - llll : 'ddd, D MMM YYYY HH:mm' - }, - 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 (number) { - if (number === 2) { - return 'שעתיים'; - } - return number + ' שעות'; - }, - d : 'יום', - dd : function (number) { - if (number === 2) { - return 'יומיים'; - } - return number + ' ימים'; - }, - M : 'חודש', - MM : function (number) { - if (number === 2) { - return 'חודשיים'; - } - return number + ' חודשים'; - }, - y : 'שנה', - yy : function (number) { - if (number === 2) { - return 'שנתיים'; - } else if (number % 10 === 0 && number !== 10) { - return number + ' שנה'; - } - return number + ' שנים'; - } - }, - meridiemParse: /אחה"צ|לפנה"צ|אחרי הצהריים|לפני הצהריים|לפנות בוקר|בבוקר|בערב/i, - isPM : function (input) { - return /^(אחה"צ|אחרי הצהריים|בערב)$/.test(input); - }, - meridiem : function (hour, minute, isLower) { - if (hour < 5) { - return 'לפנות בוקר'; - } else if (hour < 10) { - return 'בבוקר'; - } else if (hour < 12) { - return isLower ? 'לפנה"צ' : 'לפני הצהריים'; - } else if (hour < 18) { - return isLower ? 'אחה"צ' : 'אחרי הצהריים'; - } else { - return 'בערב'; - } - } -}); - -//! moment.js locale configuration -//! locale : Hindi [hi] -//! author : Mayank Singhal : https://github.com/mayanksinghal - -var symbolMap$6 = { - '1': '१', - '2': '२', - '3': '३', - '4': '४', - '5': '५', - '6': '६', - '7': '७', - '8': '८', - '9': '९', - '0': '०' -}; -var numberMap$5 = { - '१': '1', - '२': '2', - '३': '3', - '४': '4', - '५': '5', - '६': '6', - '७': '7', - '८': '8', - '९': '9', - '०': '0' -}; - -hooks.defineLocale('hi', { - months : 'जनवरी_फ़रवरी_मार्च_अप्रैल_मई_जून_जुलाई_अगस्त_सितम्बर_अक्टूबर_नवम्बर_दिसम्बर'.split('_'), - monthsShort : 'जन._फ़र._मार्च_अप्रै._मई_जून_जुल._अग._सित._अक्टू._नव._दिस.'.split('_'), - monthsParseExact: true, - weekdays : 'रविवार_सोमवार_मंगलवार_बुधवार_गुरूवार_शुक्रवार_शनिवार'.split('_'), - weekdaysShort : 'रवि_सोम_मंगल_बुध_गुरू_शुक्र_शनि'.split('_'), - weekdaysMin : 'र_सो_मं_बु_गु_शु_श'.split('_'), - longDateFormat : { - LT : 'A h:mm बजे', - LTS : 'A h:mm:ss बजे', - L : 'DD/MM/YYYY', - LL : 'D MMMM YYYY', - LLL : 'D MMMM YYYY, A h:mm बजे', - LLLL : 'dddd, D MMMM YYYY, A h:mm बजे' - }, - 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 (string) { - return string.replace(/[१२३४५६७८९०]/g, function (match) { - return numberMap$5[match]; - }); - }, - postformat: function (string) { - return string.replace(/\d/g, function (match) { - return symbolMap$6[match]; - }); - }, - // Hindi notation for meridiems are quite fuzzy in practice. While there exists - // a rigid notion of a 'Pahar' it is not used as rigidly in modern Hindi. - meridiemParse: /रात|सुबह|दोपहर|शाम/, - meridiemHour : function (hour, meridiem) { - if (hour === 12) { - hour = 0; - } - if (meridiem === 'रात') { - return hour < 4 ? hour : hour + 12; - } else if (meridiem === 'सुबह') { - return hour; - } else if (meridiem === 'दोपहर') { - return hour >= 10 ? hour : hour + 12; - } else if (meridiem === 'शाम') { - return hour + 12; - } - }, - meridiem : function (hour, minute, isLower) { - if (hour < 4) { - return 'रात'; - } else if (hour < 10) { - return 'सुबह'; - } else if (hour < 17) { - return 'दोपहर'; - } else if (hour < 20) { - return 'शाम'; - } else { - return 'रात'; - } - }, - week : { - dow : 0, // Sunday is the first day of the week. - doy : 6 // The week that contains Jan 1st is the first week of the year. - } -}); - -//! moment.js locale configuration -//! locale : Croatian [hr] -//! author : Bojan Marković : https://github.com/bmarkovic - -function translate$3(number, withoutSuffix, key) { - var result = number + ' '; - switch (key) { - case 'm': - return withoutSuffix ? 'jedna minuta' : 'jedne minute'; - case 'mm': - if (number === 1) { - result += 'minuta'; - } else if (number === 2 || number === 3 || number === 4) { - result += 'minute'; - } else { - result += 'minuta'; - } - return result; - case 'h': - return withoutSuffix ? 'jedan sat' : 'jednog sata'; - case 'hh': - if (number === 1) { - result += 'sat'; - } else if (number === 2 || number === 3 || number === 4) { - result += 'sata'; - } else { - result += 'sati'; - } - return result; - case 'dd': - if (number === 1) { - result += 'dan'; - } else { - result += 'dana'; - } - return result; - case 'MM': - if (number === 1) { - result += 'mjesec'; - } else if (number === 2 || number === 3 || number === 4) { - result += 'mjeseca'; - } else { - result += 'mjeseci'; - } - return result; - case 'yy': - if (number === 1) { - result += 'godina'; - } else if (number === 2 || number === 3 || number === 4) { - result += 'godine'; - } else { - result += 'godina'; - } - return result; - } -} - -hooks.defineLocale('hr', { - months : { - format: 'siječnja_veljače_ožujka_travnja_svibnja_lipnja_srpnja_kolovoza_rujna_listopada_studenoga_prosinca'.split('_'), - standalone: 'siječanj_veljača_ožujak_travanj_svibanj_lipanj_srpanj_kolovoz_rujan_listopad_studeni_prosinac'.split('_') - }, - monthsShort : 'sij._velj._ožu._tra._svi._lip._srp._kol._ruj._lis._stu._pro.'.split('_'), - monthsParseExact: true, - 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('_'), - weekdaysParseExact : true, - longDateFormat : { - LT : 'H:mm', - LTS : 'H:mm:ss', - L : 'DD.MM.YYYY', - LL : 'D. MMMM YYYY', - LLL : 'D. MMMM YYYY H:mm', - LLLL : 'dddd, D. MMMM YYYY H:mm' - }, - 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 : translate$3, - mm : translate$3, - h : translate$3, - hh : translate$3, - d : 'dan', - dd : translate$3, - M : 'mjesec', - MM : translate$3, - y : 'godinu', - yy : translate$3 - }, - dayOfMonthOrdinalParse: /\d{1,2}\./, - ordinal : '%d.', - week : { - dow : 1, // Monday is the first day of the week. - doy : 7 // The week that contains Jan 1st is the first week of the year. - } -}); - -//! moment.js locale configuration -//! locale : Hungarian [hu] -//! author : Adam Brunner : https://github.com/adambrunner - -var weekEndings = 'vasárnap hétfőn kedden szerdán csütörtökön pénteken szombaton'.split(' '); -function translate$4(number, withoutSuffix, key, isFuture) { - var num = number, - suffix; - switch (key) { - case 's': - return (isFuture || withoutSuffix) ? 'néhány másodperc' : 'néhány másodperce'; - case 'm': - return 'egy' + (isFuture || withoutSuffix ? ' perc' : ' perce'); - case 'mm': - return num + (isFuture || withoutSuffix ? ' perc' : ' perce'); - case 'h': - return 'egy' + (isFuture || withoutSuffix ? ' óra' : ' órája'); - case 'hh': - return num + (isFuture || withoutSuffix ? ' óra' : ' órája'); - case 'd': - return 'egy' + (isFuture || withoutSuffix ? ' nap' : ' napja'); - case 'dd': - return num + (isFuture || withoutSuffix ? ' nap' : ' napja'); - case 'M': - return 'egy' + (isFuture || withoutSuffix ? ' hónap' : ' hónapja'); - case 'MM': - return num + (isFuture || withoutSuffix ? ' hónap' : ' hónapja'); - case 'y': - return 'egy' + (isFuture || withoutSuffix ? ' év' : ' éve'); - case 'yy': - return num + (isFuture || withoutSuffix ? ' év' : ' éve'); - } - return ''; -} -function week(isFuture) { - return (isFuture ? '' : '[múlt] ') + '[' + weekEndings[this.day()] + '] LT[-kor]'; -} - -hooks.defineLocale('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 : 'vas_hét_kedd_sze_csüt_pén_szo'.split('_'), - weekdaysMin : 'v_h_k_sze_cs_p_szo'.split('_'), - longDateFormat : { - LT : 'H:mm', - LTS : 'H:mm:ss', - L : 'YYYY.MM.DD.', - LL : 'YYYY. MMMM D.', - LLL : 'YYYY. MMMM D. H:mm', - LLLL : 'YYYY. MMMM D., dddd H:mm' - }, - meridiemParse: /de|du/i, - isPM: function (input) { - return input.charAt(1).toLowerCase() === 'u'; - }, - meridiem : function (hours, minutes, isLower) { - if (hours < 12) { - return isLower === true ? 'de' : 'DE'; - } else { - return isLower === true ? 'du' : 'DU'; - } - }, - calendar : { - sameDay : '[ma] LT[-kor]', - nextDay : '[holnap] LT[-kor]', - nextWeek : function () { - return week.call(this, true); - }, - lastDay : '[tegnap] LT[-kor]', - lastWeek : function () { - return week.call(this, false); - }, - sameElse : 'L' - }, - relativeTime : { - future : '%s múlva', - past : '%s', - s : translate$4, - m : translate$4, - mm : translate$4, - h : translate$4, - hh : translate$4, - d : translate$4, - dd : translate$4, - M : translate$4, - MM : translate$4, - y : translate$4, - yy : translate$4 - }, - dayOfMonthOrdinalParse: /\d{1,2}\./, - ordinal : '%d.', - week : { - dow : 1, // Monday is the first day of the week. - doy : 4 // The week that contains Jan 4th is the first week of the year. - } -}); - -//! moment.js locale configuration -//! locale : Armenian [hy-am] -//! author : Armendarabyan : https://github.com/armendarabyan - -hooks.defineLocale('hy-am', { - months : { - format: 'հունվարի_փետրվարի_մարտի_ապրիլի_մայիսի_հունիսի_հուլիսի_օգոստոսի_սեպտեմբերի_հոկտեմբերի_նոյեմբերի_դեկտեմբերի'.split('_'), - standalone: 'հունվար_փետրվար_մարտ_ապրիլ_մայիս_հունիս_հուլիս_օգոստոս_սեպտեմբեր_հոկտեմբեր_նոյեմբեր_դեկտեմբեր'.split('_') - }, - monthsShort : 'հնվ_փտր_մրտ_ապր_մյս_հնս_հլս_օգս_սպտ_հկտ_նմբ_դկտ'.split('_'), - weekdays : 'կիրակի_երկուշաբթի_երեքշաբթի_չորեքշաբթի_հինգշաբթի_ուրբաթ_շաբաթ'.split('_'), - weekdaysShort : 'կրկ_երկ_երք_չրք_հնգ_ուրբ_շբթ'.split('_'), - weekdaysMin : 'կրկ_երկ_երք_չրք_հնգ_ուրբ_շբթ'.split('_'), - longDateFormat : { - LT : 'HH:mm', - LTS : 'HH:mm:ss', - L : 'DD.MM.YYYY', - LL : 'D MMMM YYYY թ.', - LLL : 'D MMMM YYYY թ., HH:mm', - LLLL : 'dddd, D MMMM YYYY թ., HH:mm' - }, - calendar : { - sameDay: '[այսօր] LT', - nextDay: '[վաղը] LT', - lastDay: '[երեկ] LT', - nextWeek: function () { - return 'dddd [օրը ժամը] LT'; - }, - lastWeek: function () { - 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 տարի' - }, - meridiemParse: /գիշերվա|առավոտվա|ցերեկվա|երեկոյան/, - isPM: function (input) { - return /^(ցերեկվա|երեկոյան)$/.test(input); - }, - meridiem : function (hour) { - if (hour < 4) { - return 'գիշերվա'; - } else if (hour < 12) { - return 'առավոտվա'; - } else if (hour < 17) { - return 'ցերեկվա'; - } else { - return 'երեկոյան'; - } - }, - dayOfMonthOrdinalParse: /\d{1,2}|\d{1,2}-(ին|րդ)/, - ordinal: function (number, period) { - switch (period) { - case 'DDD': - case 'w': - case 'W': - case 'DDDo': - if (number === 1) { - return number + '-ին'; - } - return number + '-րդ'; - default: - return number; - } - }, - week : { - dow : 1, // Monday is the first day of the week. - doy : 7 // The week that contains Jan 1st is the first week of the year. - } -}); - -//! moment.js locale configuration -//! locale : Indonesian [id] -//! author : Mohammad Satrio Utomo : https://github.com/tyok -//! reference: http://id.wikisource.org/wiki/Pedoman_Umum_Ejaan_Bahasa_Indonesia_yang_Disempurnakan - -hooks.defineLocale('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', - LTS : 'HH.mm.ss', - L : 'DD/MM/YYYY', - LL : 'D MMMM YYYY', - LLL : 'D MMMM YYYY [pukul] HH.mm', - LLLL : 'dddd, D MMMM YYYY [pukul] HH.mm' - }, - meridiemParse: /pagi|siang|sore|malam/, - meridiemHour : function (hour, meridiem) { - if (hour === 12) { - hour = 0; - } - if (meridiem === 'pagi') { - return hour; - } else if (meridiem === 'siang') { - return hour >= 11 ? hour : hour + 12; - } else if (meridiem === 'sore' || meridiem === 'malam') { - return hour + 12; - } - }, - meridiem : function (hours, minutes, isLower) { - if (hours < 11) { - return 'pagi'; - } else if (hours < 15) { - return 'siang'; - } else if (hours < 19) { - return 'sore'; - } else { - return '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, // Monday is the first day of the week. - doy : 7 // The week that contains Jan 1st is the first week of the year. - } -}); - -//! moment.js locale configuration -//! locale : Icelandic [is] -//! author : Hinrik Örn Sigurðsson : https://github.com/hinrik - -function plural$2(n) { - if (n % 100 === 11) { - return true; - } else if (n % 10 === 1) { - return false; - } - return true; -} -function translate$5(number, withoutSuffix, key, isFuture) { - var result = number + ' '; - switch (key) { - case 's': - return withoutSuffix || isFuture ? 'nokkrar sekúndur' : 'nokkrum sekúndum'; - case 'm': - return withoutSuffix ? 'mínúta' : 'mínútu'; - case 'mm': - if (plural$2(number)) { - return result + (withoutSuffix || isFuture ? 'mínútur' : 'mínútum'); - } else if (withoutSuffix) { - return result + 'mínúta'; - } - return result + 'mínútu'; - case 'hh': - if (plural$2(number)) { - return result + (withoutSuffix || isFuture ? 'klukkustundir' : 'klukkustundum'); - } - return result + 'klukkustund'; - case 'd': - if (withoutSuffix) { - return 'dagur'; - } - return isFuture ? 'dag' : 'degi'; - case 'dd': - if (plural$2(number)) { - if (withoutSuffix) { - return result + 'dagar'; - } - return result + (isFuture ? 'daga' : 'dögum'); - } else if (withoutSuffix) { - return result + 'dagur'; - } - return result + (isFuture ? 'dag' : 'degi'); - case 'M': - if (withoutSuffix) { - return 'mánuður'; - } - return isFuture ? 'mánuð' : 'mánuði'; - case 'MM': - if (plural$2(number)) { - if (withoutSuffix) { - return result + 'mánuðir'; - } - return result + (isFuture ? 'mánuði' : 'mánuðum'); - } else if (withoutSuffix) { - return result + 'mánuður'; - } - return result + (isFuture ? 'mánuð' : 'mánuði'); - case 'y': - return withoutSuffix || isFuture ? 'ár' : 'ári'; - case 'yy': - if (plural$2(number)) { - return result + (withoutSuffix || isFuture ? 'ár' : 'árum'); - } - return result + (withoutSuffix || isFuture ? 'ár' : 'ári'); - } -} - -hooks.defineLocale('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', - LTS : 'H:mm:ss', - L : 'DD.MM.YYYY', - LL : 'D. MMMM YYYY', - LLL : 'D. MMMM YYYY [kl.] H:mm', - LLLL : 'dddd, D. MMMM YYYY [kl.] H:mm' - }, - 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 : translate$5, - m : translate$5, - mm : translate$5, - h : 'klukkustund', - hh : translate$5, - d : translate$5, - dd : translate$5, - M : translate$5, - MM : translate$5, - y : translate$5, - yy : translate$5 - }, - dayOfMonthOrdinalParse: /\d{1,2}\./, - ordinal : '%d.', - week : { - dow : 1, // Monday is the first day of the week. - doy : 4 // The week that contains Jan 4th is the first week of the year. - } -}); - -//! moment.js locale configuration -//! locale : Italian [it] -//! author : Lorenzo : https://github.com/aliem -//! author: Mattia Larentis: https://github.com/nostalgiaz - -hooks.defineLocale('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 : 'do_lu_ma_me_gi_ve_sa'.split('_'), - longDateFormat : { - LT : 'HH:mm', - LTS : 'HH:mm:ss', - L : 'DD/MM/YYYY', - LL : 'D MMMM YYYY', - LLL : 'D MMMM YYYY HH:mm', - LLLL : 'dddd, D MMMM YYYY HH:mm' - }, - calendar : { - sameDay: '[Oggi alle] LT', - nextDay: '[Domani alle] LT', - nextWeek: 'dddd [alle] LT', - lastDay: '[Ieri alle] LT', - lastWeek: function () { - switch (this.day()) { - case 0: - return '[la scorsa] dddd [alle] LT'; - default: - return '[lo scorso] dddd [alle] LT'; - } - }, - sameElse: 'L' - }, - relativeTime : { - future : function (s) { - return ((/^[0-9].+$/).test(s) ? 'tra' : 'in') + ' ' + s; - }, - past : '%s fa', - s : 'alcuni 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' - }, - dayOfMonthOrdinalParse : /\d{1,2}º/, - ordinal: '%dº', - week : { - dow : 1, // Monday is the first day of the week. - doy : 4 // The week that contains Jan 4th is the first week of the year. - } -}); - -//! moment.js locale configuration -//! locale : Japanese [ja] -//! author : LI Long : https://github.com/baryon - -hooks.defineLocale('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 : 'HH:mm', - LTS : 'HH:mm:ss', - L : 'YYYY/MM/DD', - LL : 'YYYY年M月D日', - LLL : 'YYYY年M月D日 HH:mm', - LLLL : 'YYYY年M月D日 HH:mm dddd', - l : 'YYYY/MM/DD', - ll : 'YYYY年M月D日', - lll : 'YYYY年M月D日 HH:mm', - llll : 'YYYY年M月D日 HH:mm dddd' - }, - meridiemParse: /午前|午後/i, - isPM : function (input) { - return input === '午後'; - }, - meridiem : function (hour, minute, isLower) { - if (hour < 12) { - return '午前'; - } else { - return '午後'; - } - }, - calendar : { - sameDay : '[今日] LT', - nextDay : '[明日] LT', - nextWeek : '[来週]dddd LT', - lastDay : '[昨日] LT', - lastWeek : '[前週]dddd LT', - sameElse : 'L' - }, - dayOfMonthOrdinalParse : /\d{1,2}日/, - ordinal : function (number, period) { - switch (period) { - case 'd': - case 'D': - case 'DDD': - return number + '日'; - default: - return number; - } - }, - 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年' - } -}); - -//! moment.js locale configuration -//! locale : Javanese [jv] -//! author : Rony Lantip : https://github.com/lantip -//! reference: http://jv.wikipedia.org/wiki/Basa_Jawa - -hooks.defineLocale('jv', { - months : 'Januari_Februari_Maret_April_Mei_Juni_Juli_Agustus_September_Oktober_Nopember_Desember'.split('_'), - monthsShort : 'Jan_Feb_Mar_Apr_Mei_Jun_Jul_Ags_Sep_Okt_Nop_Des'.split('_'), - weekdays : 'Minggu_Senen_Seloso_Rebu_Kemis_Jemuwah_Septu'.split('_'), - weekdaysShort : 'Min_Sen_Sel_Reb_Kem_Jem_Sep'.split('_'), - weekdaysMin : 'Mg_Sn_Sl_Rb_Km_Jm_Sp'.split('_'), - longDateFormat : { - LT : 'HH.mm', - LTS : 'HH.mm.ss', - L : 'DD/MM/YYYY', - LL : 'D MMMM YYYY', - LLL : 'D MMMM YYYY [pukul] HH.mm', - LLLL : 'dddd, D MMMM YYYY [pukul] HH.mm' - }, - meridiemParse: /enjing|siyang|sonten|ndalu/, - meridiemHour : function (hour, meridiem) { - if (hour === 12) { - hour = 0; - } - if (meridiem === 'enjing') { - return hour; - } else if (meridiem === 'siyang') { - return hour >= 11 ? hour : hour + 12; - } else if (meridiem === 'sonten' || meridiem === 'ndalu') { - return hour + 12; - } - }, - meridiem : function (hours, minutes, isLower) { - if (hours < 11) { - return 'enjing'; - } else if (hours < 15) { - return 'siyang'; - } else if (hours < 19) { - return 'sonten'; - } else { - return 'ndalu'; - } - }, - calendar : { - sameDay : '[Dinten puniko pukul] LT', - nextDay : '[Mbenjang pukul] LT', - nextWeek : 'dddd [pukul] LT', - lastDay : '[Kala wingi pukul] LT', - lastWeek : 'dddd [kepengker pukul] LT', - sameElse : 'L' - }, - relativeTime : { - future : 'wonten ing %s', - past : '%s ingkang kepengker', - s : 'sawetawis detik', - m : 'setunggal menit', - mm : '%d menit', - h : 'setunggal jam', - hh : '%d jam', - d : 'sedinten', - dd : '%d dinten', - M : 'sewulan', - MM : '%d wulan', - y : 'setaun', - yy : '%d taun' - }, - week : { - dow : 1, // Monday is the first day of the week. - doy : 7 // The week that contains Jan 1st is the first week of the year. - } -}); - -//! moment.js locale configuration -//! locale : Georgian [ka] -//! author : Irakli Janiashvili : https://github.com/irakli-janiashvili - -hooks.defineLocale('ka', { - months : { - standalone: 'იანვარი_თებერვალი_მარტი_აპრილი_მაისი_ივნისი_ივლისი_აგვისტო_სექტემბერი_ოქტომბერი_ნოემბერი_დეკემბერი'.split('_'), - format: 'იანვარს_თებერვალს_მარტს_აპრილის_მაისს_ივნისს_ივლისს_აგვისტს_სექტემბერს_ოქტომბერს_ნოემბერს_დეკემბერს'.split('_') - }, - monthsShort : 'იან_თებ_მარ_აპრ_მაი_ივნ_ივლ_აგვ_სექ_ოქტ_ნოე_დეკ'.split('_'), - weekdays : { - standalone: 'კვირა_ორშაბათი_სამშაბათი_ოთხშაბათი_ხუთშაბათი_პარასკევი_შაბათი'.split('_'), - format: 'კვირას_ორშაბათს_სამშაბათს_ოთხშაბათს_ხუთშაბათს_პარასკევს_შაბათს'.split('_'), - isFormat: /(წინა|შემდეგ)/ - }, - weekdaysShort : 'კვი_ორშ_სამ_ოთხ_ხუთ_პარ_შაბ'.split('_'), - weekdaysMin : 'კვ_ორ_სა_ოთ_ხუ_პა_შა'.split('_'), - longDateFormat : { - LT : 'h:mm A', - LTS : 'h:mm:ss A', - L : 'DD/MM/YYYY', - LL : 'D MMMM YYYY', - LLL : 'D MMMM YYYY h:mm A', - LLLL : 'dddd, D MMMM YYYY h:mm A' - }, - calendar : { - sameDay : '[დღეს] LT[-ზე]', - nextDay : '[ხვალ] LT[-ზე]', - lastDay : '[გუშინ] LT[-ზე]', - nextWeek : '[შემდეგ] dddd LT[-ზე]', - lastWeek : '[წინა] dddd LT-ზე', - sameElse : 'L' - }, - relativeTime : { - future : function (s) { - return (/(წამი|წუთი|საათი|წელი)/).test(s) ? - s.replace(/ი$/, 'ში') : - s + 'ში'; - }, - past : function (s) { - if ((/(წამი|წუთი|საათი|დღე|თვე)/).test(s)) { - return s.replace(/(ი|ე)$/, 'ის უკან'); - } - if ((/წელი/).test(s)) { - return s.replace(/წელი$/, 'წლის უკან'); - } - }, - s : 'რამდენიმე წამი', - m : 'წუთი', - mm : '%d წუთი', - h : 'საათი', - hh : '%d საათი', - d : 'დღე', - dd : '%d დღე', - M : 'თვე', - MM : '%d თვე', - y : 'წელი', - yy : '%d წელი' - }, - dayOfMonthOrdinalParse: /0|1-ლი|მე-\d{1,2}|\d{1,2}-ე/, - ordinal : function (number) { - if (number === 0) { - return number; - } - if (number === 1) { - return number + '-ლი'; - } - if ((number < 20) || (number <= 100 && (number % 20 === 0)) || (number % 100 === 0)) { - return 'მე-' + number; - } - return number + '-ე'; - }, - week : { - dow : 1, - doy : 7 - } -}); - -//! moment.js locale configuration -//! locale : Kazakh [kk] -//! authors : Nurlan Rakhimzhanov : https://github.com/nurlan - -var suffixes$1 = { - 0: '-ші', - 1: '-ші', - 2: '-ші', - 3: '-ші', - 4: '-ші', - 5: '-ші', - 6: '-шы', - 7: '-ші', - 8: '-ші', - 9: '-шы', - 10: '-шы', - 20: '-шы', - 30: '-шы', - 40: '-шы', - 50: '-ші', - 60: '-шы', - 70: '-ші', - 80: '-ші', - 90: '-шы', - 100: '-ші' -}; - -hooks.defineLocale('kk', { - months : 'қаңтар_ақпан_наурыз_сәуір_мамыр_маусым_шілде_тамыз_қыркүйек_қазан_қараша_желтоқсан'.split('_'), - monthsShort : 'қаң_ақп_нау_сәу_мам_мау_шіл_там_қыр_қаз_қар_жел'.split('_'), - weekdays : 'жексенбі_дүйсенбі_сейсенбі_сәрсенбі_бейсенбі_жұма_сенбі'.split('_'), - weekdaysShort : 'жек_дүй_сей_сәр_бей_жұм_сен'.split('_'), - weekdaysMin : 'жк_дй_сй_ср_бй_жм_сн'.split('_'), - longDateFormat : { - LT : 'HH:mm', - LTS : 'HH:mm:ss', - L : 'DD.MM.YYYY', - LL : 'D MMMM YYYY', - LLL : 'D MMMM YYYY HH:mm', - LLLL : 'dddd, D MMMM YYYY HH:mm' - }, - 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 жыл' - }, - dayOfMonthOrdinalParse: /\d{1,2}-(ші|шы)/, - ordinal : function (number) { - var a = number % 10, - b = number >= 100 ? 100 : null; - return number + (suffixes$1[number] || suffixes$1[a] || suffixes$1[b]); - }, - week : { - dow : 1, // Monday is the first day of the week. - doy : 7 // The week that contains Jan 1st is the first week of the year. - } -}); - -//! moment.js locale configuration -//! locale : Cambodian [km] -//! author : Kruy Vanna : https://github.com/kruyvanna - -hooks.defineLocale('km', { - months: 'មករា_កុម្ភៈ_មីនា_មេសា_ឧសភា_មិថុនា_កក្កដា_សីហា_កញ្ញា_តុលា_វិច្ឆិកា_ធ្នូ'.split('_'), - monthsShort: 'មករា_កុម្ភៈ_មីនា_មេសា_ឧសភា_មិថុនា_កក្កដា_សីហា_កញ្ញា_តុលា_វិច្ឆិកា_ធ្នូ'.split('_'), - weekdays: 'អាទិត្យ_ច័ន្ទ_អង្គារ_ពុធ_ព្រហស្បតិ៍_សុក្រ_សៅរ៍'.split('_'), - weekdaysShort: 'អាទិត្យ_ច័ន្ទ_អង្គារ_ពុធ_ព្រហស្បតិ៍_សុក្រ_សៅរ៍'.split('_'), - weekdaysMin: 'អាទិត្យ_ច័ន្ទ_អង្គារ_ពុធ_ព្រហស្បតិ៍_សុក្រ_សៅរ៍'.split('_'), - longDateFormat: { - LT: 'HH:mm', - LTS : 'HH:mm:ss', - L: 'DD/MM/YYYY', - LL: 'D MMMM YYYY', - LLL: 'D MMMM YYYY HH:mm', - LLLL: 'dddd, D MMMM YYYY HH:mm' - }, - 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, // Monday is the first day of the week. - doy: 4 // The week that contains Jan 4th is the first week of the year. - } -}); - -//! moment.js locale configuration -//! locale : Kannada [kn] -//! author : Rajeev Naik : https://github.com/rajeevnaikte - -var symbolMap$7 = { - '1': '೧', - '2': '೨', - '3': '೩', - '4': '೪', - '5': '೫', - '6': '೬', - '7': '೭', - '8': '೮', - '9': '೯', - '0': '೦' -}; -var numberMap$6 = { - '೧': '1', - '೨': '2', - '೩': '3', - '೪': '4', - '೫': '5', - '೬': '6', - '೭': '7', - '೮': '8', - '೯': '9', - '೦': '0' -}; - -hooks.defineLocale('kn', { - months : 'ಜನವರಿ_ಫೆಬ್ರವರಿ_ಮಾರ್ಚ್_ಏಪ್ರಿಲ್_ಮೇ_ಜೂನ್_ಜುಲೈ_ಆಗಸ್ಟ್_ಸೆಪ್ಟೆಂಬರ್_ಅಕ್ಟೋಬರ್_ನವೆಂಬರ್_ಡಿಸೆಂಬರ್'.split('_'), - monthsShort : 'ಜನ_ಫೆಬ್ರ_ಮಾರ್ಚ್_ಏಪ್ರಿಲ್_ಮೇ_ಜೂನ್_ಜುಲೈ_ಆಗಸ್ಟ್_ಸೆಪ್ಟೆಂಬ_ಅಕ್ಟೋಬ_ನವೆಂಬ_ಡಿಸೆಂಬ'.split('_'), - monthsParseExact: true, - weekdays : 'ಭಾನುವಾರ_ಸೋಮವಾರ_ಮಂಗಳವಾರ_ಬುಧವಾರ_ಗುರುವಾರ_ಶುಕ್ರವಾರ_ಶನಿವಾರ'.split('_'), - weekdaysShort : 'ಭಾನು_ಸೋಮ_ಮಂಗಳ_ಬುಧ_ಗುರು_ಶುಕ್ರ_ಶನಿ'.split('_'), - weekdaysMin : 'ಭಾ_ಸೋ_ಮಂ_ಬು_ಗು_ಶು_ಶ'.split('_'), - longDateFormat : { - LT : 'A h:mm', - LTS : 'A h:mm:ss', - L : 'DD/MM/YYYY', - LL : 'D MMMM YYYY', - LLL : 'D MMMM YYYY, A h:mm', - LLLL : 'dddd, D MMMM YYYY, A h:mm' - }, - 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 (string) { - return string.replace(/[೧೨೩೪೫೬೭೮೯೦]/g, function (match) { - return numberMap$6[match]; - }); - }, - postformat: function (string) { - return string.replace(/\d/g, function (match) { - return symbolMap$7[match]; - }); - }, - meridiemParse: /ರಾತ್ರಿ|ಬೆಳಿಗ್ಗೆ|ಮಧ್ಯಾಹ್ನ|ಸಂಜೆ/, - meridiemHour : function (hour, meridiem) { - if (hour === 12) { - hour = 0; - } - if (meridiem === 'ರಾತ್ರಿ') { - return hour < 4 ? hour : hour + 12; - } else if (meridiem === 'ಬೆಳಿಗ್ಗೆ') { - return hour; - } else if (meridiem === 'ಮಧ್ಯಾಹ್ನ') { - return hour >= 10 ? hour : hour + 12; - } else if (meridiem === 'ಸಂಜೆ') { - return hour + 12; - } - }, - meridiem : function (hour, minute, isLower) { - if (hour < 4) { - return 'ರಾತ್ರಿ'; - } else if (hour < 10) { - return 'ಬೆಳಿಗ್ಗೆ'; - } else if (hour < 17) { - return 'ಮಧ್ಯಾಹ್ನ'; - } else if (hour < 20) { - return 'ಸಂಜೆ'; - } else { - return 'ರಾತ್ರಿ'; - } - }, - dayOfMonthOrdinalParse: /\d{1,2}(ನೇ)/, - ordinal : function (number) { - return number + 'ನೇ'; - }, - week : { - dow : 0, // Sunday is the first day of the week. - doy : 6 // The week that contains Jan 1st is the first week of the year. - } -}); - -//! moment.js locale configuration -//! locale : Korean [ko] -//! author : Kyungwook, Park : https://github.com/kyungw00k -//! author : Jeeeyul Lee <jeeeyul@gmail.com> - -hooks.defineLocale('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', - LTS : 'A h:mm:ss', - L : 'YYYY.MM.DD', - LL : 'YYYY년 MMMM D일', - LLL : 'YYYY년 MMMM D일 A h:mm', - LLLL : 'YYYY년 MMMM D일 dddd A h:mm', - l : 'YYYY.MM.DD', - ll : 'YYYY년 MMMM D일', - lll : 'YYYY년 MMMM D일 A h:mm', - llll : 'YYYY년 MMMM D일 dddd A h:mm' - }, - calendar : { - sameDay : '오늘 LT', - nextDay : '내일 LT', - nextWeek : 'dddd LT', - lastDay : '어제 LT', - lastWeek : '지난주 dddd LT', - sameElse : 'L' - }, - relativeTime : { - future : '%s 후', - past : '%s 전', - s : '몇 초', - ss : '%d초', - m : '1분', - mm : '%d분', - h : '한 시간', - hh : '%d시간', - d : '하루', - dd : '%d일', - M : '한 달', - MM : '%d달', - y : '일 년', - yy : '%d년' - }, - dayOfMonthOrdinalParse : /\d{1,2}일/, - ordinal : '%d일', - meridiemParse : /오전|오후/, - isPM : function (token) { - return token === '오후'; - }, - meridiem : function (hour, minute, isUpper) { - return hour < 12 ? '오전' : '오후'; - } -}); - -//! moment.js locale configuration -//! locale : Kyrgyz [ky] -//! author : Chyngyz Arystan uulu : https://github.com/chyngyz - - -var suffixes$2 = { - 0: '-чү', - 1: '-чи', - 2: '-чи', - 3: '-чү', - 4: '-чү', - 5: '-чи', - 6: '-чы', - 7: '-чи', - 8: '-чи', - 9: '-чу', - 10: '-чу', - 20: '-чы', - 30: '-чу', - 40: '-чы', - 50: '-чү', - 60: '-чы', - 70: '-чи', - 80: '-чи', - 90: '-чу', - 100: '-чү' -}; - -hooks.defineLocale('ky', { - months : 'январь_февраль_март_апрель_май_июнь_июль_август_сентябрь_октябрь_ноябрь_декабрь'.split('_'), - monthsShort : 'янв_фев_март_апр_май_июнь_июль_авг_сен_окт_ноя_дек'.split('_'), - weekdays : 'Жекшемби_Дүйшөмбү_Шейшемби_Шаршемби_Бейшемби_Жума_Ишемби'.split('_'), - weekdaysShort : 'Жек_Дүй_Шей_Шар_Бей_Жум_Ише'.split('_'), - weekdaysMin : 'Жк_Дй_Шй_Шр_Бй_Жм_Иш'.split('_'), - longDateFormat : { - LT : 'HH:mm', - LTS : 'HH:mm:ss', - L : 'DD.MM.YYYY', - LL : 'D MMMM YYYY', - LLL : 'D MMMM YYYY HH:mm', - LLLL : 'dddd, D MMMM YYYY HH:mm' - }, - 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 жыл' - }, - dayOfMonthOrdinalParse: /\d{1,2}-(чи|чы|чү|чу)/, - ordinal : function (number) { - var a = number % 10, - b = number >= 100 ? 100 : null; - return number + (suffixes$2[number] || suffixes$2[a] || suffixes$2[b]); - }, - week : { - dow : 1, // Monday is the first day of the week. - doy : 7 // The week that contains Jan 1st is the first week of the year. - } -}); - -//! moment.js locale configuration -//! locale : Luxembourgish [lb] -//! author : mweimerskirch : https://github.com/mweimerskirch -//! author : David Raison : https://github.com/kwisatz - -function processRelativeTime$5(number, withoutSuffix, key, isFuture) { - var format = { - 'm': ['eng Minutt', 'enger Minutt'], - 'h': ['eng Stonn', 'enger Stonn'], - 'd': ['een Dag', 'engem Dag'], - 'M': ['ee Mount', 'engem Mount'], - 'y': ['ee Joer', 'engem Joer'] - }; - return withoutSuffix ? format[key][0] : format[key][1]; -} -function processFutureTime(string) { - var number = string.substr(0, string.indexOf(' ')); - if (eifelerRegelAppliesToNumber(number)) { - return 'a ' + string; - } - return 'an ' + string; -} -function processPastTime(string) { - var number = string.substr(0, string.indexOf(' ')); - if (eifelerRegelAppliesToNumber(number)) { - return 'viru ' + string; - } - return 'virun ' + string; -} -/** - * Returns true if the word before the given number loses the '-n' ending. - * e.g. 'an 10 Deeg' but 'a 5 Deeg' - * - * @param number {integer} - * @returns {boolean} - */ -function eifelerRegelAppliesToNumber(number) { - number = parseInt(number, 10); - if (isNaN(number)) { - return false; - } - if (number < 0) { - // Negative Number --> always true - return true; - } else if (number < 10) { - // Only 1 digit - if (4 <= number && number <= 7) { - return true; - } - return false; - } else if (number < 100) { - // 2 digits - var lastDigit = number % 10, firstDigit = number / 10; - if (lastDigit === 0) { - return eifelerRegelAppliesToNumber(firstDigit); - } - return eifelerRegelAppliesToNumber(lastDigit); - } else if (number < 10000) { - // 3 or 4 digits --> recursively check first digit - while (number >= 10) { - number = number / 10; - } - return eifelerRegelAppliesToNumber(number); - } else { - // Anything larger than 4 digits: recursively check first n-3 digits - number = number / 1000; - return eifelerRegelAppliesToNumber(number); - } -} - -hooks.defineLocale('lb', { - months: 'Januar_Februar_Mäerz_Abrëll_Mee_Juni_Juli_August_September_Oktober_November_Dezember'.split('_'), - monthsShort: 'Jan._Febr._Mrz._Abr._Mee_Jun._Jul._Aug._Sept._Okt._Nov._Dez.'.split('_'), - monthsParseExact : true, - weekdays: 'Sonndeg_Méindeg_Dënschdeg_Mëttwoch_Donneschdeg_Freideg_Samschdeg'.split('_'), - weekdaysShort: 'So._Mé._Dë._Më._Do._Fr._Sa.'.split('_'), - weekdaysMin: 'So_Mé_Dë_Më_Do_Fr_Sa'.split('_'), - weekdaysParseExact : true, - longDateFormat: { - LT: 'H:mm [Auer]', - LTS: 'H:mm:ss [Auer]', - L: 'DD.MM.YYYY', - LL: 'D. MMMM YYYY', - LLL: 'D. MMMM YYYY H:mm [Auer]', - LLLL: 'dddd, D. MMMM YYYY H:mm [Auer]' - }, - calendar: { - sameDay: '[Haut um] LT', - sameElse: 'L', - nextDay: '[Muer um] LT', - nextWeek: 'dddd [um] LT', - lastDay: '[Gëschter um] LT', - lastWeek: function () { - // Different date string for 'Dënschdeg' (Tuesday) and 'Donneschdeg' (Thursday) due to phonological rule - switch (this.day()) { - case 2: - case 4: - return '[Leschten] dddd [um] LT'; - default: - return '[Leschte] dddd [um] LT'; - } - } - }, - relativeTime : { - future : processFutureTime, - past : processPastTime, - s : 'e puer Sekonnen', - m : processRelativeTime$5, - mm : '%d Minutten', - h : processRelativeTime$5, - hh : '%d Stonnen', - d : processRelativeTime$5, - dd : '%d Deeg', - M : processRelativeTime$5, - MM : '%d Méint', - y : processRelativeTime$5, - yy : '%d Joer' - }, - dayOfMonthOrdinalParse: /\d{1,2}\./, - ordinal: '%d.', - week: { - dow: 1, // Monday is the first day of the week. - doy: 4 // The week that contains Jan 4th is the first week of the year. - } -}); - -//! moment.js locale configuration -//! locale : Lao [lo] -//! author : Ryan Hart : https://github.com/ryanhart2 - -hooks.defineLocale('lo', { - months : 'ມັງກອນ_ກຸມພາ_ມີນາ_ເມສາ_ພຶດສະພາ_ມິຖຸນາ_ກໍລະກົດ_ສິງຫາ_ກັນຍາ_ຕຸລາ_ພະຈິກ_ທັນວາ'.split('_'), - monthsShort : 'ມັງກອນ_ກຸມພາ_ມີນາ_ເມສາ_ພຶດສະພາ_ມິຖຸນາ_ກໍລະກົດ_ສິງຫາ_ກັນຍາ_ຕຸລາ_ພະຈິກ_ທັນວາ'.split('_'), - weekdays : 'ອາທິດ_ຈັນ_ອັງຄານ_ພຸດ_ພະຫັດ_ສຸກ_ເສົາ'.split('_'), - weekdaysShort : 'ທິດ_ຈັນ_ອັງຄານ_ພຸດ_ພະຫັດ_ສຸກ_ເສົາ'.split('_'), - weekdaysMin : 'ທ_ຈ_ອຄ_ພ_ພຫ_ສກ_ສ'.split('_'), - weekdaysParseExact : true, - longDateFormat : { - LT : 'HH:mm', - LTS : 'HH:mm:ss', - L : 'DD/MM/YYYY', - LL : 'D MMMM YYYY', - LLL : 'D MMMM YYYY HH:mm', - LLLL : 'ວັນdddd D MMMM YYYY HH:mm' - }, - meridiemParse: /ຕອນເຊົ້າ|ຕອນແລງ/, - isPM: function (input) { - return input === 'ຕອນແລງ'; - }, - meridiem : function (hour, minute, isLower) { - if (hour < 12) { - return 'ຕອນເຊົ້າ'; - } else { - return 'ຕອນແລງ'; - } - }, - 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 ປີ' - }, - dayOfMonthOrdinalParse: /(ທີ່)\d{1,2}/, - ordinal : function (number) { - return 'ທີ່' + number; - } -}); - -//! moment.js locale configuration -//! locale : Lithuanian [lt] -//! author : Mindaugas Mozūras : https://github.com/mmozuras - -var units = { - 'm' : 'minutė_minutės_minutę', - 'mm': 'minutės_minučių_minutes', - 'h' : 'valanda_valandos_valandą', - 'hh': 'valandos_valandų_valandas', - 'd' : 'diena_dienos_dieną', - 'dd': 'dienos_dienų_dienas', - 'M' : 'mėnuo_mėnesio_mėnesį', - 'MM': 'mėnesiai_mėnesių_mėnesius', - 'y' : 'metai_metų_metus', - 'yy': 'metai_metų_metus' -}; -function translateSeconds(number, withoutSuffix, key, isFuture) { - if (withoutSuffix) { - return 'kelios sekundės'; - } else { - return isFuture ? 'kelių sekundžių' : 'kelias sekundes'; - } -} -function translateSingular(number, withoutSuffix, key, isFuture) { - return withoutSuffix ? forms(key)[0] : (isFuture ? forms(key)[1] : forms(key)[2]); -} -function special(number) { - return number % 10 === 0 || (number > 10 && number < 20); -} -function forms(key) { - return units[key].split('_'); -} -function translate$6(number, withoutSuffix, key, isFuture) { - var result = number + ' '; - if (number === 1) { - return result + translateSingular(number, withoutSuffix, key[0], isFuture); - } else if (withoutSuffix) { - return result + (special(number) ? forms(key)[1] : forms(key)[0]); - } else { - if (isFuture) { - return result + forms(key)[1]; - } else { - return result + (special(number) ? forms(key)[1] : forms(key)[2]); - } - } -} -hooks.defineLocale('lt', { - months : { - format: 'sausio_vasario_kovo_balandžio_gegužės_birželio_liepos_rugpjūčio_rugsėjo_spalio_lapkričio_gruodžio'.split('_'), - standalone: 'sausis_vasaris_kovas_balandis_gegužė_birželis_liepa_rugpjūtis_rugsėjis_spalis_lapkritis_gruodis'.split('_'), - isFormat: /D[oD]?(\[[^\[\]]*\]|\s)+MMMM?|MMMM?(\[[^\[\]]*\]|\s)+D[oD]?/ - }, - monthsShort : 'sau_vas_kov_bal_geg_bir_lie_rgp_rgs_spa_lap_grd'.split('_'), - weekdays : { - format: 'sekmadienį_pirmadienį_antradienį_trečiadienį_ketvirtadienį_penktadienį_šeštadienį'.split('_'), - standalone: 'sekmadienis_pirmadienis_antradienis_trečiadienis_ketvirtadienis_penktadienis_šeštadienis'.split('_'), - isFormat: /dddd HH:mm/ - }, - weekdaysShort : 'Sek_Pir_Ant_Tre_Ket_Pen_Šeš'.split('_'), - weekdaysMin : 'S_P_A_T_K_Pn_Š'.split('_'), - weekdaysParseExact : true, - longDateFormat : { - LT : 'HH:mm', - LTS : 'HH:mm:ss', - L : 'YYYY-MM-DD', - LL : 'YYYY [m.] MMMM D [d.]', - LLL : 'YYYY [m.] MMMM D [d.], HH:mm [val.]', - LLLL : 'YYYY [m.] MMMM D [d.], dddd, HH:mm [val.]', - l : 'YYYY-MM-DD', - ll : 'YYYY [m.] MMMM D [d.]', - lll : 'YYYY [m.] MMMM D [d.], HH:mm [val.]', - llll : 'YYYY [m.] MMMM D [d.], ddd, HH:mm [val.]' - }, - calendar : { - sameDay : '[Šiandien] LT', - nextDay : '[Rytoj] LT', - nextWeek : 'dddd LT', - lastDay : '[Vakar] LT', - lastWeek : '[Praėjusį] dddd LT', - sameElse : 'L' - }, - relativeTime : { - future : 'po %s', - past : 'prieš %s', - s : translateSeconds, - m : translateSingular, - mm : translate$6, - h : translateSingular, - hh : translate$6, - d : translateSingular, - dd : translate$6, - M : translateSingular, - MM : translate$6, - y : translateSingular, - yy : translate$6 - }, - dayOfMonthOrdinalParse: /\d{1,2}-oji/, - ordinal : function (number) { - return number + '-oji'; - }, - week : { - dow : 1, // Monday is the first day of the week. - doy : 4 // The week that contains Jan 4th is the first week of the year. - } -}); - -//! moment.js locale configuration -//! locale : Latvian [lv] -//! author : Kristaps Karlsons : https://github.com/skakri -//! author : Jānis Elmeris : https://github.com/JanisE - -var units$1 = { - 'm': 'minūtes_minūtēm_minūte_minūtes'.split('_'), - 'mm': 'minūtes_minūtēm_minūte_minūtes'.split('_'), - 'h': 'stundas_stundām_stunda_stundas'.split('_'), - 'hh': 'stundas_stundām_stunda_stundas'.split('_'), - 'd': 'dienas_dienām_diena_dienas'.split('_'), - 'dd': 'dienas_dienām_diena_dienas'.split('_'), - 'M': 'mēneša_mēnešiem_mēnesis_mēneši'.split('_'), - 'MM': 'mēneša_mēnešiem_mēnesis_mēneši'.split('_'), - 'y': 'gada_gadiem_gads_gadi'.split('_'), - 'yy': 'gada_gadiem_gads_gadi'.split('_') -}; -/** - * @param withoutSuffix boolean true = a length of time; false = before/after a period of time. - */ -function format$1(forms, number, withoutSuffix) { - if (withoutSuffix) { - // E.g. "21 minūte", "3 minūtes". - return number % 10 === 1 && number % 100 !== 11 ? forms[2] : forms[3]; - } else { - // E.g. "21 minūtes" as in "pēc 21 minūtes". - // E.g. "3 minūtēm" as in "pēc 3 minūtēm". - return number % 10 === 1 && number % 100 !== 11 ? forms[0] : forms[1]; - } -} -function relativeTimeWithPlural$1(number, withoutSuffix, key) { - return number + ' ' + format$1(units$1[key], number, withoutSuffix); -} -function relativeTimeWithSingular(number, withoutSuffix, key) { - return format$1(units$1[key], number, withoutSuffix); -} -function relativeSeconds(number, withoutSuffix) { - return withoutSuffix ? 'dažas sekundes' : 'dažām sekundēm'; -} - -hooks.defineLocale('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('_'), - weekdaysParseExact : true, - longDateFormat : { - LT : 'HH:mm', - LTS : 'HH:mm:ss', - L : 'DD.MM.YYYY.', - LL : 'YYYY. [gada] D. MMMM', - LLL : 'YYYY. [gada] D. MMMM, HH:mm', - LLLL : 'YYYY. [gada] D. MMMM, dddd, HH:mm' - }, - 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 : 'pēc %s', - past : 'pirms %s', - s : relativeSeconds, - m : relativeTimeWithSingular, - mm : relativeTimeWithPlural$1, - h : relativeTimeWithSingular, - hh : relativeTimeWithPlural$1, - d : relativeTimeWithSingular, - dd : relativeTimeWithPlural$1, - M : relativeTimeWithSingular, - MM : relativeTimeWithPlural$1, - y : relativeTimeWithSingular, - yy : relativeTimeWithPlural$1 - }, - dayOfMonthOrdinalParse: /\d{1,2}\./, - ordinal : '%d.', - week : { - dow : 1, // Monday is the first day of the week. - doy : 4 // The week that contains Jan 4th is the first week of the year. - } -}); - -//! moment.js locale configuration -//! locale : Montenegrin [me] -//! author : Miodrag Nikač <miodrag@restartit.me> : https://github.com/miodragnikac - -var translator = { - words: { //Different grammatical cases - m: ['jedan minut', 'jednog minuta'], - mm: ['minut', 'minuta', 'minuta'], - h: ['jedan sat', 'jednog sata'], - hh: ['sat', 'sata', 'sati'], - dd: ['dan', 'dana', 'dana'], - MM: ['mjesec', 'mjeseca', 'mjeseci'], - yy: ['godina', 'godine', 'godina'] - }, - correctGrammaticalCase: function (number, wordKey) { - return number === 1 ? wordKey[0] : (number >= 2 && number <= 4 ? wordKey[1] : wordKey[2]); - }, - translate: function (number, withoutSuffix, key) { - var wordKey = translator.words[key]; - if (key.length === 1) { - return withoutSuffix ? wordKey[0] : wordKey[1]; - } else { - return number + ' ' + translator.correctGrammaticalCase(number, wordKey); - } - } -}; - -hooks.defineLocale('me', { - months: 'januar_februar_mart_april_maj_jun_jul_avgust_septembar_oktobar_novembar_decembar'.split('_'), - monthsShort: 'jan._feb._mar._apr._maj_jun_jul_avg._sep._okt._nov._dec.'.split('_'), - monthsParseExact : true, - 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('_'), - weekdaysParseExact : true, - longDateFormat: { - LT: 'H:mm', - LTS : 'H:mm:ss', - L: 'DD.MM.YYYY', - LL: 'D. MMMM YYYY', - LLL: 'D. MMMM YYYY H:mm', - LLLL: 'dddd, D. MMMM YYYY H:mm' - }, - calendar: { - sameDay: '[danas u] LT', - nextDay: '[sjutra 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če u] LT', - lastWeek : function () { - var lastWeekDays = [ - '[prošle] [nedjelje] [u] LT', - '[prošlog] [ponedjeljka] [u] LT', - '[prošlog] [utorka] [u] LT', - '[prošle] [srijede] [u] LT', - '[prošlog] [četvrtka] [u] LT', - '[prošlog] [petka] [u] LT', - '[prošle] [subote] [u] LT' - ]; - return lastWeekDays[this.day()]; - }, - sameElse : 'L' - }, - relativeTime : { - future : 'za %s', - past : 'prije %s', - s : 'nekoliko sekundi', - m : translator.translate, - mm : translator.translate, - h : translator.translate, - hh : translator.translate, - d : 'dan', - dd : translator.translate, - M : 'mjesec', - MM : translator.translate, - y : 'godinu', - yy : translator.translate - }, - dayOfMonthOrdinalParse: /\d{1,2}\./, - ordinal : '%d.', - week : { - dow : 1, // Monday is the first day of the week. - doy : 7 // The week that contains Jan 1st is the first week of the year. - } -}); - -//! moment.js locale configuration -//! locale : Maori [mi] -//! author : John Corrigan <robbiecloset@gmail.com> : https://github.com/johnideal - -hooks.defineLocale('mi', { - months: 'Kohi-tāte_Hui-tanguru_Poutū-te-rangi_Paenga-whāwhā_Haratua_Pipiri_Hōngoingoi_Here-turi-kōkā_Mahuru_Whiringa-ā-nuku_Whiringa-ā-rangi_Hakihea'.split('_'), - monthsShort: 'Kohi_Hui_Pou_Pae_Hara_Pipi_Hōngoi_Here_Mahu_Whi-nu_Whi-ra_Haki'.split('_'), - monthsRegex: /(?:['a-z\u0101\u014D\u016B]+\-?){1,3}/i, - monthsStrictRegex: /(?:['a-z\u0101\u014D\u016B]+\-?){1,3}/i, - monthsShortRegex: /(?:['a-z\u0101\u014D\u016B]+\-?){1,3}/i, - monthsShortStrictRegex: /(?:['a-z\u0101\u014D\u016B]+\-?){1,2}/i, - weekdays: 'Rātapu_Mane_Tūrei_Wenerei_Tāite_Paraire_Hātarei'.split('_'), - weekdaysShort: 'Ta_Ma_Tū_We_Tāi_Pa_Hā'.split('_'), - weekdaysMin: 'Ta_Ma_Tū_We_Tāi_Pa_Hā'.split('_'), - longDateFormat: { - LT: 'HH:mm', - LTS: 'HH:mm:ss', - L: 'DD/MM/YYYY', - LL: 'D MMMM YYYY', - LLL: 'D MMMM YYYY [i] HH:mm', - LLLL: 'dddd, D MMMM YYYY [i] HH:mm' - }, - calendar: { - sameDay: '[i teie mahana, i] LT', - nextDay: '[apopo i] LT', - nextWeek: 'dddd [i] LT', - lastDay: '[inanahi i] LT', - lastWeek: 'dddd [whakamutunga i] LT', - sameElse: 'L' - }, - relativeTime: { - future: 'i roto i %s', - past: '%s i mua', - s: 'te hēkona ruarua', - m: 'he meneti', - mm: '%d meneti', - h: 'te haora', - hh: '%d haora', - d: 'he ra', - dd: '%d ra', - M: 'he marama', - MM: '%d marama', - y: 'he tau', - yy: '%d tau' - }, - dayOfMonthOrdinalParse: /\d{1,2}º/, - ordinal: '%dº', - week : { - dow : 1, // Monday is the first day of the week. - doy : 4 // The week that contains Jan 4th is the first week of the year. - } -}); - -//! moment.js locale configuration -//! locale : Macedonian [mk] -//! author : Borislav Mickov : https://github.com/B0k0 - -hooks.defineLocale('mk', { - months : 'јануари_февруари_март_април_мај_јуни_јули_август_септември_октомври_ноември_декември'.split('_'), - monthsShort : 'јан_фев_мар_апр_мај_јун_јул_авг_сеп_окт_ное_дек'.split('_'), - weekdays : 'недела_понеделник_вторник_среда_четврток_петок_сабота'.split('_'), - weekdaysShort : 'нед_пон_вто_сре_чет_пет_саб'.split('_'), - weekdaysMin : 'нe_пo_вт_ср_че_пе_сa'.split('_'), - longDateFormat : { - LT : 'H:mm', - LTS : 'H:mm:ss', - L : 'D.MM.YYYY', - LL : 'D MMMM YYYY', - LLL : 'D MMMM YYYY H:mm', - LLLL : 'dddd, D MMMM YYYY H:mm' - }, - 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 години' - }, - dayOfMonthOrdinalParse: /\d{1,2}-(ев|ен|ти|ви|ри|ми)/, - ordinal : function (number) { - var lastDigit = number % 10, - last2Digits = number % 100; - if (number === 0) { - return number + '-ев'; - } else if (last2Digits === 0) { - return number + '-ен'; - } else if (last2Digits > 10 && last2Digits < 20) { - return number + '-ти'; - } else if (lastDigit === 1) { - return number + '-ви'; - } else if (lastDigit === 2) { - return number + '-ри'; - } else if (lastDigit === 7 || lastDigit === 8) { - return number + '-ми'; - } else { - return number + '-ти'; - } - }, - week : { - dow : 1, // Monday is the first day of the week. - doy : 7 // The week that contains Jan 1st is the first week of the year. - } -}); - -//! moment.js locale configuration -//! locale : Malayalam [ml] -//! author : Floyd Pink : https://github.com/floydpink - -hooks.defineLocale('ml', { - months : 'ജനുവരി_ഫെബ്രുവരി_മാർച്ച്_ഏപ്രിൽ_മേയ്_ജൂൺ_ജൂലൈ_ഓഗസ്റ്റ്_സെപ്റ്റംബർ_ഒക്ടോബർ_നവംബർ_ഡിസംബർ'.split('_'), - monthsShort : 'ജനു._ഫെബ്രു._മാർ._ഏപ്രി._മേയ്_ജൂൺ_ജൂലൈ._ഓഗ._സെപ്റ്റ._ഒക്ടോ._നവം._ഡിസം.'.split('_'), - monthsParseExact : true, - weekdays : 'ഞായറാഴ്ച_തിങ്കളാഴ്ച_ചൊവ്വാഴ്ച_ബുധനാഴ്ച_വ്യാഴാഴ്ച_വെള്ളിയാഴ്ച_ശനിയാഴ്ച'.split('_'), - weekdaysShort : 'ഞായർ_തിങ്കൾ_ചൊവ്വ_ബുധൻ_വ്യാഴം_വെള്ളി_ശനി'.split('_'), - weekdaysMin : 'ഞാ_തി_ചൊ_ബു_വ്യാ_വെ_ശ'.split('_'), - longDateFormat : { - LT : 'A h:mm -നു', - LTS : 'A h:mm:ss -നു', - L : 'DD/MM/YYYY', - LL : 'D MMMM YYYY', - LLL : 'D MMMM YYYY, A h:mm -നു', - LLLL : 'dddd, D MMMM YYYY, A h:mm -നു' - }, - 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 വർഷം' - }, - meridiemParse: /രാത്രി|രാവിലെ|ഉച്ച കഴിഞ്ഞ്|വൈകുന്നേരം|രാത്രി/i, - meridiemHour : function (hour, meridiem) { - if (hour === 12) { - hour = 0; - } - if ((meridiem === 'രാത്രി' && hour >= 4) || - meridiem === 'ഉച്ച കഴിഞ്ഞ്' || - meridiem === 'വൈകുന്നേരം') { - return hour + 12; - } else { - return hour; - } - }, - meridiem : function (hour, minute, isLower) { - if (hour < 4) { - return 'രാത്രി'; - } else if (hour < 12) { - return 'രാവിലെ'; - } else if (hour < 17) { - return 'ഉച്ച കഴിഞ്ഞ്'; - } else if (hour < 20) { - return 'വൈകുന്നേരം'; - } else { - return 'രാത്രി'; - } - } -}); - -//! moment.js locale configuration -//! locale : Marathi [mr] -//! author : Harshad Kale : https://github.com/kalehv -//! author : Vivek Athalye : https://github.com/vnathalye - -var symbolMap$8 = { - '1': '१', - '2': '२', - '3': '३', - '4': '४', - '5': '५', - '6': '६', - '7': '७', - '8': '८', - '9': '९', - '0': '०' -}; -var numberMap$7 = { - '१': '1', - '२': '2', - '३': '3', - '४': '4', - '५': '5', - '६': '6', - '७': '7', - '८': '8', - '९': '9', - '०': '0' -}; - -function relativeTimeMr(number, withoutSuffix, string, isFuture) -{ - var output = ''; - if (withoutSuffix) { - switch (string) { - case 's': output = 'काही सेकंद'; break; - case 'm': output = 'एक मिनिट'; break; - case 'mm': output = '%d मिनिटे'; break; - case 'h': output = 'एक तास'; break; - case 'hh': output = '%d तास'; break; - case 'd': output = 'एक दिवस'; break; - case 'dd': output = '%d दिवस'; break; - case 'M': output = 'एक महिना'; break; - case 'MM': output = '%d महिने'; break; - case 'y': output = 'एक वर्ष'; break; - case 'yy': output = '%d वर्षे'; break; - } - } - else { - switch (string) { - case 's': output = 'काही सेकंदां'; break; - case 'm': output = 'एका मिनिटा'; break; - case 'mm': output = '%d मिनिटां'; break; - case 'h': output = 'एका तासा'; break; - case 'hh': output = '%d तासां'; break; - case 'd': output = 'एका दिवसा'; break; - case 'dd': output = '%d दिवसां'; break; - case 'M': output = 'एका महिन्या'; break; - case 'MM': output = '%d महिन्यां'; break; - case 'y': output = 'एका वर्षा'; break; - case 'yy': output = '%d वर्षां'; break; - } - } - return output.replace(/%d/i, number); -} - -hooks.defineLocale('mr', { - months : 'जानेवारी_फेब्रुवारी_मार्च_एप्रिल_मे_जून_जुलै_ऑगस्ट_सप्टेंबर_ऑक्टोबर_नोव्हेंबर_डिसेंबर'.split('_'), - monthsShort: 'जाने._फेब्रु._मार्च._एप्रि._मे._जून._जुलै._ऑग._सप्टें._ऑक्टो._नोव्हें._डिसें.'.split('_'), - monthsParseExact : true, - weekdays : 'रविवार_सोमवार_मंगळवार_बुधवार_गुरूवार_शुक्रवार_शनिवार'.split('_'), - weekdaysShort : 'रवि_सोम_मंगळ_बुध_गुरू_शुक्र_शनि'.split('_'), - weekdaysMin : 'र_सो_मं_बु_गु_शु_श'.split('_'), - longDateFormat : { - LT : 'A h:mm वाजता', - LTS : 'A h:mm:ss वाजता', - L : 'DD/MM/YYYY', - LL : 'D MMMM YYYY', - LLL : 'D MMMM YYYY, A h:mm वाजता', - LLLL : 'dddd, D MMMM YYYY, A h:mm वाजता' - }, - calendar : { - sameDay : '[आज] LT', - nextDay : '[उद्या] LT', - nextWeek : 'dddd, LT', - lastDay : '[काल] LT', - lastWeek: '[मागील] dddd, LT', - sameElse : 'L' - }, - relativeTime : { - future: '%sमध्ये', - past: '%sपूर्वी', - s: relativeTimeMr, - m: relativeTimeMr, - mm: relativeTimeMr, - h: relativeTimeMr, - hh: relativeTimeMr, - d: relativeTimeMr, - dd: relativeTimeMr, - M: relativeTimeMr, - MM: relativeTimeMr, - y: relativeTimeMr, - yy: relativeTimeMr - }, - preparse: function (string) { - return string.replace(/[१२३४५६७८९०]/g, function (match) { - return numberMap$7[match]; - }); - }, - postformat: function (string) { - return string.replace(/\d/g, function (match) { - return symbolMap$8[match]; - }); - }, - meridiemParse: /रात्री|सकाळी|दुपारी|सायंकाळी/, - meridiemHour : function (hour, meridiem) { - if (hour === 12) { - hour = 0; - } - if (meridiem === 'रात्री') { - return hour < 4 ? hour : hour + 12; - } else if (meridiem === 'सकाळी') { - return hour; - } else if (meridiem === 'दुपारी') { - return hour >= 10 ? hour : hour + 12; - } else if (meridiem === 'सायंकाळी') { - return hour + 12; - } - }, - meridiem: function (hour, minute, isLower) { - if (hour < 4) { - return 'रात्री'; - } else if (hour < 10) { - return 'सकाळी'; - } else if (hour < 17) { - return 'दुपारी'; - } else if (hour < 20) { - return 'सायंकाळी'; - } else { - return 'रात्री'; - } - }, - week : { - dow : 0, // Sunday is the first day of the week. - doy : 6 // The week that contains Jan 1st is the first week of the year. - } -}); - -//! moment.js locale configuration -//! locale : Malay [ms-my] -//! note : DEPRECATED, the correct one is [ms] -//! author : Weldan Jamili : https://github.com/weldan - -hooks.defineLocale('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', - LTS : 'HH.mm.ss', - L : 'DD/MM/YYYY', - LL : 'D MMMM YYYY', - LLL : 'D MMMM YYYY [pukul] HH.mm', - LLLL : 'dddd, D MMMM YYYY [pukul] HH.mm' - }, - meridiemParse: /pagi|tengahari|petang|malam/, - meridiemHour: function (hour, meridiem) { - if (hour === 12) { - hour = 0; - } - if (meridiem === 'pagi') { - return hour; - } else if (meridiem === 'tengahari') { - return hour >= 11 ? hour : hour + 12; - } else if (meridiem === 'petang' || meridiem === 'malam') { - return hour + 12; - } - }, - meridiem : function (hours, minutes, isLower) { - if (hours < 11) { - return 'pagi'; - } else if (hours < 15) { - return 'tengahari'; - } else if (hours < 19) { - return 'petang'; - } else { - return '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, // Monday is the first day of the week. - doy : 7 // The week that contains Jan 1st is the first week of the year. - } -}); - -//! moment.js locale configuration -//! locale : Malay [ms] -//! author : Weldan Jamili : https://github.com/weldan - -hooks.defineLocale('ms', { - 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', - LTS : 'HH.mm.ss', - L : 'DD/MM/YYYY', - LL : 'D MMMM YYYY', - LLL : 'D MMMM YYYY [pukul] HH.mm', - LLLL : 'dddd, D MMMM YYYY [pukul] HH.mm' - }, - meridiemParse: /pagi|tengahari|petang|malam/, - meridiemHour: function (hour, meridiem) { - if (hour === 12) { - hour = 0; - } - if (meridiem === 'pagi') { - return hour; - } else if (meridiem === 'tengahari') { - return hour >= 11 ? hour : hour + 12; - } else if (meridiem === 'petang' || meridiem === 'malam') { - return hour + 12; - } - }, - meridiem : function (hours, minutes, isLower) { - if (hours < 11) { - return 'pagi'; - } else if (hours < 15) { - return 'tengahari'; - } else if (hours < 19) { - return 'petang'; - } else { - return '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, // Monday is the first day of the week. - doy : 7 // The week that contains Jan 1st is the first week of the year. - } -}); - -//! moment.js locale configuration -//! locale : Burmese [my] -//! author : Squar team, mysquar.com -//! author : David Rossellat : https://github.com/gholadr -//! author : Tin Aung Lin : https://github.com/thanyawzinmin - -var symbolMap$9 = { - '1': '၁', - '2': '၂', - '3': '၃', - '4': '၄', - '5': '၅', - '6': '၆', - '7': '၇', - '8': '၈', - '9': '၉', - '0': '၀' -}; -var numberMap$8 = { - '၁': '1', - '၂': '2', - '၃': '3', - '၄': '4', - '၅': '5', - '၆': '6', - '၇': '7', - '၈': '8', - '၉': '9', - '၀': '0' -}; - -hooks.defineLocale('my', { - months: 'ဇန်နဝါရီ_ဖေဖော်ဝါရီ_မတ်_ဧပြီ_မေ_ဇွန်_ဇူလိုင်_သြဂုတ်_စက်တင်ဘာ_အောက်တိုဘာ_နိုဝင်ဘာ_ဒီဇင်ဘာ'.split('_'), - monthsShort: 'ဇန်_ဖေ_မတ်_ပြီ_မေ_ဇွန်_လိုင်_သြ_စက်_အောက်_နို_ဒီ'.split('_'), - weekdays: 'တနင်္ဂနွေ_တနင်္လာ_အင်္ဂါ_ဗုဒ္ဓဟူး_ကြာသပတေး_သောကြာ_စနေ'.split('_'), - weekdaysShort: 'နွေ_လာ_ဂါ_ဟူး_ကြာ_သော_နေ'.split('_'), - weekdaysMin: 'နွေ_လာ_ဂါ_ဟူး_ကြာ_သော_နေ'.split('_'), - - longDateFormat: { - LT: 'HH:mm', - LTS: 'HH:mm:ss', - L: 'DD/MM/YYYY', - LL: 'D MMMM YYYY', - LLL: 'D MMMM YYYY HH:mm', - LLLL: 'dddd D MMMM YYYY HH:mm' - }, - 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 (string) { - return string.replace(/[၁၂၃၄၅၆၇၈၉၀]/g, function (match) { - return numberMap$8[match]; - }); - }, - postformat: function (string) { - return string.replace(/\d/g, function (match) { - return symbolMap$9[match]; - }); - }, - week: { - dow: 1, // Monday is the first day of the week. - doy: 4 // The week that contains Jan 1st is the first week of the year. - } -}); - -//! moment.js locale configuration -//! locale : Norwegian Bokmål [nb] -//! authors : Espen Hovlandsdal : https://github.com/rexxars -//! Sigurd Gartmann : https://github.com/sigurdga - -hooks.defineLocale('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('_'), - monthsParseExact : true, - 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('_'), - weekdaysParseExact : true, - longDateFormat : { - LT : 'HH:mm', - LTS : 'HH:mm:ss', - L : 'DD.MM.YYYY', - LL : 'D. MMMM YYYY', - LLL : 'D. MMMM YYYY [kl.] HH:mm', - LLLL : 'dddd D. MMMM YYYY [kl.] HH:mm' - }, - 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 : '%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' - }, - dayOfMonthOrdinalParse: /\d{1,2}\./, - ordinal : '%d.', - week : { - dow : 1, // Monday is the first day of the week. - doy : 4 // The week that contains Jan 4th is the first week of the year. - } -}); - -//! moment.js locale configuration -//! locale : Nepalese [ne] -//! author : suvash : https://github.com/suvash - -var symbolMap$10 = { - '1': '१', - '2': '२', - '3': '३', - '4': '४', - '5': '५', - '6': '६', - '7': '७', - '8': '८', - '9': '९', - '0': '०' -}; -var numberMap$9 = { - '१': '1', - '२': '2', - '३': '3', - '४': '4', - '५': '5', - '६': '6', - '७': '7', - '८': '8', - '९': '9', - '०': '0' -}; - -hooks.defineLocale('ne', { - months : 'जनवरी_फेब्रुवरी_मार्च_अप्रिल_मई_जुन_जुलाई_अगष्ट_सेप्टेम्बर_अक्टोबर_नोभेम्बर_डिसेम्बर'.split('_'), - monthsShort : 'जन._फेब्रु._मार्च_अप्रि._मई_जुन_जुलाई._अग._सेप्ट._अक्टो._नोभे._डिसे.'.split('_'), - monthsParseExact : true, - weekdays : 'आइतबार_सोमबार_मङ्गलबार_बुधबार_बिहिबार_शुक्रबार_शनिबार'.split('_'), - weekdaysShort : 'आइत._सोम._मङ्गल._बुध._बिहि._शुक्र._शनि.'.split('_'), - weekdaysMin : 'आ._सो._मं._बु._बि._शु._श.'.split('_'), - weekdaysParseExact : true, - longDateFormat : { - LT : 'Aको h:mm बजे', - LTS : 'Aको h:mm:ss बजे', - L : 'DD/MM/YYYY', - LL : 'D MMMM YYYY', - LLL : 'D MMMM YYYY, Aको h:mm बजे', - LLLL : 'dddd, D MMMM YYYY, Aको h:mm बजे' - }, - preparse: function (string) { - return string.replace(/[१२३४५६७८९०]/g, function (match) { - return numberMap$9[match]; - }); - }, - postformat: function (string) { - return string.replace(/\d/g, function (match) { - return symbolMap$10[match]; - }); - }, - meridiemParse: /राति|बिहान|दिउँसो|साँझ/, - meridiemHour : function (hour, meridiem) { - if (hour === 12) { - hour = 0; - } - if (meridiem === 'राति') { - return hour < 4 ? hour : hour + 12; - } else if (meridiem === 'बिहान') { - return hour; - } else if (meridiem === 'दिउँसो') { - return hour >= 10 ? hour : hour + 12; - } else if (meridiem === 'साँझ') { - return hour + 12; - } - }, - meridiem : function (hour, minute, isLower) { - if (hour < 3) { - return 'राति'; - } else if (hour < 12) { - return 'बिहान'; - } else if (hour < 16) { - return 'दिउँसो'; - } else if (hour < 20) { - return 'साँझ'; - } else { - return 'राति'; - } - }, - 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 : 0, // Sunday is the first day of the week. - doy : 6 // The week that contains Jan 1st is the first week of the year. - } -}); - -//! moment.js locale configuration -//! locale : Dutch (Belgium) [nl-be] -//! author : Joris Röling : https://github.com/jorisroling -//! author : Jacob Middag : https://github.com/middagj - -var monthsShortWithDots$1 = 'jan._feb._mrt._apr._mei_jun._jul._aug._sep._okt._nov._dec.'.split('_'); -var monthsShortWithoutDots$1 = 'jan_feb_mrt_apr_mei_jun_jul_aug_sep_okt_nov_dec'.split('_'); - -var monthsParse = [/^jan/i, /^feb/i, /^maart|mrt.?$/i, /^apr/i, /^mei$/i, /^jun[i.]?$/i, /^jul[i.]?$/i, /^aug/i, /^sep/i, /^okt/i, /^nov/i, /^dec/i]; -var monthsRegex$1 = /^(januari|februari|maart|april|mei|april|ju[nl]i|augustus|september|oktober|november|december|jan\.?|feb\.?|mrt\.?|apr\.?|ju[nl]\.?|aug\.?|sep\.?|okt\.?|nov\.?|dec\.?)/i; - -hooks.defineLocale('nl-be', { - months : 'januari_februari_maart_april_mei_juni_juli_augustus_september_oktober_november_december'.split('_'), - monthsShort : function (m, format) { - if (!m) { - return monthsShortWithDots$1; - } else if (/-MMM-/.test(format)) { - return monthsShortWithoutDots$1[m.month()]; - } else { - return monthsShortWithDots$1[m.month()]; - } - }, - - monthsRegex: monthsRegex$1, - monthsShortRegex: monthsRegex$1, - monthsStrictRegex: /^(januari|februari|maart|mei|ju[nl]i|april|augustus|september|oktober|november|december)/i, - monthsShortStrictRegex: /^(jan\.?|feb\.?|mrt\.?|apr\.?|mei|ju[nl]\.?|aug\.?|sep\.?|okt\.?|nov\.?|dec\.?)/i, - - monthsParse : monthsParse, - longMonthsParse : monthsParse, - shortMonthsParse : monthsParse, - - 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('_'), - weekdaysParseExact : true, - longDateFormat : { - LT : 'HH:mm', - LTS : 'HH:mm:ss', - L : 'DD/MM/YYYY', - LL : 'D MMMM YYYY', - LLL : 'D MMMM YYYY HH:mm', - LLLL : 'dddd D MMMM YYYY HH:mm' - }, - 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' - }, - dayOfMonthOrdinalParse: /\d{1,2}(ste|de)/, - ordinal : function (number) { - return number + ((number === 1 || number === 8 || number >= 20) ? 'ste' : 'de'); - }, - week : { - dow : 1, // Monday is the first day of the week. - doy : 4 // The week that contains Jan 4th is the first week of the year. - } -}); - -//! moment.js locale configuration -//! locale : Dutch [nl] -//! author : Joris Röling : https://github.com/jorisroling -//! author : Jacob Middag : https://github.com/middagj - -var monthsShortWithDots$2 = 'jan._feb._mrt._apr._mei_jun._jul._aug._sep._okt._nov._dec.'.split('_'); -var monthsShortWithoutDots$2 = 'jan_feb_mrt_apr_mei_jun_jul_aug_sep_okt_nov_dec'.split('_'); - -var monthsParse$1 = [/^jan/i, /^feb/i, /^maart|mrt.?$/i, /^apr/i, /^mei$/i, /^jun[i.]?$/i, /^jul[i.]?$/i, /^aug/i, /^sep/i, /^okt/i, /^nov/i, /^dec/i]; -var monthsRegex$2 = /^(januari|februari|maart|april|mei|april|ju[nl]i|augustus|september|oktober|november|december|jan\.?|feb\.?|mrt\.?|apr\.?|ju[nl]\.?|aug\.?|sep\.?|okt\.?|nov\.?|dec\.?)/i; - -hooks.defineLocale('nl', { - months : 'januari_februari_maart_april_mei_juni_juli_augustus_september_oktober_november_december'.split('_'), - monthsShort : function (m, format) { - if (!m) { - return monthsShortWithDots$2; - } else if (/-MMM-/.test(format)) { - return monthsShortWithoutDots$2[m.month()]; - } else { - return monthsShortWithDots$2[m.month()]; - } - }, - - monthsRegex: monthsRegex$2, - monthsShortRegex: monthsRegex$2, - monthsStrictRegex: /^(januari|februari|maart|mei|ju[nl]i|april|augustus|september|oktober|november|december)/i, - monthsShortStrictRegex: /^(jan\.?|feb\.?|mrt\.?|apr\.?|mei|ju[nl]\.?|aug\.?|sep\.?|okt\.?|nov\.?|dec\.?)/i, - - monthsParse : monthsParse$1, - longMonthsParse : monthsParse$1, - shortMonthsParse : monthsParse$1, - - 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('_'), - weekdaysParseExact : true, - longDateFormat : { - LT : 'HH:mm', - LTS : 'HH:mm:ss', - L : 'DD-MM-YYYY', - LL : 'D MMMM YYYY', - LLL : 'D MMMM YYYY HH:mm', - LLLL : 'dddd D MMMM YYYY HH:mm' - }, - 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' - }, - dayOfMonthOrdinalParse: /\d{1,2}(ste|de)/, - ordinal : function (number) { - return number + ((number === 1 || number === 8 || number >= 20) ? 'ste' : 'de'); - }, - week : { - dow : 1, // Monday is the first day of the week. - doy : 4 // The week that contains Jan 4th is the first week of the year. - } -}); - -//! moment.js locale configuration -//! locale : Nynorsk [nn] -//! author : https://github.com/mechuwind - -hooks.defineLocale('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', - LTS : 'HH:mm:ss', - L : 'DD.MM.YYYY', - LL : 'D. MMMM YYYY', - LLL : 'D. MMMM YYYY [kl.] H:mm', - LLLL : 'dddd D. MMMM YYYY [kl.] HH:mm' - }, - calendar : { - sameDay: '[I dag klokka] LT', - nextDay: '[I morgon klokka] LT', - nextWeek: 'dddd [klokka] LT', - lastDay: '[I går klokka] LT', - lastWeek: '[Føregåande] dddd [klokka] LT', - sameElse: 'L' - }, - relativeTime : { - future : 'om %s', - past : '%s sidan', - s : 'nokre sekund', - m : 'eit minutt', - mm : '%d minutt', - h : 'ein time', - hh : '%d timar', - d : 'ein dag', - dd : '%d dagar', - M : 'ein månad', - MM : '%d månader', - y : 'eit år', - yy : '%d år' - }, - dayOfMonthOrdinalParse: /\d{1,2}\./, - ordinal : '%d.', - week : { - dow : 1, // Monday is the first day of the week. - doy : 4 // The week that contains Jan 4th is the first week of the year. - } -}); - -//! moment.js locale configuration -//! locale : Punjabi (India) [pa-in] -//! author : Harpreet Singh : https://github.com/harpreetkhalsagtbit - -var symbolMap$11 = { - '1': '੧', - '2': '੨', - '3': '੩', - '4': '੪', - '5': '੫', - '6': '੬', - '7': '੭', - '8': '੮', - '9': '੯', - '0': '੦' -}; -var numberMap$10 = { - '੧': '1', - '੨': '2', - '੩': '3', - '੪': '4', - '੫': '5', - '੬': '6', - '੭': '7', - '੮': '8', - '੯': '9', - '੦': '0' -}; - -hooks.defineLocale('pa-in', { - // There are months name as per Nanakshahi Calender but they are not used as rigidly in modern Punjabi. - months : 'ਜਨਵਰੀ_ਫ਼ਰਵਰੀ_ਮਾਰਚ_ਅਪ੍ਰੈਲ_ਮਈ_ਜੂਨ_ਜੁਲਾਈ_ਅਗਸਤ_ਸਤੰਬਰ_ਅਕਤੂਬਰ_ਨਵੰਬਰ_ਦਸੰਬਰ'.split('_'), - monthsShort : 'ਜਨਵਰੀ_ਫ਼ਰਵਰੀ_ਮਾਰਚ_ਅਪ੍ਰੈਲ_ਮਈ_ਜੂਨ_ਜੁਲਾਈ_ਅਗਸਤ_ਸਤੰਬਰ_ਅਕਤੂਬਰ_ਨਵੰਬਰ_ਦਸੰਬਰ'.split('_'), - weekdays : 'ਐਤਵਾਰ_ਸੋਮਵਾਰ_ਮੰਗਲਵਾਰ_ਬੁਧਵਾਰ_ਵੀਰਵਾਰ_ਸ਼ੁੱਕਰਵਾਰ_ਸ਼ਨੀਚਰਵਾਰ'.split('_'), - weekdaysShort : 'ਐਤ_ਸੋਮ_ਮੰਗਲ_ਬੁਧ_ਵੀਰ_ਸ਼ੁਕਰ_ਸ਼ਨੀ'.split('_'), - weekdaysMin : 'ਐਤ_ਸੋਮ_ਮੰਗਲ_ਬੁਧ_ਵੀਰ_ਸ਼ੁਕਰ_ਸ਼ਨੀ'.split('_'), - longDateFormat : { - LT : 'A h:mm ਵਜੇ', - LTS : 'A h:mm:ss ਵਜੇ', - L : 'DD/MM/YYYY', - LL : 'D MMMM YYYY', - LLL : 'D MMMM YYYY, A h:mm ਵਜੇ', - LLLL : 'dddd, D MMMM YYYY, A h:mm ਵਜੇ' - }, - 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 (string) { - return string.replace(/[੧੨੩੪੫੬੭੮੯੦]/g, function (match) { - return numberMap$10[match]; - }); - }, - postformat: function (string) { - return string.replace(/\d/g, function (match) { - return symbolMap$11[match]; - }); - }, - // Punjabi notation for meridiems are quite fuzzy in practice. While there exists - // a rigid notion of a 'Pahar' it is not used as rigidly in modern Punjabi. - meridiemParse: /ਰਾਤ|ਸਵੇਰ|ਦੁਪਹਿਰ|ਸ਼ਾਮ/, - meridiemHour : function (hour, meridiem) { - if (hour === 12) { - hour = 0; - } - if (meridiem === 'ਰਾਤ') { - return hour < 4 ? hour : hour + 12; - } else if (meridiem === 'ਸਵੇਰ') { - return hour; - } else if (meridiem === 'ਦੁਪਹਿਰ') { - return hour >= 10 ? hour : hour + 12; - } else if (meridiem === 'ਸ਼ਾਮ') { - return hour + 12; - } - }, - meridiem : function (hour, minute, isLower) { - if (hour < 4) { - return 'ਰਾਤ'; - } else if (hour < 10) { - return 'ਸਵੇਰ'; - } else if (hour < 17) { - return 'ਦੁਪਹਿਰ'; - } else if (hour < 20) { - return 'ਸ਼ਾਮ'; - } else { - return 'ਰਾਤ'; - } - }, - week : { - dow : 0, // Sunday is the first day of the week. - doy : 6 // The week that contains Jan 1st is the first week of the year. - } -}); - -//! moment.js locale configuration -//! locale : Polish [pl] -//! author : Rafal Hirsz : https://github.com/evoL - -var monthsNominative = 'styczeń_luty_marzec_kwiecień_maj_czerwiec_lipiec_sierpień_wrzesień_październik_listopad_grudzień'.split('_'); -var monthsSubjective = 'stycznia_lutego_marca_kwietnia_maja_czerwca_lipca_sierpnia_września_października_listopada_grudnia'.split('_'); -function plural$3(n) { - return (n % 10 < 5) && (n % 10 > 1) && ((~~(n / 10) % 10) !== 1); -} -function translate$7(number, withoutSuffix, key) { - var result = number + ' '; - switch (key) { - case 'm': - return withoutSuffix ? 'minuta' : 'minutę'; - case 'mm': - return result + (plural$3(number) ? 'minuty' : 'minut'); - case 'h': - return withoutSuffix ? 'godzina' : 'godzinę'; - case 'hh': - return result + (plural$3(number) ? 'godziny' : 'godzin'); - case 'MM': - return result + (plural$3(number) ? 'miesiące' : 'miesięcy'); - case 'yy': - return result + (plural$3(number) ? 'lata' : 'lat'); - } -} - -hooks.defineLocale('pl', { - months : function (momentToFormat, format) { - if (!momentToFormat) { - return monthsNominative; - } else if (format === '') { - // Hack: if format empty we know this is used to generate - // RegExp by moment. Give then back both valid forms of months - // in RegExp ready format. - return '(' + monthsSubjective[momentToFormat.month()] + '|' + monthsNominative[momentToFormat.month()] + ')'; - } else if (/D MMMM/.test(format)) { - return monthsSubjective[momentToFormat.month()]; - } else { - return monthsNominative[momentToFormat.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 : 'ndz_pon_wt_śr_czw_pt_sob'.split('_'), - weekdaysMin : 'Nd_Pn_Wt_Śr_Cz_Pt_So'.split('_'), - longDateFormat : { - LT : 'HH:mm', - LTS : 'HH:mm:ss', - L : 'DD.MM.YYYY', - LL : 'D MMMM YYYY', - LLL : 'D MMMM YYYY HH:mm', - LLLL : 'dddd, D MMMM YYYY HH:mm' - }, - 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 : translate$7, - mm : translate$7, - h : translate$7, - hh : translate$7, - d : '1 dzień', - dd : '%d dni', - M : 'miesiąc', - MM : translate$7, - y : 'rok', - yy : translate$7 - }, - dayOfMonthOrdinalParse: /\d{1,2}\./, - ordinal : '%d.', - week : { - dow : 1, // Monday is the first day of the week. - doy : 4 // The week that contains Jan 4th is the first week of the year. - } -}); - -//! moment.js locale configuration -//! locale : Portuguese (Brazil) [pt-br] -//! author : Caio Ribeiro Pereira : https://github.com/caio-ribeiro-pereira - -hooks.defineLocale('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 : 'Do_2ª_3ª_4ª_5ª_6ª_Sá'.split('_'), - weekdaysParseExact : true, - longDateFormat : { - LT : 'HH:mm', - LTS : 'HH:mm:ss', - L : 'DD/MM/YYYY', - LL : 'D [de] MMMM [de] YYYY', - LLL : 'D [de] MMMM [de] YYYY [às] HH:mm', - LLLL : 'dddd, D [de] MMMM [de] YYYY [às] HH:mm' - }, - calendar : { - sameDay: '[Hoje às] LT', - nextDay: '[Amanhã às] LT', - nextWeek: 'dddd [às] LT', - lastDay: '[Ontem às] LT', - lastWeek: function () { - return (this.day() === 0 || this.day() === 6) ? - '[Último] dddd [às] LT' : // Saturday + Sunday - '[Última] dddd [às] LT'; // Monday - Friday - }, - sameElse: 'L' - }, - relativeTime : { - future : 'em %s', - past : '%s atrás', - s : 'poucos 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' - }, - dayOfMonthOrdinalParse: /\d{1,2}º/, - ordinal : '%dº' -}); - -//! moment.js locale configuration -//! locale : Portuguese [pt] -//! author : Jefferson : https://github.com/jalex79 - -hooks.defineLocale('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 : 'Do_2ª_3ª_4ª_5ª_6ª_Sá'.split('_'), - weekdaysParseExact : true, - longDateFormat : { - LT : 'HH:mm', - LTS : 'HH:mm:ss', - L : 'DD/MM/YYYY', - LL : 'D [de] MMMM [de] YYYY', - LLL : 'D [de] MMMM [de] YYYY HH:mm', - LLLL : 'dddd, D [de] MMMM [de] YYYY HH:mm' - }, - calendar : { - sameDay: '[Hoje às] LT', - nextDay: '[Amanhã às] LT', - nextWeek: 'dddd [às] LT', - lastDay: '[Ontem às] LT', - lastWeek: function () { - return (this.day() === 0 || this.day() === 6) ? - '[Último] dddd [às] LT' : // Saturday + Sunday - '[Última] dddd [às] LT'; // Monday - Friday - }, - sameElse: 'L' - }, - relativeTime : { - future : 'em %s', - past : 'há %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' - }, - dayOfMonthOrdinalParse: /\d{1,2}º/, - ordinal : '%dº', - week : { - dow : 1, // Monday is the first day of the week. - doy : 4 // The week that contains Jan 4th is the first week of the year. - } -}); - -//! moment.js locale configuration -//! locale : Romanian [ro] -//! author : Vlad Gurdiga : https://github.com/gurdiga -//! author : Valentin Agachi : https://github.com/avaly - -function relativeTimeWithPlural$2(number, withoutSuffix, key) { - var format = { - 'mm': 'minute', - 'hh': 'ore', - 'dd': 'zile', - 'MM': 'luni', - 'yy': 'ani' - }, - separator = ' '; - if (number % 100 >= 20 || (number >= 100 && number % 100 === 0)) { - separator = ' de '; - } - return number + separator + format[key]; -} - -hooks.defineLocale('ro', { - months : 'ianuarie_februarie_martie_aprilie_mai_iunie_iulie_august_septembrie_octombrie_noiembrie_decembrie'.split('_'), - monthsShort : 'ian._febr._mart._apr._mai_iun._iul._aug._sept._oct._nov._dec.'.split('_'), - monthsParseExact: true, - 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', - LTS : 'H:mm:ss', - 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 : relativeTimeWithPlural$2, - h : 'o oră', - hh : relativeTimeWithPlural$2, - d : 'o zi', - dd : relativeTimeWithPlural$2, - M : 'o lună', - MM : relativeTimeWithPlural$2, - y : 'un an', - yy : relativeTimeWithPlural$2 - }, - week : { - dow : 1, // Monday is the first day of the week. - doy : 7 // The week that contains Jan 1st is the first week of the year. - } -}); - -//! moment.js locale configuration -//! locale : Russian [ru] -//! author : Viktorminator : https://github.com/Viktorminator -//! Author : Menelion Elensúle : https://github.com/Oire -//! author : Коренберг Марк : https://github.com/socketpair - -function plural$4(word, num) { - var forms = word.split('_'); - return num % 10 === 1 && num % 100 !== 11 ? forms[0] : (num % 10 >= 2 && num % 10 <= 4 && (num % 100 < 10 || num % 100 >= 20) ? forms[1] : forms[2]); -} -function relativeTimeWithPlural$3(number, withoutSuffix, key) { - var format = { - 'mm': withoutSuffix ? 'минута_минуты_минут' : 'минуту_минуты_минут', - 'hh': 'час_часа_часов', - 'dd': 'день_дня_дней', - 'MM': 'месяц_месяца_месяцев', - 'yy': 'год_года_лет' - }; - if (key === 'm') { - return withoutSuffix ? 'минута' : 'минуту'; - } - else { - return number + ' ' + plural$4(format[key], +number); - } -} -var monthsParse$2 = [/^янв/i, /^фев/i, /^мар/i, /^апр/i, /^ма[йя]/i, /^июн/i, /^июл/i, /^авг/i, /^сен/i, /^окт/i, /^ноя/i, /^дек/i]; - -// http://new.gramota.ru/spravka/rules/139-prop : § 103 -// Сокращения месяцев: http://new.gramota.ru/spravka/buro/search-answer?s=242637 -// CLDR data: http://www.unicode.org/cldr/charts/28/summary/ru.html#1753 -hooks.defineLocale('ru', { - months : { - format: 'января_февраля_марта_апреля_мая_июня_июля_августа_сентября_октября_ноября_декабря'.split('_'), - standalone: 'январь_февраль_март_апрель_май_июнь_июль_август_сентябрь_октябрь_ноябрь_декабрь'.split('_') - }, - monthsShort : { - // по CLDR именно "июл." и "июн.", но какой смысл менять букву на точку ? - format: 'янв._февр._мар._апр._мая_июня_июля_авг._сент._окт._нояб._дек.'.split('_'), - standalone: 'янв._февр._март_апр._май_июнь_июль_авг._сент._окт._нояб._дек.'.split('_') - }, - weekdays : { - standalone: 'воскресенье_понедельник_вторник_среда_четверг_пятница_суббота'.split('_'), - format: 'воскресенье_понедельник_вторник_среду_четверг_пятницу_субботу'.split('_'), - isFormat: /\[ ?[Вв] ?(?:прошлую|следующую|эту)? ?\] ?dddd/ - }, - weekdaysShort : 'вс_пн_вт_ср_чт_пт_сб'.split('_'), - weekdaysMin : 'вс_пн_вт_ср_чт_пт_сб'.split('_'), - monthsParse : monthsParse$2, - longMonthsParse : monthsParse$2, - shortMonthsParse : monthsParse$2, - - // полные названия с падежами, по три буквы, для некоторых, по 4 буквы, сокращения с точкой и без точки - monthsRegex: /^(январ[ья]|янв\.?|феврал[ья]|февр?\.?|марта?|мар\.?|апрел[ья]|апр\.?|ма[йя]|июн[ья]|июн\.?|июл[ья]|июл\.?|августа?|авг\.?|сентябр[ья]|сент?\.?|октябр[ья]|окт\.?|ноябр[ья]|нояб?\.?|декабр[ья]|дек\.?)/i, - - // копия предыдущего - monthsShortRegex: /^(январ[ья]|янв\.?|феврал[ья]|февр?\.?|марта?|мар\.?|апрел[ья]|апр\.?|ма[йя]|июн[ья]|июн\.?|июл[ья]|июл\.?|августа?|авг\.?|сентябр[ья]|сент?\.?|октябр[ья]|окт\.?|ноябр[ья]|нояб?\.?|декабр[ья]|дек\.?)/i, - - // полные названия с падежами - monthsStrictRegex: /^(январ[яь]|феврал[яь]|марта?|апрел[яь]|ма[яй]|июн[яь]|июл[яь]|августа?|сентябр[яь]|октябр[яь]|ноябр[яь]|декабр[яь])/i, - - // Выражение, которое соотвествует только сокращённым формам - monthsShortStrictRegex: /^(янв\.|февр?\.|мар[т.]|апр\.|ма[яй]|июн[ья.]|июл[ья.]|авг\.|сент?\.|окт\.|нояб?\.|дек\.)/i, - longDateFormat : { - LT : 'HH:mm', - LTS : 'HH:mm:ss', - L : 'DD.MM.YYYY', - LL : 'D MMMM YYYY г.', - LLL : 'D MMMM YYYY г., HH:mm', - LLLL : 'dddd, D MMMM YYYY г., HH:mm' - }, - calendar : { - sameDay: '[Сегодня в] LT', - nextDay: '[Завтра в] LT', - lastDay: '[Вчера в] LT', - nextWeek: function (now) { - if (now.week() !== this.week()) { - 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'; - } - } else { - if (this.day() === 2) { - return '[Во] dddd [в] LT'; - } else { - return '[В] dddd [в] LT'; - } - } - }, - lastWeek: function (now) { - if (now.week() !== this.week()) { - 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'; - } - } else { - if (this.day() === 2) { - return '[Во] dddd [в] LT'; - } else { - return '[В] dddd [в] LT'; - } - } - }, - sameElse: 'L' - }, - relativeTime : { - future : 'через %s', - past : '%s назад', - s : 'несколько секунд', - m : relativeTimeWithPlural$3, - mm : relativeTimeWithPlural$3, - h : 'час', - hh : relativeTimeWithPlural$3, - d : 'день', - dd : relativeTimeWithPlural$3, - M : 'месяц', - MM : relativeTimeWithPlural$3, - y : 'год', - yy : relativeTimeWithPlural$3 - }, - meridiemParse: /ночи|утра|дня|вечера/i, - isPM : function (input) { - return /^(дня|вечера)$/.test(input); - }, - meridiem : function (hour, minute, isLower) { - if (hour < 4) { - return 'ночи'; - } else if (hour < 12) { - return 'утра'; - } else if (hour < 17) { - return 'дня'; - } else { - return 'вечера'; - } - }, - dayOfMonthOrdinalParse: /\d{1,2}-(й|го|я)/, - ordinal: function (number, period) { - switch (period) { - case 'M': - case 'd': - case 'DDD': - return number + '-й'; - case 'D': - return number + '-го'; - case 'w': - case 'W': - return number + '-я'; - default: - return number; - } - }, - week : { - dow : 1, // Monday is the first day of the week. - doy : 7 // The week that contains Jan 1st is the first week of the year. - } -}); - -//! moment.js locale configuration -//! locale : Sindhi [sd] -//! author : Narain Sagar : https://github.com/narainsagar - -var months$6 = [ - 'جنوري', - 'فيبروري', - 'مارچ', - 'اپريل', - 'مئي', - 'جون', - 'جولاءِ', - 'آگسٽ', - 'سيپٽمبر', - 'آڪٽوبر', - 'نومبر', - 'ڊسمبر' -]; -var days$1 = [ - 'آچر', - 'سومر', - 'اڱارو', - 'اربع', - 'خميس', - 'جمع', - 'ڇنڇر' -]; - -hooks.defineLocale('sd', { - months : months$6, - monthsShort : months$6, - weekdays : days$1, - weekdaysShort : days$1, - weekdaysMin : days$1, - longDateFormat : { - LT : 'HH:mm', - LTS : 'HH:mm:ss', - L : 'DD/MM/YYYY', - LL : 'D MMMM YYYY', - LLL : 'D MMMM YYYY HH:mm', - LLLL : 'dddd، D MMMM YYYY HH:mm' - }, - meridiemParse: /صبح|شام/, - isPM : function (input) { - return 'شام' === input; - }, - meridiem : function (hour, minute, isLower) { - if (hour < 12) { - return 'صبح'; - } - return 'شام'; - }, - 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 (string) { - return string.replace(/،/g, ','); - }, - postformat: function (string) { - return string.replace(/,/g, '،'); - }, - week : { - dow : 1, // Monday is the first day of the week. - doy : 4 // The week that contains Jan 4th is the first week of the year. - } -}); - -//! moment.js locale configuration -//! locale : Northern Sami [se] -//! authors : Bård Rolstad Henriksen : https://github.com/karamell - - -hooks.defineLocale('se', { - months : 'ođđajagemánnu_guovvamánnu_njukčamánnu_cuoŋománnu_miessemánnu_geassemánnu_suoidnemánnu_borgemánnu_čakčamánnu_golggotmánnu_skábmamánnu_juovlamánnu'.split('_'), - monthsShort : 'ođđj_guov_njuk_cuo_mies_geas_suoi_borg_čakč_golg_skáb_juov'.split('_'), - weekdays : 'sotnabeaivi_vuossárga_maŋŋebárga_gaskavahkku_duorastat_bearjadat_lávvardat'.split('_'), - weekdaysShort : 'sotn_vuos_maŋ_gask_duor_bear_láv'.split('_'), - weekdaysMin : 's_v_m_g_d_b_L'.split('_'), - longDateFormat : { - LT : 'HH:mm', - LTS : 'HH:mm:ss', - L : 'DD.MM.YYYY', - LL : 'MMMM D. [b.] YYYY', - LLL : 'MMMM D. [b.] YYYY [ti.] HH:mm', - LLLL : 'dddd, MMMM D. [b.] YYYY [ti.] HH:mm' - }, - calendar : { - sameDay: '[otne ti] LT', - nextDay: '[ihttin ti] LT', - nextWeek: 'dddd [ti] LT', - lastDay: '[ikte ti] LT', - lastWeek: '[ovddit] dddd [ti] LT', - sameElse: 'L' - }, - relativeTime : { - future : '%s geažes', - past : 'maŋit %s', - s : 'moadde sekunddat', - m : 'okta minuhta', - mm : '%d minuhtat', - h : 'okta diimmu', - hh : '%d diimmut', - d : 'okta beaivi', - dd : '%d beaivvit', - M : 'okta mánnu', - MM : '%d mánut', - y : 'okta jahki', - yy : '%d jagit' - }, - dayOfMonthOrdinalParse: /\d{1,2}\./, - ordinal : '%d.', - week : { - dow : 1, // Monday is the first day of the week. - doy : 4 // The week that contains Jan 4th is the first week of the year. - } -}); - -//! moment.js locale configuration -//! locale : Sinhalese [si] -//! author : Sampath Sitinamaluwa : https://github.com/sampathsris - -/*jshint -W100*/ -hooks.defineLocale('si', { - months : 'ජනවාරි_පෙබරවාරි_මාර්තු_අප්‍රේල්_මැයි_ජූනි_ජූලි_අගෝස්තු_සැප්තැම්බර්_ඔක්තෝබර්_නොවැම්බර්_දෙසැම්බර්'.split('_'), - monthsShort : 'ජන_පෙබ_මාර්_අප්_මැයි_ජූනි_ජූලි_අගෝ_සැප්_ඔක්_නොවැ_දෙසැ'.split('_'), - weekdays : 'ඉරිදා_සඳුදා_අඟහරුවාදා_බදාදා_බ්‍රහස්පතින්දා_සිකුරාදා_සෙනසුරාදා'.split('_'), - weekdaysShort : 'ඉරි_සඳු_අඟ_බදා_බ්‍රහ_සිකු_සෙන'.split('_'), - weekdaysMin : 'ඉ_ස_අ_බ_බ්‍ර_සි_සෙ'.split('_'), - weekdaysParseExact : true, - longDateFormat : { - LT : 'a h:mm', - LTS : 'a h:mm:ss', - L : 'YYYY/MM/DD', - LL : 'YYYY MMMM D', - LLL : 'YYYY MMMM D, a h:mm', - LLLL : 'YYYY MMMM D [වැනි] dddd, a h:mm:ss' - }, - 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' - }, - dayOfMonthOrdinalParse: /\d{1,2} වැනි/, - ordinal : function (number) { - return number + ' වැනි'; - }, - meridiemParse : /පෙර වරු|පස් වරු|පෙ.ව|ප.ව./, - isPM : function (input) { - return input === 'ප.ව.' || input === 'පස් වරු'; - }, - meridiem : function (hours, minutes, isLower) { - if (hours > 11) { - return isLower ? 'ප.ව.' : 'පස් වරු'; - } else { - return isLower ? 'පෙ.ව.' : 'පෙර වරු'; - } - } -}); - -//! moment.js locale configuration -//! locale : Slovak [sk] -//! author : Martin Minka : https://github.com/k2s -//! based on work of petrbela : https://github.com/petrbela - -var months$7 = 'január_február_marec_apríl_máj_jún_júl_august_september_október_november_december'.split('_'); -var monthsShort$4 = 'jan_feb_mar_apr_máj_jún_júl_aug_sep_okt_nov_dec'.split('_'); -function plural$5(n) { - return (n > 1) && (n < 5); -} -function translate$8(number, withoutSuffix, key, isFuture) { - var result = number + ' '; - switch (key) { - case 's': // a few seconds / in a few seconds / a few seconds ago - return (withoutSuffix || isFuture) ? 'pár sekúnd' : 'pár sekundami'; - case 'm': // a minute / in a minute / a minute ago - return withoutSuffix ? 'minúta' : (isFuture ? 'minútu' : 'minútou'); - case 'mm': // 9 minutes / in 9 minutes / 9 minutes ago - if (withoutSuffix || isFuture) { - return result + (plural$5(number) ? 'minúty' : 'minút'); - } else { - return result + 'minútami'; - } - break; - case 'h': // an hour / in an hour / an hour ago - return withoutSuffix ? 'hodina' : (isFuture ? 'hodinu' : 'hodinou'); - case 'hh': // 9 hours / in 9 hours / 9 hours ago - if (withoutSuffix || isFuture) { - return result + (plural$5(number) ? 'hodiny' : 'hodín'); - } else { - return result + 'hodinami'; - } - break; - case 'd': // a day / in a day / a day ago - return (withoutSuffix || isFuture) ? 'deň' : 'dňom'; - case 'dd': // 9 days / in 9 days / 9 days ago - if (withoutSuffix || isFuture) { - return result + (plural$5(number) ? 'dni' : 'dní'); - } else { - return result + 'dňami'; - } - break; - case 'M': // a month / in a month / a month ago - return (withoutSuffix || isFuture) ? 'mesiac' : 'mesiacom'; - case 'MM': // 9 months / in 9 months / 9 months ago - if (withoutSuffix || isFuture) { - return result + (plural$5(number) ? 'mesiace' : 'mesiacov'); - } else { - return result + 'mesiacmi'; - } - break; - case 'y': // a year / in a year / a year ago - return (withoutSuffix || isFuture) ? 'rok' : 'rokom'; - case 'yy': // 9 years / in 9 years / 9 years ago - if (withoutSuffix || isFuture) { - return result + (plural$5(number) ? 'roky' : 'rokov'); - } else { - return result + 'rokmi'; - } - break; - } -} - -hooks.defineLocale('sk', { - months : months$7, - monthsShort : monthsShort$4, - 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', - LTS : 'H:mm:ss', - L : 'DD.MM.YYYY', - LL : 'D. MMMM YYYY', - LLL : 'D. MMMM YYYY H:mm', - LLLL : 'dddd D. MMMM YYYY H:mm' - }, - 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 : translate$8, - m : translate$8, - mm : translate$8, - h : translate$8, - hh : translate$8, - d : translate$8, - dd : translate$8, - M : translate$8, - MM : translate$8, - y : translate$8, - yy : translate$8 - }, - dayOfMonthOrdinalParse: /\d{1,2}\./, - ordinal : '%d.', - week : { - dow : 1, // Monday is the first day of the week. - doy : 4 // The week that contains Jan 4th is the first week of the year. - } -}); - -//! moment.js locale configuration -//! locale : Slovenian [sl] -//! author : Robert Sedovšek : https://github.com/sedovsek - -function processRelativeTime$6(number, withoutSuffix, key, isFuture) { - var result = number + ' '; - switch (key) { - case 's': - return withoutSuffix || isFuture ? 'nekaj sekund' : 'nekaj sekundami'; - case 'm': - return withoutSuffix ? 'ena minuta' : 'eno minuto'; - case 'mm': - if (number === 1) { - result += withoutSuffix ? 'minuta' : 'minuto'; - } else if (number === 2) { - result += withoutSuffix || isFuture ? 'minuti' : 'minutama'; - } else if (number < 5) { - result += withoutSuffix || isFuture ? 'minute' : 'minutami'; - } else { - result += withoutSuffix || isFuture ? 'minut' : 'minutami'; - } - return result; - case 'h': - return withoutSuffix ? 'ena ura' : 'eno uro'; - case 'hh': - if (number === 1) { - result += withoutSuffix ? 'ura' : 'uro'; - } else if (number === 2) { - result += withoutSuffix || isFuture ? 'uri' : 'urama'; - } else if (number < 5) { - result += withoutSuffix || isFuture ? 'ure' : 'urami'; - } else { - result += withoutSuffix || isFuture ? 'ur' : 'urami'; - } - return result; - case 'd': - return withoutSuffix || isFuture ? 'en dan' : 'enim dnem'; - case 'dd': - if (number === 1) { - result += withoutSuffix || isFuture ? 'dan' : 'dnem'; - } else if (number === 2) { - result += withoutSuffix || isFuture ? 'dni' : 'dnevoma'; - } else { - result += withoutSuffix || isFuture ? 'dni' : 'dnevi'; - } - return result; - case 'M': - return withoutSuffix || isFuture ? 'en mesec' : 'enim mesecem'; - case 'MM': - if (number === 1) { - result += withoutSuffix || isFuture ? 'mesec' : 'mesecem'; - } else if (number === 2) { - result += withoutSuffix || isFuture ? 'meseca' : 'mesecema'; - } else if (number < 5) { - result += withoutSuffix || isFuture ? 'mesece' : 'meseci'; - } else { - result += withoutSuffix || isFuture ? 'mesecev' : 'meseci'; - } - return result; - case 'y': - return withoutSuffix || isFuture ? 'eno leto' : 'enim letom'; - case 'yy': - if (number === 1) { - result += withoutSuffix || isFuture ? 'leto' : 'letom'; - } else if (number === 2) { - result += withoutSuffix || isFuture ? 'leti' : 'letoma'; - } else if (number < 5) { - result += withoutSuffix || isFuture ? 'leta' : 'leti'; - } else { - result += withoutSuffix || isFuture ? 'let' : 'leti'; - } - return result; - } -} - -hooks.defineLocale('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('_'), - monthsParseExact: true, - 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('_'), - weekdaysParseExact : true, - longDateFormat : { - LT : 'H:mm', - LTS : 'H:mm:ss', - L : 'DD.MM.YYYY', - LL : 'D. MMMM YYYY', - LLL : 'D. MMMM YYYY H:mm', - LLLL : 'dddd, D. MMMM YYYY H:mm' - }, - 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: - return '[prejšnjo] [nedeljo] [ob] LT'; - case 3: - return '[prejšnjo] [sredo] [ob] LT'; - case 6: - return '[prejšnjo] [soboto] [ob] LT'; - case 1: - case 2: - case 4: - case 5: - return '[prejšnji] dddd [ob] LT'; - } - }, - sameElse : 'L' - }, - relativeTime : { - future : 'čez %s', - past : 'pred %s', - s : processRelativeTime$6, - m : processRelativeTime$6, - mm : processRelativeTime$6, - h : processRelativeTime$6, - hh : processRelativeTime$6, - d : processRelativeTime$6, - dd : processRelativeTime$6, - M : processRelativeTime$6, - MM : processRelativeTime$6, - y : processRelativeTime$6, - yy : processRelativeTime$6 - }, - dayOfMonthOrdinalParse: /\d{1,2}\./, - ordinal : '%d.', - week : { - dow : 1, // Monday is the first day of the week. - doy : 7 // The week that contains Jan 1st is the first week of the year. - } -}); - -//! moment.js locale configuration -//! locale : Albanian [sq] -//! author : Flakërim Ismani : https://github.com/flakerimi -//! author : Menelion Elensúle : https://github.com/Oire -//! author : Oerd Cukalla : https://github.com/oerd - -hooks.defineLocale('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 Martë_E Mërkurë_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('_'), - weekdaysParseExact : true, - meridiemParse: /PD|MD/, - isPM: function (input) { - return input.charAt(0) === 'M'; - }, - meridiem : function (hours, minutes, isLower) { - return hours < 12 ? 'PD' : 'MD'; - }, - longDateFormat : { - LT : 'HH:mm', - LTS : 'HH:mm:ss', - L : 'DD/MM/YYYY', - LL : 'D MMMM YYYY', - LLL : 'D MMMM YYYY HH:mm', - LLLL : 'dddd, D MMMM YYYY HH:mm' - }, - calendar : { - sameDay : '[Sot në] LT', - nextDay : '[Nesër në] LT', - nextWeek : 'dddd [në] LT', - lastDay : '[Dje në] LT', - lastWeek : 'dddd [e kaluar në] LT', - sameElse : 'L' - }, - relativeTime : { - future : 'në %s', - past : '%s më parë', - s : 'disa sekonda', - m : 'një minutë', - mm : '%d minuta', - h : 'një orë', - hh : '%d orë', - d : 'një ditë', - dd : '%d ditë', - M : 'një muaj', - MM : '%d muaj', - y : 'një vit', - yy : '%d vite' - }, - dayOfMonthOrdinalParse: /\d{1,2}\./, - ordinal : '%d.', - week : { - dow : 1, // Monday is the first day of the week. - doy : 4 // The week that contains Jan 4th is the first week of the year. - } -}); - -//! moment.js locale configuration -//! locale : Serbian Cyrillic [sr-cyrl] -//! author : Milan Janačković<milanjanackovic@gmail.com> : https://github.com/milan-j - -var translator$1 = { - words: { //Different grammatical cases - m: ['један минут', 'једне минуте'], - mm: ['минут', 'минуте', 'минута'], - h: ['један сат', 'једног сата'], - hh: ['сат', 'сата', 'сати'], - dd: ['дан', 'дана', 'дана'], - MM: ['месец', 'месеца', 'месеци'], - yy: ['година', 'године', 'година'] - }, - correctGrammaticalCase: function (number, wordKey) { - return number === 1 ? wordKey[0] : (number >= 2 && number <= 4 ? wordKey[1] : wordKey[2]); - }, - translate: function (number, withoutSuffix, key) { - var wordKey = translator$1.words[key]; - if (key.length === 1) { - return withoutSuffix ? wordKey[0] : wordKey[1]; - } else { - return number + ' ' + translator$1.correctGrammaticalCase(number, wordKey); - } - } -}; - -hooks.defineLocale('sr-cyrl', { - months: 'јануар_фебруар_март_април_мај_јун_јул_август_септембар_октобар_новембар_децембар'.split('_'), - monthsShort: 'јан._феб._мар._апр._мај_јун_јул_авг._сеп._окт._нов._дец.'.split('_'), - monthsParseExact: true, - weekdays: 'недеља_понедељак_уторак_среда_четвртак_петак_субота'.split('_'), - weekdaysShort: 'нед._пон._уто._сре._чет._пет._суб.'.split('_'), - weekdaysMin: 'не_по_ут_ср_че_пе_су'.split('_'), - weekdaysParseExact : true, - longDateFormat: { - LT: 'H:mm', - LTS : 'H:mm:ss', - L: 'DD.MM.YYYY', - LL: 'D. MMMM YYYY', - LLL: 'D. MMMM YYYY H:mm', - LLLL: 'dddd, D. MMMM YYYY H:mm' - }, - calendar: { - sameDay: '[данас у] LT', - nextDay: '[сутра у] LT', - nextWeek: function () { - switch (this.day()) { - case 0: - return '[у] [недељу] [у] LT'; - case 3: - return '[у] [среду] [у] LT'; - case 6: - return '[у] [суботу] [у] LT'; - case 1: - case 2: - case 4: - case 5: - return '[у] dddd [у] LT'; - } - }, - lastDay : '[јуче у] LT', - lastWeek : function () { - var lastWeekDays = [ - '[прошле] [недеље] [у] LT', - '[прошлог] [понедељка] [у] LT', - '[прошлог] [уторка] [у] LT', - '[прошле] [среде] [у] LT', - '[прошлог] [четвртка] [у] LT', - '[прошлог] [петка] [у] LT', - '[прошле] [суботе] [у] LT' - ]; - return lastWeekDays[this.day()]; - }, - sameElse : 'L' - }, - relativeTime : { - future : 'за %s', - past : 'пре %s', - s : 'неколико секунди', - m : translator$1.translate, - mm : translator$1.translate, - h : translator$1.translate, - hh : translator$1.translate, - d : 'дан', - dd : translator$1.translate, - M : 'месец', - MM : translator$1.translate, - y : 'годину', - yy : translator$1.translate - }, - dayOfMonthOrdinalParse: /\d{1,2}\./, - ordinal : '%d.', - week : { - dow : 1, // Monday is the first day of the week. - doy : 7 // The week that contains Jan 1st is the first week of the year. - } -}); - -//! moment.js locale configuration -//! locale : Serbian [sr] -//! author : Milan Janačković<milanjanackovic@gmail.com> : https://github.com/milan-j - -var translator$2 = { - words: { //Different grammatical cases - m: ['jedan minut', 'jedne minute'], - mm: ['minut', 'minute', 'minuta'], - h: ['jedan sat', 'jednog sata'], - hh: ['sat', 'sata', 'sati'], - dd: ['dan', 'dana', 'dana'], - MM: ['mesec', 'meseca', 'meseci'], - yy: ['godina', 'godine', 'godina'] - }, - correctGrammaticalCase: function (number, wordKey) { - return number === 1 ? wordKey[0] : (number >= 2 && number <= 4 ? wordKey[1] : wordKey[2]); - }, - translate: function (number, withoutSuffix, key) { - var wordKey = translator$2.words[key]; - if (key.length === 1) { - return withoutSuffix ? wordKey[0] : wordKey[1]; - } else { - return number + ' ' + translator$2.correctGrammaticalCase(number, wordKey); - } - } -}; - -hooks.defineLocale('sr', { - months: 'januar_februar_mart_april_maj_jun_jul_avgust_septembar_oktobar_novembar_decembar'.split('_'), - monthsShort: 'jan._feb._mar._apr._maj_jun_jul_avg._sep._okt._nov._dec.'.split('_'), - monthsParseExact: true, - weekdays: 'nedelja_ponedeljak_utorak_sreda_četvrtak_petak_subota'.split('_'), - weekdaysShort: 'ned._pon._uto._sre._čet._pet._sub.'.split('_'), - weekdaysMin: 'ne_po_ut_sr_če_pe_su'.split('_'), - weekdaysParseExact : true, - longDateFormat: { - LT: 'H:mm', - LTS : 'H:mm:ss', - L: 'DD.MM.YYYY', - LL: 'D. MMMM YYYY', - LLL: 'D. MMMM YYYY H:mm', - LLLL: 'dddd, D. MMMM YYYY H:mm' - }, - calendar: { - sameDay: '[danas u] LT', - nextDay: '[sutra u] LT', - nextWeek: function () { - switch (this.day()) { - case 0: - return '[u] [nedelju] [u] LT'; - case 3: - return '[u] [sredu] [u] LT'; - case 6: - return '[u] [subotu] [u] LT'; - case 1: - case 2: - case 4: - case 5: - return '[u] dddd [u] LT'; - } - }, - lastDay : '[juče u] LT', - lastWeek : function () { - var lastWeekDays = [ - '[prošle] [nedelje] [u] LT', - '[prošlog] [ponedeljka] [u] LT', - '[prošlog] [utorka] [u] LT', - '[prošle] [srede] [u] LT', - '[prošlog] [četvrtka] [u] LT', - '[prošlog] [petka] [u] LT', - '[prošle] [subote] [u] LT' - ]; - return lastWeekDays[this.day()]; - }, - sameElse : 'L' - }, - relativeTime : { - future : 'za %s', - past : 'pre %s', - s : 'nekoliko sekundi', - m : translator$2.translate, - mm : translator$2.translate, - h : translator$2.translate, - hh : translator$2.translate, - d : 'dan', - dd : translator$2.translate, - M : 'mesec', - MM : translator$2.translate, - y : 'godinu', - yy : translator$2.translate - }, - dayOfMonthOrdinalParse: /\d{1,2}\./, - ordinal : '%d.', - week : { - dow : 1, // Monday is the first day of the week. - doy : 7 // The week that contains Jan 1st is the first week of the year. - } -}); - -//! moment.js locale configuration -//! locale : siSwati [ss] -//! author : Nicolai Davies<mail@nicolai.io> : https://github.com/nicolaidavies - - -hooks.defineLocale('ss', { - months : "Bhimbidvwane_Indlovana_Indlov'lenkhulu_Mabasa_Inkhwekhweti_Inhlaba_Kholwane_Ingci_Inyoni_Imphala_Lweti_Ingongoni".split('_'), - monthsShort : 'Bhi_Ina_Inu_Mab_Ink_Inh_Kho_Igc_Iny_Imp_Lwe_Igo'.split('_'), - weekdays : 'Lisontfo_Umsombuluko_Lesibili_Lesitsatfu_Lesine_Lesihlanu_Umgcibelo'.split('_'), - weekdaysShort : 'Lis_Umb_Lsb_Les_Lsi_Lsh_Umg'.split('_'), - weekdaysMin : 'Li_Us_Lb_Lt_Ls_Lh_Ug'.split('_'), - weekdaysParseExact : true, - longDateFormat : { - LT : 'h:mm A', - LTS : 'h:mm:ss A', - L : 'DD/MM/YYYY', - LL : 'D MMMM YYYY', - LLL : 'D MMMM YYYY h:mm A', - LLLL : 'dddd, D MMMM YYYY h:mm A' - }, - calendar : { - sameDay : '[Namuhla nga] LT', - nextDay : '[Kusasa nga] LT', - nextWeek : 'dddd [nga] LT', - lastDay : '[Itolo nga] LT', - lastWeek : 'dddd [leliphelile] [nga] LT', - sameElse : 'L' - }, - relativeTime : { - future : 'nga %s', - past : 'wenteka nga %s', - s : 'emizuzwana lomcane', - m : 'umzuzu', - mm : '%d emizuzu', - h : 'lihora', - hh : '%d emahora', - d : 'lilanga', - dd : '%d emalanga', - M : 'inyanga', - MM : '%d tinyanga', - y : 'umnyaka', - yy : '%d iminyaka' - }, - meridiemParse: /ekuseni|emini|entsambama|ebusuku/, - meridiem : function (hours, minutes, isLower) { - if (hours < 11) { - return 'ekuseni'; - } else if (hours < 15) { - return 'emini'; - } else if (hours < 19) { - return 'entsambama'; - } else { - return 'ebusuku'; - } - }, - meridiemHour : function (hour, meridiem) { - if (hour === 12) { - hour = 0; - } - if (meridiem === 'ekuseni') { - return hour; - } else if (meridiem === 'emini') { - return hour >= 11 ? hour : hour + 12; - } else if (meridiem === 'entsambama' || meridiem === 'ebusuku') { - if (hour === 0) { - return 0; - } - return hour + 12; - } - }, - dayOfMonthOrdinalParse: /\d{1,2}/, - ordinal : '%d', - week : { - dow : 1, // Monday is the first day of the week. - doy : 4 // The week that contains Jan 4th is the first week of the year. - } -}); - -//! moment.js locale configuration -//! locale : Swedish [sv] -//! author : Jens Alm : https://github.com/ulmus - -hooks.defineLocale('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', - LTS : 'HH:mm:ss', - L : 'YYYY-MM-DD', - LL : 'D MMMM YYYY', - LLL : 'D MMMM YYYY [kl.] HH:mm', - LLLL : 'dddd D MMMM YYYY [kl.] HH:mm', - lll : 'D MMM YYYY HH:mm', - llll : 'ddd D MMM YYYY HH:mm' - }, - calendar : { - sameDay: '[Idag] LT', - nextDay: '[Imorgon] LT', - lastDay: '[Igår] LT', - nextWeek: '[På] dddd LT', - lastWeek: '[I] dddd[s] 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' - }, - dayOfMonthOrdinalParse: /\d{1,2}(e|a)/, - ordinal : function (number) { - var b = number % 10, - output = (~~(number % 100 / 10) === 1) ? 'e' : - (b === 1) ? 'a' : - (b === 2) ? 'a' : - (b === 3) ? 'e' : 'e'; - return number + output; - }, - week : { - dow : 1, // Monday is the first day of the week. - doy : 4 // The week that contains Jan 4th is the first week of the year. - } -}); - -//! moment.js locale configuration -//! locale : Swahili [sw] -//! author : Fahad Kassim : https://github.com/fadsel - -hooks.defineLocale('sw', { - months : 'Januari_Februari_Machi_Aprili_Mei_Juni_Julai_Agosti_Septemba_Oktoba_Novemba_Desemba'.split('_'), - monthsShort : 'Jan_Feb_Mac_Apr_Mei_Jun_Jul_Ago_Sep_Okt_Nov_Des'.split('_'), - weekdays : 'Jumapili_Jumatatu_Jumanne_Jumatano_Alhamisi_Ijumaa_Jumamosi'.split('_'), - weekdaysShort : 'Jpl_Jtat_Jnne_Jtan_Alh_Ijm_Jmos'.split('_'), - weekdaysMin : 'J2_J3_J4_J5_Al_Ij_J1'.split('_'), - weekdaysParseExact : true, - longDateFormat : { - LT : 'HH:mm', - LTS : 'HH:mm:ss', - L : 'DD.MM.YYYY', - LL : 'D MMMM YYYY', - LLL : 'D MMMM YYYY HH:mm', - LLLL : 'dddd, D MMMM YYYY HH:mm' - }, - calendar : { - sameDay : '[leo saa] LT', - nextDay : '[kesho saa] LT', - nextWeek : '[wiki ijayo] dddd [saat] LT', - lastDay : '[jana] LT', - lastWeek : '[wiki iliyopita] dddd [saat] LT', - sameElse : 'L' - }, - relativeTime : { - future : '%s baadaye', - past : 'tokea %s', - s : 'hivi punde', - m : 'dakika moja', - mm : 'dakika %d', - h : 'saa limoja', - hh : 'masaa %d', - d : 'siku moja', - dd : 'masiku %d', - M : 'mwezi mmoja', - MM : 'miezi %d', - y : 'mwaka mmoja', - yy : 'miaka %d' - }, - week : { - dow : 1, // Monday is the first day of the week. - doy : 7 // The week that contains Jan 1st is the first week of the year. - } -}); - -//! moment.js locale configuration -//! locale : Tamil [ta] -//! author : Arjunkumar Krishnamoorthy : https://github.com/tk120404 - -var symbolMap$12 = { - '1': '௧', - '2': '௨', - '3': '௩', - '4': '௪', - '5': '௫', - '6': '௬', - '7': '௭', - '8': '௮', - '9': '௯', - '0': '௦' -}; -var numberMap$11 = { - '௧': '1', - '௨': '2', - '௩': '3', - '௪': '4', - '௫': '5', - '௬': '6', - '௭': '7', - '௮': '8', - '௯': '9', - '௦': '0' -}; - -hooks.defineLocale('ta', { - months : 'ஜனவரி_பிப்ரவரி_மார்ச்_ஏப்ரல்_மே_ஜூன்_ஜூலை_ஆகஸ்ட்_செப்டெம்பர்_அக்டோபர்_நவம்பர்_டிசம்பர்'.split('_'), - monthsShort : 'ஜனவரி_பிப்ரவரி_மார்ச்_ஏப்ரல்_மே_ஜூன்_ஜூலை_ஆகஸ்ட்_செப்டெம்பர்_அக்டோபர்_நவம்பர்_டிசம்பர்'.split('_'), - weekdays : 'ஞாயிற்றுக்கிழமை_திங்கட்கிழமை_செவ்வாய்கிழமை_புதன்கிழமை_வியாழக்கிழமை_வெள்ளிக்கிழமை_சனிக்கிழமை'.split('_'), - weekdaysShort : 'ஞாயிறு_திங்கள்_செவ்வாய்_புதன்_வியாழன்_வெள்ளி_சனி'.split('_'), - weekdaysMin : 'ஞா_தி_செ_பு_வி_வெ_ச'.split('_'), - longDateFormat : { - LT : 'HH:mm', - LTS : 'HH:mm:ss', - L : 'DD/MM/YYYY', - LL : 'D MMMM YYYY', - LLL : 'D MMMM YYYY, HH:mm', - LLLL : 'dddd, D MMMM YYYY, HH:mm' - }, - 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 ஆண்டுகள்' - }, - dayOfMonthOrdinalParse: /\d{1,2}வது/, - ordinal : function (number) { - return number + 'வது'; - }, - preparse: function (string) { - return string.replace(/[௧௨௩௪௫௬௭௮௯௦]/g, function (match) { - return numberMap$11[match]; - }); - }, - postformat: function (string) { - return string.replace(/\d/g, function (match) { - return symbolMap$12[match]; - }); - }, - // refer http://ta.wikipedia.org/s/1er1 - meridiemParse: /யாமம்|வைகறை|காலை|நண்பகல்|எற்பாடு|மாலை/, - meridiem : function (hour, minute, isLower) { - if (hour < 2) { - return ' யாமம்'; - } else if (hour < 6) { - return ' வைகறை'; // வைகறை - } else if (hour < 10) { - return ' காலை'; // காலை - } else if (hour < 14) { - return ' நண்பகல்'; // நண்பகல் - } else if (hour < 18) { - return ' எற்பாடு'; // எற்பாடு - } else if (hour < 22) { - return ' மாலை'; // மாலை - } else { - return ' யாமம்'; - } - }, - meridiemHour : function (hour, meridiem) { - if (hour === 12) { - hour = 0; - } - if (meridiem === 'யாமம்') { - return hour < 2 ? hour : hour + 12; - } else if (meridiem === 'வைகறை' || meridiem === 'காலை') { - return hour; - } else if (meridiem === 'நண்பகல்') { - return hour >= 10 ? hour : hour + 12; - } else { - return hour + 12; - } - }, - week : { - dow : 0, // Sunday is the first day of the week. - doy : 6 // The week that contains Jan 1st is the first week of the year. - } -}); - -//! moment.js locale configuration -//! locale : Telugu [te] -//! author : Krishna Chaitanya Thota : https://github.com/kcthota - -hooks.defineLocale('te', { - months : 'జనవరి_ఫిబ్రవరి_మార్చి_ఏప్రిల్_మే_జూన్_జూలై_ఆగస్టు_సెప్టెంబర్_అక్టోబర్_నవంబర్_డిసెంబర్'.split('_'), - monthsShort : 'జన._ఫిబ్ర._మార్చి_ఏప్రి._మే_జూన్_జూలై_ఆగ._సెప్._అక్టో._నవ._డిసె.'.split('_'), - monthsParseExact : true, - weekdays : 'ఆదివారం_సోమవారం_మంగళవారం_బుధవారం_గురువారం_శుక్రవారం_శనివారం'.split('_'), - weekdaysShort : 'ఆది_సోమ_మంగళ_బుధ_గురు_శుక్ర_శని'.split('_'), - weekdaysMin : 'ఆ_సో_మం_బు_గు_శు_శ'.split('_'), - longDateFormat : { - LT : 'A h:mm', - LTS : 'A h:mm:ss', - L : 'DD/MM/YYYY', - LL : 'D MMMM YYYY', - LLL : 'D MMMM YYYY, A h:mm', - LLLL : 'dddd, D MMMM YYYY, A h:mm' - }, - 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 సంవత్సరాలు' - }, - dayOfMonthOrdinalParse : /\d{1,2}వ/, - ordinal : '%dవ', - meridiemParse: /రాత్రి|ఉదయం|మధ్యాహ్నం|సాయంత్రం/, - meridiemHour : function (hour, meridiem) { - if (hour === 12) { - hour = 0; - } - if (meridiem === 'రాత్రి') { - return hour < 4 ? hour : hour + 12; - } else if (meridiem === 'ఉదయం') { - return hour; - } else if (meridiem === 'మధ్యాహ్నం') { - return hour >= 10 ? hour : hour + 12; - } else if (meridiem === 'సాయంత్రం') { - return hour + 12; - } - }, - meridiem : function (hour, minute, isLower) { - if (hour < 4) { - return 'రాత్రి'; - } else if (hour < 10) { - return 'ఉదయం'; - } else if (hour < 17) { - return 'మధ్యాహ్నం'; - } else if (hour < 20) { - return 'సాయంత్రం'; - } else { - return 'రాత్రి'; - } - }, - week : { - dow : 0, // Sunday is the first day of the week. - doy : 6 // The week that contains Jan 1st is the first week of the year. - } -}); - -//! moment.js locale configuration -//! locale : Tetun Dili (East Timor) [tet] -//! author : Joshua Brooks : https://github.com/joshbrooks -//! author : Onorio De J. Afonso : https://github.com/marobo - -hooks.defineLocale('tet', { - months : 'Janeiru_Fevereiru_Marsu_Abril_Maiu_Juniu_Juliu_Augustu_Setembru_Outubru_Novembru_Dezembru'.split('_'), - monthsShort : 'Jan_Fev_Mar_Abr_Mai_Jun_Jul_Aug_Set_Out_Nov_Dez'.split('_'), - weekdays : 'Domingu_Segunda_Tersa_Kuarta_Kinta_Sexta_Sabadu'.split('_'), - weekdaysShort : 'Dom_Seg_Ters_Kua_Kint_Sext_Sab'.split('_'), - weekdaysMin : 'Do_Seg_Te_Ku_Ki_Sex_Sa'.split('_'), - longDateFormat : { - LT : 'HH:mm', - LTS : 'HH:mm:ss', - L : 'DD/MM/YYYY', - LL : 'D MMMM YYYY', - LLL : 'D MMMM YYYY HH:mm', - LLLL : 'dddd, D MMMM YYYY HH:mm' - }, - calendar : { - sameDay: '[Ohin iha] LT', - nextDay: '[Aban iha] LT', - nextWeek: 'dddd [iha] LT', - lastDay: '[Horiseik iha] LT', - lastWeek: 'dddd [semana kotuk] [iha] LT', - sameElse: 'L' - }, - relativeTime : { - future : 'iha %s', - past : '%s liuba', - s : 'minutu balun', - m : 'minutu ida', - mm : 'minutus %d', - h : 'horas ida', - hh : 'horas %d', - d : 'loron ida', - dd : 'loron %d', - M : 'fulan ida', - MM : 'fulan %d', - y : 'tinan ida', - yy : 'tinan %d' - }, - dayOfMonthOrdinalParse: /\d{1,2}(st|nd|rd|th)/, - ordinal : function (number) { - var b = number % 10, - output = (~~(number % 100 / 10) === 1) ? 'th' : - (b === 1) ? 'st' : - (b === 2) ? 'nd' : - (b === 3) ? 'rd' : 'th'; - return number + output; - }, - week : { - dow : 1, // Monday is the first day of the week. - doy : 4 // The week that contains Jan 4th is the first week of the year. - } -}); - -//! moment.js locale configuration -//! locale : Thai [th] -//! author : Kridsada Thanabulpong : https://github.com/sirn - -hooks.defineLocale('th', { - months : 'มกราคม_กุมภาพันธ์_มีนาคม_เมษายน_พฤษภาคม_มิถุนายน_กรกฎาคม_สิงหาคม_กันยายน_ตุลาคม_พฤศจิกายน_ธันวาคม'.split('_'), - monthsShort : 'ม.ค._ก.พ._มี.ค._เม.ย._พ.ค._มิ.ย._ก.ค._ส.ค._ก.ย._ต.ค._พ.ย._ธ.ค.'.split('_'), - monthsParseExact: true, - weekdays : 'อาทิตย์_จันทร์_อังคาร_พุธ_พฤหัสบดี_ศุกร์_เสาร์'.split('_'), - weekdaysShort : 'อาทิตย์_จันทร์_อังคาร_พุธ_พฤหัส_ศุกร์_เสาร์'.split('_'), // yes, three characters difference - weekdaysMin : 'อา._จ._อ._พ._พฤ._ศ._ส.'.split('_'), - weekdaysParseExact : true, - longDateFormat : { - LT : 'H:mm', - LTS : 'H:mm:ss', - L : 'DD/MM/YYYY', - LL : 'D MMMM YYYY', - LLL : 'D MMMM YYYY เวลา H:mm', - LLLL : 'วันddddที่ D MMMM YYYY เวลา H:mm' - }, - meridiemParse: /ก่อนเที่ยง|หลังเที่ยง/, - isPM: function (input) { - return input === 'หลังเที่ยง'; - }, - meridiem : function (hour, minute, isLower) { - if (hour < 12) { - return 'ก่อนเที่ยง'; - } else { - return 'หลังเที่ยง'; - } - }, - 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 ปี' - } -}); - -//! moment.js locale configuration -//! locale : Tagalog (Philippines) [tl-ph] -//! author : Dan Hagman : https://github.com/hagmandan - -hooks.defineLocale('tl-ph', { - months : 'Enero_Pebrero_Marso_Abril_Mayo_Hunyo_Hulyo_Agosto_Setyembre_Oktubre_Nobyembre_Disyembre'.split('_'), - monthsShort : 'Ene_Peb_Mar_Abr_May_Hun_Hul_Ago_Set_Okt_Nob_Dis'.split('_'), - weekdays : 'Linggo_Lunes_Martes_Miyerkules_Huwebes_Biyernes_Sabado'.split('_'), - weekdaysShort : 'Lin_Lun_Mar_Miy_Huw_Biy_Sab'.split('_'), - weekdaysMin : 'Li_Lu_Ma_Mi_Hu_Bi_Sab'.split('_'), - longDateFormat : { - LT : 'HH:mm', - LTS : 'HH:mm:ss', - L : 'MM/D/YYYY', - LL : 'MMMM D, YYYY', - LLL : 'MMMM D, YYYY HH:mm', - LLLL : 'dddd, MMMM DD, YYYY HH:mm' - }, - calendar : { - sameDay: 'LT [ngayong araw]', - nextDay: '[Bukas ng] LT', - nextWeek: 'LT [sa susunod na] dddd', - lastDay: 'LT [kahapon]', - lastWeek: 'LT [noong nakaraang] dddd', - sameElse: 'L' - }, - relativeTime : { - future : 'sa loob ng %s', - past : '%s ang nakalipas', - s : 'ilang segundo', - m : 'isang minuto', - mm : '%d minuto', - h : 'isang oras', - hh : '%d oras', - d : 'isang araw', - dd : '%d araw', - M : 'isang buwan', - MM : '%d buwan', - y : 'isang taon', - yy : '%d taon' - }, - dayOfMonthOrdinalParse: /\d{1,2}/, - ordinal : function (number) { - return number; - }, - week : { - dow : 1, // Monday is the first day of the week. - doy : 4 // The week that contains Jan 4th is the first week of the year. - } -}); - -//! moment.js locale configuration -//! locale : Klingon [tlh] -//! author : Dominika Kruk : https://github.com/amaranthrose - -var numbersNouns = 'pagh_wa’_cha’_wej_loS_vagh_jav_Soch_chorgh_Hut'.split('_'); - -function translateFuture(output) { - var time = output; - time = (output.indexOf('jaj') !== -1) ? - time.slice(0, -3) + 'leS' : - (output.indexOf('jar') !== -1) ? - time.slice(0, -3) + 'waQ' : - (output.indexOf('DIS') !== -1) ? - time.slice(0, -3) + 'nem' : - time + ' pIq'; - return time; -} - -function translatePast(output) { - var time = output; - time = (output.indexOf('jaj') !== -1) ? - time.slice(0, -3) + 'Hu’' : - (output.indexOf('jar') !== -1) ? - time.slice(0, -3) + 'wen' : - (output.indexOf('DIS') !== -1) ? - time.slice(0, -3) + 'ben' : - time + ' ret'; - return time; -} - -function translate$9(number, withoutSuffix, string, isFuture) { - var numberNoun = numberAsNoun(number); - switch (string) { - case 'mm': - return numberNoun + ' tup'; - case 'hh': - return numberNoun + ' rep'; - case 'dd': - return numberNoun + ' jaj'; - case 'MM': - return numberNoun + ' jar'; - case 'yy': - return numberNoun + ' DIS'; - } -} - -function numberAsNoun(number) { - var hundred = Math.floor((number % 1000) / 100), - ten = Math.floor((number % 100) / 10), - one = number % 10, - word = ''; - if (hundred > 0) { - word += numbersNouns[hundred] + 'vatlh'; - } - if (ten > 0) { - word += ((word !== '') ? ' ' : '') + numbersNouns[ten] + 'maH'; - } - if (one > 0) { - word += ((word !== '') ? ' ' : '') + numbersNouns[one]; - } - return (word === '') ? 'pagh' : word; -} - -hooks.defineLocale('tlh', { - months : 'tera’ jar wa’_tera’ jar cha’_tera’ jar wej_tera’ jar loS_tera’ jar vagh_tera’ jar jav_tera’ jar Soch_tera’ jar chorgh_tera’ jar Hut_tera’ jar wa’maH_tera’ jar wa’maH wa’_tera’ jar wa’maH cha’'.split('_'), - monthsShort : 'jar wa’_jar cha’_jar wej_jar loS_jar vagh_jar jav_jar Soch_jar chorgh_jar Hut_jar wa’maH_jar wa’maH wa’_jar wa’maH cha’'.split('_'), - monthsParseExact : true, - weekdays : 'lojmItjaj_DaSjaj_povjaj_ghItlhjaj_loghjaj_buqjaj_ghInjaj'.split('_'), - weekdaysShort : 'lojmItjaj_DaSjaj_povjaj_ghItlhjaj_loghjaj_buqjaj_ghInjaj'.split('_'), - weekdaysMin : 'lojmItjaj_DaSjaj_povjaj_ghItlhjaj_loghjaj_buqjaj_ghInjaj'.split('_'), - longDateFormat : { - LT : 'HH:mm', - LTS : 'HH:mm:ss', - L : 'DD.MM.YYYY', - LL : 'D MMMM YYYY', - LLL : 'D MMMM YYYY HH:mm', - LLLL : 'dddd, D MMMM YYYY HH:mm' - }, - calendar : { - sameDay: '[DaHjaj] LT', - nextDay: '[wa’leS] LT', - nextWeek: 'LLL', - lastDay: '[wa’Hu’] LT', - lastWeek: 'LLL', - sameElse: 'L' - }, - relativeTime : { - future : translateFuture, - past : translatePast, - s : 'puS lup', - m : 'wa’ tup', - mm : translate$9, - h : 'wa’ rep', - hh : translate$9, - d : 'wa’ jaj', - dd : translate$9, - M : 'wa’ jar', - MM : translate$9, - y : 'wa’ DIS', - yy : translate$9 - }, - dayOfMonthOrdinalParse: /\d{1,2}\./, - ordinal : '%d.', - week : { - dow : 1, // Monday is the first day of the week. - doy : 4 // The week that contains Jan 4th is the first week of the year. - } -}); - -//! moment.js locale configuration -//! locale : Turkish [tr] -//! authors : Erhan Gundogan : https://github.com/erhangundogan, -//! Burak Yiğit Kaya: https://github.com/BYK - -var suffixes$3 = { - 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ı' -}; - -hooks.defineLocale('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', - LTS : 'HH:mm:ss', - L : 'DD.MM.YYYY', - LL : 'D MMMM YYYY', - LLL : 'D MMMM YYYY HH:mm', - LLLL : 'dddd, D MMMM YYYY HH:mm' - }, - 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' - }, - dayOfMonthOrdinalParse: /\d{1,2}'(inci|nci|üncü|ncı|uncu|ıncı)/, - ordinal : function (number) { - if (number === 0) { // special case for zero - return number + '\'ıncı'; - } - var a = number % 10, - b = number % 100 - a, - c = number >= 100 ? 100 : null; - return number + (suffixes$3[a] || suffixes$3[b] || suffixes$3[c]); - }, - week : { - dow : 1, // Monday is the first day of the week. - doy : 7 // The week that contains Jan 1st is the first week of the year. - } -}); - -//! moment.js locale configuration -//! locale : Talossan [tzl] -//! author : Robin van der Vliet : https://github.com/robin0van0der0v -//! author : Iustì Canun - -// After the year there should be a slash and the amount of years since December 26, 1979 in Roman numerals. -// This is currently too difficult (maybe even impossible) to add. -hooks.defineLocale('tzl', { - months : 'Januar_Fevraglh_Març_Avrïu_Mai_Gün_Julia_Guscht_Setemvar_Listopäts_Noemvar_Zecemvar'.split('_'), - monthsShort : 'Jan_Fev_Mar_Avr_Mai_Gün_Jul_Gus_Set_Lis_Noe_Zec'.split('_'), - weekdays : 'Súladi_Lúneçi_Maitzi_Márcuri_Xhúadi_Viénerçi_Sáturi'.split('_'), - weekdaysShort : 'Súl_Lún_Mai_Már_Xhú_Vié_Sát'.split('_'), - weekdaysMin : 'Sú_Lú_Ma_Má_Xh_Vi_Sá'.split('_'), - longDateFormat : { - LT : 'HH.mm', - LTS : 'HH.mm.ss', - L : 'DD.MM.YYYY', - LL : 'D. MMMM [dallas] YYYY', - LLL : 'D. MMMM [dallas] YYYY HH.mm', - LLLL : 'dddd, [li] D. MMMM [dallas] YYYY HH.mm' - }, - meridiemParse: /d\'o|d\'a/i, - isPM : function (input) { - return 'd\'o' === input.toLowerCase(); - }, - meridiem : function (hours, minutes, isLower) { - if (hours > 11) { - return isLower ? 'd\'o' : 'D\'O'; - } else { - return isLower ? 'd\'a' : 'D\'A'; - } - }, - calendar : { - sameDay : '[oxhi à] LT', - nextDay : '[demà à] LT', - nextWeek : 'dddd [à] LT', - lastDay : '[ieiri à] LT', - lastWeek : '[sür el] dddd [lasteu à] LT', - sameElse : 'L' - }, - relativeTime : { - future : 'osprei %s', - past : 'ja%s', - s : processRelativeTime$7, - m : processRelativeTime$7, - mm : processRelativeTime$7, - h : processRelativeTime$7, - hh : processRelativeTime$7, - d : processRelativeTime$7, - dd : processRelativeTime$7, - M : processRelativeTime$7, - MM : processRelativeTime$7, - y : processRelativeTime$7, - yy : processRelativeTime$7 - }, - dayOfMonthOrdinalParse: /\d{1,2}\./, - ordinal : '%d.', - week : { - dow : 1, // Monday is the first day of the week. - doy : 4 // The week that contains Jan 4th is the first week of the year. - } -}); - -function processRelativeTime$7(number, withoutSuffix, key, isFuture) { - var format = { - 's': ['viensas secunds', '\'iensas secunds'], - 'm': ['\'n míut', '\'iens míut'], - 'mm': [number + ' míuts', '' + number + ' míuts'], - 'h': ['\'n þora', '\'iensa þora'], - 'hh': [number + ' þoras', '' + number + ' þoras'], - 'd': ['\'n ziua', '\'iensa ziua'], - 'dd': [number + ' ziuas', '' + number + ' ziuas'], - 'M': ['\'n mes', '\'iens mes'], - 'MM': [number + ' mesen', '' + number + ' mesen'], - 'y': ['\'n ar', '\'iens ar'], - 'yy': [number + ' ars', '' + number + ' ars'] - }; - return isFuture ? format[key][0] : (withoutSuffix ? format[key][0] : format[key][1]); -} - -//! moment.js locale configuration -//! locale : Central Atlas Tamazight Latin [tzm-latn] -//! author : Abdel Said : https://github.com/abdelsaid - -hooks.defineLocale('tzm-latn', { - 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', - LTS : 'HH:mm:ss', - L : 'DD/MM/YYYY', - LL : 'D MMMM YYYY', - LLL : 'D MMMM YYYY HH:mm', - LLLL : 'dddd D MMMM YYYY HH:mm' - }, - 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, // Saturday is the first day of the week. - doy : 12 // The week that contains Jan 1st is the first week of the year. - } -}); - -//! moment.js locale configuration -//! locale : Central Atlas Tamazight [tzm] -//! author : Abdel Said : https://github.com/abdelsaid - -hooks.defineLocale('tzm', { - months : 'ⵉⵏⵏⴰⵢⵔ_ⴱⵕⴰⵢⵕ_ⵎⴰⵕⵚ_ⵉⴱⵔⵉⵔ_ⵎⴰⵢⵢⵓ_ⵢⵓⵏⵢⵓ_ⵢⵓⵍⵢⵓⵣ_ⵖⵓⵛⵜ_ⵛⵓⵜⴰⵏⴱⵉⵔ_ⴽⵟⵓⴱⵕ_ⵏⵓⵡⴰⵏⴱⵉⵔ_ⴷⵓⵊⵏⴱⵉⵔ'.split('_'), - monthsShort : 'ⵉⵏⵏⴰⵢⵔ_ⴱⵕⴰⵢⵕ_ⵎⴰⵕⵚ_ⵉⴱⵔⵉⵔ_ⵎⴰⵢⵢⵓ_ⵢⵓⵏⵢⵓ_ⵢⵓⵍⵢⵓⵣ_ⵖⵓⵛⵜ_ⵛⵓⵜⴰⵏⴱⵉⵔ_ⴽⵟⵓⴱⵕ_ⵏⵓⵡⴰⵏⴱⵉⵔ_ⴷⵓⵊⵏⴱⵉⵔ'.split('_'), - weekdays : 'ⴰⵙⴰⵎⴰⵙ_ⴰⵢⵏⴰⵙ_ⴰⵙⵉⵏⴰⵙ_ⴰⴽⵔⴰⵙ_ⴰⴽⵡⴰⵙ_ⴰⵙⵉⵎⵡⴰⵙ_ⴰⵙⵉⴹⵢⴰⵙ'.split('_'), - weekdaysShort : 'ⴰⵙⴰⵎⴰⵙ_ⴰⵢⵏⴰⵙ_ⴰⵙⵉⵏⴰⵙ_ⴰⴽⵔⴰⵙ_ⴰⴽⵡⴰⵙ_ⴰⵙⵉⵎⵡⴰⵙ_ⴰⵙⵉⴹⵢⴰⵙ'.split('_'), - weekdaysMin : 'ⴰⵙⴰⵎⴰⵙ_ⴰⵢⵏⴰⵙ_ⴰⵙⵉⵏⴰⵙ_ⴰⴽⵔⴰⵙ_ⴰⴽⵡⴰⵙ_ⴰⵙⵉⵎⵡⴰⵙ_ⴰⵙⵉⴹⵢⴰⵙ'.split('_'), - longDateFormat : { - LT : 'HH:mm', - LTS: 'HH:mm:ss', - L : 'DD/MM/YYYY', - LL : 'D MMMM YYYY', - LLL : 'D MMMM YYYY HH:mm', - LLLL : 'dddd D MMMM YYYY HH:mm' - }, - 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, // Saturday is the first day of the week. - doy : 12 // The week that contains Jan 1st is the first week of the year. - } -}); - -//! moment.js locale configuration -//! locale : Ukrainian [uk] -//! author : zemlanin : https://github.com/zemlanin -//! Author : Menelion Elensúle : https://github.com/Oire - -function plural$6(word, num) { - var forms = word.split('_'); - return num % 10 === 1 && num % 100 !== 11 ? forms[0] : (num % 10 >= 2 && num % 10 <= 4 && (num % 100 < 10 || num % 100 >= 20) ? forms[1] : forms[2]); -} -function relativeTimeWithPlural$4(number, withoutSuffix, key) { - var format = { - 'mm': withoutSuffix ? 'хвилина_хвилини_хвилин' : 'хвилину_хвилини_хвилин', - 'hh': withoutSuffix ? 'година_години_годин' : 'годину_години_годин', - 'dd': 'день_дні_днів', - 'MM': 'місяць_місяці_місяців', - 'yy': 'рік_роки_років' - }; - if (key === 'm') { - return withoutSuffix ? 'хвилина' : 'хвилину'; - } - else if (key === 'h') { - return withoutSuffix ? 'година' : 'годину'; - } - else { - return number + ' ' + plural$6(format[key], +number); - } -} -function weekdaysCaseReplace(m, format) { - var weekdays = { - 'nominative': 'неділя_понеділок_вівторок_середа_четвер_п’ятниця_субота'.split('_'), - 'accusative': 'неділю_понеділок_вівторок_середу_четвер_п’ятницю_суботу'.split('_'), - 'genitive': 'неділі_понеділка_вівторка_середи_четверга_п’ятниці_суботи'.split('_') - }; - - if (!m) { - return weekdays['nominative']; - } - - var nounCase = (/(\[[ВвУу]\]) ?dddd/).test(format) ? - 'accusative' : - ((/\[?(?:минулої|наступної)? ?\] ?dddd/).test(format) ? - 'genitive' : - 'nominative'); - return weekdays[nounCase][m.day()]; -} -function processHoursFunction(str) { - return function () { - return str + 'о' + (this.hours() === 11 ? 'б' : '') + '] LT'; - }; -} - -hooks.defineLocale('uk', { - months : { - 'format': 'січня_лютого_березня_квітня_травня_червня_липня_серпня_вересня_жовтня_листопада_грудня'.split('_'), - 'standalone': 'січень_лютий_березень_квітень_травень_червень_липень_серпень_вересень_жовтень_листопад_грудень'.split('_') - }, - monthsShort : 'січ_лют_бер_квіт_трав_черв_лип_серп_вер_жовт_лист_груд'.split('_'), - weekdays : weekdaysCaseReplace, - weekdaysShort : 'нд_пн_вт_ср_чт_пт_сб'.split('_'), - weekdaysMin : 'нд_пн_вт_ср_чт_пт_сб'.split('_'), - longDateFormat : { - LT : 'HH:mm', - LTS : 'HH:mm:ss', - L : 'DD.MM.YYYY', - LL : 'D MMMM YYYY р.', - LLL : 'D MMMM YYYY р., HH:mm', - LLLL : 'dddd, D MMMM YYYY р., HH:mm' - }, - calendar : { - sameDay: processHoursFunction('[Сьогодні '), - nextDay: processHoursFunction('[Завтра '), - lastDay: processHoursFunction('[Вчора '), - nextWeek: processHoursFunction('[У] dddd ['), - lastWeek: function () { - switch (this.day()) { - case 0: - case 3: - case 5: - case 6: - return processHoursFunction('[Минулої] dddd [').call(this); - case 1: - case 2: - case 4: - return processHoursFunction('[Минулого] dddd [').call(this); - } - }, - sameElse: 'L' - }, - relativeTime : { - future : 'за %s', - past : '%s тому', - s : 'декілька секунд', - m : relativeTimeWithPlural$4, - mm : relativeTimeWithPlural$4, - h : 'годину', - hh : relativeTimeWithPlural$4, - d : 'день', - dd : relativeTimeWithPlural$4, - M : 'місяць', - MM : relativeTimeWithPlural$4, - y : 'рік', - yy : relativeTimeWithPlural$4 - }, - // M. E.: those two are virtually unused but a user might want to implement them for his/her website for some reason - meridiemParse: /ночі|ранку|дня|вечора/, - isPM: function (input) { - return /^(дня|вечора)$/.test(input); - }, - meridiem : function (hour, minute, isLower) { - if (hour < 4) { - return 'ночі'; - } else if (hour < 12) { - return 'ранку'; - } else if (hour < 17) { - return 'дня'; - } else { - return 'вечора'; - } - }, - dayOfMonthOrdinalParse: /\d{1,2}-(й|го)/, - ordinal: function (number, period) { - switch (period) { - case 'M': - case 'd': - case 'DDD': - case 'w': - case 'W': - return number + '-й'; - case 'D': - return number + '-го'; - default: - return number; - } - }, - week : { - dow : 1, // Monday is the first day of the week. - doy : 7 // The week that contains Jan 1st is the first week of the year. - } -}); - -//! moment.js locale configuration -//! locale : Urdu [ur] -//! author : Sawood Alam : https://github.com/ibnesayeed -//! author : Zack : https://github.com/ZackVision - -var months$8 = [ - 'جنوری', - 'فروری', - 'مارچ', - 'اپریل', - 'مئی', - 'جون', - 'جولائی', - 'اگست', - 'ستمبر', - 'اکتوبر', - 'نومبر', - 'دسمبر' -]; -var days$2 = [ - 'اتوار', - 'پیر', - 'منگل', - 'بدھ', - 'جمعرات', - 'جمعہ', - 'ہفتہ' -]; - -hooks.defineLocale('ur', { - months : months$8, - monthsShort : months$8, - weekdays : days$2, - weekdaysShort : days$2, - weekdaysMin : days$2, - longDateFormat : { - LT : 'HH:mm', - LTS : 'HH:mm:ss', - L : 'DD/MM/YYYY', - LL : 'D MMMM YYYY', - LLL : 'D MMMM YYYY HH:mm', - LLLL : 'dddd، D MMMM YYYY HH:mm' - }, - meridiemParse: /صبح|شام/, - isPM : function (input) { - return 'شام' === input; - }, - meridiem : function (hour, minute, isLower) { - if (hour < 12) { - return 'صبح'; - } - return 'شام'; - }, - 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 (string) { - return string.replace(/،/g, ','); - }, - postformat: function (string) { - return string.replace(/,/g, '،'); - }, - week : { - dow : 1, // Monday is the first day of the week. - doy : 4 // The week that contains Jan 4th is the first week of the year. - } -}); - -//! moment.js locale configuration -//! locale : Uzbek Latin [uz-latn] -//! author : Rasulbek Mirzayev : github.com/Rasulbeeek - -hooks.defineLocale('uz-latn', { - months : 'Yanvar_Fevral_Mart_Aprel_May_Iyun_Iyul_Avgust_Sentabr_Oktabr_Noyabr_Dekabr'.split('_'), - monthsShort : 'Yan_Fev_Mar_Apr_May_Iyun_Iyul_Avg_Sen_Okt_Noy_Dek'.split('_'), - weekdays : 'Yakshanba_Dushanba_Seshanba_Chorshanba_Payshanba_Juma_Shanba'.split('_'), - weekdaysShort : 'Yak_Dush_Sesh_Chor_Pay_Jum_Shan'.split('_'), - weekdaysMin : 'Ya_Du_Se_Cho_Pa_Ju_Sha'.split('_'), - longDateFormat : { - LT : 'HH:mm', - LTS : 'HH:mm:ss', - L : 'DD/MM/YYYY', - LL : 'D MMMM YYYY', - LLL : 'D MMMM YYYY HH:mm', - LLLL : 'D MMMM YYYY, dddd HH:mm' - }, - calendar : { - sameDay : '[Bugun soat] LT [da]', - nextDay : '[Ertaga] LT [da]', - nextWeek : 'dddd [kuni soat] LT [da]', - lastDay : '[Kecha soat] LT [da]', - lastWeek : '[O\'tgan] dddd [kuni soat] LT [da]', - sameElse : 'L' - }, - relativeTime : { - future : 'Yaqin %s ichida', - past : 'Bir necha %s oldin', - s : 'soniya', - m : 'bir daqiqa', - mm : '%d daqiqa', - h : 'bir soat', - hh : '%d soat', - d : 'bir kun', - dd : '%d kun', - M : 'bir oy', - MM : '%d oy', - y : 'bir yil', - yy : '%d yil' - }, - week : { - dow : 1, // Monday is the first day of the week. - doy : 7 // The week that contains Jan 1st is the first week of the year. - } -}); - -//! moment.js locale configuration -//! locale : Uzbek [uz] -//! author : Sardor Muminov : https://github.com/muminoff - -hooks.defineLocale('uz', { - months : 'январ_феврал_март_апрел_май_июн_июл_август_сентябр_октябр_ноябр_декабр'.split('_'), - monthsShort : 'янв_фев_мар_апр_май_июн_июл_авг_сен_окт_ноя_дек'.split('_'), - weekdays : 'Якшанба_Душанба_Сешанба_Чоршанба_Пайшанба_Жума_Шанба'.split('_'), - weekdaysShort : 'Якш_Душ_Сеш_Чор_Пай_Жум_Шан'.split('_'), - weekdaysMin : 'Як_Ду_Се_Чо_Па_Жу_Ша'.split('_'), - longDateFormat : { - LT : 'HH:mm', - LTS : 'HH:mm:ss', - L : 'DD/MM/YYYY', - LL : 'D MMMM YYYY', - LLL : 'D MMMM YYYY HH:mm', - LLLL : 'D MMMM YYYY, dddd HH:mm' - }, - 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, // Monday is the first day of the week. - doy : 7 // The week that contains Jan 4th is the first week of the year. - } -}); - -//! moment.js locale configuration -//! locale : Vietnamese [vi] -//! author : Bang Nguyen : https://github.com/bangnk - -hooks.defineLocale('vi', { - months : 'tháng 1_tháng 2_tháng 3_tháng 4_tháng 5_tháng 6_tháng 7_tháng 8_tháng 9_tháng 10_tháng 11_tháng 12'.split('_'), - monthsShort : 'Th01_Th02_Th03_Th04_Th05_Th06_Th07_Th08_Th09_Th10_Th11_Th12'.split('_'), - monthsParseExact : true, - weekdays : 'chủ nhật_thứ hai_thứ ba_thứ tư_thứ năm_thứ sáu_thứ bảy'.split('_'), - weekdaysShort : 'CN_T2_T3_T4_T5_T6_T7'.split('_'), - weekdaysMin : 'CN_T2_T3_T4_T5_T6_T7'.split('_'), - weekdaysParseExact : true, - meridiemParse: /sa|ch/i, - isPM : function (input) { - return /^ch$/i.test(input); - }, - meridiem : function (hours, minutes, isLower) { - if (hours < 12) { - return isLower ? 'sa' : 'SA'; - } else { - return isLower ? 'ch' : 'CH'; - } - }, - longDateFormat : { - LT : 'HH:mm', - LTS : 'HH:mm:ss', - L : 'DD/MM/YYYY', - LL : 'D MMMM [năm] YYYY', - LLL : 'D MMMM [năm] YYYY HH:mm', - LLLL : 'dddd, D MMMM [năm] YYYY HH:mm', - l : 'DD/M/YYYY', - ll : 'D MMM YYYY', - lll : 'D MMM YYYY HH:mm', - llll : 'ddd, D MMM YYYY HH:mm' - }, - calendar : { - sameDay: '[Hôm nay lúc] LT', - nextDay: '[Ngày mai lúc] LT', - nextWeek: 'dddd [tuần tới lúc] LT', - lastDay: '[Hôm qua lúc] LT', - lastWeek: 'dddd [tuần rồi lúc] LT', - sameElse: 'L' - }, - relativeTime : { - future : '%s tới', - past : '%s trước', - s : 'vài giây', - m : 'một phút', - mm : '%d phút', - h : 'một giờ', - hh : '%d giờ', - d : 'một ngày', - dd : '%d ngày', - M : 'một tháng', - MM : '%d tháng', - y : 'một năm', - yy : '%d năm' - }, - dayOfMonthOrdinalParse: /\d{1,2}/, - ordinal : function (number) { - return number; - }, - week : { - dow : 1, // Monday is the first day of the week. - doy : 4 // The week that contains Jan 4th is the first week of the year. - } -}); - -//! moment.js locale configuration -//! locale : Pseudo [x-pseudo] -//! author : Andrew Hood : https://github.com/andrewhood125 - -hooks.defineLocale('x-pseudo', { - months : 'J~áñúá~rý_F~ébrú~árý_~Márc~h_Áp~ríl_~Máý_~Júñé~_Júl~ý_Áú~gúst~_Sép~témb~ér_Ó~ctób~ér_Ñ~óvém~bér_~Décé~mbér'.split('_'), - monthsShort : 'J~áñ_~Féb_~Már_~Ápr_~Máý_~Júñ_~Júl_~Áúg_~Sép_~Óct_~Ñóv_~Déc'.split('_'), - monthsParseExact : true, - weekdays : 'S~úñdá~ý_Mó~ñdáý~_Túé~sdáý~_Wéd~ñésd~áý_T~húrs~dáý_~Fríd~áý_S~átúr~dáý'.split('_'), - weekdaysShort : 'S~úñ_~Móñ_~Túé_~Wéd_~Thú_~Frí_~Sát'.split('_'), - weekdaysMin : 'S~ú_Mó~_Tú_~Wé_T~h_Fr~_Sá'.split('_'), - weekdaysParseExact : true, - longDateFormat : { - LT : 'HH:mm', - L : 'DD/MM/YYYY', - LL : 'D MMMM YYYY', - LLL : 'D MMMM YYYY HH:mm', - LLLL : 'dddd, D MMMM YYYY HH:mm' - }, - calendar : { - sameDay : '[T~ódá~ý át] LT', - nextDay : '[T~ómó~rró~w át] LT', - nextWeek : 'dddd [át] LT', - lastDay : '[Ý~ést~érdá~ý át] LT', - lastWeek : '[L~ást] dddd [át] LT', - sameElse : 'L' - }, - relativeTime : { - future : 'í~ñ %s', - past : '%s á~gó', - s : 'á ~féw ~sécó~ñds', - m : 'á ~míñ~úté', - mm : '%d m~íñú~tés', - h : 'á~ñ hó~úr', - hh : '%d h~óúrs', - d : 'á ~dáý', - dd : '%d d~áýs', - M : 'á ~móñ~th', - MM : '%d m~óñt~hs', - y : 'á ~ýéár', - yy : '%d ý~éárs' - }, - dayOfMonthOrdinalParse: /\d{1,2}(th|st|nd|rd)/, - ordinal : function (number) { - var b = number % 10, - output = (~~(number % 100 / 10) === 1) ? 'th' : - (b === 1) ? 'st' : - (b === 2) ? 'nd' : - (b === 3) ? 'rd' : 'th'; - return number + output; - }, - week : { - dow : 1, // Monday is the first day of the week. - doy : 4 // The week that contains Jan 4th is the first week of the year. - } -}); - -//! moment.js locale configuration -//! locale : Yoruba Nigeria [yo] -//! author : Atolagbe Abisoye : https://github.com/andela-batolagbe - -hooks.defineLocale('yo', { - months : 'Sẹ́rẹ́_Èrèlè_Ẹrẹ̀nà_Ìgbé_Èbibi_Òkùdu_Agẹmo_Ògún_Owewe_Ọ̀wàrà_Bélú_Ọ̀pẹ̀̀'.split('_'), - monthsShort : 'Sẹ́r_Èrl_Ẹrn_Ìgb_Èbi_Òkù_Agẹ_Ògú_Owe_Ọ̀wà_Bél_Ọ̀pẹ̀̀'.split('_'), - weekdays : 'Àìkú_Ajé_Ìsẹ́gun_Ọjọ́rú_Ọjọ́bọ_Ẹtì_Àbámẹ́ta'.split('_'), - weekdaysShort : 'Àìk_Ajé_Ìsẹ́_Ọjr_Ọjb_Ẹtì_Àbá'.split('_'), - weekdaysMin : 'Àì_Aj_Ìs_Ọr_Ọb_Ẹt_Àb'.split('_'), - longDateFormat : { - LT : 'h:mm A', - LTS : 'h:mm:ss A', - L : 'DD/MM/YYYY', - LL : 'D MMMM YYYY', - LLL : 'D MMMM YYYY h:mm A', - LLLL : 'dddd, D MMMM YYYY h:mm A' - }, - calendar : { - sameDay : '[Ònì ni] LT', - nextDay : '[Ọ̀la ni] LT', - nextWeek : 'dddd [Ọsẹ̀ tón\'bọ] [ni] LT', - lastDay : '[Àna ni] LT', - lastWeek : 'dddd [Ọsẹ̀ tólọ́] [ni] LT', - sameElse : 'L' - }, - relativeTime : { - future : 'ní %s', - past : '%s kọjá', - s : 'ìsẹjú aayá die', - m : 'ìsẹjú kan', - mm : 'ìsẹjú %d', - h : 'wákati kan', - hh : 'wákati %d', - d : 'ọjọ́ kan', - dd : 'ọjọ́ %d', - M : 'osù kan', - MM : 'osù %d', - y : 'ọdún kan', - yy : 'ọdún %d' - }, - dayOfMonthOrdinalParse : /ọjọ́\s\d{1,2}/, - ordinal : 'ọjọ́ %d', - week : { - dow : 1, // Monday is the first day of the week. - doy : 4 // The week that contains Jan 4th is the first week of the year. - } -}); - -//! moment.js locale configuration -//! locale : Chinese (China) [zh-cn] -//! author : suupic : https://github.com/suupic -//! author : Zeno Zeng : https://github.com/zenozeng - -hooks.defineLocale('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 : 'HH:mm', - LTS : 'HH:mm:ss', - L : 'YYYY年MMMD日', - LL : 'YYYY年MMMD日', - LLL : 'YYYY年MMMD日Ah点mm分', - LLLL : 'YYYY年MMMD日ddddAh点mm分', - l : 'YYYY年MMMD日', - ll : 'YYYY年MMMD日', - lll : 'YYYY年MMMD日 HH:mm', - llll : 'YYYY年MMMD日dddd HH:mm' - }, - meridiemParse: /凌晨|早上|上午|中午|下午|晚上/, - meridiemHour: function (hour, meridiem) { - if (hour === 12) { - hour = 0; - } - if (meridiem === '凌晨' || meridiem === '早上' || - meridiem === '上午') { - return hour; - } else if (meridiem === '下午' || meridiem === '晚上') { - return hour + 12; - } else { - // '中午' - return hour >= 11 ? hour : hour + 12; - } - }, - meridiem : function (hour, minute, isLower) { - var hm = hour * 100 + minute; - if (hm < 600) { - return '凌晨'; - } else if (hm < 900) { - return '早上'; - } else if (hm < 1130) { - return '上午'; - } else if (hm < 1230) { - return '中午'; - } else if (hm < 1800) { - return '下午'; - } else { - return '晚上'; - } - }, - calendar : { - sameDay : '[今天]LT', - nextDay : '[明天]LT', - nextWeek : '[下]ddddLT', - lastDay : '[昨天]LT', - lastWeek : '[上]ddddLT', - sameElse : 'L' - }, - dayOfMonthOrdinalParse: /\d{1,2}(日|月|周)/, - ordinal : function (number, period) { - switch (period) { - case 'd': - case 'D': - case 'DDD': - return number + '日'; - case 'M': - return number + '月'; - case 'w': - case 'W': - return number + '周'; - default: - return number; - } - }, - 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 年' - }, - week : { - // GB/T 7408-1994《数据元和交换格式·信息交换·日期和时间表示法》与ISO 8601:1988等效 - dow : 1, // Monday is the first day of the week. - doy : 4 // The week that contains Jan 4th is the first week of the year. - } -}); - -//! moment.js locale configuration -//! locale : Chinese (Hong Kong) [zh-hk] -//! author : Ben : https://github.com/ben-lin -//! author : Chris Lam : https://github.com/hehachris -//! author : Konstantin : https://github.com/skfd - -hooks.defineLocale('zh-hk', { - months : '一月_二月_三月_四月_五月_六月_七月_八月_九月_十月_十一月_十二月'.split('_'), - monthsShort : '1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月'.split('_'), - weekdays : '星期日_星期一_星期二_星期三_星期四_星期五_星期六'.split('_'), - weekdaysShort : '週日_週一_週二_週三_週四_週五_週六'.split('_'), - weekdaysMin : '日_一_二_三_四_五_六'.split('_'), - longDateFormat : { - LT : 'HH:mm', - LTS : 'HH:mm:ss', - L : 'YYYY年MMMD日', - LL : 'YYYY年MMMD日', - LLL : 'YYYY年MMMD日 HH:mm', - LLLL : 'YYYY年MMMD日dddd HH:mm', - l : 'YYYY年MMMD日', - ll : 'YYYY年MMMD日', - lll : 'YYYY年MMMD日 HH:mm', - llll : 'YYYY年MMMD日dddd HH:mm' - }, - meridiemParse: /凌晨|早上|上午|中午|下午|晚上/, - meridiemHour : function (hour, meridiem) { - if (hour === 12) { - hour = 0; - } - if (meridiem === '凌晨' || meridiem === '早上' || meridiem === '上午') { - return hour; - } else if (meridiem === '中午') { - return hour >= 11 ? hour : hour + 12; - } else if (meridiem === '下午' || meridiem === '晚上') { - return hour + 12; - } - }, - meridiem : function (hour, minute, isLower) { - var hm = hour * 100 + minute; - if (hm < 600) { - return '凌晨'; - } else if (hm < 900) { - return '早上'; - } else if (hm < 1130) { - return '上午'; - } else if (hm < 1230) { - return '中午'; - } else if (hm < 1800) { - return '下午'; - } else { - return '晚上'; - } - }, - calendar : { - sameDay : '[今天]LT', - nextDay : '[明天]LT', - nextWeek : '[下]ddddLT', - lastDay : '[昨天]LT', - lastWeek : '[上]ddddLT', - sameElse : 'L' - }, - dayOfMonthOrdinalParse: /\d{1,2}(日|月|週)/, - ordinal : function (number, period) { - switch (period) { - case 'd' : - case 'D' : - case 'DDD' : - return number + '日'; - case 'M' : - return number + '月'; - case 'w' : - case 'W' : - return number + '週'; - default : - return number; - } - }, - 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 年' - } -}); - -//! moment.js locale configuration -//! locale : Chinese (Taiwan) [zh-tw] -//! author : Ben : https://github.com/ben-lin -//! author : Chris Lam : https://github.com/hehachris - -hooks.defineLocale('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 : 'HH:mm', - LTS : 'HH:mm:ss', - L : 'YYYY年MMMD日', - LL : 'YYYY年MMMD日', - LLL : 'YYYY年MMMD日 HH:mm', - LLLL : 'YYYY年MMMD日dddd HH:mm', - l : 'YYYY年MMMD日', - ll : 'YYYY年MMMD日', - lll : 'YYYY年MMMD日 HH:mm', - llll : 'YYYY年MMMD日dddd HH:mm' - }, - meridiemParse: /凌晨|早上|上午|中午|下午|晚上/, - meridiemHour : function (hour, meridiem) { - if (hour === 12) { - hour = 0; - } - if (meridiem === '凌晨' || meridiem === '早上' || meridiem === '上午') { - return hour; - } else if (meridiem === '中午') { - return hour >= 11 ? hour : hour + 12; - } else if (meridiem === '下午' || meridiem === '晚上') { - return hour + 12; - } - }, - meridiem : function (hour, minute, isLower) { - var hm = hour * 100 + minute; - if (hm < 600) { - return '凌晨'; - } else if (hm < 900) { - return '早上'; - } else if (hm < 1130) { - return '上午'; - } else if (hm < 1230) { - return '中午'; - } else if (hm < 1800) { - return '下午'; - } else { - return '晚上'; - } - }, - calendar : { - sameDay : '[今天]LT', - nextDay : '[明天]LT', - nextWeek : '[下]ddddLT', - lastDay : '[昨天]LT', - lastWeek : '[上]ddddLT', - sameElse : 'L' - }, - dayOfMonthOrdinalParse: /\d{1,2}(日|月|週)/, - ordinal : function (number, period) { - switch (period) { - case 'd' : - case 'D' : - case 'DDD' : - return number + '日'; - case 'M' : - return number + '月'; - case 'w' : - case 'W' : - return number + '週'; - default : - return number; - } - }, - 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 年' - } -}); - -hooks.locale('en'); - -return hooks; - -}))); diff --git a/admin/bower_components/moment/min/moment-with-locales.min.js b/admin/bower_components/moment/min/moment-with-locales.min.js deleted file mode 100644 index a2842a7..0000000 --- a/admin/bower_components/moment/min/moment-with-locales.min.js +++ /dev/null @@ -1,505 +0,0 @@ -!function(a,b){"object"==typeof exports&&"undefined"!=typeof module?module.exports=b():"function"==typeof define&&define.amd?define(b):a.moment=b()}(this,function(){"use strict";function a(){return re.apply(null,arguments)}function b(a){re=a}function c(a){return a instanceof Array||"[object Array]"===Object.prototype.toString.call(a)}function d(a){return null!=a&&"[object Object]"===Object.prototype.toString.call(a)}function e(a){var b;for(b in a)return!1;return!0}function f(a){return void 0===a}function g(a){return"number"==typeof a||"[object Number]"===Object.prototype.toString.call(a)}function h(a){return a instanceof Date||"[object Date]"===Object.prototype.toString.call(a)}function i(a,b){var c,d=[];for(c=0;c<a.length;++c)d.push(b(a[c],c));return d}function j(a,b){return Object.prototype.hasOwnProperty.call(a,b)}function k(a,b){for(var c in b)j(b,c)&&(a[c]=b[c]);return j(b,"toString")&&(a.toString=b.toString),j(b,"valueOf")&&(a.valueOf=b.valueOf),a}function l(a,b,c,d){return sb(a,b,c,d,!0).utc()}function m(){return{empty:!1,unusedTokens:[],unusedInput:[],overflow:-2,charsLeftOver:0,nullInput:!1,invalidMonth:null,invalidFormat:!1,userInvalidated:!1,iso:!1,parsedDateParts:[],meridiem:null,rfc2822:!1,weekdayMismatch:!1}}function n(a){return null==a._pf&&(a._pf=m()),a._pf}function o(a){if(null==a._isValid){var b=n(a),c=te.call(b.parsedDateParts,function(a){return null!=a}),d=!isNaN(a._d.getTime())&&b.overflow<0&&!b.empty&&!b.invalidMonth&&!b.invalidWeekday&&!b.nullInput&&!b.invalidFormat&&!b.userInvalidated&&(!b.meridiem||b.meridiem&&c);if(a._strict&&(d=d&&0===b.charsLeftOver&&0===b.unusedTokens.length&&void 0===b.bigHour),null!=Object.isFrozen&&Object.isFrozen(a))return d;a._isValid=d}return a._isValid}function p(a){var b=l(NaN);return null!=a?k(n(b),a):n(b).userInvalidated=!0,b}function q(a,b){var c,d,e;if(f(b._isAMomentObject)||(a._isAMomentObject=b._isAMomentObject),f(b._i)||(a._i=b._i),f(b._f)||(a._f=b._f),f(b._l)||(a._l=b._l),f(b._strict)||(a._strict=b._strict),f(b._tzm)||(a._tzm=b._tzm),f(b._isUTC)||(a._isUTC=b._isUTC),f(b._offset)||(a._offset=b._offset),f(b._pf)||(a._pf=n(b)),f(b._locale)||(a._locale=b._locale),ue.length>0)for(c=0;c<ue.length;c++)d=ue[c],e=b[d],f(e)||(a[d]=e);return a}function r(b){q(this,b),this._d=new Date(null!=b._d?b._d.getTime():NaN),this.isValid()||(this._d=new Date(NaN)),ve===!1&&(ve=!0,a.updateOffset(this),ve=!1)}function s(a){return a instanceof r||null!=a&&null!=a._isAMomentObject}function t(a){return a<0?Math.ceil(a)||0:Math.floor(a)}function u(a){var b=+a,c=0;return 0!==b&&isFinite(b)&&(c=t(b)),c}function v(a,b,c){var d,e=Math.min(a.length,b.length),f=Math.abs(a.length-b.length),g=0;for(d=0;d<e;d++)(c&&a[d]!==b[d]||!c&&u(a[d])!==u(b[d]))&&g++;return g+f}function w(b){a.suppressDeprecationWarnings===!1&&"undefined"!=typeof console&&console.warn&&console.warn("Deprecation warning: "+b)}function x(b,c){var d=!0;return k(function(){if(null!=a.deprecationHandler&&a.deprecationHandler(null,b),d){for(var e,f=[],g=0;g<arguments.length;g++){if(e="","object"==typeof arguments[g]){e+="\n["+g+"] ";for(var h in arguments[0])e+=h+": "+arguments[0][h]+", ";e=e.slice(0,-2)}else e=arguments[g];f.push(e)}w(b+"\nArguments: "+Array.prototype.slice.call(f).join("")+"\n"+(new Error).stack),d=!1}return c.apply(this,arguments)},c)}function y(b,c){null!=a.deprecationHandler&&a.deprecationHandler(b,c),we[b]||(w(c),we[b]=!0)}function z(a){return a instanceof Function||"[object Function]"===Object.prototype.toString.call(a)}function A(a){var b,c;for(c in a)b=a[c],z(b)?this[c]=b:this["_"+c]=b;this._config=a,this._dayOfMonthOrdinalParseLenient=new RegExp((this._dayOfMonthOrdinalParse.source||this._ordinalParse.source)+"|"+/\d{1,2}/.source)}function B(a,b){var c,e=k({},a);for(c in b)j(b,c)&&(d(a[c])&&d(b[c])?(e[c]={},k(e[c],a[c]),k(e[c],b[c])):null!=b[c]?e[c]=b[c]:delete e[c]);for(c in a)j(a,c)&&!j(b,c)&&d(a[c])&&(e[c]=k({},e[c]));return e}function C(a){null!=a&&this.set(a)}function D(a,b,c){var d=this._calendar[a]||this._calendar.sameElse;return z(d)?d.call(b,c):d}function E(a){var b=this._longDateFormat[a],c=this._longDateFormat[a.toUpperCase()];return b||!c?b:(this._longDateFormat[a]=c.replace(/MMMM|MM|DD|dddd/g,function(a){return a.slice(1)}),this._longDateFormat[a])}function F(){return this._invalidDate}function G(a){return this._ordinal.replace("%d",a)}function H(a,b,c,d){var e=this._relativeTime[c];return z(e)?e(a,b,c,d):e.replace(/%d/i,a)}function I(a,b){var c=this._relativeTime[a>0?"future":"past"];return z(c)?c(b):c.replace(/%s/i,b)}function J(a,b){var c=a.toLowerCase();Ge[c]=Ge[c+"s"]=Ge[b]=a}function K(a){return"string"==typeof a?Ge[a]||Ge[a.toLowerCase()]:void 0}function L(a){var b,c,d={};for(c in a)j(a,c)&&(b=K(c),b&&(d[b]=a[c]));return d}function M(a,b){He[a]=b}function N(a){var b=[];for(var c in a)b.push({unit:c,priority:He[c]});return b.sort(function(a,b){return a.priority-b.priority}),b}function O(b,c){return function(d){return null!=d?(Q(this,b,d),a.updateOffset(this,c),this):P(this,b)}}function P(a,b){return a.isValid()?a._d["get"+(a._isUTC?"UTC":"")+b]():NaN}function Q(a,b,c){a.isValid()&&a._d["set"+(a._isUTC?"UTC":"")+b](c)}function R(a){return a=K(a),z(this[a])?this[a]():this}function S(a,b){if("object"==typeof a){a=L(a);for(var c=N(a),d=0;d<c.length;d++)this[c[d].unit](a[c[d].unit])}else if(a=K(a),z(this[a]))return this[a](b);return this}function T(a,b,c){var d=""+Math.abs(a),e=b-d.length,f=a>=0;return(f?c?"+":"":"-")+Math.pow(10,Math.max(0,e)).toString().substr(1)+d}function U(a,b,c,d){var e=d;"string"==typeof d&&(e=function(){return this[d]()}),a&&(Le[a]=e),b&&(Le[b[0]]=function(){return T(e.apply(this,arguments),b[1],b[2])}),c&&(Le[c]=function(){return this.localeData().ordinal(e.apply(this,arguments),a)})}function V(a){return a.match(/\[[\s\S]/)?a.replace(/^\[|\]$/g,""):a.replace(/\\/g,"")}function W(a){var b,c,d=a.match(Ie);for(b=0,c=d.length;b<c;b++)Le[d[b]]?d[b]=Le[d[b]]:d[b]=V(d[b]);return function(b){var e,f="";for(e=0;e<c;e++)f+=z(d[e])?d[e].call(b,a):d[e];return f}}function X(a,b){return a.isValid()?(b=Y(b,a.localeData()),Ke[b]=Ke[b]||W(b),Ke[b](a)):a.localeData().invalidDate()}function Y(a,b){function c(a){return b.longDateFormat(a)||a}var d=5;for(Je.lastIndex=0;d>=0&&Je.test(a);)a=a.replace(Je,c),Je.lastIndex=0,d-=1;return a}function Z(a,b,c){bf[a]=z(b)?b:function(a,d){return a&&c?c:b}}function $(a,b){return j(bf,a)?bf[a](b._strict,b._locale):new RegExp(_(a))}function _(a){return aa(a.replace("\\","").replace(/\\(\[)|\\(\])|\[([^\]\[]*)\]|\\(.)/g,function(a,b,c,d,e){return b||c||d||e}))}function aa(a){return a.replace(/[-\/\\^$*+?.()|[\]{}]/g,"\\$&")}function ba(a,b){var c,d=b;for("string"==typeof a&&(a=[a]),g(b)&&(d=function(a,c){c[b]=u(a)}),c=0;c<a.length;c++)cf[a[c]]=d}function ca(a,b){ba(a,function(a,c,d,e){d._w=d._w||{},b(a,d._w,d,e)})}function da(a,b,c){null!=b&&j(cf,a)&&cf[a](b,c._a,c,a)}function ea(a,b){return new Date(Date.UTC(a,b+1,0)).getUTCDate()}function fa(a,b){return a?c(this._months)?this._months[a.month()]:this._months[(this._months.isFormat||of).test(b)?"format":"standalone"][a.month()]:c(this._months)?this._months:this._months.standalone}function ga(a,b){return a?c(this._monthsShort)?this._monthsShort[a.month()]:this._monthsShort[of.test(b)?"format":"standalone"][a.month()]:c(this._monthsShort)?this._monthsShort:this._monthsShort.standalone}function ha(a,b,c){var d,e,f,g=a.toLocaleLowerCase();if(!this._monthsParse)for(this._monthsParse=[],this._longMonthsParse=[],this._shortMonthsParse=[],d=0;d<12;++d)f=l([2e3,d]),this._shortMonthsParse[d]=this.monthsShort(f,"").toLocaleLowerCase(),this._longMonthsParse[d]=this.months(f,"").toLocaleLowerCase();return c?"MMM"===b?(e=nf.call(this._shortMonthsParse,g),e!==-1?e:null):(e=nf.call(this._longMonthsParse,g),e!==-1?e:null):"MMM"===b?(e=nf.call(this._shortMonthsParse,g),e!==-1?e:(e=nf.call(this._longMonthsParse,g),e!==-1?e:null)):(e=nf.call(this._longMonthsParse,g),e!==-1?e:(e=nf.call(this._shortMonthsParse,g),e!==-1?e:null))}function ia(a,b,c){var d,e,f;if(this._monthsParseExact)return ha.call(this,a,b,c);for(this._monthsParse||(this._monthsParse=[],this._longMonthsParse=[],this._shortMonthsParse=[]),d=0;d<12;d++){if(e=l([2e3,d]),c&&!this._longMonthsParse[d]&&(this._longMonthsParse[d]=new RegExp("^"+this.months(e,"").replace(".","")+"$","i"),this._shortMonthsParse[d]=new RegExp("^"+this.monthsShort(e,"").replace(".","")+"$","i")),c||this._monthsParse[d]||(f="^"+this.months(e,"")+"|^"+this.monthsShort(e,""),this._monthsParse[d]=new RegExp(f.replace(".",""),"i")),c&&"MMMM"===b&&this._longMonthsParse[d].test(a))return d;if(c&&"MMM"===b&&this._shortMonthsParse[d].test(a))return d;if(!c&&this._monthsParse[d].test(a))return d}}function ja(a,b){var c;if(!a.isValid())return a;if("string"==typeof b)if(/^\d+$/.test(b))b=u(b);else if(b=a.localeData().monthsParse(b),!g(b))return a;return c=Math.min(a.date(),ea(a.year(),b)),a._d["set"+(a._isUTC?"UTC":"")+"Month"](b,c),a}function ka(b){return null!=b?(ja(this,b),a.updateOffset(this,!0),this):P(this,"Month")}function la(){return ea(this.year(),this.month())}function ma(a){return this._monthsParseExact?(j(this,"_monthsRegex")||oa.call(this),a?this._monthsShortStrictRegex:this._monthsShortRegex):(j(this,"_monthsShortRegex")||(this._monthsShortRegex=rf),this._monthsShortStrictRegex&&a?this._monthsShortStrictRegex:this._monthsShortRegex)}function na(a){return this._monthsParseExact?(j(this,"_monthsRegex")||oa.call(this),a?this._monthsStrictRegex:this._monthsRegex):(j(this,"_monthsRegex")||(this._monthsRegex=sf),this._monthsStrictRegex&&a?this._monthsStrictRegex:this._monthsRegex)}function oa(){function a(a,b){return b.length-a.length}var b,c,d=[],e=[],f=[];for(b=0;b<12;b++)c=l([2e3,b]),d.push(this.monthsShort(c,"")),e.push(this.months(c,"")),f.push(this.months(c,"")),f.push(this.monthsShort(c,""));for(d.sort(a),e.sort(a),f.sort(a),b=0;b<12;b++)d[b]=aa(d[b]),e[b]=aa(e[b]);for(b=0;b<24;b++)f[b]=aa(f[b]);this._monthsRegex=new RegExp("^("+f.join("|")+")","i"),this._monthsShortRegex=this._monthsRegex,this._monthsStrictRegex=new RegExp("^("+e.join("|")+")","i"),this._monthsShortStrictRegex=new RegExp("^("+d.join("|")+")","i")}function pa(a){return qa(a)?366:365}function qa(a){return a%4===0&&a%100!==0||a%400===0}function ra(){return qa(this.year())}function sa(a,b,c,d,e,f,g){var h=new Date(a,b,c,d,e,f,g);return a<100&&a>=0&&isFinite(h.getFullYear())&&h.setFullYear(a),h}function ta(a){var b=new Date(Date.UTC.apply(null,arguments));return a<100&&a>=0&&isFinite(b.getUTCFullYear())&&b.setUTCFullYear(a),b}function ua(a,b,c){var d=7+b-c,e=(7+ta(a,0,d).getUTCDay()-b)%7;return-e+d-1}function va(a,b,c,d,e){var f,g,h=(7+c-d)%7,i=ua(a,d,e),j=1+7*(b-1)+h+i;return j<=0?(f=a-1,g=pa(f)+j):j>pa(a)?(f=a+1,g=j-pa(a)):(f=a,g=j),{year:f,dayOfYear:g}}function wa(a,b,c){var d,e,f=ua(a.year(),b,c),g=Math.floor((a.dayOfYear()-f-1)/7)+1;return g<1?(e=a.year()-1,d=g+xa(e,b,c)):g>xa(a.year(),b,c)?(d=g-xa(a.year(),b,c),e=a.year()+1):(e=a.year(),d=g),{week:d,year:e}}function xa(a,b,c){var d=ua(a,b,c),e=ua(a+1,b,c);return(pa(a)-d+e)/7}function ya(a){return wa(a,this._week.dow,this._week.doy).week}function za(){return this._week.dow}function Aa(){return this._week.doy}function Ba(a){var b=this.localeData().week(this);return null==a?b:this.add(7*(a-b),"d")}function Ca(a){var b=wa(this,1,4).week;return null==a?b:this.add(7*(a-b),"d")}function Da(a,b){return"string"!=typeof a?a:isNaN(a)?(a=b.weekdaysParse(a),"number"==typeof a?a:null):parseInt(a,10)}function Ea(a,b){return"string"==typeof a?b.weekdaysParse(a)%7||7:isNaN(a)?null:a}function Fa(a,b){return a?c(this._weekdays)?this._weekdays[a.day()]:this._weekdays[this._weekdays.isFormat.test(b)?"format":"standalone"][a.day()]:c(this._weekdays)?this._weekdays:this._weekdays.standalone}function Ga(a){return a?this._weekdaysShort[a.day()]:this._weekdaysShort}function Ha(a){return a?this._weekdaysMin[a.day()]:this._weekdaysMin}function Ia(a,b,c){var d,e,f,g=a.toLocaleLowerCase();if(!this._weekdaysParse)for(this._weekdaysParse=[],this._shortWeekdaysParse=[],this._minWeekdaysParse=[],d=0;d<7;++d)f=l([2e3,1]).day(d),this._minWeekdaysParse[d]=this.weekdaysMin(f,"").toLocaleLowerCase(),this._shortWeekdaysParse[d]=this.weekdaysShort(f,"").toLocaleLowerCase(),this._weekdaysParse[d]=this.weekdays(f,"").toLocaleLowerCase();return c?"dddd"===b?(e=nf.call(this._weekdaysParse,g),e!==-1?e:null):"ddd"===b?(e=nf.call(this._shortWeekdaysParse,g),e!==-1?e:null):(e=nf.call(this._minWeekdaysParse,g),e!==-1?e:null):"dddd"===b?(e=nf.call(this._weekdaysParse,g),e!==-1?e:(e=nf.call(this._shortWeekdaysParse,g),e!==-1?e:(e=nf.call(this._minWeekdaysParse,g),e!==-1?e:null))):"ddd"===b?(e=nf.call(this._shortWeekdaysParse,g),e!==-1?e:(e=nf.call(this._weekdaysParse,g),e!==-1?e:(e=nf.call(this._minWeekdaysParse,g),e!==-1?e:null))):(e=nf.call(this._minWeekdaysParse,g),e!==-1?e:(e=nf.call(this._weekdaysParse,g),e!==-1?e:(e=nf.call(this._shortWeekdaysParse,g),e!==-1?e:null)))}function Ja(a,b,c){var d,e,f;if(this._weekdaysParseExact)return Ia.call(this,a,b,c);for(this._weekdaysParse||(this._weekdaysParse=[],this._minWeekdaysParse=[],this._shortWeekdaysParse=[],this._fullWeekdaysParse=[]),d=0;d<7;d++){if(e=l([2e3,1]).day(d),c&&!this._fullWeekdaysParse[d]&&(this._fullWeekdaysParse[d]=new RegExp("^"+this.weekdays(e,"").replace(".",".?")+"$","i"),this._shortWeekdaysParse[d]=new RegExp("^"+this.weekdaysShort(e,"").replace(".",".?")+"$","i"),this._minWeekdaysParse[d]=new RegExp("^"+this.weekdaysMin(e,"").replace(".",".?")+"$","i")),this._weekdaysParse[d]||(f="^"+this.weekdays(e,"")+"|^"+this.weekdaysShort(e,"")+"|^"+this.weekdaysMin(e,""),this._weekdaysParse[d]=new RegExp(f.replace(".",""),"i")),c&&"dddd"===b&&this._fullWeekdaysParse[d].test(a))return d;if(c&&"ddd"===b&&this._shortWeekdaysParse[d].test(a))return d;if(c&&"dd"===b&&this._minWeekdaysParse[d].test(a))return d;if(!c&&this._weekdaysParse[d].test(a))return d}}function Ka(a){if(!this.isValid())return null!=a?this:NaN;var b=this._isUTC?this._d.getUTCDay():this._d.getDay();return null!=a?(a=Da(a,this.localeData()),this.add(a-b,"d")):b}function La(a){if(!this.isValid())return null!=a?this:NaN;var b=(this.day()+7-this.localeData()._week.dow)%7;return null==a?b:this.add(a-b,"d")}function Ma(a){if(!this.isValid())return null!=a?this:NaN;if(null!=a){var b=Ea(a,this.localeData());return this.day(this.day()%7?b:b-7)}return this.day()||7}function Na(a){return this._weekdaysParseExact?(j(this,"_weekdaysRegex")||Qa.call(this),a?this._weekdaysStrictRegex:this._weekdaysRegex):(j(this,"_weekdaysRegex")||(this._weekdaysRegex=yf),this._weekdaysStrictRegex&&a?this._weekdaysStrictRegex:this._weekdaysRegex)}function Oa(a){return this._weekdaysParseExact?(j(this,"_weekdaysRegex")||Qa.call(this),a?this._weekdaysShortStrictRegex:this._weekdaysShortRegex):(j(this,"_weekdaysShortRegex")||(this._weekdaysShortRegex=zf),this._weekdaysShortStrictRegex&&a?this._weekdaysShortStrictRegex:this._weekdaysShortRegex)}function Pa(a){return this._weekdaysParseExact?(j(this,"_weekdaysRegex")||Qa.call(this),a?this._weekdaysMinStrictRegex:this._weekdaysMinRegex):(j(this,"_weekdaysMinRegex")||(this._weekdaysMinRegex=Af),this._weekdaysMinStrictRegex&&a?this._weekdaysMinStrictRegex:this._weekdaysMinRegex)}function Qa(){function a(a,b){return b.length-a.length}var b,c,d,e,f,g=[],h=[],i=[],j=[];for(b=0;b<7;b++)c=l([2e3,1]).day(b),d=this.weekdaysMin(c,""),e=this.weekdaysShort(c,""),f=this.weekdays(c,""),g.push(d),h.push(e),i.push(f),j.push(d),j.push(e),j.push(f);for(g.sort(a),h.sort(a),i.sort(a),j.sort(a),b=0;b<7;b++)h[b]=aa(h[b]),i[b]=aa(i[b]),j[b]=aa(j[b]);this._weekdaysRegex=new RegExp("^("+j.join("|")+")","i"),this._weekdaysShortRegex=this._weekdaysRegex,this._weekdaysMinRegex=this._weekdaysRegex,this._weekdaysStrictRegex=new RegExp("^("+i.join("|")+")","i"),this._weekdaysShortStrictRegex=new RegExp("^("+h.join("|")+")","i"),this._weekdaysMinStrictRegex=new RegExp("^("+g.join("|")+")","i")}function Ra(){return this.hours()%12||12}function Sa(){return this.hours()||24}function Ta(a,b){U(a,0,0,function(){return this.localeData().meridiem(this.hours(),this.minutes(),b)})}function Ua(a,b){return b._meridiemParse}function Va(a){return"p"===(a+"").toLowerCase().charAt(0)}function Wa(a,b,c){return a>11?c?"pm":"PM":c?"am":"AM"}function Xa(a){return a?a.toLowerCase().replace("_","-"):a}function Ya(a){for(var b,c,d,e,f=0;f<a.length;){for(e=Xa(a[f]).split("-"),b=e.length,c=Xa(a[f+1]),c=c?c.split("-"):null;b>0;){if(d=Za(e.slice(0,b).join("-")))return d;if(c&&c.length>=b&&v(e,c,!0)>=b-1)break;b--}f++}return null}function Za(a){var b=null;if(!Ff[a]&&"undefined"!=typeof module&&module&&module.exports)try{b=Bf._abbr,require("./locale/"+a),$a(b)}catch(a){}return Ff[a]}function $a(a,b){var c;return a&&(c=f(b)?bb(a):_a(a,b),c&&(Bf=c)),Bf._abbr}function _a(a,b){if(null!==b){var c=Ef;if(b.abbr=a,null!=Ff[a])y("defineLocaleOverride","use moment.updateLocale(localeName, config) to change an existing locale. moment.defineLocale(localeName, config) should only be used for creating a new locale See http://momentjs.com/guides/#/warnings/define-locale/ for more info."),c=Ff[a]._config;else if(null!=b.parentLocale){if(null==Ff[b.parentLocale])return Gf[b.parentLocale]||(Gf[b.parentLocale]=[]),Gf[b.parentLocale].push({name:a,config:b}),null;c=Ff[b.parentLocale]._config}return Ff[a]=new C(B(c,b)),Gf[a]&&Gf[a].forEach(function(a){_a(a.name,a.config)}),$a(a),Ff[a]}return delete Ff[a],null}function ab(a,b){if(null!=b){var c,d=Ef;null!=Ff[a]&&(d=Ff[a]._config),b=B(d,b),c=new C(b),c.parentLocale=Ff[a],Ff[a]=c,$a(a)}else null!=Ff[a]&&(null!=Ff[a].parentLocale?Ff[a]=Ff[a].parentLocale:null!=Ff[a]&&delete Ff[a]);return Ff[a]}function bb(a){var b;if(a&&a._locale&&a._locale._abbr&&(a=a._locale._abbr),!a)return Bf;if(!c(a)){if(b=Za(a))return b;a=[a]}return Ya(a)}function cb(){return ze(Ff)}function db(a){var b,c=a._a;return c&&n(a).overflow===-2&&(b=c[ef]<0||c[ef]>11?ef:c[ff]<1||c[ff]>ea(c[df],c[ef])?ff:c[gf]<0||c[gf]>24||24===c[gf]&&(0!==c[hf]||0!==c[jf]||0!==c[kf])?gf:c[hf]<0||c[hf]>59?hf:c[jf]<0||c[jf]>59?jf:c[kf]<0||c[kf]>999?kf:-1,n(a)._overflowDayOfYear&&(b<df||b>ff)&&(b=ff),n(a)._overflowWeeks&&b===-1&&(b=lf),n(a)._overflowWeekday&&b===-1&&(b=mf),n(a).overflow=b),a}function eb(a){var b,c,d,e,f,g,h=a._i,i=Hf.exec(h)||If.exec(h);if(i){for(n(a).iso=!0,b=0,c=Kf.length;b<c;b++)if(Kf[b][1].exec(i[1])){e=Kf[b][0],d=Kf[b][2]!==!1;break}if(null==e)return void(a._isValid=!1);if(i[3]){for(b=0,c=Lf.length;b<c;b++)if(Lf[b][1].exec(i[3])){f=(i[2]||" ")+Lf[b][0];break}if(null==f)return void(a._isValid=!1)}if(!d&&null!=f)return void(a._isValid=!1);if(i[4]){if(!Jf.exec(i[4]))return void(a._isValid=!1);g="Z"}a._f=e+(f||"")+(g||""),lb(a)}else a._isValid=!1}function fb(a){var b,c,d,e,f,g,h,i,j={" GMT":" +0000"," EDT":" -0400"," EST":" -0500"," CDT":" -0500"," CST":" -0600"," MDT":" -0600"," MST":" -0700"," PDT":" -0700"," PST":" -0800"},k="YXWVUTSRQPONZABCDEFGHIKLM";if(b=a._i.replace(/\([^\)]*\)|[\n\t]/g," ").replace(/(\s\s+)/g," ").replace(/^\s|\s$/g,""),c=Nf.exec(b)){if(d=c[1]?"ddd"+(5===c[1].length?", ":" "):"",e="D MMM "+(c[2].length>10?"YYYY ":"YY "),f="HH:mm"+(c[4]?":ss":""),c[1]){var l=new Date(c[2]),m=["Sun","Mon","Tue","Wed","Thu","Fri","Sat"][l.getDay()];if(c[1].substr(0,3)!==m)return n(a).weekdayMismatch=!0,void(a._isValid=!1)}switch(c[5].length){case 2:0===i?h=" +0000":(i=k.indexOf(c[5][1].toUpperCase())-12,h=(i<0?" -":" +")+(""+i).replace(/^-?/,"0").match(/..$/)[0]+"00");break;case 4:h=j[c[5]];break;default:h=j[" GMT"]}c[5]=h,a._i=c.splice(1).join(""),g=" ZZ",a._f=d+e+f+g,lb(a),n(a).rfc2822=!0}else a._isValid=!1}function gb(b){var c=Mf.exec(b._i);return null!==c?void(b._d=new Date(+c[1])):(eb(b),void(b._isValid===!1&&(delete b._isValid,fb(b),b._isValid===!1&&(delete b._isValid,a.createFromInputFallback(b)))))}function hb(a,b,c){return null!=a?a:null!=b?b:c}function ib(b){var c=new Date(a.now());return b._useUTC?[c.getUTCFullYear(),c.getUTCMonth(),c.getUTCDate()]:[c.getFullYear(),c.getMonth(),c.getDate()]}function jb(a){var b,c,d,e,f=[];if(!a._d){for(d=ib(a),a._w&&null==a._a[ff]&&null==a._a[ef]&&kb(a),null!=a._dayOfYear&&(e=hb(a._a[df],d[df]),(a._dayOfYear>pa(e)||0===a._dayOfYear)&&(n(a)._overflowDayOfYear=!0),c=ta(e,0,a._dayOfYear),a._a[ef]=c.getUTCMonth(),a._a[ff]=c.getUTCDate()),b=0;b<3&&null==a._a[b];++b)a._a[b]=f[b]=d[b];for(;b<7;b++)a._a[b]=f[b]=null==a._a[b]?2===b?1:0:a._a[b];24===a._a[gf]&&0===a._a[hf]&&0===a._a[jf]&&0===a._a[kf]&&(a._nextDay=!0,a._a[gf]=0),a._d=(a._useUTC?ta:sa).apply(null,f),null!=a._tzm&&a._d.setUTCMinutes(a._d.getUTCMinutes()-a._tzm),a._nextDay&&(a._a[gf]=24)}}function kb(a){var b,c,d,e,f,g,h,i;if(b=a._w,null!=b.GG||null!=b.W||null!=b.E)f=1,g=4,c=hb(b.GG,a._a[df],wa(tb(),1,4).year),d=hb(b.W,1),e=hb(b.E,1),(e<1||e>7)&&(i=!0);else{f=a._locale._week.dow,g=a._locale._week.doy;var j=wa(tb(),f,g);c=hb(b.gg,a._a[df],j.year),d=hb(b.w,j.week),null!=b.d?(e=b.d,(e<0||e>6)&&(i=!0)):null!=b.e?(e=b.e+f,(b.e<0||b.e>6)&&(i=!0)):e=f}d<1||d>xa(c,f,g)?n(a)._overflowWeeks=!0:null!=i?n(a)._overflowWeekday=!0:(h=va(c,d,e,f,g),a._a[df]=h.year,a._dayOfYear=h.dayOfYear)}function lb(b){if(b._f===a.ISO_8601)return void eb(b);if(b._f===a.RFC_2822)return void fb(b);b._a=[],n(b).empty=!0;var c,d,e,f,g,h=""+b._i,i=h.length,j=0;for(e=Y(b._f,b._locale).match(Ie)||[],c=0;c<e.length;c++)f=e[c],d=(h.match($(f,b))||[])[0],d&&(g=h.substr(0,h.indexOf(d)),g.length>0&&n(b).unusedInput.push(g),h=h.slice(h.indexOf(d)+d.length),j+=d.length),Le[f]?(d?n(b).empty=!1:n(b).unusedTokens.push(f),da(f,d,b)):b._strict&&!d&&n(b).unusedTokens.push(f);n(b).charsLeftOver=i-j,h.length>0&&n(b).unusedInput.push(h),b._a[gf]<=12&&n(b).bigHour===!0&&b._a[gf]>0&&(n(b).bigHour=void 0),n(b).parsedDateParts=b._a.slice(0),n(b).meridiem=b._meridiem,b._a[gf]=mb(b._locale,b._a[gf],b._meridiem),jb(b),db(b)}function mb(a,b,c){var d;return null==c?b:null!=a.meridiemHour?a.meridiemHour(b,c):null!=a.isPM?(d=a.isPM(c),d&&b<12&&(b+=12),d||12!==b||(b=0),b):b}function nb(a){var b,c,d,e,f;if(0===a._f.length)return n(a).invalidFormat=!0,void(a._d=new Date(NaN));for(e=0;e<a._f.length;e++)f=0,b=q({},a),null!=a._useUTC&&(b._useUTC=a._useUTC),b._f=a._f[e],lb(b),o(b)&&(f+=n(b).charsLeftOver,f+=10*n(b).unusedTokens.length,n(b).score=f,(null==d||f<d)&&(d=f,c=b));k(a,c||b)}function ob(a){if(!a._d){var b=L(a._i);a._a=i([b.year,b.month,b.day||b.date,b.hour,b.minute,b.second,b.millisecond],function(a){return a&&parseInt(a,10)}),jb(a)}}function pb(a){var b=new r(db(qb(a)));return b._nextDay&&(b.add(1,"d"),b._nextDay=void 0),b}function qb(a){var b=a._i,d=a._f;return a._locale=a._locale||bb(a._l),null===b||void 0===d&&""===b?p({nullInput:!0}):("string"==typeof b&&(a._i=b=a._locale.preparse(b)),s(b)?new r(db(b)):(h(b)?a._d=b:c(d)?nb(a):d?lb(a):rb(a),o(a)||(a._d=null),a))}function rb(b){var e=b._i;f(e)?b._d=new Date(a.now()):h(e)?b._d=new Date(e.valueOf()):"string"==typeof e?gb(b):c(e)?(b._a=i(e.slice(0),function(a){return parseInt(a,10)}),jb(b)):d(e)?ob(b):g(e)?b._d=new Date(e):a.createFromInputFallback(b)}function sb(a,b,f,g,h){var i={};return f!==!0&&f!==!1||(g=f,f=void 0),(d(a)&&e(a)||c(a)&&0===a.length)&&(a=void 0),i._isAMomentObject=!0,i._useUTC=i._isUTC=h,i._l=f,i._i=a,i._f=b,i._strict=g,pb(i)}function tb(a,b,c,d){return sb(a,b,c,d,!1)}function ub(a,b){var d,e;if(1===b.length&&c(b[0])&&(b=b[0]),!b.length)return tb();for(d=b[0],e=1;e<b.length;++e)b[e].isValid()&&!b[e][a](d)||(d=b[e]);return d}function vb(){var a=[].slice.call(arguments,0);return ub("isBefore",a)}function wb(){var a=[].slice.call(arguments,0);return ub("isAfter",a)}function xb(a){for(var b in a)if(Rf.indexOf(b)===-1||null!=a[b]&&isNaN(a[b]))return!1;for(var c=!1,d=0;d<Rf.length;++d)if(a[Rf[d]]){if(c)return!1;parseFloat(a[Rf[d]])!==u(a[Rf[d]])&&(c=!0)}return!0}function yb(){return this._isValid}function zb(){return Sb(NaN)}function Ab(a){var b=L(a),c=b.year||0,d=b.quarter||0,e=b.month||0,f=b.week||0,g=b.day||0,h=b.hour||0,i=b.minute||0,j=b.second||0,k=b.millisecond||0;this._isValid=xb(b),this._milliseconds=+k+1e3*j+6e4*i+1e3*h*60*60,this._days=+g+7*f,this._months=+e+3*d+12*c,this._data={},this._locale=bb(),this._bubble()}function Bb(a){return a instanceof Ab}function Cb(a){return a<0?Math.round(-1*a)*-1:Math.round(a)}function Db(a,b){U(a,0,0,function(){var a=this.utcOffset(),c="+";return a<0&&(a=-a,c="-"),c+T(~~(a/60),2)+b+T(~~a%60,2)})}function Eb(a,b){var c=(b||"").match(a);if(null===c)return null;var d=c[c.length-1]||[],e=(d+"").match(Sf)||["-",0,0],f=+(60*e[1])+u(e[2]);return 0===f?0:"+"===e[0]?f:-f}function Fb(b,c){var d,e;return c._isUTC?(d=c.clone(),e=(s(b)||h(b)?b.valueOf():tb(b).valueOf())-d.valueOf(),d._d.setTime(d._d.valueOf()+e),a.updateOffset(d,!1),d):tb(b).local()}function Gb(a){return 15*-Math.round(a._d.getTimezoneOffset()/15)}function Hb(b,c,d){var e,f=this._offset||0;if(!this.isValid())return null!=b?this:NaN;if(null!=b){if("string"==typeof b){if(b=Eb($e,b),null===b)return this}else Math.abs(b)<16&&!d&&(b=60*b);return!this._isUTC&&c&&(e=Gb(this)),this._offset=b,this._isUTC=!0,null!=e&&this.add(e,"m"),f!==b&&(!c||this._changeInProgress?Xb(this,Sb(b-f,"m"),1,!1):this._changeInProgress||(this._changeInProgress=!0,a.updateOffset(this,!0),this._changeInProgress=null)),this}return this._isUTC?f:Gb(this)}function Ib(a,b){return null!=a?("string"!=typeof a&&(a=-a),this.utcOffset(a,b),this):-this.utcOffset()}function Jb(a){return this.utcOffset(0,a)}function Kb(a){return this._isUTC&&(this.utcOffset(0,a),this._isUTC=!1,a&&this.subtract(Gb(this),"m")),this}function Lb(){if(null!=this._tzm)this.utcOffset(this._tzm,!1,!0);else if("string"==typeof this._i){var a=Eb(Ze,this._i);null!=a?this.utcOffset(a):this.utcOffset(0,!0)}return this}function Mb(a){return!!this.isValid()&&(a=a?tb(a).utcOffset():0,(this.utcOffset()-a)%60===0)}function Nb(){return this.utcOffset()>this.clone().month(0).utcOffset()||this.utcOffset()>this.clone().month(5).utcOffset()}function Ob(){if(!f(this._isDSTShifted))return this._isDSTShifted;var a={};if(q(a,this),a=qb(a),a._a){var b=a._isUTC?l(a._a):tb(a._a);this._isDSTShifted=this.isValid()&&v(a._a,b.toArray())>0}else this._isDSTShifted=!1;return this._isDSTShifted}function Pb(){return!!this.isValid()&&!this._isUTC}function Qb(){return!!this.isValid()&&this._isUTC}function Rb(){return!!this.isValid()&&(this._isUTC&&0===this._offset)}function Sb(a,b){var c,d,e,f=a,h=null;return Bb(a)?f={ms:a._milliseconds,d:a._days,M:a._months}:g(a)?(f={},b?f[b]=a:f.milliseconds=a):(h=Tf.exec(a))?(c="-"===h[1]?-1:1,f={y:0,d:u(h[ff])*c,h:u(h[gf])*c,m:u(h[hf])*c,s:u(h[jf])*c,ms:u(Cb(1e3*h[kf]))*c}):(h=Uf.exec(a))?(c="-"===h[1]?-1:1,f={y:Tb(h[2],c),M:Tb(h[3],c),w:Tb(h[4],c),d:Tb(h[5],c),h:Tb(h[6],c),m:Tb(h[7],c),s:Tb(h[8],c)}):null==f?f={}:"object"==typeof f&&("from"in f||"to"in f)&&(e=Vb(tb(f.from),tb(f.to)),f={},f.ms=e.milliseconds,f.M=e.months),d=new Ab(f),Bb(a)&&j(a,"_locale")&&(d._locale=a._locale),d}function Tb(a,b){var c=a&&parseFloat(a.replace(",","."));return(isNaN(c)?0:c)*b}function Ub(a,b){var c={milliseconds:0,months:0};return c.months=b.month()-a.month()+12*(b.year()-a.year()),a.clone().add(c.months,"M").isAfter(b)&&--c.months,c.milliseconds=+b-+a.clone().add(c.months,"M"),c}function Vb(a,b){var c;return a.isValid()&&b.isValid()?(b=Fb(b,a),a.isBefore(b)?c=Ub(a,b):(c=Ub(b,a),c.milliseconds=-c.milliseconds,c.months=-c.months),c):{milliseconds:0,months:0}}function Wb(a,b){return function(c,d){var e,f;return null===d||isNaN(+d)||(y(b,"moment()."+b+"(period, number) is deprecated. Please use moment()."+b+"(number, period). See http://momentjs.com/guides/#/warnings/add-inverted-param/ for more info."),f=c,c=d,d=f),c="string"==typeof c?+c:c,e=Sb(c,d),Xb(this,e,a),this}}function Xb(b,c,d,e){var f=c._milliseconds,g=Cb(c._days),h=Cb(c._months);b.isValid()&&(e=null==e||e,f&&b._d.setTime(b._d.valueOf()+f*d),g&&Q(b,"Date",P(b,"Date")+g*d),h&&ja(b,P(b,"Month")+h*d),e&&a.updateOffset(b,g||h))}function Yb(a,b){var c=a.diff(b,"days",!0);return c<-6?"sameElse":c<-1?"lastWeek":c<0?"lastDay":c<1?"sameDay":c<2?"nextDay":c<7?"nextWeek":"sameElse"}function Zb(b,c){var d=b||tb(),e=Fb(d,this).startOf("day"),f=a.calendarFormat(this,e)||"sameElse",g=c&&(z(c[f])?c[f].call(this,d):c[f]);return this.format(g||this.localeData().calendar(f,this,tb(d)))}function $b(){return new r(this)}function _b(a,b){var c=s(a)?a:tb(a);return!(!this.isValid()||!c.isValid())&&(b=K(f(b)?"millisecond":b),"millisecond"===b?this.valueOf()>c.valueOf():c.valueOf()<this.clone().startOf(b).valueOf())}function ac(a,b){var c=s(a)?a:tb(a);return!(!this.isValid()||!c.isValid())&&(b=K(f(b)?"millisecond":b),"millisecond"===b?this.valueOf()<c.valueOf():this.clone().endOf(b).valueOf()<c.valueOf())}function bc(a,b,c,d){return d=d||"()",("("===d[0]?this.isAfter(a,c):!this.isBefore(a,c))&&(")"===d[1]?this.isBefore(b,c):!this.isAfter(b,c))}function cc(a,b){var c,d=s(a)?a:tb(a);return!(!this.isValid()||!d.isValid())&&(b=K(b||"millisecond"),"millisecond"===b?this.valueOf()===d.valueOf():(c=d.valueOf(),this.clone().startOf(b).valueOf()<=c&&c<=this.clone().endOf(b).valueOf()))}function dc(a,b){return this.isSame(a,b)||this.isAfter(a,b)}function ec(a,b){return this.isSame(a,b)||this.isBefore(a,b)}function fc(a,b,c){var d,e,f,g;return this.isValid()?(d=Fb(a,this),d.isValid()?(e=6e4*(d.utcOffset()-this.utcOffset()),b=K(b),"year"===b||"month"===b||"quarter"===b?(g=gc(this,d),"quarter"===b?g/=3:"year"===b&&(g/=12)):(f=this-d,g="second"===b?f/1e3:"minute"===b?f/6e4:"hour"===b?f/36e5:"day"===b?(f-e)/864e5:"week"===b?(f-e)/6048e5:f),c?g:t(g)):NaN):NaN}function gc(a,b){var c,d,e=12*(b.year()-a.year())+(b.month()-a.month()),f=a.clone().add(e,"months");return b-f<0?(c=a.clone().add(e-1,"months"),d=(b-f)/(f-c)):(c=a.clone().add(e+1,"months"),d=(b-f)/(c-f)),-(e+d)||0}function hc(){return this.clone().locale("en").format("ddd MMM DD YYYY HH:mm:ss [GMT]ZZ")}function ic(){if(!this.isValid())return null;var a=this.clone().utc();return a.year()<0||a.year()>9999?X(a,"YYYYYY-MM-DD[T]HH:mm:ss.SSS[Z]"):z(Date.prototype.toISOString)?this.toDate().toISOString():X(a,"YYYY-MM-DD[T]HH:mm:ss.SSS[Z]")}function jc(){if(!this.isValid())return"moment.invalid(/* "+this._i+" */)";var a="moment",b="";this.isLocal()||(a=0===this.utcOffset()?"moment.utc":"moment.parseZone",b="Z");var c="["+a+'("]',d=0<=this.year()&&this.year()<=9999?"YYYY":"YYYYYY",e="-MM-DD[T]HH:mm:ss.SSS",f=b+'[")]';return this.format(c+d+e+f)}function kc(b){b||(b=this.isUtc()?a.defaultFormatUtc:a.defaultFormat);var c=X(this,b);return this.localeData().postformat(c)}function lc(a,b){return this.isValid()&&(s(a)&&a.isValid()||tb(a).isValid())?Sb({to:this,from:a}).locale(this.locale()).humanize(!b):this.localeData().invalidDate()}function mc(a){return this.from(tb(),a)}function nc(a,b){return this.isValid()&&(s(a)&&a.isValid()||tb(a).isValid())?Sb({from:this,to:a}).locale(this.locale()).humanize(!b):this.localeData().invalidDate()}function oc(a){return this.to(tb(),a)}function pc(a){var b;return void 0===a?this._locale._abbr:(b=bb(a),null!=b&&(this._locale=b),this)}function qc(){return this._locale}function rc(a){switch(a=K(a)){case"year":this.month(0);case"quarter":case"month":this.date(1);case"week":case"isoWeek":case"day":case"date":this.hours(0);case"hour":this.minutes(0);case"minute":this.seconds(0);case"second":this.milliseconds(0)}return"week"===a&&this.weekday(0),"isoWeek"===a&&this.isoWeekday(1),"quarter"===a&&this.month(3*Math.floor(this.month()/3)),this}function sc(a){return a=K(a),void 0===a||"millisecond"===a?this:("date"===a&&(a="day"),this.startOf(a).add(1,"isoWeek"===a?"week":a).subtract(1,"ms"))}function tc(){return this._d.valueOf()-6e4*(this._offset||0)}function uc(){return Math.floor(this.valueOf()/1e3)}function vc(){return new Date(this.valueOf())}function wc(){var a=this;return[a.year(),a.month(),a.date(),a.hour(),a.minute(),a.second(),a.millisecond()]}function xc(){var a=this;return{years:a.year(),months:a.month(),date:a.date(),hours:a.hours(),minutes:a.minutes(),seconds:a.seconds(),milliseconds:a.milliseconds()}}function yc(){return this.isValid()?this.toISOString():null}function zc(){return o(this)}function Ac(){ -return k({},n(this))}function Bc(){return n(this).overflow}function Cc(){return{input:this._i,format:this._f,locale:this._locale,isUTC:this._isUTC,strict:this._strict}}function Dc(a,b){U(0,[a,a.length],0,b)}function Ec(a){return Ic.call(this,a,this.week(),this.weekday(),this.localeData()._week.dow,this.localeData()._week.doy)}function Fc(a){return Ic.call(this,a,this.isoWeek(),this.isoWeekday(),1,4)}function Gc(){return xa(this.year(),1,4)}function Hc(){var a=this.localeData()._week;return xa(this.year(),a.dow,a.doy)}function Ic(a,b,c,d,e){var f;return null==a?wa(this,d,e).year:(f=xa(a,d,e),b>f&&(b=f),Jc.call(this,a,b,c,d,e))}function Jc(a,b,c,d,e){var f=va(a,b,c,d,e),g=ta(f.year,0,f.dayOfYear);return this.year(g.getUTCFullYear()),this.month(g.getUTCMonth()),this.date(g.getUTCDate()),this}function Kc(a){return null==a?Math.ceil((this.month()+1)/3):this.month(3*(a-1)+this.month()%3)}function Lc(a){var b=Math.round((this.clone().startOf("day")-this.clone().startOf("year"))/864e5)+1;return null==a?b:this.add(a-b,"d")}function Mc(a,b){b[kf]=u(1e3*("0."+a))}function Nc(){return this._isUTC?"UTC":""}function Oc(){return this._isUTC?"Coordinated Universal Time":""}function Pc(a){return tb(1e3*a)}function Qc(){return tb.apply(null,arguments).parseZone()}function Rc(a){return a}function Sc(a,b,c,d){var e=bb(),f=l().set(d,b);return e[c](f,a)}function Tc(a,b,c){if(g(a)&&(b=a,a=void 0),a=a||"",null!=b)return Sc(a,b,c,"month");var d,e=[];for(d=0;d<12;d++)e[d]=Sc(a,d,c,"month");return e}function Uc(a,b,c,d){"boolean"==typeof a?(g(b)&&(c=b,b=void 0),b=b||""):(b=a,c=b,a=!1,g(b)&&(c=b,b=void 0),b=b||"");var e=bb(),f=a?e._week.dow:0;if(null!=c)return Sc(b,(c+f)%7,d,"day");var h,i=[];for(h=0;h<7;h++)i[h]=Sc(b,(h+f)%7,d,"day");return i}function Vc(a,b){return Tc(a,b,"months")}function Wc(a,b){return Tc(a,b,"monthsShort")}function Xc(a,b,c){return Uc(a,b,c,"weekdays")}function Yc(a,b,c){return Uc(a,b,c,"weekdaysShort")}function Zc(a,b,c){return Uc(a,b,c,"weekdaysMin")}function $c(){var a=this._data;return this._milliseconds=dg(this._milliseconds),this._days=dg(this._days),this._months=dg(this._months),a.milliseconds=dg(a.milliseconds),a.seconds=dg(a.seconds),a.minutes=dg(a.minutes),a.hours=dg(a.hours),a.months=dg(a.months),a.years=dg(a.years),this}function _c(a,b,c,d){var e=Sb(b,c);return a._milliseconds+=d*e._milliseconds,a._days+=d*e._days,a._months+=d*e._months,a._bubble()}function ad(a,b){return _c(this,a,b,1)}function bd(a,b){return _c(this,a,b,-1)}function cd(a){return a<0?Math.floor(a):Math.ceil(a)}function dd(){var a,b,c,d,e,f=this._milliseconds,g=this._days,h=this._months,i=this._data;return f>=0&&g>=0&&h>=0||f<=0&&g<=0&&h<=0||(f+=864e5*cd(fd(h)+g),g=0,h=0),i.milliseconds=f%1e3,a=t(f/1e3),i.seconds=a%60,b=t(a/60),i.minutes=b%60,c=t(b/60),i.hours=c%24,g+=t(c/24),e=t(ed(g)),h+=e,g-=cd(fd(e)),d=t(h/12),h%=12,i.days=g,i.months=h,i.years=d,this}function ed(a){return 4800*a/146097}function fd(a){return 146097*a/4800}function gd(a){if(!this.isValid())return NaN;var b,c,d=this._milliseconds;if(a=K(a),"month"===a||"year"===a)return b=this._days+d/864e5,c=this._months+ed(b),"month"===a?c:c/12;switch(b=this._days+Math.round(fd(this._months)),a){case"week":return b/7+d/6048e5;case"day":return b+d/864e5;case"hour":return 24*b+d/36e5;case"minute":return 1440*b+d/6e4;case"second":return 86400*b+d/1e3;case"millisecond":return Math.floor(864e5*b)+d;default:throw new Error("Unknown unit "+a)}}function hd(){return this.isValid()?this._milliseconds+864e5*this._days+this._months%12*2592e6+31536e6*u(this._months/12):NaN}function id(a){return function(){return this.as(a)}}function jd(a){return a=K(a),this.isValid()?this[a+"s"]():NaN}function kd(a){return function(){return this.isValid()?this._data[a]:NaN}}function ld(){return t(this.days()/7)}function md(a,b,c,d,e){return e.relativeTime(b||1,!!c,a,d)}function nd(a,b,c){var d=Sb(a).abs(),e=tg(d.as("s")),f=tg(d.as("m")),g=tg(d.as("h")),h=tg(d.as("d")),i=tg(d.as("M")),j=tg(d.as("y")),k=e<=ug.ss&&["s",e]||e<ug.s&&["ss",e]||f<=1&&["m"]||f<ug.m&&["mm",f]||g<=1&&["h"]||g<ug.h&&["hh",g]||h<=1&&["d"]||h<ug.d&&["dd",h]||i<=1&&["M"]||i<ug.M&&["MM",i]||j<=1&&["y"]||["yy",j];return k[2]=b,k[3]=+a>0,k[4]=c,md.apply(null,k)}function od(a){return void 0===a?tg:"function"==typeof a&&(tg=a,!0)}function pd(a,b){return void 0!==ug[a]&&(void 0===b?ug[a]:(ug[a]=b,"s"===a&&(ug.ss=b-1),!0))}function qd(a){if(!this.isValid())return this.localeData().invalidDate();var b=this.localeData(),c=nd(this,!a,b);return a&&(c=b.pastFuture(+this,c)),b.postformat(c)}function rd(){if(!this.isValid())return this.localeData().invalidDate();var a,b,c,d=vg(this._milliseconds)/1e3,e=vg(this._days),f=vg(this._months);a=t(d/60),b=t(a/60),d%=60,a%=60,c=t(f/12),f%=12;var g=c,h=f,i=e,j=b,k=a,l=d,m=this.asSeconds();return m?(m<0?"-":"")+"P"+(g?g+"Y":"")+(h?h+"M":"")+(i?i+"D":"")+(j||k||l?"T":"")+(j?j+"H":"")+(k?k+"M":"")+(l?l+"S":""):"P0D"} -//! moment.js locale configuration -//! locale : Belarusian [be] -//! author : Dmitry Demidov : https://github.com/demidov91 -//! author: Praleska: http://praleska.pro/ -//! Author : Menelion Elensúle : https://github.com/Oire -function sd(a,b){var c=a.split("_");return b%10===1&&b%100!==11?c[0]:b%10>=2&&b%10<=4&&(b%100<10||b%100>=20)?c[1]:c[2]}function td(a,b,c){var d={mm:b?"хвіліна_хвіліны_хвілін":"хвіліну_хвіліны_хвілін",hh:b?"гадзіна_гадзіны_гадзін":"гадзіну_гадзіны_гадзін",dd:"дзень_дні_дзён",MM:"месяц_месяцы_месяцаў",yy:"год_гады_гадоў"};return"m"===c?b?"хвіліна":"хвіліну":"h"===c?b?"гадзіна":"гадзіну":a+" "+sd(d[c],+a)} -//! moment.js locale configuration -//! locale : Breton [br] -//! author : Jean-Baptiste Le Duigou : https://github.com/jbleduigou -function ud(a,b,c){var d={mm:"munutenn",MM:"miz",dd:"devezh"};return a+" "+xd(d[c],a)}function vd(a){switch(wd(a)){case 1:case 3:case 4:case 5:case 9:return a+" bloaz";default:return a+" vloaz"}}function wd(a){return a>9?wd(a%10):a}function xd(a,b){return 2===b?yd(a):a}function yd(a){var b={m:"v",b:"v",d:"z"};return void 0===b[a.charAt(0)]?a:b[a.charAt(0)]+a.substring(1)} -//! moment.js locale configuration -//! locale : Bosnian [bs] -//! author : Nedim Cholich : https://github.com/frontyard -//! based on (hr) translation by Bojan Marković -function zd(a,b,c){var d=a+" ";switch(c){case"m":return b?"jedna minuta":"jedne minute";case"mm":return d+=1===a?"minuta":2===a||3===a||4===a?"minute":"minuta";case"h":return b?"jedan sat":"jednog sata";case"hh":return d+=1===a?"sat":2===a||3===a||4===a?"sata":"sati";case"dd":return d+=1===a?"dan":"dana";case"MM":return d+=1===a?"mjesec":2===a||3===a||4===a?"mjeseca":"mjeseci";case"yy":return d+=1===a?"godina":2===a||3===a||4===a?"godine":"godina"}}function Ad(a){return a>1&&a<5&&1!==~~(a/10)}function Bd(a,b,c,d){var e=a+" ";switch(c){case"s":return b||d?"pár sekund":"pár sekundami";case"m":return b?"minuta":d?"minutu":"minutou";case"mm":return b||d?e+(Ad(a)?"minuty":"minut"):e+"minutami";break;case"h":return b?"hodina":d?"hodinu":"hodinou";case"hh":return b||d?e+(Ad(a)?"hodiny":"hodin"):e+"hodinami";break;case"d":return b||d?"den":"dnem";case"dd":return b||d?e+(Ad(a)?"dny":"dní"):e+"dny";break;case"M":return b||d?"měsíc":"měsícem";case"MM":return b||d?e+(Ad(a)?"měsíce":"měsíců"):e+"měsíci";break;case"y":return b||d?"rok":"rokem";case"yy":return b||d?e+(Ad(a)?"roky":"let"):e+"lety"}} -//! moment.js locale configuration -//! locale : German (Austria) [de-at] -//! author : lluchs : https://github.com/lluchs -//! author: Menelion Elensúle: https://github.com/Oire -//! author : Martin Groller : https://github.com/MadMG -//! author : Mikolaj Dadela : https://github.com/mik01aj -function Cd(a,b,c,d){var e={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 b?e[c][0]:e[c][1]} -//! moment.js locale configuration -//! locale : German (Switzerland) [de-ch] -//! author : sschueller : https://github.com/sschueller -function Dd(a,b,c,d){var e={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 b?e[c][0]:e[c][1]} -//! moment.js locale configuration -//! locale : German [de] -//! author : lluchs : https://github.com/lluchs -//! author: Menelion Elensúle: https://github.com/Oire -//! author : Mikolaj Dadela : https://github.com/mik01aj -function Ed(a,b,c,d){var e={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 b?e[c][0]:e[c][1]} -//! moment.js locale configuration -//! locale : Estonian [et] -//! author : Henry Kehlmann : https://github.com/madhenry -//! improvements : Illimar Tambek : https://github.com/ragulka -function Fd(a,b,c,d){var e={s:["mõne sekundi","mõni sekund","paar sekundit"],m:["ühe minuti","üks minut"],mm:[a+" minuti",a+" minutit"],h:["ühe tunni","tund aega","üks tund"],hh:[a+" tunni",a+" tundi"],d:["ühe päeva","üks päev"],M:["kuu aja","kuu aega","üks kuu"],MM:[a+" kuu",a+" kuud"],y:["ühe aasta","aasta","üks aasta"],yy:[a+" aasta",a+" aastat"]};return b?e[c][2]?e[c][2]:e[c][1]:d?e[c][0]:e[c][1]}function Gd(a,b,c,d){var e="";switch(c){case"s":return d?"muutaman sekunnin":"muutama sekunti";case"m":return d?"minuutin":"minuutti";case"mm":e=d?"minuutin":"minuuttia";break;case"h":return d?"tunnin":"tunti";case"hh":e=d?"tunnin":"tuntia";break;case"d":return d?"päivän":"päivä";case"dd":e=d?"päivän":"päivää";break;case"M":return d?"kuukauden":"kuukausi";case"MM":e=d?"kuukauden":"kuukautta";break;case"y":return d?"vuoden":"vuosi";case"yy":e=d?"vuoden":"vuotta"}return e=Hd(a,d)+" "+e}function Hd(a,b){return a<10?b?$g[a]:Zg[a]:a} -//! moment.js locale configuration -//! locale : Konkani Latin script [gom-latn] -//! author : The Discoverer : https://github.com/WikiDiscoverer -function Id(a,b,c,d){var e={s:["thodde secondanim","thodde second"],m:["eka mintan","ek minute"],mm:[a+" mintanim",a+" mintam"],h:["eka horan","ek hor"],hh:[a+" horanim",a+" hor"],d:["eka disan","ek dis"],dd:[a+" disanim",a+" dis"],M:["eka mhoinean","ek mhoino"],MM:[a+" mhoineanim",a+" mhoine"],y:["eka vorsan","ek voros"],yy:[a+" vorsanim",a+" vorsam"]};return b?e[c][0]:e[c][1]} -//! moment.js locale configuration -//! locale : Croatian [hr] -//! author : Bojan Marković : https://github.com/bmarkovic -function Jd(a,b,c){var d=a+" ";switch(c){case"m":return b?"jedna minuta":"jedne minute";case"mm":return d+=1===a?"minuta":2===a||3===a||4===a?"minute":"minuta";case"h":return b?"jedan sat":"jednog sata";case"hh":return d+=1===a?"sat":2===a||3===a||4===a?"sata":"sati";case"dd":return d+=1===a?"dan":"dana";case"MM":return d+=1===a?"mjesec":2===a||3===a||4===a?"mjeseca":"mjeseci";case"yy":return d+=1===a?"godina":2===a||3===a||4===a?"godine":"godina"}}function Kd(a,b,c,d){var e=a;switch(c){case"s":return d||b?"néhány másodperc":"néhány másodperce";case"m":return"egy"+(d||b?" perc":" perce");case"mm":return e+(d||b?" perc":" perce");case"h":return"egy"+(d||b?" óra":" órája");case"hh":return e+(d||b?" óra":" órája");case"d":return"egy"+(d||b?" nap":" napja");case"dd":return e+(d||b?" nap":" napja");case"M":return"egy"+(d||b?" hónap":" hónapja");case"MM":return e+(d||b?" hónap":" hónapja");case"y":return"egy"+(d||b?" év":" éve");case"yy":return e+(d||b?" év":" éve")}return""}function Ld(a){return(a?"":"[múlt] ")+"["+ih[this.day()]+"] LT[-kor]"} -//! moment.js locale configuration -//! locale : Icelandic [is] -//! author : Hinrik Örn Sigurðsson : https://github.com/hinrik -function Md(a){return a%100===11||a%10!==1}function Nd(a,b,c,d){var e=a+" ";switch(c){case"s":return b||d?"nokkrar sekúndur":"nokkrum sekúndum";case"m":return b?"mínúta":"mínútu";case"mm":return Md(a)?e+(b||d?"mínútur":"mínútum"):b?e+"mínúta":e+"mínútu";case"hh":return Md(a)?e+(b||d?"klukkustundir":"klukkustundum"):e+"klukkustund";case"d":return b?"dagur":d?"dag":"degi";case"dd":return Md(a)?b?e+"dagar":e+(d?"daga":"dögum"):b?e+"dagur":e+(d?"dag":"degi");case"M":return b?"mánuður":d?"mánuð":"mánuði";case"MM":return Md(a)?b?e+"mánuðir":e+(d?"mánuði":"mánuðum"):b?e+"mánuður":e+(d?"mánuð":"mánuði");case"y":return b||d?"ár":"ári";case"yy":return Md(a)?e+(b||d?"ár":"árum"):e+(b||d?"ár":"ári")}} -//! moment.js locale configuration -//! locale : Luxembourgish [lb] -//! author : mweimerskirch : https://github.com/mweimerskirch -//! author : David Raison : https://github.com/kwisatz -function Od(a,b,c,d){var e={m:["eng Minutt","enger Minutt"],h:["eng Stonn","enger Stonn"],d:["een Dag","engem Dag"],M:["ee Mount","engem Mount"],y:["ee Joer","engem Joer"]};return b?e[c][0]:e[c][1]}function Pd(a){var b=a.substr(0,a.indexOf(" "));return Rd(b)?"a "+a:"an "+a}function Qd(a){var b=a.substr(0,a.indexOf(" "));return Rd(b)?"viru "+a:"virun "+a}function Rd(a){if(a=parseInt(a,10),isNaN(a))return!1;if(a<0)return!0;if(a<10)return 4<=a&&a<=7;if(a<100){var b=a%10,c=a/10;return Rd(0===b?c:b)}if(a<1e4){for(;a>=10;)a/=10;return Rd(a)}return a/=1e3,Rd(a)}function Sd(a,b,c,d){return b?"kelios sekundės":d?"kelių sekundžių":"kelias sekundes"}function Td(a,b,c,d){return b?Vd(c)[0]:d?Vd(c)[1]:Vd(c)[2]}function Ud(a){return a%10===0||a>10&&a<20}function Vd(a){return nh[a].split("_")}function Wd(a,b,c,d){var e=a+" ";return 1===a?e+Td(a,b,c[0],d):b?e+(Ud(a)?Vd(c)[1]:Vd(c)[0]):d?e+Vd(c)[1]:e+(Ud(a)?Vd(c)[1]:Vd(c)[2])}function Xd(a,b,c){return c?b%10===1&&b%100!==11?a[2]:a[3]:b%10===1&&b%100!==11?a[0]:a[1]}function Yd(a,b,c){return a+" "+Xd(oh[c],a,b)}function Zd(a,b,c){return Xd(oh[c],a,b)}function $d(a,b){return b?"dažas sekundes":"dažām sekundēm"}function _d(a,b,c,d){var e="";if(b)switch(c){case"s":e="काही सेकंद";break;case"m":e="एक मिनिट";break;case"mm":e="%d मिनिटे";break;case"h":e="एक तास";break;case"hh":e="%d तास";break;case"d":e="एक दिवस";break;case"dd":e="%d दिवस";break;case"M":e="एक महिना";break;case"MM":e="%d महिने";break;case"y":e="एक वर्ष";break;case"yy":e="%d वर्षे"}else switch(c){case"s":e="काही सेकंदां";break;case"m":e="एका मिनिटा";break;case"mm":e="%d मिनिटां";break;case"h":e="एका तासा";break;case"hh":e="%d तासां";break;case"d":e="एका दिवसा";break;case"dd":e="%d दिवसां";break;case"M":e="एका महिन्या";break;case"MM":e="%d महिन्यां";break;case"y":e="एका वर्षा";break;case"yy":e="%d वर्षां"}return e.replace(/%d/i,a)}function ae(a){return a%10<5&&a%10>1&&~~(a/10)%10!==1}function be(a,b,c){var d=a+" ";switch(c){case"m":return b?"minuta":"minutę";case"mm":return d+(ae(a)?"minuty":"minut");case"h":return b?"godzina":"godzinę";case"hh":return d+(ae(a)?"godziny":"godzin");case"MM":return d+(ae(a)?"miesiące":"miesięcy");case"yy":return d+(ae(a)?"lata":"lat")}} -//! moment.js locale configuration -//! locale : Romanian [ro] -//! author : Vlad Gurdiga : https://github.com/gurdiga -//! author : Valentin Agachi : https://github.com/avaly -function ce(a,b,c){var d={mm:"minute",hh:"ore",dd:"zile",MM:"luni",yy:"ani"},e=" ";return(a%100>=20||a>=100&&a%100===0)&&(e=" de "),a+e+d[c]} -//! moment.js locale configuration -//! locale : Russian [ru] -//! author : Viktorminator : https://github.com/Viktorminator -//! Author : Menelion Elensúle : https://github.com/Oire -//! author : Коренберг Марк : https://github.com/socketpair -function de(a,b){var c=a.split("_");return b%10===1&&b%100!==11?c[0]:b%10>=2&&b%10<=4&&(b%100<10||b%100>=20)?c[1]:c[2]}function ee(a,b,c){var d={mm:b?"минута_минуты_минут":"минуту_минуты_минут",hh:"час_часа_часов",dd:"день_дня_дней",MM:"месяц_месяца_месяцев",yy:"год_года_лет"};return"m"===c?b?"минута":"минуту":a+" "+de(d[c],+a)}function fe(a){return a>1&&a<5}function ge(a,b,c,d){var e=a+" ";switch(c){case"s":return b||d?"pár sekúnd":"pár sekundami";case"m":return b?"minúta":d?"minútu":"minútou";case"mm":return b||d?e+(fe(a)?"minúty":"minút"):e+"minútami";break;case"h":return b?"hodina":d?"hodinu":"hodinou";case"hh":return b||d?e+(fe(a)?"hodiny":"hodín"):e+"hodinami";break;case"d":return b||d?"deň":"dňom";case"dd":return b||d?e+(fe(a)?"dni":"dní"):e+"dňami";break;case"M":return b||d?"mesiac":"mesiacom";case"MM":return b||d?e+(fe(a)?"mesiace":"mesiacov"):e+"mesiacmi";break;case"y":return b||d?"rok":"rokom";case"yy":return b||d?e+(fe(a)?"roky":"rokov"):e+"rokmi"}} -//! moment.js locale configuration -//! locale : Slovenian [sl] -//! author : Robert Sedovšek : https://github.com/sedovsek -function he(a,b,c,d){var e=a+" ";switch(c){case"s":return b||d?"nekaj sekund":"nekaj sekundami";case"m":return b?"ena minuta":"eno minuto";case"mm":return e+=1===a?b?"minuta":"minuto":2===a?b||d?"minuti":"minutama":a<5?b||d?"minute":"minutami":b||d?"minut":"minutami";case"h":return b?"ena ura":"eno uro";case"hh":return e+=1===a?b?"ura":"uro":2===a?b||d?"uri":"urama":a<5?b||d?"ure":"urami":b||d?"ur":"urami";case"d":return b||d?"en dan":"enim dnem";case"dd":return e+=1===a?b||d?"dan":"dnem":2===a?b||d?"dni":"dnevoma":b||d?"dni":"dnevi";case"M":return b||d?"en mesec":"enim mesecem";case"MM":return e+=1===a?b||d?"mesec":"mesecem":2===a?b||d?"meseca":"mesecema":a<5?b||d?"mesece":"meseci":b||d?"mesecev":"meseci";case"y":return b||d?"eno leto":"enim letom";case"yy":return e+=1===a?b||d?"leto":"letom":2===a?b||d?"leti":"letoma":a<5?b||d?"leta":"leti":b||d?"let":"leti"}}function ie(a){var b=a;return b=a.indexOf("jaj")!==-1?b.slice(0,-3)+"leS":a.indexOf("jar")!==-1?b.slice(0,-3)+"waQ":a.indexOf("DIS")!==-1?b.slice(0,-3)+"nem":b+" pIq"}function je(a){var b=a;return b=a.indexOf("jaj")!==-1?b.slice(0,-3)+"Hu’":a.indexOf("jar")!==-1?b.slice(0,-3)+"wen":a.indexOf("DIS")!==-1?b.slice(0,-3)+"ben":b+" ret"}function ke(a,b,c,d){var e=le(a);switch(c){case"mm":return e+" tup";case"hh":return e+" rep";case"dd":return e+" jaj";case"MM":return e+" jar";case"yy":return e+" DIS"}}function le(a){var b=Math.floor(a%1e3/100),c=Math.floor(a%100/10),d=a%10,e="";return b>0&&(e+=Rh[b]+"vatlh"),c>0&&(e+=(""!==e?" ":"")+Rh[c]+"maH"),d>0&&(e+=(""!==e?" ":"")+Rh[d]),""===e?"pagh":e}function me(a,b,c,d){var e={s:["viensas secunds","'iensas secunds"],m:["'n míut","'iens míut"],mm:[a+" míuts",""+a+" míuts"],h:["'n þora","'iensa þora"],hh:[a+" þoras",""+a+" þoras"],d:["'n ziua","'iensa ziua"],dd:[a+" ziuas",""+a+" ziuas"],M:["'n mes","'iens mes"],MM:[a+" mesen",""+a+" mesen"],y:["'n ar","'iens ar"],yy:[a+" ars",""+a+" ars"]};return d?e[c][0]:b?e[c][0]:e[c][1]} -//! moment.js locale configuration -//! locale : Ukrainian [uk] -//! author : zemlanin : https://github.com/zemlanin -//! Author : Menelion Elensúle : https://github.com/Oire -function ne(a,b){var c=a.split("_");return b%10===1&&b%100!==11?c[0]:b%10>=2&&b%10<=4&&(b%100<10||b%100>=20)?c[1]:c[2]}function oe(a,b,c){var d={mm:b?"хвилина_хвилини_хвилин":"хвилину_хвилини_хвилин",hh:b?"година_години_годин":"годину_години_годин",dd:"день_дні_днів",MM:"місяць_місяці_місяців",yy:"рік_роки_років"};return"m"===c?b?"хвилина":"хвилину":"h"===c?b?"година":"годину":a+" "+ne(d[c],+a)}function pe(a,b){var c={nominative:"неділя_понеділок_вівторок_середа_четвер_п’ятниця_субота".split("_"),accusative:"неділю_понеділок_вівторок_середу_четвер_п’ятницю_суботу".split("_"),genitive:"неділі_понеділка_вівторка_середи_четверга_п’ятниці_суботи".split("_")};if(!a)return c.nominative;var d=/(\[[ВвУу]\]) ?dddd/.test(b)?"accusative":/\[?(?:минулої|наступної)? ?\] ?dddd/.test(b)?"genitive":"nominative";return c[d][a.day()]}function qe(a){return function(){return a+"о"+(11===this.hours()?"б":"")+"] LT"}}var re,se;se=Array.prototype.some?Array.prototype.some:function(a){for(var b=Object(this),c=b.length>>>0,d=0;d<c;d++)if(d in b&&a.call(this,b[d],d,b))return!0;return!1};var te=se,ue=a.momentProperties=[],ve=!1,we={};a.suppressDeprecationWarnings=!1,a.deprecationHandler=null;var xe;xe=Object.keys?Object.keys:function(a){var b,c=[];for(b in a)j(a,b)&&c.push(b);return c};var ye,ze=xe,Ae={sameDay:"[Today at] LT",nextDay:"[Tomorrow at] LT",nextWeek:"dddd [at] LT",lastDay:"[Yesterday at] LT",lastWeek:"[Last] dddd [at] LT",sameElse:"L"},Be={LTS:"h:mm:ss A",LT:"h:mm A",L:"MM/DD/YYYY",LL:"MMMM D, YYYY",LLL:"MMMM D, YYYY h:mm A",LLLL:"dddd, MMMM D, YYYY h:mm A"},Ce="Invalid date",De="%d",Ee=/\d{1,2}/,Fe={future:"in %s",past:"%s ago",s:"a few seconds",ss:"%d 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"},Ge={},He={},Ie=/(\[[^\[]*\])|(\\)?([Hh]mm(ss)?|Mo|MM?M?M?|Do|DDDo|DD?D?D?|ddd?d?|do?|w[o|w]?|W[o|W]?|Qo?|YYYYYY|YYYYY|YYYY|YY|gg(ggg?)?|GG(GGG?)?|e|E|a|A|hh?|HH?|kk?|mm?|ss?|S{1,9}|x|X|zz?|ZZ?|.)/g,Je=/(\[[^\[]*\])|(\\)?(LTS|LT|LL?L?L?|l{1,4})/g,Ke={},Le={},Me=/\d/,Ne=/\d\d/,Oe=/\d{3}/,Pe=/\d{4}/,Qe=/[+-]?\d{6}/,Re=/\d\d?/,Se=/\d\d\d\d?/,Te=/\d\d\d\d\d\d?/,Ue=/\d{1,3}/,Ve=/\d{1,4}/,We=/[+-]?\d{1,6}/,Xe=/\d+/,Ye=/[+-]?\d+/,Ze=/Z|[+-]\d\d:?\d\d/gi,$e=/Z|[+-]\d\d(?::?\d\d)?/gi,_e=/[+-]?\d+(\.\d{1,3})?/,af=/[0-9]*['a-z\u00A0-\u05FF\u0700-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]+|[\u0600-\u06FF\/]+(\s*?[\u0600-\u06FF]+){1,2}/i,bf={},cf={},df=0,ef=1,ff=2,gf=3,hf=4,jf=5,kf=6,lf=7,mf=8;ye=Array.prototype.indexOf?Array.prototype.indexOf:function(a){var b;for(b=0;b<this.length;++b)if(this[b]===a)return b;return-1};var nf=ye;U("M",["MM",2],"Mo",function(){return this.month()+1}),U("MMM",0,0,function(a){return this.localeData().monthsShort(this,a)}),U("MMMM",0,0,function(a){return this.localeData().months(this,a)}),J("month","M"),M("month",8),Z("M",Re),Z("MM",Re,Ne),Z("MMM",function(a,b){return b.monthsShortRegex(a)}),Z("MMMM",function(a,b){return b.monthsRegex(a)}),ba(["M","MM"],function(a,b){b[ef]=u(a)-1}),ba(["MMM","MMMM"],function(a,b,c,d){var e=c._locale.monthsParse(a,d,c._strict);null!=e?b[ef]=e:n(c).invalidMonth=a});var of=/D[oD]?(\[[^\[\]]*\]|\s)+MMMM?/,pf="January_February_March_April_May_June_July_August_September_October_November_December".split("_"),qf="Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec".split("_"),rf=af,sf=af;U("Y",0,0,function(){var a=this.year();return a<=9999?""+a:"+"+a}),U(0,["YY",2],0,function(){return this.year()%100}),U(0,["YYYY",4],0,"year"),U(0,["YYYYY",5],0,"year"),U(0,["YYYYYY",6,!0],0,"year"),J("year","y"),M("year",1),Z("Y",Ye),Z("YY",Re,Ne),Z("YYYY",Ve,Pe),Z("YYYYY",We,Qe),Z("YYYYYY",We,Qe),ba(["YYYYY","YYYYYY"],df),ba("YYYY",function(b,c){c[df]=2===b.length?a.parseTwoDigitYear(b):u(b)}),ba("YY",function(b,c){c[df]=a.parseTwoDigitYear(b)}),ba("Y",function(a,b){b[df]=parseInt(a,10)}),a.parseTwoDigitYear=function(a){return u(a)+(u(a)>68?1900:2e3)};var tf=O("FullYear",!0);U("w",["ww",2],"wo","week"),U("W",["WW",2],"Wo","isoWeek"),J("week","w"),J("isoWeek","W"),M("week",5),M("isoWeek",5),Z("w",Re),Z("ww",Re,Ne),Z("W",Re),Z("WW",Re,Ne),ca(["w","ww","W","WW"],function(a,b,c,d){b[d.substr(0,1)]=u(a)});var uf={dow:0,doy:6};U("d",0,"do","day"),U("dd",0,0,function(a){return this.localeData().weekdaysMin(this,a)}),U("ddd",0,0,function(a){return this.localeData().weekdaysShort(this,a)}),U("dddd",0,0,function(a){return this.localeData().weekdays(this,a)}),U("e",0,0,"weekday"),U("E",0,0,"isoWeekday"),J("day","d"),J("weekday","e"),J("isoWeekday","E"),M("day",11),M("weekday",11),M("isoWeekday",11),Z("d",Re),Z("e",Re),Z("E",Re),Z("dd",function(a,b){return b.weekdaysMinRegex(a)}),Z("ddd",function(a,b){return b.weekdaysShortRegex(a)}),Z("dddd",function(a,b){return b.weekdaysRegex(a)}),ca(["dd","ddd","dddd"],function(a,b,c,d){var e=c._locale.weekdaysParse(a,d,c._strict);null!=e?b.d=e:n(c).invalidWeekday=a}),ca(["d","e","E"],function(a,b,c,d){b[d]=u(a)});var vf="Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),wf="Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_"),xf="Su_Mo_Tu_We_Th_Fr_Sa".split("_"),yf=af,zf=af,Af=af;U("H",["HH",2],0,"hour"),U("h",["hh",2],0,Ra),U("k",["kk",2],0,Sa),U("hmm",0,0,function(){return""+Ra.apply(this)+T(this.minutes(),2)}),U("hmmss",0,0,function(){return""+Ra.apply(this)+T(this.minutes(),2)+T(this.seconds(),2)}),U("Hmm",0,0,function(){return""+this.hours()+T(this.minutes(),2)}),U("Hmmss",0,0,function(){return""+this.hours()+T(this.minutes(),2)+T(this.seconds(),2)}),Ta("a",!0),Ta("A",!1),J("hour","h"),M("hour",13),Z("a",Ua),Z("A",Ua),Z("H",Re),Z("h",Re),Z("k",Re),Z("HH",Re,Ne),Z("hh",Re,Ne),Z("kk",Re,Ne),Z("hmm",Se),Z("hmmss",Te),Z("Hmm",Se),Z("Hmmss",Te),ba(["H","HH"],gf),ba(["k","kk"],function(a,b,c){var d=u(a);b[gf]=24===d?0:d}),ba(["a","A"],function(a,b,c){c._isPm=c._locale.isPM(a),c._meridiem=a}),ba(["h","hh"],function(a,b,c){b[gf]=u(a),n(c).bigHour=!0}),ba("hmm",function(a,b,c){var d=a.length-2;b[gf]=u(a.substr(0,d)),b[hf]=u(a.substr(d)),n(c).bigHour=!0}),ba("hmmss",function(a,b,c){var d=a.length-4,e=a.length-2;b[gf]=u(a.substr(0,d)),b[hf]=u(a.substr(d,2)),b[jf]=u(a.substr(e)),n(c).bigHour=!0}),ba("Hmm",function(a,b,c){var d=a.length-2;b[gf]=u(a.substr(0,d)),b[hf]=u(a.substr(d))}),ba("Hmmss",function(a,b,c){var d=a.length-4,e=a.length-2;b[gf]=u(a.substr(0,d)),b[hf]=u(a.substr(d,2)),b[jf]=u(a.substr(e))});var Bf,Cf=/[ap]\.?m?\.?/i,Df=O("Hours",!0),Ef={calendar:Ae,longDateFormat:Be,invalidDate:Ce,ordinal:De,dayOfMonthOrdinalParse:Ee,relativeTime:Fe,months:pf,monthsShort:qf,week:uf,weekdays:vf,weekdaysMin:xf,weekdaysShort:wf,meridiemParse:Cf},Ff={},Gf={},Hf=/^\s*((?:[+-]\d{6}|\d{4})-(?:\d\d-\d\d|W\d\d-\d|W\d\d|\d\d\d|\d\d))(?:(T| )(\d\d(?::\d\d(?::\d\d(?:[.,]\d+)?)?)?)([\+\-]\d\d(?::?\d\d)?|\s*Z)?)?$/,If=/^\s*((?:[+-]\d{6}|\d{4})(?:\d\d\d\d|W\d\d\d|W\d\d|\d\d\d|\d\d))(?:(T| )(\d\d(?:\d\d(?:\d\d(?:[.,]\d+)?)?)?)([\+\-]\d\d(?::?\d\d)?|\s*Z)?)?$/,Jf=/Z|[+-]\d\d(?::?\d\d)?/,Kf=[["YYYYYY-MM-DD",/[+-]\d{6}-\d\d-\d\d/],["YYYY-MM-DD",/\d{4}-\d\d-\d\d/],["GGGG-[W]WW-E",/\d{4}-W\d\d-\d/],["GGGG-[W]WW",/\d{4}-W\d\d/,!1],["YYYY-DDD",/\d{4}-\d{3}/],["YYYY-MM",/\d{4}-\d\d/,!1],["YYYYYYMMDD",/[+-]\d{10}/],["YYYYMMDD",/\d{8}/],["GGGG[W]WWE",/\d{4}W\d{3}/],["GGGG[W]WW",/\d{4}W\d{2}/,!1],["YYYYDDD",/\d{7}/]],Lf=[["HH:mm:ss.SSSS",/\d\d:\d\d:\d\d\.\d+/],["HH:mm:ss,SSSS",/\d\d:\d\d:\d\d,\d+/],["HH:mm:ss",/\d\d:\d\d:\d\d/],["HH:mm",/\d\d:\d\d/],["HHmmss.SSSS",/\d\d\d\d\d\d\.\d+/],["HHmmss,SSSS",/\d\d\d\d\d\d,\d+/],["HHmmss",/\d\d\d\d\d\d/],["HHmm",/\d\d\d\d/],["HH",/\d\d/]],Mf=/^\/?Date\((\-?\d+)/i,Nf=/^((?:Mon|Tue|Wed|Thu|Fri|Sat|Sun),?\s)?(\d?\d\s(?:Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\s(?:\d\d)?\d\d\s)(\d\d:\d\d)(\:\d\d)?(\s(?:UT|GMT|[ECMP][SD]T|[A-IK-Za-ik-z]|[+-]\d{4}))$/;a.createFromInputFallback=x("value provided is not in a recognized RFC2822 or ISO format. moment construction falls back to js Date(), which is not reliable across all browsers and versions. Non RFC2822/ISO date formats are discouraged and will be removed in an upcoming major release. Please refer to http://momentjs.com/guides/#/warnings/js-date/ for more info.",function(a){a._d=new Date(a._i+(a._useUTC?" UTC":""))}),a.ISO_8601=function(){},a.RFC_2822=function(){};var Of=x("moment().min is deprecated, use moment.max instead. http://momentjs.com/guides/#/warnings/min-max/",function(){var a=tb.apply(null,arguments);return this.isValid()&&a.isValid()?a<this?this:a:p()}),Pf=x("moment().max is deprecated, use moment.min instead. http://momentjs.com/guides/#/warnings/min-max/",function(){var a=tb.apply(null,arguments);return this.isValid()&&a.isValid()?a>this?this:a:p()}),Qf=function(){return Date.now?Date.now():+new Date},Rf=["year","quarter","month","week","day","hour","minute","second","millisecond"];Db("Z",":"),Db("ZZ",""),Z("Z",$e),Z("ZZ",$e),ba(["Z","ZZ"],function(a,b,c){c._useUTC=!0,c._tzm=Eb($e,a)});var Sf=/([\+\-]|\d\d)/gi;a.updateOffset=function(){};var Tf=/^(\-)?(?:(\d*)[. ])?(\d+)\:(\d+)(?:\:(\d+)(\.\d*)?)?$/,Uf=/^(-)?P(?:(-?[0-9,.]*)Y)?(?:(-?[0-9,.]*)M)?(?:(-?[0-9,.]*)W)?(?:(-?[0-9,.]*)D)?(?:T(?:(-?[0-9,.]*)H)?(?:(-?[0-9,.]*)M)?(?:(-?[0-9,.]*)S)?)?$/;Sb.fn=Ab.prototype,Sb.invalid=zb;var Vf=Wb(1,"add"),Wf=Wb(-1,"subtract");a.defaultFormat="YYYY-MM-DDTHH:mm:ssZ",a.defaultFormatUtc="YYYY-MM-DDTHH:mm:ss[Z]";var Xf=x("moment().lang() is deprecated. Instead, use moment().localeData() to get the language configuration. Use moment().locale() to change languages.",function(a){return void 0===a?this.localeData():this.locale(a)});U(0,["gg",2],0,function(){return this.weekYear()%100}),U(0,["GG",2],0,function(){return this.isoWeekYear()%100}),Dc("gggg","weekYear"),Dc("ggggg","weekYear"),Dc("GGGG","isoWeekYear"),Dc("GGGGG","isoWeekYear"),J("weekYear","gg"),J("isoWeekYear","GG"),M("weekYear",1),M("isoWeekYear",1),Z("G",Ye),Z("g",Ye),Z("GG",Re,Ne),Z("gg",Re,Ne),Z("GGGG",Ve,Pe),Z("gggg",Ve,Pe),Z("GGGGG",We,Qe),Z("ggggg",We,Qe),ca(["gggg","ggggg","GGGG","GGGGG"],function(a,b,c,d){b[d.substr(0,2)]=u(a)}),ca(["gg","GG"],function(b,c,d,e){c[e]=a.parseTwoDigitYear(b)}),U("Q",0,"Qo","quarter"),J("quarter","Q"),M("quarter",7),Z("Q",Me),ba("Q",function(a,b){b[ef]=3*(u(a)-1)}),U("D",["DD",2],"Do","date"),J("date","D"),M("date",9),Z("D",Re),Z("DD",Re,Ne),Z("Do",function(a,b){return a?b._dayOfMonthOrdinalParse||b._ordinalParse:b._dayOfMonthOrdinalParseLenient}),ba(["D","DD"],ff),ba("Do",function(a,b){b[ff]=u(a.match(Re)[0],10)});var Yf=O("Date",!0);U("DDD",["DDDD",3],"DDDo","dayOfYear"),J("dayOfYear","DDD"),M("dayOfYear",4),Z("DDD",Ue),Z("DDDD",Oe),ba(["DDD","DDDD"],function(a,b,c){c._dayOfYear=u(a)}),U("m",["mm",2],0,"minute"),J("minute","m"),M("minute",14),Z("m",Re),Z("mm",Re,Ne),ba(["m","mm"],hf);var Zf=O("Minutes",!1);U("s",["ss",2],0,"second"),J("second","s"),M("second",15),Z("s",Re),Z("ss",Re,Ne),ba(["s","ss"],jf);var $f=O("Seconds",!1);U("S",0,0,function(){return~~(this.millisecond()/100)}),U(0,["SS",2],0,function(){return~~(this.millisecond()/10)}),U(0,["SSS",3],0,"millisecond"),U(0,["SSSS",4],0,function(){return 10*this.millisecond()}),U(0,["SSSSS",5],0,function(){return 100*this.millisecond()}),U(0,["SSSSSS",6],0,function(){return 1e3*this.millisecond()}),U(0,["SSSSSSS",7],0,function(){return 1e4*this.millisecond()}),U(0,["SSSSSSSS",8],0,function(){return 1e5*this.millisecond()}),U(0,["SSSSSSSSS",9],0,function(){return 1e6*this.millisecond()}),J("millisecond","ms"),M("millisecond",16),Z("S",Ue,Me),Z("SS",Ue,Ne),Z("SSS",Ue,Oe);var _f;for(_f="SSSS";_f.length<=9;_f+="S")Z(_f,Xe);for(_f="S";_f.length<=9;_f+="S")ba(_f,Mc);var ag=O("Milliseconds",!1);U("z",0,0,"zoneAbbr"),U("zz",0,0,"zoneName");var bg=r.prototype;bg.add=Vf,bg.calendar=Zb,bg.clone=$b,bg.diff=fc,bg.endOf=sc,bg.format=kc,bg.from=lc,bg.fromNow=mc,bg.to=nc,bg.toNow=oc,bg.get=R,bg.invalidAt=Bc,bg.isAfter=_b,bg.isBefore=ac,bg.isBetween=bc,bg.isSame=cc,bg.isSameOrAfter=dc,bg.isSameOrBefore=ec,bg.isValid=zc,bg.lang=Xf,bg.locale=pc,bg.localeData=qc,bg.max=Pf,bg.min=Of,bg.parsingFlags=Ac,bg.set=S,bg.startOf=rc,bg.subtract=Wf,bg.toArray=wc,bg.toObject=xc,bg.toDate=vc,bg.toISOString=ic,bg.inspect=jc,bg.toJSON=yc,bg.toString=hc,bg.unix=uc,bg.valueOf=tc,bg.creationData=Cc,bg.year=tf,bg.isLeapYear=ra,bg.weekYear=Ec,bg.isoWeekYear=Fc,bg.quarter=bg.quarters=Kc,bg.month=ka,bg.daysInMonth=la,bg.week=bg.weeks=Ba,bg.isoWeek=bg.isoWeeks=Ca,bg.weeksInYear=Hc,bg.isoWeeksInYear=Gc,bg.date=Yf,bg.day=bg.days=Ka,bg.weekday=La,bg.isoWeekday=Ma,bg.dayOfYear=Lc,bg.hour=bg.hours=Df,bg.minute=bg.minutes=Zf,bg.second=bg.seconds=$f,bg.millisecond=bg.milliseconds=ag,bg.utcOffset=Hb,bg.utc=Jb,bg.local=Kb,bg.parseZone=Lb,bg.hasAlignedHourOffset=Mb,bg.isDST=Nb,bg.isLocal=Pb,bg.isUtcOffset=Qb,bg.isUtc=Rb,bg.isUTC=Rb,bg.zoneAbbr=Nc,bg.zoneName=Oc,bg.dates=x("dates accessor is deprecated. Use date instead.",Yf),bg.months=x("months accessor is deprecated. Use month instead",ka),bg.years=x("years accessor is deprecated. Use year instead",tf),bg.zone=x("moment().zone is deprecated, use moment().utcOffset instead. http://momentjs.com/guides/#/warnings/zone/",Ib),bg.isDSTShifted=x("isDSTShifted is deprecated. See http://momentjs.com/guides/#/warnings/dst-shifted/ for more information",Ob);var cg=C.prototype;cg.calendar=D,cg.longDateFormat=E,cg.invalidDate=F,cg.ordinal=G,cg.preparse=Rc,cg.postformat=Rc,cg.relativeTime=H,cg.pastFuture=I,cg.set=A,cg.months=fa,cg.monthsShort=ga,cg.monthsParse=ia,cg.monthsRegex=na,cg.monthsShortRegex=ma,cg.week=ya,cg.firstDayOfYear=Aa,cg.firstDayOfWeek=za,cg.weekdays=Fa,cg.weekdaysMin=Ha,cg.weekdaysShort=Ga,cg.weekdaysParse=Ja,cg.weekdaysRegex=Na,cg.weekdaysShortRegex=Oa,cg.weekdaysMinRegex=Pa,cg.isPM=Va,cg.meridiem=Wa,$a("en",{dayOfMonthOrdinalParse:/\d{1,2}(th|st|nd|rd)/,ordinal:function(a){var b=a%10,c=1===u(a%100/10)?"th":1===b?"st":2===b?"nd":3===b?"rd":"th";return a+c}}),a.lang=x("moment.lang is deprecated. Use moment.locale instead.",$a),a.langData=x("moment.langData is deprecated. Use moment.localeData instead.",bb);var dg=Math.abs,eg=id("ms"),fg=id("s"),gg=id("m"),hg=id("h"),ig=id("d"),jg=id("w"),kg=id("M"),lg=id("y"),mg=kd("milliseconds"),ng=kd("seconds"),og=kd("minutes"),pg=kd("hours"),qg=kd("days"),rg=kd("months"),sg=kd("years"),tg=Math.round,ug={ss:44,s:45,m:45,h:22,d:26,M:11},vg=Math.abs,wg=Ab.prototype;wg.isValid=yb,wg.abs=$c,wg.add=ad,wg.subtract=bd,wg.as=gd,wg.asMilliseconds=eg,wg.asSeconds=fg,wg.asMinutes=gg,wg.asHours=hg,wg.asDays=ig,wg.asWeeks=jg,wg.asMonths=kg,wg.asYears=lg,wg.valueOf=hd,wg._bubble=dd,wg.get=jd,wg.milliseconds=mg,wg.seconds=ng,wg.minutes=og,wg.hours=pg,wg.days=qg,wg.weeks=ld,wg.months=rg,wg.years=sg,wg.humanize=qd,wg.toISOString=rd,wg.toString=rd,wg.toJSON=rd,wg.locale=pc,wg.localeData=qc,wg.toIsoString=x("toIsoString() is deprecated. Please use toISOString() instead (notice the capitals)",rd),wg.lang=Xf,U("X",0,0,"unix"),U("x",0,0,"valueOf"),Z("x",Ye),Z("X",_e),ba("X",function(a,b,c){c._d=new Date(1e3*parseFloat(a,10))}),ba("x",function(a,b,c){c._d=new Date(u(a))}), -//! moment.js -//! version : 2.18.1 -//! authors : Tim Wood, Iskren Chernev, Moment.js contributors -//! license : MIT -//! momentjs.com -a.version="2.18.1",b(tb),a.fn=bg,a.min=vb,a.max=wb,a.now=Qf,a.utc=l,a.unix=Pc,a.months=Vc,a.isDate=h,a.locale=$a,a.invalid=p,a.duration=Sb,a.isMoment=s,a.weekdays=Xc,a.parseZone=Qc,a.localeData=bb,a.isDuration=Bb,a.monthsShort=Wc,a.weekdaysMin=Zc,a.defineLocale=_a,a.updateLocale=ab,a.locales=cb,a.weekdaysShort=Yc,a.normalizeUnits=K,a.relativeTimeRounding=od,a.relativeTimeThreshold=pd,a.calendarFormat=Yb,a.prototype=bg, -//! moment.js locale configuration -//! locale : Afrikaans [af] -//! author : Werner Mollentze : https://github.com/wernerm -a.defineLocale("af",{months:"Januarie_Februarie_Maart_April_Mei_Junie_Julie_Augustus_September_Oktober_November_Desember".split("_"),monthsShort:"Jan_Feb_Mrt_Apr_Mei_Jun_Jul_Aug_Sep_Okt_Nov_Des".split("_"),weekdays:"Sondag_Maandag_Dinsdag_Woensdag_Donderdag_Vrydag_Saterdag".split("_"),weekdaysShort:"Son_Maa_Din_Woe_Don_Vry_Sat".split("_"),weekdaysMin:"So_Ma_Di_Wo_Do_Vr_Sa".split("_"),meridiemParse:/vm|nm/i,isPM:function(a){return/^nm$/i.test(a)},meridiem:function(a,b,c){return a<12?c?"vm":"VM":c?"nm":"NM"},longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[Vandag om] LT",nextDay:"[Môre om] LT",nextWeek:"dddd [om] LT",lastDay:"[Gister om] LT",lastWeek:"[Laas] dddd [om] LT",sameElse:"L"},relativeTime:{future:"oor %s",past:"%s gelede",s:"'n paar sekondes",m:"'n minuut",mm:"%d minute",h:"'n uur",hh:"%d ure",d:"'n dag",dd:"%d dae",M:"'n maand",MM:"%d maande",y:"'n jaar",yy:"%d jaar"},dayOfMonthOrdinalParse:/\d{1,2}(ste|de)/,ordinal:function(a){return a+(1===a||8===a||a>=20?"ste":"de")},week:{dow:1,doy:4}}), -//! moment.js locale configuration -//! locale : Arabic (Algeria) [ar-dz] -//! author : Noureddine LOUAHEDJ : https://github.com/noureddineme -a.defineLocale("ar-dz",{months:"جانفي_فيفري_مارس_أفريل_ماي_جوان_جويلية_أوت_سبتمبر_أكتوبر_نوفمبر_ديسمبر".split("_"),monthsShort:"جانفي_فيفري_مارس_أفريل_ماي_جوان_جويلية_أوت_سبتمبر_أكتوبر_نوفمبر_ديسمبر".split("_"),weekdays:"الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت".split("_"),weekdaysShort:"احد_اثنين_ثلاثاء_اربعاء_خميس_جمعة_سبت".split("_"),weekdaysMin:"أح_إث_ثلا_أر_خم_جم_سب".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},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:0,doy:4}}), -//! moment.js locale configuration -//! locale : Arabic (Kuwait) [ar-kw] -//! author : Nusret Parlak: https://github.com/nusretparlak -a.defineLocale("ar-kw",{months:"يناير_فبراير_مارس_أبريل_ماي_يونيو_يوليوز_غشت_شتنبر_أكتوبر_نونبر_دجنبر".split("_"),monthsShort:"يناير_فبراير_مارس_أبريل_ماي_يونيو_يوليوز_غشت_شتنبر_أكتوبر_نونبر_دجنبر".split("_"),weekdays:"الأحد_الإتنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت".split("_"),weekdaysShort:"احد_اتنين_ثلاثاء_اربعاء_خميس_جمعة_سبت".split("_"),weekdaysMin:"ح_ن_ث_ر_خ_ج_س".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},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:0,doy:12}}); -//! moment.js locale configuration -//! locale : Arabic (Lybia) [ar-ly] -//! author : Ali Hmer: https://github.com/kikoanis -var xg={1:"1",2:"2",3:"3",4:"4",5:"5",6:"6",7:"7",8:"8",9:"9",0:"0"},yg=function(a){return 0===a?0:1===a?1:2===a?2:a%100>=3&&a%100<=10?3:a%100>=11?4:5},zg={s:["أقل من ثانية","ثانية واحدة",["ثانيتان","ثانيتين"],"%d ثوان","%d ثانية","%d ثانية"],m:["أقل من دقيقة","دقيقة واحدة",["دقيقتان","دقيقتين"],"%d دقائق","%d دقيقة","%d دقيقة"],h:["أقل من ساعة","ساعة واحدة",["ساعتان","ساعتين"],"%d ساعات","%d ساعة","%d ساعة"],d:["أقل من يوم","يوم واحد",["يومان","يومين"],"%d أيام","%d يومًا","%d يوم"],M:["أقل من شهر","شهر واحد",["شهران","شهرين"],"%d أشهر","%d شهرا","%d شهر"],y:["أقل من عام","عام واحد",["عامان","عامين"],"%d أعوام","%d عامًا","%d عام"]},Ag=function(a){return function(b,c,d,e){var f=yg(b),g=zg[a][yg(b)];return 2===f&&(g=g[c?0:1]),g.replace(/%d/i,b)}},Bg=["يناير","فبراير","مارس","أبريل","مايو","يونيو","يوليو","أغسطس","سبتمبر","أكتوبر","نوفمبر","ديسمبر"];a.defineLocale("ar-ly",{months:Bg,monthsShort:Bg,weekdays:"الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت".split("_"),weekdaysShort:"أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت".split("_"),weekdaysMin:"ح_ن_ث_ر_خ_ج_س".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"D/‏M/‏YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},meridiemParse:/ص|م/,isPM:function(a){return"م"===a},meridiem:function(a,b,c){return a<12?"ص":"م"},calendar:{sameDay:"[اليوم عند الساعة] LT",nextDay:"[غدًا عند الساعة] LT",nextWeek:"dddd [عند الساعة] LT",lastDay:"[أمس عند الساعة] LT",lastWeek:"dddd [عند الساعة] LT",sameElse:"L"},relativeTime:{future:"بعد %s",past:"منذ %s",s:Ag("s"),m:Ag("m"),mm:Ag("m"),h:Ag("h"),hh:Ag("h"),d:Ag("d"),dd:Ag("d"),M:Ag("M"),MM:Ag("M"),y:Ag("y"),yy:Ag("y")},preparse:function(a){return a.replace(/\u200f/g,"").replace(/،/g,",")},postformat:function(a){return a.replace(/\d/g,function(a){return xg[a]}).replace(/,/g,"،")},week:{dow:6,doy:12}}), -//! moment.js locale configuration -//! locale : Arabic (Morocco) [ar-ma] -//! author : ElFadili Yassine : https://github.com/ElFadiliY -//! author : Abdel Said : https://github.com/abdelsaid -a.defineLocale("ar-ma",{months:"يناير_فبراير_مارس_أبريل_ماي_يونيو_يوليوز_غشت_شتنبر_أكتوبر_نونبر_دجنبر".split("_"),monthsShort:"يناير_فبراير_مارس_أبريل_ماي_يونيو_يوليوز_غشت_شتنبر_أكتوبر_نونبر_دجنبر".split("_"),weekdays:"الأحد_الإتنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت".split("_"),weekdaysShort:"احد_اتنين_ثلاثاء_اربعاء_خميس_جمعة_سبت".split("_"),weekdaysMin:"ح_ن_ث_ر_خ_ج_س".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},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}}); -//! moment.js locale configuration -//! locale : Arabic (Saudi Arabia) [ar-sa] -//! author : Suhail Alkowaileet : https://github.com/xsoh -var Cg={1:"١",2:"٢",3:"٣",4:"٤",5:"٥",6:"٦",7:"٧",8:"٨",9:"٩",0:"٠"},Dg={"١":"1","٢":"2","٣":"3","٤":"4","٥":"5","٦":"6","٧":"7","٨":"8","٩":"9","٠":"0"};a.defineLocale("ar-sa",{months:"يناير_فبراير_مارس_أبريل_مايو_يونيو_يوليو_أغسطس_سبتمبر_أكتوبر_نوفمبر_ديسمبر".split("_"),monthsShort:"يناير_فبراير_مارس_أبريل_مايو_يونيو_يوليو_أغسطس_سبتمبر_أكتوبر_نوفمبر_ديسمبر".split("_"),weekdays:"الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت".split("_"),weekdaysShort:"أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت".split("_"),weekdaysMin:"ح_ن_ث_ر_خ_ج_س".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},meridiemParse:/ص|م/,isPM:function(a){return"م"===a},meridiem:function(a,b,c){return a<12?"ص":"م"},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 Dg[a]}).replace(/،/g,",")},postformat:function(a){return a.replace(/\d/g,function(a){return Cg[a]}).replace(/,/g,"،")},week:{dow:0,doy:6}}), -//! moment.js locale configuration -//! locale : Arabic (Tunisia) [ar-tn] -//! author : Nader Toukabri : https://github.com/naderio -a.defineLocale("ar-tn",{months:"جانفي_فيفري_مارس_أفريل_ماي_جوان_جويلية_أوت_سبتمبر_أكتوبر_نوفمبر_ديسمبر".split("_"),monthsShort:"جانفي_فيفري_مارس_أفريل_ماي_جوان_جويلية_أوت_سبتمبر_أكتوبر_نوفمبر_ديسمبر".split("_"),weekdays:"الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت".split("_"),weekdaysShort:"أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت".split("_"),weekdaysMin:"ح_ن_ث_ر_خ_ج_س".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},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:4}}); -//! moment.js locale configuration -//! locale : Arabic [ar] -//! author : Abdel Said: https://github.com/abdelsaid -//! author : Ahmed Elkhatib -//! author : forabi https://github.com/forabi -var Eg={1:"١",2:"٢",3:"٣",4:"٤",5:"٥",6:"٦",7:"٧",8:"٨",9:"٩",0:"٠"},Fg={"١":"1","٢":"2","٣":"3","٤":"4","٥":"5","٦":"6","٧":"7","٨":"8","٩":"9","٠":"0"},Gg=function(a){return 0===a?0:1===a?1:2===a?2:a%100>=3&&a%100<=10?3:a%100>=11?4:5},Hg={s:["أقل من ثانية","ثانية واحدة",["ثانيتان","ثانيتين"],"%d ثوان","%d ثانية","%d ثانية"],m:["أقل من دقيقة","دقيقة واحدة",["دقيقتان","دقيقتين"],"%d دقائق","%d دقيقة","%d دقيقة"],h:["أقل من ساعة","ساعة واحدة",["ساعتان","ساعتين"],"%d ساعات","%d ساعة","%d ساعة"],d:["أقل من يوم","يوم واحد",["يومان","يومين"],"%d أيام","%d يومًا","%d يوم"],M:["أقل من شهر","شهر واحد",["شهران","شهرين"],"%d أشهر","%d شهرا","%d شهر"],y:["أقل من عام","عام واحد",["عامان","عامين"],"%d أعوام","%d عامًا","%d عام"]},Ig=function(a){return function(b,c,d,e){var f=Gg(b),g=Hg[a][Gg(b)];return 2===f&&(g=g[c?0:1]),g.replace(/%d/i,b)}},Jg=["كانون الثاني يناير","شباط فبراير","آذار مارس","نيسان أبريل","أيار مايو","حزيران يونيو","تموز يوليو","آب أغسطس","أيلول سبتمبر","تشرين الأول أكتوبر","تشرين الثاني نوفمبر","كانون الأول ديسمبر"];a.defineLocale("ar",{months:Jg,monthsShort:Jg,weekdays:"الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت".split("_"),weekdaysShort:"أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت".split("_"),weekdaysMin:"ح_ن_ث_ر_خ_ج_س".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"D/‏M/‏YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},meridiemParse:/ص|م/,isPM:function(a){return"م"===a},meridiem:function(a,b,c){return a<12?"ص":"م"},calendar:{sameDay:"[اليوم عند الساعة] LT",nextDay:"[غدًا عند الساعة] LT",nextWeek:"dddd [عند الساعة] LT",lastDay:"[أمس عند الساعة] LT",lastWeek:"dddd [عند الساعة] LT",sameElse:"L"},relativeTime:{future:"بعد %s",past:"منذ %s",s:Ig("s"),m:Ig("m"),mm:Ig("m"),h:Ig("h"),hh:Ig("h"),d:Ig("d"),dd:Ig("d"),M:Ig("M"),MM:Ig("M"),y:Ig("y"),yy:Ig("y")},preparse:function(a){return a.replace(/\u200f/g,"").replace(/[١٢٣٤٥٦٧٨٩٠]/g,function(a){return Fg[a]}).replace(/،/g,",")},postformat:function(a){return a.replace(/\d/g,function(a){return Eg[a]}).replace(/,/g,"،")},week:{dow:6,doy:12}}); -//! moment.js locale configuration -//! locale : Azerbaijani [az] -//! author : topchiyev : https://github.com/topchiyev -var Kg={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.defineLocale("az",{months:"yanvar_fevral_mart_aprel_may_iyun_iyul_avqust_sentyabr_oktyabr_noyabr_dekabr".split("_"),monthsShort:"yan_fev_mar_apr_may_iyn_iyl_avq_sen_okt_noy_dek".split("_"),weekdays:"Bazar_Bazar ertəsi_Çərşənbə axşamı_Çərşənbə_Cümə axşamı_Cümə_Şənbə".split("_"),weekdaysShort:"Baz_BzE_ÇAx_Çər_CAx_Cüm_Şən".split("_"),weekdaysMin:"Bz_BE_ÇA_Çə_CA_Cü_Şə".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[bugün saat] LT",nextDay:"[sabah saat] LT",nextWeek:"[gələn həftə] dddd [saat] LT",lastDay:"[dünən] LT",lastWeek:"[keçən həftə] dddd [saat] LT",sameElse:"L"},relativeTime:{future:"%s sonra",past:"%s əvvəl",s:"birneçə saniyyə",m:"bir dəqiqə",mm:"%d dəqiqə",h:"bir saat",hh:"%d saat",d:"bir gün",dd:"%d gün",M:"bir ay",MM:"%d ay",y:"bir il",yy:"%d il"},meridiemParse:/gecə|səhər|gündüz|axşam/,isPM:function(a){return/^(gündüz|axşam)$/.test(a)},meridiem:function(a,b,c){return a<4?"gecə":a<12?"səhər":a<17?"gündüz":"axşam"},dayOfMonthOrdinalParse:/\d{1,2}-(ıncı|inci|nci|üncü|ncı|uncu)/,ordinal:function(a){if(0===a)return a+"-ıncı";var b=a%10,c=a%100-b,d=a>=100?100:null;return a+(Kg[b]||Kg[c]||Kg[d])},week:{dow:1,doy:7}}),a.defineLocale("be",{months:{format:"студзеня_лютага_сакавіка_красавіка_траўня_чэрвеня_ліпеня_жніўня_верасня_кастрычніка_лістапада_снежня".split("_"),standalone:"студзень_люты_сакавік_красавік_травень_чэрвень_ліпень_жнівень_верасень_кастрычнік_лістапад_снежань".split("_")},monthsShort:"студ_лют_сак_крас_трав_чэрв_ліп_жнів_вер_каст_ліст_снеж".split("_"),weekdays:{format:"нядзелю_панядзелак_аўторак_сераду_чацвер_пятніцу_суботу".split("_"),standalone:"нядзеля_панядзелак_аўторак_серада_чацвер_пятніца_субота".split("_"),isFormat:/\[ ?[Вв] ?(?:мінулую|наступную)? ?\] ?dddd/},weekdaysShort:"нд_пн_ат_ср_чц_пт_сб".split("_"),weekdaysMin:"нд_пн_ат_ср_чц_пт_сб".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY г.",LLL:"D MMMM YYYY г., HH:mm",LLLL:"dddd, D MMMM YYYY г., HH:mm"},calendar:{sameDay:"[Сёння ў] LT",nextDay:"[Заўтра ў] LT",lastDay:"[Учора ў] LT",nextWeek:function(){return"[У] dddd [ў] LT"},lastWeek:function(){switch(this.day()){case 0:case 3:case 5:case 6:return"[У мінулую] dddd [ў] LT";case 1:case 2:case 4:return"[У мінулы] dddd [ў] LT"}},sameElse:"L"},relativeTime:{future:"праз %s",past:"%s таму",s:"некалькі секунд",m:td,mm:td,h:td,hh:td,d:"дзень",dd:td,M:"месяц",MM:td,y:"год",yy:td},meridiemParse:/ночы|раніцы|дня|вечара/,isPM:function(a){return/^(дня|вечара)$/.test(a)},meridiem:function(a,b,c){return a<4?"ночы":a<12?"раніцы":a<17?"дня":"вечара"},dayOfMonthOrdinalParse:/\d{1,2}-(і|ы|га)/,ordinal:function(a,b){switch(b){case"M":case"d":case"DDD":case"w":case"W":return a%10!==2&&a%10!==3||a%100===12||a%100===13?a+"-ы":a+"-і";case"D":return a+"-га";default:return a}},week:{dow:1,doy:7}}), -//! moment.js locale configuration -//! locale : Bulgarian [bg] -//! author : Krasen Borisov : https://github.com/kraz -a.defineLocale("bg",{months:"януари_февруари_март_април_май_юни_юли_август_септември_октомври_ноември_декември".split("_"),monthsShort:"янр_фев_мар_апр_май_юни_юли_авг_сеп_окт_ное_дек".split("_"),weekdays:"неделя_понеделник_вторник_сряда_четвъртък_петък_събота".split("_"),weekdaysShort:"нед_пон_вто_сря_чет_пет_съб".split("_"),weekdaysMin:"нд_пн_вт_ср_чт_пт_сб".split("_"),longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"D.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY H:mm",LLLL:"dddd, D MMMM YYYY H:mm"},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 години"},dayOfMonthOrdinalParse:/\d{1,2}-(ев|ен|ти|ви|ри|ми)/,ordinal:function(a){var b=a%10,c=a%100;return 0===a?a+"-ев":0===c?a+"-ен":c>10&&c<20?a+"-ти":1===b?a+"-ви":2===b?a+"-ри":7===b||8===b?a+"-ми":a+"-ти"},week:{dow:1,doy:7}}); -//! moment.js locale configuration -//! locale : Bengali [bn] -//! author : Kaushik Gandhi : https://github.com/kaushikgandhi -var Lg={1:"১",2:"২",3:"৩",4:"৪",5:"৫",6:"৬",7:"৭",8:"৮",9:"৯",0:"০"},Mg={"১":"1","২":"2","৩":"3","৪":"4","৫":"5","৬":"6","৭":"7","৮":"8","৯":"9","০":"0"};a.defineLocale("bn",{months:"জানুয়ারী_ফেব্রুয়ারি_মার্চ_এপ্রিল_মে_জুন_জুলাই_আগস্ট_সেপ্টেম্বর_অক্টোবর_নভেম্বর_ডিসেম্বর".split("_"),monthsShort:"জানু_ফেব_মার্চ_এপ্র_মে_জুন_জুল_আগ_সেপ্ট_অক্টো_নভে_ডিসে".split("_"),weekdays:"রবিবার_সোমবার_মঙ্গলবার_বুধবার_বৃহস্পতিবার_শুক্রবার_শনিবার".split("_"),weekdaysShort:"রবি_সোম_মঙ্গল_বুধ_বৃহস্পতি_শুক্র_শনি".split("_"),weekdaysMin:"রবি_সোম_মঙ্গ_বুধ_বৃহঃ_শুক্র_শনি".split("_"),longDateFormat:{LT:"A h:mm সময়",LTS:"A h:mm:ss সময়",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY, A h:mm সময়",LLLL:"dddd, D MMMM YYYY, A h:mm সময়"},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 Mg[a]})},postformat:function(a){return a.replace(/\d/g,function(a){return Lg[a]})},meridiemParse:/রাত|সকাল|দুপুর|বিকাল|রাত/,meridiemHour:function(a,b){return 12===a&&(a=0),"রাত"===b&&a>=4||"দুপুর"===b&&a<5||"বিকাল"===b?a+12:a},meridiem:function(a,b,c){return a<4?"রাত":a<10?"সকাল":a<17?"দুপুর":a<20?"বিকাল":"রাত"},week:{dow:0,doy:6}}); -//! moment.js locale configuration -//! locale : Tibetan [bo] -//! author : Thupten N. Chakrishar : https://github.com/vajradog -var Ng={1:"༡",2:"༢",3:"༣",4:"༤",5:"༥",6:"༦",7:"༧",8:"༨",9:"༩",0:"༠"},Og={"༡":"1","༢":"2","༣":"3","༤":"4","༥":"5","༦":"6","༧":"7","༨":"8","༩":"9","༠":"0"};a.defineLocale("bo",{months:"ཟླ་བ་དང་པོ_ཟླ་བ་གཉིས་པ_ཟླ་བ་གསུམ་པ_ཟླ་བ་བཞི་པ_ཟླ་བ་ལྔ་པ_ཟླ་བ་དྲུག་པ_ཟླ་བ་བདུན་པ_ཟླ་བ་བརྒྱད་པ_ཟླ་བ་དགུ་པ_ཟླ་བ་བཅུ་པ_ཟླ་བ་བཅུ་གཅིག་པ_ཟླ་བ་བཅུ་གཉིས་པ".split("_"),monthsShort:"ཟླ་བ་དང་པོ_ཟླ་བ་གཉིས་པ_ཟླ་བ་གསུམ་པ_ཟླ་བ་བཞི་པ_ཟླ་བ་ལྔ་པ_ཟླ་བ་དྲུག་པ_ཟླ་བ་བདུན་པ_ཟླ་བ་བརྒྱད་པ_ཟླ་བ་དགུ་པ_ཟླ་བ་བཅུ་པ_ཟླ་བ་བཅུ་གཅིག་པ_ཟླ་བ་བཅུ་གཉིས་པ".split("_"),weekdays:"གཟའ་ཉི་མ་_གཟའ་ཟླ་བ་_གཟའ་མིག་དམར་_གཟའ་ལྷག་པ་_གཟའ་ཕུར་བུ_གཟའ་པ་སངས་_གཟའ་སྤེན་པ་".split("_"),weekdaysShort:"ཉི་མ་_ཟླ་བ་_མིག་དམར་_ལྷག་པ་_ཕུར་བུ_པ་སངས་_སྤེན་པ་".split("_"),weekdaysMin:"ཉི་མ་_ཟླ་བ་_མིག་དམར་_ལྷག་པ་_ཕུར་བུ_པ་སངས་_སྤེན་པ་".split("_"),longDateFormat:{LT:"A h:mm",LTS:"A h:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY, A h:mm",LLLL:"dddd, D MMMM YYYY, A h:mm"},calendar:{sameDay:"[དི་རིང] LT",nextDay:"[སང་ཉིན] LT",nextWeek:"[བདུན་ཕྲག་རྗེས་མ], 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 Og[a]})},postformat:function(a){return a.replace(/\d/g,function(a){return Ng[a]})},meridiemParse:/མཚན་མོ|ཞོགས་ཀས|ཉིན་གུང|དགོང་དག|མཚན་མོ/,meridiemHour:function(a,b){return 12===a&&(a=0),"མཚན་མོ"===b&&a>=4||"ཉིན་གུང"===b&&a<5||"དགོང་དག"===b?a+12:a},meridiem:function(a,b,c){return a<4?"མཚན་མོ":a<10?"ཞོགས་ཀས":a<17?"ཉིན་གུང":a<20?"དགོང་དག":"མཚན་མོ"},week:{dow:0,doy:6}}),a.defineLocale("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("_"),weekdaysParseExact:!0,longDateFormat:{LT:"h[e]mm A",LTS:"h[e]mm:ss A",L:"DD/MM/YYYY",LL:"D [a viz] MMMM YYYY",LLL:"D [a viz] MMMM YYYY h[e]mm A",LLLL:"dddd, D [a viz] MMMM YYYY h[e]mm A"},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:ud,h:"un eur",hh:"%d eur",d:"un devezh",dd:ud,M:"ur miz",MM:ud,y:"ur bloaz",yy:vd},dayOfMonthOrdinalParse:/\d{1,2}(añ|vet)/,ordinal:function(a){var b=1===a?"añ":"vet";return a+b},week:{dow:1,doy:4}}),a.defineLocale("bs",{months:"januar_februar_mart_april_maj_juni_juli_august_septembar_oktobar_novembar_decembar".split("_"),monthsShort:"jan._feb._mar._apr._maj._jun._jul._aug._sep._okt._nov._dec.".split("_"),monthsParseExact:!0,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("_"),weekdaysParseExact:!0,longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY H:mm",LLLL:"dddd, D. MMMM YYYY H:mm"},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:zd,mm:zd,h:zd,hh:zd,d:"dan",dd:zd,M:"mjesec",MM:zd,y:"godinu",yy:zd},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:7}}), -//! moment.js locale configuration -//! locale : Catalan [ca] -//! author : Juan G. Hurtado : https://github.com/juanghurtado -a.defineLocale("ca",{months:{standalone:"gener_febrer_març_abril_maig_juny_juliol_agost_setembre_octubre_novembre_desembre".split("_"),format:"de gener_de febrer_de març_d'abril_de maig_de juny_de juliol_d'agost_de setembre_d'octubre_de novembre_de desembre".split("_"),isFormat:/D[oD]?(\s)+MMMM/},monthsShort:"gen._febr._març_abr._maig_juny_jul._ag._set._oct._nov._des.".split("_"),monthsParseExact:!0,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("_"),weekdaysParseExact:!0,longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD/MM/YYYY",LL:"[el] D MMMM [de] YYYY",ll:"D MMM YYYY",LLL:"[el] D MMMM [de] YYYY [a les] H:mm",lll:"D MMM YYYY, H:mm",LLLL:"[el] dddd D MMMM [de] YYYY [a les] H:mm",llll:"ddd D MMM YYYY, H:mm"},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:"d'aquí %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"},dayOfMonthOrdinalParse:/\d{1,2}(r|n|t|è|a)/,ordinal:function(a,b){var c=1===a?"r":2===a?"n":3===a?"r":4===a?"t":"è";return"w"!==b&&"W"!==b||(c="a"),a+c},week:{dow:1,doy:4}}); -//! moment.js locale configuration -//! locale : Czech [cs] -//! author : petrbela : https://github.com/petrbela -var Pg="leden_únor_březen_duben_květen_červen_červenec_srpen_září_říjen_listopad_prosinec".split("_"),Qg="led_úno_bře_dub_kvě_čvn_čvc_srp_zář_říj_lis_pro".split("_");a.defineLocale("cs",{months:Pg,monthsShort:Qg,monthsParse:function(a,b){var c,d=[];for(c=0;c<12;c++)d[c]=new RegExp("^"+a[c]+"$|^"+b[c]+"$","i");return d}(Pg,Qg),shortMonthsParse:function(a){var b,c=[];for(b=0;b<12;b++)c[b]=new RegExp("^"+a[b]+"$","i");return c}(Qg),longMonthsParse:function(a){var b,c=[];for(b=0;b<12;b++)c[b]=new RegExp("^"+a[b]+"$","i");return c}(Pg),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",LTS:"H:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY H:mm",LLLL:"dddd D. MMMM YYYY H:mm",l:"D. M. YYYY"},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:Bd,m:Bd,mm:Bd,h:Bd,hh:Bd,d:Bd,dd:Bd,M:Bd,MM:Bd,y:Bd,yy:Bd},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}}), -//! moment.js locale configuration -//! locale : Chuvash [cv] -//! author : Anatoly Mironov : https://github.com/mirontoli -a.defineLocale("cv",{months:"кӑрлач_нарӑс_пуш_ака_май_ҫӗртме_утӑ_ҫурла_авӑн_юпа_чӳк_раштав".split("_"),monthsShort:"кӑр_нар_пуш_ака_май_ҫӗр_утӑ_ҫур_авн_юпа_чӳк_раш".split("_"),weekdays:"вырсарникун_тунтикун_ытларикун_юнкун_кӗҫнерникун_эрнекун_шӑматкун".split("_"),weekdaysShort:"выр_тун_ытл_юн_кӗҫ_эрн_шӑм".split("_"),weekdaysMin:"вр_тн_ыт_юн_кҫ_эр_шм".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD-MM-YYYY",LL:"YYYY [ҫулхи] MMMM [уйӑхӗн] D[-мӗшӗ]",LLL:"YYYY [ҫулхи] MMMM [уйӑхӗн] D[-мӗшӗ], HH:mm",LLLL:"dddd, YYYY [ҫулхи] MMMM [уйӑхӗн] D[-мӗшӗ], HH:mm"},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 ҫул"},dayOfMonthOrdinalParse:/\d{1,2}-мӗш/,ordinal:"%d-мӗш",week:{dow:1,doy:7}}), -//! moment.js locale configuration -//! locale : Welsh [cy] -//! author : Robert Allen : https://github.com/robgallen -//! author : https://github.com/ryangreaves -a.defineLocale("cy",{months:"Ionawr_Chwefror_Mawrth_Ebrill_Mai_Mehefin_Gorffennaf_Awst_Medi_Hydref_Tachwedd_Rhagfyr".split("_"),monthsShort:"Ion_Chwe_Maw_Ebr_Mai_Meh_Gor_Aws_Med_Hyd_Tach_Rhag".split("_"),weekdays:"Dydd Sul_Dydd Llun_Dydd Mawrth_Dydd Mercher_Dydd Iau_Dydd Gwener_Dydd Sadwrn".split("_"),weekdaysShort:"Sul_Llun_Maw_Mer_Iau_Gwe_Sad".split("_"),weekdaysMin:"Su_Ll_Ma_Me_Ia_Gw_Sa".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[Heddiw am] LT",nextDay:"[Yfory am] LT",nextWeek:"dddd [am] LT",lastDay:"[Ddoe am] LT",lastWeek:"dddd [diwethaf am] LT",sameElse:"L"},relativeTime:{future:"mewn %s",past:"%s yn ôl",s:"ychydig eiliadau",m:"munud",mm:"%d munud",h:"awr",hh:"%d awr",d:"diwrnod",dd:"%d diwrnod",M:"mis",MM:"%d mis",y:"blwyddyn",yy:"%d flynedd"},dayOfMonthOrdinalParse:/\d{1,2}(fed|ain|af|il|ydd|ed|eg)/,ordinal:function(a){var b=a,c="",d=["","af","il","ydd","ydd","ed","ed","ed","fed","fed","fed","eg","fed","eg","eg","fed","eg","eg","fed","eg","fed"];return b>20?c=40===b||50===b||60===b||80===b||100===b?"fed":"ain":b>0&&(c=d[b]),a+c},week:{dow:1,doy:4}}), -//! moment.js locale configuration -//! locale : Danish [da] -//! author : Ulrik Nielsen : https://github.com/mrbase -a.defineLocale("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",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY HH:mm",LLLL:"dddd [d.] D. MMMM YYYY [kl.] HH:mm"},calendar:{sameDay:"[i dag kl.] LT",nextDay:"[i morgen kl.] LT",nextWeek:"på dddd [kl.] LT",lastDay:"[i går kl.] LT",lastWeek:"[i] dddd[s 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"},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}}),a.defineLocale("de-at",{months:"Jänner_Februar_März_April_Mai_Juni_Juli_August_September_Oktober_November_Dezember".split("_"),monthsShort:"Jän._Febr._Mrz._Apr._Mai_Jun._Jul._Aug._Sept._Okt._Nov._Dez.".split("_"),monthsParseExact:!0,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("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY HH:mm",LLLL:"dddd, D. MMMM YYYY HH:mm"},calendar:{sameDay:"[heute um] LT [Uhr]",sameElse:"L",nextDay:"[morgen um] LT [Uhr]",nextWeek:"dddd [um] LT [Uhr]",lastDay:"[gestern um] LT [Uhr]",lastWeek:"[letzten] dddd [um] LT [Uhr]"},relativeTime:{future:"in %s",past:"vor %s",s:"ein paar Sekunden",m:Cd,mm:"%d Minuten",h:Cd,hh:"%d Stunden",d:Cd,dd:Cd,M:Cd,MM:Cd,y:Cd,yy:Cd},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}}),a.defineLocale("de-ch",{months:"Januar_Februar_März_April_Mai_Juni_Juli_August_September_Oktober_November_Dezember".split("_"),monthsShort:"Jan._Febr._März_April_Mai_Juni_Juli_Aug._Sept._Okt._Nov._Dez.".split("_"),monthsParseExact:!0,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("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH.mm",LTS:"HH.mm.ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY HH.mm",LLLL:"dddd, D. MMMM YYYY HH.mm"},calendar:{sameDay:"[heute um] LT [Uhr]",sameElse:"L",nextDay:"[morgen um] LT [Uhr]",nextWeek:"dddd [um] LT [Uhr]",lastDay:"[gestern um] LT [Uhr]",lastWeek:"[letzten] dddd [um] LT [Uhr]"},relativeTime:{future:"in %s",past:"vor %s",s:"ein paar Sekunden",m:Dd,mm:"%d Minuten",h:Dd,hh:"%d Stunden",d:Dd,dd:Dd,M:Dd,MM:Dd,y:Dd,yy:Dd},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}}),a.defineLocale("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("_"),monthsParseExact:!0,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("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY HH:mm",LLLL:"dddd, D. MMMM YYYY HH:mm"},calendar:{sameDay:"[heute um] LT [Uhr]",sameElse:"L",nextDay:"[morgen um] LT [Uhr]",nextWeek:"dddd [um] LT [Uhr]",lastDay:"[gestern um] LT [Uhr]",lastWeek:"[letzten] dddd [um] LT [Uhr]"},relativeTime:{future:"in %s",past:"vor %s",s:"ein paar Sekunden",m:Ed,mm:"%d Minuten",h:Ed,hh:"%d Stunden",d:Ed,dd:Ed,M:Ed,MM:Ed,y:Ed,yy:Ed},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}}); -//! moment.js locale configuration -//! locale : Maldivian [dv] -//! author : Jawish Hameed : https://github.com/jawish -var Rg=["ޖެނުއަރީ","ފެބްރުއަރީ","މާރިޗު","އޭޕްރީލު","މޭ","ޖޫން","ޖުލައި","އޯގަސްޓު","ސެޕްޓެމްބަރު","އޮކްޓޯބަރު","ނޮވެމްބަރު","ޑިސެމްބަރު"],Sg=["އާދިއްތަ","ހޯމަ","އަންގާރަ","ބުދަ","ބުރާސްފަތި","ހުކުރު","ހޮނިހިރު"];a.defineLocale("dv",{months:Rg,monthsShort:Rg,weekdays:Sg,weekdaysShort:Sg,weekdaysMin:"އާދި_ހޯމަ_އަން_ބުދަ_ބުރާ_ހުކު_ހޮނި".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"D/M/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},meridiemParse:/މކ|މފ/,isPM:function(a){return"މފ"===a},meridiem:function(a,b,c){return a<12?"މކ":"މފ"},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,",")},postformat:function(a){return a.replace(/,/g,"،")},week:{dow:7,doy:12}}), -//! moment.js locale configuration -//! locale : Greek [el] -//! author : Aggelos Karalias : https://github.com/mehiel -a.defineLocale("el",{monthsNominativeEl:"Ιανουάριος_Φεβρουάριος_Μάρτιος_Απρίλιος_Μάιος_Ιούνιος_Ιούλιος_Αύγουστος_Σεπτέμβριος_Οκτώβριος_Νοέμβριος_Δεκέμβριος".split("_"),monthsGenitiveEl:"Ιανουαρίου_Φεβρουαρίου_Μαρτίου_Απριλίου_Μαΐου_Ιουνίου_Ιουλίου_Αυγούστου_Σεπτεμβρίου_Οκτωβρίου_Νοεμβρίου_Δεκεμβρίου".split("_"),months:function(a,b){return a?/D/.test(b.substring(0,b.indexOf("MMMM")))?this._monthsGenitiveEl[a.month()]:this._monthsNominativeEl[a.month()]:this._monthsNominativeEl},monthsShort:"Ιαν_Φεβ_Μαρ_Απρ_Μαϊ_Ιουν_Ιουλ_Αυγ_Σεπ_Οκτ_Νοε_Δεκ".split("_"),weekdays:"Κυριακή_Δευτέρα_Τρίτη_Τετάρτη_Πέμπτη_Παρασκευή_Σάββατο".split("_"),weekdaysShort:"Κυρ_Δευ_Τρι_Τετ_Πεμ_Παρ_Σαβ".split("_"),weekdaysMin:"Κυ_Δε_Τρ_Τε_Πε_Πα_Σα".split("_"),meridiem:function(a,b,c){return a>11?c?"μμ":"ΜΜ":c?"πμ":"ΠΜ"},isPM:function(a){return"μ"===(a+"").toLowerCase()[0]},meridiemParse:/[ΠΜ]\.?Μ?\.?/i,longDateFormat:{LT:"h:mm A",LTS:"h:mm:ss A",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY h:mm A",LLLL:"dddd, D MMMM YYYY h:mm A"},calendarEl:{sameDay:"[Σήμερα {}] LT",nextDay:"[Αύριο {}] LT",nextWeek:"dddd [{}] LT",lastDay:"[Χθες {}] LT",lastWeek:function(){switch(this.day()){case 6:return"[το προηγούμενο] dddd [{}] LT";default:return"[την προηγούμενη] dddd [{}] LT"}},sameElse:"L"},calendar:function(a,b){var c=this._calendarEl[a],d=b&&b.hours();return z(c)&&(c=c.apply(b)),c.replace("{}",d%12===1?"στη":"στις")},relativeTime:{future:"σε %s",past:"%s πριν",s:"λίγα δευτερόλεπτα",m:"ένα λεπτό",mm:"%d λεπτά",h:"μία ώρα",hh:"%d ώρες",d:"μία μέρα",dd:"%d μέρες",M:"ένας μήνας",MM:"%d μήνες",y:"ένας χρόνος",yy:"%d χρόνια"},dayOfMonthOrdinalParse:/\d{1,2}η/,ordinal:"%dη",week:{dow:1,doy:4}}), -//! moment.js locale configuration -//! locale : English (Australia) [en-au] -//! author : Jared Morse : https://github.com/jarcoal -a.defineLocale("en-au",{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",LTS:"h:mm:ss A",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY h:mm A",LLLL:"dddd, D MMMM YYYY h:mm A"},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"},dayOfMonthOrdinalParse:/\d{1,2}(st|nd|rd|th)/,ordinal:function(a){var b=a%10,c=1===~~(a%100/10)?"th":1===b?"st":2===b?"nd":3===b?"rd":"th";return a+c},week:{dow:1,doy:4}}), -//! moment.js locale configuration -//! locale : English (Canada) [en-ca] -//! author : Jonathan Abourbih : https://github.com/jonbca -a.defineLocale("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",LTS:"h:mm:ss A",L:"YYYY-MM-DD",LL:"MMMM D, YYYY",LLL:"MMMM D, YYYY h:mm A",LLLL:"dddd, MMMM D, YYYY h:mm A"},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"},dayOfMonthOrdinalParse:/\d{1,2}(st|nd|rd|th)/,ordinal:function(a){var b=a%10,c=1===~~(a%100/10)?"th":1===b?"st":2===b?"nd":3===b?"rd":"th";return a+c}}), -//! moment.js locale configuration -//! locale : English (United Kingdom) [en-gb] -//! author : Chris Gedrim : https://github.com/chrisgedrim -a.defineLocale("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",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},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"},dayOfMonthOrdinalParse:/\d{1,2}(st|nd|rd|th)/,ordinal:function(a){var b=a%10,c=1===~~(a%100/10)?"th":1===b?"st":2===b?"nd":3===b?"rd":"th";return a+c},week:{dow:1,doy:4}}), -//! moment.js locale configuration -//! locale : English (Ireland) [en-ie] -//! author : Chris Cartlidge : https://github.com/chriscartlidge -a.defineLocale("en-ie",{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",LTS:"HH:mm:ss",L:"DD-MM-YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},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"},dayOfMonthOrdinalParse:/\d{1,2}(st|nd|rd|th)/,ordinal:function(a){var b=a%10,c=1===~~(a%100/10)?"th":1===b?"st":2===b?"nd":3===b?"rd":"th";return a+c},week:{dow:1,doy:4}}), -//! moment.js locale configuration -//! locale : English (New Zealand) [en-nz] -//! author : Luke McGregor : https://github.com/lukemcgregor -a.defineLocale("en-nz",{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",LTS:"h:mm:ss A",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY h:mm A",LLLL:"dddd, D MMMM YYYY h:mm A"},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"},dayOfMonthOrdinalParse:/\d{1,2}(st|nd|rd|th)/,ordinal:function(a){var b=a%10,c=1===~~(a%100/10)?"th":1===b?"st":2===b?"nd":3===b?"rd":"th";return a+c},week:{dow:1,doy:4}}), -//! moment.js locale configuration -//! locale : Esperanto [eo] -//! author : Colin Dean : https://github.com/colindean -//! author : Mia Nordentoft Imperatori : https://github.com/miestasmia -//! comment : miestasmia corrected the translation by colindean -a.defineLocale("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",LTS:"HH:mm:ss",L:"YYYY-MM-DD",LL:"D[-a de] MMMM, YYYY",LLL:"D[-a de] MMMM, YYYY HH:mm",LLLL:"dddd, [la] D[-a de] MMMM, YYYY HH:mm"},meridiemParse:/[ap]\.t\.m/i,isPM:function(a){return"p"===a.charAt(0).toLowerCase()},meridiem:function(a,b,c){return a>11?c?"p.t.m.":"P.T.M.":c?"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:"post %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"},dayOfMonthOrdinalParse:/\d{1,2}a/,ordinal:"%da",week:{dow:1,doy:7}}); -//! moment.js locale configuration -//! locale : Spanish (Dominican Republic) [es-do] -var Tg="ene._feb._mar._abr._may._jun._jul._ago._sep._oct._nov._dic.".split("_"),Ug="ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic".split("_");a.defineLocale("es-do",{months:"enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre".split("_"),monthsShort:function(a,b){return a?/-MMM-/.test(b)?Ug[a.month()]:Tg[a.month()]:Tg},monthsParseExact:!0,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("_"),weekdaysParseExact:!0,longDateFormat:{LT:"h:mm A",LTS:"h:mm:ss A",L:"DD/MM/YYYY",LL:"D [de] MMMM [de] YYYY",LLL:"D [de] MMMM [de] YYYY h:mm A",LLLL:"dddd, D [de] MMMM [de] YYYY h:mm A"},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"},dayOfMonthOrdinalParse:/\d{1,2}º/,ordinal:"%dº",week:{dow:1,doy:4}}); -//! moment.js locale configuration -//! locale : Spanish [es] -//! author : Julio Napurí : https://github.com/julionc -var Vg="ene._feb._mar._abr._may._jun._jul._ago._sep._oct._nov._dic.".split("_"),Wg="ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic".split("_");a.defineLocale("es",{months:"enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre".split("_"),monthsShort:function(a,b){return a?/-MMM-/.test(b)?Wg[a.month()]:Vg[a.month()]:Vg},monthsParseExact:!0,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("_"),weekdaysParseExact:!0,longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD/MM/YYYY",LL:"D [de] MMMM [de] YYYY",LLL:"D [de] MMMM [de] YYYY H:mm",LLLL:"dddd, D [de] MMMM [de] YYYY H:mm"},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"},dayOfMonthOrdinalParse:/\d{1,2}º/,ordinal:"%dº",week:{dow:1,doy:4}}),a.defineLocale("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:"P_E_T_K_N_R_L".split("_"),weekdaysMin:"P_E_T_K_N_R_L".split("_"),longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY H:mm",LLLL:"dddd, D. MMMM YYYY H:mm"},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:Fd,m:Fd,mm:Fd,h:Fd,hh:Fd,d:Fd,dd:"%d päeva",M:Fd,MM:Fd,y:Fd,yy:Fd},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}}), -//! moment.js locale configuration -//! locale : Basque [eu] -//! author : Eneko Illarramendi : https://github.com/eillarra -a.defineLocale("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("_"),monthsParseExact:!0,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("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"YYYY-MM-DD",LL:"YYYY[ko] MMMM[ren] D[a]",LLL:"YYYY[ko] MMMM[ren] D[a] HH:mm",LLLL:"dddd, YYYY[ko] MMMM[ren] D[a] HH:mm",l:"YYYY-M-D",ll:"YYYY[ko] MMM D[a]",lll:"YYYY[ko] MMM D[a] HH:mm",llll:"ddd, YYYY[ko] MMM D[a] HH:mm"},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"},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:7}}); -//! moment.js locale configuration -//! locale : Persian [fa] -//! author : Ebrahim Byagowi : https://github.com/ebraminio -var Xg={1:"۱",2:"۲",3:"۳",4:"۴",5:"۵",6:"۶",7:"۷",8:"۸",9:"۹",0:"۰"},Yg={"۱":"1","۲":"2","۳":"3","۴":"4","۵":"5","۶":"6","۷":"7","۸":"8","۹":"9","۰":"0"};a.defineLocale("fa",{months:"ژانویه_فوریه_مارس_آوریل_مه_ژوئن_ژوئیه_اوت_سپتامبر_اکتبر_نوامبر_دسامبر".split("_"),monthsShort:"ژانویه_فوریه_مارس_آوریل_مه_ژوئن_ژوئیه_اوت_سپتامبر_اکتبر_نوامبر_دسامبر".split("_"),weekdays:"یک‌شنبه_دوشنبه_سه‌شنبه_چهارشنبه_پنج‌شنبه_جمعه_شنبه".split("_"),weekdaysShort:"یک‌شنبه_دوشنبه_سه‌شنبه_چهارشنبه_پنج‌شنبه_جمعه_شنبه".split("_"),weekdaysMin:"ی_د_س_چ_پ_ج_ش".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},meridiemParse:/قبل از ظهر|بعد از ظهر/,isPM:function(a){return/بعد از ظهر/.test(a)},meridiem:function(a,b,c){return a<12?"قبل از ظهر":"بعد از ظهر"},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 Yg[a]}).replace(/،/g,",")},postformat:function(a){return a.replace(/\d/g,function(a){return Xg[a]}).replace(/,/g,"،")},dayOfMonthOrdinalParse:/\d{1,2}م/,ordinal:"%dم",week:{dow:6,doy:12}}); -//! moment.js locale configuration -//! locale : Finnish [fi] -//! author : Tarmo Aidantausta : https://github.com/bleadof -var Zg="nolla yksi kaksi kolme neljä viisi kuusi seitsemän kahdeksan yhdeksän".split(" "),$g=["nolla","yhden","kahden","kolmen","neljän","viiden","kuuden",Zg[7],Zg[8],Zg[9]];a.defineLocale("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",LTS:"HH.mm.ss",L:"DD.MM.YYYY",LL:"Do MMMM[ta] YYYY",LLL:"Do MMMM[ta] YYYY, [klo] HH.mm",LLLL:"dddd, Do MMMM[ta] YYYY, [klo] HH.mm",l:"D.M.YYYY",ll:"Do MMM YYYY",lll:"Do MMM YYYY, [klo] HH.mm",llll:"ddd, Do MMM YYYY, [klo] HH.mm"},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:Gd,m:Gd,mm:Gd,h:Gd,hh:Gd,d:Gd,dd:Gd,M:Gd,MM:Gd,y:Gd,yy:Gd},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}}), -//! moment.js locale configuration -//! locale : Faroese [fo] -//! author : Ragnar Johannesen : https://github.com/ragnar123 -a.defineLocale("fo",{months:"januar_februar_mars_apríl_mai_juni_juli_august_september_oktober_november_desember".split("_"),monthsShort:"jan_feb_mar_apr_mai_jun_jul_aug_sep_okt_nov_des".split("_"),weekdays:"sunnudagur_mánadagur_týsdagur_mikudagur_hósdagur_fríggjadagur_leygardagur".split("_"),weekdaysShort:"sun_mán_týs_mik_hós_frí_ley".split("_"),weekdaysMin:"su_má_tý_mi_hó_fr_le".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D. MMMM, YYYY HH:mm"},calendar:{sameDay:"[Í dag kl.] LT",nextDay:"[Í morgin kl.] LT",nextWeek:"dddd [kl.] LT",lastDay:"[Í gjár kl.] LT",lastWeek:"[síðstu] dddd [kl] LT",sameElse:"L"},relativeTime:{future:"um %s",past:"%s síðani",s:"fá sekund",m:"ein minutt",mm:"%d minuttir",h:"ein tími",hh:"%d tímar",d:"ein dagur",dd:"%d dagar",M:"ein mánaði",MM:"%d mánaðir",y:"eitt ár",yy:"%d ár"},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}}), -//! moment.js locale configuration -//! locale : French (Canada) [fr-ca] -//! author : Jonathan Abourbih : https://github.com/jonbca -a.defineLocale("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("_"),monthsParseExact:!0,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("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"YYYY-MM-DD",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},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"},dayOfMonthOrdinalParse:/\d{1,2}(er|e)/,ordinal:function(a,b){switch(b){default:case"M":case"Q":case"D":case"DDD":case"d":return a+(1===a?"er":"e");case"w":case"W":return a+(1===a?"re":"e")}}}), -//! moment.js locale configuration -//! locale : French (Switzerland) [fr-ch] -//! author : Gaspard Bucher : https://github.com/gaspard -a.defineLocale("fr-ch",{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("_"),monthsParseExact:!0,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("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},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"},dayOfMonthOrdinalParse:/\d{1,2}(er|e)/,ordinal:function(a,b){switch(b){default:case"M":case"Q":case"D":case"DDD":case"d":return a+(1===a?"er":"e");case"w":case"W":return a+(1===a?"re":"e")}},week:{dow:1,doy:4}}), -//! moment.js locale configuration -//! locale : French [fr] -//! author : John Fischer : https://github.com/jfroffice -a.defineLocale("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("_"),monthsParseExact:!0,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("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},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"},dayOfMonthOrdinalParse:/\d{1,2}(er|)/,ordinal:function(a,b){switch(b){case"D":return a+(1===a?"er":"");default:case"M":case"Q":case"DDD":case"d":return a+(1===a?"er":"e");case"w":case"W":return a+(1===a?"re":"e")}},week:{dow:1,doy:4}}); -//! moment.js locale configuration -//! locale : Frisian [fy] -//! author : Robin van der Vliet : https://github.com/robin0van0der0v -var _g="jan._feb._mrt._apr._mai_jun._jul._aug._sep._okt._nov._des.".split("_"),ah="jan_feb_mrt_apr_mai_jun_jul_aug_sep_okt_nov_des".split("_");a.defineLocale("fy",{months:"jannewaris_febrewaris_maart_april_maaie_juny_july_augustus_septimber_oktober_novimber_desimber".split("_"),monthsShort:function(a,b){return a?/-MMM-/.test(b)?ah[a.month()]:_g[a.month()]:_g},monthsParseExact:!0,weekdays:"snein_moandei_tiisdei_woansdei_tongersdei_freed_sneon".split("_"),weekdaysShort:"si._mo._ti._wo._to._fr._so.".split("_"),weekdaysMin:"Si_Mo_Ti_Wo_To_Fr_So".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD-MM-YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[hjoed om] LT",nextDay:"[moarn om] LT",nextWeek:"dddd [om] LT",lastDay:"[juster om] LT",lastWeek:"[ôfrûne] dddd [om] LT",sameElse:"L"},relativeTime:{future:"oer %s",past:"%s lyn",s:"in pear sekonden",m:"ien minút",mm:"%d minuten",h:"ien oere",hh:"%d oeren",d:"ien dei",dd:"%d dagen",M:"ien moanne",MM:"%d moannen",y:"ien jier",yy:"%d jierren"},dayOfMonthOrdinalParse:/\d{1,2}(ste|de)/,ordinal:function(a){return a+(1===a||8===a||a>=20?"ste":"de")},week:{dow:1,doy:4}}); -//! moment.js locale configuration -//! locale : Scottish Gaelic [gd] -//! author : Jon Ashdown : https://github.com/jonashdown -var bh=["Am Faoilleach","An Gearran","Am Màrt","An Giblean","An Cèitean","An t-Ògmhios","An t-Iuchar","An Lùnastal","An t-Sultain","An Dàmhair","An t-Samhain","An Dùbhlachd"],ch=["Faoi","Gear","Màrt","Gibl","Cèit","Ògmh","Iuch","Lùn","Sult","Dàmh","Samh","Dùbh"],dh=["Didòmhnaich","Diluain","Dimàirt","Diciadain","Diardaoin","Dihaoine","Disathairne"],eh=["Did","Dil","Dim","Dic","Dia","Dih","Dis"],fh=["Dò","Lu","Mà","Ci","Ar","Ha","Sa"];a.defineLocale("gd",{months:bh,monthsShort:ch,monthsParseExact:!0,weekdays:dh,weekdaysShort:eh,weekdaysMin:fh,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[An-diugh aig] LT",nextDay:"[A-màireach aig] LT",nextWeek:"dddd [aig] LT",lastDay:"[An-dè aig] LT",lastWeek:"dddd [seo chaidh] [aig] LT",sameElse:"L"},relativeTime:{future:"ann an %s",past:"bho chionn %s",s:"beagan diogan",m:"mionaid",mm:"%d mionaidean",h:"uair",hh:"%d uairean",d:"latha",dd:"%d latha",M:"mìos",MM:"%d mìosan",y:"bliadhna",yy:"%d bliadhna"},dayOfMonthOrdinalParse:/\d{1,2}(d|na|mh)/,ordinal:function(a){var b=1===a?"d":a%10===2?"na":"mh";return a+b},week:{dow:1,doy:4}}), -//! moment.js locale configuration -//! locale : Galician [gl] -//! author : Juan G. Hurtado : https://github.com/juanghurtado -a.defineLocale("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("_"),monthsParseExact:!0,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("_"),weekdaysParseExact:!0,longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD/MM/YYYY",LL:"D [de] MMMM [de] YYYY",LLL:"D [de] MMMM [de] YYYY H:mm",LLLL:"dddd, D [de] MMMM [de] YYYY H:mm"},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 0===a.indexOf("un")?"n"+a:"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"},dayOfMonthOrdinalParse:/\d{1,2}º/,ordinal:"%dº",week:{dow:1,doy:4}}),a.defineLocale("gom-latn",{months:"Janer_Febrer_Mars_Abril_Mai_Jun_Julai_Agost_Setembr_Otubr_Novembr_Dezembr".split("_"),monthsShort:"Jan._Feb._Mars_Abr._Mai_Jun_Jul._Ago._Set._Otu._Nov._Dez.".split("_"),monthsParseExact:!0,weekdays:"Aitar_Somar_Mongllar_Budvar_Brestar_Sukrar_Son'var".split("_"),weekdaysShort:"Ait._Som._Mon._Bud._Bre._Suk._Son.".split("_"),weekdaysMin:"Ai_Sm_Mo_Bu_Br_Su_Sn".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"A h:mm [vazta]",LTS:"A h:mm:ss [vazta]",L:"DD-MM-YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY A h:mm [vazta]",LLLL:"dddd, MMMM[achea] Do, YYYY, A h:mm [vazta]",llll:"ddd, D MMM YYYY, A h:mm [vazta]"},calendar:{sameDay:"[Aiz] LT",nextDay:"[Faleam] LT",nextWeek:"[Ieta to] dddd[,] LT",lastDay:"[Kal] LT",lastWeek:"[Fatlo] dddd[,] LT",sameElse:"L"},relativeTime:{future:"%s",past:"%s adim",s:Id,m:Id,mm:Id,h:Id,hh:Id,d:Id,dd:Id,M:Id,MM:Id,y:Id,yy:Id},dayOfMonthOrdinalParse:/\d{1,2}(er)/,ordinal:function(a,b){switch(b){case"D":return a+"er";default:case"M":case"Q":case"DDD":case"d":case"w":case"W":return a}},week:{dow:1,doy:4},meridiemParse:/rati|sokalli|donparam|sanje/,meridiemHour:function(a,b){return 12===a&&(a=0),"rati"===b?a<4?a:a+12:"sokalli"===b?a:"donparam"===b?a>12?a:a+12:"sanje"===b?a+12:void 0},meridiem:function(a,b,c){return a<4?"rati":a<12?"sokalli":a<16?"donparam":a<20?"sanje":"rati"}}), -//! moment.js locale configuration -//! locale : Hebrew [he] -//! author : Tomer Cohen : https://github.com/tomer -//! author : Moshe Simantov : https://github.com/DevelopmentIL -//! author : Tal Ater : https://github.com/TalAter -a.defineLocale("he",{months:"ינואר_פברואר_מרץ_אפריל_מאי_יוני_יולי_אוגוסט_ספטמבר_אוקטובר_נובמבר_דצמבר".split("_"),monthsShort:"ינו׳_פבר׳_מרץ_אפר׳_מאי_יוני_יולי_אוג׳_ספט׳_אוק׳_נוב׳_דצמ׳".split("_"),weekdays:"ראשון_שני_שלישי_רביעי_חמישי_שישי_שבת".split("_"),weekdaysShort:"א׳_ב׳_ג׳_ד׳_ה׳_ו׳_ש׳".split("_"),weekdaysMin:"א_ב_ג_ד_ה_ו_ש".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D [ב]MMMM YYYY",LLL:"D [ב]MMMM YYYY HH:mm",LLLL:"dddd, D [ב]MMMM YYYY HH:mm",l:"D/M/YYYY",ll:"D MMM YYYY",lll:"D MMM YYYY HH:mm",llll:"ddd, D MMM YYYY HH:mm"},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%10===0&&10!==a?a+" שנה":a+" שנים"}},meridiemParse:/אחה"צ|לפנה"צ|אחרי הצהריים|לפני הצהריים|לפנות בוקר|בבוקר|בערב/i,isPM:function(a){return/^(אחה"צ|אחרי הצהריים|בערב)$/.test(a)},meridiem:function(a,b,c){return a<5?"לפנות בוקר":a<10?"בבוקר":a<12?c?'לפנה"צ':"לפני הצהריים":a<18?c?'אחה"צ':"אחרי הצהריים":"בערב"}}); -//! moment.js locale configuration -//! locale : Hindi [hi] -//! author : Mayank Singhal : https://github.com/mayanksinghal -var gh={1:"१",2:"२",3:"३",4:"४",5:"५",6:"६",7:"७",8:"८",9:"९",0:"०"},hh={"१":"1","२":"2","३":"3","४":"4","५":"5","६":"6","७":"7","८":"8","९":"9","०":"0"};a.defineLocale("hi",{months:"जनवरी_फ़रवरी_मार्च_अप्रैल_मई_जून_जुलाई_अगस्त_सितम्बर_अक्टूबर_नवम्बर_दिसम्बर".split("_"),monthsShort:"जन._फ़र._मार्च_अप्रै._मई_जून_जुल._अग._सित._अक्टू._नव._दिस.".split("_"),monthsParseExact:!0,weekdays:"रविवार_सोमवार_मंगलवार_बुधवार_गुरूवार_शुक्रवार_शनिवार".split("_"),weekdaysShort:"रवि_सोम_मंगल_बुध_गुरू_शुक्र_शनि".split("_"),weekdaysMin:"र_सो_मं_बु_गु_शु_श".split("_"),longDateFormat:{LT:"A h:mm बजे",LTS:"A h:mm:ss बजे",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY, A h:mm बजे",LLLL:"dddd, D MMMM YYYY, A h:mm बजे"},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 hh[a]})},postformat:function(a){return a.replace(/\d/g,function(a){return gh[a]})},meridiemParse:/रात|सुबह|दोपहर|शाम/,meridiemHour:function(a,b){return 12===a&&(a=0),"रात"===b?a<4?a:a+12:"सुबह"===b?a:"दोपहर"===b?a>=10?a:a+12:"शाम"===b?a+12:void 0},meridiem:function(a,b,c){return a<4?"रात":a<10?"सुबह":a<17?"दोपहर":a<20?"शाम":"रात"},week:{dow:0,doy:6}}),a.defineLocale("hr",{months:{format:"siječnja_veljače_ožujka_travnja_svibnja_lipnja_srpnja_kolovoza_rujna_listopada_studenoga_prosinca".split("_"),standalone:"siječanj_veljača_ožujak_travanj_svibanj_lipanj_srpanj_kolovoz_rujan_listopad_studeni_prosinac".split("_")},monthsShort:"sij._velj._ožu._tra._svi._lip._srp._kol._ruj._lis._stu._pro.".split("_"),monthsParseExact:!0,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("_"),weekdaysParseExact:!0,longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY H:mm",LLLL:"dddd, D. MMMM YYYY H:mm"},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:Jd,mm:Jd,h:Jd,hh:Jd,d:"dan",dd:Jd,M:"mjesec",MM:Jd,y:"godinu",yy:Jd},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:7}}); -//! moment.js locale configuration -//! locale : Hungarian [hu] -//! author : Adam Brunner : https://github.com/adambrunner -var ih="vasárnap hétfőn kedden szerdán csütörtökön pénteken szombaton".split(" ");a.defineLocale("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:"vas_hét_kedd_sze_csüt_pén_szo".split("_"),weekdaysMin:"v_h_k_sze_cs_p_szo".split("_"),longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"YYYY.MM.DD.",LL:"YYYY. MMMM D.",LLL:"YYYY. MMMM D. H:mm",LLLL:"YYYY. MMMM D., dddd H:mm"},meridiemParse:/de|du/i,isPM:function(a){return"u"===a.charAt(1).toLowerCase()},meridiem:function(a,b,c){return a<12?c===!0?"de":"DE":c===!0?"du":"DU"},calendar:{sameDay:"[ma] LT[-kor]",nextDay:"[holnap] LT[-kor]",nextWeek:function(){return Ld.call(this,!0)},lastDay:"[tegnap] LT[-kor]",lastWeek:function(){return Ld.call(this,!1)},sameElse:"L"},relativeTime:{future:"%s múlva",past:"%s",s:Kd,m:Kd,mm:Kd,h:Kd,hh:Kd,d:Kd,dd:Kd,M:Kd,MM:Kd,y:Kd,yy:Kd},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}}), -//! moment.js locale configuration -//! locale : Armenian [hy-am] -//! author : Armendarabyan : https://github.com/armendarabyan -a.defineLocale("hy-am",{months:{format:"հունվարի_փետրվարի_մարտի_ապրիլի_մայիսի_հունիսի_հուլիսի_օգոստոսի_սեպտեմբերի_հոկտեմբերի_նոյեմբերի_դեկտեմբերի".split("_"),standalone:"հունվար_փետրվար_մարտ_ապրիլ_մայիս_հունիս_հուլիս_օգոստոս_սեպտեմբեր_հոկտեմբեր_նոյեմբեր_դեկտեմբեր".split("_")},monthsShort:"հնվ_փտր_մրտ_ապր_մյս_հնս_հլս_օգս_սպտ_հկտ_նմբ_դկտ".split("_"),weekdays:"կիրակի_երկուշաբթի_երեքշաբթի_չորեքշաբթի_հինգշաբթի_ուրբաթ_շաբաթ".split("_"),weekdaysShort:"կրկ_երկ_երք_չրք_հնգ_ուրբ_շբթ".split("_"),weekdaysMin:"կրկ_երկ_երք_չրք_հնգ_ուրբ_շբթ".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY թ.",LLL:"D MMMM YYYY թ., HH:mm",LLLL:"dddd, D MMMM YYYY թ., HH:mm"},calendar:{sameDay:"[այսօր] LT",nextDay:"[վաղը] LT",lastDay:"[երեկ] LT",nextWeek:function(){return"dddd [օրը ժամը] LT"},lastWeek:function(){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 տարի"},meridiemParse:/գիշերվա|առավոտվա|ցերեկվա|երեկոյան/,isPM:function(a){return/^(ցերեկվա|երեկոյան)$/.test(a)},meridiem:function(a){return a<4?"գիշերվա":a<12?"առավոտվա":a<17?"ցերեկվա":"երեկոյան"},dayOfMonthOrdinalParse:/\d{1,2}|\d{1,2}-(ին|րդ)/,ordinal:function(a,b){switch(b){case"DDD":case"w":case"W":case"DDDo":return 1===a?a+"-ին":a+"-րդ";default:return a}},week:{dow:1,doy:7}}), -//! moment.js locale configuration -//! locale : Indonesian [id] -//! author : Mohammad Satrio Utomo : https://github.com/tyok -//! reference: http://id.wikisource.org/wiki/Pedoman_Umum_Ejaan_Bahasa_Indonesia_yang_Disempurnakan -a.defineLocale("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",LTS:"HH.mm.ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY [pukul] HH.mm",LLLL:"dddd, D MMMM YYYY [pukul] HH.mm"},meridiemParse:/pagi|siang|sore|malam/,meridiemHour:function(a,b){return 12===a&&(a=0),"pagi"===b?a:"siang"===b?a>=11?a:a+12:"sore"===b||"malam"===b?a+12:void 0},meridiem:function(a,b,c){return a<11?"pagi":a<15?"siang":a<19?"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}}),a.defineLocale("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",LTS:"H:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY [kl.] H:mm",LLLL:"dddd, D. MMMM YYYY [kl.] H:mm"},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:Nd,m:Nd,mm:Nd,h:"klukkustund",hh:Nd,d:Nd,dd:Nd,M:Nd,MM:Nd,y:Nd,yy:Nd},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}}), -//! moment.js locale configuration -//! locale : Italian [it] -//! author : Lorenzo : https://github.com/aliem -//! author: Mattia Larentis: https://github.com/nostalgiaz -a.defineLocale("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:"do_lu_ma_me_gi_ve_sa".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[Oggi alle] LT",nextDay:"[Domani alle] LT",nextWeek:"dddd [alle] LT",lastDay:"[Ieri alle] LT",lastWeek:function(){switch(this.day()){case 0:return"[la scorsa] dddd [alle] LT";default:return"[lo scorso] dddd [alle] LT"}},sameElse:"L"},relativeTime:{future:function(a){return(/^[0-9].+$/.test(a)?"tra":"in")+" "+a},past:"%s fa",s:"alcuni 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"},dayOfMonthOrdinalParse:/\d{1,2}º/,ordinal:"%dº",week:{dow:1,doy:4}}), -//! moment.js locale configuration -//! locale : Japanese [ja] -//! author : LI Long : https://github.com/baryon -a.defineLocale("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:"HH:mm",LTS:"HH:mm:ss",L:"YYYY/MM/DD",LL:"YYYY年M月D日",LLL:"YYYY年M月D日 HH:mm",LLLL:"YYYY年M月D日 HH:mm dddd",l:"YYYY/MM/DD",ll:"YYYY年M月D日",lll:"YYYY年M月D日 HH:mm",llll:"YYYY年M月D日 HH:mm dddd"},meridiemParse:/午前|午後/i,isPM:function(a){return"午後"===a},meridiem:function(a,b,c){return a<12?"午前":"午後"},calendar:{sameDay:"[今日] LT",nextDay:"[明日] LT",nextWeek:"[来週]dddd LT",lastDay:"[昨日] LT",lastWeek:"[前週]dddd LT",sameElse:"L"},dayOfMonthOrdinalParse:/\d{1,2}日/,ordinal:function(a,b){switch(b){case"d":case"D":case"DDD":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年"}}), -//! moment.js locale configuration -//! locale : Javanese [jv] -//! author : Rony Lantip : https://github.com/lantip -//! reference: http://jv.wikipedia.org/wiki/Basa_Jawa -a.defineLocale("jv",{months:"Januari_Februari_Maret_April_Mei_Juni_Juli_Agustus_September_Oktober_Nopember_Desember".split("_"),monthsShort:"Jan_Feb_Mar_Apr_Mei_Jun_Jul_Ags_Sep_Okt_Nop_Des".split("_"),weekdays:"Minggu_Senen_Seloso_Rebu_Kemis_Jemuwah_Septu".split("_"),weekdaysShort:"Min_Sen_Sel_Reb_Kem_Jem_Sep".split("_"),weekdaysMin:"Mg_Sn_Sl_Rb_Km_Jm_Sp".split("_"),longDateFormat:{LT:"HH.mm",LTS:"HH.mm.ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY [pukul] HH.mm",LLLL:"dddd, D MMMM YYYY [pukul] HH.mm"},meridiemParse:/enjing|siyang|sonten|ndalu/,meridiemHour:function(a,b){return 12===a&&(a=0),"enjing"===b?a:"siyang"===b?a>=11?a:a+12:"sonten"===b||"ndalu"===b?a+12:void 0},meridiem:function(a,b,c){return a<11?"enjing":a<15?"siyang":a<19?"sonten":"ndalu"},calendar:{sameDay:"[Dinten puniko pukul] LT",nextDay:"[Mbenjang pukul] LT",nextWeek:"dddd [pukul] LT",lastDay:"[Kala wingi pukul] LT",lastWeek:"dddd [kepengker pukul] LT",sameElse:"L"},relativeTime:{future:"wonten ing %s",past:"%s ingkang kepengker",s:"sawetawis detik",m:"setunggal menit",mm:"%d menit",h:"setunggal jam",hh:"%d jam",d:"sedinten",dd:"%d dinten",M:"sewulan",MM:"%d wulan",y:"setaun",yy:"%d taun"},week:{dow:1,doy:7}}), -//! moment.js locale configuration -//! locale : Georgian [ka] -//! author : Irakli Janiashvili : https://github.com/irakli-janiashvili -a.defineLocale("ka",{months:{standalone:"იანვარი_თებერვალი_მარტი_აპრილი_მაისი_ივნისი_ივლისი_აგვისტო_სექტემბერი_ოქტომბერი_ნოემბერი_დეკემბერი".split("_"),format:"იანვარს_თებერვალს_მარტს_აპრილის_მაისს_ივნისს_ივლისს_აგვისტს_სექტემბერს_ოქტომბერს_ნოემბერს_დეკემბერს".split("_")},monthsShort:"იან_თებ_მარ_აპრ_მაი_ივნ_ივლ_აგვ_სექ_ოქტ_ნოე_დეკ".split("_"),weekdays:{standalone:"კვირა_ორშაბათი_სამშაბათი_ოთხშაბათი_ხუთშაბათი_პარასკევი_შაბათი".split("_"),format:"კვირას_ორშაბათს_სამშაბათს_ოთხშაბათს_ხუთშაბათს_პარასკევს_შაბათს".split("_"),isFormat:/(წინა|შემდეგ)/},weekdaysShort:"კვი_ორშ_სამ_ოთხ_ხუთ_პარ_შაბ".split("_"),weekdaysMin:"კვ_ორ_სა_ოთ_ხუ_პა_შა".split("_"),longDateFormat:{LT:"h:mm A",LTS:"h:mm:ss A",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY h:mm A",LLLL:"dddd, D MMMM YYYY h:mm A"},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){return/(წამი|წუთი|საათი|დღე|თვე)/.test(a)?a.replace(/(ი|ე)$/,"ის უკან"):/წელი/.test(a)?a.replace(/წელი$/,"წლის უკან"):void 0},s:"რამდენიმე წამი",m:"წუთი",mm:"%d წუთი",h:"საათი",hh:"%d საათი",d:"დღე",dd:"%d დღე",M:"თვე",MM:"%d თვე",y:"წელი",yy:"%d წელი"},dayOfMonthOrdinalParse:/0|1-ლი|მე-\d{1,2}|\d{1,2}-ე/,ordinal:function(a){return 0===a?a:1===a?a+"-ლი":a<20||a<=100&&a%20===0||a%100===0?"მე-"+a:a+"-ე"},week:{dow:1,doy:7}}); -//! moment.js locale configuration -//! locale : Kazakh [kk] -//! authors : Nurlan Rakhimzhanov : https://github.com/nurlan -var jh={0:"-ші",1:"-ші",2:"-ші",3:"-ші",4:"-ші",5:"-ші",6:"-шы",7:"-ші",8:"-ші",9:"-шы",10:"-шы",20:"-шы",30:"-шы",40:"-шы",50:"-ші",60:"-шы",70:"-ші",80:"-ші",90:"-шы",100:"-ші"};a.defineLocale("kk",{months:"қаңтар_ақпан_наурыз_сәуір_мамыр_маусым_шілде_тамыз_қыркүйек_қазан_қараша_желтоқсан".split("_"),monthsShort:"қаң_ақп_нау_сәу_мам_мау_шіл_там_қыр_қаз_қар_жел".split("_"),weekdays:"жексенбі_дүйсенбі_сейсенбі_сәрсенбі_бейсенбі_жұма_сенбі".split("_"),weekdaysShort:"жек_дүй_сей_сәр_бей_жұм_сен".split("_"),weekdaysMin:"жк_дй_сй_ср_бй_жм_сн".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},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 жыл"},dayOfMonthOrdinalParse:/\d{1,2}-(ші|шы)/,ordinal:function(a){var b=a%10,c=a>=100?100:null;return a+(jh[a]||jh[b]||jh[c])},week:{dow:1,doy:7}}), -//! moment.js locale configuration -//! locale : Cambodian [km] -//! author : Kruy Vanna : https://github.com/kruyvanna -a.defineLocale("km",{months:"មករា_កុម្ភៈ_មីនា_មេសា_ឧសភា_មិថុនា_កក្កដា_សីហា_កញ្ញា_តុលា_វិច្ឆិកា_ធ្នូ".split("_"),monthsShort:"មករា_កុម្ភៈ_មីនា_មេសា_ឧសភា_មិថុនា_កក្កដា_សីហា_កញ្ញា_តុលា_វិច្ឆិកា_ធ្នូ".split("_"),weekdays:"អាទិត្យ_ច័ន្ទ_អង្គារ_ពុធ_ព្រហស្បតិ៍_សុក្រ_សៅរ៍".split("_"),weekdaysShort:"អាទិត្យ_ច័ន្ទ_អង្គារ_ពុធ_ព្រហស្បតិ៍_សុក្រ_សៅរ៍".split("_"),weekdaysMin:"អាទិត្យ_ច័ន្ទ_អង្គារ_ពុធ_ព្រហស្បតិ៍_សុក្រ_សៅរ៍".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},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:4}}); -//! moment.js locale configuration -//! locale : Kannada [kn] -//! author : Rajeev Naik : https://github.com/rajeevnaikte -var kh={1:"೧",2:"೨",3:"೩",4:"೪",5:"೫",6:"೬",7:"೭",8:"೮",9:"೯",0:"೦"},lh={"೧":"1","೨":"2","೩":"3","೪":"4","೫":"5","೬":"6","೭":"7","೮":"8","೯":"9","೦":"0"};a.defineLocale("kn",{months:"ಜನವರಿ_ಫೆಬ್ರವರಿ_ಮಾರ್ಚ್_ಏಪ್ರಿಲ್_ಮೇ_ಜೂನ್_ಜುಲೈ_ಆಗಸ್ಟ್_ಸೆಪ್ಟೆಂಬರ್_ಅಕ್ಟೋಬರ್_ನವೆಂಬರ್_ಡಿಸೆಂಬರ್".split("_"),monthsShort:"ಜನ_ಫೆಬ್ರ_ಮಾರ್ಚ್_ಏಪ್ರಿಲ್_ಮೇ_ಜೂನ್_ಜುಲೈ_ಆಗಸ್ಟ್_ಸೆಪ್ಟೆಂಬ_ಅಕ್ಟೋಬ_ನವೆಂಬ_ಡಿಸೆಂಬ".split("_"),monthsParseExact:!0,weekdays:"ಭಾನುವಾರ_ಸೋಮವಾರ_ಮಂಗಳವಾರ_ಬುಧವಾರ_ಗುರುವಾರ_ಶುಕ್ರವಾರ_ಶನಿವಾರ".split("_"),weekdaysShort:"ಭಾನು_ಸೋಮ_ಮಂಗಳ_ಬುಧ_ಗುರು_ಶುಕ್ರ_ಶನಿ".split("_"),weekdaysMin:"ಭಾ_ಸೋ_ಮಂ_ಬು_ಗು_ಶು_ಶ".split("_"),longDateFormat:{LT:"A h:mm",LTS:"A h:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY, A h:mm",LLLL:"dddd, D MMMM YYYY, A h:mm"},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 lh[a]})},postformat:function(a){return a.replace(/\d/g,function(a){return kh[a]})},meridiemParse:/ರಾತ್ರಿ|ಬೆಳಿಗ್ಗೆ|ಮಧ್ಯಾಹ್ನ|ಸಂಜೆ/,meridiemHour:function(a,b){return 12===a&&(a=0),"ರಾತ್ರಿ"===b?a<4?a:a+12:"ಬೆಳಿಗ್ಗೆ"===b?a:"ಮಧ್ಯಾಹ್ನ"===b?a>=10?a:a+12:"ಸಂಜೆ"===b?a+12:void 0},meridiem:function(a,b,c){return a<4?"ರಾತ್ರಿ":a<10?"ಬೆಳಿಗ್ಗೆ":a<17?"ಮಧ್ಯಾಹ್ನ":a<20?"ಸಂಜೆ":"ರಾತ್ರಿ"},dayOfMonthOrdinalParse:/\d{1,2}(ನೇ)/,ordinal:function(a){return a+"ನೇ"},week:{dow:0,doy:6}}), -//! moment.js locale configuration -//! locale : Korean [ko] -//! author : Kyungwook, Park : https://github.com/kyungw00k -//! author : Jeeeyul Lee <jeeeyul@gmail.com> -a.defineLocale("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",LTS:"A h:mm:ss",L:"YYYY.MM.DD",LL:"YYYY년 MMMM D일",LLL:"YYYY년 MMMM D일 A h:mm",LLLL:"YYYY년 MMMM D일 dddd A h:mm",l:"YYYY.MM.DD",ll:"YYYY년 MMMM D일",lll:"YYYY년 MMMM D일 A h:mm",llll:"YYYY년 MMMM D일 dddd A h:mm"},calendar:{sameDay:"오늘 LT",nextDay:"내일 LT",nextWeek:"dddd LT",lastDay:"어제 LT",lastWeek:"지난주 dddd LT",sameElse:"L"},relativeTime:{future:"%s 후",past:"%s 전",s:"몇 초",ss:"%d초",m:"1분",mm:"%d분",h:"한 시간",hh:"%d시간",d:"하루",dd:"%d일",M:"한 달",MM:"%d달",y:"일 년",yy:"%d년"},dayOfMonthOrdinalParse:/\d{1,2}일/,ordinal:"%d일",meridiemParse:/오전|오후/,isPM:function(a){return"오후"===a},meridiem:function(a,b,c){return a<12?"오전":"오후"}}); -//! moment.js locale configuration -//! locale : Kyrgyz [ky] -//! author : Chyngyz Arystan uulu : https://github.com/chyngyz -var mh={0:"-чү",1:"-чи",2:"-чи",3:"-чү",4:"-чү",5:"-чи",6:"-чы",7:"-чи",8:"-чи",9:"-чу",10:"-чу",20:"-чы",30:"-чу",40:"-чы",50:"-чү",60:"-чы",70:"-чи",80:"-чи",90:"-чу",100:"-чү"};a.defineLocale("ky",{months:"январь_февраль_март_апрель_май_июнь_июль_август_сентябрь_октябрь_ноябрь_декабрь".split("_"),monthsShort:"янв_фев_март_апр_май_июнь_июль_авг_сен_окт_ноя_дек".split("_"),weekdays:"Жекшемби_Дүйшөмбү_Шейшемби_Шаршемби_Бейшемби_Жума_Ишемби".split("_"),weekdaysShort:"Жек_Дүй_Шей_Шар_Бей_Жум_Ише".split("_"),weekdaysMin:"Жк_Дй_Шй_Шр_Бй_Жм_Иш".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},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 жыл"},dayOfMonthOrdinalParse:/\d{1,2}-(чи|чы|чү|чу)/,ordinal:function(a){var b=a%10,c=a>=100?100:null;return a+(mh[a]||mh[b]||mh[c])},week:{dow:1,doy:7}}),a.defineLocale("lb",{months:"Januar_Februar_Mäerz_Abrëll_Mee_Juni_Juli_August_September_Oktober_November_Dezember".split("_"),monthsShort:"Jan._Febr._Mrz._Abr._Mee_Jun._Jul._Aug._Sept._Okt._Nov._Dez.".split("_"),monthsParseExact:!0,weekdays:"Sonndeg_Méindeg_Dënschdeg_Mëttwoch_Donneschdeg_Freideg_Samschdeg".split("_"),weekdaysShort:"So._Mé._Dë._Më._Do._Fr._Sa.".split("_"),weekdaysMin:"So_Mé_Dë_Më_Do_Fr_Sa".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"H:mm [Auer]",LTS:"H:mm:ss [Auer]",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY H:mm [Auer]",LLLL:"dddd, D. MMMM YYYY H:mm [Auer]"},calendar:{sameDay:"[Haut um] LT",sameElse:"L",nextDay:"[Muer um] LT",nextWeek:"dddd [um] LT",lastDay:"[Gëschter um] LT",lastWeek:function(){switch(this.day()){case 2:case 4:return"[Leschten] dddd [um] LT";default:return"[Leschte] dddd [um] LT"}}},relativeTime:{future:Pd,past:Qd,s:"e puer Sekonnen",m:Od,mm:"%d Minutten",h:Od,hh:"%d Stonnen",d:Od,dd:"%d Deeg",M:Od,MM:"%d Méint",y:Od,yy:"%d Joer"},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}}), -//! moment.js locale configuration -//! locale : Lao [lo] -//! author : Ryan Hart : https://github.com/ryanhart2 -a.defineLocale("lo",{months:"ມັງກອນ_ກຸມພາ_ມີນາ_ເມສາ_ພຶດສະພາ_ມິຖຸນາ_ກໍລະກົດ_ສິງຫາ_ກັນຍາ_ຕຸລາ_ພະຈິກ_ທັນວາ".split("_"),monthsShort:"ມັງກອນ_ກຸມພາ_ມີນາ_ເມສາ_ພຶດສະພາ_ມິຖຸນາ_ກໍລະກົດ_ສິງຫາ_ກັນຍາ_ຕຸລາ_ພະຈິກ_ທັນວາ".split("_"),weekdays:"ອາທິດ_ຈັນ_ອັງຄານ_ພຸດ_ພະຫັດ_ສຸກ_ເສົາ".split("_"),weekdaysShort:"ທິດ_ຈັນ_ອັງຄານ_ພຸດ_ພະຫັດ_ສຸກ_ເສົາ".split("_"),weekdaysMin:"ທ_ຈ_ອຄ_ພ_ພຫ_ສກ_ສ".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"ວັນdddd D MMMM YYYY HH:mm"},meridiemParse:/ຕອນເຊົ້າ|ຕອນແລງ/,isPM:function(a){return"ຕອນແລງ"===a},meridiem:function(a,b,c){return a<12?"ຕອນເຊົ້າ":"ຕອນແລງ"},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 ປີ"},dayOfMonthOrdinalParse:/(ທີ່)\d{1,2}/,ordinal:function(a){return"ທີ່"+a}}); -//! moment.js locale configuration -//! locale : Lithuanian [lt] -//! author : Mindaugas Mozūras : https://github.com/mmozuras -var nh={m:"minutė_minutės_minutę",mm:"minutės_minučių_minutes",h:"valanda_valandos_valandą",hh:"valandos_valandų_valandas",d:"diena_dienos_dieną",dd:"dienos_dienų_dienas",M:"mėnuo_mėnesio_mėnesį",MM:"mėnesiai_mėnesių_mėnesius",y:"metai_metų_metus",yy:"metai_metų_metus"};a.defineLocale("lt",{months:{format:"sausio_vasario_kovo_balandžio_gegužės_birželio_liepos_rugpjūčio_rugsėjo_spalio_lapkričio_gruodžio".split("_"),standalone:"sausis_vasaris_kovas_balandis_gegužė_birželis_liepa_rugpjūtis_rugsėjis_spalis_lapkritis_gruodis".split("_"),isFormat:/D[oD]?(\[[^\[\]]*\]|\s)+MMMM?|MMMM?(\[[^\[\]]*\]|\s)+D[oD]?/},monthsShort:"sau_vas_kov_bal_geg_bir_lie_rgp_rgs_spa_lap_grd".split("_"),weekdays:{format:"sekmadienį_pirmadienį_antradienį_trečiadienį_ketvirtadienį_penktadienį_šeštadienį".split("_"),standalone:"sekmadienis_pirmadienis_antradienis_trečiadienis_ketvirtadienis_penktadienis_šeštadienis".split("_"),isFormat:/dddd HH:mm/},weekdaysShort:"Sek_Pir_Ant_Tre_Ket_Pen_Šeš".split("_"),weekdaysMin:"S_P_A_T_K_Pn_Š".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"YYYY-MM-DD",LL:"YYYY [m.] MMMM D [d.]",LLL:"YYYY [m.] MMMM D [d.], HH:mm [val.]",LLLL:"YYYY [m.] MMMM D [d.], dddd, HH:mm [val.]",l:"YYYY-MM-DD",ll:"YYYY [m.] MMMM D [d.]",lll:"YYYY [m.] MMMM D [d.], HH:mm [val.]",llll:"YYYY [m.] MMMM D [d.], ddd, HH:mm [val.]"},calendar:{sameDay:"[Šiandien] LT",nextDay:"[Rytoj] LT",nextWeek:"dddd LT",lastDay:"[Vakar] LT",lastWeek:"[Praėjusį] dddd LT",sameElse:"L"},relativeTime:{future:"po %s",past:"prieš %s",s:Sd,m:Td,mm:Wd,h:Td,hh:Wd,d:Td,dd:Wd,M:Td,MM:Wd,y:Td,yy:Wd},dayOfMonthOrdinalParse:/\d{1,2}-oji/,ordinal:function(a){return a+"-oji"},week:{dow:1,doy:4}}); -//! moment.js locale configuration -//! locale : Latvian [lv] -//! author : Kristaps Karlsons : https://github.com/skakri -//! author : Jānis Elmeris : https://github.com/JanisE -var oh={m:"minūtes_minūtēm_minūte_minūtes".split("_"),mm:"minūtes_minūtēm_minūte_minūtes".split("_"),h:"stundas_stundām_stunda_stundas".split("_"),hh:"stundas_stundām_stunda_stundas".split("_"),d:"dienas_dienām_diena_dienas".split("_"),dd:"dienas_dienām_diena_dienas".split("_"),M:"mēneša_mēnešiem_mēnesis_mēneši".split("_"),MM:"mēneša_mēnešiem_mēnesis_mēneši".split("_"),y:"gada_gadiem_gads_gadi".split("_"),yy:"gada_gadiem_gads_gadi".split("_")};a.defineLocale("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("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY.",LL:"YYYY. [gada] D. MMMM",LLL:"YYYY. [gada] D. MMMM, HH:mm",LLLL:"YYYY. [gada] D. MMMM, dddd, HH:mm"},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:"pēc %s",past:"pirms %s",s:$d,m:Zd,mm:Yd,h:Zd,hh:Yd,d:Zd,dd:Yd,M:Zd,MM:Yd,y:Zd,yy:Yd},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}}); -//! moment.js locale configuration -//! locale : Montenegrin [me] -//! author : Miodrag Nikač <miodrag@restartit.me> : https://github.com/miodragnikac -var ph={words:{m:["jedan minut","jednog minuta"],mm:["minut","minuta","minuta"],h:["jedan sat","jednog sata"],hh:["sat","sata","sati"],dd:["dan","dana","dana"],MM:["mjesec","mjeseca","mjeseci"],yy:["godina","godine","godina"]},correctGrammaticalCase:function(a,b){return 1===a?b[0]:a>=2&&a<=4?b[1]:b[2]},translate:function(a,b,c){var d=ph.words[c];return 1===c.length?b?d[0]:d[1]:a+" "+ph.correctGrammaticalCase(a,d)}};a.defineLocale("me",{months:"januar_februar_mart_april_maj_jun_jul_avgust_septembar_oktobar_novembar_decembar".split("_"),monthsShort:"jan._feb._mar._apr._maj_jun_jul_avg._sep._okt._nov._dec.".split("_"),monthsParseExact:!0,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("_"),weekdaysParseExact:!0,longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY H:mm",LLLL:"dddd, D. MMMM YYYY H:mm"},calendar:{sameDay:"[danas u] LT",nextDay:"[sjutra 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če u] LT",lastWeek:function(){var a=["[prošle] [nedjelje] [u] LT","[prošlog] [ponedjeljka] [u] LT","[prošlog] [utorka] [u] LT","[prošle] [srijede] [u] LT","[prošlog] [četvrtka] [u] LT","[prošlog] [petka] [u] LT","[prošle] [subote] [u] LT"];return a[this.day()]},sameElse:"L"},relativeTime:{future:"za %s",past:"prije %s",s:"nekoliko sekundi",m:ph.translate,mm:ph.translate,h:ph.translate,hh:ph.translate,d:"dan",dd:ph.translate,M:"mjesec",MM:ph.translate,y:"godinu",yy:ph.translate},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:7}}), -//! moment.js locale configuration -//! locale : Maori [mi] -//! author : John Corrigan <robbiecloset@gmail.com> : https://github.com/johnideal -a.defineLocale("mi",{months:"Kohi-tāte_Hui-tanguru_Poutū-te-rangi_Paenga-whāwhā_Haratua_Pipiri_Hōngoingoi_Here-turi-kōkā_Mahuru_Whiringa-ā-nuku_Whiringa-ā-rangi_Hakihea".split("_"),monthsShort:"Kohi_Hui_Pou_Pae_Hara_Pipi_Hōngoi_Here_Mahu_Whi-nu_Whi-ra_Haki".split("_"),monthsRegex:/(?:['a-z\u0101\u014D\u016B]+\-?){1,3}/i,monthsStrictRegex:/(?:['a-z\u0101\u014D\u016B]+\-?){1,3}/i,monthsShortRegex:/(?:['a-z\u0101\u014D\u016B]+\-?){1,3}/i,monthsShortStrictRegex:/(?:['a-z\u0101\u014D\u016B]+\-?){1,2}/i,weekdays:"Rātapu_Mane_Tūrei_Wenerei_Tāite_Paraire_Hātarei".split("_"),weekdaysShort:"Ta_Ma_Tū_We_Tāi_Pa_Hā".split("_"),weekdaysMin:"Ta_Ma_Tū_We_Tāi_Pa_Hā".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY [i] HH:mm",LLLL:"dddd, D MMMM YYYY [i] HH:mm"},calendar:{sameDay:"[i teie mahana, i] LT",nextDay:"[apopo i] LT",nextWeek:"dddd [i] LT",lastDay:"[inanahi i] LT",lastWeek:"dddd [whakamutunga i] LT",sameElse:"L"},relativeTime:{future:"i roto i %s",past:"%s i mua",s:"te hēkona ruarua",m:"he meneti",mm:"%d meneti",h:"te haora",hh:"%d haora",d:"he ra",dd:"%d ra",M:"he marama",MM:"%d marama",y:"he tau",yy:"%d tau"},dayOfMonthOrdinalParse:/\d{1,2}º/,ordinal:"%dº",week:{dow:1,doy:4}}), -//! moment.js locale configuration -//! locale : Macedonian [mk] -//! author : Borislav Mickov : https://github.com/B0k0 -a.defineLocale("mk",{months:"јануари_февруари_март_април_мај_јуни_јули_август_септември_октомври_ноември_декември".split("_"),monthsShort:"јан_фев_мар_апр_мај_јун_јул_авг_сеп_окт_ное_дек".split("_"),weekdays:"недела_понеделник_вторник_среда_четврток_петок_сабота".split("_"),weekdaysShort:"нед_пон_вто_сре_чет_пет_саб".split("_"),weekdaysMin:"нe_пo_вт_ср_че_пе_сa".split("_"),longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"D.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY H:mm",LLLL:"dddd, D MMMM YYYY H:mm"},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 години"},dayOfMonthOrdinalParse:/\d{1,2}-(ев|ен|ти|ви|ри|ми)/,ordinal:function(a){var b=a%10,c=a%100;return 0===a?a+"-ев":0===c?a+"-ен":c>10&&c<20?a+"-ти":1===b?a+"-ви":2===b?a+"-ри":7===b||8===b?a+"-ми":a+"-ти"},week:{dow:1,doy:7}}), -//! moment.js locale configuration -//! locale : Malayalam [ml] -//! author : Floyd Pink : https://github.com/floydpink -a.defineLocale("ml",{months:"ജനുവരി_ഫെബ്രുവരി_മാർച്ച്_ഏപ്രിൽ_മേയ്_ജൂൺ_ജൂലൈ_ഓഗസ്റ്റ്_സെപ്റ്റംബർ_ഒക്ടോബർ_നവംബർ_ഡിസംബർ".split("_"),monthsShort:"ജനു._ഫെബ്രു._മാർ._ഏപ്രി._മേയ്_ജൂൺ_ജൂലൈ._ഓഗ._സെപ്റ്റ._ഒക്ടോ._നവം._ഡിസം.".split("_"),monthsParseExact:!0,weekdays:"ഞായറാഴ്ച_തിങ്കളാഴ്ച_ചൊവ്വാഴ്ച_ബുധനാഴ്ച_വ്യാഴാഴ്ച_വെള്ളിയാഴ്ച_ശനിയാഴ്ച".split("_"),weekdaysShort:"ഞായർ_തിങ്കൾ_ചൊവ്വ_ബുധൻ_വ്യാഴം_വെള്ളി_ശനി".split("_"),weekdaysMin:"ഞാ_തി_ചൊ_ബു_വ്യാ_വെ_ശ".split("_"),longDateFormat:{LT:"A h:mm -നു",LTS:"A h:mm:ss -നു",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY, A h:mm -നു",LLLL:"dddd, D MMMM YYYY, A h:mm -നു"},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 വർഷം"},meridiemParse:/രാത്രി|രാവിലെ|ഉച്ച കഴിഞ്ഞ്|വൈകുന്നേരം|രാത്രി/i,meridiemHour:function(a,b){return 12===a&&(a=0),"രാത്രി"===b&&a>=4||"ഉച്ച കഴിഞ്ഞ്"===b||"വൈകുന്നേരം"===b?a+12:a},meridiem:function(a,b,c){return a<4?"രാത്രി":a<12?"രാവിലെ":a<17?"ഉച്ച കഴിഞ്ഞ്":a<20?"വൈകുന്നേരം":"രാത്രി"}}); -//! moment.js locale configuration -//! locale : Marathi [mr] -//! author : Harshad Kale : https://github.com/kalehv -//! author : Vivek Athalye : https://github.com/vnathalye -var qh={1:"१",2:"२",3:"३",4:"४",5:"५",6:"६",7:"७",8:"८",9:"९",0:"०"},rh={"१":"1","२":"2","३":"3","४":"4","५":"5","६":"6","७":"7","८":"8","९":"9","०":"0"};a.defineLocale("mr",{months:"जानेवारी_फेब्रुवारी_मार्च_एप्रिल_मे_जून_जुलै_ऑगस्ट_सप्टेंबर_ऑक्टोबर_नोव्हेंबर_डिसेंबर".split("_"),monthsShort:"जाने._फेब्रु._मार्च._एप्रि._मे._जून._जुलै._ऑग._सप्टें._ऑक्टो._नोव्हें._डिसें.".split("_"),monthsParseExact:!0,weekdays:"रविवार_सोमवार_मंगळवार_बुधवार_गुरूवार_शुक्रवार_शनिवार".split("_"),weekdaysShort:"रवि_सोम_मंगळ_बुध_गुरू_शुक्र_शनि".split("_"),weekdaysMin:"र_सो_मं_बु_गु_शु_श".split("_"),longDateFormat:{LT:"A h:mm वाजता",LTS:"A h:mm:ss वाजता",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY, A h:mm वाजता",LLLL:"dddd, D MMMM YYYY, A h:mm वाजता"},calendar:{sameDay:"[आज] LT",nextDay:"[उद्या] LT",nextWeek:"dddd, LT",lastDay:"[काल] LT",lastWeek:"[मागील] dddd, LT",sameElse:"L"},relativeTime:{future:"%sमध्ये",past:"%sपूर्वी",s:_d,m:_d,mm:_d,h:_d,hh:_d,d:_d,dd:_d,M:_d,MM:_d,y:_d,yy:_d},preparse:function(a){return a.replace(/[१२३४५६७८९०]/g,function(a){return rh[a]})},postformat:function(a){return a.replace(/\d/g,function(a){return qh[a]})},meridiemParse:/रात्री|सकाळी|दुपारी|सायंकाळी/,meridiemHour:function(a,b){return 12===a&&(a=0),"रात्री"===b?a<4?a:a+12:"सकाळी"===b?a:"दुपारी"===b?a>=10?a:a+12:"सायंकाळी"===b?a+12:void 0},meridiem:function(a,b,c){return a<4?"रात्री":a<10?"सकाळी":a<17?"दुपारी":a<20?"सायंकाळी":"रात्री"},week:{dow:0,doy:6}}), -//! moment.js locale configuration -//! locale : Malay [ms-my] -//! note : DEPRECATED, the correct one is [ms] -//! author : Weldan Jamili : https://github.com/weldan -a.defineLocale("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",LTS:"HH.mm.ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY [pukul] HH.mm",LLLL:"dddd, D MMMM YYYY [pukul] HH.mm"},meridiemParse:/pagi|tengahari|petang|malam/,meridiemHour:function(a,b){return 12===a&&(a=0),"pagi"===b?a:"tengahari"===b?a>=11?a:a+12:"petang"===b||"malam"===b?a+12:void 0},meridiem:function(a,b,c){return a<11?"pagi":a<15?"tengahari":a<19?"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}}), -//! moment.js locale configuration -//! locale : Malay [ms] -//! author : Weldan Jamili : https://github.com/weldan -a.defineLocale("ms",{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",LTS:"HH.mm.ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY [pukul] HH.mm",LLLL:"dddd, D MMMM YYYY [pukul] HH.mm"},meridiemParse:/pagi|tengahari|petang|malam/,meridiemHour:function(a,b){return 12===a&&(a=0),"pagi"===b?a:"tengahari"===b?a>=11?a:a+12:"petang"===b||"malam"===b?a+12:void 0},meridiem:function(a,b,c){return a<11?"pagi":a<15?"tengahari":a<19?"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}}); -//! moment.js locale configuration -//! locale : Burmese [my] -//! author : Squar team, mysquar.com -//! author : David Rossellat : https://github.com/gholadr -//! author : Tin Aung Lin : https://github.com/thanyawzinmin -var sh={1:"၁",2:"၂",3:"၃",4:"၄",5:"၅",6:"၆",7:"၇",8:"၈",9:"၉",0:"၀"},th={"၁":"1","၂":"2","၃":"3","၄":"4","၅":"5","၆":"6","၇":"7","၈":"8","၉":"9","၀":"0"};a.defineLocale("my",{months:"ဇန်နဝါရီ_ဖေဖော်ဝါရီ_မတ်_ဧပြီ_မေ_ဇွန်_ဇူလိုင်_သြဂုတ်_စက်တင်ဘာ_အောက်တိုဘာ_နိုဝင်ဘာ_ဒီဇင်ဘာ".split("_"),monthsShort:"ဇန်_ဖေ_မတ်_ပြီ_မေ_ဇွန်_လိုင်_သြ_စက်_အောက်_နို_ဒီ".split("_"),weekdays:"တနင်္ဂနွေ_တနင်္လာ_အင်္ဂါ_ဗုဒ္ဓဟူး_ကြာသပတေး_သောကြာ_စနေ".split("_"),weekdaysShort:"နွေ_လာ_ဂါ_ဟူး_ကြာ_သော_နေ".split("_"),weekdaysMin:"နွေ_လာ_ဂါ_ဟူး_ကြာ_သော_နေ".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},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 th[a]})},postformat:function(a){return a.replace(/\d/g,function(a){return sh[a]})},week:{dow:1,doy:4}}), -//! moment.js locale configuration -//! locale : Norwegian Bokmål [nb] -//! authors : Espen Hovlandsdal : https://github.com/rexxars -//! Sigurd Gartmann : https://github.com/sigurdga -a.defineLocale("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("_"),monthsParseExact:!0,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("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY [kl.] HH:mm",LLLL:"dddd D. MMMM YYYY [kl.] HH:mm"},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:"%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"},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}}); -//! moment.js locale configuration -//! locale : Nepalese [ne] -//! author : suvash : https://github.com/suvash -var uh={1:"१",2:"२",3:"३",4:"४",5:"५",6:"६",7:"७",8:"८",9:"९",0:"०"},vh={"१":"1","२":"2","३":"3","४":"4","५":"5","६":"6","७":"7","८":"8","९":"9","०":"0"};a.defineLocale("ne",{months:"जनवरी_फेब्रुवरी_मार्च_अप्रिल_मई_जुन_जुलाई_अगष्ट_सेप्टेम्बर_अक्टोबर_नोभेम्बर_डिसेम्बर".split("_"),monthsShort:"जन._फेब्रु._मार्च_अप्रि._मई_जुन_जुलाई._अग._सेप्ट._अक्टो._नोभे._डिसे.".split("_"),monthsParseExact:!0,weekdays:"आइतबार_सोमबार_मङ्गलबार_बुधबार_बिहिबार_शुक्रबार_शनिबार".split("_"),weekdaysShort:"आइत._सोम._मङ्गल._बुध._बिहि._शुक्र._शनि.".split("_"),weekdaysMin:"आ._सो._मं._बु._बि._शु._श.".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"Aको h:mm बजे",LTS:"Aको h:mm:ss बजे",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY, Aको h:mm बजे",LLLL:"dddd, D MMMM YYYY, Aको h:mm बजे"},preparse:function(a){return a.replace(/[१२३४५६७८९०]/g,function(a){return vh[a]})},postformat:function(a){return a.replace(/\d/g,function(a){return uh[a]})},meridiemParse:/राति|बिहान|दिउँसो|साँझ/,meridiemHour:function(a,b){return 12===a&&(a=0),"राति"===b?a<4?a:a+12:"बिहान"===b?a:"दिउँसो"===b?a>=10?a:a+12:"साँझ"===b?a+12:void 0},meridiem:function(a,b,c){return a<3?"राति":a<12?"बिहान":a<16?"दिउँसो":a<20?"साँझ":"राति"},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:0,doy:6}}); -//! moment.js locale configuration -//! locale : Dutch (Belgium) [nl-be] -//! author : Joris Röling : https://github.com/jorisroling -//! author : Jacob Middag : https://github.com/middagj -var wh="jan._feb._mrt._apr._mei_jun._jul._aug._sep._okt._nov._dec.".split("_"),xh="jan_feb_mrt_apr_mei_jun_jul_aug_sep_okt_nov_dec".split("_"),yh=[/^jan/i,/^feb/i,/^maart|mrt.?$/i,/^apr/i,/^mei$/i,/^jun[i.]?$/i,/^jul[i.]?$/i,/^aug/i,/^sep/i,/^okt/i,/^nov/i,/^dec/i],zh=/^(januari|februari|maart|april|mei|april|ju[nl]i|augustus|september|oktober|november|december|jan\.?|feb\.?|mrt\.?|apr\.?|ju[nl]\.?|aug\.?|sep\.?|okt\.?|nov\.?|dec\.?)/i;a.defineLocale("nl-be",{months:"januari_februari_maart_april_mei_juni_juli_augustus_september_oktober_november_december".split("_"),monthsShort:function(a,b){return a?/-MMM-/.test(b)?xh[a.month()]:wh[a.month()]:wh},monthsRegex:zh,monthsShortRegex:zh,monthsStrictRegex:/^(januari|februari|maart|mei|ju[nl]i|april|augustus|september|oktober|november|december)/i,monthsShortStrictRegex:/^(jan\.?|feb\.?|mrt\.?|apr\.?|mei|ju[nl]\.?|aug\.?|sep\.?|okt\.?|nov\.?|dec\.?)/i,monthsParse:yh,longMonthsParse:yh,shortMonthsParse:yh,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("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},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"},dayOfMonthOrdinalParse:/\d{1,2}(ste|de)/,ordinal:function(a){return a+(1===a||8===a||a>=20?"ste":"de")},week:{dow:1,doy:4}}); -//! moment.js locale configuration -//! locale : Dutch [nl] -//! author : Joris Röling : https://github.com/jorisroling -//! author : Jacob Middag : https://github.com/middagj -var Ah="jan._feb._mrt._apr._mei_jun._jul._aug._sep._okt._nov._dec.".split("_"),Bh="jan_feb_mrt_apr_mei_jun_jul_aug_sep_okt_nov_dec".split("_"),Ch=[/^jan/i,/^feb/i,/^maart|mrt.?$/i,/^apr/i,/^mei$/i,/^jun[i.]?$/i,/^jul[i.]?$/i,/^aug/i,/^sep/i,/^okt/i,/^nov/i,/^dec/i],Dh=/^(januari|februari|maart|april|mei|april|ju[nl]i|augustus|september|oktober|november|december|jan\.?|feb\.?|mrt\.?|apr\.?|ju[nl]\.?|aug\.?|sep\.?|okt\.?|nov\.?|dec\.?)/i;a.defineLocale("nl",{months:"januari_februari_maart_april_mei_juni_juli_augustus_september_oktober_november_december".split("_"),monthsShort:function(a,b){return a?/-MMM-/.test(b)?Bh[a.month()]:Ah[a.month()]:Ah},monthsRegex:Dh,monthsShortRegex:Dh,monthsStrictRegex:/^(januari|februari|maart|mei|ju[nl]i|april|augustus|september|oktober|november|december)/i,monthsShortStrictRegex:/^(jan\.?|feb\.?|mrt\.?|apr\.?|mei|ju[nl]\.?|aug\.?|sep\.?|okt\.?|nov\.?|dec\.?)/i,monthsParse:Ch,longMonthsParse:Ch,shortMonthsParse:Ch,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("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD-MM-YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},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"},dayOfMonthOrdinalParse:/\d{1,2}(ste|de)/,ordinal:function(a){return a+(1===a||8===a||a>=20?"ste":"de")},week:{dow:1,doy:4}}), -//! moment.js locale configuration -//! locale : Nynorsk [nn] -//! author : https://github.com/mechuwind -a.defineLocale("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",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY [kl.] H:mm",LLLL:"dddd D. MMMM YYYY [kl.] HH:mm"},calendar:{sameDay:"[I dag klokka] LT",nextDay:"[I morgon klokka] LT",nextWeek:"dddd [klokka] LT",lastDay:"[I går klokka] LT",lastWeek:"[Føregåande] dddd [klokka] LT",sameElse:"L"},relativeTime:{future:"om %s",past:"%s sidan",s:"nokre sekund",m:"eit minutt",mm:"%d minutt",h:"ein time",hh:"%d timar",d:"ein dag",dd:"%d dagar",M:"ein månad",MM:"%d månader",y:"eit år",yy:"%d år"},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}}); -//! moment.js locale configuration -//! locale : Punjabi (India) [pa-in] -//! author : Harpreet Singh : https://github.com/harpreetkhalsagtbit -var Eh={1:"੧",2:"੨",3:"੩",4:"੪",5:"੫",6:"੬",7:"੭",8:"੮",9:"੯",0:"੦"},Fh={"੧":"1","੨":"2","੩":"3","੪":"4","੫":"5","੬":"6","੭":"7","੮":"8","੯":"9","੦":"0"};a.defineLocale("pa-in",{months:"ਜਨਵਰੀ_ਫ਼ਰਵਰੀ_ਮਾਰਚ_ਅਪ੍ਰੈਲ_ਮਈ_ਜੂਨ_ਜੁਲਾਈ_ਅਗਸਤ_ਸਤੰਬਰ_ਅਕਤੂਬਰ_ਨਵੰਬਰ_ਦਸੰਬਰ".split("_"),monthsShort:"ਜਨਵਰੀ_ਫ਼ਰਵਰੀ_ਮਾਰਚ_ਅਪ੍ਰੈਲ_ਮਈ_ਜੂਨ_ਜੁਲਾਈ_ਅਗਸਤ_ਸਤੰਬਰ_ਅਕਤੂਬਰ_ਨਵੰਬਰ_ਦਸੰਬਰ".split("_"),weekdays:"ਐਤਵਾਰ_ਸੋਮਵਾਰ_ਮੰਗਲਵਾਰ_ਬੁਧਵਾਰ_ਵੀਰਵਾਰ_ਸ਼ੁੱਕਰਵਾਰ_ਸ਼ਨੀਚਰਵਾਰ".split("_"),weekdaysShort:"ਐਤ_ਸੋਮ_ਮੰਗਲ_ਬੁਧ_ਵੀਰ_ਸ਼ੁਕਰ_ਸ਼ਨੀ".split("_"),weekdaysMin:"ਐਤ_ਸੋਮ_ਮੰਗਲ_ਬੁਧ_ਵੀਰ_ਸ਼ੁਕਰ_ਸ਼ਨੀ".split("_"),longDateFormat:{LT:"A h:mm ਵਜੇ",LTS:"A h:mm:ss ਵਜੇ",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY, A h:mm ਵਜੇ",LLLL:"dddd, D MMMM YYYY, A h:mm ਵਜੇ"},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 Fh[a]})},postformat:function(a){return a.replace(/\d/g,function(a){return Eh[a]})},meridiemParse:/ਰਾਤ|ਸਵੇਰ|ਦੁਪਹਿਰ|ਸ਼ਾਮ/,meridiemHour:function(a,b){return 12===a&&(a=0),"ਰਾਤ"===b?a<4?a:a+12:"ਸਵੇਰ"===b?a:"ਦੁਪਹਿਰ"===b?a>=10?a:a+12:"ਸ਼ਾਮ"===b?a+12:void 0},meridiem:function(a,b,c){return a<4?"ਰਾਤ":a<10?"ਸਵੇਰ":a<17?"ਦੁਪਹਿਰ":a<20?"ਸ਼ਾਮ":"ਰਾਤ"},week:{dow:0,doy:6}}); -//! moment.js locale configuration -//! locale : Polish [pl] -//! author : Rafal Hirsz : https://github.com/evoL -var Gh="styczeń_luty_marzec_kwiecień_maj_czerwiec_lipiec_sierpień_wrzesień_październik_listopad_grudzień".split("_"),Hh="stycznia_lutego_marca_kwietnia_maja_czerwca_lipca_sierpnia_września_października_listopada_grudnia".split("_");a.defineLocale("pl",{months:function(a,b){return a?""===b?"("+Hh[a.month()]+"|"+Gh[a.month()]+")":/D MMMM/.test(b)?Hh[a.month()]:Gh[a.month()]:Gh},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:"ndz_pon_wt_śr_czw_pt_sob".split("_"),weekdaysMin:"Nd_Pn_Wt_Śr_Cz_Pt_So".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},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:be,mm:be,h:be,hh:be,d:"1 dzień",dd:"%d dni",M:"miesiąc",MM:be,y:"rok",yy:be},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}}), -//! moment.js locale configuration -//! locale : Portuguese (Brazil) [pt-br] -//! author : Caio Ribeiro Pereira : https://github.com/caio-ribeiro-pereira -a.defineLocale("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:"Do_2ª_3ª_4ª_5ª_6ª_Sá".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D [de] MMMM [de] YYYY",LLL:"D [de] MMMM [de] YYYY [às] HH:mm",LLLL:"dddd, D [de] MMMM [de] YYYY [às] HH:mm"},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:"poucos 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"},dayOfMonthOrdinalParse:/\d{1,2}º/,ordinal:"%dº"}), -//! moment.js locale configuration -//! locale : Portuguese [pt] -//! author : Jefferson : https://github.com/jalex79 -a.defineLocale("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:"Do_2ª_3ª_4ª_5ª_6ª_Sá".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D [de] MMMM [de] YYYY",LLL:"D [de] MMMM [de] YYYY HH:mm",LLLL:"dddd, D [de] MMMM [de] YYYY HH:mm"},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:"há %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"},dayOfMonthOrdinalParse:/\d{1,2}º/,ordinal:"%dº",week:{dow:1,doy:4}}),a.defineLocale("ro",{months:"ianuarie_februarie_martie_aprilie_mai_iunie_iulie_august_septembrie_octombrie_noiembrie_decembrie".split("_"),monthsShort:"ian._febr._mart._apr._mai_iun._iul._aug._sept._oct._nov._dec.".split("_"),monthsParseExact:!0,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",LTS:"H:mm:ss",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:ce,h:"o oră",hh:ce,d:"o zi",dd:ce,M:"o lună",MM:ce,y:"un an",yy:ce},week:{dow:1,doy:7}});var Ih=[/^янв/i,/^фев/i,/^мар/i,/^апр/i,/^ма[йя]/i,/^июн/i,/^июл/i,/^авг/i,/^сен/i,/^окт/i,/^ноя/i,/^дек/i];a.defineLocale("ru",{months:{format:"января_февраля_марта_апреля_мая_июня_июля_августа_сентября_октября_ноября_декабря".split("_"),standalone:"январь_февраль_март_апрель_май_июнь_июль_август_сентябрь_октябрь_ноябрь_декабрь".split("_")},monthsShort:{format:"янв._февр._мар._апр._мая_июня_июля_авг._сент._окт._нояб._дек.".split("_"),standalone:"янв._февр._март_апр._май_июнь_июль_авг._сент._окт._нояб._дек.".split("_")},weekdays:{standalone:"воскресенье_понедельник_вторник_среда_четверг_пятница_суббота".split("_"),format:"воскресенье_понедельник_вторник_среду_четверг_пятницу_субботу".split("_"),isFormat:/\[ ?[Вв] ?(?:прошлую|следующую|эту)? ?\] ?dddd/},weekdaysShort:"вс_пн_вт_ср_чт_пт_сб".split("_"),weekdaysMin:"вс_пн_вт_ср_чт_пт_сб".split("_"),monthsParse:Ih,longMonthsParse:Ih,shortMonthsParse:Ih,monthsRegex:/^(январ[ья]|янв\.?|феврал[ья]|февр?\.?|марта?|мар\.?|апрел[ья]|апр\.?|ма[йя]|июн[ья]|июн\.?|июл[ья]|июл\.?|августа?|авг\.?|сентябр[ья]|сент?\.?|октябр[ья]|окт\.?|ноябр[ья]|нояб?\.?|декабр[ья]|дек\.?)/i,monthsShortRegex:/^(январ[ья]|янв\.?|феврал[ья]|февр?\.?|марта?|мар\.?|апрел[ья]|апр\.?|ма[йя]|июн[ья]|июн\.?|июл[ья]|июл\.?|августа?|авг\.?|сентябр[ья]|сент?\.?|октябр[ья]|окт\.?|ноябр[ья]|нояб?\.?|декабр[ья]|дек\.?)/i,monthsStrictRegex:/^(январ[яь]|феврал[яь]|марта?|апрел[яь]|ма[яй]|июн[яь]|июл[яь]|августа?|сентябр[яь]|октябр[яь]|ноябр[яь]|декабр[яь])/i,monthsShortStrictRegex:/^(янв\.|февр?\.|мар[т.]|апр\.|ма[яй]|июн[ья.]|июл[ья.]|авг\.|сент?\.|окт\.|нояб?\.|дек\.)/i,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY г.",LLL:"D MMMM YYYY г., HH:mm",LLLL:"dddd, D MMMM YYYY г., HH:mm"},calendar:{sameDay:"[Сегодня в] LT",nextDay:"[Завтра в] LT",lastDay:"[Вчера в] LT",nextWeek:function(a){if(a.week()===this.week())return 2===this.day()?"[Во] dddd [в] LT":"[В] dddd [в] LT";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"}},lastWeek:function(a){if(a.week()===this.week())return 2===this.day()?"[Во] dddd [в] LT":"[В] dddd [в] LT";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:ee,mm:ee,h:"час",hh:ee,d:"день",dd:ee,M:"месяц",MM:ee,y:"год",yy:ee},meridiemParse:/ночи|утра|дня|вечера/i,isPM:function(a){return/^(дня|вечера)$/.test(a)},meridiem:function(a,b,c){return a<4?"ночи":a<12?"утра":a<17?"дня":"вечера"},dayOfMonthOrdinalParse:/\d{1,2}-(й|го|я)/,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}}); -//! moment.js locale configuration -//! locale : Sindhi [sd] -//! author : Narain Sagar : https://github.com/narainsagar -var Jh=["جنوري","فيبروري","مارچ","اپريل","مئي","جون","جولاءِ","آگسٽ","سيپٽمبر","آڪٽوبر","نومبر","ڊسمبر"],Kh=["آچر","سومر","اڱارو","اربع","خميس","جمع","ڇنڇر"];a.defineLocale("sd",{months:Jh,monthsShort:Jh,weekdays:Kh,weekdaysShort:Kh,weekdaysMin:Kh,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd، D MMMM YYYY HH:mm"},meridiemParse:/صبح|شام/,isPM:function(a){return"شام"===a},meridiem:function(a,b,c){return a<12?"صبح":"شام"},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,",")},postformat:function(a){return a.replace(/,/g,"،")},week:{dow:1,doy:4}}), -//! moment.js locale configuration -//! locale : Northern Sami [se] -//! authors : Bård Rolstad Henriksen : https://github.com/karamell -a.defineLocale("se",{months:"ođđajagemánnu_guovvamánnu_njukčamánnu_cuoŋománnu_miessemánnu_geassemánnu_suoidnemánnu_borgemánnu_čakčamánnu_golggotmánnu_skábmamánnu_juovlamánnu".split("_"),monthsShort:"ođđj_guov_njuk_cuo_mies_geas_suoi_borg_čakč_golg_skáb_juov".split("_"),weekdays:"sotnabeaivi_vuossárga_maŋŋebárga_gaskavahkku_duorastat_bearjadat_lávvardat".split("_"),weekdaysShort:"sotn_vuos_maŋ_gask_duor_bear_láv".split("_"),weekdaysMin:"s_v_m_g_d_b_L".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"MMMM D. [b.] YYYY",LLL:"MMMM D. [b.] YYYY [ti.] HH:mm",LLLL:"dddd, MMMM D. [b.] YYYY [ti.] HH:mm"},calendar:{sameDay:"[otne ti] LT",nextDay:"[ihttin ti] LT",nextWeek:"dddd [ti] LT",lastDay:"[ikte ti] LT",lastWeek:"[ovddit] dddd [ti] LT",sameElse:"L"},relativeTime:{future:"%s geažes",past:"maŋit %s",s:"moadde sekunddat",m:"okta minuhta",mm:"%d minuhtat",h:"okta diimmu",hh:"%d diimmut",d:"okta beaivi",dd:"%d beaivvit",M:"okta mánnu",MM:"%d mánut",y:"okta jahki",yy:"%d jagit"},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}}), -//! moment.js locale configuration -//! locale : Sinhalese [si] -//! author : Sampath Sitinamaluwa : https://github.com/sampathsris -a.defineLocale("si",{months:"ජනවාරි_පෙබරවාරි_මාර්තු_අප්‍රේල්_මැයි_ජූනි_ජූලි_අගෝස්තු_සැප්තැම්බර්_ඔක්තෝබර්_නොවැම්බර්_දෙසැම්බර්".split("_"),monthsShort:"ජන_පෙබ_මාර්_අප්_මැයි_ජූනි_ජූලි_අගෝ_සැප්_ඔක්_නොවැ_දෙසැ".split("_"),weekdays:"ඉරිදා_සඳුදා_අඟහරුවාදා_බදාදා_බ්‍රහස්පතින්දා_සිකුරාදා_සෙනසුරාදා".split("_"),weekdaysShort:"ඉරි_සඳු_අඟ_බදා_බ්‍රහ_සිකු_සෙන".split("_"),weekdaysMin:"ඉ_ස_අ_බ_බ්‍ර_සි_සෙ".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"a h:mm",LTS:"a h:mm:ss",L:"YYYY/MM/DD",LL:"YYYY MMMM D",LLL:"YYYY MMMM D, a h:mm",LLLL:"YYYY MMMM D [වැනි] dddd, a h:mm:ss"},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"},dayOfMonthOrdinalParse:/\d{1,2} වැනි/,ordinal:function(a){return a+" වැනි"},meridiemParse:/පෙර වරු|පස් වරු|පෙ.ව|ප.ව./,isPM:function(a){return"ප.ව."===a||"පස් වරු"===a},meridiem:function(a,b,c){return a>11?c?"ප.ව.":"පස් වරු":c?"පෙ.ව.":"පෙර වරු"}}); -//! moment.js locale configuration -//! locale : Slovak [sk] -//! author : Martin Minka : https://github.com/k2s -//! based on work of petrbela : https://github.com/petrbela -var Lh="január_február_marec_apríl_máj_jún_júl_august_september_október_november_december".split("_"),Mh="jan_feb_mar_apr_máj_jún_júl_aug_sep_okt_nov_dec".split("_");a.defineLocale("sk",{months:Lh,monthsShort:Mh,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",LTS:"H:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY H:mm",LLLL:"dddd D. MMMM YYYY H:mm"},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:ge,m:ge,mm:ge,h:ge,hh:ge,d:ge,dd:ge,M:ge,MM:ge,y:ge,yy:ge},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}}),a.defineLocale("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("_"),monthsParseExact:!0,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("_"),weekdaysParseExact:!0,longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY H:mm",LLLL:"dddd, D. MMMM YYYY H:mm"},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:return"[prejšnjo] [nedeljo] [ob] LT";case 3:return"[prejšnjo] [sredo] [ob] LT";case 6:return"[prejšnjo] [soboto] [ob] LT";case 1:case 2:case 4:case 5:return"[prejšnji] dddd [ob] LT"}},sameElse:"L"},relativeTime:{future:"čez %s",past:"pred %s",s:he,m:he,mm:he,h:he,hh:he,d:he,dd:he,M:he,MM:he,y:he,yy:he},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:7}}), -//! moment.js locale configuration -//! locale : Albanian [sq] -//! author : Flakërim Ismani : https://github.com/flakerimi -//! author : Menelion Elensúle : https://github.com/Oire -//! author : Oerd Cukalla : https://github.com/oerd -a.defineLocale("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 Martë_E Mërkurë_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("_"),weekdaysParseExact:!0,meridiemParse:/PD|MD/,isPM:function(a){return"M"===a.charAt(0)},meridiem:function(a,b,c){return a<12?"PD":"MD"},longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[Sot në] LT",nextDay:"[Nesër në] LT",nextWeek:"dddd [në] LT",lastDay:"[Dje në] LT",lastWeek:"dddd [e kaluar në] LT",sameElse:"L"},relativeTime:{future:"në %s",past:"%s më parë",s:"disa sekonda",m:"një minutë",mm:"%d minuta",h:"një orë",hh:"%d orë",d:"një ditë",dd:"%d ditë",M:"një muaj",MM:"%d muaj",y:"një vit",yy:"%d vite"},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}}); -//! moment.js locale configuration -//! locale : Serbian Cyrillic [sr-cyrl] -//! author : Milan Janačković<milanjanackovic@gmail.com> : https://github.com/milan-j -var Nh={words:{m:["један минут","једне минуте"],mm:["минут","минуте","минута"],h:["један сат","једног сата"],hh:["сат","сата","сати"],dd:["дан","дана","дана"],MM:["месец","месеца","месеци"],yy:["година","године","година"]},correctGrammaticalCase:function(a,b){return 1===a?b[0]:a>=2&&a<=4?b[1]:b[2]},translate:function(a,b,c){var d=Nh.words[c];return 1===c.length?b?d[0]:d[1]:a+" "+Nh.correctGrammaticalCase(a,d)}};a.defineLocale("sr-cyrl",{months:"јануар_фебруар_март_април_мај_јун_јул_август_септембар_октобар_новембар_децембар".split("_"),monthsShort:"јан._феб._мар._апр._мај_јун_јул_авг._сеп._окт._нов._дец.".split("_"),monthsParseExact:!0,weekdays:"недеља_понедељак_уторак_среда_четвртак_петак_субота".split("_"),weekdaysShort:"нед._пон._уто._сре._чет._пет._суб.".split("_"),weekdaysMin:"не_по_ут_ср_че_пе_су".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY H:mm",LLLL:"dddd, D. MMMM YYYY H:mm"},calendar:{sameDay:"[данас у] LT",nextDay:"[сутра у] LT",nextWeek:function(){switch(this.day()){case 0:return"[у] [недељу] [у] LT";case 3:return"[у] [среду] [у] LT";case 6:return"[у] [суботу] [у] LT";case 1:case 2:case 4:case 5:return"[у] dddd [у] LT"}},lastDay:"[јуче у] LT",lastWeek:function(){var a=["[прошле] [недеље] [у] LT","[прошлог] [понедељка] [у] LT","[прошлог] [уторка] [у] LT","[прошле] [среде] [у] LT","[прошлог] [четвртка] [у] LT","[прошлог] [петка] [у] LT","[прошле] [суботе] [у] LT"];return a[this.day()]},sameElse:"L"},relativeTime:{future:"за %s",past:"пре %s",s:"неколико секунди",m:Nh.translate,mm:Nh.translate,h:Nh.translate,hh:Nh.translate,d:"дан",dd:Nh.translate,M:"месец",MM:Nh.translate,y:"годину",yy:Nh.translate},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:7}}); -//! moment.js locale configuration -//! locale : Serbian [sr] -//! author : Milan Janačković<milanjanackovic@gmail.com> : https://github.com/milan-j -var Oh={words:{m:["jedan minut","jedne minute"],mm:["minut","minute","minuta"],h:["jedan sat","jednog sata"],hh:["sat","sata","sati"],dd:["dan","dana","dana"],MM:["mesec","meseca","meseci"],yy:["godina","godine","godina"]},correctGrammaticalCase:function(a,b){return 1===a?b[0]:a>=2&&a<=4?b[1]:b[2]},translate:function(a,b,c){var d=Oh.words[c];return 1===c.length?b?d[0]:d[1]:a+" "+Oh.correctGrammaticalCase(a,d)}};a.defineLocale("sr",{months:"januar_februar_mart_april_maj_jun_jul_avgust_septembar_oktobar_novembar_decembar".split("_"),monthsShort:"jan._feb._mar._apr._maj_jun_jul_avg._sep._okt._nov._dec.".split("_"),monthsParseExact:!0,weekdays:"nedelja_ponedeljak_utorak_sreda_četvrtak_petak_subota".split("_"),weekdaysShort:"ned._pon._uto._sre._čet._pet._sub.".split("_"),weekdaysMin:"ne_po_ut_sr_če_pe_su".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY H:mm",LLLL:"dddd, D. MMMM YYYY H:mm"},calendar:{sameDay:"[danas u] LT",nextDay:"[sutra u] LT",nextWeek:function(){switch(this.day()){case 0:return"[u] [nedelju] [u] LT";case 3:return"[u] [sredu] [u] LT";case 6:return"[u] [subotu] [u] LT";case 1:case 2:case 4:case 5:return"[u] dddd [u] LT"}},lastDay:"[juče u] LT",lastWeek:function(){var a=["[prošle] [nedelje] [u] LT","[prošlog] [ponedeljka] [u] LT","[prošlog] [utorka] [u] LT","[prošle] [srede] [u] LT","[prošlog] [četvrtka] [u] LT","[prošlog] [petka] [u] LT","[prošle] [subote] [u] LT"];return a[this.day()]},sameElse:"L"},relativeTime:{future:"za %s",past:"pre %s",s:"nekoliko sekundi",m:Oh.translate,mm:Oh.translate,h:Oh.translate,hh:Oh.translate,d:"dan",dd:Oh.translate,M:"mesec",MM:Oh.translate,y:"godinu",yy:Oh.translate},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:7}}), -//! moment.js locale configuration -//! locale : siSwati [ss] -//! author : Nicolai Davies<mail@nicolai.io> : https://github.com/nicolaidavies -a.defineLocale("ss",{months:"Bhimbidvwane_Indlovana_Indlov'lenkhulu_Mabasa_Inkhwekhweti_Inhlaba_Kholwane_Ingci_Inyoni_Imphala_Lweti_Ingongoni".split("_"),monthsShort:"Bhi_Ina_Inu_Mab_Ink_Inh_Kho_Igc_Iny_Imp_Lwe_Igo".split("_"),weekdays:"Lisontfo_Umsombuluko_Lesibili_Lesitsatfu_Lesine_Lesihlanu_Umgcibelo".split("_"),weekdaysShort:"Lis_Umb_Lsb_Les_Lsi_Lsh_Umg".split("_"),weekdaysMin:"Li_Us_Lb_Lt_Ls_Lh_Ug".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"h:mm A",LTS:"h:mm:ss A",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY h:mm A",LLLL:"dddd, D MMMM YYYY h:mm A"},calendar:{sameDay:"[Namuhla nga] LT",nextDay:"[Kusasa nga] LT",nextWeek:"dddd [nga] LT",lastDay:"[Itolo nga] LT",lastWeek:"dddd [leliphelile] [nga] LT",sameElse:"L"},relativeTime:{future:"nga %s",past:"wenteka nga %s",s:"emizuzwana lomcane",m:"umzuzu",mm:"%d emizuzu",h:"lihora",hh:"%d emahora",d:"lilanga",dd:"%d emalanga",M:"inyanga",MM:"%d tinyanga",y:"umnyaka",yy:"%d iminyaka"},meridiemParse:/ekuseni|emini|entsambama|ebusuku/,meridiem:function(a,b,c){return a<11?"ekuseni":a<15?"emini":a<19?"entsambama":"ebusuku"},meridiemHour:function(a,b){return 12===a&&(a=0),"ekuseni"===b?a:"emini"===b?a>=11?a:a+12:"entsambama"===b||"ebusuku"===b?0===a?0:a+12:void 0},dayOfMonthOrdinalParse:/\d{1,2}/,ordinal:"%d",week:{dow:1,doy:4}}), -//! moment.js locale configuration -//! locale : Swedish [sv] -//! author : Jens Alm : https://github.com/ulmus -a.defineLocale("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",LTS:"HH:mm:ss",L:"YYYY-MM-DD",LL:"D MMMM YYYY",LLL:"D MMMM YYYY [kl.] HH:mm",LLLL:"dddd D MMMM YYYY [kl.] HH:mm",lll:"D MMM YYYY HH:mm",llll:"ddd D MMM YYYY HH:mm"},calendar:{sameDay:"[Idag] LT",nextDay:"[Imorgon] LT",lastDay:"[Igår] LT",nextWeek:"[På] dddd LT",lastWeek:"[I] dddd[s] 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"},dayOfMonthOrdinalParse:/\d{1,2}(e|a)/,ordinal:function(a){var b=a%10,c=1===~~(a%100/10)?"e":1===b?"a":2===b?"a":"e";return a+c},week:{dow:1,doy:4}}), -//! moment.js locale configuration -//! locale : Swahili [sw] -//! author : Fahad Kassim : https://github.com/fadsel -a.defineLocale("sw",{months:"Januari_Februari_Machi_Aprili_Mei_Juni_Julai_Agosti_Septemba_Oktoba_Novemba_Desemba".split("_"),monthsShort:"Jan_Feb_Mac_Apr_Mei_Jun_Jul_Ago_Sep_Okt_Nov_Des".split("_"),weekdays:"Jumapili_Jumatatu_Jumanne_Jumatano_Alhamisi_Ijumaa_Jumamosi".split("_"),weekdaysShort:"Jpl_Jtat_Jnne_Jtan_Alh_Ijm_Jmos".split("_"),weekdaysMin:"J2_J3_J4_J5_Al_Ij_J1".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[leo saa] LT",nextDay:"[kesho saa] LT",nextWeek:"[wiki ijayo] dddd [saat] LT",lastDay:"[jana] LT",lastWeek:"[wiki iliyopita] dddd [saat] LT",sameElse:"L"},relativeTime:{future:"%s baadaye",past:"tokea %s",s:"hivi punde",m:"dakika moja",mm:"dakika %d",h:"saa limoja",hh:"masaa %d",d:"siku moja",dd:"masiku %d",M:"mwezi mmoja",MM:"miezi %d",y:"mwaka mmoja",yy:"miaka %d"},week:{dow:1,doy:7}}); -//! moment.js locale configuration -//! locale : Tamil [ta] -//! author : Arjunkumar Krishnamoorthy : https://github.com/tk120404 -var Ph={1:"௧",2:"௨",3:"௩",4:"௪",5:"௫",6:"௬",7:"௭",8:"௮",9:"௯",0:"௦"},Qh={"௧":"1","௨":"2","௩":"3","௪":"4","௫":"5","௬":"6","௭":"7","௮":"8","௯":"9","௦":"0"};a.defineLocale("ta",{months:"ஜனவரி_பிப்ரவரி_மார்ச்_ஏப்ரல்_மே_ஜூன்_ஜூலை_ஆகஸ்ட்_செப்டெம்பர்_அக்டோபர்_நவம்பர்_டிசம்பர்".split("_"),monthsShort:"ஜனவரி_பிப்ரவரி_மார்ச்_ஏப்ரல்_மே_ஜூன்_ஜூலை_ஆகஸ்ட்_செப்டெம்பர்_அக்டோபர்_நவம்பர்_டிசம்பர்".split("_"),weekdays:"ஞாயிற்றுக்கிழமை_திங்கட்கிழமை_செவ்வாய்கிழமை_புதன்கிழமை_வியாழக்கிழமை_வெள்ளிக்கிழமை_சனிக்கிழமை".split("_"),weekdaysShort:"ஞாயிறு_திங்கள்_செவ்வாய்_புதன்_வியாழன்_வெள்ளி_சனி".split("_"),weekdaysMin:"ஞா_தி_செ_பு_வி_வெ_ச".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY, HH:mm",LLLL:"dddd, D MMMM YYYY, HH:mm"},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 ஆண்டுகள்"},dayOfMonthOrdinalParse:/\d{1,2}வது/,ordinal:function(a){return a+"வது"},preparse:function(a){return a.replace(/[௧௨௩௪௫௬௭௮௯௦]/g,function(a){return Qh[a]})},postformat:function(a){return a.replace(/\d/g,function(a){return Ph[a]})},meridiemParse:/யாமம்|வைகறை|காலை|நண்பகல்|எற்பாடு|மாலை/,meridiem:function(a,b,c){return a<2?" யாமம்":a<6?" வைகறை":a<10?" காலை":a<14?" நண்பகல்":a<18?" எற்பாடு":a<22?" மாலை":" யாமம்"},meridiemHour:function(a,b){return 12===a&&(a=0),"யாமம்"===b?a<2?a:a+12:"வைகறை"===b||"காலை"===b?a:"நண்பகல்"===b&&a>=10?a:a+12},week:{dow:0,doy:6}}), -//! moment.js locale configuration -//! locale : Telugu [te] -//! author : Krishna Chaitanya Thota : https://github.com/kcthota -a.defineLocale("te",{months:"జనవరి_ఫిబ్రవరి_మార్చి_ఏప్రిల్_మే_జూన్_జూలై_ఆగస్టు_సెప్టెంబర్_అక్టోబర్_నవంబర్_డిసెంబర్".split("_"),monthsShort:"జన._ఫిబ్ర._మార్చి_ఏప్రి._మే_జూన్_జూలై_ఆగ._సెప్._అక్టో._నవ._డిసె.".split("_"),monthsParseExact:!0,weekdays:"ఆదివారం_సోమవారం_మంగళవారం_బుధవారం_గురువారం_శుక్రవారం_శనివారం".split("_"),weekdaysShort:"ఆది_సోమ_మంగళ_బుధ_గురు_శుక్ర_శని".split("_"),weekdaysMin:"ఆ_సో_మం_బు_గు_శు_శ".split("_"),longDateFormat:{LT:"A h:mm",LTS:"A h:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY, A h:mm",LLLL:"dddd, D MMMM YYYY, A h:mm"},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 సంవత్సరాలు"},dayOfMonthOrdinalParse:/\d{1,2}వ/,ordinal:"%dవ",meridiemParse:/రాత్రి|ఉదయం|మధ్యాహ్నం|సాయంత్రం/,meridiemHour:function(a,b){return 12===a&&(a=0),"రాత్రి"===b?a<4?a:a+12:"ఉదయం"===b?a:"మధ్యాహ్నం"===b?a>=10?a:a+12:"సాయంత్రం"===b?a+12:void 0},meridiem:function(a,b,c){return a<4?"రాత్రి":a<10?"ఉదయం":a<17?"మధ్యాహ్నం":a<20?"సాయంత్రం":"రాత్రి"},week:{dow:0,doy:6}}), -//! moment.js locale configuration -//! locale : Tetun Dili (East Timor) [tet] -//! author : Joshua Brooks : https://github.com/joshbrooks -//! author : Onorio De J. Afonso : https://github.com/marobo -a.defineLocale("tet",{months:"Janeiru_Fevereiru_Marsu_Abril_Maiu_Juniu_Juliu_Augustu_Setembru_Outubru_Novembru_Dezembru".split("_"),monthsShort:"Jan_Fev_Mar_Abr_Mai_Jun_Jul_Aug_Set_Out_Nov_Dez".split("_"),weekdays:"Domingu_Segunda_Tersa_Kuarta_Kinta_Sexta_Sabadu".split("_"),weekdaysShort:"Dom_Seg_Ters_Kua_Kint_Sext_Sab".split("_"),weekdaysMin:"Do_Seg_Te_Ku_Ki_Sex_Sa".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[Ohin iha] LT",nextDay:"[Aban iha] LT",nextWeek:"dddd [iha] LT",lastDay:"[Horiseik iha] LT",lastWeek:"dddd [semana kotuk] [iha] LT",sameElse:"L"},relativeTime:{future:"iha %s",past:"%s liuba",s:"minutu balun",m:"minutu ida",mm:"minutus %d",h:"horas ida",hh:"horas %d",d:"loron ida",dd:"loron %d",M:"fulan ida",MM:"fulan %d",y:"tinan ida",yy:"tinan %d"},dayOfMonthOrdinalParse:/\d{1,2}(st|nd|rd|th)/,ordinal:function(a){var b=a%10,c=1===~~(a%100/10)?"th":1===b?"st":2===b?"nd":3===b?"rd":"th";return a+c},week:{dow:1,doy:4}}), -//! moment.js locale configuration -//! locale : Thai [th] -//! author : Kridsada Thanabulpong : https://github.com/sirn -a.defineLocale("th",{months:"มกราคม_กุมภาพันธ์_มีนาคม_เมษายน_พฤษภาคม_มิถุนายน_กรกฎาคม_สิงหาคม_กันยายน_ตุลาคม_พฤศจิกายน_ธันวาคม".split("_"),monthsShort:"ม.ค._ก.พ._มี.ค._เม.ย._พ.ค._มิ.ย._ก.ค._ส.ค._ก.ย._ต.ค._พ.ย._ธ.ค.".split("_"),monthsParseExact:!0,weekdays:"อาทิตย์_จันทร์_อังคาร_พุธ_พฤหัสบดี_ศุกร์_เสาร์".split("_"),weekdaysShort:"อาทิตย์_จันทร์_อังคาร_พุธ_พฤหัส_ศุกร์_เสาร์".split("_"),weekdaysMin:"อา._จ._อ._พ._พฤ._ศ._ส.".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY เวลา H:mm",LLLL:"วันddddที่ D MMMM YYYY เวลา H:mm"},meridiemParse:/ก่อนเที่ยง|หลังเที่ยง/,isPM:function(a){return"หลังเที่ยง"===a},meridiem:function(a,b,c){return a<12?"ก่อนเที่ยง":"หลังเที่ยง"},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 ปี"}}), -//! moment.js locale configuration -//! locale : Tagalog (Philippines) [tl-ph] -//! author : Dan Hagman : https://github.com/hagmandan -a.defineLocale("tl-ph",{months:"Enero_Pebrero_Marso_Abril_Mayo_Hunyo_Hulyo_Agosto_Setyembre_Oktubre_Nobyembre_Disyembre".split("_"),monthsShort:"Ene_Peb_Mar_Abr_May_Hun_Hul_Ago_Set_Okt_Nob_Dis".split("_"),weekdays:"Linggo_Lunes_Martes_Miyerkules_Huwebes_Biyernes_Sabado".split("_"),weekdaysShort:"Lin_Lun_Mar_Miy_Huw_Biy_Sab".split("_"),weekdaysMin:"Li_Lu_Ma_Mi_Hu_Bi_Sab".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"MM/D/YYYY",LL:"MMMM D, YYYY",LLL:"MMMM D, YYYY HH:mm",LLLL:"dddd, MMMM DD, YYYY HH:mm"},calendar:{sameDay:"LT [ngayong araw]",nextDay:"[Bukas ng] LT",nextWeek:"LT [sa susunod na] dddd",lastDay:"LT [kahapon]",lastWeek:"LT [noong nakaraang] dddd",sameElse:"L"},relativeTime:{future:"sa loob ng %s",past:"%s ang nakalipas",s:"ilang segundo",m:"isang minuto",mm:"%d minuto",h:"isang oras",hh:"%d oras",d:"isang araw",dd:"%d araw",M:"isang buwan",MM:"%d buwan",y:"isang taon",yy:"%d taon"},dayOfMonthOrdinalParse:/\d{1,2}/,ordinal:function(a){return a},week:{dow:1,doy:4}}); -//! moment.js locale configuration -//! locale : Klingon [tlh] -//! author : Dominika Kruk : https://github.com/amaranthrose -var Rh="pagh_wa’_cha’_wej_loS_vagh_jav_Soch_chorgh_Hut".split("_");a.defineLocale("tlh",{months:"tera’ jar wa’_tera’ jar cha’_tera’ jar wej_tera’ jar loS_tera’ jar vagh_tera’ jar jav_tera’ jar Soch_tera’ jar chorgh_tera’ jar Hut_tera’ jar wa’maH_tera’ jar wa’maH wa’_tera’ jar wa’maH cha’".split("_"),monthsShort:"jar wa’_jar cha’_jar wej_jar loS_jar vagh_jar jav_jar Soch_jar chorgh_jar Hut_jar wa’maH_jar wa’maH wa’_jar wa’maH cha’".split("_"),monthsParseExact:!0,weekdays:"lojmItjaj_DaSjaj_povjaj_ghItlhjaj_loghjaj_buqjaj_ghInjaj".split("_"),weekdaysShort:"lojmItjaj_DaSjaj_povjaj_ghItlhjaj_loghjaj_buqjaj_ghInjaj".split("_"),weekdaysMin:"lojmItjaj_DaSjaj_povjaj_ghItlhjaj_loghjaj_buqjaj_ghInjaj".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[DaHjaj] LT",nextDay:"[wa’leS] LT",nextWeek:"LLL",lastDay:"[wa’Hu’] LT",lastWeek:"LLL",sameElse:"L"},relativeTime:{future:ie,past:je,s:"puS lup",m:"wa’ tup",mm:ke,h:"wa’ rep",hh:ke,d:"wa’ jaj",dd:ke,M:"wa’ jar",MM:ke,y:"wa’ DIS",yy:ke},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}}); -//! moment.js locale configuration -//! locale : Turkish [tr] -//! authors : Erhan Gundogan : https://github.com/erhangundogan, -//! Burak Yiğit Kaya: https://github.com/BYK -var Sh={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.defineLocale("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",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},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"},dayOfMonthOrdinalParse:/\d{1,2}'(inci|nci|üncü|ncı|uncu|ıncı)/,ordinal:function(a){if(0===a)return a+"'ıncı";var b=a%10,c=a%100-b,d=a>=100?100:null;return a+(Sh[b]||Sh[c]||Sh[d])},week:{dow:1,doy:7}}), -//! moment.js locale configuration -//! locale : Talossan [tzl] -//! author : Robin van der Vliet : https://github.com/robin0van0der0v -//! author : Iustì Canun -a.defineLocale("tzl",{months:"Januar_Fevraglh_Març_Avrïu_Mai_Gün_Julia_Guscht_Setemvar_Listopäts_Noemvar_Zecemvar".split("_"),monthsShort:"Jan_Fev_Mar_Avr_Mai_Gün_Jul_Gus_Set_Lis_Noe_Zec".split("_"),weekdays:"Súladi_Lúneçi_Maitzi_Márcuri_Xhúadi_Viénerçi_Sáturi".split("_"),weekdaysShort:"Súl_Lún_Mai_Már_Xhú_Vié_Sát".split("_"),weekdaysMin:"Sú_Lú_Ma_Má_Xh_Vi_Sá".split("_"),longDateFormat:{LT:"HH.mm",LTS:"HH.mm.ss",L:"DD.MM.YYYY",LL:"D. MMMM [dallas] YYYY",LLL:"D. MMMM [dallas] YYYY HH.mm",LLLL:"dddd, [li] D. MMMM [dallas] YYYY HH.mm"},meridiemParse:/d\'o|d\'a/i,isPM:function(a){return"d'o"===a.toLowerCase()},meridiem:function(a,b,c){return a>11?c?"d'o":"D'O":c?"d'a":"D'A"},calendar:{sameDay:"[oxhi à] LT",nextDay:"[demà à] LT",nextWeek:"dddd [à] LT",lastDay:"[ieiri à] LT",lastWeek:"[sür el] dddd [lasteu à] LT",sameElse:"L"},relativeTime:{future:"osprei %s",past:"ja%s",s:me,m:me,mm:me,h:me,hh:me,d:me,dd:me,M:me,MM:me,y:me,yy:me},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}}), -//! moment.js locale configuration -//! locale : Central Atlas Tamazight Latin [tzm-latn] -//! author : Abdel Said : https://github.com/abdelsaid -a.defineLocale("tzm-latn",{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",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},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}}), -//! moment.js locale configuration -//! locale : Central Atlas Tamazight [tzm] -//! author : Abdel Said : https://github.com/abdelsaid -a.defineLocale("tzm",{months:"ⵉⵏⵏⴰⵢⵔ_ⴱⵕⴰⵢⵕ_ⵎⴰⵕⵚ_ⵉⴱⵔⵉⵔ_ⵎⴰⵢⵢⵓ_ⵢⵓⵏⵢⵓ_ⵢⵓⵍⵢⵓⵣ_ⵖⵓⵛⵜ_ⵛⵓⵜⴰⵏⴱⵉⵔ_ⴽⵟⵓⴱⵕ_ⵏⵓⵡⴰⵏⴱⵉⵔ_ⴷⵓⵊⵏⴱⵉⵔ".split("_"),monthsShort:"ⵉⵏⵏⴰⵢⵔ_ⴱⵕⴰⵢⵕ_ⵎⴰⵕⵚ_ⵉⴱⵔⵉⵔ_ⵎⴰⵢⵢⵓ_ⵢⵓⵏⵢⵓ_ⵢⵓⵍⵢⵓⵣ_ⵖⵓⵛⵜ_ⵛⵓⵜⴰⵏⴱⵉⵔ_ⴽⵟⵓⴱⵕ_ⵏⵓⵡⴰⵏⴱⵉⵔ_ⴷⵓⵊⵏⴱⵉⵔ".split("_"),weekdays:"ⴰⵙⴰⵎⴰⵙ_ⴰⵢⵏⴰⵙ_ⴰⵙⵉⵏⴰⵙ_ⴰⴽⵔⴰⵙ_ⴰⴽⵡⴰⵙ_ⴰⵙⵉⵎⵡⴰⵙ_ⴰⵙⵉⴹⵢⴰⵙ".split("_"),weekdaysShort:"ⴰⵙⴰⵎⴰⵙ_ⴰⵢⵏⴰⵙ_ⴰⵙⵉⵏⴰⵙ_ⴰⴽⵔⴰⵙ_ⴰⴽⵡⴰⵙ_ⴰⵙⵉⵎⵡⴰⵙ_ⴰⵙⵉⴹⵢⴰⵙ".split("_"),weekdaysMin:"ⴰⵙⴰⵎⴰⵙ_ⴰⵢⵏⴰⵙ_ⴰⵙⵉⵏⴰⵙ_ⴰⴽⵔⴰⵙ_ⴰⴽⵡⴰⵙ_ⴰⵙⵉⵎⵡⴰⵙ_ⴰⵙⵉⴹⵢⴰⵙ".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},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}}),a.defineLocale("uk",{months:{format:"січня_лютого_березня_квітня_травня_червня_липня_серпня_вересня_жовтня_листопада_грудня".split("_"),standalone:"січень_лютий_березень_квітень_травень_червень_липень_серпень_вересень_жовтень_листопад_грудень".split("_")},monthsShort:"січ_лют_бер_квіт_трав_черв_лип_серп_вер_жовт_лист_груд".split("_"),weekdays:pe,weekdaysShort:"нд_пн_вт_ср_чт_пт_сб".split("_"),weekdaysMin:"нд_пн_вт_ср_чт_пт_сб".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY р.",LLL:"D MMMM YYYY р., HH:mm",LLLL:"dddd, D MMMM YYYY р., HH:mm"},calendar:{sameDay:qe("[Сьогодні "),nextDay:qe("[Завтра "),lastDay:qe("[Вчора "),nextWeek:qe("[У] dddd ["),lastWeek:function(){switch(this.day()){case 0:case 3:case 5:case 6:return qe("[Минулої] dddd [").call(this);case 1:case 2:case 4:return qe("[Минулого] dddd [").call(this)}},sameElse:"L"},relativeTime:{future:"за %s",past:"%s тому",s:"декілька секунд",m:oe,mm:oe,h:"годину",hh:oe,d:"день",dd:oe,M:"місяць",MM:oe,y:"рік",yy:oe},meridiemParse:/ночі|ранку|дня|вечора/,isPM:function(a){return/^(дня|вечора)$/.test(a)},meridiem:function(a,b,c){return a<4?"ночі":a<12?"ранку":a<17?"дня":"вечора"},dayOfMonthOrdinalParse:/\d{1,2}-(й|го)/,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}}); -//! moment.js locale configuration -//! locale : Urdu [ur] -//! author : Sawood Alam : https://github.com/ibnesayeed -//! author : Zack : https://github.com/ZackVision -var Th=["جنوری","فروری","مارچ","اپریل","مئی","جون","جولائی","اگست","ستمبر","اکتوبر","نومبر","دسمبر"],Uh=["اتوار","پیر","منگل","بدھ","جمعرات","جمعہ","ہفتہ"]; -//! moment.js locale configuration -//! locale : Uzbek Latin [uz-latn] -//! author : Rasulbek Mirzayev : github.com/Rasulbeeek -//! moment.js locale configuration -//! locale : Uzbek [uz] -//! author : Sardor Muminov : https://github.com/muminoff -//! moment.js locale configuration -//! locale : Vietnamese [vi] -//! author : Bang Nguyen : https://github.com/bangnk -//! moment.js locale configuration -//! locale : Pseudo [x-pseudo] -//! author : Andrew Hood : https://github.com/andrewhood125 -//! moment.js locale configuration -//! locale : Yoruba Nigeria [yo] -//! author : Atolagbe Abisoye : https://github.com/andela-batolagbe -//! moment.js locale configuration -//! locale : Chinese (China) [zh-cn] -//! author : suupic : https://github.com/suupic -//! author : Zeno Zeng : https://github.com/zenozeng -//! moment.js locale configuration -//! locale : Chinese (Hong Kong) [zh-hk] -//! author : Ben : https://github.com/ben-lin -//! author : Chris Lam : https://github.com/hehachris -//! author : Konstantin : https://github.com/skfd -//! moment.js locale configuration -//! locale : Chinese (Taiwan) [zh-tw] -//! author : Ben : https://github.com/ben-lin -//! author : Chris Lam : https://github.com/hehachris -return a.defineLocale("ur",{months:Th,monthsShort:Th,weekdays:Uh,weekdaysShort:Uh,weekdaysMin:Uh,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd، D MMMM YYYY HH:mm"},meridiemParse:/صبح|شام/,isPM:function(a){return"شام"===a},meridiem:function(a,b,c){return a<12?"صبح":"شام"},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,",")},postformat:function(a){return a.replace(/,/g,"،")},week:{dow:1,doy:4}}),a.defineLocale("uz-latn",{months:"Yanvar_Fevral_Mart_Aprel_May_Iyun_Iyul_Avgust_Sentabr_Oktabr_Noyabr_Dekabr".split("_"),monthsShort:"Yan_Fev_Mar_Apr_May_Iyun_Iyul_Avg_Sen_Okt_Noy_Dek".split("_"),weekdays:"Yakshanba_Dushanba_Seshanba_Chorshanba_Payshanba_Juma_Shanba".split("_"),weekdaysShort:"Yak_Dush_Sesh_Chor_Pay_Jum_Shan".split("_"),weekdaysMin:"Ya_Du_Se_Cho_Pa_Ju_Sha".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"D MMMM YYYY, dddd HH:mm"},calendar:{sameDay:"[Bugun soat] LT [da]",nextDay:"[Ertaga] LT [da]",nextWeek:"dddd [kuni soat] LT [da]",lastDay:"[Kecha soat] LT [da]",lastWeek:"[O'tgan] dddd [kuni soat] LT [da]",sameElse:"L"},relativeTime:{future:"Yaqin %s ichida",past:"Bir necha %s oldin",s:"soniya",m:"bir daqiqa",mm:"%d daqiqa",h:"bir soat",hh:"%d soat",d:"bir kun",dd:"%d kun",M:"bir oy",MM:"%d oy",y:"bir yil",yy:"%d yil"},week:{dow:1,doy:7}}),a.defineLocale("uz",{months:"январ_феврал_март_апрел_май_июн_июл_август_сентябр_октябр_ноябр_декабр".split("_"),monthsShort:"янв_фев_мар_апр_май_июн_июл_авг_сен_окт_ноя_дек".split("_"),weekdays:"Якшанба_Душанба_Сешанба_Чоршанба_Пайшанба_Жума_Шанба".split("_"),weekdaysShort:"Якш_Душ_Сеш_Чор_Пай_Жум_Шан".split("_"),weekdaysMin:"Як_Ду_Се_Чо_Па_Жу_Ша".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"D MMMM YYYY, dddd HH:mm"},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}}),a.defineLocale("vi",{months:"tháng 1_tháng 2_tháng 3_tháng 4_tháng 5_tháng 6_tháng 7_tháng 8_tháng 9_tháng 10_tháng 11_tháng 12".split("_"),monthsShort:"Th01_Th02_Th03_Th04_Th05_Th06_Th07_Th08_Th09_Th10_Th11_Th12".split("_"),monthsParseExact:!0,weekdays:"chủ nhật_thứ hai_thứ ba_thứ tư_thứ năm_thứ sáu_thứ bảy".split("_"),weekdaysShort:"CN_T2_T3_T4_T5_T6_T7".split("_"),weekdaysMin:"CN_T2_T3_T4_T5_T6_T7".split("_"),weekdaysParseExact:!0,meridiemParse:/sa|ch/i,isPM:function(a){return/^ch$/i.test(a)},meridiem:function(a,b,c){return a<12?c?"sa":"SA":c?"ch":"CH"},longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM [năm] YYYY",LLL:"D MMMM [năm] YYYY HH:mm",LLLL:"dddd, D MMMM [năm] YYYY HH:mm",l:"DD/M/YYYY",ll:"D MMM YYYY",lll:"D MMM YYYY HH:mm",llll:"ddd, D MMM YYYY HH:mm"},calendar:{sameDay:"[Hôm nay lúc] LT",nextDay:"[Ngày mai lúc] LT",nextWeek:"dddd [tuần tới lúc] LT",lastDay:"[Hôm qua lúc] LT",lastWeek:"dddd [tuần rồi lúc] LT",sameElse:"L"},relativeTime:{future:"%s tới",past:"%s trước",s:"vài giây",m:"một phút",mm:"%d phút",h:"một giờ",hh:"%d giờ",d:"một ngày",dd:"%d ngày",M:"một tháng",MM:"%d tháng",y:"một năm",yy:"%d năm"},dayOfMonthOrdinalParse:/\d{1,2}/,ordinal:function(a){return a},week:{dow:1,doy:4}}),a.defineLocale("x-pseudo",{months:"J~áñúá~rý_F~ébrú~árý_~Márc~h_Áp~ríl_~Máý_~Júñé~_Júl~ý_Áú~gúst~_Sép~témb~ér_Ó~ctób~ér_Ñ~óvém~bér_~Décé~mbér".split("_"),monthsShort:"J~áñ_~Féb_~Már_~Ápr_~Máý_~Júñ_~Júl_~Áúg_~Sép_~Óct_~Ñóv_~Déc".split("_"),monthsParseExact:!0,weekdays:"S~úñdá~ý_Mó~ñdáý~_Túé~sdáý~_Wéd~ñésd~áý_T~húrs~dáý_~Fríd~áý_S~átúr~dáý".split("_"),weekdaysShort:"S~úñ_~Móñ_~Túé_~Wéd_~Thú_~Frí_~Sát".split("_"),weekdaysMin:"S~ú_Mó~_Tú_~Wé_T~h_Fr~_Sá".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[T~ódá~ý át] LT",nextDay:"[T~ómó~rró~w át] LT",nextWeek:"dddd [át] LT",lastDay:"[Ý~ést~érdá~ý át] LT",lastWeek:"[L~ást] dddd [át] LT",sameElse:"L"},relativeTime:{future:"í~ñ %s",past:"%s á~gó",s:"á ~féw ~sécó~ñds",m:"á ~míñ~úté",mm:"%d m~íñú~tés",h:"á~ñ hó~úr",hh:"%d h~óúrs",d:"á ~dáý",dd:"%d d~áýs",M:"á ~móñ~th",MM:"%d m~óñt~hs",y:"á ~ýéár",yy:"%d ý~éárs"},dayOfMonthOrdinalParse:/\d{1,2}(th|st|nd|rd)/,ordinal:function(a){var b=a%10,c=1===~~(a%100/10)?"th":1===b?"st":2===b?"nd":3===b?"rd":"th";return a+c},week:{dow:1,doy:4}}),a.defineLocale("yo",{months:"Sẹ́rẹ́_Èrèlè_Ẹrẹ̀nà_Ìgbé_Èbibi_Òkùdu_Agẹmo_Ògún_Owewe_Ọ̀wàrà_Bélú_Ọ̀pẹ̀̀".split("_"),monthsShort:"Sẹ́r_Èrl_Ẹrn_Ìgb_Èbi_Òkù_Agẹ_Ògú_Owe_Ọ̀wà_Bél_Ọ̀pẹ̀̀".split("_"),weekdays:"Àìkú_Ajé_Ìsẹ́gun_Ọjọ́rú_Ọjọ́bọ_Ẹtì_Àbámẹ́ta".split("_"),weekdaysShort:"Àìk_Ajé_Ìsẹ́_Ọjr_Ọjb_Ẹtì_Àbá".split("_"),weekdaysMin:"Àì_Aj_Ìs_Ọr_Ọb_Ẹt_Àb".split("_"),longDateFormat:{LT:"h:mm A",LTS:"h:mm:ss A",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY h:mm A",LLLL:"dddd, D MMMM YYYY h:mm A"},calendar:{sameDay:"[Ònì ni] LT",nextDay:"[Ọ̀la ni] LT",nextWeek:"dddd [Ọsẹ̀ tón'bọ] [ni] LT",lastDay:"[Àna ni] LT",lastWeek:"dddd [Ọsẹ̀ tólọ́] [ni] LT",sameElse:"L"},relativeTime:{future:"ní %s",past:"%s kọjá",s:"ìsẹjú aayá die",m:"ìsẹjú kan",mm:"ìsẹjú %d",h:"wákati kan",hh:"wákati %d",d:"ọjọ́ kan",dd:"ọjọ́ %d",M:"osù kan",MM:"osù %d",y:"ọdún kan",yy:"ọdún %d"},dayOfMonthOrdinalParse:/ọjọ́\s\d{1,2}/,ordinal:"ọjọ́ %d",week:{dow:1,doy:4}}),a.defineLocale("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:"HH:mm",LTS:"HH:mm:ss",L:"YYYY年MMMD日",LL:"YYYY年MMMD日",LLL:"YYYY年MMMD日Ah点mm分",LLLL:"YYYY年MMMD日ddddAh点mm分",l:"YYYY年MMMD日",ll:"YYYY年MMMD日",lll:"YYYY年MMMD日 HH:mm",llll:"YYYY年MMMD日dddd HH:mm"},meridiemParse:/凌晨|早上|上午|中午|下午|晚上/,meridiemHour:function(a,b){return 12===a&&(a=0),"凌晨"===b||"早上"===b||"上午"===b?a:"下午"===b||"晚上"===b?a+12:a>=11?a:a+12},meridiem:function(a,b,c){var d=100*a+b;return d<600?"凌晨":d<900?"早上":d<1130?"上午":d<1230?"中午":d<1800?"下午":"晚上"},calendar:{sameDay:"[今天]LT",nextDay:"[明天]LT",nextWeek:"[下]ddddLT",lastDay:"[昨天]LT",lastWeek:"[上]ddddLT",sameElse:"L"},dayOfMonthOrdinalParse:/\d{1,2}(日|月|周)/,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 年"},week:{dow:1,doy:4}}),a.defineLocale("zh-hk",{months:"一月_二月_三月_四月_五月_六月_七月_八月_九月_十月_十一月_十二月".split("_"),monthsShort:"1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月".split("_"),weekdays:"星期日_星期一_星期二_星期三_星期四_星期五_星期六".split("_"),weekdaysShort:"週日_週一_週二_週三_週四_週五_週六".split("_"),weekdaysMin:"日_一_二_三_四_五_六".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"YYYY年MMMD日",LL:"YYYY年MMMD日",LLL:"YYYY年MMMD日 HH:mm",LLLL:"YYYY年MMMD日dddd HH:mm",l:"YYYY年MMMD日",ll:"YYYY年MMMD日",lll:"YYYY年MMMD日 HH:mm",llll:"YYYY年MMMD日dddd HH:mm"},meridiemParse:/凌晨|早上|上午|中午|下午|晚上/,meridiemHour:function(a,b){return 12===a&&(a=0),"凌晨"===b||"早上"===b||"上午"===b?a:"中午"===b?a>=11?a:a+12:"下午"===b||"晚上"===b?a+12:void 0},meridiem:function(a,b,c){var d=100*a+b;return d<600?"凌晨":d<900?"早上":d<1130?"上午":d<1230?"中午":d<1800?"下午":"晚上"},calendar:{sameDay:"[今天]LT",nextDay:"[明天]LT",nextWeek:"[下]ddddLT",lastDay:"[昨天]LT",lastWeek:"[上]ddddLT",sameElse:"L"},dayOfMonthOrdinalParse:/\d{1,2}(日|月|週)/,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 年"}}),a.defineLocale("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:"HH:mm",LTS:"HH:mm:ss",L:"YYYY年MMMD日",LL:"YYYY年MMMD日",LLL:"YYYY年MMMD日 HH:mm",LLLL:"YYYY年MMMD日dddd HH:mm",l:"YYYY年MMMD日",ll:"YYYY年MMMD日",lll:"YYYY年MMMD日 HH:mm",llll:"YYYY年MMMD日dddd HH:mm"},meridiemParse:/凌晨|早上|上午|中午|下午|晚上/,meridiemHour:function(a,b){return 12===a&&(a=0),"凌晨"===b||"早上"===b||"上午"===b?a:"中午"===b?a>=11?a:a+12:"下午"===b||"晚上"===b?a+12:void 0},meridiem:function(a,b,c){var d=100*a+b;return d<600?"凌晨":d<900?"早上":d<1130?"上午":d<1230?"中午":d<1800?"下午":"晚上"},calendar:{sameDay:"[今天]LT",nextDay:"[明天]LT",nextWeek:"[下]ddddLT",lastDay:"[昨天]LT",lastWeek:"[上]ddddLT",sameElse:"L"},dayOfMonthOrdinalParse:/\d{1,2}(日|月|週)/,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 年"}}),a.locale("en"),a}); \ No newline at end of file diff --git a/admin/bower_components/moment/min/moment.min.js b/admin/bower_components/moment/min/moment.min.js deleted file mode 100644 index 770f8bc..0000000 --- a/admin/bower_components/moment/min/moment.min.js +++ /dev/null @@ -1,7 +0,0 @@ -//! moment.js -//! version : 2.18.1 -//! authors : Tim Wood, Iskren Chernev, Moment.js contributors -//! license : MIT -//! momentjs.com -!function(a,b){"object"==typeof exports&&"undefined"!=typeof module?module.exports=b():"function"==typeof define&&define.amd?define(b):a.moment=b()}(this,function(){"use strict";function a(){return sd.apply(null,arguments)}function b(a){sd=a}function c(a){return a instanceof Array||"[object Array]"===Object.prototype.toString.call(a)}function d(a){return null!=a&&"[object Object]"===Object.prototype.toString.call(a)}function e(a){var b;for(b in a)return!1;return!0}function f(a){return void 0===a}function g(a){return"number"==typeof a||"[object Number]"===Object.prototype.toString.call(a)}function h(a){return a instanceof Date||"[object Date]"===Object.prototype.toString.call(a)}function i(a,b){var c,d=[];for(c=0;c<a.length;++c)d.push(b(a[c],c));return d}function j(a,b){return Object.prototype.hasOwnProperty.call(a,b)}function k(a,b){for(var c in b)j(b,c)&&(a[c]=b[c]);return j(b,"toString")&&(a.toString=b.toString),j(b,"valueOf")&&(a.valueOf=b.valueOf),a}function l(a,b,c,d){return sb(a,b,c,d,!0).utc()}function m(){return{empty:!1,unusedTokens:[],unusedInput:[],overflow:-2,charsLeftOver:0,nullInput:!1,invalidMonth:null,invalidFormat:!1,userInvalidated:!1,iso:!1,parsedDateParts:[],meridiem:null,rfc2822:!1,weekdayMismatch:!1}}function n(a){return null==a._pf&&(a._pf=m()),a._pf}function o(a){if(null==a._isValid){var b=n(a),c=ud.call(b.parsedDateParts,function(a){return null!=a}),d=!isNaN(a._d.getTime())&&b.overflow<0&&!b.empty&&!b.invalidMonth&&!b.invalidWeekday&&!b.nullInput&&!b.invalidFormat&&!b.userInvalidated&&(!b.meridiem||b.meridiem&&c);if(a._strict&&(d=d&&0===b.charsLeftOver&&0===b.unusedTokens.length&&void 0===b.bigHour),null!=Object.isFrozen&&Object.isFrozen(a))return d;a._isValid=d}return a._isValid}function p(a){var b=l(NaN);return null!=a?k(n(b),a):n(b).userInvalidated=!0,b}function q(a,b){var c,d,e;if(f(b._isAMomentObject)||(a._isAMomentObject=b._isAMomentObject),f(b._i)||(a._i=b._i),f(b._f)||(a._f=b._f),f(b._l)||(a._l=b._l),f(b._strict)||(a._strict=b._strict),f(b._tzm)||(a._tzm=b._tzm),f(b._isUTC)||(a._isUTC=b._isUTC),f(b._offset)||(a._offset=b._offset),f(b._pf)||(a._pf=n(b)),f(b._locale)||(a._locale=b._locale),vd.length>0)for(c=0;c<vd.length;c++)d=vd[c],e=b[d],f(e)||(a[d]=e);return a}function r(b){q(this,b),this._d=new Date(null!=b._d?b._d.getTime():NaN),this.isValid()||(this._d=new Date(NaN)),wd===!1&&(wd=!0,a.updateOffset(this),wd=!1)}function s(a){return a instanceof r||null!=a&&null!=a._isAMomentObject}function t(a){return a<0?Math.ceil(a)||0:Math.floor(a)}function u(a){var b=+a,c=0;return 0!==b&&isFinite(b)&&(c=t(b)),c}function v(a,b,c){var d,e=Math.min(a.length,b.length),f=Math.abs(a.length-b.length),g=0;for(d=0;d<e;d++)(c&&a[d]!==b[d]||!c&&u(a[d])!==u(b[d]))&&g++;return g+f}function w(b){a.suppressDeprecationWarnings===!1&&"undefined"!=typeof console&&console.warn&&console.warn("Deprecation warning: "+b)}function x(b,c){var d=!0;return k(function(){if(null!=a.deprecationHandler&&a.deprecationHandler(null,b),d){for(var e,f=[],g=0;g<arguments.length;g++){if(e="","object"==typeof arguments[g]){e+="\n["+g+"] ";for(var h in arguments[0])e+=h+": "+arguments[0][h]+", ";e=e.slice(0,-2)}else e=arguments[g];f.push(e)}w(b+"\nArguments: "+Array.prototype.slice.call(f).join("")+"\n"+(new Error).stack),d=!1}return c.apply(this,arguments)},c)}function y(b,c){null!=a.deprecationHandler&&a.deprecationHandler(b,c),xd[b]||(w(c),xd[b]=!0)}function z(a){return a instanceof Function||"[object Function]"===Object.prototype.toString.call(a)}function A(a){var b,c;for(c in a)b=a[c],z(b)?this[c]=b:this["_"+c]=b;this._config=a,this._dayOfMonthOrdinalParseLenient=new RegExp((this._dayOfMonthOrdinalParse.source||this._ordinalParse.source)+"|"+/\d{1,2}/.source)}function B(a,b){var c,e=k({},a);for(c in b)j(b,c)&&(d(a[c])&&d(b[c])?(e[c]={},k(e[c],a[c]),k(e[c],b[c])):null!=b[c]?e[c]=b[c]:delete e[c]);for(c in a)j(a,c)&&!j(b,c)&&d(a[c])&&(e[c]=k({},e[c]));return e}function C(a){null!=a&&this.set(a)}function D(a,b,c){var d=this._calendar[a]||this._calendar.sameElse;return z(d)?d.call(b,c):d}function E(a){var b=this._longDateFormat[a],c=this._longDateFormat[a.toUpperCase()];return b||!c?b:(this._longDateFormat[a]=c.replace(/MMMM|MM|DD|dddd/g,function(a){return a.slice(1)}),this._longDateFormat[a])}function F(){return this._invalidDate}function G(a){return this._ordinal.replace("%d",a)}function H(a,b,c,d){var e=this._relativeTime[c];return z(e)?e(a,b,c,d):e.replace(/%d/i,a)}function I(a,b){var c=this._relativeTime[a>0?"future":"past"];return z(c)?c(b):c.replace(/%s/i,b)}function J(a,b){var c=a.toLowerCase();Hd[c]=Hd[c+"s"]=Hd[b]=a}function K(a){return"string"==typeof a?Hd[a]||Hd[a.toLowerCase()]:void 0}function L(a){var b,c,d={};for(c in a)j(a,c)&&(b=K(c),b&&(d[b]=a[c]));return d}function M(a,b){Id[a]=b}function N(a){var b=[];for(var c in a)b.push({unit:c,priority:Id[c]});return b.sort(function(a,b){return a.priority-b.priority}),b}function O(b,c){return function(d){return null!=d?(Q(this,b,d),a.updateOffset(this,c),this):P(this,b)}}function P(a,b){return a.isValid()?a._d["get"+(a._isUTC?"UTC":"")+b]():NaN}function Q(a,b,c){a.isValid()&&a._d["set"+(a._isUTC?"UTC":"")+b](c)}function R(a){return a=K(a),z(this[a])?this[a]():this}function S(a,b){if("object"==typeof a){a=L(a);for(var c=N(a),d=0;d<c.length;d++)this[c[d].unit](a[c[d].unit])}else if(a=K(a),z(this[a]))return this[a](b);return this}function T(a,b,c){var d=""+Math.abs(a),e=b-d.length,f=a>=0;return(f?c?"+":"":"-")+Math.pow(10,Math.max(0,e)).toString().substr(1)+d}function U(a,b,c,d){var e=d;"string"==typeof d&&(e=function(){return this[d]()}),a&&(Md[a]=e),b&&(Md[b[0]]=function(){return T(e.apply(this,arguments),b[1],b[2])}),c&&(Md[c]=function(){return this.localeData().ordinal(e.apply(this,arguments),a)})}function V(a){return a.match(/\[[\s\S]/)?a.replace(/^\[|\]$/g,""):a.replace(/\\/g,"")}function W(a){var b,c,d=a.match(Jd);for(b=0,c=d.length;b<c;b++)Md[d[b]]?d[b]=Md[d[b]]:d[b]=V(d[b]);return function(b){var e,f="";for(e=0;e<c;e++)f+=z(d[e])?d[e].call(b,a):d[e];return f}}function X(a,b){return a.isValid()?(b=Y(b,a.localeData()),Ld[b]=Ld[b]||W(b),Ld[b](a)):a.localeData().invalidDate()}function Y(a,b){function c(a){return b.longDateFormat(a)||a}var d=5;for(Kd.lastIndex=0;d>=0&&Kd.test(a);)a=a.replace(Kd,c),Kd.lastIndex=0,d-=1;return a}function Z(a,b,c){ce[a]=z(b)?b:function(a,d){return a&&c?c:b}}function $(a,b){return j(ce,a)?ce[a](b._strict,b._locale):new RegExp(_(a))}function _(a){return aa(a.replace("\\","").replace(/\\(\[)|\\(\])|\[([^\]\[]*)\]|\\(.)/g,function(a,b,c,d,e){return b||c||d||e}))}function aa(a){return a.replace(/[-\/\\^$*+?.()|[\]{}]/g,"\\$&")}function ba(a,b){var c,d=b;for("string"==typeof a&&(a=[a]),g(b)&&(d=function(a,c){c[b]=u(a)}),c=0;c<a.length;c++)de[a[c]]=d}function ca(a,b){ba(a,function(a,c,d,e){d._w=d._w||{},b(a,d._w,d,e)})}function da(a,b,c){null!=b&&j(de,a)&&de[a](b,c._a,c,a)}function ea(a,b){return new Date(Date.UTC(a,b+1,0)).getUTCDate()}function fa(a,b){return a?c(this._months)?this._months[a.month()]:this._months[(this._months.isFormat||oe).test(b)?"format":"standalone"][a.month()]:c(this._months)?this._months:this._months.standalone}function ga(a,b){return a?c(this._monthsShort)?this._monthsShort[a.month()]:this._monthsShort[oe.test(b)?"format":"standalone"][a.month()]:c(this._monthsShort)?this._monthsShort:this._monthsShort.standalone}function ha(a,b,c){var d,e,f,g=a.toLocaleLowerCase();if(!this._monthsParse)for(this._monthsParse=[],this._longMonthsParse=[],this._shortMonthsParse=[],d=0;d<12;++d)f=l([2e3,d]),this._shortMonthsParse[d]=this.monthsShort(f,"").toLocaleLowerCase(),this._longMonthsParse[d]=this.months(f,"").toLocaleLowerCase();return c?"MMM"===b?(e=ne.call(this._shortMonthsParse,g),e!==-1?e:null):(e=ne.call(this._longMonthsParse,g),e!==-1?e:null):"MMM"===b?(e=ne.call(this._shortMonthsParse,g),e!==-1?e:(e=ne.call(this._longMonthsParse,g),e!==-1?e:null)):(e=ne.call(this._longMonthsParse,g),e!==-1?e:(e=ne.call(this._shortMonthsParse,g),e!==-1?e:null))}function ia(a,b,c){var d,e,f;if(this._monthsParseExact)return ha.call(this,a,b,c);for(this._monthsParse||(this._monthsParse=[],this._longMonthsParse=[],this._shortMonthsParse=[]),d=0;d<12;d++){if(e=l([2e3,d]),c&&!this._longMonthsParse[d]&&(this._longMonthsParse[d]=new RegExp("^"+this.months(e,"").replace(".","")+"$","i"),this._shortMonthsParse[d]=new RegExp("^"+this.monthsShort(e,"").replace(".","")+"$","i")),c||this._monthsParse[d]||(f="^"+this.months(e,"")+"|^"+this.monthsShort(e,""),this._monthsParse[d]=new RegExp(f.replace(".",""),"i")),c&&"MMMM"===b&&this._longMonthsParse[d].test(a))return d;if(c&&"MMM"===b&&this._shortMonthsParse[d].test(a))return d;if(!c&&this._monthsParse[d].test(a))return d}}function ja(a,b){var c;if(!a.isValid())return a;if("string"==typeof b)if(/^\d+$/.test(b))b=u(b);else if(b=a.localeData().monthsParse(b),!g(b))return a;return c=Math.min(a.date(),ea(a.year(),b)),a._d["set"+(a._isUTC?"UTC":"")+"Month"](b,c),a}function ka(b){return null!=b?(ja(this,b),a.updateOffset(this,!0),this):P(this,"Month")}function la(){return ea(this.year(),this.month())}function ma(a){return this._monthsParseExact?(j(this,"_monthsRegex")||oa.call(this),a?this._monthsShortStrictRegex:this._monthsShortRegex):(j(this,"_monthsShortRegex")||(this._monthsShortRegex=re),this._monthsShortStrictRegex&&a?this._monthsShortStrictRegex:this._monthsShortRegex)}function na(a){return this._monthsParseExact?(j(this,"_monthsRegex")||oa.call(this),a?this._monthsStrictRegex:this._monthsRegex):(j(this,"_monthsRegex")||(this._monthsRegex=se),this._monthsStrictRegex&&a?this._monthsStrictRegex:this._monthsRegex)}function oa(){function a(a,b){return b.length-a.length}var b,c,d=[],e=[],f=[];for(b=0;b<12;b++)c=l([2e3,b]),d.push(this.monthsShort(c,"")),e.push(this.months(c,"")),f.push(this.months(c,"")),f.push(this.monthsShort(c,""));for(d.sort(a),e.sort(a),f.sort(a),b=0;b<12;b++)d[b]=aa(d[b]),e[b]=aa(e[b]);for(b=0;b<24;b++)f[b]=aa(f[b]);this._monthsRegex=new RegExp("^("+f.join("|")+")","i"),this._monthsShortRegex=this._monthsRegex,this._monthsStrictRegex=new RegExp("^("+e.join("|")+")","i"),this._monthsShortStrictRegex=new RegExp("^("+d.join("|")+")","i")}function pa(a){return qa(a)?366:365}function qa(a){return a%4===0&&a%100!==0||a%400===0}function ra(){return qa(this.year())}function sa(a,b,c,d,e,f,g){var h=new Date(a,b,c,d,e,f,g);return a<100&&a>=0&&isFinite(h.getFullYear())&&h.setFullYear(a),h}function ta(a){var b=new Date(Date.UTC.apply(null,arguments));return a<100&&a>=0&&isFinite(b.getUTCFullYear())&&b.setUTCFullYear(a),b}function ua(a,b,c){var d=7+b-c,e=(7+ta(a,0,d).getUTCDay()-b)%7;return-e+d-1}function va(a,b,c,d,e){var f,g,h=(7+c-d)%7,i=ua(a,d,e),j=1+7*(b-1)+h+i;return j<=0?(f=a-1,g=pa(f)+j):j>pa(a)?(f=a+1,g=j-pa(a)):(f=a,g=j),{year:f,dayOfYear:g}}function wa(a,b,c){var d,e,f=ua(a.year(),b,c),g=Math.floor((a.dayOfYear()-f-1)/7)+1;return g<1?(e=a.year()-1,d=g+xa(e,b,c)):g>xa(a.year(),b,c)?(d=g-xa(a.year(),b,c),e=a.year()+1):(e=a.year(),d=g),{week:d,year:e}}function xa(a,b,c){var d=ua(a,b,c),e=ua(a+1,b,c);return(pa(a)-d+e)/7}function ya(a){return wa(a,this._week.dow,this._week.doy).week}function za(){return this._week.dow}function Aa(){return this._week.doy}function Ba(a){var b=this.localeData().week(this);return null==a?b:this.add(7*(a-b),"d")}function Ca(a){var b=wa(this,1,4).week;return null==a?b:this.add(7*(a-b),"d")}function Da(a,b){return"string"!=typeof a?a:isNaN(a)?(a=b.weekdaysParse(a),"number"==typeof a?a:null):parseInt(a,10)}function Ea(a,b){return"string"==typeof a?b.weekdaysParse(a)%7||7:isNaN(a)?null:a}function Fa(a,b){return a?c(this._weekdays)?this._weekdays[a.day()]:this._weekdays[this._weekdays.isFormat.test(b)?"format":"standalone"][a.day()]:c(this._weekdays)?this._weekdays:this._weekdays.standalone}function Ga(a){return a?this._weekdaysShort[a.day()]:this._weekdaysShort}function Ha(a){return a?this._weekdaysMin[a.day()]:this._weekdaysMin}function Ia(a,b,c){var d,e,f,g=a.toLocaleLowerCase();if(!this._weekdaysParse)for(this._weekdaysParse=[],this._shortWeekdaysParse=[],this._minWeekdaysParse=[],d=0;d<7;++d)f=l([2e3,1]).day(d),this._minWeekdaysParse[d]=this.weekdaysMin(f,"").toLocaleLowerCase(),this._shortWeekdaysParse[d]=this.weekdaysShort(f,"").toLocaleLowerCase(),this._weekdaysParse[d]=this.weekdays(f,"").toLocaleLowerCase();return c?"dddd"===b?(e=ne.call(this._weekdaysParse,g),e!==-1?e:null):"ddd"===b?(e=ne.call(this._shortWeekdaysParse,g),e!==-1?e:null):(e=ne.call(this._minWeekdaysParse,g),e!==-1?e:null):"dddd"===b?(e=ne.call(this._weekdaysParse,g),e!==-1?e:(e=ne.call(this._shortWeekdaysParse,g),e!==-1?e:(e=ne.call(this._minWeekdaysParse,g),e!==-1?e:null))):"ddd"===b?(e=ne.call(this._shortWeekdaysParse,g),e!==-1?e:(e=ne.call(this._weekdaysParse,g),e!==-1?e:(e=ne.call(this._minWeekdaysParse,g),e!==-1?e:null))):(e=ne.call(this._minWeekdaysParse,g),e!==-1?e:(e=ne.call(this._weekdaysParse,g),e!==-1?e:(e=ne.call(this._shortWeekdaysParse,g),e!==-1?e:null)))}function Ja(a,b,c){var d,e,f;if(this._weekdaysParseExact)return Ia.call(this,a,b,c);for(this._weekdaysParse||(this._weekdaysParse=[],this._minWeekdaysParse=[],this._shortWeekdaysParse=[],this._fullWeekdaysParse=[]),d=0;d<7;d++){if(e=l([2e3,1]).day(d),c&&!this._fullWeekdaysParse[d]&&(this._fullWeekdaysParse[d]=new RegExp("^"+this.weekdays(e,"").replace(".",".?")+"$","i"),this._shortWeekdaysParse[d]=new RegExp("^"+this.weekdaysShort(e,"").replace(".",".?")+"$","i"),this._minWeekdaysParse[d]=new RegExp("^"+this.weekdaysMin(e,"").replace(".",".?")+"$","i")),this._weekdaysParse[d]||(f="^"+this.weekdays(e,"")+"|^"+this.weekdaysShort(e,"")+"|^"+this.weekdaysMin(e,""),this._weekdaysParse[d]=new RegExp(f.replace(".",""),"i")),c&&"dddd"===b&&this._fullWeekdaysParse[d].test(a))return d;if(c&&"ddd"===b&&this._shortWeekdaysParse[d].test(a))return d;if(c&&"dd"===b&&this._minWeekdaysParse[d].test(a))return d;if(!c&&this._weekdaysParse[d].test(a))return d}}function Ka(a){if(!this.isValid())return null!=a?this:NaN;var b=this._isUTC?this._d.getUTCDay():this._d.getDay();return null!=a?(a=Da(a,this.localeData()),this.add(a-b,"d")):b}function La(a){if(!this.isValid())return null!=a?this:NaN;var b=(this.day()+7-this.localeData()._week.dow)%7;return null==a?b:this.add(a-b,"d")}function Ma(a){if(!this.isValid())return null!=a?this:NaN;if(null!=a){var b=Ea(a,this.localeData());return this.day(this.day()%7?b:b-7)}return this.day()||7}function Na(a){return this._weekdaysParseExact?(j(this,"_weekdaysRegex")||Qa.call(this),a?this._weekdaysStrictRegex:this._weekdaysRegex):(j(this,"_weekdaysRegex")||(this._weekdaysRegex=ye),this._weekdaysStrictRegex&&a?this._weekdaysStrictRegex:this._weekdaysRegex)}function Oa(a){return this._weekdaysParseExact?(j(this,"_weekdaysRegex")||Qa.call(this),a?this._weekdaysShortStrictRegex:this._weekdaysShortRegex):(j(this,"_weekdaysShortRegex")||(this._weekdaysShortRegex=ze),this._weekdaysShortStrictRegex&&a?this._weekdaysShortStrictRegex:this._weekdaysShortRegex)}function Pa(a){return this._weekdaysParseExact?(j(this,"_weekdaysRegex")||Qa.call(this),a?this._weekdaysMinStrictRegex:this._weekdaysMinRegex):(j(this,"_weekdaysMinRegex")||(this._weekdaysMinRegex=Ae),this._weekdaysMinStrictRegex&&a?this._weekdaysMinStrictRegex:this._weekdaysMinRegex)}function Qa(){function a(a,b){return b.length-a.length}var b,c,d,e,f,g=[],h=[],i=[],j=[];for(b=0;b<7;b++)c=l([2e3,1]).day(b),d=this.weekdaysMin(c,""),e=this.weekdaysShort(c,""),f=this.weekdays(c,""),g.push(d),h.push(e),i.push(f),j.push(d),j.push(e),j.push(f);for(g.sort(a),h.sort(a),i.sort(a),j.sort(a),b=0;b<7;b++)h[b]=aa(h[b]),i[b]=aa(i[b]),j[b]=aa(j[b]);this._weekdaysRegex=new RegExp("^("+j.join("|")+")","i"),this._weekdaysShortRegex=this._weekdaysRegex,this._weekdaysMinRegex=this._weekdaysRegex,this._weekdaysStrictRegex=new RegExp("^("+i.join("|")+")","i"),this._weekdaysShortStrictRegex=new RegExp("^("+h.join("|")+")","i"),this._weekdaysMinStrictRegex=new RegExp("^("+g.join("|")+")","i")}function Ra(){return this.hours()%12||12}function Sa(){return this.hours()||24}function Ta(a,b){U(a,0,0,function(){return this.localeData().meridiem(this.hours(),this.minutes(),b)})}function Ua(a,b){return b._meridiemParse}function Va(a){return"p"===(a+"").toLowerCase().charAt(0)}function Wa(a,b,c){return a>11?c?"pm":"PM":c?"am":"AM"}function Xa(a){return a?a.toLowerCase().replace("_","-"):a}function Ya(a){for(var b,c,d,e,f=0;f<a.length;){for(e=Xa(a[f]).split("-"),b=e.length,c=Xa(a[f+1]),c=c?c.split("-"):null;b>0;){if(d=Za(e.slice(0,b).join("-")))return d;if(c&&c.length>=b&&v(e,c,!0)>=b-1)break;b--}f++}return null}function Za(a){var b=null;if(!Fe[a]&&"undefined"!=typeof module&&module&&module.exports)try{b=Be._abbr,require("./locale/"+a),$a(b)}catch(a){}return Fe[a]}function $a(a,b){var c;return a&&(c=f(b)?bb(a):_a(a,b),c&&(Be=c)),Be._abbr}function _a(a,b){if(null!==b){var c=Ee;if(b.abbr=a,null!=Fe[a])y("defineLocaleOverride","use moment.updateLocale(localeName, config) to change an existing locale. moment.defineLocale(localeName, config) should only be used for creating a new locale See http://momentjs.com/guides/#/warnings/define-locale/ for more info."),c=Fe[a]._config;else if(null!=b.parentLocale){if(null==Fe[b.parentLocale])return Ge[b.parentLocale]||(Ge[b.parentLocale]=[]),Ge[b.parentLocale].push({name:a,config:b}),null;c=Fe[b.parentLocale]._config}return Fe[a]=new C(B(c,b)),Ge[a]&&Ge[a].forEach(function(a){_a(a.name,a.config)}),$a(a),Fe[a]}return delete Fe[a],null}function ab(a,b){if(null!=b){var c,d=Ee;null!=Fe[a]&&(d=Fe[a]._config),b=B(d,b),c=new C(b),c.parentLocale=Fe[a],Fe[a]=c,$a(a)}else null!=Fe[a]&&(null!=Fe[a].parentLocale?Fe[a]=Fe[a].parentLocale:null!=Fe[a]&&delete Fe[a]);return Fe[a]}function bb(a){var b;if(a&&a._locale&&a._locale._abbr&&(a=a._locale._abbr),!a)return Be;if(!c(a)){if(b=Za(a))return b;a=[a]}return Ya(a)}function cb(){return Ad(Fe)}function db(a){var b,c=a._a;return c&&n(a).overflow===-2&&(b=c[fe]<0||c[fe]>11?fe:c[ge]<1||c[ge]>ea(c[ee],c[fe])?ge:c[he]<0||c[he]>24||24===c[he]&&(0!==c[ie]||0!==c[je]||0!==c[ke])?he:c[ie]<0||c[ie]>59?ie:c[je]<0||c[je]>59?je:c[ke]<0||c[ke]>999?ke:-1,n(a)._overflowDayOfYear&&(b<ee||b>ge)&&(b=ge),n(a)._overflowWeeks&&b===-1&&(b=le),n(a)._overflowWeekday&&b===-1&&(b=me),n(a).overflow=b),a}function eb(a){var b,c,d,e,f,g,h=a._i,i=He.exec(h)||Ie.exec(h);if(i){for(n(a).iso=!0,b=0,c=Ke.length;b<c;b++)if(Ke[b][1].exec(i[1])){e=Ke[b][0],d=Ke[b][2]!==!1;break}if(null==e)return void(a._isValid=!1);if(i[3]){for(b=0,c=Le.length;b<c;b++)if(Le[b][1].exec(i[3])){f=(i[2]||" ")+Le[b][0];break}if(null==f)return void(a._isValid=!1)}if(!d&&null!=f)return void(a._isValid=!1);if(i[4]){if(!Je.exec(i[4]))return void(a._isValid=!1);g="Z"}a._f=e+(f||"")+(g||""),lb(a)}else a._isValid=!1}function fb(a){var b,c,d,e,f,g,h,i,j={" GMT":" +0000"," EDT":" -0400"," EST":" -0500"," CDT":" -0500"," CST":" -0600"," MDT":" -0600"," MST":" -0700"," PDT":" -0700"," PST":" -0800"},k="YXWVUTSRQPONZABCDEFGHIKLM";if(b=a._i.replace(/\([^\)]*\)|[\n\t]/g," ").replace(/(\s\s+)/g," ").replace(/^\s|\s$/g,""),c=Ne.exec(b)){if(d=c[1]?"ddd"+(5===c[1].length?", ":" "):"",e="D MMM "+(c[2].length>10?"YYYY ":"YY "),f="HH:mm"+(c[4]?":ss":""),c[1]){var l=new Date(c[2]),m=["Sun","Mon","Tue","Wed","Thu","Fri","Sat"][l.getDay()];if(c[1].substr(0,3)!==m)return n(a).weekdayMismatch=!0,void(a._isValid=!1)}switch(c[5].length){case 2:0===i?h=" +0000":(i=k.indexOf(c[5][1].toUpperCase())-12,h=(i<0?" -":" +")+(""+i).replace(/^-?/,"0").match(/..$/)[0]+"00");break;case 4:h=j[c[5]];break;default:h=j[" GMT"]}c[5]=h,a._i=c.splice(1).join(""),g=" ZZ",a._f=d+e+f+g,lb(a),n(a).rfc2822=!0}else a._isValid=!1}function gb(b){var c=Me.exec(b._i);return null!==c?void(b._d=new Date(+c[1])):(eb(b),void(b._isValid===!1&&(delete b._isValid,fb(b),b._isValid===!1&&(delete b._isValid,a.createFromInputFallback(b)))))}function hb(a,b,c){return null!=a?a:null!=b?b:c}function ib(b){var c=new Date(a.now());return b._useUTC?[c.getUTCFullYear(),c.getUTCMonth(),c.getUTCDate()]:[c.getFullYear(),c.getMonth(),c.getDate()]}function jb(a){var b,c,d,e,f=[];if(!a._d){for(d=ib(a),a._w&&null==a._a[ge]&&null==a._a[fe]&&kb(a),null!=a._dayOfYear&&(e=hb(a._a[ee],d[ee]),(a._dayOfYear>pa(e)||0===a._dayOfYear)&&(n(a)._overflowDayOfYear=!0),c=ta(e,0,a._dayOfYear),a._a[fe]=c.getUTCMonth(),a._a[ge]=c.getUTCDate()),b=0;b<3&&null==a._a[b];++b)a._a[b]=f[b]=d[b];for(;b<7;b++)a._a[b]=f[b]=null==a._a[b]?2===b?1:0:a._a[b];24===a._a[he]&&0===a._a[ie]&&0===a._a[je]&&0===a._a[ke]&&(a._nextDay=!0,a._a[he]=0),a._d=(a._useUTC?ta:sa).apply(null,f),null!=a._tzm&&a._d.setUTCMinutes(a._d.getUTCMinutes()-a._tzm),a._nextDay&&(a._a[he]=24)}}function kb(a){var b,c,d,e,f,g,h,i;if(b=a._w,null!=b.GG||null!=b.W||null!=b.E)f=1,g=4,c=hb(b.GG,a._a[ee],wa(tb(),1,4).year),d=hb(b.W,1),e=hb(b.E,1),(e<1||e>7)&&(i=!0);else{f=a._locale._week.dow,g=a._locale._week.doy;var j=wa(tb(),f,g);c=hb(b.gg,a._a[ee],j.year),d=hb(b.w,j.week),null!=b.d?(e=b.d,(e<0||e>6)&&(i=!0)):null!=b.e?(e=b.e+f,(b.e<0||b.e>6)&&(i=!0)):e=f}d<1||d>xa(c,f,g)?n(a)._overflowWeeks=!0:null!=i?n(a)._overflowWeekday=!0:(h=va(c,d,e,f,g),a._a[ee]=h.year,a._dayOfYear=h.dayOfYear)}function lb(b){if(b._f===a.ISO_8601)return void eb(b);if(b._f===a.RFC_2822)return void fb(b);b._a=[],n(b).empty=!0;var c,d,e,f,g,h=""+b._i,i=h.length,j=0;for(e=Y(b._f,b._locale).match(Jd)||[],c=0;c<e.length;c++)f=e[c],d=(h.match($(f,b))||[])[0],d&&(g=h.substr(0,h.indexOf(d)),g.length>0&&n(b).unusedInput.push(g),h=h.slice(h.indexOf(d)+d.length),j+=d.length),Md[f]?(d?n(b).empty=!1:n(b).unusedTokens.push(f),da(f,d,b)):b._strict&&!d&&n(b).unusedTokens.push(f);n(b).charsLeftOver=i-j,h.length>0&&n(b).unusedInput.push(h),b._a[he]<=12&&n(b).bigHour===!0&&b._a[he]>0&&(n(b).bigHour=void 0),n(b).parsedDateParts=b._a.slice(0),n(b).meridiem=b._meridiem,b._a[he]=mb(b._locale,b._a[he],b._meridiem),jb(b),db(b)}function mb(a,b,c){var d;return null==c?b:null!=a.meridiemHour?a.meridiemHour(b,c):null!=a.isPM?(d=a.isPM(c),d&&b<12&&(b+=12),d||12!==b||(b=0),b):b}function nb(a){var b,c,d,e,f;if(0===a._f.length)return n(a).invalidFormat=!0,void(a._d=new Date(NaN));for(e=0;e<a._f.length;e++)f=0,b=q({},a),null!=a._useUTC&&(b._useUTC=a._useUTC),b._f=a._f[e],lb(b),o(b)&&(f+=n(b).charsLeftOver,f+=10*n(b).unusedTokens.length,n(b).score=f,(null==d||f<d)&&(d=f,c=b));k(a,c||b)}function ob(a){if(!a._d){var b=L(a._i);a._a=i([b.year,b.month,b.day||b.date,b.hour,b.minute,b.second,b.millisecond],function(a){return a&&parseInt(a,10)}),jb(a)}}function pb(a){var b=new r(db(qb(a)));return b._nextDay&&(b.add(1,"d"),b._nextDay=void 0),b}function qb(a){var b=a._i,d=a._f;return a._locale=a._locale||bb(a._l),null===b||void 0===d&&""===b?p({nullInput:!0}):("string"==typeof b&&(a._i=b=a._locale.preparse(b)),s(b)?new r(db(b)):(h(b)?a._d=b:c(d)?nb(a):d?lb(a):rb(a),o(a)||(a._d=null),a))}function rb(b){var e=b._i;f(e)?b._d=new Date(a.now()):h(e)?b._d=new Date(e.valueOf()):"string"==typeof e?gb(b):c(e)?(b._a=i(e.slice(0),function(a){return parseInt(a,10)}),jb(b)):d(e)?ob(b):g(e)?b._d=new Date(e):a.createFromInputFallback(b)}function sb(a,b,f,g,h){var i={};return f!==!0&&f!==!1||(g=f,f=void 0),(d(a)&&e(a)||c(a)&&0===a.length)&&(a=void 0),i._isAMomentObject=!0,i._useUTC=i._isUTC=h,i._l=f,i._i=a,i._f=b,i._strict=g,pb(i)}function tb(a,b,c,d){return sb(a,b,c,d,!1)}function ub(a,b){var d,e;if(1===b.length&&c(b[0])&&(b=b[0]),!b.length)return tb();for(d=b[0],e=1;e<b.length;++e)b[e].isValid()&&!b[e][a](d)||(d=b[e]);return d}function vb(){var a=[].slice.call(arguments,0);return ub("isBefore",a)}function wb(){var a=[].slice.call(arguments,0);return ub("isAfter",a)}function xb(a){for(var b in a)if(Re.indexOf(b)===-1||null!=a[b]&&isNaN(a[b]))return!1;for(var c=!1,d=0;d<Re.length;++d)if(a[Re[d]]){if(c)return!1;parseFloat(a[Re[d]])!==u(a[Re[d]])&&(c=!0)}return!0}function yb(){return this._isValid}function zb(){return Sb(NaN)}function Ab(a){var b=L(a),c=b.year||0,d=b.quarter||0,e=b.month||0,f=b.week||0,g=b.day||0,h=b.hour||0,i=b.minute||0,j=b.second||0,k=b.millisecond||0;this._isValid=xb(b),this._milliseconds=+k+1e3*j+6e4*i+1e3*h*60*60,this._days=+g+7*f,this._months=+e+3*d+12*c,this._data={},this._locale=bb(),this._bubble()}function Bb(a){return a instanceof Ab}function Cb(a){return a<0?Math.round(-1*a)*-1:Math.round(a)}function Db(a,b){U(a,0,0,function(){var a=this.utcOffset(),c="+";return a<0&&(a=-a,c="-"),c+T(~~(a/60),2)+b+T(~~a%60,2)})}function Eb(a,b){var c=(b||"").match(a);if(null===c)return null;var d=c[c.length-1]||[],e=(d+"").match(Se)||["-",0,0],f=+(60*e[1])+u(e[2]);return 0===f?0:"+"===e[0]?f:-f}function Fb(b,c){var d,e;return c._isUTC?(d=c.clone(),e=(s(b)||h(b)?b.valueOf():tb(b).valueOf())-d.valueOf(),d._d.setTime(d._d.valueOf()+e),a.updateOffset(d,!1),d):tb(b).local()}function Gb(a){return 15*-Math.round(a._d.getTimezoneOffset()/15)}function Hb(b,c,d){var e,f=this._offset||0;if(!this.isValid())return null!=b?this:NaN;if(null!=b){if("string"==typeof b){if(b=Eb(_d,b),null===b)return this}else Math.abs(b)<16&&!d&&(b=60*b);return!this._isUTC&&c&&(e=Gb(this)),this._offset=b,this._isUTC=!0,null!=e&&this.add(e,"m"),f!==b&&(!c||this._changeInProgress?Xb(this,Sb(b-f,"m"),1,!1):this._changeInProgress||(this._changeInProgress=!0,a.updateOffset(this,!0),this._changeInProgress=null)),this}return this._isUTC?f:Gb(this)}function Ib(a,b){return null!=a?("string"!=typeof a&&(a=-a),this.utcOffset(a,b),this):-this.utcOffset()}function Jb(a){return this.utcOffset(0,a)}function Kb(a){return this._isUTC&&(this.utcOffset(0,a),this._isUTC=!1,a&&this.subtract(Gb(this),"m")),this}function Lb(){if(null!=this._tzm)this.utcOffset(this._tzm,!1,!0);else if("string"==typeof this._i){var a=Eb($d,this._i);null!=a?this.utcOffset(a):this.utcOffset(0,!0)}return this}function Mb(a){return!!this.isValid()&&(a=a?tb(a).utcOffset():0,(this.utcOffset()-a)%60===0)}function Nb(){return this.utcOffset()>this.clone().month(0).utcOffset()||this.utcOffset()>this.clone().month(5).utcOffset()}function Ob(){if(!f(this._isDSTShifted))return this._isDSTShifted;var a={};if(q(a,this),a=qb(a),a._a){var b=a._isUTC?l(a._a):tb(a._a);this._isDSTShifted=this.isValid()&&v(a._a,b.toArray())>0}else this._isDSTShifted=!1;return this._isDSTShifted}function Pb(){return!!this.isValid()&&!this._isUTC}function Qb(){return!!this.isValid()&&this._isUTC}function Rb(){return!!this.isValid()&&(this._isUTC&&0===this._offset)}function Sb(a,b){var c,d,e,f=a,h=null;return Bb(a)?f={ms:a._milliseconds,d:a._days,M:a._months}:g(a)?(f={},b?f[b]=a:f.milliseconds=a):(h=Te.exec(a))?(c="-"===h[1]?-1:1,f={y:0,d:u(h[ge])*c,h:u(h[he])*c,m:u(h[ie])*c,s:u(h[je])*c,ms:u(Cb(1e3*h[ke]))*c}):(h=Ue.exec(a))?(c="-"===h[1]?-1:1,f={y:Tb(h[2],c),M:Tb(h[3],c),w:Tb(h[4],c),d:Tb(h[5],c),h:Tb(h[6],c),m:Tb(h[7],c),s:Tb(h[8],c)}):null==f?f={}:"object"==typeof f&&("from"in f||"to"in f)&&(e=Vb(tb(f.from),tb(f.to)),f={},f.ms=e.milliseconds,f.M=e.months),d=new Ab(f),Bb(a)&&j(a,"_locale")&&(d._locale=a._locale),d}function Tb(a,b){var c=a&&parseFloat(a.replace(",","."));return(isNaN(c)?0:c)*b}function Ub(a,b){var c={milliseconds:0,months:0};return c.months=b.month()-a.month()+12*(b.year()-a.year()),a.clone().add(c.months,"M").isAfter(b)&&--c.months,c.milliseconds=+b-+a.clone().add(c.months,"M"),c}function Vb(a,b){var c;return a.isValid()&&b.isValid()?(b=Fb(b,a),a.isBefore(b)?c=Ub(a,b):(c=Ub(b,a),c.milliseconds=-c.milliseconds,c.months=-c.months),c):{milliseconds:0,months:0}}function Wb(a,b){return function(c,d){var e,f;return null===d||isNaN(+d)||(y(b,"moment()."+b+"(period, number) is deprecated. Please use moment()."+b+"(number, period). See http://momentjs.com/guides/#/warnings/add-inverted-param/ for more info."),f=c,c=d,d=f),c="string"==typeof c?+c:c,e=Sb(c,d),Xb(this,e,a),this}}function Xb(b,c,d,e){var f=c._milliseconds,g=Cb(c._days),h=Cb(c._months);b.isValid()&&(e=null==e||e,f&&b._d.setTime(b._d.valueOf()+f*d),g&&Q(b,"Date",P(b,"Date")+g*d),h&&ja(b,P(b,"Month")+h*d),e&&a.updateOffset(b,g||h))}function Yb(a,b){var c=a.diff(b,"days",!0);return c<-6?"sameElse":c<-1?"lastWeek":c<0?"lastDay":c<1?"sameDay":c<2?"nextDay":c<7?"nextWeek":"sameElse"}function Zb(b,c){var d=b||tb(),e=Fb(d,this).startOf("day"),f=a.calendarFormat(this,e)||"sameElse",g=c&&(z(c[f])?c[f].call(this,d):c[f]);return this.format(g||this.localeData().calendar(f,this,tb(d)))}function $b(){return new r(this)}function _b(a,b){var c=s(a)?a:tb(a);return!(!this.isValid()||!c.isValid())&&(b=K(f(b)?"millisecond":b),"millisecond"===b?this.valueOf()>c.valueOf():c.valueOf()<this.clone().startOf(b).valueOf())}function ac(a,b){var c=s(a)?a:tb(a);return!(!this.isValid()||!c.isValid())&&(b=K(f(b)?"millisecond":b),"millisecond"===b?this.valueOf()<c.valueOf():this.clone().endOf(b).valueOf()<c.valueOf())}function bc(a,b,c,d){return d=d||"()",("("===d[0]?this.isAfter(a,c):!this.isBefore(a,c))&&(")"===d[1]?this.isBefore(b,c):!this.isAfter(b,c))}function cc(a,b){var c,d=s(a)?a:tb(a);return!(!this.isValid()||!d.isValid())&&(b=K(b||"millisecond"),"millisecond"===b?this.valueOf()===d.valueOf():(c=d.valueOf(),this.clone().startOf(b).valueOf()<=c&&c<=this.clone().endOf(b).valueOf()))}function dc(a,b){return this.isSame(a,b)||this.isAfter(a,b)}function ec(a,b){return this.isSame(a,b)||this.isBefore(a,b)}function fc(a,b,c){var d,e,f,g;return this.isValid()?(d=Fb(a,this),d.isValid()?(e=6e4*(d.utcOffset()-this.utcOffset()),b=K(b),"year"===b||"month"===b||"quarter"===b?(g=gc(this,d),"quarter"===b?g/=3:"year"===b&&(g/=12)):(f=this-d,g="second"===b?f/1e3:"minute"===b?f/6e4:"hour"===b?f/36e5:"day"===b?(f-e)/864e5:"week"===b?(f-e)/6048e5:f),c?g:t(g)):NaN):NaN}function gc(a,b){var c,d,e=12*(b.year()-a.year())+(b.month()-a.month()),f=a.clone().add(e,"months");return b-f<0?(c=a.clone().add(e-1,"months"),d=(b-f)/(f-c)):(c=a.clone().add(e+1,"months"),d=(b-f)/(c-f)),-(e+d)||0}function hc(){return this.clone().locale("en").format("ddd MMM DD YYYY HH:mm:ss [GMT]ZZ")}function ic(){if(!this.isValid())return null;var a=this.clone().utc();return a.year()<0||a.year()>9999?X(a,"YYYYYY-MM-DD[T]HH:mm:ss.SSS[Z]"):z(Date.prototype.toISOString)?this.toDate().toISOString():X(a,"YYYY-MM-DD[T]HH:mm:ss.SSS[Z]")}function jc(){if(!this.isValid())return"moment.invalid(/* "+this._i+" */)";var a="moment",b="";this.isLocal()||(a=0===this.utcOffset()?"moment.utc":"moment.parseZone",b="Z");var c="["+a+'("]',d=0<=this.year()&&this.year()<=9999?"YYYY":"YYYYYY",e="-MM-DD[T]HH:mm:ss.SSS",f=b+'[")]';return this.format(c+d+e+f)}function kc(b){b||(b=this.isUtc()?a.defaultFormatUtc:a.defaultFormat);var c=X(this,b);return this.localeData().postformat(c)}function lc(a,b){return this.isValid()&&(s(a)&&a.isValid()||tb(a).isValid())?Sb({to:this,from:a}).locale(this.locale()).humanize(!b):this.localeData().invalidDate()}function mc(a){return this.from(tb(),a)}function nc(a,b){return this.isValid()&&(s(a)&&a.isValid()||tb(a).isValid())?Sb({from:this,to:a}).locale(this.locale()).humanize(!b):this.localeData().invalidDate()}function oc(a){return this.to(tb(),a)}function pc(a){var b;return void 0===a?this._locale._abbr:(b=bb(a),null!=b&&(this._locale=b),this)}function qc(){return this._locale}function rc(a){switch(a=K(a)){case"year":this.month(0);case"quarter":case"month":this.date(1);case"week":case"isoWeek":case"day":case"date":this.hours(0);case"hour":this.minutes(0);case"minute":this.seconds(0);case"second":this.milliseconds(0)}return"week"===a&&this.weekday(0),"isoWeek"===a&&this.isoWeekday(1),"quarter"===a&&this.month(3*Math.floor(this.month()/3)),this}function sc(a){return a=K(a),void 0===a||"millisecond"===a?this:("date"===a&&(a="day"),this.startOf(a).add(1,"isoWeek"===a?"week":a).subtract(1,"ms"))}function tc(){return this._d.valueOf()-6e4*(this._offset||0)}function uc(){return Math.floor(this.valueOf()/1e3)}function vc(){return new Date(this.valueOf())}function wc(){var a=this;return[a.year(),a.month(),a.date(),a.hour(),a.minute(),a.second(),a.millisecond()]}function xc(){var a=this;return{years:a.year(),months:a.month(),date:a.date(),hours:a.hours(),minutes:a.minutes(),seconds:a.seconds(),milliseconds:a.milliseconds()}}function yc(){return this.isValid()?this.toISOString():null}function zc(){return o(this)}function Ac(){ -return k({},n(this))}function Bc(){return n(this).overflow}function Cc(){return{input:this._i,format:this._f,locale:this._locale,isUTC:this._isUTC,strict:this._strict}}function Dc(a,b){U(0,[a,a.length],0,b)}function Ec(a){return Ic.call(this,a,this.week(),this.weekday(),this.localeData()._week.dow,this.localeData()._week.doy)}function Fc(a){return Ic.call(this,a,this.isoWeek(),this.isoWeekday(),1,4)}function Gc(){return xa(this.year(),1,4)}function Hc(){var a=this.localeData()._week;return xa(this.year(),a.dow,a.doy)}function Ic(a,b,c,d,e){var f;return null==a?wa(this,d,e).year:(f=xa(a,d,e),b>f&&(b=f),Jc.call(this,a,b,c,d,e))}function Jc(a,b,c,d,e){var f=va(a,b,c,d,e),g=ta(f.year,0,f.dayOfYear);return this.year(g.getUTCFullYear()),this.month(g.getUTCMonth()),this.date(g.getUTCDate()),this}function Kc(a){return null==a?Math.ceil((this.month()+1)/3):this.month(3*(a-1)+this.month()%3)}function Lc(a){var b=Math.round((this.clone().startOf("day")-this.clone().startOf("year"))/864e5)+1;return null==a?b:this.add(a-b,"d")}function Mc(a,b){b[ke]=u(1e3*("0."+a))}function Nc(){return this._isUTC?"UTC":""}function Oc(){return this._isUTC?"Coordinated Universal Time":""}function Pc(a){return tb(1e3*a)}function Qc(){return tb.apply(null,arguments).parseZone()}function Rc(a){return a}function Sc(a,b,c,d){var e=bb(),f=l().set(d,b);return e[c](f,a)}function Tc(a,b,c){if(g(a)&&(b=a,a=void 0),a=a||"",null!=b)return Sc(a,b,c,"month");var d,e=[];for(d=0;d<12;d++)e[d]=Sc(a,d,c,"month");return e}function Uc(a,b,c,d){"boolean"==typeof a?(g(b)&&(c=b,b=void 0),b=b||""):(b=a,c=b,a=!1,g(b)&&(c=b,b=void 0),b=b||"");var e=bb(),f=a?e._week.dow:0;if(null!=c)return Sc(b,(c+f)%7,d,"day");var h,i=[];for(h=0;h<7;h++)i[h]=Sc(b,(h+f)%7,d,"day");return i}function Vc(a,b){return Tc(a,b,"months")}function Wc(a,b){return Tc(a,b,"monthsShort")}function Xc(a,b,c){return Uc(a,b,c,"weekdays")}function Yc(a,b,c){return Uc(a,b,c,"weekdaysShort")}function Zc(a,b,c){return Uc(a,b,c,"weekdaysMin")}function $c(){var a=this._data;return this._milliseconds=df(this._milliseconds),this._days=df(this._days),this._months=df(this._months),a.milliseconds=df(a.milliseconds),a.seconds=df(a.seconds),a.minutes=df(a.minutes),a.hours=df(a.hours),a.months=df(a.months),a.years=df(a.years),this}function _c(a,b,c,d){var e=Sb(b,c);return a._milliseconds+=d*e._milliseconds,a._days+=d*e._days,a._months+=d*e._months,a._bubble()}function ad(a,b){return _c(this,a,b,1)}function bd(a,b){return _c(this,a,b,-1)}function cd(a){return a<0?Math.floor(a):Math.ceil(a)}function dd(){var a,b,c,d,e,f=this._milliseconds,g=this._days,h=this._months,i=this._data;return f>=0&&g>=0&&h>=0||f<=0&&g<=0&&h<=0||(f+=864e5*cd(fd(h)+g),g=0,h=0),i.milliseconds=f%1e3,a=t(f/1e3),i.seconds=a%60,b=t(a/60),i.minutes=b%60,c=t(b/60),i.hours=c%24,g+=t(c/24),e=t(ed(g)),h+=e,g-=cd(fd(e)),d=t(h/12),h%=12,i.days=g,i.months=h,i.years=d,this}function ed(a){return 4800*a/146097}function fd(a){return 146097*a/4800}function gd(a){if(!this.isValid())return NaN;var b,c,d=this._milliseconds;if(a=K(a),"month"===a||"year"===a)return b=this._days+d/864e5,c=this._months+ed(b),"month"===a?c:c/12;switch(b=this._days+Math.round(fd(this._months)),a){case"week":return b/7+d/6048e5;case"day":return b+d/864e5;case"hour":return 24*b+d/36e5;case"minute":return 1440*b+d/6e4;case"second":return 86400*b+d/1e3;case"millisecond":return Math.floor(864e5*b)+d;default:throw new Error("Unknown unit "+a)}}function hd(){return this.isValid()?this._milliseconds+864e5*this._days+this._months%12*2592e6+31536e6*u(this._months/12):NaN}function id(a){return function(){return this.as(a)}}function jd(a){return a=K(a),this.isValid()?this[a+"s"]():NaN}function kd(a){return function(){return this.isValid()?this._data[a]:NaN}}function ld(){return t(this.days()/7)}function md(a,b,c,d,e){return e.relativeTime(b||1,!!c,a,d)}function nd(a,b,c){var d=Sb(a).abs(),e=uf(d.as("s")),f=uf(d.as("m")),g=uf(d.as("h")),h=uf(d.as("d")),i=uf(d.as("M")),j=uf(d.as("y")),k=e<=vf.ss&&["s",e]||e<vf.s&&["ss",e]||f<=1&&["m"]||f<vf.m&&["mm",f]||g<=1&&["h"]||g<vf.h&&["hh",g]||h<=1&&["d"]||h<vf.d&&["dd",h]||i<=1&&["M"]||i<vf.M&&["MM",i]||j<=1&&["y"]||["yy",j];return k[2]=b,k[3]=+a>0,k[4]=c,md.apply(null,k)}function od(a){return void 0===a?uf:"function"==typeof a&&(uf=a,!0)}function pd(a,b){return void 0!==vf[a]&&(void 0===b?vf[a]:(vf[a]=b,"s"===a&&(vf.ss=b-1),!0))}function qd(a){if(!this.isValid())return this.localeData().invalidDate();var b=this.localeData(),c=nd(this,!a,b);return a&&(c=b.pastFuture(+this,c)),b.postformat(c)}function rd(){if(!this.isValid())return this.localeData().invalidDate();var a,b,c,d=wf(this._milliseconds)/1e3,e=wf(this._days),f=wf(this._months);a=t(d/60),b=t(a/60),d%=60,a%=60,c=t(f/12),f%=12;var g=c,h=f,i=e,j=b,k=a,l=d,m=this.asSeconds();return m?(m<0?"-":"")+"P"+(g?g+"Y":"")+(h?h+"M":"")+(i?i+"D":"")+(j||k||l?"T":"")+(j?j+"H":"")+(k?k+"M":"")+(l?l+"S":""):"P0D"}var sd,td;td=Array.prototype.some?Array.prototype.some:function(a){for(var b=Object(this),c=b.length>>>0,d=0;d<c;d++)if(d in b&&a.call(this,b[d],d,b))return!0;return!1};var ud=td,vd=a.momentProperties=[],wd=!1,xd={};a.suppressDeprecationWarnings=!1,a.deprecationHandler=null;var yd;yd=Object.keys?Object.keys:function(a){var b,c=[];for(b in a)j(a,b)&&c.push(b);return c};var zd,Ad=yd,Bd={sameDay:"[Today at] LT",nextDay:"[Tomorrow at] LT",nextWeek:"dddd [at] LT",lastDay:"[Yesterday at] LT",lastWeek:"[Last] dddd [at] LT",sameElse:"L"},Cd={LTS:"h:mm:ss A",LT:"h:mm A",L:"MM/DD/YYYY",LL:"MMMM D, YYYY",LLL:"MMMM D, YYYY h:mm A",LLLL:"dddd, MMMM D, YYYY h:mm A"},Dd="Invalid date",Ed="%d",Fd=/\d{1,2}/,Gd={future:"in %s",past:"%s ago",s:"a few seconds",ss:"%d 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"},Hd={},Id={},Jd=/(\[[^\[]*\])|(\\)?([Hh]mm(ss)?|Mo|MM?M?M?|Do|DDDo|DD?D?D?|ddd?d?|do?|w[o|w]?|W[o|W]?|Qo?|YYYYYY|YYYYY|YYYY|YY|gg(ggg?)?|GG(GGG?)?|e|E|a|A|hh?|HH?|kk?|mm?|ss?|S{1,9}|x|X|zz?|ZZ?|.)/g,Kd=/(\[[^\[]*\])|(\\)?(LTS|LT|LL?L?L?|l{1,4})/g,Ld={},Md={},Nd=/\d/,Od=/\d\d/,Pd=/\d{3}/,Qd=/\d{4}/,Rd=/[+-]?\d{6}/,Sd=/\d\d?/,Td=/\d\d\d\d?/,Ud=/\d\d\d\d\d\d?/,Vd=/\d{1,3}/,Wd=/\d{1,4}/,Xd=/[+-]?\d{1,6}/,Yd=/\d+/,Zd=/[+-]?\d+/,$d=/Z|[+-]\d\d:?\d\d/gi,_d=/Z|[+-]\d\d(?::?\d\d)?/gi,ae=/[+-]?\d+(\.\d{1,3})?/,be=/[0-9]*['a-z\u00A0-\u05FF\u0700-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]+|[\u0600-\u06FF\/]+(\s*?[\u0600-\u06FF]+){1,2}/i,ce={},de={},ee=0,fe=1,ge=2,he=3,ie=4,je=5,ke=6,le=7,me=8;zd=Array.prototype.indexOf?Array.prototype.indexOf:function(a){var b;for(b=0;b<this.length;++b)if(this[b]===a)return b;return-1};var ne=zd;U("M",["MM",2],"Mo",function(){return this.month()+1}),U("MMM",0,0,function(a){return this.localeData().monthsShort(this,a)}),U("MMMM",0,0,function(a){return this.localeData().months(this,a)}),J("month","M"),M("month",8),Z("M",Sd),Z("MM",Sd,Od),Z("MMM",function(a,b){return b.monthsShortRegex(a)}),Z("MMMM",function(a,b){return b.monthsRegex(a)}),ba(["M","MM"],function(a,b){b[fe]=u(a)-1}),ba(["MMM","MMMM"],function(a,b,c,d){var e=c._locale.monthsParse(a,d,c._strict);null!=e?b[fe]=e:n(c).invalidMonth=a});var oe=/D[oD]?(\[[^\[\]]*\]|\s)+MMMM?/,pe="January_February_March_April_May_June_July_August_September_October_November_December".split("_"),qe="Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec".split("_"),re=be,se=be;U("Y",0,0,function(){var a=this.year();return a<=9999?""+a:"+"+a}),U(0,["YY",2],0,function(){return this.year()%100}),U(0,["YYYY",4],0,"year"),U(0,["YYYYY",5],0,"year"),U(0,["YYYYYY",6,!0],0,"year"),J("year","y"),M("year",1),Z("Y",Zd),Z("YY",Sd,Od),Z("YYYY",Wd,Qd),Z("YYYYY",Xd,Rd),Z("YYYYYY",Xd,Rd),ba(["YYYYY","YYYYYY"],ee),ba("YYYY",function(b,c){c[ee]=2===b.length?a.parseTwoDigitYear(b):u(b)}),ba("YY",function(b,c){c[ee]=a.parseTwoDigitYear(b)}),ba("Y",function(a,b){b[ee]=parseInt(a,10)}),a.parseTwoDigitYear=function(a){return u(a)+(u(a)>68?1900:2e3)};var te=O("FullYear",!0);U("w",["ww",2],"wo","week"),U("W",["WW",2],"Wo","isoWeek"),J("week","w"),J("isoWeek","W"),M("week",5),M("isoWeek",5),Z("w",Sd),Z("ww",Sd,Od),Z("W",Sd),Z("WW",Sd,Od),ca(["w","ww","W","WW"],function(a,b,c,d){b[d.substr(0,1)]=u(a)});var ue={dow:0,doy:6};U("d",0,"do","day"),U("dd",0,0,function(a){return this.localeData().weekdaysMin(this,a)}),U("ddd",0,0,function(a){return this.localeData().weekdaysShort(this,a)}),U("dddd",0,0,function(a){return this.localeData().weekdays(this,a)}),U("e",0,0,"weekday"),U("E",0,0,"isoWeekday"),J("day","d"),J("weekday","e"),J("isoWeekday","E"),M("day",11),M("weekday",11),M("isoWeekday",11),Z("d",Sd),Z("e",Sd),Z("E",Sd),Z("dd",function(a,b){return b.weekdaysMinRegex(a)}),Z("ddd",function(a,b){return b.weekdaysShortRegex(a)}),Z("dddd",function(a,b){return b.weekdaysRegex(a)}),ca(["dd","ddd","dddd"],function(a,b,c,d){var e=c._locale.weekdaysParse(a,d,c._strict);null!=e?b.d=e:n(c).invalidWeekday=a}),ca(["d","e","E"],function(a,b,c,d){b[d]=u(a)});var ve="Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),we="Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_"),xe="Su_Mo_Tu_We_Th_Fr_Sa".split("_"),ye=be,ze=be,Ae=be;U("H",["HH",2],0,"hour"),U("h",["hh",2],0,Ra),U("k",["kk",2],0,Sa),U("hmm",0,0,function(){return""+Ra.apply(this)+T(this.minutes(),2)}),U("hmmss",0,0,function(){return""+Ra.apply(this)+T(this.minutes(),2)+T(this.seconds(),2)}),U("Hmm",0,0,function(){return""+this.hours()+T(this.minutes(),2)}),U("Hmmss",0,0,function(){return""+this.hours()+T(this.minutes(),2)+T(this.seconds(),2)}),Ta("a",!0),Ta("A",!1),J("hour","h"),M("hour",13),Z("a",Ua),Z("A",Ua),Z("H",Sd),Z("h",Sd),Z("k",Sd),Z("HH",Sd,Od),Z("hh",Sd,Od),Z("kk",Sd,Od),Z("hmm",Td),Z("hmmss",Ud),Z("Hmm",Td),Z("Hmmss",Ud),ba(["H","HH"],he),ba(["k","kk"],function(a,b,c){var d=u(a);b[he]=24===d?0:d}),ba(["a","A"],function(a,b,c){c._isPm=c._locale.isPM(a),c._meridiem=a}),ba(["h","hh"],function(a,b,c){b[he]=u(a),n(c).bigHour=!0}),ba("hmm",function(a,b,c){var d=a.length-2;b[he]=u(a.substr(0,d)),b[ie]=u(a.substr(d)),n(c).bigHour=!0}),ba("hmmss",function(a,b,c){var d=a.length-4,e=a.length-2;b[he]=u(a.substr(0,d)),b[ie]=u(a.substr(d,2)),b[je]=u(a.substr(e)),n(c).bigHour=!0}),ba("Hmm",function(a,b,c){var d=a.length-2;b[he]=u(a.substr(0,d)),b[ie]=u(a.substr(d))}),ba("Hmmss",function(a,b,c){var d=a.length-4,e=a.length-2;b[he]=u(a.substr(0,d)),b[ie]=u(a.substr(d,2)),b[je]=u(a.substr(e))});var Be,Ce=/[ap]\.?m?\.?/i,De=O("Hours",!0),Ee={calendar:Bd,longDateFormat:Cd,invalidDate:Dd,ordinal:Ed,dayOfMonthOrdinalParse:Fd,relativeTime:Gd,months:pe,monthsShort:qe,week:ue,weekdays:ve,weekdaysMin:xe,weekdaysShort:we,meridiemParse:Ce},Fe={},Ge={},He=/^\s*((?:[+-]\d{6}|\d{4})-(?:\d\d-\d\d|W\d\d-\d|W\d\d|\d\d\d|\d\d))(?:(T| )(\d\d(?::\d\d(?::\d\d(?:[.,]\d+)?)?)?)([\+\-]\d\d(?::?\d\d)?|\s*Z)?)?$/,Ie=/^\s*((?:[+-]\d{6}|\d{4})(?:\d\d\d\d|W\d\d\d|W\d\d|\d\d\d|\d\d))(?:(T| )(\d\d(?:\d\d(?:\d\d(?:[.,]\d+)?)?)?)([\+\-]\d\d(?::?\d\d)?|\s*Z)?)?$/,Je=/Z|[+-]\d\d(?::?\d\d)?/,Ke=[["YYYYYY-MM-DD",/[+-]\d{6}-\d\d-\d\d/],["YYYY-MM-DD",/\d{4}-\d\d-\d\d/],["GGGG-[W]WW-E",/\d{4}-W\d\d-\d/],["GGGG-[W]WW",/\d{4}-W\d\d/,!1],["YYYY-DDD",/\d{4}-\d{3}/],["YYYY-MM",/\d{4}-\d\d/,!1],["YYYYYYMMDD",/[+-]\d{10}/],["YYYYMMDD",/\d{8}/],["GGGG[W]WWE",/\d{4}W\d{3}/],["GGGG[W]WW",/\d{4}W\d{2}/,!1],["YYYYDDD",/\d{7}/]],Le=[["HH:mm:ss.SSSS",/\d\d:\d\d:\d\d\.\d+/],["HH:mm:ss,SSSS",/\d\d:\d\d:\d\d,\d+/],["HH:mm:ss",/\d\d:\d\d:\d\d/],["HH:mm",/\d\d:\d\d/],["HHmmss.SSSS",/\d\d\d\d\d\d\.\d+/],["HHmmss,SSSS",/\d\d\d\d\d\d,\d+/],["HHmmss",/\d\d\d\d\d\d/],["HHmm",/\d\d\d\d/],["HH",/\d\d/]],Me=/^\/?Date\((\-?\d+)/i,Ne=/^((?:Mon|Tue|Wed|Thu|Fri|Sat|Sun),?\s)?(\d?\d\s(?:Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\s(?:\d\d)?\d\d\s)(\d\d:\d\d)(\:\d\d)?(\s(?:UT|GMT|[ECMP][SD]T|[A-IK-Za-ik-z]|[+-]\d{4}))$/;a.createFromInputFallback=x("value provided is not in a recognized RFC2822 or ISO format. moment construction falls back to js Date(), which is not reliable across all browsers and versions. Non RFC2822/ISO date formats are discouraged and will be removed in an upcoming major release. Please refer to http://momentjs.com/guides/#/warnings/js-date/ for more info.",function(a){a._d=new Date(a._i+(a._useUTC?" UTC":""))}),a.ISO_8601=function(){},a.RFC_2822=function(){};var Oe=x("moment().min is deprecated, use moment.max instead. http://momentjs.com/guides/#/warnings/min-max/",function(){var a=tb.apply(null,arguments);return this.isValid()&&a.isValid()?a<this?this:a:p()}),Pe=x("moment().max is deprecated, use moment.min instead. http://momentjs.com/guides/#/warnings/min-max/",function(){var a=tb.apply(null,arguments);return this.isValid()&&a.isValid()?a>this?this:a:p()}),Qe=function(){return Date.now?Date.now():+new Date},Re=["year","quarter","month","week","day","hour","minute","second","millisecond"];Db("Z",":"),Db("ZZ",""),Z("Z",_d),Z("ZZ",_d),ba(["Z","ZZ"],function(a,b,c){c._useUTC=!0,c._tzm=Eb(_d,a)});var Se=/([\+\-]|\d\d)/gi;a.updateOffset=function(){};var Te=/^(\-)?(?:(\d*)[. ])?(\d+)\:(\d+)(?:\:(\d+)(\.\d*)?)?$/,Ue=/^(-)?P(?:(-?[0-9,.]*)Y)?(?:(-?[0-9,.]*)M)?(?:(-?[0-9,.]*)W)?(?:(-?[0-9,.]*)D)?(?:T(?:(-?[0-9,.]*)H)?(?:(-?[0-9,.]*)M)?(?:(-?[0-9,.]*)S)?)?$/;Sb.fn=Ab.prototype,Sb.invalid=zb;var Ve=Wb(1,"add"),We=Wb(-1,"subtract");a.defaultFormat="YYYY-MM-DDTHH:mm:ssZ",a.defaultFormatUtc="YYYY-MM-DDTHH:mm:ss[Z]";var Xe=x("moment().lang() is deprecated. Instead, use moment().localeData() to get the language configuration. Use moment().locale() to change languages.",function(a){return void 0===a?this.localeData():this.locale(a)});U(0,["gg",2],0,function(){return this.weekYear()%100}),U(0,["GG",2],0,function(){return this.isoWeekYear()%100}),Dc("gggg","weekYear"),Dc("ggggg","weekYear"),Dc("GGGG","isoWeekYear"),Dc("GGGGG","isoWeekYear"),J("weekYear","gg"),J("isoWeekYear","GG"),M("weekYear",1),M("isoWeekYear",1),Z("G",Zd),Z("g",Zd),Z("GG",Sd,Od),Z("gg",Sd,Od),Z("GGGG",Wd,Qd),Z("gggg",Wd,Qd),Z("GGGGG",Xd,Rd),Z("ggggg",Xd,Rd),ca(["gggg","ggggg","GGGG","GGGGG"],function(a,b,c,d){b[d.substr(0,2)]=u(a)}),ca(["gg","GG"],function(b,c,d,e){c[e]=a.parseTwoDigitYear(b)}),U("Q",0,"Qo","quarter"),J("quarter","Q"),M("quarter",7),Z("Q",Nd),ba("Q",function(a,b){b[fe]=3*(u(a)-1)}),U("D",["DD",2],"Do","date"),J("date","D"),M("date",9),Z("D",Sd),Z("DD",Sd,Od),Z("Do",function(a,b){return a?b._dayOfMonthOrdinalParse||b._ordinalParse:b._dayOfMonthOrdinalParseLenient}),ba(["D","DD"],ge),ba("Do",function(a,b){b[ge]=u(a.match(Sd)[0],10)});var Ye=O("Date",!0);U("DDD",["DDDD",3],"DDDo","dayOfYear"),J("dayOfYear","DDD"),M("dayOfYear",4),Z("DDD",Vd),Z("DDDD",Pd),ba(["DDD","DDDD"],function(a,b,c){c._dayOfYear=u(a)}),U("m",["mm",2],0,"minute"),J("minute","m"),M("minute",14),Z("m",Sd),Z("mm",Sd,Od),ba(["m","mm"],ie);var Ze=O("Minutes",!1);U("s",["ss",2],0,"second"),J("second","s"),M("second",15),Z("s",Sd),Z("ss",Sd,Od),ba(["s","ss"],je);var $e=O("Seconds",!1);U("S",0,0,function(){return~~(this.millisecond()/100)}),U(0,["SS",2],0,function(){return~~(this.millisecond()/10)}),U(0,["SSS",3],0,"millisecond"),U(0,["SSSS",4],0,function(){return 10*this.millisecond()}),U(0,["SSSSS",5],0,function(){return 100*this.millisecond()}),U(0,["SSSSSS",6],0,function(){return 1e3*this.millisecond()}),U(0,["SSSSSSS",7],0,function(){return 1e4*this.millisecond()}),U(0,["SSSSSSSS",8],0,function(){return 1e5*this.millisecond()}),U(0,["SSSSSSSSS",9],0,function(){return 1e6*this.millisecond()}),J("millisecond","ms"),M("millisecond",16),Z("S",Vd,Nd),Z("SS",Vd,Od),Z("SSS",Vd,Pd);var _e;for(_e="SSSS";_e.length<=9;_e+="S")Z(_e,Yd);for(_e="S";_e.length<=9;_e+="S")ba(_e,Mc);var af=O("Milliseconds",!1);U("z",0,0,"zoneAbbr"),U("zz",0,0,"zoneName");var bf=r.prototype;bf.add=Ve,bf.calendar=Zb,bf.clone=$b,bf.diff=fc,bf.endOf=sc,bf.format=kc,bf.from=lc,bf.fromNow=mc,bf.to=nc,bf.toNow=oc,bf.get=R,bf.invalidAt=Bc,bf.isAfter=_b,bf.isBefore=ac,bf.isBetween=bc,bf.isSame=cc,bf.isSameOrAfter=dc,bf.isSameOrBefore=ec,bf.isValid=zc,bf.lang=Xe,bf.locale=pc,bf.localeData=qc,bf.max=Pe,bf.min=Oe,bf.parsingFlags=Ac,bf.set=S,bf.startOf=rc,bf.subtract=We,bf.toArray=wc,bf.toObject=xc,bf.toDate=vc,bf.toISOString=ic,bf.inspect=jc,bf.toJSON=yc,bf.toString=hc,bf.unix=uc,bf.valueOf=tc,bf.creationData=Cc,bf.year=te,bf.isLeapYear=ra,bf.weekYear=Ec,bf.isoWeekYear=Fc,bf.quarter=bf.quarters=Kc,bf.month=ka,bf.daysInMonth=la,bf.week=bf.weeks=Ba,bf.isoWeek=bf.isoWeeks=Ca,bf.weeksInYear=Hc,bf.isoWeeksInYear=Gc,bf.date=Ye,bf.day=bf.days=Ka,bf.weekday=La,bf.isoWeekday=Ma,bf.dayOfYear=Lc,bf.hour=bf.hours=De,bf.minute=bf.minutes=Ze,bf.second=bf.seconds=$e,bf.millisecond=bf.milliseconds=af,bf.utcOffset=Hb,bf.utc=Jb,bf.local=Kb,bf.parseZone=Lb,bf.hasAlignedHourOffset=Mb,bf.isDST=Nb,bf.isLocal=Pb,bf.isUtcOffset=Qb,bf.isUtc=Rb,bf.isUTC=Rb,bf.zoneAbbr=Nc,bf.zoneName=Oc,bf.dates=x("dates accessor is deprecated. Use date instead.",Ye),bf.months=x("months accessor is deprecated. Use month instead",ka),bf.years=x("years accessor is deprecated. Use year instead",te),bf.zone=x("moment().zone is deprecated, use moment().utcOffset instead. http://momentjs.com/guides/#/warnings/zone/",Ib),bf.isDSTShifted=x("isDSTShifted is deprecated. See http://momentjs.com/guides/#/warnings/dst-shifted/ for more information",Ob);var cf=C.prototype;cf.calendar=D,cf.longDateFormat=E,cf.invalidDate=F,cf.ordinal=G,cf.preparse=Rc,cf.postformat=Rc,cf.relativeTime=H,cf.pastFuture=I,cf.set=A,cf.months=fa,cf.monthsShort=ga,cf.monthsParse=ia,cf.monthsRegex=na,cf.monthsShortRegex=ma,cf.week=ya,cf.firstDayOfYear=Aa,cf.firstDayOfWeek=za,cf.weekdays=Fa,cf.weekdaysMin=Ha,cf.weekdaysShort=Ga,cf.weekdaysParse=Ja,cf.weekdaysRegex=Na,cf.weekdaysShortRegex=Oa,cf.weekdaysMinRegex=Pa,cf.isPM=Va,cf.meridiem=Wa,$a("en",{dayOfMonthOrdinalParse:/\d{1,2}(th|st|nd|rd)/,ordinal:function(a){var b=a%10,c=1===u(a%100/10)?"th":1===b?"st":2===b?"nd":3===b?"rd":"th";return a+c}}),a.lang=x("moment.lang is deprecated. Use moment.locale instead.",$a),a.langData=x("moment.langData is deprecated. Use moment.localeData instead.",bb);var df=Math.abs,ef=id("ms"),ff=id("s"),gf=id("m"),hf=id("h"),jf=id("d"),kf=id("w"),lf=id("M"),mf=id("y"),nf=kd("milliseconds"),of=kd("seconds"),pf=kd("minutes"),qf=kd("hours"),rf=kd("days"),sf=kd("months"),tf=kd("years"),uf=Math.round,vf={ss:44,s:45,m:45,h:22,d:26,M:11},wf=Math.abs,xf=Ab.prototype;return xf.isValid=yb,xf.abs=$c,xf.add=ad,xf.subtract=bd,xf.as=gd,xf.asMilliseconds=ef,xf.asSeconds=ff,xf.asMinutes=gf,xf.asHours=hf,xf.asDays=jf,xf.asWeeks=kf,xf.asMonths=lf,xf.asYears=mf,xf.valueOf=hd,xf._bubble=dd,xf.get=jd,xf.milliseconds=nf,xf.seconds=of,xf.minutes=pf,xf.hours=qf,xf.days=rf,xf.weeks=ld,xf.months=sf,xf.years=tf,xf.humanize=qd,xf.toISOString=rd,xf.toString=rd,xf.toJSON=rd,xf.locale=pc,xf.localeData=qc,xf.toIsoString=x("toIsoString() is deprecated. Please use toISOString() instead (notice the capitals)",rd),xf.lang=Xe,U("X",0,0,"unix"),U("x",0,0,"valueOf"),Z("x",Zd),Z("X",ae),ba("X",function(a,b,c){c._d=new Date(1e3*parseFloat(a,10))}),ba("x",function(a,b,c){c._d=new Date(u(a))}),a.version="2.18.1",b(tb),a.fn=bf,a.min=vb,a.max=wb,a.now=Qe,a.utc=l,a.unix=Pc,a.months=Vc,a.isDate=h,a.locale=$a,a.invalid=p,a.duration=Sb,a.isMoment=s,a.weekdays=Xc,a.parseZone=Qc,a.localeData=bb,a.isDuration=Bb,a.monthsShort=Wc,a.weekdaysMin=Zc,a.defineLocale=_a,a.updateLocale=ab,a.locales=cb,a.weekdaysShort=Yc,a.normalizeUnits=K,a.relativeTimeRounding=od,a.relativeTimeThreshold=pd,a.calendarFormat=Yb,a.prototype=bf,a}); \ No newline at end of file diff --git a/admin/bower_components/moment/min/tests.js b/admin/bower_components/moment/min/tests.js deleted file mode 100644 index cf9dfce..0000000 --- a/admin/bower_components/moment/min/tests.js +++ /dev/null @@ -1,78265 +0,0 @@ - -;(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' - && typeof require === 'function' ? factory(require('../../moment')) : - typeof define === 'function' && define.amd ? define(['../../moment'], factory) : - factory(global.moment) -}(this, (function (moment) { 'use strict'; - -function each(array, callback) { - var i; - for (i = 0; i < array.length; i++) { - callback(array[i], i, array); - } -} - -function objectKeys(obj) { - if (Object.keys) { - return Object.keys(obj); - } else { - // IE8 - var res = [], i; - for (i in obj) { - if (obj.hasOwnProperty(i)) { - res.push(i); - } - } - return res; - } -} - -// Pick the first defined of two or three arguments. - -function defineCommonLocaleTests(locale, options) { - test('lenient day of month ordinal parsing', function (assert) { - var i, ordinalStr, testMoment; - for (i = 1; i <= 31; ++i) { - ordinalStr = moment([2014, 0, i]).format('YYYY MM Do'); - testMoment = moment(ordinalStr, 'YYYY MM Do'); - assert.equal(testMoment.year(), 2014, - 'lenient day of month ordinal parsing ' + i + ' year check'); - assert.equal(testMoment.month(), 0, - 'lenient day of month ordinal parsing ' + i + ' month check'); - assert.equal(testMoment.date(), i, - 'lenient day of month ordinal parsing ' + i + ' date check'); - } - }); - - test('lenient day of month ordinal parsing of number', function (assert) { - var i, testMoment; - for (i = 1; i <= 31; ++i) { - testMoment = moment('2014 01 ' + i, 'YYYY MM Do'); - assert.equal(testMoment.year(), 2014, - 'lenient day of month ordinal parsing of number ' + i + ' year check'); - assert.equal(testMoment.month(), 0, - 'lenient day of month ordinal parsing of number ' + i + ' month check'); - assert.equal(testMoment.date(), i, - 'lenient day of month ordinal parsing of number ' + i + ' date check'); - } - }); - - test('strict day of month ordinal parsing', function (assert) { - var i, ordinalStr, testMoment; - for (i = 1; i <= 31; ++i) { - ordinalStr = moment([2014, 0, i]).format('YYYY MM Do'); - testMoment = moment(ordinalStr, 'YYYY MM Do', true); - assert.ok(testMoment.isValid(), 'strict day of month ordinal parsing ' + i); - } - }); - - test('meridiem invariant', function (assert) { - var h, m, t1, t2; - for (h = 0; h < 24; ++h) { - for (m = 0; m < 60; m += 15) { - t1 = moment.utc([2000, 0, 1, h, m]); - t2 = moment.utc(t1.format('A h:mm'), 'A h:mm'); - assert.equal(t2.format('HH:mm'), t1.format('HH:mm'), - 'meridiem at ' + t1.format('HH:mm')); - } - } - }); - - test('date format correctness', function (assert) { - var data, tokens; - data = moment.localeData()._longDateFormat; - tokens = objectKeys(data); - each(tokens, function (srchToken) { - // Check each format string to make sure it does not contain any - // tokens that need to be expanded. - each(tokens, function (baseToken) { - // strip escaped sequences - var format = data[baseToken].replace(/(\[[^\]]*\])/g, ''); - assert.equal(false, !!~format.indexOf(srchToken), - 'contains ' + srchToken + ' in ' + baseToken); - }); - }); - }); - - test('month parsing correctness', function (assert) { - var i, m; - - if (locale === 'tr') { - // I can't fix it :( - expect(0); - return; - } - function tester(format) { - var r; - r = moment(m.format(format), format); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format); - r = moment(m.format(format).toLocaleUpperCase(), format); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' upper'); - r = moment(m.format(format).toLocaleLowerCase(), format); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' lower'); - - r = moment(m.format(format), format, true); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' strict'); - r = moment(m.format(format).toLocaleUpperCase(), format, true); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' upper strict'); - r = moment(m.format(format).toLocaleLowerCase(), format, true); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' lower strict'); - } - - for (i = 0; i < 12; ++i) { - m = moment([2015, i, 15, 18]); - tester('MMM'); - tester('MMM.'); - tester('MMMM'); - tester('MMMM.'); - } - }); - - test('weekday parsing correctness', function (assert) { - var i, m; - - if (locale === 'tr' || locale === 'az' || locale === 'ro') { - // tr, az: There is a lower-case letter (ı), that converted to - // upper then lower changes to i - // ro: there is the letter ț which behaves weird under IE8 - expect(0); - return; - } - function tester(format) { - var r, baseMsg = 'weekday ' + m.weekday() + ' fmt ' + format + ' ' + m.toISOString(); - r = moment(m.format(format), format); - assert.equal(r.weekday(), m.weekday(), baseMsg); - r = moment(m.format(format).toLocaleUpperCase(), format); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' upper'); - r = moment(m.format(format).toLocaleLowerCase(), format); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' lower'); - - r = moment(m.format(format), format, true); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' strict'); - r = moment(m.format(format).toLocaleUpperCase(), format, true); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' upper strict'); - r = moment(m.format(format).toLocaleLowerCase(), format, true); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' lower strict'); - } - - for (i = 0; i < 7; ++i) { - m = moment.utc([2015, 0, i + 1, 18]); - tester('dd'); - tester('ddd'); - tester('dddd'); - } - }); - - test('valid localeData', function (assert) { - assert.equal(moment().localeData().months().length, 12, 'months should return 12 months'); - assert.equal(moment().localeData().monthsShort().length, 12, 'monthsShort should return 12 months'); - assert.equal(moment().localeData().weekdays().length, 7, 'weekdays should return 7 days'); - assert.equal(moment().localeData().weekdaysShort().length, 7, 'weekdaysShort should return 7 days'); - assert.equal(moment().localeData().weekdaysMin().length, 7, 'monthsShort should return 7 days'); - }); -} - -function setupDeprecationHandler(test, moment$$1, scope) { - test._expectedDeprecations = null; - test._observedDeprecations = null; - test._oldSupress = moment$$1.suppressDeprecationWarnings; - moment$$1.suppressDeprecationWarnings = true; - test.expectedDeprecations = function () { - test._expectedDeprecations = arguments; - test._observedDeprecations = []; - }; - moment$$1.deprecationHandler = function (name, msg) { - var deprecationId = matchedDeprecation(name, msg, test._expectedDeprecations); - if (deprecationId === -1) { - throw new Error('Unexpected deprecation thrown name=' + - name + ' msg=' + msg); - } - test._observedDeprecations[deprecationId] = 1; - }; -} - -function teardownDeprecationHandler(test, moment$$1, scope) { - moment$$1.suppressDeprecationWarnings = test._oldSupress; - - if (test._expectedDeprecations != null) { - var missedDeprecations = []; - each(test._expectedDeprecations, function (deprecationPattern, id) { - if (test._observedDeprecations[id] !== 1) { - missedDeprecations.push(deprecationPattern); - } - }); - if (missedDeprecations.length !== 0) { - throw new Error('Expected deprecation warnings did not happen: ' + - missedDeprecations.join(' ')); - } - } -} - -function matchedDeprecation(name, msg, deprecations) { - if (deprecations == null) { - return -1; - } - for (var i = 0; i < deprecations.length; ++i) { - if (name != null && name === deprecations[i]) { - return i; - } - if (msg != null && msg.substring(0, deprecations[i].length) === deprecations[i]) { - return i; - } - } - return -1; -} - -/*global QUnit:false*/ - -var test = QUnit.test; - -var expect = QUnit.expect; - - - -function localeModule (name, lifecycle) { - QUnit.module('locale:' + name, { - setup : function () { - moment.locale(name); - moment.createFromInputFallback = function (config) { - throw new Error('input not handled by moment: ' + config._i); - }; - setupDeprecationHandler(test, moment, 'locale'); - if (lifecycle && lifecycle.setup) { - lifecycle.setup(); - } - }, - teardown : function () { - moment.locale('en'); - teardownDeprecationHandler(test, moment, 'locale'); - if (lifecycle && lifecycle.teardown) { - lifecycle.teardown(); - } - } - }); - defineCommonLocaleTests(name, -1, -1); -} - -localeModule('af'); - -test('parse', function (assert) { - var tests = 'Januarie Jan_Februarie Feb_Maart Mrt_April Apr_Mei Mei_Junie Jun_Julie Jul_Augustus Aug_September Sep_Oktober Okt_November Nov_Desember Des'.split('_'), i; - function equalTest(input, mmm, i) { - assert.equal(moment(input, mmm).month(), i, input + ' should be month ' + (i + 1)); - } - for (i = 0; i < 12; i++) { - tests[i] = tests[i].split(' '); - equalTest(tests[i][0], 'MMM', i); - equalTest(tests[i][1], 'MMM', i); - equalTest(tests[i][0], 'MMMM', i); - equalTest(tests[i][1], 'MMMM', i); - equalTest(tests[i][0].toLocaleLowerCase(), 'MMMM', i); - equalTest(tests[i][1].toLocaleLowerCase(), 'MMMM', i); - equalTest(tests[i][0].toLocaleUpperCase(), 'MMMM', i); - equalTest(tests[i][1].toLocaleUpperCase(), 'MMMM', i); - } -}); - -test('format', function (assert) { - var a = [ - ['dddd, MMMM Do YYYY, h:mm:ss a', 'Sondag, Februarie 14de 2010, 3:25:50 nm'], - ['ddd, hA', 'Son, 3NM'], - ['M Mo MM MMMM MMM', '2 2de 02 Februarie Feb'], - ['YYYY YY', '2010 10'], - ['D Do DD', '14 14de 14'], - ['d do dddd ddd dd', '0 0de Sondag Son So'], - ['DDD DDDo DDDD', '45 45ste 045'], - ['w wo ww', '6 6de 06'], - ['h hh', '3 03'], - ['H HH', '15 15'], - ['m mm', '25 25'], - ['s ss', '50 50'], - ['a A', 'nm NM'], - ['[the] DDDo [day of the year]', 'the 45ste day of the year'], - ['LT', '15:25'], - ['LTS', '15:25:50'], - ['L', '14/02/2010'], - ['LL', '14 Februarie 2010'], - ['LLL', '14 Februarie 2010 15:25'], - ['LLLL', 'Sondag, 14 Februarie 2010 15:25'], - ['l', '14/2/2010'], - ['ll', '14 Feb 2010'], - ['lll', '14 Feb 2010 15:25'], - ['llll', 'Son, 14 Feb 2010 15:25'] - ], - b = moment(new Date(2010, 1, 14, 15, 25, 50, 125)), - i; - for (i = 0; i < a.length; i++) { - assert.equal(b.format(a[i][0]), a[i][1], a[i][0] + ' ---> ' + a[i][1]); - } -}); - -test('format ordinal', function (assert) { - assert.equal(moment([2011, 0, 1]).format('DDDo'), '1ste', '1ste'); - assert.equal(moment([2011, 0, 2]).format('DDDo'), '2de', '2de'); - assert.equal(moment([2011, 0, 3]).format('DDDo'), '3de', '3de'); - assert.equal(moment([2011, 0, 4]).format('DDDo'), '4de', '4de'); - assert.equal(moment([2011, 0, 5]).format('DDDo'), '5de', '5de'); - assert.equal(moment([2011, 0, 6]).format('DDDo'), '6de', '6de'); - assert.equal(moment([2011, 0, 7]).format('DDDo'), '7de', '7de'); - assert.equal(moment([2011, 0, 8]).format('DDDo'), '8ste', '8ste'); - assert.equal(moment([2011, 0, 9]).format('DDDo'), '9de', '9de'); - assert.equal(moment([2011, 0, 10]).format('DDDo'), '10de', '10de'); - - assert.equal(moment([2011, 0, 11]).format('DDDo'), '11de', '11de'); - assert.equal(moment([2011, 0, 12]).format('DDDo'), '12de', '12de'); - assert.equal(moment([2011, 0, 13]).format('DDDo'), '13de', '13de'); - assert.equal(moment([2011, 0, 14]).format('DDDo'), '14de', '14de'); - assert.equal(moment([2011, 0, 15]).format('DDDo'), '15de', '15de'); - assert.equal(moment([2011, 0, 16]).format('DDDo'), '16de', '16de'); - assert.equal(moment([2011, 0, 17]).format('DDDo'), '17de', '17de'); - assert.equal(moment([2011, 0, 18]).format('DDDo'), '18de', '18de'); - assert.equal(moment([2011, 0, 19]).format('DDDo'), '19de', '19de'); - assert.equal(moment([2011, 0, 20]).format('DDDo'), '20ste', '20ste'); - - assert.equal(moment([2011, 0, 21]).format('DDDo'), '21ste', '21ste'); - assert.equal(moment([2011, 0, 22]).format('DDDo'), '22ste', '22ste'); - assert.equal(moment([2011, 0, 23]).format('DDDo'), '23ste', '23ste'); - assert.equal(moment([2011, 0, 24]).format('DDDo'), '24ste', '24ste'); - assert.equal(moment([2011, 0, 25]).format('DDDo'), '25ste', '25ste'); - assert.equal(moment([2011, 0, 26]).format('DDDo'), '26ste', '26ste'); - assert.equal(moment([2011, 0, 27]).format('DDDo'), '27ste', '27ste'); - assert.equal(moment([2011, 0, 28]).format('DDDo'), '28ste', '28ste'); - assert.equal(moment([2011, 0, 29]).format('DDDo'), '29ste', '29ste'); - assert.equal(moment([2011, 0, 30]).format('DDDo'), '30ste', '30ste'); - - assert.equal(moment([2011, 0, 31]).format('DDDo'), '31ste', '31ste'); -}); - -test('format month', function (assert) { - var expected = 'Januarie Jan_Februarie Feb_Maart Mrt_April Apr_Mei Mei_Junie Jun_Julie Jul_Augustus Aug_September Sep_Oktober Okt_November Nov_Desember Des'.split('_'), i; - for (i = 0; i < expected.length; i++) { - assert.equal(moment([2011, i, 1]).format('MMMM MMM'), expected[i], expected[i]); - } -}); - -test('format week', function (assert) { - var expected = 'Sondag Son So_Maandag Maa Ma_Dinsdag Din Di_Woensdag Woe Wo_Donderdag Don Do_Vrydag Vry Vr_Saterdag Sat Sa'.split('_'), i; - for (i = 0; i < expected.length; i++) { - assert.equal(moment([2011, 0, 2 + i]).format('dddd ddd dd'), expected[i], expected[i]); - } -}); - -test('from', function (assert) { - var start = moment([2007, 1, 28]); - assert.equal(start.from(moment([2007, 1, 28]).add({s: 44}), true), '\'n paar sekondes', '44 seconds = a few seconds'); - assert.equal(start.from(moment([2007, 1, 28]).add({s: 45}), true), '\'n minuut', '45 seconds = a minute'); - assert.equal(start.from(moment([2007, 1, 28]).add({s: 89}), true), '\'n minuut', '89 seconds = a minute'); - assert.equal(start.from(moment([2007, 1, 28]).add({s: 90}), true), '2 minute', '90 seconds = 2 minutes'); - assert.equal(start.from(moment([2007, 1, 28]).add({m: 44}), true), '44 minute', '44 minutes = 44 minutes'); - assert.equal(start.from(moment([2007, 1, 28]).add({m: 45}), true), '\'n uur', '45 minutes = an hour'); - assert.equal(start.from(moment([2007, 1, 28]).add({m: 89}), true), '\'n uur', '89 minutes = an hour'); - assert.equal(start.from(moment([2007, 1, 28]).add({m: 90}), true), '2 ure', '90 minutes = 2 hours'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 5}), true), '5 ure', '5 hours = 5 hours'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 21}), true), '21 ure', '21 hours = 21 hours'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 22}), true), '\'n dag', '22 hours = a day'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 35}), true), '\'n dag', '35 hours = a day'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 36}), true), '2 dae', '36 hours = 2 days'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 1}), true), '\'n dag', '1 day = a day'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 5}), true), '5 dae', '5 days = 5 days'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 25}), true), '25 dae', '25 days = 25 days'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 26}), true), '\'n maand', '26 days = a month'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 30}), true), '\'n maand', '30 days = a month'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 43}), true), '\'n maand', '43 days = a month'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 46}), true), '2 maande', '46 days = 2 months'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 74}), true), '2 maande', '75 days = 2 months'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 76}), true), '3 maande', '76 days = 3 months'); - assert.equal(start.from(moment([2007, 1, 28]).add({M: 1}), true), '\'n maand', '1 month = a month'); - assert.equal(start.from(moment([2007, 1, 28]).add({M: 5}), true), '5 maande', '5 months = 5 months'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 345}), true), '\'n jaar', '345 days = a year'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 548}), true), '2 jaar', '548 days = 2 years'); - assert.equal(start.from(moment([2007, 1, 28]).add({y: 1}), true), '\'n jaar', '1 year = a year'); - assert.equal(start.from(moment([2007, 1, 28]).add({y: 5}), true), '5 jaar', '5 years = 5 years'); -}); - -test('suffix', function (assert) { - assert.equal(moment(30000).from(0), 'oor \'n paar sekondes', 'prefix'); - assert.equal(moment(0).from(30000), '\'n paar sekondes gelede', 'suffix'); -}); - -test('now from now', function (assert) { - assert.equal(moment().fromNow(), '\'n paar sekondes gelede', 'now from now should display as in the past'); -}); - -test('fromNow', function (assert) { - assert.equal(moment().add({s: 30}).fromNow(), 'oor \'n paar sekondes', 'in a few seconds'); - assert.equal(moment().add({d: 5}).fromNow(), 'oor 5 dae', 'in 5 days'); -}); - -test('calendar day', function (assert) { - var a = moment().hours(12).minutes(0).seconds(0); - - assert.equal(moment(a).calendar(), 'Vandag om 12:00', 'today at the same time'); - assert.equal(moment(a).add({m: 25}).calendar(), 'Vandag om 12:25', 'Now plus 25 min'); - assert.equal(moment(a).add({h: 1}).calendar(), 'Vandag om 13:00', 'Now plus 1 hour'); - assert.equal(moment(a).add({d: 1}).calendar(), 'Môre om 12:00', 'tomorrow at the same time'); - assert.equal(moment(a).subtract({h: 1}).calendar(), 'Vandag om 11:00', 'Now minus 1 hour'); - assert.equal(moment(a).subtract({d: 1}).calendar(), 'Gister om 12:00', 'yesterday at the same time'); -}); - -test('calendar next week', function (assert) { - var i, m; - for (i = 2; i < 7; i++) { - m = moment().add({d: i}); - assert.equal(m.calendar(), m.format('dddd [om] LT'), 'Today + ' + i + ' days current time'); - m.hours(0).minutes(0).seconds(0).milliseconds(0); - assert.equal(m.calendar(), m.format('dddd [om] LT'), 'Today + ' + i + ' days beginning of day'); - m.hours(23).minutes(59).seconds(59).milliseconds(999); - assert.equal(m.calendar(), m.format('dddd [om] LT'), 'Today + ' + i + ' days end of day'); - } -}); - -test('calendar last week', function (assert) { - var i, m; - for (i = 2; i < 7; i++) { - m = moment().subtract({d: i}); - assert.equal(m.calendar(), m.format('[Laas] dddd [om] LT'), 'Today - ' + i + ' days current time'); - m.hours(0).minutes(0).seconds(0).milliseconds(0); - assert.equal(m.calendar(), m.format('[Laas] dddd [om] LT'), 'Today - ' + i + ' days beginning of day'); - m.hours(23).minutes(59).seconds(59).milliseconds(999); - assert.equal(m.calendar(), m.format('[Laas] dddd [om] LT'), 'Today - ' + i + ' days end of day'); - } -}); - -test('calendar all else', function (assert) { - var weeksAgo = moment().subtract({w: 1}), - weeksFromNow = moment().add({w: 1}); - - assert.equal(weeksAgo.calendar(), weeksAgo.format('L'), '1 week ago'); - assert.equal(weeksFromNow.calendar(), weeksFromNow.format('L'), 'in 1 week'); - - weeksAgo = moment().subtract({w: 2}); - weeksFromNow = moment().add({w: 2}); - - assert.equal(weeksAgo.calendar(), weeksAgo.format('L'), '2 weeks ago'); - assert.equal(weeksFromNow.calendar(), weeksFromNow.format('L'), 'in 2 weeks'); -}); - -test('weeks year starting sunday formatted', function (assert) { - assert.equal(moment([2012, 0, 1]).format('w ww wo'), '52 52 52ste', 'Jan 1 2012 should be week 52'); - assert.equal(moment([2012, 0, 2]).format('w ww wo'), '1 01 1ste', 'Jan 2 2012 should be week 1'); - assert.equal(moment([2012, 0, 8]).format('w ww wo'), '1 01 1ste', 'Jan 8 2012 should be week 1'); - assert.equal(moment([2012, 0, 9]).format('w ww wo'), '2 02 2de', 'Jan 9 2012 should be week 2'); - assert.equal(moment([2012, 0, 15]).format('w ww wo'), '2 02 2de', 'Jan 15 2012 should be week 2'); -}); - -}))); - - -;(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' - && typeof require === 'function' ? factory(require('../../moment')) : - typeof define === 'function' && define.amd ? define(['../../moment'], factory) : - factory(global.moment) -}(this, (function (moment) { 'use strict'; - -function each(array, callback) { - var i; - for (i = 0; i < array.length; i++) { - callback(array[i], i, array); - } -} - -function objectKeys(obj) { - if (Object.keys) { - return Object.keys(obj); - } else { - // IE8 - var res = [], i; - for (i in obj) { - if (obj.hasOwnProperty(i)) { - res.push(i); - } - } - return res; - } -} - -// Pick the first defined of two or three arguments. - -function defineCommonLocaleTests(locale, options) { - test('lenient day of month ordinal parsing', function (assert) { - var i, ordinalStr, testMoment; - for (i = 1; i <= 31; ++i) { - ordinalStr = moment([2014, 0, i]).format('YYYY MM Do'); - testMoment = moment(ordinalStr, 'YYYY MM Do'); - assert.equal(testMoment.year(), 2014, - 'lenient day of month ordinal parsing ' + i + ' year check'); - assert.equal(testMoment.month(), 0, - 'lenient day of month ordinal parsing ' + i + ' month check'); - assert.equal(testMoment.date(), i, - 'lenient day of month ordinal parsing ' + i + ' date check'); - } - }); - - test('lenient day of month ordinal parsing of number', function (assert) { - var i, testMoment; - for (i = 1; i <= 31; ++i) { - testMoment = moment('2014 01 ' + i, 'YYYY MM Do'); - assert.equal(testMoment.year(), 2014, - 'lenient day of month ordinal parsing of number ' + i + ' year check'); - assert.equal(testMoment.month(), 0, - 'lenient day of month ordinal parsing of number ' + i + ' month check'); - assert.equal(testMoment.date(), i, - 'lenient day of month ordinal parsing of number ' + i + ' date check'); - } - }); - - test('strict day of month ordinal parsing', function (assert) { - var i, ordinalStr, testMoment; - for (i = 1; i <= 31; ++i) { - ordinalStr = moment([2014, 0, i]).format('YYYY MM Do'); - testMoment = moment(ordinalStr, 'YYYY MM Do', true); - assert.ok(testMoment.isValid(), 'strict day of month ordinal parsing ' + i); - } - }); - - test('meridiem invariant', function (assert) { - var h, m, t1, t2; - for (h = 0; h < 24; ++h) { - for (m = 0; m < 60; m += 15) { - t1 = moment.utc([2000, 0, 1, h, m]); - t2 = moment.utc(t1.format('A h:mm'), 'A h:mm'); - assert.equal(t2.format('HH:mm'), t1.format('HH:mm'), - 'meridiem at ' + t1.format('HH:mm')); - } - } - }); - - test('date format correctness', function (assert) { - var data, tokens; - data = moment.localeData()._longDateFormat; - tokens = objectKeys(data); - each(tokens, function (srchToken) { - // Check each format string to make sure it does not contain any - // tokens that need to be expanded. - each(tokens, function (baseToken) { - // strip escaped sequences - var format = data[baseToken].replace(/(\[[^\]]*\])/g, ''); - assert.equal(false, !!~format.indexOf(srchToken), - 'contains ' + srchToken + ' in ' + baseToken); - }); - }); - }); - - test('month parsing correctness', function (assert) { - var i, m; - - if (locale === 'tr') { - // I can't fix it :( - expect(0); - return; - } - function tester(format) { - var r; - r = moment(m.format(format), format); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format); - r = moment(m.format(format).toLocaleUpperCase(), format); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' upper'); - r = moment(m.format(format).toLocaleLowerCase(), format); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' lower'); - - r = moment(m.format(format), format, true); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' strict'); - r = moment(m.format(format).toLocaleUpperCase(), format, true); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' upper strict'); - r = moment(m.format(format).toLocaleLowerCase(), format, true); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' lower strict'); - } - - for (i = 0; i < 12; ++i) { - m = moment([2015, i, 15, 18]); - tester('MMM'); - tester('MMM.'); - tester('MMMM'); - tester('MMMM.'); - } - }); - - test('weekday parsing correctness', function (assert) { - var i, m; - - if (locale === 'tr' || locale === 'az' || locale === 'ro') { - // tr, az: There is a lower-case letter (ı), that converted to - // upper then lower changes to i - // ro: there is the letter ț which behaves weird under IE8 - expect(0); - return; - } - function tester(format) { - var r, baseMsg = 'weekday ' + m.weekday() + ' fmt ' + format + ' ' + m.toISOString(); - r = moment(m.format(format), format); - assert.equal(r.weekday(), m.weekday(), baseMsg); - r = moment(m.format(format).toLocaleUpperCase(), format); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' upper'); - r = moment(m.format(format).toLocaleLowerCase(), format); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' lower'); - - r = moment(m.format(format), format, true); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' strict'); - r = moment(m.format(format).toLocaleUpperCase(), format, true); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' upper strict'); - r = moment(m.format(format).toLocaleLowerCase(), format, true); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' lower strict'); - } - - for (i = 0; i < 7; ++i) { - m = moment.utc([2015, 0, i + 1, 18]); - tester('dd'); - tester('ddd'); - tester('dddd'); - } - }); - - test('valid localeData', function (assert) { - assert.equal(moment().localeData().months().length, 12, 'months should return 12 months'); - assert.equal(moment().localeData().monthsShort().length, 12, 'monthsShort should return 12 months'); - assert.equal(moment().localeData().weekdays().length, 7, 'weekdays should return 7 days'); - assert.equal(moment().localeData().weekdaysShort().length, 7, 'weekdaysShort should return 7 days'); - assert.equal(moment().localeData().weekdaysMin().length, 7, 'monthsShort should return 7 days'); - }); -} - -function setupDeprecationHandler(test, moment$$1, scope) { - test._expectedDeprecations = null; - test._observedDeprecations = null; - test._oldSupress = moment$$1.suppressDeprecationWarnings; - moment$$1.suppressDeprecationWarnings = true; - test.expectedDeprecations = function () { - test._expectedDeprecations = arguments; - test._observedDeprecations = []; - }; - moment$$1.deprecationHandler = function (name, msg) { - var deprecationId = matchedDeprecation(name, msg, test._expectedDeprecations); - if (deprecationId === -1) { - throw new Error('Unexpected deprecation thrown name=' + - name + ' msg=' + msg); - } - test._observedDeprecations[deprecationId] = 1; - }; -} - -function teardownDeprecationHandler(test, moment$$1, scope) { - moment$$1.suppressDeprecationWarnings = test._oldSupress; - - if (test._expectedDeprecations != null) { - var missedDeprecations = []; - each(test._expectedDeprecations, function (deprecationPattern, id) { - if (test._observedDeprecations[id] !== 1) { - missedDeprecations.push(deprecationPattern); - } - }); - if (missedDeprecations.length !== 0) { - throw new Error('Expected deprecation warnings did not happen: ' + - missedDeprecations.join(' ')); - } - } -} - -function matchedDeprecation(name, msg, deprecations) { - if (deprecations == null) { - return -1; - } - for (var i = 0; i < deprecations.length; ++i) { - if (name != null && name === deprecations[i]) { - return i; - } - if (msg != null && msg.substring(0, deprecations[i].length) === deprecations[i]) { - return i; - } - } - return -1; -} - -/*global QUnit:false*/ - -var test = QUnit.test; - -var expect = QUnit.expect; - - - -function localeModule (name, lifecycle) { - QUnit.module('locale:' + name, { - setup : function () { - moment.locale(name); - moment.createFromInputFallback = function (config) { - throw new Error('input not handled by moment: ' + config._i); - }; - setupDeprecationHandler(test, moment, 'locale'); - if (lifecycle && lifecycle.setup) { - lifecycle.setup(); - } - }, - teardown : function () { - moment.locale('en'); - teardownDeprecationHandler(test, moment, 'locale'); - if (lifecycle && lifecycle.teardown) { - lifecycle.teardown(); - } - } - }); - defineCommonLocaleTests(name, -1, -1); -} - -localeModule('ar-dz'); - -test('parse', function (assert) { - var tests = 'جانفي:جانفي_فيفري:فيفري_مارس:مارس_أفريل:أفريل_ماي:ماي_جوان:جوان_جويلية:جويلية_أوت:أوت_سبتمبر:سبتمبر_أكتوبر:أكتوبر_نوفمبر:نوفمبر_ديسمبر:ديسمبر'.split('_'), i; - function equalTest(input, mmm, i) { - assert.equal(moment(input, mmm).month(), i, input + ' should be month ' + (i + 1)); - } - for (i = 0; i < 12; i++) { - tests[i] = tests[i].split(':'); - equalTest(tests[i][0], 'MMM', i); - equalTest(tests[i][1], 'MMM', i); - equalTest(tests[i][0], 'MMMM', i); - equalTest(tests[i][1], 'MMMM', i); - equalTest(tests[i][0].toLocaleLowerCase(), 'MMMM', i); - equalTest(tests[i][1].toLocaleLowerCase(), 'MMMM', i); - equalTest(tests[i][0].toLocaleUpperCase(), 'MMMM', i); - equalTest(tests[i][1].toLocaleUpperCase(), 'MMMM', i); - } -}); - -test('format', function (assert) { - var a = [ - ['dddd, MMMM Do YYYY, h:mm:ss a', 'الأحد, فيفري 14 2010, 3:25:50 pm'], - ['ddd, hA', 'احد, 3PM'], - ['M Mo MM MMMM MMM', '2 2 02 فيفري فيفري'], - ['YYYY YY', '2010 10'], - ['D Do DD', '14 14 14'], - ['d do dddd ddd dd', '0 0 الأحد احد أح'], - ['DDD DDDo DDDD', '45 45 045'], - ['w wo ww', '7 7 07'], - ['h hh', '3 03'], - ['H HH', '15 15'], - ['m mm', '25 25'], - ['s ss', '50 50'], - ['a A', 'pm PM'], - ['[the] DDDo [day of the year]', 'the 45 day of the year'], - ['LT', '15:25'], - ['LTS', '15:25:50'], - ['L', '14/02/2010'], - ['LL', '14 فيفري 2010'], - ['LLL', '14 فيفري 2010 15:25'], - ['LLLL', 'الأحد 14 فيفري 2010 15:25'], - ['l', '14/2/2010'], - ['ll', '14 فيفري 2010'], - ['lll', '14 فيفري 2010 15:25'], - ['llll', 'احد 14 فيفري 2010 15:25'] - ], - b = moment(new Date(2010, 1, 14, 15, 25, 50, 125)), - i; - for (i = 0; i < a.length; i++) { - assert.equal(b.format(a[i][0]), a[i][1], a[i][0] + ' ---> ' + a[i][1]); - } -}); - -test('format ordinal', function (assert) { - assert.equal(moment([2011, 0, 1]).format('DDDo'), '1', '1'); - assert.equal(moment([2011, 0, 2]).format('DDDo'), '2', '2'); - assert.equal(moment([2011, 0, 3]).format('DDDo'), '3', '3'); - assert.equal(moment([2011, 0, 4]).format('DDDo'), '4', '4'); - assert.equal(moment([2011, 0, 5]).format('DDDo'), '5', '5'); - assert.equal(moment([2011, 0, 6]).format('DDDo'), '6', '6'); - assert.equal(moment([2011, 0, 7]).format('DDDo'), '7', '7'); - assert.equal(moment([2011, 0, 8]).format('DDDo'), '8', '8'); - assert.equal(moment([2011, 0, 9]).format('DDDo'), '9', '9'); - assert.equal(moment([2011, 0, 10]).format('DDDo'), '10', '10'); - - assert.equal(moment([2011, 0, 11]).format('DDDo'), '11', '11'); - assert.equal(moment([2011, 0, 12]).format('DDDo'), '12', '12'); - assert.equal(moment([2011, 0, 13]).format('DDDo'), '13', '13'); - assert.equal(moment([2011, 0, 14]).format('DDDo'), '14', '14'); - assert.equal(moment([2011, 0, 15]).format('DDDo'), '15', '15'); - assert.equal(moment([2011, 0, 16]).format('DDDo'), '16', '16'); - assert.equal(moment([2011, 0, 17]).format('DDDo'), '17', '17'); - assert.equal(moment([2011, 0, 18]).format('DDDo'), '18', '18'); - assert.equal(moment([2011, 0, 19]).format('DDDo'), '19', '19'); - assert.equal(moment([2011, 0, 20]).format('DDDo'), '20', '20'); - - assert.equal(moment([2011, 0, 21]).format('DDDo'), '21', '21'); - assert.equal(moment([2011, 0, 22]).format('DDDo'), '22', '22'); - assert.equal(moment([2011, 0, 23]).format('DDDo'), '23', '23'); - assert.equal(moment([2011, 0, 24]).format('DDDo'), '24', '24'); - assert.equal(moment([2011, 0, 25]).format('DDDo'), '25', '25'); - assert.equal(moment([2011, 0, 26]).format('DDDo'), '26', '26'); - assert.equal(moment([2011, 0, 27]).format('DDDo'), '27', '27'); - assert.equal(moment([2011, 0, 28]).format('DDDo'), '28', '28'); - assert.equal(moment([2011, 0, 29]).format('DDDo'), '29', '29'); - assert.equal(moment([2011, 0, 30]).format('DDDo'), '30', '30'); - - assert.equal(moment([2011, 0, 31]).format('DDDo'), '31', '31'); -}); - -test('format month', function (assert) { - var expected = 'جانفي جانفي_فيفري فيفري_مارس مارس_أفريل أفريل_ماي ماي_جوان جوان_جويلية جويلية_أوت أوت_سبتمبر سبتمبر_أكتوبر أكتوبر_نوفمبر نوفمبر_ديسمبر ديسمبر'.split('_'), i; - for (i = 0; i < expected.length; i++) { - assert.equal(moment([2011, i, 1]).format('MMMM MMM'), expected[i], expected[i]); - } -}); - -test('format week', function (assert) { - var expected = 'الأحد احد أح_الإثنين اثنين إث_الثلاثاء ثلاثاء ثلا_الأربعاء اربعاء أر_الخميس خميس خم_الجمعة جمعة جم_السبت سبت سب'.split('_'), i; - for (i = 0; i < expected.length; i++) { - assert.equal(moment([2011, 0, 2 + i]).format('dddd ddd dd'), expected[i], expected[i]); - } -}); - -test('from', function (assert) { - var start = moment([2007, 1, 28]); - assert.equal(start.from(moment([2007, 1, 28]).add({s: 44}), true), 'ثوان', '44 seconds = a few seconds'); - assert.equal(start.from(moment([2007, 1, 28]).add({s: 45}), true), 'دقيقة', '45 seconds = a minute'); - assert.equal(start.from(moment([2007, 1, 28]).add({s: 89}), true), 'دقيقة', '89 seconds = a minute'); - assert.equal(start.from(moment([2007, 1, 28]).add({s: 90}), true), '2 دقائق', '90 seconds = 2 minutes'); - assert.equal(start.from(moment([2007, 1, 28]).add({m: 44}), true), '44 دقائق', '44 minutes = 44 minutes'); - assert.equal(start.from(moment([2007, 1, 28]).add({m: 45}), true), 'ساعة', '45 minutes = an hour'); - assert.equal(start.from(moment([2007, 1, 28]).add({m: 89}), true), 'ساعة', '89 minutes = an hour'); - assert.equal(start.from(moment([2007, 1, 28]).add({m: 90}), true), '2 ساعات', '90 minutes = 2 hours'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 5}), true), '5 ساعات', '5 hours = 5 hours'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 21}), true), '21 ساعات', '21 hours = 21 hours'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 22}), true), 'يوم', '22 hours = a day'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 35}), true), 'يوم', '35 hours = a day'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 36}), true), '2 أيام', '36 hours = 2 days'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 1}), true), 'يوم', '1 day = a day'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 5}), true), '5 أيام', '5 days = 5 days'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 25}), true), '25 أيام', '25 days = 25 days'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 26}), true), 'شهر', '26 days = a month'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 30}), true), 'شهر', '30 days = a month'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 43}), true), 'شهر', '43 days = a month'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 46}), true), '2 أشهر', '46 days = 2 months'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 74}), true), '2 أشهر', '75 days = 2 months'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 76}), true), '3 أشهر', '76 days = 3 months'); - assert.equal(start.from(moment([2007, 1, 28]).add({M: 1}), true), 'شهر', '1 month = a month'); - assert.equal(start.from(moment([2007, 1, 28]).add({M: 5}), true), '5 أشهر', '5 months = 5 months'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 345}), true), 'سنة', '345 days = a year'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 548}), true), '2 سنوات', '548 days = 2 years'); - assert.equal(start.from(moment([2007, 1, 28]).add({y: 1}), true), 'سنة', '1 year = a year'); - assert.equal(start.from(moment([2007, 1, 28]).add({y: 5}), true), '5 سنوات', '5 years = 5 years'); -}); - -test('suffix', function (assert) { - assert.equal(moment(30000).from(0), 'في ثوان', 'prefix'); - assert.equal(moment(0).from(30000), 'منذ ثوان', 'suffix'); -}); - -test('now from now', function (assert) { - assert.equal(moment().fromNow(), 'منذ ثوان', 'now from now should display as in the past'); -}); - -test('fromNow', function (assert) { - assert.equal(moment().add({s: 30}).fromNow(), 'في ثوان', 'in a few seconds'); - assert.equal(moment().add({d: 5}).fromNow(), 'في 5 أيام', 'in 5 days'); -}); - -test('calendar day', function (assert) { - var a = moment().hours(12).minutes(0).seconds(0); - - assert.equal(moment(a).calendar(), 'اليوم على الساعة 12:00', 'today at the same time'); - assert.equal(moment(a).add({m: 25}).calendar(), 'اليوم على الساعة 12:25', 'Now plus 25 min'); - assert.equal(moment(a).add({h: 1}).calendar(), 'اليوم على الساعة 13:00', 'Now plus 1 hour'); - assert.equal(moment(a).add({d: 1}).calendar(), 'غدا على الساعة 12:00', 'tomorrow at the same time'); - assert.equal(moment(a).subtract({h: 1}).calendar(), 'اليوم على الساعة 11:00', 'Now minus 1 hour'); - assert.equal(moment(a).subtract({d: 1}).calendar(), 'أمس على الساعة 12:00', 'yesterday at the same time'); -}); - -test('calendar next week', function (assert) { - var i, m; - for (i = 2; i < 7; i++) { - m = moment().add({d: i}); - assert.equal(m.calendar(), m.format('dddd [على الساعة] LT'), 'Today + ' + i + ' days current time'); - m.hours(0).minutes(0).seconds(0).milliseconds(0); - assert.equal(m.calendar(), m.format('dddd [على الساعة] LT'), 'Today + ' + i + ' days beginning of day'); - m.hours(23).minutes(59).seconds(59).milliseconds(999); - assert.equal(m.calendar(), m.format('dddd [على الساعة] LT'), 'Today + ' + i + ' days end of day'); - } -}); - -test('calendar last week', function (assert) { - var i, m; - for (i = 2; i < 7; i++) { - m = moment().subtract({d: i}); - assert.equal(m.calendar(), m.format('dddd [على الساعة] LT'), 'Today - ' + i + ' days current time'); - m.hours(0).minutes(0).seconds(0).milliseconds(0); - assert.equal(m.calendar(), m.format('dddd [على الساعة] LT'), 'Today - ' + i + ' days beginning of day'); - m.hours(23).minutes(59).seconds(59).milliseconds(999); - assert.equal(m.calendar(), m.format('dddd [على الساعة] LT'), 'Today - ' + i + ' days end of day'); - } -}); - -test('calendar all else', function (assert) { - var weeksAgo = moment().subtract({w: 1}), - weeksFromNow = moment().add({w: 1}); - - assert.equal(weeksAgo.calendar(), weeksAgo.format('L'), '1 week ago'); - assert.equal(weeksFromNow.calendar(), weeksFromNow.format('L'), 'in 1 week'); - - weeksAgo = moment().subtract({w: 2}); - weeksFromNow = moment().add({w: 2}); - - assert.equal(weeksAgo.calendar(), weeksAgo.format('L'), '2 weeks ago'); - assert.equal(weeksFromNow.calendar(), weeksFromNow.format('L'), 'in 2 weeks'); -}); - -test('weeks year starting sunday formatted', function (assert) { - assert.equal(moment([2016, 1, 4]).format('w ww wo'), '5 05 5', 'Feb 4 2016 should be week 5'); - assert.equal(moment([2016, 0, 6]).format('w ww wo'), '1 01 1', 'Jan 6 2016 should be week 1'); - assert.equal(moment([2016, 0, 7]).format('w ww wo'), '1 01 1', 'Jan 7 2016 should be week 1'); - assert.equal(moment([2016, 0, 13]).format('w ww wo'), '2 02 2', 'Jan 13 2016 should be week 2'); - assert.equal(moment([2016, 0, 14]).format('w ww wo'), '2 02 2', 'Jan 14 2016 should be week 2'); -}); - -}))); - - -;(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' - && typeof require === 'function' ? factory(require('../../moment')) : - typeof define === 'function' && define.amd ? define(['../../moment'], factory) : - factory(global.moment) -}(this, (function (moment) { 'use strict'; - -function each(array, callback) { - var i; - for (i = 0; i < array.length; i++) { - callback(array[i], i, array); - } -} - -function objectKeys(obj) { - if (Object.keys) { - return Object.keys(obj); - } else { - // IE8 - var res = [], i; - for (i in obj) { - if (obj.hasOwnProperty(i)) { - res.push(i); - } - } - return res; - } -} - -// Pick the first defined of two or three arguments. - -function defineCommonLocaleTests(locale, options) { - test('lenient day of month ordinal parsing', function (assert) { - var i, ordinalStr, testMoment; - for (i = 1; i <= 31; ++i) { - ordinalStr = moment([2014, 0, i]).format('YYYY MM Do'); - testMoment = moment(ordinalStr, 'YYYY MM Do'); - assert.equal(testMoment.year(), 2014, - 'lenient day of month ordinal parsing ' + i + ' year check'); - assert.equal(testMoment.month(), 0, - 'lenient day of month ordinal parsing ' + i + ' month check'); - assert.equal(testMoment.date(), i, - 'lenient day of month ordinal parsing ' + i + ' date check'); - } - }); - - test('lenient day of month ordinal parsing of number', function (assert) { - var i, testMoment; - for (i = 1; i <= 31; ++i) { - testMoment = moment('2014 01 ' + i, 'YYYY MM Do'); - assert.equal(testMoment.year(), 2014, - 'lenient day of month ordinal parsing of number ' + i + ' year check'); - assert.equal(testMoment.month(), 0, - 'lenient day of month ordinal parsing of number ' + i + ' month check'); - assert.equal(testMoment.date(), i, - 'lenient day of month ordinal parsing of number ' + i + ' date check'); - } - }); - - test('strict day of month ordinal parsing', function (assert) { - var i, ordinalStr, testMoment; - for (i = 1; i <= 31; ++i) { - ordinalStr = moment([2014, 0, i]).format('YYYY MM Do'); - testMoment = moment(ordinalStr, 'YYYY MM Do', true); - assert.ok(testMoment.isValid(), 'strict day of month ordinal parsing ' + i); - } - }); - - test('meridiem invariant', function (assert) { - var h, m, t1, t2; - for (h = 0; h < 24; ++h) { - for (m = 0; m < 60; m += 15) { - t1 = moment.utc([2000, 0, 1, h, m]); - t2 = moment.utc(t1.format('A h:mm'), 'A h:mm'); - assert.equal(t2.format('HH:mm'), t1.format('HH:mm'), - 'meridiem at ' + t1.format('HH:mm')); - } - } - }); - - test('date format correctness', function (assert) { - var data, tokens; - data = moment.localeData()._longDateFormat; - tokens = objectKeys(data); - each(tokens, function (srchToken) { - // Check each format string to make sure it does not contain any - // tokens that need to be expanded. - each(tokens, function (baseToken) { - // strip escaped sequences - var format = data[baseToken].replace(/(\[[^\]]*\])/g, ''); - assert.equal(false, !!~format.indexOf(srchToken), - 'contains ' + srchToken + ' in ' + baseToken); - }); - }); - }); - - test('month parsing correctness', function (assert) { - var i, m; - - if (locale === 'tr') { - // I can't fix it :( - expect(0); - return; - } - function tester(format) { - var r; - r = moment(m.format(format), format); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format); - r = moment(m.format(format).toLocaleUpperCase(), format); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' upper'); - r = moment(m.format(format).toLocaleLowerCase(), format); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' lower'); - - r = moment(m.format(format), format, true); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' strict'); - r = moment(m.format(format).toLocaleUpperCase(), format, true); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' upper strict'); - r = moment(m.format(format).toLocaleLowerCase(), format, true); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' lower strict'); - } - - for (i = 0; i < 12; ++i) { - m = moment([2015, i, 15, 18]); - tester('MMM'); - tester('MMM.'); - tester('MMMM'); - tester('MMMM.'); - } - }); - - test('weekday parsing correctness', function (assert) { - var i, m; - - if (locale === 'tr' || locale === 'az' || locale === 'ro') { - // tr, az: There is a lower-case letter (ı), that converted to - // upper then lower changes to i - // ro: there is the letter ț which behaves weird under IE8 - expect(0); - return; - } - function tester(format) { - var r, baseMsg = 'weekday ' + m.weekday() + ' fmt ' + format + ' ' + m.toISOString(); - r = moment(m.format(format), format); - assert.equal(r.weekday(), m.weekday(), baseMsg); - r = moment(m.format(format).toLocaleUpperCase(), format); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' upper'); - r = moment(m.format(format).toLocaleLowerCase(), format); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' lower'); - - r = moment(m.format(format), format, true); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' strict'); - r = moment(m.format(format).toLocaleUpperCase(), format, true); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' upper strict'); - r = moment(m.format(format).toLocaleLowerCase(), format, true); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' lower strict'); - } - - for (i = 0; i < 7; ++i) { - m = moment.utc([2015, 0, i + 1, 18]); - tester('dd'); - tester('ddd'); - tester('dddd'); - } - }); - - test('valid localeData', function (assert) { - assert.equal(moment().localeData().months().length, 12, 'months should return 12 months'); - assert.equal(moment().localeData().monthsShort().length, 12, 'monthsShort should return 12 months'); - assert.equal(moment().localeData().weekdays().length, 7, 'weekdays should return 7 days'); - assert.equal(moment().localeData().weekdaysShort().length, 7, 'weekdaysShort should return 7 days'); - assert.equal(moment().localeData().weekdaysMin().length, 7, 'monthsShort should return 7 days'); - }); -} - -function setupDeprecationHandler(test, moment$$1, scope) { - test._expectedDeprecations = null; - test._observedDeprecations = null; - test._oldSupress = moment$$1.suppressDeprecationWarnings; - moment$$1.suppressDeprecationWarnings = true; - test.expectedDeprecations = function () { - test._expectedDeprecations = arguments; - test._observedDeprecations = []; - }; - moment$$1.deprecationHandler = function (name, msg) { - var deprecationId = matchedDeprecation(name, msg, test._expectedDeprecations); - if (deprecationId === -1) { - throw new Error('Unexpected deprecation thrown name=' + - name + ' msg=' + msg); - } - test._observedDeprecations[deprecationId] = 1; - }; -} - -function teardownDeprecationHandler(test, moment$$1, scope) { - moment$$1.suppressDeprecationWarnings = test._oldSupress; - - if (test._expectedDeprecations != null) { - var missedDeprecations = []; - each(test._expectedDeprecations, function (deprecationPattern, id) { - if (test._observedDeprecations[id] !== 1) { - missedDeprecations.push(deprecationPattern); - } - }); - if (missedDeprecations.length !== 0) { - throw new Error('Expected deprecation warnings did not happen: ' + - missedDeprecations.join(' ')); - } - } -} - -function matchedDeprecation(name, msg, deprecations) { - if (deprecations == null) { - return -1; - } - for (var i = 0; i < deprecations.length; ++i) { - if (name != null && name === deprecations[i]) { - return i; - } - if (msg != null && msg.substring(0, deprecations[i].length) === deprecations[i]) { - return i; - } - } - return -1; -} - -/*global QUnit:false*/ - -var test = QUnit.test; - -var expect = QUnit.expect; - - - -function localeModule (name, lifecycle) { - QUnit.module('locale:' + name, { - setup : function () { - moment.locale(name); - moment.createFromInputFallback = function (config) { - throw new Error('input not handled by moment: ' + config._i); - }; - setupDeprecationHandler(test, moment, 'locale'); - if (lifecycle && lifecycle.setup) { - lifecycle.setup(); - } - }, - teardown : function () { - moment.locale('en'); - teardownDeprecationHandler(test, moment, 'locale'); - if (lifecycle && lifecycle.teardown) { - lifecycle.teardown(); - } - } - }); - defineCommonLocaleTests(name, -1, -1); -} - -localeModule('ar-kw'); - -test('parse', function (assert) { - var tests = 'يناير:يناير_فبراير:فبراير_مارس:مارس_أبريل:أبريل_ماي:ماي_يونيو:يونيو_يوليوز:يوليوز_غشت:غشت_شتنبر:شتنبر_أكتوبر:أكتوبر_نونبر:نونبر_دجنبر:دجنبر'.split('_'), i; - function equalTest(input, mmm, i) { - assert.equal(moment(input, mmm).month(), i, input + ' should be month ' + (i + 1)); - } - for (i = 0; i < 12; i++) { - tests[i] = tests[i].split(':'); - equalTest(tests[i][0], 'MMM', i); - equalTest(tests[i][1], 'MMM', i); - equalTest(tests[i][0], 'MMMM', i); - equalTest(tests[i][1], 'MMMM', i); - equalTest(tests[i][0].toLocaleLowerCase(), 'MMMM', i); - equalTest(tests[i][1].toLocaleLowerCase(), 'MMMM', i); - equalTest(tests[i][0].toLocaleUpperCase(), 'MMMM', i); - equalTest(tests[i][1].toLocaleUpperCase(), 'MMMM', i); - } -}); - -test('format', function (assert) { - var a = [ - ['dddd, MMMM Do YYYY, h:mm:ss a', 'الأحد, فبراير 14 2010, 3:25:50 pm'], - ['ddd, hA', 'احد, 3PM'], - ['M Mo MM MMMM MMM', '2 2 02 فبراير فبراير'], - ['YYYY YY', '2010 10'], - ['D Do DD', '14 14 14'], - ['d do dddd ddd dd', '0 0 الأحد احد ح'], - ['DDD DDDo DDDD', '45 45 045'], - ['w wo ww', '9 9 09'], - ['h hh', '3 03'], - ['H HH', '15 15'], - ['m mm', '25 25'], - ['s ss', '50 50'], - ['a A', 'pm PM'], - ['[the] DDDo [day of the year]', 'the 45 day of the year'], - ['LT', '15:25'], - ['LTS', '15:25:50'], - ['L', '14/02/2010'], - ['LL', '14 فبراير 2010'], - ['LLL', '14 فبراير 2010 15:25'], - ['LLLL', 'الأحد 14 فبراير 2010 15:25'], - ['l', '14/2/2010'], - ['ll', '14 فبراير 2010'], - ['lll', '14 فبراير 2010 15:25'], - ['llll', 'احد 14 فبراير 2010 15:25'] - ], - b = moment(new Date(2010, 1, 14, 15, 25, 50, 125)), - i; - for (i = 0; i < a.length; i++) { - assert.equal(b.format(a[i][0]), a[i][1], a[i][0] + ' ---> ' + a[i][1]); - } -}); - -test('format ordinal', function (assert) { - assert.equal(moment([2011, 0, 1]).format('DDDo'), '1', '1'); - assert.equal(moment([2011, 0, 2]).format('DDDo'), '2', '2'); - assert.equal(moment([2011, 0, 3]).format('DDDo'), '3', '3'); - assert.equal(moment([2011, 0, 4]).format('DDDo'), '4', '4'); - assert.equal(moment([2011, 0, 5]).format('DDDo'), '5', '5'); - assert.equal(moment([2011, 0, 6]).format('DDDo'), '6', '6'); - assert.equal(moment([2011, 0, 7]).format('DDDo'), '7', '7'); - assert.equal(moment([2011, 0, 8]).format('DDDo'), '8', '8'); - assert.equal(moment([2011, 0, 9]).format('DDDo'), '9', '9'); - assert.equal(moment([2011, 0, 10]).format('DDDo'), '10', '10'); - - assert.equal(moment([2011, 0, 11]).format('DDDo'), '11', '11'); - assert.equal(moment([2011, 0, 12]).format('DDDo'), '12', '12'); - assert.equal(moment([2011, 0, 13]).format('DDDo'), '13', '13'); - assert.equal(moment([2011, 0, 14]).format('DDDo'), '14', '14'); - assert.equal(moment([2011, 0, 15]).format('DDDo'), '15', '15'); - assert.equal(moment([2011, 0, 16]).format('DDDo'), '16', '16'); - assert.equal(moment([2011, 0, 17]).format('DDDo'), '17', '17'); - assert.equal(moment([2011, 0, 18]).format('DDDo'), '18', '18'); - assert.equal(moment([2011, 0, 19]).format('DDDo'), '19', '19'); - assert.equal(moment([2011, 0, 20]).format('DDDo'), '20', '20'); - - assert.equal(moment([2011, 0, 21]).format('DDDo'), '21', '21'); - assert.equal(moment([2011, 0, 22]).format('DDDo'), '22', '22'); - assert.equal(moment([2011, 0, 23]).format('DDDo'), '23', '23'); - assert.equal(moment([2011, 0, 24]).format('DDDo'), '24', '24'); - assert.equal(moment([2011, 0, 25]).format('DDDo'), '25', '25'); - assert.equal(moment([2011, 0, 26]).format('DDDo'), '26', '26'); - assert.equal(moment([2011, 0, 27]).format('DDDo'), '27', '27'); - assert.equal(moment([2011, 0, 28]).format('DDDo'), '28', '28'); - assert.equal(moment([2011, 0, 29]).format('DDDo'), '29', '29'); - assert.equal(moment([2011, 0, 30]).format('DDDo'), '30', '30'); - - assert.equal(moment([2011, 0, 31]).format('DDDo'), '31', '31'); -}); - -test('format month', function (assert) { - var expected = 'يناير يناير_فبراير فبراير_مارس مارس_أبريل أبريل_ماي ماي_يونيو يونيو_يوليوز يوليوز_غشت غشت_شتنبر شتنبر_أكتوبر أكتوبر_نونبر نونبر_دجنبر دجنبر'.split('_'), i; - for (i = 0; i < expected.length; i++) { - assert.equal(moment([2011, i, 1]).format('MMMM MMM'), expected[i], expected[i]); - } -}); - -test('format week', function (assert) { - var expected = 'الأحد احد ح_الإتنين اتنين ن_الثلاثاء ثلاثاء ث_الأربعاء اربعاء ر_الخميس خميس خ_الجمعة جمعة ج_السبت سبت س'.split('_'), i; - for (i = 0; i < expected.length; i++) { - assert.equal(moment([2011, 0, 2 + i]).format('dddd ddd dd'), expected[i], expected[i]); - } -}); - -test('from', function (assert) { - var start = moment([2007, 1, 28]); - assert.equal(start.from(moment([2007, 1, 28]).add({s: 44}), true), 'ثوان', '44 seconds = a few seconds'); - assert.equal(start.from(moment([2007, 1, 28]).add({s: 45}), true), 'دقيقة', '45 seconds = a minute'); - assert.equal(start.from(moment([2007, 1, 28]).add({s: 89}), true), 'دقيقة', '89 seconds = a minute'); - assert.equal(start.from(moment([2007, 1, 28]).add({s: 90}), true), '2 دقائق', '90 seconds = 2 minutes'); - assert.equal(start.from(moment([2007, 1, 28]).add({m: 44}), true), '44 دقائق', '44 minutes = 44 minutes'); - assert.equal(start.from(moment([2007, 1, 28]).add({m: 45}), true), 'ساعة', '45 minutes = an hour'); - assert.equal(start.from(moment([2007, 1, 28]).add({m: 89}), true), 'ساعة', '89 minutes = an hour'); - assert.equal(start.from(moment([2007, 1, 28]).add({m: 90}), true), '2 ساعات', '90 minutes = 2 hours'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 5}), true), '5 ساعات', '5 hours = 5 hours'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 21}), true), '21 ساعات', '21 hours = 21 hours'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 22}), true), 'يوم', '22 hours = a day'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 35}), true), 'يوم', '35 hours = a day'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 36}), true), '2 أيام', '36 hours = 2 days'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 1}), true), 'يوم', '1 day = a day'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 5}), true), '5 أيام', '5 days = 5 days'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 25}), true), '25 أيام', '25 days = 25 days'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 26}), true), 'شهر', '26 days = a month'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 30}), true), 'شهر', '30 days = a month'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 43}), true), 'شهر', '43 days = a month'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 46}), true), '2 أشهر', '46 days = 2 months'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 74}), true), '2 أشهر', '75 days = 2 months'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 76}), true), '3 أشهر', '76 days = 3 months'); - assert.equal(start.from(moment([2007, 1, 28]).add({M: 1}), true), 'شهر', '1 month = a month'); - assert.equal(start.from(moment([2007, 1, 28]).add({M: 5}), true), '5 أشهر', '5 months = 5 months'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 345}), true), 'سنة', '345 days = a year'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 548}), true), '2 سنوات', '548 days = 2 years'); - assert.equal(start.from(moment([2007, 1, 28]).add({y: 1}), true), 'سنة', '1 year = a year'); - assert.equal(start.from(moment([2007, 1, 28]).add({y: 5}), true), '5 سنوات', '5 years = 5 years'); -}); - -test('suffix', function (assert) { - assert.equal(moment(30000).from(0), 'في ثوان', 'prefix'); - assert.equal(moment(0).from(30000), 'منذ ثوان', 'suffix'); -}); - -test('now from now', function (assert) { - assert.equal(moment().fromNow(), 'منذ ثوان', 'now from now should display as in the past'); -}); - -test('fromNow', function (assert) { - assert.equal(moment().add({s: 30}).fromNow(), 'في ثوان', 'in a few seconds'); - assert.equal(moment().add({d: 5}).fromNow(), 'في 5 أيام', 'in 5 days'); -}); - -test('calendar day', function (assert) { - var a = moment().hours(12).minutes(0).seconds(0); - - assert.equal(moment(a).calendar(), 'اليوم على الساعة 12:00', 'today at the same time'); - assert.equal(moment(a).add({m: 25}).calendar(), 'اليوم على الساعة 12:25', 'Now plus 25 min'); - assert.equal(moment(a).add({h: 1}).calendar(), 'اليوم على الساعة 13:00', 'Now plus 1 hour'); - assert.equal(moment(a).add({d: 1}).calendar(), 'غدا على الساعة 12:00', 'tomorrow at the same time'); - assert.equal(moment(a).subtract({h: 1}).calendar(), 'اليوم على الساعة 11:00', 'Now minus 1 hour'); - assert.equal(moment(a).subtract({d: 1}).calendar(), 'أمس على الساعة 12:00', 'yesterday at the same time'); -}); - -test('calendar next week', function (assert) { - var i, m; - for (i = 2; i < 7; i++) { - m = moment().add({d: i}); - assert.equal(m.calendar(), m.format('dddd [على الساعة] LT'), 'Today + ' + i + ' days current time'); - m.hours(0).minutes(0).seconds(0).milliseconds(0); - assert.equal(m.calendar(), m.format('dddd [على الساعة] LT'), 'Today + ' + i + ' days beginning of day'); - m.hours(23).minutes(59).seconds(59).milliseconds(999); - assert.equal(m.calendar(), m.format('dddd [على الساعة] LT'), 'Today + ' + i + ' days end of day'); - } -}); - -test('calendar last week', function (assert) { - var i, m; - for (i = 2; i < 7; i++) { - m = moment().subtract({d: i}); - assert.equal(m.calendar(), m.format('dddd [على الساعة] LT'), 'Today - ' + i + ' days current time'); - m.hours(0).minutes(0).seconds(0).milliseconds(0); - assert.equal(m.calendar(), m.format('dddd [على الساعة] LT'), 'Today - ' + i + ' days beginning of day'); - m.hours(23).minutes(59).seconds(59).milliseconds(999); - assert.equal(m.calendar(), m.format('dddd [على الساعة] LT'), 'Today - ' + i + ' days end of day'); - } -}); - -test('calendar all else', function (assert) { - var weeksAgo = moment().subtract({w: 1}), - weeksFromNow = moment().add({w: 1}); - - assert.equal(weeksAgo.calendar(), weeksAgo.format('L'), '1 week ago'); - assert.equal(weeksFromNow.calendar(), weeksFromNow.format('L'), 'in 1 week'); - - weeksAgo = moment().subtract({w: 2}); - weeksFromNow = moment().add({w: 2}); - - assert.equal(weeksAgo.calendar(), weeksAgo.format('L'), '2 weeks ago'); - assert.equal(weeksFromNow.calendar(), weeksFromNow.format('L'), 'in 2 weeks'); -}); - -test('weeks year starting sunday formatted', function (assert) { - assert.equal(moment([2011, 11, 31]).format('w ww wo'), '1 01 1', 'Dec 31 2011 should be week 1'); - assert.equal(moment([2012, 0, 1]).format('w ww wo'), '2 02 2', 'Jan 1 2012 should be week 2'); - assert.equal(moment([2012, 0, 8]).format('w ww wo'), '3 03 3', 'Jan 8 2012 should be week 3'); - assert.equal(moment([2012, 0, 14]).format('w ww wo'), '3 03 3', 'Jan 14 2012 should be week 3'); - assert.equal(moment([2012, 0, 15]).format('w ww wo'), '4 04 4', 'Jan 15 2012 should be week 4'); -}); - -}))); - - -;(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' - && typeof require === 'function' ? factory(require('../../moment')) : - typeof define === 'function' && define.amd ? define(['../../moment'], factory) : - factory(global.moment) -}(this, (function (moment) { 'use strict'; - -function each(array, callback) { - var i; - for (i = 0; i < array.length; i++) { - callback(array[i], i, array); - } -} - -function objectKeys(obj) { - if (Object.keys) { - return Object.keys(obj); - } else { - // IE8 - var res = [], i; - for (i in obj) { - if (obj.hasOwnProperty(i)) { - res.push(i); - } - } - return res; - } -} - -// Pick the first defined of two or three arguments. - -function defineCommonLocaleTests(locale, options) { - test('lenient day of month ordinal parsing', function (assert) { - var i, ordinalStr, testMoment; - for (i = 1; i <= 31; ++i) { - ordinalStr = moment([2014, 0, i]).format('YYYY MM Do'); - testMoment = moment(ordinalStr, 'YYYY MM Do'); - assert.equal(testMoment.year(), 2014, - 'lenient day of month ordinal parsing ' + i + ' year check'); - assert.equal(testMoment.month(), 0, - 'lenient day of month ordinal parsing ' + i + ' month check'); - assert.equal(testMoment.date(), i, - 'lenient day of month ordinal parsing ' + i + ' date check'); - } - }); - - test('lenient day of month ordinal parsing of number', function (assert) { - var i, testMoment; - for (i = 1; i <= 31; ++i) { - testMoment = moment('2014 01 ' + i, 'YYYY MM Do'); - assert.equal(testMoment.year(), 2014, - 'lenient day of month ordinal parsing of number ' + i + ' year check'); - assert.equal(testMoment.month(), 0, - 'lenient day of month ordinal parsing of number ' + i + ' month check'); - assert.equal(testMoment.date(), i, - 'lenient day of month ordinal parsing of number ' + i + ' date check'); - } - }); - - test('strict day of month ordinal parsing', function (assert) { - var i, ordinalStr, testMoment; - for (i = 1; i <= 31; ++i) { - ordinalStr = moment([2014, 0, i]).format('YYYY MM Do'); - testMoment = moment(ordinalStr, 'YYYY MM Do', true); - assert.ok(testMoment.isValid(), 'strict day of month ordinal parsing ' + i); - } - }); - - test('meridiem invariant', function (assert) { - var h, m, t1, t2; - for (h = 0; h < 24; ++h) { - for (m = 0; m < 60; m += 15) { - t1 = moment.utc([2000, 0, 1, h, m]); - t2 = moment.utc(t1.format('A h:mm'), 'A h:mm'); - assert.equal(t2.format('HH:mm'), t1.format('HH:mm'), - 'meridiem at ' + t1.format('HH:mm')); - } - } - }); - - test('date format correctness', function (assert) { - var data, tokens; - data = moment.localeData()._longDateFormat; - tokens = objectKeys(data); - each(tokens, function (srchToken) { - // Check each format string to make sure it does not contain any - // tokens that need to be expanded. - each(tokens, function (baseToken) { - // strip escaped sequences - var format = data[baseToken].replace(/(\[[^\]]*\])/g, ''); - assert.equal(false, !!~format.indexOf(srchToken), - 'contains ' + srchToken + ' in ' + baseToken); - }); - }); - }); - - test('month parsing correctness', function (assert) { - var i, m; - - if (locale === 'tr') { - // I can't fix it :( - expect(0); - return; - } - function tester(format) { - var r; - r = moment(m.format(format), format); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format); - r = moment(m.format(format).toLocaleUpperCase(), format); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' upper'); - r = moment(m.format(format).toLocaleLowerCase(), format); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' lower'); - - r = moment(m.format(format), format, true); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' strict'); - r = moment(m.format(format).toLocaleUpperCase(), format, true); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' upper strict'); - r = moment(m.format(format).toLocaleLowerCase(), format, true); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' lower strict'); - } - - for (i = 0; i < 12; ++i) { - m = moment([2015, i, 15, 18]); - tester('MMM'); - tester('MMM.'); - tester('MMMM'); - tester('MMMM.'); - } - }); - - test('weekday parsing correctness', function (assert) { - var i, m; - - if (locale === 'tr' || locale === 'az' || locale === 'ro') { - // tr, az: There is a lower-case letter (ı), that converted to - // upper then lower changes to i - // ro: there is the letter ț which behaves weird under IE8 - expect(0); - return; - } - function tester(format) { - var r, baseMsg = 'weekday ' + m.weekday() + ' fmt ' + format + ' ' + m.toISOString(); - r = moment(m.format(format), format); - assert.equal(r.weekday(), m.weekday(), baseMsg); - r = moment(m.format(format).toLocaleUpperCase(), format); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' upper'); - r = moment(m.format(format).toLocaleLowerCase(), format); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' lower'); - - r = moment(m.format(format), format, true); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' strict'); - r = moment(m.format(format).toLocaleUpperCase(), format, true); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' upper strict'); - r = moment(m.format(format).toLocaleLowerCase(), format, true); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' lower strict'); - } - - for (i = 0; i < 7; ++i) { - m = moment.utc([2015, 0, i + 1, 18]); - tester('dd'); - tester('ddd'); - tester('dddd'); - } - }); - - test('valid localeData', function (assert) { - assert.equal(moment().localeData().months().length, 12, 'months should return 12 months'); - assert.equal(moment().localeData().monthsShort().length, 12, 'monthsShort should return 12 months'); - assert.equal(moment().localeData().weekdays().length, 7, 'weekdays should return 7 days'); - assert.equal(moment().localeData().weekdaysShort().length, 7, 'weekdaysShort should return 7 days'); - assert.equal(moment().localeData().weekdaysMin().length, 7, 'monthsShort should return 7 days'); - }); -} - -function setupDeprecationHandler(test, moment$$1, scope) { - test._expectedDeprecations = null; - test._observedDeprecations = null; - test._oldSupress = moment$$1.suppressDeprecationWarnings; - moment$$1.suppressDeprecationWarnings = true; - test.expectedDeprecations = function () { - test._expectedDeprecations = arguments; - test._observedDeprecations = []; - }; - moment$$1.deprecationHandler = function (name, msg) { - var deprecationId = matchedDeprecation(name, msg, test._expectedDeprecations); - if (deprecationId === -1) { - throw new Error('Unexpected deprecation thrown name=' + - name + ' msg=' + msg); - } - test._observedDeprecations[deprecationId] = 1; - }; -} - -function teardownDeprecationHandler(test, moment$$1, scope) { - moment$$1.suppressDeprecationWarnings = test._oldSupress; - - if (test._expectedDeprecations != null) { - var missedDeprecations = []; - each(test._expectedDeprecations, function (deprecationPattern, id) { - if (test._observedDeprecations[id] !== 1) { - missedDeprecations.push(deprecationPattern); - } - }); - if (missedDeprecations.length !== 0) { - throw new Error('Expected deprecation warnings did not happen: ' + - missedDeprecations.join(' ')); - } - } -} - -function matchedDeprecation(name, msg, deprecations) { - if (deprecations == null) { - return -1; - } - for (var i = 0; i < deprecations.length; ++i) { - if (name != null && name === deprecations[i]) { - return i; - } - if (msg != null && msg.substring(0, deprecations[i].length) === deprecations[i]) { - return i; - } - } - return -1; -} - -/*global QUnit:false*/ - -var test = QUnit.test; - -var expect = QUnit.expect; - - - -function localeModule (name, lifecycle) { - QUnit.module('locale:' + name, { - setup : function () { - moment.locale(name); - moment.createFromInputFallback = function (config) { - throw new Error('input not handled by moment: ' + config._i); - }; - setupDeprecationHandler(test, moment, 'locale'); - if (lifecycle && lifecycle.setup) { - lifecycle.setup(); - } - }, - teardown : function () { - moment.locale('en'); - teardownDeprecationHandler(test, moment, 'locale'); - if (lifecycle && lifecycle.teardown) { - lifecycle.teardown(); - } - } - }); - defineCommonLocaleTests(name, -1, -1); -} - -localeModule('ar-ly'); - -var months = [ - 'يناير', - 'فبراير', - 'مارس', - 'أبريل', - 'مايو', - 'يونيو', - 'يوليو', - 'أغسطس', - 'سبتمبر', - 'أكتوبر', - 'نوفمبر', - 'ديسمبر' -]; - -test('parse', function (assert) { - var tests = months, i; - function equalTest(input, mmm, i) { - assert.equal(moment(input, mmm).month(), i, input + ' should be month ' + (i + 1) + ' instead is month ' + moment(input, mmm).month()); - } - for (i = 0; i < 12; i++) { - equalTest(tests[i], 'MMM', i); - equalTest(tests[i], 'MMM', i); - equalTest(tests[i], 'MMMM', i); - equalTest(tests[i], 'MMMM', i); - equalTest(tests[i].toLocaleLowerCase(), 'MMMM', i); - equalTest(tests[i].toLocaleLowerCase(), 'MMMM', i); - equalTest(tests[i].toLocaleUpperCase(), 'MMMM', i); - equalTest(tests[i].toLocaleUpperCase(), 'MMMM', i); - } -}); - -test('format', function (assert) { - var a = [ - ['dddd, MMMM Do YYYY, h:mm:ss a', 'الأحد، فبراير 14 2010، 3:25:50 م'], - ['ddd, hA', 'أحد، 3م'], - ['M Mo MM MMMM MMM', '2 2 02 فبراير فبراير'], - ['YYYY YY', '2010 10'], - ['D Do DD', '14 14 14'], - ['d do dddd ddd dd', '0 0 الأحد أحد ح'], - ['DDD DDDo DDDD', '45 45 045'], - ['w wo ww', '8 8 08'], - ['h hh', '3 03'], - ['H HH', '15 15'], - ['m mm', '25 25'], - ['s ss', '50 50'], - ['a A', 'م م'], - ['[the] DDDo [day of the year]', 'the 45 day of the year'], - ['LT', '15:25'], - ['LTS', '15:25:50'], - ['L', '14/\u200f2/\u200f2010'], - ['LL', '14 فبراير 2010'], - ['LLL', '14 فبراير 2010 15:25'], - ['LLLL', 'الأحد 14 فبراير 2010 15:25'], - ['l', '14/\u200f2/\u200f2010'], - ['ll', '14 فبراير 2010'], - ['lll', '14 فبراير 2010 15:25'], - ['llll', 'أحد 14 فبراير 2010 15:25'] - ], - b = moment(new Date(2010, 1, 14, 15, 25, 50, 125)), - i; - for (i = 0; i < a.length; i++) { - assert.equal(b.format(a[i][0]), a[i][1], a[i][0] + ' ---> ' + a[i][1]); - } -}); - -test('format ordinal', function (assert) { - assert.equal(moment([2011, 0, 1]).format('DDDo'), '1', '1'); - assert.equal(moment([2011, 0, 2]).format('DDDo'), '2', '2'); - assert.equal(moment([2011, 0, 3]).format('DDDo'), '3', '3'); - assert.equal(moment([2011, 0, 4]).format('DDDo'), '4', '4'); - assert.equal(moment([2011, 0, 5]).format('DDDo'), '5', '5'); - assert.equal(moment([2011, 0, 6]).format('DDDo'), '6', '6'); - assert.equal(moment([2011, 0, 7]).format('DDDo'), '7', '7'); - assert.equal(moment([2011, 0, 8]).format('DDDo'), '8', '8'); - assert.equal(moment([2011, 0, 9]).format('DDDo'), '9', '9'); - assert.equal(moment([2011, 0, 10]).format('DDDo'), '10', '10'); - - assert.equal(moment([2011, 0, 11]).format('DDDo'), '11', '11'); - assert.equal(moment([2011, 0, 12]).format('DDDo'), '12', '12'); - assert.equal(moment([2011, 0, 13]).format('DDDo'), '13', '13'); - assert.equal(moment([2011, 0, 14]).format('DDDo'), '14', '14'); - assert.equal(moment([2011, 0, 15]).format('DDDo'), '15', '15'); - assert.equal(moment([2011, 0, 16]).format('DDDo'), '16', '16'); - assert.equal(moment([2011, 0, 17]).format('DDDo'), '17', '17'); - assert.equal(moment([2011, 0, 18]).format('DDDo'), '18', '18'); - assert.equal(moment([2011, 0, 19]).format('DDDo'), '19', '19'); - assert.equal(moment([2011, 0, 20]).format('DDDo'), '20', '20'); - - assert.equal(moment([2011, 0, 21]).format('DDDo'), '21', '21'); - assert.equal(moment([2011, 0, 22]).format('DDDo'), '22', '22'); - assert.equal(moment([2011, 0, 23]).format('DDDo'), '23', '23'); - assert.equal(moment([2011, 0, 24]).format('DDDo'), '24', '24'); - assert.equal(moment([2011, 0, 25]).format('DDDo'), '25', '25'); - assert.equal(moment([2011, 0, 26]).format('DDDo'), '26', '26'); - assert.equal(moment([2011, 0, 27]).format('DDDo'), '27', '27'); - assert.equal(moment([2011, 0, 28]).format('DDDo'), '28', '28'); - assert.equal(moment([2011, 0, 29]).format('DDDo'), '29', '29'); - assert.equal(moment([2011, 0, 30]).format('DDDo'), '30', '30'); - - assert.equal(moment([2011, 0, 31]).format('DDDo'), '31', '31'); -}); - -test('format month', function (assert) { - var expected = months, i; - for (i = 0; i < expected.length; i++) { - assert.equal(moment([2011, i, 1]).format('MMMM'), expected[i], expected[i]); - assert.equal(moment([2011, i, 1]).format('MMM'), expected[i], expected[i]); - } -}); - -test('format week', function (assert) { - var expected = 'الأحد أحد ح_الإثنين إثنين ن_الثلاثاء ثلاثاء ث_الأربعاء أربعاء ر_الخميس خميس خ_الجمعة جمعة ج_السبت سبت س'.split('_'), i; - for (i = 0; i < expected.length; i++) { - assert.equal(moment([2011, 0, 2 + i]).format('dddd ddd dd'), expected[i], expected[i]); - } -}); - -test('from', function (assert) { - var start = moment([2007, 1, 28]); - assert.equal(start.from(moment([2007, 1, 28]).add({s: 44}), true), '44 ثانية', '44 seconds = a few seconds'); - assert.equal(start.from(moment([2007, 1, 28]).add({s: 45}), true), 'دقيقة واحدة', '45 seconds = a minute'); - assert.equal(start.from(moment([2007, 1, 28]).add({s: 89}), true), 'دقيقة واحدة', '89 seconds = a minute'); - assert.equal(start.from(moment([2007, 1, 28]).add({s: 90}), true), 'دقيقتان', '90 seconds = 2 minutes'); - assert.equal(start.from(moment([2007, 1, 28]).add({m: 44}), true), '44 دقيقة', '44 minutes = 44 minutes'); - assert.equal(start.from(moment([2007, 1, 28]).add({m: 45}), true), 'ساعة واحدة', '45 minutes = an hour'); - assert.equal(start.from(moment([2007, 1, 28]).add({m: 89}), true), 'ساعة واحدة', '89 minutes = an hour'); - assert.equal(start.from(moment([2007, 1, 28]).add({m: 90}), true), 'ساعتان', '90 minutes = 2 hours'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 5}), true), '5 ساعات', '5 hours = 5 hours'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 21}), true), '21 ساعة', '21 hours = 21 hours'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 22}), true), 'يوم واحد', '22 hours = a day'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 35}), true), 'يوم واحد', '35 hours = a day'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 36}), true), 'يومان', '36 hours = 2 days'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 1}), true), 'يوم واحد', '1 day = a day'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 5}), true), '5 أيام', '5 days = 5 days'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 25}), true), '25 يومًا', '25 days = 25 days'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 26}), true), 'شهر واحد', '26 days = a month'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 30}), true), 'شهر واحد', '30 days = a month'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 43}), true), 'شهر واحد', '43 days = a month'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 46}), true), 'شهران', '46 days = 2 months'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 74}), true), 'شهران', '75 days = 2 months'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 76}), true), '3 أشهر', '76 days = 3 months'); - assert.equal(start.from(moment([2007, 1, 28]).add({M: 1}), true), 'شهر واحد', '1 month = a month'); - assert.equal(start.from(moment([2007, 1, 28]).add({M: 5}), true), '5 أشهر', '5 months = 5 months'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 345}), true), 'عام واحد', '345 days = a year'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 548}), true), 'عامان', '548 days = 2 years'); - assert.equal(start.from(moment([2007, 1, 28]).add({y: 1}), true), 'عام واحد', '1 year = a year'); - assert.equal(start.from(moment([2007, 1, 28]).add({y: 5}), true), '5 أعوام', '5 years = 5 years'); -}); - -test('suffix', function (assert) { - assert.equal(moment(30000).from(0), 'بعد 30 ثانية', 'prefix'); - assert.equal(moment(0).from(30000), 'منذ 30 ثانية', 'suffix'); -}); - -test('now from now', function (assert) { - assert.equal(moment().fromNow(), 'منذ ثانية واحدة', 'now from now should display as in the past'); -}); - -test('fromNow', function (assert) { - assert.equal(moment().add({s: 30}).fromNow(), 'بعد 30 ثانية', 'in a few seconds'); - assert.equal(moment().add({d: 5}).fromNow(), 'بعد 5 أيام', 'in 5 days'); -}); - -test('calendar day', function (assert) { - var a = moment().hours(12).minutes(0).seconds(0); - - assert.equal(moment(a).calendar(), 'اليوم عند الساعة 12:00', 'today at the same time'); - assert.equal(moment(a).add({m: 25}).calendar(), 'اليوم عند الساعة 12:25', 'Now plus 25 min'); - assert.equal(moment(a).add({h: 1}).calendar(), 'اليوم عند الساعة 13:00', 'Now plus 1 hour'); - assert.equal(moment(a).add({d: 1}).calendar(), 'غدًا عند الساعة 12:00', 'tomorrow at the same time'); - assert.equal(moment(a).subtract({h: 1}).calendar(), 'اليوم عند الساعة 11:00', 'Now minus 1 hour'); - assert.equal(moment(a).subtract({d: 1}).calendar(), 'أمس عند الساعة 12:00', 'yesterday at the same time'); -}); - -test('calendar next week', function (assert) { - var i, m; - for (i = 2; i < 7; i++) { - m = moment().add({d: i}); - assert.equal(m.calendar(), m.format('dddd [عند الساعة] LT'), 'Today + ' + i + ' days current time'); - m.hours(0).minutes(0).seconds(0).milliseconds(0); - assert.equal(m.calendar(), m.format('dddd [عند الساعة] LT'), 'Today + ' + i + ' days beginning of day'); - m.hours(23).minutes(59).seconds(59).milliseconds(999); - assert.equal(m.calendar(), m.format('dddd [عند الساعة] LT'), 'Today + ' + i + ' days end of day'); - } -}); - -test('calendar last week', function (assert) { - var i, m; - for (i = 2; i < 7; i++) { - m = moment().subtract({d: i}); - assert.equal(m.calendar(), m.format('dddd [عند الساعة] LT'), 'Today - ' + i + ' days current time'); - m.hours(0).minutes(0).seconds(0).milliseconds(0); - assert.equal(m.calendar(), m.format('dddd [عند الساعة] LT'), 'Today - ' + i + ' days beginning of day'); - m.hours(23).minutes(59).seconds(59).milliseconds(999); - assert.equal(m.calendar(), m.format('dddd [عند الساعة] LT'), 'Today - ' + i + ' days end of day'); - } -}); - -test('calendar all else', function (assert) { - var weeksAgo = moment().subtract({w: 1}), - weeksFromNow = moment().add({w: 1}); - - assert.equal(weeksAgo.calendar(), weeksAgo.format('L'), '1 week ago'); - assert.equal(weeksFromNow.calendar(), weeksFromNow.format('L'), 'in 1 week'); - - weeksAgo = moment().subtract({w: 2}); - weeksFromNow = moment().add({w: 2}); - - assert.equal(weeksAgo.calendar(), weeksAgo.format('L'), '2 weeks ago'); - assert.equal(weeksFromNow.calendar(), weeksFromNow.format('L'), 'in 2 weeks'); -}); - -test('weeks year starting wednesday custom', function (assert) { - assert.equal(moment('2003 1 6', 'gggg w d').format('YYYY-MM-DD'), '2002-12-28', 'Week 1 of 2003 should be Dec 28 2002'); - assert.equal(moment('2003 1 0', 'gggg w e').format('YYYY-MM-DD'), '2002-12-28', 'Week 1 of 2003 should be Dec 28 2002'); - assert.equal(moment('2003 1 6', 'gggg w d').format('gggg w d'), '2003 1 6', 'Saturday of week 1 of 2003 parsed should be formatted as 2003 1 6'); - assert.equal(moment('2003 1 0', 'gggg w e').format('gggg w e'), '2003 1 0', '1st day of week 1 of 2003 parsed should be formatted as 2003 1 0'); -}); - -test('weeks year starting sunday formatted', function (assert) { - assert.equal(moment([2011, 11, 31]).format('w ww wo'), '1 01 1', 'Dec 31 2011 should be week 1'); - assert.equal(moment([2012, 0, 6]).format('w ww wo'), '1 01 1', 'Jan 6 2012 should be week 1'); - assert.equal(moment([2012, 0, 7]).format('w ww wo'), '2 02 2', 'Jan 7 2012 should be week 2'); - assert.equal(moment([2012, 0, 13]).format('w ww wo'), '2 02 2', 'Jan 13 2012 should be week 2'); - assert.equal(moment([2012, 0, 14]).format('w ww wo'), '3 03 3', 'Jan 14 2012 should be week 3'); -}); - -test('no leading zeros in long date formats', function (assert) { - var i, j, longDateStr, shortDateStr; - for (i = 1; i <= 9; ++i) { - for (j = 1; j <= 9; ++j) { - longDateStr = moment([2014, i, j]).format('L'); - shortDateStr = moment([2014, i, j]).format('l'); - assert.equal(longDateStr, shortDateStr, 'should not have leading zeros in month or day'); - } - } -}); - -}))); - - -;(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' - && typeof require === 'function' ? factory(require('../../moment')) : - typeof define === 'function' && define.amd ? define(['../../moment'], factory) : - factory(global.moment) -}(this, (function (moment) { 'use strict'; - -function each(array, callback) { - var i; - for (i = 0; i < array.length; i++) { - callback(array[i], i, array); - } -} - -function objectKeys(obj) { - if (Object.keys) { - return Object.keys(obj); - } else { - // IE8 - var res = [], i; - for (i in obj) { - if (obj.hasOwnProperty(i)) { - res.push(i); - } - } - return res; - } -} - -// Pick the first defined of two or three arguments. - -function defineCommonLocaleTests(locale, options) { - test('lenient day of month ordinal parsing', function (assert) { - var i, ordinalStr, testMoment; - for (i = 1; i <= 31; ++i) { - ordinalStr = moment([2014, 0, i]).format('YYYY MM Do'); - testMoment = moment(ordinalStr, 'YYYY MM Do'); - assert.equal(testMoment.year(), 2014, - 'lenient day of month ordinal parsing ' + i + ' year check'); - assert.equal(testMoment.month(), 0, - 'lenient day of month ordinal parsing ' + i + ' month check'); - assert.equal(testMoment.date(), i, - 'lenient day of month ordinal parsing ' + i + ' date check'); - } - }); - - test('lenient day of month ordinal parsing of number', function (assert) { - var i, testMoment; - for (i = 1; i <= 31; ++i) { - testMoment = moment('2014 01 ' + i, 'YYYY MM Do'); - assert.equal(testMoment.year(), 2014, - 'lenient day of month ordinal parsing of number ' + i + ' year check'); - assert.equal(testMoment.month(), 0, - 'lenient day of month ordinal parsing of number ' + i + ' month check'); - assert.equal(testMoment.date(), i, - 'lenient day of month ordinal parsing of number ' + i + ' date check'); - } - }); - - test('strict day of month ordinal parsing', function (assert) { - var i, ordinalStr, testMoment; - for (i = 1; i <= 31; ++i) { - ordinalStr = moment([2014, 0, i]).format('YYYY MM Do'); - testMoment = moment(ordinalStr, 'YYYY MM Do', true); - assert.ok(testMoment.isValid(), 'strict day of month ordinal parsing ' + i); - } - }); - - test('meridiem invariant', function (assert) { - var h, m, t1, t2; - for (h = 0; h < 24; ++h) { - for (m = 0; m < 60; m += 15) { - t1 = moment.utc([2000, 0, 1, h, m]); - t2 = moment.utc(t1.format('A h:mm'), 'A h:mm'); - assert.equal(t2.format('HH:mm'), t1.format('HH:mm'), - 'meridiem at ' + t1.format('HH:mm')); - } - } - }); - - test('date format correctness', function (assert) { - var data, tokens; - data = moment.localeData()._longDateFormat; - tokens = objectKeys(data); - each(tokens, function (srchToken) { - // Check each format string to make sure it does not contain any - // tokens that need to be expanded. - each(tokens, function (baseToken) { - // strip escaped sequences - var format = data[baseToken].replace(/(\[[^\]]*\])/g, ''); - assert.equal(false, !!~format.indexOf(srchToken), - 'contains ' + srchToken + ' in ' + baseToken); - }); - }); - }); - - test('month parsing correctness', function (assert) { - var i, m; - - if (locale === 'tr') { - // I can't fix it :( - expect(0); - return; - } - function tester(format) { - var r; - r = moment(m.format(format), format); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format); - r = moment(m.format(format).toLocaleUpperCase(), format); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' upper'); - r = moment(m.format(format).toLocaleLowerCase(), format); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' lower'); - - r = moment(m.format(format), format, true); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' strict'); - r = moment(m.format(format).toLocaleUpperCase(), format, true); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' upper strict'); - r = moment(m.format(format).toLocaleLowerCase(), format, true); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' lower strict'); - } - - for (i = 0; i < 12; ++i) { - m = moment([2015, i, 15, 18]); - tester('MMM'); - tester('MMM.'); - tester('MMMM'); - tester('MMMM.'); - } - }); - - test('weekday parsing correctness', function (assert) { - var i, m; - - if (locale === 'tr' || locale === 'az' || locale === 'ro') { - // tr, az: There is a lower-case letter (ı), that converted to - // upper then lower changes to i - // ro: there is the letter ț which behaves weird under IE8 - expect(0); - return; - } - function tester(format) { - var r, baseMsg = 'weekday ' + m.weekday() + ' fmt ' + format + ' ' + m.toISOString(); - r = moment(m.format(format), format); - assert.equal(r.weekday(), m.weekday(), baseMsg); - r = moment(m.format(format).toLocaleUpperCase(), format); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' upper'); - r = moment(m.format(format).toLocaleLowerCase(), format); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' lower'); - - r = moment(m.format(format), format, true); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' strict'); - r = moment(m.format(format).toLocaleUpperCase(), format, true); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' upper strict'); - r = moment(m.format(format).toLocaleLowerCase(), format, true); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' lower strict'); - } - - for (i = 0; i < 7; ++i) { - m = moment.utc([2015, 0, i + 1, 18]); - tester('dd'); - tester('ddd'); - tester('dddd'); - } - }); - - test('valid localeData', function (assert) { - assert.equal(moment().localeData().months().length, 12, 'months should return 12 months'); - assert.equal(moment().localeData().monthsShort().length, 12, 'monthsShort should return 12 months'); - assert.equal(moment().localeData().weekdays().length, 7, 'weekdays should return 7 days'); - assert.equal(moment().localeData().weekdaysShort().length, 7, 'weekdaysShort should return 7 days'); - assert.equal(moment().localeData().weekdaysMin().length, 7, 'monthsShort should return 7 days'); - }); -} - -function setupDeprecationHandler(test, moment$$1, scope) { - test._expectedDeprecations = null; - test._observedDeprecations = null; - test._oldSupress = moment$$1.suppressDeprecationWarnings; - moment$$1.suppressDeprecationWarnings = true; - test.expectedDeprecations = function () { - test._expectedDeprecations = arguments; - test._observedDeprecations = []; - }; - moment$$1.deprecationHandler = function (name, msg) { - var deprecationId = matchedDeprecation(name, msg, test._expectedDeprecations); - if (deprecationId === -1) { - throw new Error('Unexpected deprecation thrown name=' + - name + ' msg=' + msg); - } - test._observedDeprecations[deprecationId] = 1; - }; -} - -function teardownDeprecationHandler(test, moment$$1, scope) { - moment$$1.suppressDeprecationWarnings = test._oldSupress; - - if (test._expectedDeprecations != null) { - var missedDeprecations = []; - each(test._expectedDeprecations, function (deprecationPattern, id) { - if (test._observedDeprecations[id] !== 1) { - missedDeprecations.push(deprecationPattern); - } - }); - if (missedDeprecations.length !== 0) { - throw new Error('Expected deprecation warnings did not happen: ' + - missedDeprecations.join(' ')); - } - } -} - -function matchedDeprecation(name, msg, deprecations) { - if (deprecations == null) { - return -1; - } - for (var i = 0; i < deprecations.length; ++i) { - if (name != null && name === deprecations[i]) { - return i; - } - if (msg != null && msg.substring(0, deprecations[i].length) === deprecations[i]) { - return i; - } - } - return -1; -} - -/*global QUnit:false*/ - -var test = QUnit.test; - -var expect = QUnit.expect; - - - -function localeModule (name, lifecycle) { - QUnit.module('locale:' + name, { - setup : function () { - moment.locale(name); - moment.createFromInputFallback = function (config) { - throw new Error('input not handled by moment: ' + config._i); - }; - setupDeprecationHandler(test, moment, 'locale'); - if (lifecycle && lifecycle.setup) { - lifecycle.setup(); - } - }, - teardown : function () { - moment.locale('en'); - teardownDeprecationHandler(test, moment, 'locale'); - if (lifecycle && lifecycle.teardown) { - lifecycle.teardown(); - } - } - }); - defineCommonLocaleTests(name, -1, -1); -} - -localeModule('ar-ma'); - -test('parse', function (assert) { - var tests = 'يناير:يناير_فبراير:فبراير_مارس:مارس_أبريل:أبريل_ماي:ماي_يونيو:يونيو_يوليوز:يوليوز_غشت:غشت_شتنبر:شتنبر_أكتوبر:أكتوبر_نونبر:نونبر_دجنبر:دجنبر'.split('_'), i; - function equalTest(input, mmm, i) { - assert.equal(moment(input, mmm).month(), i, input + ' should be month ' + (i + 1)); - } - for (i = 0; i < 12; i++) { - tests[i] = tests[i].split(':'); - equalTest(tests[i][0], 'MMM', i); - equalTest(tests[i][1], 'MMM', i); - equalTest(tests[i][0], 'MMMM', i); - equalTest(tests[i][1], 'MMMM', i); - equalTest(tests[i][0].toLocaleLowerCase(), 'MMMM', i); - equalTest(tests[i][1].toLocaleLowerCase(), 'MMMM', i); - equalTest(tests[i][0].toLocaleUpperCase(), 'MMMM', i); - equalTest(tests[i][1].toLocaleUpperCase(), 'MMMM', i); - } -}); - -test('format', function (assert) { - var a = [ - ['dddd, MMMM Do YYYY, h:mm:ss a', 'الأحد, فبراير 14 2010, 3:25:50 pm'], - ['ddd, hA', 'احد, 3PM'], - ['M Mo MM MMMM MMM', '2 2 02 فبراير فبراير'], - ['YYYY YY', '2010 10'], - ['D Do DD', '14 14 14'], - ['d do dddd ddd dd', '0 0 الأحد احد ح'], - ['DDD DDDo DDDD', '45 45 045'], - ['w wo ww', '8 8 08'], - ['h hh', '3 03'], - ['H HH', '15 15'], - ['m mm', '25 25'], - ['s ss', '50 50'], - ['a A', 'pm PM'], - ['[the] DDDo [day of the year]', 'the 45 day of the year'], - ['LT', '15:25'], - ['LTS', '15:25:50'], - ['L', '14/02/2010'], - ['LL', '14 فبراير 2010'], - ['LLL', '14 فبراير 2010 15:25'], - ['LLLL', 'الأحد 14 فبراير 2010 15:25'], - ['l', '14/2/2010'], - ['ll', '14 فبراير 2010'], - ['lll', '14 فبراير 2010 15:25'], - ['llll', 'احد 14 فبراير 2010 15:25'] - ], - b = moment(new Date(2010, 1, 14, 15, 25, 50, 125)), - i; - for (i = 0; i < a.length; i++) { - assert.equal(b.format(a[i][0]), a[i][1], a[i][0] + ' ---> ' + a[i][1]); - } -}); - -test('format ordinal', function (assert) { - assert.equal(moment([2011, 0, 1]).format('DDDo'), '1', '1'); - assert.equal(moment([2011, 0, 2]).format('DDDo'), '2', '2'); - assert.equal(moment([2011, 0, 3]).format('DDDo'), '3', '3'); - assert.equal(moment([2011, 0, 4]).format('DDDo'), '4', '4'); - assert.equal(moment([2011, 0, 5]).format('DDDo'), '5', '5'); - assert.equal(moment([2011, 0, 6]).format('DDDo'), '6', '6'); - assert.equal(moment([2011, 0, 7]).format('DDDo'), '7', '7'); - assert.equal(moment([2011, 0, 8]).format('DDDo'), '8', '8'); - assert.equal(moment([2011, 0, 9]).format('DDDo'), '9', '9'); - assert.equal(moment([2011, 0, 10]).format('DDDo'), '10', '10'); - - assert.equal(moment([2011, 0, 11]).format('DDDo'), '11', '11'); - assert.equal(moment([2011, 0, 12]).format('DDDo'), '12', '12'); - assert.equal(moment([2011, 0, 13]).format('DDDo'), '13', '13'); - assert.equal(moment([2011, 0, 14]).format('DDDo'), '14', '14'); - assert.equal(moment([2011, 0, 15]).format('DDDo'), '15', '15'); - assert.equal(moment([2011, 0, 16]).format('DDDo'), '16', '16'); - assert.equal(moment([2011, 0, 17]).format('DDDo'), '17', '17'); - assert.equal(moment([2011, 0, 18]).format('DDDo'), '18', '18'); - assert.equal(moment([2011, 0, 19]).format('DDDo'), '19', '19'); - assert.equal(moment([2011, 0, 20]).format('DDDo'), '20', '20'); - - assert.equal(moment([2011, 0, 21]).format('DDDo'), '21', '21'); - assert.equal(moment([2011, 0, 22]).format('DDDo'), '22', '22'); - assert.equal(moment([2011, 0, 23]).format('DDDo'), '23', '23'); - assert.equal(moment([2011, 0, 24]).format('DDDo'), '24', '24'); - assert.equal(moment([2011, 0, 25]).format('DDDo'), '25', '25'); - assert.equal(moment([2011, 0, 26]).format('DDDo'), '26', '26'); - assert.equal(moment([2011, 0, 27]).format('DDDo'), '27', '27'); - assert.equal(moment([2011, 0, 28]).format('DDDo'), '28', '28'); - assert.equal(moment([2011, 0, 29]).format('DDDo'), '29', '29'); - assert.equal(moment([2011, 0, 30]).format('DDDo'), '30', '30'); - - assert.equal(moment([2011, 0, 31]).format('DDDo'), '31', '31'); -}); - -test('format month', function (assert) { - var expected = 'يناير يناير_فبراير فبراير_مارس مارس_أبريل أبريل_ماي ماي_يونيو يونيو_يوليوز يوليوز_غشت غشت_شتنبر شتنبر_أكتوبر أكتوبر_نونبر نونبر_دجنبر دجنبر'.split('_'), i; - for (i = 0; i < expected.length; i++) { - assert.equal(moment([2011, i, 1]).format('MMMM MMM'), expected[i], expected[i]); - } -}); - -test('format week', function (assert) { - var expected = 'الأحد احد ح_الإتنين اتنين ن_الثلاثاء ثلاثاء ث_الأربعاء اربعاء ر_الخميس خميس خ_الجمعة جمعة ج_السبت سبت س'.split('_'), i; - for (i = 0; i < expected.length; i++) { - assert.equal(moment([2011, 0, 2 + i]).format('dddd ddd dd'), expected[i], expected[i]); - } -}); - -test('from', function (assert) { - var start = moment([2007, 1, 28]); - assert.equal(start.from(moment([2007, 1, 28]).add({s: 44}), true), 'ثوان', '44 seconds = a few seconds'); - assert.equal(start.from(moment([2007, 1, 28]).add({s: 45}), true), 'دقيقة', '45 seconds = a minute'); - assert.equal(start.from(moment([2007, 1, 28]).add({s: 89}), true), 'دقيقة', '89 seconds = a minute'); - assert.equal(start.from(moment([2007, 1, 28]).add({s: 90}), true), '2 دقائق', '90 seconds = 2 minutes'); - assert.equal(start.from(moment([2007, 1, 28]).add({m: 44}), true), '44 دقائق', '44 minutes = 44 minutes'); - assert.equal(start.from(moment([2007, 1, 28]).add({m: 45}), true), 'ساعة', '45 minutes = an hour'); - assert.equal(start.from(moment([2007, 1, 28]).add({m: 89}), true), 'ساعة', '89 minutes = an hour'); - assert.equal(start.from(moment([2007, 1, 28]).add({m: 90}), true), '2 ساعات', '90 minutes = 2 hours'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 5}), true), '5 ساعات', '5 hours = 5 hours'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 21}), true), '21 ساعات', '21 hours = 21 hours'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 22}), true), 'يوم', '22 hours = a day'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 35}), true), 'يوم', '35 hours = a day'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 36}), true), '2 أيام', '36 hours = 2 days'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 1}), true), 'يوم', '1 day = a day'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 5}), true), '5 أيام', '5 days = 5 days'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 25}), true), '25 أيام', '25 days = 25 days'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 26}), true), 'شهر', '26 days = a month'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 30}), true), 'شهر', '30 days = a month'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 43}), true), 'شهر', '43 days = a month'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 46}), true), '2 أشهر', '46 days = 2 months'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 74}), true), '2 أشهر', '75 days = 2 months'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 76}), true), '3 أشهر', '76 days = 3 months'); - assert.equal(start.from(moment([2007, 1, 28]).add({M: 1}), true), 'شهر', '1 month = a month'); - assert.equal(start.from(moment([2007, 1, 28]).add({M: 5}), true), '5 أشهر', '5 months = 5 months'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 345}), true), 'سنة', '345 days = a year'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 548}), true), '2 سنوات', '548 days = 2 years'); - assert.equal(start.from(moment([2007, 1, 28]).add({y: 1}), true), 'سنة', '1 year = a year'); - assert.equal(start.from(moment([2007, 1, 28]).add({y: 5}), true), '5 سنوات', '5 years = 5 years'); -}); - -test('suffix', function (assert) { - assert.equal(moment(30000).from(0), 'في ثوان', 'prefix'); - assert.equal(moment(0).from(30000), 'منذ ثوان', 'suffix'); -}); - -test('now from now', function (assert) { - assert.equal(moment().fromNow(), 'منذ ثوان', 'now from now should display as in the past'); -}); - -test('fromNow', function (assert) { - assert.equal(moment().add({s: 30}).fromNow(), 'في ثوان', 'in a few seconds'); - assert.equal(moment().add({d: 5}).fromNow(), 'في 5 أيام', 'in 5 days'); -}); - -test('calendar day', function (assert) { - var a = moment().hours(12).minutes(0).seconds(0); - - assert.equal(moment(a).calendar(), 'اليوم على الساعة 12:00', 'today at the same time'); - assert.equal(moment(a).add({m: 25}).calendar(), 'اليوم على الساعة 12:25', 'Now plus 25 min'); - assert.equal(moment(a).add({h: 1}).calendar(), 'اليوم على الساعة 13:00', 'Now plus 1 hour'); - assert.equal(moment(a).add({d: 1}).calendar(), 'غدا على الساعة 12:00', 'tomorrow at the same time'); - assert.equal(moment(a).subtract({h: 1}).calendar(), 'اليوم على الساعة 11:00', 'Now minus 1 hour'); - assert.equal(moment(a).subtract({d: 1}).calendar(), 'أمس على الساعة 12:00', 'yesterday at the same time'); -}); - -test('calendar next week', function (assert) { - var i, m; - for (i = 2; i < 7; i++) { - m = moment().add({d: i}); - assert.equal(m.calendar(), m.format('dddd [على الساعة] LT'), 'Today + ' + i + ' days current time'); - m.hours(0).minutes(0).seconds(0).milliseconds(0); - assert.equal(m.calendar(), m.format('dddd [على الساعة] LT'), 'Today + ' + i + ' days beginning of day'); - m.hours(23).minutes(59).seconds(59).milliseconds(999); - assert.equal(m.calendar(), m.format('dddd [على الساعة] LT'), 'Today + ' + i + ' days end of day'); - } -}); - -test('calendar last week', function (assert) { - var i, m; - for (i = 2; i < 7; i++) { - m = moment().subtract({d: i}); - assert.equal(m.calendar(), m.format('dddd [على الساعة] LT'), 'Today - ' + i + ' days current time'); - m.hours(0).minutes(0).seconds(0).milliseconds(0); - assert.equal(m.calendar(), m.format('dddd [على الساعة] LT'), 'Today - ' + i + ' days beginning of day'); - m.hours(23).minutes(59).seconds(59).milliseconds(999); - assert.equal(m.calendar(), m.format('dddd [على الساعة] LT'), 'Today - ' + i + ' days end of day'); - } -}); - -test('calendar all else', function (assert) { - var weeksAgo = moment().subtract({w: 1}), - weeksFromNow = moment().add({w: 1}); - - assert.equal(weeksAgo.calendar(), weeksAgo.format('L'), '1 week ago'); - assert.equal(weeksFromNow.calendar(), weeksFromNow.format('L'), 'in 1 week'); - - weeksAgo = moment().subtract({w: 2}); - weeksFromNow = moment().add({w: 2}); - - assert.equal(weeksAgo.calendar(), weeksAgo.format('L'), '2 weeks ago'); - assert.equal(weeksFromNow.calendar(), weeksFromNow.format('L'), 'in 2 weeks'); -}); - -test('weeks year starting sunday formatted', function (assert) { - assert.equal(moment([2011, 11, 31]).format('w ww wo'), '1 01 1', 'Dec 31 2011 should be week 1'); - assert.equal(moment([2012, 0, 6]).format('w ww wo'), '1 01 1', 'Jan 6 2012 should be week 1'); - assert.equal(moment([2012, 0, 7]).format('w ww wo'), '2 02 2', 'Jan 7 2012 should be week 2'); - assert.equal(moment([2012, 0, 13]).format('w ww wo'), '2 02 2', 'Jan 13 2012 should be week 2'); - assert.equal(moment([2012, 0, 14]).format('w ww wo'), '3 03 3', 'Jan 14 2012 should be week 3'); -}); - -}))); - - -;(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' - && typeof require === 'function' ? factory(require('../../moment')) : - typeof define === 'function' && define.amd ? define(['../../moment'], factory) : - factory(global.moment) -}(this, (function (moment) { 'use strict'; - -function each(array, callback) { - var i; - for (i = 0; i < array.length; i++) { - callback(array[i], i, array); - } -} - -function objectKeys(obj) { - if (Object.keys) { - return Object.keys(obj); - } else { - // IE8 - var res = [], i; - for (i in obj) { - if (obj.hasOwnProperty(i)) { - res.push(i); - } - } - return res; - } -} - -// Pick the first defined of two or three arguments. - -function defineCommonLocaleTests(locale, options) { - test('lenient day of month ordinal parsing', function (assert) { - var i, ordinalStr, testMoment; - for (i = 1; i <= 31; ++i) { - ordinalStr = moment([2014, 0, i]).format('YYYY MM Do'); - testMoment = moment(ordinalStr, 'YYYY MM Do'); - assert.equal(testMoment.year(), 2014, - 'lenient day of month ordinal parsing ' + i + ' year check'); - assert.equal(testMoment.month(), 0, - 'lenient day of month ordinal parsing ' + i + ' month check'); - assert.equal(testMoment.date(), i, - 'lenient day of month ordinal parsing ' + i + ' date check'); - } - }); - - test('lenient day of month ordinal parsing of number', function (assert) { - var i, testMoment; - for (i = 1; i <= 31; ++i) { - testMoment = moment('2014 01 ' + i, 'YYYY MM Do'); - assert.equal(testMoment.year(), 2014, - 'lenient day of month ordinal parsing of number ' + i + ' year check'); - assert.equal(testMoment.month(), 0, - 'lenient day of month ordinal parsing of number ' + i + ' month check'); - assert.equal(testMoment.date(), i, - 'lenient day of month ordinal parsing of number ' + i + ' date check'); - } - }); - - test('strict day of month ordinal parsing', function (assert) { - var i, ordinalStr, testMoment; - for (i = 1; i <= 31; ++i) { - ordinalStr = moment([2014, 0, i]).format('YYYY MM Do'); - testMoment = moment(ordinalStr, 'YYYY MM Do', true); - assert.ok(testMoment.isValid(), 'strict day of month ordinal parsing ' + i); - } - }); - - test('meridiem invariant', function (assert) { - var h, m, t1, t2; - for (h = 0; h < 24; ++h) { - for (m = 0; m < 60; m += 15) { - t1 = moment.utc([2000, 0, 1, h, m]); - t2 = moment.utc(t1.format('A h:mm'), 'A h:mm'); - assert.equal(t2.format('HH:mm'), t1.format('HH:mm'), - 'meridiem at ' + t1.format('HH:mm')); - } - } - }); - - test('date format correctness', function (assert) { - var data, tokens; - data = moment.localeData()._longDateFormat; - tokens = objectKeys(data); - each(tokens, function (srchToken) { - // Check each format string to make sure it does not contain any - // tokens that need to be expanded. - each(tokens, function (baseToken) { - // strip escaped sequences - var format = data[baseToken].replace(/(\[[^\]]*\])/g, ''); - assert.equal(false, !!~format.indexOf(srchToken), - 'contains ' + srchToken + ' in ' + baseToken); - }); - }); - }); - - test('month parsing correctness', function (assert) { - var i, m; - - if (locale === 'tr') { - // I can't fix it :( - expect(0); - return; - } - function tester(format) { - var r; - r = moment(m.format(format), format); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format); - r = moment(m.format(format).toLocaleUpperCase(), format); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' upper'); - r = moment(m.format(format).toLocaleLowerCase(), format); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' lower'); - - r = moment(m.format(format), format, true); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' strict'); - r = moment(m.format(format).toLocaleUpperCase(), format, true); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' upper strict'); - r = moment(m.format(format).toLocaleLowerCase(), format, true); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' lower strict'); - } - - for (i = 0; i < 12; ++i) { - m = moment([2015, i, 15, 18]); - tester('MMM'); - tester('MMM.'); - tester('MMMM'); - tester('MMMM.'); - } - }); - - test('weekday parsing correctness', function (assert) { - var i, m; - - if (locale === 'tr' || locale === 'az' || locale === 'ro') { - // tr, az: There is a lower-case letter (ı), that converted to - // upper then lower changes to i - // ro: there is the letter ț which behaves weird under IE8 - expect(0); - return; - } - function tester(format) { - var r, baseMsg = 'weekday ' + m.weekday() + ' fmt ' + format + ' ' + m.toISOString(); - r = moment(m.format(format), format); - assert.equal(r.weekday(), m.weekday(), baseMsg); - r = moment(m.format(format).toLocaleUpperCase(), format); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' upper'); - r = moment(m.format(format).toLocaleLowerCase(), format); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' lower'); - - r = moment(m.format(format), format, true); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' strict'); - r = moment(m.format(format).toLocaleUpperCase(), format, true); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' upper strict'); - r = moment(m.format(format).toLocaleLowerCase(), format, true); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' lower strict'); - } - - for (i = 0; i < 7; ++i) { - m = moment.utc([2015, 0, i + 1, 18]); - tester('dd'); - tester('ddd'); - tester('dddd'); - } - }); - - test('valid localeData', function (assert) { - assert.equal(moment().localeData().months().length, 12, 'months should return 12 months'); - assert.equal(moment().localeData().monthsShort().length, 12, 'monthsShort should return 12 months'); - assert.equal(moment().localeData().weekdays().length, 7, 'weekdays should return 7 days'); - assert.equal(moment().localeData().weekdaysShort().length, 7, 'weekdaysShort should return 7 days'); - assert.equal(moment().localeData().weekdaysMin().length, 7, 'monthsShort should return 7 days'); - }); -} - -function setupDeprecationHandler(test, moment$$1, scope) { - test._expectedDeprecations = null; - test._observedDeprecations = null; - test._oldSupress = moment$$1.suppressDeprecationWarnings; - moment$$1.suppressDeprecationWarnings = true; - test.expectedDeprecations = function () { - test._expectedDeprecations = arguments; - test._observedDeprecations = []; - }; - moment$$1.deprecationHandler = function (name, msg) { - var deprecationId = matchedDeprecation(name, msg, test._expectedDeprecations); - if (deprecationId === -1) { - throw new Error('Unexpected deprecation thrown name=' + - name + ' msg=' + msg); - } - test._observedDeprecations[deprecationId] = 1; - }; -} - -function teardownDeprecationHandler(test, moment$$1, scope) { - moment$$1.suppressDeprecationWarnings = test._oldSupress; - - if (test._expectedDeprecations != null) { - var missedDeprecations = []; - each(test._expectedDeprecations, function (deprecationPattern, id) { - if (test._observedDeprecations[id] !== 1) { - missedDeprecations.push(deprecationPattern); - } - }); - if (missedDeprecations.length !== 0) { - throw new Error('Expected deprecation warnings did not happen: ' + - missedDeprecations.join(' ')); - } - } -} - -function matchedDeprecation(name, msg, deprecations) { - if (deprecations == null) { - return -1; - } - for (var i = 0; i < deprecations.length; ++i) { - if (name != null && name === deprecations[i]) { - return i; - } - if (msg != null && msg.substring(0, deprecations[i].length) === deprecations[i]) { - return i; - } - } - return -1; -} - -/*global QUnit:false*/ - -var test = QUnit.test; - -var expect = QUnit.expect; - - - -function localeModule (name, lifecycle) { - QUnit.module('locale:' + name, { - setup : function () { - moment.locale(name); - moment.createFromInputFallback = function (config) { - throw new Error('input not handled by moment: ' + config._i); - }; - setupDeprecationHandler(test, moment, 'locale'); - if (lifecycle && lifecycle.setup) { - lifecycle.setup(); - } - }, - teardown : function () { - moment.locale('en'); - teardownDeprecationHandler(test, moment, 'locale'); - if (lifecycle && lifecycle.teardown) { - lifecycle.teardown(); - } - } - }); - defineCommonLocaleTests(name, -1, -1); -} - -localeModule('ar-sa'); - -test('parse', function (assert) { - var tests = 'يناير:يناير_فبراير:فبراير_مارس:مارس_أبريل:أبريل_مايو:مايو_يونيو:يونيو_يوليو:يوليو_أغسطس:أغسطس_سبتمبر:سبتمبر_أكتوبر:أكتوبر_نوفمبر:نوفمبر_ديسمبر:ديسمبر'.split('_'), i; - function equalTest(input, mmm, i) { - assert.equal(moment(input, mmm).month(), i, input + ' should be month ' + (i + 1) + ' instead is month ' + moment(input, mmm).month()); - } - for (i = 0; i < 12; i++) { - tests[i] = tests[i].split(':'); - equalTest(tests[i][0], 'MMM', i); - equalTest(tests[i][1], 'MMM', i); - equalTest(tests[i][0], 'MMMM', i); - equalTest(tests[i][1], 'MMMM', i); - equalTest(tests[i][0].toLocaleLowerCase(), 'MMMM', i); - equalTest(tests[i][1].toLocaleLowerCase(), 'MMMM', i); - equalTest(tests[i][0].toLocaleUpperCase(), 'MMMM', i); - equalTest(tests[i][1].toLocaleUpperCase(), 'MMMM', i); - } -}); - -test('format', function (assert) { - var a = [ - ['dddd, MMMM Do YYYY, h:mm:ss a', 'الأحد، فبراير ١٤ ٢٠١٠، ٣:٢٥:٥٠ م'], - ['ddd, hA', 'أحد، ٣م'], - ['M Mo MM MMMM MMM', '٢ ٢ ٠٢ فبراير فبراير'], - ['YYYY YY', '٢٠١٠ ١٠'], - ['D Do DD', '١٤ ١٤ ١٤'], - ['d do dddd ddd dd', '٠ ٠ الأحد أحد ح'], - ['DDD DDDo DDDD', '٤٥ ٤٥ ٠٤٥'], - ['w wo ww', '٨ ٨ ٠٨'], - ['h hh', '٣ ٠٣'], - ['H HH', '١٥ ١٥'], - ['m mm', '٢٥ ٢٥'], - ['s ss', '٥٠ ٥٠'], - ['a A', 'م م'], - ['[the] DDDo [day of the year]', 'the ٤٥ day of the year'], - ['LT', '١٥:٢٥'], - ['LTS', '١٥:٢٥:٥٠'], - ['L', '١٤/٠٢/٢٠١٠'], - ['LL', '١٤ فبراير ٢٠١٠'], - ['LLL', '١٤ فبراير ٢٠١٠ ١٥:٢٥'], - ['LLLL', 'الأحد ١٤ فبراير ٢٠١٠ ١٥:٢٥'], - ['l', '١٤/٢/٢٠١٠'], - ['ll', '١٤ فبراير ٢٠١٠'], - ['lll', '١٤ فبراير ٢٠١٠ ١٥:٢٥'], - ['llll', 'أحد ١٤ فبراير ٢٠١٠ ١٥:٢٥'] - ], - b = moment(new Date(2010, 1, 14, 15, 25, 50, 125)), - i; - for (i = 0; i < a.length; i++) { - assert.equal(b.format(a[i][0]), a[i][1], a[i][0] + ' ---> ' + a[i][1]); - } -}); - -test('format ordinal', function (assert) { - assert.equal(moment([2011, 0, 1]).format('DDDo'), '١', '1'); - assert.equal(moment([2011, 0, 2]).format('DDDo'), '٢', '2'); - assert.equal(moment([2011, 0, 3]).format('DDDo'), '٣', '3'); - assert.equal(moment([2011, 0, 4]).format('DDDo'), '٤', '4'); - assert.equal(moment([2011, 0, 5]).format('DDDo'), '٥', '5'); - assert.equal(moment([2011, 0, 6]).format('DDDo'), '٦', '6'); - assert.equal(moment([2011, 0, 7]).format('DDDo'), '٧', '7'); - assert.equal(moment([2011, 0, 8]).format('DDDo'), '٨', '8'); - assert.equal(moment([2011, 0, 9]).format('DDDo'), '٩', '9'); - assert.equal(moment([2011, 0, 10]).format('DDDo'), '١٠', '10'); - - assert.equal(moment([2011, 0, 11]).format('DDDo'), '١١', '11'); - assert.equal(moment([2011, 0, 12]).format('DDDo'), '١٢', '12'); - assert.equal(moment([2011, 0, 13]).format('DDDo'), '١٣', '13'); - assert.equal(moment([2011, 0, 14]).format('DDDo'), '١٤', '14'); - assert.equal(moment([2011, 0, 15]).format('DDDo'), '١٥', '15'); - assert.equal(moment([2011, 0, 16]).format('DDDo'), '١٦', '16'); - assert.equal(moment([2011, 0, 17]).format('DDDo'), '١٧', '17'); - assert.equal(moment([2011, 0, 18]).format('DDDo'), '١٨', '18'); - assert.equal(moment([2011, 0, 19]).format('DDDo'), '١٩', '19'); - assert.equal(moment([2011, 0, 20]).format('DDDo'), '٢٠', '20'); - - assert.equal(moment([2011, 0, 21]).format('DDDo'), '٢١', '21'); - assert.equal(moment([2011, 0, 22]).format('DDDo'), '٢٢', '22'); - assert.equal(moment([2011, 0, 23]).format('DDDo'), '٢٣', '23'); - assert.equal(moment([2011, 0, 24]).format('DDDo'), '٢٤', '24'); - assert.equal(moment([2011, 0, 25]).format('DDDo'), '٢٥', '25'); - assert.equal(moment([2011, 0, 26]).format('DDDo'), '٢٦', '26'); - assert.equal(moment([2011, 0, 27]).format('DDDo'), '٢٧', '27'); - assert.equal(moment([2011, 0, 28]).format('DDDo'), '٢٨', '28'); - assert.equal(moment([2011, 0, 29]).format('DDDo'), '٢٩', '29'); - assert.equal(moment([2011, 0, 30]).format('DDDo'), '٣٠', '30'); - - assert.equal(moment([2011, 0, 31]).format('DDDo'), '٣١', '31'); -}); - -test('format month', function (assert) { - var expected = 'يناير يناير_فبراير فبراير_مارس مارس_أبريل أبريل_مايو مايو_يونيو يونيو_يوليو يوليو_أغسطس أغسطس_سبتمبر سبتمبر_أكتوبر أكتوبر_نوفمبر نوفمبر_ديسمبر ديسمبر'.split('_'), i; - for (i = 0; i < expected.length; i++) { - assert.equal(moment([2011, i, 1]).format('MMMM MMM'), expected[i], expected[i]); - } -}); - -test('format week', function (assert) { - var expected = 'الأحد أحد ح_الإثنين إثنين ن_الثلاثاء ثلاثاء ث_الأربعاء أربعاء ر_الخميس خميس خ_الجمعة جمعة ج_السبت سبت س'.split('_'), i; - for (i = 0; i < expected.length; i++) { - assert.equal(moment([2011, 0, 2 + i]).format('dddd ddd dd'), expected[i], expected[i]); - } -}); - -test('from', function (assert) { - var start = moment([2007, 1, 28]); - assert.equal(start.from(moment([2007, 1, 28]).add({s: 44}), true), 'ثوان', '44 seconds = a few seconds'); - assert.equal(start.from(moment([2007, 1, 28]).add({s: 45}), true), 'دقيقة', '45 seconds = a minute'); - assert.equal(start.from(moment([2007, 1, 28]).add({s: 89}), true), 'دقيقة', '89 seconds = a minute'); - assert.equal(start.from(moment([2007, 1, 28]).add({s: 90}), true), '٢ دقائق', '90 seconds = 2 minutes'); - assert.equal(start.from(moment([2007, 1, 28]).add({m: 44}), true), '٤٤ دقائق', '44 minutes = 44 minutes'); - assert.equal(start.from(moment([2007, 1, 28]).add({m: 45}), true), 'ساعة', '45 minutes = an hour'); - assert.equal(start.from(moment([2007, 1, 28]).add({m: 89}), true), 'ساعة', '89 minutes = an hour'); - assert.equal(start.from(moment([2007, 1, 28]).add({m: 90}), true), '٢ ساعات', '90 minutes = 2 hours'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 5}), true), '٥ ساعات', '5 hours = 5 hours'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 21}), true), '٢١ ساعات', '21 hours = 21 hours'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 22}), true), 'يوم', '22 hours = a day'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 35}), true), 'يوم', '35 hours = a day'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 36}), true), '٢ أيام', '36 hours = 2 days'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 1}), true), 'يوم', '1 day = a day'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 5}), true), '٥ أيام', '5 days = 5 days'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 25}), true), '٢٥ أيام', '25 days = 25 days'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 26}), true), 'شهر', '26 days = a month'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 30}), true), 'شهر', '30 days = a month'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 43}), true), 'شهر', '43 days = a month'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 46}), true), '٢ أشهر', '46 days = 2 months'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 74}), true), '٢ أشهر', '75 days = 2 months'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 76}), true), '٣ أشهر', '76 days = 3 months'); - assert.equal(start.from(moment([2007, 1, 28]).add({M: 1}), true), 'شهر', '1 month = a month'); - assert.equal(start.from(moment([2007, 1, 28]).add({M: 5}), true), '٥ أشهر', '5 months = 5 months'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 345}), true), 'سنة', '345 days = a year'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 548}), true), '٢ سنوات', '548 days = 2 years'); - assert.equal(start.from(moment([2007, 1, 28]).add({y: 1}), true), 'سنة', '1 year = a year'); - assert.equal(start.from(moment([2007, 1, 28]).add({y: 5}), true), '٥ سنوات', '5 years = 5 years'); -}); - -test('suffix', function (assert) { - assert.equal(moment(30000).from(0), 'في ثوان', 'prefix'); - assert.equal(moment(0).from(30000), 'منذ ثوان', 'suffix'); -}); - -test('now from now', function (assert) { - assert.equal(moment().fromNow(), 'منذ ثوان', 'now from now should display as in the past'); -}); - -test('fromNow', function (assert) { - assert.equal(moment().add({s: 30}).fromNow(), 'في ثوان', 'in a few seconds'); - assert.equal(moment().add({d: 5}).fromNow(), 'في ٥ أيام', 'in 5 days'); -}); - -test('calendar day', function (assert) { - var a = moment().hours(12).minutes(0).seconds(0); - - assert.equal(moment(a).calendar(), 'اليوم على الساعة ١٢:٠٠', 'today at the same time'); - assert.equal(moment(a).add({m: 25}).calendar(), 'اليوم على الساعة ١٢:٢٥', 'Now plus 25 min'); - assert.equal(moment(a).add({h: 1}).calendar(), 'اليوم على الساعة ١٣:٠٠', 'Now plus 1 hour'); - assert.equal(moment(a).add({d: 1}).calendar(), 'غدا على الساعة ١٢:٠٠', 'tomorrow at the same time'); - assert.equal(moment(a).subtract({h: 1}).calendar(), 'اليوم على الساعة ١١:٠٠', 'Now minus 1 hour'); - assert.equal(moment(a).subtract({d: 1}).calendar(), 'أمس على الساعة ١٢:٠٠', 'yesterday at the same time'); -}); - -test('calendar next week', function (assert) { - var i, m; - for (i = 2; i < 7; i++) { - m = moment().add({d: i}); - assert.equal(m.calendar(), m.format('dddd [على الساعة] LT'), 'Today + ' + i + ' days current time'); - m.hours(0).minutes(0).seconds(0).milliseconds(0); - assert.equal(m.calendar(), m.format('dddd [على الساعة] LT'), 'Today + ' + i + ' days beginning of day'); - m.hours(23).minutes(59).seconds(59).milliseconds(999); - assert.equal(m.calendar(), m.format('dddd [على الساعة] LT'), 'Today + ' + i + ' days end of day'); - } -}); - -test('calendar last week', function (assert) { - var i, m; - for (i = 2; i < 7; i++) { - m = moment().subtract({d: i}); - assert.equal(m.calendar(), m.format('dddd [على الساعة] LT'), 'Today - ' + i + ' days current time'); - m.hours(0).minutes(0).seconds(0).milliseconds(0); - assert.equal(m.calendar(), m.format('dddd [على الساعة] LT'), 'Today - ' + i + ' days beginning of day'); - m.hours(23).minutes(59).seconds(59).milliseconds(999); - assert.equal(m.calendar(), m.format('dddd [على الساعة] LT'), 'Today - ' + i + ' days end of day'); - } -}); - -test('calendar all else', function (assert) { - var weeksAgo = moment().subtract({w: 1}), - weeksFromNow = moment().add({w: 1}); - - assert.equal(weeksAgo.calendar(), weeksAgo.format('L'), '1 week ago'); - assert.equal(weeksFromNow.calendar(), weeksFromNow.format('L'), 'in 1 week'); - - weeksAgo = moment().subtract({w: 2}); - weeksFromNow = moment().add({w: 2}); - - assert.equal(weeksAgo.calendar(), weeksAgo.format('L'), '2 weeks ago'); - assert.equal(weeksFromNow.calendar(), weeksFromNow.format('L'), 'in 2 weeks'); -}); - -test('weeks year starting wednesday custom', function (assert) { - assert.equal(moment('2003 1 6', 'gggg w d').format('YYYY-MM-DD'), '٢٠٠٣-٠١-٠٤', '2003 1 6 : gggg w d'); - assert.equal(moment('2003 1 0', 'gggg w e').format('YYYY-MM-DD'), '٢٠٠٢-١٢-٢٩', '2003 1 0 : gggg w e'); - assert.equal(moment('2003 1 6', 'gggg w d').format('gggg w d'), '٢٠٠٣ ١ ٦', '2003 1 6 : gggg w d'); - assert.equal(moment('2003 1 0', 'gggg w e').format('gggg w e'), '٢٠٠٣ ١ ٠', '2003 1 0 : gggg w e'); -}); - -test('weeks year starting sunday formatted', function (assert) { - assert.equal(moment([2011, 11, 31]).format('w ww wo'), '٥٣ ٥٣ ٥٣', '2011 11 31'); - assert.equal(moment([2012, 0, 6]).format('w ww wo'), '١ ٠١ ١', '2012 0 6'); - assert.equal(moment([2012, 0, 7]).format('w ww wo'), '١ ٠١ ١', '2012 0 7'); - assert.equal(moment([2012, 0, 13]).format('w ww wo'), '٢ ٠٢ ٢', '2012 0 13'); - assert.equal(moment([2012, 0, 14]).format('w ww wo'), '٢ ٠٢ ٢', '2012 0 14'); -}); - -}))); - - -;(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' - && typeof require === 'function' ? factory(require('../../moment')) : - typeof define === 'function' && define.amd ? define(['../../moment'], factory) : - factory(global.moment) -}(this, (function (moment) { 'use strict'; - -function each(array, callback) { - var i; - for (i = 0; i < array.length; i++) { - callback(array[i], i, array); - } -} - -function objectKeys(obj) { - if (Object.keys) { - return Object.keys(obj); - } else { - // IE8 - var res = [], i; - for (i in obj) { - if (obj.hasOwnProperty(i)) { - res.push(i); - } - } - return res; - } -} - -// Pick the first defined of two or three arguments. - -function defineCommonLocaleTests(locale, options) { - test('lenient day of month ordinal parsing', function (assert) { - var i, ordinalStr, testMoment; - for (i = 1; i <= 31; ++i) { - ordinalStr = moment([2014, 0, i]).format('YYYY MM Do'); - testMoment = moment(ordinalStr, 'YYYY MM Do'); - assert.equal(testMoment.year(), 2014, - 'lenient day of month ordinal parsing ' + i + ' year check'); - assert.equal(testMoment.month(), 0, - 'lenient day of month ordinal parsing ' + i + ' month check'); - assert.equal(testMoment.date(), i, - 'lenient day of month ordinal parsing ' + i + ' date check'); - } - }); - - test('lenient day of month ordinal parsing of number', function (assert) { - var i, testMoment; - for (i = 1; i <= 31; ++i) { - testMoment = moment('2014 01 ' + i, 'YYYY MM Do'); - assert.equal(testMoment.year(), 2014, - 'lenient day of month ordinal parsing of number ' + i + ' year check'); - assert.equal(testMoment.month(), 0, - 'lenient day of month ordinal parsing of number ' + i + ' month check'); - assert.equal(testMoment.date(), i, - 'lenient day of month ordinal parsing of number ' + i + ' date check'); - } - }); - - test('strict day of month ordinal parsing', function (assert) { - var i, ordinalStr, testMoment; - for (i = 1; i <= 31; ++i) { - ordinalStr = moment([2014, 0, i]).format('YYYY MM Do'); - testMoment = moment(ordinalStr, 'YYYY MM Do', true); - assert.ok(testMoment.isValid(), 'strict day of month ordinal parsing ' + i); - } - }); - - test('meridiem invariant', function (assert) { - var h, m, t1, t2; - for (h = 0; h < 24; ++h) { - for (m = 0; m < 60; m += 15) { - t1 = moment.utc([2000, 0, 1, h, m]); - t2 = moment.utc(t1.format('A h:mm'), 'A h:mm'); - assert.equal(t2.format('HH:mm'), t1.format('HH:mm'), - 'meridiem at ' + t1.format('HH:mm')); - } - } - }); - - test('date format correctness', function (assert) { - var data, tokens; - data = moment.localeData()._longDateFormat; - tokens = objectKeys(data); - each(tokens, function (srchToken) { - // Check each format string to make sure it does not contain any - // tokens that need to be expanded. - each(tokens, function (baseToken) { - // strip escaped sequences - var format = data[baseToken].replace(/(\[[^\]]*\])/g, ''); - assert.equal(false, !!~format.indexOf(srchToken), - 'contains ' + srchToken + ' in ' + baseToken); - }); - }); - }); - - test('month parsing correctness', function (assert) { - var i, m; - - if (locale === 'tr') { - // I can't fix it :( - expect(0); - return; - } - function tester(format) { - var r; - r = moment(m.format(format), format); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format); - r = moment(m.format(format).toLocaleUpperCase(), format); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' upper'); - r = moment(m.format(format).toLocaleLowerCase(), format); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' lower'); - - r = moment(m.format(format), format, true); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' strict'); - r = moment(m.format(format).toLocaleUpperCase(), format, true); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' upper strict'); - r = moment(m.format(format).toLocaleLowerCase(), format, true); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' lower strict'); - } - - for (i = 0; i < 12; ++i) { - m = moment([2015, i, 15, 18]); - tester('MMM'); - tester('MMM.'); - tester('MMMM'); - tester('MMMM.'); - } - }); - - test('weekday parsing correctness', function (assert) { - var i, m; - - if (locale === 'tr' || locale === 'az' || locale === 'ro') { - // tr, az: There is a lower-case letter (ı), that converted to - // upper then lower changes to i - // ro: there is the letter ț which behaves weird under IE8 - expect(0); - return; - } - function tester(format) { - var r, baseMsg = 'weekday ' + m.weekday() + ' fmt ' + format + ' ' + m.toISOString(); - r = moment(m.format(format), format); - assert.equal(r.weekday(), m.weekday(), baseMsg); - r = moment(m.format(format).toLocaleUpperCase(), format); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' upper'); - r = moment(m.format(format).toLocaleLowerCase(), format); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' lower'); - - r = moment(m.format(format), format, true); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' strict'); - r = moment(m.format(format).toLocaleUpperCase(), format, true); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' upper strict'); - r = moment(m.format(format).toLocaleLowerCase(), format, true); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' lower strict'); - } - - for (i = 0; i < 7; ++i) { - m = moment.utc([2015, 0, i + 1, 18]); - tester('dd'); - tester('ddd'); - tester('dddd'); - } - }); - - test('valid localeData', function (assert) { - assert.equal(moment().localeData().months().length, 12, 'months should return 12 months'); - assert.equal(moment().localeData().monthsShort().length, 12, 'monthsShort should return 12 months'); - assert.equal(moment().localeData().weekdays().length, 7, 'weekdays should return 7 days'); - assert.equal(moment().localeData().weekdaysShort().length, 7, 'weekdaysShort should return 7 days'); - assert.equal(moment().localeData().weekdaysMin().length, 7, 'monthsShort should return 7 days'); - }); -} - -function setupDeprecationHandler(test, moment$$1, scope) { - test._expectedDeprecations = null; - test._observedDeprecations = null; - test._oldSupress = moment$$1.suppressDeprecationWarnings; - moment$$1.suppressDeprecationWarnings = true; - test.expectedDeprecations = function () { - test._expectedDeprecations = arguments; - test._observedDeprecations = []; - }; - moment$$1.deprecationHandler = function (name, msg) { - var deprecationId = matchedDeprecation(name, msg, test._expectedDeprecations); - if (deprecationId === -1) { - throw new Error('Unexpected deprecation thrown name=' + - name + ' msg=' + msg); - } - test._observedDeprecations[deprecationId] = 1; - }; -} - -function teardownDeprecationHandler(test, moment$$1, scope) { - moment$$1.suppressDeprecationWarnings = test._oldSupress; - - if (test._expectedDeprecations != null) { - var missedDeprecations = []; - each(test._expectedDeprecations, function (deprecationPattern, id) { - if (test._observedDeprecations[id] !== 1) { - missedDeprecations.push(deprecationPattern); - } - }); - if (missedDeprecations.length !== 0) { - throw new Error('Expected deprecation warnings did not happen: ' + - missedDeprecations.join(' ')); - } - } -} - -function matchedDeprecation(name, msg, deprecations) { - if (deprecations == null) { - return -1; - } - for (var i = 0; i < deprecations.length; ++i) { - if (name != null && name === deprecations[i]) { - return i; - } - if (msg != null && msg.substring(0, deprecations[i].length) === deprecations[i]) { - return i; - } - } - return -1; -} - -/*global QUnit:false*/ - -var test = QUnit.test; - -var expect = QUnit.expect; - - - -function localeModule (name, lifecycle) { - QUnit.module('locale:' + name, { - setup : function () { - moment.locale(name); - moment.createFromInputFallback = function (config) { - throw new Error('input not handled by moment: ' + config._i); - }; - setupDeprecationHandler(test, moment, 'locale'); - if (lifecycle && lifecycle.setup) { - lifecycle.setup(); - } - }, - teardown : function () { - moment.locale('en'); - teardownDeprecationHandler(test, moment, 'locale'); - if (lifecycle && lifecycle.teardown) { - lifecycle.teardown(); - } - } - }); - defineCommonLocaleTests(name, -1, -1); -} - -localeModule('ar-tn'); - -test('parse', function (assert) { - var tests = 'جانفي:جانفي_فيفري:فيفري_مارس:مارس_أفريل:أفريل_ماي:ماي_جوان:جوان_جويلية:جويلية_أوت:أوت_سبتمبر:سبتمبر_أكتوبر:أكتوبر_نوفمبر:نوفمبر_ديسمبر:ديسمبر'.split('_'), - i; - - function equalTest(input, mmm, i) { - assert.equal(moment(input, mmm).month(), i, input + ' should be month ' + (i + 1)); - } - for (i = 0; i < 12; i++) { - tests[i] = tests[i].split(':'); - equalTest(tests[i][0], 'MMM', i); - equalTest(tests[i][1], 'MMM', i); - equalTest(tests[i][0], 'MMMM', i); - equalTest(tests[i][1], 'MMMM', i); - equalTest(tests[i][0].toLocaleLowerCase(), 'MMMM', i); - equalTest(tests[i][1].toLocaleLowerCase(), 'MMMM', i); - equalTest(tests[i][0].toLocaleUpperCase(), 'MMMM', i); - equalTest(tests[i][1].toLocaleUpperCase(), 'MMMM', i); - } -}); - -test('format', function (assert) { - var a = [ - ['dddd, MMMM Do YYYY, h:mm:ss a', 'الأحد, فيفري 14 2010, 3:25:50 pm'], - ['ddd, hA', 'أحد, 3PM'], - ['M Mo MM MMMM MMM', '2 2 02 فيفري فيفري'], - ['YYYY YY', '2010 10'], - ['D Do DD', '14 14 14'], - ['d do dddd ddd dd', '0 0 الأحد أحد ح'], - ['DDD DDDo DDDD', '45 45 045'], - ['w wo ww', '6 6 06'], - ['h hh', '3 03'], - ['H HH', '15 15'], - ['m mm', '25 25'], - ['s ss', '50 50'], - ['a A', 'pm PM'], - ['[the] DDDo [day of the year]', 'the 45 day of the year'], - ['LT', '15:25'], - ['LTS', '15:25:50'], - ['L', '14/02/2010'], - ['LL', '14 فيفري 2010'], - ['LLL', '14 فيفري 2010 15:25'], - ['LLLL', 'الأحد 14 فيفري 2010 15:25'], - ['l', '14/2/2010'], - ['ll', '14 فيفري 2010'], - ['lll', '14 فيفري 2010 15:25'], - ['llll', 'أحد 14 فيفري 2010 15:25'] - ], - b = moment(new Date(2010, 1, 14, 15, 25, 50, 125)), - i; - for (i = 0; i < a.length; i++) { - assert.equal(b.format(a[i][0]), a[i][1], a[i][0] + ' ---> ' + a[i][1]); - } -}); - -test('format ordinal', function (assert) { - assert.equal(moment([2011, 0, 1]).format('DDDo'), '1', '1'); - assert.equal(moment([2011, 0, 2]).format('DDDo'), '2', '2'); - assert.equal(moment([2011, 0, 3]).format('DDDo'), '3', '3'); - assert.equal(moment([2011, 0, 4]).format('DDDo'), '4', '4'); - assert.equal(moment([2011, 0, 5]).format('DDDo'), '5', '5'); - assert.equal(moment([2011, 0, 6]).format('DDDo'), '6', '6'); - assert.equal(moment([2011, 0, 7]).format('DDDo'), '7', '7'); - assert.equal(moment([2011, 0, 8]).format('DDDo'), '8', '8'); - assert.equal(moment([2011, 0, 9]).format('DDDo'), '9', '9'); - assert.equal(moment([2011, 0, 10]).format('DDDo'), '10', '10'); - - assert.equal(moment([2011, 0, 11]).format('DDDo'), '11', '11'); - assert.equal(moment([2011, 0, 12]).format('DDDo'), '12', '12'); - assert.equal(moment([2011, 0, 13]).format('DDDo'), '13', '13'); - assert.equal(moment([2011, 0, 14]).format('DDDo'), '14', '14'); - assert.equal(moment([2011, 0, 15]).format('DDDo'), '15', '15'); - assert.equal(moment([2011, 0, 16]).format('DDDo'), '16', '16'); - assert.equal(moment([2011, 0, 17]).format('DDDo'), '17', '17'); - assert.equal(moment([2011, 0, 18]).format('DDDo'), '18', '18'); - assert.equal(moment([2011, 0, 19]).format('DDDo'), '19', '19'); - assert.equal(moment([2011, 0, 20]).format('DDDo'), '20', '20'); - - assert.equal(moment([2011, 0, 21]).format('DDDo'), '21', '21'); - assert.equal(moment([2011, 0, 22]).format('DDDo'), '22', '22'); - assert.equal(moment([2011, 0, 23]).format('DDDo'), '23', '23'); - assert.equal(moment([2011, 0, 24]).format('DDDo'), '24', '24'); - assert.equal(moment([2011, 0, 25]).format('DDDo'), '25', '25'); - assert.equal(moment([2011, 0, 26]).format('DDDo'), '26', '26'); - assert.equal(moment([2011, 0, 27]).format('DDDo'), '27', '27'); - assert.equal(moment([2011, 0, 28]).format('DDDo'), '28', '28'); - assert.equal(moment([2011, 0, 29]).format('DDDo'), '29', '29'); - assert.equal(moment([2011, 0, 30]).format('DDDo'), '30', '30'); - - assert.equal(moment([2011, 0, 31]).format('DDDo'), '31', '31'); -}); - -test('format month', function (assert) { - var expected = 'جانفي جانفي_فيفري فيفري_مارس مارس_أفريل أفريل_ماي ماي_جوان جوان_جويلية جويلية_أوت أوت_سبتمبر سبتمبر_أكتوبر أكتوبر_نوفمبر نوفمبر_ديسمبر ديسمبر'.split('_'), - i; - for (i = 0; i < expected.length; i++) { - assert.equal(moment([2011, i, 1]).format('MMMM MMM'), expected[i], expected[i]); - } -}); - -test('format week', function (assert) { - var expected = 'الأحد أحد ح_الإثنين إثنين ن_الثلاثاء ثلاثاء ث_الأربعاء أربعاء ر_الخميس خميس خ_الجمعة جمعة ج_السبت سبت س'.split('_'), - i; - for (i = 0; i < expected.length; i++) { - assert.equal(moment([2011, 0, 2 + i]).format('dddd ddd dd'), expected[i], expected[i]); - } -}); - -test('from', function (assert) { - var start = moment([2007, 1, 28]); - assert.equal(start.from(moment([2007, 1, 28]).add({ - s: 44 - }), true), 'ثوان', '44 seconds = a few seconds'); - assert.equal(start.from(moment([2007, 1, 28]).add({ - s: 45 - }), true), 'دقيقة', '45 seconds = a minute'); - assert.equal(start.from(moment([2007, 1, 28]).add({ - s: 89 - }), true), 'دقيقة', '89 seconds = a minute'); - assert.equal(start.from(moment([2007, 1, 28]).add({ - s: 90 - }), true), '2 دقائق', '90 seconds = 2 minutes'); - assert.equal(start.from(moment([2007, 1, 28]).add({ - m: 44 - }), true), '44 دقائق', '44 minutes = 44 minutes'); - assert.equal(start.from(moment([2007, 1, 28]).add({ - m: 45 - }), true), 'ساعة', '45 minutes = an hour'); - assert.equal(start.from(moment([2007, 1, 28]).add({ - m: 89 - }), true), 'ساعة', '89 minutes = an hour'); - assert.equal(start.from(moment([2007, 1, 28]).add({ - m: 90 - }), true), '2 ساعات', '90 minutes = 2 hours'); - assert.equal(start.from(moment([2007, 1, 28]).add({ - h: 5 - }), true), '5 ساعات', '5 hours = 5 hours'); - assert.equal(start.from(moment([2007, 1, 28]).add({ - h: 21 - }), true), '21 ساعات', '21 hours = 21 hours'); - assert.equal(start.from(moment([2007, 1, 28]).add({ - h: 22 - }), true), 'يوم', '22 hours = a day'); - assert.equal(start.from(moment([2007, 1, 28]).add({ - h: 35 - }), true), 'يوم', '35 hours = a day'); - assert.equal(start.from(moment([2007, 1, 28]).add({ - h: 36 - }), true), '2 أيام', '36 hours = 2 days'); - assert.equal(start.from(moment([2007, 1, 28]).add({ - d: 1 - }), true), 'يوم', '1 day = a day'); - assert.equal(start.from(moment([2007, 1, 28]).add({ - d: 5 - }), true), '5 أيام', '5 days = 5 days'); - assert.equal(start.from(moment([2007, 1, 28]).add({ - d: 25 - }), true), '25 أيام', '25 days = 25 days'); - assert.equal(start.from(moment([2007, 1, 28]).add({ - d: 26 - }), true), 'شهر', '26 days = a month'); - assert.equal(start.from(moment([2007, 1, 28]).add({ - d: 30 - }), true), 'شهر', '30 days = a month'); - assert.equal(start.from(moment([2007, 1, 28]).add({ - d: 43 - }), true), 'شهر', '43 days = a month'); - assert.equal(start.from(moment([2007, 1, 28]).add({ - d: 46 - }), true), '2 أشهر', '46 days = 2 months'); - assert.equal(start.from(moment([2007, 1, 28]).add({ - d: 74 - }), true), '2 أشهر', '75 days = 2 months'); - assert.equal(start.from(moment([2007, 1, 28]).add({ - d: 76 - }), true), '3 أشهر', '76 days = 3 months'); - assert.equal(start.from(moment([2007, 1, 28]).add({ - M: 1 - }), true), 'شهر', '1 month = a month'); - assert.equal(start.from(moment([2007, 1, 28]).add({ - M: 5 - }), true), '5 أشهر', '5 months = 5 months'); - assert.equal(start.from(moment([2007, 1, 28]).add({ - d: 345 - }), true), 'سنة', '345 days = a year'); - assert.equal(start.from(moment([2007, 1, 28]).add({ - d: 548 - }), true), '2 سنوات', '548 days = 2 years'); - assert.equal(start.from(moment([2007, 1, 28]).add({ - y: 1 - }), true), 'سنة', '1 year = a year'); - assert.equal(start.from(moment([2007, 1, 28]).add({ - y: 5 - }), true), '5 سنوات', '5 years = 5 years'); -}); - -test('suffix', function (assert) { - assert.equal(moment(30000).from(0), 'في ثوان', 'prefix'); - assert.equal(moment(0).from(30000), 'منذ ثوان', 'suffix'); -}); - -test('now from now', function (assert) { - assert.equal(moment().fromNow(), 'منذ ثوان', 'now from now should display as in the past'); -}); - -test('fromNow', function (assert) { - assert.equal(moment().add({ - s: 30 - }).fromNow(), 'في ثوان', 'in a few seconds'); - assert.equal(moment().add({ - d: 5 - }).fromNow(), 'في 5 أيام', 'in 5 days'); -}); - -test('calendar day', function (assert) { - var a = moment().hours(12).minutes(0).seconds(0); - - assert.equal(moment(a).calendar(), 'اليوم على الساعة 12:00', 'today at the same time'); - assert.equal(moment(a).add({m: 25}).calendar(), 'اليوم على الساعة 12:25', 'Now plus 25 min'); - assert.equal(moment(a).add({h: 1}).calendar(), 'اليوم على الساعة 13:00', 'Now plus 1 hour'); - assert.equal(moment(a).add({d: 1}).calendar(), 'غدا على الساعة 12:00', 'tomorrow at the same time'); - assert.equal(moment(a).subtract({h: 1}).calendar(), 'اليوم على الساعة 11:00', 'Now minus 1 hour'); - assert.equal(moment(a).subtract({d: 1}).calendar(), 'أمس على الساعة 12:00', 'yesterday at the same time'); -}); - -test('calendar next week', function (assert) { - var i, m; - for (i = 2; i < 7; i++) { - m = moment().add({ - d: i - }); - assert.equal(m.calendar(), m.format('dddd [على الساعة] LT'), 'Today + ' + i + ' days current time'); - m.hours(0).minutes(0).seconds(0).milliseconds(0); - assert.equal(m.calendar(), m.format('dddd [على الساعة] LT'), 'Today + ' + i + ' days beginning of day'); - m.hours(23).minutes(59).seconds(59).milliseconds(999); - assert.equal(m.calendar(), m.format('dddd [على الساعة] LT'), 'Today + ' + i + ' days end of day'); - } -}); - -test('calendar last week', function (assert) { - var i, m; - for (i = 2; i < 7; i++) { - m = moment().subtract({ - d: i - }); - assert.equal(m.calendar(), m.format('dddd [على الساعة] LT'), 'Today - ' + i + ' days current time'); - m.hours(0).minutes(0).seconds(0).milliseconds(0); - assert.equal(m.calendar(), m.format('dddd [على الساعة] LT'), 'Today - ' + i + ' days beginning of day'); - m.hours(23).minutes(59).seconds(59).milliseconds(999); - assert.equal(m.calendar(), m.format('dddd [على الساعة] LT'), 'Today - ' + i + ' days end of day'); - } -}); - -test('calendar all else', function (assert) { - var weeksAgo = moment().subtract({ - w: 1 - }), - weeksFromNow = moment().add({ - w: 1 - }); - - assert.equal(weeksAgo.calendar(), weeksAgo.format('L'), '1 week ago'); - assert.equal(weeksFromNow.calendar(), weeksFromNow.format('L'), 'in 1 week'); - - weeksAgo = moment().subtract({ - w: 2 - }); - weeksFromNow = moment().add({ - w: 2 - }); - - assert.equal(weeksAgo.calendar(), weeksAgo.format('L'), '2 weeks ago'); - assert.equal(weeksFromNow.calendar(), weeksFromNow.format('L'), 'in 2 weeks'); -}); - -test('weeks year starting sunday formatted', function (assert) { - assert.equal(moment([2012, 0, 1]).format('w ww wo'), '52 52 52', 'Jan 1 2012 should be week 52'); - assert.equal(moment([2012, 0, 2]).format('w ww wo'), '1 01 1', 'Jan 2 2012 should be week 1'); - assert.equal(moment([2012, 0, 8]).format('w ww wo'), '1 01 1', 'Jan 8 2012 should be week 1'); - assert.equal(moment([2012, 0, 9]).format('w ww wo'), '2 02 2', 'Jan 9 2012 should be week 2'); - assert.equal(moment([2012, 0, 15]).format('w ww wo'), '2 02 2', 'Jan 15 2012 should be week 2'); -}); - -}))); - - -;(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' - && typeof require === 'function' ? factory(require('../../moment')) : - typeof define === 'function' && define.amd ? define(['../../moment'], factory) : - factory(global.moment) -}(this, (function (moment) { 'use strict'; - -function each(array, callback) { - var i; - for (i = 0; i < array.length; i++) { - callback(array[i], i, array); - } -} - -function objectKeys(obj) { - if (Object.keys) { - return Object.keys(obj); - } else { - // IE8 - var res = [], i; - for (i in obj) { - if (obj.hasOwnProperty(i)) { - res.push(i); - } - } - return res; - } -} - -// Pick the first defined of two or three arguments. - -function defineCommonLocaleTests(locale, options) { - test('lenient day of month ordinal parsing', function (assert) { - var i, ordinalStr, testMoment; - for (i = 1; i <= 31; ++i) { - ordinalStr = moment([2014, 0, i]).format('YYYY MM Do'); - testMoment = moment(ordinalStr, 'YYYY MM Do'); - assert.equal(testMoment.year(), 2014, - 'lenient day of month ordinal parsing ' + i + ' year check'); - assert.equal(testMoment.month(), 0, - 'lenient day of month ordinal parsing ' + i + ' month check'); - assert.equal(testMoment.date(), i, - 'lenient day of month ordinal parsing ' + i + ' date check'); - } - }); - - test('lenient day of month ordinal parsing of number', function (assert) { - var i, testMoment; - for (i = 1; i <= 31; ++i) { - testMoment = moment('2014 01 ' + i, 'YYYY MM Do'); - assert.equal(testMoment.year(), 2014, - 'lenient day of month ordinal parsing of number ' + i + ' year check'); - assert.equal(testMoment.month(), 0, - 'lenient day of month ordinal parsing of number ' + i + ' month check'); - assert.equal(testMoment.date(), i, - 'lenient day of month ordinal parsing of number ' + i + ' date check'); - } - }); - - test('strict day of month ordinal parsing', function (assert) { - var i, ordinalStr, testMoment; - for (i = 1; i <= 31; ++i) { - ordinalStr = moment([2014, 0, i]).format('YYYY MM Do'); - testMoment = moment(ordinalStr, 'YYYY MM Do', true); - assert.ok(testMoment.isValid(), 'strict day of month ordinal parsing ' + i); - } - }); - - test('meridiem invariant', function (assert) { - var h, m, t1, t2; - for (h = 0; h < 24; ++h) { - for (m = 0; m < 60; m += 15) { - t1 = moment.utc([2000, 0, 1, h, m]); - t2 = moment.utc(t1.format('A h:mm'), 'A h:mm'); - assert.equal(t2.format('HH:mm'), t1.format('HH:mm'), - 'meridiem at ' + t1.format('HH:mm')); - } - } - }); - - test('date format correctness', function (assert) { - var data, tokens; - data = moment.localeData()._longDateFormat; - tokens = objectKeys(data); - each(tokens, function (srchToken) { - // Check each format string to make sure it does not contain any - // tokens that need to be expanded. - each(tokens, function (baseToken) { - // strip escaped sequences - var format = data[baseToken].replace(/(\[[^\]]*\])/g, ''); - assert.equal(false, !!~format.indexOf(srchToken), - 'contains ' + srchToken + ' in ' + baseToken); - }); - }); - }); - - test('month parsing correctness', function (assert) { - var i, m; - - if (locale === 'tr') { - // I can't fix it :( - expect(0); - return; - } - function tester(format) { - var r; - r = moment(m.format(format), format); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format); - r = moment(m.format(format).toLocaleUpperCase(), format); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' upper'); - r = moment(m.format(format).toLocaleLowerCase(), format); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' lower'); - - r = moment(m.format(format), format, true); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' strict'); - r = moment(m.format(format).toLocaleUpperCase(), format, true); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' upper strict'); - r = moment(m.format(format).toLocaleLowerCase(), format, true); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' lower strict'); - } - - for (i = 0; i < 12; ++i) { - m = moment([2015, i, 15, 18]); - tester('MMM'); - tester('MMM.'); - tester('MMMM'); - tester('MMMM.'); - } - }); - - test('weekday parsing correctness', function (assert) { - var i, m; - - if (locale === 'tr' || locale === 'az' || locale === 'ro') { - // tr, az: There is a lower-case letter (ı), that converted to - // upper then lower changes to i - // ro: there is the letter ț which behaves weird under IE8 - expect(0); - return; - } - function tester(format) { - var r, baseMsg = 'weekday ' + m.weekday() + ' fmt ' + format + ' ' + m.toISOString(); - r = moment(m.format(format), format); - assert.equal(r.weekday(), m.weekday(), baseMsg); - r = moment(m.format(format).toLocaleUpperCase(), format); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' upper'); - r = moment(m.format(format).toLocaleLowerCase(), format); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' lower'); - - r = moment(m.format(format), format, true); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' strict'); - r = moment(m.format(format).toLocaleUpperCase(), format, true); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' upper strict'); - r = moment(m.format(format).toLocaleLowerCase(), format, true); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' lower strict'); - } - - for (i = 0; i < 7; ++i) { - m = moment.utc([2015, 0, i + 1, 18]); - tester('dd'); - tester('ddd'); - tester('dddd'); - } - }); - - test('valid localeData', function (assert) { - assert.equal(moment().localeData().months().length, 12, 'months should return 12 months'); - assert.equal(moment().localeData().monthsShort().length, 12, 'monthsShort should return 12 months'); - assert.equal(moment().localeData().weekdays().length, 7, 'weekdays should return 7 days'); - assert.equal(moment().localeData().weekdaysShort().length, 7, 'weekdaysShort should return 7 days'); - assert.equal(moment().localeData().weekdaysMin().length, 7, 'monthsShort should return 7 days'); - }); -} - -function setupDeprecationHandler(test, moment$$1, scope) { - test._expectedDeprecations = null; - test._observedDeprecations = null; - test._oldSupress = moment$$1.suppressDeprecationWarnings; - moment$$1.suppressDeprecationWarnings = true; - test.expectedDeprecations = function () { - test._expectedDeprecations = arguments; - test._observedDeprecations = []; - }; - moment$$1.deprecationHandler = function (name, msg) { - var deprecationId = matchedDeprecation(name, msg, test._expectedDeprecations); - if (deprecationId === -1) { - throw new Error('Unexpected deprecation thrown name=' + - name + ' msg=' + msg); - } - test._observedDeprecations[deprecationId] = 1; - }; -} - -function teardownDeprecationHandler(test, moment$$1, scope) { - moment$$1.suppressDeprecationWarnings = test._oldSupress; - - if (test._expectedDeprecations != null) { - var missedDeprecations = []; - each(test._expectedDeprecations, function (deprecationPattern, id) { - if (test._observedDeprecations[id] !== 1) { - missedDeprecations.push(deprecationPattern); - } - }); - if (missedDeprecations.length !== 0) { - throw new Error('Expected deprecation warnings did not happen: ' + - missedDeprecations.join(' ')); - } - } -} - -function matchedDeprecation(name, msg, deprecations) { - if (deprecations == null) { - return -1; - } - for (var i = 0; i < deprecations.length; ++i) { - if (name != null && name === deprecations[i]) { - return i; - } - if (msg != null && msg.substring(0, deprecations[i].length) === deprecations[i]) { - return i; - } - } - return -1; -} - -/*global QUnit:false*/ - -var test = QUnit.test; - -var expect = QUnit.expect; - - - -function localeModule (name, lifecycle) { - QUnit.module('locale:' + name, { - setup : function () { - moment.locale(name); - moment.createFromInputFallback = function (config) { - throw new Error('input not handled by moment: ' + config._i); - }; - setupDeprecationHandler(test, moment, 'locale'); - if (lifecycle && lifecycle.setup) { - lifecycle.setup(); - } - }, - teardown : function () { - moment.locale('en'); - teardownDeprecationHandler(test, moment, 'locale'); - if (lifecycle && lifecycle.teardown) { - lifecycle.teardown(); - } - } - }); - defineCommonLocaleTests(name, -1, -1); -} - -localeModule('ar'); - -var months = [ - 'كانون الثاني يناير', - 'شباط فبراير', - 'آذار مارس', - 'نيسان أبريل', - 'أيار مايو', - 'حزيران يونيو', - 'تموز يوليو', - 'آب أغسطس', - 'أيلول سبتمبر', - 'تشرين الأول أكتوبر', - 'تشرين الثاني نوفمبر', - 'كانون الأول ديسمبر' -]; - -test('parse', function (assert) { - var tests = months, i; - function equalTest(input, mmm, i) { - assert.equal(moment(input, mmm).month(), i, input + ' should be month ' + (i + 1) + ' instead is month ' + moment(input, mmm).month()); - } - for (i = 0; i < 12; i++) { - equalTest(tests[i], 'MMM', i); - equalTest(tests[i], 'MMM', i); - equalTest(tests[i], 'MMMM', i); - equalTest(tests[i], 'MMMM', i); - equalTest(tests[i].toLocaleLowerCase(), 'MMMM', i); - equalTest(tests[i].toLocaleLowerCase(), 'MMMM', i); - equalTest(tests[i].toLocaleUpperCase(), 'MMMM', i); - equalTest(tests[i].toLocaleUpperCase(), 'MMMM', i); - } -}); - -test('format', function (assert) { - var a = [ - ['dddd, MMMM Do YYYY, h:mm:ss a', 'الأحد، شباط فبراير ١٤ ٢٠١٠، ٣:٢٥:٥٠ م'], - ['ddd, hA', 'أحد، ٣م'], - ['M Mo MM MMMM MMM', '٢ ٢ ٠٢ شباط فبراير شباط فبراير'], - ['YYYY YY', '٢٠١٠ ١٠'], - ['D Do DD', '١٤ ١٤ ١٤'], - ['d do dddd ddd dd', '٠ ٠ الأحد أحد ح'], - ['DDD DDDo DDDD', '٤٥ ٤٥ ٠٤٥'], - ['w wo ww', '٨ ٨ ٠٨'], - ['h hh', '٣ ٠٣'], - ['H HH', '١٥ ١٥'], - ['m mm', '٢٥ ٢٥'], - ['s ss', '٥٠ ٥٠'], - ['a A', 'م م'], - ['[the] DDDo [day of the year]', 'the ٤٥ day of the year'], - ['LT', '١٥:٢٥'], - ['LTS', '١٥:٢٥:٥٠'], - ['L', '١٤/\u200f٢/\u200f٢٠١٠'], - ['LL', '١٤ شباط فبراير ٢٠١٠'], - ['LLL', '١٤ شباط فبراير ٢٠١٠ ١٥:٢٥'], - ['LLLL', 'الأحد ١٤ شباط فبراير ٢٠١٠ ١٥:٢٥'], - ['l', '١٤/\u200f٢/\u200f٢٠١٠'], - ['ll', '١٤ شباط فبراير ٢٠١٠'], - ['lll', '١٤ شباط فبراير ٢٠١٠ ١٥:٢٥'], - ['llll', 'أحد ١٤ شباط فبراير ٢٠١٠ ١٥:٢٥'] - ], - b = moment(new Date(2010, 1, 14, 15, 25, 50, 125)), - i; - for (i = 0; i < a.length; i++) { - assert.equal(b.format(a[i][0]), a[i][1], a[i][0] + ' ---> ' + a[i][1]); - } -}); - -test('format ordinal', function (assert) { - assert.equal(moment([2011, 0, 1]).format('DDDo'), '١', '1'); - assert.equal(moment([2011, 0, 2]).format('DDDo'), '٢', '2'); - assert.equal(moment([2011, 0, 3]).format('DDDo'), '٣', '3'); - assert.equal(moment([2011, 0, 4]).format('DDDo'), '٤', '4'); - assert.equal(moment([2011, 0, 5]).format('DDDo'), '٥', '5'); - assert.equal(moment([2011, 0, 6]).format('DDDo'), '٦', '6'); - assert.equal(moment([2011, 0, 7]).format('DDDo'), '٧', '7'); - assert.equal(moment([2011, 0, 8]).format('DDDo'), '٨', '8'); - assert.equal(moment([2011, 0, 9]).format('DDDo'), '٩', '9'); - assert.equal(moment([2011, 0, 10]).format('DDDo'), '١٠', '10'); - - assert.equal(moment([2011, 0, 11]).format('DDDo'), '١١', '11'); - assert.equal(moment([2011, 0, 12]).format('DDDo'), '١٢', '12'); - assert.equal(moment([2011, 0, 13]).format('DDDo'), '١٣', '13'); - assert.equal(moment([2011, 0, 14]).format('DDDo'), '١٤', '14'); - assert.equal(moment([2011, 0, 15]).format('DDDo'), '١٥', '15'); - assert.equal(moment([2011, 0, 16]).format('DDDo'), '١٦', '16'); - assert.equal(moment([2011, 0, 17]).format('DDDo'), '١٧', '17'); - assert.equal(moment([2011, 0, 18]).format('DDDo'), '١٨', '18'); - assert.equal(moment([2011, 0, 19]).format('DDDo'), '١٩', '19'); - assert.equal(moment([2011, 0, 20]).format('DDDo'), '٢٠', '20'); - - assert.equal(moment([2011, 0, 21]).format('DDDo'), '٢١', '21'); - assert.equal(moment([2011, 0, 22]).format('DDDo'), '٢٢', '22'); - assert.equal(moment([2011, 0, 23]).format('DDDo'), '٢٣', '23'); - assert.equal(moment([2011, 0, 24]).format('DDDo'), '٢٤', '24'); - assert.equal(moment([2011, 0, 25]).format('DDDo'), '٢٥', '25'); - assert.equal(moment([2011, 0, 26]).format('DDDo'), '٢٦', '26'); - assert.equal(moment([2011, 0, 27]).format('DDDo'), '٢٧', '27'); - assert.equal(moment([2011, 0, 28]).format('DDDo'), '٢٨', '28'); - assert.equal(moment([2011, 0, 29]).format('DDDo'), '٢٩', '29'); - assert.equal(moment([2011, 0, 30]).format('DDDo'), '٣٠', '30'); - - assert.equal(moment([2011, 0, 31]).format('DDDo'), '٣١', '31'); -}); - -test('format month', function (assert) { - var expected = months, i; - for (i = 0; i < expected.length; i++) { - assert.equal(moment([2011, i, 1]).format('MMMM'), expected[i], expected[i]); - assert.equal(moment([2011, i, 1]).format('MMM'), expected[i], expected[i]); - } -}); - -test('format week', function (assert) { - var expected = 'الأحد أحد ح_الإثنين إثنين ن_الثلاثاء ثلاثاء ث_الأربعاء أربعاء ر_الخميس خميس خ_الجمعة جمعة ج_السبت سبت س'.split('_'), i; - for (i = 0; i < expected.length; i++) { - assert.equal(moment([2011, 0, 2 + i]).format('dddd ddd dd'), expected[i], expected[i]); - } -}); - -test('from', function (assert) { - var start = moment([2007, 1, 28]); - assert.equal(start.from(moment([2007, 1, 28]).add({s: 44}), true), '٤٤ ثانية', '44 seconds = a few seconds'); - assert.equal(start.from(moment([2007, 1, 28]).add({s: 45}), true), 'دقيقة واحدة', '45 seconds = a minute'); - assert.equal(start.from(moment([2007, 1, 28]).add({s: 89}), true), 'دقيقة واحدة', '89 seconds = a minute'); - assert.equal(start.from(moment([2007, 1, 28]).add({s: 90}), true), 'دقيقتان', '90 seconds = 2 minutes'); - assert.equal(start.from(moment([2007, 1, 28]).add({m: 44}), true), '٤٤ دقيقة', '44 minutes = 44 minutes'); - assert.equal(start.from(moment([2007, 1, 28]).add({m: 45}), true), 'ساعة واحدة', '45 minutes = an hour'); - assert.equal(start.from(moment([2007, 1, 28]).add({m: 89}), true), 'ساعة واحدة', '89 minutes = an hour'); - assert.equal(start.from(moment([2007, 1, 28]).add({m: 90}), true), 'ساعتان', '90 minutes = 2 hours'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 5}), true), '٥ ساعات', '5 hours = 5 hours'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 21}), true), '٢١ ساعة', '21 hours = 21 hours'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 22}), true), 'يوم واحد', '22 hours = a day'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 35}), true), 'يوم واحد', '35 hours = a day'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 36}), true), 'يومان', '36 hours = 2 days'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 1}), true), 'يوم واحد', '1 day = a day'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 5}), true), '٥ أيام', '5 days = 5 days'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 25}), true), '٢٥ يومًا', '25 days = 25 days'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 26}), true), 'شهر واحد', '26 days = a month'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 30}), true), 'شهر واحد', '30 days = a month'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 43}), true), 'شهر واحد', '43 days = a month'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 46}), true), 'شهران', '46 days = 2 months'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 74}), true), 'شهران', '75 days = 2 months'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 76}), true), '٣ أشهر', '76 days = 3 months'); - assert.equal(start.from(moment([2007, 1, 28]).add({M: 1}), true), 'شهر واحد', '1 month = a month'); - assert.equal(start.from(moment([2007, 1, 28]).add({M: 5}), true), '٥ أشهر', '5 months = 5 months'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 345}), true), 'عام واحد', '345 days = a year'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 548}), true), 'عامان', '548 days = 2 years'); - assert.equal(start.from(moment([2007, 1, 28]).add({y: 1}), true), 'عام واحد', '1 year = a year'); - assert.equal(start.from(moment([2007, 1, 28]).add({y: 5}), true), '٥ أعوام', '5 years = 5 years'); -}); - -test('suffix', function (assert) { - assert.equal(moment(30000).from(0), 'بعد ٣٠ ثانية', 'prefix'); - assert.equal(moment(0).from(30000), 'منذ ٣٠ ثانية', 'suffix'); -}); - -test('now from now', function (assert) { - assert.equal(moment().fromNow(), 'منذ ثانية واحدة', 'now from now should display as in the past'); -}); - -test('fromNow', function (assert) { - assert.equal(moment().add({s: 30}).fromNow(), 'بعد ٣٠ ثانية', 'in a few seconds'); - assert.equal(moment().add({d: 5}).fromNow(), 'بعد ٥ أيام', 'in 5 days'); -}); - -test('calendar day', function (assert) { - var a = moment().hours(12).minutes(0).seconds(0); - - assert.equal(moment(a).calendar(), 'اليوم عند الساعة ١٢:٠٠', 'today at the same time'); - assert.equal(moment(a).add({m: 25}).calendar(), 'اليوم عند الساعة ١٢:٢٥', 'Now plus 25 min'); - assert.equal(moment(a).add({h: 1}).calendar(), 'اليوم عند الساعة ١٣:٠٠', 'Now plus 1 hour'); - assert.equal(moment(a).add({d: 1}).calendar(), 'غدًا عند الساعة ١٢:٠٠', 'tomorrow at the same time'); - assert.equal(moment(a).subtract({h: 1}).calendar(), 'اليوم عند الساعة ١١:٠٠', 'Now minus 1 hour'); - assert.equal(moment(a).subtract({d: 1}).calendar(), 'أمس عند الساعة ١٢:٠٠', 'yesterday at the same time'); -}); - -test('calendar next week', function (assert) { - var i, m; - for (i = 2; i < 7; i++) { - m = moment().add({d: i}); - assert.equal(m.calendar(), m.format('dddd [عند الساعة] LT'), 'Today + ' + i + ' days current time'); - m.hours(0).minutes(0).seconds(0).milliseconds(0); - assert.equal(m.calendar(), m.format('dddd [عند الساعة] LT'), 'Today + ' + i + ' days beginning of day'); - m.hours(23).minutes(59).seconds(59).milliseconds(999); - assert.equal(m.calendar(), m.format('dddd [عند الساعة] LT'), 'Today + ' + i + ' days end of day'); - } -}); - -test('calendar last week', function (assert) { - var i, m; - for (i = 2; i < 7; i++) { - m = moment().subtract({d: i}); - assert.equal(m.calendar(), m.format('dddd [عند الساعة] LT'), 'Today - ' + i + ' days current time'); - m.hours(0).minutes(0).seconds(0).milliseconds(0); - assert.equal(m.calendar(), m.format('dddd [عند الساعة] LT'), 'Today - ' + i + ' days beginning of day'); - m.hours(23).minutes(59).seconds(59).milliseconds(999); - assert.equal(m.calendar(), m.format('dddd [عند الساعة] LT'), 'Today - ' + i + ' days end of day'); - } -}); - -test('calendar all else', function (assert) { - var weeksAgo = moment().subtract({w: 1}), - weeksFromNow = moment().add({w: 1}); - - assert.equal(weeksAgo.calendar(), weeksAgo.format('L'), '1 week ago'); - assert.equal(weeksFromNow.calendar(), weeksFromNow.format('L'), 'in 1 week'); - - weeksAgo = moment().subtract({w: 2}); - weeksFromNow = moment().add({w: 2}); - - assert.equal(weeksAgo.calendar(), weeksAgo.format('L'), '2 weeks ago'); - assert.equal(weeksFromNow.calendar(), weeksFromNow.format('L'), 'in 2 weeks'); -}); - -test('weeks year starting wednesday custom', function (assert) { - assert.equal(moment('2003 1 6', 'gggg w d').format('YYYY-MM-DD'), '٢٠٠٢-١٢-٢٨', 'Week 1 of 2003 should be Dec 28 2002'); - assert.equal(moment('2003 1 0', 'gggg w e').format('YYYY-MM-DD'), '٢٠٠٢-١٢-٢٨', 'Week 1 of 2003 should be Dec 28 2002'); - assert.equal(moment('2003 1 6', 'gggg w d').format('gggg w d'), '٢٠٠٣ ١ ٦', 'Saturday of week 1 of 2003 parsed should be formatted as 2003 1 6'); - assert.equal(moment('2003 1 0', 'gggg w e').format('gggg w e'), '٢٠٠٣ ١ ٠', '1st day of week 1 of 2003 parsed should be formatted as 2003 1 0'); -}); - -test('weeks year starting sunday formatted', function (assert) { - assert.equal(moment([2011, 11, 31]).format('w ww wo'), '١ ٠١ ١', 'Dec 31 2011 should be week 1'); - assert.equal(moment([2012, 0, 6]).format('w ww wo'), '١ ٠١ ١', 'Jan 6 2012 should be week 1'); - assert.equal(moment([2012, 0, 7]).format('w ww wo'), '٢ ٠٢ ٢', 'Jan 7 2012 should be week 2'); - assert.equal(moment([2012, 0, 13]).format('w ww wo'), '٢ ٠٢ ٢', 'Jan 13 2012 should be week 2'); - assert.equal(moment([2012, 0, 14]).format('w ww wo'), '٣ ٠٣ ٣', 'Jan 14 2012 should be week 3'); -}); - -test('no leading zeros in long date formats', function (assert) { - var i, j, longDateStr, shortDateStr; - for (i = 1; i <= 9; ++i) { - for (j = 1; j <= 9; ++j) { - longDateStr = moment([2014, i, j]).format('L'); - shortDateStr = moment([2014, i, j]).format('l'); - assert.equal(longDateStr, shortDateStr, 'should not have leading zeros in month or day'); - } - } -}); - -}))); - - -;(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' - && typeof require === 'function' ? factory(require('../../moment')) : - typeof define === 'function' && define.amd ? define(['../../moment'], factory) : - factory(global.moment) -}(this, (function (moment) { 'use strict'; - -function each(array, callback) { - var i; - for (i = 0; i < array.length; i++) { - callback(array[i], i, array); - } -} - -function objectKeys(obj) { - if (Object.keys) { - return Object.keys(obj); - } else { - // IE8 - var res = [], i; - for (i in obj) { - if (obj.hasOwnProperty(i)) { - res.push(i); - } - } - return res; - } -} - -// Pick the first defined of two or three arguments. - -function defineCommonLocaleTests(locale, options) { - test('lenient day of month ordinal parsing', function (assert) { - var i, ordinalStr, testMoment; - for (i = 1; i <= 31; ++i) { - ordinalStr = moment([2014, 0, i]).format('YYYY MM Do'); - testMoment = moment(ordinalStr, 'YYYY MM Do'); - assert.equal(testMoment.year(), 2014, - 'lenient day of month ordinal parsing ' + i + ' year check'); - assert.equal(testMoment.month(), 0, - 'lenient day of month ordinal parsing ' + i + ' month check'); - assert.equal(testMoment.date(), i, - 'lenient day of month ordinal parsing ' + i + ' date check'); - } - }); - - test('lenient day of month ordinal parsing of number', function (assert) { - var i, testMoment; - for (i = 1; i <= 31; ++i) { - testMoment = moment('2014 01 ' + i, 'YYYY MM Do'); - assert.equal(testMoment.year(), 2014, - 'lenient day of month ordinal parsing of number ' + i + ' year check'); - assert.equal(testMoment.month(), 0, - 'lenient day of month ordinal parsing of number ' + i + ' month check'); - assert.equal(testMoment.date(), i, - 'lenient day of month ordinal parsing of number ' + i + ' date check'); - } - }); - - test('strict day of month ordinal parsing', function (assert) { - var i, ordinalStr, testMoment; - for (i = 1; i <= 31; ++i) { - ordinalStr = moment([2014, 0, i]).format('YYYY MM Do'); - testMoment = moment(ordinalStr, 'YYYY MM Do', true); - assert.ok(testMoment.isValid(), 'strict day of month ordinal parsing ' + i); - } - }); - - test('meridiem invariant', function (assert) { - var h, m, t1, t2; - for (h = 0; h < 24; ++h) { - for (m = 0; m < 60; m += 15) { - t1 = moment.utc([2000, 0, 1, h, m]); - t2 = moment.utc(t1.format('A h:mm'), 'A h:mm'); - assert.equal(t2.format('HH:mm'), t1.format('HH:mm'), - 'meridiem at ' + t1.format('HH:mm')); - } - } - }); - - test('date format correctness', function (assert) { - var data, tokens; - data = moment.localeData()._longDateFormat; - tokens = objectKeys(data); - each(tokens, function (srchToken) { - // Check each format string to make sure it does not contain any - // tokens that need to be expanded. - each(tokens, function (baseToken) { - // strip escaped sequences - var format = data[baseToken].replace(/(\[[^\]]*\])/g, ''); - assert.equal(false, !!~format.indexOf(srchToken), - 'contains ' + srchToken + ' in ' + baseToken); - }); - }); - }); - - test('month parsing correctness', function (assert) { - var i, m; - - if (locale === 'tr') { - // I can't fix it :( - expect(0); - return; - } - function tester(format) { - var r; - r = moment(m.format(format), format); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format); - r = moment(m.format(format).toLocaleUpperCase(), format); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' upper'); - r = moment(m.format(format).toLocaleLowerCase(), format); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' lower'); - - r = moment(m.format(format), format, true); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' strict'); - r = moment(m.format(format).toLocaleUpperCase(), format, true); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' upper strict'); - r = moment(m.format(format).toLocaleLowerCase(), format, true); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' lower strict'); - } - - for (i = 0; i < 12; ++i) { - m = moment([2015, i, 15, 18]); - tester('MMM'); - tester('MMM.'); - tester('MMMM'); - tester('MMMM.'); - } - }); - - test('weekday parsing correctness', function (assert) { - var i, m; - - if (locale === 'tr' || locale === 'az' || locale === 'ro') { - // tr, az: There is a lower-case letter (ı), that converted to - // upper then lower changes to i - // ro: there is the letter ț which behaves weird under IE8 - expect(0); - return; - } - function tester(format) { - var r, baseMsg = 'weekday ' + m.weekday() + ' fmt ' + format + ' ' + m.toISOString(); - r = moment(m.format(format), format); - assert.equal(r.weekday(), m.weekday(), baseMsg); - r = moment(m.format(format).toLocaleUpperCase(), format); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' upper'); - r = moment(m.format(format).toLocaleLowerCase(), format); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' lower'); - - r = moment(m.format(format), format, true); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' strict'); - r = moment(m.format(format).toLocaleUpperCase(), format, true); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' upper strict'); - r = moment(m.format(format).toLocaleLowerCase(), format, true); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' lower strict'); - } - - for (i = 0; i < 7; ++i) { - m = moment.utc([2015, 0, i + 1, 18]); - tester('dd'); - tester('ddd'); - tester('dddd'); - } - }); - - test('valid localeData', function (assert) { - assert.equal(moment().localeData().months().length, 12, 'months should return 12 months'); - assert.equal(moment().localeData().monthsShort().length, 12, 'monthsShort should return 12 months'); - assert.equal(moment().localeData().weekdays().length, 7, 'weekdays should return 7 days'); - assert.equal(moment().localeData().weekdaysShort().length, 7, 'weekdaysShort should return 7 days'); - assert.equal(moment().localeData().weekdaysMin().length, 7, 'monthsShort should return 7 days'); - }); -} - -function setupDeprecationHandler(test, moment$$1, scope) { - test._expectedDeprecations = null; - test._observedDeprecations = null; - test._oldSupress = moment$$1.suppressDeprecationWarnings; - moment$$1.suppressDeprecationWarnings = true; - test.expectedDeprecations = function () { - test._expectedDeprecations = arguments; - test._observedDeprecations = []; - }; - moment$$1.deprecationHandler = function (name, msg) { - var deprecationId = matchedDeprecation(name, msg, test._expectedDeprecations); - if (deprecationId === -1) { - throw new Error('Unexpected deprecation thrown name=' + - name + ' msg=' + msg); - } - test._observedDeprecations[deprecationId] = 1; - }; -} - -function teardownDeprecationHandler(test, moment$$1, scope) { - moment$$1.suppressDeprecationWarnings = test._oldSupress; - - if (test._expectedDeprecations != null) { - var missedDeprecations = []; - each(test._expectedDeprecations, function (deprecationPattern, id) { - if (test._observedDeprecations[id] !== 1) { - missedDeprecations.push(deprecationPattern); - } - }); - if (missedDeprecations.length !== 0) { - throw new Error('Expected deprecation warnings did not happen: ' + - missedDeprecations.join(' ')); - } - } -} - -function matchedDeprecation(name, msg, deprecations) { - if (deprecations == null) { - return -1; - } - for (var i = 0; i < deprecations.length; ++i) { - if (name != null && name === deprecations[i]) { - return i; - } - if (msg != null && msg.substring(0, deprecations[i].length) === deprecations[i]) { - return i; - } - } - return -1; -} - -/*global QUnit:false*/ - -var test = QUnit.test; - -var expect = QUnit.expect; - - - -function localeModule (name, lifecycle) { - QUnit.module('locale:' + name, { - setup : function () { - moment.locale(name); - moment.createFromInputFallback = function (config) { - throw new Error('input not handled by moment: ' + config._i); - }; - setupDeprecationHandler(test, moment, 'locale'); - if (lifecycle && lifecycle.setup) { - lifecycle.setup(); - } - }, - teardown : function () { - moment.locale('en'); - teardownDeprecationHandler(test, moment, 'locale'); - if (lifecycle && lifecycle.teardown) { - lifecycle.teardown(); - } - } - }); - defineCommonLocaleTests(name, -1, -1); -} - -localeModule('az'); - -test('parse', function (assert) { - var tests = 'yanvar yan_fevral fev_mart mar_Aprel apr_may may_iyun iyn_iyul iyl_Avqust avq_sentyabr sen_oktyabr okt_noyabr noy_dekabr dek'.split('_'), i; - function equalTest(input, mmm, i) { - assert.equal(moment(input, mmm).month(), i, input + ' should be month ' + (i + 1)); - } - for (i = 0; i < 12; i++) { - tests[i] = tests[i].split(' '); - equalTest(tests[i][0], 'MMM', i); - equalTest(tests[i][1], 'MMM', i); - equalTest(tests[i][0], 'MMMM', i); - equalTest(tests[i][1], 'MMMM', i); - equalTest(tests[i][0].toLocaleLowerCase(), 'MMMM', i); - equalTest(tests[i][1].toLocaleLowerCase(), 'MMMM', i); - equalTest(tests[i][0].toLocaleUpperCase(), 'MMMM', i); - equalTest(tests[i][1].toLocaleUpperCase(), 'MMMM', i); - } -}); - -test('format', function (assert) { - var a = [ - ['dddd, D MMMM YYYY, HH:mm:ss', 'Bazar, 14 fevral 2010, 15:25:50'], - ['ddd, A h', 'Baz, gündüz 3'], - ['M Mo MM MMMM MMM', '2 2-nci 02 fevral fev'], - ['YYYY YY', '2010 10'], - ['D Do DD', '14 14-üncü 14'], - ['d do dddd ddd dd', '0 0-ıncı Bazar Baz Bz'], - ['DDD DDDo DDDD', '45 45-inci 045'], - ['w wo ww', '7 7-nci 07'], - ['h hh', '3 03'], - ['H HH', '15 15'], - ['m mm', '25 25'], - ['s ss', '50 50'], - ['a A', 'gündüz gündüz'], - ['[ilin] DDDo [günü]', 'ilin 45-inci günü'], - ['LT', '15:25'], - ['LTS', '15:25:50'], - ['L', '14.02.2010'], - ['LL', '14 fevral 2010'], - ['LLL', '14 fevral 2010 15:25'], - ['LLLL', 'Bazar, 14 fevral 2010 15:25'], - ['l', '14.2.2010'], - ['ll', '14 fev 2010'], - ['lll', '14 fev 2010 15:25'], - ['llll', 'Baz, 14 fev 2010 15:25'] - ], - DDDo = [ - [359, '360-ıncı'], - [199, '200-üncü'], - [149, '150-nci'] - ], - dt = moment(new Date(2010, 1, 14, 15, 25, 50, 125)), - DDDoDt, - i; - - for (i = 0; i < a.length; i++) { - assert.equal(dt.format(a[i][0]), a[i][1], a[i][0] + ' ---> ' + a[i][1]); - } - for (i = 0; i < DDDo.length; i++) { - DDDoDt = moment([2010]); - assert.equal(DDDoDt.add(DDDo[i][0], 'days').format('DDDo'), DDDo[i][1], DDDo[i][0] + ' ---> ' + DDDo[i][1]); - } -}); - -test('format ordinal', function (assert) { - assert.equal(moment([2011, 0, 1]).format('DDDo'), '1-inci', '1st'); - assert.equal(moment([2011, 0, 2]).format('DDDo'), '2-nci', '2nd'); - assert.equal(moment([2011, 0, 3]).format('DDDo'), '3-üncü', '3rd'); - assert.equal(moment([2011, 0, 4]).format('DDDo'), '4-üncü', '4th'); - assert.equal(moment([2011, 0, 5]).format('DDDo'), '5-inci', '5th'); - assert.equal(moment([2011, 0, 6]).format('DDDo'), '6-ncı', '6th'); - assert.equal(moment([2011, 0, 7]).format('DDDo'), '7-nci', '7th'); - assert.equal(moment([2011, 0, 8]).format('DDDo'), '8-inci', '8th'); - assert.equal(moment([2011, 0, 9]).format('DDDo'), '9-uncu', '9th'); - assert.equal(moment([2011, 0, 10]).format('DDDo'), '10-uncu', '10th'); - - assert.equal(moment([2011, 0, 11]).format('DDDo'), '11-inci', '11th'); - assert.equal(moment([2011, 0, 12]).format('DDDo'), '12-nci', '12th'); - assert.equal(moment([2011, 0, 13]).format('DDDo'), '13-üncü', '13th'); - assert.equal(moment([2011, 0, 14]).format('DDDo'), '14-üncü', '14th'); - assert.equal(moment([2011, 0, 15]).format('DDDo'), '15-inci', '15th'); - assert.equal(moment([2011, 0, 16]).format('DDDo'), '16-ncı', '16th'); - assert.equal(moment([2011, 0, 17]).format('DDDo'), '17-nci', '17th'); - assert.equal(moment([2011, 0, 18]).format('DDDo'), '18-inci', '18th'); - assert.equal(moment([2011, 0, 19]).format('DDDo'), '19-uncu', '19th'); - assert.equal(moment([2011, 0, 20]).format('DDDo'), '20-nci', '20th'); - - assert.equal(moment([2011, 0, 21]).format('DDDo'), '21-inci', '21th'); - assert.equal(moment([2011, 0, 22]).format('DDDo'), '22-nci', '22th'); - assert.equal(moment([2011, 0, 23]).format('DDDo'), '23-üncü', '23th'); - assert.equal(moment([2011, 0, 24]).format('DDDo'), '24-üncü', '24th'); - assert.equal(moment([2011, 0, 25]).format('DDDo'), '25-inci', '25th'); - assert.equal(moment([2011, 0, 26]).format('DDDo'), '26-ncı', '26th'); - assert.equal(moment([2011, 0, 27]).format('DDDo'), '27-nci', '27th'); - assert.equal(moment([2011, 0, 28]).format('DDDo'), '28-inci', '28th'); - assert.equal(moment([2011, 0, 29]).format('DDDo'), '29-uncu', '29th'); - assert.equal(moment([2011, 0, 30]).format('DDDo'), '30-uncu', '30th'); - - assert.equal(moment([2011, 0, 31]).format('DDDo'), '31-inci', '31st'); -}); - -test('format month', function (assert) { - var expected = 'yanvar yan_fevral fev_mart mar_aprel apr_may may_iyun iyn_iyul iyl_avqust avq_sentyabr sen_oktyabr okt_noyabr noy_dekabr dek'.split('_'), i; - for (i = 0; i < expected.length; i++) { - assert.equal(moment([2011, i, 1]).format('MMMM MMM'), expected[i], expected[i]); - } -}); - -test('format week', function (assert) { - var expected = 'Bazar Baz Bz_Bazar ertəsi BzE BE_Çərşənbə axşamı ÇAx ÇA_Çərşənbə Çər Çə_Cümə axşamı CAx CA_Cümə Cüm Cü_Şənbə Şən Şə'.split('_'), i; - for (i = 0; i < expected.length; i++) { - assert.equal(moment([2011, 0, 2 + i]).format('dddd ddd dd'), expected[i], expected[i]); - } -}); - -test('from', function (assert) { - var start = moment([2007, 1, 28]); - assert.equal(start.from(moment([2007, 1, 28]).add({s: 44}), true), 'birneçə saniyyə', '44 seconds = a few seconds'); - assert.equal(start.from(moment([2007, 1, 28]).add({s: 45}), true), 'bir dəqiqə', '45 seconds = a minute'); - assert.equal(start.from(moment([2007, 1, 28]).add({s: 89}), true), 'bir dəqiqə', '89 seconds = a minute'); - assert.equal(start.from(moment([2007, 1, 28]).add({s: 90}), true), '2 dəqiqə', '90 seconds = 2 minutes'); - assert.equal(start.from(moment([2007, 1, 28]).add({m: 44}), true), '44 dəqiqə', '44 minutes = 44 minutes'); - assert.equal(start.from(moment([2007, 1, 28]).add({m: 45}), true), 'bir saat', '45 minutes = an hour'); - assert.equal(start.from(moment([2007, 1, 28]).add({m: 89}), true), 'bir saat', '89 minutes = an hour'); - assert.equal(start.from(moment([2007, 1, 28]).add({m: 90}), true), '2 saat', '90 minutes = 2 hours'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 5}), true), '5 saat', '5 hours = 5 hours'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 21}), true), '21 saat', '21 hours = 21 hours'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 22}), true), 'bir gün', '22 hours = a day'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 35}), true), 'bir gün', '35 hours = a day'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 36}), true), '2 gün', '36 hours = 2 days'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 1}), true), 'bir gün', '1 day = a day'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 5}), true), '5 gün', '5 days = 5 days'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 25}), true), '25 gün', '25 days = 25 days'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 26}), true), 'bir ay', '26 days = a month'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 30}), true), 'bir ay', '30 days = a month'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 46}), true), '2 ay', '46 days = 2 months'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 74}), true), '2 ay', '75 days = 2 months'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 76}), true), '3 ay', '76 days = 3 months'); - assert.equal(start.from(moment([2007, 1, 28]).add({M: 1}), true), 'bir ay', '1 month = a month'); - assert.equal(start.from(moment([2007, 1, 28]).add({M: 5}), true), '5 ay', '5 months = 5 months'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 345}), true), 'bir il', '345 days = a year'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 548}), true), '2 il', '548 days = 2 years'); - assert.equal(start.from(moment([2007, 1, 28]).add({y: 1}), true), 'bir il', '1 year = a year'); - assert.equal(start.from(moment([2007, 1, 28]).add({y: 5}), true), '5 il', '5 years = 5 years'); -}); - -test('suffix', function (assert) { - assert.equal(moment(30000).from(0), 'birneçə saniyyə sonra', 'prefix'); - assert.equal(moment(0).from(30000), 'birneçə saniyyə əvvəl', 'suffix'); -}); - -test('now from now', function (assert) { - assert.equal(moment().fromNow(), 'birneçə saniyyə əvvəl', 'now from now should display as in the past'); -}); - -test('fromNow', function (assert) { - assert.equal(moment().add({s: 30}).fromNow(), 'birneçə saniyyə sonra', 'in a few seconds'); - assert.equal(moment().add({d: 5}).fromNow(), '5 gün sonra', 'in 5 days'); -}); - -test('calendar day', function (assert) { - var a = moment().hours(12).minutes(0).seconds(0); - - assert.equal(moment(a).calendar(), 'bugün saat 12:00', 'today at the same time'); - assert.equal(moment(a).add({m: 25}).calendar(), 'bugün saat 12:25', 'Now plus 25 min'); - assert.equal(moment(a).add({h: 1}).calendar(), 'bugün saat 13:00', 'Now plus 1 hour'); - assert.equal(moment(a).add({d: 1}).calendar(), 'sabah saat 12:00', 'tomorrow at the same time'); - assert.equal(moment(a).subtract({h: 1}).calendar(), 'bugün saat 11:00', 'Now minus 1 hour'); - assert.equal(moment(a).subtract({d: 1}).calendar(), 'dünən 12:00', 'yesterday at the same time'); -}); - -test('calendar next week', function (assert) { - var i, m; - for (i = 2; i < 7; i++) { - m = moment().add({d: i}); - assert.equal(m.calendar(), m.format('[gələn həftə] dddd [saat] LT'), 'Today + ' + i + ' days current time'); - m.hours(0).minutes(0).seconds(0).milliseconds(0); - assert.equal(m.calendar(), m.format('[gələn həftə] dddd [saat] LT'), 'Today + ' + i + ' days beginning of day'); - m.hours(23).minutes(59).seconds(59).milliseconds(999); - assert.equal(m.calendar(), m.format('[gələn həftə] dddd [saat] LT'), 'Today + ' + i + ' days end of day'); - } -}); - -test('calendar last week', function (assert) { - var i, m; - for (i = 2; i < 7; i++) { - m = moment().subtract({d: i}); - assert.equal(m.calendar(), m.format('[keçən həftə] dddd [saat] LT'), 'Today - ' + i + ' days current time'); - m.hours(0).minutes(0).seconds(0).milliseconds(0); - assert.equal(m.calendar(), m.format('[keçən həftə] dddd [saat] LT'), 'Today - ' + i + ' days beginning of day'); - m.hours(23).minutes(59).seconds(59).milliseconds(999); - assert.equal(m.calendar(), m.format('[keçən həftə] dddd [saat] LT'), 'Today - ' + i + ' days end of day'); - } -}); - -test('calendar all else', function (assert) { - var weeksAgo = moment().subtract({w: 1}), - weeksFromNow = moment().add({w: 1}); - - assert.equal(weeksAgo.calendar(), weeksAgo.format('L'), '1 week ago'); - assert.equal(weeksFromNow.calendar(), weeksFromNow.format('L'), 'in 1 week'); - - weeksAgo = moment().subtract({w: 2}); - weeksFromNow = moment().add({w: 2}); - - assert.equal(weeksAgo.calendar(), weeksAgo.format('L'), '2 weeks ago'); - assert.equal(weeksFromNow.calendar(), weeksFromNow.format('L'), 'in 2 weeks'); -}); - -test('weeks year starting sunday formatted', function (assert) { - assert.equal(moment([2011, 11, 26]).format('w ww wo'), '1 01 1-inci', 'Dec 26 2011 should be week 1'); - assert.equal(moment([2012, 0, 1]).format('w ww wo'), '1 01 1-inci', 'Jan 1 2012 should be week 1'); - assert.equal(moment([2012, 0, 2]).format('w ww wo'), '2 02 2-nci', 'Jan 2 2012 should be week 2'); - assert.equal(moment([2012, 0, 8]).format('w ww wo'), '2 02 2-nci', 'Jan 8 2012 should be week 2'); - assert.equal(moment([2012, 0, 9]).format('w ww wo'), '3 03 3-üncü', 'Jan 9 2012 should be week 3'); -}); - -}))); - - -;(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' - && typeof require === 'function' ? factory(require('../../moment')) : - typeof define === 'function' && define.amd ? define(['../../moment'], factory) : - factory(global.moment) -}(this, (function (moment) { 'use strict'; - -function each(array, callback) { - var i; - for (i = 0; i < array.length; i++) { - callback(array[i], i, array); - } -} - -function objectKeys(obj) { - if (Object.keys) { - return Object.keys(obj); - } else { - // IE8 - var res = [], i; - for (i in obj) { - if (obj.hasOwnProperty(i)) { - res.push(i); - } - } - return res; - } -} - -// Pick the first defined of two or three arguments. - -function defineCommonLocaleTests(locale, options) { - test('lenient day of month ordinal parsing', function (assert) { - var i, ordinalStr, testMoment; - for (i = 1; i <= 31; ++i) { - ordinalStr = moment([2014, 0, i]).format('YYYY MM Do'); - testMoment = moment(ordinalStr, 'YYYY MM Do'); - assert.equal(testMoment.year(), 2014, - 'lenient day of month ordinal parsing ' + i + ' year check'); - assert.equal(testMoment.month(), 0, - 'lenient day of month ordinal parsing ' + i + ' month check'); - assert.equal(testMoment.date(), i, - 'lenient day of month ordinal parsing ' + i + ' date check'); - } - }); - - test('lenient day of month ordinal parsing of number', function (assert) { - var i, testMoment; - for (i = 1; i <= 31; ++i) { - testMoment = moment('2014 01 ' + i, 'YYYY MM Do'); - assert.equal(testMoment.year(), 2014, - 'lenient day of month ordinal parsing of number ' + i + ' year check'); - assert.equal(testMoment.month(), 0, - 'lenient day of month ordinal parsing of number ' + i + ' month check'); - assert.equal(testMoment.date(), i, - 'lenient day of month ordinal parsing of number ' + i + ' date check'); - } - }); - - test('strict day of month ordinal parsing', function (assert) { - var i, ordinalStr, testMoment; - for (i = 1; i <= 31; ++i) { - ordinalStr = moment([2014, 0, i]).format('YYYY MM Do'); - testMoment = moment(ordinalStr, 'YYYY MM Do', true); - assert.ok(testMoment.isValid(), 'strict day of month ordinal parsing ' + i); - } - }); - - test('meridiem invariant', function (assert) { - var h, m, t1, t2; - for (h = 0; h < 24; ++h) { - for (m = 0; m < 60; m += 15) { - t1 = moment.utc([2000, 0, 1, h, m]); - t2 = moment.utc(t1.format('A h:mm'), 'A h:mm'); - assert.equal(t2.format('HH:mm'), t1.format('HH:mm'), - 'meridiem at ' + t1.format('HH:mm')); - } - } - }); - - test('date format correctness', function (assert) { - var data, tokens; - data = moment.localeData()._longDateFormat; - tokens = objectKeys(data); - each(tokens, function (srchToken) { - // Check each format string to make sure it does not contain any - // tokens that need to be expanded. - each(tokens, function (baseToken) { - // strip escaped sequences - var format = data[baseToken].replace(/(\[[^\]]*\])/g, ''); - assert.equal(false, !!~format.indexOf(srchToken), - 'contains ' + srchToken + ' in ' + baseToken); - }); - }); - }); - - test('month parsing correctness', function (assert) { - var i, m; - - if (locale === 'tr') { - // I can't fix it :( - expect(0); - return; - } - function tester(format) { - var r; - r = moment(m.format(format), format); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format); - r = moment(m.format(format).toLocaleUpperCase(), format); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' upper'); - r = moment(m.format(format).toLocaleLowerCase(), format); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' lower'); - - r = moment(m.format(format), format, true); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' strict'); - r = moment(m.format(format).toLocaleUpperCase(), format, true); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' upper strict'); - r = moment(m.format(format).toLocaleLowerCase(), format, true); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' lower strict'); - } - - for (i = 0; i < 12; ++i) { - m = moment([2015, i, 15, 18]); - tester('MMM'); - tester('MMM.'); - tester('MMMM'); - tester('MMMM.'); - } - }); - - test('weekday parsing correctness', function (assert) { - var i, m; - - if (locale === 'tr' || locale === 'az' || locale === 'ro') { - // tr, az: There is a lower-case letter (ı), that converted to - // upper then lower changes to i - // ro: there is the letter ț which behaves weird under IE8 - expect(0); - return; - } - function tester(format) { - var r, baseMsg = 'weekday ' + m.weekday() + ' fmt ' + format + ' ' + m.toISOString(); - r = moment(m.format(format), format); - assert.equal(r.weekday(), m.weekday(), baseMsg); - r = moment(m.format(format).toLocaleUpperCase(), format); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' upper'); - r = moment(m.format(format).toLocaleLowerCase(), format); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' lower'); - - r = moment(m.format(format), format, true); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' strict'); - r = moment(m.format(format).toLocaleUpperCase(), format, true); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' upper strict'); - r = moment(m.format(format).toLocaleLowerCase(), format, true); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' lower strict'); - } - - for (i = 0; i < 7; ++i) { - m = moment.utc([2015, 0, i + 1, 18]); - tester('dd'); - tester('ddd'); - tester('dddd'); - } - }); - - test('valid localeData', function (assert) { - assert.equal(moment().localeData().months().length, 12, 'months should return 12 months'); - assert.equal(moment().localeData().monthsShort().length, 12, 'monthsShort should return 12 months'); - assert.equal(moment().localeData().weekdays().length, 7, 'weekdays should return 7 days'); - assert.equal(moment().localeData().weekdaysShort().length, 7, 'weekdaysShort should return 7 days'); - assert.equal(moment().localeData().weekdaysMin().length, 7, 'monthsShort should return 7 days'); - }); -} - -function setupDeprecationHandler(test, moment$$1, scope) { - test._expectedDeprecations = null; - test._observedDeprecations = null; - test._oldSupress = moment$$1.suppressDeprecationWarnings; - moment$$1.suppressDeprecationWarnings = true; - test.expectedDeprecations = function () { - test._expectedDeprecations = arguments; - test._observedDeprecations = []; - }; - moment$$1.deprecationHandler = function (name, msg) { - var deprecationId = matchedDeprecation(name, msg, test._expectedDeprecations); - if (deprecationId === -1) { - throw new Error('Unexpected deprecation thrown name=' + - name + ' msg=' + msg); - } - test._observedDeprecations[deprecationId] = 1; - }; -} - -function teardownDeprecationHandler(test, moment$$1, scope) { - moment$$1.suppressDeprecationWarnings = test._oldSupress; - - if (test._expectedDeprecations != null) { - var missedDeprecations = []; - each(test._expectedDeprecations, function (deprecationPattern, id) { - if (test._observedDeprecations[id] !== 1) { - missedDeprecations.push(deprecationPattern); - } - }); - if (missedDeprecations.length !== 0) { - throw new Error('Expected deprecation warnings did not happen: ' + - missedDeprecations.join(' ')); - } - } -} - -function matchedDeprecation(name, msg, deprecations) { - if (deprecations == null) { - return -1; - } - for (var i = 0; i < deprecations.length; ++i) { - if (name != null && name === deprecations[i]) { - return i; - } - if (msg != null && msg.substring(0, deprecations[i].length) === deprecations[i]) { - return i; - } - } - return -1; -} - -/*global QUnit:false*/ - -var test = QUnit.test; - -var expect = QUnit.expect; - - - -function localeModule (name, lifecycle) { - QUnit.module('locale:' + name, { - setup : function () { - moment.locale(name); - moment.createFromInputFallback = function (config) { - throw new Error('input not handled by moment: ' + config._i); - }; - setupDeprecationHandler(test, moment, 'locale'); - if (lifecycle && lifecycle.setup) { - lifecycle.setup(); - } - }, - teardown : function () { - moment.locale('en'); - teardownDeprecationHandler(test, moment, 'locale'); - if (lifecycle && lifecycle.teardown) { - lifecycle.teardown(); - } - } - }); - defineCommonLocaleTests(name, -1, -1); -} - -localeModule('be'); - -test('parse', function (assert) { - var tests = 'студзень студ_люты лют_сакавік сак_красавік крас_травень трав_чэрвень чэрв_ліпень ліп_жнівень жнів_верасень вер_кастрычнік каст_лістапад ліст_снежань снеж'.split('_'), i; - function equalTest(input, mmm, i) { - assert.equal(moment(input, mmm).month(), i, input + ' should be month ' + (i + 1)); - } - for (i = 0; i < 12; i++) { - tests[i] = tests[i].split(' '); - equalTest(tests[i][0], 'MMM', i); - equalTest(tests[i][1], 'MMM', i); - equalTest(tests[i][0], 'MMMM', i); - equalTest(tests[i][1], 'MMMM', i); - equalTest(tests[i][0].toLocaleLowerCase(), 'MMMM', i); - equalTest(tests[i][1].toLocaleLowerCase(), 'MMMM', i); - equalTest(tests[i][0].toLocaleUpperCase(), 'MMMM', i); - equalTest(tests[i][1].toLocaleUpperCase(), 'MMMM', i); - } -}); - -test('format', function (assert) { - var a = [ - ['dddd, Do MMMM YYYY, HH:mm:ss', 'нядзеля, 14-га лютага 2010, 15:25:50'], - ['ddd, h A', 'нд, 3 дня'], - ['M Mo MM MMMM MMM', '2 2-і 02 люты лют'], - ['YYYY YY', '2010 10'], - ['D Do DD', '14 14-га 14'], - ['d do dddd ddd dd', '0 0-ы нядзеля нд нд'], - ['DDD DDDo DDDD', '45 45-ы 045'], - ['w wo ww', '7 7-ы 07'], - ['h hh', '3 03'], - ['H HH', '15 15'], - ['m mm', '25 25'], - ['s ss', '50 50'], - ['a A', 'дня дня'], - ['DDDo [дзень года]', '45-ы дзень года'], - ['LT', '15:25'], - ['LTS', '15:25:50'], - ['L', '14.02.2010'], - ['LL', '14 лютага 2010 г.'], - ['LLL', '14 лютага 2010 г., 15:25'], - ['LLLL', 'нядзеля, 14 лютага 2010 г., 15:25'], - ['l', '14.2.2010'], - ['ll', '14 лют 2010 г.'], - ['lll', '14 лют 2010 г., 15:25'], - ['llll', 'нд, 14 лют 2010 г., 15:25'] - ], - b = moment(new Date(2010, 1, 14, 15, 25, 50, 125)), - i; - for (i = 0; i < a.length; i++) { - assert.equal(b.format(a[i][0]), a[i][1], a[i][0] + ' ---> ' + a[i][1]); - } -}); - -test('format meridiem', function (assert) { - assert.equal(moment([2012, 11, 28, 0, 0]).format('A'), 'ночы', 'night'); - assert.equal(moment([2012, 11, 28, 3, 59]).format('A'), 'ночы', 'night'); - assert.equal(moment([2012, 11, 28, 4, 0]).format('A'), 'раніцы', 'morning'); - assert.equal(moment([2012, 11, 28, 11, 59]).format('A'), 'раніцы', 'morning'); - assert.equal(moment([2012, 11, 28, 12, 0]).format('A'), 'дня', 'afternoon'); - assert.equal(moment([2012, 11, 28, 16, 59]).format('A'), 'дня', 'afternoon'); - assert.equal(moment([2012, 11, 28, 17, 0]).format('A'), 'вечара', 'evening'); - assert.equal(moment([2012, 11, 28, 23, 59]).format('A'), 'вечара', 'evening'); -}); - -test('format ordinal', function (assert) { - assert.equal(moment([2011, 0, 1]).format('DDDo'), '1-ы', '1-ы'); - assert.equal(moment([2011, 0, 2]).format('DDDo'), '2-і', '2-і'); - assert.equal(moment([2011, 0, 3]).format('DDDo'), '3-і', '3-і'); - assert.equal(moment([2011, 0, 4]).format('DDDo'), '4-ы', '4-ы'); - assert.equal(moment([2011, 0, 5]).format('DDDo'), '5-ы', '5-ы'); - assert.equal(moment([2011, 0, 6]).format('DDDo'), '6-ы', '6-ы'); - assert.equal(moment([2011, 0, 7]).format('DDDo'), '7-ы', '7-ы'); - assert.equal(moment([2011, 0, 8]).format('DDDo'), '8-ы', '8-ы'); - assert.equal(moment([2011, 0, 9]).format('DDDo'), '9-ы', '9-ы'); - assert.equal(moment([2011, 0, 10]).format('DDDo'), '10-ы', '10-ы'); - - assert.equal(moment([2011, 0, 11]).format('DDDo'), '11-ы', '11-ы'); - assert.equal(moment([2011, 0, 12]).format('DDDo'), '12-ы', '12-ы'); - assert.equal(moment([2011, 0, 13]).format('DDDo'), '13-ы', '13-ы'); - assert.equal(moment([2011, 0, 14]).format('DDDo'), '14-ы', '14-ы'); - assert.equal(moment([2011, 0, 15]).format('DDDo'), '15-ы', '15-ы'); - assert.equal(moment([2011, 0, 16]).format('DDDo'), '16-ы', '16-ы'); - assert.equal(moment([2011, 0, 17]).format('DDDo'), '17-ы', '17-ы'); - assert.equal(moment([2011, 0, 18]).format('DDDo'), '18-ы', '18-ы'); - assert.equal(moment([2011, 0, 19]).format('DDDo'), '19-ы', '19-ы'); - assert.equal(moment([2011, 0, 20]).format('DDDo'), '20-ы', '20-ы'); - - assert.equal(moment([2011, 0, 21]).format('DDDo'), '21-ы', '21-ы'); - assert.equal(moment([2011, 0, 22]).format('DDDo'), '22-і', '22-і'); - assert.equal(moment([2011, 0, 23]).format('DDDo'), '23-і', '23-і'); - assert.equal(moment([2011, 0, 24]).format('DDDo'), '24-ы', '24-ы'); - assert.equal(moment([2011, 0, 25]).format('DDDo'), '25-ы', '25-ы'); - assert.equal(moment([2011, 0, 26]).format('DDDo'), '26-ы', '26-ы'); - assert.equal(moment([2011, 0, 27]).format('DDDo'), '27-ы', '27-ы'); - assert.equal(moment([2011, 0, 28]).format('DDDo'), '28-ы', '28-ы'); - assert.equal(moment([2011, 0, 29]).format('DDDo'), '29-ы', '29-ы'); - assert.equal(moment([2011, 0, 30]).format('DDDo'), '30-ы', '30-ы'); - - assert.equal(moment([2011, 0, 31]).format('DDDo'), '31-ы', '31-ы'); -}); - -test('format month', function (assert) { - var expected = 'студзень студ_люты лют_сакавік сак_красавік крас_травень трав_чэрвень чэрв_ліпень ліп_жнівень жнів_верасень вер_кастрычнік каст_лістапад ліст_снежань снеж'.split('_'), i; - for (i = 0; i < expected.length; i++) { - assert.equal(moment([2011, i, 1]).format('MMMM MMM'), expected[i], expected[i]); - } -}); - -test('format month case', function (assert) { - var months = { - 'nominative': 'студзень_люты_сакавік_красавік_травень_чэрвень_ліпень_жнівень_верасень_кастрычнік_лістапад_снежань'.split('_'), - 'accusative': 'студзеня_лютага_сакавіка_красавіка_траўня_чэрвеня_ліпеня_жніўня_верасня_кастрычніка_лістапада_снежня'.split('_') - }, i; - for (i = 0; i < 12; i++) { - assert.equal(moment([2011, i, 1]).format('D MMMM'), '1 ' + months.accusative[i], '1 ' + months.accusative[i]); - assert.equal(moment([2011, i, 1]).format('MMMM'), months.nominative[i], '1 ' + months.nominative[i]); - } -}); - -test('format month case with escaped symbols', function (assert) { - var months = { - 'nominative': 'студзень_люты_сакавік_красавік_травень_чэрвень_ліпень_жнівень_верасень_кастрычнік_лістапад_снежань'.split('_'), - 'accusative': 'студзеня_лютага_сакавіка_красавіка_траўня_чэрвеня_ліпеня_жніўня_верасня_кастрычніка_лістапада_снежня'.split('_') - }, i; - for (i = 0; i < 12; i++) { - assert.equal(moment([2013, i, 1]).format('D[] MMMM'), '1 ' + months.accusative[i], '1 ' + months.accusative[i]); - assert.equal(moment([2013, i, 1]).format('[<i>]D[</i>] [<b>]MMMM[</b>]'), '<i>1</i> <b>' + months.accusative[i] + '</b>', '1 <b>' + months.accusative[i] + '</b>'); - assert.equal(moment([2013, i, 1]).format('D[-ы дзень] MMMM'), '1-ы дзень ' + months.accusative[i], '1-ы дзень ' + months.accusative[i]); - assert.equal(moment([2013, i, 1]).format('D, MMMM'), '1, ' + months.nominative[i], '1, ' + months.nominative[i]); - } -}); - -test('format week', function (assert) { - var expected = 'нядзеля нд нд_панядзелак пн пн_аўторак ат ат_серада ср ср_чацвер чц чц_пятніца пт пт_субота сб сб'.split('_'), i; - for (i = 0; i < expected.length; i++) { - assert.equal(moment([2011, 0, 2 + i]).format('dddd ddd dd'), expected[i], expected[i]); - } -}); - -test('from', function (assert) { - var start = moment([2007, 1, 28]); - assert.equal(start.from(moment([2007, 1, 28]).add({s: 44}), true), 'некалькі секунд', '44 seconds = a few seconds'); - assert.equal(start.from(moment([2007, 1, 28]).add({s: 45}), true), 'хвіліна', '45 seconds = a minute'); - assert.equal(start.from(moment([2007, 1, 28]).add({s: 89}), true), 'хвіліна', '89 seconds = a minute'); - assert.equal(start.from(moment([2007, 1, 28]).add({s: 90}), true), '2 хвіліны', '90 seconds = 2 minutes'); - assert.equal(start.from(moment([2007, 1, 28]).add({m: 31}), true), '31 хвіліна', '31 minutes = 31 minutes'); - assert.equal(start.from(moment([2007, 1, 28]).add({m: 44}), true), '44 хвіліны', '44 minutes = 44 minutes'); - assert.equal(start.from(moment([2007, 1, 28]).add({m: 45}), true), 'гадзіна', '45 minutes = an hour'); - assert.equal(start.from(moment([2007, 1, 28]).add({m: 89}), true), 'гадзіна', '89 minutes = an hour'); - assert.equal(start.from(moment([2007, 1, 28]).add({m: 90}), true), '2 гадзіны', '90 minutes = 2 hours'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 5}), true), '5 гадзін', '5 hours = 5 hours'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 21}), true), '21 гадзіна', '21 hours = 21 hours'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 22}), true), 'дзень', '22 hours = a day'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 35}), true), 'дзень', '35 hours = a day'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 36}), true), '2 дні', '36 hours = 2 days'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 1}), true), 'дзень', '1 day = a day'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 5}), true), '5 дзён', '5 days = 5 days'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 11}), true), '11 дзён', '11 days = 11 days'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 21}), true), '21 дзень', '21 days = 21 days'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 25}), true), '25 дзён', '25 days = 25 days'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 26}), true), 'месяц', '26 days = a month'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 30}), true), 'месяц', '30 days = a month'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 43}), true), 'месяц', '43 days = a month'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 46}), true), '2 месяцы', '46 days = 2 months'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 74}), true), '2 месяцы', '75 days = 2 months'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 76}), true), '3 месяцы', '76 days = 3 months'); - assert.equal(start.from(moment([2007, 1, 28]).add({M: 1}), true), 'месяц', '1 month = a month'); - assert.equal(start.from(moment([2007, 1, 28]).add({M: 5}), true), '5 месяцаў', '5 months = 5 months'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 345}), true), 'год', '345 days = a year'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 548}), true), '2 гады', '548 days = 2 years'); - assert.equal(start.from(moment([2007, 1, 28]).add({y: 1}), true), 'год', '1 year = a year'); - assert.equal(start.from(moment([2007, 1, 28]).add({y: 5}), true), '5 гадоў', '5 years = 5 years'); -}); - -test('suffix', function (assert) { - assert.equal(moment(30000).from(0), 'праз некалькі секунд', 'prefix'); - assert.equal(moment(0).from(30000), 'некалькі секунд таму', 'suffix'); -}); - -test('fromNow', function (assert) { - assert.equal(moment().add({s: 30}).fromNow(), 'праз некалькі секунд', 'in a few seconds'); - assert.equal(moment().add({d: 5}).fromNow(), 'праз 5 дзён', 'in 5 days'); - assert.equal(moment().add({m: 31}).fromNow(), 'праз 31 хвіліну', 'in 31 minutes = in 31 minutes'); - assert.equal(moment().subtract({m: 31}).fromNow(), '31 хвіліну таму', '31 minutes ago = 31 minutes ago'); -}); - -test('calendar day', function (assert) { - var a = moment().hours(12).minutes(0).seconds(0); - - assert.equal(moment(a).calendar(), 'Сёння ў 12:00', 'today at the same time'); - assert.equal(moment(a).add({m: 25}).calendar(), 'Сёння ў 12:25', 'Now plus 25 min'); - assert.equal(moment(a).add({h: 1}).calendar(), 'Сёння ў 13:00', 'Now plus 1 hour'); - assert.equal(moment(a).add({d: 1}).calendar(), 'Заўтра ў 12:00', 'tomorrow at the same time'); - assert.equal(moment(a).subtract({h: 1}).calendar(), 'Сёння ў 11:00', 'Now minus 1 hour'); - assert.equal(moment(a).subtract({d: 1}).calendar(), 'Учора ў 12:00', 'yesterday at the same time'); -}); - -test('calendar next week', function (assert) { - var i, m; - function makeFormat(d) { - return '[У] dddd [ў] LT'; - } - - for (i = 2; i < 7; i++) { - m = moment().add({d: i}); - assert.equal(m.calendar(), m.format(makeFormat(m)), 'Today + ' + i + ' days current time'); - m.hours(0).minutes(0).seconds(0).milliseconds(0); - assert.equal(m.calendar(), m.format(makeFormat(m)), 'Today + ' + i + ' days beginning of day'); - m.hours(23).minutes(59).seconds(59).milliseconds(999); - assert.equal(m.calendar(), m.format(makeFormat(m)), 'Today + ' + i + ' days end of day'); - } -}); - -test('calendar last week', function (assert) { - var i, m; - - function makeFormat(d) { - switch (d.day()) { - case 0: - case 3: - case 5: - case 6: - return '[У мінулую] dddd [ў] LT'; - case 1: - case 2: - case 4: - return '[У мінулы] dddd [ў] LT'; - } - } - - for (i = 2; i < 7; i++) { - m = moment().subtract({d: i}); - assert.equal(m.calendar(), m.format(makeFormat(m)), 'Today - ' + i + ' days current time'); - m.hours(0).minutes(0).seconds(0).milliseconds(0); - assert.equal(m.calendar(), m.format(makeFormat(m)), 'Today - ' + i + ' days beginning of day'); - m.hours(23).minutes(59).seconds(59).milliseconds(999); - assert.equal(m.calendar(), m.format(makeFormat(m)), 'Today - ' + i + ' days end of day'); - } -}); - -test('calendar all else', function (assert) { - var weeksAgo = moment().subtract({w: 1}), - weeksFromNow = moment().add({w: 1}); - - assert.equal(weeksAgo.calendar(), weeksAgo.format('L'), '1 week ago'); - assert.equal(weeksFromNow.calendar(), weeksFromNow.format('L'), 'in 1 week'); - - weeksAgo = moment().subtract({w: 2}); - weeksFromNow = moment().add({w: 2}); - - assert.equal(weeksAgo.calendar(), weeksAgo.format('L'), '2 weeks ago'); - assert.equal(weeksFromNow.calendar(), weeksFromNow.format('L'), 'in 2 weeks'); -}); - -test('weeks year starting sunday formatted', function (assert) { - assert.equal(moment([2011, 11, 26]).format('w ww wo'), '1 01 1-ы', 'Dec 26 2011 should be week 1'); - assert.equal(moment([2012, 0, 1]).format('w ww wo'), '1 01 1-ы', 'Jan 1 2012 should be week 1'); - assert.equal(moment([2012, 0, 2]).format('w ww wo'), '2 02 2-і', 'Jan 2 2012 should be week 2'); - assert.equal(moment([2012, 0, 8]).format('w ww wo'), '2 02 2-і', 'Jan 8 2012 should be week 2'); - assert.equal(moment([2012, 0, 9]).format('w ww wo'), '3 03 3-і', 'Jan 9 2012 should be week 3'); -}); - -}))); - - -;(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' - && typeof require === 'function' ? factory(require('../../moment')) : - typeof define === 'function' && define.amd ? define(['../../moment'], factory) : - factory(global.moment) -}(this, (function (moment) { 'use strict'; - -function each(array, callback) { - var i; - for (i = 0; i < array.length; i++) { - callback(array[i], i, array); - } -} - -function objectKeys(obj) { - if (Object.keys) { - return Object.keys(obj); - } else { - // IE8 - var res = [], i; - for (i in obj) { - if (obj.hasOwnProperty(i)) { - res.push(i); - } - } - return res; - } -} - -// Pick the first defined of two or three arguments. - -function defineCommonLocaleTests(locale, options) { - test('lenient day of month ordinal parsing', function (assert) { - var i, ordinalStr, testMoment; - for (i = 1; i <= 31; ++i) { - ordinalStr = moment([2014, 0, i]).format('YYYY MM Do'); - testMoment = moment(ordinalStr, 'YYYY MM Do'); - assert.equal(testMoment.year(), 2014, - 'lenient day of month ordinal parsing ' + i + ' year check'); - assert.equal(testMoment.month(), 0, - 'lenient day of month ordinal parsing ' + i + ' month check'); - assert.equal(testMoment.date(), i, - 'lenient day of month ordinal parsing ' + i + ' date check'); - } - }); - - test('lenient day of month ordinal parsing of number', function (assert) { - var i, testMoment; - for (i = 1; i <= 31; ++i) { - testMoment = moment('2014 01 ' + i, 'YYYY MM Do'); - assert.equal(testMoment.year(), 2014, - 'lenient day of month ordinal parsing of number ' + i + ' year check'); - assert.equal(testMoment.month(), 0, - 'lenient day of month ordinal parsing of number ' + i + ' month check'); - assert.equal(testMoment.date(), i, - 'lenient day of month ordinal parsing of number ' + i + ' date check'); - } - }); - - test('strict day of month ordinal parsing', function (assert) { - var i, ordinalStr, testMoment; - for (i = 1; i <= 31; ++i) { - ordinalStr = moment([2014, 0, i]).format('YYYY MM Do'); - testMoment = moment(ordinalStr, 'YYYY MM Do', true); - assert.ok(testMoment.isValid(), 'strict day of month ordinal parsing ' + i); - } - }); - - test('meridiem invariant', function (assert) { - var h, m, t1, t2; - for (h = 0; h < 24; ++h) { - for (m = 0; m < 60; m += 15) { - t1 = moment.utc([2000, 0, 1, h, m]); - t2 = moment.utc(t1.format('A h:mm'), 'A h:mm'); - assert.equal(t2.format('HH:mm'), t1.format('HH:mm'), - 'meridiem at ' + t1.format('HH:mm')); - } - } - }); - - test('date format correctness', function (assert) { - var data, tokens; - data = moment.localeData()._longDateFormat; - tokens = objectKeys(data); - each(tokens, function (srchToken) { - // Check each format string to make sure it does not contain any - // tokens that need to be expanded. - each(tokens, function (baseToken) { - // strip escaped sequences - var format = data[baseToken].replace(/(\[[^\]]*\])/g, ''); - assert.equal(false, !!~format.indexOf(srchToken), - 'contains ' + srchToken + ' in ' + baseToken); - }); - }); - }); - - test('month parsing correctness', function (assert) { - var i, m; - - if (locale === 'tr') { - // I can't fix it :( - expect(0); - return; - } - function tester(format) { - var r; - r = moment(m.format(format), format); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format); - r = moment(m.format(format).toLocaleUpperCase(), format); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' upper'); - r = moment(m.format(format).toLocaleLowerCase(), format); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' lower'); - - r = moment(m.format(format), format, true); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' strict'); - r = moment(m.format(format).toLocaleUpperCase(), format, true); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' upper strict'); - r = moment(m.format(format).toLocaleLowerCase(), format, true); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' lower strict'); - } - - for (i = 0; i < 12; ++i) { - m = moment([2015, i, 15, 18]); - tester('MMM'); - tester('MMM.'); - tester('MMMM'); - tester('MMMM.'); - } - }); - - test('weekday parsing correctness', function (assert) { - var i, m; - - if (locale === 'tr' || locale === 'az' || locale === 'ro') { - // tr, az: There is a lower-case letter (ı), that converted to - // upper then lower changes to i - // ro: there is the letter ț which behaves weird under IE8 - expect(0); - return; - } - function tester(format) { - var r, baseMsg = 'weekday ' + m.weekday() + ' fmt ' + format + ' ' + m.toISOString(); - r = moment(m.format(format), format); - assert.equal(r.weekday(), m.weekday(), baseMsg); - r = moment(m.format(format).toLocaleUpperCase(), format); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' upper'); - r = moment(m.format(format).toLocaleLowerCase(), format); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' lower'); - - r = moment(m.format(format), format, true); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' strict'); - r = moment(m.format(format).toLocaleUpperCase(), format, true); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' upper strict'); - r = moment(m.format(format).toLocaleLowerCase(), format, true); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' lower strict'); - } - - for (i = 0; i < 7; ++i) { - m = moment.utc([2015, 0, i + 1, 18]); - tester('dd'); - tester('ddd'); - tester('dddd'); - } - }); - - test('valid localeData', function (assert) { - assert.equal(moment().localeData().months().length, 12, 'months should return 12 months'); - assert.equal(moment().localeData().monthsShort().length, 12, 'monthsShort should return 12 months'); - assert.equal(moment().localeData().weekdays().length, 7, 'weekdays should return 7 days'); - assert.equal(moment().localeData().weekdaysShort().length, 7, 'weekdaysShort should return 7 days'); - assert.equal(moment().localeData().weekdaysMin().length, 7, 'monthsShort should return 7 days'); - }); -} - -function setupDeprecationHandler(test, moment$$1, scope) { - test._expectedDeprecations = null; - test._observedDeprecations = null; - test._oldSupress = moment$$1.suppressDeprecationWarnings; - moment$$1.suppressDeprecationWarnings = true; - test.expectedDeprecations = function () { - test._expectedDeprecations = arguments; - test._observedDeprecations = []; - }; - moment$$1.deprecationHandler = function (name, msg) { - var deprecationId = matchedDeprecation(name, msg, test._expectedDeprecations); - if (deprecationId === -1) { - throw new Error('Unexpected deprecation thrown name=' + - name + ' msg=' + msg); - } - test._observedDeprecations[deprecationId] = 1; - }; -} - -function teardownDeprecationHandler(test, moment$$1, scope) { - moment$$1.suppressDeprecationWarnings = test._oldSupress; - - if (test._expectedDeprecations != null) { - var missedDeprecations = []; - each(test._expectedDeprecations, function (deprecationPattern, id) { - if (test._observedDeprecations[id] !== 1) { - missedDeprecations.push(deprecationPattern); - } - }); - if (missedDeprecations.length !== 0) { - throw new Error('Expected deprecation warnings did not happen: ' + - missedDeprecations.join(' ')); - } - } -} - -function matchedDeprecation(name, msg, deprecations) { - if (deprecations == null) { - return -1; - } - for (var i = 0; i < deprecations.length; ++i) { - if (name != null && name === deprecations[i]) { - return i; - } - if (msg != null && msg.substring(0, deprecations[i].length) === deprecations[i]) { - return i; - } - } - return -1; -} - -/*global QUnit:false*/ - -var test = QUnit.test; - -var expect = QUnit.expect; - - - -function localeModule (name, lifecycle) { - QUnit.module('locale:' + name, { - setup : function () { - moment.locale(name); - moment.createFromInputFallback = function (config) { - throw new Error('input not handled by moment: ' + config._i); - }; - setupDeprecationHandler(test, moment, 'locale'); - if (lifecycle && lifecycle.setup) { - lifecycle.setup(); - } - }, - teardown : function () { - moment.locale('en'); - teardownDeprecationHandler(test, moment, 'locale'); - if (lifecycle && lifecycle.teardown) { - lifecycle.teardown(); - } - } - }); - defineCommonLocaleTests(name, -1, -1); -} - -localeModule('bg'); - -test('parse', function (assert) { - var tests = 'януари янр_февруари фев_март мар_април апр_май май_юни юни_юли юли_август авг_септември сеп_октомври окт_ноември ное_декември дек'.split('_'), i; - function equalTest(input, mmm, i) { - assert.equal(moment(input, mmm).month(), i, input + ' should be month ' + (i + 1)); - } - for (i = 0; i < 12; i++) { - tests[i] = tests[i].split(' '); - equalTest(tests[i][0], 'MMM', i); - equalTest(tests[i][1], 'MMM', i); - equalTest(tests[i][0], 'MMMM', i); - equalTest(tests[i][1], 'MMMM', i); - equalTest(tests[i][0].toLocaleLowerCase(), 'MMMM', i); - equalTest(tests[i][1].toLocaleLowerCase(), 'MMMM', i); - equalTest(tests[i][0].toLocaleUpperCase(), 'MMMM', i); - equalTest(tests[i][1].toLocaleUpperCase(), 'MMMM', i); - } -}); - -test('format', function (assert) { - var a = [ - ['dddd, MMMM Do YYYY, H:mm:ss', 'неделя, февруари 14-ти 2010, 15:25:50'], - ['ddd, hA', 'нед, 3PM'], - ['M Mo MM MMMM MMM', '2 2-ри 02 февруари фев'], - ['YYYY YY', '2010 10'], - ['D Do DD', '14 14-ти 14'], - ['d do dddd ddd dd', '0 0-ев неделя нед нд'], - ['DDD DDDo DDDD', '45 45-ти 045'], - ['w wo ww', '7 7-ми 07'], - ['h hh', '3 03'], - ['H HH', '15 15'], - ['m mm', '25 25'], - ['s ss', '50 50'], - ['a A', 'pm PM'], - ['[the] DDDo [day of the year]', 'the 45-ти day of the year'], - ['LT', '15:25'], - ['LTS', '15:25:50'], - ['L', '14.02.2010'], - ['LL', '14 февруари 2010'], - ['LLL', '14 февруари 2010 15:25'], - ['LLLL', 'неделя, 14 февруари 2010 15:25'], - ['l', '14.2.2010'], - ['ll', '14 фев 2010'], - ['lll', '14 фев 2010 15:25'], - ['llll', 'нед, 14 фев 2010 15:25'] - ], - b = moment(new Date(2010, 1, 14, 15, 25, 50, 125)), - i; - for (i = 0; i < a.length; i++) { - assert.equal(b.format(a[i][0]), a[i][1], a[i][0] + ' ---> ' + a[i][1]); - } -}); - -test('format ordinal', function (assert) { - assert.equal(moment([2011, 0, 1]).format('DDDo'), '1-ви', '1-ви'); - assert.equal(moment([2011, 0, 2]).format('DDDo'), '2-ри', '2-ри'); - assert.equal(moment([2011, 0, 3]).format('DDDo'), '3-ти', '3-ти'); - assert.equal(moment([2011, 0, 4]).format('DDDo'), '4-ти', '4-ти'); - assert.equal(moment([2011, 0, 5]).format('DDDo'), '5-ти', '5-ти'); - assert.equal(moment([2011, 0, 6]).format('DDDo'), '6-ти', '6-ти'); - assert.equal(moment([2011, 0, 7]).format('DDDo'), '7-ми', '7-ми'); - assert.equal(moment([2011, 0, 8]).format('DDDo'), '8-ми', '8-ми'); - assert.equal(moment([2011, 0, 9]).format('DDDo'), '9-ти', '9-ти'); - assert.equal(moment([2011, 0, 10]).format('DDDo'), '10-ти', '10-ти'); - - assert.equal(moment([2011, 0, 11]).format('DDDo'), '11-ти', '11-ти'); - assert.equal(moment([2011, 0, 12]).format('DDDo'), '12-ти', '12-ти'); - assert.equal(moment([2011, 0, 13]).format('DDDo'), '13-ти', '13-ти'); - assert.equal(moment([2011, 0, 14]).format('DDDo'), '14-ти', '14-ти'); - assert.equal(moment([2011, 0, 15]).format('DDDo'), '15-ти', '15-ти'); - assert.equal(moment([2011, 0, 16]).format('DDDo'), '16-ти', '16-ти'); - assert.equal(moment([2011, 0, 17]).format('DDDo'), '17-ти', '17-ти'); - assert.equal(moment([2011, 0, 18]).format('DDDo'), '18-ти', '18-ти'); - assert.equal(moment([2011, 0, 19]).format('DDDo'), '19-ти', '19-ти'); - assert.equal(moment([2011, 0, 20]).format('DDDo'), '20-ти', '20-ти'); - - assert.equal(moment([2011, 0, 21]).format('DDDo'), '21-ви', '21-ви'); - assert.equal(moment([2011, 0, 22]).format('DDDo'), '22-ри', '22-ри'); - assert.equal(moment([2011, 0, 23]).format('DDDo'), '23-ти', '23-ти'); - assert.equal(moment([2011, 0, 24]).format('DDDo'), '24-ти', '24-ти'); - assert.equal(moment([2011, 0, 25]).format('DDDo'), '25-ти', '25-ти'); - assert.equal(moment([2011, 0, 26]).format('DDDo'), '26-ти', '26-ти'); - assert.equal(moment([2011, 0, 27]).format('DDDo'), '27-ми', '27-ми'); - assert.equal(moment([2011, 0, 28]).format('DDDo'), '28-ми', '28-ми'); - assert.equal(moment([2011, 0, 29]).format('DDDo'), '29-ти', '29-ти'); - assert.equal(moment([2011, 0, 30]).format('DDDo'), '30-ти', '30-ти'); - - assert.equal(moment([2011, 0, 31]).format('DDDo'), '31-ви', '31-ви'); -}); - -test('format month', function (assert) { - var expected = 'януари янр_февруари фев_март мар_април апр_май май_юни юни_юли юли_август авг_септември сеп_октомври окт_ноември ное_декември дек'.split('_'), i; - for (i = 0; i < expected.length; i++) { - assert.equal(moment([2011, i, 1]).format('MMMM MMM'), expected[i], expected[i]); - } -}); - -test('format week', function (assert) { - var expected = 'неделя нед нд_понеделник пон пн_вторник вто вт_сряда сря ср_четвъртък чет чт_петък пет пт_събота съб сб'.split('_'), i; - for (i = 0; i < expected.length; i++) { - assert.equal(moment([2011, 0, 2 + i]).format('dddd ddd dd'), expected[i], expected[i]); - } -}); - -test('from', function (assert) { - var start = moment([2007, 1, 28]); - assert.equal(start.from(moment([2007, 1, 28]).add({s: 44}), true), 'няколко секунди', '44 seconds = a few seconds'); - assert.equal(start.from(moment([2007, 1, 28]).add({s: 45}), true), 'минута', '45 seconds = a minute'); - assert.equal(start.from(moment([2007, 1, 28]).add({s: 89}), true), 'минута', '89 seconds = a minute'); - assert.equal(start.from(moment([2007, 1, 28]).add({s: 90}), true), '2 минути', '90 seconds = 2 minutes'); - assert.equal(start.from(moment([2007, 1, 28]).add({m: 44}), true), '44 минути', '44 minutes = 44 minutes'); - assert.equal(start.from(moment([2007, 1, 28]).add({m: 45}), true), 'час', '45 minutes = an hour'); - assert.equal(start.from(moment([2007, 1, 28]).add({m: 89}), true), 'час', '89 minutes = an hour'); - assert.equal(start.from(moment([2007, 1, 28]).add({m: 90}), true), '2 часа', '90 minutes = 2 hours'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 5}), true), '5 часа', '5 hours = 5 hours'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 21}), true), '21 часа', '21 hours = 21 hours'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 22}), true), 'ден', '22 hours = a day'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 35}), true), 'ден', '35 hours = a day'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 36}), true), '2 дни', '36 hours = 2 days'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 1}), true), 'ден', '1 day = a day'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 5}), true), '5 дни', '5 days = 5 days'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 25}), true), '25 дни', '25 days = 25 days'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 26}), true), 'месец', '26 days = a month'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 30}), true), 'месец', '30 days = a month'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 43}), true), 'месец', '43 days = a month'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 46}), true), '2 месеца', '46 days = 2 months'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 74}), true), '2 месеца', '75 days = 2 months'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 76}), true), '3 месеца', '76 days = 3 months'); - assert.equal(start.from(moment([2007, 1, 28]).add({M: 1}), true), 'месец', '1 month = a month'); - assert.equal(start.from(moment([2007, 1, 28]).add({M: 5}), true), '5 месеца', '5 months = 5 months'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 345}), true), 'година', '345 days = a year'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 548}), true), '2 години', '548 days = 2 years'); - assert.equal(start.from(moment([2007, 1, 28]).add({y: 1}), true), 'година', '1 year = a year'); - assert.equal(start.from(moment([2007, 1, 28]).add({y: 5}), true), '5 години', '5 years = 5 years'); -}); - -test('suffix', function (assert) { - assert.equal(moment(30000).from(0), 'след няколко секунди', 'prefix'); - assert.equal(moment(0).from(30000), 'преди няколко секунди', 'suffix'); -}); - -test('now from now', function (assert) { - assert.equal(moment().fromNow(), 'преди няколко секунди', 'now from now should display as in the past'); -}); - -test('fromNow', function (assert) { - assert.equal(moment().add({s: 30}).fromNow(), 'след няколко секунди', 'in a few seconds'); - assert.equal(moment().add({d: 5}).fromNow(), 'след 5 дни', 'in 5 days'); -}); - -test('calendar day', function (assert) { - var a = moment().hours(12).minutes(0).seconds(0); - - assert.equal(moment(a).calendar(), 'Днес в 12:00', 'today at the same time'); - assert.equal(moment(a).add({m: 25}).calendar(), 'Днес в 12:25', 'Now plus 25 min'); - assert.equal(moment(a).add({h: 1}).calendar(), 'Днес в 13:00', 'Now plus 1 hour'); - assert.equal(moment(a).add({d: 1}).calendar(), 'Утре в 12:00', 'tomorrow at the same time'); - assert.equal(moment(a).subtract({h: 1}).calendar(), 'Днес в 11:00', 'Now minus 1 hour'); - assert.equal(moment(a).subtract({d: 1}).calendar(), 'Вчера в 12:00', 'yesterday at the same time'); -}); - -test('calendar next week', function (assert) { - var i, m; - for (i = 2; i < 7; i++) { - m = moment().add({d: i}); - assert.equal(m.calendar(), m.format('dddd [в] LT'), 'Today + ' + i + ' days current time'); - m.hours(0).minutes(0).seconds(0).milliseconds(0); - assert.equal(m.calendar(), m.format('dddd [в] LT'), 'Today + ' + i + ' days beginning of day'); - m.hours(23).minutes(59).seconds(59).milliseconds(999); - assert.equal(m.calendar(), m.format('dddd [в] LT'), 'Today + ' + i + ' days end of day'); - } -}); - -test('calendar last week', function (assert) { - var i, m; - - function makeFormat(d) { - switch (d.day()) { - case 0: - case 3: - case 6: - return '[В изминалата] dddd [в] LT'; - case 1: - case 2: - case 4: - case 5: - return '[В изминалия] dddd [в] LT'; - } - } - - for (i = 2; i < 7; i++) { - m = moment().subtract({d: i}); - assert.equal(m.calendar(), m.format(makeFormat(m)), 'Today - ' + i + ' days current time'); - m.hours(0).minutes(0).seconds(0).milliseconds(0); - assert.equal(m.calendar(), m.format(makeFormat(m)), 'Today - ' + i + ' days beginning of day'); - m.hours(23).minutes(59).seconds(59).milliseconds(999); - assert.equal(m.calendar(), m.format(makeFormat(m)), 'Today - ' + i + ' days end of day'); - } -}); - -test('calendar all else', function (assert) { - var weeksAgo = moment().subtract({w: 1}), - weeksFromNow = moment().add({w: 1}); - - assert.equal(weeksAgo.calendar(), weeksAgo.format('L'), '1 week ago'); - assert.equal(weeksFromNow.calendar(), weeksFromNow.format('L'), 'in 1 week'); - - weeksAgo = moment().subtract({w: 2}); - weeksFromNow = moment().add({w: 2}); - - assert.equal(weeksAgo.calendar(), weeksAgo.format('L'), '2 weeks ago'); - assert.equal(weeksFromNow.calendar(), weeksFromNow.format('L'), 'in 2 weeks'); -}); - -test('weeks year starting sunday formatted', function (assert) { - assert.equal(moment([2011, 11, 26]).format('w ww wo'), '1 01 1-ви', 'Dec 26 2011 should be week 1'); - assert.equal(moment([2012, 0, 1]).format('w ww wo'), '1 01 1-ви', 'Jan 1 2012 should be week 1'); - assert.equal(moment([2012, 0, 2]).format('w ww wo'), '2 02 2-ри', 'Jan 2 2012 should be week 2'); - assert.equal(moment([2012, 0, 8]).format('w ww wo'), '2 02 2-ри', 'Jan 8 2012 should be week 2'); - assert.equal(moment([2012, 0, 9]).format('w ww wo'), '3 03 3-ти', 'Jan 9 2012 should be week 3'); -}); - -}))); - - -;(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' - && typeof require === 'function' ? factory(require('../../moment')) : - typeof define === 'function' && define.amd ? define(['../../moment'], factory) : - factory(global.moment) -}(this, (function (moment) { 'use strict'; - -function each(array, callback) { - var i; - for (i = 0; i < array.length; i++) { - callback(array[i], i, array); - } -} - -function objectKeys(obj) { - if (Object.keys) { - return Object.keys(obj); - } else { - // IE8 - var res = [], i; - for (i in obj) { - if (obj.hasOwnProperty(i)) { - res.push(i); - } - } - return res; - } -} - -// Pick the first defined of two or three arguments. - -function defineCommonLocaleTests(locale, options) { - test('lenient day of month ordinal parsing', function (assert) { - var i, ordinalStr, testMoment; - for (i = 1; i <= 31; ++i) { - ordinalStr = moment([2014, 0, i]).format('YYYY MM Do'); - testMoment = moment(ordinalStr, 'YYYY MM Do'); - assert.equal(testMoment.year(), 2014, - 'lenient day of month ordinal parsing ' + i + ' year check'); - assert.equal(testMoment.month(), 0, - 'lenient day of month ordinal parsing ' + i + ' month check'); - assert.equal(testMoment.date(), i, - 'lenient day of month ordinal parsing ' + i + ' date check'); - } - }); - - test('lenient day of month ordinal parsing of number', function (assert) { - var i, testMoment; - for (i = 1; i <= 31; ++i) { - testMoment = moment('2014 01 ' + i, 'YYYY MM Do'); - assert.equal(testMoment.year(), 2014, - 'lenient day of month ordinal parsing of number ' + i + ' year check'); - assert.equal(testMoment.month(), 0, - 'lenient day of month ordinal parsing of number ' + i + ' month check'); - assert.equal(testMoment.date(), i, - 'lenient day of month ordinal parsing of number ' + i + ' date check'); - } - }); - - test('strict day of month ordinal parsing', function (assert) { - var i, ordinalStr, testMoment; - for (i = 1; i <= 31; ++i) { - ordinalStr = moment([2014, 0, i]).format('YYYY MM Do'); - testMoment = moment(ordinalStr, 'YYYY MM Do', true); - assert.ok(testMoment.isValid(), 'strict day of month ordinal parsing ' + i); - } - }); - - test('meridiem invariant', function (assert) { - var h, m, t1, t2; - for (h = 0; h < 24; ++h) { - for (m = 0; m < 60; m += 15) { - t1 = moment.utc([2000, 0, 1, h, m]); - t2 = moment.utc(t1.format('A h:mm'), 'A h:mm'); - assert.equal(t2.format('HH:mm'), t1.format('HH:mm'), - 'meridiem at ' + t1.format('HH:mm')); - } - } - }); - - test('date format correctness', function (assert) { - var data, tokens; - data = moment.localeData()._longDateFormat; - tokens = objectKeys(data); - each(tokens, function (srchToken) { - // Check each format string to make sure it does not contain any - // tokens that need to be expanded. - each(tokens, function (baseToken) { - // strip escaped sequences - var format = data[baseToken].replace(/(\[[^\]]*\])/g, ''); - assert.equal(false, !!~format.indexOf(srchToken), - 'contains ' + srchToken + ' in ' + baseToken); - }); - }); - }); - - test('month parsing correctness', function (assert) { - var i, m; - - if (locale === 'tr') { - // I can't fix it :( - expect(0); - return; - } - function tester(format) { - var r; - r = moment(m.format(format), format); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format); - r = moment(m.format(format).toLocaleUpperCase(), format); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' upper'); - r = moment(m.format(format).toLocaleLowerCase(), format); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' lower'); - - r = moment(m.format(format), format, true); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' strict'); - r = moment(m.format(format).toLocaleUpperCase(), format, true); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' upper strict'); - r = moment(m.format(format).toLocaleLowerCase(), format, true); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' lower strict'); - } - - for (i = 0; i < 12; ++i) { - m = moment([2015, i, 15, 18]); - tester('MMM'); - tester('MMM.'); - tester('MMMM'); - tester('MMMM.'); - } - }); - - test('weekday parsing correctness', function (assert) { - var i, m; - - if (locale === 'tr' || locale === 'az' || locale === 'ro') { - // tr, az: There is a lower-case letter (ı), that converted to - // upper then lower changes to i - // ro: there is the letter ț which behaves weird under IE8 - expect(0); - return; - } - function tester(format) { - var r, baseMsg = 'weekday ' + m.weekday() + ' fmt ' + format + ' ' + m.toISOString(); - r = moment(m.format(format), format); - assert.equal(r.weekday(), m.weekday(), baseMsg); - r = moment(m.format(format).toLocaleUpperCase(), format); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' upper'); - r = moment(m.format(format).toLocaleLowerCase(), format); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' lower'); - - r = moment(m.format(format), format, true); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' strict'); - r = moment(m.format(format).toLocaleUpperCase(), format, true); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' upper strict'); - r = moment(m.format(format).toLocaleLowerCase(), format, true); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' lower strict'); - } - - for (i = 0; i < 7; ++i) { - m = moment.utc([2015, 0, i + 1, 18]); - tester('dd'); - tester('ddd'); - tester('dddd'); - } - }); - - test('valid localeData', function (assert) { - assert.equal(moment().localeData().months().length, 12, 'months should return 12 months'); - assert.equal(moment().localeData().monthsShort().length, 12, 'monthsShort should return 12 months'); - assert.equal(moment().localeData().weekdays().length, 7, 'weekdays should return 7 days'); - assert.equal(moment().localeData().weekdaysShort().length, 7, 'weekdaysShort should return 7 days'); - assert.equal(moment().localeData().weekdaysMin().length, 7, 'monthsShort should return 7 days'); - }); -} - -function setupDeprecationHandler(test, moment$$1, scope) { - test._expectedDeprecations = null; - test._observedDeprecations = null; - test._oldSupress = moment$$1.suppressDeprecationWarnings; - moment$$1.suppressDeprecationWarnings = true; - test.expectedDeprecations = function () { - test._expectedDeprecations = arguments; - test._observedDeprecations = []; - }; - moment$$1.deprecationHandler = function (name, msg) { - var deprecationId = matchedDeprecation(name, msg, test._expectedDeprecations); - if (deprecationId === -1) { - throw new Error('Unexpected deprecation thrown name=' + - name + ' msg=' + msg); - } - test._observedDeprecations[deprecationId] = 1; - }; -} - -function teardownDeprecationHandler(test, moment$$1, scope) { - moment$$1.suppressDeprecationWarnings = test._oldSupress; - - if (test._expectedDeprecations != null) { - var missedDeprecations = []; - each(test._expectedDeprecations, function (deprecationPattern, id) { - if (test._observedDeprecations[id] !== 1) { - missedDeprecations.push(deprecationPattern); - } - }); - if (missedDeprecations.length !== 0) { - throw new Error('Expected deprecation warnings did not happen: ' + - missedDeprecations.join(' ')); - } - } -} - -function matchedDeprecation(name, msg, deprecations) { - if (deprecations == null) { - return -1; - } - for (var i = 0; i < deprecations.length; ++i) { - if (name != null && name === deprecations[i]) { - return i; - } - if (msg != null && msg.substring(0, deprecations[i].length) === deprecations[i]) { - return i; - } - } - return -1; -} - -/*global QUnit:false*/ - -var test = QUnit.test; - -var expect = QUnit.expect; - - - -function localeModule (name, lifecycle) { - QUnit.module('locale:' + name, { - setup : function () { - moment.locale(name); - moment.createFromInputFallback = function (config) { - throw new Error('input not handled by moment: ' + config._i); - }; - setupDeprecationHandler(test, moment, 'locale'); - if (lifecycle && lifecycle.setup) { - lifecycle.setup(); - } - }, - teardown : function () { - moment.locale('en'); - teardownDeprecationHandler(test, moment, 'locale'); - if (lifecycle && lifecycle.teardown) { - lifecycle.teardown(); - } - } - }); - defineCommonLocaleTests(name, -1, -1); -} - -localeModule('bn'); - -test('parse', function (assert) { - var tests = 'জানুয়ারী জানু_ফেব্রুয়ারি ফেব_মার্চ মার্চ_এপ্রিল এপ্র_মে মে_জুন জুন_জুলাই জুল_আগস্ট আগ_সেপ্টেম্বর সেপ্ট_অক্টোবর অক্টো_নভেম্বর নভে_ডিসেম্বর ডিসে'.split('_'), i; - function equalTest(input, mmm, i) { - assert.equal(moment(input, mmm).month(), i, input + ' should be month ' + (i + 1)); - } - for (i = 0; i < 12; i++) { - tests[i] = tests[i].split(' '); - equalTest(tests[i][0], 'MMM', i); - equalTest(tests[i][1], 'MMM', i); - equalTest(tests[i][0], 'MMMM', i); - equalTest(tests[i][1], 'MMMM', i); - equalTest(tests[i][0].toLocaleLowerCase(), 'MMMM', i); - equalTest(tests[i][1].toLocaleLowerCase(), 'MMMM', i); - equalTest(tests[i][0].toLocaleUpperCase(), 'MMMM', i); - equalTest(tests[i][1].toLocaleUpperCase(), 'MMMM', i); - } -}); - -test('format', function (assert) { - var a = [ - ['dddd, Do MMMM YYYY, a h:mm:ss সময়', 'রবিবার, ১৪ ফেব্রুয়ারি ২০১০, দুপুর ৩:২৫:৫০ সময়'], - ['ddd, a h সময়', 'রবি, দুপুর ৩ সময়'], - ['M Mo MM MMMM MMM', '২ ২ ০২ ফেব্রুয়ারি ফেব'], - ['YYYY YY', '২০১০ ১০'], - ['D Do DD', '১৪ ১৪ ১৪'], - ['d do dddd ddd dd', '০ ০ রবিবার রবি রবি'], - ['DDD DDDo DDDD', '৪৫ ৪৫ ০৪৫'], - ['w wo ww', '৮ ৮ ০৮'], - ['h hh', '৩ ০৩'], - ['H HH', '১৫ ১৫'], - ['m mm', '২৫ ২৫'], - ['s ss', '৫০ ৫০'], - ['a A', 'দুপুর দুপুর'], - ['LT', 'দুপুর ৩:২৫ সময়'], - ['LTS', 'দুপুর ৩:২৫:৫০ সময়'], - ['L', '১৪/০২/২০১০'], - ['LL', '১৪ ফেব্রুয়ারি ২০১০'], - ['LLL', '১৪ ফেব্রুয়ারি ২০১০, দুপুর ৩:২৫ সময়'], - ['LLLL', 'রবিবার, ১৪ ফেব্রুয়ারি ২০১০, দুপুর ৩:২৫ সময়'], - ['l', '১৪/২/২০১০'], - ['ll', '১৪ ফেব ২০১০'], - ['lll', '১৪ ফেব ২০১০, দুপুর ৩:২৫ সময়'], - ['llll', 'রবি, ১৪ ফেব ২০১০, দুপুর ৩:২৫ সময়'] - ], - b = moment(new Date(2010, 1, 14, 15, 25, 50, 125)), - i; - for (i = 0; i < a.length; i++) { - assert.equal(b.format(a[i][0]), a[i][1], a[i][0] + ' ---> ' + a[i][1]); - } -}); - -test('format ordinal', function (assert) { - assert.equal(moment([2011, 0, 1]).format('DDDo'), '১', '১'); - assert.equal(moment([2011, 0, 2]).format('DDDo'), '২', '২'); - assert.equal(moment([2011, 0, 3]).format('DDDo'), '৩', '৩'); - assert.equal(moment([2011, 0, 4]).format('DDDo'), '৪', '৪'); - assert.equal(moment([2011, 0, 5]).format('DDDo'), '৫', '৫'); - assert.equal(moment([2011, 0, 6]).format('DDDo'), '৬', '৬'); - assert.equal(moment([2011, 0, 7]).format('DDDo'), '৭', '৭'); - assert.equal(moment([2011, 0, 8]).format('DDDo'), '৮', '৮'); - assert.equal(moment([2011, 0, 9]).format('DDDo'), '৯', '৯'); - assert.equal(moment([2011, 0, 10]).format('DDDo'), '১০', '১০'); - - assert.equal(moment([2011, 0, 11]).format('DDDo'), '১১', '১১'); - assert.equal(moment([2011, 0, 12]).format('DDDo'), '১২', '১২'); - assert.equal(moment([2011, 0, 13]).format('DDDo'), '১৩', '১৩'); - assert.equal(moment([2011, 0, 14]).format('DDDo'), '১৪', '১৪'); - assert.equal(moment([2011, 0, 15]).format('DDDo'), '১৫', '১৫'); - assert.equal(moment([2011, 0, 16]).format('DDDo'), '১৬', '১৬'); - assert.equal(moment([2011, 0, 17]).format('DDDo'), '১৭', '১৭'); - assert.equal(moment([2011, 0, 18]).format('DDDo'), '১৮', '১৮'); - assert.equal(moment([2011, 0, 19]).format('DDDo'), '১৯', '১৯'); - assert.equal(moment([2011, 0, 20]).format('DDDo'), '২০', '২০'); - - assert.equal(moment([2011, 0, 21]).format('DDDo'), '২১', '২১'); - assert.equal(moment([2011, 0, 22]).format('DDDo'), '২২', '২২'); - assert.equal(moment([2011, 0, 23]).format('DDDo'), '২৩', '২৩'); - assert.equal(moment([2011, 0, 24]).format('DDDo'), '২৪', '২৪'); - assert.equal(moment([2011, 0, 25]).format('DDDo'), '২৫', '২৫'); - assert.equal(moment([2011, 0, 26]).format('DDDo'), '২৬', '২৬'); - assert.equal(moment([2011, 0, 27]).format('DDDo'), '২৭', '২৭'); - assert.equal(moment([2011, 0, 28]).format('DDDo'), '২৮', '२৮'); - assert.equal(moment([2011, 0, 29]).format('DDDo'), '২৯', '২৯'); - assert.equal(moment([2011, 0, 30]).format('DDDo'), '৩০', '৩০'); - - assert.equal(moment([2011, 0, 31]).format('DDDo'), '৩১', '৩১'); -}); - -test('format month', function (assert) { - var expected = 'জানুয়ারী জানু_ফেব্রুয়ারি ফেব_মার্চ মার্চ_এপ্রিল এপ্র_মে মে_জুন জুন_জুলাই জুল_আগস্ট আগ_সেপ্টেম্বর সেপ্ট_অক্টোবর অক্টো_নভেম্বর নভে_ডিসেম্বর ডিসে'.split('_'), i; - for (i = 0; i < expected.length; i++) { - assert.equal(moment([2011, i, 1]).format('MMMM MMM'), expected[i], expected[i]); - } -}); - -test('format week', function (assert) { - var expected = 'রবিবার রবি রবি_সোমবার সোম সোম_মঙ্গলবার মঙ্গল মঙ্গ_বুধবার বুধ বুধ_বৃহস্পতিবার বৃহস্পতি বৃহঃ_শুক্রবার শুক্র শুক্র_শনিবার শনি শনি'.split('_'), i; - for (i = 0; i < expected.length; i++) { - assert.equal(moment([2011, 0, 2 + i]).format('dddd ddd dd'), expected[i], expected[i]); - } -}); - -test('from', function (assert) { - var start = moment([2007, 1, 28]); - assert.equal(start.from(moment([2007, 1, 28]).add({s: 44}), true), 'কয়েক সেকেন্ড', '44 seconds = a few seconds'); - assert.equal(start.from(moment([2007, 1, 28]).add({s: 45}), true), 'এক মিনিট', '45 seconds = a minute'); - assert.equal(start.from(moment([2007, 1, 28]).add({s: 89}), true), 'এক মিনিট', '89 seconds = a minute'); - assert.equal(start.from(moment([2007, 1, 28]).add({s: 90}), true), '২ মিনিট', '90 seconds = 2 minutes'); - assert.equal(start.from(moment([2007, 1, 28]).add({m: 44}), true), '৪৪ মিনিট', '44 minutes = 44 minutes'); - assert.equal(start.from(moment([2007, 1, 28]).add({m: 45}), true), 'এক ঘন্টা', '45 minutes = an hour'); - assert.equal(start.from(moment([2007, 1, 28]).add({m: 89}), true), 'এক ঘন্টা', '89 minutes = an hour'); - assert.equal(start.from(moment([2007, 1, 28]).add({m: 90}), true), '২ ঘন্টা', '90 minutes = 2 hours'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 5}), true), '৫ ঘন্টা', '5 hours = 5 hours'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 21}), true), '২১ ঘন্টা', '21 hours = 21 hours'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 22}), true), 'এক দিন', '22 hours = a day'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 35}), true), 'এক দিন', '35 hours = a day'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 36}), true), '২ দিন', '36 hours = 2 days'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 1}), true), 'এক দিন', '1 day = a day'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 5}), true), '৫ দিন', '5 days = 5 days'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 25}), true), '২৫ দিন', '25 days = 25 days'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 26}), true), 'এক মাস', '26 days = a month'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 30}), true), 'এক মাস', '30 days = a month'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 46}), true), '২ মাস', '46 days = 2 months'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 74}), true), '২ মাস', '75 days = 2 months'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 76}), true), '৩ মাস', '76 days = 3 months'); - assert.equal(start.from(moment([2007, 1, 28]).add({M: 1}), true), 'এক মাস', '1 month = a month'); - assert.equal(start.from(moment([2007, 1, 28]).add({M: 5}), true), '৫ মাস', '5 months = 5 months'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 345}), true), 'এক বছর', '345 days = a year'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 548}), true), '২ বছর', '548 days = 2 years'); - assert.equal(start.from(moment([2007, 1, 28]).add({y: 1}), true), 'এক বছর', '1 year = a year'); - assert.equal(start.from(moment([2007, 1, 28]).add({y: 5}), true), '৫ বছর', '5 years = 5 years'); -}); - -test('suffix', function (assert) { - assert.equal(moment(30000).from(0), 'কয়েক সেকেন্ড পরে', 'prefix'); - assert.equal(moment(0).from(30000), 'কয়েক সেকেন্ড আগে', 'suffix'); -}); - -test('now from now', function (assert) { - assert.equal(moment().fromNow(), 'কয়েক সেকেন্ড আগে', 'now from now should display as in the past'); -}); - -test('fromNow', function (assert) { - assert.equal(moment().add({s: 30}).fromNow(), 'কয়েক সেকেন্ড পরে', 'কয়েক সেকেন্ড পরে'); - assert.equal(moment().add({d: 5}).fromNow(), '৫ দিন পরে', '৫ দিন পরে'); -}); - -test('calendar day', function (assert) { - var a = moment().hours(12).minutes(0).seconds(0); - - assert.equal(moment(a).calendar(), 'আজ দুপুর ১২:০০ সময়', 'today at the same time'); - assert.equal(moment(a).add({m: 25}).calendar(), 'আজ দুপুর ১২:২৫ সময়', 'Now plus 25 min'); - assert.equal(moment(a).add({h: 3}).calendar(), 'আজ দুপুর ৩:০০ সময়', 'Now plus 3 hours'); - assert.equal(moment(a).add({d: 1}).calendar(), 'আগামীকাল দুপুর ১২:০০ সময়', 'tomorrow at the same time'); - assert.equal(moment(a).subtract({h: 1}).calendar(), 'আজ দুপুর ১১:০০ সময়', 'Now minus 1 hour'); - assert.equal(moment(a).subtract({d: 1}).calendar(), 'গতকাল দুপুর ১২:০০ সময়', 'yesterday at the same time'); -}); - -test('calendar next week', function (assert) { - var i, m; - for (i = 2; i < 7; i++) { - m = moment().add({d: i}); - assert.equal(m.calendar(), m.format('dddd[,] LT'), 'Today + ' + i + ' days current time'); - m.hours(0).minutes(0).seconds(0).milliseconds(0); - assert.equal(m.calendar(), m.format('dddd[,] LT'), 'Today + ' + i + ' days beginning of day'); - m.hours(23).minutes(59).seconds(59).milliseconds(999); - assert.equal(m.calendar(), m.format('dddd[,] LT'), 'Today + ' + i + ' days end of day'); - } -}); - -test('calendar last week', function (assert) { - var i, m; - - for (i = 2; i < 7; i++) { - m = moment().subtract({d: i}); - assert.equal(m.calendar(), m.format('[গত] dddd[,] LT'), 'Today - ' + i + ' days current time'); - m.hours(0).minutes(0).seconds(0).milliseconds(0); - assert.equal(m.calendar(), m.format('[গত] dddd[,] LT'), 'Today - ' + i + ' days beginning of day'); - m.hours(23).minutes(59).seconds(59).milliseconds(999); - assert.equal(m.calendar(), m.format('[গত] dddd[,] LT'), 'Today - ' + i + ' days end of day'); - } -}); - -test('calendar all else', function (assert) { - var weeksAgo = moment().subtract({w: 1}), - weeksFromNow = moment().add({w: 1}); - - assert.equal(weeksAgo.calendar(), weeksAgo.format('L'), '1 week ago'); - assert.equal(weeksFromNow.calendar(), weeksFromNow.format('L'), 'in 1 week'); - - weeksAgo = moment().subtract({w: 2}); - weeksFromNow = moment().add({w: 2}); - - assert.equal(weeksAgo.calendar(), weeksAgo.format('L'), '2 weeks ago'); - assert.equal(weeksFromNow.calendar(), weeksFromNow.format('L'), 'in 2 weeks'); -}); - -test('meridiem', function (assert) { - assert.equal(moment([2011, 2, 23, 2, 30]).format('a'), 'রাত', 'before dawn'); - assert.equal(moment([2011, 2, 23, 9, 30]).format('a'), 'সকাল', 'morning'); - assert.equal(moment([2011, 2, 23, 14, 30]).format('a'), 'দুপুর', 'during day'); - assert.equal(moment([2011, 2, 23, 17, 30]).format('a'), 'বিকাল', 'evening'); - assert.equal(moment([2011, 2, 23, 19, 30]).format('a'), 'বিকাল', 'late evening'); - assert.equal(moment([2011, 2, 23, 21, 20]).format('a'), 'রাত', 'night'); - - assert.equal(moment([2011, 2, 23, 2, 30]).format('A'), 'রাত', 'before dawn'); - assert.equal(moment([2011, 2, 23, 9, 30]).format('A'), 'সকাল', 'morning'); - assert.equal(moment([2011, 2, 23, 14, 30]).format('A'), 'দুপুর', ' during day'); - assert.equal(moment([2011, 2, 23, 17, 30]).format('A'), 'বিকাল', 'evening'); - assert.equal(moment([2011, 2, 23, 19, 30]).format('A'), 'বিকাল', 'late evening'); - assert.equal(moment([2011, 2, 23, 21, 20]).format('A'), 'রাত', 'night'); -}); - -test('weeks year starting sunday formatted', function (assert) { - assert.equal(moment([2012, 0, 1]).format('w ww wo'), '১ ০১ ১', 'Jan 1 2012 should be week 1'); - assert.equal(moment([2012, 0, 7]).format('w ww wo'), '১ ০১ ১', 'Jan 7 2012 should be week 1'); - assert.equal(moment([2012, 0, 8]).format('w ww wo'), '২ ০২ ২', 'Jan 8 2012 should be week 2'); - assert.equal(moment([2012, 0, 14]).format('w ww wo'), '২ ০২ ২', 'Jan 14 2012 should be week 2'); - assert.equal(moment([2012, 0, 15]).format('w ww wo'), '৩ ০৩ ৩', 'Jan 15 2012 should be week 3'); -}); - -}))); - - -;(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' - && typeof require === 'function' ? factory(require('../../moment')) : - typeof define === 'function' && define.amd ? define(['../../moment'], factory) : - factory(global.moment) -}(this, (function (moment) { 'use strict'; - -function each(array, callback) { - var i; - for (i = 0; i < array.length; i++) { - callback(array[i], i, array); - } -} - -function objectKeys(obj) { - if (Object.keys) { - return Object.keys(obj); - } else { - // IE8 - var res = [], i; - for (i in obj) { - if (obj.hasOwnProperty(i)) { - res.push(i); - } - } - return res; - } -} - -// Pick the first defined of two or three arguments. - -function defineCommonLocaleTests(locale, options) { - test('lenient day of month ordinal parsing', function (assert) { - var i, ordinalStr, testMoment; - for (i = 1; i <= 31; ++i) { - ordinalStr = moment([2014, 0, i]).format('YYYY MM Do'); - testMoment = moment(ordinalStr, 'YYYY MM Do'); - assert.equal(testMoment.year(), 2014, - 'lenient day of month ordinal parsing ' + i + ' year check'); - assert.equal(testMoment.month(), 0, - 'lenient day of month ordinal parsing ' + i + ' month check'); - assert.equal(testMoment.date(), i, - 'lenient day of month ordinal parsing ' + i + ' date check'); - } - }); - - test('lenient day of month ordinal parsing of number', function (assert) { - var i, testMoment; - for (i = 1; i <= 31; ++i) { - testMoment = moment('2014 01 ' + i, 'YYYY MM Do'); - assert.equal(testMoment.year(), 2014, - 'lenient day of month ordinal parsing of number ' + i + ' year check'); - assert.equal(testMoment.month(), 0, - 'lenient day of month ordinal parsing of number ' + i + ' month check'); - assert.equal(testMoment.date(), i, - 'lenient day of month ordinal parsing of number ' + i + ' date check'); - } - }); - - test('strict day of month ordinal parsing', function (assert) { - var i, ordinalStr, testMoment; - for (i = 1; i <= 31; ++i) { - ordinalStr = moment([2014, 0, i]).format('YYYY MM Do'); - testMoment = moment(ordinalStr, 'YYYY MM Do', true); - assert.ok(testMoment.isValid(), 'strict day of month ordinal parsing ' + i); - } - }); - - test('meridiem invariant', function (assert) { - var h, m, t1, t2; - for (h = 0; h < 24; ++h) { - for (m = 0; m < 60; m += 15) { - t1 = moment.utc([2000, 0, 1, h, m]); - t2 = moment.utc(t1.format('A h:mm'), 'A h:mm'); - assert.equal(t2.format('HH:mm'), t1.format('HH:mm'), - 'meridiem at ' + t1.format('HH:mm')); - } - } - }); - - test('date format correctness', function (assert) { - var data, tokens; - data = moment.localeData()._longDateFormat; - tokens = objectKeys(data); - each(tokens, function (srchToken) { - // Check each format string to make sure it does not contain any - // tokens that need to be expanded. - each(tokens, function (baseToken) { - // strip escaped sequences - var format = data[baseToken].replace(/(\[[^\]]*\])/g, ''); - assert.equal(false, !!~format.indexOf(srchToken), - 'contains ' + srchToken + ' in ' + baseToken); - }); - }); - }); - - test('month parsing correctness', function (assert) { - var i, m; - - if (locale === 'tr') { - // I can't fix it :( - expect(0); - return; - } - function tester(format) { - var r; - r = moment(m.format(format), format); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format); - r = moment(m.format(format).toLocaleUpperCase(), format); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' upper'); - r = moment(m.format(format).toLocaleLowerCase(), format); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' lower'); - - r = moment(m.format(format), format, true); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' strict'); - r = moment(m.format(format).toLocaleUpperCase(), format, true); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' upper strict'); - r = moment(m.format(format).toLocaleLowerCase(), format, true); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' lower strict'); - } - - for (i = 0; i < 12; ++i) { - m = moment([2015, i, 15, 18]); - tester('MMM'); - tester('MMM.'); - tester('MMMM'); - tester('MMMM.'); - } - }); - - test('weekday parsing correctness', function (assert) { - var i, m; - - if (locale === 'tr' || locale === 'az' || locale === 'ro') { - // tr, az: There is a lower-case letter (ı), that converted to - // upper then lower changes to i - // ro: there is the letter ț which behaves weird under IE8 - expect(0); - return; - } - function tester(format) { - var r, baseMsg = 'weekday ' + m.weekday() + ' fmt ' + format + ' ' + m.toISOString(); - r = moment(m.format(format), format); - assert.equal(r.weekday(), m.weekday(), baseMsg); - r = moment(m.format(format).toLocaleUpperCase(), format); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' upper'); - r = moment(m.format(format).toLocaleLowerCase(), format); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' lower'); - - r = moment(m.format(format), format, true); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' strict'); - r = moment(m.format(format).toLocaleUpperCase(), format, true); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' upper strict'); - r = moment(m.format(format).toLocaleLowerCase(), format, true); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' lower strict'); - } - - for (i = 0; i < 7; ++i) { - m = moment.utc([2015, 0, i + 1, 18]); - tester('dd'); - tester('ddd'); - tester('dddd'); - } - }); - - test('valid localeData', function (assert) { - assert.equal(moment().localeData().months().length, 12, 'months should return 12 months'); - assert.equal(moment().localeData().monthsShort().length, 12, 'monthsShort should return 12 months'); - assert.equal(moment().localeData().weekdays().length, 7, 'weekdays should return 7 days'); - assert.equal(moment().localeData().weekdaysShort().length, 7, 'weekdaysShort should return 7 days'); - assert.equal(moment().localeData().weekdaysMin().length, 7, 'monthsShort should return 7 days'); - }); -} - -function setupDeprecationHandler(test, moment$$1, scope) { - test._expectedDeprecations = null; - test._observedDeprecations = null; - test._oldSupress = moment$$1.suppressDeprecationWarnings; - moment$$1.suppressDeprecationWarnings = true; - test.expectedDeprecations = function () { - test._expectedDeprecations = arguments; - test._observedDeprecations = []; - }; - moment$$1.deprecationHandler = function (name, msg) { - var deprecationId = matchedDeprecation(name, msg, test._expectedDeprecations); - if (deprecationId === -1) { - throw new Error('Unexpected deprecation thrown name=' + - name + ' msg=' + msg); - } - test._observedDeprecations[deprecationId] = 1; - }; -} - -function teardownDeprecationHandler(test, moment$$1, scope) { - moment$$1.suppressDeprecationWarnings = test._oldSupress; - - if (test._expectedDeprecations != null) { - var missedDeprecations = []; - each(test._expectedDeprecations, function (deprecationPattern, id) { - if (test._observedDeprecations[id] !== 1) { - missedDeprecations.push(deprecationPattern); - } - }); - if (missedDeprecations.length !== 0) { - throw new Error('Expected deprecation warnings did not happen: ' + - missedDeprecations.join(' ')); - } - } -} - -function matchedDeprecation(name, msg, deprecations) { - if (deprecations == null) { - return -1; - } - for (var i = 0; i < deprecations.length; ++i) { - if (name != null && name === deprecations[i]) { - return i; - } - if (msg != null && msg.substring(0, deprecations[i].length) === deprecations[i]) { - return i; - } - } - return -1; -} - -/*global QUnit:false*/ - -var test = QUnit.test; - -var expect = QUnit.expect; - - - -function localeModule (name, lifecycle) { - QUnit.module('locale:' + name, { - setup : function () { - moment.locale(name); - moment.createFromInputFallback = function (config) { - throw new Error('input not handled by moment: ' + config._i); - }; - setupDeprecationHandler(test, moment, 'locale'); - if (lifecycle && lifecycle.setup) { - lifecycle.setup(); - } - }, - teardown : function () { - moment.locale('en'); - teardownDeprecationHandler(test, moment, 'locale'); - if (lifecycle && lifecycle.teardown) { - lifecycle.teardown(); - } - } - }); - defineCommonLocaleTests(name, -1, -1); -} - -localeModule('bo'); - -test('parse', function (assert) { - var tests = 'ཟླ་བ་དང་པོ ཟླ་བ་དང་པོ._ཟླ་བ་གཉིས་པ ཟླ་བ་གཉིས་པ_ཟླ་བ་གསུམ་པ ཟླ་བ་གསུམ་པ_ཟླ་བ་བཞི་པ ཟླ་བ་བཞི་པ_ཟླ་བ་ལྔ་པ ཟླ་བ་ལྔ་པ_ཟླ་བ་དྲུག་པ ཟླ་བ་དྲུག་པ_ཟླ་བ་བདུན་པ ཟླ་བ་བདུན་པ_ཟླ་བ་བརྒྱད་པ ཟླ་བ་བརྒྱད་པ_ཟླ་བ་དགུ་པ ཟླ་བ་དགུ་པ_ཟླ་བ་བཅུ་པ ཟླ་བ་བཅུ་པ_ཟླ་བ་བཅུ་གཅིག་པ ཟླ་བ་བཅུ་གཅིག་པ_ཟླ་བ་བཅུ་གཉིས་པ ཟླ་བ་བཅུ་གཉིས་པ'.split('_'), i; - function equalTest(input, mmm, i) { - assert.equal(moment(input, mmm).month(), i, input + ' should be month ' + (i + 1)); - } - for (i = 0; i < 12; i++) { - tests[i] = tests[i].split(' '); - equalTest(tests[i][0], 'MMM', i); - equalTest(tests[i][1], 'MMM', i); - equalTest(tests[i][0], 'MMMM', i); - equalTest(tests[i][1], 'MMMM', i); - equalTest(tests[i][0].toLocaleLowerCase(), 'MMMM', i); - equalTest(tests[i][1].toLocaleLowerCase(), 'MMMM', i); - equalTest(tests[i][0].toLocaleUpperCase(), 'MMMM', i); - equalTest(tests[i][1].toLocaleUpperCase(), 'MMMM', i); - } -}); - -test('format', function (assert) { - var a = [ - ['dddd, Do MMMM YYYY, a h:mm:ss ལ་', 'གཟའ་ཉི་མ་, ༡༤ ཟླ་བ་གཉིས་པ ༢༠༡༠, ཉིན་གུང ༣:༢༥:༥༠ ལ་'], - ['ddd, a h ལ་', 'ཉི་མ་, ཉིན་གུང ༣ ལ་'], - ['M Mo MM MMMM MMM', '༢ ༢ ༠༢ ཟླ་བ་གཉིས་པ ཟླ་བ་གཉིས་པ'], - ['YYYY YY', '༢༠༡༠ ༡༠'], - ['D Do DD', '༡༤ ༡༤ ༡༤'], - ['d do dddd ddd dd', '༠ ༠ གཟའ་ཉི་མ་ ཉི་མ་ ཉི་མ་'], - ['DDD DDDo DDDD', '༤༥ ༤༥ ༠༤༥'], - ['w wo ww', '༨ ༨ ༠༨'], - ['h hh', '༣ ༠༣'], - ['H HH', '༡༥ ༡༥'], - ['m mm', '༢༥ ༢༥'], - ['s ss', '༥༠ ༥༠'], - ['a A', 'ཉིན་གུང ཉིན་གུང'], - ['LT', 'ཉིན་གུང ༣:༢༥'], - ['LTS', 'ཉིན་གུང ༣:༢༥:༥༠'], - ['L', '༡༤/༠༢/༢༠༡༠'], - ['LL', '༡༤ ཟླ་བ་གཉིས་པ ༢༠༡༠'], - ['LLL', '༡༤ ཟླ་བ་གཉིས་པ ༢༠༡༠, ཉིན་གུང ༣:༢༥'], - ['LLLL', 'གཟའ་ཉི་མ་, ༡༤ ཟླ་བ་གཉིས་པ ༢༠༡༠, ཉིན་གུང ༣:༢༥'], - ['l', '༡༤/༢/༢༠༡༠'], - ['ll', '༡༤ ཟླ་བ་གཉིས་པ ༢༠༡༠'], - ['lll', '༡༤ ཟླ་བ་གཉིས་པ ༢༠༡༠, ཉིན་གུང ༣:༢༥'], - ['llll', 'ཉི་མ་, ༡༤ ཟླ་བ་གཉིས་པ ༢༠༡༠, ཉིན་གུང ༣:༢༥'] - ], - b = moment(new Date(2010, 1, 14, 15, 25, 50, 125)), - i; - for (i = 0; i < a.length; i++) { - assert.equal(b.format(a[i][0]), a[i][1], a[i][0] + ' ---> ' + a[i][1]); - } -}); - -test('format ordinal', function (assert) { - assert.equal(moment([2011, 0, 1]).format('DDDo'), '༡', '༡'); - assert.equal(moment([2011, 0, 2]).format('DDDo'), '༢', '༢'); - assert.equal(moment([2011, 0, 3]).format('DDDo'), '༣', '༣'); - assert.equal(moment([2011, 0, 4]).format('DDDo'), '༤', '༤'); - assert.equal(moment([2011, 0, 5]).format('DDDo'), '༥', '༥'); - assert.equal(moment([2011, 0, 6]).format('DDDo'), '༦', '༦'); - assert.equal(moment([2011, 0, 7]).format('DDDo'), '༧', '༧'); - assert.equal(moment([2011, 0, 8]).format('DDDo'), '༨', '༨'); - assert.equal(moment([2011, 0, 9]).format('DDDo'), '༩', '༩'); - assert.equal(moment([2011, 0, 10]).format('DDDo'), '༡༠', '༡༠'); - - assert.equal(moment([2011, 0, 11]).format('DDDo'), '༡༡', '༡༡'); - assert.equal(moment([2011, 0, 12]).format('DDDo'), '༡༢', '༡༢'); - assert.equal(moment([2011, 0, 13]).format('DDDo'), '༡༣', '༡༣'); - assert.equal(moment([2011, 0, 14]).format('DDDo'), '༡༤', '༡༤'); - assert.equal(moment([2011, 0, 15]).format('DDDo'), '༡༥', '༡༥'); - assert.equal(moment([2011, 0, 16]).format('DDDo'), '༡༦', '༡༦'); - assert.equal(moment([2011, 0, 17]).format('DDDo'), '༡༧', '༡༧'); - assert.equal(moment([2011, 0, 18]).format('DDDo'), '༡༨', '༡༨'); - assert.equal(moment([2011, 0, 19]).format('DDDo'), '༡༩', '༡༩'); - assert.equal(moment([2011, 0, 20]).format('DDDo'), '༢༠', '༢༠'); - - assert.equal(moment([2011, 0, 21]).format('DDDo'), '༢༡', '༢༡'); - assert.equal(moment([2011, 0, 22]).format('DDDo'), '༢༢', '༢༢'); - assert.equal(moment([2011, 0, 23]).format('DDDo'), '༢༣', '༢༣'); - assert.equal(moment([2011, 0, 24]).format('DDDo'), '༢༤', '༢༤'); - assert.equal(moment([2011, 0, 25]).format('DDDo'), '༢༥', '༢༥'); - assert.equal(moment([2011, 0, 26]).format('DDDo'), '༢༦', '༢༦'); - assert.equal(moment([2011, 0, 27]).format('DDDo'), '༢༧', '༢༧'); - assert.equal(moment([2011, 0, 28]).format('DDDo'), '༢༨', '༢༨'); - assert.equal(moment([2011, 0, 29]).format('DDDo'), '༢༩', '༢༩'); - assert.equal(moment([2011, 0, 30]).format('DDDo'), '༣༠', '༣༠'); - - assert.equal(moment([2011, 0, 31]).format('DDDo'), '༣༡', '༣༡'); -}); - -test('format month', function (assert) { - var expected = 'ཟླ་བ་དང་པོ ཟླ་བ་དང་པོ_ཟླ་བ་གཉིས་པ ཟླ་བ་གཉིས་པ_ཟླ་བ་གསུམ་པ ཟླ་བ་གསུམ་པ_ཟླ་བ་བཞི་པ ཟླ་བ་བཞི་པ_ཟླ་བ་ལྔ་པ ཟླ་བ་ལྔ་པ_ཟླ་བ་དྲུག་པ ཟླ་བ་དྲུག་པ_ཟླ་བ་བདུན་པ ཟླ་བ་བདུན་པ_ཟླ་བ་བརྒྱད་པ ཟླ་བ་བརྒྱད་པ_ཟླ་བ་དགུ་པ ཟླ་བ་དགུ་པ_ཟླ་བ་བཅུ་པ ཟླ་བ་བཅུ་པ_ཟླ་བ་བཅུ་གཅིག་པ ཟླ་བ་བཅུ་གཅིག་པ_ཟླ་བ་བཅུ་གཉིས་པ ཟླ་བ་བཅུ་གཉིས་པ'.split('_'), i; - for (i = 0; i < expected.length; i++) { - assert.equal(moment([2011, i, 1]).format('MMMM MMM'), expected[i], expected[i]); - } -}); - -test('format week', function (assert) { - var expected = 'གཟའ་ཉི་མ་ ཉི་མ་ ཉི་མ་_གཟའ་ཟླ་བ་ ཟླ་བ་ ཟླ་བ་_གཟའ་མིག་དམར་ མིག་དམར་ མིག་དམར་_གཟའ་ལྷག་པ་ ལྷག་པ་ ལྷག་པ་_གཟའ་ཕུར་བུ ཕུར་བུ ཕུར་བུ_གཟའ་པ་སངས་ པ་སངས་ པ་སངས་_གཟའ་སྤེན་པ་ སྤེན་པ་ སྤེན་པ་'.split('_'), i; - for (i = 0; i < expected.length; i++) { - assert.equal(moment([2011, 0, 2 + i]).format('dddd ddd dd'), expected[i], expected[i]); - } -}); - -test('from', function (assert) { - var start = moment([2007, 1, 28]); - assert.equal(start.from(moment([2007, 1, 28]).add({s: 44}), true), 'ལམ་སང', '44 seconds = a few seconds'); - assert.equal(start.from(moment([2007, 1, 28]).add({s: 45}), true), 'སྐར་མ་གཅིག', '45 seconds = a minute'); - assert.equal(start.from(moment([2007, 1, 28]).add({s: 89}), true), 'སྐར་མ་གཅིག', '89 seconds = a minute'); - assert.equal(start.from(moment([2007, 1, 28]).add({s: 90}), true), '༢ སྐར་མ', '90 seconds = 2 minutes'); - assert.equal(start.from(moment([2007, 1, 28]).add({m: 44}), true), '༤༤ སྐར་མ', '44 minutes = 44 minutes'); - assert.equal(start.from(moment([2007, 1, 28]).add({m: 45}), true), 'ཆུ་ཚོད་གཅིག', '45 minutes = an hour'); - assert.equal(start.from(moment([2007, 1, 28]).add({m: 89}), true), 'ཆུ་ཚོད་གཅིག', '89 minutes = an hour'); - assert.equal(start.from(moment([2007, 1, 28]).add({m: 90}), true), '༢ ཆུ་ཚོད', '90 minutes = 2 hours'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 5}), true), '༥ ཆུ་ཚོད', '5 hours = 5 hours'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 21}), true), '༢༡ ཆུ་ཚོད', '21 hours = 21 hours'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 22}), true), 'ཉིན་གཅིག', '22 hours = a day'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 35}), true), 'ཉིན་གཅིག', '35 hours = a day'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 36}), true), '༢ ཉིན་', '36 hours = 2 days'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 1}), true), 'ཉིན་གཅིག', '1 day = a day'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 5}), true), '༥ ཉིན་', '5 days = 5 days'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 25}), true), '༢༥ ཉིན་', '25 days = 25 days'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 26}), true), 'ཟླ་བ་གཅིག', '26 days = a month'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 30}), true), 'ཟླ་བ་གཅིག', '30 days = a month'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 43}), true), 'ཟླ་བ་གཅིག', '43 days = a month'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 46}), true), '༢ ཟླ་བ', '46 days = 2 months'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 74}), true), '༢ ཟླ་བ', '75 days = 2 months'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 76}), true), '༣ ཟླ་བ', '76 days = 3 months'); - assert.equal(start.from(moment([2007, 1, 28]).add({M: 1}), true), 'ཟླ་བ་གཅིག', '1 month = a month'); - assert.equal(start.from(moment([2007, 1, 28]).add({M: 5}), true), '༥ ཟླ་བ', '5 months = 5 months'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 345}), true), 'ལོ་གཅིག', '345 days = a year'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 548}), true), '༢ ལོ', '548 days = 2 years'); - assert.equal(start.from(moment([2007, 1, 28]).add({y: 1}), true), 'ལོ་གཅིག', '1 year = a year'); - assert.equal(start.from(moment([2007, 1, 28]).add({y: 5}), true), '༥ ལོ', '5 years = 5 years'); -}); - -test('suffix', function (assert) { - assert.equal(moment(30000).from(0), 'ལམ་སང ལ་', 'prefix'); - assert.equal(moment(0).from(30000), 'ལམ་སང སྔན་ལ', 'suffix'); -}); - -test('now from now', function (assert) { - assert.equal(moment().fromNow(), 'ལམ་སང སྔན་ལ', 'now from now should display as in the past'); -}); - -test('fromNow', function (assert) { - assert.equal(moment().add({s: 30}).fromNow(), 'ལམ་སང ལ་', 'ལམ་སང ལ་'); - assert.equal(moment().add({d: 5}).fromNow(), '༥ ཉིན་ ལ་', '༥ ཉིན་ ལ་'); -}); - -test('calendar day', function (assert) { - var a = moment().hours(12).minutes(0).seconds(0); - - assert.equal(moment(a).calendar(), 'དི་རིང ཉིན་གུང ༡༢:༠༠', 'today at the same time'); - assert.equal(moment(a).add({m: 25}).calendar(), 'དི་རིང ཉིན་གུང ༡༢:༢༥', 'Now plus 25 min'); - assert.equal(moment(a).add({h: 3}).calendar(), 'དི་རིང ཉིན་གུང ༣:༠༠', 'Now plus 3 hours'); - assert.equal(moment(a).add({d: 1}).calendar(), 'སང་ཉིན ཉིན་གུང ༡༢:༠༠', 'tomorrow at the same time'); - assert.equal(moment(a).subtract({h: 1}).calendar(), 'དི་རིང ཉིན་གུང ༡༡:༠༠', 'Now minus 1 hour'); - assert.equal(moment(a).subtract({d: 1}).calendar(), 'ཁ་སང ཉིན་གུང ༡༢:༠༠', 'yesterday at the same time'); -}); - -test('calendar next week', function (assert) { - var i, m; - for (i = 2; i < 7; i++) { - m = moment().add({d: i}); - assert.equal(m.calendar(), m.format('[བདུན་ཕྲག་རྗེས་མ][,] LT'), 'Today + ' + i + ' days current time'); - m.hours(0).minutes(0).seconds(0).milliseconds(0); - assert.equal(m.calendar(), m.format('[བདུན་ཕྲག་རྗེས་མ][,] LT'), 'Today + ' + i + ' days beginning of day'); - m.hours(23).minutes(59).seconds(59).milliseconds(999); - assert.equal(m.calendar(), m.format('[བདུན་ཕྲག་རྗེས་མ][,] LT'), 'Today + ' + i + ' days end of day'); - } -}); - -test('calendar last week', function (assert) { - var i, m; - - for (i = 2; i < 7; i++) { - m = moment().subtract({d: i}); - assert.equal(m.calendar(), m.format('[བདུན་ཕྲག་མཐའ་མ] dddd[,] LT'), 'Today - ' + i + ' days current time'); - m.hours(0).minutes(0).seconds(0).milliseconds(0); - assert.equal(m.calendar(), m.format('[བདུན་ཕྲག་མཐའ་མ] dddd[,] LT'), 'Today - ' + i + ' days beginning of day'); - m.hours(23).minutes(59).seconds(59).milliseconds(999); - assert.equal(m.calendar(), m.format('[བདུན་ཕྲག་མཐའ་མ] dddd[,] LT'), 'Today - ' + i + ' days end of day'); - } -}); - -test('calendar all else', function (assert) { - var weeksAgo = moment().subtract({w: 1}), - weeksFromNow = moment().add({w: 1}); - - assert.equal(weeksAgo.calendar(), weeksAgo.format('L'), '1 week ago'); - assert.equal(weeksFromNow.calendar(), weeksFromNow.format('L'), 'in 1 week'); - - weeksAgo = moment().subtract({w: 2}); - weeksFromNow = moment().add({w: 2}); - - assert.equal(weeksAgo.calendar(), weeksAgo.format('L'), '2 weeks ago'); - assert.equal(weeksFromNow.calendar(), weeksFromNow.format('L'), 'in 2 weeks'); -}); - -test('meridiem', function (assert) { - assert.equal(moment([2011, 2, 23, 2, 30]).format('a'), 'མཚན་མོ', 'before dawn'); - assert.equal(moment([2011, 2, 23, 9, 30]).format('a'), 'ཞོགས་ཀས', 'morning'); - assert.equal(moment([2011, 2, 23, 14, 30]).format('a'), 'ཉིན་གུང', 'during day'); - assert.equal(moment([2011, 2, 23, 17, 30]).format('a'), 'དགོང་དག', 'evening'); - assert.equal(moment([2011, 2, 23, 19, 30]).format('a'), 'དགོང་དག', 'late evening'); - assert.equal(moment([2011, 2, 23, 21, 20]).format('a'), 'མཚན་མོ', 'night'); - - assert.equal(moment([2011, 2, 23, 2, 30]).format('A'), 'མཚན་མོ', 'before dawn'); - assert.equal(moment([2011, 2, 23, 9, 30]).format('A'), 'ཞོགས་ཀས', 'morning'); - assert.equal(moment([2011, 2, 23, 14, 30]).format('A'), 'ཉིན་གུང', ' during day'); - assert.equal(moment([2011, 2, 23, 17, 30]).format('A'), 'དགོང་དག', 'evening'); - assert.equal(moment([2011, 2, 23, 19, 30]).format('A'), 'དགོང་དག', 'late evening'); - assert.equal(moment([2011, 2, 23, 21, 20]).format('A'), 'མཚན་མོ', 'night'); -}); - -test('weeks year starting sunday formatted', function (assert) { - assert.equal(moment([2012, 0, 1]).format('w ww wo'), '༡ ༠༡ ༡', 'Jan 1 2012 should be week 1'); - assert.equal(moment([2012, 0, 7]).format('w ww wo'), '༡ ༠༡ ༡', 'Jan 7 2012 should be week 1'); - assert.equal(moment([2012, 0, 8]).format('w ww wo'), '༢ ༠༢ ༢', 'Jan 8 2012 should be week 2'); - assert.equal(moment([2012, 0, 14]).format('w ww wo'), '༢ ༠༢ ༢', 'Jan 14 2012 should be week 2'); - assert.equal(moment([2012, 0, 15]).format('w ww wo'), '༣ ༠༣ ༣', 'Jan 15 2012 should be week 3'); -}); - -}))); - - -;(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' - && typeof require === 'function' ? factory(require('../../moment')) : - typeof define === 'function' && define.amd ? define(['../../moment'], factory) : - factory(global.moment) -}(this, (function (moment) { 'use strict'; - -function each(array, callback) { - var i; - for (i = 0; i < array.length; i++) { - callback(array[i], i, array); - } -} - -function objectKeys(obj) { - if (Object.keys) { - return Object.keys(obj); - } else { - // IE8 - var res = [], i; - for (i in obj) { - if (obj.hasOwnProperty(i)) { - res.push(i); - } - } - return res; - } -} - -// Pick the first defined of two or three arguments. - -function defineCommonLocaleTests(locale, options) { - test('lenient day of month ordinal parsing', function (assert) { - var i, ordinalStr, testMoment; - for (i = 1; i <= 31; ++i) { - ordinalStr = moment([2014, 0, i]).format('YYYY MM Do'); - testMoment = moment(ordinalStr, 'YYYY MM Do'); - assert.equal(testMoment.year(), 2014, - 'lenient day of month ordinal parsing ' + i + ' year check'); - assert.equal(testMoment.month(), 0, - 'lenient day of month ordinal parsing ' + i + ' month check'); - assert.equal(testMoment.date(), i, - 'lenient day of month ordinal parsing ' + i + ' date check'); - } - }); - - test('lenient day of month ordinal parsing of number', function (assert) { - var i, testMoment; - for (i = 1; i <= 31; ++i) { - testMoment = moment('2014 01 ' + i, 'YYYY MM Do'); - assert.equal(testMoment.year(), 2014, - 'lenient day of month ordinal parsing of number ' + i + ' year check'); - assert.equal(testMoment.month(), 0, - 'lenient day of month ordinal parsing of number ' + i + ' month check'); - assert.equal(testMoment.date(), i, - 'lenient day of month ordinal parsing of number ' + i + ' date check'); - } - }); - - test('strict day of month ordinal parsing', function (assert) { - var i, ordinalStr, testMoment; - for (i = 1; i <= 31; ++i) { - ordinalStr = moment([2014, 0, i]).format('YYYY MM Do'); - testMoment = moment(ordinalStr, 'YYYY MM Do', true); - assert.ok(testMoment.isValid(), 'strict day of month ordinal parsing ' + i); - } - }); - - test('meridiem invariant', function (assert) { - var h, m, t1, t2; - for (h = 0; h < 24; ++h) { - for (m = 0; m < 60; m += 15) { - t1 = moment.utc([2000, 0, 1, h, m]); - t2 = moment.utc(t1.format('A h:mm'), 'A h:mm'); - assert.equal(t2.format('HH:mm'), t1.format('HH:mm'), - 'meridiem at ' + t1.format('HH:mm')); - } - } - }); - - test('date format correctness', function (assert) { - var data, tokens; - data = moment.localeData()._longDateFormat; - tokens = objectKeys(data); - each(tokens, function (srchToken) { - // Check each format string to make sure it does not contain any - // tokens that need to be expanded. - each(tokens, function (baseToken) { - // strip escaped sequences - var format = data[baseToken].replace(/(\[[^\]]*\])/g, ''); - assert.equal(false, !!~format.indexOf(srchToken), - 'contains ' + srchToken + ' in ' + baseToken); - }); - }); - }); - - test('month parsing correctness', function (assert) { - var i, m; - - if (locale === 'tr') { - // I can't fix it :( - expect(0); - return; - } - function tester(format) { - var r; - r = moment(m.format(format), format); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format); - r = moment(m.format(format).toLocaleUpperCase(), format); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' upper'); - r = moment(m.format(format).toLocaleLowerCase(), format); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' lower'); - - r = moment(m.format(format), format, true); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' strict'); - r = moment(m.format(format).toLocaleUpperCase(), format, true); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' upper strict'); - r = moment(m.format(format).toLocaleLowerCase(), format, true); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' lower strict'); - } - - for (i = 0; i < 12; ++i) { - m = moment([2015, i, 15, 18]); - tester('MMM'); - tester('MMM.'); - tester('MMMM'); - tester('MMMM.'); - } - }); - - test('weekday parsing correctness', function (assert) { - var i, m; - - if (locale === 'tr' || locale === 'az' || locale === 'ro') { - // tr, az: There is a lower-case letter (ı), that converted to - // upper then lower changes to i - // ro: there is the letter ț which behaves weird under IE8 - expect(0); - return; - } - function tester(format) { - var r, baseMsg = 'weekday ' + m.weekday() + ' fmt ' + format + ' ' + m.toISOString(); - r = moment(m.format(format), format); - assert.equal(r.weekday(), m.weekday(), baseMsg); - r = moment(m.format(format).toLocaleUpperCase(), format); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' upper'); - r = moment(m.format(format).toLocaleLowerCase(), format); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' lower'); - - r = moment(m.format(format), format, true); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' strict'); - r = moment(m.format(format).toLocaleUpperCase(), format, true); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' upper strict'); - r = moment(m.format(format).toLocaleLowerCase(), format, true); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' lower strict'); - } - - for (i = 0; i < 7; ++i) { - m = moment.utc([2015, 0, i + 1, 18]); - tester('dd'); - tester('ddd'); - tester('dddd'); - } - }); - - test('valid localeData', function (assert) { - assert.equal(moment().localeData().months().length, 12, 'months should return 12 months'); - assert.equal(moment().localeData().monthsShort().length, 12, 'monthsShort should return 12 months'); - assert.equal(moment().localeData().weekdays().length, 7, 'weekdays should return 7 days'); - assert.equal(moment().localeData().weekdaysShort().length, 7, 'weekdaysShort should return 7 days'); - assert.equal(moment().localeData().weekdaysMin().length, 7, 'monthsShort should return 7 days'); - }); -} - -function setupDeprecationHandler(test, moment$$1, scope) { - test._expectedDeprecations = null; - test._observedDeprecations = null; - test._oldSupress = moment$$1.suppressDeprecationWarnings; - moment$$1.suppressDeprecationWarnings = true; - test.expectedDeprecations = function () { - test._expectedDeprecations = arguments; - test._observedDeprecations = []; - }; - moment$$1.deprecationHandler = function (name, msg) { - var deprecationId = matchedDeprecation(name, msg, test._expectedDeprecations); - if (deprecationId === -1) { - throw new Error('Unexpected deprecation thrown name=' + - name + ' msg=' + msg); - } - test._observedDeprecations[deprecationId] = 1; - }; -} - -function teardownDeprecationHandler(test, moment$$1, scope) { - moment$$1.suppressDeprecationWarnings = test._oldSupress; - - if (test._expectedDeprecations != null) { - var missedDeprecations = []; - each(test._expectedDeprecations, function (deprecationPattern, id) { - if (test._observedDeprecations[id] !== 1) { - missedDeprecations.push(deprecationPattern); - } - }); - if (missedDeprecations.length !== 0) { - throw new Error('Expected deprecation warnings did not happen: ' + - missedDeprecations.join(' ')); - } - } -} - -function matchedDeprecation(name, msg, deprecations) { - if (deprecations == null) { - return -1; - } - for (var i = 0; i < deprecations.length; ++i) { - if (name != null && name === deprecations[i]) { - return i; - } - if (msg != null && msg.substring(0, deprecations[i].length) === deprecations[i]) { - return i; - } - } - return -1; -} - -/*global QUnit:false*/ - -var test = QUnit.test; - -var expect = QUnit.expect; - - - -function localeModule (name, lifecycle) { - QUnit.module('locale:' + name, { - setup : function () { - moment.locale(name); - moment.createFromInputFallback = function (config) { - throw new Error('input not handled by moment: ' + config._i); - }; - setupDeprecationHandler(test, moment, 'locale'); - if (lifecycle && lifecycle.setup) { - lifecycle.setup(); - } - }, - teardown : function () { - moment.locale('en'); - teardownDeprecationHandler(test, moment, 'locale'); - if (lifecycle && lifecycle.teardown) { - lifecycle.teardown(); - } - } - }); - defineCommonLocaleTests(name, -1, -1); -} - -localeModule('br'); - -test('parse', function (assert) { - var tests = 'Genver Gen_C\'hwevrer C\'hwe_Meurzh Meu_Ebrel Ebr_Mae Mae_Mezheven Eve_Gouere Gou_Eost Eos_Gwengolo Gwe_Here Her_Du Du_Kerzu Ker'.split('_'), i; - function equalTest(input, mmm, i) { - assert.equal(moment(input, mmm).month(), i, input + ' should be month ' + (i + 1)); - } - for (i = 0; i < 12; i++) { - tests[i] = tests[i].split(' '); - equalTest(tests[i][0], 'MMM', i); - equalTest(tests[i][1], 'MMM', i); - equalTest(tests[i][0], 'MMMM', i); - equalTest(tests[i][1], 'MMMM', i); - equalTest(tests[i][0].toLocaleLowerCase(), 'MMMM', i); - equalTest(tests[i][1].toLocaleLowerCase(), 'MMMM', i); - equalTest(tests[i][0].toLocaleUpperCase(), 'MMMM', i); - equalTest(tests[i][1].toLocaleUpperCase(), 'MMMM', i); - } -}); - -test('format', function (assert) { - moment.locale('br'); - var a = [ - ['dddd, MMMM Do YYYY, h:mm:ss a', 'Sul, C\'hwevrer 14vet 2010, 3:25:50 pm'], - ['ddd, h A', 'Sul, 3 PM'], - ['M Mo MM MMMM MMM', '2 2vet 02 C\'hwevrer C\'hwe'], - ['YYYY YY', '2010 10'], - ['D Do DD', '14 14vet 14'], - ['d do dddd ddd dd', '0 0vet Sul Sul Su'], - ['DDD DDDo DDDD', '45 45vet 045'], - ['w wo ww', '6 6vet 06'], - ['h hh', '3 03'], - ['H HH', '15 15'], - ['m mm', '25 25'], - ['s ss', '50 50'], - ['DDDo [devezh] [ar] [vloaz]', '45vet devezh ar vloaz'], - ['L', '14/02/2010'], - ['LL', '14 a viz C\'hwevrer 2010'], - ['LLL', '14 a viz C\'hwevrer 2010 3e25 PM'], - ['LLLL', 'Sul, 14 a viz C\'hwevrer 2010 3e25 PM'] - ], - b = moment(new Date(2010, 1, 14, 15, 25, 50, 125)), - i; - for (i = 0; i < a.length; i++) { - assert.equal(b.format(a[i][0]), a[i][1], a[i][0] + ' ---> ' + a[i][1]); - } -}); - -test('format ordinal', function (assert) { - moment.locale('br'); - assert.equal(moment([2011, 0, 1]).format('DDDo'), '1añ', '1añ'); - assert.equal(moment([2011, 0, 2]).format('DDDo'), '2vet', '2vet'); - assert.equal(moment([2011, 0, 3]).format('DDDo'), '3vet', '3vet'); - assert.equal(moment([2011, 0, 4]).format('DDDo'), '4vet', '4vet'); - assert.equal(moment([2011, 0, 5]).format('DDDo'), '5vet', '5vet'); - assert.equal(moment([2011, 0, 6]).format('DDDo'), '6vet', '6vet'); - assert.equal(moment([2011, 0, 7]).format('DDDo'), '7vet', '7vet'); - assert.equal(moment([2011, 0, 8]).format('DDDo'), '8vet', '8vet'); - assert.equal(moment([2011, 0, 9]).format('DDDo'), '9vet', '9vet'); - assert.equal(moment([2011, 0, 10]).format('DDDo'), '10vet', '10vet'); - - assert.equal(moment([2011, 0, 11]).format('DDDo'), '11vet', '11vet'); - assert.equal(moment([2011, 0, 12]).format('DDDo'), '12vet', '12vet'); - assert.equal(moment([2011, 0, 13]).format('DDDo'), '13vet', '13vet'); - assert.equal(moment([2011, 0, 14]).format('DDDo'), '14vet', '14vet'); - assert.equal(moment([2011, 0, 15]).format('DDDo'), '15vet', '15vet'); - assert.equal(moment([2011, 0, 16]).format('DDDo'), '16vet', '16vet'); - assert.equal(moment([2011, 0, 17]).format('DDDo'), '17vet', '17vet'); - assert.equal(moment([2011, 0, 18]).format('DDDo'), '18vet', '18vet'); - assert.equal(moment([2011, 0, 19]).format('DDDo'), '19vet', '19vet'); - assert.equal(moment([2011, 0, 20]).format('DDDo'), '20vet', '20vet'); - - assert.equal(moment([2011, 0, 21]).format('DDDo'), '21vet', '21vet'); - assert.equal(moment([2011, 0, 22]).format('DDDo'), '22vet', '22vet'); - assert.equal(moment([2011, 0, 23]).format('DDDo'), '23vet', '23vet'); - assert.equal(moment([2011, 0, 24]).format('DDDo'), '24vet', '24vet'); - assert.equal(moment([2011, 0, 25]).format('DDDo'), '25vet', '25vet'); - assert.equal(moment([2011, 0, 26]).format('DDDo'), '26vet', '26vet'); - assert.equal(moment([2011, 0, 27]).format('DDDo'), '27vet', '27vet'); - assert.equal(moment([2011, 0, 28]).format('DDDo'), '28vet', '28vet'); - assert.equal(moment([2011, 0, 29]).format('DDDo'), '29vet', '29vet'); - assert.equal(moment([2011, 0, 30]).format('DDDo'), '30vet', '30vet'); - - assert.equal(moment([2011, 0, 31]).format('DDDo'), '31vet', '31vet'); -}); - -test('format month', function (assert) { - moment.locale('br'); - var expected = 'Genver Gen_C\'hwevrer C\'hwe_Meurzh Meu_Ebrel Ebr_Mae Mae_Mezheven Eve_Gouere Gou_Eost Eos_Gwengolo Gwe_Here Her_Du Du_Kerzu Ker'.split('_'), i; - for (i = 0; i < expected.length; i++) { - assert.equal(moment([2011, i, 1]).format('MMMM MMM'), expected[i], expected[i]); - } -}); - -test('format week', function (assert) { - moment.locale('br'); - var expected = 'Sul Sul Su_Lun Lun Lu_Meurzh Meu Me_Merc\'her Mer Mer_Yaou Yao Ya_Gwener Gwe Gw_Sadorn Sad Sa'.split('_'), i; - for (i = 0; i < expected.length; i++) { - assert.equal(moment([2011, 0, 2 + i]).format('dddd ddd dd'), expected[i], expected[i]); - } -}); - -test('from', function (assert) { - moment.locale('br'); - var start = moment([2007, 1, 28]); - assert.equal(start.from(moment([2007, 1, 28]).add({s: 44}), true), 'un nebeud segondennoù', '44 seconds = a few seconds'); - assert.equal(start.from(moment([2007, 1, 28]).add({s: 45}), true), 'ur vunutenn', '45 seconds = a minute'); - assert.equal(start.from(moment([2007, 1, 28]).add({s: 89}), true), 'ur vunutenn', '89 seconds = a minute'); - assert.equal(start.from(moment([2007, 1, 28]).add({s: 90}), true), '2 vunutenn', '90 seconds = 2 minutes'); - assert.equal(start.from(moment([2007, 1, 28]).add({m: 44}), true), '44 munutenn', '44 minutes = 44 minutes'); - assert.equal(start.from(moment([2007, 1, 28]).add({m: 45}), true), 'un eur', '45 minutes = an hour'); - assert.equal(start.from(moment([2007, 1, 28]).add({m: 89}), true), 'un eur', '89 minutes = an hour'); - assert.equal(start.from(moment([2007, 1, 28]).add({m: 90}), true), '2 eur', '90 minutes = 2 hours'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 5}), true), '5 eur', '5 hours = 5 hours'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 21}), true), '21 eur', '21 hours = 21 hours'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 22}), true), 'un devezh', '22 hours = a day'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 35}), true), 'un devezh', '35 hours = a day'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 36}), true), '2 zevezh', '36 hours = 2 days'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 1}), true), 'un devezh', '1 day = a day'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 5}), true), '5 devezh', '5 days = 5 days'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 25}), true), '25 devezh', '25 days = 25 days'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 26}), true), 'ur miz', '26 days = a month'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 30}), true), 'ur miz', '30 days = a month'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 43}), true), 'ur miz', '43 days = a month'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 46}), true), '2 viz', '46 days = 2 months'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 74}), true), '2 viz', '75 days = 2 months'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 76}), true), '3 miz', '76 days = 3 months'); - assert.equal(start.from(moment([2007, 1, 28]).add({M: 1}), true), 'ur miz', '1 month = a month'); - assert.equal(start.from(moment([2007, 1, 28]).add({M: 5}), true), '5 miz', '5 months = 5 months'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 345}), true), 'ur bloaz', '345 days = a year'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 548}), true), '2 vloaz', '548 days = 2 years'); - assert.equal(start.from(moment([2007, 1, 28]).add({y: 1}), true), 'ur bloaz', '1 year = a year'); - assert.equal(start.from(moment([2007, 1, 28]).add({y: 5}), true), '5 bloaz', '5 years = 5 years'); -}); - -test('suffix', function (assert) { - moment.locale('br'); - assert.equal(moment(30000).from(0), 'a-benn un nebeud segondennoù', 'prefix'); - assert.equal(moment(0).from(30000), 'un nebeud segondennoù \'zo', 'suffix'); -}); - -test('now from now', function (assert) { - moment.locale('br'); - assert.equal(moment().fromNow(), 'un nebeud segondennoù \'zo', 'now from now should display as in the past'); -}); - -test('fromNow', function (assert) { - moment.locale('br'); - assert.equal(moment().add({s: 30}).fromNow(), 'a-benn un nebeud segondennoù', 'in a few seconds'); - assert.equal(moment().add({d: 5}).fromNow(), 'a-benn 5 devezh', 'in 5 days'); -}); - -test('calendar day', function (assert) { - moment.locale('br'); - - var a = moment().hours(12).minutes(0).seconds(0); - - assert.equal(moment(a).calendar(), 'Hiziv da 12e00 PM', 'today at the same time'); - assert.equal(moment(a).add({m: 25}).calendar(), 'Hiziv da 12e25 PM', 'Now plus 25 min'); - assert.equal(moment(a).add({h: 1}).calendar(), 'Hiziv da 1e00 PM', 'Now plus 1 hour'); - assert.equal(moment(a).add({d: 1}).calendar(), 'Warc\'hoazh da 12e00 PM', 'tomorrow at the same time'); - assert.equal(moment(a).subtract({h: 1}).calendar(), 'Hiziv da 11e00 AM', 'Now minus 1 hour'); - assert.equal(moment(a).subtract({d: 1}).calendar(), 'Dec\'h da 12e00 PM', 'yesterday at the same time'); -}); - -test('calendar next week', function (assert) { - moment.locale('br'); - - var i, m; - for (i = 2; i < 7; i++) { - m = moment().add({d: i}); - assert.equal(m.calendar(), m.format('dddd [da] LT'), 'Today + ' + i + ' days current time'); - m.hours(0).minutes(0).seconds(0).milliseconds(0); - assert.equal(m.calendar(), m.format('dddd [da] LT'), 'Today + ' + i + ' days beginning of day'); - m.hours(23).minutes(59).seconds(59).milliseconds(999); - assert.equal(m.calendar(), m.format('dddd [da] LT'), 'Today + ' + i + ' days end of day'); - } -}); - -test('calendar last week', function (assert) { - moment.locale('br'); - - var i, m; - for (i = 2; i < 7; i++) { - m = moment().subtract({d: i}); - assert.equal(m.calendar(), m.format('dddd [paset da] LT'), 'Today - ' + i + ' days current time'); - m.hours(0).minutes(0).seconds(0).milliseconds(0); - assert.equal(m.calendar(), m.format('dddd [paset da] LT'), 'Today - ' + i + ' days beginning of day'); - m.hours(23).minutes(59).seconds(59).milliseconds(999); - assert.equal(m.calendar(), m.format('dddd [paset da] LT'), 'Today - ' + i + ' days end of day'); - } -}); - -test('calendar all else', function (assert) { - moment.locale('br'); - var weeksAgo = moment().subtract({w: 1}), - weeksFromNow = moment().add({w: 1}); - - assert.equal(weeksAgo.calendar(), weeksAgo.format('L'), '1 week ago'); - assert.equal(weeksFromNow.calendar(), weeksFromNow.format('L'), 'in 1 week'); - - weeksAgo = moment().subtract({w: 2}); - weeksFromNow = moment().add({w: 2}); - - assert.equal(weeksAgo.calendar(), weeksAgo.format('L'), '2 weeks ago'); - assert.equal(weeksFromNow.calendar(), weeksFromNow.format('L'), 'in 2 weeks'); -}); - -test('special mutations for years', function (assert) { - moment.locale('br'); - var start = moment([2007, 1, 28]); - assert.equal(start.from(moment([2007, 1, 28]).add({y: 1}), true), 'ur bloaz', 'mutation 1 year'); - assert.equal(start.from(moment([2007, 1, 28]).add({y: 2}), true), '2 vloaz', 'mutation 2 years'); - assert.equal(start.from(moment([2007, 1, 28]).add({y: 3}), true), '3 bloaz', 'mutation 3 years'); - assert.equal(start.from(moment([2007, 1, 28]).add({y: 4}), true), '4 bloaz', 'mutation 4 years'); - assert.equal(start.from(moment([2007, 1, 28]).add({y: 5}), true), '5 bloaz', 'mutation 5 years'); - assert.equal(start.from(moment([2007, 1, 28]).add({y: 9}), true), '9 bloaz', 'mutation 9 years'); - assert.equal(start.from(moment([2007, 1, 28]).add({y: 10}), true), '10 vloaz', 'mutation 10 years'); - assert.equal(start.from(moment([2007, 1, 28]).add({y: 21}), true), '21 bloaz', 'mutation 21 years'); - assert.equal(start.from(moment([2007, 1, 28]).add({y: 22}), true), '22 vloaz', 'mutation 22 years'); - assert.equal(start.from(moment([2007, 1, 28]).add({y: 133}), true), '133 bloaz', 'mutation 133 years'); - assert.equal(start.from(moment([2007, 1, 28]).add({y: 148}), true), '148 vloaz', 'mutation 148 years'); - assert.equal(start.from(moment([2007, 1, 28]).add({y: 261}), true), '261 bloaz', 'mutation 261 years'); -}); - -}))); - - -;(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' - && typeof require === 'function' ? factory(require('../../moment')) : - typeof define === 'function' && define.amd ? define(['../../moment'], factory) : - factory(global.moment) -}(this, (function (moment) { 'use strict'; - -function each(array, callback) { - var i; - for (i = 0; i < array.length; i++) { - callback(array[i], i, array); - } -} - -function objectKeys(obj) { - if (Object.keys) { - return Object.keys(obj); - } else { - // IE8 - var res = [], i; - for (i in obj) { - if (obj.hasOwnProperty(i)) { - res.push(i); - } - } - return res; - } -} - -// Pick the first defined of two or three arguments. - -function defineCommonLocaleTests(locale, options) { - test('lenient day of month ordinal parsing', function (assert) { - var i, ordinalStr, testMoment; - for (i = 1; i <= 31; ++i) { - ordinalStr = moment([2014, 0, i]).format('YYYY MM Do'); - testMoment = moment(ordinalStr, 'YYYY MM Do'); - assert.equal(testMoment.year(), 2014, - 'lenient day of month ordinal parsing ' + i + ' year check'); - assert.equal(testMoment.month(), 0, - 'lenient day of month ordinal parsing ' + i + ' month check'); - assert.equal(testMoment.date(), i, - 'lenient day of month ordinal parsing ' + i + ' date check'); - } - }); - - test('lenient day of month ordinal parsing of number', function (assert) { - var i, testMoment; - for (i = 1; i <= 31; ++i) { - testMoment = moment('2014 01 ' + i, 'YYYY MM Do'); - assert.equal(testMoment.year(), 2014, - 'lenient day of month ordinal parsing of number ' + i + ' year check'); - assert.equal(testMoment.month(), 0, - 'lenient day of month ordinal parsing of number ' + i + ' month check'); - assert.equal(testMoment.date(), i, - 'lenient day of month ordinal parsing of number ' + i + ' date check'); - } - }); - - test('strict day of month ordinal parsing', function (assert) { - var i, ordinalStr, testMoment; - for (i = 1; i <= 31; ++i) { - ordinalStr = moment([2014, 0, i]).format('YYYY MM Do'); - testMoment = moment(ordinalStr, 'YYYY MM Do', true); - assert.ok(testMoment.isValid(), 'strict day of month ordinal parsing ' + i); - } - }); - - test('meridiem invariant', function (assert) { - var h, m, t1, t2; - for (h = 0; h < 24; ++h) { - for (m = 0; m < 60; m += 15) { - t1 = moment.utc([2000, 0, 1, h, m]); - t2 = moment.utc(t1.format('A h:mm'), 'A h:mm'); - assert.equal(t2.format('HH:mm'), t1.format('HH:mm'), - 'meridiem at ' + t1.format('HH:mm')); - } - } - }); - - test('date format correctness', function (assert) { - var data, tokens; - data = moment.localeData()._longDateFormat; - tokens = objectKeys(data); - each(tokens, function (srchToken) { - // Check each format string to make sure it does not contain any - // tokens that need to be expanded. - each(tokens, function (baseToken) { - // strip escaped sequences - var format = data[baseToken].replace(/(\[[^\]]*\])/g, ''); - assert.equal(false, !!~format.indexOf(srchToken), - 'contains ' + srchToken + ' in ' + baseToken); - }); - }); - }); - - test('month parsing correctness', function (assert) { - var i, m; - - if (locale === 'tr') { - // I can't fix it :( - expect(0); - return; - } - function tester(format) { - var r; - r = moment(m.format(format), format); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format); - r = moment(m.format(format).toLocaleUpperCase(), format); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' upper'); - r = moment(m.format(format).toLocaleLowerCase(), format); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' lower'); - - r = moment(m.format(format), format, true); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' strict'); - r = moment(m.format(format).toLocaleUpperCase(), format, true); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' upper strict'); - r = moment(m.format(format).toLocaleLowerCase(), format, true); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' lower strict'); - } - - for (i = 0; i < 12; ++i) { - m = moment([2015, i, 15, 18]); - tester('MMM'); - tester('MMM.'); - tester('MMMM'); - tester('MMMM.'); - } - }); - - test('weekday parsing correctness', function (assert) { - var i, m; - - if (locale === 'tr' || locale === 'az' || locale === 'ro') { - // tr, az: There is a lower-case letter (ı), that converted to - // upper then lower changes to i - // ro: there is the letter ț which behaves weird under IE8 - expect(0); - return; - } - function tester(format) { - var r, baseMsg = 'weekday ' + m.weekday() + ' fmt ' + format + ' ' + m.toISOString(); - r = moment(m.format(format), format); - assert.equal(r.weekday(), m.weekday(), baseMsg); - r = moment(m.format(format).toLocaleUpperCase(), format); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' upper'); - r = moment(m.format(format).toLocaleLowerCase(), format); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' lower'); - - r = moment(m.format(format), format, true); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' strict'); - r = moment(m.format(format).toLocaleUpperCase(), format, true); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' upper strict'); - r = moment(m.format(format).toLocaleLowerCase(), format, true); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' lower strict'); - } - - for (i = 0; i < 7; ++i) { - m = moment.utc([2015, 0, i + 1, 18]); - tester('dd'); - tester('ddd'); - tester('dddd'); - } - }); - - test('valid localeData', function (assert) { - assert.equal(moment().localeData().months().length, 12, 'months should return 12 months'); - assert.equal(moment().localeData().monthsShort().length, 12, 'monthsShort should return 12 months'); - assert.equal(moment().localeData().weekdays().length, 7, 'weekdays should return 7 days'); - assert.equal(moment().localeData().weekdaysShort().length, 7, 'weekdaysShort should return 7 days'); - assert.equal(moment().localeData().weekdaysMin().length, 7, 'monthsShort should return 7 days'); - }); -} - -function setupDeprecationHandler(test, moment$$1, scope) { - test._expectedDeprecations = null; - test._observedDeprecations = null; - test._oldSupress = moment$$1.suppressDeprecationWarnings; - moment$$1.suppressDeprecationWarnings = true; - test.expectedDeprecations = function () { - test._expectedDeprecations = arguments; - test._observedDeprecations = []; - }; - moment$$1.deprecationHandler = function (name, msg) { - var deprecationId = matchedDeprecation(name, msg, test._expectedDeprecations); - if (deprecationId === -1) { - throw new Error('Unexpected deprecation thrown name=' + - name + ' msg=' + msg); - } - test._observedDeprecations[deprecationId] = 1; - }; -} - -function teardownDeprecationHandler(test, moment$$1, scope) { - moment$$1.suppressDeprecationWarnings = test._oldSupress; - - if (test._expectedDeprecations != null) { - var missedDeprecations = []; - each(test._expectedDeprecations, function (deprecationPattern, id) { - if (test._observedDeprecations[id] !== 1) { - missedDeprecations.push(deprecationPattern); - } - }); - if (missedDeprecations.length !== 0) { - throw new Error('Expected deprecation warnings did not happen: ' + - missedDeprecations.join(' ')); - } - } -} - -function matchedDeprecation(name, msg, deprecations) { - if (deprecations == null) { - return -1; - } - for (var i = 0; i < deprecations.length; ++i) { - if (name != null && name === deprecations[i]) { - return i; - } - if (msg != null && msg.substring(0, deprecations[i].length) === deprecations[i]) { - return i; - } - } - return -1; -} - -/*global QUnit:false*/ - -var test = QUnit.test; - -var expect = QUnit.expect; - - - -function localeModule (name, lifecycle) { - QUnit.module('locale:' + name, { - setup : function () { - moment.locale(name); - moment.createFromInputFallback = function (config) { - throw new Error('input not handled by moment: ' + config._i); - }; - setupDeprecationHandler(test, moment, 'locale'); - if (lifecycle && lifecycle.setup) { - lifecycle.setup(); - } - }, - teardown : function () { - moment.locale('en'); - teardownDeprecationHandler(test, moment, 'locale'); - if (lifecycle && lifecycle.teardown) { - lifecycle.teardown(); - } - } - }); - defineCommonLocaleTests(name, -1, -1); -} - -localeModule('bs'); - -test('parse', function (assert) { - var tests = 'januar jan._februar feb._mart mar._april apr._maj maj._juni jun._juli jul._august aug._septembar sep._oktobar okt._novembar nov._decembar dec.'.split('_'), i; - function equalTest(input, mmm, i) { - assert.equal(moment(input, mmm).month(), i, input + ' should be month ' + (i + 1) + ' inp ' + mmm); - } - for (i = 0; i < 12; i++) { - tests[i] = tests[i].split(' '); - equalTest(tests[i][0], 'MMM', i); - equalTest(tests[i][1], 'MMM', i); - equalTest(tests[i][0], 'MMMM', i); - equalTest(tests[i][1], 'MMMM', i); - equalTest(tests[i][0].toLocaleLowerCase(), 'MMMM', i); - equalTest(tests[i][1].toLocaleLowerCase(), 'MMMM', i); - equalTest(tests[i][0].toLocaleUpperCase(), 'MMMM', i); - equalTest(tests[i][1].toLocaleUpperCase(), 'MMMM', i); - } -}); - -test('format', function (assert) { - var a = [ - ['dddd, Do MMMM YYYY, h:mm:ss a', 'nedjelja, 14. februar 2010, 3:25:50 pm'], - ['ddd, hA', 'ned., 3PM'], - ['M Mo MM MMMM MMM', '2 2. 02 februar feb.'], - ['YYYY YY', '2010 10'], - ['D Do DD', '14 14. 14'], - ['d do dddd ddd dd', '0 0. nedjelja ned. ne'], - ['DDD DDDo DDDD', '45 45. 045'], - ['w wo ww', '7 7. 07'], - ['h hh', '3 03'], - ['H HH', '15 15'], - ['m mm', '25 25'], - ['s ss', '50 50'], - ['a A', 'pm PM'], - ['[the] DDDo [day of the year]', 'the 45. day of the year'], - ['LTS', '15:25:50'], - ['L', '14.02.2010'], - ['LL', '14. februar 2010'], - ['LLL', '14. februar 2010 15:25'], - ['LLLL', 'nedjelja, 14. februar 2010 15:25'], - ['l', '14.2.2010'], - ['ll', '14. feb. 2010'], - ['lll', '14. feb. 2010 15:25'], - ['llll', 'ned., 14. feb. 2010 15:25'] - ], - b = moment(new Date(2010, 1, 14, 15, 25, 50, 125)), - i; - for (i = 0; i < a.length; i++) { - assert.equal(b.format(a[i][0]), a[i][1], a[i][0] + ' ---> ' + a[i][1]); - } -}); - -test('format ordinal', function (assert) { - assert.equal(moment([2011, 0, 1]).format('DDDo'), '1.', '1.'); - assert.equal(moment([2011, 0, 2]).format('DDDo'), '2.', '2.'); - assert.equal(moment([2011, 0, 3]).format('DDDo'), '3.', '3.'); - assert.equal(moment([2011, 0, 4]).format('DDDo'), '4.', '4.'); - assert.equal(moment([2011, 0, 5]).format('DDDo'), '5.', '5.'); - assert.equal(moment([2011, 0, 6]).format('DDDo'), '6.', '6.'); - assert.equal(moment([2011, 0, 7]).format('DDDo'), '7.', '7.'); - assert.equal(moment([2011, 0, 8]).format('DDDo'), '8.', '8.'); - assert.equal(moment([2011, 0, 9]).format('DDDo'), '9.', '9.'); - assert.equal(moment([2011, 0, 10]).format('DDDo'), '10.', '10.'); - - assert.equal(moment([2011, 0, 11]).format('DDDo'), '11.', '11.'); - assert.equal(moment([2011, 0, 12]).format('DDDo'), '12.', '12.'); - assert.equal(moment([2011, 0, 13]).format('DDDo'), '13.', '13.'); - assert.equal(moment([2011, 0, 14]).format('DDDo'), '14.', '14.'); - assert.equal(moment([2011, 0, 15]).format('DDDo'), '15.', '15.'); - assert.equal(moment([2011, 0, 16]).format('DDDo'), '16.', '16.'); - assert.equal(moment([2011, 0, 17]).format('DDDo'), '17.', '17.'); - assert.equal(moment([2011, 0, 18]).format('DDDo'), '18.', '18.'); - assert.equal(moment([2011, 0, 19]).format('DDDo'), '19.', '19.'); - assert.equal(moment([2011, 0, 20]).format('DDDo'), '20.', '20.'); - - assert.equal(moment([2011, 0, 21]).format('DDDo'), '21.', '21.'); - assert.equal(moment([2011, 0, 22]).format('DDDo'), '22.', '22.'); - assert.equal(moment([2011, 0, 23]).format('DDDo'), '23.', '23.'); - assert.equal(moment([2011, 0, 24]).format('DDDo'), '24.', '24.'); - assert.equal(moment([2011, 0, 25]).format('DDDo'), '25.', '25.'); - assert.equal(moment([2011, 0, 26]).format('DDDo'), '26.', '26.'); - assert.equal(moment([2011, 0, 27]).format('DDDo'), '27.', '27.'); - assert.equal(moment([2011, 0, 28]).format('DDDo'), '28.', '28.'); - assert.equal(moment([2011, 0, 29]).format('DDDo'), '29.', '29.'); - assert.equal(moment([2011, 0, 30]).format('DDDo'), '30.', '30.'); - - assert.equal(moment([2011, 0, 31]).format('DDDo'), '31.', '31.'); -}); - -test('format month', function (assert) { - var expected = 'januar jan._februar feb._mart mar._april apr._maj maj._juni jun._juli jul._august aug._septembar sep._oktobar okt._novembar nov._decembar dec.'.split('_'), i; - for (i = 0; i < expected.length; i++) { - assert.equal(moment([2011, i, 1]).format('MMMM MMM'), expected[i], expected[i]); - } -}); - -test('format week', function (assert) { - var expected = 'nedjelja ned. ne_ponedjeljak pon. po_utorak uto. ut_srijeda sri. sr_četvrtak čet. če_petak pet. pe_subota sub. su'.split('_'), i; - for (i = 0; i < expected.length; i++) { - assert.equal(moment([2011, 0, 2 + i]).format('dddd ddd dd'), expected[i], expected[i]); - } -}); - -test('from', function (assert) { - var start = moment([2007, 1, 28]); - assert.equal(start.from(moment([2007, 1, 28]).add({s: 44}), true), 'par sekundi', '44 seconds = a few seconds'); - assert.equal(start.from(moment([2007, 1, 28]).add({s: 45}), true), 'jedna minuta', '45 seconds = a minute'); - assert.equal(start.from(moment([2007, 1, 28]).add({s: 89}), true), 'jedna minuta', '89 seconds = a minute'); - assert.equal(start.from(moment([2007, 1, 28]).add({s: 90}), true), '2 minute', '90 seconds = 2 minutes'); - assert.equal(start.from(moment([2007, 1, 28]).add({m: 44}), true), '44 minuta', '44 minutes = 44 minutes'); - assert.equal(start.from(moment([2007, 1, 28]).add({m: 45}), true), 'jedan sat', '45 minutes = an hour'); - assert.equal(start.from(moment([2007, 1, 28]).add({m: 89}), true), 'jedan sat', '89 minutes = an hour'); - assert.equal(start.from(moment([2007, 1, 28]).add({m: 90}), true), '2 sata', '90 minutes = 2 hours'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 5}), true), '5 sati', '5 hours = 5 hours'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 21}), true), '21 sati', '21 hours = 21 hours'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 22}), true), 'dan', '22 hours = a day'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 35}), true), 'dan', '35 hours = a day'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 36}), true), '2 dana', '36 hours = 2 days'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 1}), true), 'dan', '1 day = a day'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 5}), true), '5 dana', '5 days = 5 days'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 25}), true), '25 dana', '25 days = 25 days'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 26}), true), 'mjesec', '26 days = a month'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 30}), true), 'mjesec', '30 days = a month'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 43}), true), 'mjesec', '43 days = a month'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 46}), true), '2 mjeseca', '46 days = 2 months'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 74}), true), '2 mjeseca', '75 days = 2 months'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 76}), true), '3 mjeseca', '76 days = 3 months'); - assert.equal(start.from(moment([2007, 1, 28]).add({M: 1}), true), 'mjesec', '1 month = a month'); - assert.equal(start.from(moment([2007, 1, 28]).add({M: 5}), true), '5 mjeseci', '5 months = 5 months'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 345}), true), 'godinu', '345 days = a year'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 548}), true), '2 godine', '548 days = 2 years'); - assert.equal(start.from(moment([2007, 1, 28]).add({y: 1}), true), 'godinu', '1 year = a year'); - assert.equal(start.from(moment([2007, 1, 28]).add({y: 5}), true), '5 godina', '5 years = 5 years'); -}); - -test('suffix', function (assert) { - assert.equal(moment(30000).from(0), 'za par sekundi', 'prefix'); - assert.equal(moment(0).from(30000), 'prije par sekundi', 'prefix'); -}); - -test('now from now', function (assert) { - assert.equal(moment().fromNow(), 'prije par sekundi', 'now from now should display as in the past'); -}); - -test('fromNow', function (assert) { - assert.equal(moment().add({s: 30}).fromNow(), 'za par sekundi', 'in a few seconds'); - assert.equal(moment().add({d: 5}).fromNow(), 'za 5 dana', 'in 5 days'); -}); - -test('calendar day', function (assert) { - var a = moment().hours(12).minutes(0).seconds(0); - - assert.equal(moment(a).calendar(), 'danas u 12:00', 'today at the same time'); - assert.equal(moment(a).add({m: 25}).calendar(), 'danas u 12:25', 'Now plus 25 min'); - assert.equal(moment(a).add({h: 1}).calendar(), 'danas u 13:00', 'Now plus 1 hour'); - assert.equal(moment(a).add({d: 1}).calendar(), 'sutra u 12:00', 'tomorrow at the same time'); - assert.equal(moment(a).subtract({h: 1}).calendar(), 'danas u 11:00', 'Now minus 1 hour'); - assert.equal(moment(a).subtract({d: 1}).calendar(), 'jučer u 12:00', 'yesterday at the same time'); -}); - -test('calendar next week', function (assert) { - var i, m; - - function makeFormat(d) { - switch (d.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'; - } - } - - for (i = 2; i < 7; i++) { - m = moment().add({d: i}); - assert.equal(m.calendar(), m.format(makeFormat(m)), 'Today + ' + i + ' days current time'); - m.hours(0).minutes(0).seconds(0).milliseconds(0); - assert.equal(m.calendar(), m.format(makeFormat(m)), 'Today + ' + i + ' days beginning of day'); - m.hours(23).minutes(59).seconds(59).milliseconds(999); - assert.equal(m.calendar(), m.format(makeFormat(m)), 'Today + ' + i + ' days end of day'); - } -}); - -test('calendar last week', function (assert) { - var i, m; - - function makeFormat(d) { - switch (d.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'; - } - } - - for (i = 2; i < 7; i++) { - m = moment().subtract({d: i}); - assert.equal(m.calendar(), m.format(makeFormat(m)), 'Today - ' + i + ' days current time'); - m.hours(0).minutes(0).seconds(0).milliseconds(0); - assert.equal(m.calendar(), m.format(makeFormat(m)), 'Today - ' + i + ' days beginning of day'); - m.hours(23).minutes(59).seconds(59).milliseconds(999); - assert.equal(m.calendar(), m.format(makeFormat(m)), 'Today - ' + i + ' days end of day'); - } -}); - -test('calendar all else', function (assert) { - var weeksAgo = moment().subtract({w: 1}), - weeksFromNow = moment().add({w: 1}); - - assert.equal(weeksAgo.calendar(), weeksAgo.format('L'), '1 week ago'); - assert.equal(weeksFromNow.calendar(), weeksFromNow.format('L'), 'in 1 week'); - - weeksAgo = moment().subtract({w: 2}); - weeksFromNow = moment().add({w: 2}); - - assert.equal(weeksAgo.calendar(), weeksAgo.format('L'), '2 weeks ago'); - assert.equal(weeksFromNow.calendar(), weeksFromNow.format('L'), 'in 2 weeks'); -}); - -test('weeks year starting sunday formatted', function (assert) { - assert.equal(moment([2011, 11, 26]).format('w ww wo'), '1 01 1.', 'Dec 26 2011 should be week 1'); - assert.equal(moment([2012, 0, 1]).format('w ww wo'), '1 01 1.', 'Jan 1 2012 should be week 1'); - assert.equal(moment([2012, 0, 2]).format('w ww wo'), '2 02 2.', 'Jan 2 2012 should be week 2'); - assert.equal(moment([2012, 0, 8]).format('w ww wo'), '2 02 2.', 'Jan 8 2012 should be week 2'); - assert.equal(moment([2012, 0, 9]).format('w ww wo'), '3 03 3.', 'Jan 9 2012 should be week 3'); -}); - -}))); - - -;(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' - && typeof require === 'function' ? factory(require('../../moment')) : - typeof define === 'function' && define.amd ? define(['../../moment'], factory) : - factory(global.moment) -}(this, (function (moment) { 'use strict'; - -function each(array, callback) { - var i; - for (i = 0; i < array.length; i++) { - callback(array[i], i, array); - } -} - -function objectKeys(obj) { - if (Object.keys) { - return Object.keys(obj); - } else { - // IE8 - var res = [], i; - for (i in obj) { - if (obj.hasOwnProperty(i)) { - res.push(i); - } - } - return res; - } -} - -// Pick the first defined of two or three arguments. - -function defineCommonLocaleTests(locale, options) { - test('lenient day of month ordinal parsing', function (assert) { - var i, ordinalStr, testMoment; - for (i = 1; i <= 31; ++i) { - ordinalStr = moment([2014, 0, i]).format('YYYY MM Do'); - testMoment = moment(ordinalStr, 'YYYY MM Do'); - assert.equal(testMoment.year(), 2014, - 'lenient day of month ordinal parsing ' + i + ' year check'); - assert.equal(testMoment.month(), 0, - 'lenient day of month ordinal parsing ' + i + ' month check'); - assert.equal(testMoment.date(), i, - 'lenient day of month ordinal parsing ' + i + ' date check'); - } - }); - - test('lenient day of month ordinal parsing of number', function (assert) { - var i, testMoment; - for (i = 1; i <= 31; ++i) { - testMoment = moment('2014 01 ' + i, 'YYYY MM Do'); - assert.equal(testMoment.year(), 2014, - 'lenient day of month ordinal parsing of number ' + i + ' year check'); - assert.equal(testMoment.month(), 0, - 'lenient day of month ordinal parsing of number ' + i + ' month check'); - assert.equal(testMoment.date(), i, - 'lenient day of month ordinal parsing of number ' + i + ' date check'); - } - }); - - test('strict day of month ordinal parsing', function (assert) { - var i, ordinalStr, testMoment; - for (i = 1; i <= 31; ++i) { - ordinalStr = moment([2014, 0, i]).format('YYYY MM Do'); - testMoment = moment(ordinalStr, 'YYYY MM Do', true); - assert.ok(testMoment.isValid(), 'strict day of month ordinal parsing ' + i); - } - }); - - test('meridiem invariant', function (assert) { - var h, m, t1, t2; - for (h = 0; h < 24; ++h) { - for (m = 0; m < 60; m += 15) { - t1 = moment.utc([2000, 0, 1, h, m]); - t2 = moment.utc(t1.format('A h:mm'), 'A h:mm'); - assert.equal(t2.format('HH:mm'), t1.format('HH:mm'), - 'meridiem at ' + t1.format('HH:mm')); - } - } - }); - - test('date format correctness', function (assert) { - var data, tokens; - data = moment.localeData()._longDateFormat; - tokens = objectKeys(data); - each(tokens, function (srchToken) { - // Check each format string to make sure it does not contain any - // tokens that need to be expanded. - each(tokens, function (baseToken) { - // strip escaped sequences - var format = data[baseToken].replace(/(\[[^\]]*\])/g, ''); - assert.equal(false, !!~format.indexOf(srchToken), - 'contains ' + srchToken + ' in ' + baseToken); - }); - }); - }); - - test('month parsing correctness', function (assert) { - var i, m; - - if (locale === 'tr') { - // I can't fix it :( - expect(0); - return; - } - function tester(format) { - var r; - r = moment(m.format(format), format); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format); - r = moment(m.format(format).toLocaleUpperCase(), format); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' upper'); - r = moment(m.format(format).toLocaleLowerCase(), format); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' lower'); - - r = moment(m.format(format), format, true); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' strict'); - r = moment(m.format(format).toLocaleUpperCase(), format, true); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' upper strict'); - r = moment(m.format(format).toLocaleLowerCase(), format, true); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' lower strict'); - } - - for (i = 0; i < 12; ++i) { - m = moment([2015, i, 15, 18]); - tester('MMM'); - tester('MMM.'); - tester('MMMM'); - tester('MMMM.'); - } - }); - - test('weekday parsing correctness', function (assert) { - var i, m; - - if (locale === 'tr' || locale === 'az' || locale === 'ro') { - // tr, az: There is a lower-case letter (ı), that converted to - // upper then lower changes to i - // ro: there is the letter ț which behaves weird under IE8 - expect(0); - return; - } - function tester(format) { - var r, baseMsg = 'weekday ' + m.weekday() + ' fmt ' + format + ' ' + m.toISOString(); - r = moment(m.format(format), format); - assert.equal(r.weekday(), m.weekday(), baseMsg); - r = moment(m.format(format).toLocaleUpperCase(), format); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' upper'); - r = moment(m.format(format).toLocaleLowerCase(), format); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' lower'); - - r = moment(m.format(format), format, true); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' strict'); - r = moment(m.format(format).toLocaleUpperCase(), format, true); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' upper strict'); - r = moment(m.format(format).toLocaleLowerCase(), format, true); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' lower strict'); - } - - for (i = 0; i < 7; ++i) { - m = moment.utc([2015, 0, i + 1, 18]); - tester('dd'); - tester('ddd'); - tester('dddd'); - } - }); - - test('valid localeData', function (assert) { - assert.equal(moment().localeData().months().length, 12, 'months should return 12 months'); - assert.equal(moment().localeData().monthsShort().length, 12, 'monthsShort should return 12 months'); - assert.equal(moment().localeData().weekdays().length, 7, 'weekdays should return 7 days'); - assert.equal(moment().localeData().weekdaysShort().length, 7, 'weekdaysShort should return 7 days'); - assert.equal(moment().localeData().weekdaysMin().length, 7, 'monthsShort should return 7 days'); - }); -} - -function setupDeprecationHandler(test, moment$$1, scope) { - test._expectedDeprecations = null; - test._observedDeprecations = null; - test._oldSupress = moment$$1.suppressDeprecationWarnings; - moment$$1.suppressDeprecationWarnings = true; - test.expectedDeprecations = function () { - test._expectedDeprecations = arguments; - test._observedDeprecations = []; - }; - moment$$1.deprecationHandler = function (name, msg) { - var deprecationId = matchedDeprecation(name, msg, test._expectedDeprecations); - if (deprecationId === -1) { - throw new Error('Unexpected deprecation thrown name=' + - name + ' msg=' + msg); - } - test._observedDeprecations[deprecationId] = 1; - }; -} - -function teardownDeprecationHandler(test, moment$$1, scope) { - moment$$1.suppressDeprecationWarnings = test._oldSupress; - - if (test._expectedDeprecations != null) { - var missedDeprecations = []; - each(test._expectedDeprecations, function (deprecationPattern, id) { - if (test._observedDeprecations[id] !== 1) { - missedDeprecations.push(deprecationPattern); - } - }); - if (missedDeprecations.length !== 0) { - throw new Error('Expected deprecation warnings did not happen: ' + - missedDeprecations.join(' ')); - } - } -} - -function matchedDeprecation(name, msg, deprecations) { - if (deprecations == null) { - return -1; - } - for (var i = 0; i < deprecations.length; ++i) { - if (name != null && name === deprecations[i]) { - return i; - } - if (msg != null && msg.substring(0, deprecations[i].length) === deprecations[i]) { - return i; - } - } - return -1; -} - -/*global QUnit:false*/ - -var test = QUnit.test; - -var expect = QUnit.expect; - - - -function localeModule (name, lifecycle) { - QUnit.module('locale:' + name, { - setup : function () { - moment.locale(name); - moment.createFromInputFallback = function (config) { - throw new Error('input not handled by moment: ' + config._i); - }; - setupDeprecationHandler(test, moment, 'locale'); - if (lifecycle && lifecycle.setup) { - lifecycle.setup(); - } - }, - teardown : function () { - moment.locale('en'); - teardownDeprecationHandler(test, moment, 'locale'); - if (lifecycle && lifecycle.teardown) { - lifecycle.teardown(); - } - } - }); - defineCommonLocaleTests(name, -1, -1); -} - -localeModule('ca'); - -test('parse', function (assert) { - var tests = 'gener gen._febrer febr._març març_abril abr._maig maig_juny juny_juliol jul._agost ag._setembre set._octubre oct._novembre nov._desembre des.'.split('_'), i; - function equalTest(input, mmm, i) { - assert.equal(moment(input, mmm).month(), i, input + ' should be month ' + (i + 1)); - } - for (i = 0; i < 12; i++) { - tests[i] = tests[i].split(' '); - equalTest(tests[i][0], 'MMM', i); - equalTest(tests[i][1], 'MMM', i); - equalTest(tests[i][0], 'MMMM', i); - equalTest(tests[i][1], 'MMMM', i); - equalTest(tests[i][0].toLocaleLowerCase(), 'MMMM', i); - equalTest(tests[i][1].toLocaleLowerCase(), 'MMMM', i); - equalTest(tests[i][0].toLocaleUpperCase(), 'MMMM', i); - equalTest(tests[i][1].toLocaleUpperCase(), 'MMMM', i); - } -}); - -test('format', function (assert) { - var a = [ - ['dddd, Do MMMM YYYY, h:mm:ss a', 'diumenge, 14è de febrer 2010, 3:25:50 pm'], - ['ddd, hA', 'dg., 3PM'], - ['M Mo MM MMMM MMM', '2 2n 02 febrer febr.'], - ['YYYY YY', '2010 10'], - ['D Do DD', '14 14è 14'], - ['d do dddd ddd dd', '0 0è diumenge dg. Dg'], - ['DDD DDDo DDDD', '45 45è 045'], - ['w wo ww', '6 6a 06'], - ['h hh', '3 03'], - ['H HH', '15 15'], - ['m mm', '25 25'], - ['s ss', '50 50'], - ['a A', 'pm PM'], - ['[the] DDDo [day of the year]', 'the 45è day of the year'], - ['LTS', '15:25:50'], - ['L', '14/02/2010'], - ['LL', 'el 14 de febrer de 2010'], - ['LLL', 'el 14 de febrer de 2010 a les 15:25'], - ['LLLL', 'el diumenge 14 de febrer de 2010 a les 15:25'], - ['l', '14/2/2010'], - ['ll', '14 febr. 2010'], - ['lll', '14 febr. 2010, 15:25'], - ['llll', 'dg. 14 febr. 2010, 15:25'] - ], - b = moment(new Date(2010, 1, 14, 15, 25, 50, 125)), - i; - for (i = 0; i < a.length; i++) { - assert.equal(b.format(a[i][0]), a[i][1], a[i][0] + ' ---> ' + a[i][1]); - } -}); - -test('format ordinal', function (assert) { - assert.equal(moment([2011, 0, 1]).format('DDDo'), '1r', '1r'); - assert.equal(moment([2011, 0, 2]).format('DDDo'), '2n', '2n'); - assert.equal(moment([2011, 0, 3]).format('DDDo'), '3r', '3r'); - assert.equal(moment([2011, 0, 4]).format('DDDo'), '4t', '4t'); - assert.equal(moment([2011, 0, 5]).format('DDDo'), '5è', '5è'); - assert.equal(moment([2011, 0, 6]).format('DDDo'), '6è', '6è'); - assert.equal(moment([2011, 0, 7]).format('DDDo'), '7è', '7è'); - assert.equal(moment([2011, 0, 8]).format('DDDo'), '8è', '8è'); - assert.equal(moment([2011, 0, 9]).format('DDDo'), '9è', '9è'); - assert.equal(moment([2011, 0, 10]).format('DDDo'), '10è', '10è'); - - assert.equal(moment([2011, 0, 11]).format('DDDo'), '11è', '11è'); - assert.equal(moment([2011, 0, 12]).format('DDDo'), '12è', '12è'); - assert.equal(moment([2011, 0, 13]).format('DDDo'), '13è', '13è'); - assert.equal(moment([2011, 0, 14]).format('DDDo'), '14è', '14è'); - assert.equal(moment([2011, 0, 15]).format('DDDo'), '15è', '15è'); - assert.equal(moment([2011, 0, 16]).format('DDDo'), '16è', '16è'); - assert.equal(moment([2011, 0, 17]).format('DDDo'), '17è', '17è'); - assert.equal(moment([2011, 0, 18]).format('DDDo'), '18è', '18è'); - assert.equal(moment([2011, 0, 19]).format('DDDo'), '19è', '19è'); - assert.equal(moment([2011, 0, 20]).format('DDDo'), '20è', '20è'); - - assert.equal(moment([2011, 0, 21]).format('DDDo'), '21è', '21è'); - assert.equal(moment([2011, 0, 22]).format('DDDo'), '22è', '22è'); - assert.equal(moment([2011, 0, 23]).format('DDDo'), '23è', '23è'); - assert.equal(moment([2011, 0, 24]).format('DDDo'), '24è', '24è'); - assert.equal(moment([2011, 0, 25]).format('DDDo'), '25è', '25è'); - assert.equal(moment([2011, 0, 26]).format('DDDo'), '26è', '26è'); - assert.equal(moment([2011, 0, 27]).format('DDDo'), '27è', '27è'); - assert.equal(moment([2011, 0, 28]).format('DDDo'), '28è', '28è'); - assert.equal(moment([2011, 0, 29]).format('DDDo'), '29è', '29è'); - assert.equal(moment([2011, 0, 30]).format('DDDo'), '30è', '30è'); - - assert.equal(moment([2011, 0, 31]).format('DDDo'), '31è', '31è'); -}); - -test('format month', function (assert) { - var expected = 'gener gen._febrer febr._març març_abril abr._maig maig_juny juny_juliol jul._agost ag._setembre set._octubre oct._novembre nov._desembre des.'.split('_'), i; - for (i = 0; i < expected.length; i++) { - assert.equal(moment([2011, i, 1]).format('MMMM MMM'), expected[i], expected[i]); - } -}); - -test('format week', function (assert) { - var expected = 'diumenge dg. Dg_dilluns dl. Dl_dimarts dt. Dt_dimecres dc. Dc_dijous dj. Dj_divendres dv. Dv_dissabte ds. Ds'.split('_'), i; - for (i = 0; i < expected.length; i++) { - assert.equal(moment([2011, 0, 2 + i]).format('dddd ddd dd'), expected[i], expected[i]); - } -}); - -test('from', function (assert) { - var start = moment([2007, 1, 28]); - assert.equal(start.from(moment([2007, 1, 28]).add({s: 44}), true), 'uns segons', '44 seconds = a few seconds'); - assert.equal(start.from(moment([2007, 1, 28]).add({s: 45}), true), 'un minut', '45 seconds = a minute'); - assert.equal(start.from(moment([2007, 1, 28]).add({s: 89}), true), 'un minut', '89 seconds = a minute'); - assert.equal(start.from(moment([2007, 1, 28]).add({s: 90}), true), '2 minuts', '90 seconds = 2 minutes'); - assert.equal(start.from(moment([2007, 1, 28]).add({m: 44}), true), '44 minuts', '44 minutes = 44 minutes'); - assert.equal(start.from(moment([2007, 1, 28]).add({m: 45}), true), 'una hora', '45 minutes = an hour'); - assert.equal(start.from(moment([2007, 1, 28]).add({m: 89}), true), 'una hora', '89 minutes = an hour'); - assert.equal(start.from(moment([2007, 1, 28]).add({m: 90}), true), '2 hores', '90 minutes = 2 hours'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 5}), true), '5 hores', '5 hours = 5 hours'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 21}), true), '21 hores', '21 hours = 21 hours'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 22}), true), 'un dia', '22 hours = a day'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 35}), true), 'un dia', '35 hours = a day'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 36}), true), '2 dies', '36 hours = 2 days'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 1}), true), 'un dia', '1 day = a day'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 5}), true), '5 dies', '5 days = 5 days'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 25}), true), '25 dies', '25 days = 25 days'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 26}), true), 'un mes', '26 days = a month'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 30}), true), 'un mes', '30 days = a month'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 43}), true), 'un mes', '43 days = a month'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 46}), true), '2 mesos', '46 days = 2 months'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 74}), true), '2 mesos', '75 days = 2 months'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 76}), true), '3 mesos', '76 days = 3 months'); - assert.equal(start.from(moment([2007, 1, 28]).add({M: 1}), true), 'un mes', '1 month = a month'); - assert.equal(start.from(moment([2007, 1, 28]).add({M: 5}), true), '5 mesos', '5 months = 5 months'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 345}), true), 'un any', '345 days = a year'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 548}), true), '2 anys', '548 days = 2 years'); - assert.equal(start.from(moment([2007, 1, 28]).add({y: 1}), true), 'un any', '1 year = a year'); - assert.equal(start.from(moment([2007, 1, 28]).add({y: 5}), true), '5 anys', '5 years = 5 years'); -}); - -test('suffix', function (assert) { - assert.equal(moment(30000).from(0), 'd\'aquí uns segons', 'prefix'); - assert.equal(moment(0).from(30000), 'fa uns segons', 'suffix'); -}); - -test('now from now', function (assert) { - assert.equal(moment().fromNow(), 'fa uns segons', 'now from now should display as in the past'); -}); - -test('fromNow', function (assert) { - assert.equal(moment().add({s: 30}).fromNow(), 'd\'aquí uns segons', 'd\'aquí uns segons'); - assert.equal(moment().add({d: 5}).fromNow(), 'd\'aquí 5 dies', 'd\'aquí 5 dies'); -}); - -test('calendar day', function (assert) { - var a = moment().hours(12).minutes(0).seconds(0); - - assert.equal(moment(a).calendar(), 'avui a les 12:00', 'today at the same time'); - assert.equal(moment(a).add({m: 25}).calendar(), 'avui a les 12:25', 'Now plus 25 min'); - assert.equal(moment(a).add({h: 1}).calendar(), 'avui a les 13:00', 'Now plus 1 hour'); - assert.equal(moment(a).add({d: 1}).calendar(), 'demà a les 12:00', 'tomorrow at the same time'); - assert.equal(moment(a).add({d: 1, h : -1}).calendar(), 'demà a les 11:00', 'tomorrow minus 1 hour'); - assert.equal(moment(a).subtract({h: 1}).calendar(), 'avui a les 11:00', 'Now minus 1 hour'); - assert.equal(moment(a).subtract({d: 1}).calendar(), 'ahir a les 12:00', 'yesterday at the same time'); -}); - -test('calendar next week', function (assert) { - var i, m; - for (i = 2; i < 7; i++) { - m = moment().add({d: i}); - assert.equal(m.calendar(), m.format('dddd [a ' + ((m.hours() !== 1) ? 'les' : 'la') + '] LT'), 'Today + ' + i + ' days current time'); - m.hours(0).minutes(0).seconds(0).milliseconds(0); - assert.equal(m.calendar(), m.format('dddd [a ' + ((m.hours() !== 1) ? 'les' : 'la') + '] LT'), 'Today + ' + i + ' days beginning of day'); - m.hours(23).minutes(59).seconds(59).milliseconds(999); - assert.equal(m.calendar(), m.format('dddd [a ' + ((m.hours() !== 1) ? 'les' : 'la') + '] LT'), 'Today + ' + i + ' days end of day'); - } -}); - -test('calendar last week', function (assert) { - var i, m; - for (i = 2; i < 7; i++) { - m = moment().subtract({d: i}); - assert.equal(m.calendar(), m.format('[el] dddd [passat a ' + ((m.hours() !== 1) ? 'les' : 'la') + '] LT'), 'Today - ' + i + ' days current time'); - m.hours(0).minutes(0).seconds(0).milliseconds(0); - assert.equal(m.calendar(), m.format('[el] dddd [passat a ' + ((m.hours() !== 1) ? 'les' : 'la') + '] LT'), 'Today - ' + i + ' days beginning of day'); - m.hours(23).minutes(59).seconds(59).milliseconds(999); - assert.equal(m.calendar(), m.format('[el] dddd [passat a ' + ((m.hours() !== 1) ? 'les' : 'la') + '] LT'), 'Today - ' + i + ' days end of day'); - } -}); - -test('calendar all else', function (assert) { - var weeksAgo = moment().subtract({w: 1}), - weeksFromNow = moment().add({w: 1}); - - assert.equal(weeksAgo.calendar(), weeksAgo.format('L'), '1 week ago'); - assert.equal(weeksFromNow.calendar(), weeksFromNow.format('L'), 'in 1 week'); - - weeksAgo = moment().subtract({w: 2}); - weeksFromNow = moment().add({w: 2}); - - assert.equal(weeksAgo.calendar(), weeksAgo.format('L'), '2 weeks ago'); - assert.equal(weeksFromNow.calendar(), weeksFromNow.format('L'), 'in 2 weeks'); -}); - -test('weeks year starting sunday formatted', function (assert) { - assert.equal(moment([2012, 0, 1]).format('w ww wo'), '52 52 52a', 'Jan 1 2012 should be week 52'); - assert.equal(moment([2012, 0, 2]).format('w ww wo'), '1 01 1a', 'Jan 2 2012 should be week 1'); - assert.equal(moment([2012, 0, 8]).format('w ww wo'), '1 01 1a', 'Jan 8 2012 should be week 1'); - assert.equal(moment([2012, 0, 9]).format('w ww wo'), '2 02 2a', 'Jan 9 2012 should be week 2'); - assert.equal(moment([2012, 0, 15]).format('w ww wo'), '2 02 2a', 'Jan 15 2012 should be week 2'); -}); - -test('day and month', function (assert) { - assert.equal(moment([2012, 1, 15]).format('D MMMM'), '15 de febrer'); - assert.equal(moment([2012, 9, 15]).format('D MMMM'), '15 d\'octubre'); - assert.equal(moment([2012, 9, 15]).format('MMMM, D'), 'octubre, 15'); -}); - -}))); - - -;(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' - && typeof require === 'function' ? factory(require('../../moment')) : - typeof define === 'function' && define.amd ? define(['../../moment'], factory) : - factory(global.moment) -}(this, (function (moment) { 'use strict'; - -function each(array, callback) { - var i; - for (i = 0; i < array.length; i++) { - callback(array[i], i, array); - } -} - -function objectKeys(obj) { - if (Object.keys) { - return Object.keys(obj); - } else { - // IE8 - var res = [], i; - for (i in obj) { - if (obj.hasOwnProperty(i)) { - res.push(i); - } - } - return res; - } -} - -// Pick the first defined of two or three arguments. - -function defineCommonLocaleTests(locale, options) { - test('lenient day of month ordinal parsing', function (assert) { - var i, ordinalStr, testMoment; - for (i = 1; i <= 31; ++i) { - ordinalStr = moment([2014, 0, i]).format('YYYY MM Do'); - testMoment = moment(ordinalStr, 'YYYY MM Do'); - assert.equal(testMoment.year(), 2014, - 'lenient day of month ordinal parsing ' + i + ' year check'); - assert.equal(testMoment.month(), 0, - 'lenient day of month ordinal parsing ' + i + ' month check'); - assert.equal(testMoment.date(), i, - 'lenient day of month ordinal parsing ' + i + ' date check'); - } - }); - - test('lenient day of month ordinal parsing of number', function (assert) { - var i, testMoment; - for (i = 1; i <= 31; ++i) { - testMoment = moment('2014 01 ' + i, 'YYYY MM Do'); - assert.equal(testMoment.year(), 2014, - 'lenient day of month ordinal parsing of number ' + i + ' year check'); - assert.equal(testMoment.month(), 0, - 'lenient day of month ordinal parsing of number ' + i + ' month check'); - assert.equal(testMoment.date(), i, - 'lenient day of month ordinal parsing of number ' + i + ' date check'); - } - }); - - test('strict day of month ordinal parsing', function (assert) { - var i, ordinalStr, testMoment; - for (i = 1; i <= 31; ++i) { - ordinalStr = moment([2014, 0, i]).format('YYYY MM Do'); - testMoment = moment(ordinalStr, 'YYYY MM Do', true); - assert.ok(testMoment.isValid(), 'strict day of month ordinal parsing ' + i); - } - }); - - test('meridiem invariant', function (assert) { - var h, m, t1, t2; - for (h = 0; h < 24; ++h) { - for (m = 0; m < 60; m += 15) { - t1 = moment.utc([2000, 0, 1, h, m]); - t2 = moment.utc(t1.format('A h:mm'), 'A h:mm'); - assert.equal(t2.format('HH:mm'), t1.format('HH:mm'), - 'meridiem at ' + t1.format('HH:mm')); - } - } - }); - - test('date format correctness', function (assert) { - var data, tokens; - data = moment.localeData()._longDateFormat; - tokens = objectKeys(data); - each(tokens, function (srchToken) { - // Check each format string to make sure it does not contain any - // tokens that need to be expanded. - each(tokens, function (baseToken) { - // strip escaped sequences - var format = data[baseToken].replace(/(\[[^\]]*\])/g, ''); - assert.equal(false, !!~format.indexOf(srchToken), - 'contains ' + srchToken + ' in ' + baseToken); - }); - }); - }); - - test('month parsing correctness', function (assert) { - var i, m; - - if (locale === 'tr') { - // I can't fix it :( - expect(0); - return; - } - function tester(format) { - var r; - r = moment(m.format(format), format); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format); - r = moment(m.format(format).toLocaleUpperCase(), format); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' upper'); - r = moment(m.format(format).toLocaleLowerCase(), format); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' lower'); - - r = moment(m.format(format), format, true); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' strict'); - r = moment(m.format(format).toLocaleUpperCase(), format, true); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' upper strict'); - r = moment(m.format(format).toLocaleLowerCase(), format, true); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' lower strict'); - } - - for (i = 0; i < 12; ++i) { - m = moment([2015, i, 15, 18]); - tester('MMM'); - tester('MMM.'); - tester('MMMM'); - tester('MMMM.'); - } - }); - - test('weekday parsing correctness', function (assert) { - var i, m; - - if (locale === 'tr' || locale === 'az' || locale === 'ro') { - // tr, az: There is a lower-case letter (ı), that converted to - // upper then lower changes to i - // ro: there is the letter ț which behaves weird under IE8 - expect(0); - return; - } - function tester(format) { - var r, baseMsg = 'weekday ' + m.weekday() + ' fmt ' + format + ' ' + m.toISOString(); - r = moment(m.format(format), format); - assert.equal(r.weekday(), m.weekday(), baseMsg); - r = moment(m.format(format).toLocaleUpperCase(), format); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' upper'); - r = moment(m.format(format).toLocaleLowerCase(), format); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' lower'); - - r = moment(m.format(format), format, true); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' strict'); - r = moment(m.format(format).toLocaleUpperCase(), format, true); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' upper strict'); - r = moment(m.format(format).toLocaleLowerCase(), format, true); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' lower strict'); - } - - for (i = 0; i < 7; ++i) { - m = moment.utc([2015, 0, i + 1, 18]); - tester('dd'); - tester('ddd'); - tester('dddd'); - } - }); - - test('valid localeData', function (assert) { - assert.equal(moment().localeData().months().length, 12, 'months should return 12 months'); - assert.equal(moment().localeData().monthsShort().length, 12, 'monthsShort should return 12 months'); - assert.equal(moment().localeData().weekdays().length, 7, 'weekdays should return 7 days'); - assert.equal(moment().localeData().weekdaysShort().length, 7, 'weekdaysShort should return 7 days'); - assert.equal(moment().localeData().weekdaysMin().length, 7, 'monthsShort should return 7 days'); - }); -} - -function setupDeprecationHandler(test, moment$$1, scope) { - test._expectedDeprecations = null; - test._observedDeprecations = null; - test._oldSupress = moment$$1.suppressDeprecationWarnings; - moment$$1.suppressDeprecationWarnings = true; - test.expectedDeprecations = function () { - test._expectedDeprecations = arguments; - test._observedDeprecations = []; - }; - moment$$1.deprecationHandler = function (name, msg) { - var deprecationId = matchedDeprecation(name, msg, test._expectedDeprecations); - if (deprecationId === -1) { - throw new Error('Unexpected deprecation thrown name=' + - name + ' msg=' + msg); - } - test._observedDeprecations[deprecationId] = 1; - }; -} - -function teardownDeprecationHandler(test, moment$$1, scope) { - moment$$1.suppressDeprecationWarnings = test._oldSupress; - - if (test._expectedDeprecations != null) { - var missedDeprecations = []; - each(test._expectedDeprecations, function (deprecationPattern, id) { - if (test._observedDeprecations[id] !== 1) { - missedDeprecations.push(deprecationPattern); - } - }); - if (missedDeprecations.length !== 0) { - throw new Error('Expected deprecation warnings did not happen: ' + - missedDeprecations.join(' ')); - } - } -} - -function matchedDeprecation(name, msg, deprecations) { - if (deprecations == null) { - return -1; - } - for (var i = 0; i < deprecations.length; ++i) { - if (name != null && name === deprecations[i]) { - return i; - } - if (msg != null && msg.substring(0, deprecations[i].length) === deprecations[i]) { - return i; - } - } - return -1; -} - -/*global QUnit:false*/ - -var test = QUnit.test; - -var expect = QUnit.expect; - - - -function localeModule (name, lifecycle) { - QUnit.module('locale:' + name, { - setup : function () { - moment.locale(name); - moment.createFromInputFallback = function (config) { - throw new Error('input not handled by moment: ' + config._i); - }; - setupDeprecationHandler(test, moment, 'locale'); - if (lifecycle && lifecycle.setup) { - lifecycle.setup(); - } - }, - teardown : function () { - moment.locale('en'); - teardownDeprecationHandler(test, moment, 'locale'); - if (lifecycle && lifecycle.teardown) { - lifecycle.teardown(); - } - } - }); - defineCommonLocaleTests(name, -1, -1); -} - -localeModule('cs'); - -test('parse', function (assert) { - var tests = 'leden led_únor úno_březen bře_duben dub_květen kvě_červen čvn_červenec čvc_srpen srp_září zář_říjen říj_listopad lis_prosinec pro'.split('_'), i; - function equalTest(input, mmm, monthIndex) { - assert.equal(moment(input, mmm).month(), monthIndex, input + ' ' + mmm + ' should be month ' + (monthIndex + 1)); - } - function equalTestStrict(input, mmm, monthIndex) { - assert.equal(moment(input, mmm, true).month(), monthIndex, input + ' ' + mmm + ' should be strict month ' + (monthIndex + 1)); - } - for (i = 0; i < 12; i++) { - tests[i] = tests[i].split(' '); - equalTest(tests[i][0], 'MMM', i); - equalTest(tests[i][1], 'MMM', i); - equalTest(tests[i][0], 'MMMM', i); - equalTest(tests[i][1], 'MMMM', i); - equalTest(tests[i][0].toLocaleLowerCase(), 'MMMM', i); - equalTest(tests[i][1].toLocaleLowerCase(), 'MMMM', i); - equalTest(tests[i][0].toLocaleUpperCase(), 'MMMM', i); - equalTest(tests[i][1].toLocaleUpperCase(), 'MMMM', i); - - equalTestStrict(tests[i][1], 'MMM', i); - equalTestStrict(tests[i][0], 'MMMM', i); - equalTestStrict(tests[i][1].toLocaleLowerCase(), 'MMM', i); - equalTestStrict(tests[i][1].toLocaleUpperCase(), 'MMM', i); - equalTestStrict(tests[i][0].toLocaleLowerCase(), 'MMMM', i); - equalTestStrict(tests[i][0].toLocaleUpperCase(), 'MMMM', i); - } -}); - -test('format', function (assert) { - var a = [ - ['dddd, MMMM Do YYYY, h:mm:ss', 'neděle, únor 14. 2010, 3:25:50'], - ['ddd, h', 'ne, 3'], - ['M Mo MM MMMM MMM', '2 2. 02 únor úno'], - ['YYYY YY', '2010 10'], - ['D Do DD', '14 14. 14'], - ['d do dddd ddd dd', '0 0. neděle ne ne'], - ['DDD DDDo DDDD', '45 45. 045'], - ['w wo ww', '6 6. 06'], - ['h hh', '3 03'], - ['H HH', '15 15'], - ['m mm', '25 25'], - ['s ss', '50 50'], - ['a A', 'pm PM'], - ['DDDo [den v roce]', '45. den v roce'], - ['LTS', '15:25:50'], - ['L', '14.02.2010'], - ['LL', '14. únor 2010'], - ['LLL', '14. únor 2010 15:25'], - ['LLLL', 'neděle 14. únor 2010 15:25'], - ['l', '14. 2. 2010'], - ['ll', '14. úno 2010'], - ['lll', '14. úno 2010 15:25'], - ['llll', 'ne 14. úno 2010 15:25'] - ], - b = moment(new Date(2010, 1, 14, 15, 25, 50, 125)), - i; - for (i = 0; i < a.length; i++) { - assert.equal(b.format(a[i][0]), a[i][1], a[i][0] + ' ---> ' + a[i][1]); - } -}); - -test('format ordinal', function (assert) { - assert.equal(moment([2011, 0, 1]).format('DDDo'), '1.', '1.'); - assert.equal(moment([2011, 0, 2]).format('DDDo'), '2.', '2.'); - assert.equal(moment([2011, 0, 3]).format('DDDo'), '3.', '3.'); - assert.equal(moment([2011, 0, 4]).format('DDDo'), '4.', '4.'); - assert.equal(moment([2011, 0, 5]).format('DDDo'), '5.', '5.'); - assert.equal(moment([2011, 0, 6]).format('DDDo'), '6.', '6.'); - assert.equal(moment([2011, 0, 7]).format('DDDo'), '7.', '7.'); - assert.equal(moment([2011, 0, 8]).format('DDDo'), '8.', '8.'); - assert.equal(moment([2011, 0, 9]).format('DDDo'), '9.', '9.'); - assert.equal(moment([2011, 0, 10]).format('DDDo'), '10.', '10.'); - - assert.equal(moment([2011, 0, 11]).format('DDDo'), '11.', '11.'); - assert.equal(moment([2011, 0, 12]).format('DDDo'), '12.', '12.'); - assert.equal(moment([2011, 0, 13]).format('DDDo'), '13.', '13.'); - assert.equal(moment([2011, 0, 14]).format('DDDo'), '14.', '14.'); - assert.equal(moment([2011, 0, 15]).format('DDDo'), '15.', '15.'); - assert.equal(moment([2011, 0, 16]).format('DDDo'), '16.', '16.'); - assert.equal(moment([2011, 0, 17]).format('DDDo'), '17.', '17.'); - assert.equal(moment([2011, 0, 18]).format('DDDo'), '18.', '18.'); - assert.equal(moment([2011, 0, 19]).format('DDDo'), '19.', '19.'); - assert.equal(moment([2011, 0, 20]).format('DDDo'), '20.', '20.'); - - assert.equal(moment([2011, 0, 21]).format('DDDo'), '21.', '21.'); - assert.equal(moment([2011, 0, 22]).format('DDDo'), '22.', '22.'); - assert.equal(moment([2011, 0, 23]).format('DDDo'), '23.', '23.'); - assert.equal(moment([2011, 0, 24]).format('DDDo'), '24.', '24.'); - assert.equal(moment([2011, 0, 25]).format('DDDo'), '25.', '25.'); - assert.equal(moment([2011, 0, 26]).format('DDDo'), '26.', '26.'); - assert.equal(moment([2011, 0, 27]).format('DDDo'), '27.', '27.'); - assert.equal(moment([2011, 0, 28]).format('DDDo'), '28.', '28.'); - assert.equal(moment([2011, 0, 29]).format('DDDo'), '29.', '29.'); - assert.equal(moment([2011, 0, 30]).format('DDDo'), '30.', '30.'); - - assert.equal(moment([2011, 0, 31]).format('DDDo'), '31.', '31.'); -}); - -test('format month', function (assert) { - var expected = 'leden led_únor úno_březen bře_duben dub_květen kvě_červen čvn_červenec čvc_srpen srp_září zář_říjen říj_listopad lis_prosinec pro'.split('_'), i; - for (i = 0; i < expected.length; i++) { - assert.equal(moment([2011, i, 1]).format('MMMM MMM'), expected[i], expected[i]); - } -}); - -test('format week', function (assert) { - var expected = 'neděle ne ne_pondělí po po_úterý út út_středa st st_čtvrtek čt čt_pátek pá pá_sobota so so'.split('_'), i; - for (i = 0; i < expected.length; i++) { - assert.equal(moment([2011, 0, 2 + i]).format('dddd ddd dd'), expected[i], expected[i]); - } -}); - -test('from', function (assert) { - var start = moment([2007, 1, 28]); - assert.equal(start.from(moment([2007, 1, 28]).add({s: 44}), true), 'pár sekund', '44 seconds = a few seconds'); - assert.equal(start.from(moment([2007, 1, 28]).add({s: 45}), true), 'minuta', '45 seconds = a minute'); - assert.equal(start.from(moment([2007, 1, 28]).add({s: 89}), true), 'minuta', '89 seconds = a minute'); - assert.equal(start.from(moment([2007, 1, 28]).add({s: 90}), true), '2 minuty', '90 seconds = 2 minutes'); - assert.equal(start.from(moment([2007, 1, 28]).add({m: 44}), true), '44 minut', '44 minutes = 44 minutes'); - assert.equal(start.from(moment([2007, 1, 28]).add({m: 45}), true), 'hodina', '45 minutes = an hour'); - assert.equal(start.from(moment([2007, 1, 28]).add({m: 89}), true), 'hodina', '89 minutes = an hour'); - assert.equal(start.from(moment([2007, 1, 28]).add({m: 90}), true), '2 hodiny', '90 minutes = 2 hours'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 5}), true), '5 hodin', '5 hours = 5 hours'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 21}), true), '21 hodin', '21 hours = 21 hours'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 22}), true), 'den', '22 hours = a day'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 35}), true), 'den', '35 hours = a day'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 36}), true), '2 dny', '36 hours = 2 days'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 1}), true), 'den', '1 day = a day'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 5}), true), '5 dní', '5 days = 5 days'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 25}), true), '25 dní', '25 days = 25 days'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 26}), true), 'měsíc', '26 days = a month'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 30}), true), 'měsíc', '30 days = a month'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 43}), true), 'měsíc', '43 days = a month'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 46}), true), '2 měsíce', '46 days = 2 months'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 74}), true), '2 měsíce', '75 days = 2 months'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 76}), true), '3 měsíce', '76 days = 3 months'); - assert.equal(start.from(moment([2007, 1, 28]).add({M: 1}), true), 'měsíc', '1 month = a month'); - assert.equal(start.from(moment([2007, 1, 28]).add({M: 5}), true), '5 měsíců', '5 months = 5 months'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 345}), true), 'rok', '345 days = a year'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 548}), true), '2 roky', '548 days = 2 years'); - assert.equal(start.from(moment([2007, 1, 28]).add({y: 1}), true), 'rok', '1 year = a year'); - assert.equal(start.from(moment([2007, 1, 28]).add({y: 5}), true), '5 let', '5 years = 5 years'); -}); - -test('suffix', function (assert) { - assert.equal(moment(30000).from(0), 'za pár sekund', 'prefix'); - assert.equal(moment(0).from(30000), 'před pár sekundami', 'suffix'); -}); - -test('now from now', function (assert) { - assert.equal(moment().fromNow(), 'před pár sekundami', 'now from now should display as in the past'); -}); - -test('fromNow (future)', function (assert) { - assert.equal(moment().add({s: 30}).fromNow(), 'za pár sekund', 'in a few seconds'); - assert.equal(moment().add({m: 1}).fromNow(), 'za minutu', 'in a minute'); - assert.equal(moment().add({m: 3}).fromNow(), 'za 3 minuty', 'in 3 minutes'); - assert.equal(moment().add({m: 10}).fromNow(), 'za 10 minut', 'in 10 minutes'); - assert.equal(moment().add({h: 1}).fromNow(), 'za hodinu', 'in an hour'); - assert.equal(moment().add({h: 3}).fromNow(), 'za 3 hodiny', 'in 3 hours'); - assert.equal(moment().add({h: 10}).fromNow(), 'za 10 hodin', 'in 10 hours'); - assert.equal(moment().add({d: 1}).fromNow(), 'za den', 'in a day'); - assert.equal(moment().add({d: 3}).fromNow(), 'za 3 dny', 'in 3 days'); - assert.equal(moment().add({d: 10}).fromNow(), 'za 10 dní', 'in 10 days'); - assert.equal(moment().add({M: 1}).fromNow(), 'za měsíc', 'in a month'); - assert.equal(moment().add({M: 3}).fromNow(), 'za 3 měsíce', 'in 3 months'); - assert.equal(moment().add({M: 10}).fromNow(), 'za 10 měsíců', 'in 10 months'); - assert.equal(moment().add({y: 1}).fromNow(), 'za rok', 'in a year'); - assert.equal(moment().add({y: 3}).fromNow(), 'za 3 roky', 'in 3 years'); - assert.equal(moment().add({y: 10}).fromNow(), 'za 10 let', 'in 10 years'); -}); - -test('fromNow (past)', function (assert) { - assert.equal(moment().subtract({s: 30}).fromNow(), 'před pár sekundami', 'a few seconds ago'); - assert.equal(moment().subtract({m: 1}).fromNow(), 'před minutou', 'a minute ago'); - assert.equal(moment().subtract({m: 3}).fromNow(), 'před 3 minutami', '3 minutes ago'); - assert.equal(moment().subtract({m: 10}).fromNow(), 'před 10 minutami', '10 minutes ago'); - assert.equal(moment().subtract({h: 1}).fromNow(), 'před hodinou', 'an hour ago'); - assert.equal(moment().subtract({h: 3}).fromNow(), 'před 3 hodinami', '3 hours ago'); - assert.equal(moment().subtract({h: 10}).fromNow(), 'před 10 hodinami', '10 hours ago'); - assert.equal(moment().subtract({d: 1}).fromNow(), 'před dnem', 'a day ago'); - assert.equal(moment().subtract({d: 3}).fromNow(), 'před 3 dny', '3 days ago'); - assert.equal(moment().subtract({d: 10}).fromNow(), 'před 10 dny', '10 days ago'); - assert.equal(moment().subtract({M: 1}).fromNow(), 'před měsícem', 'a month ago'); - assert.equal(moment().subtract({M: 3}).fromNow(), 'před 3 měsíci', '3 months ago'); - assert.equal(moment().subtract({M: 10}).fromNow(), 'před 10 měsíci', '10 months ago'); - assert.equal(moment().subtract({y: 1}).fromNow(), 'před rokem', 'a year ago'); - assert.equal(moment().subtract({y: 3}).fromNow(), 'před 3 lety', '3 years ago'); - assert.equal(moment().subtract({y: 10}).fromNow(), 'před 10 lety', '10 years ago'); -}); - -test('calendar day', function (assert) { - var a = moment().hours(12).minutes(0).seconds(0); - - assert.equal(moment(a).calendar(), 'dnes v 12:00', 'today at the same time'); - assert.equal(moment(a).add({m: 25}).calendar(), 'dnes v 12:25', 'Now plus 25 min'); - assert.equal(moment(a).add({h: 1}).calendar(), 'dnes v 13:00', 'Now plus 1 hour'); - assert.equal(moment(a).add({d: 1}).calendar(), 'zítra v 12:00', 'tomorrow at the same time'); - assert.equal(moment(a).subtract({h: 1}).calendar(), 'dnes v 11:00', 'Now minus 1 hour'); - assert.equal(moment(a).subtract({d: 1}).calendar(), 'včera v 12:00', 'yesterday at the same time'); -}); - -test('calendar next week', function (assert) { - var i, m, nextDay; - for (i = 2; i < 7; i++) { - m = moment().add({d: i}); - nextDay = ''; - switch (m.day()) { - case 0: - nextDay = 'v neděli'; - break; - case 1: - nextDay = 'v pondělí'; - break; - case 2: - nextDay = 'v úterý'; - break; - case 3: - nextDay = 've středu'; - break; - case 4: - nextDay = 've čtvrtek'; - break; - case 5: - nextDay = 'v pátek'; - break; - case 6: - nextDay = 'v sobotu'; - break; - } - assert.equal(m.calendar(), m.format('[' + nextDay + '] [v] LT'), 'Today + ' + i + ' days current time'); - m.hours(0).minutes(0).seconds(0).milliseconds(0); - assert.equal(m.calendar(), m.format('[' + nextDay + '] [v] LT'), 'Today + ' + i + ' days beginning of day'); - m.hours(23).minutes(59).seconds(59).milliseconds(999); - assert.equal(m.calendar(), m.format('[' + nextDay + '] [v] LT'), 'Today + ' + i + ' days end of day'); - } -}); - -test('calendar last week', function (assert) { - var i, m, lastDay; - for (i = 2; i < 7; i++) { - m = moment().subtract({d: i}); - lastDay = ''; - switch (m.day()) { - case 0: - lastDay = 'minulou neděli'; - break; - case 1: - lastDay = 'minulé pondělí'; - break; - case 2: - lastDay = 'minulé úterý'; - break; - case 3: - lastDay = 'minulou středu'; - break; - case 4: - lastDay = 'minulý čtvrtek'; - break; - case 5: - lastDay = 'minulý pátek'; - break; - case 6: - lastDay = 'minulou sobotu'; - break; - } - assert.equal(m.calendar(), m.format('[' + lastDay + '] [v] LT'), 'Today - ' + i + ' days current time'); - m.hours(0).minutes(0).seconds(0).milliseconds(0); - assert.equal(m.calendar(), m.format('[' + lastDay + '] [v] LT'), 'Today - ' + i + ' days beginning of day'); - m.hours(23).minutes(59).seconds(59).milliseconds(999); - assert.equal(m.calendar(), m.format('[' + lastDay + '] [v] LT'), 'Today - ' + i + ' days end of day'); - } -}); - -test('calendar all else', function (assert) { - var weeksAgo = moment().subtract({w: 1}), - weeksFromNow = moment().add({w: 1}); - - assert.equal(weeksAgo.calendar(), weeksAgo.format('L'), '1 week ago'); - assert.equal(weeksFromNow.calendar(), weeksFromNow.format('L'), 'in 1 week'); - - weeksAgo = moment().subtract({w: 2}); - weeksFromNow = moment().add({w: 2}); - - assert.equal(weeksAgo.calendar(), weeksAgo.format('L'), '2 weeks ago'); - assert.equal(weeksFromNow.calendar(), weeksFromNow.format('L'), 'in 2 weeks'); -}); - -test('humanize duration', function (assert) { - assert.equal(moment.duration(1, 'minutes').humanize(), 'minuta', 'a minute (future)'); - assert.equal(moment.duration(1, 'minutes').humanize(true), 'za minutu', 'in a minute'); - assert.equal(moment.duration(-1, 'minutes').humanize(), 'minuta', 'a minute (past)'); - assert.equal(moment.duration(-1, 'minutes').humanize(true), 'před minutou', 'a minute ago'); -}); - -test('weeks year starting sunday formatted', function (assert) { - assert.equal(moment([2012, 0, 1]).format('w ww wo'), '52 52 52.', 'Jan 1 2012 should be week 52'); - assert.equal(moment([2012, 0, 2]).format('w ww wo'), '1 01 1.', 'Jan 2 2012 should be week 1'); - assert.equal(moment([2012, 0, 8]).format('w ww wo'), '1 01 1.', 'Jan 8 2012 should be week 1'); - assert.equal(moment([2012, 0, 9]).format('w ww wo'), '2 02 2.', 'Jan 9 2012 should be week 2'); - assert.equal(moment([2012, 0, 15]).format('w ww wo'), '2 02 2.', 'Jan 15 2012 should be week 2'); -}); - -}))); - - -;(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' - && typeof require === 'function' ? factory(require('../../moment')) : - typeof define === 'function' && define.amd ? define(['../../moment'], factory) : - factory(global.moment) -}(this, (function (moment) { 'use strict'; - -function each(array, callback) { - var i; - for (i = 0; i < array.length; i++) { - callback(array[i], i, array); - } -} - -function objectKeys(obj) { - if (Object.keys) { - return Object.keys(obj); - } else { - // IE8 - var res = [], i; - for (i in obj) { - if (obj.hasOwnProperty(i)) { - res.push(i); - } - } - return res; - } -} - -// Pick the first defined of two or three arguments. - -function defineCommonLocaleTests(locale, options) { - test('lenient day of month ordinal parsing', function (assert) { - var i, ordinalStr, testMoment; - for (i = 1; i <= 31; ++i) { - ordinalStr = moment([2014, 0, i]).format('YYYY MM Do'); - testMoment = moment(ordinalStr, 'YYYY MM Do'); - assert.equal(testMoment.year(), 2014, - 'lenient day of month ordinal parsing ' + i + ' year check'); - assert.equal(testMoment.month(), 0, - 'lenient day of month ordinal parsing ' + i + ' month check'); - assert.equal(testMoment.date(), i, - 'lenient day of month ordinal parsing ' + i + ' date check'); - } - }); - - test('lenient day of month ordinal parsing of number', function (assert) { - var i, testMoment; - for (i = 1; i <= 31; ++i) { - testMoment = moment('2014 01 ' + i, 'YYYY MM Do'); - assert.equal(testMoment.year(), 2014, - 'lenient day of month ordinal parsing of number ' + i + ' year check'); - assert.equal(testMoment.month(), 0, - 'lenient day of month ordinal parsing of number ' + i + ' month check'); - assert.equal(testMoment.date(), i, - 'lenient day of month ordinal parsing of number ' + i + ' date check'); - } - }); - - test('strict day of month ordinal parsing', function (assert) { - var i, ordinalStr, testMoment; - for (i = 1; i <= 31; ++i) { - ordinalStr = moment([2014, 0, i]).format('YYYY MM Do'); - testMoment = moment(ordinalStr, 'YYYY MM Do', true); - assert.ok(testMoment.isValid(), 'strict day of month ordinal parsing ' + i); - } - }); - - test('meridiem invariant', function (assert) { - var h, m, t1, t2; - for (h = 0; h < 24; ++h) { - for (m = 0; m < 60; m += 15) { - t1 = moment.utc([2000, 0, 1, h, m]); - t2 = moment.utc(t1.format('A h:mm'), 'A h:mm'); - assert.equal(t2.format('HH:mm'), t1.format('HH:mm'), - 'meridiem at ' + t1.format('HH:mm')); - } - } - }); - - test('date format correctness', function (assert) { - var data, tokens; - data = moment.localeData()._longDateFormat; - tokens = objectKeys(data); - each(tokens, function (srchToken) { - // Check each format string to make sure it does not contain any - // tokens that need to be expanded. - each(tokens, function (baseToken) { - // strip escaped sequences - var format = data[baseToken].replace(/(\[[^\]]*\])/g, ''); - assert.equal(false, !!~format.indexOf(srchToken), - 'contains ' + srchToken + ' in ' + baseToken); - }); - }); - }); - - test('month parsing correctness', function (assert) { - var i, m; - - if (locale === 'tr') { - // I can't fix it :( - expect(0); - return; - } - function tester(format) { - var r; - r = moment(m.format(format), format); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format); - r = moment(m.format(format).toLocaleUpperCase(), format); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' upper'); - r = moment(m.format(format).toLocaleLowerCase(), format); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' lower'); - - r = moment(m.format(format), format, true); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' strict'); - r = moment(m.format(format).toLocaleUpperCase(), format, true); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' upper strict'); - r = moment(m.format(format).toLocaleLowerCase(), format, true); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' lower strict'); - } - - for (i = 0; i < 12; ++i) { - m = moment([2015, i, 15, 18]); - tester('MMM'); - tester('MMM.'); - tester('MMMM'); - tester('MMMM.'); - } - }); - - test('weekday parsing correctness', function (assert) { - var i, m; - - if (locale === 'tr' || locale === 'az' || locale === 'ro') { - // tr, az: There is a lower-case letter (ı), that converted to - // upper then lower changes to i - // ro: there is the letter ț which behaves weird under IE8 - expect(0); - return; - } - function tester(format) { - var r, baseMsg = 'weekday ' + m.weekday() + ' fmt ' + format + ' ' + m.toISOString(); - r = moment(m.format(format), format); - assert.equal(r.weekday(), m.weekday(), baseMsg); - r = moment(m.format(format).toLocaleUpperCase(), format); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' upper'); - r = moment(m.format(format).toLocaleLowerCase(), format); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' lower'); - - r = moment(m.format(format), format, true); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' strict'); - r = moment(m.format(format).toLocaleUpperCase(), format, true); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' upper strict'); - r = moment(m.format(format).toLocaleLowerCase(), format, true); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' lower strict'); - } - - for (i = 0; i < 7; ++i) { - m = moment.utc([2015, 0, i + 1, 18]); - tester('dd'); - tester('ddd'); - tester('dddd'); - } - }); - - test('valid localeData', function (assert) { - assert.equal(moment().localeData().months().length, 12, 'months should return 12 months'); - assert.equal(moment().localeData().monthsShort().length, 12, 'monthsShort should return 12 months'); - assert.equal(moment().localeData().weekdays().length, 7, 'weekdays should return 7 days'); - assert.equal(moment().localeData().weekdaysShort().length, 7, 'weekdaysShort should return 7 days'); - assert.equal(moment().localeData().weekdaysMin().length, 7, 'monthsShort should return 7 days'); - }); -} - -function setupDeprecationHandler(test, moment$$1, scope) { - test._expectedDeprecations = null; - test._observedDeprecations = null; - test._oldSupress = moment$$1.suppressDeprecationWarnings; - moment$$1.suppressDeprecationWarnings = true; - test.expectedDeprecations = function () { - test._expectedDeprecations = arguments; - test._observedDeprecations = []; - }; - moment$$1.deprecationHandler = function (name, msg) { - var deprecationId = matchedDeprecation(name, msg, test._expectedDeprecations); - if (deprecationId === -1) { - throw new Error('Unexpected deprecation thrown name=' + - name + ' msg=' + msg); - } - test._observedDeprecations[deprecationId] = 1; - }; -} - -function teardownDeprecationHandler(test, moment$$1, scope) { - moment$$1.suppressDeprecationWarnings = test._oldSupress; - - if (test._expectedDeprecations != null) { - var missedDeprecations = []; - each(test._expectedDeprecations, function (deprecationPattern, id) { - if (test._observedDeprecations[id] !== 1) { - missedDeprecations.push(deprecationPattern); - } - }); - if (missedDeprecations.length !== 0) { - throw new Error('Expected deprecation warnings did not happen: ' + - missedDeprecations.join(' ')); - } - } -} - -function matchedDeprecation(name, msg, deprecations) { - if (deprecations == null) { - return -1; - } - for (var i = 0; i < deprecations.length; ++i) { - if (name != null && name === deprecations[i]) { - return i; - } - if (msg != null && msg.substring(0, deprecations[i].length) === deprecations[i]) { - return i; - } - } - return -1; -} - -/*global QUnit:false*/ - -var test = QUnit.test; - -var expect = QUnit.expect; - - - -function localeModule (name, lifecycle) { - QUnit.module('locale:' + name, { - setup : function () { - moment.locale(name); - moment.createFromInputFallback = function (config) { - throw new Error('input not handled by moment: ' + config._i); - }; - setupDeprecationHandler(test, moment, 'locale'); - if (lifecycle && lifecycle.setup) { - lifecycle.setup(); - } - }, - teardown : function () { - moment.locale('en'); - teardownDeprecationHandler(test, moment, 'locale'); - if (lifecycle && lifecycle.teardown) { - lifecycle.teardown(); - } - } - }); - defineCommonLocaleTests(name, -1, -1); -} - -localeModule('cv'); - -test('parse', function (assert) { - var tests = 'кӑрлач кӑр_нарӑс нар_пуш пуш_ака ака_май май_ҫӗртме ҫӗр_утӑ утӑ_ҫурла ҫур_авӑн авн_юпа юпа_чӳк чӳк_раштав раш'.split('_'), i; - function equalTest(input, mmm, i) { - assert.equal(moment(input, mmm).month(), i, input + ' should be month ' + (i + 1)); - } - for (i = 0; i < 12; i++) { - tests[i] = tests[i].split(' '); - equalTest(tests[i][0], 'MMM', i); - equalTest(tests[i][1], 'MMM', i); - equalTest(tests[i][0], 'MMMM', i); - equalTest(tests[i][1], 'MMMM', i); - equalTest(tests[i][0].toLocaleLowerCase(), 'MMMM', i); - equalTest(tests[i][1].toLocaleLowerCase(), 'MMMM', i); - equalTest(tests[i][0].toLocaleUpperCase(), 'MMMM', i); - equalTest(tests[i][1].toLocaleUpperCase(), 'MMMM', i); - } -}); - -test('format', function (assert) { - var a = [ - ['dddd, MMMM Do YYYY, h:mm:ss a', 'вырсарникун, нарӑс 14-мӗш 2010, 3:25:50 pm'], - ['ddd, hA', 'выр, 3PM'], - ['M Mo MM MMMM MMM', '2 2-мӗш 02 нарӑс нар'], - ['YYYY YY', '2010 10'], - ['D Do DD', '14 14-мӗш 14'], - ['d do dddd ddd dd', '0 0-мӗш вырсарникун выр вр'], - ['DDD DDDo DDDD', '45 45-мӗш 045'], - ['w wo ww', '7 7-мӗш 07'], - ['h hh', '3 03'], - ['H HH', '15 15'], - ['m mm', '25 25'], - ['s ss', '50 50'], - ['a A', 'pm PM'], - ['Ҫулӑн DDDo кунӗ', 'Ҫулӑн 45-мӗш кунӗ'], - ['LTS', '15:25:50'], - ['L', '14-02-2010'], - ['LL', '2010 ҫулхи нарӑс уйӑхӗн 14-мӗшӗ'], - ['LLL', '2010 ҫулхи нарӑс уйӑхӗн 14-мӗшӗ, 15:25'], - ['LLLL', 'вырсарникун, 2010 ҫулхи нарӑс уйӑхӗн 14-мӗшӗ, 15:25'], - ['l', '14-2-2010'], - ['ll', '2010 ҫулхи нар уйӑхӗн 14-мӗшӗ'], - ['lll', '2010 ҫулхи нар уйӑхӗн 14-мӗшӗ, 15:25'], - ['llll', 'выр, 2010 ҫулхи нар уйӑхӗн 14-мӗшӗ, 15:25'] - ], - b = moment(new Date(2010, 1, 14, 15, 25, 50, 125)), - i; - for (i = 0; i < a.length; i++) { - assert.equal(b.format(a[i][0]), a[i][1], a[i][0] + ' ---> ' + a[i][1]); - } -}); - -test('format ordinal', function (assert) { - assert.equal(moment([2011, 0, 1]).format('DDDo'), '1-мӗш', '1-мӗш'); - assert.equal(moment([2011, 0, 2]).format('DDDo'), '2-мӗш', '2-мӗш'); - assert.equal(moment([2011, 0, 3]).format('DDDo'), '3-мӗш', '3-мӗш'); - assert.equal(moment([2011, 0, 4]).format('DDDo'), '4-мӗш', '4-мӗш'); - assert.equal(moment([2011, 0, 5]).format('DDDo'), '5-мӗш', '5-мӗш'); - assert.equal(moment([2011, 0, 6]).format('DDDo'), '6-мӗш', '6-мӗш'); - assert.equal(moment([2011, 0, 7]).format('DDDo'), '7-мӗш', '7-мӗш'); - assert.equal(moment([2011, 0, 8]).format('DDDo'), '8-мӗш', '8-мӗш'); - assert.equal(moment([2011, 0, 9]).format('DDDo'), '9-мӗш', '9-мӗш'); - assert.equal(moment([2011, 0, 10]).format('DDDo'), '10-мӗш', '10-мӗш'); - - assert.equal(moment([2011, 0, 11]).format('DDDo'), '11-мӗш', '11-мӗш'); - assert.equal(moment([2011, 0, 12]).format('DDDo'), '12-мӗш', '12-мӗш'); - assert.equal(moment([2011, 0, 13]).format('DDDo'), '13-мӗш', '13-мӗш'); - assert.equal(moment([2011, 0, 14]).format('DDDo'), '14-мӗш', '14-мӗш'); - assert.equal(moment([2011, 0, 15]).format('DDDo'), '15-мӗш', '15-мӗш'); - assert.equal(moment([2011, 0, 16]).format('DDDo'), '16-мӗш', '16-мӗш'); - assert.equal(moment([2011, 0, 17]).format('DDDo'), '17-мӗш', '17-мӗш'); - assert.equal(moment([2011, 0, 18]).format('DDDo'), '18-мӗш', '18-мӗш'); - assert.equal(moment([2011, 0, 19]).format('DDDo'), '19-мӗш', '19-мӗш'); - assert.equal(moment([2011, 0, 20]).format('DDDo'), '20-мӗш', '20-мӗш'); - - assert.equal(moment([2011, 0, 21]).format('DDDo'), '21-мӗш', '21-мӗш'); - assert.equal(moment([2011, 0, 22]).format('DDDo'), '22-мӗш', '22-мӗш'); - assert.equal(moment([2011, 0, 23]).format('DDDo'), '23-мӗш', '23-мӗш'); - assert.equal(moment([2011, 0, 24]).format('DDDo'), '24-мӗш', '24-мӗш'); - assert.equal(moment([2011, 0, 25]).format('DDDo'), '25-мӗш', '25-мӗш'); - assert.equal(moment([2011, 0, 26]).format('DDDo'), '26-мӗш', '26-мӗш'); - assert.equal(moment([2011, 0, 27]).format('DDDo'), '27-мӗш', '27-мӗш'); - assert.equal(moment([2011, 0, 28]).format('DDDo'), '28-мӗш', '28-мӗш'); - assert.equal(moment([2011, 0, 29]).format('DDDo'), '29-мӗш', '29-мӗш'); - assert.equal(moment([2011, 0, 30]).format('DDDo'), '30-мӗш', '30-мӗш'); - - assert.equal(moment([2011, 0, 31]).format('DDDo'), '31-мӗш', '31-мӗш'); -}); - -test('format month', function (assert) { - var expected = 'кӑрлач кӑр_нарӑс нар_пуш пуш_ака ака_май май_ҫӗртме ҫӗр_утӑ утӑ_ҫурла ҫур_авӑн авн_юпа юпа_чӳк чӳк_раштав раш'.split('_'), i; - for (i = 0; i < expected.length; i++) { - assert.equal(moment([2011, i, 1]).format('MMMM MMM'), expected[i], expected[i]); - } -}); - -test('format week', function (assert) { - var expected = 'вырсарникун выр вр_тунтикун тун тн_ытларикун ытл ыт_юнкун юн юн_кӗҫнерникун кӗҫ кҫ_эрнекун эрн эр_шӑматкун шӑм шм'.split('_'), i; - for (i = 0; i < expected.length; i++) { - assert.equal(moment([2011, 0, 2 + i]).format('dddd ddd dd'), expected[i], expected[i]); - } -}); - -test('from', function (assert) { - var start = moment([2007, 1, 28]); - assert.equal(start.from(moment([2007, 1, 28]).add({s: 44}), true), 'пӗр-ик ҫеккунт', '44 sekunder = a few seconds'); - assert.equal(start.from(moment([2007, 1, 28]).add({s: 45}), true), 'пӗр минут', '45 seconds = a minute'); - assert.equal(start.from(moment([2007, 1, 28]).add({s: 89}), true), 'пӗр минут', '89 seconds = a minute'); - assert.equal(start.from(moment([2007, 1, 28]).add({s: 90}), true), '2 минут', '90 seconds = 2 minutes'); - assert.equal(start.from(moment([2007, 1, 28]).add({m: 44}), true), '44 минут', '44 minutes = 44 minutes'); - assert.equal(start.from(moment([2007, 1, 28]).add({m: 45}), true), 'пӗр сехет', '45 minutes = an hour'); - assert.equal(start.from(moment([2007, 1, 28]).add({m: 89}), true), 'пӗр сехет', '89 minutes = an hour'); - assert.equal(start.from(moment([2007, 1, 28]).add({m: 90}), true), '2 сехет', '90 minutes = 2 hours'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 5}), true), '5 сехет', '5 hours = 5 hours'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 21}), true), '21 сехет', '21 hours = 21 hours'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 22}), true), 'пӗр кун', '22 hours = a day'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 35}), true), 'пӗр кун', '35 hours = a day'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 36}), true), '2 кун', '36 hours = 2 days'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 1}), true), 'пӗр кун', '1 day = a day'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 5}), true), '5 кун', '5 days = 5 days'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 25}), true), '25 кун', '25 days = 25 days'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 26}), true), 'пӗр уйӑх', '26 days = a month'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 30}), true), 'пӗр уйӑх', '30 days = a month'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 43}), true), 'пӗр уйӑх', '43 days = a month'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 46}), true), '2 уйӑх', '46 days = 2 months'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 74}), true), '2 уйӑх', '75 days = 2 months'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 76}), true), '3 уйӑх', '76 days = 3 months'); - assert.equal(start.from(moment([2007, 1, 28]).add({M: 1}), true), 'пӗр уйӑх', '1 month = a month'); - assert.equal(start.from(moment([2007, 1, 28]).add({M: 5}), true), '5 уйӑх', '5 months = 5 months'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 345}), true), 'пӗр ҫул', '345 days = a year'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 548}), true), '2 ҫул', '548 days = 2 years'); - assert.equal(start.from(moment([2007, 1, 28]).add({y: 1}), true), 'пӗр ҫул', '1 year = a year'); - assert.equal(start.from(moment([2007, 1, 28]).add({y: 5}), true), '5 ҫул', '5 years = 5 years'); -}); - -test('suffix', function (assert) { - assert.equal(moment(30000).from(0), 'пӗр-ик ҫеккунтран', 'prefix'); - assert.equal(moment(0).from(30000), 'пӗр-ик ҫеккунт каялла', 'suffix'); -}); - -test('now from now', function (assert) { - assert.equal(moment().fromNow(), 'пӗр-ик ҫеккунт каялла', 'now from now should display as in the past'); -}); - -test('fromNow', function (assert) { - assert.equal(moment().add({s: 30}).fromNow(), 'пӗр-ик ҫеккунтран', 'in a few seconds'); - assert.equal(moment().add({d: 5}).fromNow(), '5 кунран', 'in 5 days'); - assert.equal(moment().add({h: 2}).fromNow(), '2 сехетрен', 'in 2 hours, the right suffix!'); - assert.equal(moment().add({y: 3}).fromNow(), '3 ҫултан', 'in 3 years, the right suffix!'); -}); - -test('calendar day', function (assert) { - var a = moment().hours(12).minutes(0).seconds(0); - assert.equal(moment(a).calendar(), 'Паян 12:00 сехетре', 'today at the same time'); - assert.equal(moment(a).add({m: 25}).calendar(), 'Паян 12:25 сехетре', 'Now plus 25 min'); - assert.equal(moment(a).add({h: 1}).calendar(), 'Паян 13:00 сехетре', 'Now plus 1 hour'); - assert.equal(moment(a).add({d: 1}).calendar(), 'Ыран 12:00 сехетре', 'tomorrow at the same time'); - assert.equal(moment(a).subtract({h: 1}).calendar(), 'Паян 11:00 сехетре', 'Now minus 1 hour'); - assert.equal(moment(a).subtract({d: 1}).calendar(), 'Ӗнер 12:00 сехетре', 'yesterday at the same time'); -}); - -test('calendar next week', function (assert) { - var i, m; - - for (i = 2; i < 7; i++) { - m = moment().add({d: i}); - assert.equal(m.calendar(), m.format('[Ҫитес] dddd LT [сехетре]'), 'Today + ' + i + ' days current time'); - m.hours(0).minutes(0).seconds(0).milliseconds(0); - assert.equal(m.calendar(), m.format('[Ҫитес] dddd LT [сехетре]'), 'Today + ' + i + ' days beginning of day'); - m.hours(23).minutes(59).seconds(59).milliseconds(999); - assert.equal(m.calendar(), m.format('[Ҫитес] dddd LT [сехетре]'), 'Today + ' + i + ' days end of day'); - } -}); - -test('calendar last week', function (assert) { - var i, m; - - for (i = 2; i < 7; i++) { - m = moment().subtract({d: i}); - assert.equal(m.calendar(), m.format('[Иртнӗ] dddd LT [сехетре]'), 'Today - ' + i + ' days current time'); - m.hours(0).minutes(0).seconds(0).milliseconds(0); - assert.equal(m.calendar(), m.format('[Иртнӗ] dddd LT [сехетре]'), 'Today - ' + i + ' days beginning of day'); - m.hours(23).minutes(59).seconds(59).milliseconds(999); - assert.equal(m.calendar(), m.format('[Иртнӗ] dddd LT [сехетре]'), 'Today - ' + i + ' days end of day'); - } -}); - -test('calendar all else', function (assert) { - var weeksAgo = moment().subtract({w: 1}), - weeksFromNow = moment().add({w: 1}); - - assert.equal(weeksAgo.calendar(), weeksAgo.format('L'), '1 week ago'); - assert.equal(weeksFromNow.calendar(), weeksFromNow.format('L'), 'in 1 week'); - - weeksAgo = moment().subtract({w: 2}); - weeksFromNow = moment().add({w: 2}); - - assert.equal(weeksAgo.calendar(), weeksAgo.format('L'), '2 weeks ago'); - assert.equal(weeksFromNow.calendar(), weeksFromNow.format('L'), 'in 2 weeks'); -}); - -// Monday is the first day of the week. -// The week that contains Jan 1st is the first week of the year. - -test('weeks year starting sunday formatted', function (assert) { - assert.equal(moment([2011, 11, 26]).format('w ww wo'), '1 01 1-мӗш', 'Dec 26 2011 should be week 1'); - assert.equal(moment([2012, 0, 1]).format('w ww wo'), '1 01 1-мӗш', 'Jan 1 2012 should be week 1'); - assert.equal(moment([2012, 0, 2]).format('w ww wo'), '2 02 2-мӗш', 'Jan 2 2012 should be week 2'); - assert.equal(moment([2012, 0, 8]).format('w ww wo'), '2 02 2-мӗш', 'Jan 8 2012 should be week 2'); - assert.equal(moment([2012, 0, 9]).format('w ww wo'), '3 03 3-мӗш', 'Jan 9 2012 should be week 3'); -}); - -}))); - - -;(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' - && typeof require === 'function' ? factory(require('../../moment')) : - typeof define === 'function' && define.amd ? define(['../../moment'], factory) : - factory(global.moment) -}(this, (function (moment) { 'use strict'; - -function each(array, callback) { - var i; - for (i = 0; i < array.length; i++) { - callback(array[i], i, array); - } -} - -function objectKeys(obj) { - if (Object.keys) { - return Object.keys(obj); - } else { - // IE8 - var res = [], i; - for (i in obj) { - if (obj.hasOwnProperty(i)) { - res.push(i); - } - } - return res; - } -} - -// Pick the first defined of two or three arguments. - -function defineCommonLocaleTests(locale, options) { - test('lenient day of month ordinal parsing', function (assert) { - var i, ordinalStr, testMoment; - for (i = 1; i <= 31; ++i) { - ordinalStr = moment([2014, 0, i]).format('YYYY MM Do'); - testMoment = moment(ordinalStr, 'YYYY MM Do'); - assert.equal(testMoment.year(), 2014, - 'lenient day of month ordinal parsing ' + i + ' year check'); - assert.equal(testMoment.month(), 0, - 'lenient day of month ordinal parsing ' + i + ' month check'); - assert.equal(testMoment.date(), i, - 'lenient day of month ordinal parsing ' + i + ' date check'); - } - }); - - test('lenient day of month ordinal parsing of number', function (assert) { - var i, testMoment; - for (i = 1; i <= 31; ++i) { - testMoment = moment('2014 01 ' + i, 'YYYY MM Do'); - assert.equal(testMoment.year(), 2014, - 'lenient day of month ordinal parsing of number ' + i + ' year check'); - assert.equal(testMoment.month(), 0, - 'lenient day of month ordinal parsing of number ' + i + ' month check'); - assert.equal(testMoment.date(), i, - 'lenient day of month ordinal parsing of number ' + i + ' date check'); - } - }); - - test('strict day of month ordinal parsing', function (assert) { - var i, ordinalStr, testMoment; - for (i = 1; i <= 31; ++i) { - ordinalStr = moment([2014, 0, i]).format('YYYY MM Do'); - testMoment = moment(ordinalStr, 'YYYY MM Do', true); - assert.ok(testMoment.isValid(), 'strict day of month ordinal parsing ' + i); - } - }); - - test('meridiem invariant', function (assert) { - var h, m, t1, t2; - for (h = 0; h < 24; ++h) { - for (m = 0; m < 60; m += 15) { - t1 = moment.utc([2000, 0, 1, h, m]); - t2 = moment.utc(t1.format('A h:mm'), 'A h:mm'); - assert.equal(t2.format('HH:mm'), t1.format('HH:mm'), - 'meridiem at ' + t1.format('HH:mm')); - } - } - }); - - test('date format correctness', function (assert) { - var data, tokens; - data = moment.localeData()._longDateFormat; - tokens = objectKeys(data); - each(tokens, function (srchToken) { - // Check each format string to make sure it does not contain any - // tokens that need to be expanded. - each(tokens, function (baseToken) { - // strip escaped sequences - var format = data[baseToken].replace(/(\[[^\]]*\])/g, ''); - assert.equal(false, !!~format.indexOf(srchToken), - 'contains ' + srchToken + ' in ' + baseToken); - }); - }); - }); - - test('month parsing correctness', function (assert) { - var i, m; - - if (locale === 'tr') { - // I can't fix it :( - expect(0); - return; - } - function tester(format) { - var r; - r = moment(m.format(format), format); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format); - r = moment(m.format(format).toLocaleUpperCase(), format); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' upper'); - r = moment(m.format(format).toLocaleLowerCase(), format); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' lower'); - - r = moment(m.format(format), format, true); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' strict'); - r = moment(m.format(format).toLocaleUpperCase(), format, true); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' upper strict'); - r = moment(m.format(format).toLocaleLowerCase(), format, true); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' lower strict'); - } - - for (i = 0; i < 12; ++i) { - m = moment([2015, i, 15, 18]); - tester('MMM'); - tester('MMM.'); - tester('MMMM'); - tester('MMMM.'); - } - }); - - test('weekday parsing correctness', function (assert) { - var i, m; - - if (locale === 'tr' || locale === 'az' || locale === 'ro') { - // tr, az: There is a lower-case letter (ı), that converted to - // upper then lower changes to i - // ro: there is the letter ț which behaves weird under IE8 - expect(0); - return; - } - function tester(format) { - var r, baseMsg = 'weekday ' + m.weekday() + ' fmt ' + format + ' ' + m.toISOString(); - r = moment(m.format(format), format); - assert.equal(r.weekday(), m.weekday(), baseMsg); - r = moment(m.format(format).toLocaleUpperCase(), format); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' upper'); - r = moment(m.format(format).toLocaleLowerCase(), format); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' lower'); - - r = moment(m.format(format), format, true); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' strict'); - r = moment(m.format(format).toLocaleUpperCase(), format, true); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' upper strict'); - r = moment(m.format(format).toLocaleLowerCase(), format, true); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' lower strict'); - } - - for (i = 0; i < 7; ++i) { - m = moment.utc([2015, 0, i + 1, 18]); - tester('dd'); - tester('ddd'); - tester('dddd'); - } - }); - - test('valid localeData', function (assert) { - assert.equal(moment().localeData().months().length, 12, 'months should return 12 months'); - assert.equal(moment().localeData().monthsShort().length, 12, 'monthsShort should return 12 months'); - assert.equal(moment().localeData().weekdays().length, 7, 'weekdays should return 7 days'); - assert.equal(moment().localeData().weekdaysShort().length, 7, 'weekdaysShort should return 7 days'); - assert.equal(moment().localeData().weekdaysMin().length, 7, 'monthsShort should return 7 days'); - }); -} - -function setupDeprecationHandler(test, moment$$1, scope) { - test._expectedDeprecations = null; - test._observedDeprecations = null; - test._oldSupress = moment$$1.suppressDeprecationWarnings; - moment$$1.suppressDeprecationWarnings = true; - test.expectedDeprecations = function () { - test._expectedDeprecations = arguments; - test._observedDeprecations = []; - }; - moment$$1.deprecationHandler = function (name, msg) { - var deprecationId = matchedDeprecation(name, msg, test._expectedDeprecations); - if (deprecationId === -1) { - throw new Error('Unexpected deprecation thrown name=' + - name + ' msg=' + msg); - } - test._observedDeprecations[deprecationId] = 1; - }; -} - -function teardownDeprecationHandler(test, moment$$1, scope) { - moment$$1.suppressDeprecationWarnings = test._oldSupress; - - if (test._expectedDeprecations != null) { - var missedDeprecations = []; - each(test._expectedDeprecations, function (deprecationPattern, id) { - if (test._observedDeprecations[id] !== 1) { - missedDeprecations.push(deprecationPattern); - } - }); - if (missedDeprecations.length !== 0) { - throw new Error('Expected deprecation warnings did not happen: ' + - missedDeprecations.join(' ')); - } - } -} - -function matchedDeprecation(name, msg, deprecations) { - if (deprecations == null) { - return -1; - } - for (var i = 0; i < deprecations.length; ++i) { - if (name != null && name === deprecations[i]) { - return i; - } - if (msg != null && msg.substring(0, deprecations[i].length) === deprecations[i]) { - return i; - } - } - return -1; -} - -/*global QUnit:false*/ - -var test = QUnit.test; - -var expect = QUnit.expect; - - - -function localeModule (name, lifecycle) { - QUnit.module('locale:' + name, { - setup : function () { - moment.locale(name); - moment.createFromInputFallback = function (config) { - throw new Error('input not handled by moment: ' + config._i); - }; - setupDeprecationHandler(test, moment, 'locale'); - if (lifecycle && lifecycle.setup) { - lifecycle.setup(); - } - }, - teardown : function () { - moment.locale('en'); - teardownDeprecationHandler(test, moment, 'locale'); - if (lifecycle && lifecycle.teardown) { - lifecycle.teardown(); - } - } - }); - defineCommonLocaleTests(name, -1, -1); -} - -localeModule('cy'); - -test('parse', function (assert) { - var tests = 'Ionawr Ion_Chwefror Chwe_Mawrth Maw_Ebrill Ebr_Mai Mai_Mehefin Meh_Gorffennaf Gor_Awst Aws_Medi Med_Hydref Hyd_Tachwedd Tach_Rhagfyr Rhag'.split('_'), - i; - function equalTest(input, mmm, i) { - assert.equal(moment(input, mmm).month(), i, input + ' should be month ' + (i + 1)); - } - for (i = 0; i < 12; i++) { - tests[i] = tests[i].split(' '); - equalTest(tests[i][0], 'MMM', i); - equalTest(tests[i][1], 'MMM', i); - equalTest(tests[i][0], 'MMMM', i); - equalTest(tests[i][1], 'MMMM', i); - equalTest(tests[i][0].toLocaleLowerCase(), 'MMMM', i); - equalTest(tests[i][1].toLocaleLowerCase(), 'MMMM', i); - equalTest(tests[i][0].toLocaleUpperCase(), 'MMMM', i); - equalTest(tests[i][1].toLocaleUpperCase(), 'MMMM', i); - } -}); - -test('format', function (assert) { - var a = [ - ['dddd, MMMM Do YYYY, h:mm:ss a', 'Dydd Sul, Chwefror 14eg 2010, 3:25:50 pm'], - ['ddd, hA', 'Sul, 3PM'], - ['M Mo MM MMMM MMM', '2 2il 02 Chwefror Chwe'], - ['YYYY YY', '2010 10'], - ['D Do DD', '14 14eg 14'], - ['d do dddd ddd dd', '0 0 Dydd Sul Sul Su'], - ['DDD DDDo DDDD', '45 45ain 045'], - ['w wo ww', '6 6ed 06'], - ['h hh', '3 03'], - ['H HH', '15 15'], - ['m mm', '25 25'], - ['s ss', '50 50'], - ['a A', 'pm PM'], - ['[the] DDDo [day of the year]', 'the 45ain day of the year'], - ['LTS', '15:25:50'], - ['L', '14/02/2010'], - ['LL', '14 Chwefror 2010'], - ['LLL', '14 Chwefror 2010 15:25'], - ['LLLL', 'Dydd Sul, 14 Chwefror 2010 15:25'], - ['l', '14/2/2010'], - ['ll', '14 Chwe 2010'], - ['lll', '14 Chwe 2010 15:25'], - ['llll', 'Sul, 14 Chwe 2010 15:25'] - ], - b = moment(new Date(2010, 1, 14, 15, 25, 50, 125)), - i; - for (i = 0; i < a.length; i++) { - assert.equal(b.format(a[i][0]), a[i][1], a[i][0] + ' ---> ' + a[i][1]); - } -}); - -test('format ordinal', function (assert) { - assert.equal(moment([2011, 0, 1]).format('DDDo'), '1af', '1af'); - assert.equal(moment([2011, 0, 2]).format('DDDo'), '2il', '2il'); - assert.equal(moment([2011, 0, 3]).format('DDDo'), '3ydd', '3ydd'); - assert.equal(moment([2011, 0, 4]).format('DDDo'), '4ydd', '4ydd'); - assert.equal(moment([2011, 0, 5]).format('DDDo'), '5ed', '5ed'); - assert.equal(moment([2011, 0, 6]).format('DDDo'), '6ed', '6ed'); - assert.equal(moment([2011, 0, 7]).format('DDDo'), '7ed', '7ed'); - assert.equal(moment([2011, 0, 8]).format('DDDo'), '8fed', '8fed'); - assert.equal(moment([2011, 0, 9]).format('DDDo'), '9fed', '9fed'); - assert.equal(moment([2011, 0, 10]).format('DDDo'), '10fed', '10fed'); - - assert.equal(moment([2011, 0, 11]).format('DDDo'), '11eg', '11eg'); - assert.equal(moment([2011, 0, 12]).format('DDDo'), '12fed', '12fed'); - assert.equal(moment([2011, 0, 13]).format('DDDo'), '13eg', '13eg'); - assert.equal(moment([2011, 0, 14]).format('DDDo'), '14eg', '14eg'); - assert.equal(moment([2011, 0, 15]).format('DDDo'), '15fed', '15fed'); - assert.equal(moment([2011, 0, 16]).format('DDDo'), '16eg', '16eg'); - assert.equal(moment([2011, 0, 17]).format('DDDo'), '17eg', '17eg'); - assert.equal(moment([2011, 0, 18]).format('DDDo'), '18fed', '18fed'); - assert.equal(moment([2011, 0, 19]).format('DDDo'), '19eg', '19eg'); - assert.equal(moment([2011, 0, 20]).format('DDDo'), '20fed', '20fed'); - - assert.equal(moment([2011, 0, 21]).format('DDDo'), '21ain', '21ain'); - assert.equal(moment([2011, 0, 22]).format('DDDo'), '22ain', '22ain'); - assert.equal(moment([2011, 0, 23]).format('DDDo'), '23ain', '23ain'); - assert.equal(moment([2011, 0, 24]).format('DDDo'), '24ain', '24ain'); - assert.equal(moment([2011, 0, 25]).format('DDDo'), '25ain', '25ain'); - assert.equal(moment([2011, 0, 26]).format('DDDo'), '26ain', '26ain'); - assert.equal(moment([2011, 0, 27]).format('DDDo'), '27ain', '27ain'); - assert.equal(moment([2011, 0, 28]).format('DDDo'), '28ain', '28ain'); - assert.equal(moment([2011, 0, 29]).format('DDDo'), '29ain', '29ain'); - assert.equal(moment([2011, 0, 30]).format('DDDo'), '30ain', '30ain'); - - assert.equal(moment([2011, 0, 31]).format('DDDo'), '31ain', '31ain'); -}); - -test('format month', function (assert) { - var expected = 'Ionawr Ion_Chwefror Chwe_Mawrth Maw_Ebrill Ebr_Mai Mai_Mehefin Meh_Gorffennaf Gor_Awst Aws_Medi Med_Hydref Hyd_Tachwedd Tach_Rhagfyr Rhag'.split('_'), i; - for (i = 0; i < expected.length; i++) { - assert.equal(moment([2011, i, 1]).format('MMMM MMM'), expected[i], expected[i]); - } -}); - -test('format week', function (assert) { - var expected = 'Dydd Sul Sul Su_Dydd Llun Llun Ll_Dydd Mawrth Maw Ma_Dydd Mercher Mer Me_Dydd Iau Iau Ia_Dydd Gwener Gwe Gw_Dydd Sadwrn Sad Sa'.split('_'), i; - for (i = 0; i < expected.length; i++) { - assert.equal(moment([2011, 0, 2 + i]).format('dddd ddd dd'), expected[i], expected[i]); - } -}); - -test('from', function (assert) { - var start = moment([2007, 1, 28]); - assert.equal(start.from(moment([2007, 1, 28]).add({s: 44}), true), 'ychydig eiliadau', '44 seconds = a few seconds'); - assert.equal(start.from(moment([2007, 1, 28]).add({s: 45}), true), 'munud', '45 seconds = a minute'); - assert.equal(start.from(moment([2007, 1, 28]).add({s: 89}), true), 'munud', '89 seconds = a minute'); - assert.equal(start.from(moment([2007, 1, 28]).add({s: 90}), true), '2 munud', '90 seconds = 2 minutes'); - assert.equal(start.from(moment([2007, 1, 28]).add({m: 44}), true), '44 munud', '44 minutes = 44 minutes'); - assert.equal(start.from(moment([2007, 1, 28]).add({m: 45}), true), 'awr', '45 minutes = an hour'); - assert.equal(start.from(moment([2007, 1, 28]).add({m: 89}), true), 'awr', '89 minutes = an hour'); - assert.equal(start.from(moment([2007, 1, 28]).add({m: 90}), true), '2 awr', '90 minutes = 2 hours'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 5}), true), '5 awr', '5 hours = 5 hours'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 21}), true), '21 awr', '21 hours = 21 hours'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 22}), true), 'diwrnod', '22 hours = a day'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 35}), true), 'diwrnod', '35 hours = a day'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 36}), true), '2 diwrnod', '36 hours = 2 days'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 1}), true), 'diwrnod', '1 day = a day'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 5}), true), '5 diwrnod', '5 days = 5 days'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 25}), true), '25 diwrnod', '25 days = 25 days'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 26}), true), 'mis', '26 days = a month'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 30}), true), 'mis', '30 days = a month'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 43}), true), 'mis', '43 days = a month'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 46}), true), '2 mis', '46 days = 2 months'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 74}), true), '2 mis', '75 days = 2 months'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 76}), true), '3 mis', '76 days = 3 months'); - assert.equal(start.from(moment([2007, 1, 28]).add({M: 1}), true), 'mis', '1 month = a month'); - assert.equal(start.from(moment([2007, 1, 28]).add({M: 5}), true), '5 mis', '5 months = 5 months'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 345}), true), 'blwyddyn', '345 days = a year'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 548}), true), '2 flynedd', '548 days = 2 years'); - assert.equal(start.from(moment([2007, 1, 28]).add({y: 1}), true), 'blwyddyn', '1 year = a year'); - assert.equal(start.from(moment([2007, 1, 28]).add({y: 5}), true), '5 flynedd', '5 years = 5 years'); -}); - -test('suffix', function (assert) { - assert.equal(moment(30000).from(0), 'mewn ychydig eiliadau', 'prefix'); - assert.equal(moment(0).from(30000), 'ychydig eiliadau yn ôl', 'suffix'); -}); - -test('fromNow', function (assert) { - assert.equal(moment().add({s: 30}).fromNow(), 'mewn ychydig eiliadau', 'in a few seconds'); - assert.equal(moment().add({d: 5}).fromNow(), 'mewn 5 diwrnod', 'in 5 days'); -}); - -test('calendar day', function (assert) { - var a = moment().hours(12).minutes(0).seconds(0); - - assert.equal(moment(a).calendar(), 'Heddiw am 12:00', 'today at the same time'); - assert.equal(moment(a).add({m: 25}).calendar(), 'Heddiw am 12:25', 'Now plus 25 min'); - assert.equal(moment(a).add({h: 1}).calendar(), 'Heddiw am 13:00', 'Now plus 1 hour'); - assert.equal(moment(a).add({d: 1}).calendar(), 'Yfory am 12:00', 'tomorrow at the same time'); - assert.equal(moment(a).subtract({h: 1}).calendar(), 'Heddiw am 11:00', 'Now minus 1 hour'); - assert.equal(moment(a).subtract({d: 1}).calendar(), 'Ddoe am 12:00', 'yesterday at the same time'); -}); - -test('calendar next week', function (assert) { - var i, m; - - for (i = 2; i < 7; i++) { - m = moment().add({d: i}); - assert.equal(m.calendar(), m.format('dddd [am] LT'), 'Today + ' + i + ' days current time'); - m.hours(0).minutes(0).seconds(0).milliseconds(0); - assert.equal(m.calendar(), m.format('dddd [am] LT'), 'Today + ' + i + ' days beginning of day'); - m.hours(23).minutes(59).seconds(59).milliseconds(999); - assert.equal(m.calendar(), m.format('dddd [am] LT'), 'Today + ' + i + ' days end of day'); - } -}); - -test('calendar last week', function (assert) { - var i, m; - - for (i = 2; i < 7; i++) { - m = moment().subtract({d: i}); - assert.equal(m.calendar(), m.format('dddd [diwethaf am] LT'), 'Today - ' + i + ' days current time'); - m.hours(0).minutes(0).seconds(0).milliseconds(0); - assert.equal(m.calendar(), m.format('dddd [diwethaf am] LT'), 'Today - ' + i + ' days beginning of day'); - m.hours(23).minutes(59).seconds(59).milliseconds(999); - assert.equal(m.calendar(), m.format('dddd [diwethaf am] LT'), 'Today - ' + i + ' days end of day'); - } -}); - -test('calendar all else', function (assert) { - var weeksAgo = moment().subtract({w: 1}), - weeksFromNow = moment().add({w: 1}); - - assert.equal(weeksAgo.calendar(), weeksAgo.format('L'), '1 week ago'); - assert.equal(weeksFromNow.calendar(), weeksFromNow.format('L'), 'in 1 week'); - - weeksAgo = moment().subtract({w: 2}); - weeksFromNow = moment().add({w: 2}); - - assert.equal(weeksAgo.calendar(), weeksAgo.format('L'), '2 weeks ago'); - assert.equal(weeksFromNow.calendar(), weeksFromNow.format('L'), 'in 2 weeks'); -}); - -test('weeks year starting sunday formatted', function (assert) { - assert.equal(moment([2012, 0, 1]).format('w ww wo'), '52 52 52ain', 'Jan 1 2012 should be week 52'); - assert.equal(moment([2012, 0, 2]).format('w ww wo'), '1 01 1af', 'Jan 2 2012 should be week 1'); - assert.equal(moment([2012, 0, 8]).format('w ww wo'), '1 01 1af', 'Jan 8 2012 should be week 1'); - assert.equal(moment([2012, 0, 9]).format('w ww wo'), '2 02 2il', 'Jan 9 2012 should be week 2'); - assert.equal(moment([2012, 0, 15]).format('w ww wo'), '2 02 2il', 'Jan 15 2012 should be week 2'); -}); - -}))); - - -;(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' - && typeof require === 'function' ? factory(require('../../moment')) : - typeof define === 'function' && define.amd ? define(['../../moment'], factory) : - factory(global.moment) -}(this, (function (moment) { 'use strict'; - -function each(array, callback) { - var i; - for (i = 0; i < array.length; i++) { - callback(array[i], i, array); - } -} - -function objectKeys(obj) { - if (Object.keys) { - return Object.keys(obj); - } else { - // IE8 - var res = [], i; - for (i in obj) { - if (obj.hasOwnProperty(i)) { - res.push(i); - } - } - return res; - } -} - -// Pick the first defined of two or three arguments. - -function defineCommonLocaleTests(locale, options) { - test('lenient day of month ordinal parsing', function (assert) { - var i, ordinalStr, testMoment; - for (i = 1; i <= 31; ++i) { - ordinalStr = moment([2014, 0, i]).format('YYYY MM Do'); - testMoment = moment(ordinalStr, 'YYYY MM Do'); - assert.equal(testMoment.year(), 2014, - 'lenient day of month ordinal parsing ' + i + ' year check'); - assert.equal(testMoment.month(), 0, - 'lenient day of month ordinal parsing ' + i + ' month check'); - assert.equal(testMoment.date(), i, - 'lenient day of month ordinal parsing ' + i + ' date check'); - } - }); - - test('lenient day of month ordinal parsing of number', function (assert) { - var i, testMoment; - for (i = 1; i <= 31; ++i) { - testMoment = moment('2014 01 ' + i, 'YYYY MM Do'); - assert.equal(testMoment.year(), 2014, - 'lenient day of month ordinal parsing of number ' + i + ' year check'); - assert.equal(testMoment.month(), 0, - 'lenient day of month ordinal parsing of number ' + i + ' month check'); - assert.equal(testMoment.date(), i, - 'lenient day of month ordinal parsing of number ' + i + ' date check'); - } - }); - - test('strict day of month ordinal parsing', function (assert) { - var i, ordinalStr, testMoment; - for (i = 1; i <= 31; ++i) { - ordinalStr = moment([2014, 0, i]).format('YYYY MM Do'); - testMoment = moment(ordinalStr, 'YYYY MM Do', true); - assert.ok(testMoment.isValid(), 'strict day of month ordinal parsing ' + i); - } - }); - - test('meridiem invariant', function (assert) { - var h, m, t1, t2; - for (h = 0; h < 24; ++h) { - for (m = 0; m < 60; m += 15) { - t1 = moment.utc([2000, 0, 1, h, m]); - t2 = moment.utc(t1.format('A h:mm'), 'A h:mm'); - assert.equal(t2.format('HH:mm'), t1.format('HH:mm'), - 'meridiem at ' + t1.format('HH:mm')); - } - } - }); - - test('date format correctness', function (assert) { - var data, tokens; - data = moment.localeData()._longDateFormat; - tokens = objectKeys(data); - each(tokens, function (srchToken) { - // Check each format string to make sure it does not contain any - // tokens that need to be expanded. - each(tokens, function (baseToken) { - // strip escaped sequences - var format = data[baseToken].replace(/(\[[^\]]*\])/g, ''); - assert.equal(false, !!~format.indexOf(srchToken), - 'contains ' + srchToken + ' in ' + baseToken); - }); - }); - }); - - test('month parsing correctness', function (assert) { - var i, m; - - if (locale === 'tr') { - // I can't fix it :( - expect(0); - return; - } - function tester(format) { - var r; - r = moment(m.format(format), format); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format); - r = moment(m.format(format).toLocaleUpperCase(), format); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' upper'); - r = moment(m.format(format).toLocaleLowerCase(), format); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' lower'); - - r = moment(m.format(format), format, true); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' strict'); - r = moment(m.format(format).toLocaleUpperCase(), format, true); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' upper strict'); - r = moment(m.format(format).toLocaleLowerCase(), format, true); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' lower strict'); - } - - for (i = 0; i < 12; ++i) { - m = moment([2015, i, 15, 18]); - tester('MMM'); - tester('MMM.'); - tester('MMMM'); - tester('MMMM.'); - } - }); - - test('weekday parsing correctness', function (assert) { - var i, m; - - if (locale === 'tr' || locale === 'az' || locale === 'ro') { - // tr, az: There is a lower-case letter (ı), that converted to - // upper then lower changes to i - // ro: there is the letter ț which behaves weird under IE8 - expect(0); - return; - } - function tester(format) { - var r, baseMsg = 'weekday ' + m.weekday() + ' fmt ' + format + ' ' + m.toISOString(); - r = moment(m.format(format), format); - assert.equal(r.weekday(), m.weekday(), baseMsg); - r = moment(m.format(format).toLocaleUpperCase(), format); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' upper'); - r = moment(m.format(format).toLocaleLowerCase(), format); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' lower'); - - r = moment(m.format(format), format, true); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' strict'); - r = moment(m.format(format).toLocaleUpperCase(), format, true); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' upper strict'); - r = moment(m.format(format).toLocaleLowerCase(), format, true); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' lower strict'); - } - - for (i = 0; i < 7; ++i) { - m = moment.utc([2015, 0, i + 1, 18]); - tester('dd'); - tester('ddd'); - tester('dddd'); - } - }); - - test('valid localeData', function (assert) { - assert.equal(moment().localeData().months().length, 12, 'months should return 12 months'); - assert.equal(moment().localeData().monthsShort().length, 12, 'monthsShort should return 12 months'); - assert.equal(moment().localeData().weekdays().length, 7, 'weekdays should return 7 days'); - assert.equal(moment().localeData().weekdaysShort().length, 7, 'weekdaysShort should return 7 days'); - assert.equal(moment().localeData().weekdaysMin().length, 7, 'monthsShort should return 7 days'); - }); -} - -function setupDeprecationHandler(test, moment$$1, scope) { - test._expectedDeprecations = null; - test._observedDeprecations = null; - test._oldSupress = moment$$1.suppressDeprecationWarnings; - moment$$1.suppressDeprecationWarnings = true; - test.expectedDeprecations = function () { - test._expectedDeprecations = arguments; - test._observedDeprecations = []; - }; - moment$$1.deprecationHandler = function (name, msg) { - var deprecationId = matchedDeprecation(name, msg, test._expectedDeprecations); - if (deprecationId === -1) { - throw new Error('Unexpected deprecation thrown name=' + - name + ' msg=' + msg); - } - test._observedDeprecations[deprecationId] = 1; - }; -} - -function teardownDeprecationHandler(test, moment$$1, scope) { - moment$$1.suppressDeprecationWarnings = test._oldSupress; - - if (test._expectedDeprecations != null) { - var missedDeprecations = []; - each(test._expectedDeprecations, function (deprecationPattern, id) { - if (test._observedDeprecations[id] !== 1) { - missedDeprecations.push(deprecationPattern); - } - }); - if (missedDeprecations.length !== 0) { - throw new Error('Expected deprecation warnings did not happen: ' + - missedDeprecations.join(' ')); - } - } -} - -function matchedDeprecation(name, msg, deprecations) { - if (deprecations == null) { - return -1; - } - for (var i = 0; i < deprecations.length; ++i) { - if (name != null && name === deprecations[i]) { - return i; - } - if (msg != null && msg.substring(0, deprecations[i].length) === deprecations[i]) { - return i; - } - } - return -1; -} - -/*global QUnit:false*/ - -var test = QUnit.test; - -var expect = QUnit.expect; - - - -function localeModule (name, lifecycle) { - QUnit.module('locale:' + name, { - setup : function () { - moment.locale(name); - moment.createFromInputFallback = function (config) { - throw new Error('input not handled by moment: ' + config._i); - }; - setupDeprecationHandler(test, moment, 'locale'); - if (lifecycle && lifecycle.setup) { - lifecycle.setup(); - } - }, - teardown : function () { - moment.locale('en'); - teardownDeprecationHandler(test, moment, 'locale'); - if (lifecycle && lifecycle.teardown) { - lifecycle.teardown(); - } - } - }); - defineCommonLocaleTests(name, -1, -1); -} - -localeModule('da'); - -test('parse', function (assert) { - var tests = 'januar jan_februar feb_marts mar_april apr_maj maj_juni jun_juli jul_august aug_september sep_oktober okt_november nov_december dec'.split('_'), i; - function equalTest(input, mmm, i) { - assert.equal(moment(input, mmm).month(), i, input + ' should be month ' + (i + 1)); - } - for (i = 0; i < 12; i++) { - tests[i] = tests[i].split(' '); - equalTest(tests[i][0], 'MMM', i); - equalTest(tests[i][1], 'MMM', i); - equalTest(tests[i][0], 'MMMM', i); - equalTest(tests[i][1], 'MMMM', i); - equalTest(tests[i][0].toLocaleLowerCase(), 'MMMM', i); - equalTest(tests[i][1].toLocaleLowerCase(), 'MMMM', i); - equalTest(tests[i][0].toLocaleUpperCase(), 'MMMM', i); - equalTest(tests[i][1].toLocaleUpperCase(), 'MMMM', i); - } -}); - -test('format', function (assert) { - var a = [ - ['dddd [den] Do MMMM YYYY, h:mm:ss a', 'søndag den 14. februar 2010, 3:25:50 pm'], - ['ddd hA', 'søn 3PM'], - ['M Mo MM MMMM MMM', '2 2. 02 februar feb'], - ['YYYY YY', '2010 10'], - ['D Do DD', '14 14. 14'], - ['d do dddd ddd dd', '0 0. søndag søn sø'], - ['DDD DDDo DDDD', '45 45. 045'], - ['w wo ww', '6 6. 06'], - ['h hh', '3 03'], - ['H HH', '15 15'], - ['m mm', '25 25'], - ['s ss', '50 50'], - ['a A', 'pm PM'], - ['[den] DDDo [dag på året]', 'den 45. dag på året'], - ['LTS', '15:25:50'], - ['L', '14/02/2010'], - ['LL', '14. februar 2010'], - ['LLL', '14. februar 2010 15:25'], - ['LLLL', 'søndag d. 14. februar 2010 kl. 15:25'], - ['l', '14/2/2010'], - ['ll', '14. feb 2010'], - ['lll', '14. feb 2010 15:25'], - ['llll', 'søn d. 14. feb 2010 kl. 15:25'] - ], - b = moment(new Date(2010, 1, 14, 15, 25, 50, 125)), - i; - for (i = 0; i < a.length; i++) { - assert.equal(b.format(a[i][0]), a[i][1], a[i][0] + ' ---> ' + a[i][1]); - } -}); - -test('format ordinal', function (assert) { - assert.equal(moment([2011, 0, 1]).format('DDDo'), '1.', '1.'); - assert.equal(moment([2011, 0, 2]).format('DDDo'), '2.', '2.'); - assert.equal(moment([2011, 0, 3]).format('DDDo'), '3.', '3.'); - assert.equal(moment([2011, 0, 4]).format('DDDo'), '4.', '4.'); - assert.equal(moment([2011, 0, 5]).format('DDDo'), '5.', '5.'); - assert.equal(moment([2011, 0, 6]).format('DDDo'), '6.', '6.'); - assert.equal(moment([2011, 0, 7]).format('DDDo'), '7.', '7.'); - assert.equal(moment([2011, 0, 8]).format('DDDo'), '8.', '8.'); - assert.equal(moment([2011, 0, 9]).format('DDDo'), '9.', '9.'); - assert.equal(moment([2011, 0, 10]).format('DDDo'), '10.', '10.'); - - assert.equal(moment([2011, 0, 11]).format('DDDo'), '11.', '11.'); - assert.equal(moment([2011, 0, 12]).format('DDDo'), '12.', '12.'); - assert.equal(moment([2011, 0, 13]).format('DDDo'), '13.', '13.'); - assert.equal(moment([2011, 0, 14]).format('DDDo'), '14.', '14.'); - assert.equal(moment([2011, 0, 15]).format('DDDo'), '15.', '15.'); - assert.equal(moment([2011, 0, 16]).format('DDDo'), '16.', '16.'); - assert.equal(moment([2011, 0, 17]).format('DDDo'), '17.', '17.'); - assert.equal(moment([2011, 0, 18]).format('DDDo'), '18.', '18.'); - assert.equal(moment([2011, 0, 19]).format('DDDo'), '19.', '19.'); - assert.equal(moment([2011, 0, 20]).format('DDDo'), '20.', '20.'); - - assert.equal(moment([2011, 0, 21]).format('DDDo'), '21.', '21.'); - assert.equal(moment([2011, 0, 22]).format('DDDo'), '22.', '22.'); - assert.equal(moment([2011, 0, 23]).format('DDDo'), '23.', '23.'); - assert.equal(moment([2011, 0, 24]).format('DDDo'), '24.', '24.'); - assert.equal(moment([2011, 0, 25]).format('DDDo'), '25.', '25.'); - assert.equal(moment([2011, 0, 26]).format('DDDo'), '26.', '26.'); - assert.equal(moment([2011, 0, 27]).format('DDDo'), '27.', '27.'); - assert.equal(moment([2011, 0, 28]).format('DDDo'), '28.', '28.'); - assert.equal(moment([2011, 0, 29]).format('DDDo'), '29.', '29.'); - assert.equal(moment([2011, 0, 30]).format('DDDo'), '30.', '30.'); - - assert.equal(moment([2011, 0, 31]).format('DDDo'), '31.', '31.'); -}); - -test('format month', function (assert) { - var expected = 'januar jan_februar feb_marts mar_april apr_maj maj_juni jun_juli jul_august aug_september sep_oktober okt_november nov_december dec'.split('_'), i; - for (i = 0; i < expected.length; i++) { - assert.equal(moment([2011, i, 1]).format('MMMM MMM'), expected[i], expected[i]); - } -}); - -test('format week', function (assert) { - var expected = 'søndag søn sø_mandag man ma_tirsdag tir ti_onsdag ons on_torsdag tor to_fredag fre fr_lørdag lør lø'.split('_'), i; - for (i = 0; i < expected.length; i++) { - assert.equal(moment([2011, 0, 2 + i]).format('dddd ddd dd'), expected[i], expected[i]); - } -}); - -test('from', function (assert) { - var start = moment([2007, 1, 28]); - assert.equal(start.from(moment([2007, 1, 28]).add({s: 44}), true), 'få sekunder', '44 seconds = a few seconds'); - assert.equal(start.from(moment([2007, 1, 28]).add({s: 45}), true), 'et minut', '45 seconds = a minute'); - assert.equal(start.from(moment([2007, 1, 28]).add({s: 89}), true), 'et minut', '89 seconds = a minute'); - assert.equal(start.from(moment([2007, 1, 28]).add({s: 90}), true), '2 minutter', '90 seconds = 2 minutes'); - assert.equal(start.from(moment([2007, 1, 28]).add({m: 44}), true), '44 minutter', '44 minutes = 44 minutes'); - assert.equal(start.from(moment([2007, 1, 28]).add({m: 45}), true), 'en time', '45 minutes = an hour'); - assert.equal(start.from(moment([2007, 1, 28]).add({m: 89}), true), 'en time', '89 minutes = an hour'); - assert.equal(start.from(moment([2007, 1, 28]).add({m: 90}), true), '2 timer', '90 minutes = 2 hours'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 5}), true), '5 timer', '5 hours = 5 hours'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 21}), true), '21 timer', '21 hours = 21 hours'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 22}), true), 'en dag', '22 hours = a day'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 35}), true), 'en dag', '35 hours = a day'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 36}), true), '2 dage', '36 hours = 2 days'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 1}), true), 'en dag', '1 day = a day'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 5}), true), '5 dage', '5 days = 5 days'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 25}), true), '25 dage', '25 days = 25 days'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 26}), true), 'en måned', '26 days = a month'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 30}), true), 'en måned', '30 days = a month'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 43}), true), 'en måned', '43 days = a month'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 46}), true), '2 måneder', '46 days = 2 months'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 74}), true), '2 måneder', '75 days = 2 months'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 76}), true), '3 måneder', '76 days = 3 months'); - assert.equal(start.from(moment([2007, 1, 28]).add({M: 1}), true), 'en måned', '1 month = a month'); - assert.equal(start.from(moment([2007, 1, 28]).add({M: 5}), true), '5 måneder', '5 months = 5 months'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 345}), true), 'et år', '345 days = a year'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 548}), true), '2 år', '548 days = 2 years'); - assert.equal(start.from(moment([2007, 1, 28]).add({y: 1}), true), 'et år', '1 year = a year'); - assert.equal(start.from(moment([2007, 1, 28]).add({y: 5}), true), '5 år', '5 years = 5 years'); -}); - -test('suffix', function (assert) { - assert.equal(moment(30000).from(0), 'om få sekunder', 'prefix'); - assert.equal(moment(0).from(30000), 'få sekunder siden', 'suffix'); -}); - -test('now from now', function (assert) { - assert.equal(moment().fromNow(), 'få sekunder siden', 'now from now should display as in the past'); -}); - -test('fromNow', function (assert) { - assert.equal(moment().add({s: 30}).fromNow(), 'om få sekunder', 'in a few seconds'); - assert.equal(moment().add({d: 5}).fromNow(), 'om 5 dage', 'in 5 days'); -}); - - -test('calendar day', function (assert) { - var a = moment().hours(12).minutes(0).seconds(0); - - assert.equal(moment(a).calendar(), 'i dag kl. 12:00', 'today at the same time'); - assert.equal(moment(a).add({m: 25}).calendar(), 'i dag kl. 12:25', 'Now plus 25 min'); - assert.equal(moment(a).add({h: 1}).calendar(), 'i dag kl. 13:00', 'Now plus 1 hour'); - assert.equal(moment(a).add({d: 1}).calendar(), 'i morgen kl. 12:00', 'tomorrow at the same time'); - assert.equal(moment(a).subtract({h: 1}).calendar(), 'i dag kl. 11:00', 'Now minus 1 hour'); - assert.equal(moment(a).subtract({d: 1}).calendar(), 'i går kl. 12:00', 'yesterday at the same time'); -}); - -test('calendar next week', function (assert) { - var i, m; - - for (i = 2; i < 7; i++) { - m = moment().add({d: i}); - assert.equal(m.calendar(), m.format('på dddd [kl.] LT'), 'Today + ' + i + ' days current time'); - m.hours(0).minutes(0).seconds(0).milliseconds(0); - assert.equal(m.calendar(), m.format('på dddd [kl.] LT'), 'Today + ' + i + ' days beginning of day'); - m.hours(23).minutes(59).seconds(59).milliseconds(999); - assert.equal(m.calendar(), m.format('på dddd [kl.] LT'), 'Today + ' + i + ' days end of day'); - } -}); - -test('calendar last week', function (assert) { - var i, m; - - for (i = 2; i < 7; i++) { - m = moment().subtract({d: i}); - assert.equal(m.calendar(), m.format('[i] dddd[s kl.] LT'), 'Today - ' + i + ' days current time'); - m.hours(0).minutes(0).seconds(0).milliseconds(0); - assert.equal(m.calendar(), m.format('[i] dddd[s kl.] LT'), 'Today - ' + i + ' days beginning of day'); - m.hours(23).minutes(59).seconds(59).milliseconds(999); - assert.equal(m.calendar(), m.format('[i] dddd[s kl.] LT'), 'Today - ' + i + ' days end of day'); - } -}); - -test('calendar all else', function (assert) { - var weeksAgo = moment().subtract({w: 1}), - weeksFromNow = moment().add({w: 1}); - - assert.equal(weeksAgo.calendar(), weeksAgo.format('L'), '1 week ago'); - assert.equal(weeksFromNow.calendar(), weeksFromNow.format('L'), 'in 1 week'); - - weeksAgo = moment().subtract({w: 2}); - weeksFromNow = moment().add({w: 2}); - - assert.equal(weeksAgo.calendar(), weeksAgo.format('L'), '2 weeks ago'); - assert.equal(weeksFromNow.calendar(), weeksFromNow.format('L'), 'in 2 weeks'); -}); - -test('weeks year starting sunday formatted', function (assert) { - assert.equal(moment([2012, 0, 1]).format('w ww wo'), '52 52 52.', 'Jan 1 2012 should be week 52'); - assert.equal(moment([2012, 0, 2]).format('w ww wo'), '1 01 1.', 'Jan 2 2012 should be week 1'); - assert.equal(moment([2012, 0, 8]).format('w ww wo'), '1 01 1.', 'Jan 8 2012 should be week 1'); - assert.equal(moment([2012, 0, 9]).format('w ww wo'), '2 02 2.', 'Jan 9 2012 should be week 2'); - assert.equal(moment([2012, 0, 15]).format('w ww wo'), '2 02 2.', 'Jan 15 2012 should be week 2'); -}); - -}))); - - -;(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' - && typeof require === 'function' ? factory(require('../../moment')) : - typeof define === 'function' && define.amd ? define(['../../moment'], factory) : - factory(global.moment) -}(this, (function (moment) { 'use strict'; - -function each(array, callback) { - var i; - for (i = 0; i < array.length; i++) { - callback(array[i], i, array); - } -} - -function objectKeys(obj) { - if (Object.keys) { - return Object.keys(obj); - } else { - // IE8 - var res = [], i; - for (i in obj) { - if (obj.hasOwnProperty(i)) { - res.push(i); - } - } - return res; - } -} - -// Pick the first defined of two or three arguments. - -function defineCommonLocaleTests(locale, options) { - test('lenient day of month ordinal parsing', function (assert) { - var i, ordinalStr, testMoment; - for (i = 1; i <= 31; ++i) { - ordinalStr = moment([2014, 0, i]).format('YYYY MM Do'); - testMoment = moment(ordinalStr, 'YYYY MM Do'); - assert.equal(testMoment.year(), 2014, - 'lenient day of month ordinal parsing ' + i + ' year check'); - assert.equal(testMoment.month(), 0, - 'lenient day of month ordinal parsing ' + i + ' month check'); - assert.equal(testMoment.date(), i, - 'lenient day of month ordinal parsing ' + i + ' date check'); - } - }); - - test('lenient day of month ordinal parsing of number', function (assert) { - var i, testMoment; - for (i = 1; i <= 31; ++i) { - testMoment = moment('2014 01 ' + i, 'YYYY MM Do'); - assert.equal(testMoment.year(), 2014, - 'lenient day of month ordinal parsing of number ' + i + ' year check'); - assert.equal(testMoment.month(), 0, - 'lenient day of month ordinal parsing of number ' + i + ' month check'); - assert.equal(testMoment.date(), i, - 'lenient day of month ordinal parsing of number ' + i + ' date check'); - } - }); - - test('strict day of month ordinal parsing', function (assert) { - var i, ordinalStr, testMoment; - for (i = 1; i <= 31; ++i) { - ordinalStr = moment([2014, 0, i]).format('YYYY MM Do'); - testMoment = moment(ordinalStr, 'YYYY MM Do', true); - assert.ok(testMoment.isValid(), 'strict day of month ordinal parsing ' + i); - } - }); - - test('meridiem invariant', function (assert) { - var h, m, t1, t2; - for (h = 0; h < 24; ++h) { - for (m = 0; m < 60; m += 15) { - t1 = moment.utc([2000, 0, 1, h, m]); - t2 = moment.utc(t1.format('A h:mm'), 'A h:mm'); - assert.equal(t2.format('HH:mm'), t1.format('HH:mm'), - 'meridiem at ' + t1.format('HH:mm')); - } - } - }); - - test('date format correctness', function (assert) { - var data, tokens; - data = moment.localeData()._longDateFormat; - tokens = objectKeys(data); - each(tokens, function (srchToken) { - // Check each format string to make sure it does not contain any - // tokens that need to be expanded. - each(tokens, function (baseToken) { - // strip escaped sequences - var format = data[baseToken].replace(/(\[[^\]]*\])/g, ''); - assert.equal(false, !!~format.indexOf(srchToken), - 'contains ' + srchToken + ' in ' + baseToken); - }); - }); - }); - - test('month parsing correctness', function (assert) { - var i, m; - - if (locale === 'tr') { - // I can't fix it :( - expect(0); - return; - } - function tester(format) { - var r; - r = moment(m.format(format), format); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format); - r = moment(m.format(format).toLocaleUpperCase(), format); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' upper'); - r = moment(m.format(format).toLocaleLowerCase(), format); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' lower'); - - r = moment(m.format(format), format, true); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' strict'); - r = moment(m.format(format).toLocaleUpperCase(), format, true); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' upper strict'); - r = moment(m.format(format).toLocaleLowerCase(), format, true); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' lower strict'); - } - - for (i = 0; i < 12; ++i) { - m = moment([2015, i, 15, 18]); - tester('MMM'); - tester('MMM.'); - tester('MMMM'); - tester('MMMM.'); - } - }); - - test('weekday parsing correctness', function (assert) { - var i, m; - - if (locale === 'tr' || locale === 'az' || locale === 'ro') { - // tr, az: There is a lower-case letter (ı), that converted to - // upper then lower changes to i - // ro: there is the letter ț which behaves weird under IE8 - expect(0); - return; - } - function tester(format) { - var r, baseMsg = 'weekday ' + m.weekday() + ' fmt ' + format + ' ' + m.toISOString(); - r = moment(m.format(format), format); - assert.equal(r.weekday(), m.weekday(), baseMsg); - r = moment(m.format(format).toLocaleUpperCase(), format); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' upper'); - r = moment(m.format(format).toLocaleLowerCase(), format); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' lower'); - - r = moment(m.format(format), format, true); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' strict'); - r = moment(m.format(format).toLocaleUpperCase(), format, true); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' upper strict'); - r = moment(m.format(format).toLocaleLowerCase(), format, true); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' lower strict'); - } - - for (i = 0; i < 7; ++i) { - m = moment.utc([2015, 0, i + 1, 18]); - tester('dd'); - tester('ddd'); - tester('dddd'); - } - }); - - test('valid localeData', function (assert) { - assert.equal(moment().localeData().months().length, 12, 'months should return 12 months'); - assert.equal(moment().localeData().monthsShort().length, 12, 'monthsShort should return 12 months'); - assert.equal(moment().localeData().weekdays().length, 7, 'weekdays should return 7 days'); - assert.equal(moment().localeData().weekdaysShort().length, 7, 'weekdaysShort should return 7 days'); - assert.equal(moment().localeData().weekdaysMin().length, 7, 'monthsShort should return 7 days'); - }); -} - -function setupDeprecationHandler(test, moment$$1, scope) { - test._expectedDeprecations = null; - test._observedDeprecations = null; - test._oldSupress = moment$$1.suppressDeprecationWarnings; - moment$$1.suppressDeprecationWarnings = true; - test.expectedDeprecations = function () { - test._expectedDeprecations = arguments; - test._observedDeprecations = []; - }; - moment$$1.deprecationHandler = function (name, msg) { - var deprecationId = matchedDeprecation(name, msg, test._expectedDeprecations); - if (deprecationId === -1) { - throw new Error('Unexpected deprecation thrown name=' + - name + ' msg=' + msg); - } - test._observedDeprecations[deprecationId] = 1; - }; -} - -function teardownDeprecationHandler(test, moment$$1, scope) { - moment$$1.suppressDeprecationWarnings = test._oldSupress; - - if (test._expectedDeprecations != null) { - var missedDeprecations = []; - each(test._expectedDeprecations, function (deprecationPattern, id) { - if (test._observedDeprecations[id] !== 1) { - missedDeprecations.push(deprecationPattern); - } - }); - if (missedDeprecations.length !== 0) { - throw new Error('Expected deprecation warnings did not happen: ' + - missedDeprecations.join(' ')); - } - } -} - -function matchedDeprecation(name, msg, deprecations) { - if (deprecations == null) { - return -1; - } - for (var i = 0; i < deprecations.length; ++i) { - if (name != null && name === deprecations[i]) { - return i; - } - if (msg != null && msg.substring(0, deprecations[i].length) === deprecations[i]) { - return i; - } - } - return -1; -} - -/*global QUnit:false*/ - -var test = QUnit.test; - -var expect = QUnit.expect; - - - -function localeModule (name, lifecycle) { - QUnit.module('locale:' + name, { - setup : function () { - moment.locale(name); - moment.createFromInputFallback = function (config) { - throw new Error('input not handled by moment: ' + config._i); - }; - setupDeprecationHandler(test, moment, 'locale'); - if (lifecycle && lifecycle.setup) { - lifecycle.setup(); - } - }, - teardown : function () { - moment.locale('en'); - teardownDeprecationHandler(test, moment, 'locale'); - if (lifecycle && lifecycle.teardown) { - lifecycle.teardown(); - } - } - }); - defineCommonLocaleTests(name, -1, -1); -} - -localeModule('de-at'); - -test('parse', function (assert) { - var tests = 'Jänner Jän._Februar Febr._März Mrz._April Apr._Mai Mai_Juni Jun._Juli Jul._August Aug._September Sept._Oktober Okt._November Nov._Dezember Dez.'.split('_'), i; - - function equalTest(input, mmm, i) { - assert.equal(moment(input, mmm).month(), i, input + ' should be month ' + (i + 1)); - } - - for (i = 0; i < 12; i++) { - tests[i] = tests[i].split(' '); - equalTest(tests[i][0], 'MMM', i); - equalTest(tests[i][1], 'MMM', i); - equalTest(tests[i][0], 'MMMM', i); - equalTest(tests[i][1], 'MMMM', i); - equalTest(tests[i][0].toLocaleLowerCase(), 'MMMM', i); - equalTest(tests[i][1].toLocaleLowerCase(), 'MMMM', i); - equalTest(tests[i][0].toLocaleUpperCase(), 'MMMM', i); - equalTest(tests[i][1].toLocaleUpperCase(), 'MMMM', i); - } -}); - -test('format', function (assert) { - var a = [ - ['dddd, Do MMMM YYYY, h:mm:ss a', 'Sonntag, 14. Februar 2010, 3:25:50 pm'], - ['ddd, hA', 'So., 3PM'], - ['M Mo MM MMMM MMM', '2 2. 02 Februar Febr.'], - ['YYYY YY', '2010 10'], - ['D Do DD', '14 14. 14'], - ['d do dddd ddd dd', '0 0. Sonntag So. So'], - ['DDD DDDo DDDD', '45 45. 045'], - ['w wo ww', '6 6. 06'], - ['h hh', '3 03'], - ['H HH', '15 15'], - ['m mm', '25 25'], - ['s ss', '50 50'], - ['a A', 'pm PM'], - ['[the] DDDo [day of the year]', 'the 45. day of the year'], - ['LTS', '15:25:50'], - ['L', '14.02.2010'], - ['LL', '14. Februar 2010'], - ['LLL', '14. Februar 2010 15:25'], - ['LLLL', 'Sonntag, 14. Februar 2010 15:25'], - ['l', '14.2.2010'], - ['ll', '14. Febr. 2010'], - ['lll', '14. Febr. 2010 15:25'], - ['llll', 'So., 14. Febr. 2010 15:25'] - ], - b = moment(new Date(2010, 1, 14, 15, 25, 50, 125)), - i; - for (i = 0; i < a.length; i++) { - assert.equal(b.format(a[i][0]), a[i][1], a[i][0] + ' ---> ' + a[i][1]); - } -}); - -test('format ordinal', function (assert) { - assert.equal(moment([2011, 0, 1]).format('DDDo'), '1.', '1.'); - assert.equal(moment([2011, 0, 2]).format('DDDo'), '2.', '2.'); - assert.equal(moment([2011, 0, 3]).format('DDDo'), '3.', '3.'); - assert.equal(moment([2011, 0, 4]).format('DDDo'), '4.', '4.'); - assert.equal(moment([2011, 0, 5]).format('DDDo'), '5.', '5.'); - assert.equal(moment([2011, 0, 6]).format('DDDo'), '6.', '6.'); - assert.equal(moment([2011, 0, 7]).format('DDDo'), '7.', '7.'); - assert.equal(moment([2011, 0, 8]).format('DDDo'), '8.', '8.'); - assert.equal(moment([2011, 0, 9]).format('DDDo'), '9.', '9.'); - assert.equal(moment([2011, 0, 10]).format('DDDo'), '10.', '10.'); - - assert.equal(moment([2011, 0, 11]).format('DDDo'), '11.', '11.'); - assert.equal(moment([2011, 0, 12]).format('DDDo'), '12.', '12.'); - assert.equal(moment([2011, 0, 13]).format('DDDo'), '13.', '13.'); - assert.equal(moment([2011, 0, 14]).format('DDDo'), '14.', '14.'); - assert.equal(moment([2011, 0, 15]).format('DDDo'), '15.', '15.'); - assert.equal(moment([2011, 0, 16]).format('DDDo'), '16.', '16.'); - assert.equal(moment([2011, 0, 17]).format('DDDo'), '17.', '17.'); - assert.equal(moment([2011, 0, 18]).format('DDDo'), '18.', '18.'); - assert.equal(moment([2011, 0, 19]).format('DDDo'), '19.', '19.'); - assert.equal(moment([2011, 0, 20]).format('DDDo'), '20.', '20.'); - - assert.equal(moment([2011, 0, 21]).format('DDDo'), '21.', '21.'); - assert.equal(moment([2011, 0, 22]).format('DDDo'), '22.', '22.'); - assert.equal(moment([2011, 0, 23]).format('DDDo'), '23.', '23.'); - assert.equal(moment([2011, 0, 24]).format('DDDo'), '24.', '24.'); - assert.equal(moment([2011, 0, 25]).format('DDDo'), '25.', '25.'); - assert.equal(moment([2011, 0, 26]).format('DDDo'), '26.', '26.'); - assert.equal(moment([2011, 0, 27]).format('DDDo'), '27.', '27.'); - assert.equal(moment([2011, 0, 28]).format('DDDo'), '28.', '28.'); - assert.equal(moment([2011, 0, 29]).format('DDDo'), '29.', '29.'); - assert.equal(moment([2011, 0, 30]).format('DDDo'), '30.', '30.'); - - assert.equal(moment([2011, 0, 31]).format('DDDo'), '31.', '31.'); -}); - -test('format month', function (assert) { - var expected = 'Jänner Jän._Februar Febr._März Mrz._April Apr._Mai Mai_Juni Jun._Juli Jul._August Aug._September Sept._Oktober Okt._November Nov._Dezember Dez.'.split('_'), i; - for (i = 0; i < expected.length; i++) { - assert.equal(moment([2011, i, 1]).format('MMMM MMM'), expected[i], expected[i]); - } -}); - -test('format week', function (assert) { - var expected = 'Sonntag So. So_Montag Mo. Mo_Dienstag Di. Di_Mittwoch Mi. Mi_Donnerstag Do. Do_Freitag Fr. Fr_Samstag Sa. Sa'.split('_'), i; - for (i = 0; i < expected.length; i++) { - assert.equal(moment([2011, 0, 2 + i]).format('dddd ddd dd'), expected[i], expected[i]); - } -}); - -test('from', function (assert) { - var start = moment([2007, 1, 28]); - assert.equal(start.from(moment([2007, 1, 28]).add({s: 44}), true), 'ein paar Sekunden', '44 seconds = a few seconds'); - assert.equal(start.from(moment([2007, 1, 28]).add({s: 45}), true), 'eine Minute', '45 seconds = a minute'); - assert.equal(start.from(moment([2007, 1, 28]).add({s: 89}), true), 'eine Minute', '89 seconds = a minute'); - assert.equal(start.from(moment([2007, 1, 28]).add({s: 90}), true), '2 Minuten', '90 seconds = 2 minutes'); - assert.equal(start.from(moment([2007, 1, 28]).add({m: 44}), true), '44 Minuten', '44 minutes = 44 minutes'); - assert.equal(start.from(moment([2007, 1, 28]).add({m: 45}), true), 'eine Stunde', '45 minutes = an hour'); - assert.equal(start.from(moment([2007, 1, 28]).add({m: 89}), true), 'eine Stunde', '89 minutes = an hour'); - assert.equal(start.from(moment([2007, 1, 28]).add({m: 90}), true), '2 Stunden', '90 minutes = 2 hours'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 5}), true), '5 Stunden', '5 hours = 5 hours'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 21}), true), '21 Stunden', '21 hours = 21 hours'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 22}), true), 'ein Tag', '22 hours = a day'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 35}), true), 'ein Tag', '35 hours = a day'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 36}), true), '2 Tage', '36 hours = 2 days'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 1}), true), 'ein Tag', '1 day = a day'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 5}), true), '5 Tage', '5 days = 5 days'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 25}), true), '25 Tage', '25 days = 25 days'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 26}), true), 'ein Monat', '26 days = a month'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 30}), true), 'ein Monat', '30 days = a month'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 46}), true), '2 Monate', '46 days = 2 months'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 74}), true), '2 Monate', '75 days = 2 months'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 76}), true), '3 Monate', '76 days = 3 months'); - assert.equal(start.from(moment([2007, 1, 28]).add({M: 1}), true), 'ein Monat', '1 month = a month'); - assert.equal(start.from(moment([2007, 1, 28]).add({M: 5}), true), '5 Monate', '5 months = 5 months'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 345}), true), 'ein Jahr', '345 days = a year'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 548}), true), '2 Jahre', '548 days = 2 years'); - assert.equal(start.from(moment([2007, 1, 28]).add({y: 1}), true), 'ein Jahr', '1 year = a year'); - assert.equal(start.from(moment([2007, 1, 28]).add({y: 5}), true), '5 Jahre', '5 years = 5 years'); -}); - -test('suffix', function (assert) { - assert.equal(moment(30000).from(0), 'in ein paar Sekunden', 'prefix'); - assert.equal(moment(0).from(30000), 'vor ein paar Sekunden', 'suffix'); -}); - -test('fromNow', function (assert) { - assert.equal(moment().add({s: 30}).fromNow(), 'in ein paar Sekunden', 'in a few seconds'); - assert.equal(moment().add({d: 5}).fromNow(), 'in 5 Tagen', 'in 5 days'); -}); - -test('calendar day', function (assert) { - var a = moment().hours(12).minutes(0).seconds(0); - - assert.equal(moment(a).calendar(), 'heute um 12:00 Uhr', 'today at the same time'); - assert.equal(moment(a).add({m: 25}).calendar(), 'heute um 12:25 Uhr', 'Now plus 25 min'); - assert.equal(moment(a).add({h: 1}).calendar(), 'heute um 13:00 Uhr', 'Now plus 1 hour'); - assert.equal(moment(a).add({d: 1}).calendar(), 'morgen um 12:00 Uhr', 'tomorrow at the same time'); - assert.equal(moment(a).subtract({h: 1}).calendar(), 'heute um 11:00 Uhr', 'Now minus 1 hour'); - assert.equal(moment(a).subtract({d: 1}).calendar(), 'gestern um 12:00 Uhr', 'yesterday at the same time'); -}); - -test('calendar next week', function (assert) { - var i, m; - for (i = 2; i < 7; i++) { - m = moment().add({d: i}); - assert.equal(m.calendar(), m.format('dddd [um] LT [Uhr]'), 'Today + ' + i + ' days current time'); - m.hours(0).minutes(0).seconds(0).milliseconds(0); - assert.equal(m.calendar(), m.format('dddd [um] LT [Uhr]'), 'Today + ' + i + ' days beginning of day'); - m.hours(23).minutes(59).seconds(59).milliseconds(999); - assert.equal(m.calendar(), m.format('dddd [um] LT [Uhr]'), 'Today + ' + i + ' days end of day'); - } -}); - -test('calendar last week', function (assert) { - var i, m; - for (i = 2; i < 7; i++) { - m = moment().subtract({d: i}); - assert.equal(m.calendar(), m.format('[letzten] dddd [um] LT [Uhr]'), 'Today + ' + i + ' days current time'); - m.hours(0).minutes(0).seconds(0).milliseconds(0); - assert.equal(m.calendar(), m.format('[letzten] dddd [um] LT [Uhr]'), 'Today + ' + i + ' days beginning of day'); - m.hours(23).minutes(59).seconds(59).milliseconds(999); - assert.equal(m.calendar(), m.format('[letzten] dddd [um] LT [Uhr]'), 'Today + ' + i + ' days end of day'); - } -}); - -test('calendar all else', function (assert) { - var weeksAgo = moment().subtract({w: 1}), - weeksFromNow = moment().add({w: 1}); - - assert.equal(weeksAgo.calendar(), weeksAgo.format('L'), '1 week ago'); - assert.equal(weeksFromNow.calendar(), weeksFromNow.format('L'), 'in 1 week'); - - weeksAgo = moment().subtract({w: 2}); - weeksFromNow = moment().add({w: 2}); - - assert.equal(weeksAgo.calendar(), weeksAgo.format('L'), '2 weeks ago'); - assert.equal(weeksFromNow.calendar(), weeksFromNow.format('L'), 'in 2 weeks'); -}); - -test('weeks year starting sunday formatted', function (assert) { - assert.equal(moment([2012, 0, 1]).format('w ww wo'), '52 52 52.', 'Jan 1 2012 should be week 52'); - assert.equal(moment([2012, 0, 2]).format('w ww wo'), '1 01 1.', 'Jan 2 2012 should be week 1'); - assert.equal(moment([2012, 0, 8]).format('w ww wo'), '1 01 1.', 'Jan 8 2012 should be week 1'); - assert.equal(moment([2012, 0, 9]).format('w ww wo'), '2 02 2.', 'Jan 9 2012 should be week 2'); - assert.equal(moment([2012, 0, 15]).format('w ww wo'), '2 02 2.', 'Jan 15 2012 should be week 2'); -}); - -}))); - - -;(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' - && typeof require === 'function' ? factory(require('../../moment')) : - typeof define === 'function' && define.amd ? define(['../../moment'], factory) : - factory(global.moment) -}(this, (function (moment) { 'use strict'; - -function each(array, callback) { - var i; - for (i = 0; i < array.length; i++) { - callback(array[i], i, array); - } -} - -function objectKeys(obj) { - if (Object.keys) { - return Object.keys(obj); - } else { - // IE8 - var res = [], i; - for (i in obj) { - if (obj.hasOwnProperty(i)) { - res.push(i); - } - } - return res; - } -} - -// Pick the first defined of two or three arguments. - -function defineCommonLocaleTests(locale, options) { - test('lenient day of month ordinal parsing', function (assert) { - var i, ordinalStr, testMoment; - for (i = 1; i <= 31; ++i) { - ordinalStr = moment([2014, 0, i]).format('YYYY MM Do'); - testMoment = moment(ordinalStr, 'YYYY MM Do'); - assert.equal(testMoment.year(), 2014, - 'lenient day of month ordinal parsing ' + i + ' year check'); - assert.equal(testMoment.month(), 0, - 'lenient day of month ordinal parsing ' + i + ' month check'); - assert.equal(testMoment.date(), i, - 'lenient day of month ordinal parsing ' + i + ' date check'); - } - }); - - test('lenient day of month ordinal parsing of number', function (assert) { - var i, testMoment; - for (i = 1; i <= 31; ++i) { - testMoment = moment('2014 01 ' + i, 'YYYY MM Do'); - assert.equal(testMoment.year(), 2014, - 'lenient day of month ordinal parsing of number ' + i + ' year check'); - assert.equal(testMoment.month(), 0, - 'lenient day of month ordinal parsing of number ' + i + ' month check'); - assert.equal(testMoment.date(), i, - 'lenient day of month ordinal parsing of number ' + i + ' date check'); - } - }); - - test('strict day of month ordinal parsing', function (assert) { - var i, ordinalStr, testMoment; - for (i = 1; i <= 31; ++i) { - ordinalStr = moment([2014, 0, i]).format('YYYY MM Do'); - testMoment = moment(ordinalStr, 'YYYY MM Do', true); - assert.ok(testMoment.isValid(), 'strict day of month ordinal parsing ' + i); - } - }); - - test('meridiem invariant', function (assert) { - var h, m, t1, t2; - for (h = 0; h < 24; ++h) { - for (m = 0; m < 60; m += 15) { - t1 = moment.utc([2000, 0, 1, h, m]); - t2 = moment.utc(t1.format('A h:mm'), 'A h:mm'); - assert.equal(t2.format('HH:mm'), t1.format('HH:mm'), - 'meridiem at ' + t1.format('HH:mm')); - } - } - }); - - test('date format correctness', function (assert) { - var data, tokens; - data = moment.localeData()._longDateFormat; - tokens = objectKeys(data); - each(tokens, function (srchToken) { - // Check each format string to make sure it does not contain any - // tokens that need to be expanded. - each(tokens, function (baseToken) { - // strip escaped sequences - var format = data[baseToken].replace(/(\[[^\]]*\])/g, ''); - assert.equal(false, !!~format.indexOf(srchToken), - 'contains ' + srchToken + ' in ' + baseToken); - }); - }); - }); - - test('month parsing correctness', function (assert) { - var i, m; - - if (locale === 'tr') { - // I can't fix it :( - expect(0); - return; - } - function tester(format) { - var r; - r = moment(m.format(format), format); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format); - r = moment(m.format(format).toLocaleUpperCase(), format); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' upper'); - r = moment(m.format(format).toLocaleLowerCase(), format); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' lower'); - - r = moment(m.format(format), format, true); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' strict'); - r = moment(m.format(format).toLocaleUpperCase(), format, true); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' upper strict'); - r = moment(m.format(format).toLocaleLowerCase(), format, true); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' lower strict'); - } - - for (i = 0; i < 12; ++i) { - m = moment([2015, i, 15, 18]); - tester('MMM'); - tester('MMM.'); - tester('MMMM'); - tester('MMMM.'); - } - }); - - test('weekday parsing correctness', function (assert) { - var i, m; - - if (locale === 'tr' || locale === 'az' || locale === 'ro') { - // tr, az: There is a lower-case letter (ı), that converted to - // upper then lower changes to i - // ro: there is the letter ț which behaves weird under IE8 - expect(0); - return; - } - function tester(format) { - var r, baseMsg = 'weekday ' + m.weekday() + ' fmt ' + format + ' ' + m.toISOString(); - r = moment(m.format(format), format); - assert.equal(r.weekday(), m.weekday(), baseMsg); - r = moment(m.format(format).toLocaleUpperCase(), format); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' upper'); - r = moment(m.format(format).toLocaleLowerCase(), format); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' lower'); - - r = moment(m.format(format), format, true); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' strict'); - r = moment(m.format(format).toLocaleUpperCase(), format, true); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' upper strict'); - r = moment(m.format(format).toLocaleLowerCase(), format, true); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' lower strict'); - } - - for (i = 0; i < 7; ++i) { - m = moment.utc([2015, 0, i + 1, 18]); - tester('dd'); - tester('ddd'); - tester('dddd'); - } - }); - - test('valid localeData', function (assert) { - assert.equal(moment().localeData().months().length, 12, 'months should return 12 months'); - assert.equal(moment().localeData().monthsShort().length, 12, 'monthsShort should return 12 months'); - assert.equal(moment().localeData().weekdays().length, 7, 'weekdays should return 7 days'); - assert.equal(moment().localeData().weekdaysShort().length, 7, 'weekdaysShort should return 7 days'); - assert.equal(moment().localeData().weekdaysMin().length, 7, 'monthsShort should return 7 days'); - }); -} - -function setupDeprecationHandler(test, moment$$1, scope) { - test._expectedDeprecations = null; - test._observedDeprecations = null; - test._oldSupress = moment$$1.suppressDeprecationWarnings; - moment$$1.suppressDeprecationWarnings = true; - test.expectedDeprecations = function () { - test._expectedDeprecations = arguments; - test._observedDeprecations = []; - }; - moment$$1.deprecationHandler = function (name, msg) { - var deprecationId = matchedDeprecation(name, msg, test._expectedDeprecations); - if (deprecationId === -1) { - throw new Error('Unexpected deprecation thrown name=' + - name + ' msg=' + msg); - } - test._observedDeprecations[deprecationId] = 1; - }; -} - -function teardownDeprecationHandler(test, moment$$1, scope) { - moment$$1.suppressDeprecationWarnings = test._oldSupress; - - if (test._expectedDeprecations != null) { - var missedDeprecations = []; - each(test._expectedDeprecations, function (deprecationPattern, id) { - if (test._observedDeprecations[id] !== 1) { - missedDeprecations.push(deprecationPattern); - } - }); - if (missedDeprecations.length !== 0) { - throw new Error('Expected deprecation warnings did not happen: ' + - missedDeprecations.join(' ')); - } - } -} - -function matchedDeprecation(name, msg, deprecations) { - if (deprecations == null) { - return -1; - } - for (var i = 0; i < deprecations.length; ++i) { - if (name != null && name === deprecations[i]) { - return i; - } - if (msg != null && msg.substring(0, deprecations[i].length) === deprecations[i]) { - return i; - } - } - return -1; -} - -/*global QUnit:false*/ - -var test = QUnit.test; - -var expect = QUnit.expect; - - - -function localeModule (name, lifecycle) { - QUnit.module('locale:' + name, { - setup : function () { - moment.locale(name); - moment.createFromInputFallback = function (config) { - throw new Error('input not handled by moment: ' + config._i); - }; - setupDeprecationHandler(test, moment, 'locale'); - if (lifecycle && lifecycle.setup) { - lifecycle.setup(); - } - }, - teardown : function () { - moment.locale('en'); - teardownDeprecationHandler(test, moment, 'locale'); - if (lifecycle && lifecycle.teardown) { - lifecycle.teardown(); - } - } - }); - defineCommonLocaleTests(name, -1, -1); -} - -localeModule('de-ch'); - -test('parse', function (assert) { - var tests = 'Januar Jan._Februar Febr._März März_April April_Mai Mai_Juni Juni_Juli Juli_August Aug._September Sept._Oktober Okt._November Nov._Dezember Dez.'.split('_'), i; - function equalTest(input, mmm, i) { - assert.equal(moment(input, mmm).month(), i, input + ' should be month ' + (i + 1)); - } - for (i = 0; i < 12; i++) { - tests[i] = tests[i].split(' '); - equalTest(tests[i][0], 'MMM', i); - equalTest(tests[i][1], 'MMM', i); - equalTest(tests[i][0], 'MMMM', i); - equalTest(tests[i][1], 'MMMM', i); - equalTest(tests[i][0].toLocaleLowerCase(), 'MMMM', i); - equalTest(tests[i][1].toLocaleLowerCase(), 'MMMM', i); - equalTest(tests[i][0].toLocaleUpperCase(), 'MMMM', i); - equalTest(tests[i][1].toLocaleUpperCase(), 'MMMM', i); - } -}); - -test('format', function (assert) { - var a = [ - ['dddd, Do MMMM YYYY, h.mm.ss a', 'Sonntag, 14. Februar 2010, 3.25.50 pm'], - ['ddd, hA', 'So, 3PM'], - ['M Mo MM MMMM MMM', '2 2. 02 Februar Febr.'], - ['YYYY YY', '2010 10'], - ['D Do DD', '14 14. 14'], - ['d do dddd ddd dd', '0 0. Sonntag So So'], - ['DDD DDDo DDDD', '45 45. 045'], - ['w wo ww', '6 6. 06'], - ['h hh', '3 03'], - ['H HH', '15 15'], - ['m mm', '25 25'], - ['s ss', '50 50'], - ['a A', 'pm PM'], - ['[the] DDDo [day of the year]', 'the 45. day of the year'], - ['LTS', '15.25.50'], - ['L', '14.02.2010'], - ['LL', '14. Februar 2010'], - ['LLL', '14. Februar 2010 15.25'], - ['LLLL', 'Sonntag, 14. Februar 2010 15.25'], - ['l', '14.2.2010'], - ['ll', '14. Febr. 2010'], - ['lll', '14. Febr. 2010 15.25'], - ['llll', 'So, 14. Febr. 2010 15.25'] - ], - b = moment(new Date(2010, 1, 14, 15, 25, 50, 125)), - i; - for (i = 0; i < a.length; i++) { - assert.equal(b.format(a[i][0]), a[i][1], a[i][0] + ' ---> ' + a[i][1]); - } -}); - -test('format ordinal', function (assert) { - assert.equal(moment([2011, 0, 1]).format('DDDo'), '1.', '1.'); - assert.equal(moment([2011, 0, 2]).format('DDDo'), '2.', '2.'); - assert.equal(moment([2011, 0, 3]).format('DDDo'), '3.', '3.'); - assert.equal(moment([2011, 0, 4]).format('DDDo'), '4.', '4.'); - assert.equal(moment([2011, 0, 5]).format('DDDo'), '5.', '5.'); - assert.equal(moment([2011, 0, 6]).format('DDDo'), '6.', '6.'); - assert.equal(moment([2011, 0, 7]).format('DDDo'), '7.', '7.'); - assert.equal(moment([2011, 0, 8]).format('DDDo'), '8.', '8.'); - assert.equal(moment([2011, 0, 9]).format('DDDo'), '9.', '9.'); - assert.equal(moment([2011, 0, 10]).format('DDDo'), '10.', '10.'); - - assert.equal(moment([2011, 0, 11]).format('DDDo'), '11.', '11.'); - assert.equal(moment([2011, 0, 12]).format('DDDo'), '12.', '12.'); - assert.equal(moment([2011, 0, 13]).format('DDDo'), '13.', '13.'); - assert.equal(moment([2011, 0, 14]).format('DDDo'), '14.', '14.'); - assert.equal(moment([2011, 0, 15]).format('DDDo'), '15.', '15.'); - assert.equal(moment([2011, 0, 16]).format('DDDo'), '16.', '16.'); - assert.equal(moment([2011, 0, 17]).format('DDDo'), '17.', '17.'); - assert.equal(moment([2011, 0, 18]).format('DDDo'), '18.', '18.'); - assert.equal(moment([2011, 0, 19]).format('DDDo'), '19.', '19.'); - assert.equal(moment([2011, 0, 20]).format('DDDo'), '20.', '20.'); - - assert.equal(moment([2011, 0, 21]).format('DDDo'), '21.', '21.'); - assert.equal(moment([2011, 0, 22]).format('DDDo'), '22.', '22.'); - assert.equal(moment([2011, 0, 23]).format('DDDo'), '23.', '23.'); - assert.equal(moment([2011, 0, 24]).format('DDDo'), '24.', '24.'); - assert.equal(moment([2011, 0, 25]).format('DDDo'), '25.', '25.'); - assert.equal(moment([2011, 0, 26]).format('DDDo'), '26.', '26.'); - assert.equal(moment([2011, 0, 27]).format('DDDo'), '27.', '27.'); - assert.equal(moment([2011, 0, 28]).format('DDDo'), '28.', '28.'); - assert.equal(moment([2011, 0, 29]).format('DDDo'), '29.', '29.'); - assert.equal(moment([2011, 0, 30]).format('DDDo'), '30.', '30.'); - - assert.equal(moment([2011, 0, 31]).format('DDDo'), '31.', '31.'); -}); - -test('format month', function (assert) { - var expected = 'Januar Jan._Februar Febr._März März_April April_Mai Mai_Juni Juni_Juli Juli_August Aug._September Sept._Oktober Okt._November Nov._Dezember Dez.'.split('_'), i; - for (i = 0; i < expected.length; i++) { - assert.equal(moment([2011, i, 1]).format('MMMM MMM'), expected[i], expected[i]); - } -}); - -test('format week', function (assert) { - var expected = 'Sonntag So So_Montag Mo Mo_Dienstag Di Di_Mittwoch Mi Mi_Donnerstag Do Do_Freitag Fr Fr_Samstag Sa Sa'.split('_'), i; - for (i = 0; i < expected.length; i++) { - assert.equal(moment([2011, 0, 2 + i]).format('dddd ddd dd'), expected[i], expected[i]); - } -}); - -test('from', function (assert) { - var start = moment([2007, 1, 28]); - assert.equal(start.from(moment([2007, 1, 28]).add({s: 44}), true), 'ein paar Sekunden', '44 seconds = a few seconds'); - assert.equal(start.from(moment([2007, 1, 28]).add({s: 45}), true), 'eine Minute', '45 seconds = a minute'); - assert.equal(start.from(moment([2007, 1, 28]).add({s: 89}), true), 'eine Minute', '89 seconds = a minute'); - assert.equal(start.from(moment([2007, 1, 28]).add({s: 90}), true), '2 Minuten', '90 seconds = 2 minutes'); - assert.equal(start.from(moment([2007, 1, 28]).add({m: 44}), true), '44 Minuten', '44 minutes = 44 minutes'); - assert.equal(start.from(moment([2007, 1, 28]).add({m: 45}), true), 'eine Stunde', '45 minutes = an hour'); - assert.equal(start.from(moment([2007, 1, 28]).add({m: 89}), true), 'eine Stunde', '89 minutes = an hour'); - assert.equal(start.from(moment([2007, 1, 28]).add({m: 90}), true), '2 Stunden', '90 minutes = 2 hours'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 5}), true), '5 Stunden', '5 hours = 5 hours'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 21}), true), '21 Stunden', '21 hours = 21 hours'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 22}), true), 'ein Tag', '22 hours = a day'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 35}), true), 'ein Tag', '35 hours = a day'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 36}), true), '2 Tage', '36 hours = 2 days'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 1}), true), 'ein Tag', '1 day = a day'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 5}), true), '5 Tage', '5 days = 5 days'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 25}), true), '25 Tage', '25 days = 25 days'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 26}), true), 'ein Monat', '26 days = a month'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 30}), true), 'ein Monat', '30 days = a month'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 43}), true), 'ein Monat', '43 days = a month'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 46}), true), '2 Monate', '46 days = 2 months'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 74}), true), '2 Monate', '75 days = 2 months'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 76}), true), '3 Monate', '76 days = 3 months'); - assert.equal(start.from(moment([2007, 1, 28]).add({M: 1}), true), 'ein Monat', '1 month = a month'); - assert.equal(start.from(moment([2007, 1, 28]).add({M: 5}), true), '5 Monate', '5 months = 5 months'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 345}), true), 'ein Jahr', '345 days = a year'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 548}), true), '2 Jahre', '548 days = 2 years'); - assert.equal(start.from(moment([2007, 1, 28]).add({y: 1}), true), 'ein Jahr', '1 year = a year'); - assert.equal(start.from(moment([2007, 1, 28]).add({y: 5}), true), '5 Jahre', '5 years = 5 years'); -}); - -test('suffix', function (assert) { - assert.equal(moment(30000).from(0), 'in ein paar Sekunden', 'prefix'); - assert.equal(moment(0).from(30000), 'vor ein paar Sekunden', 'suffix'); -}); - -test('fromNow', function (assert) { - assert.equal(moment().add({s: 30}).fromNow(), 'in ein paar Sekunden', 'in a few seconds'); - assert.equal(moment().add({d: 5}).fromNow(), 'in 5 Tagen', 'in 5 days'); -}); - -test('calendar day', function (assert) { - var a = moment().hours(12).minutes(0).seconds(0); - - assert.equal(moment(a).calendar(), 'heute um 12.00 Uhr', 'today at the same time'); - assert.equal(moment(a).add({m: 25}).calendar(), 'heute um 12.25 Uhr', 'Now plus 25 min'); - assert.equal(moment(a).add({h: 1}).calendar(), 'heute um 13.00 Uhr', 'Now plus 1 hour'); - assert.equal(moment(a).add({d: 1}).calendar(), 'morgen um 12.00 Uhr', 'tomorrow at the same time'); - assert.equal(moment(a).subtract({h: 1}).calendar(), 'heute um 11.00 Uhr', 'Now minus 1 hour'); - assert.equal(moment(a).subtract({d: 1}).calendar(), 'gestern um 12.00 Uhr', 'yesterday at the same time'); -}); - -test('calendar next week', function (assert) { - var i, m; - for (i = 2; i < 7; i++) { - m = moment().add({d: i}); - assert.equal(m.calendar(), m.format('dddd [um] LT [Uhr]'), 'Today + ' + i + ' days current time'); - m.hours(0).minutes(0).seconds(0).milliseconds(0); - assert.equal(m.calendar(), m.format('dddd [um] LT [Uhr]'), 'Today + ' + i + ' days beginning of day'); - m.hours(23).minutes(59).seconds(59).milliseconds(999); - assert.equal(m.calendar(), m.format('dddd [um] LT [Uhr]'), 'Today + ' + i + ' days end of day'); - } -}); - -test('calendar last week', function (assert) { - var i, m; - for (i = 2; i < 7; i++) { - m = moment().subtract({d: i}); - assert.equal(m.calendar(), m.format('[letzten] dddd [um] LT [Uhr]'), 'Today + ' + i + ' days current time'); - m.hours(0).minutes(0).seconds(0).milliseconds(0); - assert.equal(m.calendar(), m.format('[letzten] dddd [um] LT [Uhr]'), 'Today + ' + i + ' days beginning of day'); - m.hours(23).minutes(59).seconds(59).milliseconds(999); - assert.equal(m.calendar(), m.format('[letzten] dddd [um] LT [Uhr]'), 'Today + ' + i + ' days end of day'); - } -}); - -test('calendar all else', function (assert) { - var weeksAgo = moment().subtract({w: 1}), - weeksFromNow = moment().add({w: 1}); - - assert.equal(weeksAgo.calendar(), weeksAgo.format('L'), '1 week ago'); - assert.equal(weeksFromNow.calendar(), weeksFromNow.format('L'), 'in 1 week'); - - weeksAgo = moment().subtract({w: 2}); - weeksFromNow = moment().add({w: 2}); - - assert.equal(weeksAgo.calendar(), weeksAgo.format('L'), '2 weeks ago'); - assert.equal(weeksFromNow.calendar(), weeksFromNow.format('L'), 'in 2 weeks'); -}); - -test('weeks year starting sunday formatted', function (assert) { - assert.equal(moment([2012, 0, 1]).format('w ww wo'), '52 52 52.', 'Jan 1 2012 should be week 52'); - assert.equal(moment([2012, 0, 2]).format('w ww wo'), '1 01 1.', 'Jan 2 2012 should be week 1'); - assert.equal(moment([2012, 0, 8]).format('w ww wo'), '1 01 1.', 'Jan 8 2012 should be week 1'); - assert.equal(moment([2012, 0, 9]).format('w ww wo'), '2 02 2.', 'Jan 9 2012 should be week 2'); - assert.equal(moment([2012, 0, 15]).format('w ww wo'), '2 02 2.', 'Jan 15 2012 should be week 2'); -}); - -}))); - - -;(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' - && typeof require === 'function' ? factory(require('../../moment')) : - typeof define === 'function' && define.amd ? define(['../../moment'], factory) : - factory(global.moment) -}(this, (function (moment) { 'use strict'; - -function each(array, callback) { - var i; - for (i = 0; i < array.length; i++) { - callback(array[i], i, array); - } -} - -function objectKeys(obj) { - if (Object.keys) { - return Object.keys(obj); - } else { - // IE8 - var res = [], i; - for (i in obj) { - if (obj.hasOwnProperty(i)) { - res.push(i); - } - } - return res; - } -} - -// Pick the first defined of two or three arguments. - -function defineCommonLocaleTests(locale, options) { - test('lenient day of month ordinal parsing', function (assert) { - var i, ordinalStr, testMoment; - for (i = 1; i <= 31; ++i) { - ordinalStr = moment([2014, 0, i]).format('YYYY MM Do'); - testMoment = moment(ordinalStr, 'YYYY MM Do'); - assert.equal(testMoment.year(), 2014, - 'lenient day of month ordinal parsing ' + i + ' year check'); - assert.equal(testMoment.month(), 0, - 'lenient day of month ordinal parsing ' + i + ' month check'); - assert.equal(testMoment.date(), i, - 'lenient day of month ordinal parsing ' + i + ' date check'); - } - }); - - test('lenient day of month ordinal parsing of number', function (assert) { - var i, testMoment; - for (i = 1; i <= 31; ++i) { - testMoment = moment('2014 01 ' + i, 'YYYY MM Do'); - assert.equal(testMoment.year(), 2014, - 'lenient day of month ordinal parsing of number ' + i + ' year check'); - assert.equal(testMoment.month(), 0, - 'lenient day of month ordinal parsing of number ' + i + ' month check'); - assert.equal(testMoment.date(), i, - 'lenient day of month ordinal parsing of number ' + i + ' date check'); - } - }); - - test('strict day of month ordinal parsing', function (assert) { - var i, ordinalStr, testMoment; - for (i = 1; i <= 31; ++i) { - ordinalStr = moment([2014, 0, i]).format('YYYY MM Do'); - testMoment = moment(ordinalStr, 'YYYY MM Do', true); - assert.ok(testMoment.isValid(), 'strict day of month ordinal parsing ' + i); - } - }); - - test('meridiem invariant', function (assert) { - var h, m, t1, t2; - for (h = 0; h < 24; ++h) { - for (m = 0; m < 60; m += 15) { - t1 = moment.utc([2000, 0, 1, h, m]); - t2 = moment.utc(t1.format('A h:mm'), 'A h:mm'); - assert.equal(t2.format('HH:mm'), t1.format('HH:mm'), - 'meridiem at ' + t1.format('HH:mm')); - } - } - }); - - test('date format correctness', function (assert) { - var data, tokens; - data = moment.localeData()._longDateFormat; - tokens = objectKeys(data); - each(tokens, function (srchToken) { - // Check each format string to make sure it does not contain any - // tokens that need to be expanded. - each(tokens, function (baseToken) { - // strip escaped sequences - var format = data[baseToken].replace(/(\[[^\]]*\])/g, ''); - assert.equal(false, !!~format.indexOf(srchToken), - 'contains ' + srchToken + ' in ' + baseToken); - }); - }); - }); - - test('month parsing correctness', function (assert) { - var i, m; - - if (locale === 'tr') { - // I can't fix it :( - expect(0); - return; - } - function tester(format) { - var r; - r = moment(m.format(format), format); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format); - r = moment(m.format(format).toLocaleUpperCase(), format); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' upper'); - r = moment(m.format(format).toLocaleLowerCase(), format); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' lower'); - - r = moment(m.format(format), format, true); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' strict'); - r = moment(m.format(format).toLocaleUpperCase(), format, true); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' upper strict'); - r = moment(m.format(format).toLocaleLowerCase(), format, true); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' lower strict'); - } - - for (i = 0; i < 12; ++i) { - m = moment([2015, i, 15, 18]); - tester('MMM'); - tester('MMM.'); - tester('MMMM'); - tester('MMMM.'); - } - }); - - test('weekday parsing correctness', function (assert) { - var i, m; - - if (locale === 'tr' || locale === 'az' || locale === 'ro') { - // tr, az: There is a lower-case letter (ı), that converted to - // upper then lower changes to i - // ro: there is the letter ț which behaves weird under IE8 - expect(0); - return; - } - function tester(format) { - var r, baseMsg = 'weekday ' + m.weekday() + ' fmt ' + format + ' ' + m.toISOString(); - r = moment(m.format(format), format); - assert.equal(r.weekday(), m.weekday(), baseMsg); - r = moment(m.format(format).toLocaleUpperCase(), format); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' upper'); - r = moment(m.format(format).toLocaleLowerCase(), format); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' lower'); - - r = moment(m.format(format), format, true); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' strict'); - r = moment(m.format(format).toLocaleUpperCase(), format, true); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' upper strict'); - r = moment(m.format(format).toLocaleLowerCase(), format, true); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' lower strict'); - } - - for (i = 0; i < 7; ++i) { - m = moment.utc([2015, 0, i + 1, 18]); - tester('dd'); - tester('ddd'); - tester('dddd'); - } - }); - - test('valid localeData', function (assert) { - assert.equal(moment().localeData().months().length, 12, 'months should return 12 months'); - assert.equal(moment().localeData().monthsShort().length, 12, 'monthsShort should return 12 months'); - assert.equal(moment().localeData().weekdays().length, 7, 'weekdays should return 7 days'); - assert.equal(moment().localeData().weekdaysShort().length, 7, 'weekdaysShort should return 7 days'); - assert.equal(moment().localeData().weekdaysMin().length, 7, 'monthsShort should return 7 days'); - }); -} - -function setupDeprecationHandler(test, moment$$1, scope) { - test._expectedDeprecations = null; - test._observedDeprecations = null; - test._oldSupress = moment$$1.suppressDeprecationWarnings; - moment$$1.suppressDeprecationWarnings = true; - test.expectedDeprecations = function () { - test._expectedDeprecations = arguments; - test._observedDeprecations = []; - }; - moment$$1.deprecationHandler = function (name, msg) { - var deprecationId = matchedDeprecation(name, msg, test._expectedDeprecations); - if (deprecationId === -1) { - throw new Error('Unexpected deprecation thrown name=' + - name + ' msg=' + msg); - } - test._observedDeprecations[deprecationId] = 1; - }; -} - -function teardownDeprecationHandler(test, moment$$1, scope) { - moment$$1.suppressDeprecationWarnings = test._oldSupress; - - if (test._expectedDeprecations != null) { - var missedDeprecations = []; - each(test._expectedDeprecations, function (deprecationPattern, id) { - if (test._observedDeprecations[id] !== 1) { - missedDeprecations.push(deprecationPattern); - } - }); - if (missedDeprecations.length !== 0) { - throw new Error('Expected deprecation warnings did not happen: ' + - missedDeprecations.join(' ')); - } - } -} - -function matchedDeprecation(name, msg, deprecations) { - if (deprecations == null) { - return -1; - } - for (var i = 0; i < deprecations.length; ++i) { - if (name != null && name === deprecations[i]) { - return i; - } - if (msg != null && msg.substring(0, deprecations[i].length) === deprecations[i]) { - return i; - } - } - return -1; -} - -/*global QUnit:false*/ - -var test = QUnit.test; - -var expect = QUnit.expect; - - - -function localeModule (name, lifecycle) { - QUnit.module('locale:' + name, { - setup : function () { - moment.locale(name); - moment.createFromInputFallback = function (config) { - throw new Error('input not handled by moment: ' + config._i); - }; - setupDeprecationHandler(test, moment, 'locale'); - if (lifecycle && lifecycle.setup) { - lifecycle.setup(); - } - }, - teardown : function () { - moment.locale('en'); - teardownDeprecationHandler(test, moment, 'locale'); - if (lifecycle && lifecycle.teardown) { - lifecycle.teardown(); - } - } - }); - defineCommonLocaleTests(name, -1, -1); -} - -localeModule('de'); - -test('parse', function (assert) { - var tests = 'Januar Jan._Februar Febr._März Mrz._April Apr._Mai Mai_Juni Jun._Juli Jul._August Aug._September Sept._Oktober Okt._November Nov._Dezember Dez.'.split('_'), i; - function equalTest(input, mmm, i) { - assert.equal(moment(input, mmm).month(), i, input + ' should be month ' + (i + 1)); - } - for (i = 0; i < 12; i++) { - tests[i] = tests[i].split(' '); - equalTest(tests[i][0], 'MMM', i); - equalTest(tests[i][1], 'MMM', i); - equalTest(tests[i][0], 'MMMM', i); - equalTest(tests[i][1], 'MMMM', i); - equalTest(tests[i][0].toLocaleLowerCase(), 'MMMM', i); - equalTest(tests[i][1].toLocaleLowerCase(), 'MMMM', i); - equalTest(tests[i][0].toLocaleUpperCase(), 'MMMM', i); - equalTest(tests[i][1].toLocaleUpperCase(), 'MMMM', i); - } -}); - -test('format', function (assert) { - var a = [ - ['dddd, Do MMMM YYYY, h:mm:ss a', 'Sonntag, 14. Februar 2010, 3:25:50 pm'], - ['ddd, hA', 'So., 3PM'], - ['M Mo MM MMMM MMM', '2 2. 02 Februar Febr.'], - ['YYYY YY', '2010 10'], - ['D Do DD', '14 14. 14'], - ['d do dddd ddd dd', '0 0. Sonntag So. So'], - ['DDD DDDo DDDD', '45 45. 045'], - ['w wo ww', '6 6. 06'], - ['h hh', '3 03'], - ['H HH', '15 15'], - ['m mm', '25 25'], - ['s ss', '50 50'], - ['a A', 'pm PM'], - ['[the] DDDo [day of the year]', 'the 45. day of the year'], - ['LTS', '15:25:50'], - ['L', '14.02.2010'], - ['LL', '14. Februar 2010'], - ['LLL', '14. Februar 2010 15:25'], - ['LLLL', 'Sonntag, 14. Februar 2010 15:25'], - ['l', '14.2.2010'], - ['ll', '14. Febr. 2010'], - ['lll', '14. Febr. 2010 15:25'], - ['llll', 'So., 14. Febr. 2010 15:25'] - ], - b = moment(new Date(2010, 1, 14, 15, 25, 50, 125)), - i; - for (i = 0; i < a.length; i++) { - assert.equal(b.format(a[i][0]), a[i][1], a[i][0] + ' ---> ' + a[i][1]); - } -}); - -test('format ordinal', function (assert) { - assert.equal(moment([2011, 0, 1]).format('DDDo'), '1.', '1.'); - assert.equal(moment([2011, 0, 2]).format('DDDo'), '2.', '2.'); - assert.equal(moment([2011, 0, 3]).format('DDDo'), '3.', '3.'); - assert.equal(moment([2011, 0, 4]).format('DDDo'), '4.', '4.'); - assert.equal(moment([2011, 0, 5]).format('DDDo'), '5.', '5.'); - assert.equal(moment([2011, 0, 6]).format('DDDo'), '6.', '6.'); - assert.equal(moment([2011, 0, 7]).format('DDDo'), '7.', '7.'); - assert.equal(moment([2011, 0, 8]).format('DDDo'), '8.', '8.'); - assert.equal(moment([2011, 0, 9]).format('DDDo'), '9.', '9.'); - assert.equal(moment([2011, 0, 10]).format('DDDo'), '10.', '10.'); - - assert.equal(moment([2011, 0, 11]).format('DDDo'), '11.', '11.'); - assert.equal(moment([2011, 0, 12]).format('DDDo'), '12.', '12.'); - assert.equal(moment([2011, 0, 13]).format('DDDo'), '13.', '13.'); - assert.equal(moment([2011, 0, 14]).format('DDDo'), '14.', '14.'); - assert.equal(moment([2011, 0, 15]).format('DDDo'), '15.', '15.'); - assert.equal(moment([2011, 0, 16]).format('DDDo'), '16.', '16.'); - assert.equal(moment([2011, 0, 17]).format('DDDo'), '17.', '17.'); - assert.equal(moment([2011, 0, 18]).format('DDDo'), '18.', '18.'); - assert.equal(moment([2011, 0, 19]).format('DDDo'), '19.', '19.'); - assert.equal(moment([2011, 0, 20]).format('DDDo'), '20.', '20.'); - - assert.equal(moment([2011, 0, 21]).format('DDDo'), '21.', '21.'); - assert.equal(moment([2011, 0, 22]).format('DDDo'), '22.', '22.'); - assert.equal(moment([2011, 0, 23]).format('DDDo'), '23.', '23.'); - assert.equal(moment([2011, 0, 24]).format('DDDo'), '24.', '24.'); - assert.equal(moment([2011, 0, 25]).format('DDDo'), '25.', '25.'); - assert.equal(moment([2011, 0, 26]).format('DDDo'), '26.', '26.'); - assert.equal(moment([2011, 0, 27]).format('DDDo'), '27.', '27.'); - assert.equal(moment([2011, 0, 28]).format('DDDo'), '28.', '28.'); - assert.equal(moment([2011, 0, 29]).format('DDDo'), '29.', '29.'); - assert.equal(moment([2011, 0, 30]).format('DDDo'), '30.', '30.'); - - assert.equal(moment([2011, 0, 31]).format('DDDo'), '31.', '31.'); -}); - -test('format month', function (assert) { - var expected = 'Januar Jan._Februar Febr._März Mrz._April Apr._Mai Mai_Juni Jun._Juli Jul._August Aug._September Sept._Oktober Okt._November Nov._Dezember Dez.'.split('_'), i; - for (i = 0; i < expected.length; i++) { - assert.equal(moment([2011, i, 1]).format('MMMM MMM'), expected[i], expected[i]); - } -}); - -test('format week', function (assert) { - var expected = 'Sonntag So. So_Montag Mo. Mo_Dienstag Di. Di_Mittwoch Mi. Mi_Donnerstag Do. Do_Freitag Fr. Fr_Samstag Sa. Sa'.split('_'), i; - for (i = 0; i < expected.length; i++) { - assert.equal(moment([2011, 0, 2 + i]).format('dddd ddd dd'), expected[i], expected[i]); - } -}); - -test('from', function (assert) { - var start = moment([2007, 1, 28]); - assert.equal(start.from(moment([2007, 1, 28]).add({s: 44}), true), 'ein paar Sekunden', '44 seconds = a few seconds'); - assert.equal(start.from(moment([2007, 1, 28]).add({s: 45}), true), 'eine Minute', '45 seconds = a minute'); - assert.equal(start.from(moment([2007, 1, 28]).add({s: 89}), true), 'eine Minute', '89 seconds = a minute'); - assert.equal(start.from(moment([2007, 1, 28]).add({s: 90}), true), '2 Minuten', '90 seconds = 2 minutes'); - assert.equal(start.from(moment([2007, 1, 28]).add({m: 44}), true), '44 Minuten', '44 minutes = 44 minutes'); - assert.equal(start.from(moment([2007, 1, 28]).add({m: 45}), true), 'eine Stunde', '45 minutes = an hour'); - assert.equal(start.from(moment([2007, 1, 28]).add({m: 89}), true), 'eine Stunde', '89 minutes = an hour'); - assert.equal(start.from(moment([2007, 1, 28]).add({m: 90}), true), '2 Stunden', '90 minutes = 2 hours'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 5}), true), '5 Stunden', '5 hours = 5 hours'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 21}), true), '21 Stunden', '21 hours = 21 hours'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 22}), true), 'ein Tag', '22 hours = a day'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 35}), true), 'ein Tag', '35 hours = a day'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 36}), true), '2 Tage', '36 hours = 2 days'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 1}), true), 'ein Tag', '1 day = a day'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 5}), true), '5 Tage', '5 days = 5 days'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 25}), true), '25 Tage', '25 days = 25 days'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 26}), true), 'ein Monat', '26 days = a month'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 30}), true), 'ein Monat', '30 days = a month'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 43}), true), 'ein Monat', '43 days = a month'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 46}), true), '2 Monate', '46 days = 2 months'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 74}), true), '2 Monate', '75 days = 2 months'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 76}), true), '3 Monate', '76 days = 3 months'); - assert.equal(start.from(moment([2007, 1, 28]).add({M: 1}), true), 'ein Monat', '1 month = a month'); - assert.equal(start.from(moment([2007, 1, 28]).add({M: 5}), true), '5 Monate', '5 months = 5 months'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 345}), true), 'ein Jahr', '345 days = a year'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 548}), true), '2 Jahre', '548 days = 2 years'); - assert.equal(start.from(moment([2007, 1, 28]).add({y: 1}), true), 'ein Jahr', '1 year = a year'); - assert.equal(start.from(moment([2007, 1, 28]).add({y: 5}), true), '5 Jahre', '5 years = 5 years'); -}); - -test('suffix', function (assert) { - assert.equal(moment(30000).from(0), 'in ein paar Sekunden', 'prefix'); - assert.equal(moment(0).from(30000), 'vor ein paar Sekunden', 'suffix'); -}); - -test('fromNow', function (assert) { - assert.equal(moment().add({s: 30}).fromNow(), 'in ein paar Sekunden', 'in a few seconds'); - assert.equal(moment().add({d: 5}).fromNow(), 'in 5 Tagen', 'in 5 days'); -}); - -test('calendar day', function (assert) { - var a = moment().hours(12).minutes(0).seconds(0); - - assert.equal(moment(a).calendar(), 'heute um 12:00 Uhr', 'today at the same time'); - assert.equal(moment(a).add({m: 25}).calendar(), 'heute um 12:25 Uhr', 'Now plus 25 min'); - assert.equal(moment(a).add({h: 1}).calendar(), 'heute um 13:00 Uhr', 'Now plus 1 hour'); - assert.equal(moment(a).add({d: 1}).calendar(), 'morgen um 12:00 Uhr', 'tomorrow at the same time'); - assert.equal(moment(a).subtract({h: 1}).calendar(), 'heute um 11:00 Uhr', 'Now minus 1 hour'); - assert.equal(moment(a).subtract({d: 1}).calendar(), 'gestern um 12:00 Uhr', 'yesterday at the same time'); -}); - -test('calendar next week', function (assert) { - var i, m; - for (i = 2; i < 7; i++) { - m = moment().add({d: i}); - assert.equal(m.calendar(), m.format('dddd [um] LT [Uhr]'), 'Today + ' + i + ' days current time'); - m.hours(0).minutes(0).seconds(0).milliseconds(0); - assert.equal(m.calendar(), m.format('dddd [um] LT [Uhr]'), 'Today + ' + i + ' days beginning of day'); - m.hours(23).minutes(59).seconds(59).milliseconds(999); - assert.equal(m.calendar(), m.format('dddd [um] LT [Uhr]'), 'Today + ' + i + ' days end of day'); - } -}); - -test('calendar last week', function (assert) { - var i, m; - for (i = 2; i < 7; i++) { - m = moment().subtract({d: i}); - assert.equal(m.calendar(), m.format('[letzten] dddd [um] LT [Uhr]'), 'Today + ' + i + ' days current time'); - m.hours(0).minutes(0).seconds(0).milliseconds(0); - assert.equal(m.calendar(), m.format('[letzten] dddd [um] LT [Uhr]'), 'Today + ' + i + ' days beginning of day'); - m.hours(23).minutes(59).seconds(59).milliseconds(999); - assert.equal(m.calendar(), m.format('[letzten] dddd [um] LT [Uhr]'), 'Today + ' + i + ' days end of day'); - } -}); - -test('calendar all else', function (assert) { - var weeksAgo = moment().subtract({w: 1}), - weeksFromNow = moment().add({w: 1}); - - assert.equal(weeksAgo.calendar(), weeksAgo.format('L'), '1 week ago'); - assert.equal(weeksFromNow.calendar(), weeksFromNow.format('L'), 'in 1 week'); - - weeksAgo = moment().subtract({w: 2}); - weeksFromNow = moment().add({w: 2}); - - assert.equal(weeksAgo.calendar(), weeksAgo.format('L'), '2 weeks ago'); - assert.equal(weeksFromNow.calendar(), weeksFromNow.format('L'), 'in 2 weeks'); -}); - -test('weeks year starting sunday formatted', function (assert) { - assert.equal(moment([2012, 0, 1]).format('w ww wo'), '52 52 52.', 'Jan 1 2012 should be week 52'); - assert.equal(moment([2012, 0, 2]).format('w ww wo'), '1 01 1.', 'Jan 2 2012 should be week 1'); - assert.equal(moment([2012, 0, 8]).format('w ww wo'), '1 01 1.', 'Jan 8 2012 should be week 1'); - assert.equal(moment([2012, 0, 9]).format('w ww wo'), '2 02 2.', 'Jan 9 2012 should be week 2'); - assert.equal(moment([2012, 0, 15]).format('w ww wo'), '2 02 2.', 'Jan 15 2012 should be week 2'); -}); - -}))); - - -;(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' - && typeof require === 'function' ? factory(require('../../moment')) : - typeof define === 'function' && define.amd ? define(['../../moment'], factory) : - factory(global.moment) -}(this, (function (moment) { 'use strict'; - -function each(array, callback) { - var i; - for (i = 0; i < array.length; i++) { - callback(array[i], i, array); - } -} - -function objectKeys(obj) { - if (Object.keys) { - return Object.keys(obj); - } else { - // IE8 - var res = [], i; - for (i in obj) { - if (obj.hasOwnProperty(i)) { - res.push(i); - } - } - return res; - } -} - -// Pick the first defined of two or three arguments. - -function defineCommonLocaleTests(locale, options) { - test('lenient day of month ordinal parsing', function (assert) { - var i, ordinalStr, testMoment; - for (i = 1; i <= 31; ++i) { - ordinalStr = moment([2014, 0, i]).format('YYYY MM Do'); - testMoment = moment(ordinalStr, 'YYYY MM Do'); - assert.equal(testMoment.year(), 2014, - 'lenient day of month ordinal parsing ' + i + ' year check'); - assert.equal(testMoment.month(), 0, - 'lenient day of month ordinal parsing ' + i + ' month check'); - assert.equal(testMoment.date(), i, - 'lenient day of month ordinal parsing ' + i + ' date check'); - } - }); - - test('lenient day of month ordinal parsing of number', function (assert) { - var i, testMoment; - for (i = 1; i <= 31; ++i) { - testMoment = moment('2014 01 ' + i, 'YYYY MM Do'); - assert.equal(testMoment.year(), 2014, - 'lenient day of month ordinal parsing of number ' + i + ' year check'); - assert.equal(testMoment.month(), 0, - 'lenient day of month ordinal parsing of number ' + i + ' month check'); - assert.equal(testMoment.date(), i, - 'lenient day of month ordinal parsing of number ' + i + ' date check'); - } - }); - - test('strict day of month ordinal parsing', function (assert) { - var i, ordinalStr, testMoment; - for (i = 1; i <= 31; ++i) { - ordinalStr = moment([2014, 0, i]).format('YYYY MM Do'); - testMoment = moment(ordinalStr, 'YYYY MM Do', true); - assert.ok(testMoment.isValid(), 'strict day of month ordinal parsing ' + i); - } - }); - - test('meridiem invariant', function (assert) { - var h, m, t1, t2; - for (h = 0; h < 24; ++h) { - for (m = 0; m < 60; m += 15) { - t1 = moment.utc([2000, 0, 1, h, m]); - t2 = moment.utc(t1.format('A h:mm'), 'A h:mm'); - assert.equal(t2.format('HH:mm'), t1.format('HH:mm'), - 'meridiem at ' + t1.format('HH:mm')); - } - } - }); - - test('date format correctness', function (assert) { - var data, tokens; - data = moment.localeData()._longDateFormat; - tokens = objectKeys(data); - each(tokens, function (srchToken) { - // Check each format string to make sure it does not contain any - // tokens that need to be expanded. - each(tokens, function (baseToken) { - // strip escaped sequences - var format = data[baseToken].replace(/(\[[^\]]*\])/g, ''); - assert.equal(false, !!~format.indexOf(srchToken), - 'contains ' + srchToken + ' in ' + baseToken); - }); - }); - }); - - test('month parsing correctness', function (assert) { - var i, m; - - if (locale === 'tr') { - // I can't fix it :( - expect(0); - return; - } - function tester(format) { - var r; - r = moment(m.format(format), format); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format); - r = moment(m.format(format).toLocaleUpperCase(), format); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' upper'); - r = moment(m.format(format).toLocaleLowerCase(), format); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' lower'); - - r = moment(m.format(format), format, true); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' strict'); - r = moment(m.format(format).toLocaleUpperCase(), format, true); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' upper strict'); - r = moment(m.format(format).toLocaleLowerCase(), format, true); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' lower strict'); - } - - for (i = 0; i < 12; ++i) { - m = moment([2015, i, 15, 18]); - tester('MMM'); - tester('MMM.'); - tester('MMMM'); - tester('MMMM.'); - } - }); - - test('weekday parsing correctness', function (assert) { - var i, m; - - if (locale === 'tr' || locale === 'az' || locale === 'ro') { - // tr, az: There is a lower-case letter (ı), that converted to - // upper then lower changes to i - // ro: there is the letter ț which behaves weird under IE8 - expect(0); - return; - } - function tester(format) { - var r, baseMsg = 'weekday ' + m.weekday() + ' fmt ' + format + ' ' + m.toISOString(); - r = moment(m.format(format), format); - assert.equal(r.weekday(), m.weekday(), baseMsg); - r = moment(m.format(format).toLocaleUpperCase(), format); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' upper'); - r = moment(m.format(format).toLocaleLowerCase(), format); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' lower'); - - r = moment(m.format(format), format, true); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' strict'); - r = moment(m.format(format).toLocaleUpperCase(), format, true); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' upper strict'); - r = moment(m.format(format).toLocaleLowerCase(), format, true); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' lower strict'); - } - - for (i = 0; i < 7; ++i) { - m = moment.utc([2015, 0, i + 1, 18]); - tester('dd'); - tester('ddd'); - tester('dddd'); - } - }); - - test('valid localeData', function (assert) { - assert.equal(moment().localeData().months().length, 12, 'months should return 12 months'); - assert.equal(moment().localeData().monthsShort().length, 12, 'monthsShort should return 12 months'); - assert.equal(moment().localeData().weekdays().length, 7, 'weekdays should return 7 days'); - assert.equal(moment().localeData().weekdaysShort().length, 7, 'weekdaysShort should return 7 days'); - assert.equal(moment().localeData().weekdaysMin().length, 7, 'monthsShort should return 7 days'); - }); -} - -function setupDeprecationHandler(test, moment$$1, scope) { - test._expectedDeprecations = null; - test._observedDeprecations = null; - test._oldSupress = moment$$1.suppressDeprecationWarnings; - moment$$1.suppressDeprecationWarnings = true; - test.expectedDeprecations = function () { - test._expectedDeprecations = arguments; - test._observedDeprecations = []; - }; - moment$$1.deprecationHandler = function (name, msg) { - var deprecationId = matchedDeprecation(name, msg, test._expectedDeprecations); - if (deprecationId === -1) { - throw new Error('Unexpected deprecation thrown name=' + - name + ' msg=' + msg); - } - test._observedDeprecations[deprecationId] = 1; - }; -} - -function teardownDeprecationHandler(test, moment$$1, scope) { - moment$$1.suppressDeprecationWarnings = test._oldSupress; - - if (test._expectedDeprecations != null) { - var missedDeprecations = []; - each(test._expectedDeprecations, function (deprecationPattern, id) { - if (test._observedDeprecations[id] !== 1) { - missedDeprecations.push(deprecationPattern); - } - }); - if (missedDeprecations.length !== 0) { - throw new Error('Expected deprecation warnings did not happen: ' + - missedDeprecations.join(' ')); - } - } -} - -function matchedDeprecation(name, msg, deprecations) { - if (deprecations == null) { - return -1; - } - for (var i = 0; i < deprecations.length; ++i) { - if (name != null && name === deprecations[i]) { - return i; - } - if (msg != null && msg.substring(0, deprecations[i].length) === deprecations[i]) { - return i; - } - } - return -1; -} - -/*global QUnit:false*/ - -var test = QUnit.test; - -var expect = QUnit.expect; - - - -function localeModule (name, lifecycle) { - QUnit.module('locale:' + name, { - setup : function () { - moment.locale(name); - moment.createFromInputFallback = function (config) { - throw new Error('input not handled by moment: ' + config._i); - }; - setupDeprecationHandler(test, moment, 'locale'); - if (lifecycle && lifecycle.setup) { - lifecycle.setup(); - } - }, - teardown : function () { - moment.locale('en'); - teardownDeprecationHandler(test, moment, 'locale'); - if (lifecycle && lifecycle.teardown) { - lifecycle.teardown(); - } - } - }); - defineCommonLocaleTests(name, -1, -1); -} - -localeModule('dv'); - -test('parse', function (assert) { - var i, - tests = [ - 'ޖެނުއަރީ', - 'ފެބްރުއަރީ', - 'މާރިޗު', - 'އޭޕްރީލު', - 'މޭ', - 'ޖޫން', - 'ޖުލައި', - 'އޯގަސްޓު', - 'ސެޕްޓެމްބަރު', - 'އޮކްޓޯބަރު', - 'ނޮވެމްބަރު', - 'ޑިސެމްބަރު' - ]; - - function equalTest(input, mmm, i) { - assert.equal(moment(input, mmm).month(), i, input + ' should be month ' + (i + 1)); - } - - for (i = 0; i < 12; i++) { - equalTest(tests[i], 'MMM', i); - equalTest(tests[i], 'MMMM', i); - equalTest(tests[i].toLocaleLowerCase(), 'MMMM', i); - equalTest(tests[i].toLocaleUpperCase(), 'MMMM', i); - } -}); - -test('format', function (assert) { - var a = [ - ['dddd, MMMM Do YYYY, h:mm:ss a', 'އާދިއްތަ، ފެބްރުއަރީ 14 2010، 3:25:50 މފ'], - ['ddd, hA', 'އާދިއްތަ، 3މފ'], - ['M Mo MM MMMM MMM', '2 2 02 ފެބްރުއަރީ ފެބްރުއަރީ'], - ['YYYY YY', '2010 10'], - ['D Do DD', '14 14 14'], - ['d do dddd ddd dd', '0 0 އާދިއްތަ އާދިއްތަ އާދި'], - ['DDD DDDo DDDD', '45 45 045'], - ['w wo ww', '8 8 08'], - ['h hh', '3 03'], - ['H HH', '15 15'], - ['m mm', '25 25'], - ['s ss', '50 50'], - ['a A', 'މފ މފ'], - ['LTS', '15:25:50'], - ['L', '14/2/2010'], - ['LL', '14 ފެބްރުއަރީ 2010'], - ['LLL', '14 ފެބްރުއަރީ 2010 15:25'], - ['LLLL', 'އާދިއްތަ 14 ފެބްރުއަރީ 2010 15:25'], - ['l', '14/2/2010'], - ['ll', '14 ފެބްރުއަރީ 2010'], - ['lll', '14 ފެބްރުއަރީ 2010 15:25'], - ['llll', 'އާދިއްތަ 14 ފެބްރުއަރީ 2010 15:25'] - ], - b = moment(new Date(2010, 1, 14, 15, 25, 50, 125)), - i; - - for (i = 0; i < a.length; i++) { - assert.equal(b.format(a[i][0]), a[i][1], a[i][0] + ' ---> ' + a[i][1]); - } -}); - -test('format month', function (assert) { - var i, - expected = [ - 'ޖެނުއަރީ', - 'ފެބްރުއަރީ', - 'މާރިޗު', - 'އޭޕްރީލު', - 'މޭ', - 'ޖޫން', - 'ޖުލައި', - 'އޯގަސްޓު', - 'ސެޕްޓެމްބަރު', - 'އޮކްޓޯބަރު', - 'ނޮވެމްބަރު', - 'ޑިސެމްބަރު' - ]; - - for (i = 0; i < expected.length; i++) { - assert.equal(moment([2011, i, 1]).format('MMMM'), expected[i]); - } -}); - -test('format week', function (assert) { - var i, - expected = [ - 'އާދިއްތަ', - 'ހޯމަ', - 'އަންގާރަ', - 'ބުދަ', - 'ބުރާސްފަތި', - 'ހުކުރު', - 'ހޮނިހިރު' - ]; - - for (i = 0; i < expected.length; i++) { - assert.equal(moment([2011, 0, 2 + i]).format('dddd'), expected[i]); - } -}); - - -test('from', function (assert) { - var start = moment([2007, 1, 28]); - assert.equal(start.from(moment([2007, 1, 28]).add({s: 44}), true), 'ސިކުންތުކޮޅެއް', '44 seconds = a few seconds'); - assert.equal(start.from(moment([2007, 1, 28]).add({s: 45}), true), 'މިނިޓެއް', '45 seconds = a minute'); - assert.equal(start.from(moment([2007, 1, 28]).add({s: 89}), true), 'މިނިޓެއް', '89 seconds = a minute'); - assert.equal(start.from(moment([2007, 1, 28]).add({s: 90}), true), 'މިނިޓު 2', '90 seconds = 2 minutes'); - assert.equal(start.from(moment([2007, 1, 28]).add({m: 44}), true), 'މިނިޓު 44', '44 minutes = 44 minutes'); - assert.equal(start.from(moment([2007, 1, 28]).add({m: 45}), true), 'ގަޑިއިރެއް', '45 minutes = an hour'); - assert.equal(start.from(moment([2007, 1, 28]).add({m: 89}), true), 'ގަޑިއިރެއް', '89 minutes = an hour'); - assert.equal(start.from(moment([2007, 1, 28]).add({m: 90}), true), 'ގަޑިއިރު 2', '90 minutes = 2 hours'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 5}), true), 'ގަޑިއިރު 5', '5 hours = 5 hours'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 21}), true), 'ގަޑިއިރު 21', '21 hours = 21 hours'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 22}), true), 'ދުވަހެއް', '22 hours = a day'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 35}), true), 'ދުވަހެއް', '35 hours = a day'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 36}), true), 'ދުވަސް 2', '36 hours = 2 days'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 1}), true), 'ދުވަހެއް', '1 day = a day'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 5}), true), 'ދުވަސް 5', '5 days = 5 days'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 25}), true), 'ދުވަސް 25', '25 days = 25 days'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 26}), true), 'މަހެއް', '26 days = a month'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 30}), true), 'މަހެއް', '30 days = a month'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 43}), true), 'މަހެއް', '43 days = a month'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 46}), true), 'މަސް 2', '46 days = 2 months'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 74}), true), 'މަސް 2', '75 days = 2 months'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 76}), true), 'މަސް 3', '76 days = 3 months'); - assert.equal(start.from(moment([2007, 1, 28]).add({M: 1}), true), 'މަހެއް', '1 month = a month'); - assert.equal(start.from(moment([2007, 1, 28]).add({M: 5}), true), 'މަސް 5', '5 months = 5 months'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 345}), true), 'އަހަރެއް', '345 days = a year'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 548}), true), 'އަހަރު 2', '548 days = 2 years'); - assert.equal(start.from(moment([2007, 1, 28]).add({y: 1}), true), 'އަހަރެއް', '1 year = a year'); - assert.equal(start.from(moment([2007, 1, 28]).add({y: 5}), true), 'އަހަރު 5', '5 years = 5 years'); -}); - -test('suffix', function (assert) { - assert.equal(moment(30000).from(0), 'ތެރޭގައި ސިކުންތުކޮޅެއް', 'prefix'); - assert.equal(moment(0).from(30000), 'ކުރިން ސިކުންތުކޮޅެއް', 'suffix'); -}); - -test('fromNow', function (assert) { - assert.equal(moment().add({s: 30}).fromNow(), 'ތެރޭގައި ސިކުންތުކޮޅެއް', 'in a few seconds'); - assert.equal(moment().add({d: 5}).fromNow(), 'ތެރޭގައި ދުވަސް 5', 'in 5 days'); -}); - -test('calendar day', function (assert) { - var a = moment().hours(12).minutes(0).seconds(0); - - assert.equal(moment(a).calendar(), 'މިއަދު 12:00', 'today at the same time'); - assert.equal(moment(a).add({m: 25}).calendar(), 'މިއަދު 12:25', 'Now plus 25 min'); - assert.equal(moment(a).add({h: 1}).calendar(), 'މިއަދު 13:00', 'Now plus 1 hour'); - assert.equal(moment(a).add({d: 1}).calendar(), 'މާދަމާ 12:00', 'tomorrow at the same time'); - assert.equal(moment(a).subtract({h: 1}).calendar(), 'މިއަދު 11:00', 'Now minus 1 hour'); - assert.equal(moment(a).subtract({d: 1}).calendar(), 'އިއްޔެ 12:00', 'yesterday at the same time'); -}); - -test('calendar next week', function (assert) { - var i, m; - for (i = 2; i < 7; i++) { - m = moment().add({d: i}); - assert.equal(m.calendar(), m.format('dddd LT'), 'Today + ' + i + ' days current time'); - m.hours(0).minutes(0).seconds(0).milliseconds(0); - assert.equal(m.calendar(), m.format('dddd LT'), 'Today + ' + i + ' days beginning of day'); - m.hours(23).minutes(59).seconds(59).milliseconds(999); - assert.equal(m.calendar(), m.format('dddd LT'), 'Today + ' + i + ' days end of day'); - } -}); - -test('calendar last week', function (assert) { - var i, m; - for (i = 2; i < 7; i++) { - m = moment().subtract({d: i}); - assert.equal(m.calendar(), m.format('[ފާއިތުވި] dddd LT'), 'Today + ' + i + ' days current time'); - m.hours(0).minutes(0).seconds(0).milliseconds(0); - assert.equal(m.calendar(), m.format('[ފާއިތުވި] dddd LT'), 'Today + ' + i + ' days beginning of day'); - m.hours(23).minutes(59).seconds(59).milliseconds(999); - assert.equal(m.calendar(), m.format('[ފާއިތުވި] dddd LT'), 'Today + ' + i + ' days end of day'); - } -}); - -test('calendar all else', function (assert) { - var weeksAgo = moment().subtract({w: 1}), - weeksFromNow = moment().add({w: 1}); - - assert.equal(weeksAgo.calendar(), weeksAgo.format('L'), '1 week ago'); - assert.equal(weeksFromNow.calendar(), weeksFromNow.format('L'), 'in 1 week'); - - weeksAgo = moment().subtract({w: 2}); - weeksFromNow = moment().add({w: 2}); - - assert.equal(weeksAgo.calendar(), weeksAgo.format('L'), '2 weeks ago'); - assert.equal(weeksFromNow.calendar(), weeksFromNow.format('L'), 'in 2 weeks'); -}); - -test('weeks year starting sunday formatted', function (assert) { - assert.equal(moment([2012, 0, 1]).format('w ww wo'), '1 01 1', 'Jan 1 2012 should be week 1'); - assert.equal(moment([2012, 0, 2]).format('w ww wo'), '1 01 1', 'Jan 2 2012 should be week 1'); - assert.equal(moment([2012, 0, 8]).format('w ww wo'), '2 02 2', 'Jan 8 2012 should be week 2'); - assert.equal(moment([2012, 0, 9]).format('w ww wo'), '2 02 2', 'Jan 9 2012 should be week 2'); - assert.equal(moment([2012, 0, 15]).format('w ww wo'), '3 03 3', 'Jan 15 2012 should be week 3'); -}); - -}))); - - -;(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' - && typeof require === 'function' ? factory(require('../../moment')) : - typeof define === 'function' && define.amd ? define(['../../moment'], factory) : - factory(global.moment) -}(this, (function (moment) { 'use strict'; - -function each(array, callback) { - var i; - for (i = 0; i < array.length; i++) { - callback(array[i], i, array); - } -} - -function objectKeys(obj) { - if (Object.keys) { - return Object.keys(obj); - } else { - // IE8 - var res = [], i; - for (i in obj) { - if (obj.hasOwnProperty(i)) { - res.push(i); - } - } - return res; - } -} - -// Pick the first defined of two or three arguments. - -function defineCommonLocaleTests(locale, options) { - test('lenient day of month ordinal parsing', function (assert) { - var i, ordinalStr, testMoment; - for (i = 1; i <= 31; ++i) { - ordinalStr = moment([2014, 0, i]).format('YYYY MM Do'); - testMoment = moment(ordinalStr, 'YYYY MM Do'); - assert.equal(testMoment.year(), 2014, - 'lenient day of month ordinal parsing ' + i + ' year check'); - assert.equal(testMoment.month(), 0, - 'lenient day of month ordinal parsing ' + i + ' month check'); - assert.equal(testMoment.date(), i, - 'lenient day of month ordinal parsing ' + i + ' date check'); - } - }); - - test('lenient day of month ordinal parsing of number', function (assert) { - var i, testMoment; - for (i = 1; i <= 31; ++i) { - testMoment = moment('2014 01 ' + i, 'YYYY MM Do'); - assert.equal(testMoment.year(), 2014, - 'lenient day of month ordinal parsing of number ' + i + ' year check'); - assert.equal(testMoment.month(), 0, - 'lenient day of month ordinal parsing of number ' + i + ' month check'); - assert.equal(testMoment.date(), i, - 'lenient day of month ordinal parsing of number ' + i + ' date check'); - } - }); - - test('strict day of month ordinal parsing', function (assert) { - var i, ordinalStr, testMoment; - for (i = 1; i <= 31; ++i) { - ordinalStr = moment([2014, 0, i]).format('YYYY MM Do'); - testMoment = moment(ordinalStr, 'YYYY MM Do', true); - assert.ok(testMoment.isValid(), 'strict day of month ordinal parsing ' + i); - } - }); - - test('meridiem invariant', function (assert) { - var h, m, t1, t2; - for (h = 0; h < 24; ++h) { - for (m = 0; m < 60; m += 15) { - t1 = moment.utc([2000, 0, 1, h, m]); - t2 = moment.utc(t1.format('A h:mm'), 'A h:mm'); - assert.equal(t2.format('HH:mm'), t1.format('HH:mm'), - 'meridiem at ' + t1.format('HH:mm')); - } - } - }); - - test('date format correctness', function (assert) { - var data, tokens; - data = moment.localeData()._longDateFormat; - tokens = objectKeys(data); - each(tokens, function (srchToken) { - // Check each format string to make sure it does not contain any - // tokens that need to be expanded. - each(tokens, function (baseToken) { - // strip escaped sequences - var format = data[baseToken].replace(/(\[[^\]]*\])/g, ''); - assert.equal(false, !!~format.indexOf(srchToken), - 'contains ' + srchToken + ' in ' + baseToken); - }); - }); - }); - - test('month parsing correctness', function (assert) { - var i, m; - - if (locale === 'tr') { - // I can't fix it :( - expect(0); - return; - } - function tester(format) { - var r; - r = moment(m.format(format), format); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format); - r = moment(m.format(format).toLocaleUpperCase(), format); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' upper'); - r = moment(m.format(format).toLocaleLowerCase(), format); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' lower'); - - r = moment(m.format(format), format, true); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' strict'); - r = moment(m.format(format).toLocaleUpperCase(), format, true); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' upper strict'); - r = moment(m.format(format).toLocaleLowerCase(), format, true); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' lower strict'); - } - - for (i = 0; i < 12; ++i) { - m = moment([2015, i, 15, 18]); - tester('MMM'); - tester('MMM.'); - tester('MMMM'); - tester('MMMM.'); - } - }); - - test('weekday parsing correctness', function (assert) { - var i, m; - - if (locale === 'tr' || locale === 'az' || locale === 'ro') { - // tr, az: There is a lower-case letter (ı), that converted to - // upper then lower changes to i - // ro: there is the letter ț which behaves weird under IE8 - expect(0); - return; - } - function tester(format) { - var r, baseMsg = 'weekday ' + m.weekday() + ' fmt ' + format + ' ' + m.toISOString(); - r = moment(m.format(format), format); - assert.equal(r.weekday(), m.weekday(), baseMsg); - r = moment(m.format(format).toLocaleUpperCase(), format); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' upper'); - r = moment(m.format(format).toLocaleLowerCase(), format); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' lower'); - - r = moment(m.format(format), format, true); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' strict'); - r = moment(m.format(format).toLocaleUpperCase(), format, true); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' upper strict'); - r = moment(m.format(format).toLocaleLowerCase(), format, true); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' lower strict'); - } - - for (i = 0; i < 7; ++i) { - m = moment.utc([2015, 0, i + 1, 18]); - tester('dd'); - tester('ddd'); - tester('dddd'); - } - }); - - test('valid localeData', function (assert) { - assert.equal(moment().localeData().months().length, 12, 'months should return 12 months'); - assert.equal(moment().localeData().monthsShort().length, 12, 'monthsShort should return 12 months'); - assert.equal(moment().localeData().weekdays().length, 7, 'weekdays should return 7 days'); - assert.equal(moment().localeData().weekdaysShort().length, 7, 'weekdaysShort should return 7 days'); - assert.equal(moment().localeData().weekdaysMin().length, 7, 'monthsShort should return 7 days'); - }); -} - -function setupDeprecationHandler(test, moment$$1, scope) { - test._expectedDeprecations = null; - test._observedDeprecations = null; - test._oldSupress = moment$$1.suppressDeprecationWarnings; - moment$$1.suppressDeprecationWarnings = true; - test.expectedDeprecations = function () { - test._expectedDeprecations = arguments; - test._observedDeprecations = []; - }; - moment$$1.deprecationHandler = function (name, msg) { - var deprecationId = matchedDeprecation(name, msg, test._expectedDeprecations); - if (deprecationId === -1) { - throw new Error('Unexpected deprecation thrown name=' + - name + ' msg=' + msg); - } - test._observedDeprecations[deprecationId] = 1; - }; -} - -function teardownDeprecationHandler(test, moment$$1, scope) { - moment$$1.suppressDeprecationWarnings = test._oldSupress; - - if (test._expectedDeprecations != null) { - var missedDeprecations = []; - each(test._expectedDeprecations, function (deprecationPattern, id) { - if (test._observedDeprecations[id] !== 1) { - missedDeprecations.push(deprecationPattern); - } - }); - if (missedDeprecations.length !== 0) { - throw new Error('Expected deprecation warnings did not happen: ' + - missedDeprecations.join(' ')); - } - } -} - -function matchedDeprecation(name, msg, deprecations) { - if (deprecations == null) { - return -1; - } - for (var i = 0; i < deprecations.length; ++i) { - if (name != null && name === deprecations[i]) { - return i; - } - if (msg != null && msg.substring(0, deprecations[i].length) === deprecations[i]) { - return i; - } - } - return -1; -} - -/*global QUnit:false*/ - -var test = QUnit.test; - -var expect = QUnit.expect; - - - -function localeModule (name, lifecycle) { - QUnit.module('locale:' + name, { - setup : function () { - moment.locale(name); - moment.createFromInputFallback = function (config) { - throw new Error('input not handled by moment: ' + config._i); - }; - setupDeprecationHandler(test, moment, 'locale'); - if (lifecycle && lifecycle.setup) { - lifecycle.setup(); - } - }, - teardown : function () { - moment.locale('en'); - teardownDeprecationHandler(test, moment, 'locale'); - if (lifecycle && lifecycle.teardown) { - lifecycle.teardown(); - } - } - }); - defineCommonLocaleTests(name, -1, -1); -} - -localeModule('el'); - -test('parse', function (assert) { - var i, - tests = 'Ιανουάριος Ιαν_Φεβρουάριος Φεβ_Μάρτιος Μαρ_Απρίλιος Απρ_Μάιος Μαϊ_Ιούνιος Ιουν_Ιούλιος Ιουλ_Αύγουστος Αυγ_Σεπτέμβριος Σεπ_Οκτώβριος Οκτ_Νοέμβριος Νοε_Δεκέμβριος Δεκ'.split('_'); - - function equalTest(input, mmm, i) { - assert.equal(moment(input, mmm).month(), i, input + ' should be month ' + (i + 1)); - } - - for (i = 0; i < 12; i++) { - tests[i] = tests[i].split(' '); - equalTest(tests[i][0], 'MMM', i); - equalTest(tests[i][1], 'MMM', i); - equalTest(tests[i][0], 'MMMM', i); - equalTest(tests[i][1], 'MMMM', i); - equalTest(tests[i][0].toLocaleLowerCase(), 'MMMM', i); - equalTest(tests[i][1].toLocaleLowerCase(), 'MMMM', i); - equalTest(tests[i][0].toLocaleUpperCase(), 'MMMM', i); - equalTest(tests[i][1].toLocaleUpperCase(), 'MMMM', i); - } -}); - -test('parse meridiem', function (assert) { - var i, - b = moment(), - meridiemTests = [ - // h a patterns, expected hours, isValid - ['10 πμ', 10, true], - ['10 μμ', 22, true], - ['10 π.μ.', 10, true], - ['10 μ.μ.', 22, true], - ['10 π', 10, true], - ['10 μ', 22, true], - ['10 ΠΜ', 10, true], - ['10 ΜΜ', 22, true], - ['10 Π.Μ.', 10, true], - ['10 Μ.Μ.', 22, true], - ['10 Π', 10, true], - ['10 Μ', 22, true], - ['10 am', 10, false], - ['10 pm', 10, false] - ], - parsed; - - // test that a formatted moment including meridiem string can be parsed back to the same moment - assert.ok(b.isSame(moment(b.format('h:mm:ss a'), 'h:mm:ss a', 'el', true), 'seconds'), b.format('h:mm:ss a') + ' should be equal to ' + moment(b.format('h:mm:ss a'), 'h:mm:ss a', 'el', true).format('h:mm:ss a')); - - // test that a formatted moment having a meridiem string can be parsed with strict flag - assert.ok(moment(b.format('h:mm:ss a'), 'h:mm:ss a', 'el', true).isValid(), b.format('h:mm:ss a') + ' should be parsed as valid'); - - for (i = 0; i < meridiemTests.length; i++) { - parsed = moment(meridiemTests[i][0], 'h a', 'el', true); - assert.equal(parsed.isValid(), meridiemTests[i][2], 'validity for ' + meridiemTests[i][0]); - if (parsed.isValid()) { - assert.equal(parsed.hours(), meridiemTests[i][1], 'hours for ' + meridiemTests[i][0]); - } - } -}); - -test('format', function (assert) { - var a = [ - ['dddd, MMMM Do YYYY, h:mm:ss a', 'Κυριακή, Φεβρουάριος 14η 2010, 3:25:50 μμ'], - ['dddd, D MMMM YYYY, h:mm:ss a', 'Κυριακή, 14 Φεβρουαρίου 2010, 3:25:50 μμ'], - ['ddd, hA', 'Κυρ, 3ΜΜ'], - ['dddd, MMMM YYYY', 'Κυριακή, Φεβρουάριος 2010'], - ['M Mo MM MMMM MMM', '2 2η 02 Φεβρουάριος Φεβ'], - ['YYYY YY', '2010 10'], - ['D Do DD', '14 14η 14'], - ['d do dddd ddd dd', '0 0η Κυριακή Κυρ Κυ'], - ['DDD DDDo DDDD', '45 45η 045'], - ['w wo ww', '6 6η 06'], - ['h hh', '3 03'], - ['H HH', '15 15'], - ['m mm', '25 25'], - ['s ss', '50 50'], - ['a A', 'μμ ΜΜ'], - ['[the] DDDo [day of the year]', 'the 45η day of the year'], - ['LTS', '3:25:50 ΜΜ'], - ['L', '14/02/2010'], - ['LL', '14 Φεβρουαρίου 2010'], - ['LLL', '14 Φεβρουαρίου 2010 3:25 ΜΜ'], - ['LLLL', 'Κυριακή, 14 Φεβρουαρίου 2010 3:25 ΜΜ'], - ['l', '14/2/2010'], - ['ll', '14 Φεβ 2010'], - ['lll', '14 Φεβ 2010 3:25 ΜΜ'], - ['llll', 'Κυρ, 14 Φεβ 2010 3:25 ΜΜ'] - ], - b = moment(new Date(2010, 1, 14, 15, 25, 50, 125)), - i; - - for (i = 0; i < a.length; i++) { - assert.equal(b.format(a[i][0]), a[i][1], a[i][0] + ' ---> ' + a[i][1]); - } -}); - -test('format ordinal', function (assert) { - assert.equal(moment([2011, 0, 1]).format('DDDo'), '1η', '1η'); - assert.equal(moment([2011, 0, 2]).format('DDDo'), '2η', '2η'); - assert.equal(moment([2011, 0, 3]).format('DDDo'), '3η', '3η'); - assert.equal(moment([2011, 0, 4]).format('DDDo'), '4η', '4η'); - assert.equal(moment([2011, 0, 5]).format('DDDo'), '5η', '5η'); - assert.equal(moment([2011, 0, 6]).format('DDDo'), '6η', '6η'); - assert.equal(moment([2011, 0, 7]).format('DDDo'), '7η', '7η'); - assert.equal(moment([2011, 0, 8]).format('DDDo'), '8η', '8η'); - assert.equal(moment([2011, 0, 9]).format('DDDo'), '9η', '9η'); - assert.equal(moment([2011, 0, 10]).format('DDDo'), '10η', '10η'); - - assert.equal(moment([2011, 0, 11]).format('DDDo'), '11η', '11η'); - assert.equal(moment([2011, 0, 12]).format('DDDo'), '12η', '12η'); - assert.equal(moment([2011, 0, 13]).format('DDDo'), '13η', '13η'); - assert.equal(moment([2011, 0, 14]).format('DDDo'), '14η', '14η'); - assert.equal(moment([2011, 0, 15]).format('DDDo'), '15η', '15η'); - assert.equal(moment([2011, 0, 16]).format('DDDo'), '16η', '16η'); - assert.equal(moment([2011, 0, 17]).format('DDDo'), '17η', '17η'); - assert.equal(moment([2011, 0, 18]).format('DDDo'), '18η', '18η'); - assert.equal(moment([2011, 0, 19]).format('DDDo'), '19η', '19η'); - assert.equal(moment([2011, 0, 20]).format('DDDo'), '20η', '20η'); - - assert.equal(moment([2011, 0, 21]).format('DDDo'), '21η', '21η'); - assert.equal(moment([2011, 0, 22]).format('DDDo'), '22η', '22η'); - assert.equal(moment([2011, 0, 23]).format('DDDo'), '23η', '23η'); - assert.equal(moment([2011, 0, 24]).format('DDDo'), '24η', '24η'); - assert.equal(moment([2011, 0, 25]).format('DDDo'), '25η', '25η'); - assert.equal(moment([2011, 0, 26]).format('DDDo'), '26η', '26η'); - assert.equal(moment([2011, 0, 27]).format('DDDo'), '27η', '27η'); - assert.equal(moment([2011, 0, 28]).format('DDDo'), '28η', '28η'); - assert.equal(moment([2011, 0, 29]).format('DDDo'), '29η', '29η'); - assert.equal(moment([2011, 0, 30]).format('DDDo'), '30η', '30η'); - - assert.equal(moment([2011, 0, 31]).format('DDDo'), '31η', '31η'); -}); - -test('format month', function (assert) { - var i, - expected = 'Ιανουάριος Ιαν_Φεβρουάριος Φεβ_Μάρτιος Μαρ_Απρίλιος Απρ_Μάιος Μαϊ_Ιούνιος Ιουν_Ιούλιος Ιουλ_Αύγουστος Αυγ_Σεπτέμβριος Σεπ_Οκτώβριος Οκτ_Νοέμβριος Νοε_Δεκέμβριος Δεκ'.split('_'); - - for (i = 0; i < expected.length; i++) { - assert.equal(moment([2011, i, 1]).format('MMMM MMM'), expected[i], expected[i]); - } -}); - -test('format week', function (assert) { - var i, - expected = 'Κυριακή Κυρ Κυ_Δευτέρα Δευ Δε_Τρίτη Τρι Τρ_Τετάρτη Τετ Τε_Πέμπτη Πεμ Πε_Παρασκευή Παρ Πα_Σάββατο Σαβ Σα'.split('_'); - - for (i = 0; i < expected.length; i++) { - assert.equal(moment([2011, 0, 2 + i]).format('dddd ddd dd'), expected[i], expected[i]); - } -}); - -test('from', function (assert) { - var start = moment([2007, 1, 28]); - - assert.equal(start.from(moment([2007, 1, 28]).add({s: 44}), true), 'λίγα δευτερόλεπτα', '44 seconds = a few seconds'); - assert.equal(start.from(moment([2007, 1, 28]).add({s: 45}), true), 'ένα λεπτό', '45 seconds = a minute'); - assert.equal(start.from(moment([2007, 1, 28]).add({s: 89}), true), 'ένα λεπτό', '89 seconds = a minute'); - assert.equal(start.from(moment([2007, 1, 28]).add({s: 90}), true), '2 λεπτά', '90 seconds = 2 minutes'); - assert.equal(start.from(moment([2007, 1, 28]).add({m: 44}), true), '44 λεπτά', '44 minutes = 44 minutes'); - assert.equal(start.from(moment([2007, 1, 28]).add({m: 45}), true), 'μία ώρα', '45 minutes = an hour'); - assert.equal(start.from(moment([2007, 1, 28]).add({m: 89}), true), 'μία ώρα', '89 minutes = an hour'); - assert.equal(start.from(moment([2007, 1, 28]).add({m: 90}), true), '2 ώρες', '90 minutes = 2 hours'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 5}), true), '5 ώρες', '5 hours = 5 hours'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 21}), true), '21 ώρες', '21 hours = 21 hours'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 22}), true), 'μία μέρα', '22 hours = a day'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 35}), true), 'μία μέρα', '35 hours = a day'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 36}), true), '2 μέρες', '36 hours = 2 days'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 1}), true), 'μία μέρα', '1 day = a day'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 5}), true), '5 μέρες', '5 days = 5 days'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 25}), true), '25 μέρες', '25 days = 25 days'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 26}), true), 'ένας μήνας', '26 days = a month'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 30}), true), 'ένας μήνας', '30 days = a month'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 43}), true), 'ένας μήνας', '43 days = a month'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 46}), true), '2 μήνες', '46 days = 2 months'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 74}), true), '2 μήνες', '75 days = 2 months'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 76}), true), '3 μήνες', '76 days = 3 months'); - assert.equal(start.from(moment([2007, 1, 28]).add({M: 1}), true), 'ένας μήνας', '1 month = a month'); - assert.equal(start.from(moment([2007, 1, 28]).add({M: 5}), true), '5 μήνες', '5 months = 5 months'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 345}), true), 'ένας χρόνος', '345 days = a year'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 548}), true), '2 χρόνια', '548 days = 2 years'); - assert.equal(start.from(moment([2007, 1, 28]).add({y: 1}), true), 'ένας χρόνος', '1 year = a year'); - assert.equal(start.from(moment([2007, 1, 28]).add({y: 5}), true), '5 χρόνια', '5 years = 5 years'); -}); - -test('suffix', function (assert) { - assert.equal(moment(30000).from(0), 'σε λίγα δευτερόλεπτα', 'prefix'); - assert.equal(moment(0).from(30000), 'λίγα δευτερόλεπτα πριν', 'suffix'); -}); - -test('now from now', function (assert) { - assert.equal(moment().fromNow(), 'λίγα δευτερόλεπτα πριν', 'now from now should display as in the past'); -}); - -test('fromNow', function (assert) { - assert.equal(moment().add({s: 30}).fromNow(), 'σε λίγα δευτερόλεπτα', 'in a few seconds'); - assert.equal(moment().add({d: 5}).fromNow(), 'σε 5 μέρες', 'in 5 days'); -}); - -test('calendar day', function (assert) { - var a = moment().hours(12).minutes(0).seconds(0); - - assert.equal(moment(a).calendar(), 'Σήμερα στις 12:00 ΜΜ', 'today at the same time'); - assert.equal(moment(a).add({m: 25}).calendar(), 'Σήμερα στις 12:25 ΜΜ', 'Now plus 25 min'); - assert.equal(moment(a).add({h: 1}).calendar(), 'Σήμερα στη 1:00 ΜΜ', 'Now plus 1 hour'); - assert.equal(moment(a).add({d: 1}).calendar(), 'Αύριο στις 12:00 ΜΜ', 'tomorrow at the same time'); - assert.equal(moment(a).subtract({h: 1}).calendar(), 'Σήμερα στις 11:00 ΠΜ', 'Now minus 1 hour'); - assert.equal(moment(a).subtract({d: 1}).calendar(), 'Χθες στις 12:00 ΜΜ', 'yesterday at the same time'); -}); - -test('calendar next week', function (assert) { - var i, m; - for (i = 2; i < 7; i++) { - m = moment().add({d: i}); - assert.equal(m.calendar(), m.format('dddd [' + (m.hours() % 12 === 1 ? 'στη' : 'στις') + '] LT'), 'Today + ' + i + ' days current time'); - m.hours(0).minutes(0).seconds(0).milliseconds(0); - assert.equal(m.calendar(), m.format('dddd [στις] LT'), 'Today + ' + i + ' days beginning of day'); - m.hours(23).minutes(59).seconds(59).milliseconds(999); - assert.equal(m.calendar(), m.format('dddd [στις] LT'), 'Today + ' + i + ' days end of day'); - } -}); - -test('calendar last week', function (assert) { - var i, m, dayString; - for (i = 2; i < 7; i++) { - m = moment().subtract({d: i}); - dayString = m.day() === 6 ? '[το προηγούμενο Σάββατο]' : '[την προηγούμενη] dddd'; - assert.equal(m.calendar(), m.format(dayString + ' [' + (m.hours() % 12 === 1 ? 'στη' : 'στις') + '] LT'), 'Today - ' + i + ' days current time'); - m.hours(1).minutes(30).seconds(0).milliseconds(0); - assert.equal(m.calendar(), m.format(dayString + ' [στη] LT'), 'Today - ' + i + ' days one o clock'); - m.hours(0).minutes(0).seconds(0).milliseconds(0); - assert.equal(m.calendar(), m.format(dayString + ' [στις] LT'), 'Today - ' + i + ' days beginning of day'); - m.hours(23).minutes(59).seconds(59).milliseconds(999); - assert.equal(m.calendar(), m.format(dayString + ' [στις] LT'), 'Today - ' + i + ' days end of day'); - } -}); - -test('calendar all else', function (assert) { - var weeksAgo = moment().subtract({w: 1}), - weeksFromNow = moment().add({w: 1}); - - assert.equal(weeksAgo.calendar(), weeksAgo.format('L'), '1 week ago'); - assert.equal(weeksFromNow.calendar(), weeksFromNow.format('L'), 'in 1 week'); - - weeksAgo = moment().subtract({w: 2}); - weeksFromNow = moment().add({w: 2}); - - assert.equal(weeksAgo.calendar(), weeksAgo.format('L'), '2 weeks ago'); - assert.equal(weeksFromNow.calendar(), weeksFromNow.format('L'), 'in 2 weeks'); -}); - -test('weeks year starting sunday format', function (assert) { - assert.equal(moment([2012, 0, 1]).format('w ww wo'), '52 52 52η', 'Jan 1 2012 should be week 52'); - assert.equal(moment([2012, 0, 7]).format('w ww wo'), '1 01 1η', 'Jan 7 2012 should be week 1'); - assert.equal(moment([2012, 0, 8]).format('w ww wo'), '1 01 1η', 'Jan 8 2012 should be week 1'); - assert.equal(moment([2012, 0, 14]).format('w ww wo'), '2 02 2η', 'Jan 14 2012 should be week 2'); - assert.equal(moment([2012, 0, 15]).format('w ww wo'), '2 02 2η', 'Jan 15 2012 should be week 2'); -}); - -}))); - - -;(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' - && typeof require === 'function' ? factory(require('../../moment')) : - typeof define === 'function' && define.amd ? define(['../../moment'], factory) : - factory(global.moment) -}(this, (function (moment) { 'use strict'; - -function each(array, callback) { - var i; - for (i = 0; i < array.length; i++) { - callback(array[i], i, array); - } -} - -function objectKeys(obj) { - if (Object.keys) { - return Object.keys(obj); - } else { - // IE8 - var res = [], i; - for (i in obj) { - if (obj.hasOwnProperty(i)) { - res.push(i); - } - } - return res; - } -} - -// Pick the first defined of two or three arguments. - -function defineCommonLocaleTests(locale, options) { - test('lenient day of month ordinal parsing', function (assert) { - var i, ordinalStr, testMoment; - for (i = 1; i <= 31; ++i) { - ordinalStr = moment([2014, 0, i]).format('YYYY MM Do'); - testMoment = moment(ordinalStr, 'YYYY MM Do'); - assert.equal(testMoment.year(), 2014, - 'lenient day of month ordinal parsing ' + i + ' year check'); - assert.equal(testMoment.month(), 0, - 'lenient day of month ordinal parsing ' + i + ' month check'); - assert.equal(testMoment.date(), i, - 'lenient day of month ordinal parsing ' + i + ' date check'); - } - }); - - test('lenient day of month ordinal parsing of number', function (assert) { - var i, testMoment; - for (i = 1; i <= 31; ++i) { - testMoment = moment('2014 01 ' + i, 'YYYY MM Do'); - assert.equal(testMoment.year(), 2014, - 'lenient day of month ordinal parsing of number ' + i + ' year check'); - assert.equal(testMoment.month(), 0, - 'lenient day of month ordinal parsing of number ' + i + ' month check'); - assert.equal(testMoment.date(), i, - 'lenient day of month ordinal parsing of number ' + i + ' date check'); - } - }); - - test('strict day of month ordinal parsing', function (assert) { - var i, ordinalStr, testMoment; - for (i = 1; i <= 31; ++i) { - ordinalStr = moment([2014, 0, i]).format('YYYY MM Do'); - testMoment = moment(ordinalStr, 'YYYY MM Do', true); - assert.ok(testMoment.isValid(), 'strict day of month ordinal parsing ' + i); - } - }); - - test('meridiem invariant', function (assert) { - var h, m, t1, t2; - for (h = 0; h < 24; ++h) { - for (m = 0; m < 60; m += 15) { - t1 = moment.utc([2000, 0, 1, h, m]); - t2 = moment.utc(t1.format('A h:mm'), 'A h:mm'); - assert.equal(t2.format('HH:mm'), t1.format('HH:mm'), - 'meridiem at ' + t1.format('HH:mm')); - } - } - }); - - test('date format correctness', function (assert) { - var data, tokens; - data = moment.localeData()._longDateFormat; - tokens = objectKeys(data); - each(tokens, function (srchToken) { - // Check each format string to make sure it does not contain any - // tokens that need to be expanded. - each(tokens, function (baseToken) { - // strip escaped sequences - var format = data[baseToken].replace(/(\[[^\]]*\])/g, ''); - assert.equal(false, !!~format.indexOf(srchToken), - 'contains ' + srchToken + ' in ' + baseToken); - }); - }); - }); - - test('month parsing correctness', function (assert) { - var i, m; - - if (locale === 'tr') { - // I can't fix it :( - expect(0); - return; - } - function tester(format) { - var r; - r = moment(m.format(format), format); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format); - r = moment(m.format(format).toLocaleUpperCase(), format); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' upper'); - r = moment(m.format(format).toLocaleLowerCase(), format); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' lower'); - - r = moment(m.format(format), format, true); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' strict'); - r = moment(m.format(format).toLocaleUpperCase(), format, true); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' upper strict'); - r = moment(m.format(format).toLocaleLowerCase(), format, true); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' lower strict'); - } - - for (i = 0; i < 12; ++i) { - m = moment([2015, i, 15, 18]); - tester('MMM'); - tester('MMM.'); - tester('MMMM'); - tester('MMMM.'); - } - }); - - test('weekday parsing correctness', function (assert) { - var i, m; - - if (locale === 'tr' || locale === 'az' || locale === 'ro') { - // tr, az: There is a lower-case letter (ı), that converted to - // upper then lower changes to i - // ro: there is the letter ț which behaves weird under IE8 - expect(0); - return; - } - function tester(format) { - var r, baseMsg = 'weekday ' + m.weekday() + ' fmt ' + format + ' ' + m.toISOString(); - r = moment(m.format(format), format); - assert.equal(r.weekday(), m.weekday(), baseMsg); - r = moment(m.format(format).toLocaleUpperCase(), format); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' upper'); - r = moment(m.format(format).toLocaleLowerCase(), format); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' lower'); - - r = moment(m.format(format), format, true); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' strict'); - r = moment(m.format(format).toLocaleUpperCase(), format, true); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' upper strict'); - r = moment(m.format(format).toLocaleLowerCase(), format, true); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' lower strict'); - } - - for (i = 0; i < 7; ++i) { - m = moment.utc([2015, 0, i + 1, 18]); - tester('dd'); - tester('ddd'); - tester('dddd'); - } - }); - - test('valid localeData', function (assert) { - assert.equal(moment().localeData().months().length, 12, 'months should return 12 months'); - assert.equal(moment().localeData().monthsShort().length, 12, 'monthsShort should return 12 months'); - assert.equal(moment().localeData().weekdays().length, 7, 'weekdays should return 7 days'); - assert.equal(moment().localeData().weekdaysShort().length, 7, 'weekdaysShort should return 7 days'); - assert.equal(moment().localeData().weekdaysMin().length, 7, 'monthsShort should return 7 days'); - }); -} - -function setupDeprecationHandler(test, moment$$1, scope) { - test._expectedDeprecations = null; - test._observedDeprecations = null; - test._oldSupress = moment$$1.suppressDeprecationWarnings; - moment$$1.suppressDeprecationWarnings = true; - test.expectedDeprecations = function () { - test._expectedDeprecations = arguments; - test._observedDeprecations = []; - }; - moment$$1.deprecationHandler = function (name, msg) { - var deprecationId = matchedDeprecation(name, msg, test._expectedDeprecations); - if (deprecationId === -1) { - throw new Error('Unexpected deprecation thrown name=' + - name + ' msg=' + msg); - } - test._observedDeprecations[deprecationId] = 1; - }; -} - -function teardownDeprecationHandler(test, moment$$1, scope) { - moment$$1.suppressDeprecationWarnings = test._oldSupress; - - if (test._expectedDeprecations != null) { - var missedDeprecations = []; - each(test._expectedDeprecations, function (deprecationPattern, id) { - if (test._observedDeprecations[id] !== 1) { - missedDeprecations.push(deprecationPattern); - } - }); - if (missedDeprecations.length !== 0) { - throw new Error('Expected deprecation warnings did not happen: ' + - missedDeprecations.join(' ')); - } - } -} - -function matchedDeprecation(name, msg, deprecations) { - if (deprecations == null) { - return -1; - } - for (var i = 0; i < deprecations.length; ++i) { - if (name != null && name === deprecations[i]) { - return i; - } - if (msg != null && msg.substring(0, deprecations[i].length) === deprecations[i]) { - return i; - } - } - return -1; -} - -/*global QUnit:false*/ - -var test = QUnit.test; - -var expect = QUnit.expect; - - - -function localeModule (name, lifecycle) { - QUnit.module('locale:' + name, { - setup : function () { - moment.locale(name); - moment.createFromInputFallback = function (config) { - throw new Error('input not handled by moment: ' + config._i); - }; - setupDeprecationHandler(test, moment, 'locale'); - if (lifecycle && lifecycle.setup) { - lifecycle.setup(); - } - }, - teardown : function () { - moment.locale('en'); - teardownDeprecationHandler(test, moment, 'locale'); - if (lifecycle && lifecycle.teardown) { - lifecycle.teardown(); - } - } - }); - defineCommonLocaleTests(name, -1, -1); -} - -localeModule('en-au'); - -test('parse', function (assert) { - var tests = 'January Jan_February Feb_March Mar_April Apr_May May_June Jun_July Jul_August Aug_September Sep_October Oct_November Nov_December Dec'.split('_'), i; - function equalTest(input, mmm, i) { - assert.equal(moment(input, mmm).month(), i, input + ' should be month ' + (i + 1)); - } - for (i = 0; i < 12; i++) { - tests[i] = tests[i].split(' '); - equalTest(tests[i][0], 'MMM', i); - equalTest(tests[i][1], 'MMM', i); - equalTest(tests[i][0], 'MMMM', i); - equalTest(tests[i][1], 'MMMM', i); - equalTest(tests[i][0].toLocaleLowerCase(), 'MMMM', i); - equalTest(tests[i][1].toLocaleLowerCase(), 'MMMM', i); - equalTest(tests[i][0].toLocaleUpperCase(), 'MMMM', i); - equalTest(tests[i][1].toLocaleUpperCase(), 'MMMM', i); - } -}); - -test('format', function (assert) { - var a = [ - ['dddd, MMMM Do YYYY, h:mm:ss a', 'Sunday, February 14th 2010, 3:25:50 pm'], - ['ddd, hA', 'Sun, 3PM'], - ['M Mo MM MMMM MMM', '2 2nd 02 February Feb'], - ['YYYY YY', '2010 10'], - ['D Do DD', '14 14th 14'], - ['d do dddd ddd dd', '0 0th Sunday Sun Su'], - ['DDD DDDo DDDD', '45 45th 045'], - ['w wo ww', '6 6th 06'], - ['h hh', '3 03'], - ['H HH', '15 15'], - ['m mm', '25 25'], - ['s ss', '50 50'], - ['a A', 'pm PM'], - ['[the] DDDo [day of the year]', 'the 45th day of the year'], - ['LTS', '3:25:50 PM'], - ['L', '14/02/2010'], - ['LL', '14 February 2010'], - ['LLL', '14 February 2010 3:25 PM'], - ['LLLL', 'Sunday, 14 February 2010 3:25 PM'], - ['l', '14/2/2010'], - ['ll', '14 Feb 2010'], - ['lll', '14 Feb 2010 3:25 PM'], - ['llll', 'Sun, 14 Feb 2010 3:25 PM'] - ], - b = moment(new Date(2010, 1, 14, 15, 25, 50, 125)), - i; - for (i = 0; i < a.length; i++) { - assert.equal(b.format(a[i][0]), a[i][1], a[i][0] + ' ---> ' + a[i][1]); - } -}); - -test('format ordinal', function (assert) { - assert.equal(moment([2011, 0, 1]).format('DDDo'), '1st', '1st'); - assert.equal(moment([2011, 0, 2]).format('DDDo'), '2nd', '2nd'); - assert.equal(moment([2011, 0, 3]).format('DDDo'), '3rd', '3rd'); - assert.equal(moment([2011, 0, 4]).format('DDDo'), '4th', '4th'); - assert.equal(moment([2011, 0, 5]).format('DDDo'), '5th', '5th'); - assert.equal(moment([2011, 0, 6]).format('DDDo'), '6th', '6th'); - assert.equal(moment([2011, 0, 7]).format('DDDo'), '7th', '7th'); - assert.equal(moment([2011, 0, 8]).format('DDDo'), '8th', '8th'); - assert.equal(moment([2011, 0, 9]).format('DDDo'), '9th', '9th'); - assert.equal(moment([2011, 0, 10]).format('DDDo'), '10th', '10th'); - - assert.equal(moment([2011, 0, 11]).format('DDDo'), '11th', '11th'); - assert.equal(moment([2011, 0, 12]).format('DDDo'), '12th', '12th'); - assert.equal(moment([2011, 0, 13]).format('DDDo'), '13th', '13th'); - assert.equal(moment([2011, 0, 14]).format('DDDo'), '14th', '14th'); - assert.equal(moment([2011, 0, 15]).format('DDDo'), '15th', '15th'); - assert.equal(moment([2011, 0, 16]).format('DDDo'), '16th', '16th'); - assert.equal(moment([2011, 0, 17]).format('DDDo'), '17th', '17th'); - assert.equal(moment([2011, 0, 18]).format('DDDo'), '18th', '18th'); - assert.equal(moment([2011, 0, 19]).format('DDDo'), '19th', '19th'); - assert.equal(moment([2011, 0, 20]).format('DDDo'), '20th', '20th'); - - assert.equal(moment([2011, 0, 21]).format('DDDo'), '21st', '21st'); - assert.equal(moment([2011, 0, 22]).format('DDDo'), '22nd', '22nd'); - assert.equal(moment([2011, 0, 23]).format('DDDo'), '23rd', '23rd'); - assert.equal(moment([2011, 0, 24]).format('DDDo'), '24th', '24th'); - assert.equal(moment([2011, 0, 25]).format('DDDo'), '25th', '25th'); - assert.equal(moment([2011, 0, 26]).format('DDDo'), '26th', '26th'); - assert.equal(moment([2011, 0, 27]).format('DDDo'), '27th', '27th'); - assert.equal(moment([2011, 0, 28]).format('DDDo'), '28th', '28th'); - assert.equal(moment([2011, 0, 29]).format('DDDo'), '29th', '29th'); - assert.equal(moment([2011, 0, 30]).format('DDDo'), '30th', '30th'); - - assert.equal(moment([2011, 0, 31]).format('DDDo'), '31st', '31st'); -}); - -test('format month', function (assert) { - var expected = 'January Jan_February Feb_March Mar_April Apr_May May_June Jun_July Jul_August Aug_September Sep_October Oct_November Nov_December Dec'.split('_'), i; - for (i = 0; i < expected.length; i++) { - assert.equal(moment([2011, i, 1]).format('MMMM MMM'), expected[i], expected[i]); - } -}); - -test('format week', function (assert) { - var expected = 'Sunday Sun Su_Monday Mon Mo_Tuesday Tue Tu_Wednesday Wed We_Thursday Thu Th_Friday Fri Fr_Saturday Sat Sa'.split('_'), i; - for (i = 0; i < expected.length; i++) { - assert.equal(moment([2011, 0, 2 + i]).format('dddd ddd dd'), expected[i], expected[i]); - } -}); - -test('from', function (assert) { - var start = moment([2007, 1, 28]); - assert.equal(start.from(moment([2007, 1, 28]).add({s: 44}), true), 'a few seconds', '44 seconds = a few seconds'); - assert.equal(start.from(moment([2007, 1, 28]).add({s: 45}), true), 'a minute', '45 seconds = a minute'); - assert.equal(start.from(moment([2007, 1, 28]).add({s: 89}), true), 'a minute', '89 seconds = a minute'); - assert.equal(start.from(moment([2007, 1, 28]).add({s: 90}), true), '2 minutes', '90 seconds = 2 minutes'); - assert.equal(start.from(moment([2007, 1, 28]).add({m: 44}), true), '44 minutes', '44 minutes = 44 minutes'); - assert.equal(start.from(moment([2007, 1, 28]).add({m: 45}), true), 'an hour', '45 minutes = an hour'); - assert.equal(start.from(moment([2007, 1, 28]).add({m: 89}), true), 'an hour', '89 minutes = an hour'); - assert.equal(start.from(moment([2007, 1, 28]).add({m: 90}), true), '2 hours', '90 minutes = 2 hours'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 5}), true), '5 hours', '5 hours = 5 hours'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 21}), true), '21 hours', '21 hours = 21 hours'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 22}), true), 'a day', '22 hours = a day'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 35}), true), 'a day', '35 hours = a day'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 36}), true), '2 days', '36 hours = 2 days'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 1}), true), 'a day', '1 day = a day'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 5}), true), '5 days', '5 days = 5 days'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 25}), true), '25 days', '25 days = 25 days'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 26}), true), 'a month', '26 days = a month'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 30}), true), 'a month', '30 days = a month'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 43}), true), 'a month', '43 days = a month'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 46}), true), '2 months', '46 days = 2 months'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 74}), true), '2 months', '75 days = 2 months'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 76}), true), '3 months', '76 days = 3 months'); - assert.equal(start.from(moment([2007, 1, 28]).add({M: 1}), true), 'a month', '1 month = a month'); - assert.equal(start.from(moment([2007, 1, 28]).add({M: 5}), true), '5 months', '5 months = 5 months'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 345}), true), 'a year', '345 days = a year'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 548}), true), '2 years', '548 days = 2 years'); - assert.equal(start.from(moment([2007, 1, 28]).add({y: 1}), true), 'a year', '1 year = a year'); - assert.equal(start.from(moment([2007, 1, 28]).add({y: 5}), true), '5 years', '5 years = 5 years'); -}); - -test('suffix', function (assert) { - assert.equal(moment(30000).from(0), 'in a few seconds', 'prefix'); - assert.equal(moment(0).from(30000), 'a few seconds ago', 'suffix'); -}); - -test('now from now', function (assert) { - assert.equal(moment().fromNow(), 'a few seconds ago', 'now from now should display as in the past'); -}); - -test('fromNow', function (assert) { - assert.equal(moment().add({s: 30}).fromNow(), 'in a few seconds', 'in a few seconds'); - assert.equal(moment().add({d: 5}).fromNow(), 'in 5 days', 'in 5 days'); -}); - -test('calendar day', function (assert) { - var a = moment().hours(12).minutes(0).seconds(0); - - assert.equal(moment(a).calendar(), 'Today at 12:00 PM', 'today at the same time'); - assert.equal(moment(a).add({m: 25}).calendar(), 'Today at 12:25 PM', 'Now plus 25 min'); - assert.equal(moment(a).add({h: 1}).calendar(), 'Today at 1:00 PM', 'Now plus 1 hour'); - assert.equal(moment(a).add({d: 1}).calendar(), 'Tomorrow at 12:00 PM', 'tomorrow at the same time'); - assert.equal(moment(a).subtract({h: 1}).calendar(), 'Today at 11:00 AM', 'Now minus 1 hour'); - assert.equal(moment(a).subtract({d: 1}).calendar(), 'Yesterday at 12:00 PM', 'yesterday at the same time'); -}); - -test('calendar next week', function (assert) { - var i, m; - for (i = 2; i < 7; i++) { - m = moment().add({d: i}); - assert.equal(m.calendar(), m.format('dddd [at] LT'), 'Today + ' + i + ' days current time'); - m.hours(0).minutes(0).seconds(0).milliseconds(0); - assert.equal(m.calendar(), m.format('dddd [at] LT'), 'Today + ' + i + ' days beginning of day'); - m.hours(23).minutes(59).seconds(59).milliseconds(999); - assert.equal(m.calendar(), m.format('dddd [at] LT'), 'Today + ' + i + ' days end of day'); - } -}); - -test('calendar last week', function (assert) { - var i, m; - - for (i = 2; i < 7; i++) { - m = moment().subtract({d: i}); - assert.equal(m.calendar(), m.format('[Last] dddd [at] LT'), 'Today - ' + i + ' days current time'); - m.hours(0).minutes(0).seconds(0).milliseconds(0); - assert.equal(m.calendar(), m.format('[Last] dddd [at] LT'), 'Today - ' + i + ' days beginning of day'); - m.hours(23).minutes(59).seconds(59).milliseconds(999); - assert.equal(m.calendar(), m.format('[Last] dddd [at] LT'), 'Today - ' + i + ' days end of day'); - } -}); - -test('calendar all else', function (assert) { - var weeksAgo = moment().subtract({w: 1}), - weeksFromNow = moment().add({w: 1}); - - assert.equal(weeksAgo.calendar(), weeksAgo.format('L'), '1 week ago'); - assert.equal(weeksFromNow.calendar(), weeksFromNow.format('L'), 'in 1 week'); - - weeksAgo = moment().subtract({w: 2}); - weeksFromNow = moment().add({w: 2}); - - assert.equal(weeksAgo.calendar(), weeksAgo.format('L'), '2 weeks ago'); - assert.equal(weeksFromNow.calendar(), weeksFromNow.format('L'), 'in 2 weeks'); -}); - -test('weeks year starting sunday formatted', function (assert) { - assert.equal(moment([2012, 0, 1]).format('w ww wo'), '52 52 52nd', 'Jan 1 2012 should be week 52'); - assert.equal(moment([2012, 0, 2]).format('w ww wo'), '1 01 1st', 'Jan 2 2012 should be week 1'); - assert.equal(moment([2012, 0, 8]).format('w ww wo'), '1 01 1st', 'Jan 8 2012 should be week 1'); - assert.equal(moment([2012, 0, 9]).format('w ww wo'), '2 02 2nd', 'Jan 9 2012 should be week 2'); - assert.equal(moment([2012, 0, 15]).format('w ww wo'), '2 02 2nd', 'Jan 15 2012 should be week 2'); -}); - -}))); - - -;(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' - && typeof require === 'function' ? factory(require('../../moment')) : - typeof define === 'function' && define.amd ? define(['../../moment'], factory) : - factory(global.moment) -}(this, (function (moment) { 'use strict'; - -function each(array, callback) { - var i; - for (i = 0; i < array.length; i++) { - callback(array[i], i, array); - } -} - -function objectKeys(obj) { - if (Object.keys) { - return Object.keys(obj); - } else { - // IE8 - var res = [], i; - for (i in obj) { - if (obj.hasOwnProperty(i)) { - res.push(i); - } - } - return res; - } -} - -// Pick the first defined of two or three arguments. - -function defineCommonLocaleTests(locale, options) { - test('lenient day of month ordinal parsing', function (assert) { - var i, ordinalStr, testMoment; - for (i = 1; i <= 31; ++i) { - ordinalStr = moment([2014, 0, i]).format('YYYY MM Do'); - testMoment = moment(ordinalStr, 'YYYY MM Do'); - assert.equal(testMoment.year(), 2014, - 'lenient day of month ordinal parsing ' + i + ' year check'); - assert.equal(testMoment.month(), 0, - 'lenient day of month ordinal parsing ' + i + ' month check'); - assert.equal(testMoment.date(), i, - 'lenient day of month ordinal parsing ' + i + ' date check'); - } - }); - - test('lenient day of month ordinal parsing of number', function (assert) { - var i, testMoment; - for (i = 1; i <= 31; ++i) { - testMoment = moment('2014 01 ' + i, 'YYYY MM Do'); - assert.equal(testMoment.year(), 2014, - 'lenient day of month ordinal parsing of number ' + i + ' year check'); - assert.equal(testMoment.month(), 0, - 'lenient day of month ordinal parsing of number ' + i + ' month check'); - assert.equal(testMoment.date(), i, - 'lenient day of month ordinal parsing of number ' + i + ' date check'); - } - }); - - test('strict day of month ordinal parsing', function (assert) { - var i, ordinalStr, testMoment; - for (i = 1; i <= 31; ++i) { - ordinalStr = moment([2014, 0, i]).format('YYYY MM Do'); - testMoment = moment(ordinalStr, 'YYYY MM Do', true); - assert.ok(testMoment.isValid(), 'strict day of month ordinal parsing ' + i); - } - }); - - test('meridiem invariant', function (assert) { - var h, m, t1, t2; - for (h = 0; h < 24; ++h) { - for (m = 0; m < 60; m += 15) { - t1 = moment.utc([2000, 0, 1, h, m]); - t2 = moment.utc(t1.format('A h:mm'), 'A h:mm'); - assert.equal(t2.format('HH:mm'), t1.format('HH:mm'), - 'meridiem at ' + t1.format('HH:mm')); - } - } - }); - - test('date format correctness', function (assert) { - var data, tokens; - data = moment.localeData()._longDateFormat; - tokens = objectKeys(data); - each(tokens, function (srchToken) { - // Check each format string to make sure it does not contain any - // tokens that need to be expanded. - each(tokens, function (baseToken) { - // strip escaped sequences - var format = data[baseToken].replace(/(\[[^\]]*\])/g, ''); - assert.equal(false, !!~format.indexOf(srchToken), - 'contains ' + srchToken + ' in ' + baseToken); - }); - }); - }); - - test('month parsing correctness', function (assert) { - var i, m; - - if (locale === 'tr') { - // I can't fix it :( - expect(0); - return; - } - function tester(format) { - var r; - r = moment(m.format(format), format); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format); - r = moment(m.format(format).toLocaleUpperCase(), format); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' upper'); - r = moment(m.format(format).toLocaleLowerCase(), format); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' lower'); - - r = moment(m.format(format), format, true); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' strict'); - r = moment(m.format(format).toLocaleUpperCase(), format, true); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' upper strict'); - r = moment(m.format(format).toLocaleLowerCase(), format, true); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' lower strict'); - } - - for (i = 0; i < 12; ++i) { - m = moment([2015, i, 15, 18]); - tester('MMM'); - tester('MMM.'); - tester('MMMM'); - tester('MMMM.'); - } - }); - - test('weekday parsing correctness', function (assert) { - var i, m; - - if (locale === 'tr' || locale === 'az' || locale === 'ro') { - // tr, az: There is a lower-case letter (ı), that converted to - // upper then lower changes to i - // ro: there is the letter ț which behaves weird under IE8 - expect(0); - return; - } - function tester(format) { - var r, baseMsg = 'weekday ' + m.weekday() + ' fmt ' + format + ' ' + m.toISOString(); - r = moment(m.format(format), format); - assert.equal(r.weekday(), m.weekday(), baseMsg); - r = moment(m.format(format).toLocaleUpperCase(), format); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' upper'); - r = moment(m.format(format).toLocaleLowerCase(), format); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' lower'); - - r = moment(m.format(format), format, true); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' strict'); - r = moment(m.format(format).toLocaleUpperCase(), format, true); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' upper strict'); - r = moment(m.format(format).toLocaleLowerCase(), format, true); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' lower strict'); - } - - for (i = 0; i < 7; ++i) { - m = moment.utc([2015, 0, i + 1, 18]); - tester('dd'); - tester('ddd'); - tester('dddd'); - } - }); - - test('valid localeData', function (assert) { - assert.equal(moment().localeData().months().length, 12, 'months should return 12 months'); - assert.equal(moment().localeData().monthsShort().length, 12, 'monthsShort should return 12 months'); - assert.equal(moment().localeData().weekdays().length, 7, 'weekdays should return 7 days'); - assert.equal(moment().localeData().weekdaysShort().length, 7, 'weekdaysShort should return 7 days'); - assert.equal(moment().localeData().weekdaysMin().length, 7, 'monthsShort should return 7 days'); - }); -} - -function setupDeprecationHandler(test, moment$$1, scope) { - test._expectedDeprecations = null; - test._observedDeprecations = null; - test._oldSupress = moment$$1.suppressDeprecationWarnings; - moment$$1.suppressDeprecationWarnings = true; - test.expectedDeprecations = function () { - test._expectedDeprecations = arguments; - test._observedDeprecations = []; - }; - moment$$1.deprecationHandler = function (name, msg) { - var deprecationId = matchedDeprecation(name, msg, test._expectedDeprecations); - if (deprecationId === -1) { - throw new Error('Unexpected deprecation thrown name=' + - name + ' msg=' + msg); - } - test._observedDeprecations[deprecationId] = 1; - }; -} - -function teardownDeprecationHandler(test, moment$$1, scope) { - moment$$1.suppressDeprecationWarnings = test._oldSupress; - - if (test._expectedDeprecations != null) { - var missedDeprecations = []; - each(test._expectedDeprecations, function (deprecationPattern, id) { - if (test._observedDeprecations[id] !== 1) { - missedDeprecations.push(deprecationPattern); - } - }); - if (missedDeprecations.length !== 0) { - throw new Error('Expected deprecation warnings did not happen: ' + - missedDeprecations.join(' ')); - } - } -} - -function matchedDeprecation(name, msg, deprecations) { - if (deprecations == null) { - return -1; - } - for (var i = 0; i < deprecations.length; ++i) { - if (name != null && name === deprecations[i]) { - return i; - } - if (msg != null && msg.substring(0, deprecations[i].length) === deprecations[i]) { - return i; - } - } - return -1; -} - -/*global QUnit:false*/ - -var test = QUnit.test; - -var expect = QUnit.expect; - - - -function localeModule (name, lifecycle) { - QUnit.module('locale:' + name, { - setup : function () { - moment.locale(name); - moment.createFromInputFallback = function (config) { - throw new Error('input not handled by moment: ' + config._i); - }; - setupDeprecationHandler(test, moment, 'locale'); - if (lifecycle && lifecycle.setup) { - lifecycle.setup(); - } - }, - teardown : function () { - moment.locale('en'); - teardownDeprecationHandler(test, moment, 'locale'); - if (lifecycle && lifecycle.teardown) { - lifecycle.teardown(); - } - } - }); - defineCommonLocaleTests(name, -1, -1); -} - -localeModule('en-ca'); - -test('parse', function (assert) { - var i, - tests = 'January Jan_February Feb_March Mar_April Apr_May May_June Jun_July Jul_August Aug_September Sep_October Oct_November Nov_December Dec'.split('_'); - - function equalTest(input, mmm, i) { - assert.equal(moment(input, mmm).month(), i, input + ' should be month ' + (i + 1)); - } - - for (i = 0; i < 12; i++) { - tests[i] = tests[i].split(' '); - equalTest(tests[i][0], 'MMM', i); - equalTest(tests[i][1], 'MMM', i); - equalTest(tests[i][0], 'MMMM', i); - equalTest(tests[i][1], 'MMMM', i); - equalTest(tests[i][0].toLocaleLowerCase(), 'MMMM', i); - equalTest(tests[i][1].toLocaleLowerCase(), 'MMMM', i); - equalTest(tests[i][0].toLocaleUpperCase(), 'MMMM', i); - equalTest(tests[i][1].toLocaleUpperCase(), 'MMMM', i); - } -}); - -test('format', function (assert) { - var a = [ - ['dddd, MMMM Do YYYY, h:mm:ss a', 'Sunday, February 14th 2010, 3:25:50 pm'], - ['ddd, hA', 'Sun, 3PM'], - ['M Mo MM MMMM MMM', '2 2nd 02 February Feb'], - ['YYYY YY', '2010 10'], - ['D Do DD', '14 14th 14'], - ['d do dddd ddd dd', '0 0th Sunday Sun Su'], - ['DDD DDDo DDDD', '45 45th 045'], - ['w wo ww', '8 8th 08'], - ['h hh', '3 03'], - ['H HH', '15 15'], - ['m mm', '25 25'], - ['s ss', '50 50'], - ['a A', 'pm PM'], - ['[the] DDDo [day of the year]', 'the 45th day of the year'], - ['L', '2010-02-14'], - ['LTS', '3:25:50 PM'], - ['LL', 'February 14, 2010'], - ['LLL', 'February 14, 2010 3:25 PM'], - ['LLLL', 'Sunday, February 14, 2010 3:25 PM'], - ['l', '2010-2-14'], - ['ll', 'Feb 14, 2010'], - ['lll', 'Feb 14, 2010 3:25 PM'], - ['llll', 'Sun, Feb 14, 2010 3:25 PM'] - ], - b = moment(new Date(2010, 1, 14, 15, 25, 50, 125)), - i; - - for (i = 0; i < a.length; i++) { - assert.equal(b.format(a[i][0]), a[i][1], a[i][0] + ' ---> ' + a[i][1]); - } -}); - -test('format ordinal', function (assert) { - assert.equal(moment([2011, 0, 1]).format('DDDo'), '1st', '1st'); - assert.equal(moment([2011, 0, 2]).format('DDDo'), '2nd', '2nd'); - assert.equal(moment([2011, 0, 3]).format('DDDo'), '3rd', '3rd'); - assert.equal(moment([2011, 0, 4]).format('DDDo'), '4th', '4th'); - assert.equal(moment([2011, 0, 5]).format('DDDo'), '5th', '5th'); - assert.equal(moment([2011, 0, 6]).format('DDDo'), '6th', '6th'); - assert.equal(moment([2011, 0, 7]).format('DDDo'), '7th', '7th'); - assert.equal(moment([2011, 0, 8]).format('DDDo'), '8th', '8th'); - assert.equal(moment([2011, 0, 9]).format('DDDo'), '9th', '9th'); - assert.equal(moment([2011, 0, 10]).format('DDDo'), '10th', '10th'); - - assert.equal(moment([2011, 0, 11]).format('DDDo'), '11th', '11th'); - assert.equal(moment([2011, 0, 12]).format('DDDo'), '12th', '12th'); - assert.equal(moment([2011, 0, 13]).format('DDDo'), '13th', '13th'); - assert.equal(moment([2011, 0, 14]).format('DDDo'), '14th', '14th'); - assert.equal(moment([2011, 0, 15]).format('DDDo'), '15th', '15th'); - assert.equal(moment([2011, 0, 16]).format('DDDo'), '16th', '16th'); - assert.equal(moment([2011, 0, 17]).format('DDDo'), '17th', '17th'); - assert.equal(moment([2011, 0, 18]).format('DDDo'), '18th', '18th'); - assert.equal(moment([2011, 0, 19]).format('DDDo'), '19th', '19th'); - assert.equal(moment([2011, 0, 20]).format('DDDo'), '20th', '20th'); - - assert.equal(moment([2011, 0, 21]).format('DDDo'), '21st', '21st'); - assert.equal(moment([2011, 0, 22]).format('DDDo'), '22nd', '22nd'); - assert.equal(moment([2011, 0, 23]).format('DDDo'), '23rd', '23rd'); - assert.equal(moment([2011, 0, 24]).format('DDDo'), '24th', '24th'); - assert.equal(moment([2011, 0, 25]).format('DDDo'), '25th', '25th'); - assert.equal(moment([2011, 0, 26]).format('DDDo'), '26th', '26th'); - assert.equal(moment([2011, 0, 27]).format('DDDo'), '27th', '27th'); - assert.equal(moment([2011, 0, 28]).format('DDDo'), '28th', '28th'); - assert.equal(moment([2011, 0, 29]).format('DDDo'), '29th', '29th'); - assert.equal(moment([2011, 0, 30]).format('DDDo'), '30th', '30th'); - - assert.equal(moment([2011, 0, 31]).format('DDDo'), '31st', '31st'); -}); - -test('format month', function (assert) { - var i, - expected = 'January Jan_February Feb_March Mar_April Apr_May May_June Jun_July Jul_August Aug_September Sep_October Oct_November Nov_December Dec'.split('_'); - - for (i = 0; i < expected.length; i++) { - assert.equal(moment([2011, i, 1]).format('MMMM MMM'), expected[i], expected[i]); - } -}); - -test('format week', function (assert) { - var i, - expected = 'Sunday Sun Su_Monday Mon Mo_Tuesday Tue Tu_Wednesday Wed We_Thursday Thu Th_Friday Fri Fr_Saturday Sat Sa'.split('_'); - - for (i = 0; i < expected.length; i++) { - assert.equal(moment([2011, 0, 2 + i]).format('dddd ddd dd'), expected[i], expected[i]); - } -}); - -test('from', function (assert) { - var start = moment([2007, 1, 28]); - assert.equal(start.from(moment([2007, 1, 28]).add({s: 44}), true), 'a few seconds', '44 seconds = a few seconds'); - assert.equal(start.from(moment([2007, 1, 28]).add({s: 45}), true), 'a minute', '45 seconds = a minute'); - assert.equal(start.from(moment([2007, 1, 28]).add({s: 89}), true), 'a minute', '89 seconds = a minute'); - assert.equal(start.from(moment([2007, 1, 28]).add({s: 90}), true), '2 minutes', '90 seconds = 2 minutes'); - assert.equal(start.from(moment([2007, 1, 28]).add({m: 44}), true), '44 minutes', '44 minutes = 44 minutes'); - assert.equal(start.from(moment([2007, 1, 28]).add({m: 45}), true), 'an hour', '45 minutes = an hour'); - assert.equal(start.from(moment([2007, 1, 28]).add({m: 89}), true), 'an hour', '89 minutes = an hour'); - assert.equal(start.from(moment([2007, 1, 28]).add({m: 90}), true), '2 hours', '90 minutes = 2 hours'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 5}), true), '5 hours', '5 hours = 5 hours'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 21}), true), '21 hours', '21 hours = 21 hours'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 22}), true), 'a day', '22 hours = a day'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 35}), true), 'a day', '35 hours = a day'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 36}), true), '2 days', '36 hours = 2 days'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 1}), true), 'a day', '1 day = a day'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 5}), true), '5 days', '5 days = 5 days'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 25}), true), '25 days', '25 days = 25 days'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 26}), true), 'a month', '26 days = a month'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 30}), true), 'a month', '30 days = a month'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 43}), true), 'a month', '43 days = a month'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 46}), true), '2 months', '46 days = 2 months'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 74}), true), '2 months', '75 days = 2 months'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 76}), true), '3 months', '76 days = 3 months'); - assert.equal(start.from(moment([2007, 1, 28]).add({M: 1}), true), 'a month', '1 month = a month'); - assert.equal(start.from(moment([2007, 1, 28]).add({M: 5}), true), '5 months', '5 months = 5 months'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 345}), true), 'a year', '345 days = a year'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 548}), true), '2 years', '548 days = 2 years'); - assert.equal(start.from(moment([2007, 1, 28]).add({y: 1}), true), 'a year', '1 year = a year'); - assert.equal(start.from(moment([2007, 1, 28]).add({y: 5}), true), '5 years', '5 years = 5 years'); -}); - -test('suffix', function (assert) { - assert.equal(moment(30000).from(0), 'in a few seconds', 'prefix'); - assert.equal(moment(0).from(30000), 'a few seconds ago', 'suffix'); -}); - -test('now from now', function (assert) { - assert.equal(moment().fromNow(), 'a few seconds ago', 'now from now should display as in the past'); -}); - -test('fromNow', function (assert) { - assert.equal(moment().add({s: 30}).fromNow(), 'in a few seconds', 'in a few seconds'); - assert.equal(moment().add({d: 5}).fromNow(), 'in 5 days', 'in 5 days'); -}); - -test('calendar day', function (assert) { - var a = moment().hours(12).minutes(0).seconds(0); - - assert.equal(moment(a).calendar(), 'Today at 12:00 PM', 'today at the same time'); - assert.equal(moment(a).add({m: 25}).calendar(), 'Today at 12:25 PM', 'Now plus 25 min'); - assert.equal(moment(a).add({h: 1}).calendar(), 'Today at 1:00 PM', 'Now plus 1 hour'); - assert.equal(moment(a).add({d: 1}).calendar(), 'Tomorrow at 12:00 PM', 'tomorrow at the same time'); - assert.equal(moment(a).subtract({h: 1}).calendar(), 'Today at 11:00 AM', 'Now minus 1 hour'); - assert.equal(moment(a).subtract({d: 1}).calendar(), 'Yesterday at 12:00 PM', 'yesterday at the same time'); -}); - -test('calendar next week', function (assert) { - var i, m; - - for (i = 2; i < 7; i++) { - m = moment().add({d: i}); - assert.equal(m.calendar(), m.format('dddd [at] LT'), 'Today + ' + i + ' days current time'); - m.hours(0).minutes(0).seconds(0).milliseconds(0); - assert.equal(m.calendar(), m.format('dddd [at] LT'), 'Today + ' + i + ' days beginning of day'); - m.hours(23).minutes(59).seconds(59).milliseconds(999); - assert.equal(m.calendar(), m.format('dddd [at] LT'), 'Today + ' + i + ' days end of day'); - } -}); - -test('calendar last week', function (assert) { - var i, m; - - for (i = 2; i < 7; i++) { - m = moment().subtract({d: i}); - assert.equal(m.calendar(), m.format('[Last] dddd [at] LT'), 'Today - ' + i + ' days current time'); - m.hours(0).minutes(0).seconds(0).milliseconds(0); - assert.equal(m.calendar(), m.format('[Last] dddd [at] LT'), 'Today - ' + i + ' days beginning of day'); - m.hours(23).minutes(59).seconds(59).milliseconds(999); - assert.equal(m.calendar(), m.format('[Last] dddd [at] LT'), 'Today - ' + i + ' days end of day'); - } -}); - -test('calendar all else', function (assert) { - var weeksAgo = moment().subtract({w: 1}), - weeksFromNow = moment().add({w: 1}); - - assert.equal(weeksAgo.calendar(), weeksAgo.format('L'), '1 week ago'); - assert.equal(weeksFromNow.calendar(), weeksFromNow.format('L'), 'in 1 week'); - - weeksAgo = moment().subtract({w: 2}); - weeksFromNow = moment().add({w: 2}); - - assert.equal(weeksAgo.calendar(), weeksAgo.format('L'), '2 weeks ago'); - assert.equal(weeksFromNow.calendar(), weeksFromNow.format('L'), 'in 2 weeks'); -}); - -test('weeks year starting sunday format', function (assert) { - assert.equal(moment([2012, 0, 1]).format('w ww wo'), '1 01 1st', 'Jan 1 2012 should be week 1'); - assert.equal(moment([2012, 0, 7]).format('w ww wo'), '1 01 1st', 'Jan 7 2012 should be week 1'); - assert.equal(moment([2012, 0, 8]).format('w ww wo'), '2 02 2nd', 'Jan 8 2012 should be week 2'); - assert.equal(moment([2012, 0, 14]).format('w ww wo'), '2 02 2nd', 'Jan 14 2012 should be week 2'); - assert.equal(moment([2012, 0, 15]).format('w ww wo'), '3 03 3rd', 'Jan 15 2012 should be week 3'); -}); - -}))); - - -;(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' - && typeof require === 'function' ? factory(require('../../moment')) : - typeof define === 'function' && define.amd ? define(['../../moment'], factory) : - factory(global.moment) -}(this, (function (moment) { 'use strict'; - -function each(array, callback) { - var i; - for (i = 0; i < array.length; i++) { - callback(array[i], i, array); - } -} - -function objectKeys(obj) { - if (Object.keys) { - return Object.keys(obj); - } else { - // IE8 - var res = [], i; - for (i in obj) { - if (obj.hasOwnProperty(i)) { - res.push(i); - } - } - return res; - } -} - -// Pick the first defined of two or three arguments. - -function defineCommonLocaleTests(locale, options) { - test('lenient day of month ordinal parsing', function (assert) { - var i, ordinalStr, testMoment; - for (i = 1; i <= 31; ++i) { - ordinalStr = moment([2014, 0, i]).format('YYYY MM Do'); - testMoment = moment(ordinalStr, 'YYYY MM Do'); - assert.equal(testMoment.year(), 2014, - 'lenient day of month ordinal parsing ' + i + ' year check'); - assert.equal(testMoment.month(), 0, - 'lenient day of month ordinal parsing ' + i + ' month check'); - assert.equal(testMoment.date(), i, - 'lenient day of month ordinal parsing ' + i + ' date check'); - } - }); - - test('lenient day of month ordinal parsing of number', function (assert) { - var i, testMoment; - for (i = 1; i <= 31; ++i) { - testMoment = moment('2014 01 ' + i, 'YYYY MM Do'); - assert.equal(testMoment.year(), 2014, - 'lenient day of month ordinal parsing of number ' + i + ' year check'); - assert.equal(testMoment.month(), 0, - 'lenient day of month ordinal parsing of number ' + i + ' month check'); - assert.equal(testMoment.date(), i, - 'lenient day of month ordinal parsing of number ' + i + ' date check'); - } - }); - - test('strict day of month ordinal parsing', function (assert) { - var i, ordinalStr, testMoment; - for (i = 1; i <= 31; ++i) { - ordinalStr = moment([2014, 0, i]).format('YYYY MM Do'); - testMoment = moment(ordinalStr, 'YYYY MM Do', true); - assert.ok(testMoment.isValid(), 'strict day of month ordinal parsing ' + i); - } - }); - - test('meridiem invariant', function (assert) { - var h, m, t1, t2; - for (h = 0; h < 24; ++h) { - for (m = 0; m < 60; m += 15) { - t1 = moment.utc([2000, 0, 1, h, m]); - t2 = moment.utc(t1.format('A h:mm'), 'A h:mm'); - assert.equal(t2.format('HH:mm'), t1.format('HH:mm'), - 'meridiem at ' + t1.format('HH:mm')); - } - } - }); - - test('date format correctness', function (assert) { - var data, tokens; - data = moment.localeData()._longDateFormat; - tokens = objectKeys(data); - each(tokens, function (srchToken) { - // Check each format string to make sure it does not contain any - // tokens that need to be expanded. - each(tokens, function (baseToken) { - // strip escaped sequences - var format = data[baseToken].replace(/(\[[^\]]*\])/g, ''); - assert.equal(false, !!~format.indexOf(srchToken), - 'contains ' + srchToken + ' in ' + baseToken); - }); - }); - }); - - test('month parsing correctness', function (assert) { - var i, m; - - if (locale === 'tr') { - // I can't fix it :( - expect(0); - return; - } - function tester(format) { - var r; - r = moment(m.format(format), format); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format); - r = moment(m.format(format).toLocaleUpperCase(), format); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' upper'); - r = moment(m.format(format).toLocaleLowerCase(), format); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' lower'); - - r = moment(m.format(format), format, true); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' strict'); - r = moment(m.format(format).toLocaleUpperCase(), format, true); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' upper strict'); - r = moment(m.format(format).toLocaleLowerCase(), format, true); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' lower strict'); - } - - for (i = 0; i < 12; ++i) { - m = moment([2015, i, 15, 18]); - tester('MMM'); - tester('MMM.'); - tester('MMMM'); - tester('MMMM.'); - } - }); - - test('weekday parsing correctness', function (assert) { - var i, m; - - if (locale === 'tr' || locale === 'az' || locale === 'ro') { - // tr, az: There is a lower-case letter (ı), that converted to - // upper then lower changes to i - // ro: there is the letter ț which behaves weird under IE8 - expect(0); - return; - } - function tester(format) { - var r, baseMsg = 'weekday ' + m.weekday() + ' fmt ' + format + ' ' + m.toISOString(); - r = moment(m.format(format), format); - assert.equal(r.weekday(), m.weekday(), baseMsg); - r = moment(m.format(format).toLocaleUpperCase(), format); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' upper'); - r = moment(m.format(format).toLocaleLowerCase(), format); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' lower'); - - r = moment(m.format(format), format, true); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' strict'); - r = moment(m.format(format).toLocaleUpperCase(), format, true); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' upper strict'); - r = moment(m.format(format).toLocaleLowerCase(), format, true); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' lower strict'); - } - - for (i = 0; i < 7; ++i) { - m = moment.utc([2015, 0, i + 1, 18]); - tester('dd'); - tester('ddd'); - tester('dddd'); - } - }); - - test('valid localeData', function (assert) { - assert.equal(moment().localeData().months().length, 12, 'months should return 12 months'); - assert.equal(moment().localeData().monthsShort().length, 12, 'monthsShort should return 12 months'); - assert.equal(moment().localeData().weekdays().length, 7, 'weekdays should return 7 days'); - assert.equal(moment().localeData().weekdaysShort().length, 7, 'weekdaysShort should return 7 days'); - assert.equal(moment().localeData().weekdaysMin().length, 7, 'monthsShort should return 7 days'); - }); -} - -function setupDeprecationHandler(test, moment$$1, scope) { - test._expectedDeprecations = null; - test._observedDeprecations = null; - test._oldSupress = moment$$1.suppressDeprecationWarnings; - moment$$1.suppressDeprecationWarnings = true; - test.expectedDeprecations = function () { - test._expectedDeprecations = arguments; - test._observedDeprecations = []; - }; - moment$$1.deprecationHandler = function (name, msg) { - var deprecationId = matchedDeprecation(name, msg, test._expectedDeprecations); - if (deprecationId === -1) { - throw new Error('Unexpected deprecation thrown name=' + - name + ' msg=' + msg); - } - test._observedDeprecations[deprecationId] = 1; - }; -} - -function teardownDeprecationHandler(test, moment$$1, scope) { - moment$$1.suppressDeprecationWarnings = test._oldSupress; - - if (test._expectedDeprecations != null) { - var missedDeprecations = []; - each(test._expectedDeprecations, function (deprecationPattern, id) { - if (test._observedDeprecations[id] !== 1) { - missedDeprecations.push(deprecationPattern); - } - }); - if (missedDeprecations.length !== 0) { - throw new Error('Expected deprecation warnings did not happen: ' + - missedDeprecations.join(' ')); - } - } -} - -function matchedDeprecation(name, msg, deprecations) { - if (deprecations == null) { - return -1; - } - for (var i = 0; i < deprecations.length; ++i) { - if (name != null && name === deprecations[i]) { - return i; - } - if (msg != null && msg.substring(0, deprecations[i].length) === deprecations[i]) { - return i; - } - } - return -1; -} - -/*global QUnit:false*/ - -var test = QUnit.test; - -var expect = QUnit.expect; - - - -function localeModule (name, lifecycle) { - QUnit.module('locale:' + name, { - setup : function () { - moment.locale(name); - moment.createFromInputFallback = function (config) { - throw new Error('input not handled by moment: ' + config._i); - }; - setupDeprecationHandler(test, moment, 'locale'); - if (lifecycle && lifecycle.setup) { - lifecycle.setup(); - } - }, - teardown : function () { - moment.locale('en'); - teardownDeprecationHandler(test, moment, 'locale'); - if (lifecycle && lifecycle.teardown) { - lifecycle.teardown(); - } - } - }); - defineCommonLocaleTests(name, -1, -1); -} - -localeModule('en-gb'); - -test('parse', function (assert) { - var tests = 'January Jan_February Feb_March Mar_April Apr_May May_June Jun_July Jul_August Aug_September Sep_October Oct_November Nov_December Dec'.split('_'), i; - function equalTest(input, mmm, i) { - assert.equal(moment(input, mmm).month(), i, input + ' should be month ' + (i + 1)); - } - for (i = 0; i < 12; i++) { - tests[i] = tests[i].split(' '); - equalTest(tests[i][0], 'MMM', i); - equalTest(tests[i][1], 'MMM', i); - equalTest(tests[i][0], 'MMMM', i); - equalTest(tests[i][1], 'MMMM', i); - equalTest(tests[i][0].toLocaleLowerCase(), 'MMMM', i); - equalTest(tests[i][1].toLocaleLowerCase(), 'MMMM', i); - equalTest(tests[i][0].toLocaleUpperCase(), 'MMMM', i); - equalTest(tests[i][1].toLocaleUpperCase(), 'MMMM', i); - } -}); - -test('format', function (assert) { - var a = [ - ['dddd, MMMM Do YYYY, h:mm:ss a', 'Sunday, February 14th 2010, 3:25:50 pm'], - ['ddd, hA', 'Sun, 3PM'], - ['M Mo MM MMMM MMM', '2 2nd 02 February Feb'], - ['YYYY YY', '2010 10'], - ['D Do DD', '14 14th 14'], - ['d do dddd ddd dd', '0 0th Sunday Sun Su'], - ['DDD DDDo DDDD', '45 45th 045'], - ['w wo ww', '6 6th 06'], - ['h hh', '3 03'], - ['H HH', '15 15'], - ['m mm', '25 25'], - ['s ss', '50 50'], - ['a A', 'pm PM'], - ['[the] DDDo [day of the year]', 'the 45th day of the year'], - ['LTS', '15:25:50'], - ['L', '14/02/2010'], - ['LL', '14 February 2010'], - ['LLL', '14 February 2010 15:25'], - ['LLLL', 'Sunday, 14 February 2010 15:25'], - ['l', '14/2/2010'], - ['ll', '14 Feb 2010'], - ['lll', '14 Feb 2010 15:25'], - ['llll', 'Sun, 14 Feb 2010 15:25'] - ], - b = moment(new Date(2010, 1, 14, 15, 25, 50, 125)), - i; - for (i = 0; i < a.length; i++) { - assert.equal(b.format(a[i][0]), a[i][1], a[i][0] + ' ---> ' + a[i][1]); - } -}); - -test('format ordinal', function (assert) { - assert.equal(moment([2011, 0, 1]).format('DDDo'), '1st', '1st'); - assert.equal(moment([2011, 0, 2]).format('DDDo'), '2nd', '2nd'); - assert.equal(moment([2011, 0, 3]).format('DDDo'), '3rd', '3rd'); - assert.equal(moment([2011, 0, 4]).format('DDDo'), '4th', '4th'); - assert.equal(moment([2011, 0, 5]).format('DDDo'), '5th', '5th'); - assert.equal(moment([2011, 0, 6]).format('DDDo'), '6th', '6th'); - assert.equal(moment([2011, 0, 7]).format('DDDo'), '7th', '7th'); - assert.equal(moment([2011, 0, 8]).format('DDDo'), '8th', '8th'); - assert.equal(moment([2011, 0, 9]).format('DDDo'), '9th', '9th'); - assert.equal(moment([2011, 0, 10]).format('DDDo'), '10th', '10th'); - - assert.equal(moment([2011, 0, 11]).format('DDDo'), '11th', '11th'); - assert.equal(moment([2011, 0, 12]).format('DDDo'), '12th', '12th'); - assert.equal(moment([2011, 0, 13]).format('DDDo'), '13th', '13th'); - assert.equal(moment([2011, 0, 14]).format('DDDo'), '14th', '14th'); - assert.equal(moment([2011, 0, 15]).format('DDDo'), '15th', '15th'); - assert.equal(moment([2011, 0, 16]).format('DDDo'), '16th', '16th'); - assert.equal(moment([2011, 0, 17]).format('DDDo'), '17th', '17th'); - assert.equal(moment([2011, 0, 18]).format('DDDo'), '18th', '18th'); - assert.equal(moment([2011, 0, 19]).format('DDDo'), '19th', '19th'); - assert.equal(moment([2011, 0, 20]).format('DDDo'), '20th', '20th'); - - assert.equal(moment([2011, 0, 21]).format('DDDo'), '21st', '21st'); - assert.equal(moment([2011, 0, 22]).format('DDDo'), '22nd', '22nd'); - assert.equal(moment([2011, 0, 23]).format('DDDo'), '23rd', '23rd'); - assert.equal(moment([2011, 0, 24]).format('DDDo'), '24th', '24th'); - assert.equal(moment([2011, 0, 25]).format('DDDo'), '25th', '25th'); - assert.equal(moment([2011, 0, 26]).format('DDDo'), '26th', '26th'); - assert.equal(moment([2011, 0, 27]).format('DDDo'), '27th', '27th'); - assert.equal(moment([2011, 0, 28]).format('DDDo'), '28th', '28th'); - assert.equal(moment([2011, 0, 29]).format('DDDo'), '29th', '29th'); - assert.equal(moment([2011, 0, 30]).format('DDDo'), '30th', '30th'); - - assert.equal(moment([2011, 0, 31]).format('DDDo'), '31st', '31st'); -}); - -test('format month', function (assert) { - var expected = 'January Jan_February Feb_March Mar_April Apr_May May_June Jun_July Jul_August Aug_September Sep_October Oct_November Nov_December Dec'.split('_'), i; - for (i = 0; i < expected.length; i++) { - assert.equal(moment([2011, i, 1]).format('MMMM MMM'), expected[i], expected[i]); - } -}); - -test('format week', function (assert) { - var expected = 'Sunday Sun Su_Monday Mon Mo_Tuesday Tue Tu_Wednesday Wed We_Thursday Thu Th_Friday Fri Fr_Saturday Sat Sa'.split('_'), i; - for (i = 0; i < expected.length; i++) { - assert.equal(moment([2011, 0, 2 + i]).format('dddd ddd dd'), expected[i], expected[i]); - } -}); - -test('from', function (assert) { - var start = moment([2007, 1, 28]); - assert.equal(start.from(moment([2007, 1, 28]).add({s: 44}), true), 'a few seconds', '44 seconds = a few seconds'); - assert.equal(start.from(moment([2007, 1, 28]).add({s: 45}), true), 'a minute', '45 seconds = a minute'); - assert.equal(start.from(moment([2007, 1, 28]).add({s: 89}), true), 'a minute', '89 seconds = a minute'); - assert.equal(start.from(moment([2007, 1, 28]).add({s: 90}), true), '2 minutes', '90 seconds = 2 minutes'); - assert.equal(start.from(moment([2007, 1, 28]).add({m: 44}), true), '44 minutes', '44 minutes = 44 minutes'); - assert.equal(start.from(moment([2007, 1, 28]).add({m: 45}), true), 'an hour', '45 minutes = an hour'); - assert.equal(start.from(moment([2007, 1, 28]).add({m: 89}), true), 'an hour', '89 minutes = an hour'); - assert.equal(start.from(moment([2007, 1, 28]).add({m: 90}), true), '2 hours', '90 minutes = 2 hours'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 5}), true), '5 hours', '5 hours = 5 hours'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 21}), true), '21 hours', '21 hours = 21 hours'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 22}), true), 'a day', '22 hours = a day'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 35}), true), 'a day', '35 hours = a day'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 36}), true), '2 days', '36 hours = 2 days'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 1}), true), 'a day', '1 day = a day'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 5}), true), '5 days', '5 days = 5 days'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 25}), true), '25 days', '25 days = 25 days'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 26}), true), 'a month', '26 days = a month'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 30}), true), 'a month', '30 days = a month'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 43}), true), 'a month', '43 days = a month'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 46}), true), '2 months', '46 days = 2 months'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 74}), true), '2 months', '75 days = 2 months'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 76}), true), '3 months', '76 days = 3 months'); - assert.equal(start.from(moment([2007, 1, 28]).add({M: 1}), true), 'a month', '1 month = a month'); - assert.equal(start.from(moment([2007, 1, 28]).add({M: 5}), true), '5 months', '5 months = 5 months'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 345}), true), 'a year', '345 days = a year'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 548}), true), '2 years', '548 days = 2 years'); - assert.equal(start.from(moment([2007, 1, 28]).add({y: 1}), true), 'a year', '1 year = a year'); - assert.equal(start.from(moment([2007, 1, 28]).add({y: 5}), true), '5 years', '5 years = 5 years'); -}); - -test('suffix', function (assert) { - assert.equal(moment(30000).from(0), 'in a few seconds', 'prefix'); - assert.equal(moment(0).from(30000), 'a few seconds ago', 'suffix'); -}); - -test('now from now', function (assert) { - assert.equal(moment().fromNow(), 'a few seconds ago', 'now from now should display as in the past'); -}); - -test('fromNow', function (assert) { - assert.equal(moment().add({s: 30}).fromNow(), 'in a few seconds', 'in a few seconds'); - assert.equal(moment().add({d: 5}).fromNow(), 'in 5 days', 'in 5 days'); -}); - -test('calendar day', function (assert) { - var a = moment().hours(12).minutes(0).seconds(0); - - assert.equal(moment(a).calendar(), 'Today at 12:00', 'today at the same time'); - assert.equal(moment(a).add({m: 25}).calendar(), 'Today at 12:25', 'Now plus 25 min'); - assert.equal(moment(a).add({h: 1}).calendar(), 'Today at 13:00', 'Now plus 1 hour'); - assert.equal(moment(a).add({d: 1}).calendar(), 'Tomorrow at 12:00', 'tomorrow at the same time'); - assert.equal(moment(a).subtract({h: 1}).calendar(), 'Today at 11:00', 'Now minus 1 hour'); - assert.equal(moment(a).subtract({d: 1}).calendar(), 'Yesterday at 12:00', 'yesterday at the same time'); -}); - -test('calendar next week', function (assert) { - var i, m; - for (i = 2; i < 7; i++) { - m = moment().add({d: i}); - assert.equal(m.calendar(), m.format('dddd [at] LT'), 'Today + ' + i + ' days current time'); - m.hours(0).minutes(0).seconds(0).milliseconds(0); - assert.equal(m.calendar(), m.format('dddd [at] LT'), 'Today + ' + i + ' days beginning of day'); - m.hours(23).minutes(59).seconds(59).milliseconds(999); - assert.equal(m.calendar(), m.format('dddd [at] LT'), 'Today + ' + i + ' days end of day'); - } -}); - -test('calendar last week', function (assert) { - var i, m; - - for (i = 2; i < 7; i++) { - m = moment().subtract({d: i}); - assert.equal(m.calendar(), m.format('[Last] dddd [at] LT'), 'Today - ' + i + ' days current time'); - m.hours(0).minutes(0).seconds(0).milliseconds(0); - assert.equal(m.calendar(), m.format('[Last] dddd [at] LT'), 'Today - ' + i + ' days beginning of day'); - m.hours(23).minutes(59).seconds(59).milliseconds(999); - assert.equal(m.calendar(), m.format('[Last] dddd [at] LT'), 'Today - ' + i + ' days end of day'); - } -}); - -test('calendar all else', function (assert) { - var weeksAgo = moment().subtract({w: 1}), - weeksFromNow = moment().add({w: 1}); - - assert.equal(weeksAgo.calendar(), weeksAgo.format('L'), '1 week ago'); - assert.equal(weeksFromNow.calendar(), weeksFromNow.format('L'), 'in 1 week'); - - weeksAgo = moment().subtract({w: 2}); - weeksFromNow = moment().add({w: 2}); - - assert.equal(weeksAgo.calendar(), weeksAgo.format('L'), '2 weeks ago'); - assert.equal(weeksFromNow.calendar(), weeksFromNow.format('L'), 'in 2 weeks'); -}); - -test('weeks year starting sunday formatted', function (assert) { - assert.equal(moment([2012, 0, 1]).format('w ww wo'), '52 52 52nd', 'Jan 1 2012 should be week 52'); - assert.equal(moment([2012, 0, 2]).format('w ww wo'), '1 01 1st', 'Jan 2 2012 should be week 1'); - assert.equal(moment([2012, 0, 8]).format('w ww wo'), '1 01 1st', 'Jan 8 2012 should be week 1'); - assert.equal(moment([2012, 0, 9]).format('w ww wo'), '2 02 2nd', 'Jan 9 2012 should be week 2'); - assert.equal(moment([2012, 0, 15]).format('w ww wo'), '2 02 2nd', 'Jan 15 2012 should be week 2'); -}); - -}))); - - -;(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' - && typeof require === 'function' ? factory(require('../../moment')) : - typeof define === 'function' && define.amd ? define(['../../moment'], factory) : - factory(global.moment) -}(this, (function (moment) { 'use strict'; - -function each(array, callback) { - var i; - for (i = 0; i < array.length; i++) { - callback(array[i], i, array); - } -} - -function objectKeys(obj) { - if (Object.keys) { - return Object.keys(obj); - } else { - // IE8 - var res = [], i; - for (i in obj) { - if (obj.hasOwnProperty(i)) { - res.push(i); - } - } - return res; - } -} - -// Pick the first defined of two or three arguments. - -function defineCommonLocaleTests(locale, options) { - test('lenient day of month ordinal parsing', function (assert) { - var i, ordinalStr, testMoment; - for (i = 1; i <= 31; ++i) { - ordinalStr = moment([2014, 0, i]).format('YYYY MM Do'); - testMoment = moment(ordinalStr, 'YYYY MM Do'); - assert.equal(testMoment.year(), 2014, - 'lenient day of month ordinal parsing ' + i + ' year check'); - assert.equal(testMoment.month(), 0, - 'lenient day of month ordinal parsing ' + i + ' month check'); - assert.equal(testMoment.date(), i, - 'lenient day of month ordinal parsing ' + i + ' date check'); - } - }); - - test('lenient day of month ordinal parsing of number', function (assert) { - var i, testMoment; - for (i = 1; i <= 31; ++i) { - testMoment = moment('2014 01 ' + i, 'YYYY MM Do'); - assert.equal(testMoment.year(), 2014, - 'lenient day of month ordinal parsing of number ' + i + ' year check'); - assert.equal(testMoment.month(), 0, - 'lenient day of month ordinal parsing of number ' + i + ' month check'); - assert.equal(testMoment.date(), i, - 'lenient day of month ordinal parsing of number ' + i + ' date check'); - } - }); - - test('strict day of month ordinal parsing', function (assert) { - var i, ordinalStr, testMoment; - for (i = 1; i <= 31; ++i) { - ordinalStr = moment([2014, 0, i]).format('YYYY MM Do'); - testMoment = moment(ordinalStr, 'YYYY MM Do', true); - assert.ok(testMoment.isValid(), 'strict day of month ordinal parsing ' + i); - } - }); - - test('meridiem invariant', function (assert) { - var h, m, t1, t2; - for (h = 0; h < 24; ++h) { - for (m = 0; m < 60; m += 15) { - t1 = moment.utc([2000, 0, 1, h, m]); - t2 = moment.utc(t1.format('A h:mm'), 'A h:mm'); - assert.equal(t2.format('HH:mm'), t1.format('HH:mm'), - 'meridiem at ' + t1.format('HH:mm')); - } - } - }); - - test('date format correctness', function (assert) { - var data, tokens; - data = moment.localeData()._longDateFormat; - tokens = objectKeys(data); - each(tokens, function (srchToken) { - // Check each format string to make sure it does not contain any - // tokens that need to be expanded. - each(tokens, function (baseToken) { - // strip escaped sequences - var format = data[baseToken].replace(/(\[[^\]]*\])/g, ''); - assert.equal(false, !!~format.indexOf(srchToken), - 'contains ' + srchToken + ' in ' + baseToken); - }); - }); - }); - - test('month parsing correctness', function (assert) { - var i, m; - - if (locale === 'tr') { - // I can't fix it :( - expect(0); - return; - } - function tester(format) { - var r; - r = moment(m.format(format), format); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format); - r = moment(m.format(format).toLocaleUpperCase(), format); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' upper'); - r = moment(m.format(format).toLocaleLowerCase(), format); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' lower'); - - r = moment(m.format(format), format, true); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' strict'); - r = moment(m.format(format).toLocaleUpperCase(), format, true); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' upper strict'); - r = moment(m.format(format).toLocaleLowerCase(), format, true); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' lower strict'); - } - - for (i = 0; i < 12; ++i) { - m = moment([2015, i, 15, 18]); - tester('MMM'); - tester('MMM.'); - tester('MMMM'); - tester('MMMM.'); - } - }); - - test('weekday parsing correctness', function (assert) { - var i, m; - - if (locale === 'tr' || locale === 'az' || locale === 'ro') { - // tr, az: There is a lower-case letter (ı), that converted to - // upper then lower changes to i - // ro: there is the letter ț which behaves weird under IE8 - expect(0); - return; - } - function tester(format) { - var r, baseMsg = 'weekday ' + m.weekday() + ' fmt ' + format + ' ' + m.toISOString(); - r = moment(m.format(format), format); - assert.equal(r.weekday(), m.weekday(), baseMsg); - r = moment(m.format(format).toLocaleUpperCase(), format); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' upper'); - r = moment(m.format(format).toLocaleLowerCase(), format); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' lower'); - - r = moment(m.format(format), format, true); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' strict'); - r = moment(m.format(format).toLocaleUpperCase(), format, true); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' upper strict'); - r = moment(m.format(format).toLocaleLowerCase(), format, true); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' lower strict'); - } - - for (i = 0; i < 7; ++i) { - m = moment.utc([2015, 0, i + 1, 18]); - tester('dd'); - tester('ddd'); - tester('dddd'); - } - }); - - test('valid localeData', function (assert) { - assert.equal(moment().localeData().months().length, 12, 'months should return 12 months'); - assert.equal(moment().localeData().monthsShort().length, 12, 'monthsShort should return 12 months'); - assert.equal(moment().localeData().weekdays().length, 7, 'weekdays should return 7 days'); - assert.equal(moment().localeData().weekdaysShort().length, 7, 'weekdaysShort should return 7 days'); - assert.equal(moment().localeData().weekdaysMin().length, 7, 'monthsShort should return 7 days'); - }); -} - -function setupDeprecationHandler(test, moment$$1, scope) { - test._expectedDeprecations = null; - test._observedDeprecations = null; - test._oldSupress = moment$$1.suppressDeprecationWarnings; - moment$$1.suppressDeprecationWarnings = true; - test.expectedDeprecations = function () { - test._expectedDeprecations = arguments; - test._observedDeprecations = []; - }; - moment$$1.deprecationHandler = function (name, msg) { - var deprecationId = matchedDeprecation(name, msg, test._expectedDeprecations); - if (deprecationId === -1) { - throw new Error('Unexpected deprecation thrown name=' + - name + ' msg=' + msg); - } - test._observedDeprecations[deprecationId] = 1; - }; -} - -function teardownDeprecationHandler(test, moment$$1, scope) { - moment$$1.suppressDeprecationWarnings = test._oldSupress; - - if (test._expectedDeprecations != null) { - var missedDeprecations = []; - each(test._expectedDeprecations, function (deprecationPattern, id) { - if (test._observedDeprecations[id] !== 1) { - missedDeprecations.push(deprecationPattern); - } - }); - if (missedDeprecations.length !== 0) { - throw new Error('Expected deprecation warnings did not happen: ' + - missedDeprecations.join(' ')); - } - } -} - -function matchedDeprecation(name, msg, deprecations) { - if (deprecations == null) { - return -1; - } - for (var i = 0; i < deprecations.length; ++i) { - if (name != null && name === deprecations[i]) { - return i; - } - if (msg != null && msg.substring(0, deprecations[i].length) === deprecations[i]) { - return i; - } - } - return -1; -} - -/*global QUnit:false*/ - -var test = QUnit.test; - -var expect = QUnit.expect; - - - -function localeModule (name, lifecycle) { - QUnit.module('locale:' + name, { - setup : function () { - moment.locale(name); - moment.createFromInputFallback = function (config) { - throw new Error('input not handled by moment: ' + config._i); - }; - setupDeprecationHandler(test, moment, 'locale'); - if (lifecycle && lifecycle.setup) { - lifecycle.setup(); - } - }, - teardown : function () { - moment.locale('en'); - teardownDeprecationHandler(test, moment, 'locale'); - if (lifecycle && lifecycle.teardown) { - lifecycle.teardown(); - } - } - }); - defineCommonLocaleTests(name, -1, -1); -} - -localeModule('en-ie'); - -test('parse', function (assert) { - var tests = 'January Jan_February Feb_March Mar_April Apr_May May_June Jun_July Jul_August Aug_September Sep_October Oct_November Nov_December Dec'.split('_'), i; - function equalTest(input, mmm, i) { - assert.equal(moment(input, mmm).month(), i, input + ' should be month ' + (i + 1)); - } - for (i = 0; i < 12; i++) { - tests[i] = tests[i].split(' '); - equalTest(tests[i][0], 'MMM', i); - equalTest(tests[i][1], 'MMM', i); - equalTest(tests[i][0], 'MMMM', i); - equalTest(tests[i][1], 'MMMM', i); - equalTest(tests[i][0].toLocaleLowerCase(), 'MMMM', i); - equalTest(tests[i][1].toLocaleLowerCase(), 'MMMM', i); - equalTest(tests[i][0].toLocaleUpperCase(), 'MMMM', i); - equalTest(tests[i][1].toLocaleUpperCase(), 'MMMM', i); - } -}); - -test('format', function (assert) { - var a = [ - ['dddd, MMMM Do YYYY, h:mm:ss a', 'Sunday, February 14th 2010, 3:25:50 pm'], - ['ddd, hA', 'Sun, 3PM'], - ['M Mo MM MMMM MMM', '2 2nd 02 February Feb'], - ['YYYY YY', '2010 10'], - ['D Do DD', '14 14th 14'], - ['d do dddd ddd dd', '0 0th Sunday Sun Su'], - ['DDD DDDo DDDD', '45 45th 045'], - ['w wo ww', '6 6th 06'], - ['h hh', '3 03'], - ['H HH', '15 15'], - ['m mm', '25 25'], - ['s ss', '50 50'], - ['a A', 'pm PM'], - ['[the] DDDo [day of the year]', 'the 45th day of the year'], - ['LTS', '15:25:50'], - ['L', '14-02-2010'], - ['LL', '14 February 2010'], - ['LLL', '14 February 2010 15:25'], - ['LLLL', 'Sunday 14 February 2010 15:25'], - ['l', '14-2-2010'], - ['ll', '14 Feb 2010'], - ['lll', '14 Feb 2010 15:25'], - ['llll', 'Sun 14 Feb 2010 15:25'] - ], - b = moment(new Date(2010, 1, 14, 15, 25, 50, 125)), - i; - for (i = 0; i < a.length; i++) { - assert.equal(b.format(a[i][0]), a[i][1], a[i][0] + ' ---> ' + a[i][1]); - } -}); - -test('format ordinal', function (assert) { - assert.equal(moment([2011, 0, 1]).format('DDDo'), '1st', '1st'); - assert.equal(moment([2011, 0, 2]).format('DDDo'), '2nd', '2nd'); - assert.equal(moment([2011, 0, 3]).format('DDDo'), '3rd', '3rd'); - assert.equal(moment([2011, 0, 4]).format('DDDo'), '4th', '4th'); - assert.equal(moment([2011, 0, 5]).format('DDDo'), '5th', '5th'); - assert.equal(moment([2011, 0, 6]).format('DDDo'), '6th', '6th'); - assert.equal(moment([2011, 0, 7]).format('DDDo'), '7th', '7th'); - assert.equal(moment([2011, 0, 8]).format('DDDo'), '8th', '8th'); - assert.equal(moment([2011, 0, 9]).format('DDDo'), '9th', '9th'); - assert.equal(moment([2011, 0, 10]).format('DDDo'), '10th', '10th'); - - assert.equal(moment([2011, 0, 11]).format('DDDo'), '11th', '11th'); - assert.equal(moment([2011, 0, 12]).format('DDDo'), '12th', '12th'); - assert.equal(moment([2011, 0, 13]).format('DDDo'), '13th', '13th'); - assert.equal(moment([2011, 0, 14]).format('DDDo'), '14th', '14th'); - assert.equal(moment([2011, 0, 15]).format('DDDo'), '15th', '15th'); - assert.equal(moment([2011, 0, 16]).format('DDDo'), '16th', '16th'); - assert.equal(moment([2011, 0, 17]).format('DDDo'), '17th', '17th'); - assert.equal(moment([2011, 0, 18]).format('DDDo'), '18th', '18th'); - assert.equal(moment([2011, 0, 19]).format('DDDo'), '19th', '19th'); - assert.equal(moment([2011, 0, 20]).format('DDDo'), '20th', '20th'); - - assert.equal(moment([2011, 0, 21]).format('DDDo'), '21st', '21st'); - assert.equal(moment([2011, 0, 22]).format('DDDo'), '22nd', '22nd'); - assert.equal(moment([2011, 0, 23]).format('DDDo'), '23rd', '23rd'); - assert.equal(moment([2011, 0, 24]).format('DDDo'), '24th', '24th'); - assert.equal(moment([2011, 0, 25]).format('DDDo'), '25th', '25th'); - assert.equal(moment([2011, 0, 26]).format('DDDo'), '26th', '26th'); - assert.equal(moment([2011, 0, 27]).format('DDDo'), '27th', '27th'); - assert.equal(moment([2011, 0, 28]).format('DDDo'), '28th', '28th'); - assert.equal(moment([2011, 0, 29]).format('DDDo'), '29th', '29th'); - assert.equal(moment([2011, 0, 30]).format('DDDo'), '30th', '30th'); - - assert.equal(moment([2011, 0, 31]).format('DDDo'), '31st', '31st'); -}); - -test('format month', function (assert) { - var expected = 'January Jan_February Feb_March Mar_April Apr_May May_June Jun_July Jul_August Aug_September Sep_October Oct_November Nov_December Dec'.split('_'), i; - for (i = 0; i < expected.length; i++) { - assert.equal(moment([2011, i, 1]).format('MMMM MMM'), expected[i], expected[i]); - } -}); - -test('format week', function (assert) { - var expected = 'Sunday Sun Su_Monday Mon Mo_Tuesday Tue Tu_Wednesday Wed We_Thursday Thu Th_Friday Fri Fr_Saturday Sat Sa'.split('_'), i; - for (i = 0; i < expected.length; i++) { - assert.equal(moment([2011, 0, 2 + i]).format('dddd ddd dd'), expected[i], expected[i]); - } -}); - -test('from', function (assert) { - var start = moment([2007, 1, 28]); - assert.equal(start.from(moment([2007, 1, 28]).add({s: 44}), true), 'a few seconds', '44 seconds = a few seconds'); - assert.equal(start.from(moment([2007, 1, 28]).add({s: 45}), true), 'a minute', '45 seconds = a minute'); - assert.equal(start.from(moment([2007, 1, 28]).add({s: 89}), true), 'a minute', '89 seconds = a minute'); - assert.equal(start.from(moment([2007, 1, 28]).add({s: 90}), true), '2 minutes', '90 seconds = 2 minutes'); - assert.equal(start.from(moment([2007, 1, 28]).add({m: 44}), true), '44 minutes', '44 minutes = 44 minutes'); - assert.equal(start.from(moment([2007, 1, 28]).add({m: 45}), true), 'an hour', '45 minutes = an hour'); - assert.equal(start.from(moment([2007, 1, 28]).add({m: 89}), true), 'an hour', '89 minutes = an hour'); - assert.equal(start.from(moment([2007, 1, 28]).add({m: 90}), true), '2 hours', '90 minutes = 2 hours'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 5}), true), '5 hours', '5 hours = 5 hours'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 21}), true), '21 hours', '21 hours = 21 hours'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 22}), true), 'a day', '22 hours = a day'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 35}), true), 'a day', '35 hours = a day'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 36}), true), '2 days', '36 hours = 2 days'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 1}), true), 'a day', '1 day = a day'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 5}), true), '5 days', '5 days = 5 days'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 25}), true), '25 days', '25 days = 25 days'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 26}), true), 'a month', '26 days = a month'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 30}), true), 'a month', '30 days = a month'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 43}), true), 'a month', '43 days = a month'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 46}), true), '2 months', '46 days = 2 months'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 74}), true), '2 months', '75 days = 2 months'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 76}), true), '3 months', '76 days = 3 months'); - assert.equal(start.from(moment([2007, 1, 28]).add({M: 1}), true), 'a month', '1 month = a month'); - assert.equal(start.from(moment([2007, 1, 28]).add({M: 5}), true), '5 months', '5 months = 5 months'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 345}), true), 'a year', '345 days = a year'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 548}), true), '2 years', '548 days = 2 years'); - assert.equal(start.from(moment([2007, 1, 28]).add({y: 1}), true), 'a year', '1 year = a year'); - assert.equal(start.from(moment([2007, 1, 28]).add({y: 5}), true), '5 years', '5 years = 5 years'); -}); - -test('suffix', function (assert) { - assert.equal(moment(30000).from(0), 'in a few seconds', 'prefix'); - assert.equal(moment(0).from(30000), 'a few seconds ago', 'suffix'); -}); - -test('now from now', function (assert) { - assert.equal(moment().fromNow(), 'a few seconds ago', 'now from now should display as in the past'); -}); - -test('fromNow', function (assert) { - assert.equal(moment().add({s: 30}).fromNow(), 'in a few seconds', 'in a few seconds'); - assert.equal(moment().add({d: 5}).fromNow(), 'in 5 days', 'in 5 days'); -}); - -test('calendar day', function (assert) { - var a = moment().hours(12).minutes(0).seconds(0); - - assert.equal(moment(a).calendar(), 'Today at 12:00', 'today at the same time'); - assert.equal(moment(a).add({m: 25}).calendar(), 'Today at 12:25', 'Now plus 25 min'); - assert.equal(moment(a).add({h: 1}).calendar(), 'Today at 13:00', 'Now plus 1 hour'); - assert.equal(moment(a).add({d: 1}).calendar(), 'Tomorrow at 12:00', 'tomorrow at the same time'); - assert.equal(moment(a).subtract({h: 1}).calendar(), 'Today at 11:00', 'Now minus 1 hour'); - assert.equal(moment(a).subtract({d: 1}).calendar(), 'Yesterday at 12:00', 'yesterday at the same time'); -}); - -test('calendar next week', function (assert) { - var i, m; - for (i = 2; i < 7; i++) { - m = moment().add({d: i}); - assert.equal(m.calendar(), m.format('dddd [at] LT'), 'Today + ' + i + ' days current time'); - m.hours(0).minutes(0).seconds(0).milliseconds(0); - assert.equal(m.calendar(), m.format('dddd [at] LT'), 'Today + ' + i + ' days beginning of day'); - m.hours(23).minutes(59).seconds(59).milliseconds(999); - assert.equal(m.calendar(), m.format('dddd [at] LT'), 'Today + ' + i + ' days end of day'); - } -}); - -test('calendar last week', function (assert) { - var i, m; - - for (i = 2; i < 7; i++) { - m = moment().subtract({d: i}); - assert.equal(m.calendar(), m.format('[Last] dddd [at] LT'), 'Today - ' + i + ' days current time'); - m.hours(0).minutes(0).seconds(0).milliseconds(0); - assert.equal(m.calendar(), m.format('[Last] dddd [at] LT'), 'Today - ' + i + ' days beginning of day'); - m.hours(23).minutes(59).seconds(59).milliseconds(999); - assert.equal(m.calendar(), m.format('[Last] dddd [at] LT'), 'Today - ' + i + ' days end of day'); - } -}); - -test('calendar all else', function (assert) { - var weeksAgo = moment().subtract({w: 1}), - weeksFromNow = moment().add({w: 1}); - - assert.equal(weeksAgo.calendar(), weeksAgo.format('L'), '1 week ago'); - assert.equal(weeksFromNow.calendar(), weeksFromNow.format('L'), 'in 1 week'); - - weeksAgo = moment().subtract({w: 2}); - weeksFromNow = moment().add({w: 2}); - - assert.equal(weeksAgo.calendar(), weeksAgo.format('L'), '2 weeks ago'); - assert.equal(weeksFromNow.calendar(), weeksFromNow.format('L'), 'in 2 weeks'); -}); - -test('weeks year starting sunday formatted', function (assert) { - assert.equal(moment([2012, 0, 1]).format('w ww wo'), '52 52 52nd', 'Jan 1 2012 should be week 52'); - assert.equal(moment([2012, 0, 2]).format('w ww wo'), '1 01 1st', 'Jan 2 2012 should be week 1'); - assert.equal(moment([2012, 0, 8]).format('w ww wo'), '1 01 1st', 'Jan 8 2012 should be week 1'); - assert.equal(moment([2012, 0, 9]).format('w ww wo'), '2 02 2nd', 'Jan 9 2012 should be week 2'); - assert.equal(moment([2012, 0, 15]).format('w ww wo'), '2 02 2nd', 'Jan 15 2012 should be week 2'); -}); - -}))); - - -;(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' - && typeof require === 'function' ? factory(require('../../moment')) : - typeof define === 'function' && define.amd ? define(['../../moment'], factory) : - factory(global.moment) -}(this, (function (moment) { 'use strict'; - -function each(array, callback) { - var i; - for (i = 0; i < array.length; i++) { - callback(array[i], i, array); - } -} - -function objectKeys(obj) { - if (Object.keys) { - return Object.keys(obj); - } else { - // IE8 - var res = [], i; - for (i in obj) { - if (obj.hasOwnProperty(i)) { - res.push(i); - } - } - return res; - } -} - -// Pick the first defined of two or three arguments. - -function defineCommonLocaleTests(locale, options) { - test('lenient day of month ordinal parsing', function (assert) { - var i, ordinalStr, testMoment; - for (i = 1; i <= 31; ++i) { - ordinalStr = moment([2014, 0, i]).format('YYYY MM Do'); - testMoment = moment(ordinalStr, 'YYYY MM Do'); - assert.equal(testMoment.year(), 2014, - 'lenient day of month ordinal parsing ' + i + ' year check'); - assert.equal(testMoment.month(), 0, - 'lenient day of month ordinal parsing ' + i + ' month check'); - assert.equal(testMoment.date(), i, - 'lenient day of month ordinal parsing ' + i + ' date check'); - } - }); - - test('lenient day of month ordinal parsing of number', function (assert) { - var i, testMoment; - for (i = 1; i <= 31; ++i) { - testMoment = moment('2014 01 ' + i, 'YYYY MM Do'); - assert.equal(testMoment.year(), 2014, - 'lenient day of month ordinal parsing of number ' + i + ' year check'); - assert.equal(testMoment.month(), 0, - 'lenient day of month ordinal parsing of number ' + i + ' month check'); - assert.equal(testMoment.date(), i, - 'lenient day of month ordinal parsing of number ' + i + ' date check'); - } - }); - - test('strict day of month ordinal parsing', function (assert) { - var i, ordinalStr, testMoment; - for (i = 1; i <= 31; ++i) { - ordinalStr = moment([2014, 0, i]).format('YYYY MM Do'); - testMoment = moment(ordinalStr, 'YYYY MM Do', true); - assert.ok(testMoment.isValid(), 'strict day of month ordinal parsing ' + i); - } - }); - - test('meridiem invariant', function (assert) { - var h, m, t1, t2; - for (h = 0; h < 24; ++h) { - for (m = 0; m < 60; m += 15) { - t1 = moment.utc([2000, 0, 1, h, m]); - t2 = moment.utc(t1.format('A h:mm'), 'A h:mm'); - assert.equal(t2.format('HH:mm'), t1.format('HH:mm'), - 'meridiem at ' + t1.format('HH:mm')); - } - } - }); - - test('date format correctness', function (assert) { - var data, tokens; - data = moment.localeData()._longDateFormat; - tokens = objectKeys(data); - each(tokens, function (srchToken) { - // Check each format string to make sure it does not contain any - // tokens that need to be expanded. - each(tokens, function (baseToken) { - // strip escaped sequences - var format = data[baseToken].replace(/(\[[^\]]*\])/g, ''); - assert.equal(false, !!~format.indexOf(srchToken), - 'contains ' + srchToken + ' in ' + baseToken); - }); - }); - }); - - test('month parsing correctness', function (assert) { - var i, m; - - if (locale === 'tr') { - // I can't fix it :( - expect(0); - return; - } - function tester(format) { - var r; - r = moment(m.format(format), format); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format); - r = moment(m.format(format).toLocaleUpperCase(), format); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' upper'); - r = moment(m.format(format).toLocaleLowerCase(), format); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' lower'); - - r = moment(m.format(format), format, true); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' strict'); - r = moment(m.format(format).toLocaleUpperCase(), format, true); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' upper strict'); - r = moment(m.format(format).toLocaleLowerCase(), format, true); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' lower strict'); - } - - for (i = 0; i < 12; ++i) { - m = moment([2015, i, 15, 18]); - tester('MMM'); - tester('MMM.'); - tester('MMMM'); - tester('MMMM.'); - } - }); - - test('weekday parsing correctness', function (assert) { - var i, m; - - if (locale === 'tr' || locale === 'az' || locale === 'ro') { - // tr, az: There is a lower-case letter (ı), that converted to - // upper then lower changes to i - // ro: there is the letter ț which behaves weird under IE8 - expect(0); - return; - } - function tester(format) { - var r, baseMsg = 'weekday ' + m.weekday() + ' fmt ' + format + ' ' + m.toISOString(); - r = moment(m.format(format), format); - assert.equal(r.weekday(), m.weekday(), baseMsg); - r = moment(m.format(format).toLocaleUpperCase(), format); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' upper'); - r = moment(m.format(format).toLocaleLowerCase(), format); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' lower'); - - r = moment(m.format(format), format, true); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' strict'); - r = moment(m.format(format).toLocaleUpperCase(), format, true); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' upper strict'); - r = moment(m.format(format).toLocaleLowerCase(), format, true); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' lower strict'); - } - - for (i = 0; i < 7; ++i) { - m = moment.utc([2015, 0, i + 1, 18]); - tester('dd'); - tester('ddd'); - tester('dddd'); - } - }); - - test('valid localeData', function (assert) { - assert.equal(moment().localeData().months().length, 12, 'months should return 12 months'); - assert.equal(moment().localeData().monthsShort().length, 12, 'monthsShort should return 12 months'); - assert.equal(moment().localeData().weekdays().length, 7, 'weekdays should return 7 days'); - assert.equal(moment().localeData().weekdaysShort().length, 7, 'weekdaysShort should return 7 days'); - assert.equal(moment().localeData().weekdaysMin().length, 7, 'monthsShort should return 7 days'); - }); -} - -function setupDeprecationHandler(test, moment$$1, scope) { - test._expectedDeprecations = null; - test._observedDeprecations = null; - test._oldSupress = moment$$1.suppressDeprecationWarnings; - moment$$1.suppressDeprecationWarnings = true; - test.expectedDeprecations = function () { - test._expectedDeprecations = arguments; - test._observedDeprecations = []; - }; - moment$$1.deprecationHandler = function (name, msg) { - var deprecationId = matchedDeprecation(name, msg, test._expectedDeprecations); - if (deprecationId === -1) { - throw new Error('Unexpected deprecation thrown name=' + - name + ' msg=' + msg); - } - test._observedDeprecations[deprecationId] = 1; - }; -} - -function teardownDeprecationHandler(test, moment$$1, scope) { - moment$$1.suppressDeprecationWarnings = test._oldSupress; - - if (test._expectedDeprecations != null) { - var missedDeprecations = []; - each(test._expectedDeprecations, function (deprecationPattern, id) { - if (test._observedDeprecations[id] !== 1) { - missedDeprecations.push(deprecationPattern); - } - }); - if (missedDeprecations.length !== 0) { - throw new Error('Expected deprecation warnings did not happen: ' + - missedDeprecations.join(' ')); - } - } -} - -function matchedDeprecation(name, msg, deprecations) { - if (deprecations == null) { - return -1; - } - for (var i = 0; i < deprecations.length; ++i) { - if (name != null && name === deprecations[i]) { - return i; - } - if (msg != null && msg.substring(0, deprecations[i].length) === deprecations[i]) { - return i; - } - } - return -1; -} - -/*global QUnit:false*/ - -var test = QUnit.test; - -var expect = QUnit.expect; - - - -function localeModule (name, lifecycle) { - QUnit.module('locale:' + name, { - setup : function () { - moment.locale(name); - moment.createFromInputFallback = function (config) { - throw new Error('input not handled by moment: ' + config._i); - }; - setupDeprecationHandler(test, moment, 'locale'); - if (lifecycle && lifecycle.setup) { - lifecycle.setup(); - } - }, - teardown : function () { - moment.locale('en'); - teardownDeprecationHandler(test, moment, 'locale'); - if (lifecycle && lifecycle.teardown) { - lifecycle.teardown(); - } - } - }); - defineCommonLocaleTests(name, -1, -1); -} - -localeModule('en-nz'); - -test('parse', function (assert) { - var tests = 'January Jan_February Feb_March Mar_April Apr_May May_June Jun_July Jul_August Aug_September Sep_October Oct_November Nov_December Dec'.split('_'), i; - function equalTest(input, mmm, i) { - assert.equal(moment(input, mmm).month(), i, input + ' should be month ' + (i + 1)); - } - for (i = 0; i < 12; i++) { - tests[i] = tests[i].split(' '); - equalTest(tests[i][0], 'MMM', i); - equalTest(tests[i][1], 'MMM', i); - equalTest(tests[i][0], 'MMMM', i); - equalTest(tests[i][1], 'MMMM', i); - equalTest(tests[i][0].toLocaleLowerCase(), 'MMMM', i); - equalTest(tests[i][1].toLocaleLowerCase(), 'MMMM', i); - equalTest(tests[i][0].toLocaleUpperCase(), 'MMMM', i); - equalTest(tests[i][1].toLocaleUpperCase(), 'MMMM', i); - } -}); - -test('format', function (assert) { - var a = [ - ['dddd, MMMM Do YYYY, h:mm:ss a', 'Sunday, February 14th 2010, 3:25:50 pm'], - ['ddd, hA', 'Sun, 3PM'], - ['M Mo MM MMMM MMM', '2 2nd 02 February Feb'], - ['YYYY YY', '2010 10'], - ['D Do DD', '14 14th 14'], - ['d do dddd ddd dd', '0 0th Sunday Sun Su'], - ['DDD DDDo DDDD', '45 45th 045'], - ['w wo ww', '6 6th 06'], - ['h hh', '3 03'], - ['H HH', '15 15'], - ['m mm', '25 25'], - ['s ss', '50 50'], - ['a A', 'pm PM'], - ['[the] DDDo [day of the year]', 'the 45th day of the year'], - ['LTS', '3:25:50 PM'], - ['L', '14/02/2010'], - ['LL', '14 February 2010'], - ['LLL', '14 February 2010 3:25 PM'], - ['LLLL', 'Sunday, 14 February 2010 3:25 PM'], - ['l', '14/2/2010'], - ['ll', '14 Feb 2010'], - ['lll', '14 Feb 2010 3:25 PM'], - ['llll', 'Sun, 14 Feb 2010 3:25 PM'] - ], - b = moment(new Date(2010, 1, 14, 15, 25, 50, 125)), - i; - for (i = 0; i < a.length; i++) { - assert.equal(b.format(a[i][0]), a[i][1], a[i][0] + ' ---> ' + a[i][1]); - } -}); - -test('format ordinal', function (assert) { - assert.equal(moment([2011, 0, 1]).format('DDDo'), '1st', '1st'); - assert.equal(moment([2011, 0, 2]).format('DDDo'), '2nd', '2nd'); - assert.equal(moment([2011, 0, 3]).format('DDDo'), '3rd', '3rd'); - assert.equal(moment([2011, 0, 4]).format('DDDo'), '4th', '4th'); - assert.equal(moment([2011, 0, 5]).format('DDDo'), '5th', '5th'); - assert.equal(moment([2011, 0, 6]).format('DDDo'), '6th', '6th'); - assert.equal(moment([2011, 0, 7]).format('DDDo'), '7th', '7th'); - assert.equal(moment([2011, 0, 8]).format('DDDo'), '8th', '8th'); - assert.equal(moment([2011, 0, 9]).format('DDDo'), '9th', '9th'); - assert.equal(moment([2011, 0, 10]).format('DDDo'), '10th', '10th'); - - assert.equal(moment([2011, 0, 11]).format('DDDo'), '11th', '11th'); - assert.equal(moment([2011, 0, 12]).format('DDDo'), '12th', '12th'); - assert.equal(moment([2011, 0, 13]).format('DDDo'), '13th', '13th'); - assert.equal(moment([2011, 0, 14]).format('DDDo'), '14th', '14th'); - assert.equal(moment([2011, 0, 15]).format('DDDo'), '15th', '15th'); - assert.equal(moment([2011, 0, 16]).format('DDDo'), '16th', '16th'); - assert.equal(moment([2011, 0, 17]).format('DDDo'), '17th', '17th'); - assert.equal(moment([2011, 0, 18]).format('DDDo'), '18th', '18th'); - assert.equal(moment([2011, 0, 19]).format('DDDo'), '19th', '19th'); - assert.equal(moment([2011, 0, 20]).format('DDDo'), '20th', '20th'); - - assert.equal(moment([2011, 0, 21]).format('DDDo'), '21st', '21st'); - assert.equal(moment([2011, 0, 22]).format('DDDo'), '22nd', '22nd'); - assert.equal(moment([2011, 0, 23]).format('DDDo'), '23rd', '23rd'); - assert.equal(moment([2011, 0, 24]).format('DDDo'), '24th', '24th'); - assert.equal(moment([2011, 0, 25]).format('DDDo'), '25th', '25th'); - assert.equal(moment([2011, 0, 26]).format('DDDo'), '26th', '26th'); - assert.equal(moment([2011, 0, 27]).format('DDDo'), '27th', '27th'); - assert.equal(moment([2011, 0, 28]).format('DDDo'), '28th', '28th'); - assert.equal(moment([2011, 0, 29]).format('DDDo'), '29th', '29th'); - assert.equal(moment([2011, 0, 30]).format('DDDo'), '30th', '30th'); - - assert.equal(moment([2011, 0, 31]).format('DDDo'), '31st', '31st'); -}); - -test('format month', function (assert) { - var expected = 'January Jan_February Feb_March Mar_April Apr_May May_June Jun_July Jul_August Aug_September Sep_October Oct_November Nov_December Dec'.split('_'), i; - for (i = 0; i < expected.length; i++) { - assert.equal(moment([2011, i, 1]).format('MMMM MMM'), expected[i], expected[i]); - } -}); - -test('format week', function (assert) { - var expected = 'Sunday Sun Su_Monday Mon Mo_Tuesday Tue Tu_Wednesday Wed We_Thursday Thu Th_Friday Fri Fr_Saturday Sat Sa'.split('_'), i; - for (i = 0; i < expected.length; i++) { - assert.equal(moment([2011, 0, 2 + i]).format('dddd ddd dd'), expected[i], expected[i]); - } -}); - -test('from', function (assert) { - var start = moment([2007, 1, 28]); - assert.equal(start.from(moment([2007, 1, 28]).add({s: 44}), true), 'a few seconds', '44 seconds = a few seconds'); - assert.equal(start.from(moment([2007, 1, 28]).add({s: 45}), true), 'a minute', '45 seconds = a minute'); - assert.equal(start.from(moment([2007, 1, 28]).add({s: 89}), true), 'a minute', '89 seconds = a minute'); - assert.equal(start.from(moment([2007, 1, 28]).add({s: 90}), true), '2 minutes', '90 seconds = 2 minutes'); - assert.equal(start.from(moment([2007, 1, 28]).add({m: 44}), true), '44 minutes', '44 minutes = 44 minutes'); - assert.equal(start.from(moment([2007, 1, 28]).add({m: 45}), true), 'an hour', '45 minutes = an hour'); - assert.equal(start.from(moment([2007, 1, 28]).add({m: 89}), true), 'an hour', '89 minutes = an hour'); - assert.equal(start.from(moment([2007, 1, 28]).add({m: 90}), true), '2 hours', '90 minutes = 2 hours'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 5}), true), '5 hours', '5 hours = 5 hours'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 21}), true), '21 hours', '21 hours = 21 hours'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 22}), true), 'a day', '22 hours = a day'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 35}), true), 'a day', '35 hours = a day'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 36}), true), '2 days', '36 hours = 2 days'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 1}), true), 'a day', '1 day = a day'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 5}), true), '5 days', '5 days = 5 days'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 25}), true), '25 days', '25 days = 25 days'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 26}), true), 'a month', '26 days = a month'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 30}), true), 'a month', '30 days = a month'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 43}), true), 'a month', '43 days = a month'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 46}), true), '2 months', '46 days = 2 months'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 74}), true), '2 months', '75 days = 2 months'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 76}), true), '3 months', '76 days = 3 months'); - assert.equal(start.from(moment([2007, 1, 28]).add({M: 1}), true), 'a month', '1 month = a month'); - assert.equal(start.from(moment([2007, 1, 28]).add({M: 5}), true), '5 months', '5 months = 5 months'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 345}), true), 'a year', '345 days = a year'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 548}), true), '2 years', '548 days = 2 years'); - assert.equal(start.from(moment([2007, 1, 28]).add({y: 1}), true), 'a year', '1 year = a year'); - assert.equal(start.from(moment([2007, 1, 28]).add({y: 5}), true), '5 years', '5 years = 5 years'); -}); - -test('suffix', function (assert) { - assert.equal(moment(30000).from(0), 'in a few seconds', 'prefix'); - assert.equal(moment(0).from(30000), 'a few seconds ago', 'suffix'); -}); - -test('now from now', function (assert) { - assert.equal(moment().fromNow(), 'a few seconds ago', 'now from now should display as in the past'); -}); - -test('fromNow', function (assert) { - assert.equal(moment().add({s: 30}).fromNow(), 'in a few seconds', 'in a few seconds'); - assert.equal(moment().add({d: 5}).fromNow(), 'in 5 days', 'in 5 days'); -}); - -test('calendar day', function (assert) { - var a = moment().hours(12).minutes(0).seconds(0); - - assert.equal(moment(a).calendar(), 'Today at 12:00 PM', 'today at the same time'); - assert.equal(moment(a).add({m: 25}).calendar(), 'Today at 12:25 PM', 'Now plus 25 min'); - assert.equal(moment(a).add({h: 1}).calendar(), 'Today at 1:00 PM', 'Now plus 1 hour'); - assert.equal(moment(a).add({d: 1}).calendar(), 'Tomorrow at 12:00 PM', 'tomorrow at the same time'); - assert.equal(moment(a).subtract({h: 1}).calendar(), 'Today at 11:00 AM', 'Now minus 1 hour'); - assert.equal(moment(a).subtract({d: 1}).calendar(), 'Yesterday at 12:00 PM', 'yesterday at the same time'); -}); - -test('calendar next week', function (assert) { - var i, m; - for (i = 2; i < 7; i++) { - m = moment().add({d: i}); - assert.equal(m.calendar(), m.format('dddd [at] LT'), 'Today + ' + i + ' days current time'); - m.hours(0).minutes(0).seconds(0).milliseconds(0); - assert.equal(m.calendar(), m.format('dddd [at] LT'), 'Today + ' + i + ' days beginning of day'); - m.hours(23).minutes(59).seconds(59).milliseconds(999); - assert.equal(m.calendar(), m.format('dddd [at] LT'), 'Today + ' + i + ' days end of day'); - } -}); - -test('calendar last week', function (assert) { - var i, m; - - for (i = 2; i < 7; i++) { - m = moment().subtract({d: i}); - assert.equal(m.calendar(), m.format('[Last] dddd [at] LT'), 'Today - ' + i + ' days current time'); - m.hours(0).minutes(0).seconds(0).milliseconds(0); - assert.equal(m.calendar(), m.format('[Last] dddd [at] LT'), 'Today - ' + i + ' days beginning of day'); - m.hours(23).minutes(59).seconds(59).milliseconds(999); - assert.equal(m.calendar(), m.format('[Last] dddd [at] LT'), 'Today - ' + i + ' days end of day'); - } -}); - -test('calendar all else', function (assert) { - var weeksAgo = moment().subtract({w: 1}), - weeksFromNow = moment().add({w: 1}); - - assert.equal(weeksAgo.calendar(), weeksAgo.format('L'), '1 week ago'); - assert.equal(weeksFromNow.calendar(), weeksFromNow.format('L'), 'in 1 week'); - - weeksAgo = moment().subtract({w: 2}); - weeksFromNow = moment().add({w: 2}); - - assert.equal(weeksAgo.calendar(), weeksAgo.format('L'), '2 weeks ago'); - assert.equal(weeksFromNow.calendar(), weeksFromNow.format('L'), 'in 2 weeks'); -}); - -test('weeks year starting sunday formatted', function (assert) { - assert.equal(moment([2012, 0, 1]).format('w ww wo'), '52 52 52nd', 'Jan 1 2012 should be week 52'); - assert.equal(moment([2012, 0, 2]).format('w ww wo'), '1 01 1st', 'Jan 2 2012 should be week 1'); - assert.equal(moment([2012, 0, 8]).format('w ww wo'), '1 01 1st', 'Jan 8 2012 should be week 1'); - assert.equal(moment([2012, 0, 9]).format('w ww wo'), '2 02 2nd', 'Jan 9 2012 should be week 2'); - assert.equal(moment([2012, 0, 15]).format('w ww wo'), '2 02 2nd', 'Jan 15 2012 should be week 2'); -}); - -}))); - - -;(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' - && typeof require === 'function' ? factory(require('../../moment')) : - typeof define === 'function' && define.amd ? define(['../../moment'], factory) : - factory(global.moment) -}(this, (function (moment) { 'use strict'; - -function each(array, callback) { - var i; - for (i = 0; i < array.length; i++) { - callback(array[i], i, array); - } -} - -function objectKeys(obj) { - if (Object.keys) { - return Object.keys(obj); - } else { - // IE8 - var res = [], i; - for (i in obj) { - if (obj.hasOwnProperty(i)) { - res.push(i); - } - } - return res; - } -} - -// Pick the first defined of two or three arguments. - -function defineCommonLocaleTests(locale, options) { - test('lenient day of month ordinal parsing', function (assert) { - var i, ordinalStr, testMoment; - for (i = 1; i <= 31; ++i) { - ordinalStr = moment([2014, 0, i]).format('YYYY MM Do'); - testMoment = moment(ordinalStr, 'YYYY MM Do'); - assert.equal(testMoment.year(), 2014, - 'lenient day of month ordinal parsing ' + i + ' year check'); - assert.equal(testMoment.month(), 0, - 'lenient day of month ordinal parsing ' + i + ' month check'); - assert.equal(testMoment.date(), i, - 'lenient day of month ordinal parsing ' + i + ' date check'); - } - }); - - test('lenient day of month ordinal parsing of number', function (assert) { - var i, testMoment; - for (i = 1; i <= 31; ++i) { - testMoment = moment('2014 01 ' + i, 'YYYY MM Do'); - assert.equal(testMoment.year(), 2014, - 'lenient day of month ordinal parsing of number ' + i + ' year check'); - assert.equal(testMoment.month(), 0, - 'lenient day of month ordinal parsing of number ' + i + ' month check'); - assert.equal(testMoment.date(), i, - 'lenient day of month ordinal parsing of number ' + i + ' date check'); - } - }); - - test('strict day of month ordinal parsing', function (assert) { - var i, ordinalStr, testMoment; - for (i = 1; i <= 31; ++i) { - ordinalStr = moment([2014, 0, i]).format('YYYY MM Do'); - testMoment = moment(ordinalStr, 'YYYY MM Do', true); - assert.ok(testMoment.isValid(), 'strict day of month ordinal parsing ' + i); - } - }); - - test('meridiem invariant', function (assert) { - var h, m, t1, t2; - for (h = 0; h < 24; ++h) { - for (m = 0; m < 60; m += 15) { - t1 = moment.utc([2000, 0, 1, h, m]); - t2 = moment.utc(t1.format('A h:mm'), 'A h:mm'); - assert.equal(t2.format('HH:mm'), t1.format('HH:mm'), - 'meridiem at ' + t1.format('HH:mm')); - } - } - }); - - test('date format correctness', function (assert) { - var data, tokens; - data = moment.localeData()._longDateFormat; - tokens = objectKeys(data); - each(tokens, function (srchToken) { - // Check each format string to make sure it does not contain any - // tokens that need to be expanded. - each(tokens, function (baseToken) { - // strip escaped sequences - var format = data[baseToken].replace(/(\[[^\]]*\])/g, ''); - assert.equal(false, !!~format.indexOf(srchToken), - 'contains ' + srchToken + ' in ' + baseToken); - }); - }); - }); - - test('month parsing correctness', function (assert) { - var i, m; - - if (locale === 'tr') { - // I can't fix it :( - expect(0); - return; - } - function tester(format) { - var r; - r = moment(m.format(format), format); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format); - r = moment(m.format(format).toLocaleUpperCase(), format); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' upper'); - r = moment(m.format(format).toLocaleLowerCase(), format); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' lower'); - - r = moment(m.format(format), format, true); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' strict'); - r = moment(m.format(format).toLocaleUpperCase(), format, true); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' upper strict'); - r = moment(m.format(format).toLocaleLowerCase(), format, true); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' lower strict'); - } - - for (i = 0; i < 12; ++i) { - m = moment([2015, i, 15, 18]); - tester('MMM'); - tester('MMM.'); - tester('MMMM'); - tester('MMMM.'); - } - }); - - test('weekday parsing correctness', function (assert) { - var i, m; - - if (locale === 'tr' || locale === 'az' || locale === 'ro') { - // tr, az: There is a lower-case letter (ı), that converted to - // upper then lower changes to i - // ro: there is the letter ț which behaves weird under IE8 - expect(0); - return; - } - function tester(format) { - var r, baseMsg = 'weekday ' + m.weekday() + ' fmt ' + format + ' ' + m.toISOString(); - r = moment(m.format(format), format); - assert.equal(r.weekday(), m.weekday(), baseMsg); - r = moment(m.format(format).toLocaleUpperCase(), format); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' upper'); - r = moment(m.format(format).toLocaleLowerCase(), format); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' lower'); - - r = moment(m.format(format), format, true); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' strict'); - r = moment(m.format(format).toLocaleUpperCase(), format, true); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' upper strict'); - r = moment(m.format(format).toLocaleLowerCase(), format, true); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' lower strict'); - } - - for (i = 0; i < 7; ++i) { - m = moment.utc([2015, 0, i + 1, 18]); - tester('dd'); - tester('ddd'); - tester('dddd'); - } - }); - - test('valid localeData', function (assert) { - assert.equal(moment().localeData().months().length, 12, 'months should return 12 months'); - assert.equal(moment().localeData().monthsShort().length, 12, 'monthsShort should return 12 months'); - assert.equal(moment().localeData().weekdays().length, 7, 'weekdays should return 7 days'); - assert.equal(moment().localeData().weekdaysShort().length, 7, 'weekdaysShort should return 7 days'); - assert.equal(moment().localeData().weekdaysMin().length, 7, 'monthsShort should return 7 days'); - }); -} - -function setupDeprecationHandler(test, moment$$1, scope) { - test._expectedDeprecations = null; - test._observedDeprecations = null; - test._oldSupress = moment$$1.suppressDeprecationWarnings; - moment$$1.suppressDeprecationWarnings = true; - test.expectedDeprecations = function () { - test._expectedDeprecations = arguments; - test._observedDeprecations = []; - }; - moment$$1.deprecationHandler = function (name, msg) { - var deprecationId = matchedDeprecation(name, msg, test._expectedDeprecations); - if (deprecationId === -1) { - throw new Error('Unexpected deprecation thrown name=' + - name + ' msg=' + msg); - } - test._observedDeprecations[deprecationId] = 1; - }; -} - -function teardownDeprecationHandler(test, moment$$1, scope) { - moment$$1.suppressDeprecationWarnings = test._oldSupress; - - if (test._expectedDeprecations != null) { - var missedDeprecations = []; - each(test._expectedDeprecations, function (deprecationPattern, id) { - if (test._observedDeprecations[id] !== 1) { - missedDeprecations.push(deprecationPattern); - } - }); - if (missedDeprecations.length !== 0) { - throw new Error('Expected deprecation warnings did not happen: ' + - missedDeprecations.join(' ')); - } - } -} - -function matchedDeprecation(name, msg, deprecations) { - if (deprecations == null) { - return -1; - } - for (var i = 0; i < deprecations.length; ++i) { - if (name != null && name === deprecations[i]) { - return i; - } - if (msg != null && msg.substring(0, deprecations[i].length) === deprecations[i]) { - return i; - } - } - return -1; -} - -/*global QUnit:false*/ - -var test = QUnit.test; - -var expect = QUnit.expect; - - - -function localeModule (name, lifecycle) { - QUnit.module('locale:' + name, { - setup : function () { - moment.locale(name); - moment.createFromInputFallback = function (config) { - throw new Error('input not handled by moment: ' + config._i); - }; - setupDeprecationHandler(test, moment, 'locale'); - if (lifecycle && lifecycle.setup) { - lifecycle.setup(); - } - }, - teardown : function () { - moment.locale('en'); - teardownDeprecationHandler(test, moment, 'locale'); - if (lifecycle && lifecycle.teardown) { - lifecycle.teardown(); - } - } - }); - defineCommonLocaleTests(name, -1, -1); -} - -localeModule('en'); - -test('parse', function (assert) { - var i, - tests = 'January Jan_February Feb_March Mar_April Apr_May May_June Jun_July Jul_August Aug_September Sep_October Oct_November Nov_December Dec'.split('_'); - - function equalTest(input, mmm, i) { - assert.equal(moment(input, mmm).month(), i, input + ' should be month ' + (i + 1)); - } - - for (i = 0; i < 12; i++) { - tests[i] = tests[i].split(' '); - equalTest(tests[i][0], 'MMM', i); - equalTest(tests[i][1], 'MMM', i); - equalTest(tests[i][0], 'MMMM', i); - equalTest(tests[i][1], 'MMMM', i); - equalTest(tests[i][0].toLocaleLowerCase(), 'MMMM', i); - equalTest(tests[i][1].toLocaleLowerCase(), 'MMMM', i); - equalTest(tests[i][0].toLocaleUpperCase(), 'MMMM', i); - equalTest(tests[i][1].toLocaleUpperCase(), 'MMMM', i); - } -}); - -test('format', function (assert) { - var a = [ - ['dddd, MMMM Do YYYY, h:mm:ss a', 'Sunday, February 14th 2010, 3:25:50 pm'], - ['ddd, hA', 'Sun, 3PM'], - ['M Mo MM MMMM MMM', '2 2nd 02 February Feb'], - ['YYYY YY', '2010 10'], - ['D Do DD', '14 14th 14'], - ['d do dddd ddd dd', '0 0th Sunday Sun Su'], - ['DDD DDDo DDDD', '45 45th 045'], - ['w wo ww', '8 8th 08'], - ['h hh', '3 03'], - ['H HH', '15 15'], - ['m mm', '25 25'], - ['s ss', '50 50'], - ['a A', 'pm PM'], - ['[the] DDDo [day of the year]', 'the 45th day of the year'], - ['LTS', '3:25:50 PM'], - ['L', '02/14/2010'], - ['LL', 'February 14, 2010'], - ['LLL', 'February 14, 2010 3:25 PM'], - ['LLLL', 'Sunday, February 14, 2010 3:25 PM'], - ['l', '2/14/2010'], - ['ll', 'Feb 14, 2010'], - ['lll', 'Feb 14, 2010 3:25 PM'], - ['llll', 'Sun, Feb 14, 2010 3:25 PM'] - ], - b = moment(new Date(2010, 1, 14, 15, 25, 50, 125)), - i; - - for (i = 0; i < a.length; i++) { - assert.equal(b.format(a[i][0]), a[i][1], a[i][0] + ' ---> ' + a[i][1]); - } -}); - -test('format ordinal', function (assert) { - assert.equal(moment([2011, 0, 1]).format('DDDo'), '1st', '1st'); - assert.equal(moment([2011, 0, 2]).format('DDDo'), '2nd', '2nd'); - assert.equal(moment([2011, 0, 3]).format('DDDo'), '3rd', '3rd'); - assert.equal(moment([2011, 0, 4]).format('DDDo'), '4th', '4th'); - assert.equal(moment([2011, 0, 5]).format('DDDo'), '5th', '5th'); - assert.equal(moment([2011, 0, 6]).format('DDDo'), '6th', '6th'); - assert.equal(moment([2011, 0, 7]).format('DDDo'), '7th', '7th'); - assert.equal(moment([2011, 0, 8]).format('DDDo'), '8th', '8th'); - assert.equal(moment([2011, 0, 9]).format('DDDo'), '9th', '9th'); - assert.equal(moment([2011, 0, 10]).format('DDDo'), '10th', '10th'); - - assert.equal(moment([2011, 0, 11]).format('DDDo'), '11th', '11th'); - assert.equal(moment([2011, 0, 12]).format('DDDo'), '12th', '12th'); - assert.equal(moment([2011, 0, 13]).format('DDDo'), '13th', '13th'); - assert.equal(moment([2011, 0, 14]).format('DDDo'), '14th', '14th'); - assert.equal(moment([2011, 0, 15]).format('DDDo'), '15th', '15th'); - assert.equal(moment([2011, 0, 16]).format('DDDo'), '16th', '16th'); - assert.equal(moment([2011, 0, 17]).format('DDDo'), '17th', '17th'); - assert.equal(moment([2011, 0, 18]).format('DDDo'), '18th', '18th'); - assert.equal(moment([2011, 0, 19]).format('DDDo'), '19th', '19th'); - assert.equal(moment([2011, 0, 20]).format('DDDo'), '20th', '20th'); - - assert.equal(moment([2011, 0, 21]).format('DDDo'), '21st', '21st'); - assert.equal(moment([2011, 0, 22]).format('DDDo'), '22nd', '22nd'); - assert.equal(moment([2011, 0, 23]).format('DDDo'), '23rd', '23rd'); - assert.equal(moment([2011, 0, 24]).format('DDDo'), '24th', '24th'); - assert.equal(moment([2011, 0, 25]).format('DDDo'), '25th', '25th'); - assert.equal(moment([2011, 0, 26]).format('DDDo'), '26th', '26th'); - assert.equal(moment([2011, 0, 27]).format('DDDo'), '27th', '27th'); - assert.equal(moment([2011, 0, 28]).format('DDDo'), '28th', '28th'); - assert.equal(moment([2011, 0, 29]).format('DDDo'), '29th', '29th'); - assert.equal(moment([2011, 0, 30]).format('DDDo'), '30th', '30th'); - - assert.equal(moment([2011, 0, 31]).format('DDDo'), '31st', '31st'); -}); - -test('format month', function (assert) { - var i, - expected = 'January Jan_February Feb_March Mar_April Apr_May May_June Jun_July Jul_August Aug_September Sep_October Oct_November Nov_December Dec'.split('_'); - - for (i = 0; i < expected.length; i++) { - assert.equal(moment([2011, i, 1]).format('MMMM MMM'), expected[i], expected[i]); - } -}); - -test('format week', function (assert) { - var i, - expected = 'Sunday Sun Su_Monday Mon Mo_Tuesday Tue Tu_Wednesday Wed We_Thursday Thu Th_Friday Fri Fr_Saturday Sat Sa'.split('_'); - - for (i = 0; i < expected.length; i++) { - assert.equal(moment([2011, 0, 2 + i]).format('dddd ddd dd'), expected[i], expected[i]); - } -}); - -test('from', function (assert) { - var start = moment([2007, 1, 28]); - - assert.equal(start.from(moment([2007, 1, 28]).add({s: 44}), true), 'a few seconds', '44 seconds = a few seconds'); - assert.equal(start.from(moment([2007, 1, 28]).add({s: 45}), true), 'a minute', '45 seconds = a minute'); - assert.equal(start.from(moment([2007, 1, 28]).add({s: 89}), true), 'a minute', '89 seconds = a minute'); - assert.equal(start.from(moment([2007, 1, 28]).add({s: 90}), true), '2 minutes', '90 seconds = 2 minutes'); - assert.equal(start.from(moment([2007, 1, 28]).add({m: 44}), true), '44 minutes', '44 minutes = 44 minutes'); - assert.equal(start.from(moment([2007, 1, 28]).add({m: 45}), true), 'an hour', '45 minutes = an hour'); - assert.equal(start.from(moment([2007, 1, 28]).add({m: 89}), true), 'an hour', '89 minutes = an hour'); - assert.equal(start.from(moment([2007, 1, 28]).add({m: 90}), true), '2 hours', '90 minutes = 2 hours'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 5}), true), '5 hours', '5 hours = 5 hours'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 21}), true), '21 hours', '21 hours = 21 hours'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 22}), true), 'a day', '22 hours = a day'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 35}), true), 'a day', '35 hours = a day'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 36}), true), '2 days', '36 hours = 2 days'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 1}), true), 'a day', '1 day = a day'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 5}), true), '5 days', '5 days = 5 days'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 25}), true), '25 days', '25 days = 25 days'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 26}), true), 'a month', '26 days = a month'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 30}), true), 'a month', '30 days = a month'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 43}), true), 'a month', '43 days = a month'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 46}), true), '2 months', '46 days = 2 months'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 74}), true), '2 months', '75 days = 2 months'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 76}), true), '3 months', '76 days = 3 months'); - assert.equal(start.from(moment([2007, 1, 28]).add({M: 1}), true), 'a month', '1 month = a month'); - assert.equal(start.from(moment([2007, 1, 28]).add({M: 5}), true), '5 months', '5 months = 5 months'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 345}), true), 'a year', '345 days = a year'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 548}), true), '2 years', '548 days = 2 years'); - assert.equal(start.from(moment([2007, 1, 28]).add({y: 1}), true), 'a year', '1 year = a year'); - assert.equal(start.from(moment([2007, 1, 28]).add({y: 5}), true), '5 years', '5 years = 5 years'); -}); - -test('suffix', function (assert) { - assert.equal(moment(30000).from(0), 'in a few seconds', 'prefix'); - assert.equal(moment(0).from(30000), 'a few seconds ago', 'suffix'); -}); - -test('now from now', function (assert) { - assert.equal(moment().fromNow(), 'a few seconds ago', 'now from now should display as in the past'); -}); - -test('fromNow', function (assert) { - assert.equal(moment().add({s: 30}).fromNow(), 'in a few seconds', 'in a few seconds'); - assert.equal(moment().add({d: 5}).fromNow(), 'in 5 days', 'in 5 days'); -}); - -test('calendar day', function (assert) { - var a = moment().hours(12).minutes(0).seconds(0); - - assert.equal(moment(a).calendar(), 'Today at 12:00 PM', 'today at the same time'); - assert.equal(moment(a).add({m: 25}).calendar(), 'Today at 12:25 PM', 'Now plus 25 min'); - assert.equal(moment(a).add({h: 1}).calendar(), 'Today at 1:00 PM', 'Now plus 1 hour'); - assert.equal(moment(a).add({d: 1}).calendar(), 'Tomorrow at 12:00 PM', 'tomorrow at the same time'); - assert.equal(moment(a).subtract({h: 1}).calendar(), 'Today at 11:00 AM', 'Now minus 1 hour'); - assert.equal(moment(a).subtract({d: 1}).calendar(), 'Yesterday at 12:00 PM', 'yesterday at the same time'); -}); - -test('calendar next week', function (assert) { - var i, m; - - for (i = 2; i < 7; i++) { - m = moment().add({d: i}); - assert.equal(m.calendar(), m.format('dddd [at] LT'), 'Today + ' + i + ' days current time'); - m.hours(0).minutes(0).seconds(0).milliseconds(0); - assert.equal(m.calendar(), m.format('dddd [at] LT'), 'Today + ' + i + ' days beginning of day'); - m.hours(23).minutes(59).seconds(59).milliseconds(999); - assert.equal(m.calendar(), m.format('dddd [at] LT'), 'Today + ' + i + ' days end of day'); - } -}); - -test('calendar last week', function (assert) { - var i, m; - - for (i = 2; i < 7; i++) { - m = moment().subtract({d: i}); - assert.equal(m.calendar(), m.format('[Last] dddd [at] LT'), 'Today - ' + i + ' days current time'); - m.hours(0).minutes(0).seconds(0).milliseconds(0); - assert.equal(m.calendar(), m.format('[Last] dddd [at] LT'), 'Today - ' + i + ' days beginning of day'); - m.hours(23).minutes(59).seconds(59).milliseconds(999); - assert.equal(m.calendar(), m.format('[Last] dddd [at] LT'), 'Today - ' + i + ' days end of day'); - } -}); - -test('calendar all else', function (assert) { - var weeksAgo = moment().subtract({w: 1}), - weeksFromNow = moment().add({w: 1}); - - assert.equal(weeksAgo.calendar(), weeksAgo.format('L'), '1 week ago'); - assert.equal(weeksFromNow.calendar(), weeksFromNow.format('L'), 'in 1 week'); - - weeksAgo = moment().subtract({w: 2}); - weeksFromNow = moment().add({w: 2}); - - assert.equal(weeksAgo.calendar(), weeksAgo.format('L'), '2 weeks ago'); - assert.equal(weeksFromNow.calendar(), weeksFromNow.format('L'), 'in 2 weeks'); -}); - -test('weeks year starting sunday format', function (assert) { - assert.equal(moment([2012, 0, 1]).format('w ww wo'), '1 01 1st', 'Jan 1 2012 should be week 1'); - assert.equal(moment([2012, 0, 7]).format('w ww wo'), '1 01 1st', 'Jan 7 2012 should be week 1'); - assert.equal(moment([2012, 0, 8]).format('w ww wo'), '2 02 2nd', 'Jan 8 2012 should be week 2'); - assert.equal(moment([2012, 0, 14]).format('w ww wo'), '2 02 2nd', 'Jan 14 2012 should be week 2'); - assert.equal(moment([2012, 0, 15]).format('w ww wo'), '3 03 3rd', 'Jan 15 2012 should be week 3'); -}); - -test('weekdays strict parsing', function (assert) { - var m = moment('2015-01-01T12', moment.ISO_8601, true), - enLocale = moment.localeData('en'); - - for (var i = 0; i < 7; ++i) { - assert.equal(moment(enLocale.weekdays(m.day(i), ''), 'dddd', true).isValid(), true, 'parse weekday ' + i); - assert.equal(moment(enLocale.weekdaysShort(m.day(i), ''), 'ddd', true).isValid(), true, 'parse short weekday ' + i); - assert.equal(moment(enLocale.weekdaysMin(m.day(i), ''), 'dd', true).isValid(), true, 'parse min weekday ' + i); - - // negative tests - assert.equal(moment(enLocale.weekdaysMin(m.day(i), ''), 'ddd', true).isValid(), false, 'parse short weekday ' + i); - assert.equal(moment(enLocale.weekdaysShort(m.day(i), ''), 'dd', true).isValid(), false, 'parse min weekday ' + i); - } -}); - -}))); - - -;(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' - && typeof require === 'function' ? factory(require('../../moment')) : - typeof define === 'function' && define.amd ? define(['../../moment'], factory) : - factory(global.moment) -}(this, (function (moment) { 'use strict'; - -function each(array, callback) { - var i; - for (i = 0; i < array.length; i++) { - callback(array[i], i, array); - } -} - -function objectKeys(obj) { - if (Object.keys) { - return Object.keys(obj); - } else { - // IE8 - var res = [], i; - for (i in obj) { - if (obj.hasOwnProperty(i)) { - res.push(i); - } - } - return res; - } -} - -// Pick the first defined of two or three arguments. - -function defineCommonLocaleTests(locale, options) { - test('lenient day of month ordinal parsing', function (assert) { - var i, ordinalStr, testMoment; - for (i = 1; i <= 31; ++i) { - ordinalStr = moment([2014, 0, i]).format('YYYY MM Do'); - testMoment = moment(ordinalStr, 'YYYY MM Do'); - assert.equal(testMoment.year(), 2014, - 'lenient day of month ordinal parsing ' + i + ' year check'); - assert.equal(testMoment.month(), 0, - 'lenient day of month ordinal parsing ' + i + ' month check'); - assert.equal(testMoment.date(), i, - 'lenient day of month ordinal parsing ' + i + ' date check'); - } - }); - - test('lenient day of month ordinal parsing of number', function (assert) { - var i, testMoment; - for (i = 1; i <= 31; ++i) { - testMoment = moment('2014 01 ' + i, 'YYYY MM Do'); - assert.equal(testMoment.year(), 2014, - 'lenient day of month ordinal parsing of number ' + i + ' year check'); - assert.equal(testMoment.month(), 0, - 'lenient day of month ordinal parsing of number ' + i + ' month check'); - assert.equal(testMoment.date(), i, - 'lenient day of month ordinal parsing of number ' + i + ' date check'); - } - }); - - test('strict day of month ordinal parsing', function (assert) { - var i, ordinalStr, testMoment; - for (i = 1; i <= 31; ++i) { - ordinalStr = moment([2014, 0, i]).format('YYYY MM Do'); - testMoment = moment(ordinalStr, 'YYYY MM Do', true); - assert.ok(testMoment.isValid(), 'strict day of month ordinal parsing ' + i); - } - }); - - test('meridiem invariant', function (assert) { - var h, m, t1, t2; - for (h = 0; h < 24; ++h) { - for (m = 0; m < 60; m += 15) { - t1 = moment.utc([2000, 0, 1, h, m]); - t2 = moment.utc(t1.format('A h:mm'), 'A h:mm'); - assert.equal(t2.format('HH:mm'), t1.format('HH:mm'), - 'meridiem at ' + t1.format('HH:mm')); - } - } - }); - - test('date format correctness', function (assert) { - var data, tokens; - data = moment.localeData()._longDateFormat; - tokens = objectKeys(data); - each(tokens, function (srchToken) { - // Check each format string to make sure it does not contain any - // tokens that need to be expanded. - each(tokens, function (baseToken) { - // strip escaped sequences - var format = data[baseToken].replace(/(\[[^\]]*\])/g, ''); - assert.equal(false, !!~format.indexOf(srchToken), - 'contains ' + srchToken + ' in ' + baseToken); - }); - }); - }); - - test('month parsing correctness', function (assert) { - var i, m; - - if (locale === 'tr') { - // I can't fix it :( - expect(0); - return; - } - function tester(format) { - var r; - r = moment(m.format(format), format); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format); - r = moment(m.format(format).toLocaleUpperCase(), format); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' upper'); - r = moment(m.format(format).toLocaleLowerCase(), format); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' lower'); - - r = moment(m.format(format), format, true); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' strict'); - r = moment(m.format(format).toLocaleUpperCase(), format, true); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' upper strict'); - r = moment(m.format(format).toLocaleLowerCase(), format, true); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' lower strict'); - } - - for (i = 0; i < 12; ++i) { - m = moment([2015, i, 15, 18]); - tester('MMM'); - tester('MMM.'); - tester('MMMM'); - tester('MMMM.'); - } - }); - - test('weekday parsing correctness', function (assert) { - var i, m; - - if (locale === 'tr' || locale === 'az' || locale === 'ro') { - // tr, az: There is a lower-case letter (ı), that converted to - // upper then lower changes to i - // ro: there is the letter ț which behaves weird under IE8 - expect(0); - return; - } - function tester(format) { - var r, baseMsg = 'weekday ' + m.weekday() + ' fmt ' + format + ' ' + m.toISOString(); - r = moment(m.format(format), format); - assert.equal(r.weekday(), m.weekday(), baseMsg); - r = moment(m.format(format).toLocaleUpperCase(), format); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' upper'); - r = moment(m.format(format).toLocaleLowerCase(), format); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' lower'); - - r = moment(m.format(format), format, true); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' strict'); - r = moment(m.format(format).toLocaleUpperCase(), format, true); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' upper strict'); - r = moment(m.format(format).toLocaleLowerCase(), format, true); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' lower strict'); - } - - for (i = 0; i < 7; ++i) { - m = moment.utc([2015, 0, i + 1, 18]); - tester('dd'); - tester('ddd'); - tester('dddd'); - } - }); - - test('valid localeData', function (assert) { - assert.equal(moment().localeData().months().length, 12, 'months should return 12 months'); - assert.equal(moment().localeData().monthsShort().length, 12, 'monthsShort should return 12 months'); - assert.equal(moment().localeData().weekdays().length, 7, 'weekdays should return 7 days'); - assert.equal(moment().localeData().weekdaysShort().length, 7, 'weekdaysShort should return 7 days'); - assert.equal(moment().localeData().weekdaysMin().length, 7, 'monthsShort should return 7 days'); - }); -} - -function setupDeprecationHandler(test, moment$$1, scope) { - test._expectedDeprecations = null; - test._observedDeprecations = null; - test._oldSupress = moment$$1.suppressDeprecationWarnings; - moment$$1.suppressDeprecationWarnings = true; - test.expectedDeprecations = function () { - test._expectedDeprecations = arguments; - test._observedDeprecations = []; - }; - moment$$1.deprecationHandler = function (name, msg) { - var deprecationId = matchedDeprecation(name, msg, test._expectedDeprecations); - if (deprecationId === -1) { - throw new Error('Unexpected deprecation thrown name=' + - name + ' msg=' + msg); - } - test._observedDeprecations[deprecationId] = 1; - }; -} - -function teardownDeprecationHandler(test, moment$$1, scope) { - moment$$1.suppressDeprecationWarnings = test._oldSupress; - - if (test._expectedDeprecations != null) { - var missedDeprecations = []; - each(test._expectedDeprecations, function (deprecationPattern, id) { - if (test._observedDeprecations[id] !== 1) { - missedDeprecations.push(deprecationPattern); - } - }); - if (missedDeprecations.length !== 0) { - throw new Error('Expected deprecation warnings did not happen: ' + - missedDeprecations.join(' ')); - } - } -} - -function matchedDeprecation(name, msg, deprecations) { - if (deprecations == null) { - return -1; - } - for (var i = 0; i < deprecations.length; ++i) { - if (name != null && name === deprecations[i]) { - return i; - } - if (msg != null && msg.substring(0, deprecations[i].length) === deprecations[i]) { - return i; - } - } - return -1; -} - -/*global QUnit:false*/ - -var test = QUnit.test; - -var expect = QUnit.expect; - - - -function localeModule (name, lifecycle) { - QUnit.module('locale:' + name, { - setup : function () { - moment.locale(name); - moment.createFromInputFallback = function (config) { - throw new Error('input not handled by moment: ' + config._i); - }; - setupDeprecationHandler(test, moment, 'locale'); - if (lifecycle && lifecycle.setup) { - lifecycle.setup(); - } - }, - teardown : function () { - moment.locale('en'); - teardownDeprecationHandler(test, moment, 'locale'); - if (lifecycle && lifecycle.teardown) { - lifecycle.teardown(); - } - } - }); - defineCommonLocaleTests(name, -1, -1); -} - -localeModule('eo'); - -test('parse', function (assert) { - var tests = 'januaro jan_februaro feb_marto mar_aprilo apr_majo maj_junio jun_julio jul_aŭgusto aŭg_septembro sep_oktobro okt_novembro nov_decembro dec'.split('_'), i; - function equalTest(input, mmm, i) { - assert.equal(moment(input, mmm).month(), i, input + ' should be month ' + (i + 1)); - } - for (i = 0; i < 12; i++) { - tests[i] = tests[i].split(' '); - equalTest(tests[i][0], 'MMM', i); - equalTest(tests[i][1], 'MMM', i); - equalTest(tests[i][0], 'MMMM', i); - equalTest(tests[i][1], 'MMMM', i); - equalTest(tests[i][0].toLocaleLowerCase(), 'MMMM', i); - equalTest(tests[i][1].toLocaleLowerCase(), 'MMMM', i); - equalTest(tests[i][0].toLocaleUpperCase(), 'MMMM', i); - equalTest(tests[i][1].toLocaleUpperCase(), 'MMMM', i); - } -}); - -test('format', function (assert) { - var a = [ - ['dddd, MMMM Do YYYY, h:mm:ss a', 'dimanĉo, februaro 14a 2010, 3:25:50 p.t.m.'], - ['ddd, hA', 'dim, 3P.T.M.'], - ['M Mo MM MMMM MMM', '2 2a 02 februaro feb'], - ['YYYY YY', '2010 10'], - ['D Do DD', '14 14a 14'], - ['d do dddd ddd dd', '0 0a dimanĉo dim di'], - ['DDD DDDo DDDD', '45 45a 045'], - ['w wo ww', '7 7a 07'], - ['h hh', '3 03'], - ['H HH', '15 15'], - ['m mm', '25 25'], - ['s ss', '50 50'], - ['a A', 'p.t.m. P.T.M.'], - ['[la] DDDo [tago] [de] [la] [jaro]', 'la 45a tago de la jaro'], - ['LTS', '15:25:50'], - ['L', '2010-02-14'], - ['LL', '14-a de februaro, 2010'], - ['LLL', '14-a de februaro, 2010 15:25'], - ['LLLL', 'dimanĉo, la 14-a de februaro, 2010 15:25'], - ['l', '2010-2-14'], - ['ll', '14-a de feb, 2010'], - ['lll', '14-a de feb, 2010 15:25'], - ['llll', 'dim, la 14-a de feb, 2010 15:25'] - ], - b = moment(new Date(2010, 1, 14, 15, 25, 50, 125)), - i; - for (i = 0; i < a.length; i++) { - assert.equal(b.format(a[i][0]), a[i][1], a[i][0] + ' ---> ' + a[i][1]); - } -}); - -test('format ordinal', function (assert) { - assert.equal(moment([2011, 0, 1]).format('DDDo'), '1a', '1a'); - assert.equal(moment([2011, 0, 2]).format('DDDo'), '2a', '2a'); - assert.equal(moment([2011, 0, 3]).format('DDDo'), '3a', '3a'); - assert.equal(moment([2011, 0, 4]).format('DDDo'), '4a', '4a'); - assert.equal(moment([2011, 0, 5]).format('DDDo'), '5a', '5a'); - assert.equal(moment([2011, 0, 6]).format('DDDo'), '6a', '6a'); - assert.equal(moment([2011, 0, 7]).format('DDDo'), '7a', '7a'); - assert.equal(moment([2011, 0, 8]).format('DDDo'), '8a', '8a'); - assert.equal(moment([2011, 0, 9]).format('DDDo'), '9a', '9a'); - assert.equal(moment([2011, 0, 10]).format('DDDo'), '10a', '10a'); - - assert.equal(moment([2011, 0, 11]).format('DDDo'), '11a', '11a'); - assert.equal(moment([2011, 0, 12]).format('DDDo'), '12a', '12a'); - assert.equal(moment([2011, 0, 13]).format('DDDo'), '13a', '13a'); - assert.equal(moment([2011, 0, 14]).format('DDDo'), '14a', '14a'); - assert.equal(moment([2011, 0, 15]).format('DDDo'), '15a', '15a'); - assert.equal(moment([2011, 0, 16]).format('DDDo'), '16a', '16a'); - assert.equal(moment([2011, 0, 17]).format('DDDo'), '17a', '17a'); - assert.equal(moment([2011, 0, 18]).format('DDDo'), '18a', '18a'); - assert.equal(moment([2011, 0, 19]).format('DDDo'), '19a', '19a'); - assert.equal(moment([2011, 0, 20]).format('DDDo'), '20a', '20a'); - - assert.equal(moment([2011, 0, 21]).format('DDDo'), '21a', '21a'); - assert.equal(moment([2011, 0, 22]).format('DDDo'), '22a', '22a'); - assert.equal(moment([2011, 0, 23]).format('DDDo'), '23a', '23a'); - assert.equal(moment([2011, 0, 24]).format('DDDo'), '24a', '24a'); - assert.equal(moment([2011, 0, 25]).format('DDDo'), '25a', '25a'); - assert.equal(moment([2011, 0, 26]).format('DDDo'), '26a', '26a'); - assert.equal(moment([2011, 0, 27]).format('DDDo'), '27a', '27a'); - assert.equal(moment([2011, 0, 28]).format('DDDo'), '28a', '28a'); - assert.equal(moment([2011, 0, 29]).format('DDDo'), '29a', '29a'); - assert.equal(moment([2011, 0, 30]).format('DDDo'), '30a', '30a'); - - assert.equal(moment([2011, 0, 31]).format('DDDo'), '31a', '31a'); -}); - -test('format month', function (assert) { - var expected = 'januaro jan_februaro feb_marto mar_aprilo apr_majo maj_junio jun_julio jul_aŭgusto aŭg_septembro sep_oktobro okt_novembro nov_decembro dec'.split('_'), i; - for (i = 0; i < expected.length; i++) { - assert.equal(moment([2011, i, 1]).format('MMMM MMM'), expected[i], expected[i]); - } -}); - -test('format week', function (assert) { - var expected = 'dimanĉo dim di_lundo lun lu_mardo mard ma_merkredo merk me_ĵaŭdo ĵaŭ ĵa_vendredo ven ve_sabato sab sa'.split('_'), i; - for (i = 0; i < expected.length; i++) { - assert.equal(moment([2011, 0, 2 + i]).format('dddd ddd dd'), expected[i], expected[i]); - } -}); - -test('from', function (assert) { - var start = moment([2007, 1, 28]); - assert.equal(start.from(moment([2007, 1, 28]).add({s: 44}), true), 'sekundoj', '44 seconds = a few seconds'); - assert.equal(start.from(moment([2007, 1, 28]).add({s: 45}), true), 'minuto', '45 seconds = a minute'); - assert.equal(start.from(moment([2007, 1, 28]).add({s: 89}), true), 'minuto', '89 seconds = a minute'); - assert.equal(start.from(moment([2007, 1, 28]).add({s: 90}), true), '2 minutoj', '90 seconds = 2 minutes'); - assert.equal(start.from(moment([2007, 1, 28]).add({m: 44}), true), '44 minutoj', '44 minutes = 44 minutes'); - assert.equal(start.from(moment([2007, 1, 28]).add({m: 45}), true), 'horo', '45 minutes = an hour'); - assert.equal(start.from(moment([2007, 1, 28]).add({m: 89}), true), 'horo', '89 minutes = an hour'); - assert.equal(start.from(moment([2007, 1, 28]).add({m: 90}), true), '2 horoj', '90 minutes = 2 hours'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 5}), true), '5 horoj', '5 hours = 5 hours'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 21}), true), '21 horoj', '21 hours = 21 hours'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 22}), true), 'tago', '22 hours = a day'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 35}), true), 'tago', '35 hours = a day'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 36}), true), '2 tagoj', '36 hours = 2 days'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 1}), true), 'tago', '1 day = a day'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 5}), true), '5 tagoj', '5 days = 5 days'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 25}), true), '25 tagoj', '25 days = 25 days'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 26}), true), 'monato', '26 days = a month'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 30}), true), 'monato', '30 days = a month'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 43}), true), 'monato', '43 days = a month'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 46}), true), '2 monatoj', '46 days = 2 months'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 74}), true), '2 monatoj', '75 days = 2 months'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 76}), true), '3 monatoj', '76 days = 3 months'); - assert.equal(start.from(moment([2007, 1, 28]).add({M: 1}), true), 'monato', '1 month = a month'); - assert.equal(start.from(moment([2007, 1, 28]).add({M: 5}), true), '5 monatoj', '5 months = 5 months'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 345}), true), 'jaro', '345 days = a year'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 548}), true), '2 jaroj', '548 days = 2 years'); - assert.equal(start.from(moment([2007, 1, 28]).add({y: 1}), true), 'jaro', '1 year = a year'); - assert.equal(start.from(moment([2007, 1, 28]).add({y: 5}), true), '5 jaroj', '5 years = 5 years'); -}); - -test('suffix', function (assert) { - assert.equal(moment(30000).from(0), 'post sekundoj', 'post prefix'); - assert.equal(moment(0).from(30000), 'antaŭ sekundoj', 'antaŭ prefix'); -}); - -test('now from now', function (assert) { - assert.equal(moment().fromNow(), 'antaŭ sekundoj', 'now from now should display as in the past'); -}); - -test('fromNow', function (assert) { - assert.equal(moment().add({s: 30}).fromNow(), 'post sekundoj', 'post sekundoj'); - assert.equal(moment().add({d: 5}).fromNow(), 'post 5 tagoj', 'post 5 tagoj'); -}); - -test('calendar day', function (assert) { - var a = moment().hours(12).minutes(0).seconds(0); - - assert.equal(moment(a).calendar(), 'Hodiaŭ je 12:00', 'today at the same time'); - assert.equal(moment(a).add({m: 25}).calendar(), 'Hodiaŭ je 12:25', 'Now plus 25 min'); - assert.equal(moment(a).add({h: 1}).calendar(), 'Hodiaŭ je 13:00', 'Now plus 1 hour'); - assert.equal(moment(a).add({d: 1}).calendar(), 'Morgaŭ je 12:00', 'tomorrow at the same time'); - assert.equal(moment(a).subtract({h: 1}).calendar(), 'Hodiaŭ je 11:00', 'Now minus 1 hour'); - assert.equal(moment(a).subtract({d: 1}).calendar(), 'Hieraŭ je 12:00', 'yesterday at the same time'); -}); - -test('calendar next week', function (assert) { - var i, m; - - for (i = 2; i < 7; i++) { - m = moment().add({d: i}); - assert.equal(m.calendar(), m.format('dddd [je] LT'), 'Today + ' + i + ' days current time'); - m.hours(0).minutes(0).seconds(0).milliseconds(0); - assert.equal(m.calendar(), m.format('dddd [je] LT'), 'Today + ' + i + ' days beginning of day'); - m.hours(23).minutes(59).seconds(59).milliseconds(999); - assert.equal(m.calendar(), m.format('dddd [je] LT'), 'Today + ' + i + ' days end of day'); - } -}); - -test('calendar last week', function (assert) { - var i, m; - - for (i = 2; i < 7; i++) { - m = moment().subtract({d: i}); - assert.equal(m.calendar(), m.format('[pasinta] dddd [je] LT'), 'Today - ' + i + ' days current time'); - m.hours(0).minutes(0).seconds(0).milliseconds(0); - assert.equal(m.calendar(), m.format('[pasinta] dddd [je] LT'), 'Today - ' + i + ' days beginning of day'); - m.hours(23).minutes(59).seconds(59).milliseconds(999); - assert.equal(m.calendar(), m.format('[pasinta] dddd [je] LT'), 'Today - ' + i + ' days end of day'); - } -}); - -test('calendar all else', function (assert) { - var weeksAgo = moment().subtract({w: 1}), - weeksFromNow = moment().add({w: 1}); - - assert.equal(weeksAgo.calendar(), weeksAgo.format('L'), '1 week ago'); - assert.equal(weeksFromNow.calendar(), weeksFromNow.format('L'), 'in 1 week'); - - weeksAgo = moment().subtract({w: 2}); - weeksFromNow = moment().add({w: 2}); - - assert.equal(weeksAgo.calendar(), weeksAgo.format('L'), '2 weeks ago'); - assert.equal(weeksFromNow.calendar(), weeksFromNow.format('L'), 'in 2 weeks'); -}); - -test('weeks year starting sunday formatted', function (assert) { - assert.equal(moment([2011, 11, 26]).format('w ww wo'), '1 01 1a', 'Dec 26 2011 should be week 1'); - assert.equal(moment([2012, 0, 1]).format('w ww wo'), '1 01 1a', 'Jan 1 2012 should be week 1'); - assert.equal(moment([2012, 0, 2]).format('w ww wo'), '2 02 2a', 'Jan 2 2012 should be week 2'); - assert.equal(moment([2012, 0, 8]).format('w ww wo'), '2 02 2a', 'Jan 8 2012 should be week 2'); - assert.equal(moment([2012, 0, 9]).format('w ww wo'), '3 03 3a', 'Jan 9 2012 should be week 3'); -}); - -}))); - - -;(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' - && typeof require === 'function' ? factory(require('../../moment')) : - typeof define === 'function' && define.amd ? define(['../../moment'], factory) : - factory(global.moment) -}(this, (function (moment) { 'use strict'; - -function each(array, callback) { - var i; - for (i = 0; i < array.length; i++) { - callback(array[i], i, array); - } -} - -function objectKeys(obj) { - if (Object.keys) { - return Object.keys(obj); - } else { - // IE8 - var res = [], i; - for (i in obj) { - if (obj.hasOwnProperty(i)) { - res.push(i); - } - } - return res; - } -} - -// Pick the first defined of two or three arguments. - -function defineCommonLocaleTests(locale, options) { - test('lenient day of month ordinal parsing', function (assert) { - var i, ordinalStr, testMoment; - for (i = 1; i <= 31; ++i) { - ordinalStr = moment([2014, 0, i]).format('YYYY MM Do'); - testMoment = moment(ordinalStr, 'YYYY MM Do'); - assert.equal(testMoment.year(), 2014, - 'lenient day of month ordinal parsing ' + i + ' year check'); - assert.equal(testMoment.month(), 0, - 'lenient day of month ordinal parsing ' + i + ' month check'); - assert.equal(testMoment.date(), i, - 'lenient day of month ordinal parsing ' + i + ' date check'); - } - }); - - test('lenient day of month ordinal parsing of number', function (assert) { - var i, testMoment; - for (i = 1; i <= 31; ++i) { - testMoment = moment('2014 01 ' + i, 'YYYY MM Do'); - assert.equal(testMoment.year(), 2014, - 'lenient day of month ordinal parsing of number ' + i + ' year check'); - assert.equal(testMoment.month(), 0, - 'lenient day of month ordinal parsing of number ' + i + ' month check'); - assert.equal(testMoment.date(), i, - 'lenient day of month ordinal parsing of number ' + i + ' date check'); - } - }); - - test('strict day of month ordinal parsing', function (assert) { - var i, ordinalStr, testMoment; - for (i = 1; i <= 31; ++i) { - ordinalStr = moment([2014, 0, i]).format('YYYY MM Do'); - testMoment = moment(ordinalStr, 'YYYY MM Do', true); - assert.ok(testMoment.isValid(), 'strict day of month ordinal parsing ' + i); - } - }); - - test('meridiem invariant', function (assert) { - var h, m, t1, t2; - for (h = 0; h < 24; ++h) { - for (m = 0; m < 60; m += 15) { - t1 = moment.utc([2000, 0, 1, h, m]); - t2 = moment.utc(t1.format('A h:mm'), 'A h:mm'); - assert.equal(t2.format('HH:mm'), t1.format('HH:mm'), - 'meridiem at ' + t1.format('HH:mm')); - } - } - }); - - test('date format correctness', function (assert) { - var data, tokens; - data = moment.localeData()._longDateFormat; - tokens = objectKeys(data); - each(tokens, function (srchToken) { - // Check each format string to make sure it does not contain any - // tokens that need to be expanded. - each(tokens, function (baseToken) { - // strip escaped sequences - var format = data[baseToken].replace(/(\[[^\]]*\])/g, ''); - assert.equal(false, !!~format.indexOf(srchToken), - 'contains ' + srchToken + ' in ' + baseToken); - }); - }); - }); - - test('month parsing correctness', function (assert) { - var i, m; - - if (locale === 'tr') { - // I can't fix it :( - expect(0); - return; - } - function tester(format) { - var r; - r = moment(m.format(format), format); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format); - r = moment(m.format(format).toLocaleUpperCase(), format); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' upper'); - r = moment(m.format(format).toLocaleLowerCase(), format); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' lower'); - - r = moment(m.format(format), format, true); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' strict'); - r = moment(m.format(format).toLocaleUpperCase(), format, true); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' upper strict'); - r = moment(m.format(format).toLocaleLowerCase(), format, true); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' lower strict'); - } - - for (i = 0; i < 12; ++i) { - m = moment([2015, i, 15, 18]); - tester('MMM'); - tester('MMM.'); - tester('MMMM'); - tester('MMMM.'); - } - }); - - test('weekday parsing correctness', function (assert) { - var i, m; - - if (locale === 'tr' || locale === 'az' || locale === 'ro') { - // tr, az: There is a lower-case letter (ı), that converted to - // upper then lower changes to i - // ro: there is the letter ț which behaves weird under IE8 - expect(0); - return; - } - function tester(format) { - var r, baseMsg = 'weekday ' + m.weekday() + ' fmt ' + format + ' ' + m.toISOString(); - r = moment(m.format(format), format); - assert.equal(r.weekday(), m.weekday(), baseMsg); - r = moment(m.format(format).toLocaleUpperCase(), format); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' upper'); - r = moment(m.format(format).toLocaleLowerCase(), format); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' lower'); - - r = moment(m.format(format), format, true); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' strict'); - r = moment(m.format(format).toLocaleUpperCase(), format, true); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' upper strict'); - r = moment(m.format(format).toLocaleLowerCase(), format, true); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' lower strict'); - } - - for (i = 0; i < 7; ++i) { - m = moment.utc([2015, 0, i + 1, 18]); - tester('dd'); - tester('ddd'); - tester('dddd'); - } - }); - - test('valid localeData', function (assert) { - assert.equal(moment().localeData().months().length, 12, 'months should return 12 months'); - assert.equal(moment().localeData().monthsShort().length, 12, 'monthsShort should return 12 months'); - assert.equal(moment().localeData().weekdays().length, 7, 'weekdays should return 7 days'); - assert.equal(moment().localeData().weekdaysShort().length, 7, 'weekdaysShort should return 7 days'); - assert.equal(moment().localeData().weekdaysMin().length, 7, 'monthsShort should return 7 days'); - }); -} - -function setupDeprecationHandler(test, moment$$1, scope) { - test._expectedDeprecations = null; - test._observedDeprecations = null; - test._oldSupress = moment$$1.suppressDeprecationWarnings; - moment$$1.suppressDeprecationWarnings = true; - test.expectedDeprecations = function () { - test._expectedDeprecations = arguments; - test._observedDeprecations = []; - }; - moment$$1.deprecationHandler = function (name, msg) { - var deprecationId = matchedDeprecation(name, msg, test._expectedDeprecations); - if (deprecationId === -1) { - throw new Error('Unexpected deprecation thrown name=' + - name + ' msg=' + msg); - } - test._observedDeprecations[deprecationId] = 1; - }; -} - -function teardownDeprecationHandler(test, moment$$1, scope) { - moment$$1.suppressDeprecationWarnings = test._oldSupress; - - if (test._expectedDeprecations != null) { - var missedDeprecations = []; - each(test._expectedDeprecations, function (deprecationPattern, id) { - if (test._observedDeprecations[id] !== 1) { - missedDeprecations.push(deprecationPattern); - } - }); - if (missedDeprecations.length !== 0) { - throw new Error('Expected deprecation warnings did not happen: ' + - missedDeprecations.join(' ')); - } - } -} - -function matchedDeprecation(name, msg, deprecations) { - if (deprecations == null) { - return -1; - } - for (var i = 0; i < deprecations.length; ++i) { - if (name != null && name === deprecations[i]) { - return i; - } - if (msg != null && msg.substring(0, deprecations[i].length) === deprecations[i]) { - return i; - } - } - return -1; -} - -/*global QUnit:false*/ - -var test = QUnit.test; - -var expect = QUnit.expect; - - - -function localeModule (name, lifecycle) { - QUnit.module('locale:' + name, { - setup : function () { - moment.locale(name); - moment.createFromInputFallback = function (config) { - throw new Error('input not handled by moment: ' + config._i); - }; - setupDeprecationHandler(test, moment, 'locale'); - if (lifecycle && lifecycle.setup) { - lifecycle.setup(); - } - }, - teardown : function () { - moment.locale('en'); - teardownDeprecationHandler(test, moment, 'locale'); - if (lifecycle && lifecycle.teardown) { - lifecycle.teardown(); - } - } - }); - defineCommonLocaleTests(name, -1, -1); -} - -localeModule('es-do'); - -test('parse', function (assert) { - var tests = 'enero ene._febrero feb._marzo mar._abril abr._mayo may._junio jun._julio jul._agosto ago._septiembre sep._octubre oct._noviembre nov._diciembre dic.'.split('_'), i; - function equalTest(input, mmm, i) { - assert.equal(moment(input, mmm).month(), i, input + ' should be month ' + (i + 1)); - } - for (i = 0; i < 12; i++) { - tests[i] = tests[i].split(' '); - equalTest(tests[i][0], 'MMM', i); - equalTest(tests[i][1], 'MMM', i); - equalTest(tests[i][0], 'MMMM', i); - equalTest(tests[i][1], 'MMMM', i); - equalTest(tests[i][0].toLocaleLowerCase(), 'MMMM', i); - equalTest(tests[i][1].toLocaleLowerCase(), 'MMMM', i); - equalTest(tests[i][0].toLocaleUpperCase(), 'MMMM', i); - equalTest(tests[i][1].toLocaleUpperCase(), 'MMMM', i); - } -}); - -test('format', function (assert) { - var a = [ - ['dddd, MMMM Do YYYY, h:mm:ss a', 'domingo, febrero 14º 2010, 3:25:50 pm'], - ['ddd, hA', 'dom., 3PM'], - ['M Mo MM MMMM MMM', '2 2º 02 febrero feb.'], - ['YYYY YY', '2010 10'], - ['D Do DD', '14 14º 14'], - ['d do dddd ddd dd', '0 0º domingo dom. do'], - ['DDD DDDo DDDD', '45 45º 045'], - ['w wo ww', '6 6º 06'], - ['YYYY-MMM-DD', '2010-feb-14'], - ['h hh', '3 03'], - ['H HH', '15 15'], - ['m mm', '25 25'], - ['s ss', '50 50'], - ['a A', 'pm PM'], - ['[the] DDDo [day of the year]', 'the 45º day of the year'], - ['LTS', '3:25:50 PM'], - ['L', '14/02/2010'], - ['LL', '14 de febrero de 2010'], - ['LLL', '14 de febrero de 2010 3:25 PM'], - ['LLLL', 'domingo, 14 de febrero de 2010 3:25 PM'], - ['l', '14/2/2010'], - ['ll', '14 de feb. de 2010'], - ['lll', '14 de feb. de 2010 3:25 PM'], - ['llll', 'dom., 14 de feb. de 2010 3:25 PM'] - ], - b = moment(new Date(2010, 1, 14, 15, 25, 50, 125)), - i; - for (i = 0; i < a.length; i++) { - assert.equal(b.format(a[i][0]), a[i][1], a[i][0] + ' ---> ' + a[i][1]); - } -}); - -test('format ordinal', function (assert) { - assert.equal(moment([2011, 0, 1]).format('DDDo'), '1º', '1º'); - assert.equal(moment([2011, 0, 2]).format('DDDo'), '2º', '2º'); - assert.equal(moment([2011, 0, 3]).format('DDDo'), '3º', '3º'); - assert.equal(moment([2011, 0, 4]).format('DDDo'), '4º', '4º'); - assert.equal(moment([2011, 0, 5]).format('DDDo'), '5º', '5º'); - assert.equal(moment([2011, 0, 6]).format('DDDo'), '6º', '6º'); - assert.equal(moment([2011, 0, 7]).format('DDDo'), '7º', '7º'); - assert.equal(moment([2011, 0, 8]).format('DDDo'), '8º', '8º'); - assert.equal(moment([2011, 0, 9]).format('DDDo'), '9º', '9º'); - assert.equal(moment([2011, 0, 10]).format('DDDo'), '10º', '10º'); - - assert.equal(moment([2011, 0, 11]).format('DDDo'), '11º', '11º'); - assert.equal(moment([2011, 0, 12]).format('DDDo'), '12º', '12º'); - assert.equal(moment([2011, 0, 13]).format('DDDo'), '13º', '13º'); - assert.equal(moment([2011, 0, 14]).format('DDDo'), '14º', '14º'); - assert.equal(moment([2011, 0, 15]).format('DDDo'), '15º', '15º'); - assert.equal(moment([2011, 0, 16]).format('DDDo'), '16º', '16º'); - assert.equal(moment([2011, 0, 17]).format('DDDo'), '17º', '17º'); - assert.equal(moment([2011, 0, 18]).format('DDDo'), '18º', '18º'); - assert.equal(moment([2011, 0, 19]).format('DDDo'), '19º', '19º'); - assert.equal(moment([2011, 0, 20]).format('DDDo'), '20º', '20º'); - - assert.equal(moment([2011, 0, 21]).format('DDDo'), '21º', '21º'); - assert.equal(moment([2011, 0, 22]).format('DDDo'), '22º', '22º'); - assert.equal(moment([2011, 0, 23]).format('DDDo'), '23º', '23º'); - assert.equal(moment([2011, 0, 24]).format('DDDo'), '24º', '24º'); - assert.equal(moment([2011, 0, 25]).format('DDDo'), '25º', '25º'); - assert.equal(moment([2011, 0, 26]).format('DDDo'), '26º', '26º'); - assert.equal(moment([2011, 0, 27]).format('DDDo'), '27º', '27º'); - assert.equal(moment([2011, 0, 28]).format('DDDo'), '28º', '28º'); - assert.equal(moment([2011, 0, 29]).format('DDDo'), '29º', '29º'); - assert.equal(moment([2011, 0, 30]).format('DDDo'), '30º', '30º'); - - assert.equal(moment([2011, 0, 31]).format('DDDo'), '31º', '31º'); -}); - -test('format month', function (assert) { - var expected = 'enero ene._febrero feb._marzo mar._abril abr._mayo may._junio jun._julio jul._agosto ago._septiembre sep._octubre oct._noviembre nov._diciembre dic.'.split('_'), i; - for (i = 0; i < expected.length; i++) { - assert.equal(moment([2011, i, 1]).format('MMMM MMM'), expected[i], expected[i]); - } -}); - -test('format week', function (assert) { - var expected = 'domingo dom. do_lunes lun. lu_martes mar. ma_miércoles mié. mi_jueves jue. ju_viernes vie. vi_sábado sáb. sá'.split('_'), i; - for (i = 0; i < expected.length; i++) { - assert.equal(moment([2011, 0, 2 + i]).format('dddd ddd dd'), expected[i], expected[i]); - } -}); - -test('from', function (assert) { - var start = moment([2007, 1, 28]); - assert.equal(start.from(moment([2007, 1, 28]).add({s: 44}), true), 'unos segundos', '44 seconds = a few seconds'); - assert.equal(start.from(moment([2007, 1, 28]).add({s: 45}), true), 'un minuto', '45 seconds = a minute'); - assert.equal(start.from(moment([2007, 1, 28]).add({s: 89}), true), 'un minuto', '89 seconds = a minute'); - assert.equal(start.from(moment([2007, 1, 28]).add({s: 90}), true), '2 minutos', '90 seconds = 2 minutes'); - assert.equal(start.from(moment([2007, 1, 28]).add({m: 44}), true), '44 minutos', '44 minutes = 44 minutes'); - assert.equal(start.from(moment([2007, 1, 28]).add({m: 45}), true), 'una hora', '45 minutes = an hour'); - assert.equal(start.from(moment([2007, 1, 28]).add({m: 89}), true), 'una hora', '89 minutes = an hour'); - assert.equal(start.from(moment([2007, 1, 28]).add({m: 90}), true), '2 horas', '90 minutes = 2 hours'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 5}), true), '5 horas', '5 hours = 5 hours'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 21}), true), '21 horas', '21 hours = 21 hours'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 22}), true), 'un día', '22 hours = a day'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 35}), true), 'un día', '35 hours = a day'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 36}), true), '2 días', '36 hours = 2 days'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 1}), true), 'un día', '1 day = a day'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 5}), true), '5 días', '5 days = 5 days'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 25}), true), '25 días', '25 days = 25 days'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 26}), true), 'un mes', '26 days = a month'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 30}), true), 'un mes', '30 days = a month'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 43}), true), 'un mes', '43 days = a month'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 46}), true), '2 meses', '46 days = 2 months'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 74}), true), '2 meses', '75 days = 2 months'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 76}), true), '3 meses', '76 days = 3 months'); - assert.equal(start.from(moment([2007, 1, 28]).add({M: 1}), true), 'un mes', '1 month = a month'); - assert.equal(start.from(moment([2007, 1, 28]).add({M: 5}), true), '5 meses', '5 months = 5 months'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 345}), true), 'un año', '345 days = a year'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 548}), true), '2 años', '548 days = 2 years'); - assert.equal(start.from(moment([2007, 1, 28]).add({y: 1}), true), 'un año', '1 year = a year'); - assert.equal(start.from(moment([2007, 1, 28]).add({y: 5}), true), '5 años', '5 years = 5 years'); -}); - -test('suffix', function (assert) { - assert.equal(moment(30000).from(0), 'en unos segundos', 'prefix'); - assert.equal(moment(0).from(30000), 'hace unos segundos', 'suffix'); -}); - -test('now from now', function (assert) { - assert.equal(moment().fromNow(), 'hace unos segundos', 'now from now should display as in the past'); -}); - -test('fromNow', function (assert) { - assert.equal(moment().add({s: 30}).fromNow(), 'en unos segundos', 'en unos segundos'); - assert.equal(moment().add({d: 5}).fromNow(), 'en 5 días', 'en 5 días'); -}); - -test('calendar day', function (assert) { - var a = moment().hours(12).minutes(0).seconds(0); - - assert.equal(moment(a).calendar(), 'hoy a las 12:00 PM', 'today at the same time'); - assert.equal(moment(a).add({m: 25}).calendar(), 'hoy a las 12:25 PM', 'Now plus 25 min'); - assert.equal(moment(a).add({h: 1}).calendar(), 'hoy a las 1:00 PM', 'Now plus 1 hour'); - assert.equal(moment(a).add({d: 1}).calendar(), 'mañana a las 12:00 PM', 'tomorrow at the same time'); - assert.equal(moment(a).add({d: 1, h : -1}).calendar(), 'mañana a las 11:00 AM', 'tomorrow minus 1 hour'); - assert.equal(moment(a).subtract({h: 1}).calendar(), 'hoy a las 11:00 AM', 'Now minus 1 hour'); - assert.equal(moment(a).subtract({d: 1}).calendar(), 'ayer a las 12:00 PM', 'yesterday at the same time'); -}); - -test('calendar next week', function (assert) { - var i, m; - - for (i = 2; i < 7; i++) { - m = moment().add({d: i}); - assert.equal(m.calendar(), m.format('dddd [a la' + ((m.hours() !== 1) ? 's' : '') + '] LT'), 'Today + ' + i + ' days current time'); - m.hours(0).minutes(0).seconds(0).milliseconds(0); - assert.equal(m.calendar(), m.format('dddd [a la' + ((m.hours() !== 1) ? 's' : '') + '] LT'), 'Today + ' + i + ' days beginning of day'); - m.hours(23).minutes(59).seconds(59).milliseconds(999); - assert.equal(m.calendar(), m.format('dddd [a la' + ((m.hours() !== 1) ? 's' : '') + '] LT'), 'Today + ' + i + ' days end of day'); - } -}); - -test('calendar last week', function (assert) { - var i, m; - - for (i = 2; i < 7; i++) { - m = moment().subtract({d: i}); - assert.equal(m.calendar(), m.format('[el] dddd [pasado a la' + ((m.hours() !== 1) ? 's' : '') + '] LT'), 'Today - ' + i + ' days current time'); - m.hours(0).minutes(0).seconds(0).milliseconds(0); - assert.equal(m.calendar(), m.format('[el] dddd [pasado a la' + ((m.hours() !== 1) ? 's' : '') + '] LT'), 'Today - ' + i + ' days beginning of day'); - m.hours(23).minutes(59).seconds(59).milliseconds(999); - assert.equal(m.calendar(), m.format('[el] dddd [pasado a la' + ((m.hours() !== 1) ? 's' : '') + '] LT'), 'Today - ' + i + ' days end of day'); - } -}); - -test('calendar all else', function (assert) { - var weeksAgo = moment().subtract({w: 1}), - weeksFromNow = moment().add({w: 1}); - - assert.equal(weeksAgo.calendar(), weeksAgo.format('L'), '1 week ago'); - assert.equal(weeksFromNow.calendar(), weeksFromNow.format('L'), 'in 1 week'); - - weeksAgo = moment().subtract({w: 2}); - weeksFromNow = moment().add({w: 2}); - - assert.equal(weeksAgo.calendar(), weeksAgo.format('L'), '2 weeks ago'); - assert.equal(weeksFromNow.calendar(), weeksFromNow.format('L'), 'in 2 weeks'); -}); - -test('weeks year starting sunday formatted', function (assert) { - assert.equal(moment([2012, 0, 1]).format('w ww wo'), '52 52 52º', 'Jan 1 2012 should be week 52'); - assert.equal(moment([2012, 0, 2]).format('w ww wo'), '1 01 1º', 'Jan 2 2012 should be week 1'); - assert.equal(moment([2012, 0, 8]).format('w ww wo'), '1 01 1º', 'Jan 8 2012 should be week 1'); - assert.equal(moment([2012, 0, 9]).format('w ww wo'), '2 02 2º', 'Jan 9 2012 should be week 2'); - assert.equal(moment([2012, 0, 15]).format('w ww wo'), '2 02 2º', 'Jan 15 2012 should be week 2'); -}); - -}))); - - -;(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' - && typeof require === 'function' ? factory(require('../../moment')) : - typeof define === 'function' && define.amd ? define(['../../moment'], factory) : - factory(global.moment) -}(this, (function (moment) { 'use strict'; - -function each(array, callback) { - var i; - for (i = 0; i < array.length; i++) { - callback(array[i], i, array); - } -} - -function objectKeys(obj) { - if (Object.keys) { - return Object.keys(obj); - } else { - // IE8 - var res = [], i; - for (i in obj) { - if (obj.hasOwnProperty(i)) { - res.push(i); - } - } - return res; - } -} - -// Pick the first defined of two or three arguments. - -function defineCommonLocaleTests(locale, options) { - test('lenient day of month ordinal parsing', function (assert) { - var i, ordinalStr, testMoment; - for (i = 1; i <= 31; ++i) { - ordinalStr = moment([2014, 0, i]).format('YYYY MM Do'); - testMoment = moment(ordinalStr, 'YYYY MM Do'); - assert.equal(testMoment.year(), 2014, - 'lenient day of month ordinal parsing ' + i + ' year check'); - assert.equal(testMoment.month(), 0, - 'lenient day of month ordinal parsing ' + i + ' month check'); - assert.equal(testMoment.date(), i, - 'lenient day of month ordinal parsing ' + i + ' date check'); - } - }); - - test('lenient day of month ordinal parsing of number', function (assert) { - var i, testMoment; - for (i = 1; i <= 31; ++i) { - testMoment = moment('2014 01 ' + i, 'YYYY MM Do'); - assert.equal(testMoment.year(), 2014, - 'lenient day of month ordinal parsing of number ' + i + ' year check'); - assert.equal(testMoment.month(), 0, - 'lenient day of month ordinal parsing of number ' + i + ' month check'); - assert.equal(testMoment.date(), i, - 'lenient day of month ordinal parsing of number ' + i + ' date check'); - } - }); - - test('strict day of month ordinal parsing', function (assert) { - var i, ordinalStr, testMoment; - for (i = 1; i <= 31; ++i) { - ordinalStr = moment([2014, 0, i]).format('YYYY MM Do'); - testMoment = moment(ordinalStr, 'YYYY MM Do', true); - assert.ok(testMoment.isValid(), 'strict day of month ordinal parsing ' + i); - } - }); - - test('meridiem invariant', function (assert) { - var h, m, t1, t2; - for (h = 0; h < 24; ++h) { - for (m = 0; m < 60; m += 15) { - t1 = moment.utc([2000, 0, 1, h, m]); - t2 = moment.utc(t1.format('A h:mm'), 'A h:mm'); - assert.equal(t2.format('HH:mm'), t1.format('HH:mm'), - 'meridiem at ' + t1.format('HH:mm')); - } - } - }); - - test('date format correctness', function (assert) { - var data, tokens; - data = moment.localeData()._longDateFormat; - tokens = objectKeys(data); - each(tokens, function (srchToken) { - // Check each format string to make sure it does not contain any - // tokens that need to be expanded. - each(tokens, function (baseToken) { - // strip escaped sequences - var format = data[baseToken].replace(/(\[[^\]]*\])/g, ''); - assert.equal(false, !!~format.indexOf(srchToken), - 'contains ' + srchToken + ' in ' + baseToken); - }); - }); - }); - - test('month parsing correctness', function (assert) { - var i, m; - - if (locale === 'tr') { - // I can't fix it :( - expect(0); - return; - } - function tester(format) { - var r; - r = moment(m.format(format), format); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format); - r = moment(m.format(format).toLocaleUpperCase(), format); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' upper'); - r = moment(m.format(format).toLocaleLowerCase(), format); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' lower'); - - r = moment(m.format(format), format, true); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' strict'); - r = moment(m.format(format).toLocaleUpperCase(), format, true); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' upper strict'); - r = moment(m.format(format).toLocaleLowerCase(), format, true); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' lower strict'); - } - - for (i = 0; i < 12; ++i) { - m = moment([2015, i, 15, 18]); - tester('MMM'); - tester('MMM.'); - tester('MMMM'); - tester('MMMM.'); - } - }); - - test('weekday parsing correctness', function (assert) { - var i, m; - - if (locale === 'tr' || locale === 'az' || locale === 'ro') { - // tr, az: There is a lower-case letter (ı), that converted to - // upper then lower changes to i - // ro: there is the letter ț which behaves weird under IE8 - expect(0); - return; - } - function tester(format) { - var r, baseMsg = 'weekday ' + m.weekday() + ' fmt ' + format + ' ' + m.toISOString(); - r = moment(m.format(format), format); - assert.equal(r.weekday(), m.weekday(), baseMsg); - r = moment(m.format(format).toLocaleUpperCase(), format); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' upper'); - r = moment(m.format(format).toLocaleLowerCase(), format); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' lower'); - - r = moment(m.format(format), format, true); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' strict'); - r = moment(m.format(format).toLocaleUpperCase(), format, true); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' upper strict'); - r = moment(m.format(format).toLocaleLowerCase(), format, true); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' lower strict'); - } - - for (i = 0; i < 7; ++i) { - m = moment.utc([2015, 0, i + 1, 18]); - tester('dd'); - tester('ddd'); - tester('dddd'); - } - }); - - test('valid localeData', function (assert) { - assert.equal(moment().localeData().months().length, 12, 'months should return 12 months'); - assert.equal(moment().localeData().monthsShort().length, 12, 'monthsShort should return 12 months'); - assert.equal(moment().localeData().weekdays().length, 7, 'weekdays should return 7 days'); - assert.equal(moment().localeData().weekdaysShort().length, 7, 'weekdaysShort should return 7 days'); - assert.equal(moment().localeData().weekdaysMin().length, 7, 'monthsShort should return 7 days'); - }); -} - -function setupDeprecationHandler(test, moment$$1, scope) { - test._expectedDeprecations = null; - test._observedDeprecations = null; - test._oldSupress = moment$$1.suppressDeprecationWarnings; - moment$$1.suppressDeprecationWarnings = true; - test.expectedDeprecations = function () { - test._expectedDeprecations = arguments; - test._observedDeprecations = []; - }; - moment$$1.deprecationHandler = function (name, msg) { - var deprecationId = matchedDeprecation(name, msg, test._expectedDeprecations); - if (deprecationId === -1) { - throw new Error('Unexpected deprecation thrown name=' + - name + ' msg=' + msg); - } - test._observedDeprecations[deprecationId] = 1; - }; -} - -function teardownDeprecationHandler(test, moment$$1, scope) { - moment$$1.suppressDeprecationWarnings = test._oldSupress; - - if (test._expectedDeprecations != null) { - var missedDeprecations = []; - each(test._expectedDeprecations, function (deprecationPattern, id) { - if (test._observedDeprecations[id] !== 1) { - missedDeprecations.push(deprecationPattern); - } - }); - if (missedDeprecations.length !== 0) { - throw new Error('Expected deprecation warnings did not happen: ' + - missedDeprecations.join(' ')); - } - } -} - -function matchedDeprecation(name, msg, deprecations) { - if (deprecations == null) { - return -1; - } - for (var i = 0; i < deprecations.length; ++i) { - if (name != null && name === deprecations[i]) { - return i; - } - if (msg != null && msg.substring(0, deprecations[i].length) === deprecations[i]) { - return i; - } - } - return -1; -} - -/*global QUnit:false*/ - -var test = QUnit.test; - -var expect = QUnit.expect; - - - -function localeModule (name, lifecycle) { - QUnit.module('locale:' + name, { - setup : function () { - moment.locale(name); - moment.createFromInputFallback = function (config) { - throw new Error('input not handled by moment: ' + config._i); - }; - setupDeprecationHandler(test, moment, 'locale'); - if (lifecycle && lifecycle.setup) { - lifecycle.setup(); - } - }, - teardown : function () { - moment.locale('en'); - teardownDeprecationHandler(test, moment, 'locale'); - if (lifecycle && lifecycle.teardown) { - lifecycle.teardown(); - } - } - }); - defineCommonLocaleTests(name, -1, -1); -} - -localeModule('es'); - -test('parse', function (assert) { - var tests = 'enero ene._febrero feb._marzo mar._abril abr._mayo may._junio jun._julio jul._agosto ago._septiembre sep._octubre oct._noviembre nov._diciembre dic.'.split('_'), i; - function equalTest(input, mmm, i) { - assert.equal(moment(input, mmm).month(), i, input + ' should be month ' + (i + 1)); - } - for (i = 0; i < 12; i++) { - tests[i] = tests[i].split(' '); - equalTest(tests[i][0], 'MMM', i); - equalTest(tests[i][1], 'MMM', i); - equalTest(tests[i][0], 'MMMM', i); - equalTest(tests[i][1], 'MMMM', i); - equalTest(tests[i][0].toLocaleLowerCase(), 'MMMM', i); - equalTest(tests[i][1].toLocaleLowerCase(), 'MMMM', i); - equalTest(tests[i][0].toLocaleUpperCase(), 'MMMM', i); - equalTest(tests[i][1].toLocaleUpperCase(), 'MMMM', i); - } -}); - -test('format', function (assert) { - var a = [ - ['dddd, MMMM Do YYYY, h:mm:ss a', 'domingo, febrero 14º 2010, 3:25:50 pm'], - ['ddd, hA', 'dom., 3PM'], - ['M Mo MM MMMM MMM', '2 2º 02 febrero feb.'], - ['YYYY YY', '2010 10'], - ['D Do DD', '14 14º 14'], - ['d do dddd ddd dd', '0 0º domingo dom. do'], - ['DDD DDDo DDDD', '45 45º 045'], - ['w wo ww', '6 6º 06'], - ['YYYY-MMM-DD', '2010-feb-14'], - ['h hh', '3 03'], - ['H HH', '15 15'], - ['m mm', '25 25'], - ['s ss', '50 50'], - ['a A', 'pm PM'], - ['[the] DDDo [day of the year]', 'the 45º day of the year'], - ['LTS', '15:25:50'], - ['L', '14/02/2010'], - ['LL', '14 de febrero de 2010'], - ['LLL', '14 de febrero de 2010 15:25'], - ['LLLL', 'domingo, 14 de febrero de 2010 15:25'], - ['l', '14/2/2010'], - ['ll', '14 de feb. de 2010'], - ['lll', '14 de feb. de 2010 15:25'], - ['llll', 'dom., 14 de feb. de 2010 15:25'] - ], - b = moment(new Date(2010, 1, 14, 15, 25, 50, 125)), - i; - for (i = 0; i < a.length; i++) { - assert.equal(b.format(a[i][0]), a[i][1], a[i][0] + ' ---> ' + a[i][1]); - } -}); - -test('format ordinal', function (assert) { - assert.equal(moment([2011, 0, 1]).format('DDDo'), '1º', '1º'); - assert.equal(moment([2011, 0, 2]).format('DDDo'), '2º', '2º'); - assert.equal(moment([2011, 0, 3]).format('DDDo'), '3º', '3º'); - assert.equal(moment([2011, 0, 4]).format('DDDo'), '4º', '4º'); - assert.equal(moment([2011, 0, 5]).format('DDDo'), '5º', '5º'); - assert.equal(moment([2011, 0, 6]).format('DDDo'), '6º', '6º'); - assert.equal(moment([2011, 0, 7]).format('DDDo'), '7º', '7º'); - assert.equal(moment([2011, 0, 8]).format('DDDo'), '8º', '8º'); - assert.equal(moment([2011, 0, 9]).format('DDDo'), '9º', '9º'); - assert.equal(moment([2011, 0, 10]).format('DDDo'), '10º', '10º'); - - assert.equal(moment([2011, 0, 11]).format('DDDo'), '11º', '11º'); - assert.equal(moment([2011, 0, 12]).format('DDDo'), '12º', '12º'); - assert.equal(moment([2011, 0, 13]).format('DDDo'), '13º', '13º'); - assert.equal(moment([2011, 0, 14]).format('DDDo'), '14º', '14º'); - assert.equal(moment([2011, 0, 15]).format('DDDo'), '15º', '15º'); - assert.equal(moment([2011, 0, 16]).format('DDDo'), '16º', '16º'); - assert.equal(moment([2011, 0, 17]).format('DDDo'), '17º', '17º'); - assert.equal(moment([2011, 0, 18]).format('DDDo'), '18º', '18º'); - assert.equal(moment([2011, 0, 19]).format('DDDo'), '19º', '19º'); - assert.equal(moment([2011, 0, 20]).format('DDDo'), '20º', '20º'); - - assert.equal(moment([2011, 0, 21]).format('DDDo'), '21º', '21º'); - assert.equal(moment([2011, 0, 22]).format('DDDo'), '22º', '22º'); - assert.equal(moment([2011, 0, 23]).format('DDDo'), '23º', '23º'); - assert.equal(moment([2011, 0, 24]).format('DDDo'), '24º', '24º'); - assert.equal(moment([2011, 0, 25]).format('DDDo'), '25º', '25º'); - assert.equal(moment([2011, 0, 26]).format('DDDo'), '26º', '26º'); - assert.equal(moment([2011, 0, 27]).format('DDDo'), '27º', '27º'); - assert.equal(moment([2011, 0, 28]).format('DDDo'), '28º', '28º'); - assert.equal(moment([2011, 0, 29]).format('DDDo'), '29º', '29º'); - assert.equal(moment([2011, 0, 30]).format('DDDo'), '30º', '30º'); - - assert.equal(moment([2011, 0, 31]).format('DDDo'), '31º', '31º'); -}); - -test('format month', function (assert) { - var expected = 'enero ene._febrero feb._marzo mar._abril abr._mayo may._junio jun._julio jul._agosto ago._septiembre sep._octubre oct._noviembre nov._diciembre dic.'.split('_'), i; - for (i = 0; i < expected.length; i++) { - assert.equal(moment([2011, i, 1]).format('MMMM MMM'), expected[i], expected[i]); - } -}); - -test('format week', function (assert) { - var expected = 'domingo dom. do_lunes lun. lu_martes mar. ma_miércoles mié. mi_jueves jue. ju_viernes vie. vi_sábado sáb. sá'.split('_'), i; - for (i = 0; i < expected.length; i++) { - assert.equal(moment([2011, 0, 2 + i]).format('dddd ddd dd'), expected[i], expected[i]); - } -}); - -test('from', function (assert) { - var start = moment([2007, 1, 28]); - assert.equal(start.from(moment([2007, 1, 28]).add({s: 44}), true), 'unos segundos', '44 seconds = a few seconds'); - assert.equal(start.from(moment([2007, 1, 28]).add({s: 45}), true), 'un minuto', '45 seconds = a minute'); - assert.equal(start.from(moment([2007, 1, 28]).add({s: 89}), true), 'un minuto', '89 seconds = a minute'); - assert.equal(start.from(moment([2007, 1, 28]).add({s: 90}), true), '2 minutos', '90 seconds = 2 minutes'); - assert.equal(start.from(moment([2007, 1, 28]).add({m: 44}), true), '44 minutos', '44 minutes = 44 minutes'); - assert.equal(start.from(moment([2007, 1, 28]).add({m: 45}), true), 'una hora', '45 minutes = an hour'); - assert.equal(start.from(moment([2007, 1, 28]).add({m: 89}), true), 'una hora', '89 minutes = an hour'); - assert.equal(start.from(moment([2007, 1, 28]).add({m: 90}), true), '2 horas', '90 minutes = 2 hours'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 5}), true), '5 horas', '5 hours = 5 hours'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 21}), true), '21 horas', '21 hours = 21 hours'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 22}), true), 'un día', '22 hours = a day'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 35}), true), 'un día', '35 hours = a day'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 36}), true), '2 días', '36 hours = 2 days'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 1}), true), 'un día', '1 day = a day'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 5}), true), '5 días', '5 days = 5 days'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 25}), true), '25 días', '25 days = 25 days'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 26}), true), 'un mes', '26 days = a month'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 30}), true), 'un mes', '30 days = a month'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 43}), true), 'un mes', '43 days = a month'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 46}), true), '2 meses', '46 days = 2 months'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 74}), true), '2 meses', '75 days = 2 months'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 76}), true), '3 meses', '76 days = 3 months'); - assert.equal(start.from(moment([2007, 1, 28]).add({M: 1}), true), 'un mes', '1 month = a month'); - assert.equal(start.from(moment([2007, 1, 28]).add({M: 5}), true), '5 meses', '5 months = 5 months'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 345}), true), 'un año', '345 days = a year'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 548}), true), '2 años', '548 days = 2 years'); - assert.equal(start.from(moment([2007, 1, 28]).add({y: 1}), true), 'un año', '1 year = a year'); - assert.equal(start.from(moment([2007, 1, 28]).add({y: 5}), true), '5 años', '5 years = 5 years'); -}); - -test('suffix', function (assert) { - assert.equal(moment(30000).from(0), 'en unos segundos', 'prefix'); - assert.equal(moment(0).from(30000), 'hace unos segundos', 'suffix'); -}); - -test('now from now', function (assert) { - assert.equal(moment().fromNow(), 'hace unos segundos', 'now from now should display as in the past'); -}); - -test('fromNow', function (assert) { - assert.equal(moment().add({s: 30}).fromNow(), 'en unos segundos', 'en unos segundos'); - assert.equal(moment().add({d: 5}).fromNow(), 'en 5 días', 'en 5 días'); -}); - -test('calendar day', function (assert) { - var a = moment().hours(12).minutes(0).seconds(0); - - assert.equal(moment(a).calendar(), 'hoy a las 12:00', 'today at the same time'); - assert.equal(moment(a).add({m: 25}).calendar(), 'hoy a las 12:25', 'Now plus 25 min'); - assert.equal(moment(a).add({h: 1}).calendar(), 'hoy a las 13:00', 'Now plus 1 hour'); - assert.equal(moment(a).add({d: 1}).calendar(), 'mañana a las 12:00', 'tomorrow at the same time'); - assert.equal(moment(a).add({d: 1, h : -1}).calendar(), 'mañana a las 11:00', 'tomorrow minus 1 hour'); - assert.equal(moment(a).subtract({h: 1}).calendar(), 'hoy a las 11:00', 'Now minus 1 hour'); - assert.equal(moment(a).subtract({d: 1}).calendar(), 'ayer a las 12:00', 'yesterday at the same time'); -}); - -test('calendar next week', function (assert) { - var i, m; - - for (i = 2; i < 7; i++) { - m = moment().add({d: i}); - assert.equal(m.calendar(), m.format('dddd [a la' + ((m.hours() !== 1) ? 's' : '') + '] LT'), 'Today + ' + i + ' days current time'); - m.hours(0).minutes(0).seconds(0).milliseconds(0); - assert.equal(m.calendar(), m.format('dddd [a la' + ((m.hours() !== 1) ? 's' : '') + '] LT'), 'Today + ' + i + ' days beginning of day'); - m.hours(23).minutes(59).seconds(59).milliseconds(999); - assert.equal(m.calendar(), m.format('dddd [a la' + ((m.hours() !== 1) ? 's' : '') + '] LT'), 'Today + ' + i + ' days end of day'); - } -}); - -test('calendar last week', function (assert) { - var i, m; - - for (i = 2; i < 7; i++) { - m = moment().subtract({d: i}); - assert.equal(m.calendar(), m.format('[el] dddd [pasado a la' + ((m.hours() !== 1) ? 's' : '') + '] LT'), 'Today - ' + i + ' days current time'); - m.hours(0).minutes(0).seconds(0).milliseconds(0); - assert.equal(m.calendar(), m.format('[el] dddd [pasado a la' + ((m.hours() !== 1) ? 's' : '') + '] LT'), 'Today - ' + i + ' days beginning of day'); - m.hours(23).minutes(59).seconds(59).milliseconds(999); - assert.equal(m.calendar(), m.format('[el] dddd [pasado a la' + ((m.hours() !== 1) ? 's' : '') + '] LT'), 'Today - ' + i + ' days end of day'); - } -}); - -test('calendar all else', function (assert) { - var weeksAgo = moment().subtract({w: 1}), - weeksFromNow = moment().add({w: 1}); - - assert.equal(weeksAgo.calendar(), weeksAgo.format('L'), '1 week ago'); - assert.equal(weeksFromNow.calendar(), weeksFromNow.format('L'), 'in 1 week'); - - weeksAgo = moment().subtract({w: 2}); - weeksFromNow = moment().add({w: 2}); - - assert.equal(weeksAgo.calendar(), weeksAgo.format('L'), '2 weeks ago'); - assert.equal(weeksFromNow.calendar(), weeksFromNow.format('L'), 'in 2 weeks'); -}); - -test('weeks year starting sunday formatted', function (assert) { - assert.equal(moment([2012, 0, 1]).format('w ww wo'), '52 52 52º', 'Jan 1 2012 should be week 52'); - assert.equal(moment([2012, 0, 2]).format('w ww wo'), '1 01 1º', 'Jan 2 2012 should be week 1'); - assert.equal(moment([2012, 0, 8]).format('w ww wo'), '1 01 1º', 'Jan 8 2012 should be week 1'); - assert.equal(moment([2012, 0, 9]).format('w ww wo'), '2 02 2º', 'Jan 9 2012 should be week 2'); - assert.equal(moment([2012, 0, 15]).format('w ww wo'), '2 02 2º', 'Jan 15 2012 should be week 2'); -}); - -}))); - - -;(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' - && typeof require === 'function' ? factory(require('../../moment')) : - typeof define === 'function' && define.amd ? define(['../../moment'], factory) : - factory(global.moment) -}(this, (function (moment) { 'use strict'; - -function each(array, callback) { - var i; - for (i = 0; i < array.length; i++) { - callback(array[i], i, array); - } -} - -function objectKeys(obj) { - if (Object.keys) { - return Object.keys(obj); - } else { - // IE8 - var res = [], i; - for (i in obj) { - if (obj.hasOwnProperty(i)) { - res.push(i); - } - } - return res; - } -} - -// Pick the first defined of two or three arguments. - -function defineCommonLocaleTests(locale, options) { - test('lenient day of month ordinal parsing', function (assert) { - var i, ordinalStr, testMoment; - for (i = 1; i <= 31; ++i) { - ordinalStr = moment([2014, 0, i]).format('YYYY MM Do'); - testMoment = moment(ordinalStr, 'YYYY MM Do'); - assert.equal(testMoment.year(), 2014, - 'lenient day of month ordinal parsing ' + i + ' year check'); - assert.equal(testMoment.month(), 0, - 'lenient day of month ordinal parsing ' + i + ' month check'); - assert.equal(testMoment.date(), i, - 'lenient day of month ordinal parsing ' + i + ' date check'); - } - }); - - test('lenient day of month ordinal parsing of number', function (assert) { - var i, testMoment; - for (i = 1; i <= 31; ++i) { - testMoment = moment('2014 01 ' + i, 'YYYY MM Do'); - assert.equal(testMoment.year(), 2014, - 'lenient day of month ordinal parsing of number ' + i + ' year check'); - assert.equal(testMoment.month(), 0, - 'lenient day of month ordinal parsing of number ' + i + ' month check'); - assert.equal(testMoment.date(), i, - 'lenient day of month ordinal parsing of number ' + i + ' date check'); - } - }); - - test('strict day of month ordinal parsing', function (assert) { - var i, ordinalStr, testMoment; - for (i = 1; i <= 31; ++i) { - ordinalStr = moment([2014, 0, i]).format('YYYY MM Do'); - testMoment = moment(ordinalStr, 'YYYY MM Do', true); - assert.ok(testMoment.isValid(), 'strict day of month ordinal parsing ' + i); - } - }); - - test('meridiem invariant', function (assert) { - var h, m, t1, t2; - for (h = 0; h < 24; ++h) { - for (m = 0; m < 60; m += 15) { - t1 = moment.utc([2000, 0, 1, h, m]); - t2 = moment.utc(t1.format('A h:mm'), 'A h:mm'); - assert.equal(t2.format('HH:mm'), t1.format('HH:mm'), - 'meridiem at ' + t1.format('HH:mm')); - } - } - }); - - test('date format correctness', function (assert) { - var data, tokens; - data = moment.localeData()._longDateFormat; - tokens = objectKeys(data); - each(tokens, function (srchToken) { - // Check each format string to make sure it does not contain any - // tokens that need to be expanded. - each(tokens, function (baseToken) { - // strip escaped sequences - var format = data[baseToken].replace(/(\[[^\]]*\])/g, ''); - assert.equal(false, !!~format.indexOf(srchToken), - 'contains ' + srchToken + ' in ' + baseToken); - }); - }); - }); - - test('month parsing correctness', function (assert) { - var i, m; - - if (locale === 'tr') { - // I can't fix it :( - expect(0); - return; - } - function tester(format) { - var r; - r = moment(m.format(format), format); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format); - r = moment(m.format(format).toLocaleUpperCase(), format); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' upper'); - r = moment(m.format(format).toLocaleLowerCase(), format); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' lower'); - - r = moment(m.format(format), format, true); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' strict'); - r = moment(m.format(format).toLocaleUpperCase(), format, true); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' upper strict'); - r = moment(m.format(format).toLocaleLowerCase(), format, true); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' lower strict'); - } - - for (i = 0; i < 12; ++i) { - m = moment([2015, i, 15, 18]); - tester('MMM'); - tester('MMM.'); - tester('MMMM'); - tester('MMMM.'); - } - }); - - test('weekday parsing correctness', function (assert) { - var i, m; - - if (locale === 'tr' || locale === 'az' || locale === 'ro') { - // tr, az: There is a lower-case letter (ı), that converted to - // upper then lower changes to i - // ro: there is the letter ț which behaves weird under IE8 - expect(0); - return; - } - function tester(format) { - var r, baseMsg = 'weekday ' + m.weekday() + ' fmt ' + format + ' ' + m.toISOString(); - r = moment(m.format(format), format); - assert.equal(r.weekday(), m.weekday(), baseMsg); - r = moment(m.format(format).toLocaleUpperCase(), format); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' upper'); - r = moment(m.format(format).toLocaleLowerCase(), format); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' lower'); - - r = moment(m.format(format), format, true); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' strict'); - r = moment(m.format(format).toLocaleUpperCase(), format, true); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' upper strict'); - r = moment(m.format(format).toLocaleLowerCase(), format, true); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' lower strict'); - } - - for (i = 0; i < 7; ++i) { - m = moment.utc([2015, 0, i + 1, 18]); - tester('dd'); - tester('ddd'); - tester('dddd'); - } - }); - - test('valid localeData', function (assert) { - assert.equal(moment().localeData().months().length, 12, 'months should return 12 months'); - assert.equal(moment().localeData().monthsShort().length, 12, 'monthsShort should return 12 months'); - assert.equal(moment().localeData().weekdays().length, 7, 'weekdays should return 7 days'); - assert.equal(moment().localeData().weekdaysShort().length, 7, 'weekdaysShort should return 7 days'); - assert.equal(moment().localeData().weekdaysMin().length, 7, 'monthsShort should return 7 days'); - }); -} - -function setupDeprecationHandler(test, moment$$1, scope) { - test._expectedDeprecations = null; - test._observedDeprecations = null; - test._oldSupress = moment$$1.suppressDeprecationWarnings; - moment$$1.suppressDeprecationWarnings = true; - test.expectedDeprecations = function () { - test._expectedDeprecations = arguments; - test._observedDeprecations = []; - }; - moment$$1.deprecationHandler = function (name, msg) { - var deprecationId = matchedDeprecation(name, msg, test._expectedDeprecations); - if (deprecationId === -1) { - throw new Error('Unexpected deprecation thrown name=' + - name + ' msg=' + msg); - } - test._observedDeprecations[deprecationId] = 1; - }; -} - -function teardownDeprecationHandler(test, moment$$1, scope) { - moment$$1.suppressDeprecationWarnings = test._oldSupress; - - if (test._expectedDeprecations != null) { - var missedDeprecations = []; - each(test._expectedDeprecations, function (deprecationPattern, id) { - if (test._observedDeprecations[id] !== 1) { - missedDeprecations.push(deprecationPattern); - } - }); - if (missedDeprecations.length !== 0) { - throw new Error('Expected deprecation warnings did not happen: ' + - missedDeprecations.join(' ')); - } - } -} - -function matchedDeprecation(name, msg, deprecations) { - if (deprecations == null) { - return -1; - } - for (var i = 0; i < deprecations.length; ++i) { - if (name != null && name === deprecations[i]) { - return i; - } - if (msg != null && msg.substring(0, deprecations[i].length) === deprecations[i]) { - return i; - } - } - return -1; -} - -/*global QUnit:false*/ - -var test = QUnit.test; - -var expect = QUnit.expect; - - - -function localeModule (name, lifecycle) { - QUnit.module('locale:' + name, { - setup : function () { - moment.locale(name); - moment.createFromInputFallback = function (config) { - throw new Error('input not handled by moment: ' + config._i); - }; - setupDeprecationHandler(test, moment, 'locale'); - if (lifecycle && lifecycle.setup) { - lifecycle.setup(); - } - }, - teardown : function () { - moment.locale('en'); - teardownDeprecationHandler(test, moment, 'locale'); - if (lifecycle && lifecycle.teardown) { - lifecycle.teardown(); - } - } - }); - defineCommonLocaleTests(name, -1, -1); -} - -localeModule('et'); - -test('parse', function (assert) { - var tests = 'jaanuar jaan_veebruar veebr_märts märts_aprill apr_mai mai_juuni juuni_juuli juuli_august aug_september sept_oktoober okt_november nov_detsember dets'.split('_'), i; - function equalTest(input, mmm, i) { - assert.equal(moment(input, mmm).month(), i, input + ' peaks olema kuu ' + (i + 1)); - } - for (i = 0; i < 12; i++) { - tests[i] = tests[i].split(' '); - equalTest(tests[i][0], 'MMM', i); - equalTest(tests[i][1], 'MMM', i); - equalTest(tests[i][0], 'MMMM', i); - equalTest(tests[i][1], 'MMMM', i); - equalTest(tests[i][0].toLocaleLowerCase(), 'MMMM', i); - equalTest(tests[i][1].toLocaleLowerCase(), 'MMMM', i); - equalTest(tests[i][0].toLocaleUpperCase(), 'MMMM', i); - equalTest(tests[i][1].toLocaleUpperCase(), 'MMMM', i); - } -}); - -test('format', function (assert) { - var a = [ - ['dddd, Do MMMM YYYY, H:mm:ss', 'pühapäev, 14. veebruar 2010, 15:25:50'], - ['ddd, h', 'P, 3'], - ['M Mo MM MMMM MMM', '2 2. 02 veebruar veebr'], - ['YYYY YY', '2010 10'], - ['D Do DD', '14 14. 14'], - ['d do dddd ddd dd', '0 0. pühapäev P P'], - ['DDD DDDo DDDD', '45 45. 045'], - ['w wo ww', '6 6. 06'], - ['h hh', '3 03'], - ['H HH', '15 15'], - ['m mm', '25 25'], - ['s ss', '50 50'], - ['a A', 'pm PM'], - ['[aasta] DDDo [päev]', 'aasta 45. päev'], - ['LTS', '15:25:50'], - ['L', '14.02.2010'], - ['LL', '14. veebruar 2010'], - ['LLL', '14. veebruar 2010 15:25'], - ['LLLL', 'pühapäev, 14. veebruar 2010 15:25'], - ['l', '14.2.2010'], - ['ll', '14. veebr 2010'], - ['lll', '14. veebr 2010 15:25'], - ['llll', 'P, 14. veebr 2010 15:25'] - ], - b = moment(new Date(2010, 1, 14, 15, 25, 50, 125)), - i; - for (i = 0; i < a.length; i++) { - assert.equal(b.format(a[i][0]), a[i][1], a[i][0] + ' ---> ' + a[i][1]); - } -}); - -test('format ordinal', function (assert) { - assert.equal(moment([2011, 0, 1]).format('DDDo'), '1.', '1.'); - assert.equal(moment([2011, 0, 2]).format('DDDo'), '2.', '2.'); - assert.equal(moment([2011, 0, 3]).format('DDDo'), '3.', '3.'); - assert.equal(moment([2011, 0, 4]).format('DDDo'), '4.', '4.'); - assert.equal(moment([2011, 0, 5]).format('DDDo'), '5.', '5.'); - assert.equal(moment([2011, 0, 6]).format('DDDo'), '6.', '6.'); - assert.equal(moment([2011, 0, 7]).format('DDDo'), '7.', '7.'); - assert.equal(moment([2011, 0, 8]).format('DDDo'), '8.', '8.'); - assert.equal(moment([2011, 0, 9]).format('DDDo'), '9.', '9.'); - assert.equal(moment([2011, 0, 10]).format('DDDo'), '10.', '10.'); - - assert.equal(moment([2011, 0, 11]).format('DDDo'), '11.', '11.'); - assert.equal(moment([2011, 0, 12]).format('DDDo'), '12.', '12.'); - assert.equal(moment([2011, 0, 13]).format('DDDo'), '13.', '13.'); - assert.equal(moment([2011, 0, 14]).format('DDDo'), '14.', '14.'); - assert.equal(moment([2011, 0, 15]).format('DDDo'), '15.', '15.'); - assert.equal(moment([2011, 0, 16]).format('DDDo'), '16.', '16.'); - assert.equal(moment([2011, 0, 17]).format('DDDo'), '17.', '17.'); - assert.equal(moment([2011, 0, 18]).format('DDDo'), '18.', '18.'); - assert.equal(moment([2011, 0, 19]).format('DDDo'), '19.', '19.'); - assert.equal(moment([2011, 0, 20]).format('DDDo'), '20.', '20.'); - - assert.equal(moment([2011, 0, 21]).format('DDDo'), '21.', '21.'); - assert.equal(moment([2011, 0, 22]).format('DDDo'), '22.', '22.'); - assert.equal(moment([2011, 0, 23]).format('DDDo'), '23.', '23.'); - assert.equal(moment([2011, 0, 24]).format('DDDo'), '24.', '24.'); - assert.equal(moment([2011, 0, 25]).format('DDDo'), '25.', '25.'); - assert.equal(moment([2011, 0, 26]).format('DDDo'), '26.', '26.'); - assert.equal(moment([2011, 0, 27]).format('DDDo'), '27.', '27.'); - assert.equal(moment([2011, 0, 28]).format('DDDo'), '28.', '28.'); - assert.equal(moment([2011, 0, 29]).format('DDDo'), '29.', '29.'); - assert.equal(moment([2011, 0, 30]).format('DDDo'), '30.', '30.'); - - assert.equal(moment([2011, 0, 31]).format('DDDo'), '31.', '31.'); -}); - -test('format month', function (assert) { - var expected = 'jaanuar jaan_veebruar veebr_märts märts_aprill apr_mai mai_juuni juuni_juuli juuli_august aug_september sept_oktoober okt_november nov_detsember dets'.split('_'), i; - for (i = 0; i < expected.length; i++) { - assert.equal(moment([2011, i, 1]).format('MMMM MMM'), expected[i], expected[i]); - } -}); - -test('format week', function (assert) { - var expected = 'pühapäev P P_esmaspäev E E_teisipäev T T_kolmapäev K K_neljapäev N N_reede R R_laupäev L L'.split('_'), i; - for (i = 0; i < expected.length; i++) { - assert.equal(moment([2011, 0, 2 + i]).format('dddd ddd dd'), expected[i], expected[i]); - } -}); - -test('from', function (assert) { - var start = moment([2007, 1, 28]); - assert.equal(start.from(moment([2007, 1, 28]).add({s: 44}), true), 'paar sekundit', '44 seconds = paar sekundit'); - assert.equal(start.from(moment([2007, 1, 28]).add({s: 45}), true), 'üks minut', '45 seconds = üks minut'); - assert.equal(start.from(moment([2007, 1, 28]).add({s: 89}), true), 'üks minut', '89 seconds = üks minut'); - assert.equal(start.from(moment([2007, 1, 28]).add({s: 90}), true), '2 minutit', '90 seconds = 2 minutit'); - assert.equal(start.from(moment([2007, 1, 28]).add({m: 44}), true), '44 minutit', '44 minutes = 44 minutit'); - assert.equal(start.from(moment([2007, 1, 28]).add({m: 45}), true), 'üks tund', '45 minutes = tund aega'); - assert.equal(start.from(moment([2007, 1, 28]).add({m: 89}), true), 'üks tund', '89 minutes = üks tund'); - assert.equal(start.from(moment([2007, 1, 28]).add({m: 90}), true), '2 tundi', '90 minutes = 2 tundi'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 5}), true), '5 tundi', '5 hours = 5 tundi'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 21}), true), '21 tundi', '21 hours = 21 tundi'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 22}), true), 'üks päev', '22 hours = üks päev'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 35}), true), 'üks päev', '35 hours = üks päev'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 36}), true), '2 päeva', '36 hours = 2 päeva'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 1}), true), 'üks päev', '1 day = üks päev'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 5}), true), '5 päeva', '5 days = 5 päeva'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 25}), true), '25 päeva', '25 days = 25 päeva'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 26}), true), 'üks kuu', '26 days = üks kuu'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 30}), true), 'üks kuu', '30 days = üks kuu'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 43}), true), 'üks kuu', '43 days = üks kuu'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 46}), true), '2 kuud', '46 days = 2 kuud'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 74}), true), '2 kuud', '75 days = 2 kuud'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 76}), true), '3 kuud', '76 days = 3 kuud'); - assert.equal(start.from(moment([2007, 1, 28]).add({M: 1}), true), 'üks kuu', '1 month = üks kuu'); - assert.equal(start.from(moment([2007, 1, 28]).add({M: 5}), true), '5 kuud', '5 months = 5 kuud'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 345}), true), 'üks aasta', '345 days = üks aasta'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 548}), true), '2 aastat', '548 days = 2 aastat'); - assert.equal(start.from(moment([2007, 1, 28]).add({y: 1}), true), 'üks aasta', '1 year = üks aasta'); - assert.equal(start.from(moment([2007, 1, 28]).add({y: 5}), true), '5 aastat', '5 years = 5 aastat'); -}); - -test('suffix', function (assert) { - assert.equal(moment(30000).from(0), 'mõne sekundi pärast', 'prefix'); - assert.equal(moment(0).from(30000), 'mõni sekund tagasi', 'suffix'); -}); - -test('now from now', function (assert) { - assert.equal(moment().fromNow(), 'mõni sekund tagasi', 'now from now should display as in the past'); -}); - -test('fromNow', function (assert) { - assert.equal(moment().add({s: 30}).fromNow(), 'mõne sekundi pärast', 'in a few seconds'); - assert.equal(moment().subtract({s: 30}).fromNow(), 'mõni sekund tagasi', 'a few seconds ago'); - - assert.equal(moment().add({m: 1}).fromNow(), 'ühe minuti pärast', 'in a minute'); - assert.equal(moment().subtract({m: 1}).fromNow(), 'üks minut tagasi', 'a minute ago'); - - assert.equal(moment().add({m: 5}).fromNow(), '5 minuti pärast', 'in 5 minutes'); - assert.equal(moment().subtract({m: 5}).fromNow(), '5 minutit tagasi', '5 minutes ago'); - - assert.equal(moment().add({d: 1}).fromNow(), 'ühe päeva pärast', 'in one day'); - assert.equal(moment().subtract({d: 1}).fromNow(), 'üks päev tagasi', 'one day ago'); - - assert.equal(moment().add({d: 5}).fromNow(), '5 päeva pärast', 'in 5 days'); - assert.equal(moment().subtract({d: 5}).fromNow(), '5 päeva tagasi', '5 days ago'); - - assert.equal(moment().add({M: 1}).fromNow(), 'kuu aja pärast', 'in a month'); - assert.equal(moment().subtract({M: 1}).fromNow(), 'kuu aega tagasi', 'a month ago'); - - assert.equal(moment().add({M: 5}).fromNow(), '5 kuu pärast', 'in 5 months'); - assert.equal(moment().subtract({M: 5}).fromNow(), '5 kuud tagasi', '5 months ago'); - - assert.equal(moment().add({y: 1}).fromNow(), 'ühe aasta pärast', 'in a year'); - assert.equal(moment().subtract({y: 1}).fromNow(), 'aasta tagasi', 'a year ago'); - - assert.equal(moment().add({y: 5}).fromNow(), '5 aasta pärast', 'in 5 years'); - assert.equal(moment().subtract({y: 5}).fromNow(), '5 aastat tagasi', '5 years ago'); -}); - -test('calendar day', function (assert) { - var a = moment().hours(12).minutes(0).seconds(0); - - assert.equal(moment(a).calendar(), 'Täna, 12:00', 'today at the same time'); - assert.equal(moment(a).add({m: 25}).calendar(), 'Täna, 12:25', 'Now plus 25 min'); - assert.equal(moment(a).add({h: 1}).calendar(), 'Täna, 13:00', 'Now plus 1 hour'); - assert.equal(moment(a).add({d: 1}).calendar(), 'Homme, 12:00', 'tomorrow at the same time'); - assert.equal(moment(a).subtract({h: 1}).calendar(), 'Täna, 11:00', 'Now minus 1 hour'); - assert.equal(moment(a).subtract({d: 1}).calendar(), 'Eile, 12:00', 'yesterday at the same time'); -}); - -test('calendar next week', function (assert) { - var i, m; - for (i = 2; i < 7; i++) { - m = moment().add({d: i}); - assert.equal(m.calendar(), m.format('[Järgmine] dddd LT'), 'Today + ' + i + ' days current time'); - m.hours(0).minutes(0).seconds(0).milliseconds(0); - assert.equal(m.calendar(), m.format('[Järgmine] dddd LT'), 'Today + ' + i + ' days beginning of day'); - m.hours(23).minutes(59).seconds(59).milliseconds(999); - assert.equal(m.calendar(), m.format('[Järgmine] dddd LT'), 'Today + ' + i + ' days end of day'); - } -}); - -test('calendar last week', function (assert) { - var i, m; - for (i = 2; i < 7; i++) { - m = moment().subtract({d: i}); - assert.equal(m.calendar(), m.format('[Eelmine] dddd LT'), 'Today - ' + i + ' days current time'); - m.hours(0).minutes(0).seconds(0).milliseconds(0); - assert.equal(m.calendar(), m.format('[Eelmine] dddd LT'), 'Today - ' + i + ' days beginning of day'); - m.hours(23).minutes(59).seconds(59).milliseconds(999); - assert.equal(m.calendar(), m.format('[Eelmine] dddd LT'), 'Today - ' + i + ' days end of day'); - } -}); - -test('calendar all else', function (assert) { - var weeksAgo = moment().subtract({w: 1}), - weeksFromNow = moment().add({w: 1}); - - assert.equal(weeksAgo.calendar(), weeksAgo.format('L'), '1 nädal tagasi'); - assert.equal(weeksFromNow.calendar(), weeksFromNow.format('L'), '1 nädala pärast'); - - weeksAgo = moment().subtract({w: 2}); - weeksFromNow = moment().add({w: 2}); - - assert.equal(weeksAgo.calendar(), weeksAgo.format('L'), '2 nädalat tagasi'); - assert.equal(weeksFromNow.calendar(), weeksFromNow.format('L'), '2 nädala pärast'); -}); - -test('weeks year starting sunday formatted', function (assert) { - assert.equal(moment([2012, 0, 1]).format('w ww wo'), '52 52 52.', 'Jan 1 2012 should be week 52'); - assert.equal(moment([2012, 0, 2]).format('w ww wo'), '1 01 1.', 'Jan 2 2012 should be week 1'); - assert.equal(moment([2012, 0, 8]).format('w ww wo'), '1 01 1.', 'Jan 8 2012 should be week 1'); - assert.equal(moment([2012, 0, 9]).format('w ww wo'), '2 02 2.', 'Jan 9 2012 should be week 2'); - assert.equal(moment([2012, 0, 15]).format('w ww wo'), '2 02 2.', 'Jan 15 2012 should be week 2'); -}); - -}))); - - -;(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' - && typeof require === 'function' ? factory(require('../../moment')) : - typeof define === 'function' && define.amd ? define(['../../moment'], factory) : - factory(global.moment) -}(this, (function (moment) { 'use strict'; - -function each(array, callback) { - var i; - for (i = 0; i < array.length; i++) { - callback(array[i], i, array); - } -} - -function objectKeys(obj) { - if (Object.keys) { - return Object.keys(obj); - } else { - // IE8 - var res = [], i; - for (i in obj) { - if (obj.hasOwnProperty(i)) { - res.push(i); - } - } - return res; - } -} - -// Pick the first defined of two or three arguments. - -function defineCommonLocaleTests(locale, options) { - test('lenient day of month ordinal parsing', function (assert) { - var i, ordinalStr, testMoment; - for (i = 1; i <= 31; ++i) { - ordinalStr = moment([2014, 0, i]).format('YYYY MM Do'); - testMoment = moment(ordinalStr, 'YYYY MM Do'); - assert.equal(testMoment.year(), 2014, - 'lenient day of month ordinal parsing ' + i + ' year check'); - assert.equal(testMoment.month(), 0, - 'lenient day of month ordinal parsing ' + i + ' month check'); - assert.equal(testMoment.date(), i, - 'lenient day of month ordinal parsing ' + i + ' date check'); - } - }); - - test('lenient day of month ordinal parsing of number', function (assert) { - var i, testMoment; - for (i = 1; i <= 31; ++i) { - testMoment = moment('2014 01 ' + i, 'YYYY MM Do'); - assert.equal(testMoment.year(), 2014, - 'lenient day of month ordinal parsing of number ' + i + ' year check'); - assert.equal(testMoment.month(), 0, - 'lenient day of month ordinal parsing of number ' + i + ' month check'); - assert.equal(testMoment.date(), i, - 'lenient day of month ordinal parsing of number ' + i + ' date check'); - } - }); - - test('strict day of month ordinal parsing', function (assert) { - var i, ordinalStr, testMoment; - for (i = 1; i <= 31; ++i) { - ordinalStr = moment([2014, 0, i]).format('YYYY MM Do'); - testMoment = moment(ordinalStr, 'YYYY MM Do', true); - assert.ok(testMoment.isValid(), 'strict day of month ordinal parsing ' + i); - } - }); - - test('meridiem invariant', function (assert) { - var h, m, t1, t2; - for (h = 0; h < 24; ++h) { - for (m = 0; m < 60; m += 15) { - t1 = moment.utc([2000, 0, 1, h, m]); - t2 = moment.utc(t1.format('A h:mm'), 'A h:mm'); - assert.equal(t2.format('HH:mm'), t1.format('HH:mm'), - 'meridiem at ' + t1.format('HH:mm')); - } - } - }); - - test('date format correctness', function (assert) { - var data, tokens; - data = moment.localeData()._longDateFormat; - tokens = objectKeys(data); - each(tokens, function (srchToken) { - // Check each format string to make sure it does not contain any - // tokens that need to be expanded. - each(tokens, function (baseToken) { - // strip escaped sequences - var format = data[baseToken].replace(/(\[[^\]]*\])/g, ''); - assert.equal(false, !!~format.indexOf(srchToken), - 'contains ' + srchToken + ' in ' + baseToken); - }); - }); - }); - - test('month parsing correctness', function (assert) { - var i, m; - - if (locale === 'tr') { - // I can't fix it :( - expect(0); - return; - } - function tester(format) { - var r; - r = moment(m.format(format), format); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format); - r = moment(m.format(format).toLocaleUpperCase(), format); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' upper'); - r = moment(m.format(format).toLocaleLowerCase(), format); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' lower'); - - r = moment(m.format(format), format, true); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' strict'); - r = moment(m.format(format).toLocaleUpperCase(), format, true); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' upper strict'); - r = moment(m.format(format).toLocaleLowerCase(), format, true); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' lower strict'); - } - - for (i = 0; i < 12; ++i) { - m = moment([2015, i, 15, 18]); - tester('MMM'); - tester('MMM.'); - tester('MMMM'); - tester('MMMM.'); - } - }); - - test('weekday parsing correctness', function (assert) { - var i, m; - - if (locale === 'tr' || locale === 'az' || locale === 'ro') { - // tr, az: There is a lower-case letter (ı), that converted to - // upper then lower changes to i - // ro: there is the letter ț which behaves weird under IE8 - expect(0); - return; - } - function tester(format) { - var r, baseMsg = 'weekday ' + m.weekday() + ' fmt ' + format + ' ' + m.toISOString(); - r = moment(m.format(format), format); - assert.equal(r.weekday(), m.weekday(), baseMsg); - r = moment(m.format(format).toLocaleUpperCase(), format); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' upper'); - r = moment(m.format(format).toLocaleLowerCase(), format); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' lower'); - - r = moment(m.format(format), format, true); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' strict'); - r = moment(m.format(format).toLocaleUpperCase(), format, true); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' upper strict'); - r = moment(m.format(format).toLocaleLowerCase(), format, true); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' lower strict'); - } - - for (i = 0; i < 7; ++i) { - m = moment.utc([2015, 0, i + 1, 18]); - tester('dd'); - tester('ddd'); - tester('dddd'); - } - }); - - test('valid localeData', function (assert) { - assert.equal(moment().localeData().months().length, 12, 'months should return 12 months'); - assert.equal(moment().localeData().monthsShort().length, 12, 'monthsShort should return 12 months'); - assert.equal(moment().localeData().weekdays().length, 7, 'weekdays should return 7 days'); - assert.equal(moment().localeData().weekdaysShort().length, 7, 'weekdaysShort should return 7 days'); - assert.equal(moment().localeData().weekdaysMin().length, 7, 'monthsShort should return 7 days'); - }); -} - -function setupDeprecationHandler(test, moment$$1, scope) { - test._expectedDeprecations = null; - test._observedDeprecations = null; - test._oldSupress = moment$$1.suppressDeprecationWarnings; - moment$$1.suppressDeprecationWarnings = true; - test.expectedDeprecations = function () { - test._expectedDeprecations = arguments; - test._observedDeprecations = []; - }; - moment$$1.deprecationHandler = function (name, msg) { - var deprecationId = matchedDeprecation(name, msg, test._expectedDeprecations); - if (deprecationId === -1) { - throw new Error('Unexpected deprecation thrown name=' + - name + ' msg=' + msg); - } - test._observedDeprecations[deprecationId] = 1; - }; -} - -function teardownDeprecationHandler(test, moment$$1, scope) { - moment$$1.suppressDeprecationWarnings = test._oldSupress; - - if (test._expectedDeprecations != null) { - var missedDeprecations = []; - each(test._expectedDeprecations, function (deprecationPattern, id) { - if (test._observedDeprecations[id] !== 1) { - missedDeprecations.push(deprecationPattern); - } - }); - if (missedDeprecations.length !== 0) { - throw new Error('Expected deprecation warnings did not happen: ' + - missedDeprecations.join(' ')); - } - } -} - -function matchedDeprecation(name, msg, deprecations) { - if (deprecations == null) { - return -1; - } - for (var i = 0; i < deprecations.length; ++i) { - if (name != null && name === deprecations[i]) { - return i; - } - if (msg != null && msg.substring(0, deprecations[i].length) === deprecations[i]) { - return i; - } - } - return -1; -} - -/*global QUnit:false*/ - -var test = QUnit.test; - -var expect = QUnit.expect; - - - -function localeModule (name, lifecycle) { - QUnit.module('locale:' + name, { - setup : function () { - moment.locale(name); - moment.createFromInputFallback = function (config) { - throw new Error('input not handled by moment: ' + config._i); - }; - setupDeprecationHandler(test, moment, 'locale'); - if (lifecycle && lifecycle.setup) { - lifecycle.setup(); - } - }, - teardown : function () { - moment.locale('en'); - teardownDeprecationHandler(test, moment, 'locale'); - if (lifecycle && lifecycle.teardown) { - lifecycle.teardown(); - } - } - }); - defineCommonLocaleTests(name, -1, -1); -} - -localeModule('eu'); - -test('parse', function (assert) { - var tests = 'urtarrila urt._otsaila ots._martxoa mar._apirila api._maiatza mai._ekaina eka._uztaila uzt._abuztua abu._iraila ira._urria urr._azaroa aza._abendua abe.'.split('_'), i; - function equalTest(input, mmm, i) { - assert.equal(moment(input, mmm).month(), i, input + ' should be month ' + (i + 1)); - } - for (i = 0; i < 12; i++) { - tests[i] = tests[i].split(' '); - equalTest(tests[i][0], 'MMM', i); - equalTest(tests[i][1], 'MMM', i); - equalTest(tests[i][0], 'MMMM', i); - equalTest(tests[i][1], 'MMMM', i); - equalTest(tests[i][0].toLocaleLowerCase(), 'MMMM', i); - equalTest(tests[i][1].toLocaleLowerCase(), 'MMMM', i); - equalTest(tests[i][0].toLocaleUpperCase(), 'MMMM', i); - equalTest(tests[i][1].toLocaleUpperCase(), 'MMMM', i); - } -}); - -test('format', function (assert) { - var a = [ - ['dddd, MMMM Do YYYY, h:mm:ss a', 'igandea, otsaila 14. 2010, 3:25:50 pm'], - ['ddd, hA', 'ig., 3PM'], - ['M Mo MM MMMM MMM', '2 2. 02 otsaila ots.'], - ['YYYY YY', '2010 10'], - ['D Do DD', '14 14. 14'], - ['d do dddd ddd dd', '0 0. igandea ig. ig'], - ['DDD DDDo DDDD', '45 45. 045'], - ['w wo ww', '7 7. 07'], - ['h hh', '3 03'], - ['H HH', '15 15'], - ['m mm', '25 25'], - ['s ss', '50 50'], - ['a A', 'pm PM'], - ['[the] DDDo [day of the year]', 'the 45. day of the year'], - ['LTS', '15:25:50'], - ['L', '2010-02-14'], - ['LL', '2010ko otsailaren 14a'], - ['LLL', '2010ko otsailaren 14a 15:25'], - ['LLLL', 'igandea, 2010ko otsailaren 14a 15:25'], - ['l', '2010-2-14'], - ['ll', '2010ko ots. 14a'], - ['lll', '2010ko ots. 14a 15:25'], - ['llll', 'ig., 2010ko ots. 14a 15:25'] - ], - b = moment(new Date(2010, 1, 14, 15, 25, 50, 125)), - i; - for (i = 0; i < a.length; i++) { - assert.equal(b.format(a[i][0]), a[i][1], a[i][0] + ' ---> ' + a[i][1]); - } -}); - -test('format ordinal', function (assert) { - assert.equal(moment([2011, 0, 1]).format('DDDo'), '1.', '1.'); - assert.equal(moment([2011, 0, 2]).format('DDDo'), '2.', '2.'); - assert.equal(moment([2011, 0, 3]).format('DDDo'), '3.', '3.'); - assert.equal(moment([2011, 0, 4]).format('DDDo'), '4.', '4.'); - assert.equal(moment([2011, 0, 5]).format('DDDo'), '5.', '5.'); - assert.equal(moment([2011, 0, 6]).format('DDDo'), '6.', '6.'); - assert.equal(moment([2011, 0, 7]).format('DDDo'), '7.', '7.'); - assert.equal(moment([2011, 0, 8]).format('DDDo'), '8.', '8.'); - assert.equal(moment([2011, 0, 9]).format('DDDo'), '9.', '9.'); - assert.equal(moment([2011, 0, 10]).format('DDDo'), '10.', '10.'); - - assert.equal(moment([2011, 0, 11]).format('DDDo'), '11.', '11.'); - assert.equal(moment([2011, 0, 12]).format('DDDo'), '12.', '12.'); - assert.equal(moment([2011, 0, 13]).format('DDDo'), '13.', '13.'); - assert.equal(moment([2011, 0, 14]).format('DDDo'), '14.', '14.'); - assert.equal(moment([2011, 0, 15]).format('DDDo'), '15.', '15.'); - assert.equal(moment([2011, 0, 16]).format('DDDo'), '16.', '16.'); - assert.equal(moment([2011, 0, 17]).format('DDDo'), '17.', '17.'); - assert.equal(moment([2011, 0, 18]).format('DDDo'), '18.', '18.'); - assert.equal(moment([2011, 0, 19]).format('DDDo'), '19.', '19.'); - assert.equal(moment([2011, 0, 20]).format('DDDo'), '20.', '20.'); - - assert.equal(moment([2011, 0, 21]).format('DDDo'), '21.', '21.'); - assert.equal(moment([2011, 0, 22]).format('DDDo'), '22.', '22.'); - assert.equal(moment([2011, 0, 23]).format('DDDo'), '23.', '23.'); - assert.equal(moment([2011, 0, 24]).format('DDDo'), '24.', '24.'); - assert.equal(moment([2011, 0, 25]).format('DDDo'), '25.', '25.'); - assert.equal(moment([2011, 0, 26]).format('DDDo'), '26.', '26.'); - assert.equal(moment([2011, 0, 27]).format('DDDo'), '27.', '27.'); - assert.equal(moment([2011, 0, 28]).format('DDDo'), '28.', '28.'); - assert.equal(moment([2011, 0, 29]).format('DDDo'), '29.', '29.'); - assert.equal(moment([2011, 0, 30]).format('DDDo'), '30.', '30.'); - - assert.equal(moment([2011, 0, 31]).format('DDDo'), '31.', '31.'); -}); - -test('format month', function (assert) { - var expected = 'urtarrila urt._otsaila ots._martxoa mar._apirila api._maiatza mai._ekaina eka._uztaila uzt._abuztua abu._iraila ira._urria urr._azaroa aza._abendua abe.'.split('_'), i; - for (i = 0; i < expected.length; i++) { - assert.equal(moment([2011, i, 1]).format('MMMM MMM'), expected[i], expected[i]); - } -}); - -test('format week', function (assert) { - var expected = 'igandea ig. ig_astelehena al. al_asteartea ar. ar_asteazkena az. az_osteguna og. og_ostirala ol. ol_larunbata lr. lr'.split('_'), i; - for (i = 0; i < expected.length; i++) { - assert.equal(moment([2011, 0, 2 + i]).format('dddd ddd dd'), expected[i], expected[i]); - } -}); - -test('from', function (assert) { - var start = moment([2007, 1, 28]); - assert.equal(start.from(moment([2007, 1, 28]).add({s: 44}), true), 'segundo batzuk', '44 seconds = a few seconds'); - assert.equal(start.from(moment([2007, 1, 28]).add({s: 45}), true), 'minutu bat', '45 seconds = a minute'); - assert.equal(start.from(moment([2007, 1, 28]).add({s: 89}), true), 'minutu bat', '89 seconds = a minute'); - assert.equal(start.from(moment([2007, 1, 28]).add({s: 90}), true), '2 minutu', '90 seconds = 2 minutes'); - assert.equal(start.from(moment([2007, 1, 28]).add({m: 44}), true), '44 minutu', '44 minutes = 44 minutes'); - assert.equal(start.from(moment([2007, 1, 28]).add({m: 45}), true), 'ordu bat', '45 minutes = an hour'); - assert.equal(start.from(moment([2007, 1, 28]).add({m: 89}), true), 'ordu bat', '89 minutes = an hour'); - assert.equal(start.from(moment([2007, 1, 28]).add({m: 90}), true), '2 ordu', '90 minutes = 2 hours'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 5}), true), '5 ordu', '5 hours = 5 hours'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 21}), true), '21 ordu', '21 hours = 21 hours'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 22}), true), 'egun bat', '22 hours = a day'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 35}), true), 'egun bat', '35 hours = a day'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 36}), true), '2 egun', '36 hours = 2 days'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 1}), true), 'egun bat', '1 day = a day'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 5}), true), '5 egun', '5 days = 5 days'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 25}), true), '25 egun', '25 days = 25 days'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 26}), true), 'hilabete bat', '26 days = a month'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 30}), true), 'hilabete bat', '30 days = a month'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 43}), true), 'hilabete bat', '43 days = a month'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 46}), true), '2 hilabete', '46 days = 2 months'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 74}), true), '2 hilabete', '75 days = 2 months'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 76}), true), '3 hilabete', '76 days = 3 months'); - assert.equal(start.from(moment([2007, 1, 28]).add({M: 1}), true), 'hilabete bat', '1 month = a month'); - assert.equal(start.from(moment([2007, 1, 28]).add({M: 5}), true), '5 hilabete', '5 months = 5 months'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 345}), true), 'urte bat', '345 days = a year'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 548}), true), '2 urte', '548 days = 2 years'); - assert.equal(start.from(moment([2007, 1, 28]).add({y: 1}), true), 'urte bat', '1 year = a year'); - assert.equal(start.from(moment([2007, 1, 28]).add({y: 5}), true), '5 urte', '5 years = 5 years'); -}); - -test('suffix', function (assert) { - assert.equal(moment(30000).from(0), 'segundo batzuk barru', 'prefix'); - assert.equal(moment(0).from(30000), 'duela segundo batzuk', 'suffix'); -}); - -test('now from now', function (assert) { - assert.equal(moment().fromNow(), 'duela segundo batzuk', 'now from now should display as in the past'); -}); - -test('fromNow', function (assert) { - assert.equal(moment().add({s: 30}).fromNow(), 'segundo batzuk barru', 'in seconds'); - assert.equal(moment().add({d: 5}).fromNow(), '5 egun barru', 'in 5 days'); -}); - -test('calendar day', function (assert) { - var a = moment().hours(12).minutes(0).seconds(0); - - assert.equal(moment(a).calendar(), 'gaur 12:00etan', 'today at the same time'); - assert.equal(moment(a).add({m: 25}).calendar(), 'gaur 12:25etan', 'now plus 25 min'); - assert.equal(moment(a).add({h: 1}).calendar(), 'gaur 13:00etan', 'now plus 1 hour'); - assert.equal(moment(a).add({d: 1}).calendar(), 'bihar 12:00etan', 'tomorrow at the same time'); - assert.equal(moment(a).subtract({h: 1}).calendar(), 'gaur 11:00etan', 'now minus 1 hour'); - assert.equal(moment(a).subtract({d: 1}).calendar(), 'atzo 12:00etan', 'yesterday at the same time'); -}); - -test('calendar next week', function (assert) { - var i, m; - for (i = 2; i < 7; i++) { - m = moment().add({d: i}); - assert.equal(m.calendar(), m.format('dddd LT[etan]'), 'Today + ' + i + ' days current time'); - m.hours(0).minutes(0).seconds(0).milliseconds(0); - assert.equal(m.calendar(), m.format('dddd LT[etan]'), 'Today + ' + i + ' days beginning of day'); - m.hours(23).minutes(59).seconds(59).milliseconds(999); - assert.equal(m.calendar(), m.format('dddd LT[etan]'), 'Today + ' + i + ' days end of day'); - } -}); - -test('calendar last week', function (assert) { - var i, m; - for (i = 2; i < 7; i++) { - m = moment().subtract({d: i}); - assert.equal(m.calendar(), m.format('[aurreko] dddd LT[etan]'), 'Today - ' + i + ' days current time'); - m.hours(0).minutes(0).seconds(0).milliseconds(0); - assert.equal(m.calendar(), m.format('[aurreko] dddd LT[etan]'), 'Today - ' + i + ' days beginning of day'); - m.hours(23).minutes(59).seconds(59).milliseconds(999); - assert.equal(m.calendar(), m.format('[aurreko] dddd LT[etan]'), 'Today - ' + i + ' days end of day'); - } -}); - -test('calendar all else', function (assert) { - var weeksAgo = moment().subtract({w: 1}), - weeksFromNow = moment().add({w: 1}); - - assert.equal(weeksAgo.calendar(), weeksAgo.format('L'), '1 week ago'); - assert.equal(weeksFromNow.calendar(), weeksFromNow.format('L'), 'in 1 week'); - - weeksAgo = moment().subtract({w: 2}); - weeksFromNow = moment().add({w: 2}); - - assert.equal(weeksAgo.calendar(), weeksAgo.format('L'), '2 weeks ago'); - assert.equal(weeksFromNow.calendar(), weeksFromNow.format('L'), 'in 2 weeks'); -}); - -test('weeks year starting sunday formatted', function (assert) { - assert.equal(moment([2011, 11, 26]).format('w ww wo'), '1 01 1.', 'Dec 26 2011 should be week 1'); - assert.equal(moment([2012, 0, 1]).format('w ww wo'), '1 01 1.', 'Jan 1 2012 should be week 1'); - assert.equal(moment([2012, 0, 2]).format('w ww wo'), '2 02 2.', 'Jan 2 2012 should be week 2'); - assert.equal(moment([2012, 0, 8]).format('w ww wo'), '2 02 2.', 'Jan 8 2012 should be week 2'); - assert.equal(moment([2012, 0, 9]).format('w ww wo'), '3 03 3.', 'Jan 9 2012 should be week 3'); -}); - -}))); - - -;(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' - && typeof require === 'function' ? factory(require('../../moment')) : - typeof define === 'function' && define.amd ? define(['../../moment'], factory) : - factory(global.moment) -}(this, (function (moment) { 'use strict'; - -function each(array, callback) { - var i; - for (i = 0; i < array.length; i++) { - callback(array[i], i, array); - } -} - -function objectKeys(obj) { - if (Object.keys) { - return Object.keys(obj); - } else { - // IE8 - var res = [], i; - for (i in obj) { - if (obj.hasOwnProperty(i)) { - res.push(i); - } - } - return res; - } -} - -// Pick the first defined of two or three arguments. - -function defineCommonLocaleTests(locale, options) { - test('lenient day of month ordinal parsing', function (assert) { - var i, ordinalStr, testMoment; - for (i = 1; i <= 31; ++i) { - ordinalStr = moment([2014, 0, i]).format('YYYY MM Do'); - testMoment = moment(ordinalStr, 'YYYY MM Do'); - assert.equal(testMoment.year(), 2014, - 'lenient day of month ordinal parsing ' + i + ' year check'); - assert.equal(testMoment.month(), 0, - 'lenient day of month ordinal parsing ' + i + ' month check'); - assert.equal(testMoment.date(), i, - 'lenient day of month ordinal parsing ' + i + ' date check'); - } - }); - - test('lenient day of month ordinal parsing of number', function (assert) { - var i, testMoment; - for (i = 1; i <= 31; ++i) { - testMoment = moment('2014 01 ' + i, 'YYYY MM Do'); - assert.equal(testMoment.year(), 2014, - 'lenient day of month ordinal parsing of number ' + i + ' year check'); - assert.equal(testMoment.month(), 0, - 'lenient day of month ordinal parsing of number ' + i + ' month check'); - assert.equal(testMoment.date(), i, - 'lenient day of month ordinal parsing of number ' + i + ' date check'); - } - }); - - test('strict day of month ordinal parsing', function (assert) { - var i, ordinalStr, testMoment; - for (i = 1; i <= 31; ++i) { - ordinalStr = moment([2014, 0, i]).format('YYYY MM Do'); - testMoment = moment(ordinalStr, 'YYYY MM Do', true); - assert.ok(testMoment.isValid(), 'strict day of month ordinal parsing ' + i); - } - }); - - test('meridiem invariant', function (assert) { - var h, m, t1, t2; - for (h = 0; h < 24; ++h) { - for (m = 0; m < 60; m += 15) { - t1 = moment.utc([2000, 0, 1, h, m]); - t2 = moment.utc(t1.format('A h:mm'), 'A h:mm'); - assert.equal(t2.format('HH:mm'), t1.format('HH:mm'), - 'meridiem at ' + t1.format('HH:mm')); - } - } - }); - - test('date format correctness', function (assert) { - var data, tokens; - data = moment.localeData()._longDateFormat; - tokens = objectKeys(data); - each(tokens, function (srchToken) { - // Check each format string to make sure it does not contain any - // tokens that need to be expanded. - each(tokens, function (baseToken) { - // strip escaped sequences - var format = data[baseToken].replace(/(\[[^\]]*\])/g, ''); - assert.equal(false, !!~format.indexOf(srchToken), - 'contains ' + srchToken + ' in ' + baseToken); - }); - }); - }); - - test('month parsing correctness', function (assert) { - var i, m; - - if (locale === 'tr') { - // I can't fix it :( - expect(0); - return; - } - function tester(format) { - var r; - r = moment(m.format(format), format); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format); - r = moment(m.format(format).toLocaleUpperCase(), format); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' upper'); - r = moment(m.format(format).toLocaleLowerCase(), format); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' lower'); - - r = moment(m.format(format), format, true); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' strict'); - r = moment(m.format(format).toLocaleUpperCase(), format, true); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' upper strict'); - r = moment(m.format(format).toLocaleLowerCase(), format, true); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' lower strict'); - } - - for (i = 0; i < 12; ++i) { - m = moment([2015, i, 15, 18]); - tester('MMM'); - tester('MMM.'); - tester('MMMM'); - tester('MMMM.'); - } - }); - - test('weekday parsing correctness', function (assert) { - var i, m; - - if (locale === 'tr' || locale === 'az' || locale === 'ro') { - // tr, az: There is a lower-case letter (ı), that converted to - // upper then lower changes to i - // ro: there is the letter ț which behaves weird under IE8 - expect(0); - return; - } - function tester(format) { - var r, baseMsg = 'weekday ' + m.weekday() + ' fmt ' + format + ' ' + m.toISOString(); - r = moment(m.format(format), format); - assert.equal(r.weekday(), m.weekday(), baseMsg); - r = moment(m.format(format).toLocaleUpperCase(), format); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' upper'); - r = moment(m.format(format).toLocaleLowerCase(), format); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' lower'); - - r = moment(m.format(format), format, true); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' strict'); - r = moment(m.format(format).toLocaleUpperCase(), format, true); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' upper strict'); - r = moment(m.format(format).toLocaleLowerCase(), format, true); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' lower strict'); - } - - for (i = 0; i < 7; ++i) { - m = moment.utc([2015, 0, i + 1, 18]); - tester('dd'); - tester('ddd'); - tester('dddd'); - } - }); - - test('valid localeData', function (assert) { - assert.equal(moment().localeData().months().length, 12, 'months should return 12 months'); - assert.equal(moment().localeData().monthsShort().length, 12, 'monthsShort should return 12 months'); - assert.equal(moment().localeData().weekdays().length, 7, 'weekdays should return 7 days'); - assert.equal(moment().localeData().weekdaysShort().length, 7, 'weekdaysShort should return 7 days'); - assert.equal(moment().localeData().weekdaysMin().length, 7, 'monthsShort should return 7 days'); - }); -} - -function setupDeprecationHandler(test, moment$$1, scope) { - test._expectedDeprecations = null; - test._observedDeprecations = null; - test._oldSupress = moment$$1.suppressDeprecationWarnings; - moment$$1.suppressDeprecationWarnings = true; - test.expectedDeprecations = function () { - test._expectedDeprecations = arguments; - test._observedDeprecations = []; - }; - moment$$1.deprecationHandler = function (name, msg) { - var deprecationId = matchedDeprecation(name, msg, test._expectedDeprecations); - if (deprecationId === -1) { - throw new Error('Unexpected deprecation thrown name=' + - name + ' msg=' + msg); - } - test._observedDeprecations[deprecationId] = 1; - }; -} - -function teardownDeprecationHandler(test, moment$$1, scope) { - moment$$1.suppressDeprecationWarnings = test._oldSupress; - - if (test._expectedDeprecations != null) { - var missedDeprecations = []; - each(test._expectedDeprecations, function (deprecationPattern, id) { - if (test._observedDeprecations[id] !== 1) { - missedDeprecations.push(deprecationPattern); - } - }); - if (missedDeprecations.length !== 0) { - throw new Error('Expected deprecation warnings did not happen: ' + - missedDeprecations.join(' ')); - } - } -} - -function matchedDeprecation(name, msg, deprecations) { - if (deprecations == null) { - return -1; - } - for (var i = 0; i < deprecations.length; ++i) { - if (name != null && name === deprecations[i]) { - return i; - } - if (msg != null && msg.substring(0, deprecations[i].length) === deprecations[i]) { - return i; - } - } - return -1; -} - -/*global QUnit:false*/ - -var test = QUnit.test; - -var expect = QUnit.expect; - - - -function localeModule (name, lifecycle) { - QUnit.module('locale:' + name, { - setup : function () { - moment.locale(name); - moment.createFromInputFallback = function (config) { - throw new Error('input not handled by moment: ' + config._i); - }; - setupDeprecationHandler(test, moment, 'locale'); - if (lifecycle && lifecycle.setup) { - lifecycle.setup(); - } - }, - teardown : function () { - moment.locale('en'); - teardownDeprecationHandler(test, moment, 'locale'); - if (lifecycle && lifecycle.teardown) { - lifecycle.teardown(); - } - } - }); - defineCommonLocaleTests(name, -1, -1); -} - -localeModule('fa'); - -test('parse', function (assert) { - var tests = 'ژانویه_فوریه_مارس_آوریل_مه_ژوئن_ژوئیه_اوت_سپتامبر_اکتبر_نوامبر_دسامبر'.split('_'), i; - function equalTest(input, mmm, i) { - assert.equal(moment(input, mmm).month(), i, input + ' should be month ' + (i + 1) + ' instead is month ' + moment(input, mmm).month()); - } - for (i = 0; i < 12; i++) { - equalTest(tests[i], 'MMM', i); - equalTest(tests[i], 'MMMM', i); - } -}); - -test('format', function (assert) { - var a = [ - ['dddd, MMMM Do YYYY, h:mm:ss a', 'یک\u200cشنبه، فوریه ۱۴م ۲۰۱۰، ۳:۲۵:۵۰ بعد از ظهر'], - ['ddd, hA', 'یک\u200cشنبه، ۳بعد از ظهر'], - ['M Mo MM MMMM MMM', '۲ ۲م ۰۲ فوریه فوریه'], - ['YYYY YY', '۲۰۱۰ ۱۰'], - ['D Do DD', '۱۴ ۱۴م ۱۴'], - ['d do dddd ddd dd', '۰ ۰م یک\u200cشنبه یک\u200cشنبه ی'], - ['DDD DDDo DDDD', '۴۵ ۴۵م ۰۴۵'], - ['w wo ww', '۸ ۸م ۰۸'], - ['h hh', '۳ ۰۳'], - ['H HH', '۱۵ ۱۵'], - ['m mm', '۲۵ ۲۵'], - ['s ss', '۵۰ ۵۰'], - ['a A', 'بعد از ظهر بعد از ظهر'], - ['DDDo [روز سال]', '۴۵م روز سال'], - ['LTS', '۱۵:۲۵:۵۰'], - ['L', '۱۴/۰۲/۲۰۱۰'], - ['LL', '۱۴ فوریه ۲۰۱۰'], - ['LLL', '۱۴ فوریه ۲۰۱۰ ۱۵:۲۵'], - ['LLLL', 'یک\u200cشنبه، ۱۴ فوریه ۲۰۱۰ ۱۵:۲۵'], - ['l', '۱۴/۲/۲۰۱۰'], - ['ll', '۱۴ فوریه ۲۰۱۰'], - ['lll', '۱۴ فوریه ۲۰۱۰ ۱۵:۲۵'], - ['llll', 'یک\u200cشنبه، ۱۴ فوریه ۲۰۱۰ ۱۵:۲۵'] - ], - b = moment(new Date(2010, 1, 14, 15, 25, 50, 125)), - i; - for (i = 0; i < a.length; i++) { - assert.equal(b.format(a[i][0]), a[i][1], a[i][0] + ' ---> ' + a[i][1]); - } -}); - -test('format ordinal', function (assert) { - assert.equal(moment([2011, 0, 1]).format('DDDo'), '۱م', '1'); - assert.equal(moment([2011, 0, 2]).format('DDDo'), '۲م', '2'); - assert.equal(moment([2011, 0, 3]).format('DDDo'), '۳م', '3'); - assert.equal(moment([2011, 0, 4]).format('DDDo'), '۴م', '4'); - assert.equal(moment([2011, 0, 5]).format('DDDo'), '۵م', '5'); - assert.equal(moment([2011, 0, 6]).format('DDDo'), '۶م', '6'); - assert.equal(moment([2011, 0, 7]).format('DDDo'), '۷م', '7'); - assert.equal(moment([2011, 0, 8]).format('DDDo'), '۸م', '8'); - assert.equal(moment([2011, 0, 9]).format('DDDo'), '۹م', '9'); - assert.equal(moment([2011, 0, 10]).format('DDDo'), '۱۰م', '10'); - - assert.equal(moment([2011, 0, 11]).format('DDDo'), '۱۱م', '11'); - assert.equal(moment([2011, 0, 12]).format('DDDo'), '۱۲م', '12'); - assert.equal(moment([2011, 0, 13]).format('DDDo'), '۱۳م', '13'); - assert.equal(moment([2011, 0, 14]).format('DDDo'), '۱۴م', '14'); - assert.equal(moment([2011, 0, 15]).format('DDDo'), '۱۵م', '15'); - assert.equal(moment([2011, 0, 16]).format('DDDo'), '۱۶م', '16'); - assert.equal(moment([2011, 0, 17]).format('DDDo'), '۱۷م', '17'); - assert.equal(moment([2011, 0, 18]).format('DDDo'), '۱۸م', '18'); - assert.equal(moment([2011, 0, 19]).format('DDDo'), '۱۹م', '19'); - assert.equal(moment([2011, 0, 20]).format('DDDo'), '۲۰م', '20'); - - assert.equal(moment([2011, 0, 21]).format('DDDo'), '۲۱م', '21'); - assert.equal(moment([2011, 0, 22]).format('DDDo'), '۲۲م', '22'); - assert.equal(moment([2011, 0, 23]).format('DDDo'), '۲۳م', '23'); - assert.equal(moment([2011, 0, 24]).format('DDDo'), '۲۴م', '24'); - assert.equal(moment([2011, 0, 25]).format('DDDo'), '۲۵م', '25'); - assert.equal(moment([2011, 0, 26]).format('DDDo'), '۲۶م', '26'); - assert.equal(moment([2011, 0, 27]).format('DDDo'), '۲۷م', '27'); - assert.equal(moment([2011, 0, 28]).format('DDDo'), '۲۸م', '28'); - assert.equal(moment([2011, 0, 29]).format('DDDo'), '۲۹م', '29'); - assert.equal(moment([2011, 0, 30]).format('DDDo'), '۳۰م', '30'); - - assert.equal(moment([2011, 0, 31]).format('DDDo'), '۳۱م', '31'); -}); - -test('format month', function (assert) { - var expected = 'ژانویه ژانویه_فوریه فوریه_مارس مارس_آوریل آوریل_مه مه_ژوئن ژوئن_ژوئیه ژوئیه_اوت اوت_سپتامبر سپتامبر_اکتبر اکتبر_نوامبر نوامبر_دسامبر دسامبر'.split('_'), i; - for (i = 0; i < expected.length; i++) { - assert.equal(moment([2011, i, 1]).format('MMMM MMM'), expected[i], expected[i]); - } -}); - -test('format week', function (assert) { - var expected = 'یک\u200cشنبه یک\u200cشنبه ی_دوشنبه دوشنبه د_سه\u200cشنبه سه\u200cشنبه س_چهارشنبه چهارشنبه چ_پنج\u200cشنبه پنج\u200cشنبه پ_جمعه جمعه ج_شنبه شنبه ش'.split('_'), i; - for (i = 0; i < expected.length; i++) { - assert.equal(moment([2011, 0, 2 + i]).format('dddd ddd dd'), expected[i], expected[i]); - } -}); - -test('from', function (assert) { - var start = moment([2007, 1, 28]); - assert.equal(start.from(moment([2007, 1, 28]).add({s: 44}), true), 'چند ثانیه', '44 seconds = a few seconds'); - assert.equal(start.from(moment([2007, 1, 28]).add({s: 45}), true), 'یک دقیقه', '45 seconds = a minute'); - assert.equal(start.from(moment([2007, 1, 28]).add({s: 89}), true), 'یک دقیقه', '89 seconds = a minute'); - assert.equal(start.from(moment([2007, 1, 28]).add({s: 90}), true), '۲ دقیقه', '90 seconds = 2 minutes'); - assert.equal(start.from(moment([2007, 1, 28]).add({m: 44}), true), '۴۴ دقیقه', '44 minutes = 44 minutes'); - assert.equal(start.from(moment([2007, 1, 28]).add({m: 45}), true), 'یک ساعت', '45 minutes = an hour'); - assert.equal(start.from(moment([2007, 1, 28]).add({m: 89}), true), 'یک ساعت', '89 minutes = an hour'); - assert.equal(start.from(moment([2007, 1, 28]).add({m: 90}), true), '۲ ساعت', '90 minutes = 2 hours'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 5}), true), '۵ ساعت', '5 hours = 5 hours'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 21}), true), '۲۱ ساعت', '21 hours = 21 hours'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 22}), true), 'یک روز', '22 hours = a day'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 35}), true), 'یک روز', '35 hours = a day'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 36}), true), '۲ روز', '36 hours = 2 days'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 1}), true), 'یک روز', '1 day = a day'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 5}), true), '۵ روز', '5 days = 5 days'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 25}), true), '۲۵ روز', '25 days = 25 days'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 26}), true), 'یک ماه', '26 days = a month'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 30}), true), 'یک ماه', '30 days = a month'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 43}), true), 'یک ماه', '43 days = a month'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 46}), true), '۲ ماه', '46 days = 2 months'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 74}), true), '۲ ماه', '75 days = 2 months'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 76}), true), '۳ ماه', '76 days = 3 months'); - assert.equal(start.from(moment([2007, 1, 28]).add({M: 1}), true), 'یک ماه', '1 month = a month'); - assert.equal(start.from(moment([2007, 1, 28]).add({M: 5}), true), '۵ ماه', '5 months = 5 months'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 345}), true), 'یک سال', '345 days = a year'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 548}), true), '۲ سال', '548 days = 2 years'); - assert.equal(start.from(moment([2007, 1, 28]).add({y: 1}), true), 'یک سال', '1 year = a year'); - assert.equal(start.from(moment([2007, 1, 28]).add({y: 5}), true), '۵ سال', '5 years = 5 years'); -}); - -test('suffix', function (assert) { - assert.equal(moment(30000).from(0), 'در چند ثانیه', 'prefix'); - assert.equal(moment(0).from(30000), 'چند ثانیه پیش', 'suffix'); -}); - -test('now from now', function (assert) { - assert.equal(moment().fromNow(), 'چند ثانیه پیش', 'now from now should display as in the past'); -}); - -test('fromNow', function (assert) { - assert.equal(moment().add({s: 30}).fromNow(), 'در چند ثانیه', 'in a few seconds'); - assert.equal(moment().add({d: 5}).fromNow(), 'در ۵ روز', 'in 5 days'); -}); - -test('calendar day', function (assert) { - var a = moment().hours(12).minutes(0).seconds(0); - - assert.equal(moment(a).calendar(), 'امروز ساعت ۱۲:۰۰', 'today at the same time'); - assert.equal(moment(a).add({m: 25}).calendar(), 'امروز ساعت ۱۲:۲۵', 'Now plus 25 min'); - assert.equal(moment(a).add({h: 1}).calendar(), 'امروز ساعت ۱۳:۰۰', 'Now plus 1 hour'); - assert.equal(moment(a).add({d: 1}).calendar(), 'فردا ساعت ۱۲:۰۰', 'tomorrow at the same time'); - assert.equal(moment(a).subtract({h: 1}).calendar(), 'امروز ساعت ۱۱:۰۰', 'Now minus 1 hour'); - assert.equal(moment(a).subtract({d: 1}).calendar(), 'دیروز ساعت ۱۲:۰۰', 'yesterday at the same time'); -}); - -test('calendar next week', function (assert) { - var i, m; - for (i = 2; i < 7; i++) { - m = moment().add({d: i}); - assert.equal(m.calendar(), m.format('dddd [ساعت] LT'), 'Today + ' + i + ' days current time'); - m.hours(0).minutes(0).seconds(0).milliseconds(0); - assert.equal(m.calendar(), m.format('dddd [ساعت] LT'), 'Today + ' + i + ' days beginning of day'); - m.hours(23).minutes(59).seconds(59).milliseconds(999); - assert.equal(m.calendar(), m.format('dddd [ساعت] LT'), 'Today + ' + i + ' days end of day'); - } -}); - -test('calendar last week', function (assert) { - var i, m; - for (i = 2; i < 7; i++) { - m = moment().subtract({d: i}); - assert.equal(m.calendar(), m.format('dddd [پیش ساعت] LT'), 'Today - ' + i + ' days current time'); - m.hours(0).minutes(0).seconds(0).milliseconds(0); - assert.equal(m.calendar(), m.format('dddd [پیش ساعت] LT'), 'Today - ' + i + ' days beginning of day'); - m.hours(23).minutes(59).seconds(59).milliseconds(999); - assert.equal(m.calendar(), m.format('dddd [پیش ساعت] LT'), 'Today - ' + i + ' days end of day'); - } -}); - -test('calendar all else', function (assert) { - var weeksAgo = moment().subtract({w: 1}), - weeksFromNow = moment().add({w: 1}); - - assert.equal(weeksAgo.calendar(), weeksAgo.format('L'), '1 week ago'); - assert.equal(weeksFromNow.calendar(), weeksFromNow.format('L'), 'in 1 week'); - - weeksAgo = moment().subtract({w: 2}); - weeksFromNow = moment().add({w: 2}); - - assert.equal(weeksAgo.calendar(), weeksAgo.format('L'), '2 weeks ago'); - assert.equal(weeksFromNow.calendar(), weeksFromNow.format('L'), 'in 2 weeks'); -}); - -test('weeks year starting sunday formatted', function (assert) { - assert.equal(moment([2011, 11, 31]).format('w ww wo'), '۱ ۰۱ ۱م', 'Dec 31 2011 should be week 1'); - assert.equal(moment([2012, 0, 6]).format('w ww wo'), '۱ ۰۱ ۱م', 'Jan 6 2012 should be week 1'); - assert.equal(moment([2012, 0, 7]).format('w ww wo'), '۲ ۰۲ ۲م', 'Jan 7 2012 should be week 2'); - assert.equal(moment([2012, 0, 13]).format('w ww wo'), '۲ ۰۲ ۲م', 'Jan 13 2012 should be week 2'); - assert.equal(moment([2012, 0, 14]).format('w ww wo'), '۳ ۰۳ ۳م', 'Jan 14 2012 should be week 3'); -}); - -}))); - - -;(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' - && typeof require === 'function' ? factory(require('../../moment')) : - typeof define === 'function' && define.amd ? define(['../../moment'], factory) : - factory(global.moment) -}(this, (function (moment) { 'use strict'; - -function each(array, callback) { - var i; - for (i = 0; i < array.length; i++) { - callback(array[i], i, array); - } -} - -function objectKeys(obj) { - if (Object.keys) { - return Object.keys(obj); - } else { - // IE8 - var res = [], i; - for (i in obj) { - if (obj.hasOwnProperty(i)) { - res.push(i); - } - } - return res; - } -} - -// Pick the first defined of two or three arguments. - -function defineCommonLocaleTests(locale, options) { - test('lenient day of month ordinal parsing', function (assert) { - var i, ordinalStr, testMoment; - for (i = 1; i <= 31; ++i) { - ordinalStr = moment([2014, 0, i]).format('YYYY MM Do'); - testMoment = moment(ordinalStr, 'YYYY MM Do'); - assert.equal(testMoment.year(), 2014, - 'lenient day of month ordinal parsing ' + i + ' year check'); - assert.equal(testMoment.month(), 0, - 'lenient day of month ordinal parsing ' + i + ' month check'); - assert.equal(testMoment.date(), i, - 'lenient day of month ordinal parsing ' + i + ' date check'); - } - }); - - test('lenient day of month ordinal parsing of number', function (assert) { - var i, testMoment; - for (i = 1; i <= 31; ++i) { - testMoment = moment('2014 01 ' + i, 'YYYY MM Do'); - assert.equal(testMoment.year(), 2014, - 'lenient day of month ordinal parsing of number ' + i + ' year check'); - assert.equal(testMoment.month(), 0, - 'lenient day of month ordinal parsing of number ' + i + ' month check'); - assert.equal(testMoment.date(), i, - 'lenient day of month ordinal parsing of number ' + i + ' date check'); - } - }); - - test('strict day of month ordinal parsing', function (assert) { - var i, ordinalStr, testMoment; - for (i = 1; i <= 31; ++i) { - ordinalStr = moment([2014, 0, i]).format('YYYY MM Do'); - testMoment = moment(ordinalStr, 'YYYY MM Do', true); - assert.ok(testMoment.isValid(), 'strict day of month ordinal parsing ' + i); - } - }); - - test('meridiem invariant', function (assert) { - var h, m, t1, t2; - for (h = 0; h < 24; ++h) { - for (m = 0; m < 60; m += 15) { - t1 = moment.utc([2000, 0, 1, h, m]); - t2 = moment.utc(t1.format('A h:mm'), 'A h:mm'); - assert.equal(t2.format('HH:mm'), t1.format('HH:mm'), - 'meridiem at ' + t1.format('HH:mm')); - } - } - }); - - test('date format correctness', function (assert) { - var data, tokens; - data = moment.localeData()._longDateFormat; - tokens = objectKeys(data); - each(tokens, function (srchToken) { - // Check each format string to make sure it does not contain any - // tokens that need to be expanded. - each(tokens, function (baseToken) { - // strip escaped sequences - var format = data[baseToken].replace(/(\[[^\]]*\])/g, ''); - assert.equal(false, !!~format.indexOf(srchToken), - 'contains ' + srchToken + ' in ' + baseToken); - }); - }); - }); - - test('month parsing correctness', function (assert) { - var i, m; - - if (locale === 'tr') { - // I can't fix it :( - expect(0); - return; - } - function tester(format) { - var r; - r = moment(m.format(format), format); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format); - r = moment(m.format(format).toLocaleUpperCase(), format); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' upper'); - r = moment(m.format(format).toLocaleLowerCase(), format); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' lower'); - - r = moment(m.format(format), format, true); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' strict'); - r = moment(m.format(format).toLocaleUpperCase(), format, true); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' upper strict'); - r = moment(m.format(format).toLocaleLowerCase(), format, true); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' lower strict'); - } - - for (i = 0; i < 12; ++i) { - m = moment([2015, i, 15, 18]); - tester('MMM'); - tester('MMM.'); - tester('MMMM'); - tester('MMMM.'); - } - }); - - test('weekday parsing correctness', function (assert) { - var i, m; - - if (locale === 'tr' || locale === 'az' || locale === 'ro') { - // tr, az: There is a lower-case letter (ı), that converted to - // upper then lower changes to i - // ro: there is the letter ț which behaves weird under IE8 - expect(0); - return; - } - function tester(format) { - var r, baseMsg = 'weekday ' + m.weekday() + ' fmt ' + format + ' ' + m.toISOString(); - r = moment(m.format(format), format); - assert.equal(r.weekday(), m.weekday(), baseMsg); - r = moment(m.format(format).toLocaleUpperCase(), format); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' upper'); - r = moment(m.format(format).toLocaleLowerCase(), format); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' lower'); - - r = moment(m.format(format), format, true); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' strict'); - r = moment(m.format(format).toLocaleUpperCase(), format, true); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' upper strict'); - r = moment(m.format(format).toLocaleLowerCase(), format, true); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' lower strict'); - } - - for (i = 0; i < 7; ++i) { - m = moment.utc([2015, 0, i + 1, 18]); - tester('dd'); - tester('ddd'); - tester('dddd'); - } - }); - - test('valid localeData', function (assert) { - assert.equal(moment().localeData().months().length, 12, 'months should return 12 months'); - assert.equal(moment().localeData().monthsShort().length, 12, 'monthsShort should return 12 months'); - assert.equal(moment().localeData().weekdays().length, 7, 'weekdays should return 7 days'); - assert.equal(moment().localeData().weekdaysShort().length, 7, 'weekdaysShort should return 7 days'); - assert.equal(moment().localeData().weekdaysMin().length, 7, 'monthsShort should return 7 days'); - }); -} - -function setupDeprecationHandler(test, moment$$1, scope) { - test._expectedDeprecations = null; - test._observedDeprecations = null; - test._oldSupress = moment$$1.suppressDeprecationWarnings; - moment$$1.suppressDeprecationWarnings = true; - test.expectedDeprecations = function () { - test._expectedDeprecations = arguments; - test._observedDeprecations = []; - }; - moment$$1.deprecationHandler = function (name, msg) { - var deprecationId = matchedDeprecation(name, msg, test._expectedDeprecations); - if (deprecationId === -1) { - throw new Error('Unexpected deprecation thrown name=' + - name + ' msg=' + msg); - } - test._observedDeprecations[deprecationId] = 1; - }; -} - -function teardownDeprecationHandler(test, moment$$1, scope) { - moment$$1.suppressDeprecationWarnings = test._oldSupress; - - if (test._expectedDeprecations != null) { - var missedDeprecations = []; - each(test._expectedDeprecations, function (deprecationPattern, id) { - if (test._observedDeprecations[id] !== 1) { - missedDeprecations.push(deprecationPattern); - } - }); - if (missedDeprecations.length !== 0) { - throw new Error('Expected deprecation warnings did not happen: ' + - missedDeprecations.join(' ')); - } - } -} - -function matchedDeprecation(name, msg, deprecations) { - if (deprecations == null) { - return -1; - } - for (var i = 0; i < deprecations.length; ++i) { - if (name != null && name === deprecations[i]) { - return i; - } - if (msg != null && msg.substring(0, deprecations[i].length) === deprecations[i]) { - return i; - } - } - return -1; -} - -/*global QUnit:false*/ - -var test = QUnit.test; - -var expect = QUnit.expect; - - - -function localeModule (name, lifecycle) { - QUnit.module('locale:' + name, { - setup : function () { - moment.locale(name); - moment.createFromInputFallback = function (config) { - throw new Error('input not handled by moment: ' + config._i); - }; - setupDeprecationHandler(test, moment, 'locale'); - if (lifecycle && lifecycle.setup) { - lifecycle.setup(); - } - }, - teardown : function () { - moment.locale('en'); - teardownDeprecationHandler(test, moment, 'locale'); - if (lifecycle && lifecycle.teardown) { - lifecycle.teardown(); - } - } - }); - defineCommonLocaleTests(name, -1, -1); -} - -localeModule('fi'); - -test('parse', function (assert) { - var tests = 'tammikuu tammi_helmikuu helmi_maaliskuu maalis_huhtikuu huhti_toukokuu touko_kesäkuu kesä_heinäkuu heinä_elokuu elo_syyskuu syys_lokakuu loka_marraskuu marras_joulukuu joulu'.split('_'), i; - function equalTest(input, mmm, i) { - assert.equal(moment(input, mmm).month(), i, input + ' should be month ' + (i + 1)); - } - for (i = 0; i < 12; i++) { - tests[i] = tests[i].split(' '); - equalTest(tests[i][0], 'MMM', i); - equalTest(tests[i][1], 'MMM', i); - equalTest(tests[i][0], 'MMMM', i); - equalTest(tests[i][1], 'MMMM', i); - equalTest(tests[i][0].toLocaleLowerCase(), 'MMMM', i); - equalTest(tests[i][1].toLocaleLowerCase(), 'MMMM', i); - equalTest(tests[i][0].toLocaleUpperCase(), 'MMMM', i); - equalTest(tests[i][1].toLocaleUpperCase(), 'MMMM', i); - } -}); - -test('format', function (assert) { - var a = [ - ['dddd, MMMM Do YYYY, h:mm:ss a', 'sunnuntai, helmikuu 14. 2010, 3:25:50 pm'], - ['ddd, hA', 'su, 3PM'], - ['M Mo MM MMMM MMM', '2 2. 02 helmikuu helmi'], - ['YYYY YY', '2010 10'], - ['D Do DD', '14 14. 14'], - ['d do dddd ddd dd', '0 0. sunnuntai su su'], - ['DDD DDDo DDDD', '45 45. 045'], - ['w wo ww', '6 6. 06'], - ['h hh', '3 03'], - ['H HH', '15 15'], - ['m mm', '25 25'], - ['s ss', '50 50'], - ['a A', 'pm PM'], - ['[vuoden] DDDo [päivä]', 'vuoden 45. päivä'], - ['LTS', '15.25.50'], - ['L', '14.02.2010'], - ['LL', '14. helmikuuta 2010'], - ['LLL', '14. helmikuuta 2010, klo 15.25'], - ['LLLL', 'sunnuntai, 14. helmikuuta 2010, klo 15.25'], - ['l', '14.2.2010'], - ['ll', '14. helmi 2010'], - ['lll', '14. helmi 2010, klo 15.25'], - ['llll', 'su, 14. helmi 2010, klo 15.25'] - ], - b = moment(new Date(2010, 1, 14, 15, 25, 50, 125)), - i; - for (i = 0; i < a.length; i++) { - assert.equal(b.format(a[i][0]), a[i][1], a[i][0] + ' ---> ' + a[i][1]); - } -}); - -test('format ordinal', function (assert) { - assert.equal(moment([2011, 0, 1]).format('DDDo'), '1.', '1st'); - assert.equal(moment([2011, 0, 2]).format('DDDo'), '2.', '2nd'); - assert.equal(moment([2011, 0, 3]).format('DDDo'), '3.', '3rd'); - assert.equal(moment([2011, 0, 4]).format('DDDo'), '4.', '4th'); - assert.equal(moment([2011, 0, 5]).format('DDDo'), '5.', '5th'); - assert.equal(moment([2011, 0, 6]).format('DDDo'), '6.', '6th'); - assert.equal(moment([2011, 0, 7]).format('DDDo'), '7.', '7th'); - assert.equal(moment([2011, 0, 8]).format('DDDo'), '8.', '8th'); - assert.equal(moment([2011, 0, 9]).format('DDDo'), '9.', '9th'); - assert.equal(moment([2011, 0, 10]).format('DDDo'), '10.', '10th'); - - assert.equal(moment([2011, 0, 11]).format('DDDo'), '11.', '11th'); - assert.equal(moment([2011, 0, 12]).format('DDDo'), '12.', '12th'); - assert.equal(moment([2011, 0, 13]).format('DDDo'), '13.', '13th'); - assert.equal(moment([2011, 0, 14]).format('DDDo'), '14.', '14th'); - assert.equal(moment([2011, 0, 15]).format('DDDo'), '15.', '15th'); - assert.equal(moment([2011, 0, 16]).format('DDDo'), '16.', '16th'); - assert.equal(moment([2011, 0, 17]).format('DDDo'), '17.', '17th'); - assert.equal(moment([2011, 0, 18]).format('DDDo'), '18.', '18th'); - assert.equal(moment([2011, 0, 19]).format('DDDo'), '19.', '19th'); - assert.equal(moment([2011, 0, 20]).format('DDDo'), '20.', '20th'); - - assert.equal(moment([2011, 0, 21]).format('DDDo'), '21.', '21st'); - assert.equal(moment([2011, 0, 22]).format('DDDo'), '22.', '22nd'); - assert.equal(moment([2011, 0, 23]).format('DDDo'), '23.', '23rd'); - assert.equal(moment([2011, 0, 24]).format('DDDo'), '24.', '24th'); - assert.equal(moment([2011, 0, 25]).format('DDDo'), '25.', '25th'); - assert.equal(moment([2011, 0, 26]).format('DDDo'), '26.', '26th'); - assert.equal(moment([2011, 0, 27]).format('DDDo'), '27.', '27th'); - assert.equal(moment([2011, 0, 28]).format('DDDo'), '28.', '28th'); - assert.equal(moment([2011, 0, 29]).format('DDDo'), '29.', '29th'); - assert.equal(moment([2011, 0, 30]).format('DDDo'), '30.', '30th'); - - assert.equal(moment([2011, 0, 31]).format('DDDo'), '31.', '31st'); -}); - -test('format month', function (assert) { - var expected = 'tammikuu tammi_helmikuu helmi_maaliskuu maalis_huhtikuu huhti_toukokuu touko_kesäkuu kesä_heinäkuu heinä_elokuu elo_syyskuu syys_lokakuu loka_marraskuu marras_joulukuu joulu'.split('_'), i; - for (i = 0; i < expected.length; i++) { - assert.equal(moment([2011, i, 1]).format('MMMM MMM'), expected[i], expected[i]); - } -}); - -test('format week', function (assert) { - var expected = 'sunnuntai su su_maanantai ma ma_tiistai ti ti_keskiviikko ke ke_torstai to to_perjantai pe pe_lauantai la la'.split('_'), i; - for (i = 0; i < expected.length; i++) { - assert.equal(moment([2011, 0, 2 + i]).format('dddd ddd dd'), expected[i], expected[i]); - } -}); - -test('from', function (assert) { - var start = moment([2007, 1, 28]); - assert.equal(start.from(moment([2007, 1, 28]).add({s: 44}), true), 'muutama sekunti', '44 seconds = few seconds'); - assert.equal(start.from(moment([2007, 1, 28]).add({s: 45}), true), 'minuutti', '45 seconds = a minute'); - assert.equal(start.from(moment([2007, 1, 28]).add({s: 89}), true), 'minuutti', '89 seconds = a minute'); - assert.equal(start.from(moment([2007, 1, 28]).add({s: 90}), true), 'kaksi minuuttia', '90 seconds = 2 minutes'); - assert.equal(start.from(moment([2007, 1, 28]).add({m: 44}), true), '44 minuuttia', '44 minutes = 44 minutes'); - assert.equal(start.from(moment([2007, 1, 28]).add({m: 45}), true), 'tunti', '45 minutes = an hour'); - assert.equal(start.from(moment([2007, 1, 28]).add({m: 89}), true), 'tunti', '89 minutes = an hour'); - assert.equal(start.from(moment([2007, 1, 28]).add({m: 90}), true), 'kaksi tuntia', '90 minutes = 2 hours'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 5}), true), 'viisi tuntia', '5 hours = 5 hours'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 21}), true), '21 tuntia', '21 hours = 21 hours'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 22}), true), 'päivä', '22 hours = a day'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 35}), true), 'päivä', '35 hours = a day'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 36}), true), 'kaksi päivää', '36 hours = 2 days'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 1}), true), 'päivä', '1 day = a day'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 5}), true), 'viisi päivää', '5 days = 5 days'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 25}), true), '25 päivää', '25 days = 25 days'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 26}), true), 'kuukausi', '26 days = a month'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 30}), true), 'kuukausi', '30 days = a month'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 43}), true), 'kuukausi', '43 days = a month'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 46}), true), 'kaksi kuukautta', '46 days = 2 months'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 74}), true), 'kaksi kuukautta', '75 days = 2 months'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 76}), true), 'kolme kuukautta', '76 days = 3 months'); - assert.equal(start.from(moment([2007, 1, 28]).add({M: 1}), true), 'kuukausi', '1 month = a month'); - assert.equal(start.from(moment([2007, 1, 28]).add({M: 5}), true), 'viisi kuukautta', '5 months = 5 months'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 345}), true), 'vuosi', '345 days = a year'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 548}), true), 'kaksi vuotta', '548 days = 2 years'); - assert.equal(start.from(moment([2007, 1, 28]).add({y: 1}), true), 'vuosi', '1 year = a year'); - assert.equal(start.from(moment([2007, 1, 28]).add({y: 5}), true), 'viisi vuotta', '5 years = 5 years'); -}); - -test('suffix', function (assert) { - assert.equal(moment(30000).from(0), 'muutaman sekunnin päästä', 'prefix'); - assert.equal(moment(0).from(30000), 'muutama sekunti sitten', 'suffix'); -}); - -test('now from now', function (assert) { - assert.equal(moment().fromNow(), 'muutama sekunti sitten', 'now from now should display as in the past'); -}); - -test('fromNow', function (assert) { - assert.equal(moment().add({s: 30}).fromNow(), 'muutaman sekunnin päästä', 'in a few seconds'); - assert.equal(moment().add({d: 5}).fromNow(), 'viiden päivän päästä', 'in 5 days'); -}); - -test('calendar day', function (assert) { - var a = moment().hours(12).minutes(0).seconds(0); - - assert.equal(moment(a).calendar(), 'tänään klo 12.00', 'today at the same time'); - assert.equal(moment(a).add({m: 25}).calendar(), 'tänään klo 12.25', 'Now plus 25 min'); - assert.equal(moment(a).add({h: 1}).calendar(), 'tänään klo 13.00', 'Now plus 1 hour'); - assert.equal(moment(a).add({d: 1}).calendar(), 'huomenna klo 12.00', 'tomorrow at the same time'); - assert.equal(moment(a).subtract({h: 1}).calendar(), 'tänään klo 11.00', 'Now minus 1 hour'); - assert.equal(moment(a).subtract({d: 1}).calendar(), 'eilen klo 12.00', 'yesterday at the same time'); -}); - -test('calendar next week', function (assert) { - var i, m; - - for (i = 2; i < 7; i++) { - m = moment().add({d: i}); - assert.equal(m.calendar(), m.format('dddd [klo] LT'), 'today + ' + i + ' days current time'); - m.hours(0).minutes(0).seconds(0).milliseconds(0); - assert.equal(m.calendar(), m.format('dddd [klo] LT'), 'today + ' + i + ' days beginning of day'); - m.hours(23).minutes(59).seconds(59).milliseconds(999); - assert.equal(m.calendar(), m.format('dddd [klo] LT'), 'today + ' + i + ' days end of day'); - } -}); - -test('calendar last week', function (assert) { - var i, m; - for (i = 2; i < 7; i++) { - m = moment().subtract({d: i}); - assert.equal(m.calendar(), m.format('[viime] dddd[na] [klo] LT'), 'today - ' + i + ' days current time'); - m.hours(0).minutes(0).seconds(0).milliseconds(0); - assert.equal(m.calendar(), m.format('[viime] dddd[na] [klo] LT'), 'today - ' + i + ' days beginning of day'); - m.hours(23).minutes(59).seconds(59).milliseconds(999); - assert.equal(m.calendar(), m.format('[viime] dddd[na] [klo] LT'), 'today - ' + i + ' days end of day'); - } -}); - -test('calendar all else', function (assert) { - var weeksAgo = moment().subtract({w: 1}), - weeksFromNow = moment().add({w: 1}); - - assert.equal(weeksAgo.calendar(), weeksAgo.format('L'), 'yksi viikko sitten'); - assert.equal(weeksFromNow.calendar(), weeksFromNow.format('L'), 'yhden viikon päästä'); - - weeksAgo = moment().subtract({w: 2}); - weeksFromNow = moment().add({w: 2}); - - assert.equal(weeksAgo.calendar(), weeksAgo.format('L'), 'kaksi viikkoa sitten'); - assert.equal(weeksFromNow.calendar(), weeksFromNow.format('L'), 'kaden viikon päästä'); -}); - -test('weeks year starting sunday formatted', function (assert) { - assert.equal(moment([2012, 0, 1]).format('w ww wo'), '52 52 52.', 'Jan 1 2012 should be week 52'); - assert.equal(moment([2012, 0, 2]).format('w ww wo'), '1 01 1.', 'Jan 2 2012 should be week 1'); - assert.equal(moment([2012, 0, 8]).format('w ww wo'), '1 01 1.', 'Jan 8 2012 should be week 1'); - assert.equal(moment([2012, 0, 9]).format('w ww wo'), '2 02 2.', 'Jan 9 2012 should be week 2'); - assert.equal(moment([2012, 0, 15]).format('w ww wo'), '2 02 2.', 'Jan 15 2012 should be week 2'); -}); - -}))); - - -;(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' - && typeof require === 'function' ? factory(require('../../moment')) : - typeof define === 'function' && define.amd ? define(['../../moment'], factory) : - factory(global.moment) -}(this, (function (moment) { 'use strict'; - -function each(array, callback) { - var i; - for (i = 0; i < array.length; i++) { - callback(array[i], i, array); - } -} - -function objectKeys(obj) { - if (Object.keys) { - return Object.keys(obj); - } else { - // IE8 - var res = [], i; - for (i in obj) { - if (obj.hasOwnProperty(i)) { - res.push(i); - } - } - return res; - } -} - -// Pick the first defined of two or three arguments. - -function defineCommonLocaleTests(locale, options) { - test('lenient day of month ordinal parsing', function (assert) { - var i, ordinalStr, testMoment; - for (i = 1; i <= 31; ++i) { - ordinalStr = moment([2014, 0, i]).format('YYYY MM Do'); - testMoment = moment(ordinalStr, 'YYYY MM Do'); - assert.equal(testMoment.year(), 2014, - 'lenient day of month ordinal parsing ' + i + ' year check'); - assert.equal(testMoment.month(), 0, - 'lenient day of month ordinal parsing ' + i + ' month check'); - assert.equal(testMoment.date(), i, - 'lenient day of month ordinal parsing ' + i + ' date check'); - } - }); - - test('lenient day of month ordinal parsing of number', function (assert) { - var i, testMoment; - for (i = 1; i <= 31; ++i) { - testMoment = moment('2014 01 ' + i, 'YYYY MM Do'); - assert.equal(testMoment.year(), 2014, - 'lenient day of month ordinal parsing of number ' + i + ' year check'); - assert.equal(testMoment.month(), 0, - 'lenient day of month ordinal parsing of number ' + i + ' month check'); - assert.equal(testMoment.date(), i, - 'lenient day of month ordinal parsing of number ' + i + ' date check'); - } - }); - - test('strict day of month ordinal parsing', function (assert) { - var i, ordinalStr, testMoment; - for (i = 1; i <= 31; ++i) { - ordinalStr = moment([2014, 0, i]).format('YYYY MM Do'); - testMoment = moment(ordinalStr, 'YYYY MM Do', true); - assert.ok(testMoment.isValid(), 'strict day of month ordinal parsing ' + i); - } - }); - - test('meridiem invariant', function (assert) { - var h, m, t1, t2; - for (h = 0; h < 24; ++h) { - for (m = 0; m < 60; m += 15) { - t1 = moment.utc([2000, 0, 1, h, m]); - t2 = moment.utc(t1.format('A h:mm'), 'A h:mm'); - assert.equal(t2.format('HH:mm'), t1.format('HH:mm'), - 'meridiem at ' + t1.format('HH:mm')); - } - } - }); - - test('date format correctness', function (assert) { - var data, tokens; - data = moment.localeData()._longDateFormat; - tokens = objectKeys(data); - each(tokens, function (srchToken) { - // Check each format string to make sure it does not contain any - // tokens that need to be expanded. - each(tokens, function (baseToken) { - // strip escaped sequences - var format = data[baseToken].replace(/(\[[^\]]*\])/g, ''); - assert.equal(false, !!~format.indexOf(srchToken), - 'contains ' + srchToken + ' in ' + baseToken); - }); - }); - }); - - test('month parsing correctness', function (assert) { - var i, m; - - if (locale === 'tr') { - // I can't fix it :( - expect(0); - return; - } - function tester(format) { - var r; - r = moment(m.format(format), format); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format); - r = moment(m.format(format).toLocaleUpperCase(), format); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' upper'); - r = moment(m.format(format).toLocaleLowerCase(), format); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' lower'); - - r = moment(m.format(format), format, true); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' strict'); - r = moment(m.format(format).toLocaleUpperCase(), format, true); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' upper strict'); - r = moment(m.format(format).toLocaleLowerCase(), format, true); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' lower strict'); - } - - for (i = 0; i < 12; ++i) { - m = moment([2015, i, 15, 18]); - tester('MMM'); - tester('MMM.'); - tester('MMMM'); - tester('MMMM.'); - } - }); - - test('weekday parsing correctness', function (assert) { - var i, m; - - if (locale === 'tr' || locale === 'az' || locale === 'ro') { - // tr, az: There is a lower-case letter (ı), that converted to - // upper then lower changes to i - // ro: there is the letter ț which behaves weird under IE8 - expect(0); - return; - } - function tester(format) { - var r, baseMsg = 'weekday ' + m.weekday() + ' fmt ' + format + ' ' + m.toISOString(); - r = moment(m.format(format), format); - assert.equal(r.weekday(), m.weekday(), baseMsg); - r = moment(m.format(format).toLocaleUpperCase(), format); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' upper'); - r = moment(m.format(format).toLocaleLowerCase(), format); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' lower'); - - r = moment(m.format(format), format, true); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' strict'); - r = moment(m.format(format).toLocaleUpperCase(), format, true); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' upper strict'); - r = moment(m.format(format).toLocaleLowerCase(), format, true); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' lower strict'); - } - - for (i = 0; i < 7; ++i) { - m = moment.utc([2015, 0, i + 1, 18]); - tester('dd'); - tester('ddd'); - tester('dddd'); - } - }); - - test('valid localeData', function (assert) { - assert.equal(moment().localeData().months().length, 12, 'months should return 12 months'); - assert.equal(moment().localeData().monthsShort().length, 12, 'monthsShort should return 12 months'); - assert.equal(moment().localeData().weekdays().length, 7, 'weekdays should return 7 days'); - assert.equal(moment().localeData().weekdaysShort().length, 7, 'weekdaysShort should return 7 days'); - assert.equal(moment().localeData().weekdaysMin().length, 7, 'monthsShort should return 7 days'); - }); -} - -function setupDeprecationHandler(test, moment$$1, scope) { - test._expectedDeprecations = null; - test._observedDeprecations = null; - test._oldSupress = moment$$1.suppressDeprecationWarnings; - moment$$1.suppressDeprecationWarnings = true; - test.expectedDeprecations = function () { - test._expectedDeprecations = arguments; - test._observedDeprecations = []; - }; - moment$$1.deprecationHandler = function (name, msg) { - var deprecationId = matchedDeprecation(name, msg, test._expectedDeprecations); - if (deprecationId === -1) { - throw new Error('Unexpected deprecation thrown name=' + - name + ' msg=' + msg); - } - test._observedDeprecations[deprecationId] = 1; - }; -} - -function teardownDeprecationHandler(test, moment$$1, scope) { - moment$$1.suppressDeprecationWarnings = test._oldSupress; - - if (test._expectedDeprecations != null) { - var missedDeprecations = []; - each(test._expectedDeprecations, function (deprecationPattern, id) { - if (test._observedDeprecations[id] !== 1) { - missedDeprecations.push(deprecationPattern); - } - }); - if (missedDeprecations.length !== 0) { - throw new Error('Expected deprecation warnings did not happen: ' + - missedDeprecations.join(' ')); - } - } -} - -function matchedDeprecation(name, msg, deprecations) { - if (deprecations == null) { - return -1; - } - for (var i = 0; i < deprecations.length; ++i) { - if (name != null && name === deprecations[i]) { - return i; - } - if (msg != null && msg.substring(0, deprecations[i].length) === deprecations[i]) { - return i; - } - } - return -1; -} - -/*global QUnit:false*/ - -var test = QUnit.test; - -var expect = QUnit.expect; - - - -function localeModule (name, lifecycle) { - QUnit.module('locale:' + name, { - setup : function () { - moment.locale(name); - moment.createFromInputFallback = function (config) { - throw new Error('input not handled by moment: ' + config._i); - }; - setupDeprecationHandler(test, moment, 'locale'); - if (lifecycle && lifecycle.setup) { - lifecycle.setup(); - } - }, - teardown : function () { - moment.locale('en'); - teardownDeprecationHandler(test, moment, 'locale'); - if (lifecycle && lifecycle.teardown) { - lifecycle.teardown(); - } - } - }); - defineCommonLocaleTests(name, -1, -1); -} - -localeModule('fo'); - -test('parse', function (assert) { - var tests = 'januar jan_februar feb_mars mar_apríl apr_mai mai_juni jun_juli jul_august aug_september sep_oktober okt_november nov_desember des'.split('_'), i; - function equalTest(input, mmm, i) { - assert.equal(moment(input, mmm).month(), i, input + ' should be month ' + (i + 1)); - } - for (i = 0; i < 12; i++) { - tests[i] = tests[i].split(' '); - equalTest(tests[i][0], 'MMM', i); - equalTest(tests[i][1], 'MMM', i); - equalTest(tests[i][0], 'MMMM', i); - equalTest(tests[i][1], 'MMMM', i); - equalTest(tests[i][0].toLocaleLowerCase(), 'MMMM', i); - equalTest(tests[i][1].toLocaleLowerCase(), 'MMMM', i); - equalTest(tests[i][0].toLocaleUpperCase(), 'MMMM', i); - equalTest(tests[i][1].toLocaleUpperCase(), 'MMMM', i); - } -}); - -test('format', function (assert) { - var a = [ - ['dddd [tann] Do MMMM YYYY, h:mm:ss a', 'sunnudagur tann 14. februar 2010, 3:25:50 pm'], - ['ddd hA', 'sun 3PM'], - ['M Mo MM MMMM MMM', '2 2. 02 februar feb'], - ['YYYY YY', '2010 10'], - ['D Do DD', '14 14. 14'], - ['d do dddd ddd dd', '0 0. sunnudagur sun su'], - ['DDD DDDo DDDD', '45 45. 045'], - ['w wo ww', '6 6. 06'], - ['h hh', '3 03'], - ['H HH', '15 15'], - ['m mm', '25 25'], - ['s ss', '50 50'], - ['a A', 'pm PM'], - ['[tann] DDDo [dagin á árinum]', 'tann 45. dagin á árinum'], - ['LTS', '15:25:50'], - ['L', '14/02/2010'], - ['LL', '14 februar 2010'], - ['LLL', '14 februar 2010 15:25'], - ['LLLL', 'sunnudagur 14. februar, 2010 15:25'], - ['l', '14/2/2010'], - ['ll', '14 feb 2010'], - ['lll', '14 feb 2010 15:25'], - ['llll', 'sun 14. feb, 2010 15:25'] - ], - b = moment(new Date(2010, 1, 14, 15, 25, 50, 125)), - i; - for (i = 0; i < a.length; i++) { - assert.equal(b.format(a[i][0]), a[i][1], a[i][0] + ' ---> ' + a[i][1]); - } -}); - -test('format ordinal', function (assert) { - assert.equal(moment([2011, 0, 1]).format('DDDo'), '1.', '1.'); - assert.equal(moment([2011, 0, 2]).format('DDDo'), '2.', '2.'); - assert.equal(moment([2011, 0, 3]).format('DDDo'), '3.', '3.'); - assert.equal(moment([2011, 0, 4]).format('DDDo'), '4.', '4.'); - assert.equal(moment([2011, 0, 5]).format('DDDo'), '5.', '5.'); - assert.equal(moment([2011, 0, 6]).format('DDDo'), '6.', '6.'); - assert.equal(moment([2011, 0, 7]).format('DDDo'), '7.', '7.'); - assert.equal(moment([2011, 0, 8]).format('DDDo'), '8.', '8.'); - assert.equal(moment([2011, 0, 9]).format('DDDo'), '9.', '9.'); - assert.equal(moment([2011, 0, 10]).format('DDDo'), '10.', '10.'); - - assert.equal(moment([2011, 0, 11]).format('DDDo'), '11.', '11.'); - assert.equal(moment([2011, 0, 12]).format('DDDo'), '12.', '12.'); - assert.equal(moment([2011, 0, 13]).format('DDDo'), '13.', '13.'); - assert.equal(moment([2011, 0, 14]).format('DDDo'), '14.', '14.'); - assert.equal(moment([2011, 0, 15]).format('DDDo'), '15.', '15.'); - assert.equal(moment([2011, 0, 16]).format('DDDo'), '16.', '16.'); - assert.equal(moment([2011, 0, 17]).format('DDDo'), '17.', '17.'); - assert.equal(moment([2011, 0, 18]).format('DDDo'), '18.', '18.'); - assert.equal(moment([2011, 0, 19]).format('DDDo'), '19.', '19.'); - assert.equal(moment([2011, 0, 20]).format('DDDo'), '20.', '20.'); - - assert.equal(moment([2011, 0, 21]).format('DDDo'), '21.', '21.'); - assert.equal(moment([2011, 0, 22]).format('DDDo'), '22.', '22.'); - assert.equal(moment([2011, 0, 23]).format('DDDo'), '23.', '23.'); - assert.equal(moment([2011, 0, 24]).format('DDDo'), '24.', '24.'); - assert.equal(moment([2011, 0, 25]).format('DDDo'), '25.', '25.'); - assert.equal(moment([2011, 0, 26]).format('DDDo'), '26.', '26.'); - assert.equal(moment([2011, 0, 27]).format('DDDo'), '27.', '27.'); - assert.equal(moment([2011, 0, 28]).format('DDDo'), '28.', '28.'); - assert.equal(moment([2011, 0, 29]).format('DDDo'), '29.', '29.'); - assert.equal(moment([2011, 0, 30]).format('DDDo'), '30.', '30.'); - - assert.equal(moment([2011, 0, 31]).format('DDDo'), '31.', '31.'); -}); - -test('format month', function (assert) { - var expected = 'januar jan_februar feb_mars mar_apríl apr_mai mai_juni jun_juli jul_august aug_september sep_oktober okt_november nov_desember des'.split('_'), i; - for (i = 0; i < expected.length; i++) { - assert.equal(moment([2011, i, 1]).format('MMMM MMM'), expected[i], expected[i]); - } -}); - -test('format week', function (assert) { - var expected = 'sunnudagur sun su_mánadagur mán má_týsdagur týs tý_mikudagur mik mi_hósdagur hós hó_fríggjadagur frí fr_leygardagur ley le'.split('_'), i; - for (i = 0; i < expected.length; i++) { - assert.equal(moment([2011, 0, 2 + i]).format('dddd ddd dd'), expected[i], expected[i]); - } -}); - -test('from', function (assert) { - var start = moment([2007, 1, 28]); - assert.equal(start.from(moment([2007, 1, 28]).add({s: 44}), true), 'fá sekund', '44 seconds = a few seconds'); - assert.equal(start.from(moment([2007, 1, 28]).add({s: 45}), true), 'ein minutt', '45 seconds = a minute'); - assert.equal(start.from(moment([2007, 1, 28]).add({s: 89}), true), 'ein minutt', '89 seconds = a minute'); - assert.equal(start.from(moment([2007, 1, 28]).add({s: 90}), true), '2 minuttir', '90 seconds = 2 minutes'); - assert.equal(start.from(moment([2007, 1, 28]).add({m: 44}), true), '44 minuttir', '44 minutes = 44 minutes'); - assert.equal(start.from(moment([2007, 1, 28]).add({m: 45}), true), 'ein tími', '45 minutes = an hour'); - assert.equal(start.from(moment([2007, 1, 28]).add({m: 89}), true), 'ein tími', '89 minutes = an hour'); - assert.equal(start.from(moment([2007, 1, 28]).add({m: 90}), true), '2 tímar', '90 minutes = 2 hours'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 5}), true), '5 tímar', '5 hours = 5 hours'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 21}), true), '21 tímar', '21 hours = 21 hours'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 22}), true), 'ein dagur', '22 hours = a day'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 35}), true), 'ein dagur', '35 hours = a day'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 36}), true), '2 dagar', '36 hours = 2 days'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 1}), true), 'ein dagur', '1 day = a day'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 5}), true), '5 dagar', '5 days = 5 days'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 25}), true), '25 dagar', '25 days = 25 days'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 26}), true), 'ein mánaði', '26 days = a month'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 30}), true), 'ein mánaði', '30 days = a month'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 43}), true), 'ein mánaði', '43 days = a month'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 46}), true), '2 mánaðir', '46 days = 2 months'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 74}), true), '2 mánaðir', '75 days = 2 months'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 76}), true), '3 mánaðir', '76 days = 3 months'); - assert.equal(start.from(moment([2007, 1, 28]).add({M: 1}), true), 'ein mánaði', '1 month = a month'); - assert.equal(start.from(moment([2007, 1, 28]).add({M: 5}), true), '5 mánaðir', '5 months = 5 months'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 345}), true), 'eitt ár', '345 days = a year'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 548}), true), '2 ár', '548 days = 2 years'); - assert.equal(start.from(moment([2007, 1, 28]).add({y: 1}), true), 'eitt ár', '1 year = a year'); - assert.equal(start.from(moment([2007, 1, 28]).add({y: 5}), true), '5 ár', '5 years = 5 years'); -}); - -test('suffix', function (assert) { - assert.equal(moment(30000).from(0), 'um fá sekund', 'prefix'); - assert.equal(moment(0).from(30000), 'fá sekund síðani', 'suffix'); -}); - -test('now from now', function (assert) { - assert.equal(moment().fromNow(), 'fá sekund síðani', 'now from now should display as in the past'); -}); - -test('fromNow', function (assert) { - assert.equal(moment().add({s: 30}).fromNow(), 'um fá sekund', 'in a few seconds'); - assert.equal(moment().add({d: 5}).fromNow(), 'um 5 dagar', 'in 5 days'); -}); - - -test('calendar day', function (assert) { - var a = moment().hours(12).minutes(0).seconds(0); - - assert.equal(moment(a).calendar(), 'Í dag kl. 12:00', 'today at the same time'); - assert.equal(moment(a).add({m: 25}).calendar(), 'Í dag kl. 12:25', 'Now plus 25 min'); - assert.equal(moment(a).add({h: 1}).calendar(), 'Í dag kl. 13:00', 'Now plus 1 hour'); - assert.equal(moment(a).add({d: 1}).calendar(), 'Í morgin kl. 12:00', 'tomorrow at the same time'); - assert.equal(moment(a).subtract({h: 1}).calendar(), 'Í dag kl. 11:00', 'Now minus 1 hour'); - assert.equal(moment(a).subtract({d: 1}).calendar(), 'Í gjár kl. 12:00', 'yesterday at the same time'); -}); - -test('calendar next week', function (assert) { - var i, m; - - for (i = 2; i < 7; i++) { - m = moment().add({d: i}); - assert.equal(m.calendar(), m.format('dddd [kl.] LT'), 'today + ' + i + ' days current time'); - m.hours(0).minutes(0).seconds(0).milliseconds(0); - assert.equal(m.calendar(), m.format('dddd [kl.] LT'), 'today + ' + i + ' days beginning of day'); - m.hours(23).minutes(59).seconds(59).milliseconds(999); - assert.equal(m.calendar(), m.format('dddd [kl.] LT'), 'today + ' + i + ' days end of day'); - } -}); - -test('calendar last week', function (assert) { - var i, m; - for (i = 2; i < 7; i++) { - m = moment().subtract({d: i}); - assert.equal(m.calendar(), m.format('[síðstu] dddd [kl] LT'), 'today - ' + i + ' days current time'); - m.hours(0).minutes(0).seconds(0).milliseconds(0); - assert.equal(m.calendar(), m.format('[síðstu] dddd [kl] LT'), 'today - ' + i + ' days beginning of day'); - m.hours(23).minutes(59).seconds(59).milliseconds(999); - assert.equal(m.calendar(), m.format('[síðstu] dddd [kl] LT'), 'today - ' + i + ' days end of day'); - } -}); - -test('calendar all else', function (assert) { - var weeksAgo = moment().subtract({w: 1}), - weeksFromNow = moment().add({w: 1}); - - assert.equal(weeksAgo.calendar(), weeksAgo.format('L'), 'yksi viikko sitten'); - assert.equal(weeksFromNow.calendar(), weeksFromNow.format('L'), 'yhden viikon päästä'); - - weeksAgo = moment().subtract({w: 2}); - weeksFromNow = moment().add({w: 2}); - - assert.equal(weeksAgo.calendar(), weeksAgo.format('L'), 'kaksi viikkoa sitten'); - assert.equal(weeksFromNow.calendar(), weeksFromNow.format('L'), 'kaden viikon päästä'); -}); - -test('weeks year starting sunday formatted', function (assert) { - assert.equal(moment([2012, 0, 1]).format('w ww wo'), '52 52 52.', 'Jan 1 2012 should be week 52'); - assert.equal(moment([2012, 0, 2]).format('w ww wo'), '1 01 1.', 'Jan 2 2012 should be week 1'); - assert.equal(moment([2012, 0, 8]).format('w ww wo'), '1 01 1.', 'Jan 8 2012 should be week 1'); - assert.equal(moment([2012, 0, 9]).format('w ww wo'), '2 02 2.', 'Jan 9 2012 should be week 2'); - assert.equal(moment([2012, 0, 15]).format('w ww wo'), '2 02 2.', 'Jan 15 2012 should be week 2'); -}); - -}))); - - -;(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' - && typeof require === 'function' ? factory(require('../../moment')) : - typeof define === 'function' && define.amd ? define(['../../moment'], factory) : - factory(global.moment) -}(this, (function (moment) { 'use strict'; - -function each(array, callback) { - var i; - for (i = 0; i < array.length; i++) { - callback(array[i], i, array); - } -} - -function objectKeys(obj) { - if (Object.keys) { - return Object.keys(obj); - } else { - // IE8 - var res = [], i; - for (i in obj) { - if (obj.hasOwnProperty(i)) { - res.push(i); - } - } - return res; - } -} - -// Pick the first defined of two or three arguments. - -function defineCommonLocaleTests(locale, options) { - test('lenient day of month ordinal parsing', function (assert) { - var i, ordinalStr, testMoment; - for (i = 1; i <= 31; ++i) { - ordinalStr = moment([2014, 0, i]).format('YYYY MM Do'); - testMoment = moment(ordinalStr, 'YYYY MM Do'); - assert.equal(testMoment.year(), 2014, - 'lenient day of month ordinal parsing ' + i + ' year check'); - assert.equal(testMoment.month(), 0, - 'lenient day of month ordinal parsing ' + i + ' month check'); - assert.equal(testMoment.date(), i, - 'lenient day of month ordinal parsing ' + i + ' date check'); - } - }); - - test('lenient day of month ordinal parsing of number', function (assert) { - var i, testMoment; - for (i = 1; i <= 31; ++i) { - testMoment = moment('2014 01 ' + i, 'YYYY MM Do'); - assert.equal(testMoment.year(), 2014, - 'lenient day of month ordinal parsing of number ' + i + ' year check'); - assert.equal(testMoment.month(), 0, - 'lenient day of month ordinal parsing of number ' + i + ' month check'); - assert.equal(testMoment.date(), i, - 'lenient day of month ordinal parsing of number ' + i + ' date check'); - } - }); - - test('strict day of month ordinal parsing', function (assert) { - var i, ordinalStr, testMoment; - for (i = 1; i <= 31; ++i) { - ordinalStr = moment([2014, 0, i]).format('YYYY MM Do'); - testMoment = moment(ordinalStr, 'YYYY MM Do', true); - assert.ok(testMoment.isValid(), 'strict day of month ordinal parsing ' + i); - } - }); - - test('meridiem invariant', function (assert) { - var h, m, t1, t2; - for (h = 0; h < 24; ++h) { - for (m = 0; m < 60; m += 15) { - t1 = moment.utc([2000, 0, 1, h, m]); - t2 = moment.utc(t1.format('A h:mm'), 'A h:mm'); - assert.equal(t2.format('HH:mm'), t1.format('HH:mm'), - 'meridiem at ' + t1.format('HH:mm')); - } - } - }); - - test('date format correctness', function (assert) { - var data, tokens; - data = moment.localeData()._longDateFormat; - tokens = objectKeys(data); - each(tokens, function (srchToken) { - // Check each format string to make sure it does not contain any - // tokens that need to be expanded. - each(tokens, function (baseToken) { - // strip escaped sequences - var format = data[baseToken].replace(/(\[[^\]]*\])/g, ''); - assert.equal(false, !!~format.indexOf(srchToken), - 'contains ' + srchToken + ' in ' + baseToken); - }); - }); - }); - - test('month parsing correctness', function (assert) { - var i, m; - - if (locale === 'tr') { - // I can't fix it :( - expect(0); - return; - } - function tester(format) { - var r; - r = moment(m.format(format), format); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format); - r = moment(m.format(format).toLocaleUpperCase(), format); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' upper'); - r = moment(m.format(format).toLocaleLowerCase(), format); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' lower'); - - r = moment(m.format(format), format, true); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' strict'); - r = moment(m.format(format).toLocaleUpperCase(), format, true); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' upper strict'); - r = moment(m.format(format).toLocaleLowerCase(), format, true); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' lower strict'); - } - - for (i = 0; i < 12; ++i) { - m = moment([2015, i, 15, 18]); - tester('MMM'); - tester('MMM.'); - tester('MMMM'); - tester('MMMM.'); - } - }); - - test('weekday parsing correctness', function (assert) { - var i, m; - - if (locale === 'tr' || locale === 'az' || locale === 'ro') { - // tr, az: There is a lower-case letter (ı), that converted to - // upper then lower changes to i - // ro: there is the letter ț which behaves weird under IE8 - expect(0); - return; - } - function tester(format) { - var r, baseMsg = 'weekday ' + m.weekday() + ' fmt ' + format + ' ' + m.toISOString(); - r = moment(m.format(format), format); - assert.equal(r.weekday(), m.weekday(), baseMsg); - r = moment(m.format(format).toLocaleUpperCase(), format); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' upper'); - r = moment(m.format(format).toLocaleLowerCase(), format); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' lower'); - - r = moment(m.format(format), format, true); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' strict'); - r = moment(m.format(format).toLocaleUpperCase(), format, true); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' upper strict'); - r = moment(m.format(format).toLocaleLowerCase(), format, true); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' lower strict'); - } - - for (i = 0; i < 7; ++i) { - m = moment.utc([2015, 0, i + 1, 18]); - tester('dd'); - tester('ddd'); - tester('dddd'); - } - }); - - test('valid localeData', function (assert) { - assert.equal(moment().localeData().months().length, 12, 'months should return 12 months'); - assert.equal(moment().localeData().monthsShort().length, 12, 'monthsShort should return 12 months'); - assert.equal(moment().localeData().weekdays().length, 7, 'weekdays should return 7 days'); - assert.equal(moment().localeData().weekdaysShort().length, 7, 'weekdaysShort should return 7 days'); - assert.equal(moment().localeData().weekdaysMin().length, 7, 'monthsShort should return 7 days'); - }); -} - -function setupDeprecationHandler(test, moment$$1, scope) { - test._expectedDeprecations = null; - test._observedDeprecations = null; - test._oldSupress = moment$$1.suppressDeprecationWarnings; - moment$$1.suppressDeprecationWarnings = true; - test.expectedDeprecations = function () { - test._expectedDeprecations = arguments; - test._observedDeprecations = []; - }; - moment$$1.deprecationHandler = function (name, msg) { - var deprecationId = matchedDeprecation(name, msg, test._expectedDeprecations); - if (deprecationId === -1) { - throw new Error('Unexpected deprecation thrown name=' + - name + ' msg=' + msg); - } - test._observedDeprecations[deprecationId] = 1; - }; -} - -function teardownDeprecationHandler(test, moment$$1, scope) { - moment$$1.suppressDeprecationWarnings = test._oldSupress; - - if (test._expectedDeprecations != null) { - var missedDeprecations = []; - each(test._expectedDeprecations, function (deprecationPattern, id) { - if (test._observedDeprecations[id] !== 1) { - missedDeprecations.push(deprecationPattern); - } - }); - if (missedDeprecations.length !== 0) { - throw new Error('Expected deprecation warnings did not happen: ' + - missedDeprecations.join(' ')); - } - } -} - -function matchedDeprecation(name, msg, deprecations) { - if (deprecations == null) { - return -1; - } - for (var i = 0; i < deprecations.length; ++i) { - if (name != null && name === deprecations[i]) { - return i; - } - if (msg != null && msg.substring(0, deprecations[i].length) === deprecations[i]) { - return i; - } - } - return -1; -} - -/*global QUnit:false*/ - -var test = QUnit.test; - -var expect = QUnit.expect; - - - -function localeModule (name, lifecycle) { - QUnit.module('locale:' + name, { - setup : function () { - moment.locale(name); - moment.createFromInputFallback = function (config) { - throw new Error('input not handled by moment: ' + config._i); - }; - setupDeprecationHandler(test, moment, 'locale'); - if (lifecycle && lifecycle.setup) { - lifecycle.setup(); - } - }, - teardown : function () { - moment.locale('en'); - teardownDeprecationHandler(test, moment, 'locale'); - if (lifecycle && lifecycle.teardown) { - lifecycle.teardown(); - } - } - }); - defineCommonLocaleTests(name, -1, -1); -} - -localeModule('fr-ca'); - -test('parse', function (assert) { - var i, - tests = 'janvier janv._février févr._mars mars_avril avr._mai mai_juin juin_juillet juil._août août_septembre sept._octobre oct._novembre nov._décembre déc.'.split('_'); - - function equalTest(input, mmm, i) { - assert.equal(moment(input, mmm).month(), i, input + ' should be month ' + (i + 1)); - } - - for (i = 0; i < 12; i++) { - tests[i] = tests[i].split(' '); - equalTest(tests[i][0], 'MMM', i); - equalTest(tests[i][1], 'MMM', i); - equalTest(tests[i][0], 'MMMM', i); - equalTest(tests[i][1], 'MMMM', i); - equalTest(tests[i][0].toLocaleLowerCase(), 'MMMM', i); - equalTest(tests[i][1].toLocaleLowerCase(), 'MMMM', i); - equalTest(tests[i][0].toLocaleUpperCase(), 'MMMM', i); - equalTest(tests[i][1].toLocaleUpperCase(), 'MMMM', i); - } -}); - -test('format', function (assert) { - var a = [ - ['dddd, MMMM Do YYYY, h:mm:ss a', 'dimanche, février 14e 2010, 3:25:50 pm'], - ['ddd, hA', 'dim., 3PM'], - ['M Mo MM MMMM MMM', '2 2e 02 février févr.'], - ['YYYY YY', '2010 10'], - ['D Do DD', '14 14e 14'], - ['d do dddd ddd dd', '0 0e dimanche dim. Di'], - ['DDD DDDo DDDD', '45 45e 045'], - ['w wo ww', '8 8e 08'], - ['h hh', '3 03'], - ['H HH', '15 15'], - ['m mm', '25 25'], - ['s ss', '50 50'], - ['a A', 'pm PM'], - ['[le] Do [jour du mois]', 'le 14e jour du mois'], - ['[le] DDDo [jour de l’année]', 'le 45e jour de l’année'], - ['LTS', '15:25:50'], - ['L', '2010-02-14'], - ['LL', '14 février 2010'], - ['LLL', '14 février 2010 15:25'], - ['LLLL', 'dimanche 14 février 2010 15:25'], - ['l', '2010-2-14'], - ['ll', '14 févr. 2010'], - ['lll', '14 févr. 2010 15:25'], - ['llll', 'dim. 14 févr. 2010 15:25'] - ], - b = moment(new Date(2010, 1, 14, 15, 25, 50, 125)), - i; - - for (i = 0; i < a.length; i++) { - assert.equal(b.format(a[i][0]), a[i][1], a[i][0] + ' ---> ' + a[i][1]); - } -}); - -test('format ordinal', function (assert) { - assert.equal(moment([2017, 0, 1]).format('Mo'), '1er', '1er'); - assert.equal(moment([2017, 1, 1]).format('Mo'), '2e', '2e'); - - assert.equal(moment([2017, 0, 1]).format('Qo'), '1er', '1er'); - assert.equal(moment([2017, 3, 1]).format('Qo'), '2e', '2e'); - - assert.equal(moment([2017, 0, 1]).format('Do'), '1er', '1er'); - assert.equal(moment([2017, 0, 2]).format('Do'), '2e', '2e'); - - assert.equal(moment([2011, 0, 1]).format('DDDo'), '1er', '1er'); - assert.equal(moment([2011, 0, 2]).format('DDDo'), '2e', '2e'); - assert.equal(moment([2011, 0, 3]).format('DDDo'), '3e', '3e'); - assert.equal(moment([2011, 0, 4]).format('DDDo'), '4e', '4e'); - assert.equal(moment([2011, 0, 5]).format('DDDo'), '5e', '5e'); - assert.equal(moment([2011, 0, 6]).format('DDDo'), '6e', '6e'); - assert.equal(moment([2011, 0, 7]).format('DDDo'), '7e', '7e'); - assert.equal(moment([2011, 0, 8]).format('DDDo'), '8e', '8e'); - assert.equal(moment([2011, 0, 9]).format('DDDo'), '9e', '9e'); - assert.equal(moment([2011, 0, 10]).format('DDDo'), '10e', '10e'); - - assert.equal(moment([2011, 0, 11]).format('DDDo'), '11e', '11e'); - assert.equal(moment([2011, 0, 12]).format('DDDo'), '12e', '12e'); - assert.equal(moment([2011, 0, 13]).format('DDDo'), '13e', '13e'); - assert.equal(moment([2011, 0, 14]).format('DDDo'), '14e', '14e'); - assert.equal(moment([2011, 0, 15]).format('DDDo'), '15e', '15e'); - assert.equal(moment([2011, 0, 16]).format('DDDo'), '16e', '16e'); - assert.equal(moment([2011, 0, 17]).format('DDDo'), '17e', '17e'); - assert.equal(moment([2011, 0, 18]).format('DDDo'), '18e', '18e'); - assert.equal(moment([2011, 0, 19]).format('DDDo'), '19e', '19e'); - assert.equal(moment([2011, 0, 20]).format('DDDo'), '20e', '20e'); - - assert.equal(moment([2011, 0, 21]).format('DDDo'), '21e', '21e'); - assert.equal(moment([2011, 0, 22]).format('DDDo'), '22e', '22e'); - assert.equal(moment([2011, 0, 23]).format('DDDo'), '23e', '23e'); - assert.equal(moment([2011, 0, 24]).format('DDDo'), '24e', '24e'); - assert.equal(moment([2011, 0, 25]).format('DDDo'), '25e', '25e'); - assert.equal(moment([2011, 0, 26]).format('DDDo'), '26e', '26e'); - assert.equal(moment([2011, 0, 27]).format('DDDo'), '27e', '27e'); - assert.equal(moment([2011, 0, 28]).format('DDDo'), '28e', '28e'); - assert.equal(moment([2011, 0, 29]).format('DDDo'), '29e', '29e'); - assert.equal(moment([2011, 0, 30]).format('DDDo'), '30e', '30e'); - - assert.equal(moment([2011, 0, 31]).format('DDDo'), '31e', '31e'); - - assert.equal(moment([2017, 0, 1]).format('do'), '0e', '0e'); - assert.equal(moment([2017, 0, 2]).format('do'), '1er', '1er'); - - assert.equal(moment([2017, 0, 4]).format('wo Wo'), '1re 1re', '1re 1re'); - assert.equal(moment([2017, 0, 11]).format('wo Wo'), '2e 2e', '2e 2e'); -}); - -test('format month', function (assert) { - var i, - expected = 'janvier janv._février févr._mars mars_avril avr._mai mai_juin juin_juillet juil._août août_septembre sept._octobre oct._novembre nov._décembre déc.'.split('_'); - - for (i = 0; i < expected.length; i++) { - assert.equal(moment([2011, i, 1]).format('MMMM MMM'), expected[i], expected[i]); - } -}); - -test('format week', function (assert) { - var i, - expected = 'dimanche dim. Di_lundi lun. Lu_mardi mar. Ma_mercredi mer. Me_jeudi jeu. Je_vendredi ven. Ve_samedi sam. Sa'.split('_'); - - for (i = 0; i < expected.length; i++) { - assert.equal(moment([2011, 0, 2 + i]).format('dddd ddd dd'), expected[i], expected[i]); - } -}); - -test('from', function (assert) { - var start = moment([2007, 1, 28]); - - assert.equal(start.from(moment([2007, 1, 28]).add({s: 44}), true), 'quelques secondes', '44 seconds = a few seconds'); - assert.equal(start.from(moment([2007, 1, 28]).add({s: 45}), true), 'une minute', '45 seconds = a minute'); - assert.equal(start.from(moment([2007, 1, 28]).add({s: 89}), true), 'une minute', '89 seconds = a minute'); - assert.equal(start.from(moment([2007, 1, 28]).add({s: 90}), true), '2 minutes', '90 seconds = 2 minutes'); - assert.equal(start.from(moment([2007, 1, 28]).add({m: 44}), true), '44 minutes', '44 minutes = 44 minutes'); - assert.equal(start.from(moment([2007, 1, 28]).add({m: 45}), true), 'une heure', '45 minutes = an hour'); - assert.equal(start.from(moment([2007, 1, 28]).add({m: 89}), true), 'une heure', '89 minutes = an hour'); - assert.equal(start.from(moment([2007, 1, 28]).add({m: 90}), true), '2 heures', '90 minutes = 2 hours'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 5}), true), '5 heures', '5 hours = 5 hours'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 21}), true), '21 heures', '21 hours = 21 hours'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 22}), true), 'un jour', '22 hours = a day'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 35}), true), 'un jour', '35 hours = a day'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 36}), true), '2 jours', '36 hours = 2 days'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 1}), true), 'un jour', '1 day = a day'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 5}), true), '5 jours', '5 days = 5 days'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 25}), true), '25 jours', '25 days = 25 days'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 26}), true), 'un mois', '26 days = a month'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 30}), true), 'un mois', '30 days = a month'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 43}), true), 'un mois', '43 days = a month'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 46}), true), '2 mois', '46 days = 2 months'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 74}), true), '2 mois', '75 days = 2 months'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 76}), true), '3 mois', '76 days = 3 months'); - assert.equal(start.from(moment([2007, 1, 28]).add({M: 1}), true), 'un mois', '1 month = a month'); - assert.equal(start.from(moment([2007, 1, 28]).add({M: 5}), true), '5 mois', '5 months = 5 months'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 345}), true), 'un an', '345 days = a year'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 548}), true), '2 ans', '548 days = 2 years'); - assert.equal(start.from(moment([2007, 1, 28]).add({y: 1}), true), 'un an', '1 year = a year'); - assert.equal(start.from(moment([2007, 1, 28]).add({y: 5}), true), '5 ans', '5 years = 5 years'); -}); - -test('suffix', function (assert) { - assert.equal(moment(30000).from(0), 'dans quelques secondes', 'prefix'); - assert.equal(moment(0).from(30000), 'il y a quelques secondes', 'suffix'); -}); - -test('fromNow', function (assert) { - assert.equal(moment().add({s: 30}).fromNow(), 'dans quelques secondes', 'in a few seconds'); - assert.equal(moment().add({d: 5}).fromNow(), 'dans 5 jours', 'in 5 days'); -}); - -test('same day', function (assert) { - var a = moment().hours(12).minutes(0).seconds(0); - - assert.equal(moment(a).calendar(), 'Aujourd’hui à 12:00', 'Today at the same time'); - assert.equal(moment(a).add({m: 25}).calendar(), 'Aujourd’hui à 12:25', 'Now plus 25 min'); - assert.equal(moment(a).add({h: 1}).calendar(), 'Aujourd’hui à 13:00', 'Now plus 1 hour'); - assert.equal(moment(a).add({d: 1}).calendar(), 'Demain à 12:00', 'Tomorrow at the same time'); - assert.equal(moment(a).subtract({h: 1}).calendar(), 'Aujourd’hui à 11:00', 'Now minus 1 hour'); - assert.equal(moment(a).subtract({d: 1}).calendar(), 'Hier à 12:00', 'Yesterday at the same time'); -}); - -test('same next week', function (assert) { - var i, m; - - for (i = 2; i < 7; i++) { - m = moment().add({d: i}); - assert.equal(m.calendar(), m.format('dddd [à] LT'), 'Today + ' + i + ' days current time'); - m.hours(0).minutes(0).seconds(0).milliseconds(0); - assert.equal(m.calendar(), m.format('dddd [à] LT'), 'Today + ' + i + ' days beginning of day'); - m.hours(23).minutes(59).seconds(59).milliseconds(999); - assert.equal(m.calendar(), m.format('dddd [à] LT'), 'Today + ' + i + ' days end of day'); - } -}); - -test('same last week', function (assert) { - var i, m; - - for (i = 2; i < 7; i++) { - m = moment().subtract({d: i}); - assert.equal(m.calendar(), m.format('dddd [dernier à] LT'), 'Today - ' + i + ' days current time'); - m.hours(0).minutes(0).seconds(0).milliseconds(0); - assert.equal(m.calendar(), m.format('dddd [dernier à] LT'), 'Today - ' + i + ' days beginning of day'); - m.hours(23).minutes(59).seconds(59).milliseconds(999); - assert.equal(m.calendar(), m.format('dddd [dernier à] LT'), 'Today - ' + i + ' days end of day'); - } -}); - -test('same all else', function (assert) { - var weeksAgo = moment().subtract({w: 1}), - weeksFromNow = moment().add({w: 1}); - - assert.equal(weeksAgo.calendar(), weeksAgo.format('L'), '1 week ago'); - assert.equal(weeksFromNow.calendar(), weeksFromNow.format('L'), 'in 1 week'); - - weeksAgo = moment().subtract({w: 2}); - weeksFromNow = moment().add({w: 2}); - - assert.equal(weeksAgo.calendar(), weeksAgo.format('L'), '2 weeks ago'); - assert.equal(weeksFromNow.calendar(), weeksFromNow.format('L'), 'in 2 weeks'); -}); - -test('weeks year starting sunday formatted', function (assert) { - assert.equal(moment([2012, 0, 1]).format('w ww wo'), '1 01 1re', 'Jan 1 2012 should be week 1'); - assert.equal(moment([2012, 0, 7]).format('w ww wo'), '1 01 1re', 'Jan 7 2012 should be week 1'); - assert.equal(moment([2012, 0, 8]).format('w ww wo'), '2 02 2e', 'Jan 8 2012 should be week 2'); - assert.equal(moment([2012, 0, 14]).format('w ww wo'), '2 02 2e', 'Jan 14 2012 should be week 2'); - assert.equal(moment([2012, 0, 15]).format('w ww wo'), '3 03 3e', 'Jan 15 2012 should be week 3'); -}); - -}))); - - -;(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' - && typeof require === 'function' ? factory(require('../../moment')) : - typeof define === 'function' && define.amd ? define(['../../moment'], factory) : - factory(global.moment) -}(this, (function (moment) { 'use strict'; - -function each(array, callback) { - var i; - for (i = 0; i < array.length; i++) { - callback(array[i], i, array); - } -} - -function objectKeys(obj) { - if (Object.keys) { - return Object.keys(obj); - } else { - // IE8 - var res = [], i; - for (i in obj) { - if (obj.hasOwnProperty(i)) { - res.push(i); - } - } - return res; - } -} - -// Pick the first defined of two or three arguments. - -function defineCommonLocaleTests(locale, options) { - test('lenient day of month ordinal parsing', function (assert) { - var i, ordinalStr, testMoment; - for (i = 1; i <= 31; ++i) { - ordinalStr = moment([2014, 0, i]).format('YYYY MM Do'); - testMoment = moment(ordinalStr, 'YYYY MM Do'); - assert.equal(testMoment.year(), 2014, - 'lenient day of month ordinal parsing ' + i + ' year check'); - assert.equal(testMoment.month(), 0, - 'lenient day of month ordinal parsing ' + i + ' month check'); - assert.equal(testMoment.date(), i, - 'lenient day of month ordinal parsing ' + i + ' date check'); - } - }); - - test('lenient day of month ordinal parsing of number', function (assert) { - var i, testMoment; - for (i = 1; i <= 31; ++i) { - testMoment = moment('2014 01 ' + i, 'YYYY MM Do'); - assert.equal(testMoment.year(), 2014, - 'lenient day of month ordinal parsing of number ' + i + ' year check'); - assert.equal(testMoment.month(), 0, - 'lenient day of month ordinal parsing of number ' + i + ' month check'); - assert.equal(testMoment.date(), i, - 'lenient day of month ordinal parsing of number ' + i + ' date check'); - } - }); - - test('strict day of month ordinal parsing', function (assert) { - var i, ordinalStr, testMoment; - for (i = 1; i <= 31; ++i) { - ordinalStr = moment([2014, 0, i]).format('YYYY MM Do'); - testMoment = moment(ordinalStr, 'YYYY MM Do', true); - assert.ok(testMoment.isValid(), 'strict day of month ordinal parsing ' + i); - } - }); - - test('meridiem invariant', function (assert) { - var h, m, t1, t2; - for (h = 0; h < 24; ++h) { - for (m = 0; m < 60; m += 15) { - t1 = moment.utc([2000, 0, 1, h, m]); - t2 = moment.utc(t1.format('A h:mm'), 'A h:mm'); - assert.equal(t2.format('HH:mm'), t1.format('HH:mm'), - 'meridiem at ' + t1.format('HH:mm')); - } - } - }); - - test('date format correctness', function (assert) { - var data, tokens; - data = moment.localeData()._longDateFormat; - tokens = objectKeys(data); - each(tokens, function (srchToken) { - // Check each format string to make sure it does not contain any - // tokens that need to be expanded. - each(tokens, function (baseToken) { - // strip escaped sequences - var format = data[baseToken].replace(/(\[[^\]]*\])/g, ''); - assert.equal(false, !!~format.indexOf(srchToken), - 'contains ' + srchToken + ' in ' + baseToken); - }); - }); - }); - - test('month parsing correctness', function (assert) { - var i, m; - - if (locale === 'tr') { - // I can't fix it :( - expect(0); - return; - } - function tester(format) { - var r; - r = moment(m.format(format), format); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format); - r = moment(m.format(format).toLocaleUpperCase(), format); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' upper'); - r = moment(m.format(format).toLocaleLowerCase(), format); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' lower'); - - r = moment(m.format(format), format, true); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' strict'); - r = moment(m.format(format).toLocaleUpperCase(), format, true); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' upper strict'); - r = moment(m.format(format).toLocaleLowerCase(), format, true); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' lower strict'); - } - - for (i = 0; i < 12; ++i) { - m = moment([2015, i, 15, 18]); - tester('MMM'); - tester('MMM.'); - tester('MMMM'); - tester('MMMM.'); - } - }); - - test('weekday parsing correctness', function (assert) { - var i, m; - - if (locale === 'tr' || locale === 'az' || locale === 'ro') { - // tr, az: There is a lower-case letter (ı), that converted to - // upper then lower changes to i - // ro: there is the letter ț which behaves weird under IE8 - expect(0); - return; - } - function tester(format) { - var r, baseMsg = 'weekday ' + m.weekday() + ' fmt ' + format + ' ' + m.toISOString(); - r = moment(m.format(format), format); - assert.equal(r.weekday(), m.weekday(), baseMsg); - r = moment(m.format(format).toLocaleUpperCase(), format); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' upper'); - r = moment(m.format(format).toLocaleLowerCase(), format); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' lower'); - - r = moment(m.format(format), format, true); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' strict'); - r = moment(m.format(format).toLocaleUpperCase(), format, true); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' upper strict'); - r = moment(m.format(format).toLocaleLowerCase(), format, true); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' lower strict'); - } - - for (i = 0; i < 7; ++i) { - m = moment.utc([2015, 0, i + 1, 18]); - tester('dd'); - tester('ddd'); - tester('dddd'); - } - }); - - test('valid localeData', function (assert) { - assert.equal(moment().localeData().months().length, 12, 'months should return 12 months'); - assert.equal(moment().localeData().monthsShort().length, 12, 'monthsShort should return 12 months'); - assert.equal(moment().localeData().weekdays().length, 7, 'weekdays should return 7 days'); - assert.equal(moment().localeData().weekdaysShort().length, 7, 'weekdaysShort should return 7 days'); - assert.equal(moment().localeData().weekdaysMin().length, 7, 'monthsShort should return 7 days'); - }); -} - -function setupDeprecationHandler(test, moment$$1, scope) { - test._expectedDeprecations = null; - test._observedDeprecations = null; - test._oldSupress = moment$$1.suppressDeprecationWarnings; - moment$$1.suppressDeprecationWarnings = true; - test.expectedDeprecations = function () { - test._expectedDeprecations = arguments; - test._observedDeprecations = []; - }; - moment$$1.deprecationHandler = function (name, msg) { - var deprecationId = matchedDeprecation(name, msg, test._expectedDeprecations); - if (deprecationId === -1) { - throw new Error('Unexpected deprecation thrown name=' + - name + ' msg=' + msg); - } - test._observedDeprecations[deprecationId] = 1; - }; -} - -function teardownDeprecationHandler(test, moment$$1, scope) { - moment$$1.suppressDeprecationWarnings = test._oldSupress; - - if (test._expectedDeprecations != null) { - var missedDeprecations = []; - each(test._expectedDeprecations, function (deprecationPattern, id) { - if (test._observedDeprecations[id] !== 1) { - missedDeprecations.push(deprecationPattern); - } - }); - if (missedDeprecations.length !== 0) { - throw new Error('Expected deprecation warnings did not happen: ' + - missedDeprecations.join(' ')); - } - } -} - -function matchedDeprecation(name, msg, deprecations) { - if (deprecations == null) { - return -1; - } - for (var i = 0; i < deprecations.length; ++i) { - if (name != null && name === deprecations[i]) { - return i; - } - if (msg != null && msg.substring(0, deprecations[i].length) === deprecations[i]) { - return i; - } - } - return -1; -} - -/*global QUnit:false*/ - -var test = QUnit.test; - -var expect = QUnit.expect; - - - -function localeModule (name, lifecycle) { - QUnit.module('locale:' + name, { - setup : function () { - moment.locale(name); - moment.createFromInputFallback = function (config) { - throw new Error('input not handled by moment: ' + config._i); - }; - setupDeprecationHandler(test, moment, 'locale'); - if (lifecycle && lifecycle.setup) { - lifecycle.setup(); - } - }, - teardown : function () { - moment.locale('en'); - teardownDeprecationHandler(test, moment, 'locale'); - if (lifecycle && lifecycle.teardown) { - lifecycle.teardown(); - } - } - }); - defineCommonLocaleTests(name, -1, -1); -} - -localeModule('fr-ch'); - -test('parse', function (assert) { - var i, - tests = 'janvier janv._février févr._mars mars_avril avr._mai mai_juin juin_juillet juil._août août_septembre sept._octobre oct._novembre nov._décembre déc.'.split('_'); - - function equalTest(input, mmm, i) { - assert.equal(moment(input, mmm).month(), i, input + ' should be month ' + (i + 1)); - } - - for (i = 0; i < 12; i++) { - tests[i] = tests[i].split(' '); - equalTest(tests[i][0], 'MMM', i); - equalTest(tests[i][1], 'MMM', i); - equalTest(tests[i][0], 'MMMM', i); - equalTest(tests[i][1], 'MMMM', i); - equalTest(tests[i][0].toLocaleLowerCase(), 'MMMM', i); - equalTest(tests[i][1].toLocaleLowerCase(), 'MMMM', i); - equalTest(tests[i][0].toLocaleUpperCase(), 'MMMM', i); - equalTest(tests[i][1].toLocaleUpperCase(), 'MMMM', i); - } -}); - -test('format', function (assert) { - var a = [ - ['dddd, MMMM Do YYYY, h:mm:ss a', 'dimanche, février 14e 2010, 3:25:50 pm'], - ['ddd, hA', 'dim., 3PM'], - ['M Mo MM MMMM MMM', '2 2e 02 février févr.'], - ['YYYY YY', '2010 10'], - ['D Do DD', '14 14e 14'], - ['d do dddd ddd dd', '0 0e dimanche dim. Di'], - ['DDD DDDo DDDD', '45 45e 045'], - ['w wo ww', '6 6e 06'], - ['h hh', '3 03'], - ['H HH', '15 15'], - ['m mm', '25 25'], - ['s ss', '50 50'], - ['a A', 'pm PM'], - ['[le] Do [jour du mois]', 'le 14e jour du mois'], - ['[le] DDDo [jour de l’année]', 'le 45e jour de l’année'], - ['LTS', '15:25:50'], - ['L', '14.02.2010'], - ['LL', '14 février 2010'], - ['LLL', '14 février 2010 15:25'], - ['LLLL', 'dimanche 14 février 2010 15:25'], - ['l', '14.2.2010'], - ['ll', '14 févr. 2010'], - ['lll', '14 févr. 2010 15:25'], - ['llll', 'dim. 14 févr. 2010 15:25'] - ], - b = moment(new Date(2010, 1, 14, 15, 25, 50, 125)), - i; - - for (i = 0; i < a.length; i++) { - assert.equal(b.format(a[i][0]), a[i][1], a[i][0] + ' ---> ' + a[i][1]); - } -}); - -test('format ordinal', function (assert) { - assert.equal(moment([2017, 0, 1]).format('Mo'), '1er', '1er'); - assert.equal(moment([2017, 1, 1]).format('Mo'), '2e', '2e'); - - assert.equal(moment([2017, 0, 1]).format('Qo'), '1er', '1er'); - assert.equal(moment([2017, 3, 1]).format('Qo'), '2e', '2e'); - - assert.equal(moment([2017, 0, 1]).format('Do'), '1er', '1er'); - assert.equal(moment([2017, 0, 2]).format('Do'), '2e', '2e'); - - assert.equal(moment([2011, 0, 1]).format('DDDo'), '1er', '1er'); - assert.equal(moment([2011, 0, 2]).format('DDDo'), '2e', '2e'); - assert.equal(moment([2011, 0, 3]).format('DDDo'), '3e', '3e'); - assert.equal(moment([2011, 0, 4]).format('DDDo'), '4e', '4e'); - assert.equal(moment([2011, 0, 5]).format('DDDo'), '5e', '5e'); - assert.equal(moment([2011, 0, 6]).format('DDDo'), '6e', '6e'); - assert.equal(moment([2011, 0, 7]).format('DDDo'), '7e', '7e'); - assert.equal(moment([2011, 0, 8]).format('DDDo'), '8e', '8e'); - assert.equal(moment([2011, 0, 9]).format('DDDo'), '9e', '9e'); - assert.equal(moment([2011, 0, 10]).format('DDDo'), '10e', '10e'); - - assert.equal(moment([2011, 0, 11]).format('DDDo'), '11e', '11e'); - assert.equal(moment([2011, 0, 12]).format('DDDo'), '12e', '12e'); - assert.equal(moment([2011, 0, 13]).format('DDDo'), '13e', '13e'); - assert.equal(moment([2011, 0, 14]).format('DDDo'), '14e', '14e'); - assert.equal(moment([2011, 0, 15]).format('DDDo'), '15e', '15e'); - assert.equal(moment([2011, 0, 16]).format('DDDo'), '16e', '16e'); - assert.equal(moment([2011, 0, 17]).format('DDDo'), '17e', '17e'); - assert.equal(moment([2011, 0, 18]).format('DDDo'), '18e', '18e'); - assert.equal(moment([2011, 0, 19]).format('DDDo'), '19e', '19e'); - assert.equal(moment([2011, 0, 20]).format('DDDo'), '20e', '20e'); - - assert.equal(moment([2011, 0, 21]).format('DDDo'), '21e', '21e'); - assert.equal(moment([2011, 0, 22]).format('DDDo'), '22e', '22e'); - assert.equal(moment([2011, 0, 23]).format('DDDo'), '23e', '23e'); - assert.equal(moment([2011, 0, 24]).format('DDDo'), '24e', '24e'); - assert.equal(moment([2011, 0, 25]).format('DDDo'), '25e', '25e'); - assert.equal(moment([2011, 0, 26]).format('DDDo'), '26e', '26e'); - assert.equal(moment([2011, 0, 27]).format('DDDo'), '27e', '27e'); - assert.equal(moment([2011, 0, 28]).format('DDDo'), '28e', '28e'); - assert.equal(moment([2011, 0, 29]).format('DDDo'), '29e', '29e'); - assert.equal(moment([2011, 0, 30]).format('DDDo'), '30e', '30e'); - - assert.equal(moment([2011, 0, 31]).format('DDDo'), '31e', '31e'); - - assert.equal(moment([2017, 0, 1]).format('do'), '0e', '0e'); - assert.equal(moment([2017, 0, 2]).format('do'), '1er', '1er'); - - assert.equal(moment([2017, 0, 4]).format('wo Wo'), '1re 1re', '1re 1re'); - assert.equal(moment([2017, 0, 11]).format('wo Wo'), '2e 2e', '2e 2e'); -}); - -test('format month', function (assert) { - var i, - expected = 'janvier janv._février févr._mars mars_avril avr._mai mai_juin juin_juillet juil._août août_septembre sept._octobre oct._novembre nov._décembre déc.'.split('_'); - - for (i = 0; i < expected.length; i++) { - assert.equal(moment([2011, i, 1]).format('MMMM MMM'), expected[i], expected[i]); - } -}); - -test('format week', function (assert) { - var i, - expected = 'dimanche dim. Di_lundi lun. Lu_mardi mar. Ma_mercredi mer. Me_jeudi jeu. Je_vendredi ven. Ve_samedi sam. Sa'.split('_'); - - for (i = 0; i < expected.length; i++) { - assert.equal(moment([2011, 0, 2 + i]).format('dddd ddd dd'), expected[i], expected[i]); - } -}); - -test('from', function (assert) { - var start = moment([2007, 1, 28]); - - assert.equal(start.from(moment([2007, 1, 28]).add({s: 44}), true), 'quelques secondes', '44 seconds = a few seconds'); - assert.equal(start.from(moment([2007, 1, 28]).add({s: 45}), true), 'une minute', '45 seconds = a minute'); - assert.equal(start.from(moment([2007, 1, 28]).add({s: 89}), true), 'une minute', '89 seconds = a minute'); - assert.equal(start.from(moment([2007, 1, 28]).add({s: 90}), true), '2 minutes', '90 seconds = 2 minutes'); - assert.equal(start.from(moment([2007, 1, 28]).add({m: 44}), true), '44 minutes', '44 minutes = 44 minutes'); - assert.equal(start.from(moment([2007, 1, 28]).add({m: 45}), true), 'une heure', '45 minutes = an hour'); - assert.equal(start.from(moment([2007, 1, 28]).add({m: 89}), true), 'une heure', '89 minutes = an hour'); - assert.equal(start.from(moment([2007, 1, 28]).add({m: 90}), true), '2 heures', '90 minutes = 2 hours'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 5}), true), '5 heures', '5 hours = 5 hours'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 21}), true), '21 heures', '21 hours = 21 hours'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 22}), true), 'un jour', '22 hours = a day'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 35}), true), 'un jour', '35 hours = a day'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 36}), true), '2 jours', '36 hours = 2 days'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 1}), true), 'un jour', '1 day = a day'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 5}), true), '5 jours', '5 days = 5 days'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 25}), true), '25 jours', '25 days = 25 days'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 26}), true), 'un mois', '26 days = a month'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 30}), true), 'un mois', '30 days = a month'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 43}), true), 'un mois', '43 days = a month'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 46}), true), '2 mois', '46 days = 2 months'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 74}), true), '2 mois', '75 days = 2 months'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 76}), true), '3 mois', '76 days = 3 months'); - assert.equal(start.from(moment([2007, 1, 28]).add({M: 1}), true), 'un mois', '1 month = a month'); - assert.equal(start.from(moment([2007, 1, 28]).add({M: 5}), true), '5 mois', '5 months = 5 months'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 345}), true), 'un an', '345 days = a year'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 548}), true), '2 ans', '548 days = 2 years'); - assert.equal(start.from(moment([2007, 1, 28]).add({y: 1}), true), 'un an', '1 year = a year'); - assert.equal(start.from(moment([2007, 1, 28]).add({y: 5}), true), '5 ans', '5 years = 5 years'); -}); - -test('suffix', function (assert) { - assert.equal(moment(30000).from(0), 'dans quelques secondes', 'prefix'); - assert.equal(moment(0).from(30000), 'il y a quelques secondes', 'suffix'); -}); - -test('fromNow', function (assert) { - assert.equal(moment().add({s: 30}).fromNow(), 'dans quelques secondes', 'in a few seconds'); - assert.equal(moment().add({d: 5}).fromNow(), 'dans 5 jours', 'in 5 days'); -}); - -test('same day', function (assert) { - var a = moment().hours(12).minutes(0).seconds(0); - - assert.equal(moment(a).calendar(), 'Aujourd’hui à 12:00', 'Today at the same time'); - assert.equal(moment(a).add({m: 25}).calendar(), 'Aujourd’hui à 12:25', 'Now plus 25 min'); - assert.equal(moment(a).add({h: 1}).calendar(), 'Aujourd’hui à 13:00', 'Now plus 1 hour'); - assert.equal(moment(a).add({d: 1}).calendar(), 'Demain à 12:00', 'Tomorrow at the same time'); - assert.equal(moment(a).subtract({h: 1}).calendar(), 'Aujourd’hui à 11:00', 'Now minus 1 hour'); - assert.equal(moment(a).subtract({d: 1}).calendar(), 'Hier à 12:00', 'Yesterday at the same time'); -}); - -test('same next week', function (assert) { - var i, m; - - for (i = 2; i < 7; i++) { - m = moment().add({d: i}); - assert.equal(m.calendar(), m.format('dddd [à] LT'), 'Today + ' + i + ' days current time'); - m.hours(0).minutes(0).seconds(0).milliseconds(0); - assert.equal(m.calendar(), m.format('dddd [à] LT'), 'Today + ' + i + ' days beginning of day'); - m.hours(23).minutes(59).seconds(59).milliseconds(999); - assert.equal(m.calendar(), m.format('dddd [à] LT'), 'Today + ' + i + ' days end of day'); - } -}); - -test('same last week', function (assert) { - var i, m; - - for (i = 2; i < 7; i++) { - m = moment().subtract({d: i}); - assert.equal(m.calendar(), m.format('dddd [dernier à] LT'), 'Today - ' + i + ' days current time'); - m.hours(0).minutes(0).seconds(0).milliseconds(0); - assert.equal(m.calendar(), m.format('dddd [dernier à] LT'), 'Today - ' + i + ' days beginning of day'); - m.hours(23).minutes(59).seconds(59).milliseconds(999); - assert.equal(m.calendar(), m.format('dddd [dernier à] LT'), 'Today - ' + i + ' days end of day'); - } -}); - -test('same all else', function (assert) { - var weeksAgo = moment().subtract({w: 1}), - weeksFromNow = moment().add({w: 1}); - - assert.equal(weeksAgo.calendar(), weeksAgo.format('L'), '1 week ago'); - assert.equal(weeksFromNow.calendar(), weeksFromNow.format('L'), 'in 1 week'); - - weeksAgo = moment().subtract({w: 2}); - weeksFromNow = moment().add({w: 2}); - - assert.equal(weeksAgo.calendar(), weeksAgo.format('L'), '2 weeks ago'); - assert.equal(weeksFromNow.calendar(), weeksFromNow.format('L'), 'in 2 weeks'); -}); - -test('weeks year starting sunday formatted', function (assert) { - assert.equal(moment([2012, 0, 1]).format('w ww wo'), '52 52 52e', 'Jan 1 2012 should be week 52'); - assert.equal(moment([2012, 0, 2]).format('w ww wo'), '1 01 1re', 'Jan 2 2012 should be week 1'); - assert.equal(moment([2012, 0, 8]).format('w ww wo'), '1 01 1re', 'Jan 8 2012 should be week 1'); - assert.equal(moment([2012, 0, 9]).format('w ww wo'), '2 02 2e', 'Jan 9 2012 should be week 2'); - assert.equal(moment([2012, 0, 15]).format('w ww wo'), '2 02 2e', 'Jan 15 2012 should be week 2'); -}); - -}))); - - -;(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' - && typeof require === 'function' ? factory(require('../../moment')) : - typeof define === 'function' && define.amd ? define(['../../moment'], factory) : - factory(global.moment) -}(this, (function (moment) { 'use strict'; - -function each(array, callback) { - var i; - for (i = 0; i < array.length; i++) { - callback(array[i], i, array); - } -} - -function objectKeys(obj) { - if (Object.keys) { - return Object.keys(obj); - } else { - // IE8 - var res = [], i; - for (i in obj) { - if (obj.hasOwnProperty(i)) { - res.push(i); - } - } - return res; - } -} - -// Pick the first defined of two or three arguments. - -function defineCommonLocaleTests(locale, options) { - test('lenient day of month ordinal parsing', function (assert) { - var i, ordinalStr, testMoment; - for (i = 1; i <= 31; ++i) { - ordinalStr = moment([2014, 0, i]).format('YYYY MM Do'); - testMoment = moment(ordinalStr, 'YYYY MM Do'); - assert.equal(testMoment.year(), 2014, - 'lenient day of month ordinal parsing ' + i + ' year check'); - assert.equal(testMoment.month(), 0, - 'lenient day of month ordinal parsing ' + i + ' month check'); - assert.equal(testMoment.date(), i, - 'lenient day of month ordinal parsing ' + i + ' date check'); - } - }); - - test('lenient day of month ordinal parsing of number', function (assert) { - var i, testMoment; - for (i = 1; i <= 31; ++i) { - testMoment = moment('2014 01 ' + i, 'YYYY MM Do'); - assert.equal(testMoment.year(), 2014, - 'lenient day of month ordinal parsing of number ' + i + ' year check'); - assert.equal(testMoment.month(), 0, - 'lenient day of month ordinal parsing of number ' + i + ' month check'); - assert.equal(testMoment.date(), i, - 'lenient day of month ordinal parsing of number ' + i + ' date check'); - } - }); - - test('strict day of month ordinal parsing', function (assert) { - var i, ordinalStr, testMoment; - for (i = 1; i <= 31; ++i) { - ordinalStr = moment([2014, 0, i]).format('YYYY MM Do'); - testMoment = moment(ordinalStr, 'YYYY MM Do', true); - assert.ok(testMoment.isValid(), 'strict day of month ordinal parsing ' + i); - } - }); - - test('meridiem invariant', function (assert) { - var h, m, t1, t2; - for (h = 0; h < 24; ++h) { - for (m = 0; m < 60; m += 15) { - t1 = moment.utc([2000, 0, 1, h, m]); - t2 = moment.utc(t1.format('A h:mm'), 'A h:mm'); - assert.equal(t2.format('HH:mm'), t1.format('HH:mm'), - 'meridiem at ' + t1.format('HH:mm')); - } - } - }); - - test('date format correctness', function (assert) { - var data, tokens; - data = moment.localeData()._longDateFormat; - tokens = objectKeys(data); - each(tokens, function (srchToken) { - // Check each format string to make sure it does not contain any - // tokens that need to be expanded. - each(tokens, function (baseToken) { - // strip escaped sequences - var format = data[baseToken].replace(/(\[[^\]]*\])/g, ''); - assert.equal(false, !!~format.indexOf(srchToken), - 'contains ' + srchToken + ' in ' + baseToken); - }); - }); - }); - - test('month parsing correctness', function (assert) { - var i, m; - - if (locale === 'tr') { - // I can't fix it :( - expect(0); - return; - } - function tester(format) { - var r; - r = moment(m.format(format), format); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format); - r = moment(m.format(format).toLocaleUpperCase(), format); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' upper'); - r = moment(m.format(format).toLocaleLowerCase(), format); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' lower'); - - r = moment(m.format(format), format, true); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' strict'); - r = moment(m.format(format).toLocaleUpperCase(), format, true); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' upper strict'); - r = moment(m.format(format).toLocaleLowerCase(), format, true); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' lower strict'); - } - - for (i = 0; i < 12; ++i) { - m = moment([2015, i, 15, 18]); - tester('MMM'); - tester('MMM.'); - tester('MMMM'); - tester('MMMM.'); - } - }); - - test('weekday parsing correctness', function (assert) { - var i, m; - - if (locale === 'tr' || locale === 'az' || locale === 'ro') { - // tr, az: There is a lower-case letter (ı), that converted to - // upper then lower changes to i - // ro: there is the letter ț which behaves weird under IE8 - expect(0); - return; - } - function tester(format) { - var r, baseMsg = 'weekday ' + m.weekday() + ' fmt ' + format + ' ' + m.toISOString(); - r = moment(m.format(format), format); - assert.equal(r.weekday(), m.weekday(), baseMsg); - r = moment(m.format(format).toLocaleUpperCase(), format); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' upper'); - r = moment(m.format(format).toLocaleLowerCase(), format); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' lower'); - - r = moment(m.format(format), format, true); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' strict'); - r = moment(m.format(format).toLocaleUpperCase(), format, true); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' upper strict'); - r = moment(m.format(format).toLocaleLowerCase(), format, true); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' lower strict'); - } - - for (i = 0; i < 7; ++i) { - m = moment.utc([2015, 0, i + 1, 18]); - tester('dd'); - tester('ddd'); - tester('dddd'); - } - }); - - test('valid localeData', function (assert) { - assert.equal(moment().localeData().months().length, 12, 'months should return 12 months'); - assert.equal(moment().localeData().monthsShort().length, 12, 'monthsShort should return 12 months'); - assert.equal(moment().localeData().weekdays().length, 7, 'weekdays should return 7 days'); - assert.equal(moment().localeData().weekdaysShort().length, 7, 'weekdaysShort should return 7 days'); - assert.equal(moment().localeData().weekdaysMin().length, 7, 'monthsShort should return 7 days'); - }); -} - -function setupDeprecationHandler(test, moment$$1, scope) { - test._expectedDeprecations = null; - test._observedDeprecations = null; - test._oldSupress = moment$$1.suppressDeprecationWarnings; - moment$$1.suppressDeprecationWarnings = true; - test.expectedDeprecations = function () { - test._expectedDeprecations = arguments; - test._observedDeprecations = []; - }; - moment$$1.deprecationHandler = function (name, msg) { - var deprecationId = matchedDeprecation(name, msg, test._expectedDeprecations); - if (deprecationId === -1) { - throw new Error('Unexpected deprecation thrown name=' + - name + ' msg=' + msg); - } - test._observedDeprecations[deprecationId] = 1; - }; -} - -function teardownDeprecationHandler(test, moment$$1, scope) { - moment$$1.suppressDeprecationWarnings = test._oldSupress; - - if (test._expectedDeprecations != null) { - var missedDeprecations = []; - each(test._expectedDeprecations, function (deprecationPattern, id) { - if (test._observedDeprecations[id] !== 1) { - missedDeprecations.push(deprecationPattern); - } - }); - if (missedDeprecations.length !== 0) { - throw new Error('Expected deprecation warnings did not happen: ' + - missedDeprecations.join(' ')); - } - } -} - -function matchedDeprecation(name, msg, deprecations) { - if (deprecations == null) { - return -1; - } - for (var i = 0; i < deprecations.length; ++i) { - if (name != null && name === deprecations[i]) { - return i; - } - if (msg != null && msg.substring(0, deprecations[i].length) === deprecations[i]) { - return i; - } - } - return -1; -} - -/*global QUnit:false*/ - -var test = QUnit.test; - -var expect = QUnit.expect; - - - -function localeModule (name, lifecycle) { - QUnit.module('locale:' + name, { - setup : function () { - moment.locale(name); - moment.createFromInputFallback = function (config) { - throw new Error('input not handled by moment: ' + config._i); - }; - setupDeprecationHandler(test, moment, 'locale'); - if (lifecycle && lifecycle.setup) { - lifecycle.setup(); - } - }, - teardown : function () { - moment.locale('en'); - teardownDeprecationHandler(test, moment, 'locale'); - if (lifecycle && lifecycle.teardown) { - lifecycle.teardown(); - } - } - }); - defineCommonLocaleTests(name, -1, -1); -} - -localeModule('fr'); - -test('parse', function (assert) { - var i, - tests = 'janvier janv._février févr._mars mars_avril avr._mai mai_juin juin_juillet juil._août août_septembre sept._octobre oct._novembre nov._décembre déc.'.split('_'); - - function equalTest(input, mmm, i) { - assert.equal(moment(input, mmm).month(), i, input + ' should be month ' + (i + 1)); - } - - for (i = 0; i < 12; i++) { - tests[i] = tests[i].split(' '); - equalTest(tests[i][0], 'MMM', i); - equalTest(tests[i][1], 'MMM', i); - equalTest(tests[i][0], 'MMMM', i); - equalTest(tests[i][1], 'MMMM', i); - equalTest(tests[i][0].toLocaleLowerCase(), 'MMMM', i); - equalTest(tests[i][1].toLocaleLowerCase(), 'MMMM', i); - equalTest(tests[i][0].toLocaleUpperCase(), 'MMMM', i); - equalTest(tests[i][1].toLocaleUpperCase(), 'MMMM', i); - } -}); - -test('format', function (assert) { - var a = [ - ['dddd, MMMM Do YYYY, h:mm:ss a', 'dimanche, février 14 2010, 3:25:50 pm'], - ['ddd, hA', 'dim., 3PM'], - ['M Mo MM MMMM MMM', '2 2e 02 février févr.'], - ['YYYY YY', '2010 10'], - ['D Do DD', '14 14 14'], - ['d do dddd ddd dd', '0 0e dimanche dim. Di'], - ['DDD DDDo DDDD', '45 45e 045'], - ['w wo ww', '6 6e 06'], - ['h hh', '3 03'], - ['H HH', '15 15'], - ['m mm', '25 25'], - ['s ss', '50 50'], - ['a A', 'pm PM'], - ['[le] Do [jour du mois]', 'le 14 jour du mois'], - ['[le] DDDo [jour de l’année]', 'le 45e jour de l’année'], - ['LTS', '15:25:50'], - ['L', '14/02/2010'], - ['LL', '14 février 2010'], - ['LLL', '14 février 2010 15:25'], - ['LLLL', 'dimanche 14 février 2010 15:25'], - ['l', '14/2/2010'], - ['ll', '14 févr. 2010'], - ['lll', '14 févr. 2010 15:25'], - ['llll', 'dim. 14 févr. 2010 15:25'] - ], - b = moment(new Date(2010, 1, 14, 15, 25, 50, 125)), - i; - - for (i = 0; i < a.length; i++) { - assert.equal(b.format(a[i][0]), a[i][1], a[i][0] + ' ---> ' + a[i][1]); - } -}); - -test('format ordinal', function (assert) { - assert.equal(moment([2017, 0, 1]).format('Mo'), '1er', '1er'); - assert.equal(moment([2017, 1, 1]).format('Mo'), '2e', '2e'); - - assert.equal(moment([2017, 0, 1]).format('Qo'), '1er', '1er'); - assert.equal(moment([2017, 3, 1]).format('Qo'), '2e', '2e'); - - assert.equal(moment([2017, 0, 1]).format('Do'), '1er', '1er'); - assert.equal(moment([2017, 0, 2]).format('Do'), '2', '2'); - - assert.equal(moment([2011, 0, 1]).format('DDDo'), '1er', '1er'); - assert.equal(moment([2011, 0, 2]).format('DDDo'), '2e', '2e'); - assert.equal(moment([2011, 0, 3]).format('DDDo'), '3e', '3e'); - assert.equal(moment([2011, 0, 4]).format('DDDo'), '4e', '4e'); - assert.equal(moment([2011, 0, 5]).format('DDDo'), '5e', '5e'); - assert.equal(moment([2011, 0, 6]).format('DDDo'), '6e', '6e'); - assert.equal(moment([2011, 0, 7]).format('DDDo'), '7e', '7e'); - assert.equal(moment([2011, 0, 8]).format('DDDo'), '8e', '8e'); - assert.equal(moment([2011, 0, 9]).format('DDDo'), '9e', '9e'); - assert.equal(moment([2011, 0, 10]).format('DDDo'), '10e', '10e'); - - assert.equal(moment([2011, 0, 11]).format('DDDo'), '11e', '11e'); - assert.equal(moment([2011, 0, 12]).format('DDDo'), '12e', '12e'); - assert.equal(moment([2011, 0, 13]).format('DDDo'), '13e', '13e'); - assert.equal(moment([2011, 0, 14]).format('DDDo'), '14e', '14e'); - assert.equal(moment([2011, 0, 15]).format('DDDo'), '15e', '15e'); - assert.equal(moment([2011, 0, 16]).format('DDDo'), '16e', '16e'); - assert.equal(moment([2011, 0, 17]).format('DDDo'), '17e', '17e'); - assert.equal(moment([2011, 0, 18]).format('DDDo'), '18e', '18e'); - assert.equal(moment([2011, 0, 19]).format('DDDo'), '19e', '19e'); - assert.equal(moment([2011, 0, 20]).format('DDDo'), '20e', '20e'); - - assert.equal(moment([2011, 0, 21]).format('DDDo'), '21e', '21e'); - assert.equal(moment([2011, 0, 22]).format('DDDo'), '22e', '22e'); - assert.equal(moment([2011, 0, 23]).format('DDDo'), '23e', '23e'); - assert.equal(moment([2011, 0, 24]).format('DDDo'), '24e', '24e'); - assert.equal(moment([2011, 0, 25]).format('DDDo'), '25e', '25e'); - assert.equal(moment([2011, 0, 26]).format('DDDo'), '26e', '26e'); - assert.equal(moment([2011, 0, 27]).format('DDDo'), '27e', '27e'); - assert.equal(moment([2011, 0, 28]).format('DDDo'), '28e', '28e'); - assert.equal(moment([2011, 0, 29]).format('DDDo'), '29e', '29e'); - assert.equal(moment([2011, 0, 30]).format('DDDo'), '30e', '30e'); - - assert.equal(moment([2011, 0, 31]).format('DDDo'), '31e', '31e'); - - assert.equal(moment([2017, 0, 1]).format('do'), '0e', '0e'); - assert.equal(moment([2017, 0, 2]).format('do'), '1er', '1er'); - - assert.equal(moment([2017, 0, 4]).format('wo Wo'), '1re 1re', '1re 1re'); - assert.equal(moment([2017, 0, 11]).format('wo Wo'), '2e 2e', '2e 2e'); -}); - -test('format month', function (assert) { - var i, - expected = 'janvier janv._février févr._mars mars_avril avr._mai mai_juin juin_juillet juil._août août_septembre sept._octobre oct._novembre nov._décembre déc.'.split('_'); - - for (i = 0; i < expected.length; i++) { - assert.equal(moment([2011, i, 1]).format('MMMM MMM'), expected[i], expected[i]); - } -}); - -test('format week', function (assert) { - var i, - expected = 'dimanche dim. Di_lundi lun. Lu_mardi mar. Ma_mercredi mer. Me_jeudi jeu. Je_vendredi ven. Ve_samedi sam. Sa'.split('_'); - - for (i = 0; i < expected.length; i++) { - assert.equal(moment([2011, 0, 2 + i]).format('dddd ddd dd'), expected[i], expected[i]); - } -}); - -test('from', function (assert) { - var start = moment([2007, 1, 28]); - - assert.equal(start.from(moment([2007, 1, 28]).add({s: 44}), true), 'quelques secondes', '44 seconds = a few seconds'); - assert.equal(start.from(moment([2007, 1, 28]).add({s: 45}), true), 'une minute', '45 seconds = a minute'); - assert.equal(start.from(moment([2007, 1, 28]).add({s: 89}), true), 'une minute', '89 seconds = a minute'); - assert.equal(start.from(moment([2007, 1, 28]).add({s: 90}), true), '2 minutes', '90 seconds = 2 minutes'); - assert.equal(start.from(moment([2007, 1, 28]).add({m: 44}), true), '44 minutes', '44 minutes = 44 minutes'); - assert.equal(start.from(moment([2007, 1, 28]).add({m: 45}), true), 'une heure', '45 minutes = an hour'); - assert.equal(start.from(moment([2007, 1, 28]).add({m: 89}), true), 'une heure', '89 minutes = an hour'); - assert.equal(start.from(moment([2007, 1, 28]).add({m: 90}), true), '2 heures', '90 minutes = 2 hours'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 5}), true), '5 heures', '5 hours = 5 hours'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 21}), true), '21 heures', '21 hours = 21 hours'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 22}), true), 'un jour', '22 hours = a day'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 35}), true), 'un jour', '35 hours = a day'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 36}), true), '2 jours', '36 hours = 2 days'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 1}), true), 'un jour', '1 day = a day'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 5}), true), '5 jours', '5 days = 5 days'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 25}), true), '25 jours', '25 days = 25 days'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 26}), true), 'un mois', '26 days = a month'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 30}), true), 'un mois', '30 days = a month'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 43}), true), 'un mois', '43 days = a month'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 46}), true), '2 mois', '46 days = 2 months'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 74}), true), '2 mois', '75 days = 2 months'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 76}), true), '3 mois', '76 days = 3 months'); - assert.equal(start.from(moment([2007, 1, 28]).add({M: 1}), true), 'un mois', '1 month = a month'); - assert.equal(start.from(moment([2007, 1, 28]).add({M: 5}), true), '5 mois', '5 months = 5 months'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 345}), true), 'un an', '345 days = a year'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 548}), true), '2 ans', '548 days = 2 years'); - assert.equal(start.from(moment([2007, 1, 28]).add({y: 1}), true), 'un an', '1 year = a year'); - assert.equal(start.from(moment([2007, 1, 28]).add({y: 5}), true), '5 ans', '5 years = 5 years'); -}); - -test('suffix', function (assert) { - assert.equal(moment(30000).from(0), 'dans quelques secondes', 'prefix'); - assert.equal(moment(0).from(30000), 'il y a quelques secondes', 'suffix'); -}); - -test('fromNow', function (assert) { - assert.equal(moment().add({s: 30}).fromNow(), 'dans quelques secondes', 'in a few seconds'); - assert.equal(moment().add({d: 5}).fromNow(), 'dans 5 jours', 'in 5 days'); -}); - -test('same day', function (assert) { - var a = moment().hours(12).minutes(0).seconds(0); - - assert.equal(moment(a).calendar(), 'Aujourd’hui à 12:00', 'Today at the same time'); - assert.equal(moment(a).add({m: 25}).calendar(), 'Aujourd’hui à 12:25', 'Now plus 25 min'); - assert.equal(moment(a).add({h: 1}).calendar(), 'Aujourd’hui à 13:00', 'Now plus 1 hour'); - assert.equal(moment(a).add({d: 1}).calendar(), 'Demain à 12:00', 'Tomorrow at the same time'); - assert.equal(moment(a).subtract({h: 1}).calendar(), 'Aujourd’hui à 11:00', 'Now minus 1 hour'); - assert.equal(moment(a).subtract({d: 1}).calendar(), 'Hier à 12:00', 'Yesterday at the same time'); -}); - -test('same next week', function (assert) { - var i, m; - - for (i = 2; i < 7; i++) { - m = moment().add({d: i}); - assert.equal(m.calendar(), m.format('dddd [à] LT'), 'Today + ' + i + ' days current time'); - m.hours(0).minutes(0).seconds(0).milliseconds(0); - assert.equal(m.calendar(), m.format('dddd [à] LT'), 'Today + ' + i + ' days beginning of day'); - m.hours(23).minutes(59).seconds(59).milliseconds(999); - assert.equal(m.calendar(), m.format('dddd [à] LT'), 'Today + ' + i + ' days end of day'); - } -}); - -test('same last week', function (assert) { - var i, m; - - for (i = 2; i < 7; i++) { - m = moment().subtract({d: i}); - assert.equal(m.calendar(), m.format('dddd [dernier à] LT'), 'Today - ' + i + ' days current time'); - m.hours(0).minutes(0).seconds(0).milliseconds(0); - assert.equal(m.calendar(), m.format('dddd [dernier à] LT'), 'Today - ' + i + ' days beginning of day'); - m.hours(23).minutes(59).seconds(59).milliseconds(999); - assert.equal(m.calendar(), m.format('dddd [dernier à] LT'), 'Today - ' + i + ' days end of day'); - } -}); - -test('same all else', function (assert) { - var weeksAgo = moment().subtract({w: 1}), - weeksFromNow = moment().add({w: 1}); - - assert.equal(weeksAgo.calendar(), weeksAgo.format('L'), '1 week ago'); - assert.equal(weeksFromNow.calendar(), weeksFromNow.format('L'), 'in 1 week'); - - weeksAgo = moment().subtract({w: 2}); - weeksFromNow = moment().add({w: 2}); - - assert.equal(weeksAgo.calendar(), weeksAgo.format('L'), '2 weeks ago'); - assert.equal(weeksFromNow.calendar(), weeksFromNow.format('L'), 'in 2 weeks'); -}); - -test('weeks year starting sunday formatted', function (assert) { - assert.equal(moment([2012, 0, 1]).format('w ww wo'), '52 52 52e', 'Jan 1 2012 should be week 52'); - assert.equal(moment([2012, 0, 2]).format('w ww wo'), '1 01 1re', 'Jan 2 2012 should be week 1'); - assert.equal(moment([2012, 0, 8]).format('w ww wo'), '1 01 1re', 'Jan 8 2012 should be week 1'); - assert.equal(moment([2012, 0, 9]).format('w ww wo'), '2 02 2e', 'Jan 9 2012 should be week 2'); - assert.equal(moment([2012, 0, 15]).format('w ww wo'), '2 02 2e', 'Jan 15 2012 should be week 2'); -}); - -}))); - - -;(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' - && typeof require === 'function' ? factory(require('../../moment')) : - typeof define === 'function' && define.amd ? define(['../../moment'], factory) : - factory(global.moment) -}(this, (function (moment) { 'use strict'; - -function each(array, callback) { - var i; - for (i = 0; i < array.length; i++) { - callback(array[i], i, array); - } -} - -function objectKeys(obj) { - if (Object.keys) { - return Object.keys(obj); - } else { - // IE8 - var res = [], i; - for (i in obj) { - if (obj.hasOwnProperty(i)) { - res.push(i); - } - } - return res; - } -} - -// Pick the first defined of two or three arguments. - -function defineCommonLocaleTests(locale, options) { - test('lenient day of month ordinal parsing', function (assert) { - var i, ordinalStr, testMoment; - for (i = 1; i <= 31; ++i) { - ordinalStr = moment([2014, 0, i]).format('YYYY MM Do'); - testMoment = moment(ordinalStr, 'YYYY MM Do'); - assert.equal(testMoment.year(), 2014, - 'lenient day of month ordinal parsing ' + i + ' year check'); - assert.equal(testMoment.month(), 0, - 'lenient day of month ordinal parsing ' + i + ' month check'); - assert.equal(testMoment.date(), i, - 'lenient day of month ordinal parsing ' + i + ' date check'); - } - }); - - test('lenient day of month ordinal parsing of number', function (assert) { - var i, testMoment; - for (i = 1; i <= 31; ++i) { - testMoment = moment('2014 01 ' + i, 'YYYY MM Do'); - assert.equal(testMoment.year(), 2014, - 'lenient day of month ordinal parsing of number ' + i + ' year check'); - assert.equal(testMoment.month(), 0, - 'lenient day of month ordinal parsing of number ' + i + ' month check'); - assert.equal(testMoment.date(), i, - 'lenient day of month ordinal parsing of number ' + i + ' date check'); - } - }); - - test('strict day of month ordinal parsing', function (assert) { - var i, ordinalStr, testMoment; - for (i = 1; i <= 31; ++i) { - ordinalStr = moment([2014, 0, i]).format('YYYY MM Do'); - testMoment = moment(ordinalStr, 'YYYY MM Do', true); - assert.ok(testMoment.isValid(), 'strict day of month ordinal parsing ' + i); - } - }); - - test('meridiem invariant', function (assert) { - var h, m, t1, t2; - for (h = 0; h < 24; ++h) { - for (m = 0; m < 60; m += 15) { - t1 = moment.utc([2000, 0, 1, h, m]); - t2 = moment.utc(t1.format('A h:mm'), 'A h:mm'); - assert.equal(t2.format('HH:mm'), t1.format('HH:mm'), - 'meridiem at ' + t1.format('HH:mm')); - } - } - }); - - test('date format correctness', function (assert) { - var data, tokens; - data = moment.localeData()._longDateFormat; - tokens = objectKeys(data); - each(tokens, function (srchToken) { - // Check each format string to make sure it does not contain any - // tokens that need to be expanded. - each(tokens, function (baseToken) { - // strip escaped sequences - var format = data[baseToken].replace(/(\[[^\]]*\])/g, ''); - assert.equal(false, !!~format.indexOf(srchToken), - 'contains ' + srchToken + ' in ' + baseToken); - }); - }); - }); - - test('month parsing correctness', function (assert) { - var i, m; - - if (locale === 'tr') { - // I can't fix it :( - expect(0); - return; - } - function tester(format) { - var r; - r = moment(m.format(format), format); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format); - r = moment(m.format(format).toLocaleUpperCase(), format); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' upper'); - r = moment(m.format(format).toLocaleLowerCase(), format); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' lower'); - - r = moment(m.format(format), format, true); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' strict'); - r = moment(m.format(format).toLocaleUpperCase(), format, true); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' upper strict'); - r = moment(m.format(format).toLocaleLowerCase(), format, true); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' lower strict'); - } - - for (i = 0; i < 12; ++i) { - m = moment([2015, i, 15, 18]); - tester('MMM'); - tester('MMM.'); - tester('MMMM'); - tester('MMMM.'); - } - }); - - test('weekday parsing correctness', function (assert) { - var i, m; - - if (locale === 'tr' || locale === 'az' || locale === 'ro') { - // tr, az: There is a lower-case letter (ı), that converted to - // upper then lower changes to i - // ro: there is the letter ț which behaves weird under IE8 - expect(0); - return; - } - function tester(format) { - var r, baseMsg = 'weekday ' + m.weekday() + ' fmt ' + format + ' ' + m.toISOString(); - r = moment(m.format(format), format); - assert.equal(r.weekday(), m.weekday(), baseMsg); - r = moment(m.format(format).toLocaleUpperCase(), format); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' upper'); - r = moment(m.format(format).toLocaleLowerCase(), format); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' lower'); - - r = moment(m.format(format), format, true); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' strict'); - r = moment(m.format(format).toLocaleUpperCase(), format, true); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' upper strict'); - r = moment(m.format(format).toLocaleLowerCase(), format, true); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' lower strict'); - } - - for (i = 0; i < 7; ++i) { - m = moment.utc([2015, 0, i + 1, 18]); - tester('dd'); - tester('ddd'); - tester('dddd'); - } - }); - - test('valid localeData', function (assert) { - assert.equal(moment().localeData().months().length, 12, 'months should return 12 months'); - assert.equal(moment().localeData().monthsShort().length, 12, 'monthsShort should return 12 months'); - assert.equal(moment().localeData().weekdays().length, 7, 'weekdays should return 7 days'); - assert.equal(moment().localeData().weekdaysShort().length, 7, 'weekdaysShort should return 7 days'); - assert.equal(moment().localeData().weekdaysMin().length, 7, 'monthsShort should return 7 days'); - }); -} - -function setupDeprecationHandler(test, moment$$1, scope) { - test._expectedDeprecations = null; - test._observedDeprecations = null; - test._oldSupress = moment$$1.suppressDeprecationWarnings; - moment$$1.suppressDeprecationWarnings = true; - test.expectedDeprecations = function () { - test._expectedDeprecations = arguments; - test._observedDeprecations = []; - }; - moment$$1.deprecationHandler = function (name, msg) { - var deprecationId = matchedDeprecation(name, msg, test._expectedDeprecations); - if (deprecationId === -1) { - throw new Error('Unexpected deprecation thrown name=' + - name + ' msg=' + msg); - } - test._observedDeprecations[deprecationId] = 1; - }; -} - -function teardownDeprecationHandler(test, moment$$1, scope) { - moment$$1.suppressDeprecationWarnings = test._oldSupress; - - if (test._expectedDeprecations != null) { - var missedDeprecations = []; - each(test._expectedDeprecations, function (deprecationPattern, id) { - if (test._observedDeprecations[id] !== 1) { - missedDeprecations.push(deprecationPattern); - } - }); - if (missedDeprecations.length !== 0) { - throw new Error('Expected deprecation warnings did not happen: ' + - missedDeprecations.join(' ')); - } - } -} - -function matchedDeprecation(name, msg, deprecations) { - if (deprecations == null) { - return -1; - } - for (var i = 0; i < deprecations.length; ++i) { - if (name != null && name === deprecations[i]) { - return i; - } - if (msg != null && msg.substring(0, deprecations[i].length) === deprecations[i]) { - return i; - } - } - return -1; -} - -/*global QUnit:false*/ - -var test = QUnit.test; - -var expect = QUnit.expect; - - - -function localeModule (name, lifecycle) { - QUnit.module('locale:' + name, { - setup : function () { - moment.locale(name); - moment.createFromInputFallback = function (config) { - throw new Error('input not handled by moment: ' + config._i); - }; - setupDeprecationHandler(test, moment, 'locale'); - if (lifecycle && lifecycle.setup) { - lifecycle.setup(); - } - }, - teardown : function () { - moment.locale('en'); - teardownDeprecationHandler(test, moment, 'locale'); - if (lifecycle && lifecycle.teardown) { - lifecycle.teardown(); - } - } - }); - defineCommonLocaleTests(name, -1, -1); -} - -localeModule('fy'); - -test('parse', function (assert) { - var tests = 'jannewaris jan._febrewaris feb._maart mrt._april apr._maaie mai._juny jun._july jul._augustus aug._septimber sep._oktober okt._novimber nov._desimber des.'.split('_'), i; - function equalTest(input, mmm, i) { - assert.equal(moment(input, mmm).month(), i, input + ' should be month ' + (i + 1)); - } - for (i = 0; i < 12; i++) { - tests[i] = tests[i].split(' '); - equalTest(tests[i][0], 'MMM', i); - equalTest(tests[i][1], 'MMM', i); - equalTest(tests[i][0], 'MMMM', i); - equalTest(tests[i][1], 'MMMM', i); - equalTest(tests[i][0].toLocaleLowerCase(), 'MMMM', i); - equalTest(tests[i][1].toLocaleLowerCase(), 'MMMM', i); - equalTest(tests[i][0].toLocaleUpperCase(), 'MMMM', i); - equalTest(tests[i][1].toLocaleUpperCase(), 'MMMM', i); - } -}); - -test('format', function (assert) { - var a = [ - ['dddd, MMMM Do YYYY, HH:mm:ss', 'snein, febrewaris 14de 2010, 15:25:50'], - ['ddd, HH', 'si., 15'], - ['M Mo MM MMMM MMM', '2 2de 02 febrewaris feb.'], - ['YYYY YY', '2010 10'], - ['D Do DD', '14 14de 14'], - ['d do dddd ddd dd', '0 0de snein si. Si'], - ['DDD DDDo DDDD', '45 45ste 045'], - ['w wo ww', '6 6de 06'], - ['h hh', '3 03'], - ['H HH', '15 15'], - ['m mm', '25 25'], - ['s ss', '50 50'], - ['a A', 'pm PM'], - ['[the] DDDo [day of the year]', 'the 45ste day of the year'], - ['LTS', '15:25:50'], - ['L', '14-02-2010'], - ['LL', '14 febrewaris 2010'], - ['LLL', '14 febrewaris 2010 15:25'], - ['LLLL', 'snein 14 febrewaris 2010 15:25'], - ['l', '14-2-2010'], - ['ll', '14 feb. 2010'], - ['lll', '14 feb. 2010 15:25'], - ['llll', 'si. 14 feb. 2010 15:25'] - ], - b = moment(new Date(2010, 1, 14, 15, 25, 50, 125)), - i; - for (i = 0; i < a.length; i++) { - assert.equal(b.format(a[i][0]), a[i][1], a[i][0] + ' ---> ' + a[i][1]); - } -}); - -test('format ordinal', function (assert) { - assert.equal(moment([2011, 0, 1]).format('DDDo'), '1ste', '1ste'); - assert.equal(moment([2011, 0, 2]).format('DDDo'), '2de', '2de'); - assert.equal(moment([2011, 0, 3]).format('DDDo'), '3de', '3de'); - assert.equal(moment([2011, 0, 4]).format('DDDo'), '4de', '4de'); - assert.equal(moment([2011, 0, 5]).format('DDDo'), '5de', '5de'); - assert.equal(moment([2011, 0, 6]).format('DDDo'), '6de', '6de'); - assert.equal(moment([2011, 0, 7]).format('DDDo'), '7de', '7de'); - assert.equal(moment([2011, 0, 8]).format('DDDo'), '8ste', '8ste'); - assert.equal(moment([2011, 0, 9]).format('DDDo'), '9de', '9de'); - assert.equal(moment([2011, 0, 10]).format('DDDo'), '10de', '10de'); - - assert.equal(moment([2011, 0, 11]).format('DDDo'), '11de', '11de'); - assert.equal(moment([2011, 0, 12]).format('DDDo'), '12de', '12de'); - assert.equal(moment([2011, 0, 13]).format('DDDo'), '13de', '13de'); - assert.equal(moment([2011, 0, 14]).format('DDDo'), '14de', '14de'); - assert.equal(moment([2011, 0, 15]).format('DDDo'), '15de', '15de'); - assert.equal(moment([2011, 0, 16]).format('DDDo'), '16de', '16de'); - assert.equal(moment([2011, 0, 17]).format('DDDo'), '17de', '17de'); - assert.equal(moment([2011, 0, 18]).format('DDDo'), '18de', '18de'); - assert.equal(moment([2011, 0, 19]).format('DDDo'), '19de', '19de'); - assert.equal(moment([2011, 0, 20]).format('DDDo'), '20ste', '20ste'); - - assert.equal(moment([2011, 0, 21]).format('DDDo'), '21ste', '21ste'); - assert.equal(moment([2011, 0, 22]).format('DDDo'), '22ste', '22ste'); - assert.equal(moment([2011, 0, 23]).format('DDDo'), '23ste', '23ste'); - assert.equal(moment([2011, 0, 24]).format('DDDo'), '24ste', '24ste'); - assert.equal(moment([2011, 0, 25]).format('DDDo'), '25ste', '25ste'); - assert.equal(moment([2011, 0, 26]).format('DDDo'), '26ste', '26ste'); - assert.equal(moment([2011, 0, 27]).format('DDDo'), '27ste', '27ste'); - assert.equal(moment([2011, 0, 28]).format('DDDo'), '28ste', '28ste'); - assert.equal(moment([2011, 0, 29]).format('DDDo'), '29ste', '29ste'); - assert.equal(moment([2011, 0, 30]).format('DDDo'), '30ste', '30ste'); - - assert.equal(moment([2011, 0, 31]).format('DDDo'), '31ste', '31ste'); -}); - -test('format month', function (assert) { - var expected = 'jannewaris jan._febrewaris feb._maart mrt._april apr._maaie mai_juny jun._july jul._augustus aug._septimber sep._oktober okt._novimber nov._desimber des.'.split('_'), i; - for (i = 0; i < expected.length; i++) { - assert.equal(moment([2011, i, 1]).format('MMMM MMM'), expected[i], expected[i]); - } -}); - -test('format week', function (assert) { - var expected = 'snein si. Si_moandei mo. Mo_tiisdei ti. Ti_woansdei wo. Wo_tongersdei to. To_freed fr. Fr_sneon so. So'.split('_'), i; - for (i = 0; i < expected.length; i++) { - assert.equal(moment([2011, 0, 2 + i]).format('dddd ddd dd'), expected[i], expected[i]); - } -}); - -test('from', function (assert) { - var start = moment([2007, 1, 28]); - assert.equal(start.from(moment([2007, 1, 28]).add({s: 44}), true), 'in pear sekonden', '44 seconds = a few seconds'); - assert.equal(start.from(moment([2007, 1, 28]).add({s: 45}), true), 'ien minút', '45 seconds = a minute'); - assert.equal(start.from(moment([2007, 1, 28]).add({s: 89}), true), 'ien minút', '89 seconds = a minute'); - assert.equal(start.from(moment([2007, 1, 28]).add({s: 90}), true), '2 minuten', '90 seconds = 2 minutes'); - assert.equal(start.from(moment([2007, 1, 28]).add({m: 44}), true), '44 minuten', '44 minutes = 44 minutes'); - assert.equal(start.from(moment([2007, 1, 28]).add({m: 45}), true), 'ien oere', '45 minutes = an hour'); - assert.equal(start.from(moment([2007, 1, 28]).add({m: 89}), true), 'ien oere', '89 minutes = an hour'); - assert.equal(start.from(moment([2007, 1, 28]).add({m: 90}), true), '2 oeren', '90 minutes = 2 hours'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 5}), true), '5 oeren', '5 hours = 5 hours'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 21}), true), '21 oeren', '21 hours = 21 hours'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 22}), true), 'ien dei', '22 hours = a day'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 35}), true), 'ien dei', '35 hours = a day'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 36}), true), '2 dagen', '36 hours = 2 days'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 1}), true), 'ien dei', '1 day = a day'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 5}), true), '5 dagen', '5 days = 5 days'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 25}), true), '25 dagen', '25 days = 25 days'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 26}), true), 'ien moanne', '26 days = a month'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 30}), true), 'ien moanne', '30 days = a month'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 43}), true), 'ien moanne', '43 days = a month'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 46}), true), '2 moannen', '46 days = 2 months'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 74}), true), '2 moannen', '75 days = 2 months'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 76}), true), '3 moannen', '76 days = 3 months'); - assert.equal(start.from(moment([2007, 1, 28]).add({M: 1}), true), 'ien moanne', '1 month = a month'); - assert.equal(start.from(moment([2007, 1, 28]).add({M: 5}), true), '5 moannen', '5 months = 5 months'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 345}), true), 'ien jier', '345 days = a year'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 548}), true), '2 jierren', '548 days = 2 years'); - assert.equal(start.from(moment([2007, 1, 28]).add({y: 1}), true), 'ien jier', '1 year = a year'); - assert.equal(start.from(moment([2007, 1, 28]).add({y: 5}), true), '5 jierren', '5 years = 5 years'); -}); - -test('suffix', function (assert) { - assert.equal(moment(30000).from(0), 'oer in pear sekonden', 'prefix'); - assert.equal(moment(0).from(30000), 'in pear sekonden lyn', 'suffix'); -}); - -test('now from now', function (assert) { - assert.equal(moment().fromNow(), 'in pear sekonden lyn', 'now from now should display as in the past'); -}); - -test('fromNow', function (assert) { - assert.equal(moment().add({s: 30}).fromNow(), 'oer in pear sekonden', 'in a few seconds'); - assert.equal(moment().add({d: 5}).fromNow(), 'oer 5 dagen', 'in 5 days'); -}); - -test('calendar day', function (assert) { - var a = moment().hours(12).minutes(0).seconds(0); - - assert.equal(moment(a).calendar(), 'hjoed om 12:00', 'today at the same time'); - assert.equal(moment(a).add({m: 25}).calendar(), 'hjoed om 12:25', 'Now plus 25 min'); - assert.equal(moment(a).add({h: 1}).calendar(), 'hjoed om 13:00', 'Now plus 1 hour'); - assert.equal(moment(a).add({d: 1}).calendar(), 'moarn om 12:00', 'tomorrow at the same time'); - assert.equal(moment(a).subtract({h: 1}).calendar(), 'hjoed om 11:00', 'Now minus 1 hour'); - assert.equal(moment(a).subtract({d: 1}).calendar(), 'juster om 12:00', 'yesterday at the same time'); -}); - -test('calendar next week', function (assert) { - var i, m; - for (i = 2; i < 7; i++) { - m = moment().add({d: i}); - assert.equal(m.calendar(), m.format('dddd [om] LT'), 'Today + ' + i + ' days current time'); - m.hours(0).minutes(0).seconds(0).milliseconds(0); - assert.equal(m.calendar(), m.format('dddd [om] LT'), 'Today + ' + i + ' days beginning of day'); - m.hours(23).minutes(59).seconds(59).milliseconds(999); - assert.equal(m.calendar(), m.format('dddd [om] LT'), 'Today + ' + i + ' days end of day'); - } -}); - -test('calendar last week', function (assert) { - var i, m; - for (i = 2; i < 7; i++) { - m = moment().subtract({d: i}); - assert.equal(m.calendar(), m.format('[ôfrûne] dddd [om] LT'), 'Today - ' + i + ' days current time'); - m.hours(0).minutes(0).seconds(0).milliseconds(0); - assert.equal(m.calendar(), m.format('[ôfrûne] dddd [om] LT'), 'Today - ' + i + ' days beginning of day'); - m.hours(23).minutes(59).seconds(59).milliseconds(999); - assert.equal(m.calendar(), m.format('[ôfrûne] dddd [om] LT'), 'Today - ' + i + ' days end of day'); - } -}); - -test('calendar all else', function (assert) { - var weeksAgo = moment().subtract({w: 1}), - weeksFromNow = moment().add({w: 1}); - - assert.equal(weeksAgo.calendar(), weeksAgo.format('L'), '1 week ago'); - assert.equal(weeksFromNow.calendar(), weeksFromNow.format('L'), 'in 1 week'); - - weeksAgo = moment().subtract({w: 2}); - weeksFromNow = moment().add({w: 2}); - - assert.equal(weeksAgo.calendar(), weeksAgo.format('L'), '2 weeks ago'); - assert.equal(weeksFromNow.calendar(), weeksFromNow.format('L'), 'in 2 weeks'); -}); - -test('month abbreviation', function (assert) { - assert.equal(moment([2012, 5, 23]).format('D-MMM-YYYY'), '23-jun-2012', 'format month abbreviation surrounded by dashes should not include a dot'); - assert.equal(moment([2012, 5, 23]).format('D MMM YYYY'), '23 jun. 2012', 'format month abbreviation not surrounded by dashes should include a dot'); -}); - -test('weeks year starting sunday formatted', function (assert) { - assert.equal(moment([2012, 0, 1]).format('w ww wo'), '52 52 52ste', 'Jan 1 2012 should be week 52'); - assert.equal(moment([2012, 0, 2]).format('w ww wo'), '1 01 1ste', 'Jan 2 2012 should be week 1'); - assert.equal(moment([2012, 0, 8]).format('w ww wo'), '1 01 1ste', 'Jan 8 2012 should be week 1'); - assert.equal(moment([2012, 0, 9]).format('w ww wo'), '2 02 2de', 'Jan 9 2012 should be week 2'); - assert.equal(moment([2012, 0, 15]).format('w ww wo'), '2 02 2de', 'Jan 15 2012 should be week 2'); -}); - -}))); - - -;(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' - && typeof require === 'function' ? factory(require('../../moment')) : - typeof define === 'function' && define.amd ? define(['../../moment'], factory) : - factory(global.moment) -}(this, (function (moment) { 'use strict'; - -function each(array, callback) { - var i; - for (i = 0; i < array.length; i++) { - callback(array[i], i, array); - } -} - -function objectKeys(obj) { - if (Object.keys) { - return Object.keys(obj); - } else { - // IE8 - var res = [], i; - for (i in obj) { - if (obj.hasOwnProperty(i)) { - res.push(i); - } - } - return res; - } -} - -// Pick the first defined of two or three arguments. - -function defineCommonLocaleTests(locale, options) { - test('lenient day of month ordinal parsing', function (assert) { - var i, ordinalStr, testMoment; - for (i = 1; i <= 31; ++i) { - ordinalStr = moment([2014, 0, i]).format('YYYY MM Do'); - testMoment = moment(ordinalStr, 'YYYY MM Do'); - assert.equal(testMoment.year(), 2014, - 'lenient day of month ordinal parsing ' + i + ' year check'); - assert.equal(testMoment.month(), 0, - 'lenient day of month ordinal parsing ' + i + ' month check'); - assert.equal(testMoment.date(), i, - 'lenient day of month ordinal parsing ' + i + ' date check'); - } - }); - - test('lenient day of month ordinal parsing of number', function (assert) { - var i, testMoment; - for (i = 1; i <= 31; ++i) { - testMoment = moment('2014 01 ' + i, 'YYYY MM Do'); - assert.equal(testMoment.year(), 2014, - 'lenient day of month ordinal parsing of number ' + i + ' year check'); - assert.equal(testMoment.month(), 0, - 'lenient day of month ordinal parsing of number ' + i + ' month check'); - assert.equal(testMoment.date(), i, - 'lenient day of month ordinal parsing of number ' + i + ' date check'); - } - }); - - test('strict day of month ordinal parsing', function (assert) { - var i, ordinalStr, testMoment; - for (i = 1; i <= 31; ++i) { - ordinalStr = moment([2014, 0, i]).format('YYYY MM Do'); - testMoment = moment(ordinalStr, 'YYYY MM Do', true); - assert.ok(testMoment.isValid(), 'strict day of month ordinal parsing ' + i); - } - }); - - test('meridiem invariant', function (assert) { - var h, m, t1, t2; - for (h = 0; h < 24; ++h) { - for (m = 0; m < 60; m += 15) { - t1 = moment.utc([2000, 0, 1, h, m]); - t2 = moment.utc(t1.format('A h:mm'), 'A h:mm'); - assert.equal(t2.format('HH:mm'), t1.format('HH:mm'), - 'meridiem at ' + t1.format('HH:mm')); - } - } - }); - - test('date format correctness', function (assert) { - var data, tokens; - data = moment.localeData()._longDateFormat; - tokens = objectKeys(data); - each(tokens, function (srchToken) { - // Check each format string to make sure it does not contain any - // tokens that need to be expanded. - each(tokens, function (baseToken) { - // strip escaped sequences - var format = data[baseToken].replace(/(\[[^\]]*\])/g, ''); - assert.equal(false, !!~format.indexOf(srchToken), - 'contains ' + srchToken + ' in ' + baseToken); - }); - }); - }); - - test('month parsing correctness', function (assert) { - var i, m; - - if (locale === 'tr') { - // I can't fix it :( - expect(0); - return; - } - function tester(format) { - var r; - r = moment(m.format(format), format); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format); - r = moment(m.format(format).toLocaleUpperCase(), format); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' upper'); - r = moment(m.format(format).toLocaleLowerCase(), format); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' lower'); - - r = moment(m.format(format), format, true); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' strict'); - r = moment(m.format(format).toLocaleUpperCase(), format, true); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' upper strict'); - r = moment(m.format(format).toLocaleLowerCase(), format, true); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' lower strict'); - } - - for (i = 0; i < 12; ++i) { - m = moment([2015, i, 15, 18]); - tester('MMM'); - tester('MMM.'); - tester('MMMM'); - tester('MMMM.'); - } - }); - - test('weekday parsing correctness', function (assert) { - var i, m; - - if (locale === 'tr' || locale === 'az' || locale === 'ro') { - // tr, az: There is a lower-case letter (ı), that converted to - // upper then lower changes to i - // ro: there is the letter ț which behaves weird under IE8 - expect(0); - return; - } - function tester(format) { - var r, baseMsg = 'weekday ' + m.weekday() + ' fmt ' + format + ' ' + m.toISOString(); - r = moment(m.format(format), format); - assert.equal(r.weekday(), m.weekday(), baseMsg); - r = moment(m.format(format).toLocaleUpperCase(), format); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' upper'); - r = moment(m.format(format).toLocaleLowerCase(), format); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' lower'); - - r = moment(m.format(format), format, true); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' strict'); - r = moment(m.format(format).toLocaleUpperCase(), format, true); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' upper strict'); - r = moment(m.format(format).toLocaleLowerCase(), format, true); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' lower strict'); - } - - for (i = 0; i < 7; ++i) { - m = moment.utc([2015, 0, i + 1, 18]); - tester('dd'); - tester('ddd'); - tester('dddd'); - } - }); - - test('valid localeData', function (assert) { - assert.equal(moment().localeData().months().length, 12, 'months should return 12 months'); - assert.equal(moment().localeData().monthsShort().length, 12, 'monthsShort should return 12 months'); - assert.equal(moment().localeData().weekdays().length, 7, 'weekdays should return 7 days'); - assert.equal(moment().localeData().weekdaysShort().length, 7, 'weekdaysShort should return 7 days'); - assert.equal(moment().localeData().weekdaysMin().length, 7, 'monthsShort should return 7 days'); - }); -} - -function setupDeprecationHandler(test, moment$$1, scope) { - test._expectedDeprecations = null; - test._observedDeprecations = null; - test._oldSupress = moment$$1.suppressDeprecationWarnings; - moment$$1.suppressDeprecationWarnings = true; - test.expectedDeprecations = function () { - test._expectedDeprecations = arguments; - test._observedDeprecations = []; - }; - moment$$1.deprecationHandler = function (name, msg) { - var deprecationId = matchedDeprecation(name, msg, test._expectedDeprecations); - if (deprecationId === -1) { - throw new Error('Unexpected deprecation thrown name=' + - name + ' msg=' + msg); - } - test._observedDeprecations[deprecationId] = 1; - }; -} - -function teardownDeprecationHandler(test, moment$$1, scope) { - moment$$1.suppressDeprecationWarnings = test._oldSupress; - - if (test._expectedDeprecations != null) { - var missedDeprecations = []; - each(test._expectedDeprecations, function (deprecationPattern, id) { - if (test._observedDeprecations[id] !== 1) { - missedDeprecations.push(deprecationPattern); - } - }); - if (missedDeprecations.length !== 0) { - throw new Error('Expected deprecation warnings did not happen: ' + - missedDeprecations.join(' ')); - } - } -} - -function matchedDeprecation(name, msg, deprecations) { - if (deprecations == null) { - return -1; - } - for (var i = 0; i < deprecations.length; ++i) { - if (name != null && name === deprecations[i]) { - return i; - } - if (msg != null && msg.substring(0, deprecations[i].length) === deprecations[i]) { - return i; - } - } - return -1; -} - -/*global QUnit:false*/ - -var test = QUnit.test; - -var expect = QUnit.expect; - - - -function localeModule (name, lifecycle) { - QUnit.module('locale:' + name, { - setup : function () { - moment.locale(name); - moment.createFromInputFallback = function (config) { - throw new Error('input not handled by moment: ' + config._i); - }; - setupDeprecationHandler(test, moment, 'locale'); - if (lifecycle && lifecycle.setup) { - lifecycle.setup(); - } - }, - teardown : function () { - moment.locale('en'); - teardownDeprecationHandler(test, moment, 'locale'); - if (lifecycle && lifecycle.teardown) { - lifecycle.teardown(); - } - } - }); - defineCommonLocaleTests(name, -1, -1); -} - -localeModule('gd'); - -var months = [ - 'Am Faoilleach,Faoi', - 'An Gearran,Gear', - 'Am Màrt,Màrt', - 'An Giblean,Gibl', - 'An Cèitean,Cèit', - 'An t-Ògmhios,Ògmh', - 'An t-Iuchar,Iuch', - 'An Lùnastal,Lùn', - 'An t-Sultain,Sult', - 'An Dàmhair,Dàmh', - 'An t-Samhain,Samh', - 'An Dùbhlachd,Dùbh' -]; - -test('parse', function (assert) { - function equalTest(monthName, monthFormat, monthNum) { - assert.equal(moment(monthName, monthFormat).month(), monthNum, monthName + ' should be month ' + (monthNum + 1)); - } - - for (var i = 0; i < 12; i++) { - var testMonth = months[i].split(','); - equalTest(testMonth[0], 'MMM', i); - equalTest(testMonth[1], 'MMM', i); - equalTest(testMonth[0], 'MMMM', i); - equalTest(testMonth[1], 'MMMM', i); - equalTest(testMonth[0].toLocaleLowerCase(), 'MMMM', i); - equalTest(testMonth[1].toLocaleLowerCase(), 'MMMM', i); - equalTest(testMonth[0].toLocaleUpperCase(), 'MMMM', i); - equalTest(testMonth[1].toLocaleUpperCase(), 'MMMM', i); - } -}); - -test('format', function (assert) { - var a = [ - ['dddd, MMMM Do YYYY, h:mm:ss a', 'Didòmhnaich, An Gearran 14mh 2010, 3:25:50 pm'], - ['ddd, hA', 'Did, 3PM'], - ['M Mo MM MMMM MMM', '2 2na 02 An Gearran Gear'], - ['YYYY YY', '2010 10'], - ['D Do DD', '14 14mh 14'], - ['d do dddd ddd dd', '0 0mh Didòmhnaich Did Dò'], - ['DDD DDDo DDDD', '45 45mh 045'], - ['w wo ww', '6 6mh 06'], - ['h hh', '3 03'], - ['H HH', '15 15'], - ['m mm', '25 25'], - ['s ss', '50 50'], - ['a A', 'pm PM'], - ['[an] DDDo [latha den bhliadhna]', 'an 45mh latha den bhliadhna'], - ['LTS', '15:25:50'], - ['L', '14/02/2010'], - ['LL', '14 An Gearran 2010'], - ['LLL', '14 An Gearran 2010 15:25'], - ['LLLL', 'Didòmhnaich, 14 An Gearran 2010 15:25'], - ['l', '14/2/2010'], - ['ll', '14 Gear 2010'], - ['lll', '14 Gear 2010 15:25'], - ['llll', 'Did, 14 Gear 2010 15:25'] - ], - b = moment(new Date(2010, 1, 14, 15, 25, 50, 125)), - i; - for (i = 0; i < a.length; i++) { - assert.equal(b.format(a[i][0]), a[i][1], a[i][0] + ' ---> ' + a[i][1]); - } -}); - -test('format ordinal', function (assert) { - assert.equal(moment([2011, 0, 1]).format('DDDo'), '1d', '1d'); - assert.equal(moment([2011, 0, 2]).format('DDDo'), '2na', '2na'); - assert.equal(moment([2011, 0, 3]).format('DDDo'), '3mh', '3mh'); - assert.equal(moment([2011, 0, 4]).format('DDDo'), '4mh', '4mh'); - assert.equal(moment([2011, 0, 5]).format('DDDo'), '5mh', '5mh'); - assert.equal(moment([2011, 0, 6]).format('DDDo'), '6mh', '6mh'); - assert.equal(moment([2011, 0, 7]).format('DDDo'), '7mh', '7mh'); - assert.equal(moment([2011, 0, 8]).format('DDDo'), '8mh', '8mh'); - assert.equal(moment([2011, 0, 9]).format('DDDo'), '9mh', '9mh'); - assert.equal(moment([2011, 0, 10]).format('DDDo'), '10mh', '10mh'); - assert.equal(moment([2011, 0, 11]).format('DDDo'), '11mh', '11mh'); - assert.equal(moment([2011, 0, 12]).format('DDDo'), '12na', '12na'); - assert.equal(moment([2011, 0, 13]).format('DDDo'), '13mh', '13mh'); - assert.equal(moment([2011, 0, 14]).format('DDDo'), '14mh', '14mh'); - assert.equal(moment([2011, 0, 15]).format('DDDo'), '15mh', '15mh'); - assert.equal(moment([2011, 0, 16]).format('DDDo'), '16mh', '16mh'); - assert.equal(moment([2011, 0, 17]).format('DDDo'), '17mh', '17mh'); - assert.equal(moment([2011, 0, 18]).format('DDDo'), '18mh', '18mh'); - assert.equal(moment([2011, 0, 19]).format('DDDo'), '19mh', '19mh'); - assert.equal(moment([2011, 0, 20]).format('DDDo'), '20mh', '20mh'); - assert.equal(moment([2011, 0, 21]).format('DDDo'), '21mh', '21mh'); - assert.equal(moment([2011, 0, 22]).format('DDDo'), '22na', '22na'); - assert.equal(moment([2011, 0, 23]).format('DDDo'), '23mh', '23mh'); - assert.equal(moment([2011, 0, 24]).format('DDDo'), '24mh', '24mh'); - assert.equal(moment([2011, 0, 25]).format('DDDo'), '25mh', '25mh'); - assert.equal(moment([2011, 0, 26]).format('DDDo'), '26mh', '26mh'); - assert.equal(moment([2011, 0, 27]).format('DDDo'), '27mh', '27mh'); - assert.equal(moment([2011, 0, 28]).format('DDDo'), '28mh', '28mh'); - assert.equal(moment([2011, 0, 29]).format('DDDo'), '29mh', '29mh'); - assert.equal(moment([2011, 0, 30]).format('DDDo'), '30mh', '30mh'); - assert.equal(moment([2011, 0, 31]).format('DDDo'), '31mh', '31mh'); -}); - -test('format month', function (assert) { - var expected = months; - for (var i = 0; i < expected.length; i++) { - assert.equal(moment([2011, i, 1]).format('MMMM,MMM'), expected[i], expected[i]); - } -}); - -test('format week', function (assert) { - var expected = ['Didòmhnaich Did Dò', 'Diluain Dil Lu', 'Dimàirt Dim Mà', 'Diciadain Dic Ci', 'Diardaoin Dia Ar', 'Dihaoine Dih Ha', 'Disathairne Dis Sa']; - for (var i = 0; i < expected.length; i++) { - assert.equal(moment([2011, 0, 2 + i]).format('dddd ddd dd'), expected[i], expected[i]); - } -}); - -test('from', function (assert) { - var start = moment([2007, 1, 28]); - assert.equal(start.from(moment([2007, 1, 28]).add({s: 44}), true), 'beagan diogan', '44 seconds = a few seconds'); - assert.equal(start.from(moment([2007, 1, 28]).add({s: 45}), true), 'mionaid', '45 seconds = a minute'); - assert.equal(start.from(moment([2007, 1, 28]).add({s: 89}), true), 'mionaid', '89 seconds = a minute'); - assert.equal(start.from(moment([2007, 1, 28]).add({s: 90}), true), '2 mionaidean', '90 seconds = 2 minutes'); - assert.equal(start.from(moment([2007, 1, 28]).add({m: 44}), true), '44 mionaidean', '44 minutes = 44 minutes'); - assert.equal(start.from(moment([2007, 1, 28]).add({m: 45}), true), 'uair', '45 minutes = an hour'); - assert.equal(start.from(moment([2007, 1, 28]).add({m: 89}), true), 'uair', '89 minutes = an hour'); - assert.equal(start.from(moment([2007, 1, 28]).add({m: 90}), true), '2 uairean', '90 minutes = 2 hours'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 5}), true), '5 uairean', '5 hours = 5 hours'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 21}), true), '21 uairean', '21 hours = 21 hours'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 22}), true), 'latha', '22 hours = a day'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 35}), true), 'latha', '35 hours = a day'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 36}), true), '2 latha', '36 hours = 2 days'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 1}), true), 'latha', '1 day = a day'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 5}), true), '5 latha', '5 days = 5 days'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 25}), true), '25 latha', '25 days = 25 days'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 26}), true), 'mìos', '26 days = a month'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 30}), true), 'mìos', '30 days = a month'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 43}), true), 'mìos', '43 days = a month'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 46}), true), '2 mìosan', '46 days = 2 months'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 74}), true), '2 mìosan', '75 days = 2 months'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 76}), true), '3 mìosan', '76 days = 3 months'); - assert.equal(start.from(moment([2007, 1, 28]).add({M: 1}), true), 'mìos', '1 month = a month'); - assert.equal(start.from(moment([2007, 1, 28]).add({M: 5}), true), '5 mìosan', '5 months = 5 months'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 345}), true), 'bliadhna', '345 days = a year'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 548}), true), '2 bliadhna', '548 days = 2 years'); - assert.equal(start.from(moment([2007, 1, 28]).add({y: 1}), true), 'bliadhna', '1 year = a year'); - assert.equal(start.from(moment([2007, 1, 28]).add({y: 5}), true), '5 bliadhna', '5 years = 5 years'); -}); - -test('suffix', function (assert) { - assert.equal(moment(30000).from(0), 'ann an beagan diogan', 'prefix'); - assert.equal(moment(0).from(30000), 'bho chionn beagan diogan', 'suffix'); -}); - -test('now from now', function (assert) { - assert.equal(moment().fromNow(), 'bho chionn beagan diogan', 'now from now should display as in the past'); -}); - -test('fromNow', function (assert) { - assert.equal(moment().add({s: 30}).fromNow(), 'ann an beagan diogan', 'in a few seconds'); - assert.equal(moment().add({d: 5}).fromNow(), 'ann an 5 latha', 'in 5 days'); -}); - -test('calendar day', function (assert) { - var a = moment().hours(12).minutes(0).seconds(0); - - assert.equal(moment(a).calendar(), 'An-diugh aig 12:00', 'today at the same time'); - assert.equal(moment(a).add({m: 25}).calendar(), 'An-diugh aig 12:25', 'Now plus 25 min'); - assert.equal(moment(a).add({h: 1}).calendar(), 'An-diugh aig 13:00', 'Now plus 1 hour'); - assert.equal(moment(a).add({d: 1}).calendar(), 'A-màireach aig 12:00', 'tomorrow at the same time'); - assert.equal(moment(a).subtract({h: 1}).calendar(), 'An-diugh aig 11:00', 'Now minus 1 hour'); - assert.equal(moment(a).subtract({d: 1}).calendar(), 'An-dè aig 12:00', 'yesterday at the same time'); -}); - -test('calendar next week', function (assert) { - var i, m; - for (i = 2; i < 7; i++) { - m = moment().add({d: i}); - assert.equal(m.calendar(), m.format('dddd [aig] LT'), 'Today + ' + i + ' days current time'); - m.hours(0).minutes(0).seconds(0).milliseconds(0); - assert.equal(m.calendar(), m.format('dddd [aig] LT'), 'Today + ' + i + ' days beginning of day'); - m.hours(23).minutes(59).seconds(59).milliseconds(999); - assert.equal(m.calendar(), m.format('dddd [aig] LT'), 'Today + ' + i + ' days end of day'); - } -}); - -test('calendar last week', function (assert) { - var i, m; - - for (i = 2; i < 7; i++) { - m = moment().subtract({d: i}); - assert.equal(m.calendar(), m.format('dddd [seo chaidh] [aig] LT'), 'Today - ' + i + ' days current time'); - m.hours(0).minutes(0).seconds(0).milliseconds(0); - assert.equal(m.calendar(), m.format('dddd [seo chaidh] [aig] LT'), 'Today - ' + i + ' days beginning of day'); - m.hours(23).minutes(59).seconds(59).milliseconds(999); - assert.equal(m.calendar(), m.format('dddd [seo chaidh] [aig] LT'), 'Today - ' + i + ' days end of day'); - } -}); - -test('calendar all else', function (assert) { - var weeksAgo = moment().subtract({w: 1}), - weeksFromNow = moment().add({w: 1}); - - assert.equal(weeksAgo.calendar(), weeksAgo.format('L'), '1 week ago'); - assert.equal(weeksFromNow.calendar(), weeksFromNow.format('L'), 'in 1 week'); - - weeksAgo = moment().subtract({w: 2}); - weeksFromNow = moment().add({w: 2}); - - assert.equal(weeksAgo.calendar(), weeksAgo.format('L'), '2 weeks ago'); - assert.equal(weeksFromNow.calendar(), weeksFromNow.format('L'), 'in 2 weeks'); -}); - -test('weeks year starting sunday formatted', function (assert) { - assert.equal(moment([2012, 0, 1]).format('w ww wo'), '52 52 52na', 'Faoi 1 2012 should be week 52'); - assert.equal(moment([2012, 0, 2]).format('w ww wo'), '1 01 1d', 'Faoi 2 2012 should be week 1'); - assert.equal(moment([2012, 0, 8]).format('w ww wo'), '1 01 1d', 'Faoi 8 2012 should be week 1'); - assert.equal(moment([2012, 0, 9]).format('w ww wo'), '2 02 2na', 'Faoi 9 2012 should be week 2'); - assert.equal(moment([2012, 0, 15]).format('w ww wo'), '2 02 2na', 'Faoi 15 2012 should be week 2'); -}); - -}))); - - -;(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' - && typeof require === 'function' ? factory(require('../../moment')) : - typeof define === 'function' && define.amd ? define(['../../moment'], factory) : - factory(global.moment) -}(this, (function (moment) { 'use strict'; - -function each(array, callback) { - var i; - for (i = 0; i < array.length; i++) { - callback(array[i], i, array); - } -} - -function objectKeys(obj) { - if (Object.keys) { - return Object.keys(obj); - } else { - // IE8 - var res = [], i; - for (i in obj) { - if (obj.hasOwnProperty(i)) { - res.push(i); - } - } - return res; - } -} - -// Pick the first defined of two or three arguments. - -function defineCommonLocaleTests(locale, options) { - test('lenient day of month ordinal parsing', function (assert) { - var i, ordinalStr, testMoment; - for (i = 1; i <= 31; ++i) { - ordinalStr = moment([2014, 0, i]).format('YYYY MM Do'); - testMoment = moment(ordinalStr, 'YYYY MM Do'); - assert.equal(testMoment.year(), 2014, - 'lenient day of month ordinal parsing ' + i + ' year check'); - assert.equal(testMoment.month(), 0, - 'lenient day of month ordinal parsing ' + i + ' month check'); - assert.equal(testMoment.date(), i, - 'lenient day of month ordinal parsing ' + i + ' date check'); - } - }); - - test('lenient day of month ordinal parsing of number', function (assert) { - var i, testMoment; - for (i = 1; i <= 31; ++i) { - testMoment = moment('2014 01 ' + i, 'YYYY MM Do'); - assert.equal(testMoment.year(), 2014, - 'lenient day of month ordinal parsing of number ' + i + ' year check'); - assert.equal(testMoment.month(), 0, - 'lenient day of month ordinal parsing of number ' + i + ' month check'); - assert.equal(testMoment.date(), i, - 'lenient day of month ordinal parsing of number ' + i + ' date check'); - } - }); - - test('strict day of month ordinal parsing', function (assert) { - var i, ordinalStr, testMoment; - for (i = 1; i <= 31; ++i) { - ordinalStr = moment([2014, 0, i]).format('YYYY MM Do'); - testMoment = moment(ordinalStr, 'YYYY MM Do', true); - assert.ok(testMoment.isValid(), 'strict day of month ordinal parsing ' + i); - } - }); - - test('meridiem invariant', function (assert) { - var h, m, t1, t2; - for (h = 0; h < 24; ++h) { - for (m = 0; m < 60; m += 15) { - t1 = moment.utc([2000, 0, 1, h, m]); - t2 = moment.utc(t1.format('A h:mm'), 'A h:mm'); - assert.equal(t2.format('HH:mm'), t1.format('HH:mm'), - 'meridiem at ' + t1.format('HH:mm')); - } - } - }); - - test('date format correctness', function (assert) { - var data, tokens; - data = moment.localeData()._longDateFormat; - tokens = objectKeys(data); - each(tokens, function (srchToken) { - // Check each format string to make sure it does not contain any - // tokens that need to be expanded. - each(tokens, function (baseToken) { - // strip escaped sequences - var format = data[baseToken].replace(/(\[[^\]]*\])/g, ''); - assert.equal(false, !!~format.indexOf(srchToken), - 'contains ' + srchToken + ' in ' + baseToken); - }); - }); - }); - - test('month parsing correctness', function (assert) { - var i, m; - - if (locale === 'tr') { - // I can't fix it :( - expect(0); - return; - } - function tester(format) { - var r; - r = moment(m.format(format), format); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format); - r = moment(m.format(format).toLocaleUpperCase(), format); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' upper'); - r = moment(m.format(format).toLocaleLowerCase(), format); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' lower'); - - r = moment(m.format(format), format, true); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' strict'); - r = moment(m.format(format).toLocaleUpperCase(), format, true); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' upper strict'); - r = moment(m.format(format).toLocaleLowerCase(), format, true); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' lower strict'); - } - - for (i = 0; i < 12; ++i) { - m = moment([2015, i, 15, 18]); - tester('MMM'); - tester('MMM.'); - tester('MMMM'); - tester('MMMM.'); - } - }); - - test('weekday parsing correctness', function (assert) { - var i, m; - - if (locale === 'tr' || locale === 'az' || locale === 'ro') { - // tr, az: There is a lower-case letter (ı), that converted to - // upper then lower changes to i - // ro: there is the letter ț which behaves weird under IE8 - expect(0); - return; - } - function tester(format) { - var r, baseMsg = 'weekday ' + m.weekday() + ' fmt ' + format + ' ' + m.toISOString(); - r = moment(m.format(format), format); - assert.equal(r.weekday(), m.weekday(), baseMsg); - r = moment(m.format(format).toLocaleUpperCase(), format); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' upper'); - r = moment(m.format(format).toLocaleLowerCase(), format); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' lower'); - - r = moment(m.format(format), format, true); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' strict'); - r = moment(m.format(format).toLocaleUpperCase(), format, true); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' upper strict'); - r = moment(m.format(format).toLocaleLowerCase(), format, true); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' lower strict'); - } - - for (i = 0; i < 7; ++i) { - m = moment.utc([2015, 0, i + 1, 18]); - tester('dd'); - tester('ddd'); - tester('dddd'); - } - }); - - test('valid localeData', function (assert) { - assert.equal(moment().localeData().months().length, 12, 'months should return 12 months'); - assert.equal(moment().localeData().monthsShort().length, 12, 'monthsShort should return 12 months'); - assert.equal(moment().localeData().weekdays().length, 7, 'weekdays should return 7 days'); - assert.equal(moment().localeData().weekdaysShort().length, 7, 'weekdaysShort should return 7 days'); - assert.equal(moment().localeData().weekdaysMin().length, 7, 'monthsShort should return 7 days'); - }); -} - -function setupDeprecationHandler(test, moment$$1, scope) { - test._expectedDeprecations = null; - test._observedDeprecations = null; - test._oldSupress = moment$$1.suppressDeprecationWarnings; - moment$$1.suppressDeprecationWarnings = true; - test.expectedDeprecations = function () { - test._expectedDeprecations = arguments; - test._observedDeprecations = []; - }; - moment$$1.deprecationHandler = function (name, msg) { - var deprecationId = matchedDeprecation(name, msg, test._expectedDeprecations); - if (deprecationId === -1) { - throw new Error('Unexpected deprecation thrown name=' + - name + ' msg=' + msg); - } - test._observedDeprecations[deprecationId] = 1; - }; -} - -function teardownDeprecationHandler(test, moment$$1, scope) { - moment$$1.suppressDeprecationWarnings = test._oldSupress; - - if (test._expectedDeprecations != null) { - var missedDeprecations = []; - each(test._expectedDeprecations, function (deprecationPattern, id) { - if (test._observedDeprecations[id] !== 1) { - missedDeprecations.push(deprecationPattern); - } - }); - if (missedDeprecations.length !== 0) { - throw new Error('Expected deprecation warnings did not happen: ' + - missedDeprecations.join(' ')); - } - } -} - -function matchedDeprecation(name, msg, deprecations) { - if (deprecations == null) { - return -1; - } - for (var i = 0; i < deprecations.length; ++i) { - if (name != null && name === deprecations[i]) { - return i; - } - if (msg != null && msg.substring(0, deprecations[i].length) === deprecations[i]) { - return i; - } - } - return -1; -} - -/*global QUnit:false*/ - -var test = QUnit.test; - -var expect = QUnit.expect; - - - -function localeModule (name, lifecycle) { - QUnit.module('locale:' + name, { - setup : function () { - moment.locale(name); - moment.createFromInputFallback = function (config) { - throw new Error('input not handled by moment: ' + config._i); - }; - setupDeprecationHandler(test, moment, 'locale'); - if (lifecycle && lifecycle.setup) { - lifecycle.setup(); - } - }, - teardown : function () { - moment.locale('en'); - teardownDeprecationHandler(test, moment, 'locale'); - if (lifecycle && lifecycle.teardown) { - lifecycle.teardown(); - } - } - }); - defineCommonLocaleTests(name, -1, -1); -} - -localeModule('gl'); - -test('parse', function (assert) { - var tests = 'xaneiro xan._febreiro feb._marzo mar._abril abr._maio mai._xuño xuñ._xullo xul._agosto ago._setembro set._outubro out._novembro nov._decembro dec.'.split('_'), i; - function equalTest(input, mmm, i) { - assert.equal(moment(input, mmm).month(), i, input + ' should be month ' + (i + 1)); - } - for (i = 0; i < 12; i++) { - tests[i] = tests[i].split(' '); - equalTest(tests[i][0], 'MMM', i); - equalTest(tests[i][1], 'MMM', i); - equalTest(tests[i][0], 'MMMM', i); - equalTest(tests[i][1], 'MMMM', i); - equalTest(tests[i][0].toLocaleLowerCase(), 'MMMM', i); - equalTest(tests[i][1].toLocaleLowerCase(), 'MMMM', i); - equalTest(tests[i][0].toLocaleUpperCase(), 'MMMM', i); - equalTest(tests[i][1].toLocaleUpperCase(), 'MMMM', i); - } -}); - -test('format', function (assert) { - var a = [ - ['dddd, MMMM Do YYYY, h:mm:ss a', 'domingo, febreiro 14º 2010, 3:25:50 pm'], - ['ddd, hA', 'dom., 3PM'], - ['M Mo MM MMMM MMM', '2 2º 02 febreiro feb.'], - ['YYYY YY', '2010 10'], - ['D Do DD', '14 14º 14'], - ['d do dddd ddd dd', '0 0º domingo dom. do'], - ['DDD DDDo DDDD', '45 45º 045'], - ['w wo ww', '6 6º 06'], - ['h hh', '3 03'], - ['H HH', '15 15'], - ['m mm', '25 25'], - ['s ss', '50 50'], - ['a A', 'pm PM'], - ['[the] DDDo [day of the year]', 'the 45º day of the year'], - ['LTS', '15:25:50'], - ['L', '14/02/2010'], - ['LL', '14 de febreiro de 2010'], - ['LLL', '14 de febreiro de 2010 15:25'], - ['LLLL', 'domingo, 14 de febreiro de 2010 15:25'], - ['l', '14/2/2010'], - ['ll', '14 de feb. de 2010'], - ['lll', '14 de feb. de 2010 15:25'], - ['llll', 'dom., 14 de feb. de 2010 15:25'] - ], - b = moment(new Date(2010, 1, 14, 15, 25, 50, 125)), - i; - for (i = 0; i < a.length; i++) { - assert.equal(b.format(a[i][0]), a[i][1], a[i][0] + ' ---> ' + a[i][1]); - } -}); - -test('format ordinal', function (assert) { - assert.equal(moment([2011, 0, 1]).format('DDDo'), '1º', '1º'); - assert.equal(moment([2011, 0, 2]).format('DDDo'), '2º', '2º'); - assert.equal(moment([2011, 0, 3]).format('DDDo'), '3º', '3º'); - assert.equal(moment([2011, 0, 4]).format('DDDo'), '4º', '4º'); - assert.equal(moment([2011, 0, 5]).format('DDDo'), '5º', '5º'); - assert.equal(moment([2011, 0, 6]).format('DDDo'), '6º', '6º'); - assert.equal(moment([2011, 0, 7]).format('DDDo'), '7º', '7º'); - assert.equal(moment([2011, 0, 8]).format('DDDo'), '8º', '8º'); - assert.equal(moment([2011, 0, 9]).format('DDDo'), '9º', '9º'); - assert.equal(moment([2011, 0, 10]).format('DDDo'), '10º', '10º'); - - assert.equal(moment([2011, 0, 11]).format('DDDo'), '11º', '11º'); - assert.equal(moment([2011, 0, 12]).format('DDDo'), '12º', '12º'); - assert.equal(moment([2011, 0, 13]).format('DDDo'), '13º', '13º'); - assert.equal(moment([2011, 0, 14]).format('DDDo'), '14º', '14º'); - assert.equal(moment([2011, 0, 15]).format('DDDo'), '15º', '15º'); - assert.equal(moment([2011, 0, 16]).format('DDDo'), '16º', '16º'); - assert.equal(moment([2011, 0, 17]).format('DDDo'), '17º', '17º'); - assert.equal(moment([2011, 0, 18]).format('DDDo'), '18º', '18º'); - assert.equal(moment([2011, 0, 19]).format('DDDo'), '19º', '19º'); - assert.equal(moment([2011, 0, 20]).format('DDDo'), '20º', '20º'); - - assert.equal(moment([2011, 0, 21]).format('DDDo'), '21º', '21º'); - assert.equal(moment([2011, 0, 22]).format('DDDo'), '22º', '22º'); - assert.equal(moment([2011, 0, 23]).format('DDDo'), '23º', '23º'); - assert.equal(moment([2011, 0, 24]).format('DDDo'), '24º', '24º'); - assert.equal(moment([2011, 0, 25]).format('DDDo'), '25º', '25º'); - assert.equal(moment([2011, 0, 26]).format('DDDo'), '26º', '26º'); - assert.equal(moment([2011, 0, 27]).format('DDDo'), '27º', '27º'); - assert.equal(moment([2011, 0, 28]).format('DDDo'), '28º', '28º'); - assert.equal(moment([2011, 0, 29]).format('DDDo'), '29º', '29º'); - assert.equal(moment([2011, 0, 30]).format('DDDo'), '30º', '30º'); - - assert.equal(moment([2011, 0, 31]).format('DDDo'), '31º', '31º'); -}); - -test('format month', function (assert) { - var expected = 'xaneiro xan._febreiro feb._marzo mar._abril abr._maio mai._xuño xuñ._xullo xul._agosto ago._setembro set._outubro out._novembro nov._decembro dec.'.split('_'), i; - for (i = 0; i < expected.length; i++) { - assert.equal(moment([2011, i, 1]).format('MMMM MMM'), expected[i], expected[i]); - } -}); - -test('format week', function (assert) { - var expected = 'domingo dom. do_luns lun. lu_martes mar. ma_mércores mér. mé_xoves xov. xo_venres ven. ve_sábado sáb. sá'.split('_'), - i; - for (i = 0; i < expected.length; i++) { - assert.equal(moment([2011, 0, 2 + i]).format('dddd ddd dd'), expected[i], expected[i]); - } -}); - -test('from', function (assert) { - var start = moment([2007, 1, 28]); - - assert.equal(start.from(moment([2007, 1, 28]).add({s: 44}), true), 'uns segundos', '44 seconds = a few seconds'); - assert.equal(start.from(moment([2007, 1, 28]).add({s: 45}), true), 'un minuto', '45 seconds = a minute'); - assert.equal(start.from(moment([2007, 1, 28]).add({s: 89}), true), 'un minuto', '89 seconds = a minute'); - assert.equal(start.from(moment([2007, 1, 28]).add({s: 90}), true), '2 minutos', '90 seconds = 2 minutes'); - assert.equal(start.from(moment([2007, 1, 28]).add({m: 44}), true), '44 minutos', '44 minutes = 44 minutes'); - assert.equal(start.from(moment([2007, 1, 28]).add({m: 45}), true), 'unha hora', '45 minutes = an hour'); - assert.equal(start.from(moment([2007, 1, 28]).add({m: 89}), true), 'unha hora', '89 minutes = an hour'); - assert.equal(start.from(moment([2007, 1, 28]).add({m: 90}), true), '2 horas', '90 minutes = 2 hours'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 5}), true), '5 horas', '5 hours = 5 hours'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 21}), true), '21 horas', '21 hours = 21 hours'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 22}), true), 'un día', '22 hours = a day'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 35}), true), 'un día', '35 hours = a day'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 36}), true), '2 días', '36 hours = 2 days'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 1}), true), 'un día', '1 day = a day'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 5}), true), '5 días', '5 days = 5 days'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 25}), true), '25 días', '25 days = 25 days'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 26}), true), 'un mes', '26 days = a month'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 30}), true), 'un mes', '30 days = a month'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 43}), true), 'un mes', '43 days = a month'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 46}), true), '2 meses', '46 days = 2 months'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 74}), true), '2 meses', '75 days = 2 months'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 76}), true), '3 meses', '76 days = 3 months'); - assert.equal(start.from(moment([2007, 1, 28]).add({M: 1}), true), 'un mes', '1 month = a month'); - assert.equal(start.from(moment([2007, 1, 28]).add({M: 5}), true), '5 meses', '5 months = 5 months'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 345}), true), 'un ano', '345 days = a year'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 548}), true), '2 anos', '548 days = 2 years'); - assert.equal(start.from(moment([2007, 1, 28]).add({y: 1}), true), 'un ano', '1 year = a year'); - assert.equal(start.from(moment([2007, 1, 28]).add({y: 5}), true), '5 anos', '5 years = 5 years'); -}); - -test('suffix', function (assert) { - assert.equal(moment(30000).from(0), 'nuns segundos', 'prefix'); - assert.equal(moment(0).from(30000), 'hai uns segundos', 'suffix'); -}); - -test('now from now', function (assert) { - assert.equal(moment().fromNow(), 'hai uns segundos', 'now from now should display as in the past'); -}); - -test('fromNow', function (assert) { - assert.equal(moment().add({s: 30}).fromNow(), 'nuns segundos', 'nuns segundos'); - assert.equal(moment().add({d: 5}).fromNow(), 'en 5 días', 'en 5 días'); -}); - -test('calendar day', function (assert) { - var a = moment().hours(12).minutes(0).seconds(0); - - assert.equal(moment(a).calendar(), 'hoxe ás 12:00', 'today at the same time'); - assert.equal(moment(a).add({m: 25}).calendar(), 'hoxe ás 12:25', 'Now plus 25 min'); - assert.equal(moment(a).add({h: 1}).calendar(), 'hoxe ás 13:00', 'Now plus 1 hour'); - assert.equal(moment(a).add({d: 1}).calendar(), 'mañá ás 12:00', 'tomorrow at the same time'); - assert.equal(moment(a).add({d: 1, h : -1}).calendar(), 'mañá ás 11:00', 'tomorrow minus 1 hour'); - assert.equal(moment(a).subtract({h: 1}).calendar(), 'hoxe ás 11:00', 'Now minus 1 hour'); - assert.equal(moment(a).subtract({d: 1}).calendar(), 'onte á 12:00', 'yesterday at the same time'); -}); - -test('calendar next week', function (assert) { - var i, m; - - for (i = 2; i < 7; i++) { - m = moment().add({d: i}); - assert.equal(m.calendar(), m.format('dddd [' + ((m.hours() !== 1) ? 'ás' : 'a') + '] LT'), 'Today + ' + i + ' days current time'); - m.hours(0).minutes(0).seconds(0).milliseconds(0); - assert.equal(m.calendar(), m.format('dddd [' + ((m.hours() !== 1) ? 'ás' : 'a') + '] LT'), 'Today + ' + i + ' days beginning of day'); - m.hours(23).minutes(59).seconds(59).milliseconds(999); - assert.equal(m.calendar(), m.format('dddd [' + ((m.hours() !== 1) ? 'ás' : 'a') + '] LT'), 'Today + ' + i + ' days end of day'); - } -}); - -test('calendar last week', function (assert) { - var i, m; - for (i = 2; i < 7; i++) { - m = moment().subtract({d: i}); - assert.equal(m.calendar(), m.format('[o] dddd [pasado ' + ((m.hours() !== 1) ? 'ás' : 'a') + '] LT'), 'Today - ' + i + ' days current time'); - m.hours(0).minutes(0).seconds(0).milliseconds(0); - assert.equal(m.calendar(), m.format('[o] dddd [pasado ' + ((m.hours() !== 1) ? 'ás' : 'a') + '] LT'), 'Today - ' + i + ' days beginning of day'); - m.hours(23).minutes(59).seconds(59).milliseconds(999); - assert.equal(m.calendar(), m.format('[o] dddd [pasado ' + ((m.hours() !== 1) ? 'ás' : 'a') + '] LT'), 'Today - ' + i + ' days end of day'); - } -}); - -test('calendar all else', function (assert) { - var weeksAgo = moment().subtract({w: 1}), - weeksFromNow = moment().add({w: 1}); - - assert.equal(weeksAgo.calendar(), weeksAgo.format('L'), '1 week ago'); - assert.equal(weeksFromNow.calendar(), weeksFromNow.format('L'), 'in 1 week'); - - weeksAgo = moment().subtract({w: 2}); - weeksFromNow = moment().add({w: 2}); - - assert.equal(weeksAgo.calendar(), weeksAgo.format('L'), '2 weeks ago'); - assert.equal(weeksFromNow.calendar(), weeksFromNow.format('L'), 'in 2 weeks'); -}); - -test('regression tests', function (assert) { - var lastWeek = moment().subtract({d: 4}).hours(1); - assert.equal(lastWeek.calendar(), lastWeek.format('[o] dddd [pasado a] LT'), '1 o\'clock bug'); -}); - -test('weeks year starting sunday formatted', function (assert) { - assert.equal(moment([2012, 0, 1]).format('w ww wo'), '52 52 52º', 'Jan 1 2012 should be week 52'); - assert.equal(moment([2012, 0, 2]).format('w ww wo'), '1 01 1º', 'Jan 2 2012 should be week 1'); - assert.equal(moment([2012, 0, 8]).format('w ww wo'), '1 01 1º', 'Jan 8 2012 should be week 1'); - assert.equal(moment([2012, 0, 9]).format('w ww wo'), '2 02 2º', 'Jan 9 2012 should be week 2'); - assert.equal(moment([2012, 0, 15]).format('w ww wo'), '2 02 2º', 'Jan 15 2012 should be week 2'); -}); - -}))); - - -;(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' - && typeof require === 'function' ? factory(require('../../moment')) : - typeof define === 'function' && define.amd ? define(['../../moment'], factory) : - factory(global.moment) -}(this, (function (moment) { 'use strict'; - -function each(array, callback) { - var i; - for (i = 0; i < array.length; i++) { - callback(array[i], i, array); - } -} - -function objectKeys(obj) { - if (Object.keys) { - return Object.keys(obj); - } else { - // IE8 - var res = [], i; - for (i in obj) { - if (obj.hasOwnProperty(i)) { - res.push(i); - } - } - return res; - } -} - -// Pick the first defined of two or three arguments. - -function defineCommonLocaleTests(locale, options) { - test('lenient day of month ordinal parsing', function (assert) { - var i, ordinalStr, testMoment; - for (i = 1; i <= 31; ++i) { - ordinalStr = moment([2014, 0, i]).format('YYYY MM Do'); - testMoment = moment(ordinalStr, 'YYYY MM Do'); - assert.equal(testMoment.year(), 2014, - 'lenient day of month ordinal parsing ' + i + ' year check'); - assert.equal(testMoment.month(), 0, - 'lenient day of month ordinal parsing ' + i + ' month check'); - assert.equal(testMoment.date(), i, - 'lenient day of month ordinal parsing ' + i + ' date check'); - } - }); - - test('lenient day of month ordinal parsing of number', function (assert) { - var i, testMoment; - for (i = 1; i <= 31; ++i) { - testMoment = moment('2014 01 ' + i, 'YYYY MM Do'); - assert.equal(testMoment.year(), 2014, - 'lenient day of month ordinal parsing of number ' + i + ' year check'); - assert.equal(testMoment.month(), 0, - 'lenient day of month ordinal parsing of number ' + i + ' month check'); - assert.equal(testMoment.date(), i, - 'lenient day of month ordinal parsing of number ' + i + ' date check'); - } - }); - - test('strict day of month ordinal parsing', function (assert) { - var i, ordinalStr, testMoment; - for (i = 1; i <= 31; ++i) { - ordinalStr = moment([2014, 0, i]).format('YYYY MM Do'); - testMoment = moment(ordinalStr, 'YYYY MM Do', true); - assert.ok(testMoment.isValid(), 'strict day of month ordinal parsing ' + i); - } - }); - - test('meridiem invariant', function (assert) { - var h, m, t1, t2; - for (h = 0; h < 24; ++h) { - for (m = 0; m < 60; m += 15) { - t1 = moment.utc([2000, 0, 1, h, m]); - t2 = moment.utc(t1.format('A h:mm'), 'A h:mm'); - assert.equal(t2.format('HH:mm'), t1.format('HH:mm'), - 'meridiem at ' + t1.format('HH:mm')); - } - } - }); - - test('date format correctness', function (assert) { - var data, tokens; - data = moment.localeData()._longDateFormat; - tokens = objectKeys(data); - each(tokens, function (srchToken) { - // Check each format string to make sure it does not contain any - // tokens that need to be expanded. - each(tokens, function (baseToken) { - // strip escaped sequences - var format = data[baseToken].replace(/(\[[^\]]*\])/g, ''); - assert.equal(false, !!~format.indexOf(srchToken), - 'contains ' + srchToken + ' in ' + baseToken); - }); - }); - }); - - test('month parsing correctness', function (assert) { - var i, m; - - if (locale === 'tr') { - // I can't fix it :( - expect(0); - return; - } - function tester(format) { - var r; - r = moment(m.format(format), format); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format); - r = moment(m.format(format).toLocaleUpperCase(), format); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' upper'); - r = moment(m.format(format).toLocaleLowerCase(), format); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' lower'); - - r = moment(m.format(format), format, true); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' strict'); - r = moment(m.format(format).toLocaleUpperCase(), format, true); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' upper strict'); - r = moment(m.format(format).toLocaleLowerCase(), format, true); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' lower strict'); - } - - for (i = 0; i < 12; ++i) { - m = moment([2015, i, 15, 18]); - tester('MMM'); - tester('MMM.'); - tester('MMMM'); - tester('MMMM.'); - } - }); - - test('weekday parsing correctness', function (assert) { - var i, m; - - if (locale === 'tr' || locale === 'az' || locale === 'ro') { - // tr, az: There is a lower-case letter (ı), that converted to - // upper then lower changes to i - // ro: there is the letter ț which behaves weird under IE8 - expect(0); - return; - } - function tester(format) { - var r, baseMsg = 'weekday ' + m.weekday() + ' fmt ' + format + ' ' + m.toISOString(); - r = moment(m.format(format), format); - assert.equal(r.weekday(), m.weekday(), baseMsg); - r = moment(m.format(format).toLocaleUpperCase(), format); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' upper'); - r = moment(m.format(format).toLocaleLowerCase(), format); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' lower'); - - r = moment(m.format(format), format, true); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' strict'); - r = moment(m.format(format).toLocaleUpperCase(), format, true); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' upper strict'); - r = moment(m.format(format).toLocaleLowerCase(), format, true); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' lower strict'); - } - - for (i = 0; i < 7; ++i) { - m = moment.utc([2015, 0, i + 1, 18]); - tester('dd'); - tester('ddd'); - tester('dddd'); - } - }); - - test('valid localeData', function (assert) { - assert.equal(moment().localeData().months().length, 12, 'months should return 12 months'); - assert.equal(moment().localeData().monthsShort().length, 12, 'monthsShort should return 12 months'); - assert.equal(moment().localeData().weekdays().length, 7, 'weekdays should return 7 days'); - assert.equal(moment().localeData().weekdaysShort().length, 7, 'weekdaysShort should return 7 days'); - assert.equal(moment().localeData().weekdaysMin().length, 7, 'monthsShort should return 7 days'); - }); -} - -function setupDeprecationHandler(test, moment$$1, scope) { - test._expectedDeprecations = null; - test._observedDeprecations = null; - test._oldSupress = moment$$1.suppressDeprecationWarnings; - moment$$1.suppressDeprecationWarnings = true; - test.expectedDeprecations = function () { - test._expectedDeprecations = arguments; - test._observedDeprecations = []; - }; - moment$$1.deprecationHandler = function (name, msg) { - var deprecationId = matchedDeprecation(name, msg, test._expectedDeprecations); - if (deprecationId === -1) { - throw new Error('Unexpected deprecation thrown name=' + - name + ' msg=' + msg); - } - test._observedDeprecations[deprecationId] = 1; - }; -} - -function teardownDeprecationHandler(test, moment$$1, scope) { - moment$$1.suppressDeprecationWarnings = test._oldSupress; - - if (test._expectedDeprecations != null) { - var missedDeprecations = []; - each(test._expectedDeprecations, function (deprecationPattern, id) { - if (test._observedDeprecations[id] !== 1) { - missedDeprecations.push(deprecationPattern); - } - }); - if (missedDeprecations.length !== 0) { - throw new Error('Expected deprecation warnings did not happen: ' + - missedDeprecations.join(' ')); - } - } -} - -function matchedDeprecation(name, msg, deprecations) { - if (deprecations == null) { - return -1; - } - for (var i = 0; i < deprecations.length; ++i) { - if (name != null && name === deprecations[i]) { - return i; - } - if (msg != null && msg.substring(0, deprecations[i].length) === deprecations[i]) { - return i; - } - } - return -1; -} - -/*global QUnit:false*/ - -var test = QUnit.test; - -var expect = QUnit.expect; - - - -function localeModule (name, lifecycle) { - QUnit.module('locale:' + name, { - setup : function () { - moment.locale(name); - moment.createFromInputFallback = function (config) { - throw new Error('input not handled by moment: ' + config._i); - }; - setupDeprecationHandler(test, moment, 'locale'); - if (lifecycle && lifecycle.setup) { - lifecycle.setup(); - } - }, - teardown : function () { - moment.locale('en'); - teardownDeprecationHandler(test, moment, 'locale'); - if (lifecycle && lifecycle.teardown) { - lifecycle.teardown(); - } - } - }); - defineCommonLocaleTests(name, -1, -1); -} - -localeModule('gom-latn'); - -test('parse', function (assert) { - var i, - tests = 'Janer Jan._Febrer Feb._Mars Mars_Abril Abr._Mai Mai_Jun Jun_Julai Jul._Agost Ago._Setembr Set._Otubr Otu._Novembr Nov._Dezembr Dez.'.split('_'); - - function equalTest(input, mmm, i) { - assert.equal(moment(input, mmm).month(), i, input + ' should be month ' + (i + 1)); - } - - for (i = 0; i < 12; i++) { - tests[i] = tests[i].split(' '); - equalTest(tests[i][0], 'MMM', i); - equalTest(tests[i][1], 'MMM', i); - equalTest(tests[i][0], 'MMMM', i); - equalTest(tests[i][1], 'MMMM', i); - equalTest(tests[i][0].toLocaleLowerCase(), 'MMMM', i); - equalTest(tests[i][1].toLocaleLowerCase(), 'MMMM', i); - equalTest(tests[i][0].toLocaleUpperCase(), 'MMMM', i); - equalTest(tests[i][1].toLocaleUpperCase(), 'MMMM', i); - } -}); - -test('format', function (assert) { - var a = [ - ['dddd, MMMM Do YYYY, h:mm:ss a', 'Aitar, Febrer 14er 2010, 3:25:50 donparam'], - ['ddd, hA', 'Ait., 3donparam'], - ['M Mo MM MMMM MMM', '2 2 02 Febrer Feb.'], - ['YYYY YY', '2010 10'], - ['D Do DD', '14 14er 14'], - ['d do dddd ddd dd', '0 0 Aitar Ait. Ai'], - ['DDD DDDo DDDD', '45 45 045'], - ['w wo ww', '6 6 06'], - ['h hh', '3 03'], - ['H HH', '15 15'], - ['m mm', '25 25'], - ['s ss', '50 50'], - ['a A', 'donparam donparam'], - ['[the] DDDo [day of the year]', 'the 45 day of the year'], - ['LTS', 'donparam 3:25:50 vazta'], - ['L', '14-02-2010'], - ['LL', '14 Febrer 2010'], - ['LLL', '14 Febrer 2010 donparam 3:25 vazta'], - ['LLLL', 'Aitar, Febrerachea 14er, 2010, donparam 3:25 vazta'], - ['l', '14-2-2010'], - ['ll', '14 Feb. 2010'], - ['lll', '14 Feb. 2010 donparam 3:25 vazta'], - ['llll', 'Ait., 14 Feb. 2010, donparam 3:25 vazta'] - ], - b = moment(new Date(2010, 1, 14, 15, 25, 50, 125)), - i; - - for (i = 0; i < a.length; i++) { - assert.equal(b.format(a[i][0]), a[i][1], a[i][0] + ' ---> ' + a[i][1]); - } -}); - -test('format ordinal', function (assert) { - assert.equal(moment([2011, 0, 1]).format('DDDo'), '1', '1'); - assert.equal(moment([2011, 0, 2]).format('DDDo'), '2', '2'); - assert.equal(moment([2011, 0, 3]).format('DDDo'), '3', '3'); - assert.equal(moment([2011, 0, 4]).format('DDDo'), '4', '4'); - assert.equal(moment([2011, 0, 5]).format('DDDo'), '5', '5'); - assert.equal(moment([2011, 0, 6]).format('DDDo'), '6', '6'); - assert.equal(moment([2011, 0, 7]).format('DDDo'), '7', '7'); - assert.equal(moment([2011, 0, 8]).format('DDDo'), '8', '8'); - assert.equal(moment([2011, 0, 9]).format('DDDo'), '9', '9'); - assert.equal(moment([2011, 0, 10]).format('DDDo'), '10', '10'); - - assert.equal(moment([2011, 0, 11]).format('DDDo'), '11', '11'); - assert.equal(moment([2011, 0, 12]).format('DDDo'), '12', '12'); - assert.equal(moment([2011, 0, 13]).format('DDDo'), '13', '13'); - assert.equal(moment([2011, 0, 14]).format('DDDo'), '14', '14'); - assert.equal(moment([2011, 0, 15]).format('DDDo'), '15', '15'); - assert.equal(moment([2011, 0, 16]).format('DDDo'), '16', '16'); - assert.equal(moment([2011, 0, 17]).format('DDDo'), '17', '17'); - assert.equal(moment([2011, 0, 18]).format('DDDo'), '18', '18'); - assert.equal(moment([2011, 0, 19]).format('DDDo'), '19', '19'); - assert.equal(moment([2011, 0, 20]).format('DDDo'), '20', '20'); - - assert.equal(moment([2011, 0, 21]).format('DDDo'), '21', '21'); - assert.equal(moment([2011, 0, 22]).format('DDDo'), '22', '22'); - assert.equal(moment([2011, 0, 23]).format('DDDo'), '23', '23'); - assert.equal(moment([2011, 0, 24]).format('DDDo'), '24', '24'); - assert.equal(moment([2011, 0, 25]).format('DDDo'), '25', '25'); - assert.equal(moment([2011, 0, 26]).format('DDDo'), '26', '26'); - assert.equal(moment([2011, 0, 27]).format('DDDo'), '27', '27'); - assert.equal(moment([2011, 0, 28]).format('DDDo'), '28', '28'); - assert.equal(moment([2011, 0, 29]).format('DDDo'), '29', '29'); - assert.equal(moment([2011, 0, 30]).format('DDDo'), '30', '30'); - - assert.equal(moment([2011, 0, 31]).format('DDDo'), '31', '31'); -}); - -test('format month', function (assert) { - var i, - expected = 'Janer Jan._Febrer Feb._Mars Mars_Abril Abr._Mai Mai_Jun Jun_Julai Jul._Agost Ago._Setembr Set._Otubr Otu._Novembr Nov._Dezembr Dez.'.split('_'); - - for (i = 0; i < expected.length; i++) { - assert.equal(moment([2011, i, 1]).format('MMMM MMM'), expected[i], expected[i]); - } -}); - -test('format week', function (assert) { - var i, - expected = 'Aitar Ait. Ai_Somar Som. Sm_Mongllar Mon. Mo_Budvar Bud. Bu_Brestar Bre. Br_Sukrar Suk. Su_Son\'var Son. Sn'.split('_'); - - for (i = 0; i < expected.length; i++) { - assert.equal(moment([2011, 0, 2 + i]).format('dddd ddd dd'), expected[i], expected[i]); - } -}); - -test('from', function (assert) { - var start = moment([2007, 1, 28]); - - assert.equal(start.from(moment([2007, 1, 28]).add({s: 44}), true), 'thodde secondanim', '44 seconds = a few seconds'); - assert.equal(start.from(moment([2007, 1, 28]).add({s: 45}), true), 'eka mintan', '45 seconds = a minute'); - assert.equal(start.from(moment([2007, 1, 28]).add({s: 89}), true), 'eka mintan', '89 seconds = a minute'); - assert.equal(start.from(moment([2007, 1, 28]).add({s: 90}), true), '2 mintanim', '90 seconds = 2 minutes'); - assert.equal(start.from(moment([2007, 1, 28]).add({m: 44}), true), '44 mintanim', '44 minutes = 44 minutes'); - assert.equal(start.from(moment([2007, 1, 28]).add({m: 45}), true), 'eka horan', '45 minutes = an hour'); - assert.equal(start.from(moment([2007, 1, 28]).add({m: 89}), true), 'eka horan', '89 minutes = an hour'); - assert.equal(start.from(moment([2007, 1, 28]).add({m: 90}), true), '2 horanim', '90 minutes = 2 hours'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 5}), true), '5 horanim', '5 hours = 5 hours'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 21}), true), '21 horanim', '21 hours = 21 hours'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 22}), true), 'eka disan', '22 hours = a day'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 35}), true), 'eka disan', '35 hours = a day'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 36}), true), '2 disanim', '36 hours = 2 days'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 1}), true), 'eka disan', '1 day = a day'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 5}), true), '5 disanim', '5 days = 5 days'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 25}), true), '25 disanim', '25 days = 25 days'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 26}), true), 'eka mhoinean', '26 days = a month'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 30}), true), 'eka mhoinean', '30 days = a month'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 43}), true), 'eka mhoinean', '43 days = a month'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 46}), true), '2 mhoineanim', '46 days = 2 months'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 74}), true), '2 mhoineanim', '75 days = 2 months'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 76}), true), '3 mhoineanim', '76 days = 3 months'); - assert.equal(start.from(moment([2007, 1, 28]).add({M: 1}), true), 'eka mhoinean', '1 month = a month'); - assert.equal(start.from(moment([2007, 1, 28]).add({M: 5}), true), '5 mhoineanim', '5 months = 5 months'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 345}), true), 'eka vorsan', '345 days = a year'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 548}), true), '2 vorsanim', '548 days = 2 years'); - assert.equal(start.from(moment([2007, 1, 28]).add({y: 1}), true), 'eka vorsan', '1 year = a year'); - assert.equal(start.from(moment([2007, 1, 28]).add({y: 5}), true), '5 vorsanim', '5 years = 5 years'); -}); - -test('suffix', function (assert) { - assert.equal(moment(30000).from(0), 'thodde second', 'prefix'); - assert.equal(moment(0).from(30000), 'thodde second adim', 'suffix'); -}); - -test('now from now', function (assert) { - assert.equal(moment().fromNow(), 'thodde second adim', 'now from now should display as in the past'); -}); - -test('fromNow', function (assert) { - assert.equal(moment().add({s: 30}).fromNow(), 'thodde second', 'in a few seconds'); - assert.equal(moment().add({d: 5}).fromNow(), '5 dis', 'in 5 days'); -}); - -test('calendar day', function (assert) { - var a = moment().hours(12).minutes(0).seconds(0); - - assert.equal(moment(a).calendar(), 'Aiz donparam 12:00 vazta', 'today at the same time'); - assert.equal(moment(a).add({m: 25}).calendar(), 'Aiz donparam 12:25 vazta', 'Now plus 25 min'); - assert.equal(moment(a).add({h: 1}).calendar(), 'Aiz donparam 1:00 vazta', 'Now plus 1 hour'); - assert.equal(moment(a).add({d: 1}).calendar(), 'Faleam donparam 12:00 vazta', 'tomorrow at the same time'); - assert.equal(moment(a).subtract({h: 1}).calendar(), 'Aiz sokalli 11:00 vazta', 'Now minus 1 hour'); - assert.equal(moment(a).subtract({d: 1}).calendar(), 'Kal donparam 12:00 vazta', 'yesterday at the same time'); -}); - -test('calendar next week', function (assert) { - var i, m; - - for (i = 2; i < 7; i++) { - m = moment().add({d: i}); - assert.equal(m.calendar(), m.format('[Ieta to] dddd[,] LT'), 'Today + ' + i + ' days current time'); - m.hours(0).minutes(0).seconds(0).milliseconds(0); - assert.equal(m.calendar(), m.format('[Ieta to] dddd[,] LT'), 'Today + ' + i + ' days beginning of day'); - m.hours(23).minutes(59).seconds(59).milliseconds(999); - assert.equal(m.calendar(), m.format('[Ieta to] dddd[,] LT'), 'Today + ' + i + ' days end of day'); - } -}); - -test('calendar last week', function (assert) { - var i, m; - - for (i = 2; i < 7; i++) { - m = moment().subtract({d: i}); - assert.equal(m.calendar(), m.format('[Fatlo] dddd[,] LT'), 'Today - ' + i + ' days current time'); - m.hours(0).minutes(0).seconds(0).milliseconds(0); - assert.equal(m.calendar(), m.format('[Fatlo] dddd[,] LT'), 'Today - ' + i + ' days beginning of day'); - m.hours(23).minutes(59).seconds(59).milliseconds(999); - assert.equal(m.calendar(), m.format('[Fatlo] dddd[,] LT'), 'Today - ' + i + ' days end of day'); - } -}); - -test('calendar all else', function (assert) { - var weeksAgo = moment().subtract({w: 1}), - weeksFromNow = moment().add({w: 1}); - - assert.equal(weeksAgo.calendar(), weeksAgo.format('L'), '1 week ago'); - assert.equal(weeksFromNow.calendar(), weeksFromNow.format('L'), 'in 1 week'); - - weeksAgo = moment().subtract({w: 2}); - weeksFromNow = moment().add({w: 2}); - - assert.equal(weeksAgo.calendar(), weeksAgo.format('L'), '2 weeks ago'); - assert.equal(weeksFromNow.calendar(), weeksFromNow.format('L'), 'in 2 weeks'); -}); - -test('weeks year starting sunday format', function (assert) { - assert.equal(moment([2012, 0, 1]).format('w ww wo'), '52 52 52', 'Jan 1 2012 should be week 52'); - assert.equal(moment([2012, 0, 2]).format('w ww wo'), '1 01 1', 'Jan 2 2012 should be week 1'); - assert.equal(moment([2012, 0, 8]).format('w ww wo'), '1 01 1', 'Jan 8 2012 should be week 1'); - assert.equal(moment([2012, 0, 14]).format('w ww wo'), '2 02 2', 'Jan 14 2012 should be week 2'); - assert.equal(moment([2012, 0, 15]).format('w ww wo'), '2 02 2', 'Jan 15 2012 should be week 2'); -}); - -}))); - - -;(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' - && typeof require === 'function' ? factory(require('../../moment')) : - typeof define === 'function' && define.amd ? define(['../../moment'], factory) : - factory(global.moment) -}(this, (function (moment) { 'use strict'; - -function each(array, callback) { - var i; - for (i = 0; i < array.length; i++) { - callback(array[i], i, array); - } -} - -function objectKeys(obj) { - if (Object.keys) { - return Object.keys(obj); - } else { - // IE8 - var res = [], i; - for (i in obj) { - if (obj.hasOwnProperty(i)) { - res.push(i); - } - } - return res; - } -} - -// Pick the first defined of two or three arguments. - -function defineCommonLocaleTests(locale, options) { - test('lenient day of month ordinal parsing', function (assert) { - var i, ordinalStr, testMoment; - for (i = 1; i <= 31; ++i) { - ordinalStr = moment([2014, 0, i]).format('YYYY MM Do'); - testMoment = moment(ordinalStr, 'YYYY MM Do'); - assert.equal(testMoment.year(), 2014, - 'lenient day of month ordinal parsing ' + i + ' year check'); - assert.equal(testMoment.month(), 0, - 'lenient day of month ordinal parsing ' + i + ' month check'); - assert.equal(testMoment.date(), i, - 'lenient day of month ordinal parsing ' + i + ' date check'); - } - }); - - test('lenient day of month ordinal parsing of number', function (assert) { - var i, testMoment; - for (i = 1; i <= 31; ++i) { - testMoment = moment('2014 01 ' + i, 'YYYY MM Do'); - assert.equal(testMoment.year(), 2014, - 'lenient day of month ordinal parsing of number ' + i + ' year check'); - assert.equal(testMoment.month(), 0, - 'lenient day of month ordinal parsing of number ' + i + ' month check'); - assert.equal(testMoment.date(), i, - 'lenient day of month ordinal parsing of number ' + i + ' date check'); - } - }); - - test('strict day of month ordinal parsing', function (assert) { - var i, ordinalStr, testMoment; - for (i = 1; i <= 31; ++i) { - ordinalStr = moment([2014, 0, i]).format('YYYY MM Do'); - testMoment = moment(ordinalStr, 'YYYY MM Do', true); - assert.ok(testMoment.isValid(), 'strict day of month ordinal parsing ' + i); - } - }); - - test('meridiem invariant', function (assert) { - var h, m, t1, t2; - for (h = 0; h < 24; ++h) { - for (m = 0; m < 60; m += 15) { - t1 = moment.utc([2000, 0, 1, h, m]); - t2 = moment.utc(t1.format('A h:mm'), 'A h:mm'); - assert.equal(t2.format('HH:mm'), t1.format('HH:mm'), - 'meridiem at ' + t1.format('HH:mm')); - } - } - }); - - test('date format correctness', function (assert) { - var data, tokens; - data = moment.localeData()._longDateFormat; - tokens = objectKeys(data); - each(tokens, function (srchToken) { - // Check each format string to make sure it does not contain any - // tokens that need to be expanded. - each(tokens, function (baseToken) { - // strip escaped sequences - var format = data[baseToken].replace(/(\[[^\]]*\])/g, ''); - assert.equal(false, !!~format.indexOf(srchToken), - 'contains ' + srchToken + ' in ' + baseToken); - }); - }); - }); - - test('month parsing correctness', function (assert) { - var i, m; - - if (locale === 'tr') { - // I can't fix it :( - expect(0); - return; - } - function tester(format) { - var r; - r = moment(m.format(format), format); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format); - r = moment(m.format(format).toLocaleUpperCase(), format); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' upper'); - r = moment(m.format(format).toLocaleLowerCase(), format); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' lower'); - - r = moment(m.format(format), format, true); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' strict'); - r = moment(m.format(format).toLocaleUpperCase(), format, true); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' upper strict'); - r = moment(m.format(format).toLocaleLowerCase(), format, true); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' lower strict'); - } - - for (i = 0; i < 12; ++i) { - m = moment([2015, i, 15, 18]); - tester('MMM'); - tester('MMM.'); - tester('MMMM'); - tester('MMMM.'); - } - }); - - test('weekday parsing correctness', function (assert) { - var i, m; - - if (locale === 'tr' || locale === 'az' || locale === 'ro') { - // tr, az: There is a lower-case letter (ı), that converted to - // upper then lower changes to i - // ro: there is the letter ț which behaves weird under IE8 - expect(0); - return; - } - function tester(format) { - var r, baseMsg = 'weekday ' + m.weekday() + ' fmt ' + format + ' ' + m.toISOString(); - r = moment(m.format(format), format); - assert.equal(r.weekday(), m.weekday(), baseMsg); - r = moment(m.format(format).toLocaleUpperCase(), format); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' upper'); - r = moment(m.format(format).toLocaleLowerCase(), format); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' lower'); - - r = moment(m.format(format), format, true); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' strict'); - r = moment(m.format(format).toLocaleUpperCase(), format, true); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' upper strict'); - r = moment(m.format(format).toLocaleLowerCase(), format, true); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' lower strict'); - } - - for (i = 0; i < 7; ++i) { - m = moment.utc([2015, 0, i + 1, 18]); - tester('dd'); - tester('ddd'); - tester('dddd'); - } - }); - - test('valid localeData', function (assert) { - assert.equal(moment().localeData().months().length, 12, 'months should return 12 months'); - assert.equal(moment().localeData().monthsShort().length, 12, 'monthsShort should return 12 months'); - assert.equal(moment().localeData().weekdays().length, 7, 'weekdays should return 7 days'); - assert.equal(moment().localeData().weekdaysShort().length, 7, 'weekdaysShort should return 7 days'); - assert.equal(moment().localeData().weekdaysMin().length, 7, 'monthsShort should return 7 days'); - }); -} - -function setupDeprecationHandler(test, moment$$1, scope) { - test._expectedDeprecations = null; - test._observedDeprecations = null; - test._oldSupress = moment$$1.suppressDeprecationWarnings; - moment$$1.suppressDeprecationWarnings = true; - test.expectedDeprecations = function () { - test._expectedDeprecations = arguments; - test._observedDeprecations = []; - }; - moment$$1.deprecationHandler = function (name, msg) { - var deprecationId = matchedDeprecation(name, msg, test._expectedDeprecations); - if (deprecationId === -1) { - throw new Error('Unexpected deprecation thrown name=' + - name + ' msg=' + msg); - } - test._observedDeprecations[deprecationId] = 1; - }; -} - -function teardownDeprecationHandler(test, moment$$1, scope) { - moment$$1.suppressDeprecationWarnings = test._oldSupress; - - if (test._expectedDeprecations != null) { - var missedDeprecations = []; - each(test._expectedDeprecations, function (deprecationPattern, id) { - if (test._observedDeprecations[id] !== 1) { - missedDeprecations.push(deprecationPattern); - } - }); - if (missedDeprecations.length !== 0) { - throw new Error('Expected deprecation warnings did not happen: ' + - missedDeprecations.join(' ')); - } - } -} - -function matchedDeprecation(name, msg, deprecations) { - if (deprecations == null) { - return -1; - } - for (var i = 0; i < deprecations.length; ++i) { - if (name != null && name === deprecations[i]) { - return i; - } - if (msg != null && msg.substring(0, deprecations[i].length) === deprecations[i]) { - return i; - } - } - return -1; -} - -/*global QUnit:false*/ - -var test = QUnit.test; - -var expect = QUnit.expect; - - - -function localeModule (name, lifecycle) { - QUnit.module('locale:' + name, { - setup : function () { - moment.locale(name); - moment.createFromInputFallback = function (config) { - throw new Error('input not handled by moment: ' + config._i); - }; - setupDeprecationHandler(test, moment, 'locale'); - if (lifecycle && lifecycle.setup) { - lifecycle.setup(); - } - }, - teardown : function () { - moment.locale('en'); - teardownDeprecationHandler(test, moment, 'locale'); - if (lifecycle && lifecycle.teardown) { - lifecycle.teardown(); - } - } - }); - defineCommonLocaleTests(name, -1, -1); -} - -localeModule('he'); - -test('parse', function (assert) { - var tests = 'ינואר ינו׳_פברואר פבר׳_מרץ מרץ_אפריל אפר׳_מאי מאי_יוני יוני_יולי יולי_אוגוסט אוג׳_ספטמבר ספט׳_אוקטובר אוק׳_נובמבר נוב׳_דצמבר דצמ׳'.split('_'), i; - function equalTest(input, mmm, i) { - assert.equal(moment(input, mmm).month(), i, input + ' should be month ' + (i + 1)); - } - for (i = 0; i < 12; i++) { - tests[i] = tests[i].split(' '); - equalTest(tests[i][0], 'MMM', i); - equalTest(tests[i][1], 'MMM', i); - equalTest(tests[i][0], 'MMMM', i); - equalTest(tests[i][1], 'MMMM', i); - equalTest(tests[i][0].toLocaleLowerCase(), 'MMMM', i); - equalTest(tests[i][1].toLocaleLowerCase(), 'MMMM', i); - equalTest(tests[i][0].toLocaleUpperCase(), 'MMMM', i); - equalTest(tests[i][1].toLocaleUpperCase(), 'MMMM', i); - } -}); - -test('format', function (assert) { - var a = [ - ['dddd, MMMM Do YYYY, h:mm:ss a', 'ראשון, פברואר 14 2010, 3:25:50 אחה"צ'], - ['ddd, h A', 'א׳, 3 אחרי הצהריים'], - ['M Mo MM MMMM MMM', '2 2 02 פברואר פבר׳'], - ['YYYY YY', '2010 10'], - ['D Do DD', '14 14 14'], - ['d do dddd ddd dd', '0 0 ראשון א׳ א'], - ['DDD DDDo DDDD', '45 45 045'], - ['w wo ww', '8 8 08'], - ['h hh', '3 03'], - ['H HH', '15 15'], - ['m mm', '25 25'], - ['s ss', '50 50'], - ['a A', 'אחה"צ אחרי הצהריים'], - ['[the] DDDo [day of the year]', 'the 45 day of the year'], - ['LTS', '15:25:50'], - ['L', '14/02/2010'], - ['LL', '14 בפברואר 2010'], - ['LLL', '14 בפברואר 2010 15:25'], - ['LLLL', 'ראשון, 14 בפברואר 2010 15:25'], - ['l', '14/2/2010'], - ['ll', '14 פבר׳ 2010'], - ['lll', '14 פבר׳ 2010 15:25'], - ['llll', 'א׳, 14 פבר׳ 2010 15:25'] - ], - b = moment(new Date(2010, 1, 14, 15, 25, 50, 125)), - i; - for (i = 0; i < a.length; i++) { - assert.equal(b.format(a[i][0]), a[i][1], a[i][0] + ' ---> ' + a[i][1]); - } -}); - -test('format month', function (assert) { - var expected = 'ינואר ינו׳_פברואר פבר׳_מרץ מרץ_אפריל אפר׳_מאי מאי_יוני יוני_יולי יולי_אוגוסט אוג׳_ספטמבר ספט׳_אוקטובר אוק׳_נובמבר נוב׳_דצמבר דצמ׳'.split('_'), i; - for (i = 0; i < expected.length; i++) { - assert.equal(moment([2011, i, 1]).format('MMMM MMM'), expected[i], expected[i]); - } -}); - -test('format week', function (assert) { - var expected = 'ראשון א׳ א|שני ב׳ ב|שלישי ג׳ ג|רביעי ד׳ ד|חמישי ה׳ ה|שישי ו׳ ו|שבת ש׳ ש'.split('|'), i; - for (i = 0; i < expected.length; i++) { - assert.equal(moment([2011, 0, 2 + i]).format('dddd ddd dd'), expected[i], expected[i]); - } -}); - -test('from', function (assert) { - var start = moment([2007, 1, 28]); - assert.equal(start.from(moment([2007, 1, 28]).add({s: 44}), true), 'מספר שניות', '44 seconds = a few seconds'); - assert.equal(start.from(moment([2007, 1, 28]).add({s: 45}), true), 'דקה', '45 seconds = a minute'); - assert.equal(start.from(moment([2007, 1, 28]).add({s: 89}), true), 'דקה', '89 seconds = a minute'); - assert.equal(start.from(moment([2007, 1, 28]).add({s: 90}), true), '2 דקות', '90 seconds = 2 minutes'); - assert.equal(start.from(moment([2007, 1, 28]).add({m: 44}), true), '44 דקות', '44 minutes = 44 minutes'); - assert.equal(start.from(moment([2007, 1, 28]).add({m: 45}), true), 'שעה', '45 minutes = an hour'); - assert.equal(start.from(moment([2007, 1, 28]).add({m: 89}), true), 'שעה', '89 minutes = an hour'); - assert.equal(start.from(moment([2007, 1, 28]).add({m: 90}), true), 'שעתיים', '90 minutes = 2 hours'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 5}), true), '5 שעות', '5 hours = 5 hours'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 21}), true), '21 שעות', '21 hours = 21 hours'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 22}), true), 'יום', '22 hours = a day'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 35}), true), 'יום', '35 hours = a day'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 36}), true), 'יומיים', '36 hours = 2 days'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 1}), true), 'יום', '1 day = a day'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 5}), true), '5 ימים', '5 days = 5 days'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 25}), true), '25 ימים', '25 days = 25 days'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 26}), true), 'חודש', '26 days = a month'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 30}), true), 'חודש', '30 days = a month'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 43}), true), 'חודש', '43 days = a month'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 46}), true), 'חודשיים', '46 days = 2 months'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 74}), true), 'חודשיים', '75 days = 2 months'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 76}), true), '3 חודשים', '76 days = 3 months'); - assert.equal(start.from(moment([2007, 1, 28]).add({M: 1}), true), 'חודש', '1 month = a month'); - assert.equal(start.from(moment([2007, 1, 28]).add({M: 5}), true), '5 חודשים', '5 months = 5 months'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 345}), true), 'שנה', '345 days = a year'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 548}), true), 'שנתיים', '548 days = 2 years'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 3699}), true), '10 שנים', '345 days = 10 years'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 7340}), true), '20 שנה', '548 days = 20 years'); - assert.equal(start.from(moment([2007, 1, 28]).add({y: 1}), true), 'שנה', '1 year = a year'); - assert.equal(start.from(moment([2007, 1, 28]).add({y: 5}), true), '5 שנים', '5 years = 5 years'); -}); - -test('suffix', function (assert) { - assert.equal(moment(30000).from(0), 'בעוד מספר שניות', 'prefix'); - assert.equal(moment(0).from(30000), 'לפני מספר שניות', 'suffix'); -}); - -test('now from now', function (assert) { - assert.equal(moment().fromNow(), 'לפני מספר שניות', 'now from now should display as in the past'); -}); - -test('fromNow', function (assert) { - assert.equal(moment().add({s: 30}).fromNow(), 'בעוד מספר שניות', 'in a few seconds'); - assert.equal(moment().add({d: 5}).fromNow(), 'בעוד 5 ימים', 'in 5 days'); -}); - -test('calendar day', function (assert) { - var a = moment().hours(12).minutes(0).seconds(0); - - assert.equal(moment(a).calendar(), 'היום ב־12:00', 'today at the same time'); - assert.equal(moment(a).add({m: 25}).calendar(), 'היום ב־12:25', 'Now plus 25 min'); - assert.equal(moment(a).add({h: 1}).calendar(), 'היום ב־13:00', 'Now plus 1 hour'); - assert.equal(moment(a).add({d: 1}).calendar(), 'מחר ב־12:00', 'tomorrow at the same time'); - assert.equal(moment(a).subtract({h: 1}).calendar(), 'היום ב־11:00', 'Now minus 1 hour'); - assert.equal(moment(a).subtract({d: 1}).calendar(), 'אתמול ב־12:00', 'yesterday at the same time'); -}); - -test('calendar next week', function (assert) { - var i, m; - for (i = 2; i < 7; i++) { - m = moment().add({d: i}); - assert.equal(m.calendar(), m.format('dddd [בשעה] LT'), 'Today + ' + i + ' days current time'); - m.hours(0).minutes(0).seconds(0).milliseconds(0); - assert.equal(m.calendar(), m.format('dddd [בשעה] LT'), 'Today + ' + i + ' days beginning of day'); - m.hours(23).minutes(59).seconds(59).milliseconds(999); - assert.equal(m.calendar(), m.format('dddd [בשעה] LT'), 'Today + ' + i + ' days end of day'); - } -}); - -test('calendar last week', function (assert) { - var i, m; - for (i = 2; i < 7; i++) { - m = moment().subtract({d: i}); - assert.equal(m.calendar(), m.format('[ביום] dddd [האחרון בשעה] LT'), 'Today - ' + i + ' days current time'); - m.hours(0).minutes(0).seconds(0).milliseconds(0); - assert.equal(m.calendar(), m.format('[ביום] dddd [האחרון בשעה] LT'), 'Today - ' + i + ' days beginning of day'); - m.hours(23).minutes(59).seconds(59).milliseconds(999); - assert.equal(m.calendar(), m.format('[ביום] dddd [האחרון בשעה] LT'), 'Today - ' + i + ' days end of day'); - } -}); - -test('calendar all else', function (assert) { - var weeksAgo = moment().subtract({w: 1}), - weeksFromNow = moment().add({w: 1}); - - assert.equal(weeksAgo.calendar(), weeksAgo.format('L'), '1 week ago'); - assert.equal(weeksFromNow.calendar(), weeksFromNow.format('L'), 'in 1 week'); - - weeksAgo = moment().subtract({w: 2}); - weeksFromNow = moment().add({w: 2}); - - assert.equal(weeksAgo.calendar(), weeksAgo.format('L'), '2 weeks ago'); - assert.equal(weeksFromNow.calendar(), weeksFromNow.format('L'), 'in 2 weeks'); -}); - -test('weeks year starting sunday format', function (assert) { - assert.equal(moment([2012, 0, 1]).format('w ww wo'), '1 01 1', 'Jan 1 2012 should be week 1'); - assert.equal(moment([2012, 0, 7]).format('w ww wo'), '1 01 1', 'Jan 7 2012 should be week 1'); - assert.equal(moment([2012, 0, 8]).format('w ww wo'), '2 02 2', 'Jan 8 2012 should be week 2'); - assert.equal(moment([2012, 0, 14]).format('w ww wo'), '2 02 2', 'Jan 14 2012 should be week 2'); - assert.equal(moment([2012, 0, 15]).format('w ww wo'), '3 03 3', 'Jan 15 2012 should be week 3'); -}); - -}))); - - -;(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' - && typeof require === 'function' ? factory(require('../../moment')) : - typeof define === 'function' && define.amd ? define(['../../moment'], factory) : - factory(global.moment) -}(this, (function (moment) { 'use strict'; - -function each(array, callback) { - var i; - for (i = 0; i < array.length; i++) { - callback(array[i], i, array); - } -} - -function objectKeys(obj) { - if (Object.keys) { - return Object.keys(obj); - } else { - // IE8 - var res = [], i; - for (i in obj) { - if (obj.hasOwnProperty(i)) { - res.push(i); - } - } - return res; - } -} - -// Pick the first defined of two or three arguments. - -function defineCommonLocaleTests(locale, options) { - test('lenient day of month ordinal parsing', function (assert) { - var i, ordinalStr, testMoment; - for (i = 1; i <= 31; ++i) { - ordinalStr = moment([2014, 0, i]).format('YYYY MM Do'); - testMoment = moment(ordinalStr, 'YYYY MM Do'); - assert.equal(testMoment.year(), 2014, - 'lenient day of month ordinal parsing ' + i + ' year check'); - assert.equal(testMoment.month(), 0, - 'lenient day of month ordinal parsing ' + i + ' month check'); - assert.equal(testMoment.date(), i, - 'lenient day of month ordinal parsing ' + i + ' date check'); - } - }); - - test('lenient day of month ordinal parsing of number', function (assert) { - var i, testMoment; - for (i = 1; i <= 31; ++i) { - testMoment = moment('2014 01 ' + i, 'YYYY MM Do'); - assert.equal(testMoment.year(), 2014, - 'lenient day of month ordinal parsing of number ' + i + ' year check'); - assert.equal(testMoment.month(), 0, - 'lenient day of month ordinal parsing of number ' + i + ' month check'); - assert.equal(testMoment.date(), i, - 'lenient day of month ordinal parsing of number ' + i + ' date check'); - } - }); - - test('strict day of month ordinal parsing', function (assert) { - var i, ordinalStr, testMoment; - for (i = 1; i <= 31; ++i) { - ordinalStr = moment([2014, 0, i]).format('YYYY MM Do'); - testMoment = moment(ordinalStr, 'YYYY MM Do', true); - assert.ok(testMoment.isValid(), 'strict day of month ordinal parsing ' + i); - } - }); - - test('meridiem invariant', function (assert) { - var h, m, t1, t2; - for (h = 0; h < 24; ++h) { - for (m = 0; m < 60; m += 15) { - t1 = moment.utc([2000, 0, 1, h, m]); - t2 = moment.utc(t1.format('A h:mm'), 'A h:mm'); - assert.equal(t2.format('HH:mm'), t1.format('HH:mm'), - 'meridiem at ' + t1.format('HH:mm')); - } - } - }); - - test('date format correctness', function (assert) { - var data, tokens; - data = moment.localeData()._longDateFormat; - tokens = objectKeys(data); - each(tokens, function (srchToken) { - // Check each format string to make sure it does not contain any - // tokens that need to be expanded. - each(tokens, function (baseToken) { - // strip escaped sequences - var format = data[baseToken].replace(/(\[[^\]]*\])/g, ''); - assert.equal(false, !!~format.indexOf(srchToken), - 'contains ' + srchToken + ' in ' + baseToken); - }); - }); - }); - - test('month parsing correctness', function (assert) { - var i, m; - - if (locale === 'tr') { - // I can't fix it :( - expect(0); - return; - } - function tester(format) { - var r; - r = moment(m.format(format), format); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format); - r = moment(m.format(format).toLocaleUpperCase(), format); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' upper'); - r = moment(m.format(format).toLocaleLowerCase(), format); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' lower'); - - r = moment(m.format(format), format, true); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' strict'); - r = moment(m.format(format).toLocaleUpperCase(), format, true); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' upper strict'); - r = moment(m.format(format).toLocaleLowerCase(), format, true); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' lower strict'); - } - - for (i = 0; i < 12; ++i) { - m = moment([2015, i, 15, 18]); - tester('MMM'); - tester('MMM.'); - tester('MMMM'); - tester('MMMM.'); - } - }); - - test('weekday parsing correctness', function (assert) { - var i, m; - - if (locale === 'tr' || locale === 'az' || locale === 'ro') { - // tr, az: There is a lower-case letter (ı), that converted to - // upper then lower changes to i - // ro: there is the letter ț which behaves weird under IE8 - expect(0); - return; - } - function tester(format) { - var r, baseMsg = 'weekday ' + m.weekday() + ' fmt ' + format + ' ' + m.toISOString(); - r = moment(m.format(format), format); - assert.equal(r.weekday(), m.weekday(), baseMsg); - r = moment(m.format(format).toLocaleUpperCase(), format); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' upper'); - r = moment(m.format(format).toLocaleLowerCase(), format); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' lower'); - - r = moment(m.format(format), format, true); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' strict'); - r = moment(m.format(format).toLocaleUpperCase(), format, true); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' upper strict'); - r = moment(m.format(format).toLocaleLowerCase(), format, true); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' lower strict'); - } - - for (i = 0; i < 7; ++i) { - m = moment.utc([2015, 0, i + 1, 18]); - tester('dd'); - tester('ddd'); - tester('dddd'); - } - }); - - test('valid localeData', function (assert) { - assert.equal(moment().localeData().months().length, 12, 'months should return 12 months'); - assert.equal(moment().localeData().monthsShort().length, 12, 'monthsShort should return 12 months'); - assert.equal(moment().localeData().weekdays().length, 7, 'weekdays should return 7 days'); - assert.equal(moment().localeData().weekdaysShort().length, 7, 'weekdaysShort should return 7 days'); - assert.equal(moment().localeData().weekdaysMin().length, 7, 'monthsShort should return 7 days'); - }); -} - -function setupDeprecationHandler(test, moment$$1, scope) { - test._expectedDeprecations = null; - test._observedDeprecations = null; - test._oldSupress = moment$$1.suppressDeprecationWarnings; - moment$$1.suppressDeprecationWarnings = true; - test.expectedDeprecations = function () { - test._expectedDeprecations = arguments; - test._observedDeprecations = []; - }; - moment$$1.deprecationHandler = function (name, msg) { - var deprecationId = matchedDeprecation(name, msg, test._expectedDeprecations); - if (deprecationId === -1) { - throw new Error('Unexpected deprecation thrown name=' + - name + ' msg=' + msg); - } - test._observedDeprecations[deprecationId] = 1; - }; -} - -function teardownDeprecationHandler(test, moment$$1, scope) { - moment$$1.suppressDeprecationWarnings = test._oldSupress; - - if (test._expectedDeprecations != null) { - var missedDeprecations = []; - each(test._expectedDeprecations, function (deprecationPattern, id) { - if (test._observedDeprecations[id] !== 1) { - missedDeprecations.push(deprecationPattern); - } - }); - if (missedDeprecations.length !== 0) { - throw new Error('Expected deprecation warnings did not happen: ' + - missedDeprecations.join(' ')); - } - } -} - -function matchedDeprecation(name, msg, deprecations) { - if (deprecations == null) { - return -1; - } - for (var i = 0; i < deprecations.length; ++i) { - if (name != null && name === deprecations[i]) { - return i; - } - if (msg != null && msg.substring(0, deprecations[i].length) === deprecations[i]) { - return i; - } - } - return -1; -} - -/*global QUnit:false*/ - -var test = QUnit.test; - -var expect = QUnit.expect; - - - -function localeModule (name, lifecycle) { - QUnit.module('locale:' + name, { - setup : function () { - moment.locale(name); - moment.createFromInputFallback = function (config) { - throw new Error('input not handled by moment: ' + config._i); - }; - setupDeprecationHandler(test, moment, 'locale'); - if (lifecycle && lifecycle.setup) { - lifecycle.setup(); - } - }, - teardown : function () { - moment.locale('en'); - teardownDeprecationHandler(test, moment, 'locale'); - if (lifecycle && lifecycle.teardown) { - lifecycle.teardown(); - } - } - }); - defineCommonLocaleTests(name, -1, -1); -} - -localeModule('hi'); - -test('parse', function (assert) { - var tests = 'जनवरी जन._फ़रवरी फ़र._मार्च मार्च_अप्रैल अप्रै._मई मई_जून जून_जुलाई जुल._अगस्त अग._सितम्बर सित._अक्टूबर अक्टू._नवम्बर नव._दिसम्बर दिस.'.split('_'), i; - function equalTest(input, mmm, i) { - assert.equal(moment(input, mmm).month(), i, input + ' should be month ' + (i + 1)); - } - for (i = 0; i < 12; i++) { - tests[i] = tests[i].split(' '); - equalTest(tests[i][0], 'MMM', i); - equalTest(tests[i][1], 'MMM', i); - equalTest(tests[i][0], 'MMMM', i); - equalTest(tests[i][1], 'MMMM', i); - equalTest(tests[i][0].toLocaleLowerCase(), 'MMMM', i); - equalTest(tests[i][1].toLocaleLowerCase(), 'MMMM', i); - equalTest(tests[i][0].toLocaleUpperCase(), 'MMMM', i); - equalTest(tests[i][1].toLocaleUpperCase(), 'MMMM', i); - } -}); - -test('format', function (assert) { - var a = [ - ['dddd, Do MMMM YYYY, a h:mm:ss बजे', 'रविवार, १४ फ़रवरी २०१०, दोपहर ३:२५:५० बजे'], - ['ddd, a h बजे', 'रवि, दोपहर ३ बजे'], - ['M Mo MM MMMM MMM', '२ २ ०२ फ़रवरी फ़र.'], - ['YYYY YY', '२०१० १०'], - ['D Do DD', '१४ १४ १४'], - ['d do dddd ddd dd', '० ० रविवार रवि र'], - ['DDD DDDo DDDD', '४५ ४५ ०४५'], - ['w wo ww', '८ ८ ०८'], - ['h hh', '३ ०३'], - ['H HH', '१५ १५'], - ['m mm', '२५ २५'], - ['s ss', '५० ५०'], - ['a A', 'दोपहर दोपहर'], - ['LTS', 'दोपहर ३:२५:५० बजे'], - ['L', '१४/०२/२०१०'], - ['LL', '१४ फ़रवरी २०१०'], - ['LLL', '१४ फ़रवरी २०१०, दोपहर ३:२५ बजे'], - ['LLLL', 'रविवार, १४ फ़रवरी २०१०, दोपहर ३:२५ बजे'], - ['l', '१४/२/२०१०'], - ['ll', '१४ फ़र. २०१०'], - ['lll', '१४ फ़र. २०१०, दोपहर ३:२५ बजे'], - ['llll', 'रवि, १४ फ़र. २०१०, दोपहर ३:२५ बजे'] - ], - b = moment(new Date(2010, 1, 14, 15, 25, 50, 125)), - i; - for (i = 0; i < a.length; i++) { - assert.equal(b.format(a[i][0]), a[i][1], a[i][0] + ' ---> ' + a[i][1]); - } -}); - -test('format ordinal', function (assert) { - assert.equal(moment([2011, 0, 1]).format('DDDo'), '१', '१'); - assert.equal(moment([2011, 0, 2]).format('DDDo'), '२', '२'); - assert.equal(moment([2011, 0, 3]).format('DDDo'), '३', '३'); - assert.equal(moment([2011, 0, 4]).format('DDDo'), '४', '४'); - assert.equal(moment([2011, 0, 5]).format('DDDo'), '५', '५'); - assert.equal(moment([2011, 0, 6]).format('DDDo'), '६', '६'); - assert.equal(moment([2011, 0, 7]).format('DDDo'), '७', '७'); - assert.equal(moment([2011, 0, 8]).format('DDDo'), '८', '८'); - assert.equal(moment([2011, 0, 9]).format('DDDo'), '९', '९'); - assert.equal(moment([2011, 0, 10]).format('DDDo'), '१०', '१०'); - - assert.equal(moment([2011, 0, 11]).format('DDDo'), '११', '११'); - assert.equal(moment([2011, 0, 12]).format('DDDo'), '१२', '१२'); - assert.equal(moment([2011, 0, 13]).format('DDDo'), '१३', '१३'); - assert.equal(moment([2011, 0, 14]).format('DDDo'), '१४', '१४'); - assert.equal(moment([2011, 0, 15]).format('DDDo'), '१५', '१५'); - assert.equal(moment([2011, 0, 16]).format('DDDo'), '१६', '१६'); - assert.equal(moment([2011, 0, 17]).format('DDDo'), '१७', '१७'); - assert.equal(moment([2011, 0, 18]).format('DDDo'), '१८', '१८'); - assert.equal(moment([2011, 0, 19]).format('DDDo'), '१९', '१९'); - assert.equal(moment([2011, 0, 20]).format('DDDo'), '२०', '२०'); - - assert.equal(moment([2011, 0, 21]).format('DDDo'), '२१', '२१'); - assert.equal(moment([2011, 0, 22]).format('DDDo'), '२२', '२२'); - assert.equal(moment([2011, 0, 23]).format('DDDo'), '२३', '२३'); - assert.equal(moment([2011, 0, 24]).format('DDDo'), '२४', '२४'); - assert.equal(moment([2011, 0, 25]).format('DDDo'), '२५', '२५'); - assert.equal(moment([2011, 0, 26]).format('DDDo'), '२६', '२६'); - assert.equal(moment([2011, 0, 27]).format('DDDo'), '२७', '२७'); - assert.equal(moment([2011, 0, 28]).format('DDDo'), '२८', '२८'); - assert.equal(moment([2011, 0, 29]).format('DDDo'), '२९', '२९'); - assert.equal(moment([2011, 0, 30]).format('DDDo'), '३०', '३०'); - - assert.equal(moment([2011, 0, 31]).format('DDDo'), '३१', '३१'); -}); - -test('format month', function (assert) { - var expected = 'जनवरी जन._फ़रवरी फ़र._मार्च मार्च_अप्रैल अप्रै._मई मई_जून जून_जुलाई जुल._अगस्त अग._सितम्बर सित._अक्टूबर अक्टू._नवम्बर नव._दिसम्बर दिस.'.split('_'), i; - for (i = 0; i < expected.length; i++) { - assert.equal(moment([2011, i, 1]).format('MMMM MMM'), expected[i], expected[i]); - } -}); - -test('format week', function (assert) { - var expected = 'रविवार रवि र_सोमवार सोम सो_मंगलवार मंगल मं_बुधवार बुध बु_गुरूवार गुरू गु_शुक्रवार शुक्र शु_शनिवार शनि श'.split('_'), i; - for (i = 0; i < expected.length; i++) { - assert.equal(moment([2011, 0, 2 + i]).format('dddd ddd dd'), expected[i], expected[i]); - } -}); - -test('from', function (assert) { - var start = moment([2007, 1, 28]); - assert.equal(start.from(moment([2007, 1, 28]).add({s: 44}), true), 'कुछ ही क्षण', '44 seconds = a few seconds'); - assert.equal(start.from(moment([2007, 1, 28]).add({s: 45}), true), 'एक मिनट', '45 seconds = a minute'); - assert.equal(start.from(moment([2007, 1, 28]).add({s: 89}), true), 'एक मिनट', '89 seconds = a minute'); - assert.equal(start.from(moment([2007, 1, 28]).add({s: 90}), true), '२ मिनट', '90 seconds = 2 minutes'); - assert.equal(start.from(moment([2007, 1, 28]).add({m: 44}), true), '४४ मिनट', '44 minutes = 44 minutes'); - assert.equal(start.from(moment([2007, 1, 28]).add({m: 45}), true), 'एक घंटा', '45 minutes = an hour'); - assert.equal(start.from(moment([2007, 1, 28]).add({m: 89}), true), 'एक घंटा', '89 minutes = an hour'); - assert.equal(start.from(moment([2007, 1, 28]).add({m: 90}), true), '२ घंटे', '90 minutes = 2 hours'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 5}), true), '५ घंटे', '5 hours = 5 hours'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 21}), true), '२१ घंटे', '21 hours = 21 hours'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 22}), true), 'एक दिन', '22 hours = a day'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 35}), true), 'एक दिन', '35 hours = a day'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 36}), true), '२ दिन', '36 hours = 2 days'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 1}), true), 'एक दिन', '1 day = a day'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 5}), true), '५ दिन', '5 days = 5 days'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 25}), true), '२५ दिन', '25 days = 25 days'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 26}), true), 'एक महीने', '26 days = a month'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 30}), true), 'एक महीने', '30 days = a month'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 43}), true), 'एक महीने', '43 days = a month'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 46}), true), '२ महीने', '46 days = 2 months'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 74}), true), '२ महीने', '75 days = 2 months'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 76}), true), '३ महीने', '76 days = 3 months'); - assert.equal(start.from(moment([2007, 1, 28]).add({M: 1}), true), 'एक महीने', '1 month = a month'); - assert.equal(start.from(moment([2007, 1, 28]).add({M: 5}), true), '५ महीने', '5 months = 5 months'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 345}), true), 'एक वर्ष', '345 days = a year'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 548}), true), '२ वर्ष', '548 days = 2 years'); - assert.equal(start.from(moment([2007, 1, 28]).add({y: 1}), true), 'एक वर्ष', '1 year = a year'); - assert.equal(start.from(moment([2007, 1, 28]).add({y: 5}), true), '५ वर्ष', '5 years = 5 years'); -}); - -test('suffix', function (assert) { - assert.equal(moment(30000).from(0), 'कुछ ही क्षण में', 'prefix'); - assert.equal(moment(0).from(30000), 'कुछ ही क्षण पहले', 'suffix'); -}); - -test('now from now', function (assert) { - assert.equal(moment().fromNow(), 'कुछ ही क्षण पहले', 'now from now should display as in the past'); -}); - -test('fromNow', function (assert) { - assert.equal(moment().add({s: 30}).fromNow(), 'कुछ ही क्षण में', 'कुछ ही क्षण में'); - assert.equal(moment().add({d: 5}).fromNow(), '५ दिन में', '५ दिन में'); -}); - -test('calendar day', function (assert) { - var a = moment().hours(12).minutes(0).seconds(0); - - assert.equal(moment(a).calendar(), 'आज दोपहर १२:०० बजे', 'today at the same time'); - assert.equal(moment(a).add({m: 25}).calendar(), 'आज दोपहर १२:२५ बजे', 'Now plus 25 min'); - assert.equal(moment(a).add({h: 3}).calendar(), 'आज दोपहर ३:०० बजे', 'Now plus 3 hours'); - assert.equal(moment(a).add({d: 1}).calendar(), 'कल दोपहर १२:०० बजे', 'tomorrow at the same time'); - assert.equal(moment(a).subtract({h: 1}).calendar(), 'आज दोपहर ११:०० बजे', 'Now minus 1 hour'); - assert.equal(moment(a).subtract({d: 1}).calendar(), 'कल दोपहर १२:०० बजे', 'yesterday at the same time'); -}); - -test('calendar next week', function (assert) { - var i, m; - for (i = 2; i < 7; i++) { - m = moment().add({d: i}); - assert.equal(m.calendar(), m.format('dddd[,] LT'), 'Today + ' + i + ' days current time'); - m.hours(0).minutes(0).seconds(0).milliseconds(0); - assert.equal(m.calendar(), m.format('dddd[,] LT'), 'Today + ' + i + ' days beginning of day'); - m.hours(23).minutes(59).seconds(59).milliseconds(999); - assert.equal(m.calendar(), m.format('dddd[,] LT'), 'Today + ' + i + ' days end of day'); - } -}); - -test('calendar last week', function (assert) { - var i, m; - - for (i = 2; i < 7; i++) { - m = moment().subtract({d: i}); - assert.equal(m.calendar(), m.format('[पिछले] dddd[,] LT'), 'Today - ' + i + ' days current time'); - m.hours(0).minutes(0).seconds(0).milliseconds(0); - assert.equal(m.calendar(), m.format('[पिछले] dddd[,] LT'), 'Today - ' + i + ' days beginning of day'); - m.hours(23).minutes(59).seconds(59).milliseconds(999); - assert.equal(m.calendar(), m.format('[पिछले] dddd[,] LT'), 'Today - ' + i + ' days end of day'); - } -}); - -test('calendar all else', function (assert) { - var weeksAgo = moment().subtract({w: 1}), - weeksFromNow = moment().add({w: 1}); - - assert.equal(weeksAgo.calendar(), weeksAgo.format('L'), '1 week ago'); - assert.equal(weeksFromNow.calendar(), weeksFromNow.format('L'), 'in 1 week'); - - weeksAgo = moment().subtract({w: 2}); - weeksFromNow = moment().add({w: 2}); - - assert.equal(weeksAgo.calendar(), weeksAgo.format('L'), '2 weeks ago'); - assert.equal(weeksFromNow.calendar(), weeksFromNow.format('L'), 'in 2 weeks'); -}); - -test('meridiem', function (assert) { - assert.equal(moment([2011, 2, 23, 2, 30]).format('a'), 'रात', 'before dawn'); - assert.equal(moment([2011, 2, 23, 9, 30]).format('a'), 'सुबह', 'morning'); - assert.equal(moment([2011, 2, 23, 14, 30]).format('a'), 'दोपहर', 'during day'); - assert.equal(moment([2011, 2, 23, 17, 30]).format('a'), 'शाम', 'evening'); - assert.equal(moment([2011, 2, 23, 19, 30]).format('a'), 'शाम', 'late evening'); - assert.equal(moment([2011, 2, 23, 21, 20]).format('a'), 'रात', 'night'); - - assert.equal(moment([2011, 2, 23, 2, 30]).format('A'), 'रात', 'before dawn'); - assert.equal(moment([2011, 2, 23, 9, 30]).format('A'), 'सुबह', 'morning'); - assert.equal(moment([2011, 2, 23, 14, 30]).format('A'), 'दोपहर', ' during day'); - assert.equal(moment([2011, 2, 23, 17, 30]).format('A'), 'शाम', 'evening'); - assert.equal(moment([2011, 2, 23, 19, 30]).format('A'), 'शाम', 'late evening'); - assert.equal(moment([2011, 2, 23, 21, 20]).format('A'), 'रात', 'night'); -}); - -test('weeks year starting sunday formatted', function (assert) { - assert.equal(moment([2012, 0, 1]).format('w ww wo'), '१ ०१ १', 'Jan 1 2012 should be week 1'); - assert.equal(moment([2012, 0, 7]).format('w ww wo'), '१ ०१ १', 'Jan 7 2012 should be week 1'); - assert.equal(moment([2012, 0, 8]).format('w ww wo'), '२ ०२ २', 'Jan 8 2012 should be week 2'); - assert.equal(moment([2012, 0, 14]).format('w ww wo'), '२ ०२ २', 'Jan 14 2012 should be week 2'); - assert.equal(moment([2012, 0, 15]).format('w ww wo'), '३ ०३ ३', 'Jan 15 2012 should be week 3'); -}); - -}))); - - -;(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' - && typeof require === 'function' ? factory(require('../../moment')) : - typeof define === 'function' && define.amd ? define(['../../moment'], factory) : - factory(global.moment) -}(this, (function (moment) { 'use strict'; - -function each(array, callback) { - var i; - for (i = 0; i < array.length; i++) { - callback(array[i], i, array); - } -} - -function objectKeys(obj) { - if (Object.keys) { - return Object.keys(obj); - } else { - // IE8 - var res = [], i; - for (i in obj) { - if (obj.hasOwnProperty(i)) { - res.push(i); - } - } - return res; - } -} - -// Pick the first defined of two or three arguments. - -function defineCommonLocaleTests(locale, options) { - test('lenient day of month ordinal parsing', function (assert) { - var i, ordinalStr, testMoment; - for (i = 1; i <= 31; ++i) { - ordinalStr = moment([2014, 0, i]).format('YYYY MM Do'); - testMoment = moment(ordinalStr, 'YYYY MM Do'); - assert.equal(testMoment.year(), 2014, - 'lenient day of month ordinal parsing ' + i + ' year check'); - assert.equal(testMoment.month(), 0, - 'lenient day of month ordinal parsing ' + i + ' month check'); - assert.equal(testMoment.date(), i, - 'lenient day of month ordinal parsing ' + i + ' date check'); - } - }); - - test('lenient day of month ordinal parsing of number', function (assert) { - var i, testMoment; - for (i = 1; i <= 31; ++i) { - testMoment = moment('2014 01 ' + i, 'YYYY MM Do'); - assert.equal(testMoment.year(), 2014, - 'lenient day of month ordinal parsing of number ' + i + ' year check'); - assert.equal(testMoment.month(), 0, - 'lenient day of month ordinal parsing of number ' + i + ' month check'); - assert.equal(testMoment.date(), i, - 'lenient day of month ordinal parsing of number ' + i + ' date check'); - } - }); - - test('strict day of month ordinal parsing', function (assert) { - var i, ordinalStr, testMoment; - for (i = 1; i <= 31; ++i) { - ordinalStr = moment([2014, 0, i]).format('YYYY MM Do'); - testMoment = moment(ordinalStr, 'YYYY MM Do', true); - assert.ok(testMoment.isValid(), 'strict day of month ordinal parsing ' + i); - } - }); - - test('meridiem invariant', function (assert) { - var h, m, t1, t2; - for (h = 0; h < 24; ++h) { - for (m = 0; m < 60; m += 15) { - t1 = moment.utc([2000, 0, 1, h, m]); - t2 = moment.utc(t1.format('A h:mm'), 'A h:mm'); - assert.equal(t2.format('HH:mm'), t1.format('HH:mm'), - 'meridiem at ' + t1.format('HH:mm')); - } - } - }); - - test('date format correctness', function (assert) { - var data, tokens; - data = moment.localeData()._longDateFormat; - tokens = objectKeys(data); - each(tokens, function (srchToken) { - // Check each format string to make sure it does not contain any - // tokens that need to be expanded. - each(tokens, function (baseToken) { - // strip escaped sequences - var format = data[baseToken].replace(/(\[[^\]]*\])/g, ''); - assert.equal(false, !!~format.indexOf(srchToken), - 'contains ' + srchToken + ' in ' + baseToken); - }); - }); - }); - - test('month parsing correctness', function (assert) { - var i, m; - - if (locale === 'tr') { - // I can't fix it :( - expect(0); - return; - } - function tester(format) { - var r; - r = moment(m.format(format), format); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format); - r = moment(m.format(format).toLocaleUpperCase(), format); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' upper'); - r = moment(m.format(format).toLocaleLowerCase(), format); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' lower'); - - r = moment(m.format(format), format, true); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' strict'); - r = moment(m.format(format).toLocaleUpperCase(), format, true); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' upper strict'); - r = moment(m.format(format).toLocaleLowerCase(), format, true); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' lower strict'); - } - - for (i = 0; i < 12; ++i) { - m = moment([2015, i, 15, 18]); - tester('MMM'); - tester('MMM.'); - tester('MMMM'); - tester('MMMM.'); - } - }); - - test('weekday parsing correctness', function (assert) { - var i, m; - - if (locale === 'tr' || locale === 'az' || locale === 'ro') { - // tr, az: There is a lower-case letter (ı), that converted to - // upper then lower changes to i - // ro: there is the letter ț which behaves weird under IE8 - expect(0); - return; - } - function tester(format) { - var r, baseMsg = 'weekday ' + m.weekday() + ' fmt ' + format + ' ' + m.toISOString(); - r = moment(m.format(format), format); - assert.equal(r.weekday(), m.weekday(), baseMsg); - r = moment(m.format(format).toLocaleUpperCase(), format); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' upper'); - r = moment(m.format(format).toLocaleLowerCase(), format); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' lower'); - - r = moment(m.format(format), format, true); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' strict'); - r = moment(m.format(format).toLocaleUpperCase(), format, true); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' upper strict'); - r = moment(m.format(format).toLocaleLowerCase(), format, true); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' lower strict'); - } - - for (i = 0; i < 7; ++i) { - m = moment.utc([2015, 0, i + 1, 18]); - tester('dd'); - tester('ddd'); - tester('dddd'); - } - }); - - test('valid localeData', function (assert) { - assert.equal(moment().localeData().months().length, 12, 'months should return 12 months'); - assert.equal(moment().localeData().monthsShort().length, 12, 'monthsShort should return 12 months'); - assert.equal(moment().localeData().weekdays().length, 7, 'weekdays should return 7 days'); - assert.equal(moment().localeData().weekdaysShort().length, 7, 'weekdaysShort should return 7 days'); - assert.equal(moment().localeData().weekdaysMin().length, 7, 'monthsShort should return 7 days'); - }); -} - -function setupDeprecationHandler(test, moment$$1, scope) { - test._expectedDeprecations = null; - test._observedDeprecations = null; - test._oldSupress = moment$$1.suppressDeprecationWarnings; - moment$$1.suppressDeprecationWarnings = true; - test.expectedDeprecations = function () { - test._expectedDeprecations = arguments; - test._observedDeprecations = []; - }; - moment$$1.deprecationHandler = function (name, msg) { - var deprecationId = matchedDeprecation(name, msg, test._expectedDeprecations); - if (deprecationId === -1) { - throw new Error('Unexpected deprecation thrown name=' + - name + ' msg=' + msg); - } - test._observedDeprecations[deprecationId] = 1; - }; -} - -function teardownDeprecationHandler(test, moment$$1, scope) { - moment$$1.suppressDeprecationWarnings = test._oldSupress; - - if (test._expectedDeprecations != null) { - var missedDeprecations = []; - each(test._expectedDeprecations, function (deprecationPattern, id) { - if (test._observedDeprecations[id] !== 1) { - missedDeprecations.push(deprecationPattern); - } - }); - if (missedDeprecations.length !== 0) { - throw new Error('Expected deprecation warnings did not happen: ' + - missedDeprecations.join(' ')); - } - } -} - -function matchedDeprecation(name, msg, deprecations) { - if (deprecations == null) { - return -1; - } - for (var i = 0; i < deprecations.length; ++i) { - if (name != null && name === deprecations[i]) { - return i; - } - if (msg != null && msg.substring(0, deprecations[i].length) === deprecations[i]) { - return i; - } - } - return -1; -} - -/*global QUnit:false*/ - -var test = QUnit.test; - -var expect = QUnit.expect; - - - -function localeModule (name, lifecycle) { - QUnit.module('locale:' + name, { - setup : function () { - moment.locale(name); - moment.createFromInputFallback = function (config) { - throw new Error('input not handled by moment: ' + config._i); - }; - setupDeprecationHandler(test, moment, 'locale'); - if (lifecycle && lifecycle.setup) { - lifecycle.setup(); - } - }, - teardown : function () { - moment.locale('en'); - teardownDeprecationHandler(test, moment, 'locale'); - if (lifecycle && lifecycle.teardown) { - lifecycle.teardown(); - } - } - }); - defineCommonLocaleTests(name, -1, -1); -} - -localeModule('hr'); - -test('parse', function (assert) { - var tests = 'siječanj sij._veljača velj._ožujak ožu._travanj tra._svibanj svi._lipanj lip._srpanj srp._kolovoz kol._rujan ruj._listopad lis._studeni stu._prosinac pro.'.split('_'), i; - function equalTest(input, mmm, i) { - assert.equal(moment(input, mmm).month(), i, input + ' should be month ' + (i + 1)); - } - for (i = 0; i < 12; i++) { - tests[i] = tests[i].split(' '); - equalTest(tests[i][0], 'MMM', i); - equalTest(tests[i][1], 'MMM', i); - equalTest(tests[i][0], 'MMMM', i); - equalTest(tests[i][1], 'MMMM', i); - equalTest(tests[i][0].toLocaleLowerCase(), 'MMMM', i); - equalTest(tests[i][1].toLocaleLowerCase(), 'MMMM', i); - equalTest(tests[i][0].toLocaleUpperCase(), 'MMMM', i); - equalTest(tests[i][1].toLocaleUpperCase(), 'MMMM', i); - } -}); - -test('format', function (assert) { - var a = [ - ['dddd, Do MMMM YYYY, h:mm:ss a', 'nedjelja, 14. veljače 2010, 3:25:50 pm'], - ['ddd, hA', 'ned., 3PM'], - ['M Mo MM MMMM MMM', '2 2. 02 veljača velj.'], - ['YYYY YY', '2010 10'], - ['D Do DD', '14 14. 14'], - ['d do dddd ddd dd', '0 0. nedjelja ned. ne'], - ['DDD DDDo DDDD', '45 45. 045'], - ['w wo ww', '7 7. 07'], - ['h hh', '3 03'], - ['H HH', '15 15'], - ['m mm', '25 25'], - ['s ss', '50 50'], - ['a A', 'pm PM'], - ['[the] DDDo [day of the year]', 'the 45. day of the year'], - ['LTS', '15:25:50'], - ['L', '14.02.2010'], - ['LL', '14. veljača 2010'], - ['LLL', '14. veljača 2010 15:25'], - ['LLLL', 'nedjelja, 14. veljača 2010 15:25'], - ['l', '14.2.2010'], - ['ll', '14. velj. 2010'], - ['lll', '14. velj. 2010 15:25'], - ['llll', 'ned., 14. velj. 2010 15:25'] - ], - b = moment(new Date(2010, 1, 14, 15, 25, 50, 125)), - i; - for (i = 0; i < a.length; i++) { - assert.equal(b.format(a[i][0]), a[i][1], a[i][0] + ' ---> ' + a[i][1]); - } -}); - -test('format ordinal', function (assert) { - assert.equal(moment([2011, 0, 1]).format('DDDo'), '1.', '1.'); - assert.equal(moment([2011, 0, 2]).format('DDDo'), '2.', '2.'); - assert.equal(moment([2011, 0, 3]).format('DDDo'), '3.', '3.'); - assert.equal(moment([2011, 0, 4]).format('DDDo'), '4.', '4.'); - assert.equal(moment([2011, 0, 5]).format('DDDo'), '5.', '5.'); - assert.equal(moment([2011, 0, 6]).format('DDDo'), '6.', '6.'); - assert.equal(moment([2011, 0, 7]).format('DDDo'), '7.', '7.'); - assert.equal(moment([2011, 0, 8]).format('DDDo'), '8.', '8.'); - assert.equal(moment([2011, 0, 9]).format('DDDo'), '9.', '9.'); - assert.equal(moment([2011, 0, 10]).format('DDDo'), '10.', '10.'); - - assert.equal(moment([2011, 0, 11]).format('DDDo'), '11.', '11.'); - assert.equal(moment([2011, 0, 12]).format('DDDo'), '12.', '12.'); - assert.equal(moment([2011, 0, 13]).format('DDDo'), '13.', '13.'); - assert.equal(moment([2011, 0, 14]).format('DDDo'), '14.', '14.'); - assert.equal(moment([2011, 0, 15]).format('DDDo'), '15.', '15.'); - assert.equal(moment([2011, 0, 16]).format('DDDo'), '16.', '16.'); - assert.equal(moment([2011, 0, 17]).format('DDDo'), '17.', '17.'); - assert.equal(moment([2011, 0, 18]).format('DDDo'), '18.', '18.'); - assert.equal(moment([2011, 0, 19]).format('DDDo'), '19.', '19.'); - assert.equal(moment([2011, 0, 20]).format('DDDo'), '20.', '20.'); - - assert.equal(moment([2011, 0, 21]).format('DDDo'), '21.', '21.'); - assert.equal(moment([2011, 0, 22]).format('DDDo'), '22.', '22.'); - assert.equal(moment([2011, 0, 23]).format('DDDo'), '23.', '23.'); - assert.equal(moment([2011, 0, 24]).format('DDDo'), '24.', '24.'); - assert.equal(moment([2011, 0, 25]).format('DDDo'), '25.', '25.'); - assert.equal(moment([2011, 0, 26]).format('DDDo'), '26.', '26.'); - assert.equal(moment([2011, 0, 27]).format('DDDo'), '27.', '27.'); - assert.equal(moment([2011, 0, 28]).format('DDDo'), '28.', '28.'); - assert.equal(moment([2011, 0, 29]).format('DDDo'), '29.', '29.'); - assert.equal(moment([2011, 0, 30]).format('DDDo'), '30.', '30.'); - - assert.equal(moment([2011, 0, 31]).format('DDDo'), '31.', '31.'); -}); - -test('format month', function (assert) { - var expected = 'siječanj sij._veljača velj._ožujak ožu._travanj tra._svibanj svi._lipanj lip._srpanj srp._kolovoz kol._rujan ruj._listopad lis._studeni stu._prosinac pro.'.split('_'), i; - for (i = 0; i < expected.length; i++) { - assert.equal(moment([2011, i, 1]).format('MMMM MMM'), expected[i], expected[i]); - } -}); - -test('format week', function (assert) { - var expected = 'nedjelja ned. ne_ponedjeljak pon. po_utorak uto. ut_srijeda sri. sr_četvrtak čet. če_petak pet. pe_subota sub. su'.split('_'), i; - for (i = 0; i < expected.length; i++) { - assert.equal(moment([2011, 0, 2 + i]).format('dddd ddd dd'), expected[i], expected[i]); - } -}); - -test('from', function (assert) { - var start = moment([2007, 1, 28]); - assert.equal(start.from(moment([2007, 1, 28]).add({s: 44}), true), 'par sekundi', '44 seconds = a few seconds'); - assert.equal(start.from(moment([2007, 1, 28]).add({s: 45}), true), 'jedna minuta', '45 seconds = a minute'); - assert.equal(start.from(moment([2007, 1, 28]).add({s: 89}), true), 'jedna minuta', '89 seconds = a minute'); - assert.equal(start.from(moment([2007, 1, 28]).add({s: 90}), true), '2 minute', '90 seconds = 2 minutes'); - assert.equal(start.from(moment([2007, 1, 28]).add({m: 44}), true), '44 minuta', '44 minutes = 44 minutes'); - assert.equal(start.from(moment([2007, 1, 28]).add({m: 45}), true), 'jedan sat', '45 minutes = an hour'); - assert.equal(start.from(moment([2007, 1, 28]).add({m: 89}), true), 'jedan sat', '89 minutes = an hour'); - assert.equal(start.from(moment([2007, 1, 28]).add({m: 90}), true), '2 sata', '90 minutes = 2 hours'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 5}), true), '5 sati', '5 hours = 5 hours'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 21}), true), '21 sati', '21 hours = 21 hours'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 22}), true), 'dan', '22 hours = a day'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 35}), true), 'dan', '35 hours = a day'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 36}), true), '2 dana', '36 hours = 2 days'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 1}), true), 'dan', '1 day = a day'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 5}), true), '5 dana', '5 days = 5 days'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 25}), true), '25 dana', '25 days = 25 days'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 26}), true), 'mjesec', '26 days = a month'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 30}), true), 'mjesec', '30 days = a month'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 43}), true), 'mjesec', '43 days = a month'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 46}), true), '2 mjeseca', '46 days = 2 months'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 74}), true), '2 mjeseca', '75 days = 2 months'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 76}), true), '3 mjeseca', '76 days = 3 months'); - assert.equal(start.from(moment([2007, 1, 28]).add({M: 1}), true), 'mjesec', '1 month = a month'); - assert.equal(start.from(moment([2007, 1, 28]).add({M: 5}), true), '5 mjeseci', '5 months = 5 months'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 345}), true), 'godinu', '345 days = a year'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 548}), true), '2 godine', '548 days = 2 years'); - assert.equal(start.from(moment([2007, 1, 28]).add({y: 1}), true), 'godinu', '1 year = a year'); - assert.equal(start.from(moment([2007, 1, 28]).add({y: 5}), true), '5 godina', '5 years = 5 years'); -}); - -test('suffix', function (assert) { - assert.equal(moment(30000).from(0), 'za par sekundi', 'prefix'); - assert.equal(moment(0).from(30000), 'prije par sekundi', 'prefix'); -}); - -test('now from now', function (assert) { - assert.equal(moment().fromNow(), 'prije par sekundi', 'now from now should display as in the past'); -}); - -test('fromNow', function (assert) { - assert.equal(moment().add({s: 30}).fromNow(), 'za par sekundi', 'in a few seconds'); - assert.equal(moment().add({d: 5}).fromNow(), 'za 5 dana', 'in 5 days'); -}); - -test('calendar day', function (assert) { - var a = moment().hours(12).minutes(0).seconds(0); - - assert.equal(moment(a).calendar(), 'danas u 12:00', 'today at the same time'); - assert.equal(moment(a).add({m: 25}).calendar(), 'danas u 12:25', 'Now plus 25 min'); - assert.equal(moment(a).add({h: 1}).calendar(), 'danas u 13:00', 'Now plus 1 hour'); - assert.equal(moment(a).add({d: 1}).calendar(), 'sutra u 12:00', 'tomorrow at the same time'); - assert.equal(moment(a).subtract({h: 1}).calendar(), 'danas u 11:00', 'Now minus 1 hour'); - assert.equal(moment(a).subtract({d: 1}).calendar(), 'jučer u 12:00', 'yesterday at the same time'); -}); - -test('calendar next week', function (assert) { - var i, m; - - function makeFormat(d) { - switch (d.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'; - } - } - - for (i = 2; i < 7; i++) { - m = moment().add({d: i}); - assert.equal(m.calendar(), m.format(makeFormat(m)), 'Today + ' + i + ' days current time'); - m.hours(0).minutes(0).seconds(0).milliseconds(0); - assert.equal(m.calendar(), m.format(makeFormat(m)), 'Today + ' + i + ' days beginning of day'); - m.hours(23).minutes(59).seconds(59).milliseconds(999); - assert.equal(m.calendar(), m.format(makeFormat(m)), 'Today + ' + i + ' days end of day'); - } -}); - -test('calendar last week', function (assert) { - var i, m; - - function makeFormat(d) { - switch (d.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'; - } - } - - for (i = 2; i < 7; i++) { - m = moment().subtract({d: i}); - assert.equal(m.calendar(), m.format(makeFormat(m)), 'Today - ' + i + ' days current time'); - m.hours(0).minutes(0).seconds(0).milliseconds(0); - assert.equal(m.calendar(), m.format(makeFormat(m)), 'Today - ' + i + ' days beginning of day'); - m.hours(23).minutes(59).seconds(59).milliseconds(999); - assert.equal(m.calendar(), m.format(makeFormat(m)), 'Today - ' + i + ' days end of day'); - } -}); - -test('calendar all else', function (assert) { - var weeksAgo = moment().subtract({w: 1}), - weeksFromNow = moment().add({w: 1}); - - assert.equal(weeksAgo.calendar(), weeksAgo.format('L'), '1 week ago'); - assert.equal(weeksFromNow.calendar(), weeksFromNow.format('L'), 'in 1 week'); - - weeksAgo = moment().subtract({w: 2}); - weeksFromNow = moment().add({w: 2}); - - assert.equal(weeksAgo.calendar(), weeksAgo.format('L'), '2 weeks ago'); - assert.equal(weeksFromNow.calendar(), weeksFromNow.format('L'), 'in 2 weeks'); -}); - -test('weeks year starting sunday formatted', function (assert) { - assert.equal(moment([2011, 11, 26]).format('w ww wo'), '1 01 1.', 'Dec 26 2011 should be week 1'); - assert.equal(moment([2012, 0, 1]).format('w ww wo'), '1 01 1.', 'Jan 1 2012 should be week 1'); - assert.equal(moment([2012, 0, 2]).format('w ww wo'), '2 02 2.', 'Jan 2 2012 should be week 2'); - assert.equal(moment([2012, 0, 8]).format('w ww wo'), '2 02 2.', 'Jan 8 2012 should be week 2'); - assert.equal(moment([2012, 0, 9]).format('w ww wo'), '3 03 3.', 'Jan 9 2012 should be week 3'); -}); - -}))); - - -;(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' - && typeof require === 'function' ? factory(require('../../moment')) : - typeof define === 'function' && define.amd ? define(['../../moment'], factory) : - factory(global.moment) -}(this, (function (moment) { 'use strict'; - -function each(array, callback) { - var i; - for (i = 0; i < array.length; i++) { - callback(array[i], i, array); - } -} - -function objectKeys(obj) { - if (Object.keys) { - return Object.keys(obj); - } else { - // IE8 - var res = [], i; - for (i in obj) { - if (obj.hasOwnProperty(i)) { - res.push(i); - } - } - return res; - } -} - -// Pick the first defined of two or three arguments. - -function defineCommonLocaleTests(locale, options) { - test('lenient day of month ordinal parsing', function (assert) { - var i, ordinalStr, testMoment; - for (i = 1; i <= 31; ++i) { - ordinalStr = moment([2014, 0, i]).format('YYYY MM Do'); - testMoment = moment(ordinalStr, 'YYYY MM Do'); - assert.equal(testMoment.year(), 2014, - 'lenient day of month ordinal parsing ' + i + ' year check'); - assert.equal(testMoment.month(), 0, - 'lenient day of month ordinal parsing ' + i + ' month check'); - assert.equal(testMoment.date(), i, - 'lenient day of month ordinal parsing ' + i + ' date check'); - } - }); - - test('lenient day of month ordinal parsing of number', function (assert) { - var i, testMoment; - for (i = 1; i <= 31; ++i) { - testMoment = moment('2014 01 ' + i, 'YYYY MM Do'); - assert.equal(testMoment.year(), 2014, - 'lenient day of month ordinal parsing of number ' + i + ' year check'); - assert.equal(testMoment.month(), 0, - 'lenient day of month ordinal parsing of number ' + i + ' month check'); - assert.equal(testMoment.date(), i, - 'lenient day of month ordinal parsing of number ' + i + ' date check'); - } - }); - - test('strict day of month ordinal parsing', function (assert) { - var i, ordinalStr, testMoment; - for (i = 1; i <= 31; ++i) { - ordinalStr = moment([2014, 0, i]).format('YYYY MM Do'); - testMoment = moment(ordinalStr, 'YYYY MM Do', true); - assert.ok(testMoment.isValid(), 'strict day of month ordinal parsing ' + i); - } - }); - - test('meridiem invariant', function (assert) { - var h, m, t1, t2; - for (h = 0; h < 24; ++h) { - for (m = 0; m < 60; m += 15) { - t1 = moment.utc([2000, 0, 1, h, m]); - t2 = moment.utc(t1.format('A h:mm'), 'A h:mm'); - assert.equal(t2.format('HH:mm'), t1.format('HH:mm'), - 'meridiem at ' + t1.format('HH:mm')); - } - } - }); - - test('date format correctness', function (assert) { - var data, tokens; - data = moment.localeData()._longDateFormat; - tokens = objectKeys(data); - each(tokens, function (srchToken) { - // Check each format string to make sure it does not contain any - // tokens that need to be expanded. - each(tokens, function (baseToken) { - // strip escaped sequences - var format = data[baseToken].replace(/(\[[^\]]*\])/g, ''); - assert.equal(false, !!~format.indexOf(srchToken), - 'contains ' + srchToken + ' in ' + baseToken); - }); - }); - }); - - test('month parsing correctness', function (assert) { - var i, m; - - if (locale === 'tr') { - // I can't fix it :( - expect(0); - return; - } - function tester(format) { - var r; - r = moment(m.format(format), format); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format); - r = moment(m.format(format).toLocaleUpperCase(), format); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' upper'); - r = moment(m.format(format).toLocaleLowerCase(), format); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' lower'); - - r = moment(m.format(format), format, true); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' strict'); - r = moment(m.format(format).toLocaleUpperCase(), format, true); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' upper strict'); - r = moment(m.format(format).toLocaleLowerCase(), format, true); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' lower strict'); - } - - for (i = 0; i < 12; ++i) { - m = moment([2015, i, 15, 18]); - tester('MMM'); - tester('MMM.'); - tester('MMMM'); - tester('MMMM.'); - } - }); - - test('weekday parsing correctness', function (assert) { - var i, m; - - if (locale === 'tr' || locale === 'az' || locale === 'ro') { - // tr, az: There is a lower-case letter (ı), that converted to - // upper then lower changes to i - // ro: there is the letter ț which behaves weird under IE8 - expect(0); - return; - } - function tester(format) { - var r, baseMsg = 'weekday ' + m.weekday() + ' fmt ' + format + ' ' + m.toISOString(); - r = moment(m.format(format), format); - assert.equal(r.weekday(), m.weekday(), baseMsg); - r = moment(m.format(format).toLocaleUpperCase(), format); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' upper'); - r = moment(m.format(format).toLocaleLowerCase(), format); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' lower'); - - r = moment(m.format(format), format, true); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' strict'); - r = moment(m.format(format).toLocaleUpperCase(), format, true); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' upper strict'); - r = moment(m.format(format).toLocaleLowerCase(), format, true); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' lower strict'); - } - - for (i = 0; i < 7; ++i) { - m = moment.utc([2015, 0, i + 1, 18]); - tester('dd'); - tester('ddd'); - tester('dddd'); - } - }); - - test('valid localeData', function (assert) { - assert.equal(moment().localeData().months().length, 12, 'months should return 12 months'); - assert.equal(moment().localeData().monthsShort().length, 12, 'monthsShort should return 12 months'); - assert.equal(moment().localeData().weekdays().length, 7, 'weekdays should return 7 days'); - assert.equal(moment().localeData().weekdaysShort().length, 7, 'weekdaysShort should return 7 days'); - assert.equal(moment().localeData().weekdaysMin().length, 7, 'monthsShort should return 7 days'); - }); -} - -function setupDeprecationHandler(test, moment$$1, scope) { - test._expectedDeprecations = null; - test._observedDeprecations = null; - test._oldSupress = moment$$1.suppressDeprecationWarnings; - moment$$1.suppressDeprecationWarnings = true; - test.expectedDeprecations = function () { - test._expectedDeprecations = arguments; - test._observedDeprecations = []; - }; - moment$$1.deprecationHandler = function (name, msg) { - var deprecationId = matchedDeprecation(name, msg, test._expectedDeprecations); - if (deprecationId === -1) { - throw new Error('Unexpected deprecation thrown name=' + - name + ' msg=' + msg); - } - test._observedDeprecations[deprecationId] = 1; - }; -} - -function teardownDeprecationHandler(test, moment$$1, scope) { - moment$$1.suppressDeprecationWarnings = test._oldSupress; - - if (test._expectedDeprecations != null) { - var missedDeprecations = []; - each(test._expectedDeprecations, function (deprecationPattern, id) { - if (test._observedDeprecations[id] !== 1) { - missedDeprecations.push(deprecationPattern); - } - }); - if (missedDeprecations.length !== 0) { - throw new Error('Expected deprecation warnings did not happen: ' + - missedDeprecations.join(' ')); - } - } -} - -function matchedDeprecation(name, msg, deprecations) { - if (deprecations == null) { - return -1; - } - for (var i = 0; i < deprecations.length; ++i) { - if (name != null && name === deprecations[i]) { - return i; - } - if (msg != null && msg.substring(0, deprecations[i].length) === deprecations[i]) { - return i; - } - } - return -1; -} - -/*global QUnit:false*/ - -var test = QUnit.test; - -var expect = QUnit.expect; - - - -function localeModule (name, lifecycle) { - QUnit.module('locale:' + name, { - setup : function () { - moment.locale(name); - moment.createFromInputFallback = function (config) { - throw new Error('input not handled by moment: ' + config._i); - }; - setupDeprecationHandler(test, moment, 'locale'); - if (lifecycle && lifecycle.setup) { - lifecycle.setup(); - } - }, - teardown : function () { - moment.locale('en'); - teardownDeprecationHandler(test, moment, 'locale'); - if (lifecycle && lifecycle.teardown) { - lifecycle.teardown(); - } - } - }); - defineCommonLocaleTests(name, -1, -1); -} - -localeModule('hu'); - -test('parse', function (assert) { - var tests = 'január jan_február feb_március márc_április ápr_május máj_június jún_július júl_augusztus aug_szeptember szept_október okt_november nov_december dec'.split('_'), - i; - function equalTest(input, mmm, i) { - assert.equal(moment(input, mmm).month(), i, input + ' should be month ' + (i + 1)); - } - for (i = 0; i < 12; i++) { - tests[i] = tests[i].split(' '); - equalTest(tests[i][0], 'MMM', i); - equalTest(tests[i][1], 'MMM', i); - equalTest(tests[i][0], 'MMMM', i); - equalTest(tests[i][1], 'MMMM', i); - equalTest(tests[i][0].toLocaleLowerCase(), 'MMMM', i); - equalTest(tests[i][1].toLocaleLowerCase(), 'MMMM', i); - equalTest(tests[i][0].toLocaleUpperCase(), 'MMMM', i); - equalTest(tests[i][1].toLocaleUpperCase(), 'MMMM', i); - } -}); - -test('format', function (assert) { - var a = [ - ['dddd, MMMM Do YYYY, HH:mm:ss', 'vasárnap, február 14. 2010, 15:25:50'], - ['ddd, HH', 'vas, 15'], - ['M Mo MM MMMM MMM', '2 2. 02 február feb'], - ['YYYY YY', '2010 10'], - ['D Do DD', '14 14. 14'], - ['d do dddd ddd dd', '0 0. vasárnap vas v'], - ['DDD DDDo DDDD', '45 45. 045'], - ['w wo ww', '6 6. 06'], - ['H HH', '15 15'], - ['m mm', '25 25'], - ['s ss', '50 50'], - ['[az év] DDDo [napja]', 'az év 45. napja'], - ['LTS', '15:25:50'], - ['L', '2010.02.14.'], - ['LL', '2010. február 14.'], - ['LLL', '2010. február 14. 15:25'], - ['LLLL', '2010. február 14., vasárnap 15:25'], - ['l', '2010.2.14.'], - ['ll', '2010. feb 14.'], - ['lll', '2010. feb 14. 15:25'], - ['llll', '2010. feb 14., vas 15:25'] - ], - b = moment(new Date(2010, 1, 14, 15, 25, 50, 125)), - i; - for (i = 0; i < a.length; i++) { - assert.equal(b.format(a[i][0]), a[i][1], a[i][0] + ' ---> ' + a[i][1]); - } -}); - -test('meridiem', function (assert) { - assert.equal(moment([2011, 2, 23, 0, 0]).format('a'), 'de', 'am'); - assert.equal(moment([2011, 2, 23, 11, 59]).format('a'), 'de', 'am'); - assert.equal(moment([2011, 2, 23, 12, 0]).format('a'), 'du', 'pm'); - assert.equal(moment([2011, 2, 23, 23, 59]).format('a'), 'du', 'pm'); - - assert.equal(moment([2011, 2, 23, 0, 0]).format('A'), 'DE', 'AM'); - assert.equal(moment([2011, 2, 23, 11, 59]).format('A'), 'DE', 'AM'); - assert.equal(moment([2011, 2, 23, 12, 0]).format('A'), 'DU', 'PM'); - assert.equal(moment([2011, 2, 23, 23, 59]).format('A'), 'DU', 'PM'); -}); - -test('format ordinal', function (assert) { - assert.equal(moment([2011, 0, 1]).format('DDDo'), '1.', '1.'); - assert.equal(moment([2011, 0, 2]).format('DDDo'), '2.', '2.'); - assert.equal(moment([2011, 0, 3]).format('DDDo'), '3.', '3.'); - assert.equal(moment([2011, 0, 4]).format('DDDo'), '4.', '4.'); - assert.equal(moment([2011, 0, 5]).format('DDDo'), '5.', '5.'); - assert.equal(moment([2011, 0, 6]).format('DDDo'), '6.', '6.'); - assert.equal(moment([2011, 0, 7]).format('DDDo'), '7.', '7.'); - assert.equal(moment([2011, 0, 8]).format('DDDo'), '8.', '8.'); - assert.equal(moment([2011, 0, 9]).format('DDDo'), '9.', '9.'); - assert.equal(moment([2011, 0, 10]).format('DDDo'), '10.', '10.'); - - assert.equal(moment([2011, 0, 11]).format('DDDo'), '11.', '11.'); - assert.equal(moment([2011, 0, 12]).format('DDDo'), '12.', '12.'); - assert.equal(moment([2011, 0, 13]).format('DDDo'), '13.', '13.'); - assert.equal(moment([2011, 0, 14]).format('DDDo'), '14.', '14.'); - assert.equal(moment([2011, 0, 15]).format('DDDo'), '15.', '15.'); - assert.equal(moment([2011, 0, 16]).format('DDDo'), '16.', '16.'); - assert.equal(moment([2011, 0, 17]).format('DDDo'), '17.', '17.'); - assert.equal(moment([2011, 0, 18]).format('DDDo'), '18.', '18.'); - assert.equal(moment([2011, 0, 19]).format('DDDo'), '19.', '19.'); - assert.equal(moment([2011, 0, 20]).format('DDDo'), '20.', '20.'); - - assert.equal(moment([2011, 0, 21]).format('DDDo'), '21.', '21.'); - assert.equal(moment([2011, 0, 22]).format('DDDo'), '22.', '22.'); - assert.equal(moment([2011, 0, 23]).format('DDDo'), '23.', '23.'); - assert.equal(moment([2011, 0, 24]).format('DDDo'), '24.', '24.'); - assert.equal(moment([2011, 0, 25]).format('DDDo'), '25.', '25.'); - assert.equal(moment([2011, 0, 26]).format('DDDo'), '26.', '26.'); - assert.equal(moment([2011, 0, 27]).format('DDDo'), '27.', '27.'); - assert.equal(moment([2011, 0, 28]).format('DDDo'), '28.', '28.'); - assert.equal(moment([2011, 0, 29]).format('DDDo'), '29.', '29.'); - assert.equal(moment([2011, 0, 30]).format('DDDo'), '30.', '30.'); - - assert.equal(moment([2011, 0, 31]).format('DDDo'), '31.', '31.'); -}); - -test('format month', function (assert) { - var expected = 'január jan_február feb_március márc_április ápr_május máj_június jún_július júl_augusztus aug_szeptember szept_október okt_november nov_december dec'.split('_'), - i; - for (i = 0; i < expected.length; i++) { - assert.equal(moment([2011, i, 1]).format('MMMM MMM'), expected[i], expected[i]); - } -}); - -test('format week', function (assert) { - var expected = 'vasárnap vas_hétfő hét_kedd kedd_szerda sze_csütörtök csüt_péntek pén_szombat szo'.split('_'), - i; - for (i = 0; i < expected.length; i++) { - assert.equal(moment([2011, 0, 2 + i]).format('dddd ddd'), expected[i], expected[i]); - } -}); - -test('from', function (assert) { - var start = moment([2007, 1, 28]); - assert.equal(start.from(moment([2007, 1, 28]).add({s: 44}), true), 'néhány másodperc', '44 másodperc = néhány másodperc'); - assert.equal(start.from(moment([2007, 1, 28]).add({s: 45}), true), 'egy perc', '45 másodperc = egy perc'); - assert.equal(start.from(moment([2007, 1, 28]).add({s: 89}), true), 'egy perc', '89 másodperc = egy perc'); - assert.equal(start.from(moment([2007, 1, 28]).add({s: 90}), true), '2 perc', '90 másodperc = 2 perc'); - assert.equal(start.from(moment([2007, 1, 28]).add({m: 44}), true), '44 perc', '44 perc = 44 perc'); - assert.equal(start.from(moment([2007, 1, 28]).add({m: 45}), true), 'egy óra', '45 perc = egy óra'); - assert.equal(start.from(moment([2007, 1, 28]).add({m: 89}), true), 'egy óra', '89 perc = egy óra'); - assert.equal(start.from(moment([2007, 1, 28]).add({m: 90}), true), '2 óra', '90 perc = 2 óra'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 5}), true), '5 óra', '5 óra = 5 óra'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 21}), true), '21 óra', '21 óra = 21 óra'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 22}), true), 'egy nap', '22 óra = egy nap'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 35}), true), 'egy nap', '35 óra = egy nap'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 36}), true), '2 nap', '36 óra = 2 nap'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 1}), true), 'egy nap', '1 nap = egy nap'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 5}), true), '5 nap', '5 nap = 5 nap'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 25}), true), '25 nap', '25 nap = 25 nap'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 26}), true), 'egy hónap', '26 nap = egy hónap'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 30}), true), 'egy hónap', '30 nap = egy hónap'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 43}), true), 'egy hónap', '45 nap = egy hónap'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 46}), true), '2 hónap', '46 nap = 2 hónap'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 74}), true), '2 hónap', '75 nap = 2 hónap'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 76}), true), '3 hónap', '76 nap = 3 hónap'); - assert.equal(start.from(moment([2007, 1, 28]).add({M: 1}), true), 'egy hónap', '1 hónap = egy hónap'); - assert.equal(start.from(moment([2007, 1, 28]).add({M: 5}), true), '5 hónap', '5 hónap = 5 hónap'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 345}), true), 'egy év', '345 nap = egy év'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 548}), true), '2 év', '548 nap = 2 év'); - assert.equal(start.from(moment([2007, 1, 28]).add({y: 1}), true), 'egy év', '1 év = egy év'); - assert.equal(start.from(moment([2007, 1, 28]).add({y: 5}), true), '5 év', '5 év = 5 év'); -}); - -test('suffix', function (assert) { - assert.equal(moment(30000).from(0), 'néhány másodperc múlva', 'prefix'); - assert.equal(moment(0).from(30000), 'néhány másodperce', 'suffix'); -}); - -test('now from now', function (assert) { - assert.equal(moment().fromNow(), 'néhány másodperce', 'now from now should display as in the past'); -}); - -test('fromNow', function (assert) { - assert.equal(moment().add({s: 30}).fromNow(), 'néhány másodperc múlva', 'néhány másodperc múlva'); - assert.equal(moment().add({d: 5}).fromNow(), '5 nap múlva', '5 nap múlva'); -}); - -test('calendar day', function (assert) { - var a = moment().hours(12).minutes(0).seconds(0); - - assert.equal(moment(a).calendar(), 'ma 12:00-kor', 'today at the same time'); - assert.equal(moment(a).add({m: 25}).calendar(), 'ma 12:25-kor', 'Now plus 25 min'); - assert.equal(moment(a).add({h: 1}).calendar(), 'ma 13:00-kor', 'Now plus 1 hour'); - assert.equal(moment(a).add({d: 1}).calendar(), 'holnap 12:00-kor', 'tomorrow at the same time'); - assert.equal(moment(a).subtract({h: 1}).calendar(), 'ma 11:00-kor', 'Now minus 1 hour'); - assert.equal(moment(a).subtract({d: 1}).calendar(), 'tegnap 12:00-kor', 'yesterday at the same time'); -}); - -test('calendar next week', function (assert) { - var i, m, days = 'vasárnap_hétfőn_kedden_szerdán_csütörtökön_pénteken_szombaton'.split('_'); - for (i = 2; i < 7; i++) { - m = moment().add({d: i}); - assert.equal(m.calendar(), m.format('[' + days[m.day()] + '] LT[-kor]'), 'today + ' + i + ' days current time'); - m.hours(0).minutes(0).seconds(0).milliseconds(0); - assert.equal(m.calendar(), m.format('[' + days[m.day()] + '] LT[-kor]'), 'today + ' + i + ' days beginning of day'); - m.hours(23).minutes(59).seconds(59).milliseconds(999); - assert.equal(m.calendar(), m.format('[' + days[m.day()] + '] LT[-kor]'), 'today + ' + i + ' days end of day'); - } -}); - -test('calendar last week', function (assert) { - var i, m, days = 'vasárnap_hétfőn_kedden_szerdán_csütörtökön_pénteken_szombaton'.split('_'); - - for (i = 2; i < 7; i++) { - m = moment().subtract({d: i}); - assert.equal(m.calendar(), m.format('[múlt ' + days[m.day()] + '] LT[-kor]'), 'today - ' + i + ' days current time'); - m.hours(0).minutes(0).seconds(0).milliseconds(0); - assert.equal(m.calendar(), m.format('[múlt ' + days[m.day()] + '] LT[-kor]'), 'today - ' + i + ' days beginning of day'); - m.hours(23).minutes(59).seconds(59).milliseconds(999); - assert.equal(m.calendar(), m.format('[múlt ' + days[m.day()] + '] LT[-kor]'), 'today - ' + i + ' days end of day'); - } -}); - -test('calendar all else', function (assert) { - var weeksAgo = moment().subtract({w: 1}), - weeksFromNow = moment().add({w: 1}); - - assert.equal(weeksAgo.calendar(), weeksAgo.format('L'), 'egy héte'); - assert.equal(weeksFromNow.calendar(), weeksFromNow.format('L'), 'egy hét múlva'); - - weeksAgo = moment().subtract({w: 2}); - weeksFromNow = moment().add({w: 2}); - - assert.equal(weeksAgo.calendar(), weeksAgo.format('L'), '2 hete'); - assert.equal(weeksFromNow.calendar(), weeksFromNow.format('L'), '2 hét múlva'); -}); - -test('weeks year starting sunday formatted', function (assert) { - assert.equal(moment([2011, 11, 26]).format('w ww wo'), '52 52 52.', 'Dec 26 2011 should be week 52'); - assert.equal(moment([2012, 0, 1]).format('w ww wo'), '52 52 52.', 'Jan 1 2012 should be week 52'); - assert.equal(moment([2012, 0, 2]).format('w ww wo'), '1 01 1.', 'Jan 2 2012 should be week 1'); - assert.equal(moment([2012, 0, 8]).format('w ww wo'), '1 01 1.', 'Jan 8 2012 should be week 1'); - assert.equal(moment([2012, 0, 9]).format('w ww wo'), '2 02 2.', 'Jan 9 2012 should be week 2'); -}); - -}))); - - -;(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' - && typeof require === 'function' ? factory(require('../../moment')) : - typeof define === 'function' && define.amd ? define(['../../moment'], factory) : - factory(global.moment) -}(this, (function (moment) { 'use strict'; - -function each(array, callback) { - var i; - for (i = 0; i < array.length; i++) { - callback(array[i], i, array); - } -} - -function objectKeys(obj) { - if (Object.keys) { - return Object.keys(obj); - } else { - // IE8 - var res = [], i; - for (i in obj) { - if (obj.hasOwnProperty(i)) { - res.push(i); - } - } - return res; - } -} - -// Pick the first defined of two or three arguments. - -function defineCommonLocaleTests(locale, options) { - test('lenient day of month ordinal parsing', function (assert) { - var i, ordinalStr, testMoment; - for (i = 1; i <= 31; ++i) { - ordinalStr = moment([2014, 0, i]).format('YYYY MM Do'); - testMoment = moment(ordinalStr, 'YYYY MM Do'); - assert.equal(testMoment.year(), 2014, - 'lenient day of month ordinal parsing ' + i + ' year check'); - assert.equal(testMoment.month(), 0, - 'lenient day of month ordinal parsing ' + i + ' month check'); - assert.equal(testMoment.date(), i, - 'lenient day of month ordinal parsing ' + i + ' date check'); - } - }); - - test('lenient day of month ordinal parsing of number', function (assert) { - var i, testMoment; - for (i = 1; i <= 31; ++i) { - testMoment = moment('2014 01 ' + i, 'YYYY MM Do'); - assert.equal(testMoment.year(), 2014, - 'lenient day of month ordinal parsing of number ' + i + ' year check'); - assert.equal(testMoment.month(), 0, - 'lenient day of month ordinal parsing of number ' + i + ' month check'); - assert.equal(testMoment.date(), i, - 'lenient day of month ordinal parsing of number ' + i + ' date check'); - } - }); - - test('strict day of month ordinal parsing', function (assert) { - var i, ordinalStr, testMoment; - for (i = 1; i <= 31; ++i) { - ordinalStr = moment([2014, 0, i]).format('YYYY MM Do'); - testMoment = moment(ordinalStr, 'YYYY MM Do', true); - assert.ok(testMoment.isValid(), 'strict day of month ordinal parsing ' + i); - } - }); - - test('meridiem invariant', function (assert) { - var h, m, t1, t2; - for (h = 0; h < 24; ++h) { - for (m = 0; m < 60; m += 15) { - t1 = moment.utc([2000, 0, 1, h, m]); - t2 = moment.utc(t1.format('A h:mm'), 'A h:mm'); - assert.equal(t2.format('HH:mm'), t1.format('HH:mm'), - 'meridiem at ' + t1.format('HH:mm')); - } - } - }); - - test('date format correctness', function (assert) { - var data, tokens; - data = moment.localeData()._longDateFormat; - tokens = objectKeys(data); - each(tokens, function (srchToken) { - // Check each format string to make sure it does not contain any - // tokens that need to be expanded. - each(tokens, function (baseToken) { - // strip escaped sequences - var format = data[baseToken].replace(/(\[[^\]]*\])/g, ''); - assert.equal(false, !!~format.indexOf(srchToken), - 'contains ' + srchToken + ' in ' + baseToken); - }); - }); - }); - - test('month parsing correctness', function (assert) { - var i, m; - - if (locale === 'tr') { - // I can't fix it :( - expect(0); - return; - } - function tester(format) { - var r; - r = moment(m.format(format), format); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format); - r = moment(m.format(format).toLocaleUpperCase(), format); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' upper'); - r = moment(m.format(format).toLocaleLowerCase(), format); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' lower'); - - r = moment(m.format(format), format, true); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' strict'); - r = moment(m.format(format).toLocaleUpperCase(), format, true); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' upper strict'); - r = moment(m.format(format).toLocaleLowerCase(), format, true); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' lower strict'); - } - - for (i = 0; i < 12; ++i) { - m = moment([2015, i, 15, 18]); - tester('MMM'); - tester('MMM.'); - tester('MMMM'); - tester('MMMM.'); - } - }); - - test('weekday parsing correctness', function (assert) { - var i, m; - - if (locale === 'tr' || locale === 'az' || locale === 'ro') { - // tr, az: There is a lower-case letter (ı), that converted to - // upper then lower changes to i - // ro: there is the letter ț which behaves weird under IE8 - expect(0); - return; - } - function tester(format) { - var r, baseMsg = 'weekday ' + m.weekday() + ' fmt ' + format + ' ' + m.toISOString(); - r = moment(m.format(format), format); - assert.equal(r.weekday(), m.weekday(), baseMsg); - r = moment(m.format(format).toLocaleUpperCase(), format); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' upper'); - r = moment(m.format(format).toLocaleLowerCase(), format); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' lower'); - - r = moment(m.format(format), format, true); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' strict'); - r = moment(m.format(format).toLocaleUpperCase(), format, true); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' upper strict'); - r = moment(m.format(format).toLocaleLowerCase(), format, true); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' lower strict'); - } - - for (i = 0; i < 7; ++i) { - m = moment.utc([2015, 0, i + 1, 18]); - tester('dd'); - tester('ddd'); - tester('dddd'); - } - }); - - test('valid localeData', function (assert) { - assert.equal(moment().localeData().months().length, 12, 'months should return 12 months'); - assert.equal(moment().localeData().monthsShort().length, 12, 'monthsShort should return 12 months'); - assert.equal(moment().localeData().weekdays().length, 7, 'weekdays should return 7 days'); - assert.equal(moment().localeData().weekdaysShort().length, 7, 'weekdaysShort should return 7 days'); - assert.equal(moment().localeData().weekdaysMin().length, 7, 'monthsShort should return 7 days'); - }); -} - -function setupDeprecationHandler(test, moment$$1, scope) { - test._expectedDeprecations = null; - test._observedDeprecations = null; - test._oldSupress = moment$$1.suppressDeprecationWarnings; - moment$$1.suppressDeprecationWarnings = true; - test.expectedDeprecations = function () { - test._expectedDeprecations = arguments; - test._observedDeprecations = []; - }; - moment$$1.deprecationHandler = function (name, msg) { - var deprecationId = matchedDeprecation(name, msg, test._expectedDeprecations); - if (deprecationId === -1) { - throw new Error('Unexpected deprecation thrown name=' + - name + ' msg=' + msg); - } - test._observedDeprecations[deprecationId] = 1; - }; -} - -function teardownDeprecationHandler(test, moment$$1, scope) { - moment$$1.suppressDeprecationWarnings = test._oldSupress; - - if (test._expectedDeprecations != null) { - var missedDeprecations = []; - each(test._expectedDeprecations, function (deprecationPattern, id) { - if (test._observedDeprecations[id] !== 1) { - missedDeprecations.push(deprecationPattern); - } - }); - if (missedDeprecations.length !== 0) { - throw new Error('Expected deprecation warnings did not happen: ' + - missedDeprecations.join(' ')); - } - } -} - -function matchedDeprecation(name, msg, deprecations) { - if (deprecations == null) { - return -1; - } - for (var i = 0; i < deprecations.length; ++i) { - if (name != null && name === deprecations[i]) { - return i; - } - if (msg != null && msg.substring(0, deprecations[i].length) === deprecations[i]) { - return i; - } - } - return -1; -} - -/*global QUnit:false*/ - -var test = QUnit.test; - -var expect = QUnit.expect; - - - -function localeModule (name, lifecycle) { - QUnit.module('locale:' + name, { - setup : function () { - moment.locale(name); - moment.createFromInputFallback = function (config) { - throw new Error('input not handled by moment: ' + config._i); - }; - setupDeprecationHandler(test, moment, 'locale'); - if (lifecycle && lifecycle.setup) { - lifecycle.setup(); - } - }, - teardown : function () { - moment.locale('en'); - teardownDeprecationHandler(test, moment, 'locale'); - if (lifecycle && lifecycle.teardown) { - lifecycle.teardown(); - } - } - }); - defineCommonLocaleTests(name, -1, -1); -} - -localeModule('hy-am'); - -test('parse', function (assert) { - var tests = 'հունվար հնվ_փետրվար փտր_մարտ մրտ_ապրիլ ապր_մայիս մյս_հունիս հնս_հուլիս հլս_օգոստոս օգս_սեպտեմբեր սպտ_հոկտեմբեր հկտ_նոյեմբեր նմբ_դեկտեմբեր դկտ'.split('_'), i; - function equalTest(input, mmm, i) { - assert.equal(moment(input, mmm).month(), i, input + ' should be month ' + (i + 1)); - } - for (i = 0; i < 12; i++) { - tests[i] = tests[i].split(' '); - equalTest(tests[i][0], 'MMM', i); - equalTest(tests[i][1], 'MMM', i); - equalTest(tests[i][0], 'MMMM', i); - equalTest(tests[i][1], 'MMMM', i); - equalTest(tests[i][0].toLocaleLowerCase(), 'MMMM', i); - equalTest(tests[i][1].toLocaleLowerCase(), 'MMMM', i); - equalTest(tests[i][0].toLocaleUpperCase(), 'MMMM', i); - equalTest(tests[i][1].toLocaleUpperCase(), 'MMMM', i); - } -}); - -test('parse exceptional case', function (assert) { - assert.equal(moment('11 մայիսի 1989', ['DD MMMM YYYY']).format('DD-MM-YYYY'), '11-05-1989'); -}); - -test('format', function (assert) { - var a = [ - ['dddd, Do MMMM YYYY, HH:mm:ss', 'կիրակի, 14 փետրվարի 2010, 15:25:50'], - ['ddd, h A', 'կրկ, 3 ցերեկվա'], - ['M Mo MM MMMM MMM', '2 2 02 փետրվար փտր'], - ['YYYY YY', '2010 10'], - ['D Do DD', '14 14 14'], - ['d do dddd ddd dd', '0 0 կիրակի կրկ կրկ'], - ['DDD DDDo DDDD', '45 45-րդ 045'], - ['w wo ww', '7 7-րդ 07'], - ['h hh', '3 03'], - ['H HH', '15 15'], - ['m mm', '25 25'], - ['s ss', '50 50'], - ['a A', 'ցերեկվա ցերեկվա'], - ['[տարվա] DDDo [օրը]', 'տարվա 45-րդ օրը'], - ['LTS', '15:25:50'], - ['L', '14.02.2010'], - ['LL', '14 փետրվարի 2010 թ.'], - ['LLL', '14 փետրվարի 2010 թ., 15:25'], - ['LLLL', 'կիրակի, 14 փետրվարի 2010 թ., 15:25'], - ['l', '14.2.2010'], - ['ll', '14 փտր 2010 թ.'], - ['lll', '14 փտր 2010 թ., 15:25'], - ['llll', 'կրկ, 14 փտր 2010 թ., 15:25'] - ], - b = moment(new Date(2010, 1, 14, 15, 25, 50, 125)), - i; - for (i = 0; i < a.length; i++) { - assert.equal(b.format(a[i][0]), a[i][1], a[i][0] + ' ---> ' + a[i][1]); - } -}); - -test('format meridiem', function (assert) { - assert.equal(moment([2012, 11, 28, 0, 0]).format('A'), 'գիշերվա', 'night'); - assert.equal(moment([2012, 11, 28, 3, 59]).format('A'), 'գիշերվա', 'night'); - assert.equal(moment([2012, 11, 28, 4, 0]).format('A'), 'առավոտվա', 'morning'); - assert.equal(moment([2012, 11, 28, 11, 59]).format('A'), 'առավոտվա', 'morning'); - assert.equal(moment([2012, 11, 28, 12, 0]).format('A'), 'ցերեկվա', 'afternoon'); - assert.equal(moment([2012, 11, 28, 16, 59]).format('A'), 'ցերեկվա', 'afternoon'); - assert.equal(moment([2012, 11, 28, 17, 0]).format('A'), 'երեկոյան', 'evening'); - assert.equal(moment([2012, 11, 28, 23, 59]).format('A'), 'երեկոյան', 'evening'); -}); - -test('format ordinal', function (assert) { - assert.equal(moment([2011, 0, 1]).format('DDDo'), '1-ին', '1-ին'); - assert.equal(moment([2011, 0, 2]).format('DDDo'), '2-րդ', '2-րդ'); - assert.equal(moment([2011, 0, 3]).format('DDDo'), '3-րդ', '3-րդ'); - assert.equal(moment([2011, 0, 4]).format('DDDo'), '4-րդ', '4-րդ'); - assert.equal(moment([2011, 0, 5]).format('DDDo'), '5-րդ', '5-րդ'); - assert.equal(moment([2011, 0, 6]).format('DDDo'), '6-րդ', '6-րդ'); - assert.equal(moment([2011, 0, 7]).format('DDDo'), '7-րդ', '7-րդ'); - assert.equal(moment([2011, 0, 8]).format('DDDo'), '8-րդ', '8-րդ'); - assert.equal(moment([2011, 0, 9]).format('DDDo'), '9-րդ', '9-րդ'); - assert.equal(moment([2011, 0, 10]).format('DDDo'), '10-րդ', '10-րդ'); - - assert.equal(moment([2011, 0, 11]).format('DDDo'), '11-րդ', '11-րդ'); - assert.equal(moment([2011, 0, 12]).format('DDDo'), '12-րդ', '12-րդ'); - assert.equal(moment([2011, 0, 13]).format('DDDo'), '13-րդ', '13-րդ'); - assert.equal(moment([2011, 0, 14]).format('DDDo'), '14-րդ', '14-րդ'); - assert.equal(moment([2011, 0, 15]).format('DDDo'), '15-րդ', '15-րդ'); - assert.equal(moment([2011, 0, 16]).format('DDDo'), '16-րդ', '16-րդ'); - assert.equal(moment([2011, 0, 17]).format('DDDo'), '17-րդ', '17-րդ'); - assert.equal(moment([2011, 0, 18]).format('DDDo'), '18-րդ', '18-րդ'); - assert.equal(moment([2011, 0, 19]).format('DDDo'), '19-րդ', '19-րդ'); - assert.equal(moment([2011, 0, 20]).format('DDDo'), '20-րդ', '20-րդ'); - - assert.equal(moment([2011, 0, 21]).format('DDDo'), '21-րդ', '21-րդ'); - assert.equal(moment([2011, 0, 22]).format('DDDo'), '22-րդ', '22-րդ'); - assert.equal(moment([2011, 0, 23]).format('DDDo'), '23-րդ', '23-րդ'); - assert.equal(moment([2011, 0, 24]).format('DDDo'), '24-րդ', '24-րդ'); - assert.equal(moment([2011, 0, 25]).format('DDDo'), '25-րդ', '25-րդ'); - assert.equal(moment([2011, 0, 26]).format('DDDo'), '26-րդ', '26-րդ'); - assert.equal(moment([2011, 0, 27]).format('DDDo'), '27-րդ', '27-րդ'); - assert.equal(moment([2011, 0, 28]).format('DDDo'), '28-րդ', '28-րդ'); - assert.equal(moment([2011, 0, 29]).format('DDDo'), '29-րդ', '29-րդ'); - assert.equal(moment([2011, 0, 30]).format('DDDo'), '30-րդ', '30-րդ'); - - assert.equal(moment([2011, 0, 31]).format('DDDo'), '31-րդ', '31-րդ'); -}); - -test('format month', function (assert) { - var expected = 'հունվար հնվ_փետրվար փտր_մարտ մրտ_ապրիլ ապր_մայիս մյս_հունիս հնս_հուլիս հլս_օգոստոս օգս_սեպտեմբեր սպտ_հոկտեմբեր հկտ_նոյեմբեր նմբ_դեկտեմբեր դկտ'.split('_'), i; - for (i = 0; i < expected.length; i++) { - assert.equal(moment([2011, i, 1]).format('MMMM MMM'), expected[i], expected[i]); - } -}); - -test('format month case', function (assert) { - var months = { - 'nominative': 'հունվար_փետրվար_մարտ_ապրիլ_մայիս_հունիս_հուլիս_օգոստոս_սեպտեմբեր_հոկտեմբեր_նոյեմբեր_դեկտեմբեր'.split('_'), - 'accusative': 'հունվարի_փետրվարի_մարտի_ապրիլի_մայիսի_հունիսի_հուլիսի_օգոստոսի_սեպտեմբերի_հոկտեմբերի_նոյեմբերի_դեկտեմբերի'.split('_') - }, i; - for (i = 0; i < 12; i++) { - assert.equal(moment([2011, i, 1]).format('D MMMM'), '1 ' + months.accusative[i], '1 ' + months.accusative[i]); - assert.equal(moment([2011, i, 1]).format('MMMM'), months.nominative[i], '1 ' + months.nominative[i]); - } -}); - -test('format month short case', function (assert) { - var monthsShort = { - 'nominative': 'հնվ_փտր_մրտ_ապր_մյս_հնս_հլս_օգս_սպտ_հկտ_նմբ_դկտ'.split('_'), - 'accusative': 'հնվ_փտր_մրտ_ապր_մյս_հնս_հլս_օգս_սպտ_հկտ_նմբ_դկտ'.split('_') - }, i; - for (i = 0; i < 12; i++) { - assert.equal(moment([2011, i, 1]).format('D MMM'), '1 ' + monthsShort.accusative[i], '1 ' + monthsShort.accusative[i]); - assert.equal(moment([2011, i, 1]).format('MMM'), monthsShort.nominative[i], '1 ' + monthsShort.nominative[i]); - } -}); - -test('format month case with escaped symbols', function (assert) { - var months = { - 'nominative': 'հունվար_փետրվար_մարտ_ապրիլ_մայիս_հունիս_հուլիս_օգոստոս_սեպտեմբեր_հոկտեմբեր_նոյեմբեր_դեկտեմբեր'.split('_'), - 'accusative': 'հունվարի_փետրվարի_մարտի_ապրիլի_մայիսի_հունիսի_հուլիսի_օգոստոսի_սեպտեմբերի_հոկտեմբերի_նոյեմբերի_դեկտեմբերի'.split('_') - }, i; - for (i = 0; i < 12; i++) { - assert.equal(moment([2013, i, 1]).format('D[] MMMM'), '1 ' + months.accusative[i], '1 ' + months.accusative[i]); - assert.equal(moment([2013, i, 1]).format('[<i>]D[</i>] [<b>]MMMM[</b>]'), '<i>1</i> <b>' + months.accusative[i] + '</b>', '1 <b>' + months.accusative[i] + '</b>'); - assert.equal(moment([2013, i, 1]).format('D[-ին օրը] MMMM'), '1-ին օրը ' + months.accusative[i], '1-ին օրը ' + months.accusative[i]); - assert.equal(moment([2013, i, 1]).format('D, MMMM'), '1, ' + months.nominative[i], '1, ' + months.nominative[i]); - } -}); - -test('format month short case with escaped symbols', function (assert) { - var monthsShort = { - 'nominative': 'հնվ_փտր_մրտ_ապր_մյս_հնս_հլս_օգս_սպտ_հկտ_նմբ_դկտ'.split('_'), - 'accusative': 'հնվ_փտր_մրտ_ապր_մյս_հնս_հլս_օգս_սպտ_հկտ_նմբ_դկտ'.split('_') - }, i; - for (i = 0; i < 12; i++) { - assert.equal(moment([2013, i, 1]).format('D[] MMM'), '1 ' + monthsShort.accusative[i], '1 ' + monthsShort.accusative[i]); - assert.equal(moment([2013, i, 1]).format('[<i>]D[</i>] [<b>]MMM[</b>]'), '<i>1</i> <b>' + monthsShort.accusative[i] + '</b>', '1 <b>' + monthsShort.accusative[i] + '</b>'); - assert.equal(moment([2013, i, 1]).format('D[-ին օրը] MMM'), '1-ին օրը ' + monthsShort.accusative[i], '1-ին օրը ' + monthsShort.accusative[i]); - assert.equal(moment([2013, i, 1]).format('D, MMM'), '1, ' + monthsShort.nominative[i], '1, ' + monthsShort.nominative[i]); - } -}); - -test('format week', function (assert) { - var expected = 'կիրակի կրկ կրկ_երկուշաբթի երկ երկ_երեքշաբթի երք երք_չորեքշաբթի չրք չրք_հինգշաբթի հնգ հնգ_ուրբաթ ուրբ ուրբ_շաբաթ շբթ շբթ'.split('_'), i; - for (i = 0; i < expected.length; i++) { - assert.equal(moment([2011, 0, 2 + i]).format('dddd ddd dd'), expected[i], expected[i]); - } -}); - -test('from', function (assert) { - var start = moment([2007, 1, 28]); - assert.equal(start.from(moment([2007, 1, 28]).add({s: 44}), true), 'մի քանի վայրկյան', '44 seconds = seconds'); - assert.equal(start.from(moment([2007, 1, 28]).add({s: 45}), true), 'րոպե', '45 seconds = a minute'); - assert.equal(start.from(moment([2007, 1, 28]).add({s: 89}), true), 'րոպե', '89 seconds = a minute'); - assert.equal(start.from(moment([2007, 1, 28]).add({s: 90}), true), '2 րոպե', '90 seconds = 2 minutes'); - assert.equal(start.from(moment([2007, 1, 28]).add({m: 44}), true), '44 րոպե', '44 minutes = 44 minutes'); - assert.equal(start.from(moment([2007, 1, 28]).add({m: 45}), true), 'ժամ', '45 minutes = an hour'); - assert.equal(start.from(moment([2007, 1, 28]).add({m: 89}), true), 'ժամ', '89 minutes = an hour'); - assert.equal(start.from(moment([2007, 1, 28]).add({m: 90}), true), '2 ժամ', '90 minutes = 2 hours'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 5}), true), '5 ժամ', '5 hours = 5 hours'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 21}), true), '21 ժամ', '21 hours = 21 hours'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 22}), true), 'օր', '22 hours = a day'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 35}), true), 'օր', '35 hours = a day'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 36}), true), '2 օր', '36 hours = 2 days'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 1}), true), 'օր', '1 day = a day'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 5}), true), '5 օր', '5 days = 5 days'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 11}), true), '11 օր', '11 days = 11 days'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 21}), true), '21 օր', '21 days = 21 days'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 25}), true), '25 օր', '25 days = 25 days'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 26}), true), 'ամիս', '26 days = a month'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 30}), true), 'ամիս', '30 days = a month'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 43}), true), 'ամիս', '43 days = a month'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 46}), true), '2 ամիս', '46 days = 2 months'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 74}), true), '2 ամիս', '75 days = 2 months'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 76}), true), '3 ամիս', '76 days = 3 months'); - assert.equal(start.from(moment([2007, 1, 28]).add({M: 1}), true), 'ամիս', '1 month = a month'); - assert.equal(start.from(moment([2007, 1, 28]).add({M: 5}), true), '5 ամիս', '5 months = 5 months'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 345}), true), 'տարի', '345 days = a year'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 548}), true), '2 տարի', '548 days = 2 years'); - assert.equal(start.from(moment([2007, 1, 28]).add({y: 1}), true), 'տարի', '1 year = a year'); - assert.equal(start.from(moment([2007, 1, 28]).add({y: 5}), true), '5 տարի', '5 years = 5 years'); -}); - -test('suffix', function (assert) { - assert.equal(moment(30000).from(0), 'մի քանի վայրկյան հետո', 'prefix'); - assert.equal(moment(0).from(30000), 'մի քանի վայրկյան առաջ', 'suffix'); -}); - -test('fromNow', function (assert) { - assert.equal(moment().add({s: 30}).fromNow(), 'մի քանի վայրկյան հետո', 'in seconds'); - assert.equal(moment().add({d: 5}).fromNow(), '5 օր հետո', 'in 5 days'); -}); - -test('calendar day', function (assert) { - var a = moment().hours(12).minutes(0).seconds(0); - - assert.equal(moment(a).calendar(), 'այսօր 12:00', 'today at the same time'); - assert.equal(moment(a).add({m: 25}).calendar(), 'այսօր 12:25', 'Now plus 25 min'); - assert.equal(moment(a).add({h: 1}).calendar(), 'այսօր 13:00', 'Now plus 1 hour'); - assert.equal(moment(a).add({d: 1}).calendar(), 'վաղը 12:00', 'tomorrow at the same time'); - assert.equal(moment(a).subtract({h: 1}).calendar(), 'այսօր 11:00', 'Now minus 1 hour'); - assert.equal(moment(a).subtract({d: 1}).calendar(), 'երեկ 12:00', 'yesterday at the same time'); -}); - -test('calendar next week', function (assert) { - var i, m; - function makeFormat(d) { - return 'dddd [օրը ժամը] LT'; - } - - for (i = 2; i < 7; i++) { - m = moment().add({d: i}); - assert.equal(m.calendar(), m.format(makeFormat(m)), 'Today + ' + i + ' days current time'); - m.hours(0).minutes(0).seconds(0).milliseconds(0); - assert.equal(m.calendar(), m.format(makeFormat(m)), 'Today + ' + i + ' days beginning of day'); - m.hours(23).minutes(59).seconds(59).milliseconds(999); - assert.equal(m.calendar(), m.format(makeFormat(m)), 'Today + ' + i + ' days end of day'); - } -}); - -test('calendar last week', function (assert) { - var i, m; - - function makeFormat(d) { - return '[անցած] dddd [օրը ժամը] LT'; - } - - for (i = 2; i < 7; i++) { - m = moment().subtract({d: i}); - assert.equal(m.calendar(), m.format(makeFormat(m)), 'Today - ' + i + ' days current time'); - m.hours(0).minutes(0).seconds(0).milliseconds(0); - assert.equal(m.calendar(), m.format(makeFormat(m)), 'Today - ' + i + ' days beginning of day'); - m.hours(23).minutes(59).seconds(59).milliseconds(999); - assert.equal(m.calendar(), m.format(makeFormat(m)), 'Today - ' + i + ' days end of day'); - } -}); - -test('calendar all else', function (assert) { - var weeksAgo = moment().subtract({w: 1}), - weeksFromNow = moment().add({w: 1}); - - assert.equal(weeksAgo.calendar(), weeksAgo.format('L'), '1 week ago'); - assert.equal(weeksFromNow.calendar(), weeksFromNow.format('L'), 'in 1 week'); - - weeksAgo = moment().subtract({w: 2}); - weeksFromNow = moment().add({w: 2}); - - assert.equal(weeksAgo.calendar(), weeksAgo.format('L'), '2 weeks ago'); - assert.equal(weeksFromNow.calendar(), weeksFromNow.format('L'), 'in 2 weeks'); -}); - -test('weeks year starting sunday formatted', function (assert) { - assert.equal(moment([2011, 11, 26]).format('w ww wo'), '1 01 1-ին', 'Dec 26 2011 should be week 1'); - assert.equal(moment([2012, 0, 1]).format('w ww wo'), '1 01 1-ին', 'Jan 1 2012 should be week 1'); - assert.equal(moment([2012, 0, 2]).format('w ww wo'), '2 02 2-րդ', 'Jan 2 2012 should be week 2'); - assert.equal(moment([2012, 0, 8]).format('w ww wo'), '2 02 2-րդ', 'Jan 8 2012 should be week 2'); - assert.equal(moment([2012, 0, 9]).format('w ww wo'), '3 03 3-րդ', 'Jan 9 2012 should be week 3'); -}); - -}))); - - -;(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' - && typeof require === 'function' ? factory(require('../../moment')) : - typeof define === 'function' && define.amd ? define(['../../moment'], factory) : - factory(global.moment) -}(this, (function (moment) { 'use strict'; - -function each(array, callback) { - var i; - for (i = 0; i < array.length; i++) { - callback(array[i], i, array); - } -} - -function objectKeys(obj) { - if (Object.keys) { - return Object.keys(obj); - } else { - // IE8 - var res = [], i; - for (i in obj) { - if (obj.hasOwnProperty(i)) { - res.push(i); - } - } - return res; - } -} - -// Pick the first defined of two or three arguments. - -function defineCommonLocaleTests(locale, options) { - test('lenient day of month ordinal parsing', function (assert) { - var i, ordinalStr, testMoment; - for (i = 1; i <= 31; ++i) { - ordinalStr = moment([2014, 0, i]).format('YYYY MM Do'); - testMoment = moment(ordinalStr, 'YYYY MM Do'); - assert.equal(testMoment.year(), 2014, - 'lenient day of month ordinal parsing ' + i + ' year check'); - assert.equal(testMoment.month(), 0, - 'lenient day of month ordinal parsing ' + i + ' month check'); - assert.equal(testMoment.date(), i, - 'lenient day of month ordinal parsing ' + i + ' date check'); - } - }); - - test('lenient day of month ordinal parsing of number', function (assert) { - var i, testMoment; - for (i = 1; i <= 31; ++i) { - testMoment = moment('2014 01 ' + i, 'YYYY MM Do'); - assert.equal(testMoment.year(), 2014, - 'lenient day of month ordinal parsing of number ' + i + ' year check'); - assert.equal(testMoment.month(), 0, - 'lenient day of month ordinal parsing of number ' + i + ' month check'); - assert.equal(testMoment.date(), i, - 'lenient day of month ordinal parsing of number ' + i + ' date check'); - } - }); - - test('strict day of month ordinal parsing', function (assert) { - var i, ordinalStr, testMoment; - for (i = 1; i <= 31; ++i) { - ordinalStr = moment([2014, 0, i]).format('YYYY MM Do'); - testMoment = moment(ordinalStr, 'YYYY MM Do', true); - assert.ok(testMoment.isValid(), 'strict day of month ordinal parsing ' + i); - } - }); - - test('meridiem invariant', function (assert) { - var h, m, t1, t2; - for (h = 0; h < 24; ++h) { - for (m = 0; m < 60; m += 15) { - t1 = moment.utc([2000, 0, 1, h, m]); - t2 = moment.utc(t1.format('A h:mm'), 'A h:mm'); - assert.equal(t2.format('HH:mm'), t1.format('HH:mm'), - 'meridiem at ' + t1.format('HH:mm')); - } - } - }); - - test('date format correctness', function (assert) { - var data, tokens; - data = moment.localeData()._longDateFormat; - tokens = objectKeys(data); - each(tokens, function (srchToken) { - // Check each format string to make sure it does not contain any - // tokens that need to be expanded. - each(tokens, function (baseToken) { - // strip escaped sequences - var format = data[baseToken].replace(/(\[[^\]]*\])/g, ''); - assert.equal(false, !!~format.indexOf(srchToken), - 'contains ' + srchToken + ' in ' + baseToken); - }); - }); - }); - - test('month parsing correctness', function (assert) { - var i, m; - - if (locale === 'tr') { - // I can't fix it :( - expect(0); - return; - } - function tester(format) { - var r; - r = moment(m.format(format), format); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format); - r = moment(m.format(format).toLocaleUpperCase(), format); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' upper'); - r = moment(m.format(format).toLocaleLowerCase(), format); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' lower'); - - r = moment(m.format(format), format, true); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' strict'); - r = moment(m.format(format).toLocaleUpperCase(), format, true); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' upper strict'); - r = moment(m.format(format).toLocaleLowerCase(), format, true); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' lower strict'); - } - - for (i = 0; i < 12; ++i) { - m = moment([2015, i, 15, 18]); - tester('MMM'); - tester('MMM.'); - tester('MMMM'); - tester('MMMM.'); - } - }); - - test('weekday parsing correctness', function (assert) { - var i, m; - - if (locale === 'tr' || locale === 'az' || locale === 'ro') { - // tr, az: There is a lower-case letter (ı), that converted to - // upper then lower changes to i - // ro: there is the letter ț which behaves weird under IE8 - expect(0); - return; - } - function tester(format) { - var r, baseMsg = 'weekday ' + m.weekday() + ' fmt ' + format + ' ' + m.toISOString(); - r = moment(m.format(format), format); - assert.equal(r.weekday(), m.weekday(), baseMsg); - r = moment(m.format(format).toLocaleUpperCase(), format); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' upper'); - r = moment(m.format(format).toLocaleLowerCase(), format); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' lower'); - - r = moment(m.format(format), format, true); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' strict'); - r = moment(m.format(format).toLocaleUpperCase(), format, true); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' upper strict'); - r = moment(m.format(format).toLocaleLowerCase(), format, true); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' lower strict'); - } - - for (i = 0; i < 7; ++i) { - m = moment.utc([2015, 0, i + 1, 18]); - tester('dd'); - tester('ddd'); - tester('dddd'); - } - }); - - test('valid localeData', function (assert) { - assert.equal(moment().localeData().months().length, 12, 'months should return 12 months'); - assert.equal(moment().localeData().monthsShort().length, 12, 'monthsShort should return 12 months'); - assert.equal(moment().localeData().weekdays().length, 7, 'weekdays should return 7 days'); - assert.equal(moment().localeData().weekdaysShort().length, 7, 'weekdaysShort should return 7 days'); - assert.equal(moment().localeData().weekdaysMin().length, 7, 'monthsShort should return 7 days'); - }); -} - -function setupDeprecationHandler(test, moment$$1, scope) { - test._expectedDeprecations = null; - test._observedDeprecations = null; - test._oldSupress = moment$$1.suppressDeprecationWarnings; - moment$$1.suppressDeprecationWarnings = true; - test.expectedDeprecations = function () { - test._expectedDeprecations = arguments; - test._observedDeprecations = []; - }; - moment$$1.deprecationHandler = function (name, msg) { - var deprecationId = matchedDeprecation(name, msg, test._expectedDeprecations); - if (deprecationId === -1) { - throw new Error('Unexpected deprecation thrown name=' + - name + ' msg=' + msg); - } - test._observedDeprecations[deprecationId] = 1; - }; -} - -function teardownDeprecationHandler(test, moment$$1, scope) { - moment$$1.suppressDeprecationWarnings = test._oldSupress; - - if (test._expectedDeprecations != null) { - var missedDeprecations = []; - each(test._expectedDeprecations, function (deprecationPattern, id) { - if (test._observedDeprecations[id] !== 1) { - missedDeprecations.push(deprecationPattern); - } - }); - if (missedDeprecations.length !== 0) { - throw new Error('Expected deprecation warnings did not happen: ' + - missedDeprecations.join(' ')); - } - } -} - -function matchedDeprecation(name, msg, deprecations) { - if (deprecations == null) { - return -1; - } - for (var i = 0; i < deprecations.length; ++i) { - if (name != null && name === deprecations[i]) { - return i; - } - if (msg != null && msg.substring(0, deprecations[i].length) === deprecations[i]) { - return i; - } - } - return -1; -} - -/*global QUnit:false*/ - -var test = QUnit.test; - -var expect = QUnit.expect; - - - -function localeModule (name, lifecycle) { - QUnit.module('locale:' + name, { - setup : function () { - moment.locale(name); - moment.createFromInputFallback = function (config) { - throw new Error('input not handled by moment: ' + config._i); - }; - setupDeprecationHandler(test, moment, 'locale'); - if (lifecycle && lifecycle.setup) { - lifecycle.setup(); - } - }, - teardown : function () { - moment.locale('en'); - teardownDeprecationHandler(test, moment, 'locale'); - if (lifecycle && lifecycle.teardown) { - lifecycle.teardown(); - } - } - }); - defineCommonLocaleTests(name, -1, -1); -} - -localeModule('id'); - -test('parse', function (assert) { - var tests = 'Januari Jan_Februari Feb_Maret Mar_April Apr_Mei Mei_Juni Jun_Juli Jul_Agustus Ags_September Sep_Oktober Okt_November Nov_Desember Des'.split('_'), i; - function equalTest(input, mmm, i) { - assert.equal(moment(input, mmm).month(), i, input + ' should be month ' + (i + 1)); - } - for (i = 0; i < 12; i++) { - tests[i] = tests[i].split(' '); - equalTest(tests[i][0], 'MMM', i); - equalTest(tests[i][1], 'MMM', i); - equalTest(tests[i][0], 'MMMM', i); - equalTest(tests[i][1], 'MMMM', i); - equalTest(tests[i][0].toLocaleLowerCase(), 'MMMM', i); - equalTest(tests[i][1].toLocaleLowerCase(), 'MMMM', i); - equalTest(tests[i][0].toLocaleUpperCase(), 'MMMM', i); - equalTest(tests[i][1].toLocaleUpperCase(), 'MMMM', i); - } -}); - -test('format', function (assert) { - var a = [ - ['dddd, MMMM Do YYYY, h:mm:ss a', 'Minggu, Februari 14 2010, 3:25:50 sore'], - ['ddd, hA', 'Min, 3sore'], - ['M Mo MM MMMM MMM', '2 2 02 Februari Feb'], - ['YYYY YY', '2010 10'], - ['D Do DD', '14 14 14'], - ['d do dddd ddd dd', '0 0 Minggu Min Mg'], - ['DDD DDDo DDDD', '45 45 045'], - ['w wo ww', '7 7 07'], - ['h hh', '3 03'], - ['H HH', '15 15'], - ['m mm', '25 25'], - ['s ss', '50 50'], - ['a A', 'sore sore'], - ['[the] DDDo [day of the year]', 'the 45 day of the year'], - ['LTS', '15.25.50'], - ['L', '14/02/2010'], - ['LL', '14 Februari 2010'], - ['LLL', '14 Februari 2010 pukul 15.25'], - ['LLLL', 'Minggu, 14 Februari 2010 pukul 15.25'], - ['l', '14/2/2010'], - ['ll', '14 Feb 2010'], - ['lll', '14 Feb 2010 pukul 15.25'], - ['llll', 'Min, 14 Feb 2010 pukul 15.25'] - ], - b = moment(new Date(2010, 1, 14, 15, 25, 50, 125)), - i; - for (i = 0; i < a.length; i++) { - assert.equal(b.format(a[i][0]), a[i][1], a[i][0] + ' ---> ' + a[i][1]); - } -}); - -test('format month', function (assert) { - var expected = 'Januari Jan_Februari Feb_Maret Mar_April Apr_Mei Mei_Juni Jun_Juli Jul_Agustus Ags_September Sep_Oktober Okt_November Nov_Desember Des'.split('_'), i; - for (i = 0; i < expected.length; i++) { - assert.equal(moment([2011, i, 1]).format('MMMM MMM'), expected[i], expected[i]); - } -}); - -test('format week', function (assert) { - var expected = 'Minggu Min Mg_Senin Sen Sn_Selasa Sel Sl_Rabu Rab Rb_Kamis Kam Km_Jumat Jum Jm_Sabtu Sab Sb'.split('_'), i; - for (i = 0; i < expected.length; i++) { - assert.equal(moment([2011, 0, 2 + i]).format('dddd ddd dd'), expected[i], expected[i]); - } -}); - -test('from', function (assert) { - var start = moment([2007, 1, 28]); - assert.equal(start.from(moment([2007, 1, 28]).add({s: 44}), true), 'beberapa detik', '44 seconds = a few seconds'); - assert.equal(start.from(moment([2007, 1, 28]).add({s: 45}), true), 'semenit', '45 seconds = a minute'); - assert.equal(start.from(moment([2007, 1, 28]).add({s: 89}), true), 'semenit', '89 seconds = a minute'); - assert.equal(start.from(moment([2007, 1, 28]).add({s: 90}), true), '2 menit', '90 seconds = 2 minutes'); - assert.equal(start.from(moment([2007, 1, 28]).add({m: 44}), true), '44 menit', '44 minutes = 44 minutes'); - assert.equal(start.from(moment([2007, 1, 28]).add({m: 45}), true), 'sejam', '45 minutes = an hour'); - assert.equal(start.from(moment([2007, 1, 28]).add({m: 89}), true), 'sejam', '89 minutes = an hour'); - assert.equal(start.from(moment([2007, 1, 28]).add({m: 90}), true), '2 jam', '90 minutes = 2 hours'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 5}), true), '5 jam', '5 hours = 5 hours'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 21}), true), '21 jam', '21 hours = 21 hours'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 22}), true), 'sehari', '22 hours = a day'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 35}), true), 'sehari', '35 hours = a day'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 36}), true), '2 hari', '36 hours = 2 days'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 1}), true), 'sehari', '1 day = a day'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 5}), true), '5 hari', '5 days = 5 days'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 25}), true), '25 hari', '25 days = 25 days'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 26}), true), 'sebulan', '26 days = a month'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 30}), true), 'sebulan', '30 days = a month'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 43}), true), 'sebulan', '43 days = a month'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 46}), true), '2 bulan', '46 days = 2 months'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 74}), true), '2 bulan', '75 days = 2 months'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 76}), true), '3 bulan', '76 days = 3 months'); - assert.equal(start.from(moment([2007, 1, 28]).add({M: 1}), true), 'sebulan', '1 month = a month'); - assert.equal(start.from(moment([2007, 1, 28]).add({M: 5}), true), '5 bulan', '5 months = 5 months'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 345}), true), 'setahun', '345 days = a year'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 548}), true), '2 tahun', '548 days = 2 years'); - assert.equal(start.from(moment([2007, 1, 28]).add({y: 1}), true), 'setahun', '1 year = a year'); - assert.equal(start.from(moment([2007, 1, 28]).add({y: 5}), true), '5 tahun', '5 years = 5 years'); -}); - -test('suffix', function (assert) { - assert.equal(moment(30000).from(0), 'dalam beberapa detik', 'prefix'); - assert.equal(moment(0).from(30000), 'beberapa detik yang lalu', 'suffix'); -}); - -test('now from now', function (assert) { - assert.equal(moment().fromNow(), 'beberapa detik yang lalu', 'now from now should display as in the past'); -}); - -test('fromNow', function (assert) { - assert.equal(moment().add({s: 30}).fromNow(), 'dalam beberapa detik', 'in a few seconds'); - assert.equal(moment().add({d: 5}).fromNow(), 'dalam 5 hari', 'in 5 days'); -}); - -test('calendar day', function (assert) { - var a = moment().hours(12).minutes(0).seconds(0); - - assert.equal(moment(a).calendar(), 'Hari ini pukul 12.00', 'today at the same time'); - assert.equal(moment(a).add({m: 25}).calendar(), 'Hari ini pukul 12.25', 'Now plus 25 min'); - assert.equal(moment(a).add({h: 1}).calendar(), 'Hari ini pukul 13.00', 'Now plus 1 hour'); - assert.equal(moment(a).add({d: 1}).calendar(), 'Besok pukul 12.00', 'tomorrow at the same time'); - assert.equal(moment(a).subtract({h: 1}).calendar(), 'Hari ini pukul 11.00', 'Now minus 1 hour'); - assert.equal(moment(a).subtract({d: 1}).calendar(), 'Kemarin pukul 12.00', 'yesterday at the same time'); -}); - -test('calendar next week', function (assert) { - var i, m; - for (i = 2; i < 7; i++) { - m = moment().add({d: i}); - assert.equal(m.calendar(), m.format('dddd [pukul] LT'), 'Today + ' + i + ' days current time'); - m.hours(0).minutes(0).seconds(0).milliseconds(0); - assert.equal(m.calendar(), m.format('dddd [pukul] LT'), 'Today + ' + i + ' days beginning of day'); - m.hours(23).minutes(59).seconds(59).milliseconds(999); - assert.equal(m.calendar(), m.format('dddd [pukul] LT'), 'Today + ' + i + ' days end of day'); - } -}); - -test('calendar last week', function (assert) { - var i, m; - for (i = 2; i < 7; i++) { - m = moment().subtract({d: i}); - assert.equal(m.calendar(), m.format('dddd [lalu pukul] LT'), 'Today - ' + i + ' days current time'); - m.hours(0).minutes(0).seconds(0).milliseconds(0); - assert.equal(m.calendar(), m.format('dddd [lalu pukul] LT'), 'Today - ' + i + ' days beginning of day'); - m.hours(23).minutes(59).seconds(59).milliseconds(999); - assert.equal(m.calendar(), m.format('dddd [lalu pukul] LT'), 'Today - ' + i + ' days end of day'); - } -}); - -test('calendar all else', function (assert) { - var weeksAgo = moment().subtract({w: 1}), - weeksFromNow = moment().add({w: 1}); - - assert.equal(weeksAgo.calendar(), weeksAgo.format('L'), '1 week ago'); - assert.equal(weeksFromNow.calendar(), weeksFromNow.format('L'), 'in 1 week'); - - weeksAgo = moment().subtract({w: 2}); - weeksFromNow = moment().add({w: 2}); - - assert.equal(weeksAgo.calendar(), weeksAgo.format('L'), '2 weeks ago'); - assert.equal(weeksFromNow.calendar(), weeksFromNow.format('L'), 'in 2 weeks'); -}); - -test('weeks year starting sunday formatted', function (assert) { - assert.equal(moment([2011, 11, 26]).format('w ww wo'), '1 01 1', 'Dec 26 2011 should be week 1'); - assert.equal(moment([2012, 0, 1]).format('w ww wo'), '1 01 1', 'Jan 1 2012 should be week 1'); - assert.equal(moment([2012, 0, 2]).format('w ww wo'), '2 02 2', 'Jan 2 2012 should be week 2'); - assert.equal(moment([2012, 0, 8]).format('w ww wo'), '2 02 2', 'Jan 8 2012 should be week 2'); - assert.equal(moment([2012, 0, 9]).format('w ww wo'), '3 03 3', 'Jan 9 2012 should be week 3'); -}); - -}))); - - -;(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' - && typeof require === 'function' ? factory(require('../../moment')) : - typeof define === 'function' && define.amd ? define(['../../moment'], factory) : - factory(global.moment) -}(this, (function (moment) { 'use strict'; - -function each(array, callback) { - var i; - for (i = 0; i < array.length; i++) { - callback(array[i], i, array); - } -} - -function objectKeys(obj) { - if (Object.keys) { - return Object.keys(obj); - } else { - // IE8 - var res = [], i; - for (i in obj) { - if (obj.hasOwnProperty(i)) { - res.push(i); - } - } - return res; - } -} - -// Pick the first defined of two or three arguments. - -function defineCommonLocaleTests(locale, options) { - test('lenient day of month ordinal parsing', function (assert) { - var i, ordinalStr, testMoment; - for (i = 1; i <= 31; ++i) { - ordinalStr = moment([2014, 0, i]).format('YYYY MM Do'); - testMoment = moment(ordinalStr, 'YYYY MM Do'); - assert.equal(testMoment.year(), 2014, - 'lenient day of month ordinal parsing ' + i + ' year check'); - assert.equal(testMoment.month(), 0, - 'lenient day of month ordinal parsing ' + i + ' month check'); - assert.equal(testMoment.date(), i, - 'lenient day of month ordinal parsing ' + i + ' date check'); - } - }); - - test('lenient day of month ordinal parsing of number', function (assert) { - var i, testMoment; - for (i = 1; i <= 31; ++i) { - testMoment = moment('2014 01 ' + i, 'YYYY MM Do'); - assert.equal(testMoment.year(), 2014, - 'lenient day of month ordinal parsing of number ' + i + ' year check'); - assert.equal(testMoment.month(), 0, - 'lenient day of month ordinal parsing of number ' + i + ' month check'); - assert.equal(testMoment.date(), i, - 'lenient day of month ordinal parsing of number ' + i + ' date check'); - } - }); - - test('strict day of month ordinal parsing', function (assert) { - var i, ordinalStr, testMoment; - for (i = 1; i <= 31; ++i) { - ordinalStr = moment([2014, 0, i]).format('YYYY MM Do'); - testMoment = moment(ordinalStr, 'YYYY MM Do', true); - assert.ok(testMoment.isValid(), 'strict day of month ordinal parsing ' + i); - } - }); - - test('meridiem invariant', function (assert) { - var h, m, t1, t2; - for (h = 0; h < 24; ++h) { - for (m = 0; m < 60; m += 15) { - t1 = moment.utc([2000, 0, 1, h, m]); - t2 = moment.utc(t1.format('A h:mm'), 'A h:mm'); - assert.equal(t2.format('HH:mm'), t1.format('HH:mm'), - 'meridiem at ' + t1.format('HH:mm')); - } - } - }); - - test('date format correctness', function (assert) { - var data, tokens; - data = moment.localeData()._longDateFormat; - tokens = objectKeys(data); - each(tokens, function (srchToken) { - // Check each format string to make sure it does not contain any - // tokens that need to be expanded. - each(tokens, function (baseToken) { - // strip escaped sequences - var format = data[baseToken].replace(/(\[[^\]]*\])/g, ''); - assert.equal(false, !!~format.indexOf(srchToken), - 'contains ' + srchToken + ' in ' + baseToken); - }); - }); - }); - - test('month parsing correctness', function (assert) { - var i, m; - - if (locale === 'tr') { - // I can't fix it :( - expect(0); - return; - } - function tester(format) { - var r; - r = moment(m.format(format), format); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format); - r = moment(m.format(format).toLocaleUpperCase(), format); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' upper'); - r = moment(m.format(format).toLocaleLowerCase(), format); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' lower'); - - r = moment(m.format(format), format, true); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' strict'); - r = moment(m.format(format).toLocaleUpperCase(), format, true); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' upper strict'); - r = moment(m.format(format).toLocaleLowerCase(), format, true); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' lower strict'); - } - - for (i = 0; i < 12; ++i) { - m = moment([2015, i, 15, 18]); - tester('MMM'); - tester('MMM.'); - tester('MMMM'); - tester('MMMM.'); - } - }); - - test('weekday parsing correctness', function (assert) { - var i, m; - - if (locale === 'tr' || locale === 'az' || locale === 'ro') { - // tr, az: There is a lower-case letter (ı), that converted to - // upper then lower changes to i - // ro: there is the letter ț which behaves weird under IE8 - expect(0); - return; - } - function tester(format) { - var r, baseMsg = 'weekday ' + m.weekday() + ' fmt ' + format + ' ' + m.toISOString(); - r = moment(m.format(format), format); - assert.equal(r.weekday(), m.weekday(), baseMsg); - r = moment(m.format(format).toLocaleUpperCase(), format); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' upper'); - r = moment(m.format(format).toLocaleLowerCase(), format); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' lower'); - - r = moment(m.format(format), format, true); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' strict'); - r = moment(m.format(format).toLocaleUpperCase(), format, true); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' upper strict'); - r = moment(m.format(format).toLocaleLowerCase(), format, true); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' lower strict'); - } - - for (i = 0; i < 7; ++i) { - m = moment.utc([2015, 0, i + 1, 18]); - tester('dd'); - tester('ddd'); - tester('dddd'); - } - }); - - test('valid localeData', function (assert) { - assert.equal(moment().localeData().months().length, 12, 'months should return 12 months'); - assert.equal(moment().localeData().monthsShort().length, 12, 'monthsShort should return 12 months'); - assert.equal(moment().localeData().weekdays().length, 7, 'weekdays should return 7 days'); - assert.equal(moment().localeData().weekdaysShort().length, 7, 'weekdaysShort should return 7 days'); - assert.equal(moment().localeData().weekdaysMin().length, 7, 'monthsShort should return 7 days'); - }); -} - -function setupDeprecationHandler(test, moment$$1, scope) { - test._expectedDeprecations = null; - test._observedDeprecations = null; - test._oldSupress = moment$$1.suppressDeprecationWarnings; - moment$$1.suppressDeprecationWarnings = true; - test.expectedDeprecations = function () { - test._expectedDeprecations = arguments; - test._observedDeprecations = []; - }; - moment$$1.deprecationHandler = function (name, msg) { - var deprecationId = matchedDeprecation(name, msg, test._expectedDeprecations); - if (deprecationId === -1) { - throw new Error('Unexpected deprecation thrown name=' + - name + ' msg=' + msg); - } - test._observedDeprecations[deprecationId] = 1; - }; -} - -function teardownDeprecationHandler(test, moment$$1, scope) { - moment$$1.suppressDeprecationWarnings = test._oldSupress; - - if (test._expectedDeprecations != null) { - var missedDeprecations = []; - each(test._expectedDeprecations, function (deprecationPattern, id) { - if (test._observedDeprecations[id] !== 1) { - missedDeprecations.push(deprecationPattern); - } - }); - if (missedDeprecations.length !== 0) { - throw new Error('Expected deprecation warnings did not happen: ' + - missedDeprecations.join(' ')); - } - } -} - -function matchedDeprecation(name, msg, deprecations) { - if (deprecations == null) { - return -1; - } - for (var i = 0; i < deprecations.length; ++i) { - if (name != null && name === deprecations[i]) { - return i; - } - if (msg != null && msg.substring(0, deprecations[i].length) === deprecations[i]) { - return i; - } - } - return -1; -} - -/*global QUnit:false*/ - -var test = QUnit.test; - -var expect = QUnit.expect; - - - -function localeModule (name, lifecycle) { - QUnit.module('locale:' + name, { - setup : function () { - moment.locale(name); - moment.createFromInputFallback = function (config) { - throw new Error('input not handled by moment: ' + config._i); - }; - setupDeprecationHandler(test, moment, 'locale'); - if (lifecycle && lifecycle.setup) { - lifecycle.setup(); - } - }, - teardown : function () { - moment.locale('en'); - teardownDeprecationHandler(test, moment, 'locale'); - if (lifecycle && lifecycle.teardown) { - lifecycle.teardown(); - } - } - }); - defineCommonLocaleTests(name, -1, -1); -} - -localeModule('is'); - -test('parse', function (assert) { - var tests = 'janúar jan_febrúar feb_mars mar_apríl apr_maí maí_júní jún_júlí júl_ágúst ágú_september sep_október okt_nóvember nóv_desember des'.split('_'), i; - function equalTest(input, mmm, i) { - assert.equal(moment(input, mmm).month(), i, input + ' should be month ' + (i + 1)); - } - for (i = 0; i < 12; i++) { - tests[i] = tests[i].split(' '); - equalTest(tests[i][0], 'MMM', i); - equalTest(tests[i][1], 'MMM', i); - equalTest(tests[i][0], 'MMMM', i); - equalTest(tests[i][1], 'MMMM', i); - equalTest(tests[i][0].toLocaleLowerCase(), 'MMMM', i); - equalTest(tests[i][1].toLocaleLowerCase(), 'MMMM', i); - equalTest(tests[i][0].toLocaleUpperCase(), 'MMMM', i); - equalTest(tests[i][1].toLocaleUpperCase(), 'MMMM', i); - } -}); - -test('format', function (assert) { - var a = [ - ['dddd, Do MMMM YYYY, h:mm:ss a', 'sunnudagur, 14. febrúar 2010, 3:25:50 pm'], - ['ddd, hA', 'sun, 3PM'], - ['M Mo MM MMMM MMM', '2 2. 02 febrúar feb'], - ['YYYY YY', '2010 10'], - ['D Do DD', '14 14. 14'], - ['d do dddd ddd dd', '0 0. sunnudagur sun Su'], - ['DDD DDDo DDDD', '45 45. 045'], - ['w wo ww', '6 6. 06'], - ['h hh', '3 03'], - ['H HH', '15 15'], - ['m mm', '25 25'], - ['s ss', '50 50'], - ['a A', 'pm PM'], - ['[the] DDDo [day of the year]', 'the 45. day of the year'], - ['LTS', '15:25:50'], - ['L', '14.02.2010'], - ['LL', '14. febrúar 2010'], - ['LLL', '14. febrúar 2010 kl. 15:25'], - ['LLLL', 'sunnudagur, 14. febrúar 2010 kl. 15:25'], - ['l', '14.2.2010'], - ['ll', '14. feb 2010'], - ['lll', '14. feb 2010 kl. 15:25'], - ['llll', 'sun, 14. feb 2010 kl. 15:25'] - ], - b = moment(new Date(2010, 1, 14, 15, 25, 50, 125)), - i; - for (i = 0; i < a.length; i++) { - assert.equal(b.format(a[i][0]), a[i][1], a[i][0] + ' ---> ' + a[i][1]); - } -}); - -test('format ordinal', function (assert) { - assert.equal(moment([2011, 0, 1]).format('DDDo'), '1.', '1.'); - assert.equal(moment([2011, 0, 2]).format('DDDo'), '2.', '2.'); - assert.equal(moment([2011, 0, 3]).format('DDDo'), '3.', '3.'); - assert.equal(moment([2011, 0, 4]).format('DDDo'), '4.', '4.'); - assert.equal(moment([2011, 0, 5]).format('DDDo'), '5.', '5.'); - assert.equal(moment([2011, 0, 6]).format('DDDo'), '6.', '6.'); - assert.equal(moment([2011, 0, 7]).format('DDDo'), '7.', '7.'); - assert.equal(moment([2011, 0, 8]).format('DDDo'), '8.', '8.'); - assert.equal(moment([2011, 0, 9]).format('DDDo'), '9.', '9.'); - assert.equal(moment([2011, 0, 10]).format('DDDo'), '10.', '10.'); - - assert.equal(moment([2011, 0, 11]).format('DDDo'), '11.', '11.'); - assert.equal(moment([2011, 0, 12]).format('DDDo'), '12.', '12.'); - assert.equal(moment([2011, 0, 13]).format('DDDo'), '13.', '13.'); - assert.equal(moment([2011, 0, 14]).format('DDDo'), '14.', '14.'); - assert.equal(moment([2011, 0, 15]).format('DDDo'), '15.', '15.'); - assert.equal(moment([2011, 0, 16]).format('DDDo'), '16.', '16.'); - assert.equal(moment([2011, 0, 17]).format('DDDo'), '17.', '17.'); - assert.equal(moment([2011, 0, 18]).format('DDDo'), '18.', '18.'); - assert.equal(moment([2011, 0, 19]).format('DDDo'), '19.', '19.'); - assert.equal(moment([2011, 0, 20]).format('DDDo'), '20.', '20.'); - - assert.equal(moment([2011, 0, 21]).format('DDDo'), '21.', '21.'); - assert.equal(moment([2011, 0, 22]).format('DDDo'), '22.', '22.'); - assert.equal(moment([2011, 0, 23]).format('DDDo'), '23.', '23.'); - assert.equal(moment([2011, 0, 24]).format('DDDo'), '24.', '24.'); - assert.equal(moment([2011, 0, 25]).format('DDDo'), '25.', '25.'); - assert.equal(moment([2011, 0, 26]).format('DDDo'), '26.', '26.'); - assert.equal(moment([2011, 0, 27]).format('DDDo'), '27.', '27.'); - assert.equal(moment([2011, 0, 28]).format('DDDo'), '28.', '28.'); - assert.equal(moment([2011, 0, 29]).format('DDDo'), '29.', '29.'); - assert.equal(moment([2011, 0, 30]).format('DDDo'), '30.', '30.'); - - assert.equal(moment([2011, 0, 31]).format('DDDo'), '31.', '31.'); -}); - -test('format month', function (assert) { - var expected = 'janúar jan_febrúar feb_mars mar_apríl apr_maí maí_júní jún_júlí júl_ágúst ágú_september sep_október okt_nóvember nóv_desember des'.split('_'), i; - for (i = 0; i < expected.length; i++) { - assert.equal(moment([2011, i, 1]).format('MMMM MMM'), expected[i], expected[i]); - } -}); - -test('format week', function (assert) { - var expected = 'sunnudagur sun Su_mánudagur mán Má_þriðjudagur þri Þr_miðvikudagur mið Mi_fimmtudagur fim Fi_föstudagur fös Fö_laugardagur lau La'.split('_'), i; - for (i = 0; i < expected.length; i++) { - assert.equal(moment([2011, 0, 2 + i]).format('dddd ddd dd'), expected[i], expected[i]); - } -}); - -test('from', function (assert) { - var start = moment([2007, 1, 28]); - assert.equal(start.from(moment([2007, 1, 28]).add({s: 44}), true), 'nokkrar sekúndur', '44 seconds = a few seconds'); - assert.equal(start.from(moment([2007, 1, 28]).add({s: 45}), true), 'mínúta', '45 seconds = a minute'); - assert.equal(start.from(moment([2007, 1, 28]).add({s: 89}), true), 'mínúta', '89 seconds = a minute'); - assert.equal(start.from(moment([2007, 1, 28]).add({s: 90}), true), '2 mínútur', '90 seconds = 2 minutes'); - assert.equal(start.from(moment([2007, 1, 28]).add({m: 44}), true), '44 mínútur', '44 minutes = 44 minutes'); - assert.equal(start.from(moment([2007, 1, 28]).add({m: 21}), true), '21 mínúta', '21 minutes = 21 minutes'); - assert.equal(start.from(moment([2007, 1, 28]).add({m: 45}), true), 'klukkustund', '45 minutes = an hour'); - assert.equal(start.from(moment([2007, 1, 28]).add({m: 89}), true), 'klukkustund', '89 minutes = an hour'); - assert.equal(start.from(moment([2007, 1, 28]).add({m: 90}), true), '2 klukkustundir', '90 minutes = 2 hours'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 5}), true), '5 klukkustundir', '5 hours = 5 hours'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 21}), true), '21 klukkustund', '21 hours = 21 hours'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 22}), true), 'dagur', '22 hours = a day'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 35}), true), 'dagur', '35 hours = a day'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 36}), true), '2 dagar', '36 hours = 2 days'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 1}), true), 'dagur', '1 day = a day'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 5}), true), '5 dagar', '5 days = 5 days'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 25}), true), '25 dagar', '25 days = 25 days'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 11}), true), '11 dagar', '11 days = 11 days'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 21}), true), '21 dagur', '21 days = 21 days'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 26}), true), 'mánuður', '26 days = a month'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 30}), true), 'mánuður', '30 days = a month'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 43}), true), 'mánuður', '43 days = a month'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 46}), true), '2 mánuðir', '46 days = 2 months'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 74}), true), '2 mánuðir', '75 days = 2 months'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 76}), true), '3 mánuðir', '76 days = 3 months'); - assert.equal(start.from(moment([2007, 1, 28]).add({M: 1}), true), 'mánuður', '1 month = a month'); - assert.equal(start.from(moment([2007, 1, 28]).add({M: 5}), true), '5 mánuðir', '5 months = 5 months'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 345}), true), 'ár', '345 days = a year'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 548}), true), '2 ár', '548 days = 2 years'); - assert.equal(start.from(moment([2007, 1, 28]).add({y: 1}), true), 'ár', '1 year = a year'); - assert.equal(start.from(moment([2007, 1, 28]).add({y: 5}), true), '5 ár', '5 years = 5 years'); - assert.equal(start.from(moment([2007, 1, 28]).add({y: 21}), true), '21 ár', '21 years = 21 years'); -}); - -test('suffix', function (assert) { - assert.equal(moment(30000).from(0), 'eftir nokkrar sekúndur', 'prefix'); - assert.equal(moment(0).from(30000), 'fyrir nokkrum sekúndum síðan', 'suffix'); - assert.equal(moment().subtract({m: 1}).fromNow(), 'fyrir mínútu síðan', 'a minute ago'); -}); - -test('now from now', function (assert) { - assert.equal(moment().fromNow(), 'fyrir nokkrum sekúndum síðan', 'now from now should display as in the past'); -}); - -test('fromNow', function (assert) { - assert.equal(moment().add({s: 30}).fromNow(), 'eftir nokkrar sekúndur', 'in a few seconds'); - assert.equal(moment().add({m: 1}).fromNow(), 'eftir mínútu', 'in a minute'); - assert.equal(moment().add({d: 5}).fromNow(), 'eftir 5 daga', 'in 5 days'); -}); - -test('calendar day', function (assert) { - var a = moment().hours(12).minutes(0).seconds(0); - - assert.equal(moment(a).calendar(), 'í dag kl. 12:00', 'today at the same time'); - assert.equal(moment(a).add({m: 25}).calendar(), 'í dag kl. 12:25', 'Now plus 25 min'); - assert.equal(moment(a).add({h: 1}).calendar(), 'í dag kl. 13:00', 'Now plus 1 hour'); - assert.equal(moment(a).add({d: 1}).calendar(), 'á morgun kl. 12:00', 'tomorrow at the same time'); - assert.equal(moment(a).subtract({h: 1}).calendar(), 'í dag kl. 11:00', 'Now minus 1 hour'); - assert.equal(moment(a).subtract({d: 1}).calendar(), 'í gær kl. 12:00', 'yesterday at the same time'); -}); - -test('calendar next week', function (assert) { - var i, m; - for (i = 2; i < 7; i++) { - m = moment().add({d: i}); - assert.equal(m.calendar(), m.format('dddd [kl.] LT'), 'Today + ' + i + ' days current time'); - m.hours(0).minutes(0).seconds(0).milliseconds(0); - assert.equal(m.calendar(), m.format('dddd [kl.] LT'), 'Today + ' + i + ' days beginning of day'); - m.hours(23).minutes(59).seconds(59).milliseconds(999); - assert.equal(m.calendar(), m.format('dddd [kl.] LT'), 'Today + ' + i + ' days end of day'); - } -}); - -test('calendar last week', function (assert) { - var i, m; - - for (i = 2; i < 7; i++) { - m = moment().subtract({d: i}); - assert.equal(m.calendar(), m.format('[síðasta] dddd [kl.] LT'), 'Today - ' + i + ' days current time'); - m.hours(0).minutes(0).seconds(0).milliseconds(0); - assert.equal(m.calendar(), m.format('[síðasta] dddd [kl.] LT'), 'Today - ' + i + ' days beginning of day'); - m.hours(23).minutes(59).seconds(59).milliseconds(999); - assert.equal(m.calendar(), m.format('[síðasta] dddd [kl.] LT'), 'Today - ' + i + ' days end of day'); - } -}); - -test('calendar all else', function (assert) { - var weeksAgo = moment().subtract({w: 1}), - weeksFromNow = moment().add({w: 1}); - - assert.equal(weeksAgo.calendar(), weeksAgo.format('L'), '1 week ago'); - assert.equal(weeksFromNow.calendar(), weeksFromNow.format('L'), 'in 1 week'); - - weeksAgo = moment().subtract({w: 2}); - weeksFromNow = moment().add({w: 2}); - - assert.equal(weeksAgo.calendar(), weeksAgo.format('L'), '2 weeks ago'); - assert.equal(weeksFromNow.calendar(), weeksFromNow.format('L'), 'in 2 weeks'); -}); - -test('weeks year starting sunday formatted', function (assert) { - assert.equal(moment([2012, 0, 1]).format('w ww wo'), '52 52 52.', 'Jan 1 2012 should be week 52'); - assert.equal(moment([2012, 0, 2]).format('w ww wo'), '1 01 1.', 'Jan 2 2012 should be week 1'); - assert.equal(moment([2012, 0, 8]).format('w ww wo'), '1 01 1.', 'Jan 8 2012 should be week 1'); - assert.equal(moment([2012, 0, 9]).format('w ww wo'), '2 02 2.', 'Jan 9 2012 should be week 2'); - assert.equal(moment([2012, 0, 15]).format('w ww wo'), '2 02 2.', 'Jan 15 2012 should be week 2'); -}); - -}))); - - -;(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' - && typeof require === 'function' ? factory(require('../../moment')) : - typeof define === 'function' && define.amd ? define(['../../moment'], factory) : - factory(global.moment) -}(this, (function (moment) { 'use strict'; - -function each(array, callback) { - var i; - for (i = 0; i < array.length; i++) { - callback(array[i], i, array); - } -} - -function objectKeys(obj) { - if (Object.keys) { - return Object.keys(obj); - } else { - // IE8 - var res = [], i; - for (i in obj) { - if (obj.hasOwnProperty(i)) { - res.push(i); - } - } - return res; - } -} - -// Pick the first defined of two or three arguments. - -function defineCommonLocaleTests(locale, options) { - test('lenient day of month ordinal parsing', function (assert) { - var i, ordinalStr, testMoment; - for (i = 1; i <= 31; ++i) { - ordinalStr = moment([2014, 0, i]).format('YYYY MM Do'); - testMoment = moment(ordinalStr, 'YYYY MM Do'); - assert.equal(testMoment.year(), 2014, - 'lenient day of month ordinal parsing ' + i + ' year check'); - assert.equal(testMoment.month(), 0, - 'lenient day of month ordinal parsing ' + i + ' month check'); - assert.equal(testMoment.date(), i, - 'lenient day of month ordinal parsing ' + i + ' date check'); - } - }); - - test('lenient day of month ordinal parsing of number', function (assert) { - var i, testMoment; - for (i = 1; i <= 31; ++i) { - testMoment = moment('2014 01 ' + i, 'YYYY MM Do'); - assert.equal(testMoment.year(), 2014, - 'lenient day of month ordinal parsing of number ' + i + ' year check'); - assert.equal(testMoment.month(), 0, - 'lenient day of month ordinal parsing of number ' + i + ' month check'); - assert.equal(testMoment.date(), i, - 'lenient day of month ordinal parsing of number ' + i + ' date check'); - } - }); - - test('strict day of month ordinal parsing', function (assert) { - var i, ordinalStr, testMoment; - for (i = 1; i <= 31; ++i) { - ordinalStr = moment([2014, 0, i]).format('YYYY MM Do'); - testMoment = moment(ordinalStr, 'YYYY MM Do', true); - assert.ok(testMoment.isValid(), 'strict day of month ordinal parsing ' + i); - } - }); - - test('meridiem invariant', function (assert) { - var h, m, t1, t2; - for (h = 0; h < 24; ++h) { - for (m = 0; m < 60; m += 15) { - t1 = moment.utc([2000, 0, 1, h, m]); - t2 = moment.utc(t1.format('A h:mm'), 'A h:mm'); - assert.equal(t2.format('HH:mm'), t1.format('HH:mm'), - 'meridiem at ' + t1.format('HH:mm')); - } - } - }); - - test('date format correctness', function (assert) { - var data, tokens; - data = moment.localeData()._longDateFormat; - tokens = objectKeys(data); - each(tokens, function (srchToken) { - // Check each format string to make sure it does not contain any - // tokens that need to be expanded. - each(tokens, function (baseToken) { - // strip escaped sequences - var format = data[baseToken].replace(/(\[[^\]]*\])/g, ''); - assert.equal(false, !!~format.indexOf(srchToken), - 'contains ' + srchToken + ' in ' + baseToken); - }); - }); - }); - - test('month parsing correctness', function (assert) { - var i, m; - - if (locale === 'tr') { - // I can't fix it :( - expect(0); - return; - } - function tester(format) { - var r; - r = moment(m.format(format), format); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format); - r = moment(m.format(format).toLocaleUpperCase(), format); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' upper'); - r = moment(m.format(format).toLocaleLowerCase(), format); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' lower'); - - r = moment(m.format(format), format, true); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' strict'); - r = moment(m.format(format).toLocaleUpperCase(), format, true); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' upper strict'); - r = moment(m.format(format).toLocaleLowerCase(), format, true); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' lower strict'); - } - - for (i = 0; i < 12; ++i) { - m = moment([2015, i, 15, 18]); - tester('MMM'); - tester('MMM.'); - tester('MMMM'); - tester('MMMM.'); - } - }); - - test('weekday parsing correctness', function (assert) { - var i, m; - - if (locale === 'tr' || locale === 'az' || locale === 'ro') { - // tr, az: There is a lower-case letter (ı), that converted to - // upper then lower changes to i - // ro: there is the letter ț which behaves weird under IE8 - expect(0); - return; - } - function tester(format) { - var r, baseMsg = 'weekday ' + m.weekday() + ' fmt ' + format + ' ' + m.toISOString(); - r = moment(m.format(format), format); - assert.equal(r.weekday(), m.weekday(), baseMsg); - r = moment(m.format(format).toLocaleUpperCase(), format); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' upper'); - r = moment(m.format(format).toLocaleLowerCase(), format); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' lower'); - - r = moment(m.format(format), format, true); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' strict'); - r = moment(m.format(format).toLocaleUpperCase(), format, true); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' upper strict'); - r = moment(m.format(format).toLocaleLowerCase(), format, true); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' lower strict'); - } - - for (i = 0; i < 7; ++i) { - m = moment.utc([2015, 0, i + 1, 18]); - tester('dd'); - tester('ddd'); - tester('dddd'); - } - }); - - test('valid localeData', function (assert) { - assert.equal(moment().localeData().months().length, 12, 'months should return 12 months'); - assert.equal(moment().localeData().monthsShort().length, 12, 'monthsShort should return 12 months'); - assert.equal(moment().localeData().weekdays().length, 7, 'weekdays should return 7 days'); - assert.equal(moment().localeData().weekdaysShort().length, 7, 'weekdaysShort should return 7 days'); - assert.equal(moment().localeData().weekdaysMin().length, 7, 'monthsShort should return 7 days'); - }); -} - -function setupDeprecationHandler(test, moment$$1, scope) { - test._expectedDeprecations = null; - test._observedDeprecations = null; - test._oldSupress = moment$$1.suppressDeprecationWarnings; - moment$$1.suppressDeprecationWarnings = true; - test.expectedDeprecations = function () { - test._expectedDeprecations = arguments; - test._observedDeprecations = []; - }; - moment$$1.deprecationHandler = function (name, msg) { - var deprecationId = matchedDeprecation(name, msg, test._expectedDeprecations); - if (deprecationId === -1) { - throw new Error('Unexpected deprecation thrown name=' + - name + ' msg=' + msg); - } - test._observedDeprecations[deprecationId] = 1; - }; -} - -function teardownDeprecationHandler(test, moment$$1, scope) { - moment$$1.suppressDeprecationWarnings = test._oldSupress; - - if (test._expectedDeprecations != null) { - var missedDeprecations = []; - each(test._expectedDeprecations, function (deprecationPattern, id) { - if (test._observedDeprecations[id] !== 1) { - missedDeprecations.push(deprecationPattern); - } - }); - if (missedDeprecations.length !== 0) { - throw new Error('Expected deprecation warnings did not happen: ' + - missedDeprecations.join(' ')); - } - } -} - -function matchedDeprecation(name, msg, deprecations) { - if (deprecations == null) { - return -1; - } - for (var i = 0; i < deprecations.length; ++i) { - if (name != null && name === deprecations[i]) { - return i; - } - if (msg != null && msg.substring(0, deprecations[i].length) === deprecations[i]) { - return i; - } - } - return -1; -} - -/*global QUnit:false*/ - -var test = QUnit.test; - -var expect = QUnit.expect; - - - -function localeModule (name, lifecycle) { - QUnit.module('locale:' + name, { - setup : function () { - moment.locale(name); - moment.createFromInputFallback = function (config) { - throw new Error('input not handled by moment: ' + config._i); - }; - setupDeprecationHandler(test, moment, 'locale'); - if (lifecycle && lifecycle.setup) { - lifecycle.setup(); - } - }, - teardown : function () { - moment.locale('en'); - teardownDeprecationHandler(test, moment, 'locale'); - if (lifecycle && lifecycle.teardown) { - lifecycle.teardown(); - } - } - }); - defineCommonLocaleTests(name, -1, -1); -} - -localeModule('it'); - -test('parse', function (assert) { - var tests = 'gennaio gen_febbraio feb_marzo mar_aprile apr_maggio mag_giugno giu_luglio lug_agosto ago_settembre set_ottobre ott_novembre nov_dicembre dic'.split('_'), i; - function equalTest(input, mmm, i) { - assert.equal(moment(input, mmm).month(), i, input + ' should be month ' + (i + 1)); - } - for (i = 0; i < 12; i++) { - tests[i] = tests[i].split(' '); - equalTest(tests[i][0], 'MMM', i); - equalTest(tests[i][1], 'MMM', i); - equalTest(tests[i][0], 'MMMM', i); - equalTest(tests[i][1], 'MMMM', i); - equalTest(tests[i][0].toLocaleLowerCase(), 'MMMM', i); - equalTest(tests[i][1].toLocaleLowerCase(), 'MMMM', i); - equalTest(tests[i][0].toLocaleUpperCase(), 'MMMM', i); - equalTest(tests[i][1].toLocaleUpperCase(), 'MMMM', i); - } -}); - -test('format', function (assert) { - var a = [ - ['dddd, MMMM Do YYYY, h:mm:ss a', 'domenica, febbraio 14º 2010, 3:25:50 pm'], - ['ddd, hA', 'dom, 3PM'], - ['M Mo MM MMMM MMM', '2 2º 02 febbraio feb'], - ['YYYY YY', '2010 10'], - ['D Do DD', '14 14º 14'], - ['d do dddd ddd dd', '0 0º domenica dom do'], - ['DDD DDDo DDDD', '45 45º 045'], - ['w wo ww', '6 6º 06'], - ['h hh', '3 03'], - ['H HH', '15 15'], - ['m mm', '25 25'], - ['s ss', '50 50'], - ['a A', 'pm PM'], - ['[the] DDDo [day of the year]', 'the 45º day of the year'], - ['LTS', '15:25:50'], - ['L', '14/02/2010'], - ['LL', '14 febbraio 2010'], - ['LLL', '14 febbraio 2010 15:25'], - ['LLLL', 'domenica, 14 febbraio 2010 15:25'], - ['l', '14/2/2010'], - ['ll', '14 feb 2010'], - ['lll', '14 feb 2010 15:25'], - ['llll', 'dom, 14 feb 2010 15:25'] - ], - b = moment(new Date(2010, 1, 14, 15, 25, 50, 125)), - i; - for (i = 0; i < a.length; i++) { - assert.equal(b.format(a[i][0]), a[i][1], a[i][0] + ' ---> ' + a[i][1]); - } -}); - -test('format ordinal', function (assert) { - assert.equal(moment([2011, 0, 1]).format('DDDo'), '1º', '1º'); - assert.equal(moment([2011, 0, 2]).format('DDDo'), '2º', '2º'); - assert.equal(moment([2011, 0, 3]).format('DDDo'), '3º', '3º'); - assert.equal(moment([2011, 0, 4]).format('DDDo'), '4º', '4º'); - assert.equal(moment([2011, 0, 5]).format('DDDo'), '5º', '5º'); - assert.equal(moment([2011, 0, 6]).format('DDDo'), '6º', '6º'); - assert.equal(moment([2011, 0, 7]).format('DDDo'), '7º', '7º'); - assert.equal(moment([2011, 0, 8]).format('DDDo'), '8º', '8º'); - assert.equal(moment([2011, 0, 9]).format('DDDo'), '9º', '9º'); - assert.equal(moment([2011, 0, 10]).format('DDDo'), '10º', '10º'); - - assert.equal(moment([2011, 0, 11]).format('DDDo'), '11º', '11º'); - assert.equal(moment([2011, 0, 12]).format('DDDo'), '12º', '12º'); - assert.equal(moment([2011, 0, 13]).format('DDDo'), '13º', '13º'); - assert.equal(moment([2011, 0, 14]).format('DDDo'), '14º', '14º'); - assert.equal(moment([2011, 0, 15]).format('DDDo'), '15º', '15º'); - assert.equal(moment([2011, 0, 16]).format('DDDo'), '16º', '16º'); - assert.equal(moment([2011, 0, 17]).format('DDDo'), '17º', '17º'); - assert.equal(moment([2011, 0, 18]).format('DDDo'), '18º', '18º'); - assert.equal(moment([2011, 0, 19]).format('DDDo'), '19º', '19º'); - assert.equal(moment([2011, 0, 20]).format('DDDo'), '20º', '20º'); - - assert.equal(moment([2011, 0, 21]).format('DDDo'), '21º', '21º'); - assert.equal(moment([2011, 0, 22]).format('DDDo'), '22º', '22º'); - assert.equal(moment([2011, 0, 23]).format('DDDo'), '23º', '23º'); - assert.equal(moment([2011, 0, 24]).format('DDDo'), '24º', '24º'); - assert.equal(moment([2011, 0, 25]).format('DDDo'), '25º', '25º'); - assert.equal(moment([2011, 0, 26]).format('DDDo'), '26º', '26º'); - assert.equal(moment([2011, 0, 27]).format('DDDo'), '27º', '27º'); - assert.equal(moment([2011, 0, 28]).format('DDDo'), '28º', '28º'); - assert.equal(moment([2011, 0, 29]).format('DDDo'), '29º', '29º'); - assert.equal(moment([2011, 0, 30]).format('DDDo'), '30º', '30º'); - - assert.equal(moment([2011, 0, 31]).format('DDDo'), '31º', '31º'); -}); - -test('format month', function (assert) { - var expected = 'gennaio gen_febbraio feb_marzo mar_aprile apr_maggio mag_giugno giu_luglio lug_agosto ago_settembre set_ottobre ott_novembre nov_dicembre dic'.split('_'), i; - for (i = 0; i < expected.length; i++) { - assert.equal(moment([2011, i, 1]).format('MMMM MMM'), expected[i], expected[i]); - } -}); - -test('format week', function (assert) { - var expected = 'domenica dom do_lunedì lun lu_martedì mar ma_mercoledì mer me_giovedì gio gi_venerdì ven ve_sabato sab sa'.split('_'), i; - for (i = 0; i < expected.length; i++) { - assert.equal(moment([2011, 0, 2 + i]).format('dddd ddd dd'), expected[i], expected[i]); - } -}); - -test('from', function (assert) { - var start = moment([2007, 1, 28]); - assert.equal(start.from(moment([2007, 1, 28]).add({s: 44}), true), 'alcuni secondi', '44 seconds = seconds'); - assert.equal(start.from(moment([2007, 1, 28]).add({s: 45}), true), 'un minuto', '45 seconds = a minute'); - assert.equal(start.from(moment([2007, 1, 28]).add({s: 89}), true), 'un minuto', '89 seconds = a minute'); - assert.equal(start.from(moment([2007, 1, 28]).add({s: 90}), true), '2 minuti', '90 seconds = 2 minutes'); - assert.equal(start.from(moment([2007, 1, 28]).add({m: 44}), true), '44 minuti', '44 minutes = 44 minutes'); - assert.equal(start.from(moment([2007, 1, 28]).add({m: 45}), true), 'un\'ora', '45 minutes = an hour'); - assert.equal(start.from(moment([2007, 1, 28]).add({m: 89}), true), 'un\'ora', '89 minutes = an hour'); - assert.equal(start.from(moment([2007, 1, 28]).add({m: 90}), true), '2 ore', '90 minutes = 2 hours'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 5}), true), '5 ore', '5 hours = 5 hours'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 21}), true), '21 ore', '21 hours = 21 hours'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 22}), true), 'un giorno', '22 hours = a day'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 35}), true), 'un giorno', '35 hours = a day'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 36}), true), '2 giorni', '36 hours = 2 days'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 1}), true), 'un giorno', '1 day = a day'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 5}), true), '5 giorni', '5 days = 5 days'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 25}), true), '25 giorni', '25 days = 25 days'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 26}), true), 'un mese', '26 days = a month'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 30}), true), 'un mese', '30 days = a month'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 43}), true), 'un mese', '43 days = a month'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 46}), true), '2 mesi', '46 days = 2 months'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 74}), true), '2 mesi', '75 days = 2 months'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 76}), true), '3 mesi', '76 days = 3 months'); - assert.equal(start.from(moment([2007, 1, 28]).add({M: 1}), true), 'un mese', '1 month = a month'); - assert.equal(start.from(moment([2007, 1, 28]).add({M: 5}), true), '5 mesi', '5 months = 5 months'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 345}), true), 'un anno', '345 days = a year'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 548}), true), '2 anni', '548 days = 2 years'); - assert.equal(start.from(moment([2007, 1, 28]).add({y: 1}), true), 'un anno', '1 year = a year'); - assert.equal(start.from(moment([2007, 1, 28]).add({y: 5}), true), '5 anni', '5 years = 5 years'); -}); - -test('suffix', function (assert) { - assert.equal(moment(30000).from(0), 'in alcuni secondi', 'prefix'); - assert.equal(moment(0).from(30000), 'alcuni secondi fa', 'suffix'); -}); - -test('fromNow', function (assert) { - assert.equal(moment().add({s: 30}).fromNow(), 'in alcuni secondi', 'in seconds'); - assert.equal(moment().add({d: 5}).fromNow(), 'tra 5 giorni', 'in 5 days'); -}); - -test('calendar day', function (assert) { - var a = moment().hours(12).minutes(0).seconds(0); - - assert.equal(moment(a).calendar(), 'Oggi alle 12:00', 'today at the same time'); - assert.equal(moment(a).add({m: 25}).calendar(), 'Oggi alle 12:25', 'Now plus 25 min'); - assert.equal(moment(a).add({h: 1}).calendar(), 'Oggi alle 13:00', 'Now plus 1 hour'); - assert.equal(moment(a).add({d: 1}).calendar(), 'Domani alle 12:00', 'tomorrow at the same time'); - assert.equal(moment(a).subtract({h: 1}).calendar(), 'Oggi alle 11:00', 'Now minus 1 hour'); - assert.equal(moment(a).subtract({d: 1}).calendar(), 'Ieri alle 12:00', 'yesterday at the same time'); -}); - -test('calendar next week', function (assert) { - var i, m; - for (i = 2; i < 7; i++) { - m = moment().add({d: i}); - assert.equal(m.calendar(), m.format('dddd [alle] LT'), 'Today + ' + i + ' days current time'); - m.hours(0).minutes(0).seconds(0).milliseconds(0); - assert.equal(m.calendar(), m.format('dddd [alle] LT'), 'Today + ' + i + ' days beginning of day'); - m.hours(23).minutes(59).seconds(59).milliseconds(999); - assert.equal(m.calendar(), m.format('dddd [alle] LT'), 'Today + ' + i + ' days end of day'); - } -}); - -test('calendar last week', function (assert) { - var i, m, weekday, datestring; - for (i = 2; i < 7; i++) { - m = moment().subtract({d: i}); - // Different date string - weekday = parseInt(m.format('d'), 10); - datestring = (weekday === 0) ? '[la scorsa] dddd [alle] LT' : '[lo scorso] dddd [alle] LT'; - assert.equal(m.calendar(), m.format(datestring), 'Today - ' + i + ' days current time'); - m.hours(0).minutes(0).seconds(0).milliseconds(0); - assert.equal(m.calendar(), m.format(datestring), 'Today - ' + i + ' days beginning of day'); - m.hours(23).minutes(59).seconds(59).milliseconds(999); - assert.equal(m.calendar(), m.format(datestring), 'Today - ' + i + ' days end of day'); - } -}); - -test('calendar all else', function (assert) { - var weeksAgo = moment().subtract({w: 1}), - weeksFromNow = moment().add({w: 1}); - - assert.equal(weeksAgo.calendar(), weeksAgo.format('L'), '1 week ago'); - assert.equal(weeksFromNow.calendar(), weeksFromNow.format('L'), 'in 1 week'); - - weeksAgo = moment().subtract({w: 2}); - weeksFromNow = moment().add({w: 2}); - - assert.equal(weeksAgo.calendar(), weeksAgo.format('L'), '2 weeks ago'); - assert.equal(weeksFromNow.calendar(), weeksFromNow.format('L'), 'in 2 weeks'); -}); - -test('weeks year starting sunday formatted', function (assert) { - assert.equal(moment([2012, 0, 1]).format('w ww wo'), '52 52 52º', 'Jan 1 2012 should be week 52'); - assert.equal(moment([2012, 0, 2]).format('w ww wo'), '1 01 1º', 'Jan 2 2012 should be week 1'); - assert.equal(moment([2012, 0, 8]).format('w ww wo'), '1 01 1º', 'Jan 8 2012 should be week 1'); - assert.equal(moment([2012, 0, 9]).format('w ww wo'), '2 02 2º', 'Jan 9 2012 should be week 2'); - assert.equal(moment([2012, 0, 15]).format('w ww wo'), '2 02 2º', 'Jan 15 2012 should be week 2'); -}); - -}))); - - -;(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' - && typeof require === 'function' ? factory(require('../../moment')) : - typeof define === 'function' && define.amd ? define(['../../moment'], factory) : - factory(global.moment) -}(this, (function (moment) { 'use strict'; - -function each(array, callback) { - var i; - for (i = 0; i < array.length; i++) { - callback(array[i], i, array); - } -} - -function objectKeys(obj) { - if (Object.keys) { - return Object.keys(obj); - } else { - // IE8 - var res = [], i; - for (i in obj) { - if (obj.hasOwnProperty(i)) { - res.push(i); - } - } - return res; - } -} - -// Pick the first defined of two or three arguments. - -function defineCommonLocaleTests(locale, options) { - test('lenient day of month ordinal parsing', function (assert) { - var i, ordinalStr, testMoment; - for (i = 1; i <= 31; ++i) { - ordinalStr = moment([2014, 0, i]).format('YYYY MM Do'); - testMoment = moment(ordinalStr, 'YYYY MM Do'); - assert.equal(testMoment.year(), 2014, - 'lenient day of month ordinal parsing ' + i + ' year check'); - assert.equal(testMoment.month(), 0, - 'lenient day of month ordinal parsing ' + i + ' month check'); - assert.equal(testMoment.date(), i, - 'lenient day of month ordinal parsing ' + i + ' date check'); - } - }); - - test('lenient day of month ordinal parsing of number', function (assert) { - var i, testMoment; - for (i = 1; i <= 31; ++i) { - testMoment = moment('2014 01 ' + i, 'YYYY MM Do'); - assert.equal(testMoment.year(), 2014, - 'lenient day of month ordinal parsing of number ' + i + ' year check'); - assert.equal(testMoment.month(), 0, - 'lenient day of month ordinal parsing of number ' + i + ' month check'); - assert.equal(testMoment.date(), i, - 'lenient day of month ordinal parsing of number ' + i + ' date check'); - } - }); - - test('strict day of month ordinal parsing', function (assert) { - var i, ordinalStr, testMoment; - for (i = 1; i <= 31; ++i) { - ordinalStr = moment([2014, 0, i]).format('YYYY MM Do'); - testMoment = moment(ordinalStr, 'YYYY MM Do', true); - assert.ok(testMoment.isValid(), 'strict day of month ordinal parsing ' + i); - } - }); - - test('meridiem invariant', function (assert) { - var h, m, t1, t2; - for (h = 0; h < 24; ++h) { - for (m = 0; m < 60; m += 15) { - t1 = moment.utc([2000, 0, 1, h, m]); - t2 = moment.utc(t1.format('A h:mm'), 'A h:mm'); - assert.equal(t2.format('HH:mm'), t1.format('HH:mm'), - 'meridiem at ' + t1.format('HH:mm')); - } - } - }); - - test('date format correctness', function (assert) { - var data, tokens; - data = moment.localeData()._longDateFormat; - tokens = objectKeys(data); - each(tokens, function (srchToken) { - // Check each format string to make sure it does not contain any - // tokens that need to be expanded. - each(tokens, function (baseToken) { - // strip escaped sequences - var format = data[baseToken].replace(/(\[[^\]]*\])/g, ''); - assert.equal(false, !!~format.indexOf(srchToken), - 'contains ' + srchToken + ' in ' + baseToken); - }); - }); - }); - - test('month parsing correctness', function (assert) { - var i, m; - - if (locale === 'tr') { - // I can't fix it :( - expect(0); - return; - } - function tester(format) { - var r; - r = moment(m.format(format), format); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format); - r = moment(m.format(format).toLocaleUpperCase(), format); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' upper'); - r = moment(m.format(format).toLocaleLowerCase(), format); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' lower'); - - r = moment(m.format(format), format, true); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' strict'); - r = moment(m.format(format).toLocaleUpperCase(), format, true); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' upper strict'); - r = moment(m.format(format).toLocaleLowerCase(), format, true); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' lower strict'); - } - - for (i = 0; i < 12; ++i) { - m = moment([2015, i, 15, 18]); - tester('MMM'); - tester('MMM.'); - tester('MMMM'); - tester('MMMM.'); - } - }); - - test('weekday parsing correctness', function (assert) { - var i, m; - - if (locale === 'tr' || locale === 'az' || locale === 'ro') { - // tr, az: There is a lower-case letter (ı), that converted to - // upper then lower changes to i - // ro: there is the letter ț which behaves weird under IE8 - expect(0); - return; - } - function tester(format) { - var r, baseMsg = 'weekday ' + m.weekday() + ' fmt ' + format + ' ' + m.toISOString(); - r = moment(m.format(format), format); - assert.equal(r.weekday(), m.weekday(), baseMsg); - r = moment(m.format(format).toLocaleUpperCase(), format); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' upper'); - r = moment(m.format(format).toLocaleLowerCase(), format); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' lower'); - - r = moment(m.format(format), format, true); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' strict'); - r = moment(m.format(format).toLocaleUpperCase(), format, true); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' upper strict'); - r = moment(m.format(format).toLocaleLowerCase(), format, true); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' lower strict'); - } - - for (i = 0; i < 7; ++i) { - m = moment.utc([2015, 0, i + 1, 18]); - tester('dd'); - tester('ddd'); - tester('dddd'); - } - }); - - test('valid localeData', function (assert) { - assert.equal(moment().localeData().months().length, 12, 'months should return 12 months'); - assert.equal(moment().localeData().monthsShort().length, 12, 'monthsShort should return 12 months'); - assert.equal(moment().localeData().weekdays().length, 7, 'weekdays should return 7 days'); - assert.equal(moment().localeData().weekdaysShort().length, 7, 'weekdaysShort should return 7 days'); - assert.equal(moment().localeData().weekdaysMin().length, 7, 'monthsShort should return 7 days'); - }); -} - -function setupDeprecationHandler(test, moment$$1, scope) { - test._expectedDeprecations = null; - test._observedDeprecations = null; - test._oldSupress = moment$$1.suppressDeprecationWarnings; - moment$$1.suppressDeprecationWarnings = true; - test.expectedDeprecations = function () { - test._expectedDeprecations = arguments; - test._observedDeprecations = []; - }; - moment$$1.deprecationHandler = function (name, msg) { - var deprecationId = matchedDeprecation(name, msg, test._expectedDeprecations); - if (deprecationId === -1) { - throw new Error('Unexpected deprecation thrown name=' + - name + ' msg=' + msg); - } - test._observedDeprecations[deprecationId] = 1; - }; -} - -function teardownDeprecationHandler(test, moment$$1, scope) { - moment$$1.suppressDeprecationWarnings = test._oldSupress; - - if (test._expectedDeprecations != null) { - var missedDeprecations = []; - each(test._expectedDeprecations, function (deprecationPattern, id) { - if (test._observedDeprecations[id] !== 1) { - missedDeprecations.push(deprecationPattern); - } - }); - if (missedDeprecations.length !== 0) { - throw new Error('Expected deprecation warnings did not happen: ' + - missedDeprecations.join(' ')); - } - } -} - -function matchedDeprecation(name, msg, deprecations) { - if (deprecations == null) { - return -1; - } - for (var i = 0; i < deprecations.length; ++i) { - if (name != null && name === deprecations[i]) { - return i; - } - if (msg != null && msg.substring(0, deprecations[i].length) === deprecations[i]) { - return i; - } - } - return -1; -} - -/*global QUnit:false*/ - -var test = QUnit.test; - -var expect = QUnit.expect; - - - -function localeModule (name, lifecycle) { - QUnit.module('locale:' + name, { - setup : function () { - moment.locale(name); - moment.createFromInputFallback = function (config) { - throw new Error('input not handled by moment: ' + config._i); - }; - setupDeprecationHandler(test, moment, 'locale'); - if (lifecycle && lifecycle.setup) { - lifecycle.setup(); - } - }, - teardown : function () { - moment.locale('en'); - teardownDeprecationHandler(test, moment, 'locale'); - if (lifecycle && lifecycle.teardown) { - lifecycle.teardown(); - } - } - }); - defineCommonLocaleTests(name, -1, -1); -} - -localeModule('ja'); - -test('parse', function (assert) { - var tests = '1月 1月_2月 2月_3月 3月_4月 4月_5月 5月_6月 6月_7月 7月_8月 8月_9月 9月_10月 10月_11月 11月_12月 12月'.split('_'), i; - function equalTest(input, mmm, i) { - assert.equal(moment(input, mmm).month(), i, input + ' should be month ' + (i + 1)); - } - for (i = 0; i < 12; i++) { - tests[i] = tests[i].split(' '); - equalTest(tests[i][0], 'MMM', i); - equalTest(tests[i][1], 'MMM', i); - equalTest(tests[i][0], 'MMMM', i); - equalTest(tests[i][1], 'MMMM', i); - equalTest(tests[i][0].toLocaleLowerCase(), 'MMMM', i); - equalTest(tests[i][1].toLocaleLowerCase(), 'MMMM', i); - equalTest(tests[i][0].toLocaleUpperCase(), 'MMMM', i); - equalTest(tests[i][1].toLocaleUpperCase(), 'MMMM', i); - } -}); - -test('format', function (assert) { - var a = [ - ['dddd, MMMM Do YYYY, a h:mm:ss', '日曜日, 2月 14日 2010, 午後 3:25:50'], - ['ddd, Ah', '日, 午後3'], - ['M Mo MM MMMM MMM', '2 2 02 2月 2月'], - ['YYYY YY', '2010 10'], - ['D Do DD', '14 14日 14'], - ['d do dddd ddd dd', '0 0日 日曜日 日 日'], - ['DDD DDDo DDDD', '45 45日 045'], - ['w wo ww', '8 8 08'], - ['h hh', '3 03'], - ['H HH', '15 15'], - ['m mm', '25 25'], - ['s ss', '50 50'], - ['a A', '午後 午後'], - ['[the] DDDo [day of the year]', 'the 45日 day of the year'], - ['LTS', '15:25:50'], - ['L', '2010/02/14'], - ['LL', '2010年2月14日'], - ['LLL', '2010年2月14日 15:25'], - ['LLLL', '2010年2月14日 15:25 日曜日'], - ['l', '2010/02/14'], - ['ll', '2010年2月14日'], - ['lll', '2010年2月14日 15:25'], - ['llll', '2010年2月14日 15:25 日曜日'] - ], - b = moment(new Date(2010, 1, 14, 15, 25, 50, 125)), - i; - for (i = 0; i < a.length; i++) { - assert.equal(b.format(a[i][0]), a[i][1], a[i][0] + ' ---> ' + a[i][1]); - } -}); - -test('format month', function (assert) { - var expected = '1月 1月_2月 2月_3月 3月_4月 4月_5月 5月_6月 6月_7月 7月_8月 8月_9月 9月_10月 10月_11月 11月_12月 12月'.split('_'), i; - for (i = 0; i < expected.length; i++) { - assert.equal(moment([2011, i, 1]).format('MMMM MMM'), expected[i], expected[i]); - } -}); - -test('format week', function (assert) { - var expected = '日曜日 日 日_月曜日 月 月_火曜日 火 火_水曜日 水 水_木曜日 木 木_金曜日 金 金_土曜日 土 土'.split('_'), i; - for (i = 0; i < expected.length; i++) { - assert.equal(moment([2011, 0, 2 + i]).format('dddd ddd dd'), expected[i], expected[i]); - } -}); - -test('from', function (assert) { - var start = moment([2007, 1, 28]); - assert.equal(start.from(moment([2007, 1, 28]).add({s: 44}), true), '数秒', '44 seconds = a few seconds'); - assert.equal(start.from(moment([2007, 1, 28]).add({s: 45}), true), '1分', '45 seconds = a minute'); - assert.equal(start.from(moment([2007, 1, 28]).add({s: 89}), true), '1分', '89 seconds = a minute'); - assert.equal(start.from(moment([2007, 1, 28]).add({s: 90}), true), '2分', '90 seconds = 2 minutes'); - assert.equal(start.from(moment([2007, 1, 28]).add({m: 44}), true), '44分', '44 minutes = 44 minutes'); - assert.equal(start.from(moment([2007, 1, 28]).add({m: 45}), true), '1時間', '45 minutes = an hour'); - assert.equal(start.from(moment([2007, 1, 28]).add({m: 89}), true), '1時間', '89 minutes = an hour'); - assert.equal(start.from(moment([2007, 1, 28]).add({m: 90}), true), '2時間', '90 minutes = 2 hours'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 5}), true), '5時間', '5 hours = 5 hours'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 21}), true), '21時間', '21 hours = 21 hours'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 22}), true), '1日', '22 hours = a day'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 35}), true), '1日', '35 hours = a day'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 36}), true), '2日', '36 hours = 2 days'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 1}), true), '1日', '1 day = a day'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 5}), true), '5日', '5 days = 5 days'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 25}), true), '25日', '25 days = 25 days'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 26}), true), '1ヶ月', '26 days = a month'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 30}), true), '1ヶ月', '30 days = a month'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 43}), true), '1ヶ月', '43 days = a month'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 46}), true), '2ヶ月', '46 days = 2 months'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 74}), true), '2ヶ月', '75 days = 2 months'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 76}), true), '3ヶ月', '76 days = 3 months'); - assert.equal(start.from(moment([2007, 1, 28]).add({M: 1}), true), '1ヶ月', '1 month = a month'); - assert.equal(start.from(moment([2007, 1, 28]).add({M: 5}), true), '5ヶ月', '5 months = 5 months'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 345}), true), '1年', '345 days = a year'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 548}), true), '2年', '548 days = 2 years'); - assert.equal(start.from(moment([2007, 1, 28]).add({y: 1}), true), '1年', '1 year = a year'); - assert.equal(start.from(moment([2007, 1, 28]).add({y: 5}), true), '5年', '5 years = 5 years'); -}); - -test('suffix', function (assert) { - assert.equal(moment(30000).from(0), '数秒後', 'prefix'); - assert.equal(moment(0).from(30000), '数秒前', 'suffix'); -}); - -test('now from now', function (assert) { - assert.equal(moment().fromNow(), '数秒前', 'now from now should display as in the past'); -}); - -test('fromNow', function (assert) { - assert.equal(moment().add({s: 30}).fromNow(), '数秒後', 'in a few seconds'); - assert.equal(moment().add({d: 5}).fromNow(), '5日後', 'in 5 days'); -}); - -test('calendar day', function (assert) { - var a = moment().hours(12).minutes(0).seconds(0); - - assert.equal(moment(a).calendar(), '今日 12:00', 'today at the same time'); - assert.equal(moment(a).add({m: 25}).calendar(), '今日 12:25', 'Now plus 25 min'); - assert.equal(moment(a).add({h: 1}).calendar(), '今日 13:00', 'Now plus 1 hour'); - assert.equal(moment(a).add({d: 1}).calendar(), '明日 12:00', 'tomorrow at the same time'); - assert.equal(moment(a).subtract({h: 1}).calendar(), '今日 11:00', 'Now minus 1 hour'); - assert.equal(moment(a).subtract({d: 1}).calendar(), '昨日 12:00', 'yesterday at the same time'); -}); - -test('calendar next week', function (assert) { - var i, m; - for (i = 2; i < 7; i++) { - m = moment().add({d: i}); - assert.equal(m.calendar(), m.format('[来週]dddd LT'), 'Today + ' + i + ' days current time'); - m.hours(0).minutes(0).seconds(0).milliseconds(0); - assert.equal(m.calendar(), m.format('[来週]dddd LT'), 'Today + ' + i + ' days beginning of day'); - m.hours(23).minutes(59).seconds(59).milliseconds(999); - assert.equal(m.calendar(), m.format('[来週]dddd LT'), 'Today + ' + i + ' days end of day'); - } -}); - -test('calendar last week', function (assert) { - var i, m; - for (i = 2; i < 7; i++) { - m = moment().subtract({d: i}); - assert.equal(m.calendar(), m.format('[前週]dddd LT'), 'Today - ' + i + ' days current time'); - m.hours(0).minutes(0).seconds(0).milliseconds(0); - assert.equal(m.calendar(), m.format('[前週]dddd LT'), 'Today - ' + i + ' days beginning of day'); - m.hours(23).minutes(59).seconds(59).milliseconds(999); - assert.equal(m.calendar(), m.format('[前週]dddd LT'), 'Today - ' + i + ' days end of day'); - } -}); - -test('calendar all else', function (assert) { - var weeksAgo = moment().subtract({w: 1}), - weeksFromNow = moment().add({w: 1}); - - assert.equal(weeksAgo.calendar(), weeksAgo.format('L'), '1 week ago'); - assert.equal(weeksFromNow.calendar(), weeksFromNow.format('L'), 'in 1 week'); - - weeksAgo = moment().subtract({w: 2}); - weeksFromNow = moment().add({w: 2}); - - assert.equal(weeksAgo.calendar(), weeksAgo.format('L'), '2 weeks ago'); - assert.equal(weeksFromNow.calendar(), weeksFromNow.format('L'), 'in 2 weeks'); -}); - -test('weeks year starting sunday format', function (assert) { - assert.equal(moment([2012, 0, 1]).format('w ww wo'), '1 01 1', 'Jan 1 2012 should be week 1'); - assert.equal(moment([2012, 0, 7]).format('w ww wo'), '1 01 1', 'Jan 7 2012 should be week 1'); - assert.equal(moment([2012, 0, 8]).format('w ww wo'), '2 02 2', 'Jan 8 2012 should be week 2'); - assert.equal(moment([2012, 0, 14]).format('w ww wo'), '2 02 2', 'Jan 14 2012 should be week 2'); - assert.equal(moment([2012, 0, 15]).format('w ww wo'), '3 03 3', 'Jan 15 2012 should be week 3'); -}); - -}))); - - -;(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' - && typeof require === 'function' ? factory(require('../../moment')) : - typeof define === 'function' && define.amd ? define(['../../moment'], factory) : - factory(global.moment) -}(this, (function (moment) { 'use strict'; - -function each(array, callback) { - var i; - for (i = 0; i < array.length; i++) { - callback(array[i], i, array); - } -} - -function objectKeys(obj) { - if (Object.keys) { - return Object.keys(obj); - } else { - // IE8 - var res = [], i; - for (i in obj) { - if (obj.hasOwnProperty(i)) { - res.push(i); - } - } - return res; - } -} - -// Pick the first defined of two or three arguments. - -function defineCommonLocaleTests(locale, options) { - test('lenient day of month ordinal parsing', function (assert) { - var i, ordinalStr, testMoment; - for (i = 1; i <= 31; ++i) { - ordinalStr = moment([2014, 0, i]).format('YYYY MM Do'); - testMoment = moment(ordinalStr, 'YYYY MM Do'); - assert.equal(testMoment.year(), 2014, - 'lenient day of month ordinal parsing ' + i + ' year check'); - assert.equal(testMoment.month(), 0, - 'lenient day of month ordinal parsing ' + i + ' month check'); - assert.equal(testMoment.date(), i, - 'lenient day of month ordinal parsing ' + i + ' date check'); - } - }); - - test('lenient day of month ordinal parsing of number', function (assert) { - var i, testMoment; - for (i = 1; i <= 31; ++i) { - testMoment = moment('2014 01 ' + i, 'YYYY MM Do'); - assert.equal(testMoment.year(), 2014, - 'lenient day of month ordinal parsing of number ' + i + ' year check'); - assert.equal(testMoment.month(), 0, - 'lenient day of month ordinal parsing of number ' + i + ' month check'); - assert.equal(testMoment.date(), i, - 'lenient day of month ordinal parsing of number ' + i + ' date check'); - } - }); - - test('strict day of month ordinal parsing', function (assert) { - var i, ordinalStr, testMoment; - for (i = 1; i <= 31; ++i) { - ordinalStr = moment([2014, 0, i]).format('YYYY MM Do'); - testMoment = moment(ordinalStr, 'YYYY MM Do', true); - assert.ok(testMoment.isValid(), 'strict day of month ordinal parsing ' + i); - } - }); - - test('meridiem invariant', function (assert) { - var h, m, t1, t2; - for (h = 0; h < 24; ++h) { - for (m = 0; m < 60; m += 15) { - t1 = moment.utc([2000, 0, 1, h, m]); - t2 = moment.utc(t1.format('A h:mm'), 'A h:mm'); - assert.equal(t2.format('HH:mm'), t1.format('HH:mm'), - 'meridiem at ' + t1.format('HH:mm')); - } - } - }); - - test('date format correctness', function (assert) { - var data, tokens; - data = moment.localeData()._longDateFormat; - tokens = objectKeys(data); - each(tokens, function (srchToken) { - // Check each format string to make sure it does not contain any - // tokens that need to be expanded. - each(tokens, function (baseToken) { - // strip escaped sequences - var format = data[baseToken].replace(/(\[[^\]]*\])/g, ''); - assert.equal(false, !!~format.indexOf(srchToken), - 'contains ' + srchToken + ' in ' + baseToken); - }); - }); - }); - - test('month parsing correctness', function (assert) { - var i, m; - - if (locale === 'tr') { - // I can't fix it :( - expect(0); - return; - } - function tester(format) { - var r; - r = moment(m.format(format), format); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format); - r = moment(m.format(format).toLocaleUpperCase(), format); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' upper'); - r = moment(m.format(format).toLocaleLowerCase(), format); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' lower'); - - r = moment(m.format(format), format, true); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' strict'); - r = moment(m.format(format).toLocaleUpperCase(), format, true); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' upper strict'); - r = moment(m.format(format).toLocaleLowerCase(), format, true); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' lower strict'); - } - - for (i = 0; i < 12; ++i) { - m = moment([2015, i, 15, 18]); - tester('MMM'); - tester('MMM.'); - tester('MMMM'); - tester('MMMM.'); - } - }); - - test('weekday parsing correctness', function (assert) { - var i, m; - - if (locale === 'tr' || locale === 'az' || locale === 'ro') { - // tr, az: There is a lower-case letter (ı), that converted to - // upper then lower changes to i - // ro: there is the letter ț which behaves weird under IE8 - expect(0); - return; - } - function tester(format) { - var r, baseMsg = 'weekday ' + m.weekday() + ' fmt ' + format + ' ' + m.toISOString(); - r = moment(m.format(format), format); - assert.equal(r.weekday(), m.weekday(), baseMsg); - r = moment(m.format(format).toLocaleUpperCase(), format); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' upper'); - r = moment(m.format(format).toLocaleLowerCase(), format); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' lower'); - - r = moment(m.format(format), format, true); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' strict'); - r = moment(m.format(format).toLocaleUpperCase(), format, true); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' upper strict'); - r = moment(m.format(format).toLocaleLowerCase(), format, true); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' lower strict'); - } - - for (i = 0; i < 7; ++i) { - m = moment.utc([2015, 0, i + 1, 18]); - tester('dd'); - tester('ddd'); - tester('dddd'); - } - }); - - test('valid localeData', function (assert) { - assert.equal(moment().localeData().months().length, 12, 'months should return 12 months'); - assert.equal(moment().localeData().monthsShort().length, 12, 'monthsShort should return 12 months'); - assert.equal(moment().localeData().weekdays().length, 7, 'weekdays should return 7 days'); - assert.equal(moment().localeData().weekdaysShort().length, 7, 'weekdaysShort should return 7 days'); - assert.equal(moment().localeData().weekdaysMin().length, 7, 'monthsShort should return 7 days'); - }); -} - -function setupDeprecationHandler(test, moment$$1, scope) { - test._expectedDeprecations = null; - test._observedDeprecations = null; - test._oldSupress = moment$$1.suppressDeprecationWarnings; - moment$$1.suppressDeprecationWarnings = true; - test.expectedDeprecations = function () { - test._expectedDeprecations = arguments; - test._observedDeprecations = []; - }; - moment$$1.deprecationHandler = function (name, msg) { - var deprecationId = matchedDeprecation(name, msg, test._expectedDeprecations); - if (deprecationId === -1) { - throw new Error('Unexpected deprecation thrown name=' + - name + ' msg=' + msg); - } - test._observedDeprecations[deprecationId] = 1; - }; -} - -function teardownDeprecationHandler(test, moment$$1, scope) { - moment$$1.suppressDeprecationWarnings = test._oldSupress; - - if (test._expectedDeprecations != null) { - var missedDeprecations = []; - each(test._expectedDeprecations, function (deprecationPattern, id) { - if (test._observedDeprecations[id] !== 1) { - missedDeprecations.push(deprecationPattern); - } - }); - if (missedDeprecations.length !== 0) { - throw new Error('Expected deprecation warnings did not happen: ' + - missedDeprecations.join(' ')); - } - } -} - -function matchedDeprecation(name, msg, deprecations) { - if (deprecations == null) { - return -1; - } - for (var i = 0; i < deprecations.length; ++i) { - if (name != null && name === deprecations[i]) { - return i; - } - if (msg != null && msg.substring(0, deprecations[i].length) === deprecations[i]) { - return i; - } - } - return -1; -} - -/*global QUnit:false*/ - -var test = QUnit.test; - -var expect = QUnit.expect; - - - -function localeModule (name, lifecycle) { - QUnit.module('locale:' + name, { - setup : function () { - moment.locale(name); - moment.createFromInputFallback = function (config) { - throw new Error('input not handled by moment: ' + config._i); - }; - setupDeprecationHandler(test, moment, 'locale'); - if (lifecycle && lifecycle.setup) { - lifecycle.setup(); - } - }, - teardown : function () { - moment.locale('en'); - teardownDeprecationHandler(test, moment, 'locale'); - if (lifecycle && lifecycle.teardown) { - lifecycle.teardown(); - } - } - }); - defineCommonLocaleTests(name, -1, -1); -} - -localeModule('jv'); - -test('parse', function (assert) { - var tests = 'Januari Jan_Februari Feb_Maret Mar_April Apr_Mei Mei_Juni Jun_Juli Jul_Agustus Ags_September Sep_Oktober Okt_Nopember Nop_Desember Des'.split('_'), i; - function equalTest(input, mmm, i) { - assert.equal(moment(input, mmm).month(), i, input + ' should be month ' + (i + 1)); - } - for (i = 0; i < 12; i++) { - tests[i] = tests[i].split(' '); - equalTest(tests[i][0], 'MMM', i); - equalTest(tests[i][1], 'MMM', i); - equalTest(tests[i][0], 'MMMM', i); - equalTest(tests[i][1], 'MMMM', i); - equalTest(tests[i][0].toLocaleLowerCase(), 'MMMM', i); - equalTest(tests[i][1].toLocaleLowerCase(), 'MMMM', i); - equalTest(tests[i][0].toLocaleUpperCase(), 'MMMM', i); - equalTest(tests[i][1].toLocaleUpperCase(), 'MMMM', i); - } -}); - -test('format', function (assert) { - var a = [ - ['dddd, MMMM Do YYYY, h:mm:ss a', 'Minggu, Februari 14 2010, 3:25:50 sonten'], - ['ddd, hA', 'Min, 3sonten'], - ['M Mo MM MMMM MMM', '2 2 02 Februari Feb'], - ['YYYY YY', '2010 10'], - ['D Do DD', '14 14 14'], - ['d do dddd ddd dd', '0 0 Minggu Min Mg'], - ['DDD DDDo DDDD', '45 45 045'], - ['w wo ww', '7 7 07'], - ['h hh', '3 03'], - ['H HH', '15 15'], - ['m mm', '25 25'], - ['s ss', '50 50'], - ['a A', 'sonten sonten'], - ['[the] DDDo [day of the year]', 'the 45 day of the year'], - ['LTS', '15.25.50'], - ['L', '14/02/2010'], - ['LL', '14 Februari 2010'], - ['LLL', '14 Februari 2010 pukul 15.25'], - ['LLLL', 'Minggu, 14 Februari 2010 pukul 15.25'], - ['l', '14/2/2010'], - ['ll', '14 Feb 2010'], - ['lll', '14 Feb 2010 pukul 15.25'], - ['llll', 'Min, 14 Feb 2010 pukul 15.25'] - ], - b = moment(new Date(2010, 1, 14, 15, 25, 50, 125)), - i; - for (i = 0; i < a.length; i++) { - assert.equal(b.format(a[i][0]), a[i][1], a[i][0] + ' ---> ' + a[i][1]); - } -}); - -test('format month', function (assert) { - var expected = 'Januari Jan_Februari Feb_Maret Mar_April Apr_Mei Mei_Juni Jun_Juli Jul_Agustus Ags_September Sep_Oktober Okt_Nopember Nop_Desember Des'.split('_'), i; - for (i = 0; i < expected.length; i++) { - assert.equal(moment([2011, i, 1]).format('MMMM MMM'), expected[i], expected[i]); - } -}); - -test('format week', function (assert) { - var expected = 'Minggu Min Mg_Senen Sen Sn_Seloso Sel Sl_Rebu Reb Rb_Kemis Kem Km_Jemuwah Jem Jm_Septu Sep Sp'.split('_'), i; - for (i = 0; i < expected.length; i++) { - assert.equal(moment([2011, 0, 2 + i]).format('dddd ddd dd'), expected[i], expected[i]); - } -}); - -test('from', function (assert) { - var start = moment([2007, 1, 28]); - assert.equal(start.from(moment([2007, 1, 28]).add({s: 44}), true), 'sawetawis detik', '44 seconds = a few seconds'); - assert.equal(start.from(moment([2007, 1, 28]).add({s: 45}), true), 'setunggal menit', '45 seconds = a minute'); - assert.equal(start.from(moment([2007, 1, 28]).add({s: 89}), true), 'setunggal menit', '89 seconds = a minute'); - assert.equal(start.from(moment([2007, 1, 28]).add({s: 90}), true), '2 menit', '90 seconds = 2 minutes'); - assert.equal(start.from(moment([2007, 1, 28]).add({m: 44}), true), '44 menit', '44 minutes = 44 minutes'); - assert.equal(start.from(moment([2007, 1, 28]).add({m: 45}), true), 'setunggal jam', '45 minutes = an hour'); - assert.equal(start.from(moment([2007, 1, 28]).add({m: 89}), true), 'setunggal jam', '89 minutes = an hour'); - assert.equal(start.from(moment([2007, 1, 28]).add({m: 90}), true), '2 jam', '90 minutes = 2 hours'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 5}), true), '5 jam', '5 hours = 5 hours'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 21}), true), '21 jam', '21 hours = 21 hours'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 22}), true), 'sedinten', '22 hours = a day'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 35}), true), 'sedinten', '35 hours = a day'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 36}), true), '2 dinten', '36 hours = 2 days'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 1}), true), 'sedinten', '1 day = a day'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 5}), true), '5 dinten', '5 days = 5 days'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 25}), true), '25 dinten', '25 days = 25 days'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 26}), true), 'sewulan', '26 days = a month'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 30}), true), 'sewulan', '30 days = a month'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 43}), true), 'sewulan', '43 days = a month'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 46}), true), '2 wulan', '46 days = 2 months'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 74}), true), '2 wulan', '75 days = 2 months'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 76}), true), '3 wulan', '76 days = 3 months'); - assert.equal(start.from(moment([2007, 1, 28]).add({M: 1}), true), 'sewulan', '1 month = a month'); - assert.equal(start.from(moment([2007, 1, 28]).add({M: 5}), true), '5 wulan', '5 months = 5 months'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 345}), true), 'setaun', '345 days = a year'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 548}), true), '2 taun', '548 days = 2 years'); - assert.equal(start.from(moment([2007, 1, 28]).add({y: 1}), true), 'setaun', '1 year = a year'); - assert.equal(start.from(moment([2007, 1, 28]).add({y: 5}), true), '5 taun', '5 years = 5 years'); -}); - -test('suffix', function (assert) { - assert.equal(moment(30000).from(0), 'wonten ing sawetawis detik', 'prefix'); - assert.equal(moment(0).from(30000), 'sawetawis detik ingkang kepengker', 'suffix'); -}); - -test('now from now', function (assert) { - assert.equal(moment().fromNow(), 'sawetawis detik ingkang kepengker', 'now from now should display as in the past'); -}); - -test('fromNow', function (assert) { - assert.equal(moment().add({s: 30}).fromNow(), 'wonten ing sawetawis detik', 'in a few seconds'); - assert.equal(moment().add({d: 5}).fromNow(), 'wonten ing 5 dinten', 'in 5 days'); -}); - -test('calendar day', function (assert) { - var a = moment().hours(12).minutes(0).seconds(0); - - assert.equal(moment(a).calendar(), 'Dinten puniko pukul 12.00', 'today at the same time'); - assert.equal(moment(a).add({m: 25}).calendar(), 'Dinten puniko pukul 12.25', 'Now plus 25 min'); - assert.equal(moment(a).add({h: 1}).calendar(), 'Dinten puniko pukul 13.00', 'Now plus 1 hour'); - assert.equal(moment(a).add({d: 1}).calendar(), 'Mbenjang pukul 12.00', 'tomorrow at the same time'); - assert.equal(moment(a).subtract({h: 1}).calendar(), 'Dinten puniko pukul 11.00', 'Now minus 1 hour'); - assert.equal(moment(a).subtract({d: 1}).calendar(), 'Kala wingi pukul 12.00', 'yesterday at the same time'); -}); - -test('calendar next week', function (assert) { - var i, m; - for (i = 2; i < 7; i++) { - m = moment().add({d: i}); - assert.equal(m.calendar(), m.format('dddd [pukul] LT'), 'Today + ' + i + ' days current time'); - m.hours(0).minutes(0).seconds(0).milliseconds(0); - assert.equal(m.calendar(), m.format('dddd [pukul] LT'), 'Today + ' + i + ' days beginning of day'); - m.hours(23).minutes(59).seconds(59).milliseconds(999); - assert.equal(m.calendar(), m.format('dddd [pukul] LT'), 'Today + ' + i + ' days end of day'); - } -}); - -test('calendar last week', function (assert) { - var i, m; - for (i = 2; i < 7; i++) { - m = moment().subtract({d: i}); - assert.equal(m.calendar(), m.format('dddd [kepengker pukul] LT'), 'Today - ' + i + ' days current time'); - m.hours(0).minutes(0).seconds(0).milliseconds(0); - assert.equal(m.calendar(), m.format('dddd [kepengker pukul] LT'), 'Today - ' + i + ' days beginning of day'); - m.hours(23).minutes(59).seconds(59).milliseconds(999); - assert.equal(m.calendar(), m.format('dddd [kepengker pukul] LT'), 'Today - ' + i + ' days end of day'); - } -}); - -test('calendar all else', function (assert) { - var weeksAgo = moment().subtract({w: 1}), - weeksFromNow = moment().add({w: 1}); - - assert.equal(weeksAgo.calendar(), weeksAgo.format('L'), '1 week ago'); - assert.equal(weeksFromNow.calendar(), weeksFromNow.format('L'), 'in 1 week'); - - weeksAgo = moment().subtract({w: 2}); - weeksFromNow = moment().add({w: 2}); - - assert.equal(weeksAgo.calendar(), weeksAgo.format('L'), '2 weeks ago'); - assert.equal(weeksFromNow.calendar(), weeksFromNow.format('L'), 'in 2 weeks'); -}); - -// Monday is the first day of the week. -// The week that contains Jan 1st is the first week of the year. - -test('weeks year starting sunday formatted', function (assert) { - assert.equal(moment([2011, 11, 26]).format('w ww wo'), '1 01 1', 'Dec 26 2011 should be week 1'); - assert.equal(moment([2012, 0, 1]).format('w ww wo'), '1 01 1', 'Jan 1 2012 should be week 1'); - assert.equal(moment([2012, 0, 2]).format('w ww wo'), '2 02 2', 'Jan 2 2012 should be week 2'); - assert.equal(moment([2012, 0, 8]).format('w ww wo'), '2 02 2', 'Jan 8 2012 should be week 2'); - assert.equal(moment([2012, 0, 9]).format('w ww wo'), '3 03 3', 'Jan 9 2012 should be week 3'); -}); - -}))); - - -;(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' - && typeof require === 'function' ? factory(require('../../moment')) : - typeof define === 'function' && define.amd ? define(['../../moment'], factory) : - factory(global.moment) -}(this, (function (moment) { 'use strict'; - -function each(array, callback) { - var i; - for (i = 0; i < array.length; i++) { - callback(array[i], i, array); - } -} - -function objectKeys(obj) { - if (Object.keys) { - return Object.keys(obj); - } else { - // IE8 - var res = [], i; - for (i in obj) { - if (obj.hasOwnProperty(i)) { - res.push(i); - } - } - return res; - } -} - -// Pick the first defined of two or three arguments. - -function defineCommonLocaleTests(locale, options) { - test('lenient day of month ordinal parsing', function (assert) { - var i, ordinalStr, testMoment; - for (i = 1; i <= 31; ++i) { - ordinalStr = moment([2014, 0, i]).format('YYYY MM Do'); - testMoment = moment(ordinalStr, 'YYYY MM Do'); - assert.equal(testMoment.year(), 2014, - 'lenient day of month ordinal parsing ' + i + ' year check'); - assert.equal(testMoment.month(), 0, - 'lenient day of month ordinal parsing ' + i + ' month check'); - assert.equal(testMoment.date(), i, - 'lenient day of month ordinal parsing ' + i + ' date check'); - } - }); - - test('lenient day of month ordinal parsing of number', function (assert) { - var i, testMoment; - for (i = 1; i <= 31; ++i) { - testMoment = moment('2014 01 ' + i, 'YYYY MM Do'); - assert.equal(testMoment.year(), 2014, - 'lenient day of month ordinal parsing of number ' + i + ' year check'); - assert.equal(testMoment.month(), 0, - 'lenient day of month ordinal parsing of number ' + i + ' month check'); - assert.equal(testMoment.date(), i, - 'lenient day of month ordinal parsing of number ' + i + ' date check'); - } - }); - - test('strict day of month ordinal parsing', function (assert) { - var i, ordinalStr, testMoment; - for (i = 1; i <= 31; ++i) { - ordinalStr = moment([2014, 0, i]).format('YYYY MM Do'); - testMoment = moment(ordinalStr, 'YYYY MM Do', true); - assert.ok(testMoment.isValid(), 'strict day of month ordinal parsing ' + i); - } - }); - - test('meridiem invariant', function (assert) { - var h, m, t1, t2; - for (h = 0; h < 24; ++h) { - for (m = 0; m < 60; m += 15) { - t1 = moment.utc([2000, 0, 1, h, m]); - t2 = moment.utc(t1.format('A h:mm'), 'A h:mm'); - assert.equal(t2.format('HH:mm'), t1.format('HH:mm'), - 'meridiem at ' + t1.format('HH:mm')); - } - } - }); - - test('date format correctness', function (assert) { - var data, tokens; - data = moment.localeData()._longDateFormat; - tokens = objectKeys(data); - each(tokens, function (srchToken) { - // Check each format string to make sure it does not contain any - // tokens that need to be expanded. - each(tokens, function (baseToken) { - // strip escaped sequences - var format = data[baseToken].replace(/(\[[^\]]*\])/g, ''); - assert.equal(false, !!~format.indexOf(srchToken), - 'contains ' + srchToken + ' in ' + baseToken); - }); - }); - }); - - test('month parsing correctness', function (assert) { - var i, m; - - if (locale === 'tr') { - // I can't fix it :( - expect(0); - return; - } - function tester(format) { - var r; - r = moment(m.format(format), format); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format); - r = moment(m.format(format).toLocaleUpperCase(), format); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' upper'); - r = moment(m.format(format).toLocaleLowerCase(), format); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' lower'); - - r = moment(m.format(format), format, true); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' strict'); - r = moment(m.format(format).toLocaleUpperCase(), format, true); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' upper strict'); - r = moment(m.format(format).toLocaleLowerCase(), format, true); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' lower strict'); - } - - for (i = 0; i < 12; ++i) { - m = moment([2015, i, 15, 18]); - tester('MMM'); - tester('MMM.'); - tester('MMMM'); - tester('MMMM.'); - } - }); - - test('weekday parsing correctness', function (assert) { - var i, m; - - if (locale === 'tr' || locale === 'az' || locale === 'ro') { - // tr, az: There is a lower-case letter (ı), that converted to - // upper then lower changes to i - // ro: there is the letter ț which behaves weird under IE8 - expect(0); - return; - } - function tester(format) { - var r, baseMsg = 'weekday ' + m.weekday() + ' fmt ' + format + ' ' + m.toISOString(); - r = moment(m.format(format), format); - assert.equal(r.weekday(), m.weekday(), baseMsg); - r = moment(m.format(format).toLocaleUpperCase(), format); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' upper'); - r = moment(m.format(format).toLocaleLowerCase(), format); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' lower'); - - r = moment(m.format(format), format, true); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' strict'); - r = moment(m.format(format).toLocaleUpperCase(), format, true); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' upper strict'); - r = moment(m.format(format).toLocaleLowerCase(), format, true); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' lower strict'); - } - - for (i = 0; i < 7; ++i) { - m = moment.utc([2015, 0, i + 1, 18]); - tester('dd'); - tester('ddd'); - tester('dddd'); - } - }); - - test('valid localeData', function (assert) { - assert.equal(moment().localeData().months().length, 12, 'months should return 12 months'); - assert.equal(moment().localeData().monthsShort().length, 12, 'monthsShort should return 12 months'); - assert.equal(moment().localeData().weekdays().length, 7, 'weekdays should return 7 days'); - assert.equal(moment().localeData().weekdaysShort().length, 7, 'weekdaysShort should return 7 days'); - assert.equal(moment().localeData().weekdaysMin().length, 7, 'monthsShort should return 7 days'); - }); -} - -function setupDeprecationHandler(test, moment$$1, scope) { - test._expectedDeprecations = null; - test._observedDeprecations = null; - test._oldSupress = moment$$1.suppressDeprecationWarnings; - moment$$1.suppressDeprecationWarnings = true; - test.expectedDeprecations = function () { - test._expectedDeprecations = arguments; - test._observedDeprecations = []; - }; - moment$$1.deprecationHandler = function (name, msg) { - var deprecationId = matchedDeprecation(name, msg, test._expectedDeprecations); - if (deprecationId === -1) { - throw new Error('Unexpected deprecation thrown name=' + - name + ' msg=' + msg); - } - test._observedDeprecations[deprecationId] = 1; - }; -} - -function teardownDeprecationHandler(test, moment$$1, scope) { - moment$$1.suppressDeprecationWarnings = test._oldSupress; - - if (test._expectedDeprecations != null) { - var missedDeprecations = []; - each(test._expectedDeprecations, function (deprecationPattern, id) { - if (test._observedDeprecations[id] !== 1) { - missedDeprecations.push(deprecationPattern); - } - }); - if (missedDeprecations.length !== 0) { - throw new Error('Expected deprecation warnings did not happen: ' + - missedDeprecations.join(' ')); - } - } -} - -function matchedDeprecation(name, msg, deprecations) { - if (deprecations == null) { - return -1; - } - for (var i = 0; i < deprecations.length; ++i) { - if (name != null && name === deprecations[i]) { - return i; - } - if (msg != null && msg.substring(0, deprecations[i].length) === deprecations[i]) { - return i; - } - } - return -1; -} - -/*global QUnit:false*/ - -var test = QUnit.test; - -var expect = QUnit.expect; - - - -function localeModule (name, lifecycle) { - QUnit.module('locale:' + name, { - setup : function () { - moment.locale(name); - moment.createFromInputFallback = function (config) { - throw new Error('input not handled by moment: ' + config._i); - }; - setupDeprecationHandler(test, moment, 'locale'); - if (lifecycle && lifecycle.setup) { - lifecycle.setup(); - } - }, - teardown : function () { - moment.locale('en'); - teardownDeprecationHandler(test, moment, 'locale'); - if (lifecycle && lifecycle.teardown) { - lifecycle.teardown(); - } - } - }); - defineCommonLocaleTests(name, -1, -1); -} - -localeModule('ka'); - -test('parse', function (assert) { - var i, - tests = 'იანვარი იან_თებერვალი თებ_მარტი მარ_აპრილი აპრ_მაისი მაი_ივნისი ივნ_ივლისი ივლ_აგვისტო აგვ_სექტემბერი სექ_ოქტომბერი ოქტ_ნოემბერი ნოე_დეკემბერი დეკ'.split('_'); - - function equalTest(input, mmm, i) { - assert.equal(moment(input, mmm).month(), i, input + ' უნდა იყოს თვე ' + (i + 1)); - } - - for (i = 0; i < 12; i++) { - tests[i] = tests[i].split(' '); - equalTest(tests[i][0], 'MMM', i); - equalTest(tests[i][1], 'MMM', i); - equalTest(tests[i][0], 'MMMM', i); - equalTest(tests[i][1], 'MMMM', i); - equalTest(tests[i][0].toLocaleLowerCase(), 'MMMM', i); - equalTest(tests[i][1].toLocaleLowerCase(), 'MMMM', i); - equalTest(tests[i][0].toLocaleUpperCase(), 'MMMM', i); - equalTest(tests[i][1].toLocaleUpperCase(), 'MMMM', i); - } -}); - -test('format', function (assert) { - var a = [ - ['dddd, MMMM Do YYYY, h:mm:ss a', 'კვირა, თებერვალი მე-14 2010, 3:25:50 pm'], - ['ddd, hA', 'კვი, 3PM'], - ['M Mo MM MMMM MMM', '2 მე-2 02 თებერვალი თებ'], - ['YYYY YY', '2010 10'], - ['D Do DD', '14 მე-14 14'], - ['d do dddd ddd dd', '0 0 კვირა კვი კვ'], - ['DDD DDDo DDDD', '45 45-ე 045'], - ['w wo ww', '7 მე-7 07'], - ['h hh', '3 03'], - ['H HH', '15 15'], - ['m mm', '25 25'], - ['s ss', '50 50'], - ['a A', 'pm PM'], - ['წლის DDDo დღე', 'წლის 45-ე დღე'], - ['LTS', '3:25:50 PM'], - ['L', '14/02/2010'], - ['LL', '14 თებერვალს 2010'], - ['LLL', '14 თებერვალს 2010 3:25 PM'], - ['LLLL', 'კვირა, 14 თებერვალს 2010 3:25 PM'], - ['l', '14/2/2010'], - ['ll', '14 თებ 2010'], - ['lll', '14 თებ 2010 3:25 PM'], - ['llll', 'კვი, 14 თებ 2010 3:25 PM'] - ], - b = moment(new Date(2010, 1, 14, 15, 25, 50, 125)), - i; - - for (i = 0; i < a.length; i++) { - assert.equal(b.format(a[i][0]), a[i][1], a[i][0] + ' ---> ' + a[i][1]); - } -}); - -test('format ordinal', function (assert) { - assert.equal(moment([2011, 0, 1]).format('DDDo'), '1-ლი', '1-ლი'); - assert.equal(moment([2011, 0, 2]).format('DDDo'), 'მე-2', 'მე-2'); - assert.equal(moment([2011, 0, 3]).format('DDDo'), 'მე-3', 'მე-3'); - assert.equal(moment([2011, 0, 4]).format('DDDo'), 'მე-4', 'მე-4'); - assert.equal(moment([2011, 0, 5]).format('DDDo'), 'მე-5', 'მე-5'); - assert.equal(moment([2011, 0, 6]).format('DDDo'), 'მე-6', 'მე-6'); - assert.equal(moment([2011, 0, 7]).format('DDDo'), 'მე-7', 'მე-7'); - assert.equal(moment([2011, 0, 8]).format('DDDo'), 'მე-8', 'მე-8'); - assert.equal(moment([2011, 0, 9]).format('DDDo'), 'მე-9', 'მე-9'); - assert.equal(moment([2011, 0, 10]).format('DDDo'), 'მე-10', 'მე-10'); - - assert.equal(moment([2011, 0, 11]).format('DDDo'), 'მე-11', 'მე-11'); - assert.equal(moment([2011, 0, 12]).format('DDDo'), 'მე-12', 'მე-12'); - assert.equal(moment([2011, 0, 13]).format('DDDo'), 'მე-13', 'მე-13'); - assert.equal(moment([2011, 0, 14]).format('DDDo'), 'მე-14', 'მე-14'); - assert.equal(moment([2011, 0, 15]).format('DDDo'), 'მე-15', 'მე-15'); - assert.equal(moment([2011, 0, 16]).format('DDDo'), 'მე-16', 'მე-16'); - assert.equal(moment([2011, 0, 17]).format('DDDo'), 'მე-17', 'მე-17'); - assert.equal(moment([2011, 0, 18]).format('DDDo'), 'მე-18', 'მე-18'); - assert.equal(moment([2011, 0, 19]).format('DDDo'), 'მე-19', 'მე-19'); - assert.equal(moment([2011, 0, 20]).format('DDDo'), 'მე-20', 'მე-20'); - - assert.equal(moment([2011, 0, 21]).format('DDDo'), '21-ე', '21-ე'); - assert.equal(moment([2011, 0, 22]).format('DDDo'), '22-ე', '22-ე'); - assert.equal(moment([2011, 0, 23]).format('DDDo'), '23-ე', '23-ე'); - assert.equal(moment([2011, 0, 24]).format('DDDo'), '24-ე', '24-ე'); - assert.equal(moment([2011, 0, 25]).format('DDDo'), '25-ე', '25-ე'); - assert.equal(moment([2011, 0, 26]).format('DDDo'), '26-ე', '26-ე'); - assert.equal(moment([2011, 0, 27]).format('DDDo'), '27-ე', '27-ე'); - assert.equal(moment([2011, 0, 28]).format('DDDo'), '28-ე', '28-ე'); - assert.equal(moment([2011, 0, 29]).format('DDDo'), '29-ე', '29-ე'); - assert.equal(moment([2011, 0, 30]).format('DDDo'), '30-ე', '30-ე'); - - assert.equal(moment('2011 40', 'YYYY DDD').format('DDDo'), 'მე-40', 'მე-40'); - assert.equal(moment('2011 50', 'YYYY DDD').format('DDDo'), '50-ე', '50-ე'); - assert.equal(moment('2011 60', 'YYYY DDD').format('DDDo'), 'მე-60', 'მე-60'); - assert.equal(moment('2011 100', 'YYYY DDD').format('DDDo'), 'მე-100', 'მე-100'); - assert.equal(moment('2011 101', 'YYYY DDD').format('DDDo'), '101-ე', '101-ე'); -}); - -test('format month', function (assert) { - var i, - expected = 'იანვარი იან_თებერვალი თებ_მარტი მარ_აპრილი აპრ_მაისი მაი_ივნისი ივნ_ივლისი ივლ_აგვისტო აგვ_სექტემბერი სექ_ოქტომბერი ოქტ_ნოემბერი ნოე_დეკემბერი დეკ'.split('_'); - - for (i = 0; i < expected.length; i++) { - assert.equal(moment([2011, i, 1]).format('MMMM MMM'), expected[i], expected[i]); - } -}); - -test('format week', function (assert) { - var i, - expected = 'კვირა კვი კვ_ორშაბათი ორშ ორ_სამშაბათი სამ სა_ოთხშაბათი ოთხ ოთ_ხუთშაბათი ხუთ ხუ_პარასკევი პარ პა_შაბათი შაბ შა'.split('_'); - - for (i = 0; i < expected.length; i++) { - assert.equal(moment([2011, 0, 2 + i]).format('dddd ddd dd'), expected[i], expected[i]); - } -}); - -test('from', function (assert) { - var start = moment([2007, 1, 28]); - - assert.equal(start.from(moment([2007, 1, 28]).add({s: 44}), true), 'რამდენიმე წამი', '44 წამი = რამდენიმე წამი'); - assert.equal(start.from(moment([2007, 1, 28]).add({s: 45}), true), 'წუთი', '45 წამი = წუთი'); - assert.equal(start.from(moment([2007, 1, 28]).add({s: 89}), true), 'წუთი', '89 წამი = წუთი'); - assert.equal(start.from(moment([2007, 1, 28]).add({s: 90}), true), '2 წუთი', '90 წამი = 2 წუთი'); - assert.equal(start.from(moment([2007, 1, 28]).add({m: 44}), true), '44 წუთი', '44 წამი = 44 წუთი'); - assert.equal(start.from(moment([2007, 1, 28]).add({m: 45}), true), 'საათი', '45 წამი = საათი'); - assert.equal(start.from(moment([2007, 1, 28]).add({m: 89}), true), 'საათი', '89 წამი = საათი'); - assert.equal(start.from(moment([2007, 1, 28]).add({m: 90}), true), '2 საათი', '90 წამი = 2 საათი'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 5}), true), '5 საათი', '5 საათი = 5 საათი'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 21}), true), '21 საათი', '21 საათი = 21 საათი'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 22}), true), 'დღე', '22 საათი = დღე'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 35}), true), 'დღე', '35 საათი = დღე'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 36}), true), '2 დღე', '36 საათი = 2 დღე'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 1}), true), 'დღე', '1 დღე = დღე'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 5}), true), '5 დღე', '5 დღე = 5 დღე'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 25}), true), '25 დღე', '25 დღე = 25 დღე'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 26}), true), 'თვე', '26 დღე = თვე'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 30}), true), 'თვე', '30 დღე = თვე'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 43}), true), 'თვე', '45 დღე = თვე'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 46}), true), '2 თვე', '46 დღე = 2 თვე'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 74}), true), '2 თვე', '75 დღე = 2 თვე'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 76}), true), '3 თვე', '76 დღე = 3 თვე'); - assert.equal(start.from(moment([2007, 1, 28]).add({M: 1}), true), 'თვე', '1 თვე = თვე'); - assert.equal(start.from(moment([2007, 1, 28]).add({M: 5}), true), '5 თვე', '5 თვე = 5 თვე'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 345}), true), 'წელი', '345 დღე = წელი'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 548}), true), '2 წელი', '548 დღე = 2 წელი'); - assert.equal(start.from(moment([2007, 1, 28]).add({y: 1}), true), 'წელი', '1 წელი = წელი'); - assert.equal(start.from(moment([2007, 1, 28]).add({y: 5}), true), '5 წელი', '5 წელი = 5 წელი'); -}); - -test('suffix', function (assert) { - assert.equal(moment(30000).from(0), 'რამდენიმე წამში', 'ში სუფიქსი'); - assert.equal(moment(0).from(30000), 'რამდენიმე წამის უკან', 'უკან სუფიქსი'); -}); - -test('now from now', function (assert) { - assert.equal(moment().fromNow(), 'რამდენიმე წამის უკან', 'უნდა აჩვენოს როგორც წარსული'); -}); - -test('fromNow', function (assert) { - assert.equal(moment().add({s: 30}).fromNow(), 'რამდენიმე წამში', 'რამდენიმე წამში'); - assert.equal(moment().add({d: 5}).fromNow(), '5 დღეში', '5 დღეში'); -}); - -test('calendar day', function (assert) { - var a = moment().hours(12).minutes(0).seconds(0); - - assert.equal(moment(a).calendar(), 'დღეს 12:00 PM-ზე', 'დღეს ამავე დროს'); - assert.equal(moment(a).add({m: 25}).calendar(), 'დღეს 12:25 PM-ზე', 'ახლანდელ დროს დამატებული 25 წუთი'); - assert.equal(moment(a).add({h: 1}).calendar(), 'დღეს 1:00 PM-ზე', 'ახლანდელ დროს დამატებული 1 საათი'); - assert.equal(moment(a).add({d: 1}).calendar(), 'ხვალ 12:00 PM-ზე', 'ხვალ ამავე დროს'); - assert.equal(moment(a).subtract({h: 1}).calendar(), 'დღეს 11:00 AM-ზე', 'ახლანდელ დროს გამოკლებული 1 საათი'); - assert.equal(moment(a).subtract({d: 1}).calendar(), 'გუშინ 12:00 PM-ზე', 'გუშინ ამავე დროს'); -}); - -test('calendar next week', function (assert) { - var i, m; - for (i = 2; i < 7; i++) { - m = moment().add({d: i}); - assert.equal(m.calendar(), m.format('[შემდეგ] dddd LT[-ზე]'), 'დღეს + ' + i + ' დღე ახლანდელ დროს'); - m.hours(0).minutes(0).seconds(0).milliseconds(0); - assert.equal(m.calendar(), m.format('[შემდეგ] dddd LT[-ზე]'), 'დღეს + ' + i + ' დღე დღის დასაწყისში'); - m.hours(23).minutes(59).seconds(59).milliseconds(999); - assert.equal(m.calendar(), m.format('[შემდეგ] dddd LT[-ზე]'), 'დღეს + ' + i + ' დღე დღის დასასრულს'); - } -}); - -test('calendar last week', function (assert) { - var i, m; - for (i = 2; i < 7; i++) { - m = moment().subtract({d: i}); - assert.equal(m.calendar(), m.format('[წინა] dddd LT[-ზე]'), 'დღეს - ' + i + ' დღე ახლანდელ დროს'); - m.hours(0).minutes(0).seconds(0).milliseconds(0); - assert.equal(m.calendar(), m.format('[წინა] dddd LT[-ზე]'), 'დღეს - ' + i + ' დღე დღის დასაწყისში'); - m.hours(23).minutes(59).seconds(59).milliseconds(999); - assert.equal(m.calendar(), m.format('[წინა] dddd LT[-ზე]'), 'დღეს - ' + i + ' დღე დღის დასასრულს'); - } -}); - -test('calendar all else', function (assert) { - var weeksAgo = moment().subtract({w: 1}), - weeksFromNow = moment().add({w: 1}); - - assert.equal(weeksAgo.calendar(), weeksAgo.format('L'), '1 კვირის უკან'); - assert.equal(weeksFromNow.calendar(), weeksFromNow.format('L'), '1 კვირაში'); - - weeksAgo = moment().subtract({w: 2}); - weeksFromNow = moment().add({w: 2}); - - assert.equal(weeksAgo.calendar(), weeksAgo.format('L'), '2 კვირის წინ'); - assert.equal(weeksFromNow.calendar(), weeksFromNow.format('L'), '2 კვირაში'); -}); - -test('weeks year starting sunday formatted', function (assert) { - assert.equal(moment([2011, 11, 26]).format('w ww wo'), '1 01 1-ლი', 'დეკ 26 2011 უნდა იყოს კვირა 1'); - assert.equal(moment([2012, 0, 1]).format('w ww wo'), '1 01 1-ლი', 'იან 1 2012 უნდა იყოს კვირა 1'); - assert.equal(moment([2012, 0, 2]).format('w ww wo'), '2 02 მე-2', 'იან 2 2012 უნდა იყოს კვირა 2'); - assert.equal(moment([2012, 0, 8]).format('w ww wo'), '2 02 მე-2', 'იან 8 2012 უნდა იყოს კვირა 2'); - assert.equal(moment([2012, 0, 9]).format('w ww wo'), '3 03 მე-3', 'იან 9 2012 უნდა იყოს კვირა 3'); -}); - -}))); - - -;(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' - && typeof require === 'function' ? factory(require('../../moment')) : - typeof define === 'function' && define.amd ? define(['../../moment'], factory) : - factory(global.moment) -}(this, (function (moment) { 'use strict'; - -function each(array, callback) { - var i; - for (i = 0; i < array.length; i++) { - callback(array[i], i, array); - } -} - -function objectKeys(obj) { - if (Object.keys) { - return Object.keys(obj); - } else { - // IE8 - var res = [], i; - for (i in obj) { - if (obj.hasOwnProperty(i)) { - res.push(i); - } - } - return res; - } -} - -// Pick the first defined of two or three arguments. - -function defineCommonLocaleTests(locale, options) { - test('lenient day of month ordinal parsing', function (assert) { - var i, ordinalStr, testMoment; - for (i = 1; i <= 31; ++i) { - ordinalStr = moment([2014, 0, i]).format('YYYY MM Do'); - testMoment = moment(ordinalStr, 'YYYY MM Do'); - assert.equal(testMoment.year(), 2014, - 'lenient day of month ordinal parsing ' + i + ' year check'); - assert.equal(testMoment.month(), 0, - 'lenient day of month ordinal parsing ' + i + ' month check'); - assert.equal(testMoment.date(), i, - 'lenient day of month ordinal parsing ' + i + ' date check'); - } - }); - - test('lenient day of month ordinal parsing of number', function (assert) { - var i, testMoment; - for (i = 1; i <= 31; ++i) { - testMoment = moment('2014 01 ' + i, 'YYYY MM Do'); - assert.equal(testMoment.year(), 2014, - 'lenient day of month ordinal parsing of number ' + i + ' year check'); - assert.equal(testMoment.month(), 0, - 'lenient day of month ordinal parsing of number ' + i + ' month check'); - assert.equal(testMoment.date(), i, - 'lenient day of month ordinal parsing of number ' + i + ' date check'); - } - }); - - test('strict day of month ordinal parsing', function (assert) { - var i, ordinalStr, testMoment; - for (i = 1; i <= 31; ++i) { - ordinalStr = moment([2014, 0, i]).format('YYYY MM Do'); - testMoment = moment(ordinalStr, 'YYYY MM Do', true); - assert.ok(testMoment.isValid(), 'strict day of month ordinal parsing ' + i); - } - }); - - test('meridiem invariant', function (assert) { - var h, m, t1, t2; - for (h = 0; h < 24; ++h) { - for (m = 0; m < 60; m += 15) { - t1 = moment.utc([2000, 0, 1, h, m]); - t2 = moment.utc(t1.format('A h:mm'), 'A h:mm'); - assert.equal(t2.format('HH:mm'), t1.format('HH:mm'), - 'meridiem at ' + t1.format('HH:mm')); - } - } - }); - - test('date format correctness', function (assert) { - var data, tokens; - data = moment.localeData()._longDateFormat; - tokens = objectKeys(data); - each(tokens, function (srchToken) { - // Check each format string to make sure it does not contain any - // tokens that need to be expanded. - each(tokens, function (baseToken) { - // strip escaped sequences - var format = data[baseToken].replace(/(\[[^\]]*\])/g, ''); - assert.equal(false, !!~format.indexOf(srchToken), - 'contains ' + srchToken + ' in ' + baseToken); - }); - }); - }); - - test('month parsing correctness', function (assert) { - var i, m; - - if (locale === 'tr') { - // I can't fix it :( - expect(0); - return; - } - function tester(format) { - var r; - r = moment(m.format(format), format); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format); - r = moment(m.format(format).toLocaleUpperCase(), format); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' upper'); - r = moment(m.format(format).toLocaleLowerCase(), format); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' lower'); - - r = moment(m.format(format), format, true); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' strict'); - r = moment(m.format(format).toLocaleUpperCase(), format, true); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' upper strict'); - r = moment(m.format(format).toLocaleLowerCase(), format, true); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' lower strict'); - } - - for (i = 0; i < 12; ++i) { - m = moment([2015, i, 15, 18]); - tester('MMM'); - tester('MMM.'); - tester('MMMM'); - tester('MMMM.'); - } - }); - - test('weekday parsing correctness', function (assert) { - var i, m; - - if (locale === 'tr' || locale === 'az' || locale === 'ro') { - // tr, az: There is a lower-case letter (ı), that converted to - // upper then lower changes to i - // ro: there is the letter ț which behaves weird under IE8 - expect(0); - return; - } - function tester(format) { - var r, baseMsg = 'weekday ' + m.weekday() + ' fmt ' + format + ' ' + m.toISOString(); - r = moment(m.format(format), format); - assert.equal(r.weekday(), m.weekday(), baseMsg); - r = moment(m.format(format).toLocaleUpperCase(), format); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' upper'); - r = moment(m.format(format).toLocaleLowerCase(), format); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' lower'); - - r = moment(m.format(format), format, true); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' strict'); - r = moment(m.format(format).toLocaleUpperCase(), format, true); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' upper strict'); - r = moment(m.format(format).toLocaleLowerCase(), format, true); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' lower strict'); - } - - for (i = 0; i < 7; ++i) { - m = moment.utc([2015, 0, i + 1, 18]); - tester('dd'); - tester('ddd'); - tester('dddd'); - } - }); - - test('valid localeData', function (assert) { - assert.equal(moment().localeData().months().length, 12, 'months should return 12 months'); - assert.equal(moment().localeData().monthsShort().length, 12, 'monthsShort should return 12 months'); - assert.equal(moment().localeData().weekdays().length, 7, 'weekdays should return 7 days'); - assert.equal(moment().localeData().weekdaysShort().length, 7, 'weekdaysShort should return 7 days'); - assert.equal(moment().localeData().weekdaysMin().length, 7, 'monthsShort should return 7 days'); - }); -} - -function setupDeprecationHandler(test, moment$$1, scope) { - test._expectedDeprecations = null; - test._observedDeprecations = null; - test._oldSupress = moment$$1.suppressDeprecationWarnings; - moment$$1.suppressDeprecationWarnings = true; - test.expectedDeprecations = function () { - test._expectedDeprecations = arguments; - test._observedDeprecations = []; - }; - moment$$1.deprecationHandler = function (name, msg) { - var deprecationId = matchedDeprecation(name, msg, test._expectedDeprecations); - if (deprecationId === -1) { - throw new Error('Unexpected deprecation thrown name=' + - name + ' msg=' + msg); - } - test._observedDeprecations[deprecationId] = 1; - }; -} - -function teardownDeprecationHandler(test, moment$$1, scope) { - moment$$1.suppressDeprecationWarnings = test._oldSupress; - - if (test._expectedDeprecations != null) { - var missedDeprecations = []; - each(test._expectedDeprecations, function (deprecationPattern, id) { - if (test._observedDeprecations[id] !== 1) { - missedDeprecations.push(deprecationPattern); - } - }); - if (missedDeprecations.length !== 0) { - throw new Error('Expected deprecation warnings did not happen: ' + - missedDeprecations.join(' ')); - } - } -} - -function matchedDeprecation(name, msg, deprecations) { - if (deprecations == null) { - return -1; - } - for (var i = 0; i < deprecations.length; ++i) { - if (name != null && name === deprecations[i]) { - return i; - } - if (msg != null && msg.substring(0, deprecations[i].length) === deprecations[i]) { - return i; - } - } - return -1; -} - -/*global QUnit:false*/ - -var test = QUnit.test; - -var expect = QUnit.expect; - - - -function localeModule (name, lifecycle) { - QUnit.module('locale:' + name, { - setup : function () { - moment.locale(name); - moment.createFromInputFallback = function (config) { - throw new Error('input not handled by moment: ' + config._i); - }; - setupDeprecationHandler(test, moment, 'locale'); - if (lifecycle && lifecycle.setup) { - lifecycle.setup(); - } - }, - teardown : function () { - moment.locale('en'); - teardownDeprecationHandler(test, moment, 'locale'); - if (lifecycle && lifecycle.teardown) { - lifecycle.teardown(); - } - } - }); - defineCommonLocaleTests(name, -1, -1); -} - -localeModule('kk'); - -test('parse', function (assert) { - var tests = 'қаңтар қаң_ақпан ақп_наурыз нау_сәуір сәу_мамыр мам_маусым мау_шілде шіл_тамыз там_қыркүйек қыр_қазан қаз_қараша қар_желтоқсан жел'.split('_'), i; - function equalTest(input, mmm, i) { - assert.equal(moment(input, mmm).month(), i, input + ' should be month ' + (i + 1)); - } - for (i = 0; i < 12; i++) { - tests[i] = tests[i].split(' '); - equalTest(tests[i][0], 'MMM', i); - equalTest(tests[i][1], 'MMM', i); - equalTest(tests[i][0], 'MMMM', i); - equalTest(tests[i][1], 'MMMM', i); - equalTest(tests[i][0].toLocaleLowerCase(), 'MMMM', i); - equalTest(tests[i][1].toLocaleLowerCase(), 'MMMM', i); - equalTest(tests[i][0].toLocaleUpperCase(), 'MMMM', i); - equalTest(tests[i][1].toLocaleUpperCase(), 'MMMM', i); - } -}); - -test('format', function (assert) { - var a = [ - ['dddd, Do MMMM YYYY, HH:mm:ss', 'жексенбі, 14-ші ақпан 2010, 15:25:50'], - ['ddd, hA', 'жек, 3PM'], - ['M Mo MM MMMM MMM', '2 2-ші 02 ақпан ақп'], - ['YYYY YY', '2010 10'], - ['D Do DD', '14 14-ші 14'], - ['d do dddd ddd dd', '0 0-ші жексенбі жек жк'], - ['DDD DDDo DDDD', '45 45-ші 045'], - ['w wo ww', '7 7-ші 07'], - ['h hh', '3 03'], - ['H HH', '15 15'], - ['m mm', '25 25'], - ['s ss', '50 50'], - ['a A', 'pm PM'], - ['[жылдың] DDDo [күні]', 'жылдың 45-ші күні'], - ['LTS', '15:25:50'], - ['L', '14.02.2010'], - ['LL', '14 ақпан 2010'], - ['LLL', '14 ақпан 2010 15:25'], - ['LLLL', 'жексенбі, 14 ақпан 2010 15:25'], - ['l', '14.2.2010'], - ['ll', '14 ақп 2010'], - ['lll', '14 ақп 2010 15:25'], - ['llll', 'жек, 14 ақп 2010 15:25'] - ], - b = moment(new Date(2010, 1, 14, 15, 25, 50, 125)), - i; - for (i = 0; i < a.length; i++) { - assert.equal(b.format(a[i][0]), a[i][1], a[i][0] + ' ---> ' + a[i][1]); - } -}); - -test('format ordinal', function (assert) { - assert.equal(moment([2011, 0, 1]).format('DDDo'), '1-ші', '1st'); - assert.equal(moment([2011, 0, 2]).format('DDDo'), '2-ші', '2nd'); - assert.equal(moment([2011, 0, 3]).format('DDDo'), '3-ші', '3rd'); - assert.equal(moment([2011, 0, 4]).format('DDDo'), '4-ші', '4th'); - assert.equal(moment([2011, 0, 5]).format('DDDo'), '5-ші', '5th'); - assert.equal(moment([2011, 0, 6]).format('DDDo'), '6-шы', '6th'); - assert.equal(moment([2011, 0, 7]).format('DDDo'), '7-ші', '7th'); - assert.equal(moment([2011, 0, 8]).format('DDDo'), '8-ші', '8th'); - assert.equal(moment([2011, 0, 9]).format('DDDo'), '9-шы', '9th'); - assert.equal(moment([2011, 0, 10]).format('DDDo'), '10-шы', '10th'); - - assert.equal(moment([2011, 0, 11]).format('DDDo'), '11-ші', '11th'); - assert.equal(moment([2011, 0, 12]).format('DDDo'), '12-ші', '12th'); - assert.equal(moment([2011, 0, 13]).format('DDDo'), '13-ші', '13th'); - assert.equal(moment([2011, 0, 14]).format('DDDo'), '14-ші', '14th'); - assert.equal(moment([2011, 0, 15]).format('DDDo'), '15-ші', '15th'); - assert.equal(moment([2011, 0, 16]).format('DDDo'), '16-шы', '16th'); - assert.equal(moment([2011, 0, 17]).format('DDDo'), '17-ші', '17th'); - assert.equal(moment([2011, 0, 18]).format('DDDo'), '18-ші', '18th'); - assert.equal(moment([2011, 0, 19]).format('DDDo'), '19-шы', '19th'); - assert.equal(moment([2011, 0, 20]).format('DDDo'), '20-шы', '20th'); - - assert.equal(moment([2011, 0, 21]).format('DDDo'), '21-ші', '21st'); - assert.equal(moment([2011, 0, 22]).format('DDDo'), '22-ші', '22nd'); - assert.equal(moment([2011, 0, 23]).format('DDDo'), '23-ші', '23rd'); - assert.equal(moment([2011, 0, 24]).format('DDDo'), '24-ші', '24th'); - assert.equal(moment([2011, 0, 25]).format('DDDo'), '25-ші', '25th'); - assert.equal(moment([2011, 0, 26]).format('DDDo'), '26-шы', '26th'); - assert.equal(moment([2011, 0, 27]).format('DDDo'), '27-ші', '27th'); - assert.equal(moment([2011, 0, 28]).format('DDDo'), '28-ші', '28th'); - assert.equal(moment([2011, 0, 29]).format('DDDo'), '29-шы', '29th'); - assert.equal(moment([2011, 0, 30]).format('DDDo'), '30-шы', '30th'); - - assert.equal(moment([2011, 0, 31]).format('DDDo'), '31-ші', '31st'); -}); - -test('format month', function (assert) { - var expected = 'қаңтар қаң_ақпан ақп_наурыз нау_сәуір сәу_мамыр мам_маусым мау_шілде шіл_тамыз там_қыркүйек қыр_қазан қаз_қараша қар_желтоқсан жел'.split('_'), i; - for (i = 0; i < expected.length; i++) { - assert.equal(moment([2011, i, 1]).format('MMMM MMM'), expected[i], expected[i]); - } -}); - -test('format week', function (assert) { - var expected = 'жексенбі жек жк_дүйсенбі дүй дй_сейсенбі сей сй_сәрсенбі сәр ср_бейсенбі бей бй_жұма жұм жм_сенбі сен сн'.split('_'), i; - for (i = 0; i < expected.length; i++) { - assert.equal(moment([2011, 0, 2 + i]).format('dddd ddd dd'), expected[i], expected[i]); - } -}); - -test('from', function (assert) { - var start = moment([2007, 1, 28]); - assert.equal(start.from(moment([2007, 1, 28]).add({s: 44}), true), 'бірнеше секунд', '44 seconds = a few seconds'); - assert.equal(start.from(moment([2007, 1, 28]).add({s: 45}), true), 'бір минут', '45 seconds = a minute'); - assert.equal(start.from(moment([2007, 1, 28]).add({s: 89}), true), 'бір минут', '89 seconds = a minute'); - assert.equal(start.from(moment([2007, 1, 28]).add({s: 90}), true), '2 минут', '90 seconds = 2 minutes'); - assert.equal(start.from(moment([2007, 1, 28]).add({m: 44}), true), '44 минут', '44 minutes = 44 minutes'); - assert.equal(start.from(moment([2007, 1, 28]).add({m: 45}), true), 'бір сағат', '45 minutes = an hour'); - assert.equal(start.from(moment([2007, 1, 28]).add({m: 89}), true), 'бір сағат', '89 minutes = an hour'); - assert.equal(start.from(moment([2007, 1, 28]).add({m: 90}), true), '2 сағат', '90 minutes = 2 hours'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 5}), true), '5 сағат', '5 hours = 5 hours'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 21}), true), '21 сағат', '21 hours = 21 hours'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 22}), true), 'бір күн', '22 hours = a day'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 35}), true), 'бір күн', '35 hours = a day'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 36}), true), '2 күн', '36 hours = 2 days'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 1}), true), 'бір күн', '1 day = a day'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 5}), true), '5 күн', '5 days = 5 days'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 25}), true), '25 күн', '25 days = 25 days'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 26}), true), 'бір ай', '26 days = a month'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 30}), true), 'бір ай', '30 days = a month'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 43}), true), 'бір ай', '43 days = a month'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 46}), true), '2 ай', '46 days = 2 months'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 74}), true), '2 ай', '75 days = 2 months'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 76}), true), '3 ай', '76 days = 3 months'); - assert.equal(start.from(moment([2007, 1, 28]).add({M: 1}), true), 'бір ай', '1 month = a month'); - assert.equal(start.from(moment([2007, 1, 28]).add({M: 5}), true), '5 ай', '5 months = 5 months'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 345}), true), 'бір жыл', '345 days = a year'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 548}), true), '2 жыл', '548 days = 2 years'); - assert.equal(start.from(moment([2007, 1, 28]).add({y: 1}), true), 'бір жыл', '1 year = a year'); - assert.equal(start.from(moment([2007, 1, 28]).add({y: 5}), true), '5 жыл', '5 years = 5 years'); -}); - -test('suffix', function (assert) { - assert.equal(moment(30000).from(0), 'бірнеше секунд ішінде', 'prefix'); - assert.equal(moment(0).from(30000), 'бірнеше секунд бұрын', 'suffix'); -}); - -test('now from now', function (assert) { - assert.equal(moment().fromNow(), 'бірнеше секунд бұрын', 'now from now should display as in the past'); -}); - -test('fromNow', function (assert) { - assert.equal(moment().add({s: 30}).fromNow(), 'бірнеше секунд ішінде', 'in a few seconds'); - assert.equal(moment().add({d: 5}).fromNow(), '5 күн ішінде', 'in 5 days'); -}); - -test('calendar day', function (assert) { - var a = moment().hours(12).minutes(0).seconds(0); - - assert.equal(moment(a).calendar(), 'Бүгін сағат 12:00', 'today at the same time'); - assert.equal(moment(a).add({m: 25}).calendar(), 'Бүгін сағат 12:25', 'Now plus 25 min'); - assert.equal(moment(a).add({h: 1}).calendar(), 'Бүгін сағат 13:00', 'Now plus 1 hour'); - assert.equal(moment(a).add({d: 1}).calendar(), 'Ертең сағат 12:00', 'tomorrow at the same time'); - assert.equal(moment(a).subtract({h: 1}).calendar(), 'Бүгін сағат 11:00', 'Now minus 1 hour'); - assert.equal(moment(a).subtract({d: 1}).calendar(), 'Кеше сағат 12:00', 'yesterday at the same time'); -}); - -test('calendar next week', function (assert) { - var i, m; - for (i = 2; i < 7; i++) { - m = moment().add({d: i}); - assert.equal(m.calendar(), m.format('dddd [сағат] LT'), 'Today + ' + i + ' days current time'); - m.hours(0).minutes(0).seconds(0).milliseconds(0); - assert.equal(m.calendar(), m.format('dddd [сағат] LT'), 'Today + ' + i + ' days beginning of day'); - m.hours(23).minutes(59).seconds(59).milliseconds(999); - assert.equal(m.calendar(), m.format('dddd [сағат] LT'), 'Today + ' + i + ' days end of day'); - } -}); - -test('calendar last week', function (assert) { - var i, m; - - for (i = 2; i < 7; i++) { - m = moment().subtract({d: i}); - assert.equal(m.calendar(), m.format('[Өткен аптаның] dddd [сағат] LT'), 'Today - ' + i + ' days current time'); - m.hours(0).minutes(0).seconds(0).milliseconds(0); - assert.equal(m.calendar(), m.format('[Өткен аптаның] dddd [сағат] LT'), 'Today - ' + i + ' days beginning of day'); - m.hours(23).minutes(59).seconds(59).milliseconds(999); - assert.equal(m.calendar(), m.format('[Өткен аптаның] dddd [сағат] LT'), 'Today - ' + i + ' days end of day'); - } -}); - -test('calendar all else', function (assert) { - var weeksAgo = moment().subtract({w: 1}), - weeksFromNow = moment().add({w: 1}); - - assert.equal(weeksAgo.calendar(), weeksAgo.format('L'), '1 week ago'); - assert.equal(weeksFromNow.calendar(), weeksFromNow.format('L'), 'in 1 week'); - - weeksAgo = moment().subtract({w: 2}); - weeksFromNow = moment().add({w: 2}); - - assert.equal(weeksAgo.calendar(), weeksAgo.format('L'), '2 weeks ago'); - assert.equal(weeksFromNow.calendar(), weeksFromNow.format('L'), 'in 2 weeks'); -}); - -test('weeks year starting sunday formatted', function (assert) { - assert.equal(moment([2012, 0, 1]).format('w ww wo'), '1 01 1-ші', 'Jan 1 2012 should be week 1'); - assert.equal(moment([2012, 0, 2]).format('w ww wo'), '2 02 2-ші', 'Jan 2 2012 should be week 2'); - assert.equal(moment([2012, 0, 8]).format('w ww wo'), '2 02 2-ші', 'Jan 8 2012 should be week 2'); - assert.equal(moment([2012, 0, 9]).format('w ww wo'), '3 03 3-ші', 'Jan 9 2012 should be week 3'); - assert.equal(moment([2012, 0, 15]).format('w ww wo'), '3 03 3-ші', 'Jan 15 2012 should be week 3'); -}); - -}))); - - -;(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' - && typeof require === 'function' ? factory(require('../../moment')) : - typeof define === 'function' && define.amd ? define(['../../moment'], factory) : - factory(global.moment) -}(this, (function (moment) { 'use strict'; - -function each(array, callback) { - var i; - for (i = 0; i < array.length; i++) { - callback(array[i], i, array); - } -} - -function objectKeys(obj) { - if (Object.keys) { - return Object.keys(obj); - } else { - // IE8 - var res = [], i; - for (i in obj) { - if (obj.hasOwnProperty(i)) { - res.push(i); - } - } - return res; - } -} - -// Pick the first defined of two or three arguments. - -function defineCommonLocaleTests(locale, options) { - test('lenient day of month ordinal parsing', function (assert) { - var i, ordinalStr, testMoment; - for (i = 1; i <= 31; ++i) { - ordinalStr = moment([2014, 0, i]).format('YYYY MM Do'); - testMoment = moment(ordinalStr, 'YYYY MM Do'); - assert.equal(testMoment.year(), 2014, - 'lenient day of month ordinal parsing ' + i + ' year check'); - assert.equal(testMoment.month(), 0, - 'lenient day of month ordinal parsing ' + i + ' month check'); - assert.equal(testMoment.date(), i, - 'lenient day of month ordinal parsing ' + i + ' date check'); - } - }); - - test('lenient day of month ordinal parsing of number', function (assert) { - var i, testMoment; - for (i = 1; i <= 31; ++i) { - testMoment = moment('2014 01 ' + i, 'YYYY MM Do'); - assert.equal(testMoment.year(), 2014, - 'lenient day of month ordinal parsing of number ' + i + ' year check'); - assert.equal(testMoment.month(), 0, - 'lenient day of month ordinal parsing of number ' + i + ' month check'); - assert.equal(testMoment.date(), i, - 'lenient day of month ordinal parsing of number ' + i + ' date check'); - } - }); - - test('strict day of month ordinal parsing', function (assert) { - var i, ordinalStr, testMoment; - for (i = 1; i <= 31; ++i) { - ordinalStr = moment([2014, 0, i]).format('YYYY MM Do'); - testMoment = moment(ordinalStr, 'YYYY MM Do', true); - assert.ok(testMoment.isValid(), 'strict day of month ordinal parsing ' + i); - } - }); - - test('meridiem invariant', function (assert) { - var h, m, t1, t2; - for (h = 0; h < 24; ++h) { - for (m = 0; m < 60; m += 15) { - t1 = moment.utc([2000, 0, 1, h, m]); - t2 = moment.utc(t1.format('A h:mm'), 'A h:mm'); - assert.equal(t2.format('HH:mm'), t1.format('HH:mm'), - 'meridiem at ' + t1.format('HH:mm')); - } - } - }); - - test('date format correctness', function (assert) { - var data, tokens; - data = moment.localeData()._longDateFormat; - tokens = objectKeys(data); - each(tokens, function (srchToken) { - // Check each format string to make sure it does not contain any - // tokens that need to be expanded. - each(tokens, function (baseToken) { - // strip escaped sequences - var format = data[baseToken].replace(/(\[[^\]]*\])/g, ''); - assert.equal(false, !!~format.indexOf(srchToken), - 'contains ' + srchToken + ' in ' + baseToken); - }); - }); - }); - - test('month parsing correctness', function (assert) { - var i, m; - - if (locale === 'tr') { - // I can't fix it :( - expect(0); - return; - } - function tester(format) { - var r; - r = moment(m.format(format), format); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format); - r = moment(m.format(format).toLocaleUpperCase(), format); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' upper'); - r = moment(m.format(format).toLocaleLowerCase(), format); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' lower'); - - r = moment(m.format(format), format, true); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' strict'); - r = moment(m.format(format).toLocaleUpperCase(), format, true); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' upper strict'); - r = moment(m.format(format).toLocaleLowerCase(), format, true); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' lower strict'); - } - - for (i = 0; i < 12; ++i) { - m = moment([2015, i, 15, 18]); - tester('MMM'); - tester('MMM.'); - tester('MMMM'); - tester('MMMM.'); - } - }); - - test('weekday parsing correctness', function (assert) { - var i, m; - - if (locale === 'tr' || locale === 'az' || locale === 'ro') { - // tr, az: There is a lower-case letter (ı), that converted to - // upper then lower changes to i - // ro: there is the letter ț which behaves weird under IE8 - expect(0); - return; - } - function tester(format) { - var r, baseMsg = 'weekday ' + m.weekday() + ' fmt ' + format + ' ' + m.toISOString(); - r = moment(m.format(format), format); - assert.equal(r.weekday(), m.weekday(), baseMsg); - r = moment(m.format(format).toLocaleUpperCase(), format); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' upper'); - r = moment(m.format(format).toLocaleLowerCase(), format); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' lower'); - - r = moment(m.format(format), format, true); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' strict'); - r = moment(m.format(format).toLocaleUpperCase(), format, true); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' upper strict'); - r = moment(m.format(format).toLocaleLowerCase(), format, true); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' lower strict'); - } - - for (i = 0; i < 7; ++i) { - m = moment.utc([2015, 0, i + 1, 18]); - tester('dd'); - tester('ddd'); - tester('dddd'); - } - }); - - test('valid localeData', function (assert) { - assert.equal(moment().localeData().months().length, 12, 'months should return 12 months'); - assert.equal(moment().localeData().monthsShort().length, 12, 'monthsShort should return 12 months'); - assert.equal(moment().localeData().weekdays().length, 7, 'weekdays should return 7 days'); - assert.equal(moment().localeData().weekdaysShort().length, 7, 'weekdaysShort should return 7 days'); - assert.equal(moment().localeData().weekdaysMin().length, 7, 'monthsShort should return 7 days'); - }); -} - -function setupDeprecationHandler(test, moment$$1, scope) { - test._expectedDeprecations = null; - test._observedDeprecations = null; - test._oldSupress = moment$$1.suppressDeprecationWarnings; - moment$$1.suppressDeprecationWarnings = true; - test.expectedDeprecations = function () { - test._expectedDeprecations = arguments; - test._observedDeprecations = []; - }; - moment$$1.deprecationHandler = function (name, msg) { - var deprecationId = matchedDeprecation(name, msg, test._expectedDeprecations); - if (deprecationId === -1) { - throw new Error('Unexpected deprecation thrown name=' + - name + ' msg=' + msg); - } - test._observedDeprecations[deprecationId] = 1; - }; -} - -function teardownDeprecationHandler(test, moment$$1, scope) { - moment$$1.suppressDeprecationWarnings = test._oldSupress; - - if (test._expectedDeprecations != null) { - var missedDeprecations = []; - each(test._expectedDeprecations, function (deprecationPattern, id) { - if (test._observedDeprecations[id] !== 1) { - missedDeprecations.push(deprecationPattern); - } - }); - if (missedDeprecations.length !== 0) { - throw new Error('Expected deprecation warnings did not happen: ' + - missedDeprecations.join(' ')); - } - } -} - -function matchedDeprecation(name, msg, deprecations) { - if (deprecations == null) { - return -1; - } - for (var i = 0; i < deprecations.length; ++i) { - if (name != null && name === deprecations[i]) { - return i; - } - if (msg != null && msg.substring(0, deprecations[i].length) === deprecations[i]) { - return i; - } - } - return -1; -} - -/*global QUnit:false*/ - -var test = QUnit.test; - -var expect = QUnit.expect; - - - -function localeModule (name, lifecycle) { - QUnit.module('locale:' + name, { - setup : function () { - moment.locale(name); - moment.createFromInputFallback = function (config) { - throw new Error('input not handled by moment: ' + config._i); - }; - setupDeprecationHandler(test, moment, 'locale'); - if (lifecycle && lifecycle.setup) { - lifecycle.setup(); - } - }, - teardown : function () { - moment.locale('en'); - teardownDeprecationHandler(test, moment, 'locale'); - if (lifecycle && lifecycle.teardown) { - lifecycle.teardown(); - } - } - }); - defineCommonLocaleTests(name, -1, -1); -} - -localeModule('km'); - -test('parse', function (assert) { - var tests = 'មករា មករា_កុម្ភៈ កុម្ភៈ_មីនា មីនា_មេសា មេសា_ឧសភា ឧសភា_មិថុនា មិថុនា_កក្កដា កក្កដា_សីហា សីហា_កញ្ញា កញ្ញា_តុលា តុលា_វិច្ឆិកា វិច្ឆិកា_ធ្នូ ធ្នូ'.split('_'), - i; - - function equalTest(input, mmm, i) { - assert.equal(moment(input, mmm).month(), i, input + ' should be month ' + (i + 1)); - } - for (i = 0; i < 12; i++) { - tests[i] = tests[i].split(' '); - equalTest(tests[i][0], 'MMM', i); - equalTest(tests[i][1], 'MMM', i); - equalTest(tests[i][0], 'MMMM', i); - equalTest(tests[i][1], 'MMMM', i); - equalTest(tests[i][0].toLocaleLowerCase(), 'MMMM', i); - equalTest(tests[i][1].toLocaleLowerCase(), 'MMMM', i); - equalTest(tests[i][0].toLocaleUpperCase(), 'MMMM', i); - equalTest(tests[i][1].toLocaleUpperCase(), 'MMMM', i); - } -}); - -test('format', function (assert) { - var a = [ - ['dddd, MMMM Do YYYY, h:mm:ss a', 'អាទិត្យ, កុម្ភៈ 14 2010, 3:25:50 pm'], - ['ddd, hA', 'អាទិត្យ, 3PM'], - ['M Mo MM MMMM MMM', '2 2 02 កុម្ភៈ កុម្ភៈ'], - ['YYYY YY', '2010 10'], - ['D Do DD', '14 14 14'], - ['d do dddd ddd dd', '0 0 អាទិត្យ អាទិត្យ អាទិត្យ'], - ['DDD DDDo DDDD', '45 45 045'], - ['w wo ww', '6 6 06'], - ['h hh', '3 03'], - ['H HH', '15 15'], - ['m mm', '25 25'], - ['s ss', '50 50'], - ['a A', 'pm PM'], - ['[the] DDDo [day of the year]', 'the 45 day of the year'], - ['LTS', '15:25:50'], - ['L', '14/02/2010'], - ['LL', '14 កុម្ភៈ 2010'], - ['LLL', '14 កុម្ភៈ 2010 15:25'], - ['LLLL', 'អាទិត្យ, 14 កុម្ភៈ 2010 15:25'], - ['l', '14/2/2010'], - ['ll', '14 កុម្ភៈ 2010'], - ['lll', '14 កុម្ភៈ 2010 15:25'], - ['llll', 'អាទិត្យ, 14 កុម្ភៈ 2010 15:25'] - ], - b = moment(new Date(2010, 1, 14, 15, 25, 50, 125)), - i; - for (i = 0; i < a.length; i++) { - assert.equal(b.format(a[i][0]), a[i][1], a[i][0] + ' ---> ' + a[i][1]); - } -}); - -test('format ordinal', function (assert) { - assert.equal(moment([2011, 0, 1]).format('DDDo'), '1', '1st'); - assert.equal(moment([2011, 0, 2]).format('DDDo'), '2', '2nd'); - assert.equal(moment([2011, 0, 3]).format('DDDo'), '3', '3rd'); - assert.equal(moment([2011, 0, 4]).format('DDDo'), '4', '4th'); - assert.equal(moment([2011, 0, 5]).format('DDDo'), '5', '5th'); - assert.equal(moment([2011, 0, 6]).format('DDDo'), '6', '6th'); - assert.equal(moment([2011, 0, 7]).format('DDDo'), '7', '7th'); - assert.equal(moment([2011, 0, 8]).format('DDDo'), '8', '8th'); - assert.equal(moment([2011, 0, 9]).format('DDDo'), '9', '9th'); - assert.equal(moment([2011, 0, 10]).format('DDDo'), '10', '10th'); - - assert.equal(moment([2011, 0, 11]).format('DDDo'), '11', '11th'); - assert.equal(moment([2011, 0, 12]).format('DDDo'), '12', '12th'); - assert.equal(moment([2011, 0, 13]).format('DDDo'), '13', '13th'); - assert.equal(moment([2011, 0, 14]).format('DDDo'), '14', '14th'); - assert.equal(moment([2011, 0, 15]).format('DDDo'), '15', '15th'); - assert.equal(moment([2011, 0, 16]).format('DDDo'), '16', '16th'); - assert.equal(moment([2011, 0, 17]).format('DDDo'), '17', '17th'); - assert.equal(moment([2011, 0, 18]).format('DDDo'), '18', '18th'); - assert.equal(moment([2011, 0, 19]).format('DDDo'), '19', '19th'); - assert.equal(moment([2011, 0, 20]).format('DDDo'), '20', '20th'); - - assert.equal(moment([2011, 0, 21]).format('DDDo'), '21', '21st'); - assert.equal(moment([2011, 0, 22]).format('DDDo'), '22', '22nd'); - assert.equal(moment([2011, 0, 23]).format('DDDo'), '23', '23rd'); - assert.equal(moment([2011, 0, 24]).format('DDDo'), '24', '24th'); - assert.equal(moment([2011, 0, 25]).format('DDDo'), '25', '25th'); - assert.equal(moment([2011, 0, 26]).format('DDDo'), '26', '26th'); - assert.equal(moment([2011, 0, 27]).format('DDDo'), '27', '27th'); - assert.equal(moment([2011, 0, 28]).format('DDDo'), '28', '28th'); - assert.equal(moment([2011, 0, 29]).format('DDDo'), '29', '29th'); - assert.equal(moment([2011, 0, 30]).format('DDDo'), '30', '30th'); - - assert.equal(moment([2011, 0, 31]).format('DDDo'), '31', '31st'); -}); - -test('format month', function (assert) { - var expected = 'មករា មករា_កុម្ភៈ កុម្ភៈ_មីនា មីនា_មេសា មេសា_ឧសភា ឧសភា_មិថុនា មិថុនា_កក្កដា កក្កដា_សីហា សីហា_កញ្ញា កញ្ញា_តុលា តុលា_វិច្ឆិកា វិច្ឆិកា_ធ្នូ ធ្នូ'.split('_'), - i; - for (i = 0; i < expected.length; i++) { - assert.equal(moment([2011, i, 1]).format('MMMM MMM'), expected[i], expected[i]); - } -}); - -test('format week', function (assert) { - var expected = 'អាទិត្យ អាទិត្យ អាទិត្យ_ច័ន្ទ ច័ន្ទ ច័ន្ទ_អង្គារ អង្គារ អង្គារ_ពុធ ពុធ ពុធ_ព្រហស្បតិ៍ ព្រហស្បតិ៍ ព្រហស្បតិ៍_សុក្រ សុក្រ សុក្រ_សៅរ៍ សៅរ៍ សៅរ៍'.split('_'), - i; - for (i = 0; i < expected.length; i++) { - assert.equal(moment([2011, 0, 2 + i]).format('dddd ddd dd'), expected[i], expected[i]); - } -}); - -test('from', function (assert) { - var start = moment([2007, 1, 28]); - assert.equal(start.from(moment([2007, 1, 28]).add({s: 44}), true), 'ប៉ុន្មានវិនាទី', '44 seconds = ប៉ុន្មានវិនាទី'); - assert.equal(start.from(moment([2007, 1, 28]).add({s: 45}), true), 'មួយនាទី', '45 seconds = មួយនាទី'); - assert.equal(start.from(moment([2007, 1, 28]).add({s: 89}), true), 'មួយនាទី', '89 seconds = មួយនាទី'); - assert.equal(start.from(moment([2007, 1, 28]).add({s: 90}), true), '2 នាទី', '90 seconds = 2 នាទី'); - assert.equal(start.from(moment([2007, 1, 28]).add({m: 44}), true), '44 នាទី', '44 minutes = 44 នាទី'); - assert.equal(start.from(moment([2007, 1, 28]).add({m: 45}), true), 'មួយម៉ោង', '45 minutes = មួយម៉ោង'); - assert.equal(start.from(moment([2007, 1, 28]).add({m: 89}), true), 'មួយម៉ោង', '89 minutes = មួយម៉ោង'); - assert.equal(start.from(moment([2007, 1, 28]).add({m: 90}), true), '2 ម៉ោង', '90 minutes = 2 ម៉ោង'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 5}), true), '5 ម៉ោង', '5 hours = 5 ម៉ោង'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 21}), true), '21 ម៉ោង', '21 hours = 21 ម៉ោង'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 22}), true), 'មួយថ្ងៃ', '22 hours = មួយថ្ងៃ'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 35}), true), 'មួយថ្ងៃ', '35 hours = មួយថ្ងៃ'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 36}), true), '2 ថ្ងៃ', '36 hours = 2 ថ្ងៃ'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 1}), true), 'មួយថ្ងៃ', '1 day = មួយថ្ងៃ'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 5}), true), '5 ថ្ងៃ', '5 days = 5 ថ្ងៃ'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 25}), true), '25 ថ្ងៃ', '25 days = 25 ថ្ងៃ'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 26}), true), 'មួយខែ', '26 days = មួយខែ'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 30}), true), 'មួយខែ', '30 days = មួយខែ'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 43}), true), 'មួយខែ', '43 days = មួយខែ'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 46}), true), '2 ខែ', '46 days = 2 ខែ'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 74}), true), '2 ខែ', '75 days = 2 ខែ'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 76}), true), '3 ខែ', '76 days = 3 ខែ'); - assert.equal(start.from(moment([2007, 1, 28]).add({M: 1}), true), 'មួយខែ', '1 month = មួយខែ'); - assert.equal(start.from(moment([2007, 1, 28]).add({M: 5}), true), '5 ខែ', '5 months = 5 ខែ'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 345}), true), 'មួយឆ្នាំ', '345 days = មួយឆ្នាំ'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 548}), true), '2 ឆ្នាំ', '548 days = 2 ឆ្នាំ'); - assert.equal(start.from(moment([2007, 1, 28]).add({y: 1}), true), 'មួយឆ្នាំ', '1 year = មួយឆ្នាំ'); - assert.equal(start.from(moment([2007, 1, 28]).add({y: 5}), true), '5 ឆ្នាំ', '5 years = 5 ឆ្នាំ'); -}); - -test('suffix', function (assert) { - assert.equal(moment(30000).from(0), 'ប៉ុន្មានវិនាទីទៀត', 'prefix'); - assert.equal(moment(0).from(30000), 'ប៉ុន្មានវិនាទីមុន', 'suffix'); -}); - -test('now from now', function (assert) { - assert.equal(moment().fromNow(), 'ប៉ុន្មានវិនាទីមុន', 'now from now should display as in the past'); -}); - -test('fromNow', function (assert) { - assert.equal(moment().add({ - s: 30 - }).fromNow(), 'ប៉ុន្មានវិនាទីទៀត', 'in a few seconds'); - assert.equal(moment().add({ - d: 5 - }).fromNow(), '5 ថ្ងៃទៀត', 'in 5 days'); -}); - -test('calendar day', function (assert) { - var a = moment().hours(12).minutes(0).seconds(0); - - assert.equal(moment(a).calendar(), 'ថ្ងៃនេះ ម៉ោង 12:00', 'today at the same time'); - assert.equal(moment(a).add({m: 25}).calendar(), 'ថ្ងៃនេះ ម៉ោង 12:25', 'Now plus 25 min'); - assert.equal(moment(a).add({h: 1}).calendar(), 'ថ្ងៃនេះ ម៉ោង 13:00', 'Now plus 1 hour'); - assert.equal(moment(a).add({d: 1}).calendar(), 'ស្អែក ម៉ោង 12:00', 'tomorrow at the same time'); - assert.equal(moment(a).subtract({h: 1}).calendar(), 'ថ្ងៃនេះ ម៉ោង 11:00', 'Now minus 1 hour'); - assert.equal(moment(a).subtract({d: 1}).calendar(), 'ម្សិលមិញ ម៉ោង 12:00', 'yesterday at the same time'); -}); - -test('calendar next week', function (assert) { - var i, m; - for (i = 2; i < 7; i++) { - m = moment().add({ - d: i - }); - assert.equal(m.calendar(), m.format('dddd [ម៉ោង] LT'), 'Today + ' + i + ' days current time'); - m.hours(0).minutes(0).seconds(0).milliseconds(0); - assert.equal(m.calendar(), m.format('dddd [ម៉ោង] LT'), 'Today + ' + i + ' days beginning of day'); - m.hours(23).minutes(59).seconds(59).milliseconds(999); - assert.equal(m.calendar(), m.format('dddd [ម៉ោង] LT'), 'Today + ' + i + ' days end of day'); - } -}); - -test('calendar last week', function (assert) { - var i, m; - - for (i = 2; i < 7; i++) { - m = moment().subtract({ - d: i - }); - assert.equal(m.calendar(), m.format('dddd [សប្តាហ៍មុន] [ម៉ោង] LT'), 'Today - ' + i + ' days current time'); - m.hours(0).minutes(0).seconds(0).milliseconds(0); - assert.equal(m.calendar(), m.format('dddd [សប្តាហ៍មុន] [ម៉ោង] LT'), 'Today - ' + i + ' days beginning of day'); - m.hours(23).minutes(59).seconds(59).milliseconds(999); - assert.equal(m.calendar(), m.format('dddd [សប្តាហ៍មុន] [ម៉ោង] LT'), 'Today - ' + i + ' days end of day'); - } -}); - -test('calendar all else', function (assert) { - var weeksAgo = moment().subtract({ - w: 1 - }), - weeksFromNow = moment().add({ - w: 1 - }); - - assert.equal(weeksAgo.calendar(), weeksAgo.format('L'), '1 week ago'); - assert.equal(weeksFromNow.calendar(), weeksFromNow.format('L'), 'in 1 week'); - - weeksAgo = moment().subtract({ - w: 2 - }); - weeksFromNow = moment().add({ - w: 2 - }); - - assert.equal(weeksAgo.calendar(), weeksAgo.format('L'), '2 weeks ago'); - assert.equal(weeksFromNow.calendar(), weeksFromNow.format('L'), 'in 2 weeks'); -}); - -test('weeks year starting sunday formatted', function (assert) { - assert.equal(moment([2012, 0, 1]).format('w ww wo'), '52 52 52', 'Jan 1 2012 should be week 52'); - assert.equal(moment([2012, 0, 2]).format('w ww wo'), '1 01 1', 'Jan 2 2012 should be week 1'); - assert.equal(moment([2012, 0, 8]).format('w ww wo'), '1 01 1', 'Jan 8 2012 should be week 1'); - assert.equal(moment([2012, 0, 9]).format('w ww wo'), '2 02 2', 'Jan 9 2012 should be week 2'); - assert.equal(moment([2012, 0, 15]).format('w ww wo'), '2 02 2', 'Jan 15 2012 should be week 2'); -}); - -}))); - - -;(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' - && typeof require === 'function' ? factory(require('../../moment')) : - typeof define === 'function' && define.amd ? define(['../../moment'], factory) : - factory(global.moment) -}(this, (function (moment) { 'use strict'; - -function each(array, callback) { - var i; - for (i = 0; i < array.length; i++) { - callback(array[i], i, array); - } -} - -function objectKeys(obj) { - if (Object.keys) { - return Object.keys(obj); - } else { - // IE8 - var res = [], i; - for (i in obj) { - if (obj.hasOwnProperty(i)) { - res.push(i); - } - } - return res; - } -} - -// Pick the first defined of two or three arguments. - -function defineCommonLocaleTests(locale, options) { - test('lenient day of month ordinal parsing', function (assert) { - var i, ordinalStr, testMoment; - for (i = 1; i <= 31; ++i) { - ordinalStr = moment([2014, 0, i]).format('YYYY MM Do'); - testMoment = moment(ordinalStr, 'YYYY MM Do'); - assert.equal(testMoment.year(), 2014, - 'lenient day of month ordinal parsing ' + i + ' year check'); - assert.equal(testMoment.month(), 0, - 'lenient day of month ordinal parsing ' + i + ' month check'); - assert.equal(testMoment.date(), i, - 'lenient day of month ordinal parsing ' + i + ' date check'); - } - }); - - test('lenient day of month ordinal parsing of number', function (assert) { - var i, testMoment; - for (i = 1; i <= 31; ++i) { - testMoment = moment('2014 01 ' + i, 'YYYY MM Do'); - assert.equal(testMoment.year(), 2014, - 'lenient day of month ordinal parsing of number ' + i + ' year check'); - assert.equal(testMoment.month(), 0, - 'lenient day of month ordinal parsing of number ' + i + ' month check'); - assert.equal(testMoment.date(), i, - 'lenient day of month ordinal parsing of number ' + i + ' date check'); - } - }); - - test('strict day of month ordinal parsing', function (assert) { - var i, ordinalStr, testMoment; - for (i = 1; i <= 31; ++i) { - ordinalStr = moment([2014, 0, i]).format('YYYY MM Do'); - testMoment = moment(ordinalStr, 'YYYY MM Do', true); - assert.ok(testMoment.isValid(), 'strict day of month ordinal parsing ' + i); - } - }); - - test('meridiem invariant', function (assert) { - var h, m, t1, t2; - for (h = 0; h < 24; ++h) { - for (m = 0; m < 60; m += 15) { - t1 = moment.utc([2000, 0, 1, h, m]); - t2 = moment.utc(t1.format('A h:mm'), 'A h:mm'); - assert.equal(t2.format('HH:mm'), t1.format('HH:mm'), - 'meridiem at ' + t1.format('HH:mm')); - } - } - }); - - test('date format correctness', function (assert) { - var data, tokens; - data = moment.localeData()._longDateFormat; - tokens = objectKeys(data); - each(tokens, function (srchToken) { - // Check each format string to make sure it does not contain any - // tokens that need to be expanded. - each(tokens, function (baseToken) { - // strip escaped sequences - var format = data[baseToken].replace(/(\[[^\]]*\])/g, ''); - assert.equal(false, !!~format.indexOf(srchToken), - 'contains ' + srchToken + ' in ' + baseToken); - }); - }); - }); - - test('month parsing correctness', function (assert) { - var i, m; - - if (locale === 'tr') { - // I can't fix it :( - expect(0); - return; - } - function tester(format) { - var r; - r = moment(m.format(format), format); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format); - r = moment(m.format(format).toLocaleUpperCase(), format); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' upper'); - r = moment(m.format(format).toLocaleLowerCase(), format); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' lower'); - - r = moment(m.format(format), format, true); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' strict'); - r = moment(m.format(format).toLocaleUpperCase(), format, true); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' upper strict'); - r = moment(m.format(format).toLocaleLowerCase(), format, true); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' lower strict'); - } - - for (i = 0; i < 12; ++i) { - m = moment([2015, i, 15, 18]); - tester('MMM'); - tester('MMM.'); - tester('MMMM'); - tester('MMMM.'); - } - }); - - test('weekday parsing correctness', function (assert) { - var i, m; - - if (locale === 'tr' || locale === 'az' || locale === 'ro') { - // tr, az: There is a lower-case letter (ı), that converted to - // upper then lower changes to i - // ro: there is the letter ț which behaves weird under IE8 - expect(0); - return; - } - function tester(format) { - var r, baseMsg = 'weekday ' + m.weekday() + ' fmt ' + format + ' ' + m.toISOString(); - r = moment(m.format(format), format); - assert.equal(r.weekday(), m.weekday(), baseMsg); - r = moment(m.format(format).toLocaleUpperCase(), format); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' upper'); - r = moment(m.format(format).toLocaleLowerCase(), format); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' lower'); - - r = moment(m.format(format), format, true); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' strict'); - r = moment(m.format(format).toLocaleUpperCase(), format, true); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' upper strict'); - r = moment(m.format(format).toLocaleLowerCase(), format, true); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' lower strict'); - } - - for (i = 0; i < 7; ++i) { - m = moment.utc([2015, 0, i + 1, 18]); - tester('dd'); - tester('ddd'); - tester('dddd'); - } - }); - - test('valid localeData', function (assert) { - assert.equal(moment().localeData().months().length, 12, 'months should return 12 months'); - assert.equal(moment().localeData().monthsShort().length, 12, 'monthsShort should return 12 months'); - assert.equal(moment().localeData().weekdays().length, 7, 'weekdays should return 7 days'); - assert.equal(moment().localeData().weekdaysShort().length, 7, 'weekdaysShort should return 7 days'); - assert.equal(moment().localeData().weekdaysMin().length, 7, 'monthsShort should return 7 days'); - }); -} - -function setupDeprecationHandler(test, moment$$1, scope) { - test._expectedDeprecations = null; - test._observedDeprecations = null; - test._oldSupress = moment$$1.suppressDeprecationWarnings; - moment$$1.suppressDeprecationWarnings = true; - test.expectedDeprecations = function () { - test._expectedDeprecations = arguments; - test._observedDeprecations = []; - }; - moment$$1.deprecationHandler = function (name, msg) { - var deprecationId = matchedDeprecation(name, msg, test._expectedDeprecations); - if (deprecationId === -1) { - throw new Error('Unexpected deprecation thrown name=' + - name + ' msg=' + msg); - } - test._observedDeprecations[deprecationId] = 1; - }; -} - -function teardownDeprecationHandler(test, moment$$1, scope) { - moment$$1.suppressDeprecationWarnings = test._oldSupress; - - if (test._expectedDeprecations != null) { - var missedDeprecations = []; - each(test._expectedDeprecations, function (deprecationPattern, id) { - if (test._observedDeprecations[id] !== 1) { - missedDeprecations.push(deprecationPattern); - } - }); - if (missedDeprecations.length !== 0) { - throw new Error('Expected deprecation warnings did not happen: ' + - missedDeprecations.join(' ')); - } - } -} - -function matchedDeprecation(name, msg, deprecations) { - if (deprecations == null) { - return -1; - } - for (var i = 0; i < deprecations.length; ++i) { - if (name != null && name === deprecations[i]) { - return i; - } - if (msg != null && msg.substring(0, deprecations[i].length) === deprecations[i]) { - return i; - } - } - return -1; -} - -/*global QUnit:false*/ - -var test = QUnit.test; - -var expect = QUnit.expect; - - - -function localeModule (name, lifecycle) { - QUnit.module('locale:' + name, { - setup : function () { - moment.locale(name); - moment.createFromInputFallback = function (config) { - throw new Error('input not handled by moment: ' + config._i); - }; - setupDeprecationHandler(test, moment, 'locale'); - if (lifecycle && lifecycle.setup) { - lifecycle.setup(); - } - }, - teardown : function () { - moment.locale('en'); - teardownDeprecationHandler(test, moment, 'locale'); - if (lifecycle && lifecycle.teardown) { - lifecycle.teardown(); - } - } - }); - defineCommonLocaleTests(name, -1, -1); -} - -localeModule('kn'); - -test('parse', function (assert) { - var tests = 'ಜನವರಿ ಜನ_ಫೆಬ್ರವರಿ ಫೆಬ್ರ_ಮಾರ್ಚ್ ಮಾರ್ಚ್_ಏಪ್ರಿಲ್ ಏಪ್ರಿಲ್_ಮೇ ಮೇ_ಜೂನ್ ಜೂನ್_ಜುಲೈ ಜುಲೈ_ಆಗಸ್ಟ್ ಆಗಸ್ಟ್_ಸೆಪ್ಟೆಂಬರ್ ಸೆಪ್ಟೆಂಬ_ಅಕ್ಟೋಬರ್ ಅಕ್ಟೋಬ_ನವೆಂಬರ್ ನವೆಂಬ_ಡಿಸೆಂಬರ್ ಡಿಸೆಂಬ'.split('_'), i; - function equalTest(input, mmm, i) { - assert.equal(moment(input, mmm).month(), i, input + ' should be month ' + (i + 1)); - } - for (i = 0; i < 12; i++) { - tests[i] = tests[i].split(' '); - equalTest(tests[i][0], 'MMM', i); - equalTest(tests[i][1], 'MMM', i); - equalTest(tests[i][0], 'MMMM', i); - equalTest(tests[i][1], 'MMMM', i); - equalTest(tests[i][0].toLocaleLowerCase(), 'MMMM', i); - equalTest(tests[i][1].toLocaleLowerCase(), 'MMMM', i); - equalTest(tests[i][0].toLocaleUpperCase(), 'MMMM', i); - equalTest(tests[i][1].toLocaleUpperCase(), 'MMMM', i); - } -}); - -test('format', function (assert) { - var a = [ - ['dddd, Do MMMM YYYY, a h:mm:ss', 'ಭಾನುವಾರ, ೧೪ನೇ ಫೆಬ್ರವರಿ ೨೦೧೦, ಮಧ್ಯಾಹ್ನ ೩:೨೫:೫೦'], - ['ddd, a h ಗಂಟೆ', 'ಭಾನು, ಮಧ್ಯಾಹ್ನ ೩ ಗಂಟೆ'], - ['M Mo MM MMMM MMM', '೨ ೨ನೇ ೦೨ ಫೆಬ್ರವರಿ ಫೆಬ್ರ'], - ['YYYY YY', '೨೦೧೦ ೧೦'], - ['D Do DD', '೧೪ ೧೪ನೇ ೧೪'], - ['d do dddd ddd dd', '೦ ೦ನೇ ಭಾನುವಾರ ಭಾನು ಭಾ'], - ['DDD DDDo DDDD', '೪೫ ೪೫ನೇ ೦೪೫'], - ['w wo ww', '೮ ೮ನೇ ೦೮'], - ['h hh', '೩ ೦೩'], - ['H HH', '೧೫ ೧೫'], - ['m mm', '೨೫ ೨೫'], - ['s ss', '೫೦ ೫೦'], - ['a A', 'ಮಧ್ಯಾಹ್ನ ಮಧ್ಯಾಹ್ನ'], - ['LTS', 'ಮಧ್ಯಾಹ್ನ ೩:೨೫:೫೦'], - ['L', '೧೪/೦೨/೨೦೧೦'], - ['LL', '೧೪ ಫೆಬ್ರವರಿ ೨೦೧೦'], - ['LLL', '೧೪ ಫೆಬ್ರವರಿ ೨೦೧೦, ಮಧ್ಯಾಹ್ನ ೩:೨೫'], - ['LLLL', 'ಭಾನುವಾರ, ೧೪ ಫೆಬ್ರವರಿ ೨೦೧೦, ಮಧ್ಯಾಹ್ನ ೩:೨೫'], - ['l', '೧೪/೨/೨೦೧೦'], - ['ll', '೧೪ ಫೆಬ್ರ ೨೦೧೦'], - ['lll', '೧೪ ಫೆಬ್ರ ೨೦೧೦, ಮಧ್ಯಾಹ್ನ ೩:೨೫'], - ['llll', 'ಭಾನು, ೧೪ ಫೆಬ್ರ ೨೦೧೦, ಮಧ್ಯಾಹ್ನ ೩:೨೫'] - ], - b = moment(new Date(2010, 1, 14, 15, 25, 50, 125)), - i; - for (i = 0; i < a.length; i++) { - assert.equal(b.format(a[i][0]), a[i][1], a[i][0] + ' ---> ' + a[i][1]); - } -}); - -test('format ordinal', function (assert) { - assert.equal(moment([2011, 0, 1]).format('DDDo'), '೧ನೇ', '೧ನೇ'); - assert.equal(moment([2011, 0, 2]).format('DDDo'), '೨ನೇ', '೨ನೇ'); - assert.equal(moment([2011, 0, 3]).format('DDDo'), '೩ನೇ', '೩ನೇ'); - assert.equal(moment([2011, 0, 4]).format('DDDo'), '೪ನೇ', '೪ನೇ'); - assert.equal(moment([2011, 0, 5]).format('DDDo'), '೫ನೇ', '೫ನೇ'); - assert.equal(moment([2011, 0, 6]).format('DDDo'), '೬ನೇ', '೬ನೇ'); - assert.equal(moment([2011, 0, 7]).format('DDDo'), '೭ನೇ', '೭ನೇ'); - assert.equal(moment([2011, 0, 8]).format('DDDo'), '೮ನೇ', '೮ನೇ'); - assert.equal(moment([2011, 0, 9]).format('DDDo'), '೯ನೇ', '೯ನೇ'); - assert.equal(moment([2011, 0, 10]).format('DDDo'), '೧೦ನೇ', '೧೦ನೇ'); - - assert.equal(moment([2011, 0, 11]).format('DDDo'), '೧೧ನೇ', '೧೧ನೇ'); - assert.equal(moment([2011, 0, 12]).format('DDDo'), '೧೨ನೇ', '೧೨ನೇ'); - assert.equal(moment([2011, 0, 13]).format('DDDo'), '೧೩ನೇ', '೧೩ನೇ'); - assert.equal(moment([2011, 0, 14]).format('DDDo'), '೧೪ನೇ', '೧೪ನೇ'); - assert.equal(moment([2011, 0, 15]).format('DDDo'), '೧೫ನೇ', '೧೫ನೇ'); - assert.equal(moment([2011, 0, 16]).format('DDDo'), '೧೬ನೇ', '೧೬ನೇ'); - assert.equal(moment([2011, 0, 17]).format('DDDo'), '೧೭ನೇ', '೧೭ನೇ'); - assert.equal(moment([2011, 0, 18]).format('DDDo'), '೧೮ನೇ', '೧೮ನೇ'); - assert.equal(moment([2011, 0, 19]).format('DDDo'), '೧೯ನೇ', '೧೯ನೇ'); - assert.equal(moment([2011, 0, 20]).format('DDDo'), '೨೦ನೇ', '೨೦ನೇ'); - - assert.equal(moment([2011, 0, 21]).format('DDDo'), '೨೧ನೇ', '೨೧ನೇ'); - assert.equal(moment([2011, 0, 22]).format('DDDo'), '೨೨ನೇ', '೨೨ನೇ'); - assert.equal(moment([2011, 0, 23]).format('DDDo'), '೨೩ನೇ', '೨೩ನೇ'); - assert.equal(moment([2011, 0, 24]).format('DDDo'), '೨೪ನೇ', '೨೪ನೇ'); - assert.equal(moment([2011, 0, 25]).format('DDDo'), '೨೫ನೇ', '೨೫ನೇ'); - assert.equal(moment([2011, 0, 26]).format('DDDo'), '೨೬ನೇ', '೨೬ನೇ'); - assert.equal(moment([2011, 0, 27]).format('DDDo'), '೨೭ನೇ', '೨೭ನೇ'); - assert.equal(moment([2011, 0, 28]).format('DDDo'), '೨೮ನೇ', '೨೮ನೇ'); - assert.equal(moment([2011, 0, 29]).format('DDDo'), '೨೯ನೇ', '೨೯ನೇ'); - assert.equal(moment([2011, 0, 30]).format('DDDo'), '೩೦ನೇ', '೩೦ನೇ'); - - assert.equal(moment([2011, 0, 31]).format('DDDo'), '೩೧ನೇ', '೩೧ನೇ'); -}); - -test('format month', function (assert) { - var expected = 'ಜನವರಿ ಜನ_ಫೆಬ್ರವರಿ ಫೆಬ್ರ_ಮಾರ್ಚ್ ಮಾರ್ಚ್_ಏಪ್ರಿಲ್ ಏಪ್ರಿಲ್_ಮೇ ಮೇ_ಜೂನ್ ಜೂನ್_ಜುಲೈ ಜುಲೈ_ಆಗಸ್ಟ್ ಆಗಸ್ಟ್_ಸೆಪ್ಟೆಂಬರ್ ಸೆಪ್ಟೆಂಬ_ಅಕ್ಟೋಬರ್ ಅಕ್ಟೋಬ_ನವೆಂಬರ್ ನವೆಂಬ_ಡಿಸೆಂಬರ್ ಡಿಸೆಂಬ'.split('_'), i; - for (i = 0; i < expected.length; i++) { - assert.equal(moment([2011, i, 1]).format('MMMM MMM'), expected[i], expected[i]); - } -}); - -test('format week', function (assert) { - var expected = 'ಭಾನುವಾರ ಭಾನು ಭಾ_ಸೋಮವಾರ ಸೋಮ ಸೋ_ಮಂಗಳವಾರ ಮಂಗಳ ಮಂ_ಬುಧವಾರ ಬುಧ ಬು_ಗುರುವಾರ ಗುರು ಗು_ಶುಕ್ರವಾರ ಶುಕ್ರ ಶು_ಶನಿವಾರ ಶನಿ ಶ'.split('_'), i; - for (i = 0; i < expected.length; i++) { - assert.equal(moment([2011, 0, 2 + i]).format('dddd ddd dd'), expected[i], expected[i]); - } -}); - -test('from', function (assert) { - var start = moment([2007, 1, 28]); - assert.equal(start.from(moment([2007, 1, 28]).add({s: 44}), true), 'ಕೆಲವು ಕ್ಷಣಗಳು', '44 seconds = a few seconds'); - assert.equal(start.from(moment([2007, 1, 28]).add({s: 45}), true), 'ಒಂದು ನಿಮಿಷ', '45 seconds = a minute'); - assert.equal(start.from(moment([2007, 1, 28]).add({s: 89}), true), 'ಒಂದು ನಿಮಿಷ', '89 seconds = a minute'); - assert.equal(start.from(moment([2007, 1, 28]).add({s: 90}), true), '೨ ನಿಮಿಷ', '90 seconds = 2 minutes'); - assert.equal(start.from(moment([2007, 1, 28]).add({m: 44}), true), '೪೪ ನಿಮಿಷ', '44 minutes = 44 minutes'); - assert.equal(start.from(moment([2007, 1, 28]).add({m: 45}), true), 'ಒಂದು ಗಂಟೆ', '45 minutes = an hour'); - assert.equal(start.from(moment([2007, 1, 28]).add({m: 89}), true), 'ಒಂದು ಗಂಟೆ', '89 minutes = an hour'); - assert.equal(start.from(moment([2007, 1, 28]).add({m: 90}), true), '೨ ಗಂಟೆ', '90 minutes = 2 hours'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 5}), true), '೫ ಗಂಟೆ', '5 hours = 5 hours'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 21}), true), '೨೧ ಗಂಟೆ', '21 hours = 21 hours'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 22}), true), 'ಒಂದು ದಿನ', '22 hours = a day'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 35}), true), 'ಒಂದು ದಿನ', '35 hours = a day'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 36}), true), '೨ ದಿನ', '36 hours = 2 days'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 1}), true), 'ಒಂದು ದಿನ', '1 day = a day'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 5}), true), '೫ ದಿನ', '5 days = 5 days'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 25}), true), '೨೫ ದಿನ', '25 days = 25 days'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 26}), true), 'ಒಂದು ತಿಂಗಳು', '26 days = a month'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 30}), true), 'ಒಂದು ತಿಂಗಳು', '30 days = a month'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 43}), true), 'ಒಂದು ತಿಂಗಳು', '43 days = a month'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 46}), true), '೨ ತಿಂಗಳು', '46 days = 2 months'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 74}), true), '೨ ತಿಂಗಳು', '75 days = 2 months'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 76}), true), '೩ ತಿಂಗಳು', '76 days = 3 months'); - assert.equal(start.from(moment([2007, 1, 28]).add({M: 1}), true), 'ಒಂದು ತಿಂಗಳು', '1 month = a month'); - assert.equal(start.from(moment([2007, 1, 28]).add({M: 5}), true), '೫ ತಿಂಗಳು', '5 months = 5 months'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 345}), true), 'ಒಂದು ವರ್ಷ', '345 days = a year'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 548}), true), '೨ ವರ್ಷ', '548 days = 2 years'); - assert.equal(start.from(moment([2007, 1, 28]).add({y: 1}), true), 'ಒಂದು ವರ್ಷ', '1 year = a year'); - assert.equal(start.from(moment([2007, 1, 28]).add({y: 5}), true), '೫ ವರ್ಷ', '5 years = 5 years'); -}); - -test('suffix', function (assert) { - assert.equal(moment(30000).from(0), 'ಕೆಲವು ಕ್ಷಣಗಳು ನಂತರ', 'prefix'); - assert.equal(moment(0).from(30000), 'ಕೆಲವು ಕ್ಷಣಗಳು ಹಿಂದೆ', 'suffix'); -}); - -test('now from now', function (assert) { - assert.equal(moment().fromNow(), 'ಕೆಲವು ಕ್ಷಣಗಳು ಹಿಂದೆ', 'now from now should display as in the past'); -}); - -test('fromNow', function (assert) { - assert.equal(moment().add({s: 30}).fromNow(), 'ಕೆಲವು ಕ್ಷಣಗಳು ನಂತರ', 'ಕೆಲವು ಕ್ಷಣಗಳು ನಂತರ'); - assert.equal(moment().add({d: 5}).fromNow(), '೫ ದಿನ ನಂತರ', '೫ ದಿನ ನಂತರ'); -}); - -test('calendar day', function (assert) { - var a = moment().hours(12).minutes(0).seconds(0); - - assert.equal(moment(a).calendar(), 'ಇಂದು ಮಧ್ಯಾಹ್ನ ೧೨:೦೦', 'today at the same time'); - assert.equal(moment(a).add({m: 25}).calendar(), 'ಇಂದು ಮಧ್ಯಾಹ್ನ ೧೨:೨೫', 'Now plus 25 min'); - assert.equal(moment(a).add({h: 3}).calendar(), 'ಇಂದು ಮಧ್ಯಾಹ್ನ ೩:೦೦', 'Now plus 3 hours'); - assert.equal(moment(a).add({d: 1}).calendar(), 'ನಾಳೆ ಮಧ್ಯಾಹ್ನ ೧೨:೦೦', 'tomorrow at the same time'); - assert.equal(moment(a).subtract({h: 1}).calendar(), 'ಇಂದು ಮಧ್ಯಾಹ್ನ ೧೧:೦೦', 'Now minus 1 hour'); - assert.equal(moment(a).subtract({d: 1}).calendar(), 'ನಿನ್ನೆ ಮಧ್ಯಾಹ್ನ ೧೨:೦೦', 'yesterday at the same time'); -}); - -test('calendar next week', function (assert) { - var i, m; - for (i = 2; i < 7; i++) { - m = moment().add({d: i}); - assert.equal(m.calendar(), m.format('dddd[,] LT'), 'Today + ' + i + ' days current time'); - m.hours(0).minutes(0).seconds(0).milliseconds(0); - assert.equal(m.calendar(), m.format('dddd[,] LT'), 'Today + ' + i + ' days beginning of day'); - m.hours(23).minutes(59).seconds(59).milliseconds(999); - assert.equal(m.calendar(), m.format('dddd[,] LT'), 'Today + ' + i + ' days end of day'); - } -}); - -test('calendar last week', function (assert) { - var i, m; - - for (i = 2; i < 7; i++) { - m = moment().subtract({d: i}); - assert.equal(m.calendar(), m.format('[ಕೊನೆಯ] dddd[,] LT'), 'Today - ' + i + ' days current time'); - m.hours(0).minutes(0).seconds(0).milliseconds(0); - assert.equal(m.calendar(), m.format('[ಕೊನೆಯ] dddd[,] LT'), 'Today - ' + i + ' days beginning of day'); - m.hours(23).minutes(59).seconds(59).milliseconds(999); - assert.equal(m.calendar(), m.format('[ಕೊನೆಯ] dddd[,] LT'), 'Today - ' + i + ' days end of day'); - } -}); - -test('calendar all else', function (assert) { - var weeksAgo = moment().subtract({w: 1}), - weeksFromNow = moment().add({w: 1}); - - assert.equal(weeksAgo.calendar(), weeksAgo.format('L'), '1 week ago'); - assert.equal(weeksFromNow.calendar(), weeksFromNow.format('L'), 'in 1 week'); - - weeksAgo = moment().subtract({w: 2}); - weeksFromNow = moment().add({w: 2}); - - assert.equal(weeksAgo.calendar(), weeksAgo.format('L'), '2 weeks ago'); - assert.equal(weeksFromNow.calendar(), weeksFromNow.format('L'), 'in 2 weeks'); -}); - -test('meridiem', function (assert) { - assert.equal(moment([2011, 2, 23, 2, 30]).format('a'), 'ರಾತ್ರಿ', 'before dawn'); - assert.equal(moment([2011, 2, 23, 9, 30]).format('a'), 'ಬೆಳಿಗ್ಗೆ', 'morning'); - assert.equal(moment([2011, 2, 23, 14, 30]).format('a'), 'ಮಧ್ಯಾಹ್ನ', 'during day'); - assert.equal(moment([2011, 2, 23, 17, 30]).format('a'), 'ಸಂಜೆ', 'evening'); - assert.equal(moment([2011, 2, 23, 19, 30]).format('a'), 'ಸಂಜೆ', 'late evening'); - assert.equal(moment([2011, 2, 23, 21, 20]).format('a'), 'ರಾತ್ರಿ', 'night'); - - assert.equal(moment([2011, 2, 23, 2, 30]).format('A'), 'ರಾತ್ರಿ', 'before dawn'); - assert.equal(moment([2011, 2, 23, 9, 30]).format('A'), 'ಬೆಳಿಗ್ಗೆ', 'morning'); - assert.equal(moment([2011, 2, 23, 14, 30]).format('A'), 'ಮಧ್ಯಾಹ್ನ', ' during day'); - assert.equal(moment([2011, 2, 23, 17, 30]).format('A'), 'ಸಂಜೆ', 'evening'); - assert.equal(moment([2011, 2, 23, 19, 30]).format('A'), 'ಸಂಜೆ', 'late evening'); - assert.equal(moment([2011, 2, 23, 21, 20]).format('A'), 'ರಾತ್ರಿ', 'night'); -}); - -test('weeks year starting sunday formatted', function (assert) { - assert.equal(moment([2012, 0, 1]).format('w ww wo'), '೧ ೦೧ ೧ನೇ', 'Jan 1 2012 should be week 1'); - assert.equal(moment([2012, 0, 7]).format('w ww wo'), '೧ ೦೧ ೧ನೇ', 'Jan 7 2012 should be week 1'); - assert.equal(moment([2012, 0, 8]).format('w ww wo'), '೨ ೦೨ ೨ನೇ', 'Jan 8 2012 should be week 2'); - assert.equal(moment([2012, 0, 14]).format('w ww wo'), '೨ ೦೨ ೨ನೇ', 'Jan 14 2012 should be week 2'); - assert.equal(moment([2012, 0, 15]).format('w ww wo'), '೩ ೦೩ ೩ನೇ', 'Jan 15 2012 should be week 3'); -}); - -}))); - - -;(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' - && typeof require === 'function' ? factory(require('../../moment')) : - typeof define === 'function' && define.amd ? define(['../../moment'], factory) : - factory(global.moment) -}(this, (function (moment) { 'use strict'; - -function each(array, callback) { - var i; - for (i = 0; i < array.length; i++) { - callback(array[i], i, array); - } -} - -function objectKeys(obj) { - if (Object.keys) { - return Object.keys(obj); - } else { - // IE8 - var res = [], i; - for (i in obj) { - if (obj.hasOwnProperty(i)) { - res.push(i); - } - } - return res; - } -} - -// Pick the first defined of two or three arguments. - -function defineCommonLocaleTests(locale, options) { - test('lenient day of month ordinal parsing', function (assert) { - var i, ordinalStr, testMoment; - for (i = 1; i <= 31; ++i) { - ordinalStr = moment([2014, 0, i]).format('YYYY MM Do'); - testMoment = moment(ordinalStr, 'YYYY MM Do'); - assert.equal(testMoment.year(), 2014, - 'lenient day of month ordinal parsing ' + i + ' year check'); - assert.equal(testMoment.month(), 0, - 'lenient day of month ordinal parsing ' + i + ' month check'); - assert.equal(testMoment.date(), i, - 'lenient day of month ordinal parsing ' + i + ' date check'); - } - }); - - test('lenient day of month ordinal parsing of number', function (assert) { - var i, testMoment; - for (i = 1; i <= 31; ++i) { - testMoment = moment('2014 01 ' + i, 'YYYY MM Do'); - assert.equal(testMoment.year(), 2014, - 'lenient day of month ordinal parsing of number ' + i + ' year check'); - assert.equal(testMoment.month(), 0, - 'lenient day of month ordinal parsing of number ' + i + ' month check'); - assert.equal(testMoment.date(), i, - 'lenient day of month ordinal parsing of number ' + i + ' date check'); - } - }); - - test('strict day of month ordinal parsing', function (assert) { - var i, ordinalStr, testMoment; - for (i = 1; i <= 31; ++i) { - ordinalStr = moment([2014, 0, i]).format('YYYY MM Do'); - testMoment = moment(ordinalStr, 'YYYY MM Do', true); - assert.ok(testMoment.isValid(), 'strict day of month ordinal parsing ' + i); - } - }); - - test('meridiem invariant', function (assert) { - var h, m, t1, t2; - for (h = 0; h < 24; ++h) { - for (m = 0; m < 60; m += 15) { - t1 = moment.utc([2000, 0, 1, h, m]); - t2 = moment.utc(t1.format('A h:mm'), 'A h:mm'); - assert.equal(t2.format('HH:mm'), t1.format('HH:mm'), - 'meridiem at ' + t1.format('HH:mm')); - } - } - }); - - test('date format correctness', function (assert) { - var data, tokens; - data = moment.localeData()._longDateFormat; - tokens = objectKeys(data); - each(tokens, function (srchToken) { - // Check each format string to make sure it does not contain any - // tokens that need to be expanded. - each(tokens, function (baseToken) { - // strip escaped sequences - var format = data[baseToken].replace(/(\[[^\]]*\])/g, ''); - assert.equal(false, !!~format.indexOf(srchToken), - 'contains ' + srchToken + ' in ' + baseToken); - }); - }); - }); - - test('month parsing correctness', function (assert) { - var i, m; - - if (locale === 'tr') { - // I can't fix it :( - expect(0); - return; - } - function tester(format) { - var r; - r = moment(m.format(format), format); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format); - r = moment(m.format(format).toLocaleUpperCase(), format); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' upper'); - r = moment(m.format(format).toLocaleLowerCase(), format); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' lower'); - - r = moment(m.format(format), format, true); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' strict'); - r = moment(m.format(format).toLocaleUpperCase(), format, true); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' upper strict'); - r = moment(m.format(format).toLocaleLowerCase(), format, true); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' lower strict'); - } - - for (i = 0; i < 12; ++i) { - m = moment([2015, i, 15, 18]); - tester('MMM'); - tester('MMM.'); - tester('MMMM'); - tester('MMMM.'); - } - }); - - test('weekday parsing correctness', function (assert) { - var i, m; - - if (locale === 'tr' || locale === 'az' || locale === 'ro') { - // tr, az: There is a lower-case letter (ı), that converted to - // upper then lower changes to i - // ro: there is the letter ț which behaves weird under IE8 - expect(0); - return; - } - function tester(format) { - var r, baseMsg = 'weekday ' + m.weekday() + ' fmt ' + format + ' ' + m.toISOString(); - r = moment(m.format(format), format); - assert.equal(r.weekday(), m.weekday(), baseMsg); - r = moment(m.format(format).toLocaleUpperCase(), format); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' upper'); - r = moment(m.format(format).toLocaleLowerCase(), format); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' lower'); - - r = moment(m.format(format), format, true); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' strict'); - r = moment(m.format(format).toLocaleUpperCase(), format, true); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' upper strict'); - r = moment(m.format(format).toLocaleLowerCase(), format, true); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' lower strict'); - } - - for (i = 0; i < 7; ++i) { - m = moment.utc([2015, 0, i + 1, 18]); - tester('dd'); - tester('ddd'); - tester('dddd'); - } - }); - - test('valid localeData', function (assert) { - assert.equal(moment().localeData().months().length, 12, 'months should return 12 months'); - assert.equal(moment().localeData().monthsShort().length, 12, 'monthsShort should return 12 months'); - assert.equal(moment().localeData().weekdays().length, 7, 'weekdays should return 7 days'); - assert.equal(moment().localeData().weekdaysShort().length, 7, 'weekdaysShort should return 7 days'); - assert.equal(moment().localeData().weekdaysMin().length, 7, 'monthsShort should return 7 days'); - }); -} - -function setupDeprecationHandler(test, moment$$1, scope) { - test._expectedDeprecations = null; - test._observedDeprecations = null; - test._oldSupress = moment$$1.suppressDeprecationWarnings; - moment$$1.suppressDeprecationWarnings = true; - test.expectedDeprecations = function () { - test._expectedDeprecations = arguments; - test._observedDeprecations = []; - }; - moment$$1.deprecationHandler = function (name, msg) { - var deprecationId = matchedDeprecation(name, msg, test._expectedDeprecations); - if (deprecationId === -1) { - throw new Error('Unexpected deprecation thrown name=' + - name + ' msg=' + msg); - } - test._observedDeprecations[deprecationId] = 1; - }; -} - -function teardownDeprecationHandler(test, moment$$1, scope) { - moment$$1.suppressDeprecationWarnings = test._oldSupress; - - if (test._expectedDeprecations != null) { - var missedDeprecations = []; - each(test._expectedDeprecations, function (deprecationPattern, id) { - if (test._observedDeprecations[id] !== 1) { - missedDeprecations.push(deprecationPattern); - } - }); - if (missedDeprecations.length !== 0) { - throw new Error('Expected deprecation warnings did not happen: ' + - missedDeprecations.join(' ')); - } - } -} - -function matchedDeprecation(name, msg, deprecations) { - if (deprecations == null) { - return -1; - } - for (var i = 0; i < deprecations.length; ++i) { - if (name != null && name === deprecations[i]) { - return i; - } - if (msg != null && msg.substring(0, deprecations[i].length) === deprecations[i]) { - return i; - } - } - return -1; -} - -/*global QUnit:false*/ - -var test = QUnit.test; - -var expect = QUnit.expect; - - - -function localeModule (name, lifecycle) { - QUnit.module('locale:' + name, { - setup : function () { - moment.locale(name); - moment.createFromInputFallback = function (config) { - throw new Error('input not handled by moment: ' + config._i); - }; - setupDeprecationHandler(test, moment, 'locale'); - if (lifecycle && lifecycle.setup) { - lifecycle.setup(); - } - }, - teardown : function () { - moment.locale('en'); - teardownDeprecationHandler(test, moment, 'locale'); - if (lifecycle && lifecycle.teardown) { - lifecycle.teardown(); - } - } - }); - defineCommonLocaleTests(name, -1, -1); -} - -localeModule('ko'); - -test('parse', function (assert) { - var tests = '1월 1월_2월 2월_3월 3월_4월 4월_5월 5월_6월 6월_7월 7월_8월 8월_9월 9월_10월 10월_11월 11월_12월 12월'.split('_'), i; - function equalTest(input, mmm, i) { - assert.equal(moment(input, mmm).month(), i, input + ' should be month ' + (i + 1)); - } - for (i = 0; i < 12; i++) { - tests[i] = tests[i].split(' '); - equalTest(tests[i][0], 'MMM', i); - equalTest(tests[i][1], 'MMM', i); - equalTest(tests[i][0], 'MMMM', i); - equalTest(tests[i][1], 'MMMM', i); - equalTest(tests[i][0].toLocaleLowerCase(), 'MMMM', i); - equalTest(tests[i][1].toLocaleLowerCase(), 'MMMM', i); - equalTest(tests[i][0].toLocaleUpperCase(), 'MMMM', i); - equalTest(tests[i][1].toLocaleUpperCase(), 'MMMM', i); - } -}); - -test('parse meridiem', function (assert) { - var elements = [{ - expression : '1981년 9월 8일 오후 2시 30분', - inputFormat : 'YYYY[년] M[월] D[일] A h[시] m[분]', - outputFormat : 'A', - expected : '오후' - }, { - expression : '1981년 9월 8일 오전 2시 30분', - inputFormat : 'YYYY[년] M[월] D[일] A h[시] m[분]', - outputFormat : 'A h시', - expected : '오전 2시' - }, { - expression : '14시 30분', - inputFormat : 'H[시] m[분]', - outputFormat : 'A', - expected : '오후' - }, { - expression : '오후 4시', - inputFormat : 'A h[시]', - outputFormat : 'H', - expected : '16' - }], i, l, it, actual; - - for (i = 0, l = elements.length; i < l; ++i) { - it = elements[i]; - actual = moment(it.expression, it.inputFormat).format(it.outputFormat); - - assert.equal( - actual, - it.expected, - '\'' + it.outputFormat + '\' of \'' + it.expression + '\' must be \'' + it.expected + '\' but was \'' + actual + '\'.' - ); - } -}); - -test('format', function (assert) { - var a = [ - ['YYYY년 MMMM Do dddd a h:mm:ss', '2010년 2월 14일 일요일 오후 3:25:50'], - ['ddd A h', '일 오후 3'], - ['M Mo MM MMMM MMM', '2 2일 02 2월 2월'], - ['YYYY YY', '2010 10'], - ['D Do DD', '14 14일 14'], - ['d do dddd ddd dd', '0 0일 일요일 일 일'], - ['DDD DDDo DDDD', '45 45일 045'], - ['w wo ww', '8 8일 08'], - ['h hh', '3 03'], - ['H HH', '15 15'], - ['m mm', '25 25'], - ['s ss', '50 50'], - ['a A', '오후 오후'], - ['일년 중 DDDo째 되는 날', '일년 중 45일째 되는 날'], - ['LTS', '오후 3:25:50'], - ['L', '2010.02.14'], - ['LL', '2010년 2월 14일'], - ['LLL', '2010년 2월 14일 오후 3:25'], - ['LLLL', '2010년 2월 14일 일요일 오후 3:25'], - ['l', '2010.02.14'], - ['ll', '2010년 2월 14일'], - ['lll', '2010년 2월 14일 오후 3:25'], - ['llll', '2010년 2월 14일 일요일 오후 3:25'] - ], - b = moment(new Date(2010, 1, 14, 15, 25, 50, 125)), - i; - for (i = 0; i < a.length; i++) { - assert.equal(b.format(a[i][0]), a[i][1], a[i][0] + ' ---> ' + a[i][1]); - } -}); - -test('format ordinal', function (assert) { - assert.equal(moment([2011, 0, 1]).format('DDDo'), '1일', '1일'); - assert.equal(moment([2011, 0, 2]).format('DDDo'), '2일', '2일'); - assert.equal(moment([2011, 0, 3]).format('DDDo'), '3일', '3일'); - assert.equal(moment([2011, 0, 4]).format('DDDo'), '4일', '4일'); - assert.equal(moment([2011, 0, 5]).format('DDDo'), '5일', '5일'); - assert.equal(moment([2011, 0, 6]).format('DDDo'), '6일', '6일'); - assert.equal(moment([2011, 0, 7]).format('DDDo'), '7일', '7일'); - assert.equal(moment([2011, 0, 8]).format('DDDo'), '8일', '8일'); - assert.equal(moment([2011, 0, 9]).format('DDDo'), '9일', '9일'); - assert.equal(moment([2011, 0, 10]).format('DDDo'), '10일', '10일'); - - assert.equal(moment([2011, 0, 11]).format('DDDo'), '11일', '11일'); - assert.equal(moment([2011, 0, 12]).format('DDDo'), '12일', '12일'); - assert.equal(moment([2011, 0, 13]).format('DDDo'), '13일', '13일'); - assert.equal(moment([2011, 0, 14]).format('DDDo'), '14일', '14일'); - assert.equal(moment([2011, 0, 15]).format('DDDo'), '15일', '15일'); - assert.equal(moment([2011, 0, 16]).format('DDDo'), '16일', '16일'); - assert.equal(moment([2011, 0, 17]).format('DDDo'), '17일', '17일'); - assert.equal(moment([2011, 0, 18]).format('DDDo'), '18일', '18일'); - assert.equal(moment([2011, 0, 19]).format('DDDo'), '19일', '19일'); - assert.equal(moment([2011, 0, 20]).format('DDDo'), '20일', '20일'); - - assert.equal(moment([2011, 0, 21]).format('DDDo'), '21일', '21일'); - assert.equal(moment([2011, 0, 22]).format('DDDo'), '22일', '22일'); - assert.equal(moment([2011, 0, 23]).format('DDDo'), '23일', '23일'); - assert.equal(moment([2011, 0, 24]).format('DDDo'), '24일', '24일'); - assert.equal(moment([2011, 0, 25]).format('DDDo'), '25일', '25일'); - assert.equal(moment([2011, 0, 26]).format('DDDo'), '26일', '26일'); - assert.equal(moment([2011, 0, 27]).format('DDDo'), '27일', '27일'); - assert.equal(moment([2011, 0, 28]).format('DDDo'), '28일', '28일'); - assert.equal(moment([2011, 0, 29]).format('DDDo'), '29일', '29일'); - assert.equal(moment([2011, 0, 30]).format('DDDo'), '30일', '30일'); - - assert.equal(moment([2011, 0, 31]).format('DDDo'), '31일', '31일'); -}); - -test('format month', function (assert) { - var expected = '1월 1월_2월 2월_3월 3월_4월 4월_5월 5월_6월 6월_7월 7월_8월 8월_9월 9월_10월 10월_11월 11월_12월 12월'.split('_'), i; - for (i = 0; i < expected.length; i++) { - assert.equal(moment([2011, i, 1]).format('MMMM MMM'), expected[i], expected[i]); - } -}); - -test('format week', function (assert) { - var expected = '일요일 일 일_월요일 월 월_화요일 화 화_수요일 수 수_목요일 목 목_금요일 금 금_토요일 토 토'.split('_'), i; - for (i = 0; i < expected.length; i++) { - assert.equal(moment([2011, 0, 2 + i]).format('dddd ddd dd'), expected[i], expected[i]); - } -}); - -test('from', function (assert) { - var start = moment([2007, 1, 28]); - assert.equal(start.from(moment([2007, 1, 28]).add({s: 44}), true), '몇 초', '44초 = 몇 초'); - assert.equal(start.from(moment([2007, 1, 28]).add({s: 45}), true), '1분', '45초 = 1분'); - assert.equal(start.from(moment([2007, 1, 28]).add({s: 89}), true), '1분', '89초 = 1분'); - assert.equal(start.from(moment([2007, 1, 28]).add({s: 90}), true), '2분', '90초 = 2분'); - assert.equal(start.from(moment([2007, 1, 28]).add({m: 44}), true), '44분', '44분 = 44분'); - assert.equal(start.from(moment([2007, 1, 28]).add({m: 45}), true), '한 시간', '45분 = 한 시간'); - assert.equal(start.from(moment([2007, 1, 28]).add({m: 89}), true), '한 시간', '89분 = 한 시간'); - assert.equal(start.from(moment([2007, 1, 28]).add({m: 90}), true), '2시간', '90분 = 2시간'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 5}), true), '5시간', '5시간 = 5시간'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 21}), true), '21시간', '21시간 = 21시간'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 22}), true), '하루', '22시간 = 하루'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 35}), true), '하루', '35시간 = 하루'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 36}), true), '2일', '36시간 = 2일'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 1}), true), '하루', '하루 = 하루'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 5}), true), '5일', '5일 = 5일'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 25}), true), '25일', '25일 = 25일'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 26}), true), '한 달', '26일 = 한 달'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 30}), true), '한 달', '30일 = 한 달'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 43}), true), '한 달', '45일 = 한 달'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 46}), true), '2달', '46일 = 2달'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 74}), true), '2달', '75일 = 2달'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 76}), true), '3달', '76일 = 3달'); - assert.equal(start.from(moment([2007, 1, 28]).add({M: 1}), true), '한 달', '1달 = 한 달'); - assert.equal(start.from(moment([2007, 1, 28]).add({M: 5}), true), '5달', '5달 = 5달'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 345}), true), '일 년', '345일 = 일 년'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 548}), true), '2년', '548일 = 2년'); - assert.equal(start.from(moment([2007, 1, 28]).add({y: 1}), true), '일 년', '일 년 = 일 년'); - assert.equal(start.from(moment([2007, 1, 28]).add({y: 5}), true), '5년', '5년 = 5년'); -}); - -test('suffix', function (assert) { - assert.equal(moment(30000).from(0), '몇 초 후', 'prefix'); - assert.equal(moment(0).from(30000), '몇 초 전', 'suffix'); -}); - -test('now from now', function (assert) { - assert.equal(moment().fromNow(), '몇 초 전', 'now from now should display as in the past'); -}); - -test('fromNow', function (assert) { - assert.equal(moment().add({s: 30}).fromNow(), '몇 초 후', 'in a few seconds'); - assert.equal(moment().add({d: 5}).fromNow(), '5일 후', 'in 5 days'); -}); - -test('calendar day', function (assert) { - var a = moment().hours(12).minutes(0).seconds(0); - - assert.equal(moment(a).calendar(), '오늘 오후 12:00', 'today at the same time'); - assert.equal(moment(a).add({m: 25}).calendar(), '오늘 오후 12:25', 'Now plus 25 min'); - assert.equal(moment(a).add({h: 1}).calendar(), '오늘 오후 1:00', 'Now plus 1 hour'); - assert.equal(moment(a).add({d: 1}).calendar(), '내일 오후 12:00', 'tomorrow at the same time'); - assert.equal(moment(a).subtract({h: 1}).calendar(), '오늘 오전 11:00', 'Now minus 1 hour'); - assert.equal(moment(a).subtract({d: 1}).calendar(), '어제 오후 12:00', 'yesterday at the same time'); -}); - -test('calendar next week', function (assert) { - var i, m; - for (i = 2; i < 7; i++) { - m = moment().add({d: i}); - assert.equal(m.calendar(), m.format('dddd LT'), 'Today + ' + i + ' days current time'); - m.hours(0).minutes(0).seconds(0).milliseconds(0); - assert.equal(m.calendar(), m.format('dddd LT'), 'Today + ' + i + ' days beginning of day'); - m.hours(23).minutes(59).seconds(59).milliseconds(999); - assert.equal(m.calendar(), m.format('dddd LT'), 'Today + ' + i + ' days end of day'); - } -}); - -test('calendar last week', function (assert) { - var i, m; - for (i = 2; i < 7; i++) { - m = moment().subtract({d: i}); - assert.equal(m.calendar(), m.format('지난주 dddd LT'), 'Today - ' + i + ' days current time'); - m.hours(0).minutes(0).seconds(0).milliseconds(0); - assert.equal(m.calendar(), m.format('지난주 dddd LT'), 'Today - ' + i + ' days beginning of day'); - m.hours(23).minutes(59).seconds(59).milliseconds(999); - assert.equal(m.calendar(), m.format('지난주 dddd LT'), 'Today - ' + i + ' days end of day'); - } -}); - -test('calendar all else', function (assert) { - var weeksAgo = moment().subtract({w: 1}), - weeksFromNow = moment().add({w: 1}); - - assert.equal(weeksAgo.calendar(), weeksAgo.format('L'), '1 week ago'); - assert.equal(weeksFromNow.calendar(), weeksFromNow.format('L'), 'in 1 week'); - - weeksAgo = moment().subtract({w: 2}); - weeksFromNow = moment().add({w: 2}); - - assert.equal(weeksAgo.calendar(), weeksAgo.format('L'), '2 weeks ago'); - assert.equal(weeksFromNow.calendar(), weeksFromNow.format('L'), 'in 2 weeks'); -}); - -test('weeks year starting sunday format', function (assert) { - assert.equal(moment([2012, 0, 1]).format('w ww wo'), '1 01 1일', 'Jan 1 2012 should be week 1'); - assert.equal(moment([2012, 0, 7]).format('w ww wo'), '1 01 1일', 'Jan 7 2012 should be week 1'); - assert.equal(moment([2012, 0, 8]).format('w ww wo'), '2 02 2일', 'Jan 8 2012 should be week 2'); - assert.equal(moment([2012, 0, 14]).format('w ww wo'), '2 02 2일', 'Jan 14 2012 should be week 2'); - assert.equal(moment([2012, 0, 15]).format('w ww wo'), '3 03 3일', 'Jan 15 2012 should be week 3'); -}); - -}))); - - -;(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' - && typeof require === 'function' ? factory(require('../../moment')) : - typeof define === 'function' && define.amd ? define(['../../moment'], factory) : - factory(global.moment) -}(this, (function (moment) { 'use strict'; - -function each(array, callback) { - var i; - for (i = 0; i < array.length; i++) { - callback(array[i], i, array); - } -} - -function objectKeys(obj) { - if (Object.keys) { - return Object.keys(obj); - } else { - // IE8 - var res = [], i; - for (i in obj) { - if (obj.hasOwnProperty(i)) { - res.push(i); - } - } - return res; - } -} - -// Pick the first defined of two or three arguments. - -function defineCommonLocaleTests(locale, options) { - test('lenient day of month ordinal parsing', function (assert) { - var i, ordinalStr, testMoment; - for (i = 1; i <= 31; ++i) { - ordinalStr = moment([2014, 0, i]).format('YYYY MM Do'); - testMoment = moment(ordinalStr, 'YYYY MM Do'); - assert.equal(testMoment.year(), 2014, - 'lenient day of month ordinal parsing ' + i + ' year check'); - assert.equal(testMoment.month(), 0, - 'lenient day of month ordinal parsing ' + i + ' month check'); - assert.equal(testMoment.date(), i, - 'lenient day of month ordinal parsing ' + i + ' date check'); - } - }); - - test('lenient day of month ordinal parsing of number', function (assert) { - var i, testMoment; - for (i = 1; i <= 31; ++i) { - testMoment = moment('2014 01 ' + i, 'YYYY MM Do'); - assert.equal(testMoment.year(), 2014, - 'lenient day of month ordinal parsing of number ' + i + ' year check'); - assert.equal(testMoment.month(), 0, - 'lenient day of month ordinal parsing of number ' + i + ' month check'); - assert.equal(testMoment.date(), i, - 'lenient day of month ordinal parsing of number ' + i + ' date check'); - } - }); - - test('strict day of month ordinal parsing', function (assert) { - var i, ordinalStr, testMoment; - for (i = 1; i <= 31; ++i) { - ordinalStr = moment([2014, 0, i]).format('YYYY MM Do'); - testMoment = moment(ordinalStr, 'YYYY MM Do', true); - assert.ok(testMoment.isValid(), 'strict day of month ordinal parsing ' + i); - } - }); - - test('meridiem invariant', function (assert) { - var h, m, t1, t2; - for (h = 0; h < 24; ++h) { - for (m = 0; m < 60; m += 15) { - t1 = moment.utc([2000, 0, 1, h, m]); - t2 = moment.utc(t1.format('A h:mm'), 'A h:mm'); - assert.equal(t2.format('HH:mm'), t1.format('HH:mm'), - 'meridiem at ' + t1.format('HH:mm')); - } - } - }); - - test('date format correctness', function (assert) { - var data, tokens; - data = moment.localeData()._longDateFormat; - tokens = objectKeys(data); - each(tokens, function (srchToken) { - // Check each format string to make sure it does not contain any - // tokens that need to be expanded. - each(tokens, function (baseToken) { - // strip escaped sequences - var format = data[baseToken].replace(/(\[[^\]]*\])/g, ''); - assert.equal(false, !!~format.indexOf(srchToken), - 'contains ' + srchToken + ' in ' + baseToken); - }); - }); - }); - - test('month parsing correctness', function (assert) { - var i, m; - - if (locale === 'tr') { - // I can't fix it :( - expect(0); - return; - } - function tester(format) { - var r; - r = moment(m.format(format), format); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format); - r = moment(m.format(format).toLocaleUpperCase(), format); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' upper'); - r = moment(m.format(format).toLocaleLowerCase(), format); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' lower'); - - r = moment(m.format(format), format, true); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' strict'); - r = moment(m.format(format).toLocaleUpperCase(), format, true); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' upper strict'); - r = moment(m.format(format).toLocaleLowerCase(), format, true); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' lower strict'); - } - - for (i = 0; i < 12; ++i) { - m = moment([2015, i, 15, 18]); - tester('MMM'); - tester('MMM.'); - tester('MMMM'); - tester('MMMM.'); - } - }); - - test('weekday parsing correctness', function (assert) { - var i, m; - - if (locale === 'tr' || locale === 'az' || locale === 'ro') { - // tr, az: There is a lower-case letter (ı), that converted to - // upper then lower changes to i - // ro: there is the letter ț which behaves weird under IE8 - expect(0); - return; - } - function tester(format) { - var r, baseMsg = 'weekday ' + m.weekday() + ' fmt ' + format + ' ' + m.toISOString(); - r = moment(m.format(format), format); - assert.equal(r.weekday(), m.weekday(), baseMsg); - r = moment(m.format(format).toLocaleUpperCase(), format); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' upper'); - r = moment(m.format(format).toLocaleLowerCase(), format); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' lower'); - - r = moment(m.format(format), format, true); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' strict'); - r = moment(m.format(format).toLocaleUpperCase(), format, true); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' upper strict'); - r = moment(m.format(format).toLocaleLowerCase(), format, true); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' lower strict'); - } - - for (i = 0; i < 7; ++i) { - m = moment.utc([2015, 0, i + 1, 18]); - tester('dd'); - tester('ddd'); - tester('dddd'); - } - }); - - test('valid localeData', function (assert) { - assert.equal(moment().localeData().months().length, 12, 'months should return 12 months'); - assert.equal(moment().localeData().monthsShort().length, 12, 'monthsShort should return 12 months'); - assert.equal(moment().localeData().weekdays().length, 7, 'weekdays should return 7 days'); - assert.equal(moment().localeData().weekdaysShort().length, 7, 'weekdaysShort should return 7 days'); - assert.equal(moment().localeData().weekdaysMin().length, 7, 'monthsShort should return 7 days'); - }); -} - -function setupDeprecationHandler(test, moment$$1, scope) { - test._expectedDeprecations = null; - test._observedDeprecations = null; - test._oldSupress = moment$$1.suppressDeprecationWarnings; - moment$$1.suppressDeprecationWarnings = true; - test.expectedDeprecations = function () { - test._expectedDeprecations = arguments; - test._observedDeprecations = []; - }; - moment$$1.deprecationHandler = function (name, msg) { - var deprecationId = matchedDeprecation(name, msg, test._expectedDeprecations); - if (deprecationId === -1) { - throw new Error('Unexpected deprecation thrown name=' + - name + ' msg=' + msg); - } - test._observedDeprecations[deprecationId] = 1; - }; -} - -function teardownDeprecationHandler(test, moment$$1, scope) { - moment$$1.suppressDeprecationWarnings = test._oldSupress; - - if (test._expectedDeprecations != null) { - var missedDeprecations = []; - each(test._expectedDeprecations, function (deprecationPattern, id) { - if (test._observedDeprecations[id] !== 1) { - missedDeprecations.push(deprecationPattern); - } - }); - if (missedDeprecations.length !== 0) { - throw new Error('Expected deprecation warnings did not happen: ' + - missedDeprecations.join(' ')); - } - } -} - -function matchedDeprecation(name, msg, deprecations) { - if (deprecations == null) { - return -1; - } - for (var i = 0; i < deprecations.length; ++i) { - if (name != null && name === deprecations[i]) { - return i; - } - if (msg != null && msg.substring(0, deprecations[i].length) === deprecations[i]) { - return i; - } - } - return -1; -} - -/*global QUnit:false*/ - -var test = QUnit.test; - -var expect = QUnit.expect; - - - -function localeModule (name, lifecycle) { - QUnit.module('locale:' + name, { - setup : function () { - moment.locale(name); - moment.createFromInputFallback = function (config) { - throw new Error('input not handled by moment: ' + config._i); - }; - setupDeprecationHandler(test, moment, 'locale'); - if (lifecycle && lifecycle.setup) { - lifecycle.setup(); - } - }, - teardown : function () { - moment.locale('en'); - teardownDeprecationHandler(test, moment, 'locale'); - if (lifecycle && lifecycle.teardown) { - lifecycle.teardown(); - } - } - }); - defineCommonLocaleTests(name, -1, -1); -} - -localeModule('ky'); - -test('parse', function (assert) { - var tests = 'январь янв_февраль фев_март март_апрель апр_май май_июнь июнь_июль июль_август авг_сентябрь сен_октябрь окт_ноябрь ноя_декабрь дек'.split('_'), i; - function equalTest(input, mmm, i) { - assert.equal(moment(input, mmm).month(), i, input + ' should be month ' + (i + 1)); - } - for (i = 0; i < 12; i++) { - tests[i] = tests[i].split(' '); - equalTest(tests[i][0], 'MMM', i); - equalTest(tests[i][1], 'MMM', i); - equalTest(tests[i][0], 'MMMM', i); - equalTest(tests[i][1], 'MMMM', i); - equalTest(tests[i][0].toLocaleLowerCase(), 'MMMM', i); - equalTest(tests[i][1].toLocaleLowerCase(), 'MMMM', i); - equalTest(tests[i][0].toLocaleUpperCase(), 'MMMM', i); - equalTest(tests[i][1].toLocaleUpperCase(), 'MMMM', i); - } -}); - -test('format', function (assert) { - var a = [ - ['dddd, Do MMMM YYYY, HH:mm:ss', 'Жекшемби, 14-чү февраль 2010, 15:25:50'], - ['ddd, hA', 'Жек, 3PM'], - ['M Mo MM MMMM MMM', '2 2-чи 02 февраль фев'], - ['YYYY YY', '2010 10'], - ['D Do DD', '14 14-чү 14'], - ['d do dddd ddd dd', '0 0-чү Жекшемби Жек Жк'], - ['DDD DDDo DDDD', '45 45-чи 045'], - ['w wo ww', '7 7-чи 07'], - ['h hh', '3 03'], - ['H HH', '15 15'], - ['m mm', '25 25'], - ['s ss', '50 50'], - ['a A', 'pm PM'], - ['[жылдын] DDDo [күнү]', 'жылдын 45-чи күнү'], - ['LTS', '15:25:50'], - ['L', '14.02.2010'], - ['LL', '14 февраль 2010'], - ['LLL', '14 февраль 2010 15:25'], - ['LLLL', 'Жекшемби, 14 февраль 2010 15:25'], - ['l', '14.2.2010'], - ['ll', '14 фев 2010'], - ['lll', '14 фев 2010 15:25'], - ['llll', 'Жек, 14 фев 2010 15:25'] - ], - b = moment(new Date(2010, 1, 14, 15, 25, 50, 125)), - i; - for (i = 0; i < a.length; i++) { - assert.equal(b.format(a[i][0]), a[i][1], a[i][0] + ' ---> ' + a[i][1]); - } -}); - -test('format ordinal', function (assert) { - assert.equal(moment([2011, 0, 1]).format('DDDo'), '1-чи', '1st'); - assert.equal(moment([2011, 0, 2]).format('DDDo'), '2-чи', '2nd'); - assert.equal(moment([2011, 0, 3]).format('DDDo'), '3-чү', '3rd'); - assert.equal(moment([2011, 0, 4]).format('DDDo'), '4-чү', '4th'); - assert.equal(moment([2011, 0, 5]).format('DDDo'), '5-чи', '5th'); - assert.equal(moment([2011, 0, 6]).format('DDDo'), '6-чы', '6th'); - assert.equal(moment([2011, 0, 7]).format('DDDo'), '7-чи', '7th'); - assert.equal(moment([2011, 0, 8]).format('DDDo'), '8-чи', '8th'); - assert.equal(moment([2011, 0, 9]).format('DDDo'), '9-чу', '9th'); - assert.equal(moment([2011, 0, 10]).format('DDDo'), '10-чу', '10th'); - - assert.equal(moment([2011, 0, 11]).format('DDDo'), '11-чи', '11th'); - assert.equal(moment([2011, 0, 12]).format('DDDo'), '12-чи', '12th'); - assert.equal(moment([2011, 0, 13]).format('DDDo'), '13-чү', '13th'); - assert.equal(moment([2011, 0, 14]).format('DDDo'), '14-чү', '14th'); - assert.equal(moment([2011, 0, 15]).format('DDDo'), '15-чи', '15th'); - assert.equal(moment([2011, 0, 16]).format('DDDo'), '16-чы', '16th'); - assert.equal(moment([2011, 0, 17]).format('DDDo'), '17-чи', '17th'); - assert.equal(moment([2011, 0, 18]).format('DDDo'), '18-чи', '18th'); - assert.equal(moment([2011, 0, 19]).format('DDDo'), '19-чу', '19th'); - assert.equal(moment([2011, 0, 20]).format('DDDo'), '20-чы', '20th'); - - assert.equal(moment([2011, 0, 21]).format('DDDo'), '21-чи', '21st'); - assert.equal(moment([2011, 0, 22]).format('DDDo'), '22-чи', '22nd'); - assert.equal(moment([2011, 0, 23]).format('DDDo'), '23-чү', '23rd'); - assert.equal(moment([2011, 0, 24]).format('DDDo'), '24-чү', '24th'); - assert.equal(moment([2011, 0, 25]).format('DDDo'), '25-чи', '25th'); - assert.equal(moment([2011, 0, 26]).format('DDDo'), '26-чы', '26th'); - assert.equal(moment([2011, 0, 27]).format('DDDo'), '27-чи', '27th'); - assert.equal(moment([2011, 0, 28]).format('DDDo'), '28-чи', '28th'); - assert.equal(moment([2011, 0, 29]).format('DDDo'), '29-чу', '29th'); - assert.equal(moment([2011, 0, 30]).format('DDDo'), '30-чу', '30th'); - - assert.equal(moment([2011, 0, 31]).format('DDDo'), '31-чи', '31st'); -}); - -test('format month', function (assert) { - var expected = 'январь янв_февраль фев_март март_апрель апр_май май_июнь июнь_июль июль_август авг_сентябрь сен_октябрь окт_ноябрь ноя_декабрь дек'.split('_'), i; - for (i = 0; i < expected.length; i++) { - assert.equal(moment([2011, i, 1]).format('MMMM MMM'), expected[i], expected[i]); - } -}); - -test('format week', function (assert) { - var expected = 'Жекшемби Жек Жк_Дүйшөмбү Дүй Дй_Шейшемби Шей Шй_Шаршемби Шар Шр_Бейшемби Бей Бй_Жума Жум Жм_Ишемби Ише Иш'.split('_'), i; - for (i = 0; i < expected.length; i++) { - assert.equal(moment([2011, 0, 2 + i]).format('dddd ddd dd'), expected[i], expected[i]); - } -}); - -test('from', function (assert) { - var start = moment([2007, 1, 28]); - assert.equal(start.from(moment([2007, 1, 28]).add({s: 44}), true), 'бирнече секунд', '44 seconds = a few seconds'); - assert.equal(start.from(moment([2007, 1, 28]).add({s: 45}), true), 'бир мүнөт', '45 seconds = a minute'); - assert.equal(start.from(moment([2007, 1, 28]).add({s: 89}), true), 'бир мүнөт', '89 seconds = a minute'); - assert.equal(start.from(moment([2007, 1, 28]).add({s: 90}), true), '2 мүнөт', '90 seconds = 2 minutes'); - assert.equal(start.from(moment([2007, 1, 28]).add({m: 44}), true), '44 мүнөт', '44 minutes = 44 minutes'); - assert.equal(start.from(moment([2007, 1, 28]).add({m: 45}), true), 'бир саат', '45 minutes = an hour'); - assert.equal(start.from(moment([2007, 1, 28]).add({m: 89}), true), 'бир саат', '89 minutes = an hour'); - assert.equal(start.from(moment([2007, 1, 28]).add({m: 90}), true), '2 саат', '90 minutes = 2 hours'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 5}), true), '5 саат', '5 hours = 5 hours'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 21}), true), '21 саат', '21 hours = 21 hours'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 22}), true), 'бир күн', '22 hours = a day'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 35}), true), 'бир күн', '35 hours = a day'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 36}), true), '2 күн', '36 hours = 2 days'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 1}), true), 'бир күн', '1 day = a day'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 5}), true), '5 күн', '5 days = 5 days'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 25}), true), '25 күн', '25 days = 25 days'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 26}), true), 'бир ай', '26 days = a month'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 30}), true), 'бир ай', '30 days = a month'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 43}), true), 'бир ай', '43 days = a month'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 46}), true), '2 ай', '46 days = 2 months'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 74}), true), '2 ай', '75 days = 2 months'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 76}), true), '3 ай', '76 days = 3 months'); - assert.equal(start.from(moment([2007, 1, 28]).add({M: 1}), true), 'бир ай', '1 month = a month'); - assert.equal(start.from(moment([2007, 1, 28]).add({M: 5}), true), '5 ай', '5 months = 5 months'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 345}), true), 'бир жыл', '345 days = a year'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 548}), true), '2 жыл', '548 days = 2 years'); - assert.equal(start.from(moment([2007, 1, 28]).add({y: 1}), true), 'бир жыл', '1 year = a year'); - assert.equal(start.from(moment([2007, 1, 28]).add({y: 5}), true), '5 жыл', '5 years = 5 years'); -}); - -test('suffix', function (assert) { - assert.equal(moment(30000).from(0), 'бирнече секунд ичинде', 'prefix'); - assert.equal(moment(0).from(30000), 'бирнече секунд мурун', 'suffix'); -}); - -test('now from now', function (assert) { - assert.equal(moment().fromNow(), 'бирнече секунд мурун', 'now from now should display as in the past'); -}); - -test('fromNow', function (assert) { - assert.equal(moment().add({s: 30}).fromNow(), 'бирнече секунд ичинде', 'in a few seconds'); - assert.equal(moment().add({d: 5}).fromNow(), '5 күн ичинде', 'in 5 days'); -}); - -test('calendar day', function (assert) { - var a = moment().hours(12).minutes(0).seconds(0); - - assert.equal(moment(a).calendar(), 'Бүгүн саат 12:00', 'today at the same time'); - assert.equal(moment(a).add({m: 25}).calendar(), 'Бүгүн саат 12:25', 'Now plus 25 min'); - assert.equal(moment(a).add({h: 1}).calendar(), 'Бүгүн саат 13:00', 'Now plus 1 hour'); - assert.equal(moment(a).add({d: 1}).calendar(), 'Эртең саат 12:00', 'tomorrow at the same time'); - assert.equal(moment(a).subtract({h: 1}).calendar(), 'Бүгүн саат 11:00', 'Now minus 1 hour'); - assert.equal(moment(a).subtract({d: 1}).calendar(), 'Кече саат 12:00', 'yesterday at the same time'); -}); - -test('calendar next week', function (assert) { - var i, m; - for (i = 2; i < 7; i++) { - m = moment().add({d: i}); - assert.equal(m.calendar(), m.format('dddd [саат] LT'), 'Today + ' + i + ' days current time'); - m.hours(0).minutes(0).seconds(0).milliseconds(0); - assert.equal(m.calendar(), m.format('dddd [саат] LT'), 'Today + ' + i + ' days beginning of day'); - m.hours(23).minutes(59).seconds(59).milliseconds(999); - assert.equal(m.calendar(), m.format('dddd [саат] LT'), 'Today + ' + i + ' days end of day'); - } -}); - -test('calendar last week', function (assert) { - var i, m; - - for (i = 2; i < 7; i++) { - m = moment().subtract({d: i}); - assert.equal(m.calendar(), m.format('[Өткен аптанын] dddd [күнү] [саат] LT'), 'Today - ' + i + ' days current time'); - m.hours(0).minutes(0).seconds(0).milliseconds(0); - assert.equal(m.calendar(), m.format('[Өткен аптанын] dddd [күнү] [саат] LT'), 'Today - ' + i + ' days beginning of day'); - m.hours(23).minutes(59).seconds(59).milliseconds(999); - assert.equal(m.calendar(), m.format('[Өткен аптанын] dddd [күнү] [саат] LT'), 'Today - ' + i + ' days end of day'); - } -}); - -test('calendar all else', function (assert) { - var weeksAgo = moment().subtract({w: 1}), - weeksFromNow = moment().add({w: 1}); - - assert.equal(weeksAgo.calendar(), weeksAgo.format('L'), '1 week ago'); - assert.equal(weeksFromNow.calendar(), weeksFromNow.format('L'), 'in 1 week'); - - weeksAgo = moment().subtract({w: 2}); - weeksFromNow = moment().add({w: 2}); - - assert.equal(weeksAgo.calendar(), weeksAgo.format('L'), '2 weeks ago'); - assert.equal(weeksFromNow.calendar(), weeksFromNow.format('L'), 'in 2 weeks'); -}); - -test('weeks year starting sunday formatted', function (assert) { - assert.equal(moment([2012, 0, 1]).format('w ww wo'), '1 01 1-чи', 'Jan 1 2012 should be week 1'); - assert.equal(moment([2012, 0, 2]).format('w ww wo'), '2 02 2-чи', 'Jan 2 2012 should be week 2'); - assert.equal(moment([2012, 0, 8]).format('w ww wo'), '2 02 2-чи', 'Jan 8 2012 should be week 2'); - assert.equal(moment([2012, 0, 9]).format('w ww wo'), '3 03 3-чү', 'Jan 9 2012 should be week 3'); - assert.equal(moment([2012, 0, 15]).format('w ww wo'), '3 03 3-чү', 'Jan 15 2012 should be week 3'); -}); - -}))); - - -;(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' - && typeof require === 'function' ? factory(require('../../moment')) : - typeof define === 'function' && define.amd ? define(['../../moment'], factory) : - factory(global.moment) -}(this, (function (moment) { 'use strict'; - -function each(array, callback) { - var i; - for (i = 0; i < array.length; i++) { - callback(array[i], i, array); - } -} - -function objectKeys(obj) { - if (Object.keys) { - return Object.keys(obj); - } else { - // IE8 - var res = [], i; - for (i in obj) { - if (obj.hasOwnProperty(i)) { - res.push(i); - } - } - return res; - } -} - -// Pick the first defined of two or three arguments. - -function defineCommonLocaleTests(locale, options) { - test('lenient day of month ordinal parsing', function (assert) { - var i, ordinalStr, testMoment; - for (i = 1; i <= 31; ++i) { - ordinalStr = moment([2014, 0, i]).format('YYYY MM Do'); - testMoment = moment(ordinalStr, 'YYYY MM Do'); - assert.equal(testMoment.year(), 2014, - 'lenient day of month ordinal parsing ' + i + ' year check'); - assert.equal(testMoment.month(), 0, - 'lenient day of month ordinal parsing ' + i + ' month check'); - assert.equal(testMoment.date(), i, - 'lenient day of month ordinal parsing ' + i + ' date check'); - } - }); - - test('lenient day of month ordinal parsing of number', function (assert) { - var i, testMoment; - for (i = 1; i <= 31; ++i) { - testMoment = moment('2014 01 ' + i, 'YYYY MM Do'); - assert.equal(testMoment.year(), 2014, - 'lenient day of month ordinal parsing of number ' + i + ' year check'); - assert.equal(testMoment.month(), 0, - 'lenient day of month ordinal parsing of number ' + i + ' month check'); - assert.equal(testMoment.date(), i, - 'lenient day of month ordinal parsing of number ' + i + ' date check'); - } - }); - - test('strict day of month ordinal parsing', function (assert) { - var i, ordinalStr, testMoment; - for (i = 1; i <= 31; ++i) { - ordinalStr = moment([2014, 0, i]).format('YYYY MM Do'); - testMoment = moment(ordinalStr, 'YYYY MM Do', true); - assert.ok(testMoment.isValid(), 'strict day of month ordinal parsing ' + i); - } - }); - - test('meridiem invariant', function (assert) { - var h, m, t1, t2; - for (h = 0; h < 24; ++h) { - for (m = 0; m < 60; m += 15) { - t1 = moment.utc([2000, 0, 1, h, m]); - t2 = moment.utc(t1.format('A h:mm'), 'A h:mm'); - assert.equal(t2.format('HH:mm'), t1.format('HH:mm'), - 'meridiem at ' + t1.format('HH:mm')); - } - } - }); - - test('date format correctness', function (assert) { - var data, tokens; - data = moment.localeData()._longDateFormat; - tokens = objectKeys(data); - each(tokens, function (srchToken) { - // Check each format string to make sure it does not contain any - // tokens that need to be expanded. - each(tokens, function (baseToken) { - // strip escaped sequences - var format = data[baseToken].replace(/(\[[^\]]*\])/g, ''); - assert.equal(false, !!~format.indexOf(srchToken), - 'contains ' + srchToken + ' in ' + baseToken); - }); - }); - }); - - test('month parsing correctness', function (assert) { - var i, m; - - if (locale === 'tr') { - // I can't fix it :( - expect(0); - return; - } - function tester(format) { - var r; - r = moment(m.format(format), format); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format); - r = moment(m.format(format).toLocaleUpperCase(), format); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' upper'); - r = moment(m.format(format).toLocaleLowerCase(), format); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' lower'); - - r = moment(m.format(format), format, true); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' strict'); - r = moment(m.format(format).toLocaleUpperCase(), format, true); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' upper strict'); - r = moment(m.format(format).toLocaleLowerCase(), format, true); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' lower strict'); - } - - for (i = 0; i < 12; ++i) { - m = moment([2015, i, 15, 18]); - tester('MMM'); - tester('MMM.'); - tester('MMMM'); - tester('MMMM.'); - } - }); - - test('weekday parsing correctness', function (assert) { - var i, m; - - if (locale === 'tr' || locale === 'az' || locale === 'ro') { - // tr, az: There is a lower-case letter (ı), that converted to - // upper then lower changes to i - // ro: there is the letter ț which behaves weird under IE8 - expect(0); - return; - } - function tester(format) { - var r, baseMsg = 'weekday ' + m.weekday() + ' fmt ' + format + ' ' + m.toISOString(); - r = moment(m.format(format), format); - assert.equal(r.weekday(), m.weekday(), baseMsg); - r = moment(m.format(format).toLocaleUpperCase(), format); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' upper'); - r = moment(m.format(format).toLocaleLowerCase(), format); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' lower'); - - r = moment(m.format(format), format, true); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' strict'); - r = moment(m.format(format).toLocaleUpperCase(), format, true); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' upper strict'); - r = moment(m.format(format).toLocaleLowerCase(), format, true); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' lower strict'); - } - - for (i = 0; i < 7; ++i) { - m = moment.utc([2015, 0, i + 1, 18]); - tester('dd'); - tester('ddd'); - tester('dddd'); - } - }); - - test('valid localeData', function (assert) { - assert.equal(moment().localeData().months().length, 12, 'months should return 12 months'); - assert.equal(moment().localeData().monthsShort().length, 12, 'monthsShort should return 12 months'); - assert.equal(moment().localeData().weekdays().length, 7, 'weekdays should return 7 days'); - assert.equal(moment().localeData().weekdaysShort().length, 7, 'weekdaysShort should return 7 days'); - assert.equal(moment().localeData().weekdaysMin().length, 7, 'monthsShort should return 7 days'); - }); -} - -function setupDeprecationHandler(test, moment$$1, scope) { - test._expectedDeprecations = null; - test._observedDeprecations = null; - test._oldSupress = moment$$1.suppressDeprecationWarnings; - moment$$1.suppressDeprecationWarnings = true; - test.expectedDeprecations = function () { - test._expectedDeprecations = arguments; - test._observedDeprecations = []; - }; - moment$$1.deprecationHandler = function (name, msg) { - var deprecationId = matchedDeprecation(name, msg, test._expectedDeprecations); - if (deprecationId === -1) { - throw new Error('Unexpected deprecation thrown name=' + - name + ' msg=' + msg); - } - test._observedDeprecations[deprecationId] = 1; - }; -} - -function teardownDeprecationHandler(test, moment$$1, scope) { - moment$$1.suppressDeprecationWarnings = test._oldSupress; - - if (test._expectedDeprecations != null) { - var missedDeprecations = []; - each(test._expectedDeprecations, function (deprecationPattern, id) { - if (test._observedDeprecations[id] !== 1) { - missedDeprecations.push(deprecationPattern); - } - }); - if (missedDeprecations.length !== 0) { - throw new Error('Expected deprecation warnings did not happen: ' + - missedDeprecations.join(' ')); - } - } -} - -function matchedDeprecation(name, msg, deprecations) { - if (deprecations == null) { - return -1; - } - for (var i = 0; i < deprecations.length; ++i) { - if (name != null && name === deprecations[i]) { - return i; - } - if (msg != null && msg.substring(0, deprecations[i].length) === deprecations[i]) { - return i; - } - } - return -1; -} - -/*global QUnit:false*/ - -var test = QUnit.test; - -var expect = QUnit.expect; - - - -function localeModule (name, lifecycle) { - QUnit.module('locale:' + name, { - setup : function () { - moment.locale(name); - moment.createFromInputFallback = function (config) { - throw new Error('input not handled by moment: ' + config._i); - }; - setupDeprecationHandler(test, moment, 'locale'); - if (lifecycle && lifecycle.setup) { - lifecycle.setup(); - } - }, - teardown : function () { - moment.locale('en'); - teardownDeprecationHandler(test, moment, 'locale'); - if (lifecycle && lifecycle.teardown) { - lifecycle.teardown(); - } - } - }); - defineCommonLocaleTests(name, -1, -1); -} - -localeModule('lb'); - -test('parse', function (assert) { - var tests = 'Januar Jan._Februar Febr._Mäerz Mrz._Abrëll Abr._Mee Mee_Juni Jun._Juli Jul._August Aug._September Sept._Oktober Okt._November Nov._Dezember Dez.'.split('_'), i; - - function equalTest(input, mmm, i) { - assert.equal(moment(input, mmm).month(), i, input + ' should be month ' + (i + 1)); - } - - for (i = 0; i < 12; i++) { - tests[i] = tests[i].split(' '); - equalTest(tests[i][0], 'MMM', i); - equalTest(tests[i][1], 'MMM', i); - equalTest(tests[i][0], 'MMMM', i); - equalTest(tests[i][1], 'MMMM', i); - equalTest(tests[i][0].toLocaleLowerCase(), 'MMMM', i); - equalTest(tests[i][1].toLocaleLowerCase(), 'MMMM', i); - equalTest(tests[i][0].toLocaleUpperCase(), 'MMMM', i); - equalTest(tests[i][1].toLocaleUpperCase(), 'MMMM', i); - } -}); - -test('format', function (assert) { - var a = [ - ['dddd, Do MMMM YYYY, HH:mm:ss', 'Sonndeg, 14. Februar 2010, 15:25:50'], - ['ddd, HH:mm', 'So., 15:25'], - ['M Mo MM MMMM MMM', '2 2. 02 Februar Febr.'], - ['YYYY YY', '2010 10'], - ['D Do DD', '14 14. 14'], - ['d do dddd ddd dd', '0 0. Sonndeg So. So'], - ['DDD DDDo DDDD', '45 45. 045'], - ['w wo ww', '6 6. 06'], - ['h hh', '3 03'], - ['H HH', '15 15'], - ['m mm', '25 25'], - ['s ss', '50 50'], - ['a A', 'pm PM'], - ['[the] DDDo [day of the year]', 'the 45. day of the year'], - ['LTS', '15:25:50 Auer'], - ['L', '14.02.2010'], - ['LL', '14. Februar 2010'], - ['LLL', '14. Februar 2010 15:25 Auer'], - ['LLLL', 'Sonndeg, 14. Februar 2010 15:25 Auer'], - ['l', '14.2.2010'], - ['ll', '14. Febr. 2010'], - ['lll', '14. Febr. 2010 15:25 Auer'], - ['llll', 'So., 14. Febr. 2010 15:25 Auer'] - ], - b = moment(new Date(2010, 1, 14, 15, 25, 50, 125)), - i; - for (i = 0; i < a.length; i++) { - assert.equal(b.format(a[i][0]), a[i][1], a[i][0] + ' ---> ' + a[i][1]); - } -}); - -test('format month', function (assert) { - var expected = 'Januar Jan._Februar Febr._Mäerz Mrz._Abrëll Abr._Mee Mee_Juni Jun._Juli Jul._August Aug._September Sept._Oktober Okt._November Nov._Dezember Dez.'.split('_'), i; - for (i = 0; i < expected.length; i++) { - assert.equal(moment([2011, i, 1]).format('MMMM MMM'), expected[i], expected[i]); - } -}); - -test('format week', function (assert) { - var expected = 'Sonndeg So. So_Méindeg Mé. Mé_Dënschdeg Dë. Dë_Mëttwoch Më. Më_Donneschdeg Do. Do_Freideg Fr. Fr_Samschdeg Sa. Sa'.split('_'), i; - for (i = 0; i < expected.length; i++) { - assert.equal(moment([2011, 0, 2 + i]).format('dddd ddd dd'), expected[i], expected[i]); - } -}); - -test('from', function (assert) { - var start = moment([2007, 1, 28]); - assert.equal(start.from(moment([2007, 1, 28]).add({s: 44}), true), 'e puer Sekonnen', '44 seconds = a few seconds'); - assert.equal(start.from(moment([2007, 1, 28]).add({s: 45}), true), 'eng Minutt', '45 seconds = a minute'); - assert.equal(start.from(moment([2007, 1, 28]).add({s: 89}), true), 'eng Minutt', '89 seconds = a minute'); - assert.equal(start.from(moment([2007, 1, 28]).add({s: 90}), true), '2 Minutten', '90 seconds = 2 minutes'); - assert.equal(start.from(moment([2007, 1, 28]).add({m: 44}), true), '44 Minutten', '44 minutes = 44 minutes'); - assert.equal(start.from(moment([2007, 1, 28]).add({m: 45}), true), 'eng Stonn', '45 minutes = an hour'); - assert.equal(start.from(moment([2007, 1, 28]).add({m: 89}), true), 'eng Stonn', '89 minutes = an hour'); - assert.equal(start.from(moment([2007, 1, 28]).add({m: 90}), true), '2 Stonnen', '90 minutes = 2 hours'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 5}), true), '5 Stonnen', '5 hours = 5 hours'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 21}), true), '21 Stonnen', '21 hours = 21 hours'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 22}), true), 'een Dag', '22 hours = a day'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 35}), true), 'een Dag', '35 hours = a day'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 36}), true), '2 Deeg', '36 hours = 2 days'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 1}), true), 'een Dag', '1 day = a day'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 5}), true), '5 Deeg', '5 days = 5 days'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 25}), true), '25 Deeg', '25 days = 25 days'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 26}), true), 'ee Mount', '26 days = a month'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 30}), true), 'ee Mount', '30 days = a month'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 43}), true), 'ee Mount', '43 days = a month'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 46}), true), '2 Méint', '46 days = 2 months'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 74}), true), '2 Méint', '75 days = 2 months'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 76}), true), '3 Méint', '76 days = 3 months'); - assert.equal(start.from(moment([2007, 1, 28]).add({M: 1}), true), 'ee Mount', '1 month = a month'); - assert.equal(start.from(moment([2007, 1, 28]).add({M: 5}), true), '5 Méint', '5 months = 5 months'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 345}), true), 'ee Joer', '345 days = a year'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 548}), true), '2 Joer', '548 days = 2 years'); - assert.equal(start.from(moment([2007, 1, 28]).add({y: 1}), true), 'ee Joer', '1 year = a year'); - assert.equal(start.from(moment([2007, 1, 28]).add({y: 5}), true), '5 Joer', '5 years = 5 years'); -}); - -test('suffix', function (assert) { - assert.equal(moment(30000).from(0), 'an e puer Sekonnen', 'prefix'); - assert.equal(moment(0).from(30000), 'virun e puer Sekonnen', 'suffix'); -}); - -test('fromNow', function (assert) { - assert.equal(moment().add({s: 30}).fromNow(), 'an e puer Sekonnen', 'in a few seconds'); - assert.equal(moment().add({d: 1}).fromNow(), 'an engem Dag', 'in one day'); - assert.equal(moment().add({d: 2}).fromNow(), 'an 2 Deeg', 'in 2 days'); - assert.equal(moment().add({d: 3}).fromNow(), 'an 3 Deeg', 'in 3 days'); - assert.equal(moment().add({d: 4}).fromNow(), 'a 4 Deeg', 'in 4 days'); - assert.equal(moment().add({d: 5}).fromNow(), 'a 5 Deeg', 'in 5 days'); - assert.equal(moment().add({d: 6}).fromNow(), 'a 6 Deeg', 'in 6 days'); - assert.equal(moment().add({d: 7}).fromNow(), 'a 7 Deeg', 'in 7 days'); - assert.equal(moment().add({d: 8}).fromNow(), 'an 8 Deeg', 'in 8 days'); - assert.equal(moment().add({d: 9}).fromNow(), 'an 9 Deeg', 'in 9 days'); - assert.equal(moment().add({d: 10}).fromNow(), 'an 10 Deeg', 'in 10 days'); - assert.equal(moment().add({y: 100}).fromNow(), 'an 100 Joer', 'in 100 years'); - assert.equal(moment().add({y: 400}).fromNow(), 'a 400 Joer', 'in 400 years'); -}); - -test('calendar day', function (assert) { - var a = moment().hours(12).minutes(0).seconds(0); - - assert.equal(moment(a).calendar(), 'Haut um 12:00 Auer', 'today at the same time'); - assert.equal(moment(a).add({m: 25}).calendar(), 'Haut um 12:25 Auer', 'Now plus 25 min'); - assert.equal(moment(a).add({h: 1}).calendar(), 'Haut um 13:00 Auer', 'Now plus 1 hour'); - assert.equal(moment(a).add({d: 1}).calendar(), 'Muer um 12:00 Auer', 'tomorrow at the same time'); - assert.equal(moment(a).subtract({h: 1}).calendar(), 'Haut um 11:00 Auer', 'Now minus 1 hour'); - assert.equal(moment(a).subtract({d: 1}).calendar(), 'Gëschter um 12:00 Auer', 'yesterday at the same time'); -}); - -test('calendar next week', function (assert) { - var i, m; - - for (i = 2; i < 7; i++) { - m = moment().add({d: i}); - assert.equal(m.calendar(), m.format('dddd [um] LT'), 'Today + ' + i + ' days current time'); - m.hours(0).minutes(0).seconds(0).milliseconds(0); - assert.equal(m.calendar(), m.format('dddd [um] LT'), 'Today + ' + i + ' days beginning of day'); - m.hours(23).minutes(59).seconds(59).milliseconds(999); - assert.equal(m.calendar(), m.format('dddd [um] LT'), 'Today + ' + i + ' days end of day'); - } -}); - -test('calendar last week', function (assert) { - var i, m, weekday, datestring; - for (i = 2; i < 7; i++) { - m = moment().subtract({d: i}); - - // Different date string for 'Dënschdeg' (Tuesday) and 'Donneschdeg' (Thursday) - weekday = parseInt(m.format('d'), 10); - datestring = (weekday === 2 || weekday === 4 ? '[Leschten] dddd [um] LT' : '[Leschte] dddd [um] LT'); - - assert.equal(m.calendar(), m.format(datestring), 'Today + ' + i + ' days current time'); - m.hours(0).minutes(0).seconds(0).milliseconds(0); - assert.equal(m.calendar(), m.format(datestring), 'Today + ' + i + ' days beginning of day'); - m.hours(23).minutes(59).seconds(59).milliseconds(999); - assert.equal(m.calendar(), m.format(datestring), 'Today + ' + i + ' days end of day'); - } -}); - -test('calendar all else', function (assert) { - var weeksAgo = moment().subtract({w: 1}), - weeksFromNow = moment().add({w: 1}); - - assert.equal(weeksAgo.calendar(), weeksAgo.format('L'), '1 week ago'); - assert.equal(weeksFromNow.calendar(), weeksFromNow.format('L'), 'in 1 week'); - - weeksAgo = moment().subtract({w: 2}); - weeksFromNow = moment().add({w: 2}); - - assert.equal(weeksAgo.calendar(), weeksAgo.format('L'), '2 weeks ago'); - assert.equal(weeksFromNow.calendar(), weeksFromNow.format('L'), 'in 2 weeks'); -}); - -test('weeks year starting sunday format', function (assert) { - assert.equal(moment([2012, 0, 1]).format('w ww wo'), '52 52 52.', 'Jan 1 2012 should be week 52'); - assert.equal(moment([2012, 0, 7]).format('w ww wo'), '1 01 1.', 'Jan 7 2012 should be week 1'); - assert.equal(moment([2012, 0, 8]).format('w ww wo'), '1 01 1.', 'Jan 8 2012 should be week 1'); - assert.equal(moment([2012, 0, 14]).format('w ww wo'), '2 02 2.', 'Jan 14 2012 should be week 2'); - assert.equal(moment([2012, 0, 15]).format('w ww wo'), '2 02 2.', 'Jan 15 2012 should be week 2'); -}); - -}))); - - -;(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' - && typeof require === 'function' ? factory(require('../../moment')) : - typeof define === 'function' && define.amd ? define(['../../moment'], factory) : - factory(global.moment) -}(this, (function (moment) { 'use strict'; - -function each(array, callback) { - var i; - for (i = 0; i < array.length; i++) { - callback(array[i], i, array); - } -} - -function objectKeys(obj) { - if (Object.keys) { - return Object.keys(obj); - } else { - // IE8 - var res = [], i; - for (i in obj) { - if (obj.hasOwnProperty(i)) { - res.push(i); - } - } - return res; - } -} - -// Pick the first defined of two or three arguments. - -function defineCommonLocaleTests(locale, options) { - test('lenient day of month ordinal parsing', function (assert) { - var i, ordinalStr, testMoment; - for (i = 1; i <= 31; ++i) { - ordinalStr = moment([2014, 0, i]).format('YYYY MM Do'); - testMoment = moment(ordinalStr, 'YYYY MM Do'); - assert.equal(testMoment.year(), 2014, - 'lenient day of month ordinal parsing ' + i + ' year check'); - assert.equal(testMoment.month(), 0, - 'lenient day of month ordinal parsing ' + i + ' month check'); - assert.equal(testMoment.date(), i, - 'lenient day of month ordinal parsing ' + i + ' date check'); - } - }); - - test('lenient day of month ordinal parsing of number', function (assert) { - var i, testMoment; - for (i = 1; i <= 31; ++i) { - testMoment = moment('2014 01 ' + i, 'YYYY MM Do'); - assert.equal(testMoment.year(), 2014, - 'lenient day of month ordinal parsing of number ' + i + ' year check'); - assert.equal(testMoment.month(), 0, - 'lenient day of month ordinal parsing of number ' + i + ' month check'); - assert.equal(testMoment.date(), i, - 'lenient day of month ordinal parsing of number ' + i + ' date check'); - } - }); - - test('strict day of month ordinal parsing', function (assert) { - var i, ordinalStr, testMoment; - for (i = 1; i <= 31; ++i) { - ordinalStr = moment([2014, 0, i]).format('YYYY MM Do'); - testMoment = moment(ordinalStr, 'YYYY MM Do', true); - assert.ok(testMoment.isValid(), 'strict day of month ordinal parsing ' + i); - } - }); - - test('meridiem invariant', function (assert) { - var h, m, t1, t2; - for (h = 0; h < 24; ++h) { - for (m = 0; m < 60; m += 15) { - t1 = moment.utc([2000, 0, 1, h, m]); - t2 = moment.utc(t1.format('A h:mm'), 'A h:mm'); - assert.equal(t2.format('HH:mm'), t1.format('HH:mm'), - 'meridiem at ' + t1.format('HH:mm')); - } - } - }); - - test('date format correctness', function (assert) { - var data, tokens; - data = moment.localeData()._longDateFormat; - tokens = objectKeys(data); - each(tokens, function (srchToken) { - // Check each format string to make sure it does not contain any - // tokens that need to be expanded. - each(tokens, function (baseToken) { - // strip escaped sequences - var format = data[baseToken].replace(/(\[[^\]]*\])/g, ''); - assert.equal(false, !!~format.indexOf(srchToken), - 'contains ' + srchToken + ' in ' + baseToken); - }); - }); - }); - - test('month parsing correctness', function (assert) { - var i, m; - - if (locale === 'tr') { - // I can't fix it :( - expect(0); - return; - } - function tester(format) { - var r; - r = moment(m.format(format), format); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format); - r = moment(m.format(format).toLocaleUpperCase(), format); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' upper'); - r = moment(m.format(format).toLocaleLowerCase(), format); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' lower'); - - r = moment(m.format(format), format, true); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' strict'); - r = moment(m.format(format).toLocaleUpperCase(), format, true); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' upper strict'); - r = moment(m.format(format).toLocaleLowerCase(), format, true); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' lower strict'); - } - - for (i = 0; i < 12; ++i) { - m = moment([2015, i, 15, 18]); - tester('MMM'); - tester('MMM.'); - tester('MMMM'); - tester('MMMM.'); - } - }); - - test('weekday parsing correctness', function (assert) { - var i, m; - - if (locale === 'tr' || locale === 'az' || locale === 'ro') { - // tr, az: There is a lower-case letter (ı), that converted to - // upper then lower changes to i - // ro: there is the letter ț which behaves weird under IE8 - expect(0); - return; - } - function tester(format) { - var r, baseMsg = 'weekday ' + m.weekday() + ' fmt ' + format + ' ' + m.toISOString(); - r = moment(m.format(format), format); - assert.equal(r.weekday(), m.weekday(), baseMsg); - r = moment(m.format(format).toLocaleUpperCase(), format); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' upper'); - r = moment(m.format(format).toLocaleLowerCase(), format); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' lower'); - - r = moment(m.format(format), format, true); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' strict'); - r = moment(m.format(format).toLocaleUpperCase(), format, true); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' upper strict'); - r = moment(m.format(format).toLocaleLowerCase(), format, true); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' lower strict'); - } - - for (i = 0; i < 7; ++i) { - m = moment.utc([2015, 0, i + 1, 18]); - tester('dd'); - tester('ddd'); - tester('dddd'); - } - }); - - test('valid localeData', function (assert) { - assert.equal(moment().localeData().months().length, 12, 'months should return 12 months'); - assert.equal(moment().localeData().monthsShort().length, 12, 'monthsShort should return 12 months'); - assert.equal(moment().localeData().weekdays().length, 7, 'weekdays should return 7 days'); - assert.equal(moment().localeData().weekdaysShort().length, 7, 'weekdaysShort should return 7 days'); - assert.equal(moment().localeData().weekdaysMin().length, 7, 'monthsShort should return 7 days'); - }); -} - -function setupDeprecationHandler(test, moment$$1, scope) { - test._expectedDeprecations = null; - test._observedDeprecations = null; - test._oldSupress = moment$$1.suppressDeprecationWarnings; - moment$$1.suppressDeprecationWarnings = true; - test.expectedDeprecations = function () { - test._expectedDeprecations = arguments; - test._observedDeprecations = []; - }; - moment$$1.deprecationHandler = function (name, msg) { - var deprecationId = matchedDeprecation(name, msg, test._expectedDeprecations); - if (deprecationId === -1) { - throw new Error('Unexpected deprecation thrown name=' + - name + ' msg=' + msg); - } - test._observedDeprecations[deprecationId] = 1; - }; -} - -function teardownDeprecationHandler(test, moment$$1, scope) { - moment$$1.suppressDeprecationWarnings = test._oldSupress; - - if (test._expectedDeprecations != null) { - var missedDeprecations = []; - each(test._expectedDeprecations, function (deprecationPattern, id) { - if (test._observedDeprecations[id] !== 1) { - missedDeprecations.push(deprecationPattern); - } - }); - if (missedDeprecations.length !== 0) { - throw new Error('Expected deprecation warnings did not happen: ' + - missedDeprecations.join(' ')); - } - } -} - -function matchedDeprecation(name, msg, deprecations) { - if (deprecations == null) { - return -1; - } - for (var i = 0; i < deprecations.length; ++i) { - if (name != null && name === deprecations[i]) { - return i; - } - if (msg != null && msg.substring(0, deprecations[i].length) === deprecations[i]) { - return i; - } - } - return -1; -} - -/*global QUnit:false*/ - -var test = QUnit.test; - -var expect = QUnit.expect; - - - -function localeModule (name, lifecycle) { - QUnit.module('locale:' + name, { - setup : function () { - moment.locale(name); - moment.createFromInputFallback = function (config) { - throw new Error('input not handled by moment: ' + config._i); - }; - setupDeprecationHandler(test, moment, 'locale'); - if (lifecycle && lifecycle.setup) { - lifecycle.setup(); - } - }, - teardown : function () { - moment.locale('en'); - teardownDeprecationHandler(test, moment, 'locale'); - if (lifecycle && lifecycle.teardown) { - lifecycle.teardown(); - } - } - }); - defineCommonLocaleTests(name, -1, -1); -} - -localeModule('lo'); - -test('parse', function (assert) { - var tests = 'ມັງກອນ ມັງກອນ_ກຸມພາ ກຸມພາ_ມີນາ ມີນາ_ເມສາ ເມສາ_ພຶດສະພາ ພຶດສະພາ_ມິຖຸນາ ມິຖຸນາ_ກໍລະກົດ ກໍລະກົດ_ສິງຫາ ສິງຫາ_ກັນຍາ ກັນຍາ_ຕຸລາ ຕຸລາ_ພະຈິກ ພະຈິກ_ທັນວາ ທັນວາ'.split('_'), i; - function equalTest(input, mmm, i) { - assert.equal(moment(input, mmm).month(), i, input + ' should be month ' + (i + 1)); - } - for (i = 0; i < 12; i++) { - tests[i] = tests[i].split(' '); - equalTest(tests[i][0], 'MMM', i); - equalTest(tests[i][1], 'MMM', i); - equalTest(tests[i][0], 'MMMM', i); - equalTest(tests[i][1], 'MMMM', i); - equalTest(tests[i][0].toLocaleLowerCase(), 'MMMM', i); - equalTest(tests[i][1].toLocaleLowerCase(), 'MMMM', i); - equalTest(tests[i][0].toLocaleUpperCase(), 'MMMM', i); - equalTest(tests[i][1].toLocaleUpperCase(), 'MMMM', i); - } -}); - -test('format', function (assert) { - var a = [ - ['dddd, MMMM Do YYYY, h:mm:ss a', 'ອາທິດ, ກຸມພາ ທີ່14 2010, 3:25:50 ຕອນແລງ'], - ['ddd, hA', 'ທິດ, 3ຕອນແລງ'], - ['M Mo MM MMMM MMM', '2 ທີ່2 02 ກຸມພາ ກຸມພາ'], - ['YYYY YY', '2010 10'], - ['D Do DD', '14 ທີ່14 14'], - ['d do dddd ddd dd', '0 ທີ່0 ອາທິດ ທິດ ທ'], - ['DDD DDDo DDDD', '45 ທີ່45 045'], - ['w wo ww', '8 ທີ່8 08'], - ['h hh', '3 03'], - ['H HH', '15 15'], - ['m mm', '25 25'], - ['s ss', '50 50'], - ['a A', 'ຕອນແລງ ຕອນແລງ'], - ['[ວັນ]DDDo [ຂອງປີ]', 'ວັນທີ່45 ຂອງປີ'], - ['LTS', '15:25:50'], - ['L', '14/02/2010'], - ['LL', '14 ກຸມພາ 2010'], - ['LLL', '14 ກຸມພາ 2010 15:25'], - ['LLLL', 'ວັນອາທິດ 14 ກຸມພາ 2010 15:25'], - ['l', '14/2/2010'], - ['ll', '14 ກຸມພາ 2010'], - ['lll', '14 ກຸມພາ 2010 15:25'], - ['llll', 'ວັນທິດ 14 ກຸມພາ 2010 15:25'] - ], - b = moment(new Date(2010, 1, 14, 15, 25, 50, 125)), - i; - for (i = 0; i < a.length; i++) { - assert.equal(b.format(a[i][0]), a[i][1], a[i][0] + ' ---> ' + a[i][1]); - } -}); - -test('format ordinal', function (assert) { - assert.equal(moment([2011, 0, 1]).format('DDDo'), 'ທີ່1', 'ທີ່1'); - assert.equal(moment([2011, 0, 2]).format('DDDo'), 'ທີ່2', 'ທີ່2'); - assert.equal(moment([2011, 0, 3]).format('DDDo'), 'ທີ່3', 'ທີ່3'); - assert.equal(moment([2011, 0, 4]).format('DDDo'), 'ທີ່4', 'ທີ່4'); - assert.equal(moment([2011, 0, 5]).format('DDDo'), 'ທີ່5', 'ທີ່5'); - assert.equal(moment([2011, 0, 6]).format('DDDo'), 'ທີ່6', 'ທີ່6'); - assert.equal(moment([2011, 0, 7]).format('DDDo'), 'ທີ່7', 'ທີ່7'); - assert.equal(moment([2011, 0, 8]).format('DDDo'), 'ທີ່8', 'ທີ່8'); - assert.equal(moment([2011, 0, 9]).format('DDDo'), 'ທີ່9', 'ທີ່9'); - assert.equal(moment([2011, 0, 10]).format('DDDo'), 'ທີ່10', 'ທີ່10'); - - assert.equal(moment([2011, 0, 11]).format('DDDo'), 'ທີ່11', 'ທີ່11'); - assert.equal(moment([2011, 0, 12]).format('DDDo'), 'ທີ່12', 'ທີ່12'); - assert.equal(moment([2011, 0, 13]).format('DDDo'), 'ທີ່13', 'ທີ່13'); - assert.equal(moment([2011, 0, 14]).format('DDDo'), 'ທີ່14', 'ທີ່14'); - assert.equal(moment([2011, 0, 15]).format('DDDo'), 'ທີ່15', 'ທີ່15'); - assert.equal(moment([2011, 0, 16]).format('DDDo'), 'ທີ່16', 'ທີ່16'); - assert.equal(moment([2011, 0, 17]).format('DDDo'), 'ທີ່17', 'ທີ່17'); - assert.equal(moment([2011, 0, 18]).format('DDDo'), 'ທີ່18', 'ທີ່18'); - assert.equal(moment([2011, 0, 19]).format('DDDo'), 'ທີ່19', 'ທີ່19'); - assert.equal(moment([2011, 0, 20]).format('DDDo'), 'ທີ່20', 'ທີ່20'); - - assert.equal(moment([2011, 0, 21]).format('DDDo'), 'ທີ່21', 'ທີ່21'); - assert.equal(moment([2011, 0, 22]).format('DDDo'), 'ທີ່22', 'ທີ່22'); - assert.equal(moment([2011, 0, 23]).format('DDDo'), 'ທີ່23', 'ທີ່23'); - assert.equal(moment([2011, 0, 24]).format('DDDo'), 'ທີ່24', 'ທີ່24'); - assert.equal(moment([2011, 0, 25]).format('DDDo'), 'ທີ່25', 'ທີ່25'); - assert.equal(moment([2011, 0, 26]).format('DDDo'), 'ທີ່26', 'ທີ່26'); - assert.equal(moment([2011, 0, 27]).format('DDDo'), 'ທີ່27', 'ທີ່27'); - assert.equal(moment([2011, 0, 28]).format('DDDo'), 'ທີ່28', 'ທີ່28'); - assert.equal(moment([2011, 0, 29]).format('DDDo'), 'ທີ່29', 'ທີ່29'); - assert.equal(moment([2011, 0, 30]).format('DDDo'), 'ທີ່30', 'ທີ່30'); - - assert.equal(moment([2011, 0, 31]).format('DDDo'), 'ທີ່31', 'ທີ່31'); -}); - -test('format month', function (assert) { - var expected = 'ມັງກອນ ມັງກອນ_ກຸມພາ ກຸມພາ_ມີນາ ມີນາ_ເມສາ ເມສາ_ພຶດສະພາ ພຶດສະພາ_ມິຖຸນາ ມິຖຸນາ_ກໍລະກົດ ກໍລະກົດ_ສິງຫາ ສິງຫາ_ກັນຍາ ກັນຍາ_ຕຸລາ ຕຸລາ_ພະຈິກ ພະຈິກ_ທັນວາ ທັນວາ'.split('_'), i; - for (i = 0; i < expected.length; i++) { - assert.equal(moment([2011, i, 1]).format('MMMM MMM'), expected[i], expected[i]); - } -}); - -test('format week', function (assert) { - var expected = 'ອາທິດ ທິດ ທ_ຈັນ ຈັນ ຈ_ອັງຄານ ອັງຄານ ອຄ_ພຸດ ພຸດ ພ_ພະຫັດ ພະຫັດ ພຫ_ສຸກ ສຸກ ສກ_ເສົາ ເສົາ ສ'.split('_'), i; - for (i = 0; i < expected.length; i++) { - assert.equal(moment([2011, 0, 2 + i]).format('dddd ddd dd'), expected[i], expected[i]); - } -}); - -test('from', function (assert) { - var start = moment([2007, 1, 28]); - assert.equal(start.from(moment([2007, 1, 28]).add({s: 44}), true), 'ບໍ່ເທົ່າໃດວິນາທີ', '44 seconds = a few seconds'); - assert.equal(start.from(moment([2007, 1, 28]).add({s: 45}), true), '1 ນາທີ', '45 seconds = a minute'); - assert.equal(start.from(moment([2007, 1, 28]).add({s: 89}), true), '1 ນາທີ', '89 seconds = a minute'); - assert.equal(start.from(moment([2007, 1, 28]).add({s: 90}), true), '2 ນາທີ', '90 seconds = 2 minutes'); - assert.equal(start.from(moment([2007, 1, 28]).add({m: 44}), true), '44 ນາທີ', '44 minutes = 44 minutes'); - assert.equal(start.from(moment([2007, 1, 28]).add({m: 45}), true), '1 ຊົ່ວໂມງ', '45 minutes = an hour'); - assert.equal(start.from(moment([2007, 1, 28]).add({m: 89}), true), '1 ຊົ່ວໂມງ', '89 minutes = an hour'); - assert.equal(start.from(moment([2007, 1, 28]).add({m: 90}), true), '2 ຊົ່ວໂມງ', '90 minutes = 2 hours'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 5}), true), '5 ຊົ່ວໂມງ', '5 hours = 5 hours'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 21}), true), '21 ຊົ່ວໂມງ', '21 hours = 21 hours'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 22}), true), '1 ມື້', '22 hours = a day'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 35}), true), '1 ມື້', '35 hours = a day'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 36}), true), '2 ມື້', '36 hours = 2 days'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 1}), true), '1 ມື້', '1 day = a day'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 5}), true), '5 ມື້', '5 days = 5 days'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 25}), true), '25 ມື້', '25 days = 25 days'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 26}), true), '1 ເດືອນ', '26 days = a month'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 30}), true), '1 ເດືອນ', '30 days = a month'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 43}), true), '1 ເດືອນ', '43 days = a month'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 46}), true), '2 ເດືອນ', '46 days = 2 months'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 74}), true), '2 ເດືອນ', '75 days = 2 months'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 76}), true), '3 ເດືອນ', '76 days = 3 months'); - assert.equal(start.from(moment([2007, 1, 28]).add({M: 1}), true), '1 ເດືອນ', '1 month = a month'); - assert.equal(start.from(moment([2007, 1, 28]).add({M: 5}), true), '5 ເດືອນ', '5 months = 5 months'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 345}), true), '1 ປີ', '345 days = a year'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 548}), true), '2 ປີ', '548 days = 2 years'); - assert.equal(start.from(moment([2007, 1, 28]).add({y: 1}), true), '1 ປີ', '1 year = a year'); - assert.equal(start.from(moment([2007, 1, 28]).add({y: 5}), true), '5 ປີ', '5 years = 5 years'); -}); - -test('suffix', function (assert) { - assert.equal(moment(30000).from(0), 'ອີກ ບໍ່ເທົ່າໃດວິນາທີ', 'prefix'); - assert.equal(moment(0).from(30000), 'ບໍ່ເທົ່າໃດວິນາທີຜ່ານມາ', 'suffix'); -}); - -test('now from now', function (assert) { - assert.equal(moment().fromNow(), 'ບໍ່ເທົ່າໃດວິນາທີຜ່ານມາ', 'now from now should display as in the past'); -}); - -test('fromNow', function (assert) { - assert.equal(moment().add({s: 30}).fromNow(), 'ອີກ ບໍ່ເທົ່າໃດວິນາທີ', 'in a few seconds'); - assert.equal(moment().add({d: 5}).fromNow(), 'ອີກ 5 ມື້', 'in 5 days'); -}); - -test('calendar day', function (assert) { - var a = moment().hours(12).minutes(0).seconds(0); - - assert.equal(moment(a).calendar(), 'ມື້ນີ້ເວລາ 12:00', 'today at the same time'); - assert.equal(moment(a).add({m: 25}).calendar(), 'ມື້ນີ້ເວລາ 12:25', 'Now plus 25 min'); - assert.equal(moment(a).add({h: 1}).calendar(), 'ມື້ນີ້ເວລາ 13:00', 'Now plus 1 hour'); - assert.equal(moment(a).add({d: 1}).calendar(), 'ມື້ອື່ນເວລາ 12:00', 'tomorrow at the same time'); - assert.equal(moment(a).subtract({h: 1}).calendar(), 'ມື້ນີ້ເວລາ 11:00', 'Now minus 1 hour'); - assert.equal(moment(a).subtract({d: 1}).calendar(), 'ມື້ວານນີ້ເວລາ 12:00', 'yesterday at the same time'); -}); - -test('calendar next week', function (assert) { - var i, m; - for (i = 2; i < 7; i++) { - m = moment().add({d: i}); - assert.equal(m.calendar(), m.format('[ວັນ]dddd[ໜ້າເວລາ] LT'), 'Today + ' + i + ' days current time'); - m.hours(0).minutes(0).seconds(0).milliseconds(0); - assert.equal(m.calendar(), m.format('[ວັນ]dddd[ໜ້າເວລາ] LT'), 'Today + ' + i + ' days beginning of day'); - m.hours(23).minutes(59).seconds(59).milliseconds(999); - assert.equal(m.calendar(), m.format('[ວັນ]dddd[ໜ້າເວລາ] LT'), 'Today + ' + i + ' days end of day'); - } -}); - -test('calendar last week', function (assert) { - var i, m; - - for (i = 2; i < 7; i++) { - m = moment().subtract({d: i}); - assert.equal(m.calendar(), m.format('[ວັນ]dddd[ແລ້ວນີ້ເວລາ] LT'), 'Today - ' + i + ' days current time'); - m.hours(0).minutes(0).seconds(0).milliseconds(0); - assert.equal(m.calendar(), m.format('[ວັນ]dddd[ແລ້ວນີ້ເວລາ] LT'), 'Today - ' + i + ' days beginning of day'); - m.hours(23).minutes(59).seconds(59).milliseconds(999); - assert.equal(m.calendar(), m.format('[ວັນ]dddd[ແລ້ວນີ້ເວລາ] LT'), 'Today - ' + i + ' days end of day'); - } -}); - -test('calendar all else', function (assert) { - var weeksAgo = moment().subtract({w: 1}), - weeksFromNow = moment().add({w: 1}); - - assert.equal(weeksAgo.calendar(), weeksAgo.format('L'), '1 week ago'); - assert.equal(weeksFromNow.calendar(), weeksFromNow.format('L'), 'in 1 week'); - - weeksAgo = moment().subtract({w: 2}); - weeksFromNow = moment().add({w: 2}); - - assert.equal(weeksAgo.calendar(), weeksAgo.format('L'), '2 weeks ago'); - assert.equal(weeksFromNow.calendar(), weeksFromNow.format('L'), 'in 2 weeks'); -}); - -test('weeks year starting sunday format', function (assert) { - assert.equal(moment([2012, 0, 1]).format('w ww wo'), '1 01 ທີ່1', 'Jan 1 2012 should be week 1'); - assert.equal(moment([2012, 0, 7]).format('w ww wo'), '1 01 ທີ່1', 'Jan 7 2012 should be week 1'); - assert.equal(moment([2012, 0, 8]).format('w ww wo'), '2 02 ທີ່2', 'Jan 8 2012 should be week 2'); - assert.equal(moment([2012, 0, 14]).format('w ww wo'), '2 02 ທີ່2', 'Jan 14 2012 should be week 2'); - assert.equal(moment([2012, 0, 15]).format('w ww wo'), '3 03 ທີ່3', 'Jan 15 2012 should be week 3'); -}); - -}))); - - -;(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' - && typeof require === 'function' ? factory(require('../../moment')) : - typeof define === 'function' && define.amd ? define(['../../moment'], factory) : - factory(global.moment) -}(this, (function (moment) { 'use strict'; - -function each(array, callback) { - var i; - for (i = 0; i < array.length; i++) { - callback(array[i], i, array); - } -} - -function objectKeys(obj) { - if (Object.keys) { - return Object.keys(obj); - } else { - // IE8 - var res = [], i; - for (i in obj) { - if (obj.hasOwnProperty(i)) { - res.push(i); - } - } - return res; - } -} - -// Pick the first defined of two or three arguments. - -function defineCommonLocaleTests(locale, options) { - test('lenient day of month ordinal parsing', function (assert) { - var i, ordinalStr, testMoment; - for (i = 1; i <= 31; ++i) { - ordinalStr = moment([2014, 0, i]).format('YYYY MM Do'); - testMoment = moment(ordinalStr, 'YYYY MM Do'); - assert.equal(testMoment.year(), 2014, - 'lenient day of month ordinal parsing ' + i + ' year check'); - assert.equal(testMoment.month(), 0, - 'lenient day of month ordinal parsing ' + i + ' month check'); - assert.equal(testMoment.date(), i, - 'lenient day of month ordinal parsing ' + i + ' date check'); - } - }); - - test('lenient day of month ordinal parsing of number', function (assert) { - var i, testMoment; - for (i = 1; i <= 31; ++i) { - testMoment = moment('2014 01 ' + i, 'YYYY MM Do'); - assert.equal(testMoment.year(), 2014, - 'lenient day of month ordinal parsing of number ' + i + ' year check'); - assert.equal(testMoment.month(), 0, - 'lenient day of month ordinal parsing of number ' + i + ' month check'); - assert.equal(testMoment.date(), i, - 'lenient day of month ordinal parsing of number ' + i + ' date check'); - } - }); - - test('strict day of month ordinal parsing', function (assert) { - var i, ordinalStr, testMoment; - for (i = 1; i <= 31; ++i) { - ordinalStr = moment([2014, 0, i]).format('YYYY MM Do'); - testMoment = moment(ordinalStr, 'YYYY MM Do', true); - assert.ok(testMoment.isValid(), 'strict day of month ordinal parsing ' + i); - } - }); - - test('meridiem invariant', function (assert) { - var h, m, t1, t2; - for (h = 0; h < 24; ++h) { - for (m = 0; m < 60; m += 15) { - t1 = moment.utc([2000, 0, 1, h, m]); - t2 = moment.utc(t1.format('A h:mm'), 'A h:mm'); - assert.equal(t2.format('HH:mm'), t1.format('HH:mm'), - 'meridiem at ' + t1.format('HH:mm')); - } - } - }); - - test('date format correctness', function (assert) { - var data, tokens; - data = moment.localeData()._longDateFormat; - tokens = objectKeys(data); - each(tokens, function (srchToken) { - // Check each format string to make sure it does not contain any - // tokens that need to be expanded. - each(tokens, function (baseToken) { - // strip escaped sequences - var format = data[baseToken].replace(/(\[[^\]]*\])/g, ''); - assert.equal(false, !!~format.indexOf(srchToken), - 'contains ' + srchToken + ' in ' + baseToken); - }); - }); - }); - - test('month parsing correctness', function (assert) { - var i, m; - - if (locale === 'tr') { - // I can't fix it :( - expect(0); - return; - } - function tester(format) { - var r; - r = moment(m.format(format), format); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format); - r = moment(m.format(format).toLocaleUpperCase(), format); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' upper'); - r = moment(m.format(format).toLocaleLowerCase(), format); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' lower'); - - r = moment(m.format(format), format, true); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' strict'); - r = moment(m.format(format).toLocaleUpperCase(), format, true); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' upper strict'); - r = moment(m.format(format).toLocaleLowerCase(), format, true); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' lower strict'); - } - - for (i = 0; i < 12; ++i) { - m = moment([2015, i, 15, 18]); - tester('MMM'); - tester('MMM.'); - tester('MMMM'); - tester('MMMM.'); - } - }); - - test('weekday parsing correctness', function (assert) { - var i, m; - - if (locale === 'tr' || locale === 'az' || locale === 'ro') { - // tr, az: There is a lower-case letter (ı), that converted to - // upper then lower changes to i - // ro: there is the letter ț which behaves weird under IE8 - expect(0); - return; - } - function tester(format) { - var r, baseMsg = 'weekday ' + m.weekday() + ' fmt ' + format + ' ' + m.toISOString(); - r = moment(m.format(format), format); - assert.equal(r.weekday(), m.weekday(), baseMsg); - r = moment(m.format(format).toLocaleUpperCase(), format); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' upper'); - r = moment(m.format(format).toLocaleLowerCase(), format); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' lower'); - - r = moment(m.format(format), format, true); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' strict'); - r = moment(m.format(format).toLocaleUpperCase(), format, true); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' upper strict'); - r = moment(m.format(format).toLocaleLowerCase(), format, true); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' lower strict'); - } - - for (i = 0; i < 7; ++i) { - m = moment.utc([2015, 0, i + 1, 18]); - tester('dd'); - tester('ddd'); - tester('dddd'); - } - }); - - test('valid localeData', function (assert) { - assert.equal(moment().localeData().months().length, 12, 'months should return 12 months'); - assert.equal(moment().localeData().monthsShort().length, 12, 'monthsShort should return 12 months'); - assert.equal(moment().localeData().weekdays().length, 7, 'weekdays should return 7 days'); - assert.equal(moment().localeData().weekdaysShort().length, 7, 'weekdaysShort should return 7 days'); - assert.equal(moment().localeData().weekdaysMin().length, 7, 'monthsShort should return 7 days'); - }); -} - -function setupDeprecationHandler(test, moment$$1, scope) { - test._expectedDeprecations = null; - test._observedDeprecations = null; - test._oldSupress = moment$$1.suppressDeprecationWarnings; - moment$$1.suppressDeprecationWarnings = true; - test.expectedDeprecations = function () { - test._expectedDeprecations = arguments; - test._observedDeprecations = []; - }; - moment$$1.deprecationHandler = function (name, msg) { - var deprecationId = matchedDeprecation(name, msg, test._expectedDeprecations); - if (deprecationId === -1) { - throw new Error('Unexpected deprecation thrown name=' + - name + ' msg=' + msg); - } - test._observedDeprecations[deprecationId] = 1; - }; -} - -function teardownDeprecationHandler(test, moment$$1, scope) { - moment$$1.suppressDeprecationWarnings = test._oldSupress; - - if (test._expectedDeprecations != null) { - var missedDeprecations = []; - each(test._expectedDeprecations, function (deprecationPattern, id) { - if (test._observedDeprecations[id] !== 1) { - missedDeprecations.push(deprecationPattern); - } - }); - if (missedDeprecations.length !== 0) { - throw new Error('Expected deprecation warnings did not happen: ' + - missedDeprecations.join(' ')); - } - } -} - -function matchedDeprecation(name, msg, deprecations) { - if (deprecations == null) { - return -1; - } - for (var i = 0; i < deprecations.length; ++i) { - if (name != null && name === deprecations[i]) { - return i; - } - if (msg != null && msg.substring(0, deprecations[i].length) === deprecations[i]) { - return i; - } - } - return -1; -} - -/*global QUnit:false*/ - -var test = QUnit.test; - -var expect = QUnit.expect; - - - -function localeModule (name, lifecycle) { - QUnit.module('locale:' + name, { - setup : function () { - moment.locale(name); - moment.createFromInputFallback = function (config) { - throw new Error('input not handled by moment: ' + config._i); - }; - setupDeprecationHandler(test, moment, 'locale'); - if (lifecycle && lifecycle.setup) { - lifecycle.setup(); - } - }, - teardown : function () { - moment.locale('en'); - teardownDeprecationHandler(test, moment, 'locale'); - if (lifecycle && lifecycle.teardown) { - lifecycle.teardown(); - } - } - }); - defineCommonLocaleTests(name, -1, -1); -} - -localeModule('lt'); - -test('parse', function (assert) { - var tests = 'sausis sau_vasaris vas_kovas kov_balandis bal_gegužė geg_birželis bir_liepa lie_rugpjūtis rgp_rugsėjis rgs_spalis spa_lapkritis lap_gruodis grd'.split('_'), i; - function equalTest(input, mmm, i) { - assert.equal(moment(input, mmm).month(), i, input + ' should be month ' + (i + 1)); - } - for (i = 0; i < 12; i++) { - tests[i] = tests[i].split(' '); - equalTest(tests[i][0], 'MMM', i); - equalTest(tests[i][1], 'MMM', i); - equalTest(tests[i][0], 'MMMM', i); - equalTest(tests[i][1], 'MMMM', i); - equalTest(tests[i][0].toLocaleLowerCase(), 'MMMM', i); - equalTest(tests[i][1].toLocaleLowerCase(), 'MMMM', i); - equalTest(tests[i][0].toLocaleUpperCase(), 'MMMM', i); - equalTest(tests[i][1].toLocaleUpperCase(), 'MMMM', i); - } -}); - -test('format', function (assert) { - var a = [ - ['dddd, Do MMMM YYYY, h:mm:ss a', 'sekmadienis, 14-oji vasario 2010, 3:25:50 pm'], - ['ddd, hA', 'Sek, 3PM'], - ['M Mo MM MMMM MMM', '2 2-oji 02 vasaris vas'], - ['YYYY YY', '2010 10'], - ['D Do DD', '14 14-oji 14'], - ['d do dddd ddd dd', '0 0-oji sekmadienis Sek S'], - ['DDD DDDo DDDD', '45 45-oji 045'], - ['w wo ww', '6 6-oji 06'], - ['h hh', '3 03'], - ['H HH', '15 15'], - ['m mm', '25 25'], - ['s ss', '50 50'], - ['a A', 'pm PM'], - ['DDDo [metų diena]', '45-oji metų diena'], - ['LTS', '15:25:50'], - ['L', '2010-02-14'], - ['LL', '2010 m. vasario 14 d.'], - ['LLL', '2010 m. vasario 14 d., 15:25 val.'], - ['LLLL', '2010 m. vasario 14 d., sekmadienis, 15:25 val.'], - ['l', '2010-02-14'], - ['ll', '2010 m. vasario 14 d.'], - ['lll', '2010 m. vasario 14 d., 15:25 val.'], - ['llll', '2010 m. vasario 14 d., Sek, 15:25 val.'] - ], - b = moment(new Date(2010, 1, 14, 15, 25, 50, 125)), - i; - for (i = 0; i < a.length; i++) { - assert.equal(b.format(a[i][0]), a[i][1], a[i][0] + ' ---> ' + a[i][1]); - } -}); - -test('format ordinal', function (assert) { - assert.equal(moment([2011, 0, 1]).format('DDDo'), '1-oji', '1-oji'); - assert.equal(moment([2011, 0, 2]).format('DDDo'), '2-oji', '2-oji'); - assert.equal(moment([2011, 0, 3]).format('DDDo'), '3-oji', '3-oji'); - assert.equal(moment([2011, 0, 4]).format('DDDo'), '4-oji', '4-oji'); - assert.equal(moment([2011, 0, 5]).format('DDDo'), '5-oji', '5-oji'); - assert.equal(moment([2011, 0, 6]).format('DDDo'), '6-oji', '6-oji'); - assert.equal(moment([2011, 0, 7]).format('DDDo'), '7-oji', '7-oji'); - assert.equal(moment([2011, 0, 8]).format('DDDo'), '8-oji', '8-oji'); - assert.equal(moment([2011, 0, 9]).format('DDDo'), '9-oji', '9-oji'); - assert.equal(moment([2011, 0, 10]).format('DDDo'), '10-oji', '10-oji'); - - assert.equal(moment([2011, 0, 11]).format('DDDo'), '11-oji', '11-oji'); - assert.equal(moment([2011, 0, 12]).format('DDDo'), '12-oji', '12-oji'); - assert.equal(moment([2011, 0, 13]).format('DDDo'), '13-oji', '13-oji'); - assert.equal(moment([2011, 0, 14]).format('DDDo'), '14-oji', '14-oji'); - assert.equal(moment([2011, 0, 15]).format('DDDo'), '15-oji', '15-oji'); - assert.equal(moment([2011, 0, 16]).format('DDDo'), '16-oji', '16-oji'); - assert.equal(moment([2011, 0, 17]).format('DDDo'), '17-oji', '17-oji'); - assert.equal(moment([2011, 0, 18]).format('DDDo'), '18-oji', '18-oji'); - assert.equal(moment([2011, 0, 19]).format('DDDo'), '19-oji', '19-oji'); - assert.equal(moment([2011, 0, 20]).format('DDDo'), '20-oji', '20-oji'); - - assert.equal(moment([2011, 0, 21]).format('DDDo'), '21-oji', '21-oji'); - assert.equal(moment([2011, 0, 22]).format('DDDo'), '22-oji', '22-oji'); - assert.equal(moment([2011, 0, 23]).format('DDDo'), '23-oji', '23-oji'); - assert.equal(moment([2011, 0, 24]).format('DDDo'), '24-oji', '24-oji'); - assert.equal(moment([2011, 0, 25]).format('DDDo'), '25-oji', '25-oji'); - assert.equal(moment([2011, 0, 26]).format('DDDo'), '26-oji', '26-oji'); - assert.equal(moment([2011, 0, 27]).format('DDDo'), '27-oji', '27-oji'); - assert.equal(moment([2011, 0, 28]).format('DDDo'), '28-oji', '28-oji'); - assert.equal(moment([2011, 0, 29]).format('DDDo'), '29-oji', '29-oji'); - assert.equal(moment([2011, 0, 30]).format('DDDo'), '30-oji', '30-oji'); - - assert.equal(moment([2011, 0, 31]).format('DDDo'), '31-oji', '31-oji'); -}); - -test('format month', function (assert) { - var expected = 'sausis sau_vasaris vas_kovas kov_balandis bal_gegužė geg_birželis bir_liepa lie_rugpjūtis rgp_rugsėjis rgs_spalis spa_lapkritis lap_gruodis grd'.split('_'), i; - for (i = 0; i < expected.length; i++) { - assert.equal(moment([2011, i, 1]).format('MMMM MMM'), expected[i], expected[i]); - } -}); - -test('format week', function (assert) { - var expected = 'sekmadienis Sek S_pirmadienis Pir P_antradienis Ant A_trečiadienis Tre T_ketvirtadienis Ket K_penktadienis Pen Pn_šeštadienis Šeš Š'.split('_'), i; - for (i = 0; i < expected.length; i++) { - assert.equal(moment([2011, 0, 2 + i]).format('dddd ddd dd'), expected[i], expected[i]); - } -}); - -test('format week on US calendar', function (assert) { - // Tests, whether the weekday names are correct, even if the week does not start on Monday - moment.updateLocale('lt', {week: {dow: 0, doy: 6}}); - var expected = 'sekmadienis Sek S_pirmadienis Pir P_antradienis Ant A_trečiadienis Tre T_ketvirtadienis Ket K_penktadienis Pen Pn_šeštadienis Šeš Š'.split('_'), i; - for (i = 0; i < expected.length; i++) { - assert.equal(moment([2011, 0, 2 + i]).format('dddd ddd dd'), expected[i], expected[i]); - } - moment.updateLocale('lt', null); -}); - -test('from', function (assert) { - var start = moment([2007, 1, 28]); - assert.equal(start.from(moment([2007, 1, 28]).add({s: 44}), true), 'kelios sekundės', '44 seconds = seconds'); - assert.equal(start.from(moment([2007, 1, 28]).add({s: 45}), true), 'minutė', '45 seconds = a minute'); - assert.equal(start.from(moment([2007, 1, 28]).add({s: 89}), true), 'minutė', '89 seconds = a minute'); - assert.equal(start.from(moment([2007, 1, 28]).add({s: 90}), true), '2 minutės', '90 seconds = 2 minutes'); - assert.equal(start.from(moment([2007, 1, 28]).add({m: 10}), true), '10 minučių', '10 minutes = 10 minutes'); - assert.equal(start.from(moment([2007, 1, 28]).add({m: 11}), true), '11 minučių', '11 minutes = 11 minutes'); - assert.equal(start.from(moment([2007, 1, 28]).add({m: 19}), true), '19 minučių', '19 minutes = 19 minutes'); - assert.equal(start.from(moment([2007, 1, 28]).add({m: 20}), true), '20 minučių', '20 minutes = 20 minutes'); - assert.equal(start.from(moment([2007, 1, 28]).add({m: 44}), true), '44 minutės', '44 minutes = 44 minutes'); - assert.equal(start.from(moment([2007, 1, 28]).add({m: 45}), true), 'valanda', '45 minutes = an hour'); - assert.equal(start.from(moment([2007, 1, 28]).add({m: 89}), true), 'valanda', '89 minutes = an hour'); - assert.equal(start.from(moment([2007, 1, 28]).add({m: 90}), true), '2 valandos', '90 minutes = 2 hours'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 5}), true), '5 valandos', '5 hours = 5 hours'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 10}), true), '10 valandų', '10 hours = 10 hours'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 21}), true), '21 valandos', '21 hours = 21 hours'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 22}), true), 'diena', '22 hours = a day'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 35}), true), 'diena', '35 hours = a day'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 36}), true), '2 dienos', '36 hours = 2 days'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 1}), true), 'diena', '1 day = a day'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 5}), true), '5 dienos', '5 days = 5 days'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 10}), true), '10 dienų', '10 days = 10 days'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 25}), true), '25 dienos', '25 days = 25 days'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 26}), true), 'mėnuo', '26 days = a month'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 30}), true), 'mėnuo', '30 days = a month'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 43}), true), 'mėnuo', '43 days = a month'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 46}), true), '2 mėnesiai', '46 days = 2 months'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 74}), true), '2 mėnesiai', '75 days = 2 months'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 76}), true), '3 mėnesiai', '76 days = 3 months'); - assert.equal(start.from(moment([2007, 1, 28]).add({M: 1}), true), 'mėnuo', '1 month = a month'); - assert.equal(start.from(moment([2007, 1, 28]).add({M: 5}), true), '5 mėnesiai', '5 months = 5 months'); - assert.equal(start.from(moment([2007, 1, 28]).add({M: 10}), true), '10 mėnesių', '10 months = 10 months'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 345}), true), 'metai', '345 days = a year'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 548}), true), '2 metai', '548 days = 2 years'); - assert.equal(start.from(moment([2007, 1, 28]).add({y: 1}), true), 'metai', '1 year = a year'); - assert.equal(start.from(moment([2007, 1, 28]).add({y: 5}), true), '5 metai', '5 years = 5 years'); -}); - -test('suffix', function (assert) { - assert.equal(moment(30000).from(0), 'po kelių sekundžių', 'prefix'); - assert.equal(moment(0).from(30000), 'prieš kelias sekundes', 'suffix'); -}); - -test('now from now', function (assert) { - assert.equal(moment().fromNow(), 'prieš kelias sekundes', 'now from now should display as in the past'); -}); - -test('fromNow', function (assert) { - assert.equal(moment().add({s: 30}).fromNow(), 'po kelių sekundžių', 'in seconds'); - assert.equal(moment().add({d: 5}).fromNow(), 'po 5 dienų', 'in 5 days'); -}); - -test('calendar day', function (assert) { - var a = moment().hours(12).minutes(0).seconds(0); - - assert.equal(moment(a).calendar(), 'Šiandien 12:00', 'today at the same time'); - assert.equal(moment(a).add({m: 25}).calendar(), 'Šiandien 12:25', 'Now plus 25 min'); - assert.equal(moment(a).add({h: 1}).calendar(), 'Šiandien 13:00', 'Now plus 1 hour'); - assert.equal(moment(a).add({d: 1}).calendar(), 'Rytoj 12:00', 'tomorrow at the same time'); - assert.equal(moment(a).subtract({h: 1}).calendar(), 'Šiandien 11:00', 'Now minus 1 hour'); - assert.equal(moment(a).subtract({d: 1}).calendar(), 'Vakar 12:00', 'yesterday at the same time'); -}); - -test('calendar next week', function (assert) { - var i, m; - for (i = 2; i < 7; i++) { - m = moment().add({d: i}); - assert.equal(m.calendar(), m.format('dddd LT'), 'Today + ' + i + ' days current time'); - m.hours(0).minutes(0).seconds(0).milliseconds(0); - assert.equal(m.calendar(), m.format('dddd LT'), 'Today + ' + i + ' days beginning of day'); - m.hours(23).minutes(59).seconds(59).milliseconds(999); - assert.equal(m.calendar(), m.format('dddd LT'), 'Today + ' + i + ' days end of day'); - } -}); - -test('calendar last week', function (assert) { - var i, m; - for (i = 2; i < 7; i++) { - m = moment().subtract({d: i}); - assert.equal(m.calendar(), m.format('[Praėjusį] dddd LT'), 'Today - ' + i + ' days current time'); - m.hours(0).minutes(0).seconds(0).milliseconds(0); - assert.equal(m.calendar(), m.format('[Praėjusį] dddd LT'), 'Today - ' + i + ' days beginning of day'); - m.hours(23).minutes(59).seconds(59).milliseconds(999); - assert.equal(m.calendar(), m.format('[Praėjusį] dddd LT'), 'Today - ' + i + ' days end of day'); - } -}); - -test('calendar all else', function (assert) { - var weeksAgo = moment().subtract({w: 1}), - weeksFromNow = moment().add({w: 1}); - - assert.equal(weeksAgo.calendar(), weeksAgo.format('L'), '1 week ago'); - assert.equal(weeksFromNow.calendar(), weeksFromNow.format('L'), 'in 1 week'); - - weeksAgo = moment().subtract({w: 2}); - weeksFromNow = moment().add({w: 2}); - - assert.equal(weeksAgo.calendar(), weeksAgo.format('L'), '2 weeks ago'); - assert.equal(weeksFromNow.calendar(), weeksFromNow.format('L'), 'in 2 weeks'); -}); - -test('weeks year starting sunday formatted', function (assert) { - assert.equal(moment([2012, 0, 1]).format('w ww wo'), '52 52 52-oji', 'Jan 1 2012 should be week 52'); - assert.equal(moment([2012, 0, 2]).format('w ww wo'), '1 01 1-oji', 'Jan 2 2012 should be week 1'); - assert.equal(moment([2012, 0, 8]).format('w ww wo'), '1 01 1-oji', 'Jan 8 2012 should be week 1'); - assert.equal(moment([2012, 0, 9]).format('w ww wo'), '2 02 2-oji', 'Jan 9 2012 should be week 2'); - assert.equal(moment([2012, 0, 15]).format('w ww wo'), '2 02 2-oji', 'Jan 15 2012 should be week 2'); -}); - -test('month cases', function (assert) { - assert.equal(moment([2015, 4, 1]).format('LL'), '2015 m. gegužės 1 d.', 'uses format instead of standalone form'); -}); - -}))); - - -;(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' - && typeof require === 'function' ? factory(require('../../moment')) : - typeof define === 'function' && define.amd ? define(['../../moment'], factory) : - factory(global.moment) -}(this, (function (moment) { 'use strict'; - -function each(array, callback) { - var i; - for (i = 0; i < array.length; i++) { - callback(array[i], i, array); - } -} - -function objectKeys(obj) { - if (Object.keys) { - return Object.keys(obj); - } else { - // IE8 - var res = [], i; - for (i in obj) { - if (obj.hasOwnProperty(i)) { - res.push(i); - } - } - return res; - } -} - -// Pick the first defined of two or three arguments. - -function defineCommonLocaleTests(locale, options) { - test('lenient day of month ordinal parsing', function (assert) { - var i, ordinalStr, testMoment; - for (i = 1; i <= 31; ++i) { - ordinalStr = moment([2014, 0, i]).format('YYYY MM Do'); - testMoment = moment(ordinalStr, 'YYYY MM Do'); - assert.equal(testMoment.year(), 2014, - 'lenient day of month ordinal parsing ' + i + ' year check'); - assert.equal(testMoment.month(), 0, - 'lenient day of month ordinal parsing ' + i + ' month check'); - assert.equal(testMoment.date(), i, - 'lenient day of month ordinal parsing ' + i + ' date check'); - } - }); - - test('lenient day of month ordinal parsing of number', function (assert) { - var i, testMoment; - for (i = 1; i <= 31; ++i) { - testMoment = moment('2014 01 ' + i, 'YYYY MM Do'); - assert.equal(testMoment.year(), 2014, - 'lenient day of month ordinal parsing of number ' + i + ' year check'); - assert.equal(testMoment.month(), 0, - 'lenient day of month ordinal parsing of number ' + i + ' month check'); - assert.equal(testMoment.date(), i, - 'lenient day of month ordinal parsing of number ' + i + ' date check'); - } - }); - - test('strict day of month ordinal parsing', function (assert) { - var i, ordinalStr, testMoment; - for (i = 1; i <= 31; ++i) { - ordinalStr = moment([2014, 0, i]).format('YYYY MM Do'); - testMoment = moment(ordinalStr, 'YYYY MM Do', true); - assert.ok(testMoment.isValid(), 'strict day of month ordinal parsing ' + i); - } - }); - - test('meridiem invariant', function (assert) { - var h, m, t1, t2; - for (h = 0; h < 24; ++h) { - for (m = 0; m < 60; m += 15) { - t1 = moment.utc([2000, 0, 1, h, m]); - t2 = moment.utc(t1.format('A h:mm'), 'A h:mm'); - assert.equal(t2.format('HH:mm'), t1.format('HH:mm'), - 'meridiem at ' + t1.format('HH:mm')); - } - } - }); - - test('date format correctness', function (assert) { - var data, tokens; - data = moment.localeData()._longDateFormat; - tokens = objectKeys(data); - each(tokens, function (srchToken) { - // Check each format string to make sure it does not contain any - // tokens that need to be expanded. - each(tokens, function (baseToken) { - // strip escaped sequences - var format = data[baseToken].replace(/(\[[^\]]*\])/g, ''); - assert.equal(false, !!~format.indexOf(srchToken), - 'contains ' + srchToken + ' in ' + baseToken); - }); - }); - }); - - test('month parsing correctness', function (assert) { - var i, m; - - if (locale === 'tr') { - // I can't fix it :( - expect(0); - return; - } - function tester(format) { - var r; - r = moment(m.format(format), format); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format); - r = moment(m.format(format).toLocaleUpperCase(), format); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' upper'); - r = moment(m.format(format).toLocaleLowerCase(), format); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' lower'); - - r = moment(m.format(format), format, true); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' strict'); - r = moment(m.format(format).toLocaleUpperCase(), format, true); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' upper strict'); - r = moment(m.format(format).toLocaleLowerCase(), format, true); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' lower strict'); - } - - for (i = 0; i < 12; ++i) { - m = moment([2015, i, 15, 18]); - tester('MMM'); - tester('MMM.'); - tester('MMMM'); - tester('MMMM.'); - } - }); - - test('weekday parsing correctness', function (assert) { - var i, m; - - if (locale === 'tr' || locale === 'az' || locale === 'ro') { - // tr, az: There is a lower-case letter (ı), that converted to - // upper then lower changes to i - // ro: there is the letter ț which behaves weird under IE8 - expect(0); - return; - } - function tester(format) { - var r, baseMsg = 'weekday ' + m.weekday() + ' fmt ' + format + ' ' + m.toISOString(); - r = moment(m.format(format), format); - assert.equal(r.weekday(), m.weekday(), baseMsg); - r = moment(m.format(format).toLocaleUpperCase(), format); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' upper'); - r = moment(m.format(format).toLocaleLowerCase(), format); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' lower'); - - r = moment(m.format(format), format, true); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' strict'); - r = moment(m.format(format).toLocaleUpperCase(), format, true); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' upper strict'); - r = moment(m.format(format).toLocaleLowerCase(), format, true); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' lower strict'); - } - - for (i = 0; i < 7; ++i) { - m = moment.utc([2015, 0, i + 1, 18]); - tester('dd'); - tester('ddd'); - tester('dddd'); - } - }); - - test('valid localeData', function (assert) { - assert.equal(moment().localeData().months().length, 12, 'months should return 12 months'); - assert.equal(moment().localeData().monthsShort().length, 12, 'monthsShort should return 12 months'); - assert.equal(moment().localeData().weekdays().length, 7, 'weekdays should return 7 days'); - assert.equal(moment().localeData().weekdaysShort().length, 7, 'weekdaysShort should return 7 days'); - assert.equal(moment().localeData().weekdaysMin().length, 7, 'monthsShort should return 7 days'); - }); -} - -function setupDeprecationHandler(test, moment$$1, scope) { - test._expectedDeprecations = null; - test._observedDeprecations = null; - test._oldSupress = moment$$1.suppressDeprecationWarnings; - moment$$1.suppressDeprecationWarnings = true; - test.expectedDeprecations = function () { - test._expectedDeprecations = arguments; - test._observedDeprecations = []; - }; - moment$$1.deprecationHandler = function (name, msg) { - var deprecationId = matchedDeprecation(name, msg, test._expectedDeprecations); - if (deprecationId === -1) { - throw new Error('Unexpected deprecation thrown name=' + - name + ' msg=' + msg); - } - test._observedDeprecations[deprecationId] = 1; - }; -} - -function teardownDeprecationHandler(test, moment$$1, scope) { - moment$$1.suppressDeprecationWarnings = test._oldSupress; - - if (test._expectedDeprecations != null) { - var missedDeprecations = []; - each(test._expectedDeprecations, function (deprecationPattern, id) { - if (test._observedDeprecations[id] !== 1) { - missedDeprecations.push(deprecationPattern); - } - }); - if (missedDeprecations.length !== 0) { - throw new Error('Expected deprecation warnings did not happen: ' + - missedDeprecations.join(' ')); - } - } -} - -function matchedDeprecation(name, msg, deprecations) { - if (deprecations == null) { - return -1; - } - for (var i = 0; i < deprecations.length; ++i) { - if (name != null && name === deprecations[i]) { - return i; - } - if (msg != null && msg.substring(0, deprecations[i].length) === deprecations[i]) { - return i; - } - } - return -1; -} - -/*global QUnit:false*/ - -var test = QUnit.test; - -var expect = QUnit.expect; - - - -function localeModule (name, lifecycle) { - QUnit.module('locale:' + name, { - setup : function () { - moment.locale(name); - moment.createFromInputFallback = function (config) { - throw new Error('input not handled by moment: ' + config._i); - }; - setupDeprecationHandler(test, moment, 'locale'); - if (lifecycle && lifecycle.setup) { - lifecycle.setup(); - } - }, - teardown : function () { - moment.locale('en'); - teardownDeprecationHandler(test, moment, 'locale'); - if (lifecycle && lifecycle.teardown) { - lifecycle.teardown(); - } - } - }); - defineCommonLocaleTests(name, -1, -1); -} - -localeModule('lv'); - -test('parse', function (assert) { - var tests = 'janvāris jan_februāris feb_marts mar_aprīlis apr_maijs mai_jūnijs jūn_jūlijs jūl_augusts aug_septembris sep_oktobris okt_novembris nov_decembris dec'.split('_'), i; - function equalTest(input, mmm, i) { - assert.equal(moment(input, mmm).month(), i, input + ' should be month ' + (i + 1)); - } - for (i = 0; i < 12; i++) { - tests[i] = tests[i].split(' '); - equalTest(tests[i][0], 'MMM', i); - equalTest(tests[i][1], 'MMM', i); - equalTest(tests[i][0], 'MMMM', i); - equalTest(tests[i][1], 'MMMM', i); - equalTest(tests[i][0].toLocaleLowerCase(), 'MMMM', i); - equalTest(tests[i][1].toLocaleLowerCase(), 'MMMM', i); - equalTest(tests[i][0].toLocaleUpperCase(), 'MMMM', i); - equalTest(tests[i][1].toLocaleUpperCase(), 'MMMM', i); - } -}); - -test('format', function (assert) { - var a = [ - ['dddd, Do MMMM YYYY, h:mm:ss a', 'svētdiena, 14. februāris 2010, 3:25:50 pm'], - ['ddd, hA', 'Sv, 3PM'], - ['M Mo MM MMMM MMM', '2 2. 02 februāris feb'], - ['YYYY YY', '2010 10'], - ['D Do DD', '14 14. 14'], - ['d do dddd ddd dd', '0 0. svētdiena Sv Sv'], - ['DDD DDDo DDDD', '45 45. 045'], - ['w wo ww', '6 6. 06'], - ['h hh', '3 03'], - ['H HH', '15 15'], - ['m mm', '25 25'], - ['s ss', '50 50'], - ['a A', 'pm PM'], - ['[the] DDDo [day of the year]', 'the 45. day of the year'], - ['LTS', '15:25:50'], - ['L', '14.02.2010.'], - ['LL', '2010. gada 14. februāris'], - ['LLL', '2010. gada 14. februāris, 15:25'], - ['LLLL', '2010. gada 14. februāris, svētdiena, 15:25'], - ['l', '14.2.2010.'], - ['ll', '2010. gada 14. feb'], - ['lll', '2010. gada 14. feb, 15:25'], - ['llll', '2010. gada 14. feb, Sv, 15:25'] - ], - b = moment(new Date(2010, 1, 14, 15, 25, 50, 125)), - i; - for (i = 0; i < a.length; i++) { - assert.equal(b.format(a[i][0]), a[i][1], a[i][0] + ' ---> ' + a[i][1]); - } -}); - -test('format ordinal', function (assert) { - assert.equal(moment([2011, 0, 1]).format('DDDo'), '1.', '1.'); - assert.equal(moment([2011, 0, 2]).format('DDDo'), '2.', '2.'); - assert.equal(moment([2011, 0, 3]).format('DDDo'), '3.', '3.'); - assert.equal(moment([2011, 0, 4]).format('DDDo'), '4.', '4.'); - assert.equal(moment([2011, 0, 5]).format('DDDo'), '5.', '5.'); - assert.equal(moment([2011, 0, 6]).format('DDDo'), '6.', '6.'); - assert.equal(moment([2011, 0, 7]).format('DDDo'), '7.', '7.'); - assert.equal(moment([2011, 0, 8]).format('DDDo'), '8.', '8.'); - assert.equal(moment([2011, 0, 9]).format('DDDo'), '9.', '9.'); - assert.equal(moment([2011, 0, 10]).format('DDDo'), '10.', '10.'); - - assert.equal(moment([2011, 0, 11]).format('DDDo'), '11.', '11.'); - assert.equal(moment([2011, 0, 12]).format('DDDo'), '12.', '12.'); - assert.equal(moment([2011, 0, 13]).format('DDDo'), '13.', '13.'); - assert.equal(moment([2011, 0, 14]).format('DDDo'), '14.', '14.'); - assert.equal(moment([2011, 0, 15]).format('DDDo'), '15.', '15.'); - assert.equal(moment([2011, 0, 16]).format('DDDo'), '16.', '16.'); - assert.equal(moment([2011, 0, 17]).format('DDDo'), '17.', '17.'); - assert.equal(moment([2011, 0, 18]).format('DDDo'), '18.', '18.'); - assert.equal(moment([2011, 0, 19]).format('DDDo'), '19.', '19.'); - assert.equal(moment([2011, 0, 20]).format('DDDo'), '20.', '20.'); - - assert.equal(moment([2011, 0, 21]).format('DDDo'), '21.', '21.'); - assert.equal(moment([2011, 0, 22]).format('DDDo'), '22.', '22.'); - assert.equal(moment([2011, 0, 23]).format('DDDo'), '23.', '23.'); - assert.equal(moment([2011, 0, 24]).format('DDDo'), '24.', '24.'); - assert.equal(moment([2011, 0, 25]).format('DDDo'), '25.', '25.'); - assert.equal(moment([2011, 0, 26]).format('DDDo'), '26.', '26.'); - assert.equal(moment([2011, 0, 27]).format('DDDo'), '27.', '27.'); - assert.equal(moment([2011, 0, 28]).format('DDDo'), '28.', '28.'); - assert.equal(moment([2011, 0, 29]).format('DDDo'), '29.', '29.'); - assert.equal(moment([2011, 0, 30]).format('DDDo'), '30.', '30.'); - - assert.equal(moment([2011, 0, 31]).format('DDDo'), '31.', '31.'); -}); - -test('format month', function (assert) { - var expected = 'janvāris jan_februāris feb_marts mar_aprīlis apr_maijs mai_jūnijs jūn_jūlijs jūl_augusts aug_septembris sep_oktobris okt_novembris nov_decembris dec'.split('_'), i; - for (i = 0; i < expected.length; i++) { - assert.equal(moment([2011, i, 1]).format('MMMM MMM'), expected[i], expected[i]); - } -}); - -test('format week', function (assert) { - var expected = 'svētdiena Sv Sv_pirmdiena P P_otrdiena O O_trešdiena T T_ceturtdiena C C_piektdiena Pk Pk_sestdiena S S'.split('_'), i; - for (i = 0; i < expected.length; i++) { - assert.equal(moment([2011, 0, 2 + i]).format('dddd ddd dd'), expected[i], expected[i]); - } -}); - -// Includes testing the cases of withoutSuffix = true and false. -test('from', function (assert) { - var start = moment([2007, 1, 28]); - assert.equal(start.from(moment([2007, 1, 28]).add({s: 44}), true), 'dažas sekundes', '44 seconds = seconds'); - assert.equal(start.from(moment([2007, 1, 28]).add({s: 44}), false), 'pirms dažām sekundēm', '44 seconds with suffix = seconds ago'); - assert.equal(start.from(moment([2007, 1, 28]).add({s: 45}), true), 'minūte', '45 seconds = a minute'); - assert.equal(start.from(moment([2007, 1, 28]).add({s: 45}), false), 'pirms minūtes', '45 seconds with suffix = a minute ago'); - assert.equal(start.from(moment([2007, 1, 28]).add({s: 89}), true), 'minūte', '89 seconds = a minute'); - assert.equal(start.from(moment([2007, 1, 28]).add({s: -89}), false), 'pēc minūtes', '89 seconds with suffix/prefix = in a minute'); - assert.equal(start.from(moment([2007, 1, 28]).add({s: 90}), true), '2 minūtes', '90 seconds = 2 minutes'); - assert.equal(start.from(moment([2007, 1, 28]).add({s: 90}), false), 'pirms 2 minūtēm', '90 seconds with suffix = 2 minutes ago'); - assert.equal(start.from(moment([2007, 1, 28]).add({m: 44}), true), '44 minūtes', '44 minutes = 44 minutes'); - assert.equal(start.from(moment([2007, 1, 28]).add({m: 44}), false), 'pirms 44 minūtēm', '44 minutes with suffix = 44 minutes ago'); - assert.equal(start.from(moment([2007, 1, 28]).add({m: 45}), true), 'stunda', '45 minutes = an hour'); - assert.equal(start.from(moment([2007, 1, 28]).add({m: 45}), false), 'pirms stundas', '45 minutes with suffix = an hour ago'); - assert.equal(start.from(moment([2007, 1, 28]).add({m: 89}), true), 'stunda', '89 minutes = an hour'); - assert.equal(start.from(moment([2007, 1, 28]).add({m: 90}), true), '2 stundas', '90 minutes = 2 hours'); - assert.equal(start.from(moment([2007, 1, 28]).add({m: -90}), false), 'pēc 2 stundām', '90 minutes with suffix = in 2 hours'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 5}), true), '5 stundas', '5 hours = 5 hours'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 5}), false), 'pirms 5 stundām', '5 hours with suffix = 5 hours ago'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 21}), true), '21 stunda', '21 hours = 21 hours'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 21}), false), 'pirms 21 stundas', '21 hours with suffix = 21 hours ago'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 22}), true), 'diena', '22 hours = a day'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 22}), false), 'pirms dienas', '22 hours with suffix = a day ago'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 35}), true), 'diena', '35 hours = a day'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 36}), true), '2 dienas', '36 hours = 2 days'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 36}), false), 'pirms 2 dienām', '36 hours with suffix = 2 days ago'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 1}), true), 'diena', '1 day = a day'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 5}), true), '5 dienas', '5 days = 5 days'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 5}), false), 'pirms 5 dienām', '5 days with suffix = 5 days ago'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 25}), true), '25 dienas', '25 days = 25 days'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 25}), false), 'pirms 25 dienām', '25 days with suffix = 25 days ago'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 26}), true), 'mēnesis', '26 days = a month'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 26}), false), 'pirms mēneša', '26 days with suffix = a month ago'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 30}), true), 'mēnesis', '30 days = a month'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 43}), true), 'mēnesis', '43 days = a month'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 46}), true), '2 mēneši', '46 days = 2 months'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 46}), false), 'pirms 2 mēnešiem', '46 days with suffix = 2 months ago'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 74}), true), '2 mēneši', '75 days = 2 months'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 76}), true), '3 mēneši', '76 days = 3 months'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 76}), false), 'pirms 3 mēnešiem', '76 days with suffix = 3 months ago'); - assert.equal(start.from(moment([2007, 1, 28]).add({M: 1}), true), 'mēnesis', '1 month = a month'); - assert.equal(start.from(moment([2007, 1, 28]).add({M: 5}), true), '5 mēneši', '5 months = 5 months'); - assert.equal(start.from(moment([2007, 1, 28]).add({M: 5}), false), 'pirms 5 mēnešiem', '5 months with suffix = 5 months ago'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 345}), true), 'gads', '345 days = a year'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 345}), false), 'pirms gada', '345 days with suffix = a year ago'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 548}), true), '2 gadi', '548 days = 2 years'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 548}), false), 'pirms 2 gadiem', '548 days with suffix = 2 years ago'); - assert.equal(start.from(moment([2007, 1, 28]).add({y: 1}), true), 'gads', '1 year = a year'); - assert.equal(start.from(moment([2007, 1, 28]).add({y: 5}), true), '5 gadi', '5 years = 5 years'); - assert.equal(start.from(moment([2007, 1, 28]).add({y: 5}), false), 'pirms 5 gadiem', '5 years with suffix = 5 years ago'); - - // test that numbers ending with 1 are singular except for when they end with 11 in which case they are plural - assert.equal(start.from(moment([2007, 1, 28]).add({y: 11}), true), '11 gadi', '11 years = 11 years'); - assert.equal(start.from(moment([2007, 1, 28]).add({y: 21}), true), '21 gads', '21 year = 21 year'); - assert.equal(start.from(moment([2007, 1, 28]).add({y: 211}), true), '211 gadi', '211 years = 211 years'); - assert.equal(start.from(moment([2007, 1, 28]).add({y: 221}), false), 'pirms 221 gada', '221 year with suffix = 221 years ago'); -}); - -test('suffix', function (assert) { - assert.equal(moment(30000).from(0), 'pēc dažām sekundēm', 'prefix'); - assert.equal(moment(0).from(30000), 'pirms dažām sekundēm', 'suffix'); -}); - -test('now from now', function (assert) { - assert.equal(moment().fromNow(), 'pirms dažām sekundēm', 'now from now should display as in the past'); -}); - -test('fromNow', function (assert) { - assert.equal(moment().add({s: 30}).fromNow(), 'pēc dažām sekundēm', 'in seconds'); - assert.equal(moment().add({d: 5}).fromNow(), 'pēc 5 dienām', 'in 5 days'); -}); - -test('calendar day', function (assert) { - var a = moment().hours(12).minutes(0).seconds(0); - - assert.equal(moment(a).calendar(), 'Šodien pulksten 12:00', 'today at the same time'); - assert.equal(moment(a).add({m: 25}).calendar(), 'Šodien pulksten 12:25', 'Now plus 25 min'); - assert.equal(moment(a).add({h: 1}).calendar(), 'Šodien pulksten 13:00', 'Now plus 1 hour'); - assert.equal(moment(a).add({d: 1}).calendar(), 'Rīt pulksten 12:00', 'tomorrow at the same time'); - assert.equal(moment(a).subtract({h: 1}).calendar(), 'Šodien pulksten 11:00', 'Now minus 1 hour'); - assert.equal(moment(a).subtract({d: 1}).calendar(), 'Vakar pulksten 12:00', 'yesterday at the same time'); -}); - -test('calendar next week', function (assert) { - var i, m; - for (i = 2; i < 7; i++) { - m = moment().add({d: i}); - assert.equal(m.calendar(), m.format('dddd [pulksten] LT'), 'Today + ' + i + ' days current time'); - m.hours(0).minutes(0).seconds(0).milliseconds(0); - assert.equal(m.calendar(), m.format('dddd [pulksten] LT'), 'Today + ' + i + ' days beginning of day'); - m.hours(23).minutes(59).seconds(59).milliseconds(999); - assert.equal(m.calendar(), m.format('dddd [pulksten] LT'), 'Today + ' + i + ' days end of day'); - } -}); - -test('calendar last week', function (assert) { - var i, m; - for (i = 2; i < 7; i++) { - m = moment().subtract({d: i}); - assert.equal(m.calendar(), m.format('[Pagājušā] dddd [pulksten] LT'), 'Today - ' + i + ' days current time'); - m.hours(0).minutes(0).seconds(0).milliseconds(0); - assert.equal(m.calendar(), m.format('[Pagājušā] dddd [pulksten] LT'), 'Today - ' + i + ' days beginning of day'); - m.hours(23).minutes(59).seconds(59).milliseconds(999); - assert.equal(m.calendar(), m.format('[Pagājušā] dddd [pulksten] LT'), 'Today - ' + i + ' days end of day'); - } -}); - -test('calendar all else', function (assert) { - var weeksAgo = moment().subtract({w: 1}), - weeksFromNow = moment().add({w: 1}); - - assert.equal(weeksAgo.calendar(), weeksAgo.format('L'), '1 week ago'); - assert.equal(weeksFromNow.calendar(), weeksFromNow.format('L'), 'in 1 week'); - - weeksAgo = moment().subtract({w: 2}); - weeksFromNow = moment().add({w: 2}); - - assert.equal(weeksAgo.calendar(), weeksAgo.format('L'), '2 weeks ago'); - assert.equal(weeksFromNow.calendar(), weeksFromNow.format('L'), 'in 2 weeks'); -}); - -test('weeks year starting sunday formatted', function (assert) { - assert.equal(moment([2012, 0, 1]).format('w ww wo'), '52 52 52.', 'Jan 1 2012 should be week 52'); - assert.equal(moment([2012, 0, 2]).format('w ww wo'), '1 01 1.', 'Jan 2 2012 should be week 1'); - assert.equal(moment([2012, 0, 8]).format('w ww wo'), '1 01 1.', 'Jan 8 2012 should be week 1'); - assert.equal(moment([2012, 0, 9]).format('w ww wo'), '2 02 2.', 'Jan 9 2012 should be week 2'); - assert.equal(moment([2012, 0, 15]).format('w ww wo'), '2 02 2.', 'Jan 15 2012 should be week 2'); -}); - -}))); - - -;(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' - && typeof require === 'function' ? factory(require('../../moment')) : - typeof define === 'function' && define.amd ? define(['../../moment'], factory) : - factory(global.moment) -}(this, (function (moment) { 'use strict'; - -function each(array, callback) { - var i; - for (i = 0; i < array.length; i++) { - callback(array[i], i, array); - } -} - -function objectKeys(obj) { - if (Object.keys) { - return Object.keys(obj); - } else { - // IE8 - var res = [], i; - for (i in obj) { - if (obj.hasOwnProperty(i)) { - res.push(i); - } - } - return res; - } -} - -// Pick the first defined of two or three arguments. - -function defineCommonLocaleTests(locale, options) { - test('lenient day of month ordinal parsing', function (assert) { - var i, ordinalStr, testMoment; - for (i = 1; i <= 31; ++i) { - ordinalStr = moment([2014, 0, i]).format('YYYY MM Do'); - testMoment = moment(ordinalStr, 'YYYY MM Do'); - assert.equal(testMoment.year(), 2014, - 'lenient day of month ordinal parsing ' + i + ' year check'); - assert.equal(testMoment.month(), 0, - 'lenient day of month ordinal parsing ' + i + ' month check'); - assert.equal(testMoment.date(), i, - 'lenient day of month ordinal parsing ' + i + ' date check'); - } - }); - - test('lenient day of month ordinal parsing of number', function (assert) { - var i, testMoment; - for (i = 1; i <= 31; ++i) { - testMoment = moment('2014 01 ' + i, 'YYYY MM Do'); - assert.equal(testMoment.year(), 2014, - 'lenient day of month ordinal parsing of number ' + i + ' year check'); - assert.equal(testMoment.month(), 0, - 'lenient day of month ordinal parsing of number ' + i + ' month check'); - assert.equal(testMoment.date(), i, - 'lenient day of month ordinal parsing of number ' + i + ' date check'); - } - }); - - test('strict day of month ordinal parsing', function (assert) { - var i, ordinalStr, testMoment; - for (i = 1; i <= 31; ++i) { - ordinalStr = moment([2014, 0, i]).format('YYYY MM Do'); - testMoment = moment(ordinalStr, 'YYYY MM Do', true); - assert.ok(testMoment.isValid(), 'strict day of month ordinal parsing ' + i); - } - }); - - test('meridiem invariant', function (assert) { - var h, m, t1, t2; - for (h = 0; h < 24; ++h) { - for (m = 0; m < 60; m += 15) { - t1 = moment.utc([2000, 0, 1, h, m]); - t2 = moment.utc(t1.format('A h:mm'), 'A h:mm'); - assert.equal(t2.format('HH:mm'), t1.format('HH:mm'), - 'meridiem at ' + t1.format('HH:mm')); - } - } - }); - - test('date format correctness', function (assert) { - var data, tokens; - data = moment.localeData()._longDateFormat; - tokens = objectKeys(data); - each(tokens, function (srchToken) { - // Check each format string to make sure it does not contain any - // tokens that need to be expanded. - each(tokens, function (baseToken) { - // strip escaped sequences - var format = data[baseToken].replace(/(\[[^\]]*\])/g, ''); - assert.equal(false, !!~format.indexOf(srchToken), - 'contains ' + srchToken + ' in ' + baseToken); - }); - }); - }); - - test('month parsing correctness', function (assert) { - var i, m; - - if (locale === 'tr') { - // I can't fix it :( - expect(0); - return; - } - function tester(format) { - var r; - r = moment(m.format(format), format); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format); - r = moment(m.format(format).toLocaleUpperCase(), format); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' upper'); - r = moment(m.format(format).toLocaleLowerCase(), format); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' lower'); - - r = moment(m.format(format), format, true); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' strict'); - r = moment(m.format(format).toLocaleUpperCase(), format, true); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' upper strict'); - r = moment(m.format(format).toLocaleLowerCase(), format, true); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' lower strict'); - } - - for (i = 0; i < 12; ++i) { - m = moment([2015, i, 15, 18]); - tester('MMM'); - tester('MMM.'); - tester('MMMM'); - tester('MMMM.'); - } - }); - - test('weekday parsing correctness', function (assert) { - var i, m; - - if (locale === 'tr' || locale === 'az' || locale === 'ro') { - // tr, az: There is a lower-case letter (ı), that converted to - // upper then lower changes to i - // ro: there is the letter ț which behaves weird under IE8 - expect(0); - return; - } - function tester(format) { - var r, baseMsg = 'weekday ' + m.weekday() + ' fmt ' + format + ' ' + m.toISOString(); - r = moment(m.format(format), format); - assert.equal(r.weekday(), m.weekday(), baseMsg); - r = moment(m.format(format).toLocaleUpperCase(), format); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' upper'); - r = moment(m.format(format).toLocaleLowerCase(), format); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' lower'); - - r = moment(m.format(format), format, true); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' strict'); - r = moment(m.format(format).toLocaleUpperCase(), format, true); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' upper strict'); - r = moment(m.format(format).toLocaleLowerCase(), format, true); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' lower strict'); - } - - for (i = 0; i < 7; ++i) { - m = moment.utc([2015, 0, i + 1, 18]); - tester('dd'); - tester('ddd'); - tester('dddd'); - } - }); - - test('valid localeData', function (assert) { - assert.equal(moment().localeData().months().length, 12, 'months should return 12 months'); - assert.equal(moment().localeData().monthsShort().length, 12, 'monthsShort should return 12 months'); - assert.equal(moment().localeData().weekdays().length, 7, 'weekdays should return 7 days'); - assert.equal(moment().localeData().weekdaysShort().length, 7, 'weekdaysShort should return 7 days'); - assert.equal(moment().localeData().weekdaysMin().length, 7, 'monthsShort should return 7 days'); - }); -} - -function setupDeprecationHandler(test, moment$$1, scope) { - test._expectedDeprecations = null; - test._observedDeprecations = null; - test._oldSupress = moment$$1.suppressDeprecationWarnings; - moment$$1.suppressDeprecationWarnings = true; - test.expectedDeprecations = function () { - test._expectedDeprecations = arguments; - test._observedDeprecations = []; - }; - moment$$1.deprecationHandler = function (name, msg) { - var deprecationId = matchedDeprecation(name, msg, test._expectedDeprecations); - if (deprecationId === -1) { - throw new Error('Unexpected deprecation thrown name=' + - name + ' msg=' + msg); - } - test._observedDeprecations[deprecationId] = 1; - }; -} - -function teardownDeprecationHandler(test, moment$$1, scope) { - moment$$1.suppressDeprecationWarnings = test._oldSupress; - - if (test._expectedDeprecations != null) { - var missedDeprecations = []; - each(test._expectedDeprecations, function (deprecationPattern, id) { - if (test._observedDeprecations[id] !== 1) { - missedDeprecations.push(deprecationPattern); - } - }); - if (missedDeprecations.length !== 0) { - throw new Error('Expected deprecation warnings did not happen: ' + - missedDeprecations.join(' ')); - } - } -} - -function matchedDeprecation(name, msg, deprecations) { - if (deprecations == null) { - return -1; - } - for (var i = 0; i < deprecations.length; ++i) { - if (name != null && name === deprecations[i]) { - return i; - } - if (msg != null && msg.substring(0, deprecations[i].length) === deprecations[i]) { - return i; - } - } - return -1; -} - -/*global QUnit:false*/ - -var test = QUnit.test; - -var expect = QUnit.expect; - - - -function localeModule (name, lifecycle) { - QUnit.module('locale:' + name, { - setup : function () { - moment.locale(name); - moment.createFromInputFallback = function (config) { - throw new Error('input not handled by moment: ' + config._i); - }; - setupDeprecationHandler(test, moment, 'locale'); - if (lifecycle && lifecycle.setup) { - lifecycle.setup(); - } - }, - teardown : function () { - moment.locale('en'); - teardownDeprecationHandler(test, moment, 'locale'); - if (lifecycle && lifecycle.teardown) { - lifecycle.teardown(); - } - } - }); - defineCommonLocaleTests(name, -1, -1); -} - -localeModule('me'); - -test('parse', function (assert) { - var tests = 'januar jan._februar feb._mart mar._april apr._maj maj_jun jun_jul jul_avgust avg._septembar sep._oktobar okt._novembar nov._decembar dec.'.split('_'), - i; - function equalTest(input, mmm, i) { - assert.equal(moment(input, mmm).month(), i, input + ' should be month ' + (i + 1)); - } - for (i = 0; i < 12; i++) { - tests[i] = tests[i].split(' '); - equalTest(tests[i][0], 'MMM', i); - equalTest(tests[i][1], 'MMM', i); - equalTest(tests[i][0], 'MMMM', i); - equalTest(tests[i][1], 'MMMM', i); - equalTest(tests[i][0].toLocaleLowerCase(), 'MMMM', i); - equalTest(tests[i][1].toLocaleLowerCase(), 'MMMM', i); - equalTest(tests[i][0].toLocaleUpperCase(), 'MMMM', i); - equalTest(tests[i][1].toLocaleUpperCase(), 'MMMM', i); - } -}); - -test('format', function (assert) { - var a = [ - ['dddd, Do MMMM YYYY, h:mm:ss a', 'nedjelja, 14. februar 2010, 3:25:50 pm'], - ['ddd, hA', 'ned., 3PM'], - ['M Mo MM MMMM MMM', '2 2. 02 februar feb.'], - ['YYYY YY', '2010 10'], - ['D Do DD', '14 14. 14'], - ['d do dddd ddd dd', '0 0. nedjelja ned. ne'], - ['DDD DDDo DDDD', '45 45. 045'], - ['w wo ww', '7 7. 07'], - ['h hh', '3 03'], - ['H HH', '15 15'], - ['m mm', '25 25'], - ['s ss', '50 50'], - ['a A', 'pm PM'], - ['[the] DDDo [day of the year]', 'the 45. day of the year'], - ['LTS', '15:25:50'], - ['L', '14.02.2010'], - ['LL', '14. februar 2010'], - ['LLL', '14. februar 2010 15:25'], - ['LLLL', 'nedjelja, 14. februar 2010 15:25'], - ['l', '14.2.2010'], - ['ll', '14. feb. 2010'], - ['lll', '14. feb. 2010 15:25'], - ['llll', 'ned., 14. feb. 2010 15:25'] - ], - b = moment(new Date(2010, 1, 14, 15, 25, 50, 125)), - i; - for (i = 0; i < a.length; i++) { - assert.equal(b.format(a[i][0]), a[i][1], a[i][0] + ' ---> ' + a[i][1]); - } -}); - -test('format ordinal', function (assert) { - assert.equal(moment([2011, 0, 1]).format('DDDo'), '1.', '1.'); - assert.equal(moment([2011, 0, 2]).format('DDDo'), '2.', '2.'); - assert.equal(moment([2011, 0, 3]).format('DDDo'), '3.', '3.'); - assert.equal(moment([2011, 0, 4]).format('DDDo'), '4.', '4.'); - assert.equal(moment([2011, 0, 5]).format('DDDo'), '5.', '5.'); - assert.equal(moment([2011, 0, 6]).format('DDDo'), '6.', '6.'); - assert.equal(moment([2011, 0, 7]).format('DDDo'), '7.', '7.'); - assert.equal(moment([2011, 0, 8]).format('DDDo'), '8.', '8.'); - assert.equal(moment([2011, 0, 9]).format('DDDo'), '9.', '9.'); - assert.equal(moment([2011, 0, 10]).format('DDDo'), '10.', '10.'); - - assert.equal(moment([2011, 0, 11]).format('DDDo'), '11.', '11.'); - assert.equal(moment([2011, 0, 12]).format('DDDo'), '12.', '12.'); - assert.equal(moment([2011, 0, 13]).format('DDDo'), '13.', '13.'); - assert.equal(moment([2011, 0, 14]).format('DDDo'), '14.', '14.'); - assert.equal(moment([2011, 0, 15]).format('DDDo'), '15.', '15.'); - assert.equal(moment([2011, 0, 16]).format('DDDo'), '16.', '16.'); - assert.equal(moment([2011, 0, 17]).format('DDDo'), '17.', '17.'); - assert.equal(moment([2011, 0, 18]).format('DDDo'), '18.', '18.'); - assert.equal(moment([2011, 0, 19]).format('DDDo'), '19.', '19.'); - assert.equal(moment([2011, 0, 20]).format('DDDo'), '20.', '20.'); - - assert.equal(moment([2011, 0, 21]).format('DDDo'), '21.', '21.'); - assert.equal(moment([2011, 0, 22]).format('DDDo'), '22.', '22.'); - assert.equal(moment([2011, 0, 23]).format('DDDo'), '23.', '23.'); - assert.equal(moment([2011, 0, 24]).format('DDDo'), '24.', '24.'); - assert.equal(moment([2011, 0, 25]).format('DDDo'), '25.', '25.'); - assert.equal(moment([2011, 0, 26]).format('DDDo'), '26.', '26.'); - assert.equal(moment([2011, 0, 27]).format('DDDo'), '27.', '27.'); - assert.equal(moment([2011, 0, 28]).format('DDDo'), '28.', '28.'); - assert.equal(moment([2011, 0, 29]).format('DDDo'), '29.', '29.'); - assert.equal(moment([2011, 0, 30]).format('DDDo'), '30.', '30.'); - - assert.equal(moment([2011, 0, 31]).format('DDDo'), '31.', '31.'); -}); - -test('format month', function (assert) { - var expected = 'januar jan._februar feb._mart mar._april apr._maj maj_jun jun_jul jul_avgust avg._septembar sep._oktobar okt._novembar nov._decembar dec.'.split('_'), - i; - for (i = 0; i < expected.length; i++) { - assert.equal(moment([2011, i, 1]).format('MMMM MMM'), expected[i], expected[i]); - } -}); - -test('format week', function (assert) { - var expected = 'nedjelja ned. ne_ponedjeljak pon. po_utorak uto. ut_srijeda sri. sr_četvrtak čet. če_petak pet. pe_subota sub. su'.split('_'), - i; - for (i = 0; i < expected.length; i++) { - assert.equal(moment([2011, 0, 2 + i]).format('dddd ddd dd'), expected[i], expected[i]); - } -}); - -test('from', function (assert) { - var start = moment([2007, 1, 28]); - assert.equal(start.from(moment([2007, 1, 28]).add({s: 44}), true), 'nekoliko sekundi', '44 seconds = a few seconds'); - assert.equal(start.from(moment([2007, 1, 28]).add({s: 45}), true), 'jedan minut', '45 seconds = a minute'); - assert.equal(start.from(moment([2007, 1, 28]).add({s: 89}), true), 'jedan minut', '89 seconds = a minute'); - assert.equal(start.from(moment([2007, 1, 28]).add({s: 90}), true), '2 minuta', '90 seconds = 2 minutes'); - assert.equal(start.from(moment([2007, 1, 28]).add({m: 44}), true), '44 minuta', '44 minutes = 44 minutes'); - assert.equal(start.from(moment([2007, 1, 28]).add({m: 45}), true), 'jedan sat', '45 minutes = an hour'); - assert.equal(start.from(moment([2007, 1, 28]).add({m: 89}), true), 'jedan sat', '89 minutes = an hour'); - assert.equal(start.from(moment([2007, 1, 28]).add({m: 90}), true), '2 sata', '90 minutes = 2 hours'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 5}), true), '5 sati', '5 hours = 5 hours'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 21}), true), '21 sati', '21 hours = 21 hours'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 22}), true), 'dan', '22 hours = a day'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 35}), true), 'dan', '35 hours = a day'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 36}), true), '2 dana', '36 hours = 2 days'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 1}), true), 'dan', '1 day = a day'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 5}), true), '5 dana', '5 days = 5 days'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 25}), true), '25 dana', '25 days = 25 days'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 26}), true), 'mjesec', '26 days = a month'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 30}), true), 'mjesec', '30 days = a month'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 43}), true), 'mjesec', '43 days = a month'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 46}), true), '2 mjeseca', '46 days = 2 months'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 74}), true), '2 mjeseca', '75 days = 2 months'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 76}), true), '3 mjeseca', '76 days = 3 months'); - assert.equal(start.from(moment([2007, 1, 28]).add({M: 1}), true), 'mjesec', '1 month = a month'); - assert.equal(start.from(moment([2007, 1, 28]).add({M: 5}), true), '5 mjeseci', '5 months = 5 months'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 345}), true), 'godinu', '345 days = a year'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 548}), true), '2 godine', '548 days = 2 years'); - assert.equal(start.from(moment([2007, 1, 28]).add({y: 1}), true), 'godinu', '1 year = a year'); - assert.equal(start.from(moment([2007, 1, 28]).add({y: 5}), true), '5 godina', '5 years = 5 years'); -}); - -test('suffix', function (assert) { - assert.equal(moment(30000).from(0), 'za nekoliko sekundi', 'prefix'); - assert.equal(moment(0).from(30000), 'prije nekoliko sekundi', 'prefix'); -}); - -test('now from now', function (assert) { - assert.equal(moment().fromNow(), 'prije nekoliko sekundi', 'now from now should display as in the past'); -}); - -test('fromNow', function (assert) { - assert.equal(moment().add({s: 30}).fromNow(), 'za nekoliko sekundi', 'in a few seconds'); - assert.equal(moment().add({d: 5}).fromNow(), 'za 5 dana', 'in 5 days'); -}); - -test('calendar day', function (assert) { - var a = moment().hours(12).minutes(0).seconds(0); - - assert.equal(moment(a).calendar(), 'danas u 12:00', 'today at the same time'); - assert.equal(moment(a).add({m: 25}).calendar(), 'danas u 12:25', 'Now plus 25 min'); - assert.equal(moment(a).add({h: 1}).calendar(), 'danas u 13:00', 'Now plus 1 hour'); - assert.equal(moment(a).add({d: 1}).calendar(), 'sjutra u 12:00', 'tomorrow at the same time'); - assert.equal(moment(a).subtract({h: 1}).calendar(), 'danas u 11:00', 'Now minus 1 hour'); - assert.equal(moment(a).subtract({d: 1}).calendar(), 'juče u 12:00', 'yesterday at the same time'); -}); - -test('calendar next week', function (assert) { - var i, m; - - function makeFormat(d) { - switch (d.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'; - } - } - - for (i = 2; i < 7; i++) { - m = moment().add({d: i}); - assert.equal(m.calendar(), m.format(makeFormat(m)), 'Today + ' + i + ' days current time'); - m.hours(0).minutes(0).seconds(0).milliseconds(0); - assert.equal(m.calendar(), m.format(makeFormat(m)), 'Today + ' + i + ' days beginning of day'); - m.hours(23).minutes(59).seconds(59).milliseconds(999); - assert.equal(m.calendar(), m.format(makeFormat(m)), 'Today + ' + i + ' days end of day'); - } -}); - -test('calendar last week', function (assert) { - var i, m; - - function makeFormat(d) { - var lastWeekDay = [ - '[prošle] [nedjelje] [u] LT', - '[prošlog] [ponedjeljka] [u] LT', - '[prošlog] [utorka] [u] LT', - '[prošle] [srijede] [u] LT', - '[prošlog] [četvrtka] [u] LT', - '[prošlog] [petka] [u] LT', - '[prošle] [subote] [u] LT' - ]; - - return lastWeekDay[d.day()]; - } - - for (i = 2; i < 7; i++) { - m = moment().subtract({d: i}); - assert.equal(m.calendar(), m.format(makeFormat(m)), 'Today - ' + i + ' days current time'); - m.hours(0).minutes(0).seconds(0).milliseconds(0); - assert.equal(m.calendar(), m.format(makeFormat(m)), 'Today - ' + i + ' days beginning of day'); - m.hours(23).minutes(59).seconds(59).milliseconds(999); - assert.equal(m.calendar(), m.format(makeFormat(m)), 'Today - ' + i + ' days end of day'); - } -}); - -test('calendar all else', function (assert) { - var weeksAgo = moment().subtract({w: 1}), - weeksFromNow = moment().add({w: 1}); - - assert.equal(weeksAgo.calendar(), weeksAgo.format('L'), '1 week ago'); - assert.equal(weeksFromNow.calendar(), weeksFromNow.format('L'), 'in 1 week'); - - weeksAgo = moment().subtract({w: 2}); - weeksFromNow = moment().add({w: 2}); - - assert.equal(weeksAgo.calendar(), weeksAgo.format('L'), '2 weeks ago'); - assert.equal(weeksFromNow.calendar(), weeksFromNow.format('L'), 'in 2 weeks'); -}); - -// Monday is the first day of the week. -// The week that contains Jan 1st is the first week of the year. - -test('weeks year starting sunday formatted', function (assert) { - assert.equal(moment([2011, 11, 26]).format('w ww wo'), '1 01 1.', 'Dec 26 2011 should be week 1'); - assert.equal(moment([2012, 0, 1]).format('w ww wo'), '1 01 1.', 'Jan 1 2012 should be week 1'); - assert.equal(moment([2012, 0, 2]).format('w ww wo'), '2 02 2.', 'Jan 2 2012 should be week 2'); - assert.equal(moment([2012, 0, 8]).format('w ww wo'), '2 02 2.', 'Jan 8 2012 should be week 2'); - assert.equal(moment([2012, 0, 9]).format('w ww wo'), '3 03 3.', 'Jan 9 2012 should be week 3'); -}); - -}))); - - -;(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' - && typeof require === 'function' ? factory(require('../../moment')) : - typeof define === 'function' && define.amd ? define(['../../moment'], factory) : - factory(global.moment) -}(this, (function (moment) { 'use strict'; - -function each(array, callback) { - var i; - for (i = 0; i < array.length; i++) { - callback(array[i], i, array); - } -} - -function objectKeys(obj) { - if (Object.keys) { - return Object.keys(obj); - } else { - // IE8 - var res = [], i; - for (i in obj) { - if (obj.hasOwnProperty(i)) { - res.push(i); - } - } - return res; - } -} - -// Pick the first defined of two or three arguments. - -function defineCommonLocaleTests(locale, options) { - test('lenient day of month ordinal parsing', function (assert) { - var i, ordinalStr, testMoment; - for (i = 1; i <= 31; ++i) { - ordinalStr = moment([2014, 0, i]).format('YYYY MM Do'); - testMoment = moment(ordinalStr, 'YYYY MM Do'); - assert.equal(testMoment.year(), 2014, - 'lenient day of month ordinal parsing ' + i + ' year check'); - assert.equal(testMoment.month(), 0, - 'lenient day of month ordinal parsing ' + i + ' month check'); - assert.equal(testMoment.date(), i, - 'lenient day of month ordinal parsing ' + i + ' date check'); - } - }); - - test('lenient day of month ordinal parsing of number', function (assert) { - var i, testMoment; - for (i = 1; i <= 31; ++i) { - testMoment = moment('2014 01 ' + i, 'YYYY MM Do'); - assert.equal(testMoment.year(), 2014, - 'lenient day of month ordinal parsing of number ' + i + ' year check'); - assert.equal(testMoment.month(), 0, - 'lenient day of month ordinal parsing of number ' + i + ' month check'); - assert.equal(testMoment.date(), i, - 'lenient day of month ordinal parsing of number ' + i + ' date check'); - } - }); - - test('strict day of month ordinal parsing', function (assert) { - var i, ordinalStr, testMoment; - for (i = 1; i <= 31; ++i) { - ordinalStr = moment([2014, 0, i]).format('YYYY MM Do'); - testMoment = moment(ordinalStr, 'YYYY MM Do', true); - assert.ok(testMoment.isValid(), 'strict day of month ordinal parsing ' + i); - } - }); - - test('meridiem invariant', function (assert) { - var h, m, t1, t2; - for (h = 0; h < 24; ++h) { - for (m = 0; m < 60; m += 15) { - t1 = moment.utc([2000, 0, 1, h, m]); - t2 = moment.utc(t1.format('A h:mm'), 'A h:mm'); - assert.equal(t2.format('HH:mm'), t1.format('HH:mm'), - 'meridiem at ' + t1.format('HH:mm')); - } - } - }); - - test('date format correctness', function (assert) { - var data, tokens; - data = moment.localeData()._longDateFormat; - tokens = objectKeys(data); - each(tokens, function (srchToken) { - // Check each format string to make sure it does not contain any - // tokens that need to be expanded. - each(tokens, function (baseToken) { - // strip escaped sequences - var format = data[baseToken].replace(/(\[[^\]]*\])/g, ''); - assert.equal(false, !!~format.indexOf(srchToken), - 'contains ' + srchToken + ' in ' + baseToken); - }); - }); - }); - - test('month parsing correctness', function (assert) { - var i, m; - - if (locale === 'tr') { - // I can't fix it :( - expect(0); - return; - } - function tester(format) { - var r; - r = moment(m.format(format), format); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format); - r = moment(m.format(format).toLocaleUpperCase(), format); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' upper'); - r = moment(m.format(format).toLocaleLowerCase(), format); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' lower'); - - r = moment(m.format(format), format, true); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' strict'); - r = moment(m.format(format).toLocaleUpperCase(), format, true); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' upper strict'); - r = moment(m.format(format).toLocaleLowerCase(), format, true); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' lower strict'); - } - - for (i = 0; i < 12; ++i) { - m = moment([2015, i, 15, 18]); - tester('MMM'); - tester('MMM.'); - tester('MMMM'); - tester('MMMM.'); - } - }); - - test('weekday parsing correctness', function (assert) { - var i, m; - - if (locale === 'tr' || locale === 'az' || locale === 'ro') { - // tr, az: There is a lower-case letter (ı), that converted to - // upper then lower changes to i - // ro: there is the letter ț which behaves weird under IE8 - expect(0); - return; - } - function tester(format) { - var r, baseMsg = 'weekday ' + m.weekday() + ' fmt ' + format + ' ' + m.toISOString(); - r = moment(m.format(format), format); - assert.equal(r.weekday(), m.weekday(), baseMsg); - r = moment(m.format(format).toLocaleUpperCase(), format); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' upper'); - r = moment(m.format(format).toLocaleLowerCase(), format); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' lower'); - - r = moment(m.format(format), format, true); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' strict'); - r = moment(m.format(format).toLocaleUpperCase(), format, true); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' upper strict'); - r = moment(m.format(format).toLocaleLowerCase(), format, true); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' lower strict'); - } - - for (i = 0; i < 7; ++i) { - m = moment.utc([2015, 0, i + 1, 18]); - tester('dd'); - tester('ddd'); - tester('dddd'); - } - }); - - test('valid localeData', function (assert) { - assert.equal(moment().localeData().months().length, 12, 'months should return 12 months'); - assert.equal(moment().localeData().monthsShort().length, 12, 'monthsShort should return 12 months'); - assert.equal(moment().localeData().weekdays().length, 7, 'weekdays should return 7 days'); - assert.equal(moment().localeData().weekdaysShort().length, 7, 'weekdaysShort should return 7 days'); - assert.equal(moment().localeData().weekdaysMin().length, 7, 'monthsShort should return 7 days'); - }); -} - -function setupDeprecationHandler(test, moment$$1, scope) { - test._expectedDeprecations = null; - test._observedDeprecations = null; - test._oldSupress = moment$$1.suppressDeprecationWarnings; - moment$$1.suppressDeprecationWarnings = true; - test.expectedDeprecations = function () { - test._expectedDeprecations = arguments; - test._observedDeprecations = []; - }; - moment$$1.deprecationHandler = function (name, msg) { - var deprecationId = matchedDeprecation(name, msg, test._expectedDeprecations); - if (deprecationId === -1) { - throw new Error('Unexpected deprecation thrown name=' + - name + ' msg=' + msg); - } - test._observedDeprecations[deprecationId] = 1; - }; -} - -function teardownDeprecationHandler(test, moment$$1, scope) { - moment$$1.suppressDeprecationWarnings = test._oldSupress; - - if (test._expectedDeprecations != null) { - var missedDeprecations = []; - each(test._expectedDeprecations, function (deprecationPattern, id) { - if (test._observedDeprecations[id] !== 1) { - missedDeprecations.push(deprecationPattern); - } - }); - if (missedDeprecations.length !== 0) { - throw new Error('Expected deprecation warnings did not happen: ' + - missedDeprecations.join(' ')); - } - } -} - -function matchedDeprecation(name, msg, deprecations) { - if (deprecations == null) { - return -1; - } - for (var i = 0; i < deprecations.length; ++i) { - if (name != null && name === deprecations[i]) { - return i; - } - if (msg != null && msg.substring(0, deprecations[i].length) === deprecations[i]) { - return i; - } - } - return -1; -} - -/*global QUnit:false*/ - -var test = QUnit.test; - -var expect = QUnit.expect; - - - -function localeModule (name, lifecycle) { - QUnit.module('locale:' + name, { - setup : function () { - moment.locale(name); - moment.createFromInputFallback = function (config) { - throw new Error('input not handled by moment: ' + config._i); - }; - setupDeprecationHandler(test, moment, 'locale'); - if (lifecycle && lifecycle.setup) { - lifecycle.setup(); - } - }, - teardown : function () { - moment.locale('en'); - teardownDeprecationHandler(test, moment, 'locale'); - if (lifecycle && lifecycle.teardown) { - lifecycle.teardown(); - } - } - }); - defineCommonLocaleTests(name, -1, -1); -} - -localeModule('mi'); - -test('parse', function (assert) { - var tests = 'Kohi-tāte Kohi_Hui-tanguru Hui_Poutū-te-rangi Pou_Paenga-whāwhā Pae_Haratua Hara_Pipiri Pipi_Hōngoingoi Hōngoi_Here-turi-kōkā Here_Mahuru Mahu_Whiringa-ā-nuku Whi-nu_Whiringa-ā-rangi Whi-ra_Hakihea Haki'.split('_'), i; - function equalTest(input, mmm, i) { - assert.equal(moment(input, mmm).month(), i, input + ' should be month ' + (i + 1)); - } - for (i = 0; i < 12; i++) { - tests[i] = tests[i].split(' '); - equalTest(tests[i][0], 'MMM', i); - equalTest(tests[i][1], 'MMM', i); - equalTest(tests[i][0], 'MMMM', i); - equalTest(tests[i][1], 'MMMM', i); - equalTest(tests[i][0].toLocaleLowerCase(), 'MMMM', i); - equalTest(tests[i][1].toLocaleLowerCase(), 'MMMM', i); - equalTest(tests[i][0].toLocaleUpperCase(), 'MMMM', i); - equalTest(tests[i][1].toLocaleUpperCase(), 'MMMM', i); - } -}); - -test('format', function (assert) { - var a = [ - ['dddd, MMMM Do YYYY, h:mm:ss a', 'Rātapu, Hui-tanguru 14º 2010, 3:25:50 pm'], - ['ddd, hA', 'Ta, 3PM'], - ['M Mo MM MMMM MMM', '2 2º 02 Hui-tanguru Hui'], - ['YYYY YY', '2010 10'], - ['D Do DD', '14 14º 14'], - ['d do dddd ddd dd', '0 0º Rātapu Ta Ta'], - ['DDD DDDo DDDD', '45 45º 045'], - ['w wo ww', '6 6º 06'], - ['h hh', '3 03'], - ['H HH', '15 15'], - ['m mm', '25 25'], - ['s ss', '50 50'], - ['a A', 'pm PM'], - ['[the] DDDo [day of the year]', 'the 45º day of the year'], - ['LTS', '15:25:50'], - ['L', '14/02/2010'], - ['LL', '14 Hui-tanguru 2010'], - ['LLL', '14 Hui-tanguru 2010 i 15:25'], - ['LLLL', 'Rātapu, 14 Hui-tanguru 2010 i 15:25'], - ['l', '14/2/2010'], - ['ll', '14 Hui 2010'], - ['lll', '14 Hui 2010 i 15:25'], - ['llll', 'Ta, 14 Hui 2010 i 15:25'] - ], - b = moment(new Date(2010, 1, 14, 15, 25, 50, 125)), - i; - for (i = 0; i < a.length; i++) { - assert.equal(b.format(a[i][0]), a[i][1], a[i][0] + ' ---> ' + a[i][1]); - } -}); - -test('format ordinal', function (assert) { - assert.equal(moment([2011, 0, 1]).format('DDDo'), '1º', '1º'); - assert.equal(moment([2011, 0, 2]).format('DDDo'), '2º', '2º'); - assert.equal(moment([2011, 0, 3]).format('DDDo'), '3º', '3º'); - assert.equal(moment([2011, 0, 4]).format('DDDo'), '4º', '4º'); - assert.equal(moment([2011, 0, 5]).format('DDDo'), '5º', '5º'); - assert.equal(moment([2011, 0, 6]).format('DDDo'), '6º', '6º'); - assert.equal(moment([2011, 0, 7]).format('DDDo'), '7º', '7º'); - assert.equal(moment([2011, 0, 8]).format('DDDo'), '8º', '8º'); - assert.equal(moment([2011, 0, 9]).format('DDDo'), '9º', '9º'); - assert.equal(moment([2011, 0, 10]).format('DDDo'), '10º', '10º'); - - assert.equal(moment([2011, 0, 11]).format('DDDo'), '11º', '11º'); - assert.equal(moment([2011, 0, 12]).format('DDDo'), '12º', '12º'); - assert.equal(moment([2011, 0, 13]).format('DDDo'), '13º', '13º'); - assert.equal(moment([2011, 0, 14]).format('DDDo'), '14º', '14º'); - assert.equal(moment([2011, 0, 15]).format('DDDo'), '15º', '15º'); - assert.equal(moment([2011, 0, 16]).format('DDDo'), '16º', '16º'); - assert.equal(moment([2011, 0, 17]).format('DDDo'), '17º', '17º'); - assert.equal(moment([2011, 0, 18]).format('DDDo'), '18º', '18º'); - assert.equal(moment([2011, 0, 19]).format('DDDo'), '19º', '19º'); - assert.equal(moment([2011, 0, 20]).format('DDDo'), '20º', '20º'); - - assert.equal(moment([2011, 0, 21]).format('DDDo'), '21º', '21º'); - assert.equal(moment([2011, 0, 22]).format('DDDo'), '22º', '22º'); - assert.equal(moment([2011, 0, 23]).format('DDDo'), '23º', '23º'); - assert.equal(moment([2011, 0, 24]).format('DDDo'), '24º', '24º'); - assert.equal(moment([2011, 0, 25]).format('DDDo'), '25º', '25º'); - assert.equal(moment([2011, 0, 26]).format('DDDo'), '26º', '26º'); - assert.equal(moment([2011, 0, 27]).format('DDDo'), '27º', '27º'); - assert.equal(moment([2011, 0, 28]).format('DDDo'), '28º', '28º'); - assert.equal(moment([2011, 0, 29]).format('DDDo'), '29º', '29º'); - assert.equal(moment([2011, 0, 30]).format('DDDo'), '30º', '30º'); - - assert.equal(moment([2011, 0, 31]).format('DDDo'), '31º', '31º'); -}); - -test('format month', function (assert) { - var expected = 'Kohi-tāte Kohi_Hui-tanguru Hui_Poutū-te-rangi Pou_Paenga-whāwhā Pae_Haratua Hara_Pipiri Pipi_Hōngoingoi Hōngoi_Here-turi-kōkā Here_Mahuru Mahu_Whiringa-ā-nuku Whi-nu_Whiringa-ā-rangi Whi-ra_Hakihea Haki'.split('_'), i; - for (i = 0; i < expected.length; i++) { - assert.equal(moment([2011, i, 1]).format('MMMM MMM'), expected[i], expected[i]); - } -}); - -test('format week', function (assert) { - var expected = 'Rātapu Ta Ta_Mane Ma Ma_Tūrei Tū Tū_Wenerei We We_Tāite Tāi Tāi_Paraire Pa Pa_Hātarei Hā Hā'.split('_'), i; - for (i = 0; i < expected.length; i++) { - assert.equal(moment([2011, 0, 2 + i]).format('dddd ddd dd'), expected[i], expected[i]); - } -}); - -test('from', function (assert) { - var start = moment([2007, 1, 28]); - assert.equal(start.from(moment([2007, 1, 28]).add({s: 44}), true), 'te hēkona ruarua', '44 seconds = a few seconds'); - assert.equal(start.from(moment([2007, 1, 28]).add({s: 45}), true), 'he meneti', '45 seconds = a minute'); - assert.equal(start.from(moment([2007, 1, 28]).add({s: 89}), true), 'he meneti', '89 seconds = a minute'); - assert.equal(start.from(moment([2007, 1, 28]).add({s: 90}), true), '2 meneti', '90 seconds = 2 minutes'); - assert.equal(start.from(moment([2007, 1, 28]).add({m: 44}), true), '44 meneti', '44 minutes = 44 minutes'); - assert.equal(start.from(moment([2007, 1, 28]).add({m: 45}), true), 'te haora', '45 minutes = an hour'); - assert.equal(start.from(moment([2007, 1, 28]).add({m: 89}), true), 'te haora', '89 minutes = an hour'); - assert.equal(start.from(moment([2007, 1, 28]).add({m: 90}), true), '2 haora', '90 minutes = 2 hours'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 5}), true), '5 haora', '5 hours = 5 hours'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 21}), true), '21 haora', '21 hours = 21 hours'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 22}), true), 'he ra', '22 hours = a day'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 35}), true), 'he ra', '35 hours = a day'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 36}), true), '2 ra', '36 hours = 2 days'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 1}), true), 'he ra', '1 day = a day'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 5}), true), '5 ra', '5 days = 5 days'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 25}), true), '25 ra', '25 days = 25 days'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 26}), true), 'he marama', '26 days = a month'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 30}), true), 'he marama', '30 days = a month'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 43}), true), 'he marama', '43 days = a month'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 46}), true), '2 marama', '46 days = 2 months'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 74}), true), '2 marama', '75 days = 2 months'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 76}), true), '3 marama', '76 days = 3 months'); - assert.equal(start.from(moment([2007, 1, 28]).add({M: 1}), true), 'he marama', '1 month = a month'); - assert.equal(start.from(moment([2007, 1, 28]).add({M: 5}), true), '5 marama', '5 months = 5 months'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 345}), true), 'he tau', '345 days = a year'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 548}), true), '2 tau', '548 days = 2 years'); - assert.equal(start.from(moment([2007, 1, 28]).add({y: 1}), true), 'he tau', '1 year = a year'); - assert.equal(start.from(moment([2007, 1, 28]).add({y: 5}), true), '5 tau', '5 years = 5 years'); -}); - -test('suffix', function (assert) { - assert.equal(moment(30000).from(0), 'i roto i te hēkona ruarua', 'prefix'); - assert.equal(moment(0).from(30000), 'te hēkona ruarua i mua', 'suffix'); -}); - -test('now from now', function (assert) { - assert.equal(moment().fromNow(), 'te hēkona ruarua i mua', 'now from now should display as in the past'); -}); - -test('fromNow', function (assert) { - assert.equal(moment().add({s: 30}).fromNow(), 'i roto i te hēkona ruarua', 'in a few seconds'); - assert.equal(moment().add({d: 5}).fromNow(), 'i roto i 5 ra', 'in 5 days'); -}); - -test('calendar day', function (assert) { - var a = moment().hours(12).minutes(0).seconds(0); - - assert.equal(moment(a).calendar(), 'i teie mahana, i 12:00', 'today at the same time'); - assert.equal(moment(a).add({m: 25}).calendar(), 'i teie mahana, i 12:25', 'Now plus 25 min'); - assert.equal(moment(a).add({h: 1}).calendar(), 'i teie mahana, i 13:00', 'Now plus 1 hour'); - assert.equal(moment(a).add({d: 1}).calendar(), 'apopo i 12:00', 'tomorrow at the same time'); - assert.equal(moment(a).subtract({h: 1}).calendar(), 'i teie mahana, i 11:00', 'Now minus 1 hour'); - assert.equal(moment(a).subtract({d: 1}).calendar(), 'inanahi i 12:00', 'yesterday at the same time'); -}); - -test('calendar next week', function (assert) { - var i, m; - for (i = 2; i < 7; i++) { - m = moment().add({d: i}); - assert.equal(m.calendar(), m.format('dddd [i] LT'), 'Today + ' + i + ' days current time'); - m.hours(0).minutes(0).seconds(0).milliseconds(0); - assert.equal(m.calendar(), m.format('dddd [i] LT'), 'Today + ' + i + ' days beginning of day'); - m.hours(23).minutes(59).seconds(59).milliseconds(999); - assert.equal(m.calendar(), m.format('dddd [i] LT'), 'Today + ' + i + ' days end of day'); - } -}); - -test('calendar last week', function (assert) { - var i, m; - - for (i = 2; i < 7; i++) { - m = moment().subtract({d: i}); - assert.equal(m.calendar(), m.format('dddd [whakamutunga i] LT'), 'Today - ' + i + ' days current time'); - m.hours(0).minutes(0).seconds(0).milliseconds(0); - assert.equal(m.calendar(), m.format('dddd [whakamutunga i] LT'), 'Today - ' + i + ' days beginning of day'); - m.hours(23).minutes(59).seconds(59).milliseconds(999); - assert.equal(m.calendar(), m.format('dddd [whakamutunga i] LT'), 'Today - ' + i + ' days end of day'); - } -}); - -test('calendar all else', function (assert) { - var weeksAgo = moment().subtract({w: 1}), - weeksFromNow = moment().add({w: 1}); - - assert.equal(weeksAgo.calendar(), weeksAgo.format('L'), '1 week ago'); - assert.equal(weeksFromNow.calendar(), weeksFromNow.format('L'), 'in 1 week'); - - weeksAgo = moment().subtract({w: 2}); - weeksFromNow = moment().add({w: 2}); - - assert.equal(weeksAgo.calendar(), weeksAgo.format('L'), '2 weeks ago'); - assert.equal(weeksFromNow.calendar(), weeksFromNow.format('L'), 'in 2 weeks'); -}); - -test('weeks year starting sunday formatted', function (assert) { - assert.equal(moment([2012, 0, 1]).format('w ww wo'), '52 52 52º', 'Jan 1 2012 should be week 52'); - assert.equal(moment([2012, 0, 2]).format('w ww wo'), '1 01 1º', 'Jan 2 2012 should be week 1'); - assert.equal(moment([2012, 0, 8]).format('w ww wo'), '1 01 1º', 'Jan 8 2012 should be week 1'); - assert.equal(moment([2012, 0, 9]).format('w ww wo'), '2 02 2º', 'Jan 9 2012 should be week 2'); - assert.equal(moment([2012, 0, 15]).format('w ww wo'), '2 02 2º', 'Jan 15 2012 should be week 2'); -}); - -}))); - - -;(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' - && typeof require === 'function' ? factory(require('../../moment')) : - typeof define === 'function' && define.amd ? define(['../../moment'], factory) : - factory(global.moment) -}(this, (function (moment) { 'use strict'; - -function each(array, callback) { - var i; - for (i = 0; i < array.length; i++) { - callback(array[i], i, array); - } -} - -function objectKeys(obj) { - if (Object.keys) { - return Object.keys(obj); - } else { - // IE8 - var res = [], i; - for (i in obj) { - if (obj.hasOwnProperty(i)) { - res.push(i); - } - } - return res; - } -} - -// Pick the first defined of two or three arguments. - -function defineCommonLocaleTests(locale, options) { - test('lenient day of month ordinal parsing', function (assert) { - var i, ordinalStr, testMoment; - for (i = 1; i <= 31; ++i) { - ordinalStr = moment([2014, 0, i]).format('YYYY MM Do'); - testMoment = moment(ordinalStr, 'YYYY MM Do'); - assert.equal(testMoment.year(), 2014, - 'lenient day of month ordinal parsing ' + i + ' year check'); - assert.equal(testMoment.month(), 0, - 'lenient day of month ordinal parsing ' + i + ' month check'); - assert.equal(testMoment.date(), i, - 'lenient day of month ordinal parsing ' + i + ' date check'); - } - }); - - test('lenient day of month ordinal parsing of number', function (assert) { - var i, testMoment; - for (i = 1; i <= 31; ++i) { - testMoment = moment('2014 01 ' + i, 'YYYY MM Do'); - assert.equal(testMoment.year(), 2014, - 'lenient day of month ordinal parsing of number ' + i + ' year check'); - assert.equal(testMoment.month(), 0, - 'lenient day of month ordinal parsing of number ' + i + ' month check'); - assert.equal(testMoment.date(), i, - 'lenient day of month ordinal parsing of number ' + i + ' date check'); - } - }); - - test('strict day of month ordinal parsing', function (assert) { - var i, ordinalStr, testMoment; - for (i = 1; i <= 31; ++i) { - ordinalStr = moment([2014, 0, i]).format('YYYY MM Do'); - testMoment = moment(ordinalStr, 'YYYY MM Do', true); - assert.ok(testMoment.isValid(), 'strict day of month ordinal parsing ' + i); - } - }); - - test('meridiem invariant', function (assert) { - var h, m, t1, t2; - for (h = 0; h < 24; ++h) { - for (m = 0; m < 60; m += 15) { - t1 = moment.utc([2000, 0, 1, h, m]); - t2 = moment.utc(t1.format('A h:mm'), 'A h:mm'); - assert.equal(t2.format('HH:mm'), t1.format('HH:mm'), - 'meridiem at ' + t1.format('HH:mm')); - } - } - }); - - test('date format correctness', function (assert) { - var data, tokens; - data = moment.localeData()._longDateFormat; - tokens = objectKeys(data); - each(tokens, function (srchToken) { - // Check each format string to make sure it does not contain any - // tokens that need to be expanded. - each(tokens, function (baseToken) { - // strip escaped sequences - var format = data[baseToken].replace(/(\[[^\]]*\])/g, ''); - assert.equal(false, !!~format.indexOf(srchToken), - 'contains ' + srchToken + ' in ' + baseToken); - }); - }); - }); - - test('month parsing correctness', function (assert) { - var i, m; - - if (locale === 'tr') { - // I can't fix it :( - expect(0); - return; - } - function tester(format) { - var r; - r = moment(m.format(format), format); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format); - r = moment(m.format(format).toLocaleUpperCase(), format); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' upper'); - r = moment(m.format(format).toLocaleLowerCase(), format); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' lower'); - - r = moment(m.format(format), format, true); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' strict'); - r = moment(m.format(format).toLocaleUpperCase(), format, true); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' upper strict'); - r = moment(m.format(format).toLocaleLowerCase(), format, true); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' lower strict'); - } - - for (i = 0; i < 12; ++i) { - m = moment([2015, i, 15, 18]); - tester('MMM'); - tester('MMM.'); - tester('MMMM'); - tester('MMMM.'); - } - }); - - test('weekday parsing correctness', function (assert) { - var i, m; - - if (locale === 'tr' || locale === 'az' || locale === 'ro') { - // tr, az: There is a lower-case letter (ı), that converted to - // upper then lower changes to i - // ro: there is the letter ț which behaves weird under IE8 - expect(0); - return; - } - function tester(format) { - var r, baseMsg = 'weekday ' + m.weekday() + ' fmt ' + format + ' ' + m.toISOString(); - r = moment(m.format(format), format); - assert.equal(r.weekday(), m.weekday(), baseMsg); - r = moment(m.format(format).toLocaleUpperCase(), format); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' upper'); - r = moment(m.format(format).toLocaleLowerCase(), format); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' lower'); - - r = moment(m.format(format), format, true); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' strict'); - r = moment(m.format(format).toLocaleUpperCase(), format, true); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' upper strict'); - r = moment(m.format(format).toLocaleLowerCase(), format, true); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' lower strict'); - } - - for (i = 0; i < 7; ++i) { - m = moment.utc([2015, 0, i + 1, 18]); - tester('dd'); - tester('ddd'); - tester('dddd'); - } - }); - - test('valid localeData', function (assert) { - assert.equal(moment().localeData().months().length, 12, 'months should return 12 months'); - assert.equal(moment().localeData().monthsShort().length, 12, 'monthsShort should return 12 months'); - assert.equal(moment().localeData().weekdays().length, 7, 'weekdays should return 7 days'); - assert.equal(moment().localeData().weekdaysShort().length, 7, 'weekdaysShort should return 7 days'); - assert.equal(moment().localeData().weekdaysMin().length, 7, 'monthsShort should return 7 days'); - }); -} - -function setupDeprecationHandler(test, moment$$1, scope) { - test._expectedDeprecations = null; - test._observedDeprecations = null; - test._oldSupress = moment$$1.suppressDeprecationWarnings; - moment$$1.suppressDeprecationWarnings = true; - test.expectedDeprecations = function () { - test._expectedDeprecations = arguments; - test._observedDeprecations = []; - }; - moment$$1.deprecationHandler = function (name, msg) { - var deprecationId = matchedDeprecation(name, msg, test._expectedDeprecations); - if (deprecationId === -1) { - throw new Error('Unexpected deprecation thrown name=' + - name + ' msg=' + msg); - } - test._observedDeprecations[deprecationId] = 1; - }; -} - -function teardownDeprecationHandler(test, moment$$1, scope) { - moment$$1.suppressDeprecationWarnings = test._oldSupress; - - if (test._expectedDeprecations != null) { - var missedDeprecations = []; - each(test._expectedDeprecations, function (deprecationPattern, id) { - if (test._observedDeprecations[id] !== 1) { - missedDeprecations.push(deprecationPattern); - } - }); - if (missedDeprecations.length !== 0) { - throw new Error('Expected deprecation warnings did not happen: ' + - missedDeprecations.join(' ')); - } - } -} - -function matchedDeprecation(name, msg, deprecations) { - if (deprecations == null) { - return -1; - } - for (var i = 0; i < deprecations.length; ++i) { - if (name != null && name === deprecations[i]) { - return i; - } - if (msg != null && msg.substring(0, deprecations[i].length) === deprecations[i]) { - return i; - } - } - return -1; -} - -/*global QUnit:false*/ - -var test = QUnit.test; - -var expect = QUnit.expect; - - - -function localeModule (name, lifecycle) { - QUnit.module('locale:' + name, { - setup : function () { - moment.locale(name); - moment.createFromInputFallback = function (config) { - throw new Error('input not handled by moment: ' + config._i); - }; - setupDeprecationHandler(test, moment, 'locale'); - if (lifecycle && lifecycle.setup) { - lifecycle.setup(); - } - }, - teardown : function () { - moment.locale('en'); - teardownDeprecationHandler(test, moment, 'locale'); - if (lifecycle && lifecycle.teardown) { - lifecycle.teardown(); - } - } - }); - defineCommonLocaleTests(name, -1, -1); -} - -localeModule('mk'); - -test('parse', function (assert) { - var tests = 'јануари јан_февруари фев_март мар_април апр_мај мај_јуни јун_јули јул_август авг_септември сеп_октомври окт_ноември ное_декември дек'.split('_'), i; - function equalTest(input, mmm, i) { - assert.equal(moment(input, mmm).month(), i, input + ' should be month ' + (i + 1)); - } - for (i = 0; i < 12; i++) { - tests[i] = tests[i].split(' '); - equalTest(tests[i][0], 'MMM', i); - equalTest(tests[i][1], 'MMM', i); - equalTest(tests[i][0], 'MMMM', i); - equalTest(tests[i][1], 'MMMM', i); - equalTest(tests[i][0].toLocaleLowerCase(), 'MMMM', i); - equalTest(tests[i][1].toLocaleLowerCase(), 'MMMM', i); - equalTest(tests[i][0].toLocaleUpperCase(), 'MMMM', i); - equalTest(tests[i][1].toLocaleUpperCase(), 'MMMM', i); - } -}); - -test('format', function (assert) { - var a = [ - ['dddd, MMMM Do YYYY, H:mm:ss', 'недела, февруари 14-ти 2010, 15:25:50'], - ['ddd, hA', 'нед, 3PM'], - ['M Mo MM MMMM MMM', '2 2-ри 02 февруари фев'], - ['YYYY YY', '2010 10'], - ['D Do DD', '14 14-ти 14'], - ['d do dddd ddd dd', '0 0-ев недела нед нe'], - ['DDD DDDo DDDD', '45 45-ти 045'], - ['w wo ww', '7 7-ми 07'], - ['h hh', '3 03'], - ['H HH', '15 15'], - ['m mm', '25 25'], - ['s ss', '50 50'], - ['a A', 'pm PM'], - ['[the] DDDo [day of the year]', 'the 45-ти day of the year'], - ['LTS', '15:25:50'], - ['L', '14.02.2010'], - ['LL', '14 февруари 2010'], - ['LLL', '14 февруари 2010 15:25'], - ['LLLL', 'недела, 14 февруари 2010 15:25'], - ['l', '14.2.2010'], - ['ll', '14 фев 2010'], - ['lll', '14 фев 2010 15:25'], - ['llll', 'нед, 14 фев 2010 15:25'] - ], - b = moment(new Date(2010, 1, 14, 15, 25, 50, 125)), - i; - for (i = 0; i < a.length; i++) { - assert.equal(b.format(a[i][0]), a[i][1], a[i][0] + ' ---> ' + a[i][1]); - } -}); - -test('format ordinal', function (assert) { - assert.equal(moment([2011, 0, 1]).format('DDDo'), '1-ви', '1-ви'); - assert.equal(moment([2011, 0, 2]).format('DDDo'), '2-ри', '2-ри'); - assert.equal(moment([2011, 0, 3]).format('DDDo'), '3-ти', '3-ти'); - assert.equal(moment([2011, 0, 4]).format('DDDo'), '4-ти', '4-ти'); - assert.equal(moment([2011, 0, 5]).format('DDDo'), '5-ти', '5-ти'); - assert.equal(moment([2011, 0, 6]).format('DDDo'), '6-ти', '6-ти'); - assert.equal(moment([2011, 0, 7]).format('DDDo'), '7-ми', '7-ми'); - assert.equal(moment([2011, 0, 8]).format('DDDo'), '8-ми', '8-ми'); - assert.equal(moment([2011, 0, 9]).format('DDDo'), '9-ти', '9-ти'); - assert.equal(moment([2011, 0, 10]).format('DDDo'), '10-ти', '10-ти'); - - assert.equal(moment([2011, 0, 11]).format('DDDo'), '11-ти', '11-ти'); - assert.equal(moment([2011, 0, 12]).format('DDDo'), '12-ти', '12-ти'); - assert.equal(moment([2011, 0, 13]).format('DDDo'), '13-ти', '13-ти'); - assert.equal(moment([2011, 0, 14]).format('DDDo'), '14-ти', '14-ти'); - assert.equal(moment([2011, 0, 15]).format('DDDo'), '15-ти', '15-ти'); - assert.equal(moment([2011, 0, 16]).format('DDDo'), '16-ти', '16-ти'); - assert.equal(moment([2011, 0, 17]).format('DDDo'), '17-ти', '17-ти'); - assert.equal(moment([2011, 0, 18]).format('DDDo'), '18-ти', '18-ти'); - assert.equal(moment([2011, 0, 19]).format('DDDo'), '19-ти', '19-ти'); - assert.equal(moment([2011, 0, 20]).format('DDDo'), '20-ти', '20-ти'); - - assert.equal(moment([2011, 0, 21]).format('DDDo'), '21-ви', '21-ви'); - assert.equal(moment([2011, 0, 22]).format('DDDo'), '22-ри', '22-ри'); - assert.equal(moment([2011, 0, 23]).format('DDDo'), '23-ти', '23-ти'); - assert.equal(moment([2011, 0, 24]).format('DDDo'), '24-ти', '24-ти'); - assert.equal(moment([2011, 0, 25]).format('DDDo'), '25-ти', '25-ти'); - assert.equal(moment([2011, 0, 26]).format('DDDo'), '26-ти', '26-ти'); - assert.equal(moment([2011, 0, 27]).format('DDDo'), '27-ми', '27-ми'); - assert.equal(moment([2011, 0, 28]).format('DDDo'), '28-ми', '28-ми'); - assert.equal(moment([2011, 0, 29]).format('DDDo'), '29-ти', '29-ти'); - assert.equal(moment([2011, 0, 30]).format('DDDo'), '30-ти', '30-ти'); - - assert.equal(moment([2011, 0, 31]).format('DDDo'), '31-ви', '31-ви'); -}); - -test('format month', function (assert) { - var expected = 'јануари јан_февруари фев_март мар_април апр_мај мај_јуни јун_јули јул_август авг_септември сеп_октомври окт_ноември ное_декември дек'.split('_'), i; - for (i = 0; i < expected.length; i++) { - assert.equal(moment([2011, i, 1]).format('MMMM MMM'), expected[i], expected[i]); - } -}); - -test('format week', function (assert) { - var expected = 'недела нед нe_понеделник пон пo_вторник вто вт_среда сре ср_четврток чет че_петок пет пе_сабота саб сa'.split('_'), i; - for (i = 0; i < expected.length; i++) { - assert.equal(moment([2011, 0, 2 + i]).format('dddd ddd dd'), expected[i], expected[i]); - } -}); - -test('from', function (assert) { - var start = moment([2007, 1, 28]); - assert.equal(start.from(moment([2007, 1, 28]).add({s: 44}), true), 'неколку секунди', '44 seconds = a few seconds'); - assert.equal(start.from(moment([2007, 1, 28]).add({s: 45}), true), 'минута', '45 seconds = a minute'); - assert.equal(start.from(moment([2007, 1, 28]).add({s: 89}), true), 'минута', '89 seconds = a minute'); - assert.equal(start.from(moment([2007, 1, 28]).add({s: 90}), true), '2 минути', '90 seconds = 2 minutes'); - assert.equal(start.from(moment([2007, 1, 28]).add({m: 44}), true), '44 минути', '44 minutes = 44 minutes'); - assert.equal(start.from(moment([2007, 1, 28]).add({m: 45}), true), 'час', '45 minutes = an hour'); - assert.equal(start.from(moment([2007, 1, 28]).add({m: 89}), true), 'час', '89 minutes = an hour'); - assert.equal(start.from(moment([2007, 1, 28]).add({m: 90}), true), '2 часа', '90 minutes = 2 hours'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 5}), true), '5 часа', '5 hours = 5 hours'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 21}), true), '21 часа', '21 hours = 21 hours'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 22}), true), 'ден', '22 hours = a day'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 35}), true), 'ден', '35 hours = a day'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 36}), true), '2 дена', '36 hours = 2 days'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 1}), true), 'ден', '1 day = a day'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 5}), true), '5 дена', '5 days = 5 days'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 25}), true), '25 дена', '25 days = 25 days'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 26}), true), 'месец', '26 days = a month'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 30}), true), 'месец', '30 days = a month'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 43}), true), 'месец', '43 days = a month'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 46}), true), '2 месеци', '46 days = 2 months'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 74}), true), '2 месеци', '75 days = 2 months'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 76}), true), '3 месеци', '76 days = 3 months'); - assert.equal(start.from(moment([2007, 1, 28]).add({M: 1}), true), 'месец', '1 month = a month'); - assert.equal(start.from(moment([2007, 1, 28]).add({M: 5}), true), '5 месеци', '5 months = 5 months'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 345}), true), 'година', '345 days = a year'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 548}), true), '2 години', '548 days = 2 years'); - assert.equal(start.from(moment([2007, 1, 28]).add({y: 1}), true), 'година', '1 year = a year'); - assert.equal(start.from(moment([2007, 1, 28]).add({y: 5}), true), '5 години', '5 years = 5 years'); -}); - -test('suffix', function (assert) { - assert.equal(moment(30000).from(0), 'после неколку секунди', 'prefix'); - assert.equal(moment(0).from(30000), 'пред неколку секунди', 'suffix'); -}); - -test('now from now', function (assert) { - assert.equal(moment().fromNow(), 'пред неколку секунди', 'now from now should display as in the past'); -}); - -test('fromNow', function (assert) { - assert.equal(moment().add({s: 30}).fromNow(), 'после неколку секунди', 'in a few seconds'); - assert.equal(moment().add({d: 5}).fromNow(), 'после 5 дена', 'in 5 days'); -}); - -test('calendar day', function (assert) { - var a = moment().hours(12).minutes(0).seconds(0); - - assert.equal(moment(a).calendar(), 'Денес во 12:00', 'today at the same time'); - assert.equal(moment(a).add({m: 25}).calendar(), 'Денес во 12:25', 'Now plus 25 min'); - assert.equal(moment(a).add({h: 1}).calendar(), 'Денес во 13:00', 'Now plus 1 hour'); - assert.equal(moment(a).add({d: 1}).calendar(), 'Утре во 12:00', 'tomorrow at the same time'); - assert.equal(moment(a).subtract({h: 1}).calendar(), 'Денес во 11:00', 'Now minus 1 hour'); - assert.equal(moment(a).subtract({d: 1}).calendar(), 'Вчера во 12:00', 'yesterday at the same time'); -}); - -test('calendar next week', function (assert) { - var i, m; - for (i = 2; i < 7; i++) { - m = moment().add({d: i}); - assert.equal(m.calendar(), m.format('[Во] dddd [во] LT'), 'Today + ' + i + ' days current time'); - m.hours(0).minutes(0).seconds(0).milliseconds(0); - assert.equal(m.calendar(), m.format('[Во] dddd [во] LT'), 'Today + ' + i + ' days beginning of day'); - m.hours(23).minutes(59).seconds(59).milliseconds(999); - assert.equal(m.calendar(), m.format('[Во] dddd [во] LT'), 'Today + ' + i + ' days end of day'); - } -}); - -test('calendar last week', function (assert) { - var i, m; - - function makeFormat(d) { - switch (d.day()) { - case 0: - case 3: - case 6: - return '[Изминатата] dddd [во] LT'; - case 1: - case 2: - case 4: - case 5: - return '[Изминатиот] dddd [во] LT'; - } - } - - for (i = 2; i < 7; i++) { - m = moment().subtract({d: i}); - assert.equal(m.calendar(), m.format(makeFormat(m)), 'Today - ' + i + ' days current time'); - m.hours(0).minutes(0).seconds(0).milliseconds(0); - assert.equal(m.calendar(), m.format(makeFormat(m)), 'Today - ' + i + ' days beginning of day'); - m.hours(23).minutes(59).seconds(59).milliseconds(999); - assert.equal(m.calendar(), m.format(makeFormat(m)), 'Today - ' + i + ' days end of day'); - } -}); - -test('calendar all else', function (assert) { - var weeksAgo = moment().subtract({w: 1}), - weeksFromNow = moment().add({w: 1}); - - assert.equal(weeksAgo.calendar(), weeksAgo.format('L'), '1 week ago'); - assert.equal(weeksFromNow.calendar(), weeksFromNow.format('L'), 'in 1 week'); - - weeksAgo = moment().subtract({w: 2}); - weeksFromNow = moment().add({w: 2}); - - assert.equal(weeksAgo.calendar(), weeksAgo.format('L'), '2 weeks ago'); - assert.equal(weeksFromNow.calendar(), weeksFromNow.format('L'), 'in 2 weeks'); -}); - -test('weeks year starting sunday formatted', function (assert) { - assert.equal(moment([2011, 11, 26]).format('w ww wo'), '1 01 1-ви', 'Dec 26 2011 should be week 1'); - assert.equal(moment([2012, 0, 1]).format('w ww wo'), '1 01 1-ви', 'Jan 1 2012 should be week 1'); - assert.equal(moment([2012, 0, 2]).format('w ww wo'), '2 02 2-ри', 'Jan 2 2012 should be week 2'); - assert.equal(moment([2012, 0, 8]).format('w ww wo'), '2 02 2-ри', 'Jan 8 2012 should be week 2'); - assert.equal(moment([2012, 0, 9]).format('w ww wo'), '3 03 3-ти', 'Jan 9 2012 should be week 3'); -}); - -}))); - - -;(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' - && typeof require === 'function' ? factory(require('../../moment')) : - typeof define === 'function' && define.amd ? define(['../../moment'], factory) : - factory(global.moment) -}(this, (function (moment) { 'use strict'; - -function each(array, callback) { - var i; - for (i = 0; i < array.length; i++) { - callback(array[i], i, array); - } -} - -function objectKeys(obj) { - if (Object.keys) { - return Object.keys(obj); - } else { - // IE8 - var res = [], i; - for (i in obj) { - if (obj.hasOwnProperty(i)) { - res.push(i); - } - } - return res; - } -} - -// Pick the first defined of two or three arguments. - -function defineCommonLocaleTests(locale, options) { - test('lenient day of month ordinal parsing', function (assert) { - var i, ordinalStr, testMoment; - for (i = 1; i <= 31; ++i) { - ordinalStr = moment([2014, 0, i]).format('YYYY MM Do'); - testMoment = moment(ordinalStr, 'YYYY MM Do'); - assert.equal(testMoment.year(), 2014, - 'lenient day of month ordinal parsing ' + i + ' year check'); - assert.equal(testMoment.month(), 0, - 'lenient day of month ordinal parsing ' + i + ' month check'); - assert.equal(testMoment.date(), i, - 'lenient day of month ordinal parsing ' + i + ' date check'); - } - }); - - test('lenient day of month ordinal parsing of number', function (assert) { - var i, testMoment; - for (i = 1; i <= 31; ++i) { - testMoment = moment('2014 01 ' + i, 'YYYY MM Do'); - assert.equal(testMoment.year(), 2014, - 'lenient day of month ordinal parsing of number ' + i + ' year check'); - assert.equal(testMoment.month(), 0, - 'lenient day of month ordinal parsing of number ' + i + ' month check'); - assert.equal(testMoment.date(), i, - 'lenient day of month ordinal parsing of number ' + i + ' date check'); - } - }); - - test('strict day of month ordinal parsing', function (assert) { - var i, ordinalStr, testMoment; - for (i = 1; i <= 31; ++i) { - ordinalStr = moment([2014, 0, i]).format('YYYY MM Do'); - testMoment = moment(ordinalStr, 'YYYY MM Do', true); - assert.ok(testMoment.isValid(), 'strict day of month ordinal parsing ' + i); - } - }); - - test('meridiem invariant', function (assert) { - var h, m, t1, t2; - for (h = 0; h < 24; ++h) { - for (m = 0; m < 60; m += 15) { - t1 = moment.utc([2000, 0, 1, h, m]); - t2 = moment.utc(t1.format('A h:mm'), 'A h:mm'); - assert.equal(t2.format('HH:mm'), t1.format('HH:mm'), - 'meridiem at ' + t1.format('HH:mm')); - } - } - }); - - test('date format correctness', function (assert) { - var data, tokens; - data = moment.localeData()._longDateFormat; - tokens = objectKeys(data); - each(tokens, function (srchToken) { - // Check each format string to make sure it does not contain any - // tokens that need to be expanded. - each(tokens, function (baseToken) { - // strip escaped sequences - var format = data[baseToken].replace(/(\[[^\]]*\])/g, ''); - assert.equal(false, !!~format.indexOf(srchToken), - 'contains ' + srchToken + ' in ' + baseToken); - }); - }); - }); - - test('month parsing correctness', function (assert) { - var i, m; - - if (locale === 'tr') { - // I can't fix it :( - expect(0); - return; - } - function tester(format) { - var r; - r = moment(m.format(format), format); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format); - r = moment(m.format(format).toLocaleUpperCase(), format); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' upper'); - r = moment(m.format(format).toLocaleLowerCase(), format); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' lower'); - - r = moment(m.format(format), format, true); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' strict'); - r = moment(m.format(format).toLocaleUpperCase(), format, true); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' upper strict'); - r = moment(m.format(format).toLocaleLowerCase(), format, true); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' lower strict'); - } - - for (i = 0; i < 12; ++i) { - m = moment([2015, i, 15, 18]); - tester('MMM'); - tester('MMM.'); - tester('MMMM'); - tester('MMMM.'); - } - }); - - test('weekday parsing correctness', function (assert) { - var i, m; - - if (locale === 'tr' || locale === 'az' || locale === 'ro') { - // tr, az: There is a lower-case letter (ı), that converted to - // upper then lower changes to i - // ro: there is the letter ț which behaves weird under IE8 - expect(0); - return; - } - function tester(format) { - var r, baseMsg = 'weekday ' + m.weekday() + ' fmt ' + format + ' ' + m.toISOString(); - r = moment(m.format(format), format); - assert.equal(r.weekday(), m.weekday(), baseMsg); - r = moment(m.format(format).toLocaleUpperCase(), format); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' upper'); - r = moment(m.format(format).toLocaleLowerCase(), format); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' lower'); - - r = moment(m.format(format), format, true); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' strict'); - r = moment(m.format(format).toLocaleUpperCase(), format, true); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' upper strict'); - r = moment(m.format(format).toLocaleLowerCase(), format, true); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' lower strict'); - } - - for (i = 0; i < 7; ++i) { - m = moment.utc([2015, 0, i + 1, 18]); - tester('dd'); - tester('ddd'); - tester('dddd'); - } - }); - - test('valid localeData', function (assert) { - assert.equal(moment().localeData().months().length, 12, 'months should return 12 months'); - assert.equal(moment().localeData().monthsShort().length, 12, 'monthsShort should return 12 months'); - assert.equal(moment().localeData().weekdays().length, 7, 'weekdays should return 7 days'); - assert.equal(moment().localeData().weekdaysShort().length, 7, 'weekdaysShort should return 7 days'); - assert.equal(moment().localeData().weekdaysMin().length, 7, 'monthsShort should return 7 days'); - }); -} - -function setupDeprecationHandler(test, moment$$1, scope) { - test._expectedDeprecations = null; - test._observedDeprecations = null; - test._oldSupress = moment$$1.suppressDeprecationWarnings; - moment$$1.suppressDeprecationWarnings = true; - test.expectedDeprecations = function () { - test._expectedDeprecations = arguments; - test._observedDeprecations = []; - }; - moment$$1.deprecationHandler = function (name, msg) { - var deprecationId = matchedDeprecation(name, msg, test._expectedDeprecations); - if (deprecationId === -1) { - throw new Error('Unexpected deprecation thrown name=' + - name + ' msg=' + msg); - } - test._observedDeprecations[deprecationId] = 1; - }; -} - -function teardownDeprecationHandler(test, moment$$1, scope) { - moment$$1.suppressDeprecationWarnings = test._oldSupress; - - if (test._expectedDeprecations != null) { - var missedDeprecations = []; - each(test._expectedDeprecations, function (deprecationPattern, id) { - if (test._observedDeprecations[id] !== 1) { - missedDeprecations.push(deprecationPattern); - } - }); - if (missedDeprecations.length !== 0) { - throw new Error('Expected deprecation warnings did not happen: ' + - missedDeprecations.join(' ')); - } - } -} - -function matchedDeprecation(name, msg, deprecations) { - if (deprecations == null) { - return -1; - } - for (var i = 0; i < deprecations.length; ++i) { - if (name != null && name === deprecations[i]) { - return i; - } - if (msg != null && msg.substring(0, deprecations[i].length) === deprecations[i]) { - return i; - } - } - return -1; -} - -/*global QUnit:false*/ - -var test = QUnit.test; - -var expect = QUnit.expect; - - - -function localeModule (name, lifecycle) { - QUnit.module('locale:' + name, { - setup : function () { - moment.locale(name); - moment.createFromInputFallback = function (config) { - throw new Error('input not handled by moment: ' + config._i); - }; - setupDeprecationHandler(test, moment, 'locale'); - if (lifecycle && lifecycle.setup) { - lifecycle.setup(); - } - }, - teardown : function () { - moment.locale('en'); - teardownDeprecationHandler(test, moment, 'locale'); - if (lifecycle && lifecycle.teardown) { - lifecycle.teardown(); - } - } - }); - defineCommonLocaleTests(name, -1, -1); -} - -localeModule('ml'); - -test('parse', function (assert) { - var tests = 'ജനുവരി ജനു._ഫെബ്രുവരി ഫെബ്രു._മാർച്ച് മാർ._ഏപ്രിൽ ഏപ്രി._മേയ് മേയ്_ജൂൺ ജൂൺ_ജൂലൈ ജൂലൈ._ഓഗസ്റ്റ് ഓഗ._സെപ്റ്റംബർ സെപ്റ്റ._ഒക്ടോബർ ഒക്ടോ._നവംബർ നവം._ഡിസംബർ ഡിസം.'.split('_'), i; - function equalTest(input, mmm, i) { - assert.equal(moment(input, mmm).month(), i, input + ' should be month ' + (i + 1)); - } - for (i = 0; i < 12; i++) { - tests[i] = tests[i].split(' '); - equalTest(tests[i][0], 'MMM', i); - equalTest(tests[i][1], 'MMM', i); - equalTest(tests[i][0], 'MMMM', i); - equalTest(tests[i][1], 'MMMM', i); - equalTest(tests[i][0].toLocaleLowerCase(), 'MMMM', i); - equalTest(tests[i][1].toLocaleLowerCase(), 'MMMM', i); - equalTest(tests[i][0].toLocaleUpperCase(), 'MMMM', i); - equalTest(tests[i][1].toLocaleUpperCase(), 'MMMM', i); - } -}); - -test('format', function (assert) { - var a = [ - ['dddd, Do MMMM YYYY, a h:mm:ss -നു', 'ഞായറാഴ്ച, 14 ഫെബ്രുവരി 2010, ഉച്ച കഴിഞ്ഞ് 3:25:50 -നു'], - ['ddd, a h -നു', 'ഞായർ, ഉച്ച കഴിഞ്ഞ് 3 -നു'], - ['M Mo MM MMMM MMM', '2 2 02 ഫെബ്രുവരി ഫെബ്രു.'], - ['YYYY YY', '2010 10'], - ['D Do DD', '14 14 14'], - ['d do dddd ddd dd', '0 0 ഞായറാഴ്ച ഞായർ ഞാ'], - ['DDD DDDo DDDD', '45 45 045'], - ['w wo ww', '8 8 08'], - ['h hh', '3 03'], - ['H HH', '15 15'], - ['m mm', '25 25'], - ['s ss', '50 50'], - ['a A', 'ഉച്ച കഴിഞ്ഞ് ഉച്ച കഴിഞ്ഞ്'], - ['LTS', 'ഉച്ച കഴിഞ്ഞ് 3:25:50 -നു'], - ['L', '14/02/2010'], - ['LL', '14 ഫെബ്രുവരി 2010'], - ['LLL', '14 ഫെബ്രുവരി 2010, ഉച്ച കഴിഞ്ഞ് 3:25 -നു'], - ['LLLL', 'ഞായറാഴ്ച, 14 ഫെബ്രുവരി 2010, ഉച്ച കഴിഞ്ഞ് 3:25 -നു'], - ['l', '14/2/2010'], - ['ll', '14 ഫെബ്രു. 2010'], - ['lll', '14 ഫെബ്രു. 2010, ഉച്ച കഴിഞ്ഞ് 3:25 -നു'], - ['llll', 'ഞായർ, 14 ഫെബ്രു. 2010, ഉച്ച കഴിഞ്ഞ് 3:25 -നു'] - ], - b = moment(new Date(2010, 1, 14, 15, 25, 50, 125)), - i; - for (i = 0; i < a.length; i++) { - assert.equal(b.format(a[i][0]), a[i][1], a[i][0] + ' ---> ' + a[i][1]); - } -}); - -test('format ordinal', function (assert) { - assert.equal(moment([2011, 0, 1]).format('DDDo'), '1', '1'); - assert.equal(moment([2011, 0, 2]).format('DDDo'), '2', '2'); - assert.equal(moment([2011, 0, 3]).format('DDDo'), '3', '3'); - assert.equal(moment([2011, 0, 4]).format('DDDo'), '4', '4'); - assert.equal(moment([2011, 0, 5]).format('DDDo'), '5', '5'); - assert.equal(moment([2011, 0, 6]).format('DDDo'), '6', '6'); - assert.equal(moment([2011, 0, 7]).format('DDDo'), '7', '7'); - assert.equal(moment([2011, 0, 8]).format('DDDo'), '8', '8'); - assert.equal(moment([2011, 0, 9]).format('DDDo'), '9', '9'); - assert.equal(moment([2011, 0, 10]).format('DDDo'), '10', '10'); - - assert.equal(moment([2011, 0, 11]).format('DDDo'), '11', '11'); - assert.equal(moment([2011, 0, 12]).format('DDDo'), '12', '12'); - assert.equal(moment([2011, 0, 13]).format('DDDo'), '13', '13'); - assert.equal(moment([2011, 0, 14]).format('DDDo'), '14', '14'); - assert.equal(moment([2011, 0, 15]).format('DDDo'), '15', '15'); - assert.equal(moment([2011, 0, 16]).format('DDDo'), '16', '16'); - assert.equal(moment([2011, 0, 17]).format('DDDo'), '17', '17'); - assert.equal(moment([2011, 0, 18]).format('DDDo'), '18', '18'); - assert.equal(moment([2011, 0, 19]).format('DDDo'), '19', '19'); - assert.equal(moment([2011, 0, 20]).format('DDDo'), '20', '20'); - - assert.equal(moment([2011, 0, 21]).format('DDDo'), '21', '21'); - assert.equal(moment([2011, 0, 22]).format('DDDo'), '22', '22'); - assert.equal(moment([2011, 0, 23]).format('DDDo'), '23', '23'); - assert.equal(moment([2011, 0, 24]).format('DDDo'), '24', '24'); - assert.equal(moment([2011, 0, 25]).format('DDDo'), '25', '25'); - assert.equal(moment([2011, 0, 26]).format('DDDo'), '26', '26'); - assert.equal(moment([2011, 0, 27]).format('DDDo'), '27', '27'); - assert.equal(moment([2011, 0, 28]).format('DDDo'), '28', '28'); - assert.equal(moment([2011, 0, 29]).format('DDDo'), '29', '29'); - assert.equal(moment([2011, 0, 30]).format('DDDo'), '30', '30'); - - assert.equal(moment([2011, 0, 31]).format('DDDo'), '31', '31'); -}); - -test('format month', function (assert) { - var expected = 'ജനുവരി ജനു._ഫെബ്രുവരി ഫെബ്രു._മാർച്ച് മാർ._ഏപ്രിൽ ഏപ്രി._മേയ് മേയ്_ജൂൺ ജൂൺ_ജൂലൈ ജൂലൈ._ഓഗസ്റ്റ് ഓഗ._സെപ്റ്റംബർ സെപ്റ്റ._ഒക്ടോബർ ഒക്ടോ._നവംബർ നവം._ഡിസംബർ ഡിസം.'.split('_'), i; - for (i = 0; i < expected.length; i++) { - assert.equal(moment([2011, i, 1]).format('MMMM MMM'), expected[i], expected[i]); - } -}); - -test('format week', function (assert) { - var expected = 'ഞായറാഴ്ച ഞായർ ഞാ_തിങ്കളാഴ്ച തിങ്കൾ തി_ചൊവ്വാഴ്ച ചൊവ്വ ചൊ_ബുധനാഴ്ച ബുധൻ ബു_വ്യാഴാഴ്ച വ്യാഴം വ്യാ_വെള്ളിയാഴ്ച വെള്ളി വെ_ശനിയാഴ്ച ശനി ശ'.split('_'), i; - for (i = 0; i < expected.length; i++) { - assert.equal(moment([2011, 0, 2 + i]).format('dddd ddd dd'), expected[i], expected[i]); - } -}); - -test('from', function (assert) { - var start = moment([2007, 1, 28]); - assert.equal(start.from(moment([2007, 1, 28]).add({s: 44}), true), 'അൽപ നിമിഷങ്ങൾ', '44 seconds = a few seconds'); - assert.equal(start.from(moment([2007, 1, 28]).add({s: 45}), true), 'ഒരു മിനിറ്റ്', '45 seconds = a minute'); - assert.equal(start.from(moment([2007, 1, 28]).add({s: 89}), true), 'ഒരു മിനിറ്റ്', '89 seconds = a minute'); - assert.equal(start.from(moment([2007, 1, 28]).add({s: 90}), true), '2 മിനിറ്റ്', '90 seconds = 2 minutes'); - assert.equal(start.from(moment([2007, 1, 28]).add({m: 44}), true), '44 മിനിറ്റ്', '44 minutes = 44 minutes'); - assert.equal(start.from(moment([2007, 1, 28]).add({m: 45}), true), 'ഒരു മണിക്കൂർ', '45 minutes = an hour'); - assert.equal(start.from(moment([2007, 1, 28]).add({m: 89}), true), 'ഒരു മണിക്കൂർ', '89 minutes = an hour'); - assert.equal(start.from(moment([2007, 1, 28]).add({m: 90}), true), '2 മണിക്കൂർ', '90 minutes = 2 hours'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 5}), true), '5 മണിക്കൂർ', '5 hours = 5 hours'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 21}), true), '21 മണിക്കൂർ', '21 hours = 21 hours'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 22}), true), 'ഒരു ദിവസം', '22 hours = a day'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 35}), true), 'ഒരു ദിവസം', '35 hours = a day'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 36}), true), '2 ദിവസം', '36 hours = 2 days'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 1}), true), 'ഒരു ദിവസം', '1 day = a day'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 5}), true), '5 ദിവസം', '5 days = 5 days'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 25}), true), '25 ദിവസം', '25 days = 25 days'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 26}), true), 'ഒരു മാസം', '26 days = a month'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 30}), true), 'ഒരു മാസം', '30 days = a month'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 43}), true), 'ഒരു മാസം', '43 days = a month'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 46}), true), '2 മാസം', '46 days = 2 months'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 74}), true), '2 മാസം', '75 days = 2 months'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 76}), true), '3 മാസം', '76 days = 3 months'); - assert.equal(start.from(moment([2007, 1, 28]).add({M: 1}), true), 'ഒരു മാസം', '1 month = a month'); - assert.equal(start.from(moment([2007, 1, 28]).add({M: 5}), true), '5 മാസം', '5 months = 5 months'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 345}), true), 'ഒരു വർഷം', '345 days = a year'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 548}), true), '2 വർഷം', '548 days = 2 years'); - assert.equal(start.from(moment([2007, 1, 28]).add({y: 1}), true), 'ഒരു വർഷം', '1 year = a year'); - assert.equal(start.from(moment([2007, 1, 28]).add({y: 5}), true), '5 വർഷം', '5 years = 5 years'); -}); - -test('suffix', function (assert) { - assert.equal(moment(30000).from(0), 'അൽപ നിമിഷങ്ങൾ കഴിഞ്ഞ്', 'prefix'); - assert.equal(moment(0).from(30000), 'അൽപ നിമിഷങ്ങൾ മുൻപ്', 'suffix'); -}); - -test('now from now', function (assert) { - assert.equal(moment().fromNow(), 'അൽപ നിമിഷങ്ങൾ മുൻപ്', 'now from now should display as in the past'); -}); - -test('fromNow', function (assert) { - assert.equal(moment().add({s: 30}).fromNow(), 'അൽപ നിമിഷങ്ങൾ കഴിഞ്ഞ്', 'അൽപ നിമിഷങ്ങൾ കഴിഞ്ഞ്'); - assert.equal(moment().add({d: 5}).fromNow(), '5 ദിവസം കഴിഞ്ഞ്', '5 ദിവസം കഴിഞ്ഞ്'); -}); - -test('calendar day', function (assert) { - var a = moment().hours(12).minutes(0).seconds(0); - - assert.equal(moment(a).calendar(), 'ഇന്ന് ഉച്ച കഴിഞ്ഞ് 12:00 -നു', 'today at the same time'); - assert.equal(moment(a).add({m: 25}).calendar(), 'ഇന്ന് ഉച്ച കഴിഞ്ഞ് 12:25 -നു', 'Now plus 25 min'); - assert.equal(moment(a).add({h: 3}).calendar(), 'ഇന്ന് ഉച്ച കഴിഞ്ഞ് 3:00 -നു', 'Now plus 3 hours'); - assert.equal(moment(a).add({d: 1}).calendar(), 'നാളെ ഉച്ച കഴിഞ്ഞ് 12:00 -നു', 'tomorrow at the same time'); - assert.equal(moment(a).subtract({h: 1}).calendar(), 'ഇന്ന് രാവിലെ 11:00 -നു', 'Now minus 1 hour'); - assert.equal(moment(a).subtract({d: 1}).calendar(), 'ഇന്നലെ ഉച്ച കഴിഞ്ഞ് 12:00 -നു', 'yesterday at the same time'); -}); - -test('calendar next week', function (assert) { - var i, m; - for (i = 2; i < 7; i++) { - m = moment().add({d: i}); - assert.equal(m.calendar(), m.format('dddd[,] LT'), 'Today + ' + i + ' days current time'); - m.hours(0).minutes(0).seconds(0).milliseconds(0); - assert.equal(m.calendar(), m.format('dddd[,] LT'), 'Today + ' + i + ' days beginning of day'); - m.hours(23).minutes(59).seconds(59).milliseconds(999); - assert.equal(m.calendar(), m.format('dddd[,] LT'), 'Today + ' + i + ' days end of day'); - } -}); - -test('calendar last week', function (assert) { - var i, m; - - for (i = 2; i < 7; i++) { - m = moment().subtract({d: i}); - assert.equal(m.calendar(), m.format('[കഴിഞ്ഞ] dddd[,] LT'), 'Today - ' + i + ' days current time'); - m.hours(0).minutes(0).seconds(0).milliseconds(0); - assert.equal(m.calendar(), m.format('[കഴിഞ്ഞ] dddd[,] LT'), 'Today - ' + i + ' days beginning of day'); - m.hours(23).minutes(59).seconds(59).milliseconds(999); - assert.equal(m.calendar(), m.format('[കഴിഞ്ഞ] dddd[,] LT'), 'Today - ' + i + ' days end of day'); - } -}); - -test('calendar all else', function (assert) { - var weeksAgo = moment().subtract({w: 1}), - weeksFromNow = moment().add({w: 1}); - - assert.equal(weeksAgo.calendar(), weeksAgo.format('L'), '1 week ago'); - assert.equal(weeksFromNow.calendar(), weeksFromNow.format('L'), 'in 1 week'); - - weeksAgo = moment().subtract({w: 2}); - weeksFromNow = moment().add({w: 2}); - - assert.equal(weeksAgo.calendar(), weeksAgo.format('L'), '2 weeks ago'); - assert.equal(weeksFromNow.calendar(), weeksFromNow.format('L'), 'in 2 weeks'); -}); - -test('meridiem', function (assert) { - assert.equal(moment([2011, 2, 23, 2, 30]).format('a'), 'രാത്രി', 'before dawn'); - assert.equal(moment([2011, 2, 23, 9, 30]).format('a'), 'രാവിലെ', 'morning'); - assert.equal(moment([2011, 2, 23, 14, 30]).format('a'), 'ഉച്ച കഴിഞ്ഞ്', 'during day'); - assert.equal(moment([2011, 2, 23, 17, 30]).format('a'), 'വൈകുന്നേരം', 'evening'); - assert.equal(moment([2011, 2, 23, 19, 30]).format('a'), 'വൈകുന്നേരം', 'late evening'); - assert.equal(moment([2011, 2, 23, 21, 20]).format('a'), 'രാത്രി', 'night'); - - assert.equal(moment([2011, 2, 23, 2, 30]).format('A'), 'രാത്രി', 'before dawn'); - assert.equal(moment([2011, 2, 23, 9, 30]).format('A'), 'രാവിലെ', 'morning'); - assert.equal(moment([2011, 2, 23, 14, 30]).format('A'), 'ഉച്ച കഴിഞ്ഞ്', ' during day'); - assert.equal(moment([2011, 2, 23, 17, 30]).format('A'), 'വൈകുന്നേരം', 'evening'); - assert.equal(moment([2011, 2, 23, 19, 30]).format('A'), 'വൈകുന്നേരം', 'late evening'); - assert.equal(moment([2011, 2, 23, 21, 20]).format('A'), 'രാത്രി', 'night'); -}); - -test('weeks year starting sunday formatted', function (assert) { - assert.equal(moment([2012, 0, 1]).format('w ww wo'), '1 01 1', 'Jan 1 2012 should be week 1'); - assert.equal(moment([2012, 0, 7]).format('w ww wo'), '1 01 1', 'Jan 7 2012 should be week 1'); - assert.equal(moment([2012, 0, 8]).format('w ww wo'), '2 02 2', 'Jan 8 2012 should be week 2'); - assert.equal(moment([2012, 0, 14]).format('w ww wo'), '2 02 2', 'Jan 14 2012 should be week 2'); - assert.equal(moment([2012, 0, 15]).format('w ww wo'), '3 03 3', 'Jan 15 2012 should be week 3'); -}); - -}))); - - -;(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' - && typeof require === 'function' ? factory(require('../../moment')) : - typeof define === 'function' && define.amd ? define(['../../moment'], factory) : - factory(global.moment) -}(this, (function (moment) { 'use strict'; - -function each(array, callback) { - var i; - for (i = 0; i < array.length; i++) { - callback(array[i], i, array); - } -} - -function objectKeys(obj) { - if (Object.keys) { - return Object.keys(obj); - } else { - // IE8 - var res = [], i; - for (i in obj) { - if (obj.hasOwnProperty(i)) { - res.push(i); - } - } - return res; - } -} - -// Pick the first defined of two or three arguments. - -function defineCommonLocaleTests(locale, options) { - test('lenient day of month ordinal parsing', function (assert) { - var i, ordinalStr, testMoment; - for (i = 1; i <= 31; ++i) { - ordinalStr = moment([2014, 0, i]).format('YYYY MM Do'); - testMoment = moment(ordinalStr, 'YYYY MM Do'); - assert.equal(testMoment.year(), 2014, - 'lenient day of month ordinal parsing ' + i + ' year check'); - assert.equal(testMoment.month(), 0, - 'lenient day of month ordinal parsing ' + i + ' month check'); - assert.equal(testMoment.date(), i, - 'lenient day of month ordinal parsing ' + i + ' date check'); - } - }); - - test('lenient day of month ordinal parsing of number', function (assert) { - var i, testMoment; - for (i = 1; i <= 31; ++i) { - testMoment = moment('2014 01 ' + i, 'YYYY MM Do'); - assert.equal(testMoment.year(), 2014, - 'lenient day of month ordinal parsing of number ' + i + ' year check'); - assert.equal(testMoment.month(), 0, - 'lenient day of month ordinal parsing of number ' + i + ' month check'); - assert.equal(testMoment.date(), i, - 'lenient day of month ordinal parsing of number ' + i + ' date check'); - } - }); - - test('strict day of month ordinal parsing', function (assert) { - var i, ordinalStr, testMoment; - for (i = 1; i <= 31; ++i) { - ordinalStr = moment([2014, 0, i]).format('YYYY MM Do'); - testMoment = moment(ordinalStr, 'YYYY MM Do', true); - assert.ok(testMoment.isValid(), 'strict day of month ordinal parsing ' + i); - } - }); - - test('meridiem invariant', function (assert) { - var h, m, t1, t2; - for (h = 0; h < 24; ++h) { - for (m = 0; m < 60; m += 15) { - t1 = moment.utc([2000, 0, 1, h, m]); - t2 = moment.utc(t1.format('A h:mm'), 'A h:mm'); - assert.equal(t2.format('HH:mm'), t1.format('HH:mm'), - 'meridiem at ' + t1.format('HH:mm')); - } - } - }); - - test('date format correctness', function (assert) { - var data, tokens; - data = moment.localeData()._longDateFormat; - tokens = objectKeys(data); - each(tokens, function (srchToken) { - // Check each format string to make sure it does not contain any - // tokens that need to be expanded. - each(tokens, function (baseToken) { - // strip escaped sequences - var format = data[baseToken].replace(/(\[[^\]]*\])/g, ''); - assert.equal(false, !!~format.indexOf(srchToken), - 'contains ' + srchToken + ' in ' + baseToken); - }); - }); - }); - - test('month parsing correctness', function (assert) { - var i, m; - - if (locale === 'tr') { - // I can't fix it :( - expect(0); - return; - } - function tester(format) { - var r; - r = moment(m.format(format), format); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format); - r = moment(m.format(format).toLocaleUpperCase(), format); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' upper'); - r = moment(m.format(format).toLocaleLowerCase(), format); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' lower'); - - r = moment(m.format(format), format, true); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' strict'); - r = moment(m.format(format).toLocaleUpperCase(), format, true); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' upper strict'); - r = moment(m.format(format).toLocaleLowerCase(), format, true); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' lower strict'); - } - - for (i = 0; i < 12; ++i) { - m = moment([2015, i, 15, 18]); - tester('MMM'); - tester('MMM.'); - tester('MMMM'); - tester('MMMM.'); - } - }); - - test('weekday parsing correctness', function (assert) { - var i, m; - - if (locale === 'tr' || locale === 'az' || locale === 'ro') { - // tr, az: There is a lower-case letter (ı), that converted to - // upper then lower changes to i - // ro: there is the letter ț which behaves weird under IE8 - expect(0); - return; - } - function tester(format) { - var r, baseMsg = 'weekday ' + m.weekday() + ' fmt ' + format + ' ' + m.toISOString(); - r = moment(m.format(format), format); - assert.equal(r.weekday(), m.weekday(), baseMsg); - r = moment(m.format(format).toLocaleUpperCase(), format); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' upper'); - r = moment(m.format(format).toLocaleLowerCase(), format); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' lower'); - - r = moment(m.format(format), format, true); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' strict'); - r = moment(m.format(format).toLocaleUpperCase(), format, true); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' upper strict'); - r = moment(m.format(format).toLocaleLowerCase(), format, true); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' lower strict'); - } - - for (i = 0; i < 7; ++i) { - m = moment.utc([2015, 0, i + 1, 18]); - tester('dd'); - tester('ddd'); - tester('dddd'); - } - }); - - test('valid localeData', function (assert) { - assert.equal(moment().localeData().months().length, 12, 'months should return 12 months'); - assert.equal(moment().localeData().monthsShort().length, 12, 'monthsShort should return 12 months'); - assert.equal(moment().localeData().weekdays().length, 7, 'weekdays should return 7 days'); - assert.equal(moment().localeData().weekdaysShort().length, 7, 'weekdaysShort should return 7 days'); - assert.equal(moment().localeData().weekdaysMin().length, 7, 'monthsShort should return 7 days'); - }); -} - -function setupDeprecationHandler(test, moment$$1, scope) { - test._expectedDeprecations = null; - test._observedDeprecations = null; - test._oldSupress = moment$$1.suppressDeprecationWarnings; - moment$$1.suppressDeprecationWarnings = true; - test.expectedDeprecations = function () { - test._expectedDeprecations = arguments; - test._observedDeprecations = []; - }; - moment$$1.deprecationHandler = function (name, msg) { - var deprecationId = matchedDeprecation(name, msg, test._expectedDeprecations); - if (deprecationId === -1) { - throw new Error('Unexpected deprecation thrown name=' + - name + ' msg=' + msg); - } - test._observedDeprecations[deprecationId] = 1; - }; -} - -function teardownDeprecationHandler(test, moment$$1, scope) { - moment$$1.suppressDeprecationWarnings = test._oldSupress; - - if (test._expectedDeprecations != null) { - var missedDeprecations = []; - each(test._expectedDeprecations, function (deprecationPattern, id) { - if (test._observedDeprecations[id] !== 1) { - missedDeprecations.push(deprecationPattern); - } - }); - if (missedDeprecations.length !== 0) { - throw new Error('Expected deprecation warnings did not happen: ' + - missedDeprecations.join(' ')); - } - } -} - -function matchedDeprecation(name, msg, deprecations) { - if (deprecations == null) { - return -1; - } - for (var i = 0; i < deprecations.length; ++i) { - if (name != null && name === deprecations[i]) { - return i; - } - if (msg != null && msg.substring(0, deprecations[i].length) === deprecations[i]) { - return i; - } - } - return -1; -} - -/*global QUnit:false*/ - -var test = QUnit.test; - -var expect = QUnit.expect; - - - -function localeModule (name, lifecycle) { - QUnit.module('locale:' + name, { - setup : function () { - moment.locale(name); - moment.createFromInputFallback = function (config) { - throw new Error('input not handled by moment: ' + config._i); - }; - setupDeprecationHandler(test, moment, 'locale'); - if (lifecycle && lifecycle.setup) { - lifecycle.setup(); - } - }, - teardown : function () { - moment.locale('en'); - teardownDeprecationHandler(test, moment, 'locale'); - if (lifecycle && lifecycle.teardown) { - lifecycle.teardown(); - } - } - }); - defineCommonLocaleTests(name, -1, -1); -} - -localeModule('mr'); - -test('parse', function (assert) { - var tests = 'जानेवारी जाने._फेब्रुवारी फेब्रु._मार्च मार्च._एप्रिल एप्रि._मे मे._जून जून._जुलै जुलै._ऑगस्ट ऑग._सप्टेंबर सप्टें._ऑक्टोबर ऑक्टो._नोव्हेंबर नोव्हें._डिसेंबर डिसें.'.split('_'), i; - function equalTest(input, mmm, i) { - assert.equal(moment(input, mmm).month(), i, input + ' should be month ' + (i + 1)); - } - for (i = 0; i < 12; i++) { - tests[i] = tests[i].split(' '); - equalTest(tests[i][0], 'MMM', i); - equalTest(tests[i][1], 'MMM', i); - equalTest(tests[i][0], 'MMMM', i); - equalTest(tests[i][1], 'MMMM', i); - equalTest(tests[i][0].toLocaleLowerCase(), 'MMMM', i); - equalTest(tests[i][1].toLocaleLowerCase(), 'MMMM', i); - equalTest(tests[i][0].toLocaleUpperCase(), 'MMMM', i); - equalTest(tests[i][1].toLocaleUpperCase(), 'MMMM', i); - } -}); - -test('format', function (assert) { - var a = [ - ['dddd, Do MMMM YYYY, a h:mm:ss वाजता', 'रविवार, १४ फेब्रुवारी २०१०, दुपारी ३:२५:५० वाजता'], - ['ddd, a h वाजता', 'रवि, दुपारी ३ वाजता'], - ['M Mo MM MMMM MMM', '२ २ ०२ फेब्रुवारी फेब्रु.'], - ['YYYY YY', '२०१० १०'], - ['D Do DD', '१४ १४ १४'], - ['d do dddd ddd dd', '० ० रविवार रवि र'], - ['DDD DDDo DDDD', '४५ ४५ ०४५'], - ['w wo ww', '८ ८ ०८'], - ['h hh', '३ ०३'], - ['H HH', '१५ १५'], - ['m mm', '२५ २५'], - ['s ss', '५० ५०'], - ['a A', 'दुपारी दुपारी'], - ['LTS', 'दुपारी ३:२५:५० वाजता'], - ['L', '१४/०२/२०१०'], - ['LL', '१४ फेब्रुवारी २०१०'], - ['LLL', '१४ फेब्रुवारी २०१०, दुपारी ३:२५ वाजता'], - ['LLLL', 'रविवार, १४ फेब्रुवारी २०१०, दुपारी ३:२५ वाजता'], - ['l', '१४/२/२०१०'], - ['ll', '१४ फेब्रु. २०१०'], - ['lll', '१४ फेब्रु. २०१०, दुपारी ३:२५ वाजता'], - ['llll', 'रवि, १४ फेब्रु. २०१०, दुपारी ३:२५ वाजता'] - ], - b = moment(new Date(2010, 1, 14, 15, 25, 50, 125)), - i; - for (i = 0; i < a.length; i++) { - assert.equal(b.format(a[i][0]), a[i][1], a[i][0] + ' ---> ' + a[i][1]); - } -}); - -test('format ordinal', function (assert) { - assert.equal(moment([2011, 0, 1]).format('DDDo'), '१', '१'); - assert.equal(moment([2011, 0, 2]).format('DDDo'), '२', '२'); - assert.equal(moment([2011, 0, 3]).format('DDDo'), '३', '३'); - assert.equal(moment([2011, 0, 4]).format('DDDo'), '४', '४'); - assert.equal(moment([2011, 0, 5]).format('DDDo'), '५', '५'); - assert.equal(moment([2011, 0, 6]).format('DDDo'), '६', '६'); - assert.equal(moment([2011, 0, 7]).format('DDDo'), '७', '७'); - assert.equal(moment([2011, 0, 8]).format('DDDo'), '८', '८'); - assert.equal(moment([2011, 0, 9]).format('DDDo'), '९', '९'); - assert.equal(moment([2011, 0, 10]).format('DDDo'), '१०', '१०'); - - assert.equal(moment([2011, 0, 11]).format('DDDo'), '११', '११'); - assert.equal(moment([2011, 0, 12]).format('DDDo'), '१२', '१२'); - assert.equal(moment([2011, 0, 13]).format('DDDo'), '१३', '१३'); - assert.equal(moment([2011, 0, 14]).format('DDDo'), '१४', '१४'); - assert.equal(moment([2011, 0, 15]).format('DDDo'), '१५', '१५'); - assert.equal(moment([2011, 0, 16]).format('DDDo'), '१६', '१६'); - assert.equal(moment([2011, 0, 17]).format('DDDo'), '१७', '१७'); - assert.equal(moment([2011, 0, 18]).format('DDDo'), '१८', '१८'); - assert.equal(moment([2011, 0, 19]).format('DDDo'), '१९', '१९'); - assert.equal(moment([2011, 0, 20]).format('DDDo'), '२०', '२०'); - - assert.equal(moment([2011, 0, 21]).format('DDDo'), '२१', '२१'); - assert.equal(moment([2011, 0, 22]).format('DDDo'), '२२', '२२'); - assert.equal(moment([2011, 0, 23]).format('DDDo'), '२३', '२३'); - assert.equal(moment([2011, 0, 24]).format('DDDo'), '२४', '२४'); - assert.equal(moment([2011, 0, 25]).format('DDDo'), '२५', '२५'); - assert.equal(moment([2011, 0, 26]).format('DDDo'), '२६', '२६'); - assert.equal(moment([2011, 0, 27]).format('DDDo'), '२७', '२७'); - assert.equal(moment([2011, 0, 28]).format('DDDo'), '२८', '२८'); - assert.equal(moment([2011, 0, 29]).format('DDDo'), '२९', '२९'); - assert.equal(moment([2011, 0, 30]).format('DDDo'), '३०', '३०'); - - assert.equal(moment([2011, 0, 31]).format('DDDo'), '३१', '३१'); -}); - -test('format month', function (assert) { - var expected = 'जानेवारी जाने._फेब्रुवारी फेब्रु._मार्च मार्च._एप्रिल एप्रि._मे मे._जून जून._जुलै जुलै._ऑगस्ट ऑग._सप्टेंबर सप्टें._ऑक्टोबर ऑक्टो._नोव्हेंबर नोव्हें._डिसेंबर डिसें.'.split('_'), i; - for (i = 0; i < expected.length; i++) { - assert.equal(moment([2011, i, 1]).format('MMMM MMM'), expected[i], expected[i]); - } -}); - -test('format week', function (assert) { - var expected = 'रविवार रवि र_सोमवार सोम सो_मंगळवार मंगळ मं_बुधवार बुध बु_गुरूवार गुरू गु_शुक्रवार शुक्र शु_शनिवार शनि श'.split('_'), i; - for (i = 0; i < expected.length; i++) { - assert.equal(moment([2011, 0, 2 + i]).format('dddd ddd dd'), expected[i], expected[i]); - } -}); - -test('from', function (assert) { - var start = moment([2007, 1, 28]); - assert.equal(start.from(moment([2007, 1, 28]).add({s: 44}), true), 'काही सेकंद', '44 seconds = a few seconds'); - assert.equal(start.from(moment([2007, 1, 28]).add({s: 45}), true), 'एक मिनिट', '45 seconds = a minute'); - assert.equal(start.from(moment([2007, 1, 28]).add({s: 89}), true), 'एक मिनिट', '89 seconds = a minute'); - assert.equal(start.from(moment([2007, 1, 28]).add({s: 90}), true), '२ मिनिटे', '90 seconds = 2 minutes'); - assert.equal(start.from(moment([2007, 1, 28]).add({m: 44}), true), '४४ मिनिटे', '44 minutes = 44 minutes'); - assert.equal(start.from(moment([2007, 1, 28]).add({m: 45}), true), 'एक तास', '45 minutes = an hour'); - assert.equal(start.from(moment([2007, 1, 28]).add({m: 89}), true), 'एक तास', '89 minutes = an hour'); - assert.equal(start.from(moment([2007, 1, 28]).add({m: 90}), true), '२ तास', '90 minutes = 2 hours'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 5}), true), '५ तास', '5 hours = 5 hours'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 21}), true), '२१ तास', '21 hours = 21 hours'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 22}), true), 'एक दिवस', '22 hours = a day'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 35}), true), 'एक दिवस', '35 hours = a day'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 36}), true), '२ दिवस', '36 hours = 2 days'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 1}), true), 'एक दिवस', '1 day = a day'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 5}), true), '५ दिवस', '5 days = 5 days'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 25}), true), '२५ दिवस', '25 days = 25 days'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 26}), true), 'एक महिना', '26 days = a month'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 30}), true), 'एक महिना', '30 days = a month'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 43}), true), 'एक महिना', '43 days = a month'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 46}), true), '२ महिने', '46 days = 2 months'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 74}), true), '२ महिने', '75 days = 2 months'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 76}), true), '३ महिने', '76 days = 3 months'); - assert.equal(start.from(moment([2007, 1, 28]).add({M: 1}), true), 'एक महिना', '1 month = a month'); - assert.equal(start.from(moment([2007, 1, 28]).add({M: 5}), true), '५ महिने', '5 months = 5 months'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 345}), true), 'एक वर्ष', '345 days = a year'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 548}), true), '२ वर्षे', '548 days = 2 years'); - assert.equal(start.from(moment([2007, 1, 28]).add({y: 1}), true), 'एक वर्ष', '1 year = a year'); - assert.equal(start.from(moment([2007, 1, 28]).add({y: 5}), true), '५ वर्षे', '5 years = 5 years'); -}); - -test('suffix', function (assert) { - assert.equal(moment(30000).from(0), 'काही सेकंदांमध्ये', 'prefix'); - assert.equal(moment(0).from(30000), 'काही सेकंदांपूर्वी', 'suffix'); -}); - -test('now from now', function (assert) { - assert.equal(moment().fromNow(), 'काही सेकंदांपूर्वी', 'now from now should display as in the past'); -}); - -test('fromNow', function (assert) { - assert.equal(moment().add({s: 30}).fromNow(), 'काही सेकंदांमध्ये', 'in a few seconds'); - assert.equal(moment().add({d: 5}).fromNow(), '५ दिवसांमध्ये', 'in 5 days'); -}); - -test('calendar day', function (assert) { - var a = moment().hours(12).minutes(0).seconds(0); - - assert.equal(moment(a).calendar(), 'आज दुपारी १२:०० वाजता', 'today at the same time'); - assert.equal(moment(a).add({m: 25}).calendar(), 'आज दुपारी १२:२५ वाजता', 'Now plus 25 min'); - assert.equal(moment(a).add({h: 3}).calendar(), 'आज दुपारी ३:०० वाजता', 'Now plus 3 hours'); - assert.equal(moment(a).add({d: 1}).calendar(), 'उद्या दुपारी १२:०० वाजता', 'tomorrow at the same time'); - assert.equal(moment(a).subtract({h: 1}).calendar(), 'आज दुपारी ११:०० वाजता', 'Now minus 1 hour'); - assert.equal(moment(a).subtract({d: 1}).calendar(), 'काल दुपारी १२:०० वाजता', 'yesterday at the same time'); -}); - -test('calendar next week', function (assert) { - var i, m; - for (i = 2; i < 7; i++) { - m = moment().add({d: i}); - assert.equal(m.calendar(), m.format('dddd[,] LT'), 'Today + ' + i + ' days current time'); - m.hours(0).minutes(0).seconds(0).milliseconds(0); - assert.equal(m.calendar(), m.format('dddd[,] LT'), 'Today + ' + i + ' days beginning of day'); - m.hours(23).minutes(59).seconds(59).milliseconds(999); - assert.equal(m.calendar(), m.format('dddd[,] LT'), 'Today + ' + i + ' days end of day'); - } -}); - -test('calendar last week', function (assert) { - var i, m; - - for (i = 2; i < 7; i++) { - m = moment().subtract({d: i}); - assert.equal(m.calendar(), m.format('[मागील] dddd[,] LT'), 'Today - ' + i + ' days current time'); - m.hours(0).minutes(0).seconds(0).milliseconds(0); - assert.equal(m.calendar(), m.format('[मागील] dddd[,] LT'), 'Today - ' + i + ' days beginning of day'); - m.hours(23).minutes(59).seconds(59).milliseconds(999); - assert.equal(m.calendar(), m.format('[मागील] dddd[,] LT'), 'Today - ' + i + ' days end of day'); - } -}); - -test('calendar all else', function (assert) { - var weeksAgo = moment().subtract({w: 1}), - weeksFromNow = moment().add({w: 1}); - - assert.equal(weeksAgo.calendar(), weeksAgo.format('L'), '1 week ago'); - assert.equal(weeksFromNow.calendar(), weeksFromNow.format('L'), 'in 1 week'); - - weeksAgo = moment().subtract({w: 2}); - weeksFromNow = moment().add({w: 2}); - - assert.equal(weeksAgo.calendar(), weeksAgo.format('L'), '2 weeks ago'); - assert.equal(weeksFromNow.calendar(), weeksFromNow.format('L'), 'in 2 weeks'); -}); - -test('meridiem', function (assert) { - assert.equal(moment([2011, 2, 23, 2, 30]).format('a'), 'रात्री', 'before dawn'); - assert.equal(moment([2011, 2, 23, 9, 30]).format('a'), 'सकाळी', 'morning'); - assert.equal(moment([2011, 2, 23, 14, 30]).format('a'), 'दुपारी', 'during day'); - assert.equal(moment([2011, 2, 23, 17, 30]).format('a'), 'सायंकाळी', 'evening'); - assert.equal(moment([2011, 2, 23, 19, 30]).format('a'), 'सायंकाळी', 'late evening'); - assert.equal(moment([2011, 2, 23, 21, 20]).format('a'), 'रात्री', 'night'); - - assert.equal(moment([2011, 2, 23, 2, 30]).format('A'), 'रात्री', 'before dawn'); - assert.equal(moment([2011, 2, 23, 9, 30]).format('A'), 'सकाळी', 'morning'); - assert.equal(moment([2011, 2, 23, 14, 30]).format('A'), 'दुपारी', ' during day'); - assert.equal(moment([2011, 2, 23, 17, 30]).format('A'), 'सायंकाळी', 'evening'); - assert.equal(moment([2011, 2, 23, 19, 30]).format('A'), 'सायंकाळी', 'late evening'); - assert.equal(moment([2011, 2, 23, 21, 20]).format('A'), 'रात्री', 'night'); -}); - -test('weeks year starting sunday formatted', function (assert) { - assert.equal(moment([2012, 0, 1]).format('w ww wo'), '१ ०१ १', 'Jan 1 2012 should be week 1'); - assert.equal(moment([2012, 0, 7]).format('w ww wo'), '१ ०१ १', 'Jan 7 2012 should be week 1'); - assert.equal(moment([2012, 0, 8]).format('w ww wo'), '२ ०२ २', 'Jan 8 2012 should be week 2'); - assert.equal(moment([2012, 0, 14]).format('w ww wo'), '२ ०२ २', 'Jan 14 2012 should be week 2'); - assert.equal(moment([2012, 0, 15]).format('w ww wo'), '३ ०३ ३', 'Jan 15 2012 should be week 3'); -}); - -}))); - - -;(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' - && typeof require === 'function' ? factory(require('../../moment')) : - typeof define === 'function' && define.amd ? define(['../../moment'], factory) : - factory(global.moment) -}(this, (function (moment) { 'use strict'; - -function each(array, callback) { - var i; - for (i = 0; i < array.length; i++) { - callback(array[i], i, array); - } -} - -function objectKeys(obj) { - if (Object.keys) { - return Object.keys(obj); - } else { - // IE8 - var res = [], i; - for (i in obj) { - if (obj.hasOwnProperty(i)) { - res.push(i); - } - } - return res; - } -} - -// Pick the first defined of two or three arguments. - -function defineCommonLocaleTests(locale, options) { - test('lenient day of month ordinal parsing', function (assert) { - var i, ordinalStr, testMoment; - for (i = 1; i <= 31; ++i) { - ordinalStr = moment([2014, 0, i]).format('YYYY MM Do'); - testMoment = moment(ordinalStr, 'YYYY MM Do'); - assert.equal(testMoment.year(), 2014, - 'lenient day of month ordinal parsing ' + i + ' year check'); - assert.equal(testMoment.month(), 0, - 'lenient day of month ordinal parsing ' + i + ' month check'); - assert.equal(testMoment.date(), i, - 'lenient day of month ordinal parsing ' + i + ' date check'); - } - }); - - test('lenient day of month ordinal parsing of number', function (assert) { - var i, testMoment; - for (i = 1; i <= 31; ++i) { - testMoment = moment('2014 01 ' + i, 'YYYY MM Do'); - assert.equal(testMoment.year(), 2014, - 'lenient day of month ordinal parsing of number ' + i + ' year check'); - assert.equal(testMoment.month(), 0, - 'lenient day of month ordinal parsing of number ' + i + ' month check'); - assert.equal(testMoment.date(), i, - 'lenient day of month ordinal parsing of number ' + i + ' date check'); - } - }); - - test('strict day of month ordinal parsing', function (assert) { - var i, ordinalStr, testMoment; - for (i = 1; i <= 31; ++i) { - ordinalStr = moment([2014, 0, i]).format('YYYY MM Do'); - testMoment = moment(ordinalStr, 'YYYY MM Do', true); - assert.ok(testMoment.isValid(), 'strict day of month ordinal parsing ' + i); - } - }); - - test('meridiem invariant', function (assert) { - var h, m, t1, t2; - for (h = 0; h < 24; ++h) { - for (m = 0; m < 60; m += 15) { - t1 = moment.utc([2000, 0, 1, h, m]); - t2 = moment.utc(t1.format('A h:mm'), 'A h:mm'); - assert.equal(t2.format('HH:mm'), t1.format('HH:mm'), - 'meridiem at ' + t1.format('HH:mm')); - } - } - }); - - test('date format correctness', function (assert) { - var data, tokens; - data = moment.localeData()._longDateFormat; - tokens = objectKeys(data); - each(tokens, function (srchToken) { - // Check each format string to make sure it does not contain any - // tokens that need to be expanded. - each(tokens, function (baseToken) { - // strip escaped sequences - var format = data[baseToken].replace(/(\[[^\]]*\])/g, ''); - assert.equal(false, !!~format.indexOf(srchToken), - 'contains ' + srchToken + ' in ' + baseToken); - }); - }); - }); - - test('month parsing correctness', function (assert) { - var i, m; - - if (locale === 'tr') { - // I can't fix it :( - expect(0); - return; - } - function tester(format) { - var r; - r = moment(m.format(format), format); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format); - r = moment(m.format(format).toLocaleUpperCase(), format); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' upper'); - r = moment(m.format(format).toLocaleLowerCase(), format); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' lower'); - - r = moment(m.format(format), format, true); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' strict'); - r = moment(m.format(format).toLocaleUpperCase(), format, true); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' upper strict'); - r = moment(m.format(format).toLocaleLowerCase(), format, true); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' lower strict'); - } - - for (i = 0; i < 12; ++i) { - m = moment([2015, i, 15, 18]); - tester('MMM'); - tester('MMM.'); - tester('MMMM'); - tester('MMMM.'); - } - }); - - test('weekday parsing correctness', function (assert) { - var i, m; - - if (locale === 'tr' || locale === 'az' || locale === 'ro') { - // tr, az: There is a lower-case letter (ı), that converted to - // upper then lower changes to i - // ro: there is the letter ț which behaves weird under IE8 - expect(0); - return; - } - function tester(format) { - var r, baseMsg = 'weekday ' + m.weekday() + ' fmt ' + format + ' ' + m.toISOString(); - r = moment(m.format(format), format); - assert.equal(r.weekday(), m.weekday(), baseMsg); - r = moment(m.format(format).toLocaleUpperCase(), format); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' upper'); - r = moment(m.format(format).toLocaleLowerCase(), format); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' lower'); - - r = moment(m.format(format), format, true); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' strict'); - r = moment(m.format(format).toLocaleUpperCase(), format, true); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' upper strict'); - r = moment(m.format(format).toLocaleLowerCase(), format, true); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' lower strict'); - } - - for (i = 0; i < 7; ++i) { - m = moment.utc([2015, 0, i + 1, 18]); - tester('dd'); - tester('ddd'); - tester('dddd'); - } - }); - - test('valid localeData', function (assert) { - assert.equal(moment().localeData().months().length, 12, 'months should return 12 months'); - assert.equal(moment().localeData().monthsShort().length, 12, 'monthsShort should return 12 months'); - assert.equal(moment().localeData().weekdays().length, 7, 'weekdays should return 7 days'); - assert.equal(moment().localeData().weekdaysShort().length, 7, 'weekdaysShort should return 7 days'); - assert.equal(moment().localeData().weekdaysMin().length, 7, 'monthsShort should return 7 days'); - }); -} - -function setupDeprecationHandler(test, moment$$1, scope) { - test._expectedDeprecations = null; - test._observedDeprecations = null; - test._oldSupress = moment$$1.suppressDeprecationWarnings; - moment$$1.suppressDeprecationWarnings = true; - test.expectedDeprecations = function () { - test._expectedDeprecations = arguments; - test._observedDeprecations = []; - }; - moment$$1.deprecationHandler = function (name, msg) { - var deprecationId = matchedDeprecation(name, msg, test._expectedDeprecations); - if (deprecationId === -1) { - throw new Error('Unexpected deprecation thrown name=' + - name + ' msg=' + msg); - } - test._observedDeprecations[deprecationId] = 1; - }; -} - -function teardownDeprecationHandler(test, moment$$1, scope) { - moment$$1.suppressDeprecationWarnings = test._oldSupress; - - if (test._expectedDeprecations != null) { - var missedDeprecations = []; - each(test._expectedDeprecations, function (deprecationPattern, id) { - if (test._observedDeprecations[id] !== 1) { - missedDeprecations.push(deprecationPattern); - } - }); - if (missedDeprecations.length !== 0) { - throw new Error('Expected deprecation warnings did not happen: ' + - missedDeprecations.join(' ')); - } - } -} - -function matchedDeprecation(name, msg, deprecations) { - if (deprecations == null) { - return -1; - } - for (var i = 0; i < deprecations.length; ++i) { - if (name != null && name === deprecations[i]) { - return i; - } - if (msg != null && msg.substring(0, deprecations[i].length) === deprecations[i]) { - return i; - } - } - return -1; -} - -/*global QUnit:false*/ - -var test = QUnit.test; - -var expect = QUnit.expect; - - - -function localeModule (name, lifecycle) { - QUnit.module('locale:' + name, { - setup : function () { - moment.locale(name); - moment.createFromInputFallback = function (config) { - throw new Error('input not handled by moment: ' + config._i); - }; - setupDeprecationHandler(test, moment, 'locale'); - if (lifecycle && lifecycle.setup) { - lifecycle.setup(); - } - }, - teardown : function () { - moment.locale('en'); - teardownDeprecationHandler(test, moment, 'locale'); - if (lifecycle && lifecycle.teardown) { - lifecycle.teardown(); - } - } - }); - defineCommonLocaleTests(name, -1, -1); -} - -localeModule('ms-my'); - -test('parse', function (assert) { - var i, - tests = 'Januari Jan_Februari Feb_Mac Mac_April Apr_Mei Mei_Jun Jun_Julai Jul_Ogos Ogs_September Sep_Oktober Okt_November Nov_Disember Dis'.split('_'); - - function equalTest(input, mmm, i) { - assert.equal(moment(input, mmm).month(), i, input + ' sepatutnya bulan ' + (i + 1)); - } - - for (i = 0; i < 12; i++) { - tests[i] = tests[i].split(' '); - equalTest(tests[i][0], 'MMM', i); - equalTest(tests[i][1], 'MMM', i); - equalTest(tests[i][0], 'MMMM', i); - equalTest(tests[i][1], 'MMMM', i); - equalTest(tests[i][0].toLocaleLowerCase(), 'MMMM', i); - equalTest(tests[i][1].toLocaleLowerCase(), 'MMMM', i); - equalTest(tests[i][0].toLocaleUpperCase(), 'MMMM', i); - equalTest(tests[i][1].toLocaleUpperCase(), 'MMMM', i); - } -}); - -test('format', function (assert) { - var a = [ - ['dddd, MMMM Do YYYY, h:mm:ss a', 'Ahad, Februari 14 2010, 3:25:50 petang'], - ['ddd, hA', 'Ahd, 3petang'], - ['M Mo MM MMMM MMM', '2 2 02 Februari Feb'], - ['YYYY YY', '2010 10'], - ['D Do DD', '14 14 14'], - ['d do dddd ddd dd', '0 0 Ahad Ahd Ah'], - ['DDD DDDo DDDD', '45 45 045'], - ['w wo ww', '7 7 07'], - ['h hh', '3 03'], - ['H HH', '15 15'], - ['m mm', '25 25'], - ['s ss', '50 50'], - ['a A', 'petang petang'], - ['[hari] [ke] DDDo [tahun] ini', 'hari ke 45 tahun ini'], - ['LTS', '15.25.50'], - ['L', '14/02/2010'], - ['LL', '14 Februari 2010'], - ['LLL', '14 Februari 2010 pukul 15.25'], - ['LLLL', 'Ahad, 14 Februari 2010 pukul 15.25'], - ['l', '14/2/2010'], - ['ll', '14 Feb 2010'], - ['lll', '14 Feb 2010 pukul 15.25'], - ['llll', 'Ahd, 14 Feb 2010 pukul 15.25'] - ], - b = moment(new Date(2010, 1, 14, 15, 25, 50, 125)), - i; - - for (i = 0; i < a.length; i++) { - assert.equal(b.format(a[i][0]), a[i][1], a[i][0] + ' ---> ' + a[i][1]); - } -}); - -test('format ordinal', function (assert) { - assert.equal(moment([2011, 0, 1]).format('DDDo'), '1', '1'); - assert.equal(moment([2011, 0, 2]).format('DDDo'), '2', '2'); - assert.equal(moment([2011, 0, 3]).format('DDDo'), '3', '3'); - assert.equal(moment([2011, 0, 4]).format('DDDo'), '4', '4'); - assert.equal(moment([2011, 0, 5]).format('DDDo'), '5', '5'); - assert.equal(moment([2011, 0, 6]).format('DDDo'), '6', '6'); - assert.equal(moment([2011, 0, 7]).format('DDDo'), '7', '7'); - assert.equal(moment([2011, 0, 8]).format('DDDo'), '8', '8'); - assert.equal(moment([2011, 0, 9]).format('DDDo'), '9', '9'); - assert.equal(moment([2011, 0, 10]).format('DDDo'), '10', '10'); - - assert.equal(moment([2011, 0, 11]).format('DDDo'), '11', '11'); - assert.equal(moment([2011, 0, 12]).format('DDDo'), '12', '12'); - assert.equal(moment([2011, 0, 13]).format('DDDo'), '13', '13'); - assert.equal(moment([2011, 0, 14]).format('DDDo'), '14', '14'); - assert.equal(moment([2011, 0, 15]).format('DDDo'), '15', '15'); - assert.equal(moment([2011, 0, 16]).format('DDDo'), '16', '16'); - assert.equal(moment([2011, 0, 17]).format('DDDo'), '17', '17'); - assert.equal(moment([2011, 0, 18]).format('DDDo'), '18', '18'); - assert.equal(moment([2011, 0, 19]).format('DDDo'), '19', '19'); - assert.equal(moment([2011, 0, 20]).format('DDDo'), '20', '20'); - - assert.equal(moment([2011, 0, 21]).format('DDDo'), '21', '21'); - assert.equal(moment([2011, 0, 22]).format('DDDo'), '22', '22'); - assert.equal(moment([2011, 0, 23]).format('DDDo'), '23', '23'); - assert.equal(moment([2011, 0, 24]).format('DDDo'), '24', '24'); - assert.equal(moment([2011, 0, 25]).format('DDDo'), '25', '25'); - assert.equal(moment([2011, 0, 26]).format('DDDo'), '26', '26'); - assert.equal(moment([2011, 0, 27]).format('DDDo'), '27', '27'); - assert.equal(moment([2011, 0, 28]).format('DDDo'), '28', '28'); - assert.equal(moment([2011, 0, 29]).format('DDDo'), '29', '29'); - assert.equal(moment([2011, 0, 30]).format('DDDo'), '30', '30'); - - assert.equal(moment([2011, 0, 31]).format('DDDo'), '31', '31'); -}); - -test('format month', function (assert) { - var i, - expected = 'Januari Jan_Februari Feb_Mac Mac_April Apr_Mei Mei_Jun Jun_Julai Jul_Ogos Ogs_September Sep_Oktober Okt_November Nov_Disember Dis'.split('_'); - - for (i = 0; i < expected.length; i++) { - assert.equal(moment([2011, i, 1]).format('MMMM MMM'), expected[i], expected[i]); - } -}); - -test('format week', function (assert) { - var i, - expected = 'Ahad Ahd Ah_Isnin Isn Is_Selasa Sel Sl_Rabu Rab Rb_Khamis Kha Km_Jumaat Jum Jm_Sabtu Sab Sb'.split('_'); - - for (i = 0; i < expected.length; i++) { - assert.equal(moment([2011, 0, 2 + i]).format('dddd ddd dd'), expected[i], expected[i]); - } -}); - -test('from', function (assert) { - var start = moment([2007, 1, 28]); - - assert.equal(start.from(moment([2007, 1, 28]).add({s: 44}), true), 'beberapa saat', '44 saat = beberapa saat'); - assert.equal(start.from(moment([2007, 1, 28]).add({s: 45}), true), 'seminit', '45 saat = seminit'); - assert.equal(start.from(moment([2007, 1, 28]).add({s: 89}), true), 'seminit', '89 saat = seminit'); - assert.equal(start.from(moment([2007, 1, 28]).add({s: 90}), true), '2 minit', '90 saat = 2 minit'); - assert.equal(start.from(moment([2007, 1, 28]).add({m: 44}), true), '44 minit', '44 minit = 44 minit'); - assert.equal(start.from(moment([2007, 1, 28]).add({m: 45}), true), 'sejam', '45 minit = sejam'); - assert.equal(start.from(moment([2007, 1, 28]).add({m: 89}), true), 'sejam', '89 minit = sejam'); - assert.equal(start.from(moment([2007, 1, 28]).add({m: 90}), true), '2 jam', '90 minit = 2 jam'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 5}), true), '5 jam', '5 jam = 5 jam'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 21}), true), '21 jam', '21 jam = 21 jam'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 22}), true), 'sehari', '22 jam = sehari'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 35}), true), 'sehari', '35 jam = sehari'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 36}), true), '2 hari', '36 jam = 2 hari'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 1}), true), 'sehari', '1 hari = sehari'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 5}), true), '5 hari', '5 hari = 5 hari'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 25}), true), '25 hari', '25 hari = 25 hari'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 26}), true), 'sebulan', '26 hari = sebulan'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 30}), true), 'sebulan', '30 hari = sebulan'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 43}), true), 'sebulan', '45 hari = sebulan'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 46}), true), '2 bulan', '46 hari = 2 bulan'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 74}), true), '2 bulan', '75 hari = 2 bulan'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 76}), true), '3 bulan', '76 hari = 3 bulan'); - assert.equal(start.from(moment([2007, 1, 28]).add({M: 1}), true), 'sebulan', '1 bulan = sebulan'); - assert.equal(start.from(moment([2007, 1, 28]).add({M: 5}), true), '5 bulan', '5 bulan = 5 bulan'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 345}), true), 'setahun', '345 hari = setahun'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 548}), true), '2 tahun', '548 hari = 2 tahun'); - assert.equal(start.from(moment([2007, 1, 28]).add({y: 1}), true), 'setahun', '1 tahun = setahun'); - assert.equal(start.from(moment([2007, 1, 28]).add({y: 5}), true), '5 tahun', '5 tahun = 5 tahun'); -}); - -test('suffix', function (assert) { - assert.equal(moment(30000).from(0), 'dalam beberapa saat', 'prefix'); - assert.equal(moment(0).from(30000), 'beberapa saat yang lepas', 'suffix'); -}); - -test('now from now', function (assert) { - assert.equal(moment().fromNow(), 'beberapa saat yang lepas', 'waktu sekarang dari sekarang sepatutnya menunjukkan sebagai telah lepas'); -}); - -test('fromNow', function (assert) { - assert.equal(moment().add({s: 30}).fromNow(), 'dalam beberapa saat', 'dalam beberapa saat'); - assert.equal(moment().add({d: 5}).fromNow(), 'dalam 5 hari', 'dalam 5 hari'); -}); - -test('calendar day', function (assert) { - var a = moment().hours(12).minutes(0).seconds(0); - - assert.equal(moment(a).calendar(), 'Hari ini pukul 12.00', 'hari ini pada waktu yang sama'); - assert.equal(moment(a).add({m: 25}).calendar(), 'Hari ini pukul 12.25', 'Sekarang tambah 25 minit'); - assert.equal(moment(a).add({h: 1}).calendar(), 'Hari ini pukul 13.00', 'Sekarang tambah 1 jam'); - assert.equal(moment(a).add({d: 1}).calendar(), 'Esok pukul 12.00', 'esok pada waktu yang sama'); - assert.equal(moment(a).subtract({h: 1}).calendar(), 'Hari ini pukul 11.00', 'Sekarang tolak 1 jam'); - assert.equal(moment(a).subtract({d: 1}).calendar(), 'Kelmarin pukul 12.00', 'kelmarin pada waktu yang sama'); -}); - -test('calendar next week', function (assert) { - var i, m; - for (i = 2; i < 7; i++) { - m = moment().add({d: i}); - assert.equal(m.calendar(), m.format('dddd [pukul] LT'), 'Hari ini + ' + i + ' hari waktu sekarang'); - m.hours(0).minutes(0).seconds(0).milliseconds(0); - assert.equal(m.calendar(), m.format('dddd [pukul] LT'), 'Hari ini + ' + i + ' hari permulaan hari'); - m.hours(23).minutes(59).seconds(59).milliseconds(999); - assert.equal(m.calendar(), m.format('dddd [pukul] LT'), 'Hari ini + ' + i + ' hari tamat hari'); - } -}); - -test('calendar last week', function (assert) { - var i, m; - for (i = 2; i < 7; i++) { - m = moment().subtract({d: i}); - assert.equal(m.calendar(), m.format('dddd [lepas] [pukul] LT'), 'Hari ini - ' + i + ' hari waktu sekarang'); - m.hours(0).minutes(0).seconds(0).milliseconds(0); - assert.equal(m.calendar(), m.format('dddd [lepas] [pukul] LT'), 'Hari ini - ' + i + ' hari permulaan hari'); - m.hours(23).minutes(59).seconds(59).milliseconds(999); - assert.equal(m.calendar(), m.format('dddd [lepas] [pukul] LT'), 'Hari ini - ' + i + ' hari tamat hari'); - } -}); - -test('calendar all else', function (assert) { - var weeksAgo = moment().subtract({w: 1}), - weeksFromNow = moment().add({w: 1}); - - assert.equal(weeksAgo.calendar(), weeksAgo.format('L'), '1 minggu lepas'); - assert.equal(weeksFromNow.calendar(), weeksFromNow.format('L'), 'dalam 1 minggu'); - - weeksAgo = moment().subtract({w: 2}); - weeksFromNow = moment().add({w: 2}); - - assert.equal(weeksAgo.calendar(), weeksAgo.format('L'), '2 minggu lepas'); - assert.equal(weeksFromNow.calendar(), weeksFromNow.format('L'), 'dalam 2 minggu'); -}); - -test('weeks year starting sunday format', function (assert) { - assert.equal(moment([2012, 0, 1]).format('w ww wo'), '1 01 1', 'Jan 1 2012 sepatutnya minggu 1'); - assert.equal(moment([2012, 0, 7]).format('w ww wo'), '2 02 2', 'Jan 7 2012 sepatutnya minggu 2'); - assert.equal(moment([2012, 0, 8]).format('w ww wo'), '2 02 2', 'Jan 8 2012 sepatutnya minggu 2'); - assert.equal(moment([2012, 0, 14]).format('w ww wo'), '3 03 3', 'Jan 14 2012 sepatutnya minggu 3'); - assert.equal(moment([2012, 0, 15]).format('w ww wo'), '3 03 3', 'Jan 15 2012 sepatutnya minggu 3'); -}); - -}))); - - -;(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' - && typeof require === 'function' ? factory(require('../../moment')) : - typeof define === 'function' && define.amd ? define(['../../moment'], factory) : - factory(global.moment) -}(this, (function (moment) { 'use strict'; - -function each(array, callback) { - var i; - for (i = 0; i < array.length; i++) { - callback(array[i], i, array); - } -} - -function objectKeys(obj) { - if (Object.keys) { - return Object.keys(obj); - } else { - // IE8 - var res = [], i; - for (i in obj) { - if (obj.hasOwnProperty(i)) { - res.push(i); - } - } - return res; - } -} - -// Pick the first defined of two or three arguments. - -function defineCommonLocaleTests(locale, options) { - test('lenient day of month ordinal parsing', function (assert) { - var i, ordinalStr, testMoment; - for (i = 1; i <= 31; ++i) { - ordinalStr = moment([2014, 0, i]).format('YYYY MM Do'); - testMoment = moment(ordinalStr, 'YYYY MM Do'); - assert.equal(testMoment.year(), 2014, - 'lenient day of month ordinal parsing ' + i + ' year check'); - assert.equal(testMoment.month(), 0, - 'lenient day of month ordinal parsing ' + i + ' month check'); - assert.equal(testMoment.date(), i, - 'lenient day of month ordinal parsing ' + i + ' date check'); - } - }); - - test('lenient day of month ordinal parsing of number', function (assert) { - var i, testMoment; - for (i = 1; i <= 31; ++i) { - testMoment = moment('2014 01 ' + i, 'YYYY MM Do'); - assert.equal(testMoment.year(), 2014, - 'lenient day of month ordinal parsing of number ' + i + ' year check'); - assert.equal(testMoment.month(), 0, - 'lenient day of month ordinal parsing of number ' + i + ' month check'); - assert.equal(testMoment.date(), i, - 'lenient day of month ordinal parsing of number ' + i + ' date check'); - } - }); - - test('strict day of month ordinal parsing', function (assert) { - var i, ordinalStr, testMoment; - for (i = 1; i <= 31; ++i) { - ordinalStr = moment([2014, 0, i]).format('YYYY MM Do'); - testMoment = moment(ordinalStr, 'YYYY MM Do', true); - assert.ok(testMoment.isValid(), 'strict day of month ordinal parsing ' + i); - } - }); - - test('meridiem invariant', function (assert) { - var h, m, t1, t2; - for (h = 0; h < 24; ++h) { - for (m = 0; m < 60; m += 15) { - t1 = moment.utc([2000, 0, 1, h, m]); - t2 = moment.utc(t1.format('A h:mm'), 'A h:mm'); - assert.equal(t2.format('HH:mm'), t1.format('HH:mm'), - 'meridiem at ' + t1.format('HH:mm')); - } - } - }); - - test('date format correctness', function (assert) { - var data, tokens; - data = moment.localeData()._longDateFormat; - tokens = objectKeys(data); - each(tokens, function (srchToken) { - // Check each format string to make sure it does not contain any - // tokens that need to be expanded. - each(tokens, function (baseToken) { - // strip escaped sequences - var format = data[baseToken].replace(/(\[[^\]]*\])/g, ''); - assert.equal(false, !!~format.indexOf(srchToken), - 'contains ' + srchToken + ' in ' + baseToken); - }); - }); - }); - - test('month parsing correctness', function (assert) { - var i, m; - - if (locale === 'tr') { - // I can't fix it :( - expect(0); - return; - } - function tester(format) { - var r; - r = moment(m.format(format), format); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format); - r = moment(m.format(format).toLocaleUpperCase(), format); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' upper'); - r = moment(m.format(format).toLocaleLowerCase(), format); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' lower'); - - r = moment(m.format(format), format, true); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' strict'); - r = moment(m.format(format).toLocaleUpperCase(), format, true); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' upper strict'); - r = moment(m.format(format).toLocaleLowerCase(), format, true); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' lower strict'); - } - - for (i = 0; i < 12; ++i) { - m = moment([2015, i, 15, 18]); - tester('MMM'); - tester('MMM.'); - tester('MMMM'); - tester('MMMM.'); - } - }); - - test('weekday parsing correctness', function (assert) { - var i, m; - - if (locale === 'tr' || locale === 'az' || locale === 'ro') { - // tr, az: There is a lower-case letter (ı), that converted to - // upper then lower changes to i - // ro: there is the letter ț which behaves weird under IE8 - expect(0); - return; - } - function tester(format) { - var r, baseMsg = 'weekday ' + m.weekday() + ' fmt ' + format + ' ' + m.toISOString(); - r = moment(m.format(format), format); - assert.equal(r.weekday(), m.weekday(), baseMsg); - r = moment(m.format(format).toLocaleUpperCase(), format); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' upper'); - r = moment(m.format(format).toLocaleLowerCase(), format); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' lower'); - - r = moment(m.format(format), format, true); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' strict'); - r = moment(m.format(format).toLocaleUpperCase(), format, true); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' upper strict'); - r = moment(m.format(format).toLocaleLowerCase(), format, true); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' lower strict'); - } - - for (i = 0; i < 7; ++i) { - m = moment.utc([2015, 0, i + 1, 18]); - tester('dd'); - tester('ddd'); - tester('dddd'); - } - }); - - test('valid localeData', function (assert) { - assert.equal(moment().localeData().months().length, 12, 'months should return 12 months'); - assert.equal(moment().localeData().monthsShort().length, 12, 'monthsShort should return 12 months'); - assert.equal(moment().localeData().weekdays().length, 7, 'weekdays should return 7 days'); - assert.equal(moment().localeData().weekdaysShort().length, 7, 'weekdaysShort should return 7 days'); - assert.equal(moment().localeData().weekdaysMin().length, 7, 'monthsShort should return 7 days'); - }); -} - -function setupDeprecationHandler(test, moment$$1, scope) { - test._expectedDeprecations = null; - test._observedDeprecations = null; - test._oldSupress = moment$$1.suppressDeprecationWarnings; - moment$$1.suppressDeprecationWarnings = true; - test.expectedDeprecations = function () { - test._expectedDeprecations = arguments; - test._observedDeprecations = []; - }; - moment$$1.deprecationHandler = function (name, msg) { - var deprecationId = matchedDeprecation(name, msg, test._expectedDeprecations); - if (deprecationId === -1) { - throw new Error('Unexpected deprecation thrown name=' + - name + ' msg=' + msg); - } - test._observedDeprecations[deprecationId] = 1; - }; -} - -function teardownDeprecationHandler(test, moment$$1, scope) { - moment$$1.suppressDeprecationWarnings = test._oldSupress; - - if (test._expectedDeprecations != null) { - var missedDeprecations = []; - each(test._expectedDeprecations, function (deprecationPattern, id) { - if (test._observedDeprecations[id] !== 1) { - missedDeprecations.push(deprecationPattern); - } - }); - if (missedDeprecations.length !== 0) { - throw new Error('Expected deprecation warnings did not happen: ' + - missedDeprecations.join(' ')); - } - } -} - -function matchedDeprecation(name, msg, deprecations) { - if (deprecations == null) { - return -1; - } - for (var i = 0; i < deprecations.length; ++i) { - if (name != null && name === deprecations[i]) { - return i; - } - if (msg != null && msg.substring(0, deprecations[i].length) === deprecations[i]) { - return i; - } - } - return -1; -} - -/*global QUnit:false*/ - -var test = QUnit.test; - -var expect = QUnit.expect; - - - -function localeModule (name, lifecycle) { - QUnit.module('locale:' + name, { - setup : function () { - moment.locale(name); - moment.createFromInputFallback = function (config) { - throw new Error('input not handled by moment: ' + config._i); - }; - setupDeprecationHandler(test, moment, 'locale'); - if (lifecycle && lifecycle.setup) { - lifecycle.setup(); - } - }, - teardown : function () { - moment.locale('en'); - teardownDeprecationHandler(test, moment, 'locale'); - if (lifecycle && lifecycle.teardown) { - lifecycle.teardown(); - } - } - }); - defineCommonLocaleTests(name, -1, -1); -} - -localeModule('ms'); - -test('parse', function (assert) { - var i, - tests = 'Januari Jan_Februari Feb_Mac Mac_April Apr_Mei Mei_Jun Jun_Julai Jul_Ogos Ogs_September Sep_Oktober Okt_November Nov_Disember Dis'.split('_'); - - function equalTest(input, mmm, i) { - assert.equal(moment(input, mmm).month(), i, input + ' sepatutnya bulan ' + (i + 1)); - } - - for (i = 0; i < 12; i++) { - tests[i] = tests[i].split(' '); - equalTest(tests[i][0], 'MMM', i); - equalTest(tests[i][1], 'MMM', i); - equalTest(tests[i][0], 'MMMM', i); - equalTest(tests[i][1], 'MMMM', i); - equalTest(tests[i][0].toLocaleLowerCase(), 'MMMM', i); - equalTest(tests[i][1].toLocaleLowerCase(), 'MMMM', i); - equalTest(tests[i][0].toLocaleUpperCase(), 'MMMM', i); - equalTest(tests[i][1].toLocaleUpperCase(), 'MMMM', i); - } -}); - -test('format', function (assert) { - var a = [ - ['dddd, MMMM Do YYYY, h:mm:ss a', 'Ahad, Februari 14 2010, 3:25:50 petang'], - ['ddd, hA', 'Ahd, 3petang'], - ['M Mo MM MMMM MMM', '2 2 02 Februari Feb'], - ['YYYY YY', '2010 10'], - ['D Do DD', '14 14 14'], - ['d do dddd ddd dd', '0 0 Ahad Ahd Ah'], - ['DDD DDDo DDDD', '45 45 045'], - ['w wo ww', '7 7 07'], - ['h hh', '3 03'], - ['H HH', '15 15'], - ['m mm', '25 25'], - ['s ss', '50 50'], - ['a A', 'petang petang'], - ['[hari] [ke] DDDo [tahun] ini', 'hari ke 45 tahun ini'], - ['LTS', '15.25.50'], - ['L', '14/02/2010'], - ['LL', '14 Februari 2010'], - ['LLL', '14 Februari 2010 pukul 15.25'], - ['LLLL', 'Ahad, 14 Februari 2010 pukul 15.25'], - ['l', '14/2/2010'], - ['ll', '14 Feb 2010'], - ['lll', '14 Feb 2010 pukul 15.25'], - ['llll', 'Ahd, 14 Feb 2010 pukul 15.25'] - ], - b = moment(new Date(2010, 1, 14, 15, 25, 50, 125)), - i; - - for (i = 0; i < a.length; i++) { - assert.equal(b.format(a[i][0]), a[i][1], a[i][0] + ' ---> ' + a[i][1]); - } -}); - -test('format ordinal', function (assert) { - assert.equal(moment([2011, 0, 1]).format('DDDo'), '1', '1'); - assert.equal(moment([2011, 0, 2]).format('DDDo'), '2', '2'); - assert.equal(moment([2011, 0, 3]).format('DDDo'), '3', '3'); - assert.equal(moment([2011, 0, 4]).format('DDDo'), '4', '4'); - assert.equal(moment([2011, 0, 5]).format('DDDo'), '5', '5'); - assert.equal(moment([2011, 0, 6]).format('DDDo'), '6', '6'); - assert.equal(moment([2011, 0, 7]).format('DDDo'), '7', '7'); - assert.equal(moment([2011, 0, 8]).format('DDDo'), '8', '8'); - assert.equal(moment([2011, 0, 9]).format('DDDo'), '9', '9'); - assert.equal(moment([2011, 0, 10]).format('DDDo'), '10', '10'); - - assert.equal(moment([2011, 0, 11]).format('DDDo'), '11', '11'); - assert.equal(moment([2011, 0, 12]).format('DDDo'), '12', '12'); - assert.equal(moment([2011, 0, 13]).format('DDDo'), '13', '13'); - assert.equal(moment([2011, 0, 14]).format('DDDo'), '14', '14'); - assert.equal(moment([2011, 0, 15]).format('DDDo'), '15', '15'); - assert.equal(moment([2011, 0, 16]).format('DDDo'), '16', '16'); - assert.equal(moment([2011, 0, 17]).format('DDDo'), '17', '17'); - assert.equal(moment([2011, 0, 18]).format('DDDo'), '18', '18'); - assert.equal(moment([2011, 0, 19]).format('DDDo'), '19', '19'); - assert.equal(moment([2011, 0, 20]).format('DDDo'), '20', '20'); - - assert.equal(moment([2011, 0, 21]).format('DDDo'), '21', '21'); - assert.equal(moment([2011, 0, 22]).format('DDDo'), '22', '22'); - assert.equal(moment([2011, 0, 23]).format('DDDo'), '23', '23'); - assert.equal(moment([2011, 0, 24]).format('DDDo'), '24', '24'); - assert.equal(moment([2011, 0, 25]).format('DDDo'), '25', '25'); - assert.equal(moment([2011, 0, 26]).format('DDDo'), '26', '26'); - assert.equal(moment([2011, 0, 27]).format('DDDo'), '27', '27'); - assert.equal(moment([2011, 0, 28]).format('DDDo'), '28', '28'); - assert.equal(moment([2011, 0, 29]).format('DDDo'), '29', '29'); - assert.equal(moment([2011, 0, 30]).format('DDDo'), '30', '30'); - - assert.equal(moment([2011, 0, 31]).format('DDDo'), '31', '31'); -}); - -test('format month', function (assert) { - var i, - expected = 'Januari Jan_Februari Feb_Mac Mac_April Apr_Mei Mei_Jun Jun_Julai Jul_Ogos Ogs_September Sep_Oktober Okt_November Nov_Disember Dis'.split('_'); - - for (i = 0; i < expected.length; i++) { - assert.equal(moment([2011, i, 1]).format('MMMM MMM'), expected[i], expected[i]); - } -}); - -test('format week', function (assert) { - var i, - expected = 'Ahad Ahd Ah_Isnin Isn Is_Selasa Sel Sl_Rabu Rab Rb_Khamis Kha Km_Jumaat Jum Jm_Sabtu Sab Sb'.split('_'); - - for (i = 0; i < expected.length; i++) { - assert.equal(moment([2011, 0, 2 + i]).format('dddd ddd dd'), expected[i], expected[i]); - } -}); - -test('from', function (assert) { - var start = moment([2007, 1, 28]); - - assert.equal(start.from(moment([2007, 1, 28]).add({s: 44}), true), 'beberapa saat', '44 saat = beberapa saat'); - assert.equal(start.from(moment([2007, 1, 28]).add({s: 45}), true), 'seminit', '45 saat = seminit'); - assert.equal(start.from(moment([2007, 1, 28]).add({s: 89}), true), 'seminit', '89 saat = seminit'); - assert.equal(start.from(moment([2007, 1, 28]).add({s: 90}), true), '2 minit', '90 saat = 2 minit'); - assert.equal(start.from(moment([2007, 1, 28]).add({m: 44}), true), '44 minit', '44 minit = 44 minit'); - assert.equal(start.from(moment([2007, 1, 28]).add({m: 45}), true), 'sejam', '45 minit = sejam'); - assert.equal(start.from(moment([2007, 1, 28]).add({m: 89}), true), 'sejam', '89 minit = sejam'); - assert.equal(start.from(moment([2007, 1, 28]).add({m: 90}), true), '2 jam', '90 minit = 2 jam'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 5}), true), '5 jam', '5 jam = 5 jam'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 21}), true), '21 jam', '21 jam = 21 jam'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 22}), true), 'sehari', '22 jam = sehari'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 35}), true), 'sehari', '35 jam = sehari'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 36}), true), '2 hari', '36 jam = 2 hari'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 1}), true), 'sehari', '1 hari = sehari'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 5}), true), '5 hari', '5 hari = 5 hari'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 25}), true), '25 hari', '25 hari = 25 hari'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 26}), true), 'sebulan', '26 hari = sebulan'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 30}), true), 'sebulan', '30 hari = sebulan'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 43}), true), 'sebulan', '45 hari = sebulan'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 46}), true), '2 bulan', '46 hari = 2 bulan'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 74}), true), '2 bulan', '75 hari = 2 bulan'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 76}), true), '3 bulan', '76 hari = 3 bulan'); - assert.equal(start.from(moment([2007, 1, 28]).add({M: 1}), true), 'sebulan', '1 bulan = sebulan'); - assert.equal(start.from(moment([2007, 1, 28]).add({M: 5}), true), '5 bulan', '5 bulan = 5 bulan'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 345}), true), 'setahun', '345 hari = setahun'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 548}), true), '2 tahun', '548 hari = 2 tahun'); - assert.equal(start.from(moment([2007, 1, 28]).add({y: 1}), true), 'setahun', '1 tahun = setahun'); - assert.equal(start.from(moment([2007, 1, 28]).add({y: 5}), true), '5 tahun', '5 tahun = 5 tahun'); -}); - -test('suffix', function (assert) { - assert.equal(moment(30000).from(0), 'dalam beberapa saat', 'prefix'); - assert.equal(moment(0).from(30000), 'beberapa saat yang lepas', 'suffix'); -}); - -test('now from now', function (assert) { - assert.equal(moment().fromNow(), 'beberapa saat yang lepas', 'waktu sekarang dari sekarang sepatutnya menunjukkan sebagai telah lepas'); -}); - -test('fromNow', function (assert) { - assert.equal(moment().add({s: 30}).fromNow(), 'dalam beberapa saat', 'dalam beberapa saat'); - assert.equal(moment().add({d: 5}).fromNow(), 'dalam 5 hari', 'dalam 5 hari'); -}); - -test('calendar day', function (assert) { - var a = moment().hours(12).minutes(0).seconds(0); - - assert.equal(moment(a).calendar(), 'Hari ini pukul 12.00', 'hari ini pada waktu yang sama'); - assert.equal(moment(a).add({m: 25}).calendar(), 'Hari ini pukul 12.25', 'Sekarang tambah 25 minit'); - assert.equal(moment(a).add({h: 1}).calendar(), 'Hari ini pukul 13.00', 'Sekarang tambah 1 jam'); - assert.equal(moment(a).add({d: 1}).calendar(), 'Esok pukul 12.00', 'esok pada waktu yang sama'); - assert.equal(moment(a).subtract({h: 1}).calendar(), 'Hari ini pukul 11.00', 'Sekarang tolak 1 jam'); - assert.equal(moment(a).subtract({d: 1}).calendar(), 'Kelmarin pukul 12.00', 'kelmarin pada waktu yang sama'); -}); - -test('calendar next week', function (assert) { - var i, m; - for (i = 2; i < 7; i++) { - m = moment().add({d: i}); - assert.equal(m.calendar(), m.format('dddd [pukul] LT'), 'Hari ini + ' + i + ' hari waktu sekarang'); - m.hours(0).minutes(0).seconds(0).milliseconds(0); - assert.equal(m.calendar(), m.format('dddd [pukul] LT'), 'Hari ini + ' + i + ' hari permulaan hari'); - m.hours(23).minutes(59).seconds(59).milliseconds(999); - assert.equal(m.calendar(), m.format('dddd [pukul] LT'), 'Hari ini + ' + i + ' hari tamat hari'); - } -}); - -test('calendar last week', function (assert) { - var i, m; - for (i = 2; i < 7; i++) { - m = moment().subtract({d: i}); - assert.equal(m.calendar(), m.format('dddd [lepas] [pukul] LT'), 'Hari ini - ' + i + ' hari waktu sekarang'); - m.hours(0).minutes(0).seconds(0).milliseconds(0); - assert.equal(m.calendar(), m.format('dddd [lepas] [pukul] LT'), 'Hari ini - ' + i + ' hari permulaan hari'); - m.hours(23).minutes(59).seconds(59).milliseconds(999); - assert.equal(m.calendar(), m.format('dddd [lepas] [pukul] LT'), 'Hari ini - ' + i + ' hari tamat hari'); - } -}); - -test('calendar all else', function (assert) { - var weeksAgo = moment().subtract({w: 1}), - weeksFromNow = moment().add({w: 1}); - - assert.equal(weeksAgo.calendar(), weeksAgo.format('L'), '1 minggu lepas'); - assert.equal(weeksFromNow.calendar(), weeksFromNow.format('L'), 'dalam 1 minggu'); - - weeksAgo = moment().subtract({w: 2}); - weeksFromNow = moment().add({w: 2}); - - assert.equal(weeksAgo.calendar(), weeksAgo.format('L'), '2 minggu lepas'); - assert.equal(weeksFromNow.calendar(), weeksFromNow.format('L'), 'dalam 2 minggu'); -}); - -test('weeks year starting sunday format', function (assert) { - assert.equal(moment([2012, 0, 1]).format('w ww wo'), '1 01 1', 'Jan 1 2012 sepatutnya minggu 1'); - assert.equal(moment([2012, 0, 7]).format('w ww wo'), '2 02 2', 'Jan 7 2012 sepatutnya minggu 2'); - assert.equal(moment([2012, 0, 8]).format('w ww wo'), '2 02 2', 'Jan 8 2012 sepatutnya minggu 2'); - assert.equal(moment([2012, 0, 14]).format('w ww wo'), '3 03 3', 'Jan 14 2012 sepatutnya minggu 3'); - assert.equal(moment([2012, 0, 15]).format('w ww wo'), '3 03 3', 'Jan 15 2012 sepatutnya minggu 3'); -}); - -}))); - - -;(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' - && typeof require === 'function' ? factory(require('../../moment')) : - typeof define === 'function' && define.amd ? define(['../../moment'], factory) : - factory(global.moment) -}(this, (function (moment) { 'use strict'; - -function each(array, callback) { - var i; - for (i = 0; i < array.length; i++) { - callback(array[i], i, array); - } -} - -function objectKeys(obj) { - if (Object.keys) { - return Object.keys(obj); - } else { - // IE8 - var res = [], i; - for (i in obj) { - if (obj.hasOwnProperty(i)) { - res.push(i); - } - } - return res; - } -} - -// Pick the first defined of two or three arguments. - -function defineCommonLocaleTests(locale, options) { - test('lenient day of month ordinal parsing', function (assert) { - var i, ordinalStr, testMoment; - for (i = 1; i <= 31; ++i) { - ordinalStr = moment([2014, 0, i]).format('YYYY MM Do'); - testMoment = moment(ordinalStr, 'YYYY MM Do'); - assert.equal(testMoment.year(), 2014, - 'lenient day of month ordinal parsing ' + i + ' year check'); - assert.equal(testMoment.month(), 0, - 'lenient day of month ordinal parsing ' + i + ' month check'); - assert.equal(testMoment.date(), i, - 'lenient day of month ordinal parsing ' + i + ' date check'); - } - }); - - test('lenient day of month ordinal parsing of number', function (assert) { - var i, testMoment; - for (i = 1; i <= 31; ++i) { - testMoment = moment('2014 01 ' + i, 'YYYY MM Do'); - assert.equal(testMoment.year(), 2014, - 'lenient day of month ordinal parsing of number ' + i + ' year check'); - assert.equal(testMoment.month(), 0, - 'lenient day of month ordinal parsing of number ' + i + ' month check'); - assert.equal(testMoment.date(), i, - 'lenient day of month ordinal parsing of number ' + i + ' date check'); - } - }); - - test('strict day of month ordinal parsing', function (assert) { - var i, ordinalStr, testMoment; - for (i = 1; i <= 31; ++i) { - ordinalStr = moment([2014, 0, i]).format('YYYY MM Do'); - testMoment = moment(ordinalStr, 'YYYY MM Do', true); - assert.ok(testMoment.isValid(), 'strict day of month ordinal parsing ' + i); - } - }); - - test('meridiem invariant', function (assert) { - var h, m, t1, t2; - for (h = 0; h < 24; ++h) { - for (m = 0; m < 60; m += 15) { - t1 = moment.utc([2000, 0, 1, h, m]); - t2 = moment.utc(t1.format('A h:mm'), 'A h:mm'); - assert.equal(t2.format('HH:mm'), t1.format('HH:mm'), - 'meridiem at ' + t1.format('HH:mm')); - } - } - }); - - test('date format correctness', function (assert) { - var data, tokens; - data = moment.localeData()._longDateFormat; - tokens = objectKeys(data); - each(tokens, function (srchToken) { - // Check each format string to make sure it does not contain any - // tokens that need to be expanded. - each(tokens, function (baseToken) { - // strip escaped sequences - var format = data[baseToken].replace(/(\[[^\]]*\])/g, ''); - assert.equal(false, !!~format.indexOf(srchToken), - 'contains ' + srchToken + ' in ' + baseToken); - }); - }); - }); - - test('month parsing correctness', function (assert) { - var i, m; - - if (locale === 'tr') { - // I can't fix it :( - expect(0); - return; - } - function tester(format) { - var r; - r = moment(m.format(format), format); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format); - r = moment(m.format(format).toLocaleUpperCase(), format); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' upper'); - r = moment(m.format(format).toLocaleLowerCase(), format); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' lower'); - - r = moment(m.format(format), format, true); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' strict'); - r = moment(m.format(format).toLocaleUpperCase(), format, true); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' upper strict'); - r = moment(m.format(format).toLocaleLowerCase(), format, true); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' lower strict'); - } - - for (i = 0; i < 12; ++i) { - m = moment([2015, i, 15, 18]); - tester('MMM'); - tester('MMM.'); - tester('MMMM'); - tester('MMMM.'); - } - }); - - test('weekday parsing correctness', function (assert) { - var i, m; - - if (locale === 'tr' || locale === 'az' || locale === 'ro') { - // tr, az: There is a lower-case letter (ı), that converted to - // upper then lower changes to i - // ro: there is the letter ț which behaves weird under IE8 - expect(0); - return; - } - function tester(format) { - var r, baseMsg = 'weekday ' + m.weekday() + ' fmt ' + format + ' ' + m.toISOString(); - r = moment(m.format(format), format); - assert.equal(r.weekday(), m.weekday(), baseMsg); - r = moment(m.format(format).toLocaleUpperCase(), format); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' upper'); - r = moment(m.format(format).toLocaleLowerCase(), format); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' lower'); - - r = moment(m.format(format), format, true); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' strict'); - r = moment(m.format(format).toLocaleUpperCase(), format, true); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' upper strict'); - r = moment(m.format(format).toLocaleLowerCase(), format, true); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' lower strict'); - } - - for (i = 0; i < 7; ++i) { - m = moment.utc([2015, 0, i + 1, 18]); - tester('dd'); - tester('ddd'); - tester('dddd'); - } - }); - - test('valid localeData', function (assert) { - assert.equal(moment().localeData().months().length, 12, 'months should return 12 months'); - assert.equal(moment().localeData().monthsShort().length, 12, 'monthsShort should return 12 months'); - assert.equal(moment().localeData().weekdays().length, 7, 'weekdays should return 7 days'); - assert.equal(moment().localeData().weekdaysShort().length, 7, 'weekdaysShort should return 7 days'); - assert.equal(moment().localeData().weekdaysMin().length, 7, 'monthsShort should return 7 days'); - }); -} - -function setupDeprecationHandler(test, moment$$1, scope) { - test._expectedDeprecations = null; - test._observedDeprecations = null; - test._oldSupress = moment$$1.suppressDeprecationWarnings; - moment$$1.suppressDeprecationWarnings = true; - test.expectedDeprecations = function () { - test._expectedDeprecations = arguments; - test._observedDeprecations = []; - }; - moment$$1.deprecationHandler = function (name, msg) { - var deprecationId = matchedDeprecation(name, msg, test._expectedDeprecations); - if (deprecationId === -1) { - throw new Error('Unexpected deprecation thrown name=' + - name + ' msg=' + msg); - } - test._observedDeprecations[deprecationId] = 1; - }; -} - -function teardownDeprecationHandler(test, moment$$1, scope) { - moment$$1.suppressDeprecationWarnings = test._oldSupress; - - if (test._expectedDeprecations != null) { - var missedDeprecations = []; - each(test._expectedDeprecations, function (deprecationPattern, id) { - if (test._observedDeprecations[id] !== 1) { - missedDeprecations.push(deprecationPattern); - } - }); - if (missedDeprecations.length !== 0) { - throw new Error('Expected deprecation warnings did not happen: ' + - missedDeprecations.join(' ')); - } - } -} - -function matchedDeprecation(name, msg, deprecations) { - if (deprecations == null) { - return -1; - } - for (var i = 0; i < deprecations.length; ++i) { - if (name != null && name === deprecations[i]) { - return i; - } - if (msg != null && msg.substring(0, deprecations[i].length) === deprecations[i]) { - return i; - } - } - return -1; -} - -/*global QUnit:false*/ - -var test = QUnit.test; - -var expect = QUnit.expect; - - - -function localeModule (name, lifecycle) { - QUnit.module('locale:' + name, { - setup : function () { - moment.locale(name); - moment.createFromInputFallback = function (config) { - throw new Error('input not handled by moment: ' + config._i); - }; - setupDeprecationHandler(test, moment, 'locale'); - if (lifecycle && lifecycle.setup) { - lifecycle.setup(); - } - }, - teardown : function () { - moment.locale('en'); - teardownDeprecationHandler(test, moment, 'locale'); - if (lifecycle && lifecycle.teardown) { - lifecycle.teardown(); - } - } - }); - defineCommonLocaleTests(name, -1, -1); -} - -localeModule('my'); - -test('parse', function (assert) { - var tests = 'ဇန်နဝါရီ ဇန်_ဖေဖော်ဝါရီ ဖေ_မတ် မတ်_ဧပြီ ပြီ_မေ မေ_ဇွန် ဇွန်_ဇူလိုင် လိုင်_သြဂုတ် သြ_စက်တင်ဘာ စက်_အောက်တိုဘာ အောက်_နိုဝင်ဘာ နို_ဒီဇင်ဘာ ဒီ'.split('_'), - i; - - function equalTest (input, mmm, i) { - assert.equal(moment(input, mmm).month(), i, input + ' should be month ' + (i + 1)); - } - for (i = 0; i < 12; i++) { - tests[i] = tests[i].split(' '); - equalTest(tests[i][0], 'MMM', i); - equalTest(tests[i][1], 'MMM', i); - equalTest(tests[i][0], 'MMMM', i); - equalTest(tests[i][1], 'MMMM', i); - equalTest(tests[i][0].toLocaleLowerCase(), 'MMMM', i); - equalTest(tests[i][1].toLocaleLowerCase(), 'MMMM', i); - equalTest(tests[i][0].toLocaleUpperCase(), 'MMMM', i); - equalTest(tests[i][1].toLocaleUpperCase(), 'MMMM', i); - } -}); - -test('format', function (assert) { - var a = [ - ['dddd, MMMM Do YYYY, h:mm:ss a', 'တနင်္ဂနွေ, ဖေဖော်ဝါရီ ၁၄ ၂၀၁၀, ၃:၂၅:၅၀ pm'], - ['ddd, hA', 'နွေ, ၃PM'], - ['M Mo MM MMMM MMM', '၂ ၂ ၀၂ ဖေဖော်ဝါရီ ဖေ'], - ['YYYY YY', '၂၀၁၀ ၁၀'], - ['D Do DD', '၁၄ ၁၄ ၁၄'], - ['d do dddd ddd dd', '၀ ၀ တနင်္ဂနွေ နွေ နွေ'], - ['DDD DDDo DDDD', '၄၅ ၄၅ ၀၄၅'], - ['w wo ww', '၆ ၆ ၀၆'], - ['h hh', '၃ ၀၃'], - ['H HH', '၁၅ ၁၅'], - ['m mm', '၂၅ ၂၅'], - ['s ss', '၅၀ ၅၀'], - ['a A', 'pm PM'], - ['[နှစ်၏] DDDo [ရက်မြောက်]', 'နှစ်၏ ၄၅ ရက်မြောက်'], - ['LTS', '၁၅:၂၅:၅၀'], - ['L', '၁၄/၀၂/၂၀၁၀'], - ['LL', '၁၄ ဖေဖော်ဝါရီ ၂၀၁၀'], - ['LLL', '၁၄ ဖေဖော်ဝါရီ ၂၀၁၀ ၁၅:၂၅'], - ['LLLL', 'တနင်္ဂနွေ ၁၄ ဖေဖော်ဝါရီ ၂၀၁၀ ၁၅:၂၅'], - ['l', '၁၄/၂/၂၀၁၀'], - ['ll', '၁၄ ဖေ ၂၀၁၀'], - ['lll', '၁၄ ဖေ ၂၀၁၀ ၁၅:၂၅'], - ['llll', 'နွေ ၁၄ ဖေ ၂၀၁၀ ၁၅:၂၅'] - ], - b = moment(new Date(2010, 1, 14, 15, 25, 50, 125)), - i; - for (i = 0; i < a.length; i++) { - assert.equal(b.format(a[i][0]), a[i][1], a[i][0] + ' ---> ' + a[i][1]); - } -}); - -test('format ordinal', function (assert) { - assert.equal(moment([2011, 0, 1]).format('DDDo'), '၁', '၁'); - assert.equal(moment([2011, 0, 2]).format('DDDo'), '၂', '၂'); - assert.equal(moment([2011, 0, 3]).format('DDDo'), '၃', '၃'); - assert.equal(moment([2011, 0, 4]).format('DDDo'), '၄', '၄'); - assert.equal(moment([2011, 0, 5]).format('DDDo'), '၅', '၅'); - assert.equal(moment([2011, 0, 6]).format('DDDo'), '၆', '၆'); - assert.equal(moment([2011, 0, 7]).format('DDDo'), '၇', '၇'); - assert.equal(moment([2011, 0, 8]).format('DDDo'), '၈', '၈'); - assert.equal(moment([2011, 0, 9]).format('DDDo'), '၉', '၉'); - assert.equal(moment([2011, 0, 10]).format('DDDo'), '၁၀', '၁၀'); - - assert.equal(moment([2011, 0, 11]).format('DDDo'), '၁၁', '၁၁'); - assert.equal(moment([2011, 0, 12]).format('DDDo'), '၁၂', '၁၂'); - assert.equal(moment([2011, 0, 13]).format('DDDo'), '၁၃', '၁၃'); - assert.equal(moment([2011, 0, 14]).format('DDDo'), '၁၄', '၁၄'); - assert.equal(moment([2011, 0, 15]).format('DDDo'), '၁၅', '၁၅'); - assert.equal(moment([2011, 0, 16]).format('DDDo'), '၁၆', '၁၆'); - assert.equal(moment([2011, 0, 17]).format('DDDo'), '၁၇', '၁၇'); - assert.equal(moment([2011, 0, 18]).format('DDDo'), '၁၈', '၁၈'); - assert.equal(moment([2011, 0, 19]).format('DDDo'), '၁၉', '၁၉'); - assert.equal(moment([2011, 0, 20]).format('DDDo'), '၂၀', '၂၀'); - - assert.equal(moment([2011, 0, 21]).format('DDDo'), '၂၁', '၂၁'); - assert.equal(moment([2011, 0, 22]).format('DDDo'), '၂၂', '၂၂'); - assert.equal(moment([2011, 0, 23]).format('DDDo'), '၂၃', '၂၃'); - assert.equal(moment([2011, 0, 24]).format('DDDo'), '၂၄', '၂၄'); - assert.equal(moment([2011, 0, 25]).format('DDDo'), '၂၅', '၂၅'); - assert.equal(moment([2011, 0, 26]).format('DDDo'), '၂၆', '၂၆'); - assert.equal(moment([2011, 0, 27]).format('DDDo'), '၂၇', '၂၇'); - assert.equal(moment([2011, 0, 28]).format('DDDo'), '၂၈', '၂၈'); - assert.equal(moment([2011, 0, 29]).format('DDDo'), '၂၉', '၂၉'); - assert.equal(moment([2011, 0, 30]).format('DDDo'), '၃၀', '၃၀'); - - assert.equal(moment([2011, 0, 31]).format('DDDo'), '၃၁', '၃၁'); -}); - -test('format month', function (assert) { - var expected = 'ဇန်နဝါရီ ဇန်_ဖေဖော်ဝါရီ ဖေ_မတ် မတ်_ဧပြီ ပြီ_မေ မေ_ဇွန် ဇွန်_ဇူလိုင် လိုင်_သြဂုတ် သြ_စက်တင်ဘာ စက်_အောက်တိုဘာ အောက်_နိုဝင်ဘာ နို_ဒီဇင်ဘာ ဒီ'.split('_'), - i; - for (i = 0; i < expected.length; i++) { - assert.equal(moment([2011, i, 1]).format('MMMM MMM'), expected[i], expected[i]); - } -}); - -test('format week', function (assert) { - var expected = 'တနင်္ဂနွေ နွေ နွေ_တနင်္လာ လာ လာ_အင်္ဂါ ဂါ ဂါ_ဗုဒ္ဓဟူး ဟူး ဟူး_ကြာသပတေး ကြာ ကြာ_သောကြာ သော သော_စနေ နေ နေ'.split('_'), - i; - - for (i = 0; i < expected.length; i++) { - assert.equal(moment([2011, 0, 2 + i]).format('dddd ddd dd'), expected[i], expected[i]); - } -}); - -test('from', function (assert) { - var start = moment([2007, 1, 28]); - assert.equal(start.from(moment([2007, 1, 28]).add({ - s: 44 - }), true), 'စက္ကန်.အနည်းငယ်', '၄၄ စက္ကန်. = စက္ကန်.အနည်းငယ်'); - assert.equal(start.from(moment([2007, 1, 28]).add({ - s: 45 - }), true), 'တစ်မိနစ်', '၄၅ စက္ကန်. = တစ်မိနစ်'); - assert.equal(start.from(moment([2007, 1, 28]).add({ - s: 89 - }), true), 'တစ်မိနစ်', '၈၉ စက္ကန်. = တစ်မိနစ်'); - assert.equal(start.from(moment([2007, 1, 28]).add({ - s: 90 - }), true), '၂ မိနစ်', '၉၀ စက္ကန်. = ၂ မိနစ်'); - assert.equal(start.from(moment([2007, 1, 28]).add({ - m: 44 - }), true), '၄၄ မိနစ်', '၄၄ မိနစ် = ၄၄ မိနစ်'); - assert.equal(start.from(moment([2007, 1, 28]).add({ - m: 45 - }), true), 'တစ်နာရီ', '၄၅ မိနစ် = ၁ နာရီ'); - assert.equal(start.from(moment([2007, 1, 28]).add({ - m: 89 - }), true), 'တစ်နာရီ', '၈၉ မိနစ် = တစ်နာရီ'); - assert.equal(start.from(moment([2007, 1, 28]).add({ - m: 90 - }), true), '၂ နာရီ', 'မိနစ် ၉၀= ၂ နာရီ'); - assert.equal(start.from(moment([2007, 1, 28]).add({ - h: 5 - }), true), '၅ နာရီ', '၅ နာရီ= ၅ နာရီ'); - assert.equal(start.from(moment([2007, 1, 28]).add({ - h: 21 - }), true), '၂၁ နာရီ', '၂၁ နာရီ =၂၁ နာရီ'); - assert.equal(start.from(moment([2007, 1, 28]).add({ - h: 22 - }), true), 'တစ်ရက်', '၂၂ နာရီ =တစ်ရက်'); - assert.equal(start.from(moment([2007, 1, 28]).add({ - h: 35 - }), true), 'တစ်ရက်', '၃၅ နာရီ =တစ်ရက်'); - assert.equal(start.from(moment([2007, 1, 28]).add({ - h: 36 - }), true), '၂ ရက်', '၃၆ နာရီ = ၂ ရက်'); - assert.equal(start.from(moment([2007, 1, 28]).add({ - d: 1 - }), true), 'တစ်ရက်', '၁ ရက်= တစ်ရက်'); - assert.equal(start.from(moment([2007, 1, 28]).add({ - d: 5 - }), true), '၅ ရက်', '၅ ရက် = ၅ ရက်'); - assert.equal(start.from(moment([2007, 1, 28]).add({ - d: 25 - }), true), '၂၅ ရက်', '၂၅ ရက်= ၂၅ ရက်'); - assert.equal(start.from(moment([2007, 1, 28]).add({ - d: 26 - }), true), 'တစ်လ', '၂၆ ရက် = တစ်လ'); - assert.equal(start.from(moment([2007, 1, 28]).add({ - d: 30 - }), true), 'တစ်လ', 'ရက် ၃၀ = တစ်လ'); - assert.equal(start.from(moment([2007, 1, 28]).add({ - d: 43 - }), true), 'တစ်လ', '၄၃ ရက် = တစ်လ'); - assert.equal(start.from(moment([2007, 1, 28]).add({ - d: 46 - }), true), '၂ လ', '၄၆ ရက် = ၂ လ'); - assert.equal(start.from(moment([2007, 1, 28]).add({ - d: 74 - }), true), '၂ လ', '၇၅ ရက်= ၂ လ'); - assert.equal(start.from(moment([2007, 1, 28]).add({ - d: 76 - }), true), '၃ လ', '၇၆ ရက် = ၃ လ'); - assert.equal(start.from(moment([2007, 1, 28]).add({ - M: 1 - }), true), 'တစ်လ', '၁ လ = တစ်လ'); - assert.equal(start.from(moment([2007, 1, 28]).add({ - M: 5 - }), true), '၅ လ', '၅ လ = ၅ လ'); - assert.equal(start.from(moment([2007, 1, 28]).add({ - d: 345 - }), true), 'တစ်နှစ်', '၃၄၅ ရက် = တစ်နှစ်'); - assert.equal(start.from(moment([2007, 1, 28]).add({ - d: 548 - }), true), '၂ နှစ်', '၅၄၈ ရက် = ၂ နှစ်'); - assert.equal(start.from(moment([2007, 1, 28]).add({ - y: 1 - }), true), 'တစ်နှစ်', '၁ နှစ် = တစ်နှစ်'); - assert.equal(start.from(moment([2007, 1, 28]).add({ - y: 5 - }), true), '၅ နှစ်', '၅ နှစ် = ၅ နှစ်'); -}); - -test('suffix', function (assert) { - assert.equal(moment(30000).from(0), 'လာမည့် စက္ကန်.အနည်းငယ် မှာ', 'prefix'); - assert.equal(moment(0).from(30000), 'လွန်ခဲ့သော စက္ကန်.အနည်းငယ် က', 'suffix'); -}); - -test('now from now', function (assert) { - assert.equal(moment().fromNow(), 'လွန်ခဲ့သော စက္ကန်.အနည်းငယ် က', 'ယခုမှစပြီး အတိတ်တွင်ဖော်ပြသလိုဖော်ပြမည်'); -}); - -test('fromNow', function (assert) { - assert.equal(moment().add({ - s: 30 - }).fromNow(), 'လာမည့် စက္ကန်.အနည်းငယ် မှာ', 'လာမည့် စက္ကန်.အနည်းငယ် မှာ'); - assert.equal(moment().add({ - d: 5 - }).fromNow(), 'လာမည့် ၅ ရက် မှာ', 'လာမည့် ၅ ရက် မှာ'); -}); - -test('calendar day', function (assert) { - var a = moment().hours(12).minutes(0).seconds(0); - - assert.equal(moment(a).calendar(), 'ယနေ. ၁၂:၀၀ မှာ', 'ယနေ. ဒီအချိန်'); - assert.equal(moment(a).add({m: 25}).calendar(), 'ယနေ. ၁၂:၂၅ မှာ', 'ယခုမှ ၂၅ မိနစ်ပေါင်းထည့်'); - assert.equal(moment(a).add({h: 1}).calendar(), 'ယနေ. ၁၃:၀၀ မှာ', 'ယခုမှ ၁ နာရီပေါင်းထည့်'); - assert.equal(moment(a).add({d: 1}).calendar(), 'မနက်ဖြန် ၁၂:၀၀ မှာ', 'မနက်ဖြန် ဒီအချိန်'); - assert.equal(moment(a).subtract({h: 1}).calendar(), 'ယနေ. ၁၁:၀၀ မှာ', 'ယခုမှ ၁ နာရီနှုတ်'); - assert.equal(moment(a).subtract({d: 1}).calendar(), 'မနေ.က ၁၂:၀၀ မှာ', 'မနေ.က ဒီအချိန်'); -}); - -test('calendar next week', function (assert) { - var i, m; - for (i = 2; i < 7; i++) { - m = moment().add({ - d: i - }); - assert.equal(m.calendar(), m.format('dddd LT [မှာ]'), 'Today + ' + i + ' days current time'); - m.hours(0).minutes(0).seconds(0).milliseconds(0); - assert.equal(m.calendar(), m.format('dddd LT [မှာ]'), 'Today + ' + i + ' days beginning of day'); - m.hours(23).minutes(59).seconds(59).milliseconds(999); - assert.equal(m.calendar(), m.format('dddd LT [မှာ]'), 'Today + ' + i + ' days end of day'); - } -}); - -test('calendar last week', function (assert) { - var i, m; - - for (i = 2; i < 7; i++) { - m = moment().subtract({ - d: i - }); - assert.equal(m.calendar(), m.format('[ပြီးခဲ့သော] dddd LT [မှာ]'), 'Today - ' + i + ' days current time'); - m.hours(0).minutes(0).seconds(0).milliseconds(0); - assert.equal(m.calendar(), m.format('[ပြီးခဲ့သော] dddd LT [မှာ]'), 'Today - ' + i + ' days beginning of day'); - m.hours(23).minutes(59).seconds(59).milliseconds(999); - assert.equal(m.calendar(), m.format('[ပြီးခဲ့သော] dddd LT [မှာ]'), 'Today - ' + i + ' days end of day'); - } -}); - -test('calendar all else', function (assert) { - var weeksAgo = moment().subtract({ - w: 1 - }), - weeksFromNow = moment().add({ - w: 1 - }); - - assert.equal(weeksAgo.calendar(), weeksAgo.format('L'), 'လွန်ခဲ့သော ၁ ပတ်က'); - assert.equal(weeksFromNow.calendar(), weeksFromNow.format('L'), '၁ ပတ်အတွင်း'); - - weeksAgo = moment().subtract({ - w: 2 - }); - weeksFromNow = moment().add({ - w: 2 - }); - - assert.equal(weeksAgo.calendar(), weeksAgo.format('L'), '၂ ပတ် အရင်က'); - assert.equal(weeksFromNow.calendar(), weeksFromNow.format('L'), '၂ ပတ် အတွင်း'); -}); - -test('weeks year starting sunday formatted', function (assert) { - assert.equal(moment([2012, 0, 1]).format('w ww wo'), '၅၂ ၅၂ ၅၂', 'Jan 1 2012 should be week 52'); - assert.equal(moment([2012, 0, 2]).format('w ww wo'), '၁ ၀၁ ၁', 'Jan 2 2012 should be week 1'); - assert.equal(moment([2012, 0, 8]).format('w ww wo'), '၁ ၀၁ ၁', 'Jan 8 2012 should be week 1'); - assert.equal(moment([2012, 0, 9]).format('w ww wo'), '၂ ၀၂ ၂', 'Jan 9 2012 should be week 2'); - assert.equal(moment([2012, 0, 15]).format('w ww wo'), '၂ ၀၂ ၂', 'Jan 15 2012 should be week 2'); -}); - -}))); - - -;(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' - && typeof require === 'function' ? factory(require('../../moment')) : - typeof define === 'function' && define.amd ? define(['../../moment'], factory) : - factory(global.moment) -}(this, (function (moment) { 'use strict'; - -function each(array, callback) { - var i; - for (i = 0; i < array.length; i++) { - callback(array[i], i, array); - } -} - -function objectKeys(obj) { - if (Object.keys) { - return Object.keys(obj); - } else { - // IE8 - var res = [], i; - for (i in obj) { - if (obj.hasOwnProperty(i)) { - res.push(i); - } - } - return res; - } -} - -// Pick the first defined of two or three arguments. - -function defineCommonLocaleTests(locale, options) { - test('lenient day of month ordinal parsing', function (assert) { - var i, ordinalStr, testMoment; - for (i = 1; i <= 31; ++i) { - ordinalStr = moment([2014, 0, i]).format('YYYY MM Do'); - testMoment = moment(ordinalStr, 'YYYY MM Do'); - assert.equal(testMoment.year(), 2014, - 'lenient day of month ordinal parsing ' + i + ' year check'); - assert.equal(testMoment.month(), 0, - 'lenient day of month ordinal parsing ' + i + ' month check'); - assert.equal(testMoment.date(), i, - 'lenient day of month ordinal parsing ' + i + ' date check'); - } - }); - - test('lenient day of month ordinal parsing of number', function (assert) { - var i, testMoment; - for (i = 1; i <= 31; ++i) { - testMoment = moment('2014 01 ' + i, 'YYYY MM Do'); - assert.equal(testMoment.year(), 2014, - 'lenient day of month ordinal parsing of number ' + i + ' year check'); - assert.equal(testMoment.month(), 0, - 'lenient day of month ordinal parsing of number ' + i + ' month check'); - assert.equal(testMoment.date(), i, - 'lenient day of month ordinal parsing of number ' + i + ' date check'); - } - }); - - test('strict day of month ordinal parsing', function (assert) { - var i, ordinalStr, testMoment; - for (i = 1; i <= 31; ++i) { - ordinalStr = moment([2014, 0, i]).format('YYYY MM Do'); - testMoment = moment(ordinalStr, 'YYYY MM Do', true); - assert.ok(testMoment.isValid(), 'strict day of month ordinal parsing ' + i); - } - }); - - test('meridiem invariant', function (assert) { - var h, m, t1, t2; - for (h = 0; h < 24; ++h) { - for (m = 0; m < 60; m += 15) { - t1 = moment.utc([2000, 0, 1, h, m]); - t2 = moment.utc(t1.format('A h:mm'), 'A h:mm'); - assert.equal(t2.format('HH:mm'), t1.format('HH:mm'), - 'meridiem at ' + t1.format('HH:mm')); - } - } - }); - - test('date format correctness', function (assert) { - var data, tokens; - data = moment.localeData()._longDateFormat; - tokens = objectKeys(data); - each(tokens, function (srchToken) { - // Check each format string to make sure it does not contain any - // tokens that need to be expanded. - each(tokens, function (baseToken) { - // strip escaped sequences - var format = data[baseToken].replace(/(\[[^\]]*\])/g, ''); - assert.equal(false, !!~format.indexOf(srchToken), - 'contains ' + srchToken + ' in ' + baseToken); - }); - }); - }); - - test('month parsing correctness', function (assert) { - var i, m; - - if (locale === 'tr') { - // I can't fix it :( - expect(0); - return; - } - function tester(format) { - var r; - r = moment(m.format(format), format); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format); - r = moment(m.format(format).toLocaleUpperCase(), format); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' upper'); - r = moment(m.format(format).toLocaleLowerCase(), format); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' lower'); - - r = moment(m.format(format), format, true); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' strict'); - r = moment(m.format(format).toLocaleUpperCase(), format, true); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' upper strict'); - r = moment(m.format(format).toLocaleLowerCase(), format, true); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' lower strict'); - } - - for (i = 0; i < 12; ++i) { - m = moment([2015, i, 15, 18]); - tester('MMM'); - tester('MMM.'); - tester('MMMM'); - tester('MMMM.'); - } - }); - - test('weekday parsing correctness', function (assert) { - var i, m; - - if (locale === 'tr' || locale === 'az' || locale === 'ro') { - // tr, az: There is a lower-case letter (ı), that converted to - // upper then lower changes to i - // ro: there is the letter ț which behaves weird under IE8 - expect(0); - return; - } - function tester(format) { - var r, baseMsg = 'weekday ' + m.weekday() + ' fmt ' + format + ' ' + m.toISOString(); - r = moment(m.format(format), format); - assert.equal(r.weekday(), m.weekday(), baseMsg); - r = moment(m.format(format).toLocaleUpperCase(), format); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' upper'); - r = moment(m.format(format).toLocaleLowerCase(), format); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' lower'); - - r = moment(m.format(format), format, true); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' strict'); - r = moment(m.format(format).toLocaleUpperCase(), format, true); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' upper strict'); - r = moment(m.format(format).toLocaleLowerCase(), format, true); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' lower strict'); - } - - for (i = 0; i < 7; ++i) { - m = moment.utc([2015, 0, i + 1, 18]); - tester('dd'); - tester('ddd'); - tester('dddd'); - } - }); - - test('valid localeData', function (assert) { - assert.equal(moment().localeData().months().length, 12, 'months should return 12 months'); - assert.equal(moment().localeData().monthsShort().length, 12, 'monthsShort should return 12 months'); - assert.equal(moment().localeData().weekdays().length, 7, 'weekdays should return 7 days'); - assert.equal(moment().localeData().weekdaysShort().length, 7, 'weekdaysShort should return 7 days'); - assert.equal(moment().localeData().weekdaysMin().length, 7, 'monthsShort should return 7 days'); - }); -} - -function setupDeprecationHandler(test, moment$$1, scope) { - test._expectedDeprecations = null; - test._observedDeprecations = null; - test._oldSupress = moment$$1.suppressDeprecationWarnings; - moment$$1.suppressDeprecationWarnings = true; - test.expectedDeprecations = function () { - test._expectedDeprecations = arguments; - test._observedDeprecations = []; - }; - moment$$1.deprecationHandler = function (name, msg) { - var deprecationId = matchedDeprecation(name, msg, test._expectedDeprecations); - if (deprecationId === -1) { - throw new Error('Unexpected deprecation thrown name=' + - name + ' msg=' + msg); - } - test._observedDeprecations[deprecationId] = 1; - }; -} - -function teardownDeprecationHandler(test, moment$$1, scope) { - moment$$1.suppressDeprecationWarnings = test._oldSupress; - - if (test._expectedDeprecations != null) { - var missedDeprecations = []; - each(test._expectedDeprecations, function (deprecationPattern, id) { - if (test._observedDeprecations[id] !== 1) { - missedDeprecations.push(deprecationPattern); - } - }); - if (missedDeprecations.length !== 0) { - throw new Error('Expected deprecation warnings did not happen: ' + - missedDeprecations.join(' ')); - } - } -} - -function matchedDeprecation(name, msg, deprecations) { - if (deprecations == null) { - return -1; - } - for (var i = 0; i < deprecations.length; ++i) { - if (name != null && name === deprecations[i]) { - return i; - } - if (msg != null && msg.substring(0, deprecations[i].length) === deprecations[i]) { - return i; - } - } - return -1; -} - -/*global QUnit:false*/ - -var test = QUnit.test; - -var expect = QUnit.expect; - - - -function localeModule (name, lifecycle) { - QUnit.module('locale:' + name, { - setup : function () { - moment.locale(name); - moment.createFromInputFallback = function (config) { - throw new Error('input not handled by moment: ' + config._i); - }; - setupDeprecationHandler(test, moment, 'locale'); - if (lifecycle && lifecycle.setup) { - lifecycle.setup(); - } - }, - teardown : function () { - moment.locale('en'); - teardownDeprecationHandler(test, moment, 'locale'); - if (lifecycle && lifecycle.teardown) { - lifecycle.teardown(); - } - } - }); - defineCommonLocaleTests(name, -1, -1); -} - -localeModule('nb'); - -test('parse', function (assert) { - var tests = 'januar jan._februar feb._mars mars_april april_mai mai_juni juni_juli juli_august aug._september sep._oktober okt._november nov._desember des.'.split('_'), - i; - function equalTest(input, mmm, i) { - assert.equal(moment(input, mmm).month(), i, input + ' should be month ' + (i + 1)); - } - for (i = 0; i < 12; i++) { - tests[i] = tests[i].split(' '); - equalTest(tests[i][0], 'MMM', i); - equalTest(tests[i][1], 'MMM', i); - equalTest(tests[i][0], 'MMMM', i); - equalTest(tests[i][1], 'MMMM', i); - equalTest(tests[i][0].toLocaleLowerCase(), 'MMMM', i); - equalTest(tests[i][1].toLocaleLowerCase(), 'MMMM', i); - equalTest(tests[i][0].toLocaleUpperCase(), 'MMMM', i); - equalTest(tests[i][1].toLocaleUpperCase(), 'MMMM', i); - } -}); - -test('format', function (assert) { - var a = [ - ['dddd, MMMM Do YYYY, h:mm:ss a', 'søndag, februar 14. 2010, 3:25:50 pm'], - ['ddd, hA', 'sø., 3PM'], - ['M Mo MM MMMM MMM', '2 2. 02 februar feb.'], - ['YYYY YY', '2010 10'], - ['D Do DD', '14 14. 14'], - ['d do dddd ddd dd', '0 0. søndag sø. sø'], - ['DDD DDDo DDDD', '45 45. 045'], - ['w wo ww', '6 6. 06'], - ['h hh', '3 03'], - ['H HH', '15 15'], - ['m mm', '25 25'], - ['s ss', '50 50'], - ['a A', 'pm PM'], - ['[den] DDDo [dagen i året]', 'den 45. dagen i året'], - ['LTS', '15:25:50'], - ['L', '14.02.2010'], - ['LL', '14. februar 2010'], - ['LLL', '14. februar 2010 kl. 15:25'], - ['LLLL', 'søndag 14. februar 2010 kl. 15:25'], - ['l', '14.2.2010'], - ['ll', '14. feb. 2010'], - ['lll', '14. feb. 2010 kl. 15:25'], - ['llll', 'sø. 14. feb. 2010 kl. 15:25'] - ], - b = moment(new Date(2010, 1, 14, 15, 25, 50, 125)), - i; - for (i = 0; i < a.length; i++) { - assert.equal(b.format(a[i][0]), a[i][1], a[i][0] + ' ---> ' + a[i][1]); - } -}); - -test('format ordinal', function (assert) { - assert.equal(moment([2011, 0, 1]).format('DDDo'), '1.', '1.'); - assert.equal(moment([2011, 0, 2]).format('DDDo'), '2.', '2.'); - assert.equal(moment([2011, 0, 3]).format('DDDo'), '3.', '3.'); - assert.equal(moment([2011, 0, 4]).format('DDDo'), '4.', '4.'); - assert.equal(moment([2011, 0, 5]).format('DDDo'), '5.', '5.'); - assert.equal(moment([2011, 0, 6]).format('DDDo'), '6.', '6.'); - assert.equal(moment([2011, 0, 7]).format('DDDo'), '7.', '7.'); - assert.equal(moment([2011, 0, 8]).format('DDDo'), '8.', '8.'); - assert.equal(moment([2011, 0, 9]).format('DDDo'), '9.', '9.'); - assert.equal(moment([2011, 0, 10]).format('DDDo'), '10.', '10.'); - - assert.equal(moment([2011, 0, 11]).format('DDDo'), '11.', '11.'); - assert.equal(moment([2011, 0, 12]).format('DDDo'), '12.', '12.'); - assert.equal(moment([2011, 0, 13]).format('DDDo'), '13.', '13.'); - assert.equal(moment([2011, 0, 14]).format('DDDo'), '14.', '14.'); - assert.equal(moment([2011, 0, 15]).format('DDDo'), '15.', '15.'); - assert.equal(moment([2011, 0, 16]).format('DDDo'), '16.', '16.'); - assert.equal(moment([2011, 0, 17]).format('DDDo'), '17.', '17.'); - assert.equal(moment([2011, 0, 18]).format('DDDo'), '18.', '18.'); - assert.equal(moment([2011, 0, 19]).format('DDDo'), '19.', '19.'); - assert.equal(moment([2011, 0, 20]).format('DDDo'), '20.', '20.'); - - assert.equal(moment([2011, 0, 21]).format('DDDo'), '21.', '21.'); - assert.equal(moment([2011, 0, 22]).format('DDDo'), '22.', '22.'); - assert.equal(moment([2011, 0, 23]).format('DDDo'), '23.', '23.'); - assert.equal(moment([2011, 0, 24]).format('DDDo'), '24.', '24.'); - assert.equal(moment([2011, 0, 25]).format('DDDo'), '25.', '25.'); - assert.equal(moment([2011, 0, 26]).format('DDDo'), '26.', '26.'); - assert.equal(moment([2011, 0, 27]).format('DDDo'), '27.', '27.'); - assert.equal(moment([2011, 0, 28]).format('DDDo'), '28.', '28.'); - assert.equal(moment([2011, 0, 29]).format('DDDo'), '29.', '29.'); - assert.equal(moment([2011, 0, 30]).format('DDDo'), '30.', '30.'); - - assert.equal(moment([2011, 0, 31]).format('DDDo'), '31.', '31.'); -}); - -test('format month', function (assert) { - var expected = 'januar jan._februar feb._mars mars_april april_mai mai_juni juni_juli juli_august aug._september sep._oktober okt._november nov._desember des.'.split('_'), i; - for (i = 0; i < expected.length; i++) { - assert.equal(moment([2011, i, 1]).format('MMMM MMM'), expected[i], expected[i]); - } -}); - -test('format week', function (assert) { - var expected = 'søndag sø. sø_mandag ma. ma_tirsdag ti. ti_onsdag on. on_torsdag to. to_fredag fr. fr_lørdag lø. lø'.split('_'), i; - for (i = 0; i < expected.length; i++) { - assert.equal(moment([2011, 0, 2 + i]).format('dddd ddd dd'), expected[i], expected[i]); - } -}); - -test('from', function (assert) { - var start = moment([2007, 1, 28]); - assert.equal(start.from(moment([2007, 1, 28]).add({s: 44}), true), 'noen sekunder', '44 sekunder = a few seconds'); - assert.equal(start.from(moment([2007, 1, 28]).add({s: 45}), true), 'ett minutt', '45 seconds = a minute'); - assert.equal(start.from(moment([2007, 1, 28]).add({s: 89}), true), 'ett minutt', '89 seconds = a minute'); - assert.equal(start.from(moment([2007, 1, 28]).add({s: 90}), true), '2 minutter', '90 seconds = 2 minutes'); - assert.equal(start.from(moment([2007, 1, 28]).add({m: 44}), true), '44 minutter', '44 minutes = 44 minutes'); - assert.equal(start.from(moment([2007, 1, 28]).add({m: 45}), true), 'en time', '45 minutes = an hour'); - assert.equal(start.from(moment([2007, 1, 28]).add({m: 89}), true), 'en time', '89 minutes = an hour'); - assert.equal(start.from(moment([2007, 1, 28]).add({m: 90}), true), '2 timer', '90 minutes = 2 hours'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 5}), true), '5 timer', '5 hours = 5 hours'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 21}), true), '21 timer', '21 hours = 21 hours'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 22}), true), 'en dag', '22 hours = a day'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 35}), true), 'en dag', '35 hours = a day'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 36}), true), '2 dager', '36 hours = 2 days'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 1}), true), 'en dag', '1 day = a day'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 5}), true), '5 dager', '5 days = 5 days'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 25}), true), '25 dager', '25 days = 25 days'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 26}), true), 'en måned', '26 days = a month'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 30}), true), 'en måned', '30 days = a month'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 43}), true), 'en måned', '43 days = a month'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 46}), true), '2 måneder', '46 days = 2 months'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 74}), true), '2 måneder', '75 days = 2 months'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 76}), true), '3 måneder', '76 days = 3 months'); - assert.equal(start.from(moment([2007, 1, 28]).add({M: 1}), true), 'en måned', '1 month = a month'); - assert.equal(start.from(moment([2007, 1, 28]).add({M: 5}), true), '5 måneder', '5 months = 5 months'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 345}), true), 'ett år', '345 days = a year'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 548}), true), '2 år', '548 days = 2 years'); - assert.equal(start.from(moment([2007, 1, 28]).add({y: 1}), true), 'ett år', '1 year = a year'); - assert.equal(start.from(moment([2007, 1, 28]).add({y: 5}), true), '5 år', '5 years = 5 years'); -}); - -test('suffix', function (assert) { - assert.equal(moment(30000).from(0), 'om noen sekunder', 'prefix'); - assert.equal(moment(0).from(30000), 'noen sekunder siden', 'suffix'); -}); - -test('now from now', function (assert) { - assert.equal(moment().fromNow(), 'noen sekunder siden', 'now from now should display as in the past'); -}); - -test('fromNow', function (assert) { - assert.equal(moment().add({s: 30}).fromNow(), 'om noen sekunder', 'in a few seconds'); - assert.equal(moment().add({d: 5}).fromNow(), 'om 5 dager', 'in 5 days'); -}); - -test('calendar day', function (assert) { - var a = moment().hours(12).minutes(0).seconds(0); - - assert.equal(moment(a).calendar(), 'i dag kl. 12:00', 'today at the same time'); - assert.equal(moment(a).add({m: 25}).calendar(), 'i dag kl. 12:25', 'Now plus 25 min'); - assert.equal(moment(a).add({h: 1}).calendar(), 'i dag kl. 13:00', 'Now plus 1 hour'); - assert.equal(moment(a).add({d: 1}).calendar(), 'i morgen kl. 12:00', 'tomorrow at the same time'); - assert.equal(moment(a).subtract({h: 1}).calendar(), 'i dag kl. 11:00', 'Now minus 1 hour'); - assert.equal(moment(a).subtract({d: 1}).calendar(), 'i går kl. 12:00', 'yesterday at the same time'); -}); - -test('calendar next week', function (assert) { - var i, m; - for (i = 2; i < 7; i++) { - m = moment().add({d: i}); - assert.equal(m.calendar(), m.format('dddd [kl.] LT'), 'Today + ' + i + ' days current time'); - m.hours(0).minutes(0).seconds(0).milliseconds(0); - assert.equal(m.calendar(), m.format('dddd [kl.] LT'), 'Today + ' + i + ' days beginning of day'); - m.hours(23).minutes(59).seconds(59).milliseconds(999); - assert.equal(m.calendar(), m.format('dddd [kl.] LT'), 'Today + ' + i + ' days end of day'); - } -}); - -test('calendar last week', function (assert) { - var i, m; - for (i = 2; i < 7; i++) { - m = moment().subtract({d: i}); - assert.equal(m.calendar(), m.format('[forrige] dddd [kl.] LT'), 'Today - ' + i + ' days current time'); - m.hours(0).minutes(0).seconds(0).milliseconds(0); - assert.equal(m.calendar(), m.format('[forrige] dddd [kl.] LT'), 'Today - ' + i + ' days beginning of day'); - m.hours(23).minutes(59).seconds(59).milliseconds(999); - assert.equal(m.calendar(), m.format('[forrige] dddd [kl.] LT'), 'Today - ' + i + ' days end of day'); - } -}); - -test('calendar all else', function (assert) { - var weeksAgo = moment().subtract({w: 1}), - weeksFromNow = moment().add({w: 1}); - - assert.equal(weeksAgo.calendar(), weeksAgo.format('L'), '1 week ago'); - assert.equal(weeksFromNow.calendar(), weeksFromNow.format('L'), 'in 1 week'); - - weeksAgo = moment().subtract({w: 2}); - weeksFromNow = moment().add({w: 2}); - - assert.equal(weeksAgo.calendar(), weeksAgo.format('L'), '2 weeks ago'); - assert.equal(weeksFromNow.calendar(), weeksFromNow.format('L'), 'in 2 weeks'); -}); - -test('weeks year starting sunday formatted', function (assert) { - assert.equal(moment([2012, 0, 1]).format('w ww wo'), '52 52 52.', 'Jan 1 2012 should be week 52'); - assert.equal(moment([2012, 0, 2]).format('w ww wo'), '1 01 1.', 'Jan 2 2012 should be week 1'); - assert.equal(moment([2012, 0, 8]).format('w ww wo'), '1 01 1.', 'Jan 8 2012 should be week 1'); - assert.equal(moment([2012, 0, 9]).format('w ww wo'), '2 02 2.', 'Jan 9 2012 should be week 2'); - assert.equal(moment([2012, 0, 15]).format('w ww wo'), '2 02 2.', 'Jan 15 2012 should be week 2'); -}); - -}))); - - -;(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' - && typeof require === 'function' ? factory(require('../../moment')) : - typeof define === 'function' && define.amd ? define(['../../moment'], factory) : - factory(global.moment) -}(this, (function (moment) { 'use strict'; - -function each(array, callback) { - var i; - for (i = 0; i < array.length; i++) { - callback(array[i], i, array); - } -} - -function objectKeys(obj) { - if (Object.keys) { - return Object.keys(obj); - } else { - // IE8 - var res = [], i; - for (i in obj) { - if (obj.hasOwnProperty(i)) { - res.push(i); - } - } - return res; - } -} - -// Pick the first defined of two or three arguments. - -function defineCommonLocaleTests(locale, options) { - test('lenient day of month ordinal parsing', function (assert) { - var i, ordinalStr, testMoment; - for (i = 1; i <= 31; ++i) { - ordinalStr = moment([2014, 0, i]).format('YYYY MM Do'); - testMoment = moment(ordinalStr, 'YYYY MM Do'); - assert.equal(testMoment.year(), 2014, - 'lenient day of month ordinal parsing ' + i + ' year check'); - assert.equal(testMoment.month(), 0, - 'lenient day of month ordinal parsing ' + i + ' month check'); - assert.equal(testMoment.date(), i, - 'lenient day of month ordinal parsing ' + i + ' date check'); - } - }); - - test('lenient day of month ordinal parsing of number', function (assert) { - var i, testMoment; - for (i = 1; i <= 31; ++i) { - testMoment = moment('2014 01 ' + i, 'YYYY MM Do'); - assert.equal(testMoment.year(), 2014, - 'lenient day of month ordinal parsing of number ' + i + ' year check'); - assert.equal(testMoment.month(), 0, - 'lenient day of month ordinal parsing of number ' + i + ' month check'); - assert.equal(testMoment.date(), i, - 'lenient day of month ordinal parsing of number ' + i + ' date check'); - } - }); - - test('strict day of month ordinal parsing', function (assert) { - var i, ordinalStr, testMoment; - for (i = 1; i <= 31; ++i) { - ordinalStr = moment([2014, 0, i]).format('YYYY MM Do'); - testMoment = moment(ordinalStr, 'YYYY MM Do', true); - assert.ok(testMoment.isValid(), 'strict day of month ordinal parsing ' + i); - } - }); - - test('meridiem invariant', function (assert) { - var h, m, t1, t2; - for (h = 0; h < 24; ++h) { - for (m = 0; m < 60; m += 15) { - t1 = moment.utc([2000, 0, 1, h, m]); - t2 = moment.utc(t1.format('A h:mm'), 'A h:mm'); - assert.equal(t2.format('HH:mm'), t1.format('HH:mm'), - 'meridiem at ' + t1.format('HH:mm')); - } - } - }); - - test('date format correctness', function (assert) { - var data, tokens; - data = moment.localeData()._longDateFormat; - tokens = objectKeys(data); - each(tokens, function (srchToken) { - // Check each format string to make sure it does not contain any - // tokens that need to be expanded. - each(tokens, function (baseToken) { - // strip escaped sequences - var format = data[baseToken].replace(/(\[[^\]]*\])/g, ''); - assert.equal(false, !!~format.indexOf(srchToken), - 'contains ' + srchToken + ' in ' + baseToken); - }); - }); - }); - - test('month parsing correctness', function (assert) { - var i, m; - - if (locale === 'tr') { - // I can't fix it :( - expect(0); - return; - } - function tester(format) { - var r; - r = moment(m.format(format), format); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format); - r = moment(m.format(format).toLocaleUpperCase(), format); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' upper'); - r = moment(m.format(format).toLocaleLowerCase(), format); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' lower'); - - r = moment(m.format(format), format, true); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' strict'); - r = moment(m.format(format).toLocaleUpperCase(), format, true); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' upper strict'); - r = moment(m.format(format).toLocaleLowerCase(), format, true); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' lower strict'); - } - - for (i = 0; i < 12; ++i) { - m = moment([2015, i, 15, 18]); - tester('MMM'); - tester('MMM.'); - tester('MMMM'); - tester('MMMM.'); - } - }); - - test('weekday parsing correctness', function (assert) { - var i, m; - - if (locale === 'tr' || locale === 'az' || locale === 'ro') { - // tr, az: There is a lower-case letter (ı), that converted to - // upper then lower changes to i - // ro: there is the letter ț which behaves weird under IE8 - expect(0); - return; - } - function tester(format) { - var r, baseMsg = 'weekday ' + m.weekday() + ' fmt ' + format + ' ' + m.toISOString(); - r = moment(m.format(format), format); - assert.equal(r.weekday(), m.weekday(), baseMsg); - r = moment(m.format(format).toLocaleUpperCase(), format); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' upper'); - r = moment(m.format(format).toLocaleLowerCase(), format); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' lower'); - - r = moment(m.format(format), format, true); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' strict'); - r = moment(m.format(format).toLocaleUpperCase(), format, true); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' upper strict'); - r = moment(m.format(format).toLocaleLowerCase(), format, true); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' lower strict'); - } - - for (i = 0; i < 7; ++i) { - m = moment.utc([2015, 0, i + 1, 18]); - tester('dd'); - tester('ddd'); - tester('dddd'); - } - }); - - test('valid localeData', function (assert) { - assert.equal(moment().localeData().months().length, 12, 'months should return 12 months'); - assert.equal(moment().localeData().monthsShort().length, 12, 'monthsShort should return 12 months'); - assert.equal(moment().localeData().weekdays().length, 7, 'weekdays should return 7 days'); - assert.equal(moment().localeData().weekdaysShort().length, 7, 'weekdaysShort should return 7 days'); - assert.equal(moment().localeData().weekdaysMin().length, 7, 'monthsShort should return 7 days'); - }); -} - -function setupDeprecationHandler(test, moment$$1, scope) { - test._expectedDeprecations = null; - test._observedDeprecations = null; - test._oldSupress = moment$$1.suppressDeprecationWarnings; - moment$$1.suppressDeprecationWarnings = true; - test.expectedDeprecations = function () { - test._expectedDeprecations = arguments; - test._observedDeprecations = []; - }; - moment$$1.deprecationHandler = function (name, msg) { - var deprecationId = matchedDeprecation(name, msg, test._expectedDeprecations); - if (deprecationId === -1) { - throw new Error('Unexpected deprecation thrown name=' + - name + ' msg=' + msg); - } - test._observedDeprecations[deprecationId] = 1; - }; -} - -function teardownDeprecationHandler(test, moment$$1, scope) { - moment$$1.suppressDeprecationWarnings = test._oldSupress; - - if (test._expectedDeprecations != null) { - var missedDeprecations = []; - each(test._expectedDeprecations, function (deprecationPattern, id) { - if (test._observedDeprecations[id] !== 1) { - missedDeprecations.push(deprecationPattern); - } - }); - if (missedDeprecations.length !== 0) { - throw new Error('Expected deprecation warnings did not happen: ' + - missedDeprecations.join(' ')); - } - } -} - -function matchedDeprecation(name, msg, deprecations) { - if (deprecations == null) { - return -1; - } - for (var i = 0; i < deprecations.length; ++i) { - if (name != null && name === deprecations[i]) { - return i; - } - if (msg != null && msg.substring(0, deprecations[i].length) === deprecations[i]) { - return i; - } - } - return -1; -} - -/*global QUnit:false*/ - -var test = QUnit.test; - -var expect = QUnit.expect; - - - -function localeModule (name, lifecycle) { - QUnit.module('locale:' + name, { - setup : function () { - moment.locale(name); - moment.createFromInputFallback = function (config) { - throw new Error('input not handled by moment: ' + config._i); - }; - setupDeprecationHandler(test, moment, 'locale'); - if (lifecycle && lifecycle.setup) { - lifecycle.setup(); - } - }, - teardown : function () { - moment.locale('en'); - teardownDeprecationHandler(test, moment, 'locale'); - if (lifecycle && lifecycle.teardown) { - lifecycle.teardown(); - } - } - }); - defineCommonLocaleTests(name, -1, -1); -} - -localeModule('ne'); - -test('parse', function (assert) { - var tests = 'जनवरी जन._फेब्रुवरी फेब्रु._मार्च मार्च_अप्रिल अप्रि._मई मई_जुन जुन_जुलाई जुलाई._अगष्ट अग._सेप्टेम्बर सेप्ट._अक्टोबर अक्टो._नोभेम्बर नोभे._डिसेम्बर डिसे.'.split('_'), i; - function equalTest(input, mmm, i) { - assert.equal(moment(input, mmm).month(), i, input + ' should be month ' + (i + 1)); - } - for (i = 0; i < 12; i++) { - tests[i] = tests[i].split(' '); - equalTest(tests[i][0], 'MMM', i); - equalTest(tests[i][1], 'MMM', i); - equalTest(tests[i][0], 'MMMM', i); - equalTest(tests[i][1], 'MMMM', i); - equalTest(tests[i][0].toLocaleLowerCase(), 'MMMM', i); - equalTest(tests[i][1].toLocaleLowerCase(), 'MMMM', i); - equalTest(tests[i][0].toLocaleUpperCase(), 'MMMM', i); - equalTest(tests[i][1].toLocaleUpperCase(), 'MMMM', i); - } -}); - -test('format', function (assert) { - var a = [ - ['dddd, Do MMMM YYYY, aको h:mm:ss बजे', 'आइतबार, १४ फेब्रुवरी २०१०, दिउँसोको ३:२५:५० बजे'], - ['ddd, aको h बजे', 'आइत., दिउँसोको ३ बजे'], - ['M Mo MM MMMM MMM', '२ २ ०२ फेब्रुवरी फेब्रु.'], - ['YYYY YY', '२०१० १०'], - ['D Do DD', '१४ १४ १४'], - ['d do dddd ddd dd', '० ० आइतबार आइत. आ.'], - ['DDD DDDo DDDD', '४५ ४५ ०४५'], - ['w wo ww', '८ ८ ०८'], - ['h hh', '३ ०३'], - ['H HH', '१५ १५'], - ['m mm', '२५ २५'], - ['s ss', '५० ५०'], - ['a A', 'दिउँसो दिउँसो'], - ['LTS', 'दिउँसोको ३:२५:५० बजे'], - ['L', '१४/०२/२०१०'], - ['LL', '१४ फेब्रुवरी २०१०'], - ['LLL', '१४ फेब्रुवरी २०१०, दिउँसोको ३:२५ बजे'], - ['LLLL', 'आइतबार, १४ फेब्रुवरी २०१०, दिउँसोको ३:२५ बजे'], - ['l', '१४/२/२०१०'], - ['ll', '१४ फेब्रु. २०१०'], - ['lll', '१४ फेब्रु. २०१०, दिउँसोको ३:२५ बजे'], - ['llll', 'आइत., १४ फेब्रु. २०१०, दिउँसोको ३:२५ बजे'] - ], - b = moment(new Date(2010, 1, 14, 15, 25, 50, 125)), - i; - for (i = 0; i < a.length; i++) { - assert.equal(b.format(a[i][0]), a[i][1], a[i][0] + ' ---> ' + a[i][1]); - } -}); - -test('format ordinal', function (assert) { - assert.equal(moment([2011, 0, 1]).format('DDDo'), '१', '१'); - assert.equal(moment([2011, 0, 2]).format('DDDo'), '२', '२'); - assert.equal(moment([2011, 0, 3]).format('DDDo'), '३', '३'); - assert.equal(moment([2011, 0, 4]).format('DDDo'), '४', '४'); - assert.equal(moment([2011, 0, 5]).format('DDDo'), '५', '५'); - assert.equal(moment([2011, 0, 6]).format('DDDo'), '६', '६'); - assert.equal(moment([2011, 0, 7]).format('DDDo'), '७', '७'); - assert.equal(moment([2011, 0, 8]).format('DDDo'), '८', '८'); - assert.equal(moment([2011, 0, 9]).format('DDDo'), '९', '९'); - assert.equal(moment([2011, 0, 10]).format('DDDo'), '१०', '१०'); - - assert.equal(moment([2011, 0, 11]).format('DDDo'), '११', '११'); - assert.equal(moment([2011, 0, 12]).format('DDDo'), '१२', '१२'); - assert.equal(moment([2011, 0, 13]).format('DDDo'), '१३', '१३'); - assert.equal(moment([2011, 0, 14]).format('DDDo'), '१४', '१४'); - assert.equal(moment([2011, 0, 15]).format('DDDo'), '१५', '१५'); - assert.equal(moment([2011, 0, 16]).format('DDDo'), '१६', '१६'); - assert.equal(moment([2011, 0, 17]).format('DDDo'), '१७', '१७'); - assert.equal(moment([2011, 0, 18]).format('DDDo'), '१८', '१८'); - assert.equal(moment([2011, 0, 19]).format('DDDo'), '१९', '१९'); - assert.equal(moment([2011, 0, 20]).format('DDDo'), '२०', '२०'); - - assert.equal(moment([2011, 0, 21]).format('DDDo'), '२१', '२१'); - assert.equal(moment([2011, 0, 22]).format('DDDo'), '२२', '२२'); - assert.equal(moment([2011, 0, 23]).format('DDDo'), '२३', '२३'); - assert.equal(moment([2011, 0, 24]).format('DDDo'), '२४', '२४'); - assert.equal(moment([2011, 0, 25]).format('DDDo'), '२५', '२५'); - assert.equal(moment([2011, 0, 26]).format('DDDo'), '२६', '२६'); - assert.equal(moment([2011, 0, 27]).format('DDDo'), '२७', '२७'); - assert.equal(moment([2011, 0, 28]).format('DDDo'), '२८', '२८'); - assert.equal(moment([2011, 0, 29]).format('DDDo'), '२९', '२९'); - assert.equal(moment([2011, 0, 30]).format('DDDo'), '३०', '३०'); - - assert.equal(moment([2011, 0, 31]).format('DDDo'), '३१', '३१'); -}); - -test('format month', function (assert) { - var expected = 'जनवरी जन._फेब्रुवरी फेब्रु._मार्च मार्च_अप्रिल अप्रि._मई मई_जुन जुन_जुलाई जुलाई._अगष्ट अग._सेप्टेम्बर सेप्ट._अक्टोबर अक्टो._नोभेम्बर नोभे._डिसेम्बर डिसे.'.split('_'), i; - for (i = 0; i < expected.length; i++) { - assert.equal(moment([2011, i, 1]).format('MMMM MMM'), expected[i], expected[i]); - } -}); - -test('format week', function (assert) { - var expected = 'आइतबार आइत. आ._सोमबार सोम. सो._मङ्गलबार मङ्गल. मं._बुधबार बुध. बु._बिहिबार बिहि. बि._शुक्रबार शुक्र. शु._शनिबार शनि. श.'.split('_'), i; - for (i = 0; i < expected.length; i++) { - assert.equal(moment([2011, 0, 2 + i]).format('dddd ddd dd'), expected[i], expected[i]); - } -}); - -test('from', function (assert) { - var start = moment([2007, 1, 28]); - assert.equal(start.from(moment([2007, 1, 28]).add({s: 44}), true), 'केही क्षण', '44 seconds = a few seconds'); - assert.equal(start.from(moment([2007, 1, 28]).add({s: 45}), true), 'एक मिनेट', '45 seconds = a minute'); - assert.equal(start.from(moment([2007, 1, 28]).add({s: 89}), true), 'एक मिनेट', '89 seconds = a minute'); - assert.equal(start.from(moment([2007, 1, 28]).add({s: 90}), true), '२ मिनेट', '90 seconds = 2 minutes'); - assert.equal(start.from(moment([2007, 1, 28]).add({m: 44}), true), '४४ मिनेट', '44 minutes = 44 minutes'); - assert.equal(start.from(moment([2007, 1, 28]).add({m: 45}), true), 'एक घण्टा', '45 minutes = an hour'); - assert.equal(start.from(moment([2007, 1, 28]).add({m: 89}), true), 'एक घण्टा', '89 minutes = an hour'); - assert.equal(start.from(moment([2007, 1, 28]).add({m: 90}), true), '२ घण्टा', '90 minutes = 2 hours'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 5}), true), '५ घण्टा', '5 hours = 5 hours'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 21}), true), '२१ घण्टा', '21 hours = 21 hours'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 22}), true), 'एक दिन', '22 hours = a day'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 35}), true), 'एक दिन', '35 hours = a day'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 36}), true), '२ दिन', '36 hours = 2 days'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 1}), true), 'एक दिन', '1 day = a day'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 5}), true), '५ दिन', '5 days = 5 days'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 25}), true), '२५ दिन', '25 days = 25 days'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 26}), true), 'एक महिना', '26 days = a month'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 30}), true), 'एक महिना', '30 days = a month'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 43}), true), 'एक महिना', '43 days = a month'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 46}), true), '२ महिना', '46 days = 2 months'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 74}), true), '२ महिना', '75 days = 2 months'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 76}), true), '३ महिना', '76 days = 3 months'); - assert.equal(start.from(moment([2007, 1, 28]).add({M: 1}), true), 'एक महिना', '1 month = a month'); - assert.equal(start.from(moment([2007, 1, 28]).add({M: 5}), true), '५ महिना', '5 months = 5 months'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 345}), true), 'एक बर्ष', '345 days = a year'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 548}), true), '२ बर्ष', '548 days = 2 years'); - assert.equal(start.from(moment([2007, 1, 28]).add({y: 1}), true), 'एक बर्ष', '1 year = a year'); - assert.equal(start.from(moment([2007, 1, 28]).add({y: 5}), true), '५ बर्ष', '5 years = 5 years'); -}); - -test('suffix', function (assert) { - assert.equal(moment(30000).from(0), 'केही क्षणमा', 'prefix'); - assert.equal(moment(0).from(30000), 'केही क्षण अगाडि', 'suffix'); -}); - -test('now from now', function (assert) { - assert.equal(moment().fromNow(), 'केही क्षण अगाडि', 'now from now should display as in the past'); -}); - -test('fromNow', function (assert) { - assert.equal(moment().add({s: 30}).fromNow(), 'केही क्षणमा', 'केही क्षणमा'); - assert.equal(moment().add({d: 5}).fromNow(), '५ दिनमा', '५ दिनमा'); -}); - -test('calendar day', function (assert) { - var a = moment().hours(12).minutes(0).seconds(0); - - assert.equal(moment(a).calendar(), 'आज दिउँसोको १२:०० बजे', 'today at the same time'); - assert.equal(moment(a).add({m: 25}).calendar(), 'आज दिउँसोको १२:२५ बजे', 'Now plus 25 min'); - assert.equal(moment(a).add({h: 1}).calendar(), 'आज दिउँसोको १:०० बजे', 'Now plus 1 hour'); - assert.equal(moment(a).add({d: 1}).calendar(), 'भोलि दिउँसोको १२:०० बजे', 'tomorrow at the same time'); - assert.equal(moment(a).subtract({h: 1}).calendar(), 'आज बिहानको ११:०० बजे', 'Now minus 1 hour'); - assert.equal(moment(a).subtract({d: 1}).calendar(), 'हिजो दिउँसोको १२:०० बजे', 'yesterday at the same time'); -}); - -test('calendar next week', function (assert) { - var i, m; - for (i = 2; i < 7; i++) { - m = moment().add({d: i}); - assert.equal(m.calendar(), m.format('[आउँदो] dddd[,] LT'), 'Today + ' + i + ' days current time'); - m.hours(0).minutes(0).seconds(0).milliseconds(0); - assert.equal(m.calendar(), m.format('[आउँदो] dddd[,] LT'), 'Today + ' + i + ' days beginning of day'); - m.hours(23).minutes(59).seconds(59).milliseconds(999); - assert.equal(m.calendar(), m.format('[आउँदो] dddd[,] LT'), 'Today + ' + i + ' days end of day'); - } -}); - -test('calendar last week', function (assert) { - var i, m; - for (i = 2; i < 7; i++) { - m = moment().subtract({d: i}); - assert.equal(m.calendar(), m.format('[गएको] dddd[,] LT'), 'Today - ' + i + ' days current time'); - m.hours(0).minutes(0).seconds(0).milliseconds(0); - assert.equal(m.calendar(), m.format('[गएको] dddd[,] LT'), 'Today - ' + i + ' days beginning of day'); - m.hours(23).minutes(59).seconds(59).milliseconds(999); - assert.equal(m.calendar(), m.format('[गएको] dddd[,] LT'), 'Today - ' + i + ' days end of day'); - } -}); - -test('calendar all else', function (assert) { - var weeksAgo = moment().subtract({w: 1}), - weeksFromNow = moment().add({w: 1}); - - assert.equal(weeksAgo.calendar(), weeksAgo.format('L'), '1 week ago'); - assert.equal(weeksFromNow.calendar(), weeksFromNow.format('L'), 'in 1 week'); - - weeksAgo = moment().subtract({w: 2}); - weeksFromNow = moment().add({w: 2}); - - assert.equal(weeksAgo.calendar(), weeksAgo.format('L'), '2 weeks ago'); - assert.equal(weeksFromNow.calendar(), weeksFromNow.format('L'), 'in 2 weeks'); -}); - -test('meridiem', function (assert) { - assert.equal(moment([2011, 2, 23, 2, 30]).format('a'), 'राति', 'before dawn'); - assert.equal(moment([2011, 2, 23, 9, 30]).format('a'), 'बिहान', 'morning'); - assert.equal(moment([2011, 2, 23, 14, 30]).format('a'), 'दिउँसो', 'during day'); - assert.equal(moment([2011, 2, 23, 17, 30]).format('a'), 'साँझ', 'evening'); - assert.equal(moment([2011, 2, 23, 19, 30]).format('a'), 'साँझ', 'late evening'); - assert.equal(moment([2011, 2, 23, 21, 20]).format('a'), 'राति', 'night'); - - assert.equal(moment([2011, 2, 23, 2, 30]).format('A'), 'राति', 'before dawn'); - assert.equal(moment([2011, 2, 23, 9, 30]).format('A'), 'बिहान', 'morning'); - assert.equal(moment([2011, 2, 23, 14, 30]).format('A'), 'दिउँसो', 'during day'); - assert.equal(moment([2011, 2, 23, 17, 30]).format('A'), 'साँझ', 'evening'); - assert.equal(moment([2011, 2, 23, 19, 30]).format('A'), 'साँझ', 'late evening'); - assert.equal(moment([2011, 2, 23, 21, 20]).format('A'), 'राति', 'night'); -}); - -test('weeks year starting sunday formatted', function (assert) { - assert.equal(moment([2011, 11, 26]).format('w ww wo'), '५३ ५३ ५३', 'Dec 26 2011 should be week 53'); - assert.equal(moment([2012, 0, 1]).format('w ww wo'), '१ ०१ १', 'Jan 1 2012 should be week 1'); - assert.equal(moment([2012, 0, 2]).format('w ww wo'), '१ ०१ १', 'Jan 2 2012 should be week 1'); - assert.equal(moment([2012, 0, 8]).format('w ww wo'), '२ ०२ २', 'Jan 8 2012 should be week 2'); - assert.equal(moment([2012, 0, 9]).format('w ww wo'), '२ ०२ २', 'Jan 9 2012 should be week 2'); -}); - -}))); - - -;(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' - && typeof require === 'function' ? factory(require('../../moment')) : - typeof define === 'function' && define.amd ? define(['../../moment'], factory) : - factory(global.moment) -}(this, (function (moment) { 'use strict'; - -function each(array, callback) { - var i; - for (i = 0; i < array.length; i++) { - callback(array[i], i, array); - } -} - -function objectKeys(obj) { - if (Object.keys) { - return Object.keys(obj); - } else { - // IE8 - var res = [], i; - for (i in obj) { - if (obj.hasOwnProperty(i)) { - res.push(i); - } - } - return res; - } -} - -// Pick the first defined of two or three arguments. - -function defineCommonLocaleTests(locale, options) { - test('lenient day of month ordinal parsing', function (assert) { - var i, ordinalStr, testMoment; - for (i = 1; i <= 31; ++i) { - ordinalStr = moment([2014, 0, i]).format('YYYY MM Do'); - testMoment = moment(ordinalStr, 'YYYY MM Do'); - assert.equal(testMoment.year(), 2014, - 'lenient day of month ordinal parsing ' + i + ' year check'); - assert.equal(testMoment.month(), 0, - 'lenient day of month ordinal parsing ' + i + ' month check'); - assert.equal(testMoment.date(), i, - 'lenient day of month ordinal parsing ' + i + ' date check'); - } - }); - - test('lenient day of month ordinal parsing of number', function (assert) { - var i, testMoment; - for (i = 1; i <= 31; ++i) { - testMoment = moment('2014 01 ' + i, 'YYYY MM Do'); - assert.equal(testMoment.year(), 2014, - 'lenient day of month ordinal parsing of number ' + i + ' year check'); - assert.equal(testMoment.month(), 0, - 'lenient day of month ordinal parsing of number ' + i + ' month check'); - assert.equal(testMoment.date(), i, - 'lenient day of month ordinal parsing of number ' + i + ' date check'); - } - }); - - test('strict day of month ordinal parsing', function (assert) { - var i, ordinalStr, testMoment; - for (i = 1; i <= 31; ++i) { - ordinalStr = moment([2014, 0, i]).format('YYYY MM Do'); - testMoment = moment(ordinalStr, 'YYYY MM Do', true); - assert.ok(testMoment.isValid(), 'strict day of month ordinal parsing ' + i); - } - }); - - test('meridiem invariant', function (assert) { - var h, m, t1, t2; - for (h = 0; h < 24; ++h) { - for (m = 0; m < 60; m += 15) { - t1 = moment.utc([2000, 0, 1, h, m]); - t2 = moment.utc(t1.format('A h:mm'), 'A h:mm'); - assert.equal(t2.format('HH:mm'), t1.format('HH:mm'), - 'meridiem at ' + t1.format('HH:mm')); - } - } - }); - - test('date format correctness', function (assert) { - var data, tokens; - data = moment.localeData()._longDateFormat; - tokens = objectKeys(data); - each(tokens, function (srchToken) { - // Check each format string to make sure it does not contain any - // tokens that need to be expanded. - each(tokens, function (baseToken) { - // strip escaped sequences - var format = data[baseToken].replace(/(\[[^\]]*\])/g, ''); - assert.equal(false, !!~format.indexOf(srchToken), - 'contains ' + srchToken + ' in ' + baseToken); - }); - }); - }); - - test('month parsing correctness', function (assert) { - var i, m; - - if (locale === 'tr') { - // I can't fix it :( - expect(0); - return; - } - function tester(format) { - var r; - r = moment(m.format(format), format); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format); - r = moment(m.format(format).toLocaleUpperCase(), format); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' upper'); - r = moment(m.format(format).toLocaleLowerCase(), format); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' lower'); - - r = moment(m.format(format), format, true); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' strict'); - r = moment(m.format(format).toLocaleUpperCase(), format, true); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' upper strict'); - r = moment(m.format(format).toLocaleLowerCase(), format, true); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' lower strict'); - } - - for (i = 0; i < 12; ++i) { - m = moment([2015, i, 15, 18]); - tester('MMM'); - tester('MMM.'); - tester('MMMM'); - tester('MMMM.'); - } - }); - - test('weekday parsing correctness', function (assert) { - var i, m; - - if (locale === 'tr' || locale === 'az' || locale === 'ro') { - // tr, az: There is a lower-case letter (ı), that converted to - // upper then lower changes to i - // ro: there is the letter ț which behaves weird under IE8 - expect(0); - return; - } - function tester(format) { - var r, baseMsg = 'weekday ' + m.weekday() + ' fmt ' + format + ' ' + m.toISOString(); - r = moment(m.format(format), format); - assert.equal(r.weekday(), m.weekday(), baseMsg); - r = moment(m.format(format).toLocaleUpperCase(), format); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' upper'); - r = moment(m.format(format).toLocaleLowerCase(), format); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' lower'); - - r = moment(m.format(format), format, true); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' strict'); - r = moment(m.format(format).toLocaleUpperCase(), format, true); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' upper strict'); - r = moment(m.format(format).toLocaleLowerCase(), format, true); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' lower strict'); - } - - for (i = 0; i < 7; ++i) { - m = moment.utc([2015, 0, i + 1, 18]); - tester('dd'); - tester('ddd'); - tester('dddd'); - } - }); - - test('valid localeData', function (assert) { - assert.equal(moment().localeData().months().length, 12, 'months should return 12 months'); - assert.equal(moment().localeData().monthsShort().length, 12, 'monthsShort should return 12 months'); - assert.equal(moment().localeData().weekdays().length, 7, 'weekdays should return 7 days'); - assert.equal(moment().localeData().weekdaysShort().length, 7, 'weekdaysShort should return 7 days'); - assert.equal(moment().localeData().weekdaysMin().length, 7, 'monthsShort should return 7 days'); - }); -} - -function setupDeprecationHandler(test, moment$$1, scope) { - test._expectedDeprecations = null; - test._observedDeprecations = null; - test._oldSupress = moment$$1.suppressDeprecationWarnings; - moment$$1.suppressDeprecationWarnings = true; - test.expectedDeprecations = function () { - test._expectedDeprecations = arguments; - test._observedDeprecations = []; - }; - moment$$1.deprecationHandler = function (name, msg) { - var deprecationId = matchedDeprecation(name, msg, test._expectedDeprecations); - if (deprecationId === -1) { - throw new Error('Unexpected deprecation thrown name=' + - name + ' msg=' + msg); - } - test._observedDeprecations[deprecationId] = 1; - }; -} - -function teardownDeprecationHandler(test, moment$$1, scope) { - moment$$1.suppressDeprecationWarnings = test._oldSupress; - - if (test._expectedDeprecations != null) { - var missedDeprecations = []; - each(test._expectedDeprecations, function (deprecationPattern, id) { - if (test._observedDeprecations[id] !== 1) { - missedDeprecations.push(deprecationPattern); - } - }); - if (missedDeprecations.length !== 0) { - throw new Error('Expected deprecation warnings did not happen: ' + - missedDeprecations.join(' ')); - } - } -} - -function matchedDeprecation(name, msg, deprecations) { - if (deprecations == null) { - return -1; - } - for (var i = 0; i < deprecations.length; ++i) { - if (name != null && name === deprecations[i]) { - return i; - } - if (msg != null && msg.substring(0, deprecations[i].length) === deprecations[i]) { - return i; - } - } - return -1; -} - -/*global QUnit:false*/ - -var test = QUnit.test; - -var expect = QUnit.expect; - - - -function localeModule (name, lifecycle) { - QUnit.module('locale:' + name, { - setup : function () { - moment.locale(name); - moment.createFromInputFallback = function (config) { - throw new Error('input not handled by moment: ' + config._i); - }; - setupDeprecationHandler(test, moment, 'locale'); - if (lifecycle && lifecycle.setup) { - lifecycle.setup(); - } - }, - teardown : function () { - moment.locale('en'); - teardownDeprecationHandler(test, moment, 'locale'); - if (lifecycle && lifecycle.teardown) { - lifecycle.teardown(); - } - } - }); - defineCommonLocaleTests(name, -1, -1); -} - -localeModule('nl-be'); - -test('parse', function (assert) { - var tests = 'januari jan._februari feb._maart mrt._april apr._mei mei._juni jun._juli jul._augustus aug._september sep._oktober okt._november nov._december dec.'.split('_'), i; - function equalTest(input, mmm, i) { - assert.equal(moment(input, mmm).month(), i, input + ' should be month ' + (i + 1)); - } - for (i = 0; i < 12; i++) { - tests[i] = tests[i].split(' '); - equalTest(tests[i][0], 'MMM', i); - equalTest(tests[i][1], 'MMM', i); - equalTest(tests[i][0], 'MMMM', i); - equalTest(tests[i][1], 'MMMM', i); - equalTest(tests[i][0].toLocaleLowerCase(), 'MMMM', i); - equalTest(tests[i][1].toLocaleLowerCase(), 'MMMM', i); - equalTest(tests[i][0].toLocaleUpperCase(), 'MMMM', i); - equalTest(tests[i][1].toLocaleUpperCase(), 'MMMM', i); - } -}); - -test('format', function (assert) { - var a = [ - ['dddd, MMMM Do YYYY, HH:mm:ss', 'zondag, februari 14de 2010, 15:25:50'], - ['ddd, HH', 'zo., 15'], - ['M Mo MM MMMM MMM', '2 2de 02 februari feb.'], - ['YYYY YY', '2010 10'], - ['D Do DD', '14 14de 14'], - ['d do dddd ddd dd', '0 0de zondag zo. Zo'], - ['DDD DDDo DDDD', '45 45ste 045'], - ['w wo ww', '6 6de 06'], - ['h hh', '3 03'], - ['H HH', '15 15'], - ['m mm', '25 25'], - ['s ss', '50 50'], - ['a A', 'pm PM'], - ['[the] DDDo [day of the year]', 'the 45ste day of the year'], - ['LTS', '15:25:50'], - ['L', '14/02/2010'], - ['LL', '14 februari 2010'], - ['LLL', '14 februari 2010 15:25'], - ['LLLL', 'zondag 14 februari 2010 15:25'], - ['l', '14/2/2010'], - ['ll', '14 feb. 2010'], - ['lll', '14 feb. 2010 15:25'], - ['llll', 'zo. 14 feb. 2010 15:25'] - ], - b = moment(new Date(2010, 1, 14, 15, 25, 50, 125)), - i; - for (i = 0; i < a.length; i++) { - assert.equal(b.format(a[i][0]), a[i][1], a[i][0] + ' ---> ' + a[i][1]); - } -}); - -test('format ordinal', function (assert) { - assert.equal(moment([2011, 0, 1]).format('DDDo'), '1ste', '1ste'); - assert.equal(moment([2011, 0, 2]).format('DDDo'), '2de', '2de'); - assert.equal(moment([2011, 0, 3]).format('DDDo'), '3de', '3de'); - assert.equal(moment([2011, 0, 4]).format('DDDo'), '4de', '4de'); - assert.equal(moment([2011, 0, 5]).format('DDDo'), '5de', '5de'); - assert.equal(moment([2011, 0, 6]).format('DDDo'), '6de', '6de'); - assert.equal(moment([2011, 0, 7]).format('DDDo'), '7de', '7de'); - assert.equal(moment([2011, 0, 8]).format('DDDo'), '8ste', '8ste'); - assert.equal(moment([2011, 0, 9]).format('DDDo'), '9de', '9de'); - assert.equal(moment([2011, 0, 10]).format('DDDo'), '10de', '10de'); - - assert.equal(moment([2011, 0, 11]).format('DDDo'), '11de', '11de'); - assert.equal(moment([2011, 0, 12]).format('DDDo'), '12de', '12de'); - assert.equal(moment([2011, 0, 13]).format('DDDo'), '13de', '13de'); - assert.equal(moment([2011, 0, 14]).format('DDDo'), '14de', '14de'); - assert.equal(moment([2011, 0, 15]).format('DDDo'), '15de', '15de'); - assert.equal(moment([2011, 0, 16]).format('DDDo'), '16de', '16de'); - assert.equal(moment([2011, 0, 17]).format('DDDo'), '17de', '17de'); - assert.equal(moment([2011, 0, 18]).format('DDDo'), '18de', '18de'); - assert.equal(moment([2011, 0, 19]).format('DDDo'), '19de', '19de'); - assert.equal(moment([2011, 0, 20]).format('DDDo'), '20ste', '20ste'); - - assert.equal(moment([2011, 0, 21]).format('DDDo'), '21ste', '21ste'); - assert.equal(moment([2011, 0, 22]).format('DDDo'), '22ste', '22ste'); - assert.equal(moment([2011, 0, 23]).format('DDDo'), '23ste', '23ste'); - assert.equal(moment([2011, 0, 24]).format('DDDo'), '24ste', '24ste'); - assert.equal(moment([2011, 0, 25]).format('DDDo'), '25ste', '25ste'); - assert.equal(moment([2011, 0, 26]).format('DDDo'), '26ste', '26ste'); - assert.equal(moment([2011, 0, 27]).format('DDDo'), '27ste', '27ste'); - assert.equal(moment([2011, 0, 28]).format('DDDo'), '28ste', '28ste'); - assert.equal(moment([2011, 0, 29]).format('DDDo'), '29ste', '29ste'); - assert.equal(moment([2011, 0, 30]).format('DDDo'), '30ste', '30ste'); - - assert.equal(moment([2011, 0, 31]).format('DDDo'), '31ste', '31ste'); -}); - -test('format month', function (assert) { - var expected = 'januari jan._februari feb._maart mrt._april apr._mei mei_juni jun._juli jul._augustus aug._september sep._oktober okt._november nov._december dec.'.split('_'), i; - for (i = 0; i < expected.length; i++) { - assert.equal(moment([2011, i, 1]).format('MMMM MMM'), expected[i], expected[i]); - } -}); - -test('format week', function (assert) { - var expected = 'zondag zo. Zo_maandag ma. Ma_dinsdag di. Di_woensdag wo. Wo_donderdag do. Do_vrijdag vr. Vr_zaterdag za. Za'.split('_'), i; - for (i = 0; i < expected.length; i++) { - assert.equal(moment([2011, 0, 2 + i]).format('dddd ddd dd'), expected[i], expected[i]); - } -}); - -test('from', function (assert) { - var start = moment([2007, 1, 28]); - assert.equal(start.from(moment([2007, 1, 28]).add({s: 44}), true), 'een paar seconden', '44 seconds = a few seconds'); - assert.equal(start.from(moment([2007, 1, 28]).add({s: 45}), true), 'één minuut', '45 seconds = a minute'); - assert.equal(start.from(moment([2007, 1, 28]).add({s: 89}), true), 'één minuut', '89 seconds = a minute'); - assert.equal(start.from(moment([2007, 1, 28]).add({s: 90}), true), '2 minuten', '90 seconds = 2 minutes'); - assert.equal(start.from(moment([2007, 1, 28]).add({m: 44}), true), '44 minuten', '44 minutes = 44 minutes'); - assert.equal(start.from(moment([2007, 1, 28]).add({m: 45}), true), 'één uur', '45 minutes = an hour'); - assert.equal(start.from(moment([2007, 1, 28]).add({m: 89}), true), 'één uur', '89 minutes = an hour'); - assert.equal(start.from(moment([2007, 1, 28]).add({m: 90}), true), '2 uur', '90 minutes = 2 hours'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 5}), true), '5 uur', '5 hours = 5 hours'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 21}), true), '21 uur', '21 hours = 21 hours'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 22}), true), 'één dag', '22 hours = a day'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 35}), true), 'één dag', '35 hours = a day'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 36}), true), '2 dagen', '36 hours = 2 days'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 1}), true), 'één dag', '1 day = a day'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 5}), true), '5 dagen', '5 days = 5 days'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 25}), true), '25 dagen', '25 days = 25 days'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 26}), true), 'één maand', '26 days = a month'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 30}), true), 'één maand', '30 days = a month'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 43}), true), 'één maand', '43 days = a month'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 46}), true), '2 maanden', '46 days = 2 months'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 74}), true), '2 maanden', '75 days = 2 months'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 76}), true), '3 maanden', '76 days = 3 months'); - assert.equal(start.from(moment([2007, 1, 28]).add({M: 1}), true), 'één maand', '1 month = a month'); - assert.equal(start.from(moment([2007, 1, 28]).add({M: 5}), true), '5 maanden', '5 months = 5 months'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 345}), true), 'één jaar', '345 days = a year'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 548}), true), '2 jaar', '548 days = 2 years'); - assert.equal(start.from(moment([2007, 1, 28]).add({y: 1}), true), 'één jaar', '1 year = a year'); - assert.equal(start.from(moment([2007, 1, 28]).add({y: 5}), true), '5 jaar', '5 years = 5 years'); -}); - -test('suffix', function (assert) { - assert.equal(moment(30000).from(0), 'over een paar seconden', 'prefix'); - assert.equal(moment(0).from(30000), 'een paar seconden geleden', 'suffix'); -}); - -test('now from now', function (assert) { - assert.equal(moment().fromNow(), 'een paar seconden geleden', 'now from now should display as in the past'); -}); - -test('fromNow', function (assert) { - assert.equal(moment().add({s: 30}).fromNow(), 'over een paar seconden', 'in a few seconds'); - assert.equal(moment().add({d: 5}).fromNow(), 'over 5 dagen', 'in 5 days'); -}); - -test('calendar day', function (assert) { - var a = moment().hours(12).minutes(0).seconds(0); - - assert.equal(moment(a).calendar(), 'vandaag om 12:00', 'today at the same time'); - assert.equal(moment(a).add({m: 25}).calendar(), 'vandaag om 12:25', 'Now plus 25 min'); - assert.equal(moment(a).add({h: 1}).calendar(), 'vandaag om 13:00', 'Now plus 1 hour'); - assert.equal(moment(a).add({d: 1}).calendar(), 'morgen om 12:00', 'tomorrow at the same time'); - assert.equal(moment(a).subtract({h: 1}).calendar(), 'vandaag om 11:00', 'Now minus 1 hour'); - assert.equal(moment(a).subtract({d: 1}).calendar(), 'gisteren om 12:00', 'yesterday at the same time'); -}); - -test('calendar next week', function (assert) { - var i, m; - for (i = 2; i < 7; i++) { - m = moment().add({d: i}); - assert.equal(m.calendar(), m.format('dddd [om] LT'), 'Today + ' + i + ' days current time'); - m.hours(0).minutes(0).seconds(0).milliseconds(0); - assert.equal(m.calendar(), m.format('dddd [om] LT'), 'Today + ' + i + ' days beginning of day'); - m.hours(23).minutes(59).seconds(59).milliseconds(999); - assert.equal(m.calendar(), m.format('dddd [om] LT'), 'Today + ' + i + ' days end of day'); - } -}); - -test('calendar last week', function (assert) { - var i, m; - for (i = 2; i < 7; i++) { - m = moment().subtract({d: i}); - assert.equal(m.calendar(), m.format('[afgelopen] dddd [om] LT'), 'Today - ' + i + ' days current time'); - m.hours(0).minutes(0).seconds(0).milliseconds(0); - assert.equal(m.calendar(), m.format('[afgelopen] dddd [om] LT'), 'Today - ' + i + ' days beginning of day'); - m.hours(23).minutes(59).seconds(59).milliseconds(999); - assert.equal(m.calendar(), m.format('[afgelopen] dddd [om] LT'), 'Today - ' + i + ' days end of day'); - } -}); - -test('calendar all else', function (assert) { - var weeksAgo = moment().subtract({w: 1}), - weeksFromNow = moment().add({w: 1}); - - assert.equal(weeksAgo.calendar(), weeksAgo.format('L'), '1 week ago'); - assert.equal(weeksFromNow.calendar(), weeksFromNow.format('L'), 'in 1 week'); - - weeksAgo = moment().subtract({w: 2}); - weeksFromNow = moment().add({w: 2}); - - assert.equal(weeksAgo.calendar(), weeksAgo.format('L'), '2 weeks ago'); - assert.equal(weeksFromNow.calendar(), weeksFromNow.format('L'), 'in 2 weeks'); -}); - -test('month abbreviation', function (assert) { - assert.equal(moment([2012, 5, 23]).format('D-MMM-YYYY'), '23-jun-2012', 'format month abbreviation surrounded by dashes should not include a dot'); - assert.equal(moment([2012, 5, 23]).unix(), moment('23-jun-2012', 'D-MMM-YYYY').unix(), 'parse month abbreviation surrounded by dashes without dot'); - assert.equal(moment([2012, 5, 23]).format('D MMM YYYY'), '23 jun. 2012', 'format month abbreviation not surrounded by dashes should include a dot'); - assert.equal(moment([2012, 5, 23]).unix(), moment('23 jun. 2012', 'D MMM YYYY').unix(), 'parse month abbreviation not surrounded by dashes with dot'); -}); - -test('weeks year starting sunday formatted', function (assert) { - assert.equal(moment([2012, 0, 1]).format('w ww wo'), '52 52 52ste', 'Jan 1 2012 should be week 52'); - assert.equal(moment([2012, 0, 2]).format('w ww wo'), '1 01 1ste', 'Jan 2 2012 should be week 1'); - assert.equal(moment([2012, 0, 8]).format('w ww wo'), '1 01 1ste', 'Jan 8 2012 should be week 1'); - assert.equal(moment([2012, 0, 9]).format('w ww wo'), '2 02 2de', 'Jan 9 2012 should be week 2'); - assert.equal(moment([2012, 0, 15]).format('w ww wo'), '2 02 2de', 'Jan 15 2012 should be week 2'); -}); - -}))); - - -;(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' - && typeof require === 'function' ? factory(require('../../moment')) : - typeof define === 'function' && define.amd ? define(['../../moment'], factory) : - factory(global.moment) -}(this, (function (moment) { 'use strict'; - -function each(array, callback) { - var i; - for (i = 0; i < array.length; i++) { - callback(array[i], i, array); - } -} - -function objectKeys(obj) { - if (Object.keys) { - return Object.keys(obj); - } else { - // IE8 - var res = [], i; - for (i in obj) { - if (obj.hasOwnProperty(i)) { - res.push(i); - } - } - return res; - } -} - -// Pick the first defined of two or three arguments. - -function defineCommonLocaleTests(locale, options) { - test('lenient day of month ordinal parsing', function (assert) { - var i, ordinalStr, testMoment; - for (i = 1; i <= 31; ++i) { - ordinalStr = moment([2014, 0, i]).format('YYYY MM Do'); - testMoment = moment(ordinalStr, 'YYYY MM Do'); - assert.equal(testMoment.year(), 2014, - 'lenient day of month ordinal parsing ' + i + ' year check'); - assert.equal(testMoment.month(), 0, - 'lenient day of month ordinal parsing ' + i + ' month check'); - assert.equal(testMoment.date(), i, - 'lenient day of month ordinal parsing ' + i + ' date check'); - } - }); - - test('lenient day of month ordinal parsing of number', function (assert) { - var i, testMoment; - for (i = 1; i <= 31; ++i) { - testMoment = moment('2014 01 ' + i, 'YYYY MM Do'); - assert.equal(testMoment.year(), 2014, - 'lenient day of month ordinal parsing of number ' + i + ' year check'); - assert.equal(testMoment.month(), 0, - 'lenient day of month ordinal parsing of number ' + i + ' month check'); - assert.equal(testMoment.date(), i, - 'lenient day of month ordinal parsing of number ' + i + ' date check'); - } - }); - - test('strict day of month ordinal parsing', function (assert) { - var i, ordinalStr, testMoment; - for (i = 1; i <= 31; ++i) { - ordinalStr = moment([2014, 0, i]).format('YYYY MM Do'); - testMoment = moment(ordinalStr, 'YYYY MM Do', true); - assert.ok(testMoment.isValid(), 'strict day of month ordinal parsing ' + i); - } - }); - - test('meridiem invariant', function (assert) { - var h, m, t1, t2; - for (h = 0; h < 24; ++h) { - for (m = 0; m < 60; m += 15) { - t1 = moment.utc([2000, 0, 1, h, m]); - t2 = moment.utc(t1.format('A h:mm'), 'A h:mm'); - assert.equal(t2.format('HH:mm'), t1.format('HH:mm'), - 'meridiem at ' + t1.format('HH:mm')); - } - } - }); - - test('date format correctness', function (assert) { - var data, tokens; - data = moment.localeData()._longDateFormat; - tokens = objectKeys(data); - each(tokens, function (srchToken) { - // Check each format string to make sure it does not contain any - // tokens that need to be expanded. - each(tokens, function (baseToken) { - // strip escaped sequences - var format = data[baseToken].replace(/(\[[^\]]*\])/g, ''); - assert.equal(false, !!~format.indexOf(srchToken), - 'contains ' + srchToken + ' in ' + baseToken); - }); - }); - }); - - test('month parsing correctness', function (assert) { - var i, m; - - if (locale === 'tr') { - // I can't fix it :( - expect(0); - return; - } - function tester(format) { - var r; - r = moment(m.format(format), format); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format); - r = moment(m.format(format).toLocaleUpperCase(), format); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' upper'); - r = moment(m.format(format).toLocaleLowerCase(), format); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' lower'); - - r = moment(m.format(format), format, true); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' strict'); - r = moment(m.format(format).toLocaleUpperCase(), format, true); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' upper strict'); - r = moment(m.format(format).toLocaleLowerCase(), format, true); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' lower strict'); - } - - for (i = 0; i < 12; ++i) { - m = moment([2015, i, 15, 18]); - tester('MMM'); - tester('MMM.'); - tester('MMMM'); - tester('MMMM.'); - } - }); - - test('weekday parsing correctness', function (assert) { - var i, m; - - if (locale === 'tr' || locale === 'az' || locale === 'ro') { - // tr, az: There is a lower-case letter (ı), that converted to - // upper then lower changes to i - // ro: there is the letter ț which behaves weird under IE8 - expect(0); - return; - } - function tester(format) { - var r, baseMsg = 'weekday ' + m.weekday() + ' fmt ' + format + ' ' + m.toISOString(); - r = moment(m.format(format), format); - assert.equal(r.weekday(), m.weekday(), baseMsg); - r = moment(m.format(format).toLocaleUpperCase(), format); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' upper'); - r = moment(m.format(format).toLocaleLowerCase(), format); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' lower'); - - r = moment(m.format(format), format, true); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' strict'); - r = moment(m.format(format).toLocaleUpperCase(), format, true); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' upper strict'); - r = moment(m.format(format).toLocaleLowerCase(), format, true); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' lower strict'); - } - - for (i = 0; i < 7; ++i) { - m = moment.utc([2015, 0, i + 1, 18]); - tester('dd'); - tester('ddd'); - tester('dddd'); - } - }); - - test('valid localeData', function (assert) { - assert.equal(moment().localeData().months().length, 12, 'months should return 12 months'); - assert.equal(moment().localeData().monthsShort().length, 12, 'monthsShort should return 12 months'); - assert.equal(moment().localeData().weekdays().length, 7, 'weekdays should return 7 days'); - assert.equal(moment().localeData().weekdaysShort().length, 7, 'weekdaysShort should return 7 days'); - assert.equal(moment().localeData().weekdaysMin().length, 7, 'monthsShort should return 7 days'); - }); -} - -function setupDeprecationHandler(test, moment$$1, scope) { - test._expectedDeprecations = null; - test._observedDeprecations = null; - test._oldSupress = moment$$1.suppressDeprecationWarnings; - moment$$1.suppressDeprecationWarnings = true; - test.expectedDeprecations = function () { - test._expectedDeprecations = arguments; - test._observedDeprecations = []; - }; - moment$$1.deprecationHandler = function (name, msg) { - var deprecationId = matchedDeprecation(name, msg, test._expectedDeprecations); - if (deprecationId === -1) { - throw new Error('Unexpected deprecation thrown name=' + - name + ' msg=' + msg); - } - test._observedDeprecations[deprecationId] = 1; - }; -} - -function teardownDeprecationHandler(test, moment$$1, scope) { - moment$$1.suppressDeprecationWarnings = test._oldSupress; - - if (test._expectedDeprecations != null) { - var missedDeprecations = []; - each(test._expectedDeprecations, function (deprecationPattern, id) { - if (test._observedDeprecations[id] !== 1) { - missedDeprecations.push(deprecationPattern); - } - }); - if (missedDeprecations.length !== 0) { - throw new Error('Expected deprecation warnings did not happen: ' + - missedDeprecations.join(' ')); - } - } -} - -function matchedDeprecation(name, msg, deprecations) { - if (deprecations == null) { - return -1; - } - for (var i = 0; i < deprecations.length; ++i) { - if (name != null && name === deprecations[i]) { - return i; - } - if (msg != null && msg.substring(0, deprecations[i].length) === deprecations[i]) { - return i; - } - } - return -1; -} - -/*global QUnit:false*/ - -var test = QUnit.test; - -var expect = QUnit.expect; - - - -function localeModule (name, lifecycle) { - QUnit.module('locale:' + name, { - setup : function () { - moment.locale(name); - moment.createFromInputFallback = function (config) { - throw new Error('input not handled by moment: ' + config._i); - }; - setupDeprecationHandler(test, moment, 'locale'); - if (lifecycle && lifecycle.setup) { - lifecycle.setup(); - } - }, - teardown : function () { - moment.locale('en'); - teardownDeprecationHandler(test, moment, 'locale'); - if (lifecycle && lifecycle.teardown) { - lifecycle.teardown(); - } - } - }); - defineCommonLocaleTests(name, -1, -1); -} - -localeModule('nl'); - -test('parse', function (assert) { - var tests = 'januari jan._februari feb._maart mrt._april apr._mei mei._juni jun._juli jul._augustus aug._september sep._oktober okt._november nov._december dec.'.split('_'), i; - function equalTest(input, mmm, i) { - assert.equal(moment(input, mmm).month(), i, input + ' should be month ' + (i + 1)); - } - for (i = 0; i < 12; i++) { - tests[i] = tests[i].split(' '); - equalTest(tests[i][0], 'MMM', i); - equalTest(tests[i][1], 'MMM', i); - equalTest(tests[i][0], 'MMMM', i); - equalTest(tests[i][1], 'MMMM', i); - equalTest(tests[i][0].toLocaleLowerCase(), 'MMMM', i); - equalTest(tests[i][1].toLocaleLowerCase(), 'MMMM', i); - equalTest(tests[i][0].toLocaleUpperCase(), 'MMMM', i); - equalTest(tests[i][1].toLocaleUpperCase(), 'MMMM', i); - } -}); - -test('format', function (assert) { - var a = [ - ['dddd, MMMM Do YYYY, HH:mm:ss', 'zondag, februari 14de 2010, 15:25:50'], - ['ddd, HH', 'zo., 15'], - ['M Mo MM MMMM MMM', '2 2de 02 februari feb.'], - ['YYYY YY', '2010 10'], - ['D Do DD', '14 14de 14'], - ['d do dddd ddd dd', '0 0de zondag zo. Zo'], - ['DDD DDDo DDDD', '45 45ste 045'], - ['w wo ww', '6 6de 06'], - ['h hh', '3 03'], - ['H HH', '15 15'], - ['m mm', '25 25'], - ['s ss', '50 50'], - ['a A', 'pm PM'], - ['[the] DDDo [day of the year]', 'the 45ste day of the year'], - ['LTS', '15:25:50'], - ['L', '14-02-2010'], - ['LL', '14 februari 2010'], - ['LLL', '14 februari 2010 15:25'], - ['LLLL', 'zondag 14 februari 2010 15:25'], - ['l', '14-2-2010'], - ['ll', '14 feb. 2010'], - ['lll', '14 feb. 2010 15:25'], - ['llll', 'zo. 14 feb. 2010 15:25'] - ], - b = moment(new Date(2010, 1, 14, 15, 25, 50, 125)), - i; - for (i = 0; i < a.length; i++) { - assert.equal(b.format(a[i][0]), a[i][1], a[i][0] + ' ---> ' + a[i][1]); - } -}); - -test('format ordinal', function (assert) { - assert.equal(moment([2011, 0, 1]).format('DDDo'), '1ste', '1ste'); - assert.equal(moment([2011, 0, 2]).format('DDDo'), '2de', '2de'); - assert.equal(moment([2011, 0, 3]).format('DDDo'), '3de', '3de'); - assert.equal(moment([2011, 0, 4]).format('DDDo'), '4de', '4de'); - assert.equal(moment([2011, 0, 5]).format('DDDo'), '5de', '5de'); - assert.equal(moment([2011, 0, 6]).format('DDDo'), '6de', '6de'); - assert.equal(moment([2011, 0, 7]).format('DDDo'), '7de', '7de'); - assert.equal(moment([2011, 0, 8]).format('DDDo'), '8ste', '8ste'); - assert.equal(moment([2011, 0, 9]).format('DDDo'), '9de', '9de'); - assert.equal(moment([2011, 0, 10]).format('DDDo'), '10de', '10de'); - - assert.equal(moment([2011, 0, 11]).format('DDDo'), '11de', '11de'); - assert.equal(moment([2011, 0, 12]).format('DDDo'), '12de', '12de'); - assert.equal(moment([2011, 0, 13]).format('DDDo'), '13de', '13de'); - assert.equal(moment([2011, 0, 14]).format('DDDo'), '14de', '14de'); - assert.equal(moment([2011, 0, 15]).format('DDDo'), '15de', '15de'); - assert.equal(moment([2011, 0, 16]).format('DDDo'), '16de', '16de'); - assert.equal(moment([2011, 0, 17]).format('DDDo'), '17de', '17de'); - assert.equal(moment([2011, 0, 18]).format('DDDo'), '18de', '18de'); - assert.equal(moment([2011, 0, 19]).format('DDDo'), '19de', '19de'); - assert.equal(moment([2011, 0, 20]).format('DDDo'), '20ste', '20ste'); - - assert.equal(moment([2011, 0, 21]).format('DDDo'), '21ste', '21ste'); - assert.equal(moment([2011, 0, 22]).format('DDDo'), '22ste', '22ste'); - assert.equal(moment([2011, 0, 23]).format('DDDo'), '23ste', '23ste'); - assert.equal(moment([2011, 0, 24]).format('DDDo'), '24ste', '24ste'); - assert.equal(moment([2011, 0, 25]).format('DDDo'), '25ste', '25ste'); - assert.equal(moment([2011, 0, 26]).format('DDDo'), '26ste', '26ste'); - assert.equal(moment([2011, 0, 27]).format('DDDo'), '27ste', '27ste'); - assert.equal(moment([2011, 0, 28]).format('DDDo'), '28ste', '28ste'); - assert.equal(moment([2011, 0, 29]).format('DDDo'), '29ste', '29ste'); - assert.equal(moment([2011, 0, 30]).format('DDDo'), '30ste', '30ste'); - - assert.equal(moment([2011, 0, 31]).format('DDDo'), '31ste', '31ste'); -}); - -test('format month', function (assert) { - var expected = 'januari jan._februari feb._maart mrt._april apr._mei mei_juni jun._juli jul._augustus aug._september sep._oktober okt._november nov._december dec.'.split('_'), i; - for (i = 0; i < expected.length; i++) { - assert.equal(moment([2011, i, 1]).format('MMMM MMM'), expected[i], expected[i]); - } -}); - -test('format week', function (assert) { - var expected = 'zondag zo. Zo_maandag ma. Ma_dinsdag di. Di_woensdag wo. Wo_donderdag do. Do_vrijdag vr. Vr_zaterdag za. Za'.split('_'), i; - for (i = 0; i < expected.length; i++) { - assert.equal(moment([2011, 0, 2 + i]).format('dddd ddd dd'), expected[i], expected[i]); - } -}); - -test('from', function (assert) { - var start = moment([2007, 1, 28]); - assert.equal(start.from(moment([2007, 1, 28]).add({s: 44}), true), 'een paar seconden', '44 seconds = a few seconds'); - assert.equal(start.from(moment([2007, 1, 28]).add({s: 45}), true), 'één minuut', '45 seconds = a minute'); - assert.equal(start.from(moment([2007, 1, 28]).add({s: 89}), true), 'één minuut', '89 seconds = a minute'); - assert.equal(start.from(moment([2007, 1, 28]).add({s: 90}), true), '2 minuten', '90 seconds = 2 minutes'); - assert.equal(start.from(moment([2007, 1, 28]).add({m: 44}), true), '44 minuten', '44 minutes = 44 minutes'); - assert.equal(start.from(moment([2007, 1, 28]).add({m: 45}), true), 'één uur', '45 minutes = an hour'); - assert.equal(start.from(moment([2007, 1, 28]).add({m: 89}), true), 'één uur', '89 minutes = an hour'); - assert.equal(start.from(moment([2007, 1, 28]).add({m: 90}), true), '2 uur', '90 minutes = 2 hours'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 5}), true), '5 uur', '5 hours = 5 hours'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 21}), true), '21 uur', '21 hours = 21 hours'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 22}), true), 'één dag', '22 hours = a day'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 35}), true), 'één dag', '35 hours = a day'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 36}), true), '2 dagen', '36 hours = 2 days'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 1}), true), 'één dag', '1 day = a day'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 5}), true), '5 dagen', '5 days = 5 days'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 25}), true), '25 dagen', '25 days = 25 days'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 26}), true), 'één maand', '26 days = a month'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 30}), true), 'één maand', '30 days = a month'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 43}), true), 'één maand', '43 days = a month'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 46}), true), '2 maanden', '46 days = 2 months'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 74}), true), '2 maanden', '75 days = 2 months'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 76}), true), '3 maanden', '76 days = 3 months'); - assert.equal(start.from(moment([2007, 1, 28]).add({M: 1}), true), 'één maand', '1 month = a month'); - assert.equal(start.from(moment([2007, 1, 28]).add({M: 5}), true), '5 maanden', '5 months = 5 months'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 345}), true), 'één jaar', '345 days = a year'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 548}), true), '2 jaar', '548 days = 2 years'); - assert.equal(start.from(moment([2007, 1, 28]).add({y: 1}), true), 'één jaar', '1 year = a year'); - assert.equal(start.from(moment([2007, 1, 28]).add({y: 5}), true), '5 jaar', '5 years = 5 years'); -}); - -test('suffix', function (assert) { - assert.equal(moment(30000).from(0), 'over een paar seconden', 'prefix'); - assert.equal(moment(0).from(30000), 'een paar seconden geleden', 'suffix'); -}); - -test('now from now', function (assert) { - assert.equal(moment().fromNow(), 'een paar seconden geleden', 'now from now should display as in the past'); -}); - -test('fromNow', function (assert) { - assert.equal(moment().add({s: 30}).fromNow(), 'over een paar seconden', 'in a few seconds'); - assert.equal(moment().add({d: 5}).fromNow(), 'over 5 dagen', 'in 5 days'); -}); - -test('calendar day', function (assert) { - var a = moment().hours(12).minutes(0).seconds(0); - - assert.equal(moment(a).calendar(), 'vandaag om 12:00', 'today at the same time'); - assert.equal(moment(a).add({m: 25}).calendar(), 'vandaag om 12:25', 'Now plus 25 min'); - assert.equal(moment(a).add({h: 1}).calendar(), 'vandaag om 13:00', 'Now plus 1 hour'); - assert.equal(moment(a).add({d: 1}).calendar(), 'morgen om 12:00', 'tomorrow at the same time'); - assert.equal(moment(a).subtract({h: 1}).calendar(), 'vandaag om 11:00', 'Now minus 1 hour'); - assert.equal(moment(a).subtract({d: 1}).calendar(), 'gisteren om 12:00', 'yesterday at the same time'); -}); - -test('calendar next week', function (assert) { - var i, m; - for (i = 2; i < 7; i++) { - m = moment().add({d: i}); - assert.equal(m.calendar(), m.format('dddd [om] LT'), 'Today + ' + i + ' days current time'); - m.hours(0).minutes(0).seconds(0).milliseconds(0); - assert.equal(m.calendar(), m.format('dddd [om] LT'), 'Today + ' + i + ' days beginning of day'); - m.hours(23).minutes(59).seconds(59).milliseconds(999); - assert.equal(m.calendar(), m.format('dddd [om] LT'), 'Today + ' + i + ' days end of day'); - } -}); - -test('calendar last week', function (assert) { - var i, m; - for (i = 2; i < 7; i++) { - m = moment().subtract({d: i}); - assert.equal(m.calendar(), m.format('[afgelopen] dddd [om] LT'), 'Today - ' + i + ' days current time'); - m.hours(0).minutes(0).seconds(0).milliseconds(0); - assert.equal(m.calendar(), m.format('[afgelopen] dddd [om] LT'), 'Today - ' + i + ' days beginning of day'); - m.hours(23).minutes(59).seconds(59).milliseconds(999); - assert.equal(m.calendar(), m.format('[afgelopen] dddd [om] LT'), 'Today - ' + i + ' days end of day'); - } -}); - -test('calendar all else', function (assert) { - var weeksAgo = moment().subtract({w: 1}), - weeksFromNow = moment().add({w: 1}); - - assert.equal(weeksAgo.calendar(), weeksAgo.format('L'), '1 week ago'); - assert.equal(weeksFromNow.calendar(), weeksFromNow.format('L'), 'in 1 week'); - - weeksAgo = moment().subtract({w: 2}); - weeksFromNow = moment().add({w: 2}); - - assert.equal(weeksAgo.calendar(), weeksAgo.format('L'), '2 weeks ago'); - assert.equal(weeksFromNow.calendar(), weeksFromNow.format('L'), 'in 2 weeks'); -}); - -test('month abbreviation', function (assert) { - assert.equal(moment([2012, 5, 23]).format('D-MMM-YYYY'), '23-jun-2012', 'format month abbreviation surrounded by dashes should not include a dot'); - assert.equal(moment([2012, 5, 23]).unix(), moment('23-jun-2012', 'D-MMM-YYYY').unix(), 'parse month abbreviation surrounded by dashes without dot'); - assert.equal(moment([2012, 5, 23]).format('D MMM YYYY'), '23 jun. 2012', 'format month abbreviation not surrounded by dashes should include a dot'); - assert.equal(moment([2012, 5, 23]).unix(), moment('23 jun. 2012', 'D MMM YYYY').unix(), 'parse month abbreviation not surrounded by dashes with dot'); -}); - -test('weeks year starting sunday formatted', function (assert) { - assert.equal(moment([2012, 0, 1]).format('w ww wo'), '52 52 52ste', 'Jan 1 2012 should be week 52'); - assert.equal(moment([2012, 0, 2]).format('w ww wo'), '1 01 1ste', 'Jan 2 2012 should be week 1'); - assert.equal(moment([2012, 0, 8]).format('w ww wo'), '1 01 1ste', 'Jan 8 2012 should be week 1'); - assert.equal(moment([2012, 0, 9]).format('w ww wo'), '2 02 2de', 'Jan 9 2012 should be week 2'); - assert.equal(moment([2012, 0, 15]).format('w ww wo'), '2 02 2de', 'Jan 15 2012 should be week 2'); -}); - -}))); - - -;(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' - && typeof require === 'function' ? factory(require('../../moment')) : - typeof define === 'function' && define.amd ? define(['../../moment'], factory) : - factory(global.moment) -}(this, (function (moment) { 'use strict'; - -function each(array, callback) { - var i; - for (i = 0; i < array.length; i++) { - callback(array[i], i, array); - } -} - -function objectKeys(obj) { - if (Object.keys) { - return Object.keys(obj); - } else { - // IE8 - var res = [], i; - for (i in obj) { - if (obj.hasOwnProperty(i)) { - res.push(i); - } - } - return res; - } -} - -// Pick the first defined of two or three arguments. - -function defineCommonLocaleTests(locale, options) { - test('lenient day of month ordinal parsing', function (assert) { - var i, ordinalStr, testMoment; - for (i = 1; i <= 31; ++i) { - ordinalStr = moment([2014, 0, i]).format('YYYY MM Do'); - testMoment = moment(ordinalStr, 'YYYY MM Do'); - assert.equal(testMoment.year(), 2014, - 'lenient day of month ordinal parsing ' + i + ' year check'); - assert.equal(testMoment.month(), 0, - 'lenient day of month ordinal parsing ' + i + ' month check'); - assert.equal(testMoment.date(), i, - 'lenient day of month ordinal parsing ' + i + ' date check'); - } - }); - - test('lenient day of month ordinal parsing of number', function (assert) { - var i, testMoment; - for (i = 1; i <= 31; ++i) { - testMoment = moment('2014 01 ' + i, 'YYYY MM Do'); - assert.equal(testMoment.year(), 2014, - 'lenient day of month ordinal parsing of number ' + i + ' year check'); - assert.equal(testMoment.month(), 0, - 'lenient day of month ordinal parsing of number ' + i + ' month check'); - assert.equal(testMoment.date(), i, - 'lenient day of month ordinal parsing of number ' + i + ' date check'); - } - }); - - test('strict day of month ordinal parsing', function (assert) { - var i, ordinalStr, testMoment; - for (i = 1; i <= 31; ++i) { - ordinalStr = moment([2014, 0, i]).format('YYYY MM Do'); - testMoment = moment(ordinalStr, 'YYYY MM Do', true); - assert.ok(testMoment.isValid(), 'strict day of month ordinal parsing ' + i); - } - }); - - test('meridiem invariant', function (assert) { - var h, m, t1, t2; - for (h = 0; h < 24; ++h) { - for (m = 0; m < 60; m += 15) { - t1 = moment.utc([2000, 0, 1, h, m]); - t2 = moment.utc(t1.format('A h:mm'), 'A h:mm'); - assert.equal(t2.format('HH:mm'), t1.format('HH:mm'), - 'meridiem at ' + t1.format('HH:mm')); - } - } - }); - - test('date format correctness', function (assert) { - var data, tokens; - data = moment.localeData()._longDateFormat; - tokens = objectKeys(data); - each(tokens, function (srchToken) { - // Check each format string to make sure it does not contain any - // tokens that need to be expanded. - each(tokens, function (baseToken) { - // strip escaped sequences - var format = data[baseToken].replace(/(\[[^\]]*\])/g, ''); - assert.equal(false, !!~format.indexOf(srchToken), - 'contains ' + srchToken + ' in ' + baseToken); - }); - }); - }); - - test('month parsing correctness', function (assert) { - var i, m; - - if (locale === 'tr') { - // I can't fix it :( - expect(0); - return; - } - function tester(format) { - var r; - r = moment(m.format(format), format); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format); - r = moment(m.format(format).toLocaleUpperCase(), format); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' upper'); - r = moment(m.format(format).toLocaleLowerCase(), format); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' lower'); - - r = moment(m.format(format), format, true); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' strict'); - r = moment(m.format(format).toLocaleUpperCase(), format, true); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' upper strict'); - r = moment(m.format(format).toLocaleLowerCase(), format, true); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' lower strict'); - } - - for (i = 0; i < 12; ++i) { - m = moment([2015, i, 15, 18]); - tester('MMM'); - tester('MMM.'); - tester('MMMM'); - tester('MMMM.'); - } - }); - - test('weekday parsing correctness', function (assert) { - var i, m; - - if (locale === 'tr' || locale === 'az' || locale === 'ro') { - // tr, az: There is a lower-case letter (ı), that converted to - // upper then lower changes to i - // ro: there is the letter ț which behaves weird under IE8 - expect(0); - return; - } - function tester(format) { - var r, baseMsg = 'weekday ' + m.weekday() + ' fmt ' + format + ' ' + m.toISOString(); - r = moment(m.format(format), format); - assert.equal(r.weekday(), m.weekday(), baseMsg); - r = moment(m.format(format).toLocaleUpperCase(), format); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' upper'); - r = moment(m.format(format).toLocaleLowerCase(), format); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' lower'); - - r = moment(m.format(format), format, true); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' strict'); - r = moment(m.format(format).toLocaleUpperCase(), format, true); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' upper strict'); - r = moment(m.format(format).toLocaleLowerCase(), format, true); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' lower strict'); - } - - for (i = 0; i < 7; ++i) { - m = moment.utc([2015, 0, i + 1, 18]); - tester('dd'); - tester('ddd'); - tester('dddd'); - } - }); - - test('valid localeData', function (assert) { - assert.equal(moment().localeData().months().length, 12, 'months should return 12 months'); - assert.equal(moment().localeData().monthsShort().length, 12, 'monthsShort should return 12 months'); - assert.equal(moment().localeData().weekdays().length, 7, 'weekdays should return 7 days'); - assert.equal(moment().localeData().weekdaysShort().length, 7, 'weekdaysShort should return 7 days'); - assert.equal(moment().localeData().weekdaysMin().length, 7, 'monthsShort should return 7 days'); - }); -} - -function setupDeprecationHandler(test, moment$$1, scope) { - test._expectedDeprecations = null; - test._observedDeprecations = null; - test._oldSupress = moment$$1.suppressDeprecationWarnings; - moment$$1.suppressDeprecationWarnings = true; - test.expectedDeprecations = function () { - test._expectedDeprecations = arguments; - test._observedDeprecations = []; - }; - moment$$1.deprecationHandler = function (name, msg) { - var deprecationId = matchedDeprecation(name, msg, test._expectedDeprecations); - if (deprecationId === -1) { - throw new Error('Unexpected deprecation thrown name=' + - name + ' msg=' + msg); - } - test._observedDeprecations[deprecationId] = 1; - }; -} - -function teardownDeprecationHandler(test, moment$$1, scope) { - moment$$1.suppressDeprecationWarnings = test._oldSupress; - - if (test._expectedDeprecations != null) { - var missedDeprecations = []; - each(test._expectedDeprecations, function (deprecationPattern, id) { - if (test._observedDeprecations[id] !== 1) { - missedDeprecations.push(deprecationPattern); - } - }); - if (missedDeprecations.length !== 0) { - throw new Error('Expected deprecation warnings did not happen: ' + - missedDeprecations.join(' ')); - } - } -} - -function matchedDeprecation(name, msg, deprecations) { - if (deprecations == null) { - return -1; - } - for (var i = 0; i < deprecations.length; ++i) { - if (name != null && name === deprecations[i]) { - return i; - } - if (msg != null && msg.substring(0, deprecations[i].length) === deprecations[i]) { - return i; - } - } - return -1; -} - -/*global QUnit:false*/ - -var test = QUnit.test; - -var expect = QUnit.expect; - - - -function localeModule (name, lifecycle) { - QUnit.module('locale:' + name, { - setup : function () { - moment.locale(name); - moment.createFromInputFallback = function (config) { - throw new Error('input not handled by moment: ' + config._i); - }; - setupDeprecationHandler(test, moment, 'locale'); - if (lifecycle && lifecycle.setup) { - lifecycle.setup(); - } - }, - teardown : function () { - moment.locale('en'); - teardownDeprecationHandler(test, moment, 'locale'); - if (lifecycle && lifecycle.teardown) { - lifecycle.teardown(); - } - } - }); - defineCommonLocaleTests(name, -1, -1); -} - -localeModule('nn'); - -test('parse', function (assert) { - var tests = 'januar jan_februar feb_mars mar_april apr_mai mai_juni jun_juli jul_august aug_september sep_oktober okt_november nov_desember des'.split('_'), i; - function equalTest(input, mmm, i) { - assert.equal(moment(input, mmm).month(), i, input + ' should be month ' + (i + 1)); - } - for (i = 0; i < 12; i++) { - tests[i] = tests[i].split(' '); - equalTest(tests[i][0], 'MMM', i); - equalTest(tests[i][1], 'MMM', i); - equalTest(tests[i][0], 'MMMM', i); - equalTest(tests[i][1], 'MMMM', i); - equalTest(tests[i][0].toLocaleLowerCase(), 'MMMM', i); - equalTest(tests[i][1].toLocaleLowerCase(), 'MMMM', i); - equalTest(tests[i][0].toLocaleUpperCase(), 'MMMM', i); - equalTest(tests[i][1].toLocaleUpperCase(), 'MMMM', i); - } -}); - -test('format', function (assert) { - var a = [ - ['dddd, MMMM Do YYYY, h:mm:ss a', 'sundag, februar 14. 2010, 3:25:50 pm'], - ['ddd, hA', 'sun, 3PM'], - ['M Mo MM MMMM MMM', '2 2. 02 februar feb'], - ['YYYY YY', '2010 10'], - ['D Do DD', '14 14. 14'], - ['d do dddd ddd dd', '0 0. sundag sun su'], - ['DDD DDDo DDDD', '45 45. 045'], - ['w wo ww', '6 6. 06'], - ['h hh', '3 03'], - ['H HH', '15 15'], - ['m mm', '25 25'], - ['s ss', '50 50'], - ['a A', 'pm PM'], - ['[the] DDDo [day of the year]', 'the 45. day of the year'], - ['LTS', '15:25:50'], - ['L', '14.02.2010'], - ['LL', '14. februar 2010'], - ['LLL', '14. februar 2010 kl. 15:25'], - ['LLLL', 'sundag 14. februar 2010 kl. 15:25'], - ['l', '14.2.2010'], - ['ll', '14. feb 2010'], - ['lll', '14. feb 2010 kl. 15:25'], - ['llll', 'sun 14. feb 2010 kl. 15:25'] - ], - b = moment(new Date(2010, 1, 14, 15, 25, 50, 125)), - i; - for (i = 0; i < a.length; i++) { - assert.equal(b.format(a[i][0]), a[i][1], a[i][0] + ' ---> ' + a[i][1]); - } -}); - -test('format ordinal', function (assert) { - assert.equal(moment([2011, 0, 1]).format('DDDo'), '1.', '1.'); - assert.equal(moment([2011, 0, 2]).format('DDDo'), '2.', '2.'); - assert.equal(moment([2011, 0, 3]).format('DDDo'), '3.', '3.'); - assert.equal(moment([2011, 0, 4]).format('DDDo'), '4.', '4.'); - assert.equal(moment([2011, 0, 5]).format('DDDo'), '5.', '5.'); - assert.equal(moment([2011, 0, 6]).format('DDDo'), '6.', '6.'); - assert.equal(moment([2011, 0, 7]).format('DDDo'), '7.', '7.'); - assert.equal(moment([2011, 0, 8]).format('DDDo'), '8.', '8.'); - assert.equal(moment([2011, 0, 9]).format('DDDo'), '9.', '9.'); - assert.equal(moment([2011, 0, 10]).format('DDDo'), '10.', '10.'); - - assert.equal(moment([2011, 0, 11]).format('DDDo'), '11.', '11.'); - assert.equal(moment([2011, 0, 12]).format('DDDo'), '12.', '12.'); - assert.equal(moment([2011, 0, 13]).format('DDDo'), '13.', '13.'); - assert.equal(moment([2011, 0, 14]).format('DDDo'), '14.', '14.'); - assert.equal(moment([2011, 0, 15]).format('DDDo'), '15.', '15.'); - assert.equal(moment([2011, 0, 16]).format('DDDo'), '16.', '16.'); - assert.equal(moment([2011, 0, 17]).format('DDDo'), '17.', '17.'); - assert.equal(moment([2011, 0, 18]).format('DDDo'), '18.', '18.'); - assert.equal(moment([2011, 0, 19]).format('DDDo'), '19.', '19.'); - assert.equal(moment([2011, 0, 20]).format('DDDo'), '20.', '20.'); - - assert.equal(moment([2011, 0, 21]).format('DDDo'), '21.', '21.'); - assert.equal(moment([2011, 0, 22]).format('DDDo'), '22.', '22.'); - assert.equal(moment([2011, 0, 23]).format('DDDo'), '23.', '23.'); - assert.equal(moment([2011, 0, 24]).format('DDDo'), '24.', '24.'); - assert.equal(moment([2011, 0, 25]).format('DDDo'), '25.', '25.'); - assert.equal(moment([2011, 0, 26]).format('DDDo'), '26.', '26.'); - assert.equal(moment([2011, 0, 27]).format('DDDo'), '27.', '27.'); - assert.equal(moment([2011, 0, 28]).format('DDDo'), '28.', '28.'); - assert.equal(moment([2011, 0, 29]).format('DDDo'), '29.', '29.'); - assert.equal(moment([2011, 0, 30]).format('DDDo'), '30.', '30.'); - - assert.equal(moment([2011, 0, 31]).format('DDDo'), '31.', '31.'); -}); - -test('format month', function (assert) { - var expected = 'januar jan_februar feb_mars mar_april apr_mai mai_juni jun_juli jul_august aug_september sep_oktober okt_november nov_desember des'.split('_'), i; - for (i = 0; i < expected.length; i++) { - assert.equal(moment([2011, i, 1]).format('MMMM MMM'), expected[i], expected[i]); - } -}); - -test('format week', function (assert) { - var expected = 'sundag sun su_måndag mån må_tysdag tys ty_onsdag ons on_torsdag tor to_fredag fre fr_laurdag lau lø'.split('_'), i; - for (i = 0; i < expected.length; i++) { - assert.equal(moment([2011, 0, 2 + i]).format('dddd ddd dd'), expected[i], expected[i]); - } -}); - -test('from', function (assert) { - var start = moment([2007, 1, 28]); - assert.equal(start.from(moment([2007, 1, 28]).add({s: 44}), true), 'nokre sekund', '44 sekunder = a few seconds'); - assert.equal(start.from(moment([2007, 1, 28]).add({s: 45}), true), 'eit minutt', '45 seconds = a minute'); - assert.equal(start.from(moment([2007, 1, 28]).add({s: 89}), true), 'eit minutt', '89 seconds = a minute'); - assert.equal(start.from(moment([2007, 1, 28]).add({s: 90}), true), '2 minutt', '90 seconds = 2 minutes'); - assert.equal(start.from(moment([2007, 1, 28]).add({m: 44}), true), '44 minutt', '44 minutes = 44 minutes'); - assert.equal(start.from(moment([2007, 1, 28]).add({m: 45}), true), 'ein time', '45 minutes = an hour'); - assert.equal(start.from(moment([2007, 1, 28]).add({m: 89}), true), 'ein time', '89 minutes = an hour'); - assert.equal(start.from(moment([2007, 1, 28]).add({m: 90}), true), '2 timar', '90 minutes = 2 hours'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 5}), true), '5 timar', '5 hours = 5 hours'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 21}), true), '21 timar', '21 hours = 21 hours'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 22}), true), 'ein dag', '22 hours = a day'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 35}), true), 'ein dag', '35 hours = a day'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 36}), true), '2 dagar', '36 hours = 2 days'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 1}), true), 'ein dag', '1 day = a day'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 5}), true), '5 dagar', '5 days = 5 days'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 25}), true), '25 dagar', '25 days = 25 days'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 26}), true), 'ein månad', '26 days = a month'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 30}), true), 'ein månad', '30 days = a month'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 43}), true), 'ein månad', '43 days = a month'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 46}), true), '2 månader', '46 days = 2 months'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 74}), true), '2 månader', '75 days = 2 months'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 76}), true), '3 månader', '76 days = 3 months'); - assert.equal(start.from(moment([2007, 1, 28]).add({M: 1}), true), 'ein månad', '1 month = a month'); - assert.equal(start.from(moment([2007, 1, 28]).add({M: 5}), true), '5 månader', '5 months = 5 months'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 345}), true), 'eit år', '345 days = a year'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 548}), true), '2 år', '548 days = 2 years'); - assert.equal(start.from(moment([2007, 1, 28]).add({y: 1}), true), 'eit år', '1 year = a year'); - assert.equal(start.from(moment([2007, 1, 28]).add({y: 5}), true), '5 år', '5 years = 5 years'); -}); - -test('suffix', function (assert) { - assert.equal(moment(30000).from(0), 'om nokre sekund', 'prefix'); - assert.equal(moment(0).from(30000), 'nokre sekund sidan', 'suffix'); -}); - -test('now from now', function (assert) { - assert.equal(moment().fromNow(), 'nokre sekund sidan', 'now from now should display as in the past'); -}); - -test('fromNow', function (assert) { - assert.equal(moment().add({s: 30}).fromNow(), 'om nokre sekund', 'in a few seconds'); - assert.equal(moment().add({d: 5}).fromNow(), 'om 5 dagar', 'in 5 days'); -}); - -test('calendar day', function (assert) { - var a = moment().hours(12).minutes(0).seconds(0); - - assert.equal(moment(a).calendar(), 'I dag klokka 12:00', 'today at the same time'); - assert.equal(moment(a).add({m: 25}).calendar(), 'I dag klokka 12:25', 'Now plus 25 min'); - assert.equal(moment(a).add({h: 1}).calendar(), 'I dag klokka 13:00', 'Now plus 1 hour'); - assert.equal(moment(a).add({d: 1}).calendar(), 'I morgon klokka 12:00', 'tomorrow at the same time'); - assert.equal(moment(a).subtract({h: 1}).calendar(), 'I dag klokka 11:00', 'Now minus 1 hour'); - assert.equal(moment(a).subtract({d: 1}).calendar(), 'I går klokka 12:00', 'yesterday at the same time'); -}); - -test('calendar next week', function (assert) { - var i, m; - for (i = 2; i < 7; i++) { - m = moment().add({d: i}); - assert.equal(m.calendar(), m.format('dddd [klokka] LT'), 'Today + ' + i + ' days current time'); - m.hours(0).minutes(0).seconds(0).milliseconds(0); - assert.equal(m.calendar(), m.format('dddd [klokka] LT'), 'Today + ' + i + ' days beginning of day'); - m.hours(23).minutes(59).seconds(59).milliseconds(999); - assert.equal(m.calendar(), m.format('dddd [klokka] LT'), 'Today + ' + i + ' days end of day'); - } -}); - -test('calendar last week', function (assert) { - var i, m; - for (i = 2; i < 7; i++) { - m = moment().subtract({d: i}); - assert.equal(m.calendar(), m.format('[Føregåande] dddd [klokka] LT'), 'Today - ' + i + ' days current time'); - m.hours(0).minutes(0).seconds(0).milliseconds(0); - assert.equal(m.calendar(), m.format('[Føregåande] dddd [klokka] LT'), 'Today - ' + i + ' days beginning of day'); - m.hours(23).minutes(59).seconds(59).milliseconds(999); - assert.equal(m.calendar(), m.format('[Føregåande] dddd [klokka] LT'), 'Today - ' + i + ' days end of day'); - } -}); - -test('calendar all else', function (assert) { - var weeksAgo = moment().subtract({w: 1}), - weeksFromNow = moment().add({w: 1}); - - assert.equal(weeksAgo.calendar(), weeksAgo.format('L'), '1 week ago'); - assert.equal(weeksFromNow.calendar(), weeksFromNow.format('L'), 'in 1 week'); - - weeksAgo = moment().subtract({w: 2}); - weeksFromNow = moment().add({w: 2}); - - assert.equal(weeksAgo.calendar(), weeksAgo.format('L'), '2 weeks ago'); - assert.equal(weeksFromNow.calendar(), weeksFromNow.format('L'), 'in 2 weeks'); -}); - -test('weeks year starting sunday formatted', function (assert) { - assert.equal(moment([2012, 0, 1]).format('w ww wo'), '52 52 52.', 'Jan 1 2012 should be week 52'); - assert.equal(moment([2012, 0, 2]).format('w ww wo'), '1 01 1.', 'Jan 2 2012 should be week 1'); - assert.equal(moment([2012, 0, 8]).format('w ww wo'), '1 01 1.', 'Jan 8 2012 should be week 1'); - assert.equal(moment([2012, 0, 9]).format('w ww wo'), '2 02 2.', 'Jan 9 2012 should be week 2'); - assert.equal(moment([2012, 0, 15]).format('w ww wo'), '2 02 2.', 'Jan 15 2012 should be week 2'); -}); - -}))); - - -;(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' - && typeof require === 'function' ? factory(require('../../moment')) : - typeof define === 'function' && define.amd ? define(['../../moment'], factory) : - factory(global.moment) -}(this, (function (moment) { 'use strict'; - -function each(array, callback) { - var i; - for (i = 0; i < array.length; i++) { - callback(array[i], i, array); - } -} - -function objectKeys(obj) { - if (Object.keys) { - return Object.keys(obj); - } else { - // IE8 - var res = [], i; - for (i in obj) { - if (obj.hasOwnProperty(i)) { - res.push(i); - } - } - return res; - } -} - -// Pick the first defined of two or three arguments. - -function defineCommonLocaleTests(locale, options) { - test('lenient day of month ordinal parsing', function (assert) { - var i, ordinalStr, testMoment; - for (i = 1; i <= 31; ++i) { - ordinalStr = moment([2014, 0, i]).format('YYYY MM Do'); - testMoment = moment(ordinalStr, 'YYYY MM Do'); - assert.equal(testMoment.year(), 2014, - 'lenient day of month ordinal parsing ' + i + ' year check'); - assert.equal(testMoment.month(), 0, - 'lenient day of month ordinal parsing ' + i + ' month check'); - assert.equal(testMoment.date(), i, - 'lenient day of month ordinal parsing ' + i + ' date check'); - } - }); - - test('lenient day of month ordinal parsing of number', function (assert) { - var i, testMoment; - for (i = 1; i <= 31; ++i) { - testMoment = moment('2014 01 ' + i, 'YYYY MM Do'); - assert.equal(testMoment.year(), 2014, - 'lenient day of month ordinal parsing of number ' + i + ' year check'); - assert.equal(testMoment.month(), 0, - 'lenient day of month ordinal parsing of number ' + i + ' month check'); - assert.equal(testMoment.date(), i, - 'lenient day of month ordinal parsing of number ' + i + ' date check'); - } - }); - - test('strict day of month ordinal parsing', function (assert) { - var i, ordinalStr, testMoment; - for (i = 1; i <= 31; ++i) { - ordinalStr = moment([2014, 0, i]).format('YYYY MM Do'); - testMoment = moment(ordinalStr, 'YYYY MM Do', true); - assert.ok(testMoment.isValid(), 'strict day of month ordinal parsing ' + i); - } - }); - - test('meridiem invariant', function (assert) { - var h, m, t1, t2; - for (h = 0; h < 24; ++h) { - for (m = 0; m < 60; m += 15) { - t1 = moment.utc([2000, 0, 1, h, m]); - t2 = moment.utc(t1.format('A h:mm'), 'A h:mm'); - assert.equal(t2.format('HH:mm'), t1.format('HH:mm'), - 'meridiem at ' + t1.format('HH:mm')); - } - } - }); - - test('date format correctness', function (assert) { - var data, tokens; - data = moment.localeData()._longDateFormat; - tokens = objectKeys(data); - each(tokens, function (srchToken) { - // Check each format string to make sure it does not contain any - // tokens that need to be expanded. - each(tokens, function (baseToken) { - // strip escaped sequences - var format = data[baseToken].replace(/(\[[^\]]*\])/g, ''); - assert.equal(false, !!~format.indexOf(srchToken), - 'contains ' + srchToken + ' in ' + baseToken); - }); - }); - }); - - test('month parsing correctness', function (assert) { - var i, m; - - if (locale === 'tr') { - // I can't fix it :( - expect(0); - return; - } - function tester(format) { - var r; - r = moment(m.format(format), format); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format); - r = moment(m.format(format).toLocaleUpperCase(), format); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' upper'); - r = moment(m.format(format).toLocaleLowerCase(), format); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' lower'); - - r = moment(m.format(format), format, true); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' strict'); - r = moment(m.format(format).toLocaleUpperCase(), format, true); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' upper strict'); - r = moment(m.format(format).toLocaleLowerCase(), format, true); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' lower strict'); - } - - for (i = 0; i < 12; ++i) { - m = moment([2015, i, 15, 18]); - tester('MMM'); - tester('MMM.'); - tester('MMMM'); - tester('MMMM.'); - } - }); - - test('weekday parsing correctness', function (assert) { - var i, m; - - if (locale === 'tr' || locale === 'az' || locale === 'ro') { - // tr, az: There is a lower-case letter (ı), that converted to - // upper then lower changes to i - // ro: there is the letter ț which behaves weird under IE8 - expect(0); - return; - } - function tester(format) { - var r, baseMsg = 'weekday ' + m.weekday() + ' fmt ' + format + ' ' + m.toISOString(); - r = moment(m.format(format), format); - assert.equal(r.weekday(), m.weekday(), baseMsg); - r = moment(m.format(format).toLocaleUpperCase(), format); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' upper'); - r = moment(m.format(format).toLocaleLowerCase(), format); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' lower'); - - r = moment(m.format(format), format, true); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' strict'); - r = moment(m.format(format).toLocaleUpperCase(), format, true); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' upper strict'); - r = moment(m.format(format).toLocaleLowerCase(), format, true); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' lower strict'); - } - - for (i = 0; i < 7; ++i) { - m = moment.utc([2015, 0, i + 1, 18]); - tester('dd'); - tester('ddd'); - tester('dddd'); - } - }); - - test('valid localeData', function (assert) { - assert.equal(moment().localeData().months().length, 12, 'months should return 12 months'); - assert.equal(moment().localeData().monthsShort().length, 12, 'monthsShort should return 12 months'); - assert.equal(moment().localeData().weekdays().length, 7, 'weekdays should return 7 days'); - assert.equal(moment().localeData().weekdaysShort().length, 7, 'weekdaysShort should return 7 days'); - assert.equal(moment().localeData().weekdaysMin().length, 7, 'monthsShort should return 7 days'); - }); -} - -function setupDeprecationHandler(test, moment$$1, scope) { - test._expectedDeprecations = null; - test._observedDeprecations = null; - test._oldSupress = moment$$1.suppressDeprecationWarnings; - moment$$1.suppressDeprecationWarnings = true; - test.expectedDeprecations = function () { - test._expectedDeprecations = arguments; - test._observedDeprecations = []; - }; - moment$$1.deprecationHandler = function (name, msg) { - var deprecationId = matchedDeprecation(name, msg, test._expectedDeprecations); - if (deprecationId === -1) { - throw new Error('Unexpected deprecation thrown name=' + - name + ' msg=' + msg); - } - test._observedDeprecations[deprecationId] = 1; - }; -} - -function teardownDeprecationHandler(test, moment$$1, scope) { - moment$$1.suppressDeprecationWarnings = test._oldSupress; - - if (test._expectedDeprecations != null) { - var missedDeprecations = []; - each(test._expectedDeprecations, function (deprecationPattern, id) { - if (test._observedDeprecations[id] !== 1) { - missedDeprecations.push(deprecationPattern); - } - }); - if (missedDeprecations.length !== 0) { - throw new Error('Expected deprecation warnings did not happen: ' + - missedDeprecations.join(' ')); - } - } -} - -function matchedDeprecation(name, msg, deprecations) { - if (deprecations == null) { - return -1; - } - for (var i = 0; i < deprecations.length; ++i) { - if (name != null && name === deprecations[i]) { - return i; - } - if (msg != null && msg.substring(0, deprecations[i].length) === deprecations[i]) { - return i; - } - } - return -1; -} - -/*global QUnit:false*/ - -var test = QUnit.test; - -var expect = QUnit.expect; - - - -function localeModule (name, lifecycle) { - QUnit.module('locale:' + name, { - setup : function () { - moment.locale(name); - moment.createFromInputFallback = function (config) { - throw new Error('input not handled by moment: ' + config._i); - }; - setupDeprecationHandler(test, moment, 'locale'); - if (lifecycle && lifecycle.setup) { - lifecycle.setup(); - } - }, - teardown : function () { - moment.locale('en'); - teardownDeprecationHandler(test, moment, 'locale'); - if (lifecycle && lifecycle.teardown) { - lifecycle.teardown(); - } - } - }); - defineCommonLocaleTests(name, -1, -1); -} - -localeModule('pa-in'); - -test('parse', function (assert) { - var tests = 'ਜਨਵਰੀ ਜਨਵਰੀ_ਫ਼ਰਵਰੀ ਫ਼ਰਵਰੀ_ਮਾਰਚ ਮਾਰਚ_ਅਪ੍ਰੈਲ ਅਪ੍ਰੈਲ_ਮਈ ਮਈ_ਜੂਨ ਜੂਨ_ਜੁਲਾਈ ਜੁਲਾਈ_ਅਗਸਤ ਅਗਸਤ_ਸਤੰਬਰ ਸਤੰਬਰ_ਅਕਤੂਬਰ ਅਕਤੂਬਰ_ਨਵੰਬਰ ਨਵੰਬਰ_ਦਸੰਬਰ ਦਸੰਬਰ'.split('_'), i; - function equalTest(input, mmm, i) { - assert.equal(moment(input, mmm).month(), i, input + ' should be month ' + (i + 1)); - } - for (i = 0; i < 12; i++) { - tests[i] = tests[i].split(' '); - equalTest(tests[i][0], 'MMM', i); - equalTest(tests[i][1], 'MMM', i); - equalTest(tests[i][0], 'MMMM', i); - equalTest(tests[i][1], 'MMMM', i); - equalTest(tests[i][0].toLocaleLowerCase(), 'MMMM', i); - equalTest(tests[i][1].toLocaleLowerCase(), 'MMMM', i); - equalTest(tests[i][0].toLocaleUpperCase(), 'MMMM', i); - equalTest(tests[i][1].toLocaleUpperCase(), 'MMMM', i); - } -}); - -test('format', function (assert) { - var a = [ - ['dddd, Do MMMM YYYY, a h:mm:ss ਵਜੇ', 'ਐਤਵਾਰ, ੧੪ ਫ਼ਰਵਰੀ ੨੦੧੦, ਦੁਪਹਿਰ ੩:੨੫:੫੦ ਵਜੇ'], - ['ddd, a h ਵਜੇ', 'ਐਤ, ਦੁਪਹਿਰ ੩ ਵਜੇ'], - ['M Mo MM MMMM MMM', '੨ ੨ ੦੨ ਫ਼ਰਵਰੀ ਫ਼ਰਵਰੀ'], - ['YYYY YY', '੨੦੧੦ ੧੦'], - ['D Do DD', '੧੪ ੧੪ ੧੪'], - ['d do dddd ddd dd', '੦ ੦ ਐਤਵਾਰ ਐਤ ਐਤ'], - ['DDD DDDo DDDD', '੪੫ ੪੫ ੦੪੫'], - ['w wo ww', '੮ ੮ ੦੮'], - ['h hh', '੩ ੦੩'], - ['H HH', '੧੫ ੧੫'], - ['m mm', '੨੫ ੨੫'], - ['s ss', '੫੦ ੫੦'], - ['a A', 'ਦੁਪਹਿਰ ਦੁਪਹਿਰ'], - ['LTS', 'ਦੁਪਹਿਰ ੩:੨੫:੫੦ ਵਜੇ'], - ['L', '੧੪/੦੨/੨੦੧੦'], - ['LL', '੧੪ ਫ਼ਰਵਰੀ ੨੦੧੦'], - ['LLL', '੧੪ ਫ਼ਰਵਰੀ ੨੦੧੦, ਦੁਪਹਿਰ ੩:੨੫ ਵਜੇ'], - ['LLLL', 'ਐਤਵਾਰ, ੧੪ ਫ਼ਰਵਰੀ ੨੦੧੦, ਦੁਪਹਿਰ ੩:੨੫ ਵਜੇ'], - ['l', '੧੪/੨/੨੦੧੦'], - ['ll', '੧੪ ਫ਼ਰਵਰੀ ੨੦੧੦'], - ['lll', '੧੪ ਫ਼ਰਵਰੀ ੨੦੧੦, ਦੁਪਹਿਰ ੩:੨੫ ਵਜੇ'], - ['llll', 'ਐਤ, ੧੪ ਫ਼ਰਵਰੀ ੨੦੧੦, ਦੁਪਹਿਰ ੩:੨੫ ਵਜੇ'] - ], - b = moment(new Date(2010, 1, 14, 15, 25, 50, 125)), - i; - for (i = 0; i < a.length; i++) { - assert.equal(b.format(a[i][0]), a[i][1], a[i][0] + ' ---> ' + a[i][1]); - } -}); - -test('format ordinal', function (assert) { - assert.equal(moment([2011, 0, 1]).format('DDDo'), '੧', '੧'); - assert.equal(moment([2011, 0, 2]).format('DDDo'), '੨', '੨'); - assert.equal(moment([2011, 0, 3]).format('DDDo'), '੩', '੩'); - assert.equal(moment([2011, 0, 4]).format('DDDo'), '੪', '੪'); - assert.equal(moment([2011, 0, 5]).format('DDDo'), '੫', '੫'); - assert.equal(moment([2011, 0, 6]).format('DDDo'), '੬', '੬'); - assert.equal(moment([2011, 0, 7]).format('DDDo'), '੭', '੭'); - assert.equal(moment([2011, 0, 8]).format('DDDo'), '੮', '੮'); - assert.equal(moment([2011, 0, 9]).format('DDDo'), '੯', '੯'); - assert.equal(moment([2011, 0, 10]).format('DDDo'), '੧੦', '੧੦'); - - assert.equal(moment([2011, 0, 11]).format('DDDo'), '੧੧', '੧੧'); - assert.equal(moment([2011, 0, 12]).format('DDDo'), '੧੨', '੧੨'); - assert.equal(moment([2011, 0, 13]).format('DDDo'), '੧੩', '੧੩'); - assert.equal(moment([2011, 0, 14]).format('DDDo'), '੧੪', '੧੪'); - assert.equal(moment([2011, 0, 15]).format('DDDo'), '੧੫', '੧੫'); - assert.equal(moment([2011, 0, 16]).format('DDDo'), '੧੬', '੧੬'); - assert.equal(moment([2011, 0, 17]).format('DDDo'), '੧੭', '੧੭'); - assert.equal(moment([2011, 0, 18]).format('DDDo'), '੧੮', '੧੮'); - assert.equal(moment([2011, 0, 19]).format('DDDo'), '੧੯', '੧੯'); - assert.equal(moment([2011, 0, 20]).format('DDDo'), '੨੦', '੨੦'); - - assert.equal(moment([2011, 0, 21]).format('DDDo'), '੨੧', '੨੧'); - assert.equal(moment([2011, 0, 22]).format('DDDo'), '੨੨', '੨੨'); - assert.equal(moment([2011, 0, 23]).format('DDDo'), '੨੩', '੨੩'); - assert.equal(moment([2011, 0, 24]).format('DDDo'), '੨੪', '੨੪'); - assert.equal(moment([2011, 0, 25]).format('DDDo'), '੨੫', '੨੫'); - assert.equal(moment([2011, 0, 26]).format('DDDo'), '੨੬', '੨੬'); - assert.equal(moment([2011, 0, 27]).format('DDDo'), '੨੭', '੨੭'); - assert.equal(moment([2011, 0, 28]).format('DDDo'), '੨੮', '੨੮'); - assert.equal(moment([2011, 0, 29]).format('DDDo'), '੨੯', '੨੯'); - assert.equal(moment([2011, 0, 30]).format('DDDo'), '੩੦', '੩੦'); - - assert.equal(moment([2011, 0, 31]).format('DDDo'), '੩੧', '੩੧'); -}); - -test('format month', function (assert) { - var expected = 'ਜਨਵਰੀ ਜਨਵਰੀ_ਫ਼ਰਵਰੀ ਫ਼ਰਵਰੀ_ਮਾਰਚ ਮਾਰਚ_ਅਪ੍ਰੈਲ ਅਪ੍ਰੈਲ_ਮਈ ਮਈ_ਜੂਨ ਜੂਨ_ਜੁਲਾਈ ਜੁਲਾਈ_ਅਗਸਤ ਅਗਸਤ_ਸਤੰਬਰ ਸਤੰਬਰ_ਅਕਤੂਬਰ ਅਕਤੂਬਰ_ਨਵੰਬਰ ਨਵੰਬਰ_ਦਸੰਬਰ ਦਸੰਬਰ'.split('_'), i; - for (i = 0; i < expected.length; i++) { - assert.equal(moment([2011, i, 1]).format('MMMM MMM'), expected[i], expected[i]); - } -}); - -test('format week', function (assert) { - var expected = 'ਐਤਵਾਰ ਐਤ ਐਤ_ਸੋਮਵਾਰ ਸੋਮ ਸੋਮ_ਮੰਗਲਵਾਰ ਮੰਗਲ ਮੰਗਲ_ਬੁਧਵਾਰ ਬੁਧ ਬੁਧ_ਵੀਰਵਾਰ ਵੀਰ ਵੀਰ_ਸ਼ੁੱਕਰਵਾਰ ਸ਼ੁਕਰ ਸ਼ੁਕਰ_ਸ਼ਨੀਚਰਵਾਰ ਸ਼ਨੀ ਸ਼ਨੀ'.split('_'), i; - for (i = 0; i < expected.length; i++) { - assert.equal(moment([2011, 0, 2 + i]).format('dddd ddd dd'), expected[i], expected[i]); - } -}); - -test('from', function (assert) { - var start = moment([2007, 1, 28]); - assert.equal(start.from(moment([2007, 1, 28]).add({s: 44}), true), 'ਕੁਝ ਸਕਿੰਟ', '44 seconds = a few seconds'); - assert.equal(start.from(moment([2007, 1, 28]).add({s: 45}), true), 'ਇਕ ਮਿੰਟ', '45 seconds = a minute'); - assert.equal(start.from(moment([2007, 1, 28]).add({s: 89}), true), 'ਇਕ ਮਿੰਟ', '89 seconds = a minute'); - assert.equal(start.from(moment([2007, 1, 28]).add({s: 90}), true), '੨ ਮਿੰਟ', '90 seconds = 2 minutes'); - assert.equal(start.from(moment([2007, 1, 28]).add({m: 44}), true), '੪੪ ਮਿੰਟ', '44 minutes = 44 minutes'); - assert.equal(start.from(moment([2007, 1, 28]).add({m: 45}), true), 'ਇੱਕ ਘੰਟਾ', '45 minutes = an hour'); - assert.equal(start.from(moment([2007, 1, 28]).add({m: 89}), true), 'ਇੱਕ ਘੰਟਾ', '89 minutes = an hour'); - assert.equal(start.from(moment([2007, 1, 28]).add({m: 90}), true), '੨ ਘੰਟੇ', '90 minutes = 2 hours'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 5}), true), '੫ ਘੰਟੇ', '5 hours = 5 hours'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 21}), true), '੨੧ ਘੰਟੇ', '21 hours = 21 hours'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 22}), true), 'ਇੱਕ ਦਿਨ', '22 hours = a day'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 35}), true), 'ਇੱਕ ਦਿਨ', '35 hours = a day'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 36}), true), '੨ ਦਿਨ', '36 hours = 2 days'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 1}), true), 'ਇੱਕ ਦਿਨ', '1 day = a day'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 5}), true), '੫ ਦਿਨ', '5 days = 5 days'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 25}), true), '੨੫ ਦਿਨ', '25 days = 25 days'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 26}), true), 'ਇੱਕ ਮਹੀਨਾ', '26 days = a month'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 30}), true), 'ਇੱਕ ਮਹੀਨਾ', '30 days = a month'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 43}), true), 'ਇੱਕ ਮਹੀਨਾ', '43 days = a month'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 46}), true), '੨ ਮਹੀਨੇ', '46 days = 2 months'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 74}), true), '੨ ਮਹੀਨੇ', '75 days = 2 months'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 76}), true), '੩ ਮਹੀਨੇ', '76 days = 3 months'); - assert.equal(start.from(moment([2007, 1, 28]).add({M: 1}), true), 'ਇੱਕ ਮਹੀਨਾ', '1 month = a month'); - assert.equal(start.from(moment([2007, 1, 28]).add({M: 5}), true), '੫ ਮਹੀਨੇ', '5 months = 5 months'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 345}), true), 'ਇੱਕ ਸਾਲ', '345 days = a year'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 548}), true), '੨ ਸਾਲ', '548 days = 2 years'); - assert.equal(start.from(moment([2007, 1, 28]).add({y: 1}), true), 'ਇੱਕ ਸਾਲ', '1 year = a year'); - assert.equal(start.from(moment([2007, 1, 28]).add({y: 5}), true), '੫ ਸਾਲ', '5 years = 5 years'); -}); - -test('suffix', function (assert) { - assert.equal(moment(30000).from(0), 'ਕੁਝ ਸਕਿੰਟ ਵਿੱਚ', 'prefix'); - assert.equal(moment(0).from(30000), 'ਕੁਝ ਸਕਿੰਟ ਪਿਛਲੇ', 'suffix'); -}); - -test('now from now', function (assert) { - assert.equal(moment().fromNow(), 'ਕੁਝ ਸਕਿੰਟ ਪਿਛਲੇ', 'now from now should display as in the past'); -}); - -test('fromNow', function (assert) { - assert.equal(moment().add({s: 30}).fromNow(), 'ਕੁਝ ਸਕਿੰਟ ਵਿੱਚ', 'ਕੁਝ ਸਕਿੰਟ ਵਿੱਚ'); - assert.equal(moment().add({d: 5}).fromNow(), '੫ ਦਿਨ ਵਿੱਚ', '੫ ਦਿਨ ਵਿੱਚ'); -}); - -test('calendar day', function (assert) { - var a = moment().hours(12).minutes(0).seconds(0); - - assert.equal(moment(a).calendar(), 'ਅਜ ਦੁਪਹਿਰ ੧੨:੦੦ ਵਜੇ', 'today at the same time'); - assert.equal(moment(a).add({m: 25}).calendar(), 'ਅਜ ਦੁਪਹਿਰ ੧੨:੨੫ ਵਜੇ', 'Now plus 25 min'); - assert.equal(moment(a).add({h: 3}).calendar(), 'ਅਜ ਦੁਪਹਿਰ ੩:੦੦ ਵਜੇ', 'Now plus 3 hours'); - assert.equal(moment(a).add({d: 1}).calendar(), 'ਕਲ ਦੁਪਹਿਰ ੧੨:੦੦ ਵਜੇ', 'tomorrow at the same time'); - assert.equal(moment(a).subtract({h: 1}).calendar(), 'ਅਜ ਦੁਪਹਿਰ ੧੧:੦੦ ਵਜੇ', 'Now minus 1 hour'); - assert.equal(moment(a).subtract({d: 1}).calendar(), 'ਕਲ ਦੁਪਹਿਰ ੧੨:੦੦ ਵਜੇ', 'yesterday at the same time'); -}); - -test('calendar next week', function (assert) { - var i, m; - for (i = 2; i < 7; i++) { - m = moment().add({d: i}); - assert.equal(m.calendar(), m.format('dddd[,] LT'), 'Today + ' + i + ' days current time'); - m.hours(0).minutes(0).seconds(0).milliseconds(0); - assert.equal(m.calendar(), m.format('dddd[,] LT'), 'Today + ' + i + ' days beginning of day'); - m.hours(23).minutes(59).seconds(59).milliseconds(999); - assert.equal(m.calendar(), m.format('dddd[,] LT'), 'Today + ' + i + ' days end of day'); - } -}); - -test('calendar last week', function (assert) { - var i, m; - - for (i = 2; i < 7; i++) { - m = moment().subtract({d: i}); - assert.equal(m.calendar(), m.format('[ਪਿਛਲੇ] dddd[,] LT'), 'Today - ' + i + ' days current time'); - m.hours(0).minutes(0).seconds(0).milliseconds(0); - assert.equal(m.calendar(), m.format('[ਪਿਛਲੇ] dddd[,] LT'), 'Today - ' + i + ' days beginning of day'); - m.hours(23).minutes(59).seconds(59).milliseconds(999); - assert.equal(m.calendar(), m.format('[ਪਿਛਲੇ] dddd[,] LT'), 'Today - ' + i + ' days end of day'); - } -}); - -test('calendar all else', function (assert) { - var weeksAgo = moment().subtract({w: 1}), - weeksFromNow = moment().add({w: 1}); - - assert.equal(weeksAgo.calendar(), weeksAgo.format('L'), '1 week ago'); - assert.equal(weeksFromNow.calendar(), weeksFromNow.format('L'), 'in 1 week'); - - weeksAgo = moment().subtract({w: 2}); - weeksFromNow = moment().add({w: 2}); - - assert.equal(weeksAgo.calendar(), weeksAgo.format('L'), '2 weeks ago'); - assert.equal(weeksFromNow.calendar(), weeksFromNow.format('L'), 'in 2 weeks'); -}); - -test('meridiem invariant', function (assert) { - assert.equal(moment([2011, 2, 23, 2, 30]).format('a'), 'ਰਾਤ', 'before dawn'); - assert.equal(moment([2011, 2, 23, 9, 30]).format('a'), 'ਸਵੇਰ', 'morning'); - assert.equal(moment([2011, 2, 23, 14, 30]).format('a'), 'ਦੁਪਹਿਰ', 'during day'); - assert.equal(moment([2011, 2, 23, 17, 30]).format('a'), 'ਸ਼ਾਮ', 'evening'); - assert.equal(moment([2011, 2, 23, 19, 30]).format('a'), 'ਸ਼ਾਮ', 'late evening'); - assert.equal(moment([2011, 2, 23, 21, 20]).format('a'), 'ਰਾਤ', 'night'); - - assert.equal(moment([2011, 2, 23, 2, 30]).format('A'), 'ਰਾਤ', 'before dawn'); - assert.equal(moment([2011, 2, 23, 9, 30]).format('A'), 'ਸਵੇਰ', 'morning'); - assert.equal(moment([2011, 2, 23, 14, 30]).format('A'), 'ਦੁਪਹਿਰ', ' during day'); - assert.equal(moment([2011, 2, 23, 17, 30]).format('A'), 'ਸ਼ਾਮ', 'evening'); - assert.equal(moment([2011, 2, 23, 19, 30]).format('A'), 'ਸ਼ਾਮ', 'late evening'); - assert.equal(moment([2011, 2, 23, 21, 20]).format('A'), 'ਰਾਤ', 'night'); -}); - -test('weeks year starting sunday', function (assert) { - assert.equal(moment([2012, 0, 1]).week(), 1, 'Jan 1 2012 should be week 1'); - assert.equal(moment([2012, 0, 7]).week(), 1, 'Jan 7 2012 should be week 1'); - assert.equal(moment([2012, 0, 8]).week(), 2, 'Jan 8 2012 should be week 2'); - assert.equal(moment([2012, 0, 14]).week(), 2, 'Jan 14 2012 should be week 2'); - assert.equal(moment([2012, 0, 15]).week(), 3, 'Jan 15 2012 should be week 3'); -}); - -test('weeks year starting monday', function (assert) { - assert.equal(moment([2006, 11, 31]).week(), 1, 'Dec 31 2006 should be week 1'); - assert.equal(moment([2007, 0, 1]).week(), 1, 'Jan 1 2007 should be week 1'); - assert.equal(moment([2007, 0, 6]).week(), 1, 'Jan 6 2007 should be week 1'); - assert.equal(moment([2007, 0, 7]).week(), 2, 'Jan 7 2007 should be week 2'); - assert.equal(moment([2007, 0, 13]).week(), 2, 'Jan 13 2007 should be week 2'); - assert.equal(moment([2007, 0, 14]).week(), 3, 'Jan 14 2007 should be week 3'); -}); - -test('weeks year starting tuesday', function (assert) { - assert.equal(moment([2007, 11, 29]).week(), 52, 'Dec 29 2007 should be week 52'); - assert.equal(moment([2008, 0, 1]).week(), 1, 'Jan 1 2008 should be week 1'); - assert.equal(moment([2008, 0, 5]).week(), 1, 'Jan 5 2008 should be week 1'); - assert.equal(moment([2008, 0, 6]).week(), 2, 'Jan 6 2008 should be week 2'); - assert.equal(moment([2008, 0, 12]).week(), 2, 'Jan 12 2008 should be week 2'); - assert.equal(moment([2008, 0, 13]).week(), 3, 'Jan 13 2008 should be week 3'); -}); - -test('weeks year starting wednesday', function (assert) { - assert.equal(moment([2002, 11, 29]).week(), 1, 'Dec 29 2002 should be week 1'); - assert.equal(moment([2003, 0, 1]).week(), 1, 'Jan 1 2003 should be week 1'); - assert.equal(moment([2003, 0, 4]).week(), 1, 'Jan 4 2003 should be week 1'); - assert.equal(moment([2003, 0, 5]).week(), 2, 'Jan 5 2003 should be week 2'); - assert.equal(moment([2003, 0, 11]).week(), 2, 'Jan 11 2003 should be week 2'); - assert.equal(moment([2003, 0, 12]).week(), 3, 'Jan 12 2003 should be week 3'); -}); - -test('weeks year starting thursday', function (assert) { - assert.equal(moment([2008, 11, 28]).week(), 1, 'Dec 28 2008 should be week 1'); - assert.equal(moment([2009, 0, 1]).week(), 1, 'Jan 1 2009 should be week 1'); - assert.equal(moment([2009, 0, 3]).week(), 1, 'Jan 3 2009 should be week 1'); - assert.equal(moment([2009, 0, 4]).week(), 2, 'Jan 4 2009 should be week 2'); - assert.equal(moment([2009, 0, 10]).week(), 2, 'Jan 10 2009 should be week 2'); - assert.equal(moment([2009, 0, 11]).week(), 3, 'Jan 11 2009 should be week 3'); -}); - -test('weeks year starting friday', function (assert) { - assert.equal(moment([2009, 11, 27]).week(), 1, 'Dec 27 2009 should be week 1'); - assert.equal(moment([2010, 0, 1]).week(), 1, 'Jan 1 2010 should be week 1'); - assert.equal(moment([2010, 0, 2]).week(), 1, 'Jan 2 2010 should be week 1'); - assert.equal(moment([2010, 0, 3]).week(), 2, 'Jan 3 2010 should be week 2'); - assert.equal(moment([2010, 0, 9]).week(), 2, 'Jan 9 2010 should be week 2'); - assert.equal(moment([2010, 0, 10]).week(), 3, 'Jan 10 2010 should be week 3'); -}); - -test('weeks year starting saturday', function (assert) { - assert.equal(moment([2010, 11, 26]).week(), 1, 'Dec 26 2010 should be week 1'); - assert.equal(moment([2011, 0, 1]).week(), 1, 'Jan 1 2011 should be week 1'); - assert.equal(moment([2011, 0, 2]).week(), 2, 'Jan 2 2011 should be week 2'); - assert.equal(moment([2011, 0, 8]).week(), 2, 'Jan 8 2011 should be week 2'); - assert.equal(moment([2011, 0, 9]).week(), 3, 'Jan 9 2011 should be week 3'); -}); - -test('weeks year starting sunday formatted', function (assert) { - assert.equal(moment([2012, 0, 1]).format('w ww wo'), '੧ ੦੧ ੧', 'Jan 1 2012 should be week 1'); - assert.equal(moment([2012, 0, 7]).format('w ww wo'), '੧ ੦੧ ੧', 'Jan 7 2012 should be week 1'); - assert.equal(moment([2012, 0, 8]).format('w ww wo'), '੨ ੦੨ ੨', 'Jan 8 2012 should be week 2'); - assert.equal(moment([2012, 0, 14]).format('w ww wo'), '੨ ੦੨ ੨', 'Jan 14 2012 should be week 2'); - assert.equal(moment([2012, 0, 15]).format('w ww wo'), '੩ ੦੩ ੩', 'Jan 15 2012 should be week 3'); -}); - -test('lenient day of month ordinal parsing', function (assert) { - var i, ordinalStr, testMoment; - for (i = 1; i <= 31; ++i) { - ordinalStr = moment([2014, 0, i]).format('YYYY MM Do'); - testMoment = moment(ordinalStr, 'YYYY MM Do'); - assert.equal(testMoment.year(), 2014, - 'lenient day of month ordinal parsing ' + i + ' year check'); - assert.equal(testMoment.month(), 0, - 'lenient day of month ordinal parsing ' + i + ' month check'); - assert.equal(testMoment.date(), i, - 'lenient day of month ordinal parsing ' + i + ' date check'); - } -}); - -test('lenient day of month ordinal parsing of number', function (assert) { - var i, testMoment; - for (i = 1; i <= 31; ++i) { - testMoment = moment('2014 01 ' + i, 'YYYY MM Do'); - assert.equal(testMoment.year(), 2014, - 'lenient day of month ordinal parsing of number ' + i + ' year check'); - assert.equal(testMoment.month(), 0, - 'lenient day of month ordinal parsing of number ' + i + ' month check'); - assert.equal(testMoment.date(), i, - 'lenient day of month ordinal parsing of number ' + i + ' date check'); - } -}); - -test('strict day of month ordinal parsing', function (assert) { - var i, ordinalStr, testMoment; - for (i = 1; i <= 31; ++i) { - ordinalStr = moment([2014, 0, i]).format('YYYY MM Do'); - testMoment = moment(ordinalStr, 'YYYY MM Do', true); - assert.ok(testMoment.isValid(), 'strict day of month ordinal parsing ' + i); - } -}); - -}))); - - -;(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' - && typeof require === 'function' ? factory(require('../../moment')) : - typeof define === 'function' && define.amd ? define(['../../moment'], factory) : - factory(global.moment) -}(this, (function (moment) { 'use strict'; - -function each(array, callback) { - var i; - for (i = 0; i < array.length; i++) { - callback(array[i], i, array); - } -} - -function objectKeys(obj) { - if (Object.keys) { - return Object.keys(obj); - } else { - // IE8 - var res = [], i; - for (i in obj) { - if (obj.hasOwnProperty(i)) { - res.push(i); - } - } - return res; - } -} - -// Pick the first defined of two or three arguments. - -function defineCommonLocaleTests(locale, options) { - test('lenient day of month ordinal parsing', function (assert) { - var i, ordinalStr, testMoment; - for (i = 1; i <= 31; ++i) { - ordinalStr = moment([2014, 0, i]).format('YYYY MM Do'); - testMoment = moment(ordinalStr, 'YYYY MM Do'); - assert.equal(testMoment.year(), 2014, - 'lenient day of month ordinal parsing ' + i + ' year check'); - assert.equal(testMoment.month(), 0, - 'lenient day of month ordinal parsing ' + i + ' month check'); - assert.equal(testMoment.date(), i, - 'lenient day of month ordinal parsing ' + i + ' date check'); - } - }); - - test('lenient day of month ordinal parsing of number', function (assert) { - var i, testMoment; - for (i = 1; i <= 31; ++i) { - testMoment = moment('2014 01 ' + i, 'YYYY MM Do'); - assert.equal(testMoment.year(), 2014, - 'lenient day of month ordinal parsing of number ' + i + ' year check'); - assert.equal(testMoment.month(), 0, - 'lenient day of month ordinal parsing of number ' + i + ' month check'); - assert.equal(testMoment.date(), i, - 'lenient day of month ordinal parsing of number ' + i + ' date check'); - } - }); - - test('strict day of month ordinal parsing', function (assert) { - var i, ordinalStr, testMoment; - for (i = 1; i <= 31; ++i) { - ordinalStr = moment([2014, 0, i]).format('YYYY MM Do'); - testMoment = moment(ordinalStr, 'YYYY MM Do', true); - assert.ok(testMoment.isValid(), 'strict day of month ordinal parsing ' + i); - } - }); - - test('meridiem invariant', function (assert) { - var h, m, t1, t2; - for (h = 0; h < 24; ++h) { - for (m = 0; m < 60; m += 15) { - t1 = moment.utc([2000, 0, 1, h, m]); - t2 = moment.utc(t1.format('A h:mm'), 'A h:mm'); - assert.equal(t2.format('HH:mm'), t1.format('HH:mm'), - 'meridiem at ' + t1.format('HH:mm')); - } - } - }); - - test('date format correctness', function (assert) { - var data, tokens; - data = moment.localeData()._longDateFormat; - tokens = objectKeys(data); - each(tokens, function (srchToken) { - // Check each format string to make sure it does not contain any - // tokens that need to be expanded. - each(tokens, function (baseToken) { - // strip escaped sequences - var format = data[baseToken].replace(/(\[[^\]]*\])/g, ''); - assert.equal(false, !!~format.indexOf(srchToken), - 'contains ' + srchToken + ' in ' + baseToken); - }); - }); - }); - - test('month parsing correctness', function (assert) { - var i, m; - - if (locale === 'tr') { - // I can't fix it :( - expect(0); - return; - } - function tester(format) { - var r; - r = moment(m.format(format), format); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format); - r = moment(m.format(format).toLocaleUpperCase(), format); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' upper'); - r = moment(m.format(format).toLocaleLowerCase(), format); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' lower'); - - r = moment(m.format(format), format, true); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' strict'); - r = moment(m.format(format).toLocaleUpperCase(), format, true); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' upper strict'); - r = moment(m.format(format).toLocaleLowerCase(), format, true); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' lower strict'); - } - - for (i = 0; i < 12; ++i) { - m = moment([2015, i, 15, 18]); - tester('MMM'); - tester('MMM.'); - tester('MMMM'); - tester('MMMM.'); - } - }); - - test('weekday parsing correctness', function (assert) { - var i, m; - - if (locale === 'tr' || locale === 'az' || locale === 'ro') { - // tr, az: There is a lower-case letter (ı), that converted to - // upper then lower changes to i - // ro: there is the letter ț which behaves weird under IE8 - expect(0); - return; - } - function tester(format) { - var r, baseMsg = 'weekday ' + m.weekday() + ' fmt ' + format + ' ' + m.toISOString(); - r = moment(m.format(format), format); - assert.equal(r.weekday(), m.weekday(), baseMsg); - r = moment(m.format(format).toLocaleUpperCase(), format); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' upper'); - r = moment(m.format(format).toLocaleLowerCase(), format); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' lower'); - - r = moment(m.format(format), format, true); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' strict'); - r = moment(m.format(format).toLocaleUpperCase(), format, true); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' upper strict'); - r = moment(m.format(format).toLocaleLowerCase(), format, true); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' lower strict'); - } - - for (i = 0; i < 7; ++i) { - m = moment.utc([2015, 0, i + 1, 18]); - tester('dd'); - tester('ddd'); - tester('dddd'); - } - }); - - test('valid localeData', function (assert) { - assert.equal(moment().localeData().months().length, 12, 'months should return 12 months'); - assert.equal(moment().localeData().monthsShort().length, 12, 'monthsShort should return 12 months'); - assert.equal(moment().localeData().weekdays().length, 7, 'weekdays should return 7 days'); - assert.equal(moment().localeData().weekdaysShort().length, 7, 'weekdaysShort should return 7 days'); - assert.equal(moment().localeData().weekdaysMin().length, 7, 'monthsShort should return 7 days'); - }); -} - -function setupDeprecationHandler(test, moment$$1, scope) { - test._expectedDeprecations = null; - test._observedDeprecations = null; - test._oldSupress = moment$$1.suppressDeprecationWarnings; - moment$$1.suppressDeprecationWarnings = true; - test.expectedDeprecations = function () { - test._expectedDeprecations = arguments; - test._observedDeprecations = []; - }; - moment$$1.deprecationHandler = function (name, msg) { - var deprecationId = matchedDeprecation(name, msg, test._expectedDeprecations); - if (deprecationId === -1) { - throw new Error('Unexpected deprecation thrown name=' + - name + ' msg=' + msg); - } - test._observedDeprecations[deprecationId] = 1; - }; -} - -function teardownDeprecationHandler(test, moment$$1, scope) { - moment$$1.suppressDeprecationWarnings = test._oldSupress; - - if (test._expectedDeprecations != null) { - var missedDeprecations = []; - each(test._expectedDeprecations, function (deprecationPattern, id) { - if (test._observedDeprecations[id] !== 1) { - missedDeprecations.push(deprecationPattern); - } - }); - if (missedDeprecations.length !== 0) { - throw new Error('Expected deprecation warnings did not happen: ' + - missedDeprecations.join(' ')); - } - } -} - -function matchedDeprecation(name, msg, deprecations) { - if (deprecations == null) { - return -1; - } - for (var i = 0; i < deprecations.length; ++i) { - if (name != null && name === deprecations[i]) { - return i; - } - if (msg != null && msg.substring(0, deprecations[i].length) === deprecations[i]) { - return i; - } - } - return -1; -} - -/*global QUnit:false*/ - -var test = QUnit.test; - -var expect = QUnit.expect; - - - -function localeModule (name, lifecycle) { - QUnit.module('locale:' + name, { - setup : function () { - moment.locale(name); - moment.createFromInputFallback = function (config) { - throw new Error('input not handled by moment: ' + config._i); - }; - setupDeprecationHandler(test, moment, 'locale'); - if (lifecycle && lifecycle.setup) { - lifecycle.setup(); - } - }, - teardown : function () { - moment.locale('en'); - teardownDeprecationHandler(test, moment, 'locale'); - if (lifecycle && lifecycle.teardown) { - lifecycle.teardown(); - } - } - }); - defineCommonLocaleTests(name, -1, -1); -} - -localeModule('pl'); - -test('parse', function (assert) { - var tests = 'styczeń stycznia sty_luty lutego lut_marzec marca mar_kwiecień kwietnia kwi_maj maja maj_czerwiec czerwca cze_lipiec lipca lip_sierpień sierpnia sie_wrzesień września wrz_październik października paź_listopad listopada lis_grudzień grudnia gru'.split('_'), i; - function equalTest(input, mmm, i) { - assert.equal(moment(input, mmm).month(), i, input + ' should be month ' + (i + 1)); - } - for (i = 0; i < 12; i++) { - tests[i] = tests[i].split(' '); - equalTest(tests[i][0], 'MMM', i); - equalTest(tests[i][1], 'MMM', i); - equalTest(tests[i][2], 'MMM', i); - equalTest(tests[i][0], 'MMMM', i); - equalTest(tests[i][1], 'MMMM', i); - equalTest(tests[i][2], 'MMMM', i); - equalTest(tests[i][0].toLocaleLowerCase(), 'MMMM', i); - equalTest(tests[i][1].toLocaleLowerCase(), 'MMMM', i); - equalTest(tests[i][2].toLocaleLowerCase(), 'MMMM', i); - equalTest(tests[i][0].toLocaleUpperCase(), 'MMMM', i); - equalTest(tests[i][1].toLocaleUpperCase(), 'MMMM', i); - equalTest(tests[i][2].toLocaleUpperCase(), 'MMMM', i); - } -}); - -test('parse strict', function (assert) { - var tests = 'styczeń stycznia sty_luty lutego lut_marzec marca mar_kwiecień kwietnia kwi_maj maja maj_czerwiec czerwca cze_lipiec lipca lip_sierpień sierpnia sie_wrzesień września wrz_październik października paź_listopad listopada lis_grudzień grudnia gru'.split('_'), i; - function equalTest(input, mmm, i) { - assert.equal(moment(input, mmm, true).month(), i, input + ' should be month ' + (i + 1)); - } - for (i = 0; i < 12; i++) { - tests[i] = tests[i].split(' '); - equalTest(tests[i][0], 'MMMM', i); - equalTest(tests[i][1], 'MMMM', i); - equalTest(tests[i][2], 'MMM', i); - equalTest(tests[i][0].toLocaleLowerCase(), 'MMMM', i); - equalTest(tests[i][1].toLocaleLowerCase(), 'MMMM', i); - equalTest(tests[i][2].toLocaleLowerCase(), 'MMM', i); - equalTest(tests[i][0].toLocaleUpperCase(), 'MMMM', i); - equalTest(tests[i][1].toLocaleUpperCase(), 'MMMM', i); - equalTest(tests[i][2].toLocaleUpperCase(), 'MMM', i); - } -}); - -test('format', function (assert) { - var a = [ - ['dddd, MMMM Do YYYY, h:mm:ss a', 'niedziela, luty 14. 2010, 3:25:50 pm'], - ['ddd, hA', 'ndz, 3PM'], - ['M Mo MM MMMM MMM', '2 2. 02 luty lut'], - ['YYYY YY', '2010 10'], - ['D Do DD', '14 14. 14'], - ['d do dddd ddd dd', '0 0. niedziela ndz Nd'], - ['DDD DDDo DDDD', '45 45. 045'], - ['w wo ww', '6 6. 06'], - ['h hh', '3 03'], - ['H HH', '15 15'], - ['m mm', '25 25'], - ['s ss', '50 50'], - ['a A', 'pm PM'], - ['[the] DDDo [day of the year]', 'the 45. day of the year'], - ['LTS', '15:25:50'], - ['L', '14.02.2010'], - ['LL', '14 lutego 2010'], - ['LLL', '14 lutego 2010 15:25'], - ['LLLL', 'niedziela, 14 lutego 2010 15:25'], - ['l', '14.2.2010'], - ['ll', '14 lut 2010'], - ['lll', '14 lut 2010 15:25'], - ['llll', 'ndz, 14 lut 2010 15:25'] - ], - b = moment(new Date(2010, 1, 14, 15, 25, 50, 125)), - i; - for (i = 0; i < a.length; i++) { - assert.equal(b.format(a[i][0]), a[i][1], a[i][0] + ' ---> ' + a[i][1]); - } -}); - -test('format ordinal', function (assert) { - assert.equal(moment([2011, 0, 1]).format('DDDo'), '1.', '1.'); - assert.equal(moment([2011, 0, 2]).format('DDDo'), '2.', '2.'); - assert.equal(moment([2011, 0, 3]).format('DDDo'), '3.', '3.'); - assert.equal(moment([2011, 0, 4]).format('DDDo'), '4.', '4.'); - assert.equal(moment([2011, 0, 5]).format('DDDo'), '5.', '5.'); - assert.equal(moment([2011, 0, 6]).format('DDDo'), '6.', '6.'); - assert.equal(moment([2011, 0, 7]).format('DDDo'), '7.', '7.'); - assert.equal(moment([2011, 0, 8]).format('DDDo'), '8.', '8.'); - assert.equal(moment([2011, 0, 9]).format('DDDo'), '9.', '9.'); - assert.equal(moment([2011, 0, 10]).format('DDDo'), '10.', '10.'); - - assert.equal(moment([2011, 0, 11]).format('DDDo'), '11.', '11.'); - assert.equal(moment([2011, 0, 12]).format('DDDo'), '12.', '12.'); - assert.equal(moment([2011, 0, 13]).format('DDDo'), '13.', '13.'); - assert.equal(moment([2011, 0, 14]).format('DDDo'), '14.', '14.'); - assert.equal(moment([2011, 0, 15]).format('DDDo'), '15.', '15.'); - assert.equal(moment([2011, 0, 16]).format('DDDo'), '16.', '16.'); - assert.equal(moment([2011, 0, 17]).format('DDDo'), '17.', '17.'); - assert.equal(moment([2011, 0, 18]).format('DDDo'), '18.', '18.'); - assert.equal(moment([2011, 0, 19]).format('DDDo'), '19.', '19.'); - assert.equal(moment([2011, 0, 20]).format('DDDo'), '20.', '20.'); - - assert.equal(moment([2011, 0, 21]).format('DDDo'), '21.', '21.'); - assert.equal(moment([2011, 0, 22]).format('DDDo'), '22.', '22.'); - assert.equal(moment([2011, 0, 23]).format('DDDo'), '23.', '23.'); - assert.equal(moment([2011, 0, 24]).format('DDDo'), '24.', '24.'); - assert.equal(moment([2011, 0, 25]).format('DDDo'), '25.', '25.'); - assert.equal(moment([2011, 0, 26]).format('DDDo'), '26.', '26.'); - assert.equal(moment([2011, 0, 27]).format('DDDo'), '27.', '27.'); - assert.equal(moment([2011, 0, 28]).format('DDDo'), '28.', '28.'); - assert.equal(moment([2011, 0, 29]).format('DDDo'), '29.', '29.'); - assert.equal(moment([2011, 0, 30]).format('DDDo'), '30.', '30.'); - - assert.equal(moment([2011, 0, 31]).format('DDDo'), '31.', '31.'); -}); - -test('format month', function (assert) { - var expected = 'styczeń sty_luty lut_marzec mar_kwiecień kwi_maj maj_czerwiec cze_lipiec lip_sierpień sie_wrzesień wrz_październik paź_listopad lis_grudzień gru'.split('_'), i; - for (i = 0; i < expected.length; i++) { - assert.equal(moment([2011, i, 1]).format('MMMM MMM'), expected[i], expected[i]); - } -}); - -test('format week', function (assert) { - var expected = 'niedziela ndz Nd_poniedziałek pon Pn_wtorek wt Wt_środa śr Śr_czwartek czw Cz_piątek pt Pt_sobota sob So'.split('_'), i; - for (i = 0; i < expected.length; i++) { - assert.equal(moment([2011, 0, 2 + i]).format('dddd ddd dd'), expected[i], expected[i]); - } -}); - -test('from', function (assert) { - var start = moment([2007, 1, 28]); - assert.equal(start.from(moment([2007, 1, 28]).add({s: 44}), true), 'kilka sekund', '44 seconds = a few seconds'); - assert.equal(start.from(moment([2007, 1, 28]).add({s: 45}), true), 'minuta', '45 seconds = a minute'); - assert.equal(start.from(moment([2007, 1, 28]).add({s: 89}), true), 'minuta', '89 seconds = a minute'); - assert.equal(start.from(moment([2007, 1, 28]).add({s: 90}), true), '2 minuty', '90 seconds = 2 minutes'); - assert.equal(start.from(moment([2007, 1, 28]).add({m: 44}), true), '44 minuty', '44 minutes = 44 minutes'); - assert.equal(start.from(moment([2007, 1, 28]).add({m: 45}), true), 'godzina', '45 minutes = an hour'); - assert.equal(start.from(moment([2007, 1, 28]).add({m: 89}), true), 'godzina', '89 minutes = an hour'); - assert.equal(start.from(moment([2007, 1, 28]).add({m: 90}), true), '2 godziny', '90 minutes = 2 hours'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 5}), true), '5 godzin', '5 hours = 5 hours'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 21}), true), '21 godzin', '21 hours = 21 hours'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 22}), true), '1 dzień', '22 hours = a day'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 35}), true), '1 dzień', '35 hours = a day'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 36}), true), '2 dni', '36 hours = 2 days'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 1}), true), '1 dzień', '1 day = a day'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 5}), true), '5 dni', '5 days = 5 days'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 25}), true), '25 dni', '25 days = 25 days'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 26}), true), 'miesiąc', '26 days = a month'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 30}), true), 'miesiąc', '30 days = a month'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 43}), true), 'miesiąc', '43 days = a month'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 46}), true), '2 miesiące', '46 days = 2 months'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 74}), true), '2 miesiące', '75 days = 2 months'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 76}), true), '3 miesiące', '76 days = 3 months'); - assert.equal(start.from(moment([2007, 1, 28]).add({M: 1}), true), 'miesiąc', '1 month = a month'); - assert.equal(start.from(moment([2007, 1, 28]).add({M: 5}), true), '5 miesięcy', '5 months = 5 months'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 345}), true), 'rok', '345 days = a year'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 548}), true), '2 lata', '548 days = 2 years'); - assert.equal(start.from(moment([2007, 1, 28]).add({y: 1}), true), 'rok', '1 year = a year'); - assert.equal(start.from(moment([2007, 1, 28]).add({y: 5}), true), '5 lat', '5 years = 5 years'); - assert.equal(start.from(moment([2007, 1, 28]).add({y: 112}), true), '112 lat', '112 years = 112 years'); - assert.equal(start.from(moment([2007, 1, 28]).add({y: 122}), true), '122 lata', '122 years = 122 years'); - assert.equal(start.from(moment([2007, 1, 28]).add({y: 213}), true), '213 lat', '213 years = 213 years'); - assert.equal(start.from(moment([2007, 1, 28]).add({y: 223}), true), '223 lata', '223 years = 223 years'); -}); - -test('suffix', function (assert) { - assert.equal(moment(30000).from(0), 'za kilka sekund', 'prefix'); - assert.equal(moment(0).from(30000), 'kilka sekund temu', 'suffix'); -}); - -test('now from now', function (assert) { - assert.equal(moment().fromNow(), 'kilka sekund temu', 'now from now should display as in the past'); -}); - -test('fromNow', function (assert) { - assert.equal(moment().add({s: 30}).fromNow(), 'za kilka sekund', 'in a few seconds'); - assert.equal(moment().add({h: 1}).fromNow(), 'za godzinę', 'in an hour'); - assert.equal(moment().add({d: 5}).fromNow(), 'za 5 dni', 'in 5 days'); -}); - -test('calendar day', function (assert) { - var a = moment().hours(12).minutes(0).seconds(0); - - assert.equal(moment(a).calendar(), 'Dziś o 12:00', 'today at the same time'); - assert.equal(moment(a).add({m: 25}).calendar(), 'Dziś o 12:25', 'Now plus 25 min'); - assert.equal(moment(a).add({h: 1}).calendar(), 'Dziś o 13:00', 'Now plus 1 hour'); - assert.equal(moment(a).add({d: 1}).calendar(), 'Jutro o 12:00', 'tomorrow at the same time'); - assert.equal(moment(a).subtract({h: 1}).calendar(), 'Dziś o 11:00', 'Now minus 1 hour'); - assert.equal(moment(a).subtract({d: 1}).calendar(), 'Wczoraj o 12:00', 'yesterday at the same time'); -}); - -test('calendar next week', function (assert) { - var i, m; - for (i = 2; i < 7; i++) { - m = moment().add({d: i}); - assert.equal(m.calendar(), m.format('[W] dddd [o] LT'), 'Today + ' + i + ' days current time'); - m.hours(0).minutes(0).seconds(0).milliseconds(0); - assert.equal(m.calendar(), m.format('[W] dddd [o] LT'), 'Today + ' + i + ' days beginning of day'); - m.hours(23).minutes(59).seconds(59).milliseconds(999); - assert.equal(m.calendar(), m.format('[W] dddd [o] LT'), 'Today + ' + i + ' days end of day'); - } -}); - -test('calendar last week', function (assert) { - var i, m; - - function makeFormat(d) { - switch (d.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'; - } - } - - for (i = 2; i < 7; i++) { - m = moment().subtract({d: i}); - assert.equal(m.calendar(), m.format(makeFormat(m)), 'Today - ' + i + ' days current time'); - - m.hours(0).minutes(0).seconds(0).milliseconds(0); - assert.equal(m.calendar(), m.format(makeFormat(m)), 'Today - ' + i + ' days beginning of day'); - - m.hours(23).minutes(59).seconds(59).milliseconds(999); - assert.equal(m.calendar(), m.format(makeFormat(m)), 'Today - ' + i + ' days end of day'); - } -}); - -test('calendar all else', function (assert) { - var weeksAgo = moment().subtract({w: 1}), - weeksFromNow = moment().add({w: 1}); - - assert.equal(weeksAgo.calendar(), weeksAgo.format('L'), '1 week ago'); - assert.equal(weeksFromNow.calendar(), weeksFromNow.format('L'), 'in 1 week'); - - weeksAgo = moment().subtract({w: 2}); - weeksFromNow = moment().add({w: 2}); - - assert.equal(weeksAgo.calendar(), weeksAgo.format('L'), '2 weeks ago'); - assert.equal(weeksFromNow.calendar(), weeksFromNow.format('L'), 'in 2 weeks'); -}); - -test('weeks year starting sunday formatted', function (assert) { - assert.equal(moment([2012, 0, 1]).format('w ww wo'), '52 52 52.', 'Jan 1 2012 should be week 52'); - assert.equal(moment([2012, 0, 2]).format('w ww wo'), '1 01 1.', 'Jan 2 2012 should be week 1'); - assert.equal(moment([2012, 0, 8]).format('w ww wo'), '1 01 1.', 'Jan 8 2012 should be week 1'); - assert.equal(moment([2012, 0, 9]).format('w ww wo'), '2 02 2.', 'Jan 9 2012 should be week 2'); - assert.equal(moment([2012, 0, 15]).format('w ww wo'), '2 02 2.', 'Jan 15 2012 should be week 2'); -}); - -}))); - - -;(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' - && typeof require === 'function' ? factory(require('../../moment')) : - typeof define === 'function' && define.amd ? define(['../../moment'], factory) : - factory(global.moment) -}(this, (function (moment) { 'use strict'; - -function each(array, callback) { - var i; - for (i = 0; i < array.length; i++) { - callback(array[i], i, array); - } -} - -function objectKeys(obj) { - if (Object.keys) { - return Object.keys(obj); - } else { - // IE8 - var res = [], i; - for (i in obj) { - if (obj.hasOwnProperty(i)) { - res.push(i); - } - } - return res; - } -} - -// Pick the first defined of two or three arguments. - -function defineCommonLocaleTests(locale, options) { - test('lenient day of month ordinal parsing', function (assert) { - var i, ordinalStr, testMoment; - for (i = 1; i <= 31; ++i) { - ordinalStr = moment([2014, 0, i]).format('YYYY MM Do'); - testMoment = moment(ordinalStr, 'YYYY MM Do'); - assert.equal(testMoment.year(), 2014, - 'lenient day of month ordinal parsing ' + i + ' year check'); - assert.equal(testMoment.month(), 0, - 'lenient day of month ordinal parsing ' + i + ' month check'); - assert.equal(testMoment.date(), i, - 'lenient day of month ordinal parsing ' + i + ' date check'); - } - }); - - test('lenient day of month ordinal parsing of number', function (assert) { - var i, testMoment; - for (i = 1; i <= 31; ++i) { - testMoment = moment('2014 01 ' + i, 'YYYY MM Do'); - assert.equal(testMoment.year(), 2014, - 'lenient day of month ordinal parsing of number ' + i + ' year check'); - assert.equal(testMoment.month(), 0, - 'lenient day of month ordinal parsing of number ' + i + ' month check'); - assert.equal(testMoment.date(), i, - 'lenient day of month ordinal parsing of number ' + i + ' date check'); - } - }); - - test('strict day of month ordinal parsing', function (assert) { - var i, ordinalStr, testMoment; - for (i = 1; i <= 31; ++i) { - ordinalStr = moment([2014, 0, i]).format('YYYY MM Do'); - testMoment = moment(ordinalStr, 'YYYY MM Do', true); - assert.ok(testMoment.isValid(), 'strict day of month ordinal parsing ' + i); - } - }); - - test('meridiem invariant', function (assert) { - var h, m, t1, t2; - for (h = 0; h < 24; ++h) { - for (m = 0; m < 60; m += 15) { - t1 = moment.utc([2000, 0, 1, h, m]); - t2 = moment.utc(t1.format('A h:mm'), 'A h:mm'); - assert.equal(t2.format('HH:mm'), t1.format('HH:mm'), - 'meridiem at ' + t1.format('HH:mm')); - } - } - }); - - test('date format correctness', function (assert) { - var data, tokens; - data = moment.localeData()._longDateFormat; - tokens = objectKeys(data); - each(tokens, function (srchToken) { - // Check each format string to make sure it does not contain any - // tokens that need to be expanded. - each(tokens, function (baseToken) { - // strip escaped sequences - var format = data[baseToken].replace(/(\[[^\]]*\])/g, ''); - assert.equal(false, !!~format.indexOf(srchToken), - 'contains ' + srchToken + ' in ' + baseToken); - }); - }); - }); - - test('month parsing correctness', function (assert) { - var i, m; - - if (locale === 'tr') { - // I can't fix it :( - expect(0); - return; - } - function tester(format) { - var r; - r = moment(m.format(format), format); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format); - r = moment(m.format(format).toLocaleUpperCase(), format); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' upper'); - r = moment(m.format(format).toLocaleLowerCase(), format); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' lower'); - - r = moment(m.format(format), format, true); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' strict'); - r = moment(m.format(format).toLocaleUpperCase(), format, true); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' upper strict'); - r = moment(m.format(format).toLocaleLowerCase(), format, true); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' lower strict'); - } - - for (i = 0; i < 12; ++i) { - m = moment([2015, i, 15, 18]); - tester('MMM'); - tester('MMM.'); - tester('MMMM'); - tester('MMMM.'); - } - }); - - test('weekday parsing correctness', function (assert) { - var i, m; - - if (locale === 'tr' || locale === 'az' || locale === 'ro') { - // tr, az: There is a lower-case letter (ı), that converted to - // upper then lower changes to i - // ro: there is the letter ț which behaves weird under IE8 - expect(0); - return; - } - function tester(format) { - var r, baseMsg = 'weekday ' + m.weekday() + ' fmt ' + format + ' ' + m.toISOString(); - r = moment(m.format(format), format); - assert.equal(r.weekday(), m.weekday(), baseMsg); - r = moment(m.format(format).toLocaleUpperCase(), format); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' upper'); - r = moment(m.format(format).toLocaleLowerCase(), format); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' lower'); - - r = moment(m.format(format), format, true); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' strict'); - r = moment(m.format(format).toLocaleUpperCase(), format, true); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' upper strict'); - r = moment(m.format(format).toLocaleLowerCase(), format, true); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' lower strict'); - } - - for (i = 0; i < 7; ++i) { - m = moment.utc([2015, 0, i + 1, 18]); - tester('dd'); - tester('ddd'); - tester('dddd'); - } - }); - - test('valid localeData', function (assert) { - assert.equal(moment().localeData().months().length, 12, 'months should return 12 months'); - assert.equal(moment().localeData().monthsShort().length, 12, 'monthsShort should return 12 months'); - assert.equal(moment().localeData().weekdays().length, 7, 'weekdays should return 7 days'); - assert.equal(moment().localeData().weekdaysShort().length, 7, 'weekdaysShort should return 7 days'); - assert.equal(moment().localeData().weekdaysMin().length, 7, 'monthsShort should return 7 days'); - }); -} - -function setupDeprecationHandler(test, moment$$1, scope) { - test._expectedDeprecations = null; - test._observedDeprecations = null; - test._oldSupress = moment$$1.suppressDeprecationWarnings; - moment$$1.suppressDeprecationWarnings = true; - test.expectedDeprecations = function () { - test._expectedDeprecations = arguments; - test._observedDeprecations = []; - }; - moment$$1.deprecationHandler = function (name, msg) { - var deprecationId = matchedDeprecation(name, msg, test._expectedDeprecations); - if (deprecationId === -1) { - throw new Error('Unexpected deprecation thrown name=' + - name + ' msg=' + msg); - } - test._observedDeprecations[deprecationId] = 1; - }; -} - -function teardownDeprecationHandler(test, moment$$1, scope) { - moment$$1.suppressDeprecationWarnings = test._oldSupress; - - if (test._expectedDeprecations != null) { - var missedDeprecations = []; - each(test._expectedDeprecations, function (deprecationPattern, id) { - if (test._observedDeprecations[id] !== 1) { - missedDeprecations.push(deprecationPattern); - } - }); - if (missedDeprecations.length !== 0) { - throw new Error('Expected deprecation warnings did not happen: ' + - missedDeprecations.join(' ')); - } - } -} - -function matchedDeprecation(name, msg, deprecations) { - if (deprecations == null) { - return -1; - } - for (var i = 0; i < deprecations.length; ++i) { - if (name != null && name === deprecations[i]) { - return i; - } - if (msg != null && msg.substring(0, deprecations[i].length) === deprecations[i]) { - return i; - } - } - return -1; -} - -/*global QUnit:false*/ - -var test = QUnit.test; - -var expect = QUnit.expect; - - - -function localeModule (name, lifecycle) { - QUnit.module('locale:' + name, { - setup : function () { - moment.locale(name); - moment.createFromInputFallback = function (config) { - throw new Error('input not handled by moment: ' + config._i); - }; - setupDeprecationHandler(test, moment, 'locale'); - if (lifecycle && lifecycle.setup) { - lifecycle.setup(); - } - }, - teardown : function () { - moment.locale('en'); - teardownDeprecationHandler(test, moment, 'locale'); - if (lifecycle && lifecycle.teardown) { - lifecycle.teardown(); - } - } - }); - defineCommonLocaleTests(name, -1, -1); -} - -localeModule('pt-br'); - -test('parse', function (assert) { - var tests = 'janeiro jan_fevereiro fev_março mar_abril abr_maio mai_junho jun_julho jul_agosto ago_setembro set_outubro out_novembro nov_dezembro dez'.split('_'), i; - - function equalTest(input, mmm, i) { - assert.equal(moment(input, mmm).month(), i, input + ' should be month ' + (i + 1)); - } - - for (i = 0; i < 12; i++) { - tests[i] = tests[i].split(' '); - equalTest(tests[i][0], 'MMM', i); - equalTest(tests[i][1], 'MMM', i); - equalTest(tests[i][0], 'MMMM', i); - equalTest(tests[i][1], 'MMMM', i); - equalTest(tests[i][0].toLocaleLowerCase(), 'MMMM', i); - equalTest(tests[i][1].toLocaleLowerCase(), 'MMMM', i); - equalTest(tests[i][0].toLocaleUpperCase(), 'MMMM', i); - equalTest(tests[i][1].toLocaleUpperCase(), 'MMMM', i); - } -}); - -test('format', function (assert) { - var a = [ - ['dddd, MMMM Do YYYY, h:mm:ss a', 'Domingo, Fevereiro 14º 2010, 3:25:50 pm'], - ['ddd, hA', 'Dom, 3PM'], - ['M Mo MM MMMM MMM', '2 2º 02 Fevereiro Fev'], - ['YYYY YY', '2010 10'], - ['D Do DD', '14 14º 14'], - ['d do dddd ddd', '0 0º Domingo Dom'], - ['DDD DDDo DDDD', '45 45º 045'], - ['w wo ww', '8 8º 08'], - ['h hh', '3 03'], - ['H HH', '15 15'], - ['m mm', '25 25'], - ['s ss', '50 50'], - ['a A', 'pm PM'], - ['[the] DDDo [day of the year]', 'the 45º day of the year'], - ['LTS', '15:25:50'], - ['L', '14/02/2010'], - ['LL', '14 de Fevereiro de 2010'], - ['LLL', '14 de Fevereiro de 2010 às 15:25'], - ['LLLL', 'Domingo, 14 de Fevereiro de 2010 às 15:25'], - ['l', '14/2/2010'], - ['ll', '14 de Fev de 2010'], - ['lll', '14 de Fev de 2010 às 15:25'], - ['llll', 'Dom, 14 de Fev de 2010 às 15:25'] - ], - b = moment(new Date(2010, 1, 14, 15, 25, 50, 125)), - i; - for (i = 0; i < a.length; i++) { - assert.equal(b.format(a[i][0]), a[i][1], a[i][0] + ' ---> ' + a[i][1]); - } -}); - -test('format ordinal', function (assert) { - assert.equal(moment([2011, 0, 1]).format('DDDo'), '1º', '1º'); - assert.equal(moment([2011, 0, 2]).format('DDDo'), '2º', '2º'); - assert.equal(moment([2011, 0, 3]).format('DDDo'), '3º', '3º'); - assert.equal(moment([2011, 0, 4]).format('DDDo'), '4º', '4º'); - assert.equal(moment([2011, 0, 5]).format('DDDo'), '5º', '5º'); - assert.equal(moment([2011, 0, 6]).format('DDDo'), '6º', '6º'); - assert.equal(moment([2011, 0, 7]).format('DDDo'), '7º', '7º'); - assert.equal(moment([2011, 0, 8]).format('DDDo'), '8º', '8º'); - assert.equal(moment([2011, 0, 9]).format('DDDo'), '9º', '9º'); - assert.equal(moment([2011, 0, 10]).format('DDDo'), '10º', '10º'); - - assert.equal(moment([2011, 0, 11]).format('DDDo'), '11º', '11º'); - assert.equal(moment([2011, 0, 12]).format('DDDo'), '12º', '12º'); - assert.equal(moment([2011, 0, 13]).format('DDDo'), '13º', '13º'); - assert.equal(moment([2011, 0, 14]).format('DDDo'), '14º', '14º'); - assert.equal(moment([2011, 0, 15]).format('DDDo'), '15º', '15º'); - assert.equal(moment([2011, 0, 16]).format('DDDo'), '16º', '16º'); - assert.equal(moment([2011, 0, 17]).format('DDDo'), '17º', '17º'); - assert.equal(moment([2011, 0, 18]).format('DDDo'), '18º', '18º'); - assert.equal(moment([2011, 0, 19]).format('DDDo'), '19º', '19º'); - assert.equal(moment([2011, 0, 20]).format('DDDo'), '20º', '20º'); - - assert.equal(moment([2011, 0, 21]).format('DDDo'), '21º', '21º'); - assert.equal(moment([2011, 0, 22]).format('DDDo'), '22º', '22º'); - assert.equal(moment([2011, 0, 23]).format('DDDo'), '23º', '23º'); - assert.equal(moment([2011, 0, 24]).format('DDDo'), '24º', '24º'); - assert.equal(moment([2011, 0, 25]).format('DDDo'), '25º', '25º'); - assert.equal(moment([2011, 0, 26]).format('DDDo'), '26º', '26º'); - assert.equal(moment([2011, 0, 27]).format('DDDo'), '27º', '27º'); - assert.equal(moment([2011, 0, 28]).format('DDDo'), '28º', '28º'); - assert.equal(moment([2011, 0, 29]).format('DDDo'), '29º', '29º'); - assert.equal(moment([2011, 0, 30]).format('DDDo'), '30º', '30º'); - - assert.equal(moment([2011, 0, 31]).format('DDDo'), '31º', '31º'); -}); - -test('format month', function (assert) { - var expected = 'Janeiro Jan_Fevereiro Fev_Março Mar_Abril Abr_Maio Mai_Junho Jun_Julho Jul_Agosto Ago_Setembro Set_Outubro Out_Novembro Nov_Dezembro Dez'.split('_'), i; - for (i = 0; i < expected.length; i++) { - assert.equal(moment([2011, i, 1]).format('MMMM MMM'), expected[i], expected[i]); - } -}); - -test('format week', function (assert) { - var expected = 'Domingo Dom Do_Segunda-feira Seg 2ª_Terça-feira Ter 3ª_Quarta-feira Qua 4ª_Quinta-feira Qui 5ª_Sexta-feira Sex 6ª_Sábado Sáb Sá'.split('_'), i; - for (i = 0; i < expected.length; i++) { - assert.equal(moment([2011, 0, 2 + i]).format('dddd ddd dd'), expected[i], expected[i]); - } -}); - -test('from', function (assert) { - var start = moment([2007, 1, 28]); - assert.equal(start.from(moment([2007, 1, 28]).add({s: 44}), true), 'poucos segundos', '44 seconds = seconds'); - assert.equal(start.from(moment([2007, 1, 28]).add({s: 45}), true), 'um minuto', '45 seconds = a minute'); - assert.equal(start.from(moment([2007, 1, 28]).add({s: 89}), true), 'um minuto', '89 seconds = a minute'); - assert.equal(start.from(moment([2007, 1, 28]).add({s: 90}), true), '2 minutos', '90 seconds = 2 minutes'); - assert.equal(start.from(moment([2007, 1, 28]).add({m: 44}), true), '44 minutos', '44 minutes = 44 minutes'); - assert.equal(start.from(moment([2007, 1, 28]).add({m: 45}), true), 'uma hora', '45 minutes = an hour'); - assert.equal(start.from(moment([2007, 1, 28]).add({m: 89}), true), 'uma hora', '89 minutes = an hour'); - assert.equal(start.from(moment([2007, 1, 28]).add({m: 90}), true), '2 horas', '90 minutes = 2 hours'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 5}), true), '5 horas', '5 hours = 5 hours'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 21}), true), '21 horas', '21 hours = 21 hours'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 22}), true), 'um dia', '22 hours = a day'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 35}), true), 'um dia', '35 hours = a day'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 36}), true), '2 dias', '36 hours = 2 days'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 1}), true), 'um dia', '1 day = a day'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 5}), true), '5 dias', '5 days = 5 days'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 25}), true), '25 dias', '25 days = 25 days'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 26}), true), 'um mês', '26 days = a month'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 30}), true), 'um mês', '30 days = a month'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 43}), true), 'um mês', '43 days = a month'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 46}), true), '2 meses', '46 days = 2 months'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 74}), true), '2 meses', '75 days = 2 months'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 76}), true), '3 meses', '76 days = 3 months'); - assert.equal(start.from(moment([2007, 1, 28]).add({M: 1}), true), 'um mês', '1 month = a month'); - assert.equal(start.from(moment([2007, 1, 28]).add({M: 5}), true), '5 meses', '5 months = 5 months'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 345}), true), 'um ano', '345 days = a year'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 548}), true), '2 anos', '548 days = 2 years'); - assert.equal(start.from(moment([2007, 1, 28]).add({y: 1}), true), 'um ano', '1 year = a year'); - assert.equal(start.from(moment([2007, 1, 28]).add({y: 5}), true), '5 anos', '5 years = 5 years'); -}); - -test('suffix', function (assert) { - assert.equal(moment(30000).from(0), 'em poucos segundos', 'prefix'); - assert.equal(moment(0).from(30000), 'poucos segundos atrás', 'suffix'); -}); - -test('fromNow', function (assert) { - assert.equal(moment().add({s: 30}).fromNow(), 'em poucos segundos', 'in seconds'); - assert.equal(moment().add({d: 5}).fromNow(), 'em 5 dias', 'in 5 days'); -}); - -test('calendar day', function (assert) { - var a = moment().hours(12).minutes(0).seconds(0); - - assert.equal(moment(a).calendar(), 'Hoje às 12:00', 'today at the same time'); - assert.equal(moment(a).add({m: 25}).calendar(), 'Hoje às 12:25', 'Now plus 25 min'); - assert.equal(moment(a).add({h: 1}).calendar(), 'Hoje às 13:00', 'Now plus 1 hour'); - assert.equal(moment(a).add({d: 1}).calendar(), 'Amanhã às 12:00', 'tomorrow at the same time'); - assert.equal(moment(a).subtract({h: 1}).calendar(), 'Hoje às 11:00', 'Now minus 1 hour'); - assert.equal(moment(a).subtract({d: 1}).calendar(), 'Ontem às 12:00', 'yesterday at the same time'); -}); - -test('calendar next week', function (assert) { - var i, m; - for (i = 2; i < 7; i++) { - m = moment().add({d: i}); - assert.equal(m.calendar(), m.format('dddd [às] LT'), 'Today + ' + i + ' days current time'); - m.hours(0).minutes(0).seconds(0).milliseconds(0); - assert.equal(m.calendar(), m.format('dddd [às] LT'), 'Today + ' + i + ' days beginning of day'); - m.hours(23).minutes(59).seconds(59).milliseconds(999); - assert.equal(m.calendar(), m.format('dddd [às] LT'), 'Today + ' + i + ' days end of day'); - } -}); - -test('calendar last week', function (assert) { - var i, m; - for (i = 2; i < 7; i++) { - m = moment().subtract({d: i}); - assert.equal(m.calendar(), m.format((m.day() === 0 || m.day() === 6) ? '[Último] dddd [às] LT' : '[Última] dddd [às] LT'), 'Today - ' + i + ' days current time'); - m.hours(0).minutes(0).seconds(0).milliseconds(0); - assert.equal(m.calendar(), m.format((m.day() === 0 || m.day() === 6) ? '[Último] dddd [às] LT' : '[Última] dddd [às] LT'), 'Today - ' + i + ' days beginning of day'); - m.hours(23).minutes(59).seconds(59).milliseconds(999); - assert.equal(m.calendar(), m.format((m.day() === 0 || m.day() === 6) ? '[Último] dddd [às] LT' : '[Última] dddd [às] LT'), 'Today - ' + i + ' days end of day'); - } -}); - -test('calendar all else', function (assert) { - var weeksAgo = moment().subtract({w: 1}), - weeksFromNow = moment().add({w: 1}); - - assert.equal(weeksAgo.calendar(), weeksAgo.format('L'), '1 week ago'); - assert.equal(weeksFromNow.calendar(), weeksFromNow.format('L'), 'in 1 week'); - - weeksAgo = moment().subtract({w: 2}); - weeksFromNow = moment().add({w: 2}); - - assert.equal(weeksAgo.calendar(), weeksAgo.format('L'), '2 weeks ago'); - assert.equal(weeksFromNow.calendar(), weeksFromNow.format('L'), 'in 2 weeks'); -}); - -test('weeks year starting sunday format', function (assert) { - assert.equal(moment([2012, 0, 1]).format('w ww wo'), '1 01 1º', 'Jan 1 2012 should be week 1'); - assert.equal(moment([2012, 0, 7]).format('w ww wo'), '1 01 1º', 'Jan 7 2012 should be week 1'); - assert.equal(moment([2012, 0, 8]).format('w ww wo'), '2 02 2º', 'Jan 8 2012 should be week 2'); - assert.equal(moment([2012, 0, 14]).format('w ww wo'), '2 02 2º', 'Jan 14 2012 should be week 2'); - assert.equal(moment([2012, 0, 15]).format('w ww wo'), '3 03 3º', 'Jan 15 2012 should be week 3'); -}); - -}))); - - -;(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' - && typeof require === 'function' ? factory(require('../../moment')) : - typeof define === 'function' && define.amd ? define(['../../moment'], factory) : - factory(global.moment) -}(this, (function (moment) { 'use strict'; - -function each(array, callback) { - var i; - for (i = 0; i < array.length; i++) { - callback(array[i], i, array); - } -} - -function objectKeys(obj) { - if (Object.keys) { - return Object.keys(obj); - } else { - // IE8 - var res = [], i; - for (i in obj) { - if (obj.hasOwnProperty(i)) { - res.push(i); - } - } - return res; - } -} - -// Pick the first defined of two or three arguments. - -function defineCommonLocaleTests(locale, options) { - test('lenient day of month ordinal parsing', function (assert) { - var i, ordinalStr, testMoment; - for (i = 1; i <= 31; ++i) { - ordinalStr = moment([2014, 0, i]).format('YYYY MM Do'); - testMoment = moment(ordinalStr, 'YYYY MM Do'); - assert.equal(testMoment.year(), 2014, - 'lenient day of month ordinal parsing ' + i + ' year check'); - assert.equal(testMoment.month(), 0, - 'lenient day of month ordinal parsing ' + i + ' month check'); - assert.equal(testMoment.date(), i, - 'lenient day of month ordinal parsing ' + i + ' date check'); - } - }); - - test('lenient day of month ordinal parsing of number', function (assert) { - var i, testMoment; - for (i = 1; i <= 31; ++i) { - testMoment = moment('2014 01 ' + i, 'YYYY MM Do'); - assert.equal(testMoment.year(), 2014, - 'lenient day of month ordinal parsing of number ' + i + ' year check'); - assert.equal(testMoment.month(), 0, - 'lenient day of month ordinal parsing of number ' + i + ' month check'); - assert.equal(testMoment.date(), i, - 'lenient day of month ordinal parsing of number ' + i + ' date check'); - } - }); - - test('strict day of month ordinal parsing', function (assert) { - var i, ordinalStr, testMoment; - for (i = 1; i <= 31; ++i) { - ordinalStr = moment([2014, 0, i]).format('YYYY MM Do'); - testMoment = moment(ordinalStr, 'YYYY MM Do', true); - assert.ok(testMoment.isValid(), 'strict day of month ordinal parsing ' + i); - } - }); - - test('meridiem invariant', function (assert) { - var h, m, t1, t2; - for (h = 0; h < 24; ++h) { - for (m = 0; m < 60; m += 15) { - t1 = moment.utc([2000, 0, 1, h, m]); - t2 = moment.utc(t1.format('A h:mm'), 'A h:mm'); - assert.equal(t2.format('HH:mm'), t1.format('HH:mm'), - 'meridiem at ' + t1.format('HH:mm')); - } - } - }); - - test('date format correctness', function (assert) { - var data, tokens; - data = moment.localeData()._longDateFormat; - tokens = objectKeys(data); - each(tokens, function (srchToken) { - // Check each format string to make sure it does not contain any - // tokens that need to be expanded. - each(tokens, function (baseToken) { - // strip escaped sequences - var format = data[baseToken].replace(/(\[[^\]]*\])/g, ''); - assert.equal(false, !!~format.indexOf(srchToken), - 'contains ' + srchToken + ' in ' + baseToken); - }); - }); - }); - - test('month parsing correctness', function (assert) { - var i, m; - - if (locale === 'tr') { - // I can't fix it :( - expect(0); - return; - } - function tester(format) { - var r; - r = moment(m.format(format), format); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format); - r = moment(m.format(format).toLocaleUpperCase(), format); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' upper'); - r = moment(m.format(format).toLocaleLowerCase(), format); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' lower'); - - r = moment(m.format(format), format, true); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' strict'); - r = moment(m.format(format).toLocaleUpperCase(), format, true); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' upper strict'); - r = moment(m.format(format).toLocaleLowerCase(), format, true); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' lower strict'); - } - - for (i = 0; i < 12; ++i) { - m = moment([2015, i, 15, 18]); - tester('MMM'); - tester('MMM.'); - tester('MMMM'); - tester('MMMM.'); - } - }); - - test('weekday parsing correctness', function (assert) { - var i, m; - - if (locale === 'tr' || locale === 'az' || locale === 'ro') { - // tr, az: There is a lower-case letter (ı), that converted to - // upper then lower changes to i - // ro: there is the letter ț which behaves weird under IE8 - expect(0); - return; - } - function tester(format) { - var r, baseMsg = 'weekday ' + m.weekday() + ' fmt ' + format + ' ' + m.toISOString(); - r = moment(m.format(format), format); - assert.equal(r.weekday(), m.weekday(), baseMsg); - r = moment(m.format(format).toLocaleUpperCase(), format); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' upper'); - r = moment(m.format(format).toLocaleLowerCase(), format); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' lower'); - - r = moment(m.format(format), format, true); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' strict'); - r = moment(m.format(format).toLocaleUpperCase(), format, true); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' upper strict'); - r = moment(m.format(format).toLocaleLowerCase(), format, true); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' lower strict'); - } - - for (i = 0; i < 7; ++i) { - m = moment.utc([2015, 0, i + 1, 18]); - tester('dd'); - tester('ddd'); - tester('dddd'); - } - }); - - test('valid localeData', function (assert) { - assert.equal(moment().localeData().months().length, 12, 'months should return 12 months'); - assert.equal(moment().localeData().monthsShort().length, 12, 'monthsShort should return 12 months'); - assert.equal(moment().localeData().weekdays().length, 7, 'weekdays should return 7 days'); - assert.equal(moment().localeData().weekdaysShort().length, 7, 'weekdaysShort should return 7 days'); - assert.equal(moment().localeData().weekdaysMin().length, 7, 'monthsShort should return 7 days'); - }); -} - -function setupDeprecationHandler(test, moment$$1, scope) { - test._expectedDeprecations = null; - test._observedDeprecations = null; - test._oldSupress = moment$$1.suppressDeprecationWarnings; - moment$$1.suppressDeprecationWarnings = true; - test.expectedDeprecations = function () { - test._expectedDeprecations = arguments; - test._observedDeprecations = []; - }; - moment$$1.deprecationHandler = function (name, msg) { - var deprecationId = matchedDeprecation(name, msg, test._expectedDeprecations); - if (deprecationId === -1) { - throw new Error('Unexpected deprecation thrown name=' + - name + ' msg=' + msg); - } - test._observedDeprecations[deprecationId] = 1; - }; -} - -function teardownDeprecationHandler(test, moment$$1, scope) { - moment$$1.suppressDeprecationWarnings = test._oldSupress; - - if (test._expectedDeprecations != null) { - var missedDeprecations = []; - each(test._expectedDeprecations, function (deprecationPattern, id) { - if (test._observedDeprecations[id] !== 1) { - missedDeprecations.push(deprecationPattern); - } - }); - if (missedDeprecations.length !== 0) { - throw new Error('Expected deprecation warnings did not happen: ' + - missedDeprecations.join(' ')); - } - } -} - -function matchedDeprecation(name, msg, deprecations) { - if (deprecations == null) { - return -1; - } - for (var i = 0; i < deprecations.length; ++i) { - if (name != null && name === deprecations[i]) { - return i; - } - if (msg != null && msg.substring(0, deprecations[i].length) === deprecations[i]) { - return i; - } - } - return -1; -} - -/*global QUnit:false*/ - -var test = QUnit.test; - -var expect = QUnit.expect; - - - -function localeModule (name, lifecycle) { - QUnit.module('locale:' + name, { - setup : function () { - moment.locale(name); - moment.createFromInputFallback = function (config) { - throw new Error('input not handled by moment: ' + config._i); - }; - setupDeprecationHandler(test, moment, 'locale'); - if (lifecycle && lifecycle.setup) { - lifecycle.setup(); - } - }, - teardown : function () { - moment.locale('en'); - teardownDeprecationHandler(test, moment, 'locale'); - if (lifecycle && lifecycle.teardown) { - lifecycle.teardown(); - } - } - }); - defineCommonLocaleTests(name, -1, -1); -} - -localeModule('pt'); - -test('parse', function (assert) { - var tests = 'Janeiro Jan_Fevereiro Fev_Março Mar_Abril Abr_Maio Mai_Junho Jun_Julho Jul_Agosto Ago_Setembro Set_Outubro Out_Novembro Nov_Dezembro Dez'.split('_'), i; - function equalTest(input, mmm, i) { - assert.equal(moment(input, mmm).month(), i, input + ' should be month ' + (i + 1)); - } - for (i = 0; i < 12; i++) { - tests[i] = tests[i].split(' '); - equalTest(tests[i][0], 'MMM', i); - equalTest(tests[i][1], 'MMM', i); - equalTest(tests[i][0], 'MMMM', i); - equalTest(tests[i][1], 'MMMM', i); - equalTest(tests[i][0].toLocaleLowerCase(), 'MMMM', i); - equalTest(tests[i][1].toLocaleLowerCase(), 'MMMM', i); - equalTest(tests[i][0].toLocaleUpperCase(), 'MMMM', i); - equalTest(tests[i][1].toLocaleUpperCase(), 'MMMM', i); - } -}); - -test('format', function (assert) { - var a = [ - ['dddd, MMMM Do YYYY, h:mm:ss a', 'Domingo, Fevereiro 14º 2010, 3:25:50 pm'], - ['ddd, hA', 'Dom, 3PM'], - ['M Mo MM MMMM MMM', '2 2º 02 Fevereiro Fev'], - ['YYYY YY', '2010 10'], - ['D Do DD', '14 14º 14'], - ['d do dddd ddd', '0 0º Domingo Dom'], - ['DDD DDDo DDDD', '45 45º 045'], - ['w wo ww', '6 6º 06'], - ['h hh', '3 03'], - ['H HH', '15 15'], - ['m mm', '25 25'], - ['s ss', '50 50'], - ['a A', 'pm PM'], - ['[the] DDDo [day of the year]', 'the 45º day of the year'], - ['LTS', '15:25:50'], - ['L', '14/02/2010'], - ['LL', '14 de Fevereiro de 2010'], - ['LLL', '14 de Fevereiro de 2010 15:25'], - ['LLLL', 'Domingo, 14 de Fevereiro de 2010 15:25'], - ['l', '14/2/2010'], - ['ll', '14 de Fev de 2010'], - ['lll', '14 de Fev de 2010 15:25'], - ['llll', 'Dom, 14 de Fev de 2010 15:25'] - ], - b = moment(new Date(2010, 1, 14, 15, 25, 50, 125)), - i; - for (i = 0; i < a.length; i++) { - assert.equal(b.format(a[i][0]), a[i][1], a[i][0] + ' ---> ' + a[i][1]); - } -}); - -test('format ordinal', function (assert) { - assert.equal(moment([2011, 0, 1]).format('DDDo'), '1º', '1º'); - assert.equal(moment([2011, 0, 2]).format('DDDo'), '2º', '2º'); - assert.equal(moment([2011, 0, 3]).format('DDDo'), '3º', '3º'); - assert.equal(moment([2011, 0, 4]).format('DDDo'), '4º', '4º'); - assert.equal(moment([2011, 0, 5]).format('DDDo'), '5º', '5º'); - assert.equal(moment([2011, 0, 6]).format('DDDo'), '6º', '6º'); - assert.equal(moment([2011, 0, 7]).format('DDDo'), '7º', '7º'); - assert.equal(moment([2011, 0, 8]).format('DDDo'), '8º', '8º'); - assert.equal(moment([2011, 0, 9]).format('DDDo'), '9º', '9º'); - assert.equal(moment([2011, 0, 10]).format('DDDo'), '10º', '10º'); - - assert.equal(moment([2011, 0, 11]).format('DDDo'), '11º', '11º'); - assert.equal(moment([2011, 0, 12]).format('DDDo'), '12º', '12º'); - assert.equal(moment([2011, 0, 13]).format('DDDo'), '13º', '13º'); - assert.equal(moment([2011, 0, 14]).format('DDDo'), '14º', '14º'); - assert.equal(moment([2011, 0, 15]).format('DDDo'), '15º', '15º'); - assert.equal(moment([2011, 0, 16]).format('DDDo'), '16º', '16º'); - assert.equal(moment([2011, 0, 17]).format('DDDo'), '17º', '17º'); - assert.equal(moment([2011, 0, 18]).format('DDDo'), '18º', '18º'); - assert.equal(moment([2011, 0, 19]).format('DDDo'), '19º', '19º'); - assert.equal(moment([2011, 0, 20]).format('DDDo'), '20º', '20º'); - - assert.equal(moment([2011, 0, 21]).format('DDDo'), '21º', '21º'); - assert.equal(moment([2011, 0, 22]).format('DDDo'), '22º', '22º'); - assert.equal(moment([2011, 0, 23]).format('DDDo'), '23º', '23º'); - assert.equal(moment([2011, 0, 24]).format('DDDo'), '24º', '24º'); - assert.equal(moment([2011, 0, 25]).format('DDDo'), '25º', '25º'); - assert.equal(moment([2011, 0, 26]).format('DDDo'), '26º', '26º'); - assert.equal(moment([2011, 0, 27]).format('DDDo'), '27º', '27º'); - assert.equal(moment([2011, 0, 28]).format('DDDo'), '28º', '28º'); - assert.equal(moment([2011, 0, 29]).format('DDDo'), '29º', '29º'); - assert.equal(moment([2011, 0, 30]).format('DDDo'), '30º', '30º'); - - assert.equal(moment([2011, 0, 31]).format('DDDo'), '31º', '31º'); -}); - -test('format month', function (assert) { - var expected = 'Janeiro Jan_Fevereiro Fev_Março Mar_Abril Abr_Maio Mai_Junho Jun_Julho Jul_Agosto Ago_Setembro Set_Outubro Out_Novembro Nov_Dezembro Dez'.split('_'), i; - for (i = 0; i < expected.length; i++) { - assert.equal(moment([2011, i, 1]).format('MMMM MMM'), expected[i], expected[i]); - } -}); - -test('format week', function (assert) { - var expected = 'Domingo Dom Do_Segunda-Feira Seg 2ª_Terça-Feira Ter 3ª_Quarta-Feira Qua 4ª_Quinta-Feira Qui 5ª_Sexta-Feira Sex 6ª_Sábado Sáb Sá'.split('_'), i; - for (i = 0; i < expected.length; i++) { - assert.equal(moment([2011, 0, 2 + i]).format('dddd ddd dd'), expected[i], expected[i]); - } -}); - -test('from', function (assert) { - var start = moment([2007, 1, 28]); - assert.equal(start.from(moment([2007, 1, 28]).add({s: 44}), true), 'segundos', '44 seconds = seconds'); - assert.equal(start.from(moment([2007, 1, 28]).add({s: 45}), true), 'um minuto', '45 seconds = a minute'); - assert.equal(start.from(moment([2007, 1, 28]).add({s: 89}), true), 'um minuto', '89 seconds = a minute'); - assert.equal(start.from(moment([2007, 1, 28]).add({s: 90}), true), '2 minutos', '90 seconds = 2 minutes'); - assert.equal(start.from(moment([2007, 1, 28]).add({m: 44}), true), '44 minutos', '44 minutes = 44 minutes'); - assert.equal(start.from(moment([2007, 1, 28]).add({m: 45}), true), 'uma hora', '45 minutes = an hour'); - assert.equal(start.from(moment([2007, 1, 28]).add({m: 89}), true), 'uma hora', '89 minutes = an hour'); - assert.equal(start.from(moment([2007, 1, 28]).add({m: 90}), true), '2 horas', '90 minutes = 2 hours'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 5}), true), '5 horas', '5 hours = 5 hours'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 21}), true), '21 horas', '21 hours = 21 hours'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 22}), true), 'um dia', '22 hours = a day'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 35}), true), 'um dia', '35 hours = a day'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 36}), true), '2 dias', '36 hours = 2 days'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 1}), true), 'um dia', '1 day = a day'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 5}), true), '5 dias', '5 days = 5 days'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 25}), true), '25 dias', '25 days = 25 days'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 26}), true), 'um mês', '26 days = a month'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 30}), true), 'um mês', '30 days = a month'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 43}), true), 'um mês', '43 days = a month'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 46}), true), '2 meses', '46 days = 2 months'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 74}), true), '2 meses', '75 days = 2 months'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 76}), true), '3 meses', '76 days = 3 months'); - assert.equal(start.from(moment([2007, 1, 28]).add({M: 1}), true), 'um mês', '1 month = a month'); - assert.equal(start.from(moment([2007, 1, 28]).add({M: 5}), true), '5 meses', '5 months = 5 months'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 345}), true), 'um ano', '345 days = a year'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 548}), true), '2 anos', '548 days = 2 years'); - assert.equal(start.from(moment([2007, 1, 28]).add({y: 1}), true), 'um ano', '1 year = a year'); - assert.equal(start.from(moment([2007, 1, 28]).add({y: 5}), true), '5 anos', '5 years = 5 years'); -}); - -test('suffix', function (assert) { - assert.equal(moment(30000).from(0), 'em segundos', 'prefix'); - assert.equal(moment(0).from(30000), 'há segundos', 'suffix'); -}); - -test('fromNow', function (assert) { - assert.equal(moment().add({s: 30}).fromNow(), 'em segundos', 'in seconds'); - assert.equal(moment().add({d: 5}).fromNow(), 'em 5 dias', 'in 5 days'); -}); - -test('calendar day', function (assert) { - var a = moment().hours(12).minutes(0).seconds(0); - - assert.equal(moment(a).calendar(), 'Hoje às 12:00', 'today at the same time'); - assert.equal(moment(a).add({m: 25}).calendar(), 'Hoje às 12:25', 'Now plus 25 min'); - assert.equal(moment(a).add({h: 1}).calendar(), 'Hoje às 13:00', 'Now plus 1 hour'); - assert.equal(moment(a).add({d: 1}).calendar(), 'Amanhã às 12:00', 'tomorrow at the same time'); - assert.equal(moment(a).subtract({h: 1}).calendar(), 'Hoje às 11:00', 'Now minus 1 hour'); - assert.equal(moment(a).subtract({d: 1}).calendar(), 'Ontem às 12:00', 'yesterday at the same time'); -}); - -test('calendar next week', function (assert) { - var i, m; - for (i = 2; i < 7; i++) { - m = moment().add({d: i}); - assert.equal(m.calendar(), m.format('dddd [às] LT'), 'Today + ' + i + ' days current time'); - m.hours(0).minutes(0).seconds(0).milliseconds(0); - assert.equal(m.calendar(), m.format('dddd [às] LT'), 'Today + ' + i + ' days beginning of day'); - m.hours(23).minutes(59).seconds(59).milliseconds(999); - assert.equal(m.calendar(), m.format('dddd [às] LT'), 'Today + ' + i + ' days end of day'); - } -}); - -test('calendar last week', function (assert) { - var i, m; - for (i = 2; i < 7; i++) { - m = moment().subtract({d: i}); - assert.equal(m.calendar(), m.format((m.day() === 0 || m.day() === 6) ? '[Último] dddd [às] LT' : '[Última] dddd [às] LT'), 'Today - ' + i + ' days current time'); - m.hours(0).minutes(0).seconds(0).milliseconds(0); - assert.equal(m.calendar(), m.format((m.day() === 0 || m.day() === 6) ? '[Último] dddd [às] LT' : '[Última] dddd [às] LT'), 'Today - ' + i + ' days beginning of day'); - m.hours(23).minutes(59).seconds(59).milliseconds(999); - assert.equal(m.calendar(), m.format((m.day() === 0 || m.day() === 6) ? '[Último] dddd [às] LT' : '[Última] dddd [às] LT'), 'Today - ' + i + ' days end of day'); - } -}); - -test('calendar all else', function (assert) { - var weeksAgo = moment().subtract({w: 1}), - weeksFromNow = moment().add({w: 1}); - - assert.equal(weeksAgo.calendar(), weeksAgo.format('L'), '1 week ago'); - assert.equal(weeksFromNow.calendar(), weeksFromNow.format('L'), 'in 1 week'); - - weeksAgo = moment().subtract({w: 2}); - weeksFromNow = moment().add({w: 2}); - - assert.equal(weeksAgo.calendar(), weeksAgo.format('L'), '2 weeks ago'); - assert.equal(weeksFromNow.calendar(), weeksFromNow.format('L'), 'in 2 weeks'); -}); - -test('weeks year starting sunday formatted', function (assert) { - assert.equal(moment([2012, 0, 1]).format('w ww wo'), '52 52 52º', 'Jan 1 2012 should be week 52'); - assert.equal(moment([2012, 0, 2]).format('w ww wo'), '1 01 1º', 'Jan 2 2012 should be week 1'); - assert.equal(moment([2012, 0, 8]).format('w ww wo'), '1 01 1º', 'Jan 8 2012 should be week 1'); - assert.equal(moment([2012, 0, 9]).format('w ww wo'), '2 02 2º', 'Jan 9 2012 should be week 2'); - assert.equal(moment([2012, 0, 15]).format('w ww wo'), '2 02 2º', 'Jan 15 2012 should be week 2'); -}); - -}))); - - -;(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' - && typeof require === 'function' ? factory(require('../../moment')) : - typeof define === 'function' && define.amd ? define(['../../moment'], factory) : - factory(global.moment) -}(this, (function (moment) { 'use strict'; - -function each(array, callback) { - var i; - for (i = 0; i < array.length; i++) { - callback(array[i], i, array); - } -} - -function objectKeys(obj) { - if (Object.keys) { - return Object.keys(obj); - } else { - // IE8 - var res = [], i; - for (i in obj) { - if (obj.hasOwnProperty(i)) { - res.push(i); - } - } - return res; - } -} - -// Pick the first defined of two or three arguments. - -function defineCommonLocaleTests(locale, options) { - test('lenient day of month ordinal parsing', function (assert) { - var i, ordinalStr, testMoment; - for (i = 1; i <= 31; ++i) { - ordinalStr = moment([2014, 0, i]).format('YYYY MM Do'); - testMoment = moment(ordinalStr, 'YYYY MM Do'); - assert.equal(testMoment.year(), 2014, - 'lenient day of month ordinal parsing ' + i + ' year check'); - assert.equal(testMoment.month(), 0, - 'lenient day of month ordinal parsing ' + i + ' month check'); - assert.equal(testMoment.date(), i, - 'lenient day of month ordinal parsing ' + i + ' date check'); - } - }); - - test('lenient day of month ordinal parsing of number', function (assert) { - var i, testMoment; - for (i = 1; i <= 31; ++i) { - testMoment = moment('2014 01 ' + i, 'YYYY MM Do'); - assert.equal(testMoment.year(), 2014, - 'lenient day of month ordinal parsing of number ' + i + ' year check'); - assert.equal(testMoment.month(), 0, - 'lenient day of month ordinal parsing of number ' + i + ' month check'); - assert.equal(testMoment.date(), i, - 'lenient day of month ordinal parsing of number ' + i + ' date check'); - } - }); - - test('strict day of month ordinal parsing', function (assert) { - var i, ordinalStr, testMoment; - for (i = 1; i <= 31; ++i) { - ordinalStr = moment([2014, 0, i]).format('YYYY MM Do'); - testMoment = moment(ordinalStr, 'YYYY MM Do', true); - assert.ok(testMoment.isValid(), 'strict day of month ordinal parsing ' + i); - } - }); - - test('meridiem invariant', function (assert) { - var h, m, t1, t2; - for (h = 0; h < 24; ++h) { - for (m = 0; m < 60; m += 15) { - t1 = moment.utc([2000, 0, 1, h, m]); - t2 = moment.utc(t1.format('A h:mm'), 'A h:mm'); - assert.equal(t2.format('HH:mm'), t1.format('HH:mm'), - 'meridiem at ' + t1.format('HH:mm')); - } - } - }); - - test('date format correctness', function (assert) { - var data, tokens; - data = moment.localeData()._longDateFormat; - tokens = objectKeys(data); - each(tokens, function (srchToken) { - // Check each format string to make sure it does not contain any - // tokens that need to be expanded. - each(tokens, function (baseToken) { - // strip escaped sequences - var format = data[baseToken].replace(/(\[[^\]]*\])/g, ''); - assert.equal(false, !!~format.indexOf(srchToken), - 'contains ' + srchToken + ' in ' + baseToken); - }); - }); - }); - - test('month parsing correctness', function (assert) { - var i, m; - - if (locale === 'tr') { - // I can't fix it :( - expect(0); - return; - } - function tester(format) { - var r; - r = moment(m.format(format), format); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format); - r = moment(m.format(format).toLocaleUpperCase(), format); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' upper'); - r = moment(m.format(format).toLocaleLowerCase(), format); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' lower'); - - r = moment(m.format(format), format, true); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' strict'); - r = moment(m.format(format).toLocaleUpperCase(), format, true); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' upper strict'); - r = moment(m.format(format).toLocaleLowerCase(), format, true); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' lower strict'); - } - - for (i = 0; i < 12; ++i) { - m = moment([2015, i, 15, 18]); - tester('MMM'); - tester('MMM.'); - tester('MMMM'); - tester('MMMM.'); - } - }); - - test('weekday parsing correctness', function (assert) { - var i, m; - - if (locale === 'tr' || locale === 'az' || locale === 'ro') { - // tr, az: There is a lower-case letter (ı), that converted to - // upper then lower changes to i - // ro: there is the letter ț which behaves weird under IE8 - expect(0); - return; - } - function tester(format) { - var r, baseMsg = 'weekday ' + m.weekday() + ' fmt ' + format + ' ' + m.toISOString(); - r = moment(m.format(format), format); - assert.equal(r.weekday(), m.weekday(), baseMsg); - r = moment(m.format(format).toLocaleUpperCase(), format); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' upper'); - r = moment(m.format(format).toLocaleLowerCase(), format); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' lower'); - - r = moment(m.format(format), format, true); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' strict'); - r = moment(m.format(format).toLocaleUpperCase(), format, true); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' upper strict'); - r = moment(m.format(format).toLocaleLowerCase(), format, true); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' lower strict'); - } - - for (i = 0; i < 7; ++i) { - m = moment.utc([2015, 0, i + 1, 18]); - tester('dd'); - tester('ddd'); - tester('dddd'); - } - }); - - test('valid localeData', function (assert) { - assert.equal(moment().localeData().months().length, 12, 'months should return 12 months'); - assert.equal(moment().localeData().monthsShort().length, 12, 'monthsShort should return 12 months'); - assert.equal(moment().localeData().weekdays().length, 7, 'weekdays should return 7 days'); - assert.equal(moment().localeData().weekdaysShort().length, 7, 'weekdaysShort should return 7 days'); - assert.equal(moment().localeData().weekdaysMin().length, 7, 'monthsShort should return 7 days'); - }); -} - -function setupDeprecationHandler(test, moment$$1, scope) { - test._expectedDeprecations = null; - test._observedDeprecations = null; - test._oldSupress = moment$$1.suppressDeprecationWarnings; - moment$$1.suppressDeprecationWarnings = true; - test.expectedDeprecations = function () { - test._expectedDeprecations = arguments; - test._observedDeprecations = []; - }; - moment$$1.deprecationHandler = function (name, msg) { - var deprecationId = matchedDeprecation(name, msg, test._expectedDeprecations); - if (deprecationId === -1) { - throw new Error('Unexpected deprecation thrown name=' + - name + ' msg=' + msg); - } - test._observedDeprecations[deprecationId] = 1; - }; -} - -function teardownDeprecationHandler(test, moment$$1, scope) { - moment$$1.suppressDeprecationWarnings = test._oldSupress; - - if (test._expectedDeprecations != null) { - var missedDeprecations = []; - each(test._expectedDeprecations, function (deprecationPattern, id) { - if (test._observedDeprecations[id] !== 1) { - missedDeprecations.push(deprecationPattern); - } - }); - if (missedDeprecations.length !== 0) { - throw new Error('Expected deprecation warnings did not happen: ' + - missedDeprecations.join(' ')); - } - } -} - -function matchedDeprecation(name, msg, deprecations) { - if (deprecations == null) { - return -1; - } - for (var i = 0; i < deprecations.length; ++i) { - if (name != null && name === deprecations[i]) { - return i; - } - if (msg != null && msg.substring(0, deprecations[i].length) === deprecations[i]) { - return i; - } - } - return -1; -} - -/*global QUnit:false*/ - -var test = QUnit.test; - -var expect = QUnit.expect; - - - -function localeModule (name, lifecycle) { - QUnit.module('locale:' + name, { - setup : function () { - moment.locale(name); - moment.createFromInputFallback = function (config) { - throw new Error('input not handled by moment: ' + config._i); - }; - setupDeprecationHandler(test, moment, 'locale'); - if (lifecycle && lifecycle.setup) { - lifecycle.setup(); - } - }, - teardown : function () { - moment.locale('en'); - teardownDeprecationHandler(test, moment, 'locale'); - if (lifecycle && lifecycle.teardown) { - lifecycle.teardown(); - } - } - }); - defineCommonLocaleTests(name, -1, -1); -} - -localeModule('ro'); - -test('parse', function (assert) { - var tests = 'ianuarie ian._februarie febr._martie mart._aprilie apr._mai mai_iunie iun._iulie iul._august aug._septembrie sept._octombrie oct._noiembrie nov._decembrie dec.'.split('_'), i; - function equalTest(input, mmm, i) { - assert.equal(moment(input, mmm).month(), i, input + ' should be month ' + (i + 1)); - } - for (i = 0; i < 12; i++) { - tests[i] = tests[i].split(' '); - equalTest(tests[i][0], 'MMM', i); - equalTest(tests[i][1], 'MMM', i); - equalTest(tests[i][0], 'MMMM', i); - equalTest(tests[i][1], 'MMMM', i); - equalTest(tests[i][0].toLocaleLowerCase(), 'MMMM', i); - equalTest(tests[i][1].toLocaleLowerCase(), 'MMMM', i); - equalTest(tests[i][0].toLocaleUpperCase(), 'MMMM', i); - equalTest(tests[i][1].toLocaleUpperCase(), 'MMMM', i); - } -}); - -test('format', function (assert) { - var a = [ - ['dddd, MMMM Do YYYY, h:mm:ss A', 'duminică, februarie 14 2010, 3:25:50 PM'], - ['ddd, hA', 'Dum, 3PM'], - ['M Mo MM MMMM MMM', '2 2 02 februarie febr.'], - ['YYYY YY', '2010 10'], - ['D Do DD', '14 14 14'], - ['d do dddd ddd dd', '0 0 duminică Dum Du'], - ['DDD DDDo DDDD', '45 45 045'], - ['w wo ww', '7 7 07'], - ['h hh', '3 03'], - ['H HH', '15 15'], - ['m mm', '25 25'], - ['s ss', '50 50'], - ['a A', 'pm PM'], - ['[a] DDDo[a zi a anului]', 'a 45a zi a anului'], - ['LTS', '15:25:50'], - ['L', '14.02.2010'], - ['LL', '14 februarie 2010'], - ['LLL', '14 februarie 2010 15:25'], - ['LLLL', 'duminică, 14 februarie 2010 15:25'], - ['l', '14.2.2010'], - ['ll', '14 febr. 2010'], - ['lll', '14 febr. 2010 15:25'], - ['llll', 'Dum, 14 febr. 2010 15:25'] - ], - b = moment(new Date(2010, 1, 14, 15, 25, 50, 125)), - i; - for (i = 0; i < a.length; i++) { - assert.equal(b.format(a[i][0]), a[i][1], a[i][0] + ' ---> ' + a[i][1]); - } -}); - -test('format ordinal', function (assert) { - assert.equal(moment([2011, 0, 1]).format('DDDo'), '1', '1'); - assert.equal(moment([2011, 0, 2]).format('DDDo'), '2', '2'); - assert.equal(moment([2011, 0, 3]).format('DDDo'), '3', '3'); - assert.equal(moment([2011, 0, 4]).format('DDDo'), '4', '4'); - assert.equal(moment([2011, 0, 5]).format('DDDo'), '5', '5'); - assert.equal(moment([2011, 0, 6]).format('DDDo'), '6', '6'); - assert.equal(moment([2011, 0, 7]).format('DDDo'), '7', '7'); - assert.equal(moment([2011, 0, 8]).format('DDDo'), '8', '8'); - assert.equal(moment([2011, 0, 9]).format('DDDo'), '9', '9'); - assert.equal(moment([2011, 0, 10]).format('DDDo'), '10', '10'); - - assert.equal(moment([2011, 0, 11]).format('DDDo'), '11', '11'); - assert.equal(moment([2011, 0, 12]).format('DDDo'), '12', '12'); - assert.equal(moment([2011, 0, 13]).format('DDDo'), '13', '13'); - assert.equal(moment([2011, 0, 14]).format('DDDo'), '14', '14'); - assert.equal(moment([2011, 0, 15]).format('DDDo'), '15', '15'); - assert.equal(moment([2011, 0, 16]).format('DDDo'), '16', '16'); - assert.equal(moment([2011, 0, 17]).format('DDDo'), '17', '17'); - assert.equal(moment([2011, 0, 18]).format('DDDo'), '18', '18'); - assert.equal(moment([2011, 0, 19]).format('DDDo'), '19', '19'); - assert.equal(moment([2011, 0, 20]).format('DDDo'), '20', '20'); - - assert.equal(moment([2011, 0, 21]).format('DDDo'), '21', '21'); - assert.equal(moment([2011, 0, 22]).format('DDDo'), '22', '22'); - assert.equal(moment([2011, 0, 23]).format('DDDo'), '23', '23'); - assert.equal(moment([2011, 0, 24]).format('DDDo'), '24', '24'); - assert.equal(moment([2011, 0, 25]).format('DDDo'), '25', '25'); - assert.equal(moment([2011, 0, 26]).format('DDDo'), '26', '26'); - assert.equal(moment([2011, 0, 27]).format('DDDo'), '27', '27'); - assert.equal(moment([2011, 0, 28]).format('DDDo'), '28', '28'); - assert.equal(moment([2011, 0, 29]).format('DDDo'), '29', '29'); - assert.equal(moment([2011, 0, 30]).format('DDDo'), '30', '30'); - - assert.equal(moment([2011, 0, 31]).format('DDDo'), '31', '31'); -}); - -test('format month', function (assert) { - var expected = 'ianuarie ian._februarie febr._martie mart._aprilie apr._mai mai_iunie iun._iulie iul._august aug._septembrie sept._octombrie oct._noiembrie nov._decembrie dec.'.split('_'), i; - for (i = 0; i < expected.length; i++) { - assert.equal(moment([2011, i, 1]).format('MMMM MMM'), expected[i], expected[i]); - } -}); - -test('format week', function (assert) { - var expected = 'duminică Dum Du_luni Lun Lu_marți Mar Ma_miercuri Mie Mi_joi Joi Jo_vineri Vin Vi_sâmbătă Sâm Sâ'.split('_'), i; - for (i = 0; i < expected.length; i++) { - assert.equal(moment([2011, 0, 2 + i]).format('dddd ddd dd'), expected[i], expected[i]); - } -}); - -test('from', function (assert) { - var start = moment([2007, 1, 28]); - assert.equal(start.from(moment([2007, 1, 28]).add({s: 44}), true), 'câteva secunde', '44 seconds = a few seconds'); - assert.equal(start.from(moment([2007, 1, 28]).add({s: 45}), true), 'un minut', '45 seconds = a minute'); - assert.equal(start.from(moment([2007, 1, 28]).add({s: 89}), true), 'un minut', '89 seconds = a minute'); - assert.equal(start.from(moment([2007, 1, 28]).add({s: 90}), true), '2 minute', '90 seconds = 2 minutes'); - assert.equal(start.from(moment([2007, 1, 28]).add({m: 44}), true), '44 de minute', '44 minutes = 44 minutes'); - assert.equal(start.from(moment([2007, 1, 28]).add({m: 45}), true), 'o oră', '45 minutes = an hour'); - assert.equal(start.from(moment([2007, 1, 28]).add({m: 89}), true), 'o oră', '89 minutes = an hour'); - assert.equal(start.from(moment([2007, 1, 28]).add({m: 90}), true), '2 ore', '90 minutes = 2 hours'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 5}), true), '5 ore', '5 hours = 5 hours'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 21}), true), '21 de ore', '21 hours = 21 hours'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 22}), true), 'o zi', '22 hours = a day'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 35}), true), 'o zi', '35 hours = a day'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 36}), true), '2 zile', '36 hours = 2 days'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 1}), true), 'o zi', '1 day = a day'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 5}), true), '5 zile', '5 days = 5 days'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 25}), true), '25 de zile', '25 days = 25 days'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 26}), true), 'o lună', '26 days = a month'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 30}), true), 'o lună', '30 days = a month'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 43}), true), 'o lună', '43 days = a month'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 46}), true), '2 luni', '46 days = 2 months'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 74}), true), '2 luni', '75 days = 2 months'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 76}), true), '3 luni', '76 days = 3 months'); - assert.equal(start.from(moment([2007, 1, 28]).add({M: 1}), true), 'o lună', '1 month = a month'); - assert.equal(start.from(moment([2007, 1, 28]).add({M: 5}), true), '5 luni', '5 months = 5 months'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 345}), true), 'un an', '345 days = a year'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 548}), true), '2 ani', '548 days = 2 years'); - assert.equal(start.from(moment([2007, 1, 28]).add({y: 1}), true), 'un an', '1 year = a year'); - assert.equal(start.from(moment([2007, 1, 28]).add({y: 5}), true), '5 ani', '5 years = 5 years'); - assert.equal(start.from(moment([2007, 1, 28]).add({y: 19}), true), '19 ani', '19 years = 19 years'); - assert.equal(start.from(moment([2007, 1, 28]).add({y: 20}), true), '20 de ani', '20 years = 20 years'); - assert.equal(start.from(moment([2007, 1, 28]).add({y: 100}), true), '100 de ani', '100 years = 100 years'); - assert.equal(start.from(moment([2007, 1, 28]).add({y: 101}), true), '101 ani', '101 years = 101 years'); - assert.equal(start.from(moment([2007, 1, 28]).add({y: 119}), true), '119 ani', '119 years = 119 years'); - assert.equal(start.from(moment([2007, 1, 28]).add({y: 120}), true), '120 de ani', '120 years = 120 years'); - assert.equal(start.from(moment([2007, 1, 28]).add({y: 219}), true), '219 ani', '219 years = 219 years'); - assert.equal(start.from(moment([2007, 1, 28]).add({y: 220}), true), '220 de ani', '220 years = 220 years'); -}); - -test('suffix', function (assert) { - assert.equal(moment(30000).from(0), 'peste câteva secunde', 'prefix'); - assert.equal(moment(0).from(30000), 'câteva secunde în urmă', 'suffix'); -}); - -test('now from now', function (assert) { - assert.equal(moment().fromNow(), 'câteva secunde în urmă', 'now from now should display as in the past'); -}); - -test('fromNow', function (assert) { - assert.equal(moment().add({s: 30}).fromNow(), 'peste câteva secunde', 'in a few seconds'); - assert.equal(moment().add({d: 5}).fromNow(), 'peste 5 zile', 'in 5 days'); -}); - -test('calendar day', function (assert) { - var a = moment().hours(12).minutes(0).seconds(0); - - assert.equal(moment(a).calendar(), 'azi la 12:00', 'today at the same time'); - assert.equal(moment(a).add({m: 25}).calendar(), 'azi la 12:25', 'Now plus 25 min'); - assert.equal(moment(a).add({h: 1}).calendar(), 'azi la 13:00', 'Now plus 1 hour'); - assert.equal(moment(a).add({d: 1}).calendar(), 'mâine la 12:00', 'tomorrow at the same time'); - assert.equal(moment(a).subtract({h: 1}).calendar(), 'azi la 11:00', 'Now minus 1 hour'); - assert.equal(moment(a).subtract({d: 1}).calendar(), 'ieri la 12:00', 'yesterday at the same time'); -}); - -test('calendar next week', function (assert) { - var i, m; - for (i = 2; i < 7; i++) { - m = moment().add({d: i}); - assert.equal(m.calendar(), m.format('dddd [la] LT'), 'Today + ' + i + ' days current time'); - m.hours(0).minutes(0).seconds(0).milliseconds(0); - assert.equal(m.calendar(), m.format('dddd [la] LT'), 'Today + ' + i + ' days beginning of day'); - m.hours(23).minutes(59).seconds(59).milliseconds(999); - assert.equal(m.calendar(), m.format('dddd [la] LT'), 'Today + ' + i + ' days end of day'); - } -}); - -test('calendar last week', function (assert) { - var i, m; - for (i = 2; i < 7; i++) { - m = moment().subtract({d: i}); - assert.equal(m.calendar(), m.format('[fosta] dddd [la] LT'), 'Today - ' + i + ' days current time'); - m.hours(0).minutes(0).seconds(0).milliseconds(0); - assert.equal(m.calendar(), m.format('[fosta] dddd [la] LT'), 'Today - ' + i + ' days beginning of day'); - m.hours(23).minutes(59).seconds(59).milliseconds(999); - assert.equal(m.calendar(), m.format('[fosta] dddd [la] LT'), 'Today - ' + i + ' days end of day'); - } -}); - -test('calendar all else', function (assert) { - var weeksAgo = moment().subtract({w: 1}), - weeksFromNow = moment().add({w: 1}); - - assert.equal(weeksAgo.calendar(), weeksAgo.format('L'), '1 week ago'); - assert.equal(weeksFromNow.calendar(), weeksFromNow.format('L'), 'in 1 week'); - - weeksAgo = moment().subtract({w: 2}); - weeksFromNow = moment().add({w: 2}); - - assert.equal(weeksAgo.calendar(), weeksAgo.format('L'), '2 weeks ago'); - assert.equal(weeksFromNow.calendar(), weeksFromNow.format('L'), 'in 2 weeks'); -}); - -test('weeks year starting sunday formatted', function (assert) { - assert.equal(moment([2011, 11, 26]).format('w ww wo'), '1 01 1', 'Dec 26 2011 should be week 1'); - assert.equal(moment([2012, 0, 1]).format('w ww wo'), '1 01 1', 'Jan 1 2012 should be week 1'); - assert.equal(moment([2012, 0, 2]).format('w ww wo'), '2 02 2', 'Jan 2 2012 should be week 2'); - assert.equal(moment([2012, 0, 8]).format('w ww wo'), '2 02 2', 'Jan 8 2012 should be week 2'); - assert.equal(moment([2012, 0, 9]).format('w ww wo'), '3 03 3', 'Jan 9 2012 should be week 3'); -}); - -}))); - - -;(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' - && typeof require === 'function' ? factory(require('../../moment')) : - typeof define === 'function' && define.amd ? define(['../../moment'], factory) : - factory(global.moment) -}(this, (function (moment) { 'use strict'; - -function each(array, callback) { - var i; - for (i = 0; i < array.length; i++) { - callback(array[i], i, array); - } -} - -function objectKeys(obj) { - if (Object.keys) { - return Object.keys(obj); - } else { - // IE8 - var res = [], i; - for (i in obj) { - if (obj.hasOwnProperty(i)) { - res.push(i); - } - } - return res; - } -} - -// Pick the first defined of two or three arguments. - -function defineCommonLocaleTests(locale, options) { - test('lenient day of month ordinal parsing', function (assert) { - var i, ordinalStr, testMoment; - for (i = 1; i <= 31; ++i) { - ordinalStr = moment([2014, 0, i]).format('YYYY MM Do'); - testMoment = moment(ordinalStr, 'YYYY MM Do'); - assert.equal(testMoment.year(), 2014, - 'lenient day of month ordinal parsing ' + i + ' year check'); - assert.equal(testMoment.month(), 0, - 'lenient day of month ordinal parsing ' + i + ' month check'); - assert.equal(testMoment.date(), i, - 'lenient day of month ordinal parsing ' + i + ' date check'); - } - }); - - test('lenient day of month ordinal parsing of number', function (assert) { - var i, testMoment; - for (i = 1; i <= 31; ++i) { - testMoment = moment('2014 01 ' + i, 'YYYY MM Do'); - assert.equal(testMoment.year(), 2014, - 'lenient day of month ordinal parsing of number ' + i + ' year check'); - assert.equal(testMoment.month(), 0, - 'lenient day of month ordinal parsing of number ' + i + ' month check'); - assert.equal(testMoment.date(), i, - 'lenient day of month ordinal parsing of number ' + i + ' date check'); - } - }); - - test('strict day of month ordinal parsing', function (assert) { - var i, ordinalStr, testMoment; - for (i = 1; i <= 31; ++i) { - ordinalStr = moment([2014, 0, i]).format('YYYY MM Do'); - testMoment = moment(ordinalStr, 'YYYY MM Do', true); - assert.ok(testMoment.isValid(), 'strict day of month ordinal parsing ' + i); - } - }); - - test('meridiem invariant', function (assert) { - var h, m, t1, t2; - for (h = 0; h < 24; ++h) { - for (m = 0; m < 60; m += 15) { - t1 = moment.utc([2000, 0, 1, h, m]); - t2 = moment.utc(t1.format('A h:mm'), 'A h:mm'); - assert.equal(t2.format('HH:mm'), t1.format('HH:mm'), - 'meridiem at ' + t1.format('HH:mm')); - } - } - }); - - test('date format correctness', function (assert) { - var data, tokens; - data = moment.localeData()._longDateFormat; - tokens = objectKeys(data); - each(tokens, function (srchToken) { - // Check each format string to make sure it does not contain any - // tokens that need to be expanded. - each(tokens, function (baseToken) { - // strip escaped sequences - var format = data[baseToken].replace(/(\[[^\]]*\])/g, ''); - assert.equal(false, !!~format.indexOf(srchToken), - 'contains ' + srchToken + ' in ' + baseToken); - }); - }); - }); - - test('month parsing correctness', function (assert) { - var i, m; - - if (locale === 'tr') { - // I can't fix it :( - expect(0); - return; - } - function tester(format) { - var r; - r = moment(m.format(format), format); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format); - r = moment(m.format(format).toLocaleUpperCase(), format); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' upper'); - r = moment(m.format(format).toLocaleLowerCase(), format); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' lower'); - - r = moment(m.format(format), format, true); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' strict'); - r = moment(m.format(format).toLocaleUpperCase(), format, true); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' upper strict'); - r = moment(m.format(format).toLocaleLowerCase(), format, true); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' lower strict'); - } - - for (i = 0; i < 12; ++i) { - m = moment([2015, i, 15, 18]); - tester('MMM'); - tester('MMM.'); - tester('MMMM'); - tester('MMMM.'); - } - }); - - test('weekday parsing correctness', function (assert) { - var i, m; - - if (locale === 'tr' || locale === 'az' || locale === 'ro') { - // tr, az: There is a lower-case letter (ı), that converted to - // upper then lower changes to i - // ro: there is the letter ț which behaves weird under IE8 - expect(0); - return; - } - function tester(format) { - var r, baseMsg = 'weekday ' + m.weekday() + ' fmt ' + format + ' ' + m.toISOString(); - r = moment(m.format(format), format); - assert.equal(r.weekday(), m.weekday(), baseMsg); - r = moment(m.format(format).toLocaleUpperCase(), format); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' upper'); - r = moment(m.format(format).toLocaleLowerCase(), format); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' lower'); - - r = moment(m.format(format), format, true); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' strict'); - r = moment(m.format(format).toLocaleUpperCase(), format, true); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' upper strict'); - r = moment(m.format(format).toLocaleLowerCase(), format, true); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' lower strict'); - } - - for (i = 0; i < 7; ++i) { - m = moment.utc([2015, 0, i + 1, 18]); - tester('dd'); - tester('ddd'); - tester('dddd'); - } - }); - - test('valid localeData', function (assert) { - assert.equal(moment().localeData().months().length, 12, 'months should return 12 months'); - assert.equal(moment().localeData().monthsShort().length, 12, 'monthsShort should return 12 months'); - assert.equal(moment().localeData().weekdays().length, 7, 'weekdays should return 7 days'); - assert.equal(moment().localeData().weekdaysShort().length, 7, 'weekdaysShort should return 7 days'); - assert.equal(moment().localeData().weekdaysMin().length, 7, 'monthsShort should return 7 days'); - }); -} - -function setupDeprecationHandler(test, moment$$1, scope) { - test._expectedDeprecations = null; - test._observedDeprecations = null; - test._oldSupress = moment$$1.suppressDeprecationWarnings; - moment$$1.suppressDeprecationWarnings = true; - test.expectedDeprecations = function () { - test._expectedDeprecations = arguments; - test._observedDeprecations = []; - }; - moment$$1.deprecationHandler = function (name, msg) { - var deprecationId = matchedDeprecation(name, msg, test._expectedDeprecations); - if (deprecationId === -1) { - throw new Error('Unexpected deprecation thrown name=' + - name + ' msg=' + msg); - } - test._observedDeprecations[deprecationId] = 1; - }; -} - -function teardownDeprecationHandler(test, moment$$1, scope) { - moment$$1.suppressDeprecationWarnings = test._oldSupress; - - if (test._expectedDeprecations != null) { - var missedDeprecations = []; - each(test._expectedDeprecations, function (deprecationPattern, id) { - if (test._observedDeprecations[id] !== 1) { - missedDeprecations.push(deprecationPattern); - } - }); - if (missedDeprecations.length !== 0) { - throw new Error('Expected deprecation warnings did not happen: ' + - missedDeprecations.join(' ')); - } - } -} - -function matchedDeprecation(name, msg, deprecations) { - if (deprecations == null) { - return -1; - } - for (var i = 0; i < deprecations.length; ++i) { - if (name != null && name === deprecations[i]) { - return i; - } - if (msg != null && msg.substring(0, deprecations[i].length) === deprecations[i]) { - return i; - } - } - return -1; -} - -/*global QUnit:false*/ - -var test = QUnit.test; - -var expect = QUnit.expect; - - - -function localeModule (name, lifecycle) { - QUnit.module('locale:' + name, { - setup : function () { - moment.locale(name); - moment.createFromInputFallback = function (config) { - throw new Error('input not handled by moment: ' + config._i); - }; - setupDeprecationHandler(test, moment, 'locale'); - if (lifecycle && lifecycle.setup) { - lifecycle.setup(); - } - }, - teardown : function () { - moment.locale('en'); - teardownDeprecationHandler(test, moment, 'locale'); - if (lifecycle && lifecycle.teardown) { - lifecycle.teardown(); - } - } - }); - defineCommonLocaleTests(name, -1, -1); -} - -localeModule('ru'); - -test('parse', function (assert) { - var tests = 'январь янв._февраль февр._март март_апрель апр._май май_июнь июнь_июль июль_август авг._сентябрь сент._октябрь окт._ноябрь нояб._декабрь дек.'.split('_'), i; - function equalTest(input, mmm, i) { - assert.equal(moment(input, mmm).month(), i, input + ' should be month ' + (i + 1)); - } - function equalTestStrict(input, mmm, monthIndex) { - assert.equal(moment(input, mmm, true).month(), monthIndex, input + ' ' + mmm + ' should be strict month ' + (monthIndex + 1)); - } - for (i = 0; i < 12; i++) { - tests[i] = tests[i].split(' '); - equalTest(tests[i][0], 'MMM', i); - equalTest(tests[i][1], 'MMM', i); - equalTest(tests[i][0], 'MMMM', i); - equalTest(tests[i][1], 'MMMM', i); - equalTest(tests[i][0].toLocaleLowerCase(), 'MMMM', i); - equalTest(tests[i][1].toLocaleLowerCase(), 'MMMM', i); - equalTest(tests[i][0].toLocaleUpperCase(), 'MMMM', i); - equalTest(tests[i][1].toLocaleUpperCase(), 'MMMM', i); - - equalTestStrict(tests[i][1], 'MMM', i); - equalTestStrict(tests[i][0], 'MMMM', i); - equalTestStrict(tests[i][1].toLocaleLowerCase(), 'MMM', i); - equalTestStrict(tests[i][1].toLocaleUpperCase(), 'MMM', i); - equalTestStrict(tests[i][0].toLocaleLowerCase(), 'MMMM', i); - equalTestStrict(tests[i][0].toLocaleUpperCase(), 'MMMM', i); - } -}); - -test('parse exceptional case', function (assert) { - assert.equal(moment('11 Мая 1989', ['DD MMMM YYYY']).format('DD-MM-YYYY'), '11-05-1989'); -}); - -test('format', function (assert) { - var a = [ - ['dddd, Do MMMM YYYY, HH:mm:ss', 'воскресенье, 14-го февраля 2010, 15:25:50'], - ['ddd, h A', 'вс, 3 дня'], - ['M Mo MM MMMM MMM', '2 2-й 02 февраль февр.'], - ['YYYY YY', '2010 10'], - ['D Do DD', '14 14-го 14'], - ['d do dddd ddd dd', '0 0-й воскресенье вс вс'], - ['DDD DDDo DDDD', '45 45-й 045'], - ['w wo ww', '7 7-я 07'], - ['h hh', '3 03'], - ['H HH', '15 15'], - ['m mm', '25 25'], - ['s ss', '50 50'], - ['a A', 'дня дня'], - ['DDDo [день года]', '45-й день года'], - ['LTS', '15:25:50'], - ['L', '14.02.2010'], - ['LL', '14 февраля 2010 г.'], - ['LLL', '14 февраля 2010 г., 15:25'], - ['LLLL', 'воскресенье, 14 февраля 2010 г., 15:25'], - ['l', '14.2.2010'], - ['ll', '14 февр. 2010 г.'], - ['lll', '14 февр. 2010 г., 15:25'], - ['llll', 'вс, 14 февр. 2010 г., 15:25'] - ], - b = moment(new Date(2010, 1, 14, 15, 25, 50, 125)), - i; - for (i = 0; i < a.length; i++) { - assert.equal(b.format(a[i][0]), a[i][1], a[i][0] + ' ---> ' + a[i][1]); - } -}); - -test('format meridiem', function (assert) { - assert.equal(moment([2012, 11, 28, 0, 0]).format('A'), 'ночи', 'night'); - assert.equal(moment([2012, 11, 28, 3, 59]).format('A'), 'ночи', 'night'); - assert.equal(moment([2012, 11, 28, 4, 0]).format('A'), 'утра', 'morning'); - assert.equal(moment([2012, 11, 28, 11, 59]).format('A'), 'утра', 'morning'); - assert.equal(moment([2012, 11, 28, 12, 0]).format('A'), 'дня', 'afternoon'); - assert.equal(moment([2012, 11, 28, 16, 59]).format('A'), 'дня', 'afternoon'); - assert.equal(moment([2012, 11, 28, 17, 0]).format('A'), 'вечера', 'evening'); - assert.equal(moment([2012, 11, 28, 23, 59]).format('A'), 'вечера', 'evening'); -}); - -test('format ordinal', function (assert) { - assert.equal(moment([2011, 0, 1]).format('DDDo'), '1-й', '1-й'); - assert.equal(moment([2011, 0, 2]).format('DDDo'), '2-й', '2-й'); - assert.equal(moment([2011, 0, 3]).format('DDDo'), '3-й', '3-й'); - assert.equal(moment([2011, 0, 4]).format('DDDo'), '4-й', '4-й'); - assert.equal(moment([2011, 0, 5]).format('DDDo'), '5-й', '5-й'); - assert.equal(moment([2011, 0, 6]).format('DDDo'), '6-й', '6-й'); - assert.equal(moment([2011, 0, 7]).format('DDDo'), '7-й', '7-й'); - assert.equal(moment([2011, 0, 8]).format('DDDo'), '8-й', '8-й'); - assert.equal(moment([2011, 0, 9]).format('DDDo'), '9-й', '9-й'); - assert.equal(moment([2011, 0, 10]).format('DDDo'), '10-й', '10-й'); - - assert.equal(moment([2011, 0, 11]).format('DDDo'), '11-й', '11-й'); - assert.equal(moment([2011, 0, 12]).format('DDDo'), '12-й', '12-й'); - assert.equal(moment([2011, 0, 13]).format('DDDo'), '13-й', '13-й'); - assert.equal(moment([2011, 0, 14]).format('DDDo'), '14-й', '14-й'); - assert.equal(moment([2011, 0, 15]).format('DDDo'), '15-й', '15-й'); - assert.equal(moment([2011, 0, 16]).format('DDDo'), '16-й', '16-й'); - assert.equal(moment([2011, 0, 17]).format('DDDo'), '17-й', '17-й'); - assert.equal(moment([2011, 0, 18]).format('DDDo'), '18-й', '18-й'); - assert.equal(moment([2011, 0, 19]).format('DDDo'), '19-й', '19-й'); - assert.equal(moment([2011, 0, 20]).format('DDDo'), '20-й', '20-й'); - - assert.equal(moment([2011, 0, 21]).format('DDDo'), '21-й', '21-й'); - assert.equal(moment([2011, 0, 22]).format('DDDo'), '22-й', '22-й'); - assert.equal(moment([2011, 0, 23]).format('DDDo'), '23-й', '23-й'); - assert.equal(moment([2011, 0, 24]).format('DDDo'), '24-й', '24-й'); - assert.equal(moment([2011, 0, 25]).format('DDDo'), '25-й', '25-й'); - assert.equal(moment([2011, 0, 26]).format('DDDo'), '26-й', '26-й'); - assert.equal(moment([2011, 0, 27]).format('DDDo'), '27-й', '27-й'); - assert.equal(moment([2011, 0, 28]).format('DDDo'), '28-й', '28-й'); - assert.equal(moment([2011, 0, 29]).format('DDDo'), '29-й', '29-й'); - assert.equal(moment([2011, 0, 30]).format('DDDo'), '30-й', '30-й'); - - assert.equal(moment([2011, 0, 31]).format('DDDo'), '31-й', '31-й'); -}); - -test('format month', function (assert) { - var expected = 'январь янв._февраль февр._март март_апрель апр._май май_июнь июнь_июль июль_август авг._сентябрь сент._октябрь окт._ноябрь нояб._декабрь дек.'.split('_'), i; - for (i = 0; i < expected.length; i++) { - assert.equal(moment([2011, i, 1]).format('MMMM MMM'), expected[i], expected[i]); - } -}); - -test('format month case', function (assert) { - var months = { - 'nominative': 'январь_февраль_март_апрель_май_июнь_июль_август_сентябрь_октябрь_ноябрь_декабрь'.split('_'), - 'accusative': 'января_февраля_марта_апреля_мая_июня_июля_августа_сентября_октября_ноября_декабря'.split('_') - }, i; - for (i = 0; i < 12; i++) { - assert.equal(moment([2011, i, 1]).format('D MMMM'), '1 ' + months.accusative[i], '1 ' + months.accusative[i]); - assert.equal(moment([2011, i, 1]).format('MMMM'), months.nominative[i], '1 ' + months.nominative[i]); - } -}); - -test('format month short case', function (assert) { - var monthsShort = { - 'nominative': 'янв._февр._март_апр._май_июнь_июль_авг._сент._окт._нояб._дек.'.split('_'), - 'accusative': 'янв._февр._мар._апр._мая_июня_июля_авг._сент._окт._нояб._дек.'.split('_') - }, i; - for (i = 0; i < 12; i++) { - assert.equal(moment([2011, i, 1]).format('D MMM'), '1 ' + monthsShort.accusative[i], '1 ' + monthsShort.accusative[i]); - assert.equal(moment([2011, i, 1]).format('MMM'), monthsShort.nominative[i], '1 ' + monthsShort.nominative[i]); - } -}); - -test('format month case with escaped symbols', function (assert) { - var months = { - 'nominative': 'январь_февраль_март_апрель_май_июнь_июль_август_сентябрь_октябрь_ноябрь_декабрь'.split('_'), - 'accusative': 'января_февраля_марта_апреля_мая_июня_июля_августа_сентября_октября_ноября_декабря'.split('_') - }, i; - for (i = 0; i < 12; i++) { - assert.equal(moment([2013, i, 1]).format('D[] MMMM'), '1 ' + months.accusative[i], '1 ' + months.accusative[i]); - assert.equal(moment([2013, i, 1]).format('[<i>]D[</i>] [<b>]MMMM[</b>]'), '<i>1</i> <b>' + months.accusative[i] + '</b>', '1 <b>' + months.accusative[i] + '</b>'); - assert.equal(moment([2013, i, 1]).format('D[-й день] MMMM'), '1-й день ' + months.accusative[i], '1-й день ' + months.accusative[i]); - assert.equal(moment([2013, i, 1]).format('D, MMMM'), '1, ' + months.nominative[i], '1, ' + months.nominative[i]); - } -}); - -test('format month short case with escaped symbols', function (assert) { - var monthsShort = { - 'nominative': 'янв._февр._март_апр._май_июнь_июль_авг._сент._окт._нояб._дек.'.split('_'), - 'accusative': 'янв._февр._мар._апр._мая_июня_июля_авг._сент._окт._нояб._дек.'.split('_') - }, i; - for (i = 0; i < 12; i++) { - assert.equal(moment([2013, i, 1]).format('D[] MMM'), '1 ' + monthsShort.accusative[i], '1 ' + monthsShort.accusative[i]); - assert.equal(moment([2013, i, 1]).format('[<i>]D[</i>] [<b>]MMM[</b>]'), '<i>1</i> <b>' + monthsShort.accusative[i] + '</b>', '1 <b>' + monthsShort.accusative[i] + '</b>'); - assert.equal(moment([2013, i, 1]).format('D[-й день] MMM'), '1-й день ' + monthsShort.accusative[i], '1-й день ' + monthsShort.accusative[i]); - assert.equal(moment([2013, i, 1]).format('D, MMM'), '1, ' + monthsShort.nominative[i], '1, ' + monthsShort.nominative[i]); - } -}); - -test('format week', function (assert) { - var expected = 'воскресенье вс вс_понедельник пн пн_вторник вт вт_среда ср ср_четверг чт чт_пятница пт пт_суббота сб сб'.split('_'), i; - for (i = 0; i < expected.length; i++) { - assert.equal(moment([2011, 0, 2 + i]).format('dddd ddd dd'), expected[i], expected[i]); - } -}); - -test('from', function (assert) { - var start = moment([2007, 1, 28]); - assert.equal(start.from(moment([2007, 1, 28]).add({s: 44}), true), 'несколько секунд', '44 seconds = seconds'); - assert.equal(start.from(moment([2007, 1, 28]).add({s: 45}), true), 'минута', '45 seconds = a minute'); - assert.equal(start.from(moment([2007, 1, 28]).add({s: 89}), true), 'минута', '89 seconds = a minute'); - assert.equal(start.from(moment([2007, 1, 28]).add({s: 90}), true), '2 минуты', '90 seconds = 2 minutes'); - assert.equal(start.from(moment([2007, 1, 28]).add({m: 31}), true), '31 минута', '31 minutes = 31 minutes'); - assert.equal(start.from(moment([2007, 1, 28]).add({m: 44}), true), '44 минуты', '44 minutes = 44 minutes'); - assert.equal(start.from(moment([2007, 1, 28]).add({m: 45}), true), 'час', '45 minutes = an hour'); - assert.equal(start.from(moment([2007, 1, 28]).add({m: 89}), true), 'час', '89 minutes = an hour'); - assert.equal(start.from(moment([2007, 1, 28]).add({m: 90}), true), '2 часа', '90 minutes = 2 hours'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 5}), true), '5 часов', '5 hours = 5 hours'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 21}), true), '21 час', '21 hours = 21 hours'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 22}), true), 'день', '22 hours = a day'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 35}), true), 'день', '35 hours = a day'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 36}), true), '2 дня', '36 hours = 2 days'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 1}), true), 'день', '1 day = a day'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 5}), true), '5 дней', '5 days = 5 days'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 11}), true), '11 дней', '11 days = 11 days'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 21}), true), '21 день', '21 days = 21 days'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 25}), true), '25 дней', '25 days = 25 days'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 26}), true), 'месяц', '26 days = a month'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 30}), true), 'месяц', '30 days = a month'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 43}), true), 'месяц', '43 days = a month'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 46}), true), '2 месяца', '46 days = 2 months'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 74}), true), '2 месяца', '75 days = 2 months'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 76}), true), '3 месяца', '76 days = 3 months'); - assert.equal(start.from(moment([2007, 1, 28]).add({M: 1}), true), 'месяц', '1 month = a month'); - assert.equal(start.from(moment([2007, 1, 28]).add({M: 5}), true), '5 месяцев', '5 months = 5 months'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 345}), true), 'год', '345 days = a year'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 548}), true), '2 года', '548 days = 2 years'); - assert.equal(start.from(moment([2007, 1, 28]).add({y: 1}), true), 'год', '1 year = a year'); - assert.equal(start.from(moment([2007, 1, 28]).add({y: 5}), true), '5 лет', '5 years = 5 years'); -}); - -test('suffix', function (assert) { - assert.equal(moment(30000).from(0), 'через несколько секунд', 'prefix'); - assert.equal(moment(0).from(30000), 'несколько секунд назад', 'suffix'); -}); - -test('fromNow', function (assert) { - assert.equal(moment().add({s: 30}).fromNow(), 'через несколько секунд', 'in seconds'); - assert.equal(moment().add({d: 5}).fromNow(), 'через 5 дней', 'in 5 days'); - assert.equal(moment().add({m: 31}).fromNow(), 'через 31 минуту', 'in 31 minutes = in 31 minutes'); - assert.equal(moment().subtract({m: 31}).fromNow(), '31 минуту назад', '31 minutes ago = 31 minutes ago'); -}); - -test('calendar day', function (assert) { - var a = moment().hours(12).minutes(0).seconds(0); - - assert.equal(moment(a).calendar(), 'Сегодня в 12:00', 'today at the same time'); - assert.equal(moment(a).add({m: 25}).calendar(), 'Сегодня в 12:25', 'Now plus 25 min'); - assert.equal(moment(a).add({h: 1}).calendar(), 'Сегодня в 13:00', 'Now plus 1 hour'); - assert.equal(moment(a).add({d: 1}).calendar(), 'Завтра в 12:00', 'tomorrow at the same time'); - assert.equal(moment(a).subtract({h: 1}).calendar(), 'Сегодня в 11:00', 'Now minus 1 hour'); - assert.equal(moment(a).subtract({d: 1}).calendar(), 'Вчера в 12:00', 'yesterday at the same time'); -}); - -test('calendar next week', function (assert) { - var i, m, now; - - function makeFormatNext(d) { - switch (d.day()) { - case 0: - return '[В следующее] dddd [в] LT'; - case 1: - case 2: - case 4: - return '[В следующий] dddd [в] LT'; - case 3: - case 5: - case 6: - return '[В следующую] dddd [в] LT'; - } - } - - function makeFormatThis(d) { - if (d.day() === 2) { - return '[Во] dddd [в] LT'; - } - else { - return '[В] dddd [в] LT'; - } - } - - now = moment().startOf('week'); - for (i = 2; i < 7; i++) { - m = moment(now).add({d: i}); - assert.equal(m.calendar(now), m.format(makeFormatThis(m)), 'Today + ' + i + ' days current time'); - m.hours(0).minutes(0).seconds(0).milliseconds(0); - assert.equal(m.calendar(now), m.format(makeFormatThis(m)), 'Today + ' + i + ' days beginning of day'); - m.hours(23).minutes(59).seconds(59).milliseconds(999); - assert.equal(m.calendar(now), m.format(makeFormatThis(m)), 'Today + ' + i + ' days end of day'); - } - - now = moment().endOf('week'); - for (i = 2; i < 7; i++) { - m = moment(now).add({d: i}); - assert.equal(m.calendar(now), m.format(makeFormatNext(m)), 'Today + ' + i + ' days current time'); - m.hours(0).minutes(0).seconds(0).milliseconds(0); - assert.equal(m.calendar(now), m.format(makeFormatNext(m)), 'Today + ' + i + ' days beginning of day'); - m.hours(23).minutes(59).seconds(59).milliseconds(999); - assert.equal(m.calendar(now), m.format(makeFormatNext(m)), 'Today + ' + i + ' days end of day'); - } -}); - -test('calendar last week', function (assert) { - var i, m, now; - - function makeFormatLast(d) { - switch (d.day()) { - case 0: - return '[В прошлое] dddd [в] LT'; - case 1: - case 2: - case 4: - return '[В прошлый] dddd [в] LT'; - case 3: - case 5: - case 6: - return '[В прошлую] dddd [в] LT'; - } - } - - function makeFormatThis(d) { - if (d.day() === 2) { - return '[Во] dddd [в] LT'; - } - else { - return '[В] dddd [в] LT'; - } - } - - now = moment().startOf('week'); - for (i = 2; i < 7; i++) { - m = moment(now).subtract({d: i}); - assert.equal(m.calendar(now), m.format(makeFormatLast(m)), 'Today - ' + i + ' days current time'); - m.hours(0).minutes(0).seconds(0).milliseconds(0); - assert.equal(m.calendar(now), m.format(makeFormatLast(m)), 'Today - ' + i + ' days beginning of day'); - m.hours(23).minutes(59).seconds(59).milliseconds(999); - assert.equal(m.calendar(now), m.format(makeFormatLast(m)), 'Today - ' + i + ' days end of day'); - } - - now = moment().endOf('week'); - for (i = 2; i < 7; i++) { - m = moment(now).subtract({d: i}); - assert.equal(m.calendar(now), m.format(makeFormatThis(m)), 'Today - ' + i + ' days current time'); - m.hours(0).minutes(0).seconds(0).milliseconds(0); - assert.equal(m.calendar(now), m.format(makeFormatThis(m)), 'Today - ' + i + ' days beginning of day'); - m.hours(23).minutes(59).seconds(59).milliseconds(999); - assert.equal(m.calendar(now), m.format(makeFormatThis(m)), 'Today - ' + i + ' days end of day'); - } -}); - -test('calendar all else', function (assert) { - var weeksAgo = moment().subtract({w: 1}), - weeksFromNow = moment().add({w: 1}); - - assert.equal(weeksAgo.calendar(), weeksAgo.format('L'), '1 week ago'); - assert.equal(weeksFromNow.calendar(), weeksFromNow.format('L'), 'in 1 week'); - - weeksAgo = moment().subtract({w: 2}); - weeksFromNow = moment().add({w: 2}); - - assert.equal(weeksAgo.calendar(), weeksAgo.format('L'), '2 weeks ago'); - assert.equal(weeksFromNow.calendar(), weeksFromNow.format('L'), 'in 2 weeks'); -}); - -test('weeks year starting sunday formatted', function (assert) { - assert.equal(moment([2011, 11, 26]).format('w ww wo'), '1 01 1-я', 'Dec 26 2011 should be week 1'); - assert.equal(moment([2012, 0, 1]).format('w ww wo'), '1 01 1-я', 'Jan 1 2012 should be week 1'); - assert.equal(moment([2012, 0, 2]).format('w ww wo'), '2 02 2-я', 'Jan 2 2012 should be week 2'); - assert.equal(moment([2012, 0, 8]).format('w ww wo'), '2 02 2-я', 'Jan 8 2012 should be week 2'); - assert.equal(moment([2012, 0, 9]).format('w ww wo'), '3 03 3-я', 'Jan 9 2012 should be week 3'); -}); - -}))); - - -;(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' - && typeof require === 'function' ? factory(require('../../moment')) : - typeof define === 'function' && define.amd ? define(['../../moment'], factory) : - factory(global.moment) -}(this, (function (moment) { 'use strict'; - -function each(array, callback) { - var i; - for (i = 0; i < array.length; i++) { - callback(array[i], i, array); - } -} - -function objectKeys(obj) { - if (Object.keys) { - return Object.keys(obj); - } else { - // IE8 - var res = [], i; - for (i in obj) { - if (obj.hasOwnProperty(i)) { - res.push(i); - } - } - return res; - } -} - -// Pick the first defined of two or three arguments. - -function defineCommonLocaleTests(locale, options) { - test('lenient day of month ordinal parsing', function (assert) { - var i, ordinalStr, testMoment; - for (i = 1; i <= 31; ++i) { - ordinalStr = moment([2014, 0, i]).format('YYYY MM Do'); - testMoment = moment(ordinalStr, 'YYYY MM Do'); - assert.equal(testMoment.year(), 2014, - 'lenient day of month ordinal parsing ' + i + ' year check'); - assert.equal(testMoment.month(), 0, - 'lenient day of month ordinal parsing ' + i + ' month check'); - assert.equal(testMoment.date(), i, - 'lenient day of month ordinal parsing ' + i + ' date check'); - } - }); - - test('lenient day of month ordinal parsing of number', function (assert) { - var i, testMoment; - for (i = 1; i <= 31; ++i) { - testMoment = moment('2014 01 ' + i, 'YYYY MM Do'); - assert.equal(testMoment.year(), 2014, - 'lenient day of month ordinal parsing of number ' + i + ' year check'); - assert.equal(testMoment.month(), 0, - 'lenient day of month ordinal parsing of number ' + i + ' month check'); - assert.equal(testMoment.date(), i, - 'lenient day of month ordinal parsing of number ' + i + ' date check'); - } - }); - - test('strict day of month ordinal parsing', function (assert) { - var i, ordinalStr, testMoment; - for (i = 1; i <= 31; ++i) { - ordinalStr = moment([2014, 0, i]).format('YYYY MM Do'); - testMoment = moment(ordinalStr, 'YYYY MM Do', true); - assert.ok(testMoment.isValid(), 'strict day of month ordinal parsing ' + i); - } - }); - - test('meridiem invariant', function (assert) { - var h, m, t1, t2; - for (h = 0; h < 24; ++h) { - for (m = 0; m < 60; m += 15) { - t1 = moment.utc([2000, 0, 1, h, m]); - t2 = moment.utc(t1.format('A h:mm'), 'A h:mm'); - assert.equal(t2.format('HH:mm'), t1.format('HH:mm'), - 'meridiem at ' + t1.format('HH:mm')); - } - } - }); - - test('date format correctness', function (assert) { - var data, tokens; - data = moment.localeData()._longDateFormat; - tokens = objectKeys(data); - each(tokens, function (srchToken) { - // Check each format string to make sure it does not contain any - // tokens that need to be expanded. - each(tokens, function (baseToken) { - // strip escaped sequences - var format = data[baseToken].replace(/(\[[^\]]*\])/g, ''); - assert.equal(false, !!~format.indexOf(srchToken), - 'contains ' + srchToken + ' in ' + baseToken); - }); - }); - }); - - test('month parsing correctness', function (assert) { - var i, m; - - if (locale === 'tr') { - // I can't fix it :( - expect(0); - return; - } - function tester(format) { - var r; - r = moment(m.format(format), format); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format); - r = moment(m.format(format).toLocaleUpperCase(), format); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' upper'); - r = moment(m.format(format).toLocaleLowerCase(), format); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' lower'); - - r = moment(m.format(format), format, true); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' strict'); - r = moment(m.format(format).toLocaleUpperCase(), format, true); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' upper strict'); - r = moment(m.format(format).toLocaleLowerCase(), format, true); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' lower strict'); - } - - for (i = 0; i < 12; ++i) { - m = moment([2015, i, 15, 18]); - tester('MMM'); - tester('MMM.'); - tester('MMMM'); - tester('MMMM.'); - } - }); - - test('weekday parsing correctness', function (assert) { - var i, m; - - if (locale === 'tr' || locale === 'az' || locale === 'ro') { - // tr, az: There is a lower-case letter (ı), that converted to - // upper then lower changes to i - // ro: there is the letter ț which behaves weird under IE8 - expect(0); - return; - } - function tester(format) { - var r, baseMsg = 'weekday ' + m.weekday() + ' fmt ' + format + ' ' + m.toISOString(); - r = moment(m.format(format), format); - assert.equal(r.weekday(), m.weekday(), baseMsg); - r = moment(m.format(format).toLocaleUpperCase(), format); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' upper'); - r = moment(m.format(format).toLocaleLowerCase(), format); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' lower'); - - r = moment(m.format(format), format, true); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' strict'); - r = moment(m.format(format).toLocaleUpperCase(), format, true); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' upper strict'); - r = moment(m.format(format).toLocaleLowerCase(), format, true); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' lower strict'); - } - - for (i = 0; i < 7; ++i) { - m = moment.utc([2015, 0, i + 1, 18]); - tester('dd'); - tester('ddd'); - tester('dddd'); - } - }); - - test('valid localeData', function (assert) { - assert.equal(moment().localeData().months().length, 12, 'months should return 12 months'); - assert.equal(moment().localeData().monthsShort().length, 12, 'monthsShort should return 12 months'); - assert.equal(moment().localeData().weekdays().length, 7, 'weekdays should return 7 days'); - assert.equal(moment().localeData().weekdaysShort().length, 7, 'weekdaysShort should return 7 days'); - assert.equal(moment().localeData().weekdaysMin().length, 7, 'monthsShort should return 7 days'); - }); -} - -function setupDeprecationHandler(test, moment$$1, scope) { - test._expectedDeprecations = null; - test._observedDeprecations = null; - test._oldSupress = moment$$1.suppressDeprecationWarnings; - moment$$1.suppressDeprecationWarnings = true; - test.expectedDeprecations = function () { - test._expectedDeprecations = arguments; - test._observedDeprecations = []; - }; - moment$$1.deprecationHandler = function (name, msg) { - var deprecationId = matchedDeprecation(name, msg, test._expectedDeprecations); - if (deprecationId === -1) { - throw new Error('Unexpected deprecation thrown name=' + - name + ' msg=' + msg); - } - test._observedDeprecations[deprecationId] = 1; - }; -} - -function teardownDeprecationHandler(test, moment$$1, scope) { - moment$$1.suppressDeprecationWarnings = test._oldSupress; - - if (test._expectedDeprecations != null) { - var missedDeprecations = []; - each(test._expectedDeprecations, function (deprecationPattern, id) { - if (test._observedDeprecations[id] !== 1) { - missedDeprecations.push(deprecationPattern); - } - }); - if (missedDeprecations.length !== 0) { - throw new Error('Expected deprecation warnings did not happen: ' + - missedDeprecations.join(' ')); - } - } -} - -function matchedDeprecation(name, msg, deprecations) { - if (deprecations == null) { - return -1; - } - for (var i = 0; i < deprecations.length; ++i) { - if (name != null && name === deprecations[i]) { - return i; - } - if (msg != null && msg.substring(0, deprecations[i].length) === deprecations[i]) { - return i; - } - } - return -1; -} - -/*global QUnit:false*/ - -var test = QUnit.test; - -var expect = QUnit.expect; - - - -function localeModule (name, lifecycle) { - QUnit.module('locale:' + name, { - setup : function () { - moment.locale(name); - moment.createFromInputFallback = function (config) { - throw new Error('input not handled by moment: ' + config._i); - }; - setupDeprecationHandler(test, moment, 'locale'); - if (lifecycle && lifecycle.setup) { - lifecycle.setup(); - } - }, - teardown : function () { - moment.locale('en'); - teardownDeprecationHandler(test, moment, 'locale'); - if (lifecycle && lifecycle.teardown) { - lifecycle.teardown(); - } - } - }); - defineCommonLocaleTests(name, -1, -1); -} - -localeModule('sd'); - -var months = [ - 'جنوري', - 'فيبروري', - 'مارچ', - 'اپريل', - 'مئي', - 'جون', - 'جولاءِ', - 'آگسٽ', - 'سيپٽمبر', - 'آڪٽوبر', - 'نومبر', - 'ڊسمبر' -]; -var days = [ - 'آچر', - 'سومر', - 'اڱارو', - 'اربع', - 'خميس', - 'جمع', - 'ڇنڇر' -]; - -test('parse', function (assert) { - function equalTest(input, mmm, i) { - assert.equal(moment(input, mmm).month(), i, input + ' should be month ' + (i + 1)); - } - for (var i = 0; i < 12; i++) { - equalTest(months[i], 'MMM', i); - equalTest(months[i], 'MMMM', i); - } -}); - -test('format', function (assert) { - var a = [ - ['dddd, MMMM Do YYYY, h:mm:ss a', 'آچر، فيبروري 14 2010، 3:25:50 شام'], - ['ddd, hA', 'آچر، 3شام'], - ['M Mo MM MMMM MMM', '2 2 02 فيبروري فيبروري'], - ['YYYY YY', '2010 10'], - ['D Do DD', '14 14 14'], - ['d do dddd ddd dd', '0 0 آچر آچر آچر'], - ['DDD DDDo DDDD', '45 45 045'], - ['w wo ww', '6 6 06'], - ['h hh', '3 03'], - ['H HH', '15 15'], - ['m mm', '25 25'], - ['s ss', '50 50'], - ['a A', 'شام شام'], - ['[سال جو] DDDo[ڏينهن]', 'سال جو 45ڏينهن'], - ['LTS', '15:25:50'], - ['L', '14/02/2010'], - ['LL', '14 فيبروري 2010'], - ['LLL', '14 فيبروري 2010 15:25'], - ['LLLL', 'آچر، 14 فيبروري 2010 15:25'], - ['l', '14/2/2010'], - ['ll', '14 فيبروري 2010'], - ['lll', '14 فيبروري 2010 15:25'], - ['llll', 'آچر، 14 فيبروري 2010 15:25'] - ], - b = moment(new Date(2010, 1, 14, 15, 25, 50, 125)), - i; - for (i = 0; i < a.length; i++) { - assert.equal(b.format(a[i][0]), a[i][1], a[i][0] + ' ---> ' + a[i][1]); - } -}); - -test('format ordinal', function (assert) { - assert.equal(moment([2011, 0, 1]).format('DDDo'), '1', '1'); - assert.equal(moment([2011, 0, 2]).format('DDDo'), '2', '2'); - assert.equal(moment([2011, 0, 3]).format('DDDo'), '3', '3'); - assert.equal(moment([2011, 0, 4]).format('DDDo'), '4', '4'); - assert.equal(moment([2011, 0, 5]).format('DDDo'), '5', '5'); - assert.equal(moment([2011, 0, 6]).format('DDDo'), '6', '6'); - assert.equal(moment([2011, 0, 7]).format('DDDo'), '7', '7'); - assert.equal(moment([2011, 0, 8]).format('DDDo'), '8', '8'); - assert.equal(moment([2011, 0, 9]).format('DDDo'), '9', '9'); - assert.equal(moment([2011, 0, 10]).format('DDDo'), '10', '10'); - - assert.equal(moment([2011, 0, 11]).format('DDDo'), '11', '11'); - assert.equal(moment([2011, 0, 12]).format('DDDo'), '12', '12'); - assert.equal(moment([2011, 0, 13]).format('DDDo'), '13', '13'); - assert.equal(moment([2011, 0, 14]).format('DDDo'), '14', '14'); - assert.equal(moment([2011, 0, 15]).format('DDDo'), '15', '15'); - assert.equal(moment([2011, 0, 16]).format('DDDo'), '16', '16'); - assert.equal(moment([2011, 0, 17]).format('DDDo'), '17', '17'); - assert.equal(moment([2011, 0, 18]).format('DDDo'), '18', '18'); - assert.equal(moment([2011, 0, 19]).format('DDDo'), '19', '19'); - assert.equal(moment([2011, 0, 20]).format('DDDo'), '20', '20'); - - assert.equal(moment([2011, 0, 21]).format('DDDo'), '21', '21'); - assert.equal(moment([2011, 0, 22]).format('DDDo'), '22', '22'); - assert.equal(moment([2011, 0, 23]).format('DDDo'), '23', '23'); - assert.equal(moment([2011, 0, 24]).format('DDDo'), '24', '24'); - assert.equal(moment([2011, 0, 25]).format('DDDo'), '25', '25'); - assert.equal(moment([2011, 0, 26]).format('DDDo'), '26', '26'); - assert.equal(moment([2011, 0, 27]).format('DDDo'), '27', '27'); - assert.equal(moment([2011, 0, 28]).format('DDDo'), '28', '28'); - assert.equal(moment([2011, 0, 29]).format('DDDo'), '29', '29'); - assert.equal(moment([2011, 0, 30]).format('DDDo'), '30', '30'); - - assert.equal(moment([2011, 0, 31]).format('DDDo'), '31', '31'); -}); - -test('format month', function (assert) { - for (var i = 0; i < months.length; i++) { - assert.equal(moment([2011, i, 1]).format('MMMM MMM'), months[i] + ' ' + months[i], months[i] + ' ' + months[i]); - } -}); - -test('format week', function (assert) { - for (var i = 0; i < days.length; i++) { - assert.equal(moment([2011, 0, 2 + i]).format('dddd ddd dd'), days[i] + ' ' + days[i] + ' ' + days[i], days[i] + ' ' + days[i] + ' ' + days[i]); - } -}); - -test('from', function (assert) { - var start = moment([2007, 1, 28]); - assert.equal(start.from(moment([2007, 1, 28]).add({s: 44}), true), 'چند سيڪنڊ', '44 seconds = چند سيڪنڊ'); - assert.equal(start.from(moment([2007, 1, 28]).add({s: 45}), true), 'هڪ منٽ', '45 seconds = هڪ منٽ'); - assert.equal(start.from(moment([2007, 1, 28]).add({s: 89}), true), 'هڪ منٽ', '89 seconds = هڪ منٽ'); - assert.equal(start.from(moment([2007, 1, 28]).add({s: 90}), true), '2 منٽ', '90 seconds = 2 منٽ'); - assert.equal(start.from(moment([2007, 1, 28]).add({m: 44}), true), '44 منٽ', '44 minutes = 44 منٽ'); - assert.equal(start.from(moment([2007, 1, 28]).add({m: 45}), true), 'هڪ ڪلاڪ', '45 minutes = هڪ ڪلاڪ'); - assert.equal(start.from(moment([2007, 1, 28]).add({m: 89}), true), 'هڪ ڪلاڪ', '89 minutes = هڪ ڪلاڪ'); - assert.equal(start.from(moment([2007, 1, 28]).add({m: 90}), true), '2 ڪلاڪ', '90 minutes = 2 ڪلاڪ'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 5}), true), '5 ڪلاڪ', '5 hours = 5 ڪلاڪ'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 21}), true), '21 ڪلاڪ', '21 hours = 21 ڪلاڪ'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 22}), true), 'هڪ ڏينهن', '22 hours = هڪ ڏينهن'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 35}), true), 'هڪ ڏينهن', '35 hours = هڪ ڏينهن'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 36}), true), '2 ڏينهن', '36 hours = 2 ڏينهن'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 1}), true), 'هڪ ڏينهن', '1 day = هڪ ڏينهن'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 5}), true), '5 ڏينهن', '5 days = 5 ڏينهن'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 25}), true), '25 ڏينهن', '25 days = 25 ڏينهن'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 26}), true), 'هڪ مهينو', '26 days = هڪ مهينو'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 30}), true), 'هڪ مهينو', '30 days = هڪ مهينو'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 43}), true), 'هڪ مهينو', '43 days = هڪ مهينو'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 46}), true), '2 مهينا', '46 days = 2 مهينا'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 74}), true), '2 مهينا', '75 days = 2 مهينا'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 76}), true), '3 مهينا', '76 days = 3 مهينا'); - assert.equal(start.from(moment([2007, 1, 28]).add({M: 1}), true), 'هڪ مهينو', '1 month = هڪ مهينو'); - assert.equal(start.from(moment([2007, 1, 28]).add({M: 5}), true), '5 مهينا', '5 months = 5 مهينا'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 345}), true), 'هڪ سال', '345 days = هڪ سال'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 548}), true), '2 سال', '548 days = 2 سال'); - assert.equal(start.from(moment([2007, 1, 28]).add({y: 1}), true), 'هڪ سال', '1 year = هڪ سال'); - assert.equal(start.from(moment([2007, 1, 28]).add({y: 5}), true), '5 سال', '5 years = 5 سال'); -}); - -test('suffix', function (assert) { - assert.equal(moment(30000).from(0), 'چند سيڪنڊ پوء', 'prefix'); - assert.equal(moment(0).from(30000), 'چند سيڪنڊ اڳ', 'suffix'); -}); - -test('now from now', function (assert) { - assert.equal(moment().fromNow(), 'چند سيڪنڊ اڳ', 'now from now should display as in the past'); -}); - -test('fromNow', function (assert) { - assert.equal(moment().add({s: 30}).fromNow(), 'چند سيڪنڊ پوء', 'in a few seconds'); - assert.equal(moment().add({d: 5}).fromNow(), '5 ڏينهن پوء', 'in 5 days'); -}); - -test('calendar day', function (assert) { - var a = moment().hours(12).minutes(0).seconds(0); - - assert.equal(moment(a).calendar(), 'اڄ 12:00', 'today at the same time'); - assert.equal(moment(a).add({m: 25}).calendar(), 'اڄ 12:25', 'Now plus 25 min'); - assert.equal(moment(a).add({h: 1}).calendar(), 'اڄ 13:00', 'Now plus 1 hour'); - assert.equal(moment(a).add({d: 1}).calendar(), 'سڀاڻي 12:00', 'tomorrow at the same time'); - assert.equal(moment(a).subtract({h: 1}).calendar(), 'اڄ 11:00', 'Now minus 1 hour'); - assert.equal(moment(a).subtract({d: 1}).calendar(), 'ڪالهه 12:00', 'yesterday at the same time'); -}); - -test('calendar next week', function (assert) { - var i, m; - for (i = 2; i < 7; i++) { - m = moment().add({d: i}); - assert.equal(m.calendar(), m.format('dddd [اڳين هفتي تي] LT'), 'Today + ' + i + ' days current time'); - m.hours(0).minutes(0).seconds(0).milliseconds(0); - assert.equal(m.calendar(), m.format('dddd [اڳين هفتي تي] LT'), 'Today + ' + i + ' days beginning of day'); - m.hours(23).minutes(59).seconds(59).milliseconds(999); - assert.equal(m.calendar(), m.format('dddd [اڳين هفتي تي] LT'), 'Today + ' + i + ' days end of day'); - } -}); - -test('calendar last week', function (assert) { - var i, m; - for (i = 2; i < 7; i++) { - m = moment().subtract({d: i}); - assert.equal(m.calendar(), m.format('[گزريل هفتي] dddd [تي] LT'), 'Today - ' + i + ' days current time'); - m.hours(0).minutes(0).seconds(0).milliseconds(0); - assert.equal(m.calendar(), m.format('[گزريل هفتي] dddd [تي] LT'), 'Today - ' + i + ' days beginning of day'); - m.hours(23).minutes(59).seconds(59).milliseconds(999); - assert.equal(m.calendar(), m.format('[گزريل هفتي] dddd [تي] LT'), 'Today - ' + i + ' days end of day'); - } -}); - -test('calendar all else', function (assert) { - var weeksAgo = moment().subtract({w: 1}), - weeksFromNow = moment().add({w: 1}); - - assert.equal(weeksAgo.calendar(), weeksAgo.format('L'), '1 week ago'); - assert.equal(weeksFromNow.calendar(), weeksFromNow.format('L'), 'in 1 week'); - - weeksAgo = moment().subtract({w: 2}); - weeksFromNow = moment().add({w: 2}); - - assert.equal(weeksAgo.calendar(), weeksAgo.format('L'), '2 weeks ago'); - assert.equal(weeksFromNow.calendar(), weeksFromNow.format('L'), 'in 2 weeks'); -}); - -test('weeks year starting sunday formatted', function (assert) { - assert.equal(moment([2012, 0, 1]).format('w ww wo'), '52 52 52', 'Jan 1 2012 should be week 52'); - assert.equal(moment([2012, 0, 2]).format('w ww wo'), '1 01 1', 'Jan 2 2012 should be week 1'); - assert.equal(moment([2012, 0, 8]).format('w ww wo'), '1 01 1', 'Jan 8 2012 should be week 1'); - assert.equal(moment([2012, 0, 9]).format('w ww wo'), '2 02 2', 'Jan 9 2012 should be week 2'); - assert.equal(moment([2012, 0, 15]).format('w ww wo'), '2 02 2', 'Jan 15 2012 should be week 2'); -}); - -}))); - - -;(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' - && typeof require === 'function' ? factory(require('../../moment')) : - typeof define === 'function' && define.amd ? define(['../../moment'], factory) : - factory(global.moment) -}(this, (function (moment) { 'use strict'; - -function each(array, callback) { - var i; - for (i = 0; i < array.length; i++) { - callback(array[i], i, array); - } -} - -function objectKeys(obj) { - if (Object.keys) { - return Object.keys(obj); - } else { - // IE8 - var res = [], i; - for (i in obj) { - if (obj.hasOwnProperty(i)) { - res.push(i); - } - } - return res; - } -} - -// Pick the first defined of two or three arguments. - -function defineCommonLocaleTests(locale, options) { - test('lenient day of month ordinal parsing', function (assert) { - var i, ordinalStr, testMoment; - for (i = 1; i <= 31; ++i) { - ordinalStr = moment([2014, 0, i]).format('YYYY MM Do'); - testMoment = moment(ordinalStr, 'YYYY MM Do'); - assert.equal(testMoment.year(), 2014, - 'lenient day of month ordinal parsing ' + i + ' year check'); - assert.equal(testMoment.month(), 0, - 'lenient day of month ordinal parsing ' + i + ' month check'); - assert.equal(testMoment.date(), i, - 'lenient day of month ordinal parsing ' + i + ' date check'); - } - }); - - test('lenient day of month ordinal parsing of number', function (assert) { - var i, testMoment; - for (i = 1; i <= 31; ++i) { - testMoment = moment('2014 01 ' + i, 'YYYY MM Do'); - assert.equal(testMoment.year(), 2014, - 'lenient day of month ordinal parsing of number ' + i + ' year check'); - assert.equal(testMoment.month(), 0, - 'lenient day of month ordinal parsing of number ' + i + ' month check'); - assert.equal(testMoment.date(), i, - 'lenient day of month ordinal parsing of number ' + i + ' date check'); - } - }); - - test('strict day of month ordinal parsing', function (assert) { - var i, ordinalStr, testMoment; - for (i = 1; i <= 31; ++i) { - ordinalStr = moment([2014, 0, i]).format('YYYY MM Do'); - testMoment = moment(ordinalStr, 'YYYY MM Do', true); - assert.ok(testMoment.isValid(), 'strict day of month ordinal parsing ' + i); - } - }); - - test('meridiem invariant', function (assert) { - var h, m, t1, t2; - for (h = 0; h < 24; ++h) { - for (m = 0; m < 60; m += 15) { - t1 = moment.utc([2000, 0, 1, h, m]); - t2 = moment.utc(t1.format('A h:mm'), 'A h:mm'); - assert.equal(t2.format('HH:mm'), t1.format('HH:mm'), - 'meridiem at ' + t1.format('HH:mm')); - } - } - }); - - test('date format correctness', function (assert) { - var data, tokens; - data = moment.localeData()._longDateFormat; - tokens = objectKeys(data); - each(tokens, function (srchToken) { - // Check each format string to make sure it does not contain any - // tokens that need to be expanded. - each(tokens, function (baseToken) { - // strip escaped sequences - var format = data[baseToken].replace(/(\[[^\]]*\])/g, ''); - assert.equal(false, !!~format.indexOf(srchToken), - 'contains ' + srchToken + ' in ' + baseToken); - }); - }); - }); - - test('month parsing correctness', function (assert) { - var i, m; - - if (locale === 'tr') { - // I can't fix it :( - expect(0); - return; - } - function tester(format) { - var r; - r = moment(m.format(format), format); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format); - r = moment(m.format(format).toLocaleUpperCase(), format); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' upper'); - r = moment(m.format(format).toLocaleLowerCase(), format); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' lower'); - - r = moment(m.format(format), format, true); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' strict'); - r = moment(m.format(format).toLocaleUpperCase(), format, true); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' upper strict'); - r = moment(m.format(format).toLocaleLowerCase(), format, true); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' lower strict'); - } - - for (i = 0; i < 12; ++i) { - m = moment([2015, i, 15, 18]); - tester('MMM'); - tester('MMM.'); - tester('MMMM'); - tester('MMMM.'); - } - }); - - test('weekday parsing correctness', function (assert) { - var i, m; - - if (locale === 'tr' || locale === 'az' || locale === 'ro') { - // tr, az: There is a lower-case letter (ı), that converted to - // upper then lower changes to i - // ro: there is the letter ț which behaves weird under IE8 - expect(0); - return; - } - function tester(format) { - var r, baseMsg = 'weekday ' + m.weekday() + ' fmt ' + format + ' ' + m.toISOString(); - r = moment(m.format(format), format); - assert.equal(r.weekday(), m.weekday(), baseMsg); - r = moment(m.format(format).toLocaleUpperCase(), format); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' upper'); - r = moment(m.format(format).toLocaleLowerCase(), format); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' lower'); - - r = moment(m.format(format), format, true); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' strict'); - r = moment(m.format(format).toLocaleUpperCase(), format, true); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' upper strict'); - r = moment(m.format(format).toLocaleLowerCase(), format, true); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' lower strict'); - } - - for (i = 0; i < 7; ++i) { - m = moment.utc([2015, 0, i + 1, 18]); - tester('dd'); - tester('ddd'); - tester('dddd'); - } - }); - - test('valid localeData', function (assert) { - assert.equal(moment().localeData().months().length, 12, 'months should return 12 months'); - assert.equal(moment().localeData().monthsShort().length, 12, 'monthsShort should return 12 months'); - assert.equal(moment().localeData().weekdays().length, 7, 'weekdays should return 7 days'); - assert.equal(moment().localeData().weekdaysShort().length, 7, 'weekdaysShort should return 7 days'); - assert.equal(moment().localeData().weekdaysMin().length, 7, 'monthsShort should return 7 days'); - }); -} - -function setupDeprecationHandler(test, moment$$1, scope) { - test._expectedDeprecations = null; - test._observedDeprecations = null; - test._oldSupress = moment$$1.suppressDeprecationWarnings; - moment$$1.suppressDeprecationWarnings = true; - test.expectedDeprecations = function () { - test._expectedDeprecations = arguments; - test._observedDeprecations = []; - }; - moment$$1.deprecationHandler = function (name, msg) { - var deprecationId = matchedDeprecation(name, msg, test._expectedDeprecations); - if (deprecationId === -1) { - throw new Error('Unexpected deprecation thrown name=' + - name + ' msg=' + msg); - } - test._observedDeprecations[deprecationId] = 1; - }; -} - -function teardownDeprecationHandler(test, moment$$1, scope) { - moment$$1.suppressDeprecationWarnings = test._oldSupress; - - if (test._expectedDeprecations != null) { - var missedDeprecations = []; - each(test._expectedDeprecations, function (deprecationPattern, id) { - if (test._observedDeprecations[id] !== 1) { - missedDeprecations.push(deprecationPattern); - } - }); - if (missedDeprecations.length !== 0) { - throw new Error('Expected deprecation warnings did not happen: ' + - missedDeprecations.join(' ')); - } - } -} - -function matchedDeprecation(name, msg, deprecations) { - if (deprecations == null) { - return -1; - } - for (var i = 0; i < deprecations.length; ++i) { - if (name != null && name === deprecations[i]) { - return i; - } - if (msg != null && msg.substring(0, deprecations[i].length) === deprecations[i]) { - return i; - } - } - return -1; -} - -/*global QUnit:false*/ - -var test = QUnit.test; - -var expect = QUnit.expect; - - - -function localeModule (name, lifecycle) { - QUnit.module('locale:' + name, { - setup : function () { - moment.locale(name); - moment.createFromInputFallback = function (config) { - throw new Error('input not handled by moment: ' + config._i); - }; - setupDeprecationHandler(test, moment, 'locale'); - if (lifecycle && lifecycle.setup) { - lifecycle.setup(); - } - }, - teardown : function () { - moment.locale('en'); - teardownDeprecationHandler(test, moment, 'locale'); - if (lifecycle && lifecycle.teardown) { - lifecycle.teardown(); - } - } - }); - defineCommonLocaleTests(name, -1, -1); -} - -localeModule('se'); - -test('parse', function (assert) { - var i, - tests = 'ođđajagemánnu ođđj_guovvamánnu guov_njukčamánnu njuk_cuoŋománnu cuo_miessemánnu mies_geassemánnu geas_suoidnemánnu suoi_borgemánnu borg_čakčamánnu čakč_golggotmánnu golg_skábmamánnu skáb_juovlamánnu juov'.split('_'); - - function equalTest(input, mmm, i) { - assert.equal(moment(input, mmm).month(), i, input + ' should be month ' + (i + 1)); - } - - for (i = 0; i < 12; i++) { - tests[i] = tests[i].split(' '); - equalTest(tests[i][0], 'MMM', i); - equalTest(tests[i][1], 'MMM', i); - equalTest(tests[i][0], 'MMMM', i); - equalTest(tests[i][1], 'MMMM', i); - equalTest(tests[i][0].toLocaleLowerCase(), 'MMMM', i); - equalTest(tests[i][1].toLocaleLowerCase(), 'MMMM', i); - equalTest(tests[i][0].toLocaleUpperCase(), 'MMMM', i); - equalTest(tests[i][1].toLocaleUpperCase(), 'MMMM', i); - } -}); - -test('format', function (assert) { - var a = [ - ['dddd, MMMM Do YYYY, h:mm:ss a', 'sotnabeaivi, guovvamánnu 14. 2010, 3:25:50 pm'], - ['ddd, hA', 'sotn, 3PM'], - ['M Mo MM MMMM MMM', '2 2. 02 guovvamánnu guov'], - ['YYYY YY', '2010 10'], - ['D Do DD', '14 14. 14'], - ['d do dddd ddd dd', '0 0. sotnabeaivi sotn s'], - ['DDD DDDo DDDD', '45 45. 045'], - ['w wo ww', '6 6. 06'], - ['h hh', '3 03'], - ['H HH', '15 15'], - ['m mm', '25 25'], - ['s ss', '50 50'], - ['a A', 'pm PM'], - ['[jagi] DDDo [beaivi]', 'jagi 45. beaivi'], - ['LTS', '15:25:50'], - ['L', '14.02.2010'], - ['LL', 'guovvamánnu 14. b. 2010'], - ['LLL', 'guovvamánnu 14. b. 2010 ti. 15:25'], - ['LLLL', 'sotnabeaivi, guovvamánnu 14. b. 2010 ti. 15:25'], - ['l', '14.2.2010'], - ['ll', 'guov 14. b. 2010'], - ['lll', 'guov 14. b. 2010 ti. 15:25'], - ['llll', 'sotn, guov 14. b. 2010 ti. 15:25'] - ], - b = moment(new Date(2010, 1, 14, 15, 25, 50, 125)), - i; - - for (i = 0; i < a.length; i++) { - assert.equal(b.format(a[i][0]), a[i][1], a[i][0] + ' ---> ' + a[i][1]); - } -}); - -test('format ordinal', function (assert) { - assert.equal(moment([2011, 0, 1]).format('DDDo'), '1.', '1.'); - assert.equal(moment([2011, 0, 2]).format('DDDo'), '2.', '2.'); - assert.equal(moment([2011, 0, 3]).format('DDDo'), '3.', '3.'); - assert.equal(moment([2011, 0, 4]).format('DDDo'), '4.', '4.'); - assert.equal(moment([2011, 0, 5]).format('DDDo'), '5.', '5.'); - assert.equal(moment([2011, 0, 6]).format('DDDo'), '6.', '6.'); - assert.equal(moment([2011, 0, 7]).format('DDDo'), '7.', '7.'); - assert.equal(moment([2011, 0, 8]).format('DDDo'), '8.', '8.'); - assert.equal(moment([2011, 0, 9]).format('DDDo'), '9.', '9.'); - assert.equal(moment([2011, 0, 10]).format('DDDo'), '10.', '10.'); - - assert.equal(moment([2011, 0, 11]).format('DDDo'), '11.', '11.'); - assert.equal(moment([2011, 0, 12]).format('DDDo'), '12.', '12.'); - assert.equal(moment([2011, 0, 13]).format('DDDo'), '13.', '13.'); - assert.equal(moment([2011, 0, 14]).format('DDDo'), '14.', '14.'); - assert.equal(moment([2011, 0, 15]).format('DDDo'), '15.', '15.'); - assert.equal(moment([2011, 0, 16]).format('DDDo'), '16.', '16.'); - assert.equal(moment([2011, 0, 17]).format('DDDo'), '17.', '17.'); - assert.equal(moment([2011, 0, 18]).format('DDDo'), '18.', '18.'); - assert.equal(moment([2011, 0, 19]).format('DDDo'), '19.', '19.'); - assert.equal(moment([2011, 0, 20]).format('DDDo'), '20.', '20.'); - - assert.equal(moment([2011, 0, 21]).format('DDDo'), '21.', '21.'); - assert.equal(moment([2011, 0, 22]).format('DDDo'), '22.', '22.'); - assert.equal(moment([2011, 0, 23]).format('DDDo'), '23.', '23.'); - assert.equal(moment([2011, 0, 24]).format('DDDo'), '24.', '24.'); - assert.equal(moment([2011, 0, 25]).format('DDDo'), '25.', '25.'); - assert.equal(moment([2011, 0, 26]).format('DDDo'), '26.', '26.'); - assert.equal(moment([2011, 0, 27]).format('DDDo'), '27.', '27.'); - assert.equal(moment([2011, 0, 28]).format('DDDo'), '28.', '28.'); - assert.equal(moment([2011, 0, 29]).format('DDDo'), '29.', '29.'); - assert.equal(moment([2011, 0, 30]).format('DDDo'), '30.', '30.'); - - assert.equal(moment([2011, 0, 31]).format('DDDo'), '31.', '31.'); -}); - -test('format month', function (assert) { - var i, - expected = 'ođđajagemánnu ođđj_guovvamánnu guov_njukčamánnu njuk_cuoŋománnu cuo_miessemánnu mies_geassemánnu geas_suoidnemánnu suoi_borgemánnu borg_čakčamánnu čakč_golggotmánnu golg_skábmamánnu skáb_juovlamánnu juov'.split('_'); - - for (i = 0; i < expected.length; i++) { - assert.equal(moment([2011, i, 1]).format('MMMM MMM'), expected[i], expected[i]); - } -}); - -test('format week', function (assert) { - var i, - expected = 'sotnabeaivi sotn s_vuossárga vuos v_maŋŋebárga maŋ m_gaskavahkku gask g_duorastat duor d_bearjadat bear b_lávvardat láv L'.split('_'); - - for (i = 0; i < expected.length; i++) { - assert.equal(moment([2011, 0, 2 + i]).format('dddd ddd dd'), expected[i], expected[i]); - } -}); - -test('from', function (assert) { - var start = moment([2007, 1, 28]); - - assert.equal(start.from(moment([2007, 1, 28]).add({s: 44}), true), 'moadde sekunddat', '44 seconds = a few seconds'); - assert.equal(start.from(moment([2007, 1, 28]).add({s: 45}), true), 'okta minuhta', '45 seconds = a minute'); - assert.equal(start.from(moment([2007, 1, 28]).add({s: 89}), true), 'okta minuhta', '89 seconds = a minute'); - assert.equal(start.from(moment([2007, 1, 28]).add({s: 90}), true), '2 minuhtat', '90 seconds = 2 minutes'); - assert.equal(start.from(moment([2007, 1, 28]).add({m: 44}), true), '44 minuhtat', '44 minutes = 44 minutes'); - assert.equal(start.from(moment([2007, 1, 28]).add({m: 45}), true), 'okta diimmu', '45 minutes = an hour'); - assert.equal(start.from(moment([2007, 1, 28]).add({m: 89}), true), 'okta diimmu', '89 minutes = an hour'); - assert.equal(start.from(moment([2007, 1, 28]).add({m: 90}), true), '2 diimmut', '90 minutes = 2 hours'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 5}), true), '5 diimmut', '5 hours = 5 hours'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 21}), true), '21 diimmut', '21 hours = 21 hours'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 22}), true), 'okta beaivi', '22 hours = a day'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 35}), true), 'okta beaivi', '35 hours = a day'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 36}), true), '2 beaivvit', '36 hours = 2 days'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 1}), true), 'okta beaivi', '1 day = a day'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 5}), true), '5 beaivvit', '5 days = 5 days'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 25}), true), '25 beaivvit', '25 days = 25 days'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 26}), true), 'okta mánnu', '26 days = a month'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 30}), true), 'okta mánnu', '30 days = a month'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 43}), true), 'okta mánnu', '43 days = a month'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 46}), true), '2 mánut', '46 days = 2 months'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 74}), true), '2 mánut', '75 days = 2 months'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 76}), true), '3 mánut', '76 days = 3 months'); - assert.equal(start.from(moment([2007, 1, 28]).add({M: 1}), true), 'okta mánnu', '1 month = a month'); - assert.equal(start.from(moment([2007, 1, 28]).add({M: 5}), true), '5 mánut', '5 months = 5 months'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 345}), true), 'okta jahki', '345 days = a year'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 548}), true), '2 jagit', '548 days = 2 years'); - assert.equal(start.from(moment([2007, 1, 28]).add({y: 1}), true), 'okta jahki', '1 year = a year'); - assert.equal(start.from(moment([2007, 1, 28]).add({y: 5}), true), '5 jagit', '5 years = 5 years'); -}); - -test('suffix', function (assert) { - assert.equal(moment(30000).from(0), 'moadde sekunddat geažes', 'prefix'); - assert.equal(moment(0).from(30000), 'maŋit moadde sekunddat', 'suffix'); -}); - -test('now from now', function (assert) { - assert.equal(moment().fromNow(), 'maŋit moadde sekunddat', 'now from now should display as in the past'); -}); - -test('fromNow', function (assert) { - assert.equal(moment().add({s: 30}).fromNow(), 'moadde sekunddat geažes', 'in a few seconds'); - assert.equal(moment().add({d: 5}).fromNow(), '5 beaivvit geažes', 'in 5 days'); -}); - -test('calendar day', function (assert) { - var a = moment().hours(12).minutes(0).seconds(0); - - assert.equal(moment(a).calendar(), 'otne ti 12:00', 'Today at the same time'); - assert.equal(moment(a).add({m: 25}).calendar(), 'otne ti 12:25', 'Now plus 25 min'); - assert.equal(moment(a).add({h: 1}).calendar(), 'otne ti 13:00', 'Now plus 1 hour'); - assert.equal(moment(a).add({d: 1}).calendar(), 'ihttin ti 12:00', 'Tomorrow at the same time'); - assert.equal(moment(a).subtract({h: 1}).calendar(), 'otne ti 11:00', 'Now minus 1 hour'); - assert.equal(moment(a).subtract({d: 1}).calendar(), 'ikte ti 12:00', 'yesterday at the same time'); -}); - -test('calendar next week', function (assert) { - var i, m; - - for (i = 2; i < 7; i++) { - m = moment().add({d: i}); - assert.equal(m.calendar(), m.format('dddd [ti] LT'), 'Today + ' + i + ' days current time'); - m.hours(0).minutes(0).seconds(0).milliseconds(0); - assert.equal(m.calendar(), m.format('dddd [ti] LT'), 'Today + ' + i + ' days beginning of day'); - m.hours(23).minutes(59).seconds(59).milliseconds(999); - assert.equal(m.calendar(), m.format('dddd [ti] LT'), 'Today + ' + i + ' days end of day'); - } -}); - -test('calendar last week', function (assert) { - var i, m; - - for (i = 2; i < 7; i++) { - m = moment().subtract({d: i}); - assert.equal(m.calendar(), m.format('[ovddit] dddd [ti] LT'), 'Today - ' + i + ' days current time'); - m.hours(0).minutes(0).seconds(0).milliseconds(0); - assert.equal(m.calendar(), m.format('[ovddit] dddd [ti] LT'), 'Today - ' + i + ' days beginning of day'); - m.hours(23).minutes(59).seconds(59).milliseconds(999); - assert.equal(m.calendar(), m.format('[ovddit] dddd [ti] LT'), 'Today - ' + i + ' days end of day'); - } -}); - -test('calendar all else', function (assert) { - var weeksAgo = moment().subtract({w: 1}), - weeksFromNow = moment().add({w: 1}); - - assert.equal(weeksAgo.calendar(), weeksAgo.format('L'), '1 week ago'); - assert.equal(weeksFromNow.calendar(), weeksFromNow.format('L'), 'in 1 week'); - - weeksAgo = moment().subtract({w: 2}); - weeksFromNow = moment().add({w: 2}); - - assert.equal(weeksAgo.calendar(), weeksAgo.format('L'), '2 weeks ago'); - assert.equal(weeksFromNow.calendar(), weeksFromNow.format('L'), 'in 2 weeks'); -}); - -test('weeks year starting sunday formatted', function (assert) { - assert.equal(moment([2012, 0, 1]).format('w ww wo'), '52 52 52.', 'Jan 1 2012 should be week 52'); - assert.equal(moment([2012, 0, 2]).format('w ww wo'), '1 01 1.', 'Jan 2 2012 should be week 1'); - assert.equal(moment([2012, 0, 8]).format('w ww wo'), '1 01 1.', 'Jan 8 2012 should be week 1'); - assert.equal(moment([2012, 0, 9]).format('w ww wo'), '2 02 2.', 'Jan 9 2012 should be week 2'); - assert.equal(moment([2012, 0, 15]).format('w ww wo'), '2 02 2.', 'Jan 15 2012 should be week 2'); -}); - -}))); - - -;(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' - && typeof require === 'function' ? factory(require('../../moment')) : - typeof define === 'function' && define.amd ? define(['../../moment'], factory) : - factory(global.moment) -}(this, (function (moment) { 'use strict'; - -function each(array, callback) { - var i; - for (i = 0; i < array.length; i++) { - callback(array[i], i, array); - } -} - -function objectKeys(obj) { - if (Object.keys) { - return Object.keys(obj); - } else { - // IE8 - var res = [], i; - for (i in obj) { - if (obj.hasOwnProperty(i)) { - res.push(i); - } - } - return res; - } -} - -// Pick the first defined of two or three arguments. - -function defineCommonLocaleTests(locale, options) { - test('lenient day of month ordinal parsing', function (assert) { - var i, ordinalStr, testMoment; - for (i = 1; i <= 31; ++i) { - ordinalStr = moment([2014, 0, i]).format('YYYY MM Do'); - testMoment = moment(ordinalStr, 'YYYY MM Do'); - assert.equal(testMoment.year(), 2014, - 'lenient day of month ordinal parsing ' + i + ' year check'); - assert.equal(testMoment.month(), 0, - 'lenient day of month ordinal parsing ' + i + ' month check'); - assert.equal(testMoment.date(), i, - 'lenient day of month ordinal parsing ' + i + ' date check'); - } - }); - - test('lenient day of month ordinal parsing of number', function (assert) { - var i, testMoment; - for (i = 1; i <= 31; ++i) { - testMoment = moment('2014 01 ' + i, 'YYYY MM Do'); - assert.equal(testMoment.year(), 2014, - 'lenient day of month ordinal parsing of number ' + i + ' year check'); - assert.equal(testMoment.month(), 0, - 'lenient day of month ordinal parsing of number ' + i + ' month check'); - assert.equal(testMoment.date(), i, - 'lenient day of month ordinal parsing of number ' + i + ' date check'); - } - }); - - test('strict day of month ordinal parsing', function (assert) { - var i, ordinalStr, testMoment; - for (i = 1; i <= 31; ++i) { - ordinalStr = moment([2014, 0, i]).format('YYYY MM Do'); - testMoment = moment(ordinalStr, 'YYYY MM Do', true); - assert.ok(testMoment.isValid(), 'strict day of month ordinal parsing ' + i); - } - }); - - test('meridiem invariant', function (assert) { - var h, m, t1, t2; - for (h = 0; h < 24; ++h) { - for (m = 0; m < 60; m += 15) { - t1 = moment.utc([2000, 0, 1, h, m]); - t2 = moment.utc(t1.format('A h:mm'), 'A h:mm'); - assert.equal(t2.format('HH:mm'), t1.format('HH:mm'), - 'meridiem at ' + t1.format('HH:mm')); - } - } - }); - - test('date format correctness', function (assert) { - var data, tokens; - data = moment.localeData()._longDateFormat; - tokens = objectKeys(data); - each(tokens, function (srchToken) { - // Check each format string to make sure it does not contain any - // tokens that need to be expanded. - each(tokens, function (baseToken) { - // strip escaped sequences - var format = data[baseToken].replace(/(\[[^\]]*\])/g, ''); - assert.equal(false, !!~format.indexOf(srchToken), - 'contains ' + srchToken + ' in ' + baseToken); - }); - }); - }); - - test('month parsing correctness', function (assert) { - var i, m; - - if (locale === 'tr') { - // I can't fix it :( - expect(0); - return; - } - function tester(format) { - var r; - r = moment(m.format(format), format); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format); - r = moment(m.format(format).toLocaleUpperCase(), format); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' upper'); - r = moment(m.format(format).toLocaleLowerCase(), format); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' lower'); - - r = moment(m.format(format), format, true); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' strict'); - r = moment(m.format(format).toLocaleUpperCase(), format, true); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' upper strict'); - r = moment(m.format(format).toLocaleLowerCase(), format, true); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' lower strict'); - } - - for (i = 0; i < 12; ++i) { - m = moment([2015, i, 15, 18]); - tester('MMM'); - tester('MMM.'); - tester('MMMM'); - tester('MMMM.'); - } - }); - - test('weekday parsing correctness', function (assert) { - var i, m; - - if (locale === 'tr' || locale === 'az' || locale === 'ro') { - // tr, az: There is a lower-case letter (ı), that converted to - // upper then lower changes to i - // ro: there is the letter ț which behaves weird under IE8 - expect(0); - return; - } - function tester(format) { - var r, baseMsg = 'weekday ' + m.weekday() + ' fmt ' + format + ' ' + m.toISOString(); - r = moment(m.format(format), format); - assert.equal(r.weekday(), m.weekday(), baseMsg); - r = moment(m.format(format).toLocaleUpperCase(), format); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' upper'); - r = moment(m.format(format).toLocaleLowerCase(), format); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' lower'); - - r = moment(m.format(format), format, true); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' strict'); - r = moment(m.format(format).toLocaleUpperCase(), format, true); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' upper strict'); - r = moment(m.format(format).toLocaleLowerCase(), format, true); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' lower strict'); - } - - for (i = 0; i < 7; ++i) { - m = moment.utc([2015, 0, i + 1, 18]); - tester('dd'); - tester('ddd'); - tester('dddd'); - } - }); - - test('valid localeData', function (assert) { - assert.equal(moment().localeData().months().length, 12, 'months should return 12 months'); - assert.equal(moment().localeData().monthsShort().length, 12, 'monthsShort should return 12 months'); - assert.equal(moment().localeData().weekdays().length, 7, 'weekdays should return 7 days'); - assert.equal(moment().localeData().weekdaysShort().length, 7, 'weekdaysShort should return 7 days'); - assert.equal(moment().localeData().weekdaysMin().length, 7, 'monthsShort should return 7 days'); - }); -} - -function setupDeprecationHandler(test, moment$$1, scope) { - test._expectedDeprecations = null; - test._observedDeprecations = null; - test._oldSupress = moment$$1.suppressDeprecationWarnings; - moment$$1.suppressDeprecationWarnings = true; - test.expectedDeprecations = function () { - test._expectedDeprecations = arguments; - test._observedDeprecations = []; - }; - moment$$1.deprecationHandler = function (name, msg) { - var deprecationId = matchedDeprecation(name, msg, test._expectedDeprecations); - if (deprecationId === -1) { - throw new Error('Unexpected deprecation thrown name=' + - name + ' msg=' + msg); - } - test._observedDeprecations[deprecationId] = 1; - }; -} - -function teardownDeprecationHandler(test, moment$$1, scope) { - moment$$1.suppressDeprecationWarnings = test._oldSupress; - - if (test._expectedDeprecations != null) { - var missedDeprecations = []; - each(test._expectedDeprecations, function (deprecationPattern, id) { - if (test._observedDeprecations[id] !== 1) { - missedDeprecations.push(deprecationPattern); - } - }); - if (missedDeprecations.length !== 0) { - throw new Error('Expected deprecation warnings did not happen: ' + - missedDeprecations.join(' ')); - } - } -} - -function matchedDeprecation(name, msg, deprecations) { - if (deprecations == null) { - return -1; - } - for (var i = 0; i < deprecations.length; ++i) { - if (name != null && name === deprecations[i]) { - return i; - } - if (msg != null && msg.substring(0, deprecations[i].length) === deprecations[i]) { - return i; - } - } - return -1; -} - -/*global QUnit:false*/ - -var test = QUnit.test; - -var expect = QUnit.expect; - - - -function localeModule (name, lifecycle) { - QUnit.module('locale:' + name, { - setup : function () { - moment.locale(name); - moment.createFromInputFallback = function (config) { - throw new Error('input not handled by moment: ' + config._i); - }; - setupDeprecationHandler(test, moment, 'locale'); - if (lifecycle && lifecycle.setup) { - lifecycle.setup(); - } - }, - teardown : function () { - moment.locale('en'); - teardownDeprecationHandler(test, moment, 'locale'); - if (lifecycle && lifecycle.teardown) { - lifecycle.teardown(); - } - } - }); - defineCommonLocaleTests(name, -1, -1); -} - -localeModule('si'); - -/*jshint -W100*/ -test('parse', function (assert) { - var tests = 'ජනවාරි ජන_පෙබරවාරි පෙබ_මාර්තු මාර්_අප්‍රේල් අප්_මැයි මැයි_ජූනි ජූනි_ජූලි ජූලි_අගෝස්තු අගෝ_සැප්තැම්බර් සැප්_ඔක්තෝබර් ඔක්_නොවැම්බර් නොවැ_දෙසැම්බර් දෙසැ'.split('_'), i; - function equalTest(input, mmm, i) { - assert.equal(moment(input, mmm).month(), i, input + ' should be month ' + (i + 1)); - } - for (i = 0; i < 12; i++) { - tests[i] = tests[i].split(' '); - equalTest(tests[i][0], 'MMM', i); - equalTest(tests[i][1], 'MMM', i); - equalTest(tests[i][0], 'MMMM', i); - equalTest(tests[i][1], 'MMMM', i); - equalTest(tests[i][0].toLocaleLowerCase(), 'MMMM', i); - equalTest(tests[i][1].toLocaleLowerCase(), 'MMMM', i); - equalTest(tests[i][0].toLocaleUpperCase(), 'MMMM', i); - equalTest(tests[i][1].toLocaleUpperCase(), 'MMMM', i); - } -}); - -test('format', function (assert) { - var a = [ - ['YYYY MMMM Do dddd, a h:mm:ss', '2010 පෙබරවාරි 14 වැනි ඉරිදා, ප.ව. 3:25:50'], - ['YYYY MMMM Do dddd, a h:mm:ss', '2010 පෙබරවාරි 14 වැනි ඉරිදා, ප.ව. 3:25:50'], - ['ddd, A h', 'ඉරි, පස් වරු 3'], - ['M Mo MM MMMM MMM', '2 2 වැනි 02 පෙබරවාරි පෙබ'], - ['YYYY YY', '2010 10'], - ['D Do DD', '14 14 වැනි 14'], - ['d do dddd ddd dd', '0 0 වැනි ඉරිදා ඉරි ඉ'], - ['DDD DDDo DDDD', '45 45 වැනි 045'], - ['h hh', '3 03'], - ['H HH', '15 15'], - ['m mm', '25 25'], - ['s ss', '50 50'], - ['a A', 'ප.ව. පස් වරු'], - ['[වසරේ] DDDo [දිනය]', 'වසරේ 45 වැනි දිනය'], - ['LTS', 'ප.ව. 3:25:50'], - ['LT', 'ප.ව. 3:25'], - ['L', '2010/02/14'], - ['LL', '2010 පෙබරවාරි 14'], - ['LLL', '2010 පෙබරවාරි 14, ප.ව. 3:25'], - ['LLLL', '2010 පෙබරවාරි 14 වැනි ඉරිදා, ප.ව. 3:25:50'], - ['l', '2010/2/14'], - ['ll', '2010 පෙබ 14'], - ['lll', '2010 පෙබ 14, ප.ව. 3:25'], - ['llll', '2010 පෙබ 14 වැනි ඉරි, ප.ව. 3:25:50'] - ], - b = moment(new Date(2010, 1, 14, 15, 25, 50, 125)), - i; - for (i = 0; i < a.length; i++) { - assert.equal(b.format(a[i][0]), a[i][1], a[i][0] + ' ---> ' + a[i][1]); - } -}); - -test('format ordinal', function (assert) { - assert.equal(moment([2011, 0, 1]).format('DDDo'), '1 වැනි', '1 වැනි'); - assert.equal(moment([2011, 0, 2]).format('DDDo'), '2 වැනි', '2 වැනි'); - assert.equal(moment([2011, 0, 3]).format('DDDo'), '3 වැනි', '3 වැනි'); - assert.equal(moment([2011, 0, 4]).format('DDDo'), '4 වැනි', '4 වැනි'); - assert.equal(moment([2011, 0, 5]).format('DDDo'), '5 වැනි', '5 වැනි'); - assert.equal(moment([2011, 0, 6]).format('DDDo'), '6 වැනි', '6 වැනි'); - assert.equal(moment([2011, 0, 7]).format('DDDo'), '7 වැනි', '7 වැනි'); - assert.equal(moment([2011, 0, 8]).format('DDDo'), '8 වැනි', '8 වැනි'); - assert.equal(moment([2011, 0, 9]).format('DDDo'), '9 වැනි', '9 වැනි'); - assert.equal(moment([2011, 0, 10]).format('DDDo'), '10 වැනි', '10 වැනි'); - - assert.equal(moment([2011, 0, 11]).format('DDDo'), '11 වැනි', '11 වැනි'); - assert.equal(moment([2011, 0, 12]).format('DDDo'), '12 වැනි', '12 වැනි'); - assert.equal(moment([2011, 0, 13]).format('DDDo'), '13 වැනි', '13 වැනි'); - assert.equal(moment([2011, 0, 14]).format('DDDo'), '14 වැනි', '14 වැනි'); - assert.equal(moment([2011, 0, 15]).format('DDDo'), '15 වැනි', '15 වැනි'); - assert.equal(moment([2011, 0, 16]).format('DDDo'), '16 වැනි', '16 වැනි'); - assert.equal(moment([2011, 0, 17]).format('DDDo'), '17 වැනි', '17 වැනි'); - assert.equal(moment([2011, 0, 18]).format('DDDo'), '18 වැනි', '18 වැනි'); - assert.equal(moment([2011, 0, 19]).format('DDDo'), '19 වැනි', '19 වැනි'); - assert.equal(moment([2011, 0, 20]).format('DDDo'), '20 වැනි', '20 වැනි'); - - assert.equal(moment([2011, 0, 21]).format('DDDo'), '21 වැනි', '21 වැනි'); - assert.equal(moment([2011, 0, 22]).format('DDDo'), '22 වැනි', '22 වැනි'); - assert.equal(moment([2011, 0, 23]).format('DDDo'), '23 වැනි', '23 වැනි'); - assert.equal(moment([2011, 0, 24]).format('DDDo'), '24 වැනි', '24 වැනි'); - assert.equal(moment([2011, 0, 25]).format('DDDo'), '25 වැනි', '25 වැනි'); - assert.equal(moment([2011, 0, 26]).format('DDDo'), '26 වැනි', '26 වැනි'); - assert.equal(moment([2011, 0, 27]).format('DDDo'), '27 වැනි', '27 වැනි'); - assert.equal(moment([2011, 0, 28]).format('DDDo'), '28 වැනි', '28 වැනි'); - assert.equal(moment([2011, 0, 29]).format('DDDo'), '29 වැනි', '29 වැනි'); - assert.equal(moment([2011, 0, 30]).format('DDDo'), '30 වැනි', '30 වැනි'); - - assert.equal(moment([2011, 0, 31]).format('DDDo'), '31 වැනි', '31 වැනි'); -}); - -test('format month', function (assert) { - var expected = 'ජනවාරි ජන_පෙබරවාරි පෙබ_මාර්තු මාර්_අප්‍රේල් අප්_මැයි මැයි_ජූනි ජූනි_ජූලි ජූලි_අගෝස්තු අගෝ_සැප්තැම්බර් සැප්_ඔක්තෝබර් ඔක්_නොවැම්බර් නොවැ_දෙසැම්බර් දෙසැ'.split('_'), i; - for (i = 0; i < expected.length; i++) { - assert.equal(moment([2011, i, 1]).format('MMMM MMM'), expected[i], expected[i]); - } -}); - -test('format week', function (assert) { - var expected = 'ඉරිදා ඉරි ඉ_සඳුදා සඳු ස_අඟහරුවාදා අඟ අ_බදාදා බදා බ_බ්‍රහස්පතින්දා බ්‍රහ බ්‍ර_සිකුරාදා සිකු සි_සෙනසුරාදා සෙන සෙ'.split('_'), i; - for (i = 0; i < expected.length; i++) { - assert.equal(moment([2011, 0, 2 + i]).format('dddd ddd dd'), expected[i], expected[i]); - } -}); - -test('from', function (assert) { - var start = moment([2007, 1, 28]); - assert.equal(start.from(moment([2007, 1, 28]).add({s: 44}), true), 'තත්පර කිහිපය', '44 seconds = a few seconds'); - assert.equal(start.from(moment([2007, 1, 28]).add({s: 45}), true), 'මිනිත්තුව', '45 seconds = a minute'); - assert.equal(start.from(moment([2007, 1, 28]).add({s: 89}), true), 'මිනිත්තුව', '89 seconds = a minute'); - assert.equal(start.from(moment([2007, 1, 28]).add({s: 90}), true), 'මිනිත්තු 2', '90 seconds = 2 minutes'); - assert.equal(start.from(moment([2007, 1, 28]).add({m: 44}), true), 'මිනිත්තු 44', '44 minutes = 44 minutes'); - assert.equal(start.from(moment([2007, 1, 28]).add({m: 45}), true), 'පැය', '45 minutes = an hour'); - assert.equal(start.from(moment([2007, 1, 28]).add({m: 89}), true), 'පැය', '89 minutes = an hour'); - assert.equal(start.from(moment([2007, 1, 28]).add({m: 90}), true), 'පැය 2', '90 minutes = 2 hours'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 5}), true), 'පැය 5', '5 hours = 5 hours'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 21}), true), 'පැය 21', '21 hours = 21 hours'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 22}), true), 'දිනය', '22 hours = a day'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 35}), true), 'දිනය', '35 hours = a day'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 36}), true), 'දින 2', '36 hours = 2 days'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 1}), true), 'දිනය', '1 day = a day'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 5}), true), 'දින 5', '5 days = 5 days'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 25}), true), 'දින 25', '25 days = 25 days'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 26}), true), 'මාසය', '26 days = a month'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 30}), true), 'මාසය', '30 days = a month'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 43}), true), 'මාසය', '43 days = a month'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 46}), true), 'මාස 2', '46 days = 2 months'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 74}), true), 'මාස 2', '75 days = 2 months'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 76}), true), 'මාස 3', '76 days = 3 months'); - assert.equal(start.from(moment([2007, 1, 28]).add({M: 1}), true), 'මාසය', '1 month = a month'); - assert.equal(start.from(moment([2007, 1, 28]).add({M: 5}), true), 'මාස 5', '5 months = 5 months'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 345}), true), 'වසර', '345 days = a year'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 548}), true), 'වසර 2', '548 days = 2 years'); - assert.equal(start.from(moment([2007, 1, 28]).add({y: 1}), true), 'වසර', '1 year = a year'); - assert.equal(start.from(moment([2007, 1, 28]).add({y: 5}), true), 'වසර 5', '5 years = 5 years'); -}); - -test('suffix', function (assert) { - assert.equal(moment(30000).from(0), 'තත්පර කිහිපයකින්', 'prefix'); - assert.equal(moment(0).from(30000), 'තත්පර කිහිපයකට පෙර', 'suffix'); -}); - -test('now from now', function (assert) { - assert.equal(moment().fromNow(), 'තත්පර කිහිපයකට පෙර', 'now from now should display as in the past'); -}); - -test('fromNow', function (assert) { - assert.equal(moment().add({s: 30}).fromNow(), 'තත්පර කිහිපයකින්', 'in a few seconds'); - assert.equal(moment().add({d: 5}).fromNow(), 'දින 5කින්', 'in 5 days'); -}); - -test('calendar day', function (assert) { - var a = moment().hours(12).minutes(0).seconds(0); - - assert.equal(moment(a).calendar(), 'අද ප.ව. 12:00ට', 'today at the same time'); - assert.equal(moment(a).add({m: 25}).calendar(), 'අද ප.ව. 12:25ට', 'Now plus 25 min'); - assert.equal(moment(a).add({h: 1}).calendar(), 'අද ප.ව. 1:00ට', 'Now plus 1 hour'); - assert.equal(moment(a).add({d: 1}).calendar(), 'හෙට ප.ව. 12:00ට', 'tomorrow at the same time'); - assert.equal(moment(a).subtract({h: 1}).calendar(), 'අද පෙ.ව. 11:00ට', 'Now minus 1 hour'); - assert.equal(moment(a).subtract({d: 1}).calendar(), 'ඊයේ ප.ව. 12:00ට', 'yesterday at the same time'); -}); - -test('calendar next week', function (assert) { - var i, m; - for (i = 2; i < 7; i++) { - m = moment().add({d: i}); - assert.equal(m.calendar(), m.format('dddd LT[ට]'), 'Today + ' + i + ' days current time'); - m.hours(0).minutes(0).seconds(0).milliseconds(0); - assert.equal(m.calendar(), m.format('dddd LT[ට]'), 'Today + ' + i + ' days beginning of day'); - m.hours(23).minutes(59).seconds(59).milliseconds(999); - assert.equal(m.calendar(), m.format('dddd LT[ට]'), 'Today + ' + i + ' days end of day'); - } -}); - -test('calendar last week', function (assert) { - var i, m; - - for (i = 2; i < 7; i++) { - m = moment().subtract({d: i}); - assert.equal(m.calendar(), m.format('[පසුගිය] dddd LT[ට]'), 'Today - ' + i + ' days current time'); - m.hours(0).minutes(0).seconds(0).milliseconds(0); - assert.equal(m.calendar(), m.format('[පසුගිය] dddd LT[ට]'), 'Today - ' + i + ' days beginning of day'); - m.hours(23).minutes(59).seconds(59).milliseconds(999); - assert.equal(m.calendar(), m.format('[පසුගිය] dddd LT[ට]'), 'Today - ' + i + ' days end of day'); - } -}); - -test('calendar all else', function (assert) { - var weeksAgo = moment().subtract({w: 1}), - weeksFromNow = moment().add({w: 1}); - - assert.equal(weeksAgo.calendar(), weeksAgo.format('L'), '1 week ago'); - assert.equal(weeksFromNow.calendar(), weeksFromNow.format('L'), 'in 1 week'); - - weeksAgo = moment().subtract({w: 2}); - weeksFromNow = moment().add({w: 2}); - - assert.equal(weeksAgo.calendar(), weeksAgo.format('L'), '2 weeks ago'); - assert.equal(weeksFromNow.calendar(), weeksFromNow.format('L'), 'in 2 weeks'); -}); - -}))); - - -;(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' - && typeof require === 'function' ? factory(require('../../moment')) : - typeof define === 'function' && define.amd ? define(['../../moment'], factory) : - factory(global.moment) -}(this, (function (moment) { 'use strict'; - -function each(array, callback) { - var i; - for (i = 0; i < array.length; i++) { - callback(array[i], i, array); - } -} - -function objectKeys(obj) { - if (Object.keys) { - return Object.keys(obj); - } else { - // IE8 - var res = [], i; - for (i in obj) { - if (obj.hasOwnProperty(i)) { - res.push(i); - } - } - return res; - } -} - -// Pick the first defined of two or three arguments. - -function defineCommonLocaleTests(locale, options) { - test('lenient day of month ordinal parsing', function (assert) { - var i, ordinalStr, testMoment; - for (i = 1; i <= 31; ++i) { - ordinalStr = moment([2014, 0, i]).format('YYYY MM Do'); - testMoment = moment(ordinalStr, 'YYYY MM Do'); - assert.equal(testMoment.year(), 2014, - 'lenient day of month ordinal parsing ' + i + ' year check'); - assert.equal(testMoment.month(), 0, - 'lenient day of month ordinal parsing ' + i + ' month check'); - assert.equal(testMoment.date(), i, - 'lenient day of month ordinal parsing ' + i + ' date check'); - } - }); - - test('lenient day of month ordinal parsing of number', function (assert) { - var i, testMoment; - for (i = 1; i <= 31; ++i) { - testMoment = moment('2014 01 ' + i, 'YYYY MM Do'); - assert.equal(testMoment.year(), 2014, - 'lenient day of month ordinal parsing of number ' + i + ' year check'); - assert.equal(testMoment.month(), 0, - 'lenient day of month ordinal parsing of number ' + i + ' month check'); - assert.equal(testMoment.date(), i, - 'lenient day of month ordinal parsing of number ' + i + ' date check'); - } - }); - - test('strict day of month ordinal parsing', function (assert) { - var i, ordinalStr, testMoment; - for (i = 1; i <= 31; ++i) { - ordinalStr = moment([2014, 0, i]).format('YYYY MM Do'); - testMoment = moment(ordinalStr, 'YYYY MM Do', true); - assert.ok(testMoment.isValid(), 'strict day of month ordinal parsing ' + i); - } - }); - - test('meridiem invariant', function (assert) { - var h, m, t1, t2; - for (h = 0; h < 24; ++h) { - for (m = 0; m < 60; m += 15) { - t1 = moment.utc([2000, 0, 1, h, m]); - t2 = moment.utc(t1.format('A h:mm'), 'A h:mm'); - assert.equal(t2.format('HH:mm'), t1.format('HH:mm'), - 'meridiem at ' + t1.format('HH:mm')); - } - } - }); - - test('date format correctness', function (assert) { - var data, tokens; - data = moment.localeData()._longDateFormat; - tokens = objectKeys(data); - each(tokens, function (srchToken) { - // Check each format string to make sure it does not contain any - // tokens that need to be expanded. - each(tokens, function (baseToken) { - // strip escaped sequences - var format = data[baseToken].replace(/(\[[^\]]*\])/g, ''); - assert.equal(false, !!~format.indexOf(srchToken), - 'contains ' + srchToken + ' in ' + baseToken); - }); - }); - }); - - test('month parsing correctness', function (assert) { - var i, m; - - if (locale === 'tr') { - // I can't fix it :( - expect(0); - return; - } - function tester(format) { - var r; - r = moment(m.format(format), format); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format); - r = moment(m.format(format).toLocaleUpperCase(), format); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' upper'); - r = moment(m.format(format).toLocaleLowerCase(), format); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' lower'); - - r = moment(m.format(format), format, true); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' strict'); - r = moment(m.format(format).toLocaleUpperCase(), format, true); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' upper strict'); - r = moment(m.format(format).toLocaleLowerCase(), format, true); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' lower strict'); - } - - for (i = 0; i < 12; ++i) { - m = moment([2015, i, 15, 18]); - tester('MMM'); - tester('MMM.'); - tester('MMMM'); - tester('MMMM.'); - } - }); - - test('weekday parsing correctness', function (assert) { - var i, m; - - if (locale === 'tr' || locale === 'az' || locale === 'ro') { - // tr, az: There is a lower-case letter (ı), that converted to - // upper then lower changes to i - // ro: there is the letter ț which behaves weird under IE8 - expect(0); - return; - } - function tester(format) { - var r, baseMsg = 'weekday ' + m.weekday() + ' fmt ' + format + ' ' + m.toISOString(); - r = moment(m.format(format), format); - assert.equal(r.weekday(), m.weekday(), baseMsg); - r = moment(m.format(format).toLocaleUpperCase(), format); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' upper'); - r = moment(m.format(format).toLocaleLowerCase(), format); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' lower'); - - r = moment(m.format(format), format, true); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' strict'); - r = moment(m.format(format).toLocaleUpperCase(), format, true); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' upper strict'); - r = moment(m.format(format).toLocaleLowerCase(), format, true); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' lower strict'); - } - - for (i = 0; i < 7; ++i) { - m = moment.utc([2015, 0, i + 1, 18]); - tester('dd'); - tester('ddd'); - tester('dddd'); - } - }); - - test('valid localeData', function (assert) { - assert.equal(moment().localeData().months().length, 12, 'months should return 12 months'); - assert.equal(moment().localeData().monthsShort().length, 12, 'monthsShort should return 12 months'); - assert.equal(moment().localeData().weekdays().length, 7, 'weekdays should return 7 days'); - assert.equal(moment().localeData().weekdaysShort().length, 7, 'weekdaysShort should return 7 days'); - assert.equal(moment().localeData().weekdaysMin().length, 7, 'monthsShort should return 7 days'); - }); -} - -function setupDeprecationHandler(test, moment$$1, scope) { - test._expectedDeprecations = null; - test._observedDeprecations = null; - test._oldSupress = moment$$1.suppressDeprecationWarnings; - moment$$1.suppressDeprecationWarnings = true; - test.expectedDeprecations = function () { - test._expectedDeprecations = arguments; - test._observedDeprecations = []; - }; - moment$$1.deprecationHandler = function (name, msg) { - var deprecationId = matchedDeprecation(name, msg, test._expectedDeprecations); - if (deprecationId === -1) { - throw new Error('Unexpected deprecation thrown name=' + - name + ' msg=' + msg); - } - test._observedDeprecations[deprecationId] = 1; - }; -} - -function teardownDeprecationHandler(test, moment$$1, scope) { - moment$$1.suppressDeprecationWarnings = test._oldSupress; - - if (test._expectedDeprecations != null) { - var missedDeprecations = []; - each(test._expectedDeprecations, function (deprecationPattern, id) { - if (test._observedDeprecations[id] !== 1) { - missedDeprecations.push(deprecationPattern); - } - }); - if (missedDeprecations.length !== 0) { - throw new Error('Expected deprecation warnings did not happen: ' + - missedDeprecations.join(' ')); - } - } -} - -function matchedDeprecation(name, msg, deprecations) { - if (deprecations == null) { - return -1; - } - for (var i = 0; i < deprecations.length; ++i) { - if (name != null && name === deprecations[i]) { - return i; - } - if (msg != null && msg.substring(0, deprecations[i].length) === deprecations[i]) { - return i; - } - } - return -1; -} - -/*global QUnit:false*/ - -var test = QUnit.test; - -var expect = QUnit.expect; - - - -function localeModule (name, lifecycle) { - QUnit.module('locale:' + name, { - setup : function () { - moment.locale(name); - moment.createFromInputFallback = function (config) { - throw new Error('input not handled by moment: ' + config._i); - }; - setupDeprecationHandler(test, moment, 'locale'); - if (lifecycle && lifecycle.setup) { - lifecycle.setup(); - } - }, - teardown : function () { - moment.locale('en'); - teardownDeprecationHandler(test, moment, 'locale'); - if (lifecycle && lifecycle.teardown) { - lifecycle.teardown(); - } - } - }); - defineCommonLocaleTests(name, -1, -1); -} - -localeModule('sk'); - -test('parse', function (assert) { - var tests = 'január jan._február feb._marec mar._apríl apr._máj máj_jún jún._júl júl._august aug._september sep._október okt._november nov._december dec.'.split('_'), i; - function equalTest(input, mmm, monthIndex) { - assert.equal(moment(input, mmm).month(), monthIndex, input + ' should be month ' + (monthIndex + 1)); - } - for (i = 0; i < 12; i++) { - tests[i] = tests[i].split(' '); - equalTest(tests[i][0], 'MMM', i); - equalTest(tests[i][1], 'MMM', i); - equalTest(tests[i][0], 'MMMM', i); - equalTest(tests[i][1], 'MMMM', i); - equalTest(tests[i][0].toLocaleLowerCase(), 'MMMM', i); - equalTest(tests[i][1].toLocaleLowerCase(), 'MMMM', i); - equalTest(tests[i][0].toLocaleUpperCase(), 'MMMM', i); - equalTest(tests[i][1].toLocaleUpperCase(), 'MMMM', i); - } -}); - -test('format', function (assert) { - var a = [ - ['dddd, MMMM Do YYYY, h:mm:ss', 'nedeľa, február 14. 2010, 3:25:50'], - ['ddd, h', 'ne, 3'], - ['M Mo MM MMMM MMM', '2 2. 02 február feb'], - ['YYYY YY', '2010 10'], - ['D Do DD', '14 14. 14'], - ['d do dddd ddd dd', '0 0. nedeľa ne ne'], - ['DDD DDDo DDDD', '45 45. 045'], - ['w wo ww', '6 6. 06'], - ['h hh', '3 03'], - ['H HH', '15 15'], - ['m mm', '25 25'], - ['s ss', '50 50'], - ['a A', 'pm PM'], - ['DDDo [deň v roku]', '45. deň v roku'], - ['LTS', '15:25:50'], - ['L', '14.02.2010'], - ['LL', '14. február 2010'], - ['LLL', '14. február 2010 15:25'], - ['LLLL', 'nedeľa 14. február 2010 15:25'], - ['l', '14.2.2010'], - ['ll', '14. feb 2010'], - ['lll', '14. feb 2010 15:25'], - ['llll', 'ne 14. feb 2010 15:25'] - ], - b = moment(new Date(2010, 1, 14, 15, 25, 50, 125)), - i; - for (i = 0; i < a.length; i++) { - assert.equal(b.format(a[i][0]), a[i][1], a[i][0] + ' ---> ' + a[i][1]); - } -}); - -test('format ordinal', function (assert) { - assert.equal(moment([2011, 0, 1]).format('DDDo'), '1.', '1.'); - assert.equal(moment([2011, 0, 2]).format('DDDo'), '2.', '2.'); - assert.equal(moment([2011, 0, 3]).format('DDDo'), '3.', '3.'); - assert.equal(moment([2011, 0, 4]).format('DDDo'), '4.', '4.'); - assert.equal(moment([2011, 0, 5]).format('DDDo'), '5.', '5.'); - assert.equal(moment([2011, 0, 6]).format('DDDo'), '6.', '6.'); - assert.equal(moment([2011, 0, 7]).format('DDDo'), '7.', '7.'); - assert.equal(moment([2011, 0, 8]).format('DDDo'), '8.', '8.'); - assert.equal(moment([2011, 0, 9]).format('DDDo'), '9.', '9.'); - assert.equal(moment([2011, 0, 10]).format('DDDo'), '10.', '10.'); - - assert.equal(moment([2011, 0, 11]).format('DDDo'), '11.', '11.'); - assert.equal(moment([2011, 0, 12]).format('DDDo'), '12.', '12.'); - assert.equal(moment([2011, 0, 13]).format('DDDo'), '13.', '13.'); - assert.equal(moment([2011, 0, 14]).format('DDDo'), '14.', '14.'); - assert.equal(moment([2011, 0, 15]).format('DDDo'), '15.', '15.'); - assert.equal(moment([2011, 0, 16]).format('DDDo'), '16.', '16.'); - assert.equal(moment([2011, 0, 17]).format('DDDo'), '17.', '17.'); - assert.equal(moment([2011, 0, 18]).format('DDDo'), '18.', '18.'); - assert.equal(moment([2011, 0, 19]).format('DDDo'), '19.', '19.'); - assert.equal(moment([2011, 0, 20]).format('DDDo'), '20.', '20.'); - - assert.equal(moment([2011, 0, 21]).format('DDDo'), '21.', '21.'); - assert.equal(moment([2011, 0, 22]).format('DDDo'), '22.', '22.'); - assert.equal(moment([2011, 0, 23]).format('DDDo'), '23.', '23.'); - assert.equal(moment([2011, 0, 24]).format('DDDo'), '24.', '24.'); - assert.equal(moment([2011, 0, 25]).format('DDDo'), '25.', '25.'); - assert.equal(moment([2011, 0, 26]).format('DDDo'), '26.', '26.'); - assert.equal(moment([2011, 0, 27]).format('DDDo'), '27.', '27.'); - assert.equal(moment([2011, 0, 28]).format('DDDo'), '28.', '28.'); - assert.equal(moment([2011, 0, 29]).format('DDDo'), '29.', '29.'); - assert.equal(moment([2011, 0, 30]).format('DDDo'), '30.', '30.'); - - assert.equal(moment([2011, 0, 31]).format('DDDo'), '31.', '31.'); -}); - -test('format month', function (assert) { - var expected = 'január jan_február feb_marec mar_apríl apr_máj máj_jún jún_júl júl_august aug_september sep_október okt_november nov_december dec'.split('_'), i; - for (i = 0; i < expected.length; i++) { - assert.equal(moment([2011, i, 1]).format('MMMM MMM'), expected[i], expected[i]); - } -}); - -test('format week', function (assert) { - var expected = 'nedeľa ne ne_pondelok po po_utorok ut ut_streda st st_štvrtok št št_piatok pi pi_sobota so so'.split('_'), i; - for (i = 0; i < expected.length; i++) { - assert.equal(moment([2011, 0, 2 + i]).format('dddd ddd dd'), expected[i], expected[i]); - } -}); - -test('from', function (assert) { - var start = moment([2007, 1, 28]); - assert.equal(start.from(moment([2007, 1, 28]).add({s: 44}), true), 'pár sekúnd', '44 seconds = a few seconds'); - assert.equal(start.from(moment([2007, 1, 28]).add({s: 45}), true), 'minúta', '45 seconds = a minute'); - assert.equal(start.from(moment([2007, 1, 28]).add({s: 89}), true), 'minúta', '89 seconds = a minute'); - assert.equal(start.from(moment([2007, 1, 28]).add({s: 90}), true), '2 minúty', '90 seconds = 2 minutes'); - assert.equal(start.from(moment([2007, 1, 28]).add({m: 44}), true), '44 minút', '44 minutes = 44 minutes'); - assert.equal(start.from(moment([2007, 1, 28]).add({m: 45}), true), 'hodina', '45 minutes = an hour'); - assert.equal(start.from(moment([2007, 1, 28]).add({m: 89}), true), 'hodina', '89 minutes = an hour'); - assert.equal(start.from(moment([2007, 1, 28]).add({m: 90}), true), '2 hodiny', '90 minutes = 2 hours'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 5}), true), '5 hodín', '5 hours = 5 hours'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 21}), true), '21 hodín', '21 hours = 21 hours'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 22}), true), 'deň', '22 hours = a day'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 35}), true), 'deň', '35 hours = a day'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 36}), true), '2 dni', '36 hours = 2 days'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 1}), true), 'deň', '1 day = a day'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 5}), true), '5 dní', '5 days = 5 days'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 25}), true), '25 dní', '25 days = 25 days'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 26}), true), 'mesiac', '26 days = a month'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 30}), true), 'mesiac', '30 days = a month'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 43}), true), 'mesiac', '43 days = a month'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 46}), true), '2 mesiace', '46 days = 2 months'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 74}), true), '2 mesiace', '75 days = 2 months'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 76}), true), '3 mesiace', '76 days = 3 months'); - assert.equal(start.from(moment([2007, 1, 28]).add({M: 1}), true), 'mesiac', '1 month = a month'); - assert.equal(start.from(moment([2007, 1, 28]).add({M: 5}), true), '5 mesiacov', '5 months = 5 months'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 345}), true), 'rok', '345 days = a year'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 548}), true), '2 roky', '548 days = 2 years'); - assert.equal(start.from(moment([2007, 1, 28]).add({y: 1}), true), 'rok', '1 year = a year'); - assert.equal(start.from(moment([2007, 1, 28]).add({y: 5}), true), '5 rokov', '5 years = 5 years'); -}); - -test('suffix', function (assert) { - assert.equal(moment(30000).from(0), 'za pár sekúnd', 'prefix'); - assert.equal(moment(0).from(30000), 'pred pár sekundami', 'suffix'); -}); - -test('now from now', function (assert) { - assert.equal(moment().fromNow(), 'pred pár sekundami', 'now from now should display as in the past'); -}); - -test('fromNow (future)', function (assert) { - assert.equal(moment().add({s: 30}).fromNow(), 'za pár sekúnd', 'in a few seconds'); - assert.equal(moment().add({m: 1}).fromNow(), 'za minútu', 'in a minute'); - assert.equal(moment().add({m: 3}).fromNow(), 'za 3 minúty', 'in 3 minutes'); - assert.equal(moment().add({m: 10}).fromNow(), 'za 10 minút', 'in 10 minutes'); - assert.equal(moment().add({h: 1}).fromNow(), 'za hodinu', 'in an hour'); - assert.equal(moment().add({h: 3}).fromNow(), 'za 3 hodiny', 'in 3 hours'); - assert.equal(moment().add({h: 10}).fromNow(), 'za 10 hodín', 'in 10 hours'); - assert.equal(moment().add({d: 1}).fromNow(), 'za deň', 'in a day'); - assert.equal(moment().add({d: 3}).fromNow(), 'za 3 dni', 'in 3 days'); - assert.equal(moment().add({d: 10}).fromNow(), 'za 10 dní', 'in 10 days'); - assert.equal(moment().add({M: 1}).fromNow(), 'za mesiac', 'in a month'); - assert.equal(moment().add({M: 3}).fromNow(), 'za 3 mesiace', 'in 3 months'); - assert.equal(moment().add({M: 10}).fromNow(), 'za 10 mesiacov', 'in 10 months'); - assert.equal(moment().add({y: 1}).fromNow(), 'za rok', 'in a year'); - assert.equal(moment().add({y: 3}).fromNow(), 'za 3 roky', 'in 3 years'); - assert.equal(moment().add({y: 10}).fromNow(), 'za 10 rokov', 'in 10 years'); -}); - -test('fromNow (past)', function (assert) { - assert.equal(moment().subtract({s: 30}).fromNow(), 'pred pár sekundami', 'a few seconds ago'); - assert.equal(moment().subtract({m: 1}).fromNow(), 'pred minútou', 'a minute ago'); - assert.equal(moment().subtract({m: 3}).fromNow(), 'pred 3 minútami', '3 minutes ago'); - assert.equal(moment().subtract({m: 10}).fromNow(), 'pred 10 minútami', '10 minutes ago'); - assert.equal(moment().subtract({h: 1}).fromNow(), 'pred hodinou', 'an hour ago'); - assert.equal(moment().subtract({h: 3}).fromNow(), 'pred 3 hodinami', '3 hours ago'); - assert.equal(moment().subtract({h: 10}).fromNow(), 'pred 10 hodinami', '10 hours ago'); - assert.equal(moment().subtract({d: 1}).fromNow(), 'pred dňom', 'a day ago'); - assert.equal(moment().subtract({d: 3}).fromNow(), 'pred 3 dňami', '3 days ago'); - assert.equal(moment().subtract({d: 10}).fromNow(), 'pred 10 dňami', '10 days ago'); - assert.equal(moment().subtract({M: 1}).fromNow(), 'pred mesiacom', 'a month ago'); - assert.equal(moment().subtract({M: 3}).fromNow(), 'pred 3 mesiacmi', '3 months ago'); - assert.equal(moment().subtract({M: 10}).fromNow(), 'pred 10 mesiacmi', '10 months ago'); - assert.equal(moment().subtract({y: 1}).fromNow(), 'pred rokom', 'a year ago'); - assert.equal(moment().subtract({y: 3}).fromNow(), 'pred 3 rokmi', '3 years ago'); - assert.equal(moment().subtract({y: 10}).fromNow(), 'pred 10 rokmi', '10 years ago'); -}); - -test('calendar day', function (assert) { - var a = moment().hours(12).minutes(0).seconds(0); - - assert.equal(moment(a).calendar(), 'dnes o 12:00', 'today at the same time'); - assert.equal(moment(a).add({m: 25}).calendar(), 'dnes o 12:25', 'Now plus 25 min'); - assert.equal(moment(a).add({h: 1}).calendar(), 'dnes o 13:00', 'Now plus 1 hour'); - assert.equal(moment(a).add({d: 1}).calendar(), 'zajtra o 12:00', 'tomorrow at the same time'); - assert.equal(moment(a).subtract({h: 1}).calendar(), 'dnes o 11:00', 'Now minus 1 hour'); - assert.equal(moment(a).subtract({d: 1}).calendar(), 'včera o 12:00', 'yesterday at the same time'); -}); - -test('calendar next week', function (assert) { - var i, m, nextDay; - for (i = 2; i < 7; i++) { - m = moment().add({d: i}); - nextDay = ''; - switch (m.day()) { - case 0: - nextDay = 'v nedeľu'; - break; - case 1: - nextDay = 'v pondelok'; - break; - case 2: - nextDay = 'v utorok'; - break; - case 3: - nextDay = 'v stredu'; - break; - case 4: - nextDay = 'vo štvrtok'; - break; - case 5: - nextDay = 'v piatok'; - break; - case 6: - nextDay = 'v sobotu'; - break; - } - assert.equal(m.calendar(), m.format('[' + nextDay + '] [o] LT'), 'Today + ' + i + ' days current time'); - m.hours(0).minutes(0).seconds(0).milliseconds(0); - assert.equal(m.calendar(), m.format('[' + nextDay + '] [o] LT'), 'Today + ' + i + ' days beginning of day'); - m.hours(23).minutes(59).seconds(59).milliseconds(999); - assert.equal(m.calendar(), m.format('[' + nextDay + '] [o] LT'), 'Today + ' + i + ' days end of day'); - } -}); - -test('calendar last week', function (assert) { - var i, m, lastDay; - for (i = 2; i < 7; i++) { - m = moment().subtract({d: i}); - lastDay = ''; - switch (m.day()) { - case 0: - lastDay = 'minulú nedeľu'; - break; - case 1: - lastDay = 'minulý pondelok'; - break; - case 2: - lastDay = 'minulý utorok'; - break; - case 3: - lastDay = 'minulú stredu'; - break; - case 4: - lastDay = 'minulý štvrtok'; - break; - case 5: - lastDay = 'minulý piatok'; - break; - case 6: - lastDay = 'minulú sobotu'; - break; - } - assert.equal(m.calendar(), m.format('[' + lastDay + '] [o] LT'), 'Today - ' + i + ' days current time'); - m.hours(0).minutes(0).seconds(0).milliseconds(0); - assert.equal(m.calendar(), m.format('[' + lastDay + '] [o] LT'), 'Today - ' + i + ' days beginning of day'); - m.hours(23).minutes(59).seconds(59).milliseconds(999); - assert.equal(m.calendar(), m.format('[' + lastDay + '] [o] LT'), 'Today - ' + i + ' days end of day'); - } -}); - -test('calendar all else', function (assert) { - var weeksAgo = moment().subtract({w: 1}), - weeksFromNow = moment().add({w: 1}); - - assert.equal(weeksAgo.calendar(), weeksAgo.format('L'), '1 week ago'); - assert.equal(weeksFromNow.calendar(), weeksFromNow.format('L'), 'in 1 week'); - - weeksAgo = moment().subtract({w: 2}); - weeksFromNow = moment().add({w: 2}); - - assert.equal(weeksAgo.calendar(), weeksAgo.format('L'), '2 weeks ago'); - assert.equal(weeksFromNow.calendar(), weeksFromNow.format('L'), 'in 2 weeks'); -}); - -test('humanize duration', function (assert) { - assert.equal(moment.duration(1, 'minutes').humanize(), 'minúta', 'a minute (future)'); - assert.equal(moment.duration(1, 'minutes').humanize(true), 'za minútu', 'in a minute'); - assert.equal(moment.duration(-1, 'minutes').humanize(), 'minúta', 'a minute (past)'); - assert.equal(moment.duration(-1, 'minutes').humanize(true), 'pred minútou', 'a minute ago'); -}); - -test('weeks year starting sunday formatted', function (assert) { - assert.equal(moment([2012, 0, 1]).format('w ww wo'), '52 52 52.', 'Jan 1 2012 should be week 52'); - assert.equal(moment([2012, 0, 2]).format('w ww wo'), '1 01 1.', 'Jan 2 2012 should be week 1'); - assert.equal(moment([2012, 0, 8]).format('w ww wo'), '1 01 1.', 'Jan 8 2012 should be week 1'); - assert.equal(moment([2012, 0, 9]).format('w ww wo'), '2 02 2.', 'Jan 9 2012 should be week 2'); - assert.equal(moment([2012, 0, 15]).format('w ww wo'), '2 02 2.', 'Jan 15 2012 should be week 2'); -}); - -}))); - - -;(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' - && typeof require === 'function' ? factory(require('../../moment')) : - typeof define === 'function' && define.amd ? define(['../../moment'], factory) : - factory(global.moment) -}(this, (function (moment) { 'use strict'; - -function each(array, callback) { - var i; - for (i = 0; i < array.length; i++) { - callback(array[i], i, array); - } -} - -function objectKeys(obj) { - if (Object.keys) { - return Object.keys(obj); - } else { - // IE8 - var res = [], i; - for (i in obj) { - if (obj.hasOwnProperty(i)) { - res.push(i); - } - } - return res; - } -} - -// Pick the first defined of two or three arguments. - -function defineCommonLocaleTests(locale, options) { - test('lenient day of month ordinal parsing', function (assert) { - var i, ordinalStr, testMoment; - for (i = 1; i <= 31; ++i) { - ordinalStr = moment([2014, 0, i]).format('YYYY MM Do'); - testMoment = moment(ordinalStr, 'YYYY MM Do'); - assert.equal(testMoment.year(), 2014, - 'lenient day of month ordinal parsing ' + i + ' year check'); - assert.equal(testMoment.month(), 0, - 'lenient day of month ordinal parsing ' + i + ' month check'); - assert.equal(testMoment.date(), i, - 'lenient day of month ordinal parsing ' + i + ' date check'); - } - }); - - test('lenient day of month ordinal parsing of number', function (assert) { - var i, testMoment; - for (i = 1; i <= 31; ++i) { - testMoment = moment('2014 01 ' + i, 'YYYY MM Do'); - assert.equal(testMoment.year(), 2014, - 'lenient day of month ordinal parsing of number ' + i + ' year check'); - assert.equal(testMoment.month(), 0, - 'lenient day of month ordinal parsing of number ' + i + ' month check'); - assert.equal(testMoment.date(), i, - 'lenient day of month ordinal parsing of number ' + i + ' date check'); - } - }); - - test('strict day of month ordinal parsing', function (assert) { - var i, ordinalStr, testMoment; - for (i = 1; i <= 31; ++i) { - ordinalStr = moment([2014, 0, i]).format('YYYY MM Do'); - testMoment = moment(ordinalStr, 'YYYY MM Do', true); - assert.ok(testMoment.isValid(), 'strict day of month ordinal parsing ' + i); - } - }); - - test('meridiem invariant', function (assert) { - var h, m, t1, t2; - for (h = 0; h < 24; ++h) { - for (m = 0; m < 60; m += 15) { - t1 = moment.utc([2000, 0, 1, h, m]); - t2 = moment.utc(t1.format('A h:mm'), 'A h:mm'); - assert.equal(t2.format('HH:mm'), t1.format('HH:mm'), - 'meridiem at ' + t1.format('HH:mm')); - } - } - }); - - test('date format correctness', function (assert) { - var data, tokens; - data = moment.localeData()._longDateFormat; - tokens = objectKeys(data); - each(tokens, function (srchToken) { - // Check each format string to make sure it does not contain any - // tokens that need to be expanded. - each(tokens, function (baseToken) { - // strip escaped sequences - var format = data[baseToken].replace(/(\[[^\]]*\])/g, ''); - assert.equal(false, !!~format.indexOf(srchToken), - 'contains ' + srchToken + ' in ' + baseToken); - }); - }); - }); - - test('month parsing correctness', function (assert) { - var i, m; - - if (locale === 'tr') { - // I can't fix it :( - expect(0); - return; - } - function tester(format) { - var r; - r = moment(m.format(format), format); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format); - r = moment(m.format(format).toLocaleUpperCase(), format); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' upper'); - r = moment(m.format(format).toLocaleLowerCase(), format); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' lower'); - - r = moment(m.format(format), format, true); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' strict'); - r = moment(m.format(format).toLocaleUpperCase(), format, true); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' upper strict'); - r = moment(m.format(format).toLocaleLowerCase(), format, true); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' lower strict'); - } - - for (i = 0; i < 12; ++i) { - m = moment([2015, i, 15, 18]); - tester('MMM'); - tester('MMM.'); - tester('MMMM'); - tester('MMMM.'); - } - }); - - test('weekday parsing correctness', function (assert) { - var i, m; - - if (locale === 'tr' || locale === 'az' || locale === 'ro') { - // tr, az: There is a lower-case letter (ı), that converted to - // upper then lower changes to i - // ro: there is the letter ț which behaves weird under IE8 - expect(0); - return; - } - function tester(format) { - var r, baseMsg = 'weekday ' + m.weekday() + ' fmt ' + format + ' ' + m.toISOString(); - r = moment(m.format(format), format); - assert.equal(r.weekday(), m.weekday(), baseMsg); - r = moment(m.format(format).toLocaleUpperCase(), format); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' upper'); - r = moment(m.format(format).toLocaleLowerCase(), format); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' lower'); - - r = moment(m.format(format), format, true); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' strict'); - r = moment(m.format(format).toLocaleUpperCase(), format, true); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' upper strict'); - r = moment(m.format(format).toLocaleLowerCase(), format, true); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' lower strict'); - } - - for (i = 0; i < 7; ++i) { - m = moment.utc([2015, 0, i + 1, 18]); - tester('dd'); - tester('ddd'); - tester('dddd'); - } - }); - - test('valid localeData', function (assert) { - assert.equal(moment().localeData().months().length, 12, 'months should return 12 months'); - assert.equal(moment().localeData().monthsShort().length, 12, 'monthsShort should return 12 months'); - assert.equal(moment().localeData().weekdays().length, 7, 'weekdays should return 7 days'); - assert.equal(moment().localeData().weekdaysShort().length, 7, 'weekdaysShort should return 7 days'); - assert.equal(moment().localeData().weekdaysMin().length, 7, 'monthsShort should return 7 days'); - }); -} - -function setupDeprecationHandler(test, moment$$1, scope) { - test._expectedDeprecations = null; - test._observedDeprecations = null; - test._oldSupress = moment$$1.suppressDeprecationWarnings; - moment$$1.suppressDeprecationWarnings = true; - test.expectedDeprecations = function () { - test._expectedDeprecations = arguments; - test._observedDeprecations = []; - }; - moment$$1.deprecationHandler = function (name, msg) { - var deprecationId = matchedDeprecation(name, msg, test._expectedDeprecations); - if (deprecationId === -1) { - throw new Error('Unexpected deprecation thrown name=' + - name + ' msg=' + msg); - } - test._observedDeprecations[deprecationId] = 1; - }; -} - -function teardownDeprecationHandler(test, moment$$1, scope) { - moment$$1.suppressDeprecationWarnings = test._oldSupress; - - if (test._expectedDeprecations != null) { - var missedDeprecations = []; - each(test._expectedDeprecations, function (deprecationPattern, id) { - if (test._observedDeprecations[id] !== 1) { - missedDeprecations.push(deprecationPattern); - } - }); - if (missedDeprecations.length !== 0) { - throw new Error('Expected deprecation warnings did not happen: ' + - missedDeprecations.join(' ')); - } - } -} - -function matchedDeprecation(name, msg, deprecations) { - if (deprecations == null) { - return -1; - } - for (var i = 0; i < deprecations.length; ++i) { - if (name != null && name === deprecations[i]) { - return i; - } - if (msg != null && msg.substring(0, deprecations[i].length) === deprecations[i]) { - return i; - } - } - return -1; -} - -/*global QUnit:false*/ - -var test = QUnit.test; - -var expect = QUnit.expect; - - - -function localeModule (name, lifecycle) { - QUnit.module('locale:' + name, { - setup : function () { - moment.locale(name); - moment.createFromInputFallback = function (config) { - throw new Error('input not handled by moment: ' + config._i); - }; - setupDeprecationHandler(test, moment, 'locale'); - if (lifecycle && lifecycle.setup) { - lifecycle.setup(); - } - }, - teardown : function () { - moment.locale('en'); - teardownDeprecationHandler(test, moment, 'locale'); - if (lifecycle && lifecycle.teardown) { - lifecycle.teardown(); - } - } - }); - defineCommonLocaleTests(name, -1, -1); -} - -localeModule('sl'); - -test('parse', function (assert) { - var tests = 'januar jan._februar feb._marec mar._april apr._maj maj_junij jun._julij jul._avgust avg._september sep._oktober okt._november nov._december dec.'.split('_'), i; - function equalTest(input, mmm, i) { - assert.equal(moment(input, mmm).month(), i, input + ' should be month ' + (i + 1)); - } - for (i = 0; i < 12; i++) { - tests[i] = tests[i].split(' '); - equalTest(tests[i][0], 'MMM', i); - equalTest(tests[i][1], 'MMM', i); - equalTest(tests[i][0], 'MMMM', i); - equalTest(tests[i][1], 'MMMM', i); - equalTest(tests[i][0].toLocaleLowerCase(), 'MMMM', i); - equalTest(tests[i][1].toLocaleLowerCase(), 'MMMM', i); - equalTest(tests[i][0].toLocaleUpperCase(), 'MMMM', i); - equalTest(tests[i][1].toLocaleUpperCase(), 'MMMM', i); - } -}); - -test('format', function (assert) { - var a = [ - ['dddd, Do MMMM YYYY, h:mm:ss a', 'nedelja, 14. februar 2010, 3:25:50 pm'], - ['ddd, hA', 'ned., 3PM'], - ['M Mo MM MMMM MMM', '2 2. 02 februar feb.'], - ['YYYY YY', '2010 10'], - ['D Do DD', '14 14. 14'], - ['d do dddd ddd dd', '0 0. nedelja ned. ne'], - ['DDD DDDo DDDD', '45 45. 045'], - ['w wo ww', '7 7. 07'], - ['h hh', '3 03'], - ['H HH', '15 15'], - ['m mm', '25 25'], - ['s ss', '50 50'], - ['a A', 'pm PM'], - ['[the] DDDo [day of the year]', 'the 45. day of the year'], - ['LTS', '15:25:50'], - ['L', '14.02.2010'], - ['LL', '14. februar 2010'], - ['LLL', '14. februar 2010 15:25'], - ['LLLL', 'nedelja, 14. februar 2010 15:25'], - ['l', '14.2.2010'], - ['ll', '14. feb. 2010'], - ['lll', '14. feb. 2010 15:25'], - ['llll', 'ned., 14. feb. 2010 15:25'] - ], - b = moment(new Date(2010, 1, 14, 15, 25, 50, 125)), - i; - for (i = 0; i < a.length; i++) { - assert.equal(b.format(a[i][0]), a[i][1], a[i][0] + ' ---> ' + a[i][1]); - } -}); - -test('format ordinal', function (assert) { - assert.equal(moment([2011, 0, 1]).format('DDDo'), '1.', '1.'); - assert.equal(moment([2011, 0, 2]).format('DDDo'), '2.', '2.'); - assert.equal(moment([2011, 0, 3]).format('DDDo'), '3.', '3.'); - assert.equal(moment([2011, 0, 4]).format('DDDo'), '4.', '4.'); - assert.equal(moment([2011, 0, 5]).format('DDDo'), '5.', '5.'); - assert.equal(moment([2011, 0, 6]).format('DDDo'), '6.', '6.'); - assert.equal(moment([2011, 0, 7]).format('DDDo'), '7.', '7.'); - assert.equal(moment([2011, 0, 8]).format('DDDo'), '8.', '8.'); - assert.equal(moment([2011, 0, 9]).format('DDDo'), '9.', '9.'); - assert.equal(moment([2011, 0, 10]).format('DDDo'), '10.', '10.'); - - assert.equal(moment([2011, 0, 11]).format('DDDo'), '11.', '11.'); - assert.equal(moment([2011, 0, 12]).format('DDDo'), '12.', '12.'); - assert.equal(moment([2011, 0, 13]).format('DDDo'), '13.', '13.'); - assert.equal(moment([2011, 0, 14]).format('DDDo'), '14.', '14.'); - assert.equal(moment([2011, 0, 15]).format('DDDo'), '15.', '15.'); - assert.equal(moment([2011, 0, 16]).format('DDDo'), '16.', '16.'); - assert.equal(moment([2011, 0, 17]).format('DDDo'), '17.', '17.'); - assert.equal(moment([2011, 0, 18]).format('DDDo'), '18.', '18.'); - assert.equal(moment([2011, 0, 19]).format('DDDo'), '19.', '19.'); - assert.equal(moment([2011, 0, 20]).format('DDDo'), '20.', '20.'); - - assert.equal(moment([2011, 0, 21]).format('DDDo'), '21.', '21.'); - assert.equal(moment([2011, 0, 22]).format('DDDo'), '22.', '22.'); - assert.equal(moment([2011, 0, 23]).format('DDDo'), '23.', '23.'); - assert.equal(moment([2011, 0, 24]).format('DDDo'), '24.', '24.'); - assert.equal(moment([2011, 0, 25]).format('DDDo'), '25.', '25.'); - assert.equal(moment([2011, 0, 26]).format('DDDo'), '26.', '26.'); - assert.equal(moment([2011, 0, 27]).format('DDDo'), '27.', '27.'); - assert.equal(moment([2011, 0, 28]).format('DDDo'), '28.', '28.'); - assert.equal(moment([2011, 0, 29]).format('DDDo'), '29.', '29.'); - assert.equal(moment([2011, 0, 30]).format('DDDo'), '30.', '30.'); - - assert.equal(moment([2011, 0, 31]).format('DDDo'), '31.', '31.'); -}); - -test('format month', function (assert) { - var expected = 'januar jan._februar feb._marec mar._april apr._maj maj._junij jun._julij jul._avgust avg._september sep._oktober okt._november nov._december dec.'.split('_'), i; - for (i = 0; i < expected.length; i++) { - assert.equal(moment([2011, i, 1]).format('MMMM MMM'), expected[i], expected[i]); - } -}); - -test('format week', function (assert) { - var expected = 'nedelja ned. ne_ponedeljek pon. po_torek tor. to_sreda sre. sr_četrtek čet. če_petek pet. pe_sobota sob. so'.split('_'), i; - for (i = 0; i < expected.length; i++) { - assert.equal(moment([2011, 0, 2 + i]).format('dddd ddd dd'), expected[i], expected[i]); - } -}); - -test('from', function (assert) { - var start = moment([2007, 1, 28]); - assert.equal(start.from(moment([2007, 1, 28]).add({s: 44}), true), 'nekaj sekund', '44 seconds = a few seconds'); - assert.equal(start.from(moment([2007, 1, 28]).add({s: 45}), true), 'ena minuta', '45 seconds = a minute'); - assert.equal(start.from(moment([2007, 1, 28]).add({s: 89}), true), 'ena minuta', '89 seconds = a minute'); - assert.equal(start.from(moment([2007, 1, 28]).add({s: 90}), true), '2 minuti', '90 seconds = 2 minutes'); - assert.equal(start.from(moment([2007, 1, 28]).add({m: 44}), true), '44 minut', '44 minutes = 44 minutes'); - assert.equal(start.from(moment([2007, 1, 28]).add({m: 45}), true), 'ena ura', '45 minutes = an hour'); - assert.equal(start.from(moment([2007, 1, 28]).add({m: 89}), true), 'ena ura', '89 minutes = an hour'); - assert.equal(start.from(moment([2007, 1, 28]).add({m: 90}), true), '2 uri', '90 minutes = 2 hours'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 5}), true), '5 ur', '5 hours = 5 hours'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 21}), true), '21 ur', '21 hours = 21 hours'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 22}), true), 'en dan', '22 hours = a day'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 35}), true), 'en dan', '35 hours = a day'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 36}), true), '2 dni', '36 hours = 2 days'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 1}), true), 'en dan', '1 day = a day'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 5}), true), '5 dni', '5 days = 5 days'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 25}), true), '25 dni', '25 days = 25 days'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 26}), true), 'en mesec', '26 days = a month'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 30}), true), 'en mesec', '30 days = a month'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 43}), true), 'en mesec', '43 days = a month'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 46}), true), '2 meseca', '46 days = 2 months'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 74}), true), '2 meseca', '75 days = 2 months'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 76}), true), '3 mesece', '76 days = 3 months'); - assert.equal(start.from(moment([2007, 1, 28]).add({M: 1}), true), 'en mesec', '1 month = a month'); - assert.equal(start.from(moment([2007, 1, 28]).add({M: 5}), true), '5 mesecev', '5 months = 5 months'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 345}), true), 'eno leto', '345 days = a year'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 548}), true), '2 leti', '548 days = 2 years'); - assert.equal(start.from(moment([2007, 1, 28]).add({y: 1}), true), 'eno leto', '1 year = a year'); - assert.equal(start.from(moment([2007, 1, 28]).add({y: 5}), true), '5 let', '5 years = 5 years'); - - assert.equal(start.from(moment([2007, 1, 28]).add({m: 1}), true), 'ena minuta', 'a minute'); - assert.equal(start.from(moment([2007, 1, 28]).add({m: 2}), true), '2 minuti', '2 minutes'); - assert.equal(start.from(moment([2007, 1, 28]).add({m: 3}), true), '3 minute', '3 minutes'); - assert.equal(start.from(moment([2007, 1, 28]).add({m: 4}), true), '4 minute', '4 minutes'); - assert.equal(start.from(moment([2007, 1, 28]).add({m: 5}), true), '5 minut', '5 minutes'); - - assert.equal(start.from(moment([2007, 1, 28]).add({h: 1}), true), 'ena ura', 'an hour'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 2}), true), '2 uri', '2 hours'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 3}), true), '3 ure', '3 hours'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 4}), true), '4 ure', '4 hours'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 5}), true), '5 ur', '5 hours'); - - assert.equal(start.from(moment([2007, 1, 28]).add({d: 1}), true), 'en dan', 'a day'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 2}), true), '2 dni', '2 days'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 3}), true), '3 dni', '3 days'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 4}), true), '4 dni', '4 days'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 5}), true), '5 dni', '5 days'); - - assert.equal(start.from(moment([2007, 1, 28]).add({M: 1}), true), 'en mesec', 'a month'); - assert.equal(start.from(moment([2007, 1, 28]).add({M: 2}), true), '2 meseca', '2 months'); - assert.equal(start.from(moment([2007, 1, 28]).add({M: 3}), true), '3 mesece', '3 months'); - assert.equal(start.from(moment([2007, 1, 28]).add({M: 4}), true), '4 mesece', '4 months'); - assert.equal(start.from(moment([2007, 1, 28]).add({M: 5}), true), '5 mesecev', '5 months'); - - assert.equal(start.from(moment([2007, 1, 28]).add({y: 1}), true), 'eno leto', 'a year'); - assert.equal(start.from(moment([2007, 1, 28]).add({y: 2}), true), '2 leti', '2 years'); - assert.equal(start.from(moment([2007, 1, 28]).add({y: 3}), true), '3 leta', '3 years'); - assert.equal(start.from(moment([2007, 1, 28]).add({y: 4}), true), '4 leta', '4 years'); - assert.equal(start.from(moment([2007, 1, 28]).add({y: 5}), true), '5 let', '5 years'); -}); - -test('suffix', function (assert) { - assert.equal(moment(30000).from(0), 'čez nekaj sekund', 'prefix'); - assert.equal(moment(0).from(30000), 'pred nekaj sekundami', 'suffix'); -}); - -test('now from now', function (assert) { - assert.equal(moment().fromNow(), 'pred nekaj sekundami', 'now from now should display as in the past'); -}); - -test('fromNow (future)', function (assert) { - assert.equal(moment().add({s: 30}).fromNow(), 'čez nekaj sekund', 'in a few seconds'); - assert.equal(moment().add({m: 1}).fromNow(), 'čez eno minuto', 'in a minute'); - assert.equal(moment().add({m: 2}).fromNow(), 'čez 2 minuti', 'in 2 minutes'); - assert.equal(moment().add({m: 3}).fromNow(), 'čez 3 minute', 'in 3 minutes'); - assert.equal(moment().add({m: 4}).fromNow(), 'čez 4 minute', 'in 4 minutes'); - assert.equal(moment().add({m: 5}).fromNow(), 'čez 5 minut', 'in 5 minutes'); - - assert.equal(moment().add({h: 1}).fromNow(), 'čez eno uro', 'in an hour'); - assert.equal(moment().add({h: 2}).fromNow(), 'čez 2 uri', 'in 2 hours'); - assert.equal(moment().add({h: 3}).fromNow(), 'čez 3 ure', 'in 3 hours'); - assert.equal(moment().add({h: 4}).fromNow(), 'čez 4 ure', 'in 4 hours'); - assert.equal(moment().add({h: 5}).fromNow(), 'čez 5 ur', 'in 5 hours'); - - assert.equal(moment().add({d: 1}).fromNow(), 'čez en dan', 'in a day'); - assert.equal(moment().add({d: 2}).fromNow(), 'čez 2 dni', 'in 2 days'); - assert.equal(moment().add({d: 3}).fromNow(), 'čez 3 dni', 'in 3 days'); - assert.equal(moment().add({d: 4}).fromNow(), 'čez 4 dni', 'in 4 days'); - assert.equal(moment().add({d: 5}).fromNow(), 'čez 5 dni', 'in 5 days'); - - assert.equal(moment().add({M: 1}).fromNow(), 'čez en mesec', 'in a month'); - assert.equal(moment().add({M: 2}).fromNow(), 'čez 2 meseca', 'in 2 months'); - assert.equal(moment().add({M: 3}).fromNow(), 'čez 3 mesece', 'in 3 months'); - assert.equal(moment().add({M: 4}).fromNow(), 'čez 4 mesece', 'in 4 months'); - assert.equal(moment().add({M: 5}).fromNow(), 'čez 5 mesecev', 'in 5 months'); - - assert.equal(moment().add({y: 1}).fromNow(), 'čez eno leto', 'in a year'); - assert.equal(moment().add({y: 2}).fromNow(), 'čez 2 leti', 'in 2 years'); - assert.equal(moment().add({y: 3}).fromNow(), 'čez 3 leta', 'in 3 years'); - assert.equal(moment().add({y: 4}).fromNow(), 'čez 4 leta', 'in 4 years'); - assert.equal(moment().add({y: 5}).fromNow(), 'čez 5 let', 'in 5 years'); - - assert.equal(moment().subtract({s: 30}).fromNow(), 'pred nekaj sekundami', 'a few seconds ago'); - - assert.equal(moment().subtract({m: 1}).fromNow(), 'pred eno minuto', 'a minute ago'); - assert.equal(moment().subtract({m: 2}).fromNow(), 'pred 2 minutama', '2 minutes ago'); - assert.equal(moment().subtract({m: 3}).fromNow(), 'pred 3 minutami', '3 minutes ago'); - assert.equal(moment().subtract({m: 4}).fromNow(), 'pred 4 minutami', '4 minutes ago'); - assert.equal(moment().subtract({m: 5}).fromNow(), 'pred 5 minutami', '5 minutes ago'); - - assert.equal(moment().subtract({h: 1}).fromNow(), 'pred eno uro', 'an hour ago'); - assert.equal(moment().subtract({h: 2}).fromNow(), 'pred 2 urama', '2 hours ago'); - assert.equal(moment().subtract({h: 3}).fromNow(), 'pred 3 urami', '3 hours ago'); - assert.equal(moment().subtract({h: 4}).fromNow(), 'pred 4 urami', '4 hours ago'); - assert.equal(moment().subtract({h: 5}).fromNow(), 'pred 5 urami', '5 hours ago'); - - assert.equal(moment().subtract({d: 1}).fromNow(), 'pred enim dnem', 'a day ago'); - assert.equal(moment().subtract({d: 2}).fromNow(), 'pred 2 dnevoma', '2 days ago'); - assert.equal(moment().subtract({d: 3}).fromNow(), 'pred 3 dnevi', '3 days ago'); - assert.equal(moment().subtract({d: 4}).fromNow(), 'pred 4 dnevi', '4 days ago'); - assert.equal(moment().subtract({d: 5}).fromNow(), 'pred 5 dnevi', '5 days ago'); - - assert.equal(moment().subtract({M: 1}).fromNow(), 'pred enim mesecem', 'a month ago'); - assert.equal(moment().subtract({M: 2}).fromNow(), 'pred 2 mesecema', '2 months ago'); - assert.equal(moment().subtract({M: 3}).fromNow(), 'pred 3 meseci', '3 months ago'); - assert.equal(moment().subtract({M: 4}).fromNow(), 'pred 4 meseci', '4 months ago'); - assert.equal(moment().subtract({M: 5}).fromNow(), 'pred 5 meseci', '5 months ago'); - - assert.equal(moment().subtract({y: 1}).fromNow(), 'pred enim letom', 'a year ago'); - assert.equal(moment().subtract({y: 2}).fromNow(), 'pred 2 letoma', '2 years ago'); - assert.equal(moment().subtract({y: 3}).fromNow(), 'pred 3 leti', '3 years ago'); - assert.equal(moment().subtract({y: 4}).fromNow(), 'pred 4 leti', '4 years ago'); - assert.equal(moment().subtract({y: 5}).fromNow(), 'pred 5 leti', '5 years ago'); -}); - -test('calendar day', function (assert) { - var a = moment().hours(12).minutes(0).seconds(0); - - assert.equal(moment(a).calendar(), 'danes ob 12:00', 'today at the same time'); - assert.equal(moment(a).add({m: 25}).calendar(), 'danes ob 12:25', 'Now plus 25 min'); - assert.equal(moment(a).add({h: 1}).calendar(), 'danes ob 13:00', 'Now plus 1 hour'); - assert.equal(moment(a).add({d: 1}).calendar(), 'jutri ob 12:00', 'tomorrow at the same time'); - assert.equal(moment(a).subtract({h: 1}).calendar(), 'danes ob 11:00', 'Now minus 1 hour'); - assert.equal(moment(a).subtract({d: 1}).calendar(), 'včeraj ob 12:00', 'yesterday at the same time'); -}); - -test('calendar next week', function (assert) { - var i, m; - - function makeFormat(d) { - switch (d.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'; - } - } - - for (i = 2; i < 7; i++) { - m = moment().add({d: i}); - assert.equal(m.calendar(), m.format(makeFormat(m)), 'Today + ' + i + ' days current time'); - m.hours(0).minutes(0).seconds(0).milliseconds(0); - assert.equal(m.calendar(), m.format(makeFormat(m)), 'Today + ' + i + ' days beginning of day'); - m.hours(23).minutes(59).seconds(59).milliseconds(999); - assert.equal(m.calendar(), m.format(makeFormat(m)), 'Today + ' + i + ' days end of day'); - } -}); - -test('calendar last week', function (assert) { - var i, m; - - function makeFormat(d) { - switch (d.day()) { - case 0: - return '[prejšnjo] [nedeljo] [ob] LT'; - case 3: - return '[prejšnjo] [sredo] [ob] LT'; - case 6: - return '[prejšnjo] [soboto] [ob] LT'; - case 1: - case 2: - case 4: - case 5: - return '[prejšnji] dddd [ob] LT'; - } - } - - for (i = 2; i < 7; i++) { - m = moment().subtract({d: i}); - assert.equal(m.calendar(), m.format(makeFormat(m)), 'Today - ' + i + ' days current time'); - m.hours(0).minutes(0).seconds(0).milliseconds(0); - assert.equal(m.calendar(), m.format(makeFormat(m)), 'Today - ' + i + ' days beginning of day'); - m.hours(23).minutes(59).seconds(59).milliseconds(999); - assert.equal(m.calendar(), m.format(makeFormat(m)), 'Today - ' + i + ' days end of day'); - } -}); - -test('calendar all else', function (assert) { - var weeksAgo = moment().subtract({w: 1}), - weeksFromNow = moment().add({w: 1}); - - assert.equal(weeksAgo.calendar(), weeksAgo.format('L'), '1 week ago'); - assert.equal(weeksFromNow.calendar(), weeksFromNow.format('L'), 'in 1 week'); - - weeksAgo = moment().subtract({w: 2}); - weeksFromNow = moment().add({w: 2}); - - assert.equal(weeksAgo.calendar(), weeksAgo.format('L'), '2 weeks ago'); - assert.equal(weeksFromNow.calendar(), weeksFromNow.format('L'), 'in 2 weeks'); -}); - -test('weeks year starting sunday formatted', function (assert) { - assert.equal(moment([2011, 11, 26]).format('w ww wo'), '1 01 1.', 'Dec 26 2011 should be week 1'); - assert.equal(moment([2012, 0, 1]).format('w ww wo'), '1 01 1.', 'Jan 1 2012 should be week 1'); - assert.equal(moment([2012, 0, 2]).format('w ww wo'), '2 02 2.', 'Jan 2 2012 should be week 2'); - assert.equal(moment([2012, 0, 8]).format('w ww wo'), '2 02 2.', 'Jan 8 2012 should be week 2'); - assert.equal(moment([2012, 0, 9]).format('w ww wo'), '3 03 3.', 'Jan 9 2012 should be week 3'); -}); - -}))); - - -;(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' - && typeof require === 'function' ? factory(require('../../moment')) : - typeof define === 'function' && define.amd ? define(['../../moment'], factory) : - factory(global.moment) -}(this, (function (moment) { 'use strict'; - -function each(array, callback) { - var i; - for (i = 0; i < array.length; i++) { - callback(array[i], i, array); - } -} - -function objectKeys(obj) { - if (Object.keys) { - return Object.keys(obj); - } else { - // IE8 - var res = [], i; - for (i in obj) { - if (obj.hasOwnProperty(i)) { - res.push(i); - } - } - return res; - } -} - -// Pick the first defined of two or three arguments. - -function defineCommonLocaleTests(locale, options) { - test('lenient day of month ordinal parsing', function (assert) { - var i, ordinalStr, testMoment; - for (i = 1; i <= 31; ++i) { - ordinalStr = moment([2014, 0, i]).format('YYYY MM Do'); - testMoment = moment(ordinalStr, 'YYYY MM Do'); - assert.equal(testMoment.year(), 2014, - 'lenient day of month ordinal parsing ' + i + ' year check'); - assert.equal(testMoment.month(), 0, - 'lenient day of month ordinal parsing ' + i + ' month check'); - assert.equal(testMoment.date(), i, - 'lenient day of month ordinal parsing ' + i + ' date check'); - } - }); - - test('lenient day of month ordinal parsing of number', function (assert) { - var i, testMoment; - for (i = 1; i <= 31; ++i) { - testMoment = moment('2014 01 ' + i, 'YYYY MM Do'); - assert.equal(testMoment.year(), 2014, - 'lenient day of month ordinal parsing of number ' + i + ' year check'); - assert.equal(testMoment.month(), 0, - 'lenient day of month ordinal parsing of number ' + i + ' month check'); - assert.equal(testMoment.date(), i, - 'lenient day of month ordinal parsing of number ' + i + ' date check'); - } - }); - - test('strict day of month ordinal parsing', function (assert) { - var i, ordinalStr, testMoment; - for (i = 1; i <= 31; ++i) { - ordinalStr = moment([2014, 0, i]).format('YYYY MM Do'); - testMoment = moment(ordinalStr, 'YYYY MM Do', true); - assert.ok(testMoment.isValid(), 'strict day of month ordinal parsing ' + i); - } - }); - - test('meridiem invariant', function (assert) { - var h, m, t1, t2; - for (h = 0; h < 24; ++h) { - for (m = 0; m < 60; m += 15) { - t1 = moment.utc([2000, 0, 1, h, m]); - t2 = moment.utc(t1.format('A h:mm'), 'A h:mm'); - assert.equal(t2.format('HH:mm'), t1.format('HH:mm'), - 'meridiem at ' + t1.format('HH:mm')); - } - } - }); - - test('date format correctness', function (assert) { - var data, tokens; - data = moment.localeData()._longDateFormat; - tokens = objectKeys(data); - each(tokens, function (srchToken) { - // Check each format string to make sure it does not contain any - // tokens that need to be expanded. - each(tokens, function (baseToken) { - // strip escaped sequences - var format = data[baseToken].replace(/(\[[^\]]*\])/g, ''); - assert.equal(false, !!~format.indexOf(srchToken), - 'contains ' + srchToken + ' in ' + baseToken); - }); - }); - }); - - test('month parsing correctness', function (assert) { - var i, m; - - if (locale === 'tr') { - // I can't fix it :( - expect(0); - return; - } - function tester(format) { - var r; - r = moment(m.format(format), format); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format); - r = moment(m.format(format).toLocaleUpperCase(), format); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' upper'); - r = moment(m.format(format).toLocaleLowerCase(), format); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' lower'); - - r = moment(m.format(format), format, true); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' strict'); - r = moment(m.format(format).toLocaleUpperCase(), format, true); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' upper strict'); - r = moment(m.format(format).toLocaleLowerCase(), format, true); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' lower strict'); - } - - for (i = 0; i < 12; ++i) { - m = moment([2015, i, 15, 18]); - tester('MMM'); - tester('MMM.'); - tester('MMMM'); - tester('MMMM.'); - } - }); - - test('weekday parsing correctness', function (assert) { - var i, m; - - if (locale === 'tr' || locale === 'az' || locale === 'ro') { - // tr, az: There is a lower-case letter (ı), that converted to - // upper then lower changes to i - // ro: there is the letter ț which behaves weird under IE8 - expect(0); - return; - } - function tester(format) { - var r, baseMsg = 'weekday ' + m.weekday() + ' fmt ' + format + ' ' + m.toISOString(); - r = moment(m.format(format), format); - assert.equal(r.weekday(), m.weekday(), baseMsg); - r = moment(m.format(format).toLocaleUpperCase(), format); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' upper'); - r = moment(m.format(format).toLocaleLowerCase(), format); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' lower'); - - r = moment(m.format(format), format, true); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' strict'); - r = moment(m.format(format).toLocaleUpperCase(), format, true); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' upper strict'); - r = moment(m.format(format).toLocaleLowerCase(), format, true); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' lower strict'); - } - - for (i = 0; i < 7; ++i) { - m = moment.utc([2015, 0, i + 1, 18]); - tester('dd'); - tester('ddd'); - tester('dddd'); - } - }); - - test('valid localeData', function (assert) { - assert.equal(moment().localeData().months().length, 12, 'months should return 12 months'); - assert.equal(moment().localeData().monthsShort().length, 12, 'monthsShort should return 12 months'); - assert.equal(moment().localeData().weekdays().length, 7, 'weekdays should return 7 days'); - assert.equal(moment().localeData().weekdaysShort().length, 7, 'weekdaysShort should return 7 days'); - assert.equal(moment().localeData().weekdaysMin().length, 7, 'monthsShort should return 7 days'); - }); -} - -function setupDeprecationHandler(test, moment$$1, scope) { - test._expectedDeprecations = null; - test._observedDeprecations = null; - test._oldSupress = moment$$1.suppressDeprecationWarnings; - moment$$1.suppressDeprecationWarnings = true; - test.expectedDeprecations = function () { - test._expectedDeprecations = arguments; - test._observedDeprecations = []; - }; - moment$$1.deprecationHandler = function (name, msg) { - var deprecationId = matchedDeprecation(name, msg, test._expectedDeprecations); - if (deprecationId === -1) { - throw new Error('Unexpected deprecation thrown name=' + - name + ' msg=' + msg); - } - test._observedDeprecations[deprecationId] = 1; - }; -} - -function teardownDeprecationHandler(test, moment$$1, scope) { - moment$$1.suppressDeprecationWarnings = test._oldSupress; - - if (test._expectedDeprecations != null) { - var missedDeprecations = []; - each(test._expectedDeprecations, function (deprecationPattern, id) { - if (test._observedDeprecations[id] !== 1) { - missedDeprecations.push(deprecationPattern); - } - }); - if (missedDeprecations.length !== 0) { - throw new Error('Expected deprecation warnings did not happen: ' + - missedDeprecations.join(' ')); - } - } -} - -function matchedDeprecation(name, msg, deprecations) { - if (deprecations == null) { - return -1; - } - for (var i = 0; i < deprecations.length; ++i) { - if (name != null && name === deprecations[i]) { - return i; - } - if (msg != null && msg.substring(0, deprecations[i].length) === deprecations[i]) { - return i; - } - } - return -1; -} - -/*global QUnit:false*/ - -var test = QUnit.test; - -var expect = QUnit.expect; - - - -function localeModule (name, lifecycle) { - QUnit.module('locale:' + name, { - setup : function () { - moment.locale(name); - moment.createFromInputFallback = function (config) { - throw new Error('input not handled by moment: ' + config._i); - }; - setupDeprecationHandler(test, moment, 'locale'); - if (lifecycle && lifecycle.setup) { - lifecycle.setup(); - } - }, - teardown : function () { - moment.locale('en'); - teardownDeprecationHandler(test, moment, 'locale'); - if (lifecycle && lifecycle.teardown) { - lifecycle.teardown(); - } - } - }); - defineCommonLocaleTests(name, -1, -1); -} - -localeModule('sq'); - -test('parse', function (assert) { - var i, - tests = 'Janar Jan_Shkurt Shk_Mars Mar_Prill Pri_Maj Maj_Qershor Qer_Korrik Kor_Gusht Gus_Shtator Sht_Tetor Tet_Nëntor Nën_Dhjetor Dhj'.split('_'); - - function equalTest(input, mmm, i) { - assert.equal(moment(input, mmm).month(), i, input + ' should be month ' + (i + 1)); - } - - for (i = 0; i < 12; i++) { - tests[i] = tests[i].split(' '); - equalTest(tests[i][0], 'MMM', i); - equalTest(tests[i][1], 'MMM', i); - equalTest(tests[i][0], 'MMMM', i); - equalTest(tests[i][1], 'MMMM', i); - equalTest(tests[i][0].toLocaleLowerCase(), 'MMMM', i); - equalTest(tests[i][1].toLocaleLowerCase(), 'MMMM', i); - equalTest(tests[i][0].toLocaleUpperCase(), 'MMMM', i); - equalTest(tests[i][1].toLocaleUpperCase(), 'MMMM', i); - } -}); - -test('format', function (assert) { - var a = [ - ['dddd, MMMM Do YYYY, HH:mm:ss', 'E Diel, Shkurt 14. 2010, 15:25:50'], - ['ddd, HH', 'Die, 15'], - ['M Mo MM MMMM MMM', '2 2. 02 Shkurt Shk'], - ['YYYY YY', '2010 10'], - ['D Do DD', '14 14. 14'], - ['d do dddd ddd dd', '0 0. E Diel Die D'], - ['DDD DDDo DDDD', '45 45. 045'], - ['w wo ww', '6 6. 06'], - ['h hh', '3 03'], - ['H HH', '15 15'], - ['m mm', '25 25'], - ['s ss', '50 50'], - ['a A', 'MD MD'], - ['[the] DDDo [day of the year]', 'the 45. day of the year'], - ['LTS', '15:25:50'], - ['L', '14/02/2010'], - ['LL', '14 Shkurt 2010'], - ['LLL', '14 Shkurt 2010 15:25'], - ['LLLL', 'E Diel, 14 Shkurt 2010 15:25'], - ['l', '14/2/2010'], - ['ll', '14 Shk 2010'], - ['lll', '14 Shk 2010 15:25'], - ['llll', 'Die, 14 Shk 2010 15:25'] - ], - b = moment(new Date(2010, 1, 14, 15, 25, 50, 125)), - i; - - for (i = 0; i < a.length; i++) { - assert.equal(b.format(a[i][0]), a[i][1], a[i][0] + ' ---> ' + a[i][1]); - } -}); - -test('meridiem', function (assert) { - assert.equal(moment([2011, 2, 23, 0, 0]).format('A'), 'PD', 'before dawn'); - assert.equal(moment([2011, 2, 23, 12, 0]).format('A'), 'MD', 'noon'); -}); - -test('format ordinal', function (assert) { - assert.equal(moment([2011, 0, 1]).format('DDDo'), '1.', '1.'); - assert.equal(moment([2011, 0, 2]).format('DDDo'), '2.', '2.'); - assert.equal(moment([2011, 0, 3]).format('DDDo'), '3.', '3.'); - assert.equal(moment([2011, 0, 4]).format('DDDo'), '4.', '4.'); - assert.equal(moment([2011, 0, 5]).format('DDDo'), '5.', '5.'); - assert.equal(moment([2011, 0, 6]).format('DDDo'), '6.', '6.'); - assert.equal(moment([2011, 0, 7]).format('DDDo'), '7.', '7.'); - assert.equal(moment([2011, 0, 8]).format('DDDo'), '8.', '8.'); - assert.equal(moment([2011, 0, 9]).format('DDDo'), '9.', '9.'); - assert.equal(moment([2011, 0, 10]).format('DDDo'), '10.', '10.'); - - assert.equal(moment([2011, 0, 11]).format('DDDo'), '11.', '11.'); - assert.equal(moment([2011, 0, 12]).format('DDDo'), '12.', '12.'); - assert.equal(moment([2011, 0, 13]).format('DDDo'), '13.', '13.'); - assert.equal(moment([2011, 0, 14]).format('DDDo'), '14.', '14.'); - assert.equal(moment([2011, 0, 15]).format('DDDo'), '15.', '15.'); - assert.equal(moment([2011, 0, 16]).format('DDDo'), '16.', '16.'); - assert.equal(moment([2011, 0, 17]).format('DDDo'), '17.', '17.'); - assert.equal(moment([2011, 0, 18]).format('DDDo'), '18.', '18.'); - assert.equal(moment([2011, 0, 19]).format('DDDo'), '19.', '19.'); - assert.equal(moment([2011, 0, 20]).format('DDDo'), '20.', '20.'); - - assert.equal(moment([2011, 0, 21]).format('DDDo'), '21.', '21.'); - assert.equal(moment([2011, 0, 22]).format('DDDo'), '22.', '22.'); - assert.equal(moment([2011, 0, 23]).format('DDDo'), '23.', '23.'); - assert.equal(moment([2011, 0, 24]).format('DDDo'), '24.', '24.'); - assert.equal(moment([2011, 0, 25]).format('DDDo'), '25.', '25.'); - assert.equal(moment([2011, 0, 26]).format('DDDo'), '26.', '26.'); - assert.equal(moment([2011, 0, 27]).format('DDDo'), '27.', '27.'); - assert.equal(moment([2011, 0, 28]).format('DDDo'), '28.', '28.'); - assert.equal(moment([2011, 0, 29]).format('DDDo'), '29.', '29.'); - assert.equal(moment([2011, 0, 30]).format('DDDo'), '30.', '30.'); - - assert.equal(moment([2011, 0, 31]).format('DDDo'), '31.', '31.'); -}); - -test('format month', function (assert) { - var i, - expected = 'Janar Jan_Shkurt Shk_Mars Mar_Prill Pri_Maj Maj_Qershor Qer_Korrik Kor_Gusht Gus_Shtator Sht_Tetor Tet_Nëntor Nën_Dhjetor Dhj'.split('_'); - - for (i = 0; i < expected.length; i++) { - assert.equal(moment([2011, i, 1]).format('MMMM MMM'), expected[i], expected[i]); - } -}); - -test('format week', function (assert) { - var i, - expected = 'E Diel Die D_E Hënë Hën H_E Martë Mar Ma_E Mërkurë Mër Më_E Enjte Enj E_E Premte Pre P_E Shtunë Sht Sh'.split('_'); - - for (i = 0; i < expected.length; i++) { - assert.equal(moment([2011, 0, 2 + i]).format('dddd ddd dd'), expected[i], expected[i]); - } -}); - -test('from', function (assert) { - var start = moment([2007, 1, 28]); - - assert.equal(start.from(moment([2007, 1, 28]).add({s: 44}), true), 'disa sekonda', '44 seconds = a few seconds'); - assert.equal(start.from(moment([2007, 1, 28]).add({s: 45}), true), 'një minutë', '45 seconds = a minute'); - assert.equal(start.from(moment([2007, 1, 28]).add({s: 89}), true), 'një minutë', '89 seconds = a minute'); - assert.equal(start.from(moment([2007, 1, 28]).add({s: 90}), true), '2 minuta', '90 seconds = 2 minutes'); - assert.equal(start.from(moment([2007, 1, 28]).add({m: 44}), true), '44 minuta', '44 minutes = 44 minutes'); - assert.equal(start.from(moment([2007, 1, 28]).add({m: 45}), true), 'një orë', '45 minutes = an hour'); - assert.equal(start.from(moment([2007, 1, 28]).add({m: 89}), true), 'një orë', '89 minutes = an hour'); - assert.equal(start.from(moment([2007, 1, 28]).add({m: 90}), true), '2 orë', '90 minutes = 2 hours'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 5}), true), '5 orë', '5 hours = 5 hours'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 21}), true), '21 orë', '21 hours = 21 hours'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 22}), true), 'një ditë', '22 hours = a day'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 35}), true), 'një ditë', '35 hours = a day'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 36}), true), '2 ditë', '36 hours = 2 days'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 1}), true), 'një ditë', '1 day = a day'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 5}), true), '5 ditë', '5 days = 5 days'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 25}), true), '25 ditë', '25 days = 25 days'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 26}), true), 'një muaj', '26 days = a month'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 30}), true), 'një muaj', '30 days = a month'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 43}), true), 'një muaj', '43 days = a month'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 46}), true), '2 muaj', '46 days = 2 months'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 74}), true), '2 muaj', '75 days = 2 months'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 76}), true), '3 muaj', '76 days = 3 months'); - assert.equal(start.from(moment([2007, 1, 28]).add({M: 1}), true), 'një muaj', '1 month = a month'); - assert.equal(start.from(moment([2007, 1, 28]).add({M: 5}), true), '5 muaj', '5 months = 5 months'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 345}), true), 'një vit', '345 days = a year'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 548}), true), '2 vite', '548 days = 2 years'); - assert.equal(start.from(moment([2007, 1, 28]).add({y: 1}), true), 'një vit', '1 year = a year'); - assert.equal(start.from(moment([2007, 1, 28]).add({y: 5}), true), '5 vite', '5 years = 5 years'); -}); - -test('suffix', function (assert) { - assert.equal(moment(30000).from(0), 'në disa sekonda', 'prefix'); - assert.equal(moment(0).from(30000), 'disa sekonda më parë', 'suffix'); -}); - -test('now from now', function (assert) { - assert.equal(moment().fromNow(), 'disa sekonda më parë', 'now from now should display as in the past'); -}); - -test('fromNow', function (assert) { - assert.equal(moment().add({s: 30}).fromNow(), 'në disa sekonda', 'in a few seconds'); - assert.equal(moment().add({d: 5}).fromNow(), 'në 5 ditë', 'in 5 days'); -}); - -test('calendar day', function (assert) { - var a = moment().hours(12).minutes(0).seconds(0); - - assert.equal(moment(a).calendar(), 'Sot në 12:00', 'today at the same time'); - assert.equal(moment(a).add({m: 25}).calendar(), 'Sot në 12:25', 'Now plus 25 min'); - assert.equal(moment(a).add({h: 1}).calendar(), 'Sot në 13:00', 'Now plus 1 hour'); - assert.equal(moment(a).add({d: 1}).calendar(), 'Nesër në 12:00', 'tomorrow at the same time'); - assert.equal(moment(a).subtract({h: 1}).calendar(), 'Sot në 11:00', 'Now minus 1 hour'); - assert.equal(moment(a).subtract({d: 1}).calendar(), 'Dje në 12:00', 'yesterday at the same time'); -}); - -test('calendar next week', function (assert) { - var i, m; - - for (i = 2; i < 7; i++) { - m = moment().add({d: i}); - assert.equal(m.calendar(), m.format('dddd [në] LT'), 'Today + ' + i + ' days current time'); - m.hours(0).minutes(0).seconds(0).milliseconds(0); - assert.equal(m.calendar(), m.format('dddd [në] LT'), 'Today + ' + i + ' days beginning of day'); - m.hours(23).minutes(59).seconds(59).milliseconds(999); - assert.equal(m.calendar(), m.format('dddd [në] LT'), 'Today + ' + i + ' days end of day'); - } -}); - -test('calendar last week', function (assert) { - var i, m; - - for (i = 2; i < 7; i++) { - m = moment().subtract({d: i}); - assert.equal(m.calendar(), m.format('dddd [e kaluar në] LT'), 'Today - ' + i + ' days current time'); - m.hours(0).minutes(0).seconds(0).milliseconds(0); - assert.equal(m.calendar(), m.format('dddd [e kaluar në] LT'), 'Today - ' + i + ' days beginning of day'); - m.hours(23).minutes(59).seconds(59).milliseconds(999); - assert.equal(m.calendar(), m.format('dddd [e kaluar në] LT'), 'Today - ' + i + ' days end of day'); - } -}); - -test('calendar all else', function (assert) { - var weeksAgo = moment().subtract({w: 1}), - weeksFromNow = moment().add({w: 1}); - - assert.equal(weeksAgo.calendar(), weeksAgo.format('L'), '1 week ago'); - assert.equal(weeksFromNow.calendar(), weeksFromNow.format('L'), 'in 1 week'); - - weeksAgo = moment().subtract({w: 2}); - weeksFromNow = moment().add({w: 2}); - - assert.equal(weeksAgo.calendar(), weeksAgo.format('L'), '2 weeks ago'); - assert.equal(weeksFromNow.calendar(), weeksFromNow.format('L'), 'in 2 weeks'); -}); - -test('weeks year starting sunday formatted', function (assert) { - assert.equal(moment([2012, 0, 1]).format('w ww wo'), '52 52 52.', 'Jan 1 2012 should be week 52'); - assert.equal(moment([2012, 0, 2]).format('w ww wo'), '1 01 1.', 'Jan 2 2012 should be week 1'); - assert.equal(moment([2012, 0, 8]).format('w ww wo'), '1 01 1.', 'Jan 8 2012 should be week 1'); - assert.equal(moment([2012, 0, 9]).format('w ww wo'), '2 02 2.', 'Jan 9 2012 should be week 2'); - assert.equal(moment([2012, 0, 15]).format('w ww wo'), '2 02 2.', 'Jan 15 2012 should be week 2'); -}); - -}))); - - -;(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' - && typeof require === 'function' ? factory(require('../../moment')) : - typeof define === 'function' && define.amd ? define(['../../moment'], factory) : - factory(global.moment) -}(this, (function (moment) { 'use strict'; - -function each(array, callback) { - var i; - for (i = 0; i < array.length; i++) { - callback(array[i], i, array); - } -} - -function objectKeys(obj) { - if (Object.keys) { - return Object.keys(obj); - } else { - // IE8 - var res = [], i; - for (i in obj) { - if (obj.hasOwnProperty(i)) { - res.push(i); - } - } - return res; - } -} - -// Pick the first defined of two or three arguments. - -function defineCommonLocaleTests(locale, options) { - test('lenient day of month ordinal parsing', function (assert) { - var i, ordinalStr, testMoment; - for (i = 1; i <= 31; ++i) { - ordinalStr = moment([2014, 0, i]).format('YYYY MM Do'); - testMoment = moment(ordinalStr, 'YYYY MM Do'); - assert.equal(testMoment.year(), 2014, - 'lenient day of month ordinal parsing ' + i + ' year check'); - assert.equal(testMoment.month(), 0, - 'lenient day of month ordinal parsing ' + i + ' month check'); - assert.equal(testMoment.date(), i, - 'lenient day of month ordinal parsing ' + i + ' date check'); - } - }); - - test('lenient day of month ordinal parsing of number', function (assert) { - var i, testMoment; - for (i = 1; i <= 31; ++i) { - testMoment = moment('2014 01 ' + i, 'YYYY MM Do'); - assert.equal(testMoment.year(), 2014, - 'lenient day of month ordinal parsing of number ' + i + ' year check'); - assert.equal(testMoment.month(), 0, - 'lenient day of month ordinal parsing of number ' + i + ' month check'); - assert.equal(testMoment.date(), i, - 'lenient day of month ordinal parsing of number ' + i + ' date check'); - } - }); - - test('strict day of month ordinal parsing', function (assert) { - var i, ordinalStr, testMoment; - for (i = 1; i <= 31; ++i) { - ordinalStr = moment([2014, 0, i]).format('YYYY MM Do'); - testMoment = moment(ordinalStr, 'YYYY MM Do', true); - assert.ok(testMoment.isValid(), 'strict day of month ordinal parsing ' + i); - } - }); - - test('meridiem invariant', function (assert) { - var h, m, t1, t2; - for (h = 0; h < 24; ++h) { - for (m = 0; m < 60; m += 15) { - t1 = moment.utc([2000, 0, 1, h, m]); - t2 = moment.utc(t1.format('A h:mm'), 'A h:mm'); - assert.equal(t2.format('HH:mm'), t1.format('HH:mm'), - 'meridiem at ' + t1.format('HH:mm')); - } - } - }); - - test('date format correctness', function (assert) { - var data, tokens; - data = moment.localeData()._longDateFormat; - tokens = objectKeys(data); - each(tokens, function (srchToken) { - // Check each format string to make sure it does not contain any - // tokens that need to be expanded. - each(tokens, function (baseToken) { - // strip escaped sequences - var format = data[baseToken].replace(/(\[[^\]]*\])/g, ''); - assert.equal(false, !!~format.indexOf(srchToken), - 'contains ' + srchToken + ' in ' + baseToken); - }); - }); - }); - - test('month parsing correctness', function (assert) { - var i, m; - - if (locale === 'tr') { - // I can't fix it :( - expect(0); - return; - } - function tester(format) { - var r; - r = moment(m.format(format), format); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format); - r = moment(m.format(format).toLocaleUpperCase(), format); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' upper'); - r = moment(m.format(format).toLocaleLowerCase(), format); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' lower'); - - r = moment(m.format(format), format, true); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' strict'); - r = moment(m.format(format).toLocaleUpperCase(), format, true); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' upper strict'); - r = moment(m.format(format).toLocaleLowerCase(), format, true); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' lower strict'); - } - - for (i = 0; i < 12; ++i) { - m = moment([2015, i, 15, 18]); - tester('MMM'); - tester('MMM.'); - tester('MMMM'); - tester('MMMM.'); - } - }); - - test('weekday parsing correctness', function (assert) { - var i, m; - - if (locale === 'tr' || locale === 'az' || locale === 'ro') { - // tr, az: There is a lower-case letter (ı), that converted to - // upper then lower changes to i - // ro: there is the letter ț which behaves weird under IE8 - expect(0); - return; - } - function tester(format) { - var r, baseMsg = 'weekday ' + m.weekday() + ' fmt ' + format + ' ' + m.toISOString(); - r = moment(m.format(format), format); - assert.equal(r.weekday(), m.weekday(), baseMsg); - r = moment(m.format(format).toLocaleUpperCase(), format); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' upper'); - r = moment(m.format(format).toLocaleLowerCase(), format); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' lower'); - - r = moment(m.format(format), format, true); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' strict'); - r = moment(m.format(format).toLocaleUpperCase(), format, true); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' upper strict'); - r = moment(m.format(format).toLocaleLowerCase(), format, true); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' lower strict'); - } - - for (i = 0; i < 7; ++i) { - m = moment.utc([2015, 0, i + 1, 18]); - tester('dd'); - tester('ddd'); - tester('dddd'); - } - }); - - test('valid localeData', function (assert) { - assert.equal(moment().localeData().months().length, 12, 'months should return 12 months'); - assert.equal(moment().localeData().monthsShort().length, 12, 'monthsShort should return 12 months'); - assert.equal(moment().localeData().weekdays().length, 7, 'weekdays should return 7 days'); - assert.equal(moment().localeData().weekdaysShort().length, 7, 'weekdaysShort should return 7 days'); - assert.equal(moment().localeData().weekdaysMin().length, 7, 'monthsShort should return 7 days'); - }); -} - -function setupDeprecationHandler(test, moment$$1, scope) { - test._expectedDeprecations = null; - test._observedDeprecations = null; - test._oldSupress = moment$$1.suppressDeprecationWarnings; - moment$$1.suppressDeprecationWarnings = true; - test.expectedDeprecations = function () { - test._expectedDeprecations = arguments; - test._observedDeprecations = []; - }; - moment$$1.deprecationHandler = function (name, msg) { - var deprecationId = matchedDeprecation(name, msg, test._expectedDeprecations); - if (deprecationId === -1) { - throw new Error('Unexpected deprecation thrown name=' + - name + ' msg=' + msg); - } - test._observedDeprecations[deprecationId] = 1; - }; -} - -function teardownDeprecationHandler(test, moment$$1, scope) { - moment$$1.suppressDeprecationWarnings = test._oldSupress; - - if (test._expectedDeprecations != null) { - var missedDeprecations = []; - each(test._expectedDeprecations, function (deprecationPattern, id) { - if (test._observedDeprecations[id] !== 1) { - missedDeprecations.push(deprecationPattern); - } - }); - if (missedDeprecations.length !== 0) { - throw new Error('Expected deprecation warnings did not happen: ' + - missedDeprecations.join(' ')); - } - } -} - -function matchedDeprecation(name, msg, deprecations) { - if (deprecations == null) { - return -1; - } - for (var i = 0; i < deprecations.length; ++i) { - if (name != null && name === deprecations[i]) { - return i; - } - if (msg != null && msg.substring(0, deprecations[i].length) === deprecations[i]) { - return i; - } - } - return -1; -} - -/*global QUnit:false*/ - -var test = QUnit.test; - -var expect = QUnit.expect; - - - -function localeModule (name, lifecycle) { - QUnit.module('locale:' + name, { - setup : function () { - moment.locale(name); - moment.createFromInputFallback = function (config) { - throw new Error('input not handled by moment: ' + config._i); - }; - setupDeprecationHandler(test, moment, 'locale'); - if (lifecycle && lifecycle.setup) { - lifecycle.setup(); - } - }, - teardown : function () { - moment.locale('en'); - teardownDeprecationHandler(test, moment, 'locale'); - if (lifecycle && lifecycle.teardown) { - lifecycle.teardown(); - } - } - }); - defineCommonLocaleTests(name, -1, -1); -} - -localeModule('sr-cyrl'); - -test('parse', function (assert) { - var tests = 'јануар јан._фебруар феб._март мар._април апр._мај мај_јун јун_јул јул_август авг._септембар сеп._октобар окт._новембар нов._децембар дец.'.split('_'), - i; - function equalTest(input, mmm, i) { - assert.equal(moment(input, mmm).month(), i, input + ' should be month ' + (i + 1)); - } - for (i = 0; i < 12; i++) { - tests[i] = tests[i].split(' '); - equalTest(tests[i][0], 'MMM', i); - equalTest(tests[i][1], 'MMM', i); - equalTest(tests[i][0], 'MMMM', i); - equalTest(tests[i][1], 'MMMM', i); - equalTest(tests[i][0].toLocaleLowerCase(), 'MMMM', i); - equalTest(tests[i][1].toLocaleLowerCase(), 'MMMM', i); - equalTest(tests[i][0].toLocaleUpperCase(), 'MMMM', i); - equalTest(tests[i][1].toLocaleUpperCase(), 'MMMM', i); - } -}); - -test('format', function (assert) { - var a = [ - ['dddd, Do MMMM YYYY, h:mm:ss a', 'недеља, 14. фебруар 2010, 3:25:50 pm'], - ['ddd, hA', 'нед., 3PM'], - ['M Mo MM MMMM MMM', '2 2. 02 фебруар феб.'], - ['YYYY YY', '2010 10'], - ['D Do DD', '14 14. 14'], - ['d do dddd ddd dd', '0 0. недеља нед. не'], - ['DDD DDDo DDDD', '45 45. 045'], - ['w wo ww', '7 7. 07'], - ['h hh', '3 03'], - ['H HH', '15 15'], - ['m mm', '25 25'], - ['s ss', '50 50'], - ['a A', 'pm PM'], - ['[the] DDDo [day of the year]', 'the 45. day of the year'], - ['LTS', '15:25:50'], - ['L', '14.02.2010'], - ['LL', '14. фебруар 2010'], - ['LLL', '14. фебруар 2010 15:25'], - ['LLLL', 'недеља, 14. фебруар 2010 15:25'], - ['l', '14.2.2010'], - ['ll', '14. феб. 2010'], - ['lll', '14. феб. 2010 15:25'], - ['llll', 'нед., 14. феб. 2010 15:25'] - ], - b = moment(new Date(2010, 1, 14, 15, 25, 50, 125)), - i; - for (i = 0; i < a.length; i++) { - assert.equal(b.format(a[i][0]), a[i][1], a[i][0] + ' ---> ' + a[i][1]); - } -}); - -test('format ordinal', function (assert) { - assert.equal(moment([2011, 0, 1]).format('DDDo'), '1.', '1.'); - assert.equal(moment([2011, 0, 2]).format('DDDo'), '2.', '2.'); - assert.equal(moment([2011, 0, 3]).format('DDDo'), '3.', '3.'); - assert.equal(moment([2011, 0, 4]).format('DDDo'), '4.', '4.'); - assert.equal(moment([2011, 0, 5]).format('DDDo'), '5.', '5.'); - assert.equal(moment([2011, 0, 6]).format('DDDo'), '6.', '6.'); - assert.equal(moment([2011, 0, 7]).format('DDDo'), '7.', '7.'); - assert.equal(moment([2011, 0, 8]).format('DDDo'), '8.', '8.'); - assert.equal(moment([2011, 0, 9]).format('DDDo'), '9.', '9.'); - assert.equal(moment([2011, 0, 10]).format('DDDo'), '10.', '10.'); - - assert.equal(moment([2011, 0, 11]).format('DDDo'), '11.', '11.'); - assert.equal(moment([2011, 0, 12]).format('DDDo'), '12.', '12.'); - assert.equal(moment([2011, 0, 13]).format('DDDo'), '13.', '13.'); - assert.equal(moment([2011, 0, 14]).format('DDDo'), '14.', '14.'); - assert.equal(moment([2011, 0, 15]).format('DDDo'), '15.', '15.'); - assert.equal(moment([2011, 0, 16]).format('DDDo'), '16.', '16.'); - assert.equal(moment([2011, 0, 17]).format('DDDo'), '17.', '17.'); - assert.equal(moment([2011, 0, 18]).format('DDDo'), '18.', '18.'); - assert.equal(moment([2011, 0, 19]).format('DDDo'), '19.', '19.'); - assert.equal(moment([2011, 0, 20]).format('DDDo'), '20.', '20.'); - - assert.equal(moment([2011, 0, 21]).format('DDDo'), '21.', '21.'); - assert.equal(moment([2011, 0, 22]).format('DDDo'), '22.', '22.'); - assert.equal(moment([2011, 0, 23]).format('DDDo'), '23.', '23.'); - assert.equal(moment([2011, 0, 24]).format('DDDo'), '24.', '24.'); - assert.equal(moment([2011, 0, 25]).format('DDDo'), '25.', '25.'); - assert.equal(moment([2011, 0, 26]).format('DDDo'), '26.', '26.'); - assert.equal(moment([2011, 0, 27]).format('DDDo'), '27.', '27.'); - assert.equal(moment([2011, 0, 28]).format('DDDo'), '28.', '28.'); - assert.equal(moment([2011, 0, 29]).format('DDDo'), '29.', '29.'); - assert.equal(moment([2011, 0, 30]).format('DDDo'), '30.', '30.'); - - assert.equal(moment([2011, 0, 31]).format('DDDo'), '31.', '31.'); -}); - -test('format month', function (assert) { - var expected = 'јануар јан._фебруар феб._март мар._април апр._мај мај_јун јун_јул јул_август авг._септембар сеп._октобар окт._новембар нов._децембар дец.'.split('_'), - i; - for (i = 0; i < expected.length; i++) { - assert.equal(moment([2011, i, 1]).format('MMMM MMM'), expected[i], expected[i]); - } -}); - -test('format week', function (assert) { - var expected = 'недеља нед. не_понедељак пон. по_уторак уто. ут_среда сре. ср_четвртак чет. че_петак пет. пе_субота суб. су'.split('_'), - i; - for (i = 0; i < expected.length; i++) { - assert.equal(moment([2011, 0, 2 + i]).format('dddd ddd dd'), expected[i], expected[i]); - } -}); - -test('from', function (assert) { - var start = moment([2007, 1, 28]); - assert.equal(start.from(moment([2007, 1, 28]).add({s: 44}), true), 'неколико секунди', '44 seconds = a few seconds'); - assert.equal(start.from(moment([2007, 1, 28]).add({s: 45}), true), 'један минут', '45 seconds = a minute'); - assert.equal(start.from(moment([2007, 1, 28]).add({s: 89}), true), 'један минут', '89 seconds = a minute'); - assert.equal(start.from(moment([2007, 1, 28]).add({s: 90}), true), '2 минуте', '90 seconds = 2 minutes'); - assert.equal(start.from(moment([2007, 1, 28]).add({m: 44}), true), '44 минута', '44 minutes = 44 minutes'); - assert.equal(start.from(moment([2007, 1, 28]).add({m: 45}), true), 'један сат', '45 minutes = an hour'); - assert.equal(start.from(moment([2007, 1, 28]).add({m: 89}), true), 'један сат', '89 minutes = an hour'); - assert.equal(start.from(moment([2007, 1, 28]).add({m: 90}), true), '2 сата', '90 minutes = 2 hours'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 5}), true), '5 сати', '5 hours = 5 hours'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 21}), true), '21 сати', '21 hours = 21 hours'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 22}), true), 'дан', '22 hours = a day'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 35}), true), 'дан', '35 hours = a day'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 36}), true), '2 дана', '36 hours = 2 days'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 1}), true), 'дан', '1 day = a day'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 5}), true), '5 дана', '5 days = 5 days'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 25}), true), '25 дана', '25 days = 25 days'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 26}), true), 'месец', '26 days = a month'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 30}), true), 'месец', '30 days = a month'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 43}), true), 'месец', '43 days = a month'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 46}), true), '2 месеца', '46 days = 2 months'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 74}), true), '2 месеца', '75 days = 2 months'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 76}), true), '3 месеца', '76 days = 3 months'); - assert.equal(start.from(moment([2007, 1, 28]).add({M: 1}), true), 'месец', '1 month = a month'); - assert.equal(start.from(moment([2007, 1, 28]).add({M: 5}), true), '5 месеци', '5 months = 5 months'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 345}), true), 'годину', '345 days = a year'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 548}), true), '2 године', '548 days = 2 years'); - assert.equal(start.from(moment([2007, 1, 28]).add({y: 1}), true), 'годину', '1 year = a year'); - assert.equal(start.from(moment([2007, 1, 28]).add({y: 5}), true), '5 година', '5 years = 5 years'); -}); - -test('suffix', function (assert) { - assert.equal(moment(30000).from(0), 'за неколико секунди', 'prefix'); - assert.equal(moment(0).from(30000), 'пре неколико секунди', 'prefix'); -}); - -test('now from now', function (assert) { - assert.equal(moment().fromNow(), 'пре неколико секунди', 'now from now should display as in the past'); -}); - -test('fromNow', function (assert) { - assert.equal(moment().add({s: 30}).fromNow(), 'за неколико секунди', 'in a few seconds'); - assert.equal(moment().add({d: 5}).fromNow(), 'за 5 дана', 'in 5 days'); -}); - -test('calendar day', function (assert) { - var a = moment().hours(12).minutes(0).seconds(0); - - assert.equal(moment(a).calendar(), 'данас у 12:00', 'today at the same time'); - assert.equal(moment(a).add({m: 25}).calendar(), 'данас у 12:25', 'Now plus 25 min'); - assert.equal(moment(a).add({h: 1}).calendar(), 'данас у 13:00', 'Now plus 1 hour'); - assert.equal(moment(a).add({d: 1}).calendar(), 'сутра у 12:00', 'tomorrow at the same time'); - assert.equal(moment(a).subtract({h: 1}).calendar(), 'данас у 11:00', 'Now minus 1 hour'); - assert.equal(moment(a).subtract({d: 1}).calendar(), 'јуче у 12:00', 'yesterday at the same time'); -}); - -test('calendar next week', function (assert) { - var i, m; - - function makeFormat(d) { - switch (d.day()) { - case 0: - return '[у] [недељу] [у] LT'; - case 3: - return '[у] [среду] [у] LT'; - case 6: - return '[у] [суботу] [у] LT'; - case 1: - case 2: - case 4: - case 5: - return '[у] dddd [у] LT'; - } - } - - for (i = 2; i < 7; i++) { - m = moment().add({d: i}); - assert.equal(m.calendar(), m.format(makeFormat(m)), 'Today + ' + i + ' days current time'); - m.hours(0).minutes(0).seconds(0).milliseconds(0); - assert.equal(m.calendar(), m.format(makeFormat(m)), 'Today + ' + i + ' days beginning of day'); - m.hours(23).minutes(59).seconds(59).milliseconds(999); - assert.equal(m.calendar(), m.format(makeFormat(m)), 'Today + ' + i + ' days end of day'); - } -}); - -test('calendar last week', function (assert) { - var i, m; - - function makeFormat(d) { - var lastWeekDay = [ - '[прошле] [недеље] [у] LT', - '[прошлог] [понедељка] [у] LT', - '[прошлог] [уторка] [у] LT', - '[прошле] [среде] [у] LT', - '[прошлог] [четвртка] [у] LT', - '[прошлог] [петка] [у] LT', - '[прошле] [суботе] [у] LT' - ]; - - return lastWeekDay[d.day()]; - } - - for (i = 2; i < 7; i++) { - m = moment().subtract({d: i}); - assert.equal(m.calendar(), m.format(makeFormat(m)), 'Today - ' + i + ' days current time'); - m.hours(0).minutes(0).seconds(0).milliseconds(0); - assert.equal(m.calendar(), m.format(makeFormat(m)), 'Today - ' + i + ' days beginning of day'); - m.hours(23).minutes(59).seconds(59).milliseconds(999); - assert.equal(m.calendar(), m.format(makeFormat(m)), 'Today - ' + i + ' days end of day'); - } -}); - -test('calendar all else', function (assert) { - var weeksAgo = moment().subtract({w: 1}), - weeksFromNow = moment().add({w: 1}); - - assert.equal(weeksAgo.calendar(), weeksAgo.format('L'), '1 week ago'); - assert.equal(weeksFromNow.calendar(), weeksFromNow.format('L'), 'in 1 week'); - - weeksAgo = moment().subtract({w: 2}); - weeksFromNow = moment().add({w: 2}); - - assert.equal(weeksAgo.calendar(), weeksAgo.format('L'), '2 weeks ago'); - assert.equal(weeksFromNow.calendar(), weeksFromNow.format('L'), 'in 2 weeks'); -}); - -test('weeks year starting sunday formatted', function (assert) { - assert.equal(moment([2011, 11, 26]).format('w ww wo'), '1 01 1.', 'Dec 26 2011 should be week 1'); - assert.equal(moment([2012, 0, 1]).format('w ww wo'), '1 01 1.', 'Jan 1 2012 should be week 1'); - assert.equal(moment([2012, 0, 2]).format('w ww wo'), '2 02 2.', 'Jan 2 2012 should be week 2'); - assert.equal(moment([2012, 0, 8]).format('w ww wo'), '2 02 2.', 'Jan 8 2012 should be week 2'); - assert.equal(moment([2012, 0, 9]).format('w ww wo'), '3 03 3.', 'Jan 9 2012 should be week 3'); -}); - -}))); - - -;(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' - && typeof require === 'function' ? factory(require('../../moment')) : - typeof define === 'function' && define.amd ? define(['../../moment'], factory) : - factory(global.moment) -}(this, (function (moment) { 'use strict'; - -function each(array, callback) { - var i; - for (i = 0; i < array.length; i++) { - callback(array[i], i, array); - } -} - -function objectKeys(obj) { - if (Object.keys) { - return Object.keys(obj); - } else { - // IE8 - var res = [], i; - for (i in obj) { - if (obj.hasOwnProperty(i)) { - res.push(i); - } - } - return res; - } -} - -// Pick the first defined of two or three arguments. - -function defineCommonLocaleTests(locale, options) { - test('lenient day of month ordinal parsing', function (assert) { - var i, ordinalStr, testMoment; - for (i = 1; i <= 31; ++i) { - ordinalStr = moment([2014, 0, i]).format('YYYY MM Do'); - testMoment = moment(ordinalStr, 'YYYY MM Do'); - assert.equal(testMoment.year(), 2014, - 'lenient day of month ordinal parsing ' + i + ' year check'); - assert.equal(testMoment.month(), 0, - 'lenient day of month ordinal parsing ' + i + ' month check'); - assert.equal(testMoment.date(), i, - 'lenient day of month ordinal parsing ' + i + ' date check'); - } - }); - - test('lenient day of month ordinal parsing of number', function (assert) { - var i, testMoment; - for (i = 1; i <= 31; ++i) { - testMoment = moment('2014 01 ' + i, 'YYYY MM Do'); - assert.equal(testMoment.year(), 2014, - 'lenient day of month ordinal parsing of number ' + i + ' year check'); - assert.equal(testMoment.month(), 0, - 'lenient day of month ordinal parsing of number ' + i + ' month check'); - assert.equal(testMoment.date(), i, - 'lenient day of month ordinal parsing of number ' + i + ' date check'); - } - }); - - test('strict day of month ordinal parsing', function (assert) { - var i, ordinalStr, testMoment; - for (i = 1; i <= 31; ++i) { - ordinalStr = moment([2014, 0, i]).format('YYYY MM Do'); - testMoment = moment(ordinalStr, 'YYYY MM Do', true); - assert.ok(testMoment.isValid(), 'strict day of month ordinal parsing ' + i); - } - }); - - test('meridiem invariant', function (assert) { - var h, m, t1, t2; - for (h = 0; h < 24; ++h) { - for (m = 0; m < 60; m += 15) { - t1 = moment.utc([2000, 0, 1, h, m]); - t2 = moment.utc(t1.format('A h:mm'), 'A h:mm'); - assert.equal(t2.format('HH:mm'), t1.format('HH:mm'), - 'meridiem at ' + t1.format('HH:mm')); - } - } - }); - - test('date format correctness', function (assert) { - var data, tokens; - data = moment.localeData()._longDateFormat; - tokens = objectKeys(data); - each(tokens, function (srchToken) { - // Check each format string to make sure it does not contain any - // tokens that need to be expanded. - each(tokens, function (baseToken) { - // strip escaped sequences - var format = data[baseToken].replace(/(\[[^\]]*\])/g, ''); - assert.equal(false, !!~format.indexOf(srchToken), - 'contains ' + srchToken + ' in ' + baseToken); - }); - }); - }); - - test('month parsing correctness', function (assert) { - var i, m; - - if (locale === 'tr') { - // I can't fix it :( - expect(0); - return; - } - function tester(format) { - var r; - r = moment(m.format(format), format); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format); - r = moment(m.format(format).toLocaleUpperCase(), format); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' upper'); - r = moment(m.format(format).toLocaleLowerCase(), format); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' lower'); - - r = moment(m.format(format), format, true); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' strict'); - r = moment(m.format(format).toLocaleUpperCase(), format, true); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' upper strict'); - r = moment(m.format(format).toLocaleLowerCase(), format, true); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' lower strict'); - } - - for (i = 0; i < 12; ++i) { - m = moment([2015, i, 15, 18]); - tester('MMM'); - tester('MMM.'); - tester('MMMM'); - tester('MMMM.'); - } - }); - - test('weekday parsing correctness', function (assert) { - var i, m; - - if (locale === 'tr' || locale === 'az' || locale === 'ro') { - // tr, az: There is a lower-case letter (ı), that converted to - // upper then lower changes to i - // ro: there is the letter ț which behaves weird under IE8 - expect(0); - return; - } - function tester(format) { - var r, baseMsg = 'weekday ' + m.weekday() + ' fmt ' + format + ' ' + m.toISOString(); - r = moment(m.format(format), format); - assert.equal(r.weekday(), m.weekday(), baseMsg); - r = moment(m.format(format).toLocaleUpperCase(), format); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' upper'); - r = moment(m.format(format).toLocaleLowerCase(), format); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' lower'); - - r = moment(m.format(format), format, true); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' strict'); - r = moment(m.format(format).toLocaleUpperCase(), format, true); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' upper strict'); - r = moment(m.format(format).toLocaleLowerCase(), format, true); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' lower strict'); - } - - for (i = 0; i < 7; ++i) { - m = moment.utc([2015, 0, i + 1, 18]); - tester('dd'); - tester('ddd'); - tester('dddd'); - } - }); - - test('valid localeData', function (assert) { - assert.equal(moment().localeData().months().length, 12, 'months should return 12 months'); - assert.equal(moment().localeData().monthsShort().length, 12, 'monthsShort should return 12 months'); - assert.equal(moment().localeData().weekdays().length, 7, 'weekdays should return 7 days'); - assert.equal(moment().localeData().weekdaysShort().length, 7, 'weekdaysShort should return 7 days'); - assert.equal(moment().localeData().weekdaysMin().length, 7, 'monthsShort should return 7 days'); - }); -} - -function setupDeprecationHandler(test, moment$$1, scope) { - test._expectedDeprecations = null; - test._observedDeprecations = null; - test._oldSupress = moment$$1.suppressDeprecationWarnings; - moment$$1.suppressDeprecationWarnings = true; - test.expectedDeprecations = function () { - test._expectedDeprecations = arguments; - test._observedDeprecations = []; - }; - moment$$1.deprecationHandler = function (name, msg) { - var deprecationId = matchedDeprecation(name, msg, test._expectedDeprecations); - if (deprecationId === -1) { - throw new Error('Unexpected deprecation thrown name=' + - name + ' msg=' + msg); - } - test._observedDeprecations[deprecationId] = 1; - }; -} - -function teardownDeprecationHandler(test, moment$$1, scope) { - moment$$1.suppressDeprecationWarnings = test._oldSupress; - - if (test._expectedDeprecations != null) { - var missedDeprecations = []; - each(test._expectedDeprecations, function (deprecationPattern, id) { - if (test._observedDeprecations[id] !== 1) { - missedDeprecations.push(deprecationPattern); - } - }); - if (missedDeprecations.length !== 0) { - throw new Error('Expected deprecation warnings did not happen: ' + - missedDeprecations.join(' ')); - } - } -} - -function matchedDeprecation(name, msg, deprecations) { - if (deprecations == null) { - return -1; - } - for (var i = 0; i < deprecations.length; ++i) { - if (name != null && name === deprecations[i]) { - return i; - } - if (msg != null && msg.substring(0, deprecations[i].length) === deprecations[i]) { - return i; - } - } - return -1; -} - -/*global QUnit:false*/ - -var test = QUnit.test; - -var expect = QUnit.expect; - - - -function localeModule (name, lifecycle) { - QUnit.module('locale:' + name, { - setup : function () { - moment.locale(name); - moment.createFromInputFallback = function (config) { - throw new Error('input not handled by moment: ' + config._i); - }; - setupDeprecationHandler(test, moment, 'locale'); - if (lifecycle && lifecycle.setup) { - lifecycle.setup(); - } - }, - teardown : function () { - moment.locale('en'); - teardownDeprecationHandler(test, moment, 'locale'); - if (lifecycle && lifecycle.teardown) { - lifecycle.teardown(); - } - } - }); - defineCommonLocaleTests(name, -1, -1); -} - -localeModule('sr'); - -test('parse', function (assert) { - var tests = 'januar jan._februar feb._mart mar._april apr._maj maj_jun jun_jul jul_avgust avg._septembar sep._oktobar okt._novembar nov._decembar dec.'.split('_'), - i; - function equalTest(input, mmm, i) { - assert.equal(moment(input, mmm).month(), i, input + ' should be month ' + (i + 1)); - } - for (i = 0; i < 12; i++) { - tests[i] = tests[i].split(' '); - equalTest(tests[i][0], 'MMM', i); - equalTest(tests[i][1], 'MMM', i); - equalTest(tests[i][0], 'MMMM', i); - equalTest(tests[i][1], 'MMMM', i); - equalTest(tests[i][0].toLocaleLowerCase(), 'MMMM', i); - equalTest(tests[i][1].toLocaleLowerCase(), 'MMMM', i); - equalTest(tests[i][0].toLocaleUpperCase(), 'MMMM', i); - equalTest(tests[i][1].toLocaleUpperCase(), 'MMMM', i); - } -}); - -test('format', function (assert) { - var a = [ - ['dddd, Do MMMM YYYY, h:mm:ss a', 'nedelja, 14. februar 2010, 3:25:50 pm'], - ['ddd, hA', 'ned., 3PM'], - ['M Mo MM MMMM MMM', '2 2. 02 februar feb.'], - ['YYYY YY', '2010 10'], - ['D Do DD', '14 14. 14'], - ['d do dddd ddd dd', '0 0. nedelja ned. ne'], - ['DDD DDDo DDDD', '45 45. 045'], - ['w wo ww', '7 7. 07'], - ['h hh', '3 03'], - ['H HH', '15 15'], - ['m mm', '25 25'], - ['s ss', '50 50'], - ['a A', 'pm PM'], - ['[the] DDDo [day of the year]', 'the 45. day of the year'], - ['LTS', '15:25:50'], - ['L', '14.02.2010'], - ['LL', '14. februar 2010'], - ['LLL', '14. februar 2010 15:25'], - ['LLLL', 'nedelja, 14. februar 2010 15:25'], - ['l', '14.2.2010'], - ['ll', '14. feb. 2010'], - ['lll', '14. feb. 2010 15:25'], - ['llll', 'ned., 14. feb. 2010 15:25'] - ], - b = moment(new Date(2010, 1, 14, 15, 25, 50, 125)), - i; - for (i = 0; i < a.length; i++) { - assert.equal(b.format(a[i][0]), a[i][1], a[i][0] + ' ---> ' + a[i][1]); - } -}); - -test('format ordinal', function (assert) { - assert.equal(moment([2011, 0, 1]).format('DDDo'), '1.', '1.'); - assert.equal(moment([2011, 0, 2]).format('DDDo'), '2.', '2.'); - assert.equal(moment([2011, 0, 3]).format('DDDo'), '3.', '3.'); - assert.equal(moment([2011, 0, 4]).format('DDDo'), '4.', '4.'); - assert.equal(moment([2011, 0, 5]).format('DDDo'), '5.', '5.'); - assert.equal(moment([2011, 0, 6]).format('DDDo'), '6.', '6.'); - assert.equal(moment([2011, 0, 7]).format('DDDo'), '7.', '7.'); - assert.equal(moment([2011, 0, 8]).format('DDDo'), '8.', '8.'); - assert.equal(moment([2011, 0, 9]).format('DDDo'), '9.', '9.'); - assert.equal(moment([2011, 0, 10]).format('DDDo'), '10.', '10.'); - - assert.equal(moment([2011, 0, 11]).format('DDDo'), '11.', '11.'); - assert.equal(moment([2011, 0, 12]).format('DDDo'), '12.', '12.'); - assert.equal(moment([2011, 0, 13]).format('DDDo'), '13.', '13.'); - assert.equal(moment([2011, 0, 14]).format('DDDo'), '14.', '14.'); - assert.equal(moment([2011, 0, 15]).format('DDDo'), '15.', '15.'); - assert.equal(moment([2011, 0, 16]).format('DDDo'), '16.', '16.'); - assert.equal(moment([2011, 0, 17]).format('DDDo'), '17.', '17.'); - assert.equal(moment([2011, 0, 18]).format('DDDo'), '18.', '18.'); - assert.equal(moment([2011, 0, 19]).format('DDDo'), '19.', '19.'); - assert.equal(moment([2011, 0, 20]).format('DDDo'), '20.', '20.'); - - assert.equal(moment([2011, 0, 21]).format('DDDo'), '21.', '21.'); - assert.equal(moment([2011, 0, 22]).format('DDDo'), '22.', '22.'); - assert.equal(moment([2011, 0, 23]).format('DDDo'), '23.', '23.'); - assert.equal(moment([2011, 0, 24]).format('DDDo'), '24.', '24.'); - assert.equal(moment([2011, 0, 25]).format('DDDo'), '25.', '25.'); - assert.equal(moment([2011, 0, 26]).format('DDDo'), '26.', '26.'); - assert.equal(moment([2011, 0, 27]).format('DDDo'), '27.', '27.'); - assert.equal(moment([2011, 0, 28]).format('DDDo'), '28.', '28.'); - assert.equal(moment([2011, 0, 29]).format('DDDo'), '29.', '29.'); - assert.equal(moment([2011, 0, 30]).format('DDDo'), '30.', '30.'); - - assert.equal(moment([2011, 0, 31]).format('DDDo'), '31.', '31.'); -}); - -test('format month', function (assert) { - var expected = 'januar jan._februar feb._mart mar._april apr._maj maj_jun jun_jul jul_avgust avg._septembar sep._oktobar okt._novembar nov._decembar dec.'.split('_'), - i; - for (i = 0; i < expected.length; i++) { - assert.equal(moment([2011, i, 1]).format('MMMM MMM'), expected[i], expected[i]); - } -}); - -test('format week', function (assert) { - var expected = 'nedelja ned. ne_ponedeljak pon. po_utorak uto. ut_sreda sre. sr_četvrtak čet. če_petak pet. pe_subota sub. su'.split('_'), - i; - for (i = 0; i < expected.length; i++) { - assert.equal(moment([2011, 0, 2 + i]).format('dddd ddd dd'), expected[i], expected[i]); - } -}); - -test('from', function (assert) { - var start = moment([2007, 1, 28]); - assert.equal(start.from(moment([2007, 1, 28]).add({s: 44}), true), 'nekoliko sekundi', '44 seconds = a few seconds'); - assert.equal(start.from(moment([2007, 1, 28]).add({s: 45}), true), 'jedan minut', '45 seconds = a minute'); - assert.equal(start.from(moment([2007, 1, 28]).add({s: 89}), true), 'jedan minut', '89 seconds = a minute'); - assert.equal(start.from(moment([2007, 1, 28]).add({s: 90}), true), '2 minute', '90 seconds = 2 minutes'); - assert.equal(start.from(moment([2007, 1, 28]).add({m: 44}), true), '44 minuta', '44 minutes = 44 minutes'); - assert.equal(start.from(moment([2007, 1, 28]).add({m: 45}), true), 'jedan sat', '45 minutes = an hour'); - assert.equal(start.from(moment([2007, 1, 28]).add({m: 89}), true), 'jedan sat', '89 minutes = an hour'); - assert.equal(start.from(moment([2007, 1, 28]).add({m: 90}), true), '2 sata', '90 minutes = 2 hours'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 5}), true), '5 sati', '5 hours = 5 hours'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 21}), true), '21 sati', '21 hours = 21 hours'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 22}), true), 'dan', '22 hours = a day'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 35}), true), 'dan', '35 hours = a day'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 36}), true), '2 dana', '36 hours = 2 days'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 1}), true), 'dan', '1 day = a day'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 5}), true), '5 dana', '5 days = 5 days'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 25}), true), '25 dana', '25 days = 25 days'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 26}), true), 'mesec', '26 days = a month'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 30}), true), 'mesec', '30 days = a month'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 43}), true), 'mesec', '43 days = a month'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 46}), true), '2 meseca', '46 days = 2 months'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 74}), true), '2 meseca', '75 days = 2 months'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 76}), true), '3 meseca', '76 days = 3 months'); - assert.equal(start.from(moment([2007, 1, 28]).add({M: 1}), true), 'mesec', '1 month = a month'); - assert.equal(start.from(moment([2007, 1, 28]).add({M: 5}), true), '5 meseci', '5 months = 5 months'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 345}), true), 'godinu', '345 days = a year'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 548}), true), '2 godine', '548 days = 2 years'); - assert.equal(start.from(moment([2007, 1, 28]).add({y: 1}), true), 'godinu', '1 year = a year'); - assert.equal(start.from(moment([2007, 1, 28]).add({y: 5}), true), '5 godina', '5 years = 5 years'); -}); - -test('suffix', function (assert) { - assert.equal(moment(30000).from(0), 'za nekoliko sekundi', 'prefix'); - assert.equal(moment(0).from(30000), 'pre nekoliko sekundi', 'prefix'); -}); - -test('now from now', function (assert) { - assert.equal(moment().fromNow(), 'pre nekoliko sekundi', 'now from now should display as in the past'); -}); - -test('fromNow', function (assert) { - assert.equal(moment().add({s: 30}).fromNow(), 'za nekoliko sekundi', 'in a few seconds'); - assert.equal(moment().add({d: 5}).fromNow(), 'za 5 dana', 'in 5 days'); -}); - -test('calendar day', function (assert) { - var a = moment().hours(12).minutes(0).seconds(0); - - assert.equal(moment(a).calendar(), 'danas u 12:00', 'today at the same time'); - assert.equal(moment(a).add({m: 25}).calendar(), 'danas u 12:25', 'Now plus 25 min'); - assert.equal(moment(a).add({h: 1}).calendar(), 'danas u 13:00', 'Now plus 1 hour'); - assert.equal(moment(a).add({d: 1}).calendar(), 'sutra u 12:00', 'tomorrow at the same time'); - assert.equal(moment(a).subtract({h: 1}).calendar(), 'danas u 11:00', 'Now minus 1 hour'); - assert.equal(moment(a).subtract({d: 1}).calendar(), 'juče u 12:00', 'yesterday at the same time'); -}); - -test('calendar next week', function (assert) { - var i, m; - - function makeFormat(d) { - switch (d.day()) { - case 0: - return '[u] [nedelju] [u] LT'; - case 3: - return '[u] [sredu] [u] LT'; - case 6: - return '[u] [subotu] [u] LT'; - case 1: - case 2: - case 4: - case 5: - return '[u] dddd [u] LT'; - } - } - - for (i = 2; i < 7; i++) { - m = moment().add({d: i}); - assert.equal(m.calendar(), m.format(makeFormat(m)), 'Today + ' + i + ' days current time'); - m.hours(0).minutes(0).seconds(0).milliseconds(0); - assert.equal(m.calendar(), m.format(makeFormat(m)), 'Today + ' + i + ' days beginning of day'); - m.hours(23).minutes(59).seconds(59).milliseconds(999); - assert.equal(m.calendar(), m.format(makeFormat(m)), 'Today + ' + i + ' days end of day'); - } -}); - -test('calendar last week', function (assert) { - var i, m; - - function makeFormat(d) { - var lastWeekDay = [ - '[prošle] [nedelje] [u] LT', - '[prošlog] [ponedeljka] [u] LT', - '[prošlog] [utorka] [u] LT', - '[prošle] [srede] [u] LT', - '[prošlog] [četvrtka] [u] LT', - '[prošlog] [petka] [u] LT', - '[prošle] [subote] [u] LT' - ]; - - return lastWeekDay[d.day()]; - } - - for (i = 2; i < 7; i++) { - m = moment().subtract({d: i}); - assert.equal(m.calendar(), m.format(makeFormat(m)), 'Today - ' + i + ' days current time'); - m.hours(0).minutes(0).seconds(0).milliseconds(0); - assert.equal(m.calendar(), m.format(makeFormat(m)), 'Today - ' + i + ' days beginning of day'); - m.hours(23).minutes(59).seconds(59).milliseconds(999); - assert.equal(m.calendar(), m.format(makeFormat(m)), 'Today - ' + i + ' days end of day'); - } -}); - -test('calendar all else', function (assert) { - var weeksAgo = moment().subtract({w: 1}), - weeksFromNow = moment().add({w: 1}); - - assert.equal(weeksAgo.calendar(), weeksAgo.format('L'), '1 week ago'); - assert.equal(weeksFromNow.calendar(), weeksFromNow.format('L'), 'in 1 week'); - - weeksAgo = moment().subtract({w: 2}); - weeksFromNow = moment().add({w: 2}); - - assert.equal(weeksAgo.calendar(), weeksAgo.format('L'), '2 weeks ago'); - assert.equal(weeksFromNow.calendar(), weeksFromNow.format('L'), 'in 2 weeks'); -}); - -test('weeks year starting sunday formatted', function (assert) { - assert.equal(moment([2011, 11, 26]).format('w ww wo'), '1 01 1.', 'Dec 26 2011 should be week 1'); - assert.equal(moment([2012, 0, 1]).format('w ww wo'), '1 01 1.', 'Jan 1 2012 should be week 1'); - assert.equal(moment([2012, 0, 2]).format('w ww wo'), '2 02 2.', 'Jan 2 2012 should be week 2'); - assert.equal(moment([2012, 0, 8]).format('w ww wo'), '2 02 2.', 'Jan 8 2012 should be week 2'); - assert.equal(moment([2012, 0, 9]).format('w ww wo'), '3 03 3.', 'Jan 9 2012 should be week 3'); -}); - -}))); - - -;(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' - && typeof require === 'function' ? factory(require('../../moment')) : - typeof define === 'function' && define.amd ? define(['../../moment'], factory) : - factory(global.moment) -}(this, (function (moment) { 'use strict'; - -function each(array, callback) { - var i; - for (i = 0; i < array.length; i++) { - callback(array[i], i, array); - } -} - -function objectKeys(obj) { - if (Object.keys) { - return Object.keys(obj); - } else { - // IE8 - var res = [], i; - for (i in obj) { - if (obj.hasOwnProperty(i)) { - res.push(i); - } - } - return res; - } -} - -// Pick the first defined of two or three arguments. - -function defineCommonLocaleTests(locale, options) { - test('lenient day of month ordinal parsing', function (assert) { - var i, ordinalStr, testMoment; - for (i = 1; i <= 31; ++i) { - ordinalStr = moment([2014, 0, i]).format('YYYY MM Do'); - testMoment = moment(ordinalStr, 'YYYY MM Do'); - assert.equal(testMoment.year(), 2014, - 'lenient day of month ordinal parsing ' + i + ' year check'); - assert.equal(testMoment.month(), 0, - 'lenient day of month ordinal parsing ' + i + ' month check'); - assert.equal(testMoment.date(), i, - 'lenient day of month ordinal parsing ' + i + ' date check'); - } - }); - - test('lenient day of month ordinal parsing of number', function (assert) { - var i, testMoment; - for (i = 1; i <= 31; ++i) { - testMoment = moment('2014 01 ' + i, 'YYYY MM Do'); - assert.equal(testMoment.year(), 2014, - 'lenient day of month ordinal parsing of number ' + i + ' year check'); - assert.equal(testMoment.month(), 0, - 'lenient day of month ordinal parsing of number ' + i + ' month check'); - assert.equal(testMoment.date(), i, - 'lenient day of month ordinal parsing of number ' + i + ' date check'); - } - }); - - test('strict day of month ordinal parsing', function (assert) { - var i, ordinalStr, testMoment; - for (i = 1; i <= 31; ++i) { - ordinalStr = moment([2014, 0, i]).format('YYYY MM Do'); - testMoment = moment(ordinalStr, 'YYYY MM Do', true); - assert.ok(testMoment.isValid(), 'strict day of month ordinal parsing ' + i); - } - }); - - test('meridiem invariant', function (assert) { - var h, m, t1, t2; - for (h = 0; h < 24; ++h) { - for (m = 0; m < 60; m += 15) { - t1 = moment.utc([2000, 0, 1, h, m]); - t2 = moment.utc(t1.format('A h:mm'), 'A h:mm'); - assert.equal(t2.format('HH:mm'), t1.format('HH:mm'), - 'meridiem at ' + t1.format('HH:mm')); - } - } - }); - - test('date format correctness', function (assert) { - var data, tokens; - data = moment.localeData()._longDateFormat; - tokens = objectKeys(data); - each(tokens, function (srchToken) { - // Check each format string to make sure it does not contain any - // tokens that need to be expanded. - each(tokens, function (baseToken) { - // strip escaped sequences - var format = data[baseToken].replace(/(\[[^\]]*\])/g, ''); - assert.equal(false, !!~format.indexOf(srchToken), - 'contains ' + srchToken + ' in ' + baseToken); - }); - }); - }); - - test('month parsing correctness', function (assert) { - var i, m; - - if (locale === 'tr') { - // I can't fix it :( - expect(0); - return; - } - function tester(format) { - var r; - r = moment(m.format(format), format); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format); - r = moment(m.format(format).toLocaleUpperCase(), format); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' upper'); - r = moment(m.format(format).toLocaleLowerCase(), format); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' lower'); - - r = moment(m.format(format), format, true); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' strict'); - r = moment(m.format(format).toLocaleUpperCase(), format, true); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' upper strict'); - r = moment(m.format(format).toLocaleLowerCase(), format, true); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' lower strict'); - } - - for (i = 0; i < 12; ++i) { - m = moment([2015, i, 15, 18]); - tester('MMM'); - tester('MMM.'); - tester('MMMM'); - tester('MMMM.'); - } - }); - - test('weekday parsing correctness', function (assert) { - var i, m; - - if (locale === 'tr' || locale === 'az' || locale === 'ro') { - // tr, az: There is a lower-case letter (ı), that converted to - // upper then lower changes to i - // ro: there is the letter ț which behaves weird under IE8 - expect(0); - return; - } - function tester(format) { - var r, baseMsg = 'weekday ' + m.weekday() + ' fmt ' + format + ' ' + m.toISOString(); - r = moment(m.format(format), format); - assert.equal(r.weekday(), m.weekday(), baseMsg); - r = moment(m.format(format).toLocaleUpperCase(), format); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' upper'); - r = moment(m.format(format).toLocaleLowerCase(), format); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' lower'); - - r = moment(m.format(format), format, true); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' strict'); - r = moment(m.format(format).toLocaleUpperCase(), format, true); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' upper strict'); - r = moment(m.format(format).toLocaleLowerCase(), format, true); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' lower strict'); - } - - for (i = 0; i < 7; ++i) { - m = moment.utc([2015, 0, i + 1, 18]); - tester('dd'); - tester('ddd'); - tester('dddd'); - } - }); - - test('valid localeData', function (assert) { - assert.equal(moment().localeData().months().length, 12, 'months should return 12 months'); - assert.equal(moment().localeData().monthsShort().length, 12, 'monthsShort should return 12 months'); - assert.equal(moment().localeData().weekdays().length, 7, 'weekdays should return 7 days'); - assert.equal(moment().localeData().weekdaysShort().length, 7, 'weekdaysShort should return 7 days'); - assert.equal(moment().localeData().weekdaysMin().length, 7, 'monthsShort should return 7 days'); - }); -} - -function setupDeprecationHandler(test, moment$$1, scope) { - test._expectedDeprecations = null; - test._observedDeprecations = null; - test._oldSupress = moment$$1.suppressDeprecationWarnings; - moment$$1.suppressDeprecationWarnings = true; - test.expectedDeprecations = function () { - test._expectedDeprecations = arguments; - test._observedDeprecations = []; - }; - moment$$1.deprecationHandler = function (name, msg) { - var deprecationId = matchedDeprecation(name, msg, test._expectedDeprecations); - if (deprecationId === -1) { - throw new Error('Unexpected deprecation thrown name=' + - name + ' msg=' + msg); - } - test._observedDeprecations[deprecationId] = 1; - }; -} - -function teardownDeprecationHandler(test, moment$$1, scope) { - moment$$1.suppressDeprecationWarnings = test._oldSupress; - - if (test._expectedDeprecations != null) { - var missedDeprecations = []; - each(test._expectedDeprecations, function (deprecationPattern, id) { - if (test._observedDeprecations[id] !== 1) { - missedDeprecations.push(deprecationPattern); - } - }); - if (missedDeprecations.length !== 0) { - throw new Error('Expected deprecation warnings did not happen: ' + - missedDeprecations.join(' ')); - } - } -} - -function matchedDeprecation(name, msg, deprecations) { - if (deprecations == null) { - return -1; - } - for (var i = 0; i < deprecations.length; ++i) { - if (name != null && name === deprecations[i]) { - return i; - } - if (msg != null && msg.substring(0, deprecations[i].length) === deprecations[i]) { - return i; - } - } - return -1; -} - -/*global QUnit:false*/ - -var test = QUnit.test; - -var expect = QUnit.expect; - - - -function localeModule (name, lifecycle) { - QUnit.module('locale:' + name, { - setup : function () { - moment.locale(name); - moment.createFromInputFallback = function (config) { - throw new Error('input not handled by moment: ' + config._i); - }; - setupDeprecationHandler(test, moment, 'locale'); - if (lifecycle && lifecycle.setup) { - lifecycle.setup(); - } - }, - teardown : function () { - moment.locale('en'); - teardownDeprecationHandler(test, moment, 'locale'); - if (lifecycle && lifecycle.teardown) { - lifecycle.teardown(); - } - } - }); - defineCommonLocaleTests(name, -1, -1); -} - -localeModule('ss'); - -test('parse', function (assert) { - var tests = "Bhimbidvwane Bhi_Indlovana Ina_Indlov'lenkhulu Inu_Mabasa Mab_Inkhwekhweti Ink_Inhlaba Inh_Kholwane Kho_Ingci Igc_Inyoni Iny_Imphala Imp_Lweti lwe_Ingongoni Igo".split('_'), i; - function equalTest(input, mmm, i) { - assert.equal(moment(input, mmm).month(), i, input + ' should be month ' + (i + 1)); - } - for (i = 0; i < 12; i++) { - tests[i] = tests[i].split(' '); - equalTest(tests[i][0], 'MMM', i); - equalTest(tests[i][1], 'MMM', i); - equalTest(tests[i][0], 'MMMM', i); - equalTest(tests[i][1], 'MMMM', i); - equalTest(tests[i][0].toLocaleLowerCase(), 'MMMM', i); - equalTest(tests[i][1].toLocaleLowerCase(), 'MMMM', i); - equalTest(tests[i][0].toLocaleUpperCase(), 'MMMM', i); - equalTest(tests[i][1].toLocaleUpperCase(), 'MMMM', i); - } -}); - -test('parse meridiem', function (assert) { - var i, - b = moment(), - meridiemTests = [ - // h a patterns, expected hours, isValid - ['10 ekuseni', 10, true], - ['11 emini', 11, true], - ['3 entsambama', 15, true], - ['4 entsambama', 16, true], - ['6 entsambama', 18, true], - ['7 ebusuku', 19, true], - ['12 ebusuku', 0, true], - ['10 am', 10, false], - ['10 pm', 10, false] - ], - parsed; - - // test that a formatted moment including meridiem string can be parsed back to the same moment - assert.ok(b.isSame(moment(b.format('h:mm:ss a'), 'h:mm:ss a', 'ss', true), 'seconds'), b.format('h:mm:ss a') + ' should be equal to ' + moment(b.format('h:mm:ss a'), 'h:mm:ss a', 'ss', true).format('h:mm:ss a')); - - // test that a formatted moment having a meridiem string can be parsed with strict flag - assert.ok(moment(b.format('h:mm:ss a'), 'h:mm:ss a', 'ss', true).isValid(), b.format('h:mm:ss a') + ' should be parsed as valid'); - - for (i = 0; i < meridiemTests.length; i++) { - parsed = moment(meridiemTests[i][0], 'h a', 'ss', true); - assert.equal(parsed.isValid(), meridiemTests[i][2], 'validity for ' + meridiemTests[i][0]); - if (parsed.isValid()) { - assert.equal(parsed.hours(), meridiemTests[i][1], 'hours for ' + meridiemTests[i][0]); - } - } -}); - -test('format', function (assert) { - var a = [ - ['dddd, MMMM Do YYYY, h:mm:ss a', 'Lisontfo, Indlovana 14 2010, 3:25:50 entsambama'], - ['ddd, h A', 'Lis, 3 entsambama'], - ['M Mo MM MMMM MMM', '2 2 02 Indlovana Ina'], - ['YYYY YY', '2010 10'], - ['D Do DD', '14 14 14'], - ['d do dddd ddd dd', '0 0 Lisontfo Lis Li'], - ['DDD DDDo DDDD', '45 45 045'], - ['w wo ww', '6 6 06'], - ['h hh', '3 03'], - ['H HH', '15 15'], - ['m mm', '25 25'], - ['s ss', '50 50'], - ['a A', 'entsambama entsambama'], - ['[Lilanga] DDDo [lilanga lelinyaka]', 'Lilanga 45 lilanga lelinyaka'], - ['LTS', '3:25:50 entsambama'], - ['L', '14/02/2010'], - ['LL', '14 Indlovana 2010'], - ['LLL', '14 Indlovana 2010 3:25 entsambama'], - ['LLLL', 'Lisontfo, 14 Indlovana 2010 3:25 entsambama'], - ['l', '14/2/2010'], - ['ll', '14 Ina 2010'], - ['lll', '14 Ina 2010 3:25 entsambama'], - ['llll', 'Lis, 14 Ina 2010 3:25 entsambama'] - ], - b = moment(new Date(2010, 1, 14, 15, 25, 50, 125)), - i; - for (i = 0; i < a.length; i++) { - assert.equal(b.format(a[i][0]), a[i][1], a[i][0] + ' ---> ' + a[i][1]); - } -}); - -test('format ordinal', function (assert) { - assert.equal(moment([2011, 0, 1]).format('DDDo'), '1', '1'); - assert.equal(moment([2011, 0, 2]).format('DDDo'), '2', '2'); - assert.equal(moment([2011, 0, 3]).format('DDDo'), '3', '3'); - assert.equal(moment([2011, 0, 4]).format('DDDo'), '4', '4'); - assert.equal(moment([2011, 0, 5]).format('DDDo'), '5', '5'); - assert.equal(moment([2011, 0, 6]).format('DDDo'), '6', '6'); - assert.equal(moment([2011, 0, 7]).format('DDDo'), '7', '7'); - assert.equal(moment([2011, 0, 8]).format('DDDo'), '8', '8'); - assert.equal(moment([2011, 0, 9]).format('DDDo'), '9', '9'); - assert.equal(moment([2011, 0, 10]).format('DDDo'), '10', '10'); - - assert.equal(moment([2011, 0, 11]).format('DDDo'), '11', '11'); - assert.equal(moment([2011, 0, 12]).format('DDDo'), '12', '12'); - assert.equal(moment([2011, 0, 13]).format('DDDo'), '13', '13'); - assert.equal(moment([2011, 0, 14]).format('DDDo'), '14', '14'); - assert.equal(moment([2011, 0, 15]).format('DDDo'), '15', '15'); - assert.equal(moment([2011, 0, 16]).format('DDDo'), '16', '16'); - assert.equal(moment([2011, 0, 17]).format('DDDo'), '17', '17'); - assert.equal(moment([2011, 0, 18]).format('DDDo'), '18', '18'); - assert.equal(moment([2011, 0, 19]).format('DDDo'), '19', '19'); - assert.equal(moment([2011, 0, 20]).format('DDDo'), '20', '20'); - - assert.equal(moment([2011, 0, 21]).format('DDDo'), '21', '21'); - assert.equal(moment([2011, 0, 22]).format('DDDo'), '22', '22'); - assert.equal(moment([2011, 0, 23]).format('DDDo'), '23', '23'); - assert.equal(moment([2011, 0, 24]).format('DDDo'), '24', '24'); - assert.equal(moment([2011, 0, 25]).format('DDDo'), '25', '25'); - assert.equal(moment([2011, 0, 26]).format('DDDo'), '26', '26'); - assert.equal(moment([2011, 0, 27]).format('DDDo'), '27', '27'); - assert.equal(moment([2011, 0, 28]).format('DDDo'), '28', '28'); - assert.equal(moment([2011, 0, 29]).format('DDDo'), '29', '29'); - assert.equal(moment([2011, 0, 30]).format('DDDo'), '30', '30'); - - assert.equal(moment([2011, 0, 31]).format('DDDo'), '31', '31'); -}); - -test('format month', function (assert) { - var expected = "Bhimbidvwane Bhi_Indlovana Ina_Indlov'lenkhulu Inu_Mabasa Mab_Inkhwekhweti Ink_Inhlaba Inh_Kholwane Kho_Ingci Igc_Inyoni Iny_Imphala Imp_Lweti Lwe_Ingongoni Igo".split('_'), i; - for (i = 0; i < expected.length; i++) { - assert.equal(moment([2011, i, 1]).format('MMMM MMM'), expected[i], expected[i]); - } -}); - -test('format week', function (assert) { - var expected = 'Lisontfo Lis Li_Umsombuluko Umb Us_Lesibili Lsb Lb_Lesitsatfu Les Lt_Lesine Lsi Ls_Lesihlanu Lsh Lh_Umgcibelo Umg Ug'.split('_'), i; - for (i = 0; i < expected.length; i++) { - assert.equal(moment([2011, 0, 2 + i]).format('dddd ddd dd'), expected[i], expected[i]); - } -}); - -test('from', function (assert) { - var start = moment([2007, 1, 28]); - assert.equal(start.from(moment([2007, 1, 28]).add({s: 44}), true), 'emizuzwana lomcane', '44 seconds = a few seconds'); - assert.equal(start.from(moment([2007, 1, 28]).add({s: 45}), true), 'umzuzu', '45 seconds = a minute'); - assert.equal(start.from(moment([2007, 1, 28]).add({s: 89}), true), 'umzuzu', '89 seconds = a minute'); - assert.equal(start.from(moment([2007, 1, 28]).add({s: 90}), true), '2 emizuzu', '90 seconds = 2 minutes'); - assert.equal(start.from(moment([2007, 1, 28]).add({m: 44}), true), '44 emizuzu', '44 minutes = 44 minutes'); - assert.equal(start.from(moment([2007, 1, 28]).add({m: 45}), true), 'lihora', '45 minutes = an hour'); - assert.equal(start.from(moment([2007, 1, 28]).add({m: 89}), true), 'lihora', '89 minutes = an hour'); - assert.equal(start.from(moment([2007, 1, 28]).add({m: 90}), true), '2 emahora', '90 minutes = 2 hours'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 5}), true), '5 emahora', '5 hours = 5 hours'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 21}), true), '21 emahora', '21 hours = 21 hours'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 22}), true), 'lilanga', '22 hours = a day'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 35}), true), 'lilanga', '35 hours = a day'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 36}), true), '2 emalanga', '36 hours = 2 days'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 1}), true), 'lilanga', '1 day = a day'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 5}), true), '5 emalanga', '5 days = 5 days'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 25}), true), '25 emalanga', '25 days = 25 days'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 26}), true), 'inyanga', '26 days = a month'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 30}), true), 'inyanga', '30 days = a month'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 43}), true), 'inyanga', '43 days = a month'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 46}), true), '2 tinyanga', '46 days = 2 months'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 74}), true), '2 tinyanga', '75 days = 2 months'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 76}), true), '3 tinyanga', '76 days = 3 months'); - assert.equal(start.from(moment([2007, 1, 28]).add({M: 1}), true), 'inyanga', '1 month = a month'); - assert.equal(start.from(moment([2007, 1, 28]).add({M: 5}), true), '5 tinyanga', '5 months = 5 months'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 345}), true), 'umnyaka', '345 days = a year'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 548}), true), '2 iminyaka', '548 days = 2 years'); - assert.equal(start.from(moment([2007, 1, 28]).add({y: 1}), true), 'umnyaka', '1 year = a year'); - assert.equal(start.from(moment([2007, 1, 28]).add({y: 5}), true), '5 iminyaka', '5 years = 5 years'); -}); - -test('suffix', function (assert) { - assert.equal(moment(30000).from(0), 'nga emizuzwana lomcane', 'prefix'); - assert.equal(moment(0).from(30000), 'wenteka nga emizuzwana lomcane', 'suffix'); -}); - -test('now from now', function (assert) { - assert.equal(moment().fromNow(), 'wenteka nga emizuzwana lomcane', 'now from now should display as in the past'); -}); - -test('fromNow', function (assert) { - assert.equal(moment().add({s: 30}).fromNow(), 'nga emizuzwana lomcane', 'in a few seconds'); - assert.equal(moment().add({d: 5}).fromNow(), 'nga 5 emalanga', 'in 5 days'); -}); - -test('calendar day', function (assert) { - var a = moment().hours(12).minutes(0).seconds(0); - - assert.equal(moment(a).calendar(), 'Namuhla nga 12:00 emini', 'Today at the same time'); - assert.equal(moment(a).add({m: 25}).calendar(), 'Namuhla nga 12:25 emini', 'Now plus 25 min'); - assert.equal(moment(a).add({h: 1}).calendar(), 'Namuhla nga 1:00 emini', 'Now plus 1 hour'); - assert.equal(moment(a).add({d: 1}).calendar(), 'Kusasa nga 12:00 emini', 'tomorrow at the same time'); - assert.equal(moment(a).subtract({h: 1}).calendar(), 'Namuhla nga 11:00 emini', 'Now minus 1 hour'); - assert.equal(moment(a).subtract({d: 1}).calendar(), 'Itolo nga 12:00 emini', 'yesterday at the same time'); -}); - -test('calendar next week', function (assert) { - var i, m; - for (i = 2; i < 7; i++) { - m = moment().add({d: i}); - assert.equal(m.calendar(), m.format('dddd [nga] LT'), 'Today + ' + i + ' days current time'); - m.hours(0).minutes(0).seconds(0).milliseconds(0); - assert.equal(m.calendar(), m.format('dddd [nga] LT'), 'Today + ' + i + ' days beginning of day'); - m.hours(23).minutes(59).seconds(59).milliseconds(999); - assert.equal(m.calendar(), m.format('dddd [nga] LT'), 'Today + ' + i + ' days end of day'); - } -}); - -test('calendar last week', function (assert) { - var i, m; - - for (i = 2; i < 7; i++) { - m = moment().subtract({d: i}); - assert.equal(m.calendar(), m.format('dddd [leliphelile] [nga] LT'), 'Today - ' + i + ' days current time'); - m.hours(0).minutes(0).seconds(0).milliseconds(0); - assert.equal(m.calendar(), m.format('dddd [leliphelile] [nga] LT'), 'Today - ' + i + ' days beginning of day'); - m.hours(23).minutes(59).seconds(59).milliseconds(999); - assert.equal(m.calendar(), m.format('dddd [leliphelile] [nga] LT'), 'Today - ' + i + ' days end of day'); - } -}); - -test('calendar all else', function (assert) { - var weeksAgo = moment().subtract({w: 1}), - weeksFromNow = moment().add({w: 1}); - - assert.equal(weeksAgo.calendar(), weeksAgo.format('L'), '1 week ago'); - assert.equal(weeksFromNow.calendar(), weeksFromNow.format('L'), 'in 1 week'); - - weeksAgo = moment().subtract({w: 2}); - weeksFromNow = moment().add({w: 2}); - - assert.equal(weeksAgo.calendar(), weeksAgo.format('L'), '2 weeks ago'); - assert.equal(weeksFromNow.calendar(), weeksFromNow.format('L'), 'in 2 weeks'); -}); - -test('weeks year starting sunday formatted', function (assert) { - assert.equal(moment([2012, 0, 1]).format('w ww wo'), '52 52 52', 'Jan 1 2012 should be week 52'); - assert.equal(moment([2012, 0, 2]).format('w ww wo'), '1 01 1', 'Jan 4 2012 should be week 1'); - assert.equal(moment([2012, 0, 8]).format('w ww wo'), '1 01 1', 'Jan 8 2012 should be week 1'); - assert.equal(moment([2012, 0, 9]).format('w ww wo'), '2 02 2', 'Jan 9 2012 should be week 2'); - assert.equal(moment([2012, 0, 15]).format('w ww wo'), '2 02 2', 'Jan 15 2012 should be week 2'); -}); - -}))); - - -;(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' - && typeof require === 'function' ? factory(require('../../moment')) : - typeof define === 'function' && define.amd ? define(['../../moment'], factory) : - factory(global.moment) -}(this, (function (moment) { 'use strict'; - -function each(array, callback) { - var i; - for (i = 0; i < array.length; i++) { - callback(array[i], i, array); - } -} - -function objectKeys(obj) { - if (Object.keys) { - return Object.keys(obj); - } else { - // IE8 - var res = [], i; - for (i in obj) { - if (obj.hasOwnProperty(i)) { - res.push(i); - } - } - return res; - } -} - -// Pick the first defined of two or three arguments. - -function defineCommonLocaleTests(locale, options) { - test('lenient day of month ordinal parsing', function (assert) { - var i, ordinalStr, testMoment; - for (i = 1; i <= 31; ++i) { - ordinalStr = moment([2014, 0, i]).format('YYYY MM Do'); - testMoment = moment(ordinalStr, 'YYYY MM Do'); - assert.equal(testMoment.year(), 2014, - 'lenient day of month ordinal parsing ' + i + ' year check'); - assert.equal(testMoment.month(), 0, - 'lenient day of month ordinal parsing ' + i + ' month check'); - assert.equal(testMoment.date(), i, - 'lenient day of month ordinal parsing ' + i + ' date check'); - } - }); - - test('lenient day of month ordinal parsing of number', function (assert) { - var i, testMoment; - for (i = 1; i <= 31; ++i) { - testMoment = moment('2014 01 ' + i, 'YYYY MM Do'); - assert.equal(testMoment.year(), 2014, - 'lenient day of month ordinal parsing of number ' + i + ' year check'); - assert.equal(testMoment.month(), 0, - 'lenient day of month ordinal parsing of number ' + i + ' month check'); - assert.equal(testMoment.date(), i, - 'lenient day of month ordinal parsing of number ' + i + ' date check'); - } - }); - - test('strict day of month ordinal parsing', function (assert) { - var i, ordinalStr, testMoment; - for (i = 1; i <= 31; ++i) { - ordinalStr = moment([2014, 0, i]).format('YYYY MM Do'); - testMoment = moment(ordinalStr, 'YYYY MM Do', true); - assert.ok(testMoment.isValid(), 'strict day of month ordinal parsing ' + i); - } - }); - - test('meridiem invariant', function (assert) { - var h, m, t1, t2; - for (h = 0; h < 24; ++h) { - for (m = 0; m < 60; m += 15) { - t1 = moment.utc([2000, 0, 1, h, m]); - t2 = moment.utc(t1.format('A h:mm'), 'A h:mm'); - assert.equal(t2.format('HH:mm'), t1.format('HH:mm'), - 'meridiem at ' + t1.format('HH:mm')); - } - } - }); - - test('date format correctness', function (assert) { - var data, tokens; - data = moment.localeData()._longDateFormat; - tokens = objectKeys(data); - each(tokens, function (srchToken) { - // Check each format string to make sure it does not contain any - // tokens that need to be expanded. - each(tokens, function (baseToken) { - // strip escaped sequences - var format = data[baseToken].replace(/(\[[^\]]*\])/g, ''); - assert.equal(false, !!~format.indexOf(srchToken), - 'contains ' + srchToken + ' in ' + baseToken); - }); - }); - }); - - test('month parsing correctness', function (assert) { - var i, m; - - if (locale === 'tr') { - // I can't fix it :( - expect(0); - return; - } - function tester(format) { - var r; - r = moment(m.format(format), format); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format); - r = moment(m.format(format).toLocaleUpperCase(), format); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' upper'); - r = moment(m.format(format).toLocaleLowerCase(), format); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' lower'); - - r = moment(m.format(format), format, true); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' strict'); - r = moment(m.format(format).toLocaleUpperCase(), format, true); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' upper strict'); - r = moment(m.format(format).toLocaleLowerCase(), format, true); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' lower strict'); - } - - for (i = 0; i < 12; ++i) { - m = moment([2015, i, 15, 18]); - tester('MMM'); - tester('MMM.'); - tester('MMMM'); - tester('MMMM.'); - } - }); - - test('weekday parsing correctness', function (assert) { - var i, m; - - if (locale === 'tr' || locale === 'az' || locale === 'ro') { - // tr, az: There is a lower-case letter (ı), that converted to - // upper then lower changes to i - // ro: there is the letter ț which behaves weird under IE8 - expect(0); - return; - } - function tester(format) { - var r, baseMsg = 'weekday ' + m.weekday() + ' fmt ' + format + ' ' + m.toISOString(); - r = moment(m.format(format), format); - assert.equal(r.weekday(), m.weekday(), baseMsg); - r = moment(m.format(format).toLocaleUpperCase(), format); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' upper'); - r = moment(m.format(format).toLocaleLowerCase(), format); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' lower'); - - r = moment(m.format(format), format, true); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' strict'); - r = moment(m.format(format).toLocaleUpperCase(), format, true); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' upper strict'); - r = moment(m.format(format).toLocaleLowerCase(), format, true); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' lower strict'); - } - - for (i = 0; i < 7; ++i) { - m = moment.utc([2015, 0, i + 1, 18]); - tester('dd'); - tester('ddd'); - tester('dddd'); - } - }); - - test('valid localeData', function (assert) { - assert.equal(moment().localeData().months().length, 12, 'months should return 12 months'); - assert.equal(moment().localeData().monthsShort().length, 12, 'monthsShort should return 12 months'); - assert.equal(moment().localeData().weekdays().length, 7, 'weekdays should return 7 days'); - assert.equal(moment().localeData().weekdaysShort().length, 7, 'weekdaysShort should return 7 days'); - assert.equal(moment().localeData().weekdaysMin().length, 7, 'monthsShort should return 7 days'); - }); -} - -function setupDeprecationHandler(test, moment$$1, scope) { - test._expectedDeprecations = null; - test._observedDeprecations = null; - test._oldSupress = moment$$1.suppressDeprecationWarnings; - moment$$1.suppressDeprecationWarnings = true; - test.expectedDeprecations = function () { - test._expectedDeprecations = arguments; - test._observedDeprecations = []; - }; - moment$$1.deprecationHandler = function (name, msg) { - var deprecationId = matchedDeprecation(name, msg, test._expectedDeprecations); - if (deprecationId === -1) { - throw new Error('Unexpected deprecation thrown name=' + - name + ' msg=' + msg); - } - test._observedDeprecations[deprecationId] = 1; - }; -} - -function teardownDeprecationHandler(test, moment$$1, scope) { - moment$$1.suppressDeprecationWarnings = test._oldSupress; - - if (test._expectedDeprecations != null) { - var missedDeprecations = []; - each(test._expectedDeprecations, function (deprecationPattern, id) { - if (test._observedDeprecations[id] !== 1) { - missedDeprecations.push(deprecationPattern); - } - }); - if (missedDeprecations.length !== 0) { - throw new Error('Expected deprecation warnings did not happen: ' + - missedDeprecations.join(' ')); - } - } -} - -function matchedDeprecation(name, msg, deprecations) { - if (deprecations == null) { - return -1; - } - for (var i = 0; i < deprecations.length; ++i) { - if (name != null && name === deprecations[i]) { - return i; - } - if (msg != null && msg.substring(0, deprecations[i].length) === deprecations[i]) { - return i; - } - } - return -1; -} - -/*global QUnit:false*/ - -var test = QUnit.test; - -var expect = QUnit.expect; - - - -function localeModule (name, lifecycle) { - QUnit.module('locale:' + name, { - setup : function () { - moment.locale(name); - moment.createFromInputFallback = function (config) { - throw new Error('input not handled by moment: ' + config._i); - }; - setupDeprecationHandler(test, moment, 'locale'); - if (lifecycle && lifecycle.setup) { - lifecycle.setup(); - } - }, - teardown : function () { - moment.locale('en'); - teardownDeprecationHandler(test, moment, 'locale'); - if (lifecycle && lifecycle.teardown) { - lifecycle.teardown(); - } - } - }); - defineCommonLocaleTests(name, -1, -1); -} - -localeModule('sv'); - -test('parse', function (assert) { - var tests = 'januari jan_februari feb_mars mar_april apr_maj maj_juni jun_juli jul_augusti aug_september sep_oktober okt_november nov_december dec'.split('_'), i; - function equalTest(input, mmm, i) { - assert.equal(moment(input, mmm).month(), i, input + ' should be month ' + (i + 1)); - } - for (i = 0; i < 12; i++) { - tests[i] = tests[i].split(' '); - equalTest(tests[i][0], 'MMM', i); - equalTest(tests[i][1], 'MMM', i); - equalTest(tests[i][0], 'MMMM', i); - equalTest(tests[i][1], 'MMMM', i); - equalTest(tests[i][0].toLocaleLowerCase(), 'MMMM', i); - equalTest(tests[i][1].toLocaleLowerCase(), 'MMMM', i); - equalTest(tests[i][0].toLocaleUpperCase(), 'MMMM', i); - equalTest(tests[i][1].toLocaleUpperCase(), 'MMMM', i); - } -}); - -test('format', function (assert) { - var a = [ - ['dddd, MMMM Do YYYY, h:mm:ss a', 'söndag, februari 14e 2010, 3:25:50 pm'], - ['ddd, hA', 'sön, 3PM'], - ['M Mo MM MMMM MMM', '2 2a 02 februari feb'], - ['YYYY YY', '2010 10'], - ['D Do DD', '14 14e 14'], - ['d do dddd ddd dd', '0 0e söndag sön sö'], - ['DDD DDDo DDDD', '45 45e 045'], - ['w wo ww', '6 6e 06'], - ['h hh', '3 03'], - ['H HH', '15 15'], - ['m mm', '25 25'], - ['s ss', '50 50'], - ['a A', 'pm PM'], - ['[the] DDDo [day of the year]', 'the 45e day of the year'], - ['LTS', '15:25:50'], - ['L', '2010-02-14'], - ['LL', '14 februari 2010'], - ['LLL', '14 februari 2010 kl. 15:25'], - ['LLLL', 'söndag 14 februari 2010 kl. 15:25'], - ['l', '2010-2-14'], - ['ll', '14 feb 2010'], - ['lll', '14 feb 2010 15:25'], - ['llll', 'sön 14 feb 2010 15:25'] - ], - b = moment(new Date(2010, 1, 14, 15, 25, 50, 125)), - i; - for (i = 0; i < a.length; i++) { - assert.equal(b.format(a[i][0]), a[i][1], a[i][0] + ' ---> ' + a[i][1]); - } -}); - -test('format ordinal', function (assert) { - assert.equal(moment([2011, 0, 1]).format('DDDo'), '1a', '1a'); - assert.equal(moment([2011, 0, 2]).format('DDDo'), '2a', '2a'); - assert.equal(moment([2011, 0, 3]).format('DDDo'), '3e', '3e'); - assert.equal(moment([2011, 0, 4]).format('DDDo'), '4e', '4e'); - assert.equal(moment([2011, 0, 5]).format('DDDo'), '5e', '5e'); - assert.equal(moment([2011, 0, 6]).format('DDDo'), '6e', '6e'); - assert.equal(moment([2011, 0, 7]).format('DDDo'), '7e', '7e'); - assert.equal(moment([2011, 0, 8]).format('DDDo'), '8e', '8e'); - assert.equal(moment([2011, 0, 9]).format('DDDo'), '9e', '9e'); - assert.equal(moment([2011, 0, 10]).format('DDDo'), '10e', '10e'); - - assert.equal(moment([2011, 0, 11]).format('DDDo'), '11e', '11e'); - assert.equal(moment([2011, 0, 12]).format('DDDo'), '12e', '12e'); - assert.equal(moment([2011, 0, 13]).format('DDDo'), '13e', '13e'); - assert.equal(moment([2011, 0, 14]).format('DDDo'), '14e', '14e'); - assert.equal(moment([2011, 0, 15]).format('DDDo'), '15e', '15e'); - assert.equal(moment([2011, 0, 16]).format('DDDo'), '16e', '16e'); - assert.equal(moment([2011, 0, 17]).format('DDDo'), '17e', '17e'); - assert.equal(moment([2011, 0, 18]).format('DDDo'), '18e', '18e'); - assert.equal(moment([2011, 0, 19]).format('DDDo'), '19e', '19e'); - assert.equal(moment([2011, 0, 20]).format('DDDo'), '20e', '20e'); - - assert.equal(moment([2011, 0, 21]).format('DDDo'), '21a', '21a'); - assert.equal(moment([2011, 0, 22]).format('DDDo'), '22a', '22a'); - assert.equal(moment([2011, 0, 23]).format('DDDo'), '23e', '23e'); - assert.equal(moment([2011, 0, 24]).format('DDDo'), '24e', '24e'); - assert.equal(moment([2011, 0, 25]).format('DDDo'), '25e', '25e'); - assert.equal(moment([2011, 0, 26]).format('DDDo'), '26e', '26e'); - assert.equal(moment([2011, 0, 27]).format('DDDo'), '27e', '27e'); - assert.equal(moment([2011, 0, 28]).format('DDDo'), '28e', '28e'); - assert.equal(moment([2011, 0, 29]).format('DDDo'), '29e', '29e'); - assert.equal(moment([2011, 0, 30]).format('DDDo'), '30e', '30e'); - - assert.equal(moment([2011, 0, 31]).format('DDDo'), '31a', '31a'); -}); - -test('format month', function (assert) { - var expected = 'januari jan_februari feb_mars mar_april apr_maj maj_juni jun_juli jul_augusti aug_september sep_oktober okt_november nov_december dec'.split('_'), i; - for (i = 0; i < expected.length; i++) { - assert.equal(moment([2011, i, 1]).format('MMMM MMM'), expected[i], expected[i]); - } -}); - -test('format week', function (assert) { - var expected = 'söndag sön sö_måndag mån må_tisdag tis ti_onsdag ons on_torsdag tor to_fredag fre fr_lördag lör lö'.split('_'), i; - for (i = 0; i < expected.length; i++) { - assert.equal(moment([2011, 0, 2 + i]).format('dddd ddd dd'), expected[i], expected[i]); - } -}); - -test('from', function (assert) { - var start = moment([2007, 1, 28]); - assert.equal(start.from(moment([2007, 1, 28]).add({s: 44}), true), 'några sekunder', '44 seconds = a few seconds'); - assert.equal(start.from(moment([2007, 1, 28]).add({s: 45}), true), 'en minut', '45 seconds = a minute'); - assert.equal(start.from(moment([2007, 1, 28]).add({s: 89}), true), 'en minut', '89 seconds = a minute'); - assert.equal(start.from(moment([2007, 1, 28]).add({s: 90}), true), '2 minuter', '90 seconds = 2 minutes'); - assert.equal(start.from(moment([2007, 1, 28]).add({m: 44}), true), '44 minuter', '44 minutes = 44 minutes'); - assert.equal(start.from(moment([2007, 1, 28]).add({m: 45}), true), 'en timme', '45 minutes = an hour'); - assert.equal(start.from(moment([2007, 1, 28]).add({m: 89}), true), 'en timme', '89 minutes = an hour'); - assert.equal(start.from(moment([2007, 1, 28]).add({m: 90}), true), '2 timmar', '90 minutes = 2 hours'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 5}), true), '5 timmar', '5 hours = 5 hours'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 21}), true), '21 timmar', '21 hours = 21 hours'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 22}), true), 'en dag', '22 hours = a day'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 35}), true), 'en dag', '35 hours = a day'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 36}), true), '2 dagar', '36 hours = 2 days'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 1}), true), 'en dag', '1 day = a day'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 5}), true), '5 dagar', '5 days = 5 days'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 25}), true), '25 dagar', '25 days = 25 days'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 26}), true), 'en månad', '26 days = a month'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 30}), true), 'en månad', '30 days = a month'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 43}), true), 'en månad', '43 days = a month'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 46}), true), '2 månader', '46 days = 2 months'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 74}), true), '2 månader', '75 days = 2 months'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 76}), true), '3 månader', '76 days = 3 months'); - assert.equal(start.from(moment([2007, 1, 28]).add({M: 1}), true), 'en månad', '1 month = a month'); - assert.equal(start.from(moment([2007, 1, 28]).add({M: 5}), true), '5 månader', '5 months = 5 months'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 345}), true), 'ett år', '345 days = a year'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 548}), true), '2 år', '548 days = 2 years'); - assert.equal(start.from(moment([2007, 1, 28]).add({y: 1}), true), 'ett år', '1 year = a year'); - assert.equal(start.from(moment([2007, 1, 28]).add({y: 5}), true), '5 år', '5 years = 5 years'); -}); - -test('suffix', function (assert) { - assert.equal(moment(30000).from(0), 'om några sekunder', 'prefix'); - assert.equal(moment(0).from(30000), 'för några sekunder sedan', 'suffix'); -}); - -test('now from now', function (assert) { - assert.equal(moment().fromNow(), 'för några sekunder sedan', 'now from now should display as in the past'); -}); - -test('fromNow', function (assert) { - assert.equal(moment().add({s: 30}).fromNow(), 'om några sekunder', 'in a few seconds'); - assert.equal(moment().add({d: 5}).fromNow(), 'om 5 dagar', 'in 5 days'); -}); - -test('calendar day', function (assert) { - var a = moment().hours(12).minutes(0).seconds(0); - - assert.equal(moment(a).calendar(), 'Idag 12:00', 'today at the same time'); - assert.equal(moment(a).add({m: 25}).calendar(), 'Idag 12:25', 'Now plus 25 min'); - assert.equal(moment(a).add({h: 1}).calendar(), 'Idag 13:00', 'Now plus 1 hour'); - assert.equal(moment(a).add({d: 1}).calendar(), 'Imorgon 12:00', 'tomorrow at the same time'); - assert.equal(moment(a).subtract({h: 1}).calendar(), 'Idag 11:00', 'Now minus 1 hour'); - assert.equal(moment(a).subtract({d: 1}).calendar(), 'Igår 12:00', 'yesterday at the same time'); -}); - -test('calendar next week', function (assert) { - var i, m; - for (i = 2; i < 7; i++) { - m = moment().add({d: i}); - assert.equal(m.calendar(), m.format('[På] dddd LT'), 'Today + ' + i + ' days current time'); - m.hours(0).minutes(0).seconds(0).milliseconds(0); - assert.equal(m.calendar(), m.format('[På] dddd LT'), 'Today + ' + i + ' days beginning of day'); - m.hours(23).minutes(59).seconds(59).milliseconds(999); - assert.equal(m.calendar(), m.format('[På] dddd LT'), 'Today + ' + i + ' days end of day'); - } -}); - -test('calendar last week', function (assert) { - var i, m; - for (i = 2; i < 7; i++) { - m = moment().subtract({d: i}); - assert.equal(m.calendar(), m.format('[I] dddd[s] LT'), 'Today - ' + i + ' days current time'); - m.hours(0).minutes(0).seconds(0).milliseconds(0); - assert.equal(m.calendar(), m.format('[I] dddd[s] LT'), 'Today - ' + i + ' days beginning of day'); - m.hours(23).minutes(59).seconds(59).milliseconds(999); - assert.equal(m.calendar(), m.format('[I] dddd[s] LT'), 'Today - ' + i + ' days end of day'); - } -}); - -test('calendar all else', function (assert) { - var weeksAgo = moment().subtract({w: 1}), - weeksFromNow = moment().add({w: 1}); - - assert.equal(weeksAgo.calendar(), weeksAgo.format('L'), '1 week ago'); - assert.equal(weeksFromNow.calendar(), weeksFromNow.format('L'), 'in 1 week'); - - weeksAgo = moment().subtract({w: 2}); - weeksFromNow = moment().add({w: 2}); - - assert.equal(weeksAgo.calendar(), weeksAgo.format('L'), '2 weeks ago'); - assert.equal(weeksFromNow.calendar(), weeksFromNow.format('L'), 'in 2 weeks'); -}); - -test('weeks year starting sunday formatted', function (assert) { - assert.equal(moment([2012, 0, 1]).format('w ww wo'), '52 52 52a', 'Jan 1 2012 should be week 52'); - assert.equal(moment([2012, 0, 2]).format('w ww wo'), '1 01 1a', 'Jan 2 2012 should be week 1'); - assert.equal(moment([2012, 0, 8]).format('w ww wo'), '1 01 1a', 'Jan 8 2012 should be week 1'); - assert.equal(moment([2012, 0, 9]).format('w ww wo'), '2 02 2a', 'Jan 9 2012 should be week 2'); - assert.equal(moment([2012, 0, 15]).format('w ww wo'), '2 02 2a', 'Jan 15 2012 should be week 2'); -}); - -}))); - - -;(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' - && typeof require === 'function' ? factory(require('../../moment')) : - typeof define === 'function' && define.amd ? define(['../../moment'], factory) : - factory(global.moment) -}(this, (function (moment) { 'use strict'; - -function each(array, callback) { - var i; - for (i = 0; i < array.length; i++) { - callback(array[i], i, array); - } -} - -function objectKeys(obj) { - if (Object.keys) { - return Object.keys(obj); - } else { - // IE8 - var res = [], i; - for (i in obj) { - if (obj.hasOwnProperty(i)) { - res.push(i); - } - } - return res; - } -} - -// Pick the first defined of two or three arguments. - -function defineCommonLocaleTests(locale, options) { - test('lenient day of month ordinal parsing', function (assert) { - var i, ordinalStr, testMoment; - for (i = 1; i <= 31; ++i) { - ordinalStr = moment([2014, 0, i]).format('YYYY MM Do'); - testMoment = moment(ordinalStr, 'YYYY MM Do'); - assert.equal(testMoment.year(), 2014, - 'lenient day of month ordinal parsing ' + i + ' year check'); - assert.equal(testMoment.month(), 0, - 'lenient day of month ordinal parsing ' + i + ' month check'); - assert.equal(testMoment.date(), i, - 'lenient day of month ordinal parsing ' + i + ' date check'); - } - }); - - test('lenient day of month ordinal parsing of number', function (assert) { - var i, testMoment; - for (i = 1; i <= 31; ++i) { - testMoment = moment('2014 01 ' + i, 'YYYY MM Do'); - assert.equal(testMoment.year(), 2014, - 'lenient day of month ordinal parsing of number ' + i + ' year check'); - assert.equal(testMoment.month(), 0, - 'lenient day of month ordinal parsing of number ' + i + ' month check'); - assert.equal(testMoment.date(), i, - 'lenient day of month ordinal parsing of number ' + i + ' date check'); - } - }); - - test('strict day of month ordinal parsing', function (assert) { - var i, ordinalStr, testMoment; - for (i = 1; i <= 31; ++i) { - ordinalStr = moment([2014, 0, i]).format('YYYY MM Do'); - testMoment = moment(ordinalStr, 'YYYY MM Do', true); - assert.ok(testMoment.isValid(), 'strict day of month ordinal parsing ' + i); - } - }); - - test('meridiem invariant', function (assert) { - var h, m, t1, t2; - for (h = 0; h < 24; ++h) { - for (m = 0; m < 60; m += 15) { - t1 = moment.utc([2000, 0, 1, h, m]); - t2 = moment.utc(t1.format('A h:mm'), 'A h:mm'); - assert.equal(t2.format('HH:mm'), t1.format('HH:mm'), - 'meridiem at ' + t1.format('HH:mm')); - } - } - }); - - test('date format correctness', function (assert) { - var data, tokens; - data = moment.localeData()._longDateFormat; - tokens = objectKeys(data); - each(tokens, function (srchToken) { - // Check each format string to make sure it does not contain any - // tokens that need to be expanded. - each(tokens, function (baseToken) { - // strip escaped sequences - var format = data[baseToken].replace(/(\[[^\]]*\])/g, ''); - assert.equal(false, !!~format.indexOf(srchToken), - 'contains ' + srchToken + ' in ' + baseToken); - }); - }); - }); - - test('month parsing correctness', function (assert) { - var i, m; - - if (locale === 'tr') { - // I can't fix it :( - expect(0); - return; - } - function tester(format) { - var r; - r = moment(m.format(format), format); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format); - r = moment(m.format(format).toLocaleUpperCase(), format); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' upper'); - r = moment(m.format(format).toLocaleLowerCase(), format); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' lower'); - - r = moment(m.format(format), format, true); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' strict'); - r = moment(m.format(format).toLocaleUpperCase(), format, true); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' upper strict'); - r = moment(m.format(format).toLocaleLowerCase(), format, true); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' lower strict'); - } - - for (i = 0; i < 12; ++i) { - m = moment([2015, i, 15, 18]); - tester('MMM'); - tester('MMM.'); - tester('MMMM'); - tester('MMMM.'); - } - }); - - test('weekday parsing correctness', function (assert) { - var i, m; - - if (locale === 'tr' || locale === 'az' || locale === 'ro') { - // tr, az: There is a lower-case letter (ı), that converted to - // upper then lower changes to i - // ro: there is the letter ț which behaves weird under IE8 - expect(0); - return; - } - function tester(format) { - var r, baseMsg = 'weekday ' + m.weekday() + ' fmt ' + format + ' ' + m.toISOString(); - r = moment(m.format(format), format); - assert.equal(r.weekday(), m.weekday(), baseMsg); - r = moment(m.format(format).toLocaleUpperCase(), format); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' upper'); - r = moment(m.format(format).toLocaleLowerCase(), format); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' lower'); - - r = moment(m.format(format), format, true); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' strict'); - r = moment(m.format(format).toLocaleUpperCase(), format, true); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' upper strict'); - r = moment(m.format(format).toLocaleLowerCase(), format, true); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' lower strict'); - } - - for (i = 0; i < 7; ++i) { - m = moment.utc([2015, 0, i + 1, 18]); - tester('dd'); - tester('ddd'); - tester('dddd'); - } - }); - - test('valid localeData', function (assert) { - assert.equal(moment().localeData().months().length, 12, 'months should return 12 months'); - assert.equal(moment().localeData().monthsShort().length, 12, 'monthsShort should return 12 months'); - assert.equal(moment().localeData().weekdays().length, 7, 'weekdays should return 7 days'); - assert.equal(moment().localeData().weekdaysShort().length, 7, 'weekdaysShort should return 7 days'); - assert.equal(moment().localeData().weekdaysMin().length, 7, 'monthsShort should return 7 days'); - }); -} - -function setupDeprecationHandler(test, moment$$1, scope) { - test._expectedDeprecations = null; - test._observedDeprecations = null; - test._oldSupress = moment$$1.suppressDeprecationWarnings; - moment$$1.suppressDeprecationWarnings = true; - test.expectedDeprecations = function () { - test._expectedDeprecations = arguments; - test._observedDeprecations = []; - }; - moment$$1.deprecationHandler = function (name, msg) { - var deprecationId = matchedDeprecation(name, msg, test._expectedDeprecations); - if (deprecationId === -1) { - throw new Error('Unexpected deprecation thrown name=' + - name + ' msg=' + msg); - } - test._observedDeprecations[deprecationId] = 1; - }; -} - -function teardownDeprecationHandler(test, moment$$1, scope) { - moment$$1.suppressDeprecationWarnings = test._oldSupress; - - if (test._expectedDeprecations != null) { - var missedDeprecations = []; - each(test._expectedDeprecations, function (deprecationPattern, id) { - if (test._observedDeprecations[id] !== 1) { - missedDeprecations.push(deprecationPattern); - } - }); - if (missedDeprecations.length !== 0) { - throw new Error('Expected deprecation warnings did not happen: ' + - missedDeprecations.join(' ')); - } - } -} - -function matchedDeprecation(name, msg, deprecations) { - if (deprecations == null) { - return -1; - } - for (var i = 0; i < deprecations.length; ++i) { - if (name != null && name === deprecations[i]) { - return i; - } - if (msg != null && msg.substring(0, deprecations[i].length) === deprecations[i]) { - return i; - } - } - return -1; -} - -/*global QUnit:false*/ - -var test = QUnit.test; - -var expect = QUnit.expect; - - - -function localeModule (name, lifecycle) { - QUnit.module('locale:' + name, { - setup : function () { - moment.locale(name); - moment.createFromInputFallback = function (config) { - throw new Error('input not handled by moment: ' + config._i); - }; - setupDeprecationHandler(test, moment, 'locale'); - if (lifecycle && lifecycle.setup) { - lifecycle.setup(); - } - }, - teardown : function () { - moment.locale('en'); - teardownDeprecationHandler(test, moment, 'locale'); - if (lifecycle && lifecycle.teardown) { - lifecycle.teardown(); - } - } - }); - defineCommonLocaleTests(name, -1, -1); -} - -localeModule('sw'); - -test('parse', function (assert) { - var tests = 'Januari Jan_Februari Feb_Machi Mac_Aprili Apr_Mei Mei_Juni Jun_Julai Jul_Agosti Ago_Septemba Sep_Oktoba Okt_Novemba Nov_Desemba Des'.split('_'), i; - function equalTest(input, mmm, i) { - assert.equal(moment(input, mmm).month(), i, input + ' should be month ' + (i + 1)); - } - for (i = 0; i < 12; i++) { - tests[i] = tests[i].split(' '); - equalTest(tests[i][0], 'MMM', i); - equalTest(tests[i][1], 'MMM', i); - equalTest(tests[i][0], 'MMMM', i); - equalTest(tests[i][1], 'MMMM', i); - equalTest(tests[i][0].toLocaleLowerCase(), 'MMMM', i); - equalTest(tests[i][1].toLocaleLowerCase(), 'MMMM', i); - equalTest(tests[i][0].toLocaleUpperCase(), 'MMMM', i); - equalTest(tests[i][1].toLocaleUpperCase(), 'MMMM', i); - } -}); - -test('format', function (assert) { - var a = [ - ['dddd, MMMM Do YYYY, h:mm:ss a', 'Jumapili, Februari 14 2010, 3:25:50 pm'], - ['ddd, hA', 'Jpl, 3PM'], - ['M Mo MM MMMM MMM', '2 2 02 Februari Feb'], - ['YYYY YY', '2010 10'], - ['D Do DD', '14 14 14'], - ['d do dddd ddd dd', '0 0 Jumapili Jpl J2'], - ['DDD DDDo DDDD', '45 45 045'], - ['w wo ww', '7 7 07'], - ['h hh', '3 03'], - ['H HH', '15 15'], - ['m mm', '25 25'], - ['s ss', '50 50'], - ['a A', 'pm PM'], - ['[siku] DDDo [ya mwaka]', 'siku 45 ya mwaka'], - ['LTS', '15:25:50'], - ['L', '14.02.2010'], - ['LL', '14 Februari 2010'], - ['LLL', '14 Februari 2010 15:25'], - ['LLLL', 'Jumapili, 14 Februari 2010 15:25'], - ['l', '14.2.2010'], - ['ll', '14 Feb 2010'], - ['lll', '14 Feb 2010 15:25'], - ['llll', 'Jpl, 14 Feb 2010 15:25'] - ], - b = moment(new Date(2010, 1, 14, 15, 25, 50, 125)), - i; - for (i = 0; i < a.length; i++) { - assert.equal(b.format(a[i][0]), a[i][1], a[i][0] + ' ---> ' + a[i][1]); - } -}); - -test('format ordinal', function (assert) { - assert.equal(moment([2011, 0, 1]).format('DDDo'), '1', '1'); - assert.equal(moment([2011, 0, 2]).format('DDDo'), '2', '2'); - assert.equal(moment([2011, 0, 3]).format('DDDo'), '3', '3'); - assert.equal(moment([2011, 0, 4]).format('DDDo'), '4', '4'); - assert.equal(moment([2011, 0, 5]).format('DDDo'), '5', '5'); - assert.equal(moment([2011, 0, 6]).format('DDDo'), '6', '6'); - assert.equal(moment([2011, 0, 7]).format('DDDo'), '7', '7'); - assert.equal(moment([2011, 0, 8]).format('DDDo'), '8', '8'); - assert.equal(moment([2011, 0, 9]).format('DDDo'), '9', '9'); - assert.equal(moment([2011, 0, 10]).format('DDDo'), '10', '10'); - - assert.equal(moment([2011, 0, 11]).format('DDDo'), '11', '11'); - assert.equal(moment([2011, 0, 12]).format('DDDo'), '12', '12'); - assert.equal(moment([2011, 0, 13]).format('DDDo'), '13', '13'); - assert.equal(moment([2011, 0, 14]).format('DDDo'), '14', '14'); - assert.equal(moment([2011, 0, 15]).format('DDDo'), '15', '15'); - assert.equal(moment([2011, 0, 16]).format('DDDo'), '16', '16'); - assert.equal(moment([2011, 0, 17]).format('DDDo'), '17', '17'); - assert.equal(moment([2011, 0, 18]).format('DDDo'), '18', '18'); - assert.equal(moment([2011, 0, 19]).format('DDDo'), '19', '19'); - assert.equal(moment([2011, 0, 20]).format('DDDo'), '20', '20'); - - assert.equal(moment([2011, 0, 21]).format('DDDo'), '21', '21'); - assert.equal(moment([2011, 0, 22]).format('DDDo'), '22', '22'); - assert.equal(moment([2011, 0, 23]).format('DDDo'), '23', '23'); - assert.equal(moment([2011, 0, 24]).format('DDDo'), '24', '24'); - assert.equal(moment([2011, 0, 25]).format('DDDo'), '25', '25'); - assert.equal(moment([2011, 0, 26]).format('DDDo'), '26', '26'); - assert.equal(moment([2011, 0, 27]).format('DDDo'), '27', '27'); - assert.equal(moment([2011, 0, 28]).format('DDDo'), '28', '28'); - assert.equal(moment([2011, 0, 29]).format('DDDo'), '29', '29'); - assert.equal(moment([2011, 0, 30]).format('DDDo'), '30', '30'); - - assert.equal(moment([2011, 0, 31]).format('DDDo'), '31', '31'); -}); - -test('format month', function (assert) { - var expected = 'Januari Jan_Februari Feb_Machi Mac_Aprili Apr_Mei Mei_Juni Jun_Julai Jul_Agosti Ago_Septemba Sep_Oktoba Okt_Novemba Nov_Desemba Des'.split('_'), i; - for (i = 0; i < expected.length; i++) { - assert.equal(moment([2011, i, 1]).format('MMMM MMM'), expected[i], expected[i]); - } -}); - -test('format week', function (assert) { - var expected = 'Jumapili Jpl J2_Jumatatu Jtat J3_Jumanne Jnne J4_Jumatano Jtan J5_Alhamisi Alh Al_Ijumaa Ijm Ij_Jumamosi Jmos J1'.split('_'), i; - for (i = 0; i < expected.length; i++) { - assert.equal(moment([2011, 0, 2 + i]).format('dddd ddd dd'), expected[i], expected[i]); - } -}); - -test('from', function (assert) { - var start = moment([2007, 1, 28]); - assert.equal(start.from(moment([2007, 1, 28]).add({s: 44}), true), 'hivi punde', '44 seconds = a few seconds'); - assert.equal(start.from(moment([2007, 1, 28]).add({s: 45}), true), 'dakika moja', '45 seconds = a minute'); - assert.equal(start.from(moment([2007, 1, 28]).add({s: 89}), true), 'dakika moja', '89 seconds = a minute'); - assert.equal(start.from(moment([2007, 1, 28]).add({s: 90}), true), 'dakika 2', '90 seconds = 2 minutes'); - assert.equal(start.from(moment([2007, 1, 28]).add({m: 44}), true), 'dakika 44', '44 minutes = 44 minutes'); - assert.equal(start.from(moment([2007, 1, 28]).add({m: 45}), true), 'saa limoja', '45 minutes = an hour'); - assert.equal(start.from(moment([2007, 1, 28]).add({m: 89}), true), 'saa limoja', '89 minutes = an hour'); - assert.equal(start.from(moment([2007, 1, 28]).add({m: 90}), true), 'masaa 2', '90 minutes = 2 hours'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 5}), true), 'masaa 5', '5 hours = 5 hours'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 21}), true), 'masaa 21', '21 hours = 21 hours'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 22}), true), 'siku moja', '22 hours = a day'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 35}), true), 'siku moja', '35 hours = a day'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 36}), true), 'masiku 2', '36 hours = 2 days'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 1}), true), 'siku moja', '1 day = a day'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 5}), true), 'masiku 5', '5 days = 5 days'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 25}), true), 'masiku 25', '25 days = 25 days'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 26}), true), 'mwezi mmoja', '26 days = a month'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 30}), true), 'mwezi mmoja', '30 days = a month'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 43}), true), 'mwezi mmoja', '43 days = a month'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 46}), true), 'miezi 2', '46 days = 2 months'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 74}), true), 'miezi 2', '75 days = 2 months'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 76}), true), 'miezi 3', '76 days = 3 months'); - assert.equal(start.from(moment([2007, 1, 28]).add({M: 1}), true), 'mwezi mmoja', '1 month = a month'); - assert.equal(start.from(moment([2007, 1, 28]).add({M: 5}), true), 'miezi 5', '5 months = 5 months'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 345}), true), 'mwaka mmoja', '345 days = a year'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 548}), true), 'miaka 2', '548 days = 2 years'); - assert.equal(start.from(moment([2007, 1, 28]).add({y: 1}), true), 'mwaka mmoja', '1 year = a year'); - assert.equal(start.from(moment([2007, 1, 28]).add({y: 5}), true), 'miaka 5', '5 years = 5 years'); -}); - -test('suffix', function (assert) { - assert.equal(moment(30000).from(0), 'hivi punde baadaye', 'prefix'); - assert.equal(moment(0).from(30000), 'tokea hivi punde', 'suffix'); -}); - -test('now from now', function (assert) { - assert.equal(moment().fromNow(), 'tokea hivi punde', 'now from now should display as in the past'); -}); - -test('fromNow', function (assert) { - assert.equal(moment().add({s: 30}).fromNow(), 'hivi punde baadaye', 'in a few seconds'); - assert.equal(moment().add({d: 5}).fromNow(), 'masiku 5 baadaye', 'in 5 days'); -}); - -test('calendar day', function (assert) { - var a = moment().hours(12).minutes(0).seconds(0); - assert.equal(moment(a).calendar(), 'leo saa 12:00', 'today at the same time'); - assert.equal(moment(a).add({m: 25}).calendar(), 'leo saa 12:25', 'Now plus 25 min'); - assert.equal(moment(a).add({h: 1}).calendar(), 'leo saa 13:00', 'Now plus 1 hour'); - assert.equal(moment(a).add({d: 1}).calendar(), 'kesho saa 12:00', 'tomorrow at the same time'); - assert.equal(moment(a).subtract({h: 1}).calendar(), 'leo saa 11:00', 'Now minus 1 hour'); - assert.equal(moment(a).subtract({d: 1}).calendar(), 'jana 12:00', 'yesterday at the same time'); -}); - -test('calendar next week', function (assert) { - var i, m; - for (i = 2; i < 7; i++) { - m = moment().add({d: i}); - assert.equal(m.calendar(), m.format('[wiki ijayo] dddd [saat] LT'), 'Today + ' + i + ' days current time'); - m.hours(0).minutes(0).seconds(0).milliseconds(0); - assert.equal(m.calendar(), m.format('[wiki ijayo] dddd [saat] LT'), 'Today + ' + i + ' days beginning of day'); - m.hours(23).minutes(59).seconds(59).milliseconds(999); - assert.equal(m.calendar(), m.format('[wiki ijayo] dddd [saat] LT'), 'Today + ' + i + ' days end of day'); - } -}); - -test('calendar last week', function (assert) { - var i, m; - - for (i = 2; i < 7; i++) { - m = moment().subtract({d: i}); - assert.equal(m.calendar(), m.format('[wiki iliyopita] dddd [saat] LT'), 'Today - ' + i + ' days current time'); - m.hours(0).minutes(0).seconds(0).milliseconds(0); - assert.equal(m.calendar(), m.format('[wiki iliyopita] dddd [saat] LT'), 'Today - ' + i + ' days beginning of day'); - m.hours(23).minutes(59).seconds(59).milliseconds(999); - assert.equal(m.calendar(), m.format('[wiki iliyopita] dddd [saat] LT'), 'Today - ' + i + ' days end of day'); - } -}); - -test('calendar all else', function (assert) { - var weeksAgo = moment().subtract({w: 1}), - weeksFromNow = moment().add({w: 1}); - - assert.equal(weeksAgo.calendar(), weeksAgo.format('L'), '1 week ago'); - assert.equal(weeksFromNow.calendar(), weeksFromNow.format('L'), 'in 1 week'); - - weeksAgo = moment().subtract({w: 2}); - weeksFromNow = moment().add({w: 2}); - - assert.equal(weeksAgo.calendar(), weeksAgo.format('L'), '2 weeks ago'); - assert.equal(weeksFromNow.calendar(), weeksFromNow.format('L'), 'in 2 weeks'); -}); - -test('weeks year starting sunday format', function (assert) { - assert.equal(moment([2011, 11, 26]).format('w ww wo'), '1 01 1', 'Dec 26 2011 should be week 1'); - assert.equal(moment([2012, 0, 1]).format('w ww wo'), '1 01 1', 'Jan 1 2012 should be week 1'); - assert.equal(moment([2012, 0, 2]).format('w ww wo'), '2 02 2', 'Jan 2 2012 should be week 2'); - assert.equal(moment([2012, 0, 8]).format('w ww wo'), '2 02 2', 'Jan 8 2012 should be week 2'); - assert.equal(moment([2012, 0, 9]).format('w ww wo'), '3 03 3', 'Jan 9 2012 should be week 3'); -}); - -}))); - - -;(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' - && typeof require === 'function' ? factory(require('../../moment')) : - typeof define === 'function' && define.amd ? define(['../../moment'], factory) : - factory(global.moment) -}(this, (function (moment) { 'use strict'; - -function each(array, callback) { - var i; - for (i = 0; i < array.length; i++) { - callback(array[i], i, array); - } -} - -function objectKeys(obj) { - if (Object.keys) { - return Object.keys(obj); - } else { - // IE8 - var res = [], i; - for (i in obj) { - if (obj.hasOwnProperty(i)) { - res.push(i); - } - } - return res; - } -} - -// Pick the first defined of two or three arguments. - -function defineCommonLocaleTests(locale, options) { - test('lenient day of month ordinal parsing', function (assert) { - var i, ordinalStr, testMoment; - for (i = 1; i <= 31; ++i) { - ordinalStr = moment([2014, 0, i]).format('YYYY MM Do'); - testMoment = moment(ordinalStr, 'YYYY MM Do'); - assert.equal(testMoment.year(), 2014, - 'lenient day of month ordinal parsing ' + i + ' year check'); - assert.equal(testMoment.month(), 0, - 'lenient day of month ordinal parsing ' + i + ' month check'); - assert.equal(testMoment.date(), i, - 'lenient day of month ordinal parsing ' + i + ' date check'); - } - }); - - test('lenient day of month ordinal parsing of number', function (assert) { - var i, testMoment; - for (i = 1; i <= 31; ++i) { - testMoment = moment('2014 01 ' + i, 'YYYY MM Do'); - assert.equal(testMoment.year(), 2014, - 'lenient day of month ordinal parsing of number ' + i + ' year check'); - assert.equal(testMoment.month(), 0, - 'lenient day of month ordinal parsing of number ' + i + ' month check'); - assert.equal(testMoment.date(), i, - 'lenient day of month ordinal parsing of number ' + i + ' date check'); - } - }); - - test('strict day of month ordinal parsing', function (assert) { - var i, ordinalStr, testMoment; - for (i = 1; i <= 31; ++i) { - ordinalStr = moment([2014, 0, i]).format('YYYY MM Do'); - testMoment = moment(ordinalStr, 'YYYY MM Do', true); - assert.ok(testMoment.isValid(), 'strict day of month ordinal parsing ' + i); - } - }); - - test('meridiem invariant', function (assert) { - var h, m, t1, t2; - for (h = 0; h < 24; ++h) { - for (m = 0; m < 60; m += 15) { - t1 = moment.utc([2000, 0, 1, h, m]); - t2 = moment.utc(t1.format('A h:mm'), 'A h:mm'); - assert.equal(t2.format('HH:mm'), t1.format('HH:mm'), - 'meridiem at ' + t1.format('HH:mm')); - } - } - }); - - test('date format correctness', function (assert) { - var data, tokens; - data = moment.localeData()._longDateFormat; - tokens = objectKeys(data); - each(tokens, function (srchToken) { - // Check each format string to make sure it does not contain any - // tokens that need to be expanded. - each(tokens, function (baseToken) { - // strip escaped sequences - var format = data[baseToken].replace(/(\[[^\]]*\])/g, ''); - assert.equal(false, !!~format.indexOf(srchToken), - 'contains ' + srchToken + ' in ' + baseToken); - }); - }); - }); - - test('month parsing correctness', function (assert) { - var i, m; - - if (locale === 'tr') { - // I can't fix it :( - expect(0); - return; - } - function tester(format) { - var r; - r = moment(m.format(format), format); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format); - r = moment(m.format(format).toLocaleUpperCase(), format); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' upper'); - r = moment(m.format(format).toLocaleLowerCase(), format); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' lower'); - - r = moment(m.format(format), format, true); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' strict'); - r = moment(m.format(format).toLocaleUpperCase(), format, true); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' upper strict'); - r = moment(m.format(format).toLocaleLowerCase(), format, true); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' lower strict'); - } - - for (i = 0; i < 12; ++i) { - m = moment([2015, i, 15, 18]); - tester('MMM'); - tester('MMM.'); - tester('MMMM'); - tester('MMMM.'); - } - }); - - test('weekday parsing correctness', function (assert) { - var i, m; - - if (locale === 'tr' || locale === 'az' || locale === 'ro') { - // tr, az: There is a lower-case letter (ı), that converted to - // upper then lower changes to i - // ro: there is the letter ț which behaves weird under IE8 - expect(0); - return; - } - function tester(format) { - var r, baseMsg = 'weekday ' + m.weekday() + ' fmt ' + format + ' ' + m.toISOString(); - r = moment(m.format(format), format); - assert.equal(r.weekday(), m.weekday(), baseMsg); - r = moment(m.format(format).toLocaleUpperCase(), format); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' upper'); - r = moment(m.format(format).toLocaleLowerCase(), format); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' lower'); - - r = moment(m.format(format), format, true); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' strict'); - r = moment(m.format(format).toLocaleUpperCase(), format, true); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' upper strict'); - r = moment(m.format(format).toLocaleLowerCase(), format, true); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' lower strict'); - } - - for (i = 0; i < 7; ++i) { - m = moment.utc([2015, 0, i + 1, 18]); - tester('dd'); - tester('ddd'); - tester('dddd'); - } - }); - - test('valid localeData', function (assert) { - assert.equal(moment().localeData().months().length, 12, 'months should return 12 months'); - assert.equal(moment().localeData().monthsShort().length, 12, 'monthsShort should return 12 months'); - assert.equal(moment().localeData().weekdays().length, 7, 'weekdays should return 7 days'); - assert.equal(moment().localeData().weekdaysShort().length, 7, 'weekdaysShort should return 7 days'); - assert.equal(moment().localeData().weekdaysMin().length, 7, 'monthsShort should return 7 days'); - }); -} - -function setupDeprecationHandler(test, moment$$1, scope) { - test._expectedDeprecations = null; - test._observedDeprecations = null; - test._oldSupress = moment$$1.suppressDeprecationWarnings; - moment$$1.suppressDeprecationWarnings = true; - test.expectedDeprecations = function () { - test._expectedDeprecations = arguments; - test._observedDeprecations = []; - }; - moment$$1.deprecationHandler = function (name, msg) { - var deprecationId = matchedDeprecation(name, msg, test._expectedDeprecations); - if (deprecationId === -1) { - throw new Error('Unexpected deprecation thrown name=' + - name + ' msg=' + msg); - } - test._observedDeprecations[deprecationId] = 1; - }; -} - -function teardownDeprecationHandler(test, moment$$1, scope) { - moment$$1.suppressDeprecationWarnings = test._oldSupress; - - if (test._expectedDeprecations != null) { - var missedDeprecations = []; - each(test._expectedDeprecations, function (deprecationPattern, id) { - if (test._observedDeprecations[id] !== 1) { - missedDeprecations.push(deprecationPattern); - } - }); - if (missedDeprecations.length !== 0) { - throw new Error('Expected deprecation warnings did not happen: ' + - missedDeprecations.join(' ')); - } - } -} - -function matchedDeprecation(name, msg, deprecations) { - if (deprecations == null) { - return -1; - } - for (var i = 0; i < deprecations.length; ++i) { - if (name != null && name === deprecations[i]) { - return i; - } - if (msg != null && msg.substring(0, deprecations[i].length) === deprecations[i]) { - return i; - } - } - return -1; -} - -/*global QUnit:false*/ - -var test = QUnit.test; - -var expect = QUnit.expect; - - - -function localeModule (name, lifecycle) { - QUnit.module('locale:' + name, { - setup : function () { - moment.locale(name); - moment.createFromInputFallback = function (config) { - throw new Error('input not handled by moment: ' + config._i); - }; - setupDeprecationHandler(test, moment, 'locale'); - if (lifecycle && lifecycle.setup) { - lifecycle.setup(); - } - }, - teardown : function () { - moment.locale('en'); - teardownDeprecationHandler(test, moment, 'locale'); - if (lifecycle && lifecycle.teardown) { - lifecycle.teardown(); - } - } - }); - defineCommonLocaleTests(name, -1, -1); -} - -localeModule('ta'); - -test('parse', function (assert) { - var tests = 'ஜனவரி ஜனவரி_பிப்ரவரி பிப்ரவரி_மார்ச் மார்ச்_ஏப்ரல் ஏப்ரல்_மே மே_ஜூன் ஜூன்_ஜூலை ஜூலை_ஆகஸ்ட் ஆகஸ்ட்_செப்டெம்பர் செப்டெம்பர்_அக்டோபர் அக்டோபர்_நவம்பர் நவம்பர்_டிசம்பர் டிசம்பர்'.split('_'), i; - function equalTest(input, mmm, i) { - assert.equal(moment(input, mmm).month(), i, input + ' should be month ' + (i + 1)); - } - for (i = 0; i < 12; i++) { - tests[i] = tests[i].split(' '); - equalTest(tests[i][0], 'MMM', i); - equalTest(tests[i][1], 'MMM', i); - equalTest(tests[i][0], 'MMMM', i); - equalTest(tests[i][1], 'MMMM', i); - equalTest(tests[i][0].toLocaleLowerCase(), 'MMMM', i); - equalTest(tests[i][1].toLocaleLowerCase(), 'MMMM', i); - equalTest(tests[i][0].toLocaleUpperCase(), 'MMMM', i); - equalTest(tests[i][1].toLocaleUpperCase(), 'MMMM', i); - } -}); - -test('format', function (assert) { - var a = [ - ['dddd, MMMM Do YYYY, h:mm:ss a', 'ஞாயிற்றுக்கிழமை, பிப்ரவரி ௧௪வது ௨௦௧௦, ௩:௨௫:௫௦ எற்பாடு'], - ['ddd, hA', 'ஞாயிறு, ௩ எற்பாடு'], - ['M Mo MM MMMM MMM', '௨ ௨வது ௦௨ பிப்ரவரி பிப்ரவரி'], - ['YYYY YY', '௨௦௧௦ ௧௦'], - ['D Do DD', '௧௪ ௧௪வது ௧௪'], - ['d do dddd ddd dd', '௦ ௦வது ஞாயிற்றுக்கிழமை ஞாயிறு ஞா'], - ['DDD DDDo DDDD', '௪௫ ௪௫வது ௦௪௫'], - ['w wo ww', '௮ ௮வது ௦௮'], - ['h hh', '௩ ௦௩'], - ['H HH', '௧௫ ௧௫'], - ['m mm', '௨௫ ௨௫'], - ['s ss', '௫௦ ௫௦'], - ['a A', ' எற்பாடு எற்பாடு'], - ['[ஆண்டின்] DDDo [நாள்]', 'ஆண்டின் ௪௫வது நாள்'], - ['LTS', '௧௫:௨௫:௫௦'], - ['L', '௧௪/௦௨/௨௦௧௦'], - ['LL', '௧௪ பிப்ரவரி ௨௦௧௦'], - ['LLL', '௧௪ பிப்ரவரி ௨௦௧௦, ௧௫:௨௫'], - ['LLLL', 'ஞாயிற்றுக்கிழமை, ௧௪ பிப்ரவரி ௨௦௧௦, ௧௫:௨௫'], - ['l', '௧௪/௨/௨௦௧௦'], - ['ll', '௧௪ பிப்ரவரி ௨௦௧௦'], - ['lll', '௧௪ பிப்ரவரி ௨௦௧௦, ௧௫:௨௫'], - ['llll', 'ஞாயிறு, ௧௪ பிப்ரவரி ௨௦௧௦, ௧௫:௨௫'] - ], - b = moment(new Date(2010, 1, 14, 15, 25, 50, 125)), - i; - for (i = 0; i < a.length; i++) { - assert.equal(b.format(a[i][0]), a[i][1], a[i][0] + ' ---> ' + a[i][1]); - } -}); - -test('format ordinal', function (assert) { - assert.equal(moment([2011, 0, 1]).format('DDDo'), '௧வது', '௧வது'); - assert.equal(moment([2011, 0, 2]).format('DDDo'), '௨வது', '௨வது'); - assert.equal(moment([2011, 0, 3]).format('DDDo'), '௩வது', '௩வது'); - assert.equal(moment([2011, 0, 4]).format('DDDo'), '௪வது', '௪வது'); - assert.equal(moment([2011, 0, 5]).format('DDDo'), '௫வது', '௫வது'); - assert.equal(moment([2011, 0, 6]).format('DDDo'), '௬வது', '௬வது'); - assert.equal(moment([2011, 0, 7]).format('DDDo'), '௭வது', '௭வது'); - assert.equal(moment([2011, 0, 8]).format('DDDo'), '௮வது', '௮வது'); - assert.equal(moment([2011, 0, 9]).format('DDDo'), '௯வது', '௯வது'); - assert.equal(moment([2011, 0, 10]).format('DDDo'), '௧௦வது', '௧௦வது'); - - assert.equal(moment([2011, 0, 11]).format('DDDo'), '௧௧வது', '௧௧வது'); - assert.equal(moment([2011, 0, 12]).format('DDDo'), '௧௨வது', '௧௨வது'); - assert.equal(moment([2011, 0, 13]).format('DDDo'), '௧௩வது', '௧௩வது'); - assert.equal(moment([2011, 0, 14]).format('DDDo'), '௧௪வது', '௧௪வது'); - assert.equal(moment([2011, 0, 15]).format('DDDo'), '௧௫வது', '௧௫வது'); - assert.equal(moment([2011, 0, 16]).format('DDDo'), '௧௬வது', '௧௬வது'); - assert.equal(moment([2011, 0, 17]).format('DDDo'), '௧௭வது', '௧௭வது'); - assert.equal(moment([2011, 0, 18]).format('DDDo'), '௧௮வது', '௧௮வது'); - assert.equal(moment([2011, 0, 19]).format('DDDo'), '௧௯வது', '௧௯வது'); - assert.equal(moment([2011, 0, 20]).format('DDDo'), '௨௦வது', '௨௦வது'); - - assert.equal(moment([2011, 0, 21]).format('DDDo'), '௨௧வது', '௨௧வது'); - assert.equal(moment([2011, 0, 22]).format('DDDo'), '௨௨வது', '௨௨வது'); - assert.equal(moment([2011, 0, 23]).format('DDDo'), '௨௩வது', '௨௩வது'); - assert.equal(moment([2011, 0, 24]).format('DDDo'), '௨௪வது', '௨௪வது'); - assert.equal(moment([2011, 0, 25]).format('DDDo'), '௨௫வது', '௨௫வது'); - assert.equal(moment([2011, 0, 26]).format('DDDo'), '௨௬வது', '௨௬வது'); - assert.equal(moment([2011, 0, 27]).format('DDDo'), '௨௭வது', '௨௭வது'); - assert.equal(moment([2011, 0, 28]).format('DDDo'), '௨௮வது', '௨௮வது'); - assert.equal(moment([2011, 0, 29]).format('DDDo'), '௨௯வது', '௨௯வது'); - assert.equal(moment([2011, 0, 30]).format('DDDo'), '௩௦வது', '௩௦வது'); - - assert.equal(moment([2011, 0, 31]).format('DDDo'), '௩௧வது', '௩௧வது'); -}); - -test('format month', function (assert) { - var expected = 'ஜனவரி ஜனவரி_பிப்ரவரி பிப்ரவரி_மார்ச் மார்ச்_ஏப்ரல் ஏப்ரல்_மே மே_ஜூன் ஜூன்_ஜூலை ஜூலை_ஆகஸ்ட் ஆகஸ்ட்_செப்டெம்பர் செப்டெம்பர்_அக்டோபர் அக்டோபர்_நவம்பர் நவம்பர்_டிசம்பர் டிசம்பர்'.split('_'), i; - for (i = 0; i < expected.length; i++) { - assert.equal(moment([2011, i, 1]).format('MMMM MMM'), expected[i], expected[i]); - } -}); - -test('format week', function (assert) { - var expected = 'ஞாயிற்றுக்கிழமை ஞாயிறு ஞா_திங்கட்கிழமை திங்கள் தி_செவ்வாய்கிழமை செவ்வாய் செ_புதன்கிழமை புதன் பு_வியாழக்கிழமை வியாழன் வி_வெள்ளிக்கிழமை வெள்ளி வெ_சனிக்கிழமை சனி ச'.split('_'), i; - for (i = 0; i < expected.length; i++) { - assert.equal(moment([2011, 0, 2 + i]).format('dddd ddd dd'), expected[i], expected[i]); - } -}); - -test('from', function (assert) { - var start = moment([2007, 1, 28]); - assert.equal(start.from(moment([2007, 1, 28]).add({s: 44}), true), 'ஒரு சில விநாடிகள்', '44 விநாடிகள் = ஒரு சில விநாடிகள்'); - assert.equal(start.from(moment([2007, 1, 28]).add({s: 45}), true), 'ஒரு நிமிடம்', '45 விநாடிகள் = ஒரு நிமிடம்'); - assert.equal(start.from(moment([2007, 1, 28]).add({s: 89}), true), 'ஒரு நிமிடம்', '89 விநாடிகள் = ஒரு நிமிடம்'); - assert.equal(start.from(moment([2007, 1, 28]).add({s: 90}), true), '௨ நிமிடங்கள்', '90 விநாடிகள் = ௨ நிமிடங்கள்'); - assert.equal(start.from(moment([2007, 1, 28]).add({m: 44}), true), '௪௪ நிமிடங்கள்', '44 நிமிடங்கள் = 44 நிமிடங்கள்'); - assert.equal(start.from(moment([2007, 1, 28]).add({m: 45}), true), 'ஒரு மணி நேரம்', '45 நிமிடங்கள் = ஒரு மணி நேரம்'); - assert.equal(start.from(moment([2007, 1, 28]).add({m: 89}), true), 'ஒரு மணி நேரம்', '89 நிமிடங்கள் = ஒரு மணி நேரம்'); - assert.equal(start.from(moment([2007, 1, 28]).add({m: 90}), true), '௨ மணி நேரம்', '90 நிமிடங்கள் = ௨ மணி நேரம்'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 5}), true), '௫ மணி நேரம்', '5 மணி நேரம் = 5 மணி நேரம்'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 21}), true), '௨௧ மணி நேரம்', '௨௧ மணி நேரம் = ௨௧ மணி நேரம்'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 22}), true), 'ஒரு நாள்', '௨௨ மணி நேரம் = ஒரு நாள்'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 35}), true), 'ஒரு நாள்', '௩5 மணி நேரம் = ஒரு நாள்'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 36}), true), '௨ நாட்கள்', '௩6 மணி நேரம் = ௨ days'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 1}), true), 'ஒரு நாள்', '௧ நாள் = ஒரு நாள்'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 5}), true), '௫ நாட்கள்', '5 நாட்கள் = 5 நாட்கள்'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 25}), true), '௨௫ நாட்கள்', '௨5 நாட்கள் = ௨5 நாட்கள்'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 26}), true), 'ஒரு மாதம்', '௨6 நாட்கள் = ஒரு மாதம்'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 30}), true), 'ஒரு மாதம்', '௩0 நாட்கள் = ஒரு மாதம்'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 43}), true), 'ஒரு மாதம்', '45 நாட்கள் = ஒரு மாதம்'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 46}), true), '௨ மாதங்கள்', '46 நாட்கள் = ௨ மாதங்கள்'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 74}), true), '௨ மாதங்கள்', '75 நாட்கள் = ௨ மாதங்கள்'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 76}), true), '௩ மாதங்கள்', '76 நாட்கள் = ௩ மாதங்கள்'); - assert.equal(start.from(moment([2007, 1, 28]).add({M: 1}), true), 'ஒரு மாதம்', '௧ மாதம் = ஒரு மாதம்'); - assert.equal(start.from(moment([2007, 1, 28]).add({M: 5}), true), '௫ மாதங்கள்', '5 மாதங்கள் = 5 மாதங்கள்'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 345}), true), 'ஒரு வருடம்', '௩45 நாட்கள் = ஒரு வருடம்'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 548}), true), '௨ ஆண்டுகள்', '548 நாட்கள் = ௨ ஆண்டுகள்'); - assert.equal(start.from(moment([2007, 1, 28]).add({y: 1}), true), 'ஒரு வருடம்', '௧ வருடம் = ஒரு வருடம்'); - assert.equal(start.from(moment([2007, 1, 28]).add({y: 5}), true), '௫ ஆண்டுகள்', '5 ஆண்டுகள் = 5 ஆண்டுகள்'); -}); - -test('suffix', function (assert) { - assert.equal(moment(30000).from(0), 'ஒரு சில விநாடிகள் இல்', 'prefix'); - assert.equal(moment(0).from(30000), 'ஒரு சில விநாடிகள் முன்', 'suffix'); -}); - -test('now from now', function (assert) { - assert.equal(moment().fromNow(), 'ஒரு சில விநாடிகள் முன்', 'இப்போது இருந்து கடந்த காலத்தில் காட்ட வேண்டும்'); -}); - -test('fromNow', function (assert) { - assert.equal(moment().add({s: 30}).fromNow(), 'ஒரு சில விநாடிகள் இல்', 'ஒரு சில விநாடிகள் இல்'); - assert.equal(moment().add({d: 5}).fromNow(), '௫ நாட்கள் இல்', '5 நாட்கள் இல்'); -}); - -test('calendar day', function (assert) { - var a = moment().hours(12).minutes(0).seconds(0); - - assert.equal(moment(a).calendar(), 'இன்று ௧௨:௦௦', 'இன்று 12:00'); - assert.equal(moment(a).add({m: 25}).calendar(), 'இன்று ௧௨:௨௫', 'இன்று 12:25'); - assert.equal(moment(a).add({h: 1}).calendar(), 'இன்று ௧௩:௦௦', 'இன்று 13:00'); - assert.equal(moment(a).add({d: 1}).calendar(), 'நாளை ௧௨:௦௦', 'நாளை 12:00'); - assert.equal(moment(a).subtract({h: 1}).calendar(), 'இன்று ௧௧:௦௦', 'இன்று 11:00'); - assert.equal(moment(a).subtract({d: 1}).calendar(), 'நேற்று ௧௨:௦௦', 'நேற்று 12:00'); -}); - -test('calendar next week', function (assert) { - var i, m; - for (i = 2; i < 7; i++) { - m = moment().add({d: i}); - assert.equal(m.calendar(), m.format('dddd, LT'), 'Today + ' + i + ' days current time'); - m.hours(0).minutes(0).seconds(0).milliseconds(0); - assert.equal(m.calendar(), m.format('dddd, LT'), 'Today + ' + i + ' days beginning of day'); - m.hours(23).minutes(59).seconds(59).milliseconds(999); - assert.equal(m.calendar(), m.format('dddd, LT'), 'Today + ' + i + ' days end of day'); - } -}); - -test('calendar last week', function (assert) { - var i, m; - - for (i = 2; i < 7; i++) { - m = moment().subtract({d: i}); - assert.equal(m.calendar(), m.format('[கடந்த வாரம்] dddd, LT'), 'Today - ' + i + ' days current time'); - m.hours(0).minutes(0).seconds(0).milliseconds(0); - assert.equal(m.calendar(), m.format('[கடந்த வாரம்] dddd, LT'), 'Today - ' + i + ' days beginning of day'); - m.hours(23).minutes(59).seconds(59).milliseconds(999); - assert.equal(m.calendar(), m.format('[கடந்த வாரம்] dddd, LT'), 'Today - ' + i + ' days end of day'); - } -}); - -test('calendar all else', function (assert) { - var weeksAgo = moment().subtract({w: 1}), - weeksFromNow = moment().add({w: 1}); - - assert.equal(weeksAgo.calendar(), weeksAgo.format('L'), '1 week ago'); - assert.equal(weeksFromNow.calendar(), weeksFromNow.format('L'), 'in 1 week'); - - weeksAgo = moment().subtract({w: 2}); - weeksFromNow = moment().add({w: 2}); - - assert.equal(weeksAgo.calendar(), weeksAgo.format('L'), '2 weeks ago'); - assert.equal(weeksFromNow.calendar(), weeksFromNow.format('L'), 'in 2 weeks'); -}); - -test('meridiem', function (assert) { - assert.equal(moment([2011, 2, 23, 0, 30]).format('a'), ' யாமம்', '(after) midnight'); - assert.equal(moment([2011, 2, 23, 2, 30]).format('a'), ' வைகறை', 'before dawn'); - assert.equal(moment([2011, 2, 23, 9, 30]).format('a'), ' காலை', 'morning'); - assert.equal(moment([2011, 2, 23, 14, 30]).format('a'), ' எற்பாடு', 'during day'); - assert.equal(moment([2011, 2, 23, 17, 30]).format('a'), ' எற்பாடு', 'evening'); - assert.equal(moment([2011, 2, 23, 19, 30]).format('a'), ' மாலை', 'late evening'); - assert.equal(moment([2011, 2, 23, 23, 30]).format('a'), ' யாமம்', '(before) midnight'); -}); - -}))); - - -;(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' - && typeof require === 'function' ? factory(require('../../moment')) : - typeof define === 'function' && define.amd ? define(['../../moment'], factory) : - factory(global.moment) -}(this, (function (moment) { 'use strict'; - -function each(array, callback) { - var i; - for (i = 0; i < array.length; i++) { - callback(array[i], i, array); - } -} - -function objectKeys(obj) { - if (Object.keys) { - return Object.keys(obj); - } else { - // IE8 - var res = [], i; - for (i in obj) { - if (obj.hasOwnProperty(i)) { - res.push(i); - } - } - return res; - } -} - -// Pick the first defined of two or three arguments. - -function defineCommonLocaleTests(locale, options) { - test('lenient day of month ordinal parsing', function (assert) { - var i, ordinalStr, testMoment; - for (i = 1; i <= 31; ++i) { - ordinalStr = moment([2014, 0, i]).format('YYYY MM Do'); - testMoment = moment(ordinalStr, 'YYYY MM Do'); - assert.equal(testMoment.year(), 2014, - 'lenient day of month ordinal parsing ' + i + ' year check'); - assert.equal(testMoment.month(), 0, - 'lenient day of month ordinal parsing ' + i + ' month check'); - assert.equal(testMoment.date(), i, - 'lenient day of month ordinal parsing ' + i + ' date check'); - } - }); - - test('lenient day of month ordinal parsing of number', function (assert) { - var i, testMoment; - for (i = 1; i <= 31; ++i) { - testMoment = moment('2014 01 ' + i, 'YYYY MM Do'); - assert.equal(testMoment.year(), 2014, - 'lenient day of month ordinal parsing of number ' + i + ' year check'); - assert.equal(testMoment.month(), 0, - 'lenient day of month ordinal parsing of number ' + i + ' month check'); - assert.equal(testMoment.date(), i, - 'lenient day of month ordinal parsing of number ' + i + ' date check'); - } - }); - - test('strict day of month ordinal parsing', function (assert) { - var i, ordinalStr, testMoment; - for (i = 1; i <= 31; ++i) { - ordinalStr = moment([2014, 0, i]).format('YYYY MM Do'); - testMoment = moment(ordinalStr, 'YYYY MM Do', true); - assert.ok(testMoment.isValid(), 'strict day of month ordinal parsing ' + i); - } - }); - - test('meridiem invariant', function (assert) { - var h, m, t1, t2; - for (h = 0; h < 24; ++h) { - for (m = 0; m < 60; m += 15) { - t1 = moment.utc([2000, 0, 1, h, m]); - t2 = moment.utc(t1.format('A h:mm'), 'A h:mm'); - assert.equal(t2.format('HH:mm'), t1.format('HH:mm'), - 'meridiem at ' + t1.format('HH:mm')); - } - } - }); - - test('date format correctness', function (assert) { - var data, tokens; - data = moment.localeData()._longDateFormat; - tokens = objectKeys(data); - each(tokens, function (srchToken) { - // Check each format string to make sure it does not contain any - // tokens that need to be expanded. - each(tokens, function (baseToken) { - // strip escaped sequences - var format = data[baseToken].replace(/(\[[^\]]*\])/g, ''); - assert.equal(false, !!~format.indexOf(srchToken), - 'contains ' + srchToken + ' in ' + baseToken); - }); - }); - }); - - test('month parsing correctness', function (assert) { - var i, m; - - if (locale === 'tr') { - // I can't fix it :( - expect(0); - return; - } - function tester(format) { - var r; - r = moment(m.format(format), format); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format); - r = moment(m.format(format).toLocaleUpperCase(), format); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' upper'); - r = moment(m.format(format).toLocaleLowerCase(), format); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' lower'); - - r = moment(m.format(format), format, true); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' strict'); - r = moment(m.format(format).toLocaleUpperCase(), format, true); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' upper strict'); - r = moment(m.format(format).toLocaleLowerCase(), format, true); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' lower strict'); - } - - for (i = 0; i < 12; ++i) { - m = moment([2015, i, 15, 18]); - tester('MMM'); - tester('MMM.'); - tester('MMMM'); - tester('MMMM.'); - } - }); - - test('weekday parsing correctness', function (assert) { - var i, m; - - if (locale === 'tr' || locale === 'az' || locale === 'ro') { - // tr, az: There is a lower-case letter (ı), that converted to - // upper then lower changes to i - // ro: there is the letter ț which behaves weird under IE8 - expect(0); - return; - } - function tester(format) { - var r, baseMsg = 'weekday ' + m.weekday() + ' fmt ' + format + ' ' + m.toISOString(); - r = moment(m.format(format), format); - assert.equal(r.weekday(), m.weekday(), baseMsg); - r = moment(m.format(format).toLocaleUpperCase(), format); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' upper'); - r = moment(m.format(format).toLocaleLowerCase(), format); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' lower'); - - r = moment(m.format(format), format, true); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' strict'); - r = moment(m.format(format).toLocaleUpperCase(), format, true); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' upper strict'); - r = moment(m.format(format).toLocaleLowerCase(), format, true); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' lower strict'); - } - - for (i = 0; i < 7; ++i) { - m = moment.utc([2015, 0, i + 1, 18]); - tester('dd'); - tester('ddd'); - tester('dddd'); - } - }); - - test('valid localeData', function (assert) { - assert.equal(moment().localeData().months().length, 12, 'months should return 12 months'); - assert.equal(moment().localeData().monthsShort().length, 12, 'monthsShort should return 12 months'); - assert.equal(moment().localeData().weekdays().length, 7, 'weekdays should return 7 days'); - assert.equal(moment().localeData().weekdaysShort().length, 7, 'weekdaysShort should return 7 days'); - assert.equal(moment().localeData().weekdaysMin().length, 7, 'monthsShort should return 7 days'); - }); -} - -function setupDeprecationHandler(test, moment$$1, scope) { - test._expectedDeprecations = null; - test._observedDeprecations = null; - test._oldSupress = moment$$1.suppressDeprecationWarnings; - moment$$1.suppressDeprecationWarnings = true; - test.expectedDeprecations = function () { - test._expectedDeprecations = arguments; - test._observedDeprecations = []; - }; - moment$$1.deprecationHandler = function (name, msg) { - var deprecationId = matchedDeprecation(name, msg, test._expectedDeprecations); - if (deprecationId === -1) { - throw new Error('Unexpected deprecation thrown name=' + - name + ' msg=' + msg); - } - test._observedDeprecations[deprecationId] = 1; - }; -} - -function teardownDeprecationHandler(test, moment$$1, scope) { - moment$$1.suppressDeprecationWarnings = test._oldSupress; - - if (test._expectedDeprecations != null) { - var missedDeprecations = []; - each(test._expectedDeprecations, function (deprecationPattern, id) { - if (test._observedDeprecations[id] !== 1) { - missedDeprecations.push(deprecationPattern); - } - }); - if (missedDeprecations.length !== 0) { - throw new Error('Expected deprecation warnings did not happen: ' + - missedDeprecations.join(' ')); - } - } -} - -function matchedDeprecation(name, msg, deprecations) { - if (deprecations == null) { - return -1; - } - for (var i = 0; i < deprecations.length; ++i) { - if (name != null && name === deprecations[i]) { - return i; - } - if (msg != null && msg.substring(0, deprecations[i].length) === deprecations[i]) { - return i; - } - } - return -1; -} - -/*global QUnit:false*/ - -var test = QUnit.test; - -var expect = QUnit.expect; - - - -function localeModule (name, lifecycle) { - QUnit.module('locale:' + name, { - setup : function () { - moment.locale(name); - moment.createFromInputFallback = function (config) { - throw new Error('input not handled by moment: ' + config._i); - }; - setupDeprecationHandler(test, moment, 'locale'); - if (lifecycle && lifecycle.setup) { - lifecycle.setup(); - } - }, - teardown : function () { - moment.locale('en'); - teardownDeprecationHandler(test, moment, 'locale'); - if (lifecycle && lifecycle.teardown) { - lifecycle.teardown(); - } - } - }); - defineCommonLocaleTests(name, -1, -1); -} - -localeModule('te'); - -test('parse', function (assert) { - var tests = 'జనవరి జన._ఫిబ్రవరి ఫిబ్ర._మార్చి మార్చి_ఏప్రిల్ ఏప్రి._మే మే_జూన్ జూన్_జూలై జూలై_ఆగస్టు ఆగ._సెప్టెంబర్ సెప్._అక్టోబర్ అక్టో._నవంబర్ నవ._డిసెంబర్ డిసె.'.split('_'), i; - function equalTest(input, mmm, i) { - assert.equal(moment(input, mmm).month(), i, input + ' should be month ' + (i + 1)); - } - for (i = 0; i < 12; i++) { - tests[i] = tests[i].split(' '); - equalTest(tests[i][0], 'MMM', i); - equalTest(tests[i][1], 'MMM', i); - equalTest(tests[i][0], 'MMMM', i); - equalTest(tests[i][1], 'MMMM', i); - equalTest(tests[i][0].toLocaleLowerCase(), 'MMMM', i); - equalTest(tests[i][1].toLocaleLowerCase(), 'MMMM', i); - equalTest(tests[i][0].toLocaleUpperCase(), 'MMMM', i); - equalTest(tests[i][1].toLocaleUpperCase(), 'MMMM', i); - } -}); - -test('format', function (assert) { - var a = [ - ['dddd, Do తేదీ MMMM YYYY, a h:mm:ss', 'ఆదివారం, 14వ తేదీ ఫిబ్రవరి 2010, మధ్యాహ్నం 3:25:50'], - ['ddd, a h గంటలు', 'ఆది, మధ్యాహ్నం 3 గంటలు'], - ['M Mo నెల MM MMMM MMM', '2 2వ నెల 02 ఫిబ్రవరి ఫిబ్ర.'], - ['YYYY YY', '2010 10'], - ['D Do DD', '14 14వ 14'], - ['d do dddd ddd dd', '0 0వ ఆదివారం ఆది ఆ'], - ['DDD DDDo DDDD', '45 45వ 045'], - ['w wo ww', '8 8వ 08'], - ['h hh', '3 03'], - ['H HH', '15 15'], - ['m mm', '25 25'], - ['s ss', '50 50'], - ['a A', 'మధ్యాహ్నం మధ్యాహ్నం'], - ['LTS', 'మధ్యాహ్నం 3:25:50'], - ['L', '14/02/2010'], - ['LL', '14 ఫిబ్రవరి 2010'], - ['LLL', '14 ఫిబ్రవరి 2010, మధ్యాహ్నం 3:25'], - ['LLLL', 'ఆదివారం, 14 ఫిబ్రవరి 2010, మధ్యాహ్నం 3:25'], - ['l', '14/2/2010'], - ['ll', '14 ఫిబ్ర. 2010'], - ['lll', '14 ఫిబ్ర. 2010, మధ్యాహ్నం 3:25'], - ['llll', 'ఆది, 14 ఫిబ్ర. 2010, మధ్యాహ్నం 3:25'] - ], - b = moment(new Date(2010, 1, 14, 15, 25, 50, 125)), - i; - for (i = 0; i < a.length; i++) { - assert.equal(b.format(a[i][0]), a[i][1], a[i][0] + ' ---> ' + a[i][1]); - } -}); - -test('format ordinal', function (assert) { - assert.equal(moment([2011, 0, 1]).format('DDDo'), '1వ', '1వ'); - assert.equal(moment([2011, 0, 2]).format('DDDo'), '2వ', '2వ'); - assert.equal(moment([2011, 0, 3]).format('DDDo'), '3వ', '3వ'); - assert.equal(moment([2011, 0, 4]).format('DDDo'), '4వ', '4వ'); - assert.equal(moment([2011, 0, 5]).format('DDDo'), '5వ', '5వ'); - assert.equal(moment([2011, 0, 6]).format('DDDo'), '6వ', '6వ'); - assert.equal(moment([2011, 0, 7]).format('DDDo'), '7వ', '7వ'); - assert.equal(moment([2011, 0, 8]).format('DDDo'), '8వ', '8వ'); - assert.equal(moment([2011, 0, 9]).format('DDDo'), '9వ', '9వ'); - assert.equal(moment([2011, 0, 10]).format('DDDo'), '10వ', '10వ'); - - assert.equal(moment([2011, 0, 11]).format('DDDo'), '11వ', '11వ'); - assert.equal(moment([2011, 0, 12]).format('DDDo'), '12వ', '12వ'); - assert.equal(moment([2011, 0, 13]).format('DDDo'), '13వ', '13వ'); - assert.equal(moment([2011, 0, 14]).format('DDDo'), '14వ', '14వ'); - assert.equal(moment([2011, 0, 15]).format('DDDo'), '15వ', '15వ'); - assert.equal(moment([2011, 0, 16]).format('DDDo'), '16వ', '16వ'); - assert.equal(moment([2011, 0, 17]).format('DDDo'), '17వ', '17వ'); - assert.equal(moment([2011, 0, 18]).format('DDDo'), '18వ', '18వ'); - assert.equal(moment([2011, 0, 19]).format('DDDo'), '19వ', '19వ'); - assert.equal(moment([2011, 0, 20]).format('DDDo'), '20వ', '20వ'); - - assert.equal(moment([2011, 0, 21]).format('DDDo'), '21వ', '21వ'); - assert.equal(moment([2011, 0, 22]).format('DDDo'), '22వ', '22వ'); - assert.equal(moment([2011, 0, 23]).format('DDDo'), '23వ', '23వ'); - assert.equal(moment([2011, 0, 24]).format('DDDo'), '24వ', '24వ'); - assert.equal(moment([2011, 0, 25]).format('DDDo'), '25వ', '25వ'); - assert.equal(moment([2011, 0, 26]).format('DDDo'), '26వ', '26వ'); - assert.equal(moment([2011, 0, 27]).format('DDDo'), '27వ', '27వ'); - assert.equal(moment([2011, 0, 28]).format('DDDo'), '28వ', '28వ'); - assert.equal(moment([2011, 0, 29]).format('DDDo'), '29వ', '29వ'); - assert.equal(moment([2011, 0, 30]).format('DDDo'), '30వ', '30వ'); - - assert.equal(moment([2011, 0, 31]).format('DDDo'), '31వ', '31వ'); -}); - -test('format month', function (assert) { - var expected = 'జనవరి జన._ఫిబ్రవరి ఫిబ్ర._మార్చి మార్చి_ఏప్రిల్ ఏప్రి._మే మే_జూన్ జూన్_జూలై జూలై_ఆగస్టు ఆగ._సెప్టెంబర్ సెప్._అక్టోబర్ అక్టో._నవంబర్ నవ._డిసెంబర్ డిసె.'.split('_'), i; - for (i = 0; i < expected.length; i++) { - assert.equal(moment([2011, i, 1]).format('MMMM MMM'), expected[i], expected[i]); - } -}); - -test('format week', function (assert) { - var expected = 'ఆదివారం ఆది ఆ_సోమవారం సోమ సో_మంగళవారం మంగళ మం_బుధవారం బుధ బు_గురువారం గురు గు_శుక్రవారం శుక్ర శు_శనివారం శని శ'.split('_'), i; - for (i = 0; i < expected.length; i++) { - assert.equal(moment([2011, 0, 2 + i]).format('dddd ddd dd'), expected[i], expected[i]); - } -}); - -test('from', function (assert) { - var start = moment([2007, 1, 28]); - assert.equal(start.from(moment([2007, 1, 28]).add({s: 44}), true), 'కొన్ని క్షణాలు', '44 seconds = a few seconds'); - assert.equal(start.from(moment([2007, 1, 28]).add({s: 45}), true), 'ఒక నిమిషం', '45 seconds = a minute'); - assert.equal(start.from(moment([2007, 1, 28]).add({s: 89}), true), 'ఒక నిమిషం', '89 seconds = a minute'); - assert.equal(start.from(moment([2007, 1, 28]).add({s: 90}), true), '2 నిమిషాలు', '90 seconds = 2 minutes'); - assert.equal(start.from(moment([2007, 1, 28]).add({m: 44}), true), '44 నిమిషాలు', '44 minutes = 44 minutes'); - assert.equal(start.from(moment([2007, 1, 28]).add({m: 45}), true), 'ఒక గంట', '45 minutes = an hour'); - assert.equal(start.from(moment([2007, 1, 28]).add({m: 89}), true), 'ఒక గంట', '89 minutes = an hour'); - assert.equal(start.from(moment([2007, 1, 28]).add({m: 90}), true), '2 గంటలు', '90 minutes = 2 hours'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 5}), true), '5 గంటలు', '5 hours = 5 hours'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 21}), true), '21 గంటలు', '21 hours = 21 hours'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 22}), true), 'ఒక రోజు', '22 hours = a day'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 35}), true), 'ఒక రోజు', '35 hours = a day'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 36}), true), '2 రోజులు', '36 hours = 2 days'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 1}), true), 'ఒక రోజు', '1 day = a day'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 5}), true), '5 రోజులు', '5 days = 5 days'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 25}), true), '25 రోజులు', '25 days = 25 days'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 26}), true), 'ఒక నెల', '26 days = a month'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 30}), true), 'ఒక నెల', '30 days = a month'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 43}), true), 'ఒక నెల', '43 days = a month'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 46}), true), '2 నెలలు', '46 days = 2 months'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 74}), true), '2 నెలలు', '75 days = 2 months'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 76}), true), '3 నెలలు', '76 days = 3 months'); - assert.equal(start.from(moment([2007, 1, 28]).add({M: 1}), true), 'ఒక నెల', '1 month = a month'); - assert.equal(start.from(moment([2007, 1, 28]).add({M: 5}), true), '5 నెలలు', '5 months = 5 months'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 345}), true), 'ఒక సంవత్సరం', '345 days = a year'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 548}), true), '2 సంవత్సరాలు', '548 days = 2 years'); - assert.equal(start.from(moment([2007, 1, 28]).add({y: 1}), true), 'ఒక సంవత్సరం', '1 year = a year'); - assert.equal(start.from(moment([2007, 1, 28]).add({y: 5}), true), '5 సంవత్సరాలు', '5 years = 5 years'); -}); - -test('suffix', function (assert) { - assert.equal(moment(30000).from(0), 'కొన్ని క్షణాలు లో', 'prefix'); - assert.equal(moment(0).from(30000), 'కొన్ని క్షణాలు క్రితం', 'suffix'); -}); - -test('now from now', function (assert) { - assert.equal(moment().fromNow(), 'కొన్ని క్షణాలు క్రితం', 'now from now should display as in the past'); -}); - -test('fromNow', function (assert) { - assert.equal(moment().add({s: 30}).fromNow(), 'కొన్ని క్షణాలు లో', 'కొన్ని క్షణాలు లో'); - assert.equal(moment().add({d: 5}).fromNow(), '5 రోజులు లో', '5 రోజులు లో'); -}); - -test('calendar day', function (assert) { - var a = moment().hours(12).minutes(0).seconds(0); - - assert.equal(moment(a).calendar(), 'నేడు మధ్యాహ్నం 12:00', 'today at the same time'); - assert.equal(moment(a).add({m: 25}).calendar(), 'నేడు మధ్యాహ్నం 12:25', 'Now plus 25 min'); - assert.equal(moment(a).add({h: 3}).calendar(), 'నేడు మధ్యాహ్నం 3:00', 'Now plus 3 hours'); - assert.equal(moment(a).add({d: 1}).calendar(), 'రేపు మధ్యాహ్నం 12:00', 'tomorrow at the same time'); - assert.equal(moment(a).subtract({h: 1}).calendar(), 'నేడు మధ్యాహ్నం 11:00', 'Now minus 1 hour'); - assert.equal(moment(a).subtract({d: 1}).calendar(), 'నిన్న మధ్యాహ్నం 12:00', 'yesterday at the same time'); -}); - -test('calendar next week', function (assert) { - var i, m; - for (i = 2; i < 7; i++) { - m = moment().add({d: i}); - assert.equal(m.calendar(), m.format('dddd[,] LT'), 'Today + ' + i + ' days current time'); - m.hours(0).minutes(0).seconds(0).milliseconds(0); - assert.equal(m.calendar(), m.format('dddd[,] LT'), 'Today + ' + i + ' days beginning of day'); - m.hours(23).minutes(59).seconds(59).milliseconds(999); - assert.equal(m.calendar(), m.format('dddd[,] LT'), 'Today + ' + i + ' days end of day'); - } -}); - -test('calendar last week', function (assert) { - var i, m; - - for (i = 2; i < 7; i++) { - m = moment().subtract({d: i}); - assert.equal(m.calendar(), m.format('[గత] dddd[,] LT'), 'Today - ' + i + ' days current time'); - m.hours(0).minutes(0).seconds(0).milliseconds(0); - assert.equal(m.calendar(), m.format('[గత] dddd[,] LT'), 'Today - ' + i + ' days beginning of day'); - m.hours(23).minutes(59).seconds(59).milliseconds(999); - assert.equal(m.calendar(), m.format('[గత] dddd[,] LT'), 'Today - ' + i + ' days end of day'); - } -}); - -test('calendar all else', function (assert) { - var weeksAgo = moment().subtract({w: 1}), - weeksFromNow = moment().add({w: 1}); - - assert.equal(weeksAgo.calendar(), weeksAgo.format('L'), '1 week ago'); - assert.equal(weeksFromNow.calendar(), weeksFromNow.format('L'), 'in 1 week'); - - weeksAgo = moment().subtract({w: 2}); - weeksFromNow = moment().add({w: 2}); - - assert.equal(weeksAgo.calendar(), weeksAgo.format('L'), '2 weeks ago'); - assert.equal(weeksFromNow.calendar(), weeksFromNow.format('L'), 'in 2 weeks'); -}); - -test('meridiem', function (assert) { - assert.equal(moment([2011, 2, 23, 2, 30]).format('a'), 'రాత్రి', 'before dawn'); - assert.equal(moment([2011, 2, 23, 9, 30]).format('a'), 'ఉదయం', 'morning'); - assert.equal(moment([2011, 2, 23, 14, 30]).format('a'), 'మధ్యాహ్నం', 'during day'); - assert.equal(moment([2011, 2, 23, 17, 30]).format('a'), 'సాయంత్రం', 'evening'); - assert.equal(moment([2011, 2, 23, 19, 30]).format('a'), 'సాయంత్రం', 'late evening'); - assert.equal(moment([2011, 2, 23, 21, 20]).format('a'), 'రాత్రి', 'night'); - - assert.equal(moment([2011, 2, 23, 2, 30]).format('A'), 'రాత్రి', 'before dawn'); - assert.equal(moment([2011, 2, 23, 9, 30]).format('A'), 'ఉదయం', 'morning'); - assert.equal(moment([2011, 2, 23, 14, 30]).format('A'), 'మధ్యాహ్నం', ' during day'); - assert.equal(moment([2011, 2, 23, 17, 30]).format('A'), 'సాయంత్రం', 'evening'); - assert.equal(moment([2011, 2, 23, 19, 30]).format('A'), 'సాయంత్రం', 'late evening'); - assert.equal(moment([2011, 2, 23, 21, 20]).format('A'), 'రాత్రి', 'night'); -}); - -test('weeks year starting sunday formatted', function (assert) { - assert.equal(moment([2012, 0, 1]).format('w ww wo'), '1 01 1వ', 'Jan 1 2012 should be week 1'); - assert.equal(moment([2012, 0, 7]).format('w ww wo'), '1 01 1వ', 'Jan 7 2012 should be week 1'); - assert.equal(moment([2012, 0, 8]).format('w ww wo'), '2 02 2వ', 'Jan 8 2012 should be week 2'); - assert.equal(moment([2012, 0, 14]).format('w ww wo'), '2 02 2వ', 'Jan 14 2012 should be week 2'); - assert.equal(moment([2012, 0, 15]).format('w ww wo'), '3 03 3వ', 'Jan 15 2012 should be week 3'); -}); - -}))); - - -;(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' - && typeof require === 'function' ? factory(require('../../moment')) : - typeof define === 'function' && define.amd ? define(['../../moment'], factory) : - factory(global.moment) -}(this, (function (moment) { 'use strict'; - -function each(array, callback) { - var i; - for (i = 0; i < array.length; i++) { - callback(array[i], i, array); - } -} - -function objectKeys(obj) { - if (Object.keys) { - return Object.keys(obj); - } else { - // IE8 - var res = [], i; - for (i in obj) { - if (obj.hasOwnProperty(i)) { - res.push(i); - } - } - return res; - } -} - -// Pick the first defined of two or three arguments. - -function defineCommonLocaleTests(locale, options) { - test('lenient day of month ordinal parsing', function (assert) { - var i, ordinalStr, testMoment; - for (i = 1; i <= 31; ++i) { - ordinalStr = moment([2014, 0, i]).format('YYYY MM Do'); - testMoment = moment(ordinalStr, 'YYYY MM Do'); - assert.equal(testMoment.year(), 2014, - 'lenient day of month ordinal parsing ' + i + ' year check'); - assert.equal(testMoment.month(), 0, - 'lenient day of month ordinal parsing ' + i + ' month check'); - assert.equal(testMoment.date(), i, - 'lenient day of month ordinal parsing ' + i + ' date check'); - } - }); - - test('lenient day of month ordinal parsing of number', function (assert) { - var i, testMoment; - for (i = 1; i <= 31; ++i) { - testMoment = moment('2014 01 ' + i, 'YYYY MM Do'); - assert.equal(testMoment.year(), 2014, - 'lenient day of month ordinal parsing of number ' + i + ' year check'); - assert.equal(testMoment.month(), 0, - 'lenient day of month ordinal parsing of number ' + i + ' month check'); - assert.equal(testMoment.date(), i, - 'lenient day of month ordinal parsing of number ' + i + ' date check'); - } - }); - - test('strict day of month ordinal parsing', function (assert) { - var i, ordinalStr, testMoment; - for (i = 1; i <= 31; ++i) { - ordinalStr = moment([2014, 0, i]).format('YYYY MM Do'); - testMoment = moment(ordinalStr, 'YYYY MM Do', true); - assert.ok(testMoment.isValid(), 'strict day of month ordinal parsing ' + i); - } - }); - - test('meridiem invariant', function (assert) { - var h, m, t1, t2; - for (h = 0; h < 24; ++h) { - for (m = 0; m < 60; m += 15) { - t1 = moment.utc([2000, 0, 1, h, m]); - t2 = moment.utc(t1.format('A h:mm'), 'A h:mm'); - assert.equal(t2.format('HH:mm'), t1.format('HH:mm'), - 'meridiem at ' + t1.format('HH:mm')); - } - } - }); - - test('date format correctness', function (assert) { - var data, tokens; - data = moment.localeData()._longDateFormat; - tokens = objectKeys(data); - each(tokens, function (srchToken) { - // Check each format string to make sure it does not contain any - // tokens that need to be expanded. - each(tokens, function (baseToken) { - // strip escaped sequences - var format = data[baseToken].replace(/(\[[^\]]*\])/g, ''); - assert.equal(false, !!~format.indexOf(srchToken), - 'contains ' + srchToken + ' in ' + baseToken); - }); - }); - }); - - test('month parsing correctness', function (assert) { - var i, m; - - if (locale === 'tr') { - // I can't fix it :( - expect(0); - return; - } - function tester(format) { - var r; - r = moment(m.format(format), format); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format); - r = moment(m.format(format).toLocaleUpperCase(), format); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' upper'); - r = moment(m.format(format).toLocaleLowerCase(), format); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' lower'); - - r = moment(m.format(format), format, true); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' strict'); - r = moment(m.format(format).toLocaleUpperCase(), format, true); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' upper strict'); - r = moment(m.format(format).toLocaleLowerCase(), format, true); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' lower strict'); - } - - for (i = 0; i < 12; ++i) { - m = moment([2015, i, 15, 18]); - tester('MMM'); - tester('MMM.'); - tester('MMMM'); - tester('MMMM.'); - } - }); - - test('weekday parsing correctness', function (assert) { - var i, m; - - if (locale === 'tr' || locale === 'az' || locale === 'ro') { - // tr, az: There is a lower-case letter (ı), that converted to - // upper then lower changes to i - // ro: there is the letter ț which behaves weird under IE8 - expect(0); - return; - } - function tester(format) { - var r, baseMsg = 'weekday ' + m.weekday() + ' fmt ' + format + ' ' + m.toISOString(); - r = moment(m.format(format), format); - assert.equal(r.weekday(), m.weekday(), baseMsg); - r = moment(m.format(format).toLocaleUpperCase(), format); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' upper'); - r = moment(m.format(format).toLocaleLowerCase(), format); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' lower'); - - r = moment(m.format(format), format, true); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' strict'); - r = moment(m.format(format).toLocaleUpperCase(), format, true); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' upper strict'); - r = moment(m.format(format).toLocaleLowerCase(), format, true); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' lower strict'); - } - - for (i = 0; i < 7; ++i) { - m = moment.utc([2015, 0, i + 1, 18]); - tester('dd'); - tester('ddd'); - tester('dddd'); - } - }); - - test('valid localeData', function (assert) { - assert.equal(moment().localeData().months().length, 12, 'months should return 12 months'); - assert.equal(moment().localeData().monthsShort().length, 12, 'monthsShort should return 12 months'); - assert.equal(moment().localeData().weekdays().length, 7, 'weekdays should return 7 days'); - assert.equal(moment().localeData().weekdaysShort().length, 7, 'weekdaysShort should return 7 days'); - assert.equal(moment().localeData().weekdaysMin().length, 7, 'monthsShort should return 7 days'); - }); -} - -function setupDeprecationHandler(test, moment$$1, scope) { - test._expectedDeprecations = null; - test._observedDeprecations = null; - test._oldSupress = moment$$1.suppressDeprecationWarnings; - moment$$1.suppressDeprecationWarnings = true; - test.expectedDeprecations = function () { - test._expectedDeprecations = arguments; - test._observedDeprecations = []; - }; - moment$$1.deprecationHandler = function (name, msg) { - var deprecationId = matchedDeprecation(name, msg, test._expectedDeprecations); - if (deprecationId === -1) { - throw new Error('Unexpected deprecation thrown name=' + - name + ' msg=' + msg); - } - test._observedDeprecations[deprecationId] = 1; - }; -} - -function teardownDeprecationHandler(test, moment$$1, scope) { - moment$$1.suppressDeprecationWarnings = test._oldSupress; - - if (test._expectedDeprecations != null) { - var missedDeprecations = []; - each(test._expectedDeprecations, function (deprecationPattern, id) { - if (test._observedDeprecations[id] !== 1) { - missedDeprecations.push(deprecationPattern); - } - }); - if (missedDeprecations.length !== 0) { - throw new Error('Expected deprecation warnings did not happen: ' + - missedDeprecations.join(' ')); - } - } -} - -function matchedDeprecation(name, msg, deprecations) { - if (deprecations == null) { - return -1; - } - for (var i = 0; i < deprecations.length; ++i) { - if (name != null && name === deprecations[i]) { - return i; - } - if (msg != null && msg.substring(0, deprecations[i].length) === deprecations[i]) { - return i; - } - } - return -1; -} - -/*global QUnit:false*/ - -var test = QUnit.test; - -var expect = QUnit.expect; - - - -function localeModule (name, lifecycle) { - QUnit.module('locale:' + name, { - setup : function () { - moment.locale(name); - moment.createFromInputFallback = function (config) { - throw new Error('input not handled by moment: ' + config._i); - }; - setupDeprecationHandler(test, moment, 'locale'); - if (lifecycle && lifecycle.setup) { - lifecycle.setup(); - } - }, - teardown : function () { - moment.locale('en'); - teardownDeprecationHandler(test, moment, 'locale'); - if (lifecycle && lifecycle.teardown) { - lifecycle.teardown(); - } - } - }); - defineCommonLocaleTests(name, -1, -1); -} - -localeModule('tet'); - -test('parse', function (assert) { - var tests = 'Janeiru Jan_Fevereiru Fev_Marsu Mar_Abril Abr_Maiu Mai_Juniu Jun_Juliu Jul_Augustu Aug_Setembru Set_Outubru Out_Novembru Nov_Dezembru Dez'.split('_'), i; - function equalTest(input, mmm, i) { - assert.equal(moment(input, mmm).month(), i, input + ' should be month ' + (i + 1)); - } - for (i = 0; i < 12; i++) { - tests[i] = tests[i].split(' '); - equalTest(tests[i][0], 'MMM', i); - equalTest(tests[i][1], 'MMM', i); - equalTest(tests[i][0], 'MMMM', i); - equalTest(tests[i][1], 'MMMM', i); - equalTest(tests[i][0].toLocaleLowerCase(), 'MMMM', i); - equalTest(tests[i][1].toLocaleLowerCase(), 'MMMM', i); - equalTest(tests[i][0].toLocaleUpperCase(), 'MMMM', i); - equalTest(tests[i][1].toLocaleUpperCase(), 'MMMM', i); - } -}); - -test('format', function (assert) { - var a = [ - ['dddd, MMMM Do YYYY, h:mm:ss a', 'Domingu, Fevereiru 14th 2010, 3:25:50 pm'], - ['ddd, hA', 'Dom, 3PM'], - ['M Mo MM MMMM MMM', '2 2nd 02 Fevereiru Fev'], - ['YYYY YY', '2010 10'], - ['D Do DD', '14 14th 14'], - ['d do dddd ddd dd', '0 0th Domingu Dom Do'], - ['DDD DDDo DDDD', '45 45th 045'], - ['w wo ww', '6 6th 06'], - ['h hh', '3 03'], - ['H HH', '15 15'], - ['m mm', '25 25'], - ['s ss', '50 50'], - ['a A', 'pm PM'], - ['[the] DDDo [day of the year]', 'the 45th day of the year'], - ['LTS', '15:25:50'], - ['L', '14/02/2010'], - ['LL', '14 Fevereiru 2010'], - ['LLL', '14 Fevereiru 2010 15:25'], - ['LLLL', 'Domingu, 14 Fevereiru 2010 15:25'], - ['l', '14/2/2010'], - ['ll', '14 Fev 2010'], - ['lll', '14 Fev 2010 15:25'], - ['llll', 'Dom, 14 Fev 2010 15:25'] - ], - b = moment(new Date(2010, 1, 14, 15, 25, 50, 125)), - i; - for (i = 0; i < a.length; i++) { - assert.equal(b.format(a[i][0]), a[i][1], a[i][0] + ' ---> ' + a[i][1]); - } -}); - -test('format ordinal', function (assert) { - assert.equal(moment([2011, 0, 1]).format('DDDo'), '1st', '1st'); - assert.equal(moment([2011, 0, 2]).format('DDDo'), '2nd', '2nd'); - assert.equal(moment([2011, 0, 3]).format('DDDo'), '3rd', '3rd'); - assert.equal(moment([2011, 0, 4]).format('DDDo'), '4th', '4th'); - assert.equal(moment([2011, 0, 5]).format('DDDo'), '5th', '5th'); - assert.equal(moment([2011, 0, 6]).format('DDDo'), '6th', '6th'); - assert.equal(moment([2011, 0, 7]).format('DDDo'), '7th', '7th'); - assert.equal(moment([2011, 0, 8]).format('DDDo'), '8th', '8th'); - assert.equal(moment([2011, 0, 9]).format('DDDo'), '9th', '9th'); - assert.equal(moment([2011, 0, 10]).format('DDDo'), '10th', '10th'); - - assert.equal(moment([2011, 0, 11]).format('DDDo'), '11th', '11th'); - assert.equal(moment([2011, 0, 12]).format('DDDo'), '12th', '12th'); - assert.equal(moment([2011, 0, 13]).format('DDDo'), '13th', '13th'); - assert.equal(moment([2011, 0, 14]).format('DDDo'), '14th', '14th'); - assert.equal(moment([2011, 0, 15]).format('DDDo'), '15th', '15th'); - assert.equal(moment([2011, 0, 16]).format('DDDo'), '16th', '16th'); - assert.equal(moment([2011, 0, 17]).format('DDDo'), '17th', '17th'); - assert.equal(moment([2011, 0, 18]).format('DDDo'), '18th', '18th'); - assert.equal(moment([2011, 0, 19]).format('DDDo'), '19th', '19th'); - assert.equal(moment([2011, 0, 20]).format('DDDo'), '20th', '20th'); - - assert.equal(moment([2011, 0, 21]).format('DDDo'), '21st', '21st'); - assert.equal(moment([2011, 0, 22]).format('DDDo'), '22nd', '22nd'); - assert.equal(moment([2011, 0, 23]).format('DDDo'), '23rd', '23rd'); - assert.equal(moment([2011, 0, 24]).format('DDDo'), '24th', '24th'); - assert.equal(moment([2011, 0, 25]).format('DDDo'), '25th', '25th'); - assert.equal(moment([2011, 0, 26]).format('DDDo'), '26th', '26th'); - assert.equal(moment([2011, 0, 27]).format('DDDo'), '27th', '27th'); - assert.equal(moment([2011, 0, 28]).format('DDDo'), '28th', '28th'); - assert.equal(moment([2011, 0, 29]).format('DDDo'), '29th', '29th'); - assert.equal(moment([2011, 0, 30]).format('DDDo'), '30th', '30th'); - - assert.equal(moment([2011, 0, 31]).format('DDDo'), '31st', '31st'); -}); - -test('format month', function (assert) { - var expected = 'Janeiru Jan_Fevereiru Fev_Marsu Mar_Abril Abr_Maiu Mai_Juniu Jun_Juliu Jul_Augustu Aug_Setembru Set_Outubru Out_Novembru Nov_Dezembru Dez'.split('_'), i; - for (i = 0; i < expected.length; i++) { - assert.equal(moment([2011, i, 1]).format('MMMM MMM'), expected[i], expected[i]); - } -}); - -test('format week', function (assert) { - var expected = 'Domingu Dom Do_Segunda Seg Seg_Tersa Ters Te_Kuarta Kua Ku_Kinta Kint Ki_Sexta Sext Sex_Sabadu Sab Sa'.split('_'), i; - for (i = 0; i < expected.length; i++) { - assert.equal(moment([2011, 0, 2 + i]).format('dddd ddd dd'), expected[i], expected[i]); - } -}); - -test('from', function (assert) { - var start = moment([2007, 1, 28]); - assert.equal(start.from(moment([2007, 1, 28]).add({s: 44}), true), 'minutu balun', '44 seconds = a few seconds'); - assert.equal(start.from(moment([2007, 1, 28]).add({s: 45}), true), 'minutu ida', '45 seconds = a minute'); - assert.equal(start.from(moment([2007, 1, 28]).add({s: 89}), true), 'minutu ida', '89 seconds = a minute'); - assert.equal(start.from(moment([2007, 1, 28]).add({s: 90}), true), 'minutus 2', '90 seconds = 2 minutes'); - assert.equal(start.from(moment([2007, 1, 28]).add({m: 44}), true), 'minutus 44', '44 minutes = 44 minutes'); - assert.equal(start.from(moment([2007, 1, 28]).add({m: 45}), true), 'horas ida', '45 minutes = an hour'); - assert.equal(start.from(moment([2007, 1, 28]).add({m: 89}), true), 'horas ida', '89 minutes = an hour'); - assert.equal(start.from(moment([2007, 1, 28]).add({m: 90}), true), 'horas 2', '90 minutes = 2 hours'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 5}), true), 'horas 5', '5 hours = 5 hours'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 21}), true), 'horas 21', '21 hours = 21 hours'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 22}), true), 'loron ida', '22 hours = a day'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 35}), true), 'loron ida', '35 hours = a day'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 36}), true), 'loron 2', '36 hours = 2 days'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 1}), true), 'loron ida', '1 day = a day'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 5}), true), 'loron 5', '5 days = 5 days'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 25}), true), 'loron 25', '25 days = 25 days'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 26}), true), 'fulan ida', '26 days = a month'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 30}), true), 'fulan ida', '30 days = a month'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 43}), true), 'fulan ida', '43 days = a month'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 46}), true), 'fulan 2', '46 days = 2 months'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 74}), true), 'fulan 2', '75 days = 2 months'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 76}), true), 'fulan 3', '76 days = 3 months'); - assert.equal(start.from(moment([2007, 1, 28]).add({M: 1}), true), 'fulan ida', '1 month = a month'); - assert.equal(start.from(moment([2007, 1, 28]).add({M: 5}), true), 'fulan 5', '5 months = 5 months'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 345}), true), 'tinan ida', '345 days = a year'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 548}), true), 'tinan 2', '548 days = 2 years'); - assert.equal(start.from(moment([2007, 1, 28]).add({y: 1}), true), 'tinan ida', '1 year = a year'); - assert.equal(start.from(moment([2007, 1, 28]).add({y: 5}), true), 'tinan 5', '5 years = 5 years'); -}); - -test('suffix', function (assert) { - assert.equal(moment(30000).from(0), 'iha minutu balun', 'prefix'); - assert.equal(moment(0).from(30000), 'minutu balun liuba', 'suffix'); -}); - -test('now from now', function (assert) { - assert.equal(moment().fromNow(), 'minutu balun liuba', 'now from now should display as in the past'); -}); - -test('fromNow', function (assert) { - assert.equal(moment().add({s: 30}).fromNow(), 'iha minutu balun', 'in a few seconds'); - assert.equal(moment().add({d: 5}).fromNow(), 'iha loron 5', 'in 5 days'); -}); - -test('calendar day', function (assert) { - var a = moment().hours(12).minutes(0).seconds(0); - - assert.equal(moment(a).calendar(), 'Ohin iha 12:00', 'today at the same time'); - assert.equal(moment(a).add({m: 25}).calendar(), 'Ohin iha 12:25', 'Now plus 25 min'); - assert.equal(moment(a).add({h: 1}).calendar(), 'Ohin iha 13:00', 'Now plus 1 hour'); - assert.equal(moment(a).add({d: 1}).calendar(), 'Aban iha 12:00', 'tomorrow at the same time'); - assert.equal(moment(a).subtract({h: 1}).calendar(), 'Ohin iha 11:00', 'Now minus 1 hour'); - assert.equal(moment(a).subtract({d: 1}).calendar(), 'Horiseik iha 12:00', 'yesterday at the same time'); -}); - -test('calendar next week', function (assert) { - var i, m; - for (i = 2; i < 7; i++) { - m = moment().add({d: i}); - assert.equal(m.calendar(), m.format('dddd [iha] LT'), 'Today + ' + i + ' days current time'); - m.hours(0).minutes(0).seconds(0).milliseconds(0); - assert.equal(m.calendar(), m.format('dddd [iha] LT'), 'Today + ' + i + ' days beginning of day'); - m.hours(23).minutes(59).seconds(59).milliseconds(999); - assert.equal(m.calendar(), m.format('dddd [iha] LT'), 'Today + ' + i + ' days end of day'); - } -}); - -test('calendar last week', function (assert) { - var i, m; - - for (i = 2; i < 7; i++) { - m = moment().subtract({d: i}); - assert.equal(m.calendar(), m.format('dddd [semana kotuk] [iha] LT'), 'Today - ' + i + ' days current time'); - m.hours(0).minutes(0).seconds(0).milliseconds(0); - assert.equal(m.calendar(), m.format('dddd [semana kotuk] [iha] LT'), 'Today - ' + i + ' days beginning of day'); - m.hours(23).minutes(59).seconds(59).milliseconds(999); - assert.equal(m.calendar(), m.format('dddd [semana kotuk] [iha] LT'), 'Today - ' + i + ' days end of day'); - } -}); - -test('calendar all else', function (assert) { - var weeksAgo = moment().subtract({w: 1}), - weeksFromNow = moment().add({w: 1}); - - assert.equal(weeksAgo.calendar(), weeksAgo.format('L'), '1 week ago'); - assert.equal(weeksFromNow.calendar(), weeksFromNow.format('L'), 'in 1 week'); - - weeksAgo = moment().subtract({w: 2}); - weeksFromNow = moment().add({w: 2}); - - assert.equal(weeksAgo.calendar(), weeksAgo.format('L'), '2 weeks ago'); - assert.equal(weeksFromNow.calendar(), weeksFromNow.format('L'), 'in 2 weeks'); -}); - -test('weeks year starting sunday formatted', function (assert) { - assert.equal(moment([2012, 0, 1]).format('w ww wo'), '52 52 52nd', 'Jan 1 2012 should be week 52'); - assert.equal(moment([2012, 0, 2]).format('w ww wo'), '1 01 1st', 'Jan 2 2012 should be week 1'); - assert.equal(moment([2012, 0, 8]).format('w ww wo'), '1 01 1st', 'Jan 8 2012 should be week 1'); - assert.equal(moment([2012, 0, 9]).format('w ww wo'), '2 02 2nd', 'Jan 9 2012 should be week 2'); - assert.equal(moment([2012, 0, 15]).format('w ww wo'), '2 02 2nd', 'Jan 15 2012 should be week 2'); -}); - -}))); - - -;(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' - && typeof require === 'function' ? factory(require('../../moment')) : - typeof define === 'function' && define.amd ? define(['../../moment'], factory) : - factory(global.moment) -}(this, (function (moment) { 'use strict'; - -function each(array, callback) { - var i; - for (i = 0; i < array.length; i++) { - callback(array[i], i, array); - } -} - -function objectKeys(obj) { - if (Object.keys) { - return Object.keys(obj); - } else { - // IE8 - var res = [], i; - for (i in obj) { - if (obj.hasOwnProperty(i)) { - res.push(i); - } - } - return res; - } -} - -// Pick the first defined of two or three arguments. - -function defineCommonLocaleTests(locale, options) { - test('lenient day of month ordinal parsing', function (assert) { - var i, ordinalStr, testMoment; - for (i = 1; i <= 31; ++i) { - ordinalStr = moment([2014, 0, i]).format('YYYY MM Do'); - testMoment = moment(ordinalStr, 'YYYY MM Do'); - assert.equal(testMoment.year(), 2014, - 'lenient day of month ordinal parsing ' + i + ' year check'); - assert.equal(testMoment.month(), 0, - 'lenient day of month ordinal parsing ' + i + ' month check'); - assert.equal(testMoment.date(), i, - 'lenient day of month ordinal parsing ' + i + ' date check'); - } - }); - - test('lenient day of month ordinal parsing of number', function (assert) { - var i, testMoment; - for (i = 1; i <= 31; ++i) { - testMoment = moment('2014 01 ' + i, 'YYYY MM Do'); - assert.equal(testMoment.year(), 2014, - 'lenient day of month ordinal parsing of number ' + i + ' year check'); - assert.equal(testMoment.month(), 0, - 'lenient day of month ordinal parsing of number ' + i + ' month check'); - assert.equal(testMoment.date(), i, - 'lenient day of month ordinal parsing of number ' + i + ' date check'); - } - }); - - test('strict day of month ordinal parsing', function (assert) { - var i, ordinalStr, testMoment; - for (i = 1; i <= 31; ++i) { - ordinalStr = moment([2014, 0, i]).format('YYYY MM Do'); - testMoment = moment(ordinalStr, 'YYYY MM Do', true); - assert.ok(testMoment.isValid(), 'strict day of month ordinal parsing ' + i); - } - }); - - test('meridiem invariant', function (assert) { - var h, m, t1, t2; - for (h = 0; h < 24; ++h) { - for (m = 0; m < 60; m += 15) { - t1 = moment.utc([2000, 0, 1, h, m]); - t2 = moment.utc(t1.format('A h:mm'), 'A h:mm'); - assert.equal(t2.format('HH:mm'), t1.format('HH:mm'), - 'meridiem at ' + t1.format('HH:mm')); - } - } - }); - - test('date format correctness', function (assert) { - var data, tokens; - data = moment.localeData()._longDateFormat; - tokens = objectKeys(data); - each(tokens, function (srchToken) { - // Check each format string to make sure it does not contain any - // tokens that need to be expanded. - each(tokens, function (baseToken) { - // strip escaped sequences - var format = data[baseToken].replace(/(\[[^\]]*\])/g, ''); - assert.equal(false, !!~format.indexOf(srchToken), - 'contains ' + srchToken + ' in ' + baseToken); - }); - }); - }); - - test('month parsing correctness', function (assert) { - var i, m; - - if (locale === 'tr') { - // I can't fix it :( - expect(0); - return; - } - function tester(format) { - var r; - r = moment(m.format(format), format); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format); - r = moment(m.format(format).toLocaleUpperCase(), format); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' upper'); - r = moment(m.format(format).toLocaleLowerCase(), format); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' lower'); - - r = moment(m.format(format), format, true); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' strict'); - r = moment(m.format(format).toLocaleUpperCase(), format, true); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' upper strict'); - r = moment(m.format(format).toLocaleLowerCase(), format, true); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' lower strict'); - } - - for (i = 0; i < 12; ++i) { - m = moment([2015, i, 15, 18]); - tester('MMM'); - tester('MMM.'); - tester('MMMM'); - tester('MMMM.'); - } - }); - - test('weekday parsing correctness', function (assert) { - var i, m; - - if (locale === 'tr' || locale === 'az' || locale === 'ro') { - // tr, az: There is a lower-case letter (ı), that converted to - // upper then lower changes to i - // ro: there is the letter ț which behaves weird under IE8 - expect(0); - return; - } - function tester(format) { - var r, baseMsg = 'weekday ' + m.weekday() + ' fmt ' + format + ' ' + m.toISOString(); - r = moment(m.format(format), format); - assert.equal(r.weekday(), m.weekday(), baseMsg); - r = moment(m.format(format).toLocaleUpperCase(), format); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' upper'); - r = moment(m.format(format).toLocaleLowerCase(), format); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' lower'); - - r = moment(m.format(format), format, true); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' strict'); - r = moment(m.format(format).toLocaleUpperCase(), format, true); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' upper strict'); - r = moment(m.format(format).toLocaleLowerCase(), format, true); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' lower strict'); - } - - for (i = 0; i < 7; ++i) { - m = moment.utc([2015, 0, i + 1, 18]); - tester('dd'); - tester('ddd'); - tester('dddd'); - } - }); - - test('valid localeData', function (assert) { - assert.equal(moment().localeData().months().length, 12, 'months should return 12 months'); - assert.equal(moment().localeData().monthsShort().length, 12, 'monthsShort should return 12 months'); - assert.equal(moment().localeData().weekdays().length, 7, 'weekdays should return 7 days'); - assert.equal(moment().localeData().weekdaysShort().length, 7, 'weekdaysShort should return 7 days'); - assert.equal(moment().localeData().weekdaysMin().length, 7, 'monthsShort should return 7 days'); - }); -} - -function setupDeprecationHandler(test, moment$$1, scope) { - test._expectedDeprecations = null; - test._observedDeprecations = null; - test._oldSupress = moment$$1.suppressDeprecationWarnings; - moment$$1.suppressDeprecationWarnings = true; - test.expectedDeprecations = function () { - test._expectedDeprecations = arguments; - test._observedDeprecations = []; - }; - moment$$1.deprecationHandler = function (name, msg) { - var deprecationId = matchedDeprecation(name, msg, test._expectedDeprecations); - if (deprecationId === -1) { - throw new Error('Unexpected deprecation thrown name=' + - name + ' msg=' + msg); - } - test._observedDeprecations[deprecationId] = 1; - }; -} - -function teardownDeprecationHandler(test, moment$$1, scope) { - moment$$1.suppressDeprecationWarnings = test._oldSupress; - - if (test._expectedDeprecations != null) { - var missedDeprecations = []; - each(test._expectedDeprecations, function (deprecationPattern, id) { - if (test._observedDeprecations[id] !== 1) { - missedDeprecations.push(deprecationPattern); - } - }); - if (missedDeprecations.length !== 0) { - throw new Error('Expected deprecation warnings did not happen: ' + - missedDeprecations.join(' ')); - } - } -} - -function matchedDeprecation(name, msg, deprecations) { - if (deprecations == null) { - return -1; - } - for (var i = 0; i < deprecations.length; ++i) { - if (name != null && name === deprecations[i]) { - return i; - } - if (msg != null && msg.substring(0, deprecations[i].length) === deprecations[i]) { - return i; - } - } - return -1; -} - -/*global QUnit:false*/ - -var test = QUnit.test; - -var expect = QUnit.expect; - - - -function localeModule (name, lifecycle) { - QUnit.module('locale:' + name, { - setup : function () { - moment.locale(name); - moment.createFromInputFallback = function (config) { - throw new Error('input not handled by moment: ' + config._i); - }; - setupDeprecationHandler(test, moment, 'locale'); - if (lifecycle && lifecycle.setup) { - lifecycle.setup(); - } - }, - teardown : function () { - moment.locale('en'); - teardownDeprecationHandler(test, moment, 'locale'); - if (lifecycle && lifecycle.teardown) { - lifecycle.teardown(); - } - } - }); - defineCommonLocaleTests(name, -1, -1); -} - -localeModule('th'); - -test('parse', function (assert) { - var tests = 'มกราคม ม.ค._กุมภาพันธ์ ก.พ._มีนาคม มี.ค._เมษายน เม.ย._พฤษภาคม พ.ค._มิถุนายน มิ.ย._กรกฎาคม ก.ค._สิงหาคม ส.ค._กันยายน ก.ย._ตุลาคม ต.ค._พฤศจิกายน พ.ย._ธันวาคม ธ.ค.'.split('_'), i; - function equalTest(input, mmm, i) { - assert.equal(moment(input, mmm).month(), i, input + ' should be month ' + (i + 1)); - } - for (i = 0; i < 12; i++) { - tests[i] = tests[i].split(' '); - equalTest(tests[i][0], 'MMM', i); - equalTest(tests[i][1], 'MMM', i); - equalTest(tests[i][0], 'MMMM', i); - equalTest(tests[i][1], 'MMMM', i); - equalTest(tests[i][0].toLocaleLowerCase(), 'MMMM', i); - equalTest(tests[i][1].toLocaleLowerCase(), 'MMMM', i); - equalTest(tests[i][0].toLocaleUpperCase(), 'MMMM', i); - equalTest(tests[i][1].toLocaleUpperCase(), 'MMMM', i); - } -}); - -test('format', function (assert) { - var a = [ - ['dddd, Do MMMM YYYY, h:mm:ss a', 'อาทิตย์, 14 กุมภาพันธ์ 2010, 3:25:50 หลังเที่ยง'], - ['ddd, h A', 'อาทิตย์, 3 หลังเที่ยง'], - ['M Mo MM MMMM MMM', '2 2 02 กุมภาพันธ์ ก.พ.'], - ['YYYY YY', '2010 10'], - ['D Do DD', '14 14 14'], - ['d do dddd ddd dd', '0 0 อาทิตย์ อาทิตย์ อา.'], - ['DDD DDDo DDDD', '45 45 045'], - ['w wo ww', '8 8 08'], - ['h hh', '3 03'], - ['H HH', '15 15'], - ['m mm', '25 25'], - ['s ss', '50 50'], - ['a A', 'หลังเที่ยง หลังเที่ยง'], - ['[the] DDDo [day of the year]', 'the 45 day of the year'], - ['LTS', '15:25:50'], - ['L', '14/02/2010'], - ['LL', '14 กุมภาพันธ์ 2010'], - ['LLL', '14 กุมภาพันธ์ 2010 เวลา 15:25'], - ['LLLL', 'วันอาทิตย์ที่ 14 กุมภาพันธ์ 2010 เวลา 15:25'], - ['l', '14/2/2010'], - ['ll', '14 ก.พ. 2010'], - ['lll', '14 ก.พ. 2010 เวลา 15:25'], - ['llll', 'วันอาทิตย์ที่ 14 ก.พ. 2010 เวลา 15:25'] - ], - b = moment(new Date(2010, 1, 14, 15, 25, 50, 125)), - i; - for (i = 0; i < a.length; i++) { - assert.equal(b.format(a[i][0]), a[i][1], a[i][0] + ' ---> ' + a[i][1]); - } -}); - -test('format month', function (assert) { - var expected = 'มกราคม ม.ค._กุมภาพันธ์ ก.พ._มีนาคม มี.ค._เมษายน เม.ย._พฤษภาคม พ.ค._มิถุนายน มิ.ย._กรกฎาคม ก.ค._สิงหาคม ส.ค._กันยายน ก.ย._ตุลาคม ต.ค._พฤศจิกายน พ.ย._ธันวาคม ธ.ค.'.split('_'), i; - for (i = 0; i < expected.length; i++) { - assert.equal(moment([2011, i, 1]).format('MMMM MMM'), expected[i], expected[i]); - } -}); - -test('format week', function (assert) { - var expected = 'อาทิตย์ อาทิตย์ อา._จันทร์ จันทร์ จ._อังคาร อังคาร อ._พุธ พุธ พ._พฤหัสบดี พฤหัส พฤ._ศุกร์ ศุกร์ ศ._เสาร์ เสาร์ ส.'.split('_'), i; - for (i = 0; i < expected.length; i++) { - assert.equal(moment([2011, 0, 2 + i]).format('dddd ddd dd'), expected[i], expected[i]); - } -}); - -test('from', function (assert) { - var start = moment([2007, 1, 28]); - assert.equal(start.from(moment([2007, 1, 28]).add({s: 44}), true), 'ไม่กี่วินาที', '44 seconds = a few seconds'); - assert.equal(start.from(moment([2007, 1, 28]).add({s: 45}), true), '1 นาที', '45 seconds = a minute'); - assert.equal(start.from(moment([2007, 1, 28]).add({s: 89}), true), '1 นาที', '89 seconds = a minute'); - assert.equal(start.from(moment([2007, 1, 28]).add({s: 90}), true), '2 นาที', '90 seconds = 2 minutes'); - assert.equal(start.from(moment([2007, 1, 28]).add({m: 44}), true), '44 นาที', '44 minutes = 44 minutes'); - assert.equal(start.from(moment([2007, 1, 28]).add({m: 45}), true), '1 ชั่วโมง', '45 minutes = an hour'); - assert.equal(start.from(moment([2007, 1, 28]).add({m: 89}), true), '1 ชั่วโมง', '89 minutes = an hour'); - assert.equal(start.from(moment([2007, 1, 28]).add({m: 90}), true), '2 ชั่วโมง', '90 minutes = 2 hours'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 5}), true), '5 ชั่วโมง', '5 hours = 5 hours'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 21}), true), '21 ชั่วโมง', '21 hours = 21 hours'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 22}), true), '1 วัน', '22 hours = a day'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 35}), true), '1 วัน', '35 hours = a day'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 36}), true), '2 วัน', '36 hours = 2 days'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 1}), true), '1 วัน', '1 day = a day'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 5}), true), '5 วัน', '5 days = 5 days'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 25}), true), '25 วัน', '25 days = 25 days'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 26}), true), '1 เดือน', '26 days = a month'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 30}), true), '1 เดือน', '30 days = a month'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 43}), true), '1 เดือน', '43 days = a month'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 46}), true), '2 เดือน', '46 days = 2 months'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 74}), true), '2 เดือน', '75 days = 2 months'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 76}), true), '3 เดือน', '76 days = 3 months'); - assert.equal(start.from(moment([2007, 1, 28]).add({M: 1}), true), '1 เดือน', '1 month = a month'); - assert.equal(start.from(moment([2007, 1, 28]).add({M: 5}), true), '5 เดือน', '5 months = 5 months'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 345}), true), '1 ปี', '345 days = a year'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 548}), true), '2 ปี', '548 days = 2 years'); - assert.equal(start.from(moment([2007, 1, 28]).add({y: 1}), true), '1 ปี', '1 year = a year'); - assert.equal(start.from(moment([2007, 1, 28]).add({y: 5}), true), '5 ปี', '5 years = 5 years'); -}); - -test('suffix', function (assert) { - assert.equal(moment(30000).from(0), 'อีก ไม่กี่วินาที', 'prefix'); - assert.equal(moment(0).from(30000), 'ไม่กี่วินาทีที่แล้ว', 'suffix'); -}); - -test('now from now', function (assert) { - assert.equal(moment().fromNow(), 'ไม่กี่วินาทีที่แล้ว', 'now from now should display as in the past'); -}); - -test('fromNow', function (assert) { - assert.equal(moment().add({s: 30}).fromNow(), 'อีก ไม่กี่วินาที', 'in a few seconds'); - assert.equal(moment().add({d: 5}).fromNow(), 'อีก 5 วัน', 'in 5 days'); -}); - -test('calendar day', function (assert) { - var a = moment().hours(12).minutes(0).seconds(0); - - assert.equal(moment(a).calendar(), 'วันนี้ เวลา 12:00', 'today at the same time'); - assert.equal(moment(a).add({m: 25}).calendar(), 'วันนี้ เวลา 12:25', 'Now plus 25 min'); - assert.equal(moment(a).add({h: 1}).calendar(), 'วันนี้ เวลา 13:00', 'Now plus 1 hour'); - assert.equal(moment(a).add({d: 1}).calendar(), 'พรุ่งนี้ เวลา 12:00', 'tomorrow at the same time'); - assert.equal(moment(a).subtract({h: 1}).calendar(), 'วันนี้ เวลา 11:00', 'Now minus 1 hour'); - assert.equal(moment(a).subtract({d: 1}).calendar(), 'เมื่อวานนี้ เวลา 12:00', 'yesterday at the same time'); -}); - -test('calendar next week', function (assert) { - var i, m; - for (i = 2; i < 7; i++) { - m = moment().add({d: i}); - assert.equal(m.calendar(), m.format('dddd[หน้า เวลา] LT'), 'Today + ' + i + ' days current time'); - m.hours(0).minutes(0).seconds(0).milliseconds(0); - assert.equal(m.calendar(), m.format('dddd[หน้า เวลา] LT'), 'Today + ' + i + ' days beginning of day'); - m.hours(23).minutes(59).seconds(59).milliseconds(999); - assert.equal(m.calendar(), m.format('dddd[หน้า เวลา] LT'), 'Today + ' + i + ' days end of day'); - } -}); - -test('calendar last week', function (assert) { - var i, m; - for (i = 2; i < 7; i++) { - m = moment().subtract({d: i}); - assert.equal(m.calendar(), m.format('[วัน]dddd[ที่แล้ว เวลา] LT'), 'Today - ' + i + ' days current time'); - m.hours(0).minutes(0).seconds(0).milliseconds(0); - assert.equal(m.calendar(), m.format('[วัน]dddd[ที่แล้ว เวลา] LT'), 'Today - ' + i + ' days beginning of day'); - m.hours(23).minutes(59).seconds(59).milliseconds(999); - assert.equal(m.calendar(), m.format('[วัน]dddd[ที่แล้ว เวลา] LT'), 'Today - ' + i + ' days end of day'); - } -}); - -test('calendar all else', function (assert) { - var weeksAgo = moment().subtract({w: 1}), - weeksFromNow = moment().add({w: 1}); - - assert.equal(weeksAgo.calendar(), weeksAgo.format('L'), '1 week ago'); - assert.equal(weeksFromNow.calendar(), weeksFromNow.format('L'), 'in 1 week'); - - weeksAgo = moment().subtract({w: 2}); - weeksFromNow = moment().add({w: 2}); - - assert.equal(weeksAgo.calendar(), weeksAgo.format('L'), '2 weeks ago'); - assert.equal(weeksFromNow.calendar(), weeksFromNow.format('L'), 'in 2 weeks'); -}); - -test('weeks year starting sunday format', function (assert) { - assert.equal(moment([2012, 0, 1]).format('w ww wo'), '1 01 1', 'Jan 1 2012 should be week 1'); - assert.equal(moment([2012, 0, 7]).format('w ww wo'), '1 01 1', 'Jan 7 2012 should be week 1'); - assert.equal(moment([2012, 0, 8]).format('w ww wo'), '2 02 2', 'Jan 8 2012 should be week 2'); - assert.equal(moment([2012, 0, 14]).format('w ww wo'), '2 02 2', 'Jan 14 2012 should be week 2'); - assert.equal(moment([2012, 0, 15]).format('w ww wo'), '3 03 3', 'Jan 15 2012 should be week 3'); -}); - -}))); - - -;(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' - && typeof require === 'function' ? factory(require('../../moment')) : - typeof define === 'function' && define.amd ? define(['../../moment'], factory) : - factory(global.moment) -}(this, (function (moment) { 'use strict'; - -function each(array, callback) { - var i; - for (i = 0; i < array.length; i++) { - callback(array[i], i, array); - } -} - -function objectKeys(obj) { - if (Object.keys) { - return Object.keys(obj); - } else { - // IE8 - var res = [], i; - for (i in obj) { - if (obj.hasOwnProperty(i)) { - res.push(i); - } - } - return res; - } -} - -// Pick the first defined of two or three arguments. - -function defineCommonLocaleTests(locale, options) { - test('lenient day of month ordinal parsing', function (assert) { - var i, ordinalStr, testMoment; - for (i = 1; i <= 31; ++i) { - ordinalStr = moment([2014, 0, i]).format('YYYY MM Do'); - testMoment = moment(ordinalStr, 'YYYY MM Do'); - assert.equal(testMoment.year(), 2014, - 'lenient day of month ordinal parsing ' + i + ' year check'); - assert.equal(testMoment.month(), 0, - 'lenient day of month ordinal parsing ' + i + ' month check'); - assert.equal(testMoment.date(), i, - 'lenient day of month ordinal parsing ' + i + ' date check'); - } - }); - - test('lenient day of month ordinal parsing of number', function (assert) { - var i, testMoment; - for (i = 1; i <= 31; ++i) { - testMoment = moment('2014 01 ' + i, 'YYYY MM Do'); - assert.equal(testMoment.year(), 2014, - 'lenient day of month ordinal parsing of number ' + i + ' year check'); - assert.equal(testMoment.month(), 0, - 'lenient day of month ordinal parsing of number ' + i + ' month check'); - assert.equal(testMoment.date(), i, - 'lenient day of month ordinal parsing of number ' + i + ' date check'); - } - }); - - test('strict day of month ordinal parsing', function (assert) { - var i, ordinalStr, testMoment; - for (i = 1; i <= 31; ++i) { - ordinalStr = moment([2014, 0, i]).format('YYYY MM Do'); - testMoment = moment(ordinalStr, 'YYYY MM Do', true); - assert.ok(testMoment.isValid(), 'strict day of month ordinal parsing ' + i); - } - }); - - test('meridiem invariant', function (assert) { - var h, m, t1, t2; - for (h = 0; h < 24; ++h) { - for (m = 0; m < 60; m += 15) { - t1 = moment.utc([2000, 0, 1, h, m]); - t2 = moment.utc(t1.format('A h:mm'), 'A h:mm'); - assert.equal(t2.format('HH:mm'), t1.format('HH:mm'), - 'meridiem at ' + t1.format('HH:mm')); - } - } - }); - - test('date format correctness', function (assert) { - var data, tokens; - data = moment.localeData()._longDateFormat; - tokens = objectKeys(data); - each(tokens, function (srchToken) { - // Check each format string to make sure it does not contain any - // tokens that need to be expanded. - each(tokens, function (baseToken) { - // strip escaped sequences - var format = data[baseToken].replace(/(\[[^\]]*\])/g, ''); - assert.equal(false, !!~format.indexOf(srchToken), - 'contains ' + srchToken + ' in ' + baseToken); - }); - }); - }); - - test('month parsing correctness', function (assert) { - var i, m; - - if (locale === 'tr') { - // I can't fix it :( - expect(0); - return; - } - function tester(format) { - var r; - r = moment(m.format(format), format); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format); - r = moment(m.format(format).toLocaleUpperCase(), format); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' upper'); - r = moment(m.format(format).toLocaleLowerCase(), format); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' lower'); - - r = moment(m.format(format), format, true); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' strict'); - r = moment(m.format(format).toLocaleUpperCase(), format, true); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' upper strict'); - r = moment(m.format(format).toLocaleLowerCase(), format, true); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' lower strict'); - } - - for (i = 0; i < 12; ++i) { - m = moment([2015, i, 15, 18]); - tester('MMM'); - tester('MMM.'); - tester('MMMM'); - tester('MMMM.'); - } - }); - - test('weekday parsing correctness', function (assert) { - var i, m; - - if (locale === 'tr' || locale === 'az' || locale === 'ro') { - // tr, az: There is a lower-case letter (ı), that converted to - // upper then lower changes to i - // ro: there is the letter ț which behaves weird under IE8 - expect(0); - return; - } - function tester(format) { - var r, baseMsg = 'weekday ' + m.weekday() + ' fmt ' + format + ' ' + m.toISOString(); - r = moment(m.format(format), format); - assert.equal(r.weekday(), m.weekday(), baseMsg); - r = moment(m.format(format).toLocaleUpperCase(), format); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' upper'); - r = moment(m.format(format).toLocaleLowerCase(), format); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' lower'); - - r = moment(m.format(format), format, true); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' strict'); - r = moment(m.format(format).toLocaleUpperCase(), format, true); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' upper strict'); - r = moment(m.format(format).toLocaleLowerCase(), format, true); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' lower strict'); - } - - for (i = 0; i < 7; ++i) { - m = moment.utc([2015, 0, i + 1, 18]); - tester('dd'); - tester('ddd'); - tester('dddd'); - } - }); - - test('valid localeData', function (assert) { - assert.equal(moment().localeData().months().length, 12, 'months should return 12 months'); - assert.equal(moment().localeData().monthsShort().length, 12, 'monthsShort should return 12 months'); - assert.equal(moment().localeData().weekdays().length, 7, 'weekdays should return 7 days'); - assert.equal(moment().localeData().weekdaysShort().length, 7, 'weekdaysShort should return 7 days'); - assert.equal(moment().localeData().weekdaysMin().length, 7, 'monthsShort should return 7 days'); - }); -} - -function setupDeprecationHandler(test, moment$$1, scope) { - test._expectedDeprecations = null; - test._observedDeprecations = null; - test._oldSupress = moment$$1.suppressDeprecationWarnings; - moment$$1.suppressDeprecationWarnings = true; - test.expectedDeprecations = function () { - test._expectedDeprecations = arguments; - test._observedDeprecations = []; - }; - moment$$1.deprecationHandler = function (name, msg) { - var deprecationId = matchedDeprecation(name, msg, test._expectedDeprecations); - if (deprecationId === -1) { - throw new Error('Unexpected deprecation thrown name=' + - name + ' msg=' + msg); - } - test._observedDeprecations[deprecationId] = 1; - }; -} - -function teardownDeprecationHandler(test, moment$$1, scope) { - moment$$1.suppressDeprecationWarnings = test._oldSupress; - - if (test._expectedDeprecations != null) { - var missedDeprecations = []; - each(test._expectedDeprecations, function (deprecationPattern, id) { - if (test._observedDeprecations[id] !== 1) { - missedDeprecations.push(deprecationPattern); - } - }); - if (missedDeprecations.length !== 0) { - throw new Error('Expected deprecation warnings did not happen: ' + - missedDeprecations.join(' ')); - } - } -} - -function matchedDeprecation(name, msg, deprecations) { - if (deprecations == null) { - return -1; - } - for (var i = 0; i < deprecations.length; ++i) { - if (name != null && name === deprecations[i]) { - return i; - } - if (msg != null && msg.substring(0, deprecations[i].length) === deprecations[i]) { - return i; - } - } - return -1; -} - -/*global QUnit:false*/ - -var test = QUnit.test; - -var expect = QUnit.expect; - - - -function localeModule (name, lifecycle) { - QUnit.module('locale:' + name, { - setup : function () { - moment.locale(name); - moment.createFromInputFallback = function (config) { - throw new Error('input not handled by moment: ' + config._i); - }; - setupDeprecationHandler(test, moment, 'locale'); - if (lifecycle && lifecycle.setup) { - lifecycle.setup(); - } - }, - teardown : function () { - moment.locale('en'); - teardownDeprecationHandler(test, moment, 'locale'); - if (lifecycle && lifecycle.teardown) { - lifecycle.teardown(); - } - } - }); - defineCommonLocaleTests(name, -1, -1); -} - -localeModule('tl-ph'); - -test('parse', function (assert) { - var tests = 'Enero Ene_Pebrero Peb_Marso Mar_Abril Abr_Mayo May_Hunyo Hun_Hulyo Hul_Agosto Ago_Setyembre Set_Oktubre Okt_Nobyembre Nob_Disyembre Dis'.split('_'), - i; - function equalTest(input, mmm, i) { - assert.equal(moment(input, mmm).month(), i, input + ' should be month ' + (i + 1)); - } - for (i = 0; i < 12; i++) { - tests[i] = tests[i].split(' '); - equalTest(tests[i][0], 'MMM', i); - equalTest(tests[i][1], 'MMM', i); - equalTest(tests[i][0], 'MMMM', i); - equalTest(tests[i][1], 'MMMM', i); - equalTest(tests[i][0].toLocaleLowerCase(), 'MMMM', i); - equalTest(tests[i][1].toLocaleLowerCase(), 'MMMM', i); - equalTest(tests[i][0].toLocaleUpperCase(), 'MMMM', i); - equalTest(tests[i][1].toLocaleUpperCase(), 'MMMM', i); - } -}); - -test('format', function (assert) { - var a = [ - ['dddd, MMMM Do YYYY, h:mm:ss a', 'Linggo, Pebrero 14 2010, 3:25:50 pm'], - ['ddd, hA', 'Lin, 3PM'], - ['M Mo MM MMMM MMM', '2 2 02 Pebrero Peb'], - ['YYYY YY', '2010 10'], - ['D Do DD', '14 14 14'], - ['d do dddd ddd dd', '0 0 Linggo Lin Li'], - ['DDD DDDo DDDD', '45 45 045'], - ['w wo ww', '6 6 06'], - ['h hh', '3 03'], - ['H HH', '15 15'], - ['m mm', '25 25'], - ['s ss', '50 50'], - ['a A', 'pm PM'], - ['[the] DDDo [day of the year]', 'the 45 day of the year'], - ['LTS', '15:25:50'], - ['L', '02/14/2010'], - ['LL', 'Pebrero 14, 2010'], - ['LLL', 'Pebrero 14, 2010 15:25'], - ['LLLL', 'Linggo, Pebrero 14, 2010 15:25'], - ['l', '2/14/2010'], - ['ll', 'Peb 14, 2010'], - ['lll', 'Peb 14, 2010 15:25'], - ['llll', 'Lin, Peb 14, 2010 15:25'] - ], - b = moment(new Date(2010, 1, 14, 15, 25, 50, 125)), - i; - for (i = 0; i < a.length; i++) { - assert.equal(b.format(a[i][0]), a[i][1], a[i][0] + ' ---> ' + a[i][1]); - } -}); - -test('format ordinal', function (assert) { - assert.equal(moment([2011, 0, 1]).format('DDDo'), '1', '1'); - assert.equal(moment([2011, 0, 2]).format('DDDo'), '2', '2'); - assert.equal(moment([2011, 0, 3]).format('DDDo'), '3', '3'); - assert.equal(moment([2011, 0, 4]).format('DDDo'), '4', '4'); - assert.equal(moment([2011, 0, 5]).format('DDDo'), '5', '5'); - assert.equal(moment([2011, 0, 6]).format('DDDo'), '6', '6'); - assert.equal(moment([2011, 0, 7]).format('DDDo'), '7', '7'); - assert.equal(moment([2011, 0, 8]).format('DDDo'), '8', '8'); - assert.equal(moment([2011, 0, 9]).format('DDDo'), '9', '9'); - assert.equal(moment([2011, 0, 10]).format('DDDo'), '10', '10'); - - assert.equal(moment([2011, 0, 11]).format('DDDo'), '11', '11'); - assert.equal(moment([2011, 0, 12]).format('DDDo'), '12', '12'); - assert.equal(moment([2011, 0, 13]).format('DDDo'), '13', '13'); - assert.equal(moment([2011, 0, 14]).format('DDDo'), '14', '14'); - assert.equal(moment([2011, 0, 15]).format('DDDo'), '15', '15'); - assert.equal(moment([2011, 0, 16]).format('DDDo'), '16', '16'); - assert.equal(moment([2011, 0, 17]).format('DDDo'), '17', '17'); - assert.equal(moment([2011, 0, 18]).format('DDDo'), '18', '18'); - assert.equal(moment([2011, 0, 19]).format('DDDo'), '19', '19'); - assert.equal(moment([2011, 0, 20]).format('DDDo'), '20', '20'); - - assert.equal(moment([2011, 0, 21]).format('DDDo'), '21', '21'); - assert.equal(moment([2011, 0, 22]).format('DDDo'), '22', '22'); - assert.equal(moment([2011, 0, 23]).format('DDDo'), '23', '23'); - assert.equal(moment([2011, 0, 24]).format('DDDo'), '24', '24'); - assert.equal(moment([2011, 0, 25]).format('DDDo'), '25', '25'); - assert.equal(moment([2011, 0, 26]).format('DDDo'), '26', '26'); - assert.equal(moment([2011, 0, 27]).format('DDDo'), '27', '27'); - assert.equal(moment([2011, 0, 28]).format('DDDo'), '28', '28'); - assert.equal(moment([2011, 0, 29]).format('DDDo'), '29', '29'); - assert.equal(moment([2011, 0, 30]).format('DDDo'), '30', '30'); - - assert.equal(moment([2011, 0, 31]).format('DDDo'), '31', '31'); -}); - -test('format month', function (assert) { - var expected = 'Enero Ene_Pebrero Peb_Marso Mar_Abril Abr_Mayo May_Hunyo Hun_Hulyo Hul_Agosto Ago_Setyembre Set_Oktubre Okt_Nobyembre Nob_Disyembre Dis'.split('_'), i; - for (i = 0; i < expected.length; i++) { - assert.equal(moment([2011, i, 1]).format('MMMM MMM'), expected[i], expected[i]); - } -}); - -test('format week', function (assert) { - var expected = 'Linggo Lin Li_Lunes Lun Lu_Martes Mar Ma_Miyerkules Miy Mi_Huwebes Huw Hu_Biyernes Biy Bi_Sabado Sab Sab'.split('_'), i; - for (i = 0; i < expected.length; i++) { - assert.equal(moment([2011, 0, 2 + i]).format('dddd ddd dd'), expected[i], expected[i]); - } -}); - -test('from', function (assert) { - var start = moment([2007, 1, 28]); - assert.equal(start.from(moment([2007, 1, 28]).add({s: 44}), true), 'ilang segundo', '44 seconds = a few seconds'); - assert.equal(start.from(moment([2007, 1, 28]).add({s: 45}), true), 'isang minuto', '45 seconds = a minute'); - assert.equal(start.from(moment([2007, 1, 28]).add({s: 89}), true), 'isang minuto', '89 seconds = a minute'); - assert.equal(start.from(moment([2007, 1, 28]).add({s: 90}), true), '2 minuto', '90 seconds = 2 minutes'); - assert.equal(start.from(moment([2007, 1, 28]).add({m: 44}), true), '44 minuto', '44 minutes = 44 minutes'); - assert.equal(start.from(moment([2007, 1, 28]).add({m: 45}), true), 'isang oras', '45 minutes = an hour'); - assert.equal(start.from(moment([2007, 1, 28]).add({m: 89}), true), 'isang oras', '89 minutes = an hour'); - assert.equal(start.from(moment([2007, 1, 28]).add({m: 90}), true), '2 oras', '90 minutes = 2 hours'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 5}), true), '5 oras', '5 hours = 5 hours'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 21}), true), '21 oras', '21 hours = 21 hours'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 22}), true), 'isang araw', '22 hours = a day'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 35}), true), 'isang araw', '35 hours = a day'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 36}), true), '2 araw', '36 hours = 2 days'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 1}), true), 'isang araw', '1 day = a day'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 5}), true), '5 araw', '5 days = 5 days'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 25}), true), '25 araw', '25 days = 25 days'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 26}), true), 'isang buwan', '26 days = a month'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 30}), true), 'isang buwan', '30 days = a month'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 43}), true), 'isang buwan', '43 days = a month'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 46}), true), '2 buwan', '46 days = 2 months'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 74}), true), '2 buwan', '75 days = 2 months'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 76}), true), '3 buwan', '76 days = 3 months'); - assert.equal(start.from(moment([2007, 1, 28]).add({M: 1}), true), 'isang buwan', '1 month = a month'); - assert.equal(start.from(moment([2007, 1, 28]).add({M: 5}), true), '5 buwan', '5 months = 5 months'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 345}), true), 'isang taon', '345 days = a year'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 548}), true), '2 taon', '548 days = 2 years'); - assert.equal(start.from(moment([2007, 1, 28]).add({y: 1}), true), 'isang taon', '1 year = a year'); - assert.equal(start.from(moment([2007, 1, 28]).add({y: 5}), true), '5 taon', '5 years = 5 years'); -}); - -test('suffix', function (assert) { - assert.equal(moment(30000).from(0), 'sa loob ng ilang segundo', 'prefix'); - assert.equal(moment(0).from(30000), 'ilang segundo ang nakalipas', 'suffix'); -}); - -test('fromNow', function (assert) { - assert.equal(moment().add({s: 30}).fromNow(), 'sa loob ng ilang segundo', 'in a few seconds'); - assert.equal(moment().add({d: 5}).fromNow(), 'sa loob ng 5 araw', 'in 5 days'); -}); - -test('same day', function (assert) { - var a = moment().hours(12).minutes(0).seconds(0); - - assert.equal(moment(a).calendar(), '12:00 ngayong araw', 'today at the same time'); - assert.equal(moment(a).add({m: 25}).calendar(), '12:25 ngayong araw', 'Now plus 25 min'); - assert.equal(moment(a).add({h: 1}).calendar(), '13:00 ngayong araw', 'Now plus 1 hour'); - assert.equal(moment(a).add({d: 1}).calendar(), 'Bukas ng 12:00', 'tomorrow at the same time'); - assert.equal(moment(a).subtract({h: 1}).calendar(), '11:00 ngayong araw', 'Now minus 1 hour'); - assert.equal(moment(a).subtract({d: 1}).calendar(), '12:00 kahapon', 'yesterday at the same time'); -}); - -test('same next week', function (assert) { - var i, m; - - for (i = 2; i < 7; i++) { - m = moment().add({d: i}); - assert.equal(m.calendar(), m.format('LT [sa susunod na] dddd'), 'Today + ' + i + ' days current time'); - m.hours(0).minutes(0).seconds(0).milliseconds(0); - assert.equal(m.calendar(), m.format('LT [sa susunod na] dddd'), 'Today + ' + i + ' days beginning of day'); - m.hours(23).minutes(59).seconds(59).milliseconds(999); - assert.equal(m.calendar(), m.format('LT [sa susunod na] dddd'), 'Today + ' + i + ' days end of day'); - } -}); - -test('same last week', function (assert) { - var i, m; - - for (i = 2; i < 7; i++) { - m = moment().subtract({d: i}); - assert.equal(m.calendar(), m.format('LT [noong nakaraang] dddd'), 'Today - ' + i + ' days current time'); - m.hours(0).minutes(0).seconds(0).milliseconds(0); - assert.equal(m.calendar(), m.format('LT [noong nakaraang] dddd'), 'Today - ' + i + ' days beginning of day'); - m.hours(23).minutes(59).seconds(59).milliseconds(999); - assert.equal(m.calendar(), m.format('LT [noong nakaraang] dddd'), 'Today - ' + i + ' days end of day'); - } -}); - -test('same all else', function (assert) { - var weeksAgo = moment().subtract({w: 1}), - weeksFromNow = moment().add({w: 1}); - - assert.equal(weeksAgo.calendar(), weeksAgo.format('L'), '1 week ago'); - assert.equal(weeksFromNow.calendar(), weeksFromNow.format('L'), 'in 1 week'); - - weeksAgo = moment().subtract({w: 2}); - weeksFromNow = moment().add({w: 2}); - - assert.equal(weeksAgo.calendar(), weeksAgo.format('L'), '2 weeks ago'); - assert.equal(weeksFromNow.calendar(), weeksFromNow.format('L'), 'in 2 weeks'); -}); - -test('weeks year starting sunday formatted', function (assert) { - assert.equal(moment([2012, 0, 1]).format('w ww wo'), '52 52 52', 'Jan 1 2012 should be week 52'); - assert.equal(moment([2012, 0, 2]).format('w ww wo'), '1 01 1', 'Jan 2 2012 should be week 1'); - assert.equal(moment([2012, 0, 8]).format('w ww wo'), '1 01 1', 'Jan 8 2012 should be week 1'); - assert.equal(moment([2012, 0, 9]).format('w ww wo'), '2 02 2', 'Jan 9 2012 should be week 2'); - assert.equal(moment([2012, 0, 15]).format('w ww wo'), '2 02 2', 'Jan 15 2012 should be week 2'); -}); - -}))); - - -;(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' - && typeof require === 'function' ? factory(require('../../moment')) : - typeof define === 'function' && define.amd ? define(['../../moment'], factory) : - factory(global.moment) -}(this, (function (moment) { 'use strict'; - -function each(array, callback) { - var i; - for (i = 0; i < array.length; i++) { - callback(array[i], i, array); - } -} - -function objectKeys(obj) { - if (Object.keys) { - return Object.keys(obj); - } else { - // IE8 - var res = [], i; - for (i in obj) { - if (obj.hasOwnProperty(i)) { - res.push(i); - } - } - return res; - } -} - -// Pick the first defined of two or three arguments. - -function defineCommonLocaleTests(locale, options) { - test('lenient day of month ordinal parsing', function (assert) { - var i, ordinalStr, testMoment; - for (i = 1; i <= 31; ++i) { - ordinalStr = moment([2014, 0, i]).format('YYYY MM Do'); - testMoment = moment(ordinalStr, 'YYYY MM Do'); - assert.equal(testMoment.year(), 2014, - 'lenient day of month ordinal parsing ' + i + ' year check'); - assert.equal(testMoment.month(), 0, - 'lenient day of month ordinal parsing ' + i + ' month check'); - assert.equal(testMoment.date(), i, - 'lenient day of month ordinal parsing ' + i + ' date check'); - } - }); - - test('lenient day of month ordinal parsing of number', function (assert) { - var i, testMoment; - for (i = 1; i <= 31; ++i) { - testMoment = moment('2014 01 ' + i, 'YYYY MM Do'); - assert.equal(testMoment.year(), 2014, - 'lenient day of month ordinal parsing of number ' + i + ' year check'); - assert.equal(testMoment.month(), 0, - 'lenient day of month ordinal parsing of number ' + i + ' month check'); - assert.equal(testMoment.date(), i, - 'lenient day of month ordinal parsing of number ' + i + ' date check'); - } - }); - - test('strict day of month ordinal parsing', function (assert) { - var i, ordinalStr, testMoment; - for (i = 1; i <= 31; ++i) { - ordinalStr = moment([2014, 0, i]).format('YYYY MM Do'); - testMoment = moment(ordinalStr, 'YYYY MM Do', true); - assert.ok(testMoment.isValid(), 'strict day of month ordinal parsing ' + i); - } - }); - - test('meridiem invariant', function (assert) { - var h, m, t1, t2; - for (h = 0; h < 24; ++h) { - for (m = 0; m < 60; m += 15) { - t1 = moment.utc([2000, 0, 1, h, m]); - t2 = moment.utc(t1.format('A h:mm'), 'A h:mm'); - assert.equal(t2.format('HH:mm'), t1.format('HH:mm'), - 'meridiem at ' + t1.format('HH:mm')); - } - } - }); - - test('date format correctness', function (assert) { - var data, tokens; - data = moment.localeData()._longDateFormat; - tokens = objectKeys(data); - each(tokens, function (srchToken) { - // Check each format string to make sure it does not contain any - // tokens that need to be expanded. - each(tokens, function (baseToken) { - // strip escaped sequences - var format = data[baseToken].replace(/(\[[^\]]*\])/g, ''); - assert.equal(false, !!~format.indexOf(srchToken), - 'contains ' + srchToken + ' in ' + baseToken); - }); - }); - }); - - test('month parsing correctness', function (assert) { - var i, m; - - if (locale === 'tr') { - // I can't fix it :( - expect(0); - return; - } - function tester(format) { - var r; - r = moment(m.format(format), format); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format); - r = moment(m.format(format).toLocaleUpperCase(), format); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' upper'); - r = moment(m.format(format).toLocaleLowerCase(), format); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' lower'); - - r = moment(m.format(format), format, true); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' strict'); - r = moment(m.format(format).toLocaleUpperCase(), format, true); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' upper strict'); - r = moment(m.format(format).toLocaleLowerCase(), format, true); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' lower strict'); - } - - for (i = 0; i < 12; ++i) { - m = moment([2015, i, 15, 18]); - tester('MMM'); - tester('MMM.'); - tester('MMMM'); - tester('MMMM.'); - } - }); - - test('weekday parsing correctness', function (assert) { - var i, m; - - if (locale === 'tr' || locale === 'az' || locale === 'ro') { - // tr, az: There is a lower-case letter (ı), that converted to - // upper then lower changes to i - // ro: there is the letter ț which behaves weird under IE8 - expect(0); - return; - } - function tester(format) { - var r, baseMsg = 'weekday ' + m.weekday() + ' fmt ' + format + ' ' + m.toISOString(); - r = moment(m.format(format), format); - assert.equal(r.weekday(), m.weekday(), baseMsg); - r = moment(m.format(format).toLocaleUpperCase(), format); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' upper'); - r = moment(m.format(format).toLocaleLowerCase(), format); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' lower'); - - r = moment(m.format(format), format, true); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' strict'); - r = moment(m.format(format).toLocaleUpperCase(), format, true); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' upper strict'); - r = moment(m.format(format).toLocaleLowerCase(), format, true); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' lower strict'); - } - - for (i = 0; i < 7; ++i) { - m = moment.utc([2015, 0, i + 1, 18]); - tester('dd'); - tester('ddd'); - tester('dddd'); - } - }); - - test('valid localeData', function (assert) { - assert.equal(moment().localeData().months().length, 12, 'months should return 12 months'); - assert.equal(moment().localeData().monthsShort().length, 12, 'monthsShort should return 12 months'); - assert.equal(moment().localeData().weekdays().length, 7, 'weekdays should return 7 days'); - assert.equal(moment().localeData().weekdaysShort().length, 7, 'weekdaysShort should return 7 days'); - assert.equal(moment().localeData().weekdaysMin().length, 7, 'monthsShort should return 7 days'); - }); -} - -function setupDeprecationHandler(test, moment$$1, scope) { - test._expectedDeprecations = null; - test._observedDeprecations = null; - test._oldSupress = moment$$1.suppressDeprecationWarnings; - moment$$1.suppressDeprecationWarnings = true; - test.expectedDeprecations = function () { - test._expectedDeprecations = arguments; - test._observedDeprecations = []; - }; - moment$$1.deprecationHandler = function (name, msg) { - var deprecationId = matchedDeprecation(name, msg, test._expectedDeprecations); - if (deprecationId === -1) { - throw new Error('Unexpected deprecation thrown name=' + - name + ' msg=' + msg); - } - test._observedDeprecations[deprecationId] = 1; - }; -} - -function teardownDeprecationHandler(test, moment$$1, scope) { - moment$$1.suppressDeprecationWarnings = test._oldSupress; - - if (test._expectedDeprecations != null) { - var missedDeprecations = []; - each(test._expectedDeprecations, function (deprecationPattern, id) { - if (test._observedDeprecations[id] !== 1) { - missedDeprecations.push(deprecationPattern); - } - }); - if (missedDeprecations.length !== 0) { - throw new Error('Expected deprecation warnings did not happen: ' + - missedDeprecations.join(' ')); - } - } -} - -function matchedDeprecation(name, msg, deprecations) { - if (deprecations == null) { - return -1; - } - for (var i = 0; i < deprecations.length; ++i) { - if (name != null && name === deprecations[i]) { - return i; - } - if (msg != null && msg.substring(0, deprecations[i].length) === deprecations[i]) { - return i; - } - } - return -1; -} - -/*global QUnit:false*/ - -var test = QUnit.test; - -var expect = QUnit.expect; - - - -function localeModule (name, lifecycle) { - QUnit.module('locale:' + name, { - setup : function () { - moment.locale(name); - moment.createFromInputFallback = function (config) { - throw new Error('input not handled by moment: ' + config._i); - }; - setupDeprecationHandler(test, moment, 'locale'); - if (lifecycle && lifecycle.setup) { - lifecycle.setup(); - } - }, - teardown : function () { - moment.locale('en'); - teardownDeprecationHandler(test, moment, 'locale'); - if (lifecycle && lifecycle.teardown) { - lifecycle.teardown(); - } - } - }); - defineCommonLocaleTests(name, -1, -1); -} - -localeModule('tlh'); - -//Current parsing method doesn't allow parsing correctly months 10, 11 and 12. -/* - * test('parse', function (assert) { - var tests = 'tera’ jar wa’.jar wa’_tera’ jar cha’.jar cha’_tera’ jar wej.jar wej_tera’ jar loS.jar loS_tera’ jar vagh.jar vagh_tera’ jar jav.jar jav_tera’ jar Soch.jar Soch_tera’ jar chorgh.jar chorgh_tera’ jar Hut.jar Hut_tera’ jar wa’maH.jar wa’maH_tera’ jar wa’maH wa’.jar wa’maH wa’_tera’ jar wa’maH cha’.jar wa’maH cha’'.split('_'), i; - function equalTest(input, mmm, i) { - assert.equal(moment(input, mmm).month(), i, input + ' should be month ' + (i + 1)); - } - for (i = 0; i < 12; i++) { - tests[i] = tests[i].split('.'); - equalTest(tests[i][0], 'MMM', i); - equalTest(tests[i][1], 'MMM', i); - equalTest(tests[i][0], 'MMMM', i); - equalTest(tests[i][1], 'MMMM', i); - equalTest(tests[i][0].toLocaleLowerCase(), 'MMMM', i); - equalTest(tests[i][1].toLocaleLowerCase(), 'MMMM', i); - equalTest(tests[i][0].toLocaleUpperCase(), 'MMMM', i); - equalTest(tests[i][1].toLocaleUpperCase(), 'MMMM', i); - } -}); -*/ -test('format', function (assert) { - var a = [ - ['dddd, MMMM Do YYYY, h:mm:ss a', 'lojmItjaj, tera’ jar cha’ 14. 2010, 3:25:50 pm'], - ['ddd, hA', 'lojmItjaj, 3PM'], - ['M Mo MM MMMM MMM', '2 2. 02 tera’ jar cha’ jar cha’'], - ['YYYY YY', '2010 10'], - ['D Do DD', '14 14. 14'], - ['d do dddd ddd dd', '0 0. lojmItjaj lojmItjaj lojmItjaj'], - ['DDD DDDo DDDD', '45 45. 045'], - ['w wo ww', '6 6. 06'], - ['h hh', '3 03'], - ['H HH', '15 15'], - ['m mm', '25 25'], - ['s ss', '50 50'], - ['a A', 'pm PM'], - ['[DIS jaj] DDDo', 'DIS jaj 45.'], - ['LTS', '15:25:50'], - ['L', '14.02.2010'], - ['LL', '14 tera’ jar cha’ 2010'], - ['LLL', '14 tera’ jar cha’ 2010 15:25'], - ['LLLL', 'lojmItjaj, 14 tera’ jar cha’ 2010 15:25'], - ['l', '14.2.2010'], - ['ll', '14 jar cha’ 2010'], - ['lll', '14 jar cha’ 2010 15:25'], - ['llll', 'lojmItjaj, 14 jar cha’ 2010 15:25'] - ], - b = moment(new Date(2010, 1, 14, 15, 25, 50, 125)), - i; - for (i = 0; i < a.length; i++) { - assert.equal(b.format(a[i][0]), a[i][1], a[i][0] + ' ---> ' + a[i][1]); - } -}); - -test('format ordinal', function (assert) { - assert.equal(moment([2011, 0, 1]).format('DDDo'), '1.', '1.'); - assert.equal(moment([2011, 0, 2]).format('DDDo'), '2.', '2.'); - assert.equal(moment([2011, 0, 3]).format('DDDo'), '3.', '3.'); - assert.equal(moment([2011, 0, 4]).format('DDDo'), '4.', '4.'); - assert.equal(moment([2011, 0, 5]).format('DDDo'), '5.', '5.'); - assert.equal(moment([2011, 0, 6]).format('DDDo'), '6.', '6.'); - assert.equal(moment([2011, 0, 7]).format('DDDo'), '7.', '7.'); - assert.equal(moment([2011, 0, 8]).format('DDDo'), '8.', '8.'); - assert.equal(moment([2011, 0, 9]).format('DDDo'), '9.', '9.'); - assert.equal(moment([2011, 0, 10]).format('DDDo'), '10.', '10.'); - - assert.equal(moment([2011, 0, 11]).format('DDDo'), '11.', '11.'); - assert.equal(moment([2011, 0, 12]).format('DDDo'), '12.', '12.'); - assert.equal(moment([2011, 0, 13]).format('DDDo'), '13.', '13.'); - assert.equal(moment([2011, 0, 14]).format('DDDo'), '14.', '14.'); - assert.equal(moment([2011, 0, 15]).format('DDDo'), '15.', '15.'); - assert.equal(moment([2011, 0, 16]).format('DDDo'), '16.', '16.'); - assert.equal(moment([2011, 0, 17]).format('DDDo'), '17.', '17.'); - assert.equal(moment([2011, 0, 18]).format('DDDo'), '18.', '18.'); - assert.equal(moment([2011, 0, 19]).format('DDDo'), '19.', '19.'); - assert.equal(moment([2011, 0, 20]).format('DDDo'), '20.', '20.'); - - assert.equal(moment([2011, 0, 21]).format('DDDo'), '21.', '21.'); - assert.equal(moment([2011, 0, 22]).format('DDDo'), '22.', '22.'); - assert.equal(moment([2011, 0, 23]).format('DDDo'), '23.', '23.'); - assert.equal(moment([2011, 0, 24]).format('DDDo'), '24.', '24.'); - assert.equal(moment([2011, 0, 25]).format('DDDo'), '25.', '25.'); - assert.equal(moment([2011, 0, 26]).format('DDDo'), '26.', '26.'); - assert.equal(moment([2011, 0, 27]).format('DDDo'), '27.', '27.'); - assert.equal(moment([2011, 0, 28]).format('DDDo'), '28.', '28.'); - assert.equal(moment([2011, 0, 29]).format('DDDo'), '29.', '29.'); - assert.equal(moment([2011, 0, 30]).format('DDDo'), '30.', '30.'); - - assert.equal(moment([2011, 0, 31]).format('DDDo'), '31.', '31.'); -}); - -test('format month', function (assert) { - var expected = 'tera’ jar wa’ jar wa’_tera’ jar cha’ jar cha’_tera’ jar wej jar wej_tera’ jar loS jar loS_tera’ jar vagh jar vagh_tera’ jar jav jar jav_tera’ jar Soch jar Soch_tera’ jar chorgh jar chorgh_tera’ jar Hut jar Hut_tera’ jar wa’maH jar wa’maH_tera’ jar wa’maH wa’ jar wa’maH wa’_tera’ jar wa’maH cha’ jar wa’maH cha’'.split('_'), i; - for (i = 0; i < expected.length; i++) { - assert.equal(moment([2011, i, 1]).format('MMMM MMM'), expected[i], expected[i]); - } -}); - -test('format week', function (assert) { - var expected = 'lojmItjaj lojmItjaj lojmItjaj_DaSjaj DaSjaj DaSjaj_povjaj povjaj povjaj_ghItlhjaj ghItlhjaj ghItlhjaj_loghjaj loghjaj loghjaj_buqjaj buqjaj buqjaj_ghInjaj ghInjaj ghInjaj'.split('_'), i; - for (i = 0; i < expected.length; i++) { - assert.equal(moment([2011, 0, 2 + i]).format('dddd ddd dd'), expected[i], expected[i]); - } -}); - -test('from', function (assert) { - var start = moment([2007, 1, 28]); - assert.equal(start.from(moment([2007, 1, 28]).add({s: 44}), true), 'puS lup', '44 seconds = a few seconds'); - assert.equal(start.from(moment([2007, 1, 28]).add({s: 45}), true), 'wa’ tup', '45 seconds = a minute'); - assert.equal(start.from(moment([2007, 1, 28]).add({s: 89}), true), 'wa’ tup', '89 seconds = a minute'); - assert.equal(start.from(moment([2007, 1, 28]).add({s: 90}), true), 'cha’ tup', '90 seconds = 2 minutes'); - assert.equal(start.from(moment([2007, 1, 28]).add({m: 44}), true), 'loSmaH loS tup', '44 minutes = 44 minutes'); - assert.equal(start.from(moment([2007, 1, 28]).add({m: 45}), true), 'wa’ rep', '45 minutes = an hour'); - assert.equal(start.from(moment([2007, 1, 28]).add({m: 89}), true), 'wa’ rep', '89 minutes = an hour'); - assert.equal(start.from(moment([2007, 1, 28]).add({m: 90}), true), 'cha’ rep', '90 minutes = 2 hours'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 5}), true), 'vagh rep', '5 hours = 5 hours'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 21}), true), 'cha’maH wa’ rep', '21 hours = 21 hours'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 22}), true), 'wa’ jaj', '22 hours = a day'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 35}), true), 'wa’ jaj', '35 hours = a day'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 36}), true), 'cha’ jaj', '36 hours = 2 days'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 1}), true), 'wa’ jaj', '1 day = a day'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 5}), true), 'vagh jaj', '5 days = 5 days'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 25}), true), 'cha’maH vagh jaj', '25 days = 25 days'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 26}), true), 'wa’ jar', '26 days = a month'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 30}), true), 'wa’ jar', '30 days = a month'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 43}), true), 'wa’ jar', '43 days = a month'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 46}), true), 'cha’ jar', '46 days = 2 months'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 74}), true), 'cha’ jar', '75 days = 2 months'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 76}), true), 'wej jar', '76 days = 3 months'); - assert.equal(start.from(moment([2007, 1, 28]).add({M: 1}), true), 'wa’ jar', '1 month = a month'); - assert.equal(start.from(moment([2007, 1, 28]).add({M: 5}), true), 'vagh jar', '5 months = 5 months'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 345}), true), 'wa’ DIS', '345 days = a year'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 548}), true), 'cha’ DIS', '548 days = 2 years'); - assert.equal(start.from(moment([2007, 1, 28]).add({y: 1}), true), 'wa’ DIS', '1 year = a year'); - assert.equal(start.from(moment([2007, 1, 28]).add({y: 5}), true), 'vagh DIS', '5 years = 5 years'); - assert.equal(start.from(moment([2007, 1, 28]).add({y: 112}), true), 'wa’vatlh wa’maH cha’ DIS', '112 years = 112 years'); - assert.equal(start.from(moment([2007, 1, 28]).add({y: 122}), true), 'wa’vatlh cha’maH cha’ DIS', '122 years = 122 years'); - assert.equal(start.from(moment([2007, 1, 28]).add({y: 213}), true), 'cha’vatlh wa’maH wej DIS', '213 years = 213 years'); - assert.equal(start.from(moment([2007, 1, 28]).add({y: 223}), true), 'cha’vatlh cha’maH wej DIS', '223 years = 223 years'); -}); - -test('suffix', function (assert) { - assert.equal(moment(30000).from(0), 'puS lup pIq', 'suffix'); - assert.equal(moment(0).from(30000), 'puS lup ret', 'suffix'); -}); - -test('now from now', function (assert) { - assert.equal(moment().fromNow(), 'puS lup ret', 'now from now should display as in the past'); -}); - -test('fromNow', function (assert) { - assert.equal(moment().add({s: 30}).fromNow(), 'puS lup pIq', 'in a few seconds'); - assert.equal(moment().add({h: 1}).fromNow(), 'wa’ rep pIq', 'in an hour'); - assert.equal(moment().add({d: 5}).fromNow(), 'vagh leS', 'in 5 days'); - assert.equal(moment().add({M: 2}).fromNow(), 'cha’ waQ', 'in 2 months'); - assert.equal(moment().add({y: 1}).fromNow(), 'wa’ nem', 'in a year'); - assert.equal(moment().add({s: -30}).fromNow(), 'puS lup ret', 'a few seconds ago'); - assert.equal(moment().add({h: -1}).fromNow(), 'wa’ rep ret', 'an hour ago'); - assert.equal(moment().add({d: -5}).fromNow(), 'vagh Hu’', '5 days ago'); - assert.equal(moment().add({M: -2}).fromNow(), 'cha’ wen', '2 months ago'); - assert.equal(moment().add({y: -1}).fromNow(), 'wa’ ben', 'a year ago'); -}); - -test('calendar day', function (assert) { - var a = moment().hours(12).minutes(0).seconds(0); - - assert.equal(moment(a).calendar(), 'DaHjaj 12:00', 'today at the same time'); - assert.equal(moment(a).add({m: 25}).calendar(), 'DaHjaj 12:25', 'Now plus 25 min'); - assert.equal(moment(a).add({h: 1}).calendar(), 'DaHjaj 13:00', 'Now plus 1 hour'); - assert.equal(moment(a).add({d: 1}).calendar(), 'wa’leS 12:00', 'tomorrow at the same time'); - assert.equal(moment(a).subtract({h: 1}).calendar(), 'DaHjaj 11:00', 'Now minus 1 hour'); - assert.equal(moment(a).subtract({d: 1}).calendar(), 'wa’Hu’ 12:00', 'yesterday at the same time'); -}); - -test('calendar next week', function (assert) { - var i, m; - for (i = 2; i < 7; i++) { - m = moment().add({d: i}); - assert.equal(m.calendar(), m.format('LLL'), 'Today + ' + i + ' days current time'); - m.hours(0).minutes(0).seconds(0).milliseconds(0); - assert.equal(m.calendar(), m.format('LLL'), 'Today + ' + i + ' days beginning of day'); - m.hours(23).minutes(59).seconds(59).milliseconds(999); - assert.equal(m.calendar(), m.format('LLL'), 'Today + ' + i + ' days end of day'); - } -}); - -test('calendar last week', function (assert) { - var i, m; - for (i = 2; i < 7; i++) { - m = moment().subtract({d: i}); - assert.equal(m.calendar(), m.format('LLL'), 'Today - ' + i + ' days current time'); - - m.hours(0).minutes(0).seconds(0).milliseconds(0); - assert.equal(m.calendar(), m.format('LLL'), 'Today - ' + i + ' days beginning of day'); - - m.hours(23).minutes(59).seconds(59).milliseconds(999); - assert.equal(m.calendar(), m.format('LLL'), 'Today - ' + i + ' days end of day'); - } -}); - -test('calendar all else', function (assert) { - var weeksAgo = moment().subtract({w: 1}), - weeksFromNow = moment().add({w: 1}); - - assert.equal(weeksAgo.calendar(), weeksAgo.format('L'), '1 week ago'); - assert.equal(weeksFromNow.calendar(), weeksFromNow.format('L'), 'in 1 week'); - - weeksAgo = moment().subtract({w: 2}); - weeksFromNow = moment().add({w: 2}); - - assert.equal(weeksAgo.calendar(), weeksAgo.format('L'), '2 weeks ago'); - assert.equal(weeksFromNow.calendar(), weeksFromNow.format('L'), 'in 2 weeks'); -}); - -test('weeks year starting sunday formatted', function (assert) { - assert.equal(moment([2012, 0, 1]).format('w ww wo'), '52 52 52.', 'Jan 1 2012 should be week 52'); - assert.equal(moment([2012, 0, 2]).format('w ww wo'), '1 01 1.', 'Jan 2 2012 should be week 1'); - assert.equal(moment([2012, 0, 8]).format('w ww wo'), '1 01 1.', 'Jan 8 2012 should be week 1'); - assert.equal(moment([2012, 0, 9]).format('w ww wo'), '2 02 2.', 'Jan 9 2012 should be week 2'); - assert.equal(moment([2012, 0, 15]).format('w ww wo'), '2 02 2.', 'Jan 15 2012 should be week 2'); -}); - -}))); - - -;(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' - && typeof require === 'function' ? factory(require('../../moment')) : - typeof define === 'function' && define.amd ? define(['../../moment'], factory) : - factory(global.moment) -}(this, (function (moment) { 'use strict'; - -function each(array, callback) { - var i; - for (i = 0; i < array.length; i++) { - callback(array[i], i, array); - } -} - -function objectKeys(obj) { - if (Object.keys) { - return Object.keys(obj); - } else { - // IE8 - var res = [], i; - for (i in obj) { - if (obj.hasOwnProperty(i)) { - res.push(i); - } - } - return res; - } -} - -// Pick the first defined of two or three arguments. - -function defineCommonLocaleTests(locale, options) { - test('lenient day of month ordinal parsing', function (assert) { - var i, ordinalStr, testMoment; - for (i = 1; i <= 31; ++i) { - ordinalStr = moment([2014, 0, i]).format('YYYY MM Do'); - testMoment = moment(ordinalStr, 'YYYY MM Do'); - assert.equal(testMoment.year(), 2014, - 'lenient day of month ordinal parsing ' + i + ' year check'); - assert.equal(testMoment.month(), 0, - 'lenient day of month ordinal parsing ' + i + ' month check'); - assert.equal(testMoment.date(), i, - 'lenient day of month ordinal parsing ' + i + ' date check'); - } - }); - - test('lenient day of month ordinal parsing of number', function (assert) { - var i, testMoment; - for (i = 1; i <= 31; ++i) { - testMoment = moment('2014 01 ' + i, 'YYYY MM Do'); - assert.equal(testMoment.year(), 2014, - 'lenient day of month ordinal parsing of number ' + i + ' year check'); - assert.equal(testMoment.month(), 0, - 'lenient day of month ordinal parsing of number ' + i + ' month check'); - assert.equal(testMoment.date(), i, - 'lenient day of month ordinal parsing of number ' + i + ' date check'); - } - }); - - test('strict day of month ordinal parsing', function (assert) { - var i, ordinalStr, testMoment; - for (i = 1; i <= 31; ++i) { - ordinalStr = moment([2014, 0, i]).format('YYYY MM Do'); - testMoment = moment(ordinalStr, 'YYYY MM Do', true); - assert.ok(testMoment.isValid(), 'strict day of month ordinal parsing ' + i); - } - }); - - test('meridiem invariant', function (assert) { - var h, m, t1, t2; - for (h = 0; h < 24; ++h) { - for (m = 0; m < 60; m += 15) { - t1 = moment.utc([2000, 0, 1, h, m]); - t2 = moment.utc(t1.format('A h:mm'), 'A h:mm'); - assert.equal(t2.format('HH:mm'), t1.format('HH:mm'), - 'meridiem at ' + t1.format('HH:mm')); - } - } - }); - - test('date format correctness', function (assert) { - var data, tokens; - data = moment.localeData()._longDateFormat; - tokens = objectKeys(data); - each(tokens, function (srchToken) { - // Check each format string to make sure it does not contain any - // tokens that need to be expanded. - each(tokens, function (baseToken) { - // strip escaped sequences - var format = data[baseToken].replace(/(\[[^\]]*\])/g, ''); - assert.equal(false, !!~format.indexOf(srchToken), - 'contains ' + srchToken + ' in ' + baseToken); - }); - }); - }); - - test('month parsing correctness', function (assert) { - var i, m; - - if (locale === 'tr') { - // I can't fix it :( - expect(0); - return; - } - function tester(format) { - var r; - r = moment(m.format(format), format); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format); - r = moment(m.format(format).toLocaleUpperCase(), format); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' upper'); - r = moment(m.format(format).toLocaleLowerCase(), format); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' lower'); - - r = moment(m.format(format), format, true); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' strict'); - r = moment(m.format(format).toLocaleUpperCase(), format, true); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' upper strict'); - r = moment(m.format(format).toLocaleLowerCase(), format, true); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' lower strict'); - } - - for (i = 0; i < 12; ++i) { - m = moment([2015, i, 15, 18]); - tester('MMM'); - tester('MMM.'); - tester('MMMM'); - tester('MMMM.'); - } - }); - - test('weekday parsing correctness', function (assert) { - var i, m; - - if (locale === 'tr' || locale === 'az' || locale === 'ro') { - // tr, az: There is a lower-case letter (ı), that converted to - // upper then lower changes to i - // ro: there is the letter ț which behaves weird under IE8 - expect(0); - return; - } - function tester(format) { - var r, baseMsg = 'weekday ' + m.weekday() + ' fmt ' + format + ' ' + m.toISOString(); - r = moment(m.format(format), format); - assert.equal(r.weekday(), m.weekday(), baseMsg); - r = moment(m.format(format).toLocaleUpperCase(), format); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' upper'); - r = moment(m.format(format).toLocaleLowerCase(), format); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' lower'); - - r = moment(m.format(format), format, true); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' strict'); - r = moment(m.format(format).toLocaleUpperCase(), format, true); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' upper strict'); - r = moment(m.format(format).toLocaleLowerCase(), format, true); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' lower strict'); - } - - for (i = 0; i < 7; ++i) { - m = moment.utc([2015, 0, i + 1, 18]); - tester('dd'); - tester('ddd'); - tester('dddd'); - } - }); - - test('valid localeData', function (assert) { - assert.equal(moment().localeData().months().length, 12, 'months should return 12 months'); - assert.equal(moment().localeData().monthsShort().length, 12, 'monthsShort should return 12 months'); - assert.equal(moment().localeData().weekdays().length, 7, 'weekdays should return 7 days'); - assert.equal(moment().localeData().weekdaysShort().length, 7, 'weekdaysShort should return 7 days'); - assert.equal(moment().localeData().weekdaysMin().length, 7, 'monthsShort should return 7 days'); - }); -} - -function setupDeprecationHandler(test, moment$$1, scope) { - test._expectedDeprecations = null; - test._observedDeprecations = null; - test._oldSupress = moment$$1.suppressDeprecationWarnings; - moment$$1.suppressDeprecationWarnings = true; - test.expectedDeprecations = function () { - test._expectedDeprecations = arguments; - test._observedDeprecations = []; - }; - moment$$1.deprecationHandler = function (name, msg) { - var deprecationId = matchedDeprecation(name, msg, test._expectedDeprecations); - if (deprecationId === -1) { - throw new Error('Unexpected deprecation thrown name=' + - name + ' msg=' + msg); - } - test._observedDeprecations[deprecationId] = 1; - }; -} - -function teardownDeprecationHandler(test, moment$$1, scope) { - moment$$1.suppressDeprecationWarnings = test._oldSupress; - - if (test._expectedDeprecations != null) { - var missedDeprecations = []; - each(test._expectedDeprecations, function (deprecationPattern, id) { - if (test._observedDeprecations[id] !== 1) { - missedDeprecations.push(deprecationPattern); - } - }); - if (missedDeprecations.length !== 0) { - throw new Error('Expected deprecation warnings did not happen: ' + - missedDeprecations.join(' ')); - } - } -} - -function matchedDeprecation(name, msg, deprecations) { - if (deprecations == null) { - return -1; - } - for (var i = 0; i < deprecations.length; ++i) { - if (name != null && name === deprecations[i]) { - return i; - } - if (msg != null && msg.substring(0, deprecations[i].length) === deprecations[i]) { - return i; - } - } - return -1; -} - -/*global QUnit:false*/ - -var test = QUnit.test; - -var expect = QUnit.expect; - - - -function localeModule (name, lifecycle) { - QUnit.module('locale:' + name, { - setup : function () { - moment.locale(name); - moment.createFromInputFallback = function (config) { - throw new Error('input not handled by moment: ' + config._i); - }; - setupDeprecationHandler(test, moment, 'locale'); - if (lifecycle && lifecycle.setup) { - lifecycle.setup(); - } - }, - teardown : function () { - moment.locale('en'); - teardownDeprecationHandler(test, moment, 'locale'); - if (lifecycle && lifecycle.teardown) { - lifecycle.teardown(); - } - } - }); - defineCommonLocaleTests(name, -1, -1); -} - -localeModule('tr'); - -test('parse', function (assert) { - var tests = 'Ocak Oca_Şubat Şub_Mart Mar_Nisan Nis_Mayıs May_Haziran Haz_Temmuz Tem_Ağustos Ağu_Eylül Eyl_Ekim Eki_Kasım Kas_Aralık Ara'.split('_'), i; - function equalTest(input, mmm, i) { - assert.equal(moment(input, mmm).month(), i, input + ' should be month ' + (i + 1)); - } - for (i = 0; i < 12; i++) { - tests[i] = tests[i].split(' '); - equalTest(tests[i][0], 'MMM', i); - equalTest(tests[i][1], 'MMM', i); - equalTest(tests[i][0], 'MMMM', i); - equalTest(tests[i][1], 'MMMM', i); - equalTest(tests[i][0].toLocaleLowerCase(), 'MMMM', i); - equalTest(tests[i][1].toLocaleLowerCase(), 'MMMM', i); - equalTest(tests[i][0].toLocaleUpperCase(), 'MMMM', i); - equalTest(tests[i][1].toLocaleUpperCase(), 'MMMM', i); - } -}); - -test('format', function (assert) { - var a = [ - ['dddd, MMMM Do YYYY, h:mm:ss a', 'Pazar, Şubat 14\'üncü 2010, 3:25:50 pm'], - ['ddd, hA', 'Paz, 3PM'], - ['M Mo MM MMMM MMM', '2 2\'nci 02 Şubat Şub'], - ['YYYY YY', '2010 10'], - ['D Do DD', '14 14\'üncü 14'], - ['d do dddd ddd dd', '0 0\'ıncı Pazar Paz Pz'], - ['DDD DDDo DDDD', '45 45\'inci 045'], - ['w wo ww', '7 7\'nci 07'], - ['h hh', '3 03'], - ['H HH', '15 15'], - ['m mm', '25 25'], - ['s ss', '50 50'], - ['a A', 'pm PM'], - ['[yılın] DDDo [günü]', 'yılın 45\'inci günü'], - ['LTS', '15:25:50'], - ['L', '14.02.2010'], - ['LL', '14 Şubat 2010'], - ['LLL', '14 Şubat 2010 15:25'], - ['LLLL', 'Pazar, 14 Şubat 2010 15:25'], - ['l', '14.2.2010'], - ['ll', '14 Şub 2010'], - ['lll', '14 Şub 2010 15:25'], - ['llll', 'Paz, 14 Şub 2010 15:25'] - ], - DDDo = [ - [359, '360\'ıncı'], - [199, '200\'üncü'], - [149, '150\'nci'] - ], - dt = moment(new Date(2010, 1, 14, 15, 25, 50, 125)), - DDDoDt, - i; - - for (i = 0; i < a.length; i++) { - assert.equal(dt.format(a[i][0]), a[i][1], a[i][0] + ' ---> ' + a[i][1]); - } - for (i = 0; i < DDDo.length; i++) { - DDDoDt = moment([2010]); - assert.equal(DDDoDt.add(DDDo[i][0], 'days').format('DDDo'), DDDo[i][1], DDDo[i][0] + ' ---> ' + DDDo[i][1]); - } -}); - -test('format ordinal', function (assert) { - assert.equal(moment([2011, 0, 1]).format('DDDo'), '1\'inci', '1st'); - assert.equal(moment([2011, 0, 2]).format('DDDo'), '2\'nci', '2nd'); - assert.equal(moment([2011, 0, 3]).format('DDDo'), '3\'üncü', '3rd'); - assert.equal(moment([2011, 0, 4]).format('DDDo'), '4\'üncü', '4th'); - assert.equal(moment([2011, 0, 5]).format('DDDo'), '5\'inci', '5th'); - assert.equal(moment([2011, 0, 6]).format('DDDo'), '6\'ncı', '6th'); - assert.equal(moment([2011, 0, 7]).format('DDDo'), '7\'nci', '7th'); - assert.equal(moment([2011, 0, 8]).format('DDDo'), '8\'inci', '8th'); - assert.equal(moment([2011, 0, 9]).format('DDDo'), '9\'uncu', '9th'); - assert.equal(moment([2011, 0, 10]).format('DDDo'), '10\'uncu', '10th'); - - assert.equal(moment([2011, 0, 11]).format('DDDo'), '11\'inci', '11th'); - assert.equal(moment([2011, 0, 12]).format('DDDo'), '12\'nci', '12th'); - assert.equal(moment([2011, 0, 13]).format('DDDo'), '13\'üncü', '13th'); - assert.equal(moment([2011, 0, 14]).format('DDDo'), '14\'üncü', '14th'); - assert.equal(moment([2011, 0, 15]).format('DDDo'), '15\'inci', '15th'); - assert.equal(moment([2011, 0, 16]).format('DDDo'), '16\'ncı', '16th'); - assert.equal(moment([2011, 0, 17]).format('DDDo'), '17\'nci', '17th'); - assert.equal(moment([2011, 0, 18]).format('DDDo'), '18\'inci', '18th'); - assert.equal(moment([2011, 0, 19]).format('DDDo'), '19\'uncu', '19th'); - assert.equal(moment([2011, 0, 20]).format('DDDo'), '20\'nci', '20th'); - - assert.equal(moment([2011, 0, 21]).format('DDDo'), '21\'inci', '21th'); - assert.equal(moment([2011, 0, 22]).format('DDDo'), '22\'nci', '22th'); - assert.equal(moment([2011, 0, 23]).format('DDDo'), '23\'üncü', '23th'); - assert.equal(moment([2011, 0, 24]).format('DDDo'), '24\'üncü', '24th'); - assert.equal(moment([2011, 0, 25]).format('DDDo'), '25\'inci', '25th'); - assert.equal(moment([2011, 0, 26]).format('DDDo'), '26\'ncı', '26th'); - assert.equal(moment([2011, 0, 27]).format('DDDo'), '27\'nci', '27th'); - assert.equal(moment([2011, 0, 28]).format('DDDo'), '28\'inci', '28th'); - assert.equal(moment([2011, 0, 29]).format('DDDo'), '29\'uncu', '29th'); - assert.equal(moment([2011, 0, 30]).format('DDDo'), '30\'uncu', '30th'); - - assert.equal(moment([2011, 0, 31]).format('DDDo'), '31\'inci', '31st'); -}); - -test('format month', function (assert) { - var expected = 'Ocak Oca_Şubat Şub_Mart Mar_Nisan Nis_Mayıs May_Haziran Haz_Temmuz Tem_Ağustos Ağu_Eylül Eyl_Ekim Eki_Kasım Kas_Aralık Ara'.split('_'), i; - for (i = 0; i < expected.length; i++) { - assert.equal(moment([2011, i, 1]).format('MMMM MMM'), expected[i], expected[i]); - } -}); - -test('format week', function (assert) { - var expected = 'Pazar Paz Pz_Pazartesi Pts Pt_Salı Sal Sa_Çarşamba Çar Ça_Perşembe Per Pe_Cuma Cum Cu_Cumartesi Cts Ct'.split('_'), i; - for (i = 0; i < expected.length; i++) { - assert.equal(moment([2011, 0, 2 + i]).format('dddd ddd dd'), expected[i], expected[i]); - } -}); - -test('from', function (assert) { - var start = moment([2007, 1, 28]); - assert.equal(start.from(moment([2007, 1, 28]).add({s: 44}), true), 'birkaç saniye', '44 seconds = a few seconds'); - assert.equal(start.from(moment([2007, 1, 28]).add({s: 45}), true), 'bir dakika', '45 seconds = a minute'); - assert.equal(start.from(moment([2007, 1, 28]).add({s: 89}), true), 'bir dakika', '89 seconds = a minute'); - assert.equal(start.from(moment([2007, 1, 28]).add({s: 90}), true), '2 dakika', '90 seconds = 2 minutes'); - assert.equal(start.from(moment([2007, 1, 28]).add({m: 44}), true), '44 dakika', '44 minutes = 44 minutes'); - assert.equal(start.from(moment([2007, 1, 28]).add({m: 45}), true), 'bir saat', '45 minutes = an hour'); - assert.equal(start.from(moment([2007, 1, 28]).add({m: 89}), true), 'bir saat', '89 minutes = an hour'); - assert.equal(start.from(moment([2007, 1, 28]).add({m: 90}), true), '2 saat', '90 minutes = 2 hours'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 5}), true), '5 saat', '5 hours = 5 hours'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 21}), true), '21 saat', '21 hours = 21 hours'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 22}), true), 'bir gün', '22 hours = a day'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 35}), true), 'bir gün', '35 hours = a day'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 36}), true), '2 gün', '36 hours = 2 days'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 1}), true), 'bir gün', '1 day = a day'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 5}), true), '5 gün', '5 days = 5 days'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 25}), true), '25 gün', '25 days = 25 days'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 26}), true), 'bir ay', '26 days = a month'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 30}), true), 'bir ay', '30 days = a month'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 43}), true), 'bir ay', '43 days = a month'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 46}), true), '2 ay', '46 days = 2 months'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 74}), true), '2 ay', '75 days = 2 months'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 76}), true), '3 ay', '76 days = 3 months'); - assert.equal(start.from(moment([2007, 1, 28]).add({M: 1}), true), 'bir ay', '1 month = a month'); - assert.equal(start.from(moment([2007, 1, 28]).add({M: 5}), true), '5 ay', '5 months = 5 months'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 345}), true), 'bir yıl', '345 days = a year'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 548}), true), '2 yıl', '548 days = 2 years'); - assert.equal(start.from(moment([2007, 1, 28]).add({y: 1}), true), 'bir yıl', '1 year = a year'); - assert.equal(start.from(moment([2007, 1, 28]).add({y: 5}), true), '5 yıl', '5 years = 5 years'); -}); - -test('suffix', function (assert) { - assert.equal(moment(30000).from(0), 'birkaç saniye sonra', 'prefix'); - assert.equal(moment(0).from(30000), 'birkaç saniye önce', 'suffix'); -}); - -test('now from now', function (assert) { - assert.equal(moment().fromNow(), 'birkaç saniye önce', 'now from now should display as in the past'); -}); - -test('fromNow', function (assert) { - assert.equal(moment().add({s: 30}).fromNow(), 'birkaç saniye sonra', 'in a few seconds'); - assert.equal(moment().add({d: 5}).fromNow(), '5 gün sonra', 'in 5 days'); -}); - -test('calendar day', function (assert) { - var a = moment().hours(12).minutes(0).seconds(0); - - assert.equal(moment(a).calendar(), 'bugün saat 12:00', 'today at the same time'); - assert.equal(moment(a).add({m: 25}).calendar(), 'bugün saat 12:25', 'Now plus 25 min'); - assert.equal(moment(a).add({h: 1}).calendar(), 'bugün saat 13:00', 'Now plus 1 hour'); - assert.equal(moment(a).add({d: 1}).calendar(), 'yarın saat 12:00', 'tomorrow at the same time'); - assert.equal(moment(a).subtract({h: 1}).calendar(), 'bugün saat 11:00', 'Now minus 1 hour'); - assert.equal(moment(a).subtract({d: 1}).calendar(), 'dün 12:00', 'yesterday at the same time'); -}); - -test('calendar next week', function (assert) { - var i, m; - for (i = 2; i < 7; i++) { - m = moment().add({d: i}); - assert.equal(m.calendar(), m.format('[haftaya] dddd [saat] LT'), 'Today + ' + i + ' days current time'); - m.hours(0).minutes(0).seconds(0).milliseconds(0); - assert.equal(m.calendar(), m.format('[haftaya] dddd [saat] LT'), 'Today + ' + i + ' days beginning of day'); - m.hours(23).minutes(59).seconds(59).milliseconds(999); - assert.equal(m.calendar(), m.format('[haftaya] dddd [saat] LT'), 'Today + ' + i + ' days end of day'); - } -}); - -test('calendar last week', function (assert) { - var i, m; - for (i = 2; i < 7; i++) { - m = moment().subtract({d: i}); - assert.equal(m.calendar(), m.format('[geçen hafta] dddd [saat] LT'), 'Today - ' + i + ' days current time'); - m.hours(0).minutes(0).seconds(0).milliseconds(0); - assert.equal(m.calendar(), m.format('[geçen hafta] dddd [saat] LT'), 'Today - ' + i + ' days beginning of day'); - m.hours(23).minutes(59).seconds(59).milliseconds(999); - assert.equal(m.calendar(), m.format('[geçen hafta] dddd [saat] LT'), 'Today - ' + i + ' days end of day'); - } -}); - -test('calendar all else', function (assert) { - var weeksAgo = moment().subtract({w: 1}), - weeksFromNow = moment().add({w: 1}); - - assert.equal(weeksAgo.calendar(), weeksAgo.format('L'), '1 week ago'); - assert.equal(weeksFromNow.calendar(), weeksFromNow.format('L'), 'in 1 week'); - - weeksAgo = moment().subtract({w: 2}); - weeksFromNow = moment().add({w: 2}); - - assert.equal(weeksAgo.calendar(), weeksAgo.format('L'), '2 weeks ago'); - assert.equal(weeksFromNow.calendar(), weeksFromNow.format('L'), 'in 2 weeks'); -}); - -test('weeks year starting sunday formatted', function (assert) { - assert.equal(moment([2011, 11, 26]).format('w ww wo'), '1 01 1\'inci', 'Dec 26 2011 should be week 1'); - assert.equal(moment([2012, 0, 1]).format('w ww wo'), '1 01 1\'inci', 'Jan 1 2012 should be week 1'); - assert.equal(moment([2012, 0, 2]).format('w ww wo'), '2 02 2\'nci', 'Jan 2 2012 should be week 2'); - assert.equal(moment([2012, 0, 8]).format('w ww wo'), '2 02 2\'nci', 'Jan 8 2012 should be week 2'); - assert.equal(moment([2012, 0, 9]).format('w ww wo'), '3 03 3\'üncü', 'Jan 9 2012 should be week 3'); -}); - -}))); - - -;(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' - && typeof require === 'function' ? factory(require('../../moment')) : - typeof define === 'function' && define.amd ? define(['../../moment'], factory) : - factory(global.moment) -}(this, (function (moment) { 'use strict'; - -function each(array, callback) { - var i; - for (i = 0; i < array.length; i++) { - callback(array[i], i, array); - } -} - -function objectKeys(obj) { - if (Object.keys) { - return Object.keys(obj); - } else { - // IE8 - var res = [], i; - for (i in obj) { - if (obj.hasOwnProperty(i)) { - res.push(i); - } - } - return res; - } -} - -// Pick the first defined of two or three arguments. - -function defineCommonLocaleTests(locale, options) { - test('lenient day of month ordinal parsing', function (assert) { - var i, ordinalStr, testMoment; - for (i = 1; i <= 31; ++i) { - ordinalStr = moment([2014, 0, i]).format('YYYY MM Do'); - testMoment = moment(ordinalStr, 'YYYY MM Do'); - assert.equal(testMoment.year(), 2014, - 'lenient day of month ordinal parsing ' + i + ' year check'); - assert.equal(testMoment.month(), 0, - 'lenient day of month ordinal parsing ' + i + ' month check'); - assert.equal(testMoment.date(), i, - 'lenient day of month ordinal parsing ' + i + ' date check'); - } - }); - - test('lenient day of month ordinal parsing of number', function (assert) { - var i, testMoment; - for (i = 1; i <= 31; ++i) { - testMoment = moment('2014 01 ' + i, 'YYYY MM Do'); - assert.equal(testMoment.year(), 2014, - 'lenient day of month ordinal parsing of number ' + i + ' year check'); - assert.equal(testMoment.month(), 0, - 'lenient day of month ordinal parsing of number ' + i + ' month check'); - assert.equal(testMoment.date(), i, - 'lenient day of month ordinal parsing of number ' + i + ' date check'); - } - }); - - test('strict day of month ordinal parsing', function (assert) { - var i, ordinalStr, testMoment; - for (i = 1; i <= 31; ++i) { - ordinalStr = moment([2014, 0, i]).format('YYYY MM Do'); - testMoment = moment(ordinalStr, 'YYYY MM Do', true); - assert.ok(testMoment.isValid(), 'strict day of month ordinal parsing ' + i); - } - }); - - test('meridiem invariant', function (assert) { - var h, m, t1, t2; - for (h = 0; h < 24; ++h) { - for (m = 0; m < 60; m += 15) { - t1 = moment.utc([2000, 0, 1, h, m]); - t2 = moment.utc(t1.format('A h:mm'), 'A h:mm'); - assert.equal(t2.format('HH:mm'), t1.format('HH:mm'), - 'meridiem at ' + t1.format('HH:mm')); - } - } - }); - - test('date format correctness', function (assert) { - var data, tokens; - data = moment.localeData()._longDateFormat; - tokens = objectKeys(data); - each(tokens, function (srchToken) { - // Check each format string to make sure it does not contain any - // tokens that need to be expanded. - each(tokens, function (baseToken) { - // strip escaped sequences - var format = data[baseToken].replace(/(\[[^\]]*\])/g, ''); - assert.equal(false, !!~format.indexOf(srchToken), - 'contains ' + srchToken + ' in ' + baseToken); - }); - }); - }); - - test('month parsing correctness', function (assert) { - var i, m; - - if (locale === 'tr') { - // I can't fix it :( - expect(0); - return; - } - function tester(format) { - var r; - r = moment(m.format(format), format); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format); - r = moment(m.format(format).toLocaleUpperCase(), format); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' upper'); - r = moment(m.format(format).toLocaleLowerCase(), format); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' lower'); - - r = moment(m.format(format), format, true); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' strict'); - r = moment(m.format(format).toLocaleUpperCase(), format, true); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' upper strict'); - r = moment(m.format(format).toLocaleLowerCase(), format, true); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' lower strict'); - } - - for (i = 0; i < 12; ++i) { - m = moment([2015, i, 15, 18]); - tester('MMM'); - tester('MMM.'); - tester('MMMM'); - tester('MMMM.'); - } - }); - - test('weekday parsing correctness', function (assert) { - var i, m; - - if (locale === 'tr' || locale === 'az' || locale === 'ro') { - // tr, az: There is a lower-case letter (ı), that converted to - // upper then lower changes to i - // ro: there is the letter ț which behaves weird under IE8 - expect(0); - return; - } - function tester(format) { - var r, baseMsg = 'weekday ' + m.weekday() + ' fmt ' + format + ' ' + m.toISOString(); - r = moment(m.format(format), format); - assert.equal(r.weekday(), m.weekday(), baseMsg); - r = moment(m.format(format).toLocaleUpperCase(), format); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' upper'); - r = moment(m.format(format).toLocaleLowerCase(), format); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' lower'); - - r = moment(m.format(format), format, true); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' strict'); - r = moment(m.format(format).toLocaleUpperCase(), format, true); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' upper strict'); - r = moment(m.format(format).toLocaleLowerCase(), format, true); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' lower strict'); - } - - for (i = 0; i < 7; ++i) { - m = moment.utc([2015, 0, i + 1, 18]); - tester('dd'); - tester('ddd'); - tester('dddd'); - } - }); - - test('valid localeData', function (assert) { - assert.equal(moment().localeData().months().length, 12, 'months should return 12 months'); - assert.equal(moment().localeData().monthsShort().length, 12, 'monthsShort should return 12 months'); - assert.equal(moment().localeData().weekdays().length, 7, 'weekdays should return 7 days'); - assert.equal(moment().localeData().weekdaysShort().length, 7, 'weekdaysShort should return 7 days'); - assert.equal(moment().localeData().weekdaysMin().length, 7, 'monthsShort should return 7 days'); - }); -} - -function setupDeprecationHandler(test, moment$$1, scope) { - test._expectedDeprecations = null; - test._observedDeprecations = null; - test._oldSupress = moment$$1.suppressDeprecationWarnings; - moment$$1.suppressDeprecationWarnings = true; - test.expectedDeprecations = function () { - test._expectedDeprecations = arguments; - test._observedDeprecations = []; - }; - moment$$1.deprecationHandler = function (name, msg) { - var deprecationId = matchedDeprecation(name, msg, test._expectedDeprecations); - if (deprecationId === -1) { - throw new Error('Unexpected deprecation thrown name=' + - name + ' msg=' + msg); - } - test._observedDeprecations[deprecationId] = 1; - }; -} - -function teardownDeprecationHandler(test, moment$$1, scope) { - moment$$1.suppressDeprecationWarnings = test._oldSupress; - - if (test._expectedDeprecations != null) { - var missedDeprecations = []; - each(test._expectedDeprecations, function (deprecationPattern, id) { - if (test._observedDeprecations[id] !== 1) { - missedDeprecations.push(deprecationPattern); - } - }); - if (missedDeprecations.length !== 0) { - throw new Error('Expected deprecation warnings did not happen: ' + - missedDeprecations.join(' ')); - } - } -} - -function matchedDeprecation(name, msg, deprecations) { - if (deprecations == null) { - return -1; - } - for (var i = 0; i < deprecations.length; ++i) { - if (name != null && name === deprecations[i]) { - return i; - } - if (msg != null && msg.substring(0, deprecations[i].length) === deprecations[i]) { - return i; - } - } - return -1; -} - -/*global QUnit:false*/ - -var test = QUnit.test; - -var expect = QUnit.expect; - - - -function localeModule (name, lifecycle) { - QUnit.module('locale:' + name, { - setup : function () { - moment.locale(name); - moment.createFromInputFallback = function (config) { - throw new Error('input not handled by moment: ' + config._i); - }; - setupDeprecationHandler(test, moment, 'locale'); - if (lifecycle && lifecycle.setup) { - lifecycle.setup(); - } - }, - teardown : function () { - moment.locale('en'); - teardownDeprecationHandler(test, moment, 'locale'); - if (lifecycle && lifecycle.teardown) { - lifecycle.teardown(); - } - } - }); - defineCommonLocaleTests(name, -1, -1); -} - -localeModule('tzl'); - -test('parse', function (assert) { - var tests = 'Januar Jan_Fevraglh Fev_Març Mar_Avrïu Avr_Mai Mai_Gün Gün_Julia Jul_Guscht Gus_Setemvar Set_Listopäts Lis_Noemvar Noe_Zecemvar Zec'.split('_'), i; - function equalTest(input, mmm, i) { - assert.equal(moment(input, mmm).month(), i, input + ' should be month ' + (i + 1)); - } - for (i = 0; i < 12; i++) { - tests[i] = tests[i].split(' '); - equalTest(tests[i][0], 'MMM', i); - equalTest(tests[i][1], 'MMM', i); - equalTest(tests[i][0], 'MMMM', i); - equalTest(tests[i][1], 'MMMM', i); - equalTest(tests[i][0].toLocaleLowerCase(), 'MMMM', i); - equalTest(tests[i][1].toLocaleLowerCase(), 'MMMM', i); - equalTest(tests[i][0].toLocaleUpperCase(), 'MMMM', i); - equalTest(tests[i][1].toLocaleUpperCase(), 'MMMM', i); - } -}); - -test('format', function (assert) { - var a = [ - ['dddd, MMMM Do YYYY, h.mm.ss a', 'Súladi, Fevraglh 14. 2010, 3.25.50 d\'o'], - ['ddd, hA', 'Súl, 3D\'O'], - ['M Mo MM MMMM MMM', '2 2. 02 Fevraglh Fev'], - ['YYYY YY', '2010 10'], - ['D Do DD', '14 14. 14'], - ['d do dddd ddd dd', '0 0. Súladi Súl Sú'], - ['DDD DDDo DDDD', '45 45. 045'], - ['w wo ww', '6 6. 06'], - ['h hh', '3 03'], - ['H HH', '15 15'], - ['m mm', '25 25'], - ['s ss', '50 50'], - ['a A', 'd\'o D\'O'], - ['[the] DDDo [day of the year]', 'the 45. day of the year'], - ['LTS', '15.25.50'], - ['L', '14.02.2010'], - ['LL', '14. Fevraglh dallas 2010'], - ['LLL', '14. Fevraglh dallas 2010 15.25'], - ['LLLL', 'Súladi, li 14. Fevraglh dallas 2010 15.25'], - ['l', '14.2.2010'], - ['ll', '14. Fev dallas 2010'], - ['lll', '14. Fev dallas 2010 15.25'], - ['llll', 'Súl, li 14. Fev dallas 2010 15.25'] - ], - b = moment(new Date(2010, 1, 14, 15, 25, 50, 125)), - i; - for (i = 0; i < a.length; i++) { - assert.equal(b.format(a[i][0]), a[i][1], a[i][0] + ' ---> ' + a[i][1]); - } -}); - -test('format ordinal', function (assert) { - assert.equal(moment([2011, 0, 1]).format('DDDo'), '1.', '1.'); - assert.equal(moment([2011, 0, 2]).format('DDDo'), '2.', '2.'); - assert.equal(moment([2011, 0, 3]).format('DDDo'), '3.', '3.'); - assert.equal(moment([2011, 0, 4]).format('DDDo'), '4.', '4.'); - assert.equal(moment([2011, 0, 5]).format('DDDo'), '5.', '5.'); - assert.equal(moment([2011, 0, 6]).format('DDDo'), '6.', '6.'); - assert.equal(moment([2011, 0, 7]).format('DDDo'), '7.', '7.'); - assert.equal(moment([2011, 0, 8]).format('DDDo'), '8.', '8.'); - assert.equal(moment([2011, 0, 9]).format('DDDo'), '9.', '9.'); - assert.equal(moment([2011, 0, 10]).format('DDDo'), '10.', '10.'); - - assert.equal(moment([2011, 0, 11]).format('DDDo'), '11.', '11.'); - assert.equal(moment([2011, 0, 12]).format('DDDo'), '12.', '12.'); - assert.equal(moment([2011, 0, 13]).format('DDDo'), '13.', '13.'); - assert.equal(moment([2011, 0, 14]).format('DDDo'), '14.', '14.'); - assert.equal(moment([2011, 0, 15]).format('DDDo'), '15.', '15.'); - assert.equal(moment([2011, 0, 16]).format('DDDo'), '16.', '16.'); - assert.equal(moment([2011, 0, 17]).format('DDDo'), '17.', '17.'); - assert.equal(moment([2011, 0, 18]).format('DDDo'), '18.', '18.'); - assert.equal(moment([2011, 0, 19]).format('DDDo'), '19.', '19.'); - assert.equal(moment([2011, 0, 20]).format('DDDo'), '20.', '20.'); - - assert.equal(moment([2011, 0, 21]).format('DDDo'), '21.', '21.'); - assert.equal(moment([2011, 0, 22]).format('DDDo'), '22.', '22.'); - assert.equal(moment([2011, 0, 23]).format('DDDo'), '23.', '23.'); - assert.equal(moment([2011, 0, 24]).format('DDDo'), '24.', '24.'); - assert.equal(moment([2011, 0, 25]).format('DDDo'), '25.', '25.'); - assert.equal(moment([2011, 0, 26]).format('DDDo'), '26.', '26.'); - assert.equal(moment([2011, 0, 27]).format('DDDo'), '27.', '27.'); - assert.equal(moment([2011, 0, 28]).format('DDDo'), '28.', '28.'); - assert.equal(moment([2011, 0, 29]).format('DDDo'), '29.', '29.'); - assert.equal(moment([2011, 0, 30]).format('DDDo'), '30.', '30.'); - - assert.equal(moment([2011, 0, 31]).format('DDDo'), '31.', '31.'); -}); - -test('format month', function (assert) { - var expected = 'Januar Jan_Fevraglh Fev_Març Mar_Avrïu Avr_Mai Mai_Gün Gün_Julia Jul_Guscht Gus_Setemvar Set_Listopäts Lis_Noemvar Noe_Zecemvar Zec'.split('_'), i; - for (i = 0; i < expected.length; i++) { - assert.equal(moment([2011, i, 1]).format('MMMM MMM'), expected[i], expected[i]); - } -}); - -test('format week', function (assert) { - var expected = 'Súladi Súl Sú_Lúneçi Lún Lú_Maitzi Mai Ma_Márcuri Már Má_Xhúadi Xhú Xh_Viénerçi Vié Vi_Sáturi Sát Sá'.split('_'), i; - for (i = 0; i < expected.length; i++) { - assert.equal(moment([2011, 0, 2 + i]).format('dddd ddd dd'), expected[i], expected[i]); - } -}); - -test('from', function (assert) { - var start = moment([2007, 1, 28]); - assert.equal(start.from(moment([2007, 1, 28]).add({s: 44}), true), 'viensas secunds', '44 seconds = a few seconds'); - assert.equal(start.from(moment([2007, 1, 28]).add({s: 45}), true), '\'n míut', '45 seconds = a minute'); - assert.equal(start.from(moment([2007, 1, 28]).add({s: 89}), true), '\'n míut', '89 seconds = a minute'); - assert.equal(start.from(moment([2007, 1, 28]).add({s: 90}), true), '2 míuts', '90 seconds = 2 minutes'); - assert.equal(start.from(moment([2007, 1, 28]).add({m: 44}), true), '44 míuts', '44 minutes = 44 minutes'); - assert.equal(start.from(moment([2007, 1, 28]).add({m: 45}), true), '\'n þora', '45 minutes = an hour'); - assert.equal(start.from(moment([2007, 1, 28]).add({m: 89}), true), '\'n þora', '89 minutes = an hour'); - assert.equal(start.from(moment([2007, 1, 28]).add({m: 90}), true), '2 þoras', '90 minutes = 2 hours'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 5}), true), '5 þoras', '5 hours = 5 hours'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 21}), true), '21 þoras', '21 hours = 21 hours'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 22}), true), '\'n ziua', '22 hours = a day'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 35}), true), '\'n ziua', '35 hours = a day'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 36}), true), '2 ziuas', '36 hours = 2 days'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 1}), true), '\'n ziua', '1 day = a day'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 5}), true), '5 ziuas', '5 days = 5 days'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 25}), true), '25 ziuas', '25 days = 25 days'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 26}), true), '\'n mes', '26 days = a month'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 30}), true), '\'n mes', '30 days = a month'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 43}), true), '\'n mes', '43 days = a month'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 46}), true), '2 mesen', '46 days = 2 months'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 74}), true), '2 mesen', '75 days = 2 months'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 76}), true), '3 mesen', '76 days = 3 months'); - assert.equal(start.from(moment([2007, 1, 28]).add({M: 1}), true), '\'n mes', '1 month = a month'); - assert.equal(start.from(moment([2007, 1, 28]).add({M: 5}), true), '5 mesen', '5 months = 5 months'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 345}), true), '\'n ar', '345 days = a year'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 548}), true), '2 ars', '548 days = 2 years'); - assert.equal(start.from(moment([2007, 1, 28]).add({y: 1}), true), '\'n ar', '1 year = a year'); - assert.equal(start.from(moment([2007, 1, 28]).add({y: 5}), true), '5 ars', '5 years = 5 years'); -}); - -test('suffix', function (assert) { - assert.equal(moment(30000).from(0), 'osprei viensas secunds', 'prefix'); - assert.equal(moment(0).from(30000), 'ja\'iensas secunds', 'suffix'); -}); - -test('now from now', function (assert) { - assert.equal(moment().fromNow(), 'ja\'iensas secunds', 'now from now should display as in the past'); -}); - -test('fromNow', function (assert) { - assert.equal(moment().add({s: 30}).fromNow(), 'osprei viensas secunds', 'in a few seconds'); - assert.equal(moment().add({d: 5}).fromNow(), 'osprei 5 ziuas', 'in 5 days'); -}); - -test('calendar day', function (assert) { - var a = moment().hours(12).minutes(0).seconds(0); - - assert.equal(moment(a).calendar(), 'oxhi à 12.00', 'today at the same time'); - assert.equal(moment(a).add({m: 25}).calendar(), 'oxhi à 12.25', 'Now plus 25 min'); - assert.equal(moment(a).add({h: 1}).calendar(), 'oxhi à 13.00', 'Now plus 1 hour'); - assert.equal(moment(a).add({d: 1}).calendar(), 'demà à 12.00', 'tomorrow at the same time'); - assert.equal(moment(a).subtract({h: 1}).calendar(), 'oxhi à 11.00', 'Now minus 1 hour'); - assert.equal(moment(a).subtract({d: 1}).calendar(), 'ieiri à 12.00', 'yesterday at the same time'); -}); - -test('calendar next week', function (assert) { - var i, m; - for (i = 2; i < 7; i++) { - m = moment().add({d: i}); - assert.equal(m.calendar(), m.format('dddd [à] LT'), 'Today + ' + i + ' days current time'); - m.hours(0).minutes(0).seconds(0).milliseconds(0); - assert.equal(m.calendar(), m.format('dddd [à] LT'), 'Today + ' + i + ' days beginning of day'); - m.hours(23).minutes(59).seconds(59).milliseconds(999); - assert.equal(m.calendar(), m.format('dddd [à] LT'), 'Today + ' + i + ' days end of day'); - } -}); - -test('calendar last week', function (assert) { - var i, m; - - for (i = 2; i < 7; i++) { - m = moment().subtract({d: i}); - assert.equal(m.calendar(), m.format('[sür el] dddd [lasteu à] LT'), 'Today - ' + i + ' days current time'); - m.hours(0).minutes(0).seconds(0).milliseconds(0); - assert.equal(m.calendar(), m.format('[sür el] dddd [lasteu à] LT'), 'Today - ' + i + ' days beginning of day'); - m.hours(23).minutes(59).seconds(59).milliseconds(999); - assert.equal(m.calendar(), m.format('[sür el] dddd [lasteu à] LT'), 'Today - ' + i + ' days end of day'); - } -}); - -test('calendar all else', function (assert) { - var weeksAgo = moment().subtract({w: 1}), - weeksFromNow = moment().add({w: 1}); - - assert.equal(weeksAgo.calendar(), weeksAgo.format('L'), '1 week ago'); - assert.equal(weeksFromNow.calendar(), weeksFromNow.format('L'), 'in 1 week'); - - weeksAgo = moment().subtract({w: 2}); - weeksFromNow = moment().add({w: 2}); - - assert.equal(weeksAgo.calendar(), weeksAgo.format('L'), '2 weeks ago'); - assert.equal(weeksFromNow.calendar(), weeksFromNow.format('L'), 'in 2 weeks'); -}); - -// Monday is the first day of the week. -// The week that contains Jan 4th is the first week of the year. - -test('weeks year starting sunday formatted', function (assert) { - assert.equal(moment([2012, 0, 1]).format('w ww wo'), '52 52 52.', 'Jan 1 2012 should be week 52'); - assert.equal(moment([2012, 0, 2]).format('w ww wo'), '1 01 1.', 'Jan 2 2012 should be week 1'); - assert.equal(moment([2012, 0, 8]).format('w ww wo'), '1 01 1.', 'Jan 8 2012 should be week 1'); - assert.equal(moment([2012, 0, 9]).format('w ww wo'), '2 02 2.', 'Jan 9 2012 should be week 2'); - assert.equal(moment([2012, 0, 15]).format('w ww wo'), '2 02 2.', 'Jan 15 2012 should be week 2'); -}); - -}))); - - -;(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' - && typeof require === 'function' ? factory(require('../../moment')) : - typeof define === 'function' && define.amd ? define(['../../moment'], factory) : - factory(global.moment) -}(this, (function (moment) { 'use strict'; - -function each(array, callback) { - var i; - for (i = 0; i < array.length; i++) { - callback(array[i], i, array); - } -} - -function objectKeys(obj) { - if (Object.keys) { - return Object.keys(obj); - } else { - // IE8 - var res = [], i; - for (i in obj) { - if (obj.hasOwnProperty(i)) { - res.push(i); - } - } - return res; - } -} - -// Pick the first defined of two or three arguments. - -function defineCommonLocaleTests(locale, options) { - test('lenient day of month ordinal parsing', function (assert) { - var i, ordinalStr, testMoment; - for (i = 1; i <= 31; ++i) { - ordinalStr = moment([2014, 0, i]).format('YYYY MM Do'); - testMoment = moment(ordinalStr, 'YYYY MM Do'); - assert.equal(testMoment.year(), 2014, - 'lenient day of month ordinal parsing ' + i + ' year check'); - assert.equal(testMoment.month(), 0, - 'lenient day of month ordinal parsing ' + i + ' month check'); - assert.equal(testMoment.date(), i, - 'lenient day of month ordinal parsing ' + i + ' date check'); - } - }); - - test('lenient day of month ordinal parsing of number', function (assert) { - var i, testMoment; - for (i = 1; i <= 31; ++i) { - testMoment = moment('2014 01 ' + i, 'YYYY MM Do'); - assert.equal(testMoment.year(), 2014, - 'lenient day of month ordinal parsing of number ' + i + ' year check'); - assert.equal(testMoment.month(), 0, - 'lenient day of month ordinal parsing of number ' + i + ' month check'); - assert.equal(testMoment.date(), i, - 'lenient day of month ordinal parsing of number ' + i + ' date check'); - } - }); - - test('strict day of month ordinal parsing', function (assert) { - var i, ordinalStr, testMoment; - for (i = 1; i <= 31; ++i) { - ordinalStr = moment([2014, 0, i]).format('YYYY MM Do'); - testMoment = moment(ordinalStr, 'YYYY MM Do', true); - assert.ok(testMoment.isValid(), 'strict day of month ordinal parsing ' + i); - } - }); - - test('meridiem invariant', function (assert) { - var h, m, t1, t2; - for (h = 0; h < 24; ++h) { - for (m = 0; m < 60; m += 15) { - t1 = moment.utc([2000, 0, 1, h, m]); - t2 = moment.utc(t1.format('A h:mm'), 'A h:mm'); - assert.equal(t2.format('HH:mm'), t1.format('HH:mm'), - 'meridiem at ' + t1.format('HH:mm')); - } - } - }); - - test('date format correctness', function (assert) { - var data, tokens; - data = moment.localeData()._longDateFormat; - tokens = objectKeys(data); - each(tokens, function (srchToken) { - // Check each format string to make sure it does not contain any - // tokens that need to be expanded. - each(tokens, function (baseToken) { - // strip escaped sequences - var format = data[baseToken].replace(/(\[[^\]]*\])/g, ''); - assert.equal(false, !!~format.indexOf(srchToken), - 'contains ' + srchToken + ' in ' + baseToken); - }); - }); - }); - - test('month parsing correctness', function (assert) { - var i, m; - - if (locale === 'tr') { - // I can't fix it :( - expect(0); - return; - } - function tester(format) { - var r; - r = moment(m.format(format), format); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format); - r = moment(m.format(format).toLocaleUpperCase(), format); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' upper'); - r = moment(m.format(format).toLocaleLowerCase(), format); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' lower'); - - r = moment(m.format(format), format, true); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' strict'); - r = moment(m.format(format).toLocaleUpperCase(), format, true); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' upper strict'); - r = moment(m.format(format).toLocaleLowerCase(), format, true); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' lower strict'); - } - - for (i = 0; i < 12; ++i) { - m = moment([2015, i, 15, 18]); - tester('MMM'); - tester('MMM.'); - tester('MMMM'); - tester('MMMM.'); - } - }); - - test('weekday parsing correctness', function (assert) { - var i, m; - - if (locale === 'tr' || locale === 'az' || locale === 'ro') { - // tr, az: There is a lower-case letter (ı), that converted to - // upper then lower changes to i - // ro: there is the letter ț which behaves weird under IE8 - expect(0); - return; - } - function tester(format) { - var r, baseMsg = 'weekday ' + m.weekday() + ' fmt ' + format + ' ' + m.toISOString(); - r = moment(m.format(format), format); - assert.equal(r.weekday(), m.weekday(), baseMsg); - r = moment(m.format(format).toLocaleUpperCase(), format); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' upper'); - r = moment(m.format(format).toLocaleLowerCase(), format); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' lower'); - - r = moment(m.format(format), format, true); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' strict'); - r = moment(m.format(format).toLocaleUpperCase(), format, true); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' upper strict'); - r = moment(m.format(format).toLocaleLowerCase(), format, true); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' lower strict'); - } - - for (i = 0; i < 7; ++i) { - m = moment.utc([2015, 0, i + 1, 18]); - tester('dd'); - tester('ddd'); - tester('dddd'); - } - }); - - test('valid localeData', function (assert) { - assert.equal(moment().localeData().months().length, 12, 'months should return 12 months'); - assert.equal(moment().localeData().monthsShort().length, 12, 'monthsShort should return 12 months'); - assert.equal(moment().localeData().weekdays().length, 7, 'weekdays should return 7 days'); - assert.equal(moment().localeData().weekdaysShort().length, 7, 'weekdaysShort should return 7 days'); - assert.equal(moment().localeData().weekdaysMin().length, 7, 'monthsShort should return 7 days'); - }); -} - -function setupDeprecationHandler(test, moment$$1, scope) { - test._expectedDeprecations = null; - test._observedDeprecations = null; - test._oldSupress = moment$$1.suppressDeprecationWarnings; - moment$$1.suppressDeprecationWarnings = true; - test.expectedDeprecations = function () { - test._expectedDeprecations = arguments; - test._observedDeprecations = []; - }; - moment$$1.deprecationHandler = function (name, msg) { - var deprecationId = matchedDeprecation(name, msg, test._expectedDeprecations); - if (deprecationId === -1) { - throw new Error('Unexpected deprecation thrown name=' + - name + ' msg=' + msg); - } - test._observedDeprecations[deprecationId] = 1; - }; -} - -function teardownDeprecationHandler(test, moment$$1, scope) { - moment$$1.suppressDeprecationWarnings = test._oldSupress; - - if (test._expectedDeprecations != null) { - var missedDeprecations = []; - each(test._expectedDeprecations, function (deprecationPattern, id) { - if (test._observedDeprecations[id] !== 1) { - missedDeprecations.push(deprecationPattern); - } - }); - if (missedDeprecations.length !== 0) { - throw new Error('Expected deprecation warnings did not happen: ' + - missedDeprecations.join(' ')); - } - } -} - -function matchedDeprecation(name, msg, deprecations) { - if (deprecations == null) { - return -1; - } - for (var i = 0; i < deprecations.length; ++i) { - if (name != null && name === deprecations[i]) { - return i; - } - if (msg != null && msg.substring(0, deprecations[i].length) === deprecations[i]) { - return i; - } - } - return -1; -} - -/*global QUnit:false*/ - -var test = QUnit.test; - -var expect = QUnit.expect; - - - -function localeModule (name, lifecycle) { - QUnit.module('locale:' + name, { - setup : function () { - moment.locale(name); - moment.createFromInputFallback = function (config) { - throw new Error('input not handled by moment: ' + config._i); - }; - setupDeprecationHandler(test, moment, 'locale'); - if (lifecycle && lifecycle.setup) { - lifecycle.setup(); - } - }, - teardown : function () { - moment.locale('en'); - teardownDeprecationHandler(test, moment, 'locale'); - if (lifecycle && lifecycle.teardown) { - lifecycle.teardown(); - } - } - }); - defineCommonLocaleTests(name, -1, -1); -} - -localeModule('tzm-latn'); - -test('parse', function (assert) { - var tests = 'innayr innayr_brˤayrˤ brˤayrˤ_marˤsˤ marˤsˤ_ibrir ibrir_mayyw mayyw_ywnyw ywnyw_ywlywz ywlywz_ɣwšt ɣwšt_šwtanbir šwtanbir_ktˤwbrˤ ktˤwbrˤ_nwwanbir nwwanbir_dwjnbir dwjnbir'.split('_'), i; - function equalTest(input, mmm, i) { - assert.equal(moment(input, mmm).month(), i, input + ' should be month ' + (i + 1)); - } - for (i = 0; i < 12; i++) { - tests[i] = tests[i].split(' '); - equalTest(tests[i][0], 'MMM', i); - equalTest(tests[i][1], 'MMM', i); - equalTest(tests[i][0], 'MMMM', i); - equalTest(tests[i][1], 'MMMM', i); - equalTest(tests[i][0].toLocaleLowerCase(), 'MMMM', i); - equalTest(tests[i][1].toLocaleLowerCase(), 'MMMM', i); - equalTest(tests[i][0].toLocaleUpperCase(), 'MMMM', i); - equalTest(tests[i][1].toLocaleUpperCase(), 'MMMM', i); - } -}); - -test('format', function (assert) { - var a = [ - ['dddd, MMMM Do YYYY, h:mm:ss a', 'asamas, brˤayrˤ 14 2010, 3:25:50 pm'], - ['ddd, hA', 'asamas, 3PM'], - ['M Mo MM MMMM MMM', '2 2 02 brˤayrˤ brˤayrˤ'], - ['YYYY YY', '2010 10'], - ['D Do DD', '14 14 14'], - ['d do dddd ddd dd', '0 0 asamas asamas asamas'], - ['DDD DDDo DDDD', '45 45 045'], - ['w wo ww', '8 8 08'], - ['h hh', '3 03'], - ['H HH', '15 15'], - ['m mm', '25 25'], - ['s ss', '50 50'], - ['a A', 'pm PM'], - ['[the] DDDo [day of the year]', 'the 45 day of the year'], - ['LTS', '15:25:50'], - ['L', '14/02/2010'], - ['LL', '14 brˤayrˤ 2010'], - ['LLL', '14 brˤayrˤ 2010 15:25'], - ['LLLL', 'asamas 14 brˤayrˤ 2010 15:25'], - ['l', '14/2/2010'], - ['ll', '14 brˤayrˤ 2010'], - ['lll', '14 brˤayrˤ 2010 15:25'], - ['llll', 'asamas 14 brˤayrˤ 2010 15:25'] - ], - b = moment(new Date(2010, 1, 14, 15, 25, 50, 125)), - i; - for (i = 0; i < a.length; i++) { - assert.equal(b.format(a[i][0]), a[i][1], a[i][0] + ' ---> ' + a[i][1]); - } -}); - -test('format ordinal', function (assert) { - assert.equal(moment([2011, 0, 1]).format('DDDo'), '1', '1'); - assert.equal(moment([2011, 0, 2]).format('DDDo'), '2', '2'); - assert.equal(moment([2011, 0, 3]).format('DDDo'), '3', '3'); - assert.equal(moment([2011, 0, 4]).format('DDDo'), '4', '4'); - assert.equal(moment([2011, 0, 5]).format('DDDo'), '5', '5'); - assert.equal(moment([2011, 0, 6]).format('DDDo'), '6', '6'); - assert.equal(moment([2011, 0, 7]).format('DDDo'), '7', '7'); - assert.equal(moment([2011, 0, 8]).format('DDDo'), '8', '8'); - assert.equal(moment([2011, 0, 9]).format('DDDo'), '9', '9'); - assert.equal(moment([2011, 0, 10]).format('DDDo'), '10', '10'); - - assert.equal(moment([2011, 0, 11]).format('DDDo'), '11', '11'); - assert.equal(moment([2011, 0, 12]).format('DDDo'), '12', '12'); - assert.equal(moment([2011, 0, 13]).format('DDDo'), '13', '13'); - assert.equal(moment([2011, 0, 14]).format('DDDo'), '14', '14'); - assert.equal(moment([2011, 0, 15]).format('DDDo'), '15', '15'); - assert.equal(moment([2011, 0, 16]).format('DDDo'), '16', '16'); - assert.equal(moment([2011, 0, 17]).format('DDDo'), '17', '17'); - assert.equal(moment([2011, 0, 18]).format('DDDo'), '18', '18'); - assert.equal(moment([2011, 0, 19]).format('DDDo'), '19', '19'); - assert.equal(moment([2011, 0, 20]).format('DDDo'), '20', '20'); - - assert.equal(moment([2011, 0, 21]).format('DDDo'), '21', '21'); - assert.equal(moment([2011, 0, 22]).format('DDDo'), '22', '22'); - assert.equal(moment([2011, 0, 23]).format('DDDo'), '23', '23'); - assert.equal(moment([2011, 0, 24]).format('DDDo'), '24', '24'); - assert.equal(moment([2011, 0, 25]).format('DDDo'), '25', '25'); - assert.equal(moment([2011, 0, 26]).format('DDDo'), '26', '26'); - assert.equal(moment([2011, 0, 27]).format('DDDo'), '27', '27'); - assert.equal(moment([2011, 0, 28]).format('DDDo'), '28', '28'); - assert.equal(moment([2011, 0, 29]).format('DDDo'), '29', '29'); - assert.equal(moment([2011, 0, 30]).format('DDDo'), '30', '30'); - - assert.equal(moment([2011, 0, 31]).format('DDDo'), '31', '31'); -}); - -test('format month', function (assert) { - var expected = 'innayr innayr_brˤayrˤ brˤayrˤ_marˤsˤ marˤsˤ_ibrir ibrir_mayyw mayyw_ywnyw ywnyw_ywlywz ywlywz_ɣwšt ɣwšt_šwtanbir šwtanbir_ktˤwbrˤ ktˤwbrˤ_nwwanbir nwwanbir_dwjnbir dwjnbir'.split('_'), i; - for (i = 0; i < expected.length; i++) { - assert.equal(moment([2011, i, 1]).format('MMMM MMM'), expected[i], expected[i]); - } -}); - -test('format week', function (assert) { - var expected = 'asamas asamas asamas_aynas aynas aynas_asinas asinas asinas_akras akras akras_akwas akwas akwas_asimwas asimwas asimwas_asiḍyas asiḍyas asiḍyas'.split('_'), i; - for (i = 0; i < expected.length; i++) { - assert.equal(moment([2011, 0, 2 + i]).format('dddd ddd dd'), expected[i], expected[i]); - } -}); - -test('from', function (assert) { - var start = moment([2007, 1, 28]); - assert.equal(start.from(moment([2007, 1, 28]).add({s: 44}), true), 'imik', '44 seconds = a few seconds'); - assert.equal(start.from(moment([2007, 1, 28]).add({s: 45}), true), 'minuḍ', '45 seconds = a minute'); - assert.equal(start.from(moment([2007, 1, 28]).add({s: 89}), true), 'minuḍ', '89 seconds = a minute'); - assert.equal(start.from(moment([2007, 1, 28]).add({s: 90}), true), '2 minuḍ', '90 seconds = 2 minutes'); - assert.equal(start.from(moment([2007, 1, 28]).add({m: 44}), true), '44 minuḍ', '44 minutes = 44 minutes'); - assert.equal(start.from(moment([2007, 1, 28]).add({m: 45}), true), 'saɛa', '45 minutes = an hour'); - assert.equal(start.from(moment([2007, 1, 28]).add({m: 89}), true), 'saɛa', '89 minutes = an hour'); - assert.equal(start.from(moment([2007, 1, 28]).add({m: 90}), true), '2 tassaɛin', '90 minutes = 2 hours'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 5}), true), '5 tassaɛin', '5 hours = 5 hours'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 21}), true), '21 tassaɛin', '21 hours = 21 hours'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 22}), true), 'ass', '22 hours = a day'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 35}), true), 'ass', '35 hours = a day'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 36}), true), '2 ossan', '36 hours = 2 days'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 1}), true), 'ass', '1 day = a day'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 5}), true), '5 ossan', '5 days = 5 days'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 25}), true), '25 ossan', '25 days = 25 days'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 26}), true), 'ayowr', '26 days = a month'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 30}), true), 'ayowr', '30 days = a month'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 43}), true), 'ayowr', '43 days = a month'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 46}), true), '2 iyyirn', '46 days = 2 months'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 74}), true), '2 iyyirn', '75 days = 2 months'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 76}), true), '3 iyyirn', '76 days = 3 months'); - assert.equal(start.from(moment([2007, 1, 28]).add({M: 1}), true), 'ayowr', '1 month = a month'); - assert.equal(start.from(moment([2007, 1, 28]).add({M: 5}), true), '5 iyyirn', '5 months = 5 months'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 345}), true), 'asgas', '345 days = a year'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 548}), true), '2 isgasn', '548 days = 2 years'); - assert.equal(start.from(moment([2007, 1, 28]).add({y: 1}), true), 'asgas', '1 year = a year'); - assert.equal(start.from(moment([2007, 1, 28]).add({y: 5}), true), '5 isgasn', '5 years = 5 years'); -}); - -test('suffix', function (assert) { - assert.equal(moment(30000).from(0), 'dadkh s yan imik', 'prefix'); - assert.equal(moment(0).from(30000), 'yan imik', 'suffix'); -}); - -test('now from now', function (assert) { - assert.equal(moment().fromNow(), 'yan imik', 'now from now should display as in the past'); -}); - -test('fromNow', function (assert) { - assert.equal(moment().add({s: 30}).fromNow(), 'dadkh s yan imik', 'in a few seconds'); - assert.equal(moment().add({d: 5}).fromNow(), 'dadkh s yan 5 ossan', 'in 5 days'); -}); - -test('calendar day', function (assert) { - var a = moment().hours(12).minutes(0).seconds(0); - - assert.equal(moment(a).calendar(), 'asdkh g 12:00', 'today at the same time'); - assert.equal(moment(a).add({m: 25}).calendar(), 'asdkh g 12:25', 'Now plus 25 min'); - assert.equal(moment(a).add({h: 1}).calendar(), 'asdkh g 13:00', 'Now plus 1 hour'); - assert.equal(moment(a).add({d: 1}).calendar(), 'aska g 12:00', 'tomorrow at the same time'); - assert.equal(moment(a).subtract({h: 1}).calendar(), 'asdkh g 11:00', 'Now minus 1 hour'); - assert.equal(moment(a).subtract({d: 1}).calendar(), 'assant g 12:00', 'yesterday at the same time'); -}); - -test('calendar next week', function (assert) { - var i, m; - for (i = 2; i < 7; i++) { - m = moment().add({d: i}); - assert.equal(m.calendar(), m.format('dddd [g] LT'), 'Today + ' + i + ' days current time'); - m.hours(0).minutes(0).seconds(0).milliseconds(0); - assert.equal(m.calendar(), m.format('dddd [g] LT'), 'Today + ' + i + ' days beginning of day'); - m.hours(23).minutes(59).seconds(59).milliseconds(999); - assert.equal(m.calendar(), m.format('dddd [g] LT'), 'Today + ' + i + ' days end of day'); - } -}); - -test('calendar last week', function (assert) { - var i, m; - for (i = 2; i < 7; i++) { - m = moment().subtract({d: i}); - assert.equal(m.calendar(), m.format('dddd [g] LT'), 'Today - ' + i + ' days current time'); - m.hours(0).minutes(0).seconds(0).milliseconds(0); - assert.equal(m.calendar(), m.format('dddd [g] LT'), 'Today - ' + i + ' days beginning of day'); - m.hours(23).minutes(59).seconds(59).milliseconds(999); - assert.equal(m.calendar(), m.format('dddd [g] LT'), 'Today - ' + i + ' days end of day'); - } -}); - -test('calendar all else', function (assert) { - var weeksAgo = moment().subtract({w: 1}), - weeksFromNow = moment().add({w: 1}); - - assert.equal(weeksAgo.calendar(), weeksAgo.format('L'), '1 week ago'); - assert.equal(weeksFromNow.calendar(), weeksFromNow.format('L'), 'in 1 week'); - - weeksAgo = moment().subtract({w: 2}); - weeksFromNow = moment().add({w: 2}); - - assert.equal(weeksAgo.calendar(), weeksAgo.format('L'), '2 weeks ago'); - assert.equal(weeksFromNow.calendar(), weeksFromNow.format('L'), 'in 2 weeks'); -}); - -test('weeks year starting sunday formatted', function (assert) { - assert.equal(moment([2011, 11, 31]).format('w ww wo'), '1 01 1', 'Dec 31 2011 should be week 1'); - assert.equal(moment([2012, 0, 6]).format('w ww wo'), '1 01 1', 'Jan 6 2012 should be week 1'); - assert.equal(moment([2012, 0, 7]).format('w ww wo'), '2 02 2', 'Jan 7 2012 should be week 2'); - assert.equal(moment([2012, 0, 13]).format('w ww wo'), '2 02 2', 'Jan 13 2012 should be week 2'); - assert.equal(moment([2012, 0, 14]).format('w ww wo'), '3 03 3', 'Jan 14 2012 should be week 3'); -}); - -}))); - - -;(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' - && typeof require === 'function' ? factory(require('../../moment')) : - typeof define === 'function' && define.amd ? define(['../../moment'], factory) : - factory(global.moment) -}(this, (function (moment) { 'use strict'; - -function each(array, callback) { - var i; - for (i = 0; i < array.length; i++) { - callback(array[i], i, array); - } -} - -function objectKeys(obj) { - if (Object.keys) { - return Object.keys(obj); - } else { - // IE8 - var res = [], i; - for (i in obj) { - if (obj.hasOwnProperty(i)) { - res.push(i); - } - } - return res; - } -} - -// Pick the first defined of two or three arguments. - -function defineCommonLocaleTests(locale, options) { - test('lenient day of month ordinal parsing', function (assert) { - var i, ordinalStr, testMoment; - for (i = 1; i <= 31; ++i) { - ordinalStr = moment([2014, 0, i]).format('YYYY MM Do'); - testMoment = moment(ordinalStr, 'YYYY MM Do'); - assert.equal(testMoment.year(), 2014, - 'lenient day of month ordinal parsing ' + i + ' year check'); - assert.equal(testMoment.month(), 0, - 'lenient day of month ordinal parsing ' + i + ' month check'); - assert.equal(testMoment.date(), i, - 'lenient day of month ordinal parsing ' + i + ' date check'); - } - }); - - test('lenient day of month ordinal parsing of number', function (assert) { - var i, testMoment; - for (i = 1; i <= 31; ++i) { - testMoment = moment('2014 01 ' + i, 'YYYY MM Do'); - assert.equal(testMoment.year(), 2014, - 'lenient day of month ordinal parsing of number ' + i + ' year check'); - assert.equal(testMoment.month(), 0, - 'lenient day of month ordinal parsing of number ' + i + ' month check'); - assert.equal(testMoment.date(), i, - 'lenient day of month ordinal parsing of number ' + i + ' date check'); - } - }); - - test('strict day of month ordinal parsing', function (assert) { - var i, ordinalStr, testMoment; - for (i = 1; i <= 31; ++i) { - ordinalStr = moment([2014, 0, i]).format('YYYY MM Do'); - testMoment = moment(ordinalStr, 'YYYY MM Do', true); - assert.ok(testMoment.isValid(), 'strict day of month ordinal parsing ' + i); - } - }); - - test('meridiem invariant', function (assert) { - var h, m, t1, t2; - for (h = 0; h < 24; ++h) { - for (m = 0; m < 60; m += 15) { - t1 = moment.utc([2000, 0, 1, h, m]); - t2 = moment.utc(t1.format('A h:mm'), 'A h:mm'); - assert.equal(t2.format('HH:mm'), t1.format('HH:mm'), - 'meridiem at ' + t1.format('HH:mm')); - } - } - }); - - test('date format correctness', function (assert) { - var data, tokens; - data = moment.localeData()._longDateFormat; - tokens = objectKeys(data); - each(tokens, function (srchToken) { - // Check each format string to make sure it does not contain any - // tokens that need to be expanded. - each(tokens, function (baseToken) { - // strip escaped sequences - var format = data[baseToken].replace(/(\[[^\]]*\])/g, ''); - assert.equal(false, !!~format.indexOf(srchToken), - 'contains ' + srchToken + ' in ' + baseToken); - }); - }); - }); - - test('month parsing correctness', function (assert) { - var i, m; - - if (locale === 'tr') { - // I can't fix it :( - expect(0); - return; - } - function tester(format) { - var r; - r = moment(m.format(format), format); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format); - r = moment(m.format(format).toLocaleUpperCase(), format); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' upper'); - r = moment(m.format(format).toLocaleLowerCase(), format); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' lower'); - - r = moment(m.format(format), format, true); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' strict'); - r = moment(m.format(format).toLocaleUpperCase(), format, true); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' upper strict'); - r = moment(m.format(format).toLocaleLowerCase(), format, true); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' lower strict'); - } - - for (i = 0; i < 12; ++i) { - m = moment([2015, i, 15, 18]); - tester('MMM'); - tester('MMM.'); - tester('MMMM'); - tester('MMMM.'); - } - }); - - test('weekday parsing correctness', function (assert) { - var i, m; - - if (locale === 'tr' || locale === 'az' || locale === 'ro') { - // tr, az: There is a lower-case letter (ı), that converted to - // upper then lower changes to i - // ro: there is the letter ț which behaves weird under IE8 - expect(0); - return; - } - function tester(format) { - var r, baseMsg = 'weekday ' + m.weekday() + ' fmt ' + format + ' ' + m.toISOString(); - r = moment(m.format(format), format); - assert.equal(r.weekday(), m.weekday(), baseMsg); - r = moment(m.format(format).toLocaleUpperCase(), format); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' upper'); - r = moment(m.format(format).toLocaleLowerCase(), format); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' lower'); - - r = moment(m.format(format), format, true); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' strict'); - r = moment(m.format(format).toLocaleUpperCase(), format, true); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' upper strict'); - r = moment(m.format(format).toLocaleLowerCase(), format, true); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' lower strict'); - } - - for (i = 0; i < 7; ++i) { - m = moment.utc([2015, 0, i + 1, 18]); - tester('dd'); - tester('ddd'); - tester('dddd'); - } - }); - - test('valid localeData', function (assert) { - assert.equal(moment().localeData().months().length, 12, 'months should return 12 months'); - assert.equal(moment().localeData().monthsShort().length, 12, 'monthsShort should return 12 months'); - assert.equal(moment().localeData().weekdays().length, 7, 'weekdays should return 7 days'); - assert.equal(moment().localeData().weekdaysShort().length, 7, 'weekdaysShort should return 7 days'); - assert.equal(moment().localeData().weekdaysMin().length, 7, 'monthsShort should return 7 days'); - }); -} - -function setupDeprecationHandler(test, moment$$1, scope) { - test._expectedDeprecations = null; - test._observedDeprecations = null; - test._oldSupress = moment$$1.suppressDeprecationWarnings; - moment$$1.suppressDeprecationWarnings = true; - test.expectedDeprecations = function () { - test._expectedDeprecations = arguments; - test._observedDeprecations = []; - }; - moment$$1.deprecationHandler = function (name, msg) { - var deprecationId = matchedDeprecation(name, msg, test._expectedDeprecations); - if (deprecationId === -1) { - throw new Error('Unexpected deprecation thrown name=' + - name + ' msg=' + msg); - } - test._observedDeprecations[deprecationId] = 1; - }; -} - -function teardownDeprecationHandler(test, moment$$1, scope) { - moment$$1.suppressDeprecationWarnings = test._oldSupress; - - if (test._expectedDeprecations != null) { - var missedDeprecations = []; - each(test._expectedDeprecations, function (deprecationPattern, id) { - if (test._observedDeprecations[id] !== 1) { - missedDeprecations.push(deprecationPattern); - } - }); - if (missedDeprecations.length !== 0) { - throw new Error('Expected deprecation warnings did not happen: ' + - missedDeprecations.join(' ')); - } - } -} - -function matchedDeprecation(name, msg, deprecations) { - if (deprecations == null) { - return -1; - } - for (var i = 0; i < deprecations.length; ++i) { - if (name != null && name === deprecations[i]) { - return i; - } - if (msg != null && msg.substring(0, deprecations[i].length) === deprecations[i]) { - return i; - } - } - return -1; -} - -/*global QUnit:false*/ - -var test = QUnit.test; - -var expect = QUnit.expect; - - - -function localeModule (name, lifecycle) { - QUnit.module('locale:' + name, { - setup : function () { - moment.locale(name); - moment.createFromInputFallback = function (config) { - throw new Error('input not handled by moment: ' + config._i); - }; - setupDeprecationHandler(test, moment, 'locale'); - if (lifecycle && lifecycle.setup) { - lifecycle.setup(); - } - }, - teardown : function () { - moment.locale('en'); - teardownDeprecationHandler(test, moment, 'locale'); - if (lifecycle && lifecycle.teardown) { - lifecycle.teardown(); - } - } - }); - defineCommonLocaleTests(name, -1, -1); -} - -localeModule('tzm'); - -test('parse', function (assert) { - var tests = 'ⵉⵏⵏⴰⵢⵔ ⵉⵏⵏⴰⵢⵔ_ⴱⵕⴰⵢⵕ ⴱⵕⴰⵢⵕ_ⵎⴰⵕⵚ ⵎⴰⵕⵚ_ⵉⴱⵔⵉⵔ ⵉⴱⵔⵉⵔ_ⵎⴰⵢⵢⵓ ⵎⴰⵢⵢⵓ_ⵢⵓⵏⵢⵓ ⵢⵓⵏⵢⵓ_ⵢⵓⵍⵢⵓⵣ ⵢⵓⵍⵢⵓⵣ_ⵖⵓⵛⵜ ⵖⵓⵛⵜ_ⵛⵓⵜⴰⵏⴱⵉⵔ ⵛⵓⵜⴰⵏⴱⵉⵔ_ⴽⵟⵓⴱⵕ ⴽⵟⵓⴱⵕ_ⵏⵓⵡⴰⵏⴱⵉⵔ ⵏⵓⵡⴰⵏⴱⵉⵔ_ⴷⵓⵊⵏⴱⵉⵔ ⴷⵓⵊⵏⴱⵉⵔ'.split('_'), i; - function equalTest(input, mmm, i) { - assert.equal(moment(input, mmm).month(), i, input + ' should be month ' + (i + 1)); - } - for (i = 0; i < 12; i++) { - tests[i] = tests[i].split(' '); - equalTest(tests[i][0], 'MMM', i); - equalTest(tests[i][1], 'MMM', i); - equalTest(tests[i][0], 'MMMM', i); - equalTest(tests[i][1], 'MMMM', i); - equalTest(tests[i][0].toLocaleLowerCase(), 'MMMM', i); - equalTest(tests[i][1].toLocaleLowerCase(), 'MMMM', i); - equalTest(tests[i][0].toLocaleUpperCase(), 'MMMM', i); - equalTest(tests[i][1].toLocaleUpperCase(), 'MMMM', i); - } -}); - -test('format', function (assert) { - var a = [ - ['dddd, MMMM Do YYYY, h:mm:ss a', 'ⴰⵙⴰⵎⴰⵙ, ⴱⵕⴰⵢⵕ 14 2010, 3:25:50 pm'], - ['ddd, hA', 'ⴰⵙⴰⵎⴰⵙ, 3PM'], - ['M Mo MM MMMM MMM', '2 2 02 ⴱⵕⴰⵢⵕ ⴱⵕⴰⵢⵕ'], - ['YYYY YY', '2010 10'], - ['D Do DD', '14 14 14'], - ['d do dddd ddd dd', '0 0 ⴰⵙⴰⵎⴰⵙ ⴰⵙⴰⵎⴰⵙ ⴰⵙⴰⵎⴰⵙ'], - ['DDD DDDo DDDD', '45 45 045'], - ['w wo ww', '8 8 08'], - ['h hh', '3 03'], - ['H HH', '15 15'], - ['m mm', '25 25'], - ['s ss', '50 50'], - ['a A', 'pm PM'], - ['[the] DDDo [day of the year]', 'the 45 day of the year'], - ['LTS', '15:25:50'], - ['L', '14/02/2010'], - ['LL', '14 ⴱⵕⴰⵢⵕ 2010'], - ['LLL', '14 ⴱⵕⴰⵢⵕ 2010 15:25'], - ['LLLL', 'ⴰⵙⴰⵎⴰⵙ 14 ⴱⵕⴰⵢⵕ 2010 15:25'], - ['l', '14/2/2010'], - ['ll', '14 ⴱⵕⴰⵢⵕ 2010'], - ['lll', '14 ⴱⵕⴰⵢⵕ 2010 15:25'], - ['llll', 'ⴰⵙⴰⵎⴰⵙ 14 ⴱⵕⴰⵢⵕ 2010 15:25'] - ], - b = moment(new Date(2010, 1, 14, 15, 25, 50, 125)), - i; - for (i = 0; i < a.length; i++) { - assert.equal(b.format(a[i][0]), a[i][1], a[i][0] + ' ---> ' + a[i][1]); - } -}); - -test('format ordinal', function (assert) { - assert.equal(moment([2011, 0, 1]).format('DDDo'), '1', '1'); - assert.equal(moment([2011, 0, 2]).format('DDDo'), '2', '2'); - assert.equal(moment([2011, 0, 3]).format('DDDo'), '3', '3'); - assert.equal(moment([2011, 0, 4]).format('DDDo'), '4', '4'); - assert.equal(moment([2011, 0, 5]).format('DDDo'), '5', '5'); - assert.equal(moment([2011, 0, 6]).format('DDDo'), '6', '6'); - assert.equal(moment([2011, 0, 7]).format('DDDo'), '7', '7'); - assert.equal(moment([2011, 0, 8]).format('DDDo'), '8', '8'); - assert.equal(moment([2011, 0, 9]).format('DDDo'), '9', '9'); - assert.equal(moment([2011, 0, 10]).format('DDDo'), '10', '10'); - - assert.equal(moment([2011, 0, 11]).format('DDDo'), '11', '11'); - assert.equal(moment([2011, 0, 12]).format('DDDo'), '12', '12'); - assert.equal(moment([2011, 0, 13]).format('DDDo'), '13', '13'); - assert.equal(moment([2011, 0, 14]).format('DDDo'), '14', '14'); - assert.equal(moment([2011, 0, 15]).format('DDDo'), '15', '15'); - assert.equal(moment([2011, 0, 16]).format('DDDo'), '16', '16'); - assert.equal(moment([2011, 0, 17]).format('DDDo'), '17', '17'); - assert.equal(moment([2011, 0, 18]).format('DDDo'), '18', '18'); - assert.equal(moment([2011, 0, 19]).format('DDDo'), '19', '19'); - assert.equal(moment([2011, 0, 20]).format('DDDo'), '20', '20'); - - assert.equal(moment([2011, 0, 21]).format('DDDo'), '21', '21'); - assert.equal(moment([2011, 0, 22]).format('DDDo'), '22', '22'); - assert.equal(moment([2011, 0, 23]).format('DDDo'), '23', '23'); - assert.equal(moment([2011, 0, 24]).format('DDDo'), '24', '24'); - assert.equal(moment([2011, 0, 25]).format('DDDo'), '25', '25'); - assert.equal(moment([2011, 0, 26]).format('DDDo'), '26', '26'); - assert.equal(moment([2011, 0, 27]).format('DDDo'), '27', '27'); - assert.equal(moment([2011, 0, 28]).format('DDDo'), '28', '28'); - assert.equal(moment([2011, 0, 29]).format('DDDo'), '29', '29'); - assert.equal(moment([2011, 0, 30]).format('DDDo'), '30', '30'); - - assert.equal(moment([2011, 0, 31]).format('DDDo'), '31', '31'); -}); - -test('format month', function (assert) { - var expected = 'ⵉⵏⵏⴰⵢⵔ ⵉⵏⵏⴰⵢⵔ_ⴱⵕⴰⵢⵕ ⴱⵕⴰⵢⵕ_ⵎⴰⵕⵚ ⵎⴰⵕⵚ_ⵉⴱⵔⵉⵔ ⵉⴱⵔⵉⵔ_ⵎⴰⵢⵢⵓ ⵎⴰⵢⵢⵓ_ⵢⵓⵏⵢⵓ ⵢⵓⵏⵢⵓ_ⵢⵓⵍⵢⵓⵣ ⵢⵓⵍⵢⵓⵣ_ⵖⵓⵛⵜ ⵖⵓⵛⵜ_ⵛⵓⵜⴰⵏⴱⵉⵔ ⵛⵓⵜⴰⵏⴱⵉⵔ_ⴽⵟⵓⴱⵕ ⴽⵟⵓⴱⵕ_ⵏⵓⵡⴰⵏⴱⵉⵔ ⵏⵓⵡⴰⵏⴱⵉⵔ_ⴷⵓⵊⵏⴱⵉⵔ ⴷⵓⵊⵏⴱⵉⵔ'.split('_'), i; - for (i = 0; i < expected.length; i++) { - assert.equal(moment([2011, i, 1]).format('MMMM MMM'), expected[i], expected[i]); - } -}); - -test('format week', function (assert) { - var expected = 'ⴰⵙⴰⵎⴰⵙ ⴰⵙⴰⵎⴰⵙ ⴰⵙⴰⵎⴰⵙ_ⴰⵢⵏⴰⵙ ⴰⵢⵏⴰⵙ ⴰⵢⵏⴰⵙ_ⴰⵙⵉⵏⴰⵙ ⴰⵙⵉⵏⴰⵙ ⴰⵙⵉⵏⴰⵙ_ⴰⴽⵔⴰⵙ ⴰⴽⵔⴰⵙ ⴰⴽⵔⴰⵙ_ⴰⴽⵡⴰⵙ ⴰⴽⵡⴰⵙ ⴰⴽⵡⴰⵙ_ⴰⵙⵉⵎⵡⴰⵙ ⴰⵙⵉⵎⵡⴰⵙ ⴰⵙⵉⵎⵡⴰⵙ_ⴰⵙⵉⴹⵢⴰⵙ ⴰⵙⵉⴹⵢⴰⵙ ⴰⵙⵉⴹⵢⴰⵙ'.split('_'), i; - for (i = 0; i < expected.length; i++) { - assert.equal(moment([2011, 0, 2 + i]).format('dddd ddd dd'), expected[i], expected[i]); - } -}); - -test('from', function (assert) { - var start = moment([2007, 1, 28]); - assert.equal(start.from(moment([2007, 1, 28]).add({s: 44}), true), 'ⵉⵎⵉⴽ', '44 seconds = a few seconds'); - assert.equal(start.from(moment([2007, 1, 28]).add({s: 45}), true), 'ⵎⵉⵏⵓⴺ', '45 seconds = a minute'); - assert.equal(start.from(moment([2007, 1, 28]).add({s: 89}), true), 'ⵎⵉⵏⵓⴺ', '89 seconds = a minute'); - assert.equal(start.from(moment([2007, 1, 28]).add({s: 90}), true), '2 ⵎⵉⵏⵓⴺ', '90 seconds = 2 minutes'); - assert.equal(start.from(moment([2007, 1, 28]).add({m: 44}), true), '44 ⵎⵉⵏⵓⴺ', '44 minutes = 44 minutes'); - assert.equal(start.from(moment([2007, 1, 28]).add({m: 45}), true), 'ⵙⴰⵄⴰ', '45 minutes = an hour'); - assert.equal(start.from(moment([2007, 1, 28]).add({m: 89}), true), 'ⵙⴰⵄⴰ', '89 minutes = an hour'); - assert.equal(start.from(moment([2007, 1, 28]).add({m: 90}), true), '2 ⵜⴰⵙⵙⴰⵄⵉⵏ', '90 minutes = 2 hours'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 5}), true), '5 ⵜⴰⵙⵙⴰⵄⵉⵏ', '5 hours = 5 hours'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 21}), true), '21 ⵜⴰⵙⵙⴰⵄⵉⵏ', '21 hours = 21 hours'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 22}), true), 'ⴰⵙⵙ', '22 hours = a day'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 35}), true), 'ⴰⵙⵙ', '35 hours = a day'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 36}), true), '2 oⵙⵙⴰⵏ', '36 hours = 2 days'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 1}), true), 'ⴰⵙⵙ', '1 day = a day'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 5}), true), '5 oⵙⵙⴰⵏ', '5 days = 5 days'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 25}), true), '25 oⵙⵙⴰⵏ', '25 days = 25 days'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 26}), true), 'ⴰⵢoⵓⵔ', '26 days = a month'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 30}), true), 'ⴰⵢoⵓⵔ', '30 days = a month'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 43}), true), 'ⴰⵢoⵓⵔ', '43 days = a month'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 46}), true), '2 ⵉⵢⵢⵉⵔⵏ', '46 days = 2 months'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 74}), true), '2 ⵉⵢⵢⵉⵔⵏ', '75 days = 2 months'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 76}), true), '3 ⵉⵢⵢⵉⵔⵏ', '76 days = 3 months'); - assert.equal(start.from(moment([2007, 1, 28]).add({M: 1}), true), 'ⴰⵢoⵓⵔ', '1 month = a month'); - assert.equal(start.from(moment([2007, 1, 28]).add({M: 5}), true), '5 ⵉⵢⵢⵉⵔⵏ', '5 months = 5 months'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 345}), true), 'ⴰⵙⴳⴰⵙ', '345 days = a year'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 548}), true), '2 ⵉⵙⴳⴰⵙⵏ', '548 days = 2 years'); - assert.equal(start.from(moment([2007, 1, 28]).add({y: 1}), true), 'ⴰⵙⴳⴰⵙ', '1 year = a year'); - assert.equal(start.from(moment([2007, 1, 28]).add({y: 5}), true), '5 ⵉⵙⴳⴰⵙⵏ', '5 years = 5 years'); -}); - -test('suffix', function (assert) { - assert.equal(moment(30000).from(0), 'ⴷⴰⴷⵅ ⵙ ⵢⴰⵏ ⵉⵎⵉⴽ', 'prefix'); - assert.equal(moment(0).from(30000), 'ⵢⴰⵏ ⵉⵎⵉⴽ', 'suffix'); -}); - -test('now from now', function (assert) { - assert.equal(moment().fromNow(), 'ⵢⴰⵏ ⵉⵎⵉⴽ', 'now from now should display as in the past'); -}); - -test('fromNow', function (assert) { - assert.equal(moment().add({s: 30}).fromNow(), 'ⴷⴰⴷⵅ ⵙ ⵢⴰⵏ ⵉⵎⵉⴽ', 'in a few seconds'); - assert.equal(moment().add({d: 5}).fromNow(), 'ⴷⴰⴷⵅ ⵙ ⵢⴰⵏ 5 oⵙⵙⴰⵏ', 'in 5 days'); -}); - -test('calendar day', function (assert) { - var a = moment().hours(12).minutes(0).seconds(0); - - assert.equal(moment(a).calendar(), 'ⴰⵙⴷⵅ ⴴ 12:00', 'today at the same time'); - assert.equal(moment(a).add({m: 25}).calendar(), 'ⴰⵙⴷⵅ ⴴ 12:25', 'Now plus 25 min'); - assert.equal(moment(a).add({h: 1}).calendar(), 'ⴰⵙⴷⵅ ⴴ 13:00', 'Now plus 1 hour'); - assert.equal(moment(a).add({d: 1}).calendar(), 'ⴰⵙⴽⴰ ⴴ 12:00', 'tomorrow at the same time'); - assert.equal(moment(a).subtract({h: 1}).calendar(), 'ⴰⵙⴷⵅ ⴴ 11:00', 'Now minus 1 hour'); - assert.equal(moment(a).subtract({d: 1}).calendar(), 'ⴰⵚⴰⵏⵜ ⴴ 12:00', 'yesterday at the same time'); -}); - -test('calendar next week', function (assert) { - var i, m; - for (i = 2; i < 7; i++) { - m = moment().add({d: i}); - assert.equal(m.calendar(), m.format('dddd [ⴴ] LT'), 'Today + ' + i + ' days current time'); - m.hours(0).minutes(0).seconds(0).milliseconds(0); - assert.equal(m.calendar(), m.format('dddd [ⴴ] LT'), 'Today + ' + i + ' days beginning of day'); - m.hours(23).minutes(59).seconds(59).milliseconds(999); - assert.equal(m.calendar(), m.format('dddd [ⴴ] LT'), 'Today + ' + i + ' days end of day'); - } -}); - -test('calendar last week', function (assert) { - var i, m; - for (i = 2; i < 7; i++) { - m = moment().subtract({d: i}); - assert.equal(m.calendar(), m.format('dddd [ⴴ] LT'), 'Today - ' + i + ' days current time'); - m.hours(0).minutes(0).seconds(0).milliseconds(0); - assert.equal(m.calendar(), m.format('dddd [ⴴ] LT'), 'Today - ' + i + ' days beginning of day'); - m.hours(23).minutes(59).seconds(59).milliseconds(999); - assert.equal(m.calendar(), m.format('dddd [ⴴ] LT'), 'Today - ' + i + ' days end of day'); - } -}); - -test('calendar all else', function (assert) { - var weeksAgo = moment().subtract({w: 1}), - weeksFromNow = moment().add({w: 1}); - - assert.equal(weeksAgo.calendar(), weeksAgo.format('L'), '1 week ago'); - assert.equal(weeksFromNow.calendar(), weeksFromNow.format('L'), 'in 1 week'); - - weeksAgo = moment().subtract({w: 2}); - weeksFromNow = moment().add({w: 2}); - - assert.equal(weeksAgo.calendar(), weeksAgo.format('L'), '2 weeks ago'); - assert.equal(weeksFromNow.calendar(), weeksFromNow.format('L'), 'in 2 weeks'); -}); - -test('weeks year starting sunday formatted', function (assert) { - assert.equal(moment([2011, 11, 31]).format('w ww wo'), '1 01 1', 'Dec 31 2011 should be week 1'); - assert.equal(moment([2012, 0, 6]).format('w ww wo'), '1 01 1', 'Jan 6 2012 should be week 1'); - assert.equal(moment([2012, 0, 7]).format('w ww wo'), '2 02 2', 'Jan 7 2012 should be week 2'); - assert.equal(moment([2012, 0, 13]).format('w ww wo'), '2 02 2', 'Jan 13 2012 should be week 2'); - assert.equal(moment([2012, 0, 14]).format('w ww wo'), '3 03 3', 'Jan 14 2012 should be week 3'); -}); - -}))); - - -;(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' - && typeof require === 'function' ? factory(require('../../moment')) : - typeof define === 'function' && define.amd ? define(['../../moment'], factory) : - factory(global.moment) -}(this, (function (moment) { 'use strict'; - -function each(array, callback) { - var i; - for (i = 0; i < array.length; i++) { - callback(array[i], i, array); - } -} - -function objectKeys(obj) { - if (Object.keys) { - return Object.keys(obj); - } else { - // IE8 - var res = [], i; - for (i in obj) { - if (obj.hasOwnProperty(i)) { - res.push(i); - } - } - return res; - } -} - -// Pick the first defined of two or three arguments. - -function defineCommonLocaleTests(locale, options) { - test('lenient day of month ordinal parsing', function (assert) { - var i, ordinalStr, testMoment; - for (i = 1; i <= 31; ++i) { - ordinalStr = moment([2014, 0, i]).format('YYYY MM Do'); - testMoment = moment(ordinalStr, 'YYYY MM Do'); - assert.equal(testMoment.year(), 2014, - 'lenient day of month ordinal parsing ' + i + ' year check'); - assert.equal(testMoment.month(), 0, - 'lenient day of month ordinal parsing ' + i + ' month check'); - assert.equal(testMoment.date(), i, - 'lenient day of month ordinal parsing ' + i + ' date check'); - } - }); - - test('lenient day of month ordinal parsing of number', function (assert) { - var i, testMoment; - for (i = 1; i <= 31; ++i) { - testMoment = moment('2014 01 ' + i, 'YYYY MM Do'); - assert.equal(testMoment.year(), 2014, - 'lenient day of month ordinal parsing of number ' + i + ' year check'); - assert.equal(testMoment.month(), 0, - 'lenient day of month ordinal parsing of number ' + i + ' month check'); - assert.equal(testMoment.date(), i, - 'lenient day of month ordinal parsing of number ' + i + ' date check'); - } - }); - - test('strict day of month ordinal parsing', function (assert) { - var i, ordinalStr, testMoment; - for (i = 1; i <= 31; ++i) { - ordinalStr = moment([2014, 0, i]).format('YYYY MM Do'); - testMoment = moment(ordinalStr, 'YYYY MM Do', true); - assert.ok(testMoment.isValid(), 'strict day of month ordinal parsing ' + i); - } - }); - - test('meridiem invariant', function (assert) { - var h, m, t1, t2; - for (h = 0; h < 24; ++h) { - for (m = 0; m < 60; m += 15) { - t1 = moment.utc([2000, 0, 1, h, m]); - t2 = moment.utc(t1.format('A h:mm'), 'A h:mm'); - assert.equal(t2.format('HH:mm'), t1.format('HH:mm'), - 'meridiem at ' + t1.format('HH:mm')); - } - } - }); - - test('date format correctness', function (assert) { - var data, tokens; - data = moment.localeData()._longDateFormat; - tokens = objectKeys(data); - each(tokens, function (srchToken) { - // Check each format string to make sure it does not contain any - // tokens that need to be expanded. - each(tokens, function (baseToken) { - // strip escaped sequences - var format = data[baseToken].replace(/(\[[^\]]*\])/g, ''); - assert.equal(false, !!~format.indexOf(srchToken), - 'contains ' + srchToken + ' in ' + baseToken); - }); - }); - }); - - test('month parsing correctness', function (assert) { - var i, m; - - if (locale === 'tr') { - // I can't fix it :( - expect(0); - return; - } - function tester(format) { - var r; - r = moment(m.format(format), format); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format); - r = moment(m.format(format).toLocaleUpperCase(), format); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' upper'); - r = moment(m.format(format).toLocaleLowerCase(), format); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' lower'); - - r = moment(m.format(format), format, true); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' strict'); - r = moment(m.format(format).toLocaleUpperCase(), format, true); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' upper strict'); - r = moment(m.format(format).toLocaleLowerCase(), format, true); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' lower strict'); - } - - for (i = 0; i < 12; ++i) { - m = moment([2015, i, 15, 18]); - tester('MMM'); - tester('MMM.'); - tester('MMMM'); - tester('MMMM.'); - } - }); - - test('weekday parsing correctness', function (assert) { - var i, m; - - if (locale === 'tr' || locale === 'az' || locale === 'ro') { - // tr, az: There is a lower-case letter (ı), that converted to - // upper then lower changes to i - // ro: there is the letter ț which behaves weird under IE8 - expect(0); - return; - } - function tester(format) { - var r, baseMsg = 'weekday ' + m.weekday() + ' fmt ' + format + ' ' + m.toISOString(); - r = moment(m.format(format), format); - assert.equal(r.weekday(), m.weekday(), baseMsg); - r = moment(m.format(format).toLocaleUpperCase(), format); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' upper'); - r = moment(m.format(format).toLocaleLowerCase(), format); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' lower'); - - r = moment(m.format(format), format, true); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' strict'); - r = moment(m.format(format).toLocaleUpperCase(), format, true); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' upper strict'); - r = moment(m.format(format).toLocaleLowerCase(), format, true); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' lower strict'); - } - - for (i = 0; i < 7; ++i) { - m = moment.utc([2015, 0, i + 1, 18]); - tester('dd'); - tester('ddd'); - tester('dddd'); - } - }); - - test('valid localeData', function (assert) { - assert.equal(moment().localeData().months().length, 12, 'months should return 12 months'); - assert.equal(moment().localeData().monthsShort().length, 12, 'monthsShort should return 12 months'); - assert.equal(moment().localeData().weekdays().length, 7, 'weekdays should return 7 days'); - assert.equal(moment().localeData().weekdaysShort().length, 7, 'weekdaysShort should return 7 days'); - assert.equal(moment().localeData().weekdaysMin().length, 7, 'monthsShort should return 7 days'); - }); -} - -function setupDeprecationHandler(test, moment$$1, scope) { - test._expectedDeprecations = null; - test._observedDeprecations = null; - test._oldSupress = moment$$1.suppressDeprecationWarnings; - moment$$1.suppressDeprecationWarnings = true; - test.expectedDeprecations = function () { - test._expectedDeprecations = arguments; - test._observedDeprecations = []; - }; - moment$$1.deprecationHandler = function (name, msg) { - var deprecationId = matchedDeprecation(name, msg, test._expectedDeprecations); - if (deprecationId === -1) { - throw new Error('Unexpected deprecation thrown name=' + - name + ' msg=' + msg); - } - test._observedDeprecations[deprecationId] = 1; - }; -} - -function teardownDeprecationHandler(test, moment$$1, scope) { - moment$$1.suppressDeprecationWarnings = test._oldSupress; - - if (test._expectedDeprecations != null) { - var missedDeprecations = []; - each(test._expectedDeprecations, function (deprecationPattern, id) { - if (test._observedDeprecations[id] !== 1) { - missedDeprecations.push(deprecationPattern); - } - }); - if (missedDeprecations.length !== 0) { - throw new Error('Expected deprecation warnings did not happen: ' + - missedDeprecations.join(' ')); - } - } -} - -function matchedDeprecation(name, msg, deprecations) { - if (deprecations == null) { - return -1; - } - for (var i = 0; i < deprecations.length; ++i) { - if (name != null && name === deprecations[i]) { - return i; - } - if (msg != null && msg.substring(0, deprecations[i].length) === deprecations[i]) { - return i; - } - } - return -1; -} - -/*global QUnit:false*/ - -var test = QUnit.test; - -var expect = QUnit.expect; - - - -function localeModule (name, lifecycle) { - QUnit.module('locale:' + name, { - setup : function () { - moment.locale(name); - moment.createFromInputFallback = function (config) { - throw new Error('input not handled by moment: ' + config._i); - }; - setupDeprecationHandler(test, moment, 'locale'); - if (lifecycle && lifecycle.setup) { - lifecycle.setup(); - } - }, - teardown : function () { - moment.locale('en'); - teardownDeprecationHandler(test, moment, 'locale'); - if (lifecycle && lifecycle.teardown) { - lifecycle.teardown(); - } - } - }); - defineCommonLocaleTests(name, -1, -1); -} - -localeModule('uk'); - -test('parse', function (assert) { - var tests = 'січень січ_лютий лют_березень бер_квітень квіт_травень трав_червень черв_липень лип_серпень серп_вересень вер_жовтень жовт_листопад лист_грудень груд'.split('_'), i; - function equalTest(input, mmm, i) { - assert.equal(moment(input, mmm).month(), i, input + ' should be month ' + (i + 1)); - } - for (i = 0; i < 12; i++) { - tests[i] = tests[i].split(' '); - equalTest(tests[i][0], 'MMM', i); - equalTest(tests[i][1], 'MMM', i); - equalTest(tests[i][0], 'MMMM', i); - equalTest(tests[i][1], 'MMMM', i); - equalTest(tests[i][0].toLocaleLowerCase(), 'MMMM', i); - equalTest(tests[i][1].toLocaleLowerCase(), 'MMMM', i); - equalTest(tests[i][0].toLocaleUpperCase(), 'MMMM', i); - equalTest(tests[i][1].toLocaleUpperCase(), 'MMMM', i); - } -}); - -test('format', function (assert) { - var a = [ - ['dddd, Do MMMM YYYY, HH:mm:ss', 'неділя, 14-го лютого 2010, 15:25:50'], - ['ddd, h A', 'нд, 3 дня'], - ['M Mo MM MMMM MMM', '2 2-й 02 лютий лют'], - ['YYYY YY', '2010 10'], - ['D Do DD', '14 14-го 14'], - ['d do dddd ddd dd', '0 0-й неділя нд нд'], - ['DDD DDDo DDDD', '45 45-й 045'], - ['w wo ww', '7 7-й 07'], - ['h hh', '3 03'], - ['H HH', '15 15'], - ['m mm', '25 25'], - ['s ss', '50 50'], - ['a A', 'дня дня'], - ['DDDo [день року]', '45-й день року'], - ['LTS', '15:25:50'], - ['L', '14.02.2010'], - ['LL', '14 лютого 2010 р.'], - ['LLL', '14 лютого 2010 р., 15:25'], - ['LLLL', 'неділя, 14 лютого 2010 р., 15:25'] - ], - b = moment(new Date(2010, 1, 14, 15, 25, 50, 125)), - i; - for (i = 0; i < a.length; i++) { - assert.equal(b.format(a[i][0]), a[i][1], a[i][0] + ' ---> ' + a[i][1]); - } -}); - -test('format meridiem', function (assert) { - assert.equal(moment([2012, 11, 28, 0, 0]).format('A'), 'ночі', 'night'); - assert.equal(moment([2012, 11, 28, 3, 59]).format('A'), 'ночі', 'night'); - assert.equal(moment([2012, 11, 28, 4, 0]).format('A'), 'ранку', 'morning'); - assert.equal(moment([2012, 11, 28, 11, 59]).format('A'), 'ранку', 'morning'); - assert.equal(moment([2012, 11, 28, 12, 0]).format('A'), 'дня', 'afternoon'); - assert.equal(moment([2012, 11, 28, 16, 59]).format('A'), 'дня', 'afternoon'); - assert.equal(moment([2012, 11, 28, 17, 0]).format('A'), 'вечора', 'evening'); - assert.equal(moment([2012, 11, 28, 23, 59]).format('A'), 'вечора', 'evening'); -}); - -test('format ordinal', function (assert) { - assert.equal(moment([2011, 0, 1]).format('DDDo'), '1-й', '1-й'); - assert.equal(moment([2011, 0, 2]).format('DDDo'), '2-й', '2-й'); - assert.equal(moment([2011, 0, 3]).format('DDDo'), '3-й', '3-й'); - assert.equal(moment([2011, 0, 4]).format('DDDo'), '4-й', '4-й'); - assert.equal(moment([2011, 0, 5]).format('DDDo'), '5-й', '5-й'); - assert.equal(moment([2011, 0, 6]).format('DDDo'), '6-й', '6-й'); - assert.equal(moment([2011, 0, 7]).format('DDDo'), '7-й', '7-й'); - assert.equal(moment([2011, 0, 8]).format('DDDo'), '8-й', '8-й'); - assert.equal(moment([2011, 0, 9]).format('DDDo'), '9-й', '9-й'); - assert.equal(moment([2011, 0, 10]).format('DDDo'), '10-й', '10-й'); - - assert.equal(moment([2011, 0, 11]).format('DDDo'), '11-й', '11-й'); - assert.equal(moment([2011, 0, 12]).format('DDDo'), '12-й', '12-й'); - assert.equal(moment([2011, 0, 13]).format('DDDo'), '13-й', '13-й'); - assert.equal(moment([2011, 0, 14]).format('DDDo'), '14-й', '14-й'); - assert.equal(moment([2011, 0, 15]).format('DDDo'), '15-й', '15-й'); - assert.equal(moment([2011, 0, 16]).format('DDDo'), '16-й', '16-й'); - assert.equal(moment([2011, 0, 17]).format('DDDo'), '17-й', '17-й'); - assert.equal(moment([2011, 0, 18]).format('DDDo'), '18-й', '18-й'); - assert.equal(moment([2011, 0, 19]).format('DDDo'), '19-й', '19-й'); - assert.equal(moment([2011, 0, 20]).format('DDDo'), '20-й', '20-й'); - - assert.equal(moment([2011, 0, 21]).format('DDDo'), '21-й', '21-й'); - assert.equal(moment([2011, 0, 22]).format('DDDo'), '22-й', '22-й'); - assert.equal(moment([2011, 0, 23]).format('DDDo'), '23-й', '23-й'); - assert.equal(moment([2011, 0, 24]).format('DDDo'), '24-й', '24-й'); - assert.equal(moment([2011, 0, 25]).format('DDDo'), '25-й', '25-й'); - assert.equal(moment([2011, 0, 26]).format('DDDo'), '26-й', '26-й'); - assert.equal(moment([2011, 0, 27]).format('DDDo'), '27-й', '27-й'); - assert.equal(moment([2011, 0, 28]).format('DDDo'), '28-й', '28-й'); - assert.equal(moment([2011, 0, 29]).format('DDDo'), '29-й', '29-й'); - assert.equal(moment([2011, 0, 30]).format('DDDo'), '30-й', '30-й'); - - assert.equal(moment([2011, 0, 31]).format('DDDo'), '31-й', '31-й'); -}); - -test('format month', function (assert) { - var expected = 'січень січ_лютий лют_березень бер_квітень квіт_травень трав_червень черв_липень лип_серпень серп_вересень вер_жовтень жовт_листопад лист_грудень груд'.split('_'), i; - for (i = 0; i < expected.length; i++) { - assert.equal(moment([2011, i, 1]).format('MMMM MMM'), expected[i], expected[i]); - } -}); - -test('format month case', function (assert) { - var months = { - 'nominative': 'січень_лютий_березень_квітень_травень_червень_липень_серпень_вересень_жовтень_листопад_грудень'.split('_'), - 'accusative': 'січня_лютого_березня_квітня_травня_червня_липня_серпня_вересня_жовтня_листопада_грудня'.split('_') - }, i; - for (i = 0; i < 12; i++) { - assert.equal(moment([2011, i, 1]).format('D MMMM'), '1 ' + months.accusative[i], '1 ' + months.accusative[i]); - assert.equal(moment([2011, i, 1]).format('MMMM'), months.nominative[i], '1 ' + months.nominative[i]); - } -}); - -test('format week', function (assert) { - var expected = 'неділя нд нд_понеділок пн пн_вівторок вт вт_середа ср ср_четвер чт чт_п’ятниця пт пт_субота сб сб'.split('_'), i; - for (i = 0; i < expected.length; i++) { - assert.equal(moment([2011, 0, 2 + i]).format('dddd ddd dd'), expected[i], expected[i]); - } -}); - -test('from', function (assert) { - var start = moment([2007, 1, 28]); - assert.equal(start.from(moment([2007, 1, 28]).add({s: 44}), true), 'декілька секунд', '44 seconds = seconds'); - assert.equal(start.from(moment([2007, 1, 28]).add({s: 45}), true), 'хвилина', '45 seconds = a minute'); - assert.equal(start.from(moment([2007, 1, 28]).add({s: 89}), true), 'хвилина', '89 seconds = a minute'); - assert.equal(start.from(moment([2007, 1, 28]).add({s: 90}), true), '2 хвилини', '90 seconds = 2 minutes'); - assert.equal(start.from(moment([2007, 1, 28]).add({m: 44}), true), '44 хвилини', '44 minutes = 44 minutes'); - assert.equal(start.from(moment([2007, 1, 28]).add({m: 45}), true), 'годину', '45 minutes = an hour'); - assert.equal(start.from(moment([2007, 1, 28]).add({m: 89}), true), 'годину', '89 minutes = an hour'); - assert.equal(start.from(moment([2007, 1, 28]).add({m: 90}), true), '2 години', '90 minutes = 2 hours'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 5}), true), '5 годин', '5 hours = 5 hours'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 21}), true), '21 година', '21 hours = 21 hours'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 22}), true), 'день', '22 hours = a day'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 35}), true), 'день', '35 hours = a day'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 36}), true), '2 дні', '36 hours = 2 days'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 1}), true), 'день', '1 day = a day'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 5}), true), '5 днів', '5 days = 5 days'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 11}), true), '11 днів', '11 days = 11 days'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 21}), true), '21 день', '21 days = 21 days'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 25}), true), '25 днів', '25 days = 25 days'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 26}), true), 'місяць', '26 days = a month'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 30}), true), 'місяць', '30 days = a month'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 43}), true), 'місяць', '43 days = a month'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 46}), true), '2 місяці', '46 days = 2 months'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 74}), true), '2 місяці', '75 days = 2 months'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 76}), true), '3 місяці', '76 days = 3 months'); - assert.equal(start.from(moment([2007, 1, 28]).add({M: 1}), true), 'місяць', '1 month = a month'); - assert.equal(start.from(moment([2007, 1, 28]).add({M: 5}), true), '5 місяців', '5 months = 5 months'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 345}), true), 'рік', '345 days = a year'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 548}), true), '2 роки', '548 days = 2 years'); - assert.equal(start.from(moment([2007, 1, 28]).add({y: 1}), true), 'рік', '1 year = a year'); - assert.equal(start.from(moment([2007, 1, 28]).add({y: 5}), true), '5 років', '5 years = 5 years'); -}); - -test('suffix', function (assert) { - assert.equal(moment(30000).from(0), 'за декілька секунд', 'prefix'); - assert.equal(moment(0).from(30000), 'декілька секунд тому', 'suffix'); -}); - -test('fromNow', function (assert) { - assert.equal(moment().add({s: 30}).fromNow(), 'за декілька секунд', 'in seconds'); - assert.equal(moment().add({d: 5}).fromNow(), 'за 5 днів', 'in 5 days'); -}); - -test('calendar day', function (assert) { - var a = moment().hours(12).minutes(0).seconds(0); - - assert.equal(moment(a).calendar(), 'Сьогодні о 12:00', 'today at the same time'); - assert.equal(moment(a).add({m: 25}).calendar(), 'Сьогодні о 12:25', 'Now plus 25 min'); - assert.equal(moment(a).add({h: 1}).calendar(), 'Сьогодні о 13:00', 'Now plus 1 hour'); - assert.equal(moment(a).add({d: 1}).calendar(), 'Завтра о 12:00', 'tomorrow at the same time'); - assert.equal(moment(a).subtract({h: 2}).calendar(), 'Сьогодні о 10:00', 'Now minus 2 hours'); - assert.equal(moment(a).subtract({d: 1}).calendar(), 'Вчора о 12:00', 'yesterday at the same time'); - // A special case for Ukrainian since 11 hours have different preposition - assert.equal(moment(a).subtract({h: 1}).calendar(), 'Сьогодні об 11:00', 'same day at 11 o\'clock'); -}); - -test('calendar next week', function (assert) { - var i, m; - for (i = 2; i < 7; i++) { - m = moment().add({d: i}); - assert.equal(m.calendar(), m.format('[У] dddd [о' + (m.hours() === 11 ? 'б' : '') + '] LT'), 'Today + ' + i + ' days current time'); - m.hours(0).minutes(0).seconds(0).milliseconds(0); - assert.equal(m.calendar(), m.format('[У] dddd [о] LT'), 'Today + ' + i + ' days beginning of day'); - m.hours(23).minutes(59).seconds(59).milliseconds(999); - assert.equal(m.calendar(), m.format('[У] dddd [о] LT'), 'Today + ' + i + ' days end of day'); - } -}); - -test('calendar last week', function (assert) { - var i, m; - - function makeFormat(d) { - switch (d.day()) { - case 0: - case 3: - case 5: - case 6: - return '[Минулої] dddd [о' + (d.hours() === 11 ? 'б' : '') + '] LT'; - case 1: - case 2: - case 4: - return '[Минулого] dddd [о' + (d.hours() === 11 ? 'б' : '') + '] LT'; - } - } - - for (i = 2; i < 7; i++) { - m = moment().subtract({d: i}); - assert.equal(m.calendar(), m.format(makeFormat(m)), 'Today - ' + i + ' days current time'); - m.hours(0).minutes(0).seconds(0).milliseconds(0); - assert.equal(m.calendar(), m.format(makeFormat(m)), 'Today - ' + i + ' days beginning of day'); - m.hours(23).minutes(59).seconds(59).milliseconds(999); - assert.equal(m.calendar(), m.format(makeFormat(m)), 'Today - ' + i + ' days end of day'); - } -}); - -test('calendar all else', function (assert) { - var weeksAgo = moment().subtract({w: 1}), - weeksFromNow = moment().add({w: 1}); - - assert.equal(weeksAgo.calendar(), weeksAgo.format('L'), '1 week ago'); - assert.equal(weeksFromNow.calendar(), weeksFromNow.format('L'), 'in 1 week'); - - weeksAgo = moment().subtract({w: 2}); - weeksFromNow = moment().add({w: 2}); - - assert.equal(weeksAgo.calendar(), weeksAgo.format('L'), '2 weeks ago'); - assert.equal(weeksFromNow.calendar(), weeksFromNow.format('L'), 'in 2 weeks'); -}); - -test('weeks year starting sunday formatted', function (assert) { - assert.equal(moment([2011, 11, 26]).format('w ww wo'), '1 01 1-й', 'Dec 26 2011 should be week 1'); - assert.equal(moment([2012, 0, 1]).format('w ww wo'), '1 01 1-й', 'Jan 1 2012 should be week 1'); - assert.equal(moment([2012, 0, 2]).format('w ww wo'), '2 02 2-й', 'Jan 2 2012 should be week 2'); - assert.equal(moment([2012, 0, 8]).format('w ww wo'), '2 02 2-й', 'Jan 8 2012 should be week 2'); - assert.equal(moment([2012, 0, 9]).format('w ww wo'), '3 03 3-й', 'Jan 9 2012 should be week 3'); -}); - -}))); - - -;(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' - && typeof require === 'function' ? factory(require('../../moment')) : - typeof define === 'function' && define.amd ? define(['../../moment'], factory) : - factory(global.moment) -}(this, (function (moment) { 'use strict'; - -function each(array, callback) { - var i; - for (i = 0; i < array.length; i++) { - callback(array[i], i, array); - } -} - -function objectKeys(obj) { - if (Object.keys) { - return Object.keys(obj); - } else { - // IE8 - var res = [], i; - for (i in obj) { - if (obj.hasOwnProperty(i)) { - res.push(i); - } - } - return res; - } -} - -// Pick the first defined of two or three arguments. - -function defineCommonLocaleTests(locale, options) { - test('lenient day of month ordinal parsing', function (assert) { - var i, ordinalStr, testMoment; - for (i = 1; i <= 31; ++i) { - ordinalStr = moment([2014, 0, i]).format('YYYY MM Do'); - testMoment = moment(ordinalStr, 'YYYY MM Do'); - assert.equal(testMoment.year(), 2014, - 'lenient day of month ordinal parsing ' + i + ' year check'); - assert.equal(testMoment.month(), 0, - 'lenient day of month ordinal parsing ' + i + ' month check'); - assert.equal(testMoment.date(), i, - 'lenient day of month ordinal parsing ' + i + ' date check'); - } - }); - - test('lenient day of month ordinal parsing of number', function (assert) { - var i, testMoment; - for (i = 1; i <= 31; ++i) { - testMoment = moment('2014 01 ' + i, 'YYYY MM Do'); - assert.equal(testMoment.year(), 2014, - 'lenient day of month ordinal parsing of number ' + i + ' year check'); - assert.equal(testMoment.month(), 0, - 'lenient day of month ordinal parsing of number ' + i + ' month check'); - assert.equal(testMoment.date(), i, - 'lenient day of month ordinal parsing of number ' + i + ' date check'); - } - }); - - test('strict day of month ordinal parsing', function (assert) { - var i, ordinalStr, testMoment; - for (i = 1; i <= 31; ++i) { - ordinalStr = moment([2014, 0, i]).format('YYYY MM Do'); - testMoment = moment(ordinalStr, 'YYYY MM Do', true); - assert.ok(testMoment.isValid(), 'strict day of month ordinal parsing ' + i); - } - }); - - test('meridiem invariant', function (assert) { - var h, m, t1, t2; - for (h = 0; h < 24; ++h) { - for (m = 0; m < 60; m += 15) { - t1 = moment.utc([2000, 0, 1, h, m]); - t2 = moment.utc(t1.format('A h:mm'), 'A h:mm'); - assert.equal(t2.format('HH:mm'), t1.format('HH:mm'), - 'meridiem at ' + t1.format('HH:mm')); - } - } - }); - - test('date format correctness', function (assert) { - var data, tokens; - data = moment.localeData()._longDateFormat; - tokens = objectKeys(data); - each(tokens, function (srchToken) { - // Check each format string to make sure it does not contain any - // tokens that need to be expanded. - each(tokens, function (baseToken) { - // strip escaped sequences - var format = data[baseToken].replace(/(\[[^\]]*\])/g, ''); - assert.equal(false, !!~format.indexOf(srchToken), - 'contains ' + srchToken + ' in ' + baseToken); - }); - }); - }); - - test('month parsing correctness', function (assert) { - var i, m; - - if (locale === 'tr') { - // I can't fix it :( - expect(0); - return; - } - function tester(format) { - var r; - r = moment(m.format(format), format); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format); - r = moment(m.format(format).toLocaleUpperCase(), format); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' upper'); - r = moment(m.format(format).toLocaleLowerCase(), format); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' lower'); - - r = moment(m.format(format), format, true); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' strict'); - r = moment(m.format(format).toLocaleUpperCase(), format, true); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' upper strict'); - r = moment(m.format(format).toLocaleLowerCase(), format, true); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' lower strict'); - } - - for (i = 0; i < 12; ++i) { - m = moment([2015, i, 15, 18]); - tester('MMM'); - tester('MMM.'); - tester('MMMM'); - tester('MMMM.'); - } - }); - - test('weekday parsing correctness', function (assert) { - var i, m; - - if (locale === 'tr' || locale === 'az' || locale === 'ro') { - // tr, az: There is a lower-case letter (ı), that converted to - // upper then lower changes to i - // ro: there is the letter ț which behaves weird under IE8 - expect(0); - return; - } - function tester(format) { - var r, baseMsg = 'weekday ' + m.weekday() + ' fmt ' + format + ' ' + m.toISOString(); - r = moment(m.format(format), format); - assert.equal(r.weekday(), m.weekday(), baseMsg); - r = moment(m.format(format).toLocaleUpperCase(), format); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' upper'); - r = moment(m.format(format).toLocaleLowerCase(), format); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' lower'); - - r = moment(m.format(format), format, true); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' strict'); - r = moment(m.format(format).toLocaleUpperCase(), format, true); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' upper strict'); - r = moment(m.format(format).toLocaleLowerCase(), format, true); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' lower strict'); - } - - for (i = 0; i < 7; ++i) { - m = moment.utc([2015, 0, i + 1, 18]); - tester('dd'); - tester('ddd'); - tester('dddd'); - } - }); - - test('valid localeData', function (assert) { - assert.equal(moment().localeData().months().length, 12, 'months should return 12 months'); - assert.equal(moment().localeData().monthsShort().length, 12, 'monthsShort should return 12 months'); - assert.equal(moment().localeData().weekdays().length, 7, 'weekdays should return 7 days'); - assert.equal(moment().localeData().weekdaysShort().length, 7, 'weekdaysShort should return 7 days'); - assert.equal(moment().localeData().weekdaysMin().length, 7, 'monthsShort should return 7 days'); - }); -} - -function setupDeprecationHandler(test, moment$$1, scope) { - test._expectedDeprecations = null; - test._observedDeprecations = null; - test._oldSupress = moment$$1.suppressDeprecationWarnings; - moment$$1.suppressDeprecationWarnings = true; - test.expectedDeprecations = function () { - test._expectedDeprecations = arguments; - test._observedDeprecations = []; - }; - moment$$1.deprecationHandler = function (name, msg) { - var deprecationId = matchedDeprecation(name, msg, test._expectedDeprecations); - if (deprecationId === -1) { - throw new Error('Unexpected deprecation thrown name=' + - name + ' msg=' + msg); - } - test._observedDeprecations[deprecationId] = 1; - }; -} - -function teardownDeprecationHandler(test, moment$$1, scope) { - moment$$1.suppressDeprecationWarnings = test._oldSupress; - - if (test._expectedDeprecations != null) { - var missedDeprecations = []; - each(test._expectedDeprecations, function (deprecationPattern, id) { - if (test._observedDeprecations[id] !== 1) { - missedDeprecations.push(deprecationPattern); - } - }); - if (missedDeprecations.length !== 0) { - throw new Error('Expected deprecation warnings did not happen: ' + - missedDeprecations.join(' ')); - } - } -} - -function matchedDeprecation(name, msg, deprecations) { - if (deprecations == null) { - return -1; - } - for (var i = 0; i < deprecations.length; ++i) { - if (name != null && name === deprecations[i]) { - return i; - } - if (msg != null && msg.substring(0, deprecations[i].length) === deprecations[i]) { - return i; - } - } - return -1; -} - -/*global QUnit:false*/ - -var test = QUnit.test; - -var expect = QUnit.expect; - - - -function localeModule (name, lifecycle) { - QUnit.module('locale:' + name, { - setup : function () { - moment.locale(name); - moment.createFromInputFallback = function (config) { - throw new Error('input not handled by moment: ' + config._i); - }; - setupDeprecationHandler(test, moment, 'locale'); - if (lifecycle && lifecycle.setup) { - lifecycle.setup(); - } - }, - teardown : function () { - moment.locale('en'); - teardownDeprecationHandler(test, moment, 'locale'); - if (lifecycle && lifecycle.teardown) { - lifecycle.teardown(); - } - } - }); - defineCommonLocaleTests(name, -1, -1); -} - -localeModule('ur'); - -var months = [ - 'جنوری', - 'فروری', - 'مارچ', - 'اپریل', - 'مئی', - 'جون', - 'جولائی', - 'اگست', - 'ستمبر', - 'اکتوبر', - 'نومبر', - 'دسمبر' -]; -var days = [ - 'اتوار', - 'پیر', - 'منگل', - 'بدھ', - 'جمعرات', - 'جمعہ', - 'ہفتہ' -]; - -test('parse', function (assert) { - function equalTest(input, mmm, i) { - assert.equal(moment(input, mmm).month(), i, input + ' should be month ' + (i + 1)); - } - for (var i = 0; i < 12; i++) { - equalTest(months[i], 'MMM', i); - equalTest(months[i], 'MMMM', i); - } -}); - -test('format', function (assert) { - var a = [ - ['dddd, MMMM Do YYYY, h:mm:ss a', 'اتوار، فروری 14 2010، 3:25:50 شام'], - ['ddd, hA', 'اتوار، 3شام'], - ['M Mo MM MMMM MMM', '2 2 02 فروری فروری'], - ['YYYY YY', '2010 10'], - ['D Do DD', '14 14 14'], - ['d do dddd ddd dd', '0 0 اتوار اتوار اتوار'], - ['DDD DDDo DDDD', '45 45 045'], - ['w wo ww', '6 6 06'], - ['h hh', '3 03'], - ['H HH', '15 15'], - ['m mm', '25 25'], - ['s ss', '50 50'], - ['a A', 'شام شام'], - ['[سال کا] DDDo[واں دن]', 'سال کا 45واں دن'], - ['LTS', '15:25:50'], - ['L', '14/02/2010'], - ['LL', '14 فروری 2010'], - ['LLL', '14 فروری 2010 15:25'], - ['LLLL', 'اتوار، 14 فروری 2010 15:25'], - ['l', '14/2/2010'], - ['ll', '14 فروری 2010'], - ['lll', '14 فروری 2010 15:25'], - ['llll', 'اتوار، 14 فروری 2010 15:25'] - ], - b = moment(new Date(2010, 1, 14, 15, 25, 50, 125)), - i; - for (i = 0; i < a.length; i++) { - assert.equal(b.format(a[i][0]), a[i][1], a[i][0] + ' ---> ' + a[i][1]); - } -}); - -test('format ordinal', function (assert) { - assert.equal(moment([2011, 0, 1]).format('DDDo'), '1', '1'); - assert.equal(moment([2011, 0, 2]).format('DDDo'), '2', '2'); - assert.equal(moment([2011, 0, 3]).format('DDDo'), '3', '3'); - assert.equal(moment([2011, 0, 4]).format('DDDo'), '4', '4'); - assert.equal(moment([2011, 0, 5]).format('DDDo'), '5', '5'); - assert.equal(moment([2011, 0, 6]).format('DDDo'), '6', '6'); - assert.equal(moment([2011, 0, 7]).format('DDDo'), '7', '7'); - assert.equal(moment([2011, 0, 8]).format('DDDo'), '8', '8'); - assert.equal(moment([2011, 0, 9]).format('DDDo'), '9', '9'); - assert.equal(moment([2011, 0, 10]).format('DDDo'), '10', '10'); - - assert.equal(moment([2011, 0, 11]).format('DDDo'), '11', '11'); - assert.equal(moment([2011, 0, 12]).format('DDDo'), '12', '12'); - assert.equal(moment([2011, 0, 13]).format('DDDo'), '13', '13'); - assert.equal(moment([2011, 0, 14]).format('DDDo'), '14', '14'); - assert.equal(moment([2011, 0, 15]).format('DDDo'), '15', '15'); - assert.equal(moment([2011, 0, 16]).format('DDDo'), '16', '16'); - assert.equal(moment([2011, 0, 17]).format('DDDo'), '17', '17'); - assert.equal(moment([2011, 0, 18]).format('DDDo'), '18', '18'); - assert.equal(moment([2011, 0, 19]).format('DDDo'), '19', '19'); - assert.equal(moment([2011, 0, 20]).format('DDDo'), '20', '20'); - - assert.equal(moment([2011, 0, 21]).format('DDDo'), '21', '21'); - assert.equal(moment([2011, 0, 22]).format('DDDo'), '22', '22'); - assert.equal(moment([2011, 0, 23]).format('DDDo'), '23', '23'); - assert.equal(moment([2011, 0, 24]).format('DDDo'), '24', '24'); - assert.equal(moment([2011, 0, 25]).format('DDDo'), '25', '25'); - assert.equal(moment([2011, 0, 26]).format('DDDo'), '26', '26'); - assert.equal(moment([2011, 0, 27]).format('DDDo'), '27', '27'); - assert.equal(moment([2011, 0, 28]).format('DDDo'), '28', '28'); - assert.equal(moment([2011, 0, 29]).format('DDDo'), '29', '29'); - assert.equal(moment([2011, 0, 30]).format('DDDo'), '30', '30'); - - assert.equal(moment([2011, 0, 31]).format('DDDo'), '31', '31'); -}); - -test('format month', function (assert) { - for (var i = 0; i < months.length; i++) { - assert.equal(moment([2011, i, 1]).format('MMMM MMM'), months[i] + ' ' + months[i], months[i] + ' ' + months[i]); - } -}); - -test('format week', function (assert) { - for (var i = 0; i < days.length; i++) { - assert.equal(moment([2011, 0, 2 + i]).format('dddd ddd dd'), days[i] + ' ' + days[i] + ' ' + days[i], days[i] + ' ' + days[i] + ' ' + days[i]); - } -}); - -test('from', function (assert) { - var start = moment([2007, 1, 28]); - assert.equal(start.from(moment([2007, 1, 28]).add({s: 44}), true), 'چند سیکنڈ', '44 seconds = چند سیکنڈ'); - assert.equal(start.from(moment([2007, 1, 28]).add({s: 45}), true), 'ایک منٹ', '45 seconds = ایک منٹ'); - assert.equal(start.from(moment([2007, 1, 28]).add({s: 89}), true), 'ایک منٹ', '89 seconds = ایک منٹ'); - assert.equal(start.from(moment([2007, 1, 28]).add({s: 90}), true), '2 منٹ', '90 seconds = 2 منٹ'); - assert.equal(start.from(moment([2007, 1, 28]).add({m: 44}), true), '44 منٹ', '44 minutes = 44 منٹ'); - assert.equal(start.from(moment([2007, 1, 28]).add({m: 45}), true), 'ایک گھنٹہ', '45 minutes = ایک گھنٹہ'); - assert.equal(start.from(moment([2007, 1, 28]).add({m: 89}), true), 'ایک گھنٹہ', '89 minutes = ایک گھنٹہ'); - assert.equal(start.from(moment([2007, 1, 28]).add({m: 90}), true), '2 گھنٹے', '90 minutes = 2 گھنٹے'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 5}), true), '5 گھنٹے', '5 hours = 5 گھنٹے'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 21}), true), '21 گھنٹے', '21 hours = 21 گھنٹے'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 22}), true), 'ایک دن', '22 hours = ایک دن'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 35}), true), 'ایک دن', '35 hours = ایک دن'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 36}), true), '2 دن', '36 hours = 2 دن'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 1}), true), 'ایک دن', '1 day = ایک دن'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 5}), true), '5 دن', '5 days = 5 دن'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 25}), true), '25 دن', '25 days = 25 دن'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 26}), true), 'ایک ماہ', '26 days = ایک ماہ'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 30}), true), 'ایک ماہ', '30 days = ایک ماہ'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 43}), true), 'ایک ماہ', '43 days = ایک ماہ'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 46}), true), '2 ماہ', '46 days = 2 ماہ'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 74}), true), '2 ماہ', '75 days = 2 ماہ'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 76}), true), '3 ماہ', '76 days = 3 ماہ'); - assert.equal(start.from(moment([2007, 1, 28]).add({M: 1}), true), 'ایک ماہ', '1 month = ایک ماہ'); - assert.equal(start.from(moment([2007, 1, 28]).add({M: 5}), true), '5 ماہ', '5 months = 5 ماہ'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 345}), true), 'ایک سال', '345 days = ایک سال'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 548}), true), '2 سال', '548 days = 2 سال'); - assert.equal(start.from(moment([2007, 1, 28]).add({y: 1}), true), 'ایک سال', '1 year = ایک سال'); - assert.equal(start.from(moment([2007, 1, 28]).add({y: 5}), true), '5 سال', '5 years = 5 سال'); -}); - -test('suffix', function (assert) { - assert.equal(moment(30000).from(0), 'چند سیکنڈ بعد', 'prefix'); - assert.equal(moment(0).from(30000), 'چند سیکنڈ قبل', 'suffix'); -}); - -test('now from now', function (assert) { - assert.equal(moment().fromNow(), 'چند سیکنڈ قبل', 'now from now should display as in the past'); -}); - -test('fromNow', function (assert) { - assert.equal(moment().add({s: 30}).fromNow(), 'چند سیکنڈ بعد', 'in a few seconds'); - assert.equal(moment().add({d: 5}).fromNow(), '5 دن بعد', 'in 5 days'); -}); - -test('calendar day', function (assert) { - var a = moment().hours(12).minutes(0).seconds(0); - - assert.equal(moment(a).calendar(), 'آج بوقت 12:00', 'today at the same time'); - assert.equal(moment(a).add({m: 25}).calendar(), 'آج بوقت 12:25', 'Now plus 25 min'); - assert.equal(moment(a).add({h: 1}).calendar(), 'آج بوقت 13:00', 'Now plus 1 hour'); - assert.equal(moment(a).add({d: 1}).calendar(), 'کل بوقت 12:00', 'tomorrow at the same time'); - assert.equal(moment(a).subtract({h: 1}).calendar(), 'آج بوقت 11:00', 'Now minus 1 hour'); - assert.equal(moment(a).subtract({d: 1}).calendar(), 'گذشتہ روز بوقت 12:00', 'yesterday at the same time'); -}); - -test('calendar next week', function (assert) { - var i, m; - for (i = 2; i < 7; i++) { - m = moment().add({d: i}); - assert.equal(m.calendar(), m.format('dddd [بوقت] LT'), 'Today + ' + i + ' days current time'); - m.hours(0).minutes(0).seconds(0).milliseconds(0); - assert.equal(m.calendar(), m.format('dddd [بوقت] LT'), 'Today + ' + i + ' days beginning of day'); - m.hours(23).minutes(59).seconds(59).milliseconds(999); - assert.equal(m.calendar(), m.format('dddd [بوقت] LT'), 'Today + ' + i + ' days end of day'); - } -}); - -test('calendar last week', function (assert) { - var i, m; - - for (i = 2; i < 7; i++) { - m = moment().subtract({d: i}); - assert.equal(m.calendar(), m.format('[گذشتہ] dddd [بوقت] LT'), 'Today - ' + i + ' days current time'); - m.hours(0).minutes(0).seconds(0).milliseconds(0); - assert.equal(m.calendar(), m.format('[گذشتہ] dddd [بوقت] LT'), 'Today - ' + i + ' days beginning of day'); - m.hours(23).minutes(59).seconds(59).milliseconds(999); - assert.equal(m.calendar(), m.format('[گذشتہ] dddd [بوقت] LT'), 'Today - ' + i + ' days end of day'); - } -}); - -test('calendar all else', function (assert) { - var weeksAgo = moment().subtract({w: 1}), - weeksFromNow = moment().add({w: 1}); - - assert.equal(weeksAgo.calendar(), weeksAgo.format('L'), '1 week ago'); - assert.equal(weeksFromNow.calendar(), weeksFromNow.format('L'), 'in 1 week'); - - weeksAgo = moment().subtract({w: 2}); - weeksFromNow = moment().add({w: 2}); - - assert.equal(weeksAgo.calendar(), weeksAgo.format('L'), '2 weeks ago'); - assert.equal(weeksFromNow.calendar(), weeksFromNow.format('L'), 'in 2 weeks'); -}); - -test('weeks year starting sunday formatted', function (assert) { - assert.equal(moment([2012, 0, 1]).format('w ww wo'), '52 52 52', 'Jan 1 2012 should be week 52'); - assert.equal(moment([2012, 0, 2]).format('w ww wo'), '1 01 1', 'Jan 2 2012 should be week 1'); - assert.equal(moment([2012, 0, 8]).format('w ww wo'), '1 01 1', 'Jan 8 2012 should be week 1'); - assert.equal(moment([2012, 0, 9]).format('w ww wo'), '2 02 2', 'Jan 9 2012 should be week 2'); - assert.equal(moment([2012, 0, 15]).format('w ww wo'), '2 02 2', 'Jan 15 2012 should be week 2'); -}); - -}))); - - -;(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' - && typeof require === 'function' ? factory(require('../../moment')) : - typeof define === 'function' && define.amd ? define(['../../moment'], factory) : - factory(global.moment) -}(this, (function (moment) { 'use strict'; - -function each(array, callback) { - var i; - for (i = 0; i < array.length; i++) { - callback(array[i], i, array); - } -} - -function objectKeys(obj) { - if (Object.keys) { - return Object.keys(obj); - } else { - // IE8 - var res = [], i; - for (i in obj) { - if (obj.hasOwnProperty(i)) { - res.push(i); - } - } - return res; - } -} - -// Pick the first defined of two or three arguments. - -function defineCommonLocaleTests(locale, options) { - test('lenient day of month ordinal parsing', function (assert) { - var i, ordinalStr, testMoment; - for (i = 1; i <= 31; ++i) { - ordinalStr = moment([2014, 0, i]).format('YYYY MM Do'); - testMoment = moment(ordinalStr, 'YYYY MM Do'); - assert.equal(testMoment.year(), 2014, - 'lenient day of month ordinal parsing ' + i + ' year check'); - assert.equal(testMoment.month(), 0, - 'lenient day of month ordinal parsing ' + i + ' month check'); - assert.equal(testMoment.date(), i, - 'lenient day of month ordinal parsing ' + i + ' date check'); - } - }); - - test('lenient day of month ordinal parsing of number', function (assert) { - var i, testMoment; - for (i = 1; i <= 31; ++i) { - testMoment = moment('2014 01 ' + i, 'YYYY MM Do'); - assert.equal(testMoment.year(), 2014, - 'lenient day of month ordinal parsing of number ' + i + ' year check'); - assert.equal(testMoment.month(), 0, - 'lenient day of month ordinal parsing of number ' + i + ' month check'); - assert.equal(testMoment.date(), i, - 'lenient day of month ordinal parsing of number ' + i + ' date check'); - } - }); - - test('strict day of month ordinal parsing', function (assert) { - var i, ordinalStr, testMoment; - for (i = 1; i <= 31; ++i) { - ordinalStr = moment([2014, 0, i]).format('YYYY MM Do'); - testMoment = moment(ordinalStr, 'YYYY MM Do', true); - assert.ok(testMoment.isValid(), 'strict day of month ordinal parsing ' + i); - } - }); - - test('meridiem invariant', function (assert) { - var h, m, t1, t2; - for (h = 0; h < 24; ++h) { - for (m = 0; m < 60; m += 15) { - t1 = moment.utc([2000, 0, 1, h, m]); - t2 = moment.utc(t1.format('A h:mm'), 'A h:mm'); - assert.equal(t2.format('HH:mm'), t1.format('HH:mm'), - 'meridiem at ' + t1.format('HH:mm')); - } - } - }); - - test('date format correctness', function (assert) { - var data, tokens; - data = moment.localeData()._longDateFormat; - tokens = objectKeys(data); - each(tokens, function (srchToken) { - // Check each format string to make sure it does not contain any - // tokens that need to be expanded. - each(tokens, function (baseToken) { - // strip escaped sequences - var format = data[baseToken].replace(/(\[[^\]]*\])/g, ''); - assert.equal(false, !!~format.indexOf(srchToken), - 'contains ' + srchToken + ' in ' + baseToken); - }); - }); - }); - - test('month parsing correctness', function (assert) { - var i, m; - - if (locale === 'tr') { - // I can't fix it :( - expect(0); - return; - } - function tester(format) { - var r; - r = moment(m.format(format), format); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format); - r = moment(m.format(format).toLocaleUpperCase(), format); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' upper'); - r = moment(m.format(format).toLocaleLowerCase(), format); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' lower'); - - r = moment(m.format(format), format, true); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' strict'); - r = moment(m.format(format).toLocaleUpperCase(), format, true); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' upper strict'); - r = moment(m.format(format).toLocaleLowerCase(), format, true); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' lower strict'); - } - - for (i = 0; i < 12; ++i) { - m = moment([2015, i, 15, 18]); - tester('MMM'); - tester('MMM.'); - tester('MMMM'); - tester('MMMM.'); - } - }); - - test('weekday parsing correctness', function (assert) { - var i, m; - - if (locale === 'tr' || locale === 'az' || locale === 'ro') { - // tr, az: There is a lower-case letter (ı), that converted to - // upper then lower changes to i - // ro: there is the letter ț which behaves weird under IE8 - expect(0); - return; - } - function tester(format) { - var r, baseMsg = 'weekday ' + m.weekday() + ' fmt ' + format + ' ' + m.toISOString(); - r = moment(m.format(format), format); - assert.equal(r.weekday(), m.weekday(), baseMsg); - r = moment(m.format(format).toLocaleUpperCase(), format); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' upper'); - r = moment(m.format(format).toLocaleLowerCase(), format); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' lower'); - - r = moment(m.format(format), format, true); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' strict'); - r = moment(m.format(format).toLocaleUpperCase(), format, true); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' upper strict'); - r = moment(m.format(format).toLocaleLowerCase(), format, true); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' lower strict'); - } - - for (i = 0; i < 7; ++i) { - m = moment.utc([2015, 0, i + 1, 18]); - tester('dd'); - tester('ddd'); - tester('dddd'); - } - }); - - test('valid localeData', function (assert) { - assert.equal(moment().localeData().months().length, 12, 'months should return 12 months'); - assert.equal(moment().localeData().monthsShort().length, 12, 'monthsShort should return 12 months'); - assert.equal(moment().localeData().weekdays().length, 7, 'weekdays should return 7 days'); - assert.equal(moment().localeData().weekdaysShort().length, 7, 'weekdaysShort should return 7 days'); - assert.equal(moment().localeData().weekdaysMin().length, 7, 'monthsShort should return 7 days'); - }); -} - -function setupDeprecationHandler(test, moment$$1, scope) { - test._expectedDeprecations = null; - test._observedDeprecations = null; - test._oldSupress = moment$$1.suppressDeprecationWarnings; - moment$$1.suppressDeprecationWarnings = true; - test.expectedDeprecations = function () { - test._expectedDeprecations = arguments; - test._observedDeprecations = []; - }; - moment$$1.deprecationHandler = function (name, msg) { - var deprecationId = matchedDeprecation(name, msg, test._expectedDeprecations); - if (deprecationId === -1) { - throw new Error('Unexpected deprecation thrown name=' + - name + ' msg=' + msg); - } - test._observedDeprecations[deprecationId] = 1; - }; -} - -function teardownDeprecationHandler(test, moment$$1, scope) { - moment$$1.suppressDeprecationWarnings = test._oldSupress; - - if (test._expectedDeprecations != null) { - var missedDeprecations = []; - each(test._expectedDeprecations, function (deprecationPattern, id) { - if (test._observedDeprecations[id] !== 1) { - missedDeprecations.push(deprecationPattern); - } - }); - if (missedDeprecations.length !== 0) { - throw new Error('Expected deprecation warnings did not happen: ' + - missedDeprecations.join(' ')); - } - } -} - -function matchedDeprecation(name, msg, deprecations) { - if (deprecations == null) { - return -1; - } - for (var i = 0; i < deprecations.length; ++i) { - if (name != null && name === deprecations[i]) { - return i; - } - if (msg != null && msg.substring(0, deprecations[i].length) === deprecations[i]) { - return i; - } - } - return -1; -} - -/*global QUnit:false*/ - -var test = QUnit.test; - -var expect = QUnit.expect; - - - -function localeModule (name, lifecycle) { - QUnit.module('locale:' + name, { - setup : function () { - moment.locale(name); - moment.createFromInputFallback = function (config) { - throw new Error('input not handled by moment: ' + config._i); - }; - setupDeprecationHandler(test, moment, 'locale'); - if (lifecycle && lifecycle.setup) { - lifecycle.setup(); - } - }, - teardown : function () { - moment.locale('en'); - teardownDeprecationHandler(test, moment, 'locale'); - if (lifecycle && lifecycle.teardown) { - lifecycle.teardown(); - } - } - }); - defineCommonLocaleTests(name, -1, -1); -} - -localeModule('uz-latn'); - -test('parse', function (assert) { - var tests = 'Yanvar Yan_Fevral Fev_Mart Mar_Aprel Apr_May May_Iyun Iyun_Iyul Iyul_Avgust Avg_Sentabr Sen_Oktabr Okt_Noyabr Noy_Dekabr Dek'.split('_'), i; - function equalTest(input, mmm, i) { - assert.equal(moment(input, mmm).month(), i, input + ' should be month ' + (i + 1)); - } - for (i = 0; i < 12; i++) { - tests[i] = tests[i].split(' '); - equalTest(tests[i][0], 'MMM', i); - equalTest(tests[i][1], 'MMM', i); - equalTest(tests[i][0], 'MMMM', i); - equalTest(tests[i][1], 'MMMM', i); - equalTest(tests[i][0].toLocaleLowerCase(), 'MMMM', i); - equalTest(tests[i][1].toLocaleLowerCase(), 'MMMM', i); - equalTest(tests[i][0].toLocaleUpperCase(), 'MMMM', i); - equalTest(tests[i][1].toLocaleUpperCase(), 'MMMM', i); - } -}); - -test('format', function (assert) { - var a = [ - ['dddd, Do-MMMM YYYY, h:mm:ss', 'Yakshanba, 14-Fevral 2010, 3:25:50'], - ['ddd, h:mm', 'Yak, 3:25'], - ['M Mo MM MMMM MMM', '2 2 02 Fevral Fev'], - ['YYYY YY', '2010 10'], - ['D Do DD', '14 14 14'], - ['d do dddd ddd dd', '0 0 Yakshanba Yak Ya'], - ['DDD DDDo DDDD', '45 45 045'], - ['w wo ww', '7 7 07'], - ['h hh', '3 03'], - ['H HH', '15 15'], - ['m mm', '25 25'], - ['s ss', '50 50'], - ['a A', 'pm PM'], - ['[yilning] DDDo-[kuni]', 'yilning 45-kuni'], - ['LTS', '15:25:50'], - ['L', '14/02/2010'], - ['LL', '14 Fevral 2010'], - ['LLL', '14 Fevral 2010 15:25'], - ['LLLL', '14 Fevral 2010, Yakshanba 15:25'], - ['l', '14/2/2010'], - ['ll', '14 Fev 2010'], - ['lll', '14 Fev 2010 15:25'], - ['llll', '14 Fev 2010, Yak 15:25'] - ], - b = moment(new Date(2010, 1, 14, 15, 25, 50, 125)), - i; - for (i = 0; i < a.length; i++) { - assert.equal(b.format(a[i][0]), a[i][1], a[i][0] + ' ---> ' + a[i][1]); - } -}); - -test('format ordinal', function (assert) { - assert.equal(moment([2016, 0, 1]).format('DDDo'), '1', '1'); - assert.equal(moment([2016, 0, 2]).format('DDDo'), '2', '2'); - assert.equal(moment([2016, 0, 3]).format('DDDo'), '3', '3'); - assert.equal(moment([2016, 0, 4]).format('DDDo'), '4', '4'); - assert.equal(moment([2016, 0, 5]).format('DDDo'), '5', '5'); - assert.equal(moment([2016, 0, 6]).format('DDDo'), '6', '6'); - assert.equal(moment([2016, 0, 7]).format('DDDo'), '7', '7'); - assert.equal(moment([2016, 0, 8]).format('DDDo'), '8', '8'); - assert.equal(moment([2016, 0, 9]).format('DDDo'), '9', '9'); - assert.equal(moment([2016, 0, 10]).format('DDDo'), '10', '10'); - - assert.equal(moment([2016, 0, 11]).format('DDDo'), '11', '11'); - assert.equal(moment([2016, 0, 12]).format('DDDo'), '12', '12'); - assert.equal(moment([2016, 0, 13]).format('DDDo'), '13', '13'); - assert.equal(moment([2016, 0, 14]).format('DDDo'), '14', '14'); - assert.equal(moment([2016, 0, 15]).format('DDDo'), '15', '15'); - assert.equal(moment([2016, 0, 16]).format('DDDo'), '16', '16'); - assert.equal(moment([2016, 0, 17]).format('DDDo'), '17', '17'); - assert.equal(moment([2016, 0, 18]).format('DDDo'), '18', '18'); - assert.equal(moment([2016, 0, 19]).format('DDDo'), '19', '19'); - assert.equal(moment([2016, 0, 20]).format('DDDo'), '20', '20'); - - assert.equal(moment([2016, 0, 21]).format('DDDo'), '21', '21'); - assert.equal(moment([2016, 0, 22]).format('DDDo'), '22', '22'); - assert.equal(moment([2016, 0, 23]).format('DDDo'), '23', '23'); - assert.equal(moment([2016, 0, 24]).format('DDDo'), '24', '24'); - assert.equal(moment([2016, 0, 25]).format('DDDo'), '25', '25'); - assert.equal(moment([2016, 0, 26]).format('DDDo'), '26', '26'); - assert.equal(moment([2016, 0, 27]).format('DDDo'), '27', '27'); - assert.equal(moment([2016, 0, 28]).format('DDDo'), '28', '28'); - assert.equal(moment([2016, 0, 29]).format('DDDo'), '29', '29'); - assert.equal(moment([2016, 0, 30]).format('DDDo'), '30', '30'); - - assert.equal(moment([2016, 0, 31]).format('DDDo'), '31', '31'); -}); - -test('format month', function (assert) { - var expected = 'Yanvar Yan_Fevral Fev_Mart Mar_Aprel Apr_May May_Iyun Iyun_Iyul Iyul_Avgust Avg_Sentabr Sen_Oktabr Okt_Noyabr Noy_Dekabr Dek'.split('_'), i; - for (i = 0; i < expected.length; i++) { - assert.equal(moment([2016, i, 1]).format('MMMM MMM'), expected[i], expected[i]); - } -}); - -test('format week', function (assert) { - var expected = 'Yakshanba Yak Ya_Dushanba Dush Du_Seshanba Sesh Se_Chorshanba Chor Cho_Payshanba Pay Pa_Juma Jum Ju_Shanba Shan Sha'.split('_'), i; - for (i = 0; i < expected.length; i++) { - assert.equal(moment([2016, 0, 3 + i]).format('dddd ddd dd'), expected[i], expected[i]); - } -}); - -test('from', function (assert) { - var start = moment([2017, 1, 28]); - assert.equal(start.from(moment([2017, 1, 28]).add({s: 44}), true), 'soniya', '44 soniya = soniya'); - assert.equal(start.from(moment([2017, 1, 28]).add({s: 45}), true), 'bir daqiqa', '45 soniya = bir daqiqa'); - assert.equal(start.from(moment([2017, 1, 28]).add({s: 89}), true), 'bir daqiqa', '89 soniya = bir daqiqa'); - assert.equal(start.from(moment([2017, 1, 28]).add({s: 90}), true), '2 daqiqa', '90 soniya = 2 daqiqa'); - assert.equal(start.from(moment([2017, 1, 28]).add({m: 44}), true), '44 daqiqa', '44 daqiqa = 44 daqiqa'); - assert.equal(start.from(moment([2017, 1, 28]).add({m: 45}), true), 'bir soat', '45 minut = bir soat'); - assert.equal(start.from(moment([2017, 1, 28]).add({m: 89}), true), 'bir soat', '89 minut = bir soat'); - assert.equal(start.from(moment([2017, 1, 28]).add({m: 90}), true), '2 soat', '90 minut = 2 soat'); - assert.equal(start.from(moment([2017, 1, 28]).add({h: 5}), true), '5 soat', '5 soat = 5 soat'); - assert.equal(start.from(moment([2017, 1, 28]).add({h: 21}), true), '21 soat', '21 soat = 21 soat'); - assert.equal(start.from(moment([2017, 1, 28]).add({h: 22}), true), 'bir kun', '22 soat = bir kun'); - assert.equal(start.from(moment([2017, 1, 28]).add({h: 35}), true), 'bir kun', '35 soat = bir kun'); - assert.equal(start.from(moment([2017, 1, 28]).add({h: 36}), true), '2 kun', '36 soat = 2 kun'); - assert.equal(start.from(moment([2017, 1, 28]).add({d: 1}), true), 'bir kun', '1 kun = 1 kun'); - assert.equal(start.from(moment([2017, 1, 28]).add({d: 5}), true), '5 kun', '5 kun = 5 kun'); - assert.equal(start.from(moment([2017, 1, 28]).add({d: 25}), true), '25 kun', '25 kun = 25 kun'); - assert.equal(start.from(moment([2017, 1, 28]).add({d: 26}), true), 'bir oy', '26 kun = bir oy'); - assert.equal(start.from(moment([2017, 1, 28]).add({d: 30}), true), 'bir oy', '30 kun = bir oy'); - assert.equal(start.from(moment([2017, 1, 28]).add({d: 43}), true), 'bir oy', '45 kun = bir oy'); - assert.equal(start.from(moment([2017, 1, 28]).add({d: 46}), true), '2 oy', '46 kun = 2 oy'); - assert.equal(start.from(moment([2017, 1, 28]).add({d: 74}), true), '2 oy', '75 kun = 2 oy'); - assert.equal(start.from(moment([2017, 1, 28]).add({d: 76}), true), '3 oy', '76 kun = 3 oy'); - assert.equal(start.from(moment([2017, 1, 28]).add({M: 1}), true), 'bir oy', 'bir oy = bir oy'); - assert.equal(start.from(moment([2017, 1, 28]).add({M: 5}), true), '5 oy', '5 oy = 5 oy'); - assert.equal(start.from(moment([2017, 1, 28]).add({d: 345}), true), 'bir yil', '345 kun = bir yil'); - assert.equal(start.from(moment([2017, 1, 28]).add({d: 548}), true), '2 yil', '548 kun = 2 yil'); - assert.equal(start.from(moment([2017, 1, 28]).add({y: 1}), true), 'bir yil', '1 yil = bir yil'); - assert.equal(start.from(moment([2017, 1, 28]).add({y: 5}), true), '5 yil', '5 yil = 5 yil'); -}); - -test('suffix', function (assert) { - assert.equal(moment(30000).from(0), 'Yaqin soniya ichida', 'prefix'); - assert.equal(moment(0).from(30000), 'Bir necha soniya oldin', 'suffix'); -}); - -test('now from now', function (assert) { - assert.equal(moment().fromNow(), 'Bir necha soniya oldin', 'now from now should display as in the past'); -}); - -test('fromNow', function (assert) { - assert.equal(moment().add({s: 30}).fromNow(), 'Yaqin soniya ichida', 'in a few seconds'); - assert.equal(moment().add({d: 5}).fromNow(), 'Yaqin 5 kun ichida', 'in 5 days'); -}); - -test('calendar day', function (assert) { - var a = moment().hours(12).minutes(0).seconds(0); - - assert.equal(moment(a).calendar(), 'Bugun soat 12:00 da', 'today at the same time'); - assert.equal(moment(a).add({m: 25}).calendar(), 'Bugun soat 12:25 da', 'Now plus 25 min'); - assert.equal(moment(a).add({h: 1}).calendar(), 'Bugun soat 13:00 da', 'Now plus 1 hour'); - assert.equal(moment(a).add({d: 1}).calendar(), 'Ertaga 12:00 da', 'tomorrow at the same time'); - assert.equal(moment(a).subtract({h: 1}).calendar(), 'Bugun soat 11:00 da', 'Now minus 1 hour'); - assert.equal(moment(a).subtract({d: 1}).calendar(), 'Kecha soat 12:00 da', 'yesterday at the same time'); -}); - -test('calendar next week', function (assert) { - var i, m; - for (i = 2; i < 7; i++) { - m = moment().add({d: i}); - assert.equal(m.calendar(), m.format('dddd [kuni soat] LT [da]'), 'Today + ' + i + ' days current time'); - m.hours(0).minutes(0).seconds(0).milliseconds(0); - assert.equal(m.calendar(), m.format('dddd [kuni soat] LT [da]'), 'Today + ' + i + ' days beginning of day'); - m.hours(23).minutes(59).seconds(59).milliseconds(999); - assert.equal(m.calendar(), m.format('dddd [kuni soat] LT [da]'), 'Today + ' + i + ' days end of day'); - } -}); - -test('calendar last week', function (assert) { - var i, m; - - for (i = 2; i < 7; i++) { - m = moment().subtract({d: i}); - assert.equal(m.calendar(), m.format('[O\'tgan] dddd [kuni soat] LT [da]'), 'Today - ' + i + ' days current time'); - m.hours(0).minutes(0).seconds(0).milliseconds(0); - assert.equal(m.calendar(), m.format('[O\'tgan] dddd [kuni soat] LT [da]'), 'Today - ' + i + ' days beginning of day'); - m.hours(23).minutes(59).seconds(59).milliseconds(999); - assert.equal(m.calendar(), m.format('[O\'tgan] dddd [kuni soat] LT [da]'), 'Today - ' + i + ' days end of day'); - } -}); - -test('calendar all else', function (assert) { - var weeksAgo = moment().subtract({w: 1}), - weeksFromNow = moment().add({w: 1}); - - assert.equal(weeksAgo.calendar(), weeksAgo.format('L'), '1 week ago'); - assert.equal(weeksFromNow.calendar(), weeksFromNow.format('L'), 'in 1 week'); - - weeksAgo = moment().subtract({w: 2}); - weeksFromNow = moment().add({w: 2}); - - assert.equal(weeksAgo.calendar(), weeksAgo.format('L'), '2 weeks ago'); - assert.equal(weeksFromNow.calendar(), weeksFromNow.format('L'), 'in 2 weeks'); -}); - -test('weeks year starting sunday formatted', function (assert) { - assert.equal(moment([2012, 0, 1]).format('w ww wo'), '1 01 1', 'Jan 1 2012 should be week 52'); - assert.equal(moment([2012, 0, 2]).format('w ww wo'), '2 02 2', 'Jan 2 2012 should be week 1'); - assert.equal(moment([2012, 0, 8]).format('w ww wo'), '2 02 2', 'Jan 8 2012 should be week 1'); - assert.equal(moment([2012, 0, 9]).format('w ww wo'), '3 03 3', 'Jan 9 2012 should be week 2'); - assert.equal(moment([2012, 0, 15]).format('w ww wo'), '3 03 3', 'Jan 15 2012 should be week 2'); -}); - -}))); - - -;(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' - && typeof require === 'function' ? factory(require('../../moment')) : - typeof define === 'function' && define.amd ? define(['../../moment'], factory) : - factory(global.moment) -}(this, (function (moment) { 'use strict'; - -function each(array, callback) { - var i; - for (i = 0; i < array.length; i++) { - callback(array[i], i, array); - } -} - -function objectKeys(obj) { - if (Object.keys) { - return Object.keys(obj); - } else { - // IE8 - var res = [], i; - for (i in obj) { - if (obj.hasOwnProperty(i)) { - res.push(i); - } - } - return res; - } -} - -// Pick the first defined of two or three arguments. - -function defineCommonLocaleTests(locale, options) { - test('lenient day of month ordinal parsing', function (assert) { - var i, ordinalStr, testMoment; - for (i = 1; i <= 31; ++i) { - ordinalStr = moment([2014, 0, i]).format('YYYY MM Do'); - testMoment = moment(ordinalStr, 'YYYY MM Do'); - assert.equal(testMoment.year(), 2014, - 'lenient day of month ordinal parsing ' + i + ' year check'); - assert.equal(testMoment.month(), 0, - 'lenient day of month ordinal parsing ' + i + ' month check'); - assert.equal(testMoment.date(), i, - 'lenient day of month ordinal parsing ' + i + ' date check'); - } - }); - - test('lenient day of month ordinal parsing of number', function (assert) { - var i, testMoment; - for (i = 1; i <= 31; ++i) { - testMoment = moment('2014 01 ' + i, 'YYYY MM Do'); - assert.equal(testMoment.year(), 2014, - 'lenient day of month ordinal parsing of number ' + i + ' year check'); - assert.equal(testMoment.month(), 0, - 'lenient day of month ordinal parsing of number ' + i + ' month check'); - assert.equal(testMoment.date(), i, - 'lenient day of month ordinal parsing of number ' + i + ' date check'); - } - }); - - test('strict day of month ordinal parsing', function (assert) { - var i, ordinalStr, testMoment; - for (i = 1; i <= 31; ++i) { - ordinalStr = moment([2014, 0, i]).format('YYYY MM Do'); - testMoment = moment(ordinalStr, 'YYYY MM Do', true); - assert.ok(testMoment.isValid(), 'strict day of month ordinal parsing ' + i); - } - }); - - test('meridiem invariant', function (assert) { - var h, m, t1, t2; - for (h = 0; h < 24; ++h) { - for (m = 0; m < 60; m += 15) { - t1 = moment.utc([2000, 0, 1, h, m]); - t2 = moment.utc(t1.format('A h:mm'), 'A h:mm'); - assert.equal(t2.format('HH:mm'), t1.format('HH:mm'), - 'meridiem at ' + t1.format('HH:mm')); - } - } - }); - - test('date format correctness', function (assert) { - var data, tokens; - data = moment.localeData()._longDateFormat; - tokens = objectKeys(data); - each(tokens, function (srchToken) { - // Check each format string to make sure it does not contain any - // tokens that need to be expanded. - each(tokens, function (baseToken) { - // strip escaped sequences - var format = data[baseToken].replace(/(\[[^\]]*\])/g, ''); - assert.equal(false, !!~format.indexOf(srchToken), - 'contains ' + srchToken + ' in ' + baseToken); - }); - }); - }); - - test('month parsing correctness', function (assert) { - var i, m; - - if (locale === 'tr') { - // I can't fix it :( - expect(0); - return; - } - function tester(format) { - var r; - r = moment(m.format(format), format); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format); - r = moment(m.format(format).toLocaleUpperCase(), format); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' upper'); - r = moment(m.format(format).toLocaleLowerCase(), format); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' lower'); - - r = moment(m.format(format), format, true); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' strict'); - r = moment(m.format(format).toLocaleUpperCase(), format, true); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' upper strict'); - r = moment(m.format(format).toLocaleLowerCase(), format, true); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' lower strict'); - } - - for (i = 0; i < 12; ++i) { - m = moment([2015, i, 15, 18]); - tester('MMM'); - tester('MMM.'); - tester('MMMM'); - tester('MMMM.'); - } - }); - - test('weekday parsing correctness', function (assert) { - var i, m; - - if (locale === 'tr' || locale === 'az' || locale === 'ro') { - // tr, az: There is a lower-case letter (ı), that converted to - // upper then lower changes to i - // ro: there is the letter ț which behaves weird under IE8 - expect(0); - return; - } - function tester(format) { - var r, baseMsg = 'weekday ' + m.weekday() + ' fmt ' + format + ' ' + m.toISOString(); - r = moment(m.format(format), format); - assert.equal(r.weekday(), m.weekday(), baseMsg); - r = moment(m.format(format).toLocaleUpperCase(), format); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' upper'); - r = moment(m.format(format).toLocaleLowerCase(), format); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' lower'); - - r = moment(m.format(format), format, true); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' strict'); - r = moment(m.format(format).toLocaleUpperCase(), format, true); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' upper strict'); - r = moment(m.format(format).toLocaleLowerCase(), format, true); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' lower strict'); - } - - for (i = 0; i < 7; ++i) { - m = moment.utc([2015, 0, i + 1, 18]); - tester('dd'); - tester('ddd'); - tester('dddd'); - } - }); - - test('valid localeData', function (assert) { - assert.equal(moment().localeData().months().length, 12, 'months should return 12 months'); - assert.equal(moment().localeData().monthsShort().length, 12, 'monthsShort should return 12 months'); - assert.equal(moment().localeData().weekdays().length, 7, 'weekdays should return 7 days'); - assert.equal(moment().localeData().weekdaysShort().length, 7, 'weekdaysShort should return 7 days'); - assert.equal(moment().localeData().weekdaysMin().length, 7, 'monthsShort should return 7 days'); - }); -} - -function setupDeprecationHandler(test, moment$$1, scope) { - test._expectedDeprecations = null; - test._observedDeprecations = null; - test._oldSupress = moment$$1.suppressDeprecationWarnings; - moment$$1.suppressDeprecationWarnings = true; - test.expectedDeprecations = function () { - test._expectedDeprecations = arguments; - test._observedDeprecations = []; - }; - moment$$1.deprecationHandler = function (name, msg) { - var deprecationId = matchedDeprecation(name, msg, test._expectedDeprecations); - if (deprecationId === -1) { - throw new Error('Unexpected deprecation thrown name=' + - name + ' msg=' + msg); - } - test._observedDeprecations[deprecationId] = 1; - }; -} - -function teardownDeprecationHandler(test, moment$$1, scope) { - moment$$1.suppressDeprecationWarnings = test._oldSupress; - - if (test._expectedDeprecations != null) { - var missedDeprecations = []; - each(test._expectedDeprecations, function (deprecationPattern, id) { - if (test._observedDeprecations[id] !== 1) { - missedDeprecations.push(deprecationPattern); - } - }); - if (missedDeprecations.length !== 0) { - throw new Error('Expected deprecation warnings did not happen: ' + - missedDeprecations.join(' ')); - } - } -} - -function matchedDeprecation(name, msg, deprecations) { - if (deprecations == null) { - return -1; - } - for (var i = 0; i < deprecations.length; ++i) { - if (name != null && name === deprecations[i]) { - return i; - } - if (msg != null && msg.substring(0, deprecations[i].length) === deprecations[i]) { - return i; - } - } - return -1; -} - -/*global QUnit:false*/ - -var test = QUnit.test; - -var expect = QUnit.expect; - - - -function localeModule (name, lifecycle) { - QUnit.module('locale:' + name, { - setup : function () { - moment.locale(name); - moment.createFromInputFallback = function (config) { - throw new Error('input not handled by moment: ' + config._i); - }; - setupDeprecationHandler(test, moment, 'locale'); - if (lifecycle && lifecycle.setup) { - lifecycle.setup(); - } - }, - teardown : function () { - moment.locale('en'); - teardownDeprecationHandler(test, moment, 'locale'); - if (lifecycle && lifecycle.teardown) { - lifecycle.teardown(); - } - } - }); - defineCommonLocaleTests(name, -1, -1); -} - -localeModule('uz'); - -test('parse', function (assert) { - var tests = 'январ янв_феврал фев_март мар_апрел апр_май май_июн июн_июл июл_август авг_сентябр сен_октябр окт_ноябр ноя_декабр дек'.split('_'), i; - function equalTest(input, mmm, i) { - assert.equal(moment(input, mmm).month(), i, input + ' should be month ' + (i + 1)); - } - for (i = 0; i < 12; i++) { - tests[i] = tests[i].split(' '); - equalTest(tests[i][0], 'MMM', i); - equalTest(tests[i][1], 'MMM', i); - equalTest(tests[i][0], 'MMMM', i); - equalTest(tests[i][1], 'MMMM', i); - equalTest(tests[i][0].toLocaleLowerCase(), 'MMMM', i); - equalTest(tests[i][1].toLocaleLowerCase(), 'MMMM', i); - equalTest(tests[i][0].toLocaleUpperCase(), 'MMMM', i); - equalTest(tests[i][1].toLocaleUpperCase(), 'MMMM', i); - } -}); - -test('format', function (assert) { - var a = [ - ['dddd, Do-MMMM YYYY, h:mm:ss', 'Якшанба, 14-феврал 2010, 3:25:50'], - ['ddd, h:mm', 'Якш, 3:25'], - ['M Mo MM MMMM MMM', '2 2 02 феврал фев'], - ['YYYY YY', '2010 10'], - ['D Do DD', '14 14 14'], - ['d do dddd ddd dd', '0 0 Якшанба Якш Як'], - ['DDD DDDo DDDD', '45 45 045'], - ['w wo ww', '7 7 07'], - ['h hh', '3 03'], - ['H HH', '15 15'], - ['m mm', '25 25'], - ['s ss', '50 50'], - ['a A', 'pm PM'], - ['[йилнинг] DDDo-[куни]', 'йилнинг 45-куни'], - ['LTS', '15:25:50'], - ['L', '14/02/2010'], - ['LL', '14 феврал 2010'], - ['LLL', '14 феврал 2010 15:25'], - ['LLLL', '14 феврал 2010, Якшанба 15:25'], - ['l', '14/2/2010'], - ['ll', '14 фев 2010'], - ['lll', '14 фев 2010 15:25'], - ['llll', '14 фев 2010, Якш 15:25'] - ], - b = moment(new Date(2010, 1, 14, 15, 25, 50, 125)), - i; - for (i = 0; i < a.length; i++) { - assert.equal(b.format(a[i][0]), a[i][1], a[i][0] + ' ---> ' + a[i][1]); - } -}); - -test('format ordinal', function (assert) { - assert.equal(moment([2011, 0, 1]).format('DDDo'), '1', '1'); - assert.equal(moment([2011, 0, 2]).format('DDDo'), '2', '2'); - assert.equal(moment([2011, 0, 3]).format('DDDo'), '3', '3'); - assert.equal(moment([2011, 0, 4]).format('DDDo'), '4', '4'); - assert.equal(moment([2011, 0, 5]).format('DDDo'), '5', '5'); - assert.equal(moment([2011, 0, 6]).format('DDDo'), '6', '6'); - assert.equal(moment([2011, 0, 7]).format('DDDo'), '7', '7'); - assert.equal(moment([2011, 0, 8]).format('DDDo'), '8', '8'); - assert.equal(moment([2011, 0, 9]).format('DDDo'), '9', '9'); - assert.equal(moment([2011, 0, 10]).format('DDDo'), '10', '10'); - - assert.equal(moment([2011, 0, 11]).format('DDDo'), '11', '11'); - assert.equal(moment([2011, 0, 12]).format('DDDo'), '12', '12'); - assert.equal(moment([2011, 0, 13]).format('DDDo'), '13', '13'); - assert.equal(moment([2011, 0, 14]).format('DDDo'), '14', '14'); - assert.equal(moment([2011, 0, 15]).format('DDDo'), '15', '15'); - assert.equal(moment([2011, 0, 16]).format('DDDo'), '16', '16'); - assert.equal(moment([2011, 0, 17]).format('DDDo'), '17', '17'); - assert.equal(moment([2011, 0, 18]).format('DDDo'), '18', '18'); - assert.equal(moment([2011, 0, 19]).format('DDDo'), '19', '19'); - assert.equal(moment([2011, 0, 20]).format('DDDo'), '20', '20'); - - assert.equal(moment([2011, 0, 21]).format('DDDo'), '21', '21'); - assert.equal(moment([2011, 0, 22]).format('DDDo'), '22', '22'); - assert.equal(moment([2011, 0, 23]).format('DDDo'), '23', '23'); - assert.equal(moment([2011, 0, 24]).format('DDDo'), '24', '24'); - assert.equal(moment([2011, 0, 25]).format('DDDo'), '25', '25'); - assert.equal(moment([2011, 0, 26]).format('DDDo'), '26', '26'); - assert.equal(moment([2011, 0, 27]).format('DDDo'), '27', '27'); - assert.equal(moment([2011, 0, 28]).format('DDDo'), '28', '28'); - assert.equal(moment([2011, 0, 29]).format('DDDo'), '29', '29'); - assert.equal(moment([2011, 0, 30]).format('DDDo'), '30', '30'); - - assert.equal(moment([2011, 0, 31]).format('DDDo'), '31', '31'); -}); - -test('format month', function (assert) { - var expected = 'январ янв_феврал фев_март мар_апрел апр_май май_июн июн_июл июл_август авг_сентябр сен_октябр окт_ноябр ноя_декабр дек'.split('_'), i; - for (i = 0; i < expected.length; i++) { - assert.equal(moment([2011, i, 1]).format('MMMM MMM'), expected[i], expected[i]); - } -}); - -test('format week', function (assert) { - var expected = 'Якшанба Якш Як_Душанба Душ Ду_Сешанба Сеш Се_Чоршанба Чор Чо_Пайшанба Пай Па_Жума Жум Жу_Шанба Шан Ша'.split('_'), i; - for (i = 0; i < expected.length; i++) { - assert.equal(moment([2011, 0, 2 + i]).format('dddd ddd dd'), expected[i], expected[i]); - } -}); - -test('from', function (assert) { - var start = moment([2007, 1, 28]); - assert.equal(start.from(moment([2007, 1, 28]).add({s: 44}), true), 'фурсат', '44 секунд = фурсат'); - assert.equal(start.from(moment([2007, 1, 28]).add({s: 45}), true), 'бир дакика', '45 секунд = бир дакика'); - assert.equal(start.from(moment([2007, 1, 28]).add({s: 89}), true), 'бир дакика', '89 секунд = бир дакика'); - assert.equal(start.from(moment([2007, 1, 28]).add({s: 90}), true), '2 дакика', '90 секунд = 2 дакика'); - assert.equal(start.from(moment([2007, 1, 28]).add({m: 44}), true), '44 дакика', '44 дакика = 44 дакика'); - assert.equal(start.from(moment([2007, 1, 28]).add({m: 45}), true), 'бир соат', '45 минут = бир соат'); - assert.equal(start.from(moment([2007, 1, 28]).add({m: 89}), true), 'бир соат', '89 minutes = an hour'); - assert.equal(start.from(moment([2007, 1, 28]).add({m: 90}), true), '2 соат', '90 минут = 2 соат'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 5}), true), '5 соат', '5 соат = 5 соат'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 21}), true), '21 соат', '21 соат = 21 соат'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 22}), true), 'бир кун', '22 соат = бир кун'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 35}), true), 'бир кун', '35 соат = бир кун'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 36}), true), '2 кун', '36 соат = 2 кун'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 1}), true), 'бир кун', '1 кун = 1 кун'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 5}), true), '5 кун', '5 кун = 5 кун'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 25}), true), '25 кун', '25 кун = 25 кун'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 26}), true), 'бир ой', '26 кун = бир ой'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 30}), true), 'бир ой', '30 кун = бир ой'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 43}), true), 'бир ой', '45 кун = бир ой'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 46}), true), '2 ой', '46 кун = 2 ой'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 74}), true), '2 ой', '75 кун = 2 ой'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 76}), true), '3 ой', '76 кун = 3 ой'); - assert.equal(start.from(moment([2007, 1, 28]).add({M: 1}), true), 'бир ой', 'бир ой = бир ой'); - assert.equal(start.from(moment([2007, 1, 28]).add({M: 5}), true), '5 ой', '5 ой = 5 ой'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 345}), true), 'бир йил', '345 кун = бир йил'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 548}), true), '2 йил', '548 кун = 2 йил'); - assert.equal(start.from(moment([2007, 1, 28]).add({y: 1}), true), 'бир йил', '1 йил = бир йил'); - assert.equal(start.from(moment([2007, 1, 28]).add({y: 5}), true), '5 йил', '5 йил = 5 йил'); -}); - -test('suffix', function (assert) { - assert.equal(moment(30000).from(0), 'Якин фурсат ичида', 'prefix'); - assert.equal(moment(0).from(30000), 'Бир неча фурсат олдин', 'suffix'); -}); - -test('now from now', function (assert) { - assert.equal(moment().fromNow(), 'Бир неча фурсат олдин', 'now from now should display as in the past'); -}); - -test('fromNow', function (assert) { - assert.equal(moment().add({s: 30}).fromNow(), 'Якин фурсат ичида', 'in a few seconds'); - assert.equal(moment().add({d: 5}).fromNow(), 'Якин 5 кун ичида', 'in 5 days'); -}); - -test('calendar day', function (assert) { - var a = moment().hours(12).minutes(0).seconds(0); - - assert.equal(moment(a).calendar(), 'Бугун соат 12:00 да', 'today at the same time'); - assert.equal(moment(a).add({m: 25}).calendar(), 'Бугун соат 12:25 да', 'Now plus 25 min'); - assert.equal(moment(a).add({h: 1}).calendar(), 'Бугун соат 13:00 да', 'Now plus 1 hour'); - assert.equal(moment(a).add({d: 1}).calendar(), 'Эртага 12:00 да', 'tomorrow at the same time'); - assert.equal(moment(a).subtract({h: 1}).calendar(), 'Бугун соат 11:00 да', 'Now minus 1 hour'); - assert.equal(moment(a).subtract({d: 1}).calendar(), 'Кеча соат 12:00 да', 'yesterday at the same time'); -}); - -test('calendar next week', function (assert) { - var i, m; - for (i = 2; i < 7; i++) { - m = moment().add({d: i}); - assert.equal(m.calendar(), m.format('dddd [куни соат] LT [да]'), 'Today + ' + i + ' days current time'); - m.hours(0).minutes(0).seconds(0).milliseconds(0); - assert.equal(m.calendar(), m.format('dddd [куни соат] LT [да]'), 'Today + ' + i + ' days beginning of day'); - m.hours(23).minutes(59).seconds(59).milliseconds(999); - assert.equal(m.calendar(), m.format('dddd [куни соат] LT [да]'), 'Today + ' + i + ' days end of day'); - } -}); - -test('calendar last week', function (assert) { - var i, m; - - for (i = 2; i < 7; i++) { - m = moment().subtract({d: i}); - assert.equal(m.calendar(), m.format('[Утган] dddd [куни соат] LT [да]'), 'Today - ' + i + ' days current time'); - m.hours(0).minutes(0).seconds(0).milliseconds(0); - assert.equal(m.calendar(), m.format('[Утган] dddd [куни соат] LT [да]'), 'Today - ' + i + ' days beginning of day'); - m.hours(23).minutes(59).seconds(59).milliseconds(999); - assert.equal(m.calendar(), m.format('[Утган] dddd [куни соат] LT [да]'), 'Today - ' + i + ' days end of day'); - } -}); - -test('calendar all else', function (assert) { - var weeksAgo = moment().subtract({w: 1}), - weeksFromNow = moment().add({w: 1}); - - assert.equal(weeksAgo.calendar(), weeksAgo.format('L'), '1 week ago'); - assert.equal(weeksFromNow.calendar(), weeksFromNow.format('L'), 'in 1 week'); - - weeksAgo = moment().subtract({w: 2}); - weeksFromNow = moment().add({w: 2}); - - assert.equal(weeksAgo.calendar(), weeksAgo.format('L'), '2 weeks ago'); - assert.equal(weeksFromNow.calendar(), weeksFromNow.format('L'), 'in 2 weeks'); -}); - -test('weeks year starting sunday formatted', function (assert) { - assert.equal(moment([2012, 0, 1]).format('w ww wo'), '1 01 1', 'Jan 1 2012 should be week 52'); - assert.equal(moment([2012, 0, 2]).format('w ww wo'), '2 02 2', 'Jan 2 2012 should be week 1'); - assert.equal(moment([2012, 0, 8]).format('w ww wo'), '2 02 2', 'Jan 8 2012 should be week 1'); - assert.equal(moment([2012, 0, 9]).format('w ww wo'), '3 03 3', 'Jan 9 2012 should be week 2'); - assert.equal(moment([2012, 0, 15]).format('w ww wo'), '3 03 3', 'Jan 15 2012 should be week 2'); -}); - -}))); - - -;(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' - && typeof require === 'function' ? factory(require('../../moment')) : - typeof define === 'function' && define.amd ? define(['../../moment'], factory) : - factory(global.moment) -}(this, (function (moment) { 'use strict'; - -function each(array, callback) { - var i; - for (i = 0; i < array.length; i++) { - callback(array[i], i, array); - } -} - -function objectKeys(obj) { - if (Object.keys) { - return Object.keys(obj); - } else { - // IE8 - var res = [], i; - for (i in obj) { - if (obj.hasOwnProperty(i)) { - res.push(i); - } - } - return res; - } -} - -// Pick the first defined of two or three arguments. - -function defineCommonLocaleTests(locale, options) { - test('lenient day of month ordinal parsing', function (assert) { - var i, ordinalStr, testMoment; - for (i = 1; i <= 31; ++i) { - ordinalStr = moment([2014, 0, i]).format('YYYY MM Do'); - testMoment = moment(ordinalStr, 'YYYY MM Do'); - assert.equal(testMoment.year(), 2014, - 'lenient day of month ordinal parsing ' + i + ' year check'); - assert.equal(testMoment.month(), 0, - 'lenient day of month ordinal parsing ' + i + ' month check'); - assert.equal(testMoment.date(), i, - 'lenient day of month ordinal parsing ' + i + ' date check'); - } - }); - - test('lenient day of month ordinal parsing of number', function (assert) { - var i, testMoment; - for (i = 1; i <= 31; ++i) { - testMoment = moment('2014 01 ' + i, 'YYYY MM Do'); - assert.equal(testMoment.year(), 2014, - 'lenient day of month ordinal parsing of number ' + i + ' year check'); - assert.equal(testMoment.month(), 0, - 'lenient day of month ordinal parsing of number ' + i + ' month check'); - assert.equal(testMoment.date(), i, - 'lenient day of month ordinal parsing of number ' + i + ' date check'); - } - }); - - test('strict day of month ordinal parsing', function (assert) { - var i, ordinalStr, testMoment; - for (i = 1; i <= 31; ++i) { - ordinalStr = moment([2014, 0, i]).format('YYYY MM Do'); - testMoment = moment(ordinalStr, 'YYYY MM Do', true); - assert.ok(testMoment.isValid(), 'strict day of month ordinal parsing ' + i); - } - }); - - test('meridiem invariant', function (assert) { - var h, m, t1, t2; - for (h = 0; h < 24; ++h) { - for (m = 0; m < 60; m += 15) { - t1 = moment.utc([2000, 0, 1, h, m]); - t2 = moment.utc(t1.format('A h:mm'), 'A h:mm'); - assert.equal(t2.format('HH:mm'), t1.format('HH:mm'), - 'meridiem at ' + t1.format('HH:mm')); - } - } - }); - - test('date format correctness', function (assert) { - var data, tokens; - data = moment.localeData()._longDateFormat; - tokens = objectKeys(data); - each(tokens, function (srchToken) { - // Check each format string to make sure it does not contain any - // tokens that need to be expanded. - each(tokens, function (baseToken) { - // strip escaped sequences - var format = data[baseToken].replace(/(\[[^\]]*\])/g, ''); - assert.equal(false, !!~format.indexOf(srchToken), - 'contains ' + srchToken + ' in ' + baseToken); - }); - }); - }); - - test('month parsing correctness', function (assert) { - var i, m; - - if (locale === 'tr') { - // I can't fix it :( - expect(0); - return; - } - function tester(format) { - var r; - r = moment(m.format(format), format); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format); - r = moment(m.format(format).toLocaleUpperCase(), format); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' upper'); - r = moment(m.format(format).toLocaleLowerCase(), format); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' lower'); - - r = moment(m.format(format), format, true); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' strict'); - r = moment(m.format(format).toLocaleUpperCase(), format, true); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' upper strict'); - r = moment(m.format(format).toLocaleLowerCase(), format, true); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' lower strict'); - } - - for (i = 0; i < 12; ++i) { - m = moment([2015, i, 15, 18]); - tester('MMM'); - tester('MMM.'); - tester('MMMM'); - tester('MMMM.'); - } - }); - - test('weekday parsing correctness', function (assert) { - var i, m; - - if (locale === 'tr' || locale === 'az' || locale === 'ro') { - // tr, az: There is a lower-case letter (ı), that converted to - // upper then lower changes to i - // ro: there is the letter ț which behaves weird under IE8 - expect(0); - return; - } - function tester(format) { - var r, baseMsg = 'weekday ' + m.weekday() + ' fmt ' + format + ' ' + m.toISOString(); - r = moment(m.format(format), format); - assert.equal(r.weekday(), m.weekday(), baseMsg); - r = moment(m.format(format).toLocaleUpperCase(), format); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' upper'); - r = moment(m.format(format).toLocaleLowerCase(), format); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' lower'); - - r = moment(m.format(format), format, true); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' strict'); - r = moment(m.format(format).toLocaleUpperCase(), format, true); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' upper strict'); - r = moment(m.format(format).toLocaleLowerCase(), format, true); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' lower strict'); - } - - for (i = 0; i < 7; ++i) { - m = moment.utc([2015, 0, i + 1, 18]); - tester('dd'); - tester('ddd'); - tester('dddd'); - } - }); - - test('valid localeData', function (assert) { - assert.equal(moment().localeData().months().length, 12, 'months should return 12 months'); - assert.equal(moment().localeData().monthsShort().length, 12, 'monthsShort should return 12 months'); - assert.equal(moment().localeData().weekdays().length, 7, 'weekdays should return 7 days'); - assert.equal(moment().localeData().weekdaysShort().length, 7, 'weekdaysShort should return 7 days'); - assert.equal(moment().localeData().weekdaysMin().length, 7, 'monthsShort should return 7 days'); - }); -} - -function setupDeprecationHandler(test, moment$$1, scope) { - test._expectedDeprecations = null; - test._observedDeprecations = null; - test._oldSupress = moment$$1.suppressDeprecationWarnings; - moment$$1.suppressDeprecationWarnings = true; - test.expectedDeprecations = function () { - test._expectedDeprecations = arguments; - test._observedDeprecations = []; - }; - moment$$1.deprecationHandler = function (name, msg) { - var deprecationId = matchedDeprecation(name, msg, test._expectedDeprecations); - if (deprecationId === -1) { - throw new Error('Unexpected deprecation thrown name=' + - name + ' msg=' + msg); - } - test._observedDeprecations[deprecationId] = 1; - }; -} - -function teardownDeprecationHandler(test, moment$$1, scope) { - moment$$1.suppressDeprecationWarnings = test._oldSupress; - - if (test._expectedDeprecations != null) { - var missedDeprecations = []; - each(test._expectedDeprecations, function (deprecationPattern, id) { - if (test._observedDeprecations[id] !== 1) { - missedDeprecations.push(deprecationPattern); - } - }); - if (missedDeprecations.length !== 0) { - throw new Error('Expected deprecation warnings did not happen: ' + - missedDeprecations.join(' ')); - } - } -} - -function matchedDeprecation(name, msg, deprecations) { - if (deprecations == null) { - return -1; - } - for (var i = 0; i < deprecations.length; ++i) { - if (name != null && name === deprecations[i]) { - return i; - } - if (msg != null && msg.substring(0, deprecations[i].length) === deprecations[i]) { - return i; - } - } - return -1; -} - -/*global QUnit:false*/ - -var test = QUnit.test; - -var expect = QUnit.expect; - - - -function localeModule (name, lifecycle) { - QUnit.module('locale:' + name, { - setup : function () { - moment.locale(name); - moment.createFromInputFallback = function (config) { - throw new Error('input not handled by moment: ' + config._i); - }; - setupDeprecationHandler(test, moment, 'locale'); - if (lifecycle && lifecycle.setup) { - lifecycle.setup(); - } - }, - teardown : function () { - moment.locale('en'); - teardownDeprecationHandler(test, moment, 'locale'); - if (lifecycle && lifecycle.teardown) { - lifecycle.teardown(); - } - } - }); - defineCommonLocaleTests(name, -1, -1); -} - -localeModule('vi'); - -test('parse', function (assert) { - var i, - tests = 'tháng 1,Th01_tháng 2,Th02_tháng 3,Th03_tháng 4,Th04_tháng 5,Th05_tháng 6,Th06_tháng 7,Th07_tháng 8,Th08_tháng 9,Th09_tháng 10,Th10_tháng 11,Th11_tháng 12,Th12'.split('_'); - - function equalTest(input, mmm, i) { - assert.equal(moment(input, mmm).month(), i, input + ' should be month ' + i); - } - - for (i = 0; i < 12; i++) { - tests[i] = tests[i].split(','); - equalTest(tests[i][0], '[tháng] M', i); - equalTest(tests[i][1], '[Th]M', i); - equalTest(tests[i][0], '[tháng] MM', i); - equalTest(tests[i][1], '[Th]MM', i); - equalTest(tests[i][0].toLocaleLowerCase(), '[THÁNG] M', i); - equalTest(tests[i][1].toLocaleLowerCase(), '[TH]M', i); - equalTest(tests[i][0].toLocaleUpperCase(), '[THÁNG] MM', i); - equalTest(tests[i][1].toLocaleUpperCase(), '[TH]MM', i); - } -}); - -test('format', function (assert) { - var a = [ - ['dddd, MMMM Do YYYY, h:mm:ss a', 'chủ nhật, tháng 2 14 2010, 3:25:50 ch'], - ['ddd, hA', 'CN, 3CH'], - ['M Mo MM MMMM MMM', '2 2 02 tháng 2 Th02'], - ['YYYY YY', '2010 10'], - ['D Do DD', '14 14 14'], - ['d do dddd ddd dd', '0 0 chủ nhật CN CN'], - ['DDD DDDo DDDD', '45 45 045'], - ['w wo ww', '6 6 06'], - ['h hh', '3 03'], - ['H HH', '15 15'], - ['m mm', '25 25'], - ['s ss', '50 50'], - ['a A', 'ch CH'], - ['[ngày thứ] DDDo [của năm]', 'ngày thứ 45 của năm'], - ['LTS', '15:25:50'], - ['L', '14/02/2010'], - ['LL', '14 tháng 2 năm 2010'], - ['LLL', '14 tháng 2 năm 2010 15:25'], - ['LLLL', 'chủ nhật, 14 tháng 2 năm 2010 15:25'], - ['l', '14/2/2010'], - ['ll', '14 Th02 2010'], - ['lll', '14 Th02 2010 15:25'], - ['llll', 'CN, 14 Th02 2010 15:25'] - ], - b = moment(new Date(2010, 1, 14, 15, 25, 50, 125)), - i; - - for (i = 0; i < a.length; i++) { - assert.equal(b.format(a[i][0]), a[i][1], a[i][0] + ' ---> ' + a[i][1]); - } -}); - -test('format ordinal', function (assert) { - assert.equal(moment([2011, 0, 1]).format('DDDo'), '1', '1'); - assert.equal(moment([2011, 0, 2]).format('DDDo'), '2', '2'); - assert.equal(moment([2011, 0, 3]).format('DDDo'), '3', '3'); - assert.equal(moment([2011, 0, 4]).format('DDDo'), '4', '4'); - assert.equal(moment([2011, 0, 5]).format('DDDo'), '5', '5'); - assert.equal(moment([2011, 0, 6]).format('DDDo'), '6', '6'); - assert.equal(moment([2011, 0, 7]).format('DDDo'), '7', '7'); - assert.equal(moment([2011, 0, 8]).format('DDDo'), '8', '8'); - assert.equal(moment([2011, 0, 9]).format('DDDo'), '9', '9'); - assert.equal(moment([2011, 0, 10]).format('DDDo'), '10', '10'); - - assert.equal(moment([2011, 0, 11]).format('DDDo'), '11', '11'); - assert.equal(moment([2011, 0, 12]).format('DDDo'), '12', '12'); - assert.equal(moment([2011, 0, 13]).format('DDDo'), '13', '13'); - assert.equal(moment([2011, 0, 14]).format('DDDo'), '14', '14'); - assert.equal(moment([2011, 0, 15]).format('DDDo'), '15', '15'); - assert.equal(moment([2011, 0, 16]).format('DDDo'), '16', '16'); - assert.equal(moment([2011, 0, 17]).format('DDDo'), '17', '17'); - assert.equal(moment([2011, 0, 18]).format('DDDo'), '18', '18'); - assert.equal(moment([2011, 0, 19]).format('DDDo'), '19', '19'); - assert.equal(moment([2011, 0, 20]).format('DDDo'), '20', '20'); - - assert.equal(moment([2011, 0, 21]).format('DDDo'), '21', '21'); - assert.equal(moment([2011, 0, 22]).format('DDDo'), '22', '22'); - assert.equal(moment([2011, 0, 23]).format('DDDo'), '23', '23'); - assert.equal(moment([2011, 0, 24]).format('DDDo'), '24', '24'); - assert.equal(moment([2011, 0, 25]).format('DDDo'), '25', '25'); - assert.equal(moment([2011, 0, 26]).format('DDDo'), '26', '26'); - assert.equal(moment([2011, 0, 27]).format('DDDo'), '27', '27'); - assert.equal(moment([2011, 0, 28]).format('DDDo'), '28', '28'); - assert.equal(moment([2011, 0, 29]).format('DDDo'), '29', '29'); - assert.equal(moment([2011, 0, 30]).format('DDDo'), '30', '30'); - - assert.equal(moment([2011, 0, 31]).format('DDDo'), '31', '31'); -}); - -test('format month', function (assert) { - var i, - expected = 'tháng 1,Th01_tháng 2,Th02_tháng 3,Th03_tháng 4,Th04_tháng 5,Th05_tháng 6,Th06_tháng 7,Th07_tháng 8,Th08_tháng 9,Th09_tháng 10,Th10_tháng 11,Th11_tháng 12,Th12'.split('_'); - - for (i = 0; i < expected.length; i++) { - assert.equal(moment([2011, i, 1]).format('MMMM,MMM'), expected[i], expected[i]); - } -}); - -test('format week', function (assert) { - var i, - expected = 'chủ nhật CN CN_thứ hai T2 T2_thứ ba T3 T3_thứ tư T4 T4_thứ năm T5 T5_thứ sáu T6 T6_thứ bảy T7 T7'.split('_'); - - for (i = 0; i < expected.length; i++) { - assert.equal(moment([2011, 0, 2 + i]).format('dddd ddd dd'), expected[i], expected[i]); - } -}); - -test('from', function (assert) { - var start = moment([2007, 1, 28]); - - assert.equal(start.from(moment([2007, 1, 28]).add({s: 44}), true), 'vài giây', '44 seconds = a few seconds'); - assert.equal(start.from(moment([2007, 1, 28]).add({s: 45}), true), 'một phút', '45 seconds = a minute'); - assert.equal(start.from(moment([2007, 1, 28]).add({s: 89}), true), 'một phút', '89 seconds = a minute'); - assert.equal(start.from(moment([2007, 1, 28]).add({s: 90}), true), '2 phút', '90 seconds = 2 minutes'); - assert.equal(start.from(moment([2007, 1, 28]).add({m: 44}), true), '44 phút', '44 minutes = 44 minutes'); - assert.equal(start.from(moment([2007, 1, 28]).add({m: 45}), true), 'một giờ', '45 minutes = an hour'); - assert.equal(start.from(moment([2007, 1, 28]).add({m: 89}), true), 'một giờ', '89 minutes = an hour'); - assert.equal(start.from(moment([2007, 1, 28]).add({m: 90}), true), '2 giờ', '90 minutes = 2 hours'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 5}), true), '5 giờ', '5 hours = 5 hours'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 21}), true), '21 giờ', '21 hours = 21 hours'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 22}), true), 'một ngày', '22 hours = a day'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 35}), true), 'một ngày', '35 hours = a day'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 36}), true), '2 ngày', '36 hours = 2 days'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 1}), true), 'một ngày', '1 day = a day'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 5}), true), '5 ngày', '5 days = 5 days'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 25}), true), '25 ngày', '25 days = 25 days'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 26}), true), 'một tháng', '26 days = a month'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 30}), true), 'một tháng', '30 days = a month'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 43}), true), 'một tháng', '43 days = a month'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 46}), true), '2 tháng', '46 days = 2 months'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 74}), true), '2 tháng', '75 days = 2 months'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 76}), true), '3 tháng', '76 days = 3 months'); - assert.equal(start.from(moment([2007, 1, 28]).add({M: 1}), true), 'một tháng', '1 month = a month'); - assert.equal(start.from(moment([2007, 1, 28]).add({M: 5}), true), '5 tháng', '5 months = 5 months'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 345}), true), 'một năm', '345 days = a year'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 548}), true), '2 năm', '548 days = 2 years'); - assert.equal(start.from(moment([2007, 1, 28]).add({y: 1}), true), 'một năm', '1 year = a year'); - assert.equal(start.from(moment([2007, 1, 28]).add({y: 5}), true), '5 năm', '5 years = 5 years'); -}); - -test('suffix', function (assert) { - assert.equal(moment(30000).from(0), 'vài giây tới', 'prefix'); - assert.equal(moment(0).from(30000), 'vài giây trước', 'suffix'); -}); - -test('now from now', function (assert) { - assert.equal(moment().fromNow(), 'vài giây trước', 'now from now should display as in the past'); -}); - -test('fromNow', function (assert) { - assert.equal(moment().add({s: 30}).fromNow(), 'vài giây tới', 'in a few seconds'); - assert.equal(moment().add({d: 5}).fromNow(), '5 ngày tới', 'in 5 days'); -}); - -test('calendar day', function (assert) { - var a = moment().hours(12).minutes(0).seconds(0); - - assert.equal(moment(a).calendar(), 'Hôm nay lúc 12:00', 'today at the same time'); - assert.equal(moment(a).add({m: 25}).calendar(), 'Hôm nay lúc 12:25', 'Now plus 25 min'); - assert.equal(moment(a).add({h: 1}).calendar(), 'Hôm nay lúc 13:00', 'Now plus 1 hour'); - assert.equal(moment(a).add({d: 1}).calendar(), 'Ngày mai lúc 12:00', 'tomorrow at the same time'); - assert.equal(moment(a).subtract({h: 1}).calendar(), 'Hôm nay lúc 11:00', 'Now minus 1 hour'); - assert.equal(moment(a).subtract({d: 1}).calendar(), 'Hôm qua lúc 12:00', 'yesterday at the same time'); -}); - -test('calendar next week', function (assert) { - var i, m; - - for (i = 2; i < 7; i++) { - m = moment().add({d: i}); - assert.equal(m.calendar(), m.format('dddd [tuần tới lúc] LT'), 'Today + ' + i + ' days current time'); - m.hours(0).minutes(0).seconds(0).milliseconds(0); - assert.equal(m.calendar(), m.format('dddd [tuần tới lúc] LT'), 'Today + ' + i + ' days beginning of day'); - m.hours(23).minutes(59).seconds(59).milliseconds(999); - assert.equal(m.calendar(), m.format('dddd [tuần tới lúc] LT'), 'Today + ' + i + ' days end of day'); - } -}); - -test('calendar last week', function (assert) { - var i, m; - - for (i = 2; i < 7; i++) { - m = moment().subtract({d: i}); - assert.equal(m.calendar(), m.format('dddd [tuần rồi lúc] LT'), 'Today - ' + i + ' days current time'); - m.hours(0).minutes(0).seconds(0).milliseconds(0); - assert.equal(m.calendar(), m.format('dddd [tuần rồi lúc] LT'), 'Today - ' + i + ' days beginning of day'); - m.hours(23).minutes(59).seconds(59).milliseconds(999); - assert.equal(m.calendar(), m.format('dddd [tuần rồi lúc] LT'), 'Today - ' + i + ' days end of day'); - } -}); - -test('calendar all else', function (assert) { - var weeksAgo = moment().subtract({w: 1}), - weeksFromNow = moment().add({w: 1}); - - assert.equal(weeksAgo.calendar(), weeksAgo.format('L'), '1 week ago'); - assert.equal(weeksFromNow.calendar(), weeksFromNow.format('L'), 'in 1 week'); - - weeksAgo = moment().subtract({w: 2}); - weeksFromNow = moment().add({w: 2}); - - assert.equal(weeksAgo.calendar(), weeksAgo.format('L'), '2 weeks ago'); - assert.equal(weeksFromNow.calendar(), weeksFromNow.format('L'), 'in 2 weeks'); -}); - -test('weeks year starting sunday formatted', function (assert) { - assert.equal(moment([2012, 0, 1]).format('w ww wo'), '52 52 52', 'Jan 1 2012 should be week 52'); - assert.equal(moment([2012, 0, 2]).format('w ww wo'), '1 01 1', 'Jan 2 2012 should be week 1'); - assert.equal(moment([2012, 0, 8]).format('w ww wo'), '1 01 1', 'Jan 8 2012 should be week 1'); - assert.equal(moment([2012, 0, 9]).format('w ww wo'), '2 02 2', 'Jan 9 2012 should be week 2'); - assert.equal(moment([2012, 0, 15]).format('w ww wo'), '2 02 2', 'Jan 15 2012 should be week 2'); -}); - -}))); - - -;(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' - && typeof require === 'function' ? factory(require('../../moment')) : - typeof define === 'function' && define.amd ? define(['../../moment'], factory) : - factory(global.moment) -}(this, (function (moment) { 'use strict'; - -function each(array, callback) { - var i; - for (i = 0; i < array.length; i++) { - callback(array[i], i, array); - } -} - -function objectKeys(obj) { - if (Object.keys) { - return Object.keys(obj); - } else { - // IE8 - var res = [], i; - for (i in obj) { - if (obj.hasOwnProperty(i)) { - res.push(i); - } - } - return res; - } -} - -// Pick the first defined of two or three arguments. - -function defineCommonLocaleTests(locale, options) { - test('lenient day of month ordinal parsing', function (assert) { - var i, ordinalStr, testMoment; - for (i = 1; i <= 31; ++i) { - ordinalStr = moment([2014, 0, i]).format('YYYY MM Do'); - testMoment = moment(ordinalStr, 'YYYY MM Do'); - assert.equal(testMoment.year(), 2014, - 'lenient day of month ordinal parsing ' + i + ' year check'); - assert.equal(testMoment.month(), 0, - 'lenient day of month ordinal parsing ' + i + ' month check'); - assert.equal(testMoment.date(), i, - 'lenient day of month ordinal parsing ' + i + ' date check'); - } - }); - - test('lenient day of month ordinal parsing of number', function (assert) { - var i, testMoment; - for (i = 1; i <= 31; ++i) { - testMoment = moment('2014 01 ' + i, 'YYYY MM Do'); - assert.equal(testMoment.year(), 2014, - 'lenient day of month ordinal parsing of number ' + i + ' year check'); - assert.equal(testMoment.month(), 0, - 'lenient day of month ordinal parsing of number ' + i + ' month check'); - assert.equal(testMoment.date(), i, - 'lenient day of month ordinal parsing of number ' + i + ' date check'); - } - }); - - test('strict day of month ordinal parsing', function (assert) { - var i, ordinalStr, testMoment; - for (i = 1; i <= 31; ++i) { - ordinalStr = moment([2014, 0, i]).format('YYYY MM Do'); - testMoment = moment(ordinalStr, 'YYYY MM Do', true); - assert.ok(testMoment.isValid(), 'strict day of month ordinal parsing ' + i); - } - }); - - test('meridiem invariant', function (assert) { - var h, m, t1, t2; - for (h = 0; h < 24; ++h) { - for (m = 0; m < 60; m += 15) { - t1 = moment.utc([2000, 0, 1, h, m]); - t2 = moment.utc(t1.format('A h:mm'), 'A h:mm'); - assert.equal(t2.format('HH:mm'), t1.format('HH:mm'), - 'meridiem at ' + t1.format('HH:mm')); - } - } - }); - - test('date format correctness', function (assert) { - var data, tokens; - data = moment.localeData()._longDateFormat; - tokens = objectKeys(data); - each(tokens, function (srchToken) { - // Check each format string to make sure it does not contain any - // tokens that need to be expanded. - each(tokens, function (baseToken) { - // strip escaped sequences - var format = data[baseToken].replace(/(\[[^\]]*\])/g, ''); - assert.equal(false, !!~format.indexOf(srchToken), - 'contains ' + srchToken + ' in ' + baseToken); - }); - }); - }); - - test('month parsing correctness', function (assert) { - var i, m; - - if (locale === 'tr') { - // I can't fix it :( - expect(0); - return; - } - function tester(format) { - var r; - r = moment(m.format(format), format); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format); - r = moment(m.format(format).toLocaleUpperCase(), format); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' upper'); - r = moment(m.format(format).toLocaleLowerCase(), format); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' lower'); - - r = moment(m.format(format), format, true); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' strict'); - r = moment(m.format(format).toLocaleUpperCase(), format, true); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' upper strict'); - r = moment(m.format(format).toLocaleLowerCase(), format, true); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' lower strict'); - } - - for (i = 0; i < 12; ++i) { - m = moment([2015, i, 15, 18]); - tester('MMM'); - tester('MMM.'); - tester('MMMM'); - tester('MMMM.'); - } - }); - - test('weekday parsing correctness', function (assert) { - var i, m; - - if (locale === 'tr' || locale === 'az' || locale === 'ro') { - // tr, az: There is a lower-case letter (ı), that converted to - // upper then lower changes to i - // ro: there is the letter ț which behaves weird under IE8 - expect(0); - return; - } - function tester(format) { - var r, baseMsg = 'weekday ' + m.weekday() + ' fmt ' + format + ' ' + m.toISOString(); - r = moment(m.format(format), format); - assert.equal(r.weekday(), m.weekday(), baseMsg); - r = moment(m.format(format).toLocaleUpperCase(), format); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' upper'); - r = moment(m.format(format).toLocaleLowerCase(), format); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' lower'); - - r = moment(m.format(format), format, true); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' strict'); - r = moment(m.format(format).toLocaleUpperCase(), format, true); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' upper strict'); - r = moment(m.format(format).toLocaleLowerCase(), format, true); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' lower strict'); - } - - for (i = 0; i < 7; ++i) { - m = moment.utc([2015, 0, i + 1, 18]); - tester('dd'); - tester('ddd'); - tester('dddd'); - } - }); - - test('valid localeData', function (assert) { - assert.equal(moment().localeData().months().length, 12, 'months should return 12 months'); - assert.equal(moment().localeData().monthsShort().length, 12, 'monthsShort should return 12 months'); - assert.equal(moment().localeData().weekdays().length, 7, 'weekdays should return 7 days'); - assert.equal(moment().localeData().weekdaysShort().length, 7, 'weekdaysShort should return 7 days'); - assert.equal(moment().localeData().weekdaysMin().length, 7, 'monthsShort should return 7 days'); - }); -} - -function setupDeprecationHandler(test, moment$$1, scope) { - test._expectedDeprecations = null; - test._observedDeprecations = null; - test._oldSupress = moment$$1.suppressDeprecationWarnings; - moment$$1.suppressDeprecationWarnings = true; - test.expectedDeprecations = function () { - test._expectedDeprecations = arguments; - test._observedDeprecations = []; - }; - moment$$1.deprecationHandler = function (name, msg) { - var deprecationId = matchedDeprecation(name, msg, test._expectedDeprecations); - if (deprecationId === -1) { - throw new Error('Unexpected deprecation thrown name=' + - name + ' msg=' + msg); - } - test._observedDeprecations[deprecationId] = 1; - }; -} - -function teardownDeprecationHandler(test, moment$$1, scope) { - moment$$1.suppressDeprecationWarnings = test._oldSupress; - - if (test._expectedDeprecations != null) { - var missedDeprecations = []; - each(test._expectedDeprecations, function (deprecationPattern, id) { - if (test._observedDeprecations[id] !== 1) { - missedDeprecations.push(deprecationPattern); - } - }); - if (missedDeprecations.length !== 0) { - throw new Error('Expected deprecation warnings did not happen: ' + - missedDeprecations.join(' ')); - } - } -} - -function matchedDeprecation(name, msg, deprecations) { - if (deprecations == null) { - return -1; - } - for (var i = 0; i < deprecations.length; ++i) { - if (name != null && name === deprecations[i]) { - return i; - } - if (msg != null && msg.substring(0, deprecations[i].length) === deprecations[i]) { - return i; - } - } - return -1; -} - -/*global QUnit:false*/ - -var test = QUnit.test; - -var expect = QUnit.expect; - - - -function localeModule (name, lifecycle) { - QUnit.module('locale:' + name, { - setup : function () { - moment.locale(name); - moment.createFromInputFallback = function (config) { - throw new Error('input not handled by moment: ' + config._i); - }; - setupDeprecationHandler(test, moment, 'locale'); - if (lifecycle && lifecycle.setup) { - lifecycle.setup(); - } - }, - teardown : function () { - moment.locale('en'); - teardownDeprecationHandler(test, moment, 'locale'); - if (lifecycle && lifecycle.teardown) { - lifecycle.teardown(); - } - } - }); - defineCommonLocaleTests(name, -1, -1); -} - -localeModule('x-pseudo'); - -test('parse', function (assert) { - var tests = 'J~áñúá~rý J~áñ_F~ébrú~árý ~Féb_~Márc~h ~Már_Áp~ríl ~Ápr_~Máý ~Máý_~Júñé~ ~Júñ_Júl~ý ~Júl_Áú~gúst~ ~Áúg_Sép~témb~ér ~Sép_Ó~ctób~ér ~Óct_Ñ~óvém~bér ~Ñóv_~Décé~mbér ~Déc'.split('_'), i; - function equalTest(input, mmm, i) { - assert.equal(moment(input, mmm).month(), i, input + ' should be month ' + (i + 1)); - } - for (i = 0; i < 12; i++) { - tests[i] = tests[i].split(' '); - equalTest(tests[i][0], 'MMM', i); - equalTest(tests[i][1], 'MMM', i); - equalTest(tests[i][0], 'MMMM', i); - equalTest(tests[i][1], 'MMMM', i); - equalTest(tests[i][0].toLocaleLowerCase(), 'MMMM', i); - equalTest(tests[i][1].toLocaleLowerCase(), 'MMMM', i); - equalTest(tests[i][0].toLocaleUpperCase(), 'MMMM', i); - equalTest(tests[i][1].toLocaleUpperCase(), 'MMMM', i); - } -}); - -test('format', function (assert) { - var a = [ - ['dddd, MMMM Do YYYY, h:mm:ss a', 'S~úñdá~ý, F~ébrú~árý 14th 2010, 3:25:50 pm'], - ['ddd, hA', 'S~úñ, 3PM'], - ['M Mo MM MMMM MMM', '2 2nd 02 F~ébrú~árý ~Féb'], - ['YYYY YY', '2010 10'], - ['D Do DD', '14 14th 14'], - ['d do dddd ddd dd', '0 0th S~úñdá~ý S~úñ S~ú'], - ['DDD DDDo DDDD', '45 45th 045'], - ['w wo ww', '6 6th 06'], - ['h hh', '3 03'], - ['H HH', '15 15'], - ['m mm', '25 25'], - ['s ss', '50 50'], - ['a A', 'pm PM'], - ['[the] DDDo [day of the year]', 'the 45th day of the year'], - ['LT', '15:25'], - ['L', '14/02/2010'], - ['LL', '14 F~ébrú~árý 2010'], - ['LLL', '14 F~ébrú~árý 2010 15:25'], - ['LLLL', 'S~úñdá~ý, 14 F~ébrú~árý 2010 15:25'], - ['l', '14/2/2010'], - ['ll', '14 ~Féb 2010'], - ['lll', '14 ~Féb 2010 15:25'], - ['llll', 'S~úñ, 14 ~Féb 2010 15:25'] - ], - b = moment(new Date(2010, 1, 14, 15, 25, 50, 125)), - i; - for (i = 0; i < a.length; i++) { - assert.equal(b.format(a[i][0]), a[i][1], a[i][0] + ' ---> ' + a[i][1]); - } -}); - -test('format ordinal', function (assert) { - assert.equal(moment([2011, 0, 1]).format('DDDo'), '1st', '1st'); - assert.equal(moment([2011, 0, 2]).format('DDDo'), '2nd', '2nd'); - assert.equal(moment([2011, 0, 3]).format('DDDo'), '3rd', '3rd'); - assert.equal(moment([2011, 0, 4]).format('DDDo'), '4th', '4th'); - assert.equal(moment([2011, 0, 5]).format('DDDo'), '5th', '5th'); - assert.equal(moment([2011, 0, 6]).format('DDDo'), '6th', '6th'); - assert.equal(moment([2011, 0, 7]).format('DDDo'), '7th', '7th'); - assert.equal(moment([2011, 0, 8]).format('DDDo'), '8th', '8th'); - assert.equal(moment([2011, 0, 9]).format('DDDo'), '9th', '9th'); - assert.equal(moment([2011, 0, 10]).format('DDDo'), '10th', '10th'); - - assert.equal(moment([2011, 0, 11]).format('DDDo'), '11th', '11th'); - assert.equal(moment([2011, 0, 12]).format('DDDo'), '12th', '12th'); - assert.equal(moment([2011, 0, 13]).format('DDDo'), '13th', '13th'); - assert.equal(moment([2011, 0, 14]).format('DDDo'), '14th', '14th'); - assert.equal(moment([2011, 0, 15]).format('DDDo'), '15th', '15th'); - assert.equal(moment([2011, 0, 16]).format('DDDo'), '16th', '16th'); - assert.equal(moment([2011, 0, 17]).format('DDDo'), '17th', '17th'); - assert.equal(moment([2011, 0, 18]).format('DDDo'), '18th', '18th'); - assert.equal(moment([2011, 0, 19]).format('DDDo'), '19th', '19th'); - assert.equal(moment([2011, 0, 20]).format('DDDo'), '20th', '20th'); - - assert.equal(moment([2011, 0, 21]).format('DDDo'), '21st', '21st'); - assert.equal(moment([2011, 0, 22]).format('DDDo'), '22nd', '22nd'); - assert.equal(moment([2011, 0, 23]).format('DDDo'), '23rd', '23rd'); - assert.equal(moment([2011, 0, 24]).format('DDDo'), '24th', '24th'); - assert.equal(moment([2011, 0, 25]).format('DDDo'), '25th', '25th'); - assert.equal(moment([2011, 0, 26]).format('DDDo'), '26th', '26th'); - assert.equal(moment([2011, 0, 27]).format('DDDo'), '27th', '27th'); - assert.equal(moment([2011, 0, 28]).format('DDDo'), '28th', '28th'); - assert.equal(moment([2011, 0, 29]).format('DDDo'), '29th', '29th'); - assert.equal(moment([2011, 0, 30]).format('DDDo'), '30th', '30th'); - - assert.equal(moment([2011, 0, 31]).format('DDDo'), '31st', '31st'); -}); - -test('format month', function (assert) { - var expected = 'J~áñúá~rý J~áñ_F~ébrú~árý ~Féb_~Márc~h ~Már_Áp~ríl ~Ápr_~Máý ~Máý_~Júñé~ ~Júñ_Júl~ý ~Júl_Áú~gúst~ ~Áúg_Sép~témb~ér ~Sép_Ó~ctób~ér ~Óct_Ñ~óvém~bér ~Ñóv_~Décé~mbér ~Déc'.split('_'), i; - for (i = 0; i < expected.length; i++) { - assert.equal(moment([2011, i, 1]).format('MMMM MMM'), expected[i], expected[i]); - } -}); - -test('format week', function (assert) { - var expected = 'S~úñdá~ý S~úñ S~ú_Mó~ñdáý~ ~Móñ Mó~_Túé~sdáý~ ~Túé Tú_Wéd~ñésd~áý ~Wéd ~Wé_T~húrs~dáý ~Thú T~h_~Fríd~áý ~Frí Fr~_S~átúr~dáý ~Sát Sá'.split('_'), i; - for (i = 0; i < expected.length; i++) { - assert.equal(moment([2011, 0, 2 + i]).format('dddd ddd dd'), expected[i], expected[i]); - } -}); - -test('from', function (assert) { - var start = moment([2007, 1, 28]); - assert.equal(start.from(moment([2007, 1, 28]).add({s: 44}), true), 'á ~féw ~sécó~ñds', '44 seconds = a few seconds'); - assert.equal(start.from(moment([2007, 1, 28]).add({s: 45}), true), 'á ~míñ~úté', '45 seconds = a minute'); - assert.equal(start.from(moment([2007, 1, 28]).add({s: 89}), true), 'á ~míñ~úté', '89 seconds = a minute'); - assert.equal(start.from(moment([2007, 1, 28]).add({s: 90}), true), '2 m~íñú~tés', '90 seconds = 2 minutes'); - assert.equal(start.from(moment([2007, 1, 28]).add({m: 44}), true), '44 m~íñú~tés', '44 minutes = 44 minutes'); - assert.equal(start.from(moment([2007, 1, 28]).add({m: 45}), true), 'á~ñ hó~úr', '45 minutes = an hour'); - assert.equal(start.from(moment([2007, 1, 28]).add({m: 89}), true), 'á~ñ hó~úr', '89 minutes = an hour'); - assert.equal(start.from(moment([2007, 1, 28]).add({m: 90}), true), '2 h~óúrs', '90 minutes = 2 hours'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 5}), true), '5 h~óúrs', '5 hours = 5 hours'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 21}), true), '21 h~óúrs', '21 hours = 21 hours'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 22}), true), 'á ~dáý', '22 hours = a day'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 35}), true), 'á ~dáý', '35 hours = a day'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 36}), true), '2 d~áýs', '36 hours = 2 days'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 1}), true), 'á ~dáý', '1 day = a day'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 5}), true), '5 d~áýs', '5 days = 5 days'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 25}), true), '25 d~áýs', '25 days = 25 days'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 26}), true), 'á ~móñ~th', '26 days = a month'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 30}), true), 'á ~móñ~th', '30 days = a month'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 43}), true), 'á ~móñ~th', '43 days = a month'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 46}), true), '2 m~óñt~hs', '46 days = 2 months'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 74}), true), '2 m~óñt~hs', '75 days = 2 months'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 76}), true), '3 m~óñt~hs', '76 days = 3 months'); - assert.equal(start.from(moment([2007, 1, 28]).add({M: 1}), true), 'á ~móñ~th', '1 month = a month'); - assert.equal(start.from(moment([2007, 1, 28]).add({M: 5}), true), '5 m~óñt~hs', '5 months = 5 months'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 345}), true), 'á ~ýéár', '345 days = a year'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 548}), true), '2 ý~éárs', '548 days = 2 years'); - assert.equal(start.from(moment([2007, 1, 28]).add({y: 1}), true), 'á ~ýéár', '1 year = a year'); - assert.equal(start.from(moment([2007, 1, 28]).add({y: 5}), true), '5 ý~éárs', '5 years = 5 years'); -}); - -test('suffix', function (assert) { - assert.equal(moment(30000).from(0), 'í~ñ á ~féw ~sécó~ñds', 'prefix'); - assert.equal(moment(0).from(30000), 'á ~féw ~sécó~ñds á~gó', 'suffix'); -}); - -test('now from now', function (assert) { - assert.equal(moment().fromNow(), 'á ~féw ~sécó~ñds á~gó', 'now from now should display as in the past'); -}); - -test('fromNow', function (assert) { - assert.equal(moment().add({s: 30}).fromNow(), 'í~ñ á ~féw ~sécó~ñds', 'in a few seconds'); - assert.equal(moment().add({d: 5}).fromNow(), 'í~ñ 5 d~áýs', 'in 5 days'); -}); - -test('calendar day', function (assert) { - var a = moment().hours(2).minutes(0).seconds(0); - - assert.equal(moment(a).calendar(), 'T~ódá~ý át 02:00', 'today at the same time'); - assert.equal(moment(a).add({m: 25}).calendar(), 'T~ódá~ý át 02:25', 'Now plus 25 min'); - assert.equal(moment(a).add({h: 1}).calendar(), 'T~ódá~ý át 03:00', 'Now plus 1 hour'); - assert.equal(moment(a).add({d: 1}).calendar(), 'T~ómó~rró~w át 02:00', 'tomorrow at the same time'); - assert.equal(moment(a).subtract({h: 1}).calendar(), 'T~ódá~ý át 01:00', 'Now minus 1 hour'); - assert.equal(moment(a).subtract({d: 1}).calendar(), 'Ý~ést~érdá~ý át 02:00', 'yesterday at the same time'); -}); - -test('calendar next week', function (assert) { - var i, m; - for (i = 2; i < 7; i++) { - m = moment().add({d: i}); - assert.equal(m.calendar(), m.format('dddd [át] LT'), 'Today + ' + i + ' days current time'); - m.hours(0).minutes(0).seconds(0).milliseconds(0); - assert.equal(m.calendar(), m.format('dddd [át] LT'), 'Today + ' + i + ' days beginning of day'); - m.hours(23).minutes(59).seconds(59).milliseconds(999); - assert.equal(m.calendar(), m.format('dddd [át] LT'), 'Today + ' + i + ' days end of day'); - } -}); - -test('calendar last week', function (assert) { - var i, m; - - for (i = 2; i < 7; i++) { - m = moment().subtract({d: i}); - assert.equal(m.calendar(), m.format('[L~ást] dddd [át] LT'), 'Today - ' + i + ' days current time'); - m.hours(0).minutes(0).seconds(0).milliseconds(0); - assert.equal(m.calendar(), m.format('[L~ást] dddd [át] LT'), 'Today - ' + i + ' days beginning of day'); - m.hours(23).minutes(59).seconds(59).milliseconds(999); - assert.equal(m.calendar(), m.format('[L~ást] dddd [át] LT'), 'Today - ' + i + ' days end of day'); - } -}); - -test('calendar all else', function (assert) { - var weeksAgo = moment().subtract({w: 1}), - weeksFromNow = moment().add({w: 1}); - - assert.equal(weeksAgo.calendar(), weeksAgo.format('L'), '1 week ago'); - assert.equal(weeksFromNow.calendar(), weeksFromNow.format('L'), 'in 1 week'); - - weeksAgo = moment().subtract({w: 2}); - weeksFromNow = moment().add({w: 2}); - - assert.equal(weeksAgo.calendar(), weeksAgo.format('L'), '2 weeks ago'); - assert.equal(weeksFromNow.calendar(), weeksFromNow.format('L'), 'in 2 weeks'); -}); - -test('weeks year starting sunday formatted', function (assert) { - assert.equal(moment([2012, 0, 1]).format('w ww wo'), '52 52 52nd', 'Jan 1 2012 should be week 52'); - assert.equal(moment([2012, 0, 2]).format('w ww wo'), '1 01 1st', 'Jan 2 2012 should be week 1'); - assert.equal(moment([2012, 0, 8]).format('w ww wo'), '1 01 1st', 'Jan 8 2012 should be week 1'); - assert.equal(moment([2012, 0, 9]).format('w ww wo'), '2 02 2nd', 'Jan 9 2012 should be week 2'); - assert.equal(moment([2012, 0, 15]).format('w ww wo'), '2 02 2nd', 'Jan 15 2012 should be week 2'); -}); - -}))); - - -;(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' - && typeof require === 'function' ? factory(require('../../moment')) : - typeof define === 'function' && define.amd ? define(['../../moment'], factory) : - factory(global.moment) -}(this, (function (moment) { 'use strict'; - -function each(array, callback) { - var i; - for (i = 0; i < array.length; i++) { - callback(array[i], i, array); - } -} - -function objectKeys(obj) { - if (Object.keys) { - return Object.keys(obj); - } else { - // IE8 - var res = [], i; - for (i in obj) { - if (obj.hasOwnProperty(i)) { - res.push(i); - } - } - return res; - } -} - -// Pick the first defined of two or three arguments. - -function defineCommonLocaleTests(locale, options) { - test('lenient day of month ordinal parsing', function (assert) { - var i, ordinalStr, testMoment; - for (i = 1; i <= 31; ++i) { - ordinalStr = moment([2014, 0, i]).format('YYYY MM Do'); - testMoment = moment(ordinalStr, 'YYYY MM Do'); - assert.equal(testMoment.year(), 2014, - 'lenient day of month ordinal parsing ' + i + ' year check'); - assert.equal(testMoment.month(), 0, - 'lenient day of month ordinal parsing ' + i + ' month check'); - assert.equal(testMoment.date(), i, - 'lenient day of month ordinal parsing ' + i + ' date check'); - } - }); - - test('lenient day of month ordinal parsing of number', function (assert) { - var i, testMoment; - for (i = 1; i <= 31; ++i) { - testMoment = moment('2014 01 ' + i, 'YYYY MM Do'); - assert.equal(testMoment.year(), 2014, - 'lenient day of month ordinal parsing of number ' + i + ' year check'); - assert.equal(testMoment.month(), 0, - 'lenient day of month ordinal parsing of number ' + i + ' month check'); - assert.equal(testMoment.date(), i, - 'lenient day of month ordinal parsing of number ' + i + ' date check'); - } - }); - - test('strict day of month ordinal parsing', function (assert) { - var i, ordinalStr, testMoment; - for (i = 1; i <= 31; ++i) { - ordinalStr = moment([2014, 0, i]).format('YYYY MM Do'); - testMoment = moment(ordinalStr, 'YYYY MM Do', true); - assert.ok(testMoment.isValid(), 'strict day of month ordinal parsing ' + i); - } - }); - - test('meridiem invariant', function (assert) { - var h, m, t1, t2; - for (h = 0; h < 24; ++h) { - for (m = 0; m < 60; m += 15) { - t1 = moment.utc([2000, 0, 1, h, m]); - t2 = moment.utc(t1.format('A h:mm'), 'A h:mm'); - assert.equal(t2.format('HH:mm'), t1.format('HH:mm'), - 'meridiem at ' + t1.format('HH:mm')); - } - } - }); - - test('date format correctness', function (assert) { - var data, tokens; - data = moment.localeData()._longDateFormat; - tokens = objectKeys(data); - each(tokens, function (srchToken) { - // Check each format string to make sure it does not contain any - // tokens that need to be expanded. - each(tokens, function (baseToken) { - // strip escaped sequences - var format = data[baseToken].replace(/(\[[^\]]*\])/g, ''); - assert.equal(false, !!~format.indexOf(srchToken), - 'contains ' + srchToken + ' in ' + baseToken); - }); - }); - }); - - test('month parsing correctness', function (assert) { - var i, m; - - if (locale === 'tr') { - // I can't fix it :( - expect(0); - return; - } - function tester(format) { - var r; - r = moment(m.format(format), format); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format); - r = moment(m.format(format).toLocaleUpperCase(), format); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' upper'); - r = moment(m.format(format).toLocaleLowerCase(), format); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' lower'); - - r = moment(m.format(format), format, true); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' strict'); - r = moment(m.format(format).toLocaleUpperCase(), format, true); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' upper strict'); - r = moment(m.format(format).toLocaleLowerCase(), format, true); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' lower strict'); - } - - for (i = 0; i < 12; ++i) { - m = moment([2015, i, 15, 18]); - tester('MMM'); - tester('MMM.'); - tester('MMMM'); - tester('MMMM.'); - } - }); - - test('weekday parsing correctness', function (assert) { - var i, m; - - if (locale === 'tr' || locale === 'az' || locale === 'ro') { - // tr, az: There is a lower-case letter (ı), that converted to - // upper then lower changes to i - // ro: there is the letter ț which behaves weird under IE8 - expect(0); - return; - } - function tester(format) { - var r, baseMsg = 'weekday ' + m.weekday() + ' fmt ' + format + ' ' + m.toISOString(); - r = moment(m.format(format), format); - assert.equal(r.weekday(), m.weekday(), baseMsg); - r = moment(m.format(format).toLocaleUpperCase(), format); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' upper'); - r = moment(m.format(format).toLocaleLowerCase(), format); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' lower'); - - r = moment(m.format(format), format, true); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' strict'); - r = moment(m.format(format).toLocaleUpperCase(), format, true); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' upper strict'); - r = moment(m.format(format).toLocaleLowerCase(), format, true); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' lower strict'); - } - - for (i = 0; i < 7; ++i) { - m = moment.utc([2015, 0, i + 1, 18]); - tester('dd'); - tester('ddd'); - tester('dddd'); - } - }); - - test('valid localeData', function (assert) { - assert.equal(moment().localeData().months().length, 12, 'months should return 12 months'); - assert.equal(moment().localeData().monthsShort().length, 12, 'monthsShort should return 12 months'); - assert.equal(moment().localeData().weekdays().length, 7, 'weekdays should return 7 days'); - assert.equal(moment().localeData().weekdaysShort().length, 7, 'weekdaysShort should return 7 days'); - assert.equal(moment().localeData().weekdaysMin().length, 7, 'monthsShort should return 7 days'); - }); -} - -function setupDeprecationHandler(test, moment$$1, scope) { - test._expectedDeprecations = null; - test._observedDeprecations = null; - test._oldSupress = moment$$1.suppressDeprecationWarnings; - moment$$1.suppressDeprecationWarnings = true; - test.expectedDeprecations = function () { - test._expectedDeprecations = arguments; - test._observedDeprecations = []; - }; - moment$$1.deprecationHandler = function (name, msg) { - var deprecationId = matchedDeprecation(name, msg, test._expectedDeprecations); - if (deprecationId === -1) { - throw new Error('Unexpected deprecation thrown name=' + - name + ' msg=' + msg); - } - test._observedDeprecations[deprecationId] = 1; - }; -} - -function teardownDeprecationHandler(test, moment$$1, scope) { - moment$$1.suppressDeprecationWarnings = test._oldSupress; - - if (test._expectedDeprecations != null) { - var missedDeprecations = []; - each(test._expectedDeprecations, function (deprecationPattern, id) { - if (test._observedDeprecations[id] !== 1) { - missedDeprecations.push(deprecationPattern); - } - }); - if (missedDeprecations.length !== 0) { - throw new Error('Expected deprecation warnings did not happen: ' + - missedDeprecations.join(' ')); - } - } -} - -function matchedDeprecation(name, msg, deprecations) { - if (deprecations == null) { - return -1; - } - for (var i = 0; i < deprecations.length; ++i) { - if (name != null && name === deprecations[i]) { - return i; - } - if (msg != null && msg.substring(0, deprecations[i].length) === deprecations[i]) { - return i; - } - } - return -1; -} - -/*global QUnit:false*/ - -var test = QUnit.test; - -var expect = QUnit.expect; - - - -function localeModule (name, lifecycle) { - QUnit.module('locale:' + name, { - setup : function () { - moment.locale(name); - moment.createFromInputFallback = function (config) { - throw new Error('input not handled by moment: ' + config._i); - }; - setupDeprecationHandler(test, moment, 'locale'); - if (lifecycle && lifecycle.setup) { - lifecycle.setup(); - } - }, - teardown : function () { - moment.locale('en'); - teardownDeprecationHandler(test, moment, 'locale'); - if (lifecycle && lifecycle.teardown) { - lifecycle.teardown(); - } - } - }); - defineCommonLocaleTests(name, -1, -1); -} - -localeModule('yo'); - -test('parse', function (assert) { - var tests = 'Sẹ́rẹ́ Sẹ́r_Èrèlè Èrl_Ẹrẹ̀nà Ẹrn_Ìgbé Ìgb_Èbibi Èbi_Òkùdu Òkù_Agẹmo Agẹ_Ògún Ògú_Owewe Owe_Ọ̀wàrà Ọ̀wà_Bélú Bél_Ọ̀pẹ̀̀ Ọ̀pẹ̀̀'.split('_'), i; - function equalTest(input, mmm, i) { - assert.equal(moment(input, mmm).month(), i, input + ' should be month ' + (i + 1)); - } - for (i = 0; i < 12; i++) { - tests[i] = tests[i].split(' '); - equalTest(tests[i][0], 'MMM', i); - equalTest(tests[i][1], 'MMM', i); - equalTest(tests[i][0], 'MMMM', i); - equalTest(tests[i][1], 'MMMM', i); - equalTest(tests[i][0].toLocaleLowerCase(), 'MMMM', i); - equalTest(tests[i][1].toLocaleLowerCase(), 'MMMM', i); - equalTest(tests[i][0].toLocaleUpperCase(), 'MMMM', i); - equalTest(tests[i][1].toLocaleUpperCase(), 'MMMM', i); - } -}); - -test('format', function (assert) { - var a = [ - ['dddd, MMMM Do YYYY, h:mm:ss a', 'Àìkú, Èrèlè ọjọ́ 14 2010, 3:25:50 pm'], - ['ddd, hA', 'Àìk, 3PM'], - ['M Mo MM MMMM MMM', '2 ọjọ́ 2 02 Èrèlè Èrl'], - ['YYYY YY', '2010 10'], - ['D Do DD', '14 ọjọ́ 14 14'], - ['d do dddd ddd dd', '0 ọjọ́ 0 Àìkú Àìk Àì'], - ['DDD DDDo DDDD', '45 ọjọ́ 45 045'], - ['w wo ww', '6 ọjọ́ 6 06'], - ['h hh', '3 03'], - ['H HH', '15 15'], - ['m mm', '25 25'], - ['s ss', '50 50'], - ['a A', 'pm PM'], - ['[the] DDDo [day of the year]', 'the ọjọ́ 45 day of the year'], - ['LTS', '3:25:50 PM'], - ['L', '14/02/2010'], - ['LL', '14 Èrèlè 2010'], - ['LLL', '14 Èrèlè 2010 3:25 PM'], - ['LLLL', 'Àìkú, 14 Èrèlè 2010 3:25 PM'], - ['l', '14/2/2010'], - ['ll', '14 Èrl 2010'], - ['lll', '14 Èrl 2010 3:25 PM'], - ['llll', 'Àìk, 14 Èrl 2010 3:25 PM'] - ], - b = moment(new Date(2010, 1, 14, 15, 25, 50, 125)), - i; - for (i = 0; i < a.length; i++) { - assert.equal(b.format(a[i][0]), a[i][1], a[i][0] + ' ---> ' + a[i][1]); - } -}); - -test('format ordinal', function (assert) { - assert.equal(moment([2011, 0, 1]).format('DDDo'), 'ọjọ́ 1', 'ọjọ́ 1'); - assert.equal(moment([2011, 0, 2]).format('DDDo'), 'ọjọ́ 2', 'ọjọ́ 2'); - assert.equal(moment([2011, 0, 3]).format('DDDo'), 'ọjọ́ 3', 'ọjọ́ 3'); - assert.equal(moment([2011, 0, 4]).format('DDDo'), 'ọjọ́ 4', 'ọjọ́ 4'); - assert.equal(moment([2011, 0, 5]).format('DDDo'), 'ọjọ́ 5', 'ọjọ́ 5'); - assert.equal(moment([2011, 0, 6]).format('DDDo'), 'ọjọ́ 6', 'ọjọ́ 6'); - assert.equal(moment([2011, 0, 7]).format('DDDo'), 'ọjọ́ 7', 'ọjọ́ 7'); - assert.equal(moment([2011, 0, 8]).format('DDDo'), 'ọjọ́ 8', 'ọjọ́ 8'); - assert.equal(moment([2011, 0, 9]).format('DDDo'), 'ọjọ́ 9', 'ọjọ́ 9'); - assert.equal(moment([2011, 0, 10]).format('DDDo'), 'ọjọ́ 10', 'ọjọ́ 10'); - - assert.equal(moment([2011, 0, 11]).format('DDDo'), 'ọjọ́ 11', 'ọjọ́ 11'); - assert.equal(moment([2011, 0, 12]).format('DDDo'), 'ọjọ́ 12', 'ọjọ́ 12'); - assert.equal(moment([2011, 0, 13]).format('DDDo'), 'ọjọ́ 13', 'ọjọ́ 13'); - assert.equal(moment([2011, 0, 14]).format('DDDo'), 'ọjọ́ 14', 'ọjọ́ 14'); - assert.equal(moment([2011, 0, 15]).format('DDDo'), 'ọjọ́ 15', 'ọjọ́ 15'); - assert.equal(moment([2011, 0, 16]).format('DDDo'), 'ọjọ́ 16', 'ọjọ́ 16'); - assert.equal(moment([2011, 0, 17]).format('DDDo'), 'ọjọ́ 17', 'ọjọ́ 17'); - assert.equal(moment([2011, 0, 18]).format('DDDo'), 'ọjọ́ 18', 'ọjọ́ 18'); - assert.equal(moment([2011, 0, 19]).format('DDDo'), 'ọjọ́ 19', 'ọjọ́ 19'); - assert.equal(moment([2011, 0, 20]).format('DDDo'), 'ọjọ́ 20', 'ọjọ́ 20'); - - assert.equal(moment([2011, 0, 21]).format('DDDo'), 'ọjọ́ 21', 'ọjọ́ 21'); - assert.equal(moment([2011, 0, 22]).format('DDDo'), 'ọjọ́ 22', 'ọjọ́ 22'); - assert.equal(moment([2011, 0, 23]).format('DDDo'), 'ọjọ́ 23', 'ọjọ́ 23'); - assert.equal(moment([2011, 0, 24]).format('DDDo'), 'ọjọ́ 24', 'ọjọ́ 24'); - assert.equal(moment([2011, 0, 25]).format('DDDo'), 'ọjọ́ 25', 'ọjọ́ 25'); - assert.equal(moment([2011, 0, 26]).format('DDDo'), 'ọjọ́ 26', 'ọjọ́ 26'); - assert.equal(moment([2011, 0, 27]).format('DDDo'), 'ọjọ́ 27', 'ọjọ́ 27'); - assert.equal(moment([2011, 0, 28]).format('DDDo'), 'ọjọ́ 28', 'ọjọ́ 28'); - assert.equal(moment([2011, 0, 29]).format('DDDo'), 'ọjọ́ 29', 'ọjọ́ 29'); - assert.equal(moment([2011, 0, 30]).format('DDDo'), 'ọjọ́ 30', 'ọjọ́ 30'); - - assert.equal(moment([2011, 0, 31]).format('DDDo'), 'ọjọ́ 31', 'ọjọ́ 31'); -}); - -test('format month', function (assert) { - var expected = 'Sẹ́rẹ́ Sẹ́r_Èrèlè Èrl_Ẹrẹ̀nà Ẹrn_Ìgbé Ìgb_Èbibi Èbi_Òkùdu Òkù_Agẹmo Agẹ_Ògún Ògú_Owewe Owe_Ọ̀wàrà Ọ̀wà_Bélú Bél_Ọ̀pẹ̀̀ Ọ̀pẹ̀̀'.split('_'), - i; - for (i = 0; i < expected.length; i++) { - assert.equal(moment([2011, i, 1]).format('MMMM MMM'), expected[i], expected[i]); - } -}); - -test('format week', function (assert) { - var expected = 'Àìkú Àìk Àì_Ajé Ajé Aj_Ìsẹ́gun Ìsẹ́ Ìs_Ọjọ́rú Ọjr Ọr_Ọjọ́bọ Ọjb Ọb_Ẹtì Ẹtì Ẹt_Àbámẹ́ta Àbá Àb'.split('_'), - i; - for (i = 0; i < expected.length; i++) { - assert.equal(moment([2011, 0, 2 + i]).format('dddd ddd dd'), expected[i], expected[i]); - } -}); - -test('from', function (assert) { - var start = moment([2007, 1, 28]); - assert.equal(start.from(moment([2007, 1, 28]).add({s: 44}), true), 'ìsẹjú aayá die', '44 seconds = ìsẹjú aayá die'); - assert.equal(start.from(moment([2007, 1, 28]).add({s: 45}), true), 'ìsẹjú kan', '45 seconds = ìsẹjú kan'); - assert.equal(start.from(moment([2007, 1, 28]).add({s: 89}), true), 'ìsẹjú kan', '89 seconds = a minute'); - assert.equal(start.from(moment([2007, 1, 28]).add({s: 90}), true), 'ìsẹjú 2', '90 seconds = ìsẹjú 2'); - assert.equal(start.from(moment([2007, 1, 28]).add({m: 44}), true), 'ìsẹjú 44', 'ìsẹjú 44 = ìsẹjú 44'); - assert.equal(start.from(moment([2007, 1, 28]).add({m: 45}), true), 'wákati kan', 'ìsẹjú 45 = wákati kan'); - assert.equal(start.from(moment([2007, 1, 28]).add({m: 89}), true), 'wákati kan', 'ìsẹjú 89 = wákati kan'); - assert.equal(start.from(moment([2007, 1, 28]).add({m: 90}), true), 'wákati 2', 'ìsẹjú 90 = wákati 2'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 5}), true), 'wákati 5', 'wákati 5 = wákati 5'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 21}), true), 'wákati 21', 'wákati 21 = wákati 21'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 22}), true), 'ọjọ́ kan', '22 wákati = ọjọ́ kan'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 35}), true), 'ọjọ́ kan', '35 wákati = ọjọ́ kan'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 36}), true), 'ọjọ́ 2', 'wákati 36 = ọjọ́ 2'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 1}), true), 'ọjọ́ kan', '1 = ọjọ́ kan'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 5}), true), 'ọjọ́ 5', 'ọjọ́ 5 = ọjọ́ 5'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 25}), true), 'ọjọ́ 25', 'ọjọ́ 25 = ọjọ́ 25'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 26}), true), 'osù kan', 'ọjọ́ 26 = osù kan'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 30}), true), 'osù kan', 'ọjọ́ 30 = osù kan'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 43}), true), 'osù kan', 'ọjọ́ 43 = osù kan'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 46}), true), 'osù 2', 'ọjọ́ 46 = osù 2'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 74}), true), 'osù 2', 'ọjọ́ 75 = osù 2'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 76}), true), 'osù 3', 'ọjọ́ 76 = osù 3'); - assert.equal(start.from(moment([2007, 1, 28]).add({M: 1}), true), 'osù kan', 'osù 1 = osù kan'); - assert.equal(start.from(moment([2007, 1, 28]).add({M: 5}), true), 'osù 5', 'osù 5 = osù 5'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 345}), true), 'ọdún kan', 'ọjọ 345 = ọdún kan'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 548}), true), 'ọdún 2', 'ọjọ 548 = ọdún 2'); - assert.equal(start.from(moment([2007, 1, 28]).add({y: 1}), true), 'ọdún kan', 'ọdún 1 = ọdún kan'); - assert.equal(start.from(moment([2007, 1, 28]).add({y: 5}), true), 'ọdún 5', 'ọdún 5 = ọdún 5'); -}); - -test('suffix', function (assert) { - assert.equal(moment(30000).from(0), 'ní ìsẹjú aayá die', 'prefix'); - assert.equal(moment(0).from(30000), 'ìsẹjú aayá die kọjá', 'suffix'); -}); - -test('now from now', function (assert) { - assert.equal(moment().fromNow(), 'ìsẹjú aayá die kọjá', 'now from now should display as in the past'); -}); - -test('fromNow', function (assert) { - assert.equal(moment().add({s: 30}).fromNow(), 'ní ìsẹjú aayá die', 'ní ìsẹjú aayá die'); - assert.equal(moment().add({d: 5}).fromNow(), 'ní ọjọ́ 5', 'ní ọjọ́ 5'); -}); - -test('calendar day', function (assert) { - var a = moment().hours(12).minutes(0).seconds(0); - - assert.equal(moment(a).calendar(), 'Ònì ni 12:00 PM', 'today at the same time'); - assert.equal(moment(a).add({m: 25}).calendar(), 'Ònì ni 12:25 PM', 'Now plus 25 min'); - assert.equal(moment(a).add({h: 1}).calendar(), 'Ònì ni 1:00 PM', 'Now plus 1 hour'); - assert.equal(moment(a).add({d: 1}).calendar(), 'Ọ̀la ni 12:00 PM', 'tomorrow at the same time'); - assert.equal(moment(a).subtract({h: 1}).calendar(), 'Ònì ni 11:00 AM', 'Now minus 1 hour'); - assert.equal(moment(a).subtract({d: 1}).calendar(), 'Àna ni 12:00 PM', 'yesterday at the same time'); -}); - -test('calendar next week', function (assert) { - var i, m; - - for (i = 2; i < 7; i++) { - m = moment().add({d: i}); - assert.equal(m.calendar(), m.format('dddd [Ọsẹ̀ tón\'bọ] [ni] LT'), 'Today + ' + i + ' days current time'); - m.hours(0).minutes(0).seconds(0).milliseconds(0); - assert.equal(m.calendar(), m.format('dddd [Ọsẹ̀ tón\'bọ] [ni] LT'), 'Today + ' + i + ' days beginning of day'); - m.hours(23).minutes(59).seconds(59).milliseconds(999); - assert.equal(m.calendar(), m.format('dddd [Ọsẹ̀ tón\'bọ] [ni] LT'), 'Today + ' + i + ' days end of day'); - } -}); - -test('calendar last week', function (assert) { - var i, m; - - for (i = 2; i < 7; i++) { - m = moment().subtract({d: i}); - assert.equal(m.calendar(), m.format('dddd [Ọsẹ̀ tólọ́] [ni] LT'), 'Today - ' + i + ' days current time'); - m.hours(0).minutes(0).seconds(0).milliseconds(0); - assert.equal(m.calendar(), m.format('dddd [Ọsẹ̀ tólọ́] [ni] LT'), 'Today - ' + i + ' days beginning of day'); - m.hours(23).minutes(59).seconds(59).milliseconds(999); - assert.equal(m.calendar(), m.format('dddd [Ọsẹ̀ tólọ́] [ni] LT'), 'Today - ' + i + ' days end of day'); - } -}); - -test('calendar all else', function (assert) { - var weeksAgo = moment().subtract({w: 1}), - weeksFromNow = moment().add({w: 1}); - - assert.equal(weeksAgo.calendar(), weeksAgo.format('L'), '1 week ago'); - assert.equal(weeksFromNow.calendar(), weeksFromNow.format('L'), 'in 1 week'); - - weeksAgo = moment().subtract({w: 2}); - weeksFromNow = moment().add({w: 2}); - - assert.equal(weeksAgo.calendar(), weeksAgo.format('L'), '2 weeks ago'); - assert.equal(weeksFromNow.calendar(), weeksFromNow.format('L'), 'in 2 weeks'); -}); - -test('weeks year starting sunday format', function (assert) { - assert.equal(moment([2012, 0, 1]).format('w ww wo'), '52 52 ọjọ́ 52', 'Jan 1 2012 should be week 52'); - assert.equal(moment([2012, 0, 2]).format('w ww wo'), '1 01 ọjọ́ 1', 'Jan 2 2012 should be week 1'); - assert.equal(moment([2012, 0, 8]).format('w ww wo'), '1 01 ọjọ́ 1', 'Jan 8 2012 should be week 1'); - assert.equal(moment([2012, 0, 9]).format('w ww wo'), '2 02 ọjọ́ 2', 'Jan 9 2012 should be week 2'); - assert.equal(moment([2012, 0, 15]).format('w ww wo'), '2 02 ọjọ́ 2', 'Jan 15 2012 should be week 2'); -}); - -}))); - - -;(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' - && typeof require === 'function' ? factory(require('../../moment')) : - typeof define === 'function' && define.amd ? define(['../../moment'], factory) : - factory(global.moment) -}(this, (function (moment) { 'use strict'; - -function each(array, callback) { - var i; - for (i = 0; i < array.length; i++) { - callback(array[i], i, array); - } -} - -function objectKeys(obj) { - if (Object.keys) { - return Object.keys(obj); - } else { - // IE8 - var res = [], i; - for (i in obj) { - if (obj.hasOwnProperty(i)) { - res.push(i); - } - } - return res; - } -} - -// Pick the first defined of two or three arguments. - -function defineCommonLocaleTests(locale, options) { - test('lenient day of month ordinal parsing', function (assert) { - var i, ordinalStr, testMoment; - for (i = 1; i <= 31; ++i) { - ordinalStr = moment([2014, 0, i]).format('YYYY MM Do'); - testMoment = moment(ordinalStr, 'YYYY MM Do'); - assert.equal(testMoment.year(), 2014, - 'lenient day of month ordinal parsing ' + i + ' year check'); - assert.equal(testMoment.month(), 0, - 'lenient day of month ordinal parsing ' + i + ' month check'); - assert.equal(testMoment.date(), i, - 'lenient day of month ordinal parsing ' + i + ' date check'); - } - }); - - test('lenient day of month ordinal parsing of number', function (assert) { - var i, testMoment; - for (i = 1; i <= 31; ++i) { - testMoment = moment('2014 01 ' + i, 'YYYY MM Do'); - assert.equal(testMoment.year(), 2014, - 'lenient day of month ordinal parsing of number ' + i + ' year check'); - assert.equal(testMoment.month(), 0, - 'lenient day of month ordinal parsing of number ' + i + ' month check'); - assert.equal(testMoment.date(), i, - 'lenient day of month ordinal parsing of number ' + i + ' date check'); - } - }); - - test('strict day of month ordinal parsing', function (assert) { - var i, ordinalStr, testMoment; - for (i = 1; i <= 31; ++i) { - ordinalStr = moment([2014, 0, i]).format('YYYY MM Do'); - testMoment = moment(ordinalStr, 'YYYY MM Do', true); - assert.ok(testMoment.isValid(), 'strict day of month ordinal parsing ' + i); - } - }); - - test('meridiem invariant', function (assert) { - var h, m, t1, t2; - for (h = 0; h < 24; ++h) { - for (m = 0; m < 60; m += 15) { - t1 = moment.utc([2000, 0, 1, h, m]); - t2 = moment.utc(t1.format('A h:mm'), 'A h:mm'); - assert.equal(t2.format('HH:mm'), t1.format('HH:mm'), - 'meridiem at ' + t1.format('HH:mm')); - } - } - }); - - test('date format correctness', function (assert) { - var data, tokens; - data = moment.localeData()._longDateFormat; - tokens = objectKeys(data); - each(tokens, function (srchToken) { - // Check each format string to make sure it does not contain any - // tokens that need to be expanded. - each(tokens, function (baseToken) { - // strip escaped sequences - var format = data[baseToken].replace(/(\[[^\]]*\])/g, ''); - assert.equal(false, !!~format.indexOf(srchToken), - 'contains ' + srchToken + ' in ' + baseToken); - }); - }); - }); - - test('month parsing correctness', function (assert) { - var i, m; - - if (locale === 'tr') { - // I can't fix it :( - expect(0); - return; - } - function tester(format) { - var r; - r = moment(m.format(format), format); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format); - r = moment(m.format(format).toLocaleUpperCase(), format); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' upper'); - r = moment(m.format(format).toLocaleLowerCase(), format); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' lower'); - - r = moment(m.format(format), format, true); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' strict'); - r = moment(m.format(format).toLocaleUpperCase(), format, true); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' upper strict'); - r = moment(m.format(format).toLocaleLowerCase(), format, true); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' lower strict'); - } - - for (i = 0; i < 12; ++i) { - m = moment([2015, i, 15, 18]); - tester('MMM'); - tester('MMM.'); - tester('MMMM'); - tester('MMMM.'); - } - }); - - test('weekday parsing correctness', function (assert) { - var i, m; - - if (locale === 'tr' || locale === 'az' || locale === 'ro') { - // tr, az: There is a lower-case letter (ı), that converted to - // upper then lower changes to i - // ro: there is the letter ț which behaves weird under IE8 - expect(0); - return; - } - function tester(format) { - var r, baseMsg = 'weekday ' + m.weekday() + ' fmt ' + format + ' ' + m.toISOString(); - r = moment(m.format(format), format); - assert.equal(r.weekday(), m.weekday(), baseMsg); - r = moment(m.format(format).toLocaleUpperCase(), format); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' upper'); - r = moment(m.format(format).toLocaleLowerCase(), format); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' lower'); - - r = moment(m.format(format), format, true); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' strict'); - r = moment(m.format(format).toLocaleUpperCase(), format, true); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' upper strict'); - r = moment(m.format(format).toLocaleLowerCase(), format, true); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' lower strict'); - } - - for (i = 0; i < 7; ++i) { - m = moment.utc([2015, 0, i + 1, 18]); - tester('dd'); - tester('ddd'); - tester('dddd'); - } - }); - - test('valid localeData', function (assert) { - assert.equal(moment().localeData().months().length, 12, 'months should return 12 months'); - assert.equal(moment().localeData().monthsShort().length, 12, 'monthsShort should return 12 months'); - assert.equal(moment().localeData().weekdays().length, 7, 'weekdays should return 7 days'); - assert.equal(moment().localeData().weekdaysShort().length, 7, 'weekdaysShort should return 7 days'); - assert.equal(moment().localeData().weekdaysMin().length, 7, 'monthsShort should return 7 days'); - }); -} - -function setupDeprecationHandler(test, moment$$1, scope) { - test._expectedDeprecations = null; - test._observedDeprecations = null; - test._oldSupress = moment$$1.suppressDeprecationWarnings; - moment$$1.suppressDeprecationWarnings = true; - test.expectedDeprecations = function () { - test._expectedDeprecations = arguments; - test._observedDeprecations = []; - }; - moment$$1.deprecationHandler = function (name, msg) { - var deprecationId = matchedDeprecation(name, msg, test._expectedDeprecations); - if (deprecationId === -1) { - throw new Error('Unexpected deprecation thrown name=' + - name + ' msg=' + msg); - } - test._observedDeprecations[deprecationId] = 1; - }; -} - -function teardownDeprecationHandler(test, moment$$1, scope) { - moment$$1.suppressDeprecationWarnings = test._oldSupress; - - if (test._expectedDeprecations != null) { - var missedDeprecations = []; - each(test._expectedDeprecations, function (deprecationPattern, id) { - if (test._observedDeprecations[id] !== 1) { - missedDeprecations.push(deprecationPattern); - } - }); - if (missedDeprecations.length !== 0) { - throw new Error('Expected deprecation warnings did not happen: ' + - missedDeprecations.join(' ')); - } - } -} - -function matchedDeprecation(name, msg, deprecations) { - if (deprecations == null) { - return -1; - } - for (var i = 0; i < deprecations.length; ++i) { - if (name != null && name === deprecations[i]) { - return i; - } - if (msg != null && msg.substring(0, deprecations[i].length) === deprecations[i]) { - return i; - } - } - return -1; -} - -/*global QUnit:false*/ - -var test = QUnit.test; - -var expect = QUnit.expect; - - - -function localeModule (name, lifecycle) { - QUnit.module('locale:' + name, { - setup : function () { - moment.locale(name); - moment.createFromInputFallback = function (config) { - throw new Error('input not handled by moment: ' + config._i); - }; - setupDeprecationHandler(test, moment, 'locale'); - if (lifecycle && lifecycle.setup) { - lifecycle.setup(); - } - }, - teardown : function () { - moment.locale('en'); - teardownDeprecationHandler(test, moment, 'locale'); - if (lifecycle && lifecycle.teardown) { - lifecycle.teardown(); - } - } - }); - defineCommonLocaleTests(name, -1, -1); -} - -localeModule('zh-cn'); - -test('parse', function (assert) { - var tests = '一月 1月_二月 2月_三月 3月_四月 4月_五月 5月_六月 6月_七月 7月_八月 8月_九月 9月_十月 10月_十一月 11月_十二月 12月'.split('_'), i; - - function equalTest(input, mmm, i) { - assert.equal(moment(input, mmm).month(), i, input + ' should be month ' + (i + 1)); - } - - for (i = 0; i < 12; i++) { - tests[i] = tests[i].split(' '); - equalTest(tests[i][0], 'MMM', i); - equalTest(tests[i][1], 'MMM', i); - equalTest(tests[i][0], 'MMMM', i); - equalTest(tests[i][1], 'MMMM', i); - equalTest(tests[i][0].toLocaleLowerCase(), 'MMMM', i); - equalTest(tests[i][1].toLocaleLowerCase(), 'MMMM', i); - equalTest(tests[i][0].toLocaleUpperCase(), 'MMMM', i); - equalTest(tests[i][1].toLocaleUpperCase(), 'MMMM', i); - } -}); - -test('format', function (assert) { - var a = [ - ['dddd, MMMM Do YYYY, a h:mm:ss', '星期日, 二月 14日 2010, 下午 3:25:50'], - ['ddd, Ah', '周日, 下午3'], - ['M Mo MM MMMM MMM', '2 2月 02 二月 2月'], - ['YYYY YY', '2010 10'], - ['D Do DD', '14 14日 14'], - ['d do dddd ddd dd', '0 0日 星期日 周日 日'], - ['DDD DDDo DDDD', '45 45日 045'], - ['w wo ww', '6 6周 06'], - ['h hh', '3 03'], - ['H HH', '15 15'], - ['m mm', '25 25'], - ['s ss', '50 50'], - ['a A', '下午 下午'], - ['[这年的第] DDDo', '这年的第 45日'], - ['LTS', '15:25:50'], - ['L', '2010年2月14日'], - ['LL', '2010年2月14日'], - ['LLL', '2010年2月14日下午3点25分'], - ['LLLL', '2010年2月14日星期日下午3点25分'], - ['l', '2010年2月14日'], - ['ll', '2010年2月14日'], - ['lll', '2010年2月14日 15:25'], - ['llll', '2010年2月14日星期日 15:25'] - ], - b = moment(new Date(2010, 1, 14, 15, 25, 50, 125)), - i; - - for (i = 0; i < a.length; i++) { - assert.equal(b.format(a[i][0]), a[i][1], a[i][0] + ' ---> ' + a[i][1]); - } -}); - -test('format month', function (assert) { - var expected = '一月 1月_二月 2月_三月 3月_四月 4月_五月 5月_六月 6月_七月 7月_八月 8月_九月 9月_十月 10月_十一月 11月_十二月 12月'.split('_'), i; - - for (i = 0; i < expected.length; i++) { - assert.equal(moment([2011, i, 1]).format('MMMM MMM'), expected[i], expected[i]); - } -}); - -test('format week', function (assert) { - var expected = '星期日 周日 日_星期一 周一 一_星期二 周二 二_星期三 周三 三_星期四 周四 四_星期五 周五 五_星期六 周六 六'.split('_'), i; - - for (i = 0; i < expected.length; i++) { - assert.equal(moment([2011, 0, 2 + i]).format('dddd ddd dd'), expected[i], expected[i]); - } -}); - -test('from', function (assert) { - var start = moment([2007, 1, 28]); - assert.equal(start.from(moment([2007, 1, 28]).add({s: 44}), true), '几秒', '44 seconds = a few seconds'); - assert.equal(start.from(moment([2007, 1, 28]).add({s: 45}), true), '1 分钟', '45 seconds = a minute'); - assert.equal(start.from(moment([2007, 1, 28]).add({s: 89}), true), '1 分钟', '89 seconds = a minute'); - assert.equal(start.from(moment([2007, 1, 28]).add({s: 90}), true), '2 分钟', '90 seconds = 2 minutes'); - assert.equal(start.from(moment([2007, 1, 28]).add({m: 44}), true), '44 分钟', '44 minutes = 44 minutes'); - assert.equal(start.from(moment([2007, 1, 28]).add({m: 45}), true), '1 小时', '45 minutes = an hour'); - assert.equal(start.from(moment([2007, 1, 28]).add({m: 89}), true), '1 小时', '89 minutes = an hour'); - assert.equal(start.from(moment([2007, 1, 28]).add({m: 90}), true), '2 小时', '90 minutes = 2 hours'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 5}), true), '5 小时', '5 hours = 5 hours'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 21}), true), '21 小时', '21 hours = 21 hours'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 22}), true), '1 天', '22 hours = a day'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 35}), true), '1 天', '35 hours = a day'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 36}), true), '2 天', '36 hours = 2 days'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 1}), true), '1 天', '1 day = a day'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 5}), true), '5 天', '5 days = 5 days'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 25}), true), '25 天', '25 days = 25 days'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 26}), true), '1 个月', '26 days = a month'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 30}), true), '1 个月', '30 days = a month'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 43}), true), '1 个月', '43 days = a month'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 46}), true), '2 个月', '46 days = 2 months'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 74}), true), '2 个月', '75 days = 2 months'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 76}), true), '3 个月', '76 days = 3 months'); - assert.equal(start.from(moment([2007, 1, 28]).add({M: 1}), true), '1 个月', '1 month = a month'); - assert.equal(start.from(moment([2007, 1, 28]).add({M: 5}), true), '5 个月', '5 months = 5 months'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 345}), true), '1 年', '345 days = a year'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 548}), true), '2 年', '548 days = 2 years'); - assert.equal(start.from(moment([2007, 1, 28]).add({y: 1}), true), '1 年', '1 year = a year'); - assert.equal(start.from(moment([2007, 1, 28]).add({y: 5}), true), '5 年', '5 years = 5 years'); -}); - -test('suffix', function (assert) { - assert.equal(moment(30000).from(0), '几秒内', 'prefix'); - assert.equal(moment(0).from(30000), '几秒前', 'suffix'); -}); - -test('now from now', function (assert) { - assert.equal(moment().fromNow(), '几秒前', 'now from now should display as in the past'); -}); - -test('fromNow', function (assert) { - assert.equal(moment().add({s: 30}).fromNow(), '几秒内', 'in a few seconds'); - assert.equal(moment().add({d: 5}).fromNow(), '5 天内', 'in 5 days'); -}); - -test('calendar day', function (assert) { - var a = moment().hours(12).minutes(0).seconds(0); - - assert.equal(moment(a).calendar(), '今天12:00', 'today at the same time'); - assert.equal(moment(a).add({m: 25}).calendar(), '今天12:25', 'Now plus 25 min'); - assert.equal(moment(a).add({h: 1}).calendar(), '今天13:00', 'Now plus 1 hour'); - assert.equal(moment(a).add({d: 1}).calendar(), '明天12:00', 'tomorrow at the same time'); - assert.equal(moment(a).subtract({h: 1}).calendar(), '今天11:00', 'Now minus 1 hour'); - assert.equal(moment(a).subtract({d: 1}).calendar(), '昨天12:00', 'yesterday at the same time'); -}); - -test('calendar next week', function (assert) { - var i, m; - for (i = 2; i < 7; i++) { - m = moment().add({d: i}); - assert.equal(m.calendar(), m.format('[下]ddddLT'), 'Today + ' + i + ' days current time'); - m.hours(0).minutes(0).seconds(0).milliseconds(0); - assert.equal(m.calendar(), m.format('[下]ddddLT'), 'Today + ' + i + ' days beginning of day'); - m.hours(23).minutes(59).seconds(59).milliseconds(999); - assert.equal(m.calendar(), m.format('[下]ddddLT'), 'Today + ' + i + ' days end of day'); - } -}); - -test('calendar last week', function (assert) { - var i, m; - for (i = 2; i < 7; i++) { - m = moment().subtract({d: i}); - assert.equal(m.calendar(), m.format('[上]ddddLT'), 'Today - ' + i + ' days current time'); - m.hours(0).minutes(0).seconds(0).milliseconds(0); - assert.equal(m.calendar(), m.format('[上]ddddLT'), 'Today - ' + i + ' days beginning of day'); - m.hours(23).minutes(59).seconds(59).milliseconds(999); - assert.equal(m.calendar(), m.format('[上]ddddLT'), 'Today - ' + i + ' days end of day'); - } -}); - -test('calendar all else', function (assert) { - var weeksAgo = moment().subtract({w: 1}), - weeksFromNow = moment().add({w: 1}); - - assert.equal(weeksAgo.calendar(), weeksAgo.format('L'), '1 week ago'); - assert.equal(weeksFromNow.calendar(), weeksFromNow.format('L'), 'in 1 week'); - - weeksAgo = moment().subtract({w: 2}); - weeksFromNow = moment().add({w: 2}); - - assert.equal(weeksAgo.calendar(), weeksAgo.format('L'), '2 weeks ago'); - assert.equal(weeksFromNow.calendar(), weeksFromNow.format('L'), 'in 2 weeks'); -}); - -test('meridiem', function (assert) { - assert.equal(moment([2011, 2, 23, 0, 0]).format('A'), '凌晨', 'before dawn'); - assert.equal(moment([2011, 2, 23, 6, 0]).format('A'), '早上', 'morning'); - assert.equal(moment([2011, 2, 23, 9, 0]).format('A'), '上午', 'before noon'); - assert.equal(moment([2011, 2, 23, 12, 0]).format('A'), '中午', 'noon'); - assert.equal(moment([2011, 2, 23, 13, 0]).format('A'), '下午', 'afternoon'); - assert.equal(moment([2011, 2, 23, 18, 0]).format('A'), '晚上', 'night'); -}); - -test('weeks year starting sunday format', function (assert) { - assert.equal(moment([2012, 0, 1]).format('w ww wo'), '52 52 52周', 'Jan 1 2012 应该是第52周'); - assert.equal(moment([2012, 0, 7]).format('w ww wo'), '1 01 1周', 'Jan 7 2012 应该是第 1周'); - assert.equal(moment([2012, 0, 14]).format('w ww wo'), '2 02 2周', 'Jan 14 2012 应该是第 2周'); -}); - -}))); - - -;(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' - && typeof require === 'function' ? factory(require('../../moment')) : - typeof define === 'function' && define.amd ? define(['../../moment'], factory) : - factory(global.moment) -}(this, (function (moment) { 'use strict'; - -function each(array, callback) { - var i; - for (i = 0; i < array.length; i++) { - callback(array[i], i, array); - } -} - -function objectKeys(obj) { - if (Object.keys) { - return Object.keys(obj); - } else { - // IE8 - var res = [], i; - for (i in obj) { - if (obj.hasOwnProperty(i)) { - res.push(i); - } - } - return res; - } -} - -// Pick the first defined of two or three arguments. - -function defineCommonLocaleTests(locale, options) { - test('lenient day of month ordinal parsing', function (assert) { - var i, ordinalStr, testMoment; - for (i = 1; i <= 31; ++i) { - ordinalStr = moment([2014, 0, i]).format('YYYY MM Do'); - testMoment = moment(ordinalStr, 'YYYY MM Do'); - assert.equal(testMoment.year(), 2014, - 'lenient day of month ordinal parsing ' + i + ' year check'); - assert.equal(testMoment.month(), 0, - 'lenient day of month ordinal parsing ' + i + ' month check'); - assert.equal(testMoment.date(), i, - 'lenient day of month ordinal parsing ' + i + ' date check'); - } - }); - - test('lenient day of month ordinal parsing of number', function (assert) { - var i, testMoment; - for (i = 1; i <= 31; ++i) { - testMoment = moment('2014 01 ' + i, 'YYYY MM Do'); - assert.equal(testMoment.year(), 2014, - 'lenient day of month ordinal parsing of number ' + i + ' year check'); - assert.equal(testMoment.month(), 0, - 'lenient day of month ordinal parsing of number ' + i + ' month check'); - assert.equal(testMoment.date(), i, - 'lenient day of month ordinal parsing of number ' + i + ' date check'); - } - }); - - test('strict day of month ordinal parsing', function (assert) { - var i, ordinalStr, testMoment; - for (i = 1; i <= 31; ++i) { - ordinalStr = moment([2014, 0, i]).format('YYYY MM Do'); - testMoment = moment(ordinalStr, 'YYYY MM Do', true); - assert.ok(testMoment.isValid(), 'strict day of month ordinal parsing ' + i); - } - }); - - test('meridiem invariant', function (assert) { - var h, m, t1, t2; - for (h = 0; h < 24; ++h) { - for (m = 0; m < 60; m += 15) { - t1 = moment.utc([2000, 0, 1, h, m]); - t2 = moment.utc(t1.format('A h:mm'), 'A h:mm'); - assert.equal(t2.format('HH:mm'), t1.format('HH:mm'), - 'meridiem at ' + t1.format('HH:mm')); - } - } - }); - - test('date format correctness', function (assert) { - var data, tokens; - data = moment.localeData()._longDateFormat; - tokens = objectKeys(data); - each(tokens, function (srchToken) { - // Check each format string to make sure it does not contain any - // tokens that need to be expanded. - each(tokens, function (baseToken) { - // strip escaped sequences - var format = data[baseToken].replace(/(\[[^\]]*\])/g, ''); - assert.equal(false, !!~format.indexOf(srchToken), - 'contains ' + srchToken + ' in ' + baseToken); - }); - }); - }); - - test('month parsing correctness', function (assert) { - var i, m; - - if (locale === 'tr') { - // I can't fix it :( - expect(0); - return; - } - function tester(format) { - var r; - r = moment(m.format(format), format); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format); - r = moment(m.format(format).toLocaleUpperCase(), format); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' upper'); - r = moment(m.format(format).toLocaleLowerCase(), format); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' lower'); - - r = moment(m.format(format), format, true); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' strict'); - r = moment(m.format(format).toLocaleUpperCase(), format, true); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' upper strict'); - r = moment(m.format(format).toLocaleLowerCase(), format, true); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' lower strict'); - } - - for (i = 0; i < 12; ++i) { - m = moment([2015, i, 15, 18]); - tester('MMM'); - tester('MMM.'); - tester('MMMM'); - tester('MMMM.'); - } - }); - - test('weekday parsing correctness', function (assert) { - var i, m; - - if (locale === 'tr' || locale === 'az' || locale === 'ro') { - // tr, az: There is a lower-case letter (ı), that converted to - // upper then lower changes to i - // ro: there is the letter ț which behaves weird under IE8 - expect(0); - return; - } - function tester(format) { - var r, baseMsg = 'weekday ' + m.weekday() + ' fmt ' + format + ' ' + m.toISOString(); - r = moment(m.format(format), format); - assert.equal(r.weekday(), m.weekday(), baseMsg); - r = moment(m.format(format).toLocaleUpperCase(), format); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' upper'); - r = moment(m.format(format).toLocaleLowerCase(), format); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' lower'); - - r = moment(m.format(format), format, true); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' strict'); - r = moment(m.format(format).toLocaleUpperCase(), format, true); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' upper strict'); - r = moment(m.format(format).toLocaleLowerCase(), format, true); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' lower strict'); - } - - for (i = 0; i < 7; ++i) { - m = moment.utc([2015, 0, i + 1, 18]); - tester('dd'); - tester('ddd'); - tester('dddd'); - } - }); - - test('valid localeData', function (assert) { - assert.equal(moment().localeData().months().length, 12, 'months should return 12 months'); - assert.equal(moment().localeData().monthsShort().length, 12, 'monthsShort should return 12 months'); - assert.equal(moment().localeData().weekdays().length, 7, 'weekdays should return 7 days'); - assert.equal(moment().localeData().weekdaysShort().length, 7, 'weekdaysShort should return 7 days'); - assert.equal(moment().localeData().weekdaysMin().length, 7, 'monthsShort should return 7 days'); - }); -} - -function setupDeprecationHandler(test, moment$$1, scope) { - test._expectedDeprecations = null; - test._observedDeprecations = null; - test._oldSupress = moment$$1.suppressDeprecationWarnings; - moment$$1.suppressDeprecationWarnings = true; - test.expectedDeprecations = function () { - test._expectedDeprecations = arguments; - test._observedDeprecations = []; - }; - moment$$1.deprecationHandler = function (name, msg) { - var deprecationId = matchedDeprecation(name, msg, test._expectedDeprecations); - if (deprecationId === -1) { - throw new Error('Unexpected deprecation thrown name=' + - name + ' msg=' + msg); - } - test._observedDeprecations[deprecationId] = 1; - }; -} - -function teardownDeprecationHandler(test, moment$$1, scope) { - moment$$1.suppressDeprecationWarnings = test._oldSupress; - - if (test._expectedDeprecations != null) { - var missedDeprecations = []; - each(test._expectedDeprecations, function (deprecationPattern, id) { - if (test._observedDeprecations[id] !== 1) { - missedDeprecations.push(deprecationPattern); - } - }); - if (missedDeprecations.length !== 0) { - throw new Error('Expected deprecation warnings did not happen: ' + - missedDeprecations.join(' ')); - } - } -} - -function matchedDeprecation(name, msg, deprecations) { - if (deprecations == null) { - return -1; - } - for (var i = 0; i < deprecations.length; ++i) { - if (name != null && name === deprecations[i]) { - return i; - } - if (msg != null && msg.substring(0, deprecations[i].length) === deprecations[i]) { - return i; - } - } - return -1; -} - -/*global QUnit:false*/ - -var test = QUnit.test; - -var expect = QUnit.expect; - - - -function localeModule (name, lifecycle) { - QUnit.module('locale:' + name, { - setup : function () { - moment.locale(name); - moment.createFromInputFallback = function (config) { - throw new Error('input not handled by moment: ' + config._i); - }; - setupDeprecationHandler(test, moment, 'locale'); - if (lifecycle && lifecycle.setup) { - lifecycle.setup(); - } - }, - teardown : function () { - moment.locale('en'); - teardownDeprecationHandler(test, moment, 'locale'); - if (lifecycle && lifecycle.teardown) { - lifecycle.teardown(); - } - } - }); - defineCommonLocaleTests(name, -1, -1); -} - -localeModule('zh-hk'); - -test('parse', function (assert) { - var tests = '一月 1月_二月 2月_三月 3月_四月 4月_五月 5月_六月 6月_七月 7月_八月 8月_九月 9月_十月 10月_十一月 11月_十二月 12月'.split('_'), i; - function equalTest(input, mmm, i) { - assert.equal(moment(input, mmm).month(), i, input + ' should be month ' + (i + 1)); - } - for (i = 0; i < 12; i++) { - tests[i] = tests[i].split(' '); - equalTest(tests[i][0], 'MMM', i); - equalTest(tests[i][1], 'MMM', i); - equalTest(tests[i][0], 'MMMM', i); - equalTest(tests[i][1], 'MMMM', i); - equalTest(tests[i][0].toLocaleLowerCase(), 'MMMM', i); - equalTest(tests[i][1].toLocaleLowerCase(), 'MMMM', i); - equalTest(tests[i][0].toLocaleUpperCase(), 'MMMM', i); - equalTest(tests[i][1].toLocaleUpperCase(), 'MMMM', i); - } -}); - -test('format', function (assert) { - var a = [ - ['dddd, MMMM Do YYYY, a h:mm:ss', '星期日, 二月 14日 2010, 下午 3:25:50'], - ['ddd, Ah', '週日, 下午3'], - ['M Mo MM MMMM MMM', '2 2月 02 二月 2月'], - ['YYYY YY', '2010 10'], - ['D Do DD', '14 14日 14'], - ['d do dddd ddd dd', '0 0日 星期日 週日 日'], - ['DDD DDDo DDDD', '45 45日 045'], - ['w wo ww', '8 8週 08'], - ['h hh', '3 03'], - ['H HH', '15 15'], - ['m mm', '25 25'], - ['s ss', '50 50'], - ['a A', '下午 下午'], - ['[這年的第] DDDo', '這年的第 45日'], - ['LTS', '15:25:50'], - ['L', '2010年2月14日'], - ['LL', '2010年2月14日'], - ['LLL', '2010年2月14日 15:25'], - ['LLLL', '2010年2月14日星期日 15:25'], - ['l', '2010年2月14日'], - ['ll', '2010年2月14日'], - ['lll', '2010年2月14日 15:25'], - ['llll', '2010年2月14日星期日 15:25'] - ], - b = moment(new Date(2010, 1, 14, 15, 25, 50, 125)), - i; - - for (i = 0; i < a.length; i++) { - assert.equal(b.format(a[i][0]), a[i][1], a[i][0] + ' ---> ' + a[i][1]); - } -}); - -test('format month', function (assert) { - var expected = '一月 1月_二月 2月_三月 3月_四月 4月_五月 5月_六月 6月_七月 7月_八月 8月_九月 9月_十月 10月_十一月 11月_十二月 12月'.split('_'), i; - - for (i = 0; i < expected.length; i++) { - assert.equal(moment([2011, i, 1]).format('MMMM MMM'), expected[i], expected[i]); - } -}); - -test('format week', function (assert) { - var expected = '星期日 週日 日_星期一 週一 一_星期二 週二 二_星期三 週三 三_星期四 週四 四_星期五 週五 五_星期六 週六 六'.split('_'), i; - - for (i = 0; i < expected.length; i++) { - assert.equal(moment([2011, 0, 2 + i]).format('dddd ddd dd'), expected[i], expected[i]); - } -}); - -test('from', function (assert) { - var start = moment([2007, 1, 28]); - assert.equal(start.from(moment([2007, 1, 28]).add({s: 44}), true), '幾秒', '44 seconds = a few seconds'); - assert.equal(start.from(moment([2007, 1, 28]).add({s: 45}), true), '1 分鐘', '45 seconds = a minute'); - assert.equal(start.from(moment([2007, 1, 28]).add({s: 89}), true), '1 分鐘', '89 seconds = a minute'); - assert.equal(start.from(moment([2007, 1, 28]).add({s: 90}), true), '2 分鐘', '90 seconds = 2 minutes'); - assert.equal(start.from(moment([2007, 1, 28]).add({m: 44}), true), '44 分鐘', '44 minutes = 44 minutes'); - assert.equal(start.from(moment([2007, 1, 28]).add({m: 45}), true), '1 小時', '45 minutes = an hour'); - assert.equal(start.from(moment([2007, 1, 28]).add({m: 89}), true), '1 小時', '89 minutes = an hour'); - assert.equal(start.from(moment([2007, 1, 28]).add({m: 90}), true), '2 小時', '90 minutes = 2 hours'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 5}), true), '5 小時', '5 hours = 5 hours'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 21}), true), '21 小時', '21 hours = 21 hours'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 22}), true), '1 天', '22 hours = a day'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 35}), true), '1 天', '35 hours = a day'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 36}), true), '2 天', '36 hours = 2 days'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 1}), true), '1 天', '1 day = a day'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 5}), true), '5 天', '5 days = 5 days'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 25}), true), '25 天', '25 days = 25 days'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 26}), true), '1 個月', '26 days = a month'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 30}), true), '1 個月', '30 days = a month'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 43}), true), '1 個月', '43 days = a month'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 46}), true), '2 個月', '46 days = 2 months'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 74}), true), '2 個月', '75 days = 2 months'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 76}), true), '3 個月', '76 days = 3 months'); - assert.equal(start.from(moment([2007, 1, 28]).add({M: 1}), true), '1 個月', '1 month = a month'); - assert.equal(start.from(moment([2007, 1, 28]).add({M: 5}), true), '5 個月', '5 months = 5 months'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 345}), true), '1 年', '345 days = a year'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 548}), true), '2 年', '548 days = 2 years'); - assert.equal(start.from(moment([2007, 1, 28]).add({y: 1}), true), '1 年', '1 year = a year'); - assert.equal(start.from(moment([2007, 1, 28]).add({y: 5}), true), '5 年', '5 years = 5 years'); -}); - -test('suffix', function (assert) { - assert.equal(moment(30000).from(0), '幾秒內', 'prefix'); - assert.equal(moment(0).from(30000), '幾秒前', 'suffix'); -}); - -test('now from now', function (assert) { - assert.equal(moment().fromNow(), '幾秒前', 'now from now should display as in the past'); -}); - -test('fromNow', function (assert) { - assert.equal(moment().add({s: 30}).fromNow(), '幾秒內', 'in a few seconds'); - assert.equal(moment().add({d: 5}).fromNow(), '5 天內', 'in 5 days'); -}); - -test('calendar day', function (assert) { - var a = moment().hours(12).minutes(0).seconds(0); - - assert.equal(moment(a).calendar(), '今天12:00', 'today at the same time'); - assert.equal(moment(a).add({m: 25}).calendar(), '今天12:25', 'Now plus 25 min'); - assert.equal(moment(a).add({h: 1}).calendar(), '今天13:00', 'Now plus 1 hour'); - assert.equal(moment(a).add({d: 1}).calendar(), '明天12:00', 'tomorrow at the same time'); - assert.equal(moment(a).subtract({h: 1}).calendar(), '今天11:00', 'Now minus 1 hour'); - assert.equal(moment(a).subtract({d: 1}).calendar(), '昨天12:00', 'yesterday at the same time'); -}); - -test('calendar next week', function (assert) { - var i, m; - for (i = 2; i < 7; i++) { - m = moment().add({d: i}); - assert.equal(m.calendar(), m.format('[下]ddddLT'), 'Today + ' + i + ' days current time'); - m.hours(0).minutes(0).seconds(0).milliseconds(0); - assert.equal(m.calendar(), m.format('[下]ddddLT'), 'Today + ' + i + ' days beginning of day'); - m.hours(23).minutes(59).seconds(59).milliseconds(999); - assert.equal(m.calendar(), m.format('[下]ddddLT'), 'Today + ' + i + ' days end of day'); - } -}); - -test('calendar last week', function (assert) { - var i, m; - for (i = 2; i < 7; i++) { - m = moment().subtract({d: i}); - assert.equal(m.calendar(), m.format('[上]ddddLT'), 'Today - ' + i + ' days current time'); - m.hours(0).minutes(0).seconds(0).milliseconds(0); - assert.equal(m.calendar(), m.format('[上]ddddLT'), 'Today - ' + i + ' days beginning of day'); - m.hours(23).minutes(59).seconds(59).milliseconds(999); - assert.equal(m.calendar(), m.format('[上]ddddLT'), 'Today - ' + i + ' days end of day'); - } -}); - -test('calendar all else', function (assert) { - var weeksAgo = moment().subtract({w: 1}), - weeksFromNow = moment().add({w: 1}); - - assert.equal(weeksAgo.calendar(), weeksAgo.format('L'), '1 week ago'); - assert.equal(weeksFromNow.calendar(), weeksFromNow.format('L'), 'in 1 week'); - - weeksAgo = moment().subtract({w: 2}); - weeksFromNow = moment().add({w: 2}); - - assert.equal(weeksAgo.calendar(), weeksAgo.format('L'), '2 weeks ago'); - assert.equal(weeksFromNow.calendar(), weeksFromNow.format('L'), 'in 2 weeks'); -}); - -test('meridiem', function (assert) { - assert.equal(moment([2011, 2, 23, 0, 0]).format('a'), '凌晨', 'before dawn'); - assert.equal(moment([2011, 2, 23, 6, 0]).format('a'), '早上', 'morning'); - assert.equal(moment([2011, 2, 23, 9, 0]).format('a'), '上午', 'before noon'); - assert.equal(moment([2011, 2, 23, 12, 0]).format('a'), '中午', 'noon'); - assert.equal(moment([2011, 2, 23, 13, 0]).format('a'), '下午', 'after noon'); - assert.equal(moment([2011, 2, 23, 18, 0]).format('a'), '晚上', 'night'); - - assert.equal(moment([2011, 2, 23, 0, 0]).format('A'), '凌晨', 'before dawn'); - assert.equal(moment([2011, 2, 23, 6, 0]).format('A'), '早上', 'morning'); - assert.equal(moment([2011, 2, 23, 9, 0]).format('A'), '上午', 'before noon'); - assert.equal(moment([2011, 2, 23, 12, 0]).format('A'), '中午', 'noon'); - assert.equal(moment([2011, 2, 23, 13, 0]).format('A'), '下午', 'afternoon'); - assert.equal(moment([2011, 2, 23, 18, 0]).format('A'), '晚上', 'night'); -}); - -test('weeks year starting sunday format', function (assert) { - assert.equal(moment([2012, 0, 1]).format('w ww wo'), '1 01 1週', 'Jan 1 2012 應該是第 1週'); - assert.equal(moment([2012, 0, 7]).format('w ww wo'), '1 01 1週', 'Jan 7 2012 應該是第 1週'); - assert.equal(moment([2012, 0, 8]).format('w ww wo'), '2 02 2週', 'Jan 8 2012 應該是第 2週'); - assert.equal(moment([2012, 0, 14]).format('w ww wo'), '2 02 2週', 'Jan 14 2012 應該是第 2週'); - assert.equal(moment([2012, 0, 15]).format('w ww wo'), '3 03 3週', 'Jan 15 2012 應該是第 3週'); -}); - -}))); - - -;(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' - && typeof require === 'function' ? factory(require('../../moment')) : - typeof define === 'function' && define.amd ? define(['../../moment'], factory) : - factory(global.moment) -}(this, (function (moment) { 'use strict'; - -function each(array, callback) { - var i; - for (i = 0; i < array.length; i++) { - callback(array[i], i, array); - } -} - -function objectKeys(obj) { - if (Object.keys) { - return Object.keys(obj); - } else { - // IE8 - var res = [], i; - for (i in obj) { - if (obj.hasOwnProperty(i)) { - res.push(i); - } - } - return res; - } -} - -// Pick the first defined of two or three arguments. - -function defineCommonLocaleTests(locale, options) { - test('lenient day of month ordinal parsing', function (assert) { - var i, ordinalStr, testMoment; - for (i = 1; i <= 31; ++i) { - ordinalStr = moment([2014, 0, i]).format('YYYY MM Do'); - testMoment = moment(ordinalStr, 'YYYY MM Do'); - assert.equal(testMoment.year(), 2014, - 'lenient day of month ordinal parsing ' + i + ' year check'); - assert.equal(testMoment.month(), 0, - 'lenient day of month ordinal parsing ' + i + ' month check'); - assert.equal(testMoment.date(), i, - 'lenient day of month ordinal parsing ' + i + ' date check'); - } - }); - - test('lenient day of month ordinal parsing of number', function (assert) { - var i, testMoment; - for (i = 1; i <= 31; ++i) { - testMoment = moment('2014 01 ' + i, 'YYYY MM Do'); - assert.equal(testMoment.year(), 2014, - 'lenient day of month ordinal parsing of number ' + i + ' year check'); - assert.equal(testMoment.month(), 0, - 'lenient day of month ordinal parsing of number ' + i + ' month check'); - assert.equal(testMoment.date(), i, - 'lenient day of month ordinal parsing of number ' + i + ' date check'); - } - }); - - test('strict day of month ordinal parsing', function (assert) { - var i, ordinalStr, testMoment; - for (i = 1; i <= 31; ++i) { - ordinalStr = moment([2014, 0, i]).format('YYYY MM Do'); - testMoment = moment(ordinalStr, 'YYYY MM Do', true); - assert.ok(testMoment.isValid(), 'strict day of month ordinal parsing ' + i); - } - }); - - test('meridiem invariant', function (assert) { - var h, m, t1, t2; - for (h = 0; h < 24; ++h) { - for (m = 0; m < 60; m += 15) { - t1 = moment.utc([2000, 0, 1, h, m]); - t2 = moment.utc(t1.format('A h:mm'), 'A h:mm'); - assert.equal(t2.format('HH:mm'), t1.format('HH:mm'), - 'meridiem at ' + t1.format('HH:mm')); - } - } - }); - - test('date format correctness', function (assert) { - var data, tokens; - data = moment.localeData()._longDateFormat; - tokens = objectKeys(data); - each(tokens, function (srchToken) { - // Check each format string to make sure it does not contain any - // tokens that need to be expanded. - each(tokens, function (baseToken) { - // strip escaped sequences - var format = data[baseToken].replace(/(\[[^\]]*\])/g, ''); - assert.equal(false, !!~format.indexOf(srchToken), - 'contains ' + srchToken + ' in ' + baseToken); - }); - }); - }); - - test('month parsing correctness', function (assert) { - var i, m; - - if (locale === 'tr') { - // I can't fix it :( - expect(0); - return; - } - function tester(format) { - var r; - r = moment(m.format(format), format); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format); - r = moment(m.format(format).toLocaleUpperCase(), format); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' upper'); - r = moment(m.format(format).toLocaleLowerCase(), format); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' lower'); - - r = moment(m.format(format), format, true); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' strict'); - r = moment(m.format(format).toLocaleUpperCase(), format, true); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' upper strict'); - r = moment(m.format(format).toLocaleLowerCase(), format, true); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' lower strict'); - } - - for (i = 0; i < 12; ++i) { - m = moment([2015, i, 15, 18]); - tester('MMM'); - tester('MMM.'); - tester('MMMM'); - tester('MMMM.'); - } - }); - - test('weekday parsing correctness', function (assert) { - var i, m; - - if (locale === 'tr' || locale === 'az' || locale === 'ro') { - // tr, az: There is a lower-case letter (ı), that converted to - // upper then lower changes to i - // ro: there is the letter ț which behaves weird under IE8 - expect(0); - return; - } - function tester(format) { - var r, baseMsg = 'weekday ' + m.weekday() + ' fmt ' + format + ' ' + m.toISOString(); - r = moment(m.format(format), format); - assert.equal(r.weekday(), m.weekday(), baseMsg); - r = moment(m.format(format).toLocaleUpperCase(), format); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' upper'); - r = moment(m.format(format).toLocaleLowerCase(), format); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' lower'); - - r = moment(m.format(format), format, true); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' strict'); - r = moment(m.format(format).toLocaleUpperCase(), format, true); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' upper strict'); - r = moment(m.format(format).toLocaleLowerCase(), format, true); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' lower strict'); - } - - for (i = 0; i < 7; ++i) { - m = moment.utc([2015, 0, i + 1, 18]); - tester('dd'); - tester('ddd'); - tester('dddd'); - } - }); - - test('valid localeData', function (assert) { - assert.equal(moment().localeData().months().length, 12, 'months should return 12 months'); - assert.equal(moment().localeData().monthsShort().length, 12, 'monthsShort should return 12 months'); - assert.equal(moment().localeData().weekdays().length, 7, 'weekdays should return 7 days'); - assert.equal(moment().localeData().weekdaysShort().length, 7, 'weekdaysShort should return 7 days'); - assert.equal(moment().localeData().weekdaysMin().length, 7, 'monthsShort should return 7 days'); - }); -} - -function setupDeprecationHandler(test, moment$$1, scope) { - test._expectedDeprecations = null; - test._observedDeprecations = null; - test._oldSupress = moment$$1.suppressDeprecationWarnings; - moment$$1.suppressDeprecationWarnings = true; - test.expectedDeprecations = function () { - test._expectedDeprecations = arguments; - test._observedDeprecations = []; - }; - moment$$1.deprecationHandler = function (name, msg) { - var deprecationId = matchedDeprecation(name, msg, test._expectedDeprecations); - if (deprecationId === -1) { - throw new Error('Unexpected deprecation thrown name=' + - name + ' msg=' + msg); - } - test._observedDeprecations[deprecationId] = 1; - }; -} - -function teardownDeprecationHandler(test, moment$$1, scope) { - moment$$1.suppressDeprecationWarnings = test._oldSupress; - - if (test._expectedDeprecations != null) { - var missedDeprecations = []; - each(test._expectedDeprecations, function (deprecationPattern, id) { - if (test._observedDeprecations[id] !== 1) { - missedDeprecations.push(deprecationPattern); - } - }); - if (missedDeprecations.length !== 0) { - throw new Error('Expected deprecation warnings did not happen: ' + - missedDeprecations.join(' ')); - } - } -} - -function matchedDeprecation(name, msg, deprecations) { - if (deprecations == null) { - return -1; - } - for (var i = 0; i < deprecations.length; ++i) { - if (name != null && name === deprecations[i]) { - return i; - } - if (msg != null && msg.substring(0, deprecations[i].length) === deprecations[i]) { - return i; - } - } - return -1; -} - -/*global QUnit:false*/ - -var test = QUnit.test; - -var expect = QUnit.expect; - - - -function localeModule (name, lifecycle) { - QUnit.module('locale:' + name, { - setup : function () { - moment.locale(name); - moment.createFromInputFallback = function (config) { - throw new Error('input not handled by moment: ' + config._i); - }; - setupDeprecationHandler(test, moment, 'locale'); - if (lifecycle && lifecycle.setup) { - lifecycle.setup(); - } - }, - teardown : function () { - moment.locale('en'); - teardownDeprecationHandler(test, moment, 'locale'); - if (lifecycle && lifecycle.teardown) { - lifecycle.teardown(); - } - } - }); - defineCommonLocaleTests(name, -1, -1); -} - -localeModule('zh-tw'); - -test('parse', function (assert) { - var tests = '一月 1月_二月 2月_三月 3月_四月 4月_五月 5月_六月 6月_七月 7月_八月 8月_九月 9月_十月 10月_十一月 11月_十二月 12月'.split('_'), i; - function equalTest(input, mmm, i) { - assert.equal(moment(input, mmm).month(), i, input + ' should be month ' + (i + 1)); - } - for (i = 0; i < 12; i++) { - tests[i] = tests[i].split(' '); - equalTest(tests[i][0], 'MMM', i); - equalTest(tests[i][1], 'MMM', i); - equalTest(tests[i][0], 'MMMM', i); - equalTest(tests[i][1], 'MMMM', i); - equalTest(tests[i][0].toLocaleLowerCase(), 'MMMM', i); - equalTest(tests[i][1].toLocaleLowerCase(), 'MMMM', i); - equalTest(tests[i][0].toLocaleUpperCase(), 'MMMM', i); - equalTest(tests[i][1].toLocaleUpperCase(), 'MMMM', i); - } -}); - -test('format', function (assert) { - var a = [ - ['dddd, MMMM Do YYYY, a h:mm:ss', '星期日, 二月 14日 2010, 下午 3:25:50'], - ['ddd, Ah', '週日, 下午3'], - ['M Mo MM MMMM MMM', '2 2月 02 二月 2月'], - ['YYYY YY', '2010 10'], - ['D Do DD', '14 14日 14'], - ['d do dddd ddd dd', '0 0日 星期日 週日 日'], - ['DDD DDDo DDDD', '45 45日 045'], - ['w wo ww', '8 8週 08'], - ['h hh', '3 03'], - ['H HH', '15 15'], - ['m mm', '25 25'], - ['s ss', '50 50'], - ['a A', '下午 下午'], - ['[這年的第] DDDo', '這年的第 45日'], - ['LTS', '15:25:50'], - ['L', '2010年2月14日'], - ['LL', '2010年2月14日'], - ['LLL', '2010年2月14日 15:25'], - ['LLLL', '2010年2月14日星期日 15:25'], - ['l', '2010年2月14日'], - ['ll', '2010年2月14日'], - ['lll', '2010年2月14日 15:25'], - ['llll', '2010年2月14日星期日 15:25'] - ], - b = moment(new Date(2010, 1, 14, 15, 25, 50, 125)), - i; - - for (i = 0; i < a.length; i++) { - assert.equal(b.format(a[i][0]), a[i][1], a[i][0] + ' ---> ' + a[i][1]); - } -}); - -test('format month', function (assert) { - var expected = '一月 1月_二月 2月_三月 3月_四月 4月_五月 5月_六月 6月_七月 7月_八月 8月_九月 9月_十月 10月_十一月 11月_十二月 12月'.split('_'), i; - - for (i = 0; i < expected.length; i++) { - assert.equal(moment([2011, i, 1]).format('MMMM MMM'), expected[i], expected[i]); - } -}); - -test('format week', function (assert) { - var expected = '星期日 週日 日_星期一 週一 一_星期二 週二 二_星期三 週三 三_星期四 週四 四_星期五 週五 五_星期六 週六 六'.split('_'), i; - - for (i = 0; i < expected.length; i++) { - assert.equal(moment([2011, 0, 2 + i]).format('dddd ddd dd'), expected[i], expected[i]); - } -}); - -test('from', function (assert) { - var start = moment([2007, 1, 28]); - assert.equal(start.from(moment([2007, 1, 28]).add({s: 44}), true), '幾秒', '44 seconds = a few seconds'); - assert.equal(start.from(moment([2007, 1, 28]).add({s: 45}), true), '1 分鐘', '45 seconds = a minute'); - assert.equal(start.from(moment([2007, 1, 28]).add({s: 89}), true), '1 分鐘', '89 seconds = a minute'); - assert.equal(start.from(moment([2007, 1, 28]).add({s: 90}), true), '2 分鐘', '90 seconds = 2 minutes'); - assert.equal(start.from(moment([2007, 1, 28]).add({m: 44}), true), '44 分鐘', '44 minutes = 44 minutes'); - assert.equal(start.from(moment([2007, 1, 28]).add({m: 45}), true), '1 小時', '45 minutes = an hour'); - assert.equal(start.from(moment([2007, 1, 28]).add({m: 89}), true), '1 小時', '89 minutes = an hour'); - assert.equal(start.from(moment([2007, 1, 28]).add({m: 90}), true), '2 小時', '90 minutes = 2 hours'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 5}), true), '5 小時', '5 hours = 5 hours'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 21}), true), '21 小時', '21 hours = 21 hours'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 22}), true), '1 天', '22 hours = a day'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 35}), true), '1 天', '35 hours = a day'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 36}), true), '2 天', '36 hours = 2 days'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 1}), true), '1 天', '1 day = a day'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 5}), true), '5 天', '5 days = 5 days'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 25}), true), '25 天', '25 days = 25 days'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 26}), true), '1 個月', '26 days = a month'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 30}), true), '1 個月', '30 days = a month'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 43}), true), '1 個月', '43 days = a month'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 46}), true), '2 個月', '46 days = 2 months'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 74}), true), '2 個月', '75 days = 2 months'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 76}), true), '3 個月', '76 days = 3 months'); - assert.equal(start.from(moment([2007, 1, 28]).add({M: 1}), true), '1 個月', '1 month = a month'); - assert.equal(start.from(moment([2007, 1, 28]).add({M: 5}), true), '5 個月', '5 months = 5 months'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 345}), true), '1 年', '345 days = a year'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 548}), true), '2 年', '548 days = 2 years'); - assert.equal(start.from(moment([2007, 1, 28]).add({y: 1}), true), '1 年', '1 year = a year'); - assert.equal(start.from(moment([2007, 1, 28]).add({y: 5}), true), '5 年', '5 years = 5 years'); -}); - -test('suffix', function (assert) { - assert.equal(moment(30000).from(0), '幾秒內', 'prefix'); - assert.equal(moment(0).from(30000), '幾秒前', 'suffix'); -}); - -test('now from now', function (assert) { - assert.equal(moment().fromNow(), '幾秒前', 'now from now should display as in the past'); -}); - -test('fromNow', function (assert) { - assert.equal(moment().add({s: 30}).fromNow(), '幾秒內', 'in a few seconds'); - assert.equal(moment().add({d: 5}).fromNow(), '5 天內', 'in 5 days'); -}); - -test('calendar day', function (assert) { - var a = moment().hours(12).minutes(0).seconds(0); - - assert.equal(moment(a).calendar(), '今天12:00', 'today at the same time'); - assert.equal(moment(a).add({m: 25}).calendar(), '今天12:25', 'Now plus 25 min'); - assert.equal(moment(a).add({h: 1}).calendar(), '今天13:00', 'Now plus 1 hour'); - assert.equal(moment(a).add({d: 1}).calendar(), '明天12:00', 'tomorrow at the same time'); - assert.equal(moment(a).subtract({h: 1}).calendar(), '今天11:00', 'Now minus 1 hour'); - assert.equal(moment(a).subtract({d: 1}).calendar(), '昨天12:00', 'yesterday at the same time'); -}); - -test('calendar next week', function (assert) { - var i, m; - for (i = 2; i < 7; i++) { - m = moment().add({d: i}); - assert.equal(m.calendar(), m.format('[下]ddddLT'), 'Today + ' + i + ' days current time'); - m.hours(0).minutes(0).seconds(0).milliseconds(0); - assert.equal(m.calendar(), m.format('[下]ddddLT'), 'Today + ' + i + ' days beginning of day'); - m.hours(23).minutes(59).seconds(59).milliseconds(999); - assert.equal(m.calendar(), m.format('[下]ddddLT'), 'Today + ' + i + ' days end of day'); - } -}); - -test('calendar last week', function (assert) { - var i, m; - for (i = 2; i < 7; i++) { - m = moment().subtract({d: i}); - assert.equal(m.calendar(), m.format('[上]ddddLT'), 'Today - ' + i + ' days current time'); - m.hours(0).minutes(0).seconds(0).milliseconds(0); - assert.equal(m.calendar(), m.format('[上]ddddLT'), 'Today - ' + i + ' days beginning of day'); - m.hours(23).minutes(59).seconds(59).milliseconds(999); - assert.equal(m.calendar(), m.format('[上]ddddLT'), 'Today - ' + i + ' days end of day'); - } -}); - -test('calendar all else', function (assert) { - var weeksAgo = moment().subtract({w: 1}), - weeksFromNow = moment().add({w: 1}); - - assert.equal(weeksAgo.calendar(), weeksAgo.format('L'), '1 week ago'); - assert.equal(weeksFromNow.calendar(), weeksFromNow.format('L'), 'in 1 week'); - - weeksAgo = moment().subtract({w: 2}); - weeksFromNow = moment().add({w: 2}); - - assert.equal(weeksAgo.calendar(), weeksAgo.format('L'), '2 weeks ago'); - assert.equal(weeksFromNow.calendar(), weeksFromNow.format('L'), 'in 2 weeks'); -}); - -test('meridiem', function (assert) { - assert.equal(moment([2011, 2, 23, 0, 0]).format('a'), '凌晨', 'before dawn'); - assert.equal(moment([2011, 2, 23, 6, 0]).format('a'), '早上', 'morning'); - assert.equal(moment([2011, 2, 23, 9, 0]).format('a'), '上午', 'before noon'); - assert.equal(moment([2011, 2, 23, 12, 0]).format('a'), '中午', 'noon'); - assert.equal(moment([2011, 2, 23, 13, 0]).format('a'), '下午', 'after noon'); - assert.equal(moment([2011, 2, 23, 18, 0]).format('a'), '晚上', 'night'); - - assert.equal(moment([2011, 2, 23, 0, 0]).format('A'), '凌晨', 'before dawn'); - assert.equal(moment([2011, 2, 23, 6, 0]).format('A'), '早上', 'morning'); - assert.equal(moment([2011, 2, 23, 9, 0]).format('A'), '上午', 'before noon'); - assert.equal(moment([2011, 2, 23, 12, 0]).format('A'), '中午', 'noon'); - assert.equal(moment([2011, 2, 23, 13, 0]).format('A'), '下午', 'afternoon'); - assert.equal(moment([2011, 2, 23, 18, 0]).format('A'), '晚上', 'night'); -}); - -test('weeks year starting sunday format', function (assert) { - assert.equal(moment([2012, 0, 1]).format('w ww wo'), '1 01 1週', 'Jan 1 2012 應該是第 1週'); - assert.equal(moment([2012, 0, 7]).format('w ww wo'), '1 01 1週', 'Jan 7 2012 應該是第 1週'); - assert.equal(moment([2012, 0, 8]).format('w ww wo'), '2 02 2週', 'Jan 8 2012 應該是第 2週'); - assert.equal(moment([2012, 0, 14]).format('w ww wo'), '2 02 2週', 'Jan 14 2012 應該是第 2週'); - assert.equal(moment([2012, 0, 15]).format('w ww wo'), '3 03 3週', 'Jan 15 2012 應該是第 3週'); -}); - -}))); - - -;(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' - && typeof require === 'function' ? factory(require('../../moment')) : - typeof define === 'function' && define.amd ? define(['../../moment'], factory) : - factory(global.moment) -}(this, (function (moment) { 'use strict'; - -function each(array, callback) { - var i; - for (i = 0; i < array.length; i++) { - callback(array[i], i, array); - } -} - -function objectKeys(obj) { - if (Object.keys) { - return Object.keys(obj); - } else { - // IE8 - var res = [], i; - for (i in obj) { - if (obj.hasOwnProperty(i)) { - res.push(i); - } - } - return res; - } -} - -// Pick the first defined of two or three arguments. - -function defineCommonLocaleTests(locale, options) { - test('lenient day of month ordinal parsing', function (assert) { - var i, ordinalStr, testMoment; - for (i = 1; i <= 31; ++i) { - ordinalStr = moment([2014, 0, i]).format('YYYY MM Do'); - testMoment = moment(ordinalStr, 'YYYY MM Do'); - assert.equal(testMoment.year(), 2014, - 'lenient day of month ordinal parsing ' + i + ' year check'); - assert.equal(testMoment.month(), 0, - 'lenient day of month ordinal parsing ' + i + ' month check'); - assert.equal(testMoment.date(), i, - 'lenient day of month ordinal parsing ' + i + ' date check'); - } - }); - - test('lenient day of month ordinal parsing of number', function (assert) { - var i, testMoment; - for (i = 1; i <= 31; ++i) { - testMoment = moment('2014 01 ' + i, 'YYYY MM Do'); - assert.equal(testMoment.year(), 2014, - 'lenient day of month ordinal parsing of number ' + i + ' year check'); - assert.equal(testMoment.month(), 0, - 'lenient day of month ordinal parsing of number ' + i + ' month check'); - assert.equal(testMoment.date(), i, - 'lenient day of month ordinal parsing of number ' + i + ' date check'); - } - }); - - test('strict day of month ordinal parsing', function (assert) { - var i, ordinalStr, testMoment; - for (i = 1; i <= 31; ++i) { - ordinalStr = moment([2014, 0, i]).format('YYYY MM Do'); - testMoment = moment(ordinalStr, 'YYYY MM Do', true); - assert.ok(testMoment.isValid(), 'strict day of month ordinal parsing ' + i); - } - }); - - test('meridiem invariant', function (assert) { - var h, m, t1, t2; - for (h = 0; h < 24; ++h) { - for (m = 0; m < 60; m += 15) { - t1 = moment.utc([2000, 0, 1, h, m]); - t2 = moment.utc(t1.format('A h:mm'), 'A h:mm'); - assert.equal(t2.format('HH:mm'), t1.format('HH:mm'), - 'meridiem at ' + t1.format('HH:mm')); - } - } - }); - - test('date format correctness', function (assert) { - var data, tokens; - data = moment.localeData()._longDateFormat; - tokens = objectKeys(data); - each(tokens, function (srchToken) { - // Check each format string to make sure it does not contain any - // tokens that need to be expanded. - each(tokens, function (baseToken) { - // strip escaped sequences - var format = data[baseToken].replace(/(\[[^\]]*\])/g, ''); - assert.equal(false, !!~format.indexOf(srchToken), - 'contains ' + srchToken + ' in ' + baseToken); - }); - }); - }); - - test('month parsing correctness', function (assert) { - var i, m; - - if (locale === 'tr') { - // I can't fix it :( - expect(0); - return; - } - function tester(format) { - var r; - r = moment(m.format(format), format); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format); - r = moment(m.format(format).toLocaleUpperCase(), format); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' upper'); - r = moment(m.format(format).toLocaleLowerCase(), format); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' lower'); - - r = moment(m.format(format), format, true); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' strict'); - r = moment(m.format(format).toLocaleUpperCase(), format, true); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' upper strict'); - r = moment(m.format(format).toLocaleLowerCase(), format, true); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' lower strict'); - } - - for (i = 0; i < 12; ++i) { - m = moment([2015, i, 15, 18]); - tester('MMM'); - tester('MMM.'); - tester('MMMM'); - tester('MMMM.'); - } - }); - - test('weekday parsing correctness', function (assert) { - var i, m; - - if (locale === 'tr' || locale === 'az' || locale === 'ro') { - // tr, az: There is a lower-case letter (ı), that converted to - // upper then lower changes to i - // ro: there is the letter ț which behaves weird under IE8 - expect(0); - return; - } - function tester(format) { - var r, baseMsg = 'weekday ' + m.weekday() + ' fmt ' + format + ' ' + m.toISOString(); - r = moment(m.format(format), format); - assert.equal(r.weekday(), m.weekday(), baseMsg); - r = moment(m.format(format).toLocaleUpperCase(), format); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' upper'); - r = moment(m.format(format).toLocaleLowerCase(), format); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' lower'); - - r = moment(m.format(format), format, true); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' strict'); - r = moment(m.format(format).toLocaleUpperCase(), format, true); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' upper strict'); - r = moment(m.format(format).toLocaleLowerCase(), format, true); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' lower strict'); - } - - for (i = 0; i < 7; ++i) { - m = moment.utc([2015, 0, i + 1, 18]); - tester('dd'); - tester('ddd'); - tester('dddd'); - } - }); - - test('valid localeData', function (assert) { - assert.equal(moment().localeData().months().length, 12, 'months should return 12 months'); - assert.equal(moment().localeData().monthsShort().length, 12, 'monthsShort should return 12 months'); - assert.equal(moment().localeData().weekdays().length, 7, 'weekdays should return 7 days'); - assert.equal(moment().localeData().weekdaysShort().length, 7, 'weekdaysShort should return 7 days'); - assert.equal(moment().localeData().weekdaysMin().length, 7, 'monthsShort should return 7 days'); - }); -} - -function setupDeprecationHandler(test, moment$$1, scope) { - test._expectedDeprecations = null; - test._observedDeprecations = null; - test._oldSupress = moment$$1.suppressDeprecationWarnings; - moment$$1.suppressDeprecationWarnings = true; - test.expectedDeprecations = function () { - test._expectedDeprecations = arguments; - test._observedDeprecations = []; - }; - moment$$1.deprecationHandler = function (name, msg) { - var deprecationId = matchedDeprecation(name, msg, test._expectedDeprecations); - if (deprecationId === -1) { - throw new Error('Unexpected deprecation thrown name=' + - name + ' msg=' + msg); - } - test._observedDeprecations[deprecationId] = 1; - }; -} - -function teardownDeprecationHandler(test, moment$$1, scope) { - moment$$1.suppressDeprecationWarnings = test._oldSupress; - - if (test._expectedDeprecations != null) { - var missedDeprecations = []; - each(test._expectedDeprecations, function (deprecationPattern, id) { - if (test._observedDeprecations[id] !== 1) { - missedDeprecations.push(deprecationPattern); - } - }); - if (missedDeprecations.length !== 0) { - throw new Error('Expected deprecation warnings did not happen: ' + - missedDeprecations.join(' ')); - } - } -} - -function matchedDeprecation(name, msg, deprecations) { - if (deprecations == null) { - return -1; - } - for (var i = 0; i < deprecations.length; ++i) { - if (name != null && name === deprecations[i]) { - return i; - } - if (msg != null && msg.substring(0, deprecations[i].length) === deprecations[i]) { - return i; - } - } - return -1; -} - -/*global QUnit:false*/ - -var test = QUnit.test; - -var expect = QUnit.expect; - -function module$1 (name, lifecycle) { - QUnit.module(name, { - setup : function () { - moment.locale('en'); - moment.createFromInputFallback = function (config) { - throw new Error('input not handled by moment: ' + config._i); - }; - setupDeprecationHandler(test, moment, 'core'); - if (lifecycle && lifecycle.setup) { - lifecycle.setup(); - } - }, - teardown : function () { - teardownDeprecationHandler(test, moment, 'core'); - if (lifecycle && lifecycle.teardown) { - lifecycle.teardown(); - } - } - }); -} - -module$1('add and subtract'); - -test('add short reverse args', function (assert) { - var a = moment(), b, c, d; - a.year(2011); - a.month(9); - a.date(12); - a.hours(6); - a.minutes(7); - a.seconds(8); - a.milliseconds(500); - - assert.equal(a.add({ms: 50}).milliseconds(), 550, 'Add milliseconds'); - assert.equal(a.add({s: 1}).seconds(), 9, 'Add seconds'); - assert.equal(a.add({m: 1}).minutes(), 8, 'Add minutes'); - assert.equal(a.add({h: 1}).hours(), 7, 'Add hours'); - assert.equal(a.add({d: 1}).date(), 13, 'Add date'); - assert.equal(a.add({w: 1}).date(), 20, 'Add week'); - assert.equal(a.add({M: 1}).month(), 10, 'Add month'); - assert.equal(a.add({y: 1}).year(), 2012, 'Add year'); - assert.equal(a.add({Q: 1}).month(), 1, 'Add quarter'); - - b = moment([2010, 0, 31]).add({M: 1}); - c = moment([2010, 1, 28]).subtract({M: 1}); - d = moment([2010, 1, 28]).subtract({Q: 1}); - - assert.equal(b.month(), 1, 'add month, jan 31st to feb 28th'); - assert.equal(b.date(), 28, 'add month, jan 31st to feb 28th'); - assert.equal(c.month(), 0, 'subtract month, feb 28th to jan 28th'); - assert.equal(c.date(), 28, 'subtract month, feb 28th to jan 28th'); - assert.equal(d.month(), 10, 'subtract quarter, feb 28th 2010 to nov 28th 2009'); - assert.equal(d.date(), 28, 'subtract quarter, feb 28th 2010 to nov 28th 2009'); - assert.equal(d.year(), 2009, 'subtract quarter, feb 28th 2010 to nov 28th 2009'); -}); - -test('add long reverse args', function (assert) { - var a = moment(); - a.year(2011); - a.month(9); - a.date(12); - a.hours(6); - a.minutes(7); - a.seconds(8); - a.milliseconds(500); - - assert.equal(a.add({milliseconds: 50}).milliseconds(), 550, 'Add milliseconds'); - assert.equal(a.add({seconds: 1}).seconds(), 9, 'Add seconds'); - assert.equal(a.add({minutes: 1}).minutes(), 8, 'Add minutes'); - assert.equal(a.add({hours: 1}).hours(), 7, 'Add hours'); - assert.equal(a.add({days: 1}).date(), 13, 'Add date'); - assert.equal(a.add({weeks: 1}).date(), 20, 'Add week'); - assert.equal(a.add({months: 1}).month(), 10, 'Add month'); - assert.equal(a.add({years: 1}).year(), 2012, 'Add year'); - assert.equal(a.add({quarters: 1}).month(), 1, 'Add quarter'); -}); - -test('add long singular reverse args', function (assert) { - var a = moment(); - a.year(2011); - a.month(9); - a.date(12); - a.hours(6); - a.minutes(7); - a.seconds(8); - a.milliseconds(500); - - assert.equal(a.add({millisecond: 50}).milliseconds(), 550, 'Add milliseconds'); - assert.equal(a.add({second: 1}).seconds(), 9, 'Add seconds'); - assert.equal(a.add({minute: 1}).minutes(), 8, 'Add minutes'); - assert.equal(a.add({hour: 1}).hours(), 7, 'Add hours'); - assert.equal(a.add({day: 1}).date(), 13, 'Add date'); - assert.equal(a.add({week: 1}).date(), 20, 'Add week'); - assert.equal(a.add({month: 1}).month(), 10, 'Add month'); - assert.equal(a.add({year: 1}).year(), 2012, 'Add year'); - assert.equal(a.add({quarter: 1}).month(), 1, 'Add quarter'); -}); - -test('add string long reverse args', function (assert) { - var a = moment(), b; - - test.expectedDeprecations('moment().add(period, number)'); - - a.year(2011); - a.month(9); - a.date(12); - a.hours(6); - a.minutes(7); - a.seconds(8); - a.milliseconds(500); - - b = a.clone(); - - assert.equal(a.add('millisecond', 50).milliseconds(), 550, 'Add milliseconds'); - assert.equal(a.add('second', 1).seconds(), 9, 'Add seconds'); - assert.equal(a.add('minute', 1).minutes(), 8, 'Add minutes'); - assert.equal(a.add('hour', 1).hours(), 7, 'Add hours'); - assert.equal(a.add('day', 1).date(), 13, 'Add date'); - assert.equal(a.add('week', 1).date(), 20, 'Add week'); - assert.equal(a.add('month', 1).month(), 10, 'Add month'); - assert.equal(a.add('year', 1).year(), 2012, 'Add year'); - assert.equal(b.add('day', '01').date(), 13, 'Add date'); - assert.equal(a.add('quarter', 1).month(), 1, 'Add quarter'); -}); - -test('add string long singular reverse args', function (assert) { - var a = moment(), b; - - test.expectedDeprecations('moment().add(period, number)'); - - a.year(2011); - a.month(9); - a.date(12); - a.hours(6); - a.minutes(7); - a.seconds(8); - a.milliseconds(500); - - b = a.clone(); - - assert.equal(a.add('milliseconds', 50).milliseconds(), 550, 'Add milliseconds'); - assert.equal(a.add('seconds', 1).seconds(), 9, 'Add seconds'); - assert.equal(a.add('minutes', 1).minutes(), 8, 'Add minutes'); - assert.equal(a.add('hours', 1).hours(), 7, 'Add hours'); - assert.equal(a.add('days', 1).date(), 13, 'Add date'); - assert.equal(a.add('weeks', 1).date(), 20, 'Add week'); - assert.equal(a.add('months', 1).month(), 10, 'Add month'); - assert.equal(a.add('years', 1).year(), 2012, 'Add year'); - assert.equal(b.add('days', '01').date(), 13, 'Add date'); - assert.equal(a.add('quarters', 1).month(), 1, 'Add quarter'); -}); - -test('add string short reverse args', function (assert) { - var a = moment(); - test.expectedDeprecations('moment().add(period, number)'); - - a.year(2011); - a.month(9); - a.date(12); - a.hours(6); - a.minutes(7); - a.seconds(8); - a.milliseconds(500); - - assert.equal(a.add('ms', 50).milliseconds(), 550, 'Add milliseconds'); - assert.equal(a.add('s', 1).seconds(), 9, 'Add seconds'); - assert.equal(a.add('m', 1).minutes(), 8, 'Add minutes'); - assert.equal(a.add('h', 1).hours(), 7, 'Add hours'); - assert.equal(a.add('d', 1).date(), 13, 'Add date'); - assert.equal(a.add('w', 1).date(), 20, 'Add week'); - assert.equal(a.add('M', 1).month(), 10, 'Add month'); - assert.equal(a.add('y', 1).year(), 2012, 'Add year'); - assert.equal(a.add('Q', 1).month(), 1, 'Add quarter'); -}); - -test('add string long', function (assert) { - var a = moment(); - a.year(2011); - a.month(9); - a.date(12); - a.hours(6); - a.minutes(7); - a.seconds(8); - a.milliseconds(500); - - assert.equal(a.add(50, 'millisecond').milliseconds(), 550, 'Add milliseconds'); - assert.equal(a.add(1, 'second').seconds(), 9, 'Add seconds'); - assert.equal(a.add(1, 'minute').minutes(), 8, 'Add minutes'); - assert.equal(a.add(1, 'hour').hours(), 7, 'Add hours'); - assert.equal(a.add(1, 'day').date(), 13, 'Add date'); - assert.equal(a.add(1, 'week').date(), 20, 'Add week'); - assert.equal(a.add(1, 'month').month(), 10, 'Add month'); - assert.equal(a.add(1, 'year').year(), 2012, 'Add year'); - assert.equal(a.add(1, 'quarter').month(), 1, 'Add quarter'); -}); - -test('add string long singular', function (assert) { - var a = moment(); - a.year(2011); - a.month(9); - a.date(12); - a.hours(6); - a.minutes(7); - a.seconds(8); - a.milliseconds(500); - - assert.equal(a.add(50, 'milliseconds').milliseconds(), 550, 'Add milliseconds'); - assert.equal(a.add(1, 'seconds').seconds(), 9, 'Add seconds'); - assert.equal(a.add(1, 'minutes').minutes(), 8, 'Add minutes'); - assert.equal(a.add(1, 'hours').hours(), 7, 'Add hours'); - assert.equal(a.add(1, 'days').date(), 13, 'Add date'); - assert.equal(a.add(1, 'weeks').date(), 20, 'Add week'); - assert.equal(a.add(1, 'months').month(), 10, 'Add month'); - assert.equal(a.add(1, 'years').year(), 2012, 'Add year'); - assert.equal(a.add(1, 'quarters').month(), 1, 'Add quarter'); -}); - -test('add string short', function (assert) { - var a = moment(); - a.year(2011); - a.month(9); - a.date(12); - a.hours(6); - a.minutes(7); - a.seconds(8); - a.milliseconds(500); - - assert.equal(a.add(50, 'ms').milliseconds(), 550, 'Add milliseconds'); - assert.equal(a.add(1, 's').seconds(), 9, 'Add seconds'); - assert.equal(a.add(1, 'm').minutes(), 8, 'Add minutes'); - assert.equal(a.add(1, 'h').hours(), 7, 'Add hours'); - assert.equal(a.add(1, 'd').date(), 13, 'Add date'); - assert.equal(a.add(1, 'w').date(), 20, 'Add week'); - assert.equal(a.add(1, 'M').month(), 10, 'Add month'); - assert.equal(a.add(1, 'y').year(), 2012, 'Add year'); - assert.equal(a.add(1, 'Q').month(), 1, 'Add quarter'); -}); - -test('add strings string short reversed', function (assert) { - var a = moment(); - test.expectedDeprecations('moment().add(period, number)'); - - a.year(2011); - a.month(9); - a.date(12); - a.hours(6); - a.minutes(7); - a.seconds(8); - a.milliseconds(500); - - assert.equal(a.add('ms', '50').milliseconds(), 550, 'Add milliseconds'); - assert.equal(a.add('s', '1').seconds(), 9, 'Add seconds'); - assert.equal(a.add('m', '1').minutes(), 8, 'Add minutes'); - assert.equal(a.add('h', '1').hours(), 7, 'Add hours'); - assert.equal(a.add('d', '1').date(), 13, 'Add date'); - assert.equal(a.add('w', '1').date(), 20, 'Add week'); - assert.equal(a.add('M', '1').month(), 10, 'Add month'); - assert.equal(a.add('y', '1').year(), 2012, 'Add year'); - assert.equal(a.add('Q', '1').month(), 1, 'Add quarter'); -}); - -test('subtract strings string short reversed', function (assert) { - var a = moment(); - test.expectedDeprecations('moment().subtract(period, number)'); - - a.year(2011); - a.month(9); - a.date(12); - a.hours(6); - a.minutes(7); - a.seconds(8); - a.milliseconds(500); - - assert.equal(a.subtract('ms', '50').milliseconds(), 450, 'Subtract milliseconds'); - assert.equal(a.subtract('s', '1').seconds(), 7, 'Subtract seconds'); - assert.equal(a.subtract('m', '1').minutes(), 6, 'Subtract minutes'); - assert.equal(a.subtract('h', '1').hours(), 5, 'Subtract hours'); - assert.equal(a.subtract('d', '1').date(), 11, 'Subtract date'); - assert.equal(a.subtract('w', '1').date(), 4, 'Subtract week'); - assert.equal(a.subtract('M', '1').month(), 8, 'Subtract month'); - assert.equal(a.subtract('y', '1').year(), 2010, 'Subtract year'); - assert.equal(a.subtract('Q', '1').month(), 5, 'Subtract quarter'); -}); - -test('add strings string short', function (assert) { - var a = moment(); - a.year(2011); - a.month(9); - a.date(12); - a.hours(6); - a.minutes(7); - a.seconds(8); - a.milliseconds(500); - - assert.equal(a.add('50', 'ms').milliseconds(), 550, 'Add milliseconds'); - assert.equal(a.add('1', 's').seconds(), 9, 'Add seconds'); - assert.equal(a.add('1', 'm').minutes(), 8, 'Add minutes'); - assert.equal(a.add('1', 'h').hours(), 7, 'Add hours'); - assert.equal(a.add('1', 'd').date(), 13, 'Add date'); - assert.equal(a.add('1', 'w').date(), 20, 'Add week'); - assert.equal(a.add('1', 'M').month(), 10, 'Add month'); - assert.equal(a.add('1', 'y').year(), 2012, 'Add year'); - assert.equal(a.add('1', 'Q').month(), 1, 'Add quarter'); -}); - -test('add no string with milliseconds default', function (assert) { - var a = moment(); - a.year(2011); - a.month(9); - a.date(12); - a.hours(6); - a.minutes(7); - a.seconds(8); - a.milliseconds(500); - - assert.equal(a.add(50).milliseconds(), 550, 'Add milliseconds'); -}); - -test('subtract strings string short', function (assert) { - var a = moment(); - a.year(2011); - a.month(9); - a.date(12); - a.hours(6); - a.minutes(7); - a.seconds(8); - a.milliseconds(500); - - assert.equal(a.subtract('50', 'ms').milliseconds(), 450, 'Subtract milliseconds'); - assert.equal(a.subtract('1', 's').seconds(), 7, 'Subtract seconds'); - assert.equal(a.subtract('1', 'm').minutes(), 6, 'Subtract minutes'); - assert.equal(a.subtract('1', 'h').hours(), 5, 'Subtract hours'); - assert.equal(a.subtract('1', 'd').date(), 11, 'Subtract date'); - assert.equal(a.subtract('1', 'w').date(), 4, 'Subtract week'); - assert.equal(a.subtract('1', 'M').month(), 8, 'Subtract month'); - assert.equal(a.subtract('1', 'y').year(), 2010, 'Subtract year'); - assert.equal(a.subtract('1', 'Q').month(), 5, 'Subtract quarter'); -}); - -test('add across DST', function (assert) { - // Detect Safari bug and bail. Hours on 13th March 2011 are shifted - // with 1 ahead. - if (new Date(2011, 2, 13, 5, 0, 0).getHours() !== 5) { - expect(0); - return; - } - - var a = moment(new Date(2011, 2, 12, 5, 0, 0)), - b = moment(new Date(2011, 2, 12, 5, 0, 0)), - c = moment(new Date(2011, 2, 12, 5, 0, 0)), - d = moment(new Date(2011, 2, 12, 5, 0, 0)), - e = moment(new Date(2011, 2, 12, 5, 0, 0)); - a.add(1, 'days'); - b.add(24, 'hours'); - c.add(1, 'months'); - e.add(1, 'quarter'); - - assert.equal(a.hours(), 5, 'adding days over DST difference should result in the same hour'); - if (b.isDST() && !d.isDST()) { - assert.equal(b.hours(), 6, 'adding hours over DST difference should result in a different hour'); - } else if (!b.isDST() && d.isDST()) { - assert.equal(b.hours(), 4, 'adding hours over DST difference should result in a different hour'); - } else { - assert.equal(b.hours(), 5, 'adding hours over DST difference should result in a same hour if the timezone does not have daylight savings time'); - } - assert.equal(c.hours(), 5, 'adding months over DST difference should result in the same hour'); - assert.equal(e.hours(), 5, 'adding quarters over DST difference should result in the same hour'); -}); - -test('add decimal values of days and months', function (assert) { - assert.equal(moment([2016,3,3]).add(1.5, 'days').date(), 5, 'adding 1.5 days is rounded to adding 2 day'); - assert.equal(moment([2016,3,3]).add(-1.5, 'days').date(), 1, 'adding -1.5 days is rounded to adding -2 day'); - assert.equal(moment([2016,3,1]).add(-1.5, 'days').date(), 30, 'adding -1.5 days on first of month wraps around'); - assert.equal(moment([2016,3,3]).add(1.5, 'months').month(), 5, 'adding 1.5 months adds 2 months'); - assert.equal(moment([2016,3,3]).add(-1.5, 'months').month(), 1, 'adding -1.5 months adds -2 months'); - assert.equal(moment([2016,0,3]).add(-1.5, 'months').month(), 10, 'adding -1.5 months at start of year wraps back'); - assert.equal(moment([2016,3,3]).subtract(1.5, 'days').date(),1, 'subtract 1.5 days is rounded to subtract 2 day'); - assert.equal(moment([2016,3,2]).subtract(1.5, 'days').date(), 31, 'subtract 1.5 days subtracts 2 days'); - assert.equal(moment([2016,1,1]).subtract(1.1, 'days').date(), 31, 'subtract 1.1 days wraps to previous month'); - assert.equal(moment([2016,3,3]).subtract(-1.5, 'days').date(), 5, 'subtract -1.5 days is rounded to subtract -2 day'); - assert.equal(moment([2016,3,30]).subtract(-1.5, 'days').date(), 2, 'subtract -1.5 days on last of month wraps around'); - assert.equal(moment([2016,3,3]).subtract(1.5, 'months').month(), 1, 'subtract 1.5 months subtract 2 months'); - assert.equal(moment([2016,3,3]).subtract(-1.5, 'months').month(), 5, 'subtract -1.5 months subtract -2 month'); - assert.equal(moment([2016,11,31]).subtract(-1.5, 'months').month(),1, 'subtract -1.5 months at end of year wraps back'); - assert.equal(moment([2016, 0,1]).add(1.5, 'years').format('YYYY-MM-DD'), '2017-07-01', 'add 1.5 years adds 1 year six months'); - assert.equal(moment([2016, 0,1]).add(1.6, 'years').format('YYYY-MM-DD'), '2017-08-01', 'add 1.6 years becomes 1.6*12 = 19.2, round, 19 months'); - assert.equal(moment([2016,0,1]).add(1.1, 'quarters').format('YYYY-MM-DD'), '2016-04-01', 'add 1.1 quarters 1.1*3=3.3, round, 3 months'); -}); - -}))); - - -;(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' - && typeof require === 'function' ? factory(require('../../moment')) : - typeof define === 'function' && define.amd ? define(['../../moment'], factory) : - factory(global.moment) -}(this, (function (moment) { 'use strict'; - -function each(array, callback) { - var i; - for (i = 0; i < array.length; i++) { - callback(array[i], i, array); - } -} - -function objectKeys(obj) { - if (Object.keys) { - return Object.keys(obj); - } else { - // IE8 - var res = [], i; - for (i in obj) { - if (obj.hasOwnProperty(i)) { - res.push(i); - } - } - return res; - } -} - -// Pick the first defined of two or three arguments. - -function defineCommonLocaleTests(locale, options) { - test('lenient day of month ordinal parsing', function (assert) { - var i, ordinalStr, testMoment; - for (i = 1; i <= 31; ++i) { - ordinalStr = moment([2014, 0, i]).format('YYYY MM Do'); - testMoment = moment(ordinalStr, 'YYYY MM Do'); - assert.equal(testMoment.year(), 2014, - 'lenient day of month ordinal parsing ' + i + ' year check'); - assert.equal(testMoment.month(), 0, - 'lenient day of month ordinal parsing ' + i + ' month check'); - assert.equal(testMoment.date(), i, - 'lenient day of month ordinal parsing ' + i + ' date check'); - } - }); - - test('lenient day of month ordinal parsing of number', function (assert) { - var i, testMoment; - for (i = 1; i <= 31; ++i) { - testMoment = moment('2014 01 ' + i, 'YYYY MM Do'); - assert.equal(testMoment.year(), 2014, - 'lenient day of month ordinal parsing of number ' + i + ' year check'); - assert.equal(testMoment.month(), 0, - 'lenient day of month ordinal parsing of number ' + i + ' month check'); - assert.equal(testMoment.date(), i, - 'lenient day of month ordinal parsing of number ' + i + ' date check'); - } - }); - - test('strict day of month ordinal parsing', function (assert) { - var i, ordinalStr, testMoment; - for (i = 1; i <= 31; ++i) { - ordinalStr = moment([2014, 0, i]).format('YYYY MM Do'); - testMoment = moment(ordinalStr, 'YYYY MM Do', true); - assert.ok(testMoment.isValid(), 'strict day of month ordinal parsing ' + i); - } - }); - - test('meridiem invariant', function (assert) { - var h, m, t1, t2; - for (h = 0; h < 24; ++h) { - for (m = 0; m < 60; m += 15) { - t1 = moment.utc([2000, 0, 1, h, m]); - t2 = moment.utc(t1.format('A h:mm'), 'A h:mm'); - assert.equal(t2.format('HH:mm'), t1.format('HH:mm'), - 'meridiem at ' + t1.format('HH:mm')); - } - } - }); - - test('date format correctness', function (assert) { - var data, tokens; - data = moment.localeData()._longDateFormat; - tokens = objectKeys(data); - each(tokens, function (srchToken) { - // Check each format string to make sure it does not contain any - // tokens that need to be expanded. - each(tokens, function (baseToken) { - // strip escaped sequences - var format = data[baseToken].replace(/(\[[^\]]*\])/g, ''); - assert.equal(false, !!~format.indexOf(srchToken), - 'contains ' + srchToken + ' in ' + baseToken); - }); - }); - }); - - test('month parsing correctness', function (assert) { - var i, m; - - if (locale === 'tr') { - // I can't fix it :( - expect(0); - return; - } - function tester(format) { - var r; - r = moment(m.format(format), format); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format); - r = moment(m.format(format).toLocaleUpperCase(), format); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' upper'); - r = moment(m.format(format).toLocaleLowerCase(), format); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' lower'); - - r = moment(m.format(format), format, true); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' strict'); - r = moment(m.format(format).toLocaleUpperCase(), format, true); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' upper strict'); - r = moment(m.format(format).toLocaleLowerCase(), format, true); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' lower strict'); - } - - for (i = 0; i < 12; ++i) { - m = moment([2015, i, 15, 18]); - tester('MMM'); - tester('MMM.'); - tester('MMMM'); - tester('MMMM.'); - } - }); - - test('weekday parsing correctness', function (assert) { - var i, m; - - if (locale === 'tr' || locale === 'az' || locale === 'ro') { - // tr, az: There is a lower-case letter (ı), that converted to - // upper then lower changes to i - // ro: there is the letter ț which behaves weird under IE8 - expect(0); - return; - } - function tester(format) { - var r, baseMsg = 'weekday ' + m.weekday() + ' fmt ' + format + ' ' + m.toISOString(); - r = moment(m.format(format), format); - assert.equal(r.weekday(), m.weekday(), baseMsg); - r = moment(m.format(format).toLocaleUpperCase(), format); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' upper'); - r = moment(m.format(format).toLocaleLowerCase(), format); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' lower'); - - r = moment(m.format(format), format, true); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' strict'); - r = moment(m.format(format).toLocaleUpperCase(), format, true); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' upper strict'); - r = moment(m.format(format).toLocaleLowerCase(), format, true); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' lower strict'); - } - - for (i = 0; i < 7; ++i) { - m = moment.utc([2015, 0, i + 1, 18]); - tester('dd'); - tester('ddd'); - tester('dddd'); - } - }); - - test('valid localeData', function (assert) { - assert.equal(moment().localeData().months().length, 12, 'months should return 12 months'); - assert.equal(moment().localeData().monthsShort().length, 12, 'monthsShort should return 12 months'); - assert.equal(moment().localeData().weekdays().length, 7, 'weekdays should return 7 days'); - assert.equal(moment().localeData().weekdaysShort().length, 7, 'weekdaysShort should return 7 days'); - assert.equal(moment().localeData().weekdaysMin().length, 7, 'monthsShort should return 7 days'); - }); -} - -function setupDeprecationHandler(test, moment$$1, scope) { - test._expectedDeprecations = null; - test._observedDeprecations = null; - test._oldSupress = moment$$1.suppressDeprecationWarnings; - moment$$1.suppressDeprecationWarnings = true; - test.expectedDeprecations = function () { - test._expectedDeprecations = arguments; - test._observedDeprecations = []; - }; - moment$$1.deprecationHandler = function (name, msg) { - var deprecationId = matchedDeprecation(name, msg, test._expectedDeprecations); - if (deprecationId === -1) { - throw new Error('Unexpected deprecation thrown name=' + - name + ' msg=' + msg); - } - test._observedDeprecations[deprecationId] = 1; - }; -} - -function teardownDeprecationHandler(test, moment$$1, scope) { - moment$$1.suppressDeprecationWarnings = test._oldSupress; - - if (test._expectedDeprecations != null) { - var missedDeprecations = []; - each(test._expectedDeprecations, function (deprecationPattern, id) { - if (test._observedDeprecations[id] !== 1) { - missedDeprecations.push(deprecationPattern); - } - }); - if (missedDeprecations.length !== 0) { - throw new Error('Expected deprecation warnings did not happen: ' + - missedDeprecations.join(' ')); - } - } -} - -function matchedDeprecation(name, msg, deprecations) { - if (deprecations == null) { - return -1; - } - for (var i = 0; i < deprecations.length; ++i) { - if (name != null && name === deprecations[i]) { - return i; - } - if (msg != null && msg.substring(0, deprecations[i].length) === deprecations[i]) { - return i; - } - } - return -1; -} - -/*global QUnit:false*/ - -var test = QUnit.test; - -var expect = QUnit.expect; - -function module$1 (name, lifecycle) { - QUnit.module(name, { - setup : function () { - moment.locale('en'); - moment.createFromInputFallback = function (config) { - throw new Error('input not handled by moment: ' + config._i); - }; - setupDeprecationHandler(test, moment, 'core'); - if (lifecycle && lifecycle.setup) { - lifecycle.setup(); - } - }, - teardown : function () { - teardownDeprecationHandler(test, moment, 'core'); - if (lifecycle && lifecycle.teardown) { - lifecycle.teardown(); - } - } - }); -} - -// These tests are for locale independent features -// locale dependent tests would be in locale test folder -module$1('calendar'); - -test('passing a function', function (assert) { - var a = moment().hours(13).minutes(0).seconds(0); - assert.equal(moment(a).calendar(null, { - 'sameDay': function () { - return 'h:mmA'; - } - }), '1:00PM', 'should equate'); -}); - -test('extending calendar options', function (assert) { - var calendarFormat = moment.calendarFormat; - - moment.calendarFormat = function (myMoment, now) { - var diff = myMoment.diff(now, 'days', true); - var nextMonth = now.clone().add(1, 'month'); - - var retVal = diff < -6 ? 'sameElse' : - diff < -1 ? 'lastWeek' : - diff < 0 ? 'lastDay' : - diff < 1 ? 'sameDay' : - diff < 2 ? 'nextDay' : - diff < 7 ? 'nextWeek' : - (myMoment.month() === now.month() && myMoment.year() === now.year()) ? 'thisMonth' : - (nextMonth.month() === myMoment.month() && nextMonth.year() === myMoment.year()) ? 'nextMonth' : 'sameElse'; - return retVal; - }; - - moment.updateLocale('en', { - calendar : { - sameDay : '[Today at] LT', - nextDay : '[Tomorrow at] LT', - nextWeek : 'dddd [at] LT', - lastDay : '[Yesterday at] LT', - lastWeek : '[Last] dddd [at] LT', - thisMonth : '[This month on the] Do', - nextMonth : '[Next month on the] Do', - sameElse : 'L' - } - }); - var a = moment('2016-01-01').add(28, 'days'); - var b = moment('2016-01-01').add(1, 'month'); - try { - assert.equal(a.calendar('2016-01-01'), 'This month on the 29th', 'Ad hoc calendar format for this month'); - assert.equal(b.calendar('2016-01-01'), 'Next month on the 1st', 'Ad hoc calendar format for next month'); - assert.equal(a.locale('fr').calendar('2016-01-01'), a.locale('fr').format('L'), 'French falls back to default because thisMonth is not defined in that locale'); - } finally { - moment.calendarFormat = calendarFormat; - moment.updateLocale('en', null); - } -}); - -}))); - - -;(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' - && typeof require === 'function' ? factory(require('../../moment')) : - typeof define === 'function' && define.amd ? define(['../../moment'], factory) : - factory(global.moment) -}(this, (function (moment) { 'use strict'; - -function each(array, callback) { - var i; - for (i = 0; i < array.length; i++) { - callback(array[i], i, array); - } -} - -function objectKeys(obj) { - if (Object.keys) { - return Object.keys(obj); - } else { - // IE8 - var res = [], i; - for (i in obj) { - if (obj.hasOwnProperty(i)) { - res.push(i); - } - } - return res; - } -} - -// Pick the first defined of two or three arguments. - -function defineCommonLocaleTests(locale, options) { - test('lenient day of month ordinal parsing', function (assert) { - var i, ordinalStr, testMoment; - for (i = 1; i <= 31; ++i) { - ordinalStr = moment([2014, 0, i]).format('YYYY MM Do'); - testMoment = moment(ordinalStr, 'YYYY MM Do'); - assert.equal(testMoment.year(), 2014, - 'lenient day of month ordinal parsing ' + i + ' year check'); - assert.equal(testMoment.month(), 0, - 'lenient day of month ordinal parsing ' + i + ' month check'); - assert.equal(testMoment.date(), i, - 'lenient day of month ordinal parsing ' + i + ' date check'); - } - }); - - test('lenient day of month ordinal parsing of number', function (assert) { - var i, testMoment; - for (i = 1; i <= 31; ++i) { - testMoment = moment('2014 01 ' + i, 'YYYY MM Do'); - assert.equal(testMoment.year(), 2014, - 'lenient day of month ordinal parsing of number ' + i + ' year check'); - assert.equal(testMoment.month(), 0, - 'lenient day of month ordinal parsing of number ' + i + ' month check'); - assert.equal(testMoment.date(), i, - 'lenient day of month ordinal parsing of number ' + i + ' date check'); - } - }); - - test('strict day of month ordinal parsing', function (assert) { - var i, ordinalStr, testMoment; - for (i = 1; i <= 31; ++i) { - ordinalStr = moment([2014, 0, i]).format('YYYY MM Do'); - testMoment = moment(ordinalStr, 'YYYY MM Do', true); - assert.ok(testMoment.isValid(), 'strict day of month ordinal parsing ' + i); - } - }); - - test('meridiem invariant', function (assert) { - var h, m, t1, t2; - for (h = 0; h < 24; ++h) { - for (m = 0; m < 60; m += 15) { - t1 = moment.utc([2000, 0, 1, h, m]); - t2 = moment.utc(t1.format('A h:mm'), 'A h:mm'); - assert.equal(t2.format('HH:mm'), t1.format('HH:mm'), - 'meridiem at ' + t1.format('HH:mm')); - } - } - }); - - test('date format correctness', function (assert) { - var data, tokens; - data = moment.localeData()._longDateFormat; - tokens = objectKeys(data); - each(tokens, function (srchToken) { - // Check each format string to make sure it does not contain any - // tokens that need to be expanded. - each(tokens, function (baseToken) { - // strip escaped sequences - var format = data[baseToken].replace(/(\[[^\]]*\])/g, ''); - assert.equal(false, !!~format.indexOf(srchToken), - 'contains ' + srchToken + ' in ' + baseToken); - }); - }); - }); - - test('month parsing correctness', function (assert) { - var i, m; - - if (locale === 'tr') { - // I can't fix it :( - expect(0); - return; - } - function tester(format) { - var r; - r = moment(m.format(format), format); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format); - r = moment(m.format(format).toLocaleUpperCase(), format); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' upper'); - r = moment(m.format(format).toLocaleLowerCase(), format); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' lower'); - - r = moment(m.format(format), format, true); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' strict'); - r = moment(m.format(format).toLocaleUpperCase(), format, true); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' upper strict'); - r = moment(m.format(format).toLocaleLowerCase(), format, true); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' lower strict'); - } - - for (i = 0; i < 12; ++i) { - m = moment([2015, i, 15, 18]); - tester('MMM'); - tester('MMM.'); - tester('MMMM'); - tester('MMMM.'); - } - }); - - test('weekday parsing correctness', function (assert) { - var i, m; - - if (locale === 'tr' || locale === 'az' || locale === 'ro') { - // tr, az: There is a lower-case letter (ı), that converted to - // upper then lower changes to i - // ro: there is the letter ț which behaves weird under IE8 - expect(0); - return; - } - function tester(format) { - var r, baseMsg = 'weekday ' + m.weekday() + ' fmt ' + format + ' ' + m.toISOString(); - r = moment(m.format(format), format); - assert.equal(r.weekday(), m.weekday(), baseMsg); - r = moment(m.format(format).toLocaleUpperCase(), format); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' upper'); - r = moment(m.format(format).toLocaleLowerCase(), format); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' lower'); - - r = moment(m.format(format), format, true); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' strict'); - r = moment(m.format(format).toLocaleUpperCase(), format, true); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' upper strict'); - r = moment(m.format(format).toLocaleLowerCase(), format, true); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' lower strict'); - } - - for (i = 0; i < 7; ++i) { - m = moment.utc([2015, 0, i + 1, 18]); - tester('dd'); - tester('ddd'); - tester('dddd'); - } - }); - - test('valid localeData', function (assert) { - assert.equal(moment().localeData().months().length, 12, 'months should return 12 months'); - assert.equal(moment().localeData().monthsShort().length, 12, 'monthsShort should return 12 months'); - assert.equal(moment().localeData().weekdays().length, 7, 'weekdays should return 7 days'); - assert.equal(moment().localeData().weekdaysShort().length, 7, 'weekdaysShort should return 7 days'); - assert.equal(moment().localeData().weekdaysMin().length, 7, 'monthsShort should return 7 days'); - }); -} - -function setupDeprecationHandler(test, moment$$1, scope) { - test._expectedDeprecations = null; - test._observedDeprecations = null; - test._oldSupress = moment$$1.suppressDeprecationWarnings; - moment$$1.suppressDeprecationWarnings = true; - test.expectedDeprecations = function () { - test._expectedDeprecations = arguments; - test._observedDeprecations = []; - }; - moment$$1.deprecationHandler = function (name, msg) { - var deprecationId = matchedDeprecation(name, msg, test._expectedDeprecations); - if (deprecationId === -1) { - throw new Error('Unexpected deprecation thrown name=' + - name + ' msg=' + msg); - } - test._observedDeprecations[deprecationId] = 1; - }; -} - -function teardownDeprecationHandler(test, moment$$1, scope) { - moment$$1.suppressDeprecationWarnings = test._oldSupress; - - if (test._expectedDeprecations != null) { - var missedDeprecations = []; - each(test._expectedDeprecations, function (deprecationPattern, id) { - if (test._observedDeprecations[id] !== 1) { - missedDeprecations.push(deprecationPattern); - } - }); - if (missedDeprecations.length !== 0) { - throw new Error('Expected deprecation warnings did not happen: ' + - missedDeprecations.join(' ')); - } - } -} - -function matchedDeprecation(name, msg, deprecations) { - if (deprecations == null) { - return -1; - } - for (var i = 0; i < deprecations.length; ++i) { - if (name != null && name === deprecations[i]) { - return i; - } - if (msg != null && msg.substring(0, deprecations[i].length) === deprecations[i]) { - return i; - } - } - return -1; -} - -/*global QUnit:false*/ - -var test = QUnit.test; - -var expect = QUnit.expect; - -function module$1 (name, lifecycle) { - QUnit.module(name, { - setup : function () { - moment.locale('en'); - moment.createFromInputFallback = function (config) { - throw new Error('input not handled by moment: ' + config._i); - }; - setupDeprecationHandler(test, moment, 'core'); - if (lifecycle && lifecycle.setup) { - lifecycle.setup(); - } - }, - teardown : function () { - teardownDeprecationHandler(test, moment, 'core'); - if (lifecycle && lifecycle.teardown) { - lifecycle.teardown(); - } - } - }); -} - -module$1('create'); - -test('array', function (assert) { - assert.ok(moment([2010]).toDate() instanceof Date, '[2010]'); - assert.ok(moment([2010, 1]).toDate() instanceof Date, '[2010, 1]'); - assert.ok(moment([2010, 1, 12]).toDate() instanceof Date, '[2010, 1, 12]'); - assert.ok(moment([2010, 1, 12, 1]).toDate() instanceof Date, '[2010, 1, 12, 1]'); - assert.ok(moment([2010, 1, 12, 1, 1]).toDate() instanceof Date, '[2010, 1, 12, 1, 1]'); - assert.ok(moment([2010, 1, 12, 1, 1, 1]).toDate() instanceof Date, '[2010, 1, 12, 1, 1, 1]'); - assert.ok(moment([2010, 1, 12, 1, 1, 1, 1]).toDate() instanceof Date, '[2010, 1, 12, 1, 1, 1, 1]'); - assert.equal(+moment(new Date(2010, 1, 14, 15, 25, 50, 125)), +moment([2010, 1, 14, 15, 25, 50, 125]), 'constructing with array === constructing with new Date()'); -}); - -test('array with invalid arguments', function (assert) { - assert.ok(!moment([2010, null, null]).isValid(), '[2010, null, null]'); - assert.ok(!moment([1945, null, null]).isValid(), '[1945, null, null] (pre-1970)'); -}); - -test('array copying', function (assert) { - var importantArray = [2009, 11]; - moment(importantArray); - assert.deepEqual(importantArray, [2009, 11], 'initializer should not mutate the original array'); -}); - -test('object', function (assert) { - var fmt = 'YYYY-MM-DD HH:mm:ss.SSS', - tests = [ - [{year: 2010}, '2010-01-01 00:00:00.000'], - [{year: 2010, month: 1}, '2010-02-01 00:00:00.000'], - [{year: 2010, month: 1, day: 12}, '2010-02-12 00:00:00.000'], - [{year: 2010, month: 1, date: 12}, '2010-02-12 00:00:00.000'], - [{year: 2010, month: 1, day: 12, hours: 1}, '2010-02-12 01:00:00.000'], - [{year: 2010, month: 1, date: 12, hours: 1}, '2010-02-12 01:00:00.000'], - [{year: 2010, month: 1, day: 12, hours: 1, minutes: 1}, '2010-02-12 01:01:00.000'], - [{year: 2010, month: 1, date: 12, hours: 1, minutes: 1}, '2010-02-12 01:01:00.000'], - [{year: 2010, month: 1, day: 12, hours: 1, minutes: 1, seconds: 1}, '2010-02-12 01:01:01.000'], - [{year: 2010, month: 1, day: 12, hours: 1, minutes: 1, seconds: 1, milliseconds: 1}, '2010-02-12 01:01:01.001'], - [{years: 2010, months: 1, days: 14, hours: 15, minutes: 25, seconds: 50, milliseconds: 125}, '2010-02-14 15:25:50.125'], - [{year: 2010, month: 1, day: 14, hour: 15, minute: 25, second: 50, millisecond: 125}, '2010-02-14 15:25:50.125'], - [{y: 2010, M: 1, d: 14, h: 15, m: 25, s: 50, ms: 125}, '2010-02-14 15:25:50.125'] - ], i; - for (i = 0; i < tests.length; ++i) { - assert.equal(moment(tests[i][0]).format(fmt), tests[i][1]); - } -}); - -test('multi format array copying', function (assert) { - var importantArray = ['MM/DD/YYYY', 'YYYY-MM-DD', 'MM-DD-YYYY']; - moment('1999-02-13', importantArray); - assert.deepEqual(importantArray, ['MM/DD/YYYY', 'YYYY-MM-DD', 'MM-DD-YYYY'], 'initializer should not mutate the original array'); -}); - -test('number', function (assert) { - assert.ok(moment(1000).toDate() instanceof Date, '1000'); - assert.equal(moment(1000).valueOf(), 1000, 'asserting valueOf'); - assert.equal(moment.utc(1000).valueOf(), 1000, 'asserting valueOf'); -}); - -test('unix', function (assert) { - assert.equal(moment.unix(1).valueOf(), 1000, '1 unix timestamp == 1000 Date.valueOf'); - assert.equal(moment(1000).unix(), 1, '1000 Date.valueOf == 1 unix timestamp'); - assert.equal(moment.unix(1000).valueOf(), 1000000, '1000 unix timestamp == 1000000 Date.valueOf'); - assert.equal(moment(1500).unix(), 1, '1500 Date.valueOf == 1 unix timestamp'); - assert.equal(moment(1900).unix(), 1, '1900 Date.valueOf == 1 unix timestamp'); - assert.equal(moment(2100).unix(), 2, '2100 Date.valueOf == 2 unix timestamp'); - assert.equal(moment(1333129333524).unix(), 1333129333, '1333129333524 Date.valueOf == 1333129333 unix timestamp'); - assert.equal(moment(1333129333524000).unix(), 1333129333524, '1333129333524000 Date.valueOf == 1333129333524 unix timestamp'); -}); - -test('date', function (assert) { - assert.ok(moment(new Date()).toDate() instanceof Date, 'new Date()'); - assert.equal(moment(new Date(2016,0,1), 'YYYY-MM-DD').format('YYYY-MM-DD'), '2016-01-01', 'If date is provided, format string is ignored'); -}); - -test('date with a format as an array', function (assert) { - var tests = [ - new Date(2016, 9, 27), - new Date(2016, 9, 28), - new Date(2016, 9, 29), - new Date(2016, 9, 30), - new Date(2016, 9, 31) - ], i; - - for (i = 0; i < tests.length; i++) { - assert.equal(moment(tests[i]).format(), moment(tests[i], ['MM/DD/YYYY'], false).format(), 'Passing date with a format array should still return the correct date'); - } -}); - -test('date mutation', function (assert) { - var a = new Date(); - assert.ok(moment(a).toDate() !== a, 'the date moment uses should not be the date passed in'); -}); - -test('moment', function (assert) { - assert.ok(moment(moment()).toDate() instanceof Date, 'moment(moment())'); - assert.ok(moment(moment(moment())).toDate() instanceof Date, 'moment(moment(moment()))'); -}); - -test('cloning moment should only copy own properties', function (assert) { - assert.ok(!moment().clone().hasOwnProperty('month'), 'Should not clone prototype methods'); -}); - -test('cloning moment works with weird clones', function (assert) { - var extend = function (a, b) { - var i; - for (i in b) { - a[i] = b[i]; - } - return a; - }, - now = moment(), - nowu = moment.utc(); - - assert.equal(+extend({}, now).clone(), +now, 'cloning extend-ed now is now'); - assert.equal(+extend({}, nowu).clone(), +nowu, 'cloning extend-ed utc now is utc now'); -}); - -test('cloning respects moment.momentProperties', function (assert) { - var m = moment(); - - assert.equal(m.clone()._special, undefined, 'cloning ignores extra properties'); - m._special = 'bacon'; - moment.momentProperties.push('_special'); - assert.equal(m.clone()._special, 'bacon', 'cloning respects momentProperties'); - moment.momentProperties.pop(); -}); - -test('undefined', function (assert) { - assert.ok(moment().toDate() instanceof Date, 'undefined'); -}); - -test('iso with bad input', function (assert) { - assert.ok(!moment('a', moment.ISO_8601).isValid(), 'iso parsing with invalid string'); - assert.ok(!moment('a', moment.ISO_8601, true).isValid(), 'iso parsing with invalid string, strict'); -}); - -test('iso format 24hrs', function (assert) { - assert.equal(moment('2014-01-01T24:00:00.000').format('YYYY-MM-DD[T]HH:mm:ss.SSS'), - '2014-01-02T00:00:00.000', 'iso format with 24:00 localtime'); - assert.equal(moment.utc('2014-01-01T24:00:00.000').format('YYYY-MM-DD[T]HH:mm:ss.SSS'), - '2014-01-02T00:00:00.000', 'iso format with 24:00 utc'); -}); - -test('string without format - json', function (assert) { - assert.equal(moment('Date(1325132654000)').valueOf(), 1325132654000, 'Date(1325132654000)'); - assert.equal(moment('Date(-1325132654000)').valueOf(), -1325132654000, 'Date(-1325132654000)'); - assert.equal(moment('/Date(1325132654000)/').valueOf(), 1325132654000, '/Date(1325132654000)/'); - assert.equal(moment('/Date(1325132654000+0700)/').valueOf(), 1325132654000, '/Date(1325132654000+0700)/'); - assert.equal(moment('/Date(1325132654000-0700)/').valueOf(), 1325132654000, '/Date(1325132654000-0700)/'); -}); - -test('string with format dropped am/pm bug', function (assert) { - moment.locale('en'); - - assert.equal(moment('05/1/2012 12:25:00', 'MM/DD/YYYY h:m:s a').format('MM/DD/YYYY'), '05/01/2012', 'should not break if am/pm is left off from the parsing tokens'); - assert.equal(moment('05/1/2012 12:25:00 am', 'MM/DD/YYYY h:m:s a').format('MM/DD/YYYY'), '05/01/2012', 'should not break if am/pm is left off from the parsing tokens'); - assert.equal(moment('05/1/2012 12:25:00 pm', 'MM/DD/YYYY h:m:s a').format('MM/DD/YYYY'), '05/01/2012', 'should not break if am/pm is left off from the parsing tokens'); - - assert.ok(moment('05/1/2012 12:25:00', 'MM/DD/YYYY h:m:s a').isValid()); - assert.ok(moment('05/1/2012 12:25:00 am', 'MM/DD/YYYY h:m:s a').isValid()); - assert.ok(moment('05/1/2012 12:25:00 pm', 'MM/DD/YYYY h:m:s a').isValid()); -}); - -test('empty string with formats', function (assert) { - assert.equal(moment('', 'MM').format('YYYY-MM-DD HH:mm:ss'), 'Invalid date'); - assert.equal(moment(' ', 'MM').format('YYYY-MM-DD HH:mm:ss'), 'Invalid date'); - assert.equal(moment(' ', 'DD').format('YYYY-MM-DD HH:mm:ss'), 'Invalid date'); - assert.equal(moment(' ', ['MM', 'DD']).format('YYYY-MM-DD HH:mm:ss'), 'Invalid date'); - - assert.ok(!moment('', 'MM').isValid()); - assert.ok(!moment(' ', 'MM').isValid()); - assert.ok(!moment(' ', 'DD').isValid()); - assert.ok(!moment(' ', ['MM', 'DD']).isValid()); -}); - -test('undefined argument with formats', function (assert) { - assert.equal(moment(undefined, 'MM').format('YYYY-MM-DD HH:mm:ss'), 'Invalid date'); - assert.equal(moment(undefined, 'DD').format('YYYY-MM-DD HH:mm:ss'), 'Invalid date'); - assert.equal(moment(undefined, ['MM', 'DD']).format('YYYY-MM-DD HH:mm:ss'), 'Invalid date'); - - assert.ok(!moment(undefined, 'MM').isValid()); - assert.ok(!moment(undefined, 'MM').isValid()); - assert.ok(!moment(undefined, 'DD').isValid()); - assert.ok(!moment(undefined, ['MM', 'DD']).isValid()); -}); - -test('defaulting to current date', function (assert) { - var now = moment(); - assert.equal(moment('12:13:14', 'hh:mm:ss').format('YYYY-MM-DD hh:mm:ss'), - now.clone().hour(12).minute(13).second(14).format('YYYY-MM-DD hh:mm:ss'), - 'given only time default to current date'); - assert.equal(moment('05', 'DD').format('YYYY-MM-DD'), - now.clone().date(5).format('YYYY-MM-DD'), - 'given day of month default to current month, year'); - assert.equal(moment('05', 'MM').format('YYYY-MM-DD'), - now.clone().month(4).date(1).format('YYYY-MM-DD'), - 'given month default to current year'); - assert.equal(moment('1996', 'YYYY').format('YYYY-MM-DD'), - now.clone().year(1996).month(0).date(1).format('YYYY-MM-DD'), - 'given year do not default'); -}); - -test('matching am/pm', function (assert) { - assert.equal(moment('2012-09-03T03:00PM', 'YYYY-MM-DDThh:mmA').format('YYYY-MM-DDThh:mmA'), '2012-09-03T03:00PM', 'am/pm should parse correctly for PM'); - assert.equal(moment('2012-09-03T03:00P.M.', 'YYYY-MM-DDThh:mmA').format('YYYY-MM-DDThh:mmA'), '2012-09-03T03:00PM', 'am/pm should parse correctly for P.M.'); - assert.equal(moment('2012-09-03T03:00P', 'YYYY-MM-DDThh:mmA').format('YYYY-MM-DDThh:mmA'), '2012-09-03T03:00PM', 'am/pm should parse correctly for P'); - assert.equal(moment('2012-09-03T03:00pm', 'YYYY-MM-DDThh:mmA').format('YYYY-MM-DDThh:mmA'), '2012-09-03T03:00PM', 'am/pm should parse correctly for pm'); - assert.equal(moment('2012-09-03T03:00p.m.', 'YYYY-MM-DDThh:mmA').format('YYYY-MM-DDThh:mmA'), '2012-09-03T03:00PM', 'am/pm should parse correctly for p.m.'); - assert.equal(moment('2012-09-03T03:00p', 'YYYY-MM-DDThh:mmA').format('YYYY-MM-DDThh:mmA'), '2012-09-03T03:00PM', 'am/pm should parse correctly for p'); - - assert.equal(moment('2012-09-03T03:00AM', 'YYYY-MM-DDThh:mmA').format('YYYY-MM-DDThh:mmA'), '2012-09-03T03:00AM', 'am/pm should parse correctly for AM'); - assert.equal(moment('2012-09-03T03:00A.M.', 'YYYY-MM-DDThh:mmA').format('YYYY-MM-DDThh:mmA'), '2012-09-03T03:00AM', 'am/pm should parse correctly for A.M.'); - assert.equal(moment('2012-09-03T03:00A', 'YYYY-MM-DDThh:mmA').format('YYYY-MM-DDThh:mmA'), '2012-09-03T03:00AM', 'am/pm should parse correctly for A'); - assert.equal(moment('2012-09-03T03:00am', 'YYYY-MM-DDThh:mmA').format('YYYY-MM-DDThh:mmA'), '2012-09-03T03:00AM', 'am/pm should parse correctly for am'); - assert.equal(moment('2012-09-03T03:00a.m.', 'YYYY-MM-DDThh:mmA').format('YYYY-MM-DDThh:mmA'), '2012-09-03T03:00AM', 'am/pm should parse correctly for a.m.'); - assert.equal(moment('2012-09-03T03:00a', 'YYYY-MM-DDThh:mmA').format('YYYY-MM-DDThh:mmA'), '2012-09-03T03:00AM', 'am/pm should parse correctly for a'); - - assert.equal(moment('5:00p.m.March 4 2012', 'h:mmAMMMM D YYYY').format('YYYY-MM-DDThh:mmA'), '2012-03-04T05:00PM', 'am/pm should parse correctly before month names'); -}); - -test('string with format', function (assert) { - moment.locale('en'); - var a = [ - ['YYYY-Q', '2014-4'], - ['MM-DD-YYYY', '12-02-1999'], - ['DD-MM-YYYY', '12-02-1999'], - ['DD/MM/YYYY', '12/02/1999'], - ['DD_MM_YYYY', '12_02_1999'], - ['DD:MM:YYYY', '12:02:1999'], - ['D-M-YY', '2-2-99'], - ['YY', '99'], - ['DDD-YYYY', '300-1999'], - ['DD-MM-YYYY h:m:s', '12-02-1999 2:45:10'], - ['DD-MM-YYYY h:m:s a', '12-02-1999 2:45:10 am'], - ['DD-MM-YYYY h:m:s a', '12-02-1999 2:45:10 pm'], - ['h:mm a', '12:00 pm'], - ['h:mm a', '12:30 pm'], - ['h:mm a', '12:00 am'], - ['h:mm a', '12:30 am'], - ['HH:mm', '12:00'], - ['kk:mm', '12:00'], - ['YYYY-MM-DDTHH:mm:ss', '2011-11-11T11:11:11'], - ['MM-DD-YYYY [M]', '12-02-1999 M'], - ['ddd MMM DD HH:mm:ss YYYY', 'Tue Apr 07 22:52:51 2009'], - ['HH:mm:ss', '12:00:00'], - ['HH:mm:ss', '12:30:00'], - ['HH:mm:ss', '00:00:00'], - ['HH:mm:ss S', '00:30:00 1'], - ['HH:mm:ss SS', '00:30:00 12'], - ['HH:mm:ss SSS', '00:30:00 123'], - ['HH:mm:ss S', '00:30:00 7'], - ['HH:mm:ss SS', '00:30:00 78'], - ['HH:mm:ss SSS', '00:30:00 789'], - ['kk:mm:ss', '12:00:00'], - ['kk:mm:ss', '12:30:00'], - ['kk:mm:ss', '24:00:00'], - ['kk:mm:ss S', '24:30:00 1'], - ['kk:mm:ss SS', '24:30:00 12'], - ['kk:mm:ss SSS', '24:30:00 123'], - ['kk:mm:ss S', '24:30:00 7'], - ['kk:mm:ss SS', '24:30:00 78'], - ['kk:mm:ss SSS', '24:30:00 789'], - ['X', '1234567890'], - ['x', '1234567890123'], - ['LT', '12:30 AM'], - ['LTS', '12:30:29 AM'], - ['L', '09/02/1999'], - ['l', '9/2/1999'], - ['LL', 'September 2, 1999'], - ['ll', 'Sep 2, 1999'], - ['LLL', 'September 2, 1999 12:30 AM'], - ['lll', 'Sep 2, 1999 12:30 AM'], - ['LLLL', 'Thursday, September 2, 1999 12:30 AM'], - ['llll', 'Thu, Sep 2, 1999 12:30 AM'] - ], - m, - i; - - for (i = 0; i < a.length; i++) { - m = moment(a[i][1], a[i][0]); - assert.ok(m.isValid()); - assert.equal(m.format(a[i][0]), a[i][1], a[i][0] + ' ---> ' + a[i][1]); - } -}); - -test('2 digit year with YYYY format', function (assert) { - assert.equal(moment('9/2/99', 'D/M/YYYY').format('DD/MM/YYYY'), '09/02/1999', 'D/M/YYYY ---> 9/2/99'); - assert.equal(moment('9/2/1999', 'D/M/YYYY').format('DD/MM/YYYY'), '09/02/1999', 'D/M/YYYY ---> 9/2/1999'); - assert.equal(moment('9/2/68', 'D/M/YYYY').format('DD/MM/YYYY'), '09/02/2068', 'D/M/YYYY ---> 9/2/68'); - assert.equal(moment('9/2/69', 'D/M/YYYY').format('DD/MM/YYYY'), '09/02/1969', 'D/M/YYYY ---> 9/2/69'); -}); - -test('unix timestamp format', function (assert) { - var formats = ['X', 'X.S', 'X.SS', 'X.SSS'], i, format; - - for (i = 0; i < formats.length; i++) { - format = formats[i]; - assert.equal(moment('1234567890', format).valueOf(), 1234567890 * 1000, format + ' matches timestamp without milliseconds'); - assert.equal(moment('1234567890.1', format).valueOf(), 1234567890 * 1000 + 100, format + ' matches timestamp with deciseconds'); - assert.equal(moment('1234567890.12', format).valueOf(), 1234567890 * 1000 + 120, format + ' matches timestamp with centiseconds'); - assert.equal(moment('1234567890.123', format).valueOf(), 1234567890 * 1000 + 123, format + ' matches timestamp with milliseconds'); - } -}); - -test('unix offset milliseconds', function (assert) { - assert.equal(moment('1234567890123', 'x').valueOf(), 1234567890123, 'x matches unix offset in milliseconds'); -}); - -test('milliseconds format', function (assert) { - assert.equal(moment('1', 'S').get('ms'), 100, 'deciseconds'); - // assert.equal(moment('10', 'S', true).isValid(), false, 'deciseconds with two digits'); - // assert.equal(moment('1', 'SS', true).isValid(), false, 'centiseconds with one digits'); - assert.equal(moment('12', 'SS').get('ms'), 120, 'centiseconds'); - // assert.equal(moment('123', 'SS', true).isValid(), false, 'centiseconds with three digits'); - assert.equal(moment('123', 'SSS').get('ms'), 123, 'milliseconds'); - assert.equal(moment('1234', 'SSSS').get('ms'), 123, 'milliseconds with SSSS'); - assert.equal(moment('123456789101112', 'SSSS').get('ms'), 123, 'milliseconds with SSSS'); -}); - -test('string with format no separators', function (assert) { - moment.locale('en'); - var a = [ - ['MMDDYYYY', '12021999'], - ['DDMMYYYY', '12021999'], - ['YYYYMMDD', '19991202'], - ['DDMMMYYYY', '10Sep2001'] - ], i; - - for (i = 0; i < a.length; i++) { - assert.equal(moment(a[i][1], a[i][0]).format(a[i][0]), a[i][1], a[i][0] + ' ---> ' + a[i][1]); - } -}); - -test('string with format (timezone)', function (assert) { - assert.equal(moment('5 -0700', 'H ZZ').toDate().getUTCHours(), 12, 'parse hours \'5 -0700\' ---> \'H ZZ\''); - assert.equal(moment('5 -07:00', 'H Z').toDate().getUTCHours(), 12, 'parse hours \'5 -07:00\' ---> \'H Z\''); - assert.equal(moment('5 -0730', 'H ZZ').toDate().getUTCMinutes(), 30, 'parse hours \'5 -0730\' ---> \'H ZZ\''); - assert.equal(moment('5 -07:30', 'H Z').toDate().getUTCMinutes(), 30, 'parse hours \'5 -07:0\' ---> \'H Z\''); - assert.equal(moment('5 +0100', 'H ZZ').toDate().getUTCHours(), 4, 'parse hours \'5 +0100\' ---> \'H ZZ\''); - assert.equal(moment('5 +01:00', 'H Z').toDate().getUTCHours(), 4, 'parse hours \'5 +01:00\' ---> \'H Z\''); - assert.equal(moment('5 +0130', 'H ZZ').toDate().getUTCMinutes(), 30, 'parse hours \'5 +0130\' ---> \'H ZZ\''); - assert.equal(moment('5 +01:30', 'H Z').toDate().getUTCMinutes(), 30, 'parse hours \'5 +01:30\' ---> \'H Z\''); -}); - -test('string with format (timezone offset)', function (assert) { - var a, b, c, d, e, f; - a = new Date(Date.UTC(2011, 0, 1, 1)); - b = moment('2011 1 1 0 -01:00', 'YYYY MM DD HH Z'); - assert.equal(a.getHours(), b.hours(), 'date created with utc == parsed string with timezone offset'); - assert.equal(+a, +b, 'date created with utc == parsed string with timezone offset'); - c = moment('2011 2 1 10 -05:00', 'YYYY MM DD HH Z'); - d = moment('2011 2 1 8 -07:00', 'YYYY MM DD HH Z'); - assert.equal(c.hours(), d.hours(), '10 am central time == 8 am pacific time'); - e = moment.utc('Fri, 20 Jul 2012 17:15:00', 'ddd, DD MMM YYYY HH:mm:ss'); - f = moment.utc('Fri, 20 Jul 2012 10:15:00 -0700', 'ddd, DD MMM YYYY HH:mm:ss ZZ'); - assert.equal(e.hours(), f.hours(), 'parse timezone offset in utc'); -}); - -test('string with timezone around start of year', function (assert) { - assert.equal(moment('2000-01-01T00:00:00.000+01:00').toISOString(), '1999-12-31T23:00:00.000Z', '+1:00 around 2000'); - assert.equal(moment('2000-01-01T00:00:00.000-01:00').toISOString(), '2000-01-01T01:00:00.000Z', '-1:00 around 2000'); - assert.equal(moment('1970-01-01T00:00:00.000+01:00').toISOString(), '1969-12-31T23:00:00.000Z', '+1:00 around 1970'); - assert.equal(moment('1970-01-01T00:00:00.000-01:00').toISOString(), '1970-01-01T01:00:00.000Z', '-1:00 around 1970'); - assert.equal(moment('1200-01-01T00:00:00.000+01:00').toISOString(), '1199-12-31T23:00:00.000Z', '+1:00 around 1200'); - assert.equal(moment('1200-01-01T00:00:00.000-01:00').toISOString(), '1200-01-01T01:00:00.000Z', '-1:00 around 1200'); -}); - -test('string with array of formats', function (assert) { - var thursdayForCurrentWeek = moment() - .day(4) - .format('YYYY MM DD'); - - assert.equal(moment('11-02-1999', ['MM-DD-YYYY', 'DD-MM-YYYY']).format('MM DD YYYY'), '11 02 1999', 'switching month and day'); - assert.equal(moment('02-11-1999', ['MM/DD/YYYY', 'YYYY MM DD', 'MM-DD-YYYY']).format('MM DD YYYY'), '02 11 1999', 'year last'); - assert.equal(moment('1999-02-11', ['MM/DD/YYYY', 'YYYY MM DD', 'MM-DD-YYYY']).format('MM DD YYYY'), '02 11 1999', 'year first'); - - assert.equal(moment('02-11-1999', ['MM/DD/YYYY', 'YYYY MM DD']).format('MM DD YYYY'), '02 11 1999', 'year last'); - assert.equal(moment('1999-02-11', ['MM/DD/YYYY', 'YYYY MM DD']).format('MM DD YYYY'), '02 11 1999', 'year first'); - assert.equal(moment('02-11-1999', ['YYYY MM DD', 'MM/DD/YYYY']).format('MM DD YYYY'), '02 11 1999', 'year last'); - assert.equal(moment('1999-02-11', ['YYYY MM DD', 'MM/DD/YYYY']).format('MM DD YYYY'), '02 11 1999', 'year first'); - - assert.equal(moment('13-11-1999', ['MM/DD/YYYY', 'DD/MM/YYYY']).format('MM DD YYYY'), '11 13 1999', 'second must be month'); - assert.equal(moment('11-13-1999', ['MM/DD/YYYY', 'DD/MM/YYYY']).format('MM DD YYYY'), '11 13 1999', 'first must be month'); - assert.equal(moment('01-02-2000', ['MM/DD/YYYY', 'DD/MM/YYYY']).format('MM DD YYYY'), '01 02 2000', 'either can be a month, month first format'); - assert.equal(moment('02-01-2000', ['DD/MM/YYYY', 'MM/DD/YYYY']).format('MM DD YYYY'), '01 02 2000', 'either can be a month, day first format'); - - assert.equal(moment('11-02-10', ['MM/DD/YY', 'YY MM DD', 'DD-MM-YY']).format('MM DD YYYY'), '02 11 2010', 'all unparsed substrings have influence on format penalty'); - assert.equal(moment('11-02-10', ['MM-DD-YY HH:mm', 'YY MM DD']).format('MM DD YYYY'), '02 10 2011', 'prefer formats without extra tokens'); - assert.equal(moment('11-02-10 junk', ['MM-DD-YY', 'YY.MM.DD [junk]']).format('MM DD YYYY'), '02 10 2011', 'prefer formats that dont result in extra characters'); - assert.equal(moment('11-22-10', ['YY-MM-DD', 'YY-DD-MM']).format('MM DD YYYY'), '10 22 2011', 'prefer valid results'); - - assert.equal(moment('gibberish', ['YY-MM-DD', 'YY-DD-MM']).format('MM DD YYYY'), 'Invalid date', 'doest throw for invalid strings'); - assert.equal(moment('gibberish', []).format('MM DD YYYY'), 'Invalid date', 'doest throw for an empty array'); - - // https://github.com/moment/moment/issues/1143 - assert.equal(moment( - 'System Administrator and Database Assistant (7/1/2011), System Administrator and Database Assistant (7/1/2011), Database Coordinator (7/1/2011), Vice President (7/1/2011), System Administrator and Database Assistant (5/31/2012), Database Coordinator (7/1/2012), System Administrator and Database Assistant (7/1/2013)', - ['MM/DD/YYYY', 'MM-DD-YYYY', 'YYYY-MM-DD', 'YYYY-MM-DDTHH:mm:ssZ']) - .format('YYYY-MM-DD'), '2011-07-01', 'Works for long strings'); - - assert.equal(moment('11-02-10', ['MM.DD.YY', 'DD-MM-YY']).format('MM DD YYYY'), '02 11 2010', 'escape RegExp special characters on comparing'); - - assert.equal(moment('13-10-98', ['DD MM YY', 'DD MM YYYY'])._f, 'DD MM YY', 'use two digit year'); - assert.equal(moment('13-10-1998', ['DD MM YY', 'DD MM YYYY'])._f, 'DD MM YYYY', 'use four digit year'); - - assert.equal(moment('01', ['MM', 'DD'])._f, 'MM', 'Should use first valid format'); - - assert.equal(moment('Thursday 8:30pm', ['dddd h:mma']).format('YYYY MM DD dddd h:mma'), thursdayForCurrentWeek + ' Thursday 8:30pm', 'Default to current week'); -}); - -test('string with array of formats + ISO', function (assert) { - assert.equal(moment('1994', [moment.ISO_8601, 'MM', 'HH:mm', 'YYYY']).year(), 1994, 'iso: assert parse YYYY'); - assert.equal(moment('17:15', [moment.ISO_8601, 'MM', 'HH:mm', 'YYYY']).hour(), 17, 'iso: assert parse HH:mm (1)'); - assert.equal(moment('24:15', [moment.ISO_8601, 'MM', 'kk:mm', 'YYYY']).hour(), 0, 'iso: assert parse kk:mm'); - assert.equal(moment('17:15', [moment.ISO_8601, 'MM', 'HH:mm', 'YYYY']).minutes(), 15, 'iso: assert parse HH:mm (2)'); - assert.equal(moment('06', [moment.ISO_8601, 'MM', 'HH:mm', 'YYYY']).month(), 6 - 1, 'iso: assert parse MM'); - assert.equal(moment('2012-06-01', [moment.ISO_8601, 'MM', 'HH:mm', 'YYYY']).parsingFlags().iso, true, 'iso: assert parse iso'); - assert.equal(moment('2014-05-05', [moment.ISO_8601, 'YYYY-MM-DD']).parsingFlags().iso, true, 'iso: edge case array precedence iso'); - assert.equal(moment('2014-05-05', ['YYYY-MM-DD', moment.ISO_8601]).parsingFlags().iso, false, 'iso: edge case array precedence not iso'); -}); - -test('string with format - years', function (assert) { - assert.equal(moment('67', 'YY').format('YYYY'), '2067', '67 > 2067'); - assert.equal(moment('68', 'YY').format('YYYY'), '2068', '68 > 2068'); - assert.equal(moment('69', 'YY').format('YYYY'), '1969', '69 > 1969'); - assert.equal(moment('70', 'YY').format('YYYY'), '1970', '70 > 1970'); -}); - -test('implicit cloning', function (assert) { - var momentA = moment([2011, 10, 10]), - momentB = moment(momentA); - momentA.month(5); - assert.equal(momentB.month(), 10, 'Calling moment() on a moment will create a clone'); - assert.equal(momentA.month(), 5, 'Calling moment() on a moment will create a clone'); -}); - -test('explicit cloning', function (assert) { - var momentA = moment([2011, 10, 10]), - momentB = momentA.clone(); - momentA.month(5); - assert.equal(momentB.month(), 10, 'Calling moment() on a moment will create a clone'); - assert.equal(momentA.month(), 5, 'Calling moment() on a moment will create a clone'); -}); - -test('cloning carrying over utc mode', function (assert) { - assert.equal(moment().local().clone()._isUTC, false, 'An explicit cloned local moment should have _isUTC == false'); - assert.equal(moment().utc().clone()._isUTC, true, 'An cloned utc moment should have _isUTC == true'); - assert.equal(moment().clone()._isUTC, false, 'An explicit cloned local moment should have _isUTC == false'); - assert.equal(moment.utc().clone()._isUTC, true, 'An explicit cloned utc moment should have _isUTC == true'); - assert.equal(moment(moment().local())._isUTC, false, 'An implicit cloned local moment should have _isUTC == false'); - assert.equal(moment(moment().utc())._isUTC, true, 'An implicit cloned utc moment should have _isUTC == true'); - assert.equal(moment(moment())._isUTC, false, 'An implicit cloned local moment should have _isUTC == false'); - assert.equal(moment(moment.utc())._isUTC, true, 'An implicit cloned utc moment should have _isUTC == true'); -}); - -test('parsing RFC 2822', function (assert) { - var testCases = { - 'clean RFC2822 datetime with all options': 'Tue, 01 Nov 2016 01:23:45 UT', - 'clean RFC2822 datetime without comma': 'Tue 01 Nov 2016 02:23:45 GMT', - 'clean RFC2822 datetime without seconds': 'Tue, 01 Nov 2016 03:23 +0000', - 'clean RFC2822 datetime without century': 'Tue, 01 Nov 16 04:23:45 Z', - 'clean RFC2822 datetime without day': '01 Nov 2016 05:23:45 z', - 'clean RFC2822 datetime with single-digit day-of-month': 'Tue, 1 Nov 2016 06:23:45 GMT', - 'RFC2822 datetime with CFWSs': '(Init Comment) Tue,\n 1 Nov 2016 (Split\n Comment) 07:23:45 +0000 (GMT)' - }; - var testCase; - - for (testCase in testCases) { - var testResult = moment(testCases[testCase], moment.RFC_2822, true); - assert.ok(testResult.isValid(), testResult); - assert.ok(testResult.parsingFlags().rfc2822, testResult + ' - rfc2822 parsingFlag'); - } -}); - -test('non RFC 2822 strings', function (assert) { - var testCases = { - 'RFC2822 datetime with all options but invalid day delimiter': 'Tue. 01 Nov 2016 01:23:45 GMT', - 'RFC2822 datetime with mismatching Day (week v date)': 'Mon, 01 Nov 2016 01:23:45 GMT' - }; - var testCase; - - for (testCase in testCases) { - var testResult = moment(testCases[testCase], moment.RFC_2822, true); - assert.ok(!testResult.isValid(), testResult); - assert.ok(!testResult.parsingFlags().rfc2822, testResult + ' - rfc2822 parsingFlag'); - } -}); - -test('parsing iso', function (assert) { - var offset = moment([2011, 9, 8]).utcOffset(), - pad = function (input) { - if (input < 10) { - return '0' + input; - } - return '' + input; - }, - hourOffset = (offset > 0 ? Math.floor(offset / 60) : Math.ceil(offset / 60)), - minOffset = offset - (hourOffset * 60), - tz = (offset >= 0) ? - '+' + pad(hourOffset) + ':' + pad(minOffset) : - '-' + pad(-hourOffset) + ':' + pad(-minOffset), - tz2 = tz.replace(':', ''), - tz3 = tz2.slice(0, 3), - //Tz3 removes minutes digit so will break the tests when parsed if they all use the same minutes digit - minutesForTz3 = pad((4 + minOffset) % 60), - minute = pad(4 + minOffset), - - formats = [ - ['2011-10-08', '2011-10-08T00:00:00.000' + tz], - ['2011-10-08T18', '2011-10-08T18:00:00.000' + tz], - ['2011-10-08T18:04', '2011-10-08T18:04:00.000' + tz], - ['2011-10-08T18:04:20', '2011-10-08T18:04:20.000' + tz], - ['2011-10-08T18:04' + tz, '2011-10-08T18:04:00.000' + tz], - ['2011-10-08T18:04:20' + tz, '2011-10-08T18:04:20.000' + tz], - ['2011-10-08T18:04' + tz2, '2011-10-08T18:04:00.000' + tz], - ['2011-10-08T18:04:20' + tz2, '2011-10-08T18:04:20.000' + tz], - ['2011-10-08T18:04' + tz3, '2011-10-08T18:' + minutesForTz3 + ':00.000' + tz], - ['2011-10-08T18:04:20' + tz3, '2011-10-08T18:' + minutesForTz3 + ':20.000' + tz], - ['2011-10-08T18:04:20.1' + tz2, '2011-10-08T18:04:20.100' + tz], - ['2011-10-08T18:04:20.11' + tz2, '2011-10-08T18:04:20.110' + tz], - ['2011-10-08T18:04:20.111' + tz2, '2011-10-08T18:04:20.111' + tz], - ['2011-10-08 18', '2011-10-08T18:00:00.000' + tz], - ['2011-10-08 18:04', '2011-10-08T18:04:00.000' + tz], - ['2011-10-08 18:04:20', '2011-10-08T18:04:20.000' + tz], - ['2011-10-08 18:04' + tz, '2011-10-08T18:04:00.000' + tz], - ['2011-10-08 18:04:20' + tz, '2011-10-08T18:04:20.000' + tz], - ['2011-10-08 18:04' + tz2, '2011-10-08T18:04:00.000' + tz], - ['2011-10-08 18:04:20' + tz2, '2011-10-08T18:04:20.000' + tz], - ['2011-10-08 18:04' + tz3, '2011-10-08T18:' + minutesForTz3 + ':00.000' + tz], - ['2011-10-08 18:04:20' + tz3, '2011-10-08T18:' + minutesForTz3 + ':20.000' + tz], - ['2011-10-08 18:04:20.1' + tz2, '2011-10-08T18:04:20.100' + tz], - ['2011-10-08 18:04:20.11' + tz2, '2011-10-08T18:04:20.110' + tz], - ['2011-10-08 18:04:20.111' + tz2, '2011-10-08T18:04:20.111' + tz], - ['2011-W40', '2011-10-03T00:00:00.000' + tz], - ['2011-W40-6', '2011-10-08T00:00:00.000' + tz], - ['2011-W40-6T18', '2011-10-08T18:00:00.000' + tz], - ['2011-W40-6T18:04', '2011-10-08T18:04:00.000' + tz], - ['2011-W40-6T18:04:20', '2011-10-08T18:04:20.000' + tz], - ['2011-W40-6T18:04' + tz, '2011-10-08T18:04:00.000' + tz], - ['2011-W40-6T18:04:20' + tz, '2011-10-08T18:04:20.000' + tz], - ['2011-W40-6T18:04' + tz2, '2011-10-08T18:04:00.000' + tz], - ['2011-W40-6T18:04:20' + tz2, '2011-10-08T18:04:20.000' + tz], - ['2011-W40-6T18:04' + tz3, '2011-10-08T18:' + minutesForTz3 + ':00.000' + tz], - ['2011-W40-6T18:04:20' + tz3, '2011-10-08T18:' + minutesForTz3 + ':20.000' + tz], - ['2011-W40-6T18:04:20.1' + tz2, '2011-10-08T18:04:20.100' + tz], - ['2011-W40-6T18:04:20.11' + tz2, '2011-10-08T18:04:20.110' + tz], - ['2011-W40-6T18:04:20.111' + tz2, '2011-10-08T18:04:20.111' + tz], - ['2011-W40-6 18', '2011-10-08T18:00:00.000' + tz], - ['2011-W40-6 18:04', '2011-10-08T18:04:00.000' + tz], - ['2011-W40-6 18:04:20', '2011-10-08T18:04:20.000' + tz], - ['2011-W40-6 18:04' + tz, '2011-10-08T18:04:00.000' + tz], - ['2011-W40-6 18:04:20' + tz, '2011-10-08T18:04:20.000' + tz], - ['2011-W40-6 18:04' + tz2, '2011-10-08T18:04:00.000' + tz], - ['2011-W40-6 18:04:20' + tz2, '2011-10-08T18:04:20.000' + tz], - ['2011-W40-6 18:04' + tz3, '2011-10-08T18:' + minutesForTz3 + ':00.000' + tz], - ['2011-W40-6 18:04:20' + tz3, '2011-10-08T18:' + minutesForTz3 + ':20.000' + tz], - ['2011-W40-6 18:04:20.1' + tz2, '2011-10-08T18:04:20.100' + tz], - ['2011-W40-6 18:04:20.11' + tz2, '2011-10-08T18:04:20.110' + tz], - ['2011-W40-6 18:04:20.111' + tz2, '2011-10-08T18:04:20.111' + tz], - ['2011-281', '2011-10-08T00:00:00.000' + tz], - ['2011-281T18', '2011-10-08T18:00:00.000' + tz], - ['2011-281T18:04', '2011-10-08T18:04:00.000' + tz], - ['2011-281T18:04:20', '2011-10-08T18:04:20.000' + tz], - ['2011-281T18:04' + tz, '2011-10-08T18:04:00.000' + tz], - ['2011-281T18:04:20' + tz, '2011-10-08T18:04:20.000' + tz], - ['2011-281T18:04' + tz2, '2011-10-08T18:04:00.000' + tz], - ['2011-281T18:04:20' + tz2, '2011-10-08T18:04:20.000' + tz], - ['2011-281T18:04' + tz3, '2011-10-08T18:' + minutesForTz3 + ':00.000' + tz], - ['2011-281T18:04:20' + tz3, '2011-10-08T18:' + minutesForTz3 + ':20.000' + tz], - ['2011-281T18:04:20.1' + tz2, '2011-10-08T18:04:20.100' + tz], - ['2011-281T18:04:20.11' + tz2, '2011-10-08T18:04:20.110' + tz], - ['2011-281T18:04:20.111' + tz2, '2011-10-08T18:04:20.111' + tz], - ['2011-281 18', '2011-10-08T18:00:00.000' + tz], - ['2011-281 18:04', '2011-10-08T18:04:00.000' + tz], - ['2011-281 18:04:20', '2011-10-08T18:04:20.000' + tz], - ['2011-281 18:04' + tz, '2011-10-08T18:04:00.000' + tz], - ['2011-281 18:04:20' + tz, '2011-10-08T18:04:20.000' + tz], - ['2011-281 18:04' + tz2, '2011-10-08T18:04:00.000' + tz], - ['2011-281 18:04:20' + tz2, '2011-10-08T18:04:20.000' + tz], - ['2011-281 18:04' + tz3, '2011-10-08T18:' + minutesForTz3 + ':00.000' + tz], - ['2011-281 18:04:20' + tz3, '2011-10-08T18:' + minutesForTz3 + ':20.000' + tz], - ['2011-281 18:04:20.1' + tz2, '2011-10-08T18:04:20.100' + tz], - ['2011-281 18:04:20.11' + tz2, '2011-10-08T18:04:20.110' + tz], - ['2011-281 18:04:20.111' + tz2, '2011-10-08T18:04:20.111' + tz], - ['20111008T18', '2011-10-08T18:00:00.000' + tz], - ['20111008T1804', '2011-10-08T18:04:00.000' + tz], - ['20111008T180420', '2011-10-08T18:04:20.000' + tz], - ['20111008T1804' + tz, '2011-10-08T18:04:00.000' + tz], - ['20111008T180420' + tz, '2011-10-08T18:04:20.000' + tz], - ['20111008T1804' + tz2, '2011-10-08T18:04:00.000' + tz], - ['20111008T180420' + tz2, '2011-10-08T18:04:20.000' + tz], - ['20111008T1804' + tz3, '2011-10-08T18:' + minutesForTz3 + ':00.000' + tz], - ['20111008T180420' + tz3, '2011-10-08T18:' + minutesForTz3 + ':20.000' + tz], - ['20111008T180420,1' + tz2, '2011-10-08T18:04:20.100' + tz], - ['20111008T180420,11' + tz2, '2011-10-08T18:04:20.110' + tz], - ['20111008T180420,111' + tz2, '2011-10-08T18:04:20.111' + tz], - ['20111008 18', '2011-10-08T18:00:00.000' + tz], - ['20111008 1804', '2011-10-08T18:04:00.000' + tz], - ['20111008 180420', '2011-10-08T18:04:20.000' + tz], - ['20111008 1804' + tz, '2011-10-08T18:04:00.000' + tz], - ['20111008 180420' + tz, '2011-10-08T18:04:20.000' + tz], - ['20111008 1804' + tz2, '2011-10-08T18:04:00.000' + tz], - ['20111008 180420' + tz2, '2011-10-08T18:04:20.000' + tz], - ['20111008 1804' + tz3, '2011-10-08T18:' + minutesForTz3 + ':00.000' + tz], - ['20111008 180420' + tz3, '2011-10-08T18:' + minutesForTz3 + ':20.000' + tz], - ['20111008 180420,1' + tz2, '2011-10-08T18:04:20.100' + tz], - ['20111008 180420,11' + tz2, '2011-10-08T18:04:20.110' + tz], - ['20111008 180420,111' + tz2, '2011-10-08T18:04:20.111' + tz], - ['2011W40', '2011-10-03T00:00:00.000' + tz], - ['2011W406', '2011-10-08T00:00:00.000' + tz], - ['2011W406T18', '2011-10-08T18:00:00.000' + tz], - ['2011W406T1804', '2011-10-08T18:04:00.000' + tz], - ['2011W406T180420', '2011-10-08T18:04:20.000' + tz], - ['2011W406 1804' + tz2, '2011-10-08T18:04:00.000' + tz], - ['2011W406T1804' + tz, '2011-10-08T18:04:00.000' + tz], - ['2011W406T180420' + tz, '2011-10-08T18:04:20.000' + tz], - ['2011W406T1804' + tz2, '2011-10-08T18:04:00.000' + tz], - ['2011W406T180420' + tz2, '2011-10-08T18:04:20.000' + tz], - ['2011W406T1804' + tz3, '2011-10-08T18:' + minutesForTz3 + ':00.000' + tz], - ['2011W406T180420' + tz3, '2011-10-08T18:' + minutesForTz3 + ':20.000' + tz], - ['2011W406T180420,1' + tz2, '2011-10-08T18:04:20.100' + tz], - ['2011W406T180420,11' + tz2, '2011-10-08T18:04:20.110' + tz], - ['2011W406T180420,111' + tz2, '2011-10-08T18:04:20.111' + tz], - ['2011W406 18', '2011-10-08T18:00:00.000' + tz], - ['2011W406 1804', '2011-10-08T18:04:00.000' + tz], - ['2011W406 180420', '2011-10-08T18:04:20.000' + tz], - ['2011W406 1804' + tz, '2011-10-08T18:04:00.000' + tz], - ['2011W406 180420' + tz, '2011-10-08T18:04:20.000' + tz], - ['2011W406 180420' + tz2, '2011-10-08T18:04:20.000' + tz], - ['2011W406 1804' + tz3, '2011-10-08T18:' + minutesForTz3 + ':00.000' + tz], - ['2011W406 180420' + tz3, '2011-10-08T18:' + minutesForTz3 + ':20.000' + tz], - ['2011W406 180420,1' + tz2, '2011-10-08T18:04:20.100' + tz], - ['2011W406 180420,11' + tz2, '2011-10-08T18:04:20.110' + tz], - ['2011W406 180420,111' + tz2, '2011-10-08T18:04:20.111' + tz], - ['2011281', '2011-10-08T00:00:00.000' + tz], - ['2011281T18', '2011-10-08T18:00:00.000' + tz], - ['2011281T1804', '2011-10-08T18:04:00.000' + tz], - ['2011281T180420', '2011-10-08T18:04:20.000' + tz], - ['2011281T1804' + tz, '2011-10-08T18:04:00.000' + tz], - ['2011281T180420' + tz, '2011-10-08T18:04:20.000' + tz], - ['2011281T1804' + tz2, '2011-10-08T18:04:00.000' + tz], - ['2011281T180420' + tz2, '2011-10-08T18:04:20.000' + tz], - ['2011281T1804' + tz3, '2011-10-08T18:' + minutesForTz3 + ':00.000' + tz], - ['2011281T180420' + tz3, '2011-10-08T18:' + minutesForTz3 + ':20.000' + tz], - ['2011281T180420,1' + tz2, '2011-10-08T18:04:20.100' + tz], - ['2011281T180420,11' + tz2, '2011-10-08T18:04:20.110' + tz], - ['2011281T180420,111' + tz2, '2011-10-08T18:04:20.111' + tz], - ['2011281 18', '2011-10-08T18:00:00.000' + tz], - ['2011281 1804', '2011-10-08T18:04:00.000' + tz], - ['2011281 180420', '2011-10-08T18:04:20.000' + tz], - ['2011281 1804' + tz, '2011-10-08T18:04:00.000' + tz], - ['2011281 180420' + tz, '2011-10-08T18:04:20.000' + tz], - ['2011281 1804' + tz2, '2011-10-08T18:04:00.000' + tz], - ['2011281 180420' + tz2, '2011-10-08T18:04:20.000' + tz], - ['2011281 1804' + tz3, '2011-10-08T18:' + minutesForTz3 + ':00.000' + tz], - ['2011281 180420' + tz3, '2011-10-08T18:' + minutesForTz3 + ':20.000' + tz], - ['2011281 180420,1' + tz2, '2011-10-08T18:04:20.100' + tz], - ['2011281 180420,11' + tz2, '2011-10-08T18:04:20.110' + tz], - ['2011281 180420,111' + tz2, '2011-10-08T18:04:20.111' + tz] - ], i; - for (i = 0; i < formats.length; i++) { - assert.equal(moment(formats[i][0]).format('YYYY-MM-DDTHH:mm:ss.SSSZ'), - formats[i][1], 'moment should be able to parse ISO ' + formats[i][0]); - assert.equal(moment(formats[i][0], moment.ISO_8601).format('YYYY-MM-DDTHH:mm:ss.SSSZ'), - formats[i][1], 'moment should be able to parse specified ISO ' + formats[i][0]); - assert.equal(moment(formats[i][0], moment.ISO_8601, true).format('YYYY-MM-DDTHH:mm:ss.SSSZ'), - formats[i][1], 'moment should be able to parse specified strict ISO ' + formats[i][0]); - } -}); - -test('non iso 8601 strings', function (assert) { - assert.ok(!moment('2015-10T10:15', moment.ISO_8601, true).isValid(), 'incomplete date with time'); - assert.ok(!moment('2015-W10T10:15', moment.ISO_8601, true).isValid(), 'incomplete week date with time'); - assert.ok(!moment('201510', moment.ISO_8601, true).isValid(), 'basic YYYYMM is not allowed'); - assert.ok(!moment('2015W10T1015', moment.ISO_8601, true).isValid(), 'incomplete week date with time (basic)'); - assert.ok(!moment('2015-10-08T1015', moment.ISO_8601, true).isValid(), 'mixing extended and basic format'); - assert.ok(!moment('20151008T10:15', moment.ISO_8601, true).isValid(), 'mixing basic and extended format'); - assert.ok(!moment('2015-10-1', moment.ISO_8601, true).isValid(), 'missing zero padding for day'); -}); - -test('parsing iso week year/week/weekday', function (assert) { - assert.equal(moment.utc('2007-W01').format(), '2007-01-01T00:00:00Z', '2008 week 1 (1st Jan Mon)'); - assert.equal(moment.utc('2008-W01').format(), '2007-12-31T00:00:00Z', '2008 week 1 (1st Jan Tue)'); - assert.equal(moment.utc('2003-W01').format(), '2002-12-30T00:00:00Z', '2008 week 1 (1st Jan Wed)'); - assert.equal(moment.utc('2009-W01').format(), '2008-12-29T00:00:00Z', '2009 week 1 (1st Jan Thu)'); - assert.equal(moment.utc('2010-W01').format(), '2010-01-04T00:00:00Z', '2010 week 1 (1st Jan Fri)'); - assert.equal(moment.utc('2011-W01').format(), '2011-01-03T00:00:00Z', '2011 week 1 (1st Jan Sat)'); - assert.equal(moment.utc('2012-W01').format(), '2012-01-02T00:00:00Z', '2012 week 1 (1st Jan Sun)'); -}); - -test('parsing week year/week/weekday (dow 1, doy 4)', function (assert) { - moment.locale('dow:1,doy:4', {week: {dow: 1, doy: 4}}); - - assert.equal(moment.utc('2007-01', 'gggg-ww').format(), '2007-01-01T00:00:00Z', '2007 week 1 (1st Jan Mon)'); - assert.equal(moment.utc('2008-01', 'gggg-ww').format(), '2007-12-31T00:00:00Z', '2008 week 1 (1st Jan Tue)'); - assert.equal(moment.utc('2003-01', 'gggg-ww').format(), '2002-12-30T00:00:00Z', '2003 week 1 (1st Jan Wed)'); - assert.equal(moment.utc('2009-01', 'gggg-ww').format(), '2008-12-29T00:00:00Z', '2009 week 1 (1st Jan Thu)'); - assert.equal(moment.utc('2010-01', 'gggg-ww').format(), '2010-01-04T00:00:00Z', '2010 week 1 (1st Jan Fri)'); - assert.equal(moment.utc('2011-01', 'gggg-ww').format(), '2011-01-03T00:00:00Z', '2011 week 1 (1st Jan Sat)'); - assert.equal(moment.utc('2012-01', 'gggg-ww').format(), '2012-01-02T00:00:00Z', '2012 week 1 (1st Jan Sun)'); - - moment.defineLocale('dow:1,doy:4', null); -}); - -test('parsing week year/week/weekday (dow 1, doy 7)', function (assert) { - moment.locale('dow:1,doy:7', {week: {dow: 1, doy: 7}}); - - assert.equal(moment.utc('2007-01', 'gggg-ww').format(), '2007-01-01T00:00:00Z', '2007 week 1 (1st Jan Mon)'); - assert.equal(moment.utc('2008-01', 'gggg-ww').format(), '2007-12-31T00:00:00Z', '2008 week 1 (1st Jan Tue)'); - assert.equal(moment.utc('2003-01', 'gggg-ww').format(), '2002-12-30T00:00:00Z', '2003 week 1 (1st Jan Wed)'); - assert.equal(moment.utc('2009-01', 'gggg-ww').format(), '2008-12-29T00:00:00Z', '2009 week 1 (1st Jan Thu)'); - assert.equal(moment.utc('2010-01', 'gggg-ww').format(), '2009-12-28T00:00:00Z', '2010 week 1 (1st Jan Fri)'); - assert.equal(moment.utc('2011-01', 'gggg-ww').format(), '2010-12-27T00:00:00Z', '2011 week 1 (1st Jan Sat)'); - assert.equal(moment.utc('2012-01', 'gggg-ww').format(), '2011-12-26T00:00:00Z', '2012 week 1 (1st Jan Sun)'); - moment.defineLocale('dow:1,doy:7', null); -}); - -test('parsing week year/week/weekday (dow 0, doy 6)', function (assert) { - moment.locale('dow:0,doy:6', {week: {dow: 0, doy: 6}}); - - assert.equal(moment.utc('2007-01', 'gggg-ww').format(), '2006-12-31T00:00:00Z', '2007 week 1 (1st Jan Mon)'); - assert.equal(moment.utc('2008-01', 'gggg-ww').format(), '2007-12-30T00:00:00Z', '2008 week 1 (1st Jan Tue)'); - assert.equal(moment.utc('2003-01', 'gggg-ww').format(), '2002-12-29T00:00:00Z', '2003 week 1 (1st Jan Wed)'); - assert.equal(moment.utc('2009-01', 'gggg-ww').format(), '2008-12-28T00:00:00Z', '2009 week 1 (1st Jan Thu)'); - assert.equal(moment.utc('2010-01', 'gggg-ww').format(), '2009-12-27T00:00:00Z', '2010 week 1 (1st Jan Fri)'); - assert.equal(moment.utc('2011-01', 'gggg-ww').format(), '2010-12-26T00:00:00Z', '2011 week 1 (1st Jan Sat)'); - assert.equal(moment.utc('2012-01', 'gggg-ww').format(), '2012-01-01T00:00:00Z', '2012 week 1 (1st Jan Sun)'); - moment.defineLocale('dow:0,doy:6', null); -}); - -test('parsing week year/week/weekday (dow 6, doy 12)', function (assert) { - moment.locale('dow:6,doy:12', {week: {dow: 6, doy: 12}}); - - assert.equal(moment.utc('2007-01', 'gggg-ww').format(), '2006-12-30T00:00:00Z', '2007 week 1 (1st Jan Mon)'); - assert.equal(moment.utc('2008-01', 'gggg-ww').format(), '2007-12-29T00:00:00Z', '2008 week 1 (1st Jan Tue)'); - assert.equal(moment.utc('2003-01', 'gggg-ww').format(), '2002-12-28T00:00:00Z', '2003 week 1 (1st Jan Wed)'); - assert.equal(moment.utc('2009-01', 'gggg-ww').format(), '2008-12-27T00:00:00Z', '2009 week 1 (1st Jan Thu)'); - assert.equal(moment.utc('2010-01', 'gggg-ww').format(), '2009-12-26T00:00:00Z', '2010 week 1 (1st Jan Fri)'); - assert.equal(moment.utc('2011-01', 'gggg-ww').format(), '2011-01-01T00:00:00Z', '2011 week 1 (1st Jan Sat)'); - assert.equal(moment.utc('2012-01', 'gggg-ww').format(), '2011-12-31T00:00:00Z', '2012 week 1 (1st Jan Sun)'); - moment.defineLocale('dow:6,doy:12', null); -}); - -test('parsing ISO with Z', function (assert) { - var i, mom, formats = [ - ['2011-10-08T18:04', '2011-10-08T18:04:00.000'], - ['2011-10-08T18:04:20', '2011-10-08T18:04:20.000'], - ['2011-10-08T18:04:20.1', '2011-10-08T18:04:20.100'], - ['2011-10-08T18:04:20.11', '2011-10-08T18:04:20.110'], - ['2011-10-08T18:04:20.111', '2011-10-08T18:04:20.111'], - ['2011-W40-6T18', '2011-10-08T18:00:00.000'], - ['2011-W40-6T18:04', '2011-10-08T18:04:00.000'], - ['2011-W40-6T18:04:20', '2011-10-08T18:04:20.000'], - ['2011-W40-6T18:04:20.1', '2011-10-08T18:04:20.100'], - ['2011-W40-6T18:04:20.11', '2011-10-08T18:04:20.110'], - ['2011-W40-6T18:04:20.111', '2011-10-08T18:04:20.111'], - ['2011-281T18', '2011-10-08T18:00:00.000'], - ['2011-281T18:04', '2011-10-08T18:04:00.000'], - ['2011-281T18:04:20', '2011-10-08T18:04:20.000'], - ['2011-281T18:04:20', '2011-10-08T18:04:20.000'], - ['2011-281T18:04:20.1', '2011-10-08T18:04:20.100'], - ['2011-281T18:04:20.11', '2011-10-08T18:04:20.110'], - ['2011-281T18:04:20.111', '2011-10-08T18:04:20.111'] - ]; - - for (i = 0; i < formats.length; i++) { - mom = moment(formats[i][0] + 'Z').utc(); - assert.equal(mom.format('YYYY-MM-DDTHH:mm:ss.SSS'), formats[i][1], 'moment should be able to parse ISO in UTC ' + formats[i][0] + 'Z'); - - mom = moment(formats[i][0] + ' Z').utc(); - assert.equal(mom.format('YYYY-MM-DDTHH:mm:ss.SSS'), formats[i][1], 'moment should be able to parse ISO in UTC ' + formats[i][0] + ' Z'); - } -}); - -test('parsing iso with T', function (assert) { - assert.equal(moment('2011-10-08T18')._f, 'YYYY-MM-DDTHH', 'should include \'T\' in the format'); - assert.equal(moment('2011-10-08T18:20')._f, 'YYYY-MM-DDTHH:mm', 'should include \'T\' in the format'); - assert.equal(moment('2011-10-08T18:20:13')._f, 'YYYY-MM-DDTHH:mm:ss', 'should include \'T\' in the format'); - assert.equal(moment('2011-10-08T18:20:13.321')._f, 'YYYY-MM-DDTHH:mm:ss.SSSS', 'should include \'T\' in the format'); - - assert.equal(moment('2011-10-08 18')._f, 'YYYY-MM-DD HH', 'should not include \'T\' in the format'); - assert.equal(moment('2011-10-08 18:20')._f, 'YYYY-MM-DD HH:mm', 'should not include \'T\' in the format'); - assert.equal(moment('2011-10-08 18:20:13')._f, 'YYYY-MM-DD HH:mm:ss', 'should not include \'T\' in the format'); - assert.equal(moment('2011-10-08 18:20:13.321')._f, 'YYYY-MM-DD HH:mm:ss.SSSS', 'should not include \'T\' in the format'); -}); - -test('parsing iso Z timezone', function (assert) { - var i, - formats = [ - ['2011-10-08T18:04Z', '2011-10-08T18:04:00.000+00:00'], - ['2011-10-08T18:04:20Z', '2011-10-08T18:04:20.000+00:00'], - ['2011-10-08T18:04:20.111Z', '2011-10-08T18:04:20.111+00:00'] - ]; - for (i = 0; i < formats.length; i++) { - assert.equal(moment.utc(formats[i][0]).format('YYYY-MM-DDTHH:mm:ss.SSSZ'), formats[i][1], 'moment should be able to parse ISO ' + formats[i][0]); - } -}); - -test('parsing iso Z timezone into local', function (assert) { - var m = moment('2011-10-08T18:04:20.111Z'); - - assert.equal(m.utc().format('YYYY-MM-DDTHH:mm:ss.SSS'), '2011-10-08T18:04:20.111', 'moment should be able to parse ISO 2011-10-08T18:04:20.111Z'); -}); - -test('parsing iso with more subsecond precision digits', function (assert) { - assert.equal(moment.utc('2013-07-31T22:00:00.0000000Z').format(), '2013-07-31T22:00:00Z', 'more than 3 subsecond digits'); -}); - -test('null or empty', function (assert) { - assert.equal(moment('').isValid(), false, 'moment(\'\') is not valid'); - assert.equal(moment(null).isValid(), false, 'moment(null) is not valid'); - assert.equal(moment(null, 'YYYY-MM-DD').isValid(), false, 'moment(\'\', \'format\') is not valid'); - assert.equal(moment('', 'YYYY-MM-DD').isValid(), false, 'moment(\'\', \'format\') is not valid'); - assert.equal(moment.utc('').isValid(), false, 'moment.utc(\'\') is not valid'); - assert.equal(moment.utc(null).isValid(), false, 'moment.utc(null) is not valid'); - assert.equal(moment.utc(null, 'YYYY-MM-DD').isValid(), false, 'moment.utc(null) is not valid'); - assert.equal(moment.utc('', 'YYYY-MM-DD').isValid(), false, 'moment.utc(\'\', \'YYYY-MM-DD\') is not valid'); -}); - -test('first century', function (assert) { - assert.equal(moment([0, 0, 1]).format('YYYY-MM-DD'), '0000-01-01', 'Year AD 0'); - assert.equal(moment([99, 0, 1]).format('YYYY-MM-DD'), '0099-01-01', 'Year AD 99'); - assert.equal(moment([999, 0, 1]).format('YYYY-MM-DD'), '0999-01-01', 'Year AD 999'); - assert.equal(moment('0 1 1', 'YYYY MM DD').format('YYYY-MM-DD'), '0000-01-01', 'Year AD 0'); - assert.equal(moment('999 1 1', 'YYYY MM DD').format('YYYY-MM-DD'), '0999-01-01', 'Year AD 999'); - assert.equal(moment('0 1 1', 'YYYYY MM DD').format('YYYYY-MM-DD'), '00000-01-01', 'Year AD 0'); - assert.equal(moment('99 1 1', 'YYYYY MM DD').format('YYYYY-MM-DD'), '00099-01-01', 'Year AD 99'); - assert.equal(moment('999 1 1', 'YYYYY MM DD').format('YYYYY-MM-DD'), '00999-01-01', 'Year AD 999'); -}); - -test('six digit years', function (assert) { - assert.equal(moment([-270000, 0, 1]).format('YYYYY-MM-DD'), '-270000-01-01', 'format BC 270,001'); - assert.equal(moment([270000, 0, 1]).format('YYYYY-MM-DD'), '270000-01-01', 'format AD 270,000'); - assert.equal(moment('-270000-01-01', 'YYYYY-MM-DD').toDate().getFullYear(), -270000, 'parse BC 270,001'); - assert.equal(moment('270000-01-01', 'YYYYY-MM-DD').toDate().getFullYear(), 270000, 'parse AD 270,000'); - assert.equal(moment('+270000-01-01', 'YYYYY-MM-DD').toDate().getFullYear(), 270000, 'parse AD +270,000'); - assert.equal(moment.utc('-270000-01-01', 'YYYYY-MM-DD').toDate().getUTCFullYear(), -270000, 'parse utc BC 270,001'); - assert.equal(moment.utc('270000-01-01', 'YYYYY-MM-DD').toDate().getUTCFullYear(), 270000, 'parse utc AD 270,000'); - assert.equal(moment.utc('+270000-01-01', 'YYYYY-MM-DD').toDate().getUTCFullYear(), 270000, 'parse utc AD +270,000'); -}); - -test('negative four digit years', function (assert) { - assert.equal(moment('-1000-01-01', 'YYYYY-MM-DD').toDate().getFullYear(), -1000, 'parse BC 1,001'); - assert.equal(moment.utc('-1000-01-01', 'YYYYY-MM-DD').toDate().getUTCFullYear(), -1000, 'parse utc BC 1,001'); -}); - -test('strict parsing', function (assert) { - assert.equal(moment('2014-', 'YYYY-Q', true).isValid(), false, 'fail missing quarter'); - - assert.equal(moment('2012-05', 'YYYY-MM', true).format('YYYY-MM'), '2012-05', 'parse correct string'); - assert.equal(moment(' 2012-05', 'YYYY-MM', true).isValid(), false, 'fail on extra whitespace'); - assert.equal(moment('foo 2012-05', '[foo] YYYY-MM', true).format('YYYY-MM'), '2012-05', 'handle fixed text'); - assert.equal(moment('2012 05', 'YYYY-MM', true).isValid(), false, 'fail on different separator'); - assert.equal(moment('2012 05', 'YYYY MM DD', true).isValid(), false, 'fail on too many tokens'); - - assert.equal(moment('05 30 2010', ['DD MM YYYY', 'MM DD YYYY'], true).format('MM DD YYYY'), '05 30 2010', 'array with bad date'); - assert.equal(moment('05 30 2010', ['', 'MM DD YYYY'], true).format('MM DD YYYY'), '05 30 2010', 'array with invalid format'); - assert.equal(moment('05 30 2010', [' DD MM YYYY', 'MM DD YYYY'], true).format('MM DD YYYY'), '05 30 2010', 'array with non-matching format'); - - assert.equal(moment('2010.*...', 'YYYY.*', true).isValid(), false, 'invalid format with regex chars'); - assert.equal(moment('2010.*', 'YYYY.*', true).year(), 2010, 'valid format with regex chars'); - assert.equal(moment('.*2010.*', '.*YYYY.*', true).year(), 2010, 'valid format with regex chars on both sides'); - - //strict tokens - assert.equal(moment('-5-05-25', 'YYYY-MM-DD', true).isValid(), false, 'invalid negative year'); - assert.equal(moment('2-05-25', 'YYYY-MM-DD', true).isValid(), false, 'invalid one-digit year'); - assert.equal(moment('20-05-25', 'YYYY-MM-DD', true).isValid(), false, 'invalid two-digit year'); - assert.equal(moment('201-05-25', 'YYYY-MM-DD', true).isValid(), false, 'invalid three-digit year'); - assert.equal(moment('2010-05-25', 'YYYY-MM-DD', true).isValid(), true, 'valid four-digit year'); - assert.equal(moment('22010-05-25', 'YYYY-MM-DD', true).isValid(), false, 'invalid five-digit year'); - - assert.equal(moment('12-05-25', 'YY-MM-DD', true).isValid(), true, 'valid two-digit year'); - assert.equal(moment('2012-05-25', 'YY-MM-DD', true).isValid(), false, 'invalid four-digit year'); - - assert.equal(moment('-5-05-25', 'Y-MM-DD', true).isValid(), true, 'valid negative year'); - assert.equal(moment('2-05-25', 'Y-MM-DD', true).isValid(), true, 'valid one-digit year'); - assert.equal(moment('20-05-25', 'Y-MM-DD', true).isValid(), true, 'valid two-digit year'); - assert.equal(moment('201-05-25', 'Y-MM-DD', true).isValid(), true, 'valid three-digit year'); - - assert.equal(moment('2012-5-25', 'YYYY-M-DD', true).isValid(), true, 'valid one-digit month'); - assert.equal(moment('2012-5-25', 'YYYY-MM-DD', true).isValid(), false, 'invalid one-digit month'); - assert.equal(moment('2012-05-25', 'YYYY-M-DD', true).isValid(), true, 'valid one-digit month'); - assert.equal(moment('2012-05-25', 'YYYY-MM-DD', true).isValid(), true, 'valid one-digit month'); - - assert.equal(moment('2012-05-2', 'YYYY-MM-D', true).isValid(), true, 'valid one-digit day'); - assert.equal(moment('2012-05-2', 'YYYY-MM-DD', true).isValid(), false, 'invalid one-digit day'); - assert.equal(moment('2012-05-02', 'YYYY-MM-D', true).isValid(), true, 'valid two-digit day'); - assert.equal(moment('2012-05-02', 'YYYY-MM-DD', true).isValid(), true, 'valid two-digit day'); - - assert.equal(moment('+002012-05-25', 'YYYYY-MM-DD', true).isValid(), true, 'valid six-digit year'); - assert.equal(moment('+2012-05-25', 'YYYYY-MM-DD', true).isValid(), false, 'invalid four-digit year'); - - //thse are kinda pointless, but they should work as expected - assert.equal(moment('1', 'S', true).isValid(), true, 'valid one-digit milisecond'); - assert.equal(moment('12', 'S', true).isValid(), false, 'invalid two-digit milisecond'); - assert.equal(moment('123', 'S', true).isValid(), false, 'invalid three-digit milisecond'); - - assert.equal(moment('1', 'SS', true).isValid(), false, 'invalid one-digit milisecond'); - assert.equal(moment('12', 'SS', true).isValid(), true, 'valid two-digit milisecond'); - assert.equal(moment('123', 'SS', true).isValid(), false, 'invalid three-digit milisecond'); - - assert.equal(moment('1', 'SSS', true).isValid(), false, 'invalid one-digit milisecond'); - assert.equal(moment('12', 'SSS', true).isValid(), false, 'invalid two-digit milisecond'); - assert.equal(moment('123', 'SSS', true).isValid(), true, 'valid three-digit milisecond'); - - // strict parsing respects month length - assert.ok(moment('1 January 2000', 'D MMMM YYYY', true).isValid(), 'capital long-month + MMMM'); - assert.ok(!moment('1 January 2000', 'D MMM YYYY', true).isValid(), 'capital long-month + MMM'); - assert.ok(!moment('1 Jan 2000', 'D MMMM YYYY', true).isValid(), 'capital short-month + MMMM'); - assert.ok(moment('1 Jan 2000', 'D MMM YYYY', true).isValid(), 'capital short-month + MMM'); - assert.ok(moment('1 january 2000', 'D MMMM YYYY', true).isValid(), 'lower long-month + MMMM'); - assert.ok(!moment('1 january 2000', 'D MMM YYYY', true).isValid(), 'lower long-month + MMM'); - assert.ok(!moment('1 jan 2000', 'D MMMM YYYY', true).isValid(), 'lower short-month + MMMM'); - assert.ok(moment('1 jan 2000', 'D MMM YYYY', true).isValid(), 'lower short-month + MMM'); -}); - -test('parsing into a locale', function (assert) { - moment.defineLocale('parselocale', { - months : 'one_two_three_four_five_six_seven_eight_nine_ten_eleven_twelve'.split('_'), - monthsShort : 'one_two_three_four_five_six_seven_eight_nine_ten_eleven_twelve'.split('_') - }); - - moment.locale('en'); - - assert.equal(moment('2012 seven', 'YYYY MMM', 'parselocale').month(), 6, 'should be able to parse in a specific locale'); - - moment.locale('parselocale'); - - assert.equal(moment('2012 july', 'YYYY MMM', 'en').month(), 6, 'should be able to parse in a specific locale'); - - moment.defineLocale('parselocale', null); -}); - -function getVerifier(test$$1) { - return function (input, format, expected, description, asymetrical) { - var m = moment(input, format); - test$$1.equal(m.format('YYYY MM DD'), expected, 'compare: ' + description); - - //test round trip - if (!asymetrical) { - test$$1.equal(m.format(format), input, 'round trip: ' + description); - } - }; -} - -test('parsing week and weekday information', function (assert) { - var ver = getVerifier(assert); - var currentWeekOfYear = moment().weeks(); - var expectedDate2012 = moment([2012, 0, 1]) - .day(0) - .add((currentWeekOfYear - 1), 'weeks') - .format('YYYY MM DD'); - var expectedDate1999 = moment([1999, 0, 1]) - .day(0) - .add((currentWeekOfYear - 1), 'weeks') - .format('YYYY MM DD'); - - // year - ver('12', 'gg', expectedDate2012, 'week-year two digits'); - ver('2012', 'gggg', expectedDate2012, 'week-year four digits'); - ver('99', 'gg', expectedDate1999, 'week-year two digits previous year'); - ver('1999', 'gggg', expectedDate1999, 'week-year four digits previous year'); - - ver('99', 'GG', '1999 01 04', 'iso week-year two digits'); - ver('1999', 'GGGG', '1999 01 04', 'iso week-year four digits'); - - ver('13', 'GG', '2012 12 31', 'iso week-year two digits previous year'); - ver('2013', 'GGGG', '2012 12 31', 'iso week-year four digits previous year'); - - // year + week - ver('1999 37', 'gggg w', '1999 09 05', 'week'); - ver('1999 37', 'gggg ww', '1999 09 05', 'week double'); - ver('1999 37', 'GGGG W', '1999 09 13', 'iso week'); - ver('1999 37', 'GGGG WW', '1999 09 13', 'iso week double'); - - ver('1999 37 4', 'GGGG WW E', '1999 09 16', 'iso day'); - ver('1999 37 04', 'GGGG WW E', '1999 09 16', 'iso day wide', true); - - ver('1999 37 4', 'gggg ww e', '1999 09 09', 'day'); - ver('1999 37 04', 'gggg ww e', '1999 09 09', 'day wide', true); - - // year + week + day - ver('1999 37 4', 'gggg ww d', '1999 09 09', 'd'); - ver('1999 37 Th', 'gggg ww dd', '1999 09 09', 'dd'); - ver('1999 37 Thu', 'gggg ww ddd', '1999 09 09', 'ddd'); - ver('1999 37 Thursday', 'gggg ww dddd', '1999 09 09', 'dddd'); - - // lower-order only - assert.equal(moment('22', 'ww').week(), 22, 'week sets the week by itself'); - assert.equal(moment('22', 'ww').weekYear(), moment().weekYear(), 'week keeps this year'); - assert.equal(moment('2012 22', 'YYYY ww').weekYear(), 2012, 'week keeps parsed year'); - - assert.equal(moment('22', 'WW').isoWeek(), 22, 'iso week sets the week by itself'); - assert.equal(moment('2012 22', 'YYYY WW').weekYear(), 2012, 'iso week keeps parsed year'); - assert.equal(moment('22', 'WW').isoWeekYear(), moment().isoWeekYear(), 'iso week keeps this year'); - - // order - ver('6 2013 2', 'e gggg w', '2013 01 12', 'order doesn\'t matter'); - ver('6 2013 2', 'E GGGG W', '2013 01 12', 'iso order doesn\'t matter'); - - //can parse other stuff too - assert.equal(moment('1999-W37-4 3:30', 'GGGG-[W]WW-E HH:mm').format('YYYY MM DD HH:mm'), '1999 09 16 03:30', 'parsing weeks and hours'); - - // In safari, all years before 1300 are shifted back with one day. - // http://stackoverflow.com/questions/20768975/safari-subtracts-1-day-from-dates-before-1300 - if (new Date('1300-01-01').getUTCFullYear() === 1300) { - // Years less than 100 - ver('0098-06', 'GGGG-WW', '0098 02 03', 'small years work', true); - } -}); - -test('parsing localized weekdays', function (assert) { - var ver = getVerifier(assert); - try { - moment.locale('dow:1,doy:4', { - 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('_'), - week: {dow: 1, doy: 4} - }); - ver('1999 37 4', 'GGGG WW E', '1999 09 16', 'iso ignores locale'); - ver('1999 37 7', 'GGGG WW E', '1999 09 19', 'iso ignores locale'); - - ver('1999 37 0', 'gggg ww e', '1999 09 13', 'localized e uses local doy and dow: 0 = monday'); - ver('1999 37 4', 'gggg ww e', '1999 09 17', 'localized e uses local doy and dow: 4 = friday'); - - ver('1999 37 1', 'gggg ww d', '1999 09 13', 'localized d uses 0-indexed days: 1 = monday'); - ver('1999 37 Lu', 'gggg ww dd', '1999 09 13', 'localized d uses 0-indexed days: Mo'); - ver('1999 37 lun.', 'gggg ww ddd', '1999 09 13', 'localized d uses 0-indexed days: Mon'); - ver('1999 37 lundi', 'gggg ww dddd', '1999 09 13', 'localized d uses 0-indexed days: Monday'); - ver('1999 37 4', 'gggg ww d', '1999 09 16', 'localized d uses 0-indexed days: 4'); - - //sunday goes at the end of the week - ver('1999 37 0', 'gggg ww d', '1999 09 19', 'localized d uses 0-indexed days: 0 = sund'); - ver('1999 37 Di', 'gggg ww dd', '1999 09 19', 'localized d uses 0-indexed days: 0 = sund'); - } - finally { - moment.defineLocale('dow:1,doy:4', null); - moment.locale('en'); - } -}); - -test('parsing with customized two-digit year', function (assert) { - var original = moment.parseTwoDigitYear; - try { - assert.equal(moment('68', 'YY').year(), 2068); - assert.equal(moment('69', 'YY').year(), 1969); - moment.parseTwoDigitYear = function (input) { - return +input + (+input > 30 ? 1900 : 2000); - }; - assert.equal(moment('68', 'YY').year(), 1968); - assert.equal(moment('67', 'YY').year(), 1967); - assert.equal(moment('31', 'YY').year(), 1931); - assert.equal(moment('30', 'YY').year(), 2030); - } - finally { - moment.parseTwoDigitYear = original; - } -}); - -test('array with strings', function (assert) { - assert.equal(moment(['2014', '7', '31']).isValid(), true, 'string array + isValid'); -}); - -test('object with strings', function (assert) { - assert.equal(moment({year: '2014', month: '7', day: '31'}).isValid(), true, 'string object + isValid'); -}); - -test('utc with array of formats', function (assert) { - assert.equal(moment.utc('2014-01-01', ['YYYY-MM-DD', 'YYYY-MM']).format(), '2014-01-01T00:00:00Z', 'moment.utc works with array of formats'); -}); - -test('parsing invalid string weekdays', function (assert) { - assert.equal(false, moment('a', 'dd').isValid(), - 'dd with invalid weekday, non-strict'); - assert.equal(false, moment('a', 'dd', true).isValid(), - 'dd with invalid weekday, strict'); - assert.equal(false, moment('a', 'ddd').isValid(), - 'ddd with invalid weekday, non-strict'); - assert.equal(false, moment('a', 'ddd', true).isValid(), - 'ddd with invalid weekday, strict'); - assert.equal(false, moment('a', 'dddd').isValid(), - 'dddd with invalid weekday, non-strict'); - assert.equal(false, moment('a', 'dddd', true).isValid(), - 'dddd with invalid weekday, strict'); -}); - -test('milliseconds', function (assert) { - assert.equal(moment('1', 'S').millisecond(), 100); - assert.equal(moment('12', 'SS').millisecond(), 120); - assert.equal(moment('123', 'SSS').millisecond(), 123); - assert.equal(moment('1234', 'SSSS').millisecond(), 123); - assert.equal(moment('12345', 'SSSSS').millisecond(), 123); - assert.equal(moment('123456', 'SSSSSS').millisecond(), 123); - assert.equal(moment('1234567', 'SSSSSSS').millisecond(), 123); - assert.equal(moment('12345678', 'SSSSSSSS').millisecond(), 123); - assert.equal(moment('123456789', 'SSSSSSSSS').millisecond(), 123); -}); - -test('hmm', function (assert) { - assert.equal(moment('123', 'hmm', true).format('HH:mm:ss'), '01:23:00', '123 with hmm'); - assert.equal(moment('123a', 'hmmA', true).format('HH:mm:ss'), '01:23:00', '123a with hmmA'); - assert.equal(moment('123p', 'hmmA', true).format('HH:mm:ss'), '13:23:00', '123p with hmmA'); - - assert.equal(moment('1234', 'hmm', true).format('HH:mm:ss'), '12:34:00', '1234 with hmm'); - assert.equal(moment('1234a', 'hmmA', true).format('HH:mm:ss'), '00:34:00', '1234a with hmmA'); - assert.equal(moment('1234p', 'hmmA', true).format('HH:mm:ss'), '12:34:00', '1234p with hmmA'); - - assert.equal(moment('12345', 'hmmss', true).format('HH:mm:ss'), '01:23:45', '12345 with hmmss'); - assert.equal(moment('12345a', 'hmmssA', true).format('HH:mm:ss'), '01:23:45', '12345a with hmmssA'); - assert.equal(moment('12345p', 'hmmssA', true).format('HH:mm:ss'), '13:23:45', '12345p with hmmssA'); - assert.equal(moment('112345', 'hmmss', true).format('HH:mm:ss'), '11:23:45', '112345 with hmmss'); - assert.equal(moment('112345a', 'hmmssA', true).format('HH:mm:ss'), '11:23:45', '112345a with hmmssA'); - assert.equal(moment('112345p', 'hmmssA', true).format('HH:mm:ss'), '23:23:45', '112345p with hmmssA'); - - assert.equal(moment('023', 'Hmm', true).format('HH:mm:ss'), '00:23:00', '023 with Hmm'); - assert.equal(moment('123', 'Hmm', true).format('HH:mm:ss'), '01:23:00', '123 with Hmm'); - assert.equal(moment('1234', 'Hmm', true).format('HH:mm:ss'), '12:34:00', '1234 with Hmm'); - assert.equal(moment('1534', 'Hmm', true).format('HH:mm:ss'), '15:34:00', '1234 with Hmm'); - assert.equal(moment('12345', 'Hmmss', true).format('HH:mm:ss'), '01:23:45', '12345 with Hmmss'); - assert.equal(moment('112345', 'Hmmss', true).format('HH:mm:ss'), '11:23:45', '112345 with Hmmss'); - assert.equal(moment('172345', 'Hmmss', true).format('HH:mm:ss'), '17:23:45', '112345 with Hmmss'); -}); - -test('Y token', function (assert) { - assert.equal(moment('1-1-2010', 'M-D-Y', true).year(), 2010, 'parsing Y'); -}); - -test('parsing flags retain parsed date parts', function (assert) { - var a = moment('10 p', 'hh:mm a'); - assert.equal(a.parsingFlags().parsedDateParts[3], 10, 'parsed 10 as the hour'); - assert.equal(a.parsingFlags().parsedDateParts[0], undefined, 'year was not parsed'); - assert.equal(a.parsingFlags().meridiem, 'p', 'meridiem flag was added'); - var b = moment('10:30', ['MMDDYY', 'HH:mm']); - assert.equal(b.parsingFlags().parsedDateParts[3], 10, 'multiple format parshing matched hour'); - assert.equal(b.parsingFlags().parsedDateParts[0], undefined, 'array is properly copied, no residual data from first token parse'); -}); - -test('parsing only meridiem results in invalid date', function (assert) { - assert.ok(!moment('alkj', 'hh:mm a').isValid(), 'because an a token is used, a meridiem will be parsed but nothing else was so invalid'); - assert.ok(moment('02:30 p more extra stuff', 'hh:mm a').isValid(), 'because other tokens were parsed, date is valid'); - assert.ok(moment('1/1/2016 extra data', ['a', 'M/D/YYYY']).isValid(), 'took second format, does not pick up on meridiem parsed from first format (good copy)'); -}); - -test('invalid dates return invalid for methods that access the _d prop', function (assert) { - var momentAsDate = moment(['2015', '12', '1']).toDate(); - assert.ok(momentAsDate instanceof Date, 'toDate returns a Date object'); - assert.ok(isNaN(momentAsDate.getTime()), 'toDate returns an invalid Date invalid'); -}); - -test('k, kk', function (assert) { - for (var i = -1; i <= 24; i++) { - var kVal = i + ':15:59'; - var kkVal = (i < 10 ? '0' : '') + i + ':15:59'; - if (i !== 24) { - assert.ok(moment(kVal, 'k:mm:ss').isSame(moment(kVal, 'H:mm:ss')), kVal + ' k parsing'); - assert.ok(moment(kkVal, 'kk:mm:ss').isSame(moment(kkVal, 'HH:mm:ss')), kkVal + ' kk parsing'); - } else { - assert.equal(moment(kVal, 'k:mm:ss').format('k:mm:ss'), kVal, kVal + ' k parsing'); - assert.equal(moment(kkVal, 'kk:mm:ss').format('kk:mm:ss'), kkVal, kkVal + ' skk parsing'); - } - } -}); - -}))); - - -;(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' - && typeof require === 'function' ? factory(require('../../moment')) : - typeof define === 'function' && define.amd ? define(['../../moment'], factory) : - factory(global.moment) -}(this, (function (moment) { 'use strict'; - -function each(array, callback) { - var i; - for (i = 0; i < array.length; i++) { - callback(array[i], i, array); - } -} - -function objectKeys(obj) { - if (Object.keys) { - return Object.keys(obj); - } else { - // IE8 - var res = [], i; - for (i in obj) { - if (obj.hasOwnProperty(i)) { - res.push(i); - } - } - return res; - } -} - -// Pick the first defined of two or three arguments. - -function defineCommonLocaleTests(locale, options) { - test('lenient day of month ordinal parsing', function (assert) { - var i, ordinalStr, testMoment; - for (i = 1; i <= 31; ++i) { - ordinalStr = moment([2014, 0, i]).format('YYYY MM Do'); - testMoment = moment(ordinalStr, 'YYYY MM Do'); - assert.equal(testMoment.year(), 2014, - 'lenient day of month ordinal parsing ' + i + ' year check'); - assert.equal(testMoment.month(), 0, - 'lenient day of month ordinal parsing ' + i + ' month check'); - assert.equal(testMoment.date(), i, - 'lenient day of month ordinal parsing ' + i + ' date check'); - } - }); - - test('lenient day of month ordinal parsing of number', function (assert) { - var i, testMoment; - for (i = 1; i <= 31; ++i) { - testMoment = moment('2014 01 ' + i, 'YYYY MM Do'); - assert.equal(testMoment.year(), 2014, - 'lenient day of month ordinal parsing of number ' + i + ' year check'); - assert.equal(testMoment.month(), 0, - 'lenient day of month ordinal parsing of number ' + i + ' month check'); - assert.equal(testMoment.date(), i, - 'lenient day of month ordinal parsing of number ' + i + ' date check'); - } - }); - - test('strict day of month ordinal parsing', function (assert) { - var i, ordinalStr, testMoment; - for (i = 1; i <= 31; ++i) { - ordinalStr = moment([2014, 0, i]).format('YYYY MM Do'); - testMoment = moment(ordinalStr, 'YYYY MM Do', true); - assert.ok(testMoment.isValid(), 'strict day of month ordinal parsing ' + i); - } - }); - - test('meridiem invariant', function (assert) { - var h, m, t1, t2; - for (h = 0; h < 24; ++h) { - for (m = 0; m < 60; m += 15) { - t1 = moment.utc([2000, 0, 1, h, m]); - t2 = moment.utc(t1.format('A h:mm'), 'A h:mm'); - assert.equal(t2.format('HH:mm'), t1.format('HH:mm'), - 'meridiem at ' + t1.format('HH:mm')); - } - } - }); - - test('date format correctness', function (assert) { - var data, tokens; - data = moment.localeData()._longDateFormat; - tokens = objectKeys(data); - each(tokens, function (srchToken) { - // Check each format string to make sure it does not contain any - // tokens that need to be expanded. - each(tokens, function (baseToken) { - // strip escaped sequences - var format = data[baseToken].replace(/(\[[^\]]*\])/g, ''); - assert.equal(false, !!~format.indexOf(srchToken), - 'contains ' + srchToken + ' in ' + baseToken); - }); - }); - }); - - test('month parsing correctness', function (assert) { - var i, m; - - if (locale === 'tr') { - // I can't fix it :( - expect(0); - return; - } - function tester(format) { - var r; - r = moment(m.format(format), format); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format); - r = moment(m.format(format).toLocaleUpperCase(), format); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' upper'); - r = moment(m.format(format).toLocaleLowerCase(), format); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' lower'); - - r = moment(m.format(format), format, true); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' strict'); - r = moment(m.format(format).toLocaleUpperCase(), format, true); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' upper strict'); - r = moment(m.format(format).toLocaleLowerCase(), format, true); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' lower strict'); - } - - for (i = 0; i < 12; ++i) { - m = moment([2015, i, 15, 18]); - tester('MMM'); - tester('MMM.'); - tester('MMMM'); - tester('MMMM.'); - } - }); - - test('weekday parsing correctness', function (assert) { - var i, m; - - if (locale === 'tr' || locale === 'az' || locale === 'ro') { - // tr, az: There is a lower-case letter (ı), that converted to - // upper then lower changes to i - // ro: there is the letter ț which behaves weird under IE8 - expect(0); - return; - } - function tester(format) { - var r, baseMsg = 'weekday ' + m.weekday() + ' fmt ' + format + ' ' + m.toISOString(); - r = moment(m.format(format), format); - assert.equal(r.weekday(), m.weekday(), baseMsg); - r = moment(m.format(format).toLocaleUpperCase(), format); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' upper'); - r = moment(m.format(format).toLocaleLowerCase(), format); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' lower'); - - r = moment(m.format(format), format, true); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' strict'); - r = moment(m.format(format).toLocaleUpperCase(), format, true); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' upper strict'); - r = moment(m.format(format).toLocaleLowerCase(), format, true); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' lower strict'); - } - - for (i = 0; i < 7; ++i) { - m = moment.utc([2015, 0, i + 1, 18]); - tester('dd'); - tester('ddd'); - tester('dddd'); - } - }); - - test('valid localeData', function (assert) { - assert.equal(moment().localeData().months().length, 12, 'months should return 12 months'); - assert.equal(moment().localeData().monthsShort().length, 12, 'monthsShort should return 12 months'); - assert.equal(moment().localeData().weekdays().length, 7, 'weekdays should return 7 days'); - assert.equal(moment().localeData().weekdaysShort().length, 7, 'weekdaysShort should return 7 days'); - assert.equal(moment().localeData().weekdaysMin().length, 7, 'monthsShort should return 7 days'); - }); -} - -function setupDeprecationHandler(test, moment$$1, scope) { - test._expectedDeprecations = null; - test._observedDeprecations = null; - test._oldSupress = moment$$1.suppressDeprecationWarnings; - moment$$1.suppressDeprecationWarnings = true; - test.expectedDeprecations = function () { - test._expectedDeprecations = arguments; - test._observedDeprecations = []; - }; - moment$$1.deprecationHandler = function (name, msg) { - var deprecationId = matchedDeprecation(name, msg, test._expectedDeprecations); - if (deprecationId === -1) { - throw new Error('Unexpected deprecation thrown name=' + - name + ' msg=' + msg); - } - test._observedDeprecations[deprecationId] = 1; - }; -} - -function teardownDeprecationHandler(test, moment$$1, scope) { - moment$$1.suppressDeprecationWarnings = test._oldSupress; - - if (test._expectedDeprecations != null) { - var missedDeprecations = []; - each(test._expectedDeprecations, function (deprecationPattern, id) { - if (test._observedDeprecations[id] !== 1) { - missedDeprecations.push(deprecationPattern); - } - }); - if (missedDeprecations.length !== 0) { - throw new Error('Expected deprecation warnings did not happen: ' + - missedDeprecations.join(' ')); - } - } -} - -function matchedDeprecation(name, msg, deprecations) { - if (deprecations == null) { - return -1; - } - for (var i = 0; i < deprecations.length; ++i) { - if (name != null && name === deprecations[i]) { - return i; - } - if (msg != null && msg.substring(0, deprecations[i].length) === deprecations[i]) { - return i; - } - } - return -1; -} - -/*global QUnit:false*/ - -var test = QUnit.test; - -var expect = QUnit.expect; - -function module$1 (name, lifecycle) { - QUnit.module(name, { - setup : function () { - moment.locale('en'); - moment.createFromInputFallback = function (config) { - throw new Error('input not handled by moment: ' + config._i); - }; - setupDeprecationHandler(test, moment, 'core'); - if (lifecycle && lifecycle.setup) { - lifecycle.setup(); - } - }, - teardown : function () { - teardownDeprecationHandler(test, moment, 'core'); - if (lifecycle && lifecycle.teardown) { - lifecycle.teardown(); - } - } - }); -} - -module$1('creation data'); - -test('valid date', function (assert) { - var dat = moment('1992-10-22'); - var orig = dat.creationData(); - - assert.equal(dat.isValid(), true, '1992-10-22 is valid'); - assert.equal(orig.input, '1992-10-22', 'original input is not correct.'); - assert.equal(orig.format, 'YYYY-MM-DD', 'original format is defined.'); - assert.equal(orig.locale._abbr, 'en', 'default locale is en'); - assert.equal(orig.isUTC, false, 'not a UTC date'); -}); - -test('valid date at fr locale', function (assert) { - var dat = moment('1992-10-22', 'YYYY-MM-DD', 'fr'); - var orig = dat.creationData(); - - assert.equal(orig.locale._abbr, 'fr', 'locale is fr'); -}); - -test('valid date with formats', function (assert) { - var dat = moment('29-06-1995', ['MM-DD-YYYY', 'DD-MM', 'DD-MM-YYYY']); - var orig = dat.creationData(); - - assert.equal(orig.format, 'DD-MM-YYYY', 'DD-MM-YYYY format is defined.'); -}); - -test('strict', function (assert) { - assert.ok(moment('2015-01-02', 'YYYY-MM-DD', true).creationData().strict, 'strict is true'); - assert.ok(!moment('2015-01-02', 'YYYY-MM-DD').creationData().strict, 'strict is true'); -}); - -}))); - - -;(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' - && typeof require === 'function' ? factory(require('../../moment')) : - typeof define === 'function' && define.amd ? define(['../../moment'], factory) : - factory(global.moment) -}(this, (function (moment) { 'use strict'; - -function each(array, callback) { - var i; - for (i = 0; i < array.length; i++) { - callback(array[i], i, array); - } -} - -function objectKeys(obj) { - if (Object.keys) { - return Object.keys(obj); - } else { - // IE8 - var res = [], i; - for (i in obj) { - if (obj.hasOwnProperty(i)) { - res.push(i); - } - } - return res; - } -} - -// Pick the first defined of two or three arguments. - -function defineCommonLocaleTests(locale, options) { - test('lenient day of month ordinal parsing', function (assert) { - var i, ordinalStr, testMoment; - for (i = 1; i <= 31; ++i) { - ordinalStr = moment([2014, 0, i]).format('YYYY MM Do'); - testMoment = moment(ordinalStr, 'YYYY MM Do'); - assert.equal(testMoment.year(), 2014, - 'lenient day of month ordinal parsing ' + i + ' year check'); - assert.equal(testMoment.month(), 0, - 'lenient day of month ordinal parsing ' + i + ' month check'); - assert.equal(testMoment.date(), i, - 'lenient day of month ordinal parsing ' + i + ' date check'); - } - }); - - test('lenient day of month ordinal parsing of number', function (assert) { - var i, testMoment; - for (i = 1; i <= 31; ++i) { - testMoment = moment('2014 01 ' + i, 'YYYY MM Do'); - assert.equal(testMoment.year(), 2014, - 'lenient day of month ordinal parsing of number ' + i + ' year check'); - assert.equal(testMoment.month(), 0, - 'lenient day of month ordinal parsing of number ' + i + ' month check'); - assert.equal(testMoment.date(), i, - 'lenient day of month ordinal parsing of number ' + i + ' date check'); - } - }); - - test('strict day of month ordinal parsing', function (assert) { - var i, ordinalStr, testMoment; - for (i = 1; i <= 31; ++i) { - ordinalStr = moment([2014, 0, i]).format('YYYY MM Do'); - testMoment = moment(ordinalStr, 'YYYY MM Do', true); - assert.ok(testMoment.isValid(), 'strict day of month ordinal parsing ' + i); - } - }); - - test('meridiem invariant', function (assert) { - var h, m, t1, t2; - for (h = 0; h < 24; ++h) { - for (m = 0; m < 60; m += 15) { - t1 = moment.utc([2000, 0, 1, h, m]); - t2 = moment.utc(t1.format('A h:mm'), 'A h:mm'); - assert.equal(t2.format('HH:mm'), t1.format('HH:mm'), - 'meridiem at ' + t1.format('HH:mm')); - } - } - }); - - test('date format correctness', function (assert) { - var data, tokens; - data = moment.localeData()._longDateFormat; - tokens = objectKeys(data); - each(tokens, function (srchToken) { - // Check each format string to make sure it does not contain any - // tokens that need to be expanded. - each(tokens, function (baseToken) { - // strip escaped sequences - var format = data[baseToken].replace(/(\[[^\]]*\])/g, ''); - assert.equal(false, !!~format.indexOf(srchToken), - 'contains ' + srchToken + ' in ' + baseToken); - }); - }); - }); - - test('month parsing correctness', function (assert) { - var i, m; - - if (locale === 'tr') { - // I can't fix it :( - expect(0); - return; - } - function tester(format) { - var r; - r = moment(m.format(format), format); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format); - r = moment(m.format(format).toLocaleUpperCase(), format); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' upper'); - r = moment(m.format(format).toLocaleLowerCase(), format); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' lower'); - - r = moment(m.format(format), format, true); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' strict'); - r = moment(m.format(format).toLocaleUpperCase(), format, true); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' upper strict'); - r = moment(m.format(format).toLocaleLowerCase(), format, true); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' lower strict'); - } - - for (i = 0; i < 12; ++i) { - m = moment([2015, i, 15, 18]); - tester('MMM'); - tester('MMM.'); - tester('MMMM'); - tester('MMMM.'); - } - }); - - test('weekday parsing correctness', function (assert) { - var i, m; - - if (locale === 'tr' || locale === 'az' || locale === 'ro') { - // tr, az: There is a lower-case letter (ı), that converted to - // upper then lower changes to i - // ro: there is the letter ț which behaves weird under IE8 - expect(0); - return; - } - function tester(format) { - var r, baseMsg = 'weekday ' + m.weekday() + ' fmt ' + format + ' ' + m.toISOString(); - r = moment(m.format(format), format); - assert.equal(r.weekday(), m.weekday(), baseMsg); - r = moment(m.format(format).toLocaleUpperCase(), format); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' upper'); - r = moment(m.format(format).toLocaleLowerCase(), format); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' lower'); - - r = moment(m.format(format), format, true); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' strict'); - r = moment(m.format(format).toLocaleUpperCase(), format, true); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' upper strict'); - r = moment(m.format(format).toLocaleLowerCase(), format, true); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' lower strict'); - } - - for (i = 0; i < 7; ++i) { - m = moment.utc([2015, 0, i + 1, 18]); - tester('dd'); - tester('ddd'); - tester('dddd'); - } - }); - - test('valid localeData', function (assert) { - assert.equal(moment().localeData().months().length, 12, 'months should return 12 months'); - assert.equal(moment().localeData().monthsShort().length, 12, 'monthsShort should return 12 months'); - assert.equal(moment().localeData().weekdays().length, 7, 'weekdays should return 7 days'); - assert.equal(moment().localeData().weekdaysShort().length, 7, 'weekdaysShort should return 7 days'); - assert.equal(moment().localeData().weekdaysMin().length, 7, 'monthsShort should return 7 days'); - }); -} - -function setupDeprecationHandler(test, moment$$1, scope) { - test._expectedDeprecations = null; - test._observedDeprecations = null; - test._oldSupress = moment$$1.suppressDeprecationWarnings; - moment$$1.suppressDeprecationWarnings = true; - test.expectedDeprecations = function () { - test._expectedDeprecations = arguments; - test._observedDeprecations = []; - }; - moment$$1.deprecationHandler = function (name, msg) { - var deprecationId = matchedDeprecation(name, msg, test._expectedDeprecations); - if (deprecationId === -1) { - throw new Error('Unexpected deprecation thrown name=' + - name + ' msg=' + msg); - } - test._observedDeprecations[deprecationId] = 1; - }; -} - -function teardownDeprecationHandler(test, moment$$1, scope) { - moment$$1.suppressDeprecationWarnings = test._oldSupress; - - if (test._expectedDeprecations != null) { - var missedDeprecations = []; - each(test._expectedDeprecations, function (deprecationPattern, id) { - if (test._observedDeprecations[id] !== 1) { - missedDeprecations.push(deprecationPattern); - } - }); - if (missedDeprecations.length !== 0) { - throw new Error('Expected deprecation warnings did not happen: ' + - missedDeprecations.join(' ')); - } - } -} - -function matchedDeprecation(name, msg, deprecations) { - if (deprecations == null) { - return -1; - } - for (var i = 0; i < deprecations.length; ++i) { - if (name != null && name === deprecations[i]) { - return i; - } - if (msg != null && msg.substring(0, deprecations[i].length) === deprecations[i]) { - return i; - } - } - return -1; -} - -/*global QUnit:false*/ - -var test = QUnit.test; - -var expect = QUnit.expect; - -function module$1 (name, lifecycle) { - QUnit.module(name, { - setup : function () { - moment.locale('en'); - moment.createFromInputFallback = function (config) { - throw new Error('input not handled by moment: ' + config._i); - }; - setupDeprecationHandler(test, moment, 'core'); - if (lifecycle && lifecycle.setup) { - lifecycle.setup(); - } - }, - teardown : function () { - teardownDeprecationHandler(test, moment, 'core'); - if (lifecycle && lifecycle.teardown) { - lifecycle.teardown(); - } - } - }); -} - -module$1('days in month'); - -test('days in month', function (assert) { - each([31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31], function (days, i) { - var firstDay = moment([2012, i]), - lastDay = moment([2012, i, days]); - assert.equal(firstDay.daysInMonth(), days, firstDay.format('L') + ' should have ' + days + ' days.'); - assert.equal(lastDay.daysInMonth(), days, lastDay.format('L') + ' should have ' + days + ' days.'); - }); -}); - -test('days in month leap years', function (assert) { - assert.equal(moment([2010, 1]).daysInMonth(), 28, 'Feb 2010 should have 28 days'); - assert.equal(moment([2100, 1]).daysInMonth(), 28, 'Feb 2100 should have 28 days'); - assert.equal(moment([2008, 1]).daysInMonth(), 29, 'Feb 2008 should have 29 days'); - assert.equal(moment([2000, 1]).daysInMonth(), 29, 'Feb 2000 should have 29 days'); -}); - -}))); - - -;(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' - && typeof require === 'function' ? factory(require('../../moment')) : - typeof define === 'function' && define.amd ? define(['../../moment'], factory) : - factory(global.moment) -}(this, (function (moment) { 'use strict'; - -function each(array, callback) { - var i; - for (i = 0; i < array.length; i++) { - callback(array[i], i, array); - } -} - -function objectKeys(obj) { - if (Object.keys) { - return Object.keys(obj); - } else { - // IE8 - var res = [], i; - for (i in obj) { - if (obj.hasOwnProperty(i)) { - res.push(i); - } - } - return res; - } -} - -// Pick the first defined of two or three arguments. - -function defineCommonLocaleTests(locale, options) { - test('lenient day of month ordinal parsing', function (assert) { - var i, ordinalStr, testMoment; - for (i = 1; i <= 31; ++i) { - ordinalStr = moment([2014, 0, i]).format('YYYY MM Do'); - testMoment = moment(ordinalStr, 'YYYY MM Do'); - assert.equal(testMoment.year(), 2014, - 'lenient day of month ordinal parsing ' + i + ' year check'); - assert.equal(testMoment.month(), 0, - 'lenient day of month ordinal parsing ' + i + ' month check'); - assert.equal(testMoment.date(), i, - 'lenient day of month ordinal parsing ' + i + ' date check'); - } - }); - - test('lenient day of month ordinal parsing of number', function (assert) { - var i, testMoment; - for (i = 1; i <= 31; ++i) { - testMoment = moment('2014 01 ' + i, 'YYYY MM Do'); - assert.equal(testMoment.year(), 2014, - 'lenient day of month ordinal parsing of number ' + i + ' year check'); - assert.equal(testMoment.month(), 0, - 'lenient day of month ordinal parsing of number ' + i + ' month check'); - assert.equal(testMoment.date(), i, - 'lenient day of month ordinal parsing of number ' + i + ' date check'); - } - }); - - test('strict day of month ordinal parsing', function (assert) { - var i, ordinalStr, testMoment; - for (i = 1; i <= 31; ++i) { - ordinalStr = moment([2014, 0, i]).format('YYYY MM Do'); - testMoment = moment(ordinalStr, 'YYYY MM Do', true); - assert.ok(testMoment.isValid(), 'strict day of month ordinal parsing ' + i); - } - }); - - test('meridiem invariant', function (assert) { - var h, m, t1, t2; - for (h = 0; h < 24; ++h) { - for (m = 0; m < 60; m += 15) { - t1 = moment.utc([2000, 0, 1, h, m]); - t2 = moment.utc(t1.format('A h:mm'), 'A h:mm'); - assert.equal(t2.format('HH:mm'), t1.format('HH:mm'), - 'meridiem at ' + t1.format('HH:mm')); - } - } - }); - - test('date format correctness', function (assert) { - var data, tokens; - data = moment.localeData()._longDateFormat; - tokens = objectKeys(data); - each(tokens, function (srchToken) { - // Check each format string to make sure it does not contain any - // tokens that need to be expanded. - each(tokens, function (baseToken) { - // strip escaped sequences - var format = data[baseToken].replace(/(\[[^\]]*\])/g, ''); - assert.equal(false, !!~format.indexOf(srchToken), - 'contains ' + srchToken + ' in ' + baseToken); - }); - }); - }); - - test('month parsing correctness', function (assert) { - var i, m; - - if (locale === 'tr') { - // I can't fix it :( - expect(0); - return; - } - function tester(format) { - var r; - r = moment(m.format(format), format); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format); - r = moment(m.format(format).toLocaleUpperCase(), format); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' upper'); - r = moment(m.format(format).toLocaleLowerCase(), format); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' lower'); - - r = moment(m.format(format), format, true); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' strict'); - r = moment(m.format(format).toLocaleUpperCase(), format, true); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' upper strict'); - r = moment(m.format(format).toLocaleLowerCase(), format, true); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' lower strict'); - } - - for (i = 0; i < 12; ++i) { - m = moment([2015, i, 15, 18]); - tester('MMM'); - tester('MMM.'); - tester('MMMM'); - tester('MMMM.'); - } - }); - - test('weekday parsing correctness', function (assert) { - var i, m; - - if (locale === 'tr' || locale === 'az' || locale === 'ro') { - // tr, az: There is a lower-case letter (ı), that converted to - // upper then lower changes to i - // ro: there is the letter ț which behaves weird under IE8 - expect(0); - return; - } - function tester(format) { - var r, baseMsg = 'weekday ' + m.weekday() + ' fmt ' + format + ' ' + m.toISOString(); - r = moment(m.format(format), format); - assert.equal(r.weekday(), m.weekday(), baseMsg); - r = moment(m.format(format).toLocaleUpperCase(), format); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' upper'); - r = moment(m.format(format).toLocaleLowerCase(), format); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' lower'); - - r = moment(m.format(format), format, true); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' strict'); - r = moment(m.format(format).toLocaleUpperCase(), format, true); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' upper strict'); - r = moment(m.format(format).toLocaleLowerCase(), format, true); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' lower strict'); - } - - for (i = 0; i < 7; ++i) { - m = moment.utc([2015, 0, i + 1, 18]); - tester('dd'); - tester('ddd'); - tester('dddd'); - } - }); - - test('valid localeData', function (assert) { - assert.equal(moment().localeData().months().length, 12, 'months should return 12 months'); - assert.equal(moment().localeData().monthsShort().length, 12, 'monthsShort should return 12 months'); - assert.equal(moment().localeData().weekdays().length, 7, 'weekdays should return 7 days'); - assert.equal(moment().localeData().weekdaysShort().length, 7, 'weekdaysShort should return 7 days'); - assert.equal(moment().localeData().weekdaysMin().length, 7, 'monthsShort should return 7 days'); - }); -} - -function setupDeprecationHandler(test, moment$$1, scope) { - test._expectedDeprecations = null; - test._observedDeprecations = null; - test._oldSupress = moment$$1.suppressDeprecationWarnings; - moment$$1.suppressDeprecationWarnings = true; - test.expectedDeprecations = function () { - test._expectedDeprecations = arguments; - test._observedDeprecations = []; - }; - moment$$1.deprecationHandler = function (name, msg) { - var deprecationId = matchedDeprecation(name, msg, test._expectedDeprecations); - if (deprecationId === -1) { - throw new Error('Unexpected deprecation thrown name=' + - name + ' msg=' + msg); - } - test._observedDeprecations[deprecationId] = 1; - }; -} - -function teardownDeprecationHandler(test, moment$$1, scope) { - moment$$1.suppressDeprecationWarnings = test._oldSupress; - - if (test._expectedDeprecations != null) { - var missedDeprecations = []; - each(test._expectedDeprecations, function (deprecationPattern, id) { - if (test._observedDeprecations[id] !== 1) { - missedDeprecations.push(deprecationPattern); - } - }); - if (missedDeprecations.length !== 0) { - throw new Error('Expected deprecation warnings did not happen: ' + - missedDeprecations.join(' ')); - } - } -} - -function matchedDeprecation(name, msg, deprecations) { - if (deprecations == null) { - return -1; - } - for (var i = 0; i < deprecations.length; ++i) { - if (name != null && name === deprecations[i]) { - return i; - } - if (msg != null && msg.substring(0, deprecations[i].length) === deprecations[i]) { - return i; - } - } - return -1; -} - -/*global QUnit:false*/ - -var test = QUnit.test; - -var expect = QUnit.expect; - -function module$1 (name, lifecycle) { - QUnit.module(name, { - setup : function () { - moment.locale('en'); - moment.createFromInputFallback = function (config) { - throw new Error('input not handled by moment: ' + config._i); - }; - setupDeprecationHandler(test, moment, 'core'); - if (lifecycle && lifecycle.setup) { - lifecycle.setup(); - } - }, - teardown : function () { - teardownDeprecationHandler(test, moment, 'core'); - if (lifecycle && lifecycle.teardown) { - lifecycle.teardown(); - } - } - }); -} - -module$1('days in year'); - -// https://github.com/moment/moment/issues/3717 -test('YYYYDDD should not parse DDD=000', function (assert) { - assert.equal(moment(7000000, moment.ISO_8601, true).isValid(), false); - assert.equal(moment('7000000', moment.ISO_8601, true).isValid(), false); - assert.equal(moment(7000000, moment.ISO_8601, false).isValid(), false); -}); - -}))); - - -;(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' - && typeof require === 'function' ? factory(require('../../moment')) : - typeof define === 'function' && define.amd ? define(['../../moment'], factory) : - factory(global.moment) -}(this, (function (moment) { 'use strict'; - -function each(array, callback) { - var i; - for (i = 0; i < array.length; i++) { - callback(array[i], i, array); - } -} - -function objectKeys(obj) { - if (Object.keys) { - return Object.keys(obj); - } else { - // IE8 - var res = [], i; - for (i in obj) { - if (obj.hasOwnProperty(i)) { - res.push(i); - } - } - return res; - } -} - -// Pick the first defined of two or three arguments. - -function defineCommonLocaleTests(locale, options) { - test('lenient day of month ordinal parsing', function (assert) { - var i, ordinalStr, testMoment; - for (i = 1; i <= 31; ++i) { - ordinalStr = moment([2014, 0, i]).format('YYYY MM Do'); - testMoment = moment(ordinalStr, 'YYYY MM Do'); - assert.equal(testMoment.year(), 2014, - 'lenient day of month ordinal parsing ' + i + ' year check'); - assert.equal(testMoment.month(), 0, - 'lenient day of month ordinal parsing ' + i + ' month check'); - assert.equal(testMoment.date(), i, - 'lenient day of month ordinal parsing ' + i + ' date check'); - } - }); - - test('lenient day of month ordinal parsing of number', function (assert) { - var i, testMoment; - for (i = 1; i <= 31; ++i) { - testMoment = moment('2014 01 ' + i, 'YYYY MM Do'); - assert.equal(testMoment.year(), 2014, - 'lenient day of month ordinal parsing of number ' + i + ' year check'); - assert.equal(testMoment.month(), 0, - 'lenient day of month ordinal parsing of number ' + i + ' month check'); - assert.equal(testMoment.date(), i, - 'lenient day of month ordinal parsing of number ' + i + ' date check'); - } - }); - - test('strict day of month ordinal parsing', function (assert) { - var i, ordinalStr, testMoment; - for (i = 1; i <= 31; ++i) { - ordinalStr = moment([2014, 0, i]).format('YYYY MM Do'); - testMoment = moment(ordinalStr, 'YYYY MM Do', true); - assert.ok(testMoment.isValid(), 'strict day of month ordinal parsing ' + i); - } - }); - - test('meridiem invariant', function (assert) { - var h, m, t1, t2; - for (h = 0; h < 24; ++h) { - for (m = 0; m < 60; m += 15) { - t1 = moment.utc([2000, 0, 1, h, m]); - t2 = moment.utc(t1.format('A h:mm'), 'A h:mm'); - assert.equal(t2.format('HH:mm'), t1.format('HH:mm'), - 'meridiem at ' + t1.format('HH:mm')); - } - } - }); - - test('date format correctness', function (assert) { - var data, tokens; - data = moment.localeData()._longDateFormat; - tokens = objectKeys(data); - each(tokens, function (srchToken) { - // Check each format string to make sure it does not contain any - // tokens that need to be expanded. - each(tokens, function (baseToken) { - // strip escaped sequences - var format = data[baseToken].replace(/(\[[^\]]*\])/g, ''); - assert.equal(false, !!~format.indexOf(srchToken), - 'contains ' + srchToken + ' in ' + baseToken); - }); - }); - }); - - test('month parsing correctness', function (assert) { - var i, m; - - if (locale === 'tr') { - // I can't fix it :( - expect(0); - return; - } - function tester(format) { - var r; - r = moment(m.format(format), format); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format); - r = moment(m.format(format).toLocaleUpperCase(), format); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' upper'); - r = moment(m.format(format).toLocaleLowerCase(), format); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' lower'); - - r = moment(m.format(format), format, true); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' strict'); - r = moment(m.format(format).toLocaleUpperCase(), format, true); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' upper strict'); - r = moment(m.format(format).toLocaleLowerCase(), format, true); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' lower strict'); - } - - for (i = 0; i < 12; ++i) { - m = moment([2015, i, 15, 18]); - tester('MMM'); - tester('MMM.'); - tester('MMMM'); - tester('MMMM.'); - } - }); - - test('weekday parsing correctness', function (assert) { - var i, m; - - if (locale === 'tr' || locale === 'az' || locale === 'ro') { - // tr, az: There is a lower-case letter (ı), that converted to - // upper then lower changes to i - // ro: there is the letter ț which behaves weird under IE8 - expect(0); - return; - } - function tester(format) { - var r, baseMsg = 'weekday ' + m.weekday() + ' fmt ' + format + ' ' + m.toISOString(); - r = moment(m.format(format), format); - assert.equal(r.weekday(), m.weekday(), baseMsg); - r = moment(m.format(format).toLocaleUpperCase(), format); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' upper'); - r = moment(m.format(format).toLocaleLowerCase(), format); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' lower'); - - r = moment(m.format(format), format, true); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' strict'); - r = moment(m.format(format).toLocaleUpperCase(), format, true); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' upper strict'); - r = moment(m.format(format).toLocaleLowerCase(), format, true); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' lower strict'); - } - - for (i = 0; i < 7; ++i) { - m = moment.utc([2015, 0, i + 1, 18]); - tester('dd'); - tester('ddd'); - tester('dddd'); - } - }); - - test('valid localeData', function (assert) { - assert.equal(moment().localeData().months().length, 12, 'months should return 12 months'); - assert.equal(moment().localeData().monthsShort().length, 12, 'monthsShort should return 12 months'); - assert.equal(moment().localeData().weekdays().length, 7, 'weekdays should return 7 days'); - assert.equal(moment().localeData().weekdaysShort().length, 7, 'weekdaysShort should return 7 days'); - assert.equal(moment().localeData().weekdaysMin().length, 7, 'monthsShort should return 7 days'); - }); -} - -function setupDeprecationHandler(test, moment$$1, scope) { - test._expectedDeprecations = null; - test._observedDeprecations = null; - test._oldSupress = moment$$1.suppressDeprecationWarnings; - moment$$1.suppressDeprecationWarnings = true; - test.expectedDeprecations = function () { - test._expectedDeprecations = arguments; - test._observedDeprecations = []; - }; - moment$$1.deprecationHandler = function (name, msg) { - var deprecationId = matchedDeprecation(name, msg, test._expectedDeprecations); - if (deprecationId === -1) { - throw new Error('Unexpected deprecation thrown name=' + - name + ' msg=' + msg); - } - test._observedDeprecations[deprecationId] = 1; - }; -} - -function teardownDeprecationHandler(test, moment$$1, scope) { - moment$$1.suppressDeprecationWarnings = test._oldSupress; - - if (test._expectedDeprecations != null) { - var missedDeprecations = []; - each(test._expectedDeprecations, function (deprecationPattern, id) { - if (test._observedDeprecations[id] !== 1) { - missedDeprecations.push(deprecationPattern); - } - }); - if (missedDeprecations.length !== 0) { - throw new Error('Expected deprecation warnings did not happen: ' + - missedDeprecations.join(' ')); - } - } -} - -function matchedDeprecation(name, msg, deprecations) { - if (deprecations == null) { - return -1; - } - for (var i = 0; i < deprecations.length; ++i) { - if (name != null && name === deprecations[i]) { - return i; - } - if (msg != null && msg.substring(0, deprecations[i].length) === deprecations[i]) { - return i; - } - } - return -1; -} - -/*global QUnit:false*/ - -var test = QUnit.test; - -var expect = QUnit.expect; - -function module$1 (name, lifecycle) { - QUnit.module(name, { - setup : function () { - moment.locale('en'); - moment.createFromInputFallback = function (config) { - throw new Error('input not handled by moment: ' + config._i); - }; - setupDeprecationHandler(test, moment, 'core'); - if (lifecycle && lifecycle.setup) { - lifecycle.setup(); - } - }, - teardown : function () { - teardownDeprecationHandler(test, moment, 'core'); - if (lifecycle && lifecycle.teardown) { - lifecycle.teardown(); - } - } - }); -} - -function hasOwnProp(a, b) { - return Object.prototype.hasOwnProperty.call(a, b); -} - -function extend(a, b) { - for (var i in b) { - if (hasOwnProp(b, i)) { - a[i] = b[i]; - } - } - - if (hasOwnProp(b, 'toString')) { - a.toString = b.toString; - } - - if (hasOwnProp(b, 'valueOf')) { - a.valueOf = b.valueOf; - } - - return a; -} - -var hookCallback; - -function hooks () { - return hookCallback.apply(null, arguments); -} - -function warn(msg) { - if (hooks.suppressDeprecationWarnings === false && - (typeof console !== 'undefined') && console.warn) { - console.warn('Deprecation warning: ' + msg); - } -} - -function deprecate(msg, fn) { - var firstTime = true; - - return extend(function () { - if (hooks.deprecationHandler != null) { - hooks.deprecationHandler(null, msg); - } - if (firstTime) { - var args = []; - var arg; - for (var i = 0; i < arguments.length; i++) { - arg = ''; - if (typeof arguments[i] === 'object') { - arg += '\n[' + i + '] '; - for (var key in arguments[0]) { - arg += key + ': ' + arguments[0][key] + ', '; - } - arg = arg.slice(0, -2); // Remove trailing comma and space - } else { - arg = arguments[i]; - } - args.push(arg); - } - warn(msg + '\nArguments: ' + Array.prototype.slice.call(args).join('') + '\n' + (new Error()).stack); - firstTime = false; - } - return fn.apply(this, arguments); - }, fn); -} - -var deprecations = {}; - - - -hooks.suppressDeprecationWarnings = false; -hooks.deprecationHandler = null; - -module$1('deprecate'); - -test('deprecate', function (assert) { - // NOTE: hooks inside deprecate.js and moment are different, so this is can - // not be test.expectedDeprecations(...) - var fn = function () {}; - var deprecatedFn = deprecate('testing deprecation', fn); - deprecatedFn(); - - expect(0); -}); - -}))); - - -;(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' - && typeof require === 'function' ? factory(require('../../moment')) : - typeof define === 'function' && define.amd ? define(['../../moment'], factory) : - factory(global.moment) -}(this, (function (moment) { 'use strict'; - -function each(array, callback) { - var i; - for (i = 0; i < array.length; i++) { - callback(array[i], i, array); - } -} - -function objectKeys(obj) { - if (Object.keys) { - return Object.keys(obj); - } else { - // IE8 - var res = [], i; - for (i in obj) { - if (obj.hasOwnProperty(i)) { - res.push(i); - } - } - return res; - } -} - -// Pick the first defined of two or three arguments. - -function defineCommonLocaleTests(locale, options) { - test('lenient day of month ordinal parsing', function (assert) { - var i, ordinalStr, testMoment; - for (i = 1; i <= 31; ++i) { - ordinalStr = moment([2014, 0, i]).format('YYYY MM Do'); - testMoment = moment(ordinalStr, 'YYYY MM Do'); - assert.equal(testMoment.year(), 2014, - 'lenient day of month ordinal parsing ' + i + ' year check'); - assert.equal(testMoment.month(), 0, - 'lenient day of month ordinal parsing ' + i + ' month check'); - assert.equal(testMoment.date(), i, - 'lenient day of month ordinal parsing ' + i + ' date check'); - } - }); - - test('lenient day of month ordinal parsing of number', function (assert) { - var i, testMoment; - for (i = 1; i <= 31; ++i) { - testMoment = moment('2014 01 ' + i, 'YYYY MM Do'); - assert.equal(testMoment.year(), 2014, - 'lenient day of month ordinal parsing of number ' + i + ' year check'); - assert.equal(testMoment.month(), 0, - 'lenient day of month ordinal parsing of number ' + i + ' month check'); - assert.equal(testMoment.date(), i, - 'lenient day of month ordinal parsing of number ' + i + ' date check'); - } - }); - - test('strict day of month ordinal parsing', function (assert) { - var i, ordinalStr, testMoment; - for (i = 1; i <= 31; ++i) { - ordinalStr = moment([2014, 0, i]).format('YYYY MM Do'); - testMoment = moment(ordinalStr, 'YYYY MM Do', true); - assert.ok(testMoment.isValid(), 'strict day of month ordinal parsing ' + i); - } - }); - - test('meridiem invariant', function (assert) { - var h, m, t1, t2; - for (h = 0; h < 24; ++h) { - for (m = 0; m < 60; m += 15) { - t1 = moment.utc([2000, 0, 1, h, m]); - t2 = moment.utc(t1.format('A h:mm'), 'A h:mm'); - assert.equal(t2.format('HH:mm'), t1.format('HH:mm'), - 'meridiem at ' + t1.format('HH:mm')); - } - } - }); - - test('date format correctness', function (assert) { - var data, tokens; - data = moment.localeData()._longDateFormat; - tokens = objectKeys(data); - each(tokens, function (srchToken) { - // Check each format string to make sure it does not contain any - // tokens that need to be expanded. - each(tokens, function (baseToken) { - // strip escaped sequences - var format = data[baseToken].replace(/(\[[^\]]*\])/g, ''); - assert.equal(false, !!~format.indexOf(srchToken), - 'contains ' + srchToken + ' in ' + baseToken); - }); - }); - }); - - test('month parsing correctness', function (assert) { - var i, m; - - if (locale === 'tr') { - // I can't fix it :( - expect(0); - return; - } - function tester(format) { - var r; - r = moment(m.format(format), format); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format); - r = moment(m.format(format).toLocaleUpperCase(), format); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' upper'); - r = moment(m.format(format).toLocaleLowerCase(), format); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' lower'); - - r = moment(m.format(format), format, true); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' strict'); - r = moment(m.format(format).toLocaleUpperCase(), format, true); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' upper strict'); - r = moment(m.format(format).toLocaleLowerCase(), format, true); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' lower strict'); - } - - for (i = 0; i < 12; ++i) { - m = moment([2015, i, 15, 18]); - tester('MMM'); - tester('MMM.'); - tester('MMMM'); - tester('MMMM.'); - } - }); - - test('weekday parsing correctness', function (assert) { - var i, m; - - if (locale === 'tr' || locale === 'az' || locale === 'ro') { - // tr, az: There is a lower-case letter (ı), that converted to - // upper then lower changes to i - // ro: there is the letter ț which behaves weird under IE8 - expect(0); - return; - } - function tester(format) { - var r, baseMsg = 'weekday ' + m.weekday() + ' fmt ' + format + ' ' + m.toISOString(); - r = moment(m.format(format), format); - assert.equal(r.weekday(), m.weekday(), baseMsg); - r = moment(m.format(format).toLocaleUpperCase(), format); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' upper'); - r = moment(m.format(format).toLocaleLowerCase(), format); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' lower'); - - r = moment(m.format(format), format, true); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' strict'); - r = moment(m.format(format).toLocaleUpperCase(), format, true); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' upper strict'); - r = moment(m.format(format).toLocaleLowerCase(), format, true); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' lower strict'); - } - - for (i = 0; i < 7; ++i) { - m = moment.utc([2015, 0, i + 1, 18]); - tester('dd'); - tester('ddd'); - tester('dddd'); - } - }); - - test('valid localeData', function (assert) { - assert.equal(moment().localeData().months().length, 12, 'months should return 12 months'); - assert.equal(moment().localeData().monthsShort().length, 12, 'monthsShort should return 12 months'); - assert.equal(moment().localeData().weekdays().length, 7, 'weekdays should return 7 days'); - assert.equal(moment().localeData().weekdaysShort().length, 7, 'weekdaysShort should return 7 days'); - assert.equal(moment().localeData().weekdaysMin().length, 7, 'monthsShort should return 7 days'); - }); -} - -function setupDeprecationHandler(test, moment$$1, scope) { - test._expectedDeprecations = null; - test._observedDeprecations = null; - test._oldSupress = moment$$1.suppressDeprecationWarnings; - moment$$1.suppressDeprecationWarnings = true; - test.expectedDeprecations = function () { - test._expectedDeprecations = arguments; - test._observedDeprecations = []; - }; - moment$$1.deprecationHandler = function (name, msg) { - var deprecationId = matchedDeprecation(name, msg, test._expectedDeprecations); - if (deprecationId === -1) { - throw new Error('Unexpected deprecation thrown name=' + - name + ' msg=' + msg); - } - test._observedDeprecations[deprecationId] = 1; - }; -} - -function teardownDeprecationHandler(test, moment$$1, scope) { - moment$$1.suppressDeprecationWarnings = test._oldSupress; - - if (test._expectedDeprecations != null) { - var missedDeprecations = []; - each(test._expectedDeprecations, function (deprecationPattern, id) { - if (test._observedDeprecations[id] !== 1) { - missedDeprecations.push(deprecationPattern); - } - }); - if (missedDeprecations.length !== 0) { - throw new Error('Expected deprecation warnings did not happen: ' + - missedDeprecations.join(' ')); - } - } -} - -function matchedDeprecation(name, msg, deprecations) { - if (deprecations == null) { - return -1; - } - for (var i = 0; i < deprecations.length; ++i) { - if (name != null && name === deprecations[i]) { - return i; - } - if (msg != null && msg.substring(0, deprecations[i].length) === deprecations[i]) { - return i; - } - } - return -1; -} - -/*global QUnit:false*/ - -var test = QUnit.test; - -var expect = QUnit.expect; - -function module$1 (name, lifecycle) { - QUnit.module(name, { - setup : function () { - moment.locale('en'); - moment.createFromInputFallback = function (config) { - throw new Error('input not handled by moment: ' + config._i); - }; - setupDeprecationHandler(test, moment, 'core'); - if (lifecycle && lifecycle.setup) { - lifecycle.setup(); - } - }, - teardown : function () { - teardownDeprecationHandler(test, moment, 'core'); - if (lifecycle && lifecycle.teardown) { - lifecycle.teardown(); - } - } - }); -} - -function equal(assert, a, b, message) { - assert.ok(Math.abs(a - b) < 0.00000001, '(' + a + ' === ' + b + ') ' + message); -} - -function dstForYear(year) { - var start = moment([year]), - end = moment([year + 1]), - current = start.clone(), - last; - - while (current < end) { - last = current.clone(); - current.add(24, 'hour'); - if (last.utcOffset() !== current.utcOffset()) { - end = current.clone(); - current = last.clone(); - break; - } - } - - while (current < end) { - last = current.clone(); - current.add(1, 'hour'); - if (last.utcOffset() !== current.utcOffset()) { - return { - moment : last, - diff : -(current.utcOffset() - last.utcOffset()) / 60 - }; - } - } -} - -module$1('diff'); - -test('diff', function (assert) { - assert.equal(moment(1000).diff(0), 1000, '1 second - 0 = 1000'); - assert.equal(moment(1000).diff(500), 500, '1 second - 0.5 seconds = 500'); - assert.equal(moment(0).diff(1000), -1000, '0 - 1 second = -1000'); - assert.equal(moment(new Date(1000)).diff(1000), 0, '1 second - 1 second = 0'); - var oneHourDate = new Date(2015, 5, 21), - nowDate = new Date(+oneHourDate); - oneHourDate.setHours(oneHourDate.getHours() + 1); - assert.equal(moment(oneHourDate).diff(nowDate), 60 * 60 * 1000, '1 hour from now = 3600000'); -}); - -test('diff key after', function (assert) { - assert.equal(moment([2010]).diff([2011], 'years'), -1, 'year diff'); - assert.equal(moment([2010]).diff([2010, 2], 'months'), -2, 'month diff'); - assert.equal(moment([2010]).diff([2010, 0, 7], 'weeks'), 0, 'week diff'); - assert.equal(moment([2010]).diff([2010, 0, 8], 'weeks'), -1, 'week diff'); - assert.equal(moment([2010]).diff([2010, 0, 21], 'weeks'), -2, 'week diff'); - assert.equal(moment([2010]).diff([2010, 0, 22], 'weeks'), -3, 'week diff'); - assert.equal(moment([2010]).diff([2010, 0, 4], 'days'), -3, 'day diff'); - assert.equal(moment([2010]).diff([2010, 0, 1, 4], 'hours'), -4, 'hour diff'); - assert.equal(moment([2010]).diff([2010, 0, 1, 0, 5], 'minutes'), -5, 'minute diff'); - assert.equal(moment([2010]).diff([2010, 0, 1, 0, 0, 6], 'seconds'), -6, 'second diff'); -}); - -test('diff key before', function (assert) { - assert.equal(moment([2011]).diff([2010], 'years'), 1, 'year diff'); - assert.equal(moment([2010, 2]).diff([2010], 'months'), 2, 'month diff'); - assert.equal(moment([2010, 0, 4]).diff([2010], 'days'), 3, 'day diff'); - assert.equal(moment([2010, 0, 7]).diff([2010], 'weeks'), 0, 'week diff'); - assert.equal(moment([2010, 0, 8]).diff([2010], 'weeks'), 1, 'week diff'); - assert.equal(moment([2010, 0, 21]).diff([2010], 'weeks'), 2, 'week diff'); - assert.equal(moment([2010, 0, 22]).diff([2010], 'weeks'), 3, 'week diff'); - assert.equal(moment([2010, 0, 1, 4]).diff([2010], 'hours'), 4, 'hour diff'); - assert.equal(moment([2010, 0, 1, 0, 5]).diff([2010], 'minutes'), 5, 'minute diff'); - assert.equal(moment([2010, 0, 1, 0, 0, 6]).diff([2010], 'seconds'), 6, 'second diff'); -}); - -test('diff key before singular', function (assert) { - assert.equal(moment([2011]).diff([2010], 'year'), 1, 'year diff singular'); - assert.equal(moment([2010, 2]).diff([2010], 'month'), 2, 'month diff singular'); - assert.equal(moment([2010, 0, 4]).diff([2010], 'day'), 3, 'day diff singular'); - assert.equal(moment([2010, 0, 7]).diff([2010], 'week'), 0, 'week diff singular'); - assert.equal(moment([2010, 0, 8]).diff([2010], 'week'), 1, 'week diff singular'); - assert.equal(moment([2010, 0, 21]).diff([2010], 'week'), 2, 'week diff singular'); - assert.equal(moment([2010, 0, 22]).diff([2010], 'week'), 3, 'week diff singular'); - assert.equal(moment([2010, 0, 1, 4]).diff([2010], 'hour'), 4, 'hour diff singular'); - assert.equal(moment([2010, 0, 1, 0, 5]).diff([2010], 'minute'), 5, 'minute diff singular'); - assert.equal(moment([2010, 0, 1, 0, 0, 6]).diff([2010], 'second'), 6, 'second diff singular'); -}); - -test('diff key before abbreviated', function (assert) { - assert.equal(moment([2011]).diff([2010], 'y'), 1, 'year diff abbreviated'); - assert.equal(moment([2010, 2]).diff([2010], 'M'), 2, 'month diff abbreviated'); - assert.equal(moment([2010, 0, 4]).diff([2010], 'd'), 3, 'day diff abbreviated'); - assert.equal(moment([2010, 0, 7]).diff([2010], 'w'), 0, 'week diff abbreviated'); - assert.equal(moment([2010, 0, 8]).diff([2010], 'w'), 1, 'week diff abbreviated'); - assert.equal(moment([2010, 0, 21]).diff([2010], 'w'), 2, 'week diff abbreviated'); - assert.equal(moment([2010, 0, 22]).diff([2010], 'w'), 3, 'week diff abbreviated'); - assert.equal(moment([2010, 0, 1, 4]).diff([2010], 'h'), 4, 'hour diff abbreviated'); - assert.equal(moment([2010, 0, 1, 0, 5]).diff([2010], 'm'), 5, 'minute diff abbreviated'); - assert.equal(moment([2010, 0, 1, 0, 0, 6]).diff([2010], 's'), 6, 'second diff abbreviated'); -}); - -test('diff month', function (assert) { - assert.equal(moment([2011, 0, 31]).diff([2011, 2, 1], 'months'), -1, 'month diff'); -}); - -test('diff across DST', function (assert) { - var dst = dstForYear(2012), a, b, daysInMonth; - if (!dst) { - assert.equal(42, 42, 'at least one assertion'); - return; - } - - a = dst.moment; - b = a.clone().utc().add(12, 'hours').local(); - daysInMonth = (a.daysInMonth() + b.daysInMonth()) / 2; - assert.equal(b.diff(a, 'milliseconds', true), 12 * 60 * 60 * 1000, - 'ms diff across DST'); - assert.equal(b.diff(a, 'seconds', true), 12 * 60 * 60, - 'second diff across DST'); - assert.equal(b.diff(a, 'minutes', true), 12 * 60, - 'minute diff across DST'); - assert.equal(b.diff(a, 'hours', true), 12, - 'hour diff across DST'); - assert.equal(b.diff(a, 'days', true), (12 - dst.diff) / 24, - 'day diff across DST'); - equal(assert, b.diff(a, 'weeks', true), (12 - dst.diff) / 24 / 7, - 'week diff across DST'); - assert.ok(0.95 / (2 * 31) < b.diff(a, 'months', true), - 'month diff across DST, lower bound'); - assert.ok(b.diff(a, 'month', true) < 1.05 / (2 * 28), - 'month diff across DST, upper bound'); - assert.ok(0.95 / (2 * 31 * 12) < b.diff(a, 'years', true), - 'year diff across DST, lower bound'); - assert.ok(b.diff(a, 'year', true) < 1.05 / (2 * 28 * 12), - 'year diff across DST, upper bound'); - - a = dst.moment; - b = a.clone().utc().add(12 + dst.diff, 'hours').local(); - daysInMonth = (a.daysInMonth() + b.daysInMonth()) / 2; - - assert.equal(b.diff(a, 'milliseconds', true), - (12 + dst.diff) * 60 * 60 * 1000, - 'ms diff across DST'); - assert.equal(b.diff(a, 'seconds', true), (12 + dst.diff) * 60 * 60, - 'second diff across DST'); - assert.equal(b.diff(a, 'minutes', true), (12 + dst.diff) * 60, - 'minute diff across DST'); - assert.equal(b.diff(a, 'hours', true), (12 + dst.diff), - 'hour diff across DST'); - assert.equal(b.diff(a, 'days', true), 12 / 24, 'day diff across DST'); - equal(assert, b.diff(a, 'weeks', true), 12 / 24 / 7, - 'week diff across DST'); - assert.ok(0.95 / (2 * 31) < b.diff(a, 'months', true), - 'month diff across DST, lower bound'); - assert.ok(b.diff(a, 'month', true) < 1.05 / (2 * 28), - 'month diff across DST, upper bound'); - assert.ok(0.95 / (2 * 31 * 12) < b.diff(a, 'years', true), - 'year diff across DST, lower bound'); - assert.ok(b.diff(a, 'year', true) < 1.05 / (2 * 28 * 12), - 'year diff across DST, upper bound'); -}); - -test('diff overflow', function (assert) { - assert.equal(moment([2011]).diff([2010], 'months'), 12, 'month diff'); - assert.equal(moment([2010, 0, 2]).diff([2010], 'hours'), 24, 'hour diff'); - assert.equal(moment([2010, 0, 1, 2]).diff([2010], 'minutes'), 120, 'minute diff'); - assert.equal(moment([2010, 0, 1, 0, 4]).diff([2010], 'seconds'), 240, 'second diff'); -}); - -test('diff between utc and local', function (assert) { - if (moment([2012]).utcOffset() === moment([2011]).utcOffset()) { - // Russia's utc offset on 1st of Jan 2012 vs 2011 is different - assert.equal(moment([2012]).utc().diff([2011], 'years'), 1, 'year diff'); - } - assert.equal(moment([2010, 2, 2]).utc().diff([2010, 0, 2], 'months'), 2, 'month diff'); - assert.equal(moment([2010, 0, 4]).utc().diff([2010], 'days'), 3, 'day diff'); - assert.equal(moment([2010, 0, 22]).utc().diff([2010], 'weeks'), 3, 'week diff'); - assert.equal(moment([2010, 0, 1, 4]).utc().diff([2010], 'hours'), 4, 'hour diff'); - assert.equal(moment([2010, 0, 1, 0, 5]).utc().diff([2010], 'minutes'), 5, 'minute diff'); - assert.equal(moment([2010, 0, 1, 0, 0, 6]).utc().diff([2010], 'seconds'), 6, 'second diff'); -}); - -test('diff floored', function (assert) { - assert.equal(moment([2010, 0, 1, 23]).diff([2010], 'day'), 0, '23 hours = 0 days'); - assert.equal(moment([2010, 0, 1, 23, 59]).diff([2010], 'day'), 0, '23:59 hours = 0 days'); - assert.equal(moment([2010, 0, 1, 24]).diff([2010], 'day'), 1, '24 hours = 1 day'); - assert.equal(moment([2010, 0, 2]).diff([2011, 0, 1], 'year'), 0, 'year rounded down'); - assert.equal(moment([2011, 0, 1]).diff([2010, 0, 2], 'year'), 0, 'year rounded down'); - assert.equal(moment([2010, 0, 2]).diff([2011, 0, 2], 'year'), -1, 'year rounded down'); - assert.equal(moment([2011, 0, 2]).diff([2010, 0, 2], 'year'), 1, 'year rounded down'); -}); - -test('year diffs include dates', function (assert) { - assert.ok(moment([2012, 1, 19]).diff(moment([2002, 1, 20]), 'years', true) < 10, 'year diff should include date of month'); -}); - -test('month diffs', function (assert) { - // due to floating point math errors, these tests just need to be accurate within 0.00000001 - assert.equal(moment([2012, 0, 1]).diff([2012, 1, 1], 'months', true), -1, 'Jan 1 to Feb 1 should be 1 month'); - equal(assert, moment([2012, 0, 1]).diff([2012, 0, 1, 12], 'months', true), -0.5 / 31, 'Jan 1 to Jan 1 noon should be 0.5 / 31 months'); - assert.equal(moment([2012, 0, 15]).diff([2012, 1, 15], 'months', true), -1, 'Jan 15 to Feb 15 should be 1 month'); - assert.equal(moment([2012, 0, 28]).diff([2012, 1, 28], 'months', true), -1, 'Jan 28 to Feb 28 should be 1 month'); - assert.ok(moment([2012, 0, 31]).diff([2012, 1, 29], 'months', true), -1, 'Jan 31 to Feb 29 should be 1 month'); - assert.ok(-1 > moment([2012, 0, 31]).diff([2012, 2, 1], 'months', true), 'Jan 31 to Mar 1 should be more than 1 month'); - assert.ok(-30 / 28 < moment([2012, 0, 31]).diff([2012, 2, 1], 'months', true), 'Jan 31 to Mar 1 should be less than 1 month and 1 day'); - equal(assert, moment([2012, 0, 1]).diff([2012, 0, 31], 'months', true), -(30 / 31), 'Jan 1 to Jan 31 should be 30 / 31 months'); - assert.ok(0 < moment('2014-02-01').diff(moment('2014-01-31'), 'months', true), 'jan-31 to feb-1 diff is positive'); -}); - -test('exact month diffs', function (assert) { - // generate all pairs of months and compute month diff, with fixed day - // of month = 15. - - var m1, m2; - for (m1 = 0; m1 < 12; ++m1) { - for (m2 = m1; m2 < 12; ++m2) { - assert.equal(moment([2013, m2, 15]).diff(moment([2013, m1, 15]), 'months', true), m2 - m1, - 'month diff from 2013-' + m1 + '-15 to 2013-' + m2 + '-15'); - } - } -}); - -test('year diffs', function (assert) { - // due to floating point math errors, these tests just need to be accurate within 0.00000001 - equal(assert, moment([2012, 0, 1]).diff([2013, 0, 1], 'years', true), -1, 'Jan 1 2012 to Jan 1 2013 should be 1 year'); - equal(assert, moment([2012, 1, 28]).diff([2013, 1, 28], 'years', true), -1, 'Feb 28 2012 to Feb 28 2013 should be 1 year'); - equal(assert, moment([2012, 2, 1]).diff([2013, 2, 1], 'years', true), -1, 'Mar 1 2012 to Mar 1 2013 should be 1 year'); - equal(assert, moment([2012, 11, 1]).diff([2013, 11, 1], 'years', true), -1, 'Dec 1 2012 to Dec 1 2013 should be 1 year'); - equal(assert, moment([2012, 11, 31]).diff([2013, 11, 31], 'years', true), -1, 'Dec 31 2012 to Dec 31 2013 should be 1 year'); - equal(assert, moment([2012, 0, 1]).diff([2013, 6, 1], 'years', true), -1.5, 'Jan 1 2012 to Jul 1 2013 should be 1.5 years'); - equal(assert, moment([2012, 0, 31]).diff([2013, 6, 31], 'years', true), -1.5, 'Jan 31 2012 to Jul 31 2013 should be 1.5 years'); - equal(assert, moment([2012, 0, 1]).diff([2013, 0, 1, 12], 'years', true), -1 - (0.5 / 31) / 12, 'Jan 1 2012 to Jan 1 2013 noon should be 1+(0.5 / 31) / 12 years'); - equal(assert, moment([2012, 0, 1]).diff([2013, 6, 1, 12], 'years', true), -1.5 - (0.5 / 31) / 12, 'Jan 1 2012 to Jul 1 2013 noon should be 1.5+(0.5 / 31) / 12 years'); - equal(assert, moment([2012, 1, 29]).diff([2013, 1, 28], 'years', true), -1, 'Feb 29 2012 to Feb 28 2013 should be 1-(1 / 28.5) / 12 years'); -}); - -test('negative zero', function (assert) { - function isNegative (n) { - return (1 / n) < 0; - } - assert.ok(!isNegative(moment([2012, 0, 1]).diff(moment([2012, 0, 1]), 'months')), 'month diff on same date is zero, not -0'); - assert.ok(!isNegative(moment([2012, 0, 1]).diff(moment([2012, 0, 1]), 'years')), 'year diff on same date is zero, not -0'); - assert.ok(!isNegative(moment([2012, 0, 1]).diff(moment([2012, 0, 1]), 'quarters')), 'quarter diff on same date is zero, not -0'); - assert.ok(!isNegative(moment([2012, 0, 1]).diff(moment([2012, 0, 1, 1]), 'days')), 'days diff on same date is zero, not -0'); - assert.ok(!isNegative(moment([2012, 0, 1]).diff(moment([2012, 0, 1, 0, 1]), 'hours')), 'hour diff on same hour is zero, not -0'); - assert.ok(!isNegative(moment([2012, 0, 1]).diff(moment([2012, 0, 1, 0, 0, 1]), 'minutes')), 'minute diff on same minute is zero, not -0'); - assert.ok(!isNegative(moment([2012, 0, 1]).diff(moment([2012, 0, 1, 0, 0, 0, 1]), 'seconds')), 'second diff on same second is zero, not -0'); -}); - -}))); - - -;(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' - && typeof require === 'function' ? factory(require('../../moment')) : - typeof define === 'function' && define.amd ? define(['../../moment'], factory) : - factory(global.moment) -}(this, (function (moment) { 'use strict'; - -function each(array, callback) { - var i; - for (i = 0; i < array.length; i++) { - callback(array[i], i, array); - } -} - -function objectKeys(obj) { - if (Object.keys) { - return Object.keys(obj); - } else { - // IE8 - var res = [], i; - for (i in obj) { - if (obj.hasOwnProperty(i)) { - res.push(i); - } - } - return res; - } -} - -// Pick the first defined of two or three arguments. - -function defineCommonLocaleTests(locale, options) { - test('lenient day of month ordinal parsing', function (assert) { - var i, ordinalStr, testMoment; - for (i = 1; i <= 31; ++i) { - ordinalStr = moment([2014, 0, i]).format('YYYY MM Do'); - testMoment = moment(ordinalStr, 'YYYY MM Do'); - assert.equal(testMoment.year(), 2014, - 'lenient day of month ordinal parsing ' + i + ' year check'); - assert.equal(testMoment.month(), 0, - 'lenient day of month ordinal parsing ' + i + ' month check'); - assert.equal(testMoment.date(), i, - 'lenient day of month ordinal parsing ' + i + ' date check'); - } - }); - - test('lenient day of month ordinal parsing of number', function (assert) { - var i, testMoment; - for (i = 1; i <= 31; ++i) { - testMoment = moment('2014 01 ' + i, 'YYYY MM Do'); - assert.equal(testMoment.year(), 2014, - 'lenient day of month ordinal parsing of number ' + i + ' year check'); - assert.equal(testMoment.month(), 0, - 'lenient day of month ordinal parsing of number ' + i + ' month check'); - assert.equal(testMoment.date(), i, - 'lenient day of month ordinal parsing of number ' + i + ' date check'); - } - }); - - test('strict day of month ordinal parsing', function (assert) { - var i, ordinalStr, testMoment; - for (i = 1; i <= 31; ++i) { - ordinalStr = moment([2014, 0, i]).format('YYYY MM Do'); - testMoment = moment(ordinalStr, 'YYYY MM Do', true); - assert.ok(testMoment.isValid(), 'strict day of month ordinal parsing ' + i); - } - }); - - test('meridiem invariant', function (assert) { - var h, m, t1, t2; - for (h = 0; h < 24; ++h) { - for (m = 0; m < 60; m += 15) { - t1 = moment.utc([2000, 0, 1, h, m]); - t2 = moment.utc(t1.format('A h:mm'), 'A h:mm'); - assert.equal(t2.format('HH:mm'), t1.format('HH:mm'), - 'meridiem at ' + t1.format('HH:mm')); - } - } - }); - - test('date format correctness', function (assert) { - var data, tokens; - data = moment.localeData()._longDateFormat; - tokens = objectKeys(data); - each(tokens, function (srchToken) { - // Check each format string to make sure it does not contain any - // tokens that need to be expanded. - each(tokens, function (baseToken) { - // strip escaped sequences - var format = data[baseToken].replace(/(\[[^\]]*\])/g, ''); - assert.equal(false, !!~format.indexOf(srchToken), - 'contains ' + srchToken + ' in ' + baseToken); - }); - }); - }); - - test('month parsing correctness', function (assert) { - var i, m; - - if (locale === 'tr') { - // I can't fix it :( - expect(0); - return; - } - function tester(format) { - var r; - r = moment(m.format(format), format); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format); - r = moment(m.format(format).toLocaleUpperCase(), format); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' upper'); - r = moment(m.format(format).toLocaleLowerCase(), format); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' lower'); - - r = moment(m.format(format), format, true); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' strict'); - r = moment(m.format(format).toLocaleUpperCase(), format, true); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' upper strict'); - r = moment(m.format(format).toLocaleLowerCase(), format, true); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' lower strict'); - } - - for (i = 0; i < 12; ++i) { - m = moment([2015, i, 15, 18]); - tester('MMM'); - tester('MMM.'); - tester('MMMM'); - tester('MMMM.'); - } - }); - - test('weekday parsing correctness', function (assert) { - var i, m; - - if (locale === 'tr' || locale === 'az' || locale === 'ro') { - // tr, az: There is a lower-case letter (ı), that converted to - // upper then lower changes to i - // ro: there is the letter ț which behaves weird under IE8 - expect(0); - return; - } - function tester(format) { - var r, baseMsg = 'weekday ' + m.weekday() + ' fmt ' + format + ' ' + m.toISOString(); - r = moment(m.format(format), format); - assert.equal(r.weekday(), m.weekday(), baseMsg); - r = moment(m.format(format).toLocaleUpperCase(), format); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' upper'); - r = moment(m.format(format).toLocaleLowerCase(), format); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' lower'); - - r = moment(m.format(format), format, true); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' strict'); - r = moment(m.format(format).toLocaleUpperCase(), format, true); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' upper strict'); - r = moment(m.format(format).toLocaleLowerCase(), format, true); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' lower strict'); - } - - for (i = 0; i < 7; ++i) { - m = moment.utc([2015, 0, i + 1, 18]); - tester('dd'); - tester('ddd'); - tester('dddd'); - } - }); - - test('valid localeData', function (assert) { - assert.equal(moment().localeData().months().length, 12, 'months should return 12 months'); - assert.equal(moment().localeData().monthsShort().length, 12, 'monthsShort should return 12 months'); - assert.equal(moment().localeData().weekdays().length, 7, 'weekdays should return 7 days'); - assert.equal(moment().localeData().weekdaysShort().length, 7, 'weekdaysShort should return 7 days'); - assert.equal(moment().localeData().weekdaysMin().length, 7, 'monthsShort should return 7 days'); - }); -} - -function setupDeprecationHandler(test, moment$$1, scope) { - test._expectedDeprecations = null; - test._observedDeprecations = null; - test._oldSupress = moment$$1.suppressDeprecationWarnings; - moment$$1.suppressDeprecationWarnings = true; - test.expectedDeprecations = function () { - test._expectedDeprecations = arguments; - test._observedDeprecations = []; - }; - moment$$1.deprecationHandler = function (name, msg) { - var deprecationId = matchedDeprecation(name, msg, test._expectedDeprecations); - if (deprecationId === -1) { - throw new Error('Unexpected deprecation thrown name=' + - name + ' msg=' + msg); - } - test._observedDeprecations[deprecationId] = 1; - }; -} - -function teardownDeprecationHandler(test, moment$$1, scope) { - moment$$1.suppressDeprecationWarnings = test._oldSupress; - - if (test._expectedDeprecations != null) { - var missedDeprecations = []; - each(test._expectedDeprecations, function (deprecationPattern, id) { - if (test._observedDeprecations[id] !== 1) { - missedDeprecations.push(deprecationPattern); - } - }); - if (missedDeprecations.length !== 0) { - throw new Error('Expected deprecation warnings did not happen: ' + - missedDeprecations.join(' ')); - } - } -} - -function matchedDeprecation(name, msg, deprecations) { - if (deprecations == null) { - return -1; - } - for (var i = 0; i < deprecations.length; ++i) { - if (name != null && name === deprecations[i]) { - return i; - } - if (msg != null && msg.substring(0, deprecations[i].length) === deprecations[i]) { - return i; - } - } - return -1; -} - -/*global QUnit:false*/ - -var test = QUnit.test; - -var expect = QUnit.expect; - -function module$1 (name, lifecycle) { - QUnit.module(name, { - setup : function () { - moment.locale('en'); - moment.createFromInputFallback = function (config) { - throw new Error('input not handled by moment: ' + config._i); - }; - setupDeprecationHandler(test, moment, 'core'); - if (lifecycle && lifecycle.setup) { - lifecycle.setup(); - } - }, - teardown : function () { - teardownDeprecationHandler(test, moment, 'core'); - if (lifecycle && lifecycle.teardown) { - lifecycle.teardown(); - } - } - }); -} - -module$1('duration'); - -test('object instantiation', function (assert) { - var d = moment.duration({ - years: 2, - months: 3, - weeks: 2, - days: 1, - hours: 8, - minutes: 9, - seconds: 20, - milliseconds: 12 - }); - - assert.equal(d.years(), 2, 'years'); - assert.equal(d.months(), 3, 'months'); - assert.equal(d.weeks(), 2, 'weeks'); - assert.equal(d.days(), 15, 'days'); // two weeks + 1 day - assert.equal(d.hours(), 8, 'hours'); - assert.equal(d.minutes(), 9, 'minutes'); - assert.equal(d.seconds(), 20, 'seconds'); - assert.equal(d.milliseconds(), 12, 'milliseconds'); -}); - -test('object instantiation with strings', function (assert) { - var d = moment.duration({ - years: '2', - months: '3', - weeks: '2', - days: '1', - hours: '8', - minutes: '9', - seconds: '20', - milliseconds: '12' - }); - - assert.equal(d.years(), 2, 'years'); - assert.equal(d.months(), 3, 'months'); - assert.equal(d.weeks(), 2, 'weeks'); - assert.equal(d.days(), 15, 'days'); // two weeks + 1 day - assert.equal(d.hours(), 8, 'hours'); - assert.equal(d.minutes(), 9, 'minutes'); - assert.equal(d.seconds(), 20, 'seconds'); - assert.equal(d.milliseconds(), 12, 'milliseconds'); -}); - -test('milliseconds instantiation', function (assert) { - assert.equal(moment.duration(72).milliseconds(), 72, 'milliseconds'); - assert.equal(moment.duration(72).humanize(), 'a few seconds', 'Duration should be valid'); -}); - -test('undefined instantiation', function (assert) { - assert.equal(moment.duration(undefined).milliseconds(), 0, 'milliseconds'); - assert.equal(moment.duration(undefined).isValid(), true, '_isValid'); - assert.equal(moment.duration(undefined).humanize(), 'a few seconds', 'Duration should be valid'); -}); - -test('null instantiation', function (assert) { - assert.equal(moment.duration(null).milliseconds(), 0, 'milliseconds'); - assert.equal(moment.duration(null).isValid(), true, '_isValid'); - assert.equal(moment.duration(null).humanize(), 'a few seconds', 'Duration should be valid'); -}); - -test('NaN instantiation', function (assert) { - assert.ok(isNaN(moment.duration(NaN).milliseconds()), 'milliseconds should be NaN'); - assert.equal(moment.duration(NaN).isValid(), false, '_isValid'); - assert.equal(moment.duration(NaN).humanize(), 'Invalid date', 'Duration should be invalid'); -}); - -test('instantiation by type', function (assert) { - assert.equal(moment.duration(1, 'years').years(), 1, 'years'); - assert.equal(moment.duration(1, 'y').years(), 1, 'y'); - assert.equal(moment.duration(2, 'months').months(), 2, 'months'); - assert.equal(moment.duration(2, 'M').months(), 2, 'M'); - assert.equal(moment.duration(3, 'weeks').weeks(), 3, 'weeks'); - assert.equal(moment.duration(3, 'w').weeks(), 3, 'weeks'); - assert.equal(moment.duration(4, 'days').days(), 4, 'days'); - assert.equal(moment.duration(4, 'd').days(), 4, 'd'); - assert.equal(moment.duration(5, 'hours').hours(), 5, 'hours'); - assert.equal(moment.duration(5, 'h').hours(), 5, 'h'); - assert.equal(moment.duration(6, 'minutes').minutes(), 6, 'minutes'); - assert.equal(moment.duration(6, 'm').minutes(), 6, 'm'); - assert.equal(moment.duration(7, 'seconds').seconds(), 7, 'seconds'); - assert.equal(moment.duration(7, 's').seconds(), 7, 's'); - assert.equal(moment.duration(8, 'milliseconds').milliseconds(), 8, 'milliseconds'); - assert.equal(moment.duration(8, 'ms').milliseconds(), 8, 'ms'); -}); - -test('shortcuts', function (assert) { - assert.equal(moment.duration({y: 1}).years(), 1, 'years = y'); - assert.equal(moment.duration({M: 2}).months(), 2, 'months = M'); - assert.equal(moment.duration({w: 3}).weeks(), 3, 'weeks = w'); - assert.equal(moment.duration({d: 4}).days(), 4, 'days = d'); - assert.equal(moment.duration({h: 5}).hours(), 5, 'hours = h'); - assert.equal(moment.duration({m: 6}).minutes(), 6, 'minutes = m'); - assert.equal(moment.duration({s: 7}).seconds(), 7, 'seconds = s'); - assert.equal(moment.duration({ms: 8}).milliseconds(), 8, 'milliseconds = ms'); -}); - -test('generic getter', function (assert) { - assert.equal(moment.duration(1, 'years').get('years'), 1, 'years'); - assert.equal(moment.duration(1, 'years').get('year'), 1, 'years = year'); - assert.equal(moment.duration(1, 'years').get('y'), 1, 'years = y'); - assert.equal(moment.duration(2, 'months').get('months'), 2, 'months'); - assert.equal(moment.duration(2, 'months').get('month'), 2, 'months = month'); - assert.equal(moment.duration(2, 'months').get('M'), 2, 'months = M'); - assert.equal(moment.duration(3, 'weeks').get('weeks'), 3, 'weeks'); - assert.equal(moment.duration(3, 'weeks').get('week'), 3, 'weeks = week'); - assert.equal(moment.duration(3, 'weeks').get('w'), 3, 'weeks = w'); - assert.equal(moment.duration(4, 'days').get('days'), 4, 'days'); - assert.equal(moment.duration(4, 'days').get('day'), 4, 'days = day'); - assert.equal(moment.duration(4, 'days').get('d'), 4, 'days = d'); - assert.equal(moment.duration(5, 'hours').get('hours'), 5, 'hours'); - assert.equal(moment.duration(5, 'hours').get('hour'), 5, 'hours = hour'); - assert.equal(moment.duration(5, 'hours').get('h'), 5, 'hours = h'); - assert.equal(moment.duration(6, 'minutes').get('minutes'), 6, 'minutes'); - assert.equal(moment.duration(6, 'minutes').get('minute'), 6, 'minutes = minute'); - assert.equal(moment.duration(6, 'minutes').get('m'), 6, 'minutes = m'); - assert.equal(moment.duration(7, 'seconds').get('seconds'), 7, 'seconds'); - assert.equal(moment.duration(7, 'seconds').get('second'), 7, 'seconds = second'); - assert.equal(moment.duration(7, 'seconds').get('s'), 7, 'seconds = s'); - assert.equal(moment.duration(8, 'milliseconds').get('milliseconds'), 8, 'milliseconds'); - assert.equal(moment.duration(8, 'milliseconds').get('millisecond'), 8, 'milliseconds = millisecond'); - assert.equal(moment.duration(8, 'milliseconds').get('ms'), 8, 'milliseconds = ms'); -}); - -test('instantiation from another duration', function (assert) { - var simple = moment.duration(1234), - lengthy = moment.duration(60 * 60 * 24 * 360 * 1e3), - complicated = moment.duration({ - years: 2, - months: 3, - weeks: 4, - days: 1, - hours: 8, - minutes: 9, - seconds: 20, - milliseconds: 12 - }), - modified = moment.duration(1, 'day').add(moment.duration(1, 'day')); - - assert.deepEqual(moment.duration(simple), simple, 'simple clones are equal'); - assert.deepEqual(moment.duration(lengthy), lengthy, 'lengthy clones are equal'); - assert.deepEqual(moment.duration(complicated), complicated, 'complicated clones are equal'); - assert.deepEqual(moment.duration(modified), modified, 'cloning modified duration works'); -}); - -test('instantiation from 24-hour time zero', function (assert) { - assert.equal(moment.duration('00:00').years(), 0, '0 years'); - assert.equal(moment.duration('00:00').days(), 0, '0 days'); - assert.equal(moment.duration('00:00').hours(), 0, '0 hours'); - assert.equal(moment.duration('00:00').minutes(), 0, '0 minutes'); - assert.equal(moment.duration('00:00').seconds(), 0, '0 seconds'); - assert.equal(moment.duration('00:00').milliseconds(), 0, '0 milliseconds'); -}); - -test('instantiation from 24-hour time <24 hours', function (assert) { - assert.equal(moment.duration('06:45').years(), 0, '0 years'); - assert.equal(moment.duration('06:45').days(), 0, '0 days'); - assert.equal(moment.duration('06:45').hours(), 6, '6 hours'); - assert.equal(moment.duration('06:45').minutes(), 45, '45 minutes'); - assert.equal(moment.duration('06:45').seconds(), 0, '0 seconds'); - assert.equal(moment.duration('06:45').milliseconds(), 0, '0 milliseconds'); -}); - -test('instantiation from 24-hour time >24 hours', function (assert) { - assert.equal(moment.duration('26:45').years(), 0, '0 years'); - assert.equal(moment.duration('26:45').days(), 1, '0 days'); - assert.equal(moment.duration('26:45').hours(), 2, '2 hours'); - assert.equal(moment.duration('26:45').minutes(), 45, '45 minutes'); - assert.equal(moment.duration('26:45').seconds(), 0, '0 seconds'); - assert.equal(moment.duration('26:45').milliseconds(), 0, '0 milliseconds'); -}); - -test('instatiation from serialized C# TimeSpan zero', function (assert) { - assert.equal(moment.duration('00:00:00').years(), 0, '0 years'); - assert.equal(moment.duration('00:00:00').days(), 0, '0 days'); - assert.equal(moment.duration('00:00:00').hours(), 0, '0 hours'); - assert.equal(moment.duration('00:00:00').minutes(), 0, '0 minutes'); - assert.equal(moment.duration('00:00:00').seconds(), 0, '0 seconds'); - assert.equal(moment.duration('00:00:00').milliseconds(), 0, '0 milliseconds'); -}); - -test('instatiation from serialized C# TimeSpan with days', function (assert) { - assert.equal(moment.duration('1.02:03:04.9999999').years(), 0, '0 years'); - assert.equal(moment.duration('1.02:03:04.9999999').days(), 1, '1 day'); - assert.equal(moment.duration('1.02:03:04.9999999').hours(), 2, '2 hours'); - assert.equal(moment.duration('1.02:03:04.9999999').minutes(), 3, '3 minutes'); - assert.equal(moment.duration('1.02:03:04.9999999').seconds(), 5, '5 seconds'); - assert.equal(moment.duration('1.02:03:04.9999999').milliseconds(), 0, '0 milliseconds'); - - assert.equal(moment.duration('1 02:03:04.9999999').years(), 0, '0 years'); - assert.equal(moment.duration('1 02:03:04.9999999').days(), 1, '1 day'); - assert.equal(moment.duration('1 02:03:04.9999999').hours(), 2, '2 hours'); - assert.equal(moment.duration('1 02:03:04.9999999').minutes(), 3, '3 minutes'); - assert.equal(moment.duration('1 02:03:04.9999999').seconds(), 5, '5 seconds'); - assert.equal(moment.duration('1 02:03:04.9999999').milliseconds(), 0, '0 milliseconds'); -}); - -test('instatiation from serialized C# TimeSpan without days', function (assert) { - assert.equal(moment.duration('01:02:03.9999999').years(), 0, '0 years'); - assert.equal(moment.duration('01:02:03.9999999').days(), 0, '0 days'); - assert.equal(moment.duration('01:02:03.9999999').hours(), 1, '1 hour'); - assert.equal(moment.duration('01:02:03.9999999').minutes(), 2, '2 minutes'); - assert.equal(moment.duration('01:02:03.9999999').seconds(), 4, '4 seconds'); - assert.equal(moment.duration('01:02:03.9999999').milliseconds(), 0, '0 milliseconds'); - - assert.equal(moment.duration('23:59:59.9999999').days(), 1, '1 days'); - assert.equal(moment.duration('23:59:59.9999999').hours(), 0, '0 hours'); - assert.equal(moment.duration('23:59:59.9999999').minutes(), 0, '0 minutes'); - assert.equal(moment.duration('23:59:59.9999999').seconds(), 0, '0 seconds'); - assert.equal(moment.duration('23:59:59.9999999').milliseconds(), 0, '0 milliseconds'); - - assert.equal(moment.duration('500:59:59.8888888').days(), 20, '500 hours overflows to 20 days'); - assert.equal(moment.duration('500:59:59.8888888').hours(), 20, '500 hours overflows to 20 hours'); -}); - -test('instatiation from serialized C# TimeSpan without days or milliseconds', function (assert) { - assert.equal(moment.duration('01:02:03').years(), 0, '0 years'); - assert.equal(moment.duration('01:02:03').days(), 0, '0 days'); - assert.equal(moment.duration('01:02:03').hours(), 1, '1 hour'); - assert.equal(moment.duration('01:02:03').minutes(), 2, '2 minutes'); - assert.equal(moment.duration('01:02:03').seconds(), 3, '3 seconds'); - assert.equal(moment.duration('01:02:03').milliseconds(), 0, '0 milliseconds'); -}); - -test('instatiation from serialized C# TimeSpan without milliseconds', function (assert) { - assert.equal(moment.duration('1.02:03:04').years(), 0, '0 years'); - assert.equal(moment.duration('1.02:03:04').days(), 1, '1 day'); - assert.equal(moment.duration('1.02:03:04').hours(), 2, '2 hours'); - assert.equal(moment.duration('1.02:03:04').minutes(), 3, '3 minutes'); - assert.equal(moment.duration('1.02:03:04').seconds(), 4, '4 seconds'); - assert.equal(moment.duration('1.02:03:04').milliseconds(), 0, '0 milliseconds'); -}); - -test('instantiation from serialized C# TimeSpan with low millisecond precision', function (assert) { - assert.equal(moment.duration('00:00:15.72').years(), 0, '0 years'); - assert.equal(moment.duration('00:00:15.72').days(), 0, '0 days'); - assert.equal(moment.duration('00:00:15.72').hours(), 0, '0 hours'); - assert.equal(moment.duration('00:00:15.72').minutes(), 0, '0 minutes'); - assert.equal(moment.duration('00:00:15.72').seconds(), 15, '15 seconds'); - assert.equal(moment.duration('00:00:15.72').milliseconds(), 720, '720 milliseconds'); - - assert.equal(moment.duration('00:00:15.7').milliseconds(), 700, '700 milliseconds'); - - assert.equal(moment.duration('00:00:15.').milliseconds(), 0, '0 milliseconds'); -}); - -test('instantiation from serialized C# TimeSpan with high millisecond precision', function (assert) { - assert.equal(moment.duration('00:00:15.7200000').seconds(), 15, '15 seconds'); - assert.equal(moment.duration('00:00:15.7200000').milliseconds(), 720, '720 milliseconds'); - - assert.equal(moment.duration('00:00:15.7209999').seconds(), 15, '15 seconds'); - assert.equal(moment.duration('00:00:15.7209999').milliseconds(), 721, '721 milliseconds'); - - assert.equal(moment.duration('00:00:15.7205000').seconds(), 15, '15 seconds'); - assert.equal(moment.duration('00:00:15.7205000').milliseconds(), 721, '721 milliseconds'); - - assert.equal(moment.duration('-00:00:15.7205000').seconds(), -15, '15 seconds'); - assert.equal(moment.duration('-00:00:15.7205000').milliseconds(), -721, '721 milliseconds'); -}); - -test('instatiation from serialized C# TimeSpan maxValue', function (assert) { - var d = moment.duration('10675199.02:48:05.4775807'); - - assert.equal(d.years(), 29227, '29227 years'); - assert.equal(d.months(), 8, '8 months'); - assert.equal(d.days(), 12, '12 day'); // if you have to change this value -- just do it - - assert.equal(d.hours(), 2, '2 hours'); - assert.equal(d.minutes(), 48, '48 minutes'); - assert.equal(d.seconds(), 5, '5 seconds'); - assert.equal(d.milliseconds(), 478, '478 milliseconds'); -}); - -test('instatiation from serialized C# TimeSpan minValue', function (assert) { - var d = moment.duration('-10675199.02:48:05.4775808'); - - assert.equal(d.years(), -29227, '29653 years'); - assert.equal(d.months(), -8, '8 day'); - assert.equal(d.days(), -12, '12 day'); // if you have to change this value -- just do it - - assert.equal(d.hours(), -2, '2 hours'); - assert.equal(d.minutes(), -48, '48 minutes'); - assert.equal(d.seconds(), -5, '5 seconds'); - assert.equal(d.milliseconds(), -478, '478 milliseconds'); -}); - -test('instantiation from ISO 8601 duration', function (assert) { - assert.equal(moment.duration('P1Y2M3DT4H5M6S').asSeconds(), moment.duration({y: 1, M: 2, d: 3, h: 4, m: 5, s: 6}).asSeconds(), 'all fields'); - assert.equal(moment.duration('P3W3D').asSeconds(), moment.duration({w: 3, d: 3}).asSeconds(), 'week and day fields'); - assert.equal(moment.duration('P1M').asSeconds(), moment.duration({M: 1}).asSeconds(), 'single month field'); - assert.equal(moment.duration('PT1M').asSeconds(), moment.duration({m: 1}).asSeconds(), 'single minute field'); - assert.equal(moment.duration('P1MT2H').asSeconds(), moment.duration({M: 1, h: 2}).asSeconds(), 'random fields missing'); - assert.equal(moment.duration('-P60D').asSeconds(), moment.duration({d: -60}).asSeconds(), 'negative days'); - assert.equal(moment.duration('PT0.5S').asSeconds(), moment.duration({s: 0.5}).asSeconds(), 'fractional seconds'); - assert.equal(moment.duration('PT0,5S').asSeconds(), moment.duration({s: 0.5}).asSeconds(), 'fractional seconds (comma)'); -}); - -test('serialization to ISO 8601 duration strings', function (assert) { - assert.equal(moment.duration({y: 1, M: 2, d: 3, h: 4, m: 5, s: 6}).toISOString(), 'P1Y2M3DT4H5M6S', 'all fields'); - assert.equal(moment.duration({M: -1}).toISOString(), '-P1M', 'one month ago'); - assert.equal(moment.duration({m: -1}).toISOString(), '-PT1M', 'one minute ago'); - assert.equal(moment.duration({s: -0.5}).toISOString(), '-PT0.5S', 'one half second ago'); - assert.equal(moment.duration({y: -1, M: 1}).toISOString(), '-P11M', 'a month after a year ago'); - assert.equal(moment.duration({}).toISOString(), 'P0D', 'zero duration'); - assert.equal(moment.duration({M: 16, d:40, s: 86465}).toISOString(), 'P1Y4M40DT24H1M5S', 'all fields'); -}); - -test('toString acts as toISOString', function (assert) { - assert.equal(moment.duration({y: 1, M: 2, d: 3, h: 4, m: 5, s: 6}).toString(), 'P1Y2M3DT4H5M6S', 'all fields'); - assert.equal(moment.duration({M: -1}).toString(), '-P1M', 'one month ago'); - assert.equal(moment.duration({m: -1}).toString(), '-PT1M', 'one minute ago'); - assert.equal(moment.duration({s: -0.5}).toString(), '-PT0.5S', 'one half second ago'); - assert.equal(moment.duration({y: -1, M: 1}).toString(), '-P11M', 'a month after a year ago'); - assert.equal(moment.duration({}).toString(), 'P0D', 'zero duration'); - assert.equal(moment.duration({M: 16, d:40, s: 86465}).toString(), 'P1Y4M40DT24H1M5S', 'all fields'); -}); - -test('toIsoString deprecation', function (assert) { - test.expectedDeprecations('toIsoString()'); - - assert.equal(moment.duration({}).toIsoString(), moment.duration({}).toISOString(), 'toIsoString delegates to toISOString'); -}); - -test('`isodate` (python) test cases', function (assert) { - assert.equal(moment.duration('P18Y9M4DT11H9M8S').asSeconds(), moment.duration({y: 18, M: 9, d: 4, h: 11, m: 9, s: 8}).asSeconds(), 'python isodate 1'); - assert.equal(moment.duration('P2W').asSeconds(), moment.duration({w: 2}).asSeconds(), 'python isodate 2'); - assert.equal(moment.duration('P3Y6M4DT12H30M5S').asSeconds(), moment.duration({y: 3, M: 6, d: 4, h: 12, m: 30, s: 5}).asSeconds(), 'python isodate 3'); - assert.equal(moment.duration('P23DT23H').asSeconds(), moment.duration({d: 23, h: 23}).asSeconds(), 'python isodate 4'); - assert.equal(moment.duration('P4Y').asSeconds(), moment.duration({y: 4}).asSeconds(), 'python isodate 5'); - assert.equal(moment.duration('P1M').asSeconds(), moment.duration({M: 1}).asSeconds(), 'python isodate 6'); - assert.equal(moment.duration('PT1M').asSeconds(), moment.duration({m: 1}).asSeconds(), 'python isodate 7'); - assert.equal(moment.duration('P0.5Y').asSeconds(), moment.duration({y: 0.5}).asSeconds(), 'python isodate 8'); - assert.equal(moment.duration('PT36H').asSeconds(), moment.duration({h: 36}).asSeconds(), 'python isodate 9'); - assert.equal(moment.duration('P1DT12H').asSeconds(), moment.duration({d: 1, h: 12}).asSeconds(), 'python isodate 10'); - assert.equal(moment.duration('-P2W').asSeconds(), moment.duration({w: -2}).asSeconds(), 'python isodate 11'); - assert.equal(moment.duration('-P2.2W').asSeconds(), moment.duration({w: -2.2}).asSeconds(), 'python isodate 12'); - assert.equal(moment.duration('P1DT2H3M4S').asSeconds(), moment.duration({d: 1, h: 2, m: 3, s: 4}).asSeconds(), 'python isodate 13'); - assert.equal(moment.duration('P1DT2H3M').asSeconds(), moment.duration({d: 1, h: 2, m: 3}).asSeconds(), 'python isodate 14'); - assert.equal(moment.duration('P1DT2H').asSeconds(), moment.duration({d: 1, h: 2}).asSeconds(), 'python isodate 15'); - assert.equal(moment.duration('PT2H').asSeconds(), moment.duration({h: 2}).asSeconds(), 'python isodate 16'); - assert.equal(moment.duration('PT2.3H').asSeconds(), moment.duration({h: 2.3}).asSeconds(), 'python isodate 17'); - assert.equal(moment.duration('PT2H3M4S').asSeconds(), moment.duration({h: 2, m: 3, s: 4}).asSeconds(), 'python isodate 18'); - assert.equal(moment.duration('PT3M4S').asSeconds(), moment.duration({m: 3, s: 4}).asSeconds(), 'python isodate 19'); - assert.equal(moment.duration('PT22S').asSeconds(), moment.duration({s: 22}).asSeconds(), 'python isodate 20'); - assert.equal(moment.duration('PT22.22S').asSeconds(), moment.duration({s: 22.22}).asSeconds(), 'python isodate 21'); - assert.equal(moment.duration('-P2Y').asSeconds(), moment.duration({y: -2}).asSeconds(), 'python isodate 22'); - assert.equal(moment.duration('-P3Y6M4DT12H30M5S').asSeconds(), moment.duration({y: -3, M: -6, d: -4, h: -12, m: -30, s: -5}).asSeconds(), 'python isodate 23'); - assert.equal(moment.duration('-P1DT2H3M4S').asSeconds(), moment.duration({d: -1, h: -2, m: -3, s: -4}).asSeconds(), 'python isodate 24'); - assert.equal(moment.duration('PT-6H3M').asSeconds(), moment.duration({h: -6, m: 3}).asSeconds(), 'python isodate 25'); - assert.equal(moment.duration('-PT-6H3M').asSeconds(), moment.duration({h: 6, m: -3}).asSeconds(), 'python isodate 26'); - assert.equal(moment.duration('-P-3Y-6M-4DT-12H-30M-5S').asSeconds(), moment.duration({y: 3, M: 6, d: 4, h: 12, m: 30, s: 5}).asSeconds(), 'python isodate 27'); - assert.equal(moment.duration('P-3Y-6M-4DT-12H-30M-5S').asSeconds(), moment.duration({y: -3, M: -6, d: -4, h: -12, m: -30, s: -5}).asSeconds(), 'python isodate 28'); - assert.equal(moment.duration('-P-2W').asSeconds(), moment.duration({w: 2}).asSeconds(), 'python isodate 29'); - assert.equal(moment.duration('P-2W').asSeconds(), moment.duration({w: -2}).asSeconds(), 'python isodate 30'); -}); - -test('ISO 8601 misuse cases', function (assert) { - assert.equal(moment.duration('P').asSeconds(), 0, 'lonely P'); - assert.equal(moment.duration('PT').asSeconds(), 0, 'just P and T'); - assert.equal(moment.duration('P1H').asSeconds(), 0, 'missing T'); - assert.equal(moment.duration('P1D1Y').asSeconds(), 0, 'out of order'); - assert.equal(moment.duration('PT.5S').asSeconds(), 0.5, 'accept no leading zero for decimal'); - assert.equal(moment.duration('PT1,S').asSeconds(), 1, 'accept trailing decimal separator'); - assert.equal(moment.duration('PT1M0,,5S').asSeconds(), 60, 'extra decimal separators are ignored as 0'); -}); - -test('humanize', function (assert) { - moment.locale('en'); - assert.equal(moment.duration({seconds: 44}).humanize(), 'a few seconds', '44 seconds = a few seconds'); - assert.equal(moment.duration({seconds: 45}).humanize(), 'a minute', '45 seconds = a minute'); - assert.equal(moment.duration({seconds: 89}).humanize(), 'a minute', '89 seconds = a minute'); - assert.equal(moment.duration({seconds: 90}).humanize(), '2 minutes', '90 seconds = 2 minutes'); - assert.equal(moment.duration({minutes: 44}).humanize(), '44 minutes', '44 minutes = 44 minutes'); - assert.equal(moment.duration({minutes: 45}).humanize(), 'an hour', '45 minutes = an hour'); - assert.equal(moment.duration({minutes: 89}).humanize(), 'an hour', '89 minutes = an hour'); - assert.equal(moment.duration({minutes: 90}).humanize(), '2 hours', '90 minutes = 2 hours'); - assert.equal(moment.duration({hours: 5}).humanize(), '5 hours', '5 hours = 5 hours'); - assert.equal(moment.duration({hours: 21}).humanize(), '21 hours', '21 hours = 21 hours'); - assert.equal(moment.duration({hours: 22}).humanize(), 'a day', '22 hours = a day'); - assert.equal(moment.duration({hours: 35}).humanize(), 'a day', '35 hours = a day'); - assert.equal(moment.duration({hours: 36}).humanize(), '2 days', '36 hours = 2 days'); - assert.equal(moment.duration({days: 1}).humanize(), 'a day', '1 day = a day'); - assert.equal(moment.duration({days: 5}).humanize(), '5 days', '5 days = 5 days'); - assert.equal(moment.duration({weeks: 1}).humanize(), '7 days', '1 week = 7 days'); - assert.equal(moment.duration({days: 25}).humanize(), '25 days', '25 days = 25 days'); - assert.equal(moment.duration({days: 26}).humanize(), 'a month', '26 days = a month'); - assert.equal(moment.duration({days: 30}).humanize(), 'a month', '30 days = a month'); - assert.equal(moment.duration({days: 45}).humanize(), 'a month', '45 days = a month'); - assert.equal(moment.duration({days: 46}).humanize(), '2 months', '46 days = 2 months'); - assert.equal(moment.duration({days: 74}).humanize(), '2 months', '74 days = 2 months'); - assert.equal(moment.duration({days: 77}).humanize(), '3 months', '77 days = 3 months'); - assert.equal(moment.duration({months: 1}).humanize(), 'a month', '1 month = a month'); - assert.equal(moment.duration({months: 5}).humanize(), '5 months', '5 months = 5 months'); - assert.equal(moment.duration({days: 344}).humanize(), 'a year', '344 days = a year'); - assert.equal(moment.duration({days: 345}).humanize(), 'a year', '345 days = a year'); - assert.equal(moment.duration({days: 547}).humanize(), 'a year', '547 days = a year'); - assert.equal(moment.duration({days: 548}).humanize(), '2 years', '548 days = 2 years'); - assert.equal(moment.duration({years: 1}).humanize(), 'a year', '1 year = a year'); - assert.equal(moment.duration({years: 5}).humanize(), '5 years', '5 years = 5 years'); - assert.equal(moment.duration(7200000).humanize(), '2 hours', '7200000 = 2 minutes'); -}); - -test('humanize duration with suffix', function (assert) { - moment.locale('en'); - assert.equal(moment.duration({seconds: 44}).humanize(true), 'in a few seconds', '44 seconds = a few seconds'); - assert.equal(moment.duration({seconds: -44}).humanize(true), 'a few seconds ago', '44 seconds = a few seconds'); -}); - -test('bubble value up', function (assert) { - assert.equal(moment.duration({milliseconds: 61001}).milliseconds(), 1, '61001 milliseconds has 1 millisecond left over'); - assert.equal(moment.duration({milliseconds: 61001}).seconds(), 1, '61001 milliseconds has 1 second left over'); - assert.equal(moment.duration({milliseconds: 61001}).minutes(), 1, '61001 milliseconds has 1 minute left over'); - - assert.equal(moment.duration({minutes: 350}).minutes(), 50, '350 minutes has 50 minutes left over'); - assert.equal(moment.duration({minutes: 350}).hours(), 5, '350 minutes has 5 hours left over'); -}); - -test('clipping', function (assert) { - assert.equal(moment.duration({months: 11}).months(), 11, '11 months is 11 months'); - assert.equal(moment.duration({months: 11}).years(), 0, '11 months makes no year'); - assert.equal(moment.duration({months: 12}).months(), 0, '12 months is 0 months left over'); - assert.equal(moment.duration({months: 12}).years(), 1, '12 months makes 1 year'); - assert.equal(moment.duration({months: 13}).months(), 1, '13 months is 1 month left over'); - assert.equal(moment.duration({months: 13}).years(), 1, '13 months makes 1 year'); - - assert.equal(moment.duration({days: 30}).days(), 30, '30 days is 30 days'); - assert.equal(moment.duration({days: 30}).months(), 0, '30 days makes no month'); - assert.equal(moment.duration({days: 31}).days(), 0, '31 days is 0 days left over'); - assert.equal(moment.duration({days: 31}).months(), 1, '31 days is a month'); - assert.equal(moment.duration({days: 32}).days(), 1, '32 days is 1 day left over'); - assert.equal(moment.duration({days: 32}).months(), 1, '32 days is a month'); - - assert.equal(moment.duration({hours: 23}).hours(), 23, '23 hours is 23 hours'); - assert.equal(moment.duration({hours: 23}).days(), 0, '23 hours makes no day'); - assert.equal(moment.duration({hours: 24}).hours(), 0, '24 hours is 0 hours left over'); - assert.equal(moment.duration({hours: 24}).days(), 1, '24 hours makes 1 day'); - assert.equal(moment.duration({hours: 25}).hours(), 1, '25 hours is 1 hour left over'); - assert.equal(moment.duration({hours: 25}).days(), 1, '25 hours makes 1 day'); -}); - -test('bubbling consistency', function (assert) { - var days = 0, months = 0, newDays, newMonths, totalDays, d; - for (totalDays = 1; totalDays <= 500; ++totalDays) { - d = moment.duration(totalDays, 'days'); - newDays = d.days(); - newMonths = d.months() + d.years() * 12; - assert.ok( - (months === newMonths && days + 1 === newDays) || - (months + 1 === newMonths && newDays === 0), - 'consistent total days ' + totalDays + - ' was ' + months + ' ' + days + - ' now ' + newMonths + ' ' + newDays); - days = newDays; - months = newMonths; - } -}); - -test('effective equivalency', function (assert) { - assert.deepEqual(moment.duration({seconds: 1})._data, moment.duration({milliseconds: 1000})._data, '1 second is the same as 1000 milliseconds'); - assert.deepEqual(moment.duration({seconds: 60})._data, moment.duration({minutes: 1})._data, '1 minute is the same as 60 seconds'); - assert.deepEqual(moment.duration({minutes: 60})._data, moment.duration({hours: 1})._data, '1 hour is the same as 60 minutes'); - assert.deepEqual(moment.duration({hours: 24})._data, moment.duration({days: 1})._data, '1 day is the same as 24 hours'); - assert.deepEqual(moment.duration({days: 7})._data, moment.duration({weeks: 1})._data, '1 week is the same as 7 days'); - assert.deepEqual(moment.duration({days: 31})._data, moment.duration({months: 1})._data, '1 month is the same as 30 days'); - assert.deepEqual(moment.duration({months: 12})._data, moment.duration({years: 1})._data, '1 years is the same as 12 months'); -}); - -test('asGetters', function (assert) { - // 400 years have exactly 146097 days - - // years - assert.equal(moment.duration(1, 'year').asYears(), 1, '1 year as years'); - assert.equal(moment.duration(1, 'year').asMonths(), 12, '1 year as months'); - assert.equal(moment.duration(400, 'year').asMonths(), 4800, '400 years as months'); - assert.equal(moment.duration(1, 'year').asWeeks().toFixed(3), 52.143, '1 year as weeks'); - assert.equal(moment.duration(1, 'year').asDays(), 365, '1 year as days'); - assert.equal(moment.duration(2, 'year').asDays(), 730, '2 years as days'); - assert.equal(moment.duration(3, 'year').asDays(), 1096, '3 years as days'); - assert.equal(moment.duration(4, 'year').asDays(), 1461, '4 years as days'); - assert.equal(moment.duration(400, 'year').asDays(), 146097, '400 years as days'); - assert.equal(moment.duration(1, 'year').asHours(), 8760, '1 year as hours'); - assert.equal(moment.duration(1, 'year').asMinutes(), 525600, '1 year as minutes'); - assert.equal(moment.duration(1, 'year').asSeconds(), 31536000, '1 year as seconds'); - assert.equal(moment.duration(1, 'year').asMilliseconds(), 31536000000, '1 year as milliseconds'); - - // months - assert.equal(moment.duration(1, 'month').asYears().toFixed(4), 0.0833, '1 month as years'); - assert.equal(moment.duration(1, 'month').asMonths(), 1, '1 month as months'); - assert.equal(moment.duration(1, 'month').asWeeks().toFixed(3), 4.286, '1 month as weeks'); - assert.equal(moment.duration(1, 'month').asDays(), 30, '1 month as days'); - assert.equal(moment.duration(2, 'month').asDays(), 61, '2 months as days'); - assert.equal(moment.duration(3, 'month').asDays(), 91, '3 months as days'); - assert.equal(moment.duration(4, 'month').asDays(), 122, '4 months as days'); - assert.equal(moment.duration(5, 'month').asDays(), 152, '5 months as days'); - assert.equal(moment.duration(6, 'month').asDays(), 183, '6 months as days'); - assert.equal(moment.duration(7, 'month').asDays(), 213, '7 months as days'); - assert.equal(moment.duration(8, 'month').asDays(), 243, '8 months as days'); - assert.equal(moment.duration(9, 'month').asDays(), 274, '9 months as days'); - assert.equal(moment.duration(10, 'month').asDays(), 304, '10 months as days'); - assert.equal(moment.duration(11, 'month').asDays(), 335, '11 months as days'); - assert.equal(moment.duration(12, 'month').asDays(), 365, '12 months as days'); - assert.equal(moment.duration(24, 'month').asDays(), 730, '24 months as days'); - assert.equal(moment.duration(36, 'month').asDays(), 1096, '36 months as days'); - assert.equal(moment.duration(48, 'month').asDays(), 1461, '48 months as days'); - assert.equal(moment.duration(4800, 'month').asDays(), 146097, '4800 months as days'); - assert.equal(moment.duration(1, 'month').asHours(), 720, '1 month as hours'); - assert.equal(moment.duration(1, 'month').asMinutes(), 43200, '1 month as minutes'); - assert.equal(moment.duration(1, 'month').asSeconds(), 2592000, '1 month as seconds'); - assert.equal(moment.duration(1, 'month').asMilliseconds(), 2592000000, '1 month as milliseconds'); - - // weeks - assert.equal(moment.duration(1, 'week').asYears().toFixed(4), 0.0192, '1 week as years'); - assert.equal(moment.duration(1, 'week').asMonths().toFixed(3), 0.230, '1 week as months'); - assert.equal(moment.duration(1, 'week').asWeeks(), 1, '1 week as weeks'); - assert.equal(moment.duration(1, 'week').asDays(), 7, '1 week as days'); - assert.equal(moment.duration(1, 'week').asHours(), 168, '1 week as hours'); - assert.equal(moment.duration(1, 'week').asMinutes(), 10080, '1 week as minutes'); - assert.equal(moment.duration(1, 'week').asSeconds(), 604800, '1 week as seconds'); - assert.equal(moment.duration(1, 'week').asMilliseconds(), 604800000, '1 week as milliseconds'); - - // days - assert.equal(moment.duration(1, 'day').asYears().toFixed(4), 0.0027, '1 day as years'); - assert.equal(moment.duration(1, 'day').asMonths().toFixed(3), 0.033, '1 day as months'); - assert.equal(moment.duration(1, 'day').asWeeks().toFixed(3), 0.143, '1 day as weeks'); - assert.equal(moment.duration(1, 'day').asDays(), 1, '1 day as days'); - assert.equal(moment.duration(1, 'day').asHours(), 24, '1 day as hours'); - assert.equal(moment.duration(1, 'day').asMinutes(), 1440, '1 day as minutes'); - assert.equal(moment.duration(1, 'day').asSeconds(), 86400, '1 day as seconds'); - assert.equal(moment.duration(1, 'day').asMilliseconds(), 86400000, '1 day as milliseconds'); - - // hours - assert.equal(moment.duration(1, 'hour').asYears().toFixed(6), 0.000114, '1 hour as years'); - assert.equal(moment.duration(1, 'hour').asMonths().toFixed(5), 0.00137, '1 hour as months'); - assert.equal(moment.duration(1, 'hour').asWeeks().toFixed(5), 0.00595, '1 hour as weeks'); - assert.equal(moment.duration(1, 'hour').asDays().toFixed(4), 0.0417, '1 hour as days'); - assert.equal(moment.duration(1, 'hour').asHours(), 1, '1 hour as hours'); - assert.equal(moment.duration(1, 'hour').asMinutes(), 60, '1 hour as minutes'); - assert.equal(moment.duration(1, 'hour').asSeconds(), 3600, '1 hour as seconds'); - assert.equal(moment.duration(1, 'hour').asMilliseconds(), 3600000, '1 hour as milliseconds'); - - // minutes - assert.equal(moment.duration(1, 'minute').asYears().toFixed(8), 0.00000190, '1 minute as years'); - assert.equal(moment.duration(1, 'minute').asMonths().toFixed(7), 0.0000228, '1 minute as months'); - assert.equal(moment.duration(1, 'minute').asWeeks().toFixed(7), 0.0000992, '1 minute as weeks'); - assert.equal(moment.duration(1, 'minute').asDays().toFixed(6), 0.000694, '1 minute as days'); - assert.equal(moment.duration(1, 'minute').asHours().toFixed(4), 0.0167, '1 minute as hours'); - assert.equal(moment.duration(1, 'minute').asMinutes(), 1, '1 minute as minutes'); - assert.equal(moment.duration(1, 'minute').asSeconds(), 60, '1 minute as seconds'); - assert.equal(moment.duration(1, 'minute').asMilliseconds(), 60000, '1 minute as milliseconds'); - - // seconds - assert.equal(moment.duration(1, 'second').asYears().toFixed(10), 0.0000000317, '1 second as years'); - assert.equal(moment.duration(1, 'second').asMonths().toFixed(9), 0.000000380, '1 second as months'); - assert.equal(moment.duration(1, 'second').asWeeks().toFixed(8), 0.00000165, '1 second as weeks'); - assert.equal(moment.duration(1, 'second').asDays().toFixed(7), 0.0000116, '1 second as days'); - assert.equal(moment.duration(1, 'second').asHours().toFixed(6), 0.000278, '1 second as hours'); - assert.equal(moment.duration(1, 'second').asMinutes().toFixed(4), 0.0167, '1 second as minutes'); - assert.equal(moment.duration(1, 'second').asSeconds(), 1, '1 second as seconds'); - assert.equal(moment.duration(1, 'second').asMilliseconds(), 1000, '1 second as milliseconds'); - - // milliseconds - assert.equal(moment.duration(1, 'millisecond').asYears().toFixed(13), 0.0000000000317, '1 millisecond as years'); - assert.equal(moment.duration(1, 'millisecond').asMonths().toFixed(12), 0.000000000380, '1 millisecond as months'); - assert.equal(moment.duration(1, 'millisecond').asWeeks().toFixed(11), 0.00000000165, '1 millisecond as weeks'); - assert.equal(moment.duration(1, 'millisecond').asDays().toFixed(10), 0.0000000116, '1 millisecond as days'); - assert.equal(moment.duration(1, 'millisecond').asHours().toFixed(9), 0.000000278, '1 millisecond as hours'); - assert.equal(moment.duration(1, 'millisecond').asMinutes().toFixed(7), 0.0000167, '1 millisecond as minutes'); - assert.equal(moment.duration(1, 'millisecond').asSeconds(), 0.001, '1 millisecond as seconds'); - assert.equal(moment.duration(1, 'millisecond').asMilliseconds(), 1, '1 millisecond as milliseconds'); -}); - -test('as getters for small units', function (assert) { - var dS = moment.duration(1, 'milliseconds'), - ds = moment.duration(3, 'seconds'), - dm = moment.duration(13, 'minutes'); - - // Tests for issue #1867. - // Floating point errors for small duration units were introduced in version 2.8.0. - assert.equal(dS.as('milliseconds'), 1, 'as("milliseconds")'); - assert.equal(dS.asMilliseconds(), 1, 'asMilliseconds()'); - assert.equal(ds.as('seconds'), 3, 'as("seconds")'); - assert.equal(ds.asSeconds(), 3, 'asSeconds()'); - assert.equal(dm.as('minutes'), 13, 'as("minutes")'); - assert.equal(dm.asMinutes(), 13, 'asMinutes()'); -}); - -test('minutes getter for floating point hours', function (assert) { - // Tests for issue #2978. - // For certain floating point hours, .minutes() getter produced incorrect values due to the rounding errors - assert.equal(moment.duration(2.3, 'h').minutes(), 18, 'minutes()'); - assert.equal(moment.duration(4.1, 'h').minutes(), 6, 'minutes()'); -}); - -test('isDuration', function (assert) { - assert.ok(moment.isDuration(moment.duration(12345678)), 'correctly says true'); - assert.ok(!moment.isDuration(moment()), 'moment object is not a duration'); - assert.ok(!moment.isDuration({milliseconds: 1}), 'plain object is not a duration'); -}); - -test('add', function (assert) { - var d = moment.duration({months: 4, weeks: 3, days: 2}); - // for some reason, d._data._months does not get updated; use d._months instead. - assert.equal(d.add(1, 'month')._months, 5, 'Add months'); - assert.equal(d.add(5, 'days')._days, 28, 'Add days'); - assert.equal(d.add(10000)._milliseconds, 10000, 'Add milliseconds'); - assert.equal(d.add({h: 23, m: 59})._milliseconds, 23 * 60 * 60 * 1000 + 59 * 60 * 1000 + 10000, 'Add hour:minute'); -}); - -test('add and bubble', function (assert) { - var d; - - assert.equal(moment.duration(1, 'second').add(1000, 'milliseconds').seconds(), 2, 'Adding milliseconds should bubble up to seconds'); - assert.equal(moment.duration(1, 'minute').add(60, 'second').minutes(), 2, 'Adding seconds should bubble up to minutes'); - assert.equal(moment.duration(1, 'hour').add(60, 'minutes').hours(), 2, 'Adding minutes should bubble up to hours'); - assert.equal(moment.duration(1, 'day').add(24, 'hours').days(), 2, 'Adding hours should bubble up to days'); - - d = moment.duration(-1, 'day').add(1, 'hour'); - assert.equal(d.hours(), -23, '-1 day + 1 hour == -23 hour (component)'); - assert.equal(d.asHours(), -23, '-1 day + 1 hour == -23 hours'); - - d = moment.duration(-1, 'year').add(1, 'day'); - assert.equal(d.days(), -30, '- 1 year + 1 day == -30 days (component)'); - assert.equal(d.months(), -11, '- 1 year + 1 day == -11 months (component)'); - assert.equal(d.years(), 0, '- 1 year + 1 day == 0 years (component)'); - assert.equal(d.asDays(), -364, '- 1 year + 1 day == -364 days'); - - d = moment.duration(-1, 'year').add(1, 'hour'); - assert.equal(d.hours(), -23, '- 1 year + 1 hour == -23 hours (component)'); - assert.equal(d.days(), -30, '- 1 year + 1 hour == -30 days (component)'); - assert.equal(d.months(), -11, '- 1 year + 1 hour == -11 months (component)'); - assert.equal(d.years(), 0, '- 1 year + 1 hour == 0 years (component)'); -}); - -test('subtract and bubble', function (assert) { - var d; - - assert.equal(moment.duration(2, 'second').subtract(1000, 'milliseconds').seconds(), 1, 'Subtracting milliseconds should bubble up to seconds'); - assert.equal(moment.duration(2, 'minute').subtract(60, 'second').minutes(), 1, 'Subtracting seconds should bubble up to minutes'); - assert.equal(moment.duration(2, 'hour').subtract(60, 'minutes').hours(), 1, 'Subtracting minutes should bubble up to hours'); - assert.equal(moment.duration(2, 'day').subtract(24, 'hours').days(), 1, 'Subtracting hours should bubble up to days'); - - d = moment.duration(1, 'day').subtract(1, 'hour'); - assert.equal(d.hours(), 23, '1 day - 1 hour == 23 hour (component)'); - assert.equal(d.asHours(), 23, '1 day - 1 hour == 23 hours'); - - d = moment.duration(1, 'year').subtract(1, 'day'); - assert.equal(d.days(), 30, '1 year - 1 day == 30 days (component)'); - assert.equal(d.months(), 11, '1 year - 1 day == 11 months (component)'); - assert.equal(d.years(), 0, '1 year - 1 day == 0 years (component)'); - assert.equal(d.asDays(), 364, '1 year - 1 day == 364 days'); - - d = moment.duration(1, 'year').subtract(1, 'hour'); - assert.equal(d.hours(), 23, '1 year - 1 hour == 23 hours (component)'); - assert.equal(d.days(), 30, '1 year - 1 hour == 30 days (component)'); - assert.equal(d.months(), 11, '1 year - 1 hour == 11 months (component)'); - assert.equal(d.years(), 0, '1 year - 1 hour == 0 years (component)'); -}); - -test('subtract', function (assert) { - var d = moment.duration({months: 2, weeks: 2, days: 0, hours: 5}); - // for some reason, d._data._months does not get updated; use d._months instead. - assert.equal(d.subtract(1, 'months')._months, 1, 'Subtract months'); - assert.equal(d.subtract(14, 'days')._days, 0, 'Subtract days'); - assert.equal(d.subtract(10000)._milliseconds, 5 * 60 * 60 * 1000 - 10000, 'Subtract milliseconds'); - assert.equal(d.subtract({h: 1, m: 59})._milliseconds, 3 * 60 * 60 * 1000 + 1 * 60 * 1000 - 10000, 'Subtract hour:minute'); -}); - -test('JSON.stringify duration', function (assert) { - var d = moment.duration(1024, 'h'); - - assert.equal(JSON.stringify(d), '"' + d.toISOString() + '"', 'JSON.stringify on duration should return ISO string'); -}); - -test('duration plugins', function (assert) { - var durationObject = moment.duration(); - moment.duration.fn.foo = function (arg) { - assert.equal(this, durationObject); - assert.equal(arg, 5); - }; - durationObject.foo(5); -}); - -}))); - - -;(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' - && typeof require === 'function' ? factory(require('../../moment')) : - typeof define === 'function' && define.amd ? define(['../../moment'], factory) : - factory(global.moment) -}(this, (function (moment) { 'use strict'; - -function each(array, callback) { - var i; - for (i = 0; i < array.length; i++) { - callback(array[i], i, array); - } -} - -function objectKeys(obj) { - if (Object.keys) { - return Object.keys(obj); - } else { - // IE8 - var res = [], i; - for (i in obj) { - if (obj.hasOwnProperty(i)) { - res.push(i); - } - } - return res; - } -} - -// Pick the first defined of two or three arguments. - -function defineCommonLocaleTests(locale, options) { - test('lenient day of month ordinal parsing', function (assert) { - var i, ordinalStr, testMoment; - for (i = 1; i <= 31; ++i) { - ordinalStr = moment([2014, 0, i]).format('YYYY MM Do'); - testMoment = moment(ordinalStr, 'YYYY MM Do'); - assert.equal(testMoment.year(), 2014, - 'lenient day of month ordinal parsing ' + i + ' year check'); - assert.equal(testMoment.month(), 0, - 'lenient day of month ordinal parsing ' + i + ' month check'); - assert.equal(testMoment.date(), i, - 'lenient day of month ordinal parsing ' + i + ' date check'); - } - }); - - test('lenient day of month ordinal parsing of number', function (assert) { - var i, testMoment; - for (i = 1; i <= 31; ++i) { - testMoment = moment('2014 01 ' + i, 'YYYY MM Do'); - assert.equal(testMoment.year(), 2014, - 'lenient day of month ordinal parsing of number ' + i + ' year check'); - assert.equal(testMoment.month(), 0, - 'lenient day of month ordinal parsing of number ' + i + ' month check'); - assert.equal(testMoment.date(), i, - 'lenient day of month ordinal parsing of number ' + i + ' date check'); - } - }); - - test('strict day of month ordinal parsing', function (assert) { - var i, ordinalStr, testMoment; - for (i = 1; i <= 31; ++i) { - ordinalStr = moment([2014, 0, i]).format('YYYY MM Do'); - testMoment = moment(ordinalStr, 'YYYY MM Do', true); - assert.ok(testMoment.isValid(), 'strict day of month ordinal parsing ' + i); - } - }); - - test('meridiem invariant', function (assert) { - var h, m, t1, t2; - for (h = 0; h < 24; ++h) { - for (m = 0; m < 60; m += 15) { - t1 = moment.utc([2000, 0, 1, h, m]); - t2 = moment.utc(t1.format('A h:mm'), 'A h:mm'); - assert.equal(t2.format('HH:mm'), t1.format('HH:mm'), - 'meridiem at ' + t1.format('HH:mm')); - } - } - }); - - test('date format correctness', function (assert) { - var data, tokens; - data = moment.localeData()._longDateFormat; - tokens = objectKeys(data); - each(tokens, function (srchToken) { - // Check each format string to make sure it does not contain any - // tokens that need to be expanded. - each(tokens, function (baseToken) { - // strip escaped sequences - var format = data[baseToken].replace(/(\[[^\]]*\])/g, ''); - assert.equal(false, !!~format.indexOf(srchToken), - 'contains ' + srchToken + ' in ' + baseToken); - }); - }); - }); - - test('month parsing correctness', function (assert) { - var i, m; - - if (locale === 'tr') { - // I can't fix it :( - expect(0); - return; - } - function tester(format) { - var r; - r = moment(m.format(format), format); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format); - r = moment(m.format(format).toLocaleUpperCase(), format); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' upper'); - r = moment(m.format(format).toLocaleLowerCase(), format); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' lower'); - - r = moment(m.format(format), format, true); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' strict'); - r = moment(m.format(format).toLocaleUpperCase(), format, true); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' upper strict'); - r = moment(m.format(format).toLocaleLowerCase(), format, true); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' lower strict'); - } - - for (i = 0; i < 12; ++i) { - m = moment([2015, i, 15, 18]); - tester('MMM'); - tester('MMM.'); - tester('MMMM'); - tester('MMMM.'); - } - }); - - test('weekday parsing correctness', function (assert) { - var i, m; - - if (locale === 'tr' || locale === 'az' || locale === 'ro') { - // tr, az: There is a lower-case letter (ı), that converted to - // upper then lower changes to i - // ro: there is the letter ț which behaves weird under IE8 - expect(0); - return; - } - function tester(format) { - var r, baseMsg = 'weekday ' + m.weekday() + ' fmt ' + format + ' ' + m.toISOString(); - r = moment(m.format(format), format); - assert.equal(r.weekday(), m.weekday(), baseMsg); - r = moment(m.format(format).toLocaleUpperCase(), format); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' upper'); - r = moment(m.format(format).toLocaleLowerCase(), format); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' lower'); - - r = moment(m.format(format), format, true); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' strict'); - r = moment(m.format(format).toLocaleUpperCase(), format, true); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' upper strict'); - r = moment(m.format(format).toLocaleLowerCase(), format, true); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' lower strict'); - } - - for (i = 0; i < 7; ++i) { - m = moment.utc([2015, 0, i + 1, 18]); - tester('dd'); - tester('ddd'); - tester('dddd'); - } - }); - - test('valid localeData', function (assert) { - assert.equal(moment().localeData().months().length, 12, 'months should return 12 months'); - assert.equal(moment().localeData().monthsShort().length, 12, 'monthsShort should return 12 months'); - assert.equal(moment().localeData().weekdays().length, 7, 'weekdays should return 7 days'); - assert.equal(moment().localeData().weekdaysShort().length, 7, 'weekdaysShort should return 7 days'); - assert.equal(moment().localeData().weekdaysMin().length, 7, 'monthsShort should return 7 days'); - }); -} - -function setupDeprecationHandler(test, moment$$1, scope) { - test._expectedDeprecations = null; - test._observedDeprecations = null; - test._oldSupress = moment$$1.suppressDeprecationWarnings; - moment$$1.suppressDeprecationWarnings = true; - test.expectedDeprecations = function () { - test._expectedDeprecations = arguments; - test._observedDeprecations = []; - }; - moment$$1.deprecationHandler = function (name, msg) { - var deprecationId = matchedDeprecation(name, msg, test._expectedDeprecations); - if (deprecationId === -1) { - throw new Error('Unexpected deprecation thrown name=' + - name + ' msg=' + msg); - } - test._observedDeprecations[deprecationId] = 1; - }; -} - -function teardownDeprecationHandler(test, moment$$1, scope) { - moment$$1.suppressDeprecationWarnings = test._oldSupress; - - if (test._expectedDeprecations != null) { - var missedDeprecations = []; - each(test._expectedDeprecations, function (deprecationPattern, id) { - if (test._observedDeprecations[id] !== 1) { - missedDeprecations.push(deprecationPattern); - } - }); - if (missedDeprecations.length !== 0) { - throw new Error('Expected deprecation warnings did not happen: ' + - missedDeprecations.join(' ')); - } - } -} - -function matchedDeprecation(name, msg, deprecations) { - if (deprecations == null) { - return -1; - } - for (var i = 0; i < deprecations.length; ++i) { - if (name != null && name === deprecations[i]) { - return i; - } - if (msg != null && msg.substring(0, deprecations[i].length) === deprecations[i]) { - return i; - } - } - return -1; -} - -/*global QUnit:false*/ - -var test = QUnit.test; - -var expect = QUnit.expect; - -function module$1 (name, lifecycle) { - QUnit.module(name, { - setup : function () { - moment.locale('en'); - moment.createFromInputFallback = function (config) { - throw new Error('input not handled by moment: ' + config._i); - }; - setupDeprecationHandler(test, moment, 'core'); - if (lifecycle && lifecycle.setup) { - lifecycle.setup(); - } - }, - teardown : function () { - teardownDeprecationHandler(test, moment, 'core'); - if (lifecycle && lifecycle.teardown) { - lifecycle.teardown(); - } - } - }); -} - -module$1('duration from moments'); - -test('pure year diff', function (assert) { - var m1 = moment('2012-01-01T00:00:00.000Z'), - m2 = moment('2013-01-01T00:00:00.000Z'); - - assert.equal(moment.duration({from: m1, to: m2}).as('years'), 1, 'year moment difference'); - assert.equal(moment.duration({from: m2, to: m1}).as('years'), -1, 'negative year moment difference'); -}); - -test('month and day diff', function (assert) { - var m1 = moment('2012-01-15T00:00:00.000Z'), - m2 = moment('2012-02-17T00:00:00.000Z'), - d = moment.duration({from: m1, to: m2}); - - assert.equal(d.get('days'), 2); - assert.equal(d.get('months'), 1); -}); - -test('day diff, separate months', function (assert) { - var m1 = moment('2012-01-15T00:00:00.000Z'), - m2 = moment('2012-02-13T00:00:00.000Z'), - d = moment.duration({from: m1, to: m2}); - - assert.equal(d.as('days'), 29); -}); - -test('hour diff', function (assert) { - var m1 = moment('2012-01-15T17:00:00.000Z'), - m2 = moment('2012-01-16T03:00:00.000Z'), - d = moment.duration({from: m1, to: m2}); - - assert.equal(d.as('hours'), 10); -}); - -test('minute diff', function (assert) { - var m1 = moment('2012-01-15T17:45:00.000Z'), - m2 = moment('2012-01-16T03:15:00.000Z'), - d = moment.duration({from: m1, to: m2}); - - assert.equal(d.as('hours'), 9.5); -}); - -}))); - - -;(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' - && typeof require === 'function' ? factory(require('../../moment')) : - typeof define === 'function' && define.amd ? define(['../../moment'], factory) : - factory(global.moment) -}(this, (function (moment) { 'use strict'; - -function each(array, callback) { - var i; - for (i = 0; i < array.length; i++) { - callback(array[i], i, array); - } -} - -function objectKeys(obj) { - if (Object.keys) { - return Object.keys(obj); - } else { - // IE8 - var res = [], i; - for (i in obj) { - if (obj.hasOwnProperty(i)) { - res.push(i); - } - } - return res; - } -} - -// Pick the first defined of two or three arguments. - -function defineCommonLocaleTests(locale, options) { - test('lenient day of month ordinal parsing', function (assert) { - var i, ordinalStr, testMoment; - for (i = 1; i <= 31; ++i) { - ordinalStr = moment([2014, 0, i]).format('YYYY MM Do'); - testMoment = moment(ordinalStr, 'YYYY MM Do'); - assert.equal(testMoment.year(), 2014, - 'lenient day of month ordinal parsing ' + i + ' year check'); - assert.equal(testMoment.month(), 0, - 'lenient day of month ordinal parsing ' + i + ' month check'); - assert.equal(testMoment.date(), i, - 'lenient day of month ordinal parsing ' + i + ' date check'); - } - }); - - test('lenient day of month ordinal parsing of number', function (assert) { - var i, testMoment; - for (i = 1; i <= 31; ++i) { - testMoment = moment('2014 01 ' + i, 'YYYY MM Do'); - assert.equal(testMoment.year(), 2014, - 'lenient day of month ordinal parsing of number ' + i + ' year check'); - assert.equal(testMoment.month(), 0, - 'lenient day of month ordinal parsing of number ' + i + ' month check'); - assert.equal(testMoment.date(), i, - 'lenient day of month ordinal parsing of number ' + i + ' date check'); - } - }); - - test('strict day of month ordinal parsing', function (assert) { - var i, ordinalStr, testMoment; - for (i = 1; i <= 31; ++i) { - ordinalStr = moment([2014, 0, i]).format('YYYY MM Do'); - testMoment = moment(ordinalStr, 'YYYY MM Do', true); - assert.ok(testMoment.isValid(), 'strict day of month ordinal parsing ' + i); - } - }); - - test('meridiem invariant', function (assert) { - var h, m, t1, t2; - for (h = 0; h < 24; ++h) { - for (m = 0; m < 60; m += 15) { - t1 = moment.utc([2000, 0, 1, h, m]); - t2 = moment.utc(t1.format('A h:mm'), 'A h:mm'); - assert.equal(t2.format('HH:mm'), t1.format('HH:mm'), - 'meridiem at ' + t1.format('HH:mm')); - } - } - }); - - test('date format correctness', function (assert) { - var data, tokens; - data = moment.localeData()._longDateFormat; - tokens = objectKeys(data); - each(tokens, function (srchToken) { - // Check each format string to make sure it does not contain any - // tokens that need to be expanded. - each(tokens, function (baseToken) { - // strip escaped sequences - var format = data[baseToken].replace(/(\[[^\]]*\])/g, ''); - assert.equal(false, !!~format.indexOf(srchToken), - 'contains ' + srchToken + ' in ' + baseToken); - }); - }); - }); - - test('month parsing correctness', function (assert) { - var i, m; - - if (locale === 'tr') { - // I can't fix it :( - expect(0); - return; - } - function tester(format) { - var r; - r = moment(m.format(format), format); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format); - r = moment(m.format(format).toLocaleUpperCase(), format); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' upper'); - r = moment(m.format(format).toLocaleLowerCase(), format); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' lower'); - - r = moment(m.format(format), format, true); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' strict'); - r = moment(m.format(format).toLocaleUpperCase(), format, true); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' upper strict'); - r = moment(m.format(format).toLocaleLowerCase(), format, true); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' lower strict'); - } - - for (i = 0; i < 12; ++i) { - m = moment([2015, i, 15, 18]); - tester('MMM'); - tester('MMM.'); - tester('MMMM'); - tester('MMMM.'); - } - }); - - test('weekday parsing correctness', function (assert) { - var i, m; - - if (locale === 'tr' || locale === 'az' || locale === 'ro') { - // tr, az: There is a lower-case letter (ı), that converted to - // upper then lower changes to i - // ro: there is the letter ț which behaves weird under IE8 - expect(0); - return; - } - function tester(format) { - var r, baseMsg = 'weekday ' + m.weekday() + ' fmt ' + format + ' ' + m.toISOString(); - r = moment(m.format(format), format); - assert.equal(r.weekday(), m.weekday(), baseMsg); - r = moment(m.format(format).toLocaleUpperCase(), format); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' upper'); - r = moment(m.format(format).toLocaleLowerCase(), format); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' lower'); - - r = moment(m.format(format), format, true); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' strict'); - r = moment(m.format(format).toLocaleUpperCase(), format, true); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' upper strict'); - r = moment(m.format(format).toLocaleLowerCase(), format, true); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' lower strict'); - } - - for (i = 0; i < 7; ++i) { - m = moment.utc([2015, 0, i + 1, 18]); - tester('dd'); - tester('ddd'); - tester('dddd'); - } - }); - - test('valid localeData', function (assert) { - assert.equal(moment().localeData().months().length, 12, 'months should return 12 months'); - assert.equal(moment().localeData().monthsShort().length, 12, 'monthsShort should return 12 months'); - assert.equal(moment().localeData().weekdays().length, 7, 'weekdays should return 7 days'); - assert.equal(moment().localeData().weekdaysShort().length, 7, 'weekdaysShort should return 7 days'); - assert.equal(moment().localeData().weekdaysMin().length, 7, 'monthsShort should return 7 days'); - }); -} - -function setupDeprecationHandler(test, moment$$1, scope) { - test._expectedDeprecations = null; - test._observedDeprecations = null; - test._oldSupress = moment$$1.suppressDeprecationWarnings; - moment$$1.suppressDeprecationWarnings = true; - test.expectedDeprecations = function () { - test._expectedDeprecations = arguments; - test._observedDeprecations = []; - }; - moment$$1.deprecationHandler = function (name, msg) { - var deprecationId = matchedDeprecation(name, msg, test._expectedDeprecations); - if (deprecationId === -1) { - throw new Error('Unexpected deprecation thrown name=' + - name + ' msg=' + msg); - } - test._observedDeprecations[deprecationId] = 1; - }; -} - -function teardownDeprecationHandler(test, moment$$1, scope) { - moment$$1.suppressDeprecationWarnings = test._oldSupress; - - if (test._expectedDeprecations != null) { - var missedDeprecations = []; - each(test._expectedDeprecations, function (deprecationPattern, id) { - if (test._observedDeprecations[id] !== 1) { - missedDeprecations.push(deprecationPattern); - } - }); - if (missedDeprecations.length !== 0) { - throw new Error('Expected deprecation warnings did not happen: ' + - missedDeprecations.join(' ')); - } - } -} - -function matchedDeprecation(name, msg, deprecations) { - if (deprecations == null) { - return -1; - } - for (var i = 0; i < deprecations.length; ++i) { - if (name != null && name === deprecations[i]) { - return i; - } - if (msg != null && msg.substring(0, deprecations[i].length) === deprecations[i]) { - return i; - } - } - return -1; -} - -/*global QUnit:false*/ - -var test = QUnit.test; - -var expect = QUnit.expect; - -function module$1 (name, lifecycle) { - QUnit.module(name, { - setup : function () { - moment.locale('en'); - moment.createFromInputFallback = function (config) { - throw new Error('input not handled by moment: ' + config._i); - }; - setupDeprecationHandler(test, moment, 'core'); - if (lifecycle && lifecycle.setup) { - lifecycle.setup(); - } - }, - teardown : function () { - teardownDeprecationHandler(test, moment, 'core'); - if (lifecycle && lifecycle.teardown) { - lifecycle.teardown(); - } - } - }); -} - -module$1('invalid'); - -test('invalid duration', function (assert) { - var m = moment.duration.invalid(); // should be invalid - assert.equal(m.isValid(), false); - assert.ok(isNaN(m.valueOf())); -}); - -test('valid duration', function (assert) { - var m = moment.duration({d: null}); // should be valid, for now - assert.equal(m.isValid(), true); - assert.equal(m.valueOf(), 0); -}); - -test('invalid duration - only smallest unit can have decimal', function (assert) { - var m = moment.duration({'days': 3.5, 'hours': 1.1}); // should be invalid - assert.equal(m.isValid(), false); - assert.ok(isNaN(m.valueOf())); // .valueOf() returns NaN for invalid durations -}); - -test('valid duration - smallest unit can have decimal', function (assert) { - var m = moment.duration({'days': 3, 'hours': 1.1}); // should be valid - assert.equal(m.isValid(), true); - assert.equal(m.asHours(), 73.1); -}); - -test('invalid duration with two arguments', function (assert) { - var m = moment.duration(NaN, 'days'); - assert.equal(m.isValid(), false); - assert.ok(isNaN(m.valueOf())); -}); - -test('invalid duration operations', function (assert) { - var invalids = [ - moment.duration(NaN), - moment.duration(NaN, 'days'), - moment.duration.invalid() - ], - i, - invalid, - valid = moment.duration(); - - for (i = 0; i < invalids.length; ++i) { - invalid = invalids[i]; - - assert.ok(!invalid.add(5, 'hours').isValid(), 'invalid.add is invalid; i=' + i); - assert.ok(!invalid.subtract(30, 'days').isValid(), 'invalid.subtract is invalid; i=' + i); - assert.ok(!invalid.abs().isValid(), 'invalid.abs is invalid; i=' + i); - assert.ok(isNaN(invalid.as('years')), 'invalid.as is NaN; i=' + i); - assert.ok(isNaN(invalid.asMilliseconds()), 'invalid.asMilliseconds is NaN; i=' + i); - assert.ok(isNaN(invalid.asSeconds()), 'invalid.asSeconds is NaN; i=' + i); - assert.ok(isNaN(invalid.asMinutes()), 'invalid.asMinutes is NaN; i=' + i); - assert.ok(isNaN(invalid.asHours()), 'invalid.asHours is NaN; i=' + i); - assert.ok(isNaN(invalid.asDays()), 'invalid.asDays is NaN; i=' + i); - assert.ok(isNaN(invalid.asWeeks()), 'invalid.asWeeks is NaN; i=' + i); - assert.ok(isNaN(invalid.asMonths()), 'invalid.asMonths is NaN; i=' + i); - assert.ok(isNaN(invalid.asYears()), 'invalid.asYears is NaN; i=' + i); - assert.ok(isNaN(invalid.valueOf()), 'invalid.valueOf is NaN; i=' + i); - assert.ok(isNaN(invalid.get('hours')), 'invalid.get is NaN; i=' + i); - - assert.ok(isNaN(invalid.milliseconds()), 'invalid.milliseconds is NaN; i=' + i); - assert.ok(isNaN(invalid.seconds()), 'invalid.seconds is NaN; i=' + i); - assert.ok(isNaN(invalid.minutes()), 'invalid.minutes is NaN; i=' + i); - assert.ok(isNaN(invalid.hours()), 'invalid.hours is NaN; i=' + i); - assert.ok(isNaN(invalid.days()), 'invalid.days is NaN; i=' + i); - assert.ok(isNaN(invalid.weeks()), 'invalid.weeks is NaN; i=' + i); - assert.ok(isNaN(invalid.months()), 'invalid.months is NaN; i=' + i); - assert.ok(isNaN(invalid.years()), 'invalid.years is NaN; i=' + i); - - assert.equal(invalid.humanize(), - invalid.localeData().invalidDate(), - 'invalid.humanize is localized invalid duration string; i=' + i); - assert.equal(invalid.toISOString(), - invalid.localeData().invalidDate(), - 'invalid.toISOString is localized invalid duration string; i=' + i); - assert.equal(invalid.toString(), - invalid.localeData().invalidDate(), - 'invalid.toString is localized invalid duration string; i=' + i); - assert.equal(invalid.toJSON(), invalid.localeData().invalidDate(), 'invalid.toJSON is null; i=' + i); - assert.equal(invalid.locale(), 'en', 'invalid.locale; i=' + i); - assert.equal(invalid.localeData()._abbr, 'en', 'invalid.localeData()._abbr; i=' + i); - } -}); - -}))); - - -;(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' - && typeof require === 'function' ? factory(require('../../moment')) : - typeof define === 'function' && define.amd ? define(['../../moment'], factory) : - factory(global.moment) -}(this, (function (moment) { 'use strict'; - -function each(array, callback) { - var i; - for (i = 0; i < array.length; i++) { - callback(array[i], i, array); - } -} - -function objectKeys(obj) { - if (Object.keys) { - return Object.keys(obj); - } else { - // IE8 - var res = [], i; - for (i in obj) { - if (obj.hasOwnProperty(i)) { - res.push(i); - } - } - return res; - } -} - -// Pick the first defined of two or three arguments. - -function defineCommonLocaleTests(locale, options) { - test('lenient day of month ordinal parsing', function (assert) { - var i, ordinalStr, testMoment; - for (i = 1; i <= 31; ++i) { - ordinalStr = moment([2014, 0, i]).format('YYYY MM Do'); - testMoment = moment(ordinalStr, 'YYYY MM Do'); - assert.equal(testMoment.year(), 2014, - 'lenient day of month ordinal parsing ' + i + ' year check'); - assert.equal(testMoment.month(), 0, - 'lenient day of month ordinal parsing ' + i + ' month check'); - assert.equal(testMoment.date(), i, - 'lenient day of month ordinal parsing ' + i + ' date check'); - } - }); - - test('lenient day of month ordinal parsing of number', function (assert) { - var i, testMoment; - for (i = 1; i <= 31; ++i) { - testMoment = moment('2014 01 ' + i, 'YYYY MM Do'); - assert.equal(testMoment.year(), 2014, - 'lenient day of month ordinal parsing of number ' + i + ' year check'); - assert.equal(testMoment.month(), 0, - 'lenient day of month ordinal parsing of number ' + i + ' month check'); - assert.equal(testMoment.date(), i, - 'lenient day of month ordinal parsing of number ' + i + ' date check'); - } - }); - - test('strict day of month ordinal parsing', function (assert) { - var i, ordinalStr, testMoment; - for (i = 1; i <= 31; ++i) { - ordinalStr = moment([2014, 0, i]).format('YYYY MM Do'); - testMoment = moment(ordinalStr, 'YYYY MM Do', true); - assert.ok(testMoment.isValid(), 'strict day of month ordinal parsing ' + i); - } - }); - - test('meridiem invariant', function (assert) { - var h, m, t1, t2; - for (h = 0; h < 24; ++h) { - for (m = 0; m < 60; m += 15) { - t1 = moment.utc([2000, 0, 1, h, m]); - t2 = moment.utc(t1.format('A h:mm'), 'A h:mm'); - assert.equal(t2.format('HH:mm'), t1.format('HH:mm'), - 'meridiem at ' + t1.format('HH:mm')); - } - } - }); - - test('date format correctness', function (assert) { - var data, tokens; - data = moment.localeData()._longDateFormat; - tokens = objectKeys(data); - each(tokens, function (srchToken) { - // Check each format string to make sure it does not contain any - // tokens that need to be expanded. - each(tokens, function (baseToken) { - // strip escaped sequences - var format = data[baseToken].replace(/(\[[^\]]*\])/g, ''); - assert.equal(false, !!~format.indexOf(srchToken), - 'contains ' + srchToken + ' in ' + baseToken); - }); - }); - }); - - test('month parsing correctness', function (assert) { - var i, m; - - if (locale === 'tr') { - // I can't fix it :( - expect(0); - return; - } - function tester(format) { - var r; - r = moment(m.format(format), format); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format); - r = moment(m.format(format).toLocaleUpperCase(), format); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' upper'); - r = moment(m.format(format).toLocaleLowerCase(), format); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' lower'); - - r = moment(m.format(format), format, true); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' strict'); - r = moment(m.format(format).toLocaleUpperCase(), format, true); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' upper strict'); - r = moment(m.format(format).toLocaleLowerCase(), format, true); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' lower strict'); - } - - for (i = 0; i < 12; ++i) { - m = moment([2015, i, 15, 18]); - tester('MMM'); - tester('MMM.'); - tester('MMMM'); - tester('MMMM.'); - } - }); - - test('weekday parsing correctness', function (assert) { - var i, m; - - if (locale === 'tr' || locale === 'az' || locale === 'ro') { - // tr, az: There is a lower-case letter (ı), that converted to - // upper then lower changes to i - // ro: there is the letter ț which behaves weird under IE8 - expect(0); - return; - } - function tester(format) { - var r, baseMsg = 'weekday ' + m.weekday() + ' fmt ' + format + ' ' + m.toISOString(); - r = moment(m.format(format), format); - assert.equal(r.weekday(), m.weekday(), baseMsg); - r = moment(m.format(format).toLocaleUpperCase(), format); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' upper'); - r = moment(m.format(format).toLocaleLowerCase(), format); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' lower'); - - r = moment(m.format(format), format, true); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' strict'); - r = moment(m.format(format).toLocaleUpperCase(), format, true); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' upper strict'); - r = moment(m.format(format).toLocaleLowerCase(), format, true); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' lower strict'); - } - - for (i = 0; i < 7; ++i) { - m = moment.utc([2015, 0, i + 1, 18]); - tester('dd'); - tester('ddd'); - tester('dddd'); - } - }); - - test('valid localeData', function (assert) { - assert.equal(moment().localeData().months().length, 12, 'months should return 12 months'); - assert.equal(moment().localeData().monthsShort().length, 12, 'monthsShort should return 12 months'); - assert.equal(moment().localeData().weekdays().length, 7, 'weekdays should return 7 days'); - assert.equal(moment().localeData().weekdaysShort().length, 7, 'weekdaysShort should return 7 days'); - assert.equal(moment().localeData().weekdaysMin().length, 7, 'monthsShort should return 7 days'); - }); -} - -function setupDeprecationHandler(test, moment$$1, scope) { - test._expectedDeprecations = null; - test._observedDeprecations = null; - test._oldSupress = moment$$1.suppressDeprecationWarnings; - moment$$1.suppressDeprecationWarnings = true; - test.expectedDeprecations = function () { - test._expectedDeprecations = arguments; - test._observedDeprecations = []; - }; - moment$$1.deprecationHandler = function (name, msg) { - var deprecationId = matchedDeprecation(name, msg, test._expectedDeprecations); - if (deprecationId === -1) { - throw new Error('Unexpected deprecation thrown name=' + - name + ' msg=' + msg); - } - test._observedDeprecations[deprecationId] = 1; - }; -} - -function teardownDeprecationHandler(test, moment$$1, scope) { - moment$$1.suppressDeprecationWarnings = test._oldSupress; - - if (test._expectedDeprecations != null) { - var missedDeprecations = []; - each(test._expectedDeprecations, function (deprecationPattern, id) { - if (test._observedDeprecations[id] !== 1) { - missedDeprecations.push(deprecationPattern); - } - }); - if (missedDeprecations.length !== 0) { - throw new Error('Expected deprecation warnings did not happen: ' + - missedDeprecations.join(' ')); - } - } -} - -function matchedDeprecation(name, msg, deprecations) { - if (deprecations == null) { - return -1; - } - for (var i = 0; i < deprecations.length; ++i) { - if (name != null && name === deprecations[i]) { - return i; - } - if (msg != null && msg.substring(0, deprecations[i].length) === deprecations[i]) { - return i; - } - } - return -1; -} - -/*global QUnit:false*/ - -var test = QUnit.test; - -var expect = QUnit.expect; - -function module$1 (name, lifecycle) { - QUnit.module(name, { - setup : function () { - moment.locale('en'); - moment.createFromInputFallback = function (config) { - throw new Error('input not handled by moment: ' + config._i); - }; - setupDeprecationHandler(test, moment, 'core'); - if (lifecycle && lifecycle.setup) { - lifecycle.setup(); - } - }, - teardown : function () { - teardownDeprecationHandler(test, moment, 'core'); - if (lifecycle && lifecycle.teardown) { - lifecycle.teardown(); - } - } - }); -} - -module$1('format'); - -test('format YY', function (assert) { - var b = moment(new Date(2009, 1, 14, 15, 25, 50, 125)); - assert.equal(b.format('YY'), '09', 'YY ---> 09'); -}); - -test('format escape brackets', function (assert) { - moment.locale('en'); - - var b = moment(new Date(2009, 1, 14, 15, 25, 50, 125)); - assert.equal(b.format('[day]'), 'day', 'Single bracket'); - assert.equal(b.format('[day] YY [YY]'), 'day 09 YY', 'Double bracket'); - assert.equal(b.format('[YY'), '[09', 'Un-ended bracket'); - assert.equal(b.format('[[YY]]'), '[YY]', 'Double nested brackets'); - assert.equal(b.format('[[]'), '[', 'Escape open bracket'); - assert.equal(b.format('[Last]'), 'Last', 'localized tokens'); - assert.equal(b.format('[L] L'), 'L 02/14/2009', 'localized tokens with escaped localized tokens'); - assert.equal(b.format('[L LL LLL LLLL aLa]'), 'L LL LLL LLLL aLa', 'localized tokens with escaped localized tokens'); - assert.equal(b.format('[LLL] LLL'), 'LLL February 14, 2009 3:25 PM', 'localized tokens with escaped localized tokens (recursion)'); - assert.equal(b.format('YYYY[\n]DD[\n]'), '2009\n14\n', 'Newlines'); -}); - -test('handle negative years', function (assert) { - moment.locale('en'); - assert.equal(moment.utc().year(-1).format('YY'), '-01', 'YY with negative year'); - assert.equal(moment.utc().year(-1).format('YYYY'), '-0001', 'YYYY with negative year'); - assert.equal(moment.utc().year(-12).format('YY'), '-12', 'YY with negative year'); - assert.equal(moment.utc().year(-12).format('YYYY'), '-0012', 'YYYY with negative year'); - assert.equal(moment.utc().year(-123).format('YY'), '-23', 'YY with negative year'); - assert.equal(moment.utc().year(-123).format('YYYY'), '-0123', 'YYYY with negative year'); - assert.equal(moment.utc().year(-1234).format('YY'), '-34', 'YY with negative year'); - assert.equal(moment.utc().year(-1234).format('YYYY'), '-1234', 'YYYY with negative year'); - assert.equal(moment.utc().year(-12345).format('YY'), '-45', 'YY with negative year'); - assert.equal(moment.utc().year(-12345).format('YYYY'), '-12345', 'YYYY with negative year'); -}); - -test('format milliseconds', function (assert) { - var b = moment(new Date(2009, 1, 14, 15, 25, 50, 123)); - assert.equal(b.format('S'), '1', 'Deciseconds'); - assert.equal(b.format('SS'), '12', 'Centiseconds'); - assert.equal(b.format('SSS'), '123', 'Milliseconds'); - b.milliseconds(789); - assert.equal(b.format('S'), '7', 'Deciseconds'); - assert.equal(b.format('SS'), '78', 'Centiseconds'); - assert.equal(b.format('SSS'), '789', 'Milliseconds'); -}); - -test('format timezone', function (assert) { - var b = moment(new Date(2010, 1, 14, 15, 25, 50, 125)); - assert.ok(b.format('Z').match(/^[\+\-]\d\d:\d\d$/), b.format('Z') + ' should be something like \'+07:30\''); - assert.ok(b.format('ZZ').match(/^[\+\-]\d{4}$/), b.format('ZZ') + ' should be something like \'+0700\''); -}); - -test('format multiple with utc offset', function (assert) { - var b = moment('2012-10-08 -1200', ['YYYY-MM-DD HH:mm ZZ', 'YYYY-MM-DD ZZ', 'YYYY-MM-DD']); - assert.equal(b.format('YYYY-MM'), '2012-10', 'Parsing multiple formats should not crash with different sized formats'); -}); - -test('isDST', function (assert) { - var janOffset = new Date(2011, 0, 1).getTimezoneOffset(), - julOffset = new Date(2011, 6, 1).getTimezoneOffset(), - janIsDst = janOffset < julOffset, - julIsDst = julOffset < janOffset, - jan1 = moment([2011]), - jul1 = moment([2011, 6]); - - if (janIsDst && julIsDst) { - assert.ok(0, 'January and July cannot both be in DST'); - assert.ok(0, 'January and July cannot both be in DST'); - } else if (janIsDst) { - assert.ok(jan1.isDST(), 'January 1 is DST'); - assert.ok(!jul1.isDST(), 'July 1 is not DST'); - } else if (julIsDst) { - assert.ok(!jan1.isDST(), 'January 1 is not DST'); - assert.ok(jul1.isDST(), 'July 1 is DST'); - } else { - assert.ok(!jan1.isDST(), 'January 1 is not DST'); - assert.ok(!jul1.isDST(), 'July 1 is not DST'); - } -}); - -test('unix timestamp', function (assert) { - var m = moment('1234567890.123', 'X'); - assert.equal(m.format('X'), '1234567890', 'unix timestamp without milliseconds'); - assert.equal(m.format('X.S'), '1234567890.1', 'unix timestamp with deciseconds'); - assert.equal(m.format('X.SS'), '1234567890.12', 'unix timestamp with centiseconds'); - assert.equal(m.format('X.SSS'), '1234567890.123', 'unix timestamp with milliseconds'); - - m = moment(1234567890.123, 'X'); - assert.equal(m.format('X'), '1234567890', 'unix timestamp as integer'); -}); - -test('unix offset milliseconds', function (assert) { - var m = moment('1234567890123', 'x'); - assert.equal(m.format('x'), '1234567890123', 'unix offset in milliseconds'); - - m = moment(1234567890123, 'x'); - assert.equal(m.format('x'), '1234567890123', 'unix offset in milliseconds as integer'); -}); - -test('utcOffset sanity checks', function (assert) { - assert.equal(moment().utcOffset() % 15, 0, - 'utc offset should be a multiple of 15 (was ' + moment().utcOffset() + ')'); - - assert.equal(moment().utcOffset(), -(new Date()).getTimezoneOffset(), - 'utcOffset should return the opposite of getTimezoneOffset'); -}); - -test('default format', function (assert) { - var isoRegex = /\d{4}.\d\d.\d\dT\d\d.\d\d.\d\d[\+\-]\d\d:\d\d/; - assert.ok(isoRegex.exec(moment().format()), 'default format (' + moment().format() + ') should match ISO'); -}); - -test('default UTC format', function (assert) { - var isoRegex = /\d{4}.\d\d.\d\dT\d\d.\d\d.\d\dZ/; - assert.ok(isoRegex.exec(moment.utc().format()), 'default UTC format (' + moment.utc().format() + ') should match ISO'); -}); - -test('toJSON', function (assert) { - var supportsJson = typeof JSON !== 'undefined' && JSON.stringify && JSON.stringify.call, - date = moment('2012-10-09T21:30:40.678+0100'); - - assert.equal(date.toJSON(), '2012-10-09T20:30:40.678Z', 'should output ISO8601 on moment.fn.toJSON'); - - if (supportsJson) { - assert.equal(JSON.stringify({ - date : date - }), '{"date":"2012-10-09T20:30:40.678Z"}', 'should output ISO8601 on JSON.stringify'); - } -}); - -test('toISOString', function (assert) { - var date = moment.utc('2012-10-09T20:30:40.678'); - - assert.equal(date.toISOString(), '2012-10-09T20:30:40.678Z', 'should output ISO8601 on moment.fn.toISOString'); - - // big years - date = moment.utc('+020123-10-09T20:30:40.678'); - assert.equal(date.toISOString(), '+020123-10-09T20:30:40.678Z', 'ISO8601 format on big positive year'); - // negative years - date = moment.utc('-000001-10-09T20:30:40.678'); - assert.equal(date.toISOString(), '-000001-10-09T20:30:40.678Z', 'ISO8601 format on negative year'); - // big negative years - date = moment.utc('-020123-10-09T20:30:40.678'); - assert.equal(date.toISOString(), '-020123-10-09T20:30:40.678Z', 'ISO8601 format on big negative year'); - - //invalid dates - date = moment.utc('2017-12-32'); - assert.equal(date.toISOString(), null, 'An invalid date to iso string is null'); -}); - -// See https://nodejs.org/dist/latest/docs/api/util.html#util_custom_inspect_function_on_objects -test('inspect', function (assert) { - function roundtrip(m) { - /*jshint evil:true */ - return (new Function('moment', 'return ' + m.inspect()))(moment); - } - function testInspect(date, string) { - var inspected = date.inspect(); - assert.equal(inspected, string); - assert.ok(date.isSame(roundtrip(date)), 'Tried to parse ' + inspected); - } - - testInspect( - moment('2012-10-09T20:30:40.678'), - 'moment("2012-10-09T20:30:40.678")' - ); - testInspect( - moment('+020123-10-09T20:30:40.678'), - 'moment("+020123-10-09T20:30:40.678")' - ); - testInspect( - moment.utc('2012-10-09T20:30:40.678'), - 'moment.utc("2012-10-09T20:30:40.678+00:00")' - ); - testInspect( - moment.utc('+020123-10-09T20:30:40.678'), - 'moment.utc("+020123-10-09T20:30:40.678+00:00")' - ); - testInspect( - moment.utc('+020123-10-09T20:30:40.678+01:00'), - 'moment.utc("+020123-10-09T19:30:40.678+00:00")' - ); - testInspect( - moment.parseZone('2016-06-11T17:30:40.678+0430'), - 'moment.parseZone("2016-06-11T17:30:40.678+04:30")' - ); - testInspect( - moment.parseZone('+112016-06-11T17:30:40.678+0430'), - 'moment.parseZone("+112016-06-11T17:30:40.678+04:30")' - ); - - assert.equal( - moment(new Date('nope')).inspect(), - 'moment.invalid(/* Invalid Date */)' - ); - assert.equal( - moment('blah', 'YYYY').inspect(), - 'moment.invalid(/* blah */)' - ); -}); - -test('long years', function (assert) { - assert.equal(moment.utc().year(2).format('YYYYYY'), '+000002', 'small year with YYYYYY'); - assert.equal(moment.utc().year(2012).format('YYYYYY'), '+002012', 'regular year with YYYYYY'); - assert.equal(moment.utc().year(20123).format('YYYYYY'), '+020123', 'big year with YYYYYY'); - - assert.equal(moment.utc().year(-1).format('YYYYYY'), '-000001', 'small negative year with YYYYYY'); - assert.equal(moment.utc().year(-2012).format('YYYYYY'), '-002012', 'negative year with YYYYYY'); - assert.equal(moment.utc().year(-20123).format('YYYYYY'), '-020123', 'big negative year with YYYYYY'); -}); - -test('toISOString() when 0 year', function (assert) { - // https://github.com/moment/moment/issues/3765 - var date = moment('0000-01-01T21:00:00.000Z'); - assert.equal(date.toISOString(), '0000-01-01T21:00:00.000Z'); - assert.equal(date.toDate().toISOString(), '0000-01-01T21:00:00.000Z'); -}); - -test('iso week formats', function (assert) { - // https://en.wikipedia.org/wiki/ISO_week_date - var cases = { - '2005-01-02': '2004-53', - '2005-12-31': '2005-52', - '2007-01-01': '2007-01', - '2007-12-30': '2007-52', - '2007-12-31': '2008-01', - '2008-01-01': '2008-01', - '2008-12-28': '2008-52', - '2008-12-29': '2009-01', - '2008-12-30': '2009-01', - '2008-12-31': '2009-01', - '2009-01-01': '2009-01', - '2009-12-31': '2009-53', - '2010-01-01': '2009-53', - '2010-01-02': '2009-53', - '2010-01-03': '2009-53', - '404-12-31': '0404-53', - '405-12-31': '0405-52' - }, i, isoWeek, formatted2, formatted1; - - for (i in cases) { - isoWeek = cases[i].split('-').pop(); - formatted2 = moment(i, 'YYYY-MM-DD').format('WW'); - assert.equal(isoWeek, formatted2, i + ': WW should be ' + isoWeek + ', but ' + formatted2); - isoWeek = isoWeek.replace(/^0+/, ''); - formatted1 = moment(i, 'YYYY-MM-DD').format('W'); - assert.equal(isoWeek, formatted1, i + ': W should be ' + isoWeek + ', but ' + formatted1); - } -}); - -test('iso week year formats', function (assert) { - // https://en.wikipedia.org/wiki/ISO_week_date - var cases = { - '2005-01-02': '2004-53', - '2005-12-31': '2005-52', - '2007-01-01': '2007-01', - '2007-12-30': '2007-52', - '2007-12-31': '2008-01', - '2008-01-01': '2008-01', - '2008-12-28': '2008-52', - '2008-12-29': '2009-01', - '2008-12-30': '2009-01', - '2008-12-31': '2009-01', - '2009-01-01': '2009-01', - '2009-12-31': '2009-53', - '2010-01-01': '2009-53', - '2010-01-02': '2009-53', - '2010-01-03': '2009-53', - '404-12-31': '0404-53', - '405-12-31': '0405-52' - }, i, isoWeekYear, formatted5, formatted4, formatted2; - - for (i in cases) { - isoWeekYear = cases[i].split('-')[0]; - formatted5 = moment(i, 'YYYY-MM-DD').format('GGGGG'); - assert.equal('0' + isoWeekYear, formatted5, i + ': GGGGG should be ' + isoWeekYear + ', but ' + formatted5); - formatted4 = moment(i, 'YYYY-MM-DD').format('GGGG'); - assert.equal(isoWeekYear, formatted4, i + ': GGGG should be ' + isoWeekYear + ', but ' + formatted4); - formatted2 = moment(i, 'YYYY-MM-DD').format('GG'); - assert.equal(isoWeekYear.slice(2, 4), formatted2, i + ': GG should be ' + isoWeekYear + ', but ' + formatted2); - } -}); - -test('week year formats', function (assert) { - // https://en.wikipedia.org/wiki/ISO_week_date - var cases = { - '2005-01-02': '2004-53', - '2005-12-31': '2005-52', - '2007-01-01': '2007-01', - '2007-12-30': '2007-52', - '2007-12-31': '2008-01', - '2008-01-01': '2008-01', - '2008-12-28': '2008-52', - '2008-12-29': '2009-01', - '2008-12-30': '2009-01', - '2008-12-31': '2009-01', - '2009-01-01': '2009-01', - '2009-12-31': '2009-53', - '2010-01-01': '2009-53', - '2010-01-02': '2009-53', - '2010-01-03': '2009-53', - '404-12-31': '0404-53', - '405-12-31': '0405-52' - }, i, isoWeekYear, formatted5, formatted4, formatted2; - - moment.defineLocale('dow:1,doy:4', {week: {dow: 1, doy: 4}}); - - for (i in cases) { - isoWeekYear = cases[i].split('-')[0]; - formatted5 = moment(i, 'YYYY-MM-DD').format('ggggg'); - assert.equal('0' + isoWeekYear, formatted5, i + ': ggggg should be ' + isoWeekYear + ', but ' + formatted5); - formatted4 = moment(i, 'YYYY-MM-DD').format('gggg'); - assert.equal(isoWeekYear, formatted4, i + ': gggg should be ' + isoWeekYear + ', but ' + formatted4); - formatted2 = moment(i, 'YYYY-MM-DD').format('gg'); - assert.equal(isoWeekYear.slice(2, 4), formatted2, i + ': gg should be ' + isoWeekYear + ', but ' + formatted2); - } - moment.defineLocale('dow:1,doy:4', null); -}); - -test('iso weekday formats', function (assert) { - assert.equal(moment([1985, 1, 4]).format('E'), '1', 'Feb 4 1985 is Monday -- 1st day'); - assert.equal(moment([2029, 8, 18]).format('E'), '2', 'Sep 18 2029 is Tuesday -- 2nd day'); - assert.equal(moment([2013, 3, 24]).format('E'), '3', 'Apr 24 2013 is Wednesday -- 3rd day'); - assert.equal(moment([2015, 2, 5]).format('E'), '4', 'Mar 5 2015 is Thursday -- 4th day'); - assert.equal(moment([1970, 0, 2]).format('E'), '5', 'Jan 2 1970 is Friday -- 5th day'); - assert.equal(moment([2001, 4, 12]).format('E'), '6', 'May 12 2001 is Saturday -- 6th day'); - assert.equal(moment([2000, 0, 2]).format('E'), '7', 'Jan 2 2000 is Sunday -- 7th day'); -}); - -test('weekday formats', function (assert) { - moment.defineLocale('dow: 3,doy: 5', {week: {dow: 3, doy: 5}}); - assert.equal(moment([1985, 1, 6]).format('e'), '0', 'Feb 6 1985 is Wednesday -- 0th day'); - assert.equal(moment([2029, 8, 20]).format('e'), '1', 'Sep 20 2029 is Thursday -- 1st day'); - assert.equal(moment([2013, 3, 26]).format('e'), '2', 'Apr 26 2013 is Friday -- 2nd day'); - assert.equal(moment([2015, 2, 7]).format('e'), '3', 'Mar 7 2015 is Saturday -- 3nd day'); - assert.equal(moment([1970, 0, 4]).format('e'), '4', 'Jan 4 1970 is Sunday -- 4th day'); - assert.equal(moment([2001, 4, 14]).format('e'), '5', 'May 14 2001 is Monday -- 5th day'); - assert.equal(moment([2000, 0, 4]).format('e'), '6', 'Jan 4 2000 is Tuesday -- 6th day'); - moment.defineLocale('dow: 3,doy: 5', null); -}); - -test('toString is just human readable format', function (assert) { - var b = moment(new Date(2009, 1, 5, 15, 25, 50, 125)); - assert.equal(b.toString(), b.format('ddd MMM DD YYYY HH:mm:ss [GMT]ZZ')); -}); - -test('toJSON skips postformat', function (assert) { - moment.defineLocale('postformat', { - postformat: function (s) { - s.replace(/./g, 'X'); - } - }); - assert.equal(moment.utc([2000, 0, 1]).toJSON(), '2000-01-01T00:00:00.000Z', 'toJSON doesn\'t postformat'); - moment.defineLocale('postformat', null); -}); - -test('calendar day timezone', function (assert) { - moment.locale('en'); - var zones = [60, -60, 90, -90, 360, -360, 720, -720], - b = moment().utc().startOf('day').subtract({m : 1}), - c = moment().local().startOf('day').subtract({m : 1}), - d = moment().local().startOf('day').subtract({d : 2}), - i, z, a; - - for (i = 0; i < zones.length; ++i) { - z = zones[i]; - a = moment().utcOffset(z).startOf('day').subtract({m: 1}); - assert.equal(moment(a).utcOffset(z).calendar(), 'Yesterday at 11:59 PM', - 'Yesterday at 11:59 PM, not Today, or the wrong time, tz = ' + z); - } - - assert.equal(moment(b).utc().calendar(), 'Yesterday at 11:59 PM', 'Yesterday at 11:59 PM, not Today, or the wrong time'); - assert.equal(moment(c).local().calendar(), 'Yesterday at 11:59 PM', 'Yesterday at 11:59 PM, not Today, or the wrong time'); - assert.equal(moment(c).local().calendar(d), 'Tomorrow at 11:59 PM', 'Tomorrow at 11:59 PM, not Yesterday, or the wrong time'); -}); - -test('calendar with custom formats', function (assert) { - assert.equal(moment().calendar(null, {sameDay: '[Today]'}), 'Today', 'Today'); - assert.equal(moment().add(1, 'days').calendar(null, {nextDay: '[Tomorrow]'}), 'Tomorrow', 'Tomorrow'); - assert.equal(moment([1985, 1, 4]).calendar(null, {sameElse: 'YYYY-MM-DD'}), '1985-02-04', 'Else'); -}); - -test('invalid', function (assert) { - assert.equal(moment.invalid().format(), 'Invalid date'); - assert.equal(moment.invalid().format('YYYY-MM-DD'), 'Invalid date'); -}); - -test('quarter formats', function (assert) { - assert.equal(moment([1985, 1, 4]).format('Q'), '1', 'Feb 4 1985 is Q1'); - assert.equal(moment([2029, 8, 18]).format('Q'), '3', 'Sep 18 2029 is Q3'); - assert.equal(moment([2013, 3, 24]).format('Q'), '2', 'Apr 24 2013 is Q2'); - assert.equal(moment([2015, 2, 5]).format('Q'), '1', 'Mar 5 2015 is Q1'); - assert.equal(moment([1970, 0, 2]).format('Q'), '1', 'Jan 2 1970 is Q1'); - assert.equal(moment([2001, 11, 12]).format('Q'), '4', 'Dec 12 2001 is Q4'); - assert.equal(moment([2000, 0, 2]).format('[Q]Q-YYYY'), 'Q1-2000', 'Jan 2 2000 is Q1'); -}); - -test('quarter ordinal formats', function (assert) { - assert.equal(moment([1985, 1, 4]).format('Qo'), '1st', 'Feb 4 1985 is 1st quarter'); - assert.equal(moment([2029, 8, 18]).format('Qo'), '3rd', 'Sep 18 2029 is 3rd quarter'); - assert.equal(moment([2013, 3, 24]).format('Qo'), '2nd', 'Apr 24 2013 is 2nd quarter'); - assert.equal(moment([2015, 2, 5]).format('Qo'), '1st', 'Mar 5 2015 is 1st quarter'); - assert.equal(moment([1970, 0, 2]).format('Qo'), '1st', 'Jan 2 1970 is 1st quarter'); - assert.equal(moment([2001, 11, 12]).format('Qo'), '4th', 'Dec 12 2001 is 4th quarter'); - assert.equal(moment([2000, 0, 2]).format('Qo [quarter] YYYY'), '1st quarter 2000', 'Jan 2 2000 is 1st quarter'); -}); - -// test('full expanded format is returned from abbreviated formats', function (assert) { -// function objectKeys(obj) { -// if (Object.keys) { -// return Object.keys(obj); -// } else { -// // IE8 -// var res = [], i; -// for (i in obj) { -// if (obj.hasOwnProperty(i)) { -// res.push(i); -// } -// } -// return res; -// } -// } - -// var locales = -// 'ar-sa ar-tn ar az be bg bn bo br bs ca cs cv cy da de-at de dv el ' + -// 'en-au en-ca en-gb en-ie en-nz eo es et eu fa fi fo fr-ca fr-ch fr fy ' + -// 'gd gl he hi hr hu hy-am id is it ja jv ka kk km ko lb lo lt lv me mk ml ' + -// 'mr ms-my ms my nb ne nl nn pl pt-br pt ro ru se si sk sl sq sr-cyrl ' + -// 'sr sv sw ta te th tl-ph tlh tr tzl tzm-latn tzm uk uz vi zh-cn zh-tw'; - -// each(locales.split(' '), function (locale) { -// var data, tokens; -// data = moment().locale(locale).localeData()._longDateFormat; -// tokens = objectKeys(data); -// each(tokens, function (token) { -// // Check each format string to make sure it does not contain any -// // tokens that need to be expanded. -// each(tokens, function (i) { -// // strip escaped sequences -// var format = data[i].replace(/(\[[^\]]*\])/g, ''); -// assert.equal(false, !!~format.indexOf(token), 'locale ' + locale + ' contains ' + token + ' in ' + i); -// }); -// }); -// }); -// }); - -test('milliseconds', function (assert) { - var m = moment('123', 'SSS'); - - assert.equal(m.format('S'), '1'); - assert.equal(m.format('SS'), '12'); - assert.equal(m.format('SSS'), '123'); - assert.equal(m.format('SSSS'), '1230'); - assert.equal(m.format('SSSSS'), '12300'); - assert.equal(m.format('SSSSSS'), '123000'); - assert.equal(m.format('SSSSSSS'), '1230000'); - assert.equal(m.format('SSSSSSSS'), '12300000'); - assert.equal(m.format('SSSSSSSSS'), '123000000'); -}); - -test('hmm and hmmss', function (assert) { - assert.equal(moment('12:34:56', 'HH:mm:ss').format('hmm'), '1234'); - assert.equal(moment('01:34:56', 'HH:mm:ss').format('hmm'), '134'); - assert.equal(moment('13:34:56', 'HH:mm:ss').format('hmm'), '134'); - - assert.equal(moment('12:34:56', 'HH:mm:ss').format('hmmss'), '123456'); - assert.equal(moment('01:34:56', 'HH:mm:ss').format('hmmss'), '13456'); - assert.equal(moment('13:34:56', 'HH:mm:ss').format('hmmss'), '13456'); -}); - -test('Hmm and Hmmss', function (assert) { - assert.equal(moment('12:34:56', 'HH:mm:ss').format('Hmm'), '1234'); - assert.equal(moment('01:34:56', 'HH:mm:ss').format('Hmm'), '134'); - assert.equal(moment('13:34:56', 'HH:mm:ss').format('Hmm'), '1334'); - - assert.equal(moment('12:34:56', 'HH:mm:ss').format('Hmmss'), '123456'); - assert.equal(moment('01:34:56', 'HH:mm:ss').format('Hmmss'), '13456'); - assert.equal(moment('08:34:56', 'HH:mm:ss').format('Hmmss'), '83456'); - assert.equal(moment('18:34:56', 'HH:mm:ss').format('Hmmss'), '183456'); -}); - -test('k and kk', function (assert) { - assert.equal(moment('01:23:45', 'HH:mm:ss').format('k'), '1'); - assert.equal(moment('12:34:56', 'HH:mm:ss').format('k'), '12'); - assert.equal(moment('01:23:45', 'HH:mm:ss').format('kk'), '01'); - assert.equal(moment('12:34:56', 'HH:mm:ss').format('kk'), '12'); - assert.equal(moment('00:34:56', 'HH:mm:ss').format('kk'), '24'); - assert.equal(moment('00:00:00', 'HH:mm:ss').format('kk'), '24'); -}); - -test('Y token', function (assert) { - assert.equal(moment('2010-01-01', 'YYYY-MM-DD', true).format('Y'), '2010', 'format 2010 with Y'); - assert.equal(moment('-123-01-01', 'Y-MM-DD', true).format('Y'), '-123', 'format -123 with Y'); - assert.equal(moment('12345-01-01', 'Y-MM-DD', true).format('Y'), '+12345', 'format 12345 with Y'); - assert.equal(moment('0-01-01', 'Y-MM-DD', true).format('Y'), '0', 'format 0 with Y'); - assert.equal(moment('1-01-01', 'Y-MM-DD', true).format('Y'), '1', 'format 1 with Y'); - assert.equal(moment('9999-01-01', 'Y-MM-DD', true).format('Y'), '9999', 'format 9999 with Y'); - assert.equal(moment('10000-01-01', 'Y-MM-DD', true).format('Y'), '+10000', 'format 10000 with Y'); -}); - -}))); - - -;(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' - && typeof require === 'function' ? factory(require('../../moment')) : - typeof define === 'function' && define.amd ? define(['../../moment'], factory) : - factory(global.moment) -}(this, (function (moment) { 'use strict'; - -function each(array, callback) { - var i; - for (i = 0; i < array.length; i++) { - callback(array[i], i, array); - } -} - -function objectKeys(obj) { - if (Object.keys) { - return Object.keys(obj); - } else { - // IE8 - var res = [], i; - for (i in obj) { - if (obj.hasOwnProperty(i)) { - res.push(i); - } - } - return res; - } -} - -// Pick the first defined of two or three arguments. - -function defineCommonLocaleTests(locale, options) { - test('lenient day of month ordinal parsing', function (assert) { - var i, ordinalStr, testMoment; - for (i = 1; i <= 31; ++i) { - ordinalStr = moment([2014, 0, i]).format('YYYY MM Do'); - testMoment = moment(ordinalStr, 'YYYY MM Do'); - assert.equal(testMoment.year(), 2014, - 'lenient day of month ordinal parsing ' + i + ' year check'); - assert.equal(testMoment.month(), 0, - 'lenient day of month ordinal parsing ' + i + ' month check'); - assert.equal(testMoment.date(), i, - 'lenient day of month ordinal parsing ' + i + ' date check'); - } - }); - - test('lenient day of month ordinal parsing of number', function (assert) { - var i, testMoment; - for (i = 1; i <= 31; ++i) { - testMoment = moment('2014 01 ' + i, 'YYYY MM Do'); - assert.equal(testMoment.year(), 2014, - 'lenient day of month ordinal parsing of number ' + i + ' year check'); - assert.equal(testMoment.month(), 0, - 'lenient day of month ordinal parsing of number ' + i + ' month check'); - assert.equal(testMoment.date(), i, - 'lenient day of month ordinal parsing of number ' + i + ' date check'); - } - }); - - test('strict day of month ordinal parsing', function (assert) { - var i, ordinalStr, testMoment; - for (i = 1; i <= 31; ++i) { - ordinalStr = moment([2014, 0, i]).format('YYYY MM Do'); - testMoment = moment(ordinalStr, 'YYYY MM Do', true); - assert.ok(testMoment.isValid(), 'strict day of month ordinal parsing ' + i); - } - }); - - test('meridiem invariant', function (assert) { - var h, m, t1, t2; - for (h = 0; h < 24; ++h) { - for (m = 0; m < 60; m += 15) { - t1 = moment.utc([2000, 0, 1, h, m]); - t2 = moment.utc(t1.format('A h:mm'), 'A h:mm'); - assert.equal(t2.format('HH:mm'), t1.format('HH:mm'), - 'meridiem at ' + t1.format('HH:mm')); - } - } - }); - - test('date format correctness', function (assert) { - var data, tokens; - data = moment.localeData()._longDateFormat; - tokens = objectKeys(data); - each(tokens, function (srchToken) { - // Check each format string to make sure it does not contain any - // tokens that need to be expanded. - each(tokens, function (baseToken) { - // strip escaped sequences - var format = data[baseToken].replace(/(\[[^\]]*\])/g, ''); - assert.equal(false, !!~format.indexOf(srchToken), - 'contains ' + srchToken + ' in ' + baseToken); - }); - }); - }); - - test('month parsing correctness', function (assert) { - var i, m; - - if (locale === 'tr') { - // I can't fix it :( - expect(0); - return; - } - function tester(format) { - var r; - r = moment(m.format(format), format); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format); - r = moment(m.format(format).toLocaleUpperCase(), format); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' upper'); - r = moment(m.format(format).toLocaleLowerCase(), format); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' lower'); - - r = moment(m.format(format), format, true); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' strict'); - r = moment(m.format(format).toLocaleUpperCase(), format, true); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' upper strict'); - r = moment(m.format(format).toLocaleLowerCase(), format, true); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' lower strict'); - } - - for (i = 0; i < 12; ++i) { - m = moment([2015, i, 15, 18]); - tester('MMM'); - tester('MMM.'); - tester('MMMM'); - tester('MMMM.'); - } - }); - - test('weekday parsing correctness', function (assert) { - var i, m; - - if (locale === 'tr' || locale === 'az' || locale === 'ro') { - // tr, az: There is a lower-case letter (ı), that converted to - // upper then lower changes to i - // ro: there is the letter ț which behaves weird under IE8 - expect(0); - return; - } - function tester(format) { - var r, baseMsg = 'weekday ' + m.weekday() + ' fmt ' + format + ' ' + m.toISOString(); - r = moment(m.format(format), format); - assert.equal(r.weekday(), m.weekday(), baseMsg); - r = moment(m.format(format).toLocaleUpperCase(), format); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' upper'); - r = moment(m.format(format).toLocaleLowerCase(), format); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' lower'); - - r = moment(m.format(format), format, true); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' strict'); - r = moment(m.format(format).toLocaleUpperCase(), format, true); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' upper strict'); - r = moment(m.format(format).toLocaleLowerCase(), format, true); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' lower strict'); - } - - for (i = 0; i < 7; ++i) { - m = moment.utc([2015, 0, i + 1, 18]); - tester('dd'); - tester('ddd'); - tester('dddd'); - } - }); - - test('valid localeData', function (assert) { - assert.equal(moment().localeData().months().length, 12, 'months should return 12 months'); - assert.equal(moment().localeData().monthsShort().length, 12, 'monthsShort should return 12 months'); - assert.equal(moment().localeData().weekdays().length, 7, 'weekdays should return 7 days'); - assert.equal(moment().localeData().weekdaysShort().length, 7, 'weekdaysShort should return 7 days'); - assert.equal(moment().localeData().weekdaysMin().length, 7, 'monthsShort should return 7 days'); - }); -} - -function setupDeprecationHandler(test, moment$$1, scope) { - test._expectedDeprecations = null; - test._observedDeprecations = null; - test._oldSupress = moment$$1.suppressDeprecationWarnings; - moment$$1.suppressDeprecationWarnings = true; - test.expectedDeprecations = function () { - test._expectedDeprecations = arguments; - test._observedDeprecations = []; - }; - moment$$1.deprecationHandler = function (name, msg) { - var deprecationId = matchedDeprecation(name, msg, test._expectedDeprecations); - if (deprecationId === -1) { - throw new Error('Unexpected deprecation thrown name=' + - name + ' msg=' + msg); - } - test._observedDeprecations[deprecationId] = 1; - }; -} - -function teardownDeprecationHandler(test, moment$$1, scope) { - moment$$1.suppressDeprecationWarnings = test._oldSupress; - - if (test._expectedDeprecations != null) { - var missedDeprecations = []; - each(test._expectedDeprecations, function (deprecationPattern, id) { - if (test._observedDeprecations[id] !== 1) { - missedDeprecations.push(deprecationPattern); - } - }); - if (missedDeprecations.length !== 0) { - throw new Error('Expected deprecation warnings did not happen: ' + - missedDeprecations.join(' ')); - } - } -} - -function matchedDeprecation(name, msg, deprecations) { - if (deprecations == null) { - return -1; - } - for (var i = 0; i < deprecations.length; ++i) { - if (name != null && name === deprecations[i]) { - return i; - } - if (msg != null && msg.substring(0, deprecations[i].length) === deprecations[i]) { - return i; - } - } - return -1; -} - -/*global QUnit:false*/ - -var test = QUnit.test; - -var expect = QUnit.expect; - -function module$1 (name, lifecycle) { - QUnit.module(name, { - setup : function () { - moment.locale('en'); - moment.createFromInputFallback = function (config) { - throw new Error('input not handled by moment: ' + config._i); - }; - setupDeprecationHandler(test, moment, 'core'); - if (lifecycle && lifecycle.setup) { - lifecycle.setup(); - } - }, - teardown : function () { - teardownDeprecationHandler(test, moment, 'core'); - if (lifecycle && lifecycle.teardown) { - lifecycle.teardown(); - } - } - }); -} - -module$1('from_to'); - -test('from', function (assert) { - var start = moment(); - moment.locale('en'); - assert.equal(start.from(start.clone().add(5, 'seconds')), 'a few seconds ago', '5 seconds = a few seconds ago'); - assert.equal(start.from(start.clone().add(1, 'minute')), 'a minute ago', '1 minute = a minute ago'); - assert.equal(start.from(start.clone().add(5, 'minutes')), '5 minutes ago', '5 minutes = 5 minutes ago'); - - assert.equal(start.from(start.clone().subtract(5, 'seconds')), 'in a few seconds', '5 seconds = in a few seconds'); - assert.equal(start.from(start.clone().subtract(1, 'minute')), 'in a minute', '1 minute = in a minute'); - assert.equal(start.from(start.clone().subtract(5, 'minutes')), 'in 5 minutes', '5 minutes = in 5 minutes'); -}); - -test('from with absolute duration', function (assert) { - var start = moment(); - moment.locale('en'); - assert.equal(start.from(start.clone().add(5, 'seconds'), true), 'a few seconds', '5 seconds = a few seconds'); - assert.equal(start.from(start.clone().add(1, 'minute'), true), 'a minute', '1 minute = a minute'); - assert.equal(start.from(start.clone().add(5, 'minutes'), true), '5 minutes', '5 minutes = 5 minutes'); - - assert.equal(start.from(start.clone().subtract(5, 'seconds'), true), 'a few seconds', '5 seconds = a few seconds'); - assert.equal(start.from(start.clone().subtract(1, 'minute'), true), 'a minute', '1 minute = a minute'); - assert.equal(start.from(start.clone().subtract(5, 'minutes'), true), '5 minutes', '5 minutes = 5 minutes'); -}); - -test('to', function (assert) { - var start = moment(); - moment.locale('en'); - assert.equal(start.to(start.clone().subtract(5, 'seconds')), 'a few seconds ago', '5 seconds = a few seconds ago'); - assert.equal(start.to(start.clone().subtract(1, 'minute')), 'a minute ago', '1 minute = a minute ago'); - assert.equal(start.to(start.clone().subtract(5, 'minutes')), '5 minutes ago', '5 minutes = 5 minutes ago'); - - assert.equal(start.to(start.clone().add(5, 'seconds')), 'in a few seconds', '5 seconds = in a few seconds'); - assert.equal(start.to(start.clone().add(1, 'minute')), 'in a minute', '1 minute = in a minute'); - assert.equal(start.to(start.clone().add(5, 'minutes')), 'in 5 minutes', '5 minutes = in 5 minutes'); -}); - -test('to with absolute duration', function (assert) { - var start = moment(); - moment.locale('en'); - assert.equal(start.to(start.clone().add(5, 'seconds'), true), 'a few seconds', '5 seconds = a few seconds'); - assert.equal(start.to(start.clone().add(1, 'minute'), true), 'a minute', '1 minute = a minute'); - assert.equal(start.to(start.clone().add(5, 'minutes'), true), '5 minutes', '5 minutes = 5 minutes'); - - assert.equal(start.to(start.clone().subtract(5, 'seconds'), true), 'a few seconds', '5 seconds = a few seconds'); - assert.equal(start.to(start.clone().subtract(1, 'minute'), true), 'a minute', '1 minute = a minute'); - assert.equal(start.to(start.clone().subtract(5, 'minutes'), true), '5 minutes', '5 minutes = 5 minutes'); -}); - -}))); - - -;(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' - && typeof require === 'function' ? factory(require('../../moment')) : - typeof define === 'function' && define.amd ? define(['../../moment'], factory) : - factory(global.moment) -}(this, (function (moment) { 'use strict'; - -function each(array, callback) { - var i; - for (i = 0; i < array.length; i++) { - callback(array[i], i, array); - } -} - -function objectKeys(obj) { - if (Object.keys) { - return Object.keys(obj); - } else { - // IE8 - var res = [], i; - for (i in obj) { - if (obj.hasOwnProperty(i)) { - res.push(i); - } - } - return res; - } -} - -// Pick the first defined of two or three arguments. - -function defineCommonLocaleTests(locale, options) { - test('lenient day of month ordinal parsing', function (assert) { - var i, ordinalStr, testMoment; - for (i = 1; i <= 31; ++i) { - ordinalStr = moment([2014, 0, i]).format('YYYY MM Do'); - testMoment = moment(ordinalStr, 'YYYY MM Do'); - assert.equal(testMoment.year(), 2014, - 'lenient day of month ordinal parsing ' + i + ' year check'); - assert.equal(testMoment.month(), 0, - 'lenient day of month ordinal parsing ' + i + ' month check'); - assert.equal(testMoment.date(), i, - 'lenient day of month ordinal parsing ' + i + ' date check'); - } - }); - - test('lenient day of month ordinal parsing of number', function (assert) { - var i, testMoment; - for (i = 1; i <= 31; ++i) { - testMoment = moment('2014 01 ' + i, 'YYYY MM Do'); - assert.equal(testMoment.year(), 2014, - 'lenient day of month ordinal parsing of number ' + i + ' year check'); - assert.equal(testMoment.month(), 0, - 'lenient day of month ordinal parsing of number ' + i + ' month check'); - assert.equal(testMoment.date(), i, - 'lenient day of month ordinal parsing of number ' + i + ' date check'); - } - }); - - test('strict day of month ordinal parsing', function (assert) { - var i, ordinalStr, testMoment; - for (i = 1; i <= 31; ++i) { - ordinalStr = moment([2014, 0, i]).format('YYYY MM Do'); - testMoment = moment(ordinalStr, 'YYYY MM Do', true); - assert.ok(testMoment.isValid(), 'strict day of month ordinal parsing ' + i); - } - }); - - test('meridiem invariant', function (assert) { - var h, m, t1, t2; - for (h = 0; h < 24; ++h) { - for (m = 0; m < 60; m += 15) { - t1 = moment.utc([2000, 0, 1, h, m]); - t2 = moment.utc(t1.format('A h:mm'), 'A h:mm'); - assert.equal(t2.format('HH:mm'), t1.format('HH:mm'), - 'meridiem at ' + t1.format('HH:mm')); - } - } - }); - - test('date format correctness', function (assert) { - var data, tokens; - data = moment.localeData()._longDateFormat; - tokens = objectKeys(data); - each(tokens, function (srchToken) { - // Check each format string to make sure it does not contain any - // tokens that need to be expanded. - each(tokens, function (baseToken) { - // strip escaped sequences - var format = data[baseToken].replace(/(\[[^\]]*\])/g, ''); - assert.equal(false, !!~format.indexOf(srchToken), - 'contains ' + srchToken + ' in ' + baseToken); - }); - }); - }); - - test('month parsing correctness', function (assert) { - var i, m; - - if (locale === 'tr') { - // I can't fix it :( - expect(0); - return; - } - function tester(format) { - var r; - r = moment(m.format(format), format); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format); - r = moment(m.format(format).toLocaleUpperCase(), format); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' upper'); - r = moment(m.format(format).toLocaleLowerCase(), format); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' lower'); - - r = moment(m.format(format), format, true); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' strict'); - r = moment(m.format(format).toLocaleUpperCase(), format, true); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' upper strict'); - r = moment(m.format(format).toLocaleLowerCase(), format, true); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' lower strict'); - } - - for (i = 0; i < 12; ++i) { - m = moment([2015, i, 15, 18]); - tester('MMM'); - tester('MMM.'); - tester('MMMM'); - tester('MMMM.'); - } - }); - - test('weekday parsing correctness', function (assert) { - var i, m; - - if (locale === 'tr' || locale === 'az' || locale === 'ro') { - // tr, az: There is a lower-case letter (ı), that converted to - // upper then lower changes to i - // ro: there is the letter ț which behaves weird under IE8 - expect(0); - return; - } - function tester(format) { - var r, baseMsg = 'weekday ' + m.weekday() + ' fmt ' + format + ' ' + m.toISOString(); - r = moment(m.format(format), format); - assert.equal(r.weekday(), m.weekday(), baseMsg); - r = moment(m.format(format).toLocaleUpperCase(), format); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' upper'); - r = moment(m.format(format).toLocaleLowerCase(), format); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' lower'); - - r = moment(m.format(format), format, true); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' strict'); - r = moment(m.format(format).toLocaleUpperCase(), format, true); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' upper strict'); - r = moment(m.format(format).toLocaleLowerCase(), format, true); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' lower strict'); - } - - for (i = 0; i < 7; ++i) { - m = moment.utc([2015, 0, i + 1, 18]); - tester('dd'); - tester('ddd'); - tester('dddd'); - } - }); - - test('valid localeData', function (assert) { - assert.equal(moment().localeData().months().length, 12, 'months should return 12 months'); - assert.equal(moment().localeData().monthsShort().length, 12, 'monthsShort should return 12 months'); - assert.equal(moment().localeData().weekdays().length, 7, 'weekdays should return 7 days'); - assert.equal(moment().localeData().weekdaysShort().length, 7, 'weekdaysShort should return 7 days'); - assert.equal(moment().localeData().weekdaysMin().length, 7, 'monthsShort should return 7 days'); - }); -} - -function setupDeprecationHandler(test, moment$$1, scope) { - test._expectedDeprecations = null; - test._observedDeprecations = null; - test._oldSupress = moment$$1.suppressDeprecationWarnings; - moment$$1.suppressDeprecationWarnings = true; - test.expectedDeprecations = function () { - test._expectedDeprecations = arguments; - test._observedDeprecations = []; - }; - moment$$1.deprecationHandler = function (name, msg) { - var deprecationId = matchedDeprecation(name, msg, test._expectedDeprecations); - if (deprecationId === -1) { - throw new Error('Unexpected deprecation thrown name=' + - name + ' msg=' + msg); - } - test._observedDeprecations[deprecationId] = 1; - }; -} - -function teardownDeprecationHandler(test, moment$$1, scope) { - moment$$1.suppressDeprecationWarnings = test._oldSupress; - - if (test._expectedDeprecations != null) { - var missedDeprecations = []; - each(test._expectedDeprecations, function (deprecationPattern, id) { - if (test._observedDeprecations[id] !== 1) { - missedDeprecations.push(deprecationPattern); - } - }); - if (missedDeprecations.length !== 0) { - throw new Error('Expected deprecation warnings did not happen: ' + - missedDeprecations.join(' ')); - } - } -} - -function matchedDeprecation(name, msg, deprecations) { - if (deprecations == null) { - return -1; - } - for (var i = 0; i < deprecations.length; ++i) { - if (name != null && name === deprecations[i]) { - return i; - } - if (msg != null && msg.substring(0, deprecations[i].length) === deprecations[i]) { - return i; - } - } - return -1; -} - -/*global QUnit:false*/ - -var test = QUnit.test; - -var expect = QUnit.expect; - -function module$1 (name, lifecycle) { - QUnit.module(name, { - setup : function () { - moment.locale('en'); - moment.createFromInputFallback = function (config) { - throw new Error('input not handled by moment: ' + config._i); - }; - setupDeprecationHandler(test, moment, 'core'); - if (lifecycle && lifecycle.setup) { - lifecycle.setup(); - } - }, - teardown : function () { - teardownDeprecationHandler(test, moment, 'core'); - if (lifecycle && lifecycle.teardown) { - lifecycle.teardown(); - } - } - }); -} - -module$1('getters and setters'); - -test('getters', function (assert) { - var a = moment([2011, 9, 12, 6, 7, 8, 9]); - assert.equal(a.year(), 2011, 'year'); - assert.equal(a.month(), 9, 'month'); - assert.equal(a.date(), 12, 'date'); - assert.equal(a.day(), 3, 'day'); - assert.equal(a.hours(), 6, 'hour'); - assert.equal(a.minutes(), 7, 'minute'); - assert.equal(a.seconds(), 8, 'second'); - assert.equal(a.milliseconds(), 9, 'milliseconds'); -}); - -test('getters programmatic', function (assert) { - var a = moment([2011, 9, 12, 6, 7, 8, 9]); - assert.equal(a.get('year'), 2011, 'year'); - assert.equal(a.get('month'), 9, 'month'); - assert.equal(a.get('date'), 12, 'date'); - assert.equal(a.get('day'), 3, 'day'); - assert.equal(a.get('hour'), 6, 'hour'); - assert.equal(a.get('minute'), 7, 'minute'); - assert.equal(a.get('second'), 8, 'second'); - assert.equal(a.get('milliseconds'), 9, 'milliseconds'); - - //actual getters tested elsewhere - assert.equal(a.get('weekday'), a.weekday(), 'weekday'); - assert.equal(a.get('isoWeekday'), a.isoWeekday(), 'isoWeekday'); - assert.equal(a.get('week'), a.week(), 'week'); - assert.equal(a.get('isoWeek'), a.isoWeek(), 'isoWeek'); - assert.equal(a.get('dayOfYear'), a.dayOfYear(), 'dayOfYear'); - - //getter no longer sets values when passed an object - assert.equal(moment([2016,0,1]).get({year:2015}).year(), 2016, 'getter no longer sets values when passed an object'); -}); - -test('setters plural', function (assert) { - var a = moment(); - test.expectedDeprecations('years accessor', 'months accessor', 'dates accessor'); - - a.years(2011); - a.months(9); - a.dates(12); - a.hours(6); - a.minutes(7); - a.seconds(8); - a.milliseconds(9); - assert.equal(a.years(), 2011, 'years'); - assert.equal(a.months(), 9, 'months'); - assert.equal(a.dates(), 12, 'dates'); - assert.equal(a.days(), 3, 'days'); - assert.equal(a.hours(), 6, 'hours'); - assert.equal(a.minutes(), 7, 'minutes'); - assert.equal(a.seconds(), 8, 'seconds'); - assert.equal(a.milliseconds(), 9, 'milliseconds'); -}); - -test('setters singular', function (assert) { - var a = moment(); - a.year(2011); - a.month(9); - a.date(12); - a.hour(6); - a.minute(7); - a.second(8); - a.millisecond(9); - assert.equal(a.year(), 2011, 'year'); - assert.equal(a.month(), 9, 'month'); - assert.equal(a.date(), 12, 'date'); - assert.equal(a.day(), 3, 'day'); - assert.equal(a.hour(), 6, 'hour'); - assert.equal(a.minute(), 7, 'minute'); - assert.equal(a.second(), 8, 'second'); - assert.equal(a.millisecond(), 9, 'milliseconds'); -}); - -test('setters', function (assert) { - var a = moment(); - a.year(2011); - a.month(9); - a.date(12); - a.hours(6); - a.minutes(7); - a.seconds(8); - a.milliseconds(9); - assert.equal(a.year(), 2011, 'year'); - assert.equal(a.month(), 9, 'month'); - assert.equal(a.date(), 12, 'date'); - assert.equal(a.day(), 3, 'day'); - assert.equal(a.hours(), 6, 'hour'); - assert.equal(a.minutes(), 7, 'minute'); - assert.equal(a.seconds(), 8, 'second'); - assert.equal(a.milliseconds(), 9, 'milliseconds'); - - // Test month() behavior. See https://github.com/timrwood/moment/pull/822 - a = moment('20130531', 'YYYYMMDD'); - a.month(3); - assert.equal(a.month(), 3, 'month edge case'); -}); - -test('setter programmatic', function (assert) { - var a = moment(); - a.set('year', 2011); - a.set('month', 9); - a.set('date', 12); - a.set('hours', 6); - a.set('minutes', 7); - a.set('seconds', 8); - a.set('milliseconds', 9); - assert.equal(a.year(), 2011, 'year'); - assert.equal(a.month(), 9, 'month'); - assert.equal(a.date(), 12, 'date'); - assert.equal(a.day(), 3, 'day'); - assert.equal(a.hours(), 6, 'hour'); - assert.equal(a.minutes(), 7, 'minute'); - assert.equal(a.seconds(), 8, 'second'); - assert.equal(a.milliseconds(), 9, 'milliseconds'); - - // Test month() behavior. See https://github.com/timrwood/moment/pull/822 - a = moment('20130531', 'YYYYMMDD'); - a.month(3); - assert.equal(a.month(), 3, 'month edge case'); -}); - -test('setters programatic with weeks', function (assert) { - var a = moment(); - a.set('weekYear', 2001); - a.set('week', 49); - a.set('day', 4); - - assert.equal(a.weekYear(), 2001, 'weekYear'); - assert.equal(a.week(), 49, 'week'); - assert.equal(a.day(), 4, 'day'); - - a.set('weekday', 1); - assert.equal(a.weekday(), 1, 'weekday'); -}); - -test('setters programatic with weeks ISO', function (assert) { - var a = moment(); - a.set('isoWeekYear', 2001); - a.set('isoWeek', 49); - a.set('isoWeekday', 4); - - assert.equal(a.isoWeekYear(), 2001, 'isoWeekYear'); - assert.equal(a.isoWeek(), 49, 'isoWeek'); - assert.equal(a.isoWeekday(), 4, 'isoWeekday'); -}); - -test('setters strings', function (assert) { - var a = moment([2012]).locale('en'); - assert.equal(a.clone().day(0).day('Wednesday').day(), 3, 'day full name'); - assert.equal(a.clone().day(0).day('Wed').day(), 3, 'day short name'); - assert.equal(a.clone().day(0).day('We').day(), 3, 'day minimal name'); - assert.equal(a.clone().day(0).day('invalid').day(), 0, 'invalid day name'); - assert.equal(a.clone().month(0).month('April').month(), 3, 'month full name'); - assert.equal(a.clone().month(0).month('Apr').month(), 3, 'month short name'); - assert.equal(a.clone().month(0).month('invalid').month(), 0, 'invalid month name'); -}); - -test('setters - falsey values', function (assert) { - var a = moment(); - // ensure minutes wasn't coincidentally 0 already - a.minutes(1); - a.minutes(0); - assert.equal(a.minutes(), 0, 'falsey value'); -}); - -test('chaining setters', function (assert) { - var a = moment(); - a.year(2011) - .month(9) - .date(12) - .hours(6) - .minutes(7) - .seconds(8); - assert.equal(a.year(), 2011, 'year'); - assert.equal(a.month(), 9, 'month'); - assert.equal(a.date(), 12, 'date'); - assert.equal(a.day(), 3, 'day'); - assert.equal(a.hours(), 6, 'hour'); - assert.equal(a.minutes(), 7, 'minute'); - assert.equal(a.seconds(), 8, 'second'); -}); - -test('setter with multiple unit values', function (assert) { - var a = moment(); - a.set({ - year: 2011, - month: 9, - date: 12, - hours: 6, - minutes: 7, - seconds: 8, - milliseconds: 9 - }); - assert.equal(a.year(), 2011, 'year'); - assert.equal(a.month(), 9, 'month'); - assert.equal(a.date(), 12, 'date'); - assert.equal(a.day(), 3, 'day'); - assert.equal(a.hours(), 6, 'hour'); - assert.equal(a.minutes(), 7, 'minute'); - assert.equal(a.seconds(), 8, 'second'); - assert.equal(a.milliseconds(), 9, 'milliseconds'); - - var c = moment([2016,0,1]); - assert.equal(c.set({weekYear: 2016}).weekYear(), 2016, 'week year correctly sets with object syntax'); - assert.equal(c.set({quarter: 3}).quarter(), 3, 'quarter sets correctly with object syntax'); -}); - -test('day setter', function (assert) { - var a = moment([2011, 0, 15]); - assert.equal(moment(a).day(0).date(), 9, 'set from saturday to sunday'); - assert.equal(moment(a).day(6).date(), 15, 'set from saturday to saturday'); - assert.equal(moment(a).day(3).date(), 12, 'set from saturday to wednesday'); - - a = moment([2011, 0, 9]); - assert.equal(moment(a).day(0).date(), 9, 'set from sunday to sunday'); - assert.equal(moment(a).day(6).date(), 15, 'set from sunday to saturday'); - assert.equal(moment(a).day(3).date(), 12, 'set from sunday to wednesday'); - - a = moment([2011, 0, 12]); - assert.equal(moment(a).day(0).date(), 9, 'set from wednesday to sunday'); - assert.equal(moment(a).day(6).date(), 15, 'set from wednesday to saturday'); - assert.equal(moment(a).day(3).date(), 12, 'set from wednesday to wednesday'); - - assert.equal(moment(a).day(-7).date(), 2, 'set from wednesday to last sunday'); - assert.equal(moment(a).day(-1).date(), 8, 'set from wednesday to last saturday'); - assert.equal(moment(a).day(-4).date(), 5, 'set from wednesday to last wednesday'); - - assert.equal(moment(a).day(7).date(), 16, 'set from wednesday to next sunday'); - assert.equal(moment(a).day(13).date(), 22, 'set from wednesday to next saturday'); - assert.equal(moment(a).day(10).date(), 19, 'set from wednesday to next wednesday'); - - assert.equal(moment(a).day(14).date(), 23, 'set from wednesday to second next sunday'); - assert.equal(moment(a).day(20).date(), 29, 'set from wednesday to second next saturday'); - assert.equal(moment(a).day(17).date(), 26, 'set from wednesday to second next wednesday'); -}); - -test('object set ordering', function (assert) { - var a = moment([2016,3,30]); - assert.equal(a.set({date:31, month:4}).date(), 31, 'setter order automatically arranged by size'); - var b = moment([2015,1,28]); - assert.equal(b.set({date:29, year: 2016}).format('YYYY-MM-DD'), '2016-02-29', 'year is prioritized over date'); - //check a nonexistent time in US isn't set - var c = moment([2016,2,13]); - c.set({ - hour:2, - minutes:30, - date: 14 - }); - assert.equal(c.format('YYYY-MM-DDTHH:mm'), '2016-03-14T02:30', 'setting hours, minutes date puts date first allowing time set to work'); -}); - -test('string setters', function (assert) { - var a = moment(); - a.year('2011'); - a.month('9'); - a.date('12'); - a.hours('6'); - a.minutes('7'); - a.seconds('8'); - a.milliseconds('9'); - assert.equal(a.year(), 2011, 'year'); - assert.equal(a.month(), 9, 'month'); - assert.equal(a.date(), 12, 'date'); - assert.equal(a.day(), 3, 'day'); - assert.equal(a.hours(), 6, 'hour'); - assert.equal(a.minutes(), 7, 'minute'); - assert.equal(a.seconds(), 8, 'second'); - assert.equal(a.milliseconds(), 9, 'milliseconds'); -}); - -test('setters across DST +1', function (assert) { - var oldUpdateOffset = moment.updateOffset, - // Based on a real story somewhere in America/Los_Angeles - dstAt = moment('2014-03-09T02:00:00-08:00').parseZone(), - m; - - moment.updateOffset = function (mom, keepTime) { - if (mom.isBefore(dstAt)) { - mom.utcOffset(-8, keepTime); - } else { - mom.utcOffset(-7, keepTime); - } - }; - - m = moment('2014-03-15T00:00:00-07:00').parseZone(); - m.year(2013); - assert.equal(m.format(), '2013-03-15T00:00:00-08:00', 'year across +1'); - - m = moment('2014-03-15T00:00:00-07:00').parseZone(); - m.month(0); - assert.equal(m.format(), '2014-01-15T00:00:00-08:00', 'month across +1'); - - m = moment('2014-03-15T00:00:00-07:00').parseZone(); - m.date(1); - assert.equal(m.format(), '2014-03-01T00:00:00-08:00', 'date across +1'); - - m = moment('2014-03-09T03:05:00-07:00').parseZone(); - m.hour(0); - assert.equal(m.format(), '2014-03-09T00:05:00-08:00', 'hour across +1'); - - moment.updateOffset = oldUpdateOffset; -}); - -test('setters across DST -1', function (assert) { - var oldUpdateOffset = moment.updateOffset, - // Based on a real story somewhere in America/Los_Angeles - dstAt = moment('2014-11-02T02:00:00-07:00').parseZone(), - m; - - moment.updateOffset = function (mom, keepTime) { - if (mom.isBefore(dstAt)) { - mom.utcOffset(-7, keepTime); - } else { - mom.utcOffset(-8, keepTime); - } - }; - - m = moment('2014-11-15T00:00:00-08:00').parseZone(); - m.year(2013); - assert.equal(m.format(), '2013-11-15T00:00:00-07:00', 'year across -1'); - - m = moment('2014-11-15T00:00:00-08:00').parseZone(); - m.month(0); - assert.equal(m.format(), '2014-01-15T00:00:00-07:00', 'month across -1'); - - m = moment('2014-11-15T00:00:00-08:00').parseZone(); - m.date(1); - assert.equal(m.format(), '2014-11-01T00:00:00-07:00', 'date across -1'); - - m = moment('2014-11-02T03:30:00-08:00').parseZone(); - m.hour(0); - assert.equal(m.format(), '2014-11-02T00:30:00-07:00', 'hour across -1'); - - moment.updateOffset = oldUpdateOffset; -}); - -}))); - - -;(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' - && typeof require === 'function' ? factory(require('../../moment')) : - typeof define === 'function' && define.amd ? define(['../../moment'], factory) : - factory(global.moment) -}(this, (function (moment) { 'use strict'; - -function each(array, callback) { - var i; - for (i = 0; i < array.length; i++) { - callback(array[i], i, array); - } -} - -function objectKeys(obj) { - if (Object.keys) { - return Object.keys(obj); - } else { - // IE8 - var res = [], i; - for (i in obj) { - if (obj.hasOwnProperty(i)) { - res.push(i); - } - } - return res; - } -} - -// Pick the first defined of two or three arguments. - -function defineCommonLocaleTests(locale, options) { - test('lenient day of month ordinal parsing', function (assert) { - var i, ordinalStr, testMoment; - for (i = 1; i <= 31; ++i) { - ordinalStr = moment([2014, 0, i]).format('YYYY MM Do'); - testMoment = moment(ordinalStr, 'YYYY MM Do'); - assert.equal(testMoment.year(), 2014, - 'lenient day of month ordinal parsing ' + i + ' year check'); - assert.equal(testMoment.month(), 0, - 'lenient day of month ordinal parsing ' + i + ' month check'); - assert.equal(testMoment.date(), i, - 'lenient day of month ordinal parsing ' + i + ' date check'); - } - }); - - test('lenient day of month ordinal parsing of number', function (assert) { - var i, testMoment; - for (i = 1; i <= 31; ++i) { - testMoment = moment('2014 01 ' + i, 'YYYY MM Do'); - assert.equal(testMoment.year(), 2014, - 'lenient day of month ordinal parsing of number ' + i + ' year check'); - assert.equal(testMoment.month(), 0, - 'lenient day of month ordinal parsing of number ' + i + ' month check'); - assert.equal(testMoment.date(), i, - 'lenient day of month ordinal parsing of number ' + i + ' date check'); - } - }); - - test('strict day of month ordinal parsing', function (assert) { - var i, ordinalStr, testMoment; - for (i = 1; i <= 31; ++i) { - ordinalStr = moment([2014, 0, i]).format('YYYY MM Do'); - testMoment = moment(ordinalStr, 'YYYY MM Do', true); - assert.ok(testMoment.isValid(), 'strict day of month ordinal parsing ' + i); - } - }); - - test('meridiem invariant', function (assert) { - var h, m, t1, t2; - for (h = 0; h < 24; ++h) { - for (m = 0; m < 60; m += 15) { - t1 = moment.utc([2000, 0, 1, h, m]); - t2 = moment.utc(t1.format('A h:mm'), 'A h:mm'); - assert.equal(t2.format('HH:mm'), t1.format('HH:mm'), - 'meridiem at ' + t1.format('HH:mm')); - } - } - }); - - test('date format correctness', function (assert) { - var data, tokens; - data = moment.localeData()._longDateFormat; - tokens = objectKeys(data); - each(tokens, function (srchToken) { - // Check each format string to make sure it does not contain any - // tokens that need to be expanded. - each(tokens, function (baseToken) { - // strip escaped sequences - var format = data[baseToken].replace(/(\[[^\]]*\])/g, ''); - assert.equal(false, !!~format.indexOf(srchToken), - 'contains ' + srchToken + ' in ' + baseToken); - }); - }); - }); - - test('month parsing correctness', function (assert) { - var i, m; - - if (locale === 'tr') { - // I can't fix it :( - expect(0); - return; - } - function tester(format) { - var r; - r = moment(m.format(format), format); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format); - r = moment(m.format(format).toLocaleUpperCase(), format); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' upper'); - r = moment(m.format(format).toLocaleLowerCase(), format); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' lower'); - - r = moment(m.format(format), format, true); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' strict'); - r = moment(m.format(format).toLocaleUpperCase(), format, true); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' upper strict'); - r = moment(m.format(format).toLocaleLowerCase(), format, true); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' lower strict'); - } - - for (i = 0; i < 12; ++i) { - m = moment([2015, i, 15, 18]); - tester('MMM'); - tester('MMM.'); - tester('MMMM'); - tester('MMMM.'); - } - }); - - test('weekday parsing correctness', function (assert) { - var i, m; - - if (locale === 'tr' || locale === 'az' || locale === 'ro') { - // tr, az: There is a lower-case letter (ı), that converted to - // upper then lower changes to i - // ro: there is the letter ț which behaves weird under IE8 - expect(0); - return; - } - function tester(format) { - var r, baseMsg = 'weekday ' + m.weekday() + ' fmt ' + format + ' ' + m.toISOString(); - r = moment(m.format(format), format); - assert.equal(r.weekday(), m.weekday(), baseMsg); - r = moment(m.format(format).toLocaleUpperCase(), format); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' upper'); - r = moment(m.format(format).toLocaleLowerCase(), format); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' lower'); - - r = moment(m.format(format), format, true); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' strict'); - r = moment(m.format(format).toLocaleUpperCase(), format, true); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' upper strict'); - r = moment(m.format(format).toLocaleLowerCase(), format, true); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' lower strict'); - } - - for (i = 0; i < 7; ++i) { - m = moment.utc([2015, 0, i + 1, 18]); - tester('dd'); - tester('ddd'); - tester('dddd'); - } - }); - - test('valid localeData', function (assert) { - assert.equal(moment().localeData().months().length, 12, 'months should return 12 months'); - assert.equal(moment().localeData().monthsShort().length, 12, 'monthsShort should return 12 months'); - assert.equal(moment().localeData().weekdays().length, 7, 'weekdays should return 7 days'); - assert.equal(moment().localeData().weekdaysShort().length, 7, 'weekdaysShort should return 7 days'); - assert.equal(moment().localeData().weekdaysMin().length, 7, 'monthsShort should return 7 days'); - }); -} - -function setupDeprecationHandler(test, moment$$1, scope) { - test._expectedDeprecations = null; - test._observedDeprecations = null; - test._oldSupress = moment$$1.suppressDeprecationWarnings; - moment$$1.suppressDeprecationWarnings = true; - test.expectedDeprecations = function () { - test._expectedDeprecations = arguments; - test._observedDeprecations = []; - }; - moment$$1.deprecationHandler = function (name, msg) { - var deprecationId = matchedDeprecation(name, msg, test._expectedDeprecations); - if (deprecationId === -1) { - throw new Error('Unexpected deprecation thrown name=' + - name + ' msg=' + msg); - } - test._observedDeprecations[deprecationId] = 1; - }; -} - -function teardownDeprecationHandler(test, moment$$1, scope) { - moment$$1.suppressDeprecationWarnings = test._oldSupress; - - if (test._expectedDeprecations != null) { - var missedDeprecations = []; - each(test._expectedDeprecations, function (deprecationPattern, id) { - if (test._observedDeprecations[id] !== 1) { - missedDeprecations.push(deprecationPattern); - } - }); - if (missedDeprecations.length !== 0) { - throw new Error('Expected deprecation warnings did not happen: ' + - missedDeprecations.join(' ')); - } - } -} - -function matchedDeprecation(name, msg, deprecations) { - if (deprecations == null) { - return -1; - } - for (var i = 0; i < deprecations.length; ++i) { - if (name != null && name === deprecations[i]) { - return i; - } - if (msg != null && msg.substring(0, deprecations[i].length) === deprecations[i]) { - return i; - } - } - return -1; -} - -/*global QUnit:false*/ - -var test = QUnit.test; - -var expect = QUnit.expect; - -function module$1 (name, lifecycle) { - QUnit.module(name, { - setup : function () { - moment.locale('en'); - moment.createFromInputFallback = function (config) { - throw new Error('input not handled by moment: ' + config._i); - }; - setupDeprecationHandler(test, moment, 'core'); - if (lifecycle && lifecycle.setup) { - lifecycle.setup(); - } - }, - teardown : function () { - teardownDeprecationHandler(test, moment, 'core'); - if (lifecycle && lifecycle.teardown) { - lifecycle.teardown(); - } - } - }); -} - -module$1('instanceof'); - -test('instanceof', function (assert) { - var mm = moment([2010, 0, 1]); - - var extend = function (a, b) { - var i; - for (i in b) { - a[i] = b[i]; - } - return a; - }; - - assert.equal(moment() instanceof moment, true, 'simple moment object'); - assert.equal(extend({}, moment()) instanceof moment, false, 'extended moment object'); - assert.equal(moment(null) instanceof moment, true, 'invalid moment object'); - - assert.equal(new Date() instanceof moment, false, 'date object is not moment object'); - assert.equal(Object instanceof moment, false, 'Object is not moment object'); - assert.equal('foo' instanceof moment, false, 'string is not moment object'); - assert.equal(1 instanceof moment, false, 'number is not moment object'); - assert.equal(NaN instanceof moment, false, 'NaN is not moment object'); - assert.equal(null instanceof moment, false, 'null is not moment object'); - assert.equal(undefined instanceof moment, false, 'undefined is not moment object'); -}); - -}))); - - -;(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' - && typeof require === 'function' ? factory(require('../../moment')) : - typeof define === 'function' && define.amd ? define(['../../moment'], factory) : - factory(global.moment) -}(this, (function (moment) { 'use strict'; - -function each(array, callback) { - var i; - for (i = 0; i < array.length; i++) { - callback(array[i], i, array); - } -} - -function objectKeys(obj) { - if (Object.keys) { - return Object.keys(obj); - } else { - // IE8 - var res = [], i; - for (i in obj) { - if (obj.hasOwnProperty(i)) { - res.push(i); - } - } - return res; - } -} - -// Pick the first defined of two or three arguments. - -function defineCommonLocaleTests(locale, options) { - test('lenient day of month ordinal parsing', function (assert) { - var i, ordinalStr, testMoment; - for (i = 1; i <= 31; ++i) { - ordinalStr = moment([2014, 0, i]).format('YYYY MM Do'); - testMoment = moment(ordinalStr, 'YYYY MM Do'); - assert.equal(testMoment.year(), 2014, - 'lenient day of month ordinal parsing ' + i + ' year check'); - assert.equal(testMoment.month(), 0, - 'lenient day of month ordinal parsing ' + i + ' month check'); - assert.equal(testMoment.date(), i, - 'lenient day of month ordinal parsing ' + i + ' date check'); - } - }); - - test('lenient day of month ordinal parsing of number', function (assert) { - var i, testMoment; - for (i = 1; i <= 31; ++i) { - testMoment = moment('2014 01 ' + i, 'YYYY MM Do'); - assert.equal(testMoment.year(), 2014, - 'lenient day of month ordinal parsing of number ' + i + ' year check'); - assert.equal(testMoment.month(), 0, - 'lenient day of month ordinal parsing of number ' + i + ' month check'); - assert.equal(testMoment.date(), i, - 'lenient day of month ordinal parsing of number ' + i + ' date check'); - } - }); - - test('strict day of month ordinal parsing', function (assert) { - var i, ordinalStr, testMoment; - for (i = 1; i <= 31; ++i) { - ordinalStr = moment([2014, 0, i]).format('YYYY MM Do'); - testMoment = moment(ordinalStr, 'YYYY MM Do', true); - assert.ok(testMoment.isValid(), 'strict day of month ordinal parsing ' + i); - } - }); - - test('meridiem invariant', function (assert) { - var h, m, t1, t2; - for (h = 0; h < 24; ++h) { - for (m = 0; m < 60; m += 15) { - t1 = moment.utc([2000, 0, 1, h, m]); - t2 = moment.utc(t1.format('A h:mm'), 'A h:mm'); - assert.equal(t2.format('HH:mm'), t1.format('HH:mm'), - 'meridiem at ' + t1.format('HH:mm')); - } - } - }); - - test('date format correctness', function (assert) { - var data, tokens; - data = moment.localeData()._longDateFormat; - tokens = objectKeys(data); - each(tokens, function (srchToken) { - // Check each format string to make sure it does not contain any - // tokens that need to be expanded. - each(tokens, function (baseToken) { - // strip escaped sequences - var format = data[baseToken].replace(/(\[[^\]]*\])/g, ''); - assert.equal(false, !!~format.indexOf(srchToken), - 'contains ' + srchToken + ' in ' + baseToken); - }); - }); - }); - - test('month parsing correctness', function (assert) { - var i, m; - - if (locale === 'tr') { - // I can't fix it :( - expect(0); - return; - } - function tester(format) { - var r; - r = moment(m.format(format), format); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format); - r = moment(m.format(format).toLocaleUpperCase(), format); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' upper'); - r = moment(m.format(format).toLocaleLowerCase(), format); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' lower'); - - r = moment(m.format(format), format, true); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' strict'); - r = moment(m.format(format).toLocaleUpperCase(), format, true); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' upper strict'); - r = moment(m.format(format).toLocaleLowerCase(), format, true); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' lower strict'); - } - - for (i = 0; i < 12; ++i) { - m = moment([2015, i, 15, 18]); - tester('MMM'); - tester('MMM.'); - tester('MMMM'); - tester('MMMM.'); - } - }); - - test('weekday parsing correctness', function (assert) { - var i, m; - - if (locale === 'tr' || locale === 'az' || locale === 'ro') { - // tr, az: There is a lower-case letter (ı), that converted to - // upper then lower changes to i - // ro: there is the letter ț which behaves weird under IE8 - expect(0); - return; - } - function tester(format) { - var r, baseMsg = 'weekday ' + m.weekday() + ' fmt ' + format + ' ' + m.toISOString(); - r = moment(m.format(format), format); - assert.equal(r.weekday(), m.weekday(), baseMsg); - r = moment(m.format(format).toLocaleUpperCase(), format); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' upper'); - r = moment(m.format(format).toLocaleLowerCase(), format); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' lower'); - - r = moment(m.format(format), format, true); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' strict'); - r = moment(m.format(format).toLocaleUpperCase(), format, true); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' upper strict'); - r = moment(m.format(format).toLocaleLowerCase(), format, true); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' lower strict'); - } - - for (i = 0; i < 7; ++i) { - m = moment.utc([2015, 0, i + 1, 18]); - tester('dd'); - tester('ddd'); - tester('dddd'); - } - }); - - test('valid localeData', function (assert) { - assert.equal(moment().localeData().months().length, 12, 'months should return 12 months'); - assert.equal(moment().localeData().monthsShort().length, 12, 'monthsShort should return 12 months'); - assert.equal(moment().localeData().weekdays().length, 7, 'weekdays should return 7 days'); - assert.equal(moment().localeData().weekdaysShort().length, 7, 'weekdaysShort should return 7 days'); - assert.equal(moment().localeData().weekdaysMin().length, 7, 'monthsShort should return 7 days'); - }); -} - -function setupDeprecationHandler(test, moment$$1, scope) { - test._expectedDeprecations = null; - test._observedDeprecations = null; - test._oldSupress = moment$$1.suppressDeprecationWarnings; - moment$$1.suppressDeprecationWarnings = true; - test.expectedDeprecations = function () { - test._expectedDeprecations = arguments; - test._observedDeprecations = []; - }; - moment$$1.deprecationHandler = function (name, msg) { - var deprecationId = matchedDeprecation(name, msg, test._expectedDeprecations); - if (deprecationId === -1) { - throw new Error('Unexpected deprecation thrown name=' + - name + ' msg=' + msg); - } - test._observedDeprecations[deprecationId] = 1; - }; -} - -function teardownDeprecationHandler(test, moment$$1, scope) { - moment$$1.suppressDeprecationWarnings = test._oldSupress; - - if (test._expectedDeprecations != null) { - var missedDeprecations = []; - each(test._expectedDeprecations, function (deprecationPattern, id) { - if (test._observedDeprecations[id] !== 1) { - missedDeprecations.push(deprecationPattern); - } - }); - if (missedDeprecations.length !== 0) { - throw new Error('Expected deprecation warnings did not happen: ' + - missedDeprecations.join(' ')); - } - } -} - -function matchedDeprecation(name, msg, deprecations) { - if (deprecations == null) { - return -1; - } - for (var i = 0; i < deprecations.length; ++i) { - if (name != null && name === deprecations[i]) { - return i; - } - if (msg != null && msg.substring(0, deprecations[i].length) === deprecations[i]) { - return i; - } - } - return -1; -} - -/*global QUnit:false*/ - -var test = QUnit.test; - -var expect = QUnit.expect; - -function module$1 (name, lifecycle) { - QUnit.module(name, { - setup : function () { - moment.locale('en'); - moment.createFromInputFallback = function (config) { - throw new Error('input not handled by moment: ' + config._i); - }; - setupDeprecationHandler(test, moment, 'core'); - if (lifecycle && lifecycle.setup) { - lifecycle.setup(); - } - }, - teardown : function () { - teardownDeprecationHandler(test, moment, 'core'); - if (lifecycle && lifecycle.teardown) { - lifecycle.teardown(); - } - } - }); -} - -module$1('invalid'); - -test('invalid', function (assert) { - var m = moment.invalid(); - assert.equal(m.isValid(), false); - assert.equal(m.parsingFlags().userInvalidated, true); - assert.ok(isNaN(m.valueOf())); -}); - -test('invalid with existing flag', function (assert) { - var m = moment.invalid({invalidMonth : 'whatchamacallit'}); - assert.equal(m.isValid(), false); - assert.equal(m.parsingFlags().userInvalidated, false); - assert.equal(m.parsingFlags().invalidMonth, 'whatchamacallit'); - assert.ok(isNaN(m.valueOf())); -}); - -test('invalid with custom flag', function (assert) { - var m = moment.invalid({tooBusyWith : 'reiculating splines'}); - assert.equal(m.isValid(), false); - assert.equal(m.parsingFlags().userInvalidated, false); - assert.equal(m.parsingFlags().tooBusyWith, 'reiculating splines'); - assert.ok(isNaN(m.valueOf())); -}); - -test('invalid operations', function (assert) { - var invalids = [ - moment.invalid(), - moment('xyz', 'l'), - moment('2015-01-35', 'YYYY-MM-DD'), - moment('2015-01-25 a', 'YYYY-MM-DD', true) - ], - i, - invalid, - valid = moment(); - - test.expectedDeprecations('moment().min', 'moment().max', 'isDSTShifted'); - - for (i = 0; i < invalids.length; ++i) { - invalid = invalids[i]; - - assert.ok(!invalid.clone().add(5, 'hours').isValid(), 'invalid.add is invalid'); - assert.equal(invalid.calendar(), 'Invalid date', 'invalid.calendar is \'Invalid date\''); - assert.ok(!invalid.clone().isValid(), 'invalid.clone is invalid'); - assert.ok(isNaN(invalid.diff(valid)), 'invalid.diff(valid) is NaN'); - assert.ok(isNaN(valid.diff(invalid)), 'valid.diff(invalid) is NaN'); - assert.ok(isNaN(invalid.diff(invalid)), 'invalid.diff(invalid) is NaN'); - assert.ok(!invalid.clone().endOf('month').isValid(), 'invalid.endOf is invalid'); - assert.equal(invalid.format(), 'Invalid date', 'invalid.format is \'Invalid date\''); - assert.equal(invalid.from(), 'Invalid date'); - assert.equal(invalid.from(valid), 'Invalid date'); - assert.equal(valid.from(invalid), 'Invalid date'); - assert.equal(invalid.fromNow(), 'Invalid date'); - assert.equal(invalid.to(), 'Invalid date'); - assert.equal(invalid.to(valid), 'Invalid date'); - assert.equal(valid.to(invalid), 'Invalid date'); - assert.equal(invalid.toNow(), 'Invalid date'); - assert.ok(isNaN(invalid.get('year')), 'invalid.get is NaN'); - // TODO invalidAt - assert.ok(!invalid.isAfter(valid)); - assert.ok(!valid.isAfter(invalid)); - assert.ok(!invalid.isAfter(invalid)); - assert.ok(!invalid.isBefore(valid)); - assert.ok(!valid.isBefore(invalid)); - assert.ok(!invalid.isBefore(invalid)); - assert.ok(!invalid.isBetween(valid, valid)); - assert.ok(!valid.isBetween(invalid, valid)); - assert.ok(!valid.isBetween(valid, invalid)); - assert.ok(!invalid.isSame(invalid)); - assert.ok(!invalid.isSame(valid)); - assert.ok(!valid.isSame(invalid)); - assert.ok(!invalid.isValid()); - assert.equal(invalid.locale(), 'en'); - assert.equal(invalid.localeData()._abbr, 'en'); - assert.ok(!invalid.clone().max(valid).isValid()); - assert.ok(!valid.clone().max(invalid).isValid()); - assert.ok(!invalid.clone().max(invalid).isValid()); - assert.ok(!invalid.clone().min(valid).isValid()); - assert.ok(!valid.clone().min(invalid).isValid()); - assert.ok(!invalid.clone().min(invalid).isValid()); - assert.ok(!moment.min(invalid, valid).isValid()); - assert.ok(!moment.min(valid, invalid).isValid()); - assert.ok(!moment.max(invalid, valid).isValid()); - assert.ok(!moment.max(valid, invalid).isValid()); - assert.ok(!invalid.clone().set('year', 2005).isValid()); - assert.ok(!invalid.clone().startOf('month').isValid()); - - assert.ok(!invalid.clone().subtract(5, 'days').isValid()); - assert.deepEqual(invalid.toArray(), [NaN, NaN, NaN, NaN, NaN, NaN, NaN]); - assert.deepEqual(invalid.toObject(), { - years: NaN, - months: NaN, - date: NaN, - hours: NaN, - minutes: NaN, - seconds: NaN, - milliseconds: NaN - }); - assert.ok(moment.isDate(invalid.toDate())); - assert.ok(isNaN(invalid.toDate().valueOf())); - assert.equal(invalid.toJSON(), null); - assert.equal(invalid.toString(), 'Invalid date'); - assert.ok(isNaN(invalid.unix())); - assert.ok(isNaN(invalid.valueOf())); - - assert.ok(isNaN(invalid.year())); - assert.ok(isNaN(invalid.weekYear())); - assert.ok(isNaN(invalid.isoWeekYear())); - assert.ok(isNaN(invalid.quarter())); - assert.ok(isNaN(invalid.quarters())); - assert.ok(isNaN(invalid.month())); - assert.ok(isNaN(invalid.daysInMonth())); - assert.ok(isNaN(invalid.week())); - assert.ok(isNaN(invalid.weeks())); - assert.ok(isNaN(invalid.isoWeek())); - assert.ok(isNaN(invalid.isoWeeks())); - assert.ok(isNaN(invalid.weeksInYear())); - assert.ok(isNaN(invalid.isoWeeksInYear())); - assert.ok(isNaN(invalid.date())); - assert.ok(isNaN(invalid.day())); - assert.ok(isNaN(invalid.days())); - assert.ok(isNaN(invalid.weekday())); - assert.ok(isNaN(invalid.isoWeekday())); - assert.ok(isNaN(invalid.dayOfYear())); - assert.ok(isNaN(invalid.hour())); - assert.ok(isNaN(invalid.hours())); - assert.ok(isNaN(invalid.minute())); - assert.ok(isNaN(invalid.minutes())); - assert.ok(isNaN(invalid.second())); - assert.ok(isNaN(invalid.seconds())); - assert.ok(isNaN(invalid.millisecond())); - assert.ok(isNaN(invalid.milliseconds())); - assert.ok(isNaN(invalid.utcOffset())); - - assert.ok(!invalid.clone().year(2001).isValid()); - assert.ok(!invalid.clone().weekYear(2001).isValid()); - assert.ok(!invalid.clone().isoWeekYear(2001).isValid()); - assert.ok(!invalid.clone().quarter(1).isValid()); - assert.ok(!invalid.clone().quarters(1).isValid()); - assert.ok(!invalid.clone().month(1).isValid()); - assert.ok(!invalid.clone().week(1).isValid()); - assert.ok(!invalid.clone().weeks(1).isValid()); - assert.ok(!invalid.clone().isoWeek(1).isValid()); - assert.ok(!invalid.clone().isoWeeks(1).isValid()); - assert.ok(!invalid.clone().date(1).isValid()); - assert.ok(!invalid.clone().day(1).isValid()); - assert.ok(!invalid.clone().days(1).isValid()); - assert.ok(!invalid.clone().weekday(1).isValid()); - assert.ok(!invalid.clone().isoWeekday(1).isValid()); - assert.ok(!invalid.clone().dayOfYear(1).isValid()); - assert.ok(!invalid.clone().hour(1).isValid()); - assert.ok(!invalid.clone().hours(1).isValid()); - assert.ok(!invalid.clone().minute(1).isValid()); - assert.ok(!invalid.clone().minutes(1).isValid()); - assert.ok(!invalid.clone().second(1).isValid()); - assert.ok(!invalid.clone().seconds(1).isValid()); - assert.ok(!invalid.clone().millisecond(1).isValid()); - assert.ok(!invalid.clone().milliseconds(1).isValid()); - assert.ok(!invalid.clone().utcOffset(1).isValid()); - - assert.ok(!invalid.clone().utc().isValid()); - assert.ok(!invalid.clone().local().isValid()); - assert.ok(!invalid.clone().parseZone('05:30').isValid()); - assert.ok(!invalid.hasAlignedHourOffset()); - assert.ok(!invalid.isDST()); - assert.ok(!invalid.isDSTShifted()); - assert.ok(!invalid.isLocal()); - assert.ok(!invalid.isUtcOffset()); - assert.ok(!invalid.isUtc()); - assert.ok(!invalid.isUTC()); - - assert.ok(!invalid.isLeapYear()); - - assert.equal(moment.duration({from: invalid, to: valid}).asMilliseconds(), 0); - assert.equal(moment.duration({from: valid, to: invalid}).asMilliseconds(), 0); - assert.equal(moment.duration({from: invalid, to: invalid}).asMilliseconds(), 0); - } -}); - -}))); - - -;(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' - && typeof require === 'function' ? factory(require('../../moment')) : - typeof define === 'function' && define.amd ? define(['../../moment'], factory) : - factory(global.moment) -}(this, (function (moment) { 'use strict'; - -function each(array, callback) { - var i; - for (i = 0; i < array.length; i++) { - callback(array[i], i, array); - } -} - -function objectKeys(obj) { - if (Object.keys) { - return Object.keys(obj); - } else { - // IE8 - var res = [], i; - for (i in obj) { - if (obj.hasOwnProperty(i)) { - res.push(i); - } - } - return res; - } -} - -// Pick the first defined of two or three arguments. - -function defineCommonLocaleTests(locale, options) { - test('lenient day of month ordinal parsing', function (assert) { - var i, ordinalStr, testMoment; - for (i = 1; i <= 31; ++i) { - ordinalStr = moment([2014, 0, i]).format('YYYY MM Do'); - testMoment = moment(ordinalStr, 'YYYY MM Do'); - assert.equal(testMoment.year(), 2014, - 'lenient day of month ordinal parsing ' + i + ' year check'); - assert.equal(testMoment.month(), 0, - 'lenient day of month ordinal parsing ' + i + ' month check'); - assert.equal(testMoment.date(), i, - 'lenient day of month ordinal parsing ' + i + ' date check'); - } - }); - - test('lenient day of month ordinal parsing of number', function (assert) { - var i, testMoment; - for (i = 1; i <= 31; ++i) { - testMoment = moment('2014 01 ' + i, 'YYYY MM Do'); - assert.equal(testMoment.year(), 2014, - 'lenient day of month ordinal parsing of number ' + i + ' year check'); - assert.equal(testMoment.month(), 0, - 'lenient day of month ordinal parsing of number ' + i + ' month check'); - assert.equal(testMoment.date(), i, - 'lenient day of month ordinal parsing of number ' + i + ' date check'); - } - }); - - test('strict day of month ordinal parsing', function (assert) { - var i, ordinalStr, testMoment; - for (i = 1; i <= 31; ++i) { - ordinalStr = moment([2014, 0, i]).format('YYYY MM Do'); - testMoment = moment(ordinalStr, 'YYYY MM Do', true); - assert.ok(testMoment.isValid(), 'strict day of month ordinal parsing ' + i); - } - }); - - test('meridiem invariant', function (assert) { - var h, m, t1, t2; - for (h = 0; h < 24; ++h) { - for (m = 0; m < 60; m += 15) { - t1 = moment.utc([2000, 0, 1, h, m]); - t2 = moment.utc(t1.format('A h:mm'), 'A h:mm'); - assert.equal(t2.format('HH:mm'), t1.format('HH:mm'), - 'meridiem at ' + t1.format('HH:mm')); - } - } - }); - - test('date format correctness', function (assert) { - var data, tokens; - data = moment.localeData()._longDateFormat; - tokens = objectKeys(data); - each(tokens, function (srchToken) { - // Check each format string to make sure it does not contain any - // tokens that need to be expanded. - each(tokens, function (baseToken) { - // strip escaped sequences - var format = data[baseToken].replace(/(\[[^\]]*\])/g, ''); - assert.equal(false, !!~format.indexOf(srchToken), - 'contains ' + srchToken + ' in ' + baseToken); - }); - }); - }); - - test('month parsing correctness', function (assert) { - var i, m; - - if (locale === 'tr') { - // I can't fix it :( - expect(0); - return; - } - function tester(format) { - var r; - r = moment(m.format(format), format); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format); - r = moment(m.format(format).toLocaleUpperCase(), format); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' upper'); - r = moment(m.format(format).toLocaleLowerCase(), format); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' lower'); - - r = moment(m.format(format), format, true); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' strict'); - r = moment(m.format(format).toLocaleUpperCase(), format, true); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' upper strict'); - r = moment(m.format(format).toLocaleLowerCase(), format, true); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' lower strict'); - } - - for (i = 0; i < 12; ++i) { - m = moment([2015, i, 15, 18]); - tester('MMM'); - tester('MMM.'); - tester('MMMM'); - tester('MMMM.'); - } - }); - - test('weekday parsing correctness', function (assert) { - var i, m; - - if (locale === 'tr' || locale === 'az' || locale === 'ro') { - // tr, az: There is a lower-case letter (ı), that converted to - // upper then lower changes to i - // ro: there is the letter ț which behaves weird under IE8 - expect(0); - return; - } - function tester(format) { - var r, baseMsg = 'weekday ' + m.weekday() + ' fmt ' + format + ' ' + m.toISOString(); - r = moment(m.format(format), format); - assert.equal(r.weekday(), m.weekday(), baseMsg); - r = moment(m.format(format).toLocaleUpperCase(), format); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' upper'); - r = moment(m.format(format).toLocaleLowerCase(), format); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' lower'); - - r = moment(m.format(format), format, true); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' strict'); - r = moment(m.format(format).toLocaleUpperCase(), format, true); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' upper strict'); - r = moment(m.format(format).toLocaleLowerCase(), format, true); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' lower strict'); - } - - for (i = 0; i < 7; ++i) { - m = moment.utc([2015, 0, i + 1, 18]); - tester('dd'); - tester('ddd'); - tester('dddd'); - } - }); - - test('valid localeData', function (assert) { - assert.equal(moment().localeData().months().length, 12, 'months should return 12 months'); - assert.equal(moment().localeData().monthsShort().length, 12, 'monthsShort should return 12 months'); - assert.equal(moment().localeData().weekdays().length, 7, 'weekdays should return 7 days'); - assert.equal(moment().localeData().weekdaysShort().length, 7, 'weekdaysShort should return 7 days'); - assert.equal(moment().localeData().weekdaysMin().length, 7, 'monthsShort should return 7 days'); - }); -} - -function setupDeprecationHandler(test, moment$$1, scope) { - test._expectedDeprecations = null; - test._observedDeprecations = null; - test._oldSupress = moment$$1.suppressDeprecationWarnings; - moment$$1.suppressDeprecationWarnings = true; - test.expectedDeprecations = function () { - test._expectedDeprecations = arguments; - test._observedDeprecations = []; - }; - moment$$1.deprecationHandler = function (name, msg) { - var deprecationId = matchedDeprecation(name, msg, test._expectedDeprecations); - if (deprecationId === -1) { - throw new Error('Unexpected deprecation thrown name=' + - name + ' msg=' + msg); - } - test._observedDeprecations[deprecationId] = 1; - }; -} - -function teardownDeprecationHandler(test, moment$$1, scope) { - moment$$1.suppressDeprecationWarnings = test._oldSupress; - - if (test._expectedDeprecations != null) { - var missedDeprecations = []; - each(test._expectedDeprecations, function (deprecationPattern, id) { - if (test._observedDeprecations[id] !== 1) { - missedDeprecations.push(deprecationPattern); - } - }); - if (missedDeprecations.length !== 0) { - throw new Error('Expected deprecation warnings did not happen: ' + - missedDeprecations.join(' ')); - } - } -} - -function matchedDeprecation(name, msg, deprecations) { - if (deprecations == null) { - return -1; - } - for (var i = 0; i < deprecations.length; ++i) { - if (name != null && name === deprecations[i]) { - return i; - } - if (msg != null && msg.substring(0, deprecations[i].length) === deprecations[i]) { - return i; - } - } - return -1; -} - -/*global QUnit:false*/ - -var test = QUnit.test; - -var expect = QUnit.expect; - -function module$1 (name, lifecycle) { - QUnit.module(name, { - setup : function () { - moment.locale('en'); - moment.createFromInputFallback = function (config) { - throw new Error('input not handled by moment: ' + config._i); - }; - setupDeprecationHandler(test, moment, 'core'); - if (lifecycle && lifecycle.setup) { - lifecycle.setup(); - } - }, - teardown : function () { - teardownDeprecationHandler(test, moment, 'core'); - if (lifecycle && lifecycle.teardown) { - lifecycle.teardown(); - } - } - }); -} - -module$1('is after'); - -test('is after without units', function (assert) { - var m = moment(new Date(2011, 3, 2, 3, 4, 5, 10)), mCopy = moment(m); - assert.equal(m.isAfter(moment(new Date(2012, 3, 2, 3, 5, 5, 10))), false, 'year is later'); - assert.equal(m.isAfter(moment(new Date(2010, 3, 2, 3, 3, 5, 10))), true, 'year is earlier'); - assert.equal(m.isAfter(moment(new Date(2011, 4, 2, 3, 4, 5, 10))), false, 'month is later'); - assert.equal(m.isAfter(moment(new Date(2011, 2, 2, 3, 4, 5, 10))), true, 'month is earlier'); - assert.equal(m.isAfter(moment(new Date(2011, 3, 3, 3, 4, 5, 10))), false, 'day is later'); - assert.equal(m.isAfter(moment(new Date(2011, 3, 1, 3, 4, 5, 10))), true, 'day is earlier'); - assert.equal(m.isAfter(moment(new Date(2011, 3, 2, 4, 4, 5, 10))), false, 'hour is later'); - assert.equal(m.isAfter(moment(new Date(2011, 3, 2, 2, 4, 5, 10))), true, 'hour is earlier'); - assert.equal(m.isAfter(moment(new Date(2011, 3, 2, 3, 5, 5, 10))), false, 'minute is later'); - assert.equal(m.isAfter(moment(new Date(2011, 3, 2, 3, 3, 5, 10))), true, 'minute is earlier'); - assert.equal(m.isAfter(moment(new Date(2011, 3, 2, 3, 4, 6, 10))), false, 'second is later'); - assert.equal(m.isAfter(moment(new Date(2011, 3, 2, 3, 4, 4, 11))), true, 'second is earlier'); - assert.equal(m.isAfter(moment(new Date(2011, 3, 2, 3, 4, 5, 10))), false, 'millisecond match'); - assert.equal(m.isAfter(moment(new Date(2011, 3, 2, 3, 4, 5, 11))), false, 'millisecond is later'); - assert.equal(m.isAfter(moment(new Date(2011, 3, 2, 3, 4, 5, 9))), true, 'millisecond is earlier'); - assert.equal(m.isAfter(m), false, 'moments are not after themselves'); - assert.equal(+m, +mCopy, 'isAfter second should not change moment'); -}); - -test('is after year', function (assert) { - var m = moment(new Date(2011, 1, 2, 3, 4, 5, 6)), mCopy = moment(m); - assert.equal(m.isAfter(moment(new Date(2011, 5, 6, 7, 8, 9, 10)), 'year'), false, 'year match'); - assert.equal(m.isAfter(moment(new Date(2010, 5, 6, 7, 8, 9, 10)), 'years'), true, 'plural should work'); - assert.equal(m.isAfter(moment(new Date(2013, 5, 6, 7, 8, 9, 10)), 'year'), false, 'year is later'); - assert.equal(m.isAfter(moment(new Date(2010, 5, 6, 7, 8, 9, 10)), 'year'), true, 'year is earlier'); - assert.equal(m.isAfter(moment(new Date(2011, 0, 1, 0, 0, 0, 0)), 'year'), false, 'exact start of year'); - assert.equal(m.isAfter(moment(new Date(2011, 11, 31, 23, 59, 59, 999)), 'year'), false, 'exact end of year'); - assert.equal(m.isAfter(moment(new Date(2012, 0, 1, 0, 0, 0, 0)), 'year'), false, 'start of next year'); - assert.equal(m.isAfter(moment(new Date(2010, 11, 31, 23, 59, 59, 999)), 'year'), true, 'end of previous year'); - assert.equal(m.isAfter(moment(new Date(1980, 11, 31, 23, 59, 59, 999)), 'year'), true, 'end of year far before'); - assert.equal(m.isAfter(m, 'year'), false, 'same moments are not after the same year'); - assert.equal(+m, +mCopy, 'isAfter year should not change moment'); -}); - -test('is after month', function (assert) { - var m = moment(new Date(2011, 2, 3, 4, 5, 6, 7)), mCopy = moment(m); - assert.equal(m.isAfter(moment(new Date(2011, 2, 6, 7, 8, 9, 10)), 'month'), false, 'month match'); - assert.equal(m.isAfter(moment(new Date(2010, 2, 6, 7, 8, 9, 10)), 'months'), true, 'plural should work'); - assert.equal(m.isAfter(moment(new Date(2012, 2, 6, 7, 8, 9, 10)), 'month'), false, 'year is later'); - assert.equal(m.isAfter(moment(new Date(2010, 2, 6, 7, 8, 9, 10)), 'month'), true, 'year is earlier'); - assert.equal(m.isAfter(moment(new Date(2011, 5, 6, 7, 8, 9, 10)), 'month'), false, 'month is later'); - assert.equal(m.isAfter(moment(new Date(2011, 1, 6, 7, 8, 9, 10)), 'month'), true, 'month is earlier'); - assert.equal(m.isAfter(moment(new Date(2011, 2, 1, 0, 0, 0, 0)), 'month'), false, 'exact start of month'); - assert.equal(m.isAfter(moment(new Date(2011, 2, 31, 23, 59, 59, 999)), 'month'), false, 'exact end of month'); - assert.equal(m.isAfter(moment(new Date(2011, 3, 1, 0, 0, 0, 0)), 'month'), false, 'start of next month'); - assert.equal(m.isAfter(moment(new Date(2011, 1, 27, 23, 59, 59, 999)), 'month'), true, 'end of previous month'); - assert.equal(m.isAfter(moment(new Date(2010, 12, 31, 23, 59, 59, 999)), 'month'), true, 'later month but earlier year'); - assert.equal(m.isAfter(m, 'month'), false, 'same moments are not after the same month'); - assert.equal(+m, +mCopy, 'isAfter month should not change moment'); -}); - -test('is after day', function (assert) { - var m = moment(new Date(2011, 3, 2, 3, 4, 5, 6)), mCopy = moment(m); - assert.equal(m.isAfter(moment(new Date(2011, 3, 2, 7, 8, 9, 10)), 'day'), false, 'day match'); - assert.equal(m.isAfter(moment(new Date(2010, 3, 2, 7, 8, 9, 10)), 'days'), true, 'plural should work'); - assert.equal(m.isAfter(moment(new Date(2012, 3, 2, 7, 8, 9, 10)), 'day'), false, 'year is later'); - assert.equal(m.isAfter(moment(new Date(2010, 3, 2, 7, 8, 9, 10)), 'day'), true, 'year is earlier'); - assert.equal(m.isAfter(moment(new Date(2011, 4, 2, 7, 8, 9, 10)), 'day'), false, 'month is later'); - assert.equal(m.isAfter(moment(new Date(2011, 2, 2, 7, 8, 9, 10)), 'day'), true, 'month is earlier'); - assert.equal(m.isAfter(moment(new Date(2011, 3, 3, 7, 8, 9, 10)), 'day'), false, 'day is later'); - assert.equal(m.isAfter(moment(new Date(2011, 3, 1, 7, 8, 9, 10)), 'day'), true, 'day is earlier'); - assert.equal(m.isAfter(moment(new Date(2011, 3, 2, 0, 0, 0, 0)), 'day'), false, 'exact start of day'); - assert.equal(m.isAfter(moment(new Date(2011, 3, 2, 23, 59, 59, 999)), 'day'), false, 'exact end of day'); - assert.equal(m.isAfter(moment(new Date(2011, 3, 3, 0, 0, 0, 0)), 'day'), false, 'start of next day'); - assert.equal(m.isAfter(moment(new Date(2011, 3, 1, 23, 59, 59, 999)), 'day'), true, 'end of previous day'); - assert.equal(m.isAfter(moment(new Date(2010, 3, 10, 0, 0, 0, 0)), 'day'), true, 'later day but earlier year'); - assert.equal(m.isAfter(m, 'day'), false, 'same moments are not after the same day'); - assert.equal(+m, +mCopy, 'isAfter day should not change moment'); -}); - -test('is after hour', function (assert) { - var m = moment(new Date(2011, 3, 2, 3, 4, 5, 6)), mCopy = moment(m); - assert.equal(m.isAfter(moment(new Date(2011, 3, 2, 3, 8, 9, 10)), 'hour'), false, 'hour match'); - assert.equal(m.isAfter(moment(new Date(2010, 3, 2, 3, 8, 9, 10)), 'hours'), true, 'plural should work'); - assert.equal(m.isAfter(moment(new Date(2012, 3, 2, 3, 8, 9, 10)), 'hour'), false, 'year is later'); - assert.equal(m.isAfter(moment(new Date(2010, 3, 2, 3, 8, 9, 10)), 'hour'), true, 'year is earlier'); - assert.equal(m.isAfter(moment(new Date(2011, 4, 2, 3, 8, 9, 10)), 'hour'), false, 'month is later'); - assert.equal(m.isAfter(moment(new Date(2011, 1, 2, 3, 8, 9, 10)), 'hour'), true, 'month is earlier'); - assert.equal(m.isAfter(moment(new Date(2011, 3, 3, 3, 8, 9, 10)), 'hour'), false, 'day is later'); - assert.equal(m.isAfter(moment(new Date(2011, 3, 1, 3, 8, 9, 10)), 'hour'), true, 'day is earlier'); - assert.equal(m.isAfter(moment(new Date(2011, 3, 2, 4, 8, 9, 10)), 'hour'), false, 'hour is later'); - assert.equal(m.isAfter(moment(new Date(2011, 3, 2, 3, 8, 9, 10)), 'hour'), false, 'hour is earlier'); - assert.equal(m.isAfter(moment(new Date(2011, 3, 2, 3, 0, 0, 0)), 'hour'), false, 'exact start of hour'); - assert.equal(m.isAfter(moment(new Date(2011, 3, 2, 3, 59, 59, 999)), 'hour'), false, 'exact end of hour'); - assert.equal(m.isAfter(moment(new Date(2011, 3, 2, 4, 0, 0, 0)), 'hour'), false, 'start of next hour'); - assert.equal(m.isAfter(moment(new Date(2011, 3, 2, 2, 59, 59, 999)), 'hour'), true, 'end of previous hour'); - assert.equal(m.isAfter(m, 'hour'), false, 'same moments are not after the same hour'); - assert.equal(+m, +mCopy, 'isAfter hour should not change moment'); -}); - -test('is after minute', function (assert) { - var m = moment(new Date(2011, 3, 2, 3, 4, 5, 6)), mCopy = moment(m); - assert.equal(m.isAfter(moment(new Date(2011, 3, 2, 3, 4, 9, 10)), 'minute'), false, 'minute match'); - assert.equal(m.isAfter(moment(new Date(2010, 3, 2, 3, 4, 9, 10)), 'minutes'), true, 'plural should work'); - assert.equal(m.isAfter(moment(new Date(2012, 3, 2, 3, 4, 9, 10)), 'minute'), false, 'year is later'); - assert.equal(m.isAfter(moment(new Date(2010, 3, 2, 3, 4, 9, 10)), 'minute'), true, 'year is earlier'); - assert.equal(m.isAfter(moment(new Date(2011, 4, 2, 3, 4, 9, 10)), 'minute'), false, 'month is later'); - assert.equal(m.isAfter(moment(new Date(2011, 2, 2, 3, 4, 9, 10)), 'minute'), true, 'month is earlier'); - assert.equal(m.isAfter(moment(new Date(2011, 3, 3, 3, 4, 9, 10)), 'minute'), false, 'day is later'); - assert.equal(m.isAfter(moment(new Date(2011, 3, 1, 3, 4, 9, 10)), 'minute'), true, 'day is earlier'); - assert.equal(m.isAfter(moment(new Date(2011, 3, 2, 4, 4, 9, 10)), 'minute'), false, 'hour is later'); - assert.equal(m.isAfter(moment(new Date(2011, 3, 2, 2, 4, 9, 10)), 'minute'), true, 'hour is earler'); - assert.equal(m.isAfter(moment(new Date(2011, 3, 2, 3, 5, 9, 10)), 'minute'), false, 'minute is later'); - assert.equal(m.isAfter(moment(new Date(2011, 3, 2, 3, 3, 9, 10)), 'minute'), true, 'minute is earlier'); - assert.equal(m.isAfter(moment(new Date(2011, 3, 2, 3, 4, 0, 0)), 'minute'), false, 'exact start of minute'); - assert.equal(m.isAfter(moment(new Date(2011, 3, 2, 3, 4, 59, 999)), 'minute'), false, 'exact end of minute'); - assert.equal(m.isAfter(moment(new Date(2011, 3, 2, 3, 5, 0, 0)), 'minute'), false, 'start of next minute'); - assert.equal(m.isAfter(moment(new Date(2011, 3, 2, 3, 3, 59, 999)), 'minute'), true, 'end of previous minute'); - assert.equal(m.isAfter(m, 'minute'), false, 'same moments are not after the same minute'); - assert.equal(+m, +mCopy, 'isAfter minute should not change moment'); -}); - -test('is after second', function (assert) { - var m = moment(new Date(2011, 3, 2, 3, 4, 5, 10)), mCopy = moment(m); - assert.equal(m.isAfter(moment(new Date(2011, 3, 2, 3, 4, 5, 10)), 'second'), false, 'second match'); - assert.equal(m.isAfter(moment(new Date(2010, 3, 2, 3, 4, 5, 10)), 'seconds'), true, 'plural should work'); - assert.equal(m.isAfter(moment(new Date(2012, 3, 2, 3, 4, 5, 10)), 'second'), false, 'year is later'); - assert.equal(m.isAfter(moment(new Date(2010, 3, 2, 3, 4, 5, 10)), 'second'), true, 'year is earlier'); - assert.equal(m.isAfter(moment(new Date(2011, 4, 2, 3, 4, 5, 10)), 'second'), false, 'month is later'); - assert.equal(m.isAfter(moment(new Date(2011, 2, 2, 3, 4, 5, 10)), 'second'), true, 'month is earlier'); - assert.equal(m.isAfter(moment(new Date(2011, 3, 3, 3, 4, 5, 10)), 'second'), false, 'day is later'); - assert.equal(m.isAfter(moment(new Date(2011, 3, 1, 1, 4, 5, 10)), 'second'), true, 'day is earlier'); - assert.equal(m.isAfter(moment(new Date(2011, 3, 2, 4, 4, 5, 10)), 'second'), false, 'hour is later'); - assert.equal(m.isAfter(moment(new Date(2011, 3, 1, 4, 1, 5, 10)), 'second'), true, 'hour is earlier'); - assert.equal(m.isAfter(moment(new Date(2011, 3, 2, 3, 5, 5, 10)), 'second'), false, 'minute is later'); - assert.equal(m.isAfter(moment(new Date(2011, 3, 2, 3, 3, 5, 10)), 'second'), true, 'minute is earlier'); - assert.equal(m.isAfter(moment(new Date(2011, 3, 2, 3, 4, 6, 10)), 'second'), false, 'second is later'); - assert.equal(m.isAfter(moment(new Date(2011, 3, 2, 3, 4, 4, 5)), 'second'), true, 'second is earlier'); - assert.equal(m.isAfter(moment(new Date(2011, 3, 2, 3, 4, 5, 0)), 'second'), false, 'exact start of second'); - assert.equal(m.isAfter(moment(new Date(2011, 3, 2, 3, 4, 5, 999)), 'second'), false, 'exact end of second'); - assert.equal(m.isAfter(moment(new Date(2011, 3, 2, 3, 4, 6, 0)), 'second'), false, 'start of next second'); - assert.equal(m.isAfter(moment(new Date(2011, 3, 2, 3, 4, 4, 999)), 'second'), true, 'end of previous second'); - assert.equal(m.isAfter(m, 'second'), false, 'same moments are not after the same second'); - assert.equal(+m, +mCopy, 'isAfter second should not change moment'); -}); - -test('is after millisecond', function (assert) { - var m = moment(new Date(2011, 3, 2, 3, 4, 5, 10)), mCopy = moment(m); - assert.equal(m.isAfter(moment(new Date(2011, 3, 2, 3, 4, 5, 10)), 'millisecond'), false, 'millisecond match'); - assert.equal(m.isAfter(moment(new Date(2010, 3, 2, 3, 4, 5, 10)), 'milliseconds'), true, 'plural should work'); - assert.equal(m.isAfter(moment(new Date(2012, 3, 2, 3, 4, 5, 10)), 'millisecond'), false, 'year is later'); - assert.equal(m.isAfter(moment(new Date(2010, 3, 2, 3, 4, 5, 10)), 'millisecond'), true, 'year is earlier'); - assert.equal(m.isAfter(moment(new Date(2011, 4, 2, 3, 4, 5, 10)), 'millisecond'), false, 'month is later'); - assert.equal(m.isAfter(moment(new Date(2011, 2, 2, 3, 4, 5, 10)), 'millisecond'), true, 'month is earlier'); - assert.equal(m.isAfter(moment(new Date(2011, 3, 3, 3, 4, 5, 10)), 'millisecond'), false, 'day is later'); - assert.equal(m.isAfter(moment(new Date(2011, 3, 1, 1, 4, 5, 10)), 'millisecond'), true, 'day is earlier'); - assert.equal(m.isAfter(moment(new Date(2011, 3, 2, 4, 4, 5, 10)), 'millisecond'), false, 'hour is later'); - assert.equal(m.isAfter(moment(new Date(2011, 3, 1, 4, 1, 5, 10)), 'millisecond'), true, 'hour is earlier'); - assert.equal(m.isAfter(moment(new Date(2011, 3, 2, 3, 5, 5, 10)), 'millisecond'), false, 'minute is later'); - assert.equal(m.isAfter(moment(new Date(2011, 3, 2, 3, 3, 5, 10)), 'millisecond'), true, 'minute is earlier'); - assert.equal(m.isAfter(moment(new Date(2011, 3, 2, 3, 4, 6, 10)), 'millisecond'), false, 'second is later'); - assert.equal(m.isAfter(moment(new Date(2011, 3, 2, 3, 4, 4, 5)), 'millisecond'), true, 'second is earlier'); - assert.equal(m.isAfter(moment(new Date(2011, 3, 2, 3, 4, 6, 11)), 'millisecond'), false, 'millisecond is later'); - assert.equal(m.isAfter(moment(new Date(2011, 3, 2, 3, 4, 4, 9)), 'millisecond'), true, 'millisecond is earlier'); - assert.equal(m.isAfter(m, 'millisecond'), false, 'same moments are not after the same millisecond'); - assert.equal(+m, +mCopy, 'isAfter millisecond should not change moment'); -}); - -test('is after invalid', function (assert) { - var m = moment(), invalid = moment.invalid(); - assert.equal(m.isAfter(invalid), false, 'valid moment is not after invalid moment'); - assert.equal(invalid.isAfter(m), false, 'invalid moment is not after valid moment'); - assert.equal(m.isAfter(invalid, 'year'), false, 'invalid moment year'); - assert.equal(m.isAfter(invalid, 'month'), false, 'invalid moment month'); - assert.equal(m.isAfter(invalid, 'day'), false, 'invalid moment day'); - assert.equal(m.isAfter(invalid, 'hour'), false, 'invalid moment hour'); - assert.equal(m.isAfter(invalid, 'minute'), false, 'invalid moment minute'); - assert.equal(m.isAfter(invalid, 'second'), false, 'invalid moment second'); - assert.equal(m.isAfter(invalid, 'milliseconds'), false, 'invalid moment milliseconds'); -}); - -}))); - - -;(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' - && typeof require === 'function' ? factory(require('../../moment')) : - typeof define === 'function' && define.amd ? define(['../../moment'], factory) : - factory(global.moment) -}(this, (function (moment) { 'use strict'; - -function each(array, callback) { - var i; - for (i = 0; i < array.length; i++) { - callback(array[i], i, array); - } -} - -function objectKeys(obj) { - if (Object.keys) { - return Object.keys(obj); - } else { - // IE8 - var res = [], i; - for (i in obj) { - if (obj.hasOwnProperty(i)) { - res.push(i); - } - } - return res; - } -} - -// Pick the first defined of two or three arguments. - -function defineCommonLocaleTests(locale, options) { - test('lenient day of month ordinal parsing', function (assert) { - var i, ordinalStr, testMoment; - for (i = 1; i <= 31; ++i) { - ordinalStr = moment([2014, 0, i]).format('YYYY MM Do'); - testMoment = moment(ordinalStr, 'YYYY MM Do'); - assert.equal(testMoment.year(), 2014, - 'lenient day of month ordinal parsing ' + i + ' year check'); - assert.equal(testMoment.month(), 0, - 'lenient day of month ordinal parsing ' + i + ' month check'); - assert.equal(testMoment.date(), i, - 'lenient day of month ordinal parsing ' + i + ' date check'); - } - }); - - test('lenient day of month ordinal parsing of number', function (assert) { - var i, testMoment; - for (i = 1; i <= 31; ++i) { - testMoment = moment('2014 01 ' + i, 'YYYY MM Do'); - assert.equal(testMoment.year(), 2014, - 'lenient day of month ordinal parsing of number ' + i + ' year check'); - assert.equal(testMoment.month(), 0, - 'lenient day of month ordinal parsing of number ' + i + ' month check'); - assert.equal(testMoment.date(), i, - 'lenient day of month ordinal parsing of number ' + i + ' date check'); - } - }); - - test('strict day of month ordinal parsing', function (assert) { - var i, ordinalStr, testMoment; - for (i = 1; i <= 31; ++i) { - ordinalStr = moment([2014, 0, i]).format('YYYY MM Do'); - testMoment = moment(ordinalStr, 'YYYY MM Do', true); - assert.ok(testMoment.isValid(), 'strict day of month ordinal parsing ' + i); - } - }); - - test('meridiem invariant', function (assert) { - var h, m, t1, t2; - for (h = 0; h < 24; ++h) { - for (m = 0; m < 60; m += 15) { - t1 = moment.utc([2000, 0, 1, h, m]); - t2 = moment.utc(t1.format('A h:mm'), 'A h:mm'); - assert.equal(t2.format('HH:mm'), t1.format('HH:mm'), - 'meridiem at ' + t1.format('HH:mm')); - } - } - }); - - test('date format correctness', function (assert) { - var data, tokens; - data = moment.localeData()._longDateFormat; - tokens = objectKeys(data); - each(tokens, function (srchToken) { - // Check each format string to make sure it does not contain any - // tokens that need to be expanded. - each(tokens, function (baseToken) { - // strip escaped sequences - var format = data[baseToken].replace(/(\[[^\]]*\])/g, ''); - assert.equal(false, !!~format.indexOf(srchToken), - 'contains ' + srchToken + ' in ' + baseToken); - }); - }); - }); - - test('month parsing correctness', function (assert) { - var i, m; - - if (locale === 'tr') { - // I can't fix it :( - expect(0); - return; - } - function tester(format) { - var r; - r = moment(m.format(format), format); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format); - r = moment(m.format(format).toLocaleUpperCase(), format); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' upper'); - r = moment(m.format(format).toLocaleLowerCase(), format); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' lower'); - - r = moment(m.format(format), format, true); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' strict'); - r = moment(m.format(format).toLocaleUpperCase(), format, true); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' upper strict'); - r = moment(m.format(format).toLocaleLowerCase(), format, true); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' lower strict'); - } - - for (i = 0; i < 12; ++i) { - m = moment([2015, i, 15, 18]); - tester('MMM'); - tester('MMM.'); - tester('MMMM'); - tester('MMMM.'); - } - }); - - test('weekday parsing correctness', function (assert) { - var i, m; - - if (locale === 'tr' || locale === 'az' || locale === 'ro') { - // tr, az: There is a lower-case letter (ı), that converted to - // upper then lower changes to i - // ro: there is the letter ț which behaves weird under IE8 - expect(0); - return; - } - function tester(format) { - var r, baseMsg = 'weekday ' + m.weekday() + ' fmt ' + format + ' ' + m.toISOString(); - r = moment(m.format(format), format); - assert.equal(r.weekday(), m.weekday(), baseMsg); - r = moment(m.format(format).toLocaleUpperCase(), format); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' upper'); - r = moment(m.format(format).toLocaleLowerCase(), format); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' lower'); - - r = moment(m.format(format), format, true); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' strict'); - r = moment(m.format(format).toLocaleUpperCase(), format, true); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' upper strict'); - r = moment(m.format(format).toLocaleLowerCase(), format, true); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' lower strict'); - } - - for (i = 0; i < 7; ++i) { - m = moment.utc([2015, 0, i + 1, 18]); - tester('dd'); - tester('ddd'); - tester('dddd'); - } - }); - - test('valid localeData', function (assert) { - assert.equal(moment().localeData().months().length, 12, 'months should return 12 months'); - assert.equal(moment().localeData().monthsShort().length, 12, 'monthsShort should return 12 months'); - assert.equal(moment().localeData().weekdays().length, 7, 'weekdays should return 7 days'); - assert.equal(moment().localeData().weekdaysShort().length, 7, 'weekdaysShort should return 7 days'); - assert.equal(moment().localeData().weekdaysMin().length, 7, 'monthsShort should return 7 days'); - }); -} - -function setupDeprecationHandler(test, moment$$1, scope) { - test._expectedDeprecations = null; - test._observedDeprecations = null; - test._oldSupress = moment$$1.suppressDeprecationWarnings; - moment$$1.suppressDeprecationWarnings = true; - test.expectedDeprecations = function () { - test._expectedDeprecations = arguments; - test._observedDeprecations = []; - }; - moment$$1.deprecationHandler = function (name, msg) { - var deprecationId = matchedDeprecation(name, msg, test._expectedDeprecations); - if (deprecationId === -1) { - throw new Error('Unexpected deprecation thrown name=' + - name + ' msg=' + msg); - } - test._observedDeprecations[deprecationId] = 1; - }; -} - -function teardownDeprecationHandler(test, moment$$1, scope) { - moment$$1.suppressDeprecationWarnings = test._oldSupress; - - if (test._expectedDeprecations != null) { - var missedDeprecations = []; - each(test._expectedDeprecations, function (deprecationPattern, id) { - if (test._observedDeprecations[id] !== 1) { - missedDeprecations.push(deprecationPattern); - } - }); - if (missedDeprecations.length !== 0) { - throw new Error('Expected deprecation warnings did not happen: ' + - missedDeprecations.join(' ')); - } - } -} - -function matchedDeprecation(name, msg, deprecations) { - if (deprecations == null) { - return -1; - } - for (var i = 0; i < deprecations.length; ++i) { - if (name != null && name === deprecations[i]) { - return i; - } - if (msg != null && msg.substring(0, deprecations[i].length) === deprecations[i]) { - return i; - } - } - return -1; -} - -/*global QUnit:false*/ - -var test = QUnit.test; - -var expect = QUnit.expect; - -function isArray(input) { - return input instanceof Array || Object.prototype.toString.call(input) === '[object Array]'; -} - -test('isArray recognizes Array objects', function (assert) { - assert.ok(isArray([1,2,3]), 'array args'); - assert.ok(isArray([]), 'empty array'); - assert.ok(isArray(new Array(1,2,3)), 'array constructor'); -}); - -test('isArray rejects non-Array objects', function (assert) { - assert.ok(!isArray(), 'nothing'); - assert.ok(!isArray(undefined), 'undefined'); - assert.ok(!isArray(null), 'null'); - assert.ok(!isArray(123), 'number'); - assert.ok(!isArray('[1,2,3]'), 'string'); - assert.ok(!isArray(new Date()), 'date'); - assert.ok(!isArray({a:1,b:2}), 'object'); -}); - -}))); - - -;(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' - && typeof require === 'function' ? factory(require('../../moment')) : - typeof define === 'function' && define.amd ? define(['../../moment'], factory) : - factory(global.moment) -}(this, (function (moment) { 'use strict'; - -function each(array, callback) { - var i; - for (i = 0; i < array.length; i++) { - callback(array[i], i, array); - } -} - -function objectKeys(obj) { - if (Object.keys) { - return Object.keys(obj); - } else { - // IE8 - var res = [], i; - for (i in obj) { - if (obj.hasOwnProperty(i)) { - res.push(i); - } - } - return res; - } -} - -// Pick the first defined of two or three arguments. - -function defineCommonLocaleTests(locale, options) { - test('lenient day of month ordinal parsing', function (assert) { - var i, ordinalStr, testMoment; - for (i = 1; i <= 31; ++i) { - ordinalStr = moment([2014, 0, i]).format('YYYY MM Do'); - testMoment = moment(ordinalStr, 'YYYY MM Do'); - assert.equal(testMoment.year(), 2014, - 'lenient day of month ordinal parsing ' + i + ' year check'); - assert.equal(testMoment.month(), 0, - 'lenient day of month ordinal parsing ' + i + ' month check'); - assert.equal(testMoment.date(), i, - 'lenient day of month ordinal parsing ' + i + ' date check'); - } - }); - - test('lenient day of month ordinal parsing of number', function (assert) { - var i, testMoment; - for (i = 1; i <= 31; ++i) { - testMoment = moment('2014 01 ' + i, 'YYYY MM Do'); - assert.equal(testMoment.year(), 2014, - 'lenient day of month ordinal parsing of number ' + i + ' year check'); - assert.equal(testMoment.month(), 0, - 'lenient day of month ordinal parsing of number ' + i + ' month check'); - assert.equal(testMoment.date(), i, - 'lenient day of month ordinal parsing of number ' + i + ' date check'); - } - }); - - test('strict day of month ordinal parsing', function (assert) { - var i, ordinalStr, testMoment; - for (i = 1; i <= 31; ++i) { - ordinalStr = moment([2014, 0, i]).format('YYYY MM Do'); - testMoment = moment(ordinalStr, 'YYYY MM Do', true); - assert.ok(testMoment.isValid(), 'strict day of month ordinal parsing ' + i); - } - }); - - test('meridiem invariant', function (assert) { - var h, m, t1, t2; - for (h = 0; h < 24; ++h) { - for (m = 0; m < 60; m += 15) { - t1 = moment.utc([2000, 0, 1, h, m]); - t2 = moment.utc(t1.format('A h:mm'), 'A h:mm'); - assert.equal(t2.format('HH:mm'), t1.format('HH:mm'), - 'meridiem at ' + t1.format('HH:mm')); - } - } - }); - - test('date format correctness', function (assert) { - var data, tokens; - data = moment.localeData()._longDateFormat; - tokens = objectKeys(data); - each(tokens, function (srchToken) { - // Check each format string to make sure it does not contain any - // tokens that need to be expanded. - each(tokens, function (baseToken) { - // strip escaped sequences - var format = data[baseToken].replace(/(\[[^\]]*\])/g, ''); - assert.equal(false, !!~format.indexOf(srchToken), - 'contains ' + srchToken + ' in ' + baseToken); - }); - }); - }); - - test('month parsing correctness', function (assert) { - var i, m; - - if (locale === 'tr') { - // I can't fix it :( - expect(0); - return; - } - function tester(format) { - var r; - r = moment(m.format(format), format); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format); - r = moment(m.format(format).toLocaleUpperCase(), format); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' upper'); - r = moment(m.format(format).toLocaleLowerCase(), format); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' lower'); - - r = moment(m.format(format), format, true); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' strict'); - r = moment(m.format(format).toLocaleUpperCase(), format, true); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' upper strict'); - r = moment(m.format(format).toLocaleLowerCase(), format, true); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' lower strict'); - } - - for (i = 0; i < 12; ++i) { - m = moment([2015, i, 15, 18]); - tester('MMM'); - tester('MMM.'); - tester('MMMM'); - tester('MMMM.'); - } - }); - - test('weekday parsing correctness', function (assert) { - var i, m; - - if (locale === 'tr' || locale === 'az' || locale === 'ro') { - // tr, az: There is a lower-case letter (ı), that converted to - // upper then lower changes to i - // ro: there is the letter ț which behaves weird under IE8 - expect(0); - return; - } - function tester(format) { - var r, baseMsg = 'weekday ' + m.weekday() + ' fmt ' + format + ' ' + m.toISOString(); - r = moment(m.format(format), format); - assert.equal(r.weekday(), m.weekday(), baseMsg); - r = moment(m.format(format).toLocaleUpperCase(), format); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' upper'); - r = moment(m.format(format).toLocaleLowerCase(), format); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' lower'); - - r = moment(m.format(format), format, true); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' strict'); - r = moment(m.format(format).toLocaleUpperCase(), format, true); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' upper strict'); - r = moment(m.format(format).toLocaleLowerCase(), format, true); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' lower strict'); - } - - for (i = 0; i < 7; ++i) { - m = moment.utc([2015, 0, i + 1, 18]); - tester('dd'); - tester('ddd'); - tester('dddd'); - } - }); - - test('valid localeData', function (assert) { - assert.equal(moment().localeData().months().length, 12, 'months should return 12 months'); - assert.equal(moment().localeData().monthsShort().length, 12, 'monthsShort should return 12 months'); - assert.equal(moment().localeData().weekdays().length, 7, 'weekdays should return 7 days'); - assert.equal(moment().localeData().weekdaysShort().length, 7, 'weekdaysShort should return 7 days'); - assert.equal(moment().localeData().weekdaysMin().length, 7, 'monthsShort should return 7 days'); - }); -} - -function setupDeprecationHandler(test, moment$$1, scope) { - test._expectedDeprecations = null; - test._observedDeprecations = null; - test._oldSupress = moment$$1.suppressDeprecationWarnings; - moment$$1.suppressDeprecationWarnings = true; - test.expectedDeprecations = function () { - test._expectedDeprecations = arguments; - test._observedDeprecations = []; - }; - moment$$1.deprecationHandler = function (name, msg) { - var deprecationId = matchedDeprecation(name, msg, test._expectedDeprecations); - if (deprecationId === -1) { - throw new Error('Unexpected deprecation thrown name=' + - name + ' msg=' + msg); - } - test._observedDeprecations[deprecationId] = 1; - }; -} - -function teardownDeprecationHandler(test, moment$$1, scope) { - moment$$1.suppressDeprecationWarnings = test._oldSupress; - - if (test._expectedDeprecations != null) { - var missedDeprecations = []; - each(test._expectedDeprecations, function (deprecationPattern, id) { - if (test._observedDeprecations[id] !== 1) { - missedDeprecations.push(deprecationPattern); - } - }); - if (missedDeprecations.length !== 0) { - throw new Error('Expected deprecation warnings did not happen: ' + - missedDeprecations.join(' ')); - } - } -} - -function matchedDeprecation(name, msg, deprecations) { - if (deprecations == null) { - return -1; - } - for (var i = 0; i < deprecations.length; ++i) { - if (name != null && name === deprecations[i]) { - return i; - } - if (msg != null && msg.substring(0, deprecations[i].length) === deprecations[i]) { - return i; - } - } - return -1; -} - -/*global QUnit:false*/ - -var test = QUnit.test; - -var expect = QUnit.expect; - -function module$1 (name, lifecycle) { - QUnit.module(name, { - setup : function () { - moment.locale('en'); - moment.createFromInputFallback = function (config) { - throw new Error('input not handled by moment: ' + config._i); - }; - setupDeprecationHandler(test, moment, 'core'); - if (lifecycle && lifecycle.setup) { - lifecycle.setup(); - } - }, - teardown : function () { - teardownDeprecationHandler(test, moment, 'core'); - if (lifecycle && lifecycle.teardown) { - lifecycle.teardown(); - } - } - }); -} - -module$1('is before'); - -test('is after without units', function (assert) { - var m = moment(new Date(2011, 3, 2, 3, 4, 5, 10)), mCopy = moment(m); - assert.equal(m.isBefore(moment(new Date(2012, 3, 2, 3, 5, 5, 10))), true, 'year is later'); - assert.equal(m.isBefore(moment(new Date(2010, 3, 2, 3, 3, 5, 10))), false, 'year is earlier'); - assert.equal(m.isBefore(moment(new Date(2011, 4, 2, 3, 4, 5, 10))), true, 'month is later'); - assert.equal(m.isBefore(moment(new Date(2011, 2, 2, 3, 4, 5, 10))), false, 'month is earlier'); - assert.equal(m.isBefore(moment(new Date(2011, 3, 3, 3, 4, 5, 10))), true, 'day is later'); - assert.equal(m.isBefore(moment(new Date(2011, 3, 1, 3, 4, 5, 10))), false, 'day is earlier'); - assert.equal(m.isBefore(moment(new Date(2011, 3, 2, 4, 4, 5, 10))), true, 'hour is later'); - assert.equal(m.isBefore(moment(new Date(2011, 3, 2, 2, 4, 5, 10))), false, 'hour is earlier'); - assert.equal(m.isBefore(moment(new Date(2011, 3, 2, 3, 5, 5, 10))), true, 'minute is later'); - assert.equal(m.isBefore(moment(new Date(2011, 3, 2, 3, 3, 5, 10))), false, 'minute is earlier'); - assert.equal(m.isBefore(moment(new Date(2011, 3, 2, 3, 4, 6, 10))), true, 'second is later'); - assert.equal(m.isBefore(moment(new Date(2011, 3, 2, 3, 4, 4, 11))), false, 'second is earlier'); - assert.equal(m.isBefore(moment(new Date(2011, 3, 2, 3, 4, 5, 10))), false, 'millisecond match'); - assert.equal(m.isBefore(moment(new Date(2011, 3, 2, 3, 4, 5, 11))), true, 'millisecond is later'); - assert.equal(m.isBefore(moment(new Date(2011, 3, 2, 3, 4, 5, 9))), false, 'millisecond is earlier'); - assert.equal(m.isBefore(m), false, 'moments are not before themselves'); - assert.equal(+m, +mCopy, 'isBefore second should not change moment'); -}); - -test('is before year', function (assert) { - var m = moment(new Date(2011, 1, 2, 3, 4, 5, 6)), mCopy = moment(m); - assert.equal(m.isBefore(moment(new Date(2011, 5, 6, 7, 8, 9, 10)), 'year'), false, 'year match'); - assert.equal(m.isBefore(moment(new Date(2012, 5, 6, 7, 8, 9, 10)), 'years'), true, 'plural should work'); - assert.equal(m.isBefore(moment(new Date(2013, 5, 6, 7, 8, 9, 10)), 'year'), true, 'year is later'); - assert.equal(m.isBefore(moment(new Date(2010, 5, 6, 7, 8, 9, 10)), 'year'), false, 'year is earlier'); - assert.equal(m.isBefore(moment(new Date(2011, 0, 1, 0, 0, 0, 0)), 'year'), false, 'exact start of year'); - assert.equal(m.isBefore(moment(new Date(2011, 11, 31, 23, 59, 59, 999)), 'year'), false, 'exact end of year'); - assert.equal(m.isBefore(moment(new Date(2012, 0, 1, 0, 0, 0, 0)), 'year'), true, 'start of next year'); - assert.equal(m.isBefore(moment(new Date(2010, 11, 31, 23, 59, 59, 999)), 'year'), false, 'end of previous year'); - assert.equal(m.isBefore(moment(new Date(1980, 11, 31, 23, 59, 59, 999)), 'year'), false, 'end of year far before'); - assert.equal(m.isBefore(m, 'year'), false, 'same moments are not before the same year'); - assert.equal(+m, +mCopy, 'isBefore year should not change moment'); -}); - -test('is before month', function (assert) { - var m = moment(new Date(2011, 2, 3, 4, 5, 6, 7)), mCopy = moment(m); - assert.equal(m.isBefore(moment(new Date(2011, 2, 6, 7, 8, 9, 10)), 'month'), false, 'month match'); - assert.equal(m.isBefore(moment(new Date(2012, 2, 6, 7, 8, 9, 10)), 'months'), true, 'plural should work'); - assert.equal(m.isBefore(moment(new Date(2012, 2, 6, 7, 8, 9, 10)), 'month'), true, 'year is later'); - assert.equal(m.isBefore(moment(new Date(2010, 2, 6, 7, 8, 9, 10)), 'month'), false, 'year is earlier'); - assert.equal(m.isBefore(moment(new Date(2011, 5, 6, 7, 8, 9, 10)), 'month'), true, 'month is later'); - assert.equal(m.isBefore(moment(new Date(2011, 1, 6, 7, 8, 9, 10)), 'month'), false, 'month is earlier'); - assert.equal(m.isBefore(moment(new Date(2011, 2, 1, 0, 0, 0, 0)), 'month'), false, 'exact start of month'); - assert.equal(m.isBefore(moment(new Date(2011, 2, 31, 23, 59, 59, 999)), 'month'), false, 'exact end of month'); - assert.equal(m.isBefore(moment(new Date(2011, 3, 1, 0, 0, 0, 0)), 'month'), true, 'start of next month'); - assert.equal(m.isBefore(moment(new Date(2011, 1, 27, 23, 59, 59, 999)), 'month'), false, 'end of previous month'); - assert.equal(m.isBefore(moment(new Date(2010, 12, 31, 23, 59, 59, 999)), 'month'), false, 'later month but earlier year'); - assert.equal(m.isBefore(m, 'month'), false, 'same moments are not before the same month'); - assert.equal(+m, +mCopy, 'isBefore month should not change moment'); -}); - -test('is before day', function (assert) { - var m = moment(new Date(2011, 3, 2, 3, 4, 5, 6)), mCopy = moment(m); - assert.equal(m.isBefore(moment(new Date(2011, 3, 2, 7, 8, 9, 10)), 'day'), false, 'day match'); - assert.equal(m.isBefore(moment(new Date(2012, 3, 2, 7, 8, 9, 10)), 'days'), true, 'plural should work'); - assert.equal(m.isBefore(moment(new Date(2012, 3, 2, 7, 8, 9, 10)), 'day'), true, 'year is later'); - assert.equal(m.isBefore(moment(new Date(2010, 3, 2, 7, 8, 9, 10)), 'day'), false, 'year is earlier'); - assert.equal(m.isBefore(moment(new Date(2011, 4, 2, 7, 8, 9, 10)), 'day'), true, 'month is later'); - assert.equal(m.isBefore(moment(new Date(2011, 2, 2, 7, 8, 9, 10)), 'day'), false, 'month is earlier'); - assert.equal(m.isBefore(moment(new Date(2011, 3, 3, 7, 8, 9, 10)), 'day'), true, 'day is later'); - assert.equal(m.isBefore(moment(new Date(2011, 3, 1, 7, 8, 9, 10)), 'day'), false, 'day is earlier'); - assert.equal(m.isBefore(moment(new Date(2011, 3, 2, 0, 0, 0, 0)), 'day'), false, 'exact start of day'); - assert.equal(m.isBefore(moment(new Date(2011, 3, 2, 23, 59, 59, 999)), 'day'), false, 'exact end of day'); - assert.equal(m.isBefore(moment(new Date(2011, 3, 3, 0, 0, 0, 0)), 'day'), true, 'start of next day'); - assert.equal(m.isBefore(moment(new Date(2011, 3, 1, 23, 59, 59, 999)), 'day'), false, 'end of previous day'); - assert.equal(m.isBefore(moment(new Date(2010, 3, 10, 0, 0, 0, 0)), 'day'), false, 'later day but earlier year'); - assert.equal(m.isBefore(m, 'day'), false, 'same moments are not before the same day'); - assert.equal(+m, +mCopy, 'isBefore day should not change moment'); -}); - -test('is before hour', function (assert) { - var m = moment(new Date(2011, 3, 2, 3, 4, 5, 6)), mCopy = moment(m); - assert.equal(m.isBefore(moment(new Date(2011, 3, 2, 3, 8, 9, 10)), 'hour'), false, 'hour match'); - assert.equal(m.isBefore(moment(new Date(2012, 3, 2, 3, 8, 9, 10)), 'hours'), true, 'plural should work'); - assert.equal(m.isBefore(moment(new Date(2012, 3, 2, 3, 8, 9, 10)), 'hour'), true, 'year is later'); - assert.equal(m.isBefore(moment(new Date(2010, 3, 2, 3, 8, 9, 10)), 'hour'), false, 'year is earlier'); - assert.equal(m.isBefore(moment(new Date(2011, 4, 2, 3, 8, 9, 10)), 'hour'), true, 'month is later'); - assert.equal(m.isBefore(moment(new Date(2011, 1, 2, 3, 8, 9, 10)), 'hour'), false, 'month is earlier'); - assert.equal(m.isBefore(moment(new Date(2011, 3, 3, 3, 8, 9, 10)), 'hour'), true, 'day is later'); - assert.equal(m.isBefore(moment(new Date(2011, 3, 1, 3, 8, 9, 10)), 'hour'), false, 'day is earlier'); - assert.equal(m.isBefore(moment(new Date(2011, 3, 2, 4, 8, 9, 10)), 'hour'), true, 'hour is later'); - assert.equal(m.isBefore(moment(new Date(2011, 3, 2, 3, 8, 9, 10)), 'hour'), false, 'hour is earlier'); - assert.equal(m.isBefore(moment(new Date(2011, 3, 2, 3, 0, 0, 0)), 'hour'), false, 'exact start of hour'); - assert.equal(m.isBefore(moment(new Date(2011, 3, 2, 3, 59, 59, 999)), 'hour'), false, 'exact end of hour'); - assert.equal(m.isBefore(moment(new Date(2011, 3, 2, 4, 0, 0, 0)), 'hour'), true, 'start of next hour'); - assert.equal(m.isBefore(moment(new Date(2011, 3, 2, 2, 59, 59, 999)), 'hour'), false, 'end of previous hour'); - assert.equal(m.isBefore(m, 'hour'), false, 'same moments are not before the same hour'); - assert.equal(+m, +mCopy, 'isBefore hour should not change moment'); -}); - -test('is before minute', function (assert) { - var m = moment(new Date(2011, 3, 2, 3, 4, 5, 6)), mCopy = moment(m); - assert.equal(m.isBefore(moment(new Date(2011, 3, 2, 3, 4, 9, 10)), 'minute'), false, 'minute match'); - assert.equal(m.isBefore(moment(new Date(2012, 3, 2, 3, 4, 9, 10)), 'minutes'), true, 'plural should work'); - assert.equal(m.isBefore(moment(new Date(2012, 3, 2, 3, 4, 9, 10)), 'minute'), true, 'year is later'); - assert.equal(m.isBefore(moment(new Date(2010, 3, 2, 3, 4, 9, 10)), 'minute'), false, 'year is earlier'); - assert.equal(m.isBefore(moment(new Date(2011, 4, 2, 3, 4, 9, 10)), 'minute'), true, 'month is later'); - assert.equal(m.isBefore(moment(new Date(2011, 2, 2, 3, 4, 9, 10)), 'minute'), false, 'month is earlier'); - assert.equal(m.isBefore(moment(new Date(2011, 3, 3, 3, 4, 9, 10)), 'minute'), true, 'day is later'); - assert.equal(m.isBefore(moment(new Date(2011, 3, 1, 3, 4, 9, 10)), 'minute'), false, 'day is earlier'); - assert.equal(m.isBefore(moment(new Date(2011, 3, 2, 4, 4, 9, 10)), 'minute'), true, 'hour is later'); - assert.equal(m.isBefore(moment(new Date(2011, 3, 2, 2, 4, 9, 10)), 'minute'), false, 'hour is earler'); - assert.equal(m.isBefore(moment(new Date(2011, 3, 2, 3, 5, 9, 10)), 'minute'), true, 'minute is later'); - assert.equal(m.isBefore(moment(new Date(2011, 3, 2, 3, 3, 9, 10)), 'minute'), false, 'minute is earlier'); - assert.equal(m.isBefore(moment(new Date(2011, 3, 2, 3, 4, 0, 0)), 'minute'), false, 'exact start of minute'); - assert.equal(m.isBefore(moment(new Date(2011, 3, 2, 3, 4, 59, 999)), 'minute'), false, 'exact end of minute'); - assert.equal(m.isBefore(moment(new Date(2011, 3, 2, 3, 5, 0, 0)), 'minute'), true, 'start of next minute'); - assert.equal(m.isBefore(moment(new Date(2011, 3, 2, 3, 3, 59, 999)), 'minute'), false, 'end of previous minute'); - assert.equal(m.isBefore(m, 'minute'), false, 'same moments are not before the same minute'); - assert.equal(+m, +mCopy, 'isBefore minute should not change moment'); -}); - -test('is before second', function (assert) { - var m = moment(new Date(2011, 3, 2, 3, 4, 5, 10)), mCopy = moment(m); - assert.equal(m.isBefore(moment(new Date(2011, 3, 2, 3, 4, 5, 10)), 'second'), false, 'second match'); - assert.equal(m.isBefore(moment(new Date(2012, 3, 2, 3, 4, 5, 10)), 'seconds'), true, 'plural should work'); - assert.equal(m.isBefore(moment(new Date(2012, 3, 2, 3, 4, 5, 10)), 'second'), true, 'year is later'); - assert.equal(m.isBefore(moment(new Date(2010, 3, 2, 3, 4, 5, 10)), 'second'), false, 'year is earlier'); - assert.equal(m.isBefore(moment(new Date(2011, 4, 2, 3, 4, 5, 10)), 'second'), true, 'month is later'); - assert.equal(m.isBefore(moment(new Date(2011, 2, 2, 3, 4, 5, 10)), 'second'), false, 'month is earlier'); - assert.equal(m.isBefore(moment(new Date(2011, 3, 3, 3, 4, 5, 10)), 'second'), true, 'day is later'); - assert.equal(m.isBefore(moment(new Date(2011, 3, 1, 1, 4, 5, 10)), 'second'), false, 'day is earlier'); - assert.equal(m.isBefore(moment(new Date(2011, 3, 2, 4, 4, 5, 10)), 'second'), true, 'hour is later'); - assert.equal(m.isBefore(moment(new Date(2011, 3, 1, 4, 1, 5, 10)), 'second'), false, 'hour is earlier'); - assert.equal(m.isBefore(moment(new Date(2011, 3, 2, 3, 5, 5, 10)), 'second'), true, 'minute is later'); - assert.equal(m.isBefore(moment(new Date(2011, 3, 2, 3, 3, 5, 10)), 'second'), false, 'minute is earlier'); - assert.equal(m.isBefore(moment(new Date(2011, 3, 2, 3, 4, 6, 10)), 'second'), true, 'second is later'); - assert.equal(m.isBefore(moment(new Date(2011, 3, 2, 3, 4, 4, 5)), 'second'), false, 'second is earlier'); - assert.equal(m.isBefore(moment(new Date(2011, 3, 2, 3, 4, 5, 0)), 'second'), false, 'exact start of second'); - assert.equal(m.isBefore(moment(new Date(2011, 3, 2, 3, 4, 5, 999)), 'second'), false, 'exact end of second'); - assert.equal(m.isBefore(moment(new Date(2011, 3, 2, 3, 4, 6, 0)), 'second'), true, 'start of next second'); - assert.equal(m.isBefore(moment(new Date(2011, 3, 2, 3, 4, 4, 999)), 'second'), false, 'end of previous second'); - assert.equal(m.isBefore(m, 'second'), false, 'same moments are not before the same second'); - assert.equal(+m, +mCopy, 'isBefore second should not change moment'); -}); - -test('is before millisecond', function (assert) { - var m = moment(new Date(2011, 3, 2, 3, 4, 5, 10)), mCopy = moment(m); - assert.equal(m.isBefore(moment(new Date(2011, 3, 2, 3, 4, 5, 10)), 'millisecond'), false, 'millisecond match'); - assert.equal(m.isBefore(moment(new Date(2010, 3, 2, 3, 4, 5, 10)), 'milliseconds'), false, 'plural should work'); - assert.equal(m.isBefore(moment(new Date(2012, 3, 2, 3, 4, 5, 10)), 'millisecond'), true, 'year is later'); - assert.equal(m.isBefore(moment(new Date(2010, 3, 2, 3, 4, 5, 10)), 'millisecond'), false, 'year is earlier'); - assert.equal(m.isBefore(moment(new Date(2011, 4, 2, 3, 4, 5, 10)), 'millisecond'), true, 'month is later'); - assert.equal(m.isBefore(moment(new Date(2011, 2, 2, 3, 4, 5, 10)), 'millisecond'), false, 'month is earlier'); - assert.equal(m.isBefore(moment(new Date(2011, 3, 3, 3, 4, 5, 10)), 'millisecond'), true, 'day is later'); - assert.equal(m.isBefore(moment(new Date(2011, 3, 1, 1, 4, 5, 10)), 'millisecond'), false, 'day is earlier'); - assert.equal(m.isBefore(moment(new Date(2011, 3, 2, 4, 4, 5, 10)), 'millisecond'), true, 'hour is later'); - assert.equal(m.isBefore(moment(new Date(2011, 3, 1, 4, 1, 5, 10)), 'millisecond'), false, 'hour is earlier'); - assert.equal(m.isBefore(moment(new Date(2011, 3, 2, 3, 5, 5, 10)), 'millisecond'), true, 'minute is later'); - assert.equal(m.isBefore(moment(new Date(2011, 3, 2, 3, 3, 5, 10)), 'millisecond'), false, 'minute is earlier'); - assert.equal(m.isBefore(moment(new Date(2011, 3, 2, 3, 4, 6, 10)), 'millisecond'), true, 'second is later'); - assert.equal(m.isBefore(moment(new Date(2011, 3, 2, 3, 4, 4, 5)), 'millisecond'), false, 'second is earlier'); - assert.equal(m.isBefore(moment(new Date(2011, 3, 2, 3, 4, 6, 11)), 'millisecond'), true, 'millisecond is later'); - assert.equal(m.isBefore(moment(new Date(2011, 3, 2, 3, 4, 4, 9)), 'millisecond'), false, 'millisecond is earlier'); - assert.equal(m.isBefore(m, 'millisecond'), false, 'same moments are not before the same millisecond'); - assert.equal(+m, +mCopy, 'isBefore millisecond should not change moment'); -}); - -test('is before invalid', function (assert) { - var m = moment(), invalid = moment.invalid(); - assert.equal(m.isBefore(invalid), false, 'valid moment is not before invalid moment'); - assert.equal(invalid.isBefore(m), false, 'invalid moment is not before valid moment'); - assert.equal(m.isBefore(invalid, 'year'), false, 'invalid moment year'); - assert.equal(m.isBefore(invalid, 'month'), false, 'invalid moment month'); - assert.equal(m.isBefore(invalid, 'day'), false, 'invalid moment day'); - assert.equal(m.isBefore(invalid, 'hour'), false, 'invalid moment hour'); - assert.equal(m.isBefore(invalid, 'minute'), false, 'invalid moment minute'); - assert.equal(m.isBefore(invalid, 'second'), false, 'invalid moment second'); - assert.equal(m.isBefore(invalid, 'milliseconds'), false, 'invalid moment milliseconds'); -}); - -}))); - - -;(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' - && typeof require === 'function' ? factory(require('../../moment')) : - typeof define === 'function' && define.amd ? define(['../../moment'], factory) : - factory(global.moment) -}(this, (function (moment) { 'use strict'; - -function each(array, callback) { - var i; - for (i = 0; i < array.length; i++) { - callback(array[i], i, array); - } -} - -function objectKeys(obj) { - if (Object.keys) { - return Object.keys(obj); - } else { - // IE8 - var res = [], i; - for (i in obj) { - if (obj.hasOwnProperty(i)) { - res.push(i); - } - } - return res; - } -} - -// Pick the first defined of two or three arguments. - -function defineCommonLocaleTests(locale, options) { - test('lenient day of month ordinal parsing', function (assert) { - var i, ordinalStr, testMoment; - for (i = 1; i <= 31; ++i) { - ordinalStr = moment([2014, 0, i]).format('YYYY MM Do'); - testMoment = moment(ordinalStr, 'YYYY MM Do'); - assert.equal(testMoment.year(), 2014, - 'lenient day of month ordinal parsing ' + i + ' year check'); - assert.equal(testMoment.month(), 0, - 'lenient day of month ordinal parsing ' + i + ' month check'); - assert.equal(testMoment.date(), i, - 'lenient day of month ordinal parsing ' + i + ' date check'); - } - }); - - test('lenient day of month ordinal parsing of number', function (assert) { - var i, testMoment; - for (i = 1; i <= 31; ++i) { - testMoment = moment('2014 01 ' + i, 'YYYY MM Do'); - assert.equal(testMoment.year(), 2014, - 'lenient day of month ordinal parsing of number ' + i + ' year check'); - assert.equal(testMoment.month(), 0, - 'lenient day of month ordinal parsing of number ' + i + ' month check'); - assert.equal(testMoment.date(), i, - 'lenient day of month ordinal parsing of number ' + i + ' date check'); - } - }); - - test('strict day of month ordinal parsing', function (assert) { - var i, ordinalStr, testMoment; - for (i = 1; i <= 31; ++i) { - ordinalStr = moment([2014, 0, i]).format('YYYY MM Do'); - testMoment = moment(ordinalStr, 'YYYY MM Do', true); - assert.ok(testMoment.isValid(), 'strict day of month ordinal parsing ' + i); - } - }); - - test('meridiem invariant', function (assert) { - var h, m, t1, t2; - for (h = 0; h < 24; ++h) { - for (m = 0; m < 60; m += 15) { - t1 = moment.utc([2000, 0, 1, h, m]); - t2 = moment.utc(t1.format('A h:mm'), 'A h:mm'); - assert.equal(t2.format('HH:mm'), t1.format('HH:mm'), - 'meridiem at ' + t1.format('HH:mm')); - } - } - }); - - test('date format correctness', function (assert) { - var data, tokens; - data = moment.localeData()._longDateFormat; - tokens = objectKeys(data); - each(tokens, function (srchToken) { - // Check each format string to make sure it does not contain any - // tokens that need to be expanded. - each(tokens, function (baseToken) { - // strip escaped sequences - var format = data[baseToken].replace(/(\[[^\]]*\])/g, ''); - assert.equal(false, !!~format.indexOf(srchToken), - 'contains ' + srchToken + ' in ' + baseToken); - }); - }); - }); - - test('month parsing correctness', function (assert) { - var i, m; - - if (locale === 'tr') { - // I can't fix it :( - expect(0); - return; - } - function tester(format) { - var r; - r = moment(m.format(format), format); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format); - r = moment(m.format(format).toLocaleUpperCase(), format); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' upper'); - r = moment(m.format(format).toLocaleLowerCase(), format); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' lower'); - - r = moment(m.format(format), format, true); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' strict'); - r = moment(m.format(format).toLocaleUpperCase(), format, true); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' upper strict'); - r = moment(m.format(format).toLocaleLowerCase(), format, true); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' lower strict'); - } - - for (i = 0; i < 12; ++i) { - m = moment([2015, i, 15, 18]); - tester('MMM'); - tester('MMM.'); - tester('MMMM'); - tester('MMMM.'); - } - }); - - test('weekday parsing correctness', function (assert) { - var i, m; - - if (locale === 'tr' || locale === 'az' || locale === 'ro') { - // tr, az: There is a lower-case letter (ı), that converted to - // upper then lower changes to i - // ro: there is the letter ț which behaves weird under IE8 - expect(0); - return; - } - function tester(format) { - var r, baseMsg = 'weekday ' + m.weekday() + ' fmt ' + format + ' ' + m.toISOString(); - r = moment(m.format(format), format); - assert.equal(r.weekday(), m.weekday(), baseMsg); - r = moment(m.format(format).toLocaleUpperCase(), format); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' upper'); - r = moment(m.format(format).toLocaleLowerCase(), format); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' lower'); - - r = moment(m.format(format), format, true); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' strict'); - r = moment(m.format(format).toLocaleUpperCase(), format, true); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' upper strict'); - r = moment(m.format(format).toLocaleLowerCase(), format, true); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' lower strict'); - } - - for (i = 0; i < 7; ++i) { - m = moment.utc([2015, 0, i + 1, 18]); - tester('dd'); - tester('ddd'); - tester('dddd'); - } - }); - - test('valid localeData', function (assert) { - assert.equal(moment().localeData().months().length, 12, 'months should return 12 months'); - assert.equal(moment().localeData().monthsShort().length, 12, 'monthsShort should return 12 months'); - assert.equal(moment().localeData().weekdays().length, 7, 'weekdays should return 7 days'); - assert.equal(moment().localeData().weekdaysShort().length, 7, 'weekdaysShort should return 7 days'); - assert.equal(moment().localeData().weekdaysMin().length, 7, 'monthsShort should return 7 days'); - }); -} - -function setupDeprecationHandler(test, moment$$1, scope) { - test._expectedDeprecations = null; - test._observedDeprecations = null; - test._oldSupress = moment$$1.suppressDeprecationWarnings; - moment$$1.suppressDeprecationWarnings = true; - test.expectedDeprecations = function () { - test._expectedDeprecations = arguments; - test._observedDeprecations = []; - }; - moment$$1.deprecationHandler = function (name, msg) { - var deprecationId = matchedDeprecation(name, msg, test._expectedDeprecations); - if (deprecationId === -1) { - throw new Error('Unexpected deprecation thrown name=' + - name + ' msg=' + msg); - } - test._observedDeprecations[deprecationId] = 1; - }; -} - -function teardownDeprecationHandler(test, moment$$1, scope) { - moment$$1.suppressDeprecationWarnings = test._oldSupress; - - if (test._expectedDeprecations != null) { - var missedDeprecations = []; - each(test._expectedDeprecations, function (deprecationPattern, id) { - if (test._observedDeprecations[id] !== 1) { - missedDeprecations.push(deprecationPattern); - } - }); - if (missedDeprecations.length !== 0) { - throw new Error('Expected deprecation warnings did not happen: ' + - missedDeprecations.join(' ')); - } - } -} - -function matchedDeprecation(name, msg, deprecations) { - if (deprecations == null) { - return -1; - } - for (var i = 0; i < deprecations.length; ++i) { - if (name != null && name === deprecations[i]) { - return i; - } - if (msg != null && msg.substring(0, deprecations[i].length) === deprecations[i]) { - return i; - } - } - return -1; -} - -/*global QUnit:false*/ - -var test = QUnit.test; - -var expect = QUnit.expect; - -function module$1 (name, lifecycle) { - QUnit.module(name, { - setup : function () { - moment.locale('en'); - moment.createFromInputFallback = function (config) { - throw new Error('input not handled by moment: ' + config._i); - }; - setupDeprecationHandler(test, moment, 'core'); - if (lifecycle && lifecycle.setup) { - lifecycle.setup(); - } - }, - teardown : function () { - teardownDeprecationHandler(test, moment, 'core'); - if (lifecycle && lifecycle.teardown) { - lifecycle.teardown(); - } - } - }); -} - -module$1('is between'); - -test('is between without units', function (assert) { - var m = moment(new Date(2011, 3, 2, 3, 4, 5, 10)), mCopy = moment(m); - assert.equal(m.isBetween( - moment(new Date(2009, 3, 2, 3, 4, 5, 10)), - moment(new Date(2011, 3, 2, 3, 4, 5, 10))), false, 'year is later'); - assert.equal(m.isBetween( - moment(new Date(2011, 3, 2, 3, 4, 5, 10)), - moment(new Date(2013, 3, 2, 3, 4, 5, 10))), false, 'year is earlier'); - assert.equal(m.isBetween( - moment(new Date(2010, 3, 2, 3, 4, 5, 10)), - moment(new Date(2012, 3, 2, 3, 4, 5, 10))), true, 'year is between'); - assert.equal(m.isBetween( - moment(new Date(2011, 1, 2, 3, 4, 5, 10)), - moment(new Date(2011, 3, 2, 3, 4, 5, 10))), false, 'month is later'); - assert.equal(m.isBetween( - moment(new Date(2011, 3, 2, 3, 4, 5, 10)), - moment(new Date(2011, 5, 2, 3, 4, 5, 10))), false, 'month is earlier'); - assert.equal(m.isBetween( - moment(new Date(2011, 2, 2, 3, 4, 5, 10)), - moment(new Date(2011, 4, 2, 3, 4, 5, 10))), true, 'month is between'); - assert.equal(m.isBetween( - moment(new Date(2011, 3, 1, 3, 4, 5, 10)), - moment(new Date(2011, 3, 2, 3, 4, 5, 10))), false, 'day is later'); - assert.equal(m.isBetween( - moment(new Date(2011, 3, 2, 3, 4, 5, 10)), - moment(new Date(2011, 3, 4, 3, 4, 5, 10))), false, 'day is earlier'); - assert.equal(m.isBetween( - moment(new Date(2011, 3, 1, 3, 4, 5, 10)), - moment(new Date(2011, 3, 3, 3, 4, 5, 10))), true, 'day is between'); - assert.equal(m.isBetween( - moment(new Date(2011, 3, 2, 1, 4, 5, 10)), - moment(new Date(2011, 3, 2, 3, 4, 5, 10))), false, 'hour is later'); - assert.equal(m.isBetween( - moment(new Date(2011, 3, 2, 3, 4, 5, 10)), - moment(new Date(2011, 3, 2, 5, 4, 5, 10))), false, 'hour is earlier'); - assert.equal(m.isBetween( - moment(new Date(2011, 3, 2, 2, 4, 5, 10)), - moment(new Date(2011, 3, 2, 4, 4, 5, 10))), true, 'hour is between'); - assert.equal(m.isBetween( - moment(new Date(2011, 3, 2, 3, 4, 5, 10)), - moment(new Date(2011, 3, 2, 3, 6, 5, 10))), false, 'minute is later'); - assert.equal(m.isBetween( - moment(new Date(2011, 3, 2, 3, 2, 5, 10)), - moment(new Date(2011, 3, 2, 3, 4, 5, 10))), false, 'minute is earlier'); - assert.equal(m.isBetween( - moment(new Date(2011, 3, 2, 3, 3, 5, 10)), - moment(new Date(2011, 3, 2, 3, 5, 5, 10))), true, 'minute is between'); - assert.equal(m.isBetween( - moment(new Date(2011, 3, 2, 3, 4, 5, 10)), - moment(new Date(2011, 3, 2, 3, 4, 7, 10))), false, 'second is later'); - assert.equal(m.isBetween( - moment(new Date(2011, 3, 2, 3, 4, 3, 10)), - moment(new Date(2011, 3, 2, 3, 4, 5, 10))), false, 'second is earlier'); - assert.equal(m.isBetween( - moment(new Date(2011, 3, 2, 3, 4, 4, 10)), - moment(new Date(2011, 3, 2, 3, 4, 6, 10))), true, 'second is between'); - assert.equal(m.isBetween( - moment(new Date(2011, 3, 2, 3, 4, 5, 10)), - moment(new Date(2011, 3, 2, 3, 4, 5, 12))), false, 'millisecond is later'); - assert.equal(m.isBetween( - moment(new Date(2011, 3, 2, 3, 4, 5, 8)), - moment(new Date(2011, 3, 2, 3, 4, 5, 10))), false, 'millisecond is earlier'); - assert.equal(m.isBetween( - moment(new Date(2011, 3, 2, 3, 4, 5, 9)), - moment(new Date(2011, 3, 2, 3, 4, 5, 11))), true, 'millisecond is between'); - assert.equal(m.isBetween(m, m), false, 'moments are not between themselves'); - assert.equal(+m, +mCopy, 'isBetween second should not change moment'); -}); - -test('is between without units inclusivity', function (assert) { - var m = moment(new Date(2011, 3, 2, 3, 4, 5, 10)), mCopy = moment(m); - assert.equal(m.isBetween( - moment(new Date(2011, 3, 2, 3, 4, 5, 10)), - moment(new Date(2012, 3, 2, 3, 4, 5, 10)), null, '()'), false, 'start and end are excluded, start is equal to moment'); - assert.equal(m.isBetween( - moment(new Date(2010, 3, 2, 3, 4, 5, 10)), - moment(new Date(2011, 3, 2, 3, 4, 5, 10)), null, '()'), false, 'start and end are excluded, end is equal to moment'); - assert.equal(m.isBetween( - moment(new Date(2010, 3, 2, 3, 4, 5, 10)), - moment(new Date(2012, 3, 2, 3, 4, 5, 10)), null, '()'), true, 'start and end are excluded, is between'); - assert.equal(m.isBetween( - moment(new Date(2009, 3, 2, 3, 4, 5, 10)), - moment(new Date(2010, 3, 2, 3, 4, 5, 10)), null, '()'), false, 'start and end are excluded, is not between'); - assert.equal(m.isBetween( - moment(new Date(2011, 3, 2, 3, 4, 5, 10)), - moment(new Date(2011, 3, 2, 3, 4, 5, 10)), null, '()'), false, 'start and end are excluded, should fail on same start/end date.'); - - assert.equal(m.isBetween( - moment(new Date(2011, 3, 2, 3, 4, 5, 10)), - moment(new Date(2012, 3, 2, 3, 4, 5, 10)), null, '(]'), false, 'start is excluded and end is included should fail on same start date'); - assert.equal(m.isBetween( - moment(new Date(2010, 3, 2, 3, 4, 5, 10)), - moment(new Date(2011, 3, 2, 3, 4, 5, 10)), null, '(]'), true, 'start is excluded and end is included should succeed on end date'); - assert.equal(m.isBetween( - moment(new Date(2010, 3, 2, 3, 4, 5, 10)), - moment(new Date(2012, 3, 2, 3, 4, 5, 10)), null, '(]'), true, 'start is excluded and end is included, is between'); - assert.equal(m.isBetween( - moment(new Date(2009, 3, 2, 3, 4, 5, 10)), - moment(new Date(2010, 3, 2, 3, 4, 5, 10)), null, '(]'), false, 'start is excluded and end is included, is not between'); - assert.equal(m.isBetween( - moment(new Date(2011, 3, 2, 3, 4, 5, 10)), - moment(new Date(2011, 3, 2, 3, 4, 5, 10)), null, '(]'), false, 'start is excluded and end is included, should fail on same start/end date.'); - - assert.equal(m.isBetween( - moment(new Date(2011, 3, 2, 3, 4, 5, 10)), - moment(new Date(2012, 3, 2, 3, 4, 5, 10)), null, '[)'), true, 'start is included and end is excluded should succeed on same start date'); - assert.equal(m.isBetween( - moment(new Date(2010, 3, 2, 3, 4, 5, 10)), - moment(new Date(2011, 3, 2, 3, 4, 5, 10)), null, '[)'), false, 'start is included and end is excluded should fail on same end date'); - assert.equal(m.isBetween( - moment(new Date(2010, 3, 2, 3, 4, 5, 10)), - moment(new Date(2012, 3, 2, 3, 4, 5, 10)), null, '[)'), true, 'start is included and end is excluded, is between'); - assert.equal(m.isBetween( - moment(new Date(2009, 3, 2, 3, 4, 5, 10)), - moment(new Date(2010, 3, 2, 3, 4, 5, 10)), null, '[)'), false, 'start is included and end is excluded, is not between'); - assert.equal(m.isBetween( - moment(new Date(2011, 3, 2, 3, 4, 5, 10)), - moment(new Date(2011, 3, 2, 3, 4, 5, 10)), null, '[)'), false, 'start is included and end is excluded, should fail on same end and start date'); - - assert.equal(m.isBetween( - moment(new Date(2011, 3, 2, 3, 4, 5, 10)), - moment(new Date(2012, 3, 2, 3, 4, 5, 10)), null, '[]'), true, 'start and end inclusive should succeed on same start date'); - assert.equal(m.isBetween( - moment(new Date(2010, 3, 2, 3, 4, 5, 10)), - moment(new Date(2011, 3, 2, 3, 4, 5, 10)), null, '[]'), true, 'start and end inclusive should succeed on same end date'); - assert.equal(m.isBetween( - moment(new Date(2010, 3, 2, 3, 4, 5, 10)), - moment(new Date(2012, 3, 2, 3, 4, 5, 10)), null, '[]'), true, 'start and end inclusive, is between'); - assert.equal(m.isBetween( - moment(new Date(2009, 3, 2, 3, 4, 5, 10)), - moment(new Date(2010, 3, 2, 3, 4, 5, 10)), null, '[]'), false, 'start and end inclusive, is not between'); - assert.equal(m.isBetween( - moment(new Date(2011, 3, 2, 3, 4, 5, 10)), - moment(new Date(2011, 3, 2, 3, 4, 5, 10)), null, '[]'), true, 'start and end inclusive, should handle same end and start date'); -}); - -test('is between milliseconds inclusivity', function (assert) { - var m = moment(new Date(2011, 3, 2, 3, 4, 5, 10)), mCopy = moment(m); - assert.equal(m.isBetween( - moment(new Date(2010, 3, 2, 3, 4, 5, 10)), - moment(new Date(2012, 3, 2, 3, 4, 5, 10)), 'milliseconds'), true, 'options, no inclusive'); - assert.equal(m.isBetween( - moment(new Date(2011, 3, 2, 3, 4, 5, 10)), - moment(new Date(2012, 3, 2, 3, 4, 5, 10)), 'milliseconds', '()'), false, 'start and end are excluded, start is equal to moment'); - assert.equal(m.isBetween( - moment(new Date(2010, 3, 2, 3, 4, 5, 10)), - moment(new Date(2011, 3, 2, 3, 4, 5, 10)), 'milliseconds', '()'), false, 'start and end are excluded, end is equal to moment'); - assert.equal(m.isBetween( - moment(new Date(2010, 3, 2, 3, 4, 5, 10)), - moment(new Date(2012, 3, 2, 3, 4, 5, 10)), 'milliseconds', '()'), true, 'start and end are excluded, is between'); - assert.equal(m.isBetween( - moment(new Date(2009, 3, 2, 3, 4, 5, 10)), - moment(new Date(2010, 3, 2, 3, 4, 5, 10)), 'milliseconds', '()'), false, 'start and end are excluded, is not between'); - assert.equal(m.isBetween( - moment(new Date(2011, 3, 2, 3, 4, 5, 10)), - moment(new Date(2011, 3, 2, 3, 4, 5, 10)), 'milliseconds', '()'), false, 'start and end are excluded, should fail on same start/end date.'); - - assert.equal(m.isBetween( - moment(new Date(2011, 3, 2, 3, 4, 5, 10)), - moment(new Date(2012, 3, 2, 3, 4, 5, 10)), 'milliseconds', '(]'), false, 'start is excluded and end is included should fail on same start date'); - assert.equal(m.isBetween( - moment(new Date(2010, 3, 2, 3, 4, 5, 10)), - moment(new Date(2011, 3, 2, 3, 4, 5, 10)), 'milliseconds', '(]'), true, 'start is excluded and end is included should succeed on end date'); - assert.equal(m.isBetween( - moment(new Date(2010, 3, 2, 3, 4, 5, 10)), - moment(new Date(2012, 3, 2, 3, 4, 5, 10)), 'milliseconds', '(]'), true, 'start is excluded and end is included, is between'); - assert.equal(m.isBetween( - moment(new Date(2009, 3, 2, 3, 4, 5, 10)), - moment(new Date(2010, 3, 2, 3, 4, 5, 10)), 'milliseconds', '(]'), false, 'start is excluded and end is included, is not between'); - assert.equal(m.isBetween( - moment(new Date(2011, 3, 2, 3, 4, 5, 10)), - moment(new Date(2011, 3, 2, 3, 4, 5, 10)), 'milliseconds', '(]'), false, 'start is excluded and end is included, should fail on same start/end date.'); - - assert.equal(m.isBetween( - moment(new Date(2011, 3, 2, 3, 4, 5, 10)), - moment(new Date(2012, 3, 2, 3, 4, 5, 10)), 'milliseconds', '[)'), true, 'start is included and end is excluded should succeed on same start date'); - assert.equal(m.isBetween( - moment(new Date(2010, 3, 2, 3, 4, 5, 10)), - moment(new Date(2011, 3, 2, 3, 4, 5, 10)), 'milliseconds', '[)'), false, 'start is included and end is excluded should fail on same end date'); - assert.equal(m.isBetween( - moment(new Date(2010, 3, 2, 3, 4, 5, 10)), - moment(new Date(2012, 3, 2, 3, 4, 5, 10)), 'milliseconds', '[)'), true, 'start is included and end is excluded, is between'); - assert.equal(m.isBetween( - moment(new Date(2009, 3, 2, 3, 4, 5, 10)), - moment(new Date(2010, 3, 2, 3, 4, 5, 10)), 'milliseconds', '[)'), false, 'start is included and end is excluded, is not between'); - assert.equal(m.isBetween( - moment(new Date(2011, 3, 2, 3, 4, 5, 10)), - moment(new Date(2011, 3, 2, 3, 4, 5, 10)), 'milliseconds', '[)'), false, 'start is included and end is excluded, should fail on same end and start date'); - - assert.equal(m.isBetween( - moment(new Date(2011, 3, 2, 3, 4, 5, 10)), - moment(new Date(2012, 3, 2, 3, 4, 5, 10)), 'milliseconds', '[]'), true, 'start and end inclusive should succeed on same start date'); - assert.equal(m.isBetween( - moment(new Date(2010, 3, 2, 3, 4, 5, 10)), - moment(new Date(2011, 3, 2, 3, 4, 5, 10)), 'milliseconds', '[]'), true, 'start and end inclusive should succeed on same end date'); - assert.equal(m.isBetween( - moment(new Date(2010, 3, 2, 3, 4, 5, 10)), - moment(new Date(2012, 3, 2, 3, 4, 5, 10)), 'milliseconds', '[]'), true, 'start and end inclusive, is between'); - assert.equal(m.isBetween( - moment(new Date(2009, 3, 2, 3, 4, 5, 10)), - moment(new Date(2010, 3, 2, 3, 4, 5, 10)), 'milliseconds', '[]'), false, 'start and end inclusive, is not between'); - assert.equal(m.isBetween( - moment(new Date(2011, 3, 2, 3, 4, 5, 10)), - moment(new Date(2011, 3, 2, 3, 4, 5, 10)), 'milliseconds', '[]'), true, 'start and end inclusive, should handle same end and start date'); -}); - -test('is between year', function (assert) { - var m = moment(new Date(2011, 1, 2, 3, 4, 5, 6)), mCopy = moment(m); - assert.equal(m.isBetween( - moment(new Date(2011, 5, 6, 7, 8, 9, 10)), - moment(new Date(2011, 5, 6, 7, 8, 9, 10)), 'year'), false, 'year match'); - assert.equal(m.isBetween( - moment(new Date(2010, 5, 6, 7, 8, 9, 10)), - moment(new Date(2012, 5, 6, 7, 8, 9, 10)), 'years'), true, 'plural should work'); - assert.equal(m.isBetween( - moment(new Date(2010, 5, 6, 7, 8, 9, 10)), - moment(new Date(2012, 5, 6, 7, 8, 9, 10)), 'year'), true, 'year is between'); - assert.equal(m.isBetween( - moment(new Date(2011, 5, 6, 7, 8, 9, 10)), - moment(new Date(2013, 5, 6, 7, 8, 9, 10)), 'year'), false, 'year is earlier'); - assert.equal(m.isBetween( - moment(new Date(2010, 5, 6, 7, 8, 9, 10)), - moment(new Date(2011, 5, 6, 7, 8, 9, 10)), 'year'), false, 'year is later'); - assert.equal(m.isBetween(m, 'year'), false, 'same moments are not between the same year'); - assert.equal(+m, +mCopy, 'isBetween year should not change moment'); -}); - -test('is between month', function (assert) { - var m = moment(new Date(2011, 1, 2, 3, 4, 5, 6)), mCopy = moment(m); - assert.equal(m.isBetween( - moment(new Date(2011, 1, 6, 7, 8, 9, 10)), - moment(new Date(2011, 1, 6, 7, 8, 9, 10)), 'month'), false, 'month match'); - assert.equal(m.isBetween( - moment(new Date(2011, 0, 6, 7, 8, 9, 10)), - moment(new Date(2011, 2, 6, 7, 8, 9, 10)), 'months'), true, 'plural should work'); - assert.equal(m.isBetween( - moment(new Date(2011, 0, 31, 23, 59, 59, 999)), - moment(new Date(2011, 2, 1, 0, 0, 0, 0)), 'month'), true, 'month is between'); - assert.equal(m.isBetween( - moment(new Date(2011, 1, 6, 7, 8, 9, 10)), - moment(new Date(2011, 2, 6, 7, 8, 9, 10)), 'month'), false, 'month is earlier'); - assert.equal(m.isBetween( - moment(new Date(2011, 11, 6, 7, 8, 9, 10)), - moment(new Date(2011, 1, 6, 7, 8, 9, 10)), 'month'), false, 'month is later'); - assert.equal(m.isBetween(m, 'month'), false, 'same moments are not between the same month'); - assert.equal(+m, +mCopy, 'isBetween month should not change moment'); -}); - -test('is between day', function (assert) { - var m = moment(new Date(2011, 1, 2, 3, 4, 5, 6)), mCopy = moment(m); - assert.equal(m.isBetween( - moment(new Date(2011, 1, 2, 7, 8, 9, 10)), - moment(new Date(2011, 1, 2, 7, 8, 9, 10)), 'day'), false, 'day match'); - assert.equal(m.isBetween( - moment(new Date(2011, 1, 1, 7, 8, 9, 10)), - moment(new Date(2011, 1, 3, 7, 8, 9, 10)), 'days'), true, 'plural should work'); - assert.equal(m.isBetween( - moment(new Date(2011, 1, 1, 7, 8, 9, 10)), - moment(new Date(2011, 1, 3, 7, 8, 9, 10)), 'day'), true, 'day is between'); - assert.equal(m.isBetween( - moment(new Date(2011, 1, 2, 7, 8, 9, 10)), - moment(new Date(2011, 1, 4, 7, 8, 9, 10)), 'day'), false, 'day is earlier'); - assert.equal(m.isBetween( - moment(new Date(2011, 1, 1, 7, 8, 9, 10)), - moment(new Date(2011, 1, 2, 7, 8, 9, 10)), 'day'), false, 'day is later'); - assert.equal(m.isBetween(m, 'day'), false, 'same moments are not between the same day'); - assert.equal(+m, +mCopy, 'isBetween day should not change moment'); -}); - -test('is between hour', function (assert) { - var m = moment(new Date(2011, 1, 2, 3, 4, 5, 6)), mCopy = moment(m); - assert.equal(m.isBetween( - moment(new Date(2011, 1, 2, 3, 5, 9, 10)), - moment(new Date(2011, 1, 2, 3, 9, 9, 10)), 'hour'), false, 'hour match'); - assert.equal(m.isBetween( - moment(new Date(2011, 1, 2, 1, 59, 59, 999)), - moment(new Date(2011, 1, 2, 4, 0, 0, 0)), 'hours'), true, 'plural should work'); - assert.equal(m.isBetween( - moment(new Date(2011, 1, 2, 2, 59, 59, 999)), - moment(new Date(2011, 1, 2, 4, 0, 0, 0)), 'hour'), true, 'hour is between'); - assert.equal(m.isBetween( - moment(new Date(2011, 1, 2, 7, 8, 9, 10)), - moment(new Date(2011, 1, 2, 7, 8, 9, 10)), 'hour'), false, 'hour is earlier'); - assert.equal(m.isBetween( - moment(new Date(2011, 1, 2, 7, 8, 9, 10)), - moment(new Date(2011, 1, 2, 7, 8, 9, 10)), 'hour'), false, 'hour is later'); - assert.equal(m.isBetween(m, 'hour'), false, 'same moments are not between the same hour'); - assert.equal(+m, +mCopy, 'isBetween hour should not change moment'); -}); - -test('is between minute', function (assert) { - var m = moment(new Date(2011, 1, 2, 3, 4, 5, 6)), mCopy = moment(m); - assert.equal(m.isBetween( - moment(new Date(2011, 1, 2, 3, 4, 9, 10)), - moment(new Date(2011, 1, 2, 3, 4, 9, 10)), 'minute'), false, 'minute match'); - assert.equal(m.isBetween( - moment(new Date(2011, 1, 2, 3, 3, 9, 10)), - moment(new Date(2011, 1, 2, 3, 5, 9, 10)), 'minutes'), true, 'plural should work'); - assert.equal(m.isBetween( - moment(new Date(2011, 1, 2, 3, 3, 59, 999)), - moment(new Date(2011, 1, 2, 3, 5, 0, 0)), 'minute'), true, 'minute is between'); - assert.equal(m.isBetween( - moment(new Date(2011, 1, 2, 3, 5, 0, 0)), - moment(new Date(2011, 1, 2, 3, 8, 9, 10)), 'minute'), false, 'minute is earlier'); - assert.equal(m.isBetween( - moment(new Date(2011, 1, 2, 3, 2, 9, 10)), - moment(new Date(2011, 1, 2, 3, 3, 59, 999)), 'minute'), false, 'minute is later'); - assert.equal(m.isBetween(m, 'minute'), false, 'same moments are not between the same minute'); - assert.equal(+m, +mCopy, 'isBetween minute should not change moment'); -}); - -test('is between second', function (assert) { - var m = moment(new Date(2011, 1, 2, 3, 4, 5, 6)), mCopy = moment(m); - assert.equal(m.isBetween( - moment(new Date(2011, 1, 2, 3, 4, 5, 10)), - moment(new Date(2011, 1, 2, 3, 4, 5, 10)), 'second'), false, 'second match'); - assert.equal(m.isBetween( - moment(new Date(2011, 1, 2, 3, 4, 4, 10)), - moment(new Date(2011, 1, 2, 3, 4, 6, 10)), 'seconds'), true, 'plural should work'); - assert.equal(m.isBetween( - moment(new Date(2011, 1, 2, 3, 4, 4, 999)), - moment(new Date(2011, 1, 2, 3, 4, 6, 0)), 'second'), true, 'second is between'); - assert.equal(m.isBetween( - moment(new Date(2011, 1, 2, 3, 4, 6, 0)), - moment(new Date(2011, 1, 2, 3, 4, 7, 10)), 'second'), false, 'second is earlier'); - assert.equal(m.isBetween( - moment(new Date(2011, 1, 2, 3, 4, 3, 10)), - moment(new Date(2011, 1, 2, 3, 4, 4, 999)), 'second'), false, 'second is later'); - assert.equal(m.isBetween(m, 'second'), false, 'same moments are not between the same second'); - assert.equal(+m, +mCopy, 'isBetween second should not change moment'); -}); - -test('is between millisecond', function (assert) { - var m = moment(new Date(2011, 1, 2, 3, 4, 5, 6)), mCopy = moment(m); - assert.equal(m.isBetween( - moment(new Date(2011, 1, 2, 3, 4, 5, 6)), - moment(new Date(2011, 1, 2, 3, 4, 5, 6)), 'millisecond'), false, 'millisecond match'); - assert.equal(m.isBetween( - moment(new Date(2011, 1, 2, 3, 4, 5, 5)), - moment(new Date(2011, 1, 2, 3, 4, 5, 7)), 'milliseconds'), true, 'plural should work'); - assert.equal(m.isBetween( - moment(new Date(2011, 1, 2, 3, 4, 5, 5)), - moment(new Date(2011, 1, 2, 3, 4, 5, 7)), 'millisecond'), true, 'millisecond is between'); - assert.equal(m.isBetween( - moment(new Date(2011, 1, 2, 3, 4, 5, 7)), - moment(new Date(2011, 1, 2, 3, 4, 5, 10)), 'millisecond'), false, 'millisecond is earlier'); - assert.equal(m.isBetween( - moment(new Date(2011, 1, 2, 3, 4, 5, 4)), - moment(new Date(2011, 1, 2, 3, 4, 5, 6)), 'millisecond'), false, 'millisecond is later'); - assert.equal(m.isBetween(m, 'millisecond'), false, 'same moments are not between the same millisecond'); - assert.equal(+m, +mCopy, 'isBetween millisecond should not change moment'); -}); - -}))); - - -;(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' - && typeof require === 'function' ? factory(require('../../moment')) : - typeof define === 'function' && define.amd ? define(['../../moment'], factory) : - factory(global.moment) -}(this, (function (moment) { 'use strict'; - -function each(array, callback) { - var i; - for (i = 0; i < array.length; i++) { - callback(array[i], i, array); - } -} - -function objectKeys(obj) { - if (Object.keys) { - return Object.keys(obj); - } else { - // IE8 - var res = [], i; - for (i in obj) { - if (obj.hasOwnProperty(i)) { - res.push(i); - } - } - return res; - } -} - -// Pick the first defined of two or three arguments. - -function defineCommonLocaleTests(locale, options) { - test('lenient day of month ordinal parsing', function (assert) { - var i, ordinalStr, testMoment; - for (i = 1; i <= 31; ++i) { - ordinalStr = moment([2014, 0, i]).format('YYYY MM Do'); - testMoment = moment(ordinalStr, 'YYYY MM Do'); - assert.equal(testMoment.year(), 2014, - 'lenient day of month ordinal parsing ' + i + ' year check'); - assert.equal(testMoment.month(), 0, - 'lenient day of month ordinal parsing ' + i + ' month check'); - assert.equal(testMoment.date(), i, - 'lenient day of month ordinal parsing ' + i + ' date check'); - } - }); - - test('lenient day of month ordinal parsing of number', function (assert) { - var i, testMoment; - for (i = 1; i <= 31; ++i) { - testMoment = moment('2014 01 ' + i, 'YYYY MM Do'); - assert.equal(testMoment.year(), 2014, - 'lenient day of month ordinal parsing of number ' + i + ' year check'); - assert.equal(testMoment.month(), 0, - 'lenient day of month ordinal parsing of number ' + i + ' month check'); - assert.equal(testMoment.date(), i, - 'lenient day of month ordinal parsing of number ' + i + ' date check'); - } - }); - - test('strict day of month ordinal parsing', function (assert) { - var i, ordinalStr, testMoment; - for (i = 1; i <= 31; ++i) { - ordinalStr = moment([2014, 0, i]).format('YYYY MM Do'); - testMoment = moment(ordinalStr, 'YYYY MM Do', true); - assert.ok(testMoment.isValid(), 'strict day of month ordinal parsing ' + i); - } - }); - - test('meridiem invariant', function (assert) { - var h, m, t1, t2; - for (h = 0; h < 24; ++h) { - for (m = 0; m < 60; m += 15) { - t1 = moment.utc([2000, 0, 1, h, m]); - t2 = moment.utc(t1.format('A h:mm'), 'A h:mm'); - assert.equal(t2.format('HH:mm'), t1.format('HH:mm'), - 'meridiem at ' + t1.format('HH:mm')); - } - } - }); - - test('date format correctness', function (assert) { - var data, tokens; - data = moment.localeData()._longDateFormat; - tokens = objectKeys(data); - each(tokens, function (srchToken) { - // Check each format string to make sure it does not contain any - // tokens that need to be expanded. - each(tokens, function (baseToken) { - // strip escaped sequences - var format = data[baseToken].replace(/(\[[^\]]*\])/g, ''); - assert.equal(false, !!~format.indexOf(srchToken), - 'contains ' + srchToken + ' in ' + baseToken); - }); - }); - }); - - test('month parsing correctness', function (assert) { - var i, m; - - if (locale === 'tr') { - // I can't fix it :( - expect(0); - return; - } - function tester(format) { - var r; - r = moment(m.format(format), format); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format); - r = moment(m.format(format).toLocaleUpperCase(), format); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' upper'); - r = moment(m.format(format).toLocaleLowerCase(), format); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' lower'); - - r = moment(m.format(format), format, true); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' strict'); - r = moment(m.format(format).toLocaleUpperCase(), format, true); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' upper strict'); - r = moment(m.format(format).toLocaleLowerCase(), format, true); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' lower strict'); - } - - for (i = 0; i < 12; ++i) { - m = moment([2015, i, 15, 18]); - tester('MMM'); - tester('MMM.'); - tester('MMMM'); - tester('MMMM.'); - } - }); - - test('weekday parsing correctness', function (assert) { - var i, m; - - if (locale === 'tr' || locale === 'az' || locale === 'ro') { - // tr, az: There is a lower-case letter (ı), that converted to - // upper then lower changes to i - // ro: there is the letter ț which behaves weird under IE8 - expect(0); - return; - } - function tester(format) { - var r, baseMsg = 'weekday ' + m.weekday() + ' fmt ' + format + ' ' + m.toISOString(); - r = moment(m.format(format), format); - assert.equal(r.weekday(), m.weekday(), baseMsg); - r = moment(m.format(format).toLocaleUpperCase(), format); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' upper'); - r = moment(m.format(format).toLocaleLowerCase(), format); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' lower'); - - r = moment(m.format(format), format, true); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' strict'); - r = moment(m.format(format).toLocaleUpperCase(), format, true); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' upper strict'); - r = moment(m.format(format).toLocaleLowerCase(), format, true); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' lower strict'); - } - - for (i = 0; i < 7; ++i) { - m = moment.utc([2015, 0, i + 1, 18]); - tester('dd'); - tester('ddd'); - tester('dddd'); - } - }); - - test('valid localeData', function (assert) { - assert.equal(moment().localeData().months().length, 12, 'months should return 12 months'); - assert.equal(moment().localeData().monthsShort().length, 12, 'monthsShort should return 12 months'); - assert.equal(moment().localeData().weekdays().length, 7, 'weekdays should return 7 days'); - assert.equal(moment().localeData().weekdaysShort().length, 7, 'weekdaysShort should return 7 days'); - assert.equal(moment().localeData().weekdaysMin().length, 7, 'monthsShort should return 7 days'); - }); -} - -function setupDeprecationHandler(test, moment$$1, scope) { - test._expectedDeprecations = null; - test._observedDeprecations = null; - test._oldSupress = moment$$1.suppressDeprecationWarnings; - moment$$1.suppressDeprecationWarnings = true; - test.expectedDeprecations = function () { - test._expectedDeprecations = arguments; - test._observedDeprecations = []; - }; - moment$$1.deprecationHandler = function (name, msg) { - var deprecationId = matchedDeprecation(name, msg, test._expectedDeprecations); - if (deprecationId === -1) { - throw new Error('Unexpected deprecation thrown name=' + - name + ' msg=' + msg); - } - test._observedDeprecations[deprecationId] = 1; - }; -} - -function teardownDeprecationHandler(test, moment$$1, scope) { - moment$$1.suppressDeprecationWarnings = test._oldSupress; - - if (test._expectedDeprecations != null) { - var missedDeprecations = []; - each(test._expectedDeprecations, function (deprecationPattern, id) { - if (test._observedDeprecations[id] !== 1) { - missedDeprecations.push(deprecationPattern); - } - }); - if (missedDeprecations.length !== 0) { - throw new Error('Expected deprecation warnings did not happen: ' + - missedDeprecations.join(' ')); - } - } -} - -function matchedDeprecation(name, msg, deprecations) { - if (deprecations == null) { - return -1; - } - for (var i = 0; i < deprecations.length; ++i) { - if (name != null && name === deprecations[i]) { - return i; - } - if (msg != null && msg.substring(0, deprecations[i].length) === deprecations[i]) { - return i; - } - } - return -1; -} - -/*global QUnit:false*/ - -var test = QUnit.test; - -var expect = QUnit.expect; - -function module$1 (name, lifecycle) { - QUnit.module(name, { - setup : function () { - moment.locale('en'); - moment.createFromInputFallback = function (config) { - throw new Error('input not handled by moment: ' + config._i); - }; - setupDeprecationHandler(test, moment, 'core'); - if (lifecycle && lifecycle.setup) { - lifecycle.setup(); - } - }, - teardown : function () { - teardownDeprecationHandler(test, moment, 'core'); - if (lifecycle && lifecycle.teardown) { - lifecycle.teardown(); - } - } - }); -} - -module$1('is date'); - -test('isDate recognizes Date objects', function (assert) { - assert.ok(moment.isDate(new Date()), 'no args (now)'); - assert.ok(moment.isDate(new Date([2014, 2, 15])), 'array args'); - assert.ok(moment.isDate(new Date('2014-03-15')), 'string args'); - assert.ok(moment.isDate(new Date('does NOT look like a date')), 'invalid date'); -}); - -test('isDate rejects non-Date objects', function (assert) { - assert.ok(!moment.isDate(), 'nothing'); - assert.ok(!moment.isDate(undefined), 'undefined'); - assert.ok(!moment.isDate(null), 'string args'); - assert.ok(!moment.isDate(42), 'number'); - assert.ok(!moment.isDate('2014-03-15'), 'string'); - assert.ok(!moment.isDate([2014, 2, 15]), 'array'); - assert.ok(!moment.isDate({year: 2014, month: 2, day: 15}), 'object'); - assert.ok(!moment.isDate({ - toString: function () { - return '[object Date]'; - } - }), 'lying object'); -}); - -}))); - - -;(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' - && typeof require === 'function' ? factory(require('../../moment')) : - typeof define === 'function' && define.amd ? define(['../../moment'], factory) : - factory(global.moment) -}(this, (function (moment) { 'use strict'; - -function each(array, callback) { - var i; - for (i = 0; i < array.length; i++) { - callback(array[i], i, array); - } -} - -function objectKeys(obj) { - if (Object.keys) { - return Object.keys(obj); - } else { - // IE8 - var res = [], i; - for (i in obj) { - if (obj.hasOwnProperty(i)) { - res.push(i); - } - } - return res; - } -} - -// Pick the first defined of two or three arguments. - -function defineCommonLocaleTests(locale, options) { - test('lenient day of month ordinal parsing', function (assert) { - var i, ordinalStr, testMoment; - for (i = 1; i <= 31; ++i) { - ordinalStr = moment([2014, 0, i]).format('YYYY MM Do'); - testMoment = moment(ordinalStr, 'YYYY MM Do'); - assert.equal(testMoment.year(), 2014, - 'lenient day of month ordinal parsing ' + i + ' year check'); - assert.equal(testMoment.month(), 0, - 'lenient day of month ordinal parsing ' + i + ' month check'); - assert.equal(testMoment.date(), i, - 'lenient day of month ordinal parsing ' + i + ' date check'); - } - }); - - test('lenient day of month ordinal parsing of number', function (assert) { - var i, testMoment; - for (i = 1; i <= 31; ++i) { - testMoment = moment('2014 01 ' + i, 'YYYY MM Do'); - assert.equal(testMoment.year(), 2014, - 'lenient day of month ordinal parsing of number ' + i + ' year check'); - assert.equal(testMoment.month(), 0, - 'lenient day of month ordinal parsing of number ' + i + ' month check'); - assert.equal(testMoment.date(), i, - 'lenient day of month ordinal parsing of number ' + i + ' date check'); - } - }); - - test('strict day of month ordinal parsing', function (assert) { - var i, ordinalStr, testMoment; - for (i = 1; i <= 31; ++i) { - ordinalStr = moment([2014, 0, i]).format('YYYY MM Do'); - testMoment = moment(ordinalStr, 'YYYY MM Do', true); - assert.ok(testMoment.isValid(), 'strict day of month ordinal parsing ' + i); - } - }); - - test('meridiem invariant', function (assert) { - var h, m, t1, t2; - for (h = 0; h < 24; ++h) { - for (m = 0; m < 60; m += 15) { - t1 = moment.utc([2000, 0, 1, h, m]); - t2 = moment.utc(t1.format('A h:mm'), 'A h:mm'); - assert.equal(t2.format('HH:mm'), t1.format('HH:mm'), - 'meridiem at ' + t1.format('HH:mm')); - } - } - }); - - test('date format correctness', function (assert) { - var data, tokens; - data = moment.localeData()._longDateFormat; - tokens = objectKeys(data); - each(tokens, function (srchToken) { - // Check each format string to make sure it does not contain any - // tokens that need to be expanded. - each(tokens, function (baseToken) { - // strip escaped sequences - var format = data[baseToken].replace(/(\[[^\]]*\])/g, ''); - assert.equal(false, !!~format.indexOf(srchToken), - 'contains ' + srchToken + ' in ' + baseToken); - }); - }); - }); - - test('month parsing correctness', function (assert) { - var i, m; - - if (locale === 'tr') { - // I can't fix it :( - expect(0); - return; - } - function tester(format) { - var r; - r = moment(m.format(format), format); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format); - r = moment(m.format(format).toLocaleUpperCase(), format); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' upper'); - r = moment(m.format(format).toLocaleLowerCase(), format); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' lower'); - - r = moment(m.format(format), format, true); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' strict'); - r = moment(m.format(format).toLocaleUpperCase(), format, true); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' upper strict'); - r = moment(m.format(format).toLocaleLowerCase(), format, true); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' lower strict'); - } - - for (i = 0; i < 12; ++i) { - m = moment([2015, i, 15, 18]); - tester('MMM'); - tester('MMM.'); - tester('MMMM'); - tester('MMMM.'); - } - }); - - test('weekday parsing correctness', function (assert) { - var i, m; - - if (locale === 'tr' || locale === 'az' || locale === 'ro') { - // tr, az: There is a lower-case letter (ı), that converted to - // upper then lower changes to i - // ro: there is the letter ț which behaves weird under IE8 - expect(0); - return; - } - function tester(format) { - var r, baseMsg = 'weekday ' + m.weekday() + ' fmt ' + format + ' ' + m.toISOString(); - r = moment(m.format(format), format); - assert.equal(r.weekday(), m.weekday(), baseMsg); - r = moment(m.format(format).toLocaleUpperCase(), format); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' upper'); - r = moment(m.format(format).toLocaleLowerCase(), format); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' lower'); - - r = moment(m.format(format), format, true); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' strict'); - r = moment(m.format(format).toLocaleUpperCase(), format, true); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' upper strict'); - r = moment(m.format(format).toLocaleLowerCase(), format, true); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' lower strict'); - } - - for (i = 0; i < 7; ++i) { - m = moment.utc([2015, 0, i + 1, 18]); - tester('dd'); - tester('ddd'); - tester('dddd'); - } - }); - - test('valid localeData', function (assert) { - assert.equal(moment().localeData().months().length, 12, 'months should return 12 months'); - assert.equal(moment().localeData().monthsShort().length, 12, 'monthsShort should return 12 months'); - assert.equal(moment().localeData().weekdays().length, 7, 'weekdays should return 7 days'); - assert.equal(moment().localeData().weekdaysShort().length, 7, 'weekdaysShort should return 7 days'); - assert.equal(moment().localeData().weekdaysMin().length, 7, 'monthsShort should return 7 days'); - }); -} - -function setupDeprecationHandler(test, moment$$1, scope) { - test._expectedDeprecations = null; - test._observedDeprecations = null; - test._oldSupress = moment$$1.suppressDeprecationWarnings; - moment$$1.suppressDeprecationWarnings = true; - test.expectedDeprecations = function () { - test._expectedDeprecations = arguments; - test._observedDeprecations = []; - }; - moment$$1.deprecationHandler = function (name, msg) { - var deprecationId = matchedDeprecation(name, msg, test._expectedDeprecations); - if (deprecationId === -1) { - throw new Error('Unexpected deprecation thrown name=' + - name + ' msg=' + msg); - } - test._observedDeprecations[deprecationId] = 1; - }; -} - -function teardownDeprecationHandler(test, moment$$1, scope) { - moment$$1.suppressDeprecationWarnings = test._oldSupress; - - if (test._expectedDeprecations != null) { - var missedDeprecations = []; - each(test._expectedDeprecations, function (deprecationPattern, id) { - if (test._observedDeprecations[id] !== 1) { - missedDeprecations.push(deprecationPattern); - } - }); - if (missedDeprecations.length !== 0) { - throw new Error('Expected deprecation warnings did not happen: ' + - missedDeprecations.join(' ')); - } - } -} - -function matchedDeprecation(name, msg, deprecations) { - if (deprecations == null) { - return -1; - } - for (var i = 0; i < deprecations.length; ++i) { - if (name != null && name === deprecations[i]) { - return i; - } - if (msg != null && msg.substring(0, deprecations[i].length) === deprecations[i]) { - return i; - } - } - return -1; -} - -/*global QUnit:false*/ - -var test = QUnit.test; - -var expect = QUnit.expect; - -function module$1 (name, lifecycle) { - QUnit.module(name, { - setup : function () { - moment.locale('en'); - moment.createFromInputFallback = function (config) { - throw new Error('input not handled by moment: ' + config._i); - }; - setupDeprecationHandler(test, moment, 'core'); - if (lifecycle && lifecycle.setup) { - lifecycle.setup(); - } - }, - teardown : function () { - teardownDeprecationHandler(test, moment, 'core'); - if (lifecycle && lifecycle.teardown) { - lifecycle.teardown(); - } - } - }); -} - -module$1('is moment'); - -test('is moment object', function (assert) { - var MyObj = function () {}, - extend = function (a, b) { - var i; - for (i in b) { - a[i] = b[i]; - } - return a; - }; - MyObj.prototype.toDate = function () { - return new Date(); - }; - - assert.ok(moment.isMoment(moment()), 'simple moment object'); - assert.ok(moment.isMoment(moment(null)), 'invalid moment object'); - assert.ok(moment.isMoment(extend({}, moment())), 'externally cloned moments are moments'); - assert.ok(moment.isMoment(extend({}, moment.utc())), 'externally cloned utc moments are moments'); - - assert.ok(!moment.isMoment(new MyObj()), 'myObj is not moment object'); - assert.ok(!moment.isMoment(moment), 'moment function is not moment object'); - assert.ok(!moment.isMoment(new Date()), 'date object is not moment object'); - assert.ok(!moment.isMoment(Object), 'Object is not moment object'); - assert.ok(!moment.isMoment('foo'), 'string is not moment object'); - assert.ok(!moment.isMoment(1), 'number is not moment object'); - assert.ok(!moment.isMoment(NaN), 'NaN is not moment object'); - assert.ok(!moment.isMoment(null), 'null is not moment object'); - assert.ok(!moment.isMoment(undefined), 'undefined is not moment object'); -}); - -test('is moment with hacked hasOwnProperty', function (assert) { - var obj = {}; - // HACK to suppress jshint warning about bad property name - obj['hasOwnMoney'.replace('Money', 'Property')] = function () { - return true; - }; - - assert.ok(!moment.isMoment(obj), 'isMoment works even if passed object has a wrong hasOwnProperty implementation (ie8)'); -}); - -}))); - - -;(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' - && typeof require === 'function' ? factory(require('../../moment')) : - typeof define === 'function' && define.amd ? define(['../../moment'], factory) : - factory(global.moment) -}(this, (function (moment) { 'use strict'; - -function each(array, callback) { - var i; - for (i = 0; i < array.length; i++) { - callback(array[i], i, array); - } -} - -function objectKeys(obj) { - if (Object.keys) { - return Object.keys(obj); - } else { - // IE8 - var res = [], i; - for (i in obj) { - if (obj.hasOwnProperty(i)) { - res.push(i); - } - } - return res; - } -} - -// Pick the first defined of two or three arguments. - -function defineCommonLocaleTests(locale, options) { - test('lenient day of month ordinal parsing', function (assert) { - var i, ordinalStr, testMoment; - for (i = 1; i <= 31; ++i) { - ordinalStr = moment([2014, 0, i]).format('YYYY MM Do'); - testMoment = moment(ordinalStr, 'YYYY MM Do'); - assert.equal(testMoment.year(), 2014, - 'lenient day of month ordinal parsing ' + i + ' year check'); - assert.equal(testMoment.month(), 0, - 'lenient day of month ordinal parsing ' + i + ' month check'); - assert.equal(testMoment.date(), i, - 'lenient day of month ordinal parsing ' + i + ' date check'); - } - }); - - test('lenient day of month ordinal parsing of number', function (assert) { - var i, testMoment; - for (i = 1; i <= 31; ++i) { - testMoment = moment('2014 01 ' + i, 'YYYY MM Do'); - assert.equal(testMoment.year(), 2014, - 'lenient day of month ordinal parsing of number ' + i + ' year check'); - assert.equal(testMoment.month(), 0, - 'lenient day of month ordinal parsing of number ' + i + ' month check'); - assert.equal(testMoment.date(), i, - 'lenient day of month ordinal parsing of number ' + i + ' date check'); - } - }); - - test('strict day of month ordinal parsing', function (assert) { - var i, ordinalStr, testMoment; - for (i = 1; i <= 31; ++i) { - ordinalStr = moment([2014, 0, i]).format('YYYY MM Do'); - testMoment = moment(ordinalStr, 'YYYY MM Do', true); - assert.ok(testMoment.isValid(), 'strict day of month ordinal parsing ' + i); - } - }); - - test('meridiem invariant', function (assert) { - var h, m, t1, t2; - for (h = 0; h < 24; ++h) { - for (m = 0; m < 60; m += 15) { - t1 = moment.utc([2000, 0, 1, h, m]); - t2 = moment.utc(t1.format('A h:mm'), 'A h:mm'); - assert.equal(t2.format('HH:mm'), t1.format('HH:mm'), - 'meridiem at ' + t1.format('HH:mm')); - } - } - }); - - test('date format correctness', function (assert) { - var data, tokens; - data = moment.localeData()._longDateFormat; - tokens = objectKeys(data); - each(tokens, function (srchToken) { - // Check each format string to make sure it does not contain any - // tokens that need to be expanded. - each(tokens, function (baseToken) { - // strip escaped sequences - var format = data[baseToken].replace(/(\[[^\]]*\])/g, ''); - assert.equal(false, !!~format.indexOf(srchToken), - 'contains ' + srchToken + ' in ' + baseToken); - }); - }); - }); - - test('month parsing correctness', function (assert) { - var i, m; - - if (locale === 'tr') { - // I can't fix it :( - expect(0); - return; - } - function tester(format) { - var r; - r = moment(m.format(format), format); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format); - r = moment(m.format(format).toLocaleUpperCase(), format); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' upper'); - r = moment(m.format(format).toLocaleLowerCase(), format); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' lower'); - - r = moment(m.format(format), format, true); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' strict'); - r = moment(m.format(format).toLocaleUpperCase(), format, true); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' upper strict'); - r = moment(m.format(format).toLocaleLowerCase(), format, true); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' lower strict'); - } - - for (i = 0; i < 12; ++i) { - m = moment([2015, i, 15, 18]); - tester('MMM'); - tester('MMM.'); - tester('MMMM'); - tester('MMMM.'); - } - }); - - test('weekday parsing correctness', function (assert) { - var i, m; - - if (locale === 'tr' || locale === 'az' || locale === 'ro') { - // tr, az: There is a lower-case letter (ı), that converted to - // upper then lower changes to i - // ro: there is the letter ț which behaves weird under IE8 - expect(0); - return; - } - function tester(format) { - var r, baseMsg = 'weekday ' + m.weekday() + ' fmt ' + format + ' ' + m.toISOString(); - r = moment(m.format(format), format); - assert.equal(r.weekday(), m.weekday(), baseMsg); - r = moment(m.format(format).toLocaleUpperCase(), format); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' upper'); - r = moment(m.format(format).toLocaleLowerCase(), format); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' lower'); - - r = moment(m.format(format), format, true); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' strict'); - r = moment(m.format(format).toLocaleUpperCase(), format, true); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' upper strict'); - r = moment(m.format(format).toLocaleLowerCase(), format, true); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' lower strict'); - } - - for (i = 0; i < 7; ++i) { - m = moment.utc([2015, 0, i + 1, 18]); - tester('dd'); - tester('ddd'); - tester('dddd'); - } - }); - - test('valid localeData', function (assert) { - assert.equal(moment().localeData().months().length, 12, 'months should return 12 months'); - assert.equal(moment().localeData().monthsShort().length, 12, 'monthsShort should return 12 months'); - assert.equal(moment().localeData().weekdays().length, 7, 'weekdays should return 7 days'); - assert.equal(moment().localeData().weekdaysShort().length, 7, 'weekdaysShort should return 7 days'); - assert.equal(moment().localeData().weekdaysMin().length, 7, 'monthsShort should return 7 days'); - }); -} - -function setupDeprecationHandler(test, moment$$1, scope) { - test._expectedDeprecations = null; - test._observedDeprecations = null; - test._oldSupress = moment$$1.suppressDeprecationWarnings; - moment$$1.suppressDeprecationWarnings = true; - test.expectedDeprecations = function () { - test._expectedDeprecations = arguments; - test._observedDeprecations = []; - }; - moment$$1.deprecationHandler = function (name, msg) { - var deprecationId = matchedDeprecation(name, msg, test._expectedDeprecations); - if (deprecationId === -1) { - throw new Error('Unexpected deprecation thrown name=' + - name + ' msg=' + msg); - } - test._observedDeprecations[deprecationId] = 1; - }; -} - -function teardownDeprecationHandler(test, moment$$1, scope) { - moment$$1.suppressDeprecationWarnings = test._oldSupress; - - if (test._expectedDeprecations != null) { - var missedDeprecations = []; - each(test._expectedDeprecations, function (deprecationPattern, id) { - if (test._observedDeprecations[id] !== 1) { - missedDeprecations.push(deprecationPattern); - } - }); - if (missedDeprecations.length !== 0) { - throw new Error('Expected deprecation warnings did not happen: ' + - missedDeprecations.join(' ')); - } - } -} - -function matchedDeprecation(name, msg, deprecations) { - if (deprecations == null) { - return -1; - } - for (var i = 0; i < deprecations.length; ++i) { - if (name != null && name === deprecations[i]) { - return i; - } - if (msg != null && msg.substring(0, deprecations[i].length) === deprecations[i]) { - return i; - } - } - return -1; -} - -/*global QUnit:false*/ - -var test = QUnit.test; - -var expect = QUnit.expect; - -function isNumber(input) { - return typeof input === 'number' || Object.prototype.toString.call(input) === '[object Number]'; -} - -test('isNumber recognizes numbers', function (assert) { - assert.ok(isNumber(1), 'simple integer'); - assert.ok(isNumber(0), 'simple number'); - assert.ok(isNumber(-0), 'silly number'); - assert.ok(isNumber(1010010293029), 'large number'); - assert.ok(isNumber(Infinity), 'largest number'); - assert.ok(isNumber(-Infinity), 'smallest number'); - assert.ok(isNumber(NaN), 'not number'); - assert.ok(isNumber(1.100393830000), 'decimal numbers'); - assert.ok(isNumber(Math.LN2), 'natural log of two'); - assert.ok(isNumber(Math.PI), 'delicious number'); - assert.ok(isNumber(5e10), 'scientifically notated number'); - assert.ok(isNumber(new Number(1)), 'number primitive wrapped in an object'); // jshint ignore:line -}); - -test('isNumber rejects non-numbers', function (assert) { - assert.ok(!isNumber(), 'nothing'); - assert.ok(!isNumber(undefined), 'undefined'); - assert.ok(!isNumber(null), 'null'); - assert.ok(!isNumber([1]), 'array'); - assert.ok(!isNumber('[1,2,3]'), 'string'); - assert.ok(!isNumber(new Date()), 'date'); - assert.ok(!isNumber({a:1,b:2}), 'object'); -}); - -}))); - - -;(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' - && typeof require === 'function' ? factory(require('../../moment')) : - typeof define === 'function' && define.amd ? define(['../../moment'], factory) : - factory(global.moment) -}(this, (function (moment) { 'use strict'; - -function each(array, callback) { - var i; - for (i = 0; i < array.length; i++) { - callback(array[i], i, array); - } -} - -function objectKeys(obj) { - if (Object.keys) { - return Object.keys(obj); - } else { - // IE8 - var res = [], i; - for (i in obj) { - if (obj.hasOwnProperty(i)) { - res.push(i); - } - } - return res; - } -} - -// Pick the first defined of two or three arguments. - -function defineCommonLocaleTests(locale, options) { - test('lenient day of month ordinal parsing', function (assert) { - var i, ordinalStr, testMoment; - for (i = 1; i <= 31; ++i) { - ordinalStr = moment([2014, 0, i]).format('YYYY MM Do'); - testMoment = moment(ordinalStr, 'YYYY MM Do'); - assert.equal(testMoment.year(), 2014, - 'lenient day of month ordinal parsing ' + i + ' year check'); - assert.equal(testMoment.month(), 0, - 'lenient day of month ordinal parsing ' + i + ' month check'); - assert.equal(testMoment.date(), i, - 'lenient day of month ordinal parsing ' + i + ' date check'); - } - }); - - test('lenient day of month ordinal parsing of number', function (assert) { - var i, testMoment; - for (i = 1; i <= 31; ++i) { - testMoment = moment('2014 01 ' + i, 'YYYY MM Do'); - assert.equal(testMoment.year(), 2014, - 'lenient day of month ordinal parsing of number ' + i + ' year check'); - assert.equal(testMoment.month(), 0, - 'lenient day of month ordinal parsing of number ' + i + ' month check'); - assert.equal(testMoment.date(), i, - 'lenient day of month ordinal parsing of number ' + i + ' date check'); - } - }); - - test('strict day of month ordinal parsing', function (assert) { - var i, ordinalStr, testMoment; - for (i = 1; i <= 31; ++i) { - ordinalStr = moment([2014, 0, i]).format('YYYY MM Do'); - testMoment = moment(ordinalStr, 'YYYY MM Do', true); - assert.ok(testMoment.isValid(), 'strict day of month ordinal parsing ' + i); - } - }); - - test('meridiem invariant', function (assert) { - var h, m, t1, t2; - for (h = 0; h < 24; ++h) { - for (m = 0; m < 60; m += 15) { - t1 = moment.utc([2000, 0, 1, h, m]); - t2 = moment.utc(t1.format('A h:mm'), 'A h:mm'); - assert.equal(t2.format('HH:mm'), t1.format('HH:mm'), - 'meridiem at ' + t1.format('HH:mm')); - } - } - }); - - test('date format correctness', function (assert) { - var data, tokens; - data = moment.localeData()._longDateFormat; - tokens = objectKeys(data); - each(tokens, function (srchToken) { - // Check each format string to make sure it does not contain any - // tokens that need to be expanded. - each(tokens, function (baseToken) { - // strip escaped sequences - var format = data[baseToken].replace(/(\[[^\]]*\])/g, ''); - assert.equal(false, !!~format.indexOf(srchToken), - 'contains ' + srchToken + ' in ' + baseToken); - }); - }); - }); - - test('month parsing correctness', function (assert) { - var i, m; - - if (locale === 'tr') { - // I can't fix it :( - expect(0); - return; - } - function tester(format) { - var r; - r = moment(m.format(format), format); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format); - r = moment(m.format(format).toLocaleUpperCase(), format); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' upper'); - r = moment(m.format(format).toLocaleLowerCase(), format); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' lower'); - - r = moment(m.format(format), format, true); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' strict'); - r = moment(m.format(format).toLocaleUpperCase(), format, true); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' upper strict'); - r = moment(m.format(format).toLocaleLowerCase(), format, true); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' lower strict'); - } - - for (i = 0; i < 12; ++i) { - m = moment([2015, i, 15, 18]); - tester('MMM'); - tester('MMM.'); - tester('MMMM'); - tester('MMMM.'); - } - }); - - test('weekday parsing correctness', function (assert) { - var i, m; - - if (locale === 'tr' || locale === 'az' || locale === 'ro') { - // tr, az: There is a lower-case letter (ı), that converted to - // upper then lower changes to i - // ro: there is the letter ț which behaves weird under IE8 - expect(0); - return; - } - function tester(format) { - var r, baseMsg = 'weekday ' + m.weekday() + ' fmt ' + format + ' ' + m.toISOString(); - r = moment(m.format(format), format); - assert.equal(r.weekday(), m.weekday(), baseMsg); - r = moment(m.format(format).toLocaleUpperCase(), format); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' upper'); - r = moment(m.format(format).toLocaleLowerCase(), format); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' lower'); - - r = moment(m.format(format), format, true); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' strict'); - r = moment(m.format(format).toLocaleUpperCase(), format, true); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' upper strict'); - r = moment(m.format(format).toLocaleLowerCase(), format, true); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' lower strict'); - } - - for (i = 0; i < 7; ++i) { - m = moment.utc([2015, 0, i + 1, 18]); - tester('dd'); - tester('ddd'); - tester('dddd'); - } - }); - - test('valid localeData', function (assert) { - assert.equal(moment().localeData().months().length, 12, 'months should return 12 months'); - assert.equal(moment().localeData().monthsShort().length, 12, 'monthsShort should return 12 months'); - assert.equal(moment().localeData().weekdays().length, 7, 'weekdays should return 7 days'); - assert.equal(moment().localeData().weekdaysShort().length, 7, 'weekdaysShort should return 7 days'); - assert.equal(moment().localeData().weekdaysMin().length, 7, 'monthsShort should return 7 days'); - }); -} - -function setupDeprecationHandler(test, moment$$1, scope) { - test._expectedDeprecations = null; - test._observedDeprecations = null; - test._oldSupress = moment$$1.suppressDeprecationWarnings; - moment$$1.suppressDeprecationWarnings = true; - test.expectedDeprecations = function () { - test._expectedDeprecations = arguments; - test._observedDeprecations = []; - }; - moment$$1.deprecationHandler = function (name, msg) { - var deprecationId = matchedDeprecation(name, msg, test._expectedDeprecations); - if (deprecationId === -1) { - throw new Error('Unexpected deprecation thrown name=' + - name + ' msg=' + msg); - } - test._observedDeprecations[deprecationId] = 1; - }; -} - -function teardownDeprecationHandler(test, moment$$1, scope) { - moment$$1.suppressDeprecationWarnings = test._oldSupress; - - if (test._expectedDeprecations != null) { - var missedDeprecations = []; - each(test._expectedDeprecations, function (deprecationPattern, id) { - if (test._observedDeprecations[id] !== 1) { - missedDeprecations.push(deprecationPattern); - } - }); - if (missedDeprecations.length !== 0) { - throw new Error('Expected deprecation warnings did not happen: ' + - missedDeprecations.join(' ')); - } - } -} - -function matchedDeprecation(name, msg, deprecations) { - if (deprecations == null) { - return -1; - } - for (var i = 0; i < deprecations.length; ++i) { - if (name != null && name === deprecations[i]) { - return i; - } - if (msg != null && msg.substring(0, deprecations[i].length) === deprecations[i]) { - return i; - } - } - return -1; -} - -/*global QUnit:false*/ - -var test = QUnit.test; - -var expect = QUnit.expect; - -function module$1 (name, lifecycle) { - QUnit.module(name, { - setup : function () { - moment.locale('en'); - moment.createFromInputFallback = function (config) { - throw new Error('input not handled by moment: ' + config._i); - }; - setupDeprecationHandler(test, moment, 'core'); - if (lifecycle && lifecycle.setup) { - lifecycle.setup(); - } - }, - teardown : function () { - teardownDeprecationHandler(test, moment, 'core'); - if (lifecycle && lifecycle.teardown) { - lifecycle.teardown(); - } - } - }); -} - -module$1('is same'); - -test('is same without units', function (assert) { - var m = moment(new Date(2011, 3, 2, 3, 4, 5, 10)), mCopy = moment(m); - assert.equal(m.isSame(moment(new Date(2012, 3, 2, 3, 5, 5, 10))), false, 'year is later'); - assert.equal(m.isSame(moment(new Date(2010, 3, 2, 3, 3, 5, 10))), false, 'year is earlier'); - assert.equal(m.isSame(moment(new Date(2011, 4, 2, 3, 4, 5, 10))), false, 'month is later'); - assert.equal(m.isSame(moment(new Date(2011, 2, 2, 3, 4, 5, 10))), false, 'month is earlier'); - assert.equal(m.isSame(moment(new Date(2011, 3, 3, 3, 4, 5, 10))), false, 'day is later'); - assert.equal(m.isSame(moment(new Date(2011, 3, 1, 3, 4, 5, 10))), false, 'day is earlier'); - assert.equal(m.isSame(moment(new Date(2011, 3, 2, 4, 4, 5, 10))), false, 'hour is later'); - assert.equal(m.isSame(moment(new Date(2011, 3, 2, 2, 4, 5, 10))), false, 'hour is earlier'); - assert.equal(m.isSame(moment(new Date(2011, 3, 2, 3, 5, 5, 10))), false, 'minute is later'); - assert.equal(m.isSame(moment(new Date(2011, 3, 2, 3, 3, 5, 10))), false, 'minute is earlier'); - assert.equal(m.isSame(moment(new Date(2011, 3, 2, 3, 4, 6, 10))), false, 'second is later'); - assert.equal(m.isSame(moment(new Date(2011, 3, 2, 3, 4, 4, 11))), false, 'second is earlier'); - assert.equal(m.isSame(moment(new Date(2011, 3, 2, 3, 4, 5, 10))), true, 'millisecond match'); - assert.equal(m.isSame(moment(new Date(2011, 3, 2, 3, 4, 5, 11))), false, 'millisecond is later'); - assert.equal(m.isSame(moment(new Date(2011, 3, 2, 3, 4, 5, 9))), false, 'millisecond is earlier'); - assert.equal(m.isSame(m), true, 'moments are the same as themselves'); - assert.equal(+m, +mCopy, 'isSame second should not change moment'); -}); - -test('is same year', function (assert) { - var m = moment(new Date(2011, 1, 2, 3, 4, 5, 6)), mCopy = moment(m); - assert.equal(m.isSame(moment(new Date(2011, 5, 6, 7, 8, 9, 10)), 'year'), true, 'year match'); - assert.equal(m.isSame(moment(new Date(2011, 5, 6, 7, 8, 9, 10)), 'years'), true, 'plural should work'); - assert.equal(m.isSame(moment(new Date(2012, 5, 6, 7, 8, 9, 10)), 'year'), false, 'year mismatch'); - assert.equal(m.isSame(moment(new Date(2011, 0, 1, 0, 0, 0, 0)), 'year'), true, 'exact start of year'); - assert.equal(m.isSame(moment(new Date(2011, 11, 31, 23, 59, 59, 999)), 'year'), true, 'exact end of year'); - assert.equal(m.isSame(moment(new Date(2012, 0, 1, 0, 0, 0, 0)), 'year'), false, 'start of next year'); - assert.equal(m.isSame(moment(new Date(2010, 11, 31, 23, 59, 59, 999)), 'year'), false, 'end of previous year'); - assert.equal(m.isSame(m, 'year'), true, 'same moments are in the same year'); - assert.equal(+m, +mCopy, 'isSame year should not change moment'); -}); - -test('is same month', function (assert) { - var m = moment(new Date(2011, 2, 3, 4, 5, 6, 7)), mCopy = moment(m); - assert.equal(m.isSame(moment(new Date(2011, 2, 6, 7, 8, 9, 10)), 'month'), true, 'month match'); - assert.equal(m.isSame(moment(new Date(2011, 2, 6, 7, 8, 9, 10)), 'months'), true, 'plural should work'); - assert.equal(m.isSame(moment(new Date(2012, 2, 6, 7, 8, 9, 10)), 'month'), false, 'year mismatch'); - assert.equal(m.isSame(moment(new Date(2011, 5, 6, 7, 8, 9, 10)), 'month'), false, 'month mismatch'); - assert.equal(m.isSame(moment(new Date(2011, 2, 1, 0, 0, 0, 0)), 'month'), true, 'exact start of month'); - assert.equal(m.isSame(moment(new Date(2011, 2, 31, 23, 59, 59, 999)), 'month'), true, 'exact end of month'); - assert.equal(m.isSame(moment(new Date(2011, 3, 1, 0, 0, 0, 0)), 'month'), false, 'start of next month'); - assert.equal(m.isSame(moment(new Date(2011, 1, 27, 23, 59, 59, 999)), 'month'), false, 'end of previous month'); - assert.equal(m.isSame(m, 'month'), true, 'same moments are in the same month'); - assert.equal(+m, +mCopy, 'isSame month should not change moment'); -}); - -test('is same day', function (assert) { - var m = moment(new Date(2011, 1, 2, 3, 4, 5, 6)), mCopy = moment(m); - assert.equal(m.isSame(moment(new Date(2011, 1, 2, 7, 8, 9, 10)), 'day'), true, 'day match'); - assert.equal(m.isSame(moment(new Date(2011, 1, 2, 7, 8, 9, 10)), 'days'), true, 'plural should work'); - assert.equal(m.isSame(moment(new Date(2012, 1, 2, 7, 8, 9, 10)), 'day'), false, 'year mismatch'); - assert.equal(m.isSame(moment(new Date(2011, 2, 2, 7, 8, 9, 10)), 'day'), false, 'month mismatch'); - assert.equal(m.isSame(moment(new Date(2011, 1, 3, 7, 8, 9, 10)), 'day'), false, 'day mismatch'); - assert.equal(m.isSame(moment(new Date(2011, 1, 2, 0, 0, 0, 0)), 'day'), true, 'exact start of day'); - assert.equal(m.isSame(moment(new Date(2011, 1, 2, 23, 59, 59, 999)), 'day'), true, 'exact end of day'); - assert.equal(m.isSame(moment(new Date(2011, 1, 3, 0, 0, 0, 0)), 'day'), false, 'start of next day'); - assert.equal(m.isSame(moment(new Date(2011, 1, 1, 23, 59, 59, 999)), 'day'), false, 'end of previous day'); - assert.equal(m.isSame(m, 'day'), true, 'same moments are in the same day'); - assert.equal(+m, +mCopy, 'isSame day should not change moment'); -}); - -test('is same hour', function (assert) { - var m = moment(new Date(2011, 1, 2, 3, 4, 5, 6)), mCopy = moment(m); - assert.equal(m.isSame(moment(new Date(2011, 1, 2, 3, 8, 9, 10)), 'hour'), true, 'hour match'); - assert.equal(m.isSame(moment(new Date(2011, 1, 2, 3, 8, 9, 10)), 'hours'), true, 'plural should work'); - assert.equal(m.isSame(moment(new Date(2012, 1, 2, 3, 8, 9, 10)), 'hour'), false, 'year mismatch'); - assert.equal(m.isSame(moment(new Date(2011, 2, 2, 3, 8, 9, 10)), 'hour'), false, 'month mismatch'); - assert.equal(m.isSame(moment(new Date(2011, 1, 3, 3, 8, 9, 10)), 'hour'), false, 'day mismatch'); - assert.equal(m.isSame(moment(new Date(2011, 1, 2, 4, 8, 9, 10)), 'hour'), false, 'hour mismatch'); - assert.equal(m.isSame(moment(new Date(2011, 1, 2, 3, 0, 0, 0)), 'hour'), true, 'exact start of hour'); - assert.equal(m.isSame(moment(new Date(2011, 1, 2, 3, 59, 59, 999)), 'hour'), true, 'exact end of hour'); - assert.equal(m.isSame(moment(new Date(2011, 1, 2, 4, 0, 0, 0)), 'hour'), false, 'start of next hour'); - assert.equal(m.isSame(moment(new Date(2011, 1, 2, 2, 59, 59, 999)), 'hour'), false, 'end of previous hour'); - assert.equal(m.isSame(m, 'hour'), true, 'same moments are in the same hour'); - assert.equal(+m, +mCopy, 'isSame hour should not change moment'); -}); - -test('is same minute', function (assert) { - var m = moment(new Date(2011, 1, 2, 3, 4, 5, 6)), mCopy = moment(m); - assert.equal(m.isSame(moment(new Date(2011, 1, 2, 3, 4, 9, 10)), 'minute'), true, 'minute match'); - assert.equal(m.isSame(moment(new Date(2011, 1, 2, 3, 4, 9, 10)), 'minutes'), true, 'plural should work'); - assert.equal(m.isSame(moment(new Date(2012, 1, 2, 3, 4, 9, 10)), 'minute'), false, 'year mismatch'); - assert.equal(m.isSame(moment(new Date(2011, 2, 2, 3, 4, 9, 10)), 'minute'), false, 'month mismatch'); - assert.equal(m.isSame(moment(new Date(2011, 1, 3, 3, 4, 9, 10)), 'minute'), false, 'day mismatch'); - assert.equal(m.isSame(moment(new Date(2011, 1, 2, 4, 4, 9, 10)), 'minute'), false, 'hour mismatch'); - assert.equal(m.isSame(moment(new Date(2011, 1, 2, 3, 5, 9, 10)), 'minute'), false, 'minute mismatch'); - assert.equal(m.isSame(moment(new Date(2011, 1, 2, 3, 4, 0, 0)), 'minute'), true, 'exact start of minute'); - assert.equal(m.isSame(moment(new Date(2011, 1, 2, 3, 4, 59, 999)), 'minute'), true, 'exact end of minute'); - assert.equal(m.isSame(moment(new Date(2011, 1, 2, 3, 5, 0, 0)), 'minute'), false, 'start of next minute'); - assert.equal(m.isSame(moment(new Date(2011, 1, 2, 3, 3, 59, 999)), 'minute'), false, 'end of previous minute'); - assert.equal(m.isSame(m, 'minute'), true, 'same moments are in the same minute'); - assert.equal(+m, +mCopy, 'isSame minute should not change moment'); -}); - -test('is same second', function (assert) { - var m = moment(new Date(2011, 1, 2, 3, 4, 5, 6)), mCopy = moment(m); - assert.equal(m.isSame(moment(new Date(2011, 1, 2, 3, 4, 5, 10)), 'second'), true, 'second match'); - assert.equal(m.isSame(moment(new Date(2011, 1, 2, 3, 4, 5, 10)), 'seconds'), true, 'plural should work'); - assert.equal(m.isSame(moment(new Date(2012, 1, 2, 3, 4, 5, 10)), 'second'), false, 'year mismatch'); - assert.equal(m.isSame(moment(new Date(2011, 2, 2, 3, 4, 5, 10)), 'second'), false, 'month mismatch'); - assert.equal(m.isSame(moment(new Date(2011, 1, 3, 3, 4, 5, 10)), 'second'), false, 'day mismatch'); - assert.equal(m.isSame(moment(new Date(2011, 1, 2, 4, 4, 5, 10)), 'second'), false, 'hour mismatch'); - assert.equal(m.isSame(moment(new Date(2011, 1, 2, 3, 5, 5, 10)), 'second'), false, 'minute mismatch'); - assert.equal(m.isSame(moment(new Date(2011, 1, 2, 3, 4, 6, 10)), 'second'), false, 'second mismatch'); - assert.equal(m.isSame(moment(new Date(2011, 1, 2, 3, 4, 5, 0)), 'second'), true, 'exact start of second'); - assert.equal(m.isSame(moment(new Date(2011, 1, 2, 3, 4, 5, 999)), 'second'), true, 'exact end of second'); - assert.equal(m.isSame(moment(new Date(2011, 1, 2, 3, 4, 6, 0)), 'second'), false, 'start of next second'); - assert.equal(m.isSame(moment(new Date(2011, 1, 2, 3, 4, 4, 999)), 'second'), false, 'end of previous second'); - assert.equal(m.isSame(m, 'second'), true, 'same moments are in the same second'); - assert.equal(+m, +mCopy, 'isSame second should not change moment'); -}); - -test('is same millisecond', function (assert) { - var m = moment(new Date(2011, 3, 2, 3, 4, 5, 10)), mCopy = moment(m); - assert.equal(m.isSame(moment(new Date(2011, 3, 2, 3, 4, 5, 10)), 'millisecond'), true, 'millisecond match'); - assert.equal(m.isSame(moment(new Date(2011, 3, 2, 3, 4, 5, 10)), 'milliseconds'), true, 'plural should work'); - assert.equal(m.isSame(moment(new Date(2012, 3, 2, 3, 4, 5, 10)), 'millisecond'), false, 'year is later'); - assert.equal(m.isSame(moment(new Date(2010, 3, 2, 3, 4, 5, 10)), 'millisecond'), false, 'year is earlier'); - assert.equal(m.isSame(moment(new Date(2011, 4, 2, 3, 4, 5, 10)), 'millisecond'), false, 'month is later'); - assert.equal(m.isSame(moment(new Date(2011, 2, 2, 3, 4, 5, 10)), 'millisecond'), false, 'month is earlier'); - assert.equal(m.isSame(moment(new Date(2011, 3, 3, 3, 4, 5, 10)), 'millisecond'), false, 'day is later'); - assert.equal(m.isSame(moment(new Date(2011, 3, 1, 1, 4, 5, 10)), 'millisecond'), false, 'day is earlier'); - assert.equal(m.isSame(moment(new Date(2011, 3, 2, 4, 4, 5, 10)), 'millisecond'), false, 'hour is later'); - assert.equal(m.isSame(moment(new Date(2011, 3, 1, 4, 1, 5, 10)), 'millisecond'), false, 'hour is earlier'); - assert.equal(m.isSame(moment(new Date(2011, 3, 2, 3, 5, 5, 10)), 'millisecond'), false, 'minute is later'); - assert.equal(m.isSame(moment(new Date(2011, 3, 2, 3, 3, 5, 10)), 'millisecond'), false, 'minute is earlier'); - assert.equal(m.isSame(moment(new Date(2011, 3, 2, 3, 4, 6, 10)), 'millisecond'), false, 'second is later'); - assert.equal(m.isSame(moment(new Date(2011, 3, 2, 3, 4, 4, 5)), 'millisecond'), false, 'second is earlier'); - assert.equal(m.isSame(moment(new Date(2011, 3, 2, 3, 4, 6, 11)), 'millisecond'), false, 'millisecond is later'); - assert.equal(m.isSame(moment(new Date(2011, 3, 2, 3, 4, 4, 9)), 'millisecond'), false, 'millisecond is earlier'); - assert.equal(m.isSame(m, 'millisecond'), true, 'same moments are in the same millisecond'); - assert.equal(+m, +mCopy, 'isSame millisecond should not change moment'); -}); - -test('is same with utc offset moments', function (assert) { - assert.ok(moment.parseZone('2013-02-01T00:00:00-05:00').isSame(moment('2013-02-01'), 'year'), 'zoned vs local moment'); - assert.ok(moment('2013-02-01').isSame(moment('2013-02-01').utcOffset('-05:00'), 'year'), 'local vs zoned moment'); - assert.ok(moment.parseZone('2013-02-01T00:00:00-05:00').isSame(moment.parseZone('2013-02-01T00:00:00-06:30'), 'year'), - 'zoned vs (differently) zoned moment'); -}); - -test('is same with invalid moments', function (assert) { - assert.equal(moment.invalid().isSame(moment.invalid()), false, 'invalid moments are not considered equal'); -}); - -}))); - - -;(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' - && typeof require === 'function' ? factory(require('../../moment')) : - typeof define === 'function' && define.amd ? define(['../../moment'], factory) : - factory(global.moment) -}(this, (function (moment) { 'use strict'; - -function each(array, callback) { - var i; - for (i = 0; i < array.length; i++) { - callback(array[i], i, array); - } -} - -function objectKeys(obj) { - if (Object.keys) { - return Object.keys(obj); - } else { - // IE8 - var res = [], i; - for (i in obj) { - if (obj.hasOwnProperty(i)) { - res.push(i); - } - } - return res; - } -} - -// Pick the first defined of two or three arguments. - -function defineCommonLocaleTests(locale, options) { - test('lenient day of month ordinal parsing', function (assert) { - var i, ordinalStr, testMoment; - for (i = 1; i <= 31; ++i) { - ordinalStr = moment([2014, 0, i]).format('YYYY MM Do'); - testMoment = moment(ordinalStr, 'YYYY MM Do'); - assert.equal(testMoment.year(), 2014, - 'lenient day of month ordinal parsing ' + i + ' year check'); - assert.equal(testMoment.month(), 0, - 'lenient day of month ordinal parsing ' + i + ' month check'); - assert.equal(testMoment.date(), i, - 'lenient day of month ordinal parsing ' + i + ' date check'); - } - }); - - test('lenient day of month ordinal parsing of number', function (assert) { - var i, testMoment; - for (i = 1; i <= 31; ++i) { - testMoment = moment('2014 01 ' + i, 'YYYY MM Do'); - assert.equal(testMoment.year(), 2014, - 'lenient day of month ordinal parsing of number ' + i + ' year check'); - assert.equal(testMoment.month(), 0, - 'lenient day of month ordinal parsing of number ' + i + ' month check'); - assert.equal(testMoment.date(), i, - 'lenient day of month ordinal parsing of number ' + i + ' date check'); - } - }); - - test('strict day of month ordinal parsing', function (assert) { - var i, ordinalStr, testMoment; - for (i = 1; i <= 31; ++i) { - ordinalStr = moment([2014, 0, i]).format('YYYY MM Do'); - testMoment = moment(ordinalStr, 'YYYY MM Do', true); - assert.ok(testMoment.isValid(), 'strict day of month ordinal parsing ' + i); - } - }); - - test('meridiem invariant', function (assert) { - var h, m, t1, t2; - for (h = 0; h < 24; ++h) { - for (m = 0; m < 60; m += 15) { - t1 = moment.utc([2000, 0, 1, h, m]); - t2 = moment.utc(t1.format('A h:mm'), 'A h:mm'); - assert.equal(t2.format('HH:mm'), t1.format('HH:mm'), - 'meridiem at ' + t1.format('HH:mm')); - } - } - }); - - test('date format correctness', function (assert) { - var data, tokens; - data = moment.localeData()._longDateFormat; - tokens = objectKeys(data); - each(tokens, function (srchToken) { - // Check each format string to make sure it does not contain any - // tokens that need to be expanded. - each(tokens, function (baseToken) { - // strip escaped sequences - var format = data[baseToken].replace(/(\[[^\]]*\])/g, ''); - assert.equal(false, !!~format.indexOf(srchToken), - 'contains ' + srchToken + ' in ' + baseToken); - }); - }); - }); - - test('month parsing correctness', function (assert) { - var i, m; - - if (locale === 'tr') { - // I can't fix it :( - expect(0); - return; - } - function tester(format) { - var r; - r = moment(m.format(format), format); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format); - r = moment(m.format(format).toLocaleUpperCase(), format); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' upper'); - r = moment(m.format(format).toLocaleLowerCase(), format); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' lower'); - - r = moment(m.format(format), format, true); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' strict'); - r = moment(m.format(format).toLocaleUpperCase(), format, true); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' upper strict'); - r = moment(m.format(format).toLocaleLowerCase(), format, true); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' lower strict'); - } - - for (i = 0; i < 12; ++i) { - m = moment([2015, i, 15, 18]); - tester('MMM'); - tester('MMM.'); - tester('MMMM'); - tester('MMMM.'); - } - }); - - test('weekday parsing correctness', function (assert) { - var i, m; - - if (locale === 'tr' || locale === 'az' || locale === 'ro') { - // tr, az: There is a lower-case letter (ı), that converted to - // upper then lower changes to i - // ro: there is the letter ț which behaves weird under IE8 - expect(0); - return; - } - function tester(format) { - var r, baseMsg = 'weekday ' + m.weekday() + ' fmt ' + format + ' ' + m.toISOString(); - r = moment(m.format(format), format); - assert.equal(r.weekday(), m.weekday(), baseMsg); - r = moment(m.format(format).toLocaleUpperCase(), format); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' upper'); - r = moment(m.format(format).toLocaleLowerCase(), format); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' lower'); - - r = moment(m.format(format), format, true); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' strict'); - r = moment(m.format(format).toLocaleUpperCase(), format, true); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' upper strict'); - r = moment(m.format(format).toLocaleLowerCase(), format, true); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' lower strict'); - } - - for (i = 0; i < 7; ++i) { - m = moment.utc([2015, 0, i + 1, 18]); - tester('dd'); - tester('ddd'); - tester('dddd'); - } - }); - - test('valid localeData', function (assert) { - assert.equal(moment().localeData().months().length, 12, 'months should return 12 months'); - assert.equal(moment().localeData().monthsShort().length, 12, 'monthsShort should return 12 months'); - assert.equal(moment().localeData().weekdays().length, 7, 'weekdays should return 7 days'); - assert.equal(moment().localeData().weekdaysShort().length, 7, 'weekdaysShort should return 7 days'); - assert.equal(moment().localeData().weekdaysMin().length, 7, 'monthsShort should return 7 days'); - }); -} - -function setupDeprecationHandler(test, moment$$1, scope) { - test._expectedDeprecations = null; - test._observedDeprecations = null; - test._oldSupress = moment$$1.suppressDeprecationWarnings; - moment$$1.suppressDeprecationWarnings = true; - test.expectedDeprecations = function () { - test._expectedDeprecations = arguments; - test._observedDeprecations = []; - }; - moment$$1.deprecationHandler = function (name, msg) { - var deprecationId = matchedDeprecation(name, msg, test._expectedDeprecations); - if (deprecationId === -1) { - throw new Error('Unexpected deprecation thrown name=' + - name + ' msg=' + msg); - } - test._observedDeprecations[deprecationId] = 1; - }; -} - -function teardownDeprecationHandler(test, moment$$1, scope) { - moment$$1.suppressDeprecationWarnings = test._oldSupress; - - if (test._expectedDeprecations != null) { - var missedDeprecations = []; - each(test._expectedDeprecations, function (deprecationPattern, id) { - if (test._observedDeprecations[id] !== 1) { - missedDeprecations.push(deprecationPattern); - } - }); - if (missedDeprecations.length !== 0) { - throw new Error('Expected deprecation warnings did not happen: ' + - missedDeprecations.join(' ')); - } - } -} - -function matchedDeprecation(name, msg, deprecations) { - if (deprecations == null) { - return -1; - } - for (var i = 0; i < deprecations.length; ++i) { - if (name != null && name === deprecations[i]) { - return i; - } - if (msg != null && msg.substring(0, deprecations[i].length) === deprecations[i]) { - return i; - } - } - return -1; -} - -/*global QUnit:false*/ - -var test = QUnit.test; - -var expect = QUnit.expect; - -function module$1 (name, lifecycle) { - QUnit.module(name, { - setup : function () { - moment.locale('en'); - moment.createFromInputFallback = function (config) { - throw new Error('input not handled by moment: ' + config._i); - }; - setupDeprecationHandler(test, moment, 'core'); - if (lifecycle && lifecycle.setup) { - lifecycle.setup(); - } - }, - teardown : function () { - teardownDeprecationHandler(test, moment, 'core'); - if (lifecycle && lifecycle.teardown) { - lifecycle.teardown(); - } - } - }); -} - -module$1('is same or after'); - -test('is same or after without units', function (assert) { - var m = moment(new Date(2011, 3, 2, 3, 4, 5, 10)), mCopy = moment(m); - assert.equal(m.isSameOrAfter(moment(new Date(2012, 3, 2, 3, 5, 5, 10))), false, 'year is later'); - assert.equal(m.isSameOrAfter(moment(new Date(2010, 3, 2, 3, 3, 5, 10))), true, 'year is earlier'); - assert.equal(m.isSameOrAfter(moment(new Date(2011, 4, 2, 3, 4, 5, 10))), false, 'month is later'); - assert.equal(m.isSameOrAfter(moment(new Date(2011, 2, 2, 3, 4, 5, 10))), true, 'month is earlier'); - assert.equal(m.isSameOrAfter(moment(new Date(2011, 3, 3, 3, 4, 5, 10))), false, 'day is later'); - assert.equal(m.isSameOrAfter(moment(new Date(2011, 3, 1, 3, 4, 5, 10))), true, 'day is earlier'); - assert.equal(m.isSameOrAfter(moment(new Date(2011, 3, 2, 4, 4, 5, 10))), false, 'hour is later'); - assert.equal(m.isSameOrAfter(moment(new Date(2011, 3, 2, 2, 4, 5, 10))), true, 'hour is earlier'); - assert.equal(m.isSameOrAfter(moment(new Date(2011, 3, 2, 3, 5, 5, 10))), false, 'minute is later'); - assert.equal(m.isSameOrAfter(moment(new Date(2011, 3, 2, 3, 3, 5, 10))), true, 'minute is earlier'); - assert.equal(m.isSameOrAfter(moment(new Date(2011, 3, 2, 3, 4, 6, 10))), false, 'second is later'); - assert.equal(m.isSameOrAfter(moment(new Date(2011, 3, 2, 3, 4, 4, 11))), true, 'second is earlier'); - assert.equal(m.isSameOrAfter(moment(new Date(2011, 3, 2, 3, 4, 5, 10))), true, 'millisecond match'); - assert.equal(m.isSameOrAfter(moment(new Date(2011, 3, 2, 3, 4, 5, 11))), false, 'millisecond is later'); - assert.equal(m.isSameOrAfter(moment(new Date(2011, 3, 2, 3, 4, 5, 9))), true, 'millisecond is earlier'); - assert.equal(m.isSameOrAfter(m), true, 'moments are the same as themselves'); - assert.equal(+m, +mCopy, 'isSameOrAfter second should not change moment'); -}); - -test('is same or after year', function (assert) { - var m = moment(new Date(2011, 1, 2, 3, 4, 5, 6)), mCopy = moment(m); - assert.equal(m.isSameOrAfter(moment(new Date(2011, 5, 6, 7, 8, 9, 10)), 'year'), true, 'year match'); - assert.equal(m.isSameOrAfter(moment(new Date(2011, 5, 6, 7, 8, 9, 10)), 'years'), true, 'plural should work'); - assert.equal(m.isSameOrAfter(moment(new Date(2012, 5, 6, 7, 8, 9, 10)), 'year'), false, 'year is later'); - assert.equal(m.isSameOrAfter(moment(new Date(2010, 5, 6, 7, 8, 9, 10)), 'year'), true, 'year is earlier'); - assert.equal(m.isSameOrAfter(moment(new Date(2011, 0, 1, 0, 0, 0, 0)), 'year'), true, 'exact start of year'); - assert.equal(m.isSameOrAfter(moment(new Date(2011, 11, 31, 23, 59, 59, 999)), 'year'), true, 'exact end of year'); - assert.equal(m.isSameOrAfter(moment(new Date(2012, 0, 1, 0, 0, 0, 0)), 'year'), false, 'start of next year'); - assert.equal(m.isSameOrAfter(moment(new Date(2010, 11, 31, 23, 59, 59, 999)), 'year'), true, 'end of previous year'); - assert.equal(m.isSameOrAfter(m, 'year'), true, 'same moments are in the same year'); - assert.equal(+m, +mCopy, 'isSameOrAfter year should not change moment'); -}); - -test('is same or after month', function (assert) { - var m = moment(new Date(2011, 2, 3, 4, 5, 6, 7)), mCopy = moment(m); - assert.equal(m.isSameOrAfter(moment(new Date(2011, 2, 6, 7, 8, 9, 10)), 'month'), true, 'month match'); - assert.equal(m.isSameOrAfter(moment(new Date(2011, 2, 6, 7, 8, 9, 10)), 'months'), true, 'plural should work'); - assert.equal(m.isSameOrAfter(moment(new Date(2012, 2, 6, 7, 8, 9, 10)), 'month'), false, 'year is later'); - assert.equal(m.isSameOrAfter(moment(new Date(2010, 2, 6, 7, 8, 9, 10)), 'month'), true, 'year is earlier'); - assert.equal(m.isSameOrAfter(moment(new Date(2011, 5, 6, 7, 8, 9, 10)), 'month'), false, 'month is later'); - assert.equal(m.isSameOrAfter(moment(new Date(2011, 1, 6, 7, 8, 9, 10)), 'month'), true, 'month is earlier'); - assert.equal(m.isSameOrAfter(moment(new Date(2011, 2, 1, 0, 0, 0, 0)), 'month'), true, 'exact start of month'); - assert.equal(m.isSameOrAfter(moment(new Date(2011, 2, 31, 23, 59, 59, 999)), 'month'), true, 'exact end of month'); - assert.equal(m.isSameOrAfter(moment(new Date(2011, 3, 1, 0, 0, 0, 0)), 'month'), false, 'start of next month'); - assert.equal(m.isSameOrAfter(moment(new Date(2011, 1, 27, 23, 59, 59, 999)), 'month'), true, 'end of previous month'); - assert.equal(m.isSameOrAfter(m, 'month'), true, 'same moments are in the same month'); - assert.equal(+m, +mCopy, 'isSameOrAfter month should not change moment'); -}); - -test('is same or after day', function (assert) { - var m = moment(new Date(2011, 1, 2, 3, 4, 5, 6)), mCopy = moment(m); - assert.equal(m.isSameOrAfter(moment(new Date(2011, 1, 2, 7, 8, 9, 10)), 'day'), true, 'day match'); - assert.equal(m.isSameOrAfter(moment(new Date(2011, 1, 2, 7, 8, 9, 10)), 'days'), true, 'plural should work'); - assert.equal(m.isSameOrAfter(moment(new Date(2012, 1, 2, 7, 8, 9, 10)), 'day'), false, 'year is later'); - assert.equal(m.isSameOrAfter(moment(new Date(2010, 1, 2, 7, 8, 9, 10)), 'day'), true, 'year is earlier'); - assert.equal(m.isSameOrAfter(moment(new Date(2011, 2, 2, 7, 8, 9, 10)), 'day'), false, 'month is later'); - assert.equal(m.isSameOrAfter(moment(new Date(2010, 12, 2, 7, 8, 9, 10)), 'day'), true, 'month is earlier'); - assert.equal(m.isSameOrAfter(moment(new Date(2011, 1, 3, 7, 8, 9, 10)), 'day'), false, 'day is later'); - assert.equal(m.isSameOrAfter(moment(new Date(2011, 1, 1, 7, 8, 9, 10)), 'day'), true, 'day is earlier'); - assert.equal(m.isSameOrAfter(moment(new Date(2011, 1, 2, 0, 0, 0, 0)), 'day'), true, 'exact start of day'); - assert.equal(m.isSameOrAfter(moment(new Date(2011, 1, 2, 23, 59, 59, 999)), 'day'), true, 'exact end of day'); - assert.equal(m.isSameOrAfter(moment(new Date(2011, 1, 3, 0, 0, 0, 0)), 'day'), false, 'start of next day'); - assert.equal(m.isSameOrAfter(moment(new Date(2011, 1, 1, 23, 59, 59, 999)), 'day'), true, 'end of previous day'); - assert.equal(m.isSameOrAfter(m, 'day'), true, 'same moments are in the same day'); - assert.equal(+m, +mCopy, 'isSameOrAfter day should not change moment'); -}); - -test('is same or after hour', function (assert) { - var m = moment(new Date(2011, 1, 2, 3, 4, 5, 6)), mCopy = moment(m); - assert.equal(m.isSameOrAfter(moment(new Date(2011, 1, 2, 3, 8, 9, 10)), 'hour'), true, 'hour match'); - assert.equal(m.isSameOrAfter(moment(new Date(2011, 1, 2, 3, 8, 9, 10)), 'hours'), true, 'plural should work'); - assert.equal(m.isSameOrAfter(moment(new Date(2012, 1, 2, 3, 8, 9, 10)), 'hour'), false, 'year is later'); - assert.equal(m.isSameOrAfter(moment(new Date(2010, 1, 2, 3, 8, 9, 10)), 'hour'), true, 'year is earlier'); - assert.equal(m.isSameOrAfter(moment(new Date(2011, 2, 2, 3, 8, 9, 10)), 'hour'), false, 'month is later'); - assert.equal(m.isSameOrAfter(moment(new Date(2010, 12, 2, 3, 8, 9, 10)), 'hour'), true, 'month is earlier'); - assert.equal(m.isSameOrAfter(moment(new Date(2011, 1, 3, 3, 8, 9, 10)), 'hour'), false, 'day is later'); - assert.equal(m.isSameOrAfter(moment(new Date(2011, 1, 1, 3, 8, 9, 10)), 'hour'), true, 'day is earlier'); - assert.equal(m.isSameOrAfter(moment(new Date(2011, 1, 2, 4, 8, 9, 10)), 'hour'), false, 'hour is later'); - assert.equal(m.isSameOrAfter(moment(new Date(2011, 1, 2, 2, 8, 9, 10)), 'hour'), true, 'hour is earlier'); - assert.equal(m.isSameOrAfter(moment(new Date(2011, 1, 2, 3, 0, 0, 0)), 'hour'), true, 'exact start of hour'); - assert.equal(m.isSameOrAfter(moment(new Date(2011, 1, 2, 3, 59, 59, 999)), 'hour'), true, 'exact end of hour'); - assert.equal(m.isSameOrAfter(moment(new Date(2011, 1, 2, 4, 0, 0, 0)), 'hour'), false, 'start of next hour'); - assert.equal(m.isSameOrAfter(moment(new Date(2011, 1, 2, 2, 59, 59, 999)), 'hour'), true, 'end of previous hour'); - assert.equal(m.isSameOrAfter(m, 'hour'), true, 'same moments are in the same hour'); - assert.equal(+m, +mCopy, 'isSameOrAfter hour should not change moment'); -}); - -test('is same or after minute', function (assert) { - var m = moment(new Date(2011, 1, 2, 3, 4, 5, 6)), mCopy = moment(m); - assert.equal(m.isSameOrAfter(moment(new Date(2011, 1, 2, 3, 4, 9, 10)), 'minute'), true, 'minute match'); - assert.equal(m.isSameOrAfter(moment(new Date(2011, 1, 2, 3, 4, 9, 10)), 'minutes'), true, 'plural should work'); - assert.equal(m.isSameOrAfter(moment(new Date(2012, 1, 2, 3, 4, 9, 10)), 'minute'), false, 'year is later'); - assert.equal(m.isSameOrAfter(moment(new Date(2010, 1, 2, 3, 4, 9, 10)), 'minute'), true, 'year is earlier'); - assert.equal(m.isSameOrAfter(moment(new Date(2011, 2, 2, 3, 4, 9, 10)), 'minute'), false, 'month is later'); - assert.equal(m.isSameOrAfter(moment(new Date(2010, 12, 2, 3, 4, 9, 10)), 'minute'), true, 'month is earlier'); - assert.equal(m.isSameOrAfter(moment(new Date(2011, 1, 3, 3, 4, 9, 10)), 'minute'), false, 'day is later'); - assert.equal(m.isSameOrAfter(moment(new Date(2011, 1, 1, 3, 4, 9, 10)), 'minute'), true, 'day is earlier'); - assert.equal(m.isSameOrAfter(moment(new Date(2011, 1, 2, 4, 4, 9, 10)), 'minute'), false, 'hour is later'); - assert.equal(m.isSameOrAfter(moment(new Date(2011, 1, 2, 2, 4, 9, 10)), 'minute'), true, 'hour is earlier'); - assert.equal(m.isSameOrAfter(moment(new Date(2011, 1, 2, 3, 5, 9, 10)), 'minute'), false, 'minute is later'); - assert.equal(m.isSameOrAfter(moment(new Date(2011, 1, 2, 3, 3, 9, 10)), 'minute'), true, 'minute is earlier'); - assert.equal(m.isSameOrAfter(moment(new Date(2011, 1, 2, 3, 4, 0, 0)), 'minute'), true, 'exact start of minute'); - assert.equal(m.isSameOrAfter(moment(new Date(2011, 1, 2, 3, 4, 59, 999)), 'minute'), true, 'exact end of minute'); - assert.equal(m.isSameOrAfter(moment(new Date(2011, 1, 2, 3, 5, 0, 0)), 'minute'), false, 'start of next minute'); - assert.equal(m.isSameOrAfter(moment(new Date(2011, 1, 2, 3, 3, 59, 999)), 'minute'), true, 'end of previous minute'); - assert.equal(m.isSameOrAfter(m, 'minute'), true, 'same moments are in the same minute'); - assert.equal(+m, +mCopy, 'isSameOrAfter minute should not change moment'); -}); - -test('is same or after second', function (assert) { - var m = moment(new Date(2011, 1, 2, 3, 4, 5, 6)), mCopy = moment(m); - assert.equal(m.isSameOrAfter(moment(new Date(2011, 1, 2, 3, 4, 5, 10)), 'second'), true, 'second match'); - assert.equal(m.isSameOrAfter(moment(new Date(2011, 1, 2, 3, 4, 5, 10)), 'seconds'), true, 'plural should work'); - assert.equal(m.isSameOrAfter(moment(new Date(2012, 1, 2, 3, 4, 5, 10)), 'second'), false, 'year is later'); - assert.equal(m.isSameOrAfter(moment(new Date(2010, 1, 2, 3, 4, 5, 10)), 'second'), true, 'year is earlier'); - assert.equal(m.isSameOrAfter(moment(new Date(2011, 2, 2, 3, 4, 5, 10)), 'second'), false, 'month is later'); - assert.equal(m.isSameOrAfter(moment(new Date(2010, 12, 2, 3, 4, 5, 10)), 'second'), true, 'month is earlier'); - assert.equal(m.isSameOrAfter(moment(new Date(2011, 1, 3, 3, 4, 5, 10)), 'second'), false, 'day is later'); - assert.equal(m.isSameOrAfter(moment(new Date(2011, 1, 1, 3, 4, 5, 10)), 'second'), true, 'day is earlier'); - assert.equal(m.isSameOrAfter(moment(new Date(2011, 1, 2, 4, 4, 5, 10)), 'second'), false, 'hour is later'); - assert.equal(m.isSameOrAfter(moment(new Date(2011, 1, 2, 2, 4, 5, 10)), 'second'), true, 'hour is earlier'); - assert.equal(m.isSameOrAfter(moment(new Date(2011, 1, 2, 3, 5, 5, 10)), 'second'), false, 'minute is later'); - assert.equal(m.isSameOrAfter(moment(new Date(2011, 1, 2, 3, 3, 5, 10)), 'second'), true, 'minute is earlier'); - assert.equal(m.isSameOrAfter(moment(new Date(2011, 1, 2, 3, 4, 6, 10)), 'second'), false, 'second is later'); - assert.equal(m.isSameOrAfter(moment(new Date(2011, 1, 2, 3, 4, 4, 10)), 'second'), true, 'second is earlier'); - assert.equal(m.isSameOrAfter(moment(new Date(2011, 1, 2, 3, 4, 5, 0)), 'second'), true, 'exact start of second'); - assert.equal(m.isSameOrAfter(moment(new Date(2011, 1, 2, 3, 4, 5, 999)), 'second'), true, 'exact end of second'); - assert.equal(m.isSameOrAfter(moment(new Date(2011, 1, 2, 3, 4, 6, 0)), 'second'), false, 'start of next second'); - assert.equal(m.isSameOrAfter(moment(new Date(2011, 1, 2, 3, 4, 4, 999)), 'second'), true, 'end of previous second'); - assert.equal(m.isSameOrAfter(m, 'second'), true, 'same moments are in the same second'); - assert.equal(+m, +mCopy, 'isSameOrAfter second should not change moment'); -}); - -test('is same or after millisecond', function (assert) { - var m = moment(new Date(2011, 3, 2, 3, 4, 5, 10)), mCopy = moment(m); - assert.equal(m.isSameOrAfter(moment(new Date(2011, 3, 2, 3, 4, 5, 10)), 'millisecond'), true, 'millisecond match'); - assert.equal(m.isSameOrAfter(moment(new Date(2011, 3, 2, 3, 4, 5, 10)), 'milliseconds'), true, 'plural should work'); - assert.equal(m.isSameOrAfter(moment(new Date(2012, 3, 2, 3, 4, 5, 10)), 'millisecond'), false, 'year is later'); - assert.equal(m.isSameOrAfter(moment(new Date(2010, 3, 2, 3, 4, 5, 10)), 'millisecond'), true, 'year is earlier'); - assert.equal(m.isSameOrAfter(moment(new Date(2011, 4, 2, 3, 4, 5, 10)), 'millisecond'), false, 'month is later'); - assert.equal(m.isSameOrAfter(moment(new Date(2011, 2, 2, 3, 4, 5, 10)), 'millisecond'), true, 'month is earlier'); - assert.equal(m.isSameOrAfter(moment(new Date(2011, 3, 3, 3, 4, 5, 10)), 'millisecond'), false, 'day is later'); - assert.equal(m.isSameOrAfter(moment(new Date(2011, 3, 1, 1, 4, 5, 10)), 'millisecond'), true, 'day is earlier'); - assert.equal(m.isSameOrAfter(moment(new Date(2011, 3, 2, 4, 4, 5, 10)), 'millisecond'), false, 'hour is later'); - assert.equal(m.isSameOrAfter(moment(new Date(2011, 3, 1, 4, 1, 5, 10)), 'millisecond'), true, 'hour is earlier'); - assert.equal(m.isSameOrAfter(moment(new Date(2011, 3, 2, 3, 5, 5, 10)), 'millisecond'), false, 'minute is later'); - assert.equal(m.isSameOrAfter(moment(new Date(2011, 3, 2, 3, 3, 5, 10)), 'millisecond'), true, 'minute is earlier'); - assert.equal(m.isSameOrAfter(moment(new Date(2011, 3, 2, 3, 4, 6, 10)), 'millisecond'), false, 'second is later'); - assert.equal(m.isSameOrAfter(moment(new Date(2011, 3, 2, 3, 4, 4, 5)), 'millisecond'), true, 'second is earlier'); - assert.equal(m.isSameOrAfter(moment(new Date(2011, 3, 2, 3, 4, 6, 11)), 'millisecond'), false, 'millisecond is later'); - assert.equal(m.isSameOrAfter(moment(new Date(2011, 3, 2, 3, 4, 4, 9)), 'millisecond'), true, 'millisecond is earlier'); - assert.equal(m.isSameOrAfter(m, 'millisecond'), true, 'same moments are in the same millisecond'); - assert.equal(+m, +mCopy, 'isSameOrAfter millisecond should not change moment'); -}); - -test('is same or after with utc offset moments', function (assert) { - assert.ok(moment.parseZone('2013-02-01T00:00:00-05:00').isSameOrAfter(moment('2013-02-01'), 'year'), 'zoned vs local moment'); - assert.ok(moment('2013-02-01').isSameOrAfter(moment('2013-02-01').utcOffset('-05:00'), 'year'), 'local vs zoned moment'); - assert.ok(moment.parseZone('2013-02-01T00:00:00-05:00').isSameOrAfter(moment.parseZone('2013-02-01T00:00:00-06:30'), 'year'), - 'zoned vs (differently) zoned moment'); -}); - -test('is same or after with invalid moments', function (assert) { - var m = moment(), invalid = moment.invalid(); - assert.equal(invalid.isSameOrAfter(invalid), false, 'invalid moments are not considered equal'); - assert.equal(m.isSameOrAfter(invalid), false, 'valid moment is not after invalid moment'); - assert.equal(invalid.isSameOrAfter(m), false, 'invalid moment is not after valid moment'); - assert.equal(m.isSameOrAfter(invalid, 'year'), false, 'invalid moment year'); - assert.equal(m.isSameOrAfter(invalid, 'month'), false, 'invalid moment month'); - assert.equal(m.isSameOrAfter(invalid, 'day'), false, 'invalid moment day'); - assert.equal(m.isSameOrAfter(invalid, 'hour'), false, 'invalid moment hour'); - assert.equal(m.isSameOrAfter(invalid, 'minute'), false, 'invalid moment minute'); - assert.equal(m.isSameOrAfter(invalid, 'second'), false, 'invalid moment second'); - assert.equal(m.isSameOrAfter(invalid, 'milliseconds'), false, 'invalid moment milliseconds'); -}); - -}))); - - -;(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' - && typeof require === 'function' ? factory(require('../../moment')) : - typeof define === 'function' && define.amd ? define(['../../moment'], factory) : - factory(global.moment) -}(this, (function (moment) { 'use strict'; - -function each(array, callback) { - var i; - for (i = 0; i < array.length; i++) { - callback(array[i], i, array); - } -} - -function objectKeys(obj) { - if (Object.keys) { - return Object.keys(obj); - } else { - // IE8 - var res = [], i; - for (i in obj) { - if (obj.hasOwnProperty(i)) { - res.push(i); - } - } - return res; - } -} - -// Pick the first defined of two or three arguments. - -function defineCommonLocaleTests(locale, options) { - test('lenient day of month ordinal parsing', function (assert) { - var i, ordinalStr, testMoment; - for (i = 1; i <= 31; ++i) { - ordinalStr = moment([2014, 0, i]).format('YYYY MM Do'); - testMoment = moment(ordinalStr, 'YYYY MM Do'); - assert.equal(testMoment.year(), 2014, - 'lenient day of month ordinal parsing ' + i + ' year check'); - assert.equal(testMoment.month(), 0, - 'lenient day of month ordinal parsing ' + i + ' month check'); - assert.equal(testMoment.date(), i, - 'lenient day of month ordinal parsing ' + i + ' date check'); - } - }); - - test('lenient day of month ordinal parsing of number', function (assert) { - var i, testMoment; - for (i = 1; i <= 31; ++i) { - testMoment = moment('2014 01 ' + i, 'YYYY MM Do'); - assert.equal(testMoment.year(), 2014, - 'lenient day of month ordinal parsing of number ' + i + ' year check'); - assert.equal(testMoment.month(), 0, - 'lenient day of month ordinal parsing of number ' + i + ' month check'); - assert.equal(testMoment.date(), i, - 'lenient day of month ordinal parsing of number ' + i + ' date check'); - } - }); - - test('strict day of month ordinal parsing', function (assert) { - var i, ordinalStr, testMoment; - for (i = 1; i <= 31; ++i) { - ordinalStr = moment([2014, 0, i]).format('YYYY MM Do'); - testMoment = moment(ordinalStr, 'YYYY MM Do', true); - assert.ok(testMoment.isValid(), 'strict day of month ordinal parsing ' + i); - } - }); - - test('meridiem invariant', function (assert) { - var h, m, t1, t2; - for (h = 0; h < 24; ++h) { - for (m = 0; m < 60; m += 15) { - t1 = moment.utc([2000, 0, 1, h, m]); - t2 = moment.utc(t1.format('A h:mm'), 'A h:mm'); - assert.equal(t2.format('HH:mm'), t1.format('HH:mm'), - 'meridiem at ' + t1.format('HH:mm')); - } - } - }); - - test('date format correctness', function (assert) { - var data, tokens; - data = moment.localeData()._longDateFormat; - tokens = objectKeys(data); - each(tokens, function (srchToken) { - // Check each format string to make sure it does not contain any - // tokens that need to be expanded. - each(tokens, function (baseToken) { - // strip escaped sequences - var format = data[baseToken].replace(/(\[[^\]]*\])/g, ''); - assert.equal(false, !!~format.indexOf(srchToken), - 'contains ' + srchToken + ' in ' + baseToken); - }); - }); - }); - - test('month parsing correctness', function (assert) { - var i, m; - - if (locale === 'tr') { - // I can't fix it :( - expect(0); - return; - } - function tester(format) { - var r; - r = moment(m.format(format), format); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format); - r = moment(m.format(format).toLocaleUpperCase(), format); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' upper'); - r = moment(m.format(format).toLocaleLowerCase(), format); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' lower'); - - r = moment(m.format(format), format, true); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' strict'); - r = moment(m.format(format).toLocaleUpperCase(), format, true); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' upper strict'); - r = moment(m.format(format).toLocaleLowerCase(), format, true); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' lower strict'); - } - - for (i = 0; i < 12; ++i) { - m = moment([2015, i, 15, 18]); - tester('MMM'); - tester('MMM.'); - tester('MMMM'); - tester('MMMM.'); - } - }); - - test('weekday parsing correctness', function (assert) { - var i, m; - - if (locale === 'tr' || locale === 'az' || locale === 'ro') { - // tr, az: There is a lower-case letter (ı), that converted to - // upper then lower changes to i - // ro: there is the letter ț which behaves weird under IE8 - expect(0); - return; - } - function tester(format) { - var r, baseMsg = 'weekday ' + m.weekday() + ' fmt ' + format + ' ' + m.toISOString(); - r = moment(m.format(format), format); - assert.equal(r.weekday(), m.weekday(), baseMsg); - r = moment(m.format(format).toLocaleUpperCase(), format); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' upper'); - r = moment(m.format(format).toLocaleLowerCase(), format); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' lower'); - - r = moment(m.format(format), format, true); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' strict'); - r = moment(m.format(format).toLocaleUpperCase(), format, true); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' upper strict'); - r = moment(m.format(format).toLocaleLowerCase(), format, true); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' lower strict'); - } - - for (i = 0; i < 7; ++i) { - m = moment.utc([2015, 0, i + 1, 18]); - tester('dd'); - tester('ddd'); - tester('dddd'); - } - }); - - test('valid localeData', function (assert) { - assert.equal(moment().localeData().months().length, 12, 'months should return 12 months'); - assert.equal(moment().localeData().monthsShort().length, 12, 'monthsShort should return 12 months'); - assert.equal(moment().localeData().weekdays().length, 7, 'weekdays should return 7 days'); - assert.equal(moment().localeData().weekdaysShort().length, 7, 'weekdaysShort should return 7 days'); - assert.equal(moment().localeData().weekdaysMin().length, 7, 'monthsShort should return 7 days'); - }); -} - -function setupDeprecationHandler(test, moment$$1, scope) { - test._expectedDeprecations = null; - test._observedDeprecations = null; - test._oldSupress = moment$$1.suppressDeprecationWarnings; - moment$$1.suppressDeprecationWarnings = true; - test.expectedDeprecations = function () { - test._expectedDeprecations = arguments; - test._observedDeprecations = []; - }; - moment$$1.deprecationHandler = function (name, msg) { - var deprecationId = matchedDeprecation(name, msg, test._expectedDeprecations); - if (deprecationId === -1) { - throw new Error('Unexpected deprecation thrown name=' + - name + ' msg=' + msg); - } - test._observedDeprecations[deprecationId] = 1; - }; -} - -function teardownDeprecationHandler(test, moment$$1, scope) { - moment$$1.suppressDeprecationWarnings = test._oldSupress; - - if (test._expectedDeprecations != null) { - var missedDeprecations = []; - each(test._expectedDeprecations, function (deprecationPattern, id) { - if (test._observedDeprecations[id] !== 1) { - missedDeprecations.push(deprecationPattern); - } - }); - if (missedDeprecations.length !== 0) { - throw new Error('Expected deprecation warnings did not happen: ' + - missedDeprecations.join(' ')); - } - } -} - -function matchedDeprecation(name, msg, deprecations) { - if (deprecations == null) { - return -1; - } - for (var i = 0; i < deprecations.length; ++i) { - if (name != null && name === deprecations[i]) { - return i; - } - if (msg != null && msg.substring(0, deprecations[i].length) === deprecations[i]) { - return i; - } - } - return -1; -} - -/*global QUnit:false*/ - -var test = QUnit.test; - -var expect = QUnit.expect; - -function module$1 (name, lifecycle) { - QUnit.module(name, { - setup : function () { - moment.locale('en'); - moment.createFromInputFallback = function (config) { - throw new Error('input not handled by moment: ' + config._i); - }; - setupDeprecationHandler(test, moment, 'core'); - if (lifecycle && lifecycle.setup) { - lifecycle.setup(); - } - }, - teardown : function () { - teardownDeprecationHandler(test, moment, 'core'); - if (lifecycle && lifecycle.teardown) { - lifecycle.teardown(); - } - } - }); -} - -module$1('is same or before'); - -test('is same or before without units', function (assert) { - var m = moment(new Date(2011, 3, 2, 3, 4, 5, 10)), mCopy = moment(m); - assert.equal(m.isSameOrBefore(moment(new Date(2012, 3, 2, 3, 5, 5, 10))), true, 'year is later'); - assert.equal(m.isSameOrBefore(moment(new Date(2010, 3, 2, 3, 3, 5, 10))), false, 'year is earlier'); - assert.equal(m.isSameOrBefore(moment(new Date(2011, 4, 2, 3, 4, 5, 10))), true, 'month is later'); - assert.equal(m.isSameOrBefore(moment(new Date(2011, 2, 2, 3, 4, 5, 10))), false, 'month is earlier'); - assert.equal(m.isSameOrBefore(moment(new Date(2011, 3, 3, 3, 4, 5, 10))), true, 'day is later'); - assert.equal(m.isSameOrBefore(moment(new Date(2011, 3, 1, 3, 4, 5, 10))), false, 'day is earlier'); - assert.equal(m.isSameOrBefore(moment(new Date(2011, 3, 2, 4, 4, 5, 10))), true, 'hour is later'); - assert.equal(m.isSameOrBefore(moment(new Date(2011, 3, 2, 2, 4, 5, 10))), false, 'hour is earlier'); - assert.equal(m.isSameOrBefore(moment(new Date(2011, 3, 2, 3, 5, 5, 10))), true, 'minute is later'); - assert.equal(m.isSameOrBefore(moment(new Date(2011, 3, 2, 3, 3, 5, 10))), false, 'minute is earlier'); - assert.equal(m.isSameOrBefore(moment(new Date(2011, 3, 2, 3, 4, 6, 10))), true, 'second is later'); - assert.equal(m.isSameOrBefore(moment(new Date(2011, 3, 2, 3, 4, 4, 11))), false, 'second is earlier'); - assert.equal(m.isSameOrBefore(moment(new Date(2011, 3, 2, 3, 4, 5, 10))), true, 'millisecond match'); - assert.equal(m.isSameOrBefore(moment(new Date(2011, 3, 2, 3, 4, 5, 11))), true, 'millisecond is later'); - assert.equal(m.isSameOrBefore(moment(new Date(2011, 3, 2, 3, 4, 5, 9))), false, 'millisecond is earlier'); - assert.equal(m.isSameOrBefore(m), true, 'moments are the same as themselves'); - assert.equal(+m, +mCopy, 'isSameOrBefore second should not change moment'); -}); - -test('is same or before year', function (assert) { - var m = moment(new Date(2011, 1, 2, 3, 4, 5, 6)), mCopy = moment(m); - assert.equal(m.isSameOrBefore(moment(new Date(2011, 5, 6, 7, 8, 9, 10)), 'year'), true, 'year match'); - assert.equal(m.isSameOrBefore(moment(new Date(2011, 5, 6, 7, 8, 9, 10)), 'years'), true, 'plural should work'); - assert.equal(m.isSameOrBefore(moment(new Date(2012, 5, 6, 7, 8, 9, 10)), 'year'), true, 'year is later'); - assert.equal(m.isSameOrBefore(moment(new Date(2010, 5, 6, 7, 8, 9, 10)), 'year'), false, 'year is earlier'); - assert.equal(m.isSameOrBefore(moment(new Date(2011, 0, 1, 0, 0, 0, 0)), 'year'), true, 'exact start of year'); - assert.equal(m.isSameOrBefore(moment(new Date(2011, 11, 31, 23, 59, 59, 999)), 'year'), true, 'exact end of year'); - assert.equal(m.isSameOrBefore(moment(new Date(2012, 0, 1, 0, 0, 0, 0)), 'year'), true, 'start of next year'); - assert.equal(m.isSameOrBefore(moment(new Date(2010, 11, 31, 23, 59, 59, 999)), 'year'), false, 'end of previous year'); - assert.equal(m.isSameOrBefore(m, 'year'), true, 'same moments are in the same year'); - assert.equal(+m, +mCopy, 'isSameOrBefore year should not change moment'); -}); - -test('is same or before month', function (assert) { - var m = moment(new Date(2011, 2, 3, 4, 5, 6, 7)), mCopy = moment(m); - assert.equal(m.isSameOrBefore(moment(new Date(2011, 2, 6, 7, 8, 9, 10)), 'month'), true, 'month match'); - assert.equal(m.isSameOrBefore(moment(new Date(2011, 2, 6, 7, 8, 9, 10)), 'months'), true, 'plural should work'); - assert.equal(m.isSameOrBefore(moment(new Date(2012, 2, 6, 7, 8, 9, 10)), 'month'), true, 'year is later'); - assert.equal(m.isSameOrBefore(moment(new Date(2010, 2, 6, 7, 8, 9, 10)), 'month'), false, 'year is earlier'); - assert.equal(m.isSameOrBefore(moment(new Date(2011, 5, 6, 7, 8, 9, 10)), 'month'), true, 'month is later'); - assert.equal(m.isSameOrBefore(moment(new Date(2011, 1, 6, 7, 8, 9, 10)), 'month'), false, 'month is earlier'); - assert.equal(m.isSameOrBefore(moment(new Date(2011, 2, 1, 0, 0, 0, 0)), 'month'), true, 'exact start of month'); - assert.equal(m.isSameOrBefore(moment(new Date(2011, 2, 31, 23, 59, 59, 999)), 'month'), true, 'exact end of month'); - assert.equal(m.isSameOrBefore(moment(new Date(2011, 3, 1, 0, 0, 0, 0)), 'month'), true, 'start of next month'); - assert.equal(m.isSameOrBefore(moment(new Date(2011, 1, 27, 23, 59, 59, 999)), 'month'), false, 'end of previous month'); - assert.equal(m.isSameOrBefore(m, 'month'), true, 'same moments are in the same month'); - assert.equal(+m, +mCopy, 'isSameOrBefore month should not change moment'); -}); - -test('is same or before day', function (assert) { - var m = moment(new Date(2011, 1, 2, 3, 4, 5, 6)), mCopy = moment(m); - assert.equal(m.isSameOrBefore(moment(new Date(2011, 1, 2, 7, 8, 9, 10)), 'day'), true, 'day match'); - assert.equal(m.isSameOrBefore(moment(new Date(2011, 1, 2, 7, 8, 9, 10)), 'days'), true, 'plural should work'); - assert.equal(m.isSameOrBefore(moment(new Date(2012, 1, 2, 7, 8, 9, 10)), 'day'), true, 'year is later'); - assert.equal(m.isSameOrBefore(moment(new Date(2010, 1, 2, 7, 8, 9, 10)), 'day'), false, 'year is earlier'); - assert.equal(m.isSameOrBefore(moment(new Date(2011, 2, 2, 7, 8, 9, 10)), 'day'), true, 'month is later'); - assert.equal(m.isSameOrBefore(moment(new Date(2010, 12, 2, 7, 8, 9, 10)), 'day'), false, 'month is earlier'); - assert.equal(m.isSameOrBefore(moment(new Date(2011, 1, 3, 7, 8, 9, 10)), 'day'), true, 'day is later'); - assert.equal(m.isSameOrBefore(moment(new Date(2011, 1, 1, 7, 8, 9, 10)), 'day'), false, 'day is earlier'); - assert.equal(m.isSameOrBefore(moment(new Date(2011, 1, 2, 0, 0, 0, 0)), 'day'), true, 'exact start of day'); - assert.equal(m.isSameOrBefore(moment(new Date(2011, 1, 2, 23, 59, 59, 999)), 'day'), true, 'exact end of day'); - assert.equal(m.isSameOrBefore(moment(new Date(2011, 1, 3, 0, 0, 0, 0)), 'day'), true, 'start of next day'); - assert.equal(m.isSameOrBefore(moment(new Date(2011, 1, 1, 23, 59, 59, 999)), 'day'), false, 'end of previous day'); - assert.equal(m.isSameOrBefore(m, 'day'), true, 'same moments are in the same day'); - assert.equal(+m, +mCopy, 'isSameOrBefore day should not change moment'); -}); - -test('is same or before hour', function (assert) { - var m = moment(new Date(2011, 1, 2, 3, 4, 5, 6)), mCopy = moment(m); - assert.equal(m.isSameOrBefore(moment(new Date(2011, 1, 2, 3, 8, 9, 10)), 'hour'), true, 'hour match'); - assert.equal(m.isSameOrBefore(moment(new Date(2011, 1, 2, 3, 8, 9, 10)), 'hours'), true, 'plural should work'); - assert.equal(m.isSameOrBefore(moment(new Date(2012, 1, 2, 3, 8, 9, 10)), 'hour'), true, 'year is later'); - assert.equal(m.isSameOrBefore(moment(new Date(2010, 1, 2, 3, 8, 9, 10)), 'hour'), false, 'year is earlier'); - assert.equal(m.isSameOrBefore(moment(new Date(2011, 2, 2, 3, 8, 9, 10)), 'hour'), true, 'month is later'); - assert.equal(m.isSameOrBefore(moment(new Date(2010, 12, 2, 3, 8, 9, 10)), 'hour'), false, 'month is earlier'); - assert.equal(m.isSameOrBefore(moment(new Date(2011, 1, 3, 3, 8, 9, 10)), 'hour'), true, 'day is later'); - assert.equal(m.isSameOrBefore(moment(new Date(2011, 1, 1, 3, 8, 9, 10)), 'hour'), false, 'day is earlier'); - assert.equal(m.isSameOrBefore(moment(new Date(2011, 1, 2, 4, 8, 9, 10)), 'hour'), true, 'hour is later'); - assert.equal(m.isSameOrBefore(moment(new Date(2011, 1, 2, 2, 8, 9, 10)), 'hour'), false, 'hour is earlier'); - assert.equal(m.isSameOrBefore(moment(new Date(2011, 1, 2, 3, 0, 0, 0)), 'hour'), true, 'exact start of hour'); - assert.equal(m.isSameOrBefore(moment(new Date(2011, 1, 2, 3, 59, 59, 999)), 'hour'), true, 'exact end of hour'); - assert.equal(m.isSameOrBefore(moment(new Date(2011, 1, 2, 4, 0, 0, 0)), 'hour'), true, 'start of next hour'); - assert.equal(m.isSameOrBefore(moment(new Date(2011, 1, 2, 2, 59, 59, 999)), 'hour'), false, 'end of previous hour'); - assert.equal(m.isSameOrBefore(m, 'hour'), true, 'same moments are in the same hour'); - assert.equal(+m, +mCopy, 'isSameOrBefore hour should not change moment'); -}); - -test('is same or before minute', function (assert) { - var m = moment(new Date(2011, 1, 2, 3, 4, 5, 6)), mCopy = moment(m); - assert.equal(m.isSameOrBefore(moment(new Date(2011, 1, 2, 3, 4, 9, 10)), 'minute'), true, 'minute match'); - assert.equal(m.isSameOrBefore(moment(new Date(2011, 1, 2, 3, 4, 9, 10)), 'minutes'), true, 'plural should work'); - assert.equal(m.isSameOrBefore(moment(new Date(2012, 1, 2, 3, 4, 9, 10)), 'minute'), true, 'year is later'); - assert.equal(m.isSameOrBefore(moment(new Date(2010, 1, 2, 3, 4, 9, 10)), 'minute'), false, 'year is earlier'); - assert.equal(m.isSameOrBefore(moment(new Date(2011, 2, 2, 3, 4, 9, 10)), 'minute'), true, 'month is later'); - assert.equal(m.isSameOrBefore(moment(new Date(2010, 12, 2, 3, 4, 9, 10)), 'minute'), false, 'month is earlier'); - assert.equal(m.isSameOrBefore(moment(new Date(2011, 1, 3, 3, 4, 9, 10)), 'minute'), true, 'day is later'); - assert.equal(m.isSameOrBefore(moment(new Date(2011, 1, 1, 3, 4, 9, 10)), 'minute'), false, 'day is earlier'); - assert.equal(m.isSameOrBefore(moment(new Date(2011, 1, 2, 4, 4, 9, 10)), 'minute'), true, 'hour is later'); - assert.equal(m.isSameOrBefore(moment(new Date(2011, 1, 2, 2, 4, 9, 10)), 'minute'), false, 'hour is earlier'); - assert.equal(m.isSameOrBefore(moment(new Date(2011, 1, 2, 3, 5, 9, 10)), 'minute'), true, 'minute is later'); - assert.equal(m.isSameOrBefore(moment(new Date(2011, 1, 2, 3, 3, 9, 10)), 'minute'), false, 'minute is earlier'); - assert.equal(m.isSameOrBefore(moment(new Date(2011, 1, 2, 3, 4, 0, 0)), 'minute'), true, 'exact start of minute'); - assert.equal(m.isSameOrBefore(moment(new Date(2011, 1, 2, 3, 4, 59, 999)), 'minute'), true, 'exact end of minute'); - assert.equal(m.isSameOrBefore(moment(new Date(2011, 1, 2, 3, 5, 0, 0)), 'minute'), true, 'start of next minute'); - assert.equal(m.isSameOrBefore(moment(new Date(2011, 1, 2, 3, 3, 59, 999)), 'minute'), false, 'end of previous minute'); - assert.equal(m.isSameOrBefore(m, 'minute'), true, 'same moments are in the same minute'); - assert.equal(+m, +mCopy, 'isSameOrBefore minute should not change moment'); -}); - -test('is same or before second', function (assert) { - var m = moment(new Date(2011, 1, 2, 3, 4, 5, 6)), mCopy = moment(m); - assert.equal(m.isSameOrBefore(moment(new Date(2011, 1, 2, 3, 4, 5, 10)), 'second'), true, 'second match'); - assert.equal(m.isSameOrBefore(moment(new Date(2011, 1, 2, 3, 4, 5, 10)), 'seconds'), true, 'plural should work'); - assert.equal(m.isSameOrBefore(moment(new Date(2012, 1, 2, 3, 4, 5, 10)), 'second'), true, 'year is later'); - assert.equal(m.isSameOrBefore(moment(new Date(2010, 1, 2, 3, 4, 5, 10)), 'second'), false, 'year is earlier'); - assert.equal(m.isSameOrBefore(moment(new Date(2011, 2, 2, 3, 4, 5, 10)), 'second'), true, 'month is later'); - assert.equal(m.isSameOrBefore(moment(new Date(2010, 12, 2, 3, 4, 5, 10)), 'second'), false, 'month is earlier'); - assert.equal(m.isSameOrBefore(moment(new Date(2011, 1, 3, 3, 4, 5, 10)), 'second'), true, 'day is later'); - assert.equal(m.isSameOrBefore(moment(new Date(2011, 1, 1, 3, 4, 5, 10)), 'second'), false, 'day is earlier'); - assert.equal(m.isSameOrBefore(moment(new Date(2011, 1, 2, 4, 4, 5, 10)), 'second'), true, 'hour is later'); - assert.equal(m.isSameOrBefore(moment(new Date(2011, 1, 2, 2, 4, 5, 10)), 'second'), false, 'hour is earlier'); - assert.equal(m.isSameOrBefore(moment(new Date(2011, 1, 2, 3, 5, 5, 10)), 'second'), true, 'minute is later'); - assert.equal(m.isSameOrBefore(moment(new Date(2011, 1, 2, 3, 3, 5, 10)), 'second'), false, 'minute is earlier'); - assert.equal(m.isSameOrBefore(moment(new Date(2011, 1, 2, 3, 4, 6, 10)), 'second'), true, 'second is later'); - assert.equal(m.isSameOrBefore(moment(new Date(2011, 1, 2, 3, 4, 4, 10)), 'second'), false, 'second is earlier'); - assert.equal(m.isSameOrBefore(moment(new Date(2011, 1, 2, 3, 4, 5, 0)), 'second'), true, 'exact start of second'); - assert.equal(m.isSameOrBefore(moment(new Date(2011, 1, 2, 3, 4, 5, 999)), 'second'), true, 'exact end of second'); - assert.equal(m.isSameOrBefore(moment(new Date(2011, 1, 2, 3, 4, 6, 0)), 'second'), true, 'start of next second'); - assert.equal(m.isSameOrBefore(moment(new Date(2011, 1, 2, 3, 4, 4, 999)), 'second'), false, 'end of previous second'); - assert.equal(m.isSameOrBefore(m, 'second'), true, 'same moments are in the same second'); - assert.equal(+m, +mCopy, 'isSameOrBefore second should not change moment'); -}); - -test('is same or before millisecond', function (assert) { - var m = moment(new Date(2011, 3, 2, 3, 4, 5, 10)), mCopy = moment(m); - assert.equal(m.isSameOrBefore(moment(new Date(2011, 3, 2, 3, 4, 5, 10)), 'millisecond'), true, 'millisecond match'); - assert.equal(m.isSameOrBefore(moment(new Date(2011, 3, 2, 3, 4, 5, 10)), 'milliseconds'), true, 'plural should work'); - assert.equal(m.isSameOrBefore(moment(new Date(2012, 3, 2, 3, 4, 5, 10)), 'millisecond'), true, 'year is later'); - assert.equal(m.isSameOrBefore(moment(new Date(2010, 3, 2, 3, 4, 5, 10)), 'millisecond'), false, 'year is earlier'); - assert.equal(m.isSameOrBefore(moment(new Date(2011, 4, 2, 3, 4, 5, 10)), 'millisecond'), true, 'month is later'); - assert.equal(m.isSameOrBefore(moment(new Date(2011, 2, 2, 3, 4, 5, 10)), 'millisecond'), false, 'month is earlier'); - assert.equal(m.isSameOrBefore(moment(new Date(2011, 3, 3, 3, 4, 5, 10)), 'millisecond'), true, 'day is later'); - assert.equal(m.isSameOrBefore(moment(new Date(2011, 3, 1, 1, 4, 5, 10)), 'millisecond'), false, 'day is earlier'); - assert.equal(m.isSameOrBefore(moment(new Date(2011, 3, 2, 4, 4, 5, 10)), 'millisecond'), true, 'hour is later'); - assert.equal(m.isSameOrBefore(moment(new Date(2011, 3, 1, 4, 1, 5, 10)), 'millisecond'), false, 'hour is earlier'); - assert.equal(m.isSameOrBefore(moment(new Date(2011, 3, 2, 3, 5, 5, 10)), 'millisecond'), true, 'minute is later'); - assert.equal(m.isSameOrBefore(moment(new Date(2011, 3, 2, 3, 3, 5, 10)), 'millisecond'), false, 'minute is earlier'); - assert.equal(m.isSameOrBefore(moment(new Date(2011, 3, 2, 3, 4, 6, 10)), 'millisecond'), true, 'second is later'); - assert.equal(m.isSameOrBefore(moment(new Date(2011, 3, 2, 3, 4, 4, 5)), 'millisecond'), false, 'second is earlier'); - assert.equal(m.isSameOrBefore(moment(new Date(2011, 3, 2, 3, 4, 6, 11)), 'millisecond'), true, 'millisecond is later'); - assert.equal(m.isSameOrBefore(moment(new Date(2011, 3, 2, 3, 4, 4, 9)), 'millisecond'), false, 'millisecond is earlier'); - assert.equal(m.isSameOrBefore(m, 'millisecond'), true, 'same moments are in the same millisecond'); - assert.equal(+m, +mCopy, 'isSameOrBefore millisecond should not change moment'); -}); - -test('is same with utc offset moments', function (assert) { - assert.ok(moment.parseZone('2013-02-01T00:00:00-05:00').isSameOrBefore(moment('2013-02-01'), 'year'), 'zoned vs local moment'); - assert.ok(moment('2013-02-01').isSameOrBefore(moment('2013-02-01').utcOffset('-05:00'), 'year'), 'local vs zoned moment'); - assert.ok( - moment.parseZone('2013-02-01T00:00:00-05:00').isSameOrBefore(moment.parseZone('2013-02-01T00:00:00-06:30'), 'year'), - 'zoned vs (differently) zoned moment' - ); -}); - -test('is same with invalid moments', function (assert) { - var m = moment(), invalid = moment.invalid(); - assert.equal(invalid.isSameOrBefore(invalid), false, 'invalid moments are not considered equal'); - assert.equal(m.isSameOrBefore(invalid), false, 'valid moment is not before invalid moment'); - assert.equal(invalid.isSameOrBefore(m), false, 'invalid moment is not before valid moment'); - assert.equal(m.isSameOrBefore(invalid, 'year'), false, 'invalid moment year'); - assert.equal(m.isSameOrBefore(invalid, 'month'), false, 'invalid moment month'); - assert.equal(m.isSameOrBefore(invalid, 'day'), false, 'invalid moment day'); - assert.equal(m.isSameOrBefore(invalid, 'hour'), false, 'invalid moment hour'); - assert.equal(m.isSameOrBefore(invalid, 'minute'), false, 'invalid moment minute'); - assert.equal(m.isSameOrBefore(invalid, 'second'), false, 'invalid moment second'); - assert.equal(m.isSameOrBefore(invalid, 'milliseconds'), false, 'invalid moment milliseconds'); -}); - -}))); - - -;(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' - && typeof require === 'function' ? factory(require('../../moment')) : - typeof define === 'function' && define.amd ? define(['../../moment'], factory) : - factory(global.moment) -}(this, (function (moment) { 'use strict'; - -function each(array, callback) { - var i; - for (i = 0; i < array.length; i++) { - callback(array[i], i, array); - } -} - -function objectKeys(obj) { - if (Object.keys) { - return Object.keys(obj); - } else { - // IE8 - var res = [], i; - for (i in obj) { - if (obj.hasOwnProperty(i)) { - res.push(i); - } - } - return res; - } -} - -// Pick the first defined of two or three arguments. - -function defineCommonLocaleTests(locale, options) { - test('lenient day of month ordinal parsing', function (assert) { - var i, ordinalStr, testMoment; - for (i = 1; i <= 31; ++i) { - ordinalStr = moment([2014, 0, i]).format('YYYY MM Do'); - testMoment = moment(ordinalStr, 'YYYY MM Do'); - assert.equal(testMoment.year(), 2014, - 'lenient day of month ordinal parsing ' + i + ' year check'); - assert.equal(testMoment.month(), 0, - 'lenient day of month ordinal parsing ' + i + ' month check'); - assert.equal(testMoment.date(), i, - 'lenient day of month ordinal parsing ' + i + ' date check'); - } - }); - - test('lenient day of month ordinal parsing of number', function (assert) { - var i, testMoment; - for (i = 1; i <= 31; ++i) { - testMoment = moment('2014 01 ' + i, 'YYYY MM Do'); - assert.equal(testMoment.year(), 2014, - 'lenient day of month ordinal parsing of number ' + i + ' year check'); - assert.equal(testMoment.month(), 0, - 'lenient day of month ordinal parsing of number ' + i + ' month check'); - assert.equal(testMoment.date(), i, - 'lenient day of month ordinal parsing of number ' + i + ' date check'); - } - }); - - test('strict day of month ordinal parsing', function (assert) { - var i, ordinalStr, testMoment; - for (i = 1; i <= 31; ++i) { - ordinalStr = moment([2014, 0, i]).format('YYYY MM Do'); - testMoment = moment(ordinalStr, 'YYYY MM Do', true); - assert.ok(testMoment.isValid(), 'strict day of month ordinal parsing ' + i); - } - }); - - test('meridiem invariant', function (assert) { - var h, m, t1, t2; - for (h = 0; h < 24; ++h) { - for (m = 0; m < 60; m += 15) { - t1 = moment.utc([2000, 0, 1, h, m]); - t2 = moment.utc(t1.format('A h:mm'), 'A h:mm'); - assert.equal(t2.format('HH:mm'), t1.format('HH:mm'), - 'meridiem at ' + t1.format('HH:mm')); - } - } - }); - - test('date format correctness', function (assert) { - var data, tokens; - data = moment.localeData()._longDateFormat; - tokens = objectKeys(data); - each(tokens, function (srchToken) { - // Check each format string to make sure it does not contain any - // tokens that need to be expanded. - each(tokens, function (baseToken) { - // strip escaped sequences - var format = data[baseToken].replace(/(\[[^\]]*\])/g, ''); - assert.equal(false, !!~format.indexOf(srchToken), - 'contains ' + srchToken + ' in ' + baseToken); - }); - }); - }); - - test('month parsing correctness', function (assert) { - var i, m; - - if (locale === 'tr') { - // I can't fix it :( - expect(0); - return; - } - function tester(format) { - var r; - r = moment(m.format(format), format); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format); - r = moment(m.format(format).toLocaleUpperCase(), format); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' upper'); - r = moment(m.format(format).toLocaleLowerCase(), format); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' lower'); - - r = moment(m.format(format), format, true); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' strict'); - r = moment(m.format(format).toLocaleUpperCase(), format, true); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' upper strict'); - r = moment(m.format(format).toLocaleLowerCase(), format, true); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' lower strict'); - } - - for (i = 0; i < 12; ++i) { - m = moment([2015, i, 15, 18]); - tester('MMM'); - tester('MMM.'); - tester('MMMM'); - tester('MMMM.'); - } - }); - - test('weekday parsing correctness', function (assert) { - var i, m; - - if (locale === 'tr' || locale === 'az' || locale === 'ro') { - // tr, az: There is a lower-case letter (ı), that converted to - // upper then lower changes to i - // ro: there is the letter ț which behaves weird under IE8 - expect(0); - return; - } - function tester(format) { - var r, baseMsg = 'weekday ' + m.weekday() + ' fmt ' + format + ' ' + m.toISOString(); - r = moment(m.format(format), format); - assert.equal(r.weekday(), m.weekday(), baseMsg); - r = moment(m.format(format).toLocaleUpperCase(), format); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' upper'); - r = moment(m.format(format).toLocaleLowerCase(), format); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' lower'); - - r = moment(m.format(format), format, true); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' strict'); - r = moment(m.format(format).toLocaleUpperCase(), format, true); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' upper strict'); - r = moment(m.format(format).toLocaleLowerCase(), format, true); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' lower strict'); - } - - for (i = 0; i < 7; ++i) { - m = moment.utc([2015, 0, i + 1, 18]); - tester('dd'); - tester('ddd'); - tester('dddd'); - } - }); - - test('valid localeData', function (assert) { - assert.equal(moment().localeData().months().length, 12, 'months should return 12 months'); - assert.equal(moment().localeData().monthsShort().length, 12, 'monthsShort should return 12 months'); - assert.equal(moment().localeData().weekdays().length, 7, 'weekdays should return 7 days'); - assert.equal(moment().localeData().weekdaysShort().length, 7, 'weekdaysShort should return 7 days'); - assert.equal(moment().localeData().weekdaysMin().length, 7, 'monthsShort should return 7 days'); - }); -} - -function setupDeprecationHandler(test, moment$$1, scope) { - test._expectedDeprecations = null; - test._observedDeprecations = null; - test._oldSupress = moment$$1.suppressDeprecationWarnings; - moment$$1.suppressDeprecationWarnings = true; - test.expectedDeprecations = function () { - test._expectedDeprecations = arguments; - test._observedDeprecations = []; - }; - moment$$1.deprecationHandler = function (name, msg) { - var deprecationId = matchedDeprecation(name, msg, test._expectedDeprecations); - if (deprecationId === -1) { - throw new Error('Unexpected deprecation thrown name=' + - name + ' msg=' + msg); - } - test._observedDeprecations[deprecationId] = 1; - }; -} - -function teardownDeprecationHandler(test, moment$$1, scope) { - moment$$1.suppressDeprecationWarnings = test._oldSupress; - - if (test._expectedDeprecations != null) { - var missedDeprecations = []; - each(test._expectedDeprecations, function (deprecationPattern, id) { - if (test._observedDeprecations[id] !== 1) { - missedDeprecations.push(deprecationPattern); - } - }); - if (missedDeprecations.length !== 0) { - throw new Error('Expected deprecation warnings did not happen: ' + - missedDeprecations.join(' ')); - } - } -} - -function matchedDeprecation(name, msg, deprecations) { - if (deprecations == null) { - return -1; - } - for (var i = 0; i < deprecations.length; ++i) { - if (name != null && name === deprecations[i]) { - return i; - } - if (msg != null && msg.substring(0, deprecations[i].length) === deprecations[i]) { - return i; - } - } - return -1; -} - -/*global QUnit:false*/ - -var test = QUnit.test; - -var expect = QUnit.expect; - -function module$1 (name, lifecycle) { - QUnit.module(name, { - setup : function () { - moment.locale('en'); - moment.createFromInputFallback = function (config) { - throw new Error('input not handled by moment: ' + config._i); - }; - setupDeprecationHandler(test, moment, 'core'); - if (lifecycle && lifecycle.setup) { - lifecycle.setup(); - } - }, - teardown : function () { - teardownDeprecationHandler(test, moment, 'core'); - if (lifecycle && lifecycle.teardown) { - lifecycle.teardown(); - } - } - }); -} - -module$1('is valid'); - -test('array bad month', function (assert) { - assert.equal(moment([2010, -1]).isValid(), false, 'month -1 invalid'); - assert.equal(moment([2100, 12]).isValid(), false, 'month 12 invalid'); -}); - -test('array good month', function (assert) { - for (var i = 0; i < 12; i++) { - assert.equal(moment([2010, i]).isValid(), true, 'month ' + i); - assert.equal(moment.utc([2010, i]).isValid(), true, 'month ' + i); - } -}); - -test('array bad date', function (assert) { - var tests = [ - moment([2010, 0, 0]), - moment([2100, 0, 32]), - moment.utc([2010, 0, 0]), - moment.utc([2100, 0, 32]) - ], - i, m; - - for (i in tests) { - m = tests[i]; - assert.equal(m.isValid(), false); - } -}); - -test('h/hh with hour > 12', function (assert) { - assert.ok(moment('06/20/2014 11:51 PM', 'MM/DD/YYYY hh:mm A', true).isValid(), '11 for hh'); - assert.ok(moment('06/20/2014 11:51 AM', 'MM/DD/YYYY hh:mm A', true).isValid(), '11 for hh'); - assert.ok(moment('06/20/2014 23:51 PM', 'MM/DD/YYYY hh:mm A').isValid(), 'non-strict validity 23 for hh'); - assert.ok(moment('06/20/2014 23:51 PM', 'MM/DD/YYYY hh:mm A').parsingFlags().bigHour, 'non-strict bigHour 23 for hh'); - assert.ok(!moment('06/20/2014 23:51 PM', 'MM/DD/YYYY hh:mm A', true).isValid(), 'validity 23 for hh'); - assert.ok(moment('06/20/2014 23:51 PM', 'MM/DD/YYYY hh:mm A', true).parsingFlags().bigHour, 'bigHour 23 for hh'); -}); - -test('array bad date leap year', function (assert) { - assert.equal(moment([2010, 1, 29]).isValid(), false, '2010 feb 29'); - assert.equal(moment([2100, 1, 29]).isValid(), false, '2100 feb 29'); - assert.equal(moment([2008, 1, 30]).isValid(), false, '2008 feb 30'); - assert.equal(moment([2000, 1, 30]).isValid(), false, '2000 feb 30'); - - assert.equal(moment.utc([2010, 1, 29]).isValid(), false, 'utc 2010 feb 29'); - assert.equal(moment.utc([2100, 1, 29]).isValid(), false, 'utc 2100 feb 29'); - assert.equal(moment.utc([2008, 1, 30]).isValid(), false, 'utc 2008 feb 30'); - assert.equal(moment.utc([2000, 1, 30]).isValid(), false, 'utc 2000 feb 30'); -}); - -test('string + formats bad date', function (assert) { - assert.equal(moment('2020-00-00', []).isValid(), false, 'invalid on empty array'); - assert.equal(moment('2020-00-00', ['YYYY-MM-DD', 'DD-MM-YYYY']).isValid(), false, 'invalid on all in array'); - assert.equal(moment('2020-00-00', ['DD-MM-YYYY', 'YYYY-MM-DD']).isValid(), false, 'invalid on all in array'); - assert.equal(moment('2020-01-01', ['YYYY-MM-DD', 'DD-MM-YYYY']).isValid(), true, 'valid on first'); - assert.equal(moment('2020-01-01', ['DD-MM-YYYY', 'YYYY-MM-DD']).isValid(), true, 'valid on last'); - assert.equal(moment('2020-01-01', ['YYYY-MM-DD', 'YYYY-DD-MM']).isValid(), true, 'valid on both'); - assert.equal(moment('2020-13-01', ['YYYY-MM-DD', 'YYYY-DD-MM']).isValid(), true, 'valid on last'); - - assert.equal(moment('12-13-2012', ['DD-MM-YYYY', 'YYYY-MM-DD']).isValid(), false, 'month rollover'); - assert.equal(moment('12-13-2012', ['DD-MM-YYYY', 'DD-MM-YYYY']).isValid(), false, 'month rollover'); - assert.equal(moment('38-12-2012', ['DD-MM-YYYY']).isValid(), false, 'day rollover'); -}); - -test('string nonsensical with format', function (assert) { - assert.equal(moment('fail', 'MM-DD-YYYY').isValid(), false, 'string \'fail\' with format \'MM-DD-YYYY\''); - assert.equal(moment('xx-xx-2001', 'DD-MM-YYY').isValid(), true, 'string \'xx-xx-2001\' with format \'MM-DD-YYYY\''); -}); - -test('string with bad month name', function (assert) { - assert.equal(moment('01-Nam-2012', 'DD-MMM-YYYY').isValid(), false, '\'Nam\' is an invalid month'); - assert.equal(moment('01-Aug-2012', 'DD-MMM-YYYY').isValid(), true, '\'Aug\' is a valid month'); -}); - -test('string with spaceless format', function (assert) { - assert.equal(moment('10Sep2001', 'DDMMMYYYY').isValid(), true, 'Parsing 10Sep2001 should result in a valid date'); -}); - -test('invalid string iso 8601', function (assert) { - var tests = [ - '2010-00-00', - '2010-01-00', - '2010-01-40', - '2010-01-01T24:01', // 24:00:00 is actually valid - '2010-01-01T23:60', - '2010-01-01T23:59:60' - ], i; - - for (i = 0; i < tests.length; i++) { - assert.equal(moment(tests[i], moment.ISO_8601).isValid(), false, tests[i] + ' should be invalid'); - assert.equal(moment.utc(tests[i], moment.ISO_8601).isValid(), false, tests[i] + ' should be invalid'); - } -}); - -test('invalid string iso 8601 + timezone', function (assert) { - var tests = [ - '2010-00-00T+00:00', - '2010-01-00T+00:00', - '2010-01-40T+00:00', - '2010-01-40T24:01+00:00', - '2010-01-40T23:60+00:00', - '2010-01-40T23:59:60+00:00', - '2010-01-40T23:59:59.9999+00:00', - '2010-01-40T23:59:59,9999+00:00' - ], i; - - for (i = 0; i < tests.length; i++) { - assert.equal(moment(tests[i], moment.ISO_8601).isValid(), false, tests[i] + ' should be invalid'); - assert.equal(moment.utc(tests[i], moment.ISO_8601).isValid(), false, tests[i] + ' should be invalid'); - } -}); - -test('valid string iso 8601 - not strict', function (assert) { - var tests = [ - '2010-01-30 00:00:00,000Z', - '20100101', - '20100130', - '20100130T23+00:00', - '20100130T2359+0000', - '20100130T235959+0000', - '20100130T235959,999+0000', - '20100130T235959,999-0700', - '20100130T000000,000+0700', - '20100130 000000,000Z' - ]; - - for (var i = 0; i < tests.length; i++) { - assert.equal(moment(tests[i]).isValid(), true, tests[i] + ' should be valid in normal'); - assert.equal(moment.utc(tests[i]).isValid(), true, tests[i] + ' should be valid in normal'); - } -}); - -test('valid string iso 8601 + timezone', function (assert) { - var tests = [ - '2010-01-01', - '2010-01-30', - '2010-01-30T23+00:00', - '2010-01-30T23:59+00:00', - '2010-01-30T23:59:59+00:00', - '2010-01-30T23:59:59.999+00:00', - '2010-01-30T23:59:59.999-07:00', - '2010-01-30T00:00:00.000+07:00', - '2010-01-30T23:59:59.999-07', - '2010-01-30T00:00:00.000+07', - '2010-01-30 00:00:00.000Z' - ], i; - - for (i = 0; i < tests.length; i++) { - assert.equal(moment(tests[i]).isValid(), true, tests[i] + ' should be valid in normal'); - assert.equal(moment.utc(tests[i]).isValid(), true, tests[i] + ' should be valid in normal'); - assert.equal(moment(tests[i], moment.ISO_8601, true).isValid(), true, tests[i] + ' should be valid in strict'); - assert.equal(moment.utc(tests[i], moment.ISO_8601, true).isValid(), true, tests[i] + ' should be valid in strict'); - } -}); - -test('invalidAt', function (assert) { - assert.equal(moment([2000, 12]).invalidAt(), 1, 'month 12 is invalid: 0-11'); - assert.equal(moment([2000, 1, 30]).invalidAt(), 2, '30 is not a valid february day'); - assert.equal(moment([2000, 1, 29, 25]).invalidAt(), 3, '25 is invalid hour'); - assert.equal(moment([2000, 1, 29, 24, 1]).invalidAt(), 3, '24:01 is invalid hour'); - assert.equal(moment([2000, 1, 29, 23, 60]).invalidAt(), 4, '60 is invalid minute'); - assert.equal(moment([2000, 1, 29, 23, 59, 60]).invalidAt(), 5, '60 is invalid second'); - assert.equal(moment([2000, 1, 29, 23, 59, 59, 1000]).invalidAt(), 6, '1000 is invalid millisecond'); - assert.equal(moment([2000, 1, 29, 23, 59, 59, 999]).invalidAt(), -1, '-1 if everything is fine'); -}); - -test('valid Unix timestamp', function (assert) { - assert.equal(moment(1371065286, 'X').isValid(), true, 'number integer'); - assert.equal(moment(1379066897.0, 'X').isValid(), true, 'number whole 1dp'); - assert.equal(moment(1379066897.7, 'X').isValid(), true, 'number 1dp'); - assert.equal(moment(1379066897.00, 'X').isValid(), true, 'number whole 2dp'); - assert.equal(moment(1379066897.07, 'X').isValid(), true, 'number 2dp'); - assert.equal(moment(1379066897.17, 'X').isValid(), true, 'number 2dp'); - assert.equal(moment(1379066897.000, 'X').isValid(), true, 'number whole 3dp'); - assert.equal(moment(1379066897.007, 'X').isValid(), true, 'number 3dp'); - assert.equal(moment(1379066897.017, 'X').isValid(), true, 'number 3dp'); - assert.equal(moment(1379066897.157, 'X').isValid(), true, 'number 3dp'); - assert.equal(moment('1371065286', 'X').isValid(), true, 'string integer'); - assert.equal(moment('1379066897.', 'X').isValid(), true, 'string trailing .'); - assert.equal(moment('1379066897.0', 'X').isValid(), true, 'string whole 1dp'); - assert.equal(moment('1379066897.7', 'X').isValid(), true, 'string 1dp'); - assert.equal(moment('1379066897.00', 'X').isValid(), true, 'string whole 2dp'); - assert.equal(moment('1379066897.07', 'X').isValid(), true, 'string 2dp'); - assert.equal(moment('1379066897.17', 'X').isValid(), true, 'string 2dp'); - assert.equal(moment('1379066897.000', 'X').isValid(), true, 'string whole 3dp'); - assert.equal(moment('1379066897.007', 'X').isValid(), true, 'string 3dp'); - assert.equal(moment('1379066897.017', 'X').isValid(), true, 'string 3dp'); - assert.equal(moment('1379066897.157', 'X').isValid(), true, 'string 3dp'); -}); - -test('invalid Unix timestamp', function (assert) { - assert.equal(moment(undefined, 'X').isValid(), false, 'undefined'); - assert.equal(moment('undefined', 'X').isValid(), false, 'string undefined'); - try { - assert.equal(moment(null, 'X').isValid(), false, 'null'); - } catch (e) { - assert.ok(true, 'null'); - } - - assert.equal(moment('null', 'X').isValid(), false, 'string null'); - assert.equal(moment([], 'X').isValid(), false, 'array'); - assert.equal(moment('{}', 'X').isValid(), false, 'object'); - try { - assert.equal(moment('', 'X').isValid(), false, 'string empty'); - } catch (e) { - assert.ok(true, 'string empty'); - } - - assert.equal(moment(' ', 'X').isValid(), false, 'string space'); -}); - -test('valid Unix offset milliseconds', function (assert) { - assert.equal(moment(1234567890123, 'x').isValid(), true, 'number integer'); - assert.equal(moment('1234567890123', 'x').isValid(), true, 'string integer'); -}); - -test('invalid Unix offset milliseconds', function (assert) { - assert.equal(moment(undefined, 'x').isValid(), false, 'undefined'); - assert.equal(moment('undefined', 'x').isValid(), false, 'string undefined'); - try { - assert.equal(moment(null, 'x').isValid(), false, 'null'); - } catch (e) { - assert.ok(true, 'null'); - } - - assert.equal(moment('null', 'x').isValid(), false, 'string null'); - assert.equal(moment([], 'x').isValid(), false, 'array'); - assert.equal(moment('{}', 'x').isValid(), false, 'object'); - try { - assert.equal(moment('', 'x').isValid(), false, 'string empty'); - } catch (e) { - assert.ok(true, 'string empty'); - } - - assert.equal(moment(' ', 'x').isValid(), false, 'string space'); -}); - -test('empty', function (assert) { - assert.equal(moment(null).isValid(), false, 'null'); - assert.equal(moment('').isValid(), false, 'empty string'); - assert.equal(moment(null, 'YYYY').isValid(), false, 'format + null'); - assert.equal(moment('', 'YYYY').isValid(), false, 'format + empty string'); - assert.equal(moment(' ', 'YYYY').isValid(), false, 'format + empty when trimmed'); -}); - -test('days of the year', function (assert) { - assert.equal(moment('2010 300', 'YYYY DDDD').isValid(), true, 'day 300 of year valid'); - assert.equal(moment('2010 365', 'YYYY DDDD').isValid(), true, 'day 365 of year valid'); - assert.equal(moment('2010 366', 'YYYY DDDD').isValid(), false, 'day 366 of year invalid'); - assert.equal(moment('2012 365', 'YYYY DDDD').isValid(), true, 'day 365 of leap year valid'); - assert.equal(moment('2012 366', 'YYYY DDDD').isValid(), true, 'day 366 of leap year valid'); - assert.equal(moment('2012 367', 'YYYY DDDD').isValid(), false, 'day 367 of leap year invalid'); -}); - -test('24:00:00.000 is valid', function (assert) { - assert.equal(moment('2014-01-01 24', 'YYYY-MM-DD HH').isValid(), true, '24 is valid'); - assert.equal(moment('2014-01-01 24:00', 'YYYY-MM-DD HH:mm').isValid(), true, '24:00 is valid'); - assert.equal(moment('2014-01-01 24:01', 'YYYY-MM-DD HH:mm').isValid(), false, '24:01 is not valid'); -}); - -test('oddball permissiveness', function (assert) { - // https://github.com/moment/moment/issues/1128 - assert.ok(moment('2010-10-3199', ['MM/DD/YYYY', 'MM-DD-YYYY', 'YYYY-MM-DD']).isValid()); - - // https://github.com/moment/moment/issues/1122 - assert.ok(moment('3:25', ['h:mma', 'hh:mma', 'H:mm', 'HH:mm']).isValid()); -}); - -test('0 hour is invalid in strict', function (assert) { - assert.equal(moment('00:01', 'hh:mm', true).isValid(), false, '00 hour is invalid in strict'); - assert.equal(moment('00:01', 'hh:mm').isValid(), true, '00 hour is valid in normal'); - assert.equal(moment('0:01', 'h:mm', true).isValid(), false, '0 hour is invalid in strict'); - assert.equal(moment('0:01', 'h:mm').isValid(), true, '0 hour is valid in normal'); -}); - -}))); - - -;(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' - && typeof require === 'function' ? factory(require('../../moment')) : - typeof define === 'function' && define.amd ? define(['../../moment'], factory) : - factory(global.moment) -}(this, (function (moment) { 'use strict'; - -function each(array, callback) { - var i; - for (i = 0; i < array.length; i++) { - callback(array[i], i, array); - } -} - -function objectKeys(obj) { - if (Object.keys) { - return Object.keys(obj); - } else { - // IE8 - var res = [], i; - for (i in obj) { - if (obj.hasOwnProperty(i)) { - res.push(i); - } - } - return res; - } -} - -// Pick the first defined of two or three arguments. - -function defineCommonLocaleTests(locale, options) { - test('lenient day of month ordinal parsing', function (assert) { - var i, ordinalStr, testMoment; - for (i = 1; i <= 31; ++i) { - ordinalStr = moment([2014, 0, i]).format('YYYY MM Do'); - testMoment = moment(ordinalStr, 'YYYY MM Do'); - assert.equal(testMoment.year(), 2014, - 'lenient day of month ordinal parsing ' + i + ' year check'); - assert.equal(testMoment.month(), 0, - 'lenient day of month ordinal parsing ' + i + ' month check'); - assert.equal(testMoment.date(), i, - 'lenient day of month ordinal parsing ' + i + ' date check'); - } - }); - - test('lenient day of month ordinal parsing of number', function (assert) { - var i, testMoment; - for (i = 1; i <= 31; ++i) { - testMoment = moment('2014 01 ' + i, 'YYYY MM Do'); - assert.equal(testMoment.year(), 2014, - 'lenient day of month ordinal parsing of number ' + i + ' year check'); - assert.equal(testMoment.month(), 0, - 'lenient day of month ordinal parsing of number ' + i + ' month check'); - assert.equal(testMoment.date(), i, - 'lenient day of month ordinal parsing of number ' + i + ' date check'); - } - }); - - test('strict day of month ordinal parsing', function (assert) { - var i, ordinalStr, testMoment; - for (i = 1; i <= 31; ++i) { - ordinalStr = moment([2014, 0, i]).format('YYYY MM Do'); - testMoment = moment(ordinalStr, 'YYYY MM Do', true); - assert.ok(testMoment.isValid(), 'strict day of month ordinal parsing ' + i); - } - }); - - test('meridiem invariant', function (assert) { - var h, m, t1, t2; - for (h = 0; h < 24; ++h) { - for (m = 0; m < 60; m += 15) { - t1 = moment.utc([2000, 0, 1, h, m]); - t2 = moment.utc(t1.format('A h:mm'), 'A h:mm'); - assert.equal(t2.format('HH:mm'), t1.format('HH:mm'), - 'meridiem at ' + t1.format('HH:mm')); - } - } - }); - - test('date format correctness', function (assert) { - var data, tokens; - data = moment.localeData()._longDateFormat; - tokens = objectKeys(data); - each(tokens, function (srchToken) { - // Check each format string to make sure it does not contain any - // tokens that need to be expanded. - each(tokens, function (baseToken) { - // strip escaped sequences - var format = data[baseToken].replace(/(\[[^\]]*\])/g, ''); - assert.equal(false, !!~format.indexOf(srchToken), - 'contains ' + srchToken + ' in ' + baseToken); - }); - }); - }); - - test('month parsing correctness', function (assert) { - var i, m; - - if (locale === 'tr') { - // I can't fix it :( - expect(0); - return; - } - function tester(format) { - var r; - r = moment(m.format(format), format); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format); - r = moment(m.format(format).toLocaleUpperCase(), format); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' upper'); - r = moment(m.format(format).toLocaleLowerCase(), format); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' lower'); - - r = moment(m.format(format), format, true); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' strict'); - r = moment(m.format(format).toLocaleUpperCase(), format, true); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' upper strict'); - r = moment(m.format(format).toLocaleLowerCase(), format, true); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' lower strict'); - } - - for (i = 0; i < 12; ++i) { - m = moment([2015, i, 15, 18]); - tester('MMM'); - tester('MMM.'); - tester('MMMM'); - tester('MMMM.'); - } - }); - - test('weekday parsing correctness', function (assert) { - var i, m; - - if (locale === 'tr' || locale === 'az' || locale === 'ro') { - // tr, az: There is a lower-case letter (ı), that converted to - // upper then lower changes to i - // ro: there is the letter ț which behaves weird under IE8 - expect(0); - return; - } - function tester(format) { - var r, baseMsg = 'weekday ' + m.weekday() + ' fmt ' + format + ' ' + m.toISOString(); - r = moment(m.format(format), format); - assert.equal(r.weekday(), m.weekday(), baseMsg); - r = moment(m.format(format).toLocaleUpperCase(), format); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' upper'); - r = moment(m.format(format).toLocaleLowerCase(), format); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' lower'); - - r = moment(m.format(format), format, true); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' strict'); - r = moment(m.format(format).toLocaleUpperCase(), format, true); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' upper strict'); - r = moment(m.format(format).toLocaleLowerCase(), format, true); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' lower strict'); - } - - for (i = 0; i < 7; ++i) { - m = moment.utc([2015, 0, i + 1, 18]); - tester('dd'); - tester('ddd'); - tester('dddd'); - } - }); - - test('valid localeData', function (assert) { - assert.equal(moment().localeData().months().length, 12, 'months should return 12 months'); - assert.equal(moment().localeData().monthsShort().length, 12, 'monthsShort should return 12 months'); - assert.equal(moment().localeData().weekdays().length, 7, 'weekdays should return 7 days'); - assert.equal(moment().localeData().weekdaysShort().length, 7, 'weekdaysShort should return 7 days'); - assert.equal(moment().localeData().weekdaysMin().length, 7, 'monthsShort should return 7 days'); - }); -} - -function setupDeprecationHandler(test, moment$$1, scope) { - test._expectedDeprecations = null; - test._observedDeprecations = null; - test._oldSupress = moment$$1.suppressDeprecationWarnings; - moment$$1.suppressDeprecationWarnings = true; - test.expectedDeprecations = function () { - test._expectedDeprecations = arguments; - test._observedDeprecations = []; - }; - moment$$1.deprecationHandler = function (name, msg) { - var deprecationId = matchedDeprecation(name, msg, test._expectedDeprecations); - if (deprecationId === -1) { - throw new Error('Unexpected deprecation thrown name=' + - name + ' msg=' + msg); - } - test._observedDeprecations[deprecationId] = 1; - }; -} - -function teardownDeprecationHandler(test, moment$$1, scope) { - moment$$1.suppressDeprecationWarnings = test._oldSupress; - - if (test._expectedDeprecations != null) { - var missedDeprecations = []; - each(test._expectedDeprecations, function (deprecationPattern, id) { - if (test._observedDeprecations[id] !== 1) { - missedDeprecations.push(deprecationPattern); - } - }); - if (missedDeprecations.length !== 0) { - throw new Error('Expected deprecation warnings did not happen: ' + - missedDeprecations.join(' ')); - } - } -} - -function matchedDeprecation(name, msg, deprecations) { - if (deprecations == null) { - return -1; - } - for (var i = 0; i < deprecations.length; ++i) { - if (name != null && name === deprecations[i]) { - return i; - } - if (msg != null && msg.substring(0, deprecations[i].length) === deprecations[i]) { - return i; - } - } - return -1; -} - -/*global QUnit:false*/ - -var test = QUnit.test; - -var expect = QUnit.expect; - -function module$1 (name, lifecycle) { - QUnit.module(name, { - setup : function () { - moment.locale('en'); - moment.createFromInputFallback = function (config) { - throw new Error('input not handled by moment: ' + config._i); - }; - setupDeprecationHandler(test, moment, 'core'); - if (lifecycle && lifecycle.setup) { - lifecycle.setup(); - } - }, - teardown : function () { - teardownDeprecationHandler(test, moment, 'core'); - if (lifecycle && lifecycle.teardown) { - lifecycle.teardown(); - } - } - }); -} - -module$1('leap year'); - -test('leap year', function (assert) { - assert.equal(moment([2010, 0, 1]).isLeapYear(), false, '2010'); - assert.equal(moment([2100, 0, 1]).isLeapYear(), false, '2100'); - assert.equal(moment([2008, 0, 1]).isLeapYear(), true, '2008'); - assert.equal(moment([2000, 0, 1]).isLeapYear(), true, '2000'); -}); - -}))); - - -;(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' - && typeof require === 'function' ? factory(require('../../moment')) : - typeof define === 'function' && define.amd ? define(['../../moment'], factory) : - factory(global.moment) -}(this, (function (moment) { 'use strict'; - -function each(array, callback) { - var i; - for (i = 0; i < array.length; i++) { - callback(array[i], i, array); - } -} - -function objectKeys(obj) { - if (Object.keys) { - return Object.keys(obj); - } else { - // IE8 - var res = [], i; - for (i in obj) { - if (obj.hasOwnProperty(i)) { - res.push(i); - } - } - return res; - } -} - -// Pick the first defined of two or three arguments. - -function defineCommonLocaleTests(locale, options) { - test('lenient day of month ordinal parsing', function (assert) { - var i, ordinalStr, testMoment; - for (i = 1; i <= 31; ++i) { - ordinalStr = moment([2014, 0, i]).format('YYYY MM Do'); - testMoment = moment(ordinalStr, 'YYYY MM Do'); - assert.equal(testMoment.year(), 2014, - 'lenient day of month ordinal parsing ' + i + ' year check'); - assert.equal(testMoment.month(), 0, - 'lenient day of month ordinal parsing ' + i + ' month check'); - assert.equal(testMoment.date(), i, - 'lenient day of month ordinal parsing ' + i + ' date check'); - } - }); - - test('lenient day of month ordinal parsing of number', function (assert) { - var i, testMoment; - for (i = 1; i <= 31; ++i) { - testMoment = moment('2014 01 ' + i, 'YYYY MM Do'); - assert.equal(testMoment.year(), 2014, - 'lenient day of month ordinal parsing of number ' + i + ' year check'); - assert.equal(testMoment.month(), 0, - 'lenient day of month ordinal parsing of number ' + i + ' month check'); - assert.equal(testMoment.date(), i, - 'lenient day of month ordinal parsing of number ' + i + ' date check'); - } - }); - - test('strict day of month ordinal parsing', function (assert) { - var i, ordinalStr, testMoment; - for (i = 1; i <= 31; ++i) { - ordinalStr = moment([2014, 0, i]).format('YYYY MM Do'); - testMoment = moment(ordinalStr, 'YYYY MM Do', true); - assert.ok(testMoment.isValid(), 'strict day of month ordinal parsing ' + i); - } - }); - - test('meridiem invariant', function (assert) { - var h, m, t1, t2; - for (h = 0; h < 24; ++h) { - for (m = 0; m < 60; m += 15) { - t1 = moment.utc([2000, 0, 1, h, m]); - t2 = moment.utc(t1.format('A h:mm'), 'A h:mm'); - assert.equal(t2.format('HH:mm'), t1.format('HH:mm'), - 'meridiem at ' + t1.format('HH:mm')); - } - } - }); - - test('date format correctness', function (assert) { - var data, tokens; - data = moment.localeData()._longDateFormat; - tokens = objectKeys(data); - each(tokens, function (srchToken) { - // Check each format string to make sure it does not contain any - // tokens that need to be expanded. - each(tokens, function (baseToken) { - // strip escaped sequences - var format = data[baseToken].replace(/(\[[^\]]*\])/g, ''); - assert.equal(false, !!~format.indexOf(srchToken), - 'contains ' + srchToken + ' in ' + baseToken); - }); - }); - }); - - test('month parsing correctness', function (assert) { - var i, m; - - if (locale === 'tr') { - // I can't fix it :( - expect(0); - return; - } - function tester(format) { - var r; - r = moment(m.format(format), format); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format); - r = moment(m.format(format).toLocaleUpperCase(), format); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' upper'); - r = moment(m.format(format).toLocaleLowerCase(), format); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' lower'); - - r = moment(m.format(format), format, true); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' strict'); - r = moment(m.format(format).toLocaleUpperCase(), format, true); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' upper strict'); - r = moment(m.format(format).toLocaleLowerCase(), format, true); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' lower strict'); - } - - for (i = 0; i < 12; ++i) { - m = moment([2015, i, 15, 18]); - tester('MMM'); - tester('MMM.'); - tester('MMMM'); - tester('MMMM.'); - } - }); - - test('weekday parsing correctness', function (assert) { - var i, m; - - if (locale === 'tr' || locale === 'az' || locale === 'ro') { - // tr, az: There is a lower-case letter (ı), that converted to - // upper then lower changes to i - // ro: there is the letter ț which behaves weird under IE8 - expect(0); - return; - } - function tester(format) { - var r, baseMsg = 'weekday ' + m.weekday() + ' fmt ' + format + ' ' + m.toISOString(); - r = moment(m.format(format), format); - assert.equal(r.weekday(), m.weekday(), baseMsg); - r = moment(m.format(format).toLocaleUpperCase(), format); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' upper'); - r = moment(m.format(format).toLocaleLowerCase(), format); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' lower'); - - r = moment(m.format(format), format, true); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' strict'); - r = moment(m.format(format).toLocaleUpperCase(), format, true); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' upper strict'); - r = moment(m.format(format).toLocaleLowerCase(), format, true); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' lower strict'); - } - - for (i = 0; i < 7; ++i) { - m = moment.utc([2015, 0, i + 1, 18]); - tester('dd'); - tester('ddd'); - tester('dddd'); - } - }); - - test('valid localeData', function (assert) { - assert.equal(moment().localeData().months().length, 12, 'months should return 12 months'); - assert.equal(moment().localeData().monthsShort().length, 12, 'monthsShort should return 12 months'); - assert.equal(moment().localeData().weekdays().length, 7, 'weekdays should return 7 days'); - assert.equal(moment().localeData().weekdaysShort().length, 7, 'weekdaysShort should return 7 days'); - assert.equal(moment().localeData().weekdaysMin().length, 7, 'monthsShort should return 7 days'); - }); -} - -function setupDeprecationHandler(test, moment$$1, scope) { - test._expectedDeprecations = null; - test._observedDeprecations = null; - test._oldSupress = moment$$1.suppressDeprecationWarnings; - moment$$1.suppressDeprecationWarnings = true; - test.expectedDeprecations = function () { - test._expectedDeprecations = arguments; - test._observedDeprecations = []; - }; - moment$$1.deprecationHandler = function (name, msg) { - var deprecationId = matchedDeprecation(name, msg, test._expectedDeprecations); - if (deprecationId === -1) { - throw new Error('Unexpected deprecation thrown name=' + - name + ' msg=' + msg); - } - test._observedDeprecations[deprecationId] = 1; - }; -} - -function teardownDeprecationHandler(test, moment$$1, scope) { - moment$$1.suppressDeprecationWarnings = test._oldSupress; - - if (test._expectedDeprecations != null) { - var missedDeprecations = []; - each(test._expectedDeprecations, function (deprecationPattern, id) { - if (test._observedDeprecations[id] !== 1) { - missedDeprecations.push(deprecationPattern); - } - }); - if (missedDeprecations.length !== 0) { - throw new Error('Expected deprecation warnings did not happen: ' + - missedDeprecations.join(' ')); - } - } -} - -function matchedDeprecation(name, msg, deprecations) { - if (deprecations == null) { - return -1; - } - for (var i = 0; i < deprecations.length; ++i) { - if (name != null && name === deprecations[i]) { - return i; - } - if (msg != null && msg.substring(0, deprecations[i].length) === deprecations[i]) { - return i; - } - } - return -1; -} - -/*global QUnit:false*/ - -var test = QUnit.test; - -var expect = QUnit.expect; - -function module$1 (name, lifecycle) { - QUnit.module(name, { - setup : function () { - moment.locale('en'); - moment.createFromInputFallback = function (config) { - throw new Error('input not handled by moment: ' + config._i); - }; - setupDeprecationHandler(test, moment, 'core'); - if (lifecycle && lifecycle.setup) { - lifecycle.setup(); - } - }, - teardown : function () { - teardownDeprecationHandler(test, moment, 'core'); - if (lifecycle && lifecycle.teardown) { - lifecycle.teardown(); - } - } - }); -} - -module$1('listers'); - -test('default', function (assert) { - assert.deepEqual(moment.months(), ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December']); - assert.deepEqual(moment.monthsShort(), ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec']); - assert.deepEqual(moment.weekdays(), ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday']); - assert.deepEqual(moment.weekdaysShort(), ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat']); - assert.deepEqual(moment.weekdaysMin(), ['Su', 'Mo', 'Tu', 'We', 'Th', 'Fr', 'Sa']); -}); - -test('index', function (assert) { - assert.equal(moment.months(0), 'January'); - assert.equal(moment.months(2), 'March'); - assert.equal(moment.monthsShort(0), 'Jan'); - assert.equal(moment.monthsShort(2), 'Mar'); - assert.equal(moment.weekdays(0), 'Sunday'); - assert.equal(moment.weekdays(2), 'Tuesday'); - assert.equal(moment.weekdaysShort(0), 'Sun'); - assert.equal(moment.weekdaysShort(2), 'Tue'); - assert.equal(moment.weekdaysMin(0), 'Su'); - assert.equal(moment.weekdaysMin(2), 'Tu'); -}); - -test('localized', function (assert) { - var months = 'one_two_three_four_five_six_seven_eight_nine_ten_eleven_twelve'.split('_'), - monthsShort = 'on_tw_th_fo_fi_si_se_ei_ni_te_el_tw'.split('_'), - weekdays = 'one_two_three_four_five_six_seven'.split('_'), - weekdaysShort = 'on_tw_th_fo_fi_si_se'.split('_'), - weekdaysMin = '1_2_3_4_5_6_7'.split('_'), - weekdaysLocale = 'four_five_six_seven_one_two_three'.split('_'), - weekdaysShortLocale = 'fo_fi_si_se_on_tw_th'.split('_'), - weekdaysMinLocale = '4_5_6_7_1_2_3'.split('_'), - week = { - dow : 3, - doy : 6 - }; - - moment.locale('numerologists', { - months : months, - monthsShort : monthsShort, - weekdays : weekdays, - weekdaysShort: weekdaysShort, - weekdaysMin: weekdaysMin, - week : week - }); - - assert.deepEqual(moment.months(), months); - assert.deepEqual(moment.monthsShort(), monthsShort); - assert.deepEqual(moment.weekdays(), weekdays); - assert.deepEqual(moment.weekdaysShort(), weekdaysShort); - assert.deepEqual(moment.weekdaysMin(), weekdaysMin); - - assert.equal(moment.months(0), 'one'); - assert.equal(moment.monthsShort(0), 'on'); - assert.equal(moment.weekdays(0), 'one'); - assert.equal(moment.weekdaysShort(0), 'on'); - assert.equal(moment.weekdaysMin(0), '1'); - - assert.equal(moment.months(2), 'three'); - assert.equal(moment.monthsShort(2), 'th'); - assert.equal(moment.weekdays(2), 'three'); - assert.equal(moment.weekdaysShort(2), 'th'); - assert.equal(moment.weekdaysMin(2), '3'); - - assert.deepEqual(moment.weekdays(true), weekdaysLocale); - assert.deepEqual(moment.weekdaysShort(true), weekdaysShortLocale); - assert.deepEqual(moment.weekdaysMin(true), weekdaysMinLocale); - - assert.equal(moment.weekdays(true, 0), 'four'); - assert.equal(moment.weekdaysShort(true, 0), 'fo'); - assert.equal(moment.weekdaysMin(true, 0), '4'); - - assert.equal(moment.weekdays(false, 2), 'three'); - assert.equal(moment.weekdaysShort(false, 2), 'th'); - assert.equal(moment.weekdaysMin(false, 2), '3'); -}); - -test('with functions', function (assert) { - var monthsShort = 'one_two_three_four_five_six_seven_eight_nine_ten_eleven_twelve'.split('_'), - monthsShortWeird = 'onesy_twosy_threesy_foursy_fivesy_sixsy_sevensy_eightsy_ninesy_tensy_elevensy_twelvesy'.split('_'); - - moment.locale('difficult', { - - monthsShort: function (m, format) { - var arr = format.match(/-MMM-/) ? monthsShortWeird : monthsShort; - return arr[m.month()]; - } - }); - - assert.deepEqual(moment.monthsShort(), monthsShort); - assert.deepEqual(moment.monthsShort('MMM'), monthsShort); - assert.deepEqual(moment.monthsShort('-MMM-'), monthsShortWeird); - - assert.deepEqual(moment.monthsShort('MMM', 2), 'three'); - assert.deepEqual(moment.monthsShort('-MMM-', 2), 'threesy'); - assert.deepEqual(moment.monthsShort(2), 'three'); -}); - -test('with locale data', function (assert) { - var months = 'one_two_three_four_five_six_seven_eight_nine_ten_eleven_twelve'.split('_'), - monthsShort = 'on_tw_th_fo_fi_si_se_ei_ni_te_el_tw'.split('_'), - weekdays = 'one_two_three_four_five_six_seven'.split('_'), - weekdaysShort = 'on_tw_th_fo_fi_si_se'.split('_'), - weekdaysMin = '1_2_3_4_5_6_7'.split('_'), - weekdaysLocale = 'four_five_six_seven_one_two_three'.split('_'), - weekdaysShortLocale = 'fo_fi_si_se_on_tw_th'.split('_'), - weekdaysMinLocale = '4_5_6_7_1_2_3'.split('_'), - week = { - dow : 3, - doy : 6 - }; - - var customLocale = moment.localeData('numerologists'); - - assert.deepEqual(customLocale.months(), months); - assert.deepEqual(customLocale.monthsShort(), monthsShort); - assert.deepEqual(customLocale.weekdays(), weekdays); - assert.deepEqual(customLocale.weekdaysShort(), weekdaysShort); - assert.deepEqual(customLocale.weekdaysMin(), weekdaysMin); -}); - -}))); - - -;(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' - && typeof require === 'function' ? factory(require('../../moment')) : - typeof define === 'function' && define.amd ? define(['../../moment'], factory) : - factory(global.moment) -}(this, (function (moment) { 'use strict'; - -function each(array, callback) { - var i; - for (i = 0; i < array.length; i++) { - callback(array[i], i, array); - } -} - -function objectKeys(obj) { - if (Object.keys) { - return Object.keys(obj); - } else { - // IE8 - var res = [], i; - for (i in obj) { - if (obj.hasOwnProperty(i)) { - res.push(i); - } - } - return res; - } -} - -// Pick the first defined of two or three arguments. - -function defineCommonLocaleTests(locale, options) { - test('lenient day of month ordinal parsing', function (assert) { - var i, ordinalStr, testMoment; - for (i = 1; i <= 31; ++i) { - ordinalStr = moment([2014, 0, i]).format('YYYY MM Do'); - testMoment = moment(ordinalStr, 'YYYY MM Do'); - assert.equal(testMoment.year(), 2014, - 'lenient day of month ordinal parsing ' + i + ' year check'); - assert.equal(testMoment.month(), 0, - 'lenient day of month ordinal parsing ' + i + ' month check'); - assert.equal(testMoment.date(), i, - 'lenient day of month ordinal parsing ' + i + ' date check'); - } - }); - - test('lenient day of month ordinal parsing of number', function (assert) { - var i, testMoment; - for (i = 1; i <= 31; ++i) { - testMoment = moment('2014 01 ' + i, 'YYYY MM Do'); - assert.equal(testMoment.year(), 2014, - 'lenient day of month ordinal parsing of number ' + i + ' year check'); - assert.equal(testMoment.month(), 0, - 'lenient day of month ordinal parsing of number ' + i + ' month check'); - assert.equal(testMoment.date(), i, - 'lenient day of month ordinal parsing of number ' + i + ' date check'); - } - }); - - test('strict day of month ordinal parsing', function (assert) { - var i, ordinalStr, testMoment; - for (i = 1; i <= 31; ++i) { - ordinalStr = moment([2014, 0, i]).format('YYYY MM Do'); - testMoment = moment(ordinalStr, 'YYYY MM Do', true); - assert.ok(testMoment.isValid(), 'strict day of month ordinal parsing ' + i); - } - }); - - test('meridiem invariant', function (assert) { - var h, m, t1, t2; - for (h = 0; h < 24; ++h) { - for (m = 0; m < 60; m += 15) { - t1 = moment.utc([2000, 0, 1, h, m]); - t2 = moment.utc(t1.format('A h:mm'), 'A h:mm'); - assert.equal(t2.format('HH:mm'), t1.format('HH:mm'), - 'meridiem at ' + t1.format('HH:mm')); - } - } - }); - - test('date format correctness', function (assert) { - var data, tokens; - data = moment.localeData()._longDateFormat; - tokens = objectKeys(data); - each(tokens, function (srchToken) { - // Check each format string to make sure it does not contain any - // tokens that need to be expanded. - each(tokens, function (baseToken) { - // strip escaped sequences - var format = data[baseToken].replace(/(\[[^\]]*\])/g, ''); - assert.equal(false, !!~format.indexOf(srchToken), - 'contains ' + srchToken + ' in ' + baseToken); - }); - }); - }); - - test('month parsing correctness', function (assert) { - var i, m; - - if (locale === 'tr') { - // I can't fix it :( - expect(0); - return; - } - function tester(format) { - var r; - r = moment(m.format(format), format); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format); - r = moment(m.format(format).toLocaleUpperCase(), format); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' upper'); - r = moment(m.format(format).toLocaleLowerCase(), format); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' lower'); - - r = moment(m.format(format), format, true); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' strict'); - r = moment(m.format(format).toLocaleUpperCase(), format, true); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' upper strict'); - r = moment(m.format(format).toLocaleLowerCase(), format, true); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' lower strict'); - } - - for (i = 0; i < 12; ++i) { - m = moment([2015, i, 15, 18]); - tester('MMM'); - tester('MMM.'); - tester('MMMM'); - tester('MMMM.'); - } - }); - - test('weekday parsing correctness', function (assert) { - var i, m; - - if (locale === 'tr' || locale === 'az' || locale === 'ro') { - // tr, az: There is a lower-case letter (ı), that converted to - // upper then lower changes to i - // ro: there is the letter ț which behaves weird under IE8 - expect(0); - return; - } - function tester(format) { - var r, baseMsg = 'weekday ' + m.weekday() + ' fmt ' + format + ' ' + m.toISOString(); - r = moment(m.format(format), format); - assert.equal(r.weekday(), m.weekday(), baseMsg); - r = moment(m.format(format).toLocaleUpperCase(), format); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' upper'); - r = moment(m.format(format).toLocaleLowerCase(), format); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' lower'); - - r = moment(m.format(format), format, true); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' strict'); - r = moment(m.format(format).toLocaleUpperCase(), format, true); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' upper strict'); - r = moment(m.format(format).toLocaleLowerCase(), format, true); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' lower strict'); - } - - for (i = 0; i < 7; ++i) { - m = moment.utc([2015, 0, i + 1, 18]); - tester('dd'); - tester('ddd'); - tester('dddd'); - } - }); - - test('valid localeData', function (assert) { - assert.equal(moment().localeData().months().length, 12, 'months should return 12 months'); - assert.equal(moment().localeData().monthsShort().length, 12, 'monthsShort should return 12 months'); - assert.equal(moment().localeData().weekdays().length, 7, 'weekdays should return 7 days'); - assert.equal(moment().localeData().weekdaysShort().length, 7, 'weekdaysShort should return 7 days'); - assert.equal(moment().localeData().weekdaysMin().length, 7, 'monthsShort should return 7 days'); - }); -} - -function setupDeprecationHandler(test, moment$$1, scope) { - test._expectedDeprecations = null; - test._observedDeprecations = null; - test._oldSupress = moment$$1.suppressDeprecationWarnings; - moment$$1.suppressDeprecationWarnings = true; - test.expectedDeprecations = function () { - test._expectedDeprecations = arguments; - test._observedDeprecations = []; - }; - moment$$1.deprecationHandler = function (name, msg) { - var deprecationId = matchedDeprecation(name, msg, test._expectedDeprecations); - if (deprecationId === -1) { - throw new Error('Unexpected deprecation thrown name=' + - name + ' msg=' + msg); - } - test._observedDeprecations[deprecationId] = 1; - }; -} - -function teardownDeprecationHandler(test, moment$$1, scope) { - moment$$1.suppressDeprecationWarnings = test._oldSupress; - - if (test._expectedDeprecations != null) { - var missedDeprecations = []; - each(test._expectedDeprecations, function (deprecationPattern, id) { - if (test._observedDeprecations[id] !== 1) { - missedDeprecations.push(deprecationPattern); - } - }); - if (missedDeprecations.length !== 0) { - throw new Error('Expected deprecation warnings did not happen: ' + - missedDeprecations.join(' ')); - } - } -} - -function matchedDeprecation(name, msg, deprecations) { - if (deprecations == null) { - return -1; - } - for (var i = 0; i < deprecations.length; ++i) { - if (name != null && name === deprecations[i]) { - return i; - } - if (msg != null && msg.substring(0, deprecations[i].length) === deprecations[i]) { - return i; - } - } - return -1; -} - -/*global QUnit:false*/ - -var test = QUnit.test; - -var expect = QUnit.expect; - -function module$1 (name, lifecycle) { - QUnit.module(name, { - setup : function () { - moment.locale('en'); - moment.createFromInputFallback = function (config) { - throw new Error('input not handled by moment: ' + config._i); - }; - setupDeprecationHandler(test, moment, 'core'); - if (lifecycle && lifecycle.setup) { - lifecycle.setup(); - } - }, - teardown : function () { - teardownDeprecationHandler(test, moment, 'core'); - if (lifecycle && lifecycle.teardown) { - lifecycle.teardown(); - } - } - }); -} - -var indexOf; - -if (Array.prototype.indexOf) { - indexOf = Array.prototype.indexOf; -} else { - indexOf = function (o) { - // I know - var i; - for (i = 0; i < this.length; ++i) { - if (this[i] === o) { - return i; - } - } - return -1; - }; -} - -var indexOf$1 = indexOf; - -module$1('locale', { - setup : function () { - // TODO: Remove once locales are switched to ES6 - each([{ - name: 'en-gb', - data: {} - }, { - name: 'en-ca', - data: {} - }, { - name: 'es', - data: { - relativeTime: {past: 'hace %s', s: 'unos segundos', d: 'un día'}, - months: 'enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre'.split('_') - } - }, { - name: 'fr', - data: {} - }, { - name: 'fr-ca', - data: {} - }, { - name: 'it', - data: {} - }, { - name: 'zh-cn', - data: { - months: '一月_二月_三月_四月_五月_六月_七月_八月_九月_十月_十一月_十二月'.split('_') - } - }], function (locale) { - if (moment.locale(locale.name) !== locale.name) { - moment.defineLocale(locale.name, locale.data); - } - }); - moment.locale('en'); - } -}); - -test('library getters and setters', function (assert) { - var r = moment.locale('en'); - - assert.equal(r, 'en', 'locale should return en by default'); - assert.equal(moment.locale(), 'en', 'locale should return en by default'); - - moment.locale('fr'); - assert.equal(moment.locale(), 'fr', 'locale should return the changed locale'); - - moment.locale('en-gb'); - assert.equal(moment.locale(), 'en-gb', 'locale should return the changed locale'); - - moment.locale('en'); - assert.equal(moment.locale(), 'en', 'locale should reset'); - - moment.locale('does-not-exist'); - assert.equal(moment.locale(), 'en', 'locale should reset'); - - moment.locale('EN'); - assert.equal(moment.locale(), 'en', 'Normalize locale key case'); - - moment.locale('EN_gb'); - assert.equal(moment.locale(), 'en-gb', 'Normalize locale key underscore'); -}); - -test('library setter array of locales', function (assert) { - assert.equal(moment.locale(['non-existent', 'fr', 'also-non-existent']), 'fr', 'passing an array uses the first valid locale'); - assert.equal(moment.locale(['es', 'fr', 'also-non-existent']), 'es', 'passing an array uses the first valid locale'); -}); - -test('library setter locale substrings', function (assert) { - assert.equal(moment.locale('fr-crap'), 'fr', 'use substrings'); - assert.equal(moment.locale('fr-does-not-exist'), 'fr', 'uses deep substrings'); - assert.equal(moment.locale('fr-CA-does-not-exist'), 'fr-ca', 'uses deepest substring'); -}); - -test('library getter locale array and substrings', function (assert) { - assert.equal(moment.locale(['en-CH', 'fr']), 'en', 'prefer root locale to shallower ones'); - assert.equal(moment.locale(['en-gb-leeds', 'en-CA']), 'en-gb', 'prefer root locale to shallower ones'); - assert.equal(moment.locale(['en-fake', 'en-CA']), 'en-ca', 'prefer alternatives with shared roots'); - assert.equal(moment.locale(['en-fake', 'en-fake2', 'en-ca']), 'en-ca', 'prefer alternatives with shared roots'); - assert.equal(moment.locale(['fake-CA', 'fake-MX', 'fr']), 'fr', 'always find something if possible'); - assert.equal(moment.locale(['fake-CA', 'fake-MX', 'fr']), 'fr', 'always find something if possible'); - assert.equal(moment.locale(['fake-CA', 'fake-MX', 'fr-fake-fake-fake']), 'fr', 'always find something if possible'); - assert.equal(moment.locale(['en', 'en-CA']), 'en', 'prefer earlier if it works'); -}); - -test('library ensure inheritance', function (assert) { - moment.locale('made-up', { - // I put them out of order - months : 'February_March_April_May_June_July_August_September_October_November_December_January'.split('_') - // the rest of the properties should be inherited. - }); - - assert.equal(moment([2012, 5, 6]).format('MMMM'), 'July', 'Override some of the configs'); - assert.equal(moment([2012, 5, 6]).format('MMM'), 'Jun', 'But not all of them'); -}); - -test('library ensure inheritance LT L LL LLL LLLL', function (assert) { - var locale = 'test-inherit-lt'; - - moment.defineLocale(locale, { - longDateFormat : { - LT : '-[LT]-', - L : '-[L]-', - LL : '-[LL]-', - LLL : '-[LLL]-', - LLLL : '-[LLLL]-' - }, - calendar : { - sameDay : '[sameDay] LT', - nextDay : '[nextDay] L', - nextWeek : '[nextWeek] LL', - lastDay : '[lastDay] LLL', - lastWeek : '[lastWeek] LLLL', - sameElse : 'L' - } - }); - - moment.locale('es'); - - assert.equal(moment().locale(locale).calendar(), 'sameDay -LT-', 'Should use instance locale in LT formatting'); - assert.equal(moment().add(1, 'days').locale(locale).calendar(), 'nextDay -L-', 'Should use instance locale in L formatting'); - assert.equal(moment().add(-1, 'days').locale(locale).calendar(), 'lastDay -LLL-', 'Should use instance locale in LL formatting'); - assert.equal(moment().add(4, 'days').locale(locale).calendar(), 'nextWeek -LL-', 'Should use instance locale in LLL formatting'); - assert.equal(moment().add(-4, 'days').locale(locale).calendar(), 'lastWeek -LLLL-', 'Should use instance locale in LLLL formatting'); -}); - -test('library localeData', function (assert) { - moment.locale('en'); - - var jan = moment([2000, 0]); - - assert.equal(moment.localeData().months(jan), 'January', 'no arguments returns global'); - assert.equal(moment.localeData('zh-cn').months(jan), '一月', 'a string returns the locale based on key'); - assert.equal(moment.localeData(moment().locale('es')).months(jan), 'enero', 'if you pass in a moment it uses the moment\'s locale'); -}); - -test('library deprecations', function (assert) { - test.expectedDeprecations('moment.lang'); - moment.lang('dude', {months: ['Movember']}); - assert.equal(moment.locale(), 'dude', 'setting the lang sets the locale'); - assert.equal(moment.lang(), moment.locale()); - assert.equal(moment.langData(), moment.localeData(), 'langData is localeData'); - moment.defineLocale('dude', null); -}); - -test('defineLocale', function (assert) { - moment.locale('en'); - moment.defineLocale('dude', {months: ['Movember']}); - assert.equal(moment().locale(), 'dude', 'defineLocale also sets it'); - assert.equal(moment().locale('dude').locale(), 'dude', 'defineLocale defines a locale'); - moment.defineLocale('dude', null); -}); - -test('locales', function (assert) { - moment.defineLocale('dude', {months: ['Movember']}); - assert.equal(true, !!~indexOf$1.call(moment.locales(), 'dude'), 'locales returns an array of defined locales'); - assert.equal(true, !!~indexOf$1.call(moment.locales(), 'en'), 'locales should always include english'); - moment.defineLocale('dude', null); -}); - -test('library convenience', function (assert) { - moment.locale('something', {week: {dow: 3}}); - moment.locale('something'); - assert.equal(moment.locale(), 'something', 'locale can be used to create the locale too'); - moment.defineLocale('something', null); -}); - -test('firstDayOfWeek firstDayOfYear locale getters', function (assert) { - moment.locale('something', {week: {dow: 3, doy: 4}}); - moment.locale('something'); - assert.equal(moment.localeData().firstDayOfWeek(), 3, 'firstDayOfWeek'); - assert.equal(moment.localeData().firstDayOfYear(), 4, 'firstDayOfYear'); - moment.defineLocale('something', null); -}); - -test('instance locale method', function (assert) { - moment.locale('en'); - - assert.equal(moment([2012, 5, 6]).format('MMMM'), 'June', 'Normally default to global'); - assert.equal(moment([2012, 5, 6]).locale('es').format('MMMM'), 'junio', 'Use the instance specific locale'); - assert.equal(moment([2012, 5, 6]).format('MMMM'), 'June', 'Using an instance specific locale does not affect other moments'); -}); - -test('instance locale method with array', function (assert) { - var m = moment().locale(['non-existent', 'fr', 'also-non-existent']); - assert.equal(m.locale(), 'fr', 'passing an array uses the first valid locale'); - m = moment().locale(['es', 'fr', 'also-non-existent']); - assert.equal(m.locale(), 'es', 'passing an array uses the first valid locale'); -}); - -test('instance getter locale substrings', function (assert) { - var m = moment(); - - m.locale('fr-crap'); - assert.equal(m.locale(), 'fr', 'use substrings'); - - m.locale('fr-does-not-exist'); - assert.equal(m.locale(), 'fr', 'uses deep substrings'); -}); - -test('instance locale persists with manipulation', function (assert) { - moment.locale('en'); - - assert.equal(moment([2012, 5, 6]).locale('es').add({days: 1}).format('MMMM'), 'junio', 'With addition'); - assert.equal(moment([2012, 5, 6]).locale('es').day(0).format('MMMM'), 'junio', 'With day getter'); - assert.equal(moment([2012, 5, 6]).locale('es').endOf('day').format('MMMM'), 'junio', 'With endOf'); -}); - -test('instance locale persists with cloning', function (assert) { - moment.locale('en'); - - var a = moment([2012, 5, 6]).locale('es'), - b = a.clone(), - c = moment(a); - - assert.equal(b.format('MMMM'), 'junio', 'using moment.fn.clone()'); - assert.equal(b.format('MMMM'), 'junio', 'using moment()'); -}); - -test('duration locale method', function (assert) { - moment.locale('en'); - - assert.equal(moment.duration({seconds: 44}).humanize(), 'a few seconds', 'Normally default to global'); - assert.equal(moment.duration({seconds: 44}).locale('es').humanize(), 'unos segundos', 'Use the instance specific locale'); - assert.equal(moment.duration({seconds: 44}).humanize(), 'a few seconds', 'Using an instance specific locale does not affect other durations'); -}); - -test('duration locale persists with cloning', function (assert) { - moment.locale('en'); - - var a = moment.duration({seconds: 44}).locale('es'), - b = moment.duration(a); - - assert.equal(b.humanize(), 'unos segundos', 'using moment.duration()'); -}); - -test('changing the global locale doesn\'t affect existing duration instances', function (assert) { - var mom = moment.duration(); - moment.locale('fr'); - assert.equal('en', mom.locale()); -}); - -test('duration deprecations', function (assert) { - test.expectedDeprecations('moment().lang()'); - assert.equal(moment.duration().lang(), moment.duration().localeData(), 'duration.lang is the same as duration.localeData'); -}); - -test('from and fromNow with invalid date', function (assert) { - assert.equal(moment(NaN).from(), 'Invalid date', 'moment.from with invalid moment'); - assert.equal(moment(NaN).fromNow(), 'Invalid date', 'moment.fromNow with invalid moment'); -}); - -test('from relative time future', function (assert) { - var start = moment([2007, 1, 28]); - - assert.equal(start.from(moment([2007, 1, 28]).subtract({s: 44})), 'in a few seconds', '44 seconds = a few seconds'); - assert.equal(start.from(moment([2007, 1, 28]).subtract({s: 45})), 'in a minute', '45 seconds = a minute'); - assert.equal(start.from(moment([2007, 1, 28]).subtract({s: 89})), 'in a minute', '89 seconds = a minute'); - assert.equal(start.from(moment([2007, 1, 28]).subtract({s: 90})), 'in 2 minutes', '90 seconds = 2 minutes'); - assert.equal(start.from(moment([2007, 1, 28]).subtract({m: 44})), 'in 44 minutes', '44 minutes = 44 minutes'); - assert.equal(start.from(moment([2007, 1, 28]).subtract({m: 45})), 'in an hour', '45 minutes = an hour'); - assert.equal(start.from(moment([2007, 1, 28]).subtract({m: 89})), 'in an hour', '89 minutes = an hour'); - assert.equal(start.from(moment([2007, 1, 28]).subtract({m: 90})), 'in 2 hours', '90 minutes = 2 hours'); - assert.equal(start.from(moment([2007, 1, 28]).subtract({h: 5})), 'in 5 hours', '5 hours = 5 hours'); - assert.equal(start.from(moment([2007, 1, 28]).subtract({h: 21})), 'in 21 hours', '21 hours = 21 hours'); - assert.equal(start.from(moment([2007, 1, 28]).subtract({h: 22})), 'in a day', '22 hours = a day'); - assert.equal(start.from(moment([2007, 1, 28]).subtract({h: 35})), 'in a day', '35 hours = a day'); - assert.equal(start.from(moment([2007, 1, 28]).subtract({h: 36})), 'in 2 days', '36 hours = 2 days'); - assert.equal(start.from(moment([2007, 1, 28]).subtract({d: 1})), 'in a day', '1 day = a day'); - assert.equal(start.from(moment([2007, 1, 28]).subtract({d: 5})), 'in 5 days', '5 days = 5 days'); - assert.equal(start.from(moment([2007, 1, 28]).subtract({d: 25})), 'in 25 days', '25 days = 25 days'); - assert.equal(start.from(moment([2007, 1, 28]).subtract({d: 26})), 'in a month', '26 days = a month'); - assert.equal(start.from(moment([2007, 1, 28]).subtract({d: 30})), 'in a month', '30 days = a month'); - assert.equal(start.from(moment([2007, 1, 28]).subtract({d: 45})), 'in a month', '45 days = a month'); - assert.equal(start.from(moment([2007, 1, 28]).subtract({d: 47})), 'in 2 months', '47 days = 2 months'); - assert.equal(start.from(moment([2007, 1, 28]).subtract({d: 74})), 'in 2 months', '74 days = 2 months'); - assert.equal(start.from(moment([2007, 1, 28]).subtract({d: 78})), 'in 3 months', '78 days = 3 months'); - assert.equal(start.from(moment([2007, 1, 28]).subtract({M: 1})), 'in a month', '1 month = a month'); - assert.equal(start.from(moment([2007, 1, 28]).subtract({M: 5})), 'in 5 months', '5 months = 5 months'); - assert.equal(start.from(moment([2007, 1, 28]).subtract({d: 315})), 'in 10 months', '315 days = 10 months'); - assert.equal(start.from(moment([2007, 1, 28]).subtract({d: 344})), 'in a year', '344 days = a year'); - assert.equal(start.from(moment([2007, 1, 28]).subtract({d: 345})), 'in a year', '345 days = a year'); - assert.equal(start.from(moment([2007, 1, 28]).subtract({d: 548})), 'in 2 years', '548 days = in 2 years'); - assert.equal(start.from(moment([2007, 1, 28]).subtract({y: 1})), 'in a year', '1 year = a year'); - assert.equal(start.from(moment([2007, 1, 28]).subtract({y: 5})), 'in 5 years', '5 years = 5 years'); -}); - -test('from relative time past', function (assert) { - var start = moment([2007, 1, 28]); - - assert.equal(start.from(moment([2007, 1, 28]).add({s: 44})), 'a few seconds ago', '44 seconds = a few seconds'); - assert.equal(start.from(moment([2007, 1, 28]).add({s: 45})), 'a minute ago', '45 seconds = a minute'); - assert.equal(start.from(moment([2007, 1, 28]).add({s: 89})), 'a minute ago', '89 seconds = a minute'); - assert.equal(start.from(moment([2007, 1, 28]).add({s: 90})), '2 minutes ago', '90 seconds = 2 minutes'); - assert.equal(start.from(moment([2007, 1, 28]).add({m: 44})), '44 minutes ago', '44 minutes = 44 minutes'); - assert.equal(start.from(moment([2007, 1, 28]).add({m: 45})), 'an hour ago', '45 minutes = an hour'); - assert.equal(start.from(moment([2007, 1, 28]).add({m: 89})), 'an hour ago', '89 minutes = an hour'); - assert.equal(start.from(moment([2007, 1, 28]).add({m: 90})), '2 hours ago', '90 minutes = 2 hours'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 5})), '5 hours ago', '5 hours = 5 hours'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 21})), '21 hours ago', '21 hours = 21 hours'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 22})), 'a day ago', '22 hours = a day'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 35})), 'a day ago', '35 hours = a day'); - assert.equal(start.from(moment([2007, 1, 28]).add({h: 36})), '2 days ago', '36 hours = 2 days'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 1})), 'a day ago', '1 day = a day'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 5})), '5 days ago', '5 days = 5 days'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 25})), '25 days ago', '25 days = 25 days'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 26})), 'a month ago', '26 days = a month'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 30})), 'a month ago', '30 days = a month'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 43})), 'a month ago', '43 days = a month'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 46})), '2 months ago', '46 days = 2 months'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 74})), '2 months ago', '75 days = 2 months'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 76})), '3 months ago', '76 days = 3 months'); - assert.equal(start.from(moment([2007, 1, 28]).add({M: 1})), 'a month ago', '1 month = a month'); - assert.equal(start.from(moment([2007, 1, 28]).add({M: 5})), '5 months ago', '5 months = 5 months'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 315})), '10 months ago', '315 days = 10 months'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 344})), 'a year ago', '344 days = a year'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 345})), 'a year ago', '345 days = a year'); - assert.equal(start.from(moment([2007, 1, 28]).add({d: 548})), '2 years ago', '548 days = 2 years'); - assert.equal(start.from(moment([2007, 1, 28]).add({y: 1})), 'a year ago', '1 year = a year'); - assert.equal(start.from(moment([2007, 1, 28]).add({y: 5})), '5 years ago', '5 years = 5 years'); -}); - -test('instance locale used with from', function (assert) { - moment.locale('en'); - - var a = moment([2012, 5, 6]).locale('es'), - b = moment([2012, 5, 7]); - - assert.equal(a.from(b), 'hace un día', 'preserve locale of first moment'); - assert.equal(b.from(a), 'in a day', 'do not preserve locale of second moment'); -}); - -test('instance localeData', function (assert) { - moment.defineLocale('dude', {week: {dow: 3}}); - assert.equal(moment().locale('dude').localeData()._week.dow, 3); - moment.defineLocale('dude', null); -}); - -test('month name callback function', function (assert) { - function fakeReplace(m, format) { - if (/test/.test(format)) { - return 'test'; - } - if (m.date() === 1) { - return 'date'; - } - return 'default'; - } - - moment.locale('made-up-2', { - months : fakeReplace, - monthsShort : fakeReplace, - weekdays : fakeReplace, - weekdaysShort : fakeReplace, - weekdaysMin : fakeReplace - }); - - assert.equal(moment().format('[test] dd ddd dddd MMM MMMM'), 'test test test test test test', 'format month name function should be able to access the format string'); - assert.equal(moment([2011, 0, 1]).format('dd ddd dddd MMM MMMM'), 'date date date date date', 'format month name function should be able to access the moment object'); - assert.equal(moment([2011, 0, 2]).format('dd ddd dddd MMM MMMM'), 'default default default default default', 'format month name function should be able to access the moment object'); -}); - -test('changing parts of a locale config', function (assert) { - test.expectedDeprecations('defineLocaleOverride'); - - moment.locale('partial-lang', { - months : 'a b c d e f g h i j k l'.split(' ') - }); - - assert.equal(moment([2011, 0, 1]).format('MMMM'), 'a', 'should be able to set locale values when creating the localeuage'); - - moment.locale('partial-lang', { - monthsShort : 'A B C D E F G H I J K L'.split(' ') - }); - - assert.equal(moment([2011, 0, 1]).format('MMMM MMM'), 'a A', 'should be able to set locale values after creating the localeuage'); - - moment.defineLocale('partial-lang', null); -}); - -test('start/endOf week feature for first-day-is-monday locales', function (assert) { - moment.locale('monday-lang', { - week : { - dow : 1 // Monday is the first day of the week - } - }); - - moment.locale('monday-lang'); - assert.equal(moment([2013, 0, 1]).startOf('week').day(), 1, 'for locale monday-lang first day of the week should be monday'); - assert.equal(moment([2013, 0, 1]).endOf('week').day(), 0, 'for locale monday-lang last day of the week should be sunday'); - moment.defineLocale('monday-lang', null); -}); - -test('meridiem parsing', function (assert) { - moment.locale('meridiem-parsing', { - meridiemParse : /[bd]/i, - isPM : function (input) { - return input === 'b'; - } - }); - - moment.locale('meridiem-parsing'); - assert.equal(moment('2012-01-01 3b', 'YYYY-MM-DD ha').hour(), 15, 'Custom parsing of meridiem should work'); - assert.equal(moment('2012-01-01 3d', 'YYYY-MM-DD ha').hour(), 3, 'Custom parsing of meridiem should work'); - moment.defineLocale('meridiem-parsing', null); -}); - -test('invalid date formatting', function (assert) { - moment.locale('has-invalid', { - invalidDate: 'KHAAAAAAAAAAAN!' - }); - - assert.equal(moment.invalid().format(), 'KHAAAAAAAAAAAN!'); - assert.equal(moment.invalid().format('YYYY-MM-DD'), 'KHAAAAAAAAAAAN!'); - moment.defineLocale('has-invalid', null); -}); - -test('return locale name', function (assert) { - var registered = moment.locale('return-this', {}); - - assert.equal(registered, 'return-this', 'returns the locale configured'); - moment.locale('return-this', null); -}); - -test('changing the global locale doesn\'t affect existing instances', function (assert) { - var mom = moment(); - moment.locale('fr'); - assert.equal('en', mom.locale()); -}); - -test('setting a language on instance returns the original moment for chaining', function (assert) { - test.expectedDeprecations('moment().lang()'); - var mom = moment(); - - assert.equal(mom.lang('fr'), mom, 'setting the language (lang) returns the original moment for chaining'); - assert.equal(mom.locale('it'), mom, 'setting the language (locale) returns the original moment for chaining'); -}); - -test('lang(key) changes the language of the instance', function (assert) { - test.expectedDeprecations('moment().lang()'); - var m = moment().month(0); - m.lang('fr'); - assert.equal(m.locale(), 'fr', 'm.lang(key) changes instance locale'); -}); - -test('moment#locale(false) resets to global locale', function (assert) { - var m = moment(); - - moment.locale('fr'); - m.locale('it'); - - assert.equal(moment.locale(), 'fr', 'global locale is it'); - assert.equal(m.locale(), 'it', 'instance locale is it'); - m.locale(false); - assert.equal(m.locale(), 'fr', 'instance locale reset to global locale'); -}); - -test('moment().locale with missing key doesn\'t change locale', function (assert) { - assert.equal(moment().locale('boo').localeData(), moment.localeData(), - 'preserve global locale in case of bad locale id'); -}); - -test('moment().lang with missing key doesn\'t change locale', function (assert) { - test.expectedDeprecations('moment().lang()'); - assert.equal(moment().lang('boo').localeData(), moment.localeData(), - 'preserve global locale in case of bad locale id'); -}); - - -// TODO: Enable this after fixing pl months parse hack hack -// test('monthsParseExact', function (assert) { -// var locale = 'test-months-parse-exact'; - -// moment.defineLocale(locale, { -// monthsParseExact: true, -// months: 'A_AA_AAA_B_B B_BB B_C_C-C_C,C2C_D_D+D_D`D*D'.split('_'), -// monthsShort: 'E_EE_EEE_F_FF_FFF_G_GG_GGG_H_HH_HHH'.split('_') -// }); - -// assert.equal(moment('A', 'MMMM', true).month(), 0, 'parse long month 0 with MMMM'); -// assert.equal(moment('AA', 'MMMM', true).month(), 1, 'parse long month 1 with MMMM'); -// assert.equal(moment('AAA', 'MMMM', true).month(), 2, 'parse long month 2 with MMMM'); -// assert.equal(moment('B B', 'MMMM', true).month(), 4, 'parse long month 4 with MMMM'); -// assert.equal(moment('BB B', 'MMMM', true).month(), 5, 'parse long month 5 with MMMM'); -// assert.equal(moment('C-C', 'MMMM', true).month(), 7, 'parse long month 7 with MMMM'); -// assert.equal(moment('C,C2C', 'MMMM', true).month(), 8, 'parse long month 8 with MMMM'); -// assert.equal(moment('D+D', 'MMMM', true).month(), 10, 'parse long month 10 with MMMM'); -// assert.equal(moment('D`D*D', 'MMMM', true).month(), 11, 'parse long month 11 with MMMM'); - -// assert.equal(moment('E', 'MMM', true).month(), 0, 'parse long month 0 with MMM'); -// assert.equal(moment('EE', 'MMM', true).month(), 1, 'parse long month 1 with MMM'); -// assert.equal(moment('EEE', 'MMM', true).month(), 2, 'parse long month 2 with MMM'); - -// assert.equal(moment('A', 'MMM').month(), 0, 'non-strict parse long month 0 with MMM'); -// assert.equal(moment('AA', 'MMM').month(), 1, 'non-strict parse long month 1 with MMM'); -// assert.equal(moment('AAA', 'MMM').month(), 2, 'non-strict parse long month 2 with MMM'); -// assert.equal(moment('E', 'MMMM').month(), 0, 'non-strict parse short month 0 with MMMM'); -// assert.equal(moment('EE', 'MMMM').month(), 1, 'non-strict parse short month 1 with MMMM'); -// assert.equal(moment('EEE', 'MMMM').month(), 2, 'non-strict parse short month 2 with MMMM'); -// }); - -}))); - - -;(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' - && typeof require === 'function' ? factory(require('../../moment')) : - typeof define === 'function' && define.amd ? define(['../../moment'], factory) : - factory(global.moment) -}(this, (function (moment) { 'use strict'; - -function each(array, callback) { - var i; - for (i = 0; i < array.length; i++) { - callback(array[i], i, array); - } -} - -function objectKeys(obj) { - if (Object.keys) { - return Object.keys(obj); - } else { - // IE8 - var res = [], i; - for (i in obj) { - if (obj.hasOwnProperty(i)) { - res.push(i); - } - } - return res; - } -} - -// Pick the first defined of two or three arguments. - -function defineCommonLocaleTests(locale, options) { - test('lenient day of month ordinal parsing', function (assert) { - var i, ordinalStr, testMoment; - for (i = 1; i <= 31; ++i) { - ordinalStr = moment([2014, 0, i]).format('YYYY MM Do'); - testMoment = moment(ordinalStr, 'YYYY MM Do'); - assert.equal(testMoment.year(), 2014, - 'lenient day of month ordinal parsing ' + i + ' year check'); - assert.equal(testMoment.month(), 0, - 'lenient day of month ordinal parsing ' + i + ' month check'); - assert.equal(testMoment.date(), i, - 'lenient day of month ordinal parsing ' + i + ' date check'); - } - }); - - test('lenient day of month ordinal parsing of number', function (assert) { - var i, testMoment; - for (i = 1; i <= 31; ++i) { - testMoment = moment('2014 01 ' + i, 'YYYY MM Do'); - assert.equal(testMoment.year(), 2014, - 'lenient day of month ordinal parsing of number ' + i + ' year check'); - assert.equal(testMoment.month(), 0, - 'lenient day of month ordinal parsing of number ' + i + ' month check'); - assert.equal(testMoment.date(), i, - 'lenient day of month ordinal parsing of number ' + i + ' date check'); - } - }); - - test('strict day of month ordinal parsing', function (assert) { - var i, ordinalStr, testMoment; - for (i = 1; i <= 31; ++i) { - ordinalStr = moment([2014, 0, i]).format('YYYY MM Do'); - testMoment = moment(ordinalStr, 'YYYY MM Do', true); - assert.ok(testMoment.isValid(), 'strict day of month ordinal parsing ' + i); - } - }); - - test('meridiem invariant', function (assert) { - var h, m, t1, t2; - for (h = 0; h < 24; ++h) { - for (m = 0; m < 60; m += 15) { - t1 = moment.utc([2000, 0, 1, h, m]); - t2 = moment.utc(t1.format('A h:mm'), 'A h:mm'); - assert.equal(t2.format('HH:mm'), t1.format('HH:mm'), - 'meridiem at ' + t1.format('HH:mm')); - } - } - }); - - test('date format correctness', function (assert) { - var data, tokens; - data = moment.localeData()._longDateFormat; - tokens = objectKeys(data); - each(tokens, function (srchToken) { - // Check each format string to make sure it does not contain any - // tokens that need to be expanded. - each(tokens, function (baseToken) { - // strip escaped sequences - var format = data[baseToken].replace(/(\[[^\]]*\])/g, ''); - assert.equal(false, !!~format.indexOf(srchToken), - 'contains ' + srchToken + ' in ' + baseToken); - }); - }); - }); - - test('month parsing correctness', function (assert) { - var i, m; - - if (locale === 'tr') { - // I can't fix it :( - expect(0); - return; - } - function tester(format) { - var r; - r = moment(m.format(format), format); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format); - r = moment(m.format(format).toLocaleUpperCase(), format); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' upper'); - r = moment(m.format(format).toLocaleLowerCase(), format); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' lower'); - - r = moment(m.format(format), format, true); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' strict'); - r = moment(m.format(format).toLocaleUpperCase(), format, true); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' upper strict'); - r = moment(m.format(format).toLocaleLowerCase(), format, true); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' lower strict'); - } - - for (i = 0; i < 12; ++i) { - m = moment([2015, i, 15, 18]); - tester('MMM'); - tester('MMM.'); - tester('MMMM'); - tester('MMMM.'); - } - }); - - test('weekday parsing correctness', function (assert) { - var i, m; - - if (locale === 'tr' || locale === 'az' || locale === 'ro') { - // tr, az: There is a lower-case letter (ı), that converted to - // upper then lower changes to i - // ro: there is the letter ț which behaves weird under IE8 - expect(0); - return; - } - function tester(format) { - var r, baseMsg = 'weekday ' + m.weekday() + ' fmt ' + format + ' ' + m.toISOString(); - r = moment(m.format(format), format); - assert.equal(r.weekday(), m.weekday(), baseMsg); - r = moment(m.format(format).toLocaleUpperCase(), format); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' upper'); - r = moment(m.format(format).toLocaleLowerCase(), format); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' lower'); - - r = moment(m.format(format), format, true); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' strict'); - r = moment(m.format(format).toLocaleUpperCase(), format, true); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' upper strict'); - r = moment(m.format(format).toLocaleLowerCase(), format, true); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' lower strict'); - } - - for (i = 0; i < 7; ++i) { - m = moment.utc([2015, 0, i + 1, 18]); - tester('dd'); - tester('ddd'); - tester('dddd'); - } - }); - - test('valid localeData', function (assert) { - assert.equal(moment().localeData().months().length, 12, 'months should return 12 months'); - assert.equal(moment().localeData().monthsShort().length, 12, 'monthsShort should return 12 months'); - assert.equal(moment().localeData().weekdays().length, 7, 'weekdays should return 7 days'); - assert.equal(moment().localeData().weekdaysShort().length, 7, 'weekdaysShort should return 7 days'); - assert.equal(moment().localeData().weekdaysMin().length, 7, 'monthsShort should return 7 days'); - }); -} - -function setupDeprecationHandler(test, moment$$1, scope) { - test._expectedDeprecations = null; - test._observedDeprecations = null; - test._oldSupress = moment$$1.suppressDeprecationWarnings; - moment$$1.suppressDeprecationWarnings = true; - test.expectedDeprecations = function () { - test._expectedDeprecations = arguments; - test._observedDeprecations = []; - }; - moment$$1.deprecationHandler = function (name, msg) { - var deprecationId = matchedDeprecation(name, msg, test._expectedDeprecations); - if (deprecationId === -1) { - throw new Error('Unexpected deprecation thrown name=' + - name + ' msg=' + msg); - } - test._observedDeprecations[deprecationId] = 1; - }; -} - -function teardownDeprecationHandler(test, moment$$1, scope) { - moment$$1.suppressDeprecationWarnings = test._oldSupress; - - if (test._expectedDeprecations != null) { - var missedDeprecations = []; - each(test._expectedDeprecations, function (deprecationPattern, id) { - if (test._observedDeprecations[id] !== 1) { - missedDeprecations.push(deprecationPattern); - } - }); - if (missedDeprecations.length !== 0) { - throw new Error('Expected deprecation warnings did not happen: ' + - missedDeprecations.join(' ')); - } - } -} - -function matchedDeprecation(name, msg, deprecations) { - if (deprecations == null) { - return -1; - } - for (var i = 0; i < deprecations.length; ++i) { - if (name != null && name === deprecations[i]) { - return i; - } - if (msg != null && msg.substring(0, deprecations[i].length) === deprecations[i]) { - return i; - } - } - return -1; -} - -/*global QUnit:false*/ - -var test = QUnit.test; - -var expect = QUnit.expect; - -function module$1 (name, lifecycle) { - QUnit.module(name, { - setup : function () { - moment.locale('en'); - moment.createFromInputFallback = function (config) { - throw new Error('input not handled by moment: ' + config._i); - }; - setupDeprecationHandler(test, moment, 'core'); - if (lifecycle && lifecycle.setup) { - lifecycle.setup(); - } - }, - teardown : function () { - teardownDeprecationHandler(test, moment, 'core'); - if (lifecycle && lifecycle.teardown) { - lifecycle.teardown(); - } - } - }); -} - -module$1('locale inheritance'); - -test('calendar', function (assert) { - moment.defineLocale('base-cal', { - calendar : { - sameDay: '[Today at] HH:mm', - nextDay: '[Tomorrow at] HH:mm', - nextWeek: '[Next week at] HH:mm', - lastDay: '[Yesterday at] HH:mm', - lastWeek: '[Last week at] HH:mm', - sameElse: '[whatever]' - } - }); - moment.defineLocale('child-cal', { - parentLocale: 'base-cal', - calendar: { - sameDay: '[Today] HH:mm', - nextDay: '[Tomorrow] HH:mm', - nextWeek: '[Next week] HH:mm' - } - }); - - moment.locale('child-cal'); - var anchor = moment.utc('2015-05-05T12:00:00', moment.ISO_8601); - assert.equal(anchor.clone().add(3, 'hours').calendar(anchor), 'Today 15:00', 'today uses child version'); - assert.equal(anchor.clone().add(1, 'day').calendar(anchor), 'Tomorrow 12:00', 'tomorrow uses child version'); - assert.equal(anchor.clone().add(3, 'days').calendar(anchor), 'Next week 12:00', 'next week uses child version'); - - assert.equal(anchor.clone().subtract(1, 'day').calendar(anchor), 'Yesterday at 12:00', 'yesterday uses parent version'); - assert.equal(anchor.clone().subtract(3, 'days').calendar(anchor), 'Last week at 12:00', 'last week uses parent version'); - assert.equal(anchor.clone().subtract(7, 'days').calendar(anchor), 'whatever', 'sameElse uses parent version -'); - assert.equal(anchor.clone().add(7, 'days').calendar(anchor), 'whatever', 'sameElse uses parent version +'); -}); - -test('missing', function (assert) { - moment.defineLocale('base-cal-2', { - calendar: { - sameDay: '[Today at] HH:mm', - nextDay: '[Tomorrow at] HH:mm', - nextWeek: '[Next week at] HH:mm', - lastDay: '[Yesterday at] HH:mm', - lastWeek: '[Last week at] HH:mm', - sameElse: '[whatever]' - } - }); - moment.defineLocale('child-cal-2', { - parentLocale: 'base-cal-2' - }); - moment.locale('child-cal-2'); - var anchor = moment.utc('2015-05-05T12:00:00', moment.ISO_8601); - assert.equal(anchor.clone().add(3, 'hours').calendar(anchor), 'Today at 15:00', 'today uses parent version'); - assert.equal(anchor.clone().add(1, 'day').calendar(anchor), 'Tomorrow at 12:00', 'tomorrow uses parent version'); - assert.equal(anchor.clone().add(3, 'days').calendar(anchor), 'Next week at 12:00', 'next week uses parent version'); - assert.equal(anchor.clone().subtract(1, 'day').calendar(anchor), 'Yesterday at 12:00', 'yesterday uses parent version'); - assert.equal(anchor.clone().subtract(3, 'days').calendar(anchor), 'Last week at 12:00', 'last week uses parent version'); - assert.equal(anchor.clone().subtract(7, 'days').calendar(anchor), 'whatever', 'sameElse uses parent version -'); - assert.equal(anchor.clone().add(7, 'days').calendar(anchor), 'whatever', 'sameElse uses parent version +'); -}); - -// Test function vs obj both directions - -test('long date format', function (assert) { - moment.defineLocale('base-ldf', { - longDateFormat : { - LTS : 'h:mm:ss A', - LT : 'h:mm A', - L : 'MM/DD/YYYY', - LL : 'MMMM D, YYYY', - LLL : 'MMMM D, YYYY h:mm A', - LLLL : 'dddd, MMMM D, YYYY h:mm A' - } - }); - moment.defineLocale('child-ldf', { - parentLocale: 'base-ldf', - longDateFormat: { - LLL : '[child] MMMM D, YYYY h:mm A', - LLLL : '[child] dddd, MMMM D, YYYY h:mm A' - } - }); - - moment.locale('child-ldf'); - var anchor = moment.utc('2015-09-06T12:34:56', moment.ISO_8601); - assert.equal(anchor.format('LTS'), '12:34:56 PM', 'LTS uses base'); - assert.equal(anchor.format('LT'), '12:34 PM', 'LT uses base'); - assert.equal(anchor.format('L'), '09/06/2015', 'L uses base'); - assert.equal(anchor.format('l'), '9/6/2015', 'l uses base'); - assert.equal(anchor.format('LL'), 'September 6, 2015', 'LL uses base'); - assert.equal(anchor.format('ll'), 'Sep 6, 2015', 'll uses base'); - assert.equal(anchor.format('LLL'), 'child September 6, 2015 12:34 PM', 'LLL uses child'); - assert.equal(anchor.format('lll'), 'child Sep 6, 2015 12:34 PM', 'lll uses child'); - assert.equal(anchor.format('LLLL'), 'child Sunday, September 6, 2015 12:34 PM', 'LLLL uses child'); - assert.equal(anchor.format('llll'), 'child Sun, Sep 6, 2015 12:34 PM', 'llll uses child'); -}); - -test('ordinal', function (assert) { - moment.defineLocale('base-ordinal-1', { - ordinal : '%dx' - }); - moment.defineLocale('child-ordinal-1', { - parentLocale: 'base-ordinal-1', - ordinal : '%dy' - }); - - assert.equal(moment.utc('2015-02-03', moment.ISO_8601).format('Do'), '3y', 'ordinal uses child string'); - - moment.defineLocale('base-ordinal-2', { - ordinal : '%dx' - }); - moment.defineLocale('child-ordinal-2', { - parentLocale: 'base-ordinal-2', - ordinal : function (num) { - return num + 'y'; - } - }); - - assert.equal(moment.utc('2015-02-03', moment.ISO_8601).format('Do'), '3y', 'ordinal uses child function'); - - moment.defineLocale('base-ordinal-3', { - ordinal : function (num) { - return num + 'x'; - } - }); - moment.defineLocale('child-ordinal-3', { - parentLocale: 'base-ordinal-3', - ordinal : '%dy' - }); - - assert.equal(moment.utc('2015-02-03', moment.ISO_8601).format('Do'), '3y', 'ordinal uses child string (overwrite parent function)'); -}); - -test('ordinal parse', function (assert) { - moment.defineLocale('base-ordinal-parse-1', { - dayOfMonthOrdinalParse : /\d{1,2}x/ - }); - moment.defineLocale('child-ordinal-parse-1', { - parentLocale: 'base-ordinal-parse-1', - dayOfMonthOrdinalParse : /\d{1,2}y/ - }); - - assert.ok(moment.utc('2015-01-1y', 'YYYY-MM-Do', true).isValid(), 'ordinal parse uses child'); - - moment.defineLocale('base-ordinal-parse-2', { - dayOfMonthOrdinalParse : /\d{1,2}x/ - }); - moment.defineLocale('child-ordinal-parse-2', { - parentLocale: 'base-ordinal-parse-2', - dayOfMonthOrdinalParse : /\d{1,2}/ - }); - - assert.ok(moment.utc('2015-01-1', 'YYYY-MM-Do', true).isValid(), 'ordinal parse uses child (default)'); -}); - -test('months', function (assert) { - moment.defineLocale('base-months', { - months : 'One_Two_Three_Four_Five_Six_Seven_Eight_Nine_Ten_Eleven_Twelve'.split('_') - }); - moment.defineLocale('child-months', { - parentLocale: 'base-months', - months : 'First_Second_Third_Fourth_Fifth_Sixth_Seventh_Eighth_Ninth_Tenth_Eleventh_Twelveth '.split('_') - }); - assert.ok(moment.utc('2015-01-01', 'YYYY-MM-DD').format('MMMM'), 'First', 'months uses child'); -}); - -test('define child locale before parent', function (assert) { - moment.defineLocale('months-x', null); - moment.defineLocale('base-months-x', null); - - moment.defineLocale('months-x', { - parentLocale: 'base-months-x', - months : 'First_Second_Third_Fourth_Fifth_Sixth_Seventh_Eighth_Ninth_Tenth_Eleventh_Twelveth '.split('_') - }); - assert.equal(moment.locale(), 'en', 'failed to set a locale requiring missing parent'); - moment.defineLocale('base-months-x', { - months : 'One_Two_Three_Four_Five_Six_Seven_Eight_Nine_Ten_Eleven_Twelve'.split('_') - }); - assert.equal(moment.locale(), 'base-months-x', 'defineLocale should also set the locale (regardless of child locales)'); - - assert.equal(moment().locale('months-x').month(0).format('MMMM'), 'First', 'loading child before parent locale works'); -}); - -}))); - - -;(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' - && typeof require === 'function' ? factory(require('../../moment')) : - typeof define === 'function' && define.amd ? define(['../../moment'], factory) : - factory(global.moment) -}(this, (function (moment) { 'use strict'; - -function each(array, callback) { - var i; - for (i = 0; i < array.length; i++) { - callback(array[i], i, array); - } -} - -function objectKeys(obj) { - if (Object.keys) { - return Object.keys(obj); - } else { - // IE8 - var res = [], i; - for (i in obj) { - if (obj.hasOwnProperty(i)) { - res.push(i); - } - } - return res; - } -} - -// Pick the first defined of two or three arguments. - -function defineCommonLocaleTests(locale, options) { - test('lenient day of month ordinal parsing', function (assert) { - var i, ordinalStr, testMoment; - for (i = 1; i <= 31; ++i) { - ordinalStr = moment([2014, 0, i]).format('YYYY MM Do'); - testMoment = moment(ordinalStr, 'YYYY MM Do'); - assert.equal(testMoment.year(), 2014, - 'lenient day of month ordinal parsing ' + i + ' year check'); - assert.equal(testMoment.month(), 0, - 'lenient day of month ordinal parsing ' + i + ' month check'); - assert.equal(testMoment.date(), i, - 'lenient day of month ordinal parsing ' + i + ' date check'); - } - }); - - test('lenient day of month ordinal parsing of number', function (assert) { - var i, testMoment; - for (i = 1; i <= 31; ++i) { - testMoment = moment('2014 01 ' + i, 'YYYY MM Do'); - assert.equal(testMoment.year(), 2014, - 'lenient day of month ordinal parsing of number ' + i + ' year check'); - assert.equal(testMoment.month(), 0, - 'lenient day of month ordinal parsing of number ' + i + ' month check'); - assert.equal(testMoment.date(), i, - 'lenient day of month ordinal parsing of number ' + i + ' date check'); - } - }); - - test('strict day of month ordinal parsing', function (assert) { - var i, ordinalStr, testMoment; - for (i = 1; i <= 31; ++i) { - ordinalStr = moment([2014, 0, i]).format('YYYY MM Do'); - testMoment = moment(ordinalStr, 'YYYY MM Do', true); - assert.ok(testMoment.isValid(), 'strict day of month ordinal parsing ' + i); - } - }); - - test('meridiem invariant', function (assert) { - var h, m, t1, t2; - for (h = 0; h < 24; ++h) { - for (m = 0; m < 60; m += 15) { - t1 = moment.utc([2000, 0, 1, h, m]); - t2 = moment.utc(t1.format('A h:mm'), 'A h:mm'); - assert.equal(t2.format('HH:mm'), t1.format('HH:mm'), - 'meridiem at ' + t1.format('HH:mm')); - } - } - }); - - test('date format correctness', function (assert) { - var data, tokens; - data = moment.localeData()._longDateFormat; - tokens = objectKeys(data); - each(tokens, function (srchToken) { - // Check each format string to make sure it does not contain any - // tokens that need to be expanded. - each(tokens, function (baseToken) { - // strip escaped sequences - var format = data[baseToken].replace(/(\[[^\]]*\])/g, ''); - assert.equal(false, !!~format.indexOf(srchToken), - 'contains ' + srchToken + ' in ' + baseToken); - }); - }); - }); - - test('month parsing correctness', function (assert) { - var i, m; - - if (locale === 'tr') { - // I can't fix it :( - expect(0); - return; - } - function tester(format) { - var r; - r = moment(m.format(format), format); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format); - r = moment(m.format(format).toLocaleUpperCase(), format); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' upper'); - r = moment(m.format(format).toLocaleLowerCase(), format); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' lower'); - - r = moment(m.format(format), format, true); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' strict'); - r = moment(m.format(format).toLocaleUpperCase(), format, true); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' upper strict'); - r = moment(m.format(format).toLocaleLowerCase(), format, true); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' lower strict'); - } - - for (i = 0; i < 12; ++i) { - m = moment([2015, i, 15, 18]); - tester('MMM'); - tester('MMM.'); - tester('MMMM'); - tester('MMMM.'); - } - }); - - test('weekday parsing correctness', function (assert) { - var i, m; - - if (locale === 'tr' || locale === 'az' || locale === 'ro') { - // tr, az: There is a lower-case letter (ı), that converted to - // upper then lower changes to i - // ro: there is the letter ț which behaves weird under IE8 - expect(0); - return; - } - function tester(format) { - var r, baseMsg = 'weekday ' + m.weekday() + ' fmt ' + format + ' ' + m.toISOString(); - r = moment(m.format(format), format); - assert.equal(r.weekday(), m.weekday(), baseMsg); - r = moment(m.format(format).toLocaleUpperCase(), format); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' upper'); - r = moment(m.format(format).toLocaleLowerCase(), format); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' lower'); - - r = moment(m.format(format), format, true); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' strict'); - r = moment(m.format(format).toLocaleUpperCase(), format, true); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' upper strict'); - r = moment(m.format(format).toLocaleLowerCase(), format, true); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' lower strict'); - } - - for (i = 0; i < 7; ++i) { - m = moment.utc([2015, 0, i + 1, 18]); - tester('dd'); - tester('ddd'); - tester('dddd'); - } - }); - - test('valid localeData', function (assert) { - assert.equal(moment().localeData().months().length, 12, 'months should return 12 months'); - assert.equal(moment().localeData().monthsShort().length, 12, 'monthsShort should return 12 months'); - assert.equal(moment().localeData().weekdays().length, 7, 'weekdays should return 7 days'); - assert.equal(moment().localeData().weekdaysShort().length, 7, 'weekdaysShort should return 7 days'); - assert.equal(moment().localeData().weekdaysMin().length, 7, 'monthsShort should return 7 days'); - }); -} - -function setupDeprecationHandler(test, moment$$1, scope) { - test._expectedDeprecations = null; - test._observedDeprecations = null; - test._oldSupress = moment$$1.suppressDeprecationWarnings; - moment$$1.suppressDeprecationWarnings = true; - test.expectedDeprecations = function () { - test._expectedDeprecations = arguments; - test._observedDeprecations = []; - }; - moment$$1.deprecationHandler = function (name, msg) { - var deprecationId = matchedDeprecation(name, msg, test._expectedDeprecations); - if (deprecationId === -1) { - throw new Error('Unexpected deprecation thrown name=' + - name + ' msg=' + msg); - } - test._observedDeprecations[deprecationId] = 1; - }; -} - -function teardownDeprecationHandler(test, moment$$1, scope) { - moment$$1.suppressDeprecationWarnings = test._oldSupress; - - if (test._expectedDeprecations != null) { - var missedDeprecations = []; - each(test._expectedDeprecations, function (deprecationPattern, id) { - if (test._observedDeprecations[id] !== 1) { - missedDeprecations.push(deprecationPattern); - } - }); - if (missedDeprecations.length !== 0) { - throw new Error('Expected deprecation warnings did not happen: ' + - missedDeprecations.join(' ')); - } - } -} - -function matchedDeprecation(name, msg, deprecations) { - if (deprecations == null) { - return -1; - } - for (var i = 0; i < deprecations.length; ++i) { - if (name != null && name === deprecations[i]) { - return i; - } - if (msg != null && msg.substring(0, deprecations[i].length) === deprecations[i]) { - return i; - } - } - return -1; -} - -/*global QUnit:false*/ - -var test = QUnit.test; - -var expect = QUnit.expect; - -function module$1 (name, lifecycle) { - QUnit.module(name, { - setup : function () { - moment.locale('en'); - moment.createFromInputFallback = function (config) { - throw new Error('input not handled by moment: ' + config._i); - }; - setupDeprecationHandler(test, moment, 'core'); - if (lifecycle && lifecycle.setup) { - lifecycle.setup(); - } - }, - teardown : function () { - teardownDeprecationHandler(test, moment, 'core'); - if (lifecycle && lifecycle.teardown) { - lifecycle.teardown(); - } - } - }); -} - -module$1('locale update'); - -test('calendar', function (assert) { - moment.defineLocale('cal', null); - moment.defineLocale('cal', { - calendar : { - sameDay: '[Today at] HH:mm', - nextDay: '[Tomorrow at] HH:mm', - nextWeek: '[Next week at] HH:mm', - lastDay: '[Yesterday at] HH:mm', - lastWeek: '[Last week at] HH:mm', - sameElse: '[whatever]' - } - }); - moment.updateLocale('cal', { - calendar: { - sameDay: '[Today] HH:mm', - nextDay: '[Tomorrow] HH:mm', - nextWeek: '[Next week] HH:mm' - } - }); - - moment.locale('cal'); - var anchor = moment.utc('2015-05-05T12:00:00', moment.ISO_8601); - assert.equal(anchor.clone().add(3, 'hours').calendar(anchor), 'Today 15:00', 'today uses child version'); - assert.equal(anchor.clone().add(1, 'day').calendar(anchor), 'Tomorrow 12:00', 'tomorrow uses child version'); - assert.equal(anchor.clone().add(3, 'days').calendar(anchor), 'Next week 12:00', 'next week uses child version'); - - assert.equal(anchor.clone().subtract(1, 'day').calendar(anchor), 'Yesterday at 12:00', 'yesterday uses parent version'); - assert.equal(anchor.clone().subtract(3, 'days').calendar(anchor), 'Last week at 12:00', 'last week uses parent version'); - assert.equal(anchor.clone().subtract(7, 'days').calendar(anchor), 'whatever', 'sameElse uses parent version -'); - assert.equal(anchor.clone().add(7, 'days').calendar(anchor), 'whatever', 'sameElse uses parent version +'); -}); - -test('missing', function (assert) { - moment.defineLocale('cal-2', null); - moment.defineLocale('cal-2', { - calendar: { - sameDay: '[Today at] HH:mm', - nextDay: '[Tomorrow at] HH:mm', - nextWeek: '[Next week at] HH:mm', - lastDay: '[Yesterday at] HH:mm', - lastWeek: '[Last week at] HH:mm', - sameElse: '[whatever]' - } - }); - moment.updateLocale('cal-2', { - }); - moment.locale('cal-2'); - var anchor = moment.utc('2015-05-05T12:00:00', moment.ISO_8601); - assert.equal(anchor.clone().add(3, 'hours').calendar(anchor), 'Today at 15:00', 'today uses parent version'); - assert.equal(anchor.clone().add(1, 'day').calendar(anchor), 'Tomorrow at 12:00', 'tomorrow uses parent version'); - assert.equal(anchor.clone().add(3, 'days').calendar(anchor), 'Next week at 12:00', 'next week uses parent version'); - assert.equal(anchor.clone().subtract(1, 'day').calendar(anchor), 'Yesterday at 12:00', 'yesterday uses parent version'); - assert.equal(anchor.clone().subtract(3, 'days').calendar(anchor), 'Last week at 12:00', 'last week uses parent version'); - assert.equal(anchor.clone().subtract(7, 'days').calendar(anchor), 'whatever', 'sameElse uses parent version -'); - assert.equal(anchor.clone().add(7, 'days').calendar(anchor), 'whatever', 'sameElse uses parent version +'); -}); - -// Test function vs obj both directions - -test('long date format', function (assert) { - moment.defineLocale('ldf', null); - moment.defineLocale('ldf', { - longDateFormat : { - LTS : 'h:mm:ss A', - LT : 'h:mm A', - L : 'MM/DD/YYYY', - LL : 'MMMM D, YYYY', - LLL : 'MMMM D, YYYY h:mm A', - LLLL : 'dddd, MMMM D, YYYY h:mm A' - } - }); - moment.updateLocale('ldf', { - longDateFormat: { - LLL : '[child] MMMM D, YYYY h:mm A', - LLLL : '[child] dddd, MMMM D, YYYY h:mm A' - } - }); - - moment.locale('ldf'); - var anchor = moment.utc('2015-09-06T12:34:56', moment.ISO_8601); - assert.equal(anchor.format('LTS'), '12:34:56 PM', 'LTS uses base'); - assert.equal(anchor.format('LT'), '12:34 PM', 'LT uses base'); - assert.equal(anchor.format('L'), '09/06/2015', 'L uses base'); - assert.equal(anchor.format('l'), '9/6/2015', 'l uses base'); - assert.equal(anchor.format('LL'), 'September 6, 2015', 'LL uses base'); - assert.equal(anchor.format('ll'), 'Sep 6, 2015', 'll uses base'); - assert.equal(anchor.format('LLL'), 'child September 6, 2015 12:34 PM', 'LLL uses child'); - assert.equal(anchor.format('lll'), 'child Sep 6, 2015 12:34 PM', 'lll uses child'); - assert.equal(anchor.format('LLLL'), 'child Sunday, September 6, 2015 12:34 PM', 'LLLL uses child'); - assert.equal(anchor.format('llll'), 'child Sun, Sep 6, 2015 12:34 PM', 'llll uses child'); -}); - -test('ordinal', function (assert) { - moment.defineLocale('ordinal-1', null); - moment.defineLocale('ordinal-1', { - ordinal : '%dx' - }); - moment.updateLocale('ordinal-1', { - ordinal : '%dy' - }); - - assert.equal(moment.utc('2015-02-03', moment.ISO_8601).format('Do'), '3y', 'ordinal uses child string'); - - moment.defineLocale('ordinal-2', null); - moment.defineLocale('ordinal-2', { - ordinal : '%dx' - }); - moment.updateLocale('ordinal-2', { - ordinal : function (num) { - return num + 'y'; - } - }); - - assert.equal(moment.utc('2015-02-03', moment.ISO_8601).format('Do'), '3y', 'ordinal uses child function'); - - moment.defineLocale('ordinal-3', null); - moment.defineLocale('ordinal-3', { - ordinal : function (num) { - return num + 'x'; - } - }); - moment.updateLocale('ordinal-3', { - ordinal : '%dy' - }); - - assert.equal(moment.utc('2015-02-03', moment.ISO_8601).format('Do'), '3y', 'ordinal uses child string (overwrite parent function)'); -}); - -test('ordinal parse', function (assert) { - moment.defineLocale('ordinal-parse-1', null); - moment.defineLocale('ordinal-parse-1', { - dayOfMonthOrdinalParse : /\d{1,2}x/ - }); - moment.updateLocale('ordinal-parse-1', { - dayOfMonthOrdinalParse : /\d{1,2}y/ - }); - - assert.ok(moment.utc('2015-01-1y', 'YYYY-MM-Do', true).isValid(), 'ordinal parse uses child'); - - moment.defineLocale('ordinal-parse-2', null); - moment.defineLocale('ordinal-parse-2', { - dayOfMonthOrdinalParse : /\d{1,2}x/ - }); - moment.updateLocale('ordinal-parse-2', { - dayOfMonthOrdinalParse : /\d{1,2}/ - }); - - assert.ok(moment.utc('2015-01-1', 'YYYY-MM-Do', true).isValid(), 'ordinal parse uses child (default)'); -}); - -test('months', function (assert) { - moment.defineLocale('months', null); - moment.defineLocale('months', { - months : 'One_Two_Three_Four_Five_Six_Seven_Eight_Nine_Ten_Eleven_Twelve'.split('_') - }); - moment.updateLocale('months', { - parentLocale: 'base-months', - months : 'First_Second_Third_Fourth_Fifth_Sixth_Seventh_Eighth_Ninth_Tenth_Eleventh_Twelveth '.split('_') - }); - assert.ok(moment.utc('2015-01-01', 'YYYY-MM-DD').format('MMMM'), 'First', 'months uses child'); -}); - -}))); - - -;(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' - && typeof require === 'function' ? factory(require('../../moment')) : - typeof define === 'function' && define.amd ? define(['../../moment'], factory) : - factory(global.moment) -}(this, (function (moment) { 'use strict'; - -function each(array, callback) { - var i; - for (i = 0; i < array.length; i++) { - callback(array[i], i, array); - } -} - -function objectKeys(obj) { - if (Object.keys) { - return Object.keys(obj); - } else { - // IE8 - var res = [], i; - for (i in obj) { - if (obj.hasOwnProperty(i)) { - res.push(i); - } - } - return res; - } -} - -// Pick the first defined of two or three arguments. - -function defineCommonLocaleTests(locale, options) { - test('lenient day of month ordinal parsing', function (assert) { - var i, ordinalStr, testMoment; - for (i = 1; i <= 31; ++i) { - ordinalStr = moment([2014, 0, i]).format('YYYY MM Do'); - testMoment = moment(ordinalStr, 'YYYY MM Do'); - assert.equal(testMoment.year(), 2014, - 'lenient day of month ordinal parsing ' + i + ' year check'); - assert.equal(testMoment.month(), 0, - 'lenient day of month ordinal parsing ' + i + ' month check'); - assert.equal(testMoment.date(), i, - 'lenient day of month ordinal parsing ' + i + ' date check'); - } - }); - - test('lenient day of month ordinal parsing of number', function (assert) { - var i, testMoment; - for (i = 1; i <= 31; ++i) { - testMoment = moment('2014 01 ' + i, 'YYYY MM Do'); - assert.equal(testMoment.year(), 2014, - 'lenient day of month ordinal parsing of number ' + i + ' year check'); - assert.equal(testMoment.month(), 0, - 'lenient day of month ordinal parsing of number ' + i + ' month check'); - assert.equal(testMoment.date(), i, - 'lenient day of month ordinal parsing of number ' + i + ' date check'); - } - }); - - test('strict day of month ordinal parsing', function (assert) { - var i, ordinalStr, testMoment; - for (i = 1; i <= 31; ++i) { - ordinalStr = moment([2014, 0, i]).format('YYYY MM Do'); - testMoment = moment(ordinalStr, 'YYYY MM Do', true); - assert.ok(testMoment.isValid(), 'strict day of month ordinal parsing ' + i); - } - }); - - test('meridiem invariant', function (assert) { - var h, m, t1, t2; - for (h = 0; h < 24; ++h) { - for (m = 0; m < 60; m += 15) { - t1 = moment.utc([2000, 0, 1, h, m]); - t2 = moment.utc(t1.format('A h:mm'), 'A h:mm'); - assert.equal(t2.format('HH:mm'), t1.format('HH:mm'), - 'meridiem at ' + t1.format('HH:mm')); - } - } - }); - - test('date format correctness', function (assert) { - var data, tokens; - data = moment.localeData()._longDateFormat; - tokens = objectKeys(data); - each(tokens, function (srchToken) { - // Check each format string to make sure it does not contain any - // tokens that need to be expanded. - each(tokens, function (baseToken) { - // strip escaped sequences - var format = data[baseToken].replace(/(\[[^\]]*\])/g, ''); - assert.equal(false, !!~format.indexOf(srchToken), - 'contains ' + srchToken + ' in ' + baseToken); - }); - }); - }); - - test('month parsing correctness', function (assert) { - var i, m; - - if (locale === 'tr') { - // I can't fix it :( - expect(0); - return; - } - function tester(format) { - var r; - r = moment(m.format(format), format); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format); - r = moment(m.format(format).toLocaleUpperCase(), format); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' upper'); - r = moment(m.format(format).toLocaleLowerCase(), format); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' lower'); - - r = moment(m.format(format), format, true); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' strict'); - r = moment(m.format(format).toLocaleUpperCase(), format, true); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' upper strict'); - r = moment(m.format(format).toLocaleLowerCase(), format, true); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' lower strict'); - } - - for (i = 0; i < 12; ++i) { - m = moment([2015, i, 15, 18]); - tester('MMM'); - tester('MMM.'); - tester('MMMM'); - tester('MMMM.'); - } - }); - - test('weekday parsing correctness', function (assert) { - var i, m; - - if (locale === 'tr' || locale === 'az' || locale === 'ro') { - // tr, az: There is a lower-case letter (ı), that converted to - // upper then lower changes to i - // ro: there is the letter ț which behaves weird under IE8 - expect(0); - return; - } - function tester(format) { - var r, baseMsg = 'weekday ' + m.weekday() + ' fmt ' + format + ' ' + m.toISOString(); - r = moment(m.format(format), format); - assert.equal(r.weekday(), m.weekday(), baseMsg); - r = moment(m.format(format).toLocaleUpperCase(), format); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' upper'); - r = moment(m.format(format).toLocaleLowerCase(), format); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' lower'); - - r = moment(m.format(format), format, true); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' strict'); - r = moment(m.format(format).toLocaleUpperCase(), format, true); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' upper strict'); - r = moment(m.format(format).toLocaleLowerCase(), format, true); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' lower strict'); - } - - for (i = 0; i < 7; ++i) { - m = moment.utc([2015, 0, i + 1, 18]); - tester('dd'); - tester('ddd'); - tester('dddd'); - } - }); - - test('valid localeData', function (assert) { - assert.equal(moment().localeData().months().length, 12, 'months should return 12 months'); - assert.equal(moment().localeData().monthsShort().length, 12, 'monthsShort should return 12 months'); - assert.equal(moment().localeData().weekdays().length, 7, 'weekdays should return 7 days'); - assert.equal(moment().localeData().weekdaysShort().length, 7, 'weekdaysShort should return 7 days'); - assert.equal(moment().localeData().weekdaysMin().length, 7, 'monthsShort should return 7 days'); - }); -} - -function setupDeprecationHandler(test, moment$$1, scope) { - test._expectedDeprecations = null; - test._observedDeprecations = null; - test._oldSupress = moment$$1.suppressDeprecationWarnings; - moment$$1.suppressDeprecationWarnings = true; - test.expectedDeprecations = function () { - test._expectedDeprecations = arguments; - test._observedDeprecations = []; - }; - moment$$1.deprecationHandler = function (name, msg) { - var deprecationId = matchedDeprecation(name, msg, test._expectedDeprecations); - if (deprecationId === -1) { - throw new Error('Unexpected deprecation thrown name=' + - name + ' msg=' + msg); - } - test._observedDeprecations[deprecationId] = 1; - }; -} - -function teardownDeprecationHandler(test, moment$$1, scope) { - moment$$1.suppressDeprecationWarnings = test._oldSupress; - - if (test._expectedDeprecations != null) { - var missedDeprecations = []; - each(test._expectedDeprecations, function (deprecationPattern, id) { - if (test._observedDeprecations[id] !== 1) { - missedDeprecations.push(deprecationPattern); - } - }); - if (missedDeprecations.length !== 0) { - throw new Error('Expected deprecation warnings did not happen: ' + - missedDeprecations.join(' ')); - } - } -} - -function matchedDeprecation(name, msg, deprecations) { - if (deprecations == null) { - return -1; - } - for (var i = 0; i < deprecations.length; ++i) { - if (name != null && name === deprecations[i]) { - return i; - } - if (msg != null && msg.substring(0, deprecations[i].length) === deprecations[i]) { - return i; - } - } - return -1; -} - -/*global QUnit:false*/ - -var test = QUnit.test; - -var expect = QUnit.expect; - -function module$1 (name, lifecycle) { - QUnit.module(name, { - setup : function () { - moment.locale('en'); - moment.createFromInputFallback = function (config) { - throw new Error('input not handled by moment: ' + config._i); - }; - setupDeprecationHandler(test, moment, 'core'); - if (lifecycle && lifecycle.setup) { - lifecycle.setup(); - } - }, - teardown : function () { - teardownDeprecationHandler(test, moment, 'core'); - if (lifecycle && lifecycle.teardown) { - lifecycle.teardown(); - } - } - }); -} - -module$1('min max'); - -test('min', function (assert) { - var now = moment(), - future = now.clone().add(1, 'month'), - past = now.clone().subtract(1, 'month'), - invalid = moment.invalid(); - - assert.equal(moment.min(now, future, past), past, 'min(now, future, past)'); - assert.equal(moment.min(future, now, past), past, 'min(future, now, past)'); - assert.equal(moment.min(future, past, now), past, 'min(future, past, now)'); - assert.equal(moment.min(past, future, now), past, 'min(past, future, now)'); - assert.equal(moment.min(now, past), past, 'min(now, past)'); - assert.equal(moment.min(past, now), past, 'min(past, now)'); - assert.equal(moment.min(now), now, 'min(now, past)'); - - assert.equal(moment.min([now, future, past]), past, 'min([now, future, past])'); - assert.equal(moment.min([now, past]), past, 'min(now, past)'); - assert.equal(moment.min([now]), now, 'min(now)'); - - assert.equal(moment.min([now, invalid]), invalid, 'min(now, invalid)'); - assert.equal(moment.min([invalid, now]), invalid, 'min(invalid, now)'); -}); - -test('max', function (assert) { - var now = moment(), - future = now.clone().add(1, 'month'), - past = now.clone().subtract(1, 'month'), - invalid = moment.invalid(); - - assert.equal(moment.max(now, future, past), future, 'max(now, future, past)'); - assert.equal(moment.max(future, now, past), future, 'max(future, now, past)'); - assert.equal(moment.max(future, past, now), future, 'max(future, past, now)'); - assert.equal(moment.max(past, future, now), future, 'max(past, future, now)'); - assert.equal(moment.max(now, past), now, 'max(now, past)'); - assert.equal(moment.max(past, now), now, 'max(past, now)'); - assert.equal(moment.max(now), now, 'max(now, past)'); - - assert.equal(moment.max([now, future, past]), future, 'max([now, future, past])'); - assert.equal(moment.max([now, past]), now, 'max(now, past)'); - assert.equal(moment.max([now]), now, 'max(now)'); - - assert.equal(moment.max([now, invalid]), invalid, 'max(now, invalid)'); - assert.equal(moment.max([invalid, now]), invalid, 'max(invalid, now)'); -}); - -}))); - - -;(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' - && typeof require === 'function' ? factory(require('../../moment')) : - typeof define === 'function' && define.amd ? define(['../../moment'], factory) : - factory(global.moment) -}(this, (function (moment) { 'use strict'; - -function each(array, callback) { - var i; - for (i = 0; i < array.length; i++) { - callback(array[i], i, array); - } -} - -function objectKeys(obj) { - if (Object.keys) { - return Object.keys(obj); - } else { - // IE8 - var res = [], i; - for (i in obj) { - if (obj.hasOwnProperty(i)) { - res.push(i); - } - } - return res; - } -} - -// Pick the first defined of two or three arguments. - -function defineCommonLocaleTests(locale, options) { - test('lenient day of month ordinal parsing', function (assert) { - var i, ordinalStr, testMoment; - for (i = 1; i <= 31; ++i) { - ordinalStr = moment([2014, 0, i]).format('YYYY MM Do'); - testMoment = moment(ordinalStr, 'YYYY MM Do'); - assert.equal(testMoment.year(), 2014, - 'lenient day of month ordinal parsing ' + i + ' year check'); - assert.equal(testMoment.month(), 0, - 'lenient day of month ordinal parsing ' + i + ' month check'); - assert.equal(testMoment.date(), i, - 'lenient day of month ordinal parsing ' + i + ' date check'); - } - }); - - test('lenient day of month ordinal parsing of number', function (assert) { - var i, testMoment; - for (i = 1; i <= 31; ++i) { - testMoment = moment('2014 01 ' + i, 'YYYY MM Do'); - assert.equal(testMoment.year(), 2014, - 'lenient day of month ordinal parsing of number ' + i + ' year check'); - assert.equal(testMoment.month(), 0, - 'lenient day of month ordinal parsing of number ' + i + ' month check'); - assert.equal(testMoment.date(), i, - 'lenient day of month ordinal parsing of number ' + i + ' date check'); - } - }); - - test('strict day of month ordinal parsing', function (assert) { - var i, ordinalStr, testMoment; - for (i = 1; i <= 31; ++i) { - ordinalStr = moment([2014, 0, i]).format('YYYY MM Do'); - testMoment = moment(ordinalStr, 'YYYY MM Do', true); - assert.ok(testMoment.isValid(), 'strict day of month ordinal parsing ' + i); - } - }); - - test('meridiem invariant', function (assert) { - var h, m, t1, t2; - for (h = 0; h < 24; ++h) { - for (m = 0; m < 60; m += 15) { - t1 = moment.utc([2000, 0, 1, h, m]); - t2 = moment.utc(t1.format('A h:mm'), 'A h:mm'); - assert.equal(t2.format('HH:mm'), t1.format('HH:mm'), - 'meridiem at ' + t1.format('HH:mm')); - } - } - }); - - test('date format correctness', function (assert) { - var data, tokens; - data = moment.localeData()._longDateFormat; - tokens = objectKeys(data); - each(tokens, function (srchToken) { - // Check each format string to make sure it does not contain any - // tokens that need to be expanded. - each(tokens, function (baseToken) { - // strip escaped sequences - var format = data[baseToken].replace(/(\[[^\]]*\])/g, ''); - assert.equal(false, !!~format.indexOf(srchToken), - 'contains ' + srchToken + ' in ' + baseToken); - }); - }); - }); - - test('month parsing correctness', function (assert) { - var i, m; - - if (locale === 'tr') { - // I can't fix it :( - expect(0); - return; - } - function tester(format) { - var r; - r = moment(m.format(format), format); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format); - r = moment(m.format(format).toLocaleUpperCase(), format); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' upper'); - r = moment(m.format(format).toLocaleLowerCase(), format); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' lower'); - - r = moment(m.format(format), format, true); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' strict'); - r = moment(m.format(format).toLocaleUpperCase(), format, true); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' upper strict'); - r = moment(m.format(format).toLocaleLowerCase(), format, true); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' lower strict'); - } - - for (i = 0; i < 12; ++i) { - m = moment([2015, i, 15, 18]); - tester('MMM'); - tester('MMM.'); - tester('MMMM'); - tester('MMMM.'); - } - }); - - test('weekday parsing correctness', function (assert) { - var i, m; - - if (locale === 'tr' || locale === 'az' || locale === 'ro') { - // tr, az: There is a lower-case letter (ı), that converted to - // upper then lower changes to i - // ro: there is the letter ț which behaves weird under IE8 - expect(0); - return; - } - function tester(format) { - var r, baseMsg = 'weekday ' + m.weekday() + ' fmt ' + format + ' ' + m.toISOString(); - r = moment(m.format(format), format); - assert.equal(r.weekday(), m.weekday(), baseMsg); - r = moment(m.format(format).toLocaleUpperCase(), format); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' upper'); - r = moment(m.format(format).toLocaleLowerCase(), format); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' lower'); - - r = moment(m.format(format), format, true); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' strict'); - r = moment(m.format(format).toLocaleUpperCase(), format, true); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' upper strict'); - r = moment(m.format(format).toLocaleLowerCase(), format, true); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' lower strict'); - } - - for (i = 0; i < 7; ++i) { - m = moment.utc([2015, 0, i + 1, 18]); - tester('dd'); - tester('ddd'); - tester('dddd'); - } - }); - - test('valid localeData', function (assert) { - assert.equal(moment().localeData().months().length, 12, 'months should return 12 months'); - assert.equal(moment().localeData().monthsShort().length, 12, 'monthsShort should return 12 months'); - assert.equal(moment().localeData().weekdays().length, 7, 'weekdays should return 7 days'); - assert.equal(moment().localeData().weekdaysShort().length, 7, 'weekdaysShort should return 7 days'); - assert.equal(moment().localeData().weekdaysMin().length, 7, 'monthsShort should return 7 days'); - }); -} - -function setupDeprecationHandler(test, moment$$1, scope) { - test._expectedDeprecations = null; - test._observedDeprecations = null; - test._oldSupress = moment$$1.suppressDeprecationWarnings; - moment$$1.suppressDeprecationWarnings = true; - test.expectedDeprecations = function () { - test._expectedDeprecations = arguments; - test._observedDeprecations = []; - }; - moment$$1.deprecationHandler = function (name, msg) { - var deprecationId = matchedDeprecation(name, msg, test._expectedDeprecations); - if (deprecationId === -1) { - throw new Error('Unexpected deprecation thrown name=' + - name + ' msg=' + msg); - } - test._observedDeprecations[deprecationId] = 1; - }; -} - -function teardownDeprecationHandler(test, moment$$1, scope) { - moment$$1.suppressDeprecationWarnings = test._oldSupress; - - if (test._expectedDeprecations != null) { - var missedDeprecations = []; - each(test._expectedDeprecations, function (deprecationPattern, id) { - if (test._observedDeprecations[id] !== 1) { - missedDeprecations.push(deprecationPattern); - } - }); - if (missedDeprecations.length !== 0) { - throw new Error('Expected deprecation warnings did not happen: ' + - missedDeprecations.join(' ')); - } - } -} - -function matchedDeprecation(name, msg, deprecations) { - if (deprecations == null) { - return -1; - } - for (var i = 0; i < deprecations.length; ++i) { - if (name != null && name === deprecations[i]) { - return i; - } - if (msg != null && msg.substring(0, deprecations[i].length) === deprecations[i]) { - return i; - } - } - return -1; -} - -/*global QUnit:false*/ - -var test = QUnit.test; - -var expect = QUnit.expect; - -function module$1 (name, lifecycle) { - QUnit.module(name, { - setup : function () { - moment.locale('en'); - moment.createFromInputFallback = function (config) { - throw new Error('input not handled by moment: ' + config._i); - }; - setupDeprecationHandler(test, moment, 'core'); - if (lifecycle && lifecycle.setup) { - lifecycle.setup(); - } - }, - teardown : function () { - teardownDeprecationHandler(test, moment, 'core'); - if (lifecycle && lifecycle.teardown) { - lifecycle.teardown(); - } - } - }); -} - -module$1('mutable'); - -test('manipulation methods', function (assert) { - var m = moment(); - - assert.equal(m, m.year(2011), 'year() should be mutable'); - assert.equal(m, m.month(1), 'month() should be mutable'); - assert.equal(m, m.hours(7), 'hours() should be mutable'); - assert.equal(m, m.minutes(33), 'minutes() should be mutable'); - assert.equal(m, m.seconds(44), 'seconds() should be mutable'); - assert.equal(m, m.milliseconds(55), 'milliseconds() should be mutable'); - assert.equal(m, m.day(2), 'day() should be mutable'); - assert.equal(m, m.startOf('week'), 'startOf() should be mutable'); - assert.equal(m, m.add(1, 'days'), 'add() should be mutable'); - assert.equal(m, m.subtract(2, 'years'), 'subtract() should be mutable'); - assert.equal(m, m.local(), 'local() should be mutable'); - assert.equal(m, m.utc(), 'utc() should be mutable'); -}); - -test('non mutable methods', function (assert) { - var m = moment(); - assert.notEqual(m, m.clone(), 'clone() should not be mutable'); -}); - -}))); - - -;(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' - && typeof require === 'function' ? factory(require('../../moment')) : - typeof define === 'function' && define.amd ? define(['../../moment'], factory) : - factory(global.moment) -}(this, (function (moment) { 'use strict'; - -function each(array, callback) { - var i; - for (i = 0; i < array.length; i++) { - callback(array[i], i, array); - } -} - -function objectKeys(obj) { - if (Object.keys) { - return Object.keys(obj); - } else { - // IE8 - var res = [], i; - for (i in obj) { - if (obj.hasOwnProperty(i)) { - res.push(i); - } - } - return res; - } -} - -// Pick the first defined of two or three arguments. - -function defineCommonLocaleTests(locale, options) { - test('lenient day of month ordinal parsing', function (assert) { - var i, ordinalStr, testMoment; - for (i = 1; i <= 31; ++i) { - ordinalStr = moment([2014, 0, i]).format('YYYY MM Do'); - testMoment = moment(ordinalStr, 'YYYY MM Do'); - assert.equal(testMoment.year(), 2014, - 'lenient day of month ordinal parsing ' + i + ' year check'); - assert.equal(testMoment.month(), 0, - 'lenient day of month ordinal parsing ' + i + ' month check'); - assert.equal(testMoment.date(), i, - 'lenient day of month ordinal parsing ' + i + ' date check'); - } - }); - - test('lenient day of month ordinal parsing of number', function (assert) { - var i, testMoment; - for (i = 1; i <= 31; ++i) { - testMoment = moment('2014 01 ' + i, 'YYYY MM Do'); - assert.equal(testMoment.year(), 2014, - 'lenient day of month ordinal parsing of number ' + i + ' year check'); - assert.equal(testMoment.month(), 0, - 'lenient day of month ordinal parsing of number ' + i + ' month check'); - assert.equal(testMoment.date(), i, - 'lenient day of month ordinal parsing of number ' + i + ' date check'); - } - }); - - test('strict day of month ordinal parsing', function (assert) { - var i, ordinalStr, testMoment; - for (i = 1; i <= 31; ++i) { - ordinalStr = moment([2014, 0, i]).format('YYYY MM Do'); - testMoment = moment(ordinalStr, 'YYYY MM Do', true); - assert.ok(testMoment.isValid(), 'strict day of month ordinal parsing ' + i); - } - }); - - test('meridiem invariant', function (assert) { - var h, m, t1, t2; - for (h = 0; h < 24; ++h) { - for (m = 0; m < 60; m += 15) { - t1 = moment.utc([2000, 0, 1, h, m]); - t2 = moment.utc(t1.format('A h:mm'), 'A h:mm'); - assert.equal(t2.format('HH:mm'), t1.format('HH:mm'), - 'meridiem at ' + t1.format('HH:mm')); - } - } - }); - - test('date format correctness', function (assert) { - var data, tokens; - data = moment.localeData()._longDateFormat; - tokens = objectKeys(data); - each(tokens, function (srchToken) { - // Check each format string to make sure it does not contain any - // tokens that need to be expanded. - each(tokens, function (baseToken) { - // strip escaped sequences - var format = data[baseToken].replace(/(\[[^\]]*\])/g, ''); - assert.equal(false, !!~format.indexOf(srchToken), - 'contains ' + srchToken + ' in ' + baseToken); - }); - }); - }); - - test('month parsing correctness', function (assert) { - var i, m; - - if (locale === 'tr') { - // I can't fix it :( - expect(0); - return; - } - function tester(format) { - var r; - r = moment(m.format(format), format); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format); - r = moment(m.format(format).toLocaleUpperCase(), format); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' upper'); - r = moment(m.format(format).toLocaleLowerCase(), format); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' lower'); - - r = moment(m.format(format), format, true); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' strict'); - r = moment(m.format(format).toLocaleUpperCase(), format, true); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' upper strict'); - r = moment(m.format(format).toLocaleLowerCase(), format, true); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' lower strict'); - } - - for (i = 0; i < 12; ++i) { - m = moment([2015, i, 15, 18]); - tester('MMM'); - tester('MMM.'); - tester('MMMM'); - tester('MMMM.'); - } - }); - - test('weekday parsing correctness', function (assert) { - var i, m; - - if (locale === 'tr' || locale === 'az' || locale === 'ro') { - // tr, az: There is a lower-case letter (ı), that converted to - // upper then lower changes to i - // ro: there is the letter ț which behaves weird under IE8 - expect(0); - return; - } - function tester(format) { - var r, baseMsg = 'weekday ' + m.weekday() + ' fmt ' + format + ' ' + m.toISOString(); - r = moment(m.format(format), format); - assert.equal(r.weekday(), m.weekday(), baseMsg); - r = moment(m.format(format).toLocaleUpperCase(), format); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' upper'); - r = moment(m.format(format).toLocaleLowerCase(), format); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' lower'); - - r = moment(m.format(format), format, true); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' strict'); - r = moment(m.format(format).toLocaleUpperCase(), format, true); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' upper strict'); - r = moment(m.format(format).toLocaleLowerCase(), format, true); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' lower strict'); - } - - for (i = 0; i < 7; ++i) { - m = moment.utc([2015, 0, i + 1, 18]); - tester('dd'); - tester('ddd'); - tester('dddd'); - } - }); - - test('valid localeData', function (assert) { - assert.equal(moment().localeData().months().length, 12, 'months should return 12 months'); - assert.equal(moment().localeData().monthsShort().length, 12, 'monthsShort should return 12 months'); - assert.equal(moment().localeData().weekdays().length, 7, 'weekdays should return 7 days'); - assert.equal(moment().localeData().weekdaysShort().length, 7, 'weekdaysShort should return 7 days'); - assert.equal(moment().localeData().weekdaysMin().length, 7, 'monthsShort should return 7 days'); - }); -} - -function setupDeprecationHandler(test, moment$$1, scope) { - test._expectedDeprecations = null; - test._observedDeprecations = null; - test._oldSupress = moment$$1.suppressDeprecationWarnings; - moment$$1.suppressDeprecationWarnings = true; - test.expectedDeprecations = function () { - test._expectedDeprecations = arguments; - test._observedDeprecations = []; - }; - moment$$1.deprecationHandler = function (name, msg) { - var deprecationId = matchedDeprecation(name, msg, test._expectedDeprecations); - if (deprecationId === -1) { - throw new Error('Unexpected deprecation thrown name=' + - name + ' msg=' + msg); - } - test._observedDeprecations[deprecationId] = 1; - }; -} - -function teardownDeprecationHandler(test, moment$$1, scope) { - moment$$1.suppressDeprecationWarnings = test._oldSupress; - - if (test._expectedDeprecations != null) { - var missedDeprecations = []; - each(test._expectedDeprecations, function (deprecationPattern, id) { - if (test._observedDeprecations[id] !== 1) { - missedDeprecations.push(deprecationPattern); - } - }); - if (missedDeprecations.length !== 0) { - throw new Error('Expected deprecation warnings did not happen: ' + - missedDeprecations.join(' ')); - } - } -} - -function matchedDeprecation(name, msg, deprecations) { - if (deprecations == null) { - return -1; - } - for (var i = 0; i < deprecations.length; ++i) { - if (name != null && name === deprecations[i]) { - return i; - } - if (msg != null && msg.substring(0, deprecations[i].length) === deprecations[i]) { - return i; - } - } - return -1; -} - -/*global QUnit:false*/ - -var test = QUnit.test; - -var expect = QUnit.expect; - -function module$1 (name, lifecycle) { - QUnit.module(name, { - setup : function () { - moment.locale('en'); - moment.createFromInputFallback = function (config) { - throw new Error('input not handled by moment: ' + config._i); - }; - setupDeprecationHandler(test, moment, 'core'); - if (lifecycle && lifecycle.setup) { - lifecycle.setup(); - } - }, - teardown : function () { - teardownDeprecationHandler(test, moment, 'core'); - if (lifecycle && lifecycle.teardown) { - lifecycle.teardown(); - } - } - }); -} - -module$1('normalize units'); - -test('normalize units', function (assert) { - var fullKeys = ['year', 'quarter', 'month', 'isoWeek', 'week', 'day', 'hour', 'minute', 'second', 'millisecond', 'date', 'dayOfYear', 'weekday', 'isoWeekday', 'weekYear', 'isoWeekYear'], - aliases = ['y', 'Q', 'M', 'W', 'w', 'd', 'h', 'm', 's', 'ms', 'D', 'DDD', 'e', 'E', 'gg', 'GG'], - length = fullKeys.length, - fullKey, - fullKeyCaps, - fullKeyPlural, - fullKeyCapsPlural, - fullKeyLower, - alias, - index; - - for (index = 0; index < length; index += 1) { - fullKey = fullKeys[index]; - fullKeyCaps = fullKey.toUpperCase(); - fullKeyLower = fullKey.toLowerCase(); - fullKeyPlural = fullKey + 's'; - fullKeyCapsPlural = fullKeyCaps + 's'; - alias = aliases[index]; - assert.equal(moment.normalizeUnits(fullKey), fullKey, 'Testing full key ' + fullKey); - assert.equal(moment.normalizeUnits(fullKeyCaps), fullKey, 'Testing full key capitalised ' + fullKey); - assert.equal(moment.normalizeUnits(fullKeyPlural), fullKey, 'Testing full key plural ' + fullKey); - assert.equal(moment.normalizeUnits(fullKeyCapsPlural), fullKey, 'Testing full key capitalised and plural ' + fullKey); - assert.equal(moment.normalizeUnits(alias), fullKey, 'Testing alias ' + fullKey); - } -}); - -}))); - - -;(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' - && typeof require === 'function' ? factory(require('../../moment')) : - typeof define === 'function' && define.amd ? define(['../../moment'], factory) : - factory(global.moment) -}(this, (function (moment) { 'use strict'; - -function each(array, callback) { - var i; - for (i = 0; i < array.length; i++) { - callback(array[i], i, array); - } -} - -function objectKeys(obj) { - if (Object.keys) { - return Object.keys(obj); - } else { - // IE8 - var res = [], i; - for (i in obj) { - if (obj.hasOwnProperty(i)) { - res.push(i); - } - } - return res; - } -} - -// Pick the first defined of two or three arguments. - -function defineCommonLocaleTests(locale, options) { - test('lenient day of month ordinal parsing', function (assert) { - var i, ordinalStr, testMoment; - for (i = 1; i <= 31; ++i) { - ordinalStr = moment([2014, 0, i]).format('YYYY MM Do'); - testMoment = moment(ordinalStr, 'YYYY MM Do'); - assert.equal(testMoment.year(), 2014, - 'lenient day of month ordinal parsing ' + i + ' year check'); - assert.equal(testMoment.month(), 0, - 'lenient day of month ordinal parsing ' + i + ' month check'); - assert.equal(testMoment.date(), i, - 'lenient day of month ordinal parsing ' + i + ' date check'); - } - }); - - test('lenient day of month ordinal parsing of number', function (assert) { - var i, testMoment; - for (i = 1; i <= 31; ++i) { - testMoment = moment('2014 01 ' + i, 'YYYY MM Do'); - assert.equal(testMoment.year(), 2014, - 'lenient day of month ordinal parsing of number ' + i + ' year check'); - assert.equal(testMoment.month(), 0, - 'lenient day of month ordinal parsing of number ' + i + ' month check'); - assert.equal(testMoment.date(), i, - 'lenient day of month ordinal parsing of number ' + i + ' date check'); - } - }); - - test('strict day of month ordinal parsing', function (assert) { - var i, ordinalStr, testMoment; - for (i = 1; i <= 31; ++i) { - ordinalStr = moment([2014, 0, i]).format('YYYY MM Do'); - testMoment = moment(ordinalStr, 'YYYY MM Do', true); - assert.ok(testMoment.isValid(), 'strict day of month ordinal parsing ' + i); - } - }); - - test('meridiem invariant', function (assert) { - var h, m, t1, t2; - for (h = 0; h < 24; ++h) { - for (m = 0; m < 60; m += 15) { - t1 = moment.utc([2000, 0, 1, h, m]); - t2 = moment.utc(t1.format('A h:mm'), 'A h:mm'); - assert.equal(t2.format('HH:mm'), t1.format('HH:mm'), - 'meridiem at ' + t1.format('HH:mm')); - } - } - }); - - test('date format correctness', function (assert) { - var data, tokens; - data = moment.localeData()._longDateFormat; - tokens = objectKeys(data); - each(tokens, function (srchToken) { - // Check each format string to make sure it does not contain any - // tokens that need to be expanded. - each(tokens, function (baseToken) { - // strip escaped sequences - var format = data[baseToken].replace(/(\[[^\]]*\])/g, ''); - assert.equal(false, !!~format.indexOf(srchToken), - 'contains ' + srchToken + ' in ' + baseToken); - }); - }); - }); - - test('month parsing correctness', function (assert) { - var i, m; - - if (locale === 'tr') { - // I can't fix it :( - expect(0); - return; - } - function tester(format) { - var r; - r = moment(m.format(format), format); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format); - r = moment(m.format(format).toLocaleUpperCase(), format); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' upper'); - r = moment(m.format(format).toLocaleLowerCase(), format); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' lower'); - - r = moment(m.format(format), format, true); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' strict'); - r = moment(m.format(format).toLocaleUpperCase(), format, true); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' upper strict'); - r = moment(m.format(format).toLocaleLowerCase(), format, true); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' lower strict'); - } - - for (i = 0; i < 12; ++i) { - m = moment([2015, i, 15, 18]); - tester('MMM'); - tester('MMM.'); - tester('MMMM'); - tester('MMMM.'); - } - }); - - test('weekday parsing correctness', function (assert) { - var i, m; - - if (locale === 'tr' || locale === 'az' || locale === 'ro') { - // tr, az: There is a lower-case letter (ı), that converted to - // upper then lower changes to i - // ro: there is the letter ț which behaves weird under IE8 - expect(0); - return; - } - function tester(format) { - var r, baseMsg = 'weekday ' + m.weekday() + ' fmt ' + format + ' ' + m.toISOString(); - r = moment(m.format(format), format); - assert.equal(r.weekday(), m.weekday(), baseMsg); - r = moment(m.format(format).toLocaleUpperCase(), format); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' upper'); - r = moment(m.format(format).toLocaleLowerCase(), format); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' lower'); - - r = moment(m.format(format), format, true); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' strict'); - r = moment(m.format(format).toLocaleUpperCase(), format, true); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' upper strict'); - r = moment(m.format(format).toLocaleLowerCase(), format, true); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' lower strict'); - } - - for (i = 0; i < 7; ++i) { - m = moment.utc([2015, 0, i + 1, 18]); - tester('dd'); - tester('ddd'); - tester('dddd'); - } - }); - - test('valid localeData', function (assert) { - assert.equal(moment().localeData().months().length, 12, 'months should return 12 months'); - assert.equal(moment().localeData().monthsShort().length, 12, 'monthsShort should return 12 months'); - assert.equal(moment().localeData().weekdays().length, 7, 'weekdays should return 7 days'); - assert.equal(moment().localeData().weekdaysShort().length, 7, 'weekdaysShort should return 7 days'); - assert.equal(moment().localeData().weekdaysMin().length, 7, 'monthsShort should return 7 days'); - }); -} - -function setupDeprecationHandler(test, moment$$1, scope) { - test._expectedDeprecations = null; - test._observedDeprecations = null; - test._oldSupress = moment$$1.suppressDeprecationWarnings; - moment$$1.suppressDeprecationWarnings = true; - test.expectedDeprecations = function () { - test._expectedDeprecations = arguments; - test._observedDeprecations = []; - }; - moment$$1.deprecationHandler = function (name, msg) { - var deprecationId = matchedDeprecation(name, msg, test._expectedDeprecations); - if (deprecationId === -1) { - throw new Error('Unexpected deprecation thrown name=' + - name + ' msg=' + msg); - } - test._observedDeprecations[deprecationId] = 1; - }; -} - -function teardownDeprecationHandler(test, moment$$1, scope) { - moment$$1.suppressDeprecationWarnings = test._oldSupress; - - if (test._expectedDeprecations != null) { - var missedDeprecations = []; - each(test._expectedDeprecations, function (deprecationPattern, id) { - if (test._observedDeprecations[id] !== 1) { - missedDeprecations.push(deprecationPattern); - } - }); - if (missedDeprecations.length !== 0) { - throw new Error('Expected deprecation warnings did not happen: ' + - missedDeprecations.join(' ')); - } - } -} - -function matchedDeprecation(name, msg, deprecations) { - if (deprecations == null) { - return -1; - } - for (var i = 0; i < deprecations.length; ++i) { - if (name != null && name === deprecations[i]) { - return i; - } - if (msg != null && msg.substring(0, deprecations[i].length) === deprecations[i]) { - return i; - } - } - return -1; -} - -/*global QUnit:false*/ - -var test = QUnit.test; - -var expect = QUnit.expect; - -function module$1 (name, lifecycle) { - QUnit.module(name, { - setup : function () { - moment.locale('en'); - moment.createFromInputFallback = function (config) { - throw new Error('input not handled by moment: ' + config._i); - }; - setupDeprecationHandler(test, moment, 'core'); - if (lifecycle && lifecycle.setup) { - lifecycle.setup(); - } - }, - teardown : function () { - teardownDeprecationHandler(test, moment, 'core'); - if (lifecycle && lifecycle.teardown) { - lifecycle.teardown(); - } - } - }); -} - -module$1('now'); - -test('now', function (assert) { - var startOfTest = new Date().valueOf(), - momentNowTime = moment.now(), - afterMomentCreationTime = new Date().valueOf(); - - assert.ok(startOfTest <= momentNowTime, 'moment now() time should be now, not in the past'); - assert.ok(momentNowTime <= afterMomentCreationTime, 'moment now() time should be now, not in the future'); -}); - -test('now - Date mocked', function (assert) { - // We need to test mocking the global Date object, so disable 'Read Only' jshint check - /* jshint -W020 */ - var RealDate = Date, - customTimeMs = moment('2015-01-01T01:30:00.000Z').valueOf(); - - function MockDate() { - return new RealDate(customTimeMs); - } - - MockDate.now = function () { - return new MockDate().valueOf(); - }; - - MockDate.prototype = RealDate.prototype; - - Date = MockDate; - - try { - assert.equal(moment().valueOf(), customTimeMs, 'moment now() time should use the global Date object'); - } finally { - Date = RealDate; - } -}); - -test('now - custom value', function (assert) { - var customTimeStr = '2015-01-01T01:30:00.000Z', - customTime = moment(customTimeStr, moment.ISO_8601).valueOf(), - oldFn = moment.now; - - moment.now = function () { - return customTime; - }; - - try { - assert.equal(moment().toISOString(), customTimeStr, 'moment() constructor should use the function defined by moment.now, but it did not'); - assert.equal(moment.utc().toISOString(), customTimeStr, 'moment() constructor should use the function defined by moment.now, but it did not'); - } finally { - moment.now = oldFn; - } -}); - -test('empty object, empty array', function (assert) { - function assertIsNow(gen, msg) { - var before = +(new Date()), - mid = gen(), - after = +(new Date()); - assert.ok(before <= +mid && +mid <= after, 'should be now : ' + msg); - } - assertIsNow(function () { - return moment(); - }, 'moment()'); - assertIsNow(function () { - return moment([]); - }, 'moment([])'); - assertIsNow(function () { - return moment({}); - }, 'moment({})'); - assertIsNow(function () { - return moment.utc(); - }, 'moment.utc()'); - assertIsNow(function () { - return moment.utc([]); - }, 'moment.utc([])'); - assertIsNow(function () { - return moment.utc({}); - }, 'moment.utc({})'); -}); - -}))); - - -;(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' - && typeof require === 'function' ? factory(require('../../moment')) : - typeof define === 'function' && define.amd ? define(['../../moment'], factory) : - factory(global.moment) -}(this, (function (moment) { 'use strict'; - -function each(array, callback) { - var i; - for (i = 0; i < array.length; i++) { - callback(array[i], i, array); - } -} - -function objectKeys(obj) { - if (Object.keys) { - return Object.keys(obj); - } else { - // IE8 - var res = [], i; - for (i in obj) { - if (obj.hasOwnProperty(i)) { - res.push(i); - } - } - return res; - } -} - -// Pick the first defined of two or three arguments. - -function defineCommonLocaleTests(locale, options) { - test('lenient day of month ordinal parsing', function (assert) { - var i, ordinalStr, testMoment; - for (i = 1; i <= 31; ++i) { - ordinalStr = moment([2014, 0, i]).format('YYYY MM Do'); - testMoment = moment(ordinalStr, 'YYYY MM Do'); - assert.equal(testMoment.year(), 2014, - 'lenient day of month ordinal parsing ' + i + ' year check'); - assert.equal(testMoment.month(), 0, - 'lenient day of month ordinal parsing ' + i + ' month check'); - assert.equal(testMoment.date(), i, - 'lenient day of month ordinal parsing ' + i + ' date check'); - } - }); - - test('lenient day of month ordinal parsing of number', function (assert) { - var i, testMoment; - for (i = 1; i <= 31; ++i) { - testMoment = moment('2014 01 ' + i, 'YYYY MM Do'); - assert.equal(testMoment.year(), 2014, - 'lenient day of month ordinal parsing of number ' + i + ' year check'); - assert.equal(testMoment.month(), 0, - 'lenient day of month ordinal parsing of number ' + i + ' month check'); - assert.equal(testMoment.date(), i, - 'lenient day of month ordinal parsing of number ' + i + ' date check'); - } - }); - - test('strict day of month ordinal parsing', function (assert) { - var i, ordinalStr, testMoment; - for (i = 1; i <= 31; ++i) { - ordinalStr = moment([2014, 0, i]).format('YYYY MM Do'); - testMoment = moment(ordinalStr, 'YYYY MM Do', true); - assert.ok(testMoment.isValid(), 'strict day of month ordinal parsing ' + i); - } - }); - - test('meridiem invariant', function (assert) { - var h, m, t1, t2; - for (h = 0; h < 24; ++h) { - for (m = 0; m < 60; m += 15) { - t1 = moment.utc([2000, 0, 1, h, m]); - t2 = moment.utc(t1.format('A h:mm'), 'A h:mm'); - assert.equal(t2.format('HH:mm'), t1.format('HH:mm'), - 'meridiem at ' + t1.format('HH:mm')); - } - } - }); - - test('date format correctness', function (assert) { - var data, tokens; - data = moment.localeData()._longDateFormat; - tokens = objectKeys(data); - each(tokens, function (srchToken) { - // Check each format string to make sure it does not contain any - // tokens that need to be expanded. - each(tokens, function (baseToken) { - // strip escaped sequences - var format = data[baseToken].replace(/(\[[^\]]*\])/g, ''); - assert.equal(false, !!~format.indexOf(srchToken), - 'contains ' + srchToken + ' in ' + baseToken); - }); - }); - }); - - test('month parsing correctness', function (assert) { - var i, m; - - if (locale === 'tr') { - // I can't fix it :( - expect(0); - return; - } - function tester(format) { - var r; - r = moment(m.format(format), format); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format); - r = moment(m.format(format).toLocaleUpperCase(), format); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' upper'); - r = moment(m.format(format).toLocaleLowerCase(), format); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' lower'); - - r = moment(m.format(format), format, true); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' strict'); - r = moment(m.format(format).toLocaleUpperCase(), format, true); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' upper strict'); - r = moment(m.format(format).toLocaleLowerCase(), format, true); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' lower strict'); - } - - for (i = 0; i < 12; ++i) { - m = moment([2015, i, 15, 18]); - tester('MMM'); - tester('MMM.'); - tester('MMMM'); - tester('MMMM.'); - } - }); - - test('weekday parsing correctness', function (assert) { - var i, m; - - if (locale === 'tr' || locale === 'az' || locale === 'ro') { - // tr, az: There is a lower-case letter (ı), that converted to - // upper then lower changes to i - // ro: there is the letter ț which behaves weird under IE8 - expect(0); - return; - } - function tester(format) { - var r, baseMsg = 'weekday ' + m.weekday() + ' fmt ' + format + ' ' + m.toISOString(); - r = moment(m.format(format), format); - assert.equal(r.weekday(), m.weekday(), baseMsg); - r = moment(m.format(format).toLocaleUpperCase(), format); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' upper'); - r = moment(m.format(format).toLocaleLowerCase(), format); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' lower'); - - r = moment(m.format(format), format, true); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' strict'); - r = moment(m.format(format).toLocaleUpperCase(), format, true); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' upper strict'); - r = moment(m.format(format).toLocaleLowerCase(), format, true); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' lower strict'); - } - - for (i = 0; i < 7; ++i) { - m = moment.utc([2015, 0, i + 1, 18]); - tester('dd'); - tester('ddd'); - tester('dddd'); - } - }); - - test('valid localeData', function (assert) { - assert.equal(moment().localeData().months().length, 12, 'months should return 12 months'); - assert.equal(moment().localeData().monthsShort().length, 12, 'monthsShort should return 12 months'); - assert.equal(moment().localeData().weekdays().length, 7, 'weekdays should return 7 days'); - assert.equal(moment().localeData().weekdaysShort().length, 7, 'weekdaysShort should return 7 days'); - assert.equal(moment().localeData().weekdaysMin().length, 7, 'monthsShort should return 7 days'); - }); -} - -function setupDeprecationHandler(test, moment$$1, scope) { - test._expectedDeprecations = null; - test._observedDeprecations = null; - test._oldSupress = moment$$1.suppressDeprecationWarnings; - moment$$1.suppressDeprecationWarnings = true; - test.expectedDeprecations = function () { - test._expectedDeprecations = arguments; - test._observedDeprecations = []; - }; - moment$$1.deprecationHandler = function (name, msg) { - var deprecationId = matchedDeprecation(name, msg, test._expectedDeprecations); - if (deprecationId === -1) { - throw new Error('Unexpected deprecation thrown name=' + - name + ' msg=' + msg); - } - test._observedDeprecations[deprecationId] = 1; - }; -} - -function teardownDeprecationHandler(test, moment$$1, scope) { - moment$$1.suppressDeprecationWarnings = test._oldSupress; - - if (test._expectedDeprecations != null) { - var missedDeprecations = []; - each(test._expectedDeprecations, function (deprecationPattern, id) { - if (test._observedDeprecations[id] !== 1) { - missedDeprecations.push(deprecationPattern); - } - }); - if (missedDeprecations.length !== 0) { - throw new Error('Expected deprecation warnings did not happen: ' + - missedDeprecations.join(' ')); - } - } -} - -function matchedDeprecation(name, msg, deprecations) { - if (deprecations == null) { - return -1; - } - for (var i = 0; i < deprecations.length; ++i) { - if (name != null && name === deprecations[i]) { - return i; - } - if (msg != null && msg.substring(0, deprecations[i].length) === deprecations[i]) { - return i; - } - } - return -1; -} - -/*global QUnit:false*/ - -var test = QUnit.test; - -var expect = QUnit.expect; - -function module$1 (name, lifecycle) { - QUnit.module(name, { - setup : function () { - moment.locale('en'); - moment.createFromInputFallback = function (config) { - throw new Error('input not handled by moment: ' + config._i); - }; - setupDeprecationHandler(test, moment, 'core'); - if (lifecycle && lifecycle.setup) { - lifecycle.setup(); - } - }, - teardown : function () { - teardownDeprecationHandler(test, moment, 'core'); - if (lifecycle && lifecycle.teardown) { - lifecycle.teardown(); - } - } - }); -} - -module$1('parsing flags'); - -function flags () { - return moment.apply(null, arguments).parsingFlags(); -} - -test('overflow with array', function (assert) { - //months - assert.equal(flags([2010, 0]).overflow, -1, 'month 0 valid'); - assert.equal(flags([2010, 1]).overflow, -1, 'month 1 valid'); - assert.equal(flags([2010, -1]).overflow, 1, 'month -1 invalid'); - assert.equal(flags([2100, 12]).overflow, 1, 'month 12 invalid'); - - //days - assert.equal(flags([2010, 1, 16]).overflow, -1, 'date valid'); - assert.equal(flags([2010, 1, -1]).overflow, 2, 'date -1 invalid'); - assert.equal(flags([2010, 1, 0]).overflow, 2, 'date 0 invalid'); - assert.equal(flags([2010, 1, 32]).overflow, 2, 'date 32 invalid'); - assert.equal(flags([2012, 1, 29]).overflow, -1, 'date leap year valid'); - assert.equal(flags([2010, 1, 29]).overflow, 2, 'date leap year invalid'); - - //hours - assert.equal(flags([2010, 1, 1, 8]).overflow, -1, 'hour valid'); - assert.equal(flags([2010, 1, 1, 0]).overflow, -1, 'hour 0 valid'); - assert.equal(flags([2010, 1, 1, -1]).overflow, 3, 'hour -1 invalid'); - assert.equal(flags([2010, 1, 1, 25]).overflow, 3, 'hour 25 invalid'); - assert.equal(flags([2010, 1, 1, 24, 1]).overflow, 3, 'hour 24:01 invalid'); - - //minutes - assert.equal(flags([2010, 1, 1, 8, 15]).overflow, -1, 'minute valid'); - assert.equal(flags([2010, 1, 1, 8, 0]).overflow, -1, 'minute 0 valid'); - assert.equal(flags([2010, 1, 1, 8, -1]).overflow, 4, 'minute -1 invalid'); - assert.equal(flags([2010, 1, 1, 8, 60]).overflow, 4, 'minute 60 invalid'); - - //seconds - assert.equal(flags([2010, 1, 1, 8, 15, 12]).overflow, -1, 'second valid'); - assert.equal(flags([2010, 1, 1, 8, 15, 0]).overflow, -1, 'second 0 valid'); - assert.equal(flags([2010, 1, 1, 8, 15, -1]).overflow, 5, 'second -1 invalid'); - assert.equal(flags([2010, 1, 1, 8, 15, 60]).overflow, 5, 'second 60 invalid'); - - //milliseconds - assert.equal(flags([2010, 1, 1, 8, 15, 12, 345]).overflow, -1, 'millisecond valid'); - assert.equal(flags([2010, 1, 1, 8, 15, 12, 0]).overflow, -1, 'millisecond 0 valid'); - assert.equal(flags([2010, 1, 1, 8, 15, 12, -1]).overflow, 6, 'millisecond -1 invalid'); - assert.equal(flags([2010, 1, 1, 8, 15, 12, 1000]).overflow, 6, 'millisecond 1000 invalid'); - - // 24 hrs - assert.equal(flags([2010, 1, 1, 24, 0, 0, 0]).overflow, -1, '24:00:00.000 is fine'); - assert.equal(flags([2010, 1, 1, 24, 1, 0, 0]).overflow, 3, '24:01:00.000 is wrong hour'); - assert.equal(flags([2010, 1, 1, 24, 0, 1, 0]).overflow, 3, '24:00:01.000 is wrong hour'); - assert.equal(flags([2010, 1, 1, 24, 0, 0, 1]).overflow, 3, '24:00:00.001 is wrong hour'); -}); - -test('overflow without format', function (assert) { - //months - assert.equal(flags('2001-01', 'YYYY-MM').overflow, -1, 'month 1 valid'); - assert.equal(flags('2001-12', 'YYYY-MM').overflow, -1, 'month 12 valid'); - assert.equal(flags('2001-13', 'YYYY-MM').overflow, 1, 'month 13 invalid'); - - //days - assert.equal(flags('2010-01-16', 'YYYY-MM-DD').overflow, -1, 'date 16 valid'); - assert.equal(flags('2010-01-0', 'YYYY-MM-DD').overflow, 2, 'date 0 invalid'); - assert.equal(flags('2010-01-32', 'YYYY-MM-DD').overflow, 2, 'date 32 invalid'); - assert.equal(flags('2012-02-29', 'YYYY-MM-DD').overflow, -1, 'date leap year valid'); - assert.equal(flags('2010-02-29', 'YYYY-MM-DD').overflow, 2, 'date leap year invalid'); - - //days of the year - assert.equal(flags('2010 300', 'YYYY DDDD').overflow, -1, 'day 300 of year valid'); - assert.equal(flags('2010 365', 'YYYY DDDD').overflow, -1, 'day 365 of year valid'); - assert.equal(flags('2010 366', 'YYYY DDDD').overflow, 2, 'day 366 of year invalid'); - assert.equal(flags('2012 366', 'YYYY DDDD').overflow, -1, 'day 366 of leap year valid'); - assert.equal(flags('2012 367', 'YYYY DDDD').overflow, 2, 'day 367 of leap year invalid'); - - //hours - assert.equal(flags('08', 'HH').overflow, -1, 'hour valid'); - assert.equal(flags('00', 'HH').overflow, -1, 'hour 0 valid'); - assert.equal(flags('25', 'HH').overflow, 3, 'hour 25 invalid'); - assert.equal(flags('24:01', 'HH:mm').overflow, 3, 'hour 24:01 invalid'); - - //minutes - assert.equal(flags('08:15', 'HH:mm').overflow, -1, 'minute valid'); - assert.equal(flags('08:00', 'HH:mm').overflow, -1, 'minute 0 valid'); - assert.equal(flags('08:60', 'HH:mm').overflow, 4, 'minute 60 invalid'); - - //seconds - assert.equal(flags('08:15:12', 'HH:mm:ss').overflow, -1, 'second valid'); - assert.equal(flags('08:15:00', 'HH:mm:ss').overflow, -1, 'second 0 valid'); - assert.equal(flags('08:15:60', 'HH:mm:ss').overflow, 5, 'second 60 invalid'); - - //milliseconds - assert.equal(flags('08:15:12:345', 'HH:mm:ss:SSSS').overflow, -1, 'millisecond valid'); - assert.equal(flags('08:15:12:000', 'HH:mm:ss:SSSS').overflow, -1, 'millisecond 0 valid'); - - //this is OK because we don't match the last digit, so it's 100 ms - assert.equal(flags('08:15:12:1000', 'HH:mm:ss:SSSS').overflow, -1, 'millisecond 1000 actually valid'); -}); - -test('extra tokens', function (assert) { - assert.deepEqual(flags('1982-05-25', 'YYYY-MM-DD').unusedTokens, [], 'nothing extra'); - assert.deepEqual(flags('1982-05', 'YYYY-MM-DD').unusedTokens, ['DD'], 'extra formatting token'); - assert.deepEqual(flags('1982', 'YYYY-MM-DD').unusedTokens, ['MM', 'DD'], 'multiple extra formatting tokens'); - assert.deepEqual(flags('1982-05', 'YYYY-MM-').unusedTokens, [], 'extra non-formatting token'); - assert.deepEqual(flags('1982-05-', 'YYYY-MM-DD').unusedTokens, ['DD'], 'non-extra non-formatting token'); - assert.deepEqual(flags('1982 05 1982', 'YYYY-MM-DD').unusedTokens, [], 'different non-formatting token'); -}); - -test('extra tokens strict', function (assert) { - assert.deepEqual(flags('1982-05-25', 'YYYY-MM-DD', true).unusedTokens, [], 'nothing extra'); - assert.deepEqual(flags('1982-05', 'YYYY-MM-DD', true).unusedTokens, ['-', 'DD'], 'extra formatting token'); - assert.deepEqual(flags('1982', 'YYYY-MM-DD', true).unusedTokens, ['-', 'MM', '-', 'DD'], 'multiple extra formatting tokens'); - assert.deepEqual(flags('1982-05', 'YYYY-MM-', true).unusedTokens, ['-'], 'extra non-formatting token'); - assert.deepEqual(flags('1982-05-', 'YYYY-MM-DD', true).unusedTokens, ['DD'], 'non-extra non-formatting token'); - assert.deepEqual(flags('1982 05 1982', 'YYYY-MM-DD', true).unusedTokens, ['-', '-'], 'different non-formatting token'); -}); - -test('unused input', function (assert) { - assert.deepEqual(flags('1982-05-25', 'YYYY-MM-DD').unusedInput, [], 'normal input'); - assert.deepEqual(flags('1982-05-25 this is more stuff', 'YYYY-MM-DD').unusedInput, [' this is more stuff'], 'trailing nonsense'); - assert.deepEqual(flags('1982-05-25 09:30', 'YYYY-MM-DD').unusedInput, [' 09:30'], ['trailing legit-looking input']); - assert.deepEqual(flags('1982-05-25 some junk', 'YYYY-MM-DD [some junk]').unusedInput, [], 'junk that actually gets matched'); - assert.deepEqual(flags('stuff at beginning 1982-05-25', 'YYYY-MM-DD').unusedInput, ['stuff at beginning '], 'leading junk'); - assert.deepEqual(flags('junk 1982 more junk 05 yet more junk25', 'YYYY-MM-DD').unusedInput, ['junk ', ' more junk ', ' yet more junk'], 'interstitial junk'); -}); - -test('unused input strict', function (assert) { - assert.deepEqual(flags('1982-05-25', 'YYYY-MM-DD', true).unusedInput, [], 'normal input'); - assert.deepEqual(flags('1982-05-25 this is more stuff', 'YYYY-MM-DD', true).unusedInput, [' this is more stuff'], 'trailing nonsense'); - assert.deepEqual(flags('1982-05-25 09:30', 'YYYY-MM-DD', true).unusedInput, [' 09:30'], ['trailing legit-looking input']); - assert.deepEqual(flags('1982-05-25 some junk', 'YYYY-MM-DD [some junk]', true).unusedInput, [], 'junk that actually gets matched'); - assert.deepEqual(flags('stuff at beginning 1982-05-25', 'YYYY-MM-DD', true).unusedInput, ['stuff at beginning '], 'leading junk'); - assert.deepEqual(flags('junk 1982 more junk 05 yet more junk25', 'YYYY-MM-DD', true).unusedInput, ['junk ', ' more junk ', ' yet more junk'], 'interstitial junk'); -}); - -test('chars left over', function (assert) { - assert.equal(flags('1982-05-25', 'YYYY-MM-DD').charsLeftOver, 0, 'normal input'); - assert.equal(flags('1982-05-25 this is more stuff', 'YYYY-MM-DD').charsLeftOver, ' this is more stuff'.length, 'trailing nonsense'); - assert.equal(flags('1982-05-25 09:30', 'YYYY-MM-DD').charsLeftOver, ' 09:30'.length, 'trailing legit-looking input'); - assert.equal(flags('stuff at beginning 1982-05-25', 'YYYY-MM-DD').charsLeftOver, 'stuff at beginning '.length, 'leading junk'); - assert.equal(flags('1982 junk 05 more junk25', 'YYYY-MM-DD').charsLeftOver, [' junk ', ' more junk'].join('').length, 'interstitial junk'); - assert.equal(flags('stuff at beginning 1982 junk 05 more junk25', 'YYYY-MM-DD').charsLeftOver, ['stuff at beginning ', ' junk ', ' more junk'].join('').length, 'leading and interstitial junk'); -}); - -test('empty', function (assert) { - assert.equal(flags('1982-05-25', 'YYYY-MM-DD').empty, false, 'normal input'); - assert.equal(flags('nothing here', 'YYYY-MM-DD').empty, true, 'pure garbage'); - assert.equal(flags('junk but has the number 2000 in it', 'YYYY-MM-DD').empty, false, 'only mostly garbage'); - assert.equal(flags('', 'YYYY-MM-DD').empty, true, 'empty string'); - assert.equal(flags('', 'YYYY-MM-DD').empty, true, 'blank string'); -}); - -test('null', function (assert) { - assert.equal(flags('1982-05-25', 'YYYY-MM-DD').nullInput, false, 'normal input'); - assert.equal(flags(null).nullInput, true, 'just null'); - assert.equal(flags(null, 'YYYY-MM-DD').nullInput, true, 'null with format'); -}); - -test('invalid month', function (assert) { - assert.equal(flags('1982 May', 'YYYY MMMM').invalidMonth, null, 'normal input'); - assert.equal(flags('1982 Laser', 'YYYY MMMM').invalidMonth, 'Laser', 'bad month name'); -}); - -test('empty format array', function (assert) { - assert.equal(flags('1982 May', ['YYYY MMM']).invalidFormat, false, 'empty format array'); - assert.equal(flags('1982 May', []).invalidFormat, true, 'empty format array'); -}); - -}))); - - -;(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' - && typeof require === 'function' ? factory(require('../../moment')) : - typeof define === 'function' && define.amd ? define(['../../moment'], factory) : - factory(global.moment) -}(this, (function (moment) { 'use strict'; - -function each(array, callback) { - var i; - for (i = 0; i < array.length; i++) { - callback(array[i], i, array); - } -} - -function objectKeys(obj) { - if (Object.keys) { - return Object.keys(obj); - } else { - // IE8 - var res = [], i; - for (i in obj) { - if (obj.hasOwnProperty(i)) { - res.push(i); - } - } - return res; - } -} - -// Pick the first defined of two or three arguments. - -function defineCommonLocaleTests(locale, options) { - test('lenient day of month ordinal parsing', function (assert) { - var i, ordinalStr, testMoment; - for (i = 1; i <= 31; ++i) { - ordinalStr = moment([2014, 0, i]).format('YYYY MM Do'); - testMoment = moment(ordinalStr, 'YYYY MM Do'); - assert.equal(testMoment.year(), 2014, - 'lenient day of month ordinal parsing ' + i + ' year check'); - assert.equal(testMoment.month(), 0, - 'lenient day of month ordinal parsing ' + i + ' month check'); - assert.equal(testMoment.date(), i, - 'lenient day of month ordinal parsing ' + i + ' date check'); - } - }); - - test('lenient day of month ordinal parsing of number', function (assert) { - var i, testMoment; - for (i = 1; i <= 31; ++i) { - testMoment = moment('2014 01 ' + i, 'YYYY MM Do'); - assert.equal(testMoment.year(), 2014, - 'lenient day of month ordinal parsing of number ' + i + ' year check'); - assert.equal(testMoment.month(), 0, - 'lenient day of month ordinal parsing of number ' + i + ' month check'); - assert.equal(testMoment.date(), i, - 'lenient day of month ordinal parsing of number ' + i + ' date check'); - } - }); - - test('strict day of month ordinal parsing', function (assert) { - var i, ordinalStr, testMoment; - for (i = 1; i <= 31; ++i) { - ordinalStr = moment([2014, 0, i]).format('YYYY MM Do'); - testMoment = moment(ordinalStr, 'YYYY MM Do', true); - assert.ok(testMoment.isValid(), 'strict day of month ordinal parsing ' + i); - } - }); - - test('meridiem invariant', function (assert) { - var h, m, t1, t2; - for (h = 0; h < 24; ++h) { - for (m = 0; m < 60; m += 15) { - t1 = moment.utc([2000, 0, 1, h, m]); - t2 = moment.utc(t1.format('A h:mm'), 'A h:mm'); - assert.equal(t2.format('HH:mm'), t1.format('HH:mm'), - 'meridiem at ' + t1.format('HH:mm')); - } - } - }); - - test('date format correctness', function (assert) { - var data, tokens; - data = moment.localeData()._longDateFormat; - tokens = objectKeys(data); - each(tokens, function (srchToken) { - // Check each format string to make sure it does not contain any - // tokens that need to be expanded. - each(tokens, function (baseToken) { - // strip escaped sequences - var format = data[baseToken].replace(/(\[[^\]]*\])/g, ''); - assert.equal(false, !!~format.indexOf(srchToken), - 'contains ' + srchToken + ' in ' + baseToken); - }); - }); - }); - - test('month parsing correctness', function (assert) { - var i, m; - - if (locale === 'tr') { - // I can't fix it :( - expect(0); - return; - } - function tester(format) { - var r; - r = moment(m.format(format), format); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format); - r = moment(m.format(format).toLocaleUpperCase(), format); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' upper'); - r = moment(m.format(format).toLocaleLowerCase(), format); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' lower'); - - r = moment(m.format(format), format, true); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' strict'); - r = moment(m.format(format).toLocaleUpperCase(), format, true); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' upper strict'); - r = moment(m.format(format).toLocaleLowerCase(), format, true); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' lower strict'); - } - - for (i = 0; i < 12; ++i) { - m = moment([2015, i, 15, 18]); - tester('MMM'); - tester('MMM.'); - tester('MMMM'); - tester('MMMM.'); - } - }); - - test('weekday parsing correctness', function (assert) { - var i, m; - - if (locale === 'tr' || locale === 'az' || locale === 'ro') { - // tr, az: There is a lower-case letter (ı), that converted to - // upper then lower changes to i - // ro: there is the letter ț which behaves weird under IE8 - expect(0); - return; - } - function tester(format) { - var r, baseMsg = 'weekday ' + m.weekday() + ' fmt ' + format + ' ' + m.toISOString(); - r = moment(m.format(format), format); - assert.equal(r.weekday(), m.weekday(), baseMsg); - r = moment(m.format(format).toLocaleUpperCase(), format); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' upper'); - r = moment(m.format(format).toLocaleLowerCase(), format); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' lower'); - - r = moment(m.format(format), format, true); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' strict'); - r = moment(m.format(format).toLocaleUpperCase(), format, true); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' upper strict'); - r = moment(m.format(format).toLocaleLowerCase(), format, true); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' lower strict'); - } - - for (i = 0; i < 7; ++i) { - m = moment.utc([2015, 0, i + 1, 18]); - tester('dd'); - tester('ddd'); - tester('dddd'); - } - }); - - test('valid localeData', function (assert) { - assert.equal(moment().localeData().months().length, 12, 'months should return 12 months'); - assert.equal(moment().localeData().monthsShort().length, 12, 'monthsShort should return 12 months'); - assert.equal(moment().localeData().weekdays().length, 7, 'weekdays should return 7 days'); - assert.equal(moment().localeData().weekdaysShort().length, 7, 'weekdaysShort should return 7 days'); - assert.equal(moment().localeData().weekdaysMin().length, 7, 'monthsShort should return 7 days'); - }); -} - -function setupDeprecationHandler(test, moment$$1, scope) { - test._expectedDeprecations = null; - test._observedDeprecations = null; - test._oldSupress = moment$$1.suppressDeprecationWarnings; - moment$$1.suppressDeprecationWarnings = true; - test.expectedDeprecations = function () { - test._expectedDeprecations = arguments; - test._observedDeprecations = []; - }; - moment$$1.deprecationHandler = function (name, msg) { - var deprecationId = matchedDeprecation(name, msg, test._expectedDeprecations); - if (deprecationId === -1) { - throw new Error('Unexpected deprecation thrown name=' + - name + ' msg=' + msg); - } - test._observedDeprecations[deprecationId] = 1; - }; -} - -function teardownDeprecationHandler(test, moment$$1, scope) { - moment$$1.suppressDeprecationWarnings = test._oldSupress; - - if (test._expectedDeprecations != null) { - var missedDeprecations = []; - each(test._expectedDeprecations, function (deprecationPattern, id) { - if (test._observedDeprecations[id] !== 1) { - missedDeprecations.push(deprecationPattern); - } - }); - if (missedDeprecations.length !== 0) { - throw new Error('Expected deprecation warnings did not happen: ' + - missedDeprecations.join(' ')); - } - } -} - -function matchedDeprecation(name, msg, deprecations) { - if (deprecations == null) { - return -1; - } - for (var i = 0; i < deprecations.length; ++i) { - if (name != null && name === deprecations[i]) { - return i; - } - if (msg != null && msg.substring(0, deprecations[i].length) === deprecations[i]) { - return i; - } - } - return -1; -} - -/*global QUnit:false*/ - -var test = QUnit.test; - -var expect = QUnit.expect; - -function module$1 (name, lifecycle) { - QUnit.module(name, { - setup : function () { - moment.locale('en'); - moment.createFromInputFallback = function (config) { - throw new Error('input not handled by moment: ' + config._i); - }; - setupDeprecationHandler(test, moment, 'core'); - if (lifecycle && lifecycle.setup) { - lifecycle.setup(); - } - }, - teardown : function () { - teardownDeprecationHandler(test, moment, 'core'); - if (lifecycle && lifecycle.teardown) { - lifecycle.teardown(); - } - } - }); -} - -var symbolMap = { - '1': '!', - '2': '@', - '3': '#', - '4': '$', - '5': '%', - '6': '^', - '7': '&', - '8': '*', - '9': '(', - '0': ')' - }; -var numberMap = { - '!': '1', - '@': '2', - '#': '3', - '$': '4', - '%': '5', - '^': '6', - '&': '7', - '*': '8', - '(': '9', - ')': '0' - }; - -module$1('preparse and postformat', { - setup: function () { - moment.locale('symbol', { - preparse: function (string) { - return string.replace(/[!@#$%\^&*()]/g, function (match) { - return numberMap[match]; - }); - }, - - postformat: function (string) { - return string.replace(/\d/g, function (match) { - return symbolMap[match]; - }); - } - }); - }, - teardown: function () { - moment.defineLocale('symbol', null); - } -}); - -test('transform', function (assert) { - assert.equal(moment.utc('@)!@-)*-@&', 'YYYY-MM-DD').unix(), 1346025600, 'preparse string + format'); - assert.equal(moment.utc('@)!@-)*-@&').unix(), 1346025600, 'preparse ISO8601 string'); - assert.equal(moment.unix(1346025600).utc().format('YYYY-MM-DD'), '@)!@-)*-@&', 'postformat'); -}); - -test('transform from', function (assert) { - var start = moment([2007, 1, 28]); - - assert.equal(start.from(moment([2007, 1, 28]).add({s: 90}), true), '@ minutes', 'postformat should work on moment.fn.from'); - assert.equal(moment().add(6, 'd').fromNow(true), '^ days', 'postformat should work on moment.fn.fromNow'); - assert.equal(moment.duration(10, 'h').humanize(), '!) hours', 'postformat should work on moment.duration.fn.humanize'); -}); - -test('calendar day', function (assert) { - var a = moment().hours(12).minutes(0).seconds(0); - - assert.equal(moment(a).calendar(), 'Today at !@:)) PM', 'today at the same time'); - assert.equal(moment(a).add({m: 25}).calendar(), 'Today at !@:@% PM', 'Now plus 25 min'); - assert.equal(moment(a).add({h: 1}).calendar(), 'Today at !:)) PM', 'Now plus 1 hour'); - assert.equal(moment(a).add({d: 1}).calendar(), 'Tomorrow at !@:)) PM', 'tomorrow at the same time'); - assert.equal(moment(a).subtract({h: 1}).calendar(), 'Today at !!:)) AM', 'Now minus 1 hour'); - assert.equal(moment(a).subtract({d: 1}).calendar(), 'Yesterday at !@:)) PM', 'yesterday at the same time'); -}); - -}))); - - -;(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' - && typeof require === 'function' ? factory(require('../../moment')) : - typeof define === 'function' && define.amd ? define(['../../moment'], factory) : - factory(global.moment) -}(this, (function (moment) { 'use strict'; - -function each(array, callback) { - var i; - for (i = 0; i < array.length; i++) { - callback(array[i], i, array); - } -} - -function objectKeys(obj) { - if (Object.keys) { - return Object.keys(obj); - } else { - // IE8 - var res = [], i; - for (i in obj) { - if (obj.hasOwnProperty(i)) { - res.push(i); - } - } - return res; - } -} - -// Pick the first defined of two or three arguments. - -function defineCommonLocaleTests(locale, options) { - test('lenient day of month ordinal parsing', function (assert) { - var i, ordinalStr, testMoment; - for (i = 1; i <= 31; ++i) { - ordinalStr = moment([2014, 0, i]).format('YYYY MM Do'); - testMoment = moment(ordinalStr, 'YYYY MM Do'); - assert.equal(testMoment.year(), 2014, - 'lenient day of month ordinal parsing ' + i + ' year check'); - assert.equal(testMoment.month(), 0, - 'lenient day of month ordinal parsing ' + i + ' month check'); - assert.equal(testMoment.date(), i, - 'lenient day of month ordinal parsing ' + i + ' date check'); - } - }); - - test('lenient day of month ordinal parsing of number', function (assert) { - var i, testMoment; - for (i = 1; i <= 31; ++i) { - testMoment = moment('2014 01 ' + i, 'YYYY MM Do'); - assert.equal(testMoment.year(), 2014, - 'lenient day of month ordinal parsing of number ' + i + ' year check'); - assert.equal(testMoment.month(), 0, - 'lenient day of month ordinal parsing of number ' + i + ' month check'); - assert.equal(testMoment.date(), i, - 'lenient day of month ordinal parsing of number ' + i + ' date check'); - } - }); - - test('strict day of month ordinal parsing', function (assert) { - var i, ordinalStr, testMoment; - for (i = 1; i <= 31; ++i) { - ordinalStr = moment([2014, 0, i]).format('YYYY MM Do'); - testMoment = moment(ordinalStr, 'YYYY MM Do', true); - assert.ok(testMoment.isValid(), 'strict day of month ordinal parsing ' + i); - } - }); - - test('meridiem invariant', function (assert) { - var h, m, t1, t2; - for (h = 0; h < 24; ++h) { - for (m = 0; m < 60; m += 15) { - t1 = moment.utc([2000, 0, 1, h, m]); - t2 = moment.utc(t1.format('A h:mm'), 'A h:mm'); - assert.equal(t2.format('HH:mm'), t1.format('HH:mm'), - 'meridiem at ' + t1.format('HH:mm')); - } - } - }); - - test('date format correctness', function (assert) { - var data, tokens; - data = moment.localeData()._longDateFormat; - tokens = objectKeys(data); - each(tokens, function (srchToken) { - // Check each format string to make sure it does not contain any - // tokens that need to be expanded. - each(tokens, function (baseToken) { - // strip escaped sequences - var format = data[baseToken].replace(/(\[[^\]]*\])/g, ''); - assert.equal(false, !!~format.indexOf(srchToken), - 'contains ' + srchToken + ' in ' + baseToken); - }); - }); - }); - - test('month parsing correctness', function (assert) { - var i, m; - - if (locale === 'tr') { - // I can't fix it :( - expect(0); - return; - } - function tester(format) { - var r; - r = moment(m.format(format), format); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format); - r = moment(m.format(format).toLocaleUpperCase(), format); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' upper'); - r = moment(m.format(format).toLocaleLowerCase(), format); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' lower'); - - r = moment(m.format(format), format, true); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' strict'); - r = moment(m.format(format).toLocaleUpperCase(), format, true); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' upper strict'); - r = moment(m.format(format).toLocaleLowerCase(), format, true); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' lower strict'); - } - - for (i = 0; i < 12; ++i) { - m = moment([2015, i, 15, 18]); - tester('MMM'); - tester('MMM.'); - tester('MMMM'); - tester('MMMM.'); - } - }); - - test('weekday parsing correctness', function (assert) { - var i, m; - - if (locale === 'tr' || locale === 'az' || locale === 'ro') { - // tr, az: There is a lower-case letter (ı), that converted to - // upper then lower changes to i - // ro: there is the letter ț which behaves weird under IE8 - expect(0); - return; - } - function tester(format) { - var r, baseMsg = 'weekday ' + m.weekday() + ' fmt ' + format + ' ' + m.toISOString(); - r = moment(m.format(format), format); - assert.equal(r.weekday(), m.weekday(), baseMsg); - r = moment(m.format(format).toLocaleUpperCase(), format); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' upper'); - r = moment(m.format(format).toLocaleLowerCase(), format); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' lower'); - - r = moment(m.format(format), format, true); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' strict'); - r = moment(m.format(format).toLocaleUpperCase(), format, true); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' upper strict'); - r = moment(m.format(format).toLocaleLowerCase(), format, true); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' lower strict'); - } - - for (i = 0; i < 7; ++i) { - m = moment.utc([2015, 0, i + 1, 18]); - tester('dd'); - tester('ddd'); - tester('dddd'); - } - }); - - test('valid localeData', function (assert) { - assert.equal(moment().localeData().months().length, 12, 'months should return 12 months'); - assert.equal(moment().localeData().monthsShort().length, 12, 'monthsShort should return 12 months'); - assert.equal(moment().localeData().weekdays().length, 7, 'weekdays should return 7 days'); - assert.equal(moment().localeData().weekdaysShort().length, 7, 'weekdaysShort should return 7 days'); - assert.equal(moment().localeData().weekdaysMin().length, 7, 'monthsShort should return 7 days'); - }); -} - -function setupDeprecationHandler(test, moment$$1, scope) { - test._expectedDeprecations = null; - test._observedDeprecations = null; - test._oldSupress = moment$$1.suppressDeprecationWarnings; - moment$$1.suppressDeprecationWarnings = true; - test.expectedDeprecations = function () { - test._expectedDeprecations = arguments; - test._observedDeprecations = []; - }; - moment$$1.deprecationHandler = function (name, msg) { - var deprecationId = matchedDeprecation(name, msg, test._expectedDeprecations); - if (deprecationId === -1) { - throw new Error('Unexpected deprecation thrown name=' + - name + ' msg=' + msg); - } - test._observedDeprecations[deprecationId] = 1; - }; -} - -function teardownDeprecationHandler(test, moment$$1, scope) { - moment$$1.suppressDeprecationWarnings = test._oldSupress; - - if (test._expectedDeprecations != null) { - var missedDeprecations = []; - each(test._expectedDeprecations, function (deprecationPattern, id) { - if (test._observedDeprecations[id] !== 1) { - missedDeprecations.push(deprecationPattern); - } - }); - if (missedDeprecations.length !== 0) { - throw new Error('Expected deprecation warnings did not happen: ' + - missedDeprecations.join(' ')); - } - } -} - -function matchedDeprecation(name, msg, deprecations) { - if (deprecations == null) { - return -1; - } - for (var i = 0; i < deprecations.length; ++i) { - if (name != null && name === deprecations[i]) { - return i; - } - if (msg != null && msg.substring(0, deprecations[i].length) === deprecations[i]) { - return i; - } - } - return -1; -} - -/*global QUnit:false*/ - -var test = QUnit.test; - -var expect = QUnit.expect; - -function module$1 (name, lifecycle) { - QUnit.module(name, { - setup : function () { - moment.locale('en'); - moment.createFromInputFallback = function (config) { - throw new Error('input not handled by moment: ' + config._i); - }; - setupDeprecationHandler(test, moment, 'core'); - if (lifecycle && lifecycle.setup) { - lifecycle.setup(); - } - }, - teardown : function () { - teardownDeprecationHandler(test, moment, 'core'); - if (lifecycle && lifecycle.teardown) { - lifecycle.teardown(); - } - } - }); -} - -module$1('quarter'); - -test('library quarter getter', function (assert) { - assert.equal(moment([1985, 1, 4]).quarter(), 1, 'Feb 4 1985 is Q1'); - assert.equal(moment([2029, 8, 18]).quarter(), 3, 'Sep 18 2029 is Q3'); - assert.equal(moment([2013, 3, 24]).quarter(), 2, 'Apr 24 2013 is Q2'); - assert.equal(moment([2015, 2, 5]).quarter(), 1, 'Mar 5 2015 is Q1'); - assert.equal(moment([1970, 0, 2]).quarter(), 1, 'Jan 2 1970 is Q1'); - assert.equal(moment([2001, 11, 12]).quarter(), 4, 'Dec 12 2001 is Q4'); - assert.equal(moment([2000, 0, 2]).quarter(), 1, 'Jan 2 2000 is Q1'); -}); - -test('quarter setter singular', function (assert) { - var m = moment([2014, 4, 11]); - assert.equal(m.quarter(2).month(), 4, 'set same quarter'); - assert.equal(m.quarter(3).month(), 7, 'set 3rd quarter'); - assert.equal(m.quarter(1).month(), 1, 'set 1st quarter'); - assert.equal(m.quarter(4).month(), 10, 'set 4th quarter'); -}); - -test('quarter setter plural', function (assert) { - var m = moment([2014, 4, 11]); - assert.equal(m.quarters(2).month(), 4, 'set same quarter'); - assert.equal(m.quarters(3).month(), 7, 'set 3rd quarter'); - assert.equal(m.quarters(1).month(), 1, 'set 1st quarter'); - assert.equal(m.quarters(4).month(), 10, 'set 4th quarter'); -}); - -test('quarter setter programmatic', function (assert) { - var m = moment([2014, 4, 11]); - assert.equal(m.set('quarter', 2).month(), 4, 'set same quarter'); - assert.equal(m.set('quarter', 3).month(), 7, 'set 3rd quarter'); - assert.equal(m.set('quarter', 1).month(), 1, 'set 1st quarter'); - assert.equal(m.set('quarter', 4).month(), 10, 'set 4th quarter'); -}); - -test('quarter setter programmatic plural', function (assert) { - var m = moment([2014, 4, 11]); - assert.equal(m.set('quarters', 2).month(), 4, 'set same quarter'); - assert.equal(m.set('quarters', 3).month(), 7, 'set 3rd quarter'); - assert.equal(m.set('quarters', 1).month(), 1, 'set 1st quarter'); - assert.equal(m.set('quarters', 4).month(), 10, 'set 4th quarter'); -}); - -test('quarter setter programmatic abbr', function (assert) { - var m = moment([2014, 4, 11]); - assert.equal(m.set('Q', 2).month(), 4, 'set same quarter'); - assert.equal(m.set('Q', 3).month(), 7, 'set 3rd quarter'); - assert.equal(m.set('Q', 1).month(), 1, 'set 1st quarter'); - assert.equal(m.set('Q', 4).month(), 10, 'set 4th quarter'); -}); - -test('quarter setter only month changes', function (assert) { - var m = moment([2014, 4, 11, 1, 2, 3, 4]).quarter(4); - assert.equal(m.year(), 2014, 'keep year'); - assert.equal(m.month(), 10, 'set month'); - assert.equal(m.date(), 11, 'keep date'); - assert.equal(m.hour(), 1, 'keep hour'); - assert.equal(m.minute(), 2, 'keep minutes'); - assert.equal(m.second(), 3, 'keep seconds'); - assert.equal(m.millisecond(), 4, 'keep milliseconds'); -}); - -test('quarter setter bubble to next year', function (assert) { - var m = moment([2014, 4, 11, 1, 2, 3, 4]).quarter(7); - assert.equal(m.year(), 2015, 'year bubbled'); - assert.equal(m.month(), 7, 'set month'); - assert.equal(m.date(), 11, 'keep date'); - assert.equal(m.hour(), 1, 'keep hour'); - assert.equal(m.minute(), 2, 'keep minutes'); - assert.equal(m.second(), 3, 'keep seconds'); - assert.equal(m.millisecond(), 4, 'keep milliseconds'); -}); - -test('quarter diff', function (assert) { - assert.equal(moment('2014-01-01').diff(moment('2014-04-01'), 'quarter'), - -1, 'diff -1 quarter'); - assert.equal(moment('2014-04-01').diff(moment('2014-01-01'), 'quarter'), - 1, 'diff 1 quarter'); - assert.equal(moment('2014-05-01').diff(moment('2014-01-01'), 'quarter'), - 1, 'diff 1 quarter'); - assert.ok(Math.abs((4 / 3) - moment('2014-05-01').diff( - moment('2014-01-01'), 'quarter', true)) < 0.00001, - 'diff 1 1/3 quarter'); - assert.equal(moment('2015-01-01').diff(moment('2014-01-01'), 'quarter'), - 4, 'diff 4 quarters'); -}); - -test('quarter setter bubble to previous year', function (assert) { - var m = moment([2014, 4, 11, 1, 2, 3, 4]).quarter(-3); - assert.equal(m.year(), 2013, 'year bubbled'); - assert.equal(m.month(), 1, 'set month'); - assert.equal(m.date(), 11, 'keep date'); - assert.equal(m.hour(), 1, 'keep hour'); - assert.equal(m.minute(), 2, 'keep minutes'); - assert.equal(m.second(), 3, 'keep seconds'); - assert.equal(m.millisecond(), 4, 'keep milliseconds'); -}); - -}))); - - -;(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' - && typeof require === 'function' ? factory(require('../../moment')) : - typeof define === 'function' && define.amd ? define(['../../moment'], factory) : - factory(global.moment) -}(this, (function (moment) { 'use strict'; - -function each(array, callback) { - var i; - for (i = 0; i < array.length; i++) { - callback(array[i], i, array); - } -} - -function objectKeys(obj) { - if (Object.keys) { - return Object.keys(obj); - } else { - // IE8 - var res = [], i; - for (i in obj) { - if (obj.hasOwnProperty(i)) { - res.push(i); - } - } - return res; - } -} - -// Pick the first defined of two or three arguments. - -function defineCommonLocaleTests(locale, options) { - test('lenient day of month ordinal parsing', function (assert) { - var i, ordinalStr, testMoment; - for (i = 1; i <= 31; ++i) { - ordinalStr = moment([2014, 0, i]).format('YYYY MM Do'); - testMoment = moment(ordinalStr, 'YYYY MM Do'); - assert.equal(testMoment.year(), 2014, - 'lenient day of month ordinal parsing ' + i + ' year check'); - assert.equal(testMoment.month(), 0, - 'lenient day of month ordinal parsing ' + i + ' month check'); - assert.equal(testMoment.date(), i, - 'lenient day of month ordinal parsing ' + i + ' date check'); - } - }); - - test('lenient day of month ordinal parsing of number', function (assert) { - var i, testMoment; - for (i = 1; i <= 31; ++i) { - testMoment = moment('2014 01 ' + i, 'YYYY MM Do'); - assert.equal(testMoment.year(), 2014, - 'lenient day of month ordinal parsing of number ' + i + ' year check'); - assert.equal(testMoment.month(), 0, - 'lenient day of month ordinal parsing of number ' + i + ' month check'); - assert.equal(testMoment.date(), i, - 'lenient day of month ordinal parsing of number ' + i + ' date check'); - } - }); - - test('strict day of month ordinal parsing', function (assert) { - var i, ordinalStr, testMoment; - for (i = 1; i <= 31; ++i) { - ordinalStr = moment([2014, 0, i]).format('YYYY MM Do'); - testMoment = moment(ordinalStr, 'YYYY MM Do', true); - assert.ok(testMoment.isValid(), 'strict day of month ordinal parsing ' + i); - } - }); - - test('meridiem invariant', function (assert) { - var h, m, t1, t2; - for (h = 0; h < 24; ++h) { - for (m = 0; m < 60; m += 15) { - t1 = moment.utc([2000, 0, 1, h, m]); - t2 = moment.utc(t1.format('A h:mm'), 'A h:mm'); - assert.equal(t2.format('HH:mm'), t1.format('HH:mm'), - 'meridiem at ' + t1.format('HH:mm')); - } - } - }); - - test('date format correctness', function (assert) { - var data, tokens; - data = moment.localeData()._longDateFormat; - tokens = objectKeys(data); - each(tokens, function (srchToken) { - // Check each format string to make sure it does not contain any - // tokens that need to be expanded. - each(tokens, function (baseToken) { - // strip escaped sequences - var format = data[baseToken].replace(/(\[[^\]]*\])/g, ''); - assert.equal(false, !!~format.indexOf(srchToken), - 'contains ' + srchToken + ' in ' + baseToken); - }); - }); - }); - - test('month parsing correctness', function (assert) { - var i, m; - - if (locale === 'tr') { - // I can't fix it :( - expect(0); - return; - } - function tester(format) { - var r; - r = moment(m.format(format), format); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format); - r = moment(m.format(format).toLocaleUpperCase(), format); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' upper'); - r = moment(m.format(format).toLocaleLowerCase(), format); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' lower'); - - r = moment(m.format(format), format, true); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' strict'); - r = moment(m.format(format).toLocaleUpperCase(), format, true); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' upper strict'); - r = moment(m.format(format).toLocaleLowerCase(), format, true); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' lower strict'); - } - - for (i = 0; i < 12; ++i) { - m = moment([2015, i, 15, 18]); - tester('MMM'); - tester('MMM.'); - tester('MMMM'); - tester('MMMM.'); - } - }); - - test('weekday parsing correctness', function (assert) { - var i, m; - - if (locale === 'tr' || locale === 'az' || locale === 'ro') { - // tr, az: There is a lower-case letter (ı), that converted to - // upper then lower changes to i - // ro: there is the letter ț which behaves weird under IE8 - expect(0); - return; - } - function tester(format) { - var r, baseMsg = 'weekday ' + m.weekday() + ' fmt ' + format + ' ' + m.toISOString(); - r = moment(m.format(format), format); - assert.equal(r.weekday(), m.weekday(), baseMsg); - r = moment(m.format(format).toLocaleUpperCase(), format); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' upper'); - r = moment(m.format(format).toLocaleLowerCase(), format); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' lower'); - - r = moment(m.format(format), format, true); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' strict'); - r = moment(m.format(format).toLocaleUpperCase(), format, true); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' upper strict'); - r = moment(m.format(format).toLocaleLowerCase(), format, true); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' lower strict'); - } - - for (i = 0; i < 7; ++i) { - m = moment.utc([2015, 0, i + 1, 18]); - tester('dd'); - tester('ddd'); - tester('dddd'); - } - }); - - test('valid localeData', function (assert) { - assert.equal(moment().localeData().months().length, 12, 'months should return 12 months'); - assert.equal(moment().localeData().monthsShort().length, 12, 'monthsShort should return 12 months'); - assert.equal(moment().localeData().weekdays().length, 7, 'weekdays should return 7 days'); - assert.equal(moment().localeData().weekdaysShort().length, 7, 'weekdaysShort should return 7 days'); - assert.equal(moment().localeData().weekdaysMin().length, 7, 'monthsShort should return 7 days'); - }); -} - -function setupDeprecationHandler(test, moment$$1, scope) { - test._expectedDeprecations = null; - test._observedDeprecations = null; - test._oldSupress = moment$$1.suppressDeprecationWarnings; - moment$$1.suppressDeprecationWarnings = true; - test.expectedDeprecations = function () { - test._expectedDeprecations = arguments; - test._observedDeprecations = []; - }; - moment$$1.deprecationHandler = function (name, msg) { - var deprecationId = matchedDeprecation(name, msg, test._expectedDeprecations); - if (deprecationId === -1) { - throw new Error('Unexpected deprecation thrown name=' + - name + ' msg=' + msg); - } - test._observedDeprecations[deprecationId] = 1; - }; -} - -function teardownDeprecationHandler(test, moment$$1, scope) { - moment$$1.suppressDeprecationWarnings = test._oldSupress; - - if (test._expectedDeprecations != null) { - var missedDeprecations = []; - each(test._expectedDeprecations, function (deprecationPattern, id) { - if (test._observedDeprecations[id] !== 1) { - missedDeprecations.push(deprecationPattern); - } - }); - if (missedDeprecations.length !== 0) { - throw new Error('Expected deprecation warnings did not happen: ' + - missedDeprecations.join(' ')); - } - } -} - -function matchedDeprecation(name, msg, deprecations) { - if (deprecations == null) { - return -1; - } - for (var i = 0; i < deprecations.length; ++i) { - if (name != null && name === deprecations[i]) { - return i; - } - if (msg != null && msg.substring(0, deprecations[i].length) === deprecations[i]) { - return i; - } - } - return -1; -} - -/*global QUnit:false*/ - -var test = QUnit.test; - -var expect = QUnit.expect; - -function module$1 (name, lifecycle) { - QUnit.module(name, { - setup : function () { - moment.locale('en'); - moment.createFromInputFallback = function (config) { - throw new Error('input not handled by moment: ' + config._i); - }; - setupDeprecationHandler(test, moment, 'core'); - if (lifecycle && lifecycle.setup) { - lifecycle.setup(); - } - }, - teardown : function () { - teardownDeprecationHandler(test, moment, 'core'); - if (lifecycle && lifecycle.teardown) { - lifecycle.teardown(); - } - } - }); -} - -module$1('relative time'); - -test('default thresholds fromNow', function (assert) { - var a = moment(); - - // Seconds to minutes threshold - a.subtract(44, 'seconds'); - assert.equal(a.fromNow(), 'a few seconds ago', 'Below default seconds to minutes threshold'); - a.subtract(1, 'seconds'); - assert.equal(a.fromNow(), 'a minute ago', 'Above default seconds to minutes threshold'); - - // Minutes to hours threshold - a = moment(); - a.subtract(44, 'minutes'); - assert.equal(a.fromNow(), '44 minutes ago', 'Below default minute to hour threshold'); - a.subtract(1, 'minutes'); - assert.equal(a.fromNow(), 'an hour ago', 'Above default minute to hour threshold'); - - // Hours to days threshold - a = moment(); - a.subtract(21, 'hours'); - assert.equal(a.fromNow(), '21 hours ago', 'Below default hours to day threshold'); - a.subtract(1, 'hours'); - assert.equal(a.fromNow(), 'a day ago', 'Above default hours to day threshold'); - - // Days to month threshold - a = moment(); - a.subtract(25, 'days'); - assert.equal(a.fromNow(), '25 days ago', 'Below default days to month (singular) threshold'); - a.subtract(1, 'days'); - assert.equal(a.fromNow(), 'a month ago', 'Above default days to month (singular) threshold'); - - // months to year threshold - a = moment(); - a.subtract(10, 'months'); - assert.equal(a.fromNow(), '10 months ago', 'Below default days to years threshold'); - a.subtract(1, 'month'); - assert.equal(a.fromNow(), 'a year ago', 'Above default days to years threshold'); -}); - -test('default thresholds toNow', function (assert) { - var a = moment(); - - // Seconds to minutes threshold - a.subtract(44, 'seconds'); - assert.equal(a.toNow(), 'in a few seconds', 'Below default seconds to minutes threshold'); - a.subtract(1, 'seconds'); - assert.equal(a.toNow(), 'in a minute', 'Above default seconds to minutes threshold'); - - // Minutes to hours threshold - a = moment(); - a.subtract(44, 'minutes'); - assert.equal(a.toNow(), 'in 44 minutes', 'Below default minute to hour threshold'); - a.subtract(1, 'minutes'); - assert.equal(a.toNow(), 'in an hour', 'Above default minute to hour threshold'); - - // Hours to days threshold - a = moment(); - a.subtract(21, 'hours'); - assert.equal(a.toNow(), 'in 21 hours', 'Below default hours to day threshold'); - a.subtract(1, 'hours'); - assert.equal(a.toNow(), 'in a day', 'Above default hours to day threshold'); - - // Days to month threshold - a = moment(); - a.subtract(25, 'days'); - assert.equal(a.toNow(), 'in 25 days', 'Below default days to month (singular) threshold'); - a.subtract(1, 'days'); - assert.equal(a.toNow(), 'in a month', 'Above default days to month (singular) threshold'); - - // months to year threshold - a = moment(); - a.subtract(10, 'months'); - assert.equal(a.toNow(), 'in 10 months', 'Below default days to years threshold'); - a.subtract(1, 'month'); - assert.equal(a.toNow(), 'in a year', 'Above default days to years threshold'); -}); - -test('custom thresholds', function (assert) { - var a; - - // Seconds to minute threshold, under 30 - moment.relativeTimeThreshold('s', 25); - - a = moment(); - a.subtract(24, 'seconds'); - assert.equal(a.fromNow(), 'a few seconds ago', 'Below custom seconds to minute threshold, s < 30'); - a.subtract(1, 'seconds'); - assert.equal(a.fromNow(), 'a minute ago', 'Above custom seconds to minute threshold, s < 30'); - - // Seconds to minutes threshold - moment.relativeTimeThreshold('s', 55); - - a = moment(); - a.subtract(54, 'seconds'); - assert.equal(a.fromNow(), 'a few seconds ago', 'Below custom seconds to minutes threshold'); - a.subtract(1, 'seconds'); - assert.equal(a.fromNow(), 'a minute ago', 'Above custom seconds to minutes threshold'); - - moment.relativeTimeThreshold('s', 45); - - // A few seconds to seconds threshold - moment.relativeTimeThreshold('ss', 3); - - a = moment(); - a.subtract(3, 'seconds'); - assert.equal(a.fromNow(), 'a few seconds ago', 'Below custom a few seconds to seconds threshold'); - a.subtract(1, 'seconds'); - assert.equal(a.fromNow(), '4 seconds ago', 'Above custom a few seconds to seconds threshold'); - - moment.relativeTimeThreshold('ss', 44); - - // Minutes to hours threshold - moment.relativeTimeThreshold('m', 55); - a = moment(); - a.subtract(54, 'minutes'); - assert.equal(a.fromNow(), '54 minutes ago', 'Below custom minutes to hours threshold'); - a.subtract(1, 'minutes'); - assert.equal(a.fromNow(), 'an hour ago', 'Above custom minutes to hours threshold'); - moment.relativeTimeThreshold('m', 45); - - // Hours to days threshold - moment.relativeTimeThreshold('h', 24); - a = moment(); - a.subtract(23, 'hours'); - assert.equal(a.fromNow(), '23 hours ago', 'Below custom hours to days threshold'); - a.subtract(1, 'hours'); - assert.equal(a.fromNow(), 'a day ago', 'Above custom hours to days threshold'); - moment.relativeTimeThreshold('h', 22); - - // Days to month threshold - moment.relativeTimeThreshold('d', 28); - a = moment(); - a.subtract(27, 'days'); - assert.equal(a.fromNow(), '27 days ago', 'Below custom days to month (singular) threshold'); - a.subtract(1, 'days'); - assert.equal(a.fromNow(), 'a month ago', 'Above custom days to month (singular) threshold'); - moment.relativeTimeThreshold('d', 26); - - // months to years threshold - moment.relativeTimeThreshold('M', 9); - a = moment(); - a.subtract(8, 'months'); - assert.equal(a.fromNow(), '8 months ago', 'Below custom days to years threshold'); - a.subtract(1, 'months'); - assert.equal(a.fromNow(), 'a year ago', 'Above custom days to years threshold'); - moment.relativeTimeThreshold('M', 11); -}); - -test('custom rounding', function (assert) { - var roundingDefault = moment.relativeTimeRounding(); - - // Round relative time evaluation down - moment.relativeTimeRounding(Math.floor); - - moment.relativeTimeThreshold('s', 60); - moment.relativeTimeThreshold('m', 60); - moment.relativeTimeThreshold('h', 24); - moment.relativeTimeThreshold('d', 27); - moment.relativeTimeThreshold('M', 12); - - var a = moment.utc(); - a.subtract({minutes: 59, seconds: 59}); - assert.equal(a.toNow(), 'in 59 minutes', 'Round down towards the nearest minute'); - - a = moment.utc(); - a.subtract({hours: 23, minutes: 59, seconds: 59}); - assert.equal(a.toNow(), 'in 23 hours', 'Round down towards the nearest hour'); - - a = moment.utc(); - a.subtract({days: 26, hours: 23, minutes: 59}); - assert.equal(a.toNow(), 'in 26 days', 'Round down towards the nearest day (just under)'); - - a = moment.utc(); - a.subtract({days: 27}); - assert.equal(a.toNow(), 'in a month', 'Round down towards the nearest day (just over)'); - - a = moment.utc(); - a.subtract({days: 364}); - assert.equal(a.toNow(), 'in 11 months', 'Round down towards the nearest month'); - - a = moment.utc(); - a.subtract({years: 1, days: 364}); - assert.equal(a.toNow(), 'in a year', 'Round down towards the nearest year'); - - // Do not round relative time evaluation - var retainValue = function (value) { - return value.toFixed(3); - }; - moment.relativeTimeRounding(retainValue); - - a = moment.utc(); - a.subtract({hours: 39}); - assert.equal(a.toNow(), 'in 1.625 days', 'Round down towards the nearest year'); - - // Restore defaults - moment.relativeTimeThreshold('s', 45); - moment.relativeTimeThreshold('m', 45); - moment.relativeTimeThreshold('h', 22); - moment.relativeTimeThreshold('d', 26); - moment.relativeTimeThreshold('M', 11); - moment.relativeTimeRounding(roundingDefault); -}); - -test('retrieve rounding settings', function (assert) { - moment.relativeTimeRounding(Math.round); - var roundingFunction = moment.relativeTimeRounding(); - - assert.equal(roundingFunction, Math.round, 'Can retrieve rounding setting'); -}); - -test('retrieve threshold settings', function (assert) { - moment.relativeTimeThreshold('m', 45); - var minuteThreshold = moment.relativeTimeThreshold('m'); - - assert.equal(minuteThreshold, 45, 'Can retrieve minute setting'); -}); - -}))); - - -;(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' - && typeof require === 'function' ? factory(require('../../moment')) : - typeof define === 'function' && define.amd ? define(['../../moment'], factory) : - factory(global.moment) -}(this, (function (moment) { 'use strict'; - -function each(array, callback) { - var i; - for (i = 0; i < array.length; i++) { - callback(array[i], i, array); - } -} - -function objectKeys(obj) { - if (Object.keys) { - return Object.keys(obj); - } else { - // IE8 - var res = [], i; - for (i in obj) { - if (obj.hasOwnProperty(i)) { - res.push(i); - } - } - return res; - } -} - -// Pick the first defined of two or three arguments. - -function defineCommonLocaleTests(locale, options) { - test('lenient day of month ordinal parsing', function (assert) { - var i, ordinalStr, testMoment; - for (i = 1; i <= 31; ++i) { - ordinalStr = moment([2014, 0, i]).format('YYYY MM Do'); - testMoment = moment(ordinalStr, 'YYYY MM Do'); - assert.equal(testMoment.year(), 2014, - 'lenient day of month ordinal parsing ' + i + ' year check'); - assert.equal(testMoment.month(), 0, - 'lenient day of month ordinal parsing ' + i + ' month check'); - assert.equal(testMoment.date(), i, - 'lenient day of month ordinal parsing ' + i + ' date check'); - } - }); - - test('lenient day of month ordinal parsing of number', function (assert) { - var i, testMoment; - for (i = 1; i <= 31; ++i) { - testMoment = moment('2014 01 ' + i, 'YYYY MM Do'); - assert.equal(testMoment.year(), 2014, - 'lenient day of month ordinal parsing of number ' + i + ' year check'); - assert.equal(testMoment.month(), 0, - 'lenient day of month ordinal parsing of number ' + i + ' month check'); - assert.equal(testMoment.date(), i, - 'lenient day of month ordinal parsing of number ' + i + ' date check'); - } - }); - - test('strict day of month ordinal parsing', function (assert) { - var i, ordinalStr, testMoment; - for (i = 1; i <= 31; ++i) { - ordinalStr = moment([2014, 0, i]).format('YYYY MM Do'); - testMoment = moment(ordinalStr, 'YYYY MM Do', true); - assert.ok(testMoment.isValid(), 'strict day of month ordinal parsing ' + i); - } - }); - - test('meridiem invariant', function (assert) { - var h, m, t1, t2; - for (h = 0; h < 24; ++h) { - for (m = 0; m < 60; m += 15) { - t1 = moment.utc([2000, 0, 1, h, m]); - t2 = moment.utc(t1.format('A h:mm'), 'A h:mm'); - assert.equal(t2.format('HH:mm'), t1.format('HH:mm'), - 'meridiem at ' + t1.format('HH:mm')); - } - } - }); - - test('date format correctness', function (assert) { - var data, tokens; - data = moment.localeData()._longDateFormat; - tokens = objectKeys(data); - each(tokens, function (srchToken) { - // Check each format string to make sure it does not contain any - // tokens that need to be expanded. - each(tokens, function (baseToken) { - // strip escaped sequences - var format = data[baseToken].replace(/(\[[^\]]*\])/g, ''); - assert.equal(false, !!~format.indexOf(srchToken), - 'contains ' + srchToken + ' in ' + baseToken); - }); - }); - }); - - test('month parsing correctness', function (assert) { - var i, m; - - if (locale === 'tr') { - // I can't fix it :( - expect(0); - return; - } - function tester(format) { - var r; - r = moment(m.format(format), format); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format); - r = moment(m.format(format).toLocaleUpperCase(), format); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' upper'); - r = moment(m.format(format).toLocaleLowerCase(), format); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' lower'); - - r = moment(m.format(format), format, true); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' strict'); - r = moment(m.format(format).toLocaleUpperCase(), format, true); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' upper strict'); - r = moment(m.format(format).toLocaleLowerCase(), format, true); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' lower strict'); - } - - for (i = 0; i < 12; ++i) { - m = moment([2015, i, 15, 18]); - tester('MMM'); - tester('MMM.'); - tester('MMMM'); - tester('MMMM.'); - } - }); - - test('weekday parsing correctness', function (assert) { - var i, m; - - if (locale === 'tr' || locale === 'az' || locale === 'ro') { - // tr, az: There is a lower-case letter (ı), that converted to - // upper then lower changes to i - // ro: there is the letter ț which behaves weird under IE8 - expect(0); - return; - } - function tester(format) { - var r, baseMsg = 'weekday ' + m.weekday() + ' fmt ' + format + ' ' + m.toISOString(); - r = moment(m.format(format), format); - assert.equal(r.weekday(), m.weekday(), baseMsg); - r = moment(m.format(format).toLocaleUpperCase(), format); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' upper'); - r = moment(m.format(format).toLocaleLowerCase(), format); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' lower'); - - r = moment(m.format(format), format, true); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' strict'); - r = moment(m.format(format).toLocaleUpperCase(), format, true); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' upper strict'); - r = moment(m.format(format).toLocaleLowerCase(), format, true); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' lower strict'); - } - - for (i = 0; i < 7; ++i) { - m = moment.utc([2015, 0, i + 1, 18]); - tester('dd'); - tester('ddd'); - tester('dddd'); - } - }); - - test('valid localeData', function (assert) { - assert.equal(moment().localeData().months().length, 12, 'months should return 12 months'); - assert.equal(moment().localeData().monthsShort().length, 12, 'monthsShort should return 12 months'); - assert.equal(moment().localeData().weekdays().length, 7, 'weekdays should return 7 days'); - assert.equal(moment().localeData().weekdaysShort().length, 7, 'weekdaysShort should return 7 days'); - assert.equal(moment().localeData().weekdaysMin().length, 7, 'monthsShort should return 7 days'); - }); -} - -function setupDeprecationHandler(test, moment$$1, scope) { - test._expectedDeprecations = null; - test._observedDeprecations = null; - test._oldSupress = moment$$1.suppressDeprecationWarnings; - moment$$1.suppressDeprecationWarnings = true; - test.expectedDeprecations = function () { - test._expectedDeprecations = arguments; - test._observedDeprecations = []; - }; - moment$$1.deprecationHandler = function (name, msg) { - var deprecationId = matchedDeprecation(name, msg, test._expectedDeprecations); - if (deprecationId === -1) { - throw new Error('Unexpected deprecation thrown name=' + - name + ' msg=' + msg); - } - test._observedDeprecations[deprecationId] = 1; - }; -} - -function teardownDeprecationHandler(test, moment$$1, scope) { - moment$$1.suppressDeprecationWarnings = test._oldSupress; - - if (test._expectedDeprecations != null) { - var missedDeprecations = []; - each(test._expectedDeprecations, function (deprecationPattern, id) { - if (test._observedDeprecations[id] !== 1) { - missedDeprecations.push(deprecationPattern); - } - }); - if (missedDeprecations.length !== 0) { - throw new Error('Expected deprecation warnings did not happen: ' + - missedDeprecations.join(' ')); - } - } -} - -function matchedDeprecation(name, msg, deprecations) { - if (deprecations == null) { - return -1; - } - for (var i = 0; i < deprecations.length; ++i) { - if (name != null && name === deprecations[i]) { - return i; - } - if (msg != null && msg.substring(0, deprecations[i].length) === deprecations[i]) { - return i; - } - } - return -1; -} - -/*global QUnit:false*/ - -var test = QUnit.test; - -var expect = QUnit.expect; - -function module$1 (name, lifecycle) { - QUnit.module(name, { - setup : function () { - moment.locale('en'); - moment.createFromInputFallback = function (config) { - throw new Error('input not handled by moment: ' + config._i); - }; - setupDeprecationHandler(test, moment, 'core'); - if (lifecycle && lifecycle.setup) { - lifecycle.setup(); - } - }, - teardown : function () { - teardownDeprecationHandler(test, moment, 'core'); - if (lifecycle && lifecycle.teardown) { - lifecycle.teardown(); - } - } - }); -} - -module$1('start and end of units'); - -test('start of year', function (assert) { - var m = moment(new Date(2011, 1, 2, 3, 4, 5, 6)).startOf('year'), - ms = moment(new Date(2011, 1, 2, 3, 4, 5, 6)).startOf('years'), - ma = moment(new Date(2011, 1, 2, 3, 4, 5, 6)).startOf('y'); - assert.equal(+m, +ms, 'Plural or singular should work'); - assert.equal(+m, +ma, 'Full or abbreviated should work'); - assert.equal(m.year(), 2011, 'keep the year'); - assert.equal(m.month(), 0, 'strip out the month'); - assert.equal(m.date(), 1, 'strip out the day'); - assert.equal(m.hours(), 0, 'strip out the hours'); - assert.equal(m.minutes(), 0, 'strip out the minutes'); - assert.equal(m.seconds(), 0, 'strip out the seconds'); - assert.equal(m.milliseconds(), 0, 'strip out the milliseconds'); -}); - -test('end of year', function (assert) { - var m = moment(new Date(2011, 1, 2, 3, 4, 5, 6)).endOf('year'), - ms = moment(new Date(2011, 1, 2, 3, 4, 5, 6)).endOf('years'), - ma = moment(new Date(2011, 1, 2, 3, 4, 5, 6)).endOf('y'); - assert.equal(+m, +ms, 'Plural or singular should work'); - assert.equal(+m, +ma, 'Full or abbreviated should work'); - assert.equal(m.year(), 2011, 'keep the year'); - assert.equal(m.month(), 11, 'set the month'); - assert.equal(m.date(), 31, 'set the day'); - assert.equal(m.hours(), 23, 'set the hours'); - assert.equal(m.minutes(), 59, 'set the minutes'); - assert.equal(m.seconds(), 59, 'set the seconds'); - assert.equal(m.milliseconds(), 999, 'set the seconds'); -}); - -test('start of quarter', function (assert) { - var m = moment(new Date(2011, 4, 2, 3, 4, 5, 6)).startOf('quarter'), - ms = moment(new Date(2011, 4, 2, 3, 4, 5, 6)).startOf('quarters'), - ma = moment(new Date(2011, 4, 2, 3, 4, 5, 6)).startOf('Q'); - assert.equal(+m, +ms, 'Plural or singular should work'); - assert.equal(+m, +ma, 'Full or abbreviated should work'); - assert.equal(m.year(), 2011, 'keep the year'); - assert.equal(m.quarter(), 2, 'keep the quarter'); - assert.equal(m.month(), 3, 'strip out the month'); - assert.equal(m.date(), 1, 'strip out the day'); - assert.equal(m.hours(), 0, 'strip out the hours'); - assert.equal(m.minutes(), 0, 'strip out the minutes'); - assert.equal(m.seconds(), 0, 'strip out the seconds'); - assert.equal(m.milliseconds(), 0, 'strip out the milliseconds'); -}); - -test('end of quarter', function (assert) { - var m = moment(new Date(2011, 4, 2, 3, 4, 5, 6)).endOf('quarter'), - ms = moment(new Date(2011, 4, 2, 3, 4, 5, 6)).endOf('quarters'), - ma = moment(new Date(2011, 4, 2, 3, 4, 5, 6)).endOf('Q'); - assert.equal(+m, +ms, 'Plural or singular should work'); - assert.equal(+m, +ma, 'Full or abbreviated should work'); - assert.equal(m.year(), 2011, 'keep the year'); - assert.equal(m.quarter(), 2, 'keep the quarter'); - assert.equal(m.month(), 5, 'set the month'); - assert.equal(m.date(), 30, 'set the day'); - assert.equal(m.hours(), 23, 'set the hours'); - assert.equal(m.minutes(), 59, 'set the minutes'); - assert.equal(m.seconds(), 59, 'set the seconds'); - assert.equal(m.milliseconds(), 999, 'set the seconds'); -}); - -test('start of month', function (assert) { - var m = moment(new Date(2011, 1, 2, 3, 4, 5, 6)).startOf('month'), - ms = moment(new Date(2011, 1, 2, 3, 4, 5, 6)).startOf('months'), - ma = moment(new Date(2011, 1, 2, 3, 4, 5, 6)).startOf('M'); - assert.equal(+m, +ms, 'Plural or singular should work'); - assert.equal(+m, +ma, 'Full or abbreviated should work'); - assert.equal(m.year(), 2011, 'keep the year'); - assert.equal(m.month(), 1, 'keep the month'); - assert.equal(m.date(), 1, 'strip out the day'); - assert.equal(m.hours(), 0, 'strip out the hours'); - assert.equal(m.minutes(), 0, 'strip out the minutes'); - assert.equal(m.seconds(), 0, 'strip out the seconds'); - assert.equal(m.milliseconds(), 0, 'strip out the milliseconds'); -}); - -test('end of month', function (assert) { - var m = moment(new Date(2011, 1, 2, 3, 4, 5, 6)).endOf('month'), - ms = moment(new Date(2011, 1, 2, 3, 4, 5, 6)).endOf('months'), - ma = moment(new Date(2011, 1, 2, 3, 4, 5, 6)).endOf('M'); - assert.equal(+m, +ms, 'Plural or singular should work'); - assert.equal(+m, +ma, 'Full or abbreviated should work'); - assert.equal(m.year(), 2011, 'keep the year'); - assert.equal(m.month(), 1, 'keep the month'); - assert.equal(m.date(), 28, 'set the day'); - assert.equal(m.hours(), 23, 'set the hours'); - assert.equal(m.minutes(), 59, 'set the minutes'); - assert.equal(m.seconds(), 59, 'set the seconds'); - assert.equal(m.milliseconds(), 999, 'set the seconds'); -}); - -test('start of week', function (assert) { - var m = moment(new Date(2011, 1, 2, 3, 4, 5, 6)).startOf('week'), - ms = moment(new Date(2011, 1, 2, 3, 4, 5, 6)).startOf('weeks'), - ma = moment(new Date(2011, 1, 2, 3, 4, 5, 6)).startOf('w'); - assert.equal(+m, +ms, 'Plural or singular should work'); - assert.equal(+m, +ma, 'Full or abbreviated should work'); - assert.equal(m.year(), 2011, 'keep the year'); - assert.equal(m.month(), 0, 'rolls back to January'); - assert.equal(m.day(), 0, 'set day of week'); - assert.equal(m.date(), 30, 'set correct date'); - assert.equal(m.hours(), 0, 'strip out the hours'); - assert.equal(m.minutes(), 0, 'strip out the minutes'); - assert.equal(m.seconds(), 0, 'strip out the seconds'); - assert.equal(m.milliseconds(), 0, 'strip out the milliseconds'); -}); - -test('end of week', function (assert) { - var m = moment(new Date(2011, 1, 2, 3, 4, 5, 6)).endOf('week'), - ms = moment(new Date(2011, 1, 2, 3, 4, 5, 6)).endOf('weeks'), - ma = moment(new Date(2011, 1, 2, 3, 4, 5, 6)).endOf('weeks'); - assert.equal(+m, +ms, 'Plural or singular should work'); - assert.equal(+m, +ma, 'Full or abbreviated should work'); - assert.equal(m.year(), 2011, 'keep the year'); - assert.equal(m.month(), 1, 'keep the month'); - assert.equal(m.day(), 6, 'set the day of the week'); - assert.equal(m.date(), 5, 'set the day'); - assert.equal(m.hours(), 23, 'set the hours'); - assert.equal(m.minutes(), 59, 'set the minutes'); - assert.equal(m.seconds(), 59, 'set the seconds'); - assert.equal(m.milliseconds(), 999, 'set the seconds'); -}); - -test('start of iso-week', function (assert) { - var m = moment(new Date(2011, 1, 2, 3, 4, 5, 6)).startOf('isoWeek'), - ms = moment(new Date(2011, 1, 2, 3, 4, 5, 6)).startOf('isoWeeks'), - ma = moment(new Date(2011, 1, 2, 3, 4, 5, 6)).startOf('W'); - assert.equal(+m, +ms, 'Plural or singular should work'); - assert.equal(+m, +ma, 'Full or abbreviated should work'); - assert.equal(m.year(), 2011, 'keep the year'); - assert.equal(m.month(), 0, 'rollback to January'); - assert.equal(m.isoWeekday(), 1, 'set day of iso-week'); - assert.equal(m.date(), 31, 'set correct date'); - assert.equal(m.hours(), 0, 'strip out the hours'); - assert.equal(m.minutes(), 0, 'strip out the minutes'); - assert.equal(m.seconds(), 0, 'strip out the seconds'); - assert.equal(m.milliseconds(), 0, 'strip out the milliseconds'); -}); - -test('end of iso-week', function (assert) { - var m = moment(new Date(2011, 1, 2, 3, 4, 5, 6)).endOf('isoWeek'), - ms = moment(new Date(2011, 1, 2, 3, 4, 5, 6)).endOf('isoWeeks'), - ma = moment(new Date(2011, 1, 2, 3, 4, 5, 6)).endOf('W'); - assert.equal(+m, +ms, 'Plural or singular should work'); - assert.equal(+m, +ma, 'Full or abbreviated should work'); - assert.equal(m.year(), 2011, 'keep the year'); - assert.equal(m.month(), 1, 'keep the month'); - assert.equal(m.isoWeekday(), 7, 'set the day of the week'); - assert.equal(m.date(), 6, 'set the day'); - assert.equal(m.hours(), 23, 'set the hours'); - assert.equal(m.minutes(), 59, 'set the minutes'); - assert.equal(m.seconds(), 59, 'set the seconds'); - assert.equal(m.milliseconds(), 999, 'set the seconds'); -}); - -test('start of day', function (assert) { - var m = moment(new Date(2011, 1, 2, 3, 4, 5, 6)).startOf('day'), - ms = moment(new Date(2011, 1, 2, 3, 4, 5, 6)).startOf('days'), - ma = moment(new Date(2011, 1, 2, 3, 4, 5, 6)).startOf('d'); - assert.equal(+m, +ms, 'Plural or singular should work'); - assert.equal(+m, +ma, 'Full or abbreviated should work'); - assert.equal(m.year(), 2011, 'keep the year'); - assert.equal(m.month(), 1, 'keep the month'); - assert.equal(m.date(), 2, 'keep the day'); - assert.equal(m.hours(), 0, 'strip out the hours'); - assert.equal(m.minutes(), 0, 'strip out the minutes'); - assert.equal(m.seconds(), 0, 'strip out the seconds'); - assert.equal(m.milliseconds(), 0, 'strip out the milliseconds'); -}); - -test('end of day', function (assert) { - var m = moment(new Date(2011, 1, 2, 3, 4, 5, 6)).endOf('day'), - ms = moment(new Date(2011, 1, 2, 3, 4, 5, 6)).endOf('days'), - ma = moment(new Date(2011, 1, 2, 3, 4, 5, 6)).endOf('d'); - assert.equal(+m, +ms, 'Plural or singular should work'); - assert.equal(+m, +ma, 'Full or abbreviated should work'); - assert.equal(m.year(), 2011, 'keep the year'); - assert.equal(m.month(), 1, 'keep the month'); - assert.equal(m.date(), 2, 'keep the day'); - assert.equal(m.hours(), 23, 'set the hours'); - assert.equal(m.minutes(), 59, 'set the minutes'); - assert.equal(m.seconds(), 59, 'set the seconds'); - assert.equal(m.milliseconds(), 999, 'set the seconds'); -}); - -test('start of date', function (assert) { - var m = moment(new Date(2011, 1, 2, 3, 4, 5, 6)).startOf('date'), - ms = moment(new Date(2011, 1, 2, 3, 4, 5, 6)).startOf('dates'); - - assert.equal(+m, +ms, 'Plural or singular should work'); - assert.equal(m.year(), 2011, 'keep the year'); - assert.equal(m.month(), 1, 'keep the month'); - assert.equal(m.date(), 2, 'keep the day'); - assert.equal(m.hours(), 0, 'strip out the hours'); - assert.equal(m.minutes(), 0, 'strip out the minutes'); - assert.equal(m.seconds(), 0, 'strip out the seconds'); - assert.equal(m.milliseconds(), 0, 'strip out the milliseconds'); -}); - -test('end of date', function (assert) { - var m = moment(new Date(2011, 1, 2, 3, 4, 5, 6)).endOf('date'), - ms = moment(new Date(2011, 1, 2, 3, 4, 5, 6)).endOf('dates'); - - assert.equal(+m, +ms, 'Plural or singular should work'); - assert.equal(m.year(), 2011, 'keep the year'); - assert.equal(m.month(), 1, 'keep the month'); - assert.equal(m.date(), 2, 'keep the day'); - assert.equal(m.hours(), 23, 'set the hours'); - assert.equal(m.minutes(), 59, 'set the minutes'); - assert.equal(m.seconds(), 59, 'set the seconds'); - assert.equal(m.milliseconds(), 999, 'set the seconds'); -}); - - -test('start of hour', function (assert) { - var m = moment(new Date(2011, 1, 2, 3, 4, 5, 6)).startOf('hour'), - ms = moment(new Date(2011, 1, 2, 3, 4, 5, 6)).startOf('hours'), - ma = moment(new Date(2011, 1, 2, 3, 4, 5, 6)).startOf('h'); - assert.equal(+m, +ms, 'Plural or singular should work'); - assert.equal(+m, +ma, 'Full or abbreviated should work'); - assert.equal(m.year(), 2011, 'keep the year'); - assert.equal(m.month(), 1, 'keep the month'); - assert.equal(m.date(), 2, 'keep the day'); - assert.equal(m.hours(), 3, 'keep the hours'); - assert.equal(m.minutes(), 0, 'strip out the minutes'); - assert.equal(m.seconds(), 0, 'strip out the seconds'); - assert.equal(m.milliseconds(), 0, 'strip out the milliseconds'); -}); - -test('end of hour', function (assert) { - var m = moment(new Date(2011, 1, 2, 3, 4, 5, 6)).endOf('hour'), - ms = moment(new Date(2011, 1, 2, 3, 4, 5, 6)).endOf('hours'), - ma = moment(new Date(2011, 1, 2, 3, 4, 5, 6)).endOf('h'); - assert.equal(+m, +ms, 'Plural or singular should work'); - assert.equal(+m, +ma, 'Full or abbreviated should work'); - assert.equal(m.year(), 2011, 'keep the year'); - assert.equal(m.month(), 1, 'keep the month'); - assert.equal(m.date(), 2, 'keep the day'); - assert.equal(m.hours(), 3, 'keep the hours'); - assert.equal(m.minutes(), 59, 'set the minutes'); - assert.equal(m.seconds(), 59, 'set the seconds'); - assert.equal(m.milliseconds(), 999, 'set the seconds'); -}); - -test('start of minute', function (assert) { - var m = moment(new Date(2011, 1, 2, 3, 4, 5, 6)).startOf('minute'), - ms = moment(new Date(2011, 1, 2, 3, 4, 5, 6)).startOf('minutes'), - ma = moment(new Date(2011, 1, 2, 3, 4, 5, 6)).startOf('m'); - assert.equal(+m, +ms, 'Plural or singular should work'); - assert.equal(+m, +ma, 'Full or abbreviated should work'); - assert.equal(m.year(), 2011, 'keep the year'); - assert.equal(m.month(), 1, 'keep the month'); - assert.equal(m.date(), 2, 'keep the day'); - assert.equal(m.hours(), 3, 'keep the hours'); - assert.equal(m.minutes(), 4, 'keep the minutes'); - assert.equal(m.seconds(), 0, 'strip out the seconds'); - assert.equal(m.milliseconds(), 0, 'strip out the milliseconds'); -}); - -test('end of minute', function (assert) { - var m = moment(new Date(2011, 1, 2, 3, 4, 5, 6)).endOf('minute'), - ms = moment(new Date(2011, 1, 2, 3, 4, 5, 6)).endOf('minutes'), - ma = moment(new Date(2011, 1, 2, 3, 4, 5, 6)).endOf('m'); - assert.equal(+m, +ms, 'Plural or singular should work'); - assert.equal(+m, +ma, 'Full or abbreviated should work'); - assert.equal(m.year(), 2011, 'keep the year'); - assert.equal(m.month(), 1, 'keep the month'); - assert.equal(m.date(), 2, 'keep the day'); - assert.equal(m.hours(), 3, 'keep the hours'); - assert.equal(m.minutes(), 4, 'keep the minutes'); - assert.equal(m.seconds(), 59, 'set the seconds'); - assert.equal(m.milliseconds(), 999, 'set the seconds'); -}); - -test('start of second', function (assert) { - var m = moment(new Date(2011, 1, 2, 3, 4, 5, 6)).startOf('second'), - ms = moment(new Date(2011, 1, 2, 3, 4, 5, 6)).startOf('seconds'), - ma = moment(new Date(2011, 1, 2, 3, 4, 5, 6)).startOf('s'); - assert.equal(+m, +ms, 'Plural or singular should work'); - assert.equal(+m, +ma, 'Full or abbreviated should work'); - assert.equal(m.year(), 2011, 'keep the year'); - assert.equal(m.month(), 1, 'keep the month'); - assert.equal(m.date(), 2, 'keep the day'); - assert.equal(m.hours(), 3, 'keep the hours'); - assert.equal(m.minutes(), 4, 'keep the minutes'); - assert.equal(m.seconds(), 5, 'keep the the seconds'); - assert.equal(m.milliseconds(), 0, 'strip out the milliseconds'); -}); - -test('end of second', function (assert) { - var m = moment(new Date(2011, 1, 2, 3, 4, 5, 6)).endOf('second'), - ms = moment(new Date(2011, 1, 2, 3, 4, 5, 6)).endOf('seconds'), - ma = moment(new Date(2011, 1, 2, 3, 4, 5, 6)).endOf('s'); - assert.equal(+m, +ms, 'Plural or singular should work'); - assert.equal(+m, +ma, 'Full or abbreviated should work'); - assert.equal(m.year(), 2011, 'keep the year'); - assert.equal(m.month(), 1, 'keep the month'); - assert.equal(m.date(), 2, 'keep the day'); - assert.equal(m.hours(), 3, 'keep the hours'); - assert.equal(m.minutes(), 4, 'keep the minutes'); - assert.equal(m.seconds(), 5, 'keep the seconds'); - assert.equal(m.milliseconds(), 999, 'set the seconds'); -}); - -test('startOf across DST +1', function (assert) { - var oldUpdateOffset = moment.updateOffset, - // Based on a real story somewhere in America/Los_Angeles - dstAt = moment('2014-03-09T02:00:00-08:00').parseZone(), - m; - - moment.updateOffset = function (mom, keepTime) { - if (mom.isBefore(dstAt)) { - mom.utcOffset(-8, keepTime); - } else { - mom.utcOffset(-7, keepTime); - } - }; - - m = moment('2014-03-15T00:00:00-07:00').parseZone(); - m.startOf('y'); - assert.equal(m.format(), '2014-01-01T00:00:00-08:00', 'startOf(\'year\') across +1'); - - m = moment('2014-03-15T00:00:00-07:00').parseZone(); - m.startOf('M'); - assert.equal(m.format(), '2014-03-01T00:00:00-08:00', 'startOf(\'month\') across +1'); - - m = moment('2014-03-09T09:00:00-07:00').parseZone(); - m.startOf('d'); - assert.equal(m.format(), '2014-03-09T00:00:00-08:00', 'startOf(\'day\') across +1'); - - m = moment('2014-03-09T03:05:00-07:00').parseZone(); - m.startOf('h'); - assert.equal(m.format(), '2014-03-09T03:00:00-07:00', 'startOf(\'hour\') after +1'); - - m = moment('2014-03-09T01:35:00-08:00').parseZone(); - m.startOf('h'); - assert.equal(m.format(), '2014-03-09T01:00:00-08:00', 'startOf(\'hour\') before +1'); - - // There is no such time as 2:30-7 to try startOf('hour') across that - - moment.updateOffset = oldUpdateOffset; -}); - -test('startOf across DST -1', function (assert) { - var oldUpdateOffset = moment.updateOffset, - // Based on a real story somewhere in America/Los_Angeles - dstAt = moment('2014-11-02T02:00:00-07:00').parseZone(), - m; - - moment.updateOffset = function (mom, keepTime) { - if (mom.isBefore(dstAt)) { - mom.utcOffset(-7, keepTime); - } else { - mom.utcOffset(-8, keepTime); - } - }; - - m = moment('2014-11-15T00:00:00-08:00').parseZone(); - m.startOf('y'); - assert.equal(m.format(), '2014-01-01T00:00:00-07:00', 'startOf(\'year\') across -1'); - - m = moment('2014-11-15T00:00:00-08:00').parseZone(); - m.startOf('M'); - assert.equal(m.format(), '2014-11-01T00:00:00-07:00', 'startOf(\'month\') across -1'); - - m = moment('2014-11-02T09:00:00-08:00').parseZone(); - m.startOf('d'); - assert.equal(m.format(), '2014-11-02T00:00:00-07:00', 'startOf(\'day\') across -1'); - - // note that utc offset is -8 - m = moment('2014-11-02T01:30:00-08:00').parseZone(); - m.startOf('h'); - assert.equal(m.format(), '2014-11-02T01:00:00-08:00', 'startOf(\'hour\') after +1'); - - // note that utc offset is -7 - m = moment('2014-11-02T01:30:00-07:00').parseZone(); - m.startOf('h'); - assert.equal(m.format(), '2014-11-02T01:00:00-07:00', 'startOf(\'hour\') before +1'); - - moment.updateOffset = oldUpdateOffset; -}); - -test('endOf millisecond and no-arg', function (assert) { - var m = moment(); - assert.equal(+m, +m.clone().endOf(), 'endOf without argument should change time'); - assert.equal(+m, +m.clone().endOf('ms'), 'endOf with ms argument should change time'); - assert.equal(+m, +m.clone().endOf('millisecond'), 'endOf with millisecond argument should change time'); - assert.equal(+m, +m.clone().endOf('milliseconds'), 'endOf with milliseconds argument should change time'); -}); - -}))); - - -;(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' - && typeof require === 'function' ? factory(require('../../moment')) : - typeof define === 'function' && define.amd ? define(['../../moment'], factory) : - factory(global.moment) -}(this, (function (moment) { 'use strict'; - -function each(array, callback) { - var i; - for (i = 0; i < array.length; i++) { - callback(array[i], i, array); - } -} - -function objectKeys(obj) { - if (Object.keys) { - return Object.keys(obj); - } else { - // IE8 - var res = [], i; - for (i in obj) { - if (obj.hasOwnProperty(i)) { - res.push(i); - } - } - return res; - } -} - -// Pick the first defined of two or three arguments. - -function defineCommonLocaleTests(locale, options) { - test('lenient day of month ordinal parsing', function (assert) { - var i, ordinalStr, testMoment; - for (i = 1; i <= 31; ++i) { - ordinalStr = moment([2014, 0, i]).format('YYYY MM Do'); - testMoment = moment(ordinalStr, 'YYYY MM Do'); - assert.equal(testMoment.year(), 2014, - 'lenient day of month ordinal parsing ' + i + ' year check'); - assert.equal(testMoment.month(), 0, - 'lenient day of month ordinal parsing ' + i + ' month check'); - assert.equal(testMoment.date(), i, - 'lenient day of month ordinal parsing ' + i + ' date check'); - } - }); - - test('lenient day of month ordinal parsing of number', function (assert) { - var i, testMoment; - for (i = 1; i <= 31; ++i) { - testMoment = moment('2014 01 ' + i, 'YYYY MM Do'); - assert.equal(testMoment.year(), 2014, - 'lenient day of month ordinal parsing of number ' + i + ' year check'); - assert.equal(testMoment.month(), 0, - 'lenient day of month ordinal parsing of number ' + i + ' month check'); - assert.equal(testMoment.date(), i, - 'lenient day of month ordinal parsing of number ' + i + ' date check'); - } - }); - - test('strict day of month ordinal parsing', function (assert) { - var i, ordinalStr, testMoment; - for (i = 1; i <= 31; ++i) { - ordinalStr = moment([2014, 0, i]).format('YYYY MM Do'); - testMoment = moment(ordinalStr, 'YYYY MM Do', true); - assert.ok(testMoment.isValid(), 'strict day of month ordinal parsing ' + i); - } - }); - - test('meridiem invariant', function (assert) { - var h, m, t1, t2; - for (h = 0; h < 24; ++h) { - for (m = 0; m < 60; m += 15) { - t1 = moment.utc([2000, 0, 1, h, m]); - t2 = moment.utc(t1.format('A h:mm'), 'A h:mm'); - assert.equal(t2.format('HH:mm'), t1.format('HH:mm'), - 'meridiem at ' + t1.format('HH:mm')); - } - } - }); - - test('date format correctness', function (assert) { - var data, tokens; - data = moment.localeData()._longDateFormat; - tokens = objectKeys(data); - each(tokens, function (srchToken) { - // Check each format string to make sure it does not contain any - // tokens that need to be expanded. - each(tokens, function (baseToken) { - // strip escaped sequences - var format = data[baseToken].replace(/(\[[^\]]*\])/g, ''); - assert.equal(false, !!~format.indexOf(srchToken), - 'contains ' + srchToken + ' in ' + baseToken); - }); - }); - }); - - test('month parsing correctness', function (assert) { - var i, m; - - if (locale === 'tr') { - // I can't fix it :( - expect(0); - return; - } - function tester(format) { - var r; - r = moment(m.format(format), format); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format); - r = moment(m.format(format).toLocaleUpperCase(), format); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' upper'); - r = moment(m.format(format).toLocaleLowerCase(), format); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' lower'); - - r = moment(m.format(format), format, true); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' strict'); - r = moment(m.format(format).toLocaleUpperCase(), format, true); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' upper strict'); - r = moment(m.format(format).toLocaleLowerCase(), format, true); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' lower strict'); - } - - for (i = 0; i < 12; ++i) { - m = moment([2015, i, 15, 18]); - tester('MMM'); - tester('MMM.'); - tester('MMMM'); - tester('MMMM.'); - } - }); - - test('weekday parsing correctness', function (assert) { - var i, m; - - if (locale === 'tr' || locale === 'az' || locale === 'ro') { - // tr, az: There is a lower-case letter (ı), that converted to - // upper then lower changes to i - // ro: there is the letter ț which behaves weird under IE8 - expect(0); - return; - } - function tester(format) { - var r, baseMsg = 'weekday ' + m.weekday() + ' fmt ' + format + ' ' + m.toISOString(); - r = moment(m.format(format), format); - assert.equal(r.weekday(), m.weekday(), baseMsg); - r = moment(m.format(format).toLocaleUpperCase(), format); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' upper'); - r = moment(m.format(format).toLocaleLowerCase(), format); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' lower'); - - r = moment(m.format(format), format, true); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' strict'); - r = moment(m.format(format).toLocaleUpperCase(), format, true); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' upper strict'); - r = moment(m.format(format).toLocaleLowerCase(), format, true); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' lower strict'); - } - - for (i = 0; i < 7; ++i) { - m = moment.utc([2015, 0, i + 1, 18]); - tester('dd'); - tester('ddd'); - tester('dddd'); - } - }); - - test('valid localeData', function (assert) { - assert.equal(moment().localeData().months().length, 12, 'months should return 12 months'); - assert.equal(moment().localeData().monthsShort().length, 12, 'monthsShort should return 12 months'); - assert.equal(moment().localeData().weekdays().length, 7, 'weekdays should return 7 days'); - assert.equal(moment().localeData().weekdaysShort().length, 7, 'weekdaysShort should return 7 days'); - assert.equal(moment().localeData().weekdaysMin().length, 7, 'monthsShort should return 7 days'); - }); -} - -function setupDeprecationHandler(test, moment$$1, scope) { - test._expectedDeprecations = null; - test._observedDeprecations = null; - test._oldSupress = moment$$1.suppressDeprecationWarnings; - moment$$1.suppressDeprecationWarnings = true; - test.expectedDeprecations = function () { - test._expectedDeprecations = arguments; - test._observedDeprecations = []; - }; - moment$$1.deprecationHandler = function (name, msg) { - var deprecationId = matchedDeprecation(name, msg, test._expectedDeprecations); - if (deprecationId === -1) { - throw new Error('Unexpected deprecation thrown name=' + - name + ' msg=' + msg); - } - test._observedDeprecations[deprecationId] = 1; - }; -} - -function teardownDeprecationHandler(test, moment$$1, scope) { - moment$$1.suppressDeprecationWarnings = test._oldSupress; - - if (test._expectedDeprecations != null) { - var missedDeprecations = []; - each(test._expectedDeprecations, function (deprecationPattern, id) { - if (test._observedDeprecations[id] !== 1) { - missedDeprecations.push(deprecationPattern); - } - }); - if (missedDeprecations.length !== 0) { - throw new Error('Expected deprecation warnings did not happen: ' + - missedDeprecations.join(' ')); - } - } -} - -function matchedDeprecation(name, msg, deprecations) { - if (deprecations == null) { - return -1; - } - for (var i = 0; i < deprecations.length; ++i) { - if (name != null && name === deprecations[i]) { - return i; - } - if (msg != null && msg.substring(0, deprecations[i].length) === deprecations[i]) { - return i; - } - } - return -1; -} - -/*global QUnit:false*/ - -var test = QUnit.test; - -var expect = QUnit.expect; - -function module$1 (name, lifecycle) { - QUnit.module(name, { - setup : function () { - moment.locale('en'); - moment.createFromInputFallback = function (config) { - throw new Error('input not handled by moment: ' + config._i); - }; - setupDeprecationHandler(test, moment, 'core'); - if (lifecycle && lifecycle.setup) { - lifecycle.setup(); - } - }, - teardown : function () { - teardownDeprecationHandler(test, moment, 'core'); - if (lifecycle && lifecycle.teardown) { - lifecycle.teardown(); - } - } - }); -} - -module$1('string prototype'); - -test('string prototype overrides call', function (assert) { - var prior = String.prototype.call, b; - String.prototype.call = function () { - return null; - }; - - b = moment(new Date(2011, 7, 28, 15, 25, 50, 125)); - assert.equal(b.format('MMMM Do YYYY, h:mm a'), 'August 28th 2011, 3:25 pm'); - - String.prototype.call = prior; -}); - -}))); - - -;(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' - && typeof require === 'function' ? factory(require('../../moment')) : - typeof define === 'function' && define.amd ? define(['../../moment'], factory) : - factory(global.moment) -}(this, (function (moment) { 'use strict'; - -function each(array, callback) { - var i; - for (i = 0; i < array.length; i++) { - callback(array[i], i, array); - } -} - -function objectKeys(obj) { - if (Object.keys) { - return Object.keys(obj); - } else { - // IE8 - var res = [], i; - for (i in obj) { - if (obj.hasOwnProperty(i)) { - res.push(i); - } - } - return res; - } -} - -// Pick the first defined of two or three arguments. - -function defineCommonLocaleTests(locale, options) { - test('lenient day of month ordinal parsing', function (assert) { - var i, ordinalStr, testMoment; - for (i = 1; i <= 31; ++i) { - ordinalStr = moment([2014, 0, i]).format('YYYY MM Do'); - testMoment = moment(ordinalStr, 'YYYY MM Do'); - assert.equal(testMoment.year(), 2014, - 'lenient day of month ordinal parsing ' + i + ' year check'); - assert.equal(testMoment.month(), 0, - 'lenient day of month ordinal parsing ' + i + ' month check'); - assert.equal(testMoment.date(), i, - 'lenient day of month ordinal parsing ' + i + ' date check'); - } - }); - - test('lenient day of month ordinal parsing of number', function (assert) { - var i, testMoment; - for (i = 1; i <= 31; ++i) { - testMoment = moment('2014 01 ' + i, 'YYYY MM Do'); - assert.equal(testMoment.year(), 2014, - 'lenient day of month ordinal parsing of number ' + i + ' year check'); - assert.equal(testMoment.month(), 0, - 'lenient day of month ordinal parsing of number ' + i + ' month check'); - assert.equal(testMoment.date(), i, - 'lenient day of month ordinal parsing of number ' + i + ' date check'); - } - }); - - test('strict day of month ordinal parsing', function (assert) { - var i, ordinalStr, testMoment; - for (i = 1; i <= 31; ++i) { - ordinalStr = moment([2014, 0, i]).format('YYYY MM Do'); - testMoment = moment(ordinalStr, 'YYYY MM Do', true); - assert.ok(testMoment.isValid(), 'strict day of month ordinal parsing ' + i); - } - }); - - test('meridiem invariant', function (assert) { - var h, m, t1, t2; - for (h = 0; h < 24; ++h) { - for (m = 0; m < 60; m += 15) { - t1 = moment.utc([2000, 0, 1, h, m]); - t2 = moment.utc(t1.format('A h:mm'), 'A h:mm'); - assert.equal(t2.format('HH:mm'), t1.format('HH:mm'), - 'meridiem at ' + t1.format('HH:mm')); - } - } - }); - - test('date format correctness', function (assert) { - var data, tokens; - data = moment.localeData()._longDateFormat; - tokens = objectKeys(data); - each(tokens, function (srchToken) { - // Check each format string to make sure it does not contain any - // tokens that need to be expanded. - each(tokens, function (baseToken) { - // strip escaped sequences - var format = data[baseToken].replace(/(\[[^\]]*\])/g, ''); - assert.equal(false, !!~format.indexOf(srchToken), - 'contains ' + srchToken + ' in ' + baseToken); - }); - }); - }); - - test('month parsing correctness', function (assert) { - var i, m; - - if (locale === 'tr') { - // I can't fix it :( - expect(0); - return; - } - function tester(format) { - var r; - r = moment(m.format(format), format); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format); - r = moment(m.format(format).toLocaleUpperCase(), format); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' upper'); - r = moment(m.format(format).toLocaleLowerCase(), format); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' lower'); - - r = moment(m.format(format), format, true); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' strict'); - r = moment(m.format(format).toLocaleUpperCase(), format, true); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' upper strict'); - r = moment(m.format(format).toLocaleLowerCase(), format, true); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' lower strict'); - } - - for (i = 0; i < 12; ++i) { - m = moment([2015, i, 15, 18]); - tester('MMM'); - tester('MMM.'); - tester('MMMM'); - tester('MMMM.'); - } - }); - - test('weekday parsing correctness', function (assert) { - var i, m; - - if (locale === 'tr' || locale === 'az' || locale === 'ro') { - // tr, az: There is a lower-case letter (ı), that converted to - // upper then lower changes to i - // ro: there is the letter ț which behaves weird under IE8 - expect(0); - return; - } - function tester(format) { - var r, baseMsg = 'weekday ' + m.weekday() + ' fmt ' + format + ' ' + m.toISOString(); - r = moment(m.format(format), format); - assert.equal(r.weekday(), m.weekday(), baseMsg); - r = moment(m.format(format).toLocaleUpperCase(), format); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' upper'); - r = moment(m.format(format).toLocaleLowerCase(), format); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' lower'); - - r = moment(m.format(format), format, true); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' strict'); - r = moment(m.format(format).toLocaleUpperCase(), format, true); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' upper strict'); - r = moment(m.format(format).toLocaleLowerCase(), format, true); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' lower strict'); - } - - for (i = 0; i < 7; ++i) { - m = moment.utc([2015, 0, i + 1, 18]); - tester('dd'); - tester('ddd'); - tester('dddd'); - } - }); - - test('valid localeData', function (assert) { - assert.equal(moment().localeData().months().length, 12, 'months should return 12 months'); - assert.equal(moment().localeData().monthsShort().length, 12, 'monthsShort should return 12 months'); - assert.equal(moment().localeData().weekdays().length, 7, 'weekdays should return 7 days'); - assert.equal(moment().localeData().weekdaysShort().length, 7, 'weekdaysShort should return 7 days'); - assert.equal(moment().localeData().weekdaysMin().length, 7, 'monthsShort should return 7 days'); - }); -} - -function setupDeprecationHandler(test, moment$$1, scope) { - test._expectedDeprecations = null; - test._observedDeprecations = null; - test._oldSupress = moment$$1.suppressDeprecationWarnings; - moment$$1.suppressDeprecationWarnings = true; - test.expectedDeprecations = function () { - test._expectedDeprecations = arguments; - test._observedDeprecations = []; - }; - moment$$1.deprecationHandler = function (name, msg) { - var deprecationId = matchedDeprecation(name, msg, test._expectedDeprecations); - if (deprecationId === -1) { - throw new Error('Unexpected deprecation thrown name=' + - name + ' msg=' + msg); - } - test._observedDeprecations[deprecationId] = 1; - }; -} - -function teardownDeprecationHandler(test, moment$$1, scope) { - moment$$1.suppressDeprecationWarnings = test._oldSupress; - - if (test._expectedDeprecations != null) { - var missedDeprecations = []; - each(test._expectedDeprecations, function (deprecationPattern, id) { - if (test._observedDeprecations[id] !== 1) { - missedDeprecations.push(deprecationPattern); - } - }); - if (missedDeprecations.length !== 0) { - throw new Error('Expected deprecation warnings did not happen: ' + - missedDeprecations.join(' ')); - } - } -} - -function matchedDeprecation(name, msg, deprecations) { - if (deprecations == null) { - return -1; - } - for (var i = 0; i < deprecations.length; ++i) { - if (name != null && name === deprecations[i]) { - return i; - } - if (msg != null && msg.substring(0, deprecations[i].length) === deprecations[i]) { - return i; - } - } - return -1; -} - -/*global QUnit:false*/ - -var test = QUnit.test; - -var expect = QUnit.expect; - -function module$1 (name, lifecycle) { - QUnit.module(name, { - setup : function () { - moment.locale('en'); - moment.createFromInputFallback = function (config) { - throw new Error('input not handled by moment: ' + config._i); - }; - setupDeprecationHandler(test, moment, 'core'); - if (lifecycle && lifecycle.setup) { - lifecycle.setup(); - } - }, - teardown : function () { - teardownDeprecationHandler(test, moment, 'core'); - if (lifecycle && lifecycle.teardown) { - lifecycle.teardown(); - } - } - }); -} - -module$1('to type'); - -test('toObject', function (assert) { - var expected = { - years:2010, - months:3, - date:5, - hours:15, - minutes:10, - seconds:3, - milliseconds:123 - }; - assert.deepEqual(moment(expected).toObject(), expected, 'toObject invalid'); -}); - -test('toArray', function (assert) { - var expected = [2014, 11, 26, 11, 46, 58, 17]; - assert.deepEqual(moment(expected).toArray(), expected, 'toArray invalid'); -}); - -test('toDate returns a copy of the internal date', function (assert) { - var m = moment(); - var d = m.toDate(); - m.year(0); - assert.notEqual(d, m.toDate()); -}); - -test('toJSON', function (assert) { - if (Date.prototype.toISOString) { - var expected = new Date().toISOString(); - assert.deepEqual(moment(expected).toJSON(), expected, 'toJSON invalid'); - } else { - // IE8 - expect(0); - } -}); - -test('toJSON works when moment is frozen', function (assert) { - if (Date.prototype.toISOString) { - var expected = new Date().toISOString(); - var m = moment(expected); - if (Object.freeze != null) { - Object.freeze(m); - } - assert.deepEqual(m.toJSON(), expected, 'toJSON when frozen invalid'); - } else { - // IE8 - expect(0); - } -}); - -}))); - - -;(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' - && typeof require === 'function' ? factory(require('../../moment')) : - typeof define === 'function' && define.amd ? define(['../../moment'], factory) : - factory(global.moment) -}(this, (function (moment) { 'use strict'; - -function each(array, callback) { - var i; - for (i = 0; i < array.length; i++) { - callback(array[i], i, array); - } -} - -function objectKeys(obj) { - if (Object.keys) { - return Object.keys(obj); - } else { - // IE8 - var res = [], i; - for (i in obj) { - if (obj.hasOwnProperty(i)) { - res.push(i); - } - } - return res; - } -} - -// Pick the first defined of two or three arguments. - -function defineCommonLocaleTests(locale, options) { - test('lenient day of month ordinal parsing', function (assert) { - var i, ordinalStr, testMoment; - for (i = 1; i <= 31; ++i) { - ordinalStr = moment([2014, 0, i]).format('YYYY MM Do'); - testMoment = moment(ordinalStr, 'YYYY MM Do'); - assert.equal(testMoment.year(), 2014, - 'lenient day of month ordinal parsing ' + i + ' year check'); - assert.equal(testMoment.month(), 0, - 'lenient day of month ordinal parsing ' + i + ' month check'); - assert.equal(testMoment.date(), i, - 'lenient day of month ordinal parsing ' + i + ' date check'); - } - }); - - test('lenient day of month ordinal parsing of number', function (assert) { - var i, testMoment; - for (i = 1; i <= 31; ++i) { - testMoment = moment('2014 01 ' + i, 'YYYY MM Do'); - assert.equal(testMoment.year(), 2014, - 'lenient day of month ordinal parsing of number ' + i + ' year check'); - assert.equal(testMoment.month(), 0, - 'lenient day of month ordinal parsing of number ' + i + ' month check'); - assert.equal(testMoment.date(), i, - 'lenient day of month ordinal parsing of number ' + i + ' date check'); - } - }); - - test('strict day of month ordinal parsing', function (assert) { - var i, ordinalStr, testMoment; - for (i = 1; i <= 31; ++i) { - ordinalStr = moment([2014, 0, i]).format('YYYY MM Do'); - testMoment = moment(ordinalStr, 'YYYY MM Do', true); - assert.ok(testMoment.isValid(), 'strict day of month ordinal parsing ' + i); - } - }); - - test('meridiem invariant', function (assert) { - var h, m, t1, t2; - for (h = 0; h < 24; ++h) { - for (m = 0; m < 60; m += 15) { - t1 = moment.utc([2000, 0, 1, h, m]); - t2 = moment.utc(t1.format('A h:mm'), 'A h:mm'); - assert.equal(t2.format('HH:mm'), t1.format('HH:mm'), - 'meridiem at ' + t1.format('HH:mm')); - } - } - }); - - test('date format correctness', function (assert) { - var data, tokens; - data = moment.localeData()._longDateFormat; - tokens = objectKeys(data); - each(tokens, function (srchToken) { - // Check each format string to make sure it does not contain any - // tokens that need to be expanded. - each(tokens, function (baseToken) { - // strip escaped sequences - var format = data[baseToken].replace(/(\[[^\]]*\])/g, ''); - assert.equal(false, !!~format.indexOf(srchToken), - 'contains ' + srchToken + ' in ' + baseToken); - }); - }); - }); - - test('month parsing correctness', function (assert) { - var i, m; - - if (locale === 'tr') { - // I can't fix it :( - expect(0); - return; - } - function tester(format) { - var r; - r = moment(m.format(format), format); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format); - r = moment(m.format(format).toLocaleUpperCase(), format); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' upper'); - r = moment(m.format(format).toLocaleLowerCase(), format); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' lower'); - - r = moment(m.format(format), format, true); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' strict'); - r = moment(m.format(format).toLocaleUpperCase(), format, true); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' upper strict'); - r = moment(m.format(format).toLocaleLowerCase(), format, true); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' lower strict'); - } - - for (i = 0; i < 12; ++i) { - m = moment([2015, i, 15, 18]); - tester('MMM'); - tester('MMM.'); - tester('MMMM'); - tester('MMMM.'); - } - }); - - test('weekday parsing correctness', function (assert) { - var i, m; - - if (locale === 'tr' || locale === 'az' || locale === 'ro') { - // tr, az: There is a lower-case letter (ı), that converted to - // upper then lower changes to i - // ro: there is the letter ț which behaves weird under IE8 - expect(0); - return; - } - function tester(format) { - var r, baseMsg = 'weekday ' + m.weekday() + ' fmt ' + format + ' ' + m.toISOString(); - r = moment(m.format(format), format); - assert.equal(r.weekday(), m.weekday(), baseMsg); - r = moment(m.format(format).toLocaleUpperCase(), format); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' upper'); - r = moment(m.format(format).toLocaleLowerCase(), format); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' lower'); - - r = moment(m.format(format), format, true); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' strict'); - r = moment(m.format(format).toLocaleUpperCase(), format, true); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' upper strict'); - r = moment(m.format(format).toLocaleLowerCase(), format, true); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' lower strict'); - } - - for (i = 0; i < 7; ++i) { - m = moment.utc([2015, 0, i + 1, 18]); - tester('dd'); - tester('ddd'); - tester('dddd'); - } - }); - - test('valid localeData', function (assert) { - assert.equal(moment().localeData().months().length, 12, 'months should return 12 months'); - assert.equal(moment().localeData().monthsShort().length, 12, 'monthsShort should return 12 months'); - assert.equal(moment().localeData().weekdays().length, 7, 'weekdays should return 7 days'); - assert.equal(moment().localeData().weekdaysShort().length, 7, 'weekdaysShort should return 7 days'); - assert.equal(moment().localeData().weekdaysMin().length, 7, 'monthsShort should return 7 days'); - }); -} - -function setupDeprecationHandler(test, moment$$1, scope) { - test._expectedDeprecations = null; - test._observedDeprecations = null; - test._oldSupress = moment$$1.suppressDeprecationWarnings; - moment$$1.suppressDeprecationWarnings = true; - test.expectedDeprecations = function () { - test._expectedDeprecations = arguments; - test._observedDeprecations = []; - }; - moment$$1.deprecationHandler = function (name, msg) { - var deprecationId = matchedDeprecation(name, msg, test._expectedDeprecations); - if (deprecationId === -1) { - throw new Error('Unexpected deprecation thrown name=' + - name + ' msg=' + msg); - } - test._observedDeprecations[deprecationId] = 1; - }; -} - -function teardownDeprecationHandler(test, moment$$1, scope) { - moment$$1.suppressDeprecationWarnings = test._oldSupress; - - if (test._expectedDeprecations != null) { - var missedDeprecations = []; - each(test._expectedDeprecations, function (deprecationPattern, id) { - if (test._observedDeprecations[id] !== 1) { - missedDeprecations.push(deprecationPattern); - } - }); - if (missedDeprecations.length !== 0) { - throw new Error('Expected deprecation warnings did not happen: ' + - missedDeprecations.join(' ')); - } - } -} - -function matchedDeprecation(name, msg, deprecations) { - if (deprecations == null) { - return -1; - } - for (var i = 0; i < deprecations.length; ++i) { - if (name != null && name === deprecations[i]) { - return i; - } - if (msg != null && msg.substring(0, deprecations[i].length) === deprecations[i]) { - return i; - } - } - return -1; -} - -/*global QUnit:false*/ - -var test = QUnit.test; - -var expect = QUnit.expect; - -function module$1 (name, lifecycle) { - QUnit.module(name, { - setup : function () { - moment.locale('en'); - moment.createFromInputFallback = function (config) { - throw new Error('input not handled by moment: ' + config._i); - }; - setupDeprecationHandler(test, moment, 'core'); - if (lifecycle && lifecycle.setup) { - lifecycle.setup(); - } - }, - teardown : function () { - teardownDeprecationHandler(test, moment, 'core'); - if (lifecycle && lifecycle.teardown) { - lifecycle.teardown(); - } - } - }); -} - -module$1('utc'); - -test('utc and local', function (assert) { - var m = moment(Date.UTC(2011, 1, 2, 3, 4, 5, 6)), offset, expected; - m.utc(); - // utc - assert.equal(m.date(), 2, 'the day should be correct for utc'); - assert.equal(m.day(), 3, 'the date should be correct for utc'); - assert.equal(m.hours(), 3, 'the hours should be correct for utc'); - - // local - m.local(); - if (m.utcOffset() < -180) { - assert.equal(m.date(), 1, 'the date should be correct for local'); - assert.equal(m.day(), 2, 'the day should be correct for local'); - } else { - assert.equal(m.date(), 2, 'the date should be correct for local'); - assert.equal(m.day(), 3, 'the day should be correct for local'); - } - offset = Math.floor(m.utcOffset() / 60); - expected = (24 + 3 + offset) % 24; - assert.equal(m.hours(), expected, 'the hours (' + m.hours() + ') should be correct for local'); - assert.equal(moment().utc().utcOffset(), 0, 'timezone in utc should always be zero'); -}); - -test('creating with utc and no arguments', function (assert) { - var startOfTest = new Date().valueOf(), - momentDefaultUtcTime = moment.utc().valueOf(), - afterMomentCreationTime = new Date().valueOf(); - - assert.ok(startOfTest <= momentDefaultUtcTime, 'moment UTC default time should be now, not in the past'); - assert.ok(momentDefaultUtcTime <= afterMomentCreationTime, 'moment UTC default time should be now, not in the future'); -}); - -test('creating with utc and a date parameter array', function (assert) { - var m = moment.utc([2011, 1, 2, 3, 4, 5, 6]); - assert.equal(m.date(), 2, 'the day should be correct for utc array'); - assert.equal(m.hours(), 3, 'the hours should be correct for utc array'); - - m = moment.utc('2011-02-02 3:04:05', 'YYYY-MM-DD HH:mm:ss'); - assert.equal(m.date(), 2, 'the day should be correct for utc parsing format'); - assert.equal(m.hours(), 3, 'the hours should be correct for utc parsing format'); - - m = moment.utc('2011-02-02T03:04:05+00:00'); - assert.equal(m.date(), 2, 'the day should be correct for utc parsing iso'); - assert.equal(m.hours(), 3, 'the hours should be correct for utc parsing iso'); -}); - -test('creating with utc without timezone', function (assert) { - var m = moment.utc('2012-01-02T08:20:00'); - assert.equal(m.date(), 2, 'the day should be correct for utc parse without timezone'); - assert.equal(m.hours(), 8, 'the hours should be correct for utc parse without timezone'); - - m = moment.utc('2012-01-02T08:20:00+09:00'); - assert.equal(m.date(), 1, 'the day should be correct for utc parse with timezone'); - assert.equal(m.hours(), 23, 'the hours should be correct for utc parse with timezone'); -}); - -test('cloning with utc offset', function (assert) { - var m = moment.utc('2012-01-02T08:20:00'); - assert.equal(moment.utc(m)._isUTC, true, 'the local offset should be converted to UTC'); - assert.equal(moment.utc(m.clone().utc())._isUTC, true, 'the local offset should stay in UTC'); - - m.utcOffset(120); - assert.equal(moment.utc(m)._isUTC, true, 'the explicit utc offset should stay in UTC'); - assert.equal(moment.utc(m).utcOffset(), 0, 'the explicit utc offset should have an offset of 0'); -}); - -test('weekday with utc', function (assert) { - assert.equal( - moment('2013-09-15T00:00:00Z').utc().weekday(), // first minute of the day - moment('2013-09-15T23:59:00Z').utc().weekday(), // last minute of the day - 'a UTC-moment\'s .weekday() should not be affected by the local timezone' - ); -}); - -}))); - - -;(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' - && typeof require === 'function' ? factory(require('../../moment')) : - typeof define === 'function' && define.amd ? define(['../../moment'], factory) : - factory(global.moment) -}(this, (function (moment) { 'use strict'; - -function each(array, callback) { - var i; - for (i = 0; i < array.length; i++) { - callback(array[i], i, array); - } -} - -function objectKeys(obj) { - if (Object.keys) { - return Object.keys(obj); - } else { - // IE8 - var res = [], i; - for (i in obj) { - if (obj.hasOwnProperty(i)) { - res.push(i); - } - } - return res; - } -} - -// Pick the first defined of two or three arguments. - -function defineCommonLocaleTests(locale, options) { - test('lenient day of month ordinal parsing', function (assert) { - var i, ordinalStr, testMoment; - for (i = 1; i <= 31; ++i) { - ordinalStr = moment([2014, 0, i]).format('YYYY MM Do'); - testMoment = moment(ordinalStr, 'YYYY MM Do'); - assert.equal(testMoment.year(), 2014, - 'lenient day of month ordinal parsing ' + i + ' year check'); - assert.equal(testMoment.month(), 0, - 'lenient day of month ordinal parsing ' + i + ' month check'); - assert.equal(testMoment.date(), i, - 'lenient day of month ordinal parsing ' + i + ' date check'); - } - }); - - test('lenient day of month ordinal parsing of number', function (assert) { - var i, testMoment; - for (i = 1; i <= 31; ++i) { - testMoment = moment('2014 01 ' + i, 'YYYY MM Do'); - assert.equal(testMoment.year(), 2014, - 'lenient day of month ordinal parsing of number ' + i + ' year check'); - assert.equal(testMoment.month(), 0, - 'lenient day of month ordinal parsing of number ' + i + ' month check'); - assert.equal(testMoment.date(), i, - 'lenient day of month ordinal parsing of number ' + i + ' date check'); - } - }); - - test('strict day of month ordinal parsing', function (assert) { - var i, ordinalStr, testMoment; - for (i = 1; i <= 31; ++i) { - ordinalStr = moment([2014, 0, i]).format('YYYY MM Do'); - testMoment = moment(ordinalStr, 'YYYY MM Do', true); - assert.ok(testMoment.isValid(), 'strict day of month ordinal parsing ' + i); - } - }); - - test('meridiem invariant', function (assert) { - var h, m, t1, t2; - for (h = 0; h < 24; ++h) { - for (m = 0; m < 60; m += 15) { - t1 = moment.utc([2000, 0, 1, h, m]); - t2 = moment.utc(t1.format('A h:mm'), 'A h:mm'); - assert.equal(t2.format('HH:mm'), t1.format('HH:mm'), - 'meridiem at ' + t1.format('HH:mm')); - } - } - }); - - test('date format correctness', function (assert) { - var data, tokens; - data = moment.localeData()._longDateFormat; - tokens = objectKeys(data); - each(tokens, function (srchToken) { - // Check each format string to make sure it does not contain any - // tokens that need to be expanded. - each(tokens, function (baseToken) { - // strip escaped sequences - var format = data[baseToken].replace(/(\[[^\]]*\])/g, ''); - assert.equal(false, !!~format.indexOf(srchToken), - 'contains ' + srchToken + ' in ' + baseToken); - }); - }); - }); - - test('month parsing correctness', function (assert) { - var i, m; - - if (locale === 'tr') { - // I can't fix it :( - expect(0); - return; - } - function tester(format) { - var r; - r = moment(m.format(format), format); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format); - r = moment(m.format(format).toLocaleUpperCase(), format); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' upper'); - r = moment(m.format(format).toLocaleLowerCase(), format); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' lower'); - - r = moment(m.format(format), format, true); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' strict'); - r = moment(m.format(format).toLocaleUpperCase(), format, true); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' upper strict'); - r = moment(m.format(format).toLocaleLowerCase(), format, true); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' lower strict'); - } - - for (i = 0; i < 12; ++i) { - m = moment([2015, i, 15, 18]); - tester('MMM'); - tester('MMM.'); - tester('MMMM'); - tester('MMMM.'); - } - }); - - test('weekday parsing correctness', function (assert) { - var i, m; - - if (locale === 'tr' || locale === 'az' || locale === 'ro') { - // tr, az: There is a lower-case letter (ı), that converted to - // upper then lower changes to i - // ro: there is the letter ț which behaves weird under IE8 - expect(0); - return; - } - function tester(format) { - var r, baseMsg = 'weekday ' + m.weekday() + ' fmt ' + format + ' ' + m.toISOString(); - r = moment(m.format(format), format); - assert.equal(r.weekday(), m.weekday(), baseMsg); - r = moment(m.format(format).toLocaleUpperCase(), format); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' upper'); - r = moment(m.format(format).toLocaleLowerCase(), format); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' lower'); - - r = moment(m.format(format), format, true); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' strict'); - r = moment(m.format(format).toLocaleUpperCase(), format, true); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' upper strict'); - r = moment(m.format(format).toLocaleLowerCase(), format, true); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' lower strict'); - } - - for (i = 0; i < 7; ++i) { - m = moment.utc([2015, 0, i + 1, 18]); - tester('dd'); - tester('ddd'); - tester('dddd'); - } - }); - - test('valid localeData', function (assert) { - assert.equal(moment().localeData().months().length, 12, 'months should return 12 months'); - assert.equal(moment().localeData().monthsShort().length, 12, 'monthsShort should return 12 months'); - assert.equal(moment().localeData().weekdays().length, 7, 'weekdays should return 7 days'); - assert.equal(moment().localeData().weekdaysShort().length, 7, 'weekdaysShort should return 7 days'); - assert.equal(moment().localeData().weekdaysMin().length, 7, 'monthsShort should return 7 days'); - }); -} - -function setupDeprecationHandler(test, moment$$1, scope) { - test._expectedDeprecations = null; - test._observedDeprecations = null; - test._oldSupress = moment$$1.suppressDeprecationWarnings; - moment$$1.suppressDeprecationWarnings = true; - test.expectedDeprecations = function () { - test._expectedDeprecations = arguments; - test._observedDeprecations = []; - }; - moment$$1.deprecationHandler = function (name, msg) { - var deprecationId = matchedDeprecation(name, msg, test._expectedDeprecations); - if (deprecationId === -1) { - throw new Error('Unexpected deprecation thrown name=' + - name + ' msg=' + msg); - } - test._observedDeprecations[deprecationId] = 1; - }; -} - -function teardownDeprecationHandler(test, moment$$1, scope) { - moment$$1.suppressDeprecationWarnings = test._oldSupress; - - if (test._expectedDeprecations != null) { - var missedDeprecations = []; - each(test._expectedDeprecations, function (deprecationPattern, id) { - if (test._observedDeprecations[id] !== 1) { - missedDeprecations.push(deprecationPattern); - } - }); - if (missedDeprecations.length !== 0) { - throw new Error('Expected deprecation warnings did not happen: ' + - missedDeprecations.join(' ')); - } - } -} - -function matchedDeprecation(name, msg, deprecations) { - if (deprecations == null) { - return -1; - } - for (var i = 0; i < deprecations.length; ++i) { - if (name != null && name === deprecations[i]) { - return i; - } - if (msg != null && msg.substring(0, deprecations[i].length) === deprecations[i]) { - return i; - } - } - return -1; -} - -/*global QUnit:false*/ - -var test = QUnit.test; - -var expect = QUnit.expect; - -function module$1 (name, lifecycle) { - QUnit.module(name, { - setup : function () { - moment.locale('en'); - moment.createFromInputFallback = function (config) { - throw new Error('input not handled by moment: ' + config._i); - }; - setupDeprecationHandler(test, moment, 'core'); - if (lifecycle && lifecycle.setup) { - lifecycle.setup(); - } - }, - teardown : function () { - teardownDeprecationHandler(test, moment, 'core'); - if (lifecycle && lifecycle.teardown) { - lifecycle.teardown(); - } - } - }); -} - -module$1('utc offset'); - -test('setter / getter blackbox', function (assert) { - var m = moment([2010]); - - assert.equal(m.clone().utcOffset(0).utcOffset(), 0, 'utcOffset 0'); - - assert.equal(m.clone().utcOffset(1).utcOffset(), 60, 'utcOffset 1 is 60'); - assert.equal(m.clone().utcOffset(60).utcOffset(), 60, 'utcOffset 60'); - assert.equal(m.clone().utcOffset('+01:00').utcOffset(), 60, 'utcOffset +01:00 is 60'); - assert.equal(m.clone().utcOffset('+0100').utcOffset(), 60, 'utcOffset +0100 is 60'); - - assert.equal(m.clone().utcOffset(-1).utcOffset(), -60, 'utcOffset -1 is -60'); - assert.equal(m.clone().utcOffset(-60).utcOffset(), -60, 'utcOffset -60'); - assert.equal(m.clone().utcOffset('-01:00').utcOffset(), -60, 'utcOffset -01:00 is -60'); - assert.equal(m.clone().utcOffset('-0100').utcOffset(), -60, 'utcOffset -0100 is -60'); - - assert.equal(m.clone().utcOffset(1.5).utcOffset(), 90, 'utcOffset 1.5 is 90'); - assert.equal(m.clone().utcOffset(90).utcOffset(), 90, 'utcOffset 1.5 is 90'); - assert.equal(m.clone().utcOffset('+01:30').utcOffset(), 90, 'utcOffset +01:30 is 90'); - assert.equal(m.clone().utcOffset('+0130').utcOffset(), 90, 'utcOffset +0130 is 90'); - - assert.equal(m.clone().utcOffset(-1.5).utcOffset(), -90, 'utcOffset -1.5'); - assert.equal(m.clone().utcOffset(-90).utcOffset(), -90, 'utcOffset -90'); - assert.equal(m.clone().utcOffset('-01:30').utcOffset(), -90, 'utcOffset +01:30 is 90'); - assert.equal(m.clone().utcOffset('-0130').utcOffset(), -90, 'utcOffset +0130 is 90'); - assert.equal(m.clone().utcOffset('+00:10').utcOffset(), 10, 'utcOffset +00:10 is 10'); - assert.equal(m.clone().utcOffset('-00:10').utcOffset(), -10, 'utcOffset +00:10 is 10'); - assert.equal(m.clone().utcOffset('+0010').utcOffset(), 10, 'utcOffset +0010 is 10'); - assert.equal(m.clone().utcOffset('-0010').utcOffset(), -10, 'utcOffset +0010 is 10'); -}); - -test('utcOffset shorthand hours -> minutes', function (assert) { - var i; - for (i = -15; i <= 15; ++i) { - assert.equal(moment().utcOffset(i).utcOffset(), i * 60, - '' + i + ' -> ' + i * 60); - } - assert.equal(moment().utcOffset(-16).utcOffset(), -16, '-16 -> -16'); - assert.equal(moment().utcOffset(16).utcOffset(), 16, '16 -> 16'); -}); - -test('isLocal, isUtc, isUtcOffset', function (assert) { - assert.ok(moment().isLocal(), 'moment() creates objects in local time'); - assert.ok(!moment.utc().isLocal(), 'moment.utc creates objects NOT in local time'); - assert.ok(moment.utc().local().isLocal(), 'moment.fn.local() converts to local time'); - assert.ok(!moment().utcOffset(5).isLocal(), 'moment.fn.utcOffset(N) puts objects NOT in local time'); - assert.ok(moment().utcOffset(5).local().isLocal(), 'moment.fn.local() converts to local time'); - - assert.ok(moment.utc().isUtc(), 'moment.utc() creates objects in utc time'); - assert.ok(moment().utcOffset(0).isUtc(), 'utcOffset(0) is equivalent to utc mode'); - assert.ok(!moment().utcOffset(1).isUtc(), 'utcOffset(1) is NOT equivalent to utc mode'); - - assert.ok(!moment().isUtcOffset(), 'moment() creates objects NOT in utc-offset mode'); - assert.ok(moment.utc().isUtcOffset(), 'moment.utc() creates objects in utc-offset mode'); - assert.ok(moment().utcOffset(3).isUtcOffset(), 'utcOffset(N != 0) creates objects in utc-offset mode'); - assert.ok(moment().utcOffset(0).isUtcOffset(), 'utcOffset(0) creates objects in utc-offset mode'); -}); - -test('isUTC', function (assert) { - assert.ok(moment.utc().isUTC(), 'moment.utc() creates objects in utc time'); - assert.ok(moment().utcOffset(0).isUTC(), 'utcOffset(0) is equivalent to utc mode'); - assert.ok(!moment().utcOffset(1).isUTC(), 'utcOffset(1) is NOT equivalent to utc mode'); -}); - -test('change hours when changing the utc offset', function (assert) { - var m = moment.utc([2000, 0, 1, 6]); - assert.equal(m.hour(), 6, 'UTC 6AM should be 6AM at +0000'); - - // sanity check - m.utcOffset(0); - assert.equal(m.hour(), 6, 'UTC 6AM should be 6AM at +0000'); - - m.utcOffset(-60); - assert.equal(m.hour(), 5, 'UTC 6AM should be 5AM at -0100'); - - m.utcOffset(60); - assert.equal(m.hour(), 7, 'UTC 6AM should be 7AM at +0100'); -}); - -test('change minutes when changing the utc offset', function (assert) { - var m = moment.utc([2000, 0, 1, 6, 31]); - - m.utcOffset(0); - assert.equal(m.format('HH:mm'), '06:31', 'UTC 6:31AM should be 6:31AM at +0000'); - - m.utcOffset(-30); - assert.equal(m.format('HH:mm'), '06:01', 'UTC 6:31AM should be 6:01AM at -0030'); - - m.utcOffset(30); - assert.equal(m.format('HH:mm'), '07:01', 'UTC 6:31AM should be 7:01AM at +0030'); - - m.utcOffset(-1380); - assert.equal(m.format('HH:mm'), '07:31', 'UTC 6:31AM should be 7:31AM at +1380'); -}); - -test('distance from the unix epoch', function (assert) { - var zoneA = moment(), - zoneB = moment(zoneA), - zoneC = moment(zoneA), - zoneD = moment(zoneA), - zoneE = moment(zoneA); - - zoneB.utc(); - assert.equal(+zoneA, +zoneB, 'moment should equal moment.utc'); - - zoneC.utcOffset(60); - assert.equal(+zoneA, +zoneC, 'moment should equal moment.utcOffset(60)'); - - zoneD.utcOffset(-480); - assert.equal(+zoneA, +zoneD, - 'moment should equal moment.utcOffset(-480)'); - - zoneE.utcOffset(-1000); - assert.equal(+zoneA, +zoneE, - 'moment should equal moment.utcOffset(-1000)'); -}); - -test('update offset after changing any values', function (assert) { - var oldOffset = moment.updateOffset, - m = moment.utc([2000, 6, 1]); - - moment.updateOffset = function (mom, keepTime) { - if (mom.__doChange) { - if (+mom > 962409600000) { - mom.utcOffset(-120, keepTime); - } else { - mom.utcOffset(-60, keepTime); - } - } - }; - - assert.equal(m.format('ZZ'), '+0000', 'should be at +0000'); - assert.equal(m.format('HH:mm'), '00:00', 'should start 12AM at +0000 timezone'); - - m.__doChange = true; - m.add(1, 'h'); - - assert.equal(m.format('ZZ'), '-0200', 'should be at -0200'); - assert.equal(m.format('HH:mm'), '23:00', '1AM at +0000 should be 11PM at -0200 timezone'); - - m.subtract(1, 'h'); - - assert.equal(m.format('ZZ'), '-0100', 'should be at -0100'); - assert.equal(m.format('HH:mm'), '23:00', '12AM at +0000 should be 11PM at -0100 timezone'); - - moment.updateOffset = oldOffset; -}); - -////////////////// -test('getters and setters', function (assert) { - var a = moment([2011, 5, 20]); - - assert.equal(a.clone().utcOffset(-120).year(2012).year(), 2012, 'should get and set year correctly'); - assert.equal(a.clone().utcOffset(-120).month(1).month(), 1, 'should get and set month correctly'); - assert.equal(a.clone().utcOffset(-120).date(2).date(), 2, 'should get and set date correctly'); - assert.equal(a.clone().utcOffset(-120).day(1).day(), 1, 'should get and set day correctly'); - assert.equal(a.clone().utcOffset(-120).hour(1).hour(), 1, 'should get and set hour correctly'); - assert.equal(a.clone().utcOffset(-120).minute(1).minute(), 1, 'should get and set minute correctly'); -}); - -test('getters', function (assert) { - var a = moment.utc([2012, 0, 1, 0, 0, 0]); - - assert.equal(a.clone().utcOffset(-120).year(), 2011, 'should get year correctly'); - assert.equal(a.clone().utcOffset(-120).month(), 11, 'should get month correctly'); - assert.equal(a.clone().utcOffset(-120).date(), 31, 'should get date correctly'); - assert.equal(a.clone().utcOffset(-120).hour(), 22, 'should get hour correctly'); - assert.equal(a.clone().utcOffset(-120).minute(), 0, 'should get minute correctly'); - - assert.equal(a.clone().utcOffset(120).year(), 2012, 'should get year correctly'); - assert.equal(a.clone().utcOffset(120).month(), 0, 'should get month correctly'); - assert.equal(a.clone().utcOffset(120).date(), 1, 'should get date correctly'); - assert.equal(a.clone().utcOffset(120).hour(), 2, 'should get hour correctly'); - assert.equal(a.clone().utcOffset(120).minute(), 0, 'should get minute correctly'); - - assert.equal(a.clone().utcOffset(90).year(), 2012, 'should get year correctly'); - assert.equal(a.clone().utcOffset(90).month(), 0, 'should get month correctly'); - assert.equal(a.clone().utcOffset(90).date(), 1, 'should get date correctly'); - assert.equal(a.clone().utcOffset(90).hour(), 1, 'should get hour correctly'); - assert.equal(a.clone().utcOffset(90).minute(), 30, 'should get minute correctly'); -}); - -test('from', function (assert) { - var zoneA = moment(), - zoneB = moment(zoneA).utcOffset(-720), - zoneC = moment(zoneA).utcOffset(-360), - zoneD = moment(zoneA).utcOffset(690), - other = moment(zoneA).add(35, 'm'); - - assert.equal(zoneA.from(other), zoneB.from(other), 'moment#from should be the same in all zones'); - assert.equal(zoneA.from(other), zoneC.from(other), 'moment#from should be the same in all zones'); - assert.equal(zoneA.from(other), zoneD.from(other), 'moment#from should be the same in all zones'); -}); - -test('diff', function (assert) { - var zoneA = moment(), - zoneB = moment(zoneA).utcOffset(-720), - zoneC = moment(zoneA).utcOffset(-360), - zoneD = moment(zoneA).utcOffset(690), - other = moment(zoneA).add(35, 'm'); - - assert.equal(zoneA.diff(other), zoneB.diff(other), 'moment#diff should be the same in all zones'); - assert.equal(zoneA.diff(other), zoneC.diff(other), 'moment#diff should be the same in all zones'); - assert.equal(zoneA.diff(other), zoneD.diff(other), 'moment#diff should be the same in all zones'); - - assert.equal(zoneA.diff(other, 'minute', true), zoneB.diff(other, 'minute', true), 'moment#diff should be the same in all zones'); - assert.equal(zoneA.diff(other, 'minute', true), zoneC.diff(other, 'minute', true), 'moment#diff should be the same in all zones'); - assert.equal(zoneA.diff(other, 'minute', true), zoneD.diff(other, 'minute', true), 'moment#diff should be the same in all zones'); - - assert.equal(zoneA.diff(other, 'hour', true), zoneB.diff(other, 'hour', true), 'moment#diff should be the same in all zones'); - assert.equal(zoneA.diff(other, 'hour', true), zoneC.diff(other, 'hour', true), 'moment#diff should be the same in all zones'); - assert.equal(zoneA.diff(other, 'hour', true), zoneD.diff(other, 'hour', true), 'moment#diff should be the same in all zones'); -}); - -test('unix offset and timestamp', function (assert) { - var zoneA = moment(), - zoneB = moment(zoneA).utcOffset(-720), - zoneC = moment(zoneA).utcOffset(-360), - zoneD = moment(zoneA).utcOffset(690); - - assert.equal(zoneA.unix(), zoneB.unix(), 'moment#unix should be the same in all zones'); - assert.equal(zoneA.unix(), zoneC.unix(), 'moment#unix should be the same in all zones'); - assert.equal(zoneA.unix(), zoneD.unix(), 'moment#unix should be the same in all zones'); - - assert.equal(+zoneA, +zoneB, 'moment#valueOf should be the same in all zones'); - assert.equal(+zoneA, +zoneC, 'moment#valueOf should be the same in all zones'); - assert.equal(+zoneA, +zoneD, 'moment#valueOf should be the same in all zones'); -}); - -test('cloning', function (assert) { - assert.equal(moment().utcOffset(-120).clone().utcOffset(), -120, - 'explicit cloning should retain the offset'); - assert.equal(moment().utcOffset(120).clone().utcOffset(), 120, - 'explicit cloning should retain the offset'); - assert.equal(moment(moment().utcOffset(-120)).utcOffset(), -120, - 'implicit cloning should retain the offset'); - assert.equal(moment(moment().utcOffset(120)).utcOffset(), 120, - 'implicit cloning should retain the offset'); -}); - -test('start of / end of', function (assert) { - var a = moment.utc([2010, 1, 2, 0, 0, 0]).utcOffset(-450); - - assert.equal(a.clone().startOf('day').hour(), 0, - 'start of day should work on moments with utc offset'); - assert.equal(a.clone().startOf('day').minute(), 0, - 'start of day should work on moments with utc offset'); - assert.equal(a.clone().startOf('hour').minute(), 0, - 'start of hour should work on moments with utc offset'); - - assert.equal(a.clone().endOf('day').hour(), 23, - 'end of day should work on moments with utc offset'); - assert.equal(a.clone().endOf('day').minute(), 59, - 'end of day should work on moments with utc offset'); - assert.equal(a.clone().endOf('hour').minute(), 59, - 'end of hour should work on moments with utc offset'); -}); - -test('reset offset with moment#utc', function (assert) { - var a = moment.utc([2012]).utcOffset(-480); - - assert.equal(a.clone().hour(), 16, 'different utc offset should have different hour'); - assert.equal(a.clone().utc().hour(), 0, 'calling moment#utc should reset the offset'); -}); - -test('reset offset with moment#local', function (assert) { - var a = moment([2012]).utcOffset(-480); - - assert.equal(a.clone().local().hour(), 0, 'calling moment#local should reset the offset'); -}); - -test('toDate', function (assert) { - var zoneA = new Date(), - zoneB = moment(zoneA).utcOffset(-720).toDate(), - zoneC = moment(zoneA).utcOffset(-360).toDate(), - zoneD = moment(zoneA).utcOffset(690).toDate(); - - assert.equal(+zoneA, +zoneB, 'moment#toDate should output a date with the right unix timestamp'); - assert.equal(+zoneA, +zoneC, 'moment#toDate should output a date with the right unix timestamp'); - assert.equal(+zoneA, +zoneD, 'moment#toDate should output a date with the right unix timestamp'); -}); - -test('same / before / after', function (assert) { - var zoneA = moment().utc(), - zoneB = moment(zoneA).utcOffset(-120), - zoneC = moment(zoneA).utcOffset(120); - - assert.ok(zoneA.isSame(zoneB), 'two moments with different offsets should be the same'); - assert.ok(zoneA.isSame(zoneC), 'two moments with different offsets should be the same'); - - assert.ok(zoneA.isSame(zoneB, 'hour'), 'two moments with different offsets should be the same hour'); - assert.ok(zoneA.isSame(zoneC, 'hour'), 'two moments with different offsets should be the same hour'); - - zoneA.add(1, 'hour'); - - assert.ok(zoneA.isAfter(zoneB), 'isAfter should work with two moments with different offsets'); - assert.ok(zoneA.isAfter(zoneC), 'isAfter should work with two moments with different offsets'); - - assert.ok(zoneA.isAfter(zoneB, 'hour'), 'isAfter:hour should work with two moments with different offsets'); - assert.ok(zoneA.isAfter(zoneC, 'hour'), 'isAfter:hour should work with two moments with different offsets'); - - zoneA.subtract(2, 'hour'); - - assert.ok(zoneA.isBefore(zoneB), 'isBefore should work with two moments with different offsets'); - assert.ok(zoneA.isBefore(zoneC), 'isBefore should work with two moments with different offsets'); - - assert.ok(zoneA.isBefore(zoneB, 'hour'), 'isBefore:hour should work with two moments with different offsets'); - assert.ok(zoneA.isBefore(zoneC, 'hour'), 'isBefore:hour should work with two moments with different offsets'); -}); - -test('add / subtract over dst', function (assert) { - var oldOffset = moment.updateOffset, - m = moment.utc([2000, 2, 31, 3]); - - moment.updateOffset = function (mom, keepTime) { - if (mom.clone().utc().month() > 2) { - mom.utcOffset(60, keepTime); - } else { - mom.utcOffset(0, keepTime); - } - }; - - assert.equal(m.hour(), 3, 'should start at 00:00'); - - m.add(24, 'hour'); - - assert.equal(m.hour(), 4, 'adding 24 hours should disregard dst'); - - m.subtract(24, 'hour'); - - assert.equal(m.hour(), 3, 'subtracting 24 hours should disregard dst'); - - m.add(1, 'day'); - - assert.equal(m.hour(), 3, 'adding 1 day should have the same hour'); - - m.subtract(1, 'day'); - - assert.equal(m.hour(), 3, 'subtracting 1 day should have the same hour'); - - m.add(1, 'month'); - - assert.equal(m.hour(), 3, 'adding 1 month should have the same hour'); - - m.subtract(1, 'month'); - - assert.equal(m.hour(), 3, 'subtracting 1 month should have the same hour'); - - moment.updateOffset = oldOffset; -}); - -test('isDST', function (assert) { - var oldOffset = moment.updateOffset; - - moment.updateOffset = function (mom, keepTime) { - if (mom.month() > 2 && mom.month() < 9) { - mom.utcOffset(60, keepTime); - } else { - mom.utcOffset(0, keepTime); - } - }; - - assert.ok(!moment().month(0).isDST(), 'Jan should not be summer dst'); - assert.ok(moment().month(6).isDST(), 'Jul should be summer dst'); - assert.ok(!moment().month(11).isDST(), 'Dec should not be summer dst'); - - moment.updateOffset = function (mom) { - if (mom.month() > 2 && mom.month() < 9) { - mom.utcOffset(0); - } else { - mom.utcOffset(60); - } - }; - - assert.ok(moment().month(0).isDST(), 'Jan should be winter dst'); - assert.ok(!moment().month(6).isDST(), 'Jul should not be winter dst'); - assert.ok(moment().month(11).isDST(), 'Dec should be winter dst'); - - moment.updateOffset = oldOffset; -}); - -test('zone names', function (assert) { - assert.equal(moment().zoneAbbr(), '', 'Local zone abbr should be empty'); - assert.equal(moment().format('z'), '', 'Local zone formatted abbr should be empty'); - assert.equal(moment().zoneName(), '', 'Local zone name should be empty'); - assert.equal(moment().format('zz'), '', 'Local zone formatted name should be empty'); - - assert.equal(moment.utc().zoneAbbr(), 'UTC', 'UTC zone abbr should be UTC'); - assert.equal(moment.utc().format('z'), 'UTC', 'UTC zone formatted abbr should be UTC'); - assert.equal(moment.utc().zoneName(), 'Coordinated Universal Time', 'UTC zone abbr should be Coordinated Universal Time'); - assert.equal(moment.utc().format('zz'), 'Coordinated Universal Time', 'UTC zone formatted abbr should be Coordinated Universal Time'); -}); - -test('hours alignment with UTC', function (assert) { - assert.equal(moment().utcOffset(-120).hasAlignedHourOffset(), true); - assert.equal(moment().utcOffset(180).hasAlignedHourOffset(), true); - assert.equal(moment().utcOffset(-90).hasAlignedHourOffset(), false); - assert.equal(moment().utcOffset(90).hasAlignedHourOffset(), false); -}); - -test('hours alignment with other zone', function (assert) { - var m = moment().utcOffset(-120); - - assert.equal(m.hasAlignedHourOffset(moment().utcOffset(-180)), true); - assert.equal(m.hasAlignedHourOffset(moment().utcOffset(180)), true); - assert.equal(m.hasAlignedHourOffset(moment().utcOffset(-90)), false); - assert.equal(m.hasAlignedHourOffset(moment().utcOffset(90)), false); - - m = moment().utcOffset(-90); - - assert.equal(m.hasAlignedHourOffset(moment().utcOffset(-180)), false); - assert.equal(m.hasAlignedHourOffset(moment().utcOffset(180)), false); - assert.equal(m.hasAlignedHourOffset(moment().utcOffset(-30)), true); - assert.equal(m.hasAlignedHourOffset(moment().utcOffset(30)), true); - - m = moment().utcOffset(60); - - assert.equal(m.hasAlignedHourOffset(moment().utcOffset(-180)), true); - assert.equal(m.hasAlignedHourOffset(moment().utcOffset(180)), true); - assert.equal(m.hasAlignedHourOffset(moment().utcOffset(-90)), false); - assert.equal(m.hasAlignedHourOffset(moment().utcOffset(90)), false); - - m = moment().utcOffset(-25); - - assert.equal(m.hasAlignedHourOffset(moment().utcOffset(35)), true); - assert.equal(m.hasAlignedHourOffset(moment().utcOffset(-85)), true); - - assert.equal(m.hasAlignedHourOffset(moment().utcOffset(-35)), false); - assert.equal(m.hasAlignedHourOffset(moment().utcOffset(85)), false); -}); - -test('parse zone', function (assert) { - var m = moment('2013-01-01T00:00:00-13:00').parseZone(); - assert.equal(m.utcOffset(), -13 * 60); - assert.equal(m.hours(), 0); -}); - -test('parse UTC zone', function (assert) { - var m = moment('2013-01-01T05:00:00+00:00').parseZone(); - assert.equal(m.utcOffset(), 0); - assert.equal(m.hours(), 5); -}); - -test('parse zone static', function (assert) { - var m = moment.parseZone('2013-01-01T00:00:00-13:00'); - assert.equal(m.utcOffset(), -13 * 60); - assert.equal(m.hours(), 0); -}); - -test('parse zone with more arguments', function (assert) { - var m; - m = moment.parseZone('2013 01 01 05 -13:00', 'YYYY MM DD HH ZZ'); - assert.equal(m.format(), '2013-01-01T05:00:00-13:00', 'accept input and format'); - m = moment.parseZone('2013-01-01-13:00', 'YYYY MM DD ZZ', true); - assert.equal(m.isValid(), false, 'accept input, format and strict flag'); - m = moment.parseZone('2013-01-01-13:00', ['DD MM YYYY ZZ', 'YYYY MM DD ZZ']); - assert.equal(m.format(), '2013-01-01T00:00:00-13:00', 'accept input and array of formats'); -}); - -test('parse zone with a timezone from the format string', function (assert) { - var m = moment('11-12-2013 -0400 +1100', 'DD-MM-YYYY ZZ #####').parseZone(); - - assert.equal(m.utcOffset(), -4 * 60); -}); - -test('parse zone without a timezone included in the format string', function (assert) { - var m = moment('11-12-2013 -0400 +1100', 'DD-MM-YYYY').parseZone(); - - assert.equal(m.utcOffset(), 11 * 60); -}); - -test('timezone format', function (assert) { - assert.equal(moment().utcOffset(60).format('ZZ'), '+0100', '-60 -> +0100'); - assert.equal(moment().utcOffset(90).format('ZZ'), '+0130', '-90 -> +0130'); - assert.equal(moment().utcOffset(120).format('ZZ'), '+0200', '-120 -> +0200'); - - assert.equal(moment().utcOffset(-60).format('ZZ'), '-0100', '+60 -> -0100'); - assert.equal(moment().utcOffset(-90).format('ZZ'), '-0130', '+90 -> -0130'); - assert.equal(moment().utcOffset(-120).format('ZZ'), '-0200', '+120 -> -0200'); -}); - -}))); - - -;(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' - && typeof require === 'function' ? factory(require('../../moment')) : - typeof define === 'function' && define.amd ? define(['../../moment'], factory) : - factory(global.moment) -}(this, (function (moment) { 'use strict'; - -function each(array, callback) { - var i; - for (i = 0; i < array.length; i++) { - callback(array[i], i, array); - } -} - -function objectKeys(obj) { - if (Object.keys) { - return Object.keys(obj); - } else { - // IE8 - var res = [], i; - for (i in obj) { - if (obj.hasOwnProperty(i)) { - res.push(i); - } - } - return res; - } -} - -// Pick the first defined of two or three arguments. - -function defineCommonLocaleTests(locale, options) { - test('lenient day of month ordinal parsing', function (assert) { - var i, ordinalStr, testMoment; - for (i = 1; i <= 31; ++i) { - ordinalStr = moment([2014, 0, i]).format('YYYY MM Do'); - testMoment = moment(ordinalStr, 'YYYY MM Do'); - assert.equal(testMoment.year(), 2014, - 'lenient day of month ordinal parsing ' + i + ' year check'); - assert.equal(testMoment.month(), 0, - 'lenient day of month ordinal parsing ' + i + ' month check'); - assert.equal(testMoment.date(), i, - 'lenient day of month ordinal parsing ' + i + ' date check'); - } - }); - - test('lenient day of month ordinal parsing of number', function (assert) { - var i, testMoment; - for (i = 1; i <= 31; ++i) { - testMoment = moment('2014 01 ' + i, 'YYYY MM Do'); - assert.equal(testMoment.year(), 2014, - 'lenient day of month ordinal parsing of number ' + i + ' year check'); - assert.equal(testMoment.month(), 0, - 'lenient day of month ordinal parsing of number ' + i + ' month check'); - assert.equal(testMoment.date(), i, - 'lenient day of month ordinal parsing of number ' + i + ' date check'); - } - }); - - test('strict day of month ordinal parsing', function (assert) { - var i, ordinalStr, testMoment; - for (i = 1; i <= 31; ++i) { - ordinalStr = moment([2014, 0, i]).format('YYYY MM Do'); - testMoment = moment(ordinalStr, 'YYYY MM Do', true); - assert.ok(testMoment.isValid(), 'strict day of month ordinal parsing ' + i); - } - }); - - test('meridiem invariant', function (assert) { - var h, m, t1, t2; - for (h = 0; h < 24; ++h) { - for (m = 0; m < 60; m += 15) { - t1 = moment.utc([2000, 0, 1, h, m]); - t2 = moment.utc(t1.format('A h:mm'), 'A h:mm'); - assert.equal(t2.format('HH:mm'), t1.format('HH:mm'), - 'meridiem at ' + t1.format('HH:mm')); - } - } - }); - - test('date format correctness', function (assert) { - var data, tokens; - data = moment.localeData()._longDateFormat; - tokens = objectKeys(data); - each(tokens, function (srchToken) { - // Check each format string to make sure it does not contain any - // tokens that need to be expanded. - each(tokens, function (baseToken) { - // strip escaped sequences - var format = data[baseToken].replace(/(\[[^\]]*\])/g, ''); - assert.equal(false, !!~format.indexOf(srchToken), - 'contains ' + srchToken + ' in ' + baseToken); - }); - }); - }); - - test('month parsing correctness', function (assert) { - var i, m; - - if (locale === 'tr') { - // I can't fix it :( - expect(0); - return; - } - function tester(format) { - var r; - r = moment(m.format(format), format); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format); - r = moment(m.format(format).toLocaleUpperCase(), format); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' upper'); - r = moment(m.format(format).toLocaleLowerCase(), format); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' lower'); - - r = moment(m.format(format), format, true); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' strict'); - r = moment(m.format(format).toLocaleUpperCase(), format, true); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' upper strict'); - r = moment(m.format(format).toLocaleLowerCase(), format, true); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' lower strict'); - } - - for (i = 0; i < 12; ++i) { - m = moment([2015, i, 15, 18]); - tester('MMM'); - tester('MMM.'); - tester('MMMM'); - tester('MMMM.'); - } - }); - - test('weekday parsing correctness', function (assert) { - var i, m; - - if (locale === 'tr' || locale === 'az' || locale === 'ro') { - // tr, az: There is a lower-case letter (ı), that converted to - // upper then lower changes to i - // ro: there is the letter ț which behaves weird under IE8 - expect(0); - return; - } - function tester(format) { - var r, baseMsg = 'weekday ' + m.weekday() + ' fmt ' + format + ' ' + m.toISOString(); - r = moment(m.format(format), format); - assert.equal(r.weekday(), m.weekday(), baseMsg); - r = moment(m.format(format).toLocaleUpperCase(), format); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' upper'); - r = moment(m.format(format).toLocaleLowerCase(), format); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' lower'); - - r = moment(m.format(format), format, true); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' strict'); - r = moment(m.format(format).toLocaleUpperCase(), format, true); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' upper strict'); - r = moment(m.format(format).toLocaleLowerCase(), format, true); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' lower strict'); - } - - for (i = 0; i < 7; ++i) { - m = moment.utc([2015, 0, i + 1, 18]); - tester('dd'); - tester('ddd'); - tester('dddd'); - } - }); - - test('valid localeData', function (assert) { - assert.equal(moment().localeData().months().length, 12, 'months should return 12 months'); - assert.equal(moment().localeData().monthsShort().length, 12, 'monthsShort should return 12 months'); - assert.equal(moment().localeData().weekdays().length, 7, 'weekdays should return 7 days'); - assert.equal(moment().localeData().weekdaysShort().length, 7, 'weekdaysShort should return 7 days'); - assert.equal(moment().localeData().weekdaysMin().length, 7, 'monthsShort should return 7 days'); - }); -} - -function setupDeprecationHandler(test, moment$$1, scope) { - test._expectedDeprecations = null; - test._observedDeprecations = null; - test._oldSupress = moment$$1.suppressDeprecationWarnings; - moment$$1.suppressDeprecationWarnings = true; - test.expectedDeprecations = function () { - test._expectedDeprecations = arguments; - test._observedDeprecations = []; - }; - moment$$1.deprecationHandler = function (name, msg) { - var deprecationId = matchedDeprecation(name, msg, test._expectedDeprecations); - if (deprecationId === -1) { - throw new Error('Unexpected deprecation thrown name=' + - name + ' msg=' + msg); - } - test._observedDeprecations[deprecationId] = 1; - }; -} - -function teardownDeprecationHandler(test, moment$$1, scope) { - moment$$1.suppressDeprecationWarnings = test._oldSupress; - - if (test._expectedDeprecations != null) { - var missedDeprecations = []; - each(test._expectedDeprecations, function (deprecationPattern, id) { - if (test._observedDeprecations[id] !== 1) { - missedDeprecations.push(deprecationPattern); - } - }); - if (missedDeprecations.length !== 0) { - throw new Error('Expected deprecation warnings did not happen: ' + - missedDeprecations.join(' ')); - } - } -} - -function matchedDeprecation(name, msg, deprecations) { - if (deprecations == null) { - return -1; - } - for (var i = 0; i < deprecations.length; ++i) { - if (name != null && name === deprecations[i]) { - return i; - } - if (msg != null && msg.substring(0, deprecations[i].length) === deprecations[i]) { - return i; - } - } - return -1; -} - -/*global QUnit:false*/ - -var test = QUnit.test; - -var expect = QUnit.expect; - -function module$1 (name, lifecycle) { - QUnit.module(name, { - setup : function () { - moment.locale('en'); - moment.createFromInputFallback = function (config) { - throw new Error('input not handled by moment: ' + config._i); - }; - setupDeprecationHandler(test, moment, 'core'); - if (lifecycle && lifecycle.setup) { - lifecycle.setup(); - } - }, - teardown : function () { - teardownDeprecationHandler(test, moment, 'core'); - if (lifecycle && lifecycle.teardown) { - lifecycle.teardown(); - } - } - }); -} - -module$1('week year'); - -test('iso week year', function (assert) { - // Some examples taken from https://en.wikipedia.org/wiki/ISO_week - assert.equal(moment([2005, 0, 1]).isoWeekYear(), 2004); - assert.equal(moment([2005, 0, 2]).isoWeekYear(), 2004); - assert.equal(moment([2005, 0, 3]).isoWeekYear(), 2005); - assert.equal(moment([2005, 11, 31]).isoWeekYear(), 2005); - assert.equal(moment([2006, 0, 1]).isoWeekYear(), 2005); - assert.equal(moment([2006, 0, 2]).isoWeekYear(), 2006); - assert.equal(moment([2007, 0, 1]).isoWeekYear(), 2007); - assert.equal(moment([2007, 11, 30]).isoWeekYear(), 2007); - assert.equal(moment([2007, 11, 31]).isoWeekYear(), 2008); - assert.equal(moment([2008, 0, 1]).isoWeekYear(), 2008); - assert.equal(moment([2008, 11, 28]).isoWeekYear(), 2008); - assert.equal(moment([2008, 11, 29]).isoWeekYear(), 2009); - assert.equal(moment([2008, 11, 30]).isoWeekYear(), 2009); - assert.equal(moment([2008, 11, 31]).isoWeekYear(), 2009); - assert.equal(moment([2009, 0, 1]).isoWeekYear(), 2009); - assert.equal(moment([2010, 0, 1]).isoWeekYear(), 2009); - assert.equal(moment([2010, 0, 2]).isoWeekYear(), 2009); - assert.equal(moment([2010, 0, 3]).isoWeekYear(), 2009); - assert.equal(moment([2010, 0, 4]).isoWeekYear(), 2010); -}); - -test('week year', function (assert) { - // Some examples taken from https://en.wikipedia.org/wiki/ISO_week - moment.locale('dow: 1,doy: 4', {week: {dow: 1, doy: 4}}); // like iso - assert.equal(moment([2005, 0, 1]).weekYear(), 2004); - assert.equal(moment([2005, 0, 2]).weekYear(), 2004); - assert.equal(moment([2005, 0, 3]).weekYear(), 2005); - assert.equal(moment([2005, 11, 31]).weekYear(), 2005); - assert.equal(moment([2006, 0, 1]).weekYear(), 2005); - assert.equal(moment([2006, 0, 2]).weekYear(), 2006); - assert.equal(moment([2007, 0, 1]).weekYear(), 2007); - assert.equal(moment([2007, 11, 30]).weekYear(), 2007); - assert.equal(moment([2007, 11, 31]).weekYear(), 2008); - assert.equal(moment([2008, 0, 1]).weekYear(), 2008); - assert.equal(moment([2008, 11, 28]).weekYear(), 2008); - assert.equal(moment([2008, 11, 29]).weekYear(), 2009); - assert.equal(moment([2008, 11, 30]).weekYear(), 2009); - assert.equal(moment([2008, 11, 31]).weekYear(), 2009); - assert.equal(moment([2009, 0, 1]).weekYear(), 2009); - assert.equal(moment([2010, 0, 1]).weekYear(), 2009); - assert.equal(moment([2010, 0, 2]).weekYear(), 2009); - assert.equal(moment([2010, 0, 3]).weekYear(), 2009); - assert.equal(moment([2010, 0, 4]).weekYear(), 2010); - - moment.locale('dow: 1,doy: 7', {week: {dow: 1, doy: 7}}); - assert.equal(moment([2004, 11, 26]).weekYear(), 2004); - assert.equal(moment([2004, 11, 27]).weekYear(), 2005); - assert.equal(moment([2005, 11, 25]).weekYear(), 2005); - assert.equal(moment([2005, 11, 26]).weekYear(), 2006); - assert.equal(moment([2006, 11, 31]).weekYear(), 2006); - assert.equal(moment([2007, 0, 1]).weekYear(), 2007); - assert.equal(moment([2007, 11, 30]).weekYear(), 2007); - assert.equal(moment([2007, 11, 31]).weekYear(), 2008); - assert.equal(moment([2008, 11, 28]).weekYear(), 2008); - assert.equal(moment([2008, 11, 29]).weekYear(), 2009); - assert.equal(moment([2009, 11, 27]).weekYear(), 2009); - assert.equal(moment([2009, 11, 28]).weekYear(), 2010); -}); - -// Verifies that the week number, week day computation is correct for all dow, doy combinations -test('week year roundtrip', function (assert) { - var dow, doy, wd, m, localeName; - for (dow = 0; dow < 7; ++dow) { - for (doy = dow; doy < dow + 7; ++doy) { - for (wd = 0; wd < 7; ++wd) { - localeName = 'dow: ' + dow + ', doy: ' + doy; - moment.locale(localeName, {week: {dow: dow, doy: doy}}); - // We use the 10th week as the 1st one can spill to the previous year - m = moment('2015 10 ' + wd, 'gggg w d', true); - assert.equal(m.format('gggg w d'), '2015 10 ' + wd, 'dow: ' + dow + ' doy: ' + doy + ' wd: ' + wd); - m = moment('2015 10 ' + wd, 'gggg w e', true); - assert.equal(m.format('gggg w e'), '2015 10 ' + wd, 'dow: ' + dow + ' doy: ' + doy + ' wd: ' + wd); - moment.defineLocale(localeName, null); - } - } - } -}); - -test('week numbers 2012/2013', function (assert) { - moment.locale('dow: 6, doy: 12', {week: {dow: 6, doy: 12}}); - assert.equal(52, moment('2012-12-28', 'YYYY-MM-DD').week(), '2012-12-28 is week 52'); // 51 -- should be 52? - assert.equal(1, moment('2012-12-29', 'YYYY-MM-DD').week(), '2012-12-29 is week 1'); // 52 -- should be 1 - assert.equal(1, moment('2013-01-01', 'YYYY-MM-DD').week(), '2013-01-01 is week 1'); // 52 -- should be 1 - assert.equal(2, moment('2013-01-08', 'YYYY-MM-DD').week(), '2013-01-08 is week 2'); // 53 -- should be 2 - assert.equal(2, moment('2013-01-11', 'YYYY-MM-DD').week(), '2013-01-11 is week 2'); // 53 -- should be 2 - assert.equal(3, moment('2013-01-12', 'YYYY-MM-DD').week(), '2013-01-12 is week 3'); // 1 -- should be 3 - assert.equal(52, moment('2012-01-01', 'YYYY-MM-DD').weeksInYear(), 'weeks in 2012 are 52'); // 52 - moment.defineLocale('dow: 6, doy: 12', null); -}); - -test('weeks numbers dow:1 doy:4', function (assert) { - moment.locale('dow: 1, doy: 4', {week: {dow: 1, doy: 4}}); - assert.equal(moment([2012, 0, 1]).week(), 52, 'Jan 1 2012 should be week 52'); - assert.equal(moment([2012, 0, 2]).week(), 1, 'Jan 2 2012 should be week 1'); - assert.equal(moment([2012, 0, 8]).week(), 1, 'Jan 8 2012 should be week 1'); - assert.equal(moment([2012, 0, 9]).week(), 2, 'Jan 9 2012 should be week 2'); - assert.equal(moment([2012, 0, 15]).week(), 2, 'Jan 15 2012 should be week 2'); - assert.equal(moment([2007, 0, 1]).week(), 1, 'Jan 1 2007 should be week 1'); - assert.equal(moment([2007, 0, 7]).week(), 1, 'Jan 7 2007 should be week 1'); - assert.equal(moment([2007, 0, 8]).week(), 2, 'Jan 8 2007 should be week 2'); - assert.equal(moment([2007, 0, 14]).week(), 2, 'Jan 14 2007 should be week 2'); - assert.equal(moment([2007, 0, 15]).week(), 3, 'Jan 15 2007 should be week 3'); - assert.equal(moment([2007, 11, 31]).week(), 1, 'Dec 31 2007 should be week 1'); - assert.equal(moment([2008, 0, 1]).week(), 1, 'Jan 1 2008 should be week 1'); - assert.equal(moment([2008, 0, 6]).week(), 1, 'Jan 6 2008 should be week 1'); - assert.equal(moment([2008, 0, 7]).week(), 2, 'Jan 7 2008 should be week 2'); - assert.equal(moment([2008, 0, 13]).week(), 2, 'Jan 13 2008 should be week 2'); - assert.equal(moment([2008, 0, 14]).week(), 3, 'Jan 14 2008 should be week 3'); - assert.equal(moment([2002, 11, 30]).week(), 1, 'Dec 30 2002 should be week 1'); - assert.equal(moment([2003, 0, 1]).week(), 1, 'Jan 1 2003 should be week 1'); - assert.equal(moment([2003, 0, 5]).week(), 1, 'Jan 5 2003 should be week 1'); - assert.equal(moment([2003, 0, 6]).week(), 2, 'Jan 6 2003 should be week 2'); - assert.equal(moment([2003, 0, 12]).week(), 2, 'Jan 12 2003 should be week 2'); - assert.equal(moment([2003, 0, 13]).week(), 3, 'Jan 13 2003 should be week 3'); - assert.equal(moment([2008, 11, 29]).week(), 1, 'Dec 29 2008 should be week 1'); - assert.equal(moment([2009, 0, 1]).week(), 1, 'Jan 1 2009 should be week 1'); - assert.equal(moment([2009, 0, 4]).week(), 1, 'Jan 4 2009 should be week 1'); - assert.equal(moment([2009, 0, 5]).week(), 2, 'Jan 5 2009 should be week 2'); - assert.equal(moment([2009, 0, 11]).week(), 2, 'Jan 11 2009 should be week 2'); - assert.equal(moment([2009, 0, 13]).week(), 3, 'Jan 12 2009 should be week 3'); - assert.equal(moment([2009, 11, 28]).week(), 53, 'Dec 28 2009 should be week 53'); - assert.equal(moment([2010, 0, 1]).week(), 53, 'Jan 1 2010 should be week 53'); - assert.equal(moment([2010, 0, 3]).week(), 53, 'Jan 3 2010 should be week 53'); - assert.equal(moment([2010, 0, 4]).week(), 1, 'Jan 4 2010 should be week 1'); - assert.equal(moment([2010, 0, 10]).week(), 1, 'Jan 10 2010 should be week 1'); - assert.equal(moment([2010, 0, 11]).week(), 2, 'Jan 11 2010 should be week 2'); - assert.equal(moment([2010, 11, 27]).week(), 52, 'Dec 27 2010 should be week 52'); - assert.equal(moment([2011, 0, 1]).week(), 52, 'Jan 1 2011 should be week 52'); - assert.equal(moment([2011, 0, 2]).week(), 52, 'Jan 2 2011 should be week 52'); - assert.equal(moment([2011, 0, 3]).week(), 1, 'Jan 3 2011 should be week 1'); - assert.equal(moment([2011, 0, 9]).week(), 1, 'Jan 9 2011 should be week 1'); - assert.equal(moment([2011, 0, 10]).week(), 2, 'Jan 10 2011 should be week 2'); - moment.defineLocale('dow: 1, doy: 4', null); -}); - -test('weeks numbers dow:6 doy:12', function (assert) { - moment.locale('dow: 6, doy: 12', {week: {dow: 6, doy: 12}}); - assert.equal(moment([2011, 11, 31]).week(), 1, 'Dec 31 2011 should be week 1'); - assert.equal(moment([2012, 0, 6]).week(), 1, 'Jan 6 2012 should be week 1'); - assert.equal(moment([2012, 0, 7]).week(), 2, 'Jan 7 2012 should be week 2'); - assert.equal(moment([2012, 0, 13]).week(), 2, 'Jan 13 2012 should be week 2'); - assert.equal(moment([2012, 0, 14]).week(), 3, 'Jan 14 2012 should be week 3'); - assert.equal(moment([2006, 11, 30]).week(), 1, 'Dec 30 2006 should be week 1'); - assert.equal(moment([2007, 0, 5]).week(), 1, 'Jan 5 2007 should be week 1'); - assert.equal(moment([2007, 0, 6]).week(), 2, 'Jan 6 2007 should be week 2'); - assert.equal(moment([2007, 0, 12]).week(), 2, 'Jan 12 2007 should be week 2'); - assert.equal(moment([2007, 0, 13]).week(), 3, 'Jan 13 2007 should be week 3'); - assert.equal(moment([2007, 11, 29]).week(), 1, 'Dec 29 2007 should be week 1'); - assert.equal(moment([2008, 0, 1]).week(), 1, 'Jan 1 2008 should be week 1'); - assert.equal(moment([2008, 0, 4]).week(), 1, 'Jan 4 2008 should be week 1'); - assert.equal(moment([2008, 0, 5]).week(), 2, 'Jan 5 2008 should be week 2'); - assert.equal(moment([2008, 0, 11]).week(), 2, 'Jan 11 2008 should be week 2'); - assert.equal(moment([2008, 0, 12]).week(), 3, 'Jan 12 2008 should be week 3'); - assert.equal(moment([2002, 11, 28]).week(), 1, 'Dec 28 2002 should be week 1'); - assert.equal(moment([2003, 0, 1]).week(), 1, 'Jan 1 2003 should be week 1'); - assert.equal(moment([2003, 0, 3]).week(), 1, 'Jan 3 2003 should be week 1'); - assert.equal(moment([2003, 0, 4]).week(), 2, 'Jan 4 2003 should be week 2'); - assert.equal(moment([2003, 0, 10]).week(), 2, 'Jan 10 2003 should be week 2'); - assert.equal(moment([2003, 0, 11]).week(), 3, 'Jan 11 2003 should be week 3'); - assert.equal(moment([2008, 11, 27]).week(), 1, 'Dec 27 2008 should be week 1'); - assert.equal(moment([2009, 0, 1]).week(), 1, 'Jan 1 2009 should be week 1'); - assert.equal(moment([2009, 0, 2]).week(), 1, 'Jan 2 2009 should be week 1'); - assert.equal(moment([2009, 0, 3]).week(), 2, 'Jan 3 2009 should be week 2'); - assert.equal(moment([2009, 0, 9]).week(), 2, 'Jan 9 2009 should be week 2'); - assert.equal(moment([2009, 0, 10]).week(), 3, 'Jan 10 2009 should be week 3'); - assert.equal(moment([2009, 11, 26]).week(), 1, 'Dec 26 2009 should be week 1'); - assert.equal(moment([2010, 0, 1]).week(), 1, 'Jan 1 2010 should be week 1'); - assert.equal(moment([2010, 0, 2]).week(), 2, 'Jan 2 2010 should be week 2'); - assert.equal(moment([2010, 0, 8]).week(), 2, 'Jan 8 2010 should be week 2'); - assert.equal(moment([2010, 0, 9]).week(), 3, 'Jan 9 2010 should be week 3'); - assert.equal(moment([2011, 0, 1]).week(), 1, 'Jan 1 2011 should be week 1'); - assert.equal(moment([2011, 0, 7]).week(), 1, 'Jan 7 2011 should be week 1'); - assert.equal(moment([2011, 0, 8]).week(), 2, 'Jan 8 2011 should be week 2'); - assert.equal(moment([2011, 0, 14]).week(), 2, 'Jan 14 2011 should be week 2'); - assert.equal(moment([2011, 0, 15]).week(), 3, 'Jan 15 2011 should be week 3'); - moment.defineLocale('dow: 6, doy: 12', null); -}); - -test('weeks numbers dow:1 doy:7', function (assert) { - moment.locale('dow: 1, doy: 7', {week: {dow: 1, doy: 7}}); - assert.equal(moment([2011, 11, 26]).week(), 1, 'Dec 26 2011 should be week 1'); - assert.equal(moment([2012, 0, 1]).week(), 1, 'Jan 1 2012 should be week 1'); - assert.equal(moment([2012, 0, 2]).week(), 2, 'Jan 2 2012 should be week 2'); - assert.equal(moment([2012, 0, 8]).week(), 2, 'Jan 8 2012 should be week 2'); - assert.equal(moment([2012, 0, 9]).week(), 3, 'Jan 9 2012 should be week 3'); - assert.equal(moment([2007, 0, 1]).week(), 1, 'Jan 1 2007 should be week 1'); - assert.equal(moment([2007, 0, 7]).week(), 1, 'Jan 7 2007 should be week 1'); - assert.equal(moment([2007, 0, 8]).week(), 2, 'Jan 8 2007 should be week 2'); - assert.equal(moment([2007, 0, 14]).week(), 2, 'Jan 14 2007 should be week 2'); - assert.equal(moment([2007, 0, 15]).week(), 3, 'Jan 15 2007 should be week 3'); - assert.equal(moment([2007, 11, 31]).week(), 1, 'Dec 31 2007 should be week 1'); - assert.equal(moment([2008, 0, 1]).week(), 1, 'Jan 1 2008 should be week 1'); - assert.equal(moment([2008, 0, 6]).week(), 1, 'Jan 6 2008 should be week 1'); - assert.equal(moment([2008, 0, 7]).week(), 2, 'Jan 7 2008 should be week 2'); - assert.equal(moment([2008, 0, 13]).week(), 2, 'Jan 13 2008 should be week 2'); - assert.equal(moment([2008, 0, 14]).week(), 3, 'Jan 14 2008 should be week 3'); - assert.equal(moment([2002, 11, 30]).week(), 1, 'Dec 30 2002 should be week 1'); - assert.equal(moment([2003, 0, 1]).week(), 1, 'Jan 1 2003 should be week 1'); - assert.equal(moment([2003, 0, 5]).week(), 1, 'Jan 5 2003 should be week 1'); - assert.equal(moment([2003, 0, 6]).week(), 2, 'Jan 6 2003 should be week 2'); - assert.equal(moment([2003, 0, 12]).week(), 2, 'Jan 12 2003 should be week 2'); - assert.equal(moment([2003, 0, 13]).week(), 3, 'Jan 13 2003 should be week 3'); - assert.equal(moment([2008, 11, 29]).week(), 1, 'Dec 29 2008 should be week 1'); - assert.equal(moment([2009, 0, 1]).week(), 1, 'Jan 1 2009 should be week 1'); - assert.equal(moment([2009, 0, 4]).week(), 1, 'Jan 4 2009 should be week 1'); - assert.equal(moment([2009, 0, 5]).week(), 2, 'Jan 5 2009 should be week 2'); - assert.equal(moment([2009, 0, 11]).week(), 2, 'Jan 11 2009 should be week 2'); - assert.equal(moment([2009, 0, 12]).week(), 3, 'Jan 12 2009 should be week 3'); - assert.equal(moment([2009, 11, 28]).week(), 1, 'Dec 28 2009 should be week 1'); - assert.equal(moment([2010, 0, 1]).week(), 1, 'Jan 1 2010 should be week 1'); - assert.equal(moment([2010, 0, 3]).week(), 1, 'Jan 3 2010 should be week 1'); - assert.equal(moment([2010, 0, 4]).week(), 2, 'Jan 4 2010 should be week 2'); - assert.equal(moment([2010, 0, 10]).week(), 2, 'Jan 10 2010 should be week 2'); - assert.equal(moment([2010, 0, 11]).week(), 3, 'Jan 11 2010 should be week 3'); - assert.equal(moment([2010, 11, 27]).week(), 1, 'Dec 27 2010 should be week 1'); - assert.equal(moment([2011, 0, 1]).week(), 1, 'Jan 1 2011 should be week 1'); - assert.equal(moment([2011, 0, 2]).week(), 1, 'Jan 2 2011 should be week 1'); - assert.equal(moment([2011, 0, 3]).week(), 2, 'Jan 3 2011 should be week 2'); - assert.equal(moment([2011, 0, 9]).week(), 2, 'Jan 9 2011 should be week 2'); - assert.equal(moment([2011, 0, 10]).week(), 3, 'Jan 10 2011 should be week 3'); - moment.defineLocale('dow: 1, doy: 7', null); -}); - -test('weeks numbers dow:0 doy:6', function (assert) { - moment.locale('dow: 0, doy: 6', {week: {dow: 0, doy: 6}}); - assert.equal(moment([2012, 0, 1]).week(), 1, 'Jan 1 2012 should be week 1'); - assert.equal(moment([2012, 0, 7]).week(), 1, 'Jan 7 2012 should be week 1'); - assert.equal(moment([2012, 0, 8]).week(), 2, 'Jan 8 2012 should be week 2'); - assert.equal(moment([2012, 0, 14]).week(), 2, 'Jan 14 2012 should be week 2'); - assert.equal(moment([2012, 0, 15]).week(), 3, 'Jan 15 2012 should be week 3'); - assert.equal(moment([2006, 11, 31]).week(), 1, 'Dec 31 2006 should be week 1'); - assert.equal(moment([2007, 0, 1]).week(), 1, 'Jan 1 2007 should be week 1'); - assert.equal(moment([2007, 0, 6]).week(), 1, 'Jan 6 2007 should be week 1'); - assert.equal(moment([2007, 0, 7]).week(), 2, 'Jan 7 2007 should be week 2'); - assert.equal(moment([2007, 0, 13]).week(), 2, 'Jan 13 2007 should be week 2'); - assert.equal(moment([2007, 0, 14]).week(), 3, 'Jan 14 2007 should be week 3'); - assert.equal(moment([2007, 11, 29]).week(), 52, 'Dec 29 2007 should be week 52'); - assert.equal(moment([2008, 0, 1]).week(), 1, 'Jan 1 2008 should be week 1'); - assert.equal(moment([2008, 0, 5]).week(), 1, 'Jan 5 2008 should be week 1'); - assert.equal(moment([2008, 0, 6]).week(), 2, 'Jan 6 2008 should be week 2'); - assert.equal(moment([2008, 0, 12]).week(), 2, 'Jan 12 2008 should be week 2'); - assert.equal(moment([2008, 0, 13]).week(), 3, 'Jan 13 2008 should be week 3'); - assert.equal(moment([2002, 11, 29]).week(), 1, 'Dec 29 2002 should be week 1'); - assert.equal(moment([2003, 0, 1]).week(), 1, 'Jan 1 2003 should be week 1'); - assert.equal(moment([2003, 0, 4]).week(), 1, 'Jan 4 2003 should be week 1'); - assert.equal(moment([2003, 0, 5]).week(), 2, 'Jan 5 2003 should be week 2'); - assert.equal(moment([2003, 0, 11]).week(), 2, 'Jan 11 2003 should be week 2'); - assert.equal(moment([2003, 0, 12]).week(), 3, 'Jan 12 2003 should be week 3'); - assert.equal(moment([2008, 11, 28]).week(), 1, 'Dec 28 2008 should be week 1'); - assert.equal(moment([2009, 0, 1]).week(), 1, 'Jan 1 2009 should be week 1'); - assert.equal(moment([2009, 0, 3]).week(), 1, 'Jan 3 2009 should be week 1'); - assert.equal(moment([2009, 0, 4]).week(), 2, 'Jan 4 2009 should be week 2'); - assert.equal(moment([2009, 0, 10]).week(), 2, 'Jan 10 2009 should be week 2'); - assert.equal(moment([2009, 0, 11]).week(), 3, 'Jan 11 2009 should be week 3'); - assert.equal(moment([2009, 11, 27]).week(), 1, 'Dec 27 2009 should be week 1'); - assert.equal(moment([2010, 0, 1]).week(), 1, 'Jan 1 2010 should be week 1'); - assert.equal(moment([2010, 0, 2]).week(), 1, 'Jan 2 2010 should be week 1'); - assert.equal(moment([2010, 0, 3]).week(), 2, 'Jan 3 2010 should be week 2'); - assert.equal(moment([2010, 0, 9]).week(), 2, 'Jan 9 2010 should be week 2'); - assert.equal(moment([2010, 0, 10]).week(), 3, 'Jan 10 2010 should be week 3'); - assert.equal(moment([2010, 11, 26]).week(), 1, 'Dec 26 2010 should be week 1'); - assert.equal(moment([2011, 0, 1]).week(), 1, 'Jan 1 2011 should be week 1'); - assert.equal(moment([2011, 0, 2]).week(), 2, 'Jan 2 2011 should be week 2'); - assert.equal(moment([2011, 0, 8]).week(), 2, 'Jan 8 2011 should be week 2'); - assert.equal(moment([2011, 0, 9]).week(), 3, 'Jan 9 2011 should be week 3'); - moment.defineLocale('dow: 0, doy: 6', null); -}); - -test('week year overflows', function (assert) { - assert.equal('2005-01-01', moment.utc('2004-W53-6', moment.ISO_8601, true).format('YYYY-MM-DD'), '2004-W53-6 is 1st Jan 2005'); - assert.equal('2007-12-31', moment.utc('2008-W01-1', moment.ISO_8601, true).format('YYYY-MM-DD'), '2008-W01-1 is 31st Dec 2007'); -}); - -test('weeks overflow', function (assert) { - assert.equal(7, moment.utc('2004-W54-1', moment.ISO_8601, true).parsingFlags().overflow, '2004 has only 53 weeks'); - assert.equal(7, moment.utc('2004-W00-1', moment.ISO_8601, true).parsingFlags().overflow, 'there is no 0th week'); -}); - -test('weekday overflow', function (assert) { - assert.equal(8, moment.utc('2004-W30-0', moment.ISO_8601, true).parsingFlags().overflow, 'there is no 0 iso weekday'); - assert.equal(8, moment.utc('2004-W30-8', moment.ISO_8601, true).parsingFlags().overflow, 'there is no 8 iso weekday'); - assert.equal(8, moment.utc('2004-w30-7', 'gggg-[w]ww-e', true).parsingFlags().overflow, 'there is no 7 \'e\' weekday'); - assert.equal(8, moment.utc('2004-w30-7', 'gggg-[w]ww-d', true).parsingFlags().overflow, 'there is no 7 \'d\' weekday'); -}); - -test('week year setter works', function (assert) { - for (var year = 2000; year <= 2020; year += 1) { - assert.equal(moment.utc('2012-12-31T00:00:00.000Z').isoWeekYear(year).isoWeekYear(), year, 'setting iso-week-year to ' + year); - assert.equal(moment.utc('2012-12-31T00:00:00.000Z').weekYear(year).weekYear(), year, 'setting week-year to ' + year); - } - - assert.equal(moment.utc('2004-W53-1', moment.ISO_8601, true).isoWeekYear(2013).format('GGGG-[W]WW-E'), '2013-W52-1', '2004-W53-1 to 2013'); - assert.equal(moment.utc('2004-W53-1', moment.ISO_8601, true).isoWeekYear(2020).format('GGGG-[W]WW-E'), '2020-W53-1', '2004-W53-1 to 2020'); - assert.equal(moment.utc('2005-W52-1', moment.ISO_8601, true).isoWeekYear(2004).format('GGGG-[W]WW-E'), '2004-W52-1', '2005-W52-1 to 2004'); - assert.equal(moment.utc('2013-W30-4', moment.ISO_8601, true).isoWeekYear(2015).format('GGGG-[W]WW-E'), '2015-W30-4', '2013-W30-4 to 2015'); - - assert.equal(moment.utc('2005-w53-0', 'gggg-[w]ww-e', true).weekYear(2013).format('gggg-[w]ww-e'), '2013-w52-0', '2005-w53-0 to 2013'); - assert.equal(moment.utc('2005-w53-0', 'gggg-[w]ww-e', true).weekYear(2016).format('gggg-[w]ww-e'), '2016-w53-0', '2005-w53-0 to 2016'); - assert.equal(moment.utc('2004-w52-0', 'gggg-[w]ww-e', true).weekYear(2005).format('gggg-[w]ww-e'), '2005-w52-0', '2004-w52-0 to 2005'); - assert.equal(moment.utc('2013-w30-4', 'gggg-[w]ww-e', true).weekYear(2015).format('gggg-[w]ww-e'), '2015-w30-4', '2013-w30-4 to 2015'); -}); - -}))); - - -;(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' - && typeof require === 'function' ? factory(require('../../moment')) : - typeof define === 'function' && define.amd ? define(['../../moment'], factory) : - factory(global.moment) -}(this, (function (moment) { 'use strict'; - -function each(array, callback) { - var i; - for (i = 0; i < array.length; i++) { - callback(array[i], i, array); - } -} - -function objectKeys(obj) { - if (Object.keys) { - return Object.keys(obj); - } else { - // IE8 - var res = [], i; - for (i in obj) { - if (obj.hasOwnProperty(i)) { - res.push(i); - } - } - return res; - } -} - -// Pick the first defined of two or three arguments. - -function defineCommonLocaleTests(locale, options) { - test('lenient day of month ordinal parsing', function (assert) { - var i, ordinalStr, testMoment; - for (i = 1; i <= 31; ++i) { - ordinalStr = moment([2014, 0, i]).format('YYYY MM Do'); - testMoment = moment(ordinalStr, 'YYYY MM Do'); - assert.equal(testMoment.year(), 2014, - 'lenient day of month ordinal parsing ' + i + ' year check'); - assert.equal(testMoment.month(), 0, - 'lenient day of month ordinal parsing ' + i + ' month check'); - assert.equal(testMoment.date(), i, - 'lenient day of month ordinal parsing ' + i + ' date check'); - } - }); - - test('lenient day of month ordinal parsing of number', function (assert) { - var i, testMoment; - for (i = 1; i <= 31; ++i) { - testMoment = moment('2014 01 ' + i, 'YYYY MM Do'); - assert.equal(testMoment.year(), 2014, - 'lenient day of month ordinal parsing of number ' + i + ' year check'); - assert.equal(testMoment.month(), 0, - 'lenient day of month ordinal parsing of number ' + i + ' month check'); - assert.equal(testMoment.date(), i, - 'lenient day of month ordinal parsing of number ' + i + ' date check'); - } - }); - - test('strict day of month ordinal parsing', function (assert) { - var i, ordinalStr, testMoment; - for (i = 1; i <= 31; ++i) { - ordinalStr = moment([2014, 0, i]).format('YYYY MM Do'); - testMoment = moment(ordinalStr, 'YYYY MM Do', true); - assert.ok(testMoment.isValid(), 'strict day of month ordinal parsing ' + i); - } - }); - - test('meridiem invariant', function (assert) { - var h, m, t1, t2; - for (h = 0; h < 24; ++h) { - for (m = 0; m < 60; m += 15) { - t1 = moment.utc([2000, 0, 1, h, m]); - t2 = moment.utc(t1.format('A h:mm'), 'A h:mm'); - assert.equal(t2.format('HH:mm'), t1.format('HH:mm'), - 'meridiem at ' + t1.format('HH:mm')); - } - } - }); - - test('date format correctness', function (assert) { - var data, tokens; - data = moment.localeData()._longDateFormat; - tokens = objectKeys(data); - each(tokens, function (srchToken) { - // Check each format string to make sure it does not contain any - // tokens that need to be expanded. - each(tokens, function (baseToken) { - // strip escaped sequences - var format = data[baseToken].replace(/(\[[^\]]*\])/g, ''); - assert.equal(false, !!~format.indexOf(srchToken), - 'contains ' + srchToken + ' in ' + baseToken); - }); - }); - }); - - test('month parsing correctness', function (assert) { - var i, m; - - if (locale === 'tr') { - // I can't fix it :( - expect(0); - return; - } - function tester(format) { - var r; - r = moment(m.format(format), format); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format); - r = moment(m.format(format).toLocaleUpperCase(), format); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' upper'); - r = moment(m.format(format).toLocaleLowerCase(), format); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' lower'); - - r = moment(m.format(format), format, true); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' strict'); - r = moment(m.format(format).toLocaleUpperCase(), format, true); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' upper strict'); - r = moment(m.format(format).toLocaleLowerCase(), format, true); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' lower strict'); - } - - for (i = 0; i < 12; ++i) { - m = moment([2015, i, 15, 18]); - tester('MMM'); - tester('MMM.'); - tester('MMMM'); - tester('MMMM.'); - } - }); - - test('weekday parsing correctness', function (assert) { - var i, m; - - if (locale === 'tr' || locale === 'az' || locale === 'ro') { - // tr, az: There is a lower-case letter (ı), that converted to - // upper then lower changes to i - // ro: there is the letter ț which behaves weird under IE8 - expect(0); - return; - } - function tester(format) { - var r, baseMsg = 'weekday ' + m.weekday() + ' fmt ' + format + ' ' + m.toISOString(); - r = moment(m.format(format), format); - assert.equal(r.weekday(), m.weekday(), baseMsg); - r = moment(m.format(format).toLocaleUpperCase(), format); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' upper'); - r = moment(m.format(format).toLocaleLowerCase(), format); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' lower'); - - r = moment(m.format(format), format, true); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' strict'); - r = moment(m.format(format).toLocaleUpperCase(), format, true); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' upper strict'); - r = moment(m.format(format).toLocaleLowerCase(), format, true); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' lower strict'); - } - - for (i = 0; i < 7; ++i) { - m = moment.utc([2015, 0, i + 1, 18]); - tester('dd'); - tester('ddd'); - tester('dddd'); - } - }); - - test('valid localeData', function (assert) { - assert.equal(moment().localeData().months().length, 12, 'months should return 12 months'); - assert.equal(moment().localeData().monthsShort().length, 12, 'monthsShort should return 12 months'); - assert.equal(moment().localeData().weekdays().length, 7, 'weekdays should return 7 days'); - assert.equal(moment().localeData().weekdaysShort().length, 7, 'weekdaysShort should return 7 days'); - assert.equal(moment().localeData().weekdaysMin().length, 7, 'monthsShort should return 7 days'); - }); -} - -function setupDeprecationHandler(test, moment$$1, scope) { - test._expectedDeprecations = null; - test._observedDeprecations = null; - test._oldSupress = moment$$1.suppressDeprecationWarnings; - moment$$1.suppressDeprecationWarnings = true; - test.expectedDeprecations = function () { - test._expectedDeprecations = arguments; - test._observedDeprecations = []; - }; - moment$$1.deprecationHandler = function (name, msg) { - var deprecationId = matchedDeprecation(name, msg, test._expectedDeprecations); - if (deprecationId === -1) { - throw new Error('Unexpected deprecation thrown name=' + - name + ' msg=' + msg); - } - test._observedDeprecations[deprecationId] = 1; - }; -} - -function teardownDeprecationHandler(test, moment$$1, scope) { - moment$$1.suppressDeprecationWarnings = test._oldSupress; - - if (test._expectedDeprecations != null) { - var missedDeprecations = []; - each(test._expectedDeprecations, function (deprecationPattern, id) { - if (test._observedDeprecations[id] !== 1) { - missedDeprecations.push(deprecationPattern); - } - }); - if (missedDeprecations.length !== 0) { - throw new Error('Expected deprecation warnings did not happen: ' + - missedDeprecations.join(' ')); - } - } -} - -function matchedDeprecation(name, msg, deprecations) { - if (deprecations == null) { - return -1; - } - for (var i = 0; i < deprecations.length; ++i) { - if (name != null && name === deprecations[i]) { - return i; - } - if (msg != null && msg.substring(0, deprecations[i].length) === deprecations[i]) { - return i; - } - } - return -1; -} - -/*global QUnit:false*/ - -var test = QUnit.test; - -var expect = QUnit.expect; - -function module$1 (name, lifecycle) { - QUnit.module(name, { - setup : function () { - moment.locale('en'); - moment.createFromInputFallback = function (config) { - throw new Error('input not handled by moment: ' + config._i); - }; - setupDeprecationHandler(test, moment, 'core'); - if (lifecycle && lifecycle.setup) { - lifecycle.setup(); - } - }, - teardown : function () { - teardownDeprecationHandler(test, moment, 'core'); - if (lifecycle && lifecycle.teardown) { - lifecycle.teardown(); - } - } - }); -} - -module$1('week day'); - -test('iso weekday', function (assert) { - var i; - - for (i = 0; i < 7; ++i) { - moment.locale('dow:' + i + ',doy: 6', {week: {dow: i, doy: 6}}); - assert.equal(moment([1985, 1, 4]).isoWeekday(), 1, 'Feb 4 1985 is Monday -- 1st day'); - assert.equal(moment([2029, 8, 18]).isoWeekday(), 2, 'Sep 18 2029 is Tuesday -- 2nd day'); - assert.equal(moment([2013, 3, 24]).isoWeekday(), 3, 'Apr 24 2013 is Wednesday -- 3rd day'); - assert.equal(moment([2015, 2, 5]).isoWeekday(), 4, 'Mar 5 2015 is Thursday -- 4th day'); - assert.equal(moment([1970, 0, 2]).isoWeekday(), 5, 'Jan 2 1970 is Friday -- 5th day'); - assert.equal(moment([2001, 4, 12]).isoWeekday(), 6, 'May 12 2001 is Saturday -- 6th day'); - assert.equal(moment([2000, 0, 2]).isoWeekday(), 7, 'Jan 2 2000 is Sunday -- 7th day'); - } -}); - -test('iso weekday setter', function (assert) { - var a = moment([2011, 0, 10]); - assert.equal(moment(a).isoWeekday(1).date(), 10, 'set from mon to mon'); - assert.equal(moment(a).isoWeekday(4).date(), 13, 'set from mon to thu'); - assert.equal(moment(a).isoWeekday(7).date(), 16, 'set from mon to sun'); - assert.equal(moment(a).isoWeekday(-6).date(), 3, 'set from mon to last mon'); - assert.equal(moment(a).isoWeekday(-3).date(), 6, 'set from mon to last thu'); - assert.equal(moment(a).isoWeekday(0).date(), 9, 'set from mon to last sun'); - assert.equal(moment(a).isoWeekday(8).date(), 17, 'set from mon to next mon'); - assert.equal(moment(a).isoWeekday(11).date(), 20, 'set from mon to next thu'); - assert.equal(moment(a).isoWeekday(14).date(), 23, 'set from mon to next sun'); - - a = moment([2011, 0, 13]); - assert.equal(moment(a).isoWeekday(1).date(), 10, 'set from thu to mon'); - assert.equal(moment(a).isoWeekday(4).date(), 13, 'set from thu to thu'); - assert.equal(moment(a).isoWeekday(7).date(), 16, 'set from thu to sun'); - assert.equal(moment(a).isoWeekday(-6).date(), 3, 'set from thu to last mon'); - assert.equal(moment(a).isoWeekday(-3).date(), 6, 'set from thu to last thu'); - assert.equal(moment(a).isoWeekday(0).date(), 9, 'set from thu to last sun'); - assert.equal(moment(a).isoWeekday(8).date(), 17, 'set from thu to next mon'); - assert.equal(moment(a).isoWeekday(11).date(), 20, 'set from thu to next thu'); - assert.equal(moment(a).isoWeekday(14).date(), 23, 'set from thu to next sun'); - - a = moment([2011, 0, 16]); - assert.equal(moment(a).isoWeekday(1).date(), 10, 'set from sun to mon'); - assert.equal(moment(a).isoWeekday(4).date(), 13, 'set from sun to thu'); - assert.equal(moment(a).isoWeekday(7).date(), 16, 'set from sun to sun'); - assert.equal(moment(a).isoWeekday(-6).date(), 3, 'set from sun to last mon'); - assert.equal(moment(a).isoWeekday(-3).date(), 6, 'set from sun to last thu'); - assert.equal(moment(a).isoWeekday(0).date(), 9, 'set from sun to last sun'); - assert.equal(moment(a).isoWeekday(8).date(), 17, 'set from sun to next mon'); - assert.equal(moment(a).isoWeekday(11).date(), 20, 'set from sun to next thu'); - assert.equal(moment(a).isoWeekday(14).date(), 23, 'set from sun to next sun'); -}); - -test('iso weekday setter with day name', function (assert) { - moment.locale('en'); - - var a = moment([2011, 0, 10]); - assert.equal(moment(a).isoWeekday('Monday').date(), 10, 'set from mon to mon'); - assert.equal(moment(a).isoWeekday('Thursday').date(), 13, 'set from mon to thu'); - assert.equal(moment(a).isoWeekday('Sunday').date(), 16, 'set from mon to sun'); - - a = moment([2011, 0, 13]); - assert.equal(moment(a).isoWeekday('Monday').date(), 10, 'set from thu to mon'); - assert.equal(moment(a).isoWeekday('Thursday').date(), 13, 'set from thu to thu'); - assert.equal(moment(a).isoWeekday('Sunday').date(), 16, 'set from thu to sun'); - - a = moment([2011, 0, 16]); - assert.equal(moment(a).isoWeekday('Monday').date(), 10, 'set from sun to mon'); - assert.equal(moment(a).isoWeekday('Thursday').date(), 13, 'set from sun to thu'); - assert.equal(moment(a).isoWeekday('Sunday').date(), 16, 'set from sun to sun'); -}); - -test('weekday first day of week Sunday (dow 0)', function (assert) { - moment.locale('dow: 0,doy: 6', {week: {dow: 0, doy: 6}}); - assert.equal(moment([1985, 1, 3]).weekday(), 0, 'Feb 3 1985 is Sunday -- 0th day'); - assert.equal(moment([2029, 8, 17]).weekday(), 1, 'Sep 17 2029 is Monday -- 1st day'); - assert.equal(moment([2013, 3, 23]).weekday(), 2, 'Apr 23 2013 is Tuesday -- 2nd day'); - assert.equal(moment([2015, 2, 4]).weekday(), 3, 'Mar 4 2015 is Wednesday -- 3nd day'); - assert.equal(moment([1970, 0, 1]).weekday(), 4, 'Jan 1 1970 is Thursday -- 4th day'); - assert.equal(moment([2001, 4, 11]).weekday(), 5, 'May 11 2001 is Friday -- 5th day'); - assert.equal(moment([2000, 0, 1]).weekday(), 6, 'Jan 1 2000 is Saturday -- 6th day'); -}); - -test('weekday first day of week Monday (dow 1)', function (assert) { - moment.locale('dow: 1,doy: 6', {week: {dow: 1, doy: 6}}); - assert.equal(moment([1985, 1, 4]).weekday(), 0, 'Feb 4 1985 is Monday -- 0th day'); - assert.equal(moment([2029, 8, 18]).weekday(), 1, 'Sep 18 2029 is Tuesday -- 1st day'); - assert.equal(moment([2013, 3, 24]).weekday(), 2, 'Apr 24 2013 is Wednesday -- 2nd day'); - assert.equal(moment([2015, 2, 5]).weekday(), 3, 'Mar 5 2015 is Thursday -- 3nd day'); - assert.equal(moment([1970, 0, 2]).weekday(), 4, 'Jan 2 1970 is Friday -- 4th day'); - assert.equal(moment([2001, 4, 12]).weekday(), 5, 'May 12 2001 is Saturday -- 5th day'); - assert.equal(moment([2000, 0, 2]).weekday(), 6, 'Jan 2 2000 is Sunday -- 6th day'); -}); - -test('weekday first day of week Tuesday (dow 2)', function (assert) { - moment.locale('dow: 2,doy: 6', {week: {dow: 2, doy: 6}}); - assert.equal(moment([1985, 1, 5]).weekday(), 0, 'Feb 5 1985 is Tuesday -- 0th day'); - assert.equal(moment([2029, 8, 19]).weekday(), 1, 'Sep 19 2029 is Wednesday -- 1st day'); - assert.equal(moment([2013, 3, 25]).weekday(), 2, 'Apr 25 2013 is Thursday -- 2nd day'); - assert.equal(moment([2015, 2, 6]).weekday(), 3, 'Mar 6 2015 is Friday -- 3nd day'); - assert.equal(moment([1970, 0, 3]).weekday(), 4, 'Jan 3 1970 is Staturday -- 4th day'); - assert.equal(moment([2001, 4, 13]).weekday(), 5, 'May 13 2001 is Sunday -- 5th day'); - assert.equal(moment([2000, 0, 3]).weekday(), 6, 'Jan 3 2000 is Monday -- 6th day'); -}); - -test('weekday first day of week Wednesday (dow 3)', function (assert) { - moment.locale('dow: 3,doy: 6', {week: {dow: 3, doy: 6}}); - assert.equal(moment([1985, 1, 6]).weekday(), 0, 'Feb 6 1985 is Wednesday -- 0th day'); - assert.equal(moment([2029, 8, 20]).weekday(), 1, 'Sep 20 2029 is Thursday -- 1st day'); - assert.equal(moment([2013, 3, 26]).weekday(), 2, 'Apr 26 2013 is Friday -- 2nd day'); - assert.equal(moment([2015, 2, 7]).weekday(), 3, 'Mar 7 2015 is Saturday -- 3nd day'); - assert.equal(moment([1970, 0, 4]).weekday(), 4, 'Jan 4 1970 is Sunday -- 4th day'); - assert.equal(moment([2001, 4, 14]).weekday(), 5, 'May 14 2001 is Monday -- 5th day'); - assert.equal(moment([2000, 0, 4]).weekday(), 6, 'Jan 4 2000 is Tuesday -- 6th day'); - moment.locale('dow:3,doy:6', null); -}); - -test('weekday first day of week Thursday (dow 4)', function (assert) { - moment.locale('dow: 4,doy: 6', {week: {dow: 4, doy: 6}}); - assert.equal(moment([1985, 1, 7]).weekday(), 0, 'Feb 7 1985 is Thursday -- 0th day'); - assert.equal(moment([2029, 8, 21]).weekday(), 1, 'Sep 21 2029 is Friday -- 1st day'); - assert.equal(moment([2013, 3, 27]).weekday(), 2, 'Apr 27 2013 is Saturday -- 2nd day'); - assert.equal(moment([2015, 2, 8]).weekday(), 3, 'Mar 8 2015 is Sunday -- 3nd day'); - assert.equal(moment([1970, 0, 5]).weekday(), 4, 'Jan 5 1970 is Monday -- 4th day'); - assert.equal(moment([2001, 4, 15]).weekday(), 5, 'May 15 2001 is Tuesday -- 5th day'); - assert.equal(moment([2000, 0, 5]).weekday(), 6, 'Jan 5 2000 is Wednesday -- 6th day'); -}); - -test('weekday first day of week Friday (dow 5)', function (assert) { - moment.locale('dow: 5,doy: 6', {week: {dow: 5, doy: 6}}); - assert.equal(moment([1985, 1, 8]).weekday(), 0, 'Feb 8 1985 is Friday -- 0th day'); - assert.equal(moment([2029, 8, 22]).weekday(), 1, 'Sep 22 2029 is Staturday -- 1st day'); - assert.equal(moment([2013, 3, 28]).weekday(), 2, 'Apr 28 2013 is Sunday -- 2nd day'); - assert.equal(moment([2015, 2, 9]).weekday(), 3, 'Mar 9 2015 is Monday -- 3nd day'); - assert.equal(moment([1970, 0, 6]).weekday(), 4, 'Jan 6 1970 is Tuesday -- 4th day'); - assert.equal(moment([2001, 4, 16]).weekday(), 5, 'May 16 2001 is Wednesday -- 5th day'); - assert.equal(moment([2000, 0, 6]).weekday(), 6, 'Jan 6 2000 is Thursday -- 6th day'); -}); - -test('weekday first day of week Saturday (dow 6)', function (assert) { - moment.locale('dow: 6,doy: 6', {week: {dow: 6, doy: 6}}); - assert.equal(moment([1985, 1, 9]).weekday(), 0, 'Feb 9 1985 is Staturday -- 0th day'); - assert.equal(moment([2029, 8, 23]).weekday(), 1, 'Sep 23 2029 is Sunday -- 1st day'); - assert.equal(moment([2013, 3, 29]).weekday(), 2, 'Apr 29 2013 is Monday -- 2nd day'); - assert.equal(moment([2015, 2, 10]).weekday(), 3, 'Mar 10 2015 is Tuesday -- 3nd day'); - assert.equal(moment([1970, 0, 7]).weekday(), 4, 'Jan 7 1970 is Wednesday -- 4th day'); - assert.equal(moment([2001, 4, 17]).weekday(), 5, 'May 17 2001 is Thursday -- 5th day'); - assert.equal(moment([2000, 0, 7]).weekday(), 6, 'Jan 7 2000 is Friday -- 6th day'); -}); - -}))); - - -;(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' - && typeof require === 'function' ? factory(require('../../moment')) : - typeof define === 'function' && define.amd ? define(['../../moment'], factory) : - factory(global.moment) -}(this, (function (moment) { 'use strict'; - -function each(array, callback) { - var i; - for (i = 0; i < array.length; i++) { - callback(array[i], i, array); - } -} - -function objectKeys(obj) { - if (Object.keys) { - return Object.keys(obj); - } else { - // IE8 - var res = [], i; - for (i in obj) { - if (obj.hasOwnProperty(i)) { - res.push(i); - } - } - return res; - } -} - -// Pick the first defined of two or three arguments. - -function defineCommonLocaleTests(locale, options) { - test('lenient day of month ordinal parsing', function (assert) { - var i, ordinalStr, testMoment; - for (i = 1; i <= 31; ++i) { - ordinalStr = moment([2014, 0, i]).format('YYYY MM Do'); - testMoment = moment(ordinalStr, 'YYYY MM Do'); - assert.equal(testMoment.year(), 2014, - 'lenient day of month ordinal parsing ' + i + ' year check'); - assert.equal(testMoment.month(), 0, - 'lenient day of month ordinal parsing ' + i + ' month check'); - assert.equal(testMoment.date(), i, - 'lenient day of month ordinal parsing ' + i + ' date check'); - } - }); - - test('lenient day of month ordinal parsing of number', function (assert) { - var i, testMoment; - for (i = 1; i <= 31; ++i) { - testMoment = moment('2014 01 ' + i, 'YYYY MM Do'); - assert.equal(testMoment.year(), 2014, - 'lenient day of month ordinal parsing of number ' + i + ' year check'); - assert.equal(testMoment.month(), 0, - 'lenient day of month ordinal parsing of number ' + i + ' month check'); - assert.equal(testMoment.date(), i, - 'lenient day of month ordinal parsing of number ' + i + ' date check'); - } - }); - - test('strict day of month ordinal parsing', function (assert) { - var i, ordinalStr, testMoment; - for (i = 1; i <= 31; ++i) { - ordinalStr = moment([2014, 0, i]).format('YYYY MM Do'); - testMoment = moment(ordinalStr, 'YYYY MM Do', true); - assert.ok(testMoment.isValid(), 'strict day of month ordinal parsing ' + i); - } - }); - - test('meridiem invariant', function (assert) { - var h, m, t1, t2; - for (h = 0; h < 24; ++h) { - for (m = 0; m < 60; m += 15) { - t1 = moment.utc([2000, 0, 1, h, m]); - t2 = moment.utc(t1.format('A h:mm'), 'A h:mm'); - assert.equal(t2.format('HH:mm'), t1.format('HH:mm'), - 'meridiem at ' + t1.format('HH:mm')); - } - } - }); - - test('date format correctness', function (assert) { - var data, tokens; - data = moment.localeData()._longDateFormat; - tokens = objectKeys(data); - each(tokens, function (srchToken) { - // Check each format string to make sure it does not contain any - // tokens that need to be expanded. - each(tokens, function (baseToken) { - // strip escaped sequences - var format = data[baseToken].replace(/(\[[^\]]*\])/g, ''); - assert.equal(false, !!~format.indexOf(srchToken), - 'contains ' + srchToken + ' in ' + baseToken); - }); - }); - }); - - test('month parsing correctness', function (assert) { - var i, m; - - if (locale === 'tr') { - // I can't fix it :( - expect(0); - return; - } - function tester(format) { - var r; - r = moment(m.format(format), format); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format); - r = moment(m.format(format).toLocaleUpperCase(), format); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' upper'); - r = moment(m.format(format).toLocaleLowerCase(), format); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' lower'); - - r = moment(m.format(format), format, true); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' strict'); - r = moment(m.format(format).toLocaleUpperCase(), format, true); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' upper strict'); - r = moment(m.format(format).toLocaleLowerCase(), format, true); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' lower strict'); - } - - for (i = 0; i < 12; ++i) { - m = moment([2015, i, 15, 18]); - tester('MMM'); - tester('MMM.'); - tester('MMMM'); - tester('MMMM.'); - } - }); - - test('weekday parsing correctness', function (assert) { - var i, m; - - if (locale === 'tr' || locale === 'az' || locale === 'ro') { - // tr, az: There is a lower-case letter (ı), that converted to - // upper then lower changes to i - // ro: there is the letter ț which behaves weird under IE8 - expect(0); - return; - } - function tester(format) { - var r, baseMsg = 'weekday ' + m.weekday() + ' fmt ' + format + ' ' + m.toISOString(); - r = moment(m.format(format), format); - assert.equal(r.weekday(), m.weekday(), baseMsg); - r = moment(m.format(format).toLocaleUpperCase(), format); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' upper'); - r = moment(m.format(format).toLocaleLowerCase(), format); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' lower'); - - r = moment(m.format(format), format, true); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' strict'); - r = moment(m.format(format).toLocaleUpperCase(), format, true); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' upper strict'); - r = moment(m.format(format).toLocaleLowerCase(), format, true); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' lower strict'); - } - - for (i = 0; i < 7; ++i) { - m = moment.utc([2015, 0, i + 1, 18]); - tester('dd'); - tester('ddd'); - tester('dddd'); - } - }); - - test('valid localeData', function (assert) { - assert.equal(moment().localeData().months().length, 12, 'months should return 12 months'); - assert.equal(moment().localeData().monthsShort().length, 12, 'monthsShort should return 12 months'); - assert.equal(moment().localeData().weekdays().length, 7, 'weekdays should return 7 days'); - assert.equal(moment().localeData().weekdaysShort().length, 7, 'weekdaysShort should return 7 days'); - assert.equal(moment().localeData().weekdaysMin().length, 7, 'monthsShort should return 7 days'); - }); -} - -function setupDeprecationHandler(test, moment$$1, scope) { - test._expectedDeprecations = null; - test._observedDeprecations = null; - test._oldSupress = moment$$1.suppressDeprecationWarnings; - moment$$1.suppressDeprecationWarnings = true; - test.expectedDeprecations = function () { - test._expectedDeprecations = arguments; - test._observedDeprecations = []; - }; - moment$$1.deprecationHandler = function (name, msg) { - var deprecationId = matchedDeprecation(name, msg, test._expectedDeprecations); - if (deprecationId === -1) { - throw new Error('Unexpected deprecation thrown name=' + - name + ' msg=' + msg); - } - test._observedDeprecations[deprecationId] = 1; - }; -} - -function teardownDeprecationHandler(test, moment$$1, scope) { - moment$$1.suppressDeprecationWarnings = test._oldSupress; - - if (test._expectedDeprecations != null) { - var missedDeprecations = []; - each(test._expectedDeprecations, function (deprecationPattern, id) { - if (test._observedDeprecations[id] !== 1) { - missedDeprecations.push(deprecationPattern); - } - }); - if (missedDeprecations.length !== 0) { - throw new Error('Expected deprecation warnings did not happen: ' + - missedDeprecations.join(' ')); - } - } -} - -function matchedDeprecation(name, msg, deprecations) { - if (deprecations == null) { - return -1; - } - for (var i = 0; i < deprecations.length; ++i) { - if (name != null && name === deprecations[i]) { - return i; - } - if (msg != null && msg.substring(0, deprecations[i].length) === deprecations[i]) { - return i; - } - } - return -1; -} - -/*global QUnit:false*/ - -var test = QUnit.test; - -var expect = QUnit.expect; - -function module$1 (name, lifecycle) { - QUnit.module(name, { - setup : function () { - moment.locale('en'); - moment.createFromInputFallback = function (config) { - throw new Error('input not handled by moment: ' + config._i); - }; - setupDeprecationHandler(test, moment, 'core'); - if (lifecycle && lifecycle.setup) { - lifecycle.setup(); - } - }, - teardown : function () { - teardownDeprecationHandler(test, moment, 'core'); - if (lifecycle && lifecycle.teardown) { - lifecycle.teardown(); - } - } - }); -} - -module$1('weeks'); - -test('day of year', function (assert) { - assert.equal(moment([2000, 0, 1]).dayOfYear(), 1, 'Jan 1 2000 should be day 1 of the year'); - assert.equal(moment([2000, 1, 28]).dayOfYear(), 59, 'Feb 28 2000 should be day 59 of the year'); - assert.equal(moment([2000, 1, 29]).dayOfYear(), 60, 'Feb 28 2000 should be day 60 of the year'); - assert.equal(moment([2000, 11, 31]).dayOfYear(), 366, 'Dec 31 2000 should be day 366 of the year'); - assert.equal(moment([2001, 0, 1]).dayOfYear(), 1, 'Jan 1 2001 should be day 1 of the year'); - assert.equal(moment([2001, 1, 28]).dayOfYear(), 59, 'Feb 28 2001 should be day 59 of the year'); - assert.equal(moment([2001, 2, 1]).dayOfYear(), 60, 'Mar 1 2001 should be day 60 of the year'); - assert.equal(moment([2001, 11, 31]).dayOfYear(), 365, 'Dec 31 2001 should be day 365 of the year'); -}); - -test('day of year setters', function (assert) { - assert.equal(moment([2000, 0, 1]).dayOfYear(200).dayOfYear(), 200, 'Setting Jan 1 2000 day of the year to 200 should work'); - assert.equal(moment([2000, 1, 28]).dayOfYear(200).dayOfYear(), 200, 'Setting Feb 28 2000 day of the year to 200 should work'); - assert.equal(moment([2000, 1, 29]).dayOfYear(200).dayOfYear(), 200, 'Setting Feb 28 2000 day of the year to 200 should work'); - assert.equal(moment([2000, 11, 31]).dayOfYear(200).dayOfYear(), 200, 'Setting Dec 31 2000 day of the year to 200 should work'); - assert.equal(moment().dayOfYear(1).dayOfYear(), 1, 'Setting day of the year to 1 should work'); - assert.equal(moment().dayOfYear(59).dayOfYear(), 59, 'Setting day of the year to 59 should work'); - assert.equal(moment().dayOfYear(60).dayOfYear(), 60, 'Setting day of the year to 60 should work'); - assert.equal(moment().dayOfYear(365).dayOfYear(), 365, 'Setting day of the year to 365 should work'); -}); - -test('iso weeks year starting sunday', function (assert) { - assert.equal(moment([2012, 0, 1]).isoWeek(), 52, 'Jan 1 2012 should be iso week 52'); - assert.equal(moment([2012, 0, 2]).isoWeek(), 1, 'Jan 2 2012 should be iso week 1'); - assert.equal(moment([2012, 0, 8]).isoWeek(), 1, 'Jan 8 2012 should be iso week 1'); - assert.equal(moment([2012, 0, 9]).isoWeek(), 2, 'Jan 9 2012 should be iso week 2'); - assert.equal(moment([2012, 0, 15]).isoWeek(), 2, 'Jan 15 2012 should be iso week 2'); -}); - -test('iso weeks year starting monday', function (assert) { - assert.equal(moment([2007, 0, 1]).isoWeek(), 1, 'Jan 1 2007 should be iso week 1'); - assert.equal(moment([2007, 0, 7]).isoWeek(), 1, 'Jan 7 2007 should be iso week 1'); - assert.equal(moment([2007, 0, 8]).isoWeek(), 2, 'Jan 8 2007 should be iso week 2'); - assert.equal(moment([2007, 0, 14]).isoWeek(), 2, 'Jan 14 2007 should be iso week 2'); - assert.equal(moment([2007, 0, 15]).isoWeek(), 3, 'Jan 15 2007 should be iso week 3'); -}); - -test('iso weeks year starting tuesday', function (assert) { - assert.equal(moment([2007, 11, 31]).isoWeek(), 1, 'Dec 31 2007 should be iso week 1'); - assert.equal(moment([2008, 0, 1]).isoWeek(), 1, 'Jan 1 2008 should be iso week 1'); - assert.equal(moment([2008, 0, 6]).isoWeek(), 1, 'Jan 6 2008 should be iso week 1'); - assert.equal(moment([2008, 0, 7]).isoWeek(), 2, 'Jan 7 2008 should be iso week 2'); - assert.equal(moment([2008, 0, 13]).isoWeek(), 2, 'Jan 13 2008 should be iso week 2'); - assert.equal(moment([2008, 0, 14]).isoWeek(), 3, 'Jan 14 2008 should be iso week 3'); -}); - -test('iso weeks year starting wednesday', function (assert) { - assert.equal(moment([2002, 11, 30]).isoWeek(), 1, 'Dec 30 2002 should be iso week 1'); - assert.equal(moment([2003, 0, 1]).isoWeek(), 1, 'Jan 1 2003 should be iso week 1'); - assert.equal(moment([2003, 0, 5]).isoWeek(), 1, 'Jan 5 2003 should be iso week 1'); - assert.equal(moment([2003, 0, 6]).isoWeek(), 2, 'Jan 6 2003 should be iso week 2'); - assert.equal(moment([2003, 0, 12]).isoWeek(), 2, 'Jan 12 2003 should be iso week 2'); - assert.equal(moment([2003, 0, 13]).isoWeek(), 3, 'Jan 13 2003 should be iso week 3'); -}); - -test('iso weeks year starting thursday', function (assert) { - assert.equal(moment([2008, 11, 29]).isoWeek(), 1, 'Dec 29 2008 should be iso week 1'); - assert.equal(moment([2009, 0, 1]).isoWeek(), 1, 'Jan 1 2009 should be iso week 1'); - assert.equal(moment([2009, 0, 4]).isoWeek(), 1, 'Jan 4 2009 should be iso week 1'); - assert.equal(moment([2009, 0, 5]).isoWeek(), 2, 'Jan 5 2009 should be iso week 2'); - assert.equal(moment([2009, 0, 11]).isoWeek(), 2, 'Jan 11 2009 should be iso week 2'); - assert.equal(moment([2009, 0, 13]).isoWeek(), 3, 'Jan 12 2009 should be iso week 3'); -}); - -test('iso weeks year starting friday', function (assert) { - assert.equal(moment([2009, 11, 28]).isoWeek(), 53, 'Dec 28 2009 should be iso week 53'); - assert.equal(moment([2010, 0, 1]).isoWeek(), 53, 'Jan 1 2010 should be iso week 53'); - assert.equal(moment([2010, 0, 3]).isoWeek(), 53, 'Jan 3 2010 should be iso week 53'); - assert.equal(moment([2010, 0, 4]).isoWeek(), 1, 'Jan 4 2010 should be iso week 1'); - assert.equal(moment([2010, 0, 10]).isoWeek(), 1, 'Jan 10 2010 should be iso week 1'); - assert.equal(moment([2010, 0, 11]).isoWeek(), 2, 'Jan 11 2010 should be iso week 2'); -}); - -test('iso weeks year starting saturday', function (assert) { - assert.equal(moment([2010, 11, 27]).isoWeek(), 52, 'Dec 27 2010 should be iso week 52'); - assert.equal(moment([2011, 0, 1]).isoWeek(), 52, 'Jan 1 2011 should be iso week 52'); - assert.equal(moment([2011, 0, 2]).isoWeek(), 52, 'Jan 2 2011 should be iso week 52'); - assert.equal(moment([2011, 0, 3]).isoWeek(), 1, 'Jan 3 2011 should be iso week 1'); - assert.equal(moment([2011, 0, 9]).isoWeek(), 1, 'Jan 9 2011 should be iso week 1'); - assert.equal(moment([2011, 0, 10]).isoWeek(), 2, 'Jan 10 2011 should be iso week 2'); -}); - -test('iso weeks year starting sunday formatted', function (assert) { - assert.equal(moment([2012, 0, 1]).format('W WW Wo'), '52 52 52nd', 'Jan 1 2012 should be iso week 52'); - assert.equal(moment([2012, 0, 2]).format('W WW Wo'), '1 01 1st', 'Jan 2 2012 should be iso week 1'); - assert.equal(moment([2012, 0, 8]).format('W WW Wo'), '1 01 1st', 'Jan 8 2012 should be iso week 1'); - assert.equal(moment([2012, 0, 9]).format('W WW Wo'), '2 02 2nd', 'Jan 9 2012 should be iso week 2'); - assert.equal(moment([2012, 0, 15]).format('W WW Wo'), '2 02 2nd', 'Jan 15 2012 should be iso week 2'); -}); - -test('weeks plural year starting sunday', function (assert) { - assert.equal(moment([2012, 0, 1]).weeks(), 1, 'Jan 1 2012 should be week 1'); - assert.equal(moment([2012, 0, 7]).weeks(), 1, 'Jan 7 2012 should be week 1'); - assert.equal(moment([2012, 0, 8]).weeks(), 2, 'Jan 8 2012 should be week 2'); - assert.equal(moment([2012, 0, 14]).weeks(), 2, 'Jan 14 2012 should be week 2'); - assert.equal(moment([2012, 0, 15]).weeks(), 3, 'Jan 15 2012 should be week 3'); -}); - -test('iso weeks plural year starting sunday', function (assert) { - assert.equal(moment([2012, 0, 1]).isoWeeks(), 52, 'Jan 1 2012 should be iso week 52'); - assert.equal(moment([2012, 0, 2]).isoWeeks(), 1, 'Jan 2 2012 should be iso week 1'); - assert.equal(moment([2012, 0, 8]).isoWeeks(), 1, 'Jan 8 2012 should be iso week 1'); - assert.equal(moment([2012, 0, 9]).isoWeeks(), 2, 'Jan 9 2012 should be iso week 2'); - assert.equal(moment([2012, 0, 15]).isoWeeks(), 2, 'Jan 15 2012 should be iso week 2'); -}); - -test('weeks setter', function (assert) { - assert.equal(moment([2012, 0, 1]).week(30).week(), 30, 'Setting Jan 1 2012 to week 30 should work'); - assert.equal(moment([2012, 0, 7]).week(30).week(), 30, 'Setting Jan 7 2012 to week 30 should work'); - assert.equal(moment([2012, 0, 8]).week(30).week(), 30, 'Setting Jan 8 2012 to week 30 should work'); - assert.equal(moment([2012, 0, 14]).week(30).week(), 30, 'Setting Jan 14 2012 to week 30 should work'); - assert.equal(moment([2012, 0, 15]).week(30).week(), 30, 'Setting Jan 15 2012 to week 30 should work'); -}); - -test('iso weeks setter', function (assert) { - assert.equal(moment([2012, 0, 1]).isoWeeks(25).isoWeeks(), 25, 'Setting Jan 1 2012 to week 25 should work'); - assert.equal(moment([2012, 0, 2]).isoWeeks(24).isoWeeks(), 24, 'Setting Jan 2 2012 to week 24 should work'); - assert.equal(moment([2012, 0, 8]).isoWeeks(23).isoWeeks(), 23, 'Setting Jan 8 2012 to week 23 should work'); - assert.equal(moment([2012, 0, 9]).isoWeeks(22).isoWeeks(), 22, 'Setting Jan 9 2012 to week 22 should work'); - assert.equal(moment([2012, 0, 15]).isoWeeks(21).isoWeeks(), 21, 'Setting Jan 15 2012 to week 21 should work'); -}); - -test('iso weeks setter day of year', function (assert) { - assert.equal(moment([2012, 0, 1]).isoWeek(1).dayOfYear(), 9, 'Setting Jan 1 2012 to week 1 should be day of year 8'); - assert.equal(moment([2012, 0, 1]).isoWeek(1).year(), 2011, 'Setting Jan 1 2012 to week 1 should be year 2011'); - assert.equal(moment([2012, 0, 2]).isoWeek(1).dayOfYear(), 2, 'Setting Jan 2 2012 to week 1 should be day of year 2'); - assert.equal(moment([2012, 0, 8]).isoWeek(1).dayOfYear(), 8, 'Setting Jan 8 2012 to week 1 should be day of year 8'); - assert.equal(moment([2012, 0, 9]).isoWeek(1).dayOfYear(), 2, 'Setting Jan 9 2012 to week 1 should be day of year 2'); - assert.equal(moment([2012, 0, 15]).isoWeek(1).dayOfYear(), 8, 'Setting Jan 15 2012 to week 1 should be day of year 8'); -}); - -test('years with iso week 53', function (assert) { - // Based on a table taken from https://en.wikipedia.org/wiki/ISO_week_date - // (as downloaded on 2014-01-06) listing the 71 years in a 400-year cycle - // that have 53 weeks; in this case reflecting the 2000 based cycle - assert.equal(moment([2004, 11, 31]).isoWeek(), 53, 'Dec 31 2004 should be iso week 53'); - assert.equal(moment([2009, 11, 31]).isoWeek(), 53, 'Dec 31 2009 should be iso week 53'); - assert.equal(moment([2015, 11, 31]).isoWeek(), 53, 'Dec 31 2015 should be iso week 53'); - assert.equal(moment([2020, 11, 31]).isoWeek(), 53, 'Dec 31 2020 should be iso week 53'); - assert.equal(moment([2026, 11, 31]).isoWeek(), 53, 'Dec 31 2026 should be iso week 53'); - assert.equal(moment([2032, 11, 31]).isoWeek(), 53, 'Dec 31 2032 should be iso week 53'); - assert.equal(moment([2037, 11, 31]).isoWeek(), 53, 'Dec 31 2037 should be iso week 53'); - assert.equal(moment([2043, 11, 31]).isoWeek(), 53, 'Dec 31 2043 should be iso week 53'); - assert.equal(moment([2048, 11, 31]).isoWeek(), 53, 'Dec 31 2048 should be iso week 53'); - assert.equal(moment([2054, 11, 31]).isoWeek(), 53, 'Dec 31 2054 should be iso week 53'); - assert.equal(moment([2060, 11, 31]).isoWeek(), 53, 'Dec 31 2060 should be iso week 53'); - assert.equal(moment([2065, 11, 31]).isoWeek(), 53, 'Dec 31 2065 should be iso week 53'); - assert.equal(moment([2071, 11, 31]).isoWeek(), 53, 'Dec 31 2071 should be iso week 53'); - assert.equal(moment([2076, 11, 31]).isoWeek(), 53, 'Dec 31 2076 should be iso week 53'); - assert.equal(moment([2082, 11, 31]).isoWeek(), 53, 'Dec 31 2082 should be iso week 53'); - assert.equal(moment([2088, 11, 31]).isoWeek(), 53, 'Dec 31 2088 should be iso week 53'); - assert.equal(moment([2093, 11, 31]).isoWeek(), 53, 'Dec 31 2093 should be iso week 53'); - assert.equal(moment([2099, 11, 31]).isoWeek(), 53, 'Dec 31 2099 should be iso week 53'); - assert.equal(moment([2105, 11, 31]).isoWeek(), 53, 'Dec 31 2105 should be iso week 53'); - assert.equal(moment([2111, 11, 31]).isoWeek(), 53, 'Dec 31 2111 should be iso week 53'); - assert.equal(moment([2116, 11, 31]).isoWeek(), 53, 'Dec 31 2116 should be iso week 53'); - assert.equal(moment([2122, 11, 31]).isoWeek(), 53, 'Dec 31 2122 should be iso week 53'); - assert.equal(moment([2128, 11, 31]).isoWeek(), 53, 'Dec 31 2128 should be iso week 53'); - assert.equal(moment([2133, 11, 31]).isoWeek(), 53, 'Dec 31 2133 should be iso week 53'); - assert.equal(moment([2139, 11, 31]).isoWeek(), 53, 'Dec 31 2139 should be iso week 53'); - assert.equal(moment([2144, 11, 31]).isoWeek(), 53, 'Dec 31 2144 should be iso week 53'); - assert.equal(moment([2150, 11, 31]).isoWeek(), 53, 'Dec 31 2150 should be iso week 53'); - assert.equal(moment([2156, 11, 31]).isoWeek(), 53, 'Dec 31 2156 should be iso week 53'); - assert.equal(moment([2161, 11, 31]).isoWeek(), 53, 'Dec 31 2161 should be iso week 53'); - assert.equal(moment([2167, 11, 31]).isoWeek(), 53, 'Dec 31 2167 should be iso week 53'); - assert.equal(moment([2172, 11, 31]).isoWeek(), 53, 'Dec 31 2172 should be iso week 53'); - assert.equal(moment([2178, 11, 31]).isoWeek(), 53, 'Dec 31 2178 should be iso week 53'); - assert.equal(moment([2184, 11, 31]).isoWeek(), 53, 'Dec 31 2184 should be iso week 53'); - assert.equal(moment([2189, 11, 31]).isoWeek(), 53, 'Dec 31 2189 should be iso week 53'); - assert.equal(moment([2195, 11, 31]).isoWeek(), 53, 'Dec 31 2195 should be iso week 53'); - assert.equal(moment([2201, 11, 31]).isoWeek(), 53, 'Dec 31 2201 should be iso week 53'); - assert.equal(moment([2207, 11, 31]).isoWeek(), 53, 'Dec 31 2207 should be iso week 53'); - assert.equal(moment([2212, 11, 31]).isoWeek(), 53, 'Dec 31 2212 should be iso week 53'); - assert.equal(moment([2218, 11, 31]).isoWeek(), 53, 'Dec 31 2218 should be iso week 53'); - assert.equal(moment([2224, 11, 31]).isoWeek(), 53, 'Dec 31 2224 should be iso week 53'); - assert.equal(moment([2229, 11, 31]).isoWeek(), 53, 'Dec 31 2229 should be iso week 53'); - assert.equal(moment([2235, 11, 31]).isoWeek(), 53, 'Dec 31 2235 should be iso week 53'); - assert.equal(moment([2240, 11, 31]).isoWeek(), 53, 'Dec 31 2240 should be iso week 53'); - assert.equal(moment([2246, 11, 31]).isoWeek(), 53, 'Dec 31 2246 should be iso week 53'); - assert.equal(moment([2252, 11, 31]).isoWeek(), 53, 'Dec 31 2252 should be iso week 53'); - assert.equal(moment([2257, 11, 31]).isoWeek(), 53, 'Dec 31 2257 should be iso week 53'); - assert.equal(moment([2263, 11, 31]).isoWeek(), 53, 'Dec 31 2263 should be iso week 53'); - assert.equal(moment([2268, 11, 31]).isoWeek(), 53, 'Dec 31 2268 should be iso week 53'); - assert.equal(moment([2274, 11, 31]).isoWeek(), 53, 'Dec 31 2274 should be iso week 53'); - assert.equal(moment([2280, 11, 31]).isoWeek(), 53, 'Dec 31 2280 should be iso week 53'); - assert.equal(moment([2285, 11, 31]).isoWeek(), 53, 'Dec 31 2285 should be iso week 53'); - assert.equal(moment([2291, 11, 31]).isoWeek(), 53, 'Dec 31 2291 should be iso week 53'); - assert.equal(moment([2296, 11, 31]).isoWeek(), 53, 'Dec 31 2296 should be iso week 53'); - assert.equal(moment([2303, 11, 31]).isoWeek(), 53, 'Dec 31 2303 should be iso week 53'); - assert.equal(moment([2308, 11, 31]).isoWeek(), 53, 'Dec 31 2308 should be iso week 53'); - assert.equal(moment([2314, 11, 31]).isoWeek(), 53, 'Dec 31 2314 should be iso week 53'); - assert.equal(moment([2320, 11, 31]).isoWeek(), 53, 'Dec 31 2320 should be iso week 53'); - assert.equal(moment([2325, 11, 31]).isoWeek(), 53, 'Dec 31 2325 should be iso week 53'); - assert.equal(moment([2331, 11, 31]).isoWeek(), 53, 'Dec 31 2331 should be iso week 53'); - assert.equal(moment([2336, 11, 31]).isoWeek(), 53, 'Dec 31 2336 should be iso week 53'); - assert.equal(moment([2342, 11, 31]).isoWeek(), 53, 'Dec 31 2342 should be iso week 53'); - assert.equal(moment([2348, 11, 31]).isoWeek(), 53, 'Dec 31 2348 should be iso week 53'); - assert.equal(moment([2353, 11, 31]).isoWeek(), 53, 'Dec 31 2353 should be iso week 53'); - assert.equal(moment([2359, 11, 31]).isoWeek(), 53, 'Dec 31 2359 should be iso week 53'); - assert.equal(moment([2364, 11, 31]).isoWeek(), 53, 'Dec 31 2364 should be iso week 53'); - assert.equal(moment([2370, 11, 31]).isoWeek(), 53, 'Dec 31 2370 should be iso week 53'); - assert.equal(moment([2376, 11, 31]).isoWeek(), 53, 'Dec 31 2376 should be iso week 53'); - assert.equal(moment([2381, 11, 31]).isoWeek(), 53, 'Dec 31 2381 should be iso week 53'); - assert.equal(moment([2387, 11, 31]).isoWeek(), 53, 'Dec 31 2387 should be iso week 53'); - assert.equal(moment([2392, 11, 31]).isoWeek(), 53, 'Dec 31 2392 should be iso week 53'); - assert.equal(moment([2398, 11, 31]).isoWeek(), 53, 'Dec 31 2398 should be iso week 53'); -}); - -test('count years with iso week 53', function (assert) { - // Based on https://en.wikipedia.org/wiki/ISO_week_date (as seen on 2014-01-06) - // stating that there are 71 years in a 400-year cycle that have 53 weeks; - // in this case reflecting the 2000 based cycle - var count = 0, i; - for (i = 0; i < 400; i++) { - count += (moment([2000 + i, 11, 31]).isoWeek() === 53) ? 1 : 0; - } - assert.equal(count, 71, 'Should have 71 years in 400-year cycle with iso week 53'); -}); - -}))); - - -;(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' - && typeof require === 'function' ? factory(require('../../moment')) : - typeof define === 'function' && define.amd ? define(['../../moment'], factory) : - factory(global.moment) -}(this, (function (moment) { 'use strict'; - -function each(array, callback) { - var i; - for (i = 0; i < array.length; i++) { - callback(array[i], i, array); - } -} - -function objectKeys(obj) { - if (Object.keys) { - return Object.keys(obj); - } else { - // IE8 - var res = [], i; - for (i in obj) { - if (obj.hasOwnProperty(i)) { - res.push(i); - } - } - return res; - } -} - -// Pick the first defined of two or three arguments. - -function defineCommonLocaleTests(locale, options) { - test('lenient day of month ordinal parsing', function (assert) { - var i, ordinalStr, testMoment; - for (i = 1; i <= 31; ++i) { - ordinalStr = moment([2014, 0, i]).format('YYYY MM Do'); - testMoment = moment(ordinalStr, 'YYYY MM Do'); - assert.equal(testMoment.year(), 2014, - 'lenient day of month ordinal parsing ' + i + ' year check'); - assert.equal(testMoment.month(), 0, - 'lenient day of month ordinal parsing ' + i + ' month check'); - assert.equal(testMoment.date(), i, - 'lenient day of month ordinal parsing ' + i + ' date check'); - } - }); - - test('lenient day of month ordinal parsing of number', function (assert) { - var i, testMoment; - for (i = 1; i <= 31; ++i) { - testMoment = moment('2014 01 ' + i, 'YYYY MM Do'); - assert.equal(testMoment.year(), 2014, - 'lenient day of month ordinal parsing of number ' + i + ' year check'); - assert.equal(testMoment.month(), 0, - 'lenient day of month ordinal parsing of number ' + i + ' month check'); - assert.equal(testMoment.date(), i, - 'lenient day of month ordinal parsing of number ' + i + ' date check'); - } - }); - - test('strict day of month ordinal parsing', function (assert) { - var i, ordinalStr, testMoment; - for (i = 1; i <= 31; ++i) { - ordinalStr = moment([2014, 0, i]).format('YYYY MM Do'); - testMoment = moment(ordinalStr, 'YYYY MM Do', true); - assert.ok(testMoment.isValid(), 'strict day of month ordinal parsing ' + i); - } - }); - - test('meridiem invariant', function (assert) { - var h, m, t1, t2; - for (h = 0; h < 24; ++h) { - for (m = 0; m < 60; m += 15) { - t1 = moment.utc([2000, 0, 1, h, m]); - t2 = moment.utc(t1.format('A h:mm'), 'A h:mm'); - assert.equal(t2.format('HH:mm'), t1.format('HH:mm'), - 'meridiem at ' + t1.format('HH:mm')); - } - } - }); - - test('date format correctness', function (assert) { - var data, tokens; - data = moment.localeData()._longDateFormat; - tokens = objectKeys(data); - each(tokens, function (srchToken) { - // Check each format string to make sure it does not contain any - // tokens that need to be expanded. - each(tokens, function (baseToken) { - // strip escaped sequences - var format = data[baseToken].replace(/(\[[^\]]*\])/g, ''); - assert.equal(false, !!~format.indexOf(srchToken), - 'contains ' + srchToken + ' in ' + baseToken); - }); - }); - }); - - test('month parsing correctness', function (assert) { - var i, m; - - if (locale === 'tr') { - // I can't fix it :( - expect(0); - return; - } - function tester(format) { - var r; - r = moment(m.format(format), format); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format); - r = moment(m.format(format).toLocaleUpperCase(), format); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' upper'); - r = moment(m.format(format).toLocaleLowerCase(), format); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' lower'); - - r = moment(m.format(format), format, true); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' strict'); - r = moment(m.format(format).toLocaleUpperCase(), format, true); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' upper strict'); - r = moment(m.format(format).toLocaleLowerCase(), format, true); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' lower strict'); - } - - for (i = 0; i < 12; ++i) { - m = moment([2015, i, 15, 18]); - tester('MMM'); - tester('MMM.'); - tester('MMMM'); - tester('MMMM.'); - } - }); - - test('weekday parsing correctness', function (assert) { - var i, m; - - if (locale === 'tr' || locale === 'az' || locale === 'ro') { - // tr, az: There is a lower-case letter (ı), that converted to - // upper then lower changes to i - // ro: there is the letter ț which behaves weird under IE8 - expect(0); - return; - } - function tester(format) { - var r, baseMsg = 'weekday ' + m.weekday() + ' fmt ' + format + ' ' + m.toISOString(); - r = moment(m.format(format), format); - assert.equal(r.weekday(), m.weekday(), baseMsg); - r = moment(m.format(format).toLocaleUpperCase(), format); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' upper'); - r = moment(m.format(format).toLocaleLowerCase(), format); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' lower'); - - r = moment(m.format(format), format, true); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' strict'); - r = moment(m.format(format).toLocaleUpperCase(), format, true); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' upper strict'); - r = moment(m.format(format).toLocaleLowerCase(), format, true); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' lower strict'); - } - - for (i = 0; i < 7; ++i) { - m = moment.utc([2015, 0, i + 1, 18]); - tester('dd'); - tester('ddd'); - tester('dddd'); - } - }); - - test('valid localeData', function (assert) { - assert.equal(moment().localeData().months().length, 12, 'months should return 12 months'); - assert.equal(moment().localeData().monthsShort().length, 12, 'monthsShort should return 12 months'); - assert.equal(moment().localeData().weekdays().length, 7, 'weekdays should return 7 days'); - assert.equal(moment().localeData().weekdaysShort().length, 7, 'weekdaysShort should return 7 days'); - assert.equal(moment().localeData().weekdaysMin().length, 7, 'monthsShort should return 7 days'); - }); -} - -function setupDeprecationHandler(test, moment$$1, scope) { - test._expectedDeprecations = null; - test._observedDeprecations = null; - test._oldSupress = moment$$1.suppressDeprecationWarnings; - moment$$1.suppressDeprecationWarnings = true; - test.expectedDeprecations = function () { - test._expectedDeprecations = arguments; - test._observedDeprecations = []; - }; - moment$$1.deprecationHandler = function (name, msg) { - var deprecationId = matchedDeprecation(name, msg, test._expectedDeprecations); - if (deprecationId === -1) { - throw new Error('Unexpected deprecation thrown name=' + - name + ' msg=' + msg); - } - test._observedDeprecations[deprecationId] = 1; - }; -} - -function teardownDeprecationHandler(test, moment$$1, scope) { - moment$$1.suppressDeprecationWarnings = test._oldSupress; - - if (test._expectedDeprecations != null) { - var missedDeprecations = []; - each(test._expectedDeprecations, function (deprecationPattern, id) { - if (test._observedDeprecations[id] !== 1) { - missedDeprecations.push(deprecationPattern); - } - }); - if (missedDeprecations.length !== 0) { - throw new Error('Expected deprecation warnings did not happen: ' + - missedDeprecations.join(' ')); - } - } -} - -function matchedDeprecation(name, msg, deprecations) { - if (deprecations == null) { - return -1; - } - for (var i = 0; i < deprecations.length; ++i) { - if (name != null && name === deprecations[i]) { - return i; - } - if (msg != null && msg.substring(0, deprecations[i].length) === deprecations[i]) { - return i; - } - } - return -1; -} - -/*global QUnit:false*/ - -var test = QUnit.test; - -var expect = QUnit.expect; - -function module$1 (name, lifecycle) { - QUnit.module(name, { - setup : function () { - moment.locale('en'); - moment.createFromInputFallback = function (config) { - throw new Error('input not handled by moment: ' + config._i); - }; - setupDeprecationHandler(test, moment, 'core'); - if (lifecycle && lifecycle.setup) { - lifecycle.setup(); - } - }, - teardown : function () { - teardownDeprecationHandler(test, moment, 'core'); - if (lifecycle && lifecycle.teardown) { - lifecycle.teardown(); - } - } - }); -} - -module$1('weeks in year'); - -test('isoWeeksInYear', function (assert) { - assert.equal(moment([2004]).isoWeeksInYear(), 53, '2004 has 53 iso weeks'); - assert.equal(moment([2005]).isoWeeksInYear(), 52, '2005 has 53 iso weeks'); - assert.equal(moment([2006]).isoWeeksInYear(), 52, '2006 has 53 iso weeks'); - assert.equal(moment([2007]).isoWeeksInYear(), 52, '2007 has 52 iso weeks'); - assert.equal(moment([2008]).isoWeeksInYear(), 52, '2008 has 53 iso weeks'); - assert.equal(moment([2009]).isoWeeksInYear(), 53, '2009 has 53 iso weeks'); - assert.equal(moment([2010]).isoWeeksInYear(), 52, '2010 has 52 iso weeks'); - assert.equal(moment([2011]).isoWeeksInYear(), 52, '2011 has 52 iso weeks'); - assert.equal(moment([2012]).isoWeeksInYear(), 52, '2012 has 52 iso weeks'); - assert.equal(moment([2013]).isoWeeksInYear(), 52, '2013 has 52 iso weeks'); - assert.equal(moment([2014]).isoWeeksInYear(), 52, '2014 has 52 iso weeks'); - assert.equal(moment([2015]).isoWeeksInYear(), 53, '2015 has 53 iso weeks'); -}); - -test('weeksInYear doy/dow = 1/4', function (assert) { - moment.locale('1/4', {week: {dow: 1, doy: 4}}); - - assert.equal(moment([2004]).weeksInYear(), 53, '2004 has 53 weeks'); - assert.equal(moment([2005]).weeksInYear(), 52, '2005 has 53 weeks'); - assert.equal(moment([2006]).weeksInYear(), 52, '2006 has 53 weeks'); - assert.equal(moment([2007]).weeksInYear(), 52, '2007 has 52 weeks'); - assert.equal(moment([2008]).weeksInYear(), 52, '2008 has 53 weeks'); - assert.equal(moment([2009]).weeksInYear(), 53, '2009 has 53 weeks'); - assert.equal(moment([2010]).weeksInYear(), 52, '2010 has 52 weeks'); - assert.equal(moment([2011]).weeksInYear(), 52, '2011 has 52 weeks'); - assert.equal(moment([2012]).weeksInYear(), 52, '2012 has 52 weeks'); - assert.equal(moment([2013]).weeksInYear(), 52, '2013 has 52 weeks'); - assert.equal(moment([2014]).weeksInYear(), 52, '2014 has 52 weeks'); - assert.equal(moment([2015]).weeksInYear(), 53, '2015 has 53 weeks'); -}); - -test('weeksInYear doy/dow = 6/12', function (assert) { - moment.locale('6/12', {week: {dow: 6, doy: 12}}); - - assert.equal(moment([2004]).weeksInYear(), 53, '2004 has 53 weeks'); - assert.equal(moment([2005]).weeksInYear(), 52, '2005 has 53 weeks'); - assert.equal(moment([2006]).weeksInYear(), 52, '2006 has 53 weeks'); - assert.equal(moment([2007]).weeksInYear(), 52, '2007 has 52 weeks'); - assert.equal(moment([2008]).weeksInYear(), 52, '2008 has 53 weeks'); - assert.equal(moment([2009]).weeksInYear(), 52, '2009 has 53 weeks'); - assert.equal(moment([2010]).weeksInYear(), 53, '2010 has 52 weeks'); - assert.equal(moment([2011]).weeksInYear(), 52, '2011 has 52 weeks'); - assert.equal(moment([2012]).weeksInYear(), 52, '2012 has 52 weeks'); - assert.equal(moment([2013]).weeksInYear(), 52, '2013 has 52 weeks'); - assert.equal(moment([2014]).weeksInYear(), 52, '2014 has 52 weeks'); - assert.equal(moment([2015]).weeksInYear(), 52, '2015 has 53 weeks'); -}); - -test('weeksInYear doy/dow = 1/7', function (assert) { - moment.locale('1/7', {week: {dow: 1, doy: 7}}); - - assert.equal(moment([2004]).weeksInYear(), 52, '2004 has 53 weeks'); - assert.equal(moment([2005]).weeksInYear(), 52, '2005 has 53 weeks'); - assert.equal(moment([2006]).weeksInYear(), 53, '2006 has 53 weeks'); - assert.equal(moment([2007]).weeksInYear(), 52, '2007 has 52 weeks'); - assert.equal(moment([2008]).weeksInYear(), 52, '2008 has 53 weeks'); - assert.equal(moment([2009]).weeksInYear(), 52, '2009 has 53 weeks'); - assert.equal(moment([2010]).weeksInYear(), 52, '2010 has 52 weeks'); - assert.equal(moment([2011]).weeksInYear(), 52, '2011 has 52 weeks'); - assert.equal(moment([2012]).weeksInYear(), 53, '2012 has 52 weeks'); - assert.equal(moment([2013]).weeksInYear(), 52, '2013 has 52 weeks'); - assert.equal(moment([2014]).weeksInYear(), 52, '2014 has 52 weeks'); - assert.equal(moment([2015]).weeksInYear(), 52, '2015 has 53 weeks'); -}); - -test('weeksInYear doy/dow = 0/6', function (assert) { - moment.locale('0/6', {week: {dow: 0, doy: 6}}); - - assert.equal(moment([2004]).weeksInYear(), 52, '2004 has 53 weeks'); - assert.equal(moment([2005]).weeksInYear(), 53, '2005 has 53 weeks'); - assert.equal(moment([2006]).weeksInYear(), 52, '2006 has 53 weeks'); - assert.equal(moment([2007]).weeksInYear(), 52, '2007 has 52 weeks'); - assert.equal(moment([2008]).weeksInYear(), 52, '2008 has 53 weeks'); - assert.equal(moment([2009]).weeksInYear(), 52, '2009 has 53 weeks'); - assert.equal(moment([2010]).weeksInYear(), 52, '2010 has 52 weeks'); - assert.equal(moment([2011]).weeksInYear(), 53, '2011 has 52 weeks'); - assert.equal(moment([2012]).weeksInYear(), 52, '2012 has 52 weeks'); - assert.equal(moment([2013]).weeksInYear(), 52, '2013 has 52 weeks'); - assert.equal(moment([2014]).weeksInYear(), 52, '2014 has 52 weeks'); - assert.equal(moment([2015]).weeksInYear(), 52, '2015 has 53 weeks'); -}); - -}))); - - -;(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' - && typeof require === 'function' ? factory(require('../../moment')) : - typeof define === 'function' && define.amd ? define(['../../moment'], factory) : - factory(global.moment) -}(this, (function (moment) { 'use strict'; - -function each(array, callback) { - var i; - for (i = 0; i < array.length; i++) { - callback(array[i], i, array); - } -} - -function objectKeys(obj) { - if (Object.keys) { - return Object.keys(obj); - } else { - // IE8 - var res = [], i; - for (i in obj) { - if (obj.hasOwnProperty(i)) { - res.push(i); - } - } - return res; - } -} - -// Pick the first defined of two or three arguments. - -function defineCommonLocaleTests(locale, options) { - test('lenient day of month ordinal parsing', function (assert) { - var i, ordinalStr, testMoment; - for (i = 1; i <= 31; ++i) { - ordinalStr = moment([2014, 0, i]).format('YYYY MM Do'); - testMoment = moment(ordinalStr, 'YYYY MM Do'); - assert.equal(testMoment.year(), 2014, - 'lenient day of month ordinal parsing ' + i + ' year check'); - assert.equal(testMoment.month(), 0, - 'lenient day of month ordinal parsing ' + i + ' month check'); - assert.equal(testMoment.date(), i, - 'lenient day of month ordinal parsing ' + i + ' date check'); - } - }); - - test('lenient day of month ordinal parsing of number', function (assert) { - var i, testMoment; - for (i = 1; i <= 31; ++i) { - testMoment = moment('2014 01 ' + i, 'YYYY MM Do'); - assert.equal(testMoment.year(), 2014, - 'lenient day of month ordinal parsing of number ' + i + ' year check'); - assert.equal(testMoment.month(), 0, - 'lenient day of month ordinal parsing of number ' + i + ' month check'); - assert.equal(testMoment.date(), i, - 'lenient day of month ordinal parsing of number ' + i + ' date check'); - } - }); - - test('strict day of month ordinal parsing', function (assert) { - var i, ordinalStr, testMoment; - for (i = 1; i <= 31; ++i) { - ordinalStr = moment([2014, 0, i]).format('YYYY MM Do'); - testMoment = moment(ordinalStr, 'YYYY MM Do', true); - assert.ok(testMoment.isValid(), 'strict day of month ordinal parsing ' + i); - } - }); - - test('meridiem invariant', function (assert) { - var h, m, t1, t2; - for (h = 0; h < 24; ++h) { - for (m = 0; m < 60; m += 15) { - t1 = moment.utc([2000, 0, 1, h, m]); - t2 = moment.utc(t1.format('A h:mm'), 'A h:mm'); - assert.equal(t2.format('HH:mm'), t1.format('HH:mm'), - 'meridiem at ' + t1.format('HH:mm')); - } - } - }); - - test('date format correctness', function (assert) { - var data, tokens; - data = moment.localeData()._longDateFormat; - tokens = objectKeys(data); - each(tokens, function (srchToken) { - // Check each format string to make sure it does not contain any - // tokens that need to be expanded. - each(tokens, function (baseToken) { - // strip escaped sequences - var format = data[baseToken].replace(/(\[[^\]]*\])/g, ''); - assert.equal(false, !!~format.indexOf(srchToken), - 'contains ' + srchToken + ' in ' + baseToken); - }); - }); - }); - - test('month parsing correctness', function (assert) { - var i, m; - - if (locale === 'tr') { - // I can't fix it :( - expect(0); - return; - } - function tester(format) { - var r; - r = moment(m.format(format), format); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format); - r = moment(m.format(format).toLocaleUpperCase(), format); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' upper'); - r = moment(m.format(format).toLocaleLowerCase(), format); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' lower'); - - r = moment(m.format(format), format, true); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' strict'); - r = moment(m.format(format).toLocaleUpperCase(), format, true); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' upper strict'); - r = moment(m.format(format).toLocaleLowerCase(), format, true); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' lower strict'); - } - - for (i = 0; i < 12; ++i) { - m = moment([2015, i, 15, 18]); - tester('MMM'); - tester('MMM.'); - tester('MMMM'); - tester('MMMM.'); - } - }); - - test('weekday parsing correctness', function (assert) { - var i, m; - - if (locale === 'tr' || locale === 'az' || locale === 'ro') { - // tr, az: There is a lower-case letter (ı), that converted to - // upper then lower changes to i - // ro: there is the letter ț which behaves weird under IE8 - expect(0); - return; - } - function tester(format) { - var r, baseMsg = 'weekday ' + m.weekday() + ' fmt ' + format + ' ' + m.toISOString(); - r = moment(m.format(format), format); - assert.equal(r.weekday(), m.weekday(), baseMsg); - r = moment(m.format(format).toLocaleUpperCase(), format); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' upper'); - r = moment(m.format(format).toLocaleLowerCase(), format); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' lower'); - - r = moment(m.format(format), format, true); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' strict'); - r = moment(m.format(format).toLocaleUpperCase(), format, true); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' upper strict'); - r = moment(m.format(format).toLocaleLowerCase(), format, true); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' lower strict'); - } - - for (i = 0; i < 7; ++i) { - m = moment.utc([2015, 0, i + 1, 18]); - tester('dd'); - tester('ddd'); - tester('dddd'); - } - }); - - test('valid localeData', function (assert) { - assert.equal(moment().localeData().months().length, 12, 'months should return 12 months'); - assert.equal(moment().localeData().monthsShort().length, 12, 'monthsShort should return 12 months'); - assert.equal(moment().localeData().weekdays().length, 7, 'weekdays should return 7 days'); - assert.equal(moment().localeData().weekdaysShort().length, 7, 'weekdaysShort should return 7 days'); - assert.equal(moment().localeData().weekdaysMin().length, 7, 'monthsShort should return 7 days'); - }); -} - -function setupDeprecationHandler(test, moment$$1, scope) { - test._expectedDeprecations = null; - test._observedDeprecations = null; - test._oldSupress = moment$$1.suppressDeprecationWarnings; - moment$$1.suppressDeprecationWarnings = true; - test.expectedDeprecations = function () { - test._expectedDeprecations = arguments; - test._observedDeprecations = []; - }; - moment$$1.deprecationHandler = function (name, msg) { - var deprecationId = matchedDeprecation(name, msg, test._expectedDeprecations); - if (deprecationId === -1) { - throw new Error('Unexpected deprecation thrown name=' + - name + ' msg=' + msg); - } - test._observedDeprecations[deprecationId] = 1; - }; -} - -function teardownDeprecationHandler(test, moment$$1, scope) { - moment$$1.suppressDeprecationWarnings = test._oldSupress; - - if (test._expectedDeprecations != null) { - var missedDeprecations = []; - each(test._expectedDeprecations, function (deprecationPattern, id) { - if (test._observedDeprecations[id] !== 1) { - missedDeprecations.push(deprecationPattern); - } - }); - if (missedDeprecations.length !== 0) { - throw new Error('Expected deprecation warnings did not happen: ' + - missedDeprecations.join(' ')); - } - } -} - -function matchedDeprecation(name, msg, deprecations) { - if (deprecations == null) { - return -1; - } - for (var i = 0; i < deprecations.length; ++i) { - if (name != null && name === deprecations[i]) { - return i; - } - if (msg != null && msg.substring(0, deprecations[i].length) === deprecations[i]) { - return i; - } - } - return -1; -} - -/*global QUnit:false*/ - -var test = QUnit.test; - -var expect = QUnit.expect; - -function module$1 (name, lifecycle) { - QUnit.module(name, { - setup : function () { - moment.locale('en'); - moment.createFromInputFallback = function (config) { - throw new Error('input not handled by moment: ' + config._i); - }; - setupDeprecationHandler(test, moment, 'core'); - if (lifecycle && lifecycle.setup) { - lifecycle.setup(); - } - }, - teardown : function () { - teardownDeprecationHandler(test, moment, 'core'); - if (lifecycle && lifecycle.teardown) { - lifecycle.teardown(); - } - } - }); -} - -function isNearSpringDST() { - return moment().subtract(1, 'day').utcOffset() !== moment().add(1, 'day').utcOffset(); -} - -module$1('zone switching'); - -test('local to utc, keepLocalTime = true', function (assert) { - var m = moment(), - fmt = 'YYYY-DD-MM HH:mm:ss'; - assert.equal(m.clone().utc(true).format(fmt), m.format(fmt), 'local to utc failed to keep local time'); -}); - -test('local to utc, keepLocalTime = false', function (assert) { - var m = moment(); - assert.equal(m.clone().utc().valueOf(), m.valueOf(), 'local to utc failed to keep utc time (implicit)'); - assert.equal(m.clone().utc(false).valueOf(), m.valueOf(), 'local to utc failed to keep utc time (explicit)'); -}); - -test('local to zone, keepLocalTime = true', function (assert) { - test.expectedDeprecations('moment().zone'); - var m = moment(), - fmt = 'YYYY-DD-MM HH:mm:ss', - z; - - // Apparently there is -12:00 and +14:00 - // https://en.wikipedia.org/wiki/UTC+14:00 - // https://en.wikipedia.org/wiki/UTC-12:00 - for (z = -12; z <= 14; ++z) { - assert.equal(m.clone().zone(z * 60, true).format(fmt), m.format(fmt), - 'local to zone(' + z + ':00) failed to keep local time'); - } -}); - -test('local to zone, keepLocalTime = false', function (assert) { - test.expectedDeprecations('moment().zone'); - var m = moment(), - z; - - // Apparently there is -12:00 and +14:00 - // https://en.wikipedia.org/wiki/UTC+14:00 - // https://en.wikipedia.org/wiki/UTC-12:00 - for (z = -12; z <= 14; ++z) { - assert.equal(m.clone().zone(z * 60).valueOf(), m.valueOf(), - 'local to zone(' + z + ':00) failed to keep utc time (implicit)'); - assert.equal(m.clone().zone(z * 60, false).valueOf(), m.valueOf(), - 'local to zone(' + z + ':00) failed to keep utc time (explicit)'); - } -}); - -test('utc to local, keepLocalTime = true', function (assert) { - // Don't test near the spring DST transition - if (isNearSpringDST()) { - expect(0); - return; - } - - var um = moment.utc(), - fmt = 'YYYY-DD-MM HH:mm:ss'; - - assert.equal(um.clone().local(true).format(fmt), um.format(fmt), 'utc to local failed to keep local time'); -}); - -test('utc to local, keepLocalTime = false', function (assert) { - var um = moment.utc(); - assert.equal(um.clone().local().valueOf(), um.valueOf(), 'utc to local failed to keep utc time (implicit)'); - assert.equal(um.clone().local(false).valueOf(), um.valueOf(), 'utc to local failed to keep utc time (explicit)'); -}); - -test('zone to local, keepLocalTime = true', function (assert) { - // Don't test near the spring DST transition - if (isNearSpringDST()) { - expect(0); - return; - } - - test.expectedDeprecations('moment().zone'); - - var m = moment(), - fmt = 'YYYY-DD-MM HH:mm:ss', - z; - - // Apparently there is -12:00 and +14:00 - // https://en.wikipedia.org/wiki/UTC+14:00 - // https://en.wikipedia.org/wiki/UTC-12:00 - for (z = -12; z <= 14; ++z) { - m.zone(z * 60); - - assert.equal(m.clone().local(true).format(fmt), m.format(fmt), - 'zone(' + z + ':00) to local failed to keep local time'); - } -}); - -test('zone to local, keepLocalTime = false', function (assert) { - test.expectedDeprecations('moment().zone'); - var m = moment(), - z; - - // Apparently there is -12:00 and +14:00 - // https://en.wikipedia.org/wiki/UTC+14:00 - // https://en.wikipedia.org/wiki/UTC-12:00 - for (z = -12; z <= 14; ++z) { - m.zone(z * 60); - - assert.equal(m.clone().local(false).valueOf(), m.valueOf(), - 'zone(' + z + ':00) to local failed to keep utc time (explicit)'); - assert.equal(m.clone().local().valueOf(), m.valueOf(), - 'zone(' + z + ':00) to local failed to keep utc time (implicit)'); - } -}); - -}))); - - -;(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' - && typeof require === 'function' ? factory(require('../../moment')) : - typeof define === 'function' && define.amd ? define(['../../moment'], factory) : - factory(global.moment) -}(this, (function (moment) { 'use strict'; - -function each(array, callback) { - var i; - for (i = 0; i < array.length; i++) { - callback(array[i], i, array); - } -} - -function objectKeys(obj) { - if (Object.keys) { - return Object.keys(obj); - } else { - // IE8 - var res = [], i; - for (i in obj) { - if (obj.hasOwnProperty(i)) { - res.push(i); - } - } - return res; - } -} - -// Pick the first defined of two or three arguments. - -function defineCommonLocaleTests(locale, options) { - test('lenient day of month ordinal parsing', function (assert) { - var i, ordinalStr, testMoment; - for (i = 1; i <= 31; ++i) { - ordinalStr = moment([2014, 0, i]).format('YYYY MM Do'); - testMoment = moment(ordinalStr, 'YYYY MM Do'); - assert.equal(testMoment.year(), 2014, - 'lenient day of month ordinal parsing ' + i + ' year check'); - assert.equal(testMoment.month(), 0, - 'lenient day of month ordinal parsing ' + i + ' month check'); - assert.equal(testMoment.date(), i, - 'lenient day of month ordinal parsing ' + i + ' date check'); - } - }); - - test('lenient day of month ordinal parsing of number', function (assert) { - var i, testMoment; - for (i = 1; i <= 31; ++i) { - testMoment = moment('2014 01 ' + i, 'YYYY MM Do'); - assert.equal(testMoment.year(), 2014, - 'lenient day of month ordinal parsing of number ' + i + ' year check'); - assert.equal(testMoment.month(), 0, - 'lenient day of month ordinal parsing of number ' + i + ' month check'); - assert.equal(testMoment.date(), i, - 'lenient day of month ordinal parsing of number ' + i + ' date check'); - } - }); - - test('strict day of month ordinal parsing', function (assert) { - var i, ordinalStr, testMoment; - for (i = 1; i <= 31; ++i) { - ordinalStr = moment([2014, 0, i]).format('YYYY MM Do'); - testMoment = moment(ordinalStr, 'YYYY MM Do', true); - assert.ok(testMoment.isValid(), 'strict day of month ordinal parsing ' + i); - } - }); - - test('meridiem invariant', function (assert) { - var h, m, t1, t2; - for (h = 0; h < 24; ++h) { - for (m = 0; m < 60; m += 15) { - t1 = moment.utc([2000, 0, 1, h, m]); - t2 = moment.utc(t1.format('A h:mm'), 'A h:mm'); - assert.equal(t2.format('HH:mm'), t1.format('HH:mm'), - 'meridiem at ' + t1.format('HH:mm')); - } - } - }); - - test('date format correctness', function (assert) { - var data, tokens; - data = moment.localeData()._longDateFormat; - tokens = objectKeys(data); - each(tokens, function (srchToken) { - // Check each format string to make sure it does not contain any - // tokens that need to be expanded. - each(tokens, function (baseToken) { - // strip escaped sequences - var format = data[baseToken].replace(/(\[[^\]]*\])/g, ''); - assert.equal(false, !!~format.indexOf(srchToken), - 'contains ' + srchToken + ' in ' + baseToken); - }); - }); - }); - - test('month parsing correctness', function (assert) { - var i, m; - - if (locale === 'tr') { - // I can't fix it :( - expect(0); - return; - } - function tester(format) { - var r; - r = moment(m.format(format), format); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format); - r = moment(m.format(format).toLocaleUpperCase(), format); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' upper'); - r = moment(m.format(format).toLocaleLowerCase(), format); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' lower'); - - r = moment(m.format(format), format, true); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' strict'); - r = moment(m.format(format).toLocaleUpperCase(), format, true); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' upper strict'); - r = moment(m.format(format).toLocaleLowerCase(), format, true); - assert.equal(r.month(), m.month(), 'month ' + i + ' fmt ' + format + ' lower strict'); - } - - for (i = 0; i < 12; ++i) { - m = moment([2015, i, 15, 18]); - tester('MMM'); - tester('MMM.'); - tester('MMMM'); - tester('MMMM.'); - } - }); - - test('weekday parsing correctness', function (assert) { - var i, m; - - if (locale === 'tr' || locale === 'az' || locale === 'ro') { - // tr, az: There is a lower-case letter (ı), that converted to - // upper then lower changes to i - // ro: there is the letter ț which behaves weird under IE8 - expect(0); - return; - } - function tester(format) { - var r, baseMsg = 'weekday ' + m.weekday() + ' fmt ' + format + ' ' + m.toISOString(); - r = moment(m.format(format), format); - assert.equal(r.weekday(), m.weekday(), baseMsg); - r = moment(m.format(format).toLocaleUpperCase(), format); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' upper'); - r = moment(m.format(format).toLocaleLowerCase(), format); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' lower'); - - r = moment(m.format(format), format, true); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' strict'); - r = moment(m.format(format).toLocaleUpperCase(), format, true); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' upper strict'); - r = moment(m.format(format).toLocaleLowerCase(), format, true); - assert.equal(r.weekday(), m.weekday(), baseMsg + ' lower strict'); - } - - for (i = 0; i < 7; ++i) { - m = moment.utc([2015, 0, i + 1, 18]); - tester('dd'); - tester('ddd'); - tester('dddd'); - } - }); - - test('valid localeData', function (assert) { - assert.equal(moment().localeData().months().length, 12, 'months should return 12 months'); - assert.equal(moment().localeData().monthsShort().length, 12, 'monthsShort should return 12 months'); - assert.equal(moment().localeData().weekdays().length, 7, 'weekdays should return 7 days'); - assert.equal(moment().localeData().weekdaysShort().length, 7, 'weekdaysShort should return 7 days'); - assert.equal(moment().localeData().weekdaysMin().length, 7, 'monthsShort should return 7 days'); - }); -} - -function setupDeprecationHandler(test, moment$$1, scope) { - test._expectedDeprecations = null; - test._observedDeprecations = null; - test._oldSupress = moment$$1.suppressDeprecationWarnings; - moment$$1.suppressDeprecationWarnings = true; - test.expectedDeprecations = function () { - test._expectedDeprecations = arguments; - test._observedDeprecations = []; - }; - moment$$1.deprecationHandler = function (name, msg) { - var deprecationId = matchedDeprecation(name, msg, test._expectedDeprecations); - if (deprecationId === -1) { - throw new Error('Unexpected deprecation thrown name=' + - name + ' msg=' + msg); - } - test._observedDeprecations[deprecationId] = 1; - }; -} - -function teardownDeprecationHandler(test, moment$$1, scope) { - moment$$1.suppressDeprecationWarnings = test._oldSupress; - - if (test._expectedDeprecations != null) { - var missedDeprecations = []; - each(test._expectedDeprecations, function (deprecationPattern, id) { - if (test._observedDeprecations[id] !== 1) { - missedDeprecations.push(deprecationPattern); - } - }); - if (missedDeprecations.length !== 0) { - throw new Error('Expected deprecation warnings did not happen: ' + - missedDeprecations.join(' ')); - } - } -} - -function matchedDeprecation(name, msg, deprecations) { - if (deprecations == null) { - return -1; - } - for (var i = 0; i < deprecations.length; ++i) { - if (name != null && name === deprecations[i]) { - return i; - } - if (msg != null && msg.substring(0, deprecations[i].length) === deprecations[i]) { - return i; - } - } - return -1; -} - -/*global QUnit:false*/ - -var test = QUnit.test; - -var expect = QUnit.expect; - -function module$1 (name, lifecycle) { - QUnit.module(name, { - setup : function () { - moment.locale('en'); - moment.createFromInputFallback = function (config) { - throw new Error('input not handled by moment: ' + config._i); - }; - setupDeprecationHandler(test, moment, 'core'); - if (lifecycle && lifecycle.setup) { - lifecycle.setup(); - } - }, - teardown : function () { - teardownDeprecationHandler(test, moment, 'core'); - if (lifecycle && lifecycle.teardown) { - lifecycle.teardown(); - } - } - }); -} - -module$1('zones', { - 'setup': function () { - test.expectedDeprecations('moment().zone'); - } -}); - -test('set zone', function (assert) { - var zone = moment(); - - zone.zone(0); - assert.equal(zone.zone(), 0, 'should be able to set the zone to 0'); - - zone.zone(60); - assert.equal(zone.zone(), 60, 'should be able to set the zone to 60'); - - zone.zone(-60); - assert.equal(zone.zone(), -60, 'should be able to set the zone to -60'); -}); - -test('set zone shorthand', function (assert) { - var zone = moment(); - - zone.zone(1); - assert.equal(zone.zone(), 60, 'setting the zone to 1 should imply hours and convert to 60'); - - zone.zone(-1); - assert.equal(zone.zone(), -60, 'setting the zone to -1 should imply hours and convert to -60'); - - zone.zone(15); - assert.equal(zone.zone(), 900, 'setting the zone to 15 should imply hours and convert to 900'); - - zone.zone(-15); - assert.equal(zone.zone(), -900, 'setting the zone to -15 should imply hours and convert to -900'); - - zone.zone(16); - assert.equal(zone.zone(), 16, 'setting the zone to 16 should imply minutes'); - - zone.zone(-16); - assert.equal(zone.zone(), -16, 'setting the zone to -16 should imply minutes'); -}); - -test('set zone with string', function (assert) { - var zone = moment(); - - zone.zone('+00:00'); - assert.equal(zone.zone(), 0, 'set the zone with a timezone string'); - - zone.zone('2013-03-07T07:00:00-08:00'); - assert.equal(zone.zone(), 480, 'set the zone with a string that does not begin with the timezone'); - - zone.zone('2013-03-07T07:00:00+0100'); - assert.equal(zone.zone(), -60, 'set the zone with a string that uses the +0000 syntax'); - - zone.zone('2013-03-07T07:00:00+02'); - assert.equal(zone.zone(), -120, 'set the zone with a string that uses the +00 syntax'); - - zone.zone('03-07-2013T07:00:00-08:00'); - assert.equal(zone.zone(), 480, 'set the zone with a string with a non-ISO 8601 date'); -}); - -test('change hours when changing the zone', function (assert) { - var zone = moment.utc([2000, 0, 1, 6]); - - zone.zone(0); - assert.equal(zone.hour(), 6, 'UTC 6AM should be 6AM at +0000'); - - zone.zone(60); - assert.equal(zone.hour(), 5, 'UTC 6AM should be 5AM at -0100'); - - zone.zone(-60); - assert.equal(zone.hour(), 7, 'UTC 6AM should be 7AM at +0100'); -}); - -test('change minutes when changing the zone', function (assert) { - var zone = moment.utc([2000, 0, 1, 6, 31]); - - zone.zone(0); - assert.equal(zone.format('HH:mm'), '06:31', 'UTC 6:31AM should be 6:31AM at +0000'); - - zone.zone(30); - assert.equal(zone.format('HH:mm'), '06:01', 'UTC 6:31AM should be 6:01AM at -0030'); - - zone.zone(-30); - assert.equal(zone.format('HH:mm'), '07:01', 'UTC 6:31AM should be 7:01AM at +0030'); - - zone.zone(1380); - assert.equal(zone.format('HH:mm'), '07:31', 'UTC 6:31AM should be 7:31AM at +1380'); -}); - -test('distance from the unix epoch', function (assert) { - var zoneA = moment(), - zoneB = moment(zoneA), - zoneC = moment(zoneA), - zoneD = moment(zoneA), - zoneE = moment(zoneA); - - zoneB.utc(); - assert.equal(+zoneA, +zoneB, 'moment should equal moment.utc'); - - zoneC.zone(-60); - assert.equal(+zoneA, +zoneC, 'moment should equal moment.zone(-60)'); - - zoneD.zone(480); - assert.equal(+zoneA, +zoneD, 'moment should equal moment.zone(480)'); - - zoneE.zone(1000); - assert.equal(+zoneA, +zoneE, 'moment should equal moment.zone(1000)'); -}); - -test('update offset after changing any values', function (assert) { - var oldOffset = moment.updateOffset, - m = moment.utc([2000, 6, 1]); - - moment.updateOffset = function (mom, keepTime) { - if (mom.__doChange) { - if (+mom > 962409600000) { - mom.zone(120, keepTime); - } else { - mom.zone(60, keepTime); - } - } - }; - - assert.equal(m.format('ZZ'), '+0000', 'should be at +0000'); - assert.equal(m.format('HH:mm'), '00:00', 'should start 12AM at +0000 timezone'); - - m.__doChange = true; - m.add(1, 'h'); - - assert.equal(m.format('ZZ'), '-0200', 'should be at -0200'); - assert.equal(m.format('HH:mm'), '23:00', '1AM at +0000 should be 11PM at -0200 timezone'); - - m.subtract(1, 'h'); - - assert.equal(m.format('ZZ'), '-0100', 'should be at -0100'); - assert.equal(m.format('HH:mm'), '23:00', '12AM at +0000 should be 11PM at -0100 timezone'); - - moment.updateOffset = oldOffset; -}); - -test('getters and setters', function (assert) { - var a = moment([2011, 5, 20]); - - assert.equal(a.clone().zone(120).year(2012).year(), 2012, 'should get and set year correctly'); - assert.equal(a.clone().zone(120).month(1).month(), 1, 'should get and set month correctly'); - assert.equal(a.clone().zone(120).date(2).date(), 2, 'should get and set date correctly'); - assert.equal(a.clone().zone(120).day(1).day(), 1, 'should get and set day correctly'); - assert.equal(a.clone().zone(120).hour(1).hour(), 1, 'should get and set hour correctly'); - assert.equal(a.clone().zone(120).minute(1).minute(), 1, 'should get and set minute correctly'); -}); - -test('getters', function (assert) { - var a = moment.utc([2012, 0, 1, 0, 0, 0]); - - assert.equal(a.clone().zone(120).year(), 2011, 'should get year correctly'); - assert.equal(a.clone().zone(120).month(), 11, 'should get month correctly'); - assert.equal(a.clone().zone(120).date(), 31, 'should get date correctly'); - assert.equal(a.clone().zone(120).hour(), 22, 'should get hour correctly'); - assert.equal(a.clone().zone(120).minute(), 0, 'should get minute correctly'); - - assert.equal(a.clone().zone(-120).year(), 2012, 'should get year correctly'); - assert.equal(a.clone().zone(-120).month(), 0, 'should get month correctly'); - assert.equal(a.clone().zone(-120).date(), 1, 'should get date correctly'); - assert.equal(a.clone().zone(-120).hour(), 2, 'should get hour correctly'); - assert.equal(a.clone().zone(-120).minute(), 0, 'should get minute correctly'); - - assert.equal(a.clone().zone(-90).year(), 2012, 'should get year correctly'); - assert.equal(a.clone().zone(-90).month(), 0, 'should get month correctly'); - assert.equal(a.clone().zone(-90).date(), 1, 'should get date correctly'); - assert.equal(a.clone().zone(-90).hour(), 1, 'should get hour correctly'); - assert.equal(a.clone().zone(-90).minute(), 30, 'should get minute correctly'); -}); - -test('from', function (assert) { - var zoneA = moment(), - zoneB = moment(zoneA).zone(720), - zoneC = moment(zoneA).zone(360), - zoneD = moment(zoneA).zone(-690), - other = moment(zoneA).add(35, 'm'); - - assert.equal(zoneA.from(other), zoneB.from(other), 'moment#from should be the same in all zones'); - assert.equal(zoneA.from(other), zoneC.from(other), 'moment#from should be the same in all zones'); - assert.equal(zoneA.from(other), zoneD.from(other), 'moment#from should be the same in all zones'); -}); - -test('diff', function (assert) { - var zoneA = moment(), - zoneB = moment(zoneA).zone(720), - zoneC = moment(zoneA).zone(360), - zoneD = moment(zoneA).zone(-690), - other = moment(zoneA).add(35, 'm'); - - assert.equal(zoneA.diff(other), zoneB.diff(other), 'moment#diff should be the same in all zones'); - assert.equal(zoneA.diff(other), zoneC.diff(other), 'moment#diff should be the same in all zones'); - assert.equal(zoneA.diff(other), zoneD.diff(other), 'moment#diff should be the same in all zones'); - - assert.equal(zoneA.diff(other, 'minute', true), zoneB.diff(other, 'minute', true), 'moment#diff should be the same in all zones'); - assert.equal(zoneA.diff(other, 'minute', true), zoneC.diff(other, 'minute', true), 'moment#diff should be the same in all zones'); - assert.equal(zoneA.diff(other, 'minute', true), zoneD.diff(other, 'minute', true), 'moment#diff should be the same in all zones'); - - assert.equal(zoneA.diff(other, 'hour', true), zoneB.diff(other, 'hour', true), 'moment#diff should be the same in all zones'); - assert.equal(zoneA.diff(other, 'hour', true), zoneC.diff(other, 'hour', true), 'moment#diff should be the same in all zones'); - assert.equal(zoneA.diff(other, 'hour', true), zoneD.diff(other, 'hour', true), 'moment#diff should be the same in all zones'); -}); - -test('unix offset and timestamp', function (assert) { - var zoneA = moment(), - zoneB = moment(zoneA).zone(720), - zoneC = moment(zoneA).zone(360), - zoneD = moment(zoneA).zone(-690); - - assert.equal(zoneA.unix(), zoneB.unix(), 'moment#unix should be the same in all zones'); - assert.equal(zoneA.unix(), zoneC.unix(), 'moment#unix should be the same in all zones'); - assert.equal(zoneA.unix(), zoneD.unix(), 'moment#unix should be the same in all zones'); - - assert.equal(+zoneA, +zoneB, 'moment#valueOf should be the same in all zones'); - assert.equal(+zoneA, +zoneC, 'moment#valueOf should be the same in all zones'); - assert.equal(+zoneA, +zoneD, 'moment#valueOf should be the same in all zones'); -}); - -test('cloning', function (assert) { - assert.equal(moment().zone(120).clone().zone(), 120, 'explicit cloning should retain the zone'); - assert.equal(moment().zone(-120).clone().zone(), -120, 'explicit cloning should retain the zone'); - assert.equal(moment(moment().zone(120)).zone(), 120, 'implicit cloning should retain the zone'); - assert.equal(moment(moment().zone(-120)).zone(), -120, 'implicit cloning should retain the zone'); -}); - -test('start of / end of', function (assert) { - var a = moment.utc([2010, 1, 2, 0, 0, 0]).zone(450); - - assert.equal(a.clone().startOf('day').hour(), 0, 'start of day should work on moments with a zone'); - assert.equal(a.clone().startOf('day').minute(), 0, 'start of day should work on moments with a zone'); - assert.equal(a.clone().startOf('hour').minute(), 0, 'start of hour should work on moments with a zone'); - - assert.equal(a.clone().endOf('day').hour(), 23, 'end of day should work on moments with a zone'); - assert.equal(a.clone().endOf('day').minute(), 59, 'end of day should work on moments with a zone'); - assert.equal(a.clone().endOf('hour').minute(), 59, 'end of hour should work on moments with a zone'); -}); - -test('reset zone with moment#utc', function (assert) { - var a = moment.utc([2012]).zone(480); - - assert.equal(a.clone().hour(), 16, 'different zone should have different hour'); - assert.equal(a.clone().utc().hour(), 0, 'calling moment#utc should reset the offset'); -}); - -test('reset zone with moment#local', function (assert) { - var a = moment([2012]).zone(480); - - assert.equal(a.clone().local().hour(), 0, 'calling moment#local should reset the offset'); -}); - -test('toDate', function (assert) { - var zoneA = new Date(), - zoneB = moment(zoneA).zone(720).toDate(), - zoneC = moment(zoneA).zone(360).toDate(), - zoneD = moment(zoneA).zone(-690).toDate(); - - assert.equal(+zoneA, +zoneB, 'moment#toDate should output a date with the right unix timestamp'); - assert.equal(+zoneA, +zoneC, 'moment#toDate should output a date with the right unix timestamp'); - assert.equal(+zoneA, +zoneD, 'moment#toDate should output a date with the right unix timestamp'); -}); - -test('same / before / after', function (assert) { - var zoneA = moment().utc(), - zoneB = moment(zoneA).zone(120), - zoneC = moment(zoneA).zone(-120); - - assert.ok(zoneA.isSame(zoneB), 'two moments with different offsets should be the same'); - assert.ok(zoneA.isSame(zoneC), 'two moments with different offsets should be the same'); - - assert.ok(zoneA.isSame(zoneB, 'hour'), 'two moments with different offsets should be the same hour'); - assert.ok(zoneA.isSame(zoneC, 'hour'), 'two moments with different offsets should be the same hour'); - - zoneA.add(1, 'hour'); - - assert.ok(zoneA.isAfter(zoneB), 'isAfter should work with two moments with different offsets'); - assert.ok(zoneA.isAfter(zoneC), 'isAfter should work with two moments with different offsets'); - - assert.ok(zoneA.isAfter(zoneB, 'hour'), 'isAfter:hour should work with two moments with different offsets'); - assert.ok(zoneA.isAfter(zoneC, 'hour'), 'isAfter:hour should work with two moments with different offsets'); - - zoneA.subtract(2, 'hour'); - - assert.ok(zoneA.isBefore(zoneB), 'isBefore should work with two moments with different offsets'); - assert.ok(zoneA.isBefore(zoneC), 'isBefore should work with two moments with different offsets'); - - assert.ok(zoneA.isBefore(zoneB, 'hour'), 'isBefore:hour should work with two moments with different offsets'); - assert.ok(zoneA.isBefore(zoneC, 'hour'), 'isBefore:hour should work with two moments with different offsets'); -}); - -test('add / subtract over dst', function (assert) { - var oldOffset = moment.updateOffset, - m = moment.utc([2000, 2, 31, 3]); - - moment.updateOffset = function (mom, keepTime) { - if (mom.clone().utc().month() > 2) { - mom.zone(-60, keepTime); - } else { - mom.zone(0, keepTime); - } - }; - - assert.equal(m.hour(), 3, 'should start at 00:00'); - - m.add(24, 'hour'); - - assert.equal(m.hour(), 4, 'adding 24 hours should disregard dst'); - - m.subtract(24, 'hour'); - - assert.equal(m.hour(), 3, 'subtracting 24 hours should disregard dst'); - - m.add(1, 'day'); - - assert.equal(m.hour(), 3, 'adding 1 day should have the same hour'); - - m.subtract(1, 'day'); - - assert.equal(m.hour(), 3, 'subtracting 1 day should have the same hour'); - - m.add(1, 'month'); - - assert.equal(m.hour(), 3, 'adding 1 month should have the same hour'); - - m.subtract(1, 'month'); - - assert.equal(m.hour(), 3, 'subtracting 1 month should have the same hour'); - - moment.updateOffset = oldOffset; -}); - -test('isDST', function (assert) { - var oldOffset = moment.updateOffset; - - moment.updateOffset = function (mom, keepTime) { - if (mom.month() > 2 && mom.month() < 9) { - mom.zone(-60, keepTime); - } else { - mom.zone(0, keepTime); - } - }; - - assert.ok(!moment().month(0).isDST(), 'Jan should not be summer dst'); - assert.ok(moment().month(6).isDST(), 'Jul should be summer dst'); - assert.ok(!moment().month(11).isDST(), 'Dec should not be summer dst'); - - moment.updateOffset = function (mom) { - if (mom.month() > 2 && mom.month() < 9) { - mom.zone(0); - } else { - mom.zone(-60); - } - }; - - assert.ok(moment().month(0).isDST(), 'Jan should be winter dst'); - assert.ok(!moment().month(6).isDST(), 'Jul should not be winter dst'); - assert.ok(moment().month(11).isDST(), 'Dec should be winter dst'); - - moment.updateOffset = oldOffset; -}); - -test('zone names', function (assert) { - test.expectedDeprecations(); - assert.equal(moment().zoneAbbr(), '', 'Local zone abbr should be empty'); - assert.equal(moment().format('z'), '', 'Local zone formatted abbr should be empty'); - assert.equal(moment().zoneName(), '', 'Local zone name should be empty'); - assert.equal(moment().format('zz'), '', 'Local zone formatted name should be empty'); - - assert.equal(moment.utc().zoneAbbr(), 'UTC', 'UTC zone abbr should be UTC'); - assert.equal(moment.utc().format('z'), 'UTC', 'UTC zone formatted abbr should be UTC'); - assert.equal(moment.utc().zoneName(), 'Coordinated Universal Time', 'UTC zone abbr should be Coordinated Universal Time'); - assert.equal(moment.utc().format('zz'), 'Coordinated Universal Time', 'UTC zone formatted abbr should be Coordinated Universal Time'); -}); - -test('hours alignment with UTC', function (assert) { - assert.equal(moment().zone(120).hasAlignedHourOffset(), true); - assert.equal(moment().zone(-180).hasAlignedHourOffset(), true); - assert.equal(moment().zone(90).hasAlignedHourOffset(), false); - assert.equal(moment().zone(-90).hasAlignedHourOffset(), false); -}); - -test('hours alignment with other zone', function (assert) { - var m = moment().zone(120); - - assert.equal(m.hasAlignedHourOffset(moment().zone(180)), true); - assert.equal(m.hasAlignedHourOffset(moment().zone(-180)), true); - assert.equal(m.hasAlignedHourOffset(moment().zone(90)), false); - assert.equal(m.hasAlignedHourOffset(moment().zone(-90)), false); - - m = moment().zone(90); - - assert.equal(m.hasAlignedHourOffset(moment().zone(180)), false); - assert.equal(m.hasAlignedHourOffset(moment().zone(-180)), false); - assert.equal(m.hasAlignedHourOffset(moment().zone(30)), true); - assert.equal(m.hasAlignedHourOffset(moment().zone(-30)), true); - - m = moment().zone(-60); - - assert.equal(m.hasAlignedHourOffset(moment().zone(180)), true); - assert.equal(m.hasAlignedHourOffset(moment().zone(-180)), true); - assert.equal(m.hasAlignedHourOffset(moment().zone(90)), false); - assert.equal(m.hasAlignedHourOffset(moment().zone(-90)), false); - - m = moment().zone(25); - - assert.equal(m.hasAlignedHourOffset(moment().zone(-35)), true); - assert.equal(m.hasAlignedHourOffset(moment().zone(85)), true); - - assert.equal(m.hasAlignedHourOffset(moment().zone(35)), false); - assert.equal(m.hasAlignedHourOffset(moment().zone(-85)), false); -}); - -test('parse zone', function (assert) { - var m = moment('2013-01-01T00:00:00-13:00').parseZone(); - assert.equal(m.zone(), 13 * 60); - assert.equal(m.hours(), 0); -}); - -test('parse zone static', function (assert) { - var m = moment.parseZone('2013-01-01T00:00:00-13:00'); - assert.equal(m.zone(), 13 * 60); - assert.equal(m.hours(), 0); -}); - -test('parse zone with more arguments', function (assert) { - test.expectedDeprecations(); - var m; - m = moment.parseZone('2013 01 01 05 -13:00', 'YYYY MM DD HH ZZ'); - assert.equal(m.format(), '2013-01-01T05:00:00-13:00', 'accept input and format'); - m = moment.parseZone('2013-01-01-13:00', 'YYYY MM DD ZZ', true); - assert.equal(m.isValid(), false, 'accept input, format and strict flag'); - m = moment.parseZone('2013-01-01-13:00', ['DD MM YYYY ZZ', 'YYYY MM DD ZZ']); - assert.equal(m.format(), '2013-01-01T00:00:00-13:00', 'accept input and array of formats'); -}); - -test('parse zone with a timezone from the format string', function (assert) { - var m = moment('11-12-2013 -0400 +1100', 'DD-MM-YYYY ZZ #####').parseZone(); - - assert.equal(m.zone(), 4 * 60); -}); - -test('parse zone without a timezone included in the format string', function (assert) { - var m = moment('11-12-2013 -0400 +1100', 'DD-MM-YYYY').parseZone(); - - assert.equal(m.zone(), -11 * 60); -}); - -test('timezone format', function (assert) { - assert.equal(moment().zone(-60).format('ZZ'), '+0100', '-60 -> +0100'); - assert.equal(moment().zone(-90).format('ZZ'), '+0130', '-90 -> +0130'); - assert.equal(moment().zone(-120).format('ZZ'), '+0200', '-120 -> +0200'); - - assert.equal(moment().zone(+60).format('ZZ'), '-0100', '+60 -> -0100'); - assert.equal(moment().zone(+90).format('ZZ'), '-0130', '+90 -> -0130'); - assert.equal(moment().zone(+120).format('ZZ'), '-0200', '+120 -> -0200'); -}); - -test('parse zone without a timezone', function (assert) { - test.expectedDeprecations(); - var m1 = moment.parseZone('2016-02-01T00:00:00'); - var m2 = moment.parseZone('2016-02-01T00:00:00Z'); - var m3 = moment.parseZone('2016-02-01T00:00:00+00:00'); //Someone might argue this is not necessary, you could even argue that is wrong being here. - var m4 = moment.parseZone('2016-02-01T00:00:00+0000'); //Someone might argue this is not necessary, you could even argue that is wrong being here. - assert.equal( - m1.format('M D YYYY HH:mm:ss ZZ'), - '2 1 2016 00:00:00 +0000', - 'Not providing a timezone should keep the time and change the zone to 0' - ); - assert.equal( - m2.format('M D YYYY HH:mm:ss ZZ'), - '2 1 2016 00:00:00 +0000', - 'Not providing a timezone should keep the time and change the zone to 0' - ); - assert.equal( - m3.format('M D YYYY HH:mm:ss ZZ'), - '2 1 2016 00:00:00 +0000', - 'Not providing a timezone should keep the time and change the zone to 0' - ); - assert.equal( - m4.format('M D YYYY HH:mm:ss ZZ'), - '2 1 2016 00:00:00 +0000', - 'Not providing a timezone should keep the time and change the zone to 0' - ); -}); - -test('parse zone with a minutes unit abs less than 16 should retain minutes', function (assert) { - //ensure when minutes are explicitly parsed, they are retained - //instead of converted to hours, even if less than 16 - var n = moment.parseZone('2013-01-01T00:00:00-00:15'); - assert.equal(n.utcOffset(), -15); - assert.equal(n.zone(), 15); - assert.equal(n.hour(), 0); - var o = moment.parseZone('2013-01-01T00:00:00+00:15'); - assert.equal(o.utcOffset(), 15); - assert.equal(o.zone(), -15); - assert.equal(o.hour(), 0); -}); - -}))); diff --git a/admin/bower_components/moment/moment.d.ts b/admin/bower_components/moment/moment.d.ts deleted file mode 100644 index 96cafaa..0000000 --- a/admin/bower_components/moment/moment.d.ts +++ /dev/null @@ -1,712 +0,0 @@ -declare function moment(inp?: moment.MomentInput, format?: moment.MomentFormatSpecification, strict?: boolean): moment.Moment; -declare function moment(inp?: moment.MomentInput, format?: moment.MomentFormatSpecification, language?: string, strict?: boolean): moment.Moment; - -declare namespace moment { - type RelativeTimeKey = 's' | 'm' | 'mm' | 'h' | 'hh' | 'd' | 'dd' | 'M' | 'MM' | 'y' | 'yy'; - type CalendarKey = 'sameDay' | 'nextDay' | 'lastDay' | 'nextWeek' | 'lastWeek' | 'sameElse' | string; - type LongDateFormatKey = 'LTS' | 'LT' | 'L' | 'LL' | 'LLL' | 'LLLL' | 'lts' | 'lt' | 'l' | 'll' | 'lll' | 'llll'; - - interface Locale { - calendar(key?: CalendarKey, m?: Moment, now?: Moment): string; - - longDateFormat(key: LongDateFormatKey): string; - invalidDate(): string; - ordinal(n: number): string; - - preparse(inp: string): string; - postformat(inp: string): string; - relativeTime(n: number, withoutSuffix: boolean, - key: RelativeTimeKey, isFuture: boolean): string; - pastFuture(diff: number, absRelTime: string): string; - set(config: Object): void; - - months(): string[]; - months(m: Moment, format?: string): string; - monthsShort(): string[]; - monthsShort(m: Moment, format?: string): string; - monthsParse(monthName: string, format: string, strict: boolean): number; - monthsRegex(strict: boolean): RegExp; - monthsShortRegex(strict: boolean): RegExp; - - week(m: Moment): number; - firstDayOfYear(): number; - firstDayOfWeek(): number; - - weekdays(): string[]; - weekdays(m: Moment, format?: string): string; - weekdaysMin(): string[]; - weekdaysMin(m: Moment): string; - weekdaysShort(): string[]; - weekdaysShort(m: Moment): string; - weekdaysParse(weekdayName: string, format: string, strict: boolean): number; - weekdaysRegex(strict: boolean): RegExp; - weekdaysShortRegex(strict: boolean): RegExp; - weekdaysMinRegex(strict: boolean): RegExp; - - isPM(input: string): boolean; - meridiem(hour: number, minute: number, isLower: boolean): string; - } - - interface StandaloneFormatSpec { - format: string[]; - standalone: string[]; - isFormat?: RegExp; - } - - interface WeekSpec { - dow: number; - doy: number; - } - - type CalendarSpecVal = string | ((m?: MomentInput, now?: Moment) => string); - interface CalendarSpec { - sameDay?: CalendarSpecVal; - nextDay?: CalendarSpecVal; - lastDay?: CalendarSpecVal; - nextWeek?: CalendarSpecVal; - lastWeek?: CalendarSpecVal; - sameElse?: CalendarSpecVal; - - // any additional properties might be used with moment.calendarFormat - [x: string]: CalendarSpecVal | void; // undefined - } - - type RelativeTimeSpecVal = ( - string | - ((n: number, withoutSuffix: boolean, - key: RelativeTimeKey, isFuture: boolean) => string) - ); - type RelativeTimeFuturePastVal = string | ((relTime: string) => string); - - interface RelativeTimeSpec { - future: RelativeTimeFuturePastVal; - past: RelativeTimeFuturePastVal; - s: RelativeTimeSpecVal; - m: RelativeTimeSpecVal; - mm: RelativeTimeSpecVal; - h: RelativeTimeSpecVal; - hh: RelativeTimeSpecVal; - d: RelativeTimeSpecVal; - dd: RelativeTimeSpecVal; - M: RelativeTimeSpecVal; - MM: RelativeTimeSpecVal; - y: RelativeTimeSpecVal; - yy: RelativeTimeSpecVal; - } - - interface LongDateFormatSpec { - LTS: string; - LT: string; - L: string; - LL: string; - LLL: string; - LLLL: string; - - // lets forget for a sec that any upper/lower permutation will also work - lts?: string; - lt?: string; - l?: string; - ll?: string; - lll?: string; - llll?: string; - } - - type MonthWeekdayFn = (momentToFormat: Moment, format?: string) => string; - type WeekdaySimpleFn = (momentToFormat: Moment) => string; - - interface LocaleSpecification { - months?: string[] | StandaloneFormatSpec | MonthWeekdayFn; - monthsShort?: string[] | StandaloneFormatSpec | MonthWeekdayFn; - - weekdays?: string[] | StandaloneFormatSpec | MonthWeekdayFn; - weekdaysShort?: string[] | StandaloneFormatSpec | WeekdaySimpleFn; - weekdaysMin?: string[] | StandaloneFormatSpec | WeekdaySimpleFn; - - meridiemParse?: RegExp; - meridiem?: (hour: number, minute:number, isLower: boolean) => string; - - isPM?: (input: string) => boolean; - - longDateFormat?: LongDateFormatSpec; - calendar?: CalendarSpec; - relativeTime?: RelativeTimeSpec; - invalidDate?: string; - ordinal?: (n: number) => string; - ordinalParse?: RegExp; - - week?: WeekSpec; - - // Allow anything: in general any property that is passed as locale spec is - // put in the locale object so it can be used by locale functions - [x: string]: any; - } - - interface MomentObjectOutput { - years: number; - /* One digit */ - months: number; - /* Day of the month */ - date: number; - hours: number; - minutes: number; - seconds: number; - milliseconds: number; - } - - interface Duration { - humanize(withSuffix?: boolean): string; - - abs(): Duration; - - as(units: unitOfTime.Base): number; - get(units: unitOfTime.Base): number; - - milliseconds(): number; - asMilliseconds(): number; - - seconds(): number; - asSeconds(): number; - - minutes(): number; - asMinutes(): number; - - hours(): number; - asHours(): number; - - days(): number; - asDays(): number; - - weeks(): number; - asWeeks(): number; - - months(): number; - asMonths(): number; - - years(): number; - asYears(): number; - - add(inp?: DurationInputArg1, unit?: DurationInputArg2): Duration; - subtract(inp?: DurationInputArg1, unit?: DurationInputArg2): Duration; - - locale(): string; - locale(locale: LocaleSpecifier): Duration; - localeData(): Locale; - - toISOString(): string; - toJSON(): string; - - /** - * @deprecated since version 2.8.0 - */ - lang(locale: LocaleSpecifier): Moment; - /** - * @deprecated since version 2.8.0 - */ - lang(): Locale; - /** - * @deprecated - */ - toIsoString(): string; - } - - interface MomentRelativeTime { - future: any; - past: any; - s: any; - m: any; - mm: any; - h: any; - hh: any; - d: any; - dd: any; - M: any; - MM: any; - y: any; - yy: any; - } - - interface MomentLongDateFormat { - L: string; - LL: string; - LLL: string; - LLLL: string; - LT: string; - LTS: string; - - l?: string; - ll?: string; - lll?: string; - llll?: string; - lt?: string; - lts?: string; - } - - interface MomentParsingFlags { - empty: boolean; - unusedTokens: string[]; - unusedInput: string[]; - overflow: number; - charsLeftOver: number; - nullInput: boolean; - invalidMonth: string | void; // null - invalidFormat: boolean; - userInvalidated: boolean; - iso: boolean; - parsedDateParts: any[]; - meridiem: string | void; // null - } - - interface MomentParsingFlagsOpt { - empty?: boolean; - unusedTokens?: string[]; - unusedInput?: string[]; - overflow?: number; - charsLeftOver?: number; - nullInput?: boolean; - invalidMonth?: string; - invalidFormat?: boolean; - userInvalidated?: boolean; - iso?: boolean; - parsedDateParts?: any[]; - meridiem?: string; - } - - interface MomentBuiltinFormat { - __momentBuiltinFormatBrand: any; - } - - type MomentFormatSpecification = string | MomentBuiltinFormat | (string | MomentBuiltinFormat)[]; - - namespace unitOfTime { - type Base = ( - "year" | "years" | "y" | - "month" | "months" | "M" | - "week" | "weeks" | "w" | - "day" | "days" | "d" | - "hour" | "hours" | "h" | - "minute" | "minutes" | "m" | - "second" | "seconds" | "s" | - "millisecond" | "milliseconds" | "ms" - ); - - type _quarter = "quarter" | "quarters" | "Q"; - type _isoWeek = "isoWeek" | "isoWeeks" | "W"; - type _date = "date" | "dates" | "D"; - type DurationConstructor = Base | _quarter; - - type DurationAs = Base; - - type StartOf = Base | _quarter | _isoWeek | _date; - - type Diff = Base | _quarter; - - type MomentConstructor = Base | _date; - - type All = Base | _quarter | _isoWeek | _date | - "weekYear" | "weekYears" | "gg" | - "isoWeekYear" | "isoWeekYears" | "GG" | - "dayOfYear" | "dayOfYears" | "DDD" | - "weekday" | "weekdays" | "e" | - "isoWeekday" | "isoWeekdays" | "E"; - } - - interface MomentInputObject { - years?: number; - year?: number; - y?: number; - - months?: number; - month?: number; - M?: number; - - days?: number; - day?: number; - d?: number; - - dates?: number; - date?: number; - D?: number; - - hours?: number; - hour?: number; - h?: number; - - minutes?: number; - minute?: number; - m?: number; - - seconds?: number; - second?: number; - s?: number; - - milliseconds?: number; - millisecond?: number; - ms?: number; - } - - interface DurationInputObject extends MomentInputObject { - quarters?: number; - quarter?: number; - Q?: number; - - weeks?: number; - week?: number; - w?: number; - } - - interface MomentSetObject extends MomentInputObject { - weekYears?: number; - weekYear?: number; - gg?: number; - - isoWeekYears?: number; - isoWeekYear?: number; - GG?: number; - - quarters?: number; - quarter?: number; - Q?: number; - - weeks?: number; - week?: number; - w?: number; - - isoWeeks?: number; - isoWeek?: number; - W?: number; - - dayOfYears?: number; - dayOfYear?: number; - DDD?: number; - - weekdays?: number; - weekday?: number; - e?: number; - - isoWeekdays?: number; - isoWeekday?: number; - E?: number; - } - - interface FromTo { - from: MomentInput; - to: MomentInput; - } - - type MomentInput = Moment | Date | string | number | (number | string)[] | MomentInputObject | void; // null | undefined - type DurationInputArg1 = Duration | number | string | FromTo | DurationInputObject | void; // null | undefined - type DurationInputArg2 = unitOfTime.DurationConstructor; - type LocaleSpecifier = string | Moment | Duration | string[] | boolean; - - interface MomentCreationData { - input: MomentInput; - format?: MomentFormatSpecification; - locale: Locale; - isUTC: boolean; - strict?: boolean; - } - - interface Moment extends Object{ - format(format?: string): string; - - startOf(unitOfTime: unitOfTime.StartOf): Moment; - endOf(unitOfTime: unitOfTime.StartOf): Moment; - - add(amount?: DurationInputArg1, unit?: DurationInputArg2): Moment; - /** - * @deprecated reverse syntax - */ - add(unit: unitOfTime.DurationConstructor, amount: number|string): Moment; - - subtract(amount?: DurationInputArg1, unit?: DurationInputArg2): Moment; - /** - * @deprecated reverse syntax - */ - subtract(unit: unitOfTime.DurationConstructor, amount: number|string): Moment; - - calendar(time?: MomentInput, formats?: CalendarSpec): string; - - clone(): Moment; - - /** - * @return Unix timestamp in milliseconds - */ - valueOf(): number; - - // current date/time in local mode - local(keepLocalTime?: boolean): Moment; - isLocal(): boolean; - - // current date/time in UTC mode - utc(keepLocalTime?: boolean): Moment; - isUTC(): boolean; - /** - * @deprecated use isUTC - */ - isUtc(): boolean; - - parseZone(): Moment; - isValid(): boolean; - invalidAt(): number; - - hasAlignedHourOffset(other?: MomentInput): boolean; - - creationData(): MomentCreationData; - parsingFlags(): MomentParsingFlags; - - year(y: number): Moment; - year(): number; - /** - * @deprecated use year(y) - */ - years(y: number): Moment; - /** - * @deprecated use year() - */ - years(): number; - quarter(): number; - quarter(q: number): Moment; - quarters(): number; - quarters(q: number): Moment; - month(M: number|string): Moment; - month(): number; - /** - * @deprecated use month(M) - */ - months(M: number|string): Moment; - /** - * @deprecated use month() - */ - months(): number; - day(d: number|string): Moment; - day(): number; - days(d: number|string): Moment; - days(): number; - date(d: number): Moment; - date(): number; - /** - * @deprecated use date(d) - */ - dates(d: number): Moment; - /** - * @deprecated use date() - */ - dates(): number; - hour(h: number): Moment; - hour(): number; - hours(h: number): Moment; - hours(): number; - minute(m: number): Moment; - minute(): number; - minutes(m: number): Moment; - minutes(): number; - second(s: number): Moment; - second(): number; - seconds(s: number): Moment; - seconds(): number; - millisecond(ms: number): Moment; - millisecond(): number; - milliseconds(ms: number): Moment; - milliseconds(): number; - weekday(): number; - weekday(d: number): Moment; - isoWeekday(): number; - isoWeekday(d: number|string): Moment; - weekYear(): number; - weekYear(d: number): Moment; - isoWeekYear(): number; - isoWeekYear(d: number): Moment; - week(): number; - week(d: number): Moment; - weeks(): number; - weeks(d: number): Moment; - isoWeek(): number; - isoWeek(d: number): Moment; - isoWeeks(): number; - isoWeeks(d: number): Moment; - weeksInYear(): number; - isoWeeksInYear(): number; - dayOfYear(): number; - dayOfYear(d: number): Moment; - - from(inp: MomentInput, suffix?: boolean): string; - to(inp: MomentInput, suffix?: boolean): string; - fromNow(withoutSuffix?: boolean): string; - toNow(withoutPrefix?: boolean): string; - - diff(b: MomentInput, unitOfTime?: unitOfTime.Diff, precise?: boolean): number; - - toArray(): number[]; - toDate(): Date; - toISOString(): string; - inspect(): string; - toJSON(): string; - unix(): number; - - isLeapYear(): boolean; - /** - * @deprecated in favor of utcOffset - */ - zone(): number; - zone(b: number|string): Moment; - utcOffset(): number; - utcOffset(b: number|string, keepLocalTime?: boolean): Moment; - isUtcOffset(): boolean; - daysInMonth(): number; - isDST(): boolean; - - zoneAbbr(): string; - zoneName(): string; - - isBefore(inp?: MomentInput, granularity?: unitOfTime.StartOf): boolean; - isAfter(inp?: MomentInput, granularity?: unitOfTime.StartOf): boolean; - isSame(inp?: MomentInput, granularity?: unitOfTime.StartOf): boolean; - isSameOrAfter(inp?: MomentInput, granularity?: unitOfTime.StartOf): boolean; - isSameOrBefore(inp?: MomentInput, granularity?: unitOfTime.StartOf): boolean; - isBetween(a: MomentInput, b: MomentInput, granularity?: unitOfTime.StartOf, inclusivity?: "()" | "[)" | "(]" | "[]"): boolean; - - /** - * @deprecated as of 2.8.0, use locale - */ - lang(language: LocaleSpecifier): Moment; - /** - * @deprecated as of 2.8.0, use locale - */ - lang(): Locale; - - locale(): string; - locale(locale: LocaleSpecifier): Moment; - - localeData(): Locale; - - /** - * @deprecated no reliable implementation - */ - isDSTShifted(): boolean; - - // NOTE(constructor): Same as moment constructor - /** - * @deprecated as of 2.7.0, use moment.min/max - */ - max(inp?: MomentInput, format?: MomentFormatSpecification, strict?: boolean): Moment; - /** - * @deprecated as of 2.7.0, use moment.min/max - */ - max(inp?: MomentInput, format?: MomentFormatSpecification, language?: string, strict?: boolean): Moment; - - // NOTE(constructor): Same as moment constructor - /** - * @deprecated as of 2.7.0, use moment.min/max - */ - min(inp?: MomentInput, format?: MomentFormatSpecification, strict?: boolean): Moment; - /** - * @deprecated as of 2.7.0, use moment.min/max - */ - min(inp?: MomentInput, format?: MomentFormatSpecification, language?: string, strict?: boolean): Moment; - - get(unit: unitOfTime.All): number; - set(unit: unitOfTime.All, value: number): Moment; - set(objectLiteral: MomentSetObject): Moment; - - toObject(): MomentObjectOutput; - } - - export var version: string; - export var fn: Moment; - - // NOTE(constructor): Same as moment constructor - export function utc(inp?: MomentInput, format?: MomentFormatSpecification, strict?: boolean): Moment; - export function utc(inp?: MomentInput, format?: MomentFormatSpecification, language?: string, strict?: boolean): Moment; - - export function unix(timestamp: number): Moment; - - export function invalid(flags?: MomentParsingFlagsOpt): Moment; - export function isMoment(m: any): m is Moment; - export function isDate(m: any): m is Date; - export function isDuration(d: any): d is Duration; - - /** - * @deprecated in 2.8.0 - */ - export function lang(language?: string): string; - /** - * @deprecated in 2.8.0 - */ - export function lang(language?: string, definition?: Locale): string; - - export function locale(language?: string): string; - export function locale(language?: string[]): string; - export function locale(language?: string, definition?: LocaleSpecification | void): string; // null | undefined - - export function localeData(key?: string | string[]): Locale; - - export function duration(inp?: DurationInputArg1, unit?: DurationInputArg2): Duration; - - // NOTE(constructor): Same as moment constructor - export function parseZone(inp?: MomentInput, format?: MomentFormatSpecification, strict?: boolean): Moment; - export function parseZone(inp?: MomentInput, format?: MomentFormatSpecification, language?: string, strict?: boolean): Moment; - - export function months(): string[]; - export function months(index: number): string; - export function months(format: string): string[]; - export function months(format: string, index: number): string; - export function monthsShort(): string[]; - export function monthsShort(index: number): string; - export function monthsShort(format: string): string[]; - export function monthsShort(format: string, index: number): string; - - export function weekdays(): string[]; - export function weekdays(index: number): string; - export function weekdays(format: string): string[]; - export function weekdays(format: string, index: number): string; - export function weekdays(localeSorted: boolean): string[]; - export function weekdays(localeSorted: boolean, index: number): string; - export function weekdays(localeSorted: boolean, format: string): string[]; - export function weekdays(localeSorted: boolean, format: string, index: number): string; - export function weekdaysShort(): string[]; - export function weekdaysShort(index: number): string; - export function weekdaysShort(format: string): string[]; - export function weekdaysShort(format: string, index: number): string; - export function weekdaysShort(localeSorted: boolean): string[]; - export function weekdaysShort(localeSorted: boolean, index: number): string; - export function weekdaysShort(localeSorted: boolean, format: string): string[]; - export function weekdaysShort(localeSorted: boolean, format: string, index: number): string; - export function weekdaysMin(): string[]; - export function weekdaysMin(index: number): string; - export function weekdaysMin(format: string): string[]; - export function weekdaysMin(format: string, index: number): string; - export function weekdaysMin(localeSorted: boolean): string[]; - export function weekdaysMin(localeSorted: boolean, index: number): string; - export function weekdaysMin(localeSorted: boolean, format: string): string[]; - export function weekdaysMin(localeSorted: boolean, format: string, index: number): string; - - export function min(...moments: MomentInput[]): Moment; - export function max(...moments: MomentInput[]): Moment; - - /** - * Returns unix time in milliseconds. Overwrite for profit. - */ - export function now(): number; - - export function defineLocale(language: string, localeSpec: LocaleSpecification | void): Locale; // null - export function updateLocale(language: string, localeSpec: LocaleSpecification | void): Locale; // null - - export function locales(): string[]; - - export function normalizeUnits(unit: unitOfTime.All): string; - export function relativeTimeThreshold(threshold: string): number | boolean; - export function relativeTimeThreshold(threshold: string, limit: number): boolean; - export function relativeTimeRounding(fn: (num: number) => number): boolean; - export function relativeTimeRounding(): (num: number) => number; - export function calendarFormat(m: Moment, now: Moment): string; - - /** - * Constant used to enable explicit ISO_8601 format parsing. - */ - export var ISO_8601: MomentBuiltinFormat; - - export var defaultFormat: string; - export var defaultFormatUtc: string; -} - -export = moment; diff --git a/admin/bower_components/moment/moment.js b/admin/bower_components/moment/moment.js deleted file mode 100644 index a9947fb..0000000 --- a/admin/bower_components/moment/moment.js +++ /dev/null @@ -1,4463 +0,0 @@ -//! moment.js -//! version : 2.18.1 -//! authors : Tim Wood, Iskren Chernev, Moment.js contributors -//! license : MIT -//! momentjs.com - -;(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() : - typeof define === 'function' && define.amd ? define(factory) : - global.moment = factory() -}(this, (function () { 'use strict'; - -var hookCallback; - -function hooks () { - return hookCallback.apply(null, arguments); -} - -// This is done to register the method called with moment() -// without creating circular dependencies. -function setHookCallback (callback) { - hookCallback = callback; -} - -function isArray(input) { - return input instanceof Array || Object.prototype.toString.call(input) === '[object Array]'; -} - -function isObject(input) { - // IE8 will treat undefined and null as object if it wasn't for - // input != null - return input != null && Object.prototype.toString.call(input) === '[object Object]'; -} - -function isObjectEmpty(obj) { - var k; - for (k in obj) { - // even if its not own property I'd still call it non-empty - return false; - } - return true; -} - -function isUndefined(input) { - return input === void 0; -} - -function isNumber(input) { - return typeof input === 'number' || Object.prototype.toString.call(input) === '[object Number]'; -} - -function isDate(input) { - return input instanceof Date || Object.prototype.toString.call(input) === '[object Date]'; -} - -function map(arr, fn) { - var res = [], i; - for (i = 0; i < arr.length; ++i) { - res.push(fn(arr[i], i)); - } - return res; -} - -function hasOwnProp(a, b) { - return Object.prototype.hasOwnProperty.call(a, b); -} - -function extend(a, b) { - for (var i in b) { - if (hasOwnProp(b, i)) { - a[i] = b[i]; - } - } - - if (hasOwnProp(b, 'toString')) { - a.toString = b.toString; - } - - if (hasOwnProp(b, 'valueOf')) { - a.valueOf = b.valueOf; - } - - return a; -} - -function createUTC (input, format, locale, strict) { - return createLocalOrUTC(input, format, locale, strict, true).utc(); -} - -function defaultParsingFlags() { - // We need to deep clone this object. - return { - empty : false, - unusedTokens : [], - unusedInput : [], - overflow : -2, - charsLeftOver : 0, - nullInput : false, - invalidMonth : null, - invalidFormat : false, - userInvalidated : false, - iso : false, - parsedDateParts : [], - meridiem : null, - rfc2822 : false, - weekdayMismatch : false - }; -} - -function getParsingFlags(m) { - if (m._pf == null) { - m._pf = defaultParsingFlags(); - } - return m._pf; -} - -var some; -if (Array.prototype.some) { - some = Array.prototype.some; -} else { - some = function (fun) { - var t = Object(this); - var len = t.length >>> 0; - - for (var i = 0; i < len; i++) { - if (i in t && fun.call(this, t[i], i, t)) { - return true; - } - } - - return false; - }; -} - -var some$1 = some; - -function isValid(m) { - if (m._isValid == null) { - var flags = getParsingFlags(m); - var parsedParts = some$1.call(flags.parsedDateParts, function (i) { - return i != null; - }); - var isNowValid = !isNaN(m._d.getTime()) && - flags.overflow < 0 && - !flags.empty && - !flags.invalidMonth && - !flags.invalidWeekday && - !flags.nullInput && - !flags.invalidFormat && - !flags.userInvalidated && - (!flags.meridiem || (flags.meridiem && parsedParts)); - - if (m._strict) { - isNowValid = isNowValid && - flags.charsLeftOver === 0 && - flags.unusedTokens.length === 0 && - flags.bigHour === undefined; - } - - if (Object.isFrozen == null || !Object.isFrozen(m)) { - m._isValid = isNowValid; - } - else { - return isNowValid; - } - } - return m._isValid; -} - -function createInvalid (flags) { - var m = createUTC(NaN); - if (flags != null) { - extend(getParsingFlags(m), flags); - } - else { - getParsingFlags(m).userInvalidated = true; - } - - return m; -} - -// Plugins that add properties should also add the key here (null value), -// so we can properly clone ourselves. -var momentProperties = hooks.momentProperties = []; - -function copyConfig(to, from) { - var i, prop, val; - - if (!isUndefined(from._isAMomentObject)) { - to._isAMomentObject = from._isAMomentObject; - } - if (!isUndefined(from._i)) { - to._i = from._i; - } - if (!isUndefined(from._f)) { - to._f = from._f; - } - if (!isUndefined(from._l)) { - to._l = from._l; - } - if (!isUndefined(from._strict)) { - to._strict = from._strict; - } - if (!isUndefined(from._tzm)) { - to._tzm = from._tzm; - } - if (!isUndefined(from._isUTC)) { - to._isUTC = from._isUTC; - } - if (!isUndefined(from._offset)) { - to._offset = from._offset; - } - if (!isUndefined(from._pf)) { - to._pf = getParsingFlags(from); - } - if (!isUndefined(from._locale)) { - to._locale = from._locale; - } - - if (momentProperties.length > 0) { - for (i = 0; i < momentProperties.length; i++) { - prop = momentProperties[i]; - val = from[prop]; - if (!isUndefined(val)) { - to[prop] = val; - } - } - } - - return to; -} - -var updateInProgress = false; - -// Moment prototype object -function Moment(config) { - copyConfig(this, config); - this._d = new Date(config._d != null ? config._d.getTime() : NaN); - if (!this.isValid()) { - this._d = new Date(NaN); - } - // Prevent infinite loop in case updateOffset creates new moment - // objects. - if (updateInProgress === false) { - updateInProgress = true; - hooks.updateOffset(this); - updateInProgress = false; - } -} - -function isMoment (obj) { - return obj instanceof Moment || (obj != null && obj._isAMomentObject != null); -} - -function absFloor (number) { - if (number < 0) { - // -0 -> 0 - return Math.ceil(number) || 0; - } else { - return Math.floor(number); - } -} - -function toInt(argumentForCoercion) { - var coercedNumber = +argumentForCoercion, - value = 0; - - if (coercedNumber !== 0 && isFinite(coercedNumber)) { - value = absFloor(coercedNumber); - } - - return value; -} - -// compare two arrays, return the number of differences -function compareArrays(array1, array2, dontConvert) { - var len = Math.min(array1.length, array2.length), - lengthDiff = Math.abs(array1.length - array2.length), - diffs = 0, - i; - for (i = 0; i < len; i++) { - if ((dontConvert && array1[i] !== array2[i]) || - (!dontConvert && toInt(array1[i]) !== toInt(array2[i]))) { - diffs++; - } - } - return diffs + lengthDiff; -} - -function warn(msg) { - if (hooks.suppressDeprecationWarnings === false && - (typeof console !== 'undefined') && console.warn) { - console.warn('Deprecation warning: ' + msg); - } -} - -function deprecate(msg, fn) { - var firstTime = true; - - return extend(function () { - if (hooks.deprecationHandler != null) { - hooks.deprecationHandler(null, msg); - } - if (firstTime) { - var args = []; - var arg; - for (var i = 0; i < arguments.length; i++) { - arg = ''; - if (typeof arguments[i] === 'object') { - arg += '\n[' + i + '] '; - for (var key in arguments[0]) { - arg += key + ': ' + arguments[0][key] + ', '; - } - arg = arg.slice(0, -2); // Remove trailing comma and space - } else { - arg = arguments[i]; - } - args.push(arg); - } - warn(msg + '\nArguments: ' + Array.prototype.slice.call(args).join('') + '\n' + (new Error()).stack); - firstTime = false; - } - return fn.apply(this, arguments); - }, fn); -} - -var deprecations = {}; - -function deprecateSimple(name, msg) { - if (hooks.deprecationHandler != null) { - hooks.deprecationHandler(name, msg); - } - if (!deprecations[name]) { - warn(msg); - deprecations[name] = true; - } -} - -hooks.suppressDeprecationWarnings = false; -hooks.deprecationHandler = null; - -function isFunction(input) { - return input instanceof Function || Object.prototype.toString.call(input) === '[object Function]'; -} - -function set (config) { - var prop, i; - for (i in config) { - prop = config[i]; - if (isFunction(prop)) { - this[i] = prop; - } else { - this['_' + i] = prop; - } - } - this._config = config; - // Lenient ordinal parsing accepts just a number in addition to - // number + (possibly) stuff coming from _dayOfMonthOrdinalParse. - // TODO: Remove "ordinalParse" fallback in next major release. - this._dayOfMonthOrdinalParseLenient = new RegExp( - (this._dayOfMonthOrdinalParse.source || this._ordinalParse.source) + - '|' + (/\d{1,2}/).source); -} - -function mergeConfigs(parentConfig, childConfig) { - var res = extend({}, parentConfig), prop; - for (prop in childConfig) { - if (hasOwnProp(childConfig, prop)) { - if (isObject(parentConfig[prop]) && isObject(childConfig[prop])) { - res[prop] = {}; - extend(res[prop], parentConfig[prop]); - extend(res[prop], childConfig[prop]); - } else if (childConfig[prop] != null) { - res[prop] = childConfig[prop]; - } else { - delete res[prop]; - } - } - } - for (prop in parentConfig) { - if (hasOwnProp(parentConfig, prop) && - !hasOwnProp(childConfig, prop) && - isObject(parentConfig[prop])) { - // make sure changes to properties don't modify parent config - res[prop] = extend({}, res[prop]); - } - } - return res; -} - -function Locale(config) { - if (config != null) { - this.set(config); - } -} - -var keys; - -if (Object.keys) { - keys = Object.keys; -} else { - keys = function (obj) { - var i, res = []; - for (i in obj) { - if (hasOwnProp(obj, i)) { - res.push(i); - } - } - return res; - }; -} - -var keys$1 = keys; - -var defaultCalendar = { - sameDay : '[Today at] LT', - nextDay : '[Tomorrow at] LT', - nextWeek : 'dddd [at] LT', - lastDay : '[Yesterday at] LT', - lastWeek : '[Last] dddd [at] LT', - sameElse : 'L' -}; - -function calendar (key, mom, now) { - var output = this._calendar[key] || this._calendar['sameElse']; - return isFunction(output) ? output.call(mom, now) : output; -} - -var defaultLongDateFormat = { - LTS : 'h:mm:ss A', - LT : 'h:mm A', - L : 'MM/DD/YYYY', - LL : 'MMMM D, YYYY', - LLL : 'MMMM D, YYYY h:mm A', - LLLL : 'dddd, MMMM D, YYYY h:mm A' -}; - -function longDateFormat (key) { - var format = this._longDateFormat[key], - formatUpper = this._longDateFormat[key.toUpperCase()]; - - if (format || !formatUpper) { - return format; - } - - this._longDateFormat[key] = formatUpper.replace(/MMMM|MM|DD|dddd/g, function (val) { - return val.slice(1); - }); - - return this._longDateFormat[key]; -} - -var defaultInvalidDate = 'Invalid date'; - -function invalidDate () { - return this._invalidDate; -} - -var defaultOrdinal = '%d'; -var defaultDayOfMonthOrdinalParse = /\d{1,2}/; - -function ordinal (number) { - return this._ordinal.replace('%d', number); -} - -var defaultRelativeTime = { - future : 'in %s', - past : '%s ago', - s : 'a few seconds', - ss : '%d 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' -}; - -function relativeTime (number, withoutSuffix, string, isFuture) { - var output = this._relativeTime[string]; - return (isFunction(output)) ? - output(number, withoutSuffix, string, isFuture) : - output.replace(/%d/i, number); -} - -function pastFuture (diff, output) { - var format = this._relativeTime[diff > 0 ? 'future' : 'past']; - return isFunction(format) ? format(output) : format.replace(/%s/i, output); -} - -var aliases = {}; - -function addUnitAlias (unit, shorthand) { - var lowerCase = unit.toLowerCase(); - aliases[lowerCase] = aliases[lowerCase + 's'] = aliases[shorthand] = unit; -} - -function normalizeUnits(units) { - return typeof units === 'string' ? aliases[units] || aliases[units.toLowerCase()] : undefined; -} - -function normalizeObjectUnits(inputObject) { - var normalizedInput = {}, - normalizedProp, - prop; - - for (prop in inputObject) { - if (hasOwnProp(inputObject, prop)) { - normalizedProp = normalizeUnits(prop); - if (normalizedProp) { - normalizedInput[normalizedProp] = inputObject[prop]; - } - } - } - - return normalizedInput; -} - -var priorities = {}; - -function addUnitPriority(unit, priority) { - priorities[unit] = priority; -} - -function getPrioritizedUnits(unitsObj) { - var units = []; - for (var u in unitsObj) { - units.push({unit: u, priority: priorities[u]}); - } - units.sort(function (a, b) { - return a.priority - b.priority; - }); - return units; -} - -function makeGetSet (unit, keepTime) { - return function (value) { - if (value != null) { - set$1(this, unit, value); - hooks.updateOffset(this, keepTime); - return this; - } else { - return get(this, unit); - } - }; -} - -function get (mom, unit) { - return mom.isValid() ? - mom._d['get' + (mom._isUTC ? 'UTC' : '') + unit]() : NaN; -} - -function set$1 (mom, unit, value) { - if (mom.isValid()) { - mom._d['set' + (mom._isUTC ? 'UTC' : '') + unit](value); - } -} - -// MOMENTS - -function stringGet (units) { - units = normalizeUnits(units); - if (isFunction(this[units])) { - return this[units](); - } - return this; -} - - -function stringSet (units, value) { - if (typeof units === 'object') { - units = normalizeObjectUnits(units); - var prioritized = getPrioritizedUnits(units); - for (var i = 0; i < prioritized.length; i++) { - this[prioritized[i].unit](units[prioritized[i].unit]); - } - } else { - units = normalizeUnits(units); - if (isFunction(this[units])) { - return this[units](value); - } - } - return this; -} - -function zeroFill(number, targetLength, forceSign) { - var absNumber = '' + Math.abs(number), - zerosToFill = targetLength - absNumber.length, - sign = number >= 0; - return (sign ? (forceSign ? '+' : '') : '-') + - Math.pow(10, Math.max(0, zerosToFill)).toString().substr(1) + absNumber; -} - -var formattingTokens = /(\[[^\[]*\])|(\\)?([Hh]mm(ss)?|Mo|MM?M?M?|Do|DDDo|DD?D?D?|ddd?d?|do?|w[o|w]?|W[o|W]?|Qo?|YYYYYY|YYYYY|YYYY|YY|gg(ggg?)?|GG(GGG?)?|e|E|a|A|hh?|HH?|kk?|mm?|ss?|S{1,9}|x|X|zz?|ZZ?|.)/g; - -var localFormattingTokens = /(\[[^\[]*\])|(\\)?(LTS|LT|LL?L?L?|l{1,4})/g; - -var formatFunctions = {}; - -var formatTokenFunctions = {}; - -// token: 'M' -// padded: ['MM', 2] -// ordinal: 'Mo' -// callback: function () { this.month() + 1 } -function addFormatToken (token, padded, ordinal, callback) { - var func = callback; - if (typeof callback === 'string') { - func = function () { - return this[callback](); - }; - } - if (token) { - formatTokenFunctions[token] = func; - } - if (padded) { - formatTokenFunctions[padded[0]] = function () { - return zeroFill(func.apply(this, arguments), padded[1], padded[2]); - }; - } - if (ordinal) { - formatTokenFunctions[ordinal] = function () { - return this.localeData().ordinal(func.apply(this, arguments), token); - }; - } -} - -function removeFormattingTokens(input) { - if (input.match(/\[[\s\S]/)) { - return input.replace(/^\[|\]$/g, ''); - } - return input.replace(/\\/g, ''); -} - -function makeFormatFunction(format) { - var array = format.match(formattingTokens), i, length; - - for (i = 0, length = array.length; i < length; i++) { - if (formatTokenFunctions[array[i]]) { - array[i] = formatTokenFunctions[array[i]]; - } else { - array[i] = removeFormattingTokens(array[i]); - } - } - - return function (mom) { - var output = '', i; - for (i = 0; i < length; i++) { - output += isFunction(array[i]) ? array[i].call(mom, format) : array[i]; - } - return output; - }; -} - -// format date using native date object -function formatMoment(m, format) { - if (!m.isValid()) { - return m.localeData().invalidDate(); - } - - format = expandFormat(format, m.localeData()); - formatFunctions[format] = formatFunctions[format] || makeFormatFunction(format); - - return formatFunctions[format](m); -} - -function expandFormat(format, locale) { - var i = 5; - - function replaceLongDateFormatTokens(input) { - return locale.longDateFormat(input) || input; - } - - localFormattingTokens.lastIndex = 0; - while (i >= 0 && localFormattingTokens.test(format)) { - format = format.replace(localFormattingTokens, replaceLongDateFormatTokens); - localFormattingTokens.lastIndex = 0; - i -= 1; - } - - return format; -} - -var match1 = /\d/; // 0 - 9 -var match2 = /\d\d/; // 00 - 99 -var match3 = /\d{3}/; // 000 - 999 -var match4 = /\d{4}/; // 0000 - 9999 -var match6 = /[+-]?\d{6}/; // -999999 - 999999 -var match1to2 = /\d\d?/; // 0 - 99 -var match3to4 = /\d\d\d\d?/; // 999 - 9999 -var match5to6 = /\d\d\d\d\d\d?/; // 99999 - 999999 -var match1to3 = /\d{1,3}/; // 0 - 999 -var match1to4 = /\d{1,4}/; // 0 - 9999 -var match1to6 = /[+-]?\d{1,6}/; // -999999 - 999999 - -var matchUnsigned = /\d+/; // 0 - inf -var matchSigned = /[+-]?\d+/; // -inf - inf - -var matchOffset = /Z|[+-]\d\d:?\d\d/gi; // +00:00 -00:00 +0000 -0000 or Z -var matchShortOffset = /Z|[+-]\d\d(?::?\d\d)?/gi; // +00 -00 +00:00 -00:00 +0000 -0000 or Z - -var matchTimestamp = /[+-]?\d+(\.\d{1,3})?/; // 123456789 123456789.123 - -// any word (or two) characters or numbers including two/three word month in arabic. -// includes scottish gaelic two word and hyphenated months -var matchWord = /[0-9]*['a-z\u00A0-\u05FF\u0700-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]+|[\u0600-\u06FF\/]+(\s*?[\u0600-\u06FF]+){1,2}/i; - - -var regexes = {}; - -function addRegexToken (token, regex, strictRegex) { - regexes[token] = isFunction(regex) ? regex : function (isStrict, localeData) { - return (isStrict && strictRegex) ? strictRegex : regex; - }; -} - -function getParseRegexForToken (token, config) { - if (!hasOwnProp(regexes, token)) { - return new RegExp(unescapeFormat(token)); - } - - return regexes[token](config._strict, config._locale); -} - -// Code from http://stackoverflow.com/questions/3561493/is-there-a-regexp-escape-function-in-javascript -function unescapeFormat(s) { - return regexEscape(s.replace('\\', '').replace(/\\(\[)|\\(\])|\[([^\]\[]*)\]|\\(.)/g, function (matched, p1, p2, p3, p4) { - return p1 || p2 || p3 || p4; - })); -} - -function regexEscape(s) { - return s.replace(/[-\/\\^$*+?.()|[\]{}]/g, '\\$&'); -} - -var tokens = {}; - -function addParseToken (token, callback) { - var i, func = callback; - if (typeof token === 'string') { - token = [token]; - } - if (isNumber(callback)) { - func = function (input, array) { - array[callback] = toInt(input); - }; - } - for (i = 0; i < token.length; i++) { - tokens[token[i]] = func; - } -} - -function addWeekParseToken (token, callback) { - addParseToken(token, function (input, array, config, token) { - config._w = config._w || {}; - callback(input, config._w, config, token); - }); -} - -function addTimeToArrayFromToken(token, input, config) { - if (input != null && hasOwnProp(tokens, token)) { - tokens[token](input, config._a, config, token); - } -} - -var YEAR = 0; -var MONTH = 1; -var DATE = 2; -var HOUR = 3; -var MINUTE = 4; -var SECOND = 5; -var MILLISECOND = 6; -var WEEK = 7; -var WEEKDAY = 8; - -var indexOf; - -if (Array.prototype.indexOf) { - indexOf = Array.prototype.indexOf; -} else { - indexOf = function (o) { - // I know - var i; - for (i = 0; i < this.length; ++i) { - if (this[i] === o) { - return i; - } - } - return -1; - }; -} - -var indexOf$1 = indexOf; - -function daysInMonth(year, month) { - return new Date(Date.UTC(year, month + 1, 0)).getUTCDate(); -} - -// FORMATTING - -addFormatToken('M', ['MM', 2], 'Mo', function () { - return this.month() + 1; -}); - -addFormatToken('MMM', 0, 0, function (format) { - return this.localeData().monthsShort(this, format); -}); - -addFormatToken('MMMM', 0, 0, function (format) { - return this.localeData().months(this, format); -}); - -// ALIASES - -addUnitAlias('month', 'M'); - -// PRIORITY - -addUnitPriority('month', 8); - -// PARSING - -addRegexToken('M', match1to2); -addRegexToken('MM', match1to2, match2); -addRegexToken('MMM', function (isStrict, locale) { - return locale.monthsShortRegex(isStrict); -}); -addRegexToken('MMMM', function (isStrict, locale) { - return locale.monthsRegex(isStrict); -}); - -addParseToken(['M', 'MM'], function (input, array) { - array[MONTH] = toInt(input) - 1; -}); - -addParseToken(['MMM', 'MMMM'], function (input, array, config, token) { - var month = config._locale.monthsParse(input, token, config._strict); - // if we didn't find a month name, mark the date as invalid. - if (month != null) { - array[MONTH] = month; - } else { - getParsingFlags(config).invalidMonth = input; - } -}); - -// LOCALES - -var MONTHS_IN_FORMAT = /D[oD]?(\[[^\[\]]*\]|\s)+MMMM?/; -var defaultLocaleMonths = 'January_February_March_April_May_June_July_August_September_October_November_December'.split('_'); -function localeMonths (m, format) { - if (!m) { - return isArray(this._months) ? this._months : - this._months['standalone']; - } - return isArray(this._months) ? this._months[m.month()] : - this._months[(this._months.isFormat || MONTHS_IN_FORMAT).test(format) ? 'format' : 'standalone'][m.month()]; -} - -var defaultLocaleMonthsShort = 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'); -function localeMonthsShort (m, format) { - if (!m) { - return isArray(this._monthsShort) ? this._monthsShort : - this._monthsShort['standalone']; - } - return isArray(this._monthsShort) ? this._monthsShort[m.month()] : - this._monthsShort[MONTHS_IN_FORMAT.test(format) ? 'format' : 'standalone'][m.month()]; -} - -function handleStrictParse(monthName, format, strict) { - var i, ii, mom, llc = monthName.toLocaleLowerCase(); - if (!this._monthsParse) { - // this is not used - this._monthsParse = []; - this._longMonthsParse = []; - this._shortMonthsParse = []; - for (i = 0; i < 12; ++i) { - mom = createUTC([2000, i]); - this._shortMonthsParse[i] = this.monthsShort(mom, '').toLocaleLowerCase(); - this._longMonthsParse[i] = this.months(mom, '').toLocaleLowerCase(); - } - } - - if (strict) { - if (format === 'MMM') { - ii = indexOf$1.call(this._shortMonthsParse, llc); - return ii !== -1 ? ii : null; - } else { - ii = indexOf$1.call(this._longMonthsParse, llc); - return ii !== -1 ? ii : null; - } - } else { - if (format === 'MMM') { - ii = indexOf$1.call(this._shortMonthsParse, llc); - if (ii !== -1) { - return ii; - } - ii = indexOf$1.call(this._longMonthsParse, llc); - return ii !== -1 ? ii : null; - } else { - ii = indexOf$1.call(this._longMonthsParse, llc); - if (ii !== -1) { - return ii; - } - ii = indexOf$1.call(this._shortMonthsParse, llc); - return ii !== -1 ? ii : null; - } - } -} - -function localeMonthsParse (monthName, format, strict) { - var i, mom, regex; - - if (this._monthsParseExact) { - return handleStrictParse.call(this, monthName, format, strict); - } - - if (!this._monthsParse) { - this._monthsParse = []; - this._longMonthsParse = []; - this._shortMonthsParse = []; - } - - // TODO: add sorting - // Sorting makes sure if one month (or abbr) is a prefix of another - // see sorting in computeMonthsParse - for (i = 0; i < 12; i++) { - // make the regex if we don't have it already - mom = createUTC([2000, i]); - if (strict && !this._longMonthsParse[i]) { - this._longMonthsParse[i] = new RegExp('^' + this.months(mom, '').replace('.', '') + '$', 'i'); - this._shortMonthsParse[i] = new RegExp('^' + this.monthsShort(mom, '').replace('.', '') + '$', 'i'); - } - if (!strict && !this._monthsParse[i]) { - regex = '^' + this.months(mom, '') + '|^' + this.monthsShort(mom, ''); - this._monthsParse[i] = new RegExp(regex.replace('.', ''), 'i'); - } - // test the regex - if (strict && format === 'MMMM' && this._longMonthsParse[i].test(monthName)) { - return i; - } else if (strict && format === 'MMM' && this._shortMonthsParse[i].test(monthName)) { - return i; - } else if (!strict && this._monthsParse[i].test(monthName)) { - return i; - } - } -} - -// MOMENTS - -function setMonth (mom, value) { - var dayOfMonth; - - if (!mom.isValid()) { - // No op - return mom; - } - - if (typeof value === 'string') { - if (/^\d+$/.test(value)) { - value = toInt(value); - } else { - value = mom.localeData().monthsParse(value); - // TODO: Another silent failure? - if (!isNumber(value)) { - return mom; - } - } - } - - dayOfMonth = Math.min(mom.date(), daysInMonth(mom.year(), value)); - mom._d['set' + (mom._isUTC ? 'UTC' : '') + 'Month'](value, dayOfMonth); - return mom; -} - -function getSetMonth (value) { - if (value != null) { - setMonth(this, value); - hooks.updateOffset(this, true); - return this; - } else { - return get(this, 'Month'); - } -} - -function getDaysInMonth () { - return daysInMonth(this.year(), this.month()); -} - -var defaultMonthsShortRegex = matchWord; -function monthsShortRegex (isStrict) { - if (this._monthsParseExact) { - if (!hasOwnProp(this, '_monthsRegex')) { - computeMonthsParse.call(this); - } - if (isStrict) { - return this._monthsShortStrictRegex; - } else { - return this._monthsShortRegex; - } - } else { - if (!hasOwnProp(this, '_monthsShortRegex')) { - this._monthsShortRegex = defaultMonthsShortRegex; - } - return this._monthsShortStrictRegex && isStrict ? - this._monthsShortStrictRegex : this._monthsShortRegex; - } -} - -var defaultMonthsRegex = matchWord; -function monthsRegex (isStrict) { - if (this._monthsParseExact) { - if (!hasOwnProp(this, '_monthsRegex')) { - computeMonthsParse.call(this); - } - if (isStrict) { - return this._monthsStrictRegex; - } else { - return this._monthsRegex; - } - } else { - if (!hasOwnProp(this, '_monthsRegex')) { - this._monthsRegex = defaultMonthsRegex; - } - return this._monthsStrictRegex && isStrict ? - this._monthsStrictRegex : this._monthsRegex; - } -} - -function computeMonthsParse () { - function cmpLenRev(a, b) { - return b.length - a.length; - } - - var shortPieces = [], longPieces = [], mixedPieces = [], - i, mom; - for (i = 0; i < 12; i++) { - // make the regex if we don't have it already - mom = createUTC([2000, i]); - shortPieces.push(this.monthsShort(mom, '')); - longPieces.push(this.months(mom, '')); - mixedPieces.push(this.months(mom, '')); - mixedPieces.push(this.monthsShort(mom, '')); - } - // Sorting makes sure if one month (or abbr) is a prefix of another it - // will match the longer piece. - shortPieces.sort(cmpLenRev); - longPieces.sort(cmpLenRev); - mixedPieces.sort(cmpLenRev); - for (i = 0; i < 12; i++) { - shortPieces[i] = regexEscape(shortPieces[i]); - longPieces[i] = regexEscape(longPieces[i]); - } - for (i = 0; i < 24; i++) { - mixedPieces[i] = regexEscape(mixedPieces[i]); - } - - this._monthsRegex = new RegExp('^(' + mixedPieces.join('|') + ')', 'i'); - this._monthsShortRegex = this._monthsRegex; - this._monthsStrictRegex = new RegExp('^(' + longPieces.join('|') + ')', 'i'); - this._monthsShortStrictRegex = new RegExp('^(' + shortPieces.join('|') + ')', 'i'); -} - -// FORMATTING - -addFormatToken('Y', 0, 0, function () { - var y = this.year(); - return y <= 9999 ? '' + y : '+' + y; -}); - -addFormatToken(0, ['YY', 2], 0, function () { - return this.year() % 100; -}); - -addFormatToken(0, ['YYYY', 4], 0, 'year'); -addFormatToken(0, ['YYYYY', 5], 0, 'year'); -addFormatToken(0, ['YYYYYY', 6, true], 0, 'year'); - -// ALIASES - -addUnitAlias('year', 'y'); - -// PRIORITIES - -addUnitPriority('year', 1); - -// PARSING - -addRegexToken('Y', matchSigned); -addRegexToken('YY', match1to2, match2); -addRegexToken('YYYY', match1to4, match4); -addRegexToken('YYYYY', match1to6, match6); -addRegexToken('YYYYYY', match1to6, match6); - -addParseToken(['YYYYY', 'YYYYYY'], YEAR); -addParseToken('YYYY', function (input, array) { - array[YEAR] = input.length === 2 ? hooks.parseTwoDigitYear(input) : toInt(input); -}); -addParseToken('YY', function (input, array) { - array[YEAR] = hooks.parseTwoDigitYear(input); -}); -addParseToken('Y', function (input, array) { - array[YEAR] = parseInt(input, 10); -}); - -// HELPERS - -function daysInYear(year) { - return isLeapYear(year) ? 366 : 365; -} - -function isLeapYear(year) { - return (year % 4 === 0 && year % 100 !== 0) || year % 400 === 0; -} - -// HOOKS - -hooks.parseTwoDigitYear = function (input) { - return toInt(input) + (toInt(input) > 68 ? 1900 : 2000); -}; - -// MOMENTS - -var getSetYear = makeGetSet('FullYear', true); - -function getIsLeapYear () { - return isLeapYear(this.year()); -} - -function createDate (y, m, d, h, M, s, ms) { - // can't just apply() to create a date: - // https://stackoverflow.com/q/181348 - var date = new Date(y, m, d, h, M, s, ms); - - // the date constructor remaps years 0-99 to 1900-1999 - if (y < 100 && y >= 0 && isFinite(date.getFullYear())) { - date.setFullYear(y); - } - return date; -} - -function createUTCDate (y) { - var date = new Date(Date.UTC.apply(null, arguments)); - - // the Date.UTC function remaps years 0-99 to 1900-1999 - if (y < 100 && y >= 0 && isFinite(date.getUTCFullYear())) { - date.setUTCFullYear(y); - } - return date; -} - -// start-of-first-week - start-of-year -function firstWeekOffset(year, dow, doy) { - var // first-week day -- which january is always in the first week (4 for iso, 1 for other) - fwd = 7 + dow - doy, - // first-week day local weekday -- which local weekday is fwd - fwdlw = (7 + createUTCDate(year, 0, fwd).getUTCDay() - dow) % 7; - - return -fwdlw + fwd - 1; -} - -// https://en.wikipedia.org/wiki/ISO_week_date#Calculating_a_date_given_the_year.2C_week_number_and_weekday -function dayOfYearFromWeeks(year, week, weekday, dow, doy) { - var localWeekday = (7 + weekday - dow) % 7, - weekOffset = firstWeekOffset(year, dow, doy), - dayOfYear = 1 + 7 * (week - 1) + localWeekday + weekOffset, - resYear, resDayOfYear; - - if (dayOfYear <= 0) { - resYear = year - 1; - resDayOfYear = daysInYear(resYear) + dayOfYear; - } else if (dayOfYear > daysInYear(year)) { - resYear = year + 1; - resDayOfYear = dayOfYear - daysInYear(year); - } else { - resYear = year; - resDayOfYear = dayOfYear; - } - - return { - year: resYear, - dayOfYear: resDayOfYear - }; -} - -function weekOfYear(mom, dow, doy) { - var weekOffset = firstWeekOffset(mom.year(), dow, doy), - week = Math.floor((mom.dayOfYear() - weekOffset - 1) / 7) + 1, - resWeek, resYear; - - if (week < 1) { - resYear = mom.year() - 1; - resWeek = week + weeksInYear(resYear, dow, doy); - } else if (week > weeksInYear(mom.year(), dow, doy)) { - resWeek = week - weeksInYear(mom.year(), dow, doy); - resYear = mom.year() + 1; - } else { - resYear = mom.year(); - resWeek = week; - } - - return { - week: resWeek, - year: resYear - }; -} - -function weeksInYear(year, dow, doy) { - var weekOffset = firstWeekOffset(year, dow, doy), - weekOffsetNext = firstWeekOffset(year + 1, dow, doy); - return (daysInYear(year) - weekOffset + weekOffsetNext) / 7; -} - -// FORMATTING - -addFormatToken('w', ['ww', 2], 'wo', 'week'); -addFormatToken('W', ['WW', 2], 'Wo', 'isoWeek'); - -// ALIASES - -addUnitAlias('week', 'w'); -addUnitAlias('isoWeek', 'W'); - -// PRIORITIES - -addUnitPriority('week', 5); -addUnitPriority('isoWeek', 5); - -// PARSING - -addRegexToken('w', match1to2); -addRegexToken('ww', match1to2, match2); -addRegexToken('W', match1to2); -addRegexToken('WW', match1to2, match2); - -addWeekParseToken(['w', 'ww', 'W', 'WW'], function (input, week, config, token) { - week[token.substr(0, 1)] = toInt(input); -}); - -// HELPERS - -// LOCALES - -function localeWeek (mom) { - return weekOfYear(mom, this._week.dow, this._week.doy).week; -} - -var defaultLocaleWeek = { - dow : 0, // Sunday is the first day of the week. - doy : 6 // The week that contains Jan 1st is the first week of the year. -}; - -function localeFirstDayOfWeek () { - return this._week.dow; -} - -function localeFirstDayOfYear () { - return this._week.doy; -} - -// MOMENTS - -function getSetWeek (input) { - var week = this.localeData().week(this); - return input == null ? week : this.add((input - week) * 7, 'd'); -} - -function getSetISOWeek (input) { - var week = weekOfYear(this, 1, 4).week; - return input == null ? week : this.add((input - week) * 7, 'd'); -} - -// FORMATTING - -addFormatToken('d', 0, 'do', 'day'); - -addFormatToken('dd', 0, 0, function (format) { - return this.localeData().weekdaysMin(this, format); -}); - -addFormatToken('ddd', 0, 0, function (format) { - return this.localeData().weekdaysShort(this, format); -}); - -addFormatToken('dddd', 0, 0, function (format) { - return this.localeData().weekdays(this, format); -}); - -addFormatToken('e', 0, 0, 'weekday'); -addFormatToken('E', 0, 0, 'isoWeekday'); - -// ALIASES - -addUnitAlias('day', 'd'); -addUnitAlias('weekday', 'e'); -addUnitAlias('isoWeekday', 'E'); - -// PRIORITY -addUnitPriority('day', 11); -addUnitPriority('weekday', 11); -addUnitPriority('isoWeekday', 11); - -// PARSING - -addRegexToken('d', match1to2); -addRegexToken('e', match1to2); -addRegexToken('E', match1to2); -addRegexToken('dd', function (isStrict, locale) { - return locale.weekdaysMinRegex(isStrict); -}); -addRegexToken('ddd', function (isStrict, locale) { - return locale.weekdaysShortRegex(isStrict); -}); -addRegexToken('dddd', function (isStrict, locale) { - return locale.weekdaysRegex(isStrict); -}); - -addWeekParseToken(['dd', 'ddd', 'dddd'], function (input, week, config, token) { - var weekday = config._locale.weekdaysParse(input, token, config._strict); - // if we didn't get a weekday name, mark the date as invalid - if (weekday != null) { - week.d = weekday; - } else { - getParsingFlags(config).invalidWeekday = input; - } -}); - -addWeekParseToken(['d', 'e', 'E'], function (input, week, config, token) { - week[token] = toInt(input); -}); - -// HELPERS - -function parseWeekday(input, locale) { - if (typeof input !== 'string') { - return input; - } - - if (!isNaN(input)) { - return parseInt(input, 10); - } - - input = locale.weekdaysParse(input); - if (typeof input === 'number') { - return input; - } - - return null; -} - -function parseIsoWeekday(input, locale) { - if (typeof input === 'string') { - return locale.weekdaysParse(input) % 7 || 7; - } - return isNaN(input) ? null : input; -} - -// LOCALES - -var defaultLocaleWeekdays = 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split('_'); -function localeWeekdays (m, format) { - if (!m) { - return isArray(this._weekdays) ? this._weekdays : - this._weekdays['standalone']; - } - return isArray(this._weekdays) ? this._weekdays[m.day()] : - this._weekdays[this._weekdays.isFormat.test(format) ? 'format' : 'standalone'][m.day()]; -} - -var defaultLocaleWeekdaysShort = 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'); -function localeWeekdaysShort (m) { - return (m) ? this._weekdaysShort[m.day()] : this._weekdaysShort; -} - -var defaultLocaleWeekdaysMin = 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'); -function localeWeekdaysMin (m) { - return (m) ? this._weekdaysMin[m.day()] : this._weekdaysMin; -} - -function handleStrictParse$1(weekdayName, format, strict) { - var i, ii, mom, llc = weekdayName.toLocaleLowerCase(); - if (!this._weekdaysParse) { - this._weekdaysParse = []; - this._shortWeekdaysParse = []; - this._minWeekdaysParse = []; - - for (i = 0; i < 7; ++i) { - mom = createUTC([2000, 1]).day(i); - this._minWeekdaysParse[i] = this.weekdaysMin(mom, '').toLocaleLowerCase(); - this._shortWeekdaysParse[i] = this.weekdaysShort(mom, '').toLocaleLowerCase(); - this._weekdaysParse[i] = this.weekdays(mom, '').toLocaleLowerCase(); - } - } - - if (strict) { - if (format === 'dddd') { - ii = indexOf$1.call(this._weekdaysParse, llc); - return ii !== -1 ? ii : null; - } else if (format === 'ddd') { - ii = indexOf$1.call(this._shortWeekdaysParse, llc); - return ii !== -1 ? ii : null; - } else { - ii = indexOf$1.call(this._minWeekdaysParse, llc); - return ii !== -1 ? ii : null; - } - } else { - if (format === 'dddd') { - ii = indexOf$1.call(this._weekdaysParse, llc); - if (ii !== -1) { - return ii; - } - ii = indexOf$1.call(this._shortWeekdaysParse, llc); - if (ii !== -1) { - return ii; - } - ii = indexOf$1.call(this._minWeekdaysParse, llc); - return ii !== -1 ? ii : null; - } else if (format === 'ddd') { - ii = indexOf$1.call(this._shortWeekdaysParse, llc); - if (ii !== -1) { - return ii; - } - ii = indexOf$1.call(this._weekdaysParse, llc); - if (ii !== -1) { - return ii; - } - ii = indexOf$1.call(this._minWeekdaysParse, llc); - return ii !== -1 ? ii : null; - } else { - ii = indexOf$1.call(this._minWeekdaysParse, llc); - if (ii !== -1) { - return ii; - } - ii = indexOf$1.call(this._weekdaysParse, llc); - if (ii !== -1) { - return ii; - } - ii = indexOf$1.call(this._shortWeekdaysParse, llc); - return ii !== -1 ? ii : null; - } - } -} - -function localeWeekdaysParse (weekdayName, format, strict) { - var i, mom, regex; - - if (this._weekdaysParseExact) { - return handleStrictParse$1.call(this, weekdayName, format, strict); - } - - if (!this._weekdaysParse) { - this._weekdaysParse = []; - this._minWeekdaysParse = []; - this._shortWeekdaysParse = []; - this._fullWeekdaysParse = []; - } - - for (i = 0; i < 7; i++) { - // make the regex if we don't have it already - - mom = createUTC([2000, 1]).day(i); - if (strict && !this._fullWeekdaysParse[i]) { - this._fullWeekdaysParse[i] = new RegExp('^' + this.weekdays(mom, '').replace('.', '\.?') + '$', 'i'); - this._shortWeekdaysParse[i] = new RegExp('^' + this.weekdaysShort(mom, '').replace('.', '\.?') + '$', 'i'); - this._minWeekdaysParse[i] = new RegExp('^' + this.weekdaysMin(mom, '').replace('.', '\.?') + '$', 'i'); - } - if (!this._weekdaysParse[i]) { - regex = '^' + this.weekdays(mom, '') + '|^' + this.weekdaysShort(mom, '') + '|^' + this.weekdaysMin(mom, ''); - this._weekdaysParse[i] = new RegExp(regex.replace('.', ''), 'i'); - } - // test the regex - if (strict && format === 'dddd' && this._fullWeekdaysParse[i].test(weekdayName)) { - return i; - } else if (strict && format === 'ddd' && this._shortWeekdaysParse[i].test(weekdayName)) { - return i; - } else if (strict && format === 'dd' && this._minWeekdaysParse[i].test(weekdayName)) { - return i; - } else if (!strict && this._weekdaysParse[i].test(weekdayName)) { - return i; - } - } -} - -// MOMENTS - -function getSetDayOfWeek (input) { - if (!this.isValid()) { - return input != null ? this : NaN; - } - var day = this._isUTC ? this._d.getUTCDay() : this._d.getDay(); - if (input != null) { - input = parseWeekday(input, this.localeData()); - return this.add(input - day, 'd'); - } else { - return day; - } -} - -function getSetLocaleDayOfWeek (input) { - if (!this.isValid()) { - return input != null ? this : NaN; - } - var weekday = (this.day() + 7 - this.localeData()._week.dow) % 7; - return input == null ? weekday : this.add(input - weekday, 'd'); -} - -function getSetISODayOfWeek (input) { - if (!this.isValid()) { - return input != null ? this : NaN; - } - - // behaves the same as moment#day except - // as a getter, returns 7 instead of 0 (1-7 range instead of 0-6) - // as a setter, sunday should belong to the previous week. - - if (input != null) { - var weekday = parseIsoWeekday(input, this.localeData()); - return this.day(this.day() % 7 ? weekday : weekday - 7); - } else { - return this.day() || 7; - } -} - -var defaultWeekdaysRegex = matchWord; -function weekdaysRegex (isStrict) { - if (this._weekdaysParseExact) { - if (!hasOwnProp(this, '_weekdaysRegex')) { - computeWeekdaysParse.call(this); - } - if (isStrict) { - return this._weekdaysStrictRegex; - } else { - return this._weekdaysRegex; - } - } else { - if (!hasOwnProp(this, '_weekdaysRegex')) { - this._weekdaysRegex = defaultWeekdaysRegex; - } - return this._weekdaysStrictRegex && isStrict ? - this._weekdaysStrictRegex : this._weekdaysRegex; - } -} - -var defaultWeekdaysShortRegex = matchWord; -function weekdaysShortRegex (isStrict) { - if (this._weekdaysParseExact) { - if (!hasOwnProp(this, '_weekdaysRegex')) { - computeWeekdaysParse.call(this); - } - if (isStrict) { - return this._weekdaysShortStrictRegex; - } else { - return this._weekdaysShortRegex; - } - } else { - if (!hasOwnProp(this, '_weekdaysShortRegex')) { - this._weekdaysShortRegex = defaultWeekdaysShortRegex; - } - return this._weekdaysShortStrictRegex && isStrict ? - this._weekdaysShortStrictRegex : this._weekdaysShortRegex; - } -} - -var defaultWeekdaysMinRegex = matchWord; -function weekdaysMinRegex (isStrict) { - if (this._weekdaysParseExact) { - if (!hasOwnProp(this, '_weekdaysRegex')) { - computeWeekdaysParse.call(this); - } - if (isStrict) { - return this._weekdaysMinStrictRegex; - } else { - return this._weekdaysMinRegex; - } - } else { - if (!hasOwnProp(this, '_weekdaysMinRegex')) { - this._weekdaysMinRegex = defaultWeekdaysMinRegex; - } - return this._weekdaysMinStrictRegex && isStrict ? - this._weekdaysMinStrictRegex : this._weekdaysMinRegex; - } -} - - -function computeWeekdaysParse () { - function cmpLenRev(a, b) { - return b.length - a.length; - } - - var minPieces = [], shortPieces = [], longPieces = [], mixedPieces = [], - i, mom, minp, shortp, longp; - for (i = 0; i < 7; i++) { - // make the regex if we don't have it already - mom = createUTC([2000, 1]).day(i); - minp = this.weekdaysMin(mom, ''); - shortp = this.weekdaysShort(mom, ''); - longp = this.weekdays(mom, ''); - minPieces.push(minp); - shortPieces.push(shortp); - longPieces.push(longp); - mixedPieces.push(minp); - mixedPieces.push(shortp); - mixedPieces.push(longp); - } - // Sorting makes sure if one weekday (or abbr) is a prefix of another it - // will match the longer piece. - minPieces.sort(cmpLenRev); - shortPieces.sort(cmpLenRev); - longPieces.sort(cmpLenRev); - mixedPieces.sort(cmpLenRev); - for (i = 0; i < 7; i++) { - shortPieces[i] = regexEscape(shortPieces[i]); - longPieces[i] = regexEscape(longPieces[i]); - mixedPieces[i] = regexEscape(mixedPieces[i]); - } - - this._weekdaysRegex = new RegExp('^(' + mixedPieces.join('|') + ')', 'i'); - this._weekdaysShortRegex = this._weekdaysRegex; - this._weekdaysMinRegex = this._weekdaysRegex; - - this._weekdaysStrictRegex = new RegExp('^(' + longPieces.join('|') + ')', 'i'); - this._weekdaysShortStrictRegex = new RegExp('^(' + shortPieces.join('|') + ')', 'i'); - this._weekdaysMinStrictRegex = new RegExp('^(' + minPieces.join('|') + ')', 'i'); -} - -// FORMATTING - -function hFormat() { - return this.hours() % 12 || 12; -} - -function kFormat() { - return this.hours() || 24; -} - -addFormatToken('H', ['HH', 2], 0, 'hour'); -addFormatToken('h', ['hh', 2], 0, hFormat); -addFormatToken('k', ['kk', 2], 0, kFormat); - -addFormatToken('hmm', 0, 0, function () { - return '' + hFormat.apply(this) + zeroFill(this.minutes(), 2); -}); - -addFormatToken('hmmss', 0, 0, function () { - return '' + hFormat.apply(this) + zeroFill(this.minutes(), 2) + - zeroFill(this.seconds(), 2); -}); - -addFormatToken('Hmm', 0, 0, function () { - return '' + this.hours() + zeroFill(this.minutes(), 2); -}); - -addFormatToken('Hmmss', 0, 0, function () { - return '' + this.hours() + zeroFill(this.minutes(), 2) + - zeroFill(this.seconds(), 2); -}); - -function meridiem (token, lowercase) { - addFormatToken(token, 0, 0, function () { - return this.localeData().meridiem(this.hours(), this.minutes(), lowercase); - }); -} - -meridiem('a', true); -meridiem('A', false); - -// ALIASES - -addUnitAlias('hour', 'h'); - -// PRIORITY -addUnitPriority('hour', 13); - -// PARSING - -function matchMeridiem (isStrict, locale) { - return locale._meridiemParse; -} - -addRegexToken('a', matchMeridiem); -addRegexToken('A', matchMeridiem); -addRegexToken('H', match1to2); -addRegexToken('h', match1to2); -addRegexToken('k', match1to2); -addRegexToken('HH', match1to2, match2); -addRegexToken('hh', match1to2, match2); -addRegexToken('kk', match1to2, match2); - -addRegexToken('hmm', match3to4); -addRegexToken('hmmss', match5to6); -addRegexToken('Hmm', match3to4); -addRegexToken('Hmmss', match5to6); - -addParseToken(['H', 'HH'], HOUR); -addParseToken(['k', 'kk'], function (input, array, config) { - var kInput = toInt(input); - array[HOUR] = kInput === 24 ? 0 : kInput; -}); -addParseToken(['a', 'A'], function (input, array, config) { - config._isPm = config._locale.isPM(input); - config._meridiem = input; -}); -addParseToken(['h', 'hh'], function (input, array, config) { - array[HOUR] = toInt(input); - getParsingFlags(config).bigHour = true; -}); -addParseToken('hmm', function (input, array, config) { - var pos = input.length - 2; - array[HOUR] = toInt(input.substr(0, pos)); - array[MINUTE] = toInt(input.substr(pos)); - getParsingFlags(config).bigHour = true; -}); -addParseToken('hmmss', function (input, array, config) { - var pos1 = input.length - 4; - var pos2 = input.length - 2; - array[HOUR] = toInt(input.substr(0, pos1)); - array[MINUTE] = toInt(input.substr(pos1, 2)); - array[SECOND] = toInt(input.substr(pos2)); - getParsingFlags(config).bigHour = true; -}); -addParseToken('Hmm', function (input, array, config) { - var pos = input.length - 2; - array[HOUR] = toInt(input.substr(0, pos)); - array[MINUTE] = toInt(input.substr(pos)); -}); -addParseToken('Hmmss', function (input, array, config) { - var pos1 = input.length - 4; - var pos2 = input.length - 2; - array[HOUR] = toInt(input.substr(0, pos1)); - array[MINUTE] = toInt(input.substr(pos1, 2)); - array[SECOND] = toInt(input.substr(pos2)); -}); - -// LOCALES - -function localeIsPM (input) { - // IE8 Quirks Mode & IE7 Standards Mode do not allow accessing strings like arrays - // Using charAt should be more compatible. - return ((input + '').toLowerCase().charAt(0) === 'p'); -} - -var defaultLocaleMeridiemParse = /[ap]\.?m?\.?/i; -function localeMeridiem (hours, minutes, isLower) { - if (hours > 11) { - return isLower ? 'pm' : 'PM'; - } else { - return isLower ? 'am' : 'AM'; - } -} - - -// MOMENTS - -// Setting the hour should keep the time, because the user explicitly -// specified which hour he wants. So trying to maintain the same hour (in -// a new timezone) makes sense. Adding/subtracting hours does not follow -// this rule. -var getSetHour = makeGetSet('Hours', true); - -// months -// week -// weekdays -// meridiem -var baseConfig = { - calendar: defaultCalendar, - longDateFormat: defaultLongDateFormat, - invalidDate: defaultInvalidDate, - ordinal: defaultOrdinal, - dayOfMonthOrdinalParse: defaultDayOfMonthOrdinalParse, - relativeTime: defaultRelativeTime, - - months: defaultLocaleMonths, - monthsShort: defaultLocaleMonthsShort, - - week: defaultLocaleWeek, - - weekdays: defaultLocaleWeekdays, - weekdaysMin: defaultLocaleWeekdaysMin, - weekdaysShort: defaultLocaleWeekdaysShort, - - meridiemParse: defaultLocaleMeridiemParse -}; - -// internal storage for locale config files -var locales = {}; -var localeFamilies = {}; -var globalLocale; - -function normalizeLocale(key) { - return key ? key.toLowerCase().replace('_', '-') : key; -} - -// pick the locale from the array -// try ['en-au', 'en-gb'] as 'en-au', 'en-gb', 'en', as in move through the list trying each -// substring from most specific to least, but move to the next array item if it's a more specific variant than the current root -function chooseLocale(names) { - var i = 0, j, next, locale, split; - - while (i < names.length) { - split = normalizeLocale(names[i]).split('-'); - j = split.length; - next = normalizeLocale(names[i + 1]); - next = next ? next.split('-') : null; - while (j > 0) { - locale = loadLocale(split.slice(0, j).join('-')); - if (locale) { - return locale; - } - if (next && next.length >= j && compareArrays(split, next, true) >= j - 1) { - //the next array item is better than a shallower substring of this one - break; - } - j--; - } - i++; - } - return null; -} - -function loadLocale(name) { - var oldLocale = null; - // TODO: Find a better way to register and load all the locales in Node - if (!locales[name] && (typeof module !== 'undefined') && - module && module.exports) { - try { - oldLocale = globalLocale._abbr; - require('./locale/' + name); - // because defineLocale currently also sets the global locale, we - // want to undo that for lazy loaded locales - getSetGlobalLocale(oldLocale); - } catch (e) { } - } - return locales[name]; -} - -// This function will load locale and then set the global locale. If -// no arguments are passed in, it will simply return the current global -// locale key. -function getSetGlobalLocale (key, values) { - var data; - if (key) { - if (isUndefined(values)) { - data = getLocale(key); - } - else { - data = defineLocale(key, values); - } - - if (data) { - // moment.duration._locale = moment._locale = data; - globalLocale = data; - } - } - - return globalLocale._abbr; -} - -function defineLocale (name, config) { - if (config !== null) { - var parentConfig = baseConfig; - config.abbr = name; - if (locales[name] != null) { - deprecateSimple('defineLocaleOverride', - 'use moment.updateLocale(localeName, config) to change ' + - 'an existing locale. moment.defineLocale(localeName, ' + - 'config) should only be used for creating a new locale ' + - 'See http://momentjs.com/guides/#/warnings/define-locale/ for more info.'); - parentConfig = locales[name]._config; - } else if (config.parentLocale != null) { - if (locales[config.parentLocale] != null) { - parentConfig = locales[config.parentLocale]._config; - } else { - if (!localeFamilies[config.parentLocale]) { - localeFamilies[config.parentLocale] = []; - } - localeFamilies[config.parentLocale].push({ - name: name, - config: config - }); - return null; - } - } - locales[name] = new Locale(mergeConfigs(parentConfig, config)); - - if (localeFamilies[name]) { - localeFamilies[name].forEach(function (x) { - defineLocale(x.name, x.config); - }); - } - - // backwards compat for now: also set the locale - // make sure we set the locale AFTER all child locales have been - // created, so we won't end up with the child locale set. - getSetGlobalLocale(name); - - - return locales[name]; - } else { - // useful for testing - delete locales[name]; - return null; - } -} - -function updateLocale(name, config) { - if (config != null) { - var locale, parentConfig = baseConfig; - // MERGE - if (locales[name] != null) { - parentConfig = locales[name]._config; - } - config = mergeConfigs(parentConfig, config); - locale = new Locale(config); - locale.parentLocale = locales[name]; - locales[name] = locale; - - // backwards compat for now: also set the locale - getSetGlobalLocale(name); - } else { - // pass null for config to unupdate, useful for tests - if (locales[name] != null) { - if (locales[name].parentLocale != null) { - locales[name] = locales[name].parentLocale; - } else if (locales[name] != null) { - delete locales[name]; - } - } - } - return locales[name]; -} - -// returns locale data -function getLocale (key) { - var locale; - - if (key && key._locale && key._locale._abbr) { - key = key._locale._abbr; - } - - if (!key) { - return globalLocale; - } - - if (!isArray(key)) { - //short-circuit everything else - locale = loadLocale(key); - if (locale) { - return locale; - } - key = [key]; - } - - return chooseLocale(key); -} - -function listLocales() { - return keys$1(locales); -} - -function checkOverflow (m) { - var overflow; - var a = m._a; - - if (a && getParsingFlags(m).overflow === -2) { - overflow = - a[MONTH] < 0 || a[MONTH] > 11 ? MONTH : - a[DATE] < 1 || a[DATE] > daysInMonth(a[YEAR], a[MONTH]) ? DATE : - a[HOUR] < 0 || a[HOUR] > 24 || (a[HOUR] === 24 && (a[MINUTE] !== 0 || a[SECOND] !== 0 || a[MILLISECOND] !== 0)) ? HOUR : - a[MINUTE] < 0 || a[MINUTE] > 59 ? MINUTE : - a[SECOND] < 0 || a[SECOND] > 59 ? SECOND : - a[MILLISECOND] < 0 || a[MILLISECOND] > 999 ? MILLISECOND : - -1; - - if (getParsingFlags(m)._overflowDayOfYear && (overflow < YEAR || overflow > DATE)) { - overflow = DATE; - } - if (getParsingFlags(m)._overflowWeeks && overflow === -1) { - overflow = WEEK; - } - if (getParsingFlags(m)._overflowWeekday && overflow === -1) { - overflow = WEEKDAY; - } - - getParsingFlags(m).overflow = overflow; - } - - return m; -} - -// iso 8601 regex -// 0000-00-00 0000-W00 or 0000-W00-0 + T + 00 or 00:00 or 00:00:00 or 00:00:00.000 + +00:00 or +0000 or +00) -var extendedIsoRegex = /^\s*((?:[+-]\d{6}|\d{4})-(?:\d\d-\d\d|W\d\d-\d|W\d\d|\d\d\d|\d\d))(?:(T| )(\d\d(?::\d\d(?::\d\d(?:[.,]\d+)?)?)?)([\+\-]\d\d(?::?\d\d)?|\s*Z)?)?$/; -var basicIsoRegex = /^\s*((?:[+-]\d{6}|\d{4})(?:\d\d\d\d|W\d\d\d|W\d\d|\d\d\d|\d\d))(?:(T| )(\d\d(?:\d\d(?:\d\d(?:[.,]\d+)?)?)?)([\+\-]\d\d(?::?\d\d)?|\s*Z)?)?$/; - -var tzRegex = /Z|[+-]\d\d(?::?\d\d)?/; - -var isoDates = [ - ['YYYYYY-MM-DD', /[+-]\d{6}-\d\d-\d\d/], - ['YYYY-MM-DD', /\d{4}-\d\d-\d\d/], - ['GGGG-[W]WW-E', /\d{4}-W\d\d-\d/], - ['GGGG-[W]WW', /\d{4}-W\d\d/, false], - ['YYYY-DDD', /\d{4}-\d{3}/], - ['YYYY-MM', /\d{4}-\d\d/, false], - ['YYYYYYMMDD', /[+-]\d{10}/], - ['YYYYMMDD', /\d{8}/], - // YYYYMM is NOT allowed by the standard - ['GGGG[W]WWE', /\d{4}W\d{3}/], - ['GGGG[W]WW', /\d{4}W\d{2}/, false], - ['YYYYDDD', /\d{7}/] -]; - -// iso time formats and regexes -var isoTimes = [ - ['HH:mm:ss.SSSS', /\d\d:\d\d:\d\d\.\d+/], - ['HH:mm:ss,SSSS', /\d\d:\d\d:\d\d,\d+/], - ['HH:mm:ss', /\d\d:\d\d:\d\d/], - ['HH:mm', /\d\d:\d\d/], - ['HHmmss.SSSS', /\d\d\d\d\d\d\.\d+/], - ['HHmmss,SSSS', /\d\d\d\d\d\d,\d+/], - ['HHmmss', /\d\d\d\d\d\d/], - ['HHmm', /\d\d\d\d/], - ['HH', /\d\d/] -]; - -var aspNetJsonRegex = /^\/?Date\((\-?\d+)/i; - -// date from iso format -function configFromISO(config) { - var i, l, - string = config._i, - match = extendedIsoRegex.exec(string) || basicIsoRegex.exec(string), - allowTime, dateFormat, timeFormat, tzFormat; - - if (match) { - getParsingFlags(config).iso = true; - - for (i = 0, l = isoDates.length; i < l; i++) { - if (isoDates[i][1].exec(match[1])) { - dateFormat = isoDates[i][0]; - allowTime = isoDates[i][2] !== false; - break; - } - } - if (dateFormat == null) { - config._isValid = false; - return; - } - if (match[3]) { - for (i = 0, l = isoTimes.length; i < l; i++) { - if (isoTimes[i][1].exec(match[3])) { - // match[2] should be 'T' or space - timeFormat = (match[2] || ' ') + isoTimes[i][0]; - break; - } - } - if (timeFormat == null) { - config._isValid = false; - return; - } - } - if (!allowTime && timeFormat != null) { - config._isValid = false; - return; - } - if (match[4]) { - if (tzRegex.exec(match[4])) { - tzFormat = 'Z'; - } else { - config._isValid = false; - return; - } - } - config._f = dateFormat + (timeFormat || '') + (tzFormat || ''); - configFromStringAndFormat(config); - } else { - config._isValid = false; - } -} - -// RFC 2822 regex: For details see https://tools.ietf.org/html/rfc2822#section-3.3 -var basicRfcRegex = /^((?:Mon|Tue|Wed|Thu|Fri|Sat|Sun),?\s)?(\d?\d\s(?:Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\s(?:\d\d)?\d\d\s)(\d\d:\d\d)(\:\d\d)?(\s(?:UT|GMT|[ECMP][SD]T|[A-IK-Za-ik-z]|[+-]\d{4}))$/; - -// date and time from ref 2822 format -function configFromRFC2822(config) { - var string, match, dayFormat, - dateFormat, timeFormat, tzFormat; - var timezones = { - ' GMT': ' +0000', - ' EDT': ' -0400', - ' EST': ' -0500', - ' CDT': ' -0500', - ' CST': ' -0600', - ' MDT': ' -0600', - ' MST': ' -0700', - ' PDT': ' -0700', - ' PST': ' -0800' - }; - var military = 'YXWVUTSRQPONZABCDEFGHIKLM'; - var timezone, timezoneIndex; - - string = config._i - .replace(/\([^\)]*\)|[\n\t]/g, ' ') // Remove comments and folding whitespace - .replace(/(\s\s+)/g, ' ') // Replace multiple-spaces with a single space - .replace(/^\s|\s$/g, ''); // Remove leading and trailing spaces - match = basicRfcRegex.exec(string); - - if (match) { - dayFormat = match[1] ? 'ddd' + ((match[1].length === 5) ? ', ' : ' ') : ''; - dateFormat = 'D MMM ' + ((match[2].length > 10) ? 'YYYY ' : 'YY '); - timeFormat = 'HH:mm' + (match[4] ? ':ss' : ''); - - // TODO: Replace the vanilla JS Date object with an indepentent day-of-week check. - if (match[1]) { // day of week given - var momentDate = new Date(match[2]); - var momentDay = ['Sun','Mon','Tue','Wed','Thu','Fri','Sat'][momentDate.getDay()]; - - if (match[1].substr(0,3) !== momentDay) { - getParsingFlags(config).weekdayMismatch = true; - config._isValid = false; - return; - } - } - - switch (match[5].length) { - case 2: // military - if (timezoneIndex === 0) { - timezone = ' +0000'; - } else { - timezoneIndex = military.indexOf(match[5][1].toUpperCase()) - 12; - timezone = ((timezoneIndex < 0) ? ' -' : ' +') + - (('' + timezoneIndex).replace(/^-?/, '0')).match(/..$/)[0] + '00'; - } - break; - case 4: // Zone - timezone = timezones[match[5]]; - break; - default: // UT or +/-9999 - timezone = timezones[' GMT']; - } - match[5] = timezone; - config._i = match.splice(1).join(''); - tzFormat = ' ZZ'; - config._f = dayFormat + dateFormat + timeFormat + tzFormat; - configFromStringAndFormat(config); - getParsingFlags(config).rfc2822 = true; - } else { - config._isValid = false; - } -} - -// date from iso format or fallback -function configFromString(config) { - var matched = aspNetJsonRegex.exec(config._i); - - if (matched !== null) { - config._d = new Date(+matched[1]); - return; - } - - configFromISO(config); - if (config._isValid === false) { - delete config._isValid; - } else { - return; - } - - configFromRFC2822(config); - if (config._isValid === false) { - delete config._isValid; - } else { - return; - } - - // Final attempt, use Input Fallback - hooks.createFromInputFallback(config); -} - -hooks.createFromInputFallback = deprecate( - 'value provided is not in a recognized RFC2822 or ISO format. moment construction falls back to js Date(), ' + - 'which is not reliable across all browsers and versions. Non RFC2822/ISO date formats are ' + - 'discouraged and will be removed in an upcoming major release. Please refer to ' + - 'http://momentjs.com/guides/#/warnings/js-date/ for more info.', - function (config) { - config._d = new Date(config._i + (config._useUTC ? ' UTC' : '')); - } -); - -// Pick the first defined of two or three arguments. -function defaults(a, b, c) { - if (a != null) { - return a; - } - if (b != null) { - return b; - } - return c; -} - -function currentDateArray(config) { - // hooks is actually the exported moment object - var nowValue = new Date(hooks.now()); - if (config._useUTC) { - return [nowValue.getUTCFullYear(), nowValue.getUTCMonth(), nowValue.getUTCDate()]; - } - return [nowValue.getFullYear(), nowValue.getMonth(), nowValue.getDate()]; -} - -// convert an array to a date. -// the array should mirror the parameters below -// note: all values past the year are optional and will default to the lowest possible value. -// [year, month, day , hour, minute, second, millisecond] -function configFromArray (config) { - var i, date, input = [], currentDate, yearToUse; - - if (config._d) { - return; - } - - currentDate = currentDateArray(config); - - //compute day of the year from weeks and weekdays - if (config._w && config._a[DATE] == null && config._a[MONTH] == null) { - dayOfYearFromWeekInfo(config); - } - - //if the day of the year is set, figure out what it is - if (config._dayOfYear != null) { - yearToUse = defaults(config._a[YEAR], currentDate[YEAR]); - - if (config._dayOfYear > daysInYear(yearToUse) || config._dayOfYear === 0) { - getParsingFlags(config)._overflowDayOfYear = true; - } - - date = createUTCDate(yearToUse, 0, config._dayOfYear); - config._a[MONTH] = date.getUTCMonth(); - config._a[DATE] = date.getUTCDate(); - } - - // Default to current date. - // * if no year, month, day of month are given, default to today - // * if day of month is given, default month and year - // * if month is given, default only year - // * if year is given, don't default anything - for (i = 0; i < 3 && config._a[i] == null; ++i) { - config._a[i] = input[i] = currentDate[i]; - } - - // Zero out whatever was not defaulted, including time - for (; i < 7; i++) { - config._a[i] = input[i] = (config._a[i] == null) ? (i === 2 ? 1 : 0) : config._a[i]; - } - - // Check for 24:00:00.000 - if (config._a[HOUR] === 24 && - config._a[MINUTE] === 0 && - config._a[SECOND] === 0 && - config._a[MILLISECOND] === 0) { - config._nextDay = true; - config._a[HOUR] = 0; - } - - config._d = (config._useUTC ? createUTCDate : createDate).apply(null, input); - // Apply timezone offset from input. The actual utcOffset can be changed - // with parseZone. - if (config._tzm != null) { - config._d.setUTCMinutes(config._d.getUTCMinutes() - config._tzm); - } - - if (config._nextDay) { - config._a[HOUR] = 24; - } -} - -function dayOfYearFromWeekInfo(config) { - var w, weekYear, week, weekday, dow, doy, temp, weekdayOverflow; - - w = config._w; - if (w.GG != null || w.W != null || w.E != null) { - dow = 1; - doy = 4; - - // TODO: We need to take the current isoWeekYear, but that depends on - // how we interpret now (local, utc, fixed offset). So create - // a now version of current config (take local/utc/offset flags, and - // create now). - weekYear = defaults(w.GG, config._a[YEAR], weekOfYear(createLocal(), 1, 4).year); - week = defaults(w.W, 1); - weekday = defaults(w.E, 1); - if (weekday < 1 || weekday > 7) { - weekdayOverflow = true; - } - } else { - dow = config._locale._week.dow; - doy = config._locale._week.doy; - - var curWeek = weekOfYear(createLocal(), dow, doy); - - weekYear = defaults(w.gg, config._a[YEAR], curWeek.year); - - // Default to current week. - week = defaults(w.w, curWeek.week); - - if (w.d != null) { - // weekday -- low day numbers are considered next week - weekday = w.d; - if (weekday < 0 || weekday > 6) { - weekdayOverflow = true; - } - } else if (w.e != null) { - // local weekday -- counting starts from begining of week - weekday = w.e + dow; - if (w.e < 0 || w.e > 6) { - weekdayOverflow = true; - } - } else { - // default to begining of week - weekday = dow; - } - } - if (week < 1 || week > weeksInYear(weekYear, dow, doy)) { - getParsingFlags(config)._overflowWeeks = true; - } else if (weekdayOverflow != null) { - getParsingFlags(config)._overflowWeekday = true; - } else { - temp = dayOfYearFromWeeks(weekYear, week, weekday, dow, doy); - config._a[YEAR] = temp.year; - config._dayOfYear = temp.dayOfYear; - } -} - -// constant that refers to the ISO standard -hooks.ISO_8601 = function () {}; - -// constant that refers to the RFC 2822 form -hooks.RFC_2822 = function () {}; - -// date from string and format string -function configFromStringAndFormat(config) { - // TODO: Move this to another part of the creation flow to prevent circular deps - if (config._f === hooks.ISO_8601) { - configFromISO(config); - return; - } - if (config._f === hooks.RFC_2822) { - configFromRFC2822(config); - return; - } - config._a = []; - getParsingFlags(config).empty = true; - - // This array is used to make a Date, either with `new Date` or `Date.UTC` - var string = '' + config._i, - i, parsedInput, tokens, token, skipped, - stringLength = string.length, - totalParsedInputLength = 0; - - tokens = expandFormat(config._f, config._locale).match(formattingTokens) || []; - - for (i = 0; i < tokens.length; i++) { - token = tokens[i]; - parsedInput = (string.match(getParseRegexForToken(token, config)) || [])[0]; - // console.log('token', token, 'parsedInput', parsedInput, - // 'regex', getParseRegexForToken(token, config)); - if (parsedInput) { - skipped = string.substr(0, string.indexOf(parsedInput)); - if (skipped.length > 0) { - getParsingFlags(config).unusedInput.push(skipped); - } - string = string.slice(string.indexOf(parsedInput) + parsedInput.length); - totalParsedInputLength += parsedInput.length; - } - // don't parse if it's not a known token - if (formatTokenFunctions[token]) { - if (parsedInput) { - getParsingFlags(config).empty = false; - } - else { - getParsingFlags(config).unusedTokens.push(token); - } - addTimeToArrayFromToken(token, parsedInput, config); - } - else if (config._strict && !parsedInput) { - getParsingFlags(config).unusedTokens.push(token); - } - } - - // add remaining unparsed input length to the string - getParsingFlags(config).charsLeftOver = stringLength - totalParsedInputLength; - if (string.length > 0) { - getParsingFlags(config).unusedInput.push(string); - } - - // clear _12h flag if hour is <= 12 - if (config._a[HOUR] <= 12 && - getParsingFlags(config).bigHour === true && - config._a[HOUR] > 0) { - getParsingFlags(config).bigHour = undefined; - } - - getParsingFlags(config).parsedDateParts = config._a.slice(0); - getParsingFlags(config).meridiem = config._meridiem; - // handle meridiem - config._a[HOUR] = meridiemFixWrap(config._locale, config._a[HOUR], config._meridiem); - - configFromArray(config); - checkOverflow(config); -} - - -function meridiemFixWrap (locale, hour, meridiem) { - var isPm; - - if (meridiem == null) { - // nothing to do - return hour; - } - if (locale.meridiemHour != null) { - return locale.meridiemHour(hour, meridiem); - } else if (locale.isPM != null) { - // Fallback - isPm = locale.isPM(meridiem); - if (isPm && hour < 12) { - hour += 12; - } - if (!isPm && hour === 12) { - hour = 0; - } - return hour; - } else { - // this is not supposed to happen - return hour; - } -} - -// date from string and array of format strings -function configFromStringAndArray(config) { - var tempConfig, - bestMoment, - - scoreToBeat, - i, - currentScore; - - if (config._f.length === 0) { - getParsingFlags(config).invalidFormat = true; - config._d = new Date(NaN); - return; - } - - for (i = 0; i < config._f.length; i++) { - currentScore = 0; - tempConfig = copyConfig({}, config); - if (config._useUTC != null) { - tempConfig._useUTC = config._useUTC; - } - tempConfig._f = config._f[i]; - configFromStringAndFormat(tempConfig); - - if (!isValid(tempConfig)) { - continue; - } - - // if there is any input that was not parsed add a penalty for that format - currentScore += getParsingFlags(tempConfig).charsLeftOver; - - //or tokens - currentScore += getParsingFlags(tempConfig).unusedTokens.length * 10; - - getParsingFlags(tempConfig).score = currentScore; - - if (scoreToBeat == null || currentScore < scoreToBeat) { - scoreToBeat = currentScore; - bestMoment = tempConfig; - } - } - - extend(config, bestMoment || tempConfig); -} - -function configFromObject(config) { - if (config._d) { - return; - } - - var i = normalizeObjectUnits(config._i); - config._a = map([i.year, i.month, i.day || i.date, i.hour, i.minute, i.second, i.millisecond], function (obj) { - return obj && parseInt(obj, 10); - }); - - configFromArray(config); -} - -function createFromConfig (config) { - var res = new Moment(checkOverflow(prepareConfig(config))); - if (res._nextDay) { - // Adding is smart enough around DST - res.add(1, 'd'); - res._nextDay = undefined; - } - - return res; -} - -function prepareConfig (config) { - var input = config._i, - format = config._f; - - config._locale = config._locale || getLocale(config._l); - - if (input === null || (format === undefined && input === '')) { - return createInvalid({nullInput: true}); - } - - if (typeof input === 'string') { - config._i = input = config._locale.preparse(input); - } - - if (isMoment(input)) { - return new Moment(checkOverflow(input)); - } else if (isDate(input)) { - config._d = input; - } else if (isArray(format)) { - configFromStringAndArray(config); - } else if (format) { - configFromStringAndFormat(config); - } else { - configFromInput(config); - } - - if (!isValid(config)) { - config._d = null; - } - - return config; -} - -function configFromInput(config) { - var input = config._i; - if (isUndefined(input)) { - config._d = new Date(hooks.now()); - } else if (isDate(input)) { - config._d = new Date(input.valueOf()); - } else if (typeof input === 'string') { - configFromString(config); - } else if (isArray(input)) { - config._a = map(input.slice(0), function (obj) { - return parseInt(obj, 10); - }); - configFromArray(config); - } else if (isObject(input)) { - configFromObject(config); - } else if (isNumber(input)) { - // from milliseconds - config._d = new Date(input); - } else { - hooks.createFromInputFallback(config); - } -} - -function createLocalOrUTC (input, format, locale, strict, isUTC) { - var c = {}; - - if (locale === true || locale === false) { - strict = locale; - locale = undefined; - } - - if ((isObject(input) && isObjectEmpty(input)) || - (isArray(input) && input.length === 0)) { - input = undefined; - } - // object construction must be done this way. - // https://github.com/moment/moment/issues/1423 - c._isAMomentObject = true; - c._useUTC = c._isUTC = isUTC; - c._l = locale; - c._i = input; - c._f = format; - c._strict = strict; - - return createFromConfig(c); -} - -function createLocal (input, format, locale, strict) { - return createLocalOrUTC(input, format, locale, strict, false); -} - -var prototypeMin = deprecate( - 'moment().min is deprecated, use moment.max instead. http://momentjs.com/guides/#/warnings/min-max/', - function () { - var other = createLocal.apply(null, arguments); - if (this.isValid() && other.isValid()) { - return other < this ? this : other; - } else { - return createInvalid(); - } - } -); - -var prototypeMax = deprecate( - 'moment().max is deprecated, use moment.min instead. http://momentjs.com/guides/#/warnings/min-max/', - function () { - var other = createLocal.apply(null, arguments); - if (this.isValid() && other.isValid()) { - return other > this ? this : other; - } else { - return createInvalid(); - } - } -); - -// Pick a moment m from moments so that m[fn](other) is true for all -// other. This relies on the function fn to be transitive. -// -// moments should either be an array of moment objects or an array, whose -// first element is an array of moment objects. -function pickBy(fn, moments) { - var res, i; - if (moments.length === 1 && isArray(moments[0])) { - moments = moments[0]; - } - if (!moments.length) { - return createLocal(); - } - res = moments[0]; - for (i = 1; i < moments.length; ++i) { - if (!moments[i].isValid() || moments[i][fn](res)) { - res = moments[i]; - } - } - return res; -} - -// TODO: Use [].sort instead? -function min () { - var args = [].slice.call(arguments, 0); - - return pickBy('isBefore', args); -} - -function max () { - var args = [].slice.call(arguments, 0); - - return pickBy('isAfter', args); -} - -var now = function () { - return Date.now ? Date.now() : +(new Date()); -}; - -var ordering = ['year', 'quarter', 'month', 'week', 'day', 'hour', 'minute', 'second', 'millisecond']; - -function isDurationValid(m) { - for (var key in m) { - if (!(ordering.indexOf(key) !== -1 && (m[key] == null || !isNaN(m[key])))) { - return false; - } - } - - var unitHasDecimal = false; - for (var i = 0; i < ordering.length; ++i) { - if (m[ordering[i]]) { - if (unitHasDecimal) { - return false; // only allow non-integers for smallest unit - } - if (parseFloat(m[ordering[i]]) !== toInt(m[ordering[i]])) { - unitHasDecimal = true; - } - } - } - - return true; -} - -function isValid$1() { - return this._isValid; -} - -function createInvalid$1() { - return createDuration(NaN); -} - -function Duration (duration) { - var normalizedInput = normalizeObjectUnits(duration), - years = normalizedInput.year || 0, - quarters = normalizedInput.quarter || 0, - months = normalizedInput.month || 0, - weeks = normalizedInput.week || 0, - days = normalizedInput.day || 0, - hours = normalizedInput.hour || 0, - minutes = normalizedInput.minute || 0, - seconds = normalizedInput.second || 0, - milliseconds = normalizedInput.millisecond || 0; - - this._isValid = isDurationValid(normalizedInput); - - // representation for dateAddRemove - this._milliseconds = +milliseconds + - seconds * 1e3 + // 1000 - minutes * 6e4 + // 1000 * 60 - hours * 1000 * 60 * 60; //using 1000 * 60 * 60 instead of 36e5 to avoid floating point rounding errors https://github.com/moment/moment/issues/2978 - // Because of dateAddRemove treats 24 hours as different from a - // day when working around DST, we need to store them separately - this._days = +days + - weeks * 7; - // It is impossible translate months into days without knowing - // which months you are are talking about, so we have to store - // it separately. - this._months = +months + - quarters * 3 + - years * 12; - - this._data = {}; - - this._locale = getLocale(); - - this._bubble(); -} - -function isDuration (obj) { - return obj instanceof Duration; -} - -function absRound (number) { - if (number < 0) { - return Math.round(-1 * number) * -1; - } else { - return Math.round(number); - } -} - -// FORMATTING - -function offset (token, separator) { - addFormatToken(token, 0, 0, function () { - var offset = this.utcOffset(); - var sign = '+'; - if (offset < 0) { - offset = -offset; - sign = '-'; - } - return sign + zeroFill(~~(offset / 60), 2) + separator + zeroFill(~~(offset) % 60, 2); - }); -} - -offset('Z', ':'); -offset('ZZ', ''); - -// PARSING - -addRegexToken('Z', matchShortOffset); -addRegexToken('ZZ', matchShortOffset); -addParseToken(['Z', 'ZZ'], function (input, array, config) { - config._useUTC = true; - config._tzm = offsetFromString(matchShortOffset, input); -}); - -// HELPERS - -// timezone chunker -// '+10:00' > ['10', '00'] -// '-1530' > ['-15', '30'] -var chunkOffset = /([\+\-]|\d\d)/gi; - -function offsetFromString(matcher, string) { - var matches = (string || '').match(matcher); - - if (matches === null) { - return null; - } - - var chunk = matches[matches.length - 1] || []; - var parts = (chunk + '').match(chunkOffset) || ['-', 0, 0]; - var minutes = +(parts[1] * 60) + toInt(parts[2]); - - return minutes === 0 ? - 0 : - parts[0] === '+' ? minutes : -minutes; -} - -// Return a moment from input, that is local/utc/zone equivalent to model. -function cloneWithOffset(input, model) { - var res, diff; - if (model._isUTC) { - res = model.clone(); - diff = (isMoment(input) || isDate(input) ? input.valueOf() : createLocal(input).valueOf()) - res.valueOf(); - // Use low-level api, because this fn is low-level api. - res._d.setTime(res._d.valueOf() + diff); - hooks.updateOffset(res, false); - return res; - } else { - return createLocal(input).local(); - } -} - -function getDateOffset (m) { - // On Firefox.24 Date#getTimezoneOffset returns a floating point. - // https://github.com/moment/moment/pull/1871 - return -Math.round(m._d.getTimezoneOffset() / 15) * 15; -} - -// HOOKS - -// This function will be called whenever a moment is mutated. -// It is intended to keep the offset in sync with the timezone. -hooks.updateOffset = function () {}; - -// MOMENTS - -// keepLocalTime = true means only change the timezone, without -// affecting the local hour. So 5:31:26 +0300 --[utcOffset(2, true)]--> -// 5:31:26 +0200 It is possible that 5:31:26 doesn't exist with offset -// +0200, so we adjust the time as needed, to be valid. -// -// Keeping the time actually adds/subtracts (one hour) -// from the actual represented time. That is why we call updateOffset -// a second time. In case it wants us to change the offset again -// _changeInProgress == true case, then we have to adjust, because -// there is no such time in the given timezone. -function getSetOffset (input, keepLocalTime, keepMinutes) { - var offset = this._offset || 0, - localAdjust; - if (!this.isValid()) { - return input != null ? this : NaN; - } - if (input != null) { - if (typeof input === 'string') { - input = offsetFromString(matchShortOffset, input); - if (input === null) { - return this; - } - } else if (Math.abs(input) < 16 && !keepMinutes) { - input = input * 60; - } - if (!this._isUTC && keepLocalTime) { - localAdjust = getDateOffset(this); - } - this._offset = input; - this._isUTC = true; - if (localAdjust != null) { - this.add(localAdjust, 'm'); - } - if (offset !== input) { - if (!keepLocalTime || this._changeInProgress) { - addSubtract(this, createDuration(input - offset, 'm'), 1, false); - } else if (!this._changeInProgress) { - this._changeInProgress = true; - hooks.updateOffset(this, true); - this._changeInProgress = null; - } - } - return this; - } else { - return this._isUTC ? offset : getDateOffset(this); - } -} - -function getSetZone (input, keepLocalTime) { - if (input != null) { - if (typeof input !== 'string') { - input = -input; - } - - this.utcOffset(input, keepLocalTime); - - return this; - } else { - return -this.utcOffset(); - } -} - -function setOffsetToUTC (keepLocalTime) { - return this.utcOffset(0, keepLocalTime); -} - -function setOffsetToLocal (keepLocalTime) { - if (this._isUTC) { - this.utcOffset(0, keepLocalTime); - this._isUTC = false; - - if (keepLocalTime) { - this.subtract(getDateOffset(this), 'm'); - } - } - return this; -} - -function setOffsetToParsedOffset () { - if (this._tzm != null) { - this.utcOffset(this._tzm, false, true); - } else if (typeof this._i === 'string') { - var tZone = offsetFromString(matchOffset, this._i); - if (tZone != null) { - this.utcOffset(tZone); - } - else { - this.utcOffset(0, true); - } - } - return this; -} - -function hasAlignedHourOffset (input) { - if (!this.isValid()) { - return false; - } - input = input ? createLocal(input).utcOffset() : 0; - - return (this.utcOffset() - input) % 60 === 0; -} - -function isDaylightSavingTime () { - return ( - this.utcOffset() > this.clone().month(0).utcOffset() || - this.utcOffset() > this.clone().month(5).utcOffset() - ); -} - -function isDaylightSavingTimeShifted () { - if (!isUndefined(this._isDSTShifted)) { - return this._isDSTShifted; - } - - var c = {}; - - copyConfig(c, this); - c = prepareConfig(c); - - if (c._a) { - var other = c._isUTC ? createUTC(c._a) : createLocal(c._a); - this._isDSTShifted = this.isValid() && - compareArrays(c._a, other.toArray()) > 0; - } else { - this._isDSTShifted = false; - } - - return this._isDSTShifted; -} - -function isLocal () { - return this.isValid() ? !this._isUTC : false; -} - -function isUtcOffset () { - return this.isValid() ? this._isUTC : false; -} - -function isUtc () { - return this.isValid() ? this._isUTC && this._offset === 0 : false; -} - -// ASP.NET json date format regex -var aspNetRegex = /^(\-)?(?:(\d*)[. ])?(\d+)\:(\d+)(?:\:(\d+)(\.\d*)?)?$/; - -// from http://docs.closure-library.googlecode.com/git/closure_goog_date_date.js.source.html -// somewhat more in line with 4.4.3.2 2004 spec, but allows decimal anywhere -// and further modified to allow for strings containing both week and day -var isoRegex = /^(-)?P(?:(-?[0-9,.]*)Y)?(?:(-?[0-9,.]*)M)?(?:(-?[0-9,.]*)W)?(?:(-?[0-9,.]*)D)?(?:T(?:(-?[0-9,.]*)H)?(?:(-?[0-9,.]*)M)?(?:(-?[0-9,.]*)S)?)?$/; - -function createDuration (input, key) { - var duration = input, - // matching against regexp is expensive, do it on demand - match = null, - sign, - ret, - diffRes; - - if (isDuration(input)) { - duration = { - ms : input._milliseconds, - d : input._days, - M : input._months - }; - } else if (isNumber(input)) { - duration = {}; - if (key) { - duration[key] = input; - } else { - duration.milliseconds = input; - } - } else if (!!(match = aspNetRegex.exec(input))) { - sign = (match[1] === '-') ? -1 : 1; - duration = { - y : 0, - d : toInt(match[DATE]) * sign, - h : toInt(match[HOUR]) * sign, - m : toInt(match[MINUTE]) * sign, - s : toInt(match[SECOND]) * sign, - ms : toInt(absRound(match[MILLISECOND] * 1000)) * sign // the millisecond decimal point is included in the match - }; - } else if (!!(match = isoRegex.exec(input))) { - sign = (match[1] === '-') ? -1 : 1; - duration = { - y : parseIso(match[2], sign), - M : parseIso(match[3], sign), - w : parseIso(match[4], sign), - d : parseIso(match[5], sign), - h : parseIso(match[6], sign), - m : parseIso(match[7], sign), - s : parseIso(match[8], sign) - }; - } else if (duration == null) {// checks for null or undefined - duration = {}; - } else if (typeof duration === 'object' && ('from' in duration || 'to' in duration)) { - diffRes = momentsDifference(createLocal(duration.from), createLocal(duration.to)); - - duration = {}; - duration.ms = diffRes.milliseconds; - duration.M = diffRes.months; - } - - ret = new Duration(duration); - - if (isDuration(input) && hasOwnProp(input, '_locale')) { - ret._locale = input._locale; - } - - return ret; -} - -createDuration.fn = Duration.prototype; -createDuration.invalid = createInvalid$1; - -function parseIso (inp, sign) { - // We'd normally use ~~inp for this, but unfortunately it also - // converts floats to ints. - // inp may be undefined, so careful calling replace on it. - var res = inp && parseFloat(inp.replace(',', '.')); - // apply sign while we're at it - return (isNaN(res) ? 0 : res) * sign; -} - -function positiveMomentsDifference(base, other) { - var res = {milliseconds: 0, months: 0}; - - res.months = other.month() - base.month() + - (other.year() - base.year()) * 12; - if (base.clone().add(res.months, 'M').isAfter(other)) { - --res.months; - } - - res.milliseconds = +other - +(base.clone().add(res.months, 'M')); - - return res; -} - -function momentsDifference(base, other) { - var res; - if (!(base.isValid() && other.isValid())) { - return {milliseconds: 0, months: 0}; - } - - other = cloneWithOffset(other, base); - if (base.isBefore(other)) { - res = positiveMomentsDifference(base, other); - } else { - res = positiveMomentsDifference(other, base); - res.milliseconds = -res.milliseconds; - res.months = -res.months; - } - - return res; -} - -// TODO: remove 'name' arg after deprecation is removed -function createAdder(direction, name) { - return function (val, period) { - var dur, tmp; - //invert the arguments, but complain about it - if (period !== null && !isNaN(+period)) { - deprecateSimple(name, 'moment().' + name + '(period, number) is deprecated. Please use moment().' + name + '(number, period). ' + - 'See http://momentjs.com/guides/#/warnings/add-inverted-param/ for more info.'); - tmp = val; val = period; period = tmp; - } - - val = typeof val === 'string' ? +val : val; - dur = createDuration(val, period); - addSubtract(this, dur, direction); - return this; - }; -} - -function addSubtract (mom, duration, isAdding, updateOffset) { - var milliseconds = duration._milliseconds, - days = absRound(duration._days), - months = absRound(duration._months); - - if (!mom.isValid()) { - // No op - return; - } - - updateOffset = updateOffset == null ? true : updateOffset; - - if (milliseconds) { - mom._d.setTime(mom._d.valueOf() + milliseconds * isAdding); - } - if (days) { - set$1(mom, 'Date', get(mom, 'Date') + days * isAdding); - } - if (months) { - setMonth(mom, get(mom, 'Month') + months * isAdding); - } - if (updateOffset) { - hooks.updateOffset(mom, days || months); - } -} - -var add = createAdder(1, 'add'); -var subtract = createAdder(-1, 'subtract'); - -function getCalendarFormat(myMoment, now) { - var diff = myMoment.diff(now, 'days', true); - return diff < -6 ? 'sameElse' : - diff < -1 ? 'lastWeek' : - diff < 0 ? 'lastDay' : - diff < 1 ? 'sameDay' : - diff < 2 ? 'nextDay' : - diff < 7 ? 'nextWeek' : 'sameElse'; -} - -function calendar$1 (time, formats) { - // We want to compare the start of today, vs this. - // Getting start-of-today depends on whether we're local/utc/offset or not. - var now = time || createLocal(), - sod = cloneWithOffset(now, this).startOf('day'), - format = hooks.calendarFormat(this, sod) || 'sameElse'; - - var output = formats && (isFunction(formats[format]) ? formats[format].call(this, now) : formats[format]); - - return this.format(output || this.localeData().calendar(format, this, createLocal(now))); -} - -function clone () { - return new Moment(this); -} - -function isAfter (input, units) { - var localInput = isMoment(input) ? input : createLocal(input); - if (!(this.isValid() && localInput.isValid())) { - return false; - } - units = normalizeUnits(!isUndefined(units) ? units : 'millisecond'); - if (units === 'millisecond') { - return this.valueOf() > localInput.valueOf(); - } else { - return localInput.valueOf() < this.clone().startOf(units).valueOf(); - } -} - -function isBefore (input, units) { - var localInput = isMoment(input) ? input : createLocal(input); - if (!(this.isValid() && localInput.isValid())) { - return false; - } - units = normalizeUnits(!isUndefined(units) ? units : 'millisecond'); - if (units === 'millisecond') { - return this.valueOf() < localInput.valueOf(); - } else { - return this.clone().endOf(units).valueOf() < localInput.valueOf(); - } -} - -function isBetween (from, to, units, inclusivity) { - inclusivity = inclusivity || '()'; - return (inclusivity[0] === '(' ? this.isAfter(from, units) : !this.isBefore(from, units)) && - (inclusivity[1] === ')' ? this.isBefore(to, units) : !this.isAfter(to, units)); -} - -function isSame (input, units) { - var localInput = isMoment(input) ? input : createLocal(input), - inputMs; - if (!(this.isValid() && localInput.isValid())) { - return false; - } - units = normalizeUnits(units || 'millisecond'); - if (units === 'millisecond') { - return this.valueOf() === localInput.valueOf(); - } else { - inputMs = localInput.valueOf(); - return this.clone().startOf(units).valueOf() <= inputMs && inputMs <= this.clone().endOf(units).valueOf(); - } -} - -function isSameOrAfter (input, units) { - return this.isSame(input, units) || this.isAfter(input,units); -} - -function isSameOrBefore (input, units) { - return this.isSame(input, units) || this.isBefore(input,units); -} - -function diff (input, units, asFloat) { - var that, - zoneDelta, - delta, output; - - if (!this.isValid()) { - return NaN; - } - - that = cloneWithOffset(input, this); - - if (!that.isValid()) { - return NaN; - } - - zoneDelta = (that.utcOffset() - this.utcOffset()) * 6e4; - - units = normalizeUnits(units); - - if (units === 'year' || units === 'month' || units === 'quarter') { - output = monthDiff(this, that); - if (units === 'quarter') { - output = output / 3; - } else if (units === 'year') { - output = output / 12; - } - } else { - delta = this - that; - output = units === 'second' ? delta / 1e3 : // 1000 - units === 'minute' ? delta / 6e4 : // 1000 * 60 - units === 'hour' ? delta / 36e5 : // 1000 * 60 * 60 - units === 'day' ? (delta - zoneDelta) / 864e5 : // 1000 * 60 * 60 * 24, negate dst - units === 'week' ? (delta - zoneDelta) / 6048e5 : // 1000 * 60 * 60 * 24 * 7, negate dst - delta; - } - return asFloat ? output : absFloor(output); -} - -function monthDiff (a, b) { - // difference in months - var wholeMonthDiff = ((b.year() - a.year()) * 12) + (b.month() - a.month()), - // b is in (anchor - 1 month, anchor + 1 month) - anchor = a.clone().add(wholeMonthDiff, 'months'), - anchor2, adjust; - - if (b - anchor < 0) { - anchor2 = a.clone().add(wholeMonthDiff - 1, 'months'); - // linear across the month - adjust = (b - anchor) / (anchor - anchor2); - } else { - anchor2 = a.clone().add(wholeMonthDiff + 1, 'months'); - // linear across the month - adjust = (b - anchor) / (anchor2 - anchor); - } - - //check for negative zero, return zero if negative zero - return -(wholeMonthDiff + adjust) || 0; -} - -hooks.defaultFormat = 'YYYY-MM-DDTHH:mm:ssZ'; -hooks.defaultFormatUtc = 'YYYY-MM-DDTHH:mm:ss[Z]'; - -function toString () { - return this.clone().locale('en').format('ddd MMM DD YYYY HH:mm:ss [GMT]ZZ'); -} - -function toISOString() { - if (!this.isValid()) { - return null; - } - var m = this.clone().utc(); - if (m.year() < 0 || m.year() > 9999) { - return formatMoment(m, 'YYYYYY-MM-DD[T]HH:mm:ss.SSS[Z]'); - } - if (isFunction(Date.prototype.toISOString)) { - // native implementation is ~50x faster, use it when we can - return this.toDate().toISOString(); - } - return formatMoment(m, 'YYYY-MM-DD[T]HH:mm:ss.SSS[Z]'); -} - -/** - * Return a human readable representation of a moment that can - * also be evaluated to get a new moment which is the same - * - * @link https://nodejs.org/dist/latest/docs/api/util.html#util_custom_inspect_function_on_objects - */ -function inspect () { - if (!this.isValid()) { - return 'moment.invalid(/* ' + this._i + ' */)'; - } - var func = 'moment'; - var zone = ''; - if (!this.isLocal()) { - func = this.utcOffset() === 0 ? 'moment.utc' : 'moment.parseZone'; - zone = 'Z'; - } - var prefix = '[' + func + '("]'; - var year = (0 <= this.year() && this.year() <= 9999) ? 'YYYY' : 'YYYYYY'; - var datetime = '-MM-DD[T]HH:mm:ss.SSS'; - var suffix = zone + '[")]'; - - return this.format(prefix + year + datetime + suffix); -} - -function format (inputString) { - if (!inputString) { - inputString = this.isUtc() ? hooks.defaultFormatUtc : hooks.defaultFormat; - } - var output = formatMoment(this, inputString); - return this.localeData().postformat(output); -} - -function from (time, withoutSuffix) { - if (this.isValid() && - ((isMoment(time) && time.isValid()) || - createLocal(time).isValid())) { - return createDuration({to: this, from: time}).locale(this.locale()).humanize(!withoutSuffix); - } else { - return this.localeData().invalidDate(); - } -} - -function fromNow (withoutSuffix) { - return this.from(createLocal(), withoutSuffix); -} - -function to (time, withoutSuffix) { - if (this.isValid() && - ((isMoment(time) && time.isValid()) || - createLocal(time).isValid())) { - return createDuration({from: this, to: time}).locale(this.locale()).humanize(!withoutSuffix); - } else { - return this.localeData().invalidDate(); - } -} - -function toNow (withoutSuffix) { - return this.to(createLocal(), withoutSuffix); -} - -// If passed a locale key, it will set the locale for this -// instance. Otherwise, it will return the locale configuration -// variables for this instance. -function locale (key) { - var newLocaleData; - - if (key === undefined) { - return this._locale._abbr; - } else { - newLocaleData = getLocale(key); - if (newLocaleData != null) { - this._locale = newLocaleData; - } - return this; - } -} - -var lang = deprecate( - 'moment().lang() is deprecated. Instead, use moment().localeData() to get the language configuration. Use moment().locale() to change languages.', - function (key) { - if (key === undefined) { - return this.localeData(); - } else { - return this.locale(key); - } - } -); - -function localeData () { - return this._locale; -} - -function startOf (units) { - units = normalizeUnits(units); - // the following switch intentionally omits break keywords - // to utilize falling through the cases. - switch (units) { - case 'year': - this.month(0); - /* falls through */ - case 'quarter': - case 'month': - this.date(1); - /* falls through */ - case 'week': - case 'isoWeek': - case 'day': - case 'date': - this.hours(0); - /* falls through */ - case 'hour': - this.minutes(0); - /* falls through */ - case 'minute': - this.seconds(0); - /* falls through */ - case 'second': - this.milliseconds(0); - } - - // weeks are a special case - if (units === 'week') { - this.weekday(0); - } - if (units === 'isoWeek') { - this.isoWeekday(1); - } - - // quarters are also special - if (units === 'quarter') { - this.month(Math.floor(this.month() / 3) * 3); - } - - return this; -} - -function endOf (units) { - units = normalizeUnits(units); - if (units === undefined || units === 'millisecond') { - return this; - } - - // 'date' is an alias for 'day', so it should be considered as such. - if (units === 'date') { - units = 'day'; - } - - return this.startOf(units).add(1, (units === 'isoWeek' ? 'week' : units)).subtract(1, 'ms'); -} - -function valueOf () { - return this._d.valueOf() - ((this._offset || 0) * 60000); -} - -function unix () { - return Math.floor(this.valueOf() / 1000); -} - -function toDate () { - return new Date(this.valueOf()); -} - -function toArray () { - var m = this; - return [m.year(), m.month(), m.date(), m.hour(), m.minute(), m.second(), m.millisecond()]; -} - -function toObject () { - var m = this; - return { - years: m.year(), - months: m.month(), - date: m.date(), - hours: m.hours(), - minutes: m.minutes(), - seconds: m.seconds(), - milliseconds: m.milliseconds() - }; -} - -function toJSON () { - // new Date(NaN).toJSON() === null - return this.isValid() ? this.toISOString() : null; -} - -function isValid$2 () { - return isValid(this); -} - -function parsingFlags () { - return extend({}, getParsingFlags(this)); -} - -function invalidAt () { - return getParsingFlags(this).overflow; -} - -function creationData() { - return { - input: this._i, - format: this._f, - locale: this._locale, - isUTC: this._isUTC, - strict: this._strict - }; -} - -// FORMATTING - -addFormatToken(0, ['gg', 2], 0, function () { - return this.weekYear() % 100; -}); - -addFormatToken(0, ['GG', 2], 0, function () { - return this.isoWeekYear() % 100; -}); - -function addWeekYearFormatToken (token, getter) { - addFormatToken(0, [token, token.length], 0, getter); -} - -addWeekYearFormatToken('gggg', 'weekYear'); -addWeekYearFormatToken('ggggg', 'weekYear'); -addWeekYearFormatToken('GGGG', 'isoWeekYear'); -addWeekYearFormatToken('GGGGG', 'isoWeekYear'); - -// ALIASES - -addUnitAlias('weekYear', 'gg'); -addUnitAlias('isoWeekYear', 'GG'); - -// PRIORITY - -addUnitPriority('weekYear', 1); -addUnitPriority('isoWeekYear', 1); - - -// PARSING - -addRegexToken('G', matchSigned); -addRegexToken('g', matchSigned); -addRegexToken('GG', match1to2, match2); -addRegexToken('gg', match1to2, match2); -addRegexToken('GGGG', match1to4, match4); -addRegexToken('gggg', match1to4, match4); -addRegexToken('GGGGG', match1to6, match6); -addRegexToken('ggggg', match1to6, match6); - -addWeekParseToken(['gggg', 'ggggg', 'GGGG', 'GGGGG'], function (input, week, config, token) { - week[token.substr(0, 2)] = toInt(input); -}); - -addWeekParseToken(['gg', 'GG'], function (input, week, config, token) { - week[token] = hooks.parseTwoDigitYear(input); -}); - -// MOMENTS - -function getSetWeekYear (input) { - return getSetWeekYearHelper.call(this, - input, - this.week(), - this.weekday(), - this.localeData()._week.dow, - this.localeData()._week.doy); -} - -function getSetISOWeekYear (input) { - return getSetWeekYearHelper.call(this, - input, this.isoWeek(), this.isoWeekday(), 1, 4); -} - -function getISOWeeksInYear () { - return weeksInYear(this.year(), 1, 4); -} - -function getWeeksInYear () { - var weekInfo = this.localeData()._week; - return weeksInYear(this.year(), weekInfo.dow, weekInfo.doy); -} - -function getSetWeekYearHelper(input, week, weekday, dow, doy) { - var weeksTarget; - if (input == null) { - return weekOfYear(this, dow, doy).year; - } else { - weeksTarget = weeksInYear(input, dow, doy); - if (week > weeksTarget) { - week = weeksTarget; - } - return setWeekAll.call(this, input, week, weekday, dow, doy); - } -} - -function setWeekAll(weekYear, week, weekday, dow, doy) { - var dayOfYearData = dayOfYearFromWeeks(weekYear, week, weekday, dow, doy), - date = createUTCDate(dayOfYearData.year, 0, dayOfYearData.dayOfYear); - - this.year(date.getUTCFullYear()); - this.month(date.getUTCMonth()); - this.date(date.getUTCDate()); - return this; -} - -// FORMATTING - -addFormatToken('Q', 0, 'Qo', 'quarter'); - -// ALIASES - -addUnitAlias('quarter', 'Q'); - -// PRIORITY - -addUnitPriority('quarter', 7); - -// PARSING - -addRegexToken('Q', match1); -addParseToken('Q', function (input, array) { - array[MONTH] = (toInt(input) - 1) * 3; -}); - -// MOMENTS - -function getSetQuarter (input) { - return input == null ? Math.ceil((this.month() + 1) / 3) : this.month((input - 1) * 3 + this.month() % 3); -} - -// FORMATTING - -addFormatToken('D', ['DD', 2], 'Do', 'date'); - -// ALIASES - -addUnitAlias('date', 'D'); - -// PRIOROITY -addUnitPriority('date', 9); - -// PARSING - -addRegexToken('D', match1to2); -addRegexToken('DD', match1to2, match2); -addRegexToken('Do', function (isStrict, locale) { - // TODO: Remove "ordinalParse" fallback in next major release. - return isStrict ? - (locale._dayOfMonthOrdinalParse || locale._ordinalParse) : - locale._dayOfMonthOrdinalParseLenient; -}); - -addParseToken(['D', 'DD'], DATE); -addParseToken('Do', function (input, array) { - array[DATE] = toInt(input.match(match1to2)[0], 10); -}); - -// MOMENTS - -var getSetDayOfMonth = makeGetSet('Date', true); - -// FORMATTING - -addFormatToken('DDD', ['DDDD', 3], 'DDDo', 'dayOfYear'); - -// ALIASES - -addUnitAlias('dayOfYear', 'DDD'); - -// PRIORITY -addUnitPriority('dayOfYear', 4); - -// PARSING - -addRegexToken('DDD', match1to3); -addRegexToken('DDDD', match3); -addParseToken(['DDD', 'DDDD'], function (input, array, config) { - config._dayOfYear = toInt(input); -}); - -// HELPERS - -// MOMENTS - -function getSetDayOfYear (input) { - var dayOfYear = Math.round((this.clone().startOf('day') - this.clone().startOf('year')) / 864e5) + 1; - return input == null ? dayOfYear : this.add((input - dayOfYear), 'd'); -} - -// FORMATTING - -addFormatToken('m', ['mm', 2], 0, 'minute'); - -// ALIASES - -addUnitAlias('minute', 'm'); - -// PRIORITY - -addUnitPriority('minute', 14); - -// PARSING - -addRegexToken('m', match1to2); -addRegexToken('mm', match1to2, match2); -addParseToken(['m', 'mm'], MINUTE); - -// MOMENTS - -var getSetMinute = makeGetSet('Minutes', false); - -// FORMATTING - -addFormatToken('s', ['ss', 2], 0, 'second'); - -// ALIASES - -addUnitAlias('second', 's'); - -// PRIORITY - -addUnitPriority('second', 15); - -// PARSING - -addRegexToken('s', match1to2); -addRegexToken('ss', match1to2, match2); -addParseToken(['s', 'ss'], SECOND); - -// MOMENTS - -var getSetSecond = makeGetSet('Seconds', false); - -// FORMATTING - -addFormatToken('S', 0, 0, function () { - return ~~(this.millisecond() / 100); -}); - -addFormatToken(0, ['SS', 2], 0, function () { - return ~~(this.millisecond() / 10); -}); - -addFormatToken(0, ['SSS', 3], 0, 'millisecond'); -addFormatToken(0, ['SSSS', 4], 0, function () { - return this.millisecond() * 10; -}); -addFormatToken(0, ['SSSSS', 5], 0, function () { - return this.millisecond() * 100; -}); -addFormatToken(0, ['SSSSSS', 6], 0, function () { - return this.millisecond() * 1000; -}); -addFormatToken(0, ['SSSSSSS', 7], 0, function () { - return this.millisecond() * 10000; -}); -addFormatToken(0, ['SSSSSSSS', 8], 0, function () { - return this.millisecond() * 100000; -}); -addFormatToken(0, ['SSSSSSSSS', 9], 0, function () { - return this.millisecond() * 1000000; -}); - - -// ALIASES - -addUnitAlias('millisecond', 'ms'); - -// PRIORITY - -addUnitPriority('millisecond', 16); - -// PARSING - -addRegexToken('S', match1to3, match1); -addRegexToken('SS', match1to3, match2); -addRegexToken('SSS', match1to3, match3); - -var token; -for (token = 'SSSS'; token.length <= 9; token += 'S') { - addRegexToken(token, matchUnsigned); -} - -function parseMs(input, array) { - array[MILLISECOND] = toInt(('0.' + input) * 1000); -} - -for (token = 'S'; token.length <= 9; token += 'S') { - addParseToken(token, parseMs); -} -// MOMENTS - -var getSetMillisecond = makeGetSet('Milliseconds', false); - -// FORMATTING - -addFormatToken('z', 0, 0, 'zoneAbbr'); -addFormatToken('zz', 0, 0, 'zoneName'); - -// MOMENTS - -function getZoneAbbr () { - return this._isUTC ? 'UTC' : ''; -} - -function getZoneName () { - return this._isUTC ? 'Coordinated Universal Time' : ''; -} - -var proto = Moment.prototype; - -proto.add = add; -proto.calendar = calendar$1; -proto.clone = clone; -proto.diff = diff; -proto.endOf = endOf; -proto.format = format; -proto.from = from; -proto.fromNow = fromNow; -proto.to = to; -proto.toNow = toNow; -proto.get = stringGet; -proto.invalidAt = invalidAt; -proto.isAfter = isAfter; -proto.isBefore = isBefore; -proto.isBetween = isBetween; -proto.isSame = isSame; -proto.isSameOrAfter = isSameOrAfter; -proto.isSameOrBefore = isSameOrBefore; -proto.isValid = isValid$2; -proto.lang = lang; -proto.locale = locale; -proto.localeData = localeData; -proto.max = prototypeMax; -proto.min = prototypeMin; -proto.parsingFlags = parsingFlags; -proto.set = stringSet; -proto.startOf = startOf; -proto.subtract = subtract; -proto.toArray = toArray; -proto.toObject = toObject; -proto.toDate = toDate; -proto.toISOString = toISOString; -proto.inspect = inspect; -proto.toJSON = toJSON; -proto.toString = toString; -proto.unix = unix; -proto.valueOf = valueOf; -proto.creationData = creationData; - -// Year -proto.year = getSetYear; -proto.isLeapYear = getIsLeapYear; - -// Week Year -proto.weekYear = getSetWeekYear; -proto.isoWeekYear = getSetISOWeekYear; - -// Quarter -proto.quarter = proto.quarters = getSetQuarter; - -// Month -proto.month = getSetMonth; -proto.daysInMonth = getDaysInMonth; - -// Week -proto.week = proto.weeks = getSetWeek; -proto.isoWeek = proto.isoWeeks = getSetISOWeek; -proto.weeksInYear = getWeeksInYear; -proto.isoWeeksInYear = getISOWeeksInYear; - -// Day -proto.date = getSetDayOfMonth; -proto.day = proto.days = getSetDayOfWeek; -proto.weekday = getSetLocaleDayOfWeek; -proto.isoWeekday = getSetISODayOfWeek; -proto.dayOfYear = getSetDayOfYear; - -// Hour -proto.hour = proto.hours = getSetHour; - -// Minute -proto.minute = proto.minutes = getSetMinute; - -// Second -proto.second = proto.seconds = getSetSecond; - -// Millisecond -proto.millisecond = proto.milliseconds = getSetMillisecond; - -// Offset -proto.utcOffset = getSetOffset; -proto.utc = setOffsetToUTC; -proto.local = setOffsetToLocal; -proto.parseZone = setOffsetToParsedOffset; -proto.hasAlignedHourOffset = hasAlignedHourOffset; -proto.isDST = isDaylightSavingTime; -proto.isLocal = isLocal; -proto.isUtcOffset = isUtcOffset; -proto.isUtc = isUtc; -proto.isUTC = isUtc; - -// Timezone -proto.zoneAbbr = getZoneAbbr; -proto.zoneName = getZoneName; - -// Deprecations -proto.dates = deprecate('dates accessor is deprecated. Use date instead.', getSetDayOfMonth); -proto.months = deprecate('months accessor is deprecated. Use month instead', getSetMonth); -proto.years = deprecate('years accessor is deprecated. Use year instead', getSetYear); -proto.zone = deprecate('moment().zone is deprecated, use moment().utcOffset instead. http://momentjs.com/guides/#/warnings/zone/', getSetZone); -proto.isDSTShifted = deprecate('isDSTShifted is deprecated. See http://momentjs.com/guides/#/warnings/dst-shifted/ for more information', isDaylightSavingTimeShifted); - -function createUnix (input) { - return createLocal(input * 1000); -} - -function createInZone () { - return createLocal.apply(null, arguments).parseZone(); -} - -function preParsePostFormat (string) { - return string; -} - -var proto$1 = Locale.prototype; - -proto$1.calendar = calendar; -proto$1.longDateFormat = longDateFormat; -proto$1.invalidDate = invalidDate; -proto$1.ordinal = ordinal; -proto$1.preparse = preParsePostFormat; -proto$1.postformat = preParsePostFormat; -proto$1.relativeTime = relativeTime; -proto$1.pastFuture = pastFuture; -proto$1.set = set; - -// Month -proto$1.months = localeMonths; -proto$1.monthsShort = localeMonthsShort; -proto$1.monthsParse = localeMonthsParse; -proto$1.monthsRegex = monthsRegex; -proto$1.monthsShortRegex = monthsShortRegex; - -// Week -proto$1.week = localeWeek; -proto$1.firstDayOfYear = localeFirstDayOfYear; -proto$1.firstDayOfWeek = localeFirstDayOfWeek; - -// Day of Week -proto$1.weekdays = localeWeekdays; -proto$1.weekdaysMin = localeWeekdaysMin; -proto$1.weekdaysShort = localeWeekdaysShort; -proto$1.weekdaysParse = localeWeekdaysParse; - -proto$1.weekdaysRegex = weekdaysRegex; -proto$1.weekdaysShortRegex = weekdaysShortRegex; -proto$1.weekdaysMinRegex = weekdaysMinRegex; - -// Hours -proto$1.isPM = localeIsPM; -proto$1.meridiem = localeMeridiem; - -function get$1 (format, index, field, setter) { - var locale = getLocale(); - var utc = createUTC().set(setter, index); - return locale[field](utc, format); -} - -function listMonthsImpl (format, index, field) { - if (isNumber(format)) { - index = format; - format = undefined; - } - - format = format || ''; - - if (index != null) { - return get$1(format, index, field, 'month'); - } - - var i; - var out = []; - for (i = 0; i < 12; i++) { - out[i] = get$1(format, i, field, 'month'); - } - return out; -} - -// () -// (5) -// (fmt, 5) -// (fmt) -// (true) -// (true, 5) -// (true, fmt, 5) -// (true, fmt) -function listWeekdaysImpl (localeSorted, format, index, field) { - if (typeof localeSorted === 'boolean') { - if (isNumber(format)) { - index = format; - format = undefined; - } - - format = format || ''; - } else { - format = localeSorted; - index = format; - localeSorted = false; - - if (isNumber(format)) { - index = format; - format = undefined; - } - - format = format || ''; - } - - var locale = getLocale(), - shift = localeSorted ? locale._week.dow : 0; - - if (index != null) { - return get$1(format, (index + shift) % 7, field, 'day'); - } - - var i; - var out = []; - for (i = 0; i < 7; i++) { - out[i] = get$1(format, (i + shift) % 7, field, 'day'); - } - return out; -} - -function listMonths (format, index) { - return listMonthsImpl(format, index, 'months'); -} - -function listMonthsShort (format, index) { - return listMonthsImpl(format, index, 'monthsShort'); -} - -function listWeekdays (localeSorted, format, index) { - return listWeekdaysImpl(localeSorted, format, index, 'weekdays'); -} - -function listWeekdaysShort (localeSorted, format, index) { - return listWeekdaysImpl(localeSorted, format, index, 'weekdaysShort'); -} - -function listWeekdaysMin (localeSorted, format, index) { - return listWeekdaysImpl(localeSorted, format, index, 'weekdaysMin'); -} - -getSetGlobalLocale('en', { - dayOfMonthOrdinalParse: /\d{1,2}(th|st|nd|rd)/, - ordinal : function (number) { - var b = number % 10, - output = (toInt(number % 100 / 10) === 1) ? 'th' : - (b === 1) ? 'st' : - (b === 2) ? 'nd' : - (b === 3) ? 'rd' : 'th'; - return number + output; - } -}); - -// Side effect imports -hooks.lang = deprecate('moment.lang is deprecated. Use moment.locale instead.', getSetGlobalLocale); -hooks.langData = deprecate('moment.langData is deprecated. Use moment.localeData instead.', getLocale); - -var mathAbs = Math.abs; - -function abs () { - var data = this._data; - - this._milliseconds = mathAbs(this._milliseconds); - this._days = mathAbs(this._days); - this._months = mathAbs(this._months); - - data.milliseconds = mathAbs(data.milliseconds); - data.seconds = mathAbs(data.seconds); - data.minutes = mathAbs(data.minutes); - data.hours = mathAbs(data.hours); - data.months = mathAbs(data.months); - data.years = mathAbs(data.years); - - return this; -} - -function addSubtract$1 (duration, input, value, direction) { - var other = createDuration(input, value); - - duration._milliseconds += direction * other._milliseconds; - duration._days += direction * other._days; - duration._months += direction * other._months; - - return duration._bubble(); -} - -// supports only 2.0-style add(1, 's') or add(duration) -function add$1 (input, value) { - return addSubtract$1(this, input, value, 1); -} - -// supports only 2.0-style subtract(1, 's') or subtract(duration) -function subtract$1 (input, value) { - return addSubtract$1(this, input, value, -1); -} - -function absCeil (number) { - if (number < 0) { - return Math.floor(number); - } else { - return Math.ceil(number); - } -} - -function bubble () { - var milliseconds = this._milliseconds; - var days = this._days; - var months = this._months; - var data = this._data; - var seconds, minutes, hours, years, monthsFromDays; - - // if we have a mix of positive and negative values, bubble down first - // check: https://github.com/moment/moment/issues/2166 - if (!((milliseconds >= 0 && days >= 0 && months >= 0) || - (milliseconds <= 0 && days <= 0 && months <= 0))) { - milliseconds += absCeil(monthsToDays(months) + days) * 864e5; - days = 0; - months = 0; - } - - // The following code bubbles up values, see the tests for - // examples of what that means. - data.milliseconds = milliseconds % 1000; - - seconds = absFloor(milliseconds / 1000); - data.seconds = seconds % 60; - - minutes = absFloor(seconds / 60); - data.minutes = minutes % 60; - - hours = absFloor(minutes / 60); - data.hours = hours % 24; - - days += absFloor(hours / 24); - - // convert days to months - monthsFromDays = absFloor(daysToMonths(days)); - months += monthsFromDays; - days -= absCeil(monthsToDays(monthsFromDays)); - - // 12 months -> 1 year - years = absFloor(months / 12); - months %= 12; - - data.days = days; - data.months = months; - data.years = years; - - return this; -} - -function daysToMonths (days) { - // 400 years have 146097 days (taking into account leap year rules) - // 400 years have 12 months === 4800 - return days * 4800 / 146097; -} - -function monthsToDays (months) { - // the reverse of daysToMonths - return months * 146097 / 4800; -} - -function as (units) { - if (!this.isValid()) { - return NaN; - } - var days; - var months; - var milliseconds = this._milliseconds; - - units = normalizeUnits(units); - - if (units === 'month' || units === 'year') { - days = this._days + milliseconds / 864e5; - months = this._months + daysToMonths(days); - return units === 'month' ? months : months / 12; - } else { - // handle milliseconds separately because of floating point math errors (issue #1867) - days = this._days + Math.round(monthsToDays(this._months)); - switch (units) { - case 'week' : return days / 7 + milliseconds / 6048e5; - case 'day' : return days + milliseconds / 864e5; - case 'hour' : return days * 24 + milliseconds / 36e5; - case 'minute' : return days * 1440 + milliseconds / 6e4; - case 'second' : return days * 86400 + milliseconds / 1000; - // Math.floor prevents floating point math errors here - case 'millisecond': return Math.floor(days * 864e5) + milliseconds; - default: throw new Error('Unknown unit ' + units); - } - } -} - -// TODO: Use this.as('ms')? -function valueOf$1 () { - if (!this.isValid()) { - return NaN; - } - return ( - this._milliseconds + - this._days * 864e5 + - (this._months % 12) * 2592e6 + - toInt(this._months / 12) * 31536e6 - ); -} - -function makeAs (alias) { - return function () { - return this.as(alias); - }; -} - -var asMilliseconds = makeAs('ms'); -var asSeconds = makeAs('s'); -var asMinutes = makeAs('m'); -var asHours = makeAs('h'); -var asDays = makeAs('d'); -var asWeeks = makeAs('w'); -var asMonths = makeAs('M'); -var asYears = makeAs('y'); - -function get$2 (units) { - units = normalizeUnits(units); - return this.isValid() ? this[units + 's']() : NaN; -} - -function makeGetter(name) { - return function () { - return this.isValid() ? this._data[name] : NaN; - }; -} - -var milliseconds = makeGetter('milliseconds'); -var seconds = makeGetter('seconds'); -var minutes = makeGetter('minutes'); -var hours = makeGetter('hours'); -var days = makeGetter('days'); -var months = makeGetter('months'); -var years = makeGetter('years'); - -function weeks () { - return absFloor(this.days() / 7); -} - -var round = Math.round; -var thresholds = { - ss: 44, // a few seconds to seconds - s : 45, // seconds to minute - m : 45, // minutes to hour - h : 22, // hours to day - d : 26, // days to month - M : 11 // months to year -}; - -// helper function for moment.fn.from, moment.fn.fromNow, and moment.duration.fn.humanize -function substituteTimeAgo(string, number, withoutSuffix, isFuture, locale) { - return locale.relativeTime(number || 1, !!withoutSuffix, string, isFuture); -} - -function relativeTime$1 (posNegDuration, withoutSuffix, locale) { - var duration = createDuration(posNegDuration).abs(); - var seconds = round(duration.as('s')); - var minutes = round(duration.as('m')); - var hours = round(duration.as('h')); - var days = round(duration.as('d')); - var months = round(duration.as('M')); - var years = round(duration.as('y')); - - var a = seconds <= thresholds.ss && ['s', seconds] || - seconds < thresholds.s && ['ss', seconds] || - minutes <= 1 && ['m'] || - minutes < thresholds.m && ['mm', minutes] || - hours <= 1 && ['h'] || - hours < thresholds.h && ['hh', hours] || - days <= 1 && ['d'] || - days < thresholds.d && ['dd', days] || - months <= 1 && ['M'] || - months < thresholds.M && ['MM', months] || - years <= 1 && ['y'] || ['yy', years]; - - a[2] = withoutSuffix; - a[3] = +posNegDuration > 0; - a[4] = locale; - return substituteTimeAgo.apply(null, a); -} - -// This function allows you to set the rounding function for relative time strings -function getSetRelativeTimeRounding (roundingFunction) { - if (roundingFunction === undefined) { - return round; - } - if (typeof(roundingFunction) === 'function') { - round = roundingFunction; - return true; - } - return false; -} - -// This function allows you to set a threshold for relative time strings -function getSetRelativeTimeThreshold (threshold, limit) { - if (thresholds[threshold] === undefined) { - return false; - } - if (limit === undefined) { - return thresholds[threshold]; - } - thresholds[threshold] = limit; - if (threshold === 's') { - thresholds.ss = limit - 1; - } - return true; -} - -function humanize (withSuffix) { - if (!this.isValid()) { - return this.localeData().invalidDate(); - } - - var locale = this.localeData(); - var output = relativeTime$1(this, !withSuffix, locale); - - if (withSuffix) { - output = locale.pastFuture(+this, output); - } - - return locale.postformat(output); -} - -var abs$1 = Math.abs; - -function toISOString$1() { - // for ISO strings we do not use the normal bubbling rules: - // * milliseconds bubble up until they become hours - // * days do not bubble at all - // * months bubble up until they become years - // This is because there is no context-free conversion between hours and days - // (think of clock changes) - // and also not between days and months (28-31 days per month) - if (!this.isValid()) { - return this.localeData().invalidDate(); - } - - var seconds = abs$1(this._milliseconds) / 1000; - var days = abs$1(this._days); - var months = abs$1(this._months); - var minutes, hours, years; - - // 3600 seconds -> 60 minutes -> 1 hour - minutes = absFloor(seconds / 60); - hours = absFloor(minutes / 60); - seconds %= 60; - minutes %= 60; - - // 12 months -> 1 year - years = absFloor(months / 12); - months %= 12; - - - // inspired by https://github.com/dordille/moment-isoduration/blob/master/moment.isoduration.js - var Y = years; - var M = months; - var D = days; - var h = hours; - var m = minutes; - var s = seconds; - var total = this.asSeconds(); - - if (!total) { - // this is the same as C#'s (Noda) and python (isodate)... - // but not other JS (goog.date) - return 'P0D'; - } - - return (total < 0 ? '-' : '') + - 'P' + - (Y ? Y + 'Y' : '') + - (M ? M + 'M' : '') + - (D ? D + 'D' : '') + - ((h || m || s) ? 'T' : '') + - (h ? h + 'H' : '') + - (m ? m + 'M' : '') + - (s ? s + 'S' : ''); -} - -var proto$2 = Duration.prototype; - -proto$2.isValid = isValid$1; -proto$2.abs = abs; -proto$2.add = add$1; -proto$2.subtract = subtract$1; -proto$2.as = as; -proto$2.asMilliseconds = asMilliseconds; -proto$2.asSeconds = asSeconds; -proto$2.asMinutes = asMinutes; -proto$2.asHours = asHours; -proto$2.asDays = asDays; -proto$2.asWeeks = asWeeks; -proto$2.asMonths = asMonths; -proto$2.asYears = asYears; -proto$2.valueOf = valueOf$1; -proto$2._bubble = bubble; -proto$2.get = get$2; -proto$2.milliseconds = milliseconds; -proto$2.seconds = seconds; -proto$2.minutes = minutes; -proto$2.hours = hours; -proto$2.days = days; -proto$2.weeks = weeks; -proto$2.months = months; -proto$2.years = years; -proto$2.humanize = humanize; -proto$2.toISOString = toISOString$1; -proto$2.toString = toISOString$1; -proto$2.toJSON = toISOString$1; -proto$2.locale = locale; -proto$2.localeData = localeData; - -// Deprecations -proto$2.toIsoString = deprecate('toIsoString() is deprecated. Please use toISOString() instead (notice the capitals)', toISOString$1); -proto$2.lang = lang; - -// Side effect imports - -// FORMATTING - -addFormatToken('X', 0, 0, 'unix'); -addFormatToken('x', 0, 0, 'valueOf'); - -// PARSING - -addRegexToken('x', matchSigned); -addRegexToken('X', matchTimestamp); -addParseToken('X', function (input, array, config) { - config._d = new Date(parseFloat(input, 10) * 1000); -}); -addParseToken('x', function (input, array, config) { - config._d = new Date(toInt(input)); -}); - -// Side effect imports - - -hooks.version = '2.18.1'; - -setHookCallback(createLocal); - -hooks.fn = proto; -hooks.min = min; -hooks.max = max; -hooks.now = now; -hooks.utc = createUTC; -hooks.unix = createUnix; -hooks.months = listMonths; -hooks.isDate = isDate; -hooks.locale = getSetGlobalLocale; -hooks.invalid = createInvalid; -hooks.duration = createDuration; -hooks.isMoment = isMoment; -hooks.weekdays = listWeekdays; -hooks.parseZone = createInZone; -hooks.localeData = getLocale; -hooks.isDuration = isDuration; -hooks.monthsShort = listMonthsShort; -hooks.weekdaysMin = listWeekdaysMin; -hooks.defineLocale = defineLocale; -hooks.updateLocale = updateLocale; -hooks.locales = listLocales; -hooks.weekdaysShort = listWeekdaysShort; -hooks.normalizeUnits = normalizeUnits; -hooks.relativeTimeRounding = getSetRelativeTimeRounding; -hooks.relativeTimeThreshold = getSetRelativeTimeThreshold; -hooks.calendarFormat = getCalendarFormat; -hooks.prototype = proto; - -return hooks; - -}))); diff --git a/admin/bower_components/moment/src/lib/create/check-overflow.js b/admin/bower_components/moment/src/lib/create/check-overflow.js deleted file mode 100644 index 41b539f..0000000 --- a/admin/bower_components/moment/src/lib/create/check-overflow.js +++ /dev/null @@ -1,34 +0,0 @@ -import { daysInMonth } from '../units/month'; -import { YEAR, MONTH, DATE, HOUR, MINUTE, SECOND, MILLISECOND, WEEK, WEEKDAY } from '../units/constants'; -import getParsingFlags from '../create/parsing-flags'; - -export default function checkOverflow (m) { - var overflow; - var a = m._a; - - if (a && getParsingFlags(m).overflow === -2) { - overflow = - a[MONTH] < 0 || a[MONTH] > 11 ? MONTH : - a[DATE] < 1 || a[DATE] > daysInMonth(a[YEAR], a[MONTH]) ? DATE : - a[HOUR] < 0 || a[HOUR] > 24 || (a[HOUR] === 24 && (a[MINUTE] !== 0 || a[SECOND] !== 0 || a[MILLISECOND] !== 0)) ? HOUR : - a[MINUTE] < 0 || a[MINUTE] > 59 ? MINUTE : - a[SECOND] < 0 || a[SECOND] > 59 ? SECOND : - a[MILLISECOND] < 0 || a[MILLISECOND] > 999 ? MILLISECOND : - -1; - - if (getParsingFlags(m)._overflowDayOfYear && (overflow < YEAR || overflow > DATE)) { - overflow = DATE; - } - if (getParsingFlags(m)._overflowWeeks && overflow === -1) { - overflow = WEEK; - } - if (getParsingFlags(m)._overflowWeekday && overflow === -1) { - overflow = WEEKDAY; - } - - getParsingFlags(m).overflow = overflow; - } - - return m; -} - diff --git a/admin/bower_components/moment/src/lib/create/date-from-array.js b/admin/bower_components/moment/src/lib/create/date-from-array.js deleted file mode 100644 index 59b57b0..0000000 --- a/admin/bower_components/moment/src/lib/create/date-from-array.js +++ /dev/null @@ -1,21 +0,0 @@ -export function createDate (y, m, d, h, M, s, ms) { - // can't just apply() to create a date: - // https://stackoverflow.com/q/181348 - var date = new Date(y, m, d, h, M, s, ms); - - // the date constructor remaps years 0-99 to 1900-1999 - if (y < 100 && y >= 0 && isFinite(date.getFullYear())) { - date.setFullYear(y); - } - return date; -} - -export function createUTCDate (y) { - var date = new Date(Date.UTC.apply(null, arguments)); - - // the Date.UTC function remaps years 0-99 to 1900-1999 - if (y < 100 && y >= 0 && isFinite(date.getUTCFullYear())) { - date.setUTCFullYear(y); - } - return date; -} diff --git a/admin/bower_components/moment/src/lib/create/from-anything.js b/admin/bower_components/moment/src/lib/create/from-anything.js deleted file mode 100644 index e692679..0000000 --- a/admin/bower_components/moment/src/lib/create/from-anything.js +++ /dev/null @@ -1,110 +0,0 @@ -import isArray from '../utils/is-array'; -import isObject from '../utils/is-object'; -import isObjectEmpty from '../utils/is-object-empty'; -import isUndefined from '../utils/is-undefined'; -import isNumber from '../utils/is-number'; -import isDate from '../utils/is-date'; -import map from '../utils/map'; -import { createInvalid } from './valid'; -import { Moment, isMoment } from '../moment/constructor'; -import { getLocale } from '../locale/locales'; -import { hooks } from '../utils/hooks'; -import checkOverflow from './check-overflow'; -import { isValid } from './valid'; - -import { configFromStringAndArray } from './from-string-and-array'; -import { configFromStringAndFormat } from './from-string-and-format'; -import { configFromString } from './from-string'; -import { configFromArray } from './from-array'; -import { configFromObject } from './from-object'; - -function createFromConfig (config) { - var res = new Moment(checkOverflow(prepareConfig(config))); - if (res._nextDay) { - // Adding is smart enough around DST - res.add(1, 'd'); - res._nextDay = undefined; - } - - return res; -} - -export function prepareConfig (config) { - var input = config._i, - format = config._f; - - config._locale = config._locale || getLocale(config._l); - - if (input === null || (format === undefined && input === '')) { - return createInvalid({nullInput: true}); - } - - if (typeof input === 'string') { - config._i = input = config._locale.preparse(input); - } - - if (isMoment(input)) { - return new Moment(checkOverflow(input)); - } else if (isDate(input)) { - config._d = input; - } else if (isArray(format)) { - configFromStringAndArray(config); - } else if (format) { - configFromStringAndFormat(config); - } else { - configFromInput(config); - } - - if (!isValid(config)) { - config._d = null; - } - - return config; -} - -function configFromInput(config) { - var input = config._i; - if (isUndefined(input)) { - config._d = new Date(hooks.now()); - } else if (isDate(input)) { - config._d = new Date(input.valueOf()); - } else if (typeof input === 'string') { - configFromString(config); - } else if (isArray(input)) { - config._a = map(input.slice(0), function (obj) { - return parseInt(obj, 10); - }); - configFromArray(config); - } else if (isObject(input)) { - configFromObject(config); - } else if (isNumber(input)) { - // from milliseconds - config._d = new Date(input); - } else { - hooks.createFromInputFallback(config); - } -} - -export function createLocalOrUTC (input, format, locale, strict, isUTC) { - var c = {}; - - if (locale === true || locale === false) { - strict = locale; - locale = undefined; - } - - if ((isObject(input) && isObjectEmpty(input)) || - (isArray(input) && input.length === 0)) { - input = undefined; - } - // object construction must be done this way. - // https://github.com/moment/moment/issues/1423 - c._isAMomentObject = true; - c._useUTC = c._isUTC = isUTC; - c._l = locale; - c._i = input; - c._f = format; - c._strict = strict; - - return createFromConfig(c); -} diff --git a/admin/bower_components/moment/src/lib/create/from-array.js b/admin/bower_components/moment/src/lib/create/from-array.js deleted file mode 100644 index 0cdf474..0000000 --- a/admin/bower_components/moment/src/lib/create/from-array.js +++ /dev/null @@ -1,140 +0,0 @@ -import { hooks } from '../utils/hooks'; -import { createDate, createUTCDate } from './date-from-array'; -import { daysInYear } from '../units/year'; -import { weekOfYear, weeksInYear, dayOfYearFromWeeks } from '../units/week-calendar-utils'; -import { YEAR, MONTH, DATE, HOUR, MINUTE, SECOND, MILLISECOND } from '../units/constants'; -import { createLocal } from './local'; -import defaults from '../utils/defaults'; -import getParsingFlags from './parsing-flags'; - -function currentDateArray(config) { - // hooks is actually the exported moment object - var nowValue = new Date(hooks.now()); - if (config._useUTC) { - return [nowValue.getUTCFullYear(), nowValue.getUTCMonth(), nowValue.getUTCDate()]; - } - return [nowValue.getFullYear(), nowValue.getMonth(), nowValue.getDate()]; -} - -// convert an array to a date. -// the array should mirror the parameters below -// note: all values past the year are optional and will default to the lowest possible value. -// [year, month, day , hour, minute, second, millisecond] -export function configFromArray (config) { - var i, date, input = [], currentDate, yearToUse; - - if (config._d) { - return; - } - - currentDate = currentDateArray(config); - - //compute day of the year from weeks and weekdays - if (config._w && config._a[DATE] == null && config._a[MONTH] == null) { - dayOfYearFromWeekInfo(config); - } - - //if the day of the year is set, figure out what it is - if (config._dayOfYear != null) { - yearToUse = defaults(config._a[YEAR], currentDate[YEAR]); - - if (config._dayOfYear > daysInYear(yearToUse) || config._dayOfYear === 0) { - getParsingFlags(config)._overflowDayOfYear = true; - } - - date = createUTCDate(yearToUse, 0, config._dayOfYear); - config._a[MONTH] = date.getUTCMonth(); - config._a[DATE] = date.getUTCDate(); - } - - // Default to current date. - // * if no year, month, day of month are given, default to today - // * if day of month is given, default month and year - // * if month is given, default only year - // * if year is given, don't default anything - for (i = 0; i < 3 && config._a[i] == null; ++i) { - config._a[i] = input[i] = currentDate[i]; - } - - // Zero out whatever was not defaulted, including time - for (; i < 7; i++) { - config._a[i] = input[i] = (config._a[i] == null) ? (i === 2 ? 1 : 0) : config._a[i]; - } - - // Check for 24:00:00.000 - if (config._a[HOUR] === 24 && - config._a[MINUTE] === 0 && - config._a[SECOND] === 0 && - config._a[MILLISECOND] === 0) { - config._nextDay = true; - config._a[HOUR] = 0; - } - - config._d = (config._useUTC ? createUTCDate : createDate).apply(null, input); - // Apply timezone offset from input. The actual utcOffset can be changed - // with parseZone. - if (config._tzm != null) { - config._d.setUTCMinutes(config._d.getUTCMinutes() - config._tzm); - } - - if (config._nextDay) { - config._a[HOUR] = 24; - } -} - -function dayOfYearFromWeekInfo(config) { - var w, weekYear, week, weekday, dow, doy, temp, weekdayOverflow; - - w = config._w; - if (w.GG != null || w.W != null || w.E != null) { - dow = 1; - doy = 4; - - // TODO: We need to take the current isoWeekYear, but that depends on - // how we interpret now (local, utc, fixed offset). So create - // a now version of current config (take local/utc/offset flags, and - // create now). - weekYear = defaults(w.GG, config._a[YEAR], weekOfYear(createLocal(), 1, 4).year); - week = defaults(w.W, 1); - weekday = defaults(w.E, 1); - if (weekday < 1 || weekday > 7) { - weekdayOverflow = true; - } - } else { - dow = config._locale._week.dow; - doy = config._locale._week.doy; - - var curWeek = weekOfYear(createLocal(), dow, doy); - - weekYear = defaults(w.gg, config._a[YEAR], curWeek.year); - - // Default to current week. - week = defaults(w.w, curWeek.week); - - if (w.d != null) { - // weekday -- low day numbers are considered next week - weekday = w.d; - if (weekday < 0 || weekday > 6) { - weekdayOverflow = true; - } - } else if (w.e != null) { - // local weekday -- counting starts from begining of week - weekday = w.e + dow; - if (w.e < 0 || w.e > 6) { - weekdayOverflow = true; - } - } else { - // default to begining of week - weekday = dow; - } - } - if (week < 1 || week > weeksInYear(weekYear, dow, doy)) { - getParsingFlags(config)._overflowWeeks = true; - } else if (weekdayOverflow != null) { - getParsingFlags(config)._overflowWeekday = true; - } else { - temp = dayOfYearFromWeeks(weekYear, week, weekday, dow, doy); - config._a[YEAR] = temp.year; - config._dayOfYear = temp.dayOfYear; - } -} diff --git a/admin/bower_components/moment/src/lib/create/from-object.js b/admin/bower_components/moment/src/lib/create/from-object.js deleted file mode 100644 index c0bfe9f..0000000 --- a/admin/bower_components/moment/src/lib/create/from-object.js +++ /dev/null @@ -1,16 +0,0 @@ -import { normalizeObjectUnits } from '../units/aliases'; -import { configFromArray } from './from-array'; -import map from '../utils/map'; - -export function configFromObject(config) { - if (config._d) { - return; - } - - var i = normalizeObjectUnits(config._i); - config._a = map([i.year, i.month, i.day || i.date, i.hour, i.minute, i.second, i.millisecond], function (obj) { - return obj && parseInt(obj, 10); - }); - - configFromArray(config); -} diff --git a/admin/bower_components/moment/src/lib/create/from-string-and-array.js b/admin/bower_components/moment/src/lib/create/from-string-and-array.js deleted file mode 100644 index 1d8a7a8..0000000 --- a/admin/bower_components/moment/src/lib/create/from-string-and-array.js +++ /dev/null @@ -1,50 +0,0 @@ -import { copyConfig } from '../moment/constructor'; -import { configFromStringAndFormat } from './from-string-and-format'; -import getParsingFlags from './parsing-flags'; -import { isValid } from './valid'; -import extend from '../utils/extend'; - -// date from string and array of format strings -export function configFromStringAndArray(config) { - var tempConfig, - bestMoment, - - scoreToBeat, - i, - currentScore; - - if (config._f.length === 0) { - getParsingFlags(config).invalidFormat = true; - config._d = new Date(NaN); - return; - } - - for (i = 0; i < config._f.length; i++) { - currentScore = 0; - tempConfig = copyConfig({}, config); - if (config._useUTC != null) { - tempConfig._useUTC = config._useUTC; - } - tempConfig._f = config._f[i]; - configFromStringAndFormat(tempConfig); - - if (!isValid(tempConfig)) { - continue; - } - - // if there is any input that was not parsed add a penalty for that format - currentScore += getParsingFlags(tempConfig).charsLeftOver; - - //or tokens - currentScore += getParsingFlags(tempConfig).unusedTokens.length * 10; - - getParsingFlags(tempConfig).score = currentScore; - - if (scoreToBeat == null || currentScore < scoreToBeat) { - scoreToBeat = currentScore; - bestMoment = tempConfig; - } - } - - extend(config, bestMoment || tempConfig); -} diff --git a/admin/bower_components/moment/src/lib/create/from-string-and-format.js b/admin/bower_components/moment/src/lib/create/from-string-and-format.js deleted file mode 100644 index ed921d5..0000000 --- a/admin/bower_components/moment/src/lib/create/from-string-and-format.js +++ /dev/null @@ -1,113 +0,0 @@ -import { configFromISO, configFromRFC2822 } from './from-string'; -import { configFromArray } from './from-array'; -import { getParseRegexForToken } from '../parse/regex'; -import { addTimeToArrayFromToken } from '../parse/token'; -import { expandFormat, formatTokenFunctions, formattingTokens } from '../format/format'; -import checkOverflow from './check-overflow'; -import { HOUR } from '../units/constants'; -import { hooks } from '../utils/hooks'; -import getParsingFlags from './parsing-flags'; - -// constant that refers to the ISO standard -hooks.ISO_8601 = function () {}; - -// constant that refers to the RFC 2822 form -hooks.RFC_2822 = function () {}; - -// date from string and format string -export function configFromStringAndFormat(config) { - // TODO: Move this to another part of the creation flow to prevent circular deps - if (config._f === hooks.ISO_8601) { - configFromISO(config); - return; - } - if (config._f === hooks.RFC_2822) { - configFromRFC2822(config); - return; - } - config._a = []; - getParsingFlags(config).empty = true; - - // This array is used to make a Date, either with `new Date` or `Date.UTC` - var string = '' + config._i, - i, parsedInput, tokens, token, skipped, - stringLength = string.length, - totalParsedInputLength = 0; - - tokens = expandFormat(config._f, config._locale).match(formattingTokens) || []; - - for (i = 0; i < tokens.length; i++) { - token = tokens[i]; - parsedInput = (string.match(getParseRegexForToken(token, config)) || [])[0]; - // console.log('token', token, 'parsedInput', parsedInput, - // 'regex', getParseRegexForToken(token, config)); - if (parsedInput) { - skipped = string.substr(0, string.indexOf(parsedInput)); - if (skipped.length > 0) { - getParsingFlags(config).unusedInput.push(skipped); - } - string = string.slice(string.indexOf(parsedInput) + parsedInput.length); - totalParsedInputLength += parsedInput.length; - } - // don't parse if it's not a known token - if (formatTokenFunctions[token]) { - if (parsedInput) { - getParsingFlags(config).empty = false; - } - else { - getParsingFlags(config).unusedTokens.push(token); - } - addTimeToArrayFromToken(token, parsedInput, config); - } - else if (config._strict && !parsedInput) { - getParsingFlags(config).unusedTokens.push(token); - } - } - - // add remaining unparsed input length to the string - getParsingFlags(config).charsLeftOver = stringLength - totalParsedInputLength; - if (string.length > 0) { - getParsingFlags(config).unusedInput.push(string); - } - - // clear _12h flag if hour is <= 12 - if (config._a[HOUR] <= 12 && - getParsingFlags(config).bigHour === true && - config._a[HOUR] > 0) { - getParsingFlags(config).bigHour = undefined; - } - - getParsingFlags(config).parsedDateParts = config._a.slice(0); - getParsingFlags(config).meridiem = config._meridiem; - // handle meridiem - config._a[HOUR] = meridiemFixWrap(config._locale, config._a[HOUR], config._meridiem); - - configFromArray(config); - checkOverflow(config); -} - - -function meridiemFixWrap (locale, hour, meridiem) { - var isPm; - - if (meridiem == null) { - // nothing to do - return hour; - } - if (locale.meridiemHour != null) { - return locale.meridiemHour(hour, meridiem); - } else if (locale.isPM != null) { - // Fallback - isPm = locale.isPM(meridiem); - if (isPm && hour < 12) { - hour += 12; - } - if (!isPm && hour === 12) { - hour = 0; - } - return hour; - } else { - // this is not supposed to happen - return hour; - } -} diff --git a/admin/bower_components/moment/src/lib/create/from-string.js b/admin/bower_components/moment/src/lib/create/from-string.js deleted file mode 100644 index 7cae76d..0000000 --- a/admin/bower_components/moment/src/lib/create/from-string.js +++ /dev/null @@ -1,202 +0,0 @@ -import { configFromStringAndFormat } from './from-string-and-format'; -import { hooks } from '../utils/hooks'; -import { deprecate } from '../utils/deprecate'; -import getParsingFlags from './parsing-flags'; - -// iso 8601 regex -// 0000-00-00 0000-W00 or 0000-W00-0 + T + 00 or 00:00 or 00:00:00 or 00:00:00.000 + +00:00 or +0000 or +00) -var extendedIsoRegex = /^\s*((?:[+-]\d{6}|\d{4})-(?:\d\d-\d\d|W\d\d-\d|W\d\d|\d\d\d|\d\d))(?:(T| )(\d\d(?::\d\d(?::\d\d(?:[.,]\d+)?)?)?)([\+\-]\d\d(?::?\d\d)?|\s*Z)?)?$/; -var basicIsoRegex = /^\s*((?:[+-]\d{6}|\d{4})(?:\d\d\d\d|W\d\d\d|W\d\d|\d\d\d|\d\d))(?:(T| )(\d\d(?:\d\d(?:\d\d(?:[.,]\d+)?)?)?)([\+\-]\d\d(?::?\d\d)?|\s*Z)?)?$/; - -var tzRegex = /Z|[+-]\d\d(?::?\d\d)?/; - -var isoDates = [ - ['YYYYYY-MM-DD', /[+-]\d{6}-\d\d-\d\d/], - ['YYYY-MM-DD', /\d{4}-\d\d-\d\d/], - ['GGGG-[W]WW-E', /\d{4}-W\d\d-\d/], - ['GGGG-[W]WW', /\d{4}-W\d\d/, false], - ['YYYY-DDD', /\d{4}-\d{3}/], - ['YYYY-MM', /\d{4}-\d\d/, false], - ['YYYYYYMMDD', /[+-]\d{10}/], - ['YYYYMMDD', /\d{8}/], - // YYYYMM is NOT allowed by the standard - ['GGGG[W]WWE', /\d{4}W\d{3}/], - ['GGGG[W]WW', /\d{4}W\d{2}/, false], - ['YYYYDDD', /\d{7}/] -]; - -// iso time formats and regexes -var isoTimes = [ - ['HH:mm:ss.SSSS', /\d\d:\d\d:\d\d\.\d+/], - ['HH:mm:ss,SSSS', /\d\d:\d\d:\d\d,\d+/], - ['HH:mm:ss', /\d\d:\d\d:\d\d/], - ['HH:mm', /\d\d:\d\d/], - ['HHmmss.SSSS', /\d\d\d\d\d\d\.\d+/], - ['HHmmss,SSSS', /\d\d\d\d\d\d,\d+/], - ['HHmmss', /\d\d\d\d\d\d/], - ['HHmm', /\d\d\d\d/], - ['HH', /\d\d/] -]; - -var aspNetJsonRegex = /^\/?Date\((\-?\d+)/i; - -// date from iso format -export function configFromISO(config) { - var i, l, - string = config._i, - match = extendedIsoRegex.exec(string) || basicIsoRegex.exec(string), - allowTime, dateFormat, timeFormat, tzFormat; - - if (match) { - getParsingFlags(config).iso = true; - - for (i = 0, l = isoDates.length; i < l; i++) { - if (isoDates[i][1].exec(match[1])) { - dateFormat = isoDates[i][0]; - allowTime = isoDates[i][2] !== false; - break; - } - } - if (dateFormat == null) { - config._isValid = false; - return; - } - if (match[3]) { - for (i = 0, l = isoTimes.length; i < l; i++) { - if (isoTimes[i][1].exec(match[3])) { - // match[2] should be 'T' or space - timeFormat = (match[2] || ' ') + isoTimes[i][0]; - break; - } - } - if (timeFormat == null) { - config._isValid = false; - return; - } - } - if (!allowTime && timeFormat != null) { - config._isValid = false; - return; - } - if (match[4]) { - if (tzRegex.exec(match[4])) { - tzFormat = 'Z'; - } else { - config._isValid = false; - return; - } - } - config._f = dateFormat + (timeFormat || '') + (tzFormat || ''); - configFromStringAndFormat(config); - } else { - config._isValid = false; - } -} - -// RFC 2822 regex: For details see https://tools.ietf.org/html/rfc2822#section-3.3 -var basicRfcRegex = /^((?:Mon|Tue|Wed|Thu|Fri|Sat|Sun),?\s)?(\d?\d\s(?:Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\s(?:\d\d)?\d\d\s)(\d\d:\d\d)(\:\d\d)?(\s(?:UT|GMT|[ECMP][SD]T|[A-IK-Za-ik-z]|[+-]\d{4}))$/; - -// date and time from ref 2822 format -export function configFromRFC2822(config) { - var string, match, dayFormat, - dateFormat, timeFormat, tzFormat; - var timezones = { - ' GMT': ' +0000', - ' EDT': ' -0400', - ' EST': ' -0500', - ' CDT': ' -0500', - ' CST': ' -0600', - ' MDT': ' -0600', - ' MST': ' -0700', - ' PDT': ' -0700', - ' PST': ' -0800' - }; - var military = 'YXWVUTSRQPONZABCDEFGHIKLM'; - var timezone, timezoneIndex; - - string = config._i - .replace(/\([^\)]*\)|[\n\t]/g, ' ') // Remove comments and folding whitespace - .replace(/(\s\s+)/g, ' ') // Replace multiple-spaces with a single space - .replace(/^\s|\s$/g, ''); // Remove leading and trailing spaces - match = basicRfcRegex.exec(string); - - if (match) { - dayFormat = match[1] ? 'ddd' + ((match[1].length === 5) ? ', ' : ' ') : ''; - dateFormat = 'D MMM ' + ((match[2].length > 10) ? 'YYYY ' : 'YY '); - timeFormat = 'HH:mm' + (match[4] ? ':ss' : ''); - - // TODO: Replace the vanilla JS Date object with an indepentent day-of-week check. - if (match[1]) { // day of week given - var momentDate = new Date(match[2]); - var momentDay = ['Sun','Mon','Tue','Wed','Thu','Fri','Sat'][momentDate.getDay()]; - - if (match[1].substr(0,3) !== momentDay) { - getParsingFlags(config).weekdayMismatch = true; - config._isValid = false; - return; - } - } - - switch (match[5].length) { - case 2: // military - if (timezoneIndex === 0) { - timezone = ' +0000'; - } else { - timezoneIndex = military.indexOf(match[5][1].toUpperCase()) - 12; - timezone = ((timezoneIndex < 0) ? ' -' : ' +') + - (('' + timezoneIndex).replace(/^-?/, '0')).match(/..$/)[0] + '00'; - } - break; - case 4: // Zone - timezone = timezones[match[5]]; - break; - default: // UT or +/-9999 - timezone = timezones[' GMT']; - } - match[5] = timezone; - config._i = match.splice(1).join(''); - tzFormat = ' ZZ'; - config._f = dayFormat + dateFormat + timeFormat + tzFormat; - configFromStringAndFormat(config); - getParsingFlags(config).rfc2822 = true; - } else { - config._isValid = false; - } -} - -// date from iso format or fallback -export function configFromString(config) { - var matched = aspNetJsonRegex.exec(config._i); - - if (matched !== null) { - config._d = new Date(+matched[1]); - return; - } - - configFromISO(config); - if (config._isValid === false) { - delete config._isValid; - } else { - return; - } - - configFromRFC2822(config); - if (config._isValid === false) { - delete config._isValid; - } else { - return; - } - - // Final attempt, use Input Fallback - hooks.createFromInputFallback(config); -} - -hooks.createFromInputFallback = deprecate( - 'value provided is not in a recognized RFC2822 or ISO format. moment construction falls back to js Date(), ' + - 'which is not reliable across all browsers and versions. Non RFC2822/ISO date formats are ' + - 'discouraged and will be removed in an upcoming major release. Please refer to ' + - 'http://momentjs.com/guides/#/warnings/js-date/ for more info.', - function (config) { - config._d = new Date(config._i + (config._useUTC ? ' UTC' : '')); - } -); diff --git a/admin/bower_components/moment/src/lib/create/local.js b/admin/bower_components/moment/src/lib/create/local.js deleted file mode 100644 index 88c1e26..0000000 --- a/admin/bower_components/moment/src/lib/create/local.js +++ /dev/null @@ -1,5 +0,0 @@ -import { createLocalOrUTC } from './from-anything'; - -export function createLocal (input, format, locale, strict) { - return createLocalOrUTC(input, format, locale, strict, false); -} diff --git a/admin/bower_components/moment/src/lib/create/parsing-flags.js b/admin/bower_components/moment/src/lib/create/parsing-flags.js deleted file mode 100644 index c47173f..0000000 --- a/admin/bower_components/moment/src/lib/create/parsing-flags.js +++ /dev/null @@ -1,26 +0,0 @@ -function defaultParsingFlags() { - // We need to deep clone this object. - return { - empty : false, - unusedTokens : [], - unusedInput : [], - overflow : -2, - charsLeftOver : 0, - nullInput : false, - invalidMonth : null, - invalidFormat : false, - userInvalidated : false, - iso : false, - parsedDateParts : [], - meridiem : null, - rfc2822 : false, - weekdayMismatch : false - }; -} - -export default function getParsingFlags(m) { - if (m._pf == null) { - m._pf = defaultParsingFlags(); - } - return m._pf; -} diff --git a/admin/bower_components/moment/src/lib/create/utc.js b/admin/bower_components/moment/src/lib/create/utc.js deleted file mode 100644 index 9613953..0000000 --- a/admin/bower_components/moment/src/lib/create/utc.js +++ /dev/null @@ -1,5 +0,0 @@ -import { createLocalOrUTC } from './from-anything'; - -export function createUTC (input, format, locale, strict) { - return createLocalOrUTC(input, format, locale, strict, true).utc(); -} diff --git a/admin/bower_components/moment/src/lib/create/valid.js b/admin/bower_components/moment/src/lib/create/valid.js deleted file mode 100644 index 96b1cf6..0000000 --- a/admin/bower_components/moment/src/lib/create/valid.js +++ /dev/null @@ -1,49 +0,0 @@ -import extend from '../utils/extend'; -import { createUTC } from './utc'; -import getParsingFlags from '../create/parsing-flags'; -import some from '../utils/some'; - -export function isValid(m) { - if (m._isValid == null) { - var flags = getParsingFlags(m); - var parsedParts = some.call(flags.parsedDateParts, function (i) { - return i != null; - }); - var isNowValid = !isNaN(m._d.getTime()) && - flags.overflow < 0 && - !flags.empty && - !flags.invalidMonth && - !flags.invalidWeekday && - !flags.nullInput && - !flags.invalidFormat && - !flags.userInvalidated && - (!flags.meridiem || (flags.meridiem && parsedParts)); - - if (m._strict) { - isNowValid = isNowValid && - flags.charsLeftOver === 0 && - flags.unusedTokens.length === 0 && - flags.bigHour === undefined; - } - - if (Object.isFrozen == null || !Object.isFrozen(m)) { - m._isValid = isNowValid; - } - else { - return isNowValid; - } - } - return m._isValid; -} - -export function createInvalid (flags) { - var m = createUTC(NaN); - if (flags != null) { - extend(getParsingFlags(m), flags); - } - else { - getParsingFlags(m).userInvalidated = true; - } - - return m; -} diff --git a/admin/bower_components/moment/src/lib/duration/abs.js b/admin/bower_components/moment/src/lib/duration/abs.js deleted file mode 100644 index 103a4cf..0000000 --- a/admin/bower_components/moment/src/lib/duration/abs.js +++ /dev/null @@ -1,18 +0,0 @@ -var mathAbs = Math.abs; - -export function abs () { - var data = this._data; - - this._milliseconds = mathAbs(this._milliseconds); - this._days = mathAbs(this._days); - this._months = mathAbs(this._months); - - data.milliseconds = mathAbs(data.milliseconds); - data.seconds = mathAbs(data.seconds); - data.minutes = mathAbs(data.minutes); - data.hours = mathAbs(data.hours); - data.months = mathAbs(data.months); - data.years = mathAbs(data.years); - - return this; -} diff --git a/admin/bower_components/moment/src/lib/duration/add-subtract.js b/admin/bower_components/moment/src/lib/duration/add-subtract.js deleted file mode 100644 index 3b44e18..0000000 --- a/admin/bower_components/moment/src/lib/duration/add-subtract.js +++ /dev/null @@ -1,21 +0,0 @@ -import { createDuration } from './create'; - -function addSubtract (duration, input, value, direction) { - var other = createDuration(input, value); - - duration._milliseconds += direction * other._milliseconds; - duration._days += direction * other._days; - duration._months += direction * other._months; - - return duration._bubble(); -} - -// supports only 2.0-style add(1, 's') or add(duration) -export function add (input, value) { - return addSubtract(this, input, value, 1); -} - -// supports only 2.0-style subtract(1, 's') or subtract(duration) -export function subtract (input, value) { - return addSubtract(this, input, value, -1); -} diff --git a/admin/bower_components/moment/src/lib/duration/as.js b/admin/bower_components/moment/src/lib/duration/as.js deleted file mode 100644 index 122204a..0000000 --- a/admin/bower_components/moment/src/lib/duration/as.js +++ /dev/null @@ -1,61 +0,0 @@ -import { daysToMonths, monthsToDays } from './bubble'; -import { normalizeUnits } from '../units/aliases'; -import toInt from '../utils/to-int'; - -export function as (units) { - if (!this.isValid()) { - return NaN; - } - var days; - var months; - var milliseconds = this._milliseconds; - - units = normalizeUnits(units); - - if (units === 'month' || units === 'year') { - days = this._days + milliseconds / 864e5; - months = this._months + daysToMonths(days); - return units === 'month' ? months : months / 12; - } else { - // handle milliseconds separately because of floating point math errors (issue #1867) - days = this._days + Math.round(monthsToDays(this._months)); - switch (units) { - case 'week' : return days / 7 + milliseconds / 6048e5; - case 'day' : return days + milliseconds / 864e5; - case 'hour' : return days * 24 + milliseconds / 36e5; - case 'minute' : return days * 1440 + milliseconds / 6e4; - case 'second' : return days * 86400 + milliseconds / 1000; - // Math.floor prevents floating point math errors here - case 'millisecond': return Math.floor(days * 864e5) + milliseconds; - default: throw new Error('Unknown unit ' + units); - } - } -} - -// TODO: Use this.as('ms')? -export function valueOf () { - if (!this.isValid()) { - return NaN; - } - return ( - this._milliseconds + - this._days * 864e5 + - (this._months % 12) * 2592e6 + - toInt(this._months / 12) * 31536e6 - ); -} - -function makeAs (alias) { - return function () { - return this.as(alias); - }; -} - -export var asMilliseconds = makeAs('ms'); -export var asSeconds = makeAs('s'); -export var asMinutes = makeAs('m'); -export var asHours = makeAs('h'); -export var asDays = makeAs('d'); -export var asWeeks = makeAs('w'); -export var asMonths = makeAs('M'); -export var asYears = makeAs('y'); diff --git a/admin/bower_components/moment/src/lib/duration/bubble.js b/admin/bower_components/moment/src/lib/duration/bubble.js deleted file mode 100644 index 0c4a336..0000000 --- a/admin/bower_components/moment/src/lib/duration/bubble.js +++ /dev/null @@ -1,61 +0,0 @@ -import absFloor from '../utils/abs-floor'; -import absCeil from '../utils/abs-ceil'; -import { createUTCDate } from '../create/date-from-array'; - -export function bubble () { - var milliseconds = this._milliseconds; - var days = this._days; - var months = this._months; - var data = this._data; - var seconds, minutes, hours, years, monthsFromDays; - - // if we have a mix of positive and negative values, bubble down first - // check: https://github.com/moment/moment/issues/2166 - if (!((milliseconds >= 0 && days >= 0 && months >= 0) || - (milliseconds <= 0 && days <= 0 && months <= 0))) { - milliseconds += absCeil(monthsToDays(months) + days) * 864e5; - days = 0; - months = 0; - } - - // The following code bubbles up values, see the tests for - // examples of what that means. - data.milliseconds = milliseconds % 1000; - - seconds = absFloor(milliseconds / 1000); - data.seconds = seconds % 60; - - minutes = absFloor(seconds / 60); - data.minutes = minutes % 60; - - hours = absFloor(minutes / 60); - data.hours = hours % 24; - - days += absFloor(hours / 24); - - // convert days to months - monthsFromDays = absFloor(daysToMonths(days)); - months += monthsFromDays; - days -= absCeil(monthsToDays(monthsFromDays)); - - // 12 months -> 1 year - years = absFloor(months / 12); - months %= 12; - - data.days = days; - data.months = months; - data.years = years; - - return this; -} - -export function daysToMonths (days) { - // 400 years have 146097 days (taking into account leap year rules) - // 400 years have 12 months === 4800 - return days * 4800 / 146097; -} - -export function monthsToDays (months) { - // the reverse of daysToMonths - return months * 146097 / 4800; -} diff --git a/admin/bower_components/moment/src/lib/duration/constructor.js b/admin/bower_components/moment/src/lib/duration/constructor.js deleted file mode 100644 index 5c97ef1..0000000 --- a/admin/bower_components/moment/src/lib/duration/constructor.js +++ /dev/null @@ -1,44 +0,0 @@ -import { normalizeObjectUnits } from '../units/aliases'; -import { getLocale } from '../locale/locales'; -import isDurationValid from './valid.js'; - -export function Duration (duration) { - var normalizedInput = normalizeObjectUnits(duration), - years = normalizedInput.year || 0, - quarters = normalizedInput.quarter || 0, - months = normalizedInput.month || 0, - weeks = normalizedInput.week || 0, - days = normalizedInput.day || 0, - hours = normalizedInput.hour || 0, - minutes = normalizedInput.minute || 0, - seconds = normalizedInput.second || 0, - milliseconds = normalizedInput.millisecond || 0; - - this._isValid = isDurationValid(normalizedInput); - - // representation for dateAddRemove - this._milliseconds = +milliseconds + - seconds * 1e3 + // 1000 - minutes * 6e4 + // 1000 * 60 - hours * 1000 * 60 * 60; //using 1000 * 60 * 60 instead of 36e5 to avoid floating point rounding errors https://github.com/moment/moment/issues/2978 - // Because of dateAddRemove treats 24 hours as different from a - // day when working around DST, we need to store them separately - this._days = +days + - weeks * 7; - // It is impossible translate months into days without knowing - // which months you are are talking about, so we have to store - // it separately. - this._months = +months + - quarters * 3 + - years * 12; - - this._data = {}; - - this._locale = getLocale(); - - this._bubble(); -} - -export function isDuration (obj) { - return obj instanceof Duration; -} diff --git a/admin/bower_components/moment/src/lib/duration/create.js b/admin/bower_components/moment/src/lib/duration/create.js deleted file mode 100644 index 9b6d5a9..0000000 --- a/admin/bower_components/moment/src/lib/duration/create.js +++ /dev/null @@ -1,122 +0,0 @@ -import { Duration, isDuration } from './constructor'; -import isNumber from '../utils/is-number'; -import toInt from '../utils/to-int'; -import absRound from '../utils/abs-round'; -import hasOwnProp from '../utils/has-own-prop'; -import { DATE, HOUR, MINUTE, SECOND, MILLISECOND } from '../units/constants'; -import { cloneWithOffset } from '../units/offset'; -import { createLocal } from '../create/local'; -import { createInvalid as invalid } from './valid'; - -// ASP.NET json date format regex -var aspNetRegex = /^(\-)?(?:(\d*)[. ])?(\d+)\:(\d+)(?:\:(\d+)(\.\d*)?)?$/; - -// from http://docs.closure-library.googlecode.com/git/closure_goog_date_date.js.source.html -// somewhat more in line with 4.4.3.2 2004 spec, but allows decimal anywhere -// and further modified to allow for strings containing both week and day -var isoRegex = /^(-)?P(?:(-?[0-9,.]*)Y)?(?:(-?[0-9,.]*)M)?(?:(-?[0-9,.]*)W)?(?:(-?[0-9,.]*)D)?(?:T(?:(-?[0-9,.]*)H)?(?:(-?[0-9,.]*)M)?(?:(-?[0-9,.]*)S)?)?$/; - -export function createDuration (input, key) { - var duration = input, - // matching against regexp is expensive, do it on demand - match = null, - sign, - ret, - diffRes; - - if (isDuration(input)) { - duration = { - ms : input._milliseconds, - d : input._days, - M : input._months - }; - } else if (isNumber(input)) { - duration = {}; - if (key) { - duration[key] = input; - } else { - duration.milliseconds = input; - } - } else if (!!(match = aspNetRegex.exec(input))) { - sign = (match[1] === '-') ? -1 : 1; - duration = { - y : 0, - d : toInt(match[DATE]) * sign, - h : toInt(match[HOUR]) * sign, - m : toInt(match[MINUTE]) * sign, - s : toInt(match[SECOND]) * sign, - ms : toInt(absRound(match[MILLISECOND] * 1000)) * sign // the millisecond decimal point is included in the match - }; - } else if (!!(match = isoRegex.exec(input))) { - sign = (match[1] === '-') ? -1 : 1; - duration = { - y : parseIso(match[2], sign), - M : parseIso(match[3], sign), - w : parseIso(match[4], sign), - d : parseIso(match[5], sign), - h : parseIso(match[6], sign), - m : parseIso(match[7], sign), - s : parseIso(match[8], sign) - }; - } else if (duration == null) {// checks for null or undefined - duration = {}; - } else if (typeof duration === 'object' && ('from' in duration || 'to' in duration)) { - diffRes = momentsDifference(createLocal(duration.from), createLocal(duration.to)); - - duration = {}; - duration.ms = diffRes.milliseconds; - duration.M = diffRes.months; - } - - ret = new Duration(duration); - - if (isDuration(input) && hasOwnProp(input, '_locale')) { - ret._locale = input._locale; - } - - return ret; -} - -createDuration.fn = Duration.prototype; -createDuration.invalid = invalid; - -function parseIso (inp, sign) { - // We'd normally use ~~inp for this, but unfortunately it also - // converts floats to ints. - // inp may be undefined, so careful calling replace on it. - var res = inp && parseFloat(inp.replace(',', '.')); - // apply sign while we're at it - return (isNaN(res) ? 0 : res) * sign; -} - -function positiveMomentsDifference(base, other) { - var res = {milliseconds: 0, months: 0}; - - res.months = other.month() - base.month() + - (other.year() - base.year()) * 12; - if (base.clone().add(res.months, 'M').isAfter(other)) { - --res.months; - } - - res.milliseconds = +other - +(base.clone().add(res.months, 'M')); - - return res; -} - -function momentsDifference(base, other) { - var res; - if (!(base.isValid() && other.isValid())) { - return {milliseconds: 0, months: 0}; - } - - other = cloneWithOffset(other, base); - if (base.isBefore(other)) { - res = positiveMomentsDifference(base, other); - } else { - res = positiveMomentsDifference(other, base); - res.milliseconds = -res.milliseconds; - res.months = -res.months; - } - - return res; -} diff --git a/admin/bower_components/moment/src/lib/duration/duration.js b/admin/bower_components/moment/src/lib/duration/duration.js deleted file mode 100644 index 528b568..0000000 --- a/admin/bower_components/moment/src/lib/duration/duration.js +++ /dev/null @@ -1,16 +0,0 @@ -// Side effect imports -import './prototype'; - -import { createDuration } from './create'; -import { isDuration } from './constructor'; -import { - getSetRelativeTimeRounding, - getSetRelativeTimeThreshold -} from './humanize'; - -export { - createDuration, - isDuration, - getSetRelativeTimeRounding, - getSetRelativeTimeThreshold -}; diff --git a/admin/bower_components/moment/src/lib/duration/get.js b/admin/bower_components/moment/src/lib/duration/get.js deleted file mode 100644 index 8993e07..0000000 --- a/admin/bower_components/moment/src/lib/duration/get.js +++ /dev/null @@ -1,25 +0,0 @@ -import { normalizeUnits } from '../units/aliases'; -import absFloor from '../utils/abs-floor'; - -export function get (units) { - units = normalizeUnits(units); - return this.isValid() ? this[units + 's']() : NaN; -} - -function makeGetter(name) { - return function () { - return this.isValid() ? this._data[name] : NaN; - }; -} - -export var milliseconds = makeGetter('milliseconds'); -export var seconds = makeGetter('seconds'); -export var minutes = makeGetter('minutes'); -export var hours = makeGetter('hours'); -export var days = makeGetter('days'); -export var months = makeGetter('months'); -export var years = makeGetter('years'); - -export function weeks () { - return absFloor(this.days() / 7); -} diff --git a/admin/bower_components/moment/src/lib/duration/humanize.js b/admin/bower_components/moment/src/lib/duration/humanize.js deleted file mode 100644 index 454b01a..0000000 --- a/admin/bower_components/moment/src/lib/duration/humanize.js +++ /dev/null @@ -1,85 +0,0 @@ -import { createDuration } from './create'; - -var round = Math.round; -var thresholds = { - ss: 44, // a few seconds to seconds - s : 45, // seconds to minute - m : 45, // minutes to hour - h : 22, // hours to day - d : 26, // days to month - M : 11 // months to year -}; - -// helper function for moment.fn.from, moment.fn.fromNow, and moment.duration.fn.humanize -function substituteTimeAgo(string, number, withoutSuffix, isFuture, locale) { - return locale.relativeTime(number || 1, !!withoutSuffix, string, isFuture); -} - -function relativeTime (posNegDuration, withoutSuffix, locale) { - var duration = createDuration(posNegDuration).abs(); - var seconds = round(duration.as('s')); - var minutes = round(duration.as('m')); - var hours = round(duration.as('h')); - var days = round(duration.as('d')); - var months = round(duration.as('M')); - var years = round(duration.as('y')); - - var a = seconds <= thresholds.ss && ['s', seconds] || - seconds < thresholds.s && ['ss', seconds] || - minutes <= 1 && ['m'] || - minutes < thresholds.m && ['mm', minutes] || - hours <= 1 && ['h'] || - hours < thresholds.h && ['hh', hours] || - days <= 1 && ['d'] || - days < thresholds.d && ['dd', days] || - months <= 1 && ['M'] || - months < thresholds.M && ['MM', months] || - years <= 1 && ['y'] || ['yy', years]; - - a[2] = withoutSuffix; - a[3] = +posNegDuration > 0; - a[4] = locale; - return substituteTimeAgo.apply(null, a); -} - -// This function allows you to set the rounding function for relative time strings -export function getSetRelativeTimeRounding (roundingFunction) { - if (roundingFunction === undefined) { - return round; - } - if (typeof(roundingFunction) === 'function') { - round = roundingFunction; - return true; - } - return false; -} - -// This function allows you to set a threshold for relative time strings -export function getSetRelativeTimeThreshold (threshold, limit) { - if (thresholds[threshold] === undefined) { - return false; - } - if (limit === undefined) { - return thresholds[threshold]; - } - thresholds[threshold] = limit; - if (threshold === 's') { - thresholds.ss = limit - 1; - } - return true; -} - -export function humanize (withSuffix) { - if (!this.isValid()) { - return this.localeData().invalidDate(); - } - - var locale = this.localeData(); - var output = relativeTime(this, !withSuffix, locale); - - if (withSuffix) { - output = locale.pastFuture(+this, output); - } - - return locale.postformat(output); -} diff --git a/admin/bower_components/moment/src/lib/duration/iso-string.js b/admin/bower_components/moment/src/lib/duration/iso-string.js deleted file mode 100644 index 7bb0228..0000000 --- a/admin/bower_components/moment/src/lib/duration/iso-string.js +++ /dev/null @@ -1,56 +0,0 @@ -import absFloor from '../utils/abs-floor'; -var abs = Math.abs; - -export function toISOString() { - // for ISO strings we do not use the normal bubbling rules: - // * milliseconds bubble up until they become hours - // * days do not bubble at all - // * months bubble up until they become years - // This is because there is no context-free conversion between hours and days - // (think of clock changes) - // and also not between days and months (28-31 days per month) - if (!this.isValid()) { - return this.localeData().invalidDate(); - } - - var seconds = abs(this._milliseconds) / 1000; - var days = abs(this._days); - var months = abs(this._months); - var minutes, hours, years; - - // 3600 seconds -> 60 minutes -> 1 hour - minutes = absFloor(seconds / 60); - hours = absFloor(minutes / 60); - seconds %= 60; - minutes %= 60; - - // 12 months -> 1 year - years = absFloor(months / 12); - months %= 12; - - - // inspired by https://github.com/dordille/moment-isoduration/blob/master/moment.isoduration.js - var Y = years; - var M = months; - var D = days; - var h = hours; - var m = minutes; - var s = seconds; - var total = this.asSeconds(); - - if (!total) { - // this is the same as C#'s (Noda) and python (isodate)... - // but not other JS (goog.date) - return 'P0D'; - } - - return (total < 0 ? '-' : '') + - 'P' + - (Y ? Y + 'Y' : '') + - (M ? M + 'M' : '') + - (D ? D + 'D' : '') + - ((h || m || s) ? 'T' : '') + - (h ? h + 'H' : '') + - (m ? m + 'M' : '') + - (s ? s + 'S' : ''); -} diff --git a/admin/bower_components/moment/src/lib/duration/prototype.js b/admin/bower_components/moment/src/lib/duration/prototype.js deleted file mode 100644 index d923375..0000000 --- a/admin/bower_components/moment/src/lib/duration/prototype.js +++ /dev/null @@ -1,50 +0,0 @@ -import { Duration } from './constructor'; - -var proto = Duration.prototype; - -import { abs } from './abs'; -import { add, subtract } from './add-subtract'; -import { as, asMilliseconds, asSeconds, asMinutes, asHours, asDays, asWeeks, asMonths, asYears, valueOf } from './as'; -import { bubble } from './bubble'; -import { get, milliseconds, seconds, minutes, hours, days, months, years, weeks } from './get'; -import { humanize } from './humanize'; -import { toISOString } from './iso-string'; -import { lang, locale, localeData } from '../moment/locale'; -import { isValid } from './valid'; - -proto.isValid = isValid; -proto.abs = abs; -proto.add = add; -proto.subtract = subtract; -proto.as = as; -proto.asMilliseconds = asMilliseconds; -proto.asSeconds = asSeconds; -proto.asMinutes = asMinutes; -proto.asHours = asHours; -proto.asDays = asDays; -proto.asWeeks = asWeeks; -proto.asMonths = asMonths; -proto.asYears = asYears; -proto.valueOf = valueOf; -proto._bubble = bubble; -proto.get = get; -proto.milliseconds = milliseconds; -proto.seconds = seconds; -proto.minutes = minutes; -proto.hours = hours; -proto.days = days; -proto.weeks = weeks; -proto.months = months; -proto.years = years; -proto.humanize = humanize; -proto.toISOString = toISOString; -proto.toString = toISOString; -proto.toJSON = toISOString; -proto.locale = locale; -proto.localeData = localeData; - -// Deprecations -import { deprecate } from '../utils/deprecate'; - -proto.toIsoString = deprecate('toIsoString() is deprecated. Please use toISOString() instead (notice the capitals)', toISOString); -proto.lang = lang; diff --git a/admin/bower_components/moment/src/lib/duration/valid.js b/admin/bower_components/moment/src/lib/duration/valid.js deleted file mode 100644 index 842585f..0000000 --- a/admin/bower_components/moment/src/lib/duration/valid.js +++ /dev/null @@ -1,35 +0,0 @@ -import toInt from '../utils/to-int'; -import {Duration} from './constructor'; -import {createDuration} from './create'; - -var ordering = ['year', 'quarter', 'month', 'week', 'day', 'hour', 'minute', 'second', 'millisecond']; - -export default function isDurationValid(m) { - for (var key in m) { - if (!(ordering.indexOf(key) !== -1 && (m[key] == null || !isNaN(m[key])))) { - return false; - } - } - - var unitHasDecimal = false; - for (var i = 0; i < ordering.length; ++i) { - if (m[ordering[i]]) { - if (unitHasDecimal) { - return false; // only allow non-integers for smallest unit - } - if (parseFloat(m[ordering[i]]) !== toInt(m[ordering[i]])) { - unitHasDecimal = true; - } - } - } - - return true; -} - -export function isValid() { - return this._isValid; -} - -export function createInvalid() { - return createDuration(NaN); -} diff --git a/admin/bower_components/moment/src/lib/format/format.js b/admin/bower_components/moment/src/lib/format/format.js deleted file mode 100644 index 03f5c58..0000000 --- a/admin/bower_components/moment/src/lib/format/format.js +++ /dev/null @@ -1,92 +0,0 @@ -import zeroFill from '../utils/zero-fill'; -import isFunction from '../utils/is-function'; - -export var formattingTokens = /(\[[^\[]*\])|(\\)?([Hh]mm(ss)?|Mo|MM?M?M?|Do|DDDo|DD?D?D?|ddd?d?|do?|w[o|w]?|W[o|W]?|Qo?|YYYYYY|YYYYY|YYYY|YY|gg(ggg?)?|GG(GGG?)?|e|E|a|A|hh?|HH?|kk?|mm?|ss?|S{1,9}|x|X|zz?|ZZ?|.)/g; - -var localFormattingTokens = /(\[[^\[]*\])|(\\)?(LTS|LT|LL?L?L?|l{1,4})/g; - -var formatFunctions = {}; - -export var formatTokenFunctions = {}; - -// token: 'M' -// padded: ['MM', 2] -// ordinal: 'Mo' -// callback: function () { this.month() + 1 } -export function addFormatToken (token, padded, ordinal, callback) { - var func = callback; - if (typeof callback === 'string') { - func = function () { - return this[callback](); - }; - } - if (token) { - formatTokenFunctions[token] = func; - } - if (padded) { - formatTokenFunctions[padded[0]] = function () { - return zeroFill(func.apply(this, arguments), padded[1], padded[2]); - }; - } - if (ordinal) { - formatTokenFunctions[ordinal] = function () { - return this.localeData().ordinal(func.apply(this, arguments), token); - }; - } -} - -function removeFormattingTokens(input) { - if (input.match(/\[[\s\S]/)) { - return input.replace(/^\[|\]$/g, ''); - } - return input.replace(/\\/g, ''); -} - -function makeFormatFunction(format) { - var array = format.match(formattingTokens), i, length; - - for (i = 0, length = array.length; i < length; i++) { - if (formatTokenFunctions[array[i]]) { - array[i] = formatTokenFunctions[array[i]]; - } else { - array[i] = removeFormattingTokens(array[i]); - } - } - - return function (mom) { - var output = '', i; - for (i = 0; i < length; i++) { - output += isFunction(array[i]) ? array[i].call(mom, format) : array[i]; - } - return output; - }; -} - -// format date using native date object -export function formatMoment(m, format) { - if (!m.isValid()) { - return m.localeData().invalidDate(); - } - - format = expandFormat(format, m.localeData()); - formatFunctions[format] = formatFunctions[format] || makeFormatFunction(format); - - return formatFunctions[format](m); -} - -export function expandFormat(format, locale) { - var i = 5; - - function replaceLongDateFormatTokens(input) { - return locale.longDateFormat(input) || input; - } - - localFormattingTokens.lastIndex = 0; - while (i >= 0 && localFormattingTokens.test(format)) { - format = format.replace(localFormattingTokens, replaceLongDateFormatTokens); - localFormattingTokens.lastIndex = 0; - i -= 1; - } - - return format; -} diff --git a/admin/bower_components/moment/src/lib/locale/base-config.js b/admin/bower_components/moment/src/lib/locale/base-config.js deleted file mode 100644 index d7a7c66..0000000 --- a/admin/bower_components/moment/src/lib/locale/base-config.js +++ /dev/null @@ -1,44 +0,0 @@ -import { defaultCalendar } from './calendar'; -import { defaultLongDateFormat } from './formats'; -import { defaultInvalidDate } from './invalid'; -import { defaultOrdinal, defaultDayOfMonthOrdinalParse } from './ordinal'; -import { defaultRelativeTime } from './relative'; - -// months -import { - defaultLocaleMonths, - defaultLocaleMonthsShort, -} from '../units/month'; - -// week -import { defaultLocaleWeek } from '../units/week'; - -// weekdays -import { - defaultLocaleWeekdays, - defaultLocaleWeekdaysMin, - defaultLocaleWeekdaysShort, -} from '../units/day-of-week'; - -// meridiem -import { defaultLocaleMeridiemParse } from '../units/hour'; - -export var baseConfig = { - calendar: defaultCalendar, - longDateFormat: defaultLongDateFormat, - invalidDate: defaultInvalidDate, - ordinal: defaultOrdinal, - dayOfMonthOrdinalParse: defaultDayOfMonthOrdinalParse, - relativeTime: defaultRelativeTime, - - months: defaultLocaleMonths, - monthsShort: defaultLocaleMonthsShort, - - week: defaultLocaleWeek, - - weekdays: defaultLocaleWeekdays, - weekdaysMin: defaultLocaleWeekdaysMin, - weekdaysShort: defaultLocaleWeekdaysShort, - - meridiemParse: defaultLocaleMeridiemParse -}; diff --git a/admin/bower_components/moment/src/lib/locale/calendar.js b/admin/bower_components/moment/src/lib/locale/calendar.js deleted file mode 100644 index f12214b..0000000 --- a/admin/bower_components/moment/src/lib/locale/calendar.js +++ /dev/null @@ -1,15 +0,0 @@ -export var defaultCalendar = { - sameDay : '[Today at] LT', - nextDay : '[Tomorrow at] LT', - nextWeek : 'dddd [at] LT', - lastDay : '[Yesterday at] LT', - lastWeek : '[Last] dddd [at] LT', - sameElse : 'L' -}; - -import isFunction from '../utils/is-function'; - -export function calendar (key, mom, now) { - var output = this._calendar[key] || this._calendar['sameElse']; - return isFunction(output) ? output.call(mom, now) : output; -} diff --git a/admin/bower_components/moment/src/lib/locale/constructor.js b/admin/bower_components/moment/src/lib/locale/constructor.js deleted file mode 100644 index c32b73e..0000000 --- a/admin/bower_components/moment/src/lib/locale/constructor.js +++ /dev/null @@ -1,5 +0,0 @@ -export function Locale(config) { - if (config != null) { - this.set(config); - } -} diff --git a/admin/bower_components/moment/src/lib/locale/en.js b/admin/bower_components/moment/src/lib/locale/en.js deleted file mode 100644 index 4a7d250..0000000 --- a/admin/bower_components/moment/src/lib/locale/en.js +++ /dev/null @@ -1,15 +0,0 @@ -import './prototype'; -import { getSetGlobalLocale } from './locales'; -import toInt from '../utils/to-int'; - -getSetGlobalLocale('en', { - dayOfMonthOrdinalParse: /\d{1,2}(th|st|nd|rd)/, - ordinal : function (number) { - var b = number % 10, - output = (toInt(number % 100 / 10) === 1) ? 'th' : - (b === 1) ? 'st' : - (b === 2) ? 'nd' : - (b === 3) ? 'rd' : 'th'; - return number + output; - } -}); diff --git a/admin/bower_components/moment/src/lib/locale/formats.js b/admin/bower_components/moment/src/lib/locale/formats.js deleted file mode 100644 index 6d83b03..0000000 --- a/admin/bower_components/moment/src/lib/locale/formats.js +++ /dev/null @@ -1,23 +0,0 @@ -export var defaultLongDateFormat = { - LTS : 'h:mm:ss A', - LT : 'h:mm A', - L : 'MM/DD/YYYY', - LL : 'MMMM D, YYYY', - LLL : 'MMMM D, YYYY h:mm A', - LLLL : 'dddd, MMMM D, YYYY h:mm A' -}; - -export function longDateFormat (key) { - var format = this._longDateFormat[key], - formatUpper = this._longDateFormat[key.toUpperCase()]; - - if (format || !formatUpper) { - return format; - } - - this._longDateFormat[key] = formatUpper.replace(/MMMM|MM|DD|dddd/g, function (val) { - return val.slice(1); - }); - - return this._longDateFormat[key]; -} diff --git a/admin/bower_components/moment/src/lib/locale/invalid.js b/admin/bower_components/moment/src/lib/locale/invalid.js deleted file mode 100644 index e909633..0000000 --- a/admin/bower_components/moment/src/lib/locale/invalid.js +++ /dev/null @@ -1,5 +0,0 @@ -export var defaultInvalidDate = 'Invalid date'; - -export function invalidDate () { - return this._invalidDate; -} diff --git a/admin/bower_components/moment/src/lib/locale/lists.js b/admin/bower_components/moment/src/lib/locale/lists.js deleted file mode 100644 index 42f7572..0000000 --- a/admin/bower_components/moment/src/lib/locale/lists.js +++ /dev/null @@ -1,93 +0,0 @@ -import isNumber from '../utils/is-number'; -import { getLocale } from './locales'; -import { createUTC } from '../create/utc'; - -function get (format, index, field, setter) { - var locale = getLocale(); - var utc = createUTC().set(setter, index); - return locale[field](utc, format); -} - -function listMonthsImpl (format, index, field) { - if (isNumber(format)) { - index = format; - format = undefined; - } - - format = format || ''; - - if (index != null) { - return get(format, index, field, 'month'); - } - - var i; - var out = []; - for (i = 0; i < 12; i++) { - out[i] = get(format, i, field, 'month'); - } - return out; -} - -// () -// (5) -// (fmt, 5) -// (fmt) -// (true) -// (true, 5) -// (true, fmt, 5) -// (true, fmt) -function listWeekdaysImpl (localeSorted, format, index, field) { - if (typeof localeSorted === 'boolean') { - if (isNumber(format)) { - index = format; - format = undefined; - } - - format = format || ''; - } else { - format = localeSorted; - index = format; - localeSorted = false; - - if (isNumber(format)) { - index = format; - format = undefined; - } - - format = format || ''; - } - - var locale = getLocale(), - shift = localeSorted ? locale._week.dow : 0; - - if (index != null) { - return get(format, (index + shift) % 7, field, 'day'); - } - - var i; - var out = []; - for (i = 0; i < 7; i++) { - out[i] = get(format, (i + shift) % 7, field, 'day'); - } - return out; -} - -export function listMonths (format, index) { - return listMonthsImpl(format, index, 'months'); -} - -export function listMonthsShort (format, index) { - return listMonthsImpl(format, index, 'monthsShort'); -} - -export function listWeekdays (localeSorted, format, index) { - return listWeekdaysImpl(localeSorted, format, index, 'weekdays'); -} - -export function listWeekdaysShort (localeSorted, format, index) { - return listWeekdaysImpl(localeSorted, format, index, 'weekdaysShort'); -} - -export function listWeekdaysMin (localeSorted, format, index) { - return listWeekdaysImpl(localeSorted, format, index, 'weekdaysMin'); -} diff --git a/admin/bower_components/moment/src/lib/locale/locale.js b/admin/bower_components/moment/src/lib/locale/locale.js deleted file mode 100644 index ac9cebf..0000000 --- a/admin/bower_components/moment/src/lib/locale/locale.js +++ /dev/null @@ -1,39 +0,0 @@ -// Side effect imports -import './prototype'; - -import { - getSetGlobalLocale, - defineLocale, - updateLocale, - getLocale, - listLocales -} from './locales'; - -import { - listMonths, - listMonthsShort, - listWeekdays, - listWeekdaysShort, - listWeekdaysMin -} from './lists'; - -export { - getSetGlobalLocale, - defineLocale, - updateLocale, - getLocale, - listLocales, - listMonths, - listMonthsShort, - listWeekdays, - listWeekdaysShort, - listWeekdaysMin -}; - -import { deprecate } from '../utils/deprecate'; -import { hooks } from '../utils/hooks'; - -hooks.lang = deprecate('moment.lang is deprecated. Use moment.locale instead.', getSetGlobalLocale); -hooks.langData = deprecate('moment.langData is deprecated. Use moment.localeData instead.', getLocale); - -import './en'; diff --git a/admin/bower_components/moment/src/lib/locale/locales.js b/admin/bower_components/moment/src/lib/locale/locales.js deleted file mode 100644 index 99ee115..0000000 --- a/admin/bower_components/moment/src/lib/locale/locales.js +++ /dev/null @@ -1,186 +0,0 @@ -import isArray from '../utils/is-array'; -import hasOwnProp from '../utils/has-own-prop'; -import isUndefined from '../utils/is-undefined'; -import compareArrays from '../utils/compare-arrays'; -import { deprecateSimple } from '../utils/deprecate'; -import { mergeConfigs } from './set'; -import { Locale } from './constructor'; -import keys from '../utils/keys'; - -import { baseConfig } from './base-config'; - -// internal storage for locale config files -var locales = {}; -var localeFamilies = {}; -var globalLocale; - -function normalizeLocale(key) { - return key ? key.toLowerCase().replace('_', '-') : key; -} - -// pick the locale from the array -// try ['en-au', 'en-gb'] as 'en-au', 'en-gb', 'en', as in move through the list trying each -// substring from most specific to least, but move to the next array item if it's a more specific variant than the current root -function chooseLocale(names) { - var i = 0, j, next, locale, split; - - while (i < names.length) { - split = normalizeLocale(names[i]).split('-'); - j = split.length; - next = normalizeLocale(names[i + 1]); - next = next ? next.split('-') : null; - while (j > 0) { - locale = loadLocale(split.slice(0, j).join('-')); - if (locale) { - return locale; - } - if (next && next.length >= j && compareArrays(split, next, true) >= j - 1) { - //the next array item is better than a shallower substring of this one - break; - } - j--; - } - i++; - } - return null; -} - -function loadLocale(name) { - var oldLocale = null; - // TODO: Find a better way to register and load all the locales in Node - if (!locales[name] && (typeof module !== 'undefined') && - module && module.exports) { - try { - oldLocale = globalLocale._abbr; - require('./locale/' + name); - // because defineLocale currently also sets the global locale, we - // want to undo that for lazy loaded locales - getSetGlobalLocale(oldLocale); - } catch (e) { } - } - return locales[name]; -} - -// This function will load locale and then set the global locale. If -// no arguments are passed in, it will simply return the current global -// locale key. -export function getSetGlobalLocale (key, values) { - var data; - if (key) { - if (isUndefined(values)) { - data = getLocale(key); - } - else { - data = defineLocale(key, values); - } - - if (data) { - // moment.duration._locale = moment._locale = data; - globalLocale = data; - } - } - - return globalLocale._abbr; -} - -export function defineLocale (name, config) { - if (config !== null) { - var parentConfig = baseConfig; - config.abbr = name; - if (locales[name] != null) { - deprecateSimple('defineLocaleOverride', - 'use moment.updateLocale(localeName, config) to change ' + - 'an existing locale. moment.defineLocale(localeName, ' + - 'config) should only be used for creating a new locale ' + - 'See http://momentjs.com/guides/#/warnings/define-locale/ for more info.'); - parentConfig = locales[name]._config; - } else if (config.parentLocale != null) { - if (locales[config.parentLocale] != null) { - parentConfig = locales[config.parentLocale]._config; - } else { - if (!localeFamilies[config.parentLocale]) { - localeFamilies[config.parentLocale] = []; - } - localeFamilies[config.parentLocale].push({ - name: name, - config: config - }); - return null; - } - } - locales[name] = new Locale(mergeConfigs(parentConfig, config)); - - if (localeFamilies[name]) { - localeFamilies[name].forEach(function (x) { - defineLocale(x.name, x.config); - }); - } - - // backwards compat for now: also set the locale - // make sure we set the locale AFTER all child locales have been - // created, so we won't end up with the child locale set. - getSetGlobalLocale(name); - - - return locales[name]; - } else { - // useful for testing - delete locales[name]; - return null; - } -} - -export function updateLocale(name, config) { - if (config != null) { - var locale, parentConfig = baseConfig; - // MERGE - if (locales[name] != null) { - parentConfig = locales[name]._config; - } - config = mergeConfigs(parentConfig, config); - locale = new Locale(config); - locale.parentLocale = locales[name]; - locales[name] = locale; - - // backwards compat for now: also set the locale - getSetGlobalLocale(name); - } else { - // pass null for config to unupdate, useful for tests - if (locales[name] != null) { - if (locales[name].parentLocale != null) { - locales[name] = locales[name].parentLocale; - } else if (locales[name] != null) { - delete locales[name]; - } - } - } - return locales[name]; -} - -// returns locale data -export function getLocale (key) { - var locale; - - if (key && key._locale && key._locale._abbr) { - key = key._locale._abbr; - } - - if (!key) { - return globalLocale; - } - - if (!isArray(key)) { - //short-circuit everything else - locale = loadLocale(key); - if (locale) { - return locale; - } - key = [key]; - } - - return chooseLocale(key); -} - -export function listLocales() { - return keys(locales); -} diff --git a/admin/bower_components/moment/src/lib/locale/ordinal.js b/admin/bower_components/moment/src/lib/locale/ordinal.js deleted file mode 100644 index e2efc05..0000000 --- a/admin/bower_components/moment/src/lib/locale/ordinal.js +++ /dev/null @@ -1,7 +0,0 @@ -export var defaultOrdinal = '%d'; -export var defaultDayOfMonthOrdinalParse = /\d{1,2}/; - -export function ordinal (number) { - return this._ordinal.replace('%d', number); -} - diff --git a/admin/bower_components/moment/src/lib/locale/pre-post-format.js b/admin/bower_components/moment/src/lib/locale/pre-post-format.js deleted file mode 100644 index 10ed205..0000000 --- a/admin/bower_components/moment/src/lib/locale/pre-post-format.js +++ /dev/null @@ -1,3 +0,0 @@ -export function preParsePostFormat (string) { - return string; -} diff --git a/admin/bower_components/moment/src/lib/locale/prototype.js b/admin/bower_components/moment/src/lib/locale/prototype.js deleted file mode 100644 index 24eef89..0000000 --- a/admin/bower_components/moment/src/lib/locale/prototype.js +++ /dev/null @@ -1,69 +0,0 @@ -import { Locale } from './constructor'; - -var proto = Locale.prototype; - -import { calendar } from './calendar'; -import { longDateFormat } from './formats'; -import { invalidDate } from './invalid'; -import { ordinal } from './ordinal'; -import { preParsePostFormat } from './pre-post-format'; -import { relativeTime, pastFuture } from './relative'; -import { set } from './set'; - -proto.calendar = calendar; -proto.longDateFormat = longDateFormat; -proto.invalidDate = invalidDate; -proto.ordinal = ordinal; -proto.preparse = preParsePostFormat; -proto.postformat = preParsePostFormat; -proto.relativeTime = relativeTime; -proto.pastFuture = pastFuture; -proto.set = set; - -// Month -import { - localeMonthsParse, - localeMonths, - localeMonthsShort, - monthsRegex, - monthsShortRegex -} from '../units/month'; - -proto.months = localeMonths; -proto.monthsShort = localeMonthsShort; -proto.monthsParse = localeMonthsParse; -proto.monthsRegex = monthsRegex; -proto.monthsShortRegex = monthsShortRegex; - -// Week -import { localeWeek, localeFirstDayOfYear, localeFirstDayOfWeek } from '../units/week'; -proto.week = localeWeek; -proto.firstDayOfYear = localeFirstDayOfYear; -proto.firstDayOfWeek = localeFirstDayOfWeek; - -// Day of Week -import { - localeWeekdaysParse, - localeWeekdays, - localeWeekdaysMin, - localeWeekdaysShort, - - weekdaysRegex, - weekdaysShortRegex, - weekdaysMinRegex -} from '../units/day-of-week'; - -proto.weekdays = localeWeekdays; -proto.weekdaysMin = localeWeekdaysMin; -proto.weekdaysShort = localeWeekdaysShort; -proto.weekdaysParse = localeWeekdaysParse; - -proto.weekdaysRegex = weekdaysRegex; -proto.weekdaysShortRegex = weekdaysShortRegex; -proto.weekdaysMinRegex = weekdaysMinRegex; - -// Hours -import { localeIsPM, localeMeridiem } from '../units/hour'; - -proto.isPM = localeIsPM; -proto.meridiem = localeMeridiem; diff --git a/admin/bower_components/moment/src/lib/locale/relative.js b/admin/bower_components/moment/src/lib/locale/relative.js deleted file mode 100644 index 431466b..0000000 --- a/admin/bower_components/moment/src/lib/locale/relative.js +++ /dev/null @@ -1,30 +0,0 @@ -export var defaultRelativeTime = { - future : 'in %s', - past : '%s ago', - s : 'a few seconds', - ss : '%d 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' -}; - -import isFunction from '../utils/is-function'; - -export function relativeTime (number, withoutSuffix, string, isFuture) { - var output = this._relativeTime[string]; - return (isFunction(output)) ? - output(number, withoutSuffix, string, isFuture) : - output.replace(/%d/i, number); -} - -export function pastFuture (diff, output) { - var format = this._relativeTime[diff > 0 ? 'future' : 'past']; - return isFunction(format) ? format(output) : format.replace(/%s/i, output); -} diff --git a/admin/bower_components/moment/src/lib/locale/set.js b/admin/bower_components/moment/src/lib/locale/set.js deleted file mode 100644 index c63d5ad..0000000 --- a/admin/bower_components/moment/src/lib/locale/set.js +++ /dev/null @@ -1,49 +0,0 @@ -import isFunction from '../utils/is-function'; -import extend from '../utils/extend'; -import isObject from '../utils/is-object'; -import hasOwnProp from '../utils/has-own-prop'; - -export function set (config) { - var prop, i; - for (i in config) { - prop = config[i]; - if (isFunction(prop)) { - this[i] = prop; - } else { - this['_' + i] = prop; - } - } - this._config = config; - // Lenient ordinal parsing accepts just a number in addition to - // number + (possibly) stuff coming from _dayOfMonthOrdinalParse. - // TODO: Remove "ordinalParse" fallback in next major release. - this._dayOfMonthOrdinalParseLenient = new RegExp( - (this._dayOfMonthOrdinalParse.source || this._ordinalParse.source) + - '|' + (/\d{1,2}/).source); -} - -export function mergeConfigs(parentConfig, childConfig) { - var res = extend({}, parentConfig), prop; - for (prop in childConfig) { - if (hasOwnProp(childConfig, prop)) { - if (isObject(parentConfig[prop]) && isObject(childConfig[prop])) { - res[prop] = {}; - extend(res[prop], parentConfig[prop]); - extend(res[prop], childConfig[prop]); - } else if (childConfig[prop] != null) { - res[prop] = childConfig[prop]; - } else { - delete res[prop]; - } - } - } - for (prop in parentConfig) { - if (hasOwnProp(parentConfig, prop) && - !hasOwnProp(childConfig, prop) && - isObject(parentConfig[prop])) { - // make sure changes to properties don't modify parent config - res[prop] = extend({}, res[prop]); - } - } - return res; -} diff --git a/admin/bower_components/moment/src/lib/moment/add-subtract.js b/admin/bower_components/moment/src/lib/moment/add-subtract.js deleted file mode 100644 index b9e86a6..0000000 --- a/admin/bower_components/moment/src/lib/moment/add-subtract.js +++ /dev/null @@ -1,55 +0,0 @@ -import { get, set } from './get-set'; -import { setMonth } from '../units/month'; -import { createDuration } from '../duration/create'; -import { deprecateSimple } from '../utils/deprecate'; -import { hooks } from '../utils/hooks'; -import absRound from '../utils/abs-round'; - - -// TODO: remove 'name' arg after deprecation is removed -function createAdder(direction, name) { - return function (val, period) { - var dur, tmp; - //invert the arguments, but complain about it - if (period !== null && !isNaN(+period)) { - deprecateSimple(name, 'moment().' + name + '(period, number) is deprecated. Please use moment().' + name + '(number, period). ' + - 'See http://momentjs.com/guides/#/warnings/add-inverted-param/ for more info.'); - tmp = val; val = period; period = tmp; - } - - val = typeof val === 'string' ? +val : val; - dur = createDuration(val, period); - addSubtract(this, dur, direction); - return this; - }; -} - -export function addSubtract (mom, duration, isAdding, updateOffset) { - var milliseconds = duration._milliseconds, - days = absRound(duration._days), - months = absRound(duration._months); - - if (!mom.isValid()) { - // No op - return; - } - - updateOffset = updateOffset == null ? true : updateOffset; - - if (milliseconds) { - mom._d.setTime(mom._d.valueOf() + milliseconds * isAdding); - } - if (days) { - set(mom, 'Date', get(mom, 'Date') + days * isAdding); - } - if (months) { - setMonth(mom, get(mom, 'Month') + months * isAdding); - } - if (updateOffset) { - hooks.updateOffset(mom, days || months); - } -} - -export var add = createAdder(1, 'add'); -export var subtract = createAdder(-1, 'subtract'); - diff --git a/admin/bower_components/moment/src/lib/moment/calendar.js b/admin/bower_components/moment/src/lib/moment/calendar.js deleted file mode 100644 index 4b5725c..0000000 --- a/admin/bower_components/moment/src/lib/moment/calendar.js +++ /dev/null @@ -1,26 +0,0 @@ -import { createLocal } from '../create/local'; -import { cloneWithOffset } from '../units/offset'; -import isFunction from '../utils/is-function'; -import { hooks } from '../utils/hooks'; - -export function getCalendarFormat(myMoment, now) { - var diff = myMoment.diff(now, 'days', true); - return diff < -6 ? 'sameElse' : - diff < -1 ? 'lastWeek' : - diff < 0 ? 'lastDay' : - diff < 1 ? 'sameDay' : - diff < 2 ? 'nextDay' : - diff < 7 ? 'nextWeek' : 'sameElse'; -} - -export function calendar (time, formats) { - // We want to compare the start of today, vs this. - // Getting start-of-today depends on whether we're local/utc/offset or not. - var now = time || createLocal(), - sod = cloneWithOffset(now, this).startOf('day'), - format = hooks.calendarFormat(this, sod) || 'sameElse'; - - var output = formats && (isFunction(formats[format]) ? formats[format].call(this, now) : formats[format]); - - return this.format(output || this.localeData().calendar(format, this, createLocal(now))); -} diff --git a/admin/bower_components/moment/src/lib/moment/clone.js b/admin/bower_components/moment/src/lib/moment/clone.js deleted file mode 100644 index d96b328..0000000 --- a/admin/bower_components/moment/src/lib/moment/clone.js +++ /dev/null @@ -1,5 +0,0 @@ -import { Moment } from './constructor'; - -export function clone () { - return new Moment(this); -} diff --git a/admin/bower_components/moment/src/lib/moment/compare.js b/admin/bower_components/moment/src/lib/moment/compare.js deleted file mode 100644 index b26bac6..0000000 --- a/admin/bower_components/moment/src/lib/moment/compare.js +++ /dev/null @@ -1,59 +0,0 @@ -import { isMoment } from './constructor'; -import { normalizeUnits } from '../units/aliases'; -import { createLocal } from '../create/local'; -import isUndefined from '../utils/is-undefined'; - -export function isAfter (input, units) { - var localInput = isMoment(input) ? input : createLocal(input); - if (!(this.isValid() && localInput.isValid())) { - return false; - } - units = normalizeUnits(!isUndefined(units) ? units : 'millisecond'); - if (units === 'millisecond') { - return this.valueOf() > localInput.valueOf(); - } else { - return localInput.valueOf() < this.clone().startOf(units).valueOf(); - } -} - -export function isBefore (input, units) { - var localInput = isMoment(input) ? input : createLocal(input); - if (!(this.isValid() && localInput.isValid())) { - return false; - } - units = normalizeUnits(!isUndefined(units) ? units : 'millisecond'); - if (units === 'millisecond') { - return this.valueOf() < localInput.valueOf(); - } else { - return this.clone().endOf(units).valueOf() < localInput.valueOf(); - } -} - -export function isBetween (from, to, units, inclusivity) { - inclusivity = inclusivity || '()'; - return (inclusivity[0] === '(' ? this.isAfter(from, units) : !this.isBefore(from, units)) && - (inclusivity[1] === ')' ? this.isBefore(to, units) : !this.isAfter(to, units)); -} - -export function isSame (input, units) { - var localInput = isMoment(input) ? input : createLocal(input), - inputMs; - if (!(this.isValid() && localInput.isValid())) { - return false; - } - units = normalizeUnits(units || 'millisecond'); - if (units === 'millisecond') { - return this.valueOf() === localInput.valueOf(); - } else { - inputMs = localInput.valueOf(); - return this.clone().startOf(units).valueOf() <= inputMs && inputMs <= this.clone().endOf(units).valueOf(); - } -} - -export function isSameOrAfter (input, units) { - return this.isSame(input, units) || this.isAfter(input,units); -} - -export function isSameOrBefore (input, units) { - return this.isSame(input, units) || this.isBefore(input,units); -} diff --git a/admin/bower_components/moment/src/lib/moment/constructor.js b/admin/bower_components/moment/src/lib/moment/constructor.js deleted file mode 100644 index bc53f81..0000000 --- a/admin/bower_components/moment/src/lib/moment/constructor.js +++ /dev/null @@ -1,77 +0,0 @@ -import { hooks } from '../utils/hooks'; -import hasOwnProp from '../utils/has-own-prop'; -import isUndefined from '../utils/is-undefined'; -import getParsingFlags from '../create/parsing-flags'; - -// Plugins that add properties should also add the key here (null value), -// so we can properly clone ourselves. -var momentProperties = hooks.momentProperties = []; - -export function copyConfig(to, from) { - var i, prop, val; - - if (!isUndefined(from._isAMomentObject)) { - to._isAMomentObject = from._isAMomentObject; - } - if (!isUndefined(from._i)) { - to._i = from._i; - } - if (!isUndefined(from._f)) { - to._f = from._f; - } - if (!isUndefined(from._l)) { - to._l = from._l; - } - if (!isUndefined(from._strict)) { - to._strict = from._strict; - } - if (!isUndefined(from._tzm)) { - to._tzm = from._tzm; - } - if (!isUndefined(from._isUTC)) { - to._isUTC = from._isUTC; - } - if (!isUndefined(from._offset)) { - to._offset = from._offset; - } - if (!isUndefined(from._pf)) { - to._pf = getParsingFlags(from); - } - if (!isUndefined(from._locale)) { - to._locale = from._locale; - } - - if (momentProperties.length > 0) { - for (i = 0; i < momentProperties.length; i++) { - prop = momentProperties[i]; - val = from[prop]; - if (!isUndefined(val)) { - to[prop] = val; - } - } - } - - return to; -} - -var updateInProgress = false; - -// Moment prototype object -export function Moment(config) { - copyConfig(this, config); - this._d = new Date(config._d != null ? config._d.getTime() : NaN); - if (!this.isValid()) { - this._d = new Date(NaN); - } - // Prevent infinite loop in case updateOffset creates new moment - // objects. - if (updateInProgress === false) { - updateInProgress = true; - hooks.updateOffset(this); - updateInProgress = false; - } -} - -export function isMoment (obj) { - return obj instanceof Moment || (obj != null && obj._isAMomentObject != null); -} diff --git a/admin/bower_components/moment/src/lib/moment/creation-data.js b/admin/bower_components/moment/src/lib/moment/creation-data.js deleted file mode 100644 index 7e2d69a..0000000 --- a/admin/bower_components/moment/src/lib/moment/creation-data.js +++ /dev/null @@ -1,9 +0,0 @@ -export function creationData() { - return { - input: this._i, - format: this._f, - locale: this._locale, - isUTC: this._isUTC, - strict: this._strict - }; -} diff --git a/admin/bower_components/moment/src/lib/moment/diff.js b/admin/bower_components/moment/src/lib/moment/diff.js deleted file mode 100644 index 9f43908..0000000 --- a/admin/bower_components/moment/src/lib/moment/diff.js +++ /dev/null @@ -1,62 +0,0 @@ -import absFloor from '../utils/abs-floor'; -import { cloneWithOffset } from '../units/offset'; -import { normalizeUnits } from '../units/aliases'; - -export function diff (input, units, asFloat) { - var that, - zoneDelta, - delta, output; - - if (!this.isValid()) { - return NaN; - } - - that = cloneWithOffset(input, this); - - if (!that.isValid()) { - return NaN; - } - - zoneDelta = (that.utcOffset() - this.utcOffset()) * 6e4; - - units = normalizeUnits(units); - - if (units === 'year' || units === 'month' || units === 'quarter') { - output = monthDiff(this, that); - if (units === 'quarter') { - output = output / 3; - } else if (units === 'year') { - output = output / 12; - } - } else { - delta = this - that; - output = units === 'second' ? delta / 1e3 : // 1000 - units === 'minute' ? delta / 6e4 : // 1000 * 60 - units === 'hour' ? delta / 36e5 : // 1000 * 60 * 60 - units === 'day' ? (delta - zoneDelta) / 864e5 : // 1000 * 60 * 60 * 24, negate dst - units === 'week' ? (delta - zoneDelta) / 6048e5 : // 1000 * 60 * 60 * 24 * 7, negate dst - delta; - } - return asFloat ? output : absFloor(output); -} - -function monthDiff (a, b) { - // difference in months - var wholeMonthDiff = ((b.year() - a.year()) * 12) + (b.month() - a.month()), - // b is in (anchor - 1 month, anchor + 1 month) - anchor = a.clone().add(wholeMonthDiff, 'months'), - anchor2, adjust; - - if (b - anchor < 0) { - anchor2 = a.clone().add(wholeMonthDiff - 1, 'months'); - // linear across the month - adjust = (b - anchor) / (anchor - anchor2); - } else { - anchor2 = a.clone().add(wholeMonthDiff + 1, 'months'); - // linear across the month - adjust = (b - anchor) / (anchor2 - anchor); - } - - //check for negative zero, return zero if negative zero - return -(wholeMonthDiff + adjust) || 0; -} diff --git a/admin/bower_components/moment/src/lib/moment/format.js b/admin/bower_components/moment/src/lib/moment/format.js deleted file mode 100644 index d95042f..0000000 --- a/admin/bower_components/moment/src/lib/moment/format.js +++ /dev/null @@ -1,57 +0,0 @@ -import { formatMoment } from '../format/format'; -import { hooks } from '../utils/hooks'; -import isFunction from '../utils/is-function'; - -hooks.defaultFormat = 'YYYY-MM-DDTHH:mm:ssZ'; -hooks.defaultFormatUtc = 'YYYY-MM-DDTHH:mm:ss[Z]'; - -export function toString () { - return this.clone().locale('en').format('ddd MMM DD YYYY HH:mm:ss [GMT]ZZ'); -} - -export function toISOString() { - if (!this.isValid()) { - return null; - } - var m = this.clone().utc(); - if (m.year() < 0 || m.year() > 9999) { - return formatMoment(m, 'YYYYYY-MM-DD[T]HH:mm:ss.SSS[Z]'); - } - if (isFunction(Date.prototype.toISOString)) { - // native implementation is ~50x faster, use it when we can - return this.toDate().toISOString(); - } - return formatMoment(m, 'YYYY-MM-DD[T]HH:mm:ss.SSS[Z]'); -} - -/** - * Return a human readable representation of a moment that can - * also be evaluated to get a new moment which is the same - * - * @link https://nodejs.org/dist/latest/docs/api/util.html#util_custom_inspect_function_on_objects - */ -export function inspect () { - if (!this.isValid()) { - return 'moment.invalid(/* ' + this._i + ' */)'; - } - var func = 'moment'; - var zone = ''; - if (!this.isLocal()) { - func = this.utcOffset() === 0 ? 'moment.utc' : 'moment.parseZone'; - zone = 'Z'; - } - var prefix = '[' + func + '("]'; - var year = (0 <= this.year() && this.year() <= 9999) ? 'YYYY' : 'YYYYYY'; - var datetime = '-MM-DD[T]HH:mm:ss.SSS'; - var suffix = zone + '[")]'; - - return this.format(prefix + year + datetime + suffix); -} - -export function format (inputString) { - if (!inputString) { - inputString = this.isUtc() ? hooks.defaultFormatUtc : hooks.defaultFormat; - } - var output = formatMoment(this, inputString); - return this.localeData().postformat(output); -} diff --git a/admin/bower_components/moment/src/lib/moment/from.js b/admin/bower_components/moment/src/lib/moment/from.js deleted file mode 100644 index 4fbd03e..0000000 --- a/admin/bower_components/moment/src/lib/moment/from.js +++ /dev/null @@ -1,17 +0,0 @@ -import { createDuration } from '../duration/create'; -import { createLocal } from '../create/local'; -import { isMoment } from '../moment/constructor'; - -export function from (time, withoutSuffix) { - if (this.isValid() && - ((isMoment(time) && time.isValid()) || - createLocal(time).isValid())) { - return createDuration({to: this, from: time}).locale(this.locale()).humanize(!withoutSuffix); - } else { - return this.localeData().invalidDate(); - } -} - -export function fromNow (withoutSuffix) { - return this.from(createLocal(), withoutSuffix); -} diff --git a/admin/bower_components/moment/src/lib/moment/get-set.js b/admin/bower_components/moment/src/lib/moment/get-set.js deleted file mode 100644 index 0d9fe5d..0000000 --- a/admin/bower_components/moment/src/lib/moment/get-set.js +++ /dev/null @@ -1,55 +0,0 @@ -import { normalizeUnits, normalizeObjectUnits } from '../units/aliases'; -import { getPrioritizedUnits } from '../units/priorities'; -import { hooks } from '../utils/hooks'; -import isFunction from '../utils/is-function'; - - -export function makeGetSet (unit, keepTime) { - return function (value) { - if (value != null) { - set(this, unit, value); - hooks.updateOffset(this, keepTime); - return this; - } else { - return get(this, unit); - } - }; -} - -export function get (mom, unit) { - return mom.isValid() ? - mom._d['get' + (mom._isUTC ? 'UTC' : '') + unit]() : NaN; -} - -export function set (mom, unit, value) { - if (mom.isValid()) { - mom._d['set' + (mom._isUTC ? 'UTC' : '') + unit](value); - } -} - -// MOMENTS - -export function stringGet (units) { - units = normalizeUnits(units); - if (isFunction(this[units])) { - return this[units](); - } - return this; -} - - -export function stringSet (units, value) { - if (typeof units === 'object') { - units = normalizeObjectUnits(units); - var prioritized = getPrioritizedUnits(units); - for (var i = 0; i < prioritized.length; i++) { - this[prioritized[i].unit](units[prioritized[i].unit]); - } - } else { - units = normalizeUnits(units); - if (isFunction(this[units])) { - return this[units](value); - } - } - return this; -} diff --git a/admin/bower_components/moment/src/lib/moment/locale.js b/admin/bower_components/moment/src/lib/moment/locale.js deleted file mode 100644 index fb46e65..0000000 --- a/admin/bower_components/moment/src/lib/moment/locale.js +++ /dev/null @@ -1,34 +0,0 @@ -import { getLocale } from '../locale/locales'; -import { deprecate } from '../utils/deprecate'; - -// If passed a locale key, it will set the locale for this -// instance. Otherwise, it will return the locale configuration -// variables for this instance. -export function locale (key) { - var newLocaleData; - - if (key === undefined) { - return this._locale._abbr; - } else { - newLocaleData = getLocale(key); - if (newLocaleData != null) { - this._locale = newLocaleData; - } - return this; - } -} - -export var lang = deprecate( - 'moment().lang() is deprecated. Instead, use moment().localeData() to get the language configuration. Use moment().locale() to change languages.', - function (key) { - if (key === undefined) { - return this.localeData(); - } else { - return this.locale(key); - } - } -); - -export function localeData () { - return this._locale; -} diff --git a/admin/bower_components/moment/src/lib/moment/min-max.js b/admin/bower_components/moment/src/lib/moment/min-max.js deleted file mode 100644 index d76920a..0000000 --- a/admin/bower_components/moment/src/lib/moment/min-max.js +++ /dev/null @@ -1,63 +0,0 @@ -import { deprecate } from '../utils/deprecate'; -import isArray from '../utils/is-array'; -import { createLocal } from '../create/local'; -import { createInvalid } from '../create/valid'; - -export var prototypeMin = deprecate( - 'moment().min is deprecated, use moment.max instead. http://momentjs.com/guides/#/warnings/min-max/', - function () { - var other = createLocal.apply(null, arguments); - if (this.isValid() && other.isValid()) { - return other < this ? this : other; - } else { - return createInvalid(); - } - } -); - -export var prototypeMax = deprecate( - 'moment().max is deprecated, use moment.min instead. http://momentjs.com/guides/#/warnings/min-max/', - function () { - var other = createLocal.apply(null, arguments); - if (this.isValid() && other.isValid()) { - return other > this ? this : other; - } else { - return createInvalid(); - } - } -); - -// Pick a moment m from moments so that m[fn](other) is true for all -// other. This relies on the function fn to be transitive. -// -// moments should either be an array of moment objects or an array, whose -// first element is an array of moment objects. -function pickBy(fn, moments) { - var res, i; - if (moments.length === 1 && isArray(moments[0])) { - moments = moments[0]; - } - if (!moments.length) { - return createLocal(); - } - res = moments[0]; - for (i = 1; i < moments.length; ++i) { - if (!moments[i].isValid() || moments[i][fn](res)) { - res = moments[i]; - } - } - return res; -} - -// TODO: Use [].sort instead? -export function min () { - var args = [].slice.call(arguments, 0); - - return pickBy('isBefore', args); -} - -export function max () { - var args = [].slice.call(arguments, 0); - - return pickBy('isAfter', args); -} diff --git a/admin/bower_components/moment/src/lib/moment/moment.js b/admin/bower_components/moment/src/lib/moment/moment.js deleted file mode 100644 index 12eb5f1..0000000 --- a/admin/bower_components/moment/src/lib/moment/moment.js +++ /dev/null @@ -1,28 +0,0 @@ -import { createLocal } from '../create/local'; -import { createUTC } from '../create/utc'; -import { createInvalid } from '../create/valid'; -import { isMoment } from './constructor'; -import { min, max } from './min-max'; -import { now } from './now'; -import momentPrototype from './prototype'; - -function createUnix (input) { - return createLocal(input * 1000); -} - -function createInZone () { - return createLocal.apply(null, arguments).parseZone(); -} - -export { - now, - min, - max, - isMoment, - createUTC, - createUnix, - createLocal, - createInZone, - createInvalid, - momentPrototype -}; diff --git a/admin/bower_components/moment/src/lib/moment/now.js b/admin/bower_components/moment/src/lib/moment/now.js deleted file mode 100644 index 0f4d0ae..0000000 --- a/admin/bower_components/moment/src/lib/moment/now.js +++ /dev/null @@ -1,3 +0,0 @@ -export var now = function () { - return Date.now ? Date.now() : +(new Date()); -}; diff --git a/admin/bower_components/moment/src/lib/moment/prototype.js b/admin/bower_components/moment/src/lib/moment/prototype.js deleted file mode 100644 index bd8fff7..0000000 --- a/admin/bower_components/moment/src/lib/moment/prototype.js +++ /dev/null @@ -1,150 +0,0 @@ -import { Moment } from './constructor'; - -var proto = Moment.prototype; - -import { add, subtract } from './add-subtract'; -import { calendar, getCalendarFormat } from './calendar'; -import { clone } from './clone'; -import { isBefore, isBetween, isSame, isAfter, isSameOrAfter, isSameOrBefore } from './compare'; -import { diff } from './diff'; -import { format, toString, toISOString, inspect } from './format'; -import { from, fromNow } from './from'; -import { to, toNow } from './to'; -import { stringGet, stringSet } from './get-set'; -import { locale, localeData, lang } from './locale'; -import { prototypeMin, prototypeMax } from './min-max'; -import { startOf, endOf } from './start-end-of'; -import { valueOf, toDate, toArray, toObject, toJSON, unix } from './to-type'; -import { isValid, parsingFlags, invalidAt } from './valid'; -import { creationData } from './creation-data'; - -proto.add = add; -proto.calendar = calendar; -proto.clone = clone; -proto.diff = diff; -proto.endOf = endOf; -proto.format = format; -proto.from = from; -proto.fromNow = fromNow; -proto.to = to; -proto.toNow = toNow; -proto.get = stringGet; -proto.invalidAt = invalidAt; -proto.isAfter = isAfter; -proto.isBefore = isBefore; -proto.isBetween = isBetween; -proto.isSame = isSame; -proto.isSameOrAfter = isSameOrAfter; -proto.isSameOrBefore = isSameOrBefore; -proto.isValid = isValid; -proto.lang = lang; -proto.locale = locale; -proto.localeData = localeData; -proto.max = prototypeMax; -proto.min = prototypeMin; -proto.parsingFlags = parsingFlags; -proto.set = stringSet; -proto.startOf = startOf; -proto.subtract = subtract; -proto.toArray = toArray; -proto.toObject = toObject; -proto.toDate = toDate; -proto.toISOString = toISOString; -proto.inspect = inspect; -proto.toJSON = toJSON; -proto.toString = toString; -proto.unix = unix; -proto.valueOf = valueOf; -proto.creationData = creationData; - -// Year -import { getSetYear, getIsLeapYear } from '../units/year'; -proto.year = getSetYear; -proto.isLeapYear = getIsLeapYear; - -// Week Year -import { getSetWeekYear, getSetISOWeekYear, getWeeksInYear, getISOWeeksInYear } from '../units/week-year'; -proto.weekYear = getSetWeekYear; -proto.isoWeekYear = getSetISOWeekYear; - -// Quarter -import { getSetQuarter } from '../units/quarter'; -proto.quarter = proto.quarters = getSetQuarter; - -// Month -import { getSetMonth, getDaysInMonth } from '../units/month'; -proto.month = getSetMonth; -proto.daysInMonth = getDaysInMonth; - -// Week -import { getSetWeek, getSetISOWeek } from '../units/week'; -proto.week = proto.weeks = getSetWeek; -proto.isoWeek = proto.isoWeeks = getSetISOWeek; -proto.weeksInYear = getWeeksInYear; -proto.isoWeeksInYear = getISOWeeksInYear; - -// Day -import { getSetDayOfMonth } from '../units/day-of-month'; -import { getSetDayOfWeek, getSetISODayOfWeek, getSetLocaleDayOfWeek } from '../units/day-of-week'; -import { getSetDayOfYear } from '../units/day-of-year'; -proto.date = getSetDayOfMonth; -proto.day = proto.days = getSetDayOfWeek; -proto.weekday = getSetLocaleDayOfWeek; -proto.isoWeekday = getSetISODayOfWeek; -proto.dayOfYear = getSetDayOfYear; - -// Hour -import { getSetHour } from '../units/hour'; -proto.hour = proto.hours = getSetHour; - -// Minute -import { getSetMinute } from '../units/minute'; -proto.minute = proto.minutes = getSetMinute; - -// Second -import { getSetSecond } from '../units/second'; -proto.second = proto.seconds = getSetSecond; - -// Millisecond -import { getSetMillisecond } from '../units/millisecond'; -proto.millisecond = proto.milliseconds = getSetMillisecond; - -// Offset -import { - getSetOffset, - setOffsetToUTC, - setOffsetToLocal, - setOffsetToParsedOffset, - hasAlignedHourOffset, - isDaylightSavingTime, - isDaylightSavingTimeShifted, - getSetZone, - isLocal, - isUtcOffset, - isUtc -} from '../units/offset'; -proto.utcOffset = getSetOffset; -proto.utc = setOffsetToUTC; -proto.local = setOffsetToLocal; -proto.parseZone = setOffsetToParsedOffset; -proto.hasAlignedHourOffset = hasAlignedHourOffset; -proto.isDST = isDaylightSavingTime; -proto.isLocal = isLocal; -proto.isUtcOffset = isUtcOffset; -proto.isUtc = isUtc; -proto.isUTC = isUtc; - -// Timezone -import { getZoneAbbr, getZoneName } from '../units/timezone'; -proto.zoneAbbr = getZoneAbbr; -proto.zoneName = getZoneName; - -// Deprecations -import { deprecate } from '../utils/deprecate'; -proto.dates = deprecate('dates accessor is deprecated. Use date instead.', getSetDayOfMonth); -proto.months = deprecate('months accessor is deprecated. Use month instead', getSetMonth); -proto.years = deprecate('years accessor is deprecated. Use year instead', getSetYear); -proto.zone = deprecate('moment().zone is deprecated, use moment().utcOffset instead. http://momentjs.com/guides/#/warnings/zone/', getSetZone); -proto.isDSTShifted = deprecate('isDSTShifted is deprecated. See http://momentjs.com/guides/#/warnings/dst-shifted/ for more information', isDaylightSavingTimeShifted); - -export default proto; diff --git a/admin/bower_components/moment/src/lib/moment/start-end-of.js b/admin/bower_components/moment/src/lib/moment/start-end-of.js deleted file mode 100644 index 02f9824..0000000 --- a/admin/bower_components/moment/src/lib/moment/start-end-of.js +++ /dev/null @@ -1,59 +0,0 @@ -import { normalizeUnits } from '../units/aliases'; - -export function startOf (units) { - units = normalizeUnits(units); - // the following switch intentionally omits break keywords - // to utilize falling through the cases. - switch (units) { - case 'year': - this.month(0); - /* falls through */ - case 'quarter': - case 'month': - this.date(1); - /* falls through */ - case 'week': - case 'isoWeek': - case 'day': - case 'date': - this.hours(0); - /* falls through */ - case 'hour': - this.minutes(0); - /* falls through */ - case 'minute': - this.seconds(0); - /* falls through */ - case 'second': - this.milliseconds(0); - } - - // weeks are a special case - if (units === 'week') { - this.weekday(0); - } - if (units === 'isoWeek') { - this.isoWeekday(1); - } - - // quarters are also special - if (units === 'quarter') { - this.month(Math.floor(this.month() / 3) * 3); - } - - return this; -} - -export function endOf (units) { - units = normalizeUnits(units); - if (units === undefined || units === 'millisecond') { - return this; - } - - // 'date' is an alias for 'day', so it should be considered as such. - if (units === 'date') { - units = 'day'; - } - - return this.startOf(units).add(1, (units === 'isoWeek' ? 'week' : units)).subtract(1, 'ms'); -} diff --git a/admin/bower_components/moment/src/lib/moment/to-type.js b/admin/bower_components/moment/src/lib/moment/to-type.js deleted file mode 100644 index a990dd2..0000000 --- a/admin/bower_components/moment/src/lib/moment/to-type.js +++ /dev/null @@ -1,34 +0,0 @@ -export function valueOf () { - return this._d.valueOf() - ((this._offset || 0) * 60000); -} - -export function unix () { - return Math.floor(this.valueOf() / 1000); -} - -export function toDate () { - return new Date(this.valueOf()); -} - -export function toArray () { - var m = this; - return [m.year(), m.month(), m.date(), m.hour(), m.minute(), m.second(), m.millisecond()]; -} - -export function toObject () { - var m = this; - return { - years: m.year(), - months: m.month(), - date: m.date(), - hours: m.hours(), - minutes: m.minutes(), - seconds: m.seconds(), - milliseconds: m.milliseconds() - }; -} - -export function toJSON () { - // new Date(NaN).toJSON() === null - return this.isValid() ? this.toISOString() : null; -} diff --git a/admin/bower_components/moment/src/lib/moment/to.js b/admin/bower_components/moment/src/lib/moment/to.js deleted file mode 100644 index 7ad667e..0000000 --- a/admin/bower_components/moment/src/lib/moment/to.js +++ /dev/null @@ -1,17 +0,0 @@ -import { createDuration } from '../duration/create'; -import { createLocal } from '../create/local'; -import { isMoment } from '../moment/constructor'; - -export function to (time, withoutSuffix) { - if (this.isValid() && - ((isMoment(time) && time.isValid()) || - createLocal(time).isValid())) { - return createDuration({from: this, to: time}).locale(this.locale()).humanize(!withoutSuffix); - } else { - return this.localeData().invalidDate(); - } -} - -export function toNow (withoutSuffix) { - return this.to(createLocal(), withoutSuffix); -} diff --git a/admin/bower_components/moment/src/lib/moment/valid.js b/admin/bower_components/moment/src/lib/moment/valid.js deleted file mode 100644 index 6c00742..0000000 --- a/admin/bower_components/moment/src/lib/moment/valid.js +++ /dev/null @@ -1,15 +0,0 @@ -import { isValid as _isValid } from '../create/valid'; -import extend from '../utils/extend'; -import getParsingFlags from '../create/parsing-flags'; - -export function isValid () { - return _isValid(this); -} - -export function parsingFlags () { - return extend({}, getParsingFlags(this)); -} - -export function invalidAt () { - return getParsingFlags(this).overflow; -} diff --git a/admin/bower_components/moment/src/lib/parse/regex.js b/admin/bower_components/moment/src/lib/parse/regex.js deleted file mode 100644 index b1dc752..0000000 --- a/admin/bower_components/moment/src/lib/parse/regex.js +++ /dev/null @@ -1,54 +0,0 @@ -export var match1 = /\d/; // 0 - 9 -export var match2 = /\d\d/; // 00 - 99 -export var match3 = /\d{3}/; // 000 - 999 -export var match4 = /\d{4}/; // 0000 - 9999 -export var match6 = /[+-]?\d{6}/; // -999999 - 999999 -export var match1to2 = /\d\d?/; // 0 - 99 -export var match3to4 = /\d\d\d\d?/; // 999 - 9999 -export var match5to6 = /\d\d\d\d\d\d?/; // 99999 - 999999 -export var match1to3 = /\d{1,3}/; // 0 - 999 -export var match1to4 = /\d{1,4}/; // 0 - 9999 -export var match1to6 = /[+-]?\d{1,6}/; // -999999 - 999999 - -export var matchUnsigned = /\d+/; // 0 - inf -export var matchSigned = /[+-]?\d+/; // -inf - inf - -export var matchOffset = /Z|[+-]\d\d:?\d\d/gi; // +00:00 -00:00 +0000 -0000 or Z -export var matchShortOffset = /Z|[+-]\d\d(?::?\d\d)?/gi; // +00 -00 +00:00 -00:00 +0000 -0000 or Z - -export var matchTimestamp = /[+-]?\d+(\.\d{1,3})?/; // 123456789 123456789.123 - -// any word (or two) characters or numbers including two/three word month in arabic. -// includes scottish gaelic two word and hyphenated months -export var matchWord = /[0-9]*['a-z\u00A0-\u05FF\u0700-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]+|[\u0600-\u06FF\/]+(\s*?[\u0600-\u06FF]+){1,2}/i; - - -import hasOwnProp from '../utils/has-own-prop'; -import isFunction from '../utils/is-function'; - -var regexes = {}; - -export function addRegexToken (token, regex, strictRegex) { - regexes[token] = isFunction(regex) ? regex : function (isStrict, localeData) { - return (isStrict && strictRegex) ? strictRegex : regex; - }; -} - -export function getParseRegexForToken (token, config) { - if (!hasOwnProp(regexes, token)) { - return new RegExp(unescapeFormat(token)); - } - - return regexes[token](config._strict, config._locale); -} - -// Code from http://stackoverflow.com/questions/3561493/is-there-a-regexp-escape-function-in-javascript -function unescapeFormat(s) { - return regexEscape(s.replace('\\', '').replace(/\\(\[)|\\(\])|\[([^\]\[]*)\]|\\(.)/g, function (matched, p1, p2, p3, p4) { - return p1 || p2 || p3 || p4; - })); -} - -export function regexEscape(s) { - return s.replace(/[-\/\\^$*+?.()|[\]{}]/g, '\\$&'); -} diff --git a/admin/bower_components/moment/src/lib/parse/token.js b/admin/bower_components/moment/src/lib/parse/token.js deleted file mode 100644 index 24b4474..0000000 --- a/admin/bower_components/moment/src/lib/parse/token.js +++ /dev/null @@ -1,33 +0,0 @@ -import hasOwnProp from '../utils/has-own-prop'; -import isNumber from '../utils/is-number'; -import toInt from '../utils/to-int'; - -var tokens = {}; - -export function addParseToken (token, callback) { - var i, func = callback; - if (typeof token === 'string') { - token = [token]; - } - if (isNumber(callback)) { - func = function (input, array) { - array[callback] = toInt(input); - }; - } - for (i = 0; i < token.length; i++) { - tokens[token[i]] = func; - } -} - -export function addWeekParseToken (token, callback) { - addParseToken(token, function (input, array, config, token) { - config._w = config._w || {}; - callback(input, config._w, config, token); - }); -} - -export function addTimeToArrayFromToken(token, input, config) { - if (input != null && hasOwnProp(tokens, token)) { - tokens[token](input, config._a, config, token); - } -} diff --git a/admin/bower_components/moment/src/lib/units/aliases.js b/admin/bower_components/moment/src/lib/units/aliases.js deleted file mode 100644 index 0d8b88a..0000000 --- a/admin/bower_components/moment/src/lib/units/aliases.js +++ /dev/null @@ -1,30 +0,0 @@ -import hasOwnProp from '../utils/has-own-prop'; - -var aliases = {}; - -export function addUnitAlias (unit, shorthand) { - var lowerCase = unit.toLowerCase(); - aliases[lowerCase] = aliases[lowerCase + 's'] = aliases[shorthand] = unit; -} - -export function normalizeUnits(units) { - return typeof units === 'string' ? aliases[units] || aliases[units.toLowerCase()] : undefined; -} - -export function normalizeObjectUnits(inputObject) { - var normalizedInput = {}, - normalizedProp, - prop; - - for (prop in inputObject) { - if (hasOwnProp(inputObject, prop)) { - normalizedProp = normalizeUnits(prop); - if (normalizedProp) { - normalizedInput[normalizedProp] = inputObject[prop]; - } - } - } - - return normalizedInput; -} - diff --git a/admin/bower_components/moment/src/lib/units/constants.js b/admin/bower_components/moment/src/lib/units/constants.js deleted file mode 100644 index 70bf1b2..0000000 --- a/admin/bower_components/moment/src/lib/units/constants.js +++ /dev/null @@ -1,9 +0,0 @@ -export var YEAR = 0; -export var MONTH = 1; -export var DATE = 2; -export var HOUR = 3; -export var MINUTE = 4; -export var SECOND = 5; -export var MILLISECOND = 6; -export var WEEK = 7; -export var WEEKDAY = 8; diff --git a/admin/bower_components/moment/src/lib/units/day-of-month.js b/admin/bower_components/moment/src/lib/units/day-of-month.js deleted file mode 100644 index 0253253..0000000 --- a/admin/bower_components/moment/src/lib/units/day-of-month.js +++ /dev/null @@ -1,39 +0,0 @@ -import { makeGetSet } from '../moment/get-set'; -import { addFormatToken } from '../format/format'; -import { addUnitAlias } from './aliases'; -import { addUnitPriority } from './priorities'; -import { addRegexToken, match1to2, match2 } from '../parse/regex'; -import { addParseToken } from '../parse/token'; -import { DATE } from './constants'; -import toInt from '../utils/to-int'; - -// FORMATTING - -addFormatToken('D', ['DD', 2], 'Do', 'date'); - -// ALIASES - -addUnitAlias('date', 'D'); - -// PRIOROITY -addUnitPriority('date', 9); - -// PARSING - -addRegexToken('D', match1to2); -addRegexToken('DD', match1to2, match2); -addRegexToken('Do', function (isStrict, locale) { - // TODO: Remove "ordinalParse" fallback in next major release. - return isStrict ? - (locale._dayOfMonthOrdinalParse || locale._ordinalParse) : - locale._dayOfMonthOrdinalParseLenient; -}); - -addParseToken(['D', 'DD'], DATE); -addParseToken('Do', function (input, array) { - array[DATE] = toInt(input.match(match1to2)[0], 10); -}); - -// MOMENTS - -export var getSetDayOfMonth = makeGetSet('Date', true); diff --git a/admin/bower_components/moment/src/lib/units/day-of-week.js b/admin/bower_components/moment/src/lib/units/day-of-week.js deleted file mode 100644 index 5502760..0000000 --- a/admin/bower_components/moment/src/lib/units/day-of-week.js +++ /dev/null @@ -1,364 +0,0 @@ -import { addFormatToken } from '../format/format'; -import { addUnitAlias } from './aliases'; -import { addUnitPriority } from './priorities'; -import { addRegexToken, match1to2, matchWord, regexEscape } from '../parse/regex'; -import { addWeekParseToken } from '../parse/token'; -import toInt from '../utils/to-int'; -import isArray from '../utils/is-array'; -import indexOf from '../utils/index-of'; -import hasOwnProp from '../utils/has-own-prop'; -import { createUTC } from '../create/utc'; -import getParsingFlags from '../create/parsing-flags'; - -// FORMATTING - -addFormatToken('d', 0, 'do', 'day'); - -addFormatToken('dd', 0, 0, function (format) { - return this.localeData().weekdaysMin(this, format); -}); - -addFormatToken('ddd', 0, 0, function (format) { - return this.localeData().weekdaysShort(this, format); -}); - -addFormatToken('dddd', 0, 0, function (format) { - return this.localeData().weekdays(this, format); -}); - -addFormatToken('e', 0, 0, 'weekday'); -addFormatToken('E', 0, 0, 'isoWeekday'); - -// ALIASES - -addUnitAlias('day', 'd'); -addUnitAlias('weekday', 'e'); -addUnitAlias('isoWeekday', 'E'); - -// PRIORITY -addUnitPriority('day', 11); -addUnitPriority('weekday', 11); -addUnitPriority('isoWeekday', 11); - -// PARSING - -addRegexToken('d', match1to2); -addRegexToken('e', match1to2); -addRegexToken('E', match1to2); -addRegexToken('dd', function (isStrict, locale) { - return locale.weekdaysMinRegex(isStrict); -}); -addRegexToken('ddd', function (isStrict, locale) { - return locale.weekdaysShortRegex(isStrict); -}); -addRegexToken('dddd', function (isStrict, locale) { - return locale.weekdaysRegex(isStrict); -}); - -addWeekParseToken(['dd', 'ddd', 'dddd'], function (input, week, config, token) { - var weekday = config._locale.weekdaysParse(input, token, config._strict); - // if we didn't get a weekday name, mark the date as invalid - if (weekday != null) { - week.d = weekday; - } else { - getParsingFlags(config).invalidWeekday = input; - } -}); - -addWeekParseToken(['d', 'e', 'E'], function (input, week, config, token) { - week[token] = toInt(input); -}); - -// HELPERS - -function parseWeekday(input, locale) { - if (typeof input !== 'string') { - return input; - } - - if (!isNaN(input)) { - return parseInt(input, 10); - } - - input = locale.weekdaysParse(input); - if (typeof input === 'number') { - return input; - } - - return null; -} - -function parseIsoWeekday(input, locale) { - if (typeof input === 'string') { - return locale.weekdaysParse(input) % 7 || 7; - } - return isNaN(input) ? null : input; -} - -// LOCALES - -export var defaultLocaleWeekdays = 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split('_'); -export function localeWeekdays (m, format) { - if (!m) { - return isArray(this._weekdays) ? this._weekdays : - this._weekdays['standalone']; - } - return isArray(this._weekdays) ? this._weekdays[m.day()] : - this._weekdays[this._weekdays.isFormat.test(format) ? 'format' : 'standalone'][m.day()]; -} - -export var defaultLocaleWeekdaysShort = 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'); -export function localeWeekdaysShort (m) { - return (m) ? this._weekdaysShort[m.day()] : this._weekdaysShort; -} - -export var defaultLocaleWeekdaysMin = 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'); -export function localeWeekdaysMin (m) { - return (m) ? this._weekdaysMin[m.day()] : this._weekdaysMin; -} - -function handleStrictParse(weekdayName, format, strict) { - var i, ii, mom, llc = weekdayName.toLocaleLowerCase(); - if (!this._weekdaysParse) { - this._weekdaysParse = []; - this._shortWeekdaysParse = []; - this._minWeekdaysParse = []; - - for (i = 0; i < 7; ++i) { - mom = createUTC([2000, 1]).day(i); - this._minWeekdaysParse[i] = this.weekdaysMin(mom, '').toLocaleLowerCase(); - this._shortWeekdaysParse[i] = this.weekdaysShort(mom, '').toLocaleLowerCase(); - this._weekdaysParse[i] = this.weekdays(mom, '').toLocaleLowerCase(); - } - } - - if (strict) { - if (format === 'dddd') { - ii = indexOf.call(this._weekdaysParse, llc); - return ii !== -1 ? ii : null; - } else if (format === 'ddd') { - ii = indexOf.call(this._shortWeekdaysParse, llc); - return ii !== -1 ? ii : null; - } else { - ii = indexOf.call(this._minWeekdaysParse, llc); - return ii !== -1 ? ii : null; - } - } else { - if (format === 'dddd') { - ii = indexOf.call(this._weekdaysParse, llc); - if (ii !== -1) { - return ii; - } - ii = indexOf.call(this._shortWeekdaysParse, llc); - if (ii !== -1) { - return ii; - } - ii = indexOf.call(this._minWeekdaysParse, llc); - return ii !== -1 ? ii : null; - } else if (format === 'ddd') { - ii = indexOf.call(this._shortWeekdaysParse, llc); - if (ii !== -1) { - return ii; - } - ii = indexOf.call(this._weekdaysParse, llc); - if (ii !== -1) { - return ii; - } - ii = indexOf.call(this._minWeekdaysParse, llc); - return ii !== -1 ? ii : null; - } else { - ii = indexOf.call(this._minWeekdaysParse, llc); - if (ii !== -1) { - return ii; - } - ii = indexOf.call(this._weekdaysParse, llc); - if (ii !== -1) { - return ii; - } - ii = indexOf.call(this._shortWeekdaysParse, llc); - return ii !== -1 ? ii : null; - } - } -} - -export function localeWeekdaysParse (weekdayName, format, strict) { - var i, mom, regex; - - if (this._weekdaysParseExact) { - return handleStrictParse.call(this, weekdayName, format, strict); - } - - if (!this._weekdaysParse) { - this._weekdaysParse = []; - this._minWeekdaysParse = []; - this._shortWeekdaysParse = []; - this._fullWeekdaysParse = []; - } - - for (i = 0; i < 7; i++) { - // make the regex if we don't have it already - - mom = createUTC([2000, 1]).day(i); - if (strict && !this._fullWeekdaysParse[i]) { - this._fullWeekdaysParse[i] = new RegExp('^' + this.weekdays(mom, '').replace('.', '\.?') + '$', 'i'); - this._shortWeekdaysParse[i] = new RegExp('^' + this.weekdaysShort(mom, '').replace('.', '\.?') + '$', 'i'); - this._minWeekdaysParse[i] = new RegExp('^' + this.weekdaysMin(mom, '').replace('.', '\.?') + '$', 'i'); - } - if (!this._weekdaysParse[i]) { - regex = '^' + this.weekdays(mom, '') + '|^' + this.weekdaysShort(mom, '') + '|^' + this.weekdaysMin(mom, ''); - this._weekdaysParse[i] = new RegExp(regex.replace('.', ''), 'i'); - } - // test the regex - if (strict && format === 'dddd' && this._fullWeekdaysParse[i].test(weekdayName)) { - return i; - } else if (strict && format === 'ddd' && this._shortWeekdaysParse[i].test(weekdayName)) { - return i; - } else if (strict && format === 'dd' && this._minWeekdaysParse[i].test(weekdayName)) { - return i; - } else if (!strict && this._weekdaysParse[i].test(weekdayName)) { - return i; - } - } -} - -// MOMENTS - -export function getSetDayOfWeek (input) { - if (!this.isValid()) { - return input != null ? this : NaN; - } - var day = this._isUTC ? this._d.getUTCDay() : this._d.getDay(); - if (input != null) { - input = parseWeekday(input, this.localeData()); - return this.add(input - day, 'd'); - } else { - return day; - } -} - -export function getSetLocaleDayOfWeek (input) { - if (!this.isValid()) { - return input != null ? this : NaN; - } - var weekday = (this.day() + 7 - this.localeData()._week.dow) % 7; - return input == null ? weekday : this.add(input - weekday, 'd'); -} - -export function getSetISODayOfWeek (input) { - if (!this.isValid()) { - return input != null ? this : NaN; - } - - // behaves the same as moment#day except - // as a getter, returns 7 instead of 0 (1-7 range instead of 0-6) - // as a setter, sunday should belong to the previous week. - - if (input != null) { - var weekday = parseIsoWeekday(input, this.localeData()); - return this.day(this.day() % 7 ? weekday : weekday - 7); - } else { - return this.day() || 7; - } -} - -var defaultWeekdaysRegex = matchWord; -export function weekdaysRegex (isStrict) { - if (this._weekdaysParseExact) { - if (!hasOwnProp(this, '_weekdaysRegex')) { - computeWeekdaysParse.call(this); - } - if (isStrict) { - return this._weekdaysStrictRegex; - } else { - return this._weekdaysRegex; - } - } else { - if (!hasOwnProp(this, '_weekdaysRegex')) { - this._weekdaysRegex = defaultWeekdaysRegex; - } - return this._weekdaysStrictRegex && isStrict ? - this._weekdaysStrictRegex : this._weekdaysRegex; - } -} - -var defaultWeekdaysShortRegex = matchWord; -export function weekdaysShortRegex (isStrict) { - if (this._weekdaysParseExact) { - if (!hasOwnProp(this, '_weekdaysRegex')) { - computeWeekdaysParse.call(this); - } - if (isStrict) { - return this._weekdaysShortStrictRegex; - } else { - return this._weekdaysShortRegex; - } - } else { - if (!hasOwnProp(this, '_weekdaysShortRegex')) { - this._weekdaysShortRegex = defaultWeekdaysShortRegex; - } - return this._weekdaysShortStrictRegex && isStrict ? - this._weekdaysShortStrictRegex : this._weekdaysShortRegex; - } -} - -var defaultWeekdaysMinRegex = matchWord; -export function weekdaysMinRegex (isStrict) { - if (this._weekdaysParseExact) { - if (!hasOwnProp(this, '_weekdaysRegex')) { - computeWeekdaysParse.call(this); - } - if (isStrict) { - return this._weekdaysMinStrictRegex; - } else { - return this._weekdaysMinRegex; - } - } else { - if (!hasOwnProp(this, '_weekdaysMinRegex')) { - this._weekdaysMinRegex = defaultWeekdaysMinRegex; - } - return this._weekdaysMinStrictRegex && isStrict ? - this._weekdaysMinStrictRegex : this._weekdaysMinRegex; - } -} - - -function computeWeekdaysParse () { - function cmpLenRev(a, b) { - return b.length - a.length; - } - - var minPieces = [], shortPieces = [], longPieces = [], mixedPieces = [], - i, mom, minp, shortp, longp; - for (i = 0; i < 7; i++) { - // make the regex if we don't have it already - mom = createUTC([2000, 1]).day(i); - minp = this.weekdaysMin(mom, ''); - shortp = this.weekdaysShort(mom, ''); - longp = this.weekdays(mom, ''); - minPieces.push(minp); - shortPieces.push(shortp); - longPieces.push(longp); - mixedPieces.push(minp); - mixedPieces.push(shortp); - mixedPieces.push(longp); - } - // Sorting makes sure if one weekday (or abbr) is a prefix of another it - // will match the longer piece. - minPieces.sort(cmpLenRev); - shortPieces.sort(cmpLenRev); - longPieces.sort(cmpLenRev); - mixedPieces.sort(cmpLenRev); - for (i = 0; i < 7; i++) { - shortPieces[i] = regexEscape(shortPieces[i]); - longPieces[i] = regexEscape(longPieces[i]); - mixedPieces[i] = regexEscape(mixedPieces[i]); - } - - this._weekdaysRegex = new RegExp('^(' + mixedPieces.join('|') + ')', 'i'); - this._weekdaysShortRegex = this._weekdaysRegex; - this._weekdaysMinRegex = this._weekdaysRegex; - - this._weekdaysStrictRegex = new RegExp('^(' + longPieces.join('|') + ')', 'i'); - this._weekdaysShortStrictRegex = new RegExp('^(' + shortPieces.join('|') + ')', 'i'); - this._weekdaysMinStrictRegex = new RegExp('^(' + minPieces.join('|') + ')', 'i'); -} diff --git a/admin/bower_components/moment/src/lib/units/day-of-year.js b/admin/bower_components/moment/src/lib/units/day-of-year.js deleted file mode 100644 index 6fe931c..0000000 --- a/admin/bower_components/moment/src/lib/units/day-of-year.js +++ /dev/null @@ -1,36 +0,0 @@ -import { addFormatToken } from '../format/format'; -import { addUnitAlias } from './aliases'; -import { addUnitPriority } from './priorities'; -import { addRegexToken, match3, match1to3 } from '../parse/regex'; -import { daysInYear } from './year'; -import { createUTCDate } from '../create/date-from-array'; -import { addParseToken } from '../parse/token'; -import toInt from '../utils/to-int'; - -// FORMATTING - -addFormatToken('DDD', ['DDDD', 3], 'DDDo', 'dayOfYear'); - -// ALIASES - -addUnitAlias('dayOfYear', 'DDD'); - -// PRIORITY -addUnitPriority('dayOfYear', 4); - -// PARSING - -addRegexToken('DDD', match1to3); -addRegexToken('DDDD', match3); -addParseToken(['DDD', 'DDDD'], function (input, array, config) { - config._dayOfYear = toInt(input); -}); - -// HELPERS - -// MOMENTS - -export function getSetDayOfYear (input) { - var dayOfYear = Math.round((this.clone().startOf('day') - this.clone().startOf('year')) / 864e5) + 1; - return input == null ? dayOfYear : this.add((input - dayOfYear), 'd'); -} diff --git a/admin/bower_components/moment/src/lib/units/hour.js b/admin/bower_components/moment/src/lib/units/hour.js deleted file mode 100644 index ef75868..0000000 --- a/admin/bower_components/moment/src/lib/units/hour.js +++ /dev/null @@ -1,144 +0,0 @@ -import { makeGetSet } from '../moment/get-set'; -import { addFormatToken } from '../format/format'; -import { addUnitAlias } from './aliases'; -import { addUnitPriority } from './priorities'; -import { addRegexToken, match1to2, match2, match3to4, match5to6 } from '../parse/regex'; -import { addParseToken } from '../parse/token'; -import { HOUR, MINUTE, SECOND } from './constants'; -import toInt from '../utils/to-int'; -import zeroFill from '../utils/zero-fill'; -import getParsingFlags from '../create/parsing-flags'; - -// FORMATTING - -function hFormat() { - return this.hours() % 12 || 12; -} - -function kFormat() { - return this.hours() || 24; -} - -addFormatToken('H', ['HH', 2], 0, 'hour'); -addFormatToken('h', ['hh', 2], 0, hFormat); -addFormatToken('k', ['kk', 2], 0, kFormat); - -addFormatToken('hmm', 0, 0, function () { - return '' + hFormat.apply(this) + zeroFill(this.minutes(), 2); -}); - -addFormatToken('hmmss', 0, 0, function () { - return '' + hFormat.apply(this) + zeroFill(this.minutes(), 2) + - zeroFill(this.seconds(), 2); -}); - -addFormatToken('Hmm', 0, 0, function () { - return '' + this.hours() + zeroFill(this.minutes(), 2); -}); - -addFormatToken('Hmmss', 0, 0, function () { - return '' + this.hours() + zeroFill(this.minutes(), 2) + - zeroFill(this.seconds(), 2); -}); - -function meridiem (token, lowercase) { - addFormatToken(token, 0, 0, function () { - return this.localeData().meridiem(this.hours(), this.minutes(), lowercase); - }); -} - -meridiem('a', true); -meridiem('A', false); - -// ALIASES - -addUnitAlias('hour', 'h'); - -// PRIORITY -addUnitPriority('hour', 13); - -// PARSING - -function matchMeridiem (isStrict, locale) { - return locale._meridiemParse; -} - -addRegexToken('a', matchMeridiem); -addRegexToken('A', matchMeridiem); -addRegexToken('H', match1to2); -addRegexToken('h', match1to2); -addRegexToken('k', match1to2); -addRegexToken('HH', match1to2, match2); -addRegexToken('hh', match1to2, match2); -addRegexToken('kk', match1to2, match2); - -addRegexToken('hmm', match3to4); -addRegexToken('hmmss', match5to6); -addRegexToken('Hmm', match3to4); -addRegexToken('Hmmss', match5to6); - -addParseToken(['H', 'HH'], HOUR); -addParseToken(['k', 'kk'], function (input, array, config) { - var kInput = toInt(input); - array[HOUR] = kInput === 24 ? 0 : kInput; -}); -addParseToken(['a', 'A'], function (input, array, config) { - config._isPm = config._locale.isPM(input); - config._meridiem = input; -}); -addParseToken(['h', 'hh'], function (input, array, config) { - array[HOUR] = toInt(input); - getParsingFlags(config).bigHour = true; -}); -addParseToken('hmm', function (input, array, config) { - var pos = input.length - 2; - array[HOUR] = toInt(input.substr(0, pos)); - array[MINUTE] = toInt(input.substr(pos)); - getParsingFlags(config).bigHour = true; -}); -addParseToken('hmmss', function (input, array, config) { - var pos1 = input.length - 4; - var pos2 = input.length - 2; - array[HOUR] = toInt(input.substr(0, pos1)); - array[MINUTE] = toInt(input.substr(pos1, 2)); - array[SECOND] = toInt(input.substr(pos2)); - getParsingFlags(config).bigHour = true; -}); -addParseToken('Hmm', function (input, array, config) { - var pos = input.length - 2; - array[HOUR] = toInt(input.substr(0, pos)); - array[MINUTE] = toInt(input.substr(pos)); -}); -addParseToken('Hmmss', function (input, array, config) { - var pos1 = input.length - 4; - var pos2 = input.length - 2; - array[HOUR] = toInt(input.substr(0, pos1)); - array[MINUTE] = toInt(input.substr(pos1, 2)); - array[SECOND] = toInt(input.substr(pos2)); -}); - -// LOCALES - -export function localeIsPM (input) { - // IE8 Quirks Mode & IE7 Standards Mode do not allow accessing strings like arrays - // Using charAt should be more compatible. - return ((input + '').toLowerCase().charAt(0) === 'p'); -} - -export var defaultLocaleMeridiemParse = /[ap]\.?m?\.?/i; -export function localeMeridiem (hours, minutes, isLower) { - if (hours > 11) { - return isLower ? 'pm' : 'PM'; - } else { - return isLower ? 'am' : 'AM'; - } -} - - -// MOMENTS - -// Setting the hour should keep the time, because the user explicitly -// specified which hour he wants. So trying to maintain the same hour (in -// a new timezone) makes sense. Adding/subtracting hours does not follow -// this rule. -export var getSetHour = makeGetSet('Hours', true); diff --git a/admin/bower_components/moment/src/lib/units/millisecond.js b/admin/bower_components/moment/src/lib/units/millisecond.js deleted file mode 100644 index 27c9512..0000000 --- a/admin/bower_components/moment/src/lib/units/millisecond.js +++ /dev/null @@ -1,69 +0,0 @@ -import { makeGetSet } from '../moment/get-set'; -import { addFormatToken } from '../format/format'; -import { addUnitAlias } from './aliases'; -import { addUnitPriority } from './priorities'; -import { addRegexToken, match1, match2, match3, match1to3, matchUnsigned } from '../parse/regex'; -import { addParseToken } from '../parse/token'; -import { MILLISECOND } from './constants'; -import toInt from '../utils/to-int'; - -// FORMATTING - -addFormatToken('S', 0, 0, function () { - return ~~(this.millisecond() / 100); -}); - -addFormatToken(0, ['SS', 2], 0, function () { - return ~~(this.millisecond() / 10); -}); - -addFormatToken(0, ['SSS', 3], 0, 'millisecond'); -addFormatToken(0, ['SSSS', 4], 0, function () { - return this.millisecond() * 10; -}); -addFormatToken(0, ['SSSSS', 5], 0, function () { - return this.millisecond() * 100; -}); -addFormatToken(0, ['SSSSSS', 6], 0, function () { - return this.millisecond() * 1000; -}); -addFormatToken(0, ['SSSSSSS', 7], 0, function () { - return this.millisecond() * 10000; -}); -addFormatToken(0, ['SSSSSSSS', 8], 0, function () { - return this.millisecond() * 100000; -}); -addFormatToken(0, ['SSSSSSSSS', 9], 0, function () { - return this.millisecond() * 1000000; -}); - - -// ALIASES - -addUnitAlias('millisecond', 'ms'); - -// PRIORITY - -addUnitPriority('millisecond', 16); - -// PARSING - -addRegexToken('S', match1to3, match1); -addRegexToken('SS', match1to3, match2); -addRegexToken('SSS', match1to3, match3); - -var token; -for (token = 'SSSS'; token.length <= 9; token += 'S') { - addRegexToken(token, matchUnsigned); -} - -function parseMs(input, array) { - array[MILLISECOND] = toInt(('0.' + input) * 1000); -} - -for (token = 'S'; token.length <= 9; token += 'S') { - addParseToken(token, parseMs); -} -// MOMENTS - -export var getSetMillisecond = makeGetSet('Milliseconds', false); diff --git a/admin/bower_components/moment/src/lib/units/minute.js b/admin/bower_components/moment/src/lib/units/minute.js deleted file mode 100644 index 9f76032..0000000 --- a/admin/bower_components/moment/src/lib/units/minute.js +++ /dev/null @@ -1,29 +0,0 @@ -import { makeGetSet } from '../moment/get-set'; -import { addFormatToken } from '../format/format'; -import { addUnitAlias } from './aliases'; -import { addUnitPriority } from './priorities'; -import { addRegexToken, match1to2, match2 } from '../parse/regex'; -import { addParseToken } from '../parse/token'; -import { MINUTE } from './constants'; - -// FORMATTING - -addFormatToken('m', ['mm', 2], 0, 'minute'); - -// ALIASES - -addUnitAlias('minute', 'm'); - -// PRIORITY - -addUnitPriority('minute', 14); - -// PARSING - -addRegexToken('m', match1to2); -addRegexToken('mm', match1to2, match2); -addParseToken(['m', 'mm'], MINUTE); - -// MOMENTS - -export var getSetMinute = makeGetSet('Minutes', false); diff --git a/admin/bower_components/moment/src/lib/units/month.js b/admin/bower_components/moment/src/lib/units/month.js deleted file mode 100644 index 28b4a1b..0000000 --- a/admin/bower_components/moment/src/lib/units/month.js +++ /dev/null @@ -1,283 +0,0 @@ -import { get } from '../moment/get-set'; -import hasOwnProp from '../utils/has-own-prop'; -import { addFormatToken } from '../format/format'; -import { addUnitAlias } from './aliases'; -import { addUnitPriority } from './priorities'; -import { addRegexToken, match1to2, match2, matchWord, regexEscape } from '../parse/regex'; -import { addParseToken } from '../parse/token'; -import { hooks } from '../utils/hooks'; -import { MONTH } from './constants'; -import toInt from '../utils/to-int'; -import isArray from '../utils/is-array'; -import isNumber from '../utils/is-number'; -import indexOf from '../utils/index-of'; -import { createUTC } from '../create/utc'; -import getParsingFlags from '../create/parsing-flags'; - -export function daysInMonth(year, month) { - return new Date(Date.UTC(year, month + 1, 0)).getUTCDate(); -} - -// FORMATTING - -addFormatToken('M', ['MM', 2], 'Mo', function () { - return this.month() + 1; -}); - -addFormatToken('MMM', 0, 0, function (format) { - return this.localeData().monthsShort(this, format); -}); - -addFormatToken('MMMM', 0, 0, function (format) { - return this.localeData().months(this, format); -}); - -// ALIASES - -addUnitAlias('month', 'M'); - -// PRIORITY - -addUnitPriority('month', 8); - -// PARSING - -addRegexToken('M', match1to2); -addRegexToken('MM', match1to2, match2); -addRegexToken('MMM', function (isStrict, locale) { - return locale.monthsShortRegex(isStrict); -}); -addRegexToken('MMMM', function (isStrict, locale) { - return locale.monthsRegex(isStrict); -}); - -addParseToken(['M', 'MM'], function (input, array) { - array[MONTH] = toInt(input) - 1; -}); - -addParseToken(['MMM', 'MMMM'], function (input, array, config, token) { - var month = config._locale.monthsParse(input, token, config._strict); - // if we didn't find a month name, mark the date as invalid. - if (month != null) { - array[MONTH] = month; - } else { - getParsingFlags(config).invalidMonth = input; - } -}); - -// LOCALES - -var MONTHS_IN_FORMAT = /D[oD]?(\[[^\[\]]*\]|\s)+MMMM?/; -export var defaultLocaleMonths = 'January_February_March_April_May_June_July_August_September_October_November_December'.split('_'); -export function localeMonths (m, format) { - if (!m) { - return isArray(this._months) ? this._months : - this._months['standalone']; - } - return isArray(this._months) ? this._months[m.month()] : - this._months[(this._months.isFormat || MONTHS_IN_FORMAT).test(format) ? 'format' : 'standalone'][m.month()]; -} - -export var defaultLocaleMonthsShort = 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'); -export function localeMonthsShort (m, format) { - if (!m) { - return isArray(this._monthsShort) ? this._monthsShort : - this._monthsShort['standalone']; - } - return isArray(this._monthsShort) ? this._monthsShort[m.month()] : - this._monthsShort[MONTHS_IN_FORMAT.test(format) ? 'format' : 'standalone'][m.month()]; -} - -function handleStrictParse(monthName, format, strict) { - var i, ii, mom, llc = monthName.toLocaleLowerCase(); - if (!this._monthsParse) { - // this is not used - this._monthsParse = []; - this._longMonthsParse = []; - this._shortMonthsParse = []; - for (i = 0; i < 12; ++i) { - mom = createUTC([2000, i]); - this._shortMonthsParse[i] = this.monthsShort(mom, '').toLocaleLowerCase(); - this._longMonthsParse[i] = this.months(mom, '').toLocaleLowerCase(); - } - } - - if (strict) { - if (format === 'MMM') { - ii = indexOf.call(this._shortMonthsParse, llc); - return ii !== -1 ? ii : null; - } else { - ii = indexOf.call(this._longMonthsParse, llc); - return ii !== -1 ? ii : null; - } - } else { - if (format === 'MMM') { - ii = indexOf.call(this._shortMonthsParse, llc); - if (ii !== -1) { - return ii; - } - ii = indexOf.call(this._longMonthsParse, llc); - return ii !== -1 ? ii : null; - } else { - ii = indexOf.call(this._longMonthsParse, llc); - if (ii !== -1) { - return ii; - } - ii = indexOf.call(this._shortMonthsParse, llc); - return ii !== -1 ? ii : null; - } - } -} - -export function localeMonthsParse (monthName, format, strict) { - var i, mom, regex; - - if (this._monthsParseExact) { - return handleStrictParse.call(this, monthName, format, strict); - } - - if (!this._monthsParse) { - this._monthsParse = []; - this._longMonthsParse = []; - this._shortMonthsParse = []; - } - - // TODO: add sorting - // Sorting makes sure if one month (or abbr) is a prefix of another - // see sorting in computeMonthsParse - for (i = 0; i < 12; i++) { - // make the regex if we don't have it already - mom = createUTC([2000, i]); - if (strict && !this._longMonthsParse[i]) { - this._longMonthsParse[i] = new RegExp('^' + this.months(mom, '').replace('.', '') + '$', 'i'); - this._shortMonthsParse[i] = new RegExp('^' + this.monthsShort(mom, '').replace('.', '') + '$', 'i'); - } - if (!strict && !this._monthsParse[i]) { - regex = '^' + this.months(mom, '') + '|^' + this.monthsShort(mom, ''); - this._monthsParse[i] = new RegExp(regex.replace('.', ''), 'i'); - } - // test the regex - if (strict && format === 'MMMM' && this._longMonthsParse[i].test(monthName)) { - return i; - } else if (strict && format === 'MMM' && this._shortMonthsParse[i].test(monthName)) { - return i; - } else if (!strict && this._monthsParse[i].test(monthName)) { - return i; - } - } -} - -// MOMENTS - -export function setMonth (mom, value) { - var dayOfMonth; - - if (!mom.isValid()) { - // No op - return mom; - } - - if (typeof value === 'string') { - if (/^\d+$/.test(value)) { - value = toInt(value); - } else { - value = mom.localeData().monthsParse(value); - // TODO: Another silent failure? - if (!isNumber(value)) { - return mom; - } - } - } - - dayOfMonth = Math.min(mom.date(), daysInMonth(mom.year(), value)); - mom._d['set' + (mom._isUTC ? 'UTC' : '') + 'Month'](value, dayOfMonth); - return mom; -} - -export function getSetMonth (value) { - if (value != null) { - setMonth(this, value); - hooks.updateOffset(this, true); - return this; - } else { - return get(this, 'Month'); - } -} - -export function getDaysInMonth () { - return daysInMonth(this.year(), this.month()); -} - -var defaultMonthsShortRegex = matchWord; -export function monthsShortRegex (isStrict) { - if (this._monthsParseExact) { - if (!hasOwnProp(this, '_monthsRegex')) { - computeMonthsParse.call(this); - } - if (isStrict) { - return this._monthsShortStrictRegex; - } else { - return this._monthsShortRegex; - } - } else { - if (!hasOwnProp(this, '_monthsShortRegex')) { - this._monthsShortRegex = defaultMonthsShortRegex; - } - return this._monthsShortStrictRegex && isStrict ? - this._monthsShortStrictRegex : this._monthsShortRegex; - } -} - -var defaultMonthsRegex = matchWord; -export function monthsRegex (isStrict) { - if (this._monthsParseExact) { - if (!hasOwnProp(this, '_monthsRegex')) { - computeMonthsParse.call(this); - } - if (isStrict) { - return this._monthsStrictRegex; - } else { - return this._monthsRegex; - } - } else { - if (!hasOwnProp(this, '_monthsRegex')) { - this._monthsRegex = defaultMonthsRegex; - } - return this._monthsStrictRegex && isStrict ? - this._monthsStrictRegex : this._monthsRegex; - } -} - -function computeMonthsParse () { - function cmpLenRev(a, b) { - return b.length - a.length; - } - - var shortPieces = [], longPieces = [], mixedPieces = [], - i, mom; - for (i = 0; i < 12; i++) { - // make the regex if we don't have it already - mom = createUTC([2000, i]); - shortPieces.push(this.monthsShort(mom, '')); - longPieces.push(this.months(mom, '')); - mixedPieces.push(this.months(mom, '')); - mixedPieces.push(this.monthsShort(mom, '')); - } - // Sorting makes sure if one month (or abbr) is a prefix of another it - // will match the longer piece. - shortPieces.sort(cmpLenRev); - longPieces.sort(cmpLenRev); - mixedPieces.sort(cmpLenRev); - for (i = 0; i < 12; i++) { - shortPieces[i] = regexEscape(shortPieces[i]); - longPieces[i] = regexEscape(longPieces[i]); - } - for (i = 0; i < 24; i++) { - mixedPieces[i] = regexEscape(mixedPieces[i]); - } - - this._monthsRegex = new RegExp('^(' + mixedPieces.join('|') + ')', 'i'); - this._monthsShortRegex = this._monthsRegex; - this._monthsStrictRegex = new RegExp('^(' + longPieces.join('|') + ')', 'i'); - this._monthsShortStrictRegex = new RegExp('^(' + shortPieces.join('|') + ')', 'i'); -} diff --git a/admin/bower_components/moment/src/lib/units/offset.js b/admin/bower_components/moment/src/lib/units/offset.js deleted file mode 100644 index 752358f..0000000 --- a/admin/bower_components/moment/src/lib/units/offset.js +++ /dev/null @@ -1,235 +0,0 @@ -import zeroFill from '../utils/zero-fill'; -import { createDuration } from '../duration/create'; -import { addSubtract } from '../moment/add-subtract'; -import { isMoment, copyConfig } from '../moment/constructor'; -import { addFormatToken } from '../format/format'; -import { addRegexToken, matchOffset, matchShortOffset } from '../parse/regex'; -import { addParseToken } from '../parse/token'; -import { createLocal } from '../create/local'; -import { prepareConfig } from '../create/from-anything'; -import { createUTC } from '../create/utc'; -import isDate from '../utils/is-date'; -import toInt from '../utils/to-int'; -import isUndefined from '../utils/is-undefined'; -import compareArrays from '../utils/compare-arrays'; -import { hooks } from '../utils/hooks'; - -// FORMATTING - -function offset (token, separator) { - addFormatToken(token, 0, 0, function () { - var offset = this.utcOffset(); - var sign = '+'; - if (offset < 0) { - offset = -offset; - sign = '-'; - } - return sign + zeroFill(~~(offset / 60), 2) + separator + zeroFill(~~(offset) % 60, 2); - }); -} - -offset('Z', ':'); -offset('ZZ', ''); - -// PARSING - -addRegexToken('Z', matchShortOffset); -addRegexToken('ZZ', matchShortOffset); -addParseToken(['Z', 'ZZ'], function (input, array, config) { - config._useUTC = true; - config._tzm = offsetFromString(matchShortOffset, input); -}); - -// HELPERS - -// timezone chunker -// '+10:00' > ['10', '00'] -// '-1530' > ['-15', '30'] -var chunkOffset = /([\+\-]|\d\d)/gi; - -function offsetFromString(matcher, string) { - var matches = (string || '').match(matcher); - - if (matches === null) { - return null; - } - - var chunk = matches[matches.length - 1] || []; - var parts = (chunk + '').match(chunkOffset) || ['-', 0, 0]; - var minutes = +(parts[1] * 60) + toInt(parts[2]); - - return minutes === 0 ? - 0 : - parts[0] === '+' ? minutes : -minutes; -} - -// Return a moment from input, that is local/utc/zone equivalent to model. -export function cloneWithOffset(input, model) { - var res, diff; - if (model._isUTC) { - res = model.clone(); - diff = (isMoment(input) || isDate(input) ? input.valueOf() : createLocal(input).valueOf()) - res.valueOf(); - // Use low-level api, because this fn is low-level api. - res._d.setTime(res._d.valueOf() + diff); - hooks.updateOffset(res, false); - return res; - } else { - return createLocal(input).local(); - } -} - -function getDateOffset (m) { - // On Firefox.24 Date#getTimezoneOffset returns a floating point. - // https://github.com/moment/moment/pull/1871 - return -Math.round(m._d.getTimezoneOffset() / 15) * 15; -} - -// HOOKS - -// This function will be called whenever a moment is mutated. -// It is intended to keep the offset in sync with the timezone. -hooks.updateOffset = function () {}; - -// MOMENTS - -// keepLocalTime = true means only change the timezone, without -// affecting the local hour. So 5:31:26 +0300 --[utcOffset(2, true)]--> -// 5:31:26 +0200 It is possible that 5:31:26 doesn't exist with offset -// +0200, so we adjust the time as needed, to be valid. -// -// Keeping the time actually adds/subtracts (one hour) -// from the actual represented time. That is why we call updateOffset -// a second time. In case it wants us to change the offset again -// _changeInProgress == true case, then we have to adjust, because -// there is no such time in the given timezone. -export function getSetOffset (input, keepLocalTime, keepMinutes) { - var offset = this._offset || 0, - localAdjust; - if (!this.isValid()) { - return input != null ? this : NaN; - } - if (input != null) { - if (typeof input === 'string') { - input = offsetFromString(matchShortOffset, input); - if (input === null) { - return this; - } - } else if (Math.abs(input) < 16 && !keepMinutes) { - input = input * 60; - } - if (!this._isUTC && keepLocalTime) { - localAdjust = getDateOffset(this); - } - this._offset = input; - this._isUTC = true; - if (localAdjust != null) { - this.add(localAdjust, 'm'); - } - if (offset !== input) { - if (!keepLocalTime || this._changeInProgress) { - addSubtract(this, createDuration(input - offset, 'm'), 1, false); - } else if (!this._changeInProgress) { - this._changeInProgress = true; - hooks.updateOffset(this, true); - this._changeInProgress = null; - } - } - return this; - } else { - return this._isUTC ? offset : getDateOffset(this); - } -} - -export function getSetZone (input, keepLocalTime) { - if (input != null) { - if (typeof input !== 'string') { - input = -input; - } - - this.utcOffset(input, keepLocalTime); - - return this; - } else { - return -this.utcOffset(); - } -} - -export function setOffsetToUTC (keepLocalTime) { - return this.utcOffset(0, keepLocalTime); -} - -export function setOffsetToLocal (keepLocalTime) { - if (this._isUTC) { - this.utcOffset(0, keepLocalTime); - this._isUTC = false; - - if (keepLocalTime) { - this.subtract(getDateOffset(this), 'm'); - } - } - return this; -} - -export function setOffsetToParsedOffset () { - if (this._tzm != null) { - this.utcOffset(this._tzm, false, true); - } else if (typeof this._i === 'string') { - var tZone = offsetFromString(matchOffset, this._i); - if (tZone != null) { - this.utcOffset(tZone); - } - else { - this.utcOffset(0, true); - } - } - return this; -} - -export function hasAlignedHourOffset (input) { - if (!this.isValid()) { - return false; - } - input = input ? createLocal(input).utcOffset() : 0; - - return (this.utcOffset() - input) % 60 === 0; -} - -export function isDaylightSavingTime () { - return ( - this.utcOffset() > this.clone().month(0).utcOffset() || - this.utcOffset() > this.clone().month(5).utcOffset() - ); -} - -export function isDaylightSavingTimeShifted () { - if (!isUndefined(this._isDSTShifted)) { - return this._isDSTShifted; - } - - var c = {}; - - copyConfig(c, this); - c = prepareConfig(c); - - if (c._a) { - var other = c._isUTC ? createUTC(c._a) : createLocal(c._a); - this._isDSTShifted = this.isValid() && - compareArrays(c._a, other.toArray()) > 0; - } else { - this._isDSTShifted = false; - } - - return this._isDSTShifted; -} - -export function isLocal () { - return this.isValid() ? !this._isUTC : false; -} - -export function isUtcOffset () { - return this.isValid() ? this._isUTC : false; -} - -export function isUtc () { - return this.isValid() ? this._isUTC && this._offset === 0 : false; -} diff --git a/admin/bower_components/moment/src/lib/units/priorities.js b/admin/bower_components/moment/src/lib/units/priorities.js deleted file mode 100644 index 699017c..0000000 --- a/admin/bower_components/moment/src/lib/units/priorities.js +++ /dev/null @@ -1,16 +0,0 @@ -var priorities = {}; - -export function addUnitPriority(unit, priority) { - priorities[unit] = priority; -} - -export function getPrioritizedUnits(unitsObj) { - var units = []; - for (var u in unitsObj) { - units.push({unit: u, priority: priorities[u]}); - } - units.sort(function (a, b) { - return a.priority - b.priority; - }); - return units; -} diff --git a/admin/bower_components/moment/src/lib/units/quarter.js b/admin/bower_components/moment/src/lib/units/quarter.js deleted file mode 100644 index a6d409a..0000000 --- a/admin/bower_components/moment/src/lib/units/quarter.js +++ /dev/null @@ -1,32 +0,0 @@ -import { addFormatToken } from '../format/format'; -import { addUnitAlias } from './aliases'; -import { addUnitPriority } from './priorities'; -import { addRegexToken, match1 } from '../parse/regex'; -import { addParseToken } from '../parse/token'; -import { MONTH } from './constants'; -import toInt from '../utils/to-int'; - -// FORMATTING - -addFormatToken('Q', 0, 'Qo', 'quarter'); - -// ALIASES - -addUnitAlias('quarter', 'Q'); - -// PRIORITY - -addUnitPriority('quarter', 7); - -// PARSING - -addRegexToken('Q', match1); -addParseToken('Q', function (input, array) { - array[MONTH] = (toInt(input) - 1) * 3; -}); - -// MOMENTS - -export function getSetQuarter (input) { - return input == null ? Math.ceil((this.month() + 1) / 3) : this.month((input - 1) * 3 + this.month() % 3); -} diff --git a/admin/bower_components/moment/src/lib/units/second.js b/admin/bower_components/moment/src/lib/units/second.js deleted file mode 100644 index 1793711..0000000 --- a/admin/bower_components/moment/src/lib/units/second.js +++ /dev/null @@ -1,29 +0,0 @@ -import { makeGetSet } from '../moment/get-set'; -import { addFormatToken } from '../format/format'; -import { addUnitAlias } from './aliases'; -import { addUnitPriority } from './priorities'; -import { addRegexToken, match1to2, match2 } from '../parse/regex'; -import { addParseToken } from '../parse/token'; -import { SECOND } from './constants'; - -// FORMATTING - -addFormatToken('s', ['ss', 2], 0, 'second'); - -// ALIASES - -addUnitAlias('second', 's'); - -// PRIORITY - -addUnitPriority('second', 15); - -// PARSING - -addRegexToken('s', match1to2); -addRegexToken('ss', match1to2, match2); -addParseToken(['s', 'ss'], SECOND); - -// MOMENTS - -export var getSetSecond = makeGetSet('Seconds', false); diff --git a/admin/bower_components/moment/src/lib/units/timestamp.js b/admin/bower_components/moment/src/lib/units/timestamp.js deleted file mode 100644 index a49e1e4..0000000 --- a/admin/bower_components/moment/src/lib/units/timestamp.js +++ /dev/null @@ -1,20 +0,0 @@ -import { addFormatToken } from '../format/format'; -import { addRegexToken, matchTimestamp, matchSigned } from '../parse/regex'; -import { addParseToken } from '../parse/token'; -import toInt from '../utils/to-int'; - -// FORMATTING - -addFormatToken('X', 0, 0, 'unix'); -addFormatToken('x', 0, 0, 'valueOf'); - -// PARSING - -addRegexToken('x', matchSigned); -addRegexToken('X', matchTimestamp); -addParseToken('X', function (input, array, config) { - config._d = new Date(parseFloat(input, 10) * 1000); -}); -addParseToken('x', function (input, array, config) { - config._d = new Date(toInt(input)); -}); diff --git a/admin/bower_components/moment/src/lib/units/timezone.js b/admin/bower_components/moment/src/lib/units/timezone.js deleted file mode 100644 index 20c81cd..0000000 --- a/admin/bower_components/moment/src/lib/units/timezone.js +++ /dev/null @@ -1,16 +0,0 @@ -import { addFormatToken } from '../format/format'; - -// FORMATTING - -addFormatToken('z', 0, 0, 'zoneAbbr'); -addFormatToken('zz', 0, 0, 'zoneName'); - -// MOMENTS - -export function getZoneAbbr () { - return this._isUTC ? 'UTC' : ''; -} - -export function getZoneName () { - return this._isUTC ? 'Coordinated Universal Time' : ''; -} diff --git a/admin/bower_components/moment/src/lib/units/units.js b/admin/bower_components/moment/src/lib/units/units.js deleted file mode 100644 index 6f45f1c..0000000 --- a/admin/bower_components/moment/src/lib/units/units.js +++ /dev/null @@ -1,20 +0,0 @@ -// Side effect imports -import './day-of-month'; -import './day-of-week'; -import './day-of-year'; -import './hour'; -import './millisecond'; -import './minute'; -import './month'; -import './offset'; -import './quarter'; -import './second'; -import './timestamp'; -import './timezone'; -import './week-year'; -import './week'; -import './year'; - -import { normalizeUnits } from './aliases'; - -export { normalizeUnits }; diff --git a/admin/bower_components/moment/src/lib/units/week-calendar-utils.js b/admin/bower_components/moment/src/lib/units/week-calendar-utils.js deleted file mode 100644 index 5be8a5f..0000000 --- a/admin/bower_components/moment/src/lib/units/week-calendar-utils.js +++ /dev/null @@ -1,65 +0,0 @@ -import { daysInYear } from './year'; -import { createLocal } from '../create/local'; -import { createUTCDate } from '../create/date-from-array'; - -// start-of-first-week - start-of-year -function firstWeekOffset(year, dow, doy) { - var // first-week day -- which january is always in the first week (4 for iso, 1 for other) - fwd = 7 + dow - doy, - // first-week day local weekday -- which local weekday is fwd - fwdlw = (7 + createUTCDate(year, 0, fwd).getUTCDay() - dow) % 7; - - return -fwdlw + fwd - 1; -} - -// https://en.wikipedia.org/wiki/ISO_week_date#Calculating_a_date_given_the_year.2C_week_number_and_weekday -export function dayOfYearFromWeeks(year, week, weekday, dow, doy) { - var localWeekday = (7 + weekday - dow) % 7, - weekOffset = firstWeekOffset(year, dow, doy), - dayOfYear = 1 + 7 * (week - 1) + localWeekday + weekOffset, - resYear, resDayOfYear; - - if (dayOfYear <= 0) { - resYear = year - 1; - resDayOfYear = daysInYear(resYear) + dayOfYear; - } else if (dayOfYear > daysInYear(year)) { - resYear = year + 1; - resDayOfYear = dayOfYear - daysInYear(year); - } else { - resYear = year; - resDayOfYear = dayOfYear; - } - - return { - year: resYear, - dayOfYear: resDayOfYear - }; -} - -export function weekOfYear(mom, dow, doy) { - var weekOffset = firstWeekOffset(mom.year(), dow, doy), - week = Math.floor((mom.dayOfYear() - weekOffset - 1) / 7) + 1, - resWeek, resYear; - - if (week < 1) { - resYear = mom.year() - 1; - resWeek = week + weeksInYear(resYear, dow, doy); - } else if (week > weeksInYear(mom.year(), dow, doy)) { - resWeek = week - weeksInYear(mom.year(), dow, doy); - resYear = mom.year() + 1; - } else { - resYear = mom.year(); - resWeek = week; - } - - return { - week: resWeek, - year: resYear - }; -} - -export function weeksInYear(year, dow, doy) { - var weekOffset = firstWeekOffset(year, dow, doy), - weekOffsetNext = firstWeekOffset(year + 1, dow, doy); - return (daysInYear(year) - weekOffset + weekOffsetNext) / 7; -} diff --git a/admin/bower_components/moment/src/lib/units/week-year.js b/admin/bower_components/moment/src/lib/units/week-year.js deleted file mode 100644 index 7fa5425..0000000 --- a/admin/bower_components/moment/src/lib/units/week-year.js +++ /dev/null @@ -1,107 +0,0 @@ -import { addFormatToken } from '../format/format'; -import { addUnitAlias } from './aliases'; -import { addUnitPriority } from './priorities'; -import { addRegexToken, match1to2, match1to4, match1to6, match2, match4, match6, matchSigned } from '../parse/regex'; -import { addWeekParseToken } from '../parse/token'; -import { weekOfYear, weeksInYear, dayOfYearFromWeeks } from './week-calendar-utils'; -import toInt from '../utils/to-int'; -import { hooks } from '../utils/hooks'; -import { createLocal } from '../create/local'; -import { createUTCDate } from '../create/date-from-array'; - -// FORMATTING - -addFormatToken(0, ['gg', 2], 0, function () { - return this.weekYear() % 100; -}); - -addFormatToken(0, ['GG', 2], 0, function () { - return this.isoWeekYear() % 100; -}); - -function addWeekYearFormatToken (token, getter) { - addFormatToken(0, [token, token.length], 0, getter); -} - -addWeekYearFormatToken('gggg', 'weekYear'); -addWeekYearFormatToken('ggggg', 'weekYear'); -addWeekYearFormatToken('GGGG', 'isoWeekYear'); -addWeekYearFormatToken('GGGGG', 'isoWeekYear'); - -// ALIASES - -addUnitAlias('weekYear', 'gg'); -addUnitAlias('isoWeekYear', 'GG'); - -// PRIORITY - -addUnitPriority('weekYear', 1); -addUnitPriority('isoWeekYear', 1); - - -// PARSING - -addRegexToken('G', matchSigned); -addRegexToken('g', matchSigned); -addRegexToken('GG', match1to2, match2); -addRegexToken('gg', match1to2, match2); -addRegexToken('GGGG', match1to4, match4); -addRegexToken('gggg', match1to4, match4); -addRegexToken('GGGGG', match1to6, match6); -addRegexToken('ggggg', match1to6, match6); - -addWeekParseToken(['gggg', 'ggggg', 'GGGG', 'GGGGG'], function (input, week, config, token) { - week[token.substr(0, 2)] = toInt(input); -}); - -addWeekParseToken(['gg', 'GG'], function (input, week, config, token) { - week[token] = hooks.parseTwoDigitYear(input); -}); - -// MOMENTS - -export function getSetWeekYear (input) { - return getSetWeekYearHelper.call(this, - input, - this.week(), - this.weekday(), - this.localeData()._week.dow, - this.localeData()._week.doy); -} - -export function getSetISOWeekYear (input) { - return getSetWeekYearHelper.call(this, - input, this.isoWeek(), this.isoWeekday(), 1, 4); -} - -export function getISOWeeksInYear () { - return weeksInYear(this.year(), 1, 4); -} - -export function getWeeksInYear () { - var weekInfo = this.localeData()._week; - return weeksInYear(this.year(), weekInfo.dow, weekInfo.doy); -} - -function getSetWeekYearHelper(input, week, weekday, dow, doy) { - var weeksTarget; - if (input == null) { - return weekOfYear(this, dow, doy).year; - } else { - weeksTarget = weeksInYear(input, dow, doy); - if (week > weeksTarget) { - week = weeksTarget; - } - return setWeekAll.call(this, input, week, weekday, dow, doy); - } -} - -function setWeekAll(weekYear, week, weekday, dow, doy) { - var dayOfYearData = dayOfYearFromWeeks(weekYear, week, weekday, dow, doy), - date = createUTCDate(dayOfYearData.year, 0, dayOfYearData.dayOfYear); - - this.year(date.getUTCFullYear()); - this.month(date.getUTCMonth()); - this.date(date.getUTCDate()); - return this; -} diff --git a/admin/bower_components/moment/src/lib/units/week.js b/admin/bower_components/moment/src/lib/units/week.js deleted file mode 100644 index da64ffe..0000000 --- a/admin/bower_components/moment/src/lib/units/week.js +++ /dev/null @@ -1,67 +0,0 @@ -import { addFormatToken } from '../format/format'; -import { addUnitAlias } from './aliases'; -import { addUnitPriority } from './priorities'; -import { addRegexToken, match1to2, match2 } from '../parse/regex'; -import { addWeekParseToken } from '../parse/token'; -import toInt from '../utils/to-int'; -import { createLocal } from '../create/local'; -import { weekOfYear } from './week-calendar-utils'; - -// FORMATTING - -addFormatToken('w', ['ww', 2], 'wo', 'week'); -addFormatToken('W', ['WW', 2], 'Wo', 'isoWeek'); - -// ALIASES - -addUnitAlias('week', 'w'); -addUnitAlias('isoWeek', 'W'); - -// PRIORITIES - -addUnitPriority('week', 5); -addUnitPriority('isoWeek', 5); - -// PARSING - -addRegexToken('w', match1to2); -addRegexToken('ww', match1to2, match2); -addRegexToken('W', match1to2); -addRegexToken('WW', match1to2, match2); - -addWeekParseToken(['w', 'ww', 'W', 'WW'], function (input, week, config, token) { - week[token.substr(0, 1)] = toInt(input); -}); - -// HELPERS - -// LOCALES - -export function localeWeek (mom) { - return weekOfYear(mom, this._week.dow, this._week.doy).week; -} - -export var defaultLocaleWeek = { - dow : 0, // Sunday is the first day of the week. - doy : 6 // The week that contains Jan 1st is the first week of the year. -}; - -export function localeFirstDayOfWeek () { - return this._week.dow; -} - -export function localeFirstDayOfYear () { - return this._week.doy; -} - -// MOMENTS - -export function getSetWeek (input) { - var week = this.localeData().week(this); - return input == null ? week : this.add((input - week) * 7, 'd'); -} - -export function getSetISOWeek (input) { - var week = weekOfYear(this, 1, 4).week; - return input == null ? week : this.add((input - week) * 7, 'd'); -} diff --git a/admin/bower_components/moment/src/lib/units/year.js b/admin/bower_components/moment/src/lib/units/year.js deleted file mode 100644 index a10e5b4..0000000 --- a/admin/bower_components/moment/src/lib/units/year.js +++ /dev/null @@ -1,75 +0,0 @@ -import { makeGetSet } from '../moment/get-set'; -import { addFormatToken } from '../format/format'; -import { addUnitAlias } from './aliases'; -import { addUnitPriority } from './priorities'; -import { addRegexToken, match1to2, match1to4, match1to6, match2, match4, match6, matchSigned } from '../parse/regex'; -import { addParseToken } from '../parse/token'; -import { hooks } from '../utils/hooks'; -import { YEAR } from './constants'; -import toInt from '../utils/to-int'; - -// FORMATTING - -addFormatToken('Y', 0, 0, function () { - var y = this.year(); - return y <= 9999 ? '' + y : '+' + y; -}); - -addFormatToken(0, ['YY', 2], 0, function () { - return this.year() % 100; -}); - -addFormatToken(0, ['YYYY', 4], 0, 'year'); -addFormatToken(0, ['YYYYY', 5], 0, 'year'); -addFormatToken(0, ['YYYYYY', 6, true], 0, 'year'); - -// ALIASES - -addUnitAlias('year', 'y'); - -// PRIORITIES - -addUnitPriority('year', 1); - -// PARSING - -addRegexToken('Y', matchSigned); -addRegexToken('YY', match1to2, match2); -addRegexToken('YYYY', match1to4, match4); -addRegexToken('YYYYY', match1to6, match6); -addRegexToken('YYYYYY', match1to6, match6); - -addParseToken(['YYYYY', 'YYYYYY'], YEAR); -addParseToken('YYYY', function (input, array) { - array[YEAR] = input.length === 2 ? hooks.parseTwoDigitYear(input) : toInt(input); -}); -addParseToken('YY', function (input, array) { - array[YEAR] = hooks.parseTwoDigitYear(input); -}); -addParseToken('Y', function (input, array) { - array[YEAR] = parseInt(input, 10); -}); - -// HELPERS - -export function daysInYear(year) { - return isLeapYear(year) ? 366 : 365; -} - -function isLeapYear(year) { - return (year % 4 === 0 && year % 100 !== 0) || year % 400 === 0; -} - -// HOOKS - -hooks.parseTwoDigitYear = function (input) { - return toInt(input) + (toInt(input) > 68 ? 1900 : 2000); -}; - -// MOMENTS - -export var getSetYear = makeGetSet('FullYear', true); - -export function getIsLeapYear () { - return isLeapYear(this.year()); -} diff --git a/admin/bower_components/moment/src/lib/utils/abs-ceil.js b/admin/bower_components/moment/src/lib/utils/abs-ceil.js deleted file mode 100644 index 7cf9329..0000000 --- a/admin/bower_components/moment/src/lib/utils/abs-ceil.js +++ /dev/null @@ -1,7 +0,0 @@ -export default function absCeil (number) { - if (number < 0) { - return Math.floor(number); - } else { - return Math.ceil(number); - } -} diff --git a/admin/bower_components/moment/src/lib/utils/abs-floor.js b/admin/bower_components/moment/src/lib/utils/abs-floor.js deleted file mode 100644 index 401c7f0..0000000 --- a/admin/bower_components/moment/src/lib/utils/abs-floor.js +++ /dev/null @@ -1,8 +0,0 @@ -export default function absFloor (number) { - if (number < 0) { - // -0 -> 0 - return Math.ceil(number) || 0; - } else { - return Math.floor(number); - } -} diff --git a/admin/bower_components/moment/src/lib/utils/abs-round.js b/admin/bower_components/moment/src/lib/utils/abs-round.js deleted file mode 100644 index 98f54bc..0000000 --- a/admin/bower_components/moment/src/lib/utils/abs-round.js +++ /dev/null @@ -1,7 +0,0 @@ -export default function absRound (number) { - if (number < 0) { - return Math.round(-1 * number) * -1; - } else { - return Math.round(number); - } -} diff --git a/admin/bower_components/moment/src/lib/utils/compare-arrays.js b/admin/bower_components/moment/src/lib/utils/compare-arrays.js deleted file mode 100644 index 2eb274b..0000000 --- a/admin/bower_components/moment/src/lib/utils/compare-arrays.js +++ /dev/null @@ -1,16 +0,0 @@ -import toInt from './to-int'; - -// compare two arrays, return the number of differences -export default function compareArrays(array1, array2, dontConvert) { - var len = Math.min(array1.length, array2.length), - lengthDiff = Math.abs(array1.length - array2.length), - diffs = 0, - i; - for (i = 0; i < len; i++) { - if ((dontConvert && array1[i] !== array2[i]) || - (!dontConvert && toInt(array1[i]) !== toInt(array2[i]))) { - diffs++; - } - } - return diffs + lengthDiff; -} diff --git a/admin/bower_components/moment/src/lib/utils/defaults.js b/admin/bower_components/moment/src/lib/utils/defaults.js deleted file mode 100644 index 45c5e87..0000000 --- a/admin/bower_components/moment/src/lib/utils/defaults.js +++ /dev/null @@ -1,10 +0,0 @@ -// Pick the first defined of two or three arguments. -export default function defaults(a, b, c) { - if (a != null) { - return a; - } - if (b != null) { - return b; - } - return c; -} diff --git a/admin/bower_components/moment/src/lib/utils/deprecate.js b/admin/bower_components/moment/src/lib/utils/deprecate.js deleted file mode 100644 index 8b4c87a..0000000 --- a/admin/bower_components/moment/src/lib/utils/deprecate.js +++ /dev/null @@ -1,55 +0,0 @@ -import extend from './extend'; -import { hooks } from './hooks'; -import isUndefined from './is-undefined'; - -function warn(msg) { - if (hooks.suppressDeprecationWarnings === false && - (typeof console !== 'undefined') && console.warn) { - console.warn('Deprecation warning: ' + msg); - } -} - -export function deprecate(msg, fn) { - var firstTime = true; - - return extend(function () { - if (hooks.deprecationHandler != null) { - hooks.deprecationHandler(null, msg); - } - if (firstTime) { - var args = []; - var arg; - for (var i = 0; i < arguments.length; i++) { - arg = ''; - if (typeof arguments[i] === 'object') { - arg += '\n[' + i + '] '; - for (var key in arguments[0]) { - arg += key + ': ' + arguments[0][key] + ', '; - } - arg = arg.slice(0, -2); // Remove trailing comma and space - } else { - arg = arguments[i]; - } - args.push(arg); - } - warn(msg + '\nArguments: ' + Array.prototype.slice.call(args).join('') + '\n' + (new Error()).stack); - firstTime = false; - } - return fn.apply(this, arguments); - }, fn); -} - -var deprecations = {}; - -export function deprecateSimple(name, msg) { - if (hooks.deprecationHandler != null) { - hooks.deprecationHandler(name, msg); - } - if (!deprecations[name]) { - warn(msg); - deprecations[name] = true; - } -} - -hooks.suppressDeprecationWarnings = false; -hooks.deprecationHandler = null; diff --git a/admin/bower_components/moment/src/lib/utils/extend.js b/admin/bower_components/moment/src/lib/utils/extend.js deleted file mode 100644 index ba74a0b..0000000 --- a/admin/bower_components/moment/src/lib/utils/extend.js +++ /dev/null @@ -1,19 +0,0 @@ -import hasOwnProp from './has-own-prop'; - -export default function extend(a, b) { - for (var i in b) { - if (hasOwnProp(b, i)) { - a[i] = b[i]; - } - } - - if (hasOwnProp(b, 'toString')) { - a.toString = b.toString; - } - - if (hasOwnProp(b, 'valueOf')) { - a.valueOf = b.valueOf; - } - - return a; -} diff --git a/admin/bower_components/moment/src/lib/utils/has-own-prop.js b/admin/bower_components/moment/src/lib/utils/has-own-prop.js deleted file mode 100644 index 4d2403c..0000000 --- a/admin/bower_components/moment/src/lib/utils/has-own-prop.js +++ /dev/null @@ -1,3 +0,0 @@ -export default function hasOwnProp(a, b) { - return Object.prototype.hasOwnProperty.call(a, b); -} diff --git a/admin/bower_components/moment/src/lib/utils/hooks.js b/admin/bower_components/moment/src/lib/utils/hooks.js deleted file mode 100644 index 02a5bd3..0000000 --- a/admin/bower_components/moment/src/lib/utils/hooks.js +++ /dev/null @@ -1,13 +0,0 @@ -export { hooks, setHookCallback }; - -var hookCallback; - -function hooks () { - return hookCallback.apply(null, arguments); -} - -// This is done to register the method called with moment() -// without creating circular dependencies. -function setHookCallback (callback) { - hookCallback = callback; -} diff --git a/admin/bower_components/moment/src/lib/utils/index-of.js b/admin/bower_components/moment/src/lib/utils/index-of.js deleted file mode 100644 index 92298cf..0000000 --- a/admin/bower_components/moment/src/lib/utils/index-of.js +++ /dev/null @@ -1,18 +0,0 @@ -var indexOf; - -if (Array.prototype.indexOf) { - indexOf = Array.prototype.indexOf; -} else { - indexOf = function (o) { - // I know - var i; - for (i = 0; i < this.length; ++i) { - if (this[i] === o) { - return i; - } - } - return -1; - }; -} - -export { indexOf as default }; diff --git a/admin/bower_components/moment/src/lib/utils/is-array.js b/admin/bower_components/moment/src/lib/utils/is-array.js deleted file mode 100644 index 2d0e0f3..0000000 --- a/admin/bower_components/moment/src/lib/utils/is-array.js +++ /dev/null @@ -1,3 +0,0 @@ -export default function isArray(input) { - return input instanceof Array || Object.prototype.toString.call(input) === '[object Array]'; -} diff --git a/admin/bower_components/moment/src/lib/utils/is-date.js b/admin/bower_components/moment/src/lib/utils/is-date.js deleted file mode 100644 index 69c4d0e..0000000 --- a/admin/bower_components/moment/src/lib/utils/is-date.js +++ /dev/null @@ -1,3 +0,0 @@ -export default function isDate(input) { - return input instanceof Date || Object.prototype.toString.call(input) === '[object Date]'; -} diff --git a/admin/bower_components/moment/src/lib/utils/is-function.js b/admin/bower_components/moment/src/lib/utils/is-function.js deleted file mode 100644 index 12304b1..0000000 --- a/admin/bower_components/moment/src/lib/utils/is-function.js +++ /dev/null @@ -1,3 +0,0 @@ -export default function isFunction(input) { - return input instanceof Function || Object.prototype.toString.call(input) === '[object Function]'; -} diff --git a/admin/bower_components/moment/src/lib/utils/is-number.js b/admin/bower_components/moment/src/lib/utils/is-number.js deleted file mode 100644 index 74d6137..0000000 --- a/admin/bower_components/moment/src/lib/utils/is-number.js +++ /dev/null @@ -1,3 +0,0 @@ -export default function isNumber(input) { - return typeof input === 'number' || Object.prototype.toString.call(input) === '[object Number]'; -} diff --git a/admin/bower_components/moment/src/lib/utils/is-object-empty.js b/admin/bower_components/moment/src/lib/utils/is-object-empty.js deleted file mode 100644 index 1f2d939..0000000 --- a/admin/bower_components/moment/src/lib/utils/is-object-empty.js +++ /dev/null @@ -1,8 +0,0 @@ -export default function isObjectEmpty(obj) { - var k; - for (k in obj) { - // even if its not own property I'd still call it non-empty - return false; - } - return true; -} diff --git a/admin/bower_components/moment/src/lib/utils/is-object.js b/admin/bower_components/moment/src/lib/utils/is-object.js deleted file mode 100644 index 1113538..0000000 --- a/admin/bower_components/moment/src/lib/utils/is-object.js +++ /dev/null @@ -1,5 +0,0 @@ -export default function isObject(input) { - // IE8 will treat undefined and null as object if it wasn't for - // input != null - return input != null && Object.prototype.toString.call(input) === '[object Object]'; -} diff --git a/admin/bower_components/moment/src/lib/utils/is-undefined.js b/admin/bower_components/moment/src/lib/utils/is-undefined.js deleted file mode 100644 index de57a8b..0000000 --- a/admin/bower_components/moment/src/lib/utils/is-undefined.js +++ /dev/null @@ -1,3 +0,0 @@ -export default function isUndefined(input) { - return input === void 0; -} diff --git a/admin/bower_components/moment/src/lib/utils/keys.js b/admin/bower_components/moment/src/lib/utils/keys.js deleted file mode 100644 index 2da4e32..0000000 --- a/admin/bower_components/moment/src/lib/utils/keys.js +++ /dev/null @@ -1,19 +0,0 @@ -import hasOwnProp from './has-own-prop'; - -var keys; - -if (Object.keys) { - keys = Object.keys; -} else { - keys = function (obj) { - var i, res = []; - for (i in obj) { - if (hasOwnProp(obj, i)) { - res.push(i); - } - } - return res; - }; -} - -export { keys as default }; diff --git a/admin/bower_components/moment/src/lib/utils/map.js b/admin/bower_components/moment/src/lib/utils/map.js deleted file mode 100644 index 1cbc563..0000000 --- a/admin/bower_components/moment/src/lib/utils/map.js +++ /dev/null @@ -1,7 +0,0 @@ -export default function map(arr, fn) { - var res = [], i; - for (i = 0; i < arr.length; ++i) { - res.push(fn(arr[i], i)); - } - return res; -} diff --git a/admin/bower_components/moment/src/lib/utils/some.js b/admin/bower_components/moment/src/lib/utils/some.js deleted file mode 100644 index 1bd3186..0000000 --- a/admin/bower_components/moment/src/lib/utils/some.js +++ /dev/null @@ -1,19 +0,0 @@ -var some; -if (Array.prototype.some) { - some = Array.prototype.some; -} else { - some = function (fun) { - var t = Object(this); - var len = t.length >>> 0; - - for (var i = 0; i < len; i++) { - if (i in t && fun.call(this, t[i], i, t)) { - return true; - } - } - - return false; - }; -} - -export { some as default }; diff --git a/admin/bower_components/moment/src/lib/utils/to-int.js b/admin/bower_components/moment/src/lib/utils/to-int.js deleted file mode 100644 index fb48941..0000000 --- a/admin/bower_components/moment/src/lib/utils/to-int.js +++ /dev/null @@ -1,12 +0,0 @@ -import absFloor from './abs-floor'; - -export default function toInt(argumentForCoercion) { - var coercedNumber = +argumentForCoercion, - value = 0; - - if (coercedNumber !== 0 && isFinite(coercedNumber)) { - value = absFloor(coercedNumber); - } - - return value; -} diff --git a/admin/bower_components/moment/src/lib/utils/zero-fill.js b/admin/bower_components/moment/src/lib/utils/zero-fill.js deleted file mode 100644 index 7009ec9..0000000 --- a/admin/bower_components/moment/src/lib/utils/zero-fill.js +++ /dev/null @@ -1,7 +0,0 @@ -export default function zeroFill(number, targetLength, forceSign) { - var absNumber = '' + Math.abs(number), - zerosToFill = targetLength - absNumber.length, - sign = number >= 0; - return (sign ? (forceSign ? '+' : '') : '-') + - Math.pow(10, Math.max(0, zerosToFill)).toString().substr(1) + absNumber; -} diff --git a/admin/bower_components/moment/src/locale/af.js b/admin/bower_components/moment/src/locale/af.js deleted file mode 100644 index b6bdbab..0000000 --- a/admin/bower_components/moment/src/locale/af.js +++ /dev/null @@ -1,63 +0,0 @@ -//! moment.js locale configuration -//! locale : Afrikaans [af] -//! author : Werner Mollentze : https://github.com/wernerm - -import moment from '../moment'; - -export default moment.defineLocale('af', { - months : 'Januarie_Februarie_Maart_April_Mei_Junie_Julie_Augustus_September_Oktober_November_Desember'.split('_'), - monthsShort : 'Jan_Feb_Mrt_Apr_Mei_Jun_Jul_Aug_Sep_Okt_Nov_Des'.split('_'), - weekdays : 'Sondag_Maandag_Dinsdag_Woensdag_Donderdag_Vrydag_Saterdag'.split('_'), - weekdaysShort : 'Son_Maa_Din_Woe_Don_Vry_Sat'.split('_'), - weekdaysMin : 'So_Ma_Di_Wo_Do_Vr_Sa'.split('_'), - meridiemParse: /vm|nm/i, - isPM : function (input) { - return /^nm$/i.test(input); - }, - meridiem : function (hours, minutes, isLower) { - if (hours < 12) { - return isLower ? 'vm' : 'VM'; - } else { - return isLower ? 'nm' : 'NM'; - } - }, - longDateFormat : { - LT : 'HH:mm', - LTS : 'HH:mm:ss', - L : 'DD/MM/YYYY', - LL : 'D MMMM YYYY', - LLL : 'D MMMM YYYY HH:mm', - LLLL : 'dddd, D MMMM YYYY HH:mm' - }, - calendar : { - sameDay : '[Vandag om] LT', - nextDay : '[Môre om] LT', - nextWeek : 'dddd [om] LT', - lastDay : '[Gister om] LT', - lastWeek : '[Laas] dddd [om] LT', - sameElse : 'L' - }, - relativeTime : { - future : 'oor %s', - past : '%s gelede', - s : '\'n paar sekondes', - m : '\'n minuut', - mm : '%d minute', - h : '\'n uur', - hh : '%d ure', - d : '\'n dag', - dd : '%d dae', - M : '\'n maand', - MM : '%d maande', - y : '\'n jaar', - yy : '%d jaar' - }, - dayOfMonthOrdinalParse: /\d{1,2}(ste|de)/, - ordinal : function (number) { - return number + ((number === 1 || number === 8 || number >= 20) ? 'ste' : 'de'); // Thanks to Joris Röling : https://github.com/jjupiter - }, - week : { - dow : 1, // Maandag is die eerste dag van die week. - doy : 4 // Die week wat die 4de Januarie bevat is die eerste week van die jaar. - } -}); diff --git a/admin/bower_components/moment/src/locale/ar-dz.js b/admin/bower_components/moment/src/locale/ar-dz.js deleted file mode 100644 index d14e0ff..0000000 --- a/admin/bower_components/moment/src/locale/ar-dz.js +++ /dev/null @@ -1,50 +0,0 @@ -//! moment.js locale configuration -//! locale : Arabic (Algeria) [ar-dz] -//! author : Noureddine LOUAHEDJ : https://github.com/noureddineme - -import moment from '../moment'; - -export default moment.defineLocale('ar-dz', { - months : 'جانفي_فيفري_مارس_أفريل_ماي_جوان_جويلية_أوت_سبتمبر_أكتوبر_نوفمبر_ديسمبر'.split('_'), - monthsShort : 'جانفي_فيفري_مارس_أفريل_ماي_جوان_جويلية_أوت_سبتمبر_أكتوبر_نوفمبر_ديسمبر'.split('_'), - weekdays : 'الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'), - weekdaysShort : 'احد_اثنين_ثلاثاء_اربعاء_خميس_جمعة_سبت'.split('_'), - weekdaysMin : 'أح_إث_ثلا_أر_خم_جم_سب'.split('_'), - weekdaysParseExact : true, - longDateFormat : { - LT : 'HH:mm', - LTS : 'HH:mm:ss', - L : 'DD/MM/YYYY', - LL : 'D MMMM YYYY', - LLL : 'D MMMM YYYY HH:mm', - LLLL : 'dddd D MMMM YYYY HH:mm' - }, - 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 : 0, // Sunday is the first day of the week. - doy : 4 // The week that contains Jan 1st is the first week of the year. - } -}); - diff --git a/admin/bower_components/moment/src/locale/ar-kw.js b/admin/bower_components/moment/src/locale/ar-kw.js deleted file mode 100644 index 5cdfd93..0000000 --- a/admin/bower_components/moment/src/locale/ar-kw.js +++ /dev/null @@ -1,49 +0,0 @@ -//! moment.js locale configuration -//! locale : Arabic (Kuwait) [ar-kw] -//! author : Nusret Parlak: https://github.com/nusretparlak - -import moment from '../moment'; - -export default moment.defineLocale('ar-kw', { - months : 'يناير_فبراير_مارس_أبريل_ماي_يونيو_يوليوز_غشت_شتنبر_أكتوبر_نونبر_دجنبر'.split('_'), - monthsShort : 'يناير_فبراير_مارس_أبريل_ماي_يونيو_يوليوز_غشت_شتنبر_أكتوبر_نونبر_دجنبر'.split('_'), - weekdays : 'الأحد_الإتنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'), - weekdaysShort : 'احد_اتنين_ثلاثاء_اربعاء_خميس_جمعة_سبت'.split('_'), - weekdaysMin : 'ح_ن_ث_ر_خ_ج_س'.split('_'), - weekdaysParseExact : true, - longDateFormat : { - LT : 'HH:mm', - LTS : 'HH:mm:ss', - L : 'DD/MM/YYYY', - LL : 'D MMMM YYYY', - LLL : 'D MMMM YYYY HH:mm', - LLLL : 'dddd D MMMM YYYY HH:mm' - }, - 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 : 0, // Sunday is the first day of the week. - doy : 12 // The week that contains Jan 1st is the first week of the year. - } -}); diff --git a/admin/bower_components/moment/src/locale/ar-ly.js b/admin/bower_components/moment/src/locale/ar-ly.js deleted file mode 100644 index 2dcba3f..0000000 --- a/admin/bower_components/moment/src/locale/ar-ly.js +++ /dev/null @@ -1,112 +0,0 @@ -//! moment.js locale configuration -//! locale : Arabic (Lybia) [ar-ly] -//! author : Ali Hmer: https://github.com/kikoanis - -import moment from '../moment'; - -var symbolMap = { - '1': '1', - '2': '2', - '3': '3', - '4': '4', - '5': '5', - '6': '6', - '7': '7', - '8': '8', - '9': '9', - '0': '0' -}, pluralForm = function (n) { - return n === 0 ? 0 : n === 1 ? 1 : n === 2 ? 2 : n % 100 >= 3 && n % 100 <= 10 ? 3 : n % 100 >= 11 ? 4 : 5; -}, plurals = { - s : ['أقل من ثانية', 'ثانية واحدة', ['ثانيتان', 'ثانيتين'], '%d ثوان', '%d ثانية', '%d ثانية'], - m : ['أقل من دقيقة', 'دقيقة واحدة', ['دقيقتان', 'دقيقتين'], '%d دقائق', '%d دقيقة', '%d دقيقة'], - h : ['أقل من ساعة', 'ساعة واحدة', ['ساعتان', 'ساعتين'], '%d ساعات', '%d ساعة', '%d ساعة'], - d : ['أقل من يوم', 'يوم واحد', ['يومان', 'يومين'], '%d أيام', '%d يومًا', '%d يوم'], - M : ['أقل من شهر', 'شهر واحد', ['شهران', 'شهرين'], '%d أشهر', '%d شهرا', '%d شهر'], - y : ['أقل من عام', 'عام واحد', ['عامان', 'عامين'], '%d أعوام', '%d عامًا', '%d عام'] -}, pluralize = function (u) { - return function (number, withoutSuffix, string, isFuture) { - var f = pluralForm(number), - str = plurals[u][pluralForm(number)]; - if (f === 2) { - str = str[withoutSuffix ? 0 : 1]; - } - return str.replace(/%d/i, number); - }; -}, months = [ - 'يناير', - 'فبراير', - 'مارس', - 'أبريل', - 'مايو', - 'يونيو', - 'يوليو', - 'أغسطس', - 'سبتمبر', - 'أكتوبر', - 'نوفمبر', - 'ديسمبر' -]; - -export default moment.defineLocale('ar-ly', { - months : months, - monthsShort : months, - weekdays : 'الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'), - weekdaysShort : 'أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت'.split('_'), - weekdaysMin : 'ح_ن_ث_ر_خ_ج_س'.split('_'), - weekdaysParseExact : true, - longDateFormat : { - LT : 'HH:mm', - LTS : 'HH:mm:ss', - L : 'D/\u200FM/\u200FYYYY', - LL : 'D MMMM YYYY', - LLL : 'D MMMM YYYY HH:mm', - LLLL : 'dddd D MMMM YYYY HH:mm' - }, - meridiemParse: /ص|م/, - isPM : function (input) { - return 'م' === input; - }, - meridiem : function (hour, minute, isLower) { - if (hour < 12) { - return 'ص'; - } else { - return 'م'; - } - }, - calendar : { - sameDay: '[اليوم عند الساعة] LT', - nextDay: '[غدًا عند الساعة] LT', - nextWeek: 'dddd [عند الساعة] LT', - lastDay: '[أمس عند الساعة] LT', - lastWeek: 'dddd [عند الساعة] LT', - sameElse: 'L' - }, - relativeTime : { - future : 'بعد %s', - past : 'منذ %s', - s : pluralize('s'), - m : pluralize('m'), - mm : pluralize('m'), - h : pluralize('h'), - hh : pluralize('h'), - d : pluralize('d'), - dd : pluralize('d'), - M : pluralize('M'), - MM : pluralize('M'), - y : pluralize('y'), - yy : pluralize('y') - }, - preparse: function (string) { - return string.replace(/\u200f/g, '').replace(/،/g, ','); - }, - postformat: function (string) { - return string.replace(/\d/g, function (match) { - return symbolMap[match]; - }).replace(/,/g, '،'); - }, - week : { - dow : 6, // Saturday is the first day of the week. - doy : 12 // The week that contains Jan 1st is the first week of the year. - } -}); diff --git a/admin/bower_components/moment/src/locale/ar-ma.js b/admin/bower_components/moment/src/locale/ar-ma.js deleted file mode 100644 index 03973d2..0000000 --- a/admin/bower_components/moment/src/locale/ar-ma.js +++ /dev/null @@ -1,51 +0,0 @@ -//! moment.js locale configuration -//! locale : Arabic (Morocco) [ar-ma] -//! author : ElFadili Yassine : https://github.com/ElFadiliY -//! author : Abdel Said : https://github.com/abdelsaid - -import moment from '../moment'; - -export default moment.defineLocale('ar-ma', { - months : 'يناير_فبراير_مارس_أبريل_ماي_يونيو_يوليوز_غشت_شتنبر_أكتوبر_نونبر_دجنبر'.split('_'), - monthsShort : 'يناير_فبراير_مارس_أبريل_ماي_يونيو_يوليوز_غشت_شتنبر_أكتوبر_نونبر_دجنبر'.split('_'), - weekdays : 'الأحد_الإتنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'), - weekdaysShort : 'احد_اتنين_ثلاثاء_اربعاء_خميس_جمعة_سبت'.split('_'), - weekdaysMin : 'ح_ن_ث_ر_خ_ج_س'.split('_'), - weekdaysParseExact : true, - longDateFormat : { - LT : 'HH:mm', - LTS : 'HH:mm:ss', - L : 'DD/MM/YYYY', - LL : 'D MMMM YYYY', - LLL : 'D MMMM YYYY HH:mm', - LLLL : 'dddd D MMMM YYYY HH:mm' - }, - 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, // Saturday is the first day of the week. - doy : 12 // The week that contains Jan 1st is the first week of the year. - } -}); - diff --git a/admin/bower_components/moment/src/locale/ar-sa.js b/admin/bower_components/moment/src/locale/ar-sa.js deleted file mode 100644 index 30a9968..0000000 --- a/admin/bower_components/moment/src/locale/ar-sa.js +++ /dev/null @@ -1,95 +0,0 @@ -//! moment.js locale configuration -//! locale : Arabic (Saudi Arabia) [ar-sa] -//! author : Suhail Alkowaileet : https://github.com/xsoh - -import moment from '../moment'; - -var symbolMap = { - '1': '١', - '2': '٢', - '3': '٣', - '4': '٤', - '5': '٥', - '6': '٦', - '7': '٧', - '8': '٨', - '9': '٩', - '0': '٠' -}, numberMap = { - '١': '1', - '٢': '2', - '٣': '3', - '٤': '4', - '٥': '5', - '٦': '6', - '٧': '7', - '٨': '8', - '٩': '9', - '٠': '0' -}; - -export default moment.defineLocale('ar-sa', { - months : 'يناير_فبراير_مارس_أبريل_مايو_يونيو_يوليو_أغسطس_سبتمبر_أكتوبر_نوفمبر_ديسمبر'.split('_'), - monthsShort : 'يناير_فبراير_مارس_أبريل_مايو_يونيو_يوليو_أغسطس_سبتمبر_أكتوبر_نوفمبر_ديسمبر'.split('_'), - weekdays : 'الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'), - weekdaysShort : 'أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت'.split('_'), - weekdaysMin : 'ح_ن_ث_ر_خ_ج_س'.split('_'), - weekdaysParseExact : true, - longDateFormat : { - LT : 'HH:mm', - LTS : 'HH:mm:ss', - L : 'DD/MM/YYYY', - LL : 'D MMMM YYYY', - LLL : 'D MMMM YYYY HH:mm', - LLLL : 'dddd D MMMM YYYY HH:mm' - }, - meridiemParse: /ص|م/, - isPM : function (input) { - return 'م' === input; - }, - meridiem : function (hour, minute, isLower) { - if (hour < 12) { - return 'ص'; - } else { - return 'م'; - } - }, - 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 (string) { - return string.replace(/[١٢٣٤٥٦٧٨٩٠]/g, function (match) { - return numberMap[match]; - }).replace(/،/g, ','); - }, - postformat: function (string) { - return string.replace(/\d/g, function (match) { - return symbolMap[match]; - }).replace(/,/g, '،'); - }, - week : { - dow : 0, // Sunday is the first day of the week. - doy : 6 // The week that contains Jan 1st is the first week of the year. - } -}); - diff --git a/admin/bower_components/moment/src/locale/ar-tn.js b/admin/bower_components/moment/src/locale/ar-tn.js deleted file mode 100644 index 8ab8945..0000000 --- a/admin/bower_components/moment/src/locale/ar-tn.js +++ /dev/null @@ -1,50 +0,0 @@ -//! moment.js locale configuration -//! locale : Arabic (Tunisia) [ar-tn] -//! author : Nader Toukabri : https://github.com/naderio - -import moment from '../moment'; - -export default moment.defineLocale('ar-tn', { - months: 'جانفي_فيفري_مارس_أفريل_ماي_جوان_جويلية_أوت_سبتمبر_أكتوبر_نوفمبر_ديسمبر'.split('_'), - monthsShort: 'جانفي_فيفري_مارس_أفريل_ماي_جوان_جويلية_أوت_سبتمبر_أكتوبر_نوفمبر_ديسمبر'.split('_'), - weekdays: 'الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'), - weekdaysShort: 'أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت'.split('_'), - weekdaysMin: 'ح_ن_ث_ر_خ_ج_س'.split('_'), - weekdaysParseExact : true, - longDateFormat: { - LT: 'HH:mm', - LTS: 'HH:mm:ss', - L: 'DD/MM/YYYY', - LL: 'D MMMM YYYY', - LLL: 'D MMMM YYYY HH:mm', - LLLL: 'dddd D MMMM YYYY HH:mm' - }, - 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, // Monday is the first day of the week. - doy: 4 // The week that contains Jan 4th is the first week of the year. - } -}); - diff --git a/admin/bower_components/moment/src/locale/ar.js b/admin/bower_components/moment/src/locale/ar.js deleted file mode 100644 index 619843a..0000000 --- a/admin/bower_components/moment/src/locale/ar.js +++ /dev/null @@ -1,128 +0,0 @@ -//! moment.js locale configuration -//! locale : Arabic [ar] -//! author : Abdel Said: https://github.com/abdelsaid -//! author : Ahmed Elkhatib -//! author : forabi https://github.com/forabi - -import moment from '../moment'; - -var symbolMap = { - '1': '١', - '2': '٢', - '3': '٣', - '4': '٤', - '5': '٥', - '6': '٦', - '7': '٧', - '8': '٨', - '9': '٩', - '0': '٠' -}, numberMap = { - '١': '1', - '٢': '2', - '٣': '3', - '٤': '4', - '٥': '5', - '٦': '6', - '٧': '7', - '٨': '8', - '٩': '9', - '٠': '0' -}, pluralForm = function (n) { - return n === 0 ? 0 : n === 1 ? 1 : n === 2 ? 2 : n % 100 >= 3 && n % 100 <= 10 ? 3 : n % 100 >= 11 ? 4 : 5; -}, plurals = { - s : ['أقل من ثانية', 'ثانية واحدة', ['ثانيتان', 'ثانيتين'], '%d ثوان', '%d ثانية', '%d ثانية'], - m : ['أقل من دقيقة', 'دقيقة واحدة', ['دقيقتان', 'دقيقتين'], '%d دقائق', '%d دقيقة', '%d دقيقة'], - h : ['أقل من ساعة', 'ساعة واحدة', ['ساعتان', 'ساعتين'], '%d ساعات', '%d ساعة', '%d ساعة'], - d : ['أقل من يوم', 'يوم واحد', ['يومان', 'يومين'], '%d أيام', '%d يومًا', '%d يوم'], - M : ['أقل من شهر', 'شهر واحد', ['شهران', 'شهرين'], '%d أشهر', '%d شهرا', '%d شهر'], - y : ['أقل من عام', 'عام واحد', ['عامان', 'عامين'], '%d أعوام', '%d عامًا', '%d عام'] -}, pluralize = function (u) { - return function (number, withoutSuffix, string, isFuture) { - var f = pluralForm(number), - str = plurals[u][pluralForm(number)]; - if (f === 2) { - str = str[withoutSuffix ? 0 : 1]; - } - return str.replace(/%d/i, number); - }; -}, months = [ - 'كانون الثاني يناير', - 'شباط فبراير', - 'آذار مارس', - 'نيسان أبريل', - 'أيار مايو', - 'حزيران يونيو', - 'تموز يوليو', - 'آب أغسطس', - 'أيلول سبتمبر', - 'تشرين الأول أكتوبر', - 'تشرين الثاني نوفمبر', - 'كانون الأول ديسمبر' -]; - -export default moment.defineLocale('ar', { - months : months, - monthsShort : months, - weekdays : 'الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'), - weekdaysShort : 'أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت'.split('_'), - weekdaysMin : 'ح_ن_ث_ر_خ_ج_س'.split('_'), - weekdaysParseExact : true, - longDateFormat : { - LT : 'HH:mm', - LTS : 'HH:mm:ss', - L : 'D/\u200FM/\u200FYYYY', - LL : 'D MMMM YYYY', - LLL : 'D MMMM YYYY HH:mm', - LLLL : 'dddd D MMMM YYYY HH:mm' - }, - meridiemParse: /ص|م/, - isPM : function (input) { - return 'م' === input; - }, - meridiem : function (hour, minute, isLower) { - if (hour < 12) { - return 'ص'; - } else { - return 'م'; - } - }, - calendar : { - sameDay: '[اليوم عند الساعة] LT', - nextDay: '[غدًا عند الساعة] LT', - nextWeek: 'dddd [عند الساعة] LT', - lastDay: '[أمس عند الساعة] LT', - lastWeek: 'dddd [عند الساعة] LT', - sameElse: 'L' - }, - relativeTime : { - future : 'بعد %s', - past : 'منذ %s', - s : pluralize('s'), - m : pluralize('m'), - mm : pluralize('m'), - h : pluralize('h'), - hh : pluralize('h'), - d : pluralize('d'), - dd : pluralize('d'), - M : pluralize('M'), - MM : pluralize('M'), - y : pluralize('y'), - yy : pluralize('y') - }, - preparse: function (string) { - return string.replace(/\u200f/g, '').replace(/[١٢٣٤٥٦٧٨٩٠]/g, function (match) { - return numberMap[match]; - }).replace(/،/g, ','); - }, - postformat: function (string) { - return string.replace(/\d/g, function (match) { - return symbolMap[match]; - }).replace(/,/g, '،'); - }, - week : { - dow : 6, // Saturday is the first day of the week. - doy : 12 // The week that contains Jan 1st is the first week of the year. - } -}); - diff --git a/admin/bower_components/moment/src/locale/az.js b/admin/bower_components/moment/src/locale/az.js deleted file mode 100644 index 74a08bd..0000000 --- a/admin/bower_components/moment/src/locale/az.js +++ /dev/null @@ -1,96 +0,0 @@ -//! moment.js locale configuration -//! locale : Azerbaijani [az] -//! author : topchiyev : https://github.com/topchiyev - -import moment from '../moment'; - -var suffixes = { - 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ı' -}; - -export default moment.defineLocale('az', { - months : 'yanvar_fevral_mart_aprel_may_iyun_iyul_avqust_sentyabr_oktyabr_noyabr_dekabr'.split('_'), - monthsShort : 'yan_fev_mar_apr_may_iyn_iyl_avq_sen_okt_noy_dek'.split('_'), - weekdays : 'Bazar_Bazar ertəsi_Çərşənbə axşamı_Çərşənbə_Cümə axşamı_Cümə_Şənbə'.split('_'), - weekdaysShort : 'Baz_BzE_ÇAx_Çər_CAx_Cüm_Şən'.split('_'), - weekdaysMin : 'Bz_BE_ÇA_Çə_CA_Cü_Şə'.split('_'), - weekdaysParseExact : true, - longDateFormat : { - LT : 'HH:mm', - LTS : 'HH:mm:ss', - L : 'DD.MM.YYYY', - LL : 'D MMMM YYYY', - LLL : 'D MMMM YYYY HH:mm', - LLLL : 'dddd, D MMMM YYYY HH:mm' - }, - calendar : { - sameDay : '[bugün saat] LT', - nextDay : '[sabah saat] LT', - nextWeek : '[gələn həftə] dddd [saat] LT', - lastDay : '[dünən] LT', - lastWeek : '[keçən həftə] dddd [saat] LT', - sameElse : 'L' - }, - relativeTime : { - future : '%s sonra', - past : '%s əvvəl', - s : 'birneçə saniyyə', - m : 'bir dəqiqə', - mm : '%d dəqiqə', - h : 'bir saat', - hh : '%d saat', - d : 'bir gün', - dd : '%d gün', - M : 'bir ay', - MM : '%d ay', - y : 'bir il', - yy : '%d il' - }, - meridiemParse: /gecə|səhər|gündüz|axşam/, - isPM : function (input) { - return /^(gündüz|axşam)$/.test(input); - }, - meridiem : function (hour, minute, isLower) { - if (hour < 4) { - return 'gecə'; - } else if (hour < 12) { - return 'səhər'; - } else if (hour < 17) { - return 'gündüz'; - } else { - return 'axşam'; - } - }, - dayOfMonthOrdinalParse: /\d{1,2}-(ıncı|inci|nci|üncü|ncı|uncu)/, - ordinal : function (number) { - if (number === 0) { // special case for zero - return number + '-ıncı'; - } - var a = number % 10, - b = number % 100 - a, - c = number >= 100 ? 100 : null; - return number + (suffixes[a] || suffixes[b] || suffixes[c]); - }, - week : { - dow : 1, // Monday is the first day of the week. - doy : 7 // The week that contains Jan 1st is the first week of the year. - } -}); - diff --git a/admin/bower_components/moment/src/locale/be.js b/admin/bower_components/moment/src/locale/be.js deleted file mode 100644 index 233972c..0000000 --- a/admin/bower_components/moment/src/locale/be.js +++ /dev/null @@ -1,125 +0,0 @@ -//! moment.js locale configuration -//! locale : Belarusian [be] -//! author : Dmitry Demidov : https://github.com/demidov91 -//! author: Praleska: http://praleska.pro/ -//! Author : Menelion Elensúle : https://github.com/Oire - -import moment from '../moment'; - -function plural(word, num) { - var forms = word.split('_'); - return num % 10 === 1 && num % 100 !== 11 ? forms[0] : (num % 10 >= 2 && num % 10 <= 4 && (num % 100 < 10 || num % 100 >= 20) ? forms[1] : forms[2]); -} -function relativeTimeWithPlural(number, withoutSuffix, key) { - var format = { - 'mm': withoutSuffix ? 'хвіліна_хвіліны_хвілін' : 'хвіліну_хвіліны_хвілін', - 'hh': withoutSuffix ? 'гадзіна_гадзіны_гадзін' : 'гадзіну_гадзіны_гадзін', - 'dd': 'дзень_дні_дзён', - 'MM': 'месяц_месяцы_месяцаў', - 'yy': 'год_гады_гадоў' - }; - if (key === 'm') { - return withoutSuffix ? 'хвіліна' : 'хвіліну'; - } - else if (key === 'h') { - return withoutSuffix ? 'гадзіна' : 'гадзіну'; - } - else { - return number + ' ' + plural(format[key], +number); - } -} - -export default moment.defineLocale('be', { - months : { - format: 'студзеня_лютага_сакавіка_красавіка_траўня_чэрвеня_ліпеня_жніўня_верасня_кастрычніка_лістапада_снежня'.split('_'), - standalone: 'студзень_люты_сакавік_красавік_травень_чэрвень_ліпень_жнівень_верасень_кастрычнік_лістапад_снежань'.split('_') - }, - monthsShort : 'студ_лют_сак_крас_трав_чэрв_ліп_жнів_вер_каст_ліст_снеж'.split('_'), - weekdays : { - format: 'нядзелю_панядзелак_аўторак_сераду_чацвер_пятніцу_суботу'.split('_'), - standalone: 'нядзеля_панядзелак_аўторак_серада_чацвер_пятніца_субота'.split('_'), - isFormat: /\[ ?[Вв] ?(?:мінулую|наступную)? ?\] ?dddd/ - }, - weekdaysShort : 'нд_пн_ат_ср_чц_пт_сб'.split('_'), - weekdaysMin : 'нд_пн_ат_ср_чц_пт_сб'.split('_'), - longDateFormat : { - LT : 'HH:mm', - LTS : 'HH:mm:ss', - L : 'DD.MM.YYYY', - LL : 'D MMMM YYYY г.', - LLL : 'D MMMM YYYY г., HH:mm', - LLLL : 'dddd, D MMMM YYYY г., HH:mm' - }, - calendar : { - sameDay: '[Сёння ў] LT', - nextDay: '[Заўтра ў] LT', - lastDay: '[Учора ў] LT', - nextWeek: function () { - return '[У] dddd [ў] LT'; - }, - lastWeek: function () { - switch (this.day()) { - case 0: - case 3: - case 5: - case 6: - return '[У мінулую] dddd [ў] LT'; - case 1: - case 2: - case 4: - return '[У мінулы] dddd [ў] LT'; - } - }, - sameElse: 'L' - }, - relativeTime : { - future : 'праз %s', - past : '%s таму', - s : 'некалькі секунд', - m : relativeTimeWithPlural, - mm : relativeTimeWithPlural, - h : relativeTimeWithPlural, - hh : relativeTimeWithPlural, - d : 'дзень', - dd : relativeTimeWithPlural, - M : 'месяц', - MM : relativeTimeWithPlural, - y : 'год', - yy : relativeTimeWithPlural - }, - meridiemParse: /ночы|раніцы|дня|вечара/, - isPM : function (input) { - return /^(дня|вечара)$/.test(input); - }, - meridiem : function (hour, minute, isLower) { - if (hour < 4) { - return 'ночы'; - } else if (hour < 12) { - return 'раніцы'; - } else if (hour < 17) { - return 'дня'; - } else { - return 'вечара'; - } - }, - dayOfMonthOrdinalParse: /\d{1,2}-(і|ы|га)/, - ordinal: function (number, period) { - switch (period) { - case 'M': - case 'd': - case 'DDD': - case 'w': - case 'W': - return (number % 10 === 2 || number % 10 === 3) && (number % 100 !== 12 && number % 100 !== 13) ? number + '-і' : number + '-ы'; - case 'D': - return number + '-га'; - default: - return number; - } - }, - week : { - dow : 1, // Monday is the first day of the week. - doy : 7 // The week that contains Jan 1st is the first week of the year. - } -}); - diff --git a/admin/bower_components/moment/src/locale/bg.js b/admin/bower_components/moment/src/locale/bg.js deleted file mode 100644 index a09df52..0000000 --- a/admin/bower_components/moment/src/locale/bg.js +++ /dev/null @@ -1,81 +0,0 @@ -//! moment.js locale configuration -//! locale : Bulgarian [bg] -//! author : Krasen Borisov : https://github.com/kraz - -import moment from '../moment'; - -export default moment.defineLocale('bg', { - months : 'януари_февруари_март_април_май_юни_юли_август_септември_октомври_ноември_декември'.split('_'), - monthsShort : 'янр_фев_мар_апр_май_юни_юли_авг_сеп_окт_ное_дек'.split('_'), - weekdays : 'неделя_понеделник_вторник_сряда_четвъртък_петък_събота'.split('_'), - weekdaysShort : 'нед_пон_вто_сря_чет_пет_съб'.split('_'), - weekdaysMin : 'нд_пн_вт_ср_чт_пт_сб'.split('_'), - longDateFormat : { - LT : 'H:mm', - LTS : 'H:mm:ss', - L : 'D.MM.YYYY', - LL : 'D MMMM YYYY', - LLL : 'D MMMM YYYY H:mm', - LLLL : 'dddd, D MMMM YYYY H:mm' - }, - 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 години' - }, - dayOfMonthOrdinalParse: /\d{1,2}-(ев|ен|ти|ви|ри|ми)/, - ordinal : function (number) { - var lastDigit = number % 10, - last2Digits = number % 100; - if (number === 0) { - return number + '-ев'; - } else if (last2Digits === 0) { - return number + '-ен'; - } else if (last2Digits > 10 && last2Digits < 20) { - return number + '-ти'; - } else if (lastDigit === 1) { - return number + '-ви'; - } else if (lastDigit === 2) { - return number + '-ри'; - } else if (lastDigit === 7 || lastDigit === 8) { - return number + '-ми'; - } else { - return number + '-ти'; - } - }, - week : { - dow : 1, // Monday is the first day of the week. - doy : 7 // The week that contains Jan 1st is the first week of the year. - } -}); - diff --git a/admin/bower_components/moment/src/locale/bn.js b/admin/bower_components/moment/src/locale/bn.js deleted file mode 100644 index 359a376..0000000 --- a/admin/bower_components/moment/src/locale/bn.js +++ /dev/null @@ -1,109 +0,0 @@ -//! moment.js locale configuration -//! locale : Bengali [bn] -//! author : Kaushik Gandhi : https://github.com/kaushikgandhi - -import moment from '../moment'; - -var symbolMap = { - '1': '১', - '2': '২', - '3': '৩', - '4': '৪', - '5': '৫', - '6': '৬', - '7': '৭', - '8': '৮', - '9': '৯', - '0': '০' -}, -numberMap = { - '১': '1', - '২': '2', - '৩': '3', - '৪': '4', - '৫': '5', - '৬': '6', - '৭': '7', - '৮': '8', - '৯': '9', - '০': '0' -}; - -export default moment.defineLocale('bn', { - months : 'জানুয়ারী_ফেব্রুয়ারি_মার্চ_এপ্রিল_মে_জুন_জুলাই_আগস্ট_সেপ্টেম্বর_অক্টোবর_নভেম্বর_ডিসেম্বর'.split('_'), - monthsShort : 'জানু_ফেব_মার্চ_এপ্র_মে_জুন_জুল_আগ_সেপ্ট_অক্টো_নভে_ডিসে'.split('_'), - weekdays : 'রবিবার_সোমবার_মঙ্গলবার_বুধবার_বৃহস্পতিবার_শুক্রবার_শনিবার'.split('_'), - weekdaysShort : 'রবি_সোম_মঙ্গল_বুধ_বৃহস্পতি_শুক্র_শনি'.split('_'), - weekdaysMin : 'রবি_সোম_মঙ্গ_বুধ_বৃহঃ_শুক্র_শনি'.split('_'), - longDateFormat : { - LT : 'A h:mm সময়', - LTS : 'A h:mm:ss সময়', - L : 'DD/MM/YYYY', - LL : 'D MMMM YYYY', - LLL : 'D MMMM YYYY, A h:mm সময়', - LLLL : 'dddd, D MMMM YYYY, A h:mm সময়' - }, - 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 (string) { - return string.replace(/[১২৩৪৫৬৭৮৯০]/g, function (match) { - return numberMap[match]; - }); - }, - postformat: function (string) { - return string.replace(/\d/g, function (match) { - return symbolMap[match]; - }); - }, - meridiemParse: /রাত|সকাল|দুপুর|বিকাল|রাত/, - meridiemHour : function (hour, meridiem) { - if (hour === 12) { - hour = 0; - } - if ((meridiem === 'রাত' && hour >= 4) || - (meridiem === 'দুপুর' && hour < 5) || - meridiem === 'বিকাল') { - return hour + 12; - } else { - return hour; - } - }, - meridiem : function (hour, minute, isLower) { - if (hour < 4) { - return 'রাত'; - } else if (hour < 10) { - return 'সকাল'; - } else if (hour < 17) { - return 'দুপুর'; - } else if (hour < 20) { - return 'বিকাল'; - } else { - return 'রাত'; - } - }, - week : { - dow : 0, // Sunday is the first day of the week. - doy : 6 // The week that contains Jan 1st is the first week of the year. - } -}); diff --git a/admin/bower_components/moment/src/locale/bo.js b/admin/bower_components/moment/src/locale/bo.js deleted file mode 100644 index 5d15d84..0000000 --- a/admin/bower_components/moment/src/locale/bo.js +++ /dev/null @@ -1,110 +0,0 @@ -//! moment.js locale configuration -//! locale : Tibetan [bo] -//! author : Thupten N. Chakrishar : https://github.com/vajradog - -import moment from '../moment'; - -var symbolMap = { - '1': '༡', - '2': '༢', - '3': '༣', - '4': '༤', - '5': '༥', - '6': '༦', - '7': '༧', - '8': '༨', - '9': '༩', - '0': '༠' -}, -numberMap = { - '༡': '1', - '༢': '2', - '༣': '3', - '༤': '4', - '༥': '5', - '༦': '6', - '༧': '7', - '༨': '8', - '༩': '9', - '༠': '0' -}; - -export default moment.defineLocale('bo', { - months : 'ཟླ་བ་དང་པོ_ཟླ་བ་གཉིས་པ_ཟླ་བ་གསུམ་པ_ཟླ་བ་བཞི་པ_ཟླ་བ་ལྔ་པ_ཟླ་བ་དྲུག་པ_ཟླ་བ་བདུན་པ_ཟླ་བ་བརྒྱད་པ_ཟླ་བ་དགུ་པ_ཟླ་བ་བཅུ་པ_ཟླ་བ་བཅུ་གཅིག་པ_ཟླ་བ་བཅུ་གཉིས་པ'.split('_'), - monthsShort : 'ཟླ་བ་དང་པོ_ཟླ་བ་གཉིས་པ_ཟླ་བ་གསུམ་པ_ཟླ་བ་བཞི་པ_ཟླ་བ་ལྔ་པ_ཟླ་བ་དྲུག་པ_ཟླ་བ་བདུན་པ_ཟླ་བ་བརྒྱད་པ_ཟླ་བ་དགུ་པ_ཟླ་བ་བཅུ་པ_ཟླ་བ་བཅུ་གཅིག་པ_ཟླ་བ་བཅུ་གཉིས་པ'.split('_'), - weekdays : 'གཟའ་ཉི་མ་_གཟའ་ཟླ་བ་_གཟའ་མིག་དམར་_གཟའ་ལྷག་པ་_གཟའ་ཕུར་བུ_གཟའ་པ་སངས་_གཟའ་སྤེན་པ་'.split('_'), - weekdaysShort : 'ཉི་མ་_ཟླ་བ་_མིག་དམར་_ལྷག་པ་_ཕུར་བུ_པ་སངས་_སྤེན་པ་'.split('_'), - weekdaysMin : 'ཉི་མ་_ཟླ་བ་_མིག་དམར་_ལྷག་པ་_ཕུར་བུ_པ་སངས་_སྤེན་པ་'.split('_'), - longDateFormat : { - LT : 'A h:mm', - LTS : 'A h:mm:ss', - L : 'DD/MM/YYYY', - LL : 'D MMMM YYYY', - LLL : 'D MMMM YYYY, A h:mm', - LLLL : 'dddd, D MMMM YYYY, A h:mm' - }, - calendar : { - sameDay : '[དི་རིང] LT', - nextDay : '[སང་ཉིན] LT', - nextWeek : '[བདུན་ཕྲག་རྗེས་མ], 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 (string) { - return string.replace(/[༡༢༣༤༥༦༧༨༩༠]/g, function (match) { - return numberMap[match]; - }); - }, - postformat: function (string) { - return string.replace(/\d/g, function (match) { - return symbolMap[match]; - }); - }, - meridiemParse: /མཚན་མོ|ཞོགས་ཀས|ཉིན་གུང|དགོང་དག|མཚན་མོ/, - meridiemHour : function (hour, meridiem) { - if (hour === 12) { - hour = 0; - } - if ((meridiem === 'མཚན་མོ' && hour >= 4) || - (meridiem === 'ཉིན་གུང' && hour < 5) || - meridiem === 'དགོང་དག') { - return hour + 12; - } else { - return hour; - } - }, - meridiem : function (hour, minute, isLower) { - if (hour < 4) { - return 'མཚན་མོ'; - } else if (hour < 10) { - return 'ཞོགས་ཀས'; - } else if (hour < 17) { - return 'ཉིན་གུང'; - } else if (hour < 20) { - return 'དགོང་དག'; - } else { - return 'མཚན་མོ'; - } - }, - week : { - dow : 0, // Sunday is the first day of the week. - doy : 6 // The week that contains Jan 1st is the first week of the year. - } -}); - diff --git a/admin/bower_components/moment/src/locale/br.js b/admin/bower_components/moment/src/locale/br.js deleted file mode 100644 index 925d130..0000000 --- a/admin/bower_components/moment/src/locale/br.js +++ /dev/null @@ -1,99 +0,0 @@ -//! moment.js locale configuration -//! locale : Breton [br] -//! author : Jean-Baptiste Le Duigou : https://github.com/jbleduigou - -import moment from '../moment'; - -function relativeTimeWithMutation(number, withoutSuffix, key) { - var format = { - 'mm': 'munutenn', - 'MM': 'miz', - 'dd': 'devezh' - }; - return number + ' ' + mutation(format[key], number); -} -function specialMutationForYears(number) { - switch (lastNumber(number)) { - case 1: - case 3: - case 4: - case 5: - case 9: - return number + ' bloaz'; - default: - return number + ' vloaz'; - } -} -function lastNumber(number) { - if (number > 9) { - return lastNumber(number % 10); - } - return number; -} -function mutation(text, number) { - if (number === 2) { - return softMutation(text); - } - return text; -} -function softMutation(text) { - var mutationTable = { - 'm': 'v', - 'b': 'v', - 'd': 'z' - }; - if (mutationTable[text.charAt(0)] === undefined) { - return text; - } - return mutationTable[text.charAt(0)] + text.substring(1); -} - -export default moment.defineLocale('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('_'), - weekdaysParseExact : true, - longDateFormat : { - LT : 'h[e]mm A', - LTS : 'h[e]mm:ss A', - L : 'DD/MM/YYYY', - LL : 'D [a viz] MMMM YYYY', - LLL : 'D [a viz] MMMM YYYY h[e]mm A', - LLLL : 'dddd, D [a viz] MMMM YYYY h[e]mm A' - }, - 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 : relativeTimeWithMutation, - h : 'un eur', - hh : '%d eur', - d : 'un devezh', - dd : relativeTimeWithMutation, - M : 'ur miz', - MM : relativeTimeWithMutation, - y : 'ur bloaz', - yy : specialMutationForYears - }, - dayOfMonthOrdinalParse: /\d{1,2}(añ|vet)/, - ordinal : function (number) { - var output = (number === 1) ? 'añ' : 'vet'; - return number + output; - }, - week : { - dow : 1, // Monday is the first day of the week. - doy : 4 // The week that contains Jan 4th is the first week of the year. - } -}); - diff --git a/admin/bower_components/moment/src/locale/bs.js b/admin/bower_components/moment/src/locale/bs.js deleted file mode 100644 index 9700821..0000000 --- a/admin/bower_components/moment/src/locale/bs.js +++ /dev/null @@ -1,133 +0,0 @@ -//! moment.js locale configuration -//! locale : Bosnian [bs] -//! author : Nedim Cholich : https://github.com/frontyard -//! based on (hr) translation by Bojan Marković - -import moment from '../moment'; - -function translate(number, withoutSuffix, key) { - var result = number + ' '; - switch (key) { - case 'm': - return withoutSuffix ? 'jedna minuta' : 'jedne minute'; - case 'mm': - if (number === 1) { - result += 'minuta'; - } else if (number === 2 || number === 3 || number === 4) { - result += 'minute'; - } else { - result += 'minuta'; - } - return result; - case 'h': - return withoutSuffix ? 'jedan sat' : 'jednog sata'; - case 'hh': - if (number === 1) { - result += 'sat'; - } else if (number === 2 || number === 3 || number === 4) { - result += 'sata'; - } else { - result += 'sati'; - } - return result; - case 'dd': - if (number === 1) { - result += 'dan'; - } else { - result += 'dana'; - } - return result; - case 'MM': - if (number === 1) { - result += 'mjesec'; - } else if (number === 2 || number === 3 || number === 4) { - result += 'mjeseca'; - } else { - result += 'mjeseci'; - } - return result; - case 'yy': - if (number === 1) { - result += 'godina'; - } else if (number === 2 || number === 3 || number === 4) { - result += 'godine'; - } else { - result += 'godina'; - } - return result; - } -} - -export default moment.defineLocale('bs', { - months : 'januar_februar_mart_april_maj_juni_juli_august_septembar_oktobar_novembar_decembar'.split('_'), - monthsShort : 'jan._feb._mar._apr._maj._jun._jul._aug._sep._okt._nov._dec.'.split('_'), - monthsParseExact: true, - 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('_'), - weekdaysParseExact : true, - longDateFormat : { - LT : 'H:mm', - LTS : 'H:mm:ss', - L : 'DD.MM.YYYY', - LL : 'D. MMMM YYYY', - LLL : 'D. MMMM YYYY H:mm', - LLLL : 'dddd, D. MMMM YYYY H:mm' - }, - 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 : translate, - mm : translate, - h : translate, - hh : translate, - d : 'dan', - dd : translate, - M : 'mjesec', - MM : translate, - y : 'godinu', - yy : translate - }, - dayOfMonthOrdinalParse: /\d{1,2}\./, - ordinal : '%d.', - week : { - dow : 1, // Monday is the first day of the week. - doy : 7 // The week that contains Jan 1st is the first week of the year. - } -}); diff --git a/admin/bower_components/moment/src/locale/ca.js b/admin/bower_components/moment/src/locale/ca.js deleted file mode 100644 index fe80697..0000000 --- a/admin/bower_components/moment/src/locale/ca.js +++ /dev/null @@ -1,79 +0,0 @@ -//! moment.js locale configuration -//! locale : Catalan [ca] -//! author : Juan G. Hurtado : https://github.com/juanghurtado - -import moment from '../moment'; - -export default moment.defineLocale('ca', { - months : { - standalone: 'gener_febrer_març_abril_maig_juny_juliol_agost_setembre_octubre_novembre_desembre'.split('_'), - format: 'de gener_de febrer_de març_d\'abril_de maig_de juny_de juliol_d\'agost_de setembre_d\'octubre_de novembre_de desembre'.split('_'), - isFormat: /D[oD]?(\s)+MMMM/ - }, - monthsShort : 'gen._febr._març_abr._maig_juny_jul._ag._set._oct._nov._des.'.split('_'), - monthsParseExact : true, - 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('_'), - weekdaysParseExact : true, - longDateFormat : { - LT : 'H:mm', - LTS : 'H:mm:ss', - L : 'DD/MM/YYYY', - LL : '[el] D MMMM [de] YYYY', - ll : 'D MMM YYYY', - LLL : '[el] D MMMM [de] YYYY [a les] H:mm', - lll : 'D MMM YYYY, H:mm', - LLLL : '[el] dddd D MMMM [de] YYYY [a les] H:mm', - llll : 'ddd D MMM YYYY, H:mm' - }, - calendar : { - sameDay : function () { - return '[avui a ' + ((this.hours() !== 1) ? 'les' : 'la') + '] LT'; - }, - nextDay : function () { - return '[demà a ' + ((this.hours() !== 1) ? 'les' : 'la') + '] LT'; - }, - nextWeek : function () { - return 'dddd [a ' + ((this.hours() !== 1) ? 'les' : 'la') + '] LT'; - }, - lastDay : function () { - return '[ahir a ' + ((this.hours() !== 1) ? 'les' : 'la') + '] LT'; - }, - lastWeek : function () { - return '[el] dddd [passat a ' + ((this.hours() !== 1) ? 'les' : 'la') + '] LT'; - }, - sameElse : 'L' - }, - relativeTime : { - future : 'd\'aquí %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' - }, - dayOfMonthOrdinalParse: /\d{1,2}(r|n|t|è|a)/, - ordinal : function (number, period) { - var output = (number === 1) ? 'r' : - (number === 2) ? 'n' : - (number === 3) ? 'r' : - (number === 4) ? 't' : 'è'; - if (period === 'w' || period === 'W') { - output = 'a'; - } - return number + output; - }, - week : { - dow : 1, // Monday is the first day of the week. - doy : 4 // The week that contains Jan 4th is the first week of the year. - } -}); - diff --git a/admin/bower_components/moment/src/locale/cs.js b/admin/bower_components/moment/src/locale/cs.js deleted file mode 100644 index 144bae0..0000000 --- a/admin/bower_components/moment/src/locale/cs.js +++ /dev/null @@ -1,163 +0,0 @@ -//! moment.js locale configuration -//! locale : Czech [cs] -//! author : petrbela : https://github.com/petrbela - -import moment from '../moment'; - -var months = 'leden_únor_březen_duben_květen_červen_červenec_srpen_září_říjen_listopad_prosinec'.split('_'), - monthsShort = 'led_úno_bře_dub_kvě_čvn_čvc_srp_zář_říj_lis_pro'.split('_'); -function plural(n) { - return (n > 1) && (n < 5) && (~~(n / 10) !== 1); -} -function translate(number, withoutSuffix, key, isFuture) { - var result = number + ' '; - switch (key) { - case 's': // a few seconds / in a few seconds / a few seconds ago - return (withoutSuffix || isFuture) ? 'pár sekund' : 'pár sekundami'; - case 'm': // a minute / in a minute / a minute ago - return withoutSuffix ? 'minuta' : (isFuture ? 'minutu' : 'minutou'); - case 'mm': // 9 minutes / in 9 minutes / 9 minutes ago - if (withoutSuffix || isFuture) { - return result + (plural(number) ? 'minuty' : 'minut'); - } else { - return result + 'minutami'; - } - break; - case 'h': // an hour / in an hour / an hour ago - return withoutSuffix ? 'hodina' : (isFuture ? 'hodinu' : 'hodinou'); - case 'hh': // 9 hours / in 9 hours / 9 hours ago - if (withoutSuffix || isFuture) { - return result + (plural(number) ? 'hodiny' : 'hodin'); - } else { - return result + 'hodinami'; - } - break; - case 'd': // a day / in a day / a day ago - return (withoutSuffix || isFuture) ? 'den' : 'dnem'; - case 'dd': // 9 days / in 9 days / 9 days ago - if (withoutSuffix || isFuture) { - return result + (plural(number) ? 'dny' : 'dní'); - } else { - return result + 'dny'; - } - break; - case 'M': // a month / in a month / a month ago - return (withoutSuffix || isFuture) ? 'měsíc' : 'měsícem'; - case 'MM': // 9 months / in 9 months / 9 months ago - if (withoutSuffix || isFuture) { - return result + (plural(number) ? 'měsíce' : 'měsíců'); - } else { - return result + 'měsíci'; - } - break; - case 'y': // a year / in a year / a year ago - return (withoutSuffix || isFuture) ? 'rok' : 'rokem'; - case 'yy': // 9 years / in 9 years / 9 years ago - if (withoutSuffix || isFuture) { - return result + (plural(number) ? 'roky' : 'let'); - } else { - return result + 'lety'; - } - break; - } -} - -export default moment.defineLocale('cs', { - months : months, - monthsShort : monthsShort, - monthsParse : (function (months, monthsShort) { - var i, _monthsParse = []; - for (i = 0; i < 12; i++) { - // use custom parser to solve problem with July (červenec) - _monthsParse[i] = new RegExp('^' + months[i] + '$|^' + monthsShort[i] + '$', 'i'); - } - return _monthsParse; - }(months, monthsShort)), - shortMonthsParse : (function (monthsShort) { - var i, _shortMonthsParse = []; - for (i = 0; i < 12; i++) { - _shortMonthsParse[i] = new RegExp('^' + monthsShort[i] + '$', 'i'); - } - return _shortMonthsParse; - }(monthsShort)), - longMonthsParse : (function (months) { - var i, _longMonthsParse = []; - for (i = 0; i < 12; i++) { - _longMonthsParse[i] = new RegExp('^' + months[i] + '$', 'i'); - } - return _longMonthsParse; - }(months)), - 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', - LTS : 'H:mm:ss', - L : 'DD.MM.YYYY', - LL : 'D. MMMM YYYY', - LLL : 'D. MMMM YYYY H:mm', - LLLL : 'dddd D. MMMM YYYY H:mm', - l : 'D. M. YYYY' - }, - 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 : translate, - m : translate, - mm : translate, - h : translate, - hh : translate, - d : translate, - dd : translate, - M : translate, - MM : translate, - y : translate, - yy : translate - }, - dayOfMonthOrdinalParse : /\d{1,2}\./, - ordinal : '%d.', - week : { - dow : 1, // Monday is the first day of the week. - doy : 4 // The week that contains Jan 4th is the first week of the year. - } -}); - diff --git a/admin/bower_components/moment/src/locale/cv.js b/admin/bower_components/moment/src/locale/cv.js deleted file mode 100644 index 354ff66..0000000 --- a/admin/bower_components/moment/src/locale/cv.js +++ /dev/null @@ -1,53 +0,0 @@ -//! moment.js locale configuration -//! locale : Chuvash [cv] -//! author : Anatoly Mironov : https://github.com/mirontoli - -import moment from '../moment'; - -export default moment.defineLocale('cv', { - months : 'кӑрлач_нарӑс_пуш_ака_май_ҫӗртме_утӑ_ҫурла_авӑн_юпа_чӳк_раштав'.split('_'), - monthsShort : 'кӑр_нар_пуш_ака_май_ҫӗр_утӑ_ҫур_авн_юпа_чӳк_раш'.split('_'), - weekdays : 'вырсарникун_тунтикун_ытларикун_юнкун_кӗҫнерникун_эрнекун_шӑматкун'.split('_'), - weekdaysShort : 'выр_тун_ытл_юн_кӗҫ_эрн_шӑм'.split('_'), - weekdaysMin : 'вр_тн_ыт_юн_кҫ_эр_шм'.split('_'), - longDateFormat : { - LT : 'HH:mm', - LTS : 'HH:mm:ss', - L : 'DD-MM-YYYY', - LL : 'YYYY [ҫулхи] MMMM [уйӑхӗн] D[-мӗшӗ]', - LLL : 'YYYY [ҫулхи] MMMM [уйӑхӗн] D[-мӗшӗ], HH:mm', - LLLL : 'dddd, YYYY [ҫулхи] MMMM [уйӑхӗн] D[-мӗшӗ], HH:mm' - }, - calendar : { - sameDay: '[Паян] LT [сехетре]', - nextDay: '[Ыран] LT [сехетре]', - lastDay: '[Ӗнер] LT [сехетре]', - nextWeek: '[Ҫитес] dddd LT [сехетре]', - lastWeek: '[Иртнӗ] dddd LT [сехетре]', - sameElse: 'L' - }, - relativeTime : { - future : function (output) { - var affix = /сехет$/i.exec(output) ? 'рен' : /ҫул$/i.exec(output) ? 'тан' : 'ран'; - return output + affix; - }, - past : '%s каялла', - s : 'пӗр-ик ҫеккунт', - m : 'пӗр минут', - mm : '%d минут', - h : 'пӗр сехет', - hh : '%d сехет', - d : 'пӗр кун', - dd : '%d кун', - M : 'пӗр уйӑх', - MM : '%d уйӑх', - y : 'пӗр ҫул', - yy : '%d ҫул' - }, - dayOfMonthOrdinalParse: /\d{1,2}-мӗш/, - ordinal : '%d-мӗш', - week : { - dow : 1, // Monday is the first day of the week. - doy : 7 // The week that contains Jan 1st is the first week of the year. - } -}); diff --git a/admin/bower_components/moment/src/locale/cy.js b/admin/bower_components/moment/src/locale/cy.js deleted file mode 100644 index 615bac3..0000000 --- a/admin/bower_components/moment/src/locale/cy.js +++ /dev/null @@ -1,72 +0,0 @@ -//! moment.js locale configuration -//! locale : Welsh [cy] -//! author : Robert Allen : https://github.com/robgallen -//! author : https://github.com/ryangreaves - -import moment from '../moment'; - -export default moment.defineLocale('cy', { - months: 'Ionawr_Chwefror_Mawrth_Ebrill_Mai_Mehefin_Gorffennaf_Awst_Medi_Hydref_Tachwedd_Rhagfyr'.split('_'), - monthsShort: 'Ion_Chwe_Maw_Ebr_Mai_Meh_Gor_Aws_Med_Hyd_Tach_Rhag'.split('_'), - weekdays: 'Dydd Sul_Dydd Llun_Dydd Mawrth_Dydd Mercher_Dydd Iau_Dydd Gwener_Dydd Sadwrn'.split('_'), - weekdaysShort: 'Sul_Llun_Maw_Mer_Iau_Gwe_Sad'.split('_'), - weekdaysMin: 'Su_Ll_Ma_Me_Ia_Gw_Sa'.split('_'), - weekdaysParseExact : true, - // time formats are the same as en-gb - longDateFormat: { - LT: 'HH:mm', - LTS : 'HH:mm:ss', - L: 'DD/MM/YYYY', - LL: 'D MMMM YYYY', - LLL: 'D MMMM YYYY HH:mm', - LLLL: 'dddd, D MMMM YYYY HH:mm' - }, - calendar: { - sameDay: '[Heddiw am] LT', - nextDay: '[Yfory am] LT', - nextWeek: 'dddd [am] LT', - lastDay: '[Ddoe am] LT', - lastWeek: 'dddd [diwethaf am] LT', - sameElse: 'L' - }, - relativeTime: { - future: 'mewn %s', - past: '%s yn ôl', - s: 'ychydig eiliadau', - m: 'munud', - mm: '%d munud', - h: 'awr', - hh: '%d awr', - d: 'diwrnod', - dd: '%d diwrnod', - M: 'mis', - MM: '%d mis', - y: 'blwyddyn', - yy: '%d flynedd' - }, - dayOfMonthOrdinalParse: /\d{1,2}(fed|ain|af|il|ydd|ed|eg)/, - // traditional ordinal numbers above 31 are not commonly used in colloquial Welsh - ordinal: function (number) { - var b = number, - output = '', - lookup = [ - '', 'af', 'il', 'ydd', 'ydd', 'ed', 'ed', 'ed', 'fed', 'fed', 'fed', // 1af to 10fed - 'eg', 'fed', 'eg', 'eg', 'fed', 'eg', 'eg', 'fed', 'eg', 'fed' // 11eg to 20fed - ]; - if (b > 20) { - if (b === 40 || b === 50 || b === 60 || b === 80 || b === 100) { - output = 'fed'; // not 30ain, 70ain or 90ain - } else { - output = 'ain'; - } - } else if (b > 0) { - output = lookup[b]; - } - return number + output; - }, - week : { - dow : 1, // Monday is the first day of the week. - doy : 4 // The week that contains Jan 4th is the first week of the year. - } -}); - diff --git a/admin/bower_components/moment/src/locale/da.js b/admin/bower_components/moment/src/locale/da.js deleted file mode 100644 index 7e601e2..0000000 --- a/admin/bower_components/moment/src/locale/da.js +++ /dev/null @@ -1,50 +0,0 @@ -//! moment.js locale configuration -//! locale : Danish [da] -//! author : Ulrik Nielsen : https://github.com/mrbase - -import moment from '../moment'; - -export default moment.defineLocale('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', - LTS : 'HH:mm:ss', - L : 'DD/MM/YYYY', - LL : 'D. MMMM YYYY', - LLL : 'D. MMMM YYYY HH:mm', - LLLL : 'dddd [d.] D. MMMM YYYY [kl.] HH:mm' - }, - calendar : { - sameDay : '[i dag kl.] LT', - nextDay : '[i morgen kl.] LT', - nextWeek : 'på dddd [kl.] LT', - lastDay : '[i går kl.] LT', - lastWeek : '[i] dddd[s 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' - }, - dayOfMonthOrdinalParse: /\d{1,2}\./, - ordinal : '%d.', - week : { - dow : 1, // Monday is the first day of the week. - doy : 4 // The week that contains Jan 4th is the first week of the year. - } -}); diff --git a/admin/bower_components/moment/src/locale/de-at.js b/admin/bower_components/moment/src/locale/de-at.js deleted file mode 100644 index e002011..0000000 --- a/admin/bower_components/moment/src/locale/de-at.js +++ /dev/null @@ -1,69 +0,0 @@ -//! moment.js locale configuration -//! locale : German (Austria) [de-at] -//! author : lluchs : https://github.com/lluchs -//! author: Menelion Elensúle: https://github.com/Oire -//! author : Martin Groller : https://github.com/MadMG -//! author : Mikolaj Dadela : https://github.com/mik01aj - -import moment from '../moment'; - -function processRelativeTime(number, withoutSuffix, key, isFuture) { - var format = { - 'm': ['eine Minute', 'einer Minute'], - 'h': ['eine Stunde', 'einer Stunde'], - 'd': ['ein Tag', 'einem Tag'], - 'dd': [number + ' Tage', number + ' Tagen'], - 'M': ['ein Monat', 'einem Monat'], - 'MM': [number + ' Monate', number + ' Monaten'], - 'y': ['ein Jahr', 'einem Jahr'], - 'yy': [number + ' Jahre', number + ' Jahren'] - }; - return withoutSuffix ? format[key][0] : format[key][1]; -} - -export default moment.defineLocale('de-at', { - months : 'Jänner_Februar_März_April_Mai_Juni_Juli_August_September_Oktober_November_Dezember'.split('_'), - monthsShort : 'Jän._Febr._Mrz._Apr._Mai_Jun._Jul._Aug._Sept._Okt._Nov._Dez.'.split('_'), - monthsParseExact : true, - 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('_'), - weekdaysParseExact : true, - longDateFormat : { - LT: 'HH:mm', - LTS: 'HH:mm:ss', - L : 'DD.MM.YYYY', - LL : 'D. MMMM YYYY', - LLL : 'D. MMMM YYYY HH:mm', - LLLL : 'dddd, D. MMMM YYYY HH:mm' - }, - calendar : { - sameDay: '[heute um] LT [Uhr]', - sameElse: 'L', - nextDay: '[morgen um] LT [Uhr]', - nextWeek: 'dddd [um] LT [Uhr]', - lastDay: '[gestern um] LT [Uhr]', - lastWeek: '[letzten] dddd [um] LT [Uhr]' - }, - relativeTime : { - future : 'in %s', - past : 'vor %s', - s : 'ein paar Sekunden', - m : processRelativeTime, - mm : '%d Minuten', - h : processRelativeTime, - hh : '%d Stunden', - d : processRelativeTime, - dd : processRelativeTime, - M : processRelativeTime, - MM : processRelativeTime, - y : processRelativeTime, - yy : processRelativeTime - }, - dayOfMonthOrdinalParse: /\d{1,2}\./, - ordinal : '%d.', - week : { - dow : 1, // Monday is the first day of the week. - doy : 4 // The week that contains Jan 4th is the first week of the year. - } -}); diff --git a/admin/bower_components/moment/src/locale/de-ch.js b/admin/bower_components/moment/src/locale/de-ch.js deleted file mode 100644 index cdd28ec..0000000 --- a/admin/bower_components/moment/src/locale/de-ch.js +++ /dev/null @@ -1,68 +0,0 @@ -//! moment.js locale configuration -//! locale : German (Switzerland) [de-ch] -//! author : sschueller : https://github.com/sschueller - -// based on: https://www.bk.admin.ch/dokumentation/sprachen/04915/05016/index.html?lang=de# - -import moment from '../moment'; - -function processRelativeTime(number, withoutSuffix, key, isFuture) { - var format = { - 'm': ['eine Minute', 'einer Minute'], - 'h': ['eine Stunde', 'einer Stunde'], - 'd': ['ein Tag', 'einem Tag'], - 'dd': [number + ' Tage', number + ' Tagen'], - 'M': ['ein Monat', 'einem Monat'], - 'MM': [number + ' Monate', number + ' Monaten'], - 'y': ['ein Jahr', 'einem Jahr'], - 'yy': [number + ' Jahre', number + ' Jahren'] - }; - return withoutSuffix ? format[key][0] : format[key][1]; -} - -export default moment.defineLocale('de-ch', { - months : 'Januar_Februar_März_April_Mai_Juni_Juli_August_September_Oktober_November_Dezember'.split('_'), - monthsShort : 'Jan._Febr._März_April_Mai_Juni_Juli_Aug._Sept._Okt._Nov._Dez.'.split('_'), - monthsParseExact : true, - 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('_'), - weekdaysParseExact : true, - longDateFormat : { - LT: 'HH.mm', - LTS: 'HH.mm.ss', - L : 'DD.MM.YYYY', - LL : 'D. MMMM YYYY', - LLL : 'D. MMMM YYYY HH.mm', - LLLL : 'dddd, D. MMMM YYYY HH.mm' - }, - calendar : { - sameDay: '[heute um] LT [Uhr]', - sameElse: 'L', - nextDay: '[morgen um] LT [Uhr]', - nextWeek: 'dddd [um] LT [Uhr]', - lastDay: '[gestern um] LT [Uhr]', - lastWeek: '[letzten] dddd [um] LT [Uhr]' - }, - relativeTime : { - future : 'in %s', - past : 'vor %s', - s : 'ein paar Sekunden', - m : processRelativeTime, - mm : '%d Minuten', - h : processRelativeTime, - hh : '%d Stunden', - d : processRelativeTime, - dd : processRelativeTime, - M : processRelativeTime, - MM : processRelativeTime, - y : processRelativeTime, - yy : processRelativeTime - }, - dayOfMonthOrdinalParse: /\d{1,2}\./, - ordinal : '%d.', - week : { - dow : 1, // Monday is the first day of the week. - doy : 4 // The week that contains Jan 4th is the first week of the year. - } -}); diff --git a/admin/bower_components/moment/src/locale/de.js b/admin/bower_components/moment/src/locale/de.js deleted file mode 100644 index c54f59c..0000000 --- a/admin/bower_components/moment/src/locale/de.js +++ /dev/null @@ -1,68 +0,0 @@ -//! moment.js locale configuration -//! locale : German [de] -//! author : lluchs : https://github.com/lluchs -//! author: Menelion Elensúle: https://github.com/Oire -//! author : Mikolaj Dadela : https://github.com/mik01aj - -import moment from '../moment'; - -function processRelativeTime(number, withoutSuffix, key, isFuture) { - var format = { - 'm': ['eine Minute', 'einer Minute'], - 'h': ['eine Stunde', 'einer Stunde'], - 'd': ['ein Tag', 'einem Tag'], - 'dd': [number + ' Tage', number + ' Tagen'], - 'M': ['ein Monat', 'einem Monat'], - 'MM': [number + ' Monate', number + ' Monaten'], - 'y': ['ein Jahr', 'einem Jahr'], - 'yy': [number + ' Jahre', number + ' Jahren'] - }; - return withoutSuffix ? format[key][0] : format[key][1]; -} - -export default moment.defineLocale('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('_'), - monthsParseExact : true, - 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('_'), - weekdaysParseExact : true, - longDateFormat : { - LT: 'HH:mm', - LTS: 'HH:mm:ss', - L : 'DD.MM.YYYY', - LL : 'D. MMMM YYYY', - LLL : 'D. MMMM YYYY HH:mm', - LLLL : 'dddd, D. MMMM YYYY HH:mm' - }, - calendar : { - sameDay: '[heute um] LT [Uhr]', - sameElse: 'L', - nextDay: '[morgen um] LT [Uhr]', - nextWeek: 'dddd [um] LT [Uhr]', - lastDay: '[gestern um] LT [Uhr]', - lastWeek: '[letzten] dddd [um] LT [Uhr]' - }, - relativeTime : { - future : 'in %s', - past : 'vor %s', - s : 'ein paar Sekunden', - m : processRelativeTime, - mm : '%d Minuten', - h : processRelativeTime, - hh : '%d Stunden', - d : processRelativeTime, - dd : processRelativeTime, - M : processRelativeTime, - MM : processRelativeTime, - y : processRelativeTime, - yy : processRelativeTime - }, - dayOfMonthOrdinalParse: /\d{1,2}\./, - ordinal : '%d.', - week : { - dow : 1, // Monday is the first day of the week. - doy : 4 // The week that contains Jan 4th is the first week of the year. - } -}); diff --git a/admin/bower_components/moment/src/locale/dv.js b/admin/bower_components/moment/src/locale/dv.js deleted file mode 100644 index 9490e3f..0000000 --- a/admin/bower_components/moment/src/locale/dv.js +++ /dev/null @@ -1,89 +0,0 @@ -//! moment.js locale configuration -//! locale : Maldivian [dv] -//! author : Jawish Hameed : https://github.com/jawish - -import moment from '../moment'; - -var months = [ - 'ޖެނުއަރީ', - 'ފެބްރުއަރީ', - 'މާރިޗު', - 'އޭޕްރީލު', - 'މޭ', - 'ޖޫން', - 'ޖުލައި', - 'އޯގަސްޓު', - 'ސެޕްޓެމްބަރު', - 'އޮކްޓޯބަރު', - 'ނޮވެމްބަރު', - 'ޑިސެމްބަރު' -], weekdays = [ - 'އާދިއްތަ', - 'ހޯމަ', - 'އަންގާރަ', - 'ބުދަ', - 'ބުރާސްފަތި', - 'ހުކުރު', - 'ހޮނިހިރު' -]; - -export default moment.defineLocale('dv', { - months : months, - monthsShort : months, - weekdays : weekdays, - weekdaysShort : weekdays, - weekdaysMin : 'އާދި_ހޯމަ_އަން_ބުދަ_ބުރާ_ހުކު_ހޮނި'.split('_'), - longDateFormat : { - - LT : 'HH:mm', - LTS : 'HH:mm:ss', - L : 'D/M/YYYY', - LL : 'D MMMM YYYY', - LLL : 'D MMMM YYYY HH:mm', - LLLL : 'dddd D MMMM YYYY HH:mm' - }, - meridiemParse: /މކ|މފ/, - isPM : function (input) { - return 'މފ' === input; - }, - meridiem : function (hour, minute, isLower) { - if (hour < 12) { - return 'މކ'; - } else { - return 'މފ'; - } - }, - 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 (string) { - return string.replace(/،/g, ','); - }, - postformat: function (string) { - return string.replace(/,/g, '،'); - }, - week : { - dow : 7, // Sunday is the first day of the week. - doy : 12 // The week that contains Jan 1st is the first week of the year. - } -}); diff --git a/admin/bower_components/moment/src/locale/el.js b/admin/bower_components/moment/src/locale/el.js deleted file mode 100644 index facd7f6..0000000 --- a/admin/bower_components/moment/src/locale/el.js +++ /dev/null @@ -1,88 +0,0 @@ -//! moment.js locale configuration -//! locale : Greek [el] -//! author : Aggelos Karalias : https://github.com/mehiel - -import moment from '../moment'; -import isFunction from '../lib/utils/is-function'; - -export default moment.defineLocale('el', { - monthsNominativeEl : 'Ιανουάριος_Φεβρουάριος_Μάρτιος_Απρίλιος_Μάιος_Ιούνιος_Ιούλιος_Αύγουστος_Σεπτέμβριος_Οκτώβριος_Νοέμβριος_Δεκέμβριος'.split('_'), - monthsGenitiveEl : 'Ιανουαρίου_Φεβρουαρίου_Μαρτίου_Απριλίου_Μαΐου_Ιουνίου_Ιουλίου_Αυγούστου_Σεπτεμβρίου_Οκτωβρίου_Νοεμβρίου_Δεκεμβρίου'.split('_'), - months : function (momentToFormat, format) { - if (!momentToFormat) { - return this._monthsNominativeEl; - } else if (/D/.test(format.substring(0, format.indexOf('MMMM')))) { // if there is a day number before 'MMMM' - return this._monthsGenitiveEl[momentToFormat.month()]; - } else { - return this._monthsNominativeEl[momentToFormat.month()]; - } - }, - monthsShort : 'Ιαν_Φεβ_Μαρ_Απρ_Μαϊ_Ιουν_Ιουλ_Αυγ_Σεπ_Οκτ_Νοε_Δεκ'.split('_'), - weekdays : 'Κυριακή_Δευτέρα_Τρίτη_Τετάρτη_Πέμπτη_Παρασκευή_Σάββατο'.split('_'), - weekdaysShort : 'Κυρ_Δευ_Τρι_Τετ_Πεμ_Παρ_Σαβ'.split('_'), - weekdaysMin : 'Κυ_Δε_Τρ_Τε_Πε_Πα_Σα'.split('_'), - meridiem : function (hours, minutes, isLower) { - if (hours > 11) { - return isLower ? 'μμ' : 'ΜΜ'; - } else { - return isLower ? 'πμ' : 'ΠΜ'; - } - }, - isPM : function (input) { - return ((input + '').toLowerCase()[0] === 'μ'); - }, - meridiemParse : /[ΠΜ]\.?Μ?\.?/i, - longDateFormat : { - LT : 'h:mm A', - LTS : 'h:mm:ss A', - L : 'DD/MM/YYYY', - LL : 'D MMMM YYYY', - LLL : 'D MMMM YYYY h:mm A', - LLLL : 'dddd, D MMMM YYYY h:mm A' - }, - calendarEl : { - sameDay : '[Σήμερα {}] LT', - nextDay : '[Αύριο {}] LT', - nextWeek : 'dddd [{}] LT', - lastDay : '[Χθες {}] LT', - lastWeek : function () { - switch (this.day()) { - case 6: - return '[το προηγούμενο] dddd [{}] LT'; - default: - return '[την προηγούμενη] dddd [{}] LT'; - } - }, - sameElse : 'L' - }, - calendar : function (key, mom) { - var output = this._calendarEl[key], - hours = mom && mom.hours(); - if (isFunction(output)) { - output = output.apply(mom); - } - return output.replace('{}', (hours % 12 === 1 ? 'στη' : 'στις')); - }, - relativeTime : { - future : 'σε %s', - past : '%s πριν', - s : 'λίγα δευτερόλεπτα', - m : 'ένα λεπτό', - mm : '%d λεπτά', - h : 'μία ώρα', - hh : '%d ώρες', - d : 'μία μέρα', - dd : '%d μέρες', - M : 'ένας μήνας', - MM : '%d μήνες', - y : 'ένας χρόνος', - yy : '%d χρόνια' - }, - dayOfMonthOrdinalParse: /\d{1,2}η/, - ordinal: '%dη', - week : { - dow : 1, // Monday is the first day of the week. - doy : 4 // The week that contains Jan 4st is the first week of the year. - } -}); - diff --git a/admin/bower_components/moment/src/locale/en-au.js b/admin/bower_components/moment/src/locale/en-au.js deleted file mode 100644 index 4e3d5f4..0000000 --- a/admin/bower_components/moment/src/locale/en-au.js +++ /dev/null @@ -1,58 +0,0 @@ -//! moment.js locale configuration -//! locale : English (Australia) [en-au] -//! author : Jared Morse : https://github.com/jarcoal - -import moment from '../moment'; - -export default moment.defineLocale('en-au', { - 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', - LTS : 'h:mm:ss A', - L : 'DD/MM/YYYY', - LL : 'D MMMM YYYY', - LLL : 'D MMMM YYYY h:mm A', - LLLL : 'dddd, D MMMM YYYY h:mm A' - }, - 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' - }, - dayOfMonthOrdinalParse: /\d{1,2}(st|nd|rd|th)/, - ordinal : function (number) { - var b = number % 10, - output = (~~(number % 100 / 10) === 1) ? 'th' : - (b === 1) ? 'st' : - (b === 2) ? 'nd' : - (b === 3) ? 'rd' : 'th'; - return number + output; - }, - week : { - dow : 1, // Monday is the first day of the week. - doy : 4 // The week that contains Jan 4th is the first week of the year. - } -}); - diff --git a/admin/bower_components/moment/src/locale/en-ca.js b/admin/bower_components/moment/src/locale/en-ca.js deleted file mode 100644 index 4783cfe..0000000 --- a/admin/bower_components/moment/src/locale/en-ca.js +++ /dev/null @@ -1,53 +0,0 @@ -//! moment.js locale configuration -//! locale : English (Canada) [en-ca] -//! author : Jonathan Abourbih : https://github.com/jonbca - -import moment from '../moment'; - -export default moment.defineLocale('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', - LTS : 'h:mm:ss A', - L : 'YYYY-MM-DD', - LL : 'MMMM D, YYYY', - LLL : 'MMMM D, YYYY h:mm A', - LLLL : 'dddd, MMMM D, YYYY h:mm A' - }, - 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' - }, - dayOfMonthOrdinalParse: /\d{1,2}(st|nd|rd|th)/, - ordinal : function (number) { - var b = number % 10, - output = (~~(number % 100 / 10) === 1) ? 'th' : - (b === 1) ? 'st' : - (b === 2) ? 'nd' : - (b === 3) ? 'rd' : 'th'; - return number + output; - } -}); diff --git a/admin/bower_components/moment/src/locale/en-gb.js b/admin/bower_components/moment/src/locale/en-gb.js deleted file mode 100644 index ccff366..0000000 --- a/admin/bower_components/moment/src/locale/en-gb.js +++ /dev/null @@ -1,58 +0,0 @@ -//! moment.js locale configuration -//! locale : English (United Kingdom) [en-gb] -//! author : Chris Gedrim : https://github.com/chrisgedrim - -import moment from '../moment'; - -export default moment.defineLocale('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', - LTS : 'HH:mm:ss', - L : 'DD/MM/YYYY', - LL : 'D MMMM YYYY', - LLL : 'D MMMM YYYY HH:mm', - LLLL : 'dddd, D MMMM YYYY HH:mm' - }, - 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' - }, - dayOfMonthOrdinalParse: /\d{1,2}(st|nd|rd|th)/, - ordinal : function (number) { - var b = number % 10, - output = (~~(number % 100 / 10) === 1) ? 'th' : - (b === 1) ? 'st' : - (b === 2) ? 'nd' : - (b === 3) ? 'rd' : 'th'; - return number + output; - }, - week : { - dow : 1, // Monday is the first day of the week. - doy : 4 // The week that contains Jan 4th is the first week of the year. - } -}); - diff --git a/admin/bower_components/moment/src/locale/en-ie.js b/admin/bower_components/moment/src/locale/en-ie.js deleted file mode 100644 index 008b84e..0000000 --- a/admin/bower_components/moment/src/locale/en-ie.js +++ /dev/null @@ -1,58 +0,0 @@ -//! moment.js locale configuration -//! locale : English (Ireland) [en-ie] -//! author : Chris Cartlidge : https://github.com/chriscartlidge - -import moment from '../moment'; - -export default moment.defineLocale('en-ie', { - 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', - LTS : 'HH:mm:ss', - L : 'DD-MM-YYYY', - LL : 'D MMMM YYYY', - LLL : 'D MMMM YYYY HH:mm', - LLLL : 'dddd D MMMM YYYY HH:mm' - }, - 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' - }, - dayOfMonthOrdinalParse: /\d{1,2}(st|nd|rd|th)/, - ordinal : function (number) { - var b = number % 10, - output = (~~(number % 100 / 10) === 1) ? 'th' : - (b === 1) ? 'st' : - (b === 2) ? 'nd' : - (b === 3) ? 'rd' : 'th'; - return number + output; - }, - week : { - dow : 1, // Monday is the first day of the week. - doy : 4 // The week that contains Jan 4th is the first week of the year. - } -}); - diff --git a/admin/bower_components/moment/src/locale/en-nz.js b/admin/bower_components/moment/src/locale/en-nz.js deleted file mode 100644 index a974da7..0000000 --- a/admin/bower_components/moment/src/locale/en-nz.js +++ /dev/null @@ -1,57 +0,0 @@ -//! moment.js locale configuration -//! locale : English (New Zealand) [en-nz] -//! author : Luke McGregor : https://github.com/lukemcgregor - -import moment from '../moment'; - -export default moment.defineLocale('en-nz', { - 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', - LTS : 'h:mm:ss A', - L : 'DD/MM/YYYY', - LL : 'D MMMM YYYY', - LLL : 'D MMMM YYYY h:mm A', - LLLL : 'dddd, D MMMM YYYY h:mm A' - }, - 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' - }, - dayOfMonthOrdinalParse: /\d{1,2}(st|nd|rd|th)/, - ordinal : function (number) { - var b = number % 10, - output = (~~(number % 100 / 10) === 1) ? 'th' : - (b === 1) ? 'st' : - (b === 2) ? 'nd' : - (b === 3) ? 'rd' : 'th'; - return number + output; - }, - week : { - dow : 1, // Monday is the first day of the week. - doy : 4 // The week that contains Jan 4th is the first week of the year. - } -}); diff --git a/admin/bower_components/moment/src/locale/eo.js b/admin/bower_components/moment/src/locale/eo.js deleted file mode 100644 index 66cb768..0000000 --- a/admin/bower_components/moment/src/locale/eo.js +++ /dev/null @@ -1,64 +0,0 @@ -//! moment.js locale configuration -//! locale : Esperanto [eo] -//! author : Colin Dean : https://github.com/colindean -//! author : Mia Nordentoft Imperatori : https://github.com/miestasmia -//! comment : miestasmia corrected the translation by colindean - -import moment from '../moment'; - -export default moment.defineLocale('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', - LTS : 'HH:mm:ss', - L : 'YYYY-MM-DD', - LL : 'D[-a de] MMMM, YYYY', - LLL : 'D[-a de] MMMM, YYYY HH:mm', - LLLL : 'dddd, [la] D[-a de] MMMM, YYYY HH:mm' - }, - meridiemParse: /[ap]\.t\.m/i, - isPM: function (input) { - return input.charAt(0).toLowerCase() === 'p'; - }, - meridiem : function (hours, minutes, isLower) { - if (hours > 11) { - return isLower ? 'p.t.m.' : 'P.T.M.'; - } else { - return isLower ? '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 : 'post %s', - past : 'antaŭ %s', - s : 'sekundoj', - m : 'minuto', - mm : '%d minutoj', - h : 'horo', - hh : '%d horoj', - d : 'tago',//ne 'diurno', ĉar estas uzita por proksimumo - dd : '%d tagoj', - M : 'monato', - MM : '%d monatoj', - y : 'jaro', - yy : '%d jaroj' - }, - dayOfMonthOrdinalParse: /\d{1,2}a/, - ordinal : '%da', - week : { - dow : 1, // Monday is the first day of the week. - doy : 7 // The week that contains Jan 1st is the first week of the year. - } -}); - diff --git a/admin/bower_components/moment/src/locale/es-do.js b/admin/bower_components/moment/src/locale/es-do.js deleted file mode 100644 index 43a8614..0000000 --- a/admin/bower_components/moment/src/locale/es-do.js +++ /dev/null @@ -1,73 +0,0 @@ -//! moment.js locale configuration -//! locale : Spanish (Dominican Republic) [es-do] - -import moment from '../moment'; - -var monthsShortDot = 'ene._feb._mar._abr._may._jun._jul._ago._sep._oct._nov._dic.'.split('_'), - monthsShort = 'ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic'.split('_'); - -export default moment.defineLocale('es-do', { - months : 'enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre'.split('_'), - monthsShort : function (m, format) { - if (!m) { - return monthsShortDot; - } else if (/-MMM-/.test(format)) { - return monthsShort[m.month()]; - } else { - return monthsShortDot[m.month()]; - } - }, - monthsParseExact : true, - 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('_'), - weekdaysParseExact : true, - longDateFormat : { - LT : 'h:mm A', - LTS : 'h:mm:ss A', - L : 'DD/MM/YYYY', - LL : 'D [de] MMMM [de] YYYY', - LLL : 'D [de] MMMM [de] YYYY h:mm A', - LLLL : 'dddd, D [de] MMMM [de] YYYY h:mm A' - }, - calendar : { - sameDay : function () { - return '[hoy a la' + ((this.hours() !== 1) ? 's' : '') + '] LT'; - }, - nextDay : function () { - return '[mañana a la' + ((this.hours() !== 1) ? 's' : '') + '] LT'; - }, - nextWeek : function () { - return 'dddd [a la' + ((this.hours() !== 1) ? 's' : '') + '] LT'; - }, - lastDay : function () { - return '[ayer a la' + ((this.hours() !== 1) ? 's' : '') + '] LT'; - }, - lastWeek : function () { - return '[el] dddd [pasado a la' + ((this.hours() !== 1) ? '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' - }, - dayOfMonthOrdinalParse : /\d{1,2}º/, - ordinal : '%dº', - week : { - dow : 1, // Monday is the first day of the week. - doy : 4 // The week that contains Jan 4th is the first week of the year. - } -}); - diff --git a/admin/bower_components/moment/src/locale/es.js b/admin/bower_components/moment/src/locale/es.js deleted file mode 100644 index 78607ea..0000000 --- a/admin/bower_components/moment/src/locale/es.js +++ /dev/null @@ -1,74 +0,0 @@ -//! moment.js locale configuration -//! locale : Spanish [es] -//! author : Julio Napurí : https://github.com/julionc - -import moment from '../moment'; - -var monthsShortDot = 'ene._feb._mar._abr._may._jun._jul._ago._sep._oct._nov._dic.'.split('_'), - monthsShort = 'ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic'.split('_'); - -export default moment.defineLocale('es', { - months : 'enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre'.split('_'), - monthsShort : function (m, format) { - if (!m) { - return monthsShortDot; - } else if (/-MMM-/.test(format)) { - return monthsShort[m.month()]; - } else { - return monthsShortDot[m.month()]; - } - }, - monthsParseExact : true, - 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('_'), - weekdaysParseExact : true, - longDateFormat : { - LT : 'H:mm', - LTS : 'H:mm:ss', - L : 'DD/MM/YYYY', - LL : 'D [de] MMMM [de] YYYY', - LLL : 'D [de] MMMM [de] YYYY H:mm', - LLLL : 'dddd, D [de] MMMM [de] YYYY H:mm' - }, - calendar : { - sameDay : function () { - return '[hoy a la' + ((this.hours() !== 1) ? 's' : '') + '] LT'; - }, - nextDay : function () { - return '[mañana a la' + ((this.hours() !== 1) ? 's' : '') + '] LT'; - }, - nextWeek : function () { - return 'dddd [a la' + ((this.hours() !== 1) ? 's' : '') + '] LT'; - }, - lastDay : function () { - return '[ayer a la' + ((this.hours() !== 1) ? 's' : '') + '] LT'; - }, - lastWeek : function () { - return '[el] dddd [pasado a la' + ((this.hours() !== 1) ? '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' - }, - dayOfMonthOrdinalParse : /\d{1,2}º/, - ordinal : '%dº', - week : { - dow : 1, // Monday is the first day of the week. - doy : 4 // The week that contains Jan 4th is the first week of the year. - } -}); - diff --git a/admin/bower_components/moment/src/locale/et.js b/admin/bower_components/moment/src/locale/et.js deleted file mode 100644 index faa4585..0000000 --- a/admin/bower_components/moment/src/locale/et.js +++ /dev/null @@ -1,71 +0,0 @@ -//! moment.js locale configuration -//! locale : Estonian [et] -//! author : Henry Kehlmann : https://github.com/madhenry -//! improvements : Illimar Tambek : https://github.com/ragulka - -import moment from '../moment'; - -function processRelativeTime(number, withoutSuffix, key, isFuture) { - var format = { - 's' : ['mõne sekundi', 'mõni sekund', 'paar sekundit'], - 'm' : ['ühe minuti', 'üks minut'], - 'mm': [number + ' minuti', number + ' minutit'], - 'h' : ['ühe tunni', 'tund aega', 'üks tund'], - 'hh': [number + ' tunni', number + ' tundi'], - 'd' : ['ühe päeva', 'üks päev'], - 'M' : ['kuu aja', 'kuu aega', 'üks kuu'], - 'MM': [number + ' kuu', number + ' kuud'], - 'y' : ['ühe aasta', 'aasta', 'üks aasta'], - 'yy': [number + ' aasta', number + ' aastat'] - }; - if (withoutSuffix) { - return format[key][2] ? format[key][2] : format[key][1]; - } - return isFuture ? format[key][0] : format[key][1]; -} - -export default moment.defineLocale('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 : 'P_E_T_K_N_R_L'.split('_'), - weekdaysMin : 'P_E_T_K_N_R_L'.split('_'), - longDateFormat : { - LT : 'H:mm', - LTS : 'H:mm:ss', - L : 'DD.MM.YYYY', - LL : 'D. MMMM YYYY', - LLL : 'D. MMMM YYYY H:mm', - LLLL : 'dddd, D. MMMM YYYY H:mm' - }, - 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 : processRelativeTime, - m : processRelativeTime, - mm : processRelativeTime, - h : processRelativeTime, - hh : processRelativeTime, - d : processRelativeTime, - dd : '%d päeva', - M : processRelativeTime, - MM : processRelativeTime, - y : processRelativeTime, - yy : processRelativeTime - }, - dayOfMonthOrdinalParse: /\d{1,2}\./, - ordinal : '%d.', - week : { - dow : 1, // Monday is the first day of the week. - doy : 4 // The week that contains Jan 4th is the first week of the year. - } -}); - diff --git a/admin/bower_components/moment/src/locale/eu.js b/admin/bower_components/moment/src/locale/eu.js deleted file mode 100644 index b73019e..0000000 --- a/admin/bower_components/moment/src/locale/eu.js +++ /dev/null @@ -1,57 +0,0 @@ -//! moment.js locale configuration -//! locale : Basque [eu] -//! author : Eneko Illarramendi : https://github.com/eillarra - -import moment from '../moment'; - -export default moment.defineLocale('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('_'), - monthsParseExact : true, - 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('_'), - weekdaysParseExact : true, - longDateFormat : { - LT : 'HH:mm', - LTS : 'HH:mm:ss', - L : 'YYYY-MM-DD', - LL : 'YYYY[ko] MMMM[ren] D[a]', - LLL : 'YYYY[ko] MMMM[ren] D[a] HH:mm', - LLLL : 'dddd, YYYY[ko] MMMM[ren] D[a] HH:mm', - l : 'YYYY-M-D', - ll : 'YYYY[ko] MMM D[a]', - lll : 'YYYY[ko] MMM D[a] HH:mm', - llll : 'ddd, YYYY[ko] MMM D[a] HH:mm' - }, - 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' - }, - dayOfMonthOrdinalParse: /\d{1,2}\./, - ordinal : '%d.', - week : { - dow : 1, // Monday is the first day of the week. - doy : 7 // The week that contains Jan 1st is the first week of the year. - } -}); - diff --git a/admin/bower_components/moment/src/locale/fa.js b/admin/bower_components/moment/src/locale/fa.js deleted file mode 100644 index 7daa53a..0000000 --- a/admin/bower_components/moment/src/locale/fa.js +++ /dev/null @@ -1,97 +0,0 @@ -//! moment.js locale configuration -//! locale : Persian [fa] -//! author : Ebrahim Byagowi : https://github.com/ebraminio - -import moment from '../moment'; - -var symbolMap = { - '1': '۱', - '2': '۲', - '3': '۳', - '4': '۴', - '5': '۵', - '6': '۶', - '7': '۷', - '8': '۸', - '9': '۹', - '0': '۰' -}, numberMap = { - '۱': '1', - '۲': '2', - '۳': '3', - '۴': '4', - '۵': '5', - '۶': '6', - '۷': '7', - '۸': '8', - '۹': '9', - '۰': '0' -}; - -export default moment.defineLocale('fa', { - months : 'ژانویه_فوریه_مارس_آوریل_مه_ژوئن_ژوئیه_اوت_سپتامبر_اکتبر_نوامبر_دسامبر'.split('_'), - monthsShort : 'ژانویه_فوریه_مارس_آوریل_مه_ژوئن_ژوئیه_اوت_سپتامبر_اکتبر_نوامبر_دسامبر'.split('_'), - weekdays : 'یک\u200cشنبه_دوشنبه_سه\u200cشنبه_چهارشنبه_پنج\u200cشنبه_جمعه_شنبه'.split('_'), - weekdaysShort : 'یک\u200cشنبه_دوشنبه_سه\u200cشنبه_چهارشنبه_پنج\u200cشنبه_جمعه_شنبه'.split('_'), - weekdaysMin : 'ی_د_س_چ_پ_ج_ش'.split('_'), - weekdaysParseExact : true, - longDateFormat : { - LT : 'HH:mm', - LTS : 'HH:mm:ss', - L : 'DD/MM/YYYY', - LL : 'D MMMM YYYY', - LLL : 'D MMMM YYYY HH:mm', - LLLL : 'dddd, D MMMM YYYY HH:mm' - }, - meridiemParse: /قبل از ظهر|بعد از ظهر/, - isPM: function (input) { - return /بعد از ظهر/.test(input); - }, - meridiem : function (hour, minute, isLower) { - if (hour < 12) { - return 'قبل از ظهر'; - } else { - return 'بعد از ظهر'; - } - }, - 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 (string) { - return string.replace(/[۰-۹]/g, function (match) { - return numberMap[match]; - }).replace(/،/g, ','); - }, - postformat: function (string) { - return string.replace(/\d/g, function (match) { - return symbolMap[match]; - }).replace(/,/g, '،'); - }, - dayOfMonthOrdinalParse: /\d{1,2}م/, - ordinal : '%dم', - week : { - dow : 6, // Saturday is the first day of the week. - doy : 12 // The week that contains Jan 1st is the first week of the year. - } -}); - diff --git a/admin/bower_components/moment/src/locale/fi.js b/admin/bower_components/moment/src/locale/fi.js deleted file mode 100644 index 07ebb29..0000000 --- a/admin/bower_components/moment/src/locale/fi.js +++ /dev/null @@ -1,98 +0,0 @@ -//! moment.js locale configuration -//! locale : Finnish [fi] -//! author : Tarmo Aidantausta : https://github.com/bleadof - -import moment from '../moment'; - -var numbersPast = 'nolla yksi kaksi kolme neljä viisi kuusi seitsemän kahdeksan yhdeksän'.split(' '), - numbersFuture = [ - 'nolla', 'yhden', 'kahden', 'kolmen', 'neljän', 'viiden', 'kuuden', - numbersPast[7], numbersPast[8], numbersPast[9] - ]; -function translate(number, withoutSuffix, key, isFuture) { - var result = ''; - switch (key) { - case 's': - return isFuture ? 'muutaman sekunnin' : 'muutama sekunti'; - case 'm': - return isFuture ? 'minuutin' : 'minuutti'; - case 'mm': - result = isFuture ? 'minuutin' : 'minuuttia'; - break; - case 'h': - return isFuture ? 'tunnin' : 'tunti'; - case 'hh': - result = isFuture ? 'tunnin' : 'tuntia'; - break; - case 'd': - return isFuture ? 'päivän' : 'päivä'; - case 'dd': - result = isFuture ? 'päivän' : 'päivää'; - break; - case 'M': - return isFuture ? 'kuukauden' : 'kuukausi'; - case 'MM': - result = isFuture ? 'kuukauden' : 'kuukautta'; - break; - case 'y': - return isFuture ? 'vuoden' : 'vuosi'; - case 'yy': - result = isFuture ? 'vuoden' : 'vuotta'; - break; - } - result = verbalNumber(number, isFuture) + ' ' + result; - return result; -} -function verbalNumber(number, isFuture) { - return number < 10 ? (isFuture ? numbersFuture[number] : numbersPast[number]) : number; -} - -export default moment.defineLocale('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', - LTS : 'HH.mm.ss', - L : 'DD.MM.YYYY', - LL : 'Do MMMM[ta] YYYY', - LLL : 'Do MMMM[ta] YYYY, [klo] HH.mm', - LLLL : 'dddd, Do MMMM[ta] YYYY, [klo] HH.mm', - l : 'D.M.YYYY', - ll : 'Do MMM YYYY', - lll : 'Do MMM YYYY, [klo] HH.mm', - llll : 'ddd, Do MMM YYYY, [klo] HH.mm' - }, - 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 : translate, - m : translate, - mm : translate, - h : translate, - hh : translate, - d : translate, - dd : translate, - M : translate, - MM : translate, - y : translate, - yy : translate - }, - dayOfMonthOrdinalParse: /\d{1,2}\./, - ordinal : '%d.', - week : { - dow : 1, // Monday is the first day of the week. - doy : 4 // The week that contains Jan 4th is the first week of the year. - } -}); - diff --git a/admin/bower_components/moment/src/locale/fo.js b/admin/bower_components/moment/src/locale/fo.js deleted file mode 100644 index 15749b7..0000000 --- a/admin/bower_components/moment/src/locale/fo.js +++ /dev/null @@ -1,51 +0,0 @@ -//! moment.js locale configuration -//! locale : Faroese [fo] -//! author : Ragnar Johannesen : https://github.com/ragnar123 - -import moment from '../moment'; - -export default moment.defineLocale('fo', { - months : 'januar_februar_mars_apríl_mai_juni_juli_august_september_oktober_november_desember'.split('_'), - monthsShort : 'jan_feb_mar_apr_mai_jun_jul_aug_sep_okt_nov_des'.split('_'), - weekdays : 'sunnudagur_mánadagur_týsdagur_mikudagur_hósdagur_fríggjadagur_leygardagur'.split('_'), - weekdaysShort : 'sun_mán_týs_mik_hós_frí_ley'.split('_'), - weekdaysMin : 'su_má_tý_mi_hó_fr_le'.split('_'), - longDateFormat : { - LT : 'HH:mm', - LTS : 'HH:mm:ss', - L : 'DD/MM/YYYY', - LL : 'D MMMM YYYY', - LLL : 'D MMMM YYYY HH:mm', - LLLL : 'dddd D. MMMM, YYYY HH:mm' - }, - calendar : { - sameDay : '[Í dag kl.] LT', - nextDay : '[Í morgin kl.] LT', - nextWeek : 'dddd [kl.] LT', - lastDay : '[Í gjár kl.] LT', - lastWeek : '[síðstu] dddd [kl] LT', - sameElse : 'L' - }, - relativeTime : { - future : 'um %s', - past : '%s síðani', - s : 'fá sekund', - m : 'ein minutt', - mm : '%d minuttir', - h : 'ein tími', - hh : '%d tímar', - d : 'ein dagur', - dd : '%d dagar', - M : 'ein mánaði', - MM : '%d mánaðir', - y : 'eitt ár', - yy : '%d ár' - }, - dayOfMonthOrdinalParse: /\d{1,2}\./, - ordinal : '%d.', - week : { - dow : 1, // Monday is the first day of the week. - doy : 4 // The week that contains Jan 4th is the first week of the year. - } -}); - diff --git a/admin/bower_components/moment/src/locale/fr-ca.js b/admin/bower_components/moment/src/locale/fr-ca.js deleted file mode 100644 index 82d822c..0000000 --- a/admin/bower_components/moment/src/locale/fr-ca.js +++ /dev/null @@ -1,65 +0,0 @@ -//! moment.js locale configuration -//! locale : French (Canada) [fr-ca] -//! author : Jonathan Abourbih : https://github.com/jonbca - -import moment from '../moment'; - -export default moment.defineLocale('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('_'), - monthsParseExact : true, - 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('_'), - weekdaysParseExact : true, - longDateFormat : { - LT : 'HH:mm', - LTS : 'HH:mm:ss', - L : 'YYYY-MM-DD', - LL : 'D MMMM YYYY', - LLL : 'D MMMM YYYY HH:mm', - LLLL : 'dddd D MMMM YYYY HH:mm' - }, - 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' - }, - dayOfMonthOrdinalParse: /\d{1,2}(er|e)/, - ordinal : function (number, period) { - switch (period) { - // Words with masculine grammatical gender: mois, trimestre, jour - default: - case 'M': - case 'Q': - case 'D': - case 'DDD': - case 'd': - return number + (number === 1 ? 'er' : 'e'); - - // Words with feminine grammatical gender: semaine - case 'w': - case 'W': - return number + (number === 1 ? 're' : 'e'); - } - } -}); - diff --git a/admin/bower_components/moment/src/locale/fr-ch.js b/admin/bower_components/moment/src/locale/fr-ch.js deleted file mode 100644 index 7bfe028..0000000 --- a/admin/bower_components/moment/src/locale/fr-ch.js +++ /dev/null @@ -1,69 +0,0 @@ -//! moment.js locale configuration -//! locale : French (Switzerland) [fr-ch] -//! author : Gaspard Bucher : https://github.com/gaspard - -import moment from '../moment'; - -export default moment.defineLocale('fr-ch', { - 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('_'), - monthsParseExact : true, - 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('_'), - weekdaysParseExact : true, - longDateFormat : { - LT : 'HH:mm', - LTS : 'HH:mm:ss', - L : 'DD.MM.YYYY', - LL : 'D MMMM YYYY', - LLL : 'D MMMM YYYY HH:mm', - LLLL : 'dddd D MMMM YYYY HH:mm' - }, - 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' - }, - dayOfMonthOrdinalParse: /\d{1,2}(er|e)/, - ordinal : function (number, period) { - switch (period) { - // Words with masculine grammatical gender: mois, trimestre, jour - default: - case 'M': - case 'Q': - case 'D': - case 'DDD': - case 'd': - return number + (number === 1 ? 'er' : 'e'); - - // Words with feminine grammatical gender: semaine - case 'w': - case 'W': - return number + (number === 1 ? 're' : 'e'); - } - }, - week : { - dow : 1, // Monday is the first day of the week. - doy : 4 // The week that contains Jan 4th is the first week of the year. - } -}); - diff --git a/admin/bower_components/moment/src/locale/fr.js b/admin/bower_components/moment/src/locale/fr.js deleted file mode 100644 index f2fac69..0000000 --- a/admin/bower_components/moment/src/locale/fr.js +++ /dev/null @@ -1,74 +0,0 @@ -//! moment.js locale configuration -//! locale : French [fr] -//! author : John Fischer : https://github.com/jfroffice - -import moment from '../moment'; - -export default moment.defineLocale('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('_'), - monthsParseExact : true, - 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('_'), - weekdaysParseExact : true, - longDateFormat : { - LT : 'HH:mm', - LTS : 'HH:mm:ss', - L : 'DD/MM/YYYY', - LL : 'D MMMM YYYY', - LLL : 'D MMMM YYYY HH:mm', - LLLL : 'dddd D MMMM YYYY HH:mm' - }, - 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' - }, - dayOfMonthOrdinalParse: /\d{1,2}(er|)/, - ordinal : function (number, period) { - switch (period) { - // TODO: Return 'e' when day of month > 1. Move this case inside - // block for masculine words below. - // See https://github.com/moment/moment/issues/3375 - case 'D': - return number + (number === 1 ? 'er' : ''); - - // Words with masculine grammatical gender: mois, trimestre, jour - default: - case 'M': - case 'Q': - case 'DDD': - case 'd': - return number + (number === 1 ? 'er' : 'e'); - - // Words with feminine grammatical gender: semaine - case 'w': - case 'W': - return number + (number === 1 ? 're' : 'e'); - } - }, - week : { - dow : 1, // Monday is the first day of the week. - doy : 4 // The week that contains Jan 4th is the first week of the year. - } -}); - diff --git a/admin/bower_components/moment/src/locale/fy.js b/admin/bower_components/moment/src/locale/fy.js deleted file mode 100644 index c0c58a3..0000000 --- a/admin/bower_components/moment/src/locale/fy.js +++ /dev/null @@ -1,66 +0,0 @@ -//! moment.js locale configuration -//! locale : Frisian [fy] -//! author : Robin van der Vliet : https://github.com/robin0van0der0v - -import moment from '../moment'; - -var monthsShortWithDots = 'jan._feb._mrt._apr._mai_jun._jul._aug._sep._okt._nov._des.'.split('_'), - monthsShortWithoutDots = 'jan_feb_mrt_apr_mai_jun_jul_aug_sep_okt_nov_des'.split('_'); - -export default moment.defineLocale('fy', { - months : 'jannewaris_febrewaris_maart_april_maaie_juny_july_augustus_septimber_oktober_novimber_desimber'.split('_'), - monthsShort : function (m, format) { - if (!m) { - return monthsShortWithDots; - } else if (/-MMM-/.test(format)) { - return monthsShortWithoutDots[m.month()]; - } else { - return monthsShortWithDots[m.month()]; - } - }, - monthsParseExact : true, - weekdays : 'snein_moandei_tiisdei_woansdei_tongersdei_freed_sneon'.split('_'), - weekdaysShort : 'si._mo._ti._wo._to._fr._so.'.split('_'), - weekdaysMin : 'Si_Mo_Ti_Wo_To_Fr_So'.split('_'), - weekdaysParseExact : true, - longDateFormat : { - LT : 'HH:mm', - LTS : 'HH:mm:ss', - L : 'DD-MM-YYYY', - LL : 'D MMMM YYYY', - LLL : 'D MMMM YYYY HH:mm', - LLLL : 'dddd D MMMM YYYY HH:mm' - }, - calendar : { - sameDay: '[hjoed om] LT', - nextDay: '[moarn om] LT', - nextWeek: 'dddd [om] LT', - lastDay: '[juster om] LT', - lastWeek: '[ôfrûne] dddd [om] LT', - sameElse: 'L' - }, - relativeTime : { - future : 'oer %s', - past : '%s lyn', - s : 'in pear sekonden', - m : 'ien minút', - mm : '%d minuten', - h : 'ien oere', - hh : '%d oeren', - d : 'ien dei', - dd : '%d dagen', - M : 'ien moanne', - MM : '%d moannen', - y : 'ien jier', - yy : '%d jierren' - }, - dayOfMonthOrdinalParse: /\d{1,2}(ste|de)/, - ordinal : function (number) { - return number + ((number === 1 || number === 8 || number >= 20) ? 'ste' : 'de'); - }, - week : { - dow : 1, // Monday is the first day of the week. - doy : 4 // The week that contains Jan 4th is the first week of the year. - } -}); - diff --git a/admin/bower_components/moment/src/locale/gd.js b/admin/bower_components/moment/src/locale/gd.js deleted file mode 100644 index e088871..0000000 --- a/admin/bower_components/moment/src/locale/gd.js +++ /dev/null @@ -1,67 +0,0 @@ -//! moment.js locale configuration -//! locale : Scottish Gaelic [gd] -//! author : Jon Ashdown : https://github.com/jonashdown - -import moment from '../moment'; - -var months = [ - 'Am Faoilleach', 'An Gearran', 'Am Màrt', 'An Giblean', 'An Cèitean', 'An t-Ògmhios', 'An t-Iuchar', 'An Lùnastal', 'An t-Sultain', 'An Dàmhair', 'An t-Samhain', 'An Dùbhlachd' -]; - -var monthsShort = ['Faoi', 'Gear', 'Màrt', 'Gibl', 'Cèit', 'Ògmh', 'Iuch', 'Lùn', 'Sult', 'Dàmh', 'Samh', 'Dùbh']; - -var weekdays = ['Didòmhnaich', 'Diluain', 'Dimàirt', 'Diciadain', 'Diardaoin', 'Dihaoine', 'Disathairne']; - -var weekdaysShort = ['Did', 'Dil', 'Dim', 'Dic', 'Dia', 'Dih', 'Dis']; - -var weekdaysMin = ['Dò', 'Lu', 'Mà', 'Ci', 'Ar', 'Ha', 'Sa']; - -export default moment.defineLocale('gd', { - months : months, - monthsShort : monthsShort, - monthsParseExact : true, - weekdays : weekdays, - weekdaysShort : weekdaysShort, - weekdaysMin : weekdaysMin, - longDateFormat : { - LT : 'HH:mm', - LTS : 'HH:mm:ss', - L : 'DD/MM/YYYY', - LL : 'D MMMM YYYY', - LLL : 'D MMMM YYYY HH:mm', - LLLL : 'dddd, D MMMM YYYY HH:mm' - }, - calendar : { - sameDay : '[An-diugh aig] LT', - nextDay : '[A-màireach aig] LT', - nextWeek : 'dddd [aig] LT', - lastDay : '[An-dè aig] LT', - lastWeek : 'dddd [seo chaidh] [aig] LT', - sameElse : 'L' - }, - relativeTime : { - future : 'ann an %s', - past : 'bho chionn %s', - s : 'beagan diogan', - m : 'mionaid', - mm : '%d mionaidean', - h : 'uair', - hh : '%d uairean', - d : 'latha', - dd : '%d latha', - M : 'mìos', - MM : '%d mìosan', - y : 'bliadhna', - yy : '%d bliadhna' - }, - dayOfMonthOrdinalParse : /\d{1,2}(d|na|mh)/, - ordinal : function (number) { - var output = number === 1 ? 'd' : number % 10 === 2 ? 'na' : 'mh'; - return number + output; - }, - week : { - dow : 1, // Monday is the first day of the week. - doy : 4 // The week that contains Jan 4th is the first week of the year. - } -}); - diff --git a/admin/bower_components/moment/src/locale/gl.js b/admin/bower_components/moment/src/locale/gl.js deleted file mode 100644 index 6f53907..0000000 --- a/admin/bower_components/moment/src/locale/gl.js +++ /dev/null @@ -1,68 +0,0 @@ -//! moment.js locale configuration -//! locale : Galician [gl] -//! author : Juan G. Hurtado : https://github.com/juanghurtado - -import moment from '../moment'; - -export default moment.defineLocale('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('_'), - monthsParseExact: true, - 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('_'), - weekdaysParseExact : true, - longDateFormat : { - LT : 'H:mm', - LTS : 'H:mm:ss', - L : 'DD/MM/YYYY', - LL : 'D [de] MMMM [de] YYYY', - LLL : 'D [de] MMMM [de] YYYY H:mm', - LLLL : 'dddd, D [de] MMMM [de] YYYY H:mm' - }, - calendar : { - sameDay : function () { - return '[hoxe ' + ((this.hours() !== 1) ? 'ás' : 'á') + '] LT'; - }, - nextDay : function () { - return '[mañá ' + ((this.hours() !== 1) ? 'ás' : 'á') + '] LT'; - }, - nextWeek : function () { - return 'dddd [' + ((this.hours() !== 1) ? 'ás' : 'a') + '] LT'; - }, - lastDay : function () { - return '[onte ' + ((this.hours() !== 1) ? 'á' : 'a') + '] LT'; - }, - lastWeek : function () { - return '[o] dddd [pasado ' + ((this.hours() !== 1) ? 'ás' : 'a') + '] LT'; - }, - sameElse : 'L' - }, - relativeTime : { - future : function (str) { - if (str.indexOf('un') === 0) { - return 'n' + str; - } - return 'en ' + str; - }, - 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' - }, - dayOfMonthOrdinalParse : /\d{1,2}º/, - ordinal : '%dº', - week : { - dow : 1, // Monday is the first day of the week. - doy : 4 // The week that contains Jan 4th is the first week of the year. - } -}); - diff --git a/admin/bower_components/moment/src/locale/gom-latn.js b/admin/bower_components/moment/src/locale/gom-latn.js deleted file mode 100644 index 5530253..0000000 --- a/admin/bower_components/moment/src/locale/gom-latn.js +++ /dev/null @@ -1,112 +0,0 @@ -//! moment.js locale configuration -//! locale : Konkani Latin script [gom-latn] -//! author : The Discoverer : https://github.com/WikiDiscoverer - -import moment from '../moment'; - -function processRelativeTime(number, withoutSuffix, key, isFuture) { - var format = { - 's': ['thodde secondanim', 'thodde second'], - 'm': ['eka mintan', 'ek minute'], - 'mm': [number + ' mintanim', number + ' mintam'], - 'h': ['eka horan', 'ek hor'], - 'hh': [number + ' horanim', number + ' hor'], - 'd': ['eka disan', 'ek dis'], - 'dd': [number + ' disanim', number + ' dis'], - 'M': ['eka mhoinean', 'ek mhoino'], - 'MM': [number + ' mhoineanim', number + ' mhoine'], - 'y': ['eka vorsan', 'ek voros'], - 'yy': [number + ' vorsanim', number + ' vorsam'] - }; - return withoutSuffix ? format[key][0] : format[key][1]; -} - -export default moment.defineLocale('gom-latn', { - months : 'Janer_Febrer_Mars_Abril_Mai_Jun_Julai_Agost_Setembr_Otubr_Novembr_Dezembr'.split('_'), - monthsShort : 'Jan._Feb._Mars_Abr._Mai_Jun_Jul._Ago._Set._Otu._Nov._Dez.'.split('_'), - monthsParseExact : true, - weekdays : 'Aitar_Somar_Mongllar_Budvar_Brestar_Sukrar_Son\'var'.split('_'), - weekdaysShort : 'Ait._Som._Mon._Bud._Bre._Suk._Son.'.split('_'), - weekdaysMin : 'Ai_Sm_Mo_Bu_Br_Su_Sn'.split('_'), - weekdaysParseExact : true, - longDateFormat : { - LT : 'A h:mm [vazta]', - LTS : 'A h:mm:ss [vazta]', - L : 'DD-MM-YYYY', - LL : 'D MMMM YYYY', - LLL : 'D MMMM YYYY A h:mm [vazta]', - LLLL : 'dddd, MMMM[achea] Do, YYYY, A h:mm [vazta]', - llll: 'ddd, D MMM YYYY, A h:mm [vazta]' - }, - calendar : { - sameDay: '[Aiz] LT', - nextDay: '[Faleam] LT', - nextWeek: '[Ieta to] dddd[,] LT', - lastDay: '[Kal] LT', - lastWeek: '[Fatlo] dddd[,] LT', - sameElse: 'L' - }, - relativeTime : { - future : '%s', - past : '%s adim', - s : processRelativeTime, - m : processRelativeTime, - mm : processRelativeTime, - h : processRelativeTime, - hh : processRelativeTime, - d : processRelativeTime, - dd : processRelativeTime, - M : processRelativeTime, - MM : processRelativeTime, - y : processRelativeTime, - yy : processRelativeTime - }, - dayOfMonthOrdinalParse : /\d{1,2}(er)/, - ordinal : function (number, period) { - switch (period) { - // the ordinal 'er' only applies to day of the month - case 'D': - return number + 'er'; - default: - case 'M': - case 'Q': - case 'DDD': - case 'd': - case 'w': - case 'W': - return number; - } - }, - week : { - dow : 1, // Monday is the first day of the week. - doy : 4 // The week that contains Jan 4th is the first week of the year. - }, - meridiemParse: /rati|sokalli|donparam|sanje/, - meridiemHour : function (hour, meridiem) { - if (hour === 12) { - hour = 0; - } - if (meridiem === 'rati') { - return hour < 4 ? hour : hour + 12; - } else if (meridiem === 'sokalli') { - return hour; - } else if (meridiem === 'donparam') { - return hour > 12 ? hour : hour + 12; - } else if (meridiem === 'sanje') { - return hour + 12; - } - }, - meridiem : function (hour, minute, isLower) { - if (hour < 4) { - return 'rati'; - } else if (hour < 12) { - return 'sokalli'; - } else if (hour < 16) { - return 'donparam'; - } else if (hour < 20) { - return 'sanje'; - } else { - return 'rati'; - } - } -}); diff --git a/admin/bower_components/moment/src/locale/he.js b/admin/bower_components/moment/src/locale/he.js deleted file mode 100644 index b6a1944..0000000 --- a/admin/bower_components/moment/src/locale/he.js +++ /dev/null @@ -1,90 +0,0 @@ -//! moment.js locale configuration -//! locale : Hebrew [he] -//! author : Tomer Cohen : https://github.com/tomer -//! author : Moshe Simantov : https://github.com/DevelopmentIL -//! author : Tal Ater : https://github.com/TalAter - -import moment from '../moment'; - -export default moment.defineLocale('he', { - months : 'ינואר_פברואר_מרץ_אפריל_מאי_יוני_יולי_אוגוסט_ספטמבר_אוקטובר_נובמבר_דצמבר'.split('_'), - monthsShort : 'ינו׳_פבר׳_מרץ_אפר׳_מאי_יוני_יולי_אוג׳_ספט׳_אוק׳_נוב׳_דצמ׳'.split('_'), - weekdays : 'ראשון_שני_שלישי_רביעי_חמישי_שישי_שבת'.split('_'), - weekdaysShort : 'א׳_ב׳_ג׳_ד׳_ה׳_ו׳_ש׳'.split('_'), - weekdaysMin : 'א_ב_ג_ד_ה_ו_ש'.split('_'), - longDateFormat : { - LT : 'HH:mm', - LTS : 'HH:mm:ss', - L : 'DD/MM/YYYY', - LL : 'D [ב]MMMM YYYY', - LLL : 'D [ב]MMMM YYYY HH:mm', - LLLL : 'dddd, D [ב]MMMM YYYY HH:mm', - l : 'D/M/YYYY', - ll : 'D MMM YYYY', - lll : 'D MMM YYYY HH:mm', - llll : 'ddd, D MMM YYYY HH:mm' - }, - 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 (number) { - if (number === 2) { - return 'שעתיים'; - } - return number + ' שעות'; - }, - d : 'יום', - dd : function (number) { - if (number === 2) { - return 'יומיים'; - } - return number + ' ימים'; - }, - M : 'חודש', - MM : function (number) { - if (number === 2) { - return 'חודשיים'; - } - return number + ' חודשים'; - }, - y : 'שנה', - yy : function (number) { - if (number === 2) { - return 'שנתיים'; - } else if (number % 10 === 0 && number !== 10) { - return number + ' שנה'; - } - return number + ' שנים'; - } - }, - meridiemParse: /אחה"צ|לפנה"צ|אחרי הצהריים|לפני הצהריים|לפנות בוקר|בבוקר|בערב/i, - isPM : function (input) { - return /^(אחה"צ|אחרי הצהריים|בערב)$/.test(input); - }, - meridiem : function (hour, minute, isLower) { - if (hour < 5) { - return 'לפנות בוקר'; - } else if (hour < 10) { - return 'בבוקר'; - } else if (hour < 12) { - return isLower ? 'לפנה"צ' : 'לפני הצהריים'; - } else if (hour < 18) { - return isLower ? 'אחה"צ' : 'אחרי הצהריים'; - } else { - return 'בערב'; - } - } -}); - diff --git a/admin/bower_components/moment/src/locale/hi.js b/admin/bower_components/moment/src/locale/hi.js deleted file mode 100644 index 30a50e4..0000000 --- a/admin/bower_components/moment/src/locale/hi.js +++ /dev/null @@ -1,115 +0,0 @@ -//! moment.js locale configuration -//! locale : Hindi [hi] -//! author : Mayank Singhal : https://github.com/mayanksinghal - -import moment from '../moment'; - -var symbolMap = { - '1': '१', - '2': '२', - '3': '३', - '4': '४', - '5': '५', - '6': '६', - '7': '७', - '8': '८', - '9': '९', - '0': '०' -}, -numberMap = { - '१': '1', - '२': '2', - '३': '3', - '४': '4', - '५': '5', - '६': '6', - '७': '7', - '८': '8', - '९': '9', - '०': '0' -}; - -export default moment.defineLocale('hi', { - months : 'जनवरी_फ़रवरी_मार्च_अप्रैल_मई_जून_जुलाई_अगस्त_सितम्बर_अक्टूबर_नवम्बर_दिसम्बर'.split('_'), - monthsShort : 'जन._फ़र._मार्च_अप्रै._मई_जून_जुल._अग._सित._अक्टू._नव._दिस.'.split('_'), - monthsParseExact: true, - weekdays : 'रविवार_सोमवार_मंगलवार_बुधवार_गुरूवार_शुक्रवार_शनिवार'.split('_'), - weekdaysShort : 'रवि_सोम_मंगल_बुध_गुरू_शुक्र_शनि'.split('_'), - weekdaysMin : 'र_सो_मं_बु_गु_शु_श'.split('_'), - longDateFormat : { - LT : 'A h:mm बजे', - LTS : 'A h:mm:ss बजे', - L : 'DD/MM/YYYY', - LL : 'D MMMM YYYY', - LLL : 'D MMMM YYYY, A h:mm बजे', - LLLL : 'dddd, D MMMM YYYY, A h:mm बजे' - }, - 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 (string) { - return string.replace(/[१२३४५६७८९०]/g, function (match) { - return numberMap[match]; - }); - }, - postformat: function (string) { - return string.replace(/\d/g, function (match) { - return symbolMap[match]; - }); - }, - // Hindi notation for meridiems are quite fuzzy in practice. While there exists - // a rigid notion of a 'Pahar' it is not used as rigidly in modern Hindi. - meridiemParse: /रात|सुबह|दोपहर|शाम/, - meridiemHour : function (hour, meridiem) { - if (hour === 12) { - hour = 0; - } - if (meridiem === 'रात') { - return hour < 4 ? hour : hour + 12; - } else if (meridiem === 'सुबह') { - return hour; - } else if (meridiem === 'दोपहर') { - return hour >= 10 ? hour : hour + 12; - } else if (meridiem === 'शाम') { - return hour + 12; - } - }, - meridiem : function (hour, minute, isLower) { - if (hour < 4) { - return 'रात'; - } else if (hour < 10) { - return 'सुबह'; - } else if (hour < 17) { - return 'दोपहर'; - } else if (hour < 20) { - return 'शाम'; - } else { - return 'रात'; - } - }, - week : { - dow : 0, // Sunday is the first day of the week. - doy : 6 // The week that contains Jan 1st is the first week of the year. - } -}); - diff --git a/admin/bower_components/moment/src/locale/hr.js b/admin/bower_components/moment/src/locale/hr.js deleted file mode 100644 index 59d060c..0000000 --- a/admin/bower_components/moment/src/locale/hr.js +++ /dev/null @@ -1,135 +0,0 @@ -//! moment.js locale configuration -//! locale : Croatian [hr] -//! author : Bojan Marković : https://github.com/bmarkovic - -import moment from '../moment'; - -function translate(number, withoutSuffix, key) { - var result = number + ' '; - switch (key) { - case 'm': - return withoutSuffix ? 'jedna minuta' : 'jedne minute'; - case 'mm': - if (number === 1) { - result += 'minuta'; - } else if (number === 2 || number === 3 || number === 4) { - result += 'minute'; - } else { - result += 'minuta'; - } - return result; - case 'h': - return withoutSuffix ? 'jedan sat' : 'jednog sata'; - case 'hh': - if (number === 1) { - result += 'sat'; - } else if (number === 2 || number === 3 || number === 4) { - result += 'sata'; - } else { - result += 'sati'; - } - return result; - case 'dd': - if (number === 1) { - result += 'dan'; - } else { - result += 'dana'; - } - return result; - case 'MM': - if (number === 1) { - result += 'mjesec'; - } else if (number === 2 || number === 3 || number === 4) { - result += 'mjeseca'; - } else { - result += 'mjeseci'; - } - return result; - case 'yy': - if (number === 1) { - result += 'godina'; - } else if (number === 2 || number === 3 || number === 4) { - result += 'godine'; - } else { - result += 'godina'; - } - return result; - } -} - -export default moment.defineLocale('hr', { - months : { - format: 'siječnja_veljače_ožujka_travnja_svibnja_lipnja_srpnja_kolovoza_rujna_listopada_studenoga_prosinca'.split('_'), - standalone: 'siječanj_veljača_ožujak_travanj_svibanj_lipanj_srpanj_kolovoz_rujan_listopad_studeni_prosinac'.split('_') - }, - monthsShort : 'sij._velj._ožu._tra._svi._lip._srp._kol._ruj._lis._stu._pro.'.split('_'), - monthsParseExact: true, - 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('_'), - weekdaysParseExact : true, - longDateFormat : { - LT : 'H:mm', - LTS : 'H:mm:ss', - L : 'DD.MM.YYYY', - LL : 'D. MMMM YYYY', - LLL : 'D. MMMM YYYY H:mm', - LLLL : 'dddd, D. MMMM YYYY H:mm' - }, - 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 : translate, - mm : translate, - h : translate, - hh : translate, - d : 'dan', - dd : translate, - M : 'mjesec', - MM : translate, - y : 'godinu', - yy : translate - }, - dayOfMonthOrdinalParse: /\d{1,2}\./, - ordinal : '%d.', - week : { - dow : 1, // Monday is the first day of the week. - doy : 7 // The week that contains Jan 1st is the first week of the year. - } -}); diff --git a/admin/bower_components/moment/src/locale/hu.js b/admin/bower_components/moment/src/locale/hu.js deleted file mode 100644 index 6f63611..0000000 --- a/admin/bower_components/moment/src/locale/hu.js +++ /dev/null @@ -1,100 +0,0 @@ -//! moment.js locale configuration -//! locale : Hungarian [hu] -//! author : Adam Brunner : https://github.com/adambrunner - -import moment from '../moment'; - -var weekEndings = 'vasárnap hétfőn kedden szerdán csütörtökön pénteken szombaton'.split(' '); -function translate(number, withoutSuffix, key, isFuture) { - var num = number, - suffix; - switch (key) { - case 's': - return (isFuture || withoutSuffix) ? 'néhány másodperc' : 'néhány másodperce'; - case 'm': - return 'egy' + (isFuture || withoutSuffix ? ' perc' : ' perce'); - case 'mm': - return num + (isFuture || withoutSuffix ? ' perc' : ' perce'); - case 'h': - return 'egy' + (isFuture || withoutSuffix ? ' óra' : ' órája'); - case 'hh': - return num + (isFuture || withoutSuffix ? ' óra' : ' órája'); - case 'd': - return 'egy' + (isFuture || withoutSuffix ? ' nap' : ' napja'); - case 'dd': - return num + (isFuture || withoutSuffix ? ' nap' : ' napja'); - case 'M': - return 'egy' + (isFuture || withoutSuffix ? ' hónap' : ' hónapja'); - case 'MM': - return num + (isFuture || withoutSuffix ? ' hónap' : ' hónapja'); - case 'y': - return 'egy' + (isFuture || withoutSuffix ? ' év' : ' éve'); - case 'yy': - return num + (isFuture || withoutSuffix ? ' év' : ' éve'); - } - return ''; -} -function week(isFuture) { - return (isFuture ? '' : '[múlt] ') + '[' + weekEndings[this.day()] + '] LT[-kor]'; -} - -export default moment.defineLocale('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 : 'vas_hét_kedd_sze_csüt_pén_szo'.split('_'), - weekdaysMin : 'v_h_k_sze_cs_p_szo'.split('_'), - longDateFormat : { - LT : 'H:mm', - LTS : 'H:mm:ss', - L : 'YYYY.MM.DD.', - LL : 'YYYY. MMMM D.', - LLL : 'YYYY. MMMM D. H:mm', - LLLL : 'YYYY. MMMM D., dddd H:mm' - }, - meridiemParse: /de|du/i, - isPM: function (input) { - return input.charAt(1).toLowerCase() === 'u'; - }, - meridiem : function (hours, minutes, isLower) { - if (hours < 12) { - return isLower === true ? 'de' : 'DE'; - } else { - return isLower === true ? 'du' : 'DU'; - } - }, - calendar : { - sameDay : '[ma] LT[-kor]', - nextDay : '[holnap] LT[-kor]', - nextWeek : function () { - return week.call(this, true); - }, - lastDay : '[tegnap] LT[-kor]', - lastWeek : function () { - return week.call(this, false); - }, - sameElse : 'L' - }, - relativeTime : { - future : '%s múlva', - past : '%s', - s : translate, - m : translate, - mm : translate, - h : translate, - hh : translate, - d : translate, - dd : translate, - M : translate, - MM : translate, - y : translate, - yy : translate - }, - dayOfMonthOrdinalParse: /\d{1,2}\./, - ordinal : '%d.', - week : { - dow : 1, // Monday is the first day of the week. - doy : 4 // The week that contains Jan 4th is the first week of the year. - } -}); - diff --git a/admin/bower_components/moment/src/locale/hy-am.js b/admin/bower_components/moment/src/locale/hy-am.js deleted file mode 100644 index 8cd904a..0000000 --- a/admin/bower_components/moment/src/locale/hy-am.js +++ /dev/null @@ -1,86 +0,0 @@ -//! moment.js locale configuration -//! locale : Armenian [hy-am] -//! author : Armendarabyan : https://github.com/armendarabyan - -import moment from '../moment'; - -export default moment.defineLocale('hy-am', { - months : { - format: 'հունվարի_փետրվարի_մարտի_ապրիլի_մայիսի_հունիսի_հուլիսի_օգոստոսի_սեպտեմբերի_հոկտեմբերի_նոյեմբերի_դեկտեմբերի'.split('_'), - standalone: 'հունվար_փետրվար_մարտ_ապրիլ_մայիս_հունիս_հուլիս_օգոստոս_սեպտեմբեր_հոկտեմբեր_նոյեմբեր_դեկտեմբեր'.split('_') - }, - monthsShort : 'հնվ_փտր_մրտ_ապր_մյս_հնս_հլս_օգս_սպտ_հկտ_նմբ_դկտ'.split('_'), - weekdays : 'կիրակի_երկուշաբթի_երեքշաբթի_չորեքշաբթի_հինգշաբթի_ուրբաթ_շաբաթ'.split('_'), - weekdaysShort : 'կրկ_երկ_երք_չրք_հնգ_ուրբ_շբթ'.split('_'), - weekdaysMin : 'կրկ_երկ_երք_չրք_հնգ_ուրբ_շբթ'.split('_'), - longDateFormat : { - LT : 'HH:mm', - LTS : 'HH:mm:ss', - L : 'DD.MM.YYYY', - LL : 'D MMMM YYYY թ.', - LLL : 'D MMMM YYYY թ., HH:mm', - LLLL : 'dddd, D MMMM YYYY թ., HH:mm' - }, - calendar : { - sameDay: '[այսօր] LT', - nextDay: '[վաղը] LT', - lastDay: '[երեկ] LT', - nextWeek: function () { - return 'dddd [օրը ժամը] LT'; - }, - lastWeek: function () { - 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 տարի' - }, - meridiemParse: /գիշերվա|առավոտվա|ցերեկվա|երեկոյան/, - isPM: function (input) { - return /^(ցերեկվա|երեկոյան)$/.test(input); - }, - meridiem : function (hour) { - if (hour < 4) { - return 'գիշերվա'; - } else if (hour < 12) { - return 'առավոտվա'; - } else if (hour < 17) { - return 'ցերեկվա'; - } else { - return 'երեկոյան'; - } - }, - dayOfMonthOrdinalParse: /\d{1,2}|\d{1,2}-(ին|րդ)/, - ordinal: function (number, period) { - switch (period) { - case 'DDD': - case 'w': - case 'W': - case 'DDDo': - if (number === 1) { - return number + '-ին'; - } - return number + '-րդ'; - default: - return number; - } - }, - week : { - dow : 1, // Monday is the first day of the week. - doy : 7 // The week that contains Jan 1st is the first week of the year. - } -}); - diff --git a/admin/bower_components/moment/src/locale/id.js b/admin/bower_components/moment/src/locale/id.js deleted file mode 100644 index ab4204e..0000000 --- a/admin/bower_components/moment/src/locale/id.js +++ /dev/null @@ -1,74 +0,0 @@ -//! moment.js locale configuration -//! locale : Indonesian [id] -//! author : Mohammad Satrio Utomo : https://github.com/tyok -//! reference: http://id.wikisource.org/wiki/Pedoman_Umum_Ejaan_Bahasa_Indonesia_yang_Disempurnakan - -import moment from '../moment'; - -export default moment.defineLocale('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', - LTS : 'HH.mm.ss', - L : 'DD/MM/YYYY', - LL : 'D MMMM YYYY', - LLL : 'D MMMM YYYY [pukul] HH.mm', - LLLL : 'dddd, D MMMM YYYY [pukul] HH.mm' - }, - meridiemParse: /pagi|siang|sore|malam/, - meridiemHour : function (hour, meridiem) { - if (hour === 12) { - hour = 0; - } - if (meridiem === 'pagi') { - return hour; - } else if (meridiem === 'siang') { - return hour >= 11 ? hour : hour + 12; - } else if (meridiem === 'sore' || meridiem === 'malam') { - return hour + 12; - } - }, - meridiem : function (hours, minutes, isLower) { - if (hours < 11) { - return 'pagi'; - } else if (hours < 15) { - return 'siang'; - } else if (hours < 19) { - return 'sore'; - } else { - return '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, // Monday is the first day of the week. - doy : 7 // The week that contains Jan 1st is the first week of the year. - } -}); - diff --git a/admin/bower_components/moment/src/locale/is.js b/admin/bower_components/moment/src/locale/is.js deleted file mode 100644 index d1c90cd..0000000 --- a/admin/bower_components/moment/src/locale/is.js +++ /dev/null @@ -1,118 +0,0 @@ -//! moment.js locale configuration -//! locale : Icelandic [is] -//! author : Hinrik Örn Sigurðsson : https://github.com/hinrik - -import moment from '../moment'; - -function plural(n) { - if (n % 100 === 11) { - return true; - } else if (n % 10 === 1) { - return false; - } - return true; -} -function translate(number, withoutSuffix, key, isFuture) { - var result = number + ' '; - switch (key) { - case 's': - return withoutSuffix || isFuture ? 'nokkrar sekúndur' : 'nokkrum sekúndum'; - case 'm': - return withoutSuffix ? 'mínúta' : 'mínútu'; - case 'mm': - if (plural(number)) { - return result + (withoutSuffix || isFuture ? 'mínútur' : 'mínútum'); - } else if (withoutSuffix) { - return result + 'mínúta'; - } - return result + 'mínútu'; - case 'hh': - if (plural(number)) { - return result + (withoutSuffix || isFuture ? 'klukkustundir' : 'klukkustundum'); - } - return result + 'klukkustund'; - case 'd': - if (withoutSuffix) { - return 'dagur'; - } - return isFuture ? 'dag' : 'degi'; - case 'dd': - if (plural(number)) { - if (withoutSuffix) { - return result + 'dagar'; - } - return result + (isFuture ? 'daga' : 'dögum'); - } else if (withoutSuffix) { - return result + 'dagur'; - } - return result + (isFuture ? 'dag' : 'degi'); - case 'M': - if (withoutSuffix) { - return 'mánuður'; - } - return isFuture ? 'mánuð' : 'mánuði'; - case 'MM': - if (plural(number)) { - if (withoutSuffix) { - return result + 'mánuðir'; - } - return result + (isFuture ? 'mánuði' : 'mánuðum'); - } else if (withoutSuffix) { - return result + 'mánuður'; - } - return result + (isFuture ? 'mánuð' : 'mánuði'); - case 'y': - return withoutSuffix || isFuture ? 'ár' : 'ári'; - case 'yy': - if (plural(number)) { - return result + (withoutSuffix || isFuture ? 'ár' : 'árum'); - } - return result + (withoutSuffix || isFuture ? 'ár' : 'ári'); - } -} - -export default moment.defineLocale('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', - LTS : 'H:mm:ss', - L : 'DD.MM.YYYY', - LL : 'D. MMMM YYYY', - LLL : 'D. MMMM YYYY [kl.] H:mm', - LLLL : 'dddd, D. MMMM YYYY [kl.] H:mm' - }, - 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 : translate, - m : translate, - mm : translate, - h : 'klukkustund', - hh : translate, - d : translate, - dd : translate, - M : translate, - MM : translate, - y : translate, - yy : translate - }, - dayOfMonthOrdinalParse: /\d{1,2}\./, - ordinal : '%d.', - week : { - dow : 1, // Monday is the first day of the week. - doy : 4 // The week that contains Jan 4th is the first week of the year. - } -}); - diff --git a/admin/bower_components/moment/src/locale/it.js b/admin/bower_components/moment/src/locale/it.js deleted file mode 100644 index 1edd3c7..0000000 --- a/admin/bower_components/moment/src/locale/it.js +++ /dev/null @@ -1,61 +0,0 @@ -//! moment.js locale configuration -//! locale : Italian [it] -//! author : Lorenzo : https://github.com/aliem -//! author: Mattia Larentis: https://github.com/nostalgiaz - -import moment from '../moment'; - -export default moment.defineLocale('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 : 'do_lu_ma_me_gi_ve_sa'.split('_'), - longDateFormat : { - LT : 'HH:mm', - LTS : 'HH:mm:ss', - L : 'DD/MM/YYYY', - LL : 'D MMMM YYYY', - LLL : 'D MMMM YYYY HH:mm', - LLLL : 'dddd, D MMMM YYYY HH:mm' - }, - calendar : { - sameDay: '[Oggi alle] LT', - nextDay: '[Domani alle] LT', - nextWeek: 'dddd [alle] LT', - lastDay: '[Ieri alle] LT', - lastWeek: function () { - switch (this.day()) { - case 0: - return '[la scorsa] dddd [alle] LT'; - default: - return '[lo scorso] dddd [alle] LT'; - } - }, - sameElse: 'L' - }, - relativeTime : { - future : function (s) { - return ((/^[0-9].+$/).test(s) ? 'tra' : 'in') + ' ' + s; - }, - past : '%s fa', - s : 'alcuni 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' - }, - dayOfMonthOrdinalParse : /\d{1,2}º/, - ordinal: '%dº', - week : { - dow : 1, // Monday is the first day of the week. - doy : 4 // The week that contains Jan 4th is the first week of the year. - } -}); - diff --git a/admin/bower_components/moment/src/locale/ja.js b/admin/bower_components/moment/src/locale/ja.js deleted file mode 100644 index 5fffc83..0000000 --- a/admin/bower_components/moment/src/locale/ja.js +++ /dev/null @@ -1,71 +0,0 @@ -//! moment.js locale configuration -//! locale : Japanese [ja] -//! author : LI Long : https://github.com/baryon - -import moment from '../moment'; - -export default moment.defineLocale('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 : 'HH:mm', - LTS : 'HH:mm:ss', - L : 'YYYY/MM/DD', - LL : 'YYYY年M月D日', - LLL : 'YYYY年M月D日 HH:mm', - LLLL : 'YYYY年M月D日 HH:mm dddd', - l : 'YYYY/MM/DD', - ll : 'YYYY年M月D日', - lll : 'YYYY年M月D日 HH:mm', - llll : 'YYYY年M月D日 HH:mm dddd' - }, - meridiemParse: /午前|午後/i, - isPM : function (input) { - return input === '午後'; - }, - meridiem : function (hour, minute, isLower) { - if (hour < 12) { - return '午前'; - } else { - return '午後'; - } - }, - calendar : { - sameDay : '[今日] LT', - nextDay : '[明日] LT', - nextWeek : '[来週]dddd LT', - lastDay : '[昨日] LT', - lastWeek : '[前週]dddd LT', - sameElse : 'L' - }, - dayOfMonthOrdinalParse : /\d{1,2}日/, - ordinal : function (number, period) { - switch (period) { - case 'd': - case 'D': - case 'DDD': - return number + '日'; - default: - return number; - } - }, - 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年' - } -}); - diff --git a/admin/bower_components/moment/src/locale/jv.js b/admin/bower_components/moment/src/locale/jv.js deleted file mode 100644 index e5e25f9..0000000 --- a/admin/bower_components/moment/src/locale/jv.js +++ /dev/null @@ -1,73 +0,0 @@ -//! moment.js locale configuration -//! locale : Javanese [jv] -//! author : Rony Lantip : https://github.com/lantip -//! reference: http://jv.wikipedia.org/wiki/Basa_Jawa - -import moment from '../moment'; - -export default moment.defineLocale('jv', { - months : 'Januari_Februari_Maret_April_Mei_Juni_Juli_Agustus_September_Oktober_Nopember_Desember'.split('_'), - monthsShort : 'Jan_Feb_Mar_Apr_Mei_Jun_Jul_Ags_Sep_Okt_Nop_Des'.split('_'), - weekdays : 'Minggu_Senen_Seloso_Rebu_Kemis_Jemuwah_Septu'.split('_'), - weekdaysShort : 'Min_Sen_Sel_Reb_Kem_Jem_Sep'.split('_'), - weekdaysMin : 'Mg_Sn_Sl_Rb_Km_Jm_Sp'.split('_'), - longDateFormat : { - LT : 'HH.mm', - LTS : 'HH.mm.ss', - L : 'DD/MM/YYYY', - LL : 'D MMMM YYYY', - LLL : 'D MMMM YYYY [pukul] HH.mm', - LLLL : 'dddd, D MMMM YYYY [pukul] HH.mm' - }, - meridiemParse: /enjing|siyang|sonten|ndalu/, - meridiemHour : function (hour, meridiem) { - if (hour === 12) { - hour = 0; - } - if (meridiem === 'enjing') { - return hour; - } else if (meridiem === 'siyang') { - return hour >= 11 ? hour : hour + 12; - } else if (meridiem === 'sonten' || meridiem === 'ndalu') { - return hour + 12; - } - }, - meridiem : function (hours, minutes, isLower) { - if (hours < 11) { - return 'enjing'; - } else if (hours < 15) { - return 'siyang'; - } else if (hours < 19) { - return 'sonten'; - } else { - return 'ndalu'; - } - }, - calendar : { - sameDay : '[Dinten puniko pukul] LT', - nextDay : '[Mbenjang pukul] LT', - nextWeek : 'dddd [pukul] LT', - lastDay : '[Kala wingi pukul] LT', - lastWeek : 'dddd [kepengker pukul] LT', - sameElse : 'L' - }, - relativeTime : { - future : 'wonten ing %s', - past : '%s ingkang kepengker', - s : 'sawetawis detik', - m : 'setunggal menit', - mm : '%d menit', - h : 'setunggal jam', - hh : '%d jam', - d : 'sedinten', - dd : '%d dinten', - M : 'sewulan', - MM : '%d wulan', - y : 'setaun', - yy : '%d taun' - }, - week : { - dow : 1, // Monday is the first day of the week. - doy : 7 // The week that contains Jan 1st is the first week of the year. - } -}); diff --git a/admin/bower_components/moment/src/locale/ka.js b/admin/bower_components/moment/src/locale/ka.js deleted file mode 100644 index 6bae6a0..0000000 --- a/admin/bower_components/moment/src/locale/ka.js +++ /dev/null @@ -1,80 +0,0 @@ -//! moment.js locale configuration -//! locale : Georgian [ka] -//! author : Irakli Janiashvili : https://github.com/irakli-janiashvili - -import moment from '../moment'; - -export default moment.defineLocale('ka', { - months : { - standalone: 'იანვარი_თებერვალი_მარტი_აპრილი_მაისი_ივნისი_ივლისი_აგვისტო_სექტემბერი_ოქტომბერი_ნოემბერი_დეკემბერი'.split('_'), - format: 'იანვარს_თებერვალს_მარტს_აპრილის_მაისს_ივნისს_ივლისს_აგვისტს_სექტემბერს_ოქტომბერს_ნოემბერს_დეკემბერს'.split('_') - }, - monthsShort : 'იან_თებ_მარ_აპრ_მაი_ივნ_ივლ_აგვ_სექ_ოქტ_ნოე_დეკ'.split('_'), - weekdays : { - standalone: 'კვირა_ორშაბათი_სამშაბათი_ოთხშაბათი_ხუთშაბათი_პარასკევი_შაბათი'.split('_'), - format: 'კვირას_ორშაბათს_სამშაბათს_ოთხშაბათს_ხუთშაბათს_პარასკევს_შაბათს'.split('_'), - isFormat: /(წინა|შემდეგ)/ - }, - weekdaysShort : 'კვი_ორშ_სამ_ოთხ_ხუთ_პარ_შაბ'.split('_'), - weekdaysMin : 'კვ_ორ_სა_ოთ_ხუ_პა_შა'.split('_'), - longDateFormat : { - LT : 'h:mm A', - LTS : 'h:mm:ss A', - L : 'DD/MM/YYYY', - LL : 'D MMMM YYYY', - LLL : 'D MMMM YYYY h:mm A', - LLLL : 'dddd, D MMMM YYYY h:mm A' - }, - calendar : { - sameDay : '[დღეს] LT[-ზე]', - nextDay : '[ხვალ] LT[-ზე]', - lastDay : '[გუშინ] LT[-ზე]', - nextWeek : '[შემდეგ] dddd LT[-ზე]', - lastWeek : '[წინა] dddd LT-ზე', - sameElse : 'L' - }, - relativeTime : { - future : function (s) { - return (/(წამი|წუთი|საათი|წელი)/).test(s) ? - s.replace(/ი$/, 'ში') : - s + 'ში'; - }, - past : function (s) { - if ((/(წამი|წუთი|საათი|დღე|თვე)/).test(s)) { - return s.replace(/(ი|ე)$/, 'ის უკან'); - } - if ((/წელი/).test(s)) { - return s.replace(/წელი$/, 'წლის უკან'); - } - }, - s : 'რამდენიმე წამი', - m : 'წუთი', - mm : '%d წუთი', - h : 'საათი', - hh : '%d საათი', - d : 'დღე', - dd : '%d დღე', - M : 'თვე', - MM : '%d თვე', - y : 'წელი', - yy : '%d წელი' - }, - dayOfMonthOrdinalParse: /0|1-ლი|მე-\d{1,2}|\d{1,2}-ე/, - ordinal : function (number) { - if (number === 0) { - return number; - } - if (number === 1) { - return number + '-ლი'; - } - if ((number < 20) || (number <= 100 && (number % 20 === 0)) || (number % 100 === 0)) { - return 'მე-' + number; - } - return number + '-ე'; - }, - week : { - dow : 1, - doy : 7 - } -}); - diff --git a/admin/bower_components/moment/src/locale/kk.js b/admin/bower_components/moment/src/locale/kk.js deleted file mode 100644 index 95b81fb..0000000 --- a/admin/bower_components/moment/src/locale/kk.js +++ /dev/null @@ -1,77 +0,0 @@ -//! moment.js locale configuration -//! locale : Kazakh [kk] -//! authors : Nurlan Rakhimzhanov : https://github.com/nurlan - -import moment from '../moment'; - -var suffixes = { - 0: '-ші', - 1: '-ші', - 2: '-ші', - 3: '-ші', - 4: '-ші', - 5: '-ші', - 6: '-шы', - 7: '-ші', - 8: '-ші', - 9: '-шы', - 10: '-шы', - 20: '-шы', - 30: '-шы', - 40: '-шы', - 50: '-ші', - 60: '-шы', - 70: '-ші', - 80: '-ші', - 90: '-шы', - 100: '-ші' -}; - -export default moment.defineLocale('kk', { - months : 'қаңтар_ақпан_наурыз_сәуір_мамыр_маусым_шілде_тамыз_қыркүйек_қазан_қараша_желтоқсан'.split('_'), - monthsShort : 'қаң_ақп_нау_сәу_мам_мау_шіл_там_қыр_қаз_қар_жел'.split('_'), - weekdays : 'жексенбі_дүйсенбі_сейсенбі_сәрсенбі_бейсенбі_жұма_сенбі'.split('_'), - weekdaysShort : 'жек_дүй_сей_сәр_бей_жұм_сен'.split('_'), - weekdaysMin : 'жк_дй_сй_ср_бй_жм_сн'.split('_'), - longDateFormat : { - LT : 'HH:mm', - LTS : 'HH:mm:ss', - L : 'DD.MM.YYYY', - LL : 'D MMMM YYYY', - LLL : 'D MMMM YYYY HH:mm', - LLLL : 'dddd, D MMMM YYYY HH:mm' - }, - 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 жыл' - }, - dayOfMonthOrdinalParse: /\d{1,2}-(ші|шы)/, - ordinal : function (number) { - var a = number % 10, - b = number >= 100 ? 100 : null; - return number + (suffixes[number] || suffixes[a] || suffixes[b]); - }, - week : { - dow : 1, // Monday is the first day of the week. - doy : 7 // The week that contains Jan 1st is the first week of the year. - } -}); diff --git a/admin/bower_components/moment/src/locale/km.js b/admin/bower_components/moment/src/locale/km.js deleted file mode 100644 index 8ae00be..0000000 --- a/admin/bower_components/moment/src/locale/km.js +++ /dev/null @@ -1,49 +0,0 @@ -//! moment.js locale configuration -//! locale : Cambodian [km] -//! author : Kruy Vanna : https://github.com/kruyvanna - -import moment from '../moment'; - -export default moment.defineLocale('km', { - months: 'មករា_កុម្ភៈ_មីនា_មេសា_ឧសភា_មិថុនា_កក្កដា_សីហា_កញ្ញា_តុលា_វិច្ឆិកា_ធ្នូ'.split('_'), - monthsShort: 'មករា_កុម្ភៈ_មីនា_មេសា_ឧសភា_មិថុនា_កក្កដា_សីហា_កញ្ញា_តុលា_វិច្ឆិកា_ធ្នូ'.split('_'), - weekdays: 'អាទិត្យ_ច័ន្ទ_អង្គារ_ពុធ_ព្រហស្បតិ៍_សុក្រ_សៅរ៍'.split('_'), - weekdaysShort: 'អាទិត្យ_ច័ន្ទ_អង្គារ_ពុធ_ព្រហស្បតិ៍_សុក្រ_សៅរ៍'.split('_'), - weekdaysMin: 'អាទិត្យ_ច័ន្ទ_អង្គារ_ពុធ_ព្រហស្បតិ៍_សុក្រ_សៅរ៍'.split('_'), - longDateFormat: { - LT: 'HH:mm', - LTS : 'HH:mm:ss', - L: 'DD/MM/YYYY', - LL: 'D MMMM YYYY', - LLL: 'D MMMM YYYY HH:mm', - LLLL: 'dddd, D MMMM YYYY HH:mm' - }, - 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, // Monday is the first day of the week. - doy: 4 // The week that contains Jan 4th is the first week of the year. - } -}); - diff --git a/admin/bower_components/moment/src/locale/kn.js b/admin/bower_components/moment/src/locale/kn.js deleted file mode 100644 index b3bd49b..0000000 --- a/admin/bower_components/moment/src/locale/kn.js +++ /dev/null @@ -1,116 +0,0 @@ -//! moment.js locale configuration -//! locale : Kannada [kn] -//! author : Rajeev Naik : https://github.com/rajeevnaikte - -import moment from '../moment'; - -var symbolMap = { - '1': '೧', - '2': '೨', - '3': '೩', - '4': '೪', - '5': '೫', - '6': '೬', - '7': '೭', - '8': '೮', - '9': '೯', - '0': '೦' -}, -numberMap = { - '೧': '1', - '೨': '2', - '೩': '3', - '೪': '4', - '೫': '5', - '೬': '6', - '೭': '7', - '೮': '8', - '೯': '9', - '೦': '0' -}; - -export default moment.defineLocale('kn', { - months : 'ಜನವರಿ_ಫೆಬ್ರವರಿ_ಮಾರ್ಚ್_ಏಪ್ರಿಲ್_ಮೇ_ಜೂನ್_ಜುಲೈ_ಆಗಸ್ಟ್_ಸೆಪ್ಟೆಂಬರ್_ಅಕ್ಟೋಬರ್_ನವೆಂಬರ್_ಡಿಸೆಂಬರ್'.split('_'), - monthsShort : 'ಜನ_ಫೆಬ್ರ_ಮಾರ್ಚ್_ಏಪ್ರಿಲ್_ಮೇ_ಜೂನ್_ಜುಲೈ_ಆಗಸ್ಟ್_ಸೆಪ್ಟೆಂಬ_ಅಕ್ಟೋಬ_ನವೆಂಬ_ಡಿಸೆಂಬ'.split('_'), - monthsParseExact: true, - weekdays : 'ಭಾನುವಾರ_ಸೋಮವಾರ_ಮಂಗಳವಾರ_ಬುಧವಾರ_ಗುರುವಾರ_ಶುಕ್ರವಾರ_ಶನಿವಾರ'.split('_'), - weekdaysShort : 'ಭಾನು_ಸೋಮ_ಮಂಗಳ_ಬುಧ_ಗುರು_ಶುಕ್ರ_ಶನಿ'.split('_'), - weekdaysMin : 'ಭಾ_ಸೋ_ಮಂ_ಬು_ಗು_ಶು_ಶ'.split('_'), - longDateFormat : { - LT : 'A h:mm', - LTS : 'A h:mm:ss', - L : 'DD/MM/YYYY', - LL : 'D MMMM YYYY', - LLL : 'D MMMM YYYY, A h:mm', - LLLL : 'dddd, D MMMM YYYY, A h:mm' - }, - 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 (string) { - return string.replace(/[೧೨೩೪೫೬೭೮೯೦]/g, function (match) { - return numberMap[match]; - }); - }, - postformat: function (string) { - return string.replace(/\d/g, function (match) { - return symbolMap[match]; - }); - }, - meridiemParse: /ರಾತ್ರಿ|ಬೆಳಿಗ್ಗೆ|ಮಧ್ಯಾಹ್ನ|ಸಂಜೆ/, - meridiemHour : function (hour, meridiem) { - if (hour === 12) { - hour = 0; - } - if (meridiem === 'ರಾತ್ರಿ') { - return hour < 4 ? hour : hour + 12; - } else if (meridiem === 'ಬೆಳಿಗ್ಗೆ') { - return hour; - } else if (meridiem === 'ಮಧ್ಯಾಹ್ನ') { - return hour >= 10 ? hour : hour + 12; - } else if (meridiem === 'ಸಂಜೆ') { - return hour + 12; - } - }, - meridiem : function (hour, minute, isLower) { - if (hour < 4) { - return 'ರಾತ್ರಿ'; - } else if (hour < 10) { - return 'ಬೆಳಿಗ್ಗೆ'; - } else if (hour < 17) { - return 'ಮಧ್ಯಾಹ್ನ'; - } else if (hour < 20) { - return 'ಸಂಜೆ'; - } else { - return 'ರಾತ್ರಿ'; - } - }, - dayOfMonthOrdinalParse: /\d{1,2}(ನೇ)/, - ordinal : function (number) { - return number + 'ನೇ'; - }, - week : { - dow : 0, // Sunday is the first day of the week. - doy : 6 // The week that contains Jan 1st is the first week of the year. - } -}); diff --git a/admin/bower_components/moment/src/locale/ko.js b/admin/bower_components/moment/src/locale/ko.js deleted file mode 100644 index 7018e73..0000000 --- a/admin/bower_components/moment/src/locale/ko.js +++ /dev/null @@ -1,60 +0,0 @@ -//! moment.js locale configuration -//! locale : Korean [ko] -//! author : Kyungwook, Park : https://github.com/kyungw00k -//! author : Jeeeyul Lee <jeeeyul@gmail.com> - -import moment from '../moment'; - -export default moment.defineLocale('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', - LTS : 'A h:mm:ss', - L : 'YYYY.MM.DD', - LL : 'YYYY년 MMMM D일', - LLL : 'YYYY년 MMMM D일 A h:mm', - LLLL : 'YYYY년 MMMM D일 dddd A h:mm', - l : 'YYYY.MM.DD', - ll : 'YYYY년 MMMM D일', - lll : 'YYYY년 MMMM D일 A h:mm', - llll : 'YYYY년 MMMM D일 dddd A h:mm' - }, - calendar : { - sameDay : '오늘 LT', - nextDay : '내일 LT', - nextWeek : 'dddd LT', - lastDay : '어제 LT', - lastWeek : '지난주 dddd LT', - sameElse : 'L' - }, - relativeTime : { - future : '%s 후', - past : '%s 전', - s : '몇 초', - ss : '%d초', - m : '1분', - mm : '%d분', - h : '한 시간', - hh : '%d시간', - d : '하루', - dd : '%d일', - M : '한 달', - MM : '%d달', - y : '일 년', - yy : '%d년' - }, - dayOfMonthOrdinalParse : /\d{1,2}일/, - ordinal : '%d일', - meridiemParse : /오전|오후/, - isPM : function (token) { - return token === '오후'; - }, - meridiem : function (hour, minute, isUpper) { - return hour < 12 ? '오전' : '오후'; - } -}); - diff --git a/admin/bower_components/moment/src/locale/ky.js b/admin/bower_components/moment/src/locale/ky.js deleted file mode 100644 index 3aeaa24..0000000 --- a/admin/bower_components/moment/src/locale/ky.js +++ /dev/null @@ -1,78 +0,0 @@ -//! moment.js locale configuration -//! locale : Kyrgyz [ky] -//! author : Chyngyz Arystan uulu : https://github.com/chyngyz - - -import moment from '../moment'; - -var suffixes = { - 0: '-чү', - 1: '-чи', - 2: '-чи', - 3: '-чү', - 4: '-чү', - 5: '-чи', - 6: '-чы', - 7: '-чи', - 8: '-чи', - 9: '-чу', - 10: '-чу', - 20: '-чы', - 30: '-чу', - 40: '-чы', - 50: '-чү', - 60: '-чы', - 70: '-чи', - 80: '-чи', - 90: '-чу', - 100: '-чү' -}; - -export default moment.defineLocale('ky', { - months : 'январь_февраль_март_апрель_май_июнь_июль_август_сентябрь_октябрь_ноябрь_декабрь'.split('_'), - monthsShort : 'янв_фев_март_апр_май_июнь_июль_авг_сен_окт_ноя_дек'.split('_'), - weekdays : 'Жекшемби_Дүйшөмбү_Шейшемби_Шаршемби_Бейшемби_Жума_Ишемби'.split('_'), - weekdaysShort : 'Жек_Дүй_Шей_Шар_Бей_Жум_Ише'.split('_'), - weekdaysMin : 'Жк_Дй_Шй_Шр_Бй_Жм_Иш'.split('_'), - longDateFormat : { - LT : 'HH:mm', - LTS : 'HH:mm:ss', - L : 'DD.MM.YYYY', - LL : 'D MMMM YYYY', - LLL : 'D MMMM YYYY HH:mm', - LLLL : 'dddd, D MMMM YYYY HH:mm' - }, - 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 жыл' - }, - dayOfMonthOrdinalParse: /\d{1,2}-(чи|чы|чү|чу)/, - ordinal : function (number) { - var a = number % 10, - b = number >= 100 ? 100 : null; - return number + (suffixes[number] || suffixes[a] || suffixes[b]); - }, - week : { - dow : 1, // Monday is the first day of the week. - doy : 7 // The week that contains Jan 1st is the first week of the year. - } -}); diff --git a/admin/bower_components/moment/src/locale/lb.js b/admin/bower_components/moment/src/locale/lb.js deleted file mode 100644 index adaf04b..0000000 --- a/admin/bower_components/moment/src/locale/lb.js +++ /dev/null @@ -1,128 +0,0 @@ -//! moment.js locale configuration -//! locale : Luxembourgish [lb] -//! author : mweimerskirch : https://github.com/mweimerskirch -//! author : David Raison : https://github.com/kwisatz - -import moment from '../moment'; - -function processRelativeTime(number, withoutSuffix, key, isFuture) { - var format = { - 'm': ['eng Minutt', 'enger Minutt'], - 'h': ['eng Stonn', 'enger Stonn'], - 'd': ['een Dag', 'engem Dag'], - 'M': ['ee Mount', 'engem Mount'], - 'y': ['ee Joer', 'engem Joer'] - }; - return withoutSuffix ? format[key][0] : format[key][1]; -} -function processFutureTime(string) { - var number = string.substr(0, string.indexOf(' ')); - if (eifelerRegelAppliesToNumber(number)) { - return 'a ' + string; - } - return 'an ' + string; -} -function processPastTime(string) { - var number = string.substr(0, string.indexOf(' ')); - if (eifelerRegelAppliesToNumber(number)) { - return 'viru ' + string; - } - return 'virun ' + string; -} -/** - * Returns true if the word before the given number loses the '-n' ending. - * e.g. 'an 10 Deeg' but 'a 5 Deeg' - * - * @param number {integer} - * @returns {boolean} - */ -function eifelerRegelAppliesToNumber(number) { - number = parseInt(number, 10); - if (isNaN(number)) { - return false; - } - if (number < 0) { - // Negative Number --> always true - return true; - } else if (number < 10) { - // Only 1 digit - if (4 <= number && number <= 7) { - return true; - } - return false; - } else if (number < 100) { - // 2 digits - var lastDigit = number % 10, firstDigit = number / 10; - if (lastDigit === 0) { - return eifelerRegelAppliesToNumber(firstDigit); - } - return eifelerRegelAppliesToNumber(lastDigit); - } else if (number < 10000) { - // 3 or 4 digits --> recursively check first digit - while (number >= 10) { - number = number / 10; - } - return eifelerRegelAppliesToNumber(number); - } else { - // Anything larger than 4 digits: recursively check first n-3 digits - number = number / 1000; - return eifelerRegelAppliesToNumber(number); - } -} - -export default moment.defineLocale('lb', { - months: 'Januar_Februar_Mäerz_Abrëll_Mee_Juni_Juli_August_September_Oktober_November_Dezember'.split('_'), - monthsShort: 'Jan._Febr._Mrz._Abr._Mee_Jun._Jul._Aug._Sept._Okt._Nov._Dez.'.split('_'), - monthsParseExact : true, - weekdays: 'Sonndeg_Méindeg_Dënschdeg_Mëttwoch_Donneschdeg_Freideg_Samschdeg'.split('_'), - weekdaysShort: 'So._Mé._Dë._Më._Do._Fr._Sa.'.split('_'), - weekdaysMin: 'So_Mé_Dë_Më_Do_Fr_Sa'.split('_'), - weekdaysParseExact : true, - longDateFormat: { - LT: 'H:mm [Auer]', - LTS: 'H:mm:ss [Auer]', - L: 'DD.MM.YYYY', - LL: 'D. MMMM YYYY', - LLL: 'D. MMMM YYYY H:mm [Auer]', - LLLL: 'dddd, D. MMMM YYYY H:mm [Auer]' - }, - calendar: { - sameDay: '[Haut um] LT', - sameElse: 'L', - nextDay: '[Muer um] LT', - nextWeek: 'dddd [um] LT', - lastDay: '[Gëschter um] LT', - lastWeek: function () { - // Different date string for 'Dënschdeg' (Tuesday) and 'Donneschdeg' (Thursday) due to phonological rule - switch (this.day()) { - case 2: - case 4: - return '[Leschten] dddd [um] LT'; - default: - return '[Leschte] dddd [um] LT'; - } - } - }, - relativeTime : { - future : processFutureTime, - past : processPastTime, - s : 'e puer Sekonnen', - m : processRelativeTime, - mm : '%d Minutten', - h : processRelativeTime, - hh : '%d Stonnen', - d : processRelativeTime, - dd : '%d Deeg', - M : processRelativeTime, - MM : '%d Méint', - y : processRelativeTime, - yy : '%d Joer' - }, - dayOfMonthOrdinalParse: /\d{1,2}\./, - ordinal: '%d.', - week: { - dow: 1, // Monday is the first day of the week. - doy: 4 // The week that contains Jan 4th is the first week of the year. - } -}); - diff --git a/admin/bower_components/moment/src/locale/lo.js b/admin/bower_components/moment/src/locale/lo.js deleted file mode 100644 index c049693..0000000 --- a/admin/bower_components/moment/src/locale/lo.js +++ /dev/null @@ -1,61 +0,0 @@ -//! moment.js locale configuration -//! locale : Lao [lo] -//! author : Ryan Hart : https://github.com/ryanhart2 - -import moment from '../moment'; - -export default moment.defineLocale('lo', { - months : 'ມັງກອນ_ກຸມພາ_ມີນາ_ເມສາ_ພຶດສະພາ_ມິຖຸນາ_ກໍລະກົດ_ສິງຫາ_ກັນຍາ_ຕຸລາ_ພະຈິກ_ທັນວາ'.split('_'), - monthsShort : 'ມັງກອນ_ກຸມພາ_ມີນາ_ເມສາ_ພຶດສະພາ_ມິຖຸນາ_ກໍລະກົດ_ສິງຫາ_ກັນຍາ_ຕຸລາ_ພະຈິກ_ທັນວາ'.split('_'), - weekdays : 'ອາທິດ_ຈັນ_ອັງຄານ_ພຸດ_ພະຫັດ_ສຸກ_ເສົາ'.split('_'), - weekdaysShort : 'ທິດ_ຈັນ_ອັງຄານ_ພຸດ_ພະຫັດ_ສຸກ_ເສົາ'.split('_'), - weekdaysMin : 'ທ_ຈ_ອຄ_ພ_ພຫ_ສກ_ສ'.split('_'), - weekdaysParseExact : true, - longDateFormat : { - LT : 'HH:mm', - LTS : 'HH:mm:ss', - L : 'DD/MM/YYYY', - LL : 'D MMMM YYYY', - LLL : 'D MMMM YYYY HH:mm', - LLLL : 'ວັນdddd D MMMM YYYY HH:mm' - }, - meridiemParse: /ຕອນເຊົ້າ|ຕອນແລງ/, - isPM: function (input) { - return input === 'ຕອນແລງ'; - }, - meridiem : function (hour, minute, isLower) { - if (hour < 12) { - return 'ຕອນເຊົ້າ'; - } else { - return 'ຕອນແລງ'; - } - }, - 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 ປີ' - }, - dayOfMonthOrdinalParse: /(ທີ່)\d{1,2}/, - ordinal : function (number) { - return 'ທີ່' + number; - } -}); - diff --git a/admin/bower_components/moment/src/locale/lt.js b/admin/bower_components/moment/src/locale/lt.js deleted file mode 100644 index 1043cd3..0000000 --- a/admin/bower_components/moment/src/locale/lt.js +++ /dev/null @@ -1,108 +0,0 @@ -//! moment.js locale configuration -//! locale : Lithuanian [lt] -//! author : Mindaugas Mozūras : https://github.com/mmozuras - -import moment from '../moment'; - -var units = { - 'm' : 'minutė_minutės_minutę', - 'mm': 'minutės_minučių_minutes', - 'h' : 'valanda_valandos_valandą', - 'hh': 'valandos_valandų_valandas', - 'd' : 'diena_dienos_dieną', - 'dd': 'dienos_dienų_dienas', - 'M' : 'mėnuo_mėnesio_mėnesį', - 'MM': 'mėnesiai_mėnesių_mėnesius', - 'y' : 'metai_metų_metus', - 'yy': 'metai_metų_metus' -}; -function translateSeconds(number, withoutSuffix, key, isFuture) { - if (withoutSuffix) { - return 'kelios sekundės'; - } else { - return isFuture ? 'kelių sekundžių' : 'kelias sekundes'; - } -} -function translateSingular(number, withoutSuffix, key, isFuture) { - return withoutSuffix ? forms(key)[0] : (isFuture ? forms(key)[1] : forms(key)[2]); -} -function special(number) { - return number % 10 === 0 || (number > 10 && number < 20); -} -function forms(key) { - return units[key].split('_'); -} -function translate(number, withoutSuffix, key, isFuture) { - var result = number + ' '; - if (number === 1) { - return result + translateSingular(number, withoutSuffix, key[0], isFuture); - } else if (withoutSuffix) { - return result + (special(number) ? forms(key)[1] : forms(key)[0]); - } else { - if (isFuture) { - return result + forms(key)[1]; - } else { - return result + (special(number) ? forms(key)[1] : forms(key)[2]); - } - } -} -export default moment.defineLocale('lt', { - months : { - format: 'sausio_vasario_kovo_balandžio_gegužės_birželio_liepos_rugpjūčio_rugsėjo_spalio_lapkričio_gruodžio'.split('_'), - standalone: 'sausis_vasaris_kovas_balandis_gegužė_birželis_liepa_rugpjūtis_rugsėjis_spalis_lapkritis_gruodis'.split('_'), - isFormat: /D[oD]?(\[[^\[\]]*\]|\s)+MMMM?|MMMM?(\[[^\[\]]*\]|\s)+D[oD]?/ - }, - monthsShort : 'sau_vas_kov_bal_geg_bir_lie_rgp_rgs_spa_lap_grd'.split('_'), - weekdays : { - format: 'sekmadienį_pirmadienį_antradienį_trečiadienį_ketvirtadienį_penktadienį_šeštadienį'.split('_'), - standalone: 'sekmadienis_pirmadienis_antradienis_trečiadienis_ketvirtadienis_penktadienis_šeštadienis'.split('_'), - isFormat: /dddd HH:mm/ - }, - weekdaysShort : 'Sek_Pir_Ant_Tre_Ket_Pen_Šeš'.split('_'), - weekdaysMin : 'S_P_A_T_K_Pn_Š'.split('_'), - weekdaysParseExact : true, - longDateFormat : { - LT : 'HH:mm', - LTS : 'HH:mm:ss', - L : 'YYYY-MM-DD', - LL : 'YYYY [m.] MMMM D [d.]', - LLL : 'YYYY [m.] MMMM D [d.], HH:mm [val.]', - LLLL : 'YYYY [m.] MMMM D [d.], dddd, HH:mm [val.]', - l : 'YYYY-MM-DD', - ll : 'YYYY [m.] MMMM D [d.]', - lll : 'YYYY [m.] MMMM D [d.], HH:mm [val.]', - llll : 'YYYY [m.] MMMM D [d.], ddd, HH:mm [val.]' - }, - calendar : { - sameDay : '[Šiandien] LT', - nextDay : '[Rytoj] LT', - nextWeek : 'dddd LT', - lastDay : '[Vakar] LT', - lastWeek : '[Praėjusį] dddd LT', - sameElse : 'L' - }, - relativeTime : { - future : 'po %s', - past : 'prieš %s', - s : translateSeconds, - m : translateSingular, - mm : translate, - h : translateSingular, - hh : translate, - d : translateSingular, - dd : translate, - M : translateSingular, - MM : translate, - y : translateSingular, - yy : translate - }, - dayOfMonthOrdinalParse: /\d{1,2}-oji/, - ordinal : function (number) { - return number + '-oji'; - }, - week : { - dow : 1, // Monday is the first day of the week. - doy : 4 // The week that contains Jan 4th is the first week of the year. - } -}); - diff --git a/admin/bower_components/moment/src/locale/lv.js b/admin/bower_components/moment/src/locale/lv.js deleted file mode 100644 index 4a07b2c..0000000 --- a/admin/bower_components/moment/src/locale/lv.js +++ /dev/null @@ -1,88 +0,0 @@ -//! moment.js locale configuration -//! locale : Latvian [lv] -//! author : Kristaps Karlsons : https://github.com/skakri -//! author : Jānis Elmeris : https://github.com/JanisE - -import moment from '../moment'; - -var units = { - 'm': 'minūtes_minūtēm_minūte_minūtes'.split('_'), - 'mm': 'minūtes_minūtēm_minūte_minūtes'.split('_'), - 'h': 'stundas_stundām_stunda_stundas'.split('_'), - 'hh': 'stundas_stundām_stunda_stundas'.split('_'), - 'd': 'dienas_dienām_diena_dienas'.split('_'), - 'dd': 'dienas_dienām_diena_dienas'.split('_'), - 'M': 'mēneša_mēnešiem_mēnesis_mēneši'.split('_'), - 'MM': 'mēneša_mēnešiem_mēnesis_mēneši'.split('_'), - 'y': 'gada_gadiem_gads_gadi'.split('_'), - 'yy': 'gada_gadiem_gads_gadi'.split('_') -}; -/** - * @param withoutSuffix boolean true = a length of time; false = before/after a period of time. - */ -function format(forms, number, withoutSuffix) { - if (withoutSuffix) { - // E.g. "21 minūte", "3 minūtes". - return number % 10 === 1 && number % 100 !== 11 ? forms[2] : forms[3]; - } else { - // E.g. "21 minūtes" as in "pēc 21 minūtes". - // E.g. "3 minūtēm" as in "pēc 3 minūtēm". - return number % 10 === 1 && number % 100 !== 11 ? forms[0] : forms[1]; - } -} -function relativeTimeWithPlural(number, withoutSuffix, key) { - return number + ' ' + format(units[key], number, withoutSuffix); -} -function relativeTimeWithSingular(number, withoutSuffix, key) { - return format(units[key], number, withoutSuffix); -} -function relativeSeconds(number, withoutSuffix) { - return withoutSuffix ? 'dažas sekundes' : 'dažām sekundēm'; -} - -export default moment.defineLocale('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('_'), - weekdaysParseExact : true, - longDateFormat : { - LT : 'HH:mm', - LTS : 'HH:mm:ss', - L : 'DD.MM.YYYY.', - LL : 'YYYY. [gada] D. MMMM', - LLL : 'YYYY. [gada] D. MMMM, HH:mm', - LLLL : 'YYYY. [gada] D. MMMM, dddd, HH:mm' - }, - 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 : 'pēc %s', - past : 'pirms %s', - s : relativeSeconds, - m : relativeTimeWithSingular, - mm : relativeTimeWithPlural, - h : relativeTimeWithSingular, - hh : relativeTimeWithPlural, - d : relativeTimeWithSingular, - dd : relativeTimeWithPlural, - M : relativeTimeWithSingular, - MM : relativeTimeWithPlural, - y : relativeTimeWithSingular, - yy : relativeTimeWithPlural - }, - dayOfMonthOrdinalParse: /\d{1,2}\./, - ordinal : '%d.', - week : { - dow : 1, // Monday is the first day of the week. - doy : 4 // The week that contains Jan 4th is the first week of the year. - } -}); - diff --git a/admin/bower_components/moment/src/locale/me.js b/admin/bower_components/moment/src/locale/me.js deleted file mode 100644 index 77d32b5..0000000 --- a/admin/bower_components/moment/src/locale/me.js +++ /dev/null @@ -1,101 +0,0 @@ -//! moment.js locale configuration -//! locale : Montenegrin [me] -//! author : Miodrag Nikač <miodrag@restartit.me> : https://github.com/miodragnikac - -import moment from '../moment'; - -var translator = { - words: { //Different grammatical cases - m: ['jedan minut', 'jednog minuta'], - mm: ['minut', 'minuta', 'minuta'], - h: ['jedan sat', 'jednog sata'], - hh: ['sat', 'sata', 'sati'], - dd: ['dan', 'dana', 'dana'], - MM: ['mjesec', 'mjeseca', 'mjeseci'], - yy: ['godina', 'godine', 'godina'] - }, - correctGrammaticalCase: function (number, wordKey) { - return number === 1 ? wordKey[0] : (number >= 2 && number <= 4 ? wordKey[1] : wordKey[2]); - }, - translate: function (number, withoutSuffix, key) { - var wordKey = translator.words[key]; - if (key.length === 1) { - return withoutSuffix ? wordKey[0] : wordKey[1]; - } else { - return number + ' ' + translator.correctGrammaticalCase(number, wordKey); - } - } -}; - -export default moment.defineLocale('me', { - months: 'januar_februar_mart_april_maj_jun_jul_avgust_septembar_oktobar_novembar_decembar'.split('_'), - monthsShort: 'jan._feb._mar._apr._maj_jun_jul_avg._sep._okt._nov._dec.'.split('_'), - monthsParseExact : true, - 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('_'), - weekdaysParseExact : true, - longDateFormat: { - LT: 'H:mm', - LTS : 'H:mm:ss', - L: 'DD.MM.YYYY', - LL: 'D. MMMM YYYY', - LLL: 'D. MMMM YYYY H:mm', - LLLL: 'dddd, D. MMMM YYYY H:mm' - }, - calendar: { - sameDay: '[danas u] LT', - nextDay: '[sjutra 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če u] LT', - lastWeek : function () { - var lastWeekDays = [ - '[prošle] [nedjelje] [u] LT', - '[prošlog] [ponedjeljka] [u] LT', - '[prošlog] [utorka] [u] LT', - '[prošle] [srijede] [u] LT', - '[prošlog] [četvrtka] [u] LT', - '[prošlog] [petka] [u] LT', - '[prošle] [subote] [u] LT' - ]; - return lastWeekDays[this.day()]; - }, - sameElse : 'L' - }, - relativeTime : { - future : 'za %s', - past : 'prije %s', - s : 'nekoliko sekundi', - m : translator.translate, - mm : translator.translate, - h : translator.translate, - hh : translator.translate, - d : 'dan', - dd : translator.translate, - M : 'mjesec', - MM : translator.translate, - y : 'godinu', - yy : translator.translate - }, - dayOfMonthOrdinalParse: /\d{1,2}\./, - ordinal : '%d.', - week : { - dow : 1, // Monday is the first day of the week. - doy : 7 // The week that contains Jan 1st is the first week of the year. - } -}); diff --git a/admin/bower_components/moment/src/locale/mi.js b/admin/bower_components/moment/src/locale/mi.js deleted file mode 100644 index cb77ad9..0000000 --- a/admin/bower_components/moment/src/locale/mi.js +++ /dev/null @@ -1,54 +0,0 @@ -//! moment.js locale configuration -//! locale : Maori [mi] -//! author : John Corrigan <robbiecloset@gmail.com> : https://github.com/johnideal - -import moment from '../moment'; - -export default moment.defineLocale('mi', { - months: 'Kohi-tāte_Hui-tanguru_Poutū-te-rangi_Paenga-whāwhā_Haratua_Pipiri_Hōngoingoi_Here-turi-kōkā_Mahuru_Whiringa-ā-nuku_Whiringa-ā-rangi_Hakihea'.split('_'), - monthsShort: 'Kohi_Hui_Pou_Pae_Hara_Pipi_Hōngoi_Here_Mahu_Whi-nu_Whi-ra_Haki'.split('_'), - monthsRegex: /(?:['a-z\u0101\u014D\u016B]+\-?){1,3}/i, - monthsStrictRegex: /(?:['a-z\u0101\u014D\u016B]+\-?){1,3}/i, - monthsShortRegex: /(?:['a-z\u0101\u014D\u016B]+\-?){1,3}/i, - monthsShortStrictRegex: /(?:['a-z\u0101\u014D\u016B]+\-?){1,2}/i, - weekdays: 'Rātapu_Mane_Tūrei_Wenerei_Tāite_Paraire_Hātarei'.split('_'), - weekdaysShort: 'Ta_Ma_Tū_We_Tāi_Pa_Hā'.split('_'), - weekdaysMin: 'Ta_Ma_Tū_We_Tāi_Pa_Hā'.split('_'), - longDateFormat: { - LT: 'HH:mm', - LTS: 'HH:mm:ss', - L: 'DD/MM/YYYY', - LL: 'D MMMM YYYY', - LLL: 'D MMMM YYYY [i] HH:mm', - LLLL: 'dddd, D MMMM YYYY [i] HH:mm' - }, - calendar: { - sameDay: '[i teie mahana, i] LT', - nextDay: '[apopo i] LT', - nextWeek: 'dddd [i] LT', - lastDay: '[inanahi i] LT', - lastWeek: 'dddd [whakamutunga i] LT', - sameElse: 'L' - }, - relativeTime: { - future: 'i roto i %s', - past: '%s i mua', - s: 'te hēkona ruarua', - m: 'he meneti', - mm: '%d meneti', - h: 'te haora', - hh: '%d haora', - d: 'he ra', - dd: '%d ra', - M: 'he marama', - MM: '%d marama', - y: 'he tau', - yy: '%d tau' - }, - dayOfMonthOrdinalParse: /\d{1,2}º/, - ordinal: '%dº', - week : { - dow : 1, // Monday is the first day of the week. - doy : 4 // The week that contains Jan 4th is the first week of the year. - } -}); diff --git a/admin/bower_components/moment/src/locale/mk.js b/admin/bower_components/moment/src/locale/mk.js deleted file mode 100644 index 27424a7..0000000 --- a/admin/bower_components/moment/src/locale/mk.js +++ /dev/null @@ -1,81 +0,0 @@ -//! moment.js locale configuration -//! locale : Macedonian [mk] -//! author : Borislav Mickov : https://github.com/B0k0 - -import moment from '../moment'; - -export default moment.defineLocale('mk', { - months : 'јануари_февруари_март_април_мај_јуни_јули_август_септември_октомври_ноември_декември'.split('_'), - monthsShort : 'јан_фев_мар_апр_мај_јун_јул_авг_сеп_окт_ное_дек'.split('_'), - weekdays : 'недела_понеделник_вторник_среда_четврток_петок_сабота'.split('_'), - weekdaysShort : 'нед_пон_вто_сре_чет_пет_саб'.split('_'), - weekdaysMin : 'нe_пo_вт_ср_че_пе_сa'.split('_'), - longDateFormat : { - LT : 'H:mm', - LTS : 'H:mm:ss', - L : 'D.MM.YYYY', - LL : 'D MMMM YYYY', - LLL : 'D MMMM YYYY H:mm', - LLLL : 'dddd, D MMMM YYYY H:mm' - }, - 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 години' - }, - dayOfMonthOrdinalParse: /\d{1,2}-(ев|ен|ти|ви|ри|ми)/, - ordinal : function (number) { - var lastDigit = number % 10, - last2Digits = number % 100; - if (number === 0) { - return number + '-ев'; - } else if (last2Digits === 0) { - return number + '-ен'; - } else if (last2Digits > 10 && last2Digits < 20) { - return number + '-ти'; - } else if (lastDigit === 1) { - return number + '-ви'; - } else if (lastDigit === 2) { - return number + '-ри'; - } else if (lastDigit === 7 || lastDigit === 8) { - return number + '-ми'; - } else { - return number + '-ти'; - } - }, - week : { - dow : 1, // Monday is the first day of the week. - doy : 7 // The week that contains Jan 1st is the first week of the year. - } -}); - diff --git a/admin/bower_components/moment/src/locale/ml.js b/admin/bower_components/moment/src/locale/ml.js deleted file mode 100644 index c3df988..0000000 --- a/admin/bower_components/moment/src/locale/ml.js +++ /dev/null @@ -1,72 +0,0 @@ -//! moment.js locale configuration -//! locale : Malayalam [ml] -//! author : Floyd Pink : https://github.com/floydpink - -import moment from '../moment'; - -export default moment.defineLocale('ml', { - months : 'ജനുവരി_ഫെബ്രുവരി_മാർച്ച്_ഏപ്രിൽ_മേയ്_ജൂൺ_ജൂലൈ_ഓഗസ്റ്റ്_സെപ്റ്റംബർ_ഒക്ടോബർ_നവംബർ_ഡിസംബർ'.split('_'), - monthsShort : 'ജനു._ഫെബ്രു._മാർ._ഏപ്രി._മേയ്_ജൂൺ_ജൂലൈ._ഓഗ._സെപ്റ്റ._ഒക്ടോ._നവം._ഡിസം.'.split('_'), - monthsParseExact : true, - weekdays : 'ഞായറാഴ്ച_തിങ്കളാഴ്ച_ചൊവ്വാഴ്ച_ബുധനാഴ്ച_വ്യാഴാഴ്ച_വെള്ളിയാഴ്ച_ശനിയാഴ്ച'.split('_'), - weekdaysShort : 'ഞായർ_തിങ്കൾ_ചൊവ്വ_ബുധൻ_വ്യാഴം_വെള്ളി_ശനി'.split('_'), - weekdaysMin : 'ഞാ_തി_ചൊ_ബു_വ്യാ_വെ_ശ'.split('_'), - longDateFormat : { - LT : 'A h:mm -നു', - LTS : 'A h:mm:ss -നു', - L : 'DD/MM/YYYY', - LL : 'D MMMM YYYY', - LLL : 'D MMMM YYYY, A h:mm -നു', - LLLL : 'dddd, D MMMM YYYY, A h:mm -നു' - }, - 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 വർഷം' - }, - meridiemParse: /രാത്രി|രാവിലെ|ഉച്ച കഴിഞ്ഞ്|വൈകുന്നേരം|രാത്രി/i, - meridiemHour : function (hour, meridiem) { - if (hour === 12) { - hour = 0; - } - if ((meridiem === 'രാത്രി' && hour >= 4) || - meridiem === 'ഉച്ച കഴിഞ്ഞ്' || - meridiem === 'വൈകുന്നേരം') { - return hour + 12; - } else { - return hour; - } - }, - meridiem : function (hour, minute, isLower) { - if (hour < 4) { - return 'രാത്രി'; - } else if (hour < 12) { - return 'രാവിലെ'; - } else if (hour < 17) { - return 'ഉച്ച കഴിഞ്ഞ്'; - } else if (hour < 20) { - return 'വൈകുന്നേരം'; - } else { - return 'രാത്രി'; - } - } -}); - diff --git a/admin/bower_components/moment/src/locale/mr.js b/admin/bower_components/moment/src/locale/mr.js deleted file mode 100644 index 08cc3e0..0000000 --- a/admin/bower_components/moment/src/locale/mr.js +++ /dev/null @@ -1,150 +0,0 @@ -//! moment.js locale configuration -//! locale : Marathi [mr] -//! author : Harshad Kale : https://github.com/kalehv -//! author : Vivek Athalye : https://github.com/vnathalye - -import moment from '../moment'; - -var symbolMap = { - '1': '१', - '2': '२', - '3': '३', - '4': '४', - '5': '५', - '6': '६', - '7': '७', - '8': '८', - '9': '९', - '0': '०' -}, -numberMap = { - '१': '1', - '२': '2', - '३': '3', - '४': '4', - '५': '5', - '६': '6', - '७': '7', - '८': '8', - '९': '9', - '०': '0' -}; - -function relativeTimeMr(number, withoutSuffix, string, isFuture) -{ - var output = ''; - if (withoutSuffix) { - switch (string) { - case 's': output = 'काही सेकंद'; break; - case 'm': output = 'एक मिनिट'; break; - case 'mm': output = '%d मिनिटे'; break; - case 'h': output = 'एक तास'; break; - case 'hh': output = '%d तास'; break; - case 'd': output = 'एक दिवस'; break; - case 'dd': output = '%d दिवस'; break; - case 'M': output = 'एक महिना'; break; - case 'MM': output = '%d महिने'; break; - case 'y': output = 'एक वर्ष'; break; - case 'yy': output = '%d वर्षे'; break; - } - } - else { - switch (string) { - case 's': output = 'काही सेकंदां'; break; - case 'm': output = 'एका मिनिटा'; break; - case 'mm': output = '%d मिनिटां'; break; - case 'h': output = 'एका तासा'; break; - case 'hh': output = '%d तासां'; break; - case 'd': output = 'एका दिवसा'; break; - case 'dd': output = '%d दिवसां'; break; - case 'M': output = 'एका महिन्या'; break; - case 'MM': output = '%d महिन्यां'; break; - case 'y': output = 'एका वर्षा'; break; - case 'yy': output = '%d वर्षां'; break; - } - } - return output.replace(/%d/i, number); -} - -export default moment.defineLocale('mr', { - months : 'जानेवारी_फेब्रुवारी_मार्च_एप्रिल_मे_जून_जुलै_ऑगस्ट_सप्टेंबर_ऑक्टोबर_नोव्हेंबर_डिसेंबर'.split('_'), - monthsShort: 'जाने._फेब्रु._मार्च._एप्रि._मे._जून._जुलै._ऑग._सप्टें._ऑक्टो._नोव्हें._डिसें.'.split('_'), - monthsParseExact : true, - weekdays : 'रविवार_सोमवार_मंगळवार_बुधवार_गुरूवार_शुक्रवार_शनिवार'.split('_'), - weekdaysShort : 'रवि_सोम_मंगळ_बुध_गुरू_शुक्र_शनि'.split('_'), - weekdaysMin : 'र_सो_मं_बु_गु_शु_श'.split('_'), - longDateFormat : { - LT : 'A h:mm वाजता', - LTS : 'A h:mm:ss वाजता', - L : 'DD/MM/YYYY', - LL : 'D MMMM YYYY', - LLL : 'D MMMM YYYY, A h:mm वाजता', - LLLL : 'dddd, D MMMM YYYY, A h:mm वाजता' - }, - calendar : { - sameDay : '[आज] LT', - nextDay : '[उद्या] LT', - nextWeek : 'dddd, LT', - lastDay : '[काल] LT', - lastWeek: '[मागील] dddd, LT', - sameElse : 'L' - }, - relativeTime : { - future: '%sमध्ये', - past: '%sपूर्वी', - s: relativeTimeMr, - m: relativeTimeMr, - mm: relativeTimeMr, - h: relativeTimeMr, - hh: relativeTimeMr, - d: relativeTimeMr, - dd: relativeTimeMr, - M: relativeTimeMr, - MM: relativeTimeMr, - y: relativeTimeMr, - yy: relativeTimeMr - }, - preparse: function (string) { - return string.replace(/[१२३४५६७८९०]/g, function (match) { - return numberMap[match]; - }); - }, - postformat: function (string) { - return string.replace(/\d/g, function (match) { - return symbolMap[match]; - }); - }, - meridiemParse: /रात्री|सकाळी|दुपारी|सायंकाळी/, - meridiemHour : function (hour, meridiem) { - if (hour === 12) { - hour = 0; - } - if (meridiem === 'रात्री') { - return hour < 4 ? hour : hour + 12; - } else if (meridiem === 'सकाळी') { - return hour; - } else if (meridiem === 'दुपारी') { - return hour >= 10 ? hour : hour + 12; - } else if (meridiem === 'सायंकाळी') { - return hour + 12; - } - }, - meridiem: function (hour, minute, isLower) { - if (hour < 4) { - return 'रात्री'; - } else if (hour < 10) { - return 'सकाळी'; - } else if (hour < 17) { - return 'दुपारी'; - } else if (hour < 20) { - return 'सायंकाळी'; - } else { - return 'रात्री'; - } - }, - week : { - dow : 0, // Sunday is the first day of the week. - doy : 6 // The week that contains Jan 1st is the first week of the year. - } -}); - diff --git a/admin/bower_components/moment/src/locale/ms-my.js b/admin/bower_components/moment/src/locale/ms-my.js deleted file mode 100644 index f5ea96f..0000000 --- a/admin/bower_components/moment/src/locale/ms-my.js +++ /dev/null @@ -1,74 +0,0 @@ -//! moment.js locale configuration -//! locale : Malay [ms-my] -//! note : DEPRECATED, the correct one is [ms] -//! author : Weldan Jamili : https://github.com/weldan - -import moment from '../moment'; - -export default moment.defineLocale('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', - LTS : 'HH.mm.ss', - L : 'DD/MM/YYYY', - LL : 'D MMMM YYYY', - LLL : 'D MMMM YYYY [pukul] HH.mm', - LLLL : 'dddd, D MMMM YYYY [pukul] HH.mm' - }, - meridiemParse: /pagi|tengahari|petang|malam/, - meridiemHour: function (hour, meridiem) { - if (hour === 12) { - hour = 0; - } - if (meridiem === 'pagi') { - return hour; - } else if (meridiem === 'tengahari') { - return hour >= 11 ? hour : hour + 12; - } else if (meridiem === 'petang' || meridiem === 'malam') { - return hour + 12; - } - }, - meridiem : function (hours, minutes, isLower) { - if (hours < 11) { - return 'pagi'; - } else if (hours < 15) { - return 'tengahari'; - } else if (hours < 19) { - return 'petang'; - } else { - return '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, // Monday is the first day of the week. - doy : 7 // The week that contains Jan 1st is the first week of the year. - } -}); - diff --git a/admin/bower_components/moment/src/locale/ms.js b/admin/bower_components/moment/src/locale/ms.js deleted file mode 100644 index 44c3e37..0000000 --- a/admin/bower_components/moment/src/locale/ms.js +++ /dev/null @@ -1,73 +0,0 @@ -//! moment.js locale configuration -//! locale : Malay [ms] -//! author : Weldan Jamili : https://github.com/weldan - -import moment from '../moment'; - -export default moment.defineLocale('ms', { - 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', - LTS : 'HH.mm.ss', - L : 'DD/MM/YYYY', - LL : 'D MMMM YYYY', - LLL : 'D MMMM YYYY [pukul] HH.mm', - LLLL : 'dddd, D MMMM YYYY [pukul] HH.mm' - }, - meridiemParse: /pagi|tengahari|petang|malam/, - meridiemHour: function (hour, meridiem) { - if (hour === 12) { - hour = 0; - } - if (meridiem === 'pagi') { - return hour; - } else if (meridiem === 'tengahari') { - return hour >= 11 ? hour : hour + 12; - } else if (meridiem === 'petang' || meridiem === 'malam') { - return hour + 12; - } - }, - meridiem : function (hours, minutes, isLower) { - if (hours < 11) { - return 'pagi'; - } else if (hours < 15) { - return 'tengahari'; - } else if (hours < 19) { - return 'petang'; - } else { - return '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, // Monday is the first day of the week. - doy : 7 // The week that contains Jan 1st is the first week of the year. - } -}); - diff --git a/admin/bower_components/moment/src/locale/my.js b/admin/bower_components/moment/src/locale/my.js deleted file mode 100644 index 401d06e..0000000 --- a/admin/bower_components/moment/src/locale/my.js +++ /dev/null @@ -1,86 +0,0 @@ -//! moment.js locale configuration -//! locale : Burmese [my] -//! author : Squar team, mysquar.com -//! author : David Rossellat : https://github.com/gholadr -//! author : Tin Aung Lin : https://github.com/thanyawzinmin - -import moment from '../moment'; - -var symbolMap = { - '1': '၁', - '2': '၂', - '3': '၃', - '4': '၄', - '5': '၅', - '6': '၆', - '7': '၇', - '8': '၈', - '9': '၉', - '0': '၀' -}, numberMap = { - '၁': '1', - '၂': '2', - '၃': '3', - '၄': '4', - '၅': '5', - '၆': '6', - '၇': '7', - '၈': '8', - '၉': '9', - '၀': '0' -}; - -export default moment.defineLocale('my', { - months: 'ဇန်နဝါရီ_ဖေဖော်ဝါရီ_မတ်_ဧပြီ_မေ_ဇွန်_ဇူလိုင်_သြဂုတ်_စက်တင်ဘာ_အောက်တိုဘာ_နိုဝင်ဘာ_ဒီဇင်ဘာ'.split('_'), - monthsShort: 'ဇန်_ဖေ_မတ်_ပြီ_မေ_ဇွန်_လိုင်_သြ_စက်_အောက်_နို_ဒီ'.split('_'), - weekdays: 'တနင်္ဂနွေ_တနင်္လာ_အင်္ဂါ_ဗုဒ္ဓဟူး_ကြာသပတေး_သောကြာ_စနေ'.split('_'), - weekdaysShort: 'နွေ_လာ_ဂါ_ဟူး_ကြာ_သော_နေ'.split('_'), - weekdaysMin: 'နွေ_လာ_ဂါ_ဟူး_ကြာ_သော_နေ'.split('_'), - - longDateFormat: { - LT: 'HH:mm', - LTS: 'HH:mm:ss', - L: 'DD/MM/YYYY', - LL: 'D MMMM YYYY', - LLL: 'D MMMM YYYY HH:mm', - LLLL: 'dddd D MMMM YYYY HH:mm' - }, - 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 (string) { - return string.replace(/[၁၂၃၄၅၆၇၈၉၀]/g, function (match) { - return numberMap[match]; - }); - }, - postformat: function (string) { - return string.replace(/\d/g, function (match) { - return symbolMap[match]; - }); - }, - week: { - dow: 1, // Monday is the first day of the week. - doy: 4 // The week that contains Jan 1st is the first week of the year. - } -}); - diff --git a/admin/bower_components/moment/src/locale/nb.js b/admin/bower_components/moment/src/locale/nb.js deleted file mode 100644 index d528acc..0000000 --- a/admin/bower_components/moment/src/locale/nb.js +++ /dev/null @@ -1,54 +0,0 @@ -//! moment.js locale configuration -//! locale : Norwegian Bokmål [nb] -//! authors : Espen Hovlandsdal : https://github.com/rexxars -//! Sigurd Gartmann : https://github.com/sigurdga - -import moment from '../moment'; - -export default moment.defineLocale('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('_'), - monthsParseExact : true, - 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('_'), - weekdaysParseExact : true, - longDateFormat : { - LT : 'HH:mm', - LTS : 'HH:mm:ss', - L : 'DD.MM.YYYY', - LL : 'D. MMMM YYYY', - LLL : 'D. MMMM YYYY [kl.] HH:mm', - LLLL : 'dddd D. MMMM YYYY [kl.] HH:mm' - }, - 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 : '%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' - }, - dayOfMonthOrdinalParse: /\d{1,2}\./, - ordinal : '%d.', - week : { - dow : 1, // Monday is the first day of the week. - doy : 4 // The week that contains Jan 4th is the first week of the year. - } -}); - diff --git a/admin/bower_components/moment/src/locale/ne.js b/admin/bower_components/moment/src/locale/ne.js deleted file mode 100644 index a82cb95..0000000 --- a/admin/bower_components/moment/src/locale/ne.js +++ /dev/null @@ -1,114 +0,0 @@ -//! moment.js locale configuration -//! locale : Nepalese [ne] -//! author : suvash : https://github.com/suvash - -import moment from '../moment'; - -var symbolMap = { - '1': '१', - '2': '२', - '3': '३', - '4': '४', - '5': '५', - '6': '६', - '7': '७', - '8': '८', - '9': '९', - '0': '०' -}, -numberMap = { - '१': '1', - '२': '2', - '३': '3', - '४': '4', - '५': '5', - '६': '6', - '७': '7', - '८': '8', - '९': '9', - '०': '0' -}; - -export default moment.defineLocale('ne', { - months : 'जनवरी_फेब्रुवरी_मार्च_अप्रिल_मई_जुन_जुलाई_अगष्ट_सेप्टेम्बर_अक्टोबर_नोभेम्बर_डिसेम्बर'.split('_'), - monthsShort : 'जन._फेब्रु._मार्च_अप्रि._मई_जुन_जुलाई._अग._सेप्ट._अक्टो._नोभे._डिसे.'.split('_'), - monthsParseExact : true, - weekdays : 'आइतबार_सोमबार_मङ्गलबार_बुधबार_बिहिबार_शुक्रबार_शनिबार'.split('_'), - weekdaysShort : 'आइत._सोम._मङ्गल._बुध._बिहि._शुक्र._शनि.'.split('_'), - weekdaysMin : 'आ._सो._मं._बु._बि._शु._श.'.split('_'), - weekdaysParseExact : true, - longDateFormat : { - LT : 'Aको h:mm बजे', - LTS : 'Aको h:mm:ss बजे', - L : 'DD/MM/YYYY', - LL : 'D MMMM YYYY', - LLL : 'D MMMM YYYY, Aको h:mm बजे', - LLLL : 'dddd, D MMMM YYYY, Aको h:mm बजे' - }, - preparse: function (string) { - return string.replace(/[१२३४५६७८९०]/g, function (match) { - return numberMap[match]; - }); - }, - postformat: function (string) { - return string.replace(/\d/g, function (match) { - return symbolMap[match]; - }); - }, - meridiemParse: /राति|बिहान|दिउँसो|साँझ/, - meridiemHour : function (hour, meridiem) { - if (hour === 12) { - hour = 0; - } - if (meridiem === 'राति') { - return hour < 4 ? hour : hour + 12; - } else if (meridiem === 'बिहान') { - return hour; - } else if (meridiem === 'दिउँसो') { - return hour >= 10 ? hour : hour + 12; - } else if (meridiem === 'साँझ') { - return hour + 12; - } - }, - meridiem : function (hour, minute, isLower) { - if (hour < 3) { - return 'राति'; - } else if (hour < 12) { - return 'बिहान'; - } else if (hour < 16) { - return 'दिउँसो'; - } else if (hour < 20) { - return 'साँझ'; - } else { - return 'राति'; - } - }, - 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 : 0, // Sunday is the first day of the week. - doy : 6 // The week that contains Jan 1st is the first week of the year. - } -}); - diff --git a/admin/bower_components/moment/src/locale/nl-be.js b/admin/bower_components/moment/src/locale/nl-be.js deleted file mode 100644 index 1e4a089..0000000 --- a/admin/bower_components/moment/src/locale/nl-be.js +++ /dev/null @@ -1,79 +0,0 @@ -//! moment.js locale configuration -//! locale : Dutch (Belgium) [nl-be] -//! author : Joris Röling : https://github.com/jorisroling -//! author : Jacob Middag : https://github.com/middagj - -import moment from '../moment'; - -var monthsShortWithDots = 'jan._feb._mrt._apr._mei_jun._jul._aug._sep._okt._nov._dec.'.split('_'), - monthsShortWithoutDots = 'jan_feb_mrt_apr_mei_jun_jul_aug_sep_okt_nov_dec'.split('_'); - -var monthsParse = [/^jan/i, /^feb/i, /^maart|mrt.?$/i, /^apr/i, /^mei$/i, /^jun[i.]?$/i, /^jul[i.]?$/i, /^aug/i, /^sep/i, /^okt/i, /^nov/i, /^dec/i]; -var monthsRegex = /^(januari|februari|maart|april|mei|april|ju[nl]i|augustus|september|oktober|november|december|jan\.?|feb\.?|mrt\.?|apr\.?|ju[nl]\.?|aug\.?|sep\.?|okt\.?|nov\.?|dec\.?)/i; - -export default moment.defineLocale('nl-be', { - months : 'januari_februari_maart_april_mei_juni_juli_augustus_september_oktober_november_december'.split('_'), - monthsShort : function (m, format) { - if (!m) { - return monthsShortWithDots; - } else if (/-MMM-/.test(format)) { - return monthsShortWithoutDots[m.month()]; - } else { - return monthsShortWithDots[m.month()]; - } - }, - - monthsRegex: monthsRegex, - monthsShortRegex: monthsRegex, - monthsStrictRegex: /^(januari|februari|maart|mei|ju[nl]i|april|augustus|september|oktober|november|december)/i, - monthsShortStrictRegex: /^(jan\.?|feb\.?|mrt\.?|apr\.?|mei|ju[nl]\.?|aug\.?|sep\.?|okt\.?|nov\.?|dec\.?)/i, - - monthsParse : monthsParse, - longMonthsParse : monthsParse, - shortMonthsParse : monthsParse, - - 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('_'), - weekdaysParseExact : true, - longDateFormat : { - LT : 'HH:mm', - LTS : 'HH:mm:ss', - L : 'DD/MM/YYYY', - LL : 'D MMMM YYYY', - LLL : 'D MMMM YYYY HH:mm', - LLLL : 'dddd D MMMM YYYY HH:mm' - }, - 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' - }, - dayOfMonthOrdinalParse: /\d{1,2}(ste|de)/, - ordinal : function (number) { - return number + ((number === 1 || number === 8 || number >= 20) ? 'ste' : 'de'); - }, - week : { - dow : 1, // Monday is the first day of the week. - doy : 4 // The week that contains Jan 4th is the first week of the year. - } -}); - diff --git a/admin/bower_components/moment/src/locale/nl.js b/admin/bower_components/moment/src/locale/nl.js deleted file mode 100644 index 816fd5a..0000000 --- a/admin/bower_components/moment/src/locale/nl.js +++ /dev/null @@ -1,79 +0,0 @@ -//! moment.js locale configuration -//! locale : Dutch [nl] -//! author : Joris Röling : https://github.com/jorisroling -//! author : Jacob Middag : https://github.com/middagj - -import moment from '../moment'; - -var monthsShortWithDots = 'jan._feb._mrt._apr._mei_jun._jul._aug._sep._okt._nov._dec.'.split('_'), - monthsShortWithoutDots = 'jan_feb_mrt_apr_mei_jun_jul_aug_sep_okt_nov_dec'.split('_'); - -var monthsParse = [/^jan/i, /^feb/i, /^maart|mrt.?$/i, /^apr/i, /^mei$/i, /^jun[i.]?$/i, /^jul[i.]?$/i, /^aug/i, /^sep/i, /^okt/i, /^nov/i, /^dec/i]; -var monthsRegex = /^(januari|februari|maart|april|mei|april|ju[nl]i|augustus|september|oktober|november|december|jan\.?|feb\.?|mrt\.?|apr\.?|ju[nl]\.?|aug\.?|sep\.?|okt\.?|nov\.?|dec\.?)/i; - -export default moment.defineLocale('nl', { - months : 'januari_februari_maart_april_mei_juni_juli_augustus_september_oktober_november_december'.split('_'), - monthsShort : function (m, format) { - if (!m) { - return monthsShortWithDots; - } else if (/-MMM-/.test(format)) { - return monthsShortWithoutDots[m.month()]; - } else { - return monthsShortWithDots[m.month()]; - } - }, - - monthsRegex: monthsRegex, - monthsShortRegex: monthsRegex, - monthsStrictRegex: /^(januari|februari|maart|mei|ju[nl]i|april|augustus|september|oktober|november|december)/i, - monthsShortStrictRegex: /^(jan\.?|feb\.?|mrt\.?|apr\.?|mei|ju[nl]\.?|aug\.?|sep\.?|okt\.?|nov\.?|dec\.?)/i, - - monthsParse : monthsParse, - longMonthsParse : monthsParse, - shortMonthsParse : monthsParse, - - 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('_'), - weekdaysParseExact : true, - longDateFormat : { - LT : 'HH:mm', - LTS : 'HH:mm:ss', - L : 'DD-MM-YYYY', - LL : 'D MMMM YYYY', - LLL : 'D MMMM YYYY HH:mm', - LLLL : 'dddd D MMMM YYYY HH:mm' - }, - 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' - }, - dayOfMonthOrdinalParse: /\d{1,2}(ste|de)/, - ordinal : function (number) { - return number + ((number === 1 || number === 8 || number >= 20) ? 'ste' : 'de'); - }, - week : { - dow : 1, // Monday is the first day of the week. - doy : 4 // The week that contains Jan 4th is the first week of the year. - } -}); - diff --git a/admin/bower_components/moment/src/locale/nn.js b/admin/bower_components/moment/src/locale/nn.js deleted file mode 100644 index 4bdccce..0000000 --- a/admin/bower_components/moment/src/locale/nn.js +++ /dev/null @@ -1,51 +0,0 @@ -//! moment.js locale configuration -//! locale : Nynorsk [nn] -//! author : https://github.com/mechuwind - -import moment from '../moment'; - -export default moment.defineLocale('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', - LTS : 'HH:mm:ss', - L : 'DD.MM.YYYY', - LL : 'D. MMMM YYYY', - LLL : 'D. MMMM YYYY [kl.] H:mm', - LLLL : 'dddd D. MMMM YYYY [kl.] HH:mm' - }, - calendar : { - sameDay: '[I dag klokka] LT', - nextDay: '[I morgon klokka] LT', - nextWeek: 'dddd [klokka] LT', - lastDay: '[I går klokka] LT', - lastWeek: '[Føregåande] dddd [klokka] LT', - sameElse: 'L' - }, - relativeTime : { - future : 'om %s', - past : '%s sidan', - s : 'nokre sekund', - m : 'eit minutt', - mm : '%d minutt', - h : 'ein time', - hh : '%d timar', - d : 'ein dag', - dd : '%d dagar', - M : 'ein månad', - MM : '%d månader', - y : 'eit år', - yy : '%d år' - }, - dayOfMonthOrdinalParse: /\d{1,2}\./, - ordinal : '%d.', - week : { - dow : 1, // Monday is the first day of the week. - doy : 4 // The week that contains Jan 4th is the first week of the year. - } -}); - diff --git a/admin/bower_components/moment/src/locale/pa-in.js b/admin/bower_components/moment/src/locale/pa-in.js deleted file mode 100644 index 78da521..0000000 --- a/admin/bower_components/moment/src/locale/pa-in.js +++ /dev/null @@ -1,115 +0,0 @@ -//! moment.js locale configuration -//! locale : Punjabi (India) [pa-in] -//! author : Harpreet Singh : https://github.com/harpreetkhalsagtbit - -import moment from '../moment'; - -var symbolMap = { - '1': '੧', - '2': '੨', - '3': '੩', - '4': '੪', - '5': '੫', - '6': '੬', - '7': '੭', - '8': '੮', - '9': '੯', - '0': '੦' -}, -numberMap = { - '੧': '1', - '੨': '2', - '੩': '3', - '੪': '4', - '੫': '5', - '੬': '6', - '੭': '7', - '੮': '8', - '੯': '9', - '੦': '0' -}; - -export default moment.defineLocale('pa-in', { - // There are months name as per Nanakshahi Calender but they are not used as rigidly in modern Punjabi. - months : 'ਜਨਵਰੀ_ਫ਼ਰਵਰੀ_ਮਾਰਚ_ਅਪ੍ਰੈਲ_ਮਈ_ਜੂਨ_ਜੁਲਾਈ_ਅਗਸਤ_ਸਤੰਬਰ_ਅਕਤੂਬਰ_ਨਵੰਬਰ_ਦਸੰਬਰ'.split('_'), - monthsShort : 'ਜਨਵਰੀ_ਫ਼ਰਵਰੀ_ਮਾਰਚ_ਅਪ੍ਰੈਲ_ਮਈ_ਜੂਨ_ਜੁਲਾਈ_ਅਗਸਤ_ਸਤੰਬਰ_ਅਕਤੂਬਰ_ਨਵੰਬਰ_ਦਸੰਬਰ'.split('_'), - weekdays : 'ਐਤਵਾਰ_ਸੋਮਵਾਰ_ਮੰਗਲਵਾਰ_ਬੁਧਵਾਰ_ਵੀਰਵਾਰ_ਸ਼ੁੱਕਰਵਾਰ_ਸ਼ਨੀਚਰਵਾਰ'.split('_'), - weekdaysShort : 'ਐਤ_ਸੋਮ_ਮੰਗਲ_ਬੁਧ_ਵੀਰ_ਸ਼ੁਕਰ_ਸ਼ਨੀ'.split('_'), - weekdaysMin : 'ਐਤ_ਸੋਮ_ਮੰਗਲ_ਬੁਧ_ਵੀਰ_ਸ਼ੁਕਰ_ਸ਼ਨੀ'.split('_'), - longDateFormat : { - LT : 'A h:mm ਵਜੇ', - LTS : 'A h:mm:ss ਵਜੇ', - L : 'DD/MM/YYYY', - LL : 'D MMMM YYYY', - LLL : 'D MMMM YYYY, A h:mm ਵਜੇ', - LLLL : 'dddd, D MMMM YYYY, A h:mm ਵਜੇ' - }, - 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 (string) { - return string.replace(/[੧੨੩੪੫੬੭੮੯੦]/g, function (match) { - return numberMap[match]; - }); - }, - postformat: function (string) { - return string.replace(/\d/g, function (match) { - return symbolMap[match]; - }); - }, - // Punjabi notation for meridiems are quite fuzzy in practice. While there exists - // a rigid notion of a 'Pahar' it is not used as rigidly in modern Punjabi. - meridiemParse: /ਰਾਤ|ਸਵੇਰ|ਦੁਪਹਿਰ|ਸ਼ਾਮ/, - meridiemHour : function (hour, meridiem) { - if (hour === 12) { - hour = 0; - } - if (meridiem === 'ਰਾਤ') { - return hour < 4 ? hour : hour + 12; - } else if (meridiem === 'ਸਵੇਰ') { - return hour; - } else if (meridiem === 'ਦੁਪਹਿਰ') { - return hour >= 10 ? hour : hour + 12; - } else if (meridiem === 'ਸ਼ਾਮ') { - return hour + 12; - } - }, - meridiem : function (hour, minute, isLower) { - if (hour < 4) { - return 'ਰਾਤ'; - } else if (hour < 10) { - return 'ਸਵੇਰ'; - } else if (hour < 17) { - return 'ਦੁਪਹਿਰ'; - } else if (hour < 20) { - return 'ਸ਼ਾਮ'; - } else { - return 'ਰਾਤ'; - } - }, - week : { - dow : 0, // Sunday is the first day of the week. - doy : 6 // The week that contains Jan 1st is the first week of the year. - } -}); - diff --git a/admin/bower_components/moment/src/locale/pl.js b/admin/bower_components/moment/src/locale/pl.js deleted file mode 100644 index 5591634..0000000 --- a/admin/bower_components/moment/src/locale/pl.js +++ /dev/null @@ -1,97 +0,0 @@ -//! moment.js locale configuration -//! locale : Polish [pl] -//! author : Rafal Hirsz : https://github.com/evoL - -import moment from '../moment'; - -var monthsNominative = 'styczeń_luty_marzec_kwiecień_maj_czerwiec_lipiec_sierpień_wrzesień_październik_listopad_grudzień'.split('_'), - monthsSubjective = 'stycznia_lutego_marca_kwietnia_maja_czerwca_lipca_sierpnia_września_października_listopada_grudnia'.split('_'); -function plural(n) { - return (n % 10 < 5) && (n % 10 > 1) && ((~~(n / 10) % 10) !== 1); -} -function translate(number, withoutSuffix, key) { - var result = number + ' '; - switch (key) { - case 'm': - return withoutSuffix ? 'minuta' : 'minutę'; - case 'mm': - return result + (plural(number) ? 'minuty' : 'minut'); - case 'h': - return withoutSuffix ? 'godzina' : 'godzinę'; - case 'hh': - return result + (plural(number) ? 'godziny' : 'godzin'); - case 'MM': - return result + (plural(number) ? 'miesiące' : 'miesięcy'); - case 'yy': - return result + (plural(number) ? 'lata' : 'lat'); - } -} - -export default moment.defineLocale('pl', { - months : function (momentToFormat, format) { - if (!momentToFormat) { - return monthsNominative; - } else if (format === '') { - // Hack: if format empty we know this is used to generate - // RegExp by moment. Give then back both valid forms of months - // in RegExp ready format. - return '(' + monthsSubjective[momentToFormat.month()] + '|' + monthsNominative[momentToFormat.month()] + ')'; - } else if (/D MMMM/.test(format)) { - return monthsSubjective[momentToFormat.month()]; - } else { - return monthsNominative[momentToFormat.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 : 'ndz_pon_wt_śr_czw_pt_sob'.split('_'), - weekdaysMin : 'Nd_Pn_Wt_Śr_Cz_Pt_So'.split('_'), - longDateFormat : { - LT : 'HH:mm', - LTS : 'HH:mm:ss', - L : 'DD.MM.YYYY', - LL : 'D MMMM YYYY', - LLL : 'D MMMM YYYY HH:mm', - LLLL : 'dddd, D MMMM YYYY HH:mm' - }, - 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 : translate, - mm : translate, - h : translate, - hh : translate, - d : '1 dzień', - dd : '%d dni', - M : 'miesiąc', - MM : translate, - y : 'rok', - yy : translate - }, - dayOfMonthOrdinalParse: /\d{1,2}\./, - ordinal : '%d.', - week : { - dow : 1, // Monday is the first day of the week. - doy : 4 // The week that contains Jan 4th is the first week of the year. - } -}); diff --git a/admin/bower_components/moment/src/locale/pt-br.js b/admin/bower_components/moment/src/locale/pt-br.js deleted file mode 100644 index 8ea1dda..0000000 --- a/admin/bower_components/moment/src/locale/pt-br.js +++ /dev/null @@ -1,52 +0,0 @@ -//! moment.js locale configuration -//! locale : Portuguese (Brazil) [pt-br] -//! author : Caio Ribeiro Pereira : https://github.com/caio-ribeiro-pereira - -import moment from '../moment'; - -export default moment.defineLocale('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 : 'Do_2ª_3ª_4ª_5ª_6ª_Sá'.split('_'), - weekdaysParseExact : true, - longDateFormat : { - LT : 'HH:mm', - LTS : 'HH:mm:ss', - L : 'DD/MM/YYYY', - LL : 'D [de] MMMM [de] YYYY', - LLL : 'D [de] MMMM [de] YYYY [às] HH:mm', - LLLL : 'dddd, D [de] MMMM [de] YYYY [às] HH:mm' - }, - calendar : { - sameDay: '[Hoje às] LT', - nextDay: '[Amanhã às] LT', - nextWeek: 'dddd [às] LT', - lastDay: '[Ontem às] LT', - lastWeek: function () { - return (this.day() === 0 || this.day() === 6) ? - '[Último] dddd [às] LT' : // Saturday + Sunday - '[Última] dddd [às] LT'; // Monday - Friday - }, - sameElse: 'L' - }, - relativeTime : { - future : 'em %s', - past : '%s atrás', - s : 'poucos 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' - }, - dayOfMonthOrdinalParse: /\d{1,2}º/, - ordinal : '%dº' -}); - diff --git a/admin/bower_components/moment/src/locale/pt.js b/admin/bower_components/moment/src/locale/pt.js deleted file mode 100644 index b8a2c52..0000000 --- a/admin/bower_components/moment/src/locale/pt.js +++ /dev/null @@ -1,56 +0,0 @@ -//! moment.js locale configuration -//! locale : Portuguese [pt] -//! author : Jefferson : https://github.com/jalex79 - -import moment from '../moment'; - -export default moment.defineLocale('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 : 'Do_2ª_3ª_4ª_5ª_6ª_Sá'.split('_'), - weekdaysParseExact : true, - longDateFormat : { - LT : 'HH:mm', - LTS : 'HH:mm:ss', - L : 'DD/MM/YYYY', - LL : 'D [de] MMMM [de] YYYY', - LLL : 'D [de] MMMM [de] YYYY HH:mm', - LLLL : 'dddd, D [de] MMMM [de] YYYY HH:mm' - }, - calendar : { - sameDay: '[Hoje às] LT', - nextDay: '[Amanhã às] LT', - nextWeek: 'dddd [às] LT', - lastDay: '[Ontem às] LT', - lastWeek: function () { - return (this.day() === 0 || this.day() === 6) ? - '[Último] dddd [às] LT' : // Saturday + Sunday - '[Última] dddd [às] LT'; // Monday - Friday - }, - sameElse: 'L' - }, - relativeTime : { - future : 'em %s', - past : 'há %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' - }, - dayOfMonthOrdinalParse: /\d{1,2}º/, - ordinal : '%dº', - week : { - dow : 1, // Monday is the first day of the week. - doy : 4 // The week that contains Jan 4th is the first week of the year. - } -}); - diff --git a/admin/bower_components/moment/src/locale/ro.js b/admin/bower_components/moment/src/locale/ro.js deleted file mode 100644 index 444eeba..0000000 --- a/admin/bower_components/moment/src/locale/ro.js +++ /dev/null @@ -1,66 +0,0 @@ -//! moment.js locale configuration -//! locale : Romanian [ro] -//! author : Vlad Gurdiga : https://github.com/gurdiga -//! author : Valentin Agachi : https://github.com/avaly - -import moment from '../moment'; - -function relativeTimeWithPlural(number, withoutSuffix, key) { - var format = { - 'mm': 'minute', - 'hh': 'ore', - 'dd': 'zile', - 'MM': 'luni', - 'yy': 'ani' - }, - separator = ' '; - if (number % 100 >= 20 || (number >= 100 && number % 100 === 0)) { - separator = ' de '; - } - return number + separator + format[key]; -} - -export default moment.defineLocale('ro', { - months : 'ianuarie_februarie_martie_aprilie_mai_iunie_iulie_august_septembrie_octombrie_noiembrie_decembrie'.split('_'), - monthsShort : 'ian._febr._mart._apr._mai_iun._iul._aug._sept._oct._nov._dec.'.split('_'), - monthsParseExact: true, - 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', - LTS : 'H:mm:ss', - 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 : relativeTimeWithPlural, - h : 'o oră', - hh : relativeTimeWithPlural, - d : 'o zi', - dd : relativeTimeWithPlural, - M : 'o lună', - MM : relativeTimeWithPlural, - y : 'un an', - yy : relativeTimeWithPlural - }, - week : { - dow : 1, // Monday is the first day of the week. - doy : 7 // The week that contains Jan 1st is the first week of the year. - } -}); - diff --git a/admin/bower_components/moment/src/locale/ru.js b/admin/bower_components/moment/src/locale/ru.js deleted file mode 100644 index 633208a..0000000 --- a/admin/bower_components/moment/src/locale/ru.js +++ /dev/null @@ -1,173 +0,0 @@ -//! moment.js locale configuration -//! locale : Russian [ru] -//! author : Viktorminator : https://github.com/Viktorminator -//! Author : Menelion Elensúle : https://github.com/Oire -//! author : Коренберг Марк : https://github.com/socketpair - -import moment from '../moment'; - -function plural(word, num) { - var forms = word.split('_'); - return num % 10 === 1 && num % 100 !== 11 ? forms[0] : (num % 10 >= 2 && num % 10 <= 4 && (num % 100 < 10 || num % 100 >= 20) ? forms[1] : forms[2]); -} -function relativeTimeWithPlural(number, withoutSuffix, key) { - var format = { - 'mm': withoutSuffix ? 'минута_минуты_минут' : 'минуту_минуты_минут', - 'hh': 'час_часа_часов', - 'dd': 'день_дня_дней', - 'MM': 'месяц_месяца_месяцев', - 'yy': 'год_года_лет' - }; - if (key === 'm') { - return withoutSuffix ? 'минута' : 'минуту'; - } - else { - return number + ' ' + plural(format[key], +number); - } -} -var monthsParse = [/^янв/i, /^фев/i, /^мар/i, /^апр/i, /^ма[йя]/i, /^июн/i, /^июл/i, /^авг/i, /^сен/i, /^окт/i, /^ноя/i, /^дек/i]; - -// http://new.gramota.ru/spravka/rules/139-prop : § 103 -// Сокращения месяцев: http://new.gramota.ru/spravka/buro/search-answer?s=242637 -// CLDR data: http://www.unicode.org/cldr/charts/28/summary/ru.html#1753 -export default moment.defineLocale('ru', { - months : { - format: 'января_февраля_марта_апреля_мая_июня_июля_августа_сентября_октября_ноября_декабря'.split('_'), - standalone: 'январь_февраль_март_апрель_май_июнь_июль_август_сентябрь_октябрь_ноябрь_декабрь'.split('_') - }, - monthsShort : { - // по CLDR именно "июл." и "июн.", но какой смысл менять букву на точку ? - format: 'янв._февр._мар._апр._мая_июня_июля_авг._сент._окт._нояб._дек.'.split('_'), - standalone: 'янв._февр._март_апр._май_июнь_июль_авг._сент._окт._нояб._дек.'.split('_') - }, - weekdays : { - standalone: 'воскресенье_понедельник_вторник_среда_четверг_пятница_суббота'.split('_'), - format: 'воскресенье_понедельник_вторник_среду_четверг_пятницу_субботу'.split('_'), - isFormat: /\[ ?[Вв] ?(?:прошлую|следующую|эту)? ?\] ?dddd/ - }, - weekdaysShort : 'вс_пн_вт_ср_чт_пт_сб'.split('_'), - weekdaysMin : 'вс_пн_вт_ср_чт_пт_сб'.split('_'), - monthsParse : monthsParse, - longMonthsParse : monthsParse, - shortMonthsParse : monthsParse, - - // полные названия с падежами, по три буквы, для некоторых, по 4 буквы, сокращения с точкой и без точки - monthsRegex: /^(январ[ья]|янв\.?|феврал[ья]|февр?\.?|марта?|мар\.?|апрел[ья]|апр\.?|ма[йя]|июн[ья]|июн\.?|июл[ья]|июл\.?|августа?|авг\.?|сентябр[ья]|сент?\.?|октябр[ья]|окт\.?|ноябр[ья]|нояб?\.?|декабр[ья]|дек\.?)/i, - - // копия предыдущего - monthsShortRegex: /^(январ[ья]|янв\.?|феврал[ья]|февр?\.?|марта?|мар\.?|апрел[ья]|апр\.?|ма[йя]|июн[ья]|июн\.?|июл[ья]|июл\.?|августа?|авг\.?|сентябр[ья]|сент?\.?|октябр[ья]|окт\.?|ноябр[ья]|нояб?\.?|декабр[ья]|дек\.?)/i, - - // полные названия с падежами - monthsStrictRegex: /^(январ[яь]|феврал[яь]|марта?|апрел[яь]|ма[яй]|июн[яь]|июл[яь]|августа?|сентябр[яь]|октябр[яь]|ноябр[яь]|декабр[яь])/i, - - // Выражение, которое соотвествует только сокращённым формам - monthsShortStrictRegex: /^(янв\.|февр?\.|мар[т.]|апр\.|ма[яй]|июн[ья.]|июл[ья.]|авг\.|сент?\.|окт\.|нояб?\.|дек\.)/i, - longDateFormat : { - LT : 'HH:mm', - LTS : 'HH:mm:ss', - L : 'DD.MM.YYYY', - LL : 'D MMMM YYYY г.', - LLL : 'D MMMM YYYY г., HH:mm', - LLLL : 'dddd, D MMMM YYYY г., HH:mm' - }, - calendar : { - sameDay: '[Сегодня в] LT', - nextDay: '[Завтра в] LT', - lastDay: '[Вчера в] LT', - nextWeek: function (now) { - if (now.week() !== this.week()) { - 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'; - } - } else { - if (this.day() === 2) { - return '[Во] dddd [в] LT'; - } else { - return '[В] dddd [в] LT'; - } - } - }, - lastWeek: function (now) { - if (now.week() !== this.week()) { - 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'; - } - } else { - if (this.day() === 2) { - return '[Во] dddd [в] LT'; - } else { - return '[В] dddd [в] LT'; - } - } - }, - sameElse: 'L' - }, - relativeTime : { - future : 'через %s', - past : '%s назад', - s : 'несколько секунд', - m : relativeTimeWithPlural, - mm : relativeTimeWithPlural, - h : 'час', - hh : relativeTimeWithPlural, - d : 'день', - dd : relativeTimeWithPlural, - M : 'месяц', - MM : relativeTimeWithPlural, - y : 'год', - yy : relativeTimeWithPlural - }, - meridiemParse: /ночи|утра|дня|вечера/i, - isPM : function (input) { - return /^(дня|вечера)$/.test(input); - }, - meridiem : function (hour, minute, isLower) { - if (hour < 4) { - return 'ночи'; - } else if (hour < 12) { - return 'утра'; - } else if (hour < 17) { - return 'дня'; - } else { - return 'вечера'; - } - }, - dayOfMonthOrdinalParse: /\d{1,2}-(й|го|я)/, - ordinal: function (number, period) { - switch (period) { - case 'M': - case 'd': - case 'DDD': - return number + '-й'; - case 'D': - return number + '-го'; - case 'w': - case 'W': - return number + '-я'; - default: - return number; - } - }, - week : { - dow : 1, // Monday is the first day of the week. - doy : 7 // The week that contains Jan 1st is the first week of the year. - } -}); diff --git a/admin/bower_components/moment/src/locale/sd.js b/admin/bower_components/moment/src/locale/sd.js deleted file mode 100644 index 184c9e7..0000000 --- a/admin/bower_components/moment/src/locale/sd.js +++ /dev/null @@ -1,88 +0,0 @@ -//! moment.js locale configuration -//! locale : Sindhi [sd] -//! author : Narain Sagar : https://github.com/narainsagar - -import moment from '../moment'; - -var months = [ - 'جنوري', - 'فيبروري', - 'مارچ', - 'اپريل', - 'مئي', - 'جون', - 'جولاءِ', - 'آگسٽ', - 'سيپٽمبر', - 'آڪٽوبر', - 'نومبر', - 'ڊسمبر' -]; -var days = [ - 'آچر', - 'سومر', - 'اڱارو', - 'اربع', - 'خميس', - 'جمع', - 'ڇنڇر' -]; - -export default moment.defineLocale('sd', { - months : months, - monthsShort : months, - weekdays : days, - weekdaysShort : days, - weekdaysMin : days, - longDateFormat : { - LT : 'HH:mm', - LTS : 'HH:mm:ss', - L : 'DD/MM/YYYY', - LL : 'D MMMM YYYY', - LLL : 'D MMMM YYYY HH:mm', - LLLL : 'dddd، D MMMM YYYY HH:mm' - }, - meridiemParse: /صبح|شام/, - isPM : function (input) { - return 'شام' === input; - }, - meridiem : function (hour, minute, isLower) { - if (hour < 12) { - return 'صبح'; - } - return 'شام'; - }, - 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 (string) { - return string.replace(/،/g, ','); - }, - postformat: function (string) { - return string.replace(/,/g, '،'); - }, - week : { - dow : 1, // Monday is the first day of the week. - doy : 4 // The week that contains Jan 4th is the first week of the year. - } -}); diff --git a/admin/bower_components/moment/src/locale/se.js b/admin/bower_components/moment/src/locale/se.js deleted file mode 100644 index a46a758..0000000 --- a/admin/bower_components/moment/src/locale/se.js +++ /dev/null @@ -1,51 +0,0 @@ -//! moment.js locale configuration -//! locale : Northern Sami [se] -//! authors : Bård Rolstad Henriksen : https://github.com/karamell - - -import moment from '../moment'; - -export default moment.defineLocale('se', { - months : 'ođđajagemánnu_guovvamánnu_njukčamánnu_cuoŋománnu_miessemánnu_geassemánnu_suoidnemánnu_borgemánnu_čakčamánnu_golggotmánnu_skábmamánnu_juovlamánnu'.split('_'), - monthsShort : 'ođđj_guov_njuk_cuo_mies_geas_suoi_borg_čakč_golg_skáb_juov'.split('_'), - weekdays : 'sotnabeaivi_vuossárga_maŋŋebárga_gaskavahkku_duorastat_bearjadat_lávvardat'.split('_'), - weekdaysShort : 'sotn_vuos_maŋ_gask_duor_bear_láv'.split('_'), - weekdaysMin : 's_v_m_g_d_b_L'.split('_'), - longDateFormat : { - LT : 'HH:mm', - LTS : 'HH:mm:ss', - L : 'DD.MM.YYYY', - LL : 'MMMM D. [b.] YYYY', - LLL : 'MMMM D. [b.] YYYY [ti.] HH:mm', - LLLL : 'dddd, MMMM D. [b.] YYYY [ti.] HH:mm' - }, - calendar : { - sameDay: '[otne ti] LT', - nextDay: '[ihttin ti] LT', - nextWeek: 'dddd [ti] LT', - lastDay: '[ikte ti] LT', - lastWeek: '[ovddit] dddd [ti] LT', - sameElse: 'L' - }, - relativeTime : { - future : '%s geažes', - past : 'maŋit %s', - s : 'moadde sekunddat', - m : 'okta minuhta', - mm : '%d minuhtat', - h : 'okta diimmu', - hh : '%d diimmut', - d : 'okta beaivi', - dd : '%d beaivvit', - M : 'okta mánnu', - MM : '%d mánut', - y : 'okta jahki', - yy : '%d jagit' - }, - dayOfMonthOrdinalParse: /\d{1,2}\./, - ordinal : '%d.', - week : { - dow : 1, // Monday is the first day of the week. - doy : 4 // The week that contains Jan 4th is the first week of the year. - } -}); diff --git a/admin/bower_components/moment/src/locale/si.js b/admin/bower_components/moment/src/locale/si.js deleted file mode 100644 index 71bdf34..0000000 --- a/admin/bower_components/moment/src/locale/si.js +++ /dev/null @@ -1,61 +0,0 @@ -//! moment.js locale configuration -//! locale : Sinhalese [si] -//! author : Sampath Sitinamaluwa : https://github.com/sampathsris - -import moment from '../moment'; - -/*jshint -W100*/ -export default moment.defineLocale('si', { - months : 'ජනවාරි_පෙබරවාරි_මාර්තු_අප්‍රේල්_මැයි_ජූනි_ජූලි_අගෝස්තු_සැප්තැම්බර්_ඔක්තෝබර්_නොවැම්බර්_දෙසැම්බර්'.split('_'), - monthsShort : 'ජන_පෙබ_මාර්_අප්_මැයි_ජූනි_ජූලි_අගෝ_සැප්_ඔක්_නොවැ_දෙසැ'.split('_'), - weekdays : 'ඉරිදා_සඳුදා_අඟහරුවාදා_බදාදා_බ්‍රහස්පතින්දා_සිකුරාදා_සෙනසුරාදා'.split('_'), - weekdaysShort : 'ඉරි_සඳු_අඟ_බදා_බ්‍රහ_සිකු_සෙන'.split('_'), - weekdaysMin : 'ඉ_ස_අ_බ_බ්‍ර_සි_සෙ'.split('_'), - weekdaysParseExact : true, - longDateFormat : { - LT : 'a h:mm', - LTS : 'a h:mm:ss', - L : 'YYYY/MM/DD', - LL : 'YYYY MMMM D', - LLL : 'YYYY MMMM D, a h:mm', - LLLL : 'YYYY MMMM D [වැනි] dddd, a h:mm:ss' - }, - 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' - }, - dayOfMonthOrdinalParse: /\d{1,2} වැනි/, - ordinal : function (number) { - return number + ' වැනි'; - }, - meridiemParse : /පෙර වරු|පස් වරු|පෙ.ව|ප.ව./, - isPM : function (input) { - return input === 'ප.ව.' || input === 'පස් වරු'; - }, - meridiem : function (hours, minutes, isLower) { - if (hours > 11) { - return isLower ? 'ප.ව.' : 'පස් වරු'; - } else { - return isLower ? 'පෙ.ව.' : 'පෙර වරු'; - } - } -}); diff --git a/admin/bower_components/moment/src/locale/sk.js b/admin/bower_components/moment/src/locale/sk.js deleted file mode 100644 index 0c0f5bf..0000000 --- a/admin/bower_components/moment/src/locale/sk.js +++ /dev/null @@ -1,141 +0,0 @@ -//! moment.js locale configuration -//! locale : Slovak [sk] -//! author : Martin Minka : https://github.com/k2s -//! based on work of petrbela : https://github.com/petrbela - -import moment from '../moment'; - -var months = 'január_február_marec_apríl_máj_jún_júl_august_september_október_november_december'.split('_'), - monthsShort = 'jan_feb_mar_apr_máj_jún_júl_aug_sep_okt_nov_dec'.split('_'); -function plural(n) { - return (n > 1) && (n < 5); -} -function translate(number, withoutSuffix, key, isFuture) { - var result = number + ' '; - switch (key) { - case 's': // a few seconds / in a few seconds / a few seconds ago - return (withoutSuffix || isFuture) ? 'pár sekúnd' : 'pár sekundami'; - case 'm': // a minute / in a minute / a minute ago - return withoutSuffix ? 'minúta' : (isFuture ? 'minútu' : 'minútou'); - case 'mm': // 9 minutes / in 9 minutes / 9 minutes ago - if (withoutSuffix || isFuture) { - return result + (plural(number) ? 'minúty' : 'minút'); - } else { - return result + 'minútami'; - } - break; - case 'h': // an hour / in an hour / an hour ago - return withoutSuffix ? 'hodina' : (isFuture ? 'hodinu' : 'hodinou'); - case 'hh': // 9 hours / in 9 hours / 9 hours ago - if (withoutSuffix || isFuture) { - return result + (plural(number) ? 'hodiny' : 'hodín'); - } else { - return result + 'hodinami'; - } - break; - case 'd': // a day / in a day / a day ago - return (withoutSuffix || isFuture) ? 'deň' : 'dňom'; - case 'dd': // 9 days / in 9 days / 9 days ago - if (withoutSuffix || isFuture) { - return result + (plural(number) ? 'dni' : 'dní'); - } else { - return result + 'dňami'; - } - break; - case 'M': // a month / in a month / a month ago - return (withoutSuffix || isFuture) ? 'mesiac' : 'mesiacom'; - case 'MM': // 9 months / in 9 months / 9 months ago - if (withoutSuffix || isFuture) { - return result + (plural(number) ? 'mesiace' : 'mesiacov'); - } else { - return result + 'mesiacmi'; - } - break; - case 'y': // a year / in a year / a year ago - return (withoutSuffix || isFuture) ? 'rok' : 'rokom'; - case 'yy': // 9 years / in 9 years / 9 years ago - if (withoutSuffix || isFuture) { - return result + (plural(number) ? 'roky' : 'rokov'); - } else { - return result + 'rokmi'; - } - break; - } -} - -export default moment.defineLocale('sk', { - months : months, - monthsShort : monthsShort, - 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', - LTS : 'H:mm:ss', - L : 'DD.MM.YYYY', - LL : 'D. MMMM YYYY', - LLL : 'D. MMMM YYYY H:mm', - LLLL : 'dddd D. MMMM YYYY H:mm' - }, - 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 : translate, - m : translate, - mm : translate, - h : translate, - hh : translate, - d : translate, - dd : translate, - M : translate, - MM : translate, - y : translate, - yy : translate - }, - dayOfMonthOrdinalParse: /\d{1,2}\./, - ordinal : '%d.', - week : { - dow : 1, // Monday is the first day of the week. - doy : 4 // The week that contains Jan 4th is the first week of the year. - } -}); - diff --git a/admin/bower_components/moment/src/locale/sl.js b/admin/bower_components/moment/src/locale/sl.js deleted file mode 100644 index 41c11e8..0000000 --- a/admin/bower_components/moment/src/locale/sl.js +++ /dev/null @@ -1,152 +0,0 @@ -//! moment.js locale configuration -//! locale : Slovenian [sl] -//! author : Robert Sedovšek : https://github.com/sedovsek - -import moment from '../moment'; - -function processRelativeTime(number, withoutSuffix, key, isFuture) { - var result = number + ' '; - switch (key) { - case 's': - return withoutSuffix || isFuture ? 'nekaj sekund' : 'nekaj sekundami'; - case 'm': - return withoutSuffix ? 'ena minuta' : 'eno minuto'; - case 'mm': - if (number === 1) { - result += withoutSuffix ? 'minuta' : 'minuto'; - } else if (number === 2) { - result += withoutSuffix || isFuture ? 'minuti' : 'minutama'; - } else if (number < 5) { - result += withoutSuffix || isFuture ? 'minute' : 'minutami'; - } else { - result += withoutSuffix || isFuture ? 'minut' : 'minutami'; - } - return result; - case 'h': - return withoutSuffix ? 'ena ura' : 'eno uro'; - case 'hh': - if (number === 1) { - result += withoutSuffix ? 'ura' : 'uro'; - } else if (number === 2) { - result += withoutSuffix || isFuture ? 'uri' : 'urama'; - } else if (number < 5) { - result += withoutSuffix || isFuture ? 'ure' : 'urami'; - } else { - result += withoutSuffix || isFuture ? 'ur' : 'urami'; - } - return result; - case 'd': - return withoutSuffix || isFuture ? 'en dan' : 'enim dnem'; - case 'dd': - if (number === 1) { - result += withoutSuffix || isFuture ? 'dan' : 'dnem'; - } else if (number === 2) { - result += withoutSuffix || isFuture ? 'dni' : 'dnevoma'; - } else { - result += withoutSuffix || isFuture ? 'dni' : 'dnevi'; - } - return result; - case 'M': - return withoutSuffix || isFuture ? 'en mesec' : 'enim mesecem'; - case 'MM': - if (number === 1) { - result += withoutSuffix || isFuture ? 'mesec' : 'mesecem'; - } else if (number === 2) { - result += withoutSuffix || isFuture ? 'meseca' : 'mesecema'; - } else if (number < 5) { - result += withoutSuffix || isFuture ? 'mesece' : 'meseci'; - } else { - result += withoutSuffix || isFuture ? 'mesecev' : 'meseci'; - } - return result; - case 'y': - return withoutSuffix || isFuture ? 'eno leto' : 'enim letom'; - case 'yy': - if (number === 1) { - result += withoutSuffix || isFuture ? 'leto' : 'letom'; - } else if (number === 2) { - result += withoutSuffix || isFuture ? 'leti' : 'letoma'; - } else if (number < 5) { - result += withoutSuffix || isFuture ? 'leta' : 'leti'; - } else { - result += withoutSuffix || isFuture ? 'let' : 'leti'; - } - return result; - } -} - -export default moment.defineLocale('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('_'), - monthsParseExact: true, - 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('_'), - weekdaysParseExact : true, - longDateFormat : { - LT : 'H:mm', - LTS : 'H:mm:ss', - L : 'DD.MM.YYYY', - LL : 'D. MMMM YYYY', - LLL : 'D. MMMM YYYY H:mm', - LLLL : 'dddd, D. MMMM YYYY H:mm' - }, - 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: - return '[prejšnjo] [nedeljo] [ob] LT'; - case 3: - return '[prejšnjo] [sredo] [ob] LT'; - case 6: - return '[prejšnjo] [soboto] [ob] LT'; - case 1: - case 2: - case 4: - case 5: - return '[prejšnji] dddd [ob] LT'; - } - }, - sameElse : 'L' - }, - relativeTime : { - future : 'čez %s', - past : 'pred %s', - s : processRelativeTime, - m : processRelativeTime, - mm : processRelativeTime, - h : processRelativeTime, - hh : processRelativeTime, - d : processRelativeTime, - dd : processRelativeTime, - M : processRelativeTime, - MM : processRelativeTime, - y : processRelativeTime, - yy : processRelativeTime - }, - dayOfMonthOrdinalParse: /\d{1,2}\./, - ordinal : '%d.', - week : { - dow : 1, // Monday is the first day of the week. - doy : 7 // The week that contains Jan 1st is the first week of the year. - } -}); diff --git a/admin/bower_components/moment/src/locale/sq.js b/admin/bower_components/moment/src/locale/sq.js deleted file mode 100644 index b47752a..0000000 --- a/admin/bower_components/moment/src/locale/sq.js +++ /dev/null @@ -1,61 +0,0 @@ -//! moment.js locale configuration -//! locale : Albanian [sq] -//! author : Flakërim Ismani : https://github.com/flakerimi -//! author : Menelion Elensúle : https://github.com/Oire -//! author : Oerd Cukalla : https://github.com/oerd - -import moment from '../moment'; - -export default moment.defineLocale('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 Martë_E Mërkurë_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('_'), - weekdaysParseExact : true, - meridiemParse: /PD|MD/, - isPM: function (input) { - return input.charAt(0) === 'M'; - }, - meridiem : function (hours, minutes, isLower) { - return hours < 12 ? 'PD' : 'MD'; - }, - longDateFormat : { - LT : 'HH:mm', - LTS : 'HH:mm:ss', - L : 'DD/MM/YYYY', - LL : 'D MMMM YYYY', - LLL : 'D MMMM YYYY HH:mm', - LLLL : 'dddd, D MMMM YYYY HH:mm' - }, - calendar : { - sameDay : '[Sot në] LT', - nextDay : '[Nesër në] LT', - nextWeek : 'dddd [në] LT', - lastDay : '[Dje në] LT', - lastWeek : 'dddd [e kaluar në] LT', - sameElse : 'L' - }, - relativeTime : { - future : 'në %s', - past : '%s më parë', - s : 'disa sekonda', - m : 'një minutë', - mm : '%d minuta', - h : 'një orë', - hh : '%d orë', - d : 'një ditë', - dd : '%d ditë', - M : 'një muaj', - MM : '%d muaj', - y : 'një vit', - yy : '%d vite' - }, - dayOfMonthOrdinalParse: /\d{1,2}\./, - ordinal : '%d.', - week : { - dow : 1, // Monday is the first day of the week. - doy : 4 // The week that contains Jan 4th is the first week of the year. - } -}); - diff --git a/admin/bower_components/moment/src/locale/sr-cyrl.js b/admin/bower_components/moment/src/locale/sr-cyrl.js deleted file mode 100644 index 69cdb6b..0000000 --- a/admin/bower_components/moment/src/locale/sr-cyrl.js +++ /dev/null @@ -1,100 +0,0 @@ -//! moment.js locale configuration -//! locale : Serbian Cyrillic [sr-cyrl] -//! author : Milan Janačković<milanjanackovic@gmail.com> : https://github.com/milan-j - -import moment from '../moment'; - -var translator = { - words: { //Different grammatical cases - m: ['један минут', 'једне минуте'], - mm: ['минут', 'минуте', 'минута'], - h: ['један сат', 'једног сата'], - hh: ['сат', 'сата', 'сати'], - dd: ['дан', 'дана', 'дана'], - MM: ['месец', 'месеца', 'месеци'], - yy: ['година', 'године', 'година'] - }, - correctGrammaticalCase: function (number, wordKey) { - return number === 1 ? wordKey[0] : (number >= 2 && number <= 4 ? wordKey[1] : wordKey[2]); - }, - translate: function (number, withoutSuffix, key) { - var wordKey = translator.words[key]; - if (key.length === 1) { - return withoutSuffix ? wordKey[0] : wordKey[1]; - } else { - return number + ' ' + translator.correctGrammaticalCase(number, wordKey); - } - } -}; - -export default moment.defineLocale('sr-cyrl', { - months: 'јануар_фебруар_март_април_мај_јун_јул_август_септембар_октобар_новембар_децембар'.split('_'), - monthsShort: 'јан._феб._мар._апр._мај_јун_јул_авг._сеп._окт._нов._дец.'.split('_'), - monthsParseExact: true, - weekdays: 'недеља_понедељак_уторак_среда_четвртак_петак_субота'.split('_'), - weekdaysShort: 'нед._пон._уто._сре._чет._пет._суб.'.split('_'), - weekdaysMin: 'не_по_ут_ср_че_пе_су'.split('_'), - weekdaysParseExact : true, - longDateFormat: { - LT: 'H:mm', - LTS : 'H:mm:ss', - L: 'DD.MM.YYYY', - LL: 'D. MMMM YYYY', - LLL: 'D. MMMM YYYY H:mm', - LLLL: 'dddd, D. MMMM YYYY H:mm' - }, - calendar: { - sameDay: '[данас у] LT', - nextDay: '[сутра у] LT', - nextWeek: function () { - switch (this.day()) { - case 0: - return '[у] [недељу] [у] LT'; - case 3: - return '[у] [среду] [у] LT'; - case 6: - return '[у] [суботу] [у] LT'; - case 1: - case 2: - case 4: - case 5: - return '[у] dddd [у] LT'; - } - }, - lastDay : '[јуче у] LT', - lastWeek : function () { - var lastWeekDays = [ - '[прошле] [недеље] [у] LT', - '[прошлог] [понедељка] [у] LT', - '[прошлог] [уторка] [у] LT', - '[прошле] [среде] [у] LT', - '[прошлог] [четвртка] [у] LT', - '[прошлог] [петка] [у] LT', - '[прошле] [суботе] [у] LT' - ]; - return lastWeekDays[this.day()]; - }, - sameElse : 'L' - }, - relativeTime : { - future : 'за %s', - past : 'пре %s', - s : 'неколико секунди', - m : translator.translate, - mm : translator.translate, - h : translator.translate, - hh : translator.translate, - d : 'дан', - dd : translator.translate, - M : 'месец', - MM : translator.translate, - y : 'годину', - yy : translator.translate - }, - dayOfMonthOrdinalParse: /\d{1,2}\./, - ordinal : '%d.', - week : { - dow : 1, // Monday is the first day of the week. - doy : 7 // The week that contains Jan 1st is the first week of the year. - } -}); diff --git a/admin/bower_components/moment/src/locale/sr.js b/admin/bower_components/moment/src/locale/sr.js deleted file mode 100644 index 5634879..0000000 --- a/admin/bower_components/moment/src/locale/sr.js +++ /dev/null @@ -1,100 +0,0 @@ -//! moment.js locale configuration -//! locale : Serbian [sr] -//! author : Milan Janačković<milanjanackovic@gmail.com> : https://github.com/milan-j - -import moment from '../moment'; - -var translator = { - words: { //Different grammatical cases - m: ['jedan minut', 'jedne minute'], - mm: ['minut', 'minute', 'minuta'], - h: ['jedan sat', 'jednog sata'], - hh: ['sat', 'sata', 'sati'], - dd: ['dan', 'dana', 'dana'], - MM: ['mesec', 'meseca', 'meseci'], - yy: ['godina', 'godine', 'godina'] - }, - correctGrammaticalCase: function (number, wordKey) { - return number === 1 ? wordKey[0] : (number >= 2 && number <= 4 ? wordKey[1] : wordKey[2]); - }, - translate: function (number, withoutSuffix, key) { - var wordKey = translator.words[key]; - if (key.length === 1) { - return withoutSuffix ? wordKey[0] : wordKey[1]; - } else { - return number + ' ' + translator.correctGrammaticalCase(number, wordKey); - } - } -}; - -export default moment.defineLocale('sr', { - months: 'januar_februar_mart_april_maj_jun_jul_avgust_septembar_oktobar_novembar_decembar'.split('_'), - monthsShort: 'jan._feb._mar._apr._maj_jun_jul_avg._sep._okt._nov._dec.'.split('_'), - monthsParseExact: true, - weekdays: 'nedelja_ponedeljak_utorak_sreda_četvrtak_petak_subota'.split('_'), - weekdaysShort: 'ned._pon._uto._sre._čet._pet._sub.'.split('_'), - weekdaysMin: 'ne_po_ut_sr_če_pe_su'.split('_'), - weekdaysParseExact : true, - longDateFormat: { - LT: 'H:mm', - LTS : 'H:mm:ss', - L: 'DD.MM.YYYY', - LL: 'D. MMMM YYYY', - LLL: 'D. MMMM YYYY H:mm', - LLLL: 'dddd, D. MMMM YYYY H:mm' - }, - calendar: { - sameDay: '[danas u] LT', - nextDay: '[sutra u] LT', - nextWeek: function () { - switch (this.day()) { - case 0: - return '[u] [nedelju] [u] LT'; - case 3: - return '[u] [sredu] [u] LT'; - case 6: - return '[u] [subotu] [u] LT'; - case 1: - case 2: - case 4: - case 5: - return '[u] dddd [u] LT'; - } - }, - lastDay : '[juče u] LT', - lastWeek : function () { - var lastWeekDays = [ - '[prošle] [nedelje] [u] LT', - '[prošlog] [ponedeljka] [u] LT', - '[prošlog] [utorka] [u] LT', - '[prošle] [srede] [u] LT', - '[prošlog] [četvrtka] [u] LT', - '[prošlog] [petka] [u] LT', - '[prošle] [subote] [u] LT' - ]; - return lastWeekDays[this.day()]; - }, - sameElse : 'L' - }, - relativeTime : { - future : 'za %s', - past : 'pre %s', - s : 'nekoliko sekundi', - m : translator.translate, - mm : translator.translate, - h : translator.translate, - hh : translator.translate, - d : 'dan', - dd : translator.translate, - M : 'mesec', - MM : translator.translate, - y : 'godinu', - yy : translator.translate - }, - dayOfMonthOrdinalParse: /\d{1,2}\./, - ordinal : '%d.', - week : { - dow : 1, // Monday is the first day of the week. - doy : 7 // The week that contains Jan 1st is the first week of the year. - } -}); diff --git a/admin/bower_components/moment/src/locale/ss.js b/admin/bower_components/moment/src/locale/ss.js deleted file mode 100644 index 0d472bf..0000000 --- a/admin/bower_components/moment/src/locale/ss.js +++ /dev/null @@ -1,80 +0,0 @@ -//! moment.js locale configuration -//! locale : siSwati [ss] -//! author : Nicolai Davies<mail@nicolai.io> : https://github.com/nicolaidavies - - -import moment from '../moment'; - -export default moment.defineLocale('ss', { - months : "Bhimbidvwane_Indlovana_Indlov'lenkhulu_Mabasa_Inkhwekhweti_Inhlaba_Kholwane_Ingci_Inyoni_Imphala_Lweti_Ingongoni".split('_'), - monthsShort : 'Bhi_Ina_Inu_Mab_Ink_Inh_Kho_Igc_Iny_Imp_Lwe_Igo'.split('_'), - weekdays : 'Lisontfo_Umsombuluko_Lesibili_Lesitsatfu_Lesine_Lesihlanu_Umgcibelo'.split('_'), - weekdaysShort : 'Lis_Umb_Lsb_Les_Lsi_Lsh_Umg'.split('_'), - weekdaysMin : 'Li_Us_Lb_Lt_Ls_Lh_Ug'.split('_'), - weekdaysParseExact : true, - longDateFormat : { - LT : 'h:mm A', - LTS : 'h:mm:ss A', - L : 'DD/MM/YYYY', - LL : 'D MMMM YYYY', - LLL : 'D MMMM YYYY h:mm A', - LLLL : 'dddd, D MMMM YYYY h:mm A' - }, - calendar : { - sameDay : '[Namuhla nga] LT', - nextDay : '[Kusasa nga] LT', - nextWeek : 'dddd [nga] LT', - lastDay : '[Itolo nga] LT', - lastWeek : 'dddd [leliphelile] [nga] LT', - sameElse : 'L' - }, - relativeTime : { - future : 'nga %s', - past : 'wenteka nga %s', - s : 'emizuzwana lomcane', - m : 'umzuzu', - mm : '%d emizuzu', - h : 'lihora', - hh : '%d emahora', - d : 'lilanga', - dd : '%d emalanga', - M : 'inyanga', - MM : '%d tinyanga', - y : 'umnyaka', - yy : '%d iminyaka' - }, - meridiemParse: /ekuseni|emini|entsambama|ebusuku/, - meridiem : function (hours, minutes, isLower) { - if (hours < 11) { - return 'ekuseni'; - } else if (hours < 15) { - return 'emini'; - } else if (hours < 19) { - return 'entsambama'; - } else { - return 'ebusuku'; - } - }, - meridiemHour : function (hour, meridiem) { - if (hour === 12) { - hour = 0; - } - if (meridiem === 'ekuseni') { - return hour; - } else if (meridiem === 'emini') { - return hour >= 11 ? hour : hour + 12; - } else if (meridiem === 'entsambama' || meridiem === 'ebusuku') { - if (hour === 0) { - return 0; - } - return hour + 12; - } - }, - dayOfMonthOrdinalParse: /\d{1,2}/, - ordinal : '%d', - week : { - dow : 1, // Monday is the first day of the week. - doy : 4 // The week that contains Jan 4th is the first week of the year. - } -}); - diff --git a/admin/bower_components/moment/src/locale/sv.js b/admin/bower_components/moment/src/locale/sv.js deleted file mode 100644 index 7f30613..0000000 --- a/admin/bower_components/moment/src/locale/sv.js +++ /dev/null @@ -1,60 +0,0 @@ -//! moment.js locale configuration -//! locale : Swedish [sv] -//! author : Jens Alm : https://github.com/ulmus - -import moment from '../moment'; - -export default moment.defineLocale('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', - LTS : 'HH:mm:ss', - L : 'YYYY-MM-DD', - LL : 'D MMMM YYYY', - LLL : 'D MMMM YYYY [kl.] HH:mm', - LLLL : 'dddd D MMMM YYYY [kl.] HH:mm', - lll : 'D MMM YYYY HH:mm', - llll : 'ddd D MMM YYYY HH:mm' - }, - calendar : { - sameDay: '[Idag] LT', - nextDay: '[Imorgon] LT', - lastDay: '[Igår] LT', - nextWeek: '[På] dddd LT', - lastWeek: '[I] dddd[s] 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' - }, - dayOfMonthOrdinalParse: /\d{1,2}(e|a)/, - ordinal : function (number) { - var b = number % 10, - output = (~~(number % 100 / 10) === 1) ? 'e' : - (b === 1) ? 'a' : - (b === 2) ? 'a' : - (b === 3) ? 'e' : 'e'; - return number + output; - }, - week : { - dow : 1, // Monday is the first day of the week. - doy : 4 // The week that contains Jan 4th is the first week of the year. - } -}); - diff --git a/admin/bower_components/moment/src/locale/sw.js b/admin/bower_components/moment/src/locale/sw.js deleted file mode 100644 index a36d9dd..0000000 --- a/admin/bower_components/moment/src/locale/sw.js +++ /dev/null @@ -1,50 +0,0 @@ -//! moment.js locale configuration -//! locale : Swahili [sw] -//! author : Fahad Kassim : https://github.com/fadsel - -import moment from '../moment'; - -export default moment.defineLocale('sw', { - months : 'Januari_Februari_Machi_Aprili_Mei_Juni_Julai_Agosti_Septemba_Oktoba_Novemba_Desemba'.split('_'), - monthsShort : 'Jan_Feb_Mac_Apr_Mei_Jun_Jul_Ago_Sep_Okt_Nov_Des'.split('_'), - weekdays : 'Jumapili_Jumatatu_Jumanne_Jumatano_Alhamisi_Ijumaa_Jumamosi'.split('_'), - weekdaysShort : 'Jpl_Jtat_Jnne_Jtan_Alh_Ijm_Jmos'.split('_'), - weekdaysMin : 'J2_J3_J4_J5_Al_Ij_J1'.split('_'), - weekdaysParseExact : true, - longDateFormat : { - LT : 'HH:mm', - LTS : 'HH:mm:ss', - L : 'DD.MM.YYYY', - LL : 'D MMMM YYYY', - LLL : 'D MMMM YYYY HH:mm', - LLLL : 'dddd, D MMMM YYYY HH:mm' - }, - calendar : { - sameDay : '[leo saa] LT', - nextDay : '[kesho saa] LT', - nextWeek : '[wiki ijayo] dddd [saat] LT', - lastDay : '[jana] LT', - lastWeek : '[wiki iliyopita] dddd [saat] LT', - sameElse : 'L' - }, - relativeTime : { - future : '%s baadaye', - past : 'tokea %s', - s : 'hivi punde', - m : 'dakika moja', - mm : 'dakika %d', - h : 'saa limoja', - hh : 'masaa %d', - d : 'siku moja', - dd : 'masiku %d', - M : 'mwezi mmoja', - MM : 'miezi %d', - y : 'mwaka mmoja', - yy : 'miaka %d' - }, - week : { - dow : 1, // Monday is the first day of the week. - doy : 7 // The week that contains Jan 1st is the first week of the year. - } -}); - diff --git a/admin/bower_components/moment/src/locale/ta.js b/admin/bower_components/moment/src/locale/ta.js deleted file mode 100644 index ae41832..0000000 --- a/admin/bower_components/moment/src/locale/ta.js +++ /dev/null @@ -1,120 +0,0 @@ -//! moment.js locale configuration -//! locale : Tamil [ta] -//! author : Arjunkumar Krishnamoorthy : https://github.com/tk120404 - -import moment from '../moment'; - -var symbolMap = { - '1': '௧', - '2': '௨', - '3': '௩', - '4': '௪', - '5': '௫', - '6': '௬', - '7': '௭', - '8': '௮', - '9': '௯', - '0': '௦' -}, numberMap = { - '௧': '1', - '௨': '2', - '௩': '3', - '௪': '4', - '௫': '5', - '௬': '6', - '௭': '7', - '௮': '8', - '௯': '9', - '௦': '0' -}; - -export default moment.defineLocale('ta', { - months : 'ஜனவரி_பிப்ரவரி_மார்ச்_ஏப்ரல்_மே_ஜூன்_ஜூலை_ஆகஸ்ட்_செப்டெம்பர்_அக்டோபர்_நவம்பர்_டிசம்பர்'.split('_'), - monthsShort : 'ஜனவரி_பிப்ரவரி_மார்ச்_ஏப்ரல்_மே_ஜூன்_ஜூலை_ஆகஸ்ட்_செப்டெம்பர்_அக்டோபர்_நவம்பர்_டிசம்பர்'.split('_'), - weekdays : 'ஞாயிற்றுக்கிழமை_திங்கட்கிழமை_செவ்வாய்கிழமை_புதன்கிழமை_வியாழக்கிழமை_வெள்ளிக்கிழமை_சனிக்கிழமை'.split('_'), - weekdaysShort : 'ஞாயிறு_திங்கள்_செவ்வாய்_புதன்_வியாழன்_வெள்ளி_சனி'.split('_'), - weekdaysMin : 'ஞா_தி_செ_பு_வி_வெ_ச'.split('_'), - longDateFormat : { - LT : 'HH:mm', - LTS : 'HH:mm:ss', - L : 'DD/MM/YYYY', - LL : 'D MMMM YYYY', - LLL : 'D MMMM YYYY, HH:mm', - LLLL : 'dddd, D MMMM YYYY, HH:mm' - }, - 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 ஆண்டுகள்' - }, - dayOfMonthOrdinalParse: /\d{1,2}வது/, - ordinal : function (number) { - return number + 'வது'; - }, - preparse: function (string) { - return string.replace(/[௧௨௩௪௫௬௭௮௯௦]/g, function (match) { - return numberMap[match]; - }); - }, - postformat: function (string) { - return string.replace(/\d/g, function (match) { - return symbolMap[match]; - }); - }, - // refer http://ta.wikipedia.org/s/1er1 - meridiemParse: /யாமம்|வைகறை|காலை|நண்பகல்|எற்பாடு|மாலை/, - meridiem : function (hour, minute, isLower) { - if (hour < 2) { - return ' யாமம்'; - } else if (hour < 6) { - return ' வைகறை'; // வைகறை - } else if (hour < 10) { - return ' காலை'; // காலை - } else if (hour < 14) { - return ' நண்பகல்'; // நண்பகல் - } else if (hour < 18) { - return ' எற்பாடு'; // எற்பாடு - } else if (hour < 22) { - return ' மாலை'; // மாலை - } else { - return ' யாமம்'; - } - }, - meridiemHour : function (hour, meridiem) { - if (hour === 12) { - hour = 0; - } - if (meridiem === 'யாமம்') { - return hour < 2 ? hour : hour + 12; - } else if (meridiem === 'வைகறை' || meridiem === 'காலை') { - return hour; - } else if (meridiem === 'நண்பகல்') { - return hour >= 10 ? hour : hour + 12; - } else { - return hour + 12; - } - }, - week : { - dow : 0, // Sunday is the first day of the week. - doy : 6 // The week that contains Jan 1st is the first week of the year. - } -}); - diff --git a/admin/bower_components/moment/src/locale/te.js b/admin/bower_components/moment/src/locale/te.js deleted file mode 100644 index d8bba86..0000000 --- a/admin/bower_components/moment/src/locale/te.js +++ /dev/null @@ -1,79 +0,0 @@ -//! moment.js locale configuration -//! locale : Telugu [te] -//! author : Krishna Chaitanya Thota : https://github.com/kcthota - -import moment from '../moment'; - -export default moment.defineLocale('te', { - months : 'జనవరి_ఫిబ్రవరి_మార్చి_ఏప్రిల్_మే_జూన్_జూలై_ఆగస్టు_సెప్టెంబర్_అక్టోబర్_నవంబర్_డిసెంబర్'.split('_'), - monthsShort : 'జన._ఫిబ్ర._మార్చి_ఏప్రి._మే_జూన్_జూలై_ఆగ._సెప్._అక్టో._నవ._డిసె.'.split('_'), - monthsParseExact : true, - weekdays : 'ఆదివారం_సోమవారం_మంగళవారం_బుధవారం_గురువారం_శుక్రవారం_శనివారం'.split('_'), - weekdaysShort : 'ఆది_సోమ_మంగళ_బుధ_గురు_శుక్ర_శని'.split('_'), - weekdaysMin : 'ఆ_సో_మం_బు_గు_శు_శ'.split('_'), - longDateFormat : { - LT : 'A h:mm', - LTS : 'A h:mm:ss', - L : 'DD/MM/YYYY', - LL : 'D MMMM YYYY', - LLL : 'D MMMM YYYY, A h:mm', - LLLL : 'dddd, D MMMM YYYY, A h:mm' - }, - 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 సంవత్సరాలు' - }, - dayOfMonthOrdinalParse : /\d{1,2}వ/, - ordinal : '%dవ', - meridiemParse: /రాత్రి|ఉదయం|మధ్యాహ్నం|సాయంత్రం/, - meridiemHour : function (hour, meridiem) { - if (hour === 12) { - hour = 0; - } - if (meridiem === 'రాత్రి') { - return hour < 4 ? hour : hour + 12; - } else if (meridiem === 'ఉదయం') { - return hour; - } else if (meridiem === 'మధ్యాహ్నం') { - return hour >= 10 ? hour : hour + 12; - } else if (meridiem === 'సాయంత్రం') { - return hour + 12; - } - }, - meridiem : function (hour, minute, isLower) { - if (hour < 4) { - return 'రాత్రి'; - } else if (hour < 10) { - return 'ఉదయం'; - } else if (hour < 17) { - return 'మధ్యాహ్నం'; - } else if (hour < 20) { - return 'సాయంత్రం'; - } else { - return 'రాత్రి'; - } - }, - week : { - dow : 0, // Sunday is the first day of the week. - doy : 6 // The week that contains Jan 1st is the first week of the year. - } -}); diff --git a/admin/bower_components/moment/src/locale/tet.js b/admin/bower_components/moment/src/locale/tet.js deleted file mode 100644 index 117f7dd..0000000 --- a/admin/bower_components/moment/src/locale/tet.js +++ /dev/null @@ -1,58 +0,0 @@ -//! moment.js locale configuration -//! locale : Tetun Dili (East Timor) [tet] -//! author : Joshua Brooks : https://github.com/joshbrooks -//! author : Onorio De J. Afonso : https://github.com/marobo - -import moment from '../moment'; - -export default moment.defineLocale('tet', { - months : 'Janeiru_Fevereiru_Marsu_Abril_Maiu_Juniu_Juliu_Augustu_Setembru_Outubru_Novembru_Dezembru'.split('_'), - monthsShort : 'Jan_Fev_Mar_Abr_Mai_Jun_Jul_Aug_Set_Out_Nov_Dez'.split('_'), - weekdays : 'Domingu_Segunda_Tersa_Kuarta_Kinta_Sexta_Sabadu'.split('_'), - weekdaysShort : 'Dom_Seg_Ters_Kua_Kint_Sext_Sab'.split('_'), - weekdaysMin : 'Do_Seg_Te_Ku_Ki_Sex_Sa'.split('_'), - longDateFormat : { - LT : 'HH:mm', - LTS : 'HH:mm:ss', - L : 'DD/MM/YYYY', - LL : 'D MMMM YYYY', - LLL : 'D MMMM YYYY HH:mm', - LLLL : 'dddd, D MMMM YYYY HH:mm' - }, - calendar : { - sameDay: '[Ohin iha] LT', - nextDay: '[Aban iha] LT', - nextWeek: 'dddd [iha] LT', - lastDay: '[Horiseik iha] LT', - lastWeek: 'dddd [semana kotuk] [iha] LT', - sameElse: 'L' - }, - relativeTime : { - future : 'iha %s', - past : '%s liuba', - s : 'minutu balun', - m : 'minutu ida', - mm : 'minutus %d', - h : 'horas ida', - hh : 'horas %d', - d : 'loron ida', - dd : 'loron %d', - M : 'fulan ida', - MM : 'fulan %d', - y : 'tinan ida', - yy : 'tinan %d' - }, - dayOfMonthOrdinalParse: /\d{1,2}(st|nd|rd|th)/, - ordinal : function (number) { - var b = number % 10, - output = (~~(number % 100 / 10) === 1) ? 'th' : - (b === 1) ? 'st' : - (b === 2) ? 'nd' : - (b === 3) ? 'rd' : 'th'; - return number + output; - }, - week : { - dow : 1, // Monday is the first day of the week. - doy : 4 // The week that contains Jan 4th is the first week of the year. - } -}); diff --git a/admin/bower_components/moment/src/locale/th.js b/admin/bower_components/moment/src/locale/th.js deleted file mode 100644 index 2aa38df..0000000 --- a/admin/bower_components/moment/src/locale/th.js +++ /dev/null @@ -1,57 +0,0 @@ -//! moment.js locale configuration -//! locale : Thai [th] -//! author : Kridsada Thanabulpong : https://github.com/sirn - -import moment from '../moment'; - -export default moment.defineLocale('th', { - months : 'มกราคม_กุมภาพันธ์_มีนาคม_เมษายน_พฤษภาคม_มิถุนายน_กรกฎาคม_สิงหาคม_กันยายน_ตุลาคม_พฤศจิกายน_ธันวาคม'.split('_'), - monthsShort : 'ม.ค._ก.พ._มี.ค._เม.ย._พ.ค._มิ.ย._ก.ค._ส.ค._ก.ย._ต.ค._พ.ย._ธ.ค.'.split('_'), - monthsParseExact: true, - weekdays : 'อาทิตย์_จันทร์_อังคาร_พุธ_พฤหัสบดี_ศุกร์_เสาร์'.split('_'), - weekdaysShort : 'อาทิตย์_จันทร์_อังคาร_พุธ_พฤหัส_ศุกร์_เสาร์'.split('_'), // yes, three characters difference - weekdaysMin : 'อา._จ._อ._พ._พฤ._ศ._ส.'.split('_'), - weekdaysParseExact : true, - longDateFormat : { - LT : 'H:mm', - LTS : 'H:mm:ss', - L : 'DD/MM/YYYY', - LL : 'D MMMM YYYY', - LLL : 'D MMMM YYYY เวลา H:mm', - LLLL : 'วันddddที่ D MMMM YYYY เวลา H:mm' - }, - meridiemParse: /ก่อนเที่ยง|หลังเที่ยง/, - isPM: function (input) { - return input === 'หลังเที่ยง'; - }, - meridiem : function (hour, minute, isLower) { - if (hour < 12) { - return 'ก่อนเที่ยง'; - } else { - return 'หลังเที่ยง'; - } - }, - 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 ปี' - } -}); diff --git a/admin/bower_components/moment/src/locale/tl-ph.js b/admin/bower_components/moment/src/locale/tl-ph.js deleted file mode 100644 index c1bf183..0000000 --- a/admin/bower_components/moment/src/locale/tl-ph.js +++ /dev/null @@ -1,53 +0,0 @@ -//! moment.js locale configuration -//! locale : Tagalog (Philippines) [tl-ph] -//! author : Dan Hagman : https://github.com/hagmandan - -import moment from '../moment'; - -export default moment.defineLocale('tl-ph', { - months : 'Enero_Pebrero_Marso_Abril_Mayo_Hunyo_Hulyo_Agosto_Setyembre_Oktubre_Nobyembre_Disyembre'.split('_'), - monthsShort : 'Ene_Peb_Mar_Abr_May_Hun_Hul_Ago_Set_Okt_Nob_Dis'.split('_'), - weekdays : 'Linggo_Lunes_Martes_Miyerkules_Huwebes_Biyernes_Sabado'.split('_'), - weekdaysShort : 'Lin_Lun_Mar_Miy_Huw_Biy_Sab'.split('_'), - weekdaysMin : 'Li_Lu_Ma_Mi_Hu_Bi_Sab'.split('_'), - longDateFormat : { - LT : 'HH:mm', - LTS : 'HH:mm:ss', - L : 'MM/D/YYYY', - LL : 'MMMM D, YYYY', - LLL : 'MMMM D, YYYY HH:mm', - LLLL : 'dddd, MMMM DD, YYYY HH:mm' - }, - calendar : { - sameDay: 'LT [ngayong araw]', - nextDay: '[Bukas ng] LT', - nextWeek: 'LT [sa susunod na] dddd', - lastDay: 'LT [kahapon]', - lastWeek: 'LT [noong nakaraang] dddd', - sameElse: 'L' - }, - relativeTime : { - future : 'sa loob ng %s', - past : '%s ang nakalipas', - s : 'ilang segundo', - m : 'isang minuto', - mm : '%d minuto', - h : 'isang oras', - hh : '%d oras', - d : 'isang araw', - dd : '%d araw', - M : 'isang buwan', - MM : '%d buwan', - y : 'isang taon', - yy : '%d taon' - }, - dayOfMonthOrdinalParse: /\d{1,2}/, - ordinal : function (number) { - return number; - }, - week : { - dow : 1, // Monday is the first day of the week. - doy : 4 // The week that contains Jan 4th is the first week of the year. - } -}); - diff --git a/admin/bower_components/moment/src/locale/tlh.js b/admin/bower_components/moment/src/locale/tlh.js deleted file mode 100644 index 857d9a7..0000000 --- a/admin/bower_components/moment/src/locale/tlh.js +++ /dev/null @@ -1,110 +0,0 @@ -//! moment.js locale configuration -//! locale : Klingon [tlh] -//! author : Dominika Kruk : https://github.com/amaranthrose - -import moment from '../moment'; - -var numbersNouns = 'pagh_wa’_cha’_wej_loS_vagh_jav_Soch_chorgh_Hut'.split('_'); - -function translateFuture(output) { - var time = output; - time = (output.indexOf('jaj') !== -1) ? - time.slice(0, -3) + 'leS' : - (output.indexOf('jar') !== -1) ? - time.slice(0, -3) + 'waQ' : - (output.indexOf('DIS') !== -1) ? - time.slice(0, -3) + 'nem' : - time + ' pIq'; - return time; -} - -function translatePast(output) { - var time = output; - time = (output.indexOf('jaj') !== -1) ? - time.slice(0, -3) + 'Hu’' : - (output.indexOf('jar') !== -1) ? - time.slice(0, -3) + 'wen' : - (output.indexOf('DIS') !== -1) ? - time.slice(0, -3) + 'ben' : - time + ' ret'; - return time; -} - -function translate(number, withoutSuffix, string, isFuture) { - var numberNoun = numberAsNoun(number); - switch (string) { - case 'mm': - return numberNoun + ' tup'; - case 'hh': - return numberNoun + ' rep'; - case 'dd': - return numberNoun + ' jaj'; - case 'MM': - return numberNoun + ' jar'; - case 'yy': - return numberNoun + ' DIS'; - } -} - -function numberAsNoun(number) { - var hundred = Math.floor((number % 1000) / 100), - ten = Math.floor((number % 100) / 10), - one = number % 10, - word = ''; - if (hundred > 0) { - word += numbersNouns[hundred] + 'vatlh'; - } - if (ten > 0) { - word += ((word !== '') ? ' ' : '') + numbersNouns[ten] + 'maH'; - } - if (one > 0) { - word += ((word !== '') ? ' ' : '') + numbersNouns[one]; - } - return (word === '') ? 'pagh' : word; -} - -export default moment.defineLocale('tlh', { - months : 'tera’ jar wa’_tera’ jar cha’_tera’ jar wej_tera’ jar loS_tera’ jar vagh_tera’ jar jav_tera’ jar Soch_tera’ jar chorgh_tera’ jar Hut_tera’ jar wa’maH_tera’ jar wa’maH wa’_tera’ jar wa’maH cha’'.split('_'), - monthsShort : 'jar wa’_jar cha’_jar wej_jar loS_jar vagh_jar jav_jar Soch_jar chorgh_jar Hut_jar wa’maH_jar wa’maH wa’_jar wa’maH cha’'.split('_'), - monthsParseExact : true, - weekdays : 'lojmItjaj_DaSjaj_povjaj_ghItlhjaj_loghjaj_buqjaj_ghInjaj'.split('_'), - weekdaysShort : 'lojmItjaj_DaSjaj_povjaj_ghItlhjaj_loghjaj_buqjaj_ghInjaj'.split('_'), - weekdaysMin : 'lojmItjaj_DaSjaj_povjaj_ghItlhjaj_loghjaj_buqjaj_ghInjaj'.split('_'), - longDateFormat : { - LT : 'HH:mm', - LTS : 'HH:mm:ss', - L : 'DD.MM.YYYY', - LL : 'D MMMM YYYY', - LLL : 'D MMMM YYYY HH:mm', - LLLL : 'dddd, D MMMM YYYY HH:mm' - }, - calendar : { - sameDay: '[DaHjaj] LT', - nextDay: '[wa’leS] LT', - nextWeek: 'LLL', - lastDay: '[wa’Hu’] LT', - lastWeek: 'LLL', - sameElse: 'L' - }, - relativeTime : { - future : translateFuture, - past : translatePast, - s : 'puS lup', - m : 'wa’ tup', - mm : translate, - h : 'wa’ rep', - hh : translate, - d : 'wa’ jaj', - dd : translate, - M : 'wa’ jar', - MM : translate, - y : 'wa’ DIS', - yy : translate - }, - dayOfMonthOrdinalParse: /\d{1,2}\./, - ordinal : '%d.', - week : { - dow : 1, // Monday is the first day of the week. - doy : 4 // The week that contains Jan 4th is the first week of the year. - } -}); diff --git a/admin/bower_components/moment/src/locale/tr.js b/admin/bower_components/moment/src/locale/tr.js deleted file mode 100644 index 04bdea0..0000000 --- a/admin/bower_components/moment/src/locale/tr.js +++ /dev/null @@ -1,81 +0,0 @@ -//! moment.js locale configuration -//! locale : Turkish [tr] -//! authors : Erhan Gundogan : https://github.com/erhangundogan, -//! Burak Yiğit Kaya: https://github.com/BYK - -import moment from '../moment'; - -var suffixes = { - 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ı' -}; - -export default moment.defineLocale('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', - LTS : 'HH:mm:ss', - L : 'DD.MM.YYYY', - LL : 'D MMMM YYYY', - LLL : 'D MMMM YYYY HH:mm', - LLLL : 'dddd, D MMMM YYYY HH:mm' - }, - 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' - }, - dayOfMonthOrdinalParse: /\d{1,2}'(inci|nci|üncü|ncı|uncu|ıncı)/, - ordinal : function (number) { - if (number === 0) { // special case for zero - return number + '\'ıncı'; - } - var a = number % 10, - b = number % 100 - a, - c = number >= 100 ? 100 : null; - return number + (suffixes[a] || suffixes[b] || suffixes[c]); - }, - week : { - dow : 1, // Monday is the first day of the week. - doy : 7 // The week that contains Jan 1st is the first week of the year. - } -}); - diff --git a/admin/bower_components/moment/src/locale/tzl.js b/admin/bower_components/moment/src/locale/tzl.js deleted file mode 100644 index c86fb69..0000000 --- a/admin/bower_components/moment/src/locale/tzl.js +++ /dev/null @@ -1,82 +0,0 @@ -//! moment.js locale configuration -//! locale : Talossan [tzl] -//! author : Robin van der Vliet : https://github.com/robin0van0der0v -//! author : Iustì Canun - -import moment from '../moment'; - -// After the year there should be a slash and the amount of years since December 26, 1979 in Roman numerals. -// This is currently too difficult (maybe even impossible) to add. -export default moment.defineLocale('tzl', { - months : 'Januar_Fevraglh_Març_Avrïu_Mai_Gün_Julia_Guscht_Setemvar_Listopäts_Noemvar_Zecemvar'.split('_'), - monthsShort : 'Jan_Fev_Mar_Avr_Mai_Gün_Jul_Gus_Set_Lis_Noe_Zec'.split('_'), - weekdays : 'Súladi_Lúneçi_Maitzi_Márcuri_Xhúadi_Viénerçi_Sáturi'.split('_'), - weekdaysShort : 'Súl_Lún_Mai_Már_Xhú_Vié_Sát'.split('_'), - weekdaysMin : 'Sú_Lú_Ma_Má_Xh_Vi_Sá'.split('_'), - longDateFormat : { - LT : 'HH.mm', - LTS : 'HH.mm.ss', - L : 'DD.MM.YYYY', - LL : 'D. MMMM [dallas] YYYY', - LLL : 'D. MMMM [dallas] YYYY HH.mm', - LLLL : 'dddd, [li] D. MMMM [dallas] YYYY HH.mm' - }, - meridiemParse: /d\'o|d\'a/i, - isPM : function (input) { - return 'd\'o' === input.toLowerCase(); - }, - meridiem : function (hours, minutes, isLower) { - if (hours > 11) { - return isLower ? 'd\'o' : 'D\'O'; - } else { - return isLower ? 'd\'a' : 'D\'A'; - } - }, - calendar : { - sameDay : '[oxhi à] LT', - nextDay : '[demà à] LT', - nextWeek : 'dddd [à] LT', - lastDay : '[ieiri à] LT', - lastWeek : '[sür el] dddd [lasteu à] LT', - sameElse : 'L' - }, - relativeTime : { - future : 'osprei %s', - past : 'ja%s', - s : processRelativeTime, - m : processRelativeTime, - mm : processRelativeTime, - h : processRelativeTime, - hh : processRelativeTime, - d : processRelativeTime, - dd : processRelativeTime, - M : processRelativeTime, - MM : processRelativeTime, - y : processRelativeTime, - yy : processRelativeTime - }, - dayOfMonthOrdinalParse: /\d{1,2}\./, - ordinal : '%d.', - week : { - dow : 1, // Monday is the first day of the week. - doy : 4 // The week that contains Jan 4th is the first week of the year. - } -}); - -function processRelativeTime(number, withoutSuffix, key, isFuture) { - var format = { - 's': ['viensas secunds', '\'iensas secunds'], - 'm': ['\'n míut', '\'iens míut'], - 'mm': [number + ' míuts', '' + number + ' míuts'], - 'h': ['\'n þora', '\'iensa þora'], - 'hh': [number + ' þoras', '' + number + ' þoras'], - 'd': ['\'n ziua', '\'iensa ziua'], - 'dd': [number + ' ziuas', '' + number + ' ziuas'], - 'M': ['\'n mes', '\'iens mes'], - 'MM': [number + ' mesen', '' + number + ' mesen'], - 'y': ['\'n ar', '\'iens ar'], - 'yy': [number + ' ars', '' + number + ' ars'] - }; - return isFuture ? format[key][0] : (withoutSuffix ? format[key][0] : format[key][1]); -} - diff --git a/admin/bower_components/moment/src/locale/tzm-latn.js b/admin/bower_components/moment/src/locale/tzm-latn.js deleted file mode 100644 index aaf62d7..0000000 --- a/admin/bower_components/moment/src/locale/tzm-latn.js +++ /dev/null @@ -1,49 +0,0 @@ -//! moment.js locale configuration -//! locale : Central Atlas Tamazight Latin [tzm-latn] -//! author : Abdel Said : https://github.com/abdelsaid - -import moment from '../moment'; - -export default moment.defineLocale('tzm-latn', { - 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', - LTS : 'HH:mm:ss', - L : 'DD/MM/YYYY', - LL : 'D MMMM YYYY', - LLL : 'D MMMM YYYY HH:mm', - LLLL : 'dddd D MMMM YYYY HH:mm' - }, - 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, // Saturday is the first day of the week. - doy : 12 // The week that contains Jan 1st is the first week of the year. - } -}); - diff --git a/admin/bower_components/moment/src/locale/tzm.js b/admin/bower_components/moment/src/locale/tzm.js deleted file mode 100644 index 663f85f..0000000 --- a/admin/bower_components/moment/src/locale/tzm.js +++ /dev/null @@ -1,49 +0,0 @@ -//! moment.js locale configuration -//! locale : Central Atlas Tamazight [tzm] -//! author : Abdel Said : https://github.com/abdelsaid - -import moment from '../moment'; - -export default moment.defineLocale('tzm', { - months : 'ⵉⵏⵏⴰⵢⵔ_ⴱⵕⴰⵢⵕ_ⵎⴰⵕⵚ_ⵉⴱⵔⵉⵔ_ⵎⴰⵢⵢⵓ_ⵢⵓⵏⵢⵓ_ⵢⵓⵍⵢⵓⵣ_ⵖⵓⵛⵜ_ⵛⵓⵜⴰⵏⴱⵉⵔ_ⴽⵟⵓⴱⵕ_ⵏⵓⵡⴰⵏⴱⵉⵔ_ⴷⵓⵊⵏⴱⵉⵔ'.split('_'), - monthsShort : 'ⵉⵏⵏⴰⵢⵔ_ⴱⵕⴰⵢⵕ_ⵎⴰⵕⵚ_ⵉⴱⵔⵉⵔ_ⵎⴰⵢⵢⵓ_ⵢⵓⵏⵢⵓ_ⵢⵓⵍⵢⵓⵣ_ⵖⵓⵛⵜ_ⵛⵓⵜⴰⵏⴱⵉⵔ_ⴽⵟⵓⴱⵕ_ⵏⵓⵡⴰⵏⴱⵉⵔ_ⴷⵓⵊⵏⴱⵉⵔ'.split('_'), - weekdays : 'ⴰⵙⴰⵎⴰⵙ_ⴰⵢⵏⴰⵙ_ⴰⵙⵉⵏⴰⵙ_ⴰⴽⵔⴰⵙ_ⴰⴽⵡⴰⵙ_ⴰⵙⵉⵎⵡⴰⵙ_ⴰⵙⵉⴹⵢⴰⵙ'.split('_'), - weekdaysShort : 'ⴰⵙⴰⵎⴰⵙ_ⴰⵢⵏⴰⵙ_ⴰⵙⵉⵏⴰⵙ_ⴰⴽⵔⴰⵙ_ⴰⴽⵡⴰⵙ_ⴰⵙⵉⵎⵡⴰⵙ_ⴰⵙⵉⴹⵢⴰⵙ'.split('_'), - weekdaysMin : 'ⴰⵙⴰⵎⴰⵙ_ⴰⵢⵏⴰⵙ_ⴰⵙⵉⵏⴰⵙ_ⴰⴽⵔⴰⵙ_ⴰⴽⵡⴰⵙ_ⴰⵙⵉⵎⵡⴰⵙ_ⴰⵙⵉⴹⵢⴰⵙ'.split('_'), - longDateFormat : { - LT : 'HH:mm', - LTS: 'HH:mm:ss', - L : 'DD/MM/YYYY', - LL : 'D MMMM YYYY', - LLL : 'D MMMM YYYY HH:mm', - LLLL : 'dddd D MMMM YYYY HH:mm' - }, - 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, // Saturday is the first day of the week. - doy : 12 // The week that contains Jan 1st is the first week of the year. - } -}); - diff --git a/admin/bower_components/moment/src/locale/uk.js b/admin/bower_components/moment/src/locale/uk.js deleted file mode 100644 index 8c65254..0000000 --- a/admin/bower_components/moment/src/locale/uk.js +++ /dev/null @@ -1,142 +0,0 @@ -//! moment.js locale configuration -//! locale : Ukrainian [uk] -//! author : zemlanin : https://github.com/zemlanin -//! Author : Menelion Elensúle : https://github.com/Oire - -import moment from '../moment'; - -function plural(word, num) { - var forms = word.split('_'); - return num % 10 === 1 && num % 100 !== 11 ? forms[0] : (num % 10 >= 2 && num % 10 <= 4 && (num % 100 < 10 || num % 100 >= 20) ? forms[1] : forms[2]); -} -function relativeTimeWithPlural(number, withoutSuffix, key) { - var format = { - 'mm': withoutSuffix ? 'хвилина_хвилини_хвилин' : 'хвилину_хвилини_хвилин', - 'hh': withoutSuffix ? 'година_години_годин' : 'годину_години_годин', - 'dd': 'день_дні_днів', - 'MM': 'місяць_місяці_місяців', - 'yy': 'рік_роки_років' - }; - if (key === 'm') { - return withoutSuffix ? 'хвилина' : 'хвилину'; - } - else if (key === 'h') { - return withoutSuffix ? 'година' : 'годину'; - } - else { - return number + ' ' + plural(format[key], +number); - } -} -function weekdaysCaseReplace(m, format) { - var weekdays = { - 'nominative': 'неділя_понеділок_вівторок_середа_четвер_п’ятниця_субота'.split('_'), - 'accusative': 'неділю_понеділок_вівторок_середу_четвер_п’ятницю_суботу'.split('_'), - 'genitive': 'неділі_понеділка_вівторка_середи_четверга_п’ятниці_суботи'.split('_') - }; - - if (!m) { - return weekdays['nominative']; - } - - var nounCase = (/(\[[ВвУу]\]) ?dddd/).test(format) ? - 'accusative' : - ((/\[?(?:минулої|наступної)? ?\] ?dddd/).test(format) ? - 'genitive' : - 'nominative'); - return weekdays[nounCase][m.day()]; -} -function processHoursFunction(str) { - return function () { - return str + 'о' + (this.hours() === 11 ? 'б' : '') + '] LT'; - }; -} - -export default moment.defineLocale('uk', { - months : { - 'format': 'січня_лютого_березня_квітня_травня_червня_липня_серпня_вересня_жовтня_листопада_грудня'.split('_'), - 'standalone': 'січень_лютий_березень_квітень_травень_червень_липень_серпень_вересень_жовтень_листопад_грудень'.split('_') - }, - monthsShort : 'січ_лют_бер_квіт_трав_черв_лип_серп_вер_жовт_лист_груд'.split('_'), - weekdays : weekdaysCaseReplace, - weekdaysShort : 'нд_пн_вт_ср_чт_пт_сб'.split('_'), - weekdaysMin : 'нд_пн_вт_ср_чт_пт_сб'.split('_'), - longDateFormat : { - LT : 'HH:mm', - LTS : 'HH:mm:ss', - L : 'DD.MM.YYYY', - LL : 'D MMMM YYYY р.', - LLL : 'D MMMM YYYY р., HH:mm', - LLLL : 'dddd, D MMMM YYYY р., HH:mm' - }, - calendar : { - sameDay: processHoursFunction('[Сьогодні '), - nextDay: processHoursFunction('[Завтра '), - lastDay: processHoursFunction('[Вчора '), - nextWeek: processHoursFunction('[У] dddd ['), - lastWeek: function () { - switch (this.day()) { - case 0: - case 3: - case 5: - case 6: - return processHoursFunction('[Минулої] dddd [').call(this); - case 1: - case 2: - case 4: - return processHoursFunction('[Минулого] dddd [').call(this); - } - }, - sameElse: 'L' - }, - relativeTime : { - future : 'за %s', - past : '%s тому', - s : 'декілька секунд', - m : relativeTimeWithPlural, - mm : relativeTimeWithPlural, - h : 'годину', - hh : relativeTimeWithPlural, - d : 'день', - dd : relativeTimeWithPlural, - M : 'місяць', - MM : relativeTimeWithPlural, - y : 'рік', - yy : relativeTimeWithPlural - }, - // M. E.: those two are virtually unused but a user might want to implement them for his/her website for some reason - meridiemParse: /ночі|ранку|дня|вечора/, - isPM: function (input) { - return /^(дня|вечора)$/.test(input); - }, - meridiem : function (hour, minute, isLower) { - if (hour < 4) { - return 'ночі'; - } else if (hour < 12) { - return 'ранку'; - } else if (hour < 17) { - return 'дня'; - } else { - return 'вечора'; - } - }, - dayOfMonthOrdinalParse: /\d{1,2}-(й|го)/, - ordinal: function (number, period) { - switch (period) { - case 'M': - case 'd': - case 'DDD': - case 'w': - case 'W': - return number + '-й'; - case 'D': - return number + '-го'; - default: - return number; - } - }, - week : { - dow : 1, // Monday is the first day of the week. - doy : 7 // The week that contains Jan 1st is the first week of the year. - } -}); - diff --git a/admin/bower_components/moment/src/locale/ur.js b/admin/bower_components/moment/src/locale/ur.js deleted file mode 100644 index ecf1690..0000000 --- a/admin/bower_components/moment/src/locale/ur.js +++ /dev/null @@ -1,89 +0,0 @@ -//! moment.js locale configuration -//! locale : Urdu [ur] -//! author : Sawood Alam : https://github.com/ibnesayeed -//! author : Zack : https://github.com/ZackVision - -import moment from '../moment'; - -var months = [ - 'جنوری', - 'فروری', - 'مارچ', - 'اپریل', - 'مئی', - 'جون', - 'جولائی', - 'اگست', - 'ستمبر', - 'اکتوبر', - 'نومبر', - 'دسمبر' -]; -var days = [ - 'اتوار', - 'پیر', - 'منگل', - 'بدھ', - 'جمعرات', - 'جمعہ', - 'ہفتہ' -]; - -export default moment.defineLocale('ur', { - months : months, - monthsShort : months, - weekdays : days, - weekdaysShort : days, - weekdaysMin : days, - longDateFormat : { - LT : 'HH:mm', - LTS : 'HH:mm:ss', - L : 'DD/MM/YYYY', - LL : 'D MMMM YYYY', - LLL : 'D MMMM YYYY HH:mm', - LLLL : 'dddd، D MMMM YYYY HH:mm' - }, - meridiemParse: /صبح|شام/, - isPM : function (input) { - return 'شام' === input; - }, - meridiem : function (hour, minute, isLower) { - if (hour < 12) { - return 'صبح'; - } - return 'شام'; - }, - 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 (string) { - return string.replace(/،/g, ','); - }, - postformat: function (string) { - return string.replace(/,/g, '،'); - }, - week : { - dow : 1, // Monday is the first day of the week. - doy : 4 // The week that contains Jan 4th is the first week of the year. - } -}); diff --git a/admin/bower_components/moment/src/locale/uz-latn.js b/admin/bower_components/moment/src/locale/uz-latn.js deleted file mode 100644 index a057a3e..0000000 --- a/admin/bower_components/moment/src/locale/uz-latn.js +++ /dev/null @@ -1,49 +0,0 @@ -//! moment.js locale configuration -//! locale : Uzbek Latin [uz-latn] -//! author : Rasulbek Mirzayev : github.com/Rasulbeeek - -import moment from '../moment'; - -export default moment.defineLocale('uz-latn', { - months : 'Yanvar_Fevral_Mart_Aprel_May_Iyun_Iyul_Avgust_Sentabr_Oktabr_Noyabr_Dekabr'.split('_'), - monthsShort : 'Yan_Fev_Mar_Apr_May_Iyun_Iyul_Avg_Sen_Okt_Noy_Dek'.split('_'), - weekdays : 'Yakshanba_Dushanba_Seshanba_Chorshanba_Payshanba_Juma_Shanba'.split('_'), - weekdaysShort : 'Yak_Dush_Sesh_Chor_Pay_Jum_Shan'.split('_'), - weekdaysMin : 'Ya_Du_Se_Cho_Pa_Ju_Sha'.split('_'), - longDateFormat : { - LT : 'HH:mm', - LTS : 'HH:mm:ss', - L : 'DD/MM/YYYY', - LL : 'D MMMM YYYY', - LLL : 'D MMMM YYYY HH:mm', - LLLL : 'D MMMM YYYY, dddd HH:mm' - }, - calendar : { - sameDay : '[Bugun soat] LT [da]', - nextDay : '[Ertaga] LT [da]', - nextWeek : 'dddd [kuni soat] LT [da]', - lastDay : '[Kecha soat] LT [da]', - lastWeek : '[O\'tgan] dddd [kuni soat] LT [da]', - sameElse : 'L' - }, - relativeTime : { - future : 'Yaqin %s ichida', - past : 'Bir necha %s oldin', - s : 'soniya', - m : 'bir daqiqa', - mm : '%d daqiqa', - h : 'bir soat', - hh : '%d soat', - d : 'bir kun', - dd : '%d kun', - M : 'bir oy', - MM : '%d oy', - y : 'bir yil', - yy : '%d yil' - }, - week : { - dow : 1, // Monday is the first day of the week. - doy : 7 // The week that contains Jan 1st is the first week of the year. - } -}); - diff --git a/admin/bower_components/moment/src/locale/uz.js b/admin/bower_components/moment/src/locale/uz.js deleted file mode 100644 index 24a80e1..0000000 --- a/admin/bower_components/moment/src/locale/uz.js +++ /dev/null @@ -1,49 +0,0 @@ -//! moment.js locale configuration -//! locale : Uzbek [uz] -//! author : Sardor Muminov : https://github.com/muminoff - -import moment from '../moment'; - -export default moment.defineLocale('uz', { - months : 'январ_феврал_март_апрел_май_июн_июл_август_сентябр_октябр_ноябр_декабр'.split('_'), - monthsShort : 'янв_фев_мар_апр_май_июн_июл_авг_сен_окт_ноя_дек'.split('_'), - weekdays : 'Якшанба_Душанба_Сешанба_Чоршанба_Пайшанба_Жума_Шанба'.split('_'), - weekdaysShort : 'Якш_Душ_Сеш_Чор_Пай_Жум_Шан'.split('_'), - weekdaysMin : 'Як_Ду_Се_Чо_Па_Жу_Ша'.split('_'), - longDateFormat : { - LT : 'HH:mm', - LTS : 'HH:mm:ss', - L : 'DD/MM/YYYY', - LL : 'D MMMM YYYY', - LLL : 'D MMMM YYYY HH:mm', - LLLL : 'D MMMM YYYY, dddd HH:mm' - }, - 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, // Monday is the first day of the week. - doy : 7 // The week that contains Jan 4th is the first week of the year. - } -}); - diff --git a/admin/bower_components/moment/src/locale/vi.js b/admin/bower_components/moment/src/locale/vi.js deleted file mode 100644 index 28c2d56..0000000 --- a/admin/bower_components/moment/src/locale/vi.js +++ /dev/null @@ -1,70 +0,0 @@ -//! moment.js locale configuration -//! locale : Vietnamese [vi] -//! author : Bang Nguyen : https://github.com/bangnk - -import moment from '../moment'; - -export default moment.defineLocale('vi', { - months : 'tháng 1_tháng 2_tháng 3_tháng 4_tháng 5_tháng 6_tháng 7_tháng 8_tháng 9_tháng 10_tháng 11_tháng 12'.split('_'), - monthsShort : 'Th01_Th02_Th03_Th04_Th05_Th06_Th07_Th08_Th09_Th10_Th11_Th12'.split('_'), - monthsParseExact : true, - weekdays : 'chủ nhật_thứ hai_thứ ba_thứ tư_thứ năm_thứ sáu_thứ bảy'.split('_'), - weekdaysShort : 'CN_T2_T3_T4_T5_T6_T7'.split('_'), - weekdaysMin : 'CN_T2_T3_T4_T5_T6_T7'.split('_'), - weekdaysParseExact : true, - meridiemParse: /sa|ch/i, - isPM : function (input) { - return /^ch$/i.test(input); - }, - meridiem : function (hours, minutes, isLower) { - if (hours < 12) { - return isLower ? 'sa' : 'SA'; - } else { - return isLower ? 'ch' : 'CH'; - } - }, - longDateFormat : { - LT : 'HH:mm', - LTS : 'HH:mm:ss', - L : 'DD/MM/YYYY', - LL : 'D MMMM [năm] YYYY', - LLL : 'D MMMM [năm] YYYY HH:mm', - LLLL : 'dddd, D MMMM [năm] YYYY HH:mm', - l : 'DD/M/YYYY', - ll : 'D MMM YYYY', - lll : 'D MMM YYYY HH:mm', - llll : 'ddd, D MMM YYYY HH:mm' - }, - calendar : { - sameDay: '[Hôm nay lúc] LT', - nextDay: '[Ngày mai lúc] LT', - nextWeek: 'dddd [tuần tới lúc] LT', - lastDay: '[Hôm qua lúc] LT', - lastWeek: 'dddd [tuần rồi lúc] LT', - sameElse: 'L' - }, - relativeTime : { - future : '%s tới', - past : '%s trước', - s : 'vài giây', - m : 'một phút', - mm : '%d phút', - h : 'một giờ', - hh : '%d giờ', - d : 'một ngày', - dd : '%d ngày', - M : 'một tháng', - MM : '%d tháng', - y : 'một năm', - yy : '%d năm' - }, - dayOfMonthOrdinalParse: /\d{1,2}/, - ordinal : function (number) { - return number; - }, - week : { - dow : 1, // Monday is the first day of the week. - doy : 4 // The week that contains Jan 4th is the first week of the year. - } -}); - diff --git a/admin/bower_components/moment/src/locale/x-pseudo.js b/admin/bower_components/moment/src/locale/x-pseudo.js deleted file mode 100644 index fba5112..0000000 --- a/admin/bower_components/moment/src/locale/x-pseudo.js +++ /dev/null @@ -1,58 +0,0 @@ -//! moment.js locale configuration -//! locale : Pseudo [x-pseudo] -//! author : Andrew Hood : https://github.com/andrewhood125 - -import moment from '../moment'; - -export default moment.defineLocale('x-pseudo', { - months : 'J~áñúá~rý_F~ébrú~árý_~Márc~h_Áp~ríl_~Máý_~Júñé~_Júl~ý_Áú~gúst~_Sép~témb~ér_Ó~ctób~ér_Ñ~óvém~bér_~Décé~mbér'.split('_'), - monthsShort : 'J~áñ_~Féb_~Már_~Ápr_~Máý_~Júñ_~Júl_~Áúg_~Sép_~Óct_~Ñóv_~Déc'.split('_'), - monthsParseExact : true, - weekdays : 'S~úñdá~ý_Mó~ñdáý~_Túé~sdáý~_Wéd~ñésd~áý_T~húrs~dáý_~Fríd~áý_S~átúr~dáý'.split('_'), - weekdaysShort : 'S~úñ_~Móñ_~Túé_~Wéd_~Thú_~Frí_~Sát'.split('_'), - weekdaysMin : 'S~ú_Mó~_Tú_~Wé_T~h_Fr~_Sá'.split('_'), - weekdaysParseExact : true, - longDateFormat : { - LT : 'HH:mm', - L : 'DD/MM/YYYY', - LL : 'D MMMM YYYY', - LLL : 'D MMMM YYYY HH:mm', - LLLL : 'dddd, D MMMM YYYY HH:mm' - }, - calendar : { - sameDay : '[T~ódá~ý át] LT', - nextDay : '[T~ómó~rró~w át] LT', - nextWeek : 'dddd [át] LT', - lastDay : '[Ý~ést~érdá~ý át] LT', - lastWeek : '[L~ást] dddd [át] LT', - sameElse : 'L' - }, - relativeTime : { - future : 'í~ñ %s', - past : '%s á~gó', - s : 'á ~féw ~sécó~ñds', - m : 'á ~míñ~úté', - mm : '%d m~íñú~tés', - h : 'á~ñ hó~úr', - hh : '%d h~óúrs', - d : 'á ~dáý', - dd : '%d d~áýs', - M : 'á ~móñ~th', - MM : '%d m~óñt~hs', - y : 'á ~ýéár', - yy : '%d ý~éárs' - }, - dayOfMonthOrdinalParse: /\d{1,2}(th|st|nd|rd)/, - ordinal : function (number) { - var b = number % 10, - output = (~~(number % 100 / 10) === 1) ? 'th' : - (b === 1) ? 'st' : - (b === 2) ? 'nd' : - (b === 3) ? 'rd' : 'th'; - return number + output; - }, - week : { - dow : 1, // Monday is the first day of the week. - doy : 4 // The week that contains Jan 4th is the first week of the year. - } -}); diff --git a/admin/bower_components/moment/src/locale/yo.js b/admin/bower_components/moment/src/locale/yo.js deleted file mode 100644 index 26f3aa9..0000000 --- a/admin/bower_components/moment/src/locale/yo.js +++ /dev/null @@ -1,50 +0,0 @@ -//! moment.js locale configuration -//! locale : Yoruba Nigeria [yo] -//! author : Atolagbe Abisoye : https://github.com/andela-batolagbe - -import moment from '../moment'; - -export default moment.defineLocale('yo', { - months : 'Sẹ́rẹ́_Èrèlè_Ẹrẹ̀nà_Ìgbé_Èbibi_Òkùdu_Agẹmo_Ògún_Owewe_Ọ̀wàrà_Bélú_Ọ̀pẹ̀̀'.split('_'), - monthsShort : 'Sẹ́r_Èrl_Ẹrn_Ìgb_Èbi_Òkù_Agẹ_Ògú_Owe_Ọ̀wà_Bél_Ọ̀pẹ̀̀'.split('_'), - weekdays : 'Àìkú_Ajé_Ìsẹ́gun_Ọjọ́rú_Ọjọ́bọ_Ẹtì_Àbámẹ́ta'.split('_'), - weekdaysShort : 'Àìk_Ajé_Ìsẹ́_Ọjr_Ọjb_Ẹtì_Àbá'.split('_'), - weekdaysMin : 'Àì_Aj_Ìs_Ọr_Ọb_Ẹt_Àb'.split('_'), - longDateFormat : { - LT : 'h:mm A', - LTS : 'h:mm:ss A', - L : 'DD/MM/YYYY', - LL : 'D MMMM YYYY', - LLL : 'D MMMM YYYY h:mm A', - LLLL : 'dddd, D MMMM YYYY h:mm A' - }, - calendar : { - sameDay : '[Ònì ni] LT', - nextDay : '[Ọ̀la ni] LT', - nextWeek : 'dddd [Ọsẹ̀ tón\'bọ] [ni] LT', - lastDay : '[Àna ni] LT', - lastWeek : 'dddd [Ọsẹ̀ tólọ́] [ni] LT', - sameElse : 'L' - }, - relativeTime : { - future : 'ní %s', - past : '%s kọjá', - s : 'ìsẹjú aayá die', - m : 'ìsẹjú kan', - mm : 'ìsẹjú %d', - h : 'wákati kan', - hh : 'wákati %d', - d : 'ọjọ́ kan', - dd : 'ọjọ́ %d', - M : 'osù kan', - MM : 'osù %d', - y : 'ọdún kan', - yy : 'ọdún %d' - }, - dayOfMonthOrdinalParse : /ọjọ́\s\d{1,2}/, - ordinal : 'ọjọ́ %d', - week : { - dow : 1, // Monday is the first day of the week. - doy : 4 // The week that contains Jan 4th is the first week of the year. - } -}); diff --git a/admin/bower_components/moment/src/locale/zh-cn.js b/admin/bower_components/moment/src/locale/zh-cn.js deleted file mode 100644 index 662f304..0000000 --- a/admin/bower_components/moment/src/locale/zh-cn.js +++ /dev/null @@ -1,102 +0,0 @@ -//! moment.js locale configuration -//! locale : Chinese (China) [zh-cn] -//! author : suupic : https://github.com/suupic -//! author : Zeno Zeng : https://github.com/zenozeng - -import moment from '../moment'; - -export default moment.defineLocale('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 : 'HH:mm', - LTS : 'HH:mm:ss', - L : 'YYYY年MMMD日', - LL : 'YYYY年MMMD日', - LLL : 'YYYY年MMMD日Ah点mm分', - LLLL : 'YYYY年MMMD日ddddAh点mm分', - l : 'YYYY年MMMD日', - ll : 'YYYY年MMMD日', - lll : 'YYYY年MMMD日 HH:mm', - llll : 'YYYY年MMMD日dddd HH:mm' - }, - meridiemParse: /凌晨|早上|上午|中午|下午|晚上/, - meridiemHour: function (hour, meridiem) { - if (hour === 12) { - hour = 0; - } - if (meridiem === '凌晨' || meridiem === '早上' || - meridiem === '上午') { - return hour; - } else if (meridiem === '下午' || meridiem === '晚上') { - return hour + 12; - } else { - // '中午' - return hour >= 11 ? hour : hour + 12; - } - }, - meridiem : function (hour, minute, isLower) { - var hm = hour * 100 + minute; - if (hm < 600) { - return '凌晨'; - } else if (hm < 900) { - return '早上'; - } else if (hm < 1130) { - return '上午'; - } else if (hm < 1230) { - return '中午'; - } else if (hm < 1800) { - return '下午'; - } else { - return '晚上'; - } - }, - calendar : { - sameDay : '[今天]LT', - nextDay : '[明天]LT', - nextWeek : '[下]ddddLT', - lastDay : '[昨天]LT', - lastWeek : '[上]ddddLT', - sameElse : 'L' - }, - dayOfMonthOrdinalParse: /\d{1,2}(日|月|周)/, - ordinal : function (number, period) { - switch (period) { - case 'd': - case 'D': - case 'DDD': - return number + '日'; - case 'M': - return number + '月'; - case 'w': - case 'W': - return number + '周'; - default: - return number; - } - }, - 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 年' - }, - week : { - // GB/T 7408-1994《数据元和交换格式·信息交换·日期和时间表示法》与ISO 8601:1988等效 - dow : 1, // Monday is the first day of the week. - doy : 4 // The week that contains Jan 4th is the first week of the year. - } -}); - diff --git a/admin/bower_components/moment/src/locale/zh-hk.js b/admin/bower_components/moment/src/locale/zh-hk.js deleted file mode 100644 index 73430a4..0000000 --- a/admin/bower_components/moment/src/locale/zh-hk.js +++ /dev/null @@ -1,95 +0,0 @@ -//! moment.js locale configuration -//! locale : Chinese (Hong Kong) [zh-hk] -//! author : Ben : https://github.com/ben-lin -//! author : Chris Lam : https://github.com/hehachris -//! author : Konstantin : https://github.com/skfd - -import moment from '../moment'; - -export default moment.defineLocale('zh-hk', { - months : '一月_二月_三月_四月_五月_六月_七月_八月_九月_十月_十一月_十二月'.split('_'), - monthsShort : '1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月'.split('_'), - weekdays : '星期日_星期一_星期二_星期三_星期四_星期五_星期六'.split('_'), - weekdaysShort : '週日_週一_週二_週三_週四_週五_週六'.split('_'), - weekdaysMin : '日_一_二_三_四_五_六'.split('_'), - longDateFormat : { - LT : 'HH:mm', - LTS : 'HH:mm:ss', - L : 'YYYY年MMMD日', - LL : 'YYYY年MMMD日', - LLL : 'YYYY年MMMD日 HH:mm', - LLLL : 'YYYY年MMMD日dddd HH:mm', - l : 'YYYY年MMMD日', - ll : 'YYYY年MMMD日', - lll : 'YYYY年MMMD日 HH:mm', - llll : 'YYYY年MMMD日dddd HH:mm' - }, - meridiemParse: /凌晨|早上|上午|中午|下午|晚上/, - meridiemHour : function (hour, meridiem) { - if (hour === 12) { - hour = 0; - } - if (meridiem === '凌晨' || meridiem === '早上' || meridiem === '上午') { - return hour; - } else if (meridiem === '中午') { - return hour >= 11 ? hour : hour + 12; - } else if (meridiem === '下午' || meridiem === '晚上') { - return hour + 12; - } - }, - meridiem : function (hour, minute, isLower) { - var hm = hour * 100 + minute; - if (hm < 600) { - return '凌晨'; - } else if (hm < 900) { - return '早上'; - } else if (hm < 1130) { - return '上午'; - } else if (hm < 1230) { - return '中午'; - } else if (hm < 1800) { - return '下午'; - } else { - return '晚上'; - } - }, - calendar : { - sameDay : '[今天]LT', - nextDay : '[明天]LT', - nextWeek : '[下]ddddLT', - lastDay : '[昨天]LT', - lastWeek : '[上]ddddLT', - sameElse : 'L' - }, - dayOfMonthOrdinalParse: /\d{1,2}(日|月|週)/, - ordinal : function (number, period) { - switch (period) { - case 'd' : - case 'D' : - case 'DDD' : - return number + '日'; - case 'M' : - return number + '月'; - case 'w' : - case 'W' : - return number + '週'; - default : - return number; - } - }, - 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 年' - } -}); diff --git a/admin/bower_components/moment/src/locale/zh-tw.js b/admin/bower_components/moment/src/locale/zh-tw.js deleted file mode 100644 index 6bb6a7c..0000000 --- a/admin/bower_components/moment/src/locale/zh-tw.js +++ /dev/null @@ -1,94 +0,0 @@ -//! moment.js locale configuration -//! locale : Chinese (Taiwan) [zh-tw] -//! author : Ben : https://github.com/ben-lin -//! author : Chris Lam : https://github.com/hehachris - -import moment from '../moment'; - -export default moment.defineLocale('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 : 'HH:mm', - LTS : 'HH:mm:ss', - L : 'YYYY年MMMD日', - LL : 'YYYY年MMMD日', - LLL : 'YYYY年MMMD日 HH:mm', - LLLL : 'YYYY年MMMD日dddd HH:mm', - l : 'YYYY年MMMD日', - ll : 'YYYY年MMMD日', - lll : 'YYYY年MMMD日 HH:mm', - llll : 'YYYY年MMMD日dddd HH:mm' - }, - meridiemParse: /凌晨|早上|上午|中午|下午|晚上/, - meridiemHour : function (hour, meridiem) { - if (hour === 12) { - hour = 0; - } - if (meridiem === '凌晨' || meridiem === '早上' || meridiem === '上午') { - return hour; - } else if (meridiem === '中午') { - return hour >= 11 ? hour : hour + 12; - } else if (meridiem === '下午' || meridiem === '晚上') { - return hour + 12; - } - }, - meridiem : function (hour, minute, isLower) { - var hm = hour * 100 + minute; - if (hm < 600) { - return '凌晨'; - } else if (hm < 900) { - return '早上'; - } else if (hm < 1130) { - return '上午'; - } else if (hm < 1230) { - return '中午'; - } else if (hm < 1800) { - return '下午'; - } else { - return '晚上'; - } - }, - calendar : { - sameDay : '[今天]LT', - nextDay : '[明天]LT', - nextWeek : '[下]ddddLT', - lastDay : '[昨天]LT', - lastWeek : '[上]ddddLT', - sameElse : 'L' - }, - dayOfMonthOrdinalParse: /\d{1,2}(日|月|週)/, - ordinal : function (number, period) { - switch (period) { - case 'd' : - case 'D' : - case 'DDD' : - return number + '日'; - case 'M' : - return number + '月'; - case 'w' : - case 'W' : - return number + '週'; - default : - return number; - } - }, - 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 年' - } -}); diff --git a/admin/bower_components/moment/src/moment.js b/admin/bower_components/moment/src/moment.js deleted file mode 100644 index 4d5f3be..0000000 --- a/admin/bower_components/moment/src/moment.js +++ /dev/null @@ -1,82 +0,0 @@ -//! moment.js -//! version : 2.18.1 -//! authors : Tim Wood, Iskren Chernev, Moment.js contributors -//! license : MIT -//! momentjs.com - -import { hooks as moment, setHookCallback } from './lib/utils/hooks'; - -moment.version = '2.18.1'; - -import { - min, - max, - now, - isMoment, - momentPrototype as fn, - createUTC as utc, - createUnix as unix, - createLocal as local, - createInvalid as invalid, - createInZone as parseZone -} from './lib/moment/moment'; - -import { - getCalendarFormat -} from './lib/moment/calendar'; - -import { - defineLocale, - updateLocale, - getSetGlobalLocale as locale, - getLocale as localeData, - listLocales as locales, - listMonths as months, - listMonthsShort as monthsShort, - listWeekdays as weekdays, - listWeekdaysMin as weekdaysMin, - listWeekdaysShort as weekdaysShort -} from './lib/locale/locale'; - -import { - isDuration, - createDuration as duration, - getSetRelativeTimeRounding as relativeTimeRounding, - getSetRelativeTimeThreshold as relativeTimeThreshold -} from './lib/duration/duration'; - -import { normalizeUnits } from './lib/units/units'; - -import isDate from './lib/utils/is-date'; - -setHookCallback(local); - -moment.fn = fn; -moment.min = min; -moment.max = max; -moment.now = now; -moment.utc = utc; -moment.unix = unix; -moment.months = months; -moment.isDate = isDate; -moment.locale = locale; -moment.invalid = invalid; -moment.duration = duration; -moment.isMoment = isMoment; -moment.weekdays = weekdays; -moment.parseZone = parseZone; -moment.localeData = localeData; -moment.isDuration = isDuration; -moment.monthsShort = monthsShort; -moment.weekdaysMin = weekdaysMin; -moment.defineLocale = defineLocale; -moment.updateLocale = updateLocale; -moment.locales = locales; -moment.weekdaysShort = weekdaysShort; -moment.normalizeUnits = normalizeUnits; -moment.relativeTimeRounding = relativeTimeRounding; -moment.relativeTimeThreshold = relativeTimeThreshold; -moment.calendarFormat = getCalendarFormat; -moment.prototype = fn; - -export default moment; diff --git a/admin/bower_components/moment/templates/default.js b/admin/bower_components/moment/templates/default.js deleted file mode 100644 index 095a78f..0000000 --- a/admin/bower_components/moment/templates/default.js +++ /dev/null @@ -1,5 +0,0 @@ -;(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() : - typeof define === 'function' && define.amd ? define(factory) : - global.moment = factory() -}(this, (function () { 'use strict'; diff --git a/admin/bower_components/moment/templates/locale-header.js b/admin/bower_components/moment/templates/locale-header.js deleted file mode 100644 index eadcc1d..0000000 --- a/admin/bower_components/moment/templates/locale-header.js +++ /dev/null @@ -1,6 +0,0 @@ -;(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' - && typeof require === 'function' ? factory(require('../moment')) : - typeof define === 'function' && define.amd ? define(['../moment'], factory) : - factory(global.moment) -}(this, (function (moment) { 'use strict'; diff --git a/admin/bower_components/moment/templates/test-header.js b/admin/bower_components/moment/templates/test-header.js deleted file mode 100644 index 1b208a3..0000000 --- a/admin/bower_components/moment/templates/test-header.js +++ /dev/null @@ -1,6 +0,0 @@ -;(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' - && typeof require === 'function' ? factory(require('../../moment')) : - typeof define === 'function' && define.amd ? define(['../../moment'], factory) : - factory(global.moment) -}(this, (function (moment) { 'use strict'; diff --git a/admin/bower_components/morris.js/.bower.json b/admin/bower_components/morris.js/.bower.json deleted file mode 100644 index 5358176..0000000 --- a/admin/bower_components/morris.js/.bower.json +++ /dev/null @@ -1,31 +0,0 @@ -{ - "name": "morris.js", - "version": "0.5.1", - "main": [ - "./morris.js", - "./morris.css" - ], - "dependencies": { - "jquery": ">= 2.1.0", - "raphael": ">= 2.0", - "mocha": "~1.17.1" - }, - "devDependencies": { - "mocha": "~1.17.1", - "chai": "~1.9.0", - "chai-jquery": "~1.2.1", - "sinon": "http://sinonjs.org/releases/sinon-1.8.1.js", - "sinon-chai": "~2.5.0" - }, - "homepage": "https://github.com/oesmith/morris.js", - "_release": "0.5.1", - "_resolution": { - "type": "version", - "tag": "0.5.1", - "commit": "d5cf1410eda7055eaf2c7d218d4cb24ec5ed55c8" - }, - "_source": "https://github.com/oesmith/morris.js.git", - "_target": "^0.5.1", - "_originalSource": "morris.js", - "_direct": true -} \ No newline at end of file diff --git a/admin/bower_components/morris.js/.gitignore b/admin/bower_components/morris.js/.gitignore deleted file mode 100644 index 7f83be5..0000000 --- a/admin/bower_components/morris.js/.gitignore +++ /dev/null @@ -1,6 +0,0 @@ -build/ -node_modules/ -spec/viz/output/ -spec/viz/diff/ -bower_components -.idea diff --git a/admin/bower_components/morris.js/.travis.yml b/admin/bower_components/morris.js/.travis.yml deleted file mode 100644 index d3d2e53..0000000 --- a/admin/bower_components/morris.js/.travis.yml +++ /dev/null @@ -1,19 +0,0 @@ -language: node_js -node_js: - - 0.10 -before_script: - - "npm install -g grunt-cli" - - "npm install" - - "cp -f bower.travis.json bower.json" - - 'sed -i -e "s/JQUERY/$JQUERY/" bower.json' - - 'sed -i -e "s/RAPHAEL/$RAPHAEL/" bower.json' - - "bower install" -env: - - JQUERY="~> 1.8.0" RAPHAEL="~> 2.0.0" - - JQUERY="~> 1.9.0" RAPHAEL="~> 2.0.0" - - JQUERY="~> 2.0.0" RAPHAEL="~> 2.0.0" - - JQUERY="~> 2.1.0" RAPHAEL="~> 2.0.0" - - JQUERY="~> 1.8.0" RAPHAEL="~> 2.1.0" - - JQUERY="~> 1.9.0" RAPHAEL="~> 2.1.0" - - JQUERY="~> 2.0.0" RAPHAEL="~> 2.1.0" - - JQUERY="~> 2.1.0" RAPHAEL="~> 2.1.0" diff --git a/admin/bower_components/morris.js/Gruntfile.js b/admin/bower_components/morris.js/Gruntfile.js deleted file mode 100644 index 20eed2b..0000000 --- a/admin/bower_components/morris.js/Gruntfile.js +++ /dev/null @@ -1,90 +0,0 @@ -module.exports = function (grunt) { - require('matchdep').filterDev('grunt-*').forEach(grunt.loadNpmTasks); - - grunt.initConfig({ - pkg: grunt.file.readJSON('package.json'), - coffee: { - lib: { - options: { bare: false }, - files: { - 'morris.js': ['build/morris.coffee'] - } - }, - spec: { - options: { bare: true }, - files: { - 'build/spec.js': ['build/spec.coffee'] - } - }, - }, - concat: { - 'build/morris.coffee': { - options: { - banner: "### @license\n"+ - "<%= pkg.name %> v<%= pkg.version %>\n"+ - "Copyright <%= (new Date()).getFullYear() %> <%= pkg.author.name %> All rights reserved.\n" + - "Licensed under the <%= pkg.license %> License.\n" + - "###\n", - }, - src: [ - 'lib/morris.coffee', - 'lib/morris.grid.coffee', - 'lib/morris.hover.coffee', - 'lib/morris.line.coffee', - 'lib/morris.area.coffee', - 'lib/morris.bar.coffee', - 'lib/morris.donut.coffee' - ], - dest: 'build/morris.coffee' - }, - 'build/spec.coffee': ['spec/support/**/*.coffee', 'spec/lib/**/*.coffee'] - }, - less: { - all: { - src: 'less/*.less', - dest: 'morris.css', - options: { - compress: true - } - } - }, - uglify: { - build: { - options: { - preserveComments: 'some' - }, - files: { - 'morris.min.js': 'morris.js' - } - } - }, - mocha: { - index: ['spec/specs.html'], - options: {run: true} - }, - watch: { - all: { - files: ['lib/**/*.coffee', 'spec/lib/**/*.coffee', 'spec/support/**/*.coffee', 'less/**/*.less'], - tasks: 'default' - }, - dev: { - files: 'lib/*.coffee' , - tasks: ['concat:build/morris.coffee', 'coffee:lib'] - } - }, - shell: { - visual_spec: { - command: './run.sh', - options: { - stdout: true, - failOnError: true, - execOptions: { - cwd: 'spec/viz' - } - } - } - } - }); - - grunt.registerTask('default', ['concat', 'coffee', 'less', 'uglify', 'mocha', 'shell:visual_spec']); -}; diff --git a/admin/bower_components/morris.js/README.md b/admin/bower_components/morris.js/README.md deleted file mode 100644 index 6873d7b..0000000 --- a/admin/bower_components/morris.js/README.md +++ /dev/null @@ -1,234 +0,0 @@ -# Morris.js - pretty time-series line graphs - -[![Build Status](https://secure.travis-ci.org/morrisjs/morris.js.png?branch=master)](http://travis-ci.org/morrisjs/morris.js) - -Morris.js is the library that powers the graphs on http://howmanyleft.co.uk/. -It's a very simple API for drawing line, bar, area and donut charts. - -Cheers! - -\- Olly (olly@oesmith.co.uk) - -## Contributors wanted - -I'm unfortunately not able to actively support Morris.js any more. I keep an eye -on the issues, but I rarely have the time to fix bugs or review pull requests. - -If you're interested in actively contributing to Morris.js, please contact me on -the email address above. - -## Requirements - -- [jQuery](http://jquery.com/) (>= 1.7 recommended, but it'll probably work with - older versions) -- [Raphael.js](http://raphaeljs.com/) (>= 2.0) - -## Usage - -See [the website](http://morrisjs.github.com/morris.js/). - -## Development - -Very daring. - -Fork, hack, possibly even add some tests, then send a pull request :) - -Remember that Morris.js is a coffeescript project. Please make your changes in -the `.coffee` files, not in the compiled javascript files in the root directory -of the project. - -### Developer quick-start - -You'll need [node.js](https://nodejs.org). I recommend using -[nvm](https://github.com/creationix/nvm) for installing node in -development environments. - -With node installed, install [grunt](https://github.com/cowboy/grunt) using -`npm install -g grunt-cli`, and then the rest of the test/build dependencies -with `npm install` in the morris.js project folder. - -Once you're all set up, you can compile, minify and run the tests using `grunt`. - -Note: I'm experimenting with using perceptual diffs to catch rendering -regressions. Due to font rendering differences between platforms, the pdiff -tests currently *only* pass on OS X. - -## Changelog - -### 0.5.1 - 15th June 2014 - -- Fix touch event handling. -- Fix stacked=false in bar chart [#275](https://github.com/morrisjs/morris.js/issues/275) -- Configurable vertical segments [#297](https://github.com/morrisjs/morris.js/issues/297) -- Deprecate continuousLine option. - -### 0.5.0 - 19th March 2014 - -- Update grunt dependency [#288](https://github.com/morrisjs/morris.js/issues/228) -- Donut segment color config in data objects [#281](https://github.com/morrisjs/morris.js/issues/281) -- Customisable line widths and point drawing [#272](https://github.com/morrisjs/morris.js/issues/272) -- Bugfix for @options.smooth [#266](https://github.com/morrisjs/morris.js/issues/266) -- Option to disable axes individually [#253](https://github.com/morrisjs/morris.js/issues/253) -- Range selection [#252](https://github.com/morrisjs/morris.js/issues/252) -- Week format for x-labels [#250](https://github.com/morrisjs/morris.js/issues/250) -- Update developer quickstart instructions [#243](https://github.com/morrisjs/morris.js/issues/243) -- Experimenting with perceptual diffs. -- Add original data row to hover callback [#264](https://github.com/morrisjs/morris.js/issues/264) -- setData method for donut charts [#211](https://github.com/morrisjs/morris.js/issues/211) -- Automatic resizing [#111](https://github.com/morrisjs/morris.js/issues/111) -- Fix travis builds [#298](https://github.com/morrisjs/morris.js/issues/298) -- Option for rounded corners on bar charts [#305](https://github.com/morrisjs/morris.js/issues/305) -- Option to set padding for X axis labels [#306](https://github.com/morrisjs/morris.js/issues/306) -- Use local javascript for examples. -- Events on non-time series [#314](https://github.com/morrisjs/morris.js/issues/314) - -### 0.4.3 - 12th May 2013 - -- Fix flickering hover box [#186](https://github.com/morrisjs/morris.js/issues/186) -- xLabelAngle option (diagonal labels!!) [#239](https://github.com/morrisjs/morris.js/issues/239) -- Fix area chart fill bug [#190](https://github.com/morrisjs/morris.js/issues/190) -- Make event handlers chainable -- gridTextFamily and gridTextWeight options -- Fix hovers with setData [#213](https://github.com/morrisjs/morris.js/issues/213) -- Fix hideHover behaviour [#236](https://github.com/morrisjs/morris.js/issues/236) - -### 0.4.2 - 14th April 2013 - -- Fix DST handling [#191](https://github.com/morrisjs/morris.js/issues/191) -- Parse data values from strings in Morris.Donut [#189](https://github.com/morrisjs/morris.js/issues/189) -- Non-cumulative area charts [#199](https://github.com/morrisjs/morris.js/issues/199) -- Round Y-axis labels to significant numbers [#162](https://github.com/morrisjs/morris.js/162) -- Customising default hover content [#179](https://github.com/morrisjs/morris.js/179) - -### 0.4.1 - 8th February 2013 - -- Fix goal and event rendering. [#181](https://github.com/morrisjs/morris.js/issues/181) -- Don't break when empty data is passed to setData [#142](https://github.com/morrisjs/morris.js/issues/142) -- labelColor option for donuts [#159](https://github.com/morrisjs/morris.js/issues/159) - -### 0.4.0 - 26th January 2013 - -- Goals and events [#103](https://github.com/morrisjs/morris.js/issues/103). -- Bower package manager metadata. -- More flexible formatters [#107](https://github.com/morrisjs/morris.js/issues/107). -- Color callbacks. -- Decade intervals for time-axis labels. -- Non-continous line tweaks [#116](https://github.com/morrisjs/morris.js/issues/116). -- Stacked bars [#120](https://github.com/morrisjs/morris.js/issues/120). -- HTML hover [#134](https://github.com/morrisjs/morris.js/issues/134). -- yLabelFormat [#139](https://github.com/morrisjs/morris.js/issues/139). -- Disable axes [#114](https://github.com/morrisjs/morris.js/issues/114). - -### 0.3.3 - 1st November 2012 - -- **Bar charts!** [#101](https://github.com/morrisjs/morris.js/issues/101). - -### 0.3.2 - 28th October 2012 - -- **Area charts!** [#47](https://github.com/morrisjs/morris.js/issues/47). -- Some major refactoring and test suite improvements. -- Set smooth parameter per series [#91](https://github.com/morrisjs/morris.js/issues/91). -- Custom dateFormat for string x-values [#90](https://github.com/morrisjs/morris.js/issues/90). - -### 0.3.1 - 13th October 2012 - -- Add `formatter` option for customising value labels in donuts [#75](https://github.com/morrisjs/morris.js/issues/75). -- Cycle `lineColors` on line charts to avoid running out of colours [#78](https://github.com/morrisjs/morris.js/issues/78). -- Add method to select donut segments. [#79](https://github.com/morrisjs/morris.js/issues/79). -- Don't go negative on yMin when all y values are zero. [#80](https://github.com/morrisjs/morris.js/issues/80). -- Don't sort data when parseTime is false [#83](https://github.com/morrisjs/morris.js/issues/83). -- Customise styling for points. [#87](https://github.com/morrisjs/morris.js/issues/87). - -### 0.3.0 - 15th September 2012 - -- Donut charts! -- Bugfix: ymin/ymax bug [#71](https://github.com/morrisjs/morris.js/issues/71). -- Bugfix: infinite loop when data indicates horizontal line [#66](https://github.com/morrisjs/morris.js/issues/66). - -### 0.2.10 - 26th June 2012 - -- Support for decimal labels on y-axis [#58](https://github.com/morrisjs/morris.js/issues/58). -- Better axis label clipping [#63](https://github.com/morrisjs/morris.js/issues/63). -- Redraw graphs with updated data using `setData` method [#64](https://github.com/morrisjs/morris.js/issues/64). -- Bugfix: series with zero or one non-null values [#65](https://github.com/morrisjs/morris.js/issues/65). - -### 0.2.9 - 15th May 2012 - -- Bugfix: Fix zero-value regression -- Bugfix: Don't modify user-supplied data - -### 0.2.8 - 10th May 2012 - -- Customising x-axis labels with `xLabelFormat` option -- Only use timezones when timezone info is specified -- Fix old IE bugs (mostly in examples!) -- Added `preunits` and `postunits` options -- Better non-continuous series data support - -### 0.2.7 - 2nd April 2012 - -- Added `xLabels` option -- Refactored x-axis labelling -- Better ISO date support -- Fix bug with single value in non time-series graphs - -### 0.2.6 - 18th March 2012 - -- Partial series support (see `null` y-values in `examples/quarters.html`) -- `parseTime` option bugfix for non-time-series data - -### 0.2.5 - 15th March 2012 - -- Raw millisecond timestamp support (with `dateFormat` option) -- YYYY-MM-DD HH:MM[:SS[.SSS]] date support -- Decimal number labels - -### 0.2.4 - 8th March 2012 - -- Negative y-values support -- `ymin` option -- `units` options - -### 0.2.3 - 6th Mar 2012 - -- jQuery no-conflict compatibility -- Support ISO week-number dates -- Optionally hide hover on mouseout (`hideHover`) -- Optionally skip parsing dates, treating X values as an equally-spaced series (`parseTime`) - -### 0.2.2 - 29th Feb 2012 - -- Bugfix: mouseover error when options.data.length == 2 -- Automatically sort options.data - -### 0.2.1 - 28th Feb 2012 - -- Accept a DOM element *or* an ID in `options.element` -- Add `smooth` option -- Bugfix: clone `@default` -- Add `ymax` option - -## License - -Copyright (c) 2012-2014, Olly Smith -All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are met: - -1. Redistributions of source code must retain the above copyright notice, this - list of conditions and the following disclaimer. -2. Redistributions in binary form must reproduce the above copyright notice, - this list of conditions and the following disclaimer in the documentation - and/or other materials provided with the distribution. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND -ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED -WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR -ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES -(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; -LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND -ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/admin/bower_components/morris.js/bower.json b/admin/bower_components/morris.js/bower.json deleted file mode 100644 index a2dbfea..0000000 --- a/admin/bower_components/morris.js/bower.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "name": "morris.js", - "version": "0.5.0", - "main": [ - "./morris.js", - "./morris.css" - ], - "dependencies": { - "jquery": ">= 2.1.0", - "raphael": ">= 2.0", - "mocha": "~1.17.1" - }, - "devDependencies": { - "mocha": "~1.17.1", - "chai": "~1.9.0", - "chai-jquery": "~1.2.1", - "sinon": "http://sinonjs.org/releases/sinon-1.8.1.js", - "sinon-chai": "~2.5.0" - } -} diff --git a/admin/bower_components/morris.js/bower.travis.json b/admin/bower_components/morris.js/bower.travis.json deleted file mode 100644 index 2a86ece..0000000 --- a/admin/bower_components/morris.js/bower.travis.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "name": "morris.js", - "version": "0.5.0", - "main": [ - "./morris.js", - "./morris.css" - ], - "dependencies": { - "jquery": "JQUERY", - "raphael": "RAPHAEL", - "mocha": "~1.17.1" - }, - "devDependencies": { - "mocha": "~1.17.1", - "chai": "~1.9.0", - "chai-jquery": "~1.2.1", - "sinon": "http://sinonjs.org/releases/sinon-1.8.1.js", - "sinon-chai": "~2.5.0" - } -} diff --git a/admin/bower_components/morris.js/less/morris.core.less b/admin/bower_components/morris.js/less/morris.core.less deleted file mode 100644 index 1d27211..0000000 --- a/admin/bower_components/morris.js/less/morris.core.less +++ /dev/null @@ -1,27 +0,0 @@ -.morris-hover { - position: absolute; - z-index: 1000; - - &.morris-default-style { - border-radius: 10px; - padding: 6px; - color: #666; - background: rgba(255, 255, 255, 0.8); - border: solid 2px rgba(230, 230, 230, 0.8); - - font-family: sans-serif; - font-size: 12px; - text-align: center; - - .morris-hover-row-label { - font-weight: bold; - margin: 0.25em 0; - } - - .morris-hover-point { - white-space: nowrap; - margin: 0.1em 0; - } - } - -} diff --git a/admin/bower_components/morris.js/lib/morris.area.coffee b/admin/bower_components/morris.js/lib/morris.area.coffee deleted file mode 100644 index 86f8595..0000000 --- a/admin/bower_components/morris.js/lib/morris.area.coffee +++ /dev/null @@ -1,66 +0,0 @@ -class Morris.Area extends Morris.Line - # Initialise - # - areaDefaults = - fillOpacity: 'auto' - behaveLikeLine: false - - constructor: (options) -> - return new Morris.Area(options) unless (@ instanceof Morris.Area) - areaOptions = $.extend {}, areaDefaults, options - - @cumulative = not areaOptions.behaveLikeLine - - if areaOptions.fillOpacity is 'auto' - areaOptions.fillOpacity = if areaOptions.behaveLikeLine then .8 else 1 - - super(areaOptions) - - # calculate series data point coordinates - # - # @private - calcPoints: -> - for row in @data - row._x = @transX(row.x) - total = 0 - row._y = for y in row.y - if @options.behaveLikeLine - @transY(y) - else - total += (y || 0) - @transY(total) - row._ymax = Math.max row._y... - - # draw the data series - # - # @private - drawSeries: -> - @seriesPoints = [] - if @options.behaveLikeLine - range = [0..@options.ykeys.length-1] - else - range = [@options.ykeys.length-1..0] - - for i in range - @_drawFillFor i - @_drawLineFor i - @_drawPointFor i - - _drawFillFor: (index) -> - path = @paths[index] - if path isnt null - path = path + "L#{@transX(@xmax)},#{@bottom}L#{@transX(@xmin)},#{@bottom}Z" - @drawFilledPath path, @fillForSeries(index) - - fillForSeries: (i) -> - color = Raphael.rgb2hsl @colorFor(@data[i], i, 'line') - Raphael.hsl( - color.h, - if @options.behaveLikeLine then color.s * 0.9 else color.s * 0.75, - Math.min(0.98, if @options.behaveLikeLine then color.l * 1.2 else color.l * 1.25)) - - drawFilledPath: (path, fill) -> - @raphael.path(path) - .attr('fill', fill) - .attr('fill-opacity', @options.fillOpacity) - .attr('stroke', 'none') diff --git a/admin/bower_components/morris.js/lib/morris.bar.coffee b/admin/bower_components/morris.js/lib/morris.bar.coffee deleted file mode 100644 index 86fb32b..0000000 --- a/admin/bower_components/morris.js/lib/morris.bar.coffee +++ /dev/null @@ -1,208 +0,0 @@ -class Morris.Bar extends Morris.Grid - constructor: (options) -> - return new Morris.Bar(options) unless (@ instanceof Morris.Bar) - super($.extend {}, options, parseTime: false) - - init: -> - @cumulative = @options.stacked - - if @options.hideHover isnt 'always' - @hover = new Morris.Hover(parent: @el) - @on('hovermove', @onHoverMove) - @on('hoverout', @onHoverOut) - @on('gridclick', @onGridClick) - - # Default configuration - # - defaults: - barSizeRatio: 0.75 - barGap: 3 - barColors: [ - '#0b62a4' - '#7a92a3' - '#4da74d' - '#afd8f8' - '#edc240' - '#cb4b4b' - '#9440ed' - ], - barOpacity: 1.0 - barRadius: [0, 0, 0, 0] - xLabelMargin: 50 - - # Do any size-related calculations - # - # @private - calc: -> - @calcBars() - if @options.hideHover is false - @hover.update(@hoverContentForRow(@data.length - 1)...) - - # calculate series data bars coordinates and sizes - # - # @private - calcBars: -> - for row, idx in @data - row._x = @left + @width * (idx + 0.5) / @data.length - row._y = for y in row.y - if y? then @transY(y) else null - - # Draws the bar chart. - # - draw: -> - @drawXAxis() if @options.axes in [true, 'both', 'x'] - @drawSeries() - - # draw the x-axis labels - # - # @private - drawXAxis: -> - # draw x axis labels - ypos = @bottom + (@options.xAxisLabelTopPadding || @options.padding / 2) - prevLabelMargin = null - prevAngleMargin = null - for i in [0...@data.length] - row = @data[@data.length - 1 - i] - label = @drawXAxisLabel(row._x, ypos, row.label) - textBox = label.getBBox() - label.transform("r#{-@options.xLabelAngle}") - labelBox = label.getBBox() - label.transform("t0,#{labelBox.height / 2}...") - if @options.xLabelAngle != 0 - offset = -0.5 * textBox.width * - Math.cos(@options.xLabelAngle * Math.PI / 180.0) - label.transform("t#{offset},0...") - # try to avoid overlaps - if (not prevLabelMargin? or - prevLabelMargin >= labelBox.x + labelBox.width or - prevAngleMargin? and prevAngleMargin >= labelBox.x) and - labelBox.x >= 0 and (labelBox.x + labelBox.width) < @el.width() - if @options.xLabelAngle != 0 - margin = 1.25 * @options.gridTextSize / - Math.sin(@options.xLabelAngle * Math.PI / 180.0) - prevAngleMargin = labelBox.x - margin - prevLabelMargin = labelBox.x - @options.xLabelMargin - else - label.remove() - - # draw the data series - # - # @private - drawSeries: -> - groupWidth = @width / @options.data.length - numBars = if @options.stacked then 1 else @options.ykeys.length - barWidth = (groupWidth * @options.barSizeRatio - @options.barGap * (numBars - 1)) / numBars - barWidth = Math.min(barWidth, @options.barSize) if @options.barSize - spaceLeft = groupWidth - barWidth * numBars - @options.barGap * (numBars - 1) - leftPadding = spaceLeft / 2 - zeroPos = if @ymin <= 0 and @ymax >= 0 then @transY(0) else null - @bars = for row, idx in @data - lastTop = 0 - for ypos, sidx in row._y - if ypos != null - if zeroPos - top = Math.min(ypos, zeroPos) - bottom = Math.max(ypos, zeroPos) - else - top = ypos - bottom = @bottom - - left = @left + idx * groupWidth + leftPadding - left += sidx * (barWidth + @options.barGap) unless @options.stacked - size = bottom - top - - if @options.verticalGridCondition and @options.verticalGridCondition(row.x) - @drawBar(@left + idx * groupWidth, @top, groupWidth, Math.abs(@top - @bottom), @options.verticalGridColor, @options.verticalGridOpacity, @options.barRadius) - - top -= lastTop if @options.stacked - @drawBar(left, top, barWidth, size, @colorFor(row, sidx, 'bar'), - @options.barOpacity, @options.barRadius) - - lastTop += size - else - null - - # @private - # - # @param row [Object] row data - # @param sidx [Number] series index - # @param type [String] "bar", "hover" or "label" - colorFor: (row, sidx, type) -> - if typeof @options.barColors is 'function' - r = { x: row.x, y: row.y[sidx], label: row.label } - s = { index: sidx, key: @options.ykeys[sidx], label: @options.labels[sidx] } - @options.barColors.call(@, r, s, type) - else - @options.barColors[sidx % @options.barColors.length] - - # hit test - returns the index of the row at the given x-coordinate - # - hitTest: (x) -> - return null if @data.length == 0 - x = Math.max(Math.min(x, @right), @left) - Math.min(@data.length - 1, - Math.floor((x - @left) / (@width / @data.length))) - - # click on grid event handler - # - # @private - onGridClick: (x, y) => - index = @hitTest(x) - @fire 'click', index, @data[index].src, x, y - - # hover movement event handler - # - # @private - onHoverMove: (x, y) => - index = @hitTest(x) - @hover.update(@hoverContentForRow(index)...) - - # hover out event handler - # - # @private - onHoverOut: => - if @options.hideHover isnt false - @hover.hide() - - # hover content for a point - # - # @private - hoverContentForRow: (index) -> - row = @data[index] - content = "<div class='morris-hover-row-label'>#{row.label}</div>" - for y, j in row.y - content += """ - <div class='morris-hover-point' style='color: #{@colorFor(row, j, 'label')}'> - #{@options.labels[j]}: - #{@yLabelFormat(y)} - </div> - """ - if typeof @options.hoverCallback is 'function' - content = @options.hoverCallback(index, @options, content, row.src) - x = @left + (index + 0.5) * @width / @data.length - [content, x] - - drawXAxisLabel: (xPos, yPos, text) -> - label = @raphael.text(xPos, yPos, text) - .attr('font-size', @options.gridTextSize) - .attr('font-family', @options.gridTextFamily) - .attr('font-weight', @options.gridTextWeight) - .attr('fill', @options.gridTextColor) - - drawBar: (xPos, yPos, width, height, barColor, opacity, radiusArray) -> - maxRadius = Math.max(radiusArray...) - if maxRadius == 0 or maxRadius > height - path = @raphael.rect(xPos, yPos, width, height) - else - path = @raphael.path @roundedRect(xPos, yPos, width, height, radiusArray) - path - .attr('fill', barColor) - .attr('fill-opacity', opacity) - .attr('stroke', 'none') - - roundedRect: (x, y, w, h, r = [0,0,0,0]) -> - [ "M", x, r[0] + y, "Q", x, y, x + r[0], y, - "L", x + w - r[1], y, "Q", x + w, y, x + w, y + r[1], - "L", x + w, y + h - r[2], "Q", x + w, y + h, x + w - r[2], y + h, - "L", x + r[3], y + h, "Q", x, y + h, x, y + h - r[3], "Z" ] - diff --git a/admin/bower_components/morris.js/lib/morris.coffee b/admin/bower_components/morris.js/lib/morris.coffee deleted file mode 100644 index f2cd2df..0000000 --- a/admin/bower_components/morris.js/lib/morris.coffee +++ /dev/null @@ -1,43 +0,0 @@ -Morris = window.Morris = {} - -$ = jQuery - -# Very simple event-emitter class. -# -# @private -class Morris.EventEmitter - on: (name, handler) -> - unless @handlers? - @handlers = {} - unless @handlers[name]? - @handlers[name] = [] - @handlers[name].push(handler) - @ - - fire: (name, args...) -> - if @handlers? and @handlers[name]? - for handler in @handlers[name] - handler(args...) - -# Make long numbers prettier by inserting commas. -# -# @example -# Morris.commas(1234567) -> '1,234,567' -Morris.commas = (num) -> - if num? - ret = if num < 0 then "-" else "" - absnum = Math.abs(num) - intnum = Math.floor(absnum).toFixed(0) - ret += intnum.replace(/(?=(?:\d{3})+$)(?!^)/g, ',') - strabsnum = absnum.toString() - if strabsnum.length > intnum.length - ret += strabsnum.slice(intnum.length) - ret - else - '-' - -# Zero-pad numbers to two characters wide. -# -# @example -# Morris.pad2(1) -> '01' -Morris.pad2 = (number) -> (if number < 10 then '0' else '') + number diff --git a/admin/bower_components/morris.js/lib/morris.donut.coffee b/admin/bower_components/morris.js/lib/morris.donut.coffee deleted file mode 100644 index e40314d..0000000 --- a/admin/bower_components/morris.js/lib/morris.donut.coffee +++ /dev/null @@ -1,213 +0,0 @@ -# Donut charts. -# -# @example -# Morris.Donut({ -# el: $('#donut-container'), -# data: [ -# { label: 'yin', value: 50 }, -# { label: 'yang', value: 50 } -# ] -# }); -class Morris.Donut extends Morris.EventEmitter - defaults: - colors: [ - '#0B62A4' - '#3980B5' - '#679DC6' - '#95BBD7' - '#B0CCE1' - '#095791' - '#095085' - '#083E67' - '#052C48' - '#042135' - ], - backgroundColor: '#FFFFFF', - labelColor: '#000000', - formatter: Morris.commas - resize: false - - # Create and render a donut chart. - # - constructor: (options) -> - return new Morris.Donut(options) unless (@ instanceof Morris.Donut) - @options = $.extend {}, @defaults, options - - if typeof options.element is 'string' - @el = $ document.getElementById(options.element) - else - @el = $ options.element - - if @el == null || @el.length == 0 - throw new Error("Graph placeholder not found.") - - # bail if there's no data - if options.data is undefined or options.data.length is 0 - return - - @raphael = new Raphael(@el[0]) - - if @options.resize - $(window).bind 'resize', (evt) => - if @timeoutId? - window.clearTimeout @timeoutId - @timeoutId = window.setTimeout @resizeHandler, 100 - - @setData options.data - - # Clear and redraw the chart. - redraw: -> - @raphael.clear() - - cx = @el.width() / 2 - cy = @el.height() / 2 - w = (Math.min(cx, cy) - 10) / 3 - - total = 0 - total += value for value in @values - - min = 5 / (2 * w) - C = 1.9999 * Math.PI - min * @data.length - - last = 0 - idx = 0 - @segments = [] - for value, i in @values - next = last + min + C * (value / total) - seg = new Morris.DonutSegment( - cx, cy, w*2, w, last, next, - @data[i].color || @options.colors[idx % @options.colors.length], - @options.backgroundColor, idx, @raphael) - seg.render() - @segments.push seg - seg.on 'hover', @select - seg.on 'click', @click - last = next - idx += 1 - - @text1 = @drawEmptyDonutLabel(cx, cy - 10, @options.labelColor, 15, 800) - @text2 = @drawEmptyDonutLabel(cx, cy + 10, @options.labelColor, 14) - - max_value = Math.max @values... - idx = 0 - for value in @values - if value == max_value - @select idx - break - idx += 1 - - setData: (data) -> - @data = data - @values = (parseFloat(row.value) for row in @data) - @redraw() - - # @private - click: (idx) => - @fire 'click', idx, @data[idx] - - # Select the segment at the given index. - select: (idx) => - s.deselect() for s in @segments - segment = @segments[idx] - segment.select() - row = @data[idx] - @setLabels(row.label, @options.formatter(row.value, row)) - - - - # @private - setLabels: (label1, label2) -> - inner = (Math.min(@el.width() / 2, @el.height() / 2) - 10) * 2 / 3 - maxWidth = 1.8 * inner - maxHeightTop = inner / 2 - maxHeightBottom = inner / 3 - @text1.attr(text: label1, transform: '') - text1bbox = @text1.getBBox() - text1scale = Math.min(maxWidth / text1bbox.width, maxHeightTop / text1bbox.height) - @text1.attr(transform: "S#{text1scale},#{text1scale},#{text1bbox.x + text1bbox.width / 2},#{text1bbox.y + text1bbox.height}") - @text2.attr(text: label2, transform: '') - text2bbox = @text2.getBBox() - text2scale = Math.min(maxWidth / text2bbox.width, maxHeightBottom / text2bbox.height) - @text2.attr(transform: "S#{text2scale},#{text2scale},#{text2bbox.x + text2bbox.width / 2},#{text2bbox.y}") - - drawEmptyDonutLabel: (xPos, yPos, color, fontSize, fontWeight) -> - text = @raphael.text(xPos, yPos, '') - .attr('font-size', fontSize) - .attr('fill', color) - text.attr('font-weight', fontWeight) if fontWeight? - return text - - resizeHandler: => - @timeoutId = null - @raphael.setSize @el.width(), @el.height() - @redraw() - - -# A segment within a donut chart. -# -# @private -class Morris.DonutSegment extends Morris.EventEmitter - constructor: (@cx, @cy, @inner, @outer, p0, p1, @color, @backgroundColor, @index, @raphael) -> - @sin_p0 = Math.sin(p0) - @cos_p0 = Math.cos(p0) - @sin_p1 = Math.sin(p1) - @cos_p1 = Math.cos(p1) - @is_long = if (p1 - p0) > Math.PI then 1 else 0 - @path = @calcSegment(@inner + 3, @inner + @outer - 5) - @selectedPath = @calcSegment(@inner + 3, @inner + @outer) - @hilight = @calcArc(@inner) - - calcArcPoints: (r) -> - return [ - @cx + r * @sin_p0, - @cy + r * @cos_p0, - @cx + r * @sin_p1, - @cy + r * @cos_p1] - - calcSegment: (r1, r2) -> - [ix0, iy0, ix1, iy1] = @calcArcPoints(r1) - [ox0, oy0, ox1, oy1] = @calcArcPoints(r2) - return ( - "M#{ix0},#{iy0}" + - "A#{r1},#{r1},0,#{@is_long},0,#{ix1},#{iy1}" + - "L#{ox1},#{oy1}" + - "A#{r2},#{r2},0,#{@is_long},1,#{ox0},#{oy0}" + - "Z") - - calcArc: (r) -> - [ix0, iy0, ix1, iy1] = @calcArcPoints(r) - return ( - "M#{ix0},#{iy0}" + - "A#{r},#{r},0,#{@is_long},0,#{ix1},#{iy1}") - - render: -> - @arc = @drawDonutArc(@hilight, @color) - @seg = @drawDonutSegment( - @path, - @color, - @backgroundColor, - => @fire('hover', @index), - => @fire('click', @index) - ) - - drawDonutArc: (path, color) -> - @raphael.path(path) - .attr(stroke: color, 'stroke-width': 2, opacity: 0) - - drawDonutSegment: (path, fillColor, strokeColor, hoverFunction, clickFunction) -> - @raphael.path(path) - .attr(fill: fillColor, stroke: strokeColor, 'stroke-width': 3) - .hover(hoverFunction) - .click(clickFunction) - - select: => - unless @selected - @seg.animate(path: @selectedPath, 150, '<>') - @arc.animate(opacity: 1, 150, '<>') - @selected = true - - deselect: => - if @selected - @seg.animate(path: @path, 150, '<>') - @arc.animate(opacity: 0, 150, '<>') - @selected = false diff --git a/admin/bower_components/morris.js/lib/morris.grid.coffee b/admin/bower_components/morris.js/lib/morris.grid.coffee deleted file mode 100644 index db0882c..0000000 --- a/admin/bower_components/morris.js/lib/morris.grid.coffee +++ /dev/null @@ -1,499 +0,0 @@ -class Morris.Grid extends Morris.EventEmitter - # A generic pair of axes for line/area/bar charts. - # - # Draws grid lines and axis labels. - # - constructor: (options) -> - # find the container to draw the graph in - if typeof options.element is 'string' - @el = $ document.getElementById(options.element) - else - @el = $ options.element - if not @el? or @el.length == 0 - throw new Error("Graph container element not found") - - if @el.css('position') == 'static' - @el.css('position', 'relative') - - @options = $.extend {}, @gridDefaults, (@defaults || {}), options - - # backwards compatibility for units -> postUnits - if typeof @options.units is 'string' - @options.postUnits = options.units - - # the raphael drawing instance - @raphael = new Raphael(@el[0]) - - # some redraw stuff - @elementWidth = null - @elementHeight = null - @dirty = false - - # range selection - @selectFrom = null - - # more stuff - @init() if @init - - # load data - @setData @options.data - - # hover - @el.bind 'mousemove', (evt) => - offset = @el.offset() - x = evt.pageX - offset.left - if @selectFrom - left = @data[@hitTest(Math.min(x, @selectFrom))]._x - right = @data[@hitTest(Math.max(x, @selectFrom))]._x - width = right - left - @selectionRect.attr({ x: left, width: width }) - else - @fire 'hovermove', x, evt.pageY - offset.top - - @el.bind 'mouseleave', (evt) => - if @selectFrom - @selectionRect.hide() - @selectFrom = null - @fire 'hoverout' - - @el.bind 'touchstart touchmove touchend', (evt) => - touch = evt.originalEvent.touches[0] or evt.originalEvent.changedTouches[0] - offset = @el.offset() - @fire 'hovermove', touch.pageX - offset.left, touch.pageY - offset.top - - @el.bind 'click', (evt) => - offset = @el.offset() - @fire 'gridclick', evt.pageX - offset.left, evt.pageY - offset.top - - if @options.rangeSelect - @selectionRect = @raphael.rect(0, 0, 0, @el.innerHeight()) - .attr({ fill: @options.rangeSelectColor, stroke: false }) - .toBack() - .hide() - - @el.bind 'mousedown', (evt) => - offset = @el.offset() - @startRange evt.pageX - offset.left - - @el.bind 'mouseup', (evt) => - offset = @el.offset() - @endRange evt.pageX - offset.left - @fire 'hovermove', evt.pageX - offset.left, evt.pageY - offset.top - - if @options.resize - $(window).bind 'resize', (evt) => - if @timeoutId? - window.clearTimeout @timeoutId - @timeoutId = window.setTimeout @resizeHandler, 100 - - # Disable tap highlight on iOS. - @el.css('-webkit-tap-highlight-color', 'rgba(0,0,0,0)') - - @postInit() if @postInit - - # Default options - # - gridDefaults: - dateFormat: null - axes: true - grid: true - gridLineColor: '#aaa' - gridStrokeWidth: 0.5 - gridTextColor: '#888' - gridTextSize: 12 - gridTextFamily: 'sans-serif' - gridTextWeight: 'normal' - hideHover: false - yLabelFormat: null - xLabelAngle: 0 - numLines: 5 - padding: 25 - parseTime: true - postUnits: '' - preUnits: '' - ymax: 'auto' - ymin: 'auto 0' - goals: [] - goalStrokeWidth: 1.0 - goalLineColors: [ - '#666633' - '#999966' - '#cc6666' - '#663333' - ] - events: [] - eventStrokeWidth: 1.0 - eventLineColors: [ - '#005a04' - '#ccffbb' - '#3a5f0b' - '#005502' - ] - rangeSelect: null - rangeSelectColor: '#eef' - resize: false - - # Update the data series and redraw the chart. - # - setData: (data, redraw = true) -> - @options.data = data - - if !data? or data.length == 0 - @data = [] - @raphael.clear() - @hover.hide() if @hover? - return - - ymax = if @cumulative then 0 else null - ymin = if @cumulative then 0 else null - - if @options.goals.length > 0 - minGoal = Math.min @options.goals... - maxGoal = Math.max @options.goals... - ymin = if ymin? then Math.min(ymin, minGoal) else minGoal - ymax = if ymax? then Math.max(ymax, maxGoal) else maxGoal - - @data = for row, index in data - ret = {src: row} - - ret.label = row[@options.xkey] - if @options.parseTime - ret.x = Morris.parseDate(ret.label) - if @options.dateFormat - ret.label = @options.dateFormat ret.x - else if typeof ret.label is 'number' - ret.label = new Date(ret.label).toString() - else - ret.x = index - if @options.xLabelFormat - ret.label = @options.xLabelFormat ret - total = 0 - ret.y = for ykey, idx in @options.ykeys - yval = row[ykey] - yval = parseFloat(yval) if typeof yval is 'string' - yval = null if yval? and typeof yval isnt 'number' - if yval? - if @cumulative - total += yval - else - if ymax? - ymax = Math.max(yval, ymax) - ymin = Math.min(yval, ymin) - else - ymax = ymin = yval - if @cumulative and total? - ymax = Math.max(total, ymax) - ymin = Math.min(total, ymin) - yval - ret - - if @options.parseTime - @data = @data.sort (a, b) -> (a.x > b.x) - (b.x > a.x) - - # calculate horizontal range of the graph - @xmin = @data[0].x - @xmax = @data[@data.length - 1].x - - @events = [] - if @options.events.length > 0 - if @options.parseTime - @events = (Morris.parseDate(e) for e in @options.events) - else - @events = @options.events - @xmax = Math.max(@xmax, Math.max(@events...)) - @xmin = Math.min(@xmin, Math.min(@events...)) - - if @xmin is @xmax - @xmin -= 1 - @xmax += 1 - - @ymin = @yboundary('min', ymin) - @ymax = @yboundary('max', ymax) - - if @ymin is @ymax - @ymin -= 1 if ymin - @ymax += 1 - - if @options.axes in [true, 'both', 'y'] or @options.grid is true - if (@options.ymax == @gridDefaults.ymax and - @options.ymin == @gridDefaults.ymin) - # calculate 'magic' grid placement - @grid = @autoGridLines(@ymin, @ymax, @options.numLines) - @ymin = Math.min(@ymin, @grid[0]) - @ymax = Math.max(@ymax, @grid[@grid.length - 1]) - else - step = (@ymax - @ymin) / (@options.numLines - 1) - @grid = (y for y in [@ymin..@ymax] by step) - - @dirty = true - @redraw() if redraw - - yboundary: (boundaryType, currentValue) -> - boundaryOption = @options["y#{boundaryType}"] - if typeof boundaryOption is 'string' - if boundaryOption[0..3] is 'auto' - if boundaryOption.length > 5 - suggestedValue = parseInt(boundaryOption[5..], 10) - return suggestedValue unless currentValue? - Math[boundaryType](currentValue, suggestedValue) - else - if currentValue? then currentValue else 0 - else - parseInt(boundaryOption, 10) - else - boundaryOption - - autoGridLines: (ymin, ymax, nlines) -> - span = ymax - ymin - ymag = Math.floor(Math.log(span) / Math.log(10)) - unit = Math.pow(10, ymag) - - # calculate initial grid min and max values - gmin = Math.floor(ymin / unit) * unit - gmax = Math.ceil(ymax / unit) * unit - step = (gmax - gmin) / (nlines - 1) - if unit == 1 and step > 1 and Math.ceil(step) != step - step = Math.ceil(step) - gmax = gmin + step * (nlines - 1) - - # ensure zero is plotted where the range includes zero - if gmin < 0 and gmax > 0 - gmin = Math.floor(ymin / step) * step - gmax = Math.ceil(ymax / step) * step - - # special case for decimal numbers - if step < 1 - smag = Math.floor(Math.log(step) / Math.log(10)) - grid = for y in [gmin..gmax] by step - parseFloat(y.toFixed(1 - smag)) - else - grid = (y for y in [gmin..gmax] by step) - grid - - _calc: -> - w = @el.width() - h = @el.height() - - if @elementWidth != w or @elementHeight != h or @dirty - @elementWidth = w - @elementHeight = h - @dirty = false - # recalculate grid dimensions - @left = @options.padding - @right = @elementWidth - @options.padding - @top = @options.padding - @bottom = @elementHeight - @options.padding - if @options.axes in [true, 'both', 'y'] - yLabelWidths = for gridLine in @grid - @measureText(@yAxisFormat(gridLine)).width - @left += Math.max(yLabelWidths...) - if @options.axes in [true, 'both', 'x'] - bottomOffsets = for i in [0...@data.length] - @measureText(@data[i].text, -@options.xLabelAngle).height - @bottom -= Math.max(bottomOffsets...) - @width = Math.max(1, @right - @left) - @height = Math.max(1, @bottom - @top) - @dx = @width / (@xmax - @xmin) - @dy = @height / (@ymax - @ymin) - @calc() if @calc - - # Quick translation helpers - # - transY: (y) -> @bottom - (y - @ymin) * @dy - transX: (x) -> - if @data.length == 1 - (@left + @right) / 2 - else - @left + (x - @xmin) * @dx - - # Draw it! - # - # If you need to re-size your charts, call this method after changing the - # size of the container element. - redraw: -> - @raphael.clear() - @_calc() - @drawGrid() - @drawGoals() - @drawEvents() - @draw() if @draw - - # @private - # - measureText: (text, angle = 0) -> - tt = @raphael.text(100, 100, text) - .attr('font-size', @options.gridTextSize) - .attr('font-family', @options.gridTextFamily) - .attr('font-weight', @options.gridTextWeight) - .rotate(angle) - ret = tt.getBBox() - tt.remove() - ret - - # @private - # - yAxisFormat: (label) -> @yLabelFormat(label) - - # @private - # - yLabelFormat: (label) -> - if typeof @options.yLabelFormat is 'function' - @options.yLabelFormat(label) - else - "#{@options.preUnits}#{Morris.commas(label)}#{@options.postUnits}" - - # draw y axis labels, horizontal lines - # - drawGrid: -> - return if @options.grid is false and @options.axes not in [true, 'both', 'y'] - for lineY in @grid - y = @transY(lineY) - if @options.axes in [true, 'both', 'y'] - @drawYAxisLabel(@left - @options.padding / 2, y, @yAxisFormat(lineY)) - if @options.grid - @drawGridLine("M#{@left},#{y}H#{@left + @width}") - - # draw goals horizontal lines - # - drawGoals: -> - for goal, i in @options.goals - color = @options.goalLineColors[i % @options.goalLineColors.length] - @drawGoal(goal, color) - - # draw events vertical lines - drawEvents: -> - for event, i in @events - color = @options.eventLineColors[i % @options.eventLineColors.length] - @drawEvent(event, color) - - drawGoal: (goal, color) -> - @raphael.path("M#{@left},#{@transY(goal)}H#{@right}") - .attr('stroke', color) - .attr('stroke-width', @options.goalStrokeWidth) - - drawEvent: (event, color) -> - @raphael.path("M#{@transX(event)},#{@bottom}V#{@top}") - .attr('stroke', color) - .attr('stroke-width', @options.eventStrokeWidth) - - drawYAxisLabel: (xPos, yPos, text) -> - @raphael.text(xPos, yPos, text) - .attr('font-size', @options.gridTextSize) - .attr('font-family', @options.gridTextFamily) - .attr('font-weight', @options.gridTextWeight) - .attr('fill', @options.gridTextColor) - .attr('text-anchor', 'end') - - drawGridLine: (path) -> - @raphael.path(path) - .attr('stroke', @options.gridLineColor) - .attr('stroke-width', @options.gridStrokeWidth) - - # Range selection - # - startRange: (x) -> - @hover.hide() - @selectFrom = x - @selectionRect.attr({ x: x, width: 0 }).show() - - endRange: (x) -> - if @selectFrom - start = Math.min(@selectFrom, x) - end = Math.max(@selectFrom, x) - @options.rangeSelect.call @el, - start: @data[@hitTest(start)].x - end: @data[@hitTest(end)].x - @selectFrom = null - - resizeHandler: => - @timeoutId = null - @raphael.setSize @el.width(), @el.height() - @redraw() - -# Parse a date into a javascript timestamp -# -# -Morris.parseDate = (date) -> - if typeof date is 'number' - return date - m = date.match /^(\d+) Q(\d)$/ - n = date.match /^(\d+)-(\d+)$/ - o = date.match /^(\d+)-(\d+)-(\d+)$/ - p = date.match /^(\d+) W(\d+)$/ - q = date.match /^(\d+)-(\d+)-(\d+)[ T](\d+):(\d+)(Z|([+-])(\d\d):?(\d\d))?$/ - r = date.match /^(\d+)-(\d+)-(\d+)[ T](\d+):(\d+):(\d+(\.\d+)?)(Z|([+-])(\d\d):?(\d\d))?$/ - if m - new Date( - parseInt(m[1], 10), - parseInt(m[2], 10) * 3 - 1, - 1).getTime() - else if n - new Date( - parseInt(n[1], 10), - parseInt(n[2], 10) - 1, - 1).getTime() - else if o - new Date( - parseInt(o[1], 10), - parseInt(o[2], 10) - 1, - parseInt(o[3], 10)).getTime() - else if p - # calculate number of weeks in year given - ret = new Date(parseInt(p[1], 10), 0, 1); - # first thursday in year (ISO 8601 standard) - if ret.getDay() isnt 4 - ret.setMonth(0, 1 + ((4 - ret.getDay()) + 7) % 7); - # add weeks - ret.getTime() + parseInt(p[2], 10) * 604800000 - else if q - if not q[6] - # no timezone info, use local - new Date( - parseInt(q[1], 10), - parseInt(q[2], 10) - 1, - parseInt(q[3], 10), - parseInt(q[4], 10), - parseInt(q[5], 10)).getTime() - else - # timezone info supplied, use UTC - offsetmins = 0 - if q[6] != 'Z' - offsetmins = parseInt(q[8], 10) * 60 + parseInt(q[9], 10) - offsetmins = 0 - offsetmins if q[7] == '+' - Date.UTC( - parseInt(q[1], 10), - parseInt(q[2], 10) - 1, - parseInt(q[3], 10), - parseInt(q[4], 10), - parseInt(q[5], 10) + offsetmins) - else if r - secs = parseFloat(r[6]) - isecs = Math.floor(secs) - msecs = Math.round((secs - isecs) * 1000) - if not r[8] - # no timezone info, use local - new Date( - parseInt(r[1], 10), - parseInt(r[2], 10) - 1, - parseInt(r[3], 10), - parseInt(r[4], 10), - parseInt(r[5], 10), - isecs, - msecs).getTime() - else - # timezone info supplied, use UTC - offsetmins = 0 - if r[8] != 'Z' - offsetmins = parseInt(r[10], 10) * 60 + parseInt(r[11], 10) - offsetmins = 0 - offsetmins if r[9] == '+' - Date.UTC( - parseInt(r[1], 10), - parseInt(r[2], 10) - 1, - parseInt(r[3], 10), - parseInt(r[4], 10), - parseInt(r[5], 10) + offsetmins, - isecs, - msecs) - else - new Date(parseInt(date, 10), 0, 1).getTime() - diff --git a/admin/bower_components/morris.js/lib/morris.hover.coffee b/admin/bower_components/morris.js/lib/morris.hover.coffee deleted file mode 100644 index 530cb08..0000000 --- a/admin/bower_components/morris.js/lib/morris.hover.coffee +++ /dev/null @@ -1,44 +0,0 @@ -class Morris.Hover - # Displays contextual information in a floating HTML div. - - @defaults: - class: 'morris-hover morris-default-style' - - constructor: (options = {}) -> - @options = $.extend {}, Morris.Hover.defaults, options - @el = $ "<div class='#{@options.class}'></div>" - @el.hide() - @options.parent.append(@el) - - update: (html, x, y) -> - if not html - @hide() - else - @html(html) - @show() - @moveTo(x, y) - - html: (content) -> - @el.html(content) - - moveTo: (x, y) -> - parentWidth = @options.parent.innerWidth() - parentHeight = @options.parent.innerHeight() - hoverWidth = @el.outerWidth() - hoverHeight = @el.outerHeight() - left = Math.min(Math.max(0, x - hoverWidth / 2), parentWidth - hoverWidth) - if y? - top = y - hoverHeight - 10 - if top < 0 - top = y + 10 - if top + hoverHeight > parentHeight - top = parentHeight / 2 - hoverHeight / 2 - else - top = parentHeight / 2 - hoverHeight / 2 - @el.css(left: left + "px", top: parseInt(top) + "px") - - show: -> - @el.show() - - hide: -> - @el.hide() diff --git a/admin/bower_components/morris.js/lib/morris.line.coffee b/admin/bower_components/morris.js/lib/morris.line.coffee deleted file mode 100644 index ea5e7dd..0000000 --- a/admin/bower_components/morris.js/lib/morris.line.coffee +++ /dev/null @@ -1,405 +0,0 @@ -class Morris.Line extends Morris.Grid - # Initialise the graph. - # - constructor: (options) -> - return new Morris.Line(options) unless (@ instanceof Morris.Line) - super(options) - - init: -> - # Some instance variables for later - if @options.hideHover isnt 'always' - @hover = new Morris.Hover(parent: @el) - @on('hovermove', @onHoverMove) - @on('hoverout', @onHoverOut) - @on('gridclick', @onGridClick) - - # Default configuration - # - defaults: - lineWidth: 3 - pointSize: 4 - lineColors: [ - '#0b62a4' - '#7A92A3' - '#4da74d' - '#afd8f8' - '#edc240' - '#cb4b4b' - '#9440ed' - ] - pointStrokeWidths: [1] - pointStrokeColors: ['#ffffff'] - pointFillColors: [] - smooth: true - xLabels: 'auto' - xLabelFormat: null - xLabelMargin: 24 - hideHover: false - - # Do any size-related calculations - # - # @private - calc: -> - @calcPoints() - @generatePaths() - - # calculate series data point coordinates - # - # @private - calcPoints: -> - for row in @data - row._x = @transX(row.x) - row._y = for y in row.y - if y? then @transY(y) else y - row._ymax = Math.min [@bottom].concat(y for y in row._y when y?)... - - # hit test - returns the index of the row at the given x-coordinate - # - hitTest: (x) -> - return null if @data.length == 0 - # TODO better search algo - for r, index in @data.slice(1) - break if x < (r._x + @data[index]._x) / 2 - index - - # click on grid event handler - # - # @private - onGridClick: (x, y) => - index = @hitTest(x) - @fire 'click', index, @data[index].src, x, y - - # hover movement event handler - # - # @private - onHoverMove: (x, y) => - index = @hitTest(x) - @displayHoverForRow(index) - - # hover out event handler - # - # @private - onHoverOut: => - if @options.hideHover isnt false - @displayHoverForRow(null) - - # display a hover popup over the given row - # - # @private - displayHoverForRow: (index) -> - if index? - @hover.update(@hoverContentForRow(index)...) - @hilight(index) - else - @hover.hide() - @hilight() - - # hover content for a point - # - # @private - hoverContentForRow: (index) -> - row = @data[index] - content = "<div class='morris-hover-row-label'>#{row.label}</div>" - for y, j in row.y - content += """ - <div class='morris-hover-point' style='color: #{@colorFor(row, j, 'label')}'> - #{@options.labels[j]}: - #{@yLabelFormat(y)} - </div> - """ - if typeof @options.hoverCallback is 'function' - content = @options.hoverCallback(index, @options, content, row.src) - [content, row._x, row._ymax] - - - # generate paths for series lines - # - # @private - generatePaths: -> - @paths = for i in [0...@options.ykeys.length] - smooth = if typeof @options.smooth is "boolean" then @options.smooth else @options.ykeys[i] in @options.smooth - coords = ({x: r._x, y: r._y[i]} for r in @data when r._y[i] isnt undefined) - - if coords.length > 1 - Morris.Line.createPath coords, smooth, @bottom - else - null - - # Draws the line chart. - # - draw: -> - @drawXAxis() if @options.axes in [true, 'both', 'x'] - @drawSeries() - if @options.hideHover is false - @displayHoverForRow(@data.length - 1) - - # draw the x-axis labels - # - # @private - drawXAxis: -> - # draw x axis labels - ypos = @bottom + @options.padding / 2 - prevLabelMargin = null - prevAngleMargin = null - drawLabel = (labelText, xpos) => - label = @drawXAxisLabel(@transX(xpos), ypos, labelText) - textBox = label.getBBox() - label.transform("r#{-@options.xLabelAngle}") - labelBox = label.getBBox() - label.transform("t0,#{labelBox.height / 2}...") - if @options.xLabelAngle != 0 - offset = -0.5 * textBox.width * - Math.cos(@options.xLabelAngle * Math.PI / 180.0) - label.transform("t#{offset},0...") - # try to avoid overlaps - labelBox = label.getBBox() - if (not prevLabelMargin? or - prevLabelMargin >= labelBox.x + labelBox.width or - prevAngleMargin? and prevAngleMargin >= labelBox.x) and - labelBox.x >= 0 and (labelBox.x + labelBox.width) < @el.width() - if @options.xLabelAngle != 0 - margin = 1.25 * @options.gridTextSize / - Math.sin(@options.xLabelAngle * Math.PI / 180.0) - prevAngleMargin = labelBox.x - margin - prevLabelMargin = labelBox.x - @options.xLabelMargin - else - label.remove() - if @options.parseTime - if @data.length == 1 and @options.xLabels == 'auto' - # where there's only one value in the series, we can't make a - # sensible guess for an x labelling scheme, so just use the original - # column label - labels = [[@data[0].label, @data[0].x]] - else - labels = Morris.labelSeries(@xmin, @xmax, @width, @options.xLabels, @options.xLabelFormat) - else - labels = ([row.label, row.x] for row in @data) - labels.reverse() - for l in labels - drawLabel(l[0], l[1]) - - # draw the data series - # - # @private - drawSeries: -> - @seriesPoints = [] - for i in [@options.ykeys.length-1..0] - @_drawLineFor i - for i in [@options.ykeys.length-1..0] - @_drawPointFor i - - _drawPointFor: (index) -> - @seriesPoints[index] = [] - for row in @data - circle = null - if row._y[index]? - circle = @drawLinePoint(row._x, row._y[index], @colorFor(row, index, 'point'), index) - @seriesPoints[index].push(circle) - - _drawLineFor: (index) -> - path = @paths[index] - if path isnt null - @drawLinePath path, @colorFor(null, index, 'line'), index - - # create a path for a data series - # - # @private - @createPath: (coords, smooth, bottom) -> - path = "" - grads = Morris.Line.gradients(coords) if smooth - - prevCoord = {y: null} - for coord, i in coords - if coord.y? - if prevCoord.y? - if smooth - g = grads[i] - lg = grads[i - 1] - ix = (coord.x - prevCoord.x) / 4 - x1 = prevCoord.x + ix - y1 = Math.min(bottom, prevCoord.y + ix * lg) - x2 = coord.x - ix - y2 = Math.min(bottom, coord.y - ix * g) - path += "C#{x1},#{y1},#{x2},#{y2},#{coord.x},#{coord.y}" - else - path += "L#{coord.x},#{coord.y}" - else - if not smooth or grads[i]? - path += "M#{coord.x},#{coord.y}" - prevCoord = coord - return path - - # calculate a gradient at each point for a series of points - # - # @private - @gradients: (coords) -> - grad = (a, b) -> (a.y - b.y) / (a.x - b.x) - for coord, i in coords - if coord.y? - nextCoord = coords[i + 1] or {y: null} - prevCoord = coords[i - 1] or {y: null} - if prevCoord.y? and nextCoord.y? - grad(prevCoord, nextCoord) - else if prevCoord.y? - grad(prevCoord, coord) - else if nextCoord.y? - grad(coord, nextCoord) - else - null - else - null - - # @private - hilight: (index) => - if @prevHilight isnt null and @prevHilight isnt index - for i in [0..@seriesPoints.length-1] - if @seriesPoints[i][@prevHilight] - @seriesPoints[i][@prevHilight].animate @pointShrinkSeries(i) - if index isnt null and @prevHilight isnt index - for i in [0..@seriesPoints.length-1] - if @seriesPoints[i][index] - @seriesPoints[i][index].animate @pointGrowSeries(i) - @prevHilight = index - - colorFor: (row, sidx, type) -> - if typeof @options.lineColors is 'function' - @options.lineColors.call(@, row, sidx, type) - else if type is 'point' - @options.pointFillColors[sidx % @options.pointFillColors.length] || @options.lineColors[sidx % @options.lineColors.length] - else - @options.lineColors[sidx % @options.lineColors.length] - - drawXAxisLabel: (xPos, yPos, text) -> - @raphael.text(xPos, yPos, text) - .attr('font-size', @options.gridTextSize) - .attr('font-family', @options.gridTextFamily) - .attr('font-weight', @options.gridTextWeight) - .attr('fill', @options.gridTextColor) - - drawLinePath: (path, lineColor, lineIndex) -> - @raphael.path(path) - .attr('stroke', lineColor) - .attr('stroke-width', @lineWidthForSeries(lineIndex)) - - drawLinePoint: (xPos, yPos, pointColor, lineIndex) -> - @raphael.circle(xPos, yPos, @pointSizeForSeries(lineIndex)) - .attr('fill', pointColor) - .attr('stroke-width', @pointStrokeWidthForSeries(lineIndex)) - .attr('stroke', @pointStrokeColorForSeries(lineIndex)) - - # @private - pointStrokeWidthForSeries: (index) -> - @options.pointStrokeWidths[index % @options.pointStrokeWidths.length] - - # @private - pointStrokeColorForSeries: (index) -> - @options.pointStrokeColors[index % @options.pointStrokeColors.length] - - # @private - lineWidthForSeries: (index) -> - if (@options.lineWidth instanceof Array) - @options.lineWidth[index % @options.lineWidth.length] - else - @options.lineWidth - - # @private - pointSizeForSeries: (index) -> - if (@options.pointSize instanceof Array) - @options.pointSize[index % @options.pointSize.length] - else - @options.pointSize - - # @private - pointGrowSeries: (index) -> - Raphael.animation r: @pointSizeForSeries(index) + 3, 25, 'linear' - - # @private - pointShrinkSeries: (index) -> - Raphael.animation r: @pointSizeForSeries(index), 25, 'linear' - -# generate a series of label, timestamp pairs for x-axis labels -# -# @private -Morris.labelSeries = (dmin, dmax, pxwidth, specName, xLabelFormat) -> - ddensity = 200 * (dmax - dmin) / pxwidth # seconds per `margin` pixels - d0 = new Date(dmin) - spec = Morris.LABEL_SPECS[specName] - # if the spec doesn't exist, search for the closest one in the list - if spec is undefined - for name in Morris.AUTO_LABEL_ORDER - s = Morris.LABEL_SPECS[name] - if ddensity >= s.span - spec = s - break - # if we run out of options, use second-intervals - if spec is undefined - spec = Morris.LABEL_SPECS["second"] - # check if there's a user-defined formatting function - if xLabelFormat - spec = $.extend({}, spec, {fmt: xLabelFormat}) - # calculate labels - d = spec.start(d0) - ret = [] - while (t = d.getTime()) <= dmax - if t >= dmin - ret.push [spec.fmt(d), t] - spec.incr(d) - return ret - -# @private -minutesSpecHelper = (interval) -> - span: interval * 60 * 1000 - start: (d) -> new Date(d.getFullYear(), d.getMonth(), d.getDate(), d.getHours()) - fmt: (d) -> "#{Morris.pad2(d.getHours())}:#{Morris.pad2(d.getMinutes())}" - incr: (d) -> d.setUTCMinutes(d.getUTCMinutes() + interval) - -# @private -secondsSpecHelper = (interval) -> - span: interval * 1000 - start: (d) -> new Date(d.getFullYear(), d.getMonth(), d.getDate(), d.getHours(), d.getMinutes()) - fmt: (d) -> "#{Morris.pad2(d.getHours())}:#{Morris.pad2(d.getMinutes())}:#{Morris.pad2(d.getSeconds())}" - incr: (d) -> d.setUTCSeconds(d.getUTCSeconds() + interval) - -Morris.LABEL_SPECS = - "decade": - span: 172800000000 # 10 * 365 * 24 * 60 * 60 * 1000 - start: (d) -> new Date(d.getFullYear() - d.getFullYear() % 10, 0, 1) - fmt: (d) -> "#{d.getFullYear()}" - incr: (d) -> d.setFullYear(d.getFullYear() + 10) - "year": - span: 17280000000 # 365 * 24 * 60 * 60 * 1000 - start: (d) -> new Date(d.getFullYear(), 0, 1) - fmt: (d) -> "#{d.getFullYear()}" - incr: (d) -> d.setFullYear(d.getFullYear() + 1) - "month": - span: 2419200000 # 28 * 24 * 60 * 60 * 1000 - start: (d) -> new Date(d.getFullYear(), d.getMonth(), 1) - fmt: (d) -> "#{d.getFullYear()}-#{Morris.pad2(d.getMonth() + 1)}" - incr: (d) -> d.setMonth(d.getMonth() + 1) - "week": - span: 604800000 # 7 * 24 * 60 * 60 * 1000 - start: (d) -> new Date(d.getFullYear(), d.getMonth(), d.getDate()) - fmt: (d) -> "#{d.getFullYear()}-#{Morris.pad2(d.getMonth() + 1)}-#{Morris.pad2(d.getDate())}" - incr: (d) -> d.setDate(d.getDate() + 7) - "day": - span: 86400000 # 24 * 60 * 60 * 1000 - start: (d) -> new Date(d.getFullYear(), d.getMonth(), d.getDate()) - fmt: (d) -> "#{d.getFullYear()}-#{Morris.pad2(d.getMonth() + 1)}-#{Morris.pad2(d.getDate())}" - incr: (d) -> d.setDate(d.getDate() + 1) - "hour": minutesSpecHelper(60) - "30min": minutesSpecHelper(30) - "15min": minutesSpecHelper(15) - "10min": minutesSpecHelper(10) - "5min": minutesSpecHelper(5) - "minute": minutesSpecHelper(1) - "30sec": secondsSpecHelper(30) - "15sec": secondsSpecHelper(15) - "10sec": secondsSpecHelper(10) - "5sec": secondsSpecHelper(5) - "second": secondsSpecHelper(1) - -Morris.AUTO_LABEL_ORDER = [ - "decade", "year", "month", "week", "day", "hour", - "30min", "15min", "10min", "5min", "minute", - "30sec", "15sec", "10sec", "5sec", "second" -] diff --git a/admin/bower_components/morris.js/morris.css b/admin/bower_components/morris.js/morris.css deleted file mode 100644 index 209f091..0000000 --- a/admin/bower_components/morris.js/morris.css +++ /dev/null @@ -1,2 +0,0 @@ -.morris-hover{position:absolute;z-index:1000}.morris-hover.morris-default-style{border-radius:10px;padding:6px;color:#666;background:rgba(255,255,255,0.8);border:solid 2px rgba(230,230,230,0.8);font-family:sans-serif;font-size:12px;text-align:center}.morris-hover.morris-default-style .morris-hover-row-label{font-weight:bold;margin:0.25em 0} -.morris-hover.morris-default-style .morris-hover-point{white-space:nowrap;margin:0.1em 0} diff --git a/admin/bower_components/morris.js/morris.js b/admin/bower_components/morris.js/morris.js deleted file mode 100644 index 3a1a830..0000000 --- a/admin/bower_components/morris.js/morris.js +++ /dev/null @@ -1,1892 +0,0 @@ -/* @license -morris.js v0.5.0 -Copyright 2014 Olly Smith All rights reserved. -Licensed under the BSD-2-Clause License. -*/ - - -(function() { - var $, Morris, minutesSpecHelper, secondsSpecHelper, - __slice = [].slice, - __bind = function(fn, me){ return function(){ return fn.apply(me, arguments); }; }, - __hasProp = {}.hasOwnProperty, - __extends = function(child, parent) { for (var key in parent) { if (__hasProp.call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor(); child.__super__ = parent.prototype; return child; }, - __indexOf = [].indexOf || function(item) { for (var i = 0, l = this.length; i < l; i++) { if (i in this && this[i] === item) return i; } return -1; }; - - Morris = window.Morris = {}; - - $ = jQuery; - - Morris.EventEmitter = (function() { - function EventEmitter() {} - - EventEmitter.prototype.on = function(name, handler) { - if (this.handlers == null) { - this.handlers = {}; - } - if (this.handlers[name] == null) { - this.handlers[name] = []; - } - this.handlers[name].push(handler); - return this; - }; - - EventEmitter.prototype.fire = function() { - var args, handler, name, _i, _len, _ref, _results; - name = arguments[0], args = 2 <= arguments.length ? __slice.call(arguments, 1) : []; - if ((this.handlers != null) && (this.handlers[name] != null)) { - _ref = this.handlers[name]; - _results = []; - for (_i = 0, _len = _ref.length; _i < _len; _i++) { - handler = _ref[_i]; - _results.push(handler.apply(null, args)); - } - return _results; - } - }; - - return EventEmitter; - - })(); - - Morris.commas = function(num) { - var absnum, intnum, ret, strabsnum; - if (num != null) { - ret = num < 0 ? "-" : ""; - absnum = Math.abs(num); - intnum = Math.floor(absnum).toFixed(0); - ret += intnum.replace(/(?=(?:\d{3})+$)(?!^)/g, ','); - strabsnum = absnum.toString(); - if (strabsnum.length > intnum.length) { - ret += strabsnum.slice(intnum.length); - } - return ret; - } else { - return '-'; - } - }; - - Morris.pad2 = function(number) { - return (number < 10 ? '0' : '') + number; - }; - - Morris.Grid = (function(_super) { - __extends(Grid, _super); - - function Grid(options) { - this.resizeHandler = __bind(this.resizeHandler, this); - var _this = this; - if (typeof options.element === 'string') { - this.el = $(document.getElementById(options.element)); - } else { - this.el = $(options.element); - } - if ((this.el == null) || this.el.length === 0) { - throw new Error("Graph container element not found"); - } - if (this.el.css('position') === 'static') { - this.el.css('position', 'relative'); - } - this.options = $.extend({}, this.gridDefaults, this.defaults || {}, options); - if (typeof this.options.units === 'string') { - this.options.postUnits = options.units; - } - this.raphael = new Raphael(this.el[0]); - this.elementWidth = null; - this.elementHeight = null; - this.dirty = false; - this.selectFrom = null; - if (this.init) { - this.init(); - } - this.setData(this.options.data); - this.el.bind('mousemove', function(evt) { - var left, offset, right, width, x; - offset = _this.el.offset(); - x = evt.pageX - offset.left; - if (_this.selectFrom) { - left = _this.data[_this.hitTest(Math.min(x, _this.selectFrom))]._x; - right = _this.data[_this.hitTest(Math.max(x, _this.selectFrom))]._x; - width = right - left; - return _this.selectionRect.attr({ - x: left, - width: width - }); - } else { - return _this.fire('hovermove', x, evt.pageY - offset.top); - } - }); - this.el.bind('mouseleave', function(evt) { - if (_this.selectFrom) { - _this.selectionRect.hide(); - _this.selectFrom = null; - } - return _this.fire('hoverout'); - }); - this.el.bind('touchstart touchmove touchend', function(evt) { - var offset, touch; - touch = evt.originalEvent.touches[0] || evt.originalEvent.changedTouches[0]; - offset = _this.el.offset(); - return _this.fire('hovermove', touch.pageX - offset.left, touch.pageY - offset.top); - }); - this.el.bind('click', function(evt) { - var offset; - offset = _this.el.offset(); - return _this.fire('gridclick', evt.pageX - offset.left, evt.pageY - offset.top); - }); - if (this.options.rangeSelect) { - this.selectionRect = this.raphael.rect(0, 0, 0, this.el.innerHeight()).attr({ - fill: this.options.rangeSelectColor, - stroke: false - }).toBack().hide(); - this.el.bind('mousedown', function(evt) { - var offset; - offset = _this.el.offset(); - return _this.startRange(evt.pageX - offset.left); - }); - this.el.bind('mouseup', function(evt) { - var offset; - offset = _this.el.offset(); - _this.endRange(evt.pageX - offset.left); - return _this.fire('hovermove', evt.pageX - offset.left, evt.pageY - offset.top); - }); - } - if (this.options.resize) { - $(window).bind('resize', function(evt) { - if (_this.timeoutId != null) { - window.clearTimeout(_this.timeoutId); - } - return _this.timeoutId = window.setTimeout(_this.resizeHandler, 100); - }); - } - this.el.css('-webkit-tap-highlight-color', 'rgba(0,0,0,0)'); - if (this.postInit) { - this.postInit(); - } - } - - Grid.prototype.gridDefaults = { - dateFormat: null, - axes: true, - grid: true, - gridLineColor: '#aaa', - gridStrokeWidth: 0.5, - gridTextColor: '#888', - gridTextSize: 12, - gridTextFamily: 'sans-serif', - gridTextWeight: 'normal', - hideHover: false, - yLabelFormat: null, - xLabelAngle: 0, - numLines: 5, - padding: 25, - parseTime: true, - postUnits: '', - preUnits: '', - ymax: 'auto', - ymin: 'auto 0', - goals: [], - goalStrokeWidth: 1.0, - goalLineColors: ['#666633', '#999966', '#cc6666', '#663333'], - events: [], - eventStrokeWidth: 1.0, - eventLineColors: ['#005a04', '#ccffbb', '#3a5f0b', '#005502'], - rangeSelect: null, - rangeSelectColor: '#eef', - resize: false - }; - - Grid.prototype.setData = function(data, redraw) { - var e, idx, index, maxGoal, minGoal, ret, row, step, total, y, ykey, ymax, ymin, yval, _ref; - if (redraw == null) { - redraw = true; - } - this.options.data = data; - if ((data == null) || data.length === 0) { - this.data = []; - this.raphael.clear(); - if (this.hover != null) { - this.hover.hide(); - } - return; - } - ymax = this.cumulative ? 0 : null; - ymin = this.cumulative ? 0 : null; - if (this.options.goals.length > 0) { - minGoal = Math.min.apply(Math, this.options.goals); - maxGoal = Math.max.apply(Math, this.options.goals); - ymin = ymin != null ? Math.min(ymin, minGoal) : minGoal; - ymax = ymax != null ? Math.max(ymax, maxGoal) : maxGoal; - } - this.data = (function() { - var _i, _len, _results; - _results = []; - for (index = _i = 0, _len = data.length; _i < _len; index = ++_i) { - row = data[index]; - ret = { - src: row - }; - ret.label = row[this.options.xkey]; - if (this.options.parseTime) { - ret.x = Morris.parseDate(ret.label); - if (this.options.dateFormat) { - ret.label = this.options.dateFormat(ret.x); - } else if (typeof ret.label === 'number') { - ret.label = new Date(ret.label).toString(); - } - } else { - ret.x = index; - if (this.options.xLabelFormat) { - ret.label = this.options.xLabelFormat(ret); - } - } - total = 0; - ret.y = (function() { - var _j, _len1, _ref, _results1; - _ref = this.options.ykeys; - _results1 = []; - for (idx = _j = 0, _len1 = _ref.length; _j < _len1; idx = ++_j) { - ykey = _ref[idx]; - yval = row[ykey]; - if (typeof yval === 'string') { - yval = parseFloat(yval); - } - if ((yval != null) && typeof yval !== 'number') { - yval = null; - } - if (yval != null) { - if (this.cumulative) { - total += yval; - } else { - if (ymax != null) { - ymax = Math.max(yval, ymax); - ymin = Math.min(yval, ymin); - } else { - ymax = ymin = yval; - } - } - } - if (this.cumulative && (total != null)) { - ymax = Math.max(total, ymax); - ymin = Math.min(total, ymin); - } - _results1.push(yval); - } - return _results1; - }).call(this); - _results.push(ret); - } - return _results; - }).call(this); - if (this.options.parseTime) { - this.data = this.data.sort(function(a, b) { - return (a.x > b.x) - (b.x > a.x); - }); - } - this.xmin = this.data[0].x; - this.xmax = this.data[this.data.length - 1].x; - this.events = []; - if (this.options.events.length > 0) { - if (this.options.parseTime) { - this.events = (function() { - var _i, _len, _ref, _results; - _ref = this.options.events; - _results = []; - for (_i = 0, _len = _ref.length; _i < _len; _i++) { - e = _ref[_i]; - _results.push(Morris.parseDate(e)); - } - return _results; - }).call(this); - } else { - this.events = this.options.events; - } - this.xmax = Math.max(this.xmax, Math.max.apply(Math, this.events)); - this.xmin = Math.min(this.xmin, Math.min.apply(Math, this.events)); - } - if (this.xmin === this.xmax) { - this.xmin -= 1; - this.xmax += 1; - } - this.ymin = this.yboundary('min', ymin); - this.ymax = this.yboundary('max', ymax); - if (this.ymin === this.ymax) { - if (ymin) { - this.ymin -= 1; - } - this.ymax += 1; - } - if (((_ref = this.options.axes) === true || _ref === 'both' || _ref === 'y') || this.options.grid === true) { - if (this.options.ymax === this.gridDefaults.ymax && this.options.ymin === this.gridDefaults.ymin) { - this.grid = this.autoGridLines(this.ymin, this.ymax, this.options.numLines); - this.ymin = Math.min(this.ymin, this.grid[0]); - this.ymax = Math.max(this.ymax, this.grid[this.grid.length - 1]); - } else { - step = (this.ymax - this.ymin) / (this.options.numLines - 1); - this.grid = (function() { - var _i, _ref1, _ref2, _results; - _results = []; - for (y = _i = _ref1 = this.ymin, _ref2 = this.ymax; step > 0 ? _i <= _ref2 : _i >= _ref2; y = _i += step) { - _results.push(y); - } - return _results; - }).call(this); - } - } - this.dirty = true; - if (redraw) { - return this.redraw(); - } - }; - - Grid.prototype.yboundary = function(boundaryType, currentValue) { - var boundaryOption, suggestedValue; - boundaryOption = this.options["y" + boundaryType]; - if (typeof boundaryOption === 'string') { - if (boundaryOption.slice(0, 4) === 'auto') { - if (boundaryOption.length > 5) { - suggestedValue = parseInt(boundaryOption.slice(5), 10); - if (currentValue == null) { - return suggestedValue; - } - return Math[boundaryType](currentValue, suggestedValue); - } else { - if (currentValue != null) { - return currentValue; - } else { - return 0; - } - } - } else { - return parseInt(boundaryOption, 10); - } - } else { - return boundaryOption; - } - }; - - Grid.prototype.autoGridLines = function(ymin, ymax, nlines) { - var gmax, gmin, grid, smag, span, step, unit, y, ymag; - span = ymax - ymin; - ymag = Math.floor(Math.log(span) / Math.log(10)); - unit = Math.pow(10, ymag); - gmin = Math.floor(ymin / unit) * unit; - gmax = Math.ceil(ymax / unit) * unit; - step = (gmax - gmin) / (nlines - 1); - if (unit === 1 && step > 1 && Math.ceil(step) !== step) { - step = Math.ceil(step); - gmax = gmin + step * (nlines - 1); - } - if (gmin < 0 && gmax > 0) { - gmin = Math.floor(ymin / step) * step; - gmax = Math.ceil(ymax / step) * step; - } - if (step < 1) { - smag = Math.floor(Math.log(step) / Math.log(10)); - grid = (function() { - var _i, _results; - _results = []; - for (y = _i = gmin; step > 0 ? _i <= gmax : _i >= gmax; y = _i += step) { - _results.push(parseFloat(y.toFixed(1 - smag))); - } - return _results; - })(); - } else { - grid = (function() { - var _i, _results; - _results = []; - for (y = _i = gmin; step > 0 ? _i <= gmax : _i >= gmax; y = _i += step) { - _results.push(y); - } - return _results; - })(); - } - return grid; - }; - - Grid.prototype._calc = function() { - var bottomOffsets, gridLine, h, i, w, yLabelWidths, _ref, _ref1; - w = this.el.width(); - h = this.el.height(); - if (this.elementWidth !== w || this.elementHeight !== h || this.dirty) { - this.elementWidth = w; - this.elementHeight = h; - this.dirty = false; - this.left = this.options.padding; - this.right = this.elementWidth - this.options.padding; - this.top = this.options.padding; - this.bottom = this.elementHeight - this.options.padding; - if ((_ref = this.options.axes) === true || _ref === 'both' || _ref === 'y') { - yLabelWidths = (function() { - var _i, _len, _ref1, _results; - _ref1 = this.grid; - _results = []; - for (_i = 0, _len = _ref1.length; _i < _len; _i++) { - gridLine = _ref1[_i]; - _results.push(this.measureText(this.yAxisFormat(gridLine)).width); - } - return _results; - }).call(this); - this.left += Math.max.apply(Math, yLabelWidths); - } - if ((_ref1 = this.options.axes) === true || _ref1 === 'both' || _ref1 === 'x') { - bottomOffsets = (function() { - var _i, _ref2, _results; - _results = []; - for (i = _i = 0, _ref2 = this.data.length; 0 <= _ref2 ? _i < _ref2 : _i > _ref2; i = 0 <= _ref2 ? ++_i : --_i) { - _results.push(this.measureText(this.data[i].text, -this.options.xLabelAngle).height); - } - return _results; - }).call(this); - this.bottom -= Math.max.apply(Math, bottomOffsets); - } - this.width = Math.max(1, this.right - this.left); - this.height = Math.max(1, this.bottom - this.top); - this.dx = this.width / (this.xmax - this.xmin); - this.dy = this.height / (this.ymax - this.ymin); - if (this.calc) { - return this.calc(); - } - } - }; - - Grid.prototype.transY = function(y) { - return this.bottom - (y - this.ymin) * this.dy; - }; - - Grid.prototype.transX = function(x) { - if (this.data.length === 1) { - return (this.left + this.right) / 2; - } else { - return this.left + (x - this.xmin) * this.dx; - } - }; - - Grid.prototype.redraw = function() { - this.raphael.clear(); - this._calc(); - this.drawGrid(); - this.drawGoals(); - this.drawEvents(); - if (this.draw) { - return this.draw(); - } - }; - - Grid.prototype.measureText = function(text, angle) { - var ret, tt; - if (angle == null) { - angle = 0; - } - tt = this.raphael.text(100, 100, text).attr('font-size', this.options.gridTextSize).attr('font-family', this.options.gridTextFamily).attr('font-weight', this.options.gridTextWeight).rotate(angle); - ret = tt.getBBox(); - tt.remove(); - return ret; - }; - - Grid.prototype.yAxisFormat = function(label) { - return this.yLabelFormat(label); - }; - - Grid.prototype.yLabelFormat = function(label) { - if (typeof this.options.yLabelFormat === 'function') { - return this.options.yLabelFormat(label); - } else { - return "" + this.options.preUnits + (Morris.commas(label)) + this.options.postUnits; - } - }; - - Grid.prototype.drawGrid = function() { - var lineY, y, _i, _len, _ref, _ref1, _ref2, _results; - if (this.options.grid === false && ((_ref = this.options.axes) !== true && _ref !== 'both' && _ref !== 'y')) { - return; - } - _ref1 = this.grid; - _results = []; - for (_i = 0, _len = _ref1.length; _i < _len; _i++) { - lineY = _ref1[_i]; - y = this.transY(lineY); - if ((_ref2 = this.options.axes) === true || _ref2 === 'both' || _ref2 === 'y') { - this.drawYAxisLabel(this.left - this.options.padding / 2, y, this.yAxisFormat(lineY)); - } - if (this.options.grid) { - _results.push(this.drawGridLine("M" + this.left + "," + y + "H" + (this.left + this.width))); - } else { - _results.push(void 0); - } - } - return _results; - }; - - Grid.prototype.drawGoals = function() { - var color, goal, i, _i, _len, _ref, _results; - _ref = this.options.goals; - _results = []; - for (i = _i = 0, _len = _ref.length; _i < _len; i = ++_i) { - goal = _ref[i]; - color = this.options.goalLineColors[i % this.options.goalLineColors.length]; - _results.push(this.drawGoal(goal, color)); - } - return _results; - }; - - Grid.prototype.drawEvents = function() { - var color, event, i, _i, _len, _ref, _results; - _ref = this.events; - _results = []; - for (i = _i = 0, _len = _ref.length; _i < _len; i = ++_i) { - event = _ref[i]; - color = this.options.eventLineColors[i % this.options.eventLineColors.length]; - _results.push(this.drawEvent(event, color)); - } - return _results; - }; - - Grid.prototype.drawGoal = function(goal, color) { - return this.raphael.path("M" + this.left + "," + (this.transY(goal)) + "H" + this.right).attr('stroke', color).attr('stroke-width', this.options.goalStrokeWidth); - }; - - Grid.prototype.drawEvent = function(event, color) { - return this.raphael.path("M" + (this.transX(event)) + "," + this.bottom + "V" + this.top).attr('stroke', color).attr('stroke-width', this.options.eventStrokeWidth); - }; - - Grid.prototype.drawYAxisLabel = function(xPos, yPos, text) { - return this.raphael.text(xPos, yPos, text).attr('font-size', this.options.gridTextSize).attr('font-family', this.options.gridTextFamily).attr('font-weight', this.options.gridTextWeight).attr('fill', this.options.gridTextColor).attr('text-anchor', 'end'); - }; - - Grid.prototype.drawGridLine = function(path) { - return this.raphael.path(path).attr('stroke', this.options.gridLineColor).attr('stroke-width', this.options.gridStrokeWidth); - }; - - Grid.prototype.startRange = function(x) { - this.hover.hide(); - this.selectFrom = x; - return this.selectionRect.attr({ - x: x, - width: 0 - }).show(); - }; - - Grid.prototype.endRange = function(x) { - var end, start; - if (this.selectFrom) { - start = Math.min(this.selectFrom, x); - end = Math.max(this.selectFrom, x); - this.options.rangeSelect.call(this.el, { - start: this.data[this.hitTest(start)].x, - end: this.data[this.hitTest(end)].x - }); - return this.selectFrom = null; - } - }; - - Grid.prototype.resizeHandler = function() { - this.timeoutId = null; - this.raphael.setSize(this.el.width(), this.el.height()); - return this.redraw(); - }; - - return Grid; - - })(Morris.EventEmitter); - - Morris.parseDate = function(date) { - var isecs, m, msecs, n, o, offsetmins, p, q, r, ret, secs; - if (typeof date === 'number') { - return date; - } - m = date.match(/^(\d+) Q(\d)$/); - n = date.match(/^(\d+)-(\d+)$/); - o = date.match(/^(\d+)-(\d+)-(\d+)$/); - p = date.match(/^(\d+) W(\d+)$/); - q = date.match(/^(\d+)-(\d+)-(\d+)[ T](\d+):(\d+)(Z|([+-])(\d\d):?(\d\d))?$/); - r = date.match(/^(\d+)-(\d+)-(\d+)[ T](\d+):(\d+):(\d+(\.\d+)?)(Z|([+-])(\d\d):?(\d\d))?$/); - if (m) { - return new Date(parseInt(m[1], 10), parseInt(m[2], 10) * 3 - 1, 1).getTime(); - } else if (n) { - return new Date(parseInt(n[1], 10), parseInt(n[2], 10) - 1, 1).getTime(); - } else if (o) { - return new Date(parseInt(o[1], 10), parseInt(o[2], 10) - 1, parseInt(o[3], 10)).getTime(); - } else if (p) { - ret = new Date(parseInt(p[1], 10), 0, 1); - if (ret.getDay() !== 4) { - ret.setMonth(0, 1 + ((4 - ret.getDay()) + 7) % 7); - } - return ret.getTime() + parseInt(p[2], 10) * 604800000; - } else if (q) { - if (!q[6]) { - return new Date(parseInt(q[1], 10), parseInt(q[2], 10) - 1, parseInt(q[3], 10), parseInt(q[4], 10), parseInt(q[5], 10)).getTime(); - } else { - offsetmins = 0; - if (q[6] !== 'Z') { - offsetmins = parseInt(q[8], 10) * 60 + parseInt(q[9], 10); - if (q[7] === '+') { - offsetmins = 0 - offsetmins; - } - } - return Date.UTC(parseInt(q[1], 10), parseInt(q[2], 10) - 1, parseInt(q[3], 10), parseInt(q[4], 10), parseInt(q[5], 10) + offsetmins); - } - } else if (r) { - secs = parseFloat(r[6]); - isecs = Math.floor(secs); - msecs = Math.round((secs - isecs) * 1000); - if (!r[8]) { - return new Date(parseInt(r[1], 10), parseInt(r[2], 10) - 1, parseInt(r[3], 10), parseInt(r[4], 10), parseInt(r[5], 10), isecs, msecs).getTime(); - } else { - offsetmins = 0; - if (r[8] !== 'Z') { - offsetmins = parseInt(r[10], 10) * 60 + parseInt(r[11], 10); - if (r[9] === '+') { - offsetmins = 0 - offsetmins; - } - } - return Date.UTC(parseInt(r[1], 10), parseInt(r[2], 10) - 1, parseInt(r[3], 10), parseInt(r[4], 10), parseInt(r[5], 10) + offsetmins, isecs, msecs); - } - } else { - return new Date(parseInt(date, 10), 0, 1).getTime(); - } - }; - - Morris.Hover = (function() { - Hover.defaults = { - "class": 'morris-hover morris-default-style' - }; - - function Hover(options) { - if (options == null) { - options = {}; - } - this.options = $.extend({}, Morris.Hover.defaults, options); - this.el = $("<div class='" + this.options["class"] + "'></div>"); - this.el.hide(); - this.options.parent.append(this.el); - } - - Hover.prototype.update = function(html, x, y) { - if (!html) { - return this.hide(); - } else { - this.html(html); - this.show(); - return this.moveTo(x, y); - } - }; - - Hover.prototype.html = function(content) { - return this.el.html(content); - }; - - Hover.prototype.moveTo = function(x, y) { - var hoverHeight, hoverWidth, left, parentHeight, parentWidth, top; - parentWidth = this.options.parent.innerWidth(); - parentHeight = this.options.parent.innerHeight(); - hoverWidth = this.el.outerWidth(); - hoverHeight = this.el.outerHeight(); - left = Math.min(Math.max(0, x - hoverWidth / 2), parentWidth - hoverWidth); - if (y != null) { - top = y - hoverHeight - 10; - if (top < 0) { - top = y + 10; - if (top + hoverHeight > parentHeight) { - top = parentHeight / 2 - hoverHeight / 2; - } - } - } else { - top = parentHeight / 2 - hoverHeight / 2; - } - return this.el.css({ - left: left + "px", - top: parseInt(top) + "px" - }); - }; - - Hover.prototype.show = function() { - return this.el.show(); - }; - - Hover.prototype.hide = function() { - return this.el.hide(); - }; - - return Hover; - - })(); - - Morris.Line = (function(_super) { - __extends(Line, _super); - - function Line(options) { - this.hilight = __bind(this.hilight, this); - this.onHoverOut = __bind(this.onHoverOut, this); - this.onHoverMove = __bind(this.onHoverMove, this); - this.onGridClick = __bind(this.onGridClick, this); - if (!(this instanceof Morris.Line)) { - return new Morris.Line(options); - } - Line.__super__.constructor.call(this, options); - } - - Line.prototype.init = function() { - if (this.options.hideHover !== 'always') { - this.hover = new Morris.Hover({ - parent: this.el - }); - this.on('hovermove', this.onHoverMove); - this.on('hoverout', this.onHoverOut); - return this.on('gridclick', this.onGridClick); - } - }; - - Line.prototype.defaults = { - lineWidth: 3, - pointSize: 4, - lineColors: ['#0b62a4', '#7A92A3', '#4da74d', '#afd8f8', '#edc240', '#cb4b4b', '#9440ed'], - pointStrokeWidths: [1], - pointStrokeColors: ['#ffffff'], - pointFillColors: [], - smooth: true, - xLabels: 'auto', - xLabelFormat: null, - xLabelMargin: 24, - hideHover: false - }; - - Line.prototype.calc = function() { - this.calcPoints(); - return this.generatePaths(); - }; - - Line.prototype.calcPoints = function() { - var row, y, _i, _len, _ref, _results; - _ref = this.data; - _results = []; - for (_i = 0, _len = _ref.length; _i < _len; _i++) { - row = _ref[_i]; - row._x = this.transX(row.x); - row._y = (function() { - var _j, _len1, _ref1, _results1; - _ref1 = row.y; - _results1 = []; - for (_j = 0, _len1 = _ref1.length; _j < _len1; _j++) { - y = _ref1[_j]; - if (y != null) { - _results1.push(this.transY(y)); - } else { - _results1.push(y); - } - } - return _results1; - }).call(this); - _results.push(row._ymax = Math.min.apply(Math, [this.bottom].concat((function() { - var _j, _len1, _ref1, _results1; - _ref1 = row._y; - _results1 = []; - for (_j = 0, _len1 = _ref1.length; _j < _len1; _j++) { - y = _ref1[_j]; - if (y != null) { - _results1.push(y); - } - } - return _results1; - })()))); - } - return _results; - }; - - Line.prototype.hitTest = function(x) { - var index, r, _i, _len, _ref; - if (this.data.length === 0) { - return null; - } - _ref = this.data.slice(1); - for (index = _i = 0, _len = _ref.length; _i < _len; index = ++_i) { - r = _ref[index]; - if (x < (r._x + this.data[index]._x) / 2) { - break; - } - } - return index; - }; - - Line.prototype.onGridClick = function(x, y) { - var index; - index = this.hitTest(x); - return this.fire('click', index, this.data[index].src, x, y); - }; - - Line.prototype.onHoverMove = function(x, y) { - var index; - index = this.hitTest(x); - return this.displayHoverForRow(index); - }; - - Line.prototype.onHoverOut = function() { - if (this.options.hideHover !== false) { - return this.displayHoverForRow(null); - } - }; - - Line.prototype.displayHoverForRow = function(index) { - var _ref; - if (index != null) { - (_ref = this.hover).update.apply(_ref, this.hoverContentForRow(index)); - return this.hilight(index); - } else { - this.hover.hide(); - return this.hilight(); - } - }; - - Line.prototype.hoverContentForRow = function(index) { - var content, j, row, y, _i, _len, _ref; - row = this.data[index]; - content = "<div class='morris-hover-row-label'>" + row.label + "</div>"; - _ref = row.y; - for (j = _i = 0, _len = _ref.length; _i < _len; j = ++_i) { - y = _ref[j]; - content += "<div class='morris-hover-point' style='color: " + (this.colorFor(row, j, 'label')) + "'>\n " + this.options.labels[j] + ":\n " + (this.yLabelFormat(y)) + "\n</div>"; - } - if (typeof this.options.hoverCallback === 'function') { - content = this.options.hoverCallback(index, this.options, content, row.src); - } - return [content, row._x, row._ymax]; - }; - - Line.prototype.generatePaths = function() { - var coords, i, r, smooth; - return this.paths = (function() { - var _i, _ref, _ref1, _results; - _results = []; - for (i = _i = 0, _ref = this.options.ykeys.length; 0 <= _ref ? _i < _ref : _i > _ref; i = 0 <= _ref ? ++_i : --_i) { - smooth = typeof this.options.smooth === "boolean" ? this.options.smooth : (_ref1 = this.options.ykeys[i], __indexOf.call(this.options.smooth, _ref1) >= 0); - coords = (function() { - var _j, _len, _ref2, _results1; - _ref2 = this.data; - _results1 = []; - for (_j = 0, _len = _ref2.length; _j < _len; _j++) { - r = _ref2[_j]; - if (r._y[i] !== void 0) { - _results1.push({ - x: r._x, - y: r._y[i] - }); - } - } - return _results1; - }).call(this); - if (coords.length > 1) { - _results.push(Morris.Line.createPath(coords, smooth, this.bottom)); - } else { - _results.push(null); - } - } - return _results; - }).call(this); - }; - - Line.prototype.draw = function() { - var _ref; - if ((_ref = this.options.axes) === true || _ref === 'both' || _ref === 'x') { - this.drawXAxis(); - } - this.drawSeries(); - if (this.options.hideHover === false) { - return this.displayHoverForRow(this.data.length - 1); - } - }; - - Line.prototype.drawXAxis = function() { - var drawLabel, l, labels, prevAngleMargin, prevLabelMargin, row, ypos, _i, _len, _results, - _this = this; - ypos = this.bottom + this.options.padding / 2; - prevLabelMargin = null; - prevAngleMargin = null; - drawLabel = function(labelText, xpos) { - var label, labelBox, margin, offset, textBox; - label = _this.drawXAxisLabel(_this.transX(xpos), ypos, labelText); - textBox = label.getBBox(); - label.transform("r" + (-_this.options.xLabelAngle)); - labelBox = label.getBBox(); - label.transform("t0," + (labelBox.height / 2) + "..."); - if (_this.options.xLabelAngle !== 0) { - offset = -0.5 * textBox.width * Math.cos(_this.options.xLabelAngle * Math.PI / 180.0); - label.transform("t" + offset + ",0..."); - } - labelBox = label.getBBox(); - if (((prevLabelMargin == null) || prevLabelMargin >= labelBox.x + labelBox.width || (prevAngleMargin != null) && prevAngleMargin >= labelBox.x) && labelBox.x >= 0 && (labelBox.x + labelBox.width) < _this.el.width()) { - if (_this.options.xLabelAngle !== 0) { - margin = 1.25 * _this.options.gridTextSize / Math.sin(_this.options.xLabelAngle * Math.PI / 180.0); - prevAngleMargin = labelBox.x - margin; - } - return prevLabelMargin = labelBox.x - _this.options.xLabelMargin; - } else { - return label.remove(); - } - }; - if (this.options.parseTime) { - if (this.data.length === 1 && this.options.xLabels === 'auto') { - labels = [[this.data[0].label, this.data[0].x]]; - } else { - labels = Morris.labelSeries(this.xmin, this.xmax, this.width, this.options.xLabels, this.options.xLabelFormat); - } - } else { - labels = (function() { - var _i, _len, _ref, _results; - _ref = this.data; - _results = []; - for (_i = 0, _len = _ref.length; _i < _len; _i++) { - row = _ref[_i]; - _results.push([row.label, row.x]); - } - return _results; - }).call(this); - } - labels.reverse(); - _results = []; - for (_i = 0, _len = labels.length; _i < _len; _i++) { - l = labels[_i]; - _results.push(drawLabel(l[0], l[1])); - } - return _results; - }; - - Line.prototype.drawSeries = function() { - var i, _i, _j, _ref, _ref1, _results; - this.seriesPoints = []; - for (i = _i = _ref = this.options.ykeys.length - 1; _ref <= 0 ? _i <= 0 : _i >= 0; i = _ref <= 0 ? ++_i : --_i) { - this._drawLineFor(i); - } - _results = []; - for (i = _j = _ref1 = this.options.ykeys.length - 1; _ref1 <= 0 ? _j <= 0 : _j >= 0; i = _ref1 <= 0 ? ++_j : --_j) { - _results.push(this._drawPointFor(i)); - } - return _results; - }; - - Line.prototype._drawPointFor = function(index) { - var circle, row, _i, _len, _ref, _results; - this.seriesPoints[index] = []; - _ref = this.data; - _results = []; - for (_i = 0, _len = _ref.length; _i < _len; _i++) { - row = _ref[_i]; - circle = null; - if (row._y[index] != null) { - circle = this.drawLinePoint(row._x, row._y[index], this.colorFor(row, index, 'point'), index); - } - _results.push(this.seriesPoints[index].push(circle)); - } - return _results; - }; - - Line.prototype._drawLineFor = function(index) { - var path; - path = this.paths[index]; - if (path !== null) { - return this.drawLinePath(path, this.colorFor(null, index, 'line'), index); - } - }; - - Line.createPath = function(coords, smooth, bottom) { - var coord, g, grads, i, ix, lg, path, prevCoord, x1, x2, y1, y2, _i, _len; - path = ""; - if (smooth) { - grads = Morris.Line.gradients(coords); - } - prevCoord = { - y: null - }; - for (i = _i = 0, _len = coords.length; _i < _len; i = ++_i) { - coord = coords[i]; - if (coord.y != null) { - if (prevCoord.y != null) { - if (smooth) { - g = grads[i]; - lg = grads[i - 1]; - ix = (coord.x - prevCoord.x) / 4; - x1 = prevCoord.x + ix; - y1 = Math.min(bottom, prevCoord.y + ix * lg); - x2 = coord.x - ix; - y2 = Math.min(bottom, coord.y - ix * g); - path += "C" + x1 + "," + y1 + "," + x2 + "," + y2 + "," + coord.x + "," + coord.y; - } else { - path += "L" + coord.x + "," + coord.y; - } - } else { - if (!smooth || (grads[i] != null)) { - path += "M" + coord.x + "," + coord.y; - } - } - } - prevCoord = coord; - } - return path; - }; - - Line.gradients = function(coords) { - var coord, grad, i, nextCoord, prevCoord, _i, _len, _results; - grad = function(a, b) { - return (a.y - b.y) / (a.x - b.x); - }; - _results = []; - for (i = _i = 0, _len = coords.length; _i < _len; i = ++_i) { - coord = coords[i]; - if (coord.y != null) { - nextCoord = coords[i + 1] || { - y: null - }; - prevCoord = coords[i - 1] || { - y: null - }; - if ((prevCoord.y != null) && (nextCoord.y != null)) { - _results.push(grad(prevCoord, nextCoord)); - } else if (prevCoord.y != null) { - _results.push(grad(prevCoord, coord)); - } else if (nextCoord.y != null) { - _results.push(grad(coord, nextCoord)); - } else { - _results.push(null); - } - } else { - _results.push(null); - } - } - return _results; - }; - - Line.prototype.hilight = function(index) { - var i, _i, _j, _ref, _ref1; - if (this.prevHilight !== null && this.prevHilight !== index) { - for (i = _i = 0, _ref = this.seriesPoints.length - 1; 0 <= _ref ? _i <= _ref : _i >= _ref; i = 0 <= _ref ? ++_i : --_i) { - if (this.seriesPoints[i][this.prevHilight]) { - this.seriesPoints[i][this.prevHilight].animate(this.pointShrinkSeries(i)); - } - } - } - if (index !== null && this.prevHilight !== index) { - for (i = _j = 0, _ref1 = this.seriesPoints.length - 1; 0 <= _ref1 ? _j <= _ref1 : _j >= _ref1; i = 0 <= _ref1 ? ++_j : --_j) { - if (this.seriesPoints[i][index]) { - this.seriesPoints[i][index].animate(this.pointGrowSeries(i)); - } - } - } - return this.prevHilight = index; - }; - - Line.prototype.colorFor = function(row, sidx, type) { - if (typeof this.options.lineColors === 'function') { - return this.options.lineColors.call(this, row, sidx, type); - } else if (type === 'point') { - return this.options.pointFillColors[sidx % this.options.pointFillColors.length] || this.options.lineColors[sidx % this.options.lineColors.length]; - } else { - return this.options.lineColors[sidx % this.options.lineColors.length]; - } - }; - - Line.prototype.drawXAxisLabel = function(xPos, yPos, text) { - return this.raphael.text(xPos, yPos, text).attr('font-size', this.options.gridTextSize).attr('font-family', this.options.gridTextFamily).attr('font-weight', this.options.gridTextWeight).attr('fill', this.options.gridTextColor); - }; - - Line.prototype.drawLinePath = function(path, lineColor, lineIndex) { - return this.raphael.path(path).attr('stroke', lineColor).attr('stroke-width', this.lineWidthForSeries(lineIndex)); - }; - - Line.prototype.drawLinePoint = function(xPos, yPos, pointColor, lineIndex) { - return this.raphael.circle(xPos, yPos, this.pointSizeForSeries(lineIndex)).attr('fill', pointColor).attr('stroke-width', this.pointStrokeWidthForSeries(lineIndex)).attr('stroke', this.pointStrokeColorForSeries(lineIndex)); - }; - - Line.prototype.pointStrokeWidthForSeries = function(index) { - return this.options.pointStrokeWidths[index % this.options.pointStrokeWidths.length]; - }; - - Line.prototype.pointStrokeColorForSeries = function(index) { - return this.options.pointStrokeColors[index % this.options.pointStrokeColors.length]; - }; - - Line.prototype.lineWidthForSeries = function(index) { - if (this.options.lineWidth instanceof Array) { - return this.options.lineWidth[index % this.options.lineWidth.length]; - } else { - return this.options.lineWidth; - } - }; - - Line.prototype.pointSizeForSeries = function(index) { - if (this.options.pointSize instanceof Array) { - return this.options.pointSize[index % this.options.pointSize.length]; - } else { - return this.options.pointSize; - } - }; - - Line.prototype.pointGrowSeries = function(index) { - return Raphael.animation({ - r: this.pointSizeForSeries(index) + 3 - }, 25, 'linear'); - }; - - Line.prototype.pointShrinkSeries = function(index) { - return Raphael.animation({ - r: this.pointSizeForSeries(index) - }, 25, 'linear'); - }; - - return Line; - - })(Morris.Grid); - - Morris.labelSeries = function(dmin, dmax, pxwidth, specName, xLabelFormat) { - var d, d0, ddensity, name, ret, s, spec, t, _i, _len, _ref; - ddensity = 200 * (dmax - dmin) / pxwidth; - d0 = new Date(dmin); - spec = Morris.LABEL_SPECS[specName]; - if (spec === void 0) { - _ref = Morris.AUTO_LABEL_ORDER; - for (_i = 0, _len = _ref.length; _i < _len; _i++) { - name = _ref[_i]; - s = Morris.LABEL_SPECS[name]; - if (ddensity >= s.span) { - spec = s; - break; - } - } - } - if (spec === void 0) { - spec = Morris.LABEL_SPECS["second"]; - } - if (xLabelFormat) { - spec = $.extend({}, spec, { - fmt: xLabelFormat - }); - } - d = spec.start(d0); - ret = []; - while ((t = d.getTime()) <= dmax) { - if (t >= dmin) { - ret.push([spec.fmt(d), t]); - } - spec.incr(d); - } - return ret; - }; - - minutesSpecHelper = function(interval) { - return { - span: interval * 60 * 1000, - start: function(d) { - return new Date(d.getFullYear(), d.getMonth(), d.getDate(), d.getHours()); - }, - fmt: function(d) { - return "" + (Morris.pad2(d.getHours())) + ":" + (Morris.pad2(d.getMinutes())); - }, - incr: function(d) { - return d.setUTCMinutes(d.getUTCMinutes() + interval); - } - }; - }; - - secondsSpecHelper = function(interval) { - return { - span: interval * 1000, - start: function(d) { - return new Date(d.getFullYear(), d.getMonth(), d.getDate(), d.getHours(), d.getMinutes()); - }, - fmt: function(d) { - return "" + (Morris.pad2(d.getHours())) + ":" + (Morris.pad2(d.getMinutes())) + ":" + (Morris.pad2(d.getSeconds())); - }, - incr: function(d) { - return d.setUTCSeconds(d.getUTCSeconds() + interval); - } - }; - }; - - Morris.LABEL_SPECS = { - "decade": { - span: 172800000000, - start: function(d) { - return new Date(d.getFullYear() - d.getFullYear() % 10, 0, 1); - }, - fmt: function(d) { - return "" + (d.getFullYear()); - }, - incr: function(d) { - return d.setFullYear(d.getFullYear() + 10); - } - }, - "year": { - span: 17280000000, - start: function(d) { - return new Date(d.getFullYear(), 0, 1); - }, - fmt: function(d) { - return "" + (d.getFullYear()); - }, - incr: function(d) { - return d.setFullYear(d.getFullYear() + 1); - } - }, - "month": { - span: 2419200000, - start: function(d) { - return new Date(d.getFullYear(), d.getMonth(), 1); - }, - fmt: function(d) { - return "" + (d.getFullYear()) + "-" + (Morris.pad2(d.getMonth() + 1)); - }, - incr: function(d) { - return d.setMonth(d.getMonth() + 1); - } - }, - "week": { - span: 604800000, - start: function(d) { - return new Date(d.getFullYear(), d.getMonth(), d.getDate()); - }, - fmt: function(d) { - return "" + (d.getFullYear()) + "-" + (Morris.pad2(d.getMonth() + 1)) + "-" + (Morris.pad2(d.getDate())); - }, - incr: function(d) { - return d.setDate(d.getDate() + 7); - } - }, - "day": { - span: 86400000, - start: function(d) { - return new Date(d.getFullYear(), d.getMonth(), d.getDate()); - }, - fmt: function(d) { - return "" + (d.getFullYear()) + "-" + (Morris.pad2(d.getMonth() + 1)) + "-" + (Morris.pad2(d.getDate())); - }, - incr: function(d) { - return d.setDate(d.getDate() + 1); - } - }, - "hour": minutesSpecHelper(60), - "30min": minutesSpecHelper(30), - "15min": minutesSpecHelper(15), - "10min": minutesSpecHelper(10), - "5min": minutesSpecHelper(5), - "minute": minutesSpecHelper(1), - "30sec": secondsSpecHelper(30), - "15sec": secondsSpecHelper(15), - "10sec": secondsSpecHelper(10), - "5sec": secondsSpecHelper(5), - "second": secondsSpecHelper(1) - }; - - Morris.AUTO_LABEL_ORDER = ["decade", "year", "month", "week", "day", "hour", "30min", "15min", "10min", "5min", "minute", "30sec", "15sec", "10sec", "5sec", "second"]; - - Morris.Area = (function(_super) { - var areaDefaults; - - __extends(Area, _super); - - areaDefaults = { - fillOpacity: 'auto', - behaveLikeLine: false - }; - - function Area(options) { - var areaOptions; - if (!(this instanceof Morris.Area)) { - return new Morris.Area(options); - } - areaOptions = $.extend({}, areaDefaults, options); - this.cumulative = !areaOptions.behaveLikeLine; - if (areaOptions.fillOpacity === 'auto') { - areaOptions.fillOpacity = areaOptions.behaveLikeLine ? .8 : 1; - } - Area.__super__.constructor.call(this, areaOptions); - } - - Area.prototype.calcPoints = function() { - var row, total, y, _i, _len, _ref, _results; - _ref = this.data; - _results = []; - for (_i = 0, _len = _ref.length; _i < _len; _i++) { - row = _ref[_i]; - row._x = this.transX(row.x); - total = 0; - row._y = (function() { - var _j, _len1, _ref1, _results1; - _ref1 = row.y; - _results1 = []; - for (_j = 0, _len1 = _ref1.length; _j < _len1; _j++) { - y = _ref1[_j]; - if (this.options.behaveLikeLine) { - _results1.push(this.transY(y)); - } else { - total += y || 0; - _results1.push(this.transY(total)); - } - } - return _results1; - }).call(this); - _results.push(row._ymax = Math.max.apply(Math, row._y)); - } - return _results; - }; - - Area.prototype.drawSeries = function() { - var i, range, _i, _j, _k, _len, _ref, _ref1, _results, _results1, _results2; - this.seriesPoints = []; - if (this.options.behaveLikeLine) { - range = (function() { - _results = []; - for (var _i = 0, _ref = this.options.ykeys.length - 1; 0 <= _ref ? _i <= _ref : _i >= _ref; 0 <= _ref ? _i++ : _i--){ _results.push(_i); } - return _results; - }).apply(this); - } else { - range = (function() { - _results1 = []; - for (var _j = _ref1 = this.options.ykeys.length - 1; _ref1 <= 0 ? _j <= 0 : _j >= 0; _ref1 <= 0 ? _j++ : _j--){ _results1.push(_j); } - return _results1; - }).apply(this); - } - _results2 = []; - for (_k = 0, _len = range.length; _k < _len; _k++) { - i = range[_k]; - this._drawFillFor(i); - this._drawLineFor(i); - _results2.push(this._drawPointFor(i)); - } - return _results2; - }; - - Area.prototype._drawFillFor = function(index) { - var path; - path = this.paths[index]; - if (path !== null) { - path = path + ("L" + (this.transX(this.xmax)) + "," + this.bottom + "L" + (this.transX(this.xmin)) + "," + this.bottom + "Z"); - return this.drawFilledPath(path, this.fillForSeries(index)); - } - }; - - Area.prototype.fillForSeries = function(i) { - var color; - color = Raphael.rgb2hsl(this.colorFor(this.data[i], i, 'line')); - return Raphael.hsl(color.h, this.options.behaveLikeLine ? color.s * 0.9 : color.s * 0.75, Math.min(0.98, this.options.behaveLikeLine ? color.l * 1.2 : color.l * 1.25)); - }; - - Area.prototype.drawFilledPath = function(path, fill) { - return this.raphael.path(path).attr('fill', fill).attr('fill-opacity', this.options.fillOpacity).attr('stroke', 'none'); - }; - - return Area; - - })(Morris.Line); - - Morris.Bar = (function(_super) { - __extends(Bar, _super); - - function Bar(options) { - this.onHoverOut = __bind(this.onHoverOut, this); - this.onHoverMove = __bind(this.onHoverMove, this); - this.onGridClick = __bind(this.onGridClick, this); - if (!(this instanceof Morris.Bar)) { - return new Morris.Bar(options); - } - Bar.__super__.constructor.call(this, $.extend({}, options, { - parseTime: false - })); - } - - Bar.prototype.init = function() { - this.cumulative = this.options.stacked; - if (this.options.hideHover !== 'always') { - this.hover = new Morris.Hover({ - parent: this.el - }); - this.on('hovermove', this.onHoverMove); - this.on('hoverout', this.onHoverOut); - return this.on('gridclick', this.onGridClick); - } - }; - - Bar.prototype.defaults = { - barSizeRatio: 0.75, - barGap: 3, - barColors: ['#0b62a4', '#7a92a3', '#4da74d', '#afd8f8', '#edc240', '#cb4b4b', '#9440ed'], - barOpacity: 1.0, - barRadius: [0, 0, 0, 0], - xLabelMargin: 50 - }; - - Bar.prototype.calc = function() { - var _ref; - this.calcBars(); - if (this.options.hideHover === false) { - return (_ref = this.hover).update.apply(_ref, this.hoverContentForRow(this.data.length - 1)); - } - }; - - Bar.prototype.calcBars = function() { - var idx, row, y, _i, _len, _ref, _results; - _ref = this.data; - _results = []; - for (idx = _i = 0, _len = _ref.length; _i < _len; idx = ++_i) { - row = _ref[idx]; - row._x = this.left + this.width * (idx + 0.5) / this.data.length; - _results.push(row._y = (function() { - var _j, _len1, _ref1, _results1; - _ref1 = row.y; - _results1 = []; - for (_j = 0, _len1 = _ref1.length; _j < _len1; _j++) { - y = _ref1[_j]; - if (y != null) { - _results1.push(this.transY(y)); - } else { - _results1.push(null); - } - } - return _results1; - }).call(this)); - } - return _results; - }; - - Bar.prototype.draw = function() { - var _ref; - if ((_ref = this.options.axes) === true || _ref === 'both' || _ref === 'x') { - this.drawXAxis(); - } - return this.drawSeries(); - }; - - Bar.prototype.drawXAxis = function() { - var i, label, labelBox, margin, offset, prevAngleMargin, prevLabelMargin, row, textBox, ypos, _i, _ref, _results; - ypos = this.bottom + (this.options.xAxisLabelTopPadding || this.options.padding / 2); - prevLabelMargin = null; - prevAngleMargin = null; - _results = []; - for (i = _i = 0, _ref = this.data.length; 0 <= _ref ? _i < _ref : _i > _ref; i = 0 <= _ref ? ++_i : --_i) { - row = this.data[this.data.length - 1 - i]; - label = this.drawXAxisLabel(row._x, ypos, row.label); - textBox = label.getBBox(); - label.transform("r" + (-this.options.xLabelAngle)); - labelBox = label.getBBox(); - label.transform("t0," + (labelBox.height / 2) + "..."); - if (this.options.xLabelAngle !== 0) { - offset = -0.5 * textBox.width * Math.cos(this.options.xLabelAngle * Math.PI / 180.0); - label.transform("t" + offset + ",0..."); - } - if (((prevLabelMargin == null) || prevLabelMargin >= labelBox.x + labelBox.width || (prevAngleMargin != null) && prevAngleMargin >= labelBox.x) && labelBox.x >= 0 && (labelBox.x + labelBox.width) < this.el.width()) { - if (this.options.xLabelAngle !== 0) { - margin = 1.25 * this.options.gridTextSize / Math.sin(this.options.xLabelAngle * Math.PI / 180.0); - prevAngleMargin = labelBox.x - margin; - } - _results.push(prevLabelMargin = labelBox.x - this.options.xLabelMargin); - } else { - _results.push(label.remove()); - } - } - return _results; - }; - - Bar.prototype.drawSeries = function() { - var barWidth, bottom, groupWidth, idx, lastTop, left, leftPadding, numBars, row, sidx, size, spaceLeft, top, ypos, zeroPos; - groupWidth = this.width / this.options.data.length; - numBars = this.options.stacked ? 1 : this.options.ykeys.length; - barWidth = (groupWidth * this.options.barSizeRatio - this.options.barGap * (numBars - 1)) / numBars; - if (this.options.barSize) { - barWidth = Math.min(barWidth, this.options.barSize); - } - spaceLeft = groupWidth - barWidth * numBars - this.options.barGap * (numBars - 1); - leftPadding = spaceLeft / 2; - zeroPos = this.ymin <= 0 && this.ymax >= 0 ? this.transY(0) : null; - return this.bars = (function() { - var _i, _len, _ref, _results; - _ref = this.data; - _results = []; - for (idx = _i = 0, _len = _ref.length; _i < _len; idx = ++_i) { - row = _ref[idx]; - lastTop = 0; - _results.push((function() { - var _j, _len1, _ref1, _results1; - _ref1 = row._y; - _results1 = []; - for (sidx = _j = 0, _len1 = _ref1.length; _j < _len1; sidx = ++_j) { - ypos = _ref1[sidx]; - if (ypos !== null) { - if (zeroPos) { - top = Math.min(ypos, zeroPos); - bottom = Math.max(ypos, zeroPos); - } else { - top = ypos; - bottom = this.bottom; - } - left = this.left + idx * groupWidth + leftPadding; - if (!this.options.stacked) { - left += sidx * (barWidth + this.options.barGap); - } - size = bottom - top; - if (this.options.verticalGridCondition && this.options.verticalGridCondition(row.x)) { - this.drawBar(this.left + idx * groupWidth, this.top, groupWidth, Math.abs(this.top - this.bottom), this.options.verticalGridColor, this.options.verticalGridOpacity, this.options.barRadius); - } - if (this.options.stacked) { - top -= lastTop; - } - this.drawBar(left, top, barWidth, size, this.colorFor(row, sidx, 'bar'), this.options.barOpacity, this.options.barRadius); - _results1.push(lastTop += size); - } else { - _results1.push(null); - } - } - return _results1; - }).call(this)); - } - return _results; - }).call(this); - }; - - Bar.prototype.colorFor = function(row, sidx, type) { - var r, s; - if (typeof this.options.barColors === 'function') { - r = { - x: row.x, - y: row.y[sidx], - label: row.label - }; - s = { - index: sidx, - key: this.options.ykeys[sidx], - label: this.options.labels[sidx] - }; - return this.options.barColors.call(this, r, s, type); - } else { - return this.options.barColors[sidx % this.options.barColors.length]; - } - }; - - Bar.prototype.hitTest = function(x) { - if (this.data.length === 0) { - return null; - } - x = Math.max(Math.min(x, this.right), this.left); - return Math.min(this.data.length - 1, Math.floor((x - this.left) / (this.width / this.data.length))); - }; - - Bar.prototype.onGridClick = function(x, y) { - var index; - index = this.hitTest(x); - return this.fire('click', index, this.data[index].src, x, y); - }; - - Bar.prototype.onHoverMove = function(x, y) { - var index, _ref; - index = this.hitTest(x); - return (_ref = this.hover).update.apply(_ref, this.hoverContentForRow(index)); - }; - - Bar.prototype.onHoverOut = function() { - if (this.options.hideHover !== false) { - return this.hover.hide(); - } - }; - - Bar.prototype.hoverContentForRow = function(index) { - var content, j, row, x, y, _i, _len, _ref; - row = this.data[index]; - content = "<div class='morris-hover-row-label'>" + row.label + "</div>"; - _ref = row.y; - for (j = _i = 0, _len = _ref.length; _i < _len; j = ++_i) { - y = _ref[j]; - content += "<div class='morris-hover-point' style='color: " + (this.colorFor(row, j, 'label')) + "'>\n " + this.options.labels[j] + ":\n " + (this.yLabelFormat(y)) + "\n</div>"; - } - if (typeof this.options.hoverCallback === 'function') { - content = this.options.hoverCallback(index, this.options, content, row.src); - } - x = this.left + (index + 0.5) * this.width / this.data.length; - return [content, x]; - }; - - Bar.prototype.drawXAxisLabel = function(xPos, yPos, text) { - var label; - return label = this.raphael.text(xPos, yPos, text).attr('font-size', this.options.gridTextSize).attr('font-family', this.options.gridTextFamily).attr('font-weight', this.options.gridTextWeight).attr('fill', this.options.gridTextColor); - }; - - Bar.prototype.drawBar = function(xPos, yPos, width, height, barColor, opacity, radiusArray) { - var maxRadius, path; - maxRadius = Math.max.apply(Math, radiusArray); - if (maxRadius === 0 || maxRadius > height) { - path = this.raphael.rect(xPos, yPos, width, height); - } else { - path = this.raphael.path(this.roundedRect(xPos, yPos, width, height, radiusArray)); - } - return path.attr('fill', barColor).attr('fill-opacity', opacity).attr('stroke', 'none'); - }; - - Bar.prototype.roundedRect = function(x, y, w, h, r) { - if (r == null) { - r = [0, 0, 0, 0]; - } - return ["M", x, r[0] + y, "Q", x, y, x + r[0], y, "L", x + w - r[1], y, "Q", x + w, y, x + w, y + r[1], "L", x + w, y + h - r[2], "Q", x + w, y + h, x + w - r[2], y + h, "L", x + r[3], y + h, "Q", x, y + h, x, y + h - r[3], "Z"]; - }; - - return Bar; - - })(Morris.Grid); - - Morris.Donut = (function(_super) { - __extends(Donut, _super); - - Donut.prototype.defaults = { - colors: ['#0B62A4', '#3980B5', '#679DC6', '#95BBD7', '#B0CCE1', '#095791', '#095085', '#083E67', '#052C48', '#042135'], - backgroundColor: '#FFFFFF', - labelColor: '#000000', - formatter: Morris.commas, - resize: false - }; - - function Donut(options) { - this.resizeHandler = __bind(this.resizeHandler, this); - this.select = __bind(this.select, this); - this.click = __bind(this.click, this); - var _this = this; - if (!(this instanceof Morris.Donut)) { - return new Morris.Donut(options); - } - this.options = $.extend({}, this.defaults, options); - if (typeof options.element === 'string') { - this.el = $(document.getElementById(options.element)); - } else { - this.el = $(options.element); - } - if (this.el === null || this.el.length === 0) { - throw new Error("Graph placeholder not found."); - } - if (options.data === void 0 || options.data.length === 0) { - return; - } - this.raphael = new Raphael(this.el[0]); - if (this.options.resize) { - $(window).bind('resize', function(evt) { - if (_this.timeoutId != null) { - window.clearTimeout(_this.timeoutId); - } - return _this.timeoutId = window.setTimeout(_this.resizeHandler, 100); - }); - } - this.setData(options.data); - } - - Donut.prototype.redraw = function() { - var C, cx, cy, i, idx, last, max_value, min, next, seg, total, value, w, _i, _j, _k, _len, _len1, _len2, _ref, _ref1, _ref2, _results; - this.raphael.clear(); - cx = this.el.width() / 2; - cy = this.el.height() / 2; - w = (Math.min(cx, cy) - 10) / 3; - total = 0; - _ref = this.values; - for (_i = 0, _len = _ref.length; _i < _len; _i++) { - value = _ref[_i]; - total += value; - } - min = 5 / (2 * w); - C = 1.9999 * Math.PI - min * this.data.length; - last = 0; - idx = 0; - this.segments = []; - _ref1 = this.values; - for (i = _j = 0, _len1 = _ref1.length; _j < _len1; i = ++_j) { - value = _ref1[i]; - next = last + min + C * (value / total); - seg = new Morris.DonutSegment(cx, cy, w * 2, w, last, next, this.data[i].color || this.options.colors[idx % this.options.colors.length], this.options.backgroundColor, idx, this.raphael); - seg.render(); - this.segments.push(seg); - seg.on('hover', this.select); - seg.on('click', this.click); - last = next; - idx += 1; - } - this.text1 = this.drawEmptyDonutLabel(cx, cy - 10, this.options.labelColor, 15, 800); - this.text2 = this.drawEmptyDonutLabel(cx, cy + 10, this.options.labelColor, 14); - max_value = Math.max.apply(Math, this.values); - idx = 0; - _ref2 = this.values; - _results = []; - for (_k = 0, _len2 = _ref2.length; _k < _len2; _k++) { - value = _ref2[_k]; - if (value === max_value) { - this.select(idx); - break; - } - _results.push(idx += 1); - } - return _results; - }; - - Donut.prototype.setData = function(data) { - var row; - this.data = data; - this.values = (function() { - var _i, _len, _ref, _results; - _ref = this.data; - _results = []; - for (_i = 0, _len = _ref.length; _i < _len; _i++) { - row = _ref[_i]; - _results.push(parseFloat(row.value)); - } - return _results; - }).call(this); - return this.redraw(); - }; - - Donut.prototype.click = function(idx) { - return this.fire('click', idx, this.data[idx]); - }; - - Donut.prototype.select = function(idx) { - var row, s, segment, _i, _len, _ref; - _ref = this.segments; - for (_i = 0, _len = _ref.length; _i < _len; _i++) { - s = _ref[_i]; - s.deselect(); - } - segment = this.segments[idx]; - segment.select(); - row = this.data[idx]; - return this.setLabels(row.label, this.options.formatter(row.value, row)); - }; - - Donut.prototype.setLabels = function(label1, label2) { - var inner, maxHeightBottom, maxHeightTop, maxWidth, text1bbox, text1scale, text2bbox, text2scale; - inner = (Math.min(this.el.width() / 2, this.el.height() / 2) - 10) * 2 / 3; - maxWidth = 1.8 * inner; - maxHeightTop = inner / 2; - maxHeightBottom = inner / 3; - this.text1.attr({ - text: label1, - transform: '' - }); - text1bbox = this.text1.getBBox(); - text1scale = Math.min(maxWidth / text1bbox.width, maxHeightTop / text1bbox.height); - this.text1.attr({ - transform: "S" + text1scale + "," + text1scale + "," + (text1bbox.x + text1bbox.width / 2) + "," + (text1bbox.y + text1bbox.height) - }); - this.text2.attr({ - text: label2, - transform: '' - }); - text2bbox = this.text2.getBBox(); - text2scale = Math.min(maxWidth / text2bbox.width, maxHeightBottom / text2bbox.height); - return this.text2.attr({ - transform: "S" + text2scale + "," + text2scale + "," + (text2bbox.x + text2bbox.width / 2) + "," + text2bbox.y - }); - }; - - Donut.prototype.drawEmptyDonutLabel = function(xPos, yPos, color, fontSize, fontWeight) { - var text; - text = this.raphael.text(xPos, yPos, '').attr('font-size', fontSize).attr('fill', color); - if (fontWeight != null) { - text.attr('font-weight', fontWeight); - } - return text; - }; - - Donut.prototype.resizeHandler = function() { - this.timeoutId = null; - this.raphael.setSize(this.el.width(), this.el.height()); - return this.redraw(); - }; - - return Donut; - - })(Morris.EventEmitter); - - Morris.DonutSegment = (function(_super) { - __extends(DonutSegment, _super); - - function DonutSegment(cx, cy, inner, outer, p0, p1, color, backgroundColor, index, raphael) { - this.cx = cx; - this.cy = cy; - this.inner = inner; - this.outer = outer; - this.color = color; - this.backgroundColor = backgroundColor; - this.index = index; - this.raphael = raphael; - this.deselect = __bind(this.deselect, this); - this.select = __bind(this.select, this); - this.sin_p0 = Math.sin(p0); - this.cos_p0 = Math.cos(p0); - this.sin_p1 = Math.sin(p1); - this.cos_p1 = Math.cos(p1); - this.is_long = (p1 - p0) > Math.PI ? 1 : 0; - this.path = this.calcSegment(this.inner + 3, this.inner + this.outer - 5); - this.selectedPath = this.calcSegment(this.inner + 3, this.inner + this.outer); - this.hilight = this.calcArc(this.inner); - } - - DonutSegment.prototype.calcArcPoints = function(r) { - return [this.cx + r * this.sin_p0, this.cy + r * this.cos_p0, this.cx + r * this.sin_p1, this.cy + r * this.cos_p1]; - }; - - DonutSegment.prototype.calcSegment = function(r1, r2) { - var ix0, ix1, iy0, iy1, ox0, ox1, oy0, oy1, _ref, _ref1; - _ref = this.calcArcPoints(r1), ix0 = _ref[0], iy0 = _ref[1], ix1 = _ref[2], iy1 = _ref[3]; - _ref1 = this.calcArcPoints(r2), ox0 = _ref1[0], oy0 = _ref1[1], ox1 = _ref1[2], oy1 = _ref1[3]; - return ("M" + ix0 + "," + iy0) + ("A" + r1 + "," + r1 + ",0," + this.is_long + ",0," + ix1 + "," + iy1) + ("L" + ox1 + "," + oy1) + ("A" + r2 + "," + r2 + ",0," + this.is_long + ",1," + ox0 + "," + oy0) + "Z"; - }; - - DonutSegment.prototype.calcArc = function(r) { - var ix0, ix1, iy0, iy1, _ref; - _ref = this.calcArcPoints(r), ix0 = _ref[0], iy0 = _ref[1], ix1 = _ref[2], iy1 = _ref[3]; - return ("M" + ix0 + "," + iy0) + ("A" + r + "," + r + ",0," + this.is_long + ",0," + ix1 + "," + iy1); - }; - - DonutSegment.prototype.render = function() { - var _this = this; - this.arc = this.drawDonutArc(this.hilight, this.color); - return this.seg = this.drawDonutSegment(this.path, this.color, this.backgroundColor, function() { - return _this.fire('hover', _this.index); - }, function() { - return _this.fire('click', _this.index); - }); - }; - - DonutSegment.prototype.drawDonutArc = function(path, color) { - return this.raphael.path(path).attr({ - stroke: color, - 'stroke-width': 2, - opacity: 0 - }); - }; - - DonutSegment.prototype.drawDonutSegment = function(path, fillColor, strokeColor, hoverFunction, clickFunction) { - return this.raphael.path(path).attr({ - fill: fillColor, - stroke: strokeColor, - 'stroke-width': 3 - }).hover(hoverFunction).click(clickFunction); - }; - - DonutSegment.prototype.select = function() { - if (!this.selected) { - this.seg.animate({ - path: this.selectedPath - }, 150, '<>'); - this.arc.animate({ - opacity: 1 - }, 150, '<>'); - return this.selected = true; - } - }; - - DonutSegment.prototype.deselect = function() { - if (this.selected) { - this.seg.animate({ - path: this.path - }, 150, '<>'); - this.arc.animate({ - opacity: 0 - }, 150, '<>'); - return this.selected = false; - } - }; - - return DonutSegment; - - })(Morris.EventEmitter); - -}).call(this); diff --git a/admin/bower_components/morris.js/morris.min.js b/admin/bower_components/morris.js/morris.min.js deleted file mode 100644 index c3bda2f..0000000 --- a/admin/bower_components/morris.js/morris.min.js +++ /dev/null @@ -1,7 +0,0 @@ -/* @license -morris.js v0.5.0 -Copyright 2014 Olly Smith All rights reserved. -Licensed under the BSD-2-Clause License. -*/ -(function(){var a,b,c,d,e=[].slice,f=function(a,b){return function(){return a.apply(b,arguments)}},g={}.hasOwnProperty,h=function(a,b){function c(){this.constructor=a}for(var d in b)g.call(b,d)&&(a[d]=b[d]);return c.prototype=b.prototype,a.prototype=new c,a.__super__=b.prototype,a},i=[].indexOf||function(a){for(var b=0,c=this.length;c>b;b++)if(b in this&&this[b]===a)return b;return-1};b=window.Morris={},a=jQuery,b.EventEmitter=function(){function a(){}return a.prototype.on=function(a,b){return null==this.handlers&&(this.handlers={}),null==this.handlers[a]&&(this.handlers[a]=[]),this.handlers[a].push(b),this},a.prototype.fire=function(){var a,b,c,d,f,g,h;if(c=arguments[0],a=2<=arguments.length?e.call(arguments,1):[],null!=this.handlers&&null!=this.handlers[c]){for(g=this.handlers[c],h=[],d=0,f=g.length;f>d;d++)b=g[d],h.push(b.apply(null,a));return h}},a}(),b.commas=function(a){var b,c,d,e;return null!=a?(d=0>a?"-":"",b=Math.abs(a),c=Math.floor(b).toFixed(0),d+=c.replace(/(?=(?:\d{3})+$)(?!^)/g,","),e=b.toString(),e.length>c.length&&(d+=e.slice(c.length)),d):"-"},b.pad2=function(a){return(10>a?"0":"")+a},b.Grid=function(c){function d(b){this.resizeHandler=f(this.resizeHandler,this);var c=this;if(this.el="string"==typeof b.element?a(document.getElementById(b.element)):a(b.element),null==this.el||0===this.el.length)throw new Error("Graph container element not found");"static"===this.el.css("position")&&this.el.css("position","relative"),this.options=a.extend({},this.gridDefaults,this.defaults||{},b),"string"==typeof this.options.units&&(this.options.postUnits=b.units),this.raphael=new Raphael(this.el[0]),this.elementWidth=null,this.elementHeight=null,this.dirty=!1,this.selectFrom=null,this.init&&this.init(),this.setData(this.options.data),this.el.bind("mousemove",function(a){var b,d,e,f,g;return d=c.el.offset(),g=a.pageX-d.left,c.selectFrom?(b=c.data[c.hitTest(Math.min(g,c.selectFrom))]._x,e=c.data[c.hitTest(Math.max(g,c.selectFrom))]._x,f=e-b,c.selectionRect.attr({x:b,width:f})):c.fire("hovermove",g,a.pageY-d.top)}),this.el.bind("mouseleave",function(){return c.selectFrom&&(c.selectionRect.hide(),c.selectFrom=null),c.fire("hoverout")}),this.el.bind("touchstart touchmove touchend",function(a){var b,d;return d=a.originalEvent.touches[0]||a.originalEvent.changedTouches[0],b=c.el.offset(),c.fire("hovermove",d.pageX-b.left,d.pageY-b.top)}),this.el.bind("click",function(a){var b;return b=c.el.offset(),c.fire("gridclick",a.pageX-b.left,a.pageY-b.top)}),this.options.rangeSelect&&(this.selectionRect=this.raphael.rect(0,0,0,this.el.innerHeight()).attr({fill:this.options.rangeSelectColor,stroke:!1}).toBack().hide(),this.el.bind("mousedown",function(a){var b;return b=c.el.offset(),c.startRange(a.pageX-b.left)}),this.el.bind("mouseup",function(a){var b;return b=c.el.offset(),c.endRange(a.pageX-b.left),c.fire("hovermove",a.pageX-b.left,a.pageY-b.top)})),this.options.resize&&a(window).bind("resize",function(){return null!=c.timeoutId&&window.clearTimeout(c.timeoutId),c.timeoutId=window.setTimeout(c.resizeHandler,100)}),this.el.css("-webkit-tap-highlight-color","rgba(0,0,0,0)"),this.postInit&&this.postInit()}return h(d,c),d.prototype.gridDefaults={dateFormat:null,axes:!0,grid:!0,gridLineColor:"#aaa",gridStrokeWidth:.5,gridTextColor:"#888",gridTextSize:12,gridTextFamily:"sans-serif",gridTextWeight:"normal",hideHover:!1,yLabelFormat:null,xLabelAngle:0,numLines:5,padding:25,parseTime:!0,postUnits:"",preUnits:"",ymax:"auto",ymin:"auto 0",goals:[],goalStrokeWidth:1,goalLineColors:["#666633","#999966","#cc6666","#663333"],events:[],eventStrokeWidth:1,eventLineColors:["#005a04","#ccffbb","#3a5f0b","#005502"],rangeSelect:null,rangeSelectColor:"#eef",resize:!1},d.prototype.setData=function(a,c){var d,e,f,g,h,i,j,k,l,m,n,o,p,q,r;return null==c&&(c=!0),this.options.data=a,null==a||0===a.length?(this.data=[],this.raphael.clear(),null!=this.hover&&this.hover.hide(),void 0):(o=this.cumulative?0:null,p=this.cumulative?0:null,this.options.goals.length>0&&(h=Math.min.apply(Math,this.options.goals),g=Math.max.apply(Math,this.options.goals),p=null!=p?Math.min(p,h):h,o=null!=o?Math.max(o,g):g),this.data=function(){var c,d,g;for(g=[],f=c=0,d=a.length;d>c;f=++c)j=a[f],i={src:j},i.label=j[this.options.xkey],this.options.parseTime?(i.x=b.parseDate(i.label),this.options.dateFormat?i.label=this.options.dateFormat(i.x):"number"==typeof i.label&&(i.label=new Date(i.label).toString())):(i.x=f,this.options.xLabelFormat&&(i.label=this.options.xLabelFormat(i))),l=0,i.y=function(){var a,b,c,d;for(c=this.options.ykeys,d=[],e=a=0,b=c.length;b>a;e=++a)n=c[e],q=j[n],"string"==typeof q&&(q=parseFloat(q)),null!=q&&"number"!=typeof q&&(q=null),null!=q&&(this.cumulative?l+=q:null!=o?(o=Math.max(q,o),p=Math.min(q,p)):o=p=q),this.cumulative&&null!=l&&(o=Math.max(l,o),p=Math.min(l,p)),d.push(q);return d}.call(this),g.push(i);return g}.call(this),this.options.parseTime&&(this.data=this.data.sort(function(a,b){return(a.x>b.x)-(b.x>a.x)})),this.xmin=this.data[0].x,this.xmax=this.data[this.data.length-1].x,this.events=[],this.options.events.length>0&&(this.events=this.options.parseTime?function(){var a,c,e,f;for(e=this.options.events,f=[],a=0,c=e.length;c>a;a++)d=e[a],f.push(b.parseDate(d));return f}.call(this):this.options.events,this.xmax=Math.max(this.xmax,Math.max.apply(Math,this.events)),this.xmin=Math.min(this.xmin,Math.min.apply(Math,this.events))),this.xmin===this.xmax&&(this.xmin-=1,this.xmax+=1),this.ymin=this.yboundary("min",p),this.ymax=this.yboundary("max",o),this.ymin===this.ymax&&(p&&(this.ymin-=1),this.ymax+=1),((r=this.options.axes)===!0||"both"===r||"y"===r||this.options.grid===!0)&&(this.options.ymax===this.gridDefaults.ymax&&this.options.ymin===this.gridDefaults.ymin?(this.grid=this.autoGridLines(this.ymin,this.ymax,this.options.numLines),this.ymin=Math.min(this.ymin,this.grid[0]),this.ymax=Math.max(this.ymax,this.grid[this.grid.length-1])):(k=(this.ymax-this.ymin)/(this.options.numLines-1),this.grid=function(){var a,b,c,d;for(d=[],m=a=b=this.ymin,c=this.ymax;k>0?c>=a:a>=c;m=a+=k)d.push(m);return d}.call(this))),this.dirty=!0,c?this.redraw():void 0)},d.prototype.yboundary=function(a,b){var c,d;return c=this.options["y"+a],"string"==typeof c?"auto"===c.slice(0,4)?c.length>5?(d=parseInt(c.slice(5),10),null==b?d:Math[a](b,d)):null!=b?b:0:parseInt(c,10):c},d.prototype.autoGridLines=function(a,b,c){var d,e,f,g,h,i,j,k,l;return h=b-a,l=Math.floor(Math.log(h)/Math.log(10)),j=Math.pow(10,l),e=Math.floor(a/j)*j,d=Math.ceil(b/j)*j,i=(d-e)/(c-1),1===j&&i>1&&Math.ceil(i)!==i&&(i=Math.ceil(i),d=e+i*(c-1)),0>e&&d>0&&(e=Math.floor(a/i)*i,d=Math.ceil(b/i)*i),1>i?(g=Math.floor(Math.log(i)/Math.log(10)),f=function(){var a,b;for(b=[],k=a=e;i>0?d>=a:a>=d;k=a+=i)b.push(parseFloat(k.toFixed(1-g)));return b}()):f=function(){var a,b;for(b=[],k=a=e;i>0?d>=a:a>=d;k=a+=i)b.push(k);return b}(),f},d.prototype._calc=function(){var a,b,c,d,e,f,g,h;return e=this.el.width(),c=this.el.height(),(this.elementWidth!==e||this.elementHeight!==c||this.dirty)&&(this.elementWidth=e,this.elementHeight=c,this.dirty=!1,this.left=this.options.padding,this.right=this.elementWidth-this.options.padding,this.top=this.options.padding,this.bottom=this.elementHeight-this.options.padding,((g=this.options.axes)===!0||"both"===g||"y"===g)&&(f=function(){var a,c,d,e;for(d=this.grid,e=[],a=0,c=d.length;c>a;a++)b=d[a],e.push(this.measureText(this.yAxisFormat(b)).width);return e}.call(this),this.left+=Math.max.apply(Math,f)),((h=this.options.axes)===!0||"both"===h||"x"===h)&&(a=function(){var a,b,c;for(c=[],d=a=0,b=this.data.length;b>=0?b>a:a>b;d=b>=0?++a:--a)c.push(this.measureText(this.data[d].text,-this.options.xLabelAngle).height);return c}.call(this),this.bottom-=Math.max.apply(Math,a)),this.width=Math.max(1,this.right-this.left),this.height=Math.max(1,this.bottom-this.top),this.dx=this.width/(this.xmax-this.xmin),this.dy=this.height/(this.ymax-this.ymin),this.calc)?this.calc():void 0},d.prototype.transY=function(a){return this.bottom-(a-this.ymin)*this.dy},d.prototype.transX=function(a){return 1===this.data.length?(this.left+this.right)/2:this.left+(a-this.xmin)*this.dx},d.prototype.redraw=function(){return this.raphael.clear(),this._calc(),this.drawGrid(),this.drawGoals(),this.drawEvents(),this.draw?this.draw():void 0},d.prototype.measureText=function(a,b){var c,d;return null==b&&(b=0),d=this.raphael.text(100,100,a).attr("font-size",this.options.gridTextSize).attr("font-family",this.options.gridTextFamily).attr("font-weight",this.options.gridTextWeight).rotate(b),c=d.getBBox(),d.remove(),c},d.prototype.yAxisFormat=function(a){return this.yLabelFormat(a)},d.prototype.yLabelFormat=function(a){return"function"==typeof this.options.yLabelFormat?this.options.yLabelFormat(a):""+this.options.preUnits+b.commas(a)+this.options.postUnits},d.prototype.drawGrid=function(){var a,b,c,d,e,f,g,h;if(this.options.grid!==!1||(e=this.options.axes)===!0||"both"===e||"y"===e){for(f=this.grid,h=[],c=0,d=f.length;d>c;c++)a=f[c],b=this.transY(a),((g=this.options.axes)===!0||"both"===g||"y"===g)&&this.drawYAxisLabel(this.left-this.options.padding/2,b,this.yAxisFormat(a)),this.options.grid?h.push(this.drawGridLine("M"+this.left+","+b+"H"+(this.left+this.width))):h.push(void 0);return h}},d.prototype.drawGoals=function(){var a,b,c,d,e,f,g;for(f=this.options.goals,g=[],c=d=0,e=f.length;e>d;c=++d)b=f[c],a=this.options.goalLineColors[c%this.options.goalLineColors.length],g.push(this.drawGoal(b,a));return g},d.prototype.drawEvents=function(){var a,b,c,d,e,f,g;for(f=this.events,g=[],c=d=0,e=f.length;e>d;c=++d)b=f[c],a=this.options.eventLineColors[c%this.options.eventLineColors.length],g.push(this.drawEvent(b,a));return g},d.prototype.drawGoal=function(a,b){return this.raphael.path("M"+this.left+","+this.transY(a)+"H"+this.right).attr("stroke",b).attr("stroke-width",this.options.goalStrokeWidth)},d.prototype.drawEvent=function(a,b){return this.raphael.path("M"+this.transX(a)+","+this.bottom+"V"+this.top).attr("stroke",b).attr("stroke-width",this.options.eventStrokeWidth)},d.prototype.drawYAxisLabel=function(a,b,c){return this.raphael.text(a,b,c).attr("font-size",this.options.gridTextSize).attr("font-family",this.options.gridTextFamily).attr("font-weight",this.options.gridTextWeight).attr("fill",this.options.gridTextColor).attr("text-anchor","end")},d.prototype.drawGridLine=function(a){return this.raphael.path(a).attr("stroke",this.options.gridLineColor).attr("stroke-width",this.options.gridStrokeWidth)},d.prototype.startRange=function(a){return this.hover.hide(),this.selectFrom=a,this.selectionRect.attr({x:a,width:0}).show()},d.prototype.endRange=function(a){var b,c;return this.selectFrom?(c=Math.min(this.selectFrom,a),b=Math.max(this.selectFrom,a),this.options.rangeSelect.call(this.el,{start:this.data[this.hitTest(c)].x,end:this.data[this.hitTest(b)].x}),this.selectFrom=null):void 0},d.prototype.resizeHandler=function(){return this.timeoutId=null,this.raphael.setSize(this.el.width(),this.el.height()),this.redraw()},d}(b.EventEmitter),b.parseDate=function(a){var b,c,d,e,f,g,h,i,j,k,l;return"number"==typeof a?a:(c=a.match(/^(\d+) Q(\d)$/),e=a.match(/^(\d+)-(\d+)$/),f=a.match(/^(\d+)-(\d+)-(\d+)$/),h=a.match(/^(\d+) W(\d+)$/),i=a.match(/^(\d+)-(\d+)-(\d+)[ T](\d+):(\d+)(Z|([+-])(\d\d):?(\d\d))?$/),j=a.match(/^(\d+)-(\d+)-(\d+)[ T](\d+):(\d+):(\d+(\.\d+)?)(Z|([+-])(\d\d):?(\d\d))?$/),c?new Date(parseInt(c[1],10),3*parseInt(c[2],10)-1,1).getTime():e?new Date(parseInt(e[1],10),parseInt(e[2],10)-1,1).getTime():f?new Date(parseInt(f[1],10),parseInt(f[2],10)-1,parseInt(f[3],10)).getTime():h?(k=new Date(parseInt(h[1],10),0,1),4!==k.getDay()&&k.setMonth(0,1+(4-k.getDay()+7)%7),k.getTime()+6048e5*parseInt(h[2],10)):i?i[6]?(g=0,"Z"!==i[6]&&(g=60*parseInt(i[8],10)+parseInt(i[9],10),"+"===i[7]&&(g=0-g)),Date.UTC(parseInt(i[1],10),parseInt(i[2],10)-1,parseInt(i[3],10),parseInt(i[4],10),parseInt(i[5],10)+g)):new Date(parseInt(i[1],10),parseInt(i[2],10)-1,parseInt(i[3],10),parseInt(i[4],10),parseInt(i[5],10)).getTime():j?(l=parseFloat(j[6]),b=Math.floor(l),d=Math.round(1e3*(l-b)),j[8]?(g=0,"Z"!==j[8]&&(g=60*parseInt(j[10],10)+parseInt(j[11],10),"+"===j[9]&&(g=0-g)),Date.UTC(parseInt(j[1],10),parseInt(j[2],10)-1,parseInt(j[3],10),parseInt(j[4],10),parseInt(j[5],10)+g,b,d)):new Date(parseInt(j[1],10),parseInt(j[2],10)-1,parseInt(j[3],10),parseInt(j[4],10),parseInt(j[5],10),b,d).getTime()):new Date(parseInt(a,10),0,1).getTime())},b.Hover=function(){function c(c){null==c&&(c={}),this.options=a.extend({},b.Hover.defaults,c),this.el=a("<div class='"+this.options["class"]+"'></div>"),this.el.hide(),this.options.parent.append(this.el)}return c.defaults={"class":"morris-hover morris-default-style"},c.prototype.update=function(a,b,c){return a?(this.html(a),this.show(),this.moveTo(b,c)):this.hide()},c.prototype.html=function(a){return this.el.html(a)},c.prototype.moveTo=function(a,b){var c,d,e,f,g,h;return g=this.options.parent.innerWidth(),f=this.options.parent.innerHeight(),d=this.el.outerWidth(),c=this.el.outerHeight(),e=Math.min(Math.max(0,a-d/2),g-d),null!=b?(h=b-c-10,0>h&&(h=b+10,h+c>f&&(h=f/2-c/2))):h=f/2-c/2,this.el.css({left:e+"px",top:parseInt(h)+"px"})},c.prototype.show=function(){return this.el.show()},c.prototype.hide=function(){return this.el.hide()},c}(),b.Line=function(a){function c(a){return this.hilight=f(this.hilight,this),this.onHoverOut=f(this.onHoverOut,this),this.onHoverMove=f(this.onHoverMove,this),this.onGridClick=f(this.onGridClick,this),this instanceof b.Line?(c.__super__.constructor.call(this,a),void 0):new b.Line(a)}return h(c,a),c.prototype.init=function(){return"always"!==this.options.hideHover?(this.hover=new b.Hover({parent:this.el}),this.on("hovermove",this.onHoverMove),this.on("hoverout",this.onHoverOut),this.on("gridclick",this.onGridClick)):void 0},c.prototype.defaults={lineWidth:3,pointSize:4,lineColors:["#0b62a4","#7A92A3","#4da74d","#afd8f8","#edc240","#cb4b4b","#9440ed"],pointStrokeWidths:[1],pointStrokeColors:["#ffffff"],pointFillColors:[],smooth:!0,xLabels:"auto",xLabelFormat:null,xLabelMargin:24,hideHover:!1},c.prototype.calc=function(){return this.calcPoints(),this.generatePaths()},c.prototype.calcPoints=function(){var a,b,c,d,e,f;for(e=this.data,f=[],c=0,d=e.length;d>c;c++)a=e[c],a._x=this.transX(a.x),a._y=function(){var c,d,e,f;for(e=a.y,f=[],c=0,d=e.length;d>c;c++)b=e[c],null!=b?f.push(this.transY(b)):f.push(b);return f}.call(this),f.push(a._ymax=Math.min.apply(Math,[this.bottom].concat(function(){var c,d,e,f;for(e=a._y,f=[],c=0,d=e.length;d>c;c++)b=e[c],null!=b&&f.push(b);return f}())));return f},c.prototype.hitTest=function(a){var b,c,d,e,f;if(0===this.data.length)return null;for(f=this.data.slice(1),b=d=0,e=f.length;e>d&&(c=f[b],!(a<(c._x+this.data[b]._x)/2));b=++d);return b},c.prototype.onGridClick=function(a,b){var c;return c=this.hitTest(a),this.fire("click",c,this.data[c].src,a,b)},c.prototype.onHoverMove=function(a){var b;return b=this.hitTest(a),this.displayHoverForRow(b)},c.prototype.onHoverOut=function(){return this.options.hideHover!==!1?this.displayHoverForRow(null):void 0},c.prototype.displayHoverForRow=function(a){var b;return null!=a?((b=this.hover).update.apply(b,this.hoverContentForRow(a)),this.hilight(a)):(this.hover.hide(),this.hilight())},c.prototype.hoverContentForRow=function(a){var b,c,d,e,f,g,h;for(d=this.data[a],b="<div class='morris-hover-row-label'>"+d.label+"</div>",h=d.y,c=f=0,g=h.length;g>f;c=++f)e=h[c],b+="<div class='morris-hover-point' style='color: "+this.colorFor(d,c,"label")+"'>\n "+this.options.labels[c]+":\n "+this.yLabelFormat(e)+"\n</div>";return"function"==typeof this.options.hoverCallback&&(b=this.options.hoverCallback(a,this.options,b,d.src)),[b,d._x,d._ymax]},c.prototype.generatePaths=function(){var a,c,d,e;return this.paths=function(){var f,g,h,j;for(j=[],c=f=0,g=this.options.ykeys.length;g>=0?g>f:f>g;c=g>=0?++f:--f)e="boolean"==typeof this.options.smooth?this.options.smooth:(h=this.options.ykeys[c],i.call(this.options.smooth,h)>=0),a=function(){var a,b,e,f;for(e=this.data,f=[],a=0,b=e.length;b>a;a++)d=e[a],void 0!==d._y[c]&&f.push({x:d._x,y:d._y[c]});return f}.call(this),a.length>1?j.push(b.Line.createPath(a,e,this.bottom)):j.push(null);return j}.call(this)},c.prototype.draw=function(){var a;return((a=this.options.axes)===!0||"both"===a||"x"===a)&&this.drawXAxis(),this.drawSeries(),this.options.hideHover===!1?this.displayHoverForRow(this.data.length-1):void 0},c.prototype.drawXAxis=function(){var a,c,d,e,f,g,h,i,j,k,l=this;for(h=this.bottom+this.options.padding/2,f=null,e=null,a=function(a,b){var c,d,g,i,j;return c=l.drawXAxisLabel(l.transX(b),h,a),j=c.getBBox(),c.transform("r"+-l.options.xLabelAngle),d=c.getBBox(),c.transform("t0,"+d.height/2+"..."),0!==l.options.xLabelAngle&&(i=-.5*j.width*Math.cos(l.options.xLabelAngle*Math.PI/180),c.transform("t"+i+",0...")),d=c.getBBox(),(null==f||f>=d.x+d.width||null!=e&&e>=d.x)&&d.x>=0&&d.x+d.width<l.el.width()?(0!==l.options.xLabelAngle&&(g=1.25*l.options.gridTextSize/Math.sin(l.options.xLabelAngle*Math.PI/180),e=d.x-g),f=d.x-l.options.xLabelMargin):c.remove()},d=this.options.parseTime?1===this.data.length&&"auto"===this.options.xLabels?[[this.data[0].label,this.data[0].x]]:b.labelSeries(this.xmin,this.xmax,this.width,this.options.xLabels,this.options.xLabelFormat):function(){var a,b,c,d;for(c=this.data,d=[],a=0,b=c.length;b>a;a++)g=c[a],d.push([g.label,g.x]);return d}.call(this),d.reverse(),k=[],i=0,j=d.length;j>i;i++)c=d[i],k.push(a(c[0],c[1]));return k},c.prototype.drawSeries=function(){var a,b,c,d,e,f;for(this.seriesPoints=[],a=b=d=this.options.ykeys.length-1;0>=d?0>=b:b>=0;a=0>=d?++b:--b)this._drawLineFor(a);for(f=[],a=c=e=this.options.ykeys.length-1;0>=e?0>=c:c>=0;a=0>=e?++c:--c)f.push(this._drawPointFor(a));return f},c.prototype._drawPointFor=function(a){var b,c,d,e,f,g;for(this.seriesPoints[a]=[],f=this.data,g=[],d=0,e=f.length;e>d;d++)c=f[d],b=null,null!=c._y[a]&&(b=this.drawLinePoint(c._x,c._y[a],this.colorFor(c,a,"point"),a)),g.push(this.seriesPoints[a].push(b));return g},c.prototype._drawLineFor=function(a){var b;return b=this.paths[a],null!==b?this.drawLinePath(b,this.colorFor(null,a,"line"),a):void 0},c.createPath=function(a,c,d){var e,f,g,h,i,j,k,l,m,n,o,p,q,r;for(k="",c&&(g=b.Line.gradients(a)),l={y:null},h=q=0,r=a.length;r>q;h=++q)e=a[h],null!=e.y&&(null!=l.y?c?(f=g[h],j=g[h-1],i=(e.x-l.x)/4,m=l.x+i,o=Math.min(d,l.y+i*j),n=e.x-i,p=Math.min(d,e.y-i*f),k+="C"+m+","+o+","+n+","+p+","+e.x+","+e.y):k+="L"+e.x+","+e.y:c&&null==g[h]||(k+="M"+e.x+","+e.y)),l=e;return k},c.gradients=function(a){var b,c,d,e,f,g,h,i;for(c=function(a,b){return(a.y-b.y)/(a.x-b.x)},i=[],d=g=0,h=a.length;h>g;d=++g)b=a[d],null!=b.y?(e=a[d+1]||{y:null},f=a[d-1]||{y:null},null!=f.y&&null!=e.y?i.push(c(f,e)):null!=f.y?i.push(c(f,b)):null!=e.y?i.push(c(b,e)):i.push(null)):i.push(null);return i},c.prototype.hilight=function(a){var b,c,d,e,f;if(null!==this.prevHilight&&this.prevHilight!==a)for(b=c=0,e=this.seriesPoints.length-1;e>=0?e>=c:c>=e;b=e>=0?++c:--c)this.seriesPoints[b][this.prevHilight]&&this.seriesPoints[b][this.prevHilight].animate(this.pointShrinkSeries(b));if(null!==a&&this.prevHilight!==a)for(b=d=0,f=this.seriesPoints.length-1;f>=0?f>=d:d>=f;b=f>=0?++d:--d)this.seriesPoints[b][a]&&this.seriesPoints[b][a].animate(this.pointGrowSeries(b));return this.prevHilight=a},c.prototype.colorFor=function(a,b,c){return"function"==typeof this.options.lineColors?this.options.lineColors.call(this,a,b,c):"point"===c?this.options.pointFillColors[b%this.options.pointFillColors.length]||this.options.lineColors[b%this.options.lineColors.length]:this.options.lineColors[b%this.options.lineColors.length]},c.prototype.drawXAxisLabel=function(a,b,c){return this.raphael.text(a,b,c).attr("font-size",this.options.gridTextSize).attr("font-family",this.options.gridTextFamily).attr("font-weight",this.options.gridTextWeight).attr("fill",this.options.gridTextColor)},c.prototype.drawLinePath=function(a,b,c){return this.raphael.path(a).attr("stroke",b).attr("stroke-width",this.lineWidthForSeries(c))},c.prototype.drawLinePoint=function(a,b,c,d){return this.raphael.circle(a,b,this.pointSizeForSeries(d)).attr("fill",c).attr("stroke-width",this.pointStrokeWidthForSeries(d)).attr("stroke",this.pointStrokeColorForSeries(d))},c.prototype.pointStrokeWidthForSeries=function(a){return this.options.pointStrokeWidths[a%this.options.pointStrokeWidths.length]},c.prototype.pointStrokeColorForSeries=function(a){return this.options.pointStrokeColors[a%this.options.pointStrokeColors.length]},c.prototype.lineWidthForSeries=function(a){return this.options.lineWidth instanceof Array?this.options.lineWidth[a%this.options.lineWidth.length]:this.options.lineWidth},c.prototype.pointSizeForSeries=function(a){return this.options.pointSize instanceof Array?this.options.pointSize[a%this.options.pointSize.length]:this.options.pointSize},c.prototype.pointGrowSeries=function(a){return Raphael.animation({r:this.pointSizeForSeries(a)+3},25,"linear")},c.prototype.pointShrinkSeries=function(a){return Raphael.animation({r:this.pointSizeForSeries(a)},25,"linear")},c}(b.Grid),b.labelSeries=function(c,d,e,f,g){var h,i,j,k,l,m,n,o,p,q,r;if(j=200*(d-c)/e,i=new Date(c),n=b.LABEL_SPECS[f],void 0===n)for(r=b.AUTO_LABEL_ORDER,p=0,q=r.length;q>p;p++)if(k=r[p],m=b.LABEL_SPECS[k],j>=m.span){n=m;break}for(void 0===n&&(n=b.LABEL_SPECS.second),g&&(n=a.extend({},n,{fmt:g})),h=n.start(i),l=[];(o=h.getTime())<=d;)o>=c&&l.push([n.fmt(h),o]),n.incr(h);return l},c=function(a){return{span:60*a*1e3,start:function(a){return new Date(a.getFullYear(),a.getMonth(),a.getDate(),a.getHours())},fmt:function(a){return""+b.pad2(a.getHours())+":"+b.pad2(a.getMinutes())},incr:function(b){return b.setUTCMinutes(b.getUTCMinutes()+a)}}},d=function(a){return{span:1e3*a,start:function(a){return new Date(a.getFullYear(),a.getMonth(),a.getDate(),a.getHours(),a.getMinutes())},fmt:function(a){return""+b.pad2(a.getHours())+":"+b.pad2(a.getMinutes())+":"+b.pad2(a.getSeconds())},incr:function(b){return b.setUTCSeconds(b.getUTCSeconds()+a)}}},b.LABEL_SPECS={decade:{span:1728e8,start:function(a){return new Date(a.getFullYear()-a.getFullYear()%10,0,1)},fmt:function(a){return""+a.getFullYear()},incr:function(a){return a.setFullYear(a.getFullYear()+10)}},year:{span:1728e7,start:function(a){return new Date(a.getFullYear(),0,1)},fmt:function(a){return""+a.getFullYear()},incr:function(a){return a.setFullYear(a.getFullYear()+1)}},month:{span:24192e5,start:function(a){return new Date(a.getFullYear(),a.getMonth(),1)},fmt:function(a){return""+a.getFullYear()+"-"+b.pad2(a.getMonth()+1)},incr:function(a){return a.setMonth(a.getMonth()+1)}},week:{span:6048e5,start:function(a){return new Date(a.getFullYear(),a.getMonth(),a.getDate())},fmt:function(a){return""+a.getFullYear()+"-"+b.pad2(a.getMonth()+1)+"-"+b.pad2(a.getDate())},incr:function(a){return a.setDate(a.getDate()+7)}},day:{span:864e5,start:function(a){return new Date(a.getFullYear(),a.getMonth(),a.getDate())},fmt:function(a){return""+a.getFullYear()+"-"+b.pad2(a.getMonth()+1)+"-"+b.pad2(a.getDate())},incr:function(a){return a.setDate(a.getDate()+1)}},hour:c(60),"30min":c(30),"15min":c(15),"10min":c(10),"5min":c(5),minute:c(1),"30sec":d(30),"15sec":d(15),"10sec":d(10),"5sec":d(5),second:d(1)},b.AUTO_LABEL_ORDER=["decade","year","month","week","day","hour","30min","15min","10min","5min","minute","30sec","15sec","10sec","5sec","second"],b.Area=function(c){function d(c){var f;return this instanceof b.Area?(f=a.extend({},e,c),this.cumulative=!f.behaveLikeLine,"auto"===f.fillOpacity&&(f.fillOpacity=f.behaveLikeLine?.8:1),d.__super__.constructor.call(this,f),void 0):new b.Area(c)}var e;return h(d,c),e={fillOpacity:"auto",behaveLikeLine:!1},d.prototype.calcPoints=function(){var a,b,c,d,e,f,g;for(f=this.data,g=[],d=0,e=f.length;e>d;d++)a=f[d],a._x=this.transX(a.x),b=0,a._y=function(){var d,e,f,g;for(f=a.y,g=[],d=0,e=f.length;e>d;d++)c=f[d],this.options.behaveLikeLine?g.push(this.transY(c)):(b+=c||0,g.push(this.transY(b)));return g}.call(this),g.push(a._ymax=Math.max.apply(Math,a._y));return g},d.prototype.drawSeries=function(){var a,b,c,d,e,f,g,h;for(this.seriesPoints=[],b=this.options.behaveLikeLine?function(){f=[];for(var a=0,b=this.options.ykeys.length-1;b>=0?b>=a:a>=b;b>=0?a++:a--)f.push(a);return f}.apply(this):function(){g=[];for(var a=e=this.options.ykeys.length-1;0>=e?0>=a:a>=0;0>=e?a++:a--)g.push(a);return g}.apply(this),h=[],c=0,d=b.length;d>c;c++)a=b[c],this._drawFillFor(a),this._drawLineFor(a),h.push(this._drawPointFor(a));return h},d.prototype._drawFillFor=function(a){var b;return b=this.paths[a],null!==b?(b+="L"+this.transX(this.xmax)+","+this.bottom+"L"+this.transX(this.xmin)+","+this.bottom+"Z",this.drawFilledPath(b,this.fillForSeries(a))):void 0},d.prototype.fillForSeries=function(a){var b;return b=Raphael.rgb2hsl(this.colorFor(this.data[a],a,"line")),Raphael.hsl(b.h,this.options.behaveLikeLine?.9*b.s:.75*b.s,Math.min(.98,this.options.behaveLikeLine?1.2*b.l:1.25*b.l))},d.prototype.drawFilledPath=function(a,b){return this.raphael.path(a).attr("fill",b).attr("fill-opacity",this.options.fillOpacity).attr("stroke","none")},d}(b.Line),b.Bar=function(c){function d(c){return this.onHoverOut=f(this.onHoverOut,this),this.onHoverMove=f(this.onHoverMove,this),this.onGridClick=f(this.onGridClick,this),this instanceof b.Bar?(d.__super__.constructor.call(this,a.extend({},c,{parseTime:!1})),void 0):new b.Bar(c)}return h(d,c),d.prototype.init=function(){return this.cumulative=this.options.stacked,"always"!==this.options.hideHover?(this.hover=new b.Hover({parent:this.el}),this.on("hovermove",this.onHoverMove),this.on("hoverout",this.onHoverOut),this.on("gridclick",this.onGridClick)):void 0},d.prototype.defaults={barSizeRatio:.75,barGap:3,barColors:["#0b62a4","#7a92a3","#4da74d","#afd8f8","#edc240","#cb4b4b","#9440ed"],barOpacity:1,barRadius:[0,0,0,0],xLabelMargin:50},d.prototype.calc=function(){var a;return this.calcBars(),this.options.hideHover===!1?(a=this.hover).update.apply(a,this.hoverContentForRow(this.data.length-1)):void 0},d.prototype.calcBars=function(){var a,b,c,d,e,f,g;for(f=this.data,g=[],a=d=0,e=f.length;e>d;a=++d)b=f[a],b._x=this.left+this.width*(a+.5)/this.data.length,g.push(b._y=function(){var a,d,e,f;for(e=b.y,f=[],a=0,d=e.length;d>a;a++)c=e[a],null!=c?f.push(this.transY(c)):f.push(null);return f}.call(this));return g},d.prototype.draw=function(){var a;return((a=this.options.axes)===!0||"both"===a||"x"===a)&&this.drawXAxis(),this.drawSeries()},d.prototype.drawXAxis=function(){var a,b,c,d,e,f,g,h,i,j,k,l,m;for(j=this.bottom+(this.options.xAxisLabelTopPadding||this.options.padding/2),g=null,f=null,m=[],a=k=0,l=this.data.length;l>=0?l>k:k>l;a=l>=0?++k:--k)h=this.data[this.data.length-1-a],b=this.drawXAxisLabel(h._x,j,h.label),i=b.getBBox(),b.transform("r"+-this.options.xLabelAngle),c=b.getBBox(),b.transform("t0,"+c.height/2+"..."),0!==this.options.xLabelAngle&&(e=-.5*i.width*Math.cos(this.options.xLabelAngle*Math.PI/180),b.transform("t"+e+",0...")),(null==g||g>=c.x+c.width||null!=f&&f>=c.x)&&c.x>=0&&c.x+c.width<this.el.width()?(0!==this.options.xLabelAngle&&(d=1.25*this.options.gridTextSize/Math.sin(this.options.xLabelAngle*Math.PI/180),f=c.x-d),m.push(g=c.x-this.options.xLabelMargin)):m.push(b.remove());return m},d.prototype.drawSeries=function(){var a,b,c,d,e,f,g,h,i,j,k,l,m,n,o;return c=this.width/this.options.data.length,h=this.options.stacked?1:this.options.ykeys.length,a=(c*this.options.barSizeRatio-this.options.barGap*(h-1))/h,this.options.barSize&&(a=Math.min(a,this.options.barSize)),l=c-a*h-this.options.barGap*(h-1),g=l/2,o=this.ymin<=0&&this.ymax>=0?this.transY(0):null,this.bars=function(){var h,l,p,q;for(p=this.data,q=[],d=h=0,l=p.length;l>h;d=++h)i=p[d],e=0,q.push(function(){var h,l,p,q;for(p=i._y,q=[],j=h=0,l=p.length;l>h;j=++h)n=p[j],null!==n?(o?(m=Math.min(n,o),b=Math.max(n,o)):(m=n,b=this.bottom),f=this.left+d*c+g,this.options.stacked||(f+=j*(a+this.options.barGap)),k=b-m,this.options.verticalGridCondition&&this.options.verticalGridCondition(i.x)&&this.drawBar(this.left+d*c,this.top,c,Math.abs(this.top-this.bottom),this.options.verticalGridColor,this.options.verticalGridOpacity,this.options.barRadius),this.options.stacked&&(m-=e),this.drawBar(f,m,a,k,this.colorFor(i,j,"bar"),this.options.barOpacity,this.options.barRadius),q.push(e+=k)):q.push(null);return q}.call(this));return q}.call(this)},d.prototype.colorFor=function(a,b,c){var d,e;return"function"==typeof this.options.barColors?(d={x:a.x,y:a.y[b],label:a.label},e={index:b,key:this.options.ykeys[b],label:this.options.labels[b]},this.options.barColors.call(this,d,e,c)):this.options.barColors[b%this.options.barColors.length]},d.prototype.hitTest=function(a){return 0===this.data.length?null:(a=Math.max(Math.min(a,this.right),this.left),Math.min(this.data.length-1,Math.floor((a-this.left)/(this.width/this.data.length))))},d.prototype.onGridClick=function(a,b){var c;return c=this.hitTest(a),this.fire("click",c,this.data[c].src,a,b)},d.prototype.onHoverMove=function(a){var b,c;return b=this.hitTest(a),(c=this.hover).update.apply(c,this.hoverContentForRow(b))},d.prototype.onHoverOut=function(){return this.options.hideHover!==!1?this.hover.hide():void 0},d.prototype.hoverContentForRow=function(a){var b,c,d,e,f,g,h,i;for(d=this.data[a],b="<div class='morris-hover-row-label'>"+d.label+"</div>",i=d.y,c=g=0,h=i.length;h>g;c=++g)f=i[c],b+="<div class='morris-hover-point' style='color: "+this.colorFor(d,c,"label")+"'>\n "+this.options.labels[c]+":\n "+this.yLabelFormat(f)+"\n</div>";return"function"==typeof this.options.hoverCallback&&(b=this.options.hoverCallback(a,this.options,b,d.src)),e=this.left+(a+.5)*this.width/this.data.length,[b,e]},d.prototype.drawXAxisLabel=function(a,b,c){var d;return d=this.raphael.text(a,b,c).attr("font-size",this.options.gridTextSize).attr("font-family",this.options.gridTextFamily).attr("font-weight",this.options.gridTextWeight).attr("fill",this.options.gridTextColor)},d.prototype.drawBar=function(a,b,c,d,e,f,g){var h,i;return h=Math.max.apply(Math,g),i=0===h||h>d?this.raphael.rect(a,b,c,d):this.raphael.path(this.roundedRect(a,b,c,d,g)),i.attr("fill",e).attr("fill-opacity",f).attr("stroke","none")},d.prototype.roundedRect=function(a,b,c,d,e){return null==e&&(e=[0,0,0,0]),["M",a,e[0]+b,"Q",a,b,a+e[0],b,"L",a+c-e[1],b,"Q",a+c,b,a+c,b+e[1],"L",a+c,b+d-e[2],"Q",a+c,b+d,a+c-e[2],b+d,"L",a+e[3],b+d,"Q",a,b+d,a,b+d-e[3],"Z"]},d}(b.Grid),b.Donut=function(c){function d(c){this.resizeHandler=f(this.resizeHandler,this),this.select=f(this.select,this),this.click=f(this.click,this);var d=this;if(!(this instanceof b.Donut))return new b.Donut(c);if(this.options=a.extend({},this.defaults,c),this.el="string"==typeof c.element?a(document.getElementById(c.element)):a(c.element),null===this.el||0===this.el.length)throw new Error("Graph placeholder not found.");void 0!==c.data&&0!==c.data.length&&(this.raphael=new Raphael(this.el[0]),this.options.resize&&a(window).bind("resize",function(){return null!=d.timeoutId&&window.clearTimeout(d.timeoutId),d.timeoutId=window.setTimeout(d.resizeHandler,100)}),this.setData(c.data))}return h(d,c),d.prototype.defaults={colors:["#0B62A4","#3980B5","#679DC6","#95BBD7","#B0CCE1","#095791","#095085","#083E67","#052C48","#042135"],backgroundColor:"#FFFFFF",labelColor:"#000000",formatter:b.commas,resize:!1},d.prototype.redraw=function(){var a,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x;for(this.raphael.clear(),c=this.el.width()/2,d=this.el.height()/2,n=(Math.min(c,d)-10)/3,l=0,u=this.values,o=0,r=u.length;r>o;o++)m=u[o],l+=m;for(i=5/(2*n),a=1.9999*Math.PI-i*this.data.length,g=0,f=0,this.segments=[],v=this.values,e=p=0,s=v.length;s>p;e=++p)m=v[e],j=g+i+a*(m/l),k=new b.DonutSegment(c,d,2*n,n,g,j,this.data[e].color||this.options.colors[f%this.options.colors.length],this.options.backgroundColor,f,this.raphael),k.render(),this.segments.push(k),k.on("hover",this.select),k.on("click",this.click),g=j,f+=1;for(this.text1=this.drawEmptyDonutLabel(c,d-10,this.options.labelColor,15,800),this.text2=this.drawEmptyDonutLabel(c,d+10,this.options.labelColor,14),h=Math.max.apply(Math,this.values),f=0,w=this.values,x=[],q=0,t=w.length;t>q;q++){if(m=w[q],m===h){this.select(f); -break}x.push(f+=1)}return x},d.prototype.setData=function(a){var b;return this.data=a,this.values=function(){var a,c,d,e;for(d=this.data,e=[],a=0,c=d.length;c>a;a++)b=d[a],e.push(parseFloat(b.value));return e}.call(this),this.redraw()},d.prototype.click=function(a){return this.fire("click",a,this.data[a])},d.prototype.select=function(a){var b,c,d,e,f,g;for(g=this.segments,e=0,f=g.length;f>e;e++)c=g[e],c.deselect();return d=this.segments[a],d.select(),b=this.data[a],this.setLabels(b.label,this.options.formatter(b.value,b))},d.prototype.setLabels=function(a,b){var c,d,e,f,g,h,i,j;return c=2*(Math.min(this.el.width()/2,this.el.height()/2)-10)/3,f=1.8*c,e=c/2,d=c/3,this.text1.attr({text:a,transform:""}),g=this.text1.getBBox(),h=Math.min(f/g.width,e/g.height),this.text1.attr({transform:"S"+h+","+h+","+(g.x+g.width/2)+","+(g.y+g.height)}),this.text2.attr({text:b,transform:""}),i=this.text2.getBBox(),j=Math.min(f/i.width,d/i.height),this.text2.attr({transform:"S"+j+","+j+","+(i.x+i.width/2)+","+i.y})},d.prototype.drawEmptyDonutLabel=function(a,b,c,d,e){var f;return f=this.raphael.text(a,b,"").attr("font-size",d).attr("fill",c),null!=e&&f.attr("font-weight",e),f},d.prototype.resizeHandler=function(){return this.timeoutId=null,this.raphael.setSize(this.el.width(),this.el.height()),this.redraw()},d}(b.EventEmitter),b.DonutSegment=function(a){function b(a,b,c,d,e,g,h,i,j,k){this.cx=a,this.cy=b,this.inner=c,this.outer=d,this.color=h,this.backgroundColor=i,this.index=j,this.raphael=k,this.deselect=f(this.deselect,this),this.select=f(this.select,this),this.sin_p0=Math.sin(e),this.cos_p0=Math.cos(e),this.sin_p1=Math.sin(g),this.cos_p1=Math.cos(g),this.is_long=g-e>Math.PI?1:0,this.path=this.calcSegment(this.inner+3,this.inner+this.outer-5),this.selectedPath=this.calcSegment(this.inner+3,this.inner+this.outer),this.hilight=this.calcArc(this.inner)}return h(b,a),b.prototype.calcArcPoints=function(a){return[this.cx+a*this.sin_p0,this.cy+a*this.cos_p0,this.cx+a*this.sin_p1,this.cy+a*this.cos_p1]},b.prototype.calcSegment=function(a,b){var c,d,e,f,g,h,i,j,k,l;return k=this.calcArcPoints(a),c=k[0],e=k[1],d=k[2],f=k[3],l=this.calcArcPoints(b),g=l[0],i=l[1],h=l[2],j=l[3],"M"+c+","+e+("A"+a+","+a+",0,"+this.is_long+",0,"+d+","+f)+("L"+h+","+j)+("A"+b+","+b+",0,"+this.is_long+",1,"+g+","+i)+"Z"},b.prototype.calcArc=function(a){var b,c,d,e,f;return f=this.calcArcPoints(a),b=f[0],d=f[1],c=f[2],e=f[3],"M"+b+","+d+("A"+a+","+a+",0,"+this.is_long+",0,"+c+","+e)},b.prototype.render=function(){var a=this;return this.arc=this.drawDonutArc(this.hilight,this.color),this.seg=this.drawDonutSegment(this.path,this.color,this.backgroundColor,function(){return a.fire("hover",a.index)},function(){return a.fire("click",a.index)})},b.prototype.drawDonutArc=function(a,b){return this.raphael.path(a).attr({stroke:b,"stroke-width":2,opacity:0})},b.prototype.drawDonutSegment=function(a,b,c,d,e){return this.raphael.path(a).attr({fill:b,stroke:c,"stroke-width":3}).hover(d).click(e)},b.prototype.select=function(){return this.selected?void 0:(this.seg.animate({path:this.selectedPath},150,"<>"),this.arc.animate({opacity:1},150,"<>"),this.selected=!0)},b.prototype.deselect=function(){return this.selected?(this.seg.animate({path:this.path},150,"<>"),this.arc.animate({opacity:0},150,"<>"),this.selected=!1):void 0},b}(b.EventEmitter)}).call(this); \ No newline at end of file diff --git a/admin/bower_components/morris.js/package.json b/admin/bower_components/morris.js/package.json deleted file mode 100644 index 529c2b1..0000000 --- a/admin/bower_components/morris.js/package.json +++ /dev/null @@ -1,36 +0,0 @@ -{ - "name": "morris.js", - "version": "0.5.0", - "homepage": "http://morrisjs.github.com/morris.js", - "license": "BSD-2-Clause", - "description": "Easy, pretty charts", - "author": { - "name": "Olly Smith", - "email": "olly@oesmith.co.uk" - }, - "repository": { - "type": "git", - "url": "git://github.com/morrisjs/morris.js.git" - }, - "bugs": { - "url": "https://github.com/morrisjs/morris.js/issues" - }, - "devDependencies": { - "matchdep": "~0.1.2", - "grunt": "~0.4.1", - "grunt-mocha": "~0.4.10", - "grunt-contrib-concat": "~0.3.0", - "grunt-contrib-coffee": "~0.7.0", - "grunt-contrib-uglify": "~0.2.4", - "grunt-contrib-less": "~0.7.0", - "grunt-contrib-watch": "~0.5.3", - "grunt-shell": "~0.5.0", - "bower": "~1.2.8" - }, - "scripts": { - "test": "grunt concat coffee mocha" - }, - "engines": { - "node": ">=0.8 <0.11" - } -} diff --git a/admin/bower_components/morris.js/spec/lib/area/area_spec.coffee b/admin/bower_components/morris.js/spec/lib/area/area_spec.coffee deleted file mode 100644 index fa36b2e..0000000 --- a/admin/bower_components/morris.js/spec/lib/area/area_spec.coffee +++ /dev/null @@ -1,60 +0,0 @@ -describe 'Morris.Area', -> - - describe 'svg structure', -> - defaults = - element: 'graph' - data: [{x: '2012 Q1', y: 1}, {x: '2012 Q2', y: 1}] - lineColors: [ '#0b62a4', '#7a92a3'] - gridLineColor: '#aaa' - xkey: 'x' - ykeys: ['y'] - labels: ['Y'] - - it 'should contain a line path for each line', -> - chart = Morris.Area $.extend {}, defaults - $('#graph').find("path[stroke='#0b62a4']").size().should.equal 1 - - it 'should contain a path with stroke-width 0 for each line', -> - chart = Morris.Area $.extend {}, defaults - $('#graph').find("path[stroke='#0b62a4']").size().should.equal 1 - - it 'should contain 5 grid lines', -> - chart = Morris.Area $.extend {}, defaults - $('#graph').find("path[stroke='#aaaaaa']").size().should.equal 5 - - it 'should contain 9 text elements', -> - chart = Morris.Area $.extend {}, defaults - $('#graph').find("text").size().should.equal 9 - - describe 'svg attributes', -> - defaults = - element: 'graph' - data: [{x: '2012 Q1', y: 1}, {x: '2012 Q2', y: 1}] - xkey: 'x' - ykeys: ['y'] - labels: ['Y'] - lineColors: [ '#0b62a4', '#7a92a3'] - lineWidth: 3 - pointWidths: [5] - pointStrokeColors: ['#ffffff'] - gridLineColor: '#aaa' - gridStrokeWidth: 0.5 - gridTextColor: '#888' - gridTextSize: 12 - - it 'should not be cumulative if behaveLikeLine', -> - chart = Morris.Area $.extend {}, defaults, behaveLikeLine: true - chart.cumulative.should.equal false - - it 'should have a line with transparent fill if behaveLikeLine', -> - chart = Morris.Area $.extend {}, defaults, behaveLikeLine: true - $('#graph').find("path[fill-opacity='0.8']").size().should.equal 1 - - it 'should not have a line with transparent fill', -> - chart = Morris.Area $.extend {}, defaults - $('#graph').find("path[fill-opacity='0.8']").size().should.equal 0 - - it 'should have a line with the fill of a modified line color', -> - chart = Morris.Area $.extend {}, defaults - $('#graph').find("path[fill='#0b62a4']").size().should.equal 0 - $('#graph').find("path[fill='#7a92a3']").size().should.equal 0 diff --git a/admin/bower_components/morris.js/spec/lib/bar/bar_spec.coffee b/admin/bower_components/morris.js/spec/lib/bar/bar_spec.coffee deleted file mode 100644 index c647c53..0000000 --- a/admin/bower_components/morris.js/spec/lib/bar/bar_spec.coffee +++ /dev/null @@ -1,127 +0,0 @@ -describe 'Morris.Bar', -> - describe 'when using vertical grid', -> - defaults = - element: 'graph' - data: [{x: 'foo', y: 2, z: 3}, {x: 'bar', y: 4, z: 6}] - xkey: 'x' - ykeys: ['y', 'z'] - labels: ['Y', 'Z'] - barColors: [ '#0b62a4', '#7a92a3'] - gridLineColor: '#aaa' - gridStrokeWidth: 0.5 - gridTextColor: '#888' - gridTextSize: 12 - verticalGridCondition: (index) -> index % 2 - verticalGridColor: '#888888' - verticalGridOpacity: '0.2' - - describe 'svg structure', -> - it 'should contain extra rectangles for vertical grid', -> - $('#graph').css('height', '250px').css('width', '800px') - chart = Morris.Bar $.extend {}, defaults - $('#graph').find("rect").size().should.equal 6 - - describe 'svg attributes', -> - it 'should have to bars with verticalGrid.color', -> - chart = Morris.Bar $.extend {}, defaults - $('#graph').find("rect[fill='#{defaults.verticalGridColor}']").size().should.equal 2 - it 'should have to bars with verticalGrid.color', -> - chart = Morris.Bar $.extend {}, defaults - $('#graph').find("rect[fill-opacity='#{defaults.verticalGridOpacity}']").size().should.equal 2 - - describe 'svg structure', -> - defaults = - element: 'graph' - data: [{x: 'foo', y: 2, z: 3}, {x: 'bar', y: 4, z: 6}] - xkey: 'x' - ykeys: ['y', 'z'] - labels: ['Y', 'Z'] - - it 'should contain a rect for each bar', -> - chart = Morris.Bar $.extend {}, defaults - $('#graph').find("rect").size().should.equal 4 - - it 'should contain 5 grid lines', -> - chart = Morris.Bar $.extend {}, defaults - $('#graph').find("path").size().should.equal 5 - - it 'should contain 7 text elements', -> - chart = Morris.Bar $.extend {}, defaults - $('#graph').find("text").size().should.equal 7 - - describe 'svg attributes', -> - defaults = - element: 'graph' - data: [{x: 'foo', y: 2, z: 3}, {x: 'bar', y: 4, z: 6}] - xkey: 'x' - ykeys: ['y', 'z'] - labels: ['Y', 'Z'] - barColors: [ '#0b62a4', '#7a92a3'] - gridLineColor: '#aaa' - gridStrokeWidth: 0.5 - gridTextColor: '#888' - gridTextSize: 12 - - it 'should have a bar with the first default color', -> - chart = Morris.Bar $.extend {}, defaults - $('#graph').find("rect[fill='#0b62a4']").size().should.equal 2 - - it 'should have a bar with no stroke', -> - chart = Morris.Bar $.extend {}, defaults - $('#graph').find("rect[stroke='none']").size().should.equal 4 - - it 'should have text with configured fill color', -> - chart = Morris.Bar $.extend {}, defaults - $('#graph').find("text[fill='#888888']").size().should.equal 7 - - it 'should have text with configured font size', -> - chart = Morris.Bar $.extend {}, defaults - $('#graph').find("text[font-size='12px']").size().should.equal 7 - - describe 'when setting bar radius', -> - describe 'svg structure', -> - defaults = - element: 'graph' - data: [{x: 'foo', y: 2, z: 3}, {x: 'bar', y: 4, z: 6}] - xkey: 'x' - ykeys: ['y', 'z'] - labels: ['Y', 'Z'] - barRadius: [5, 5, 0, 0] - - it 'should contain a path for each bar', -> - chart = Morris.Bar $.extend {}, defaults - $('#graph').find("path").size().should.equal 9 - - it 'should use rects if radius is too big', -> - delete defaults.barStyle - chart = Morris.Bar $.extend {}, defaults, - barRadius: [300, 300, 0, 0] - $('#graph').find("rect").size().should.equal 4 - - describe 'barSize option', -> - describe 'svg attributes', -> - defaults = - element: 'graph' - barSize: 20 - data: [ - {x: '2011 Q1', y: 3, z: 2, a: 3} - {x: '2011 Q2', y: 2, z: null, a: 1} - {x: '2011 Q3', y: 0, z: 2, a: 4} - {x: '2011 Q4', y: 2, z: 4, a: 3} - ], - xkey: 'x' - ykeys: ['y', 'z', 'a'] - labels: ['Y', 'Z', 'A'] - - it 'should calc the width if too narrow for barSize', -> - $('#graph').width('200px') - chart = Morris.Bar $.extend {}, defaults - $('#graph').find("rect").filter((i) -> - parseFloat($(@).attr('width'), 10) < 10 - ).size().should.equal 11 - - it 'should set width to @options.barSize if possible', -> - chart = Morris.Bar $.extend {}, defaults - $('#graph').find("rect[width='#{defaults.barSize}']").size().should.equal 11 - - diff --git a/admin/bower_components/morris.js/spec/lib/bar/colours.coffee b/admin/bower_components/morris.js/spec/lib/bar/colours.coffee deleted file mode 100644 index ebe5469..0000000 --- a/admin/bower_components/morris.js/spec/lib/bar/colours.coffee +++ /dev/null @@ -1,36 +0,0 @@ -describe 'Morris.Bar#colorFor', -> - - defaults = - element: 'graph' - data: [{x: 'foo', y: 2, z: 3}, {x: 'bar', y: 4, z: 6}] - xkey: 'x' - ykeys: ['y', 'z'] - labels: ['Y', 'Z'] - - it 'should fetch colours from an array', -> - chart = Morris.Bar $.extend {}, defaults, barColors: ['#f00', '#0f0', '#00f'] - chart.colorFor(chart.data[0], 0, 'bar').should.equal '#f00' - chart.colorFor(chart.data[0], 0, 'hover').should.equal '#f00' - chart.colorFor(chart.data[0], 1, 'bar').should.equal '#0f0' - chart.colorFor(chart.data[0], 1, 'hover').should.equal '#0f0' - chart.colorFor(chart.data[0], 2, 'bar').should.equal '#00f' - chart.colorFor(chart.data[0], 2, 'hover').should.equal '#00f' - chart.colorFor(chart.data[0], 3, 'bar').should.equal '#f00' - chart.colorFor(chart.data[0], 4, 'hover').should.equal '#0f0' - - it 'should defer to a callback', -> - stub = sinon.stub().returns '#f00' - chart = Morris.Bar $.extend {}, defaults, barColors: stub - stub.reset() - - chart.colorFor(chart.data[0], 0, 'bar') - stub.should.have.been.calledWith( - {x:0, y:2, label:'foo'}, - {index:0, key:'y', label:'Y'}, - 'bar') - - chart.colorFor(chart.data[0], 1, 'hover') - stub.should.have.been.calledWith( - {x:0, y:3, label:'foo'}, - {index:1, key:'z', label:'Z'}, - 'hover') diff --git a/admin/bower_components/morris.js/spec/lib/commas_spec.coffee b/admin/bower_components/morris.js/spec/lib/commas_spec.coffee deleted file mode 100644 index 9c14887..0000000 --- a/admin/bower_components/morris.js/spec/lib/commas_spec.coffee +++ /dev/null @@ -1,38 +0,0 @@ -describe '#commas', -> - - it 'should insert commas into long numbers', -> - # zero - Morris.commas(0).should.equal("0") - - # positive integers - Morris.commas(1).should.equal("1") - Morris.commas(12).should.equal("12") - Morris.commas(123).should.equal("123") - Morris.commas(1234).should.equal("1,234") - Morris.commas(12345).should.equal("12,345") - Morris.commas(123456).should.equal("123,456") - Morris.commas(1234567).should.equal("1,234,567") - - # negative integers - Morris.commas(-1).should.equal("-1") - Morris.commas(-12).should.equal("-12") - Morris.commas(-123).should.equal("-123") - Morris.commas(-1234).should.equal("-1,234") - Morris.commas(-12345).should.equal("-12,345") - Morris.commas(-123456).should.equal("-123,456") - Morris.commas(-1234567).should.equal("-1,234,567") - - # positive decimals - Morris.commas(1.2).should.equal("1.2") - Morris.commas(12.34).should.equal("12.34") - Morris.commas(123.456).should.equal("123.456") - Morris.commas(1234.56).should.equal("1,234.56") - - # negative decimals - Morris.commas(-1.2).should.equal("-1.2") - Morris.commas(-12.34).should.equal("-12.34") - Morris.commas(-123.456).should.equal("-123.456") - Morris.commas(-1234.56).should.equal("-1,234.56") - - # null - Morris.commas(null).should.equal('-') diff --git a/admin/bower_components/morris.js/spec/lib/donut/donut_spec.coffee b/admin/bower_components/morris.js/spec/lib/donut/donut_spec.coffee deleted file mode 100644 index d8313f9..0000000 --- a/admin/bower_components/morris.js/spec/lib/donut/donut_spec.coffee +++ /dev/null @@ -1,76 +0,0 @@ -describe 'Morris.Donut', -> - - describe 'svg structure', -> - defaults = - element: 'graph' - data: [ {label: 'Jam', value: 25 }, - {label: 'Frosted', value: 40 }, - {label: 'Custard', value: 25 }, - {label: 'Sugar', value: 10 } ] - formatter: (y) -> "#{y}%" - - it 'should contain 2 paths for each segment', -> - chart = Morris.Donut $.extend {}, defaults - $('#graph').find("path").size().should.equal 8 - - it 'should contain 2 text elements for the label', -> - chart = Morris.Donut $.extend {}, defaults - $('#graph').find("text").size().should.equal 2 - - describe 'svg attributes', -> - defaults = - element: 'graph' - data: [ {label: 'Jam', value: 25 }, - {label: 'Frosted', value: 40 }, - {label: 'Custard', value: 25 }, - {label: 'Sugar', value: 10 } ] - formatter: (y) -> "#{y}%" - colors: [ '#0B62A4', '#3980B5', '#679DC6', '#95BBD7'] - - it 'should have a label with font size 15', -> - chart = Morris.Donut $.extend {}, defaults - $('#graph').find("text[font-size='15px']").size().should.equal 1 - - it 'should have a label with font size 14', -> - chart = Morris.Donut $.extend {}, defaults - $('#graph').find("text[font-size='14px']").size().should.equal 1 - - it 'should have a label with font-weight 800', -> - chart = Morris.Donut $.extend {}, defaults - $('#graph').find("text[font-weight='800']").size().should.equal 1 - - it 'should have 1 paths with fill of first color', -> - chart = Morris.Donut $.extend {}, defaults - $('#graph').find("path[fill='#0b62a4']").size().should.equal 1 - - it 'should have 1 paths with stroke of first color', -> - chart = Morris.Donut $.extend {}, defaults - $('#graph').find("path[stroke='#0b62a4']").size().should.equal 1 - - it 'should have a path with white stroke', -> - chart = Morris.Donut $.extend {}, defaults - $('#graph').find("path[stroke='#ffffff']").size().should.equal 4 - - it 'should have a path with stroke-width 3', -> - chart = Morris.Donut $.extend {}, defaults - $('#graph').find("path[stroke-width='3']").size().should.equal 4 - - it 'should have a path with stroke-width 2', -> - chart = Morris.Donut $.extend {}, defaults - $('#graph').find("path[stroke-width='2']").size().should.equal 4 - - describe 'setData', -> - defaults = - element: 'graph' - data: [ {label: 'One', value: 25 }, {label: "Two", value: 30} ] - colors: ['#ff0000', '#00ff00', '#0000ff'] - - it 'should update the chart', -> - chart = Morris.Donut $.extend {}, defaults - $('#graph').find("path[stroke='#0000ff']").size().should.equal 0 - chart.setData [ - { label: 'One', value: 25 } - { label: 'Two', value: 30 } - { label: 'Three', value: 35 } - ] - $('#graph').find("path[stroke='#0000ff']").size().should.equal 1 diff --git a/admin/bower_components/morris.js/spec/lib/grid/auto_grid_lines_spec.coffee b/admin/bower_components/morris.js/spec/lib/grid/auto_grid_lines_spec.coffee deleted file mode 100644 index 2312fe2..0000000 --- a/admin/bower_components/morris.js/spec/lib/grid/auto_grid_lines_spec.coffee +++ /dev/null @@ -1,25 +0,0 @@ -describe 'Morris.Grid#autoGridLines', -> - - beforeEach -> - @subject = Morris.Grid.prototype.autoGridLines - - it 'should draw at fixed intervals', -> - @subject(0, 4, 5).should.deep.equal [0, 1, 2, 3, 4] - @subject(0, 400, 5).should.deep.equal [0, 100, 200, 300, 400] - - it 'should pick intervals that show significant numbers', -> - @subject(102, 499, 5).should.deep.equal [100, 200, 300, 400, 500] - - it 'should draw zero when it falls within [ymin..ymax]', -> - @subject(-100, 300, 5).should.deep.equal [-100, 0, 100, 200, 300] - @subject(-50, 350, 5).should.deep.equal [-125, 0, 125, 250, 375] - @subject(-400, 400, 5).should.deep.equal [-400, -200, 0, 200, 400] - @subject(100, 500, 5).should.deep.equal [100, 200, 300, 400, 500] - @subject(-500, -100, 5).should.deep.equal [-500, -400, -300, -200, -100] - - it 'should generate decimal labels to 2 significant figures', -> - @subject(0, 1, 5).should.deep.equal [0, 0.25, 0.5, 0.75, 1] - @subject(0.1, 0.5, 5).should.deep.equal [0.1, 0.2, 0.3, 0.4, 0.5] - - it 'should use integer intervals for intervals larger than 1', -> - @subject(0, 9, 5).should.deep.equal [0, 3, 6, 9, 12] diff --git a/admin/bower_components/morris.js/spec/lib/grid/set_data_spec.coffee b/admin/bower_components/morris.js/spec/lib/grid/set_data_spec.coffee deleted file mode 100644 index 50450d7..0000000 --- a/admin/bower_components/morris.js/spec/lib/grid/set_data_spec.coffee +++ /dev/null @@ -1,208 +0,0 @@ -describe 'Morris.Grid#setData', -> - - it 'should not alter user-supplied data', -> - my_data = [{x: 1, y: 1}, {x: 2, y: 2}] - expected_data = [{x: 1, y: 1}, {x: 2, y: 2}] - Morris.Line - element: 'graph' - data: my_data - xkey: 'x' - ykeys: ['y'] - labels: ['dontcare'] - my_data.should.deep.equal expected_data - - describe 'ymin/ymax', -> - beforeEach -> - @defaults = - element: 'graph' - xkey: 'x' - ykeys: ['y', 'z'] - labels: ['y', 'z'] - - it 'should use a user-specified minimum and maximum value', -> - line = Morris.Line $.extend @defaults, - data: [{x: 1, y: 1}] - ymin: 10 - ymax: 20 - line.ymin.should.equal 10 - line.ymax.should.equal 20 - - describe 'auto', -> - - it 'should automatically calculate the minimum and maximum value', -> - line = Morris.Line $.extend @defaults, - data: [{x: 1, y: 10}, {x: 2, y: 15}, {x: 3, y: null}, {x: 4}] - ymin: 'auto' - ymax: 'auto' - line.ymin.should.equal 10 - line.ymax.should.equal 15 - - it 'should automatically calculate the minimum and maximum value given no y data', -> - line = Morris.Line $.extend @defaults, - data: [{x: 1}, {x: 2}, {x: 3}, {x: 4}] - ymin: 'auto' - ymax: 'auto' - line.ymin.should.equal 0 - line.ymax.should.equal 1 - - describe 'auto [n]', -> - - it 'should automatically calculate the minimum and maximum value', -> - line = Morris.Line $.extend @defaults, - data: [{x: 1, y: 10}, {x: 2, y: 15}, {x: 3, y: null}, {x: 4}] - ymin: 'auto 11' - ymax: 'auto 13' - line.ymin.should.equal 10 - line.ymax.should.equal 15 - - it 'should automatically calculate the minimum and maximum value given no data', -> - line = Morris.Line $.extend @defaults, - data: [{x: 1}, {x: 2}, {x: 3}, {x: 4}] - ymin: 'auto 11' - ymax: 'auto 13' - line.ymin.should.equal 11 - line.ymax.should.equal 13 - - it 'should use a user-specified minimum and maximum value', -> - line = Morris.Line $.extend @defaults, - data: [{x: 1, y: 10}, {x: 2, y: 15}, {x: 3, y: null}, {x: 4}] - ymin: 'auto 5' - ymax: 'auto 20' - line.ymin.should.equal 5 - line.ymax.should.equal 20 - - it 'should use a user-specified minimum and maximum value given no data', -> - line = Morris.Line $.extend @defaults, - data: [{x: 1}, {x: 2}, {x: 3}, {x: 4}] - ymin: 'auto 5' - ymax: 'auto 20' - line.ymin.should.equal 5 - line.ymax.should.equal 20 - - describe 'xmin/xmax', -> - - it 'should calculate the horizontal range', -> - line = Morris.Line - element: 'graph' - data: [{x: 2, y: 2}, {x: 1, y: 1}, {x: 4, y: 4}, {x: 3, y: 3}] - xkey: 'x' - ykeys: ['y'] - labels: ['y'] - line.xmin.should == 1 - line.xmax.should == 4 - - it "should pad the range if there's only one data point", -> - line = Morris.Line - element: 'graph' - data: [{x: 2, y: 2}] - xkey: 'x' - ykeys: ['y'] - labels: ['y'] - line.xmin.should == 1 - line.xmax.should == 3 - - describe 'sorting', -> - - it 'should sort data when parseTime is true', -> - line = Morris.Line - element: 'graph' - data: [ - {x: '2012 Q1', y: 2}, - {x: '2012 Q3', y: 1}, - {x: '2012 Q4', y: 4}, - {x: '2012 Q2', y: 3}] - xkey: 'x' - ykeys: ['y'] - labels: ['y'] - line.data.map((row) -> row.label).should.deep.equal ['2012 Q1', '2012 Q2', '2012 Q3', '2012 Q4'] - - it 'should not sort data when parseTime is false', -> - line = Morris.Line - element: 'graph' - data: [{x: 1, y: 2}, {x: 4, y: 1}, {x: 3, y: 4}, {x: 2, y: 3}] - xkey: 'x' - ykeys: ['y'] - labels: ['y'] - parseTime: false - line.data.map((row) -> row.label).should.deep.equal [1, 4, 3, 2] - - describe 'timestamp data', -> - - it 'should generate default labels for timestamp x-values', -> - d = [ - new Date 2012, 0, 1 - new Date 2012, 0, 2 - new Date 2012, 0, 3 - new Date 2012, 0, 4 - ] - line = Morris.Line - element: 'graph' - data: [ - {x: d[0].getTime(), y: 2}, - {x: d[1].getTime(), y: 1}, - {x: d[2].getTime(), y: 4}, - {x: d[3].getTime(), y: 3}] - xkey: 'x' - ykeys: ['y'] - labels: ['y'] - line.data.map((row) -> row.label).should.deep.equal d.map((t) -> t.toString()) - - it 'should use a user-supplied formatter for labels', -> - line = Morris.Line - element: 'graph' - data: [ - {x: new Date(2012, 0, 1).getTime(), y: 2}, - {x: new Date(2012, 0, 2).getTime(), y: 1}, - {x: new Date(2012, 0, 3).getTime(), y: 4}, - {x: new Date(2012, 0, 4).getTime(), y: 3}] - xkey: 'x' - ykeys: ['y'] - labels: ['y'] - dateFormat: (ts) -> - date = new Date(ts) - "#{date.getFullYear()}-#{date.getMonth()+1}-#{date.getDate()}" - line.data.map((row) -> row.label).should.deep.equal ['2012-1-1', '2012-1-2', '2012-1-3', '2012-1-4'] - - it 'should parse y-values in strings', -> - line = Morris.Line - element: 'graph' - data: [{x: 2, y: '12'}, {x: 1, y: '13.5'}, {x: 4, y: '14'}, {x: 3, y: '16'}] - xkey: 'x' - ykeys: ['y'] - labels: ['y'] - line.ymin.should == 12 - line.ymax.should == 16 - line.data.map((row) -> row.y).should.deep.equal [[13.5], [12], [16], [14]] - - it 'should clear the chart when empty data is supplied', -> - line = Morris.Line - element: 'graph', - data: [{x: 2, y: '12'}, {x: 1, y: '13.5'}, {x: 4, y: '14'}, {x: 3, y: '16'}] - xkey: 'x' - ykeys: ['y'] - labels: ['y'] - line.data.length.should.equal 4 - line.setData([]) - line.data.length.should.equal 0 - line.setData([{x: 2, y: '12'}, {x: 1, y: '13.5'}, {x: 4, y: '14'}, {x: 3, y: '16'}]) - line.data.length.should.equal 4 - - it 'should be able to add data if the chart is initialised with empty data', -> - line = Morris.Line - element: 'graph', - data: [] - xkey: 'x' - ykeys: ['y'] - labels: ['y'] - line.data.length.should.equal 0 - line.setData([{x: 2, y: '12'}, {x: 1, y: '13.5'}, {x: 4, y: '14'}, {x: 3, y: '16'}]) - line.data.length.should.equal 4 - - it 'should automatically choose significant numbers for y-labels', -> - line = Morris.Line - element: 'graph', - data: [{x: 1, y: 0}, {x: 2, y: 3600}] - xkey: 'x' - ykeys: ['y'] - labels: ['y'] - line.grid.should == [0, 1000, 2000, 3000, 4000] diff --git a/admin/bower_components/morris.js/spec/lib/grid/y_label_format_spec.coffee b/admin/bower_components/morris.js/spec/lib/grid/y_label_format_spec.coffee deleted file mode 100644 index e074230..0000000 --- a/admin/bower_components/morris.js/spec/lib/grid/y_label_format_spec.coffee +++ /dev/null @@ -1,15 +0,0 @@ -describe 'Morris.Grid#yLabelFormat', -> - - it 'should use custom formatter for y labels', -> - formatter = (label) -> - flabel = parseFloat(label) / 1000 - "#{flabel.toFixed(1)}k" - line = Morris.Line - element: 'graph' - data: [{x: 1, y: 1500}, {x: 2, y: 2500}] - xkey: 'x' - ykeys: ['y'] - labels: ['dontcare'] - preUnits: "$" - yLabelFormat: formatter - line.yLabelFormat(1500).should.equal "1.5k" diff --git a/admin/bower_components/morris.js/spec/lib/hover_spec.coffee b/admin/bower_components/morris.js/spec/lib/hover_spec.coffee deleted file mode 100644 index 868f1a3..0000000 --- a/admin/bower_components/morris.js/spec/lib/hover_spec.coffee +++ /dev/null @@ -1,64 +0,0 @@ -describe "Morris.Hover", -> - - describe "with dummy content", -> - - beforeEach -> - parent = $('<div style="width:200px;height:180px"></div>') - .appendTo($('#test')) - @hover = new Morris.Hover(parent: parent) - @element = $('#test .morris-hover') - - it "should initialise a hidden, empty popup", -> - @element.should.exist - @element.should.be.hidden - @element.should.be.empty - - describe "#show", -> - it "should show the popup", -> - @hover.show() - @element.should.be.visible - - describe "#hide", -> - it "should hide the popup", -> - @hover.show() - @hover.hide() - @element.should.be.hidden - - describe "#html", -> - it "should replace the contents of the element", -> - @hover.html('<div>Foobarbaz</div>') - @element.should.have.html('<div>Foobarbaz</div>') - - describe "#moveTo", -> - beforeEach -> - @hover.html('<div style="width:84px;height:84px"></div>') - - it "should place the popup directly above the given point", -> - @hover.moveTo(100, 150) - @element.should.have.css('left', '50px') - @element.should.have.css('top', '40px') - - it "should place the popup below the given point if it does not fit above", -> - @hover.moveTo(100, 50) - @element.should.have.css('left', '50px') - @element.should.have.css('top', '60px') - - it "should center the popup vertically if it will not fit above or below", -> - @hover.moveTo(100, 100) - @element.should.have.css('left', '50px') - @element.should.have.css('top', '40px') - - it "should center the popup vertically if no y value is supplied", -> - @hover.moveTo(100) - @element.should.have.css('left', '50px') - @element.should.have.css('top', '40px') - - describe "#update", -> - it "should update content, show and reposition the popup", -> - hover = new Morris.Hover(parent: $('#test')) - html = "<div style='width:84px;height:84px'>Hello, Everyone!</div>" - hover.update(html, 150, 200) - el = $('#test .morris-hover') - el.should.have.css('left', '100px') - el.should.have.css('top', '90px') - el.should.have.text('Hello, Everyone!') diff --git a/admin/bower_components/morris.js/spec/lib/label_series_spec.coffee b/admin/bower_components/morris.js/spec/lib/label_series_spec.coffee deleted file mode 100644 index 2794e73..0000000 --- a/admin/bower_components/morris.js/spec/lib/label_series_spec.coffee +++ /dev/null @@ -1,186 +0,0 @@ -describe '#labelSeries', -> - - it 'should generate decade intervals', -> - Morris.labelSeries( - new Date(1952, 0, 1).getTime(), - new Date(2012, 0, 1).getTime(), - 1000 - ).should.deep.equal([ - ["1960", new Date(1960, 0, 1).getTime()], - ["1970", new Date(1970, 0, 1).getTime()], - ["1980", new Date(1980, 0, 1).getTime()], - ["1990", new Date(1990, 0, 1).getTime()], - ["2000", new Date(2000, 0, 1).getTime()], - ["2010", new Date(2010, 0, 1).getTime()] - ]) - Morris.labelSeries( - new Date(1952, 3, 1).getTime(), - new Date(2012, 3, 1).getTime(), - 1000 - ).should.deep.equal([ - ["1960", new Date(1960, 0, 1).getTime()], - ["1970", new Date(1970, 0, 1).getTime()], - ["1980", new Date(1980, 0, 1).getTime()], - ["1990", new Date(1990, 0, 1).getTime()], - ["2000", new Date(2000, 0, 1).getTime()], - ["2010", new Date(2010, 0, 1).getTime()] - ]) - - it 'should generate year intervals', -> - Morris.labelSeries( - new Date(2007, 0, 1).getTime(), - new Date(2012, 0, 1).getTime(), - 1000 - ).should.deep.equal([ - ["2007", new Date(2007, 0, 1).getTime()], - ["2008", new Date(2008, 0, 1).getTime()], - ["2009", new Date(2009, 0, 1).getTime()], - ["2010", new Date(2010, 0, 1).getTime()], - ["2011", new Date(2011, 0, 1).getTime()], - ["2012", new Date(2012, 0, 1).getTime()] - ]) - Morris.labelSeries( - new Date(2007, 3, 1).getTime(), - new Date(2012, 3, 1).getTime(), - 1000 - ).should.deep.equal([ - ["2008", new Date(2008, 0, 1).getTime()], - ["2009", new Date(2009, 0, 1).getTime()], - ["2010", new Date(2010, 0, 1).getTime()], - ["2011", new Date(2011, 0, 1).getTime()], - ["2012", new Date(2012, 0, 1).getTime()] - ]) - - it 'should generate month intervals', -> - Morris.labelSeries( - new Date(2012, 0, 1).getTime(), - new Date(2012, 5, 1).getTime(), - 1000 - ).should.deep.equal([ - ["2012-01", new Date(2012, 0, 1).getTime()], - ["2012-02", new Date(2012, 1, 1).getTime()], - ["2012-03", new Date(2012, 2, 1).getTime()], - ["2012-04", new Date(2012, 3, 1).getTime()], - ["2012-05", new Date(2012, 4, 1).getTime()], - ["2012-06", new Date(2012, 5, 1).getTime()] - ]) - - it 'should generate week intervals', -> - Morris.labelSeries( - new Date(2012, 0, 1).getTime(), - new Date(2012, 1, 10).getTime(), - 1000 - ).should.deep.equal([ - ["2012-01-01", new Date(2012, 0, 1).getTime()], - ["2012-01-08", new Date(2012, 0, 8).getTime()], - ["2012-01-15", new Date(2012, 0, 15).getTime()], - ["2012-01-22", new Date(2012, 0, 22).getTime()], - ["2012-01-29", new Date(2012, 0, 29).getTime()], - ["2012-02-05", new Date(2012, 1, 5).getTime()] - ]) - - it 'should generate day intervals', -> - Morris.labelSeries( - new Date(2012, 0, 1).getTime(), - new Date(2012, 0, 6).getTime(), - 1000 - ).should.deep.equal([ - ["2012-01-01", new Date(2012, 0, 1).getTime()], - ["2012-01-02", new Date(2012, 0, 2).getTime()], - ["2012-01-03", new Date(2012, 0, 3).getTime()], - ["2012-01-04", new Date(2012, 0, 4).getTime()], - ["2012-01-05", new Date(2012, 0, 5).getTime()], - ["2012-01-06", new Date(2012, 0, 6).getTime()] - ]) - - it 'should generate hour intervals', -> - Morris.labelSeries( - new Date(2012, 0, 1, 0).getTime(), - new Date(2012, 0, 1, 5).getTime(), - 1000 - ).should.deep.equal([ - ["00:00", new Date(2012, 0, 1, 0).getTime()], - ["01:00", new Date(2012, 0, 1, 1).getTime()], - ["02:00", new Date(2012, 0, 1, 2).getTime()], - ["03:00", new Date(2012, 0, 1, 3).getTime()], - ["04:00", new Date(2012, 0, 1, 4).getTime()], - ["05:00", new Date(2012, 0, 1, 5).getTime()] - ]) - - it 'should generate half-hour intervals', -> - Morris.labelSeries( - new Date(2012, 0, 1, 0, 0).getTime(), - new Date(2012, 0, 1, 2, 30).getTime(), - 1000 - ).should.deep.equal([ - ["00:00", new Date(2012, 0, 1, 0, 0).getTime()], - ["00:30", new Date(2012, 0, 1, 0, 30).getTime()], - ["01:00", new Date(2012, 0, 1, 1, 0).getTime()], - ["01:30", new Date(2012, 0, 1, 1, 30).getTime()], - ["02:00", new Date(2012, 0, 1, 2, 0).getTime()], - ["02:30", new Date(2012, 0, 1, 2, 30).getTime()] - ]) - Morris.labelSeries( - new Date(2012, 4, 12, 0, 0).getTime(), - new Date(2012, 4, 12, 2, 30).getTime(), - 1000 - ).should.deep.equal([ - ["00:00", new Date(2012, 4, 12, 0, 0).getTime()], - ["00:30", new Date(2012, 4, 12, 0, 30).getTime()], - ["01:00", new Date(2012, 4, 12, 1, 0).getTime()], - ["01:30", new Date(2012, 4, 12, 1, 30).getTime()], - ["02:00", new Date(2012, 4, 12, 2, 0).getTime()], - ["02:30", new Date(2012, 4, 12, 2, 30).getTime()] - ]) - - it 'should generate fifteen-minute intervals', -> - Morris.labelSeries( - new Date(2012, 0, 1, 0, 0).getTime(), - new Date(2012, 0, 1, 1, 15).getTime(), - 1000 - ).should.deep.equal([ - ["00:00", new Date(2012, 0, 1, 0, 0).getTime()], - ["00:15", new Date(2012, 0, 1, 0, 15).getTime()], - ["00:30", new Date(2012, 0, 1, 0, 30).getTime()], - ["00:45", new Date(2012, 0, 1, 0, 45).getTime()], - ["01:00", new Date(2012, 0, 1, 1, 0).getTime()], - ["01:15", new Date(2012, 0, 1, 1, 15).getTime()] - ]) - Morris.labelSeries( - new Date(2012, 4, 12, 0, 0).getTime(), - new Date(2012, 4, 12, 1, 15).getTime(), - 1000 - ).should.deep.equal([ - ["00:00", new Date(2012, 4, 12, 0, 0).getTime()], - ["00:15", new Date(2012, 4, 12, 0, 15).getTime()], - ["00:30", new Date(2012, 4, 12, 0, 30).getTime()], - ["00:45", new Date(2012, 4, 12, 0, 45).getTime()], - ["01:00", new Date(2012, 4, 12, 1, 0).getTime()], - ["01:15", new Date(2012, 4, 12, 1, 15).getTime()] - ]) - - it 'should override automatic intervals', -> - Morris.labelSeries( - new Date(2011, 11, 12).getTime(), - new Date(2012, 0, 12).getTime(), - 1000, - "year" - ).should.deep.equal([ - ["2012", new Date(2012, 0, 1).getTime()] - ]) - - it 'should apply custom formatters', -> - Morris.labelSeries( - new Date(2012, 0, 1).getTime(), - new Date(2012, 0, 6).getTime(), - 1000, - "day", - (d) -> "#{d.getMonth()+1}/#{d.getDate()}/#{d.getFullYear()}" - ).should.deep.equal([ - ["1/1/2012", new Date(2012, 0, 1).getTime()], - ["1/2/2012", new Date(2012, 0, 2).getTime()], - ["1/3/2012", new Date(2012, 0, 3).getTime()], - ["1/4/2012", new Date(2012, 0, 4).getTime()], - ["1/5/2012", new Date(2012, 0, 5).getTime()], - ["1/6/2012", new Date(2012, 0, 6).getTime()] - ]) diff --git a/admin/bower_components/morris.js/spec/lib/line/line_spec.coffee b/admin/bower_components/morris.js/spec/lib/line/line_spec.coffee deleted file mode 100644 index 42e52e8..0000000 --- a/admin/bower_components/morris.js/spec/lib/line/line_spec.coffee +++ /dev/null @@ -1,211 +0,0 @@ -describe 'Morris.Line', -> - - it 'should raise an error when the placeholder element is not found', -> - my_data = [{x: 1, y: 1}, {x: 2, y: 2}] - fn = -> - Morris.Line( - element: "thisplacedoesnotexist" - data: my_data - xkey: 'x' - ykeys: ['y'] - labels: ['dontcare'] - ) - fn.should.throw(/Graph container element not found/) - - it 'should make point styles customizable', -> - my_data = [{x: 1, y: 1}, {x: 2, y: 2}] - red = '#ff0000' - blue = '#0000ff' - chart = Morris.Line - element: 'graph' - data: my_data - xkey: 'x' - ykeys: ['y'] - labels: ['dontcare'] - pointStrokeColors: [red, blue] - pointStrokeWidths: [1, 2] - pointFillColors: [null, red] - chart.pointStrokeWidthForSeries(0).should.equal 1 - chart.pointStrokeColorForSeries(0).should.equal red - chart.pointStrokeWidthForSeries(1).should.equal 2 - chart.pointStrokeColorForSeries(1).should.equal blue - chart.colorFor(chart.data[0], 0, 'point').should.equal chart.colorFor(chart.data[0], 0, 'line') - chart.colorFor(chart.data[1], 1, 'point').should.equal red - - describe 'generating column labels', -> - - it 'should use user-supplied x value strings by default', -> - chart = Morris.Line - element: 'graph' - data: [{x: '2012 Q1', y: 1}, {x: '2012 Q2', y: 1}] - xkey: 'x' - ykeys: ['y'] - labels: ['dontcare'] - chart.data.map((x) -> x.label).should == ['2012 Q1', '2012 Q2'] - - it 'should use a default format for timestamp x-values', -> - d1 = new Date(2012, 0, 1) - d2 = new Date(2012, 0, 2) - chart = Morris.Line - element: 'graph' - data: [{x: d1.getTime(), y: 1}, {x: d2.getTime(), y: 1}] - xkey: 'x' - ykeys: ['y'] - labels: ['dontcare'] - chart.data.map((x) -> x.label).should == [d2.toString(), d1.toString()] - - it 'should use user-defined formatters', -> - d = new Date(2012, 0, 1) - chart = Morris.Line - element: 'graph' - data: [{x: d.getTime(), y: 1}, {x: '2012-01-02', y: 1}] - xkey: 'x' - ykeys: ['y'] - labels: ['dontcare'] - dateFormat: (d) -> - x = new Date(d) - "#{x.getYear()}/#{x.getMonth()+1}/#{x.getDay()}" - chart.data.map((x) -> x.label).should == ['2012/1/1', '2012/1/2'] - - describe 'rendering lines', -> - beforeEach -> - @defaults = - element: 'graph' - data: [{x:0, y:1, z:0}, {x:1, y:0, z:1}, {x:2, y:1, z:0}, {x:3, y:0, z:1}, {x:4, y:1, z:0}] - xkey: 'x' - ykeys: ['y', 'z'] - labels: ['y', 'z'] - lineColors: ['#abcdef', '#fedcba'] - smooth: true - - shouldHavePath = (regex, color = '#abcdef') -> - # Matches an SVG path element within the rendered chart. - # - # Sneakily uses line colors to differentiate between paths within - # the chart. - $('#graph').find("path[stroke='#{color}']").attr('d').should.match regex - - it 'should generate smooth lines when options.smooth is true', -> - Morris.Line @defaults - shouldHavePath /M[\d\.]+,[\d\.]+(C[\d\.]+(,[\d\.]+){5}){4}/ - - it 'should generate jagged lines when options.smooth is false', -> - Morris.Line $.extend(@defaults, smooth: false) - shouldHavePath /M[\d\.]+,[\d\.]+(L[\d\.]+,[\d\.]+){4}/ - - it 'should generate smooth/jagged lines according to the value for each series when options.smooth is an array', -> - Morris.Line $.extend(@defaults, smooth: ['y']) - shouldHavePath /M[\d\.]+,[\d\.]+(C[\d\.]+(,[\d\.]+){5}){4}/, '#abcdef' - shouldHavePath /M[\d\.]+,[\d\.]+(L[\d\.]+,[\d\.]+){4}/, '#fedcba' - - it 'should ignore undefined values', -> - @defaults.data[2].y = undefined - Morris.Line @defaults - shouldHavePath /M[\d\.]+,[\d\.]+(C[\d\.]+(,[\d\.]+){5}){3}/ - - it 'should break the line at null values', -> - @defaults.data[2].y = null - Morris.Line @defaults - shouldHavePath /(M[\d\.]+,[\d\.]+C[\d\.]+(,[\d\.]+){5}){2}/ - - it 'should make line width customizable', -> - chart = Morris.Line $.extend(@defaults, lineWidth: [1, 2]) - chart.lineWidthForSeries(0).should.equal 1 - chart.lineWidthForSeries(1).should.equal 2 - - describe '#createPath', -> - - it 'should generate a smooth line', -> - testData = [{x: 0, y: 10}, {x: 10, y: 0}, {x: 20, y: 10}] - path = Morris.Line.createPath(testData, true, 20) - path.should.equal 'M0,10C2.5,7.5,7.5,0,10,0C12.5,0,17.5,7.5,20,10' - - it 'should generate a jagged line', -> - testData = [{x: 0, y: 10}, {x: 10, y: 0}, {x: 20, y: 10}] - path = Morris.Line.createPath(testData, false, 20) - path.should.equal 'M0,10L10,0L20,10' - - it 'should prevent paths from descending below the bottom of the chart', -> - testData = [{x: 0, y: 20}, {x: 10, y: 30}, {x: 20, y: 10}] - path = Morris.Line.createPath(testData, true, 30) - path.should.equal 'M0,20C2.5,22.5,7.5,30,10,30C12.5,28.75,17.5,15,20,10' - - it 'should break the line at null values', -> - testData = [{x: 0, y: 10}, {x: 10, y: 0}, {x: 20, y: null}, {x: 30, y: 10}, {x: 40, y: 0}] - path = Morris.Line.createPath(testData, true, 20) - path.should.equal 'M0,10C2.5,7.5,7.5,2.5,10,0M30,10C32.5,7.5,37.5,2.5,40,0' - - it 'should ignore leading and trailing null values', -> - testData = [{x: 0, y: null}, {x: 10, y: 10}, {x: 20, y: 0}, {x: 30, y: 10}, {x: 40, y: null}] - path = Morris.Line.createPath(testData, true, 20) - path.should.equal 'M10,10C12.5,7.5,17.5,0,20,0C22.5,0,27.5,7.5,30,10' - - describe 'svg structure', -> - defaults = - element: 'graph' - data: [{x: '2012 Q1', y: 1}, {x: '2012 Q2', y: 1}] - lineColors: [ '#0b62a4', '#7a92a3'] - xkey: 'x' - ykeys: ['y'] - labels: ['dontcare'] - - it 'should contain a path that represents the line', -> - chart = Morris.Line $.extend {}, defaults - $('#graph').find("path[stroke='#0b62a4']").size().should.equal 1 - - it 'should contain a circle for each data point', -> - chart = Morris.Line $.extend {}, defaults - $('#graph').find("circle").size().should.equal 2 - - it 'should contain 5 grid lines', -> - chart = Morris.Line $.extend {}, defaults - $('#graph').find("path[stroke='#aaaaaa']").size().should.equal 5 - - it 'should contain 9 text elements', -> - chart = Morris.Line $.extend {}, defaults - $('#graph').find("text").size().should.equal 9 - - describe 'svg attributes', -> - defaults = - element: 'graph' - data: [{x: '2012 Q1', y: 1}, {x: '2012 Q2', y: 1}] - xkey: 'x' - ykeys: ['y', 'z'] - labels: ['Y', 'Z'] - lineColors: [ '#0b62a4', '#7a92a3'] - lineWidth: 3 - pointStrokeWidths: [5] - pointStrokeColors: ['#ffffff'] - gridLineColor: '#aaa' - gridStrokeWidth: 0.5 - gridTextColor: '#888' - gridTextSize: 12 - pointSize: [5] - - it 'should have circles with configured fill color', -> - chart = Morris.Line $.extend {}, defaults - $('#graph').find("circle[fill='#0b62a4']").size().should.equal 2 - - it 'should have circles with configured stroke width', -> - chart = Morris.Line $.extend {}, defaults - $('#graph').find("circle[stroke-width='5']").size().should.equal 2 - - it 'should have circles with configured stroke color', -> - chart = Morris.Line $.extend {}, defaults - $('#graph').find("circle[stroke='#ffffff']").size().should.equal 2 - - it 'should have line with configured line width', -> - chart = Morris.Line $.extend {}, defaults - $('#graph').find("path[stroke-width='3']").size().should.equal 1 - - it 'should have text with configured font size', -> - chart = Morris.Line $.extend {}, defaults - $('#graph').find("text[font-size='12px']").size().should.equal 9 - - it 'should have text with configured font size', -> - chart = Morris.Line $.extend {}, defaults - $('#graph').find("text[fill='#888888']").size().should.equal 9 - - it 'should have circle with configured size', -> - chart = Morris.Line $.extend {}, defaults - $('#graph').find("circle[r='5']").size().should.equal 2 diff --git a/admin/bower_components/morris.js/spec/lib/pad_spec.coffee b/admin/bower_components/morris.js/spec/lib/pad_spec.coffee deleted file mode 100644 index f81a592..0000000 --- a/admin/bower_components/morris.js/spec/lib/pad_spec.coffee +++ /dev/null @@ -1,17 +0,0 @@ -describe '#pad', -> - - it 'should pad numbers', -> - Morris.pad2(0).should.equal("00") - Morris.pad2(1).should.equal("01") - Morris.pad2(2).should.equal("02") - Morris.pad2(3).should.equal("03") - Morris.pad2(4).should.equal("04") - Morris.pad2(5).should.equal("05") - Morris.pad2(6).should.equal("06") - Morris.pad2(7).should.equal("07") - Morris.pad2(8).should.equal("08") - Morris.pad2(9).should.equal("09") - Morris.pad2(10).should.equal("10") - Morris.pad2(12).should.equal("12") - Morris.pad2(34).should.equal("34") - Morris.pad2(123).should.equal("123") \ No newline at end of file diff --git a/admin/bower_components/morris.js/spec/lib/parse_time_spec.coffee b/admin/bower_components/morris.js/spec/lib/parse_time_spec.coffee deleted file mode 100644 index 199aa9d..0000000 --- a/admin/bower_components/morris.js/spec/lib/parse_time_spec.coffee +++ /dev/null @@ -1,35 +0,0 @@ -describe '#parseTime', -> - - it 'should parse years', -> - Morris.parseDate('2012').should.equal(new Date(2012, 0, 1).getTime()) - - it 'should parse quarters', -> - Morris.parseDate('2012 Q1').should.equal(new Date(2012, 2, 1).getTime()) - - it 'should parse months', -> - Morris.parseDate('2012-09').should.equal(new Date(2012, 8, 1).getTime()) - Morris.parseDate('2012-10').should.equal(new Date(2012, 9, 1).getTime()) - - it 'should parse dates', -> - Morris.parseDate('2012-09-15').should.equal(new Date(2012, 8, 15).getTime()) - Morris.parseDate('2012-10-15').should.equal(new Date(2012, 9, 15).getTime()) - - it 'should parse times', -> - Morris.parseDate("2012-10-15 12:34").should.equal(new Date(2012, 9, 15, 12, 34).getTime()) - Morris.parseDate("2012-10-15T12:34").should.equal(new Date(2012, 9, 15, 12, 34).getTime()) - Morris.parseDate("2012-10-15 12:34:55").should.equal(new Date(2012, 9, 15, 12, 34, 55).getTime()) - Morris.parseDate("2012-10-15T12:34:55").should.equal(new Date(2012, 9, 15, 12, 34, 55).getTime()) - - it 'should parse times with timezones', -> - Morris.parseDate("2012-10-15T12:34+0100").should.equal(Date.UTC(2012, 9, 15, 11, 34)) - Morris.parseDate("2012-10-15T12:34+02:00").should.equal(Date.UTC(2012, 9, 15, 10, 34)) - Morris.parseDate("2012-10-15T12:34-0100").should.equal(Date.UTC(2012, 9, 15, 13, 34)) - Morris.parseDate("2012-10-15T12:34-02:00").should.equal(Date.UTC(2012, 9, 15, 14, 34)) - Morris.parseDate("2012-10-15T12:34:55Z").should.equal(Date.UTC(2012, 9, 15, 12, 34, 55)) - Morris.parseDate("2012-10-15T12:34:55+0600").should.equal(Date.UTC(2012, 9, 15, 6, 34, 55)) - Morris.parseDate("2012-10-15T12:34:55+04:00").should.equal(Date.UTC(2012, 9, 15, 8, 34, 55)) - Morris.parseDate("2012-10-15T12:34:55-0600").should.equal(Date.UTC(2012, 9, 15, 18, 34, 55)) - - it 'should pass-through timestamps', -> - Morris.parseDate(new Date(2012, 9, 15, 12, 34, 55, 123).getTime()) - .should.equal(new Date(2012, 9, 15, 12, 34, 55, 123).getTime()) \ No newline at end of file diff --git a/admin/bower_components/morris.js/spec/specs.html b/admin/bower_components/morris.js/spec/specs.html deleted file mode 100644 index 28ec092..0000000 --- a/admin/bower_components/morris.js/spec/specs.html +++ /dev/null @@ -1,34 +0,0 @@ -<!doctype html> -<head> - <meta charset="utf-8"> - <title>morris.js tests</title> - <link rel="stylesheet" href="../bower_components/mocha/mocha.css" type="text/css" media="screen" /> - <link rel="stylesheet" href="../morris.css" type="text/css" media="screen" /> - <!-- jQuery packaging changed for 2.1.0, so try to load both paths, one will work. --> - <script src="../bower_components/jquery/dist/jquery.js"></script> - <script src="../bower_components/jquery/jquery.js"></script> - <script type="text/javascript" src="../bower_components/raphael/raphael-min.js"></script> -</head> -<body> - <div id="mocha"></div> - - <script type="text/javascript" src="../bower_components/mocha/mocha.js"></script> - <script type="text/javascript" src="../bower_components/chai/chai.js"></script> - <script type="text/javascript" src="../bower_components/chai-jquery/chai-jquery.js"></script> - <script type="text/javascript" src="../bower_components/sinon/index.js"></script> - <script type="text/javascript" src="../bower_components/sinon-chai/lib/sinon-chai.js"></script> - <script> - mocha.setup('bdd'); - should = chai.should(); - </script> - - <script type="text/javascript" src="../morris.js"></script> - <script type="text/javascript" src="../build/spec.js"></script> - <div id="test" style="width: 400px; height: 200px;"></div> - <script> - if (navigator.userAgent.indexOf('PhantomJS') < 0) { - mocha.run(); - } - </script> -</body> -</html> diff --git a/admin/bower_components/morris.js/spec/support/placeholder.coffee b/admin/bower_components/morris.js/spec/support/placeholder.coffee deleted file mode 100644 index f715035..0000000 --- a/admin/bower_components/morris.js/spec/support/placeholder.coffee +++ /dev/null @@ -1,6 +0,0 @@ -beforeEach -> - placeholder = $('<div id="graph" style="width: 600px; height: 400px"></div>') - $('#test').append(placeholder) - -afterEach -> - $('#test').empty() diff --git a/admin/bower_components/morris.js/spec/viz/exemplary/area0.png b/admin/bower_components/morris.js/spec/viz/exemplary/area0.png deleted file mode 100644 index 67e5f4a..0000000 Binary files a/admin/bower_components/morris.js/spec/viz/exemplary/area0.png and /dev/null differ diff --git a/admin/bower_components/morris.js/spec/viz/exemplary/bar0.png b/admin/bower_components/morris.js/spec/viz/exemplary/bar0.png deleted file mode 100644 index 03f12e0..0000000 Binary files a/admin/bower_components/morris.js/spec/viz/exemplary/bar0.png and /dev/null differ diff --git a/admin/bower_components/morris.js/spec/viz/exemplary/line0.png b/admin/bower_components/morris.js/spec/viz/exemplary/line0.png deleted file mode 100644 index 70f814c..0000000 Binary files a/admin/bower_components/morris.js/spec/viz/exemplary/line0.png and /dev/null differ diff --git a/admin/bower_components/morris.js/spec/viz/exemplary/stacked_bar0.png b/admin/bower_components/morris.js/spec/viz/exemplary/stacked_bar0.png deleted file mode 100644 index 238e05f..0000000 Binary files a/admin/bower_components/morris.js/spec/viz/exemplary/stacked_bar0.png and /dev/null differ diff --git a/admin/bower_components/morris.js/spec/viz/run.sh b/admin/bower_components/morris.js/spec/viz/run.sh deleted file mode 100644 index ae671d4..0000000 --- a/admin/bower_components/morris.js/spec/viz/run.sh +++ /dev/null @@ -1,32 +0,0 @@ -#!/bin/sh - -# visual_specs.js creates output in output/XXX.png -phantomjs visual_specs.js - -# clear out old diffs -mkdir -p diff -rm -f diff/* - -# generate diffs -PASS=1 -for i in exemplary/*.png -do - FN=`basename $i` - perceptualdiff $i output/$FN -output diff/$FN - if [ $? -eq 0 ] - then - echo "OK: $FN" - else - echo "FAIL: $FN" - PASS=0 - fi -done - -# pass / fail -if [ $PASS -eq 1 ] -then - echo "Success." -else - echo "Failed." - exit 1 -fi diff --git a/admin/bower_components/raphael/.bower.json b/admin/bower_components/raphael/.bower.json deleted file mode 100644 index 1bfac6c..0000000 --- a/admin/bower_components/raphael/.bower.json +++ /dev/null @@ -1,46 +0,0 @@ -{ - "name": "raphael", - "main": "raphael.min.js", - "description": "JavaScript Vector Library", - "dependencies": { - "eve-raphael": "0.5.0" - }, - "devDependencies": { - "requirejs": "2.3.2" - }, - "moduleType": [ - "amd", - "globals", - "node" - ], - "keywords": [ - "svg", - "vml", - "javascript" - ], - "authors": [ - "Dmitry Baranovskiy" - ], - "license": "MIT", - "ignore": [ - "**/.*", - "*.html", - "*.json", - "*.markdown", - "*.md", - "copy.js", - "Gruntfile.js", - "reference.js" - ], - "homepage": "https://github.com/DmitryBaranovskiy/raphael", - "version": "2.2.7", - "_release": "2.2.7", - "_resolution": { - "type": "version", - "tag": "v2.2.7", - "commit": "f17a2a397af7790c8cb7313a8d3d105cb44e7f4a" - }, - "_source": "https://github.com/DmitryBaranovskiy/raphael.git", - "_target": ">= 2.0", - "_originalSource": "raphael" -} \ No newline at end of file diff --git a/admin/bower_components/raphael/bower.json b/admin/bower_components/raphael/bower.json deleted file mode 100644 index 50e9817..0000000 --- a/admin/bower_components/raphael/bower.json +++ /dev/null @@ -1,31 +0,0 @@ -{ - "name": "raphael", - "main": "raphael.min.js", - "description": "JavaScript Vector Library", - "dependencies": { - "eve-raphael": "0.5.0" - }, - "devDependencies": { - "requirejs": "2.3.2" - }, - "moduleType": [ - "amd", - "globals", - "node" - ], - "keywords": ["svg", "vml", "javascript"], - "authors": [ - "Dmitry Baranovskiy" - ], - "license": "MIT", - "ignore": [ - "**/.*", - "*.html", - "*.json", - "*.markdown", - "*.md", - "copy.js", - "Gruntfile.js", - "reference.js" - ] -} diff --git a/admin/bower_components/raphael/dev/banner.txt b/admin/bower_components/raphael/dev/banner.txt deleted file mode 100644 index 32070b9..0000000 --- a/admin/bower_components/raphael/dev/banner.txt +++ /dev/null @@ -1,8 +0,0 @@ -// ┌───────────────────────────────────────────────────────────────────────────────────────────────────────┐ \\ -// │ Raphaël 2.2.0 - JavaScript Vector Library │ \\ -// ├───────────────────────────────────────────────────────────────────────────────────────────────────────┤ \\ -// │ Copyright © 2008-2016 Dmitry Baranovskiy (http://raphaeljs.com) │ \\ -// │ Copyright © 2008-2016 Sencha Labs (http://sencha.com) │ \\ -// ├───────────────────────────────────────────────────────────────────────────────────────────────────────┤ \\ -// │ Licensed under the MIT (https://github.com/DmitryBaranovskiy/raphael/blob/master/license.txt) license.│ \\ -// └───────────────────────────────────────────────────────────────────────────────────────────────────────┘ \\ diff --git a/admin/bower_components/raphael/dev/raphael.amd.js b/admin/bower_components/raphael/dev/raphael.amd.js deleted file mode 100644 index 50cdf07..0000000 --- a/admin/bower_components/raphael/dev/raphael.amd.js +++ /dev/null @@ -1,5 +0,0 @@ -define(["./raphael.core", "./raphael.svg", "./raphael.vml"], function(R) { - - return R; - -}); \ No newline at end of file diff --git a/admin/bower_components/raphael/dev/raphael.core.js b/admin/bower_components/raphael/dev/raphael.core.js deleted file mode 100644 index a78affc..0000000 --- a/admin/bower_components/raphael/dev/raphael.core.js +++ /dev/null @@ -1,5405 +0,0 @@ -define(["eve"], function(eve) { - - /*\ - * Raphael - [ method ] - ** - * Creates a canvas object on which to draw. - * You must do this first, as all future calls to drawing methods - * from this instance will be bound to this canvas. - > Parameters - ** - - container (HTMLElement|string) DOM element or its ID which is going to be a parent for drawing surface - - width (number) - - height (number) - - callback (function) #optional callback function which is going to be executed in the context of newly created paper - * or - - x (number) - - y (number) - - width (number) - - height (number) - - callback (function) #optional callback function which is going to be executed in the context of newly created paper - * or - - all (array) (first 3 or 4 elements in the array are equal to [containerID, width, height] or [x, y, width, height]. The rest are element descriptions in format {type: type, <attributes>}). See @Paper.add. - - callback (function) #optional callback function which is going to be executed in the context of newly created paper - * or - - onReadyCallback (function) function that is going to be called on DOM ready event. You can also subscribe to this event via Eve’s “DOMLoad” event. In this case method returns `undefined`. - = (object) @Paper - > Usage - | // Each of the following examples create a canvas - | // that is 320px wide by 200px high. - | // Canvas is created at the viewport’s 10,50 coordinate. - | var paper = Raphael(10, 50, 320, 200); - | // Canvas is created at the top left corner of the #notepad element - | // (or its top right corner in dir="rtl" elements) - | var paper = Raphael(document.getElementById("notepad"), 320, 200); - | // Same as above - | var paper = Raphael("notepad", 320, 200); - | // Image dump - | var set = Raphael(["notepad", 320, 200, { - | type: "rect", - | x: 10, - | y: 10, - | width: 25, - | height: 25, - | stroke: "#f00" - | }, { - | type: "text", - | x: 30, - | y: 40, - | text: "Dump" - | }]); - \*/ - function R(first) { - if (R.is(first, "function")) { - return loaded ? first() : eve.on("raphael.DOMload", first); - } else if (R.is(first, array)) { - return R._engine.create[apply](R, first.splice(0, 3 + R.is(first[0], nu))).add(first); - } else { - var args = Array.prototype.slice.call(arguments, 0); - if (R.is(args[args.length - 1], "function")) { - var f = args.pop(); - return loaded ? f.call(R._engine.create[apply](R, args)) : eve.on("raphael.DOMload", function () { - f.call(R._engine.create[apply](R, args)); - }); - } else { - return R._engine.create[apply](R, arguments); - } - } - } - R.version = "2.2.0"; - R.eve = eve; - var loaded, - separator = /[, ]+/, - elements = {circle: 1, rect: 1, path: 1, ellipse: 1, text: 1, image: 1}, - formatrg = /\{(\d+)\}/g, - proto = "prototype", - has = "hasOwnProperty", - g = { - doc: document, - win: window - }, - oldRaphael = { - was: Object.prototype[has].call(g.win, "Raphael"), - is: g.win.Raphael - }, - Paper = function () { - /*\ - * Paper.ca - [ property (object) ] - ** - * Shortcut for @Paper.customAttributes - \*/ - /*\ - * Paper.customAttributes - [ property (object) ] - ** - * If you have a set of attributes that you would like to represent - * as a function of some number you can do it easily with custom attributes: - > Usage - | paper.customAttributes.hue = function (num) { - | num = num % 1; - | return {fill: "hsb(" + num + ", 0.75, 1)"}; - | }; - | // Custom attribute “hue” will change fill - | // to be given hue with fixed saturation and brightness. - | // Now you can use it like this: - | var c = paper.circle(10, 10, 10).attr({hue: .45}); - | // or even like this: - | c.animate({hue: 1}, 1e3); - | - | // You could also create custom attribute - | // with multiple parameters: - | paper.customAttributes.hsb = function (h, s, b) { - | return {fill: "hsb(" + [h, s, b].join(",") + ")"}; - | }; - | c.attr({hsb: "0.5 .8 1"}); - | c.animate({hsb: [1, 0, 0.5]}, 1e3); - \*/ - this.ca = this.customAttributes = {}; - }, - paperproto, - appendChild = "appendChild", - apply = "apply", - concat = "concat", - supportsTouch = ('ontouchstart' in g.win) || g.win.DocumentTouch && g.doc instanceof DocumentTouch, //taken from Modernizr touch test - E = "", - S = " ", - Str = String, - split = "split", - events = "click dblclick mousedown mousemove mouseout mouseover mouseup touchstart touchmove touchend touchcancel"[split](S), - touchMap = { - mousedown: "touchstart", - mousemove: "touchmove", - mouseup: "touchend" - }, - lowerCase = Str.prototype.toLowerCase, - math = Math, - mmax = math.max, - mmin = math.min, - abs = math.abs, - pow = math.pow, - PI = math.PI, - nu = "number", - string = "string", - array = "array", - toString = "toString", - fillString = "fill", - objectToString = Object.prototype.toString, - paper = {}, - push = "push", - ISURL = R._ISURL = /^url\(['"]?(.+?)['"]?\)$/i, - colourRegExp = /^\s*((#[a-f\d]{6})|(#[a-f\d]{3})|rgba?\(\s*([\d\.]+%?\s*,\s*[\d\.]+%?\s*,\s*[\d\.]+%?(?:\s*,\s*[\d\.]+%?)?)\s*\)|hsba?\(\s*([\d\.]+(?:deg|\xb0|%)?\s*,\s*[\d\.]+%?\s*,\s*[\d\.]+(?:%?\s*,\s*[\d\.]+)?)%?\s*\)|hsla?\(\s*([\d\.]+(?:deg|\xb0|%)?\s*,\s*[\d\.]+%?\s*,\s*[\d\.]+(?:%?\s*,\s*[\d\.]+)?)%?\s*\))\s*$/i, - isnan = {"NaN": 1, "Infinity": 1, "-Infinity": 1}, - bezierrg = /^(?:cubic-)?bezier\(([^,]+),([^,]+),([^,]+),([^\)]+)\)/, - round = math.round, - setAttribute = "setAttribute", - toFloat = parseFloat, - toInt = parseInt, - upperCase = Str.prototype.toUpperCase, - availableAttrs = R._availableAttrs = { - "arrow-end": "none", - "arrow-start": "none", - blur: 0, - "clip-rect": "0 0 1e9 1e9", - cursor: "default", - cx: 0, - cy: 0, - fill: "#fff", - "fill-opacity": 1, - font: '10px "Arial"', - "font-family": '"Arial"', - "font-size": "10", - "font-style": "normal", - "font-weight": 400, - gradient: 0, - height: 0, - href: "http://raphaeljs.com/", - "letter-spacing": 0, - opacity: 1, - path: "M0,0", - r: 0, - rx: 0, - ry: 0, - src: "", - stroke: "#000", - "stroke-dasharray": "", - "stroke-linecap": "butt", - "stroke-linejoin": "butt", - "stroke-miterlimit": 0, - "stroke-opacity": 1, - "stroke-width": 1, - target: "_blank", - "text-anchor": "middle", - title: "Raphael", - transform: "", - width: 0, - x: 0, - y: 0, - "class": "" - }, - availableAnimAttrs = R._availableAnimAttrs = { - blur: nu, - "clip-rect": "csv", - cx: nu, - cy: nu, - fill: "colour", - "fill-opacity": nu, - "font-size": nu, - height: nu, - opacity: nu, - path: "path", - r: nu, - rx: nu, - ry: nu, - stroke: "colour", - "stroke-opacity": nu, - "stroke-width": nu, - transform: "transform", - width: nu, - x: nu, - y: nu - }, - whitespace = /[\x09\x0a\x0b\x0c\x0d\x20\xa0\u1680\u180e\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u202f\u205f\u3000\u2028\u2029]/g, - commaSpaces = /[\x09\x0a\x0b\x0c\x0d\x20\xa0\u1680\u180e\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u202f\u205f\u3000\u2028\u2029]*,[\x09\x0a\x0b\x0c\x0d\x20\xa0\u1680\u180e\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u202f\u205f\u3000\u2028\u2029]*/, - hsrg = {hs: 1, rg: 1}, - p2s = /,?([achlmqrstvxz]),?/gi, - pathCommand = /([achlmrqstvz])[\x09\x0a\x0b\x0c\x0d\x20\xa0\u1680\u180e\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u202f\u205f\u3000\u2028\u2029,]*((-?\d*\.?\d*(?:e[\-+]?\d+)?[\x09\x0a\x0b\x0c\x0d\x20\xa0\u1680\u180e\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u202f\u205f\u3000\u2028\u2029]*,?[\x09\x0a\x0b\x0c\x0d\x20\xa0\u1680\u180e\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u202f\u205f\u3000\u2028\u2029]*)+)/ig, - tCommand = /([rstm])[\x09\x0a\x0b\x0c\x0d\x20\xa0\u1680\u180e\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u202f\u205f\u3000\u2028\u2029,]*((-?\d*\.?\d*(?:e[\-+]?\d+)?[\x09\x0a\x0b\x0c\x0d\x20\xa0\u1680\u180e\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u202f\u205f\u3000\u2028\u2029]*,?[\x09\x0a\x0b\x0c\x0d\x20\xa0\u1680\u180e\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u202f\u205f\u3000\u2028\u2029]*)+)/ig, - pathValues = /(-?\d*\.?\d*(?:e[\-+]?\d+)?)[\x09\x0a\x0b\x0c\x0d\x20\xa0\u1680\u180e\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u202f\u205f\u3000\u2028\u2029]*,?[\x09\x0a\x0b\x0c\x0d\x20\xa0\u1680\u180e\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u202f\u205f\u3000\u2028\u2029]*/ig, - radial_gradient = R._radial_gradient = /^r(?:\(([^,]+?)[\x09\x0a\x0b\x0c\x0d\x20\xa0\u1680\u180e\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u202f\u205f\u3000\u2028\u2029]*,[\x09\x0a\x0b\x0c\x0d\x20\xa0\u1680\u180e\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u202f\u205f\u3000\u2028\u2029]*([^\)]+?)\))?/, - eldata = {}, - sortByKey = function (a, b) { - return a.key - b.key; - }, - sortByNumber = function (a, b) { - return toFloat(a) - toFloat(b); - }, - fun = function () {}, - pipe = function (x) { - return x; - }, - rectPath = R._rectPath = function (x, y, w, h, r) { - if (r) { - return [["M", x + r, y], ["l", w - r * 2, 0], ["a", r, r, 0, 0, 1, r, r], ["l", 0, h - r * 2], ["a", r, r, 0, 0, 1, -r, r], ["l", r * 2 - w, 0], ["a", r, r, 0, 0, 1, -r, -r], ["l", 0, r * 2 - h], ["a", r, r, 0, 0, 1, r, -r], ["z"]]; - } - return [["M", x, y], ["l", w, 0], ["l", 0, h], ["l", -w, 0], ["z"]]; - }, - ellipsePath = function (x, y, rx, ry) { - if (ry == null) { - ry = rx; - } - return [["M", x, y], ["m", 0, -ry], ["a", rx, ry, 0, 1, 1, 0, 2 * ry], ["a", rx, ry, 0, 1, 1, 0, -2 * ry], ["z"]]; - }, - getPath = R._getPath = { - path: function (el) { - return el.attr("path"); - }, - circle: function (el) { - var a = el.attrs; - return ellipsePath(a.cx, a.cy, a.r); - }, - ellipse: function (el) { - var a = el.attrs; - return ellipsePath(a.cx, a.cy, a.rx, a.ry); - }, - rect: function (el) { - var a = el.attrs; - return rectPath(a.x, a.y, a.width, a.height, a.r); - }, - image: function (el) { - var a = el.attrs; - return rectPath(a.x, a.y, a.width, a.height); - }, - text: function (el) { - var bbox = el._getBBox(); - return rectPath(bbox.x, bbox.y, bbox.width, bbox.height); - }, - set : function(el) { - var bbox = el._getBBox(); - return rectPath(bbox.x, bbox.y, bbox.width, bbox.height); - } - }, - /*\ - * Raphael.mapPath - [ method ] - ** - * Transform the path string with given matrix. - > Parameters - - path (string) path string - - matrix (object) see @Matrix - = (string) transformed path string - \*/ - mapPath = R.mapPath = function (path, matrix) { - if (!matrix) { - return path; - } - var x, y, i, j, ii, jj, pathi; - path = path2curve(path); - for (i = 0, ii = path.length; i < ii; i++) { - pathi = path[i]; - for (j = 1, jj = pathi.length; j < jj; j += 2) { - x = matrix.x(pathi[j], pathi[j + 1]); - y = matrix.y(pathi[j], pathi[j + 1]); - pathi[j] = x; - pathi[j + 1] = y; - } - } - return path; - }; - - R._g = g; - /*\ - * Raphael.type - [ property (string) ] - ** - * Can be “SVG”, “VML” or empty, depending on browser support. - \*/ - R.type = (g.win.SVGAngle || g.doc.implementation.hasFeature("http://www.w3.org/TR/SVG11/feature#BasicStructure", "1.1") ? "SVG" : "VML"); - if (R.type == "VML") { - var d = g.doc.createElement("div"), - b; - d.innerHTML = '<v:shape adj="1"/>'; - b = d.firstChild; - b.style.behavior = "url(#default#VML)"; - if (!(b && typeof b.adj == "object")) { - return (R.type = E); - } - d = null; - } - /*\ - * Raphael.svg - [ property (boolean) ] - ** - * `true` if browser supports SVG. - \*/ - /*\ - * Raphael.vml - [ property (boolean) ] - ** - * `true` if browser supports VML. - \*/ - R.svg = !(R.vml = R.type == "VML"); - R._Paper = Paper; - /*\ - * Raphael.fn - [ property (object) ] - ** - * You can add your own method to the canvas. For example if you want to draw a pie chart, - * you can create your own pie chart function and ship it as a Raphaël plugin. To do this - * you need to extend the `Raphael.fn` object. You should modify the `fn` object before a - * Raphaël instance is created, otherwise it will take no effect. Please note that the - * ability for namespaced plugins was removed in Raphael 2.0. It is up to the plugin to - * ensure any namespacing ensures proper context. - > Usage - | Raphael.fn.arrow = function (x1, y1, x2, y2, size) { - | return this.path( ... ); - | }; - | // or create namespace - | Raphael.fn.mystuff = { - | arrow: function () {…}, - | star: function () {…}, - | // etc… - | }; - | var paper = Raphael(10, 10, 630, 480); - | // then use it - | paper.arrow(10, 10, 30, 30, 5).attr({fill: "#f00"}); - | paper.mystuff.arrow(); - | paper.mystuff.star(); - \*/ - R.fn = paperproto = Paper.prototype = R.prototype; - R._id = 0; - /*\ - * Raphael.is - [ method ] - ** - * Handful of replacements for `typeof` operator. - > Parameters - - o (…) any object or primitive - - type (string) name of the type, i.e. “string”, “function”, “number”, etc. - = (boolean) is given value is of given type - \*/ - R.is = function (o, type) { - type = lowerCase.call(type); - if (type == "finite") { - return !isnan[has](+o); - } - if (type == "array") { - return o instanceof Array; - } - return (type == "null" && o === null) || - (type == typeof o && o !== null) || - (type == "object" && o === Object(o)) || - (type == "array" && Array.isArray && Array.isArray(o)) || - objectToString.call(o).slice(8, -1).toLowerCase() == type; - }; - - function clone(obj) { - if (typeof obj == "function" || Object(obj) !== obj) { - return obj; - } - var res = new obj.constructor; - for (var key in obj) if (obj[has](key)) { - res[key] = clone(obj[key]); - } - return res; - } - - /*\ - * Raphael.angle - [ method ] - ** - * Returns angle between two or three points - > Parameters - - x1 (number) x coord of first point - - y1 (number) y coord of first point - - x2 (number) x coord of second point - - y2 (number) y coord of second point - - x3 (number) #optional x coord of third point - - y3 (number) #optional y coord of third point - = (number) angle in degrees. - \*/ - R.angle = function (x1, y1, x2, y2, x3, y3) { - if (x3 == null) { - var x = x1 - x2, - y = y1 - y2; - if (!x && !y) { - return 0; - } - return (180 + math.atan2(-y, -x) * 180 / PI + 360) % 360; - } else { - return R.angle(x1, y1, x3, y3) - R.angle(x2, y2, x3, y3); - } - }; - /*\ - * Raphael.rad - [ method ] - ** - * Transform angle to radians - > Parameters - - deg (number) angle in degrees - = (number) angle in radians. - \*/ - R.rad = function (deg) { - return deg % 360 * PI / 180; - }; - /*\ - * Raphael.deg - [ method ] - ** - * Transform angle to degrees - > Parameters - - rad (number) angle in radians - = (number) angle in degrees. - \*/ - R.deg = function (rad) { - return Math.round ((rad * 180 / PI% 360)* 1000) / 1000; - }; - /*\ - * Raphael.snapTo - [ method ] - ** - * Snaps given value to given grid. - > Parameters - - values (array|number) given array of values or step of the grid - - value (number) value to adjust - - tolerance (number) #optional tolerance for snapping. Default is `10`. - = (number) adjusted value. - \*/ - R.snapTo = function (values, value, tolerance) { - tolerance = R.is(tolerance, "finite") ? tolerance : 10; - if (R.is(values, array)) { - var i = values.length; - while (i--) if (abs(values[i] - value) <= tolerance) { - return values[i]; - } - } else { - values = +values; - var rem = value % values; - if (rem < tolerance) { - return value - rem; - } - if (rem > values - tolerance) { - return value - rem + values; - } - } - return value; - }; - - /*\ - * Raphael.createUUID - [ method ] - ** - * Returns RFC4122, version 4 ID - \*/ - var createUUID = R.createUUID = (function (uuidRegEx, uuidReplacer) { - return function () { - return "xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(uuidRegEx, uuidReplacer).toUpperCase(); - }; - })(/[xy]/g, function (c) { - var r = math.random() * 16 | 0, - v = c == "x" ? r : (r & 3 | 8); - return v.toString(16); - }); - - /*\ - * Raphael.setWindow - [ method ] - ** - * Used when you need to draw in `&lt;iframe>`. Switched window to the iframe one. - > Parameters - - newwin (window) new window object - \*/ - R.setWindow = function (newwin) { - eve("raphael.setWindow", R, g.win, newwin); - g.win = newwin; - g.doc = g.win.document; - if (R._engine.initWin) { - R._engine.initWin(g.win); - } - }; - var toHex = function (color) { - if (R.vml) { - // http://dean.edwards.name/weblog/2009/10/convert-any-colour-value-to-hex-in-msie/ - var trim = /^\s+|\s+$/g; - var bod; - try { - var docum = new ActiveXObject("htmlfile"); - docum.write("<body>"); - docum.close(); - bod = docum.body; - } catch(e) { - bod = createPopup().document.body; - } - var range = bod.createTextRange(); - toHex = cacher(function (color) { - try { - bod.style.color = Str(color).replace(trim, E); - var value = range.queryCommandValue("ForeColor"); - value = ((value & 255) << 16) | (value & 65280) | ((value & 16711680) >>> 16); - return "#" + ("000000" + value.toString(16)).slice(-6); - } catch(e) { - return "none"; - } - }); - } else { - var i = g.doc.createElement("i"); - i.title = "Rapha\xebl Colour Picker"; - i.style.display = "none"; - g.doc.body.appendChild(i); - toHex = cacher(function (color) { - i.style.color = color; - return g.doc.defaultView.getComputedStyle(i, E).getPropertyValue("color"); - }); - } - return toHex(color); - }, - hsbtoString = function () { - return "hsb(" + [this.h, this.s, this.b] + ")"; - }, - hsltoString = function () { - return "hsl(" + [this.h, this.s, this.l] + ")"; - }, - rgbtoString = function () { - return this.hex; - }, - prepareRGB = function (r, g, b) { - if (g == null && R.is(r, "object") && "r" in r && "g" in r && "b" in r) { - b = r.b; - g = r.g; - r = r.r; - } - if (g == null && R.is(r, string)) { - var clr = R.getRGB(r); - r = clr.r; - g = clr.g; - b = clr.b; - } - if (r > 1 || g > 1 || b > 1) { - r /= 255; - g /= 255; - b /= 255; - } - - return [r, g, b]; - }, - packageRGB = function (r, g, b, o) { - r *= 255; - g *= 255; - b *= 255; - var rgb = { - r: r, - g: g, - b: b, - hex: R.rgb(r, g, b), - toString: rgbtoString - }; - R.is(o, "finite") && (rgb.opacity = o); - return rgb; - }; - - /*\ - * Raphael.color - [ method ] - ** - * Parses the color string and returns object with all values for the given color. - > Parameters - - clr (string) color string in one of the supported formats (see @Raphael.getRGB) - = (object) Combined RGB & HSB object in format: - o { - o r (number) red, - o g (number) green, - o b (number) blue, - o hex (string) color in HTML/CSS format: #••••••, - o error (boolean) `true` if string can’t be parsed, - o h (number) hue, - o s (number) saturation, - o v (number) value (brightness), - o l (number) lightness - o } - \*/ - R.color = function (clr) { - var rgb; - if (R.is(clr, "object") && "h" in clr && "s" in clr && "b" in clr) { - rgb = R.hsb2rgb(clr); - clr.r = rgb.r; - clr.g = rgb.g; - clr.b = rgb.b; - clr.hex = rgb.hex; - } else if (R.is(clr, "object") && "h" in clr && "s" in clr && "l" in clr) { - rgb = R.hsl2rgb(clr); - clr.r = rgb.r; - clr.g = rgb.g; - clr.b = rgb.b; - clr.hex = rgb.hex; - } else { - if (R.is(clr, "string")) { - clr = R.getRGB(clr); - } - if (R.is(clr, "object") && "r" in clr && "g" in clr && "b" in clr) { - rgb = R.rgb2hsl(clr); - clr.h = rgb.h; - clr.s = rgb.s; - clr.l = rgb.l; - rgb = R.rgb2hsb(clr); - clr.v = rgb.b; - } else { - clr = {hex: "none"}; - clr.r = clr.g = clr.b = clr.h = clr.s = clr.v = clr.l = -1; - } - } - clr.toString = rgbtoString; - return clr; - }; - /*\ - * Raphael.hsb2rgb - [ method ] - ** - * Converts HSB values to RGB object. - > Parameters - - h (number) hue - - s (number) saturation - - v (number) value or brightness - = (object) RGB object in format: - o { - o r (number) red, - o g (number) green, - o b (number) blue, - o hex (string) color in HTML/CSS format: #•••••• - o } - \*/ - R.hsb2rgb = function (h, s, v, o) { - if (this.is(h, "object") && "h" in h && "s" in h && "b" in h) { - v = h.b; - s = h.s; - o = h.o; - h = h.h; - } - h *= 360; - var R, G, B, X, C; - h = (h % 360) / 60; - C = v * s; - X = C * (1 - abs(h % 2 - 1)); - R = G = B = v - C; - - h = ~~h; - R += [C, X, 0, 0, X, C][h]; - G += [X, C, C, X, 0, 0][h]; - B += [0, 0, X, C, C, X][h]; - return packageRGB(R, G, B, o); - }; - /*\ - * Raphael.hsl2rgb - [ method ] - ** - * Converts HSL values to RGB object. - > Parameters - - h (number) hue - - s (number) saturation - - l (number) luminosity - = (object) RGB object in format: - o { - o r (number) red, - o g (number) green, - o b (number) blue, - o hex (string) color in HTML/CSS format: #•••••• - o } - \*/ - R.hsl2rgb = function (h, s, l, o) { - if (this.is(h, "object") && "h" in h && "s" in h && "l" in h) { - l = h.l; - s = h.s; - h = h.h; - } - if (h > 1 || s > 1 || l > 1) { - h /= 360; - s /= 100; - l /= 100; - } - h *= 360; - var R, G, B, X, C; - h = (h % 360) / 60; - C = 2 * s * (l < .5 ? l : 1 - l); - X = C * (1 - abs(h % 2 - 1)); - R = G = B = l - C / 2; - - h = ~~h; - R += [C, X, 0, 0, X, C][h]; - G += [X, C, C, X, 0, 0][h]; - B += [0, 0, X, C, C, X][h]; - return packageRGB(R, G, B, o); - }; - /*\ - * Raphael.rgb2hsb - [ method ] - ** - * Converts RGB values to HSB object. - > Parameters - - r (number) red - - g (number) green - - b (number) blue - = (object) HSB object in format: - o { - o h (number) hue - o s (number) saturation - o b (number) brightness - o } - \*/ - R.rgb2hsb = function (r, g, b) { - b = prepareRGB(r, g, b); - r = b[0]; - g = b[1]; - b = b[2]; - - var H, S, V, C; - V = mmax(r, g, b); - C = V - mmin(r, g, b); - H = (C == 0 ? null : - V == r ? (g - b) / C : - V == g ? (b - r) / C + 2 : - (r - g) / C + 4 - ); - H = ((H + 360) % 6) * 60 / 360; - S = C == 0 ? 0 : C / V; - return {h: H, s: S, b: V, toString: hsbtoString}; - }; - /*\ - * Raphael.rgb2hsl - [ method ] - ** - * Converts RGB values to HSL object. - > Parameters - - r (number) red - - g (number) green - - b (number) blue - = (object) HSL object in format: - o { - o h (number) hue - o s (number) saturation - o l (number) luminosity - o } - \*/ - R.rgb2hsl = function (r, g, b) { - b = prepareRGB(r, g, b); - r = b[0]; - g = b[1]; - b = b[2]; - - var H, S, L, M, m, C; - M = mmax(r, g, b); - m = mmin(r, g, b); - C = M - m; - H = (C == 0 ? null : - M == r ? (g - b) / C : - M == g ? (b - r) / C + 2 : - (r - g) / C + 4); - H = ((H + 360) % 6) * 60 / 360; - L = (M + m) / 2; - S = (C == 0 ? 0 : - L < .5 ? C / (2 * L) : - C / (2 - 2 * L)); - return {h: H, s: S, l: L, toString: hsltoString}; - }; - R._path2string = function () { - return this.join(",").replace(p2s, "$1"); - }; - function repush(array, item) { - for (var i = 0, ii = array.length; i < ii; i++) if (array[i] === item) { - return array.push(array.splice(i, 1)[0]); - } - } - function cacher(f, scope, postprocessor) { - function newf() { - var arg = Array.prototype.slice.call(arguments, 0), - args = arg.join("\u2400"), - cache = newf.cache = newf.cache || {}, - count = newf.count = newf.count || []; - if (cache[has](args)) { - repush(count, args); - return postprocessor ? postprocessor(cache[args]) : cache[args]; - } - count.length >= 1e3 && delete cache[count.shift()]; - count.push(args); - cache[args] = f[apply](scope, arg); - return postprocessor ? postprocessor(cache[args]) : cache[args]; - } - return newf; - } - - var preload = R._preload = function (src, f) { - var img = g.doc.createElement("img"); - img.style.cssText = "position:absolute;left:-9999em;top:-9999em"; - img.onload = function () { - f.call(this); - this.onload = null; - g.doc.body.removeChild(this); - }; - img.onerror = function () { - g.doc.body.removeChild(this); - }; - g.doc.body.appendChild(img); - img.src = src; - }; - - function clrToString() { - return this.hex; - } - - /*\ - * Raphael.getRGB - [ method ] - ** - * Parses colour string as RGB object - > Parameters - - colour (string) colour string in one of formats: - # <ul> - # <li>Colour name (“<code>red</code>”, “<code>green</code>”, “<code>cornflowerblue</code>”, etc)</li> - # <li>#••• — shortened HTML colour: (“<code>#000</code>”, “<code>#fc0</code>”, etc)</li> - # <li>#•••••• — full length HTML colour: (“<code>#000000</code>”, “<code>#bd2300</code>”)</li> - # <li>rgb(•••, •••, •••) — red, green and blue channels’ values: (“<code>rgb(200,&nbsp;100,&nbsp;0)</code>”)</li> - # <li>rgb(•••%, •••%, •••%) — same as above, but in %: (“<code>rgb(100%,&nbsp;175%,&nbsp;0%)</code>”)</li> - # <li>hsb(•••, •••, •••) — hue, saturation and brightness values: (“<code>hsb(0.5,&nbsp;0.25,&nbsp;1)</code>”)</li> - # <li>hsb(•••%, •••%, •••%) — same as above, but in %</li> - # <li>hsl(•••, •••, •••) — same as hsb</li> - # <li>hsl(•••%, •••%, •••%) — same as hsb</li> - # </ul> - = (object) RGB object in format: - o { - o r (number) red, - o g (number) green, - o b (number) blue - o hex (string) color in HTML/CSS format: #••••••, - o error (boolean) true if string can’t be parsed - o } - \*/ - R.getRGB = cacher(function (colour) { - if (!colour || !!((colour = Str(colour)).indexOf("-") + 1)) { - return {r: -1, g: -1, b: -1, hex: "none", error: 1, toString: clrToString}; - } - if (colour == "none") { - return {r: -1, g: -1, b: -1, hex: "none", toString: clrToString}; - } - !(hsrg[has](colour.toLowerCase().substring(0, 2)) || colour.charAt() == "#") && (colour = toHex(colour)); - var res, - red, - green, - blue, - opacity, - t, - values, - rgb = colour.match(colourRegExp); - if (rgb) { - if (rgb[2]) { - blue = toInt(rgb[2].substring(5), 16); - green = toInt(rgb[2].substring(3, 5), 16); - red = toInt(rgb[2].substring(1, 3), 16); - } - if (rgb[3]) { - blue = toInt((t = rgb[3].charAt(3)) + t, 16); - green = toInt((t = rgb[3].charAt(2)) + t, 16); - red = toInt((t = rgb[3].charAt(1)) + t, 16); - } - if (rgb[4]) { - values = rgb[4][split](commaSpaces); - red = toFloat(values[0]); - values[0].slice(-1) == "%" && (red *= 2.55); - green = toFloat(values[1]); - values[1].slice(-1) == "%" && (green *= 2.55); - blue = toFloat(values[2]); - values[2].slice(-1) == "%" && (blue *= 2.55); - rgb[1].toLowerCase().slice(0, 4) == "rgba" && (opacity = toFloat(values[3])); - values[3] && values[3].slice(-1) == "%" && (opacity /= 100); - } - if (rgb[5]) { - values = rgb[5][split](commaSpaces); - red = toFloat(values[0]); - values[0].slice(-1) == "%" && (red *= 2.55); - green = toFloat(values[1]); - values[1].slice(-1) == "%" && (green *= 2.55); - blue = toFloat(values[2]); - values[2].slice(-1) == "%" && (blue *= 2.55); - (values[0].slice(-3) == "deg" || values[0].slice(-1) == "\xb0") && (red /= 360); - rgb[1].toLowerCase().slice(0, 4) == "hsba" && (opacity = toFloat(values[3])); - values[3] && values[3].slice(-1) == "%" && (opacity /= 100); - return R.hsb2rgb(red, green, blue, opacity); - } - if (rgb[6]) { - values = rgb[6][split](commaSpaces); - red = toFloat(values[0]); - values[0].slice(-1) == "%" && (red *= 2.55); - green = toFloat(values[1]); - values[1].slice(-1) == "%" && (green *= 2.55); - blue = toFloat(values[2]); - values[2].slice(-1) == "%" && (blue *= 2.55); - (values[0].slice(-3) == "deg" || values[0].slice(-1) == "\xb0") && (red /= 360); - rgb[1].toLowerCase().slice(0, 4) == "hsla" && (opacity = toFloat(values[3])); - values[3] && values[3].slice(-1) == "%" && (opacity /= 100); - return R.hsl2rgb(red, green, blue, opacity); - } - rgb = {r: red, g: green, b: blue, toString: clrToString}; - rgb.hex = "#" + (16777216 | blue | (green << 8) | (red << 16)).toString(16).slice(1); - R.is(opacity, "finite") && (rgb.opacity = opacity); - return rgb; - } - return {r: -1, g: -1, b: -1, hex: "none", error: 1, toString: clrToString}; - }, R); - /*\ - * Raphael.hsb - [ method ] - ** - * Converts HSB values to hex representation of the colour. - > Parameters - - h (number) hue - - s (number) saturation - - b (number) value or brightness - = (string) hex representation of the colour. - \*/ - R.hsb = cacher(function (h, s, b) { - return R.hsb2rgb(h, s, b).hex; - }); - /*\ - * Raphael.hsl - [ method ] - ** - * Converts HSL values to hex representation of the colour. - > Parameters - - h (number) hue - - s (number) saturation - - l (number) luminosity - = (string) hex representation of the colour. - \*/ - R.hsl = cacher(function (h, s, l) { - return R.hsl2rgb(h, s, l).hex; - }); - /*\ - * Raphael.rgb - [ method ] - ** - * Converts RGB values to hex representation of the colour. - > Parameters - - r (number) red - - g (number) green - - b (number) blue - = (string) hex representation of the colour. - \*/ - R.rgb = cacher(function (r, g, b) { - function round(x) { return (x + 0.5) | 0; } - return "#" + (16777216 | round(b) | (round(g) << 8) | (round(r) << 16)).toString(16).slice(1); - }); - /*\ - * Raphael.getColor - [ method ] - ** - * On each call returns next colour in the spectrum. To reset it back to red call @Raphael.getColor.reset - > Parameters - - value (number) #optional brightness, default is `0.75` - = (string) hex representation of the colour. - \*/ - R.getColor = function (value) { - var start = this.getColor.start = this.getColor.start || {h: 0, s: 1, b: value || .75}, - rgb = this.hsb2rgb(start.h, start.s, start.b); - start.h += .075; - if (start.h > 1) { - start.h = 0; - start.s -= .2; - start.s <= 0 && (this.getColor.start = {h: 0, s: 1, b: start.b}); - } - return rgb.hex; - }; - /*\ - * Raphael.getColor.reset - [ method ] - ** - * Resets spectrum position for @Raphael.getColor back to red. - \*/ - R.getColor.reset = function () { - delete this.start; - }; - - // http://schepers.cc/getting-to-the-point - function catmullRom2bezier(crp, z) { - var d = []; - for (var i = 0, iLen = crp.length; iLen - 2 * !z > i; i += 2) { - var p = [ - {x: +crp[i - 2], y: +crp[i - 1]}, - {x: +crp[i], y: +crp[i + 1]}, - {x: +crp[i + 2], y: +crp[i + 3]}, - {x: +crp[i + 4], y: +crp[i + 5]} - ]; - if (z) { - if (!i) { - p[0] = {x: +crp[iLen - 2], y: +crp[iLen - 1]}; - } else if (iLen - 4 == i) { - p[3] = {x: +crp[0], y: +crp[1]}; - } else if (iLen - 2 == i) { - p[2] = {x: +crp[0], y: +crp[1]}; - p[3] = {x: +crp[2], y: +crp[3]}; - } - } else { - if (iLen - 4 == i) { - p[3] = p[2]; - } else if (!i) { - p[0] = {x: +crp[i], y: +crp[i + 1]}; - } - } - d.push(["C", - (-p[0].x + 6 * p[1].x + p[2].x) / 6, - (-p[0].y + 6 * p[1].y + p[2].y) / 6, - (p[1].x + 6 * p[2].x - p[3].x) / 6, - (p[1].y + 6*p[2].y - p[3].y) / 6, - p[2].x, - p[2].y - ]); - } - - return d; - } - /*\ - * Raphael.parsePathString - [ method ] - ** - * Utility method - ** - * Parses given path string into an array of arrays of path segments. - > Parameters - - pathString (string|array) path string or array of segments (in the last case it will be returned straight away) - = (array) array of segments. - \*/ - R.parsePathString = function (pathString) { - if (!pathString) { - return null; - } - var pth = paths(pathString); - if (pth.arr) { - return pathClone(pth.arr); - } - - var paramCounts = {a: 7, c: 6, h: 1, l: 2, m: 2, r: 4, q: 4, s: 4, t: 2, v: 1, z: 0}, - data = []; - if (R.is(pathString, array) && R.is(pathString[0], array)) { // rough assumption - data = pathClone(pathString); - } - if (!data.length) { - Str(pathString).replace(pathCommand, function (a, b, c) { - var params = [], - name = b.toLowerCase(); - c.replace(pathValues, function (a, b) { - b && params.push(+b); - }); - if (name == "m" && params.length > 2) { - data.push([b][concat](params.splice(0, 2))); - name = "l"; - b = b == "m" ? "l" : "L"; - } - if (name == "r") { - data.push([b][concat](params)); - } else while (params.length >= paramCounts[name]) { - data.push([b][concat](params.splice(0, paramCounts[name]))); - if (!paramCounts[name]) { - break; - } - } - }); - } - data.toString = R._path2string; - pth.arr = pathClone(data); - return data; - }; - /*\ - * Raphael.parseTransformString - [ method ] - ** - * Utility method - ** - * Parses given path string into an array of transformations. - > Parameters - - TString (string|array) transform string or array of transformations (in the last case it will be returned straight away) - = (array) array of transformations. - \*/ - R.parseTransformString = cacher(function (TString) { - if (!TString) { - return null; - } - var paramCounts = {r: 3, s: 4, t: 2, m: 6}, - data = []; - if (R.is(TString, array) && R.is(TString[0], array)) { // rough assumption - data = pathClone(TString); - } - if (!data.length) { - Str(TString).replace(tCommand, function (a, b, c) { - var params = [], - name = lowerCase.call(b); - c.replace(pathValues, function (a, b) { - b && params.push(+b); - }); - data.push([b][concat](params)); - }); - } - data.toString = R._path2string; - return data; - }); - // PATHS - var paths = function (ps) { - var p = paths.ps = paths.ps || {}; - if (p[ps]) { - p[ps].sleep = 100; - } else { - p[ps] = { - sleep: 100 - }; - } - setTimeout(function () { - for (var key in p) if (p[has](key) && key != ps) { - p[key].sleep--; - !p[key].sleep && delete p[key]; - } - }); - return p[ps]; - }; - /*\ - * Raphael.findDotsAtSegment - [ method ] - ** - * Utility method - ** - * Find dot coordinates on the given cubic bezier curve at the given t. - > Parameters - - p1x (number) x of the first point of the curve - - p1y (number) y of the first point of the curve - - c1x (number) x of the first anchor of the curve - - c1y (number) y of the first anchor of the curve - - c2x (number) x of the second anchor of the curve - - c2y (number) y of the second anchor of the curve - - p2x (number) x of the second point of the curve - - p2y (number) y of the second point of the curve - - t (number) position on the curve (0..1) - = (object) point information in format: - o { - o x: (number) x coordinate of the point - o y: (number) y coordinate of the point - o m: { - o x: (number) x coordinate of the left anchor - o y: (number) y coordinate of the left anchor - o } - o n: { - o x: (number) x coordinate of the right anchor - o y: (number) y coordinate of the right anchor - o } - o start: { - o x: (number) x coordinate of the start of the curve - o y: (number) y coordinate of the start of the curve - o } - o end: { - o x: (number) x coordinate of the end of the curve - o y: (number) y coordinate of the end of the curve - o } - o alpha: (number) angle of the curve derivative at the point - o } - \*/ - R.findDotsAtSegment = function (p1x, p1y, c1x, c1y, c2x, c2y, p2x, p2y, t) { - var t1 = 1 - t, - t13 = pow(t1, 3), - t12 = pow(t1, 2), - t2 = t * t, - t3 = t2 * t, - x = t13 * p1x + t12 * 3 * t * c1x + t1 * 3 * t * t * c2x + t3 * p2x, - y = t13 * p1y + t12 * 3 * t * c1y + t1 * 3 * t * t * c2y + t3 * p2y, - mx = p1x + 2 * t * (c1x - p1x) + t2 * (c2x - 2 * c1x + p1x), - my = p1y + 2 * t * (c1y - p1y) + t2 * (c2y - 2 * c1y + p1y), - nx = c1x + 2 * t * (c2x - c1x) + t2 * (p2x - 2 * c2x + c1x), - ny = c1y + 2 * t * (c2y - c1y) + t2 * (p2y - 2 * c2y + c1y), - ax = t1 * p1x + t * c1x, - ay = t1 * p1y + t * c1y, - cx = t1 * c2x + t * p2x, - cy = t1 * c2y + t * p2y, - alpha = (90 - math.atan2(mx - nx, my - ny) * 180 / PI); - (mx > nx || my < ny) && (alpha += 180); - return { - x: x, - y: y, - m: {x: mx, y: my}, - n: {x: nx, y: ny}, - start: {x: ax, y: ay}, - end: {x: cx, y: cy}, - alpha: alpha - }; - }; - /*\ - * Raphael.bezierBBox - [ method ] - ** - * Utility method - ** - * Return bounding box of a given cubic bezier curve - > Parameters - - p1x (number) x of the first point of the curve - - p1y (number) y of the first point of the curve - - c1x (number) x of the first anchor of the curve - - c1y (number) y of the first anchor of the curve - - c2x (number) x of the second anchor of the curve - - c2y (number) y of the second anchor of the curve - - p2x (number) x of the second point of the curve - - p2y (number) y of the second point of the curve - * or - - bez (array) array of six points for bezier curve - = (object) point information in format: - o { - o min: { - o x: (number) x coordinate of the left point - o y: (number) y coordinate of the top point - o } - o max: { - o x: (number) x coordinate of the right point - o y: (number) y coordinate of the bottom point - o } - o } - \*/ - R.bezierBBox = function (p1x, p1y, c1x, c1y, c2x, c2y, p2x, p2y) { - if (!R.is(p1x, "array")) { - p1x = [p1x, p1y, c1x, c1y, c2x, c2y, p2x, p2y]; - } - var bbox = curveDim.apply(null, p1x); - return { - x: bbox.min.x, - y: bbox.min.y, - x2: bbox.max.x, - y2: bbox.max.y, - width: bbox.max.x - bbox.min.x, - height: bbox.max.y - bbox.min.y - }; - }; - /*\ - * Raphael.isPointInsideBBox - [ method ] - ** - * Utility method - ** - * Returns `true` if given point is inside bounding boxes. - > Parameters - - bbox (string) bounding box - - x (string) x coordinate of the point - - y (string) y coordinate of the point - = (boolean) `true` if point inside - \*/ - R.isPointInsideBBox = function (bbox, x, y) { - return x >= bbox.x && x <= bbox.x2 && y >= bbox.y && y <= bbox.y2; - }; - /*\ - * Raphael.isBBoxIntersect - [ method ] - ** - * Utility method - ** - * Returns `true` if two bounding boxes intersect - > Parameters - - bbox1 (string) first bounding box - - bbox2 (string) second bounding box - = (boolean) `true` if they intersect - \*/ - R.isBBoxIntersect = function (bbox1, bbox2) { - var i = R.isPointInsideBBox; - return i(bbox2, bbox1.x, bbox1.y) - || i(bbox2, bbox1.x2, bbox1.y) - || i(bbox2, bbox1.x, bbox1.y2) - || i(bbox2, bbox1.x2, bbox1.y2) - || i(bbox1, bbox2.x, bbox2.y) - || i(bbox1, bbox2.x2, bbox2.y) - || i(bbox1, bbox2.x, bbox2.y2) - || i(bbox1, bbox2.x2, bbox2.y2) - || (bbox1.x < bbox2.x2 && bbox1.x > bbox2.x || bbox2.x < bbox1.x2 && bbox2.x > bbox1.x) - && (bbox1.y < bbox2.y2 && bbox1.y > bbox2.y || bbox2.y < bbox1.y2 && bbox2.y > bbox1.y); - }; - function base3(t, p1, p2, p3, p4) { - var t1 = -3 * p1 + 9 * p2 - 9 * p3 + 3 * p4, - t2 = t * t1 + 6 * p1 - 12 * p2 + 6 * p3; - return t * t2 - 3 * p1 + 3 * p2; - } - function bezlen(x1, y1, x2, y2, x3, y3, x4, y4, z) { - if (z == null) { - z = 1; - } - z = z > 1 ? 1 : z < 0 ? 0 : z; - var z2 = z / 2, - n = 12, - Tvalues = [-0.1252,0.1252,-0.3678,0.3678,-0.5873,0.5873,-0.7699,0.7699,-0.9041,0.9041,-0.9816,0.9816], - Cvalues = [0.2491,0.2491,0.2335,0.2335,0.2032,0.2032,0.1601,0.1601,0.1069,0.1069,0.0472,0.0472], - sum = 0; - for (var i = 0; i < n; i++) { - var ct = z2 * Tvalues[i] + z2, - xbase = base3(ct, x1, x2, x3, x4), - ybase = base3(ct, y1, y2, y3, y4), - comb = xbase * xbase + ybase * ybase; - sum += Cvalues[i] * math.sqrt(comb); - } - return z2 * sum; - } - function getTatLen(x1, y1, x2, y2, x3, y3, x4, y4, ll) { - if (ll < 0 || bezlen(x1, y1, x2, y2, x3, y3, x4, y4) < ll) { - return; - } - var t = 1, - step = t / 2, - t2 = t - step, - l, - e = .01; - l = bezlen(x1, y1, x2, y2, x3, y3, x4, y4, t2); - while (abs(l - ll) > e) { - step /= 2; - t2 += (l < ll ? 1 : -1) * step; - l = bezlen(x1, y1, x2, y2, x3, y3, x4, y4, t2); - } - return t2; - } - function intersect(x1, y1, x2, y2, x3, y3, x4, y4) { - if ( - mmax(x1, x2) < mmin(x3, x4) || - mmin(x1, x2) > mmax(x3, x4) || - mmax(y1, y2) < mmin(y3, y4) || - mmin(y1, y2) > mmax(y3, y4) - ) { - return; - } - var nx = (x1 * y2 - y1 * x2) * (x3 - x4) - (x1 - x2) * (x3 * y4 - y3 * x4), - ny = (x1 * y2 - y1 * x2) * (y3 - y4) - (y1 - y2) * (x3 * y4 - y3 * x4), - denominator = (x1 - x2) * (y3 - y4) - (y1 - y2) * (x3 - x4); - - if (!denominator) { - return; - } - var px = nx / denominator, - py = ny / denominator, - px2 = +px.toFixed(2), - py2 = +py.toFixed(2); - if ( - px2 < +mmin(x1, x2).toFixed(2) || - px2 > +mmax(x1, x2).toFixed(2) || - px2 < +mmin(x3, x4).toFixed(2) || - px2 > +mmax(x3, x4).toFixed(2) || - py2 < +mmin(y1, y2).toFixed(2) || - py2 > +mmax(y1, y2).toFixed(2) || - py2 < +mmin(y3, y4).toFixed(2) || - py2 > +mmax(y3, y4).toFixed(2) - ) { - return; - } - return {x: px, y: py}; - } - function inter(bez1, bez2) { - return interHelper(bez1, bez2); - } - function interCount(bez1, bez2) { - return interHelper(bez1, bez2, 1); - } - function interHelper(bez1, bez2, justCount) { - var bbox1 = R.bezierBBox(bez1), - bbox2 = R.bezierBBox(bez2); - if (!R.isBBoxIntersect(bbox1, bbox2)) { - return justCount ? 0 : []; - } - var l1 = bezlen.apply(0, bez1), - l2 = bezlen.apply(0, bez2), - n1 = mmax(~~(l1 / 5), 1), - n2 = mmax(~~(l2 / 5), 1), - dots1 = [], - dots2 = [], - xy = {}, - res = justCount ? 0 : []; - for (var i = 0; i < n1 + 1; i++) { - var p = R.findDotsAtSegment.apply(R, bez1.concat(i / n1)); - dots1.push({x: p.x, y: p.y, t: i / n1}); - } - for (i = 0; i < n2 + 1; i++) { - p = R.findDotsAtSegment.apply(R, bez2.concat(i / n2)); - dots2.push({x: p.x, y: p.y, t: i / n2}); - } - for (i = 0; i < n1; i++) { - for (var j = 0; j < n2; j++) { - var di = dots1[i], - di1 = dots1[i + 1], - dj = dots2[j], - dj1 = dots2[j + 1], - ci = abs(di1.x - di.x) < .001 ? "y" : "x", - cj = abs(dj1.x - dj.x) < .001 ? "y" : "x", - is = intersect(di.x, di.y, di1.x, di1.y, dj.x, dj.y, dj1.x, dj1.y); - if (is) { - if (xy[is.x.toFixed(4)] == is.y.toFixed(4)) { - continue; - } - xy[is.x.toFixed(4)] = is.y.toFixed(4); - var t1 = di.t + abs((is[ci] - di[ci]) / (di1[ci] - di[ci])) * (di1.t - di.t), - t2 = dj.t + abs((is[cj] - dj[cj]) / (dj1[cj] - dj[cj])) * (dj1.t - dj.t); - if (t1 >= 0 && t1 <= 1.001 && t2 >= 0 && t2 <= 1.001) { - if (justCount) { - res++; - } else { - res.push({ - x: is.x, - y: is.y, - t1: mmin(t1, 1), - t2: mmin(t2, 1) - }); - } - } - } - } - } - return res; - } - /*\ - * Raphael.pathIntersection - [ method ] - ** - * Utility method - ** - * Finds intersections of two paths - > Parameters - - path1 (string) path string - - path2 (string) path string - = (array) dots of intersection - o [ - o { - o x: (number) x coordinate of the point - o y: (number) y coordinate of the point - o t1: (number) t value for segment of path1 - o t2: (number) t value for segment of path2 - o segment1: (number) order number for segment of path1 - o segment2: (number) order number for segment of path2 - o bez1: (array) eight coordinates representing beziér curve for the segment of path1 - o bez2: (array) eight coordinates representing beziér curve for the segment of path2 - o } - o ] - \*/ - R.pathIntersection = function (path1, path2) { - return interPathHelper(path1, path2); - }; - R.pathIntersectionNumber = function (path1, path2) { - return interPathHelper(path1, path2, 1); - }; - function interPathHelper(path1, path2, justCount) { - path1 = R._path2curve(path1); - path2 = R._path2curve(path2); - var x1, y1, x2, y2, x1m, y1m, x2m, y2m, bez1, bez2, - res = justCount ? 0 : []; - for (var i = 0, ii = path1.length; i < ii; i++) { - var pi = path1[i]; - if (pi[0] == "M") { - x1 = x1m = pi[1]; - y1 = y1m = pi[2]; - } else { - if (pi[0] == "C") { - bez1 = [x1, y1].concat(pi.slice(1)); - x1 = bez1[6]; - y1 = bez1[7]; - } else { - bez1 = [x1, y1, x1, y1, x1m, y1m, x1m, y1m]; - x1 = x1m; - y1 = y1m; - } - for (var j = 0, jj = path2.length; j < jj; j++) { - var pj = path2[j]; - if (pj[0] == "M") { - x2 = x2m = pj[1]; - y2 = y2m = pj[2]; - } else { - if (pj[0] == "C") { - bez2 = [x2, y2].concat(pj.slice(1)); - x2 = bez2[6]; - y2 = bez2[7]; - } else { - bez2 = [x2, y2, x2, y2, x2m, y2m, x2m, y2m]; - x2 = x2m; - y2 = y2m; - } - var intr = interHelper(bez1, bez2, justCount); - if (justCount) { - res += intr; - } else { - for (var k = 0, kk = intr.length; k < kk; k++) { - intr[k].segment1 = i; - intr[k].segment2 = j; - intr[k].bez1 = bez1; - intr[k].bez2 = bez2; - } - res = res.concat(intr); - } - } - } - } - } - return res; - } - /*\ - * Raphael.isPointInsidePath - [ method ] - ** - * Utility method - ** - * Returns `true` if given point is inside a given closed path. - > Parameters - - path (string) path string - - x (number) x of the point - - y (number) y of the point - = (boolean) true, if point is inside the path - \*/ - R.isPointInsidePath = function (path, x, y) { - var bbox = R.pathBBox(path); - return R.isPointInsideBBox(bbox, x, y) && - interPathHelper(path, [["M", x, y], ["H", bbox.x2 + 10]], 1) % 2 == 1; - }; - R._removedFactory = function (methodname) { - return function () { - eve("raphael.log", null, "Rapha\xebl: you are calling to method \u201c" + methodname + "\u201d of removed object", methodname); - }; - }; - /*\ - * Raphael.pathBBox - [ method ] - ** - * Utility method - ** - * Return bounding box of a given path - > Parameters - - path (string) path string - = (object) bounding box - o { - o x: (number) x coordinate of the left top point of the box - o y: (number) y coordinate of the left top point of the box - o x2: (number) x coordinate of the right bottom point of the box - o y2: (number) y coordinate of the right bottom point of the box - o width: (number) width of the box - o height: (number) height of the box - o cx: (number) x coordinate of the center of the box - o cy: (number) y coordinate of the center of the box - o } - \*/ - var pathDimensions = R.pathBBox = function (path) { - var pth = paths(path); - if (pth.bbox) { - return clone(pth.bbox); - } - if (!path) { - return {x: 0, y: 0, width: 0, height: 0, x2: 0, y2: 0}; - } - path = path2curve(path); - var x = 0, - y = 0, - X = [], - Y = [], - p; - for (var i = 0, ii = path.length; i < ii; i++) { - p = path[i]; - if (p[0] == "M") { - x = p[1]; - y = p[2]; - X.push(x); - Y.push(y); - } else { - var dim = curveDim(x, y, p[1], p[2], p[3], p[4], p[5], p[6]); - X = X[concat](dim.min.x, dim.max.x); - Y = Y[concat](dim.min.y, dim.max.y); - x = p[5]; - y = p[6]; - } - } - var xmin = mmin[apply](0, X), - ymin = mmin[apply](0, Y), - xmax = mmax[apply](0, X), - ymax = mmax[apply](0, Y), - width = xmax - xmin, - height = ymax - ymin, - bb = { - x: xmin, - y: ymin, - x2: xmax, - y2: ymax, - width: width, - height: height, - cx: xmin + width / 2, - cy: ymin + height / 2 - }; - pth.bbox = clone(bb); - return bb; - }, - pathClone = function (pathArray) { - var res = clone(pathArray); - res.toString = R._path2string; - return res; - }, - pathToRelative = R._pathToRelative = function (pathArray) { - var pth = paths(pathArray); - if (pth.rel) { - return pathClone(pth.rel); - } - if (!R.is(pathArray, array) || !R.is(pathArray && pathArray[0], array)) { // rough assumption - pathArray = R.parsePathString(pathArray); - } - var res = [], - x = 0, - y = 0, - mx = 0, - my = 0, - start = 0; - if (pathArray[0][0] == "M") { - x = pathArray[0][1]; - y = pathArray[0][2]; - mx = x; - my = y; - start++; - res.push(["M", x, y]); - } - for (var i = start, ii = pathArray.length; i < ii; i++) { - var r = res[i] = [], - pa = pathArray[i]; - if (pa[0] != lowerCase.call(pa[0])) { - r[0] = lowerCase.call(pa[0]); - switch (r[0]) { - case "a": - r[1] = pa[1]; - r[2] = pa[2]; - r[3] = pa[3]; - r[4] = pa[4]; - r[5] = pa[5]; - r[6] = +(pa[6] - x).toFixed(3); - r[7] = +(pa[7] - y).toFixed(3); - break; - case "v": - r[1] = +(pa[1] - y).toFixed(3); - break; - case "m": - mx = pa[1]; - my = pa[2]; - default: - for (var j = 1, jj = pa.length; j < jj; j++) { - r[j] = +(pa[j] - ((j % 2) ? x : y)).toFixed(3); - } - } - } else { - r = res[i] = []; - if (pa[0] == "m") { - mx = pa[1] + x; - my = pa[2] + y; - } - for (var k = 0, kk = pa.length; k < kk; k++) { - res[i][k] = pa[k]; - } - } - var len = res[i].length; - switch (res[i][0]) { - case "z": - x = mx; - y = my; - break; - case "h": - x += +res[i][len - 1]; - break; - case "v": - y += +res[i][len - 1]; - break; - default: - x += +res[i][len - 2]; - y += +res[i][len - 1]; - } - } - res.toString = R._path2string; - pth.rel = pathClone(res); - return res; - }, - pathToAbsolute = R._pathToAbsolute = function (pathArray) { - var pth = paths(pathArray); - if (pth.abs) { - return pathClone(pth.abs); - } - if (!R.is(pathArray, array) || !R.is(pathArray && pathArray[0], array)) { // rough assumption - pathArray = R.parsePathString(pathArray); - } - if (!pathArray || !pathArray.length) { - return [["M", 0, 0]]; - } - var res = [], - x = 0, - y = 0, - mx = 0, - my = 0, - start = 0; - if (pathArray[0][0] == "M") { - x = +pathArray[0][1]; - y = +pathArray[0][2]; - mx = x; - my = y; - start++; - res[0] = ["M", x, y]; - } - var crz = pathArray.length == 3 && pathArray[0][0] == "M" && pathArray[1][0].toUpperCase() == "R" && pathArray[2][0].toUpperCase() == "Z"; - for (var r, pa, i = start, ii = pathArray.length; i < ii; i++) { - res.push(r = []); - pa = pathArray[i]; - if (pa[0] != upperCase.call(pa[0])) { - r[0] = upperCase.call(pa[0]); - switch (r[0]) { - case "A": - r[1] = pa[1]; - r[2] = pa[2]; - r[3] = pa[3]; - r[4] = pa[4]; - r[5] = pa[5]; - r[6] = +(pa[6] + x); - r[7] = +(pa[7] + y); - break; - case "V": - r[1] = +pa[1] + y; - break; - case "H": - r[1] = +pa[1] + x; - break; - case "R": - var dots = [x, y][concat](pa.slice(1)); - for (var j = 2, jj = dots.length; j < jj; j++) { - dots[j] = +dots[j] + x; - dots[++j] = +dots[j] + y; - } - res.pop(); - res = res[concat](catmullRom2bezier(dots, crz)); - break; - case "M": - mx = +pa[1] + x; - my = +pa[2] + y; - default: - for (j = 1, jj = pa.length; j < jj; j++) { - r[j] = +pa[j] + ((j % 2) ? x : y); - } - } - } else if (pa[0] == "R") { - dots = [x, y][concat](pa.slice(1)); - res.pop(); - res = res[concat](catmullRom2bezier(dots, crz)); - r = ["R"][concat](pa.slice(-2)); - } else { - for (var k = 0, kk = pa.length; k < kk; k++) { - r[k] = pa[k]; - } - } - switch (r[0]) { - case "Z": - x = mx; - y = my; - break; - case "H": - x = r[1]; - break; - case "V": - y = r[1]; - break; - case "M": - mx = r[r.length - 2]; - my = r[r.length - 1]; - default: - x = r[r.length - 2]; - y = r[r.length - 1]; - } - } - res.toString = R._path2string; - pth.abs = pathClone(res); - return res; - }, - l2c = function (x1, y1, x2, y2) { - return [x1, y1, x2, y2, x2, y2]; - }, - q2c = function (x1, y1, ax, ay, x2, y2) { - var _13 = 1 / 3, - _23 = 2 / 3; - return [ - _13 * x1 + _23 * ax, - _13 * y1 + _23 * ay, - _13 * x2 + _23 * ax, - _13 * y2 + _23 * ay, - x2, - y2 - ]; - }, - a2c = function (x1, y1, rx, ry, angle, large_arc_flag, sweep_flag, x2, y2, recursive) { - // for more information of where this math came from visit: - // http://www.w3.org/TR/SVG11/implnote.html#ArcImplementationNotes - var _120 = PI * 120 / 180, - rad = PI / 180 * (+angle || 0), - res = [], - xy, - rotate = cacher(function (x, y, rad) { - var X = x * math.cos(rad) - y * math.sin(rad), - Y = x * math.sin(rad) + y * math.cos(rad); - return {x: X, y: Y}; - }); - if (!recursive) { - xy = rotate(x1, y1, -rad); - x1 = xy.x; - y1 = xy.y; - xy = rotate(x2, y2, -rad); - x2 = xy.x; - y2 = xy.y; - var cos = math.cos(PI / 180 * angle), - sin = math.sin(PI / 180 * angle), - x = (x1 - x2) / 2, - y = (y1 - y2) / 2; - var h = (x * x) / (rx * rx) + (y * y) / (ry * ry); - if (h > 1) { - h = math.sqrt(h); - rx = h * rx; - ry = h * ry; - } - var rx2 = rx * rx, - ry2 = ry * ry, - k = (large_arc_flag == sweep_flag ? -1 : 1) * - math.sqrt(abs((rx2 * ry2 - rx2 * y * y - ry2 * x * x) / (rx2 * y * y + ry2 * x * x))), - cx = k * rx * y / ry + (x1 + x2) / 2, - cy = k * -ry * x / rx + (y1 + y2) / 2, - f1 = math.asin(((y1 - cy) / ry).toFixed(9)), - f2 = math.asin(((y2 - cy) / ry).toFixed(9)); - - f1 = x1 < cx ? PI - f1 : f1; - f2 = x2 < cx ? PI - f2 : f2; - f1 < 0 && (f1 = PI * 2 + f1); - f2 < 0 && (f2 = PI * 2 + f2); - if (sweep_flag && f1 > f2) { - f1 = f1 - PI * 2; - } - if (!sweep_flag && f2 > f1) { - f2 = f2 - PI * 2; - } - } else { - f1 = recursive[0]; - f2 = recursive[1]; - cx = recursive[2]; - cy = recursive[3]; - } - var df = f2 - f1; - if (abs(df) > _120) { - var f2old = f2, - x2old = x2, - y2old = y2; - f2 = f1 + _120 * (sweep_flag && f2 > f1 ? 1 : -1); - x2 = cx + rx * math.cos(f2); - y2 = cy + ry * math.sin(f2); - res = a2c(x2, y2, rx, ry, angle, 0, sweep_flag, x2old, y2old, [f2, f2old, cx, cy]); - } - df = f2 - f1; - var c1 = math.cos(f1), - s1 = math.sin(f1), - c2 = math.cos(f2), - s2 = math.sin(f2), - t = math.tan(df / 4), - hx = 4 / 3 * rx * t, - hy = 4 / 3 * ry * t, - m1 = [x1, y1], - m2 = [x1 + hx * s1, y1 - hy * c1], - m3 = [x2 + hx * s2, y2 - hy * c2], - m4 = [x2, y2]; - m2[0] = 2 * m1[0] - m2[0]; - m2[1] = 2 * m1[1] - m2[1]; - if (recursive) { - return [m2, m3, m4][concat](res); - } else { - res = [m2, m3, m4][concat](res).join()[split](","); - var newres = []; - for (var i = 0, ii = res.length; i < ii; i++) { - newres[i] = i % 2 ? rotate(res[i - 1], res[i], rad).y : rotate(res[i], res[i + 1], rad).x; - } - return newres; - } - }, - findDotAtSegment = function (p1x, p1y, c1x, c1y, c2x, c2y, p2x, p2y, t) { - var t1 = 1 - t; - return { - x: pow(t1, 3) * p1x + pow(t1, 2) * 3 * t * c1x + t1 * 3 * t * t * c2x + pow(t, 3) * p2x, - y: pow(t1, 3) * p1y + pow(t1, 2) * 3 * t * c1y + t1 * 3 * t * t * c2y + pow(t, 3) * p2y - }; - }, - curveDim = cacher(function (p1x, p1y, c1x, c1y, c2x, c2y, p2x, p2y) { - var a = (c2x - 2 * c1x + p1x) - (p2x - 2 * c2x + c1x), - b = 2 * (c1x - p1x) - 2 * (c2x - c1x), - c = p1x - c1x, - t1 = (-b + math.sqrt(b * b - 4 * a * c)) / 2 / a, - t2 = (-b - math.sqrt(b * b - 4 * a * c)) / 2 / a, - y = [p1y, p2y], - x = [p1x, p2x], - dot; - abs(t1) > "1e12" && (t1 = .5); - abs(t2) > "1e12" && (t2 = .5); - if (t1 > 0 && t1 < 1) { - dot = findDotAtSegment(p1x, p1y, c1x, c1y, c2x, c2y, p2x, p2y, t1); - x.push(dot.x); - y.push(dot.y); - } - if (t2 > 0 && t2 < 1) { - dot = findDotAtSegment(p1x, p1y, c1x, c1y, c2x, c2y, p2x, p2y, t2); - x.push(dot.x); - y.push(dot.y); - } - a = (c2y - 2 * c1y + p1y) - (p2y - 2 * c2y + c1y); - b = 2 * (c1y - p1y) - 2 * (c2y - c1y); - c = p1y - c1y; - t1 = (-b + math.sqrt(b * b - 4 * a * c)) / 2 / a; - t2 = (-b - math.sqrt(b * b - 4 * a * c)) / 2 / a; - abs(t1) > "1e12" && (t1 = .5); - abs(t2) > "1e12" && (t2 = .5); - if (t1 > 0 && t1 < 1) { - dot = findDotAtSegment(p1x, p1y, c1x, c1y, c2x, c2y, p2x, p2y, t1); - x.push(dot.x); - y.push(dot.y); - } - if (t2 > 0 && t2 < 1) { - dot = findDotAtSegment(p1x, p1y, c1x, c1y, c2x, c2y, p2x, p2y, t2); - x.push(dot.x); - y.push(dot.y); - } - return { - min: {x: mmin[apply](0, x), y: mmin[apply](0, y)}, - max: {x: mmax[apply](0, x), y: mmax[apply](0, y)} - }; - }), - path2curve = R._path2curve = cacher(function (path, path2) { - var pth = !path2 && paths(path); - if (!path2 && pth.curve) { - return pathClone(pth.curve); - } - var p = pathToAbsolute(path), - p2 = path2 && pathToAbsolute(path2), - attrs = {x: 0, y: 0, bx: 0, by: 0, X: 0, Y: 0, qx: null, qy: null}, - attrs2 = {x: 0, y: 0, bx: 0, by: 0, X: 0, Y: 0, qx: null, qy: null}, - processPath = function (path, d, pcom) { - var nx, ny, tq = {T:1, Q:1}; - if (!path) { - return ["C", d.x, d.y, d.x, d.y, d.x, d.y]; - } - !(path[0] in tq) && (d.qx = d.qy = null); - switch (path[0]) { - case "M": - d.X = path[1]; - d.Y = path[2]; - break; - case "A": - path = ["C"][concat](a2c[apply](0, [d.x, d.y][concat](path.slice(1)))); - break; - case "S": - if (pcom == "C" || pcom == "S") { // In "S" case we have to take into account, if the previous command is C/S. - nx = d.x * 2 - d.bx; // And reflect the previous - ny = d.y * 2 - d.by; // command's control point relative to the current point. - } - else { // or some else or nothing - nx = d.x; - ny = d.y; - } - path = ["C", nx, ny][concat](path.slice(1)); - break; - case "T": - if (pcom == "Q" || pcom == "T") { // In "T" case we have to take into account, if the previous command is Q/T. - d.qx = d.x * 2 - d.qx; // And make a reflection similar - d.qy = d.y * 2 - d.qy; // to case "S". - } - else { // or something else or nothing - d.qx = d.x; - d.qy = d.y; - } - path = ["C"][concat](q2c(d.x, d.y, d.qx, d.qy, path[1], path[2])); - break; - case "Q": - d.qx = path[1]; - d.qy = path[2]; - path = ["C"][concat](q2c(d.x, d.y, path[1], path[2], path[3], path[4])); - break; - case "L": - path = ["C"][concat](l2c(d.x, d.y, path[1], path[2])); - break; - case "H": - path = ["C"][concat](l2c(d.x, d.y, path[1], d.y)); - break; - case "V": - path = ["C"][concat](l2c(d.x, d.y, d.x, path[1])); - break; - case "Z": - path = ["C"][concat](l2c(d.x, d.y, d.X, d.Y)); - break; - } - return path; - }, - fixArc = function (pp, i) { - if (pp[i].length > 7) { - pp[i].shift(); - var pi = pp[i]; - while (pi.length) { - pcoms1[i]="A"; // if created multiple C:s, their original seg is saved - p2 && (pcoms2[i]="A"); // the same as above - pp.splice(i++, 0, ["C"][concat](pi.splice(0, 6))); - } - pp.splice(i, 1); - ii = mmax(p.length, p2 && p2.length || 0); - } - }, - fixM = function (path1, path2, a1, a2, i) { - if (path1 && path2 && path1[i][0] == "M" && path2[i][0] != "M") { - path2.splice(i, 0, ["M", a2.x, a2.y]); - a1.bx = 0; - a1.by = 0; - a1.x = path1[i][1]; - a1.y = path1[i][2]; - ii = mmax(p.length, p2 && p2.length || 0); - } - }, - pcoms1 = [], // path commands of original path p - pcoms2 = [], // path commands of original path p2 - pfirst = "", // temporary holder for original path command - pcom = ""; // holder for previous path command of original path - for (var i = 0, ii = mmax(p.length, p2 && p2.length || 0); i < ii; i++) { - p[i] && (pfirst = p[i][0]); // save current path command - - if (pfirst != "C") // C is not saved yet, because it may be result of conversion - { - pcoms1[i] = pfirst; // Save current path command - i && ( pcom = pcoms1[i-1]); // Get previous path command pcom - } - p[i] = processPath(p[i], attrs, pcom); // Previous path command is inputted to processPath - - if (pcoms1[i] != "A" && pfirst == "C") pcoms1[i] = "C"; // A is the only command - // which may produce multiple C:s - // so we have to make sure that C is also C in original path - - fixArc(p, i); // fixArc adds also the right amount of A:s to pcoms1 - - if (p2) { // the same procedures is done to p2 - p2[i] && (pfirst = p2[i][0]); - if (pfirst != "C") - { - pcoms2[i] = pfirst; - i && (pcom = pcoms2[i-1]); - } - p2[i] = processPath(p2[i], attrs2, pcom); - - if (pcoms2[i]!="A" && pfirst=="C") pcoms2[i]="C"; - - fixArc(p2, i); - } - fixM(p, p2, attrs, attrs2, i); - fixM(p2, p, attrs2, attrs, i); - var seg = p[i], - seg2 = p2 && p2[i], - seglen = seg.length, - seg2len = p2 && seg2.length; - attrs.x = seg[seglen - 2]; - attrs.y = seg[seglen - 1]; - attrs.bx = toFloat(seg[seglen - 4]) || attrs.x; - attrs.by = toFloat(seg[seglen - 3]) || attrs.y; - attrs2.bx = p2 && (toFloat(seg2[seg2len - 4]) || attrs2.x); - attrs2.by = p2 && (toFloat(seg2[seg2len - 3]) || attrs2.y); - attrs2.x = p2 && seg2[seg2len - 2]; - attrs2.y = p2 && seg2[seg2len - 1]; - } - if (!p2) { - pth.curve = pathClone(p); - } - return p2 ? [p, p2] : p; - }, null, pathClone), - parseDots = R._parseDots = cacher(function (gradient) { - var dots = []; - for (var i = 0, ii = gradient.length; i < ii; i++) { - var dot = {}, - par = gradient[i].match(/^([^:]*):?([\d\.]*)/); - dot.color = R.getRGB(par[1]); - if (dot.color.error) { - return null; - } - dot.opacity = dot.color.opacity; - dot.color = dot.color.hex; - par[2] && (dot.offset = par[2] + "%"); - dots.push(dot); - } - for (i = 1, ii = dots.length - 1; i < ii; i++) { - if (!dots[i].offset) { - var start = toFloat(dots[i - 1].offset || 0), - end = 0; - for (var j = i + 1; j < ii; j++) { - if (dots[j].offset) { - end = dots[j].offset; - break; - } - } - if (!end) { - end = 100; - j = ii; - } - end = toFloat(end); - var d = (end - start) / (j - i + 1); - for (; i < j; i++) { - start += d; - dots[i].offset = start + "%"; - } - } - } - return dots; - }), - tear = R._tear = function (el, paper) { - el == paper.top && (paper.top = el.prev); - el == paper.bottom && (paper.bottom = el.next); - el.next && (el.next.prev = el.prev); - el.prev && (el.prev.next = el.next); - }, - tofront = R._tofront = function (el, paper) { - if (paper.top === el) { - return; - } - tear(el, paper); - el.next = null; - el.prev = paper.top; - paper.top.next = el; - paper.top = el; - }, - toback = R._toback = function (el, paper) { - if (paper.bottom === el) { - return; - } - tear(el, paper); - el.next = paper.bottom; - el.prev = null; - paper.bottom.prev = el; - paper.bottom = el; - }, - insertafter = R._insertafter = function (el, el2, paper) { - tear(el, paper); - el2 == paper.top && (paper.top = el); - el2.next && (el2.next.prev = el); - el.next = el2.next; - el.prev = el2; - el2.next = el; - }, - insertbefore = R._insertbefore = function (el, el2, paper) { - tear(el, paper); - el2 == paper.bottom && (paper.bottom = el); - el2.prev && (el2.prev.next = el); - el.prev = el2.prev; - el2.prev = el; - el.next = el2; - }, - /*\ - * Raphael.toMatrix - [ method ] - ** - * Utility method - ** - * Returns matrix of transformations applied to a given path - > Parameters - - path (string) path string - - transform (string|array) transformation string - = (object) @Matrix - \*/ - toMatrix = R.toMatrix = function (path, transform) { - var bb = pathDimensions(path), - el = { - _: { - transform: E - }, - getBBox: function () { - return bb; - } - }; - extractTransform(el, transform); - return el.matrix; - }, - /*\ - * Raphael.transformPath - [ method ] - ** - * Utility method - ** - * Returns path transformed by a given transformation - > Parameters - - path (string) path string - - transform (string|array) transformation string - = (string) path - \*/ - transformPath = R.transformPath = function (path, transform) { - return mapPath(path, toMatrix(path, transform)); - }, - extractTransform = R._extractTransform = function (el, tstr) { - if (tstr == null) { - return el._.transform; - } - tstr = Str(tstr).replace(/\.{3}|\u2026/g, el._.transform || E); - var tdata = R.parseTransformString(tstr), - deg = 0, - dx = 0, - dy = 0, - sx = 1, - sy = 1, - _ = el._, - m = new Matrix; - _.transform = tdata || []; - if (tdata) { - for (var i = 0, ii = tdata.length; i < ii; i++) { - var t = tdata[i], - tlen = t.length, - command = Str(t[0]).toLowerCase(), - absolute = t[0] != command, - inver = absolute ? m.invert() : 0, - x1, - y1, - x2, - y2, - bb; - if (command == "t" && tlen == 3) { - if (absolute) { - x1 = inver.x(0, 0); - y1 = inver.y(0, 0); - x2 = inver.x(t[1], t[2]); - y2 = inver.y(t[1], t[2]); - m.translate(x2 - x1, y2 - y1); - } else { - m.translate(t[1], t[2]); - } - } else if (command == "r") { - if (tlen == 2) { - bb = bb || el.getBBox(1); - m.rotate(t[1], bb.x + bb.width / 2, bb.y + bb.height / 2); - deg += t[1]; - } else if (tlen == 4) { - if (absolute) { - x2 = inver.x(t[2], t[3]); - y2 = inver.y(t[2], t[3]); - m.rotate(t[1], x2, y2); - } else { - m.rotate(t[1], t[2], t[3]); - } - deg += t[1]; - } - } else if (command == "s") { - if (tlen == 2 || tlen == 3) { - bb = bb || el.getBBox(1); - m.scale(t[1], t[tlen - 1], bb.x + bb.width / 2, bb.y + bb.height / 2); - sx *= t[1]; - sy *= t[tlen - 1]; - } else if (tlen == 5) { - if (absolute) { - x2 = inver.x(t[3], t[4]); - y2 = inver.y(t[3], t[4]); - m.scale(t[1], t[2], x2, y2); - } else { - m.scale(t[1], t[2], t[3], t[4]); - } - sx *= t[1]; - sy *= t[2]; - } - } else if (command == "m" && tlen == 7) { - m.add(t[1], t[2], t[3], t[4], t[5], t[6]); - } - _.dirtyT = 1; - el.matrix = m; - } - } - - /*\ - * Element.matrix - [ property (object) ] - ** - * Keeps @Matrix object, which represents element transformation - \*/ - el.matrix = m; - - _.sx = sx; - _.sy = sy; - _.deg = deg; - _.dx = dx = m.e; - _.dy = dy = m.f; - - if (sx == 1 && sy == 1 && !deg && _.bbox) { - _.bbox.x += +dx; - _.bbox.y += +dy; - } else { - _.dirtyT = 1; - } - }, - getEmpty = function (item) { - var l = item[0]; - switch (l.toLowerCase()) { - case "t": return [l, 0, 0]; - case "m": return [l, 1, 0, 0, 1, 0, 0]; - case "r": if (item.length == 4) { - return [l, 0, item[2], item[3]]; - } else { - return [l, 0]; - } - case "s": if (item.length == 5) { - return [l, 1, 1, item[3], item[4]]; - } else if (item.length == 3) { - return [l, 1, 1]; - } else { - return [l, 1]; - } - } - }, - equaliseTransform = R._equaliseTransform = function (t1, t2) { - t2 = Str(t2).replace(/\.{3}|\u2026/g, t1); - t1 = R.parseTransformString(t1) || []; - t2 = R.parseTransformString(t2) || []; - var maxlength = mmax(t1.length, t2.length), - from = [], - to = [], - i = 0, j, jj, - tt1, tt2; - for (; i < maxlength; i++) { - tt1 = t1[i] || getEmpty(t2[i]); - tt2 = t2[i] || getEmpty(tt1); - if ((tt1[0] != tt2[0]) || - (tt1[0].toLowerCase() == "r" && (tt1[2] != tt2[2] || tt1[3] != tt2[3])) || - (tt1[0].toLowerCase() == "s" && (tt1[3] != tt2[3] || tt1[4] != tt2[4])) - ) { - return; - } - from[i] = []; - to[i] = []; - for (j = 0, jj = mmax(tt1.length, tt2.length); j < jj; j++) { - j in tt1 && (from[i][j] = tt1[j]); - j in tt2 && (to[i][j] = tt2[j]); - } - } - return { - from: from, - to: to - }; - }; - R._getContainer = function (x, y, w, h) { - var container; - container = h == null && !R.is(x, "object") ? g.doc.getElementById(x) : x; - if (container == null) { - return; - } - if (container.tagName) { - if (y == null) { - return { - container: container, - width: container.style.pixelWidth || container.offsetWidth, - height: container.style.pixelHeight || container.offsetHeight - }; - } else { - return { - container: container, - width: y, - height: w - }; - } - } - return { - container: 1, - x: x, - y: y, - width: w, - height: h - }; - }; - /*\ - * Raphael.pathToRelative - [ method ] - ** - * Utility method - ** - * Converts path to relative form - > Parameters - - pathString (string|array) path string or array of segments - = (array) array of segments. - \*/ - R.pathToRelative = pathToRelative; - R._engine = {}; - /*\ - * Raphael.path2curve - [ method ] - ** - * Utility method - ** - * Converts path to a new path where all segments are cubic bezier curves. - > Parameters - - pathString (string|array) path string or array of segments - = (array) array of segments. - \*/ - R.path2curve = path2curve; - /*\ - * Raphael.matrix - [ method ] - ** - * Utility method - ** - * Returns matrix based on given parameters. - > Parameters - - a (number) - - b (number) - - c (number) - - d (number) - - e (number) - - f (number) - = (object) @Matrix - \*/ - R.matrix = function (a, b, c, d, e, f) { - return new Matrix(a, b, c, d, e, f); - }; - function Matrix(a, b, c, d, e, f) { - if (a != null) { - this.a = +a; - this.b = +b; - this.c = +c; - this.d = +d; - this.e = +e; - this.f = +f; - } else { - this.a = 1; - this.b = 0; - this.c = 0; - this.d = 1; - this.e = 0; - this.f = 0; - } - } - (function (matrixproto) { - /*\ - * Matrix.add - [ method ] - ** - * Adds given matrix to existing one. - > Parameters - - a (number) - - b (number) - - c (number) - - d (number) - - e (number) - - f (number) - or - - matrix (object) @Matrix - \*/ - matrixproto.add = function (a, b, c, d, e, f) { - var out = [[], [], []], - m = [[this.a, this.c, this.e], [this.b, this.d, this.f], [0, 0, 1]], - matrix = [[a, c, e], [b, d, f], [0, 0, 1]], - x, y, z, res; - - if (a && a instanceof Matrix) { - matrix = [[a.a, a.c, a.e], [a.b, a.d, a.f], [0, 0, 1]]; - } - - for (x = 0; x < 3; x++) { - for (y = 0; y < 3; y++) { - res = 0; - for (z = 0; z < 3; z++) { - res += m[x][z] * matrix[z][y]; - } - out[x][y] = res; - } - } - this.a = out[0][0]; - this.b = out[1][0]; - this.c = out[0][1]; - this.d = out[1][1]; - this.e = out[0][2]; - this.f = out[1][2]; - }; - /*\ - * Matrix.invert - [ method ] - ** - * Returns inverted version of the matrix - = (object) @Matrix - \*/ - matrixproto.invert = function () { - var me = this, - x = me.a * me.d - me.b * me.c; - return new Matrix(me.d / x, -me.b / x, -me.c / x, me.a / x, (me.c * me.f - me.d * me.e) / x, (me.b * me.e - me.a * me.f) / x); - }; - /*\ - * Matrix.clone - [ method ] - ** - * Returns copy of the matrix - = (object) @Matrix - \*/ - matrixproto.clone = function () { - return new Matrix(this.a, this.b, this.c, this.d, this.e, this.f); - }; - /*\ - * Matrix.translate - [ method ] - ** - * Translate the matrix - > Parameters - - x (number) - - y (number) - \*/ - matrixproto.translate = function (x, y) { - this.add(1, 0, 0, 1, x, y); - }; - /*\ - * Matrix.scale - [ method ] - ** - * Scales the matrix - > Parameters - - x (number) - - y (number) #optional - - cx (number) #optional - - cy (number) #optional - \*/ - matrixproto.scale = function (x, y, cx, cy) { - y == null && (y = x); - (cx || cy) && this.add(1, 0, 0, 1, cx, cy); - this.add(x, 0, 0, y, 0, 0); - (cx || cy) && this.add(1, 0, 0, 1, -cx, -cy); - }; - /*\ - * Matrix.rotate - [ method ] - ** - * Rotates the matrix - > Parameters - - a (number) - - x (number) - - y (number) - \*/ - matrixproto.rotate = function (a, x, y) { - a = R.rad(a); - x = x || 0; - y = y || 0; - var cos = +math.cos(a).toFixed(9), - sin = +math.sin(a).toFixed(9); - this.add(cos, sin, -sin, cos, x, y); - this.add(1, 0, 0, 1, -x, -y); - }; - /*\ - * Matrix.x - [ method ] - ** - * Return x coordinate for given point after transformation described by the matrix. See also @Matrix.y - > Parameters - - x (number) - - y (number) - = (number) x - \*/ - matrixproto.x = function (x, y) { - return x * this.a + y * this.c + this.e; - }; - /*\ - * Matrix.y - [ method ] - ** - * Return y coordinate for given point after transformation described by the matrix. See also @Matrix.x - > Parameters - - x (number) - - y (number) - = (number) y - \*/ - matrixproto.y = function (x, y) { - return x * this.b + y * this.d + this.f; - }; - matrixproto.get = function (i) { - return +this[Str.fromCharCode(97 + i)].toFixed(4); - }; - matrixproto.toString = function () { - return R.svg ? - "matrix(" + [this.get(0), this.get(1), this.get(2), this.get(3), this.get(4), this.get(5)].join() + ")" : - [this.get(0), this.get(2), this.get(1), this.get(3), 0, 0].join(); - }; - matrixproto.toFilter = function () { - return "progid:DXImageTransform.Microsoft.Matrix(M11=" + this.get(0) + - ", M12=" + this.get(2) + ", M21=" + this.get(1) + ", M22=" + this.get(3) + - ", Dx=" + this.get(4) + ", Dy=" + this.get(5) + ", sizingmethod='auto expand')"; - }; - matrixproto.offset = function () { - return [this.e.toFixed(4), this.f.toFixed(4)]; - }; - function norm(a) { - return a[0] * a[0] + a[1] * a[1]; - } - function normalize(a) { - var mag = math.sqrt(norm(a)); - a[0] && (a[0] /= mag); - a[1] && (a[1] /= mag); - } - /*\ - * Matrix.split - [ method ] - ** - * Splits matrix into primitive transformations - = (object) in format: - o dx (number) translation by x - o dy (number) translation by y - o scalex (number) scale by x - o scaley (number) scale by y - o shear (number) shear - o rotate (number) rotation in deg - o isSimple (boolean) could it be represented via simple transformations - \*/ - matrixproto.split = function () { - var out = {}; - // translation - out.dx = this.e; - out.dy = this.f; - - // scale and shear - var row = [[this.a, this.c], [this.b, this.d]]; - out.scalex = math.sqrt(norm(row[0])); - normalize(row[0]); - - out.shear = row[0][0] * row[1][0] + row[0][1] * row[1][1]; - row[1] = [row[1][0] - row[0][0] * out.shear, row[1][1] - row[0][1] * out.shear]; - - out.scaley = math.sqrt(norm(row[1])); - normalize(row[1]); - out.shear /= out.scaley; - - // rotation - var sin = -row[0][1], - cos = row[1][1]; - if (cos < 0) { - out.rotate = R.deg(math.acos(cos)); - if (sin < 0) { - out.rotate = 360 - out.rotate; - } - } else { - out.rotate = R.deg(math.asin(sin)); - } - - out.isSimple = !+out.shear.toFixed(9) && (out.scalex.toFixed(9) == out.scaley.toFixed(9) || !out.rotate); - out.isSuperSimple = !+out.shear.toFixed(9) && out.scalex.toFixed(9) == out.scaley.toFixed(9) && !out.rotate; - out.noRotation = !+out.shear.toFixed(9) && !out.rotate; - return out; - }; - /*\ - * Matrix.toTransformString - [ method ] - ** - * Return transform string that represents given matrix - = (string) transform string - \*/ - matrixproto.toTransformString = function (shorter) { - var s = shorter || this[split](); - if (s.isSimple) { - s.scalex = +s.scalex.toFixed(4); - s.scaley = +s.scaley.toFixed(4); - s.rotate = +s.rotate.toFixed(4); - return (s.dx || s.dy ? "t" + [s.dx, s.dy] : E) + - (s.scalex != 1 || s.scaley != 1 ? "s" + [s.scalex, s.scaley, 0, 0] : E) + - (s.rotate ? "r" + [s.rotate, 0, 0] : E); - } else { - return "m" + [this.get(0), this.get(1), this.get(2), this.get(3), this.get(4), this.get(5)]; - } - }; - })(Matrix.prototype); - - var preventDefault = function () { - this.returnValue = false; - }, - preventTouch = function () { - return this.originalEvent.preventDefault(); - }, - stopPropagation = function () { - this.cancelBubble = true; - }, - stopTouch = function () { - return this.originalEvent.stopPropagation(); - }, - getEventPosition = function (e) { - var scrollY = g.doc.documentElement.scrollTop || g.doc.body.scrollTop, - scrollX = g.doc.documentElement.scrollLeft || g.doc.body.scrollLeft; - - return { - x: e.clientX + scrollX, - y: e.clientY + scrollY - }; - }, - addEvent = (function () { - if (g.doc.addEventListener) { - return function (obj, type, fn, element) { - var f = function (e) { - var pos = getEventPosition(e); - return fn.call(element, e, pos.x, pos.y); - }; - obj.addEventListener(type, f, false); - - if (supportsTouch && touchMap[type]) { - var _f = function (e) { - var pos = getEventPosition(e), - olde = e; - - for (var i = 0, ii = e.targetTouches && e.targetTouches.length; i < ii; i++) { - if (e.targetTouches[i].target == obj) { - e = e.targetTouches[i]; - e.originalEvent = olde; - e.preventDefault = preventTouch; - e.stopPropagation = stopTouch; - break; - } - } - - return fn.call(element, e, pos.x, pos.y); - }; - obj.addEventListener(touchMap[type], _f, false); - } - - return function () { - obj.removeEventListener(type, f, false); - - if (supportsTouch && touchMap[type]) - obj.removeEventListener(touchMap[type], _f, false); - - return true; - }; - }; - } else if (g.doc.attachEvent) { - return function (obj, type, fn, element) { - var f = function (e) { - e = e || g.win.event; - var scrollY = g.doc.documentElement.scrollTop || g.doc.body.scrollTop, - scrollX = g.doc.documentElement.scrollLeft || g.doc.body.scrollLeft, - x = e.clientX + scrollX, - y = e.clientY + scrollY; - e.preventDefault = e.preventDefault || preventDefault; - e.stopPropagation = e.stopPropagation || stopPropagation; - return fn.call(element, e, x, y); - }; - obj.attachEvent("on" + type, f); - var detacher = function () { - obj.detachEvent("on" + type, f); - return true; - }; - return detacher; - }; - } - })(), - drag = [], - dragMove = function (e) { - var x = e.clientX, - y = e.clientY, - scrollY = g.doc.documentElement.scrollTop || g.doc.body.scrollTop, - scrollX = g.doc.documentElement.scrollLeft || g.doc.body.scrollLeft, - dragi, - j = drag.length; - while (j--) { - dragi = drag[j]; - if (supportsTouch && e.touches) { - var i = e.touches.length, - touch; - while (i--) { - touch = e.touches[i]; - if (touch.identifier == dragi.el._drag.id) { - x = touch.clientX; - y = touch.clientY; - (e.originalEvent ? e.originalEvent : e).preventDefault(); - break; - } - } - } else { - e.preventDefault(); - } - var node = dragi.el.node, - o, - next = node.nextSibling, - parent = node.parentNode, - display = node.style.display; - g.win.opera && parent.removeChild(node); - node.style.display = "none"; - o = dragi.el.paper.getElementByPoint(x, y); - node.style.display = display; - g.win.opera && (next ? parent.insertBefore(node, next) : parent.appendChild(node)); - o && eve("raphael.drag.over." + dragi.el.id, dragi.el, o); - x += scrollX; - y += scrollY; - eve("raphael.drag.move." + dragi.el.id, dragi.move_scope || dragi.el, x - dragi.el._drag.x, y - dragi.el._drag.y, x, y, e); - } - }, - dragUp = function (e) { - R.unmousemove(dragMove).unmouseup(dragUp); - var i = drag.length, - dragi; - while (i--) { - dragi = drag[i]; - dragi.el._drag = {}; - eve("raphael.drag.end." + dragi.el.id, dragi.end_scope || dragi.start_scope || dragi.move_scope || dragi.el, e); - } - drag = []; - }, - /*\ - * Raphael.el - [ property (object) ] - ** - * You can add your own method to elements. This is useful when you want to hack default functionality or - * want to wrap some common transformation or attributes in one method. In difference to canvas methods, - * you can redefine element method at any time. Expending element methods wouldn’t affect set. - > Usage - | Raphael.el.red = function () { - | this.attr({fill: "#f00"}); - | }; - | // then use it - | paper.circle(100, 100, 20).red(); - \*/ - elproto = R.el = {}; - /*\ - * Element.click - [ method ] - ** - * Adds event handler for click for the element. - > Parameters - - handler (function) handler for the event - = (object) @Element - \*/ - /*\ - * Element.unclick - [ method ] - ** - * Removes event handler for click for the element. - > Parameters - - handler (function) #optional handler for the event - = (object) @Element - \*/ - - /*\ - * Element.dblclick - [ method ] - ** - * Adds event handler for double click for the element. - > Parameters - - handler (function) handler for the event - = (object) @Element - \*/ - /*\ - * Element.undblclick - [ method ] - ** - * Removes event handler for double click for the element. - > Parameters - - handler (function) #optional handler for the event - = (object) @Element - \*/ - - /*\ - * Element.mousedown - [ method ] - ** - * Adds event handler for mousedown for the element. - > Parameters - - handler (function) handler for the event - = (object) @Element - \*/ - /*\ - * Element.unmousedown - [ method ] - ** - * Removes event handler for mousedown for the element. - > Parameters - - handler (function) #optional handler for the event - = (object) @Element - \*/ - - /*\ - * Element.mousemove - [ method ] - ** - * Adds event handler for mousemove for the element. - > Parameters - - handler (function) handler for the event - = (object) @Element - \*/ - /*\ - * Element.unmousemove - [ method ] - ** - * Removes event handler for mousemove for the element. - > Parameters - - handler (function) #optional handler for the event - = (object) @Element - \*/ - - /*\ - * Element.mouseout - [ method ] - ** - * Adds event handler for mouseout for the element. - > Parameters - - handler (function) handler for the event - = (object) @Element - \*/ - /*\ - * Element.unmouseout - [ method ] - ** - * Removes event handler for mouseout for the element. - > Parameters - - handler (function) #optional handler for the event - = (object) @Element - \*/ - - /*\ - * Element.mouseover - [ method ] - ** - * Adds event handler for mouseover for the element. - > Parameters - - handler (function) handler for the event - = (object) @Element - \*/ - /*\ - * Element.unmouseover - [ method ] - ** - * Removes event handler for mouseover for the element. - > Parameters - - handler (function) #optional handler for the event - = (object) @Element - \*/ - - /*\ - * Element.mouseup - [ method ] - ** - * Adds event handler for mouseup for the element. - > Parameters - - handler (function) handler for the event - = (object) @Element - \*/ - /*\ - * Element.unmouseup - [ method ] - ** - * Removes event handler for mouseup for the element. - > Parameters - - handler (function) #optional handler for the event - = (object) @Element - \*/ - - /*\ - * Element.touchstart - [ method ] - ** - * Adds event handler for touchstart for the element. - > Parameters - - handler (function) handler for the event - = (object) @Element - \*/ - /*\ - * Element.untouchstart - [ method ] - ** - * Removes event handler for touchstart for the element. - > Parameters - - handler (function) #optional handler for the event - = (object) @Element - \*/ - - /*\ - * Element.touchmove - [ method ] - ** - * Adds event handler for touchmove for the element. - > Parameters - - handler (function) handler for the event - = (object) @Element - \*/ - /*\ - * Element.untouchmove - [ method ] - ** - * Removes event handler for touchmove for the element. - > Parameters - - handler (function) #optional handler for the event - = (object) @Element - \*/ - - /*\ - * Element.touchend - [ method ] - ** - * Adds event handler for touchend for the element. - > Parameters - - handler (function) handler for the event - = (object) @Element - \*/ - /*\ - * Element.untouchend - [ method ] - ** - * Removes event handler for touchend for the element. - > Parameters - - handler (function) #optional handler for the event - = (object) @Element - \*/ - - /*\ - * Element.touchcancel - [ method ] - ** - * Adds event handler for touchcancel for the element. - > Parameters - - handler (function) handler for the event - = (object) @Element - \*/ - /*\ - * Element.untouchcancel - [ method ] - ** - * Removes event handler for touchcancel for the element. - > Parameters - - handler (function) #optional handler for the event - = (object) @Element - \*/ - for (var i = events.length; i--;) { - (function (eventName) { - R[eventName] = elproto[eventName] = function (fn, scope) { - if (R.is(fn, "function")) { - this.events = this.events || []; - this.events.push({name: eventName, f: fn, unbind: addEvent(this.shape || this.node || g.doc, eventName, fn, scope || this)}); - } - return this; - }; - R["un" + eventName] = elproto["un" + eventName] = function (fn) { - var events = this.events || [], - l = events.length; - while (l--){ - if (events[l].name == eventName && (R.is(fn, "undefined") || events[l].f == fn)) { - events[l].unbind(); - events.splice(l, 1); - !events.length && delete this.events; - } - } - return this; - }; - })(events[i]); - } - - /*\ - * Element.data - [ method ] - ** - * Adds or retrieves given value associated with given key. - ** - * See also @Element.removeData - > Parameters - - key (string) key to store data - - value (any) #optional value to store - = (object) @Element - * or, if value is not specified: - = (any) value - * or, if key and value are not specified: - = (object) Key/value pairs for all the data associated with the element. - > Usage - | for (var i = 0, i < 5, i++) { - | paper.circle(10 + 15 * i, 10, 10) - | .attr({fill: "#000"}) - | .data("i", i) - | .click(function () { - | alert(this.data("i")); - | }); - | } - \*/ - elproto.data = function (key, value) { - var data = eldata[this.id] = eldata[this.id] || {}; - if (arguments.length == 0) { - return data; - } - if (arguments.length == 1) { - if (R.is(key, "object")) { - for (var i in key) if (key[has](i)) { - this.data(i, key[i]); - } - return this; - } - eve("raphael.data.get." + this.id, this, data[key], key); - return data[key]; - } - data[key] = value; - eve("raphael.data.set." + this.id, this, value, key); - return this; - }; - /*\ - * Element.removeData - [ method ] - ** - * Removes value associated with an element by given key. - * If key is not provided, removes all the data of the element. - > Parameters - - key (string) #optional key - = (object) @Element - \*/ - elproto.removeData = function (key) { - if (key == null) { - eldata[this.id] = {}; - } else { - eldata[this.id] && delete eldata[this.id][key]; - } - return this; - }; - /*\ - * Element.getData - [ method ] - ** - * Retrieves the element data - = (object) data - \*/ - elproto.getData = function () { - return clone(eldata[this.id] || {}); - }; - /*\ - * Element.hover - [ method ] - ** - * Adds event handlers for hover for the element. - > Parameters - - f_in (function) handler for hover in - - f_out (function) handler for hover out - - icontext (object) #optional context for hover in handler - - ocontext (object) #optional context for hover out handler - = (object) @Element - \*/ - elproto.hover = function (f_in, f_out, scope_in, scope_out) { - return this.mouseover(f_in, scope_in).mouseout(f_out, scope_out || scope_in); - }; - /*\ - * Element.unhover - [ method ] - ** - * Removes event handlers for hover for the element. - > Parameters - - f_in (function) handler for hover in - - f_out (function) handler for hover out - = (object) @Element - \*/ - elproto.unhover = function (f_in, f_out) { - return this.unmouseover(f_in).unmouseout(f_out); - }; - var draggable = []; - /*\ - * Element.drag - [ method ] - ** - * Adds event handlers for drag of the element. - > Parameters - - onmove (function) handler for moving - - onstart (function) handler for drag start - - onend (function) handler for drag end - - mcontext (object) #optional context for moving handler - - scontext (object) #optional context for drag start handler - - econtext (object) #optional context for drag end handler - * Additionally following `drag` events will be triggered: `drag.start.<id>` on start, - * `drag.end.<id>` on end and `drag.move.<id>` on every move. When element will be dragged over another element - * `drag.over.<id>` will be fired as well. - * - * Start event and start handler will be called in specified context or in context of the element with following parameters: - o x (number) x position of the mouse - o y (number) y position of the mouse - o event (object) DOM event object - * Move event and move handler will be called in specified context or in context of the element with following parameters: - o dx (number) shift by x from the start point - o dy (number) shift by y from the start point - o x (number) x position of the mouse - o y (number) y position of the mouse - o event (object) DOM event object - * End event and end handler will be called in specified context or in context of the element with following parameters: - o event (object) DOM event object - = (object) @Element - \*/ - elproto.drag = function (onmove, onstart, onend, move_scope, start_scope, end_scope) { - function start(e) { - (e.originalEvent || e).preventDefault(); - var x = e.clientX, - y = e.clientY, - scrollY = g.doc.documentElement.scrollTop || g.doc.body.scrollTop, - scrollX = g.doc.documentElement.scrollLeft || g.doc.body.scrollLeft; - this._drag.id = e.identifier; - if (supportsTouch && e.touches) { - var i = e.touches.length, touch; - while (i--) { - touch = e.touches[i]; - this._drag.id = touch.identifier; - if (touch.identifier == this._drag.id) { - x = touch.clientX; - y = touch.clientY; - break; - } - } - } - this._drag.x = x + scrollX; - this._drag.y = y + scrollY; - !drag.length && R.mousemove(dragMove).mouseup(dragUp); - drag.push({el: this, move_scope: move_scope, start_scope: start_scope, end_scope: end_scope}); - onstart && eve.on("raphael.drag.start." + this.id, onstart); - onmove && eve.on("raphael.drag.move." + this.id, onmove); - onend && eve.on("raphael.drag.end." + this.id, onend); - eve("raphael.drag.start." + this.id, start_scope || move_scope || this, e.clientX + scrollX, e.clientY + scrollY, e); - } - this._drag = {}; - draggable.push({el: this, start: start}); - this.mousedown(start); - return this; - }; - /*\ - * Element.onDragOver - [ method ] - ** - * Shortcut for assigning event handler for `drag.over.<id>` event, where id is id of the element (see @Element.id). - > Parameters - - f (function) handler for event, first argument would be the element you are dragging over - \*/ - elproto.onDragOver = function (f) { - f ? eve.on("raphael.drag.over." + this.id, f) : eve.unbind("raphael.drag.over." + this.id); - }; - /*\ - * Element.undrag - [ method ] - ** - * Removes all drag event handlers from given element. - \*/ - elproto.undrag = function () { - var i = draggable.length; - while (i--) if (draggable[i].el == this) { - this.unmousedown(draggable[i].start); - draggable.splice(i, 1); - eve.unbind("raphael.drag.*." + this.id); - } - !draggable.length && R.unmousemove(dragMove).unmouseup(dragUp); - drag = []; - }; - /*\ - * Paper.circle - [ method ] - ** - * Draws a circle. - ** - > Parameters - ** - - x (number) x coordinate of the centre - - y (number) y coordinate of the centre - - r (number) radius - = (object) Raphaël element object with type “circle” - ** - > Usage - | var c = paper.circle(50, 50, 40); - \*/ - paperproto.circle = function (x, y, r) { - var out = R._engine.circle(this, x || 0, y || 0, r || 0); - this.__set__ && this.__set__.push(out); - return out; - }; - /*\ - * Paper.rect - [ method ] - * - * Draws a rectangle. - ** - > Parameters - ** - - x (number) x coordinate of the top left corner - - y (number) y coordinate of the top left corner - - width (number) width - - height (number) height - - r (number) #optional radius for rounded corners, default is 0 - = (object) Raphaël element object with type “rect” - ** - > Usage - | // regular rectangle - | var c = paper.rect(10, 10, 50, 50); - | // rectangle with rounded corners - | var c = paper.rect(40, 40, 50, 50, 10); - \*/ - paperproto.rect = function (x, y, w, h, r) { - var out = R._engine.rect(this, x || 0, y || 0, w || 0, h || 0, r || 0); - this.__set__ && this.__set__.push(out); - return out; - }; - /*\ - * Paper.ellipse - [ method ] - ** - * Draws an ellipse. - ** - > Parameters - ** - - x (number) x coordinate of the centre - - y (number) y coordinate of the centre - - rx (number) horizontal radius - - ry (number) vertical radius - = (object) Raphaël element object with type “ellipse” - ** - > Usage - | var c = paper.ellipse(50, 50, 40, 20); - \*/ - paperproto.ellipse = function (x, y, rx, ry) { - var out = R._engine.ellipse(this, x || 0, y || 0, rx || 0, ry || 0); - this.__set__ && this.__set__.push(out); - return out; - }; - /*\ - * Paper.path - [ method ] - ** - * Creates a path element by given path data string. - > Parameters - - pathString (string) #optional path string in SVG format. - * Path string consists of one-letter commands, followed by comma seprarated arguments in numercal form. Example: - | "M10,20L30,40" - * Here we can see two commands: “M”, with arguments `(10, 20)` and “L” with arguments `(30, 40)`. Upper case letter mean command is absolute, lower case—relative. - * - # <p>Here is short list of commands available, for more details see <a href="http://www.w3.org/TR/SVG/paths.html#PathData" title="Details of a path's data attribute's format are described in the SVG specification.">SVG path string format</a>.</p> - # <table><thead><tr><th>Command</th><th>Name</th><th>Parameters</th></tr></thead><tbody> - # <tr><td>M</td><td>moveto</td><td>(x y)+</td></tr> - # <tr><td>Z</td><td>closepath</td><td>(none)</td></tr> - # <tr><td>L</td><td>lineto</td><td>(x y)+</td></tr> - # <tr><td>H</td><td>horizontal lineto</td><td>x+</td></tr> - # <tr><td>V</td><td>vertical lineto</td><td>y+</td></tr> - # <tr><td>C</td><td>curveto</td><td>(x1 y1 x2 y2 x y)+</td></tr> - # <tr><td>S</td><td>smooth curveto</td><td>(x2 y2 x y)+</td></tr> - # <tr><td>Q</td><td>quadratic Bézier curveto</td><td>(x1 y1 x y)+</td></tr> - # <tr><td>T</td><td>smooth quadratic Bézier curveto</td><td>(x y)+</td></tr> - # <tr><td>A</td><td>elliptical arc</td><td>(rx ry x-axis-rotation large-arc-flag sweep-flag x y)+</td></tr> - # <tr><td>R</td><td><a href="http://en.wikipedia.org/wiki/Catmull–Rom_spline#Catmull.E2.80.93Rom_spline">Catmull-Rom curveto</a>*</td><td>x1 y1 (x y)+</td></tr></tbody></table> - * * “Catmull-Rom curveto” is a not standard SVG command and added in 2.0 to make life easier. - * Note: there is a special case when path consist of just three commands: “M10,10R…z”. In this case path will smoothly connects to its beginning. - > Usage - | var c = paper.path("M10 10L90 90"); - | // draw a diagonal line: - | // move to 10,10, line to 90,90 - * For example of path strings, check out these icons: http://raphaeljs.com/icons/ - \*/ - paperproto.path = function (pathString) { - pathString && !R.is(pathString, string) && !R.is(pathString[0], array) && (pathString += E); - var out = R._engine.path(R.format[apply](R, arguments), this); - this.__set__ && this.__set__.push(out); - return out; - }; - /*\ - * Paper.image - [ method ] - ** - * Embeds an image into the surface. - ** - > Parameters - ** - - src (string) URI of the source image - - x (number) x coordinate position - - y (number) y coordinate position - - width (number) width of the image - - height (number) height of the image - = (object) Raphaël element object with type “image” - ** - > Usage - | var c = paper.image("apple.png", 10, 10, 80, 80); - \*/ - paperproto.image = function (src, x, y, w, h) { - var out = R._engine.image(this, src || "about:blank", x || 0, y || 0, w || 0, h || 0); - this.__set__ && this.__set__.push(out); - return out; - }; - /*\ - * Paper.text - [ method ] - ** - * Draws a text string. If you need line breaks, put “\n” in the string. - ** - > Parameters - ** - - x (number) x coordinate position - - y (number) y coordinate position - - text (string) The text string to draw - = (object) Raphaël element object with type “text” - ** - > Usage - | var t = paper.text(50, 50, "Raphaël\nkicks\nbutt!"); - \*/ - paperproto.text = function (x, y, text) { - var out = R._engine.text(this, x || 0, y || 0, Str(text)); - this.__set__ && this.__set__.push(out); - return out; - }; - /*\ - * Paper.set - [ method ] - ** - * Creates array-like object to keep and operate several elements at once. - * Warning: it doesn’t create any elements for itself in the page, it just groups existing elements. - * Sets act as pseudo elements — all methods available to an element can be used on a set. - = (object) array-like object that represents set of elements - ** - > Usage - | var st = paper.set(); - | st.push( - | paper.circle(10, 10, 5), - | paper.circle(30, 10, 5) - | ); - | st.attr({fill: "red"}); // changes the fill of both circles - \*/ - paperproto.set = function (itemsArray) { - !R.is(itemsArray, "array") && (itemsArray = Array.prototype.splice.call(arguments, 0, arguments.length)); - var out = new Set(itemsArray); - this.__set__ && this.__set__.push(out); - out["paper"] = this; - out["type"] = "set"; - return out; - }; - /*\ - * Paper.setStart - [ method ] - ** - * Creates @Paper.set. All elements that will be created after calling this method and before calling - * @Paper.setFinish will be added to the set. - ** - > Usage - | paper.setStart(); - | paper.circle(10, 10, 5), - | paper.circle(30, 10, 5) - | var st = paper.setFinish(); - | st.attr({fill: "red"}); // changes the fill of both circles - \*/ - paperproto.setStart = function (set) { - this.__set__ = set || this.set(); - }; - /*\ - * Paper.setFinish - [ method ] - ** - * See @Paper.setStart. This method finishes catching and returns resulting set. - ** - = (object) set - \*/ - paperproto.setFinish = function (set) { - var out = this.__set__; - delete this.__set__; - return out; - }; - /*\ - * Paper.getSize - [ method ] - ** - * Obtains current paper actual size. - ** - = (object) - \*/ - paperproto.getSize = function () { - var container = this.canvas.parentNode; - return { - width: container.offsetWidth, - height: container.offsetHeight - }; - }; - /*\ - * Paper.setSize - [ method ] - ** - * If you need to change dimensions of the canvas call this method - ** - > Parameters - ** - - width (number) new width of the canvas - - height (number) new height of the canvas - \*/ - paperproto.setSize = function (width, height) { - return R._engine.setSize.call(this, width, height); - }; - /*\ - * Paper.setViewBox - [ method ] - ** - * Sets the view box of the paper. Practically it gives you ability to zoom and pan whole paper surface by - * specifying new boundaries. - ** - > Parameters - ** - - x (number) new x position, default is `0` - - y (number) new y position, default is `0` - - w (number) new width of the canvas - - h (number) new height of the canvas - - fit (boolean) `true` if you want graphics to fit into new boundary box - \*/ - paperproto.setViewBox = function (x, y, w, h, fit) { - return R._engine.setViewBox.call(this, x, y, w, h, fit); - }; - /*\ - * Paper.top - [ property ] - ** - * Points to the topmost element on the paper - \*/ - /*\ - * Paper.bottom - [ property ] - ** - * Points to the bottom element on the paper - \*/ - paperproto.top = paperproto.bottom = null; - /*\ - * Paper.raphael - [ property ] - ** - * Points to the @Raphael object/function - \*/ - paperproto.raphael = R; - var getOffset = function (elem) { - var box = elem.getBoundingClientRect(), - doc = elem.ownerDocument, - body = doc.body, - docElem = doc.documentElement, - clientTop = docElem.clientTop || body.clientTop || 0, clientLeft = docElem.clientLeft || body.clientLeft || 0, - top = box.top + (g.win.pageYOffset || docElem.scrollTop || body.scrollTop ) - clientTop, - left = box.left + (g.win.pageXOffset || docElem.scrollLeft || body.scrollLeft) - clientLeft; - return { - y: top, - x: left - }; - }; - /*\ - * Paper.getElementByPoint - [ method ] - ** - * Returns you topmost element under given point. - ** - = (object) Raphaël element object - > Parameters - ** - - x (number) x coordinate from the top left corner of the window - - y (number) y coordinate from the top left corner of the window - > Usage - | paper.getElementByPoint(mouseX, mouseY).attr({stroke: "#f00"}); - \*/ - paperproto.getElementByPoint = function (x, y) { - var paper = this, - svg = paper.canvas, - target = g.doc.elementFromPoint(x, y); - if (g.win.opera && target.tagName == "svg") { - var so = getOffset(svg), - sr = svg.createSVGRect(); - sr.x = x - so.x; - sr.y = y - so.y; - sr.width = sr.height = 1; - var hits = svg.getIntersectionList(sr, null); - if (hits.length) { - target = hits[hits.length - 1]; - } - } - if (!target) { - return null; - } - while (target.parentNode && target != svg.parentNode && !target.raphael) { - target = target.parentNode; - } - target == paper.canvas.parentNode && (target = svg); - target = target && target.raphael ? paper.getById(target.raphaelid) : null; - return target; - }; - - /*\ - * Paper.getElementsByBBox - [ method ] - ** - * Returns set of elements that have an intersecting bounding box - ** - > Parameters - ** - - bbox (object) bbox to check with - = (object) @Set - \*/ - paperproto.getElementsByBBox = function (bbox) { - var set = this.set(); - this.forEach(function (el) { - if (R.isBBoxIntersect(el.getBBox(), bbox)) { - set.push(el); - } - }); - return set; - }; - - /*\ - * Paper.getById - [ method ] - ** - * Returns you element by its internal ID. - ** - > Parameters - ** - - id (number) id - = (object) Raphaël element object - \*/ - paperproto.getById = function (id) { - var bot = this.bottom; - while (bot) { - if (bot.id == id) { - return bot; - } - bot = bot.next; - } - return null; - }; - /*\ - * Paper.forEach - [ method ] - ** - * Executes given function for each element on the paper - * - * If callback function returns `false` it will stop loop running. - ** - > Parameters - ** - - callback (function) function to run - - thisArg (object) context object for the callback - = (object) Paper object - > Usage - | paper.forEach(function (el) { - | el.attr({ stroke: "blue" }); - | }); - \*/ - paperproto.forEach = function (callback, thisArg) { - var bot = this.bottom; - while (bot) { - if (callback.call(thisArg, bot) === false) { - return this; - } - bot = bot.next; - } - return this; - }; - /*\ - * Paper.getElementsByPoint - [ method ] - ** - * Returns set of elements that have common point inside - ** - > Parameters - ** - - x (number) x coordinate of the point - - y (number) y coordinate of the point - = (object) @Set - \*/ - paperproto.getElementsByPoint = function (x, y) { - var set = this.set(); - this.forEach(function (el) { - if (el.isPointInside(x, y)) { - set.push(el); - } - }); - return set; - }; - function x_y() { - return this.x + S + this.y; - } - function x_y_w_h() { - return this.x + S + this.y + S + this.width + " \xd7 " + this.height; - } - /*\ - * Element.isPointInside - [ method ] - ** - * Determine if given point is inside this element’s shape - ** - > Parameters - ** - - x (number) x coordinate of the point - - y (number) y coordinate of the point - = (boolean) `true` if point inside the shape - \*/ - elproto.isPointInside = function (x, y) { - var rp = this.realPath = getPath[this.type](this); - if (this.attr('transform') && this.attr('transform').length) { - rp = R.transformPath(rp, this.attr('transform')); - } - return R.isPointInsidePath(rp, x, y); - }; - /*\ - * Element.getBBox - [ method ] - ** - * Return bounding box for a given element - ** - > Parameters - ** - - isWithoutTransform (boolean) flag, `true` if you want to have bounding box before transformations. Default is `false`. - = (object) Bounding box object: - o { - o x: (number) top left corner x - o y: (number) top left corner y - o x2: (number) bottom right corner x - o y2: (number) bottom right corner y - o width: (number) width - o height: (number) height - o } - \*/ - elproto.getBBox = function (isWithoutTransform) { - if (this.removed) { - return {}; - } - var _ = this._; - if (isWithoutTransform) { - if (_.dirty || !_.bboxwt) { - this.realPath = getPath[this.type](this); - _.bboxwt = pathDimensions(this.realPath); - _.bboxwt.toString = x_y_w_h; - _.dirty = 0; - } - return _.bboxwt; - } - if (_.dirty || _.dirtyT || !_.bbox) { - if (_.dirty || !this.realPath) { - _.bboxwt = 0; - this.realPath = getPath[this.type](this); - } - _.bbox = pathDimensions(mapPath(this.realPath, this.matrix)); - _.bbox.toString = x_y_w_h; - _.dirty = _.dirtyT = 0; - } - return _.bbox; - }; - /*\ - * Element.clone - [ method ] - ** - = (object) clone of a given element - ** - \*/ - elproto.clone = function () { - if (this.removed) { - return null; - } - var out = this.paper[this.type]().attr(this.attr()); - this.__set__ && this.__set__.push(out); - return out; - }; - /*\ - * Element.glow - [ method ] - ** - * Return set of elements that create glow-like effect around given element. See @Paper.set. - * - * Note: Glow is not connected to the element. If you change element attributes it won’t adjust itself. - ** - > Parameters - ** - - glow (object) #optional parameters object with all properties optional: - o { - o width (number) size of the glow, default is `10` - o fill (boolean) will it be filled, default is `false` - o opacity (number) opacity, default is `0.5` - o offsetx (number) horizontal offset, default is `0` - o offsety (number) vertical offset, default is `0` - o color (string) glow colour, default is `black` - o } - = (object) @Paper.set of elements that represents glow - \*/ - elproto.glow = function (glow) { - if (this.type == "text") { - return null; - } - glow = glow || {}; - var s = { - width: (glow.width || 10) + (+this.attr("stroke-width") || 1), - fill: glow.fill || false, - opacity: glow.opacity == null ? .5 : glow.opacity, - offsetx: glow.offsetx || 0, - offsety: glow.offsety || 0, - color: glow.color || "#000" - }, - c = s.width / 2, - r = this.paper, - out = r.set(), - path = this.realPath || getPath[this.type](this); - path = this.matrix ? mapPath(path, this.matrix) : path; - for (var i = 1; i < c + 1; i++) { - out.push(r.path(path).attr({ - stroke: s.color, - fill: s.fill ? s.color : "none", - "stroke-linejoin": "round", - "stroke-linecap": "round", - "stroke-width": +(s.width / c * i).toFixed(3), - opacity: +(s.opacity / c).toFixed(3) - })); - } - return out.insertBefore(this).translate(s.offsetx, s.offsety); - }; - var curveslengths = {}, - getPointAtSegmentLength = function (p1x, p1y, c1x, c1y, c2x, c2y, p2x, p2y, length) { - if (length == null) { - return bezlen(p1x, p1y, c1x, c1y, c2x, c2y, p2x, p2y); - } else { - return R.findDotsAtSegment(p1x, p1y, c1x, c1y, c2x, c2y, p2x, p2y, getTatLen(p1x, p1y, c1x, c1y, c2x, c2y, p2x, p2y, length)); - } - }, - getLengthFactory = function (istotal, subpath) { - return function (path, length, onlystart) { - path = path2curve(path); - var x, y, p, l, sp = "", subpaths = {}, point, - len = 0; - for (var i = 0, ii = path.length; i < ii; i++) { - p = path[i]; - if (p[0] == "M") { - x = +p[1]; - y = +p[2]; - } else { - l = getPointAtSegmentLength(x, y, p[1], p[2], p[3], p[4], p[5], p[6]); - if (len + l > length) { - if (subpath && !subpaths.start) { - point = getPointAtSegmentLength(x, y, p[1], p[2], p[3], p[4], p[5], p[6], length - len); - sp += ["C" + point.start.x, point.start.y, point.m.x, point.m.y, point.x, point.y]; - if (onlystart) {return sp;} - subpaths.start = sp; - sp = ["M" + point.x, point.y + "C" + point.n.x, point.n.y, point.end.x, point.end.y, p[5], p[6]].join(); - len += l; - x = +p[5]; - y = +p[6]; - continue; - } - if (!istotal && !subpath) { - point = getPointAtSegmentLength(x, y, p[1], p[2], p[3], p[4], p[5], p[6], length - len); - return {x: point.x, y: point.y, alpha: point.alpha}; - } - } - len += l; - x = +p[5]; - y = +p[6]; - } - sp += p.shift() + p; - } - subpaths.end = sp; - point = istotal ? len : subpath ? subpaths : R.findDotsAtSegment(x, y, p[0], p[1], p[2], p[3], p[4], p[5], 1); - point.alpha && (point = {x: point.x, y: point.y, alpha: point.alpha}); - return point; - }; - }; - var getTotalLength = getLengthFactory(1), - getPointAtLength = getLengthFactory(), - getSubpathsAtLength = getLengthFactory(0, 1); - /*\ - * Raphael.getTotalLength - [ method ] - ** - * Returns length of the given path in pixels. - ** - > Parameters - ** - - path (string) SVG path string. - ** - = (number) length. - \*/ - R.getTotalLength = getTotalLength; - /*\ - * Raphael.getPointAtLength - [ method ] - ** - * Return coordinates of the point located at the given length on the given path. - ** - > Parameters - ** - - path (string) SVG path string - - length (number) - ** - = (object) representation of the point: - o { - o x: (number) x coordinate - o y: (number) y coordinate - o alpha: (number) angle of derivative - o } - \*/ - R.getPointAtLength = getPointAtLength; - /*\ - * Raphael.getSubpath - [ method ] - ** - * Return subpath of a given path from given length to given length. - ** - > Parameters - ** - - path (string) SVG path string - - from (number) position of the start of the segment - - to (number) position of the end of the segment - ** - = (string) pathstring for the segment - \*/ - R.getSubpath = function (path, from, to) { - if (this.getTotalLength(path) - to < 1e-6) { - return getSubpathsAtLength(path, from).end; - } - var a = getSubpathsAtLength(path, to, 1); - return from ? getSubpathsAtLength(a, from).end : a; - }; - /*\ - * Element.getTotalLength - [ method ] - ** - * Returns length of the path in pixels. Only works for element of “path” type. - = (number) length. - \*/ - elproto.getTotalLength = function () { - var path = this.getPath(); - if (!path) { - return; - } - - if (this.node.getTotalLength) { - return this.node.getTotalLength(); - } - - return getTotalLength(path); - }; - /*\ - * Element.getPointAtLength - [ method ] - ** - * Return coordinates of the point located at the given length on the given path. Only works for element of “path” type. - ** - > Parameters - ** - - length (number) - ** - = (object) representation of the point: - o { - o x: (number) x coordinate - o y: (number) y coordinate - o alpha: (number) angle of derivative - o } - \*/ - elproto.getPointAtLength = function (length) { - var path = this.getPath(); - if (!path) { - return; - } - - return getPointAtLength(path, length); - }; - /*\ - * Element.getPath - [ method ] - ** - * Returns path of the element. Only works for elements of “path” type and simple elements like circle. - = (object) path - ** - \*/ - elproto.getPath = function () { - var path, - getPath = R._getPath[this.type]; - - if (this.type == "text" || this.type == "set") { - return; - } - - if (getPath) { - path = getPath(this); - } - - return path; - }; - /*\ - * Element.getSubpath - [ method ] - ** - * Return subpath of a given element from given length to given length. Only works for element of “path” type. - ** - > Parameters - ** - - from (number) position of the start of the segment - - to (number) position of the end of the segment - ** - = (string) pathstring for the segment - \*/ - elproto.getSubpath = function (from, to) { - var path = this.getPath(); - if (!path) { - return; - } - - return R.getSubpath(path, from, to); - }; - /*\ - * Raphael.easing_formulas - [ property ] - ** - * Object that contains easing formulas for animation. You could extend it with your own. By default it has following list of easing: - # <ul> - # <li>“linear”</li> - # <li>“&lt;” or “easeIn” or “ease-in”</li> - # <li>“>” or “easeOut” or “ease-out”</li> - # <li>“&lt;>” or “easeInOut” or “ease-in-out”</li> - # <li>“backIn” or “back-in”</li> - # <li>“backOut” or “back-out”</li> - # <li>“elastic”</li> - # <li>“bounce”</li> - # </ul> - # <p>See also <a href="http://raphaeljs.com/easing.html">Easing demo</a>.</p> - \*/ - var ef = R.easing_formulas = { - linear: function (n) { - return n; - }, - "<": function (n) { - return pow(n, 1.7); - }, - ">": function (n) { - return pow(n, .48); - }, - "<>": function (n) { - var q = .48 - n / 1.04, - Q = math.sqrt(.1734 + q * q), - x = Q - q, - X = pow(abs(x), 1 / 3) * (x < 0 ? -1 : 1), - y = -Q - q, - Y = pow(abs(y), 1 / 3) * (y < 0 ? -1 : 1), - t = X + Y + .5; - return (1 - t) * 3 * t * t + t * t * t; - }, - backIn: function (n) { - var s = 1.70158; - return n * n * ((s + 1) * n - s); - }, - backOut: function (n) { - n = n - 1; - var s = 1.70158; - return n * n * ((s + 1) * n + s) + 1; - }, - elastic: function (n) { - if (n == !!n) { - return n; - } - return pow(2, -10 * n) * math.sin((n - .075) * (2 * PI) / .3) + 1; - }, - bounce: function (n) { - var s = 7.5625, - p = 2.75, - l; - if (n < (1 / p)) { - l = s * n * n; - } else { - if (n < (2 / p)) { - n -= (1.5 / p); - l = s * n * n + .75; - } else { - if (n < (2.5 / p)) { - n -= (2.25 / p); - l = s * n * n + .9375; - } else { - n -= (2.625 / p); - l = s * n * n + .984375; - } - } - } - return l; - } - }; - ef.easeIn = ef["ease-in"] = ef["<"]; - ef.easeOut = ef["ease-out"] = ef[">"]; - ef.easeInOut = ef["ease-in-out"] = ef["<>"]; - ef["back-in"] = ef.backIn; - ef["back-out"] = ef.backOut; - - var animationElements = [], - requestAnimFrame = window.requestAnimationFrame || - window.webkitRequestAnimationFrame || - window.mozRequestAnimationFrame || - window.oRequestAnimationFrame || - window.msRequestAnimationFrame || - function (callback) { - setTimeout(callback, 16); - }, - animation = function () { - var Now = +new Date, - l = 0; - for (; l < animationElements.length; l++) { - var e = animationElements[l]; - if (e.el.removed || e.paused) { - continue; - } - var time = Now - e.start, - ms = e.ms, - easing = e.easing, - from = e.from, - diff = e.diff, - to = e.to, - t = e.t, - that = e.el, - set = {}, - now, - init = {}, - key; - if (e.initstatus) { - time = (e.initstatus * e.anim.top - e.prev) / (e.percent - e.prev) * ms; - e.status = e.initstatus; - delete e.initstatus; - e.stop && animationElements.splice(l--, 1); - } else { - e.status = (e.prev + (e.percent - e.prev) * (time / ms)) / e.anim.top; - } - if (time < 0) { - continue; - } - if (time < ms) { - var pos = easing(time / ms); - for (var attr in from) if (from[has](attr)) { - switch (availableAnimAttrs[attr]) { - case nu: - now = +from[attr] + pos * ms * diff[attr]; - break; - case "colour": - now = "rgb(" + [ - upto255(round(from[attr].r + pos * ms * diff[attr].r)), - upto255(round(from[attr].g + pos * ms * diff[attr].g)), - upto255(round(from[attr].b + pos * ms * diff[attr].b)) - ].join(",") + ")"; - break; - case "path": - now = []; - for (var i = 0, ii = from[attr].length; i < ii; i++) { - now[i] = [from[attr][i][0]]; - for (var j = 1, jj = from[attr][i].length; j < jj; j++) { - now[i][j] = +from[attr][i][j] + pos * ms * diff[attr][i][j]; - } - now[i] = now[i].join(S); - } - now = now.join(S); - break; - case "transform": - if (diff[attr].real) { - now = []; - for (i = 0, ii = from[attr].length; i < ii; i++) { - now[i] = [from[attr][i][0]]; - for (j = 1, jj = from[attr][i].length; j < jj; j++) { - now[i][j] = from[attr][i][j] + pos * ms * diff[attr][i][j]; - } - } - } else { - var get = function (i) { - return +from[attr][i] + pos * ms * diff[attr][i]; - }; - // now = [["r", get(2), 0, 0], ["t", get(3), get(4)], ["s", get(0), get(1), 0, 0]]; - now = [["m", get(0), get(1), get(2), get(3), get(4), get(5)]]; - } - break; - case "csv": - if (attr == "clip-rect") { - now = []; - i = 4; - while (i--) { - now[i] = +from[attr][i] + pos * ms * diff[attr][i]; - } - } - break; - default: - var from2 = [][concat](from[attr]); - now = []; - i = that.paper.customAttributes[attr].length; - while (i--) { - now[i] = +from2[i] + pos * ms * diff[attr][i]; - } - break; - } - set[attr] = now; - } - that.attr(set); - (function (id, that, anim) { - setTimeout(function () { - eve("raphael.anim.frame." + id, that, anim); - }); - })(that.id, that, e.anim); - } else { - (function(f, el, a) { - setTimeout(function() { - eve("raphael.anim.frame." + el.id, el, a); - eve("raphael.anim.finish." + el.id, el, a); - R.is(f, "function") && f.call(el); - }); - })(e.callback, that, e.anim); - that.attr(to); - animationElements.splice(l--, 1); - if (e.repeat > 1 && !e.next) { - for (key in to) if (to[has](key)) { - init[key] = e.totalOrigin[key]; - } - e.el.attr(init); - runAnimation(e.anim, e.el, e.anim.percents[0], null, e.totalOrigin, e.repeat - 1); - } - if (e.next && !e.stop) { - runAnimation(e.anim, e.el, e.next, null, e.totalOrigin, e.repeat); - } - } - } - animationElements.length && requestAnimFrame(animation); - }, - upto255 = function (color) { - return color > 255 ? 255 : color < 0 ? 0 : color; - }; - /*\ - * Element.animateWith - [ method ] - ** - * Acts similar to @Element.animate, but ensure that given animation runs in sync with another given element. - ** - > Parameters - ** - - el (object) element to sync with - - anim (object) animation to sync with - - params (object) #optional final attributes for the element, see also @Element.attr - - ms (number) #optional number of milliseconds for animation to run - - easing (string) #optional easing type. Accept on of @Raphael.easing_formulas or CSS format: `cubic&#x2010;bezier(XX,&#160;XX,&#160;XX,&#160;XX)` - - callback (function) #optional callback function. Will be called at the end of animation. - * or - - element (object) element to sync with - - anim (object) animation to sync with - - animation (object) #optional animation object, see @Raphael.animation - ** - = (object) original element - \*/ - elproto.animateWith = function (el, anim, params, ms, easing, callback) { - var element = this; - if (element.removed) { - callback && callback.call(element); - return element; - } - var a = params instanceof Animation ? params : R.animation(params, ms, easing, callback), - x, y; - runAnimation(a, element, a.percents[0], null, element.attr()); - for (var i = 0, ii = animationElements.length; i < ii; i++) { - if (animationElements[i].anim == anim && animationElements[i].el == el) { - animationElements[ii - 1].start = animationElements[i].start; - break; - } - } - return element; - // - // - // var a = params ? R.animation(params, ms, easing, callback) : anim, - // status = element.status(anim); - // return this.animate(a).status(a, status * anim.ms / a.ms); - }; - function CubicBezierAtTime(t, p1x, p1y, p2x, p2y, duration) { - var cx = 3 * p1x, - bx = 3 * (p2x - p1x) - cx, - ax = 1 - cx - bx, - cy = 3 * p1y, - by = 3 * (p2y - p1y) - cy, - ay = 1 - cy - by; - function sampleCurveX(t) { - return ((ax * t + bx) * t + cx) * t; - } - function solve(x, epsilon) { - var t = solveCurveX(x, epsilon); - return ((ay * t + by) * t + cy) * t; - } - function solveCurveX(x, epsilon) { - var t0, t1, t2, x2, d2, i; - for(t2 = x, i = 0; i < 8; i++) { - x2 = sampleCurveX(t2) - x; - if (abs(x2) < epsilon) { - return t2; - } - d2 = (3 * ax * t2 + 2 * bx) * t2 + cx; - if (abs(d2) < 1e-6) { - break; - } - t2 = t2 - x2 / d2; - } - t0 = 0; - t1 = 1; - t2 = x; - if (t2 < t0) { - return t0; - } - if (t2 > t1) { - return t1; - } - while (t0 < t1) { - x2 = sampleCurveX(t2); - if (abs(x2 - x) < epsilon) { - return t2; - } - if (x > x2) { - t0 = t2; - } else { - t1 = t2; - } - t2 = (t1 - t0) / 2 + t0; - } - return t2; - } - return solve(t, 1 / (200 * duration)); - } - elproto.onAnimation = function (f) { - f ? eve.on("raphael.anim.frame." + this.id, f) : eve.unbind("raphael.anim.frame." + this.id); - return this; - }; - function Animation(anim, ms) { - var percents = [], - newAnim = {}; - this.ms = ms; - this.times = 1; - if (anim) { - for (var attr in anim) if (anim[has](attr)) { - newAnim[toFloat(attr)] = anim[attr]; - percents.push(toFloat(attr)); - } - percents.sort(sortByNumber); - } - this.anim = newAnim; - this.top = percents[percents.length - 1]; - this.percents = percents; - } - /*\ - * Animation.delay - [ method ] - ** - * Creates a copy of existing animation object with given delay. - ** - > Parameters - ** - - delay (number) number of ms to pass between animation start and actual animation - ** - = (object) new altered Animation object - | var anim = Raphael.animation({cx: 10, cy: 20}, 2e3); - | circle1.animate(anim); // run the given animation immediately - | circle2.animate(anim.delay(500)); // run the given animation after 500 ms - \*/ - Animation.prototype.delay = function (delay) { - var a = new Animation(this.anim, this.ms); - a.times = this.times; - a.del = +delay || 0; - return a; - }; - /*\ - * Animation.repeat - [ method ] - ** - * Creates a copy of existing animation object with given repetition. - ** - > Parameters - ** - - repeat (number) number iterations of animation. For infinite animation pass `Infinity` - ** - = (object) new altered Animation object - \*/ - Animation.prototype.repeat = function (times) { - var a = new Animation(this.anim, this.ms); - a.del = this.del; - a.times = math.floor(mmax(times, 0)) || 1; - return a; - }; - function runAnimation(anim, element, percent, status, totalOrigin, times) { - percent = toFloat(percent); - var params, - isInAnim, - isInAnimSet, - percents = [], - next, - prev, - timestamp, - ms = anim.ms, - from = {}, - to = {}, - diff = {}; - if (status) { - for (i = 0, ii = animationElements.length; i < ii; i++) { - var e = animationElements[i]; - if (e.el.id == element.id && e.anim == anim) { - if (e.percent != percent) { - animationElements.splice(i, 1); - isInAnimSet = 1; - } else { - isInAnim = e; - } - element.attr(e.totalOrigin); - break; - } - } - } else { - status = +to; // NaN - } - for (var i = 0, ii = anim.percents.length; i < ii; i++) { - if (anim.percents[i] == percent || anim.percents[i] > status * anim.top) { - percent = anim.percents[i]; - prev = anim.percents[i - 1] || 0; - ms = ms / anim.top * (percent - prev); - next = anim.percents[i + 1]; - params = anim.anim[percent]; - break; - } else if (status) { - element.attr(anim.anim[anim.percents[i]]); - } - } - if (!params) { - return; - } - if (!isInAnim) { - for (var attr in params) if (params[has](attr)) { - if (availableAnimAttrs[has](attr) || element.paper.customAttributes[has](attr)) { - from[attr] = element.attr(attr); - (from[attr] == null) && (from[attr] = availableAttrs[attr]); - to[attr] = params[attr]; - switch (availableAnimAttrs[attr]) { - case nu: - diff[attr] = (to[attr] - from[attr]) / ms; - break; - case "colour": - from[attr] = R.getRGB(from[attr]); - var toColour = R.getRGB(to[attr]); - diff[attr] = { - r: (toColour.r - from[attr].r) / ms, - g: (toColour.g - from[attr].g) / ms, - b: (toColour.b - from[attr].b) / ms - }; - break; - case "path": - var pathes = path2curve(from[attr], to[attr]), - toPath = pathes[1]; - from[attr] = pathes[0]; - diff[attr] = []; - for (i = 0, ii = from[attr].length; i < ii; i++) { - diff[attr][i] = [0]; - for (var j = 1, jj = from[attr][i].length; j < jj; j++) { - diff[attr][i][j] = (toPath[i][j] - from[attr][i][j]) / ms; - } - } - break; - case "transform": - var _ = element._, - eq = equaliseTransform(_[attr], to[attr]); - if (eq) { - from[attr] = eq.from; - to[attr] = eq.to; - diff[attr] = []; - diff[attr].real = true; - for (i = 0, ii = from[attr].length; i < ii; i++) { - diff[attr][i] = [from[attr][i][0]]; - for (j = 1, jj = from[attr][i].length; j < jj; j++) { - diff[attr][i][j] = (to[attr][i][j] - from[attr][i][j]) / ms; - } - } - } else { - var m = (element.matrix || new Matrix), - to2 = { - _: {transform: _.transform}, - getBBox: function () { - return element.getBBox(1); - } - }; - from[attr] = [ - m.a, - m.b, - m.c, - m.d, - m.e, - m.f - ]; - extractTransform(to2, to[attr]); - to[attr] = to2._.transform; - diff[attr] = [ - (to2.matrix.a - m.a) / ms, - (to2.matrix.b - m.b) / ms, - (to2.matrix.c - m.c) / ms, - (to2.matrix.d - m.d) / ms, - (to2.matrix.e - m.e) / ms, - (to2.matrix.f - m.f) / ms - ]; - // from[attr] = [_.sx, _.sy, _.deg, _.dx, _.dy]; - // var to2 = {_:{}, getBBox: function () { return element.getBBox(); }}; - // extractTransform(to2, to[attr]); - // diff[attr] = [ - // (to2._.sx - _.sx) / ms, - // (to2._.sy - _.sy) / ms, - // (to2._.deg - _.deg) / ms, - // (to2._.dx - _.dx) / ms, - // (to2._.dy - _.dy) / ms - // ]; - } - break; - case "csv": - var values = Str(params[attr])[split](separator), - from2 = Str(from[attr])[split](separator); - if (attr == "clip-rect") { - from[attr] = from2; - diff[attr] = []; - i = from2.length; - while (i--) { - diff[attr][i] = (values[i] - from[attr][i]) / ms; - } - } - to[attr] = values; - break; - default: - values = [][concat](params[attr]); - from2 = [][concat](from[attr]); - diff[attr] = []; - i = element.paper.customAttributes[attr].length; - while (i--) { - diff[attr][i] = ((values[i] || 0) - (from2[i] || 0)) / ms; - } - break; - } - } - } - var easing = params.easing, - easyeasy = R.easing_formulas[easing]; - if (!easyeasy) { - easyeasy = Str(easing).match(bezierrg); - if (easyeasy && easyeasy.length == 5) { - var curve = easyeasy; - easyeasy = function (t) { - return CubicBezierAtTime(t, +curve[1], +curve[2], +curve[3], +curve[4], ms); - }; - } else { - easyeasy = pipe; - } - } - timestamp = params.start || anim.start || +new Date; - e = { - anim: anim, - percent: percent, - timestamp: timestamp, - start: timestamp + (anim.del || 0), - status: 0, - initstatus: status || 0, - stop: false, - ms: ms, - easing: easyeasy, - from: from, - diff: diff, - to: to, - el: element, - callback: params.callback, - prev: prev, - next: next, - repeat: times || anim.times, - origin: element.attr(), - totalOrigin: totalOrigin - }; - animationElements.push(e); - if (status && !isInAnim && !isInAnimSet) { - e.stop = true; - e.start = new Date - ms * status; - if (animationElements.length == 1) { - return animation(); - } - } - if (isInAnimSet) { - e.start = new Date - e.ms * status; - } - animationElements.length == 1 && requestAnimFrame(animation); - } else { - isInAnim.initstatus = status; - isInAnim.start = new Date - isInAnim.ms * status; - } - eve("raphael.anim.start." + element.id, element, anim); - } - /*\ - * Raphael.animation - [ method ] - ** - * Creates an animation object that can be passed to the @Element.animate or @Element.animateWith methods. - * See also @Animation.delay and @Animation.repeat methods. - ** - > Parameters - ** - - params (object) final attributes for the element, see also @Element.attr - - ms (number) number of milliseconds for animation to run - - easing (string) #optional easing type. Accept one of @Raphael.easing_formulas or CSS format: `cubic&#x2010;bezier(XX,&#160;XX,&#160;XX,&#160;XX)` - - callback (function) #optional callback function. Will be called at the end of animation. - ** - = (object) @Animation - \*/ - R.animation = function (params, ms, easing, callback) { - if (params instanceof Animation) { - return params; - } - if (R.is(easing, "function") || !easing) { - callback = callback || easing || null; - easing = null; - } - params = Object(params); - ms = +ms || 0; - var p = {}, - json, - attr; - for (attr in params) if (params[has](attr) && toFloat(attr) != attr && toFloat(attr) + "%" != attr) { - json = true; - p[attr] = params[attr]; - } - if (!json) { - // if percent-like syntax is used and end-of-all animation callback used - if(callback){ - // find the last one - var lastKey = 0; - for(var i in params){ - var percent = toInt(i); - if(params[has](i) && percent > lastKey){ - lastKey = percent; - } - } - lastKey += '%'; - // if already defined callback in the last keyframe, skip - !params[lastKey].callback && (params[lastKey].callback = callback); - } - return new Animation(params, ms); - } else { - easing && (p.easing = easing); - callback && (p.callback = callback); - return new Animation({100: p}, ms); - } - }; - /*\ - * Element.animate - [ method ] - ** - * Creates and starts animation for given element. - ** - > Parameters - ** - - params (object) final attributes for the element, see also @Element.attr - - ms (number) number of milliseconds for animation to run - - easing (string) #optional easing type. Accept one of @Raphael.easing_formulas or CSS format: `cubic&#x2010;bezier(XX,&#160;XX,&#160;XX,&#160;XX)` - - callback (function) #optional callback function. Will be called at the end of animation. - * or - - animation (object) animation object, see @Raphael.animation - ** - = (object) original element - \*/ - elproto.animate = function (params, ms, easing, callback) { - var element = this; - if (element.removed) { - callback && callback.call(element); - return element; - } - var anim = params instanceof Animation ? params : R.animation(params, ms, easing, callback); - runAnimation(anim, element, anim.percents[0], null, element.attr()); - return element; - }; - /*\ - * Element.setTime - [ method ] - ** - * Sets the status of animation of the element in milliseconds. Similar to @Element.status method. - ** - > Parameters - ** - - anim (object) animation object - - value (number) number of milliseconds from the beginning of the animation - ** - = (object) original element if `value` is specified - * Note, that during animation following events are triggered: - * - * On each animation frame event `anim.frame.<id>`, on start `anim.start.<id>` and on end `anim.finish.<id>`. - \*/ - elproto.setTime = function (anim, value) { - if (anim && value != null) { - this.status(anim, mmin(value, anim.ms) / anim.ms); - } - return this; - }; - /*\ - * Element.status - [ method ] - ** - * Gets or sets the status of animation of the element. - ** - > Parameters - ** - - anim (object) #optional animation object - - value (number) #optional 0 – 1. If specified, method works like a setter and sets the status of a given animation to the value. This will cause animation to jump to the given position. - ** - = (number) status - * or - = (array) status if `anim` is not specified. Array of objects in format: - o { - o anim: (object) animation object - o status: (number) status - o } - * or - = (object) original element if `value` is specified - \*/ - elproto.status = function (anim, value) { - var out = [], - i = 0, - len, - e; - if (value != null) { - runAnimation(anim, this, -1, mmin(value, 1)); - return this; - } else { - len = animationElements.length; - for (; i < len; i++) { - e = animationElements[i]; - if (e.el.id == this.id && (!anim || e.anim == anim)) { - if (anim) { - return e.status; - } - out.push({ - anim: e.anim, - status: e.status - }); - } - } - if (anim) { - return 0; - } - return out; - } - }; - /*\ - * Element.pause - [ method ] - ** - * Stops animation of the element with ability to resume it later on. - ** - > Parameters - ** - - anim (object) #optional animation object - ** - = (object) original element - \*/ - elproto.pause = function (anim) { - for (var i = 0; i < animationElements.length; i++) if (animationElements[i].el.id == this.id && (!anim || animationElements[i].anim == anim)) { - if (eve("raphael.anim.pause." + this.id, this, animationElements[i].anim) !== false) { - animationElements[i].paused = true; - } - } - return this; - }; - /*\ - * Element.resume - [ method ] - ** - * Resumes animation if it was paused with @Element.pause method. - ** - > Parameters - ** - - anim (object) #optional animation object - ** - = (object) original element - \*/ - elproto.resume = function (anim) { - for (var i = 0; i < animationElements.length; i++) if (animationElements[i].el.id == this.id && (!anim || animationElements[i].anim == anim)) { - var e = animationElements[i]; - if (eve("raphael.anim.resume." + this.id, this, e.anim) !== false) { - delete e.paused; - this.status(e.anim, e.status); - } - } - return this; - }; - /*\ - * Element.stop - [ method ] - ** - * Stops animation of the element. - ** - > Parameters - ** - - anim (object) #optional animation object - ** - = (object) original element - \*/ - elproto.stop = function (anim) { - for (var i = 0; i < animationElements.length; i++) if (animationElements[i].el.id == this.id && (!anim || animationElements[i].anim == anim)) { - if (eve("raphael.anim.stop." + this.id, this, animationElements[i].anim) !== false) { - animationElements.splice(i--, 1); - } - } - return this; - }; - function stopAnimation(paper) { - for (var i = 0; i < animationElements.length; i++) if (animationElements[i].el.paper == paper) { - animationElements.splice(i--, 1); - } - } - eve.on("raphael.remove", stopAnimation); - eve.on("raphael.clear", stopAnimation); - elproto.toString = function () { - return "Rapha\xebl\u2019s object"; - }; - - // Set - var Set = function (items) { - this.items = []; - this.length = 0; - this.type = "set"; - if (items) { - for (var i = 0, ii = items.length; i < ii; i++) { - if (items[i] && (items[i].constructor == elproto.constructor || items[i].constructor == Set)) { - this[this.items.length] = this.items[this.items.length] = items[i]; - this.length++; - } - } - } - }, - setproto = Set.prototype; - /*\ - * Set.push - [ method ] - ** - * Adds each argument to the current set. - = (object) original element - \*/ - setproto.push = function () { - var item, - len; - for (var i = 0, ii = arguments.length; i < ii; i++) { - item = arguments[i]; - if (item && (item.constructor == elproto.constructor || item.constructor == Set)) { - len = this.items.length; - this[len] = this.items[len] = item; - this.length++; - } - } - return this; - }; - /*\ - * Set.pop - [ method ] - ** - * Removes last element and returns it. - = (object) element - \*/ - setproto.pop = function () { - this.length && delete this[this.length--]; - return this.items.pop(); - }; - /*\ - * Set.forEach - [ method ] - ** - * Executes given function for each element in the set. - * - * If function returns `false` it will stop loop running. - ** - > Parameters - ** - - callback (function) function to run - - thisArg (object) context object for the callback - = (object) Set object - \*/ - setproto.forEach = function (callback, thisArg) { - for (var i = 0, ii = this.items.length; i < ii; i++) { - if (callback.call(thisArg, this.items[i], i) === false) { - return this; - } - } - return this; - }; - for (var method in elproto) if (elproto[has](method)) { - setproto[method] = (function (methodname) { - return function () { - var arg = arguments; - return this.forEach(function (el) { - el[methodname][apply](el, arg); - }); - }; - })(method); - } - setproto.attr = function (name, value) { - if (name && R.is(name, array) && R.is(name[0], "object")) { - for (var j = 0, jj = name.length; j < jj; j++) { - this.items[j].attr(name[j]); - } - } else { - for (var i = 0, ii = this.items.length; i < ii; i++) { - this.items[i].attr(name, value); - } - } - return this; - }; - /*\ - * Set.clear - [ method ] - ** - * Removes all elements from the set - \*/ - setproto.clear = function () { - while (this.length) { - this.pop(); - } - }; - /*\ - * Set.splice - [ method ] - ** - * Removes given element from the set - ** - > Parameters - ** - - index (number) position of the deletion - - count (number) number of element to remove - - insertion… (object) #optional elements to insert - = (object) set elements that were deleted - \*/ - setproto.splice = function (index, count, insertion) { - index = index < 0 ? mmax(this.length + index, 0) : index; - count = mmax(0, mmin(this.length - index, count)); - var tail = [], - todel = [], - args = [], - i; - for (i = 2; i < arguments.length; i++) { - args.push(arguments[i]); - } - for (i = 0; i < count; i++) { - todel.push(this[index + i]); - } - for (; i < this.length - index; i++) { - tail.push(this[index + i]); - } - var arglen = args.length; - for (i = 0; i < arglen + tail.length; i++) { - this.items[index + i] = this[index + i] = i < arglen ? args[i] : tail[i - arglen]; - } - i = this.items.length = this.length -= count - arglen; - while (this[i]) { - delete this[i++]; - } - return new Set(todel); - }; - /*\ - * Set.exclude - [ method ] - ** - * Removes given element from the set - ** - > Parameters - ** - - element (object) element to remove - = (boolean) `true` if object was found & removed from the set - \*/ - setproto.exclude = function (el) { - for (var i = 0, ii = this.length; i < ii; i++) if (this[i] == el) { - this.splice(i, 1); - return true; - } - }; - setproto.animate = function (params, ms, easing, callback) { - (R.is(easing, "function") || !easing) && (callback = easing || null); - var len = this.items.length, - i = len, - item, - set = this, - collector; - if (!len) { - return this; - } - callback && (collector = function () { - !--len && callback.call(set); - }); - easing = R.is(easing, string) ? easing : collector; - var anim = R.animation(params, ms, easing, collector); - item = this.items[--i].animate(anim); - while (i--) { - this.items[i] && !this.items[i].removed && this.items[i].animateWith(item, anim, anim); - (this.items[i] && !this.items[i].removed) || len--; - } - return this; - }; - setproto.insertAfter = function (el) { - var i = this.items.length; - while (i--) { - this.items[i].insertAfter(el); - } - return this; - }; - setproto.getBBox = function () { - var x = [], - y = [], - x2 = [], - y2 = []; - for (var i = this.items.length; i--;) if (!this.items[i].removed) { - var box = this.items[i].getBBox(); - x.push(box.x); - y.push(box.y); - x2.push(box.x + box.width); - y2.push(box.y + box.height); - } - x = mmin[apply](0, x); - y = mmin[apply](0, y); - x2 = mmax[apply](0, x2); - y2 = mmax[apply](0, y2); - return { - x: x, - y: y, - x2: x2, - y2: y2, - width: x2 - x, - height: y2 - y - }; - }; - setproto.clone = function (s) { - s = this.paper.set(); - for (var i = 0, ii = this.items.length; i < ii; i++) { - s.push(this.items[i].clone()); - } - return s; - }; - setproto.toString = function () { - return "Rapha\xebl\u2018s set"; - }; - - setproto.glow = function(glowConfig) { - var ret = this.paper.set(); - this.forEach(function(shape, index){ - var g = shape.glow(glowConfig); - if(g != null){ - g.forEach(function(shape2, index2){ - ret.push(shape2); - }); - } - }); - return ret; - }; - - - /*\ - * Set.isPointInside - [ method ] - ** - * Determine if given point is inside this set’s elements - ** - > Parameters - ** - - x (number) x coordinate of the point - - y (number) y coordinate of the point - = (boolean) `true` if point is inside any of the set's elements - \*/ - setproto.isPointInside = function (x, y) { - var isPointInside = false; - this.forEach(function (el) { - if (el.isPointInside(x, y)) { - isPointInside = true; - return false; // stop loop - } - }); - return isPointInside; - }; - - /*\ - * Raphael.registerFont - [ method ] - ** - * Adds given font to the registered set of fonts for Raphaël. Should be used as an internal call from within Cufón’s font file. - * Returns original parameter, so it could be used with chaining. - # <a href="http://wiki.github.com/sorccu/cufon/about">More about Cufón and how to convert your font form TTF, OTF, etc to JavaScript file.</a> - ** - > Parameters - ** - - font (object) the font to register - = (object) the font you passed in - > Usage - | Cufon.registerFont(Raphael.registerFont({…})); - \*/ - R.registerFont = function (font) { - if (!font.face) { - return font; - } - this.fonts = this.fonts || {}; - var fontcopy = { - w: font.w, - face: {}, - glyphs: {} - }, - family = font.face["font-family"]; - for (var prop in font.face) if (font.face[has](prop)) { - fontcopy.face[prop] = font.face[prop]; - } - if (this.fonts[family]) { - this.fonts[family].push(fontcopy); - } else { - this.fonts[family] = [fontcopy]; - } - if (!font.svg) { - fontcopy.face["units-per-em"] = toInt(font.face["units-per-em"], 10); - for (var glyph in font.glyphs) if (font.glyphs[has](glyph)) { - var path = font.glyphs[glyph]; - fontcopy.glyphs[glyph] = { - w: path.w, - k: {}, - d: path.d && "M" + path.d.replace(/[mlcxtrv]/g, function (command) { - return {l: "L", c: "C", x: "z", t: "m", r: "l", v: "c"}[command] || "M"; - }) + "z" - }; - if (path.k) { - for (var k in path.k) if (path[has](k)) { - fontcopy.glyphs[glyph].k[k] = path.k[k]; - } - } - } - } - return font; - }; - /*\ - * Paper.getFont - [ method ] - ** - * Finds font object in the registered fonts by given parameters. You could specify only one word from the font name, like “Myriad” for “Myriad Pro”. - ** - > Parameters - ** - - family (string) font family name or any word from it - - weight (string) #optional font weight - - style (string) #optional font style - - stretch (string) #optional font stretch - = (object) the font object - > Usage - | paper.print(100, 100, "Test string", paper.getFont("Times", 800), 30); - \*/ - paperproto.getFont = function (family, weight, style, stretch) { - stretch = stretch || "normal"; - style = style || "normal"; - weight = +weight || {normal: 400, bold: 700, lighter: 300, bolder: 800}[weight] || 400; - if (!R.fonts) { - return; - } - var font = R.fonts[family]; - if (!font) { - var name = new RegExp("(^|\\s)" + family.replace(/[^\w\d\s+!~.:_-]/g, E) + "(\\s|$)", "i"); - for (var fontName in R.fonts) if (R.fonts[has](fontName)) { - if (name.test(fontName)) { - font = R.fonts[fontName]; - break; - } - } - } - var thefont; - if (font) { - for (var i = 0, ii = font.length; i < ii; i++) { - thefont = font[i]; - if (thefont.face["font-weight"] == weight && (thefont.face["font-style"] == style || !thefont.face["font-style"]) && thefont.face["font-stretch"] == stretch) { - break; - } - } - } - return thefont; - }; - /*\ - * Paper.print - [ method ] - ** - * Creates path that represent given text written using given font at given position with given size. - * Result of the method is path element that contains whole text as a separate path. - ** - > Parameters - ** - - x (number) x position of the text - - y (number) y position of the text - - string (string) text to print - - font (object) font object, see @Paper.getFont - - size (number) #optional size of the font, default is `16` - - origin (string) #optional could be `"baseline"` or `"middle"`, default is `"middle"` - - letter_spacing (number) #optional number in range `-1..1`, default is `0` - - line_spacing (number) #optional number in range `1..3`, default is `1` - = (object) resulting path element, which consist of all letters - > Usage - | var txt = r.print(10, 50, "print", r.getFont("Museo"), 30).attr({fill: "#fff"}); - \*/ - paperproto.print = function (x, y, string, font, size, origin, letter_spacing, line_spacing) { - origin = origin || "middle"; // baseline|middle - letter_spacing = mmax(mmin(letter_spacing || 0, 1), -1); - line_spacing = mmax(mmin(line_spacing || 1, 3), 1); - var letters = Str(string)[split](E), - shift = 0, - notfirst = 0, - path = E, - scale; - R.is(font, "string") && (font = this.getFont(font)); - if (font) { - scale = (size || 16) / font.face["units-per-em"]; - var bb = font.face.bbox[split](separator), - top = +bb[0], - lineHeight = bb[3] - bb[1], - shifty = 0, - height = +bb[1] + (origin == "baseline" ? lineHeight + (+font.face.descent) : lineHeight / 2); - for (var i = 0, ii = letters.length; i < ii; i++) { - if (letters[i] == "\n") { - shift = 0; - curr = 0; - notfirst = 0; - shifty += lineHeight * line_spacing; - } else { - var prev = notfirst && font.glyphs[letters[i - 1]] || {}, - curr = font.glyphs[letters[i]]; - shift += notfirst ? (prev.w || font.w) + (prev.k && prev.k[letters[i]] || 0) + (font.w * letter_spacing) : 0; - notfirst = 1; - } - if (curr && curr.d) { - path += R.transformPath(curr.d, ["t", shift * scale, shifty * scale, "s", scale, scale, top, height, "t", (x - top) / scale, (y - height) / scale]); - } - } - } - return this.path(path).attr({ - fill: "#000", - stroke: "none" - }); - }; - - /*\ - * Paper.add - [ method ] - ** - * Imports elements in JSON array in format `{type: type, <attributes>}` - ** - > Parameters - ** - - json (array) - = (object) resulting set of imported elements - > Usage - | paper.add([ - | { - | type: "circle", - | cx: 10, - | cy: 10, - | r: 5 - | }, - | { - | type: "rect", - | x: 10, - | y: 10, - | width: 10, - | height: 10, - | fill: "#fc0" - | } - | ]); - \*/ - paperproto.add = function (json) { - if (R.is(json, "array")) { - var res = this.set(), - i = 0, - ii = json.length, - j; - for (; i < ii; i++) { - j = json[i] || {}; - elements[has](j.type) && res.push(this[j.type]().attr(j)); - } - } - return res; - }; - - /*\ - * Raphael.format - [ method ] - ** - * Simple format function. Replaces construction of type “`{<number>}`” to the corresponding argument. - ** - > Parameters - ** - - token (string) string to format - - … (string) rest of arguments will be treated as parameters for replacement - = (string) formated string - > Usage - | var x = 10, - | y = 20, - | width = 40, - | height = 50; - | // this will draw a rectangular shape equivalent to "M10,20h40v50h-40z" - | paper.path(Raphael.format("M{0},{1}h{2}v{3}h{4}z", x, y, width, height, -width)); - \*/ - R.format = function (token, params) { - var args = R.is(params, array) ? [0][concat](params) : arguments; - token && R.is(token, string) && args.length - 1 && (token = token.replace(formatrg, function (str, i) { - return args[++i] == null ? E : args[i]; - })); - return token || E; - }; - /*\ - * Raphael.fullfill - [ method ] - ** - * A little bit more advanced format function than @Raphael.format. Replaces construction of type “`{<name>}`” to the corresponding argument. - ** - > Parameters - ** - - token (string) string to format - - json (object) object which properties will be used as a replacement - = (string) formated string - > Usage - | // this will draw a rectangular shape equivalent to "M10,20h40v50h-40z" - | paper.path(Raphael.fullfill("M{x},{y}h{dim.width}v{dim.height}h{dim['negative width']}z", { - | x: 10, - | y: 20, - | dim: { - | width: 40, - | height: 50, - | "negative width": -40 - | } - | })); - \*/ - R.fullfill = (function () { - var tokenRegex = /\{([^\}]+)\}/g, - objNotationRegex = /(?:(?:^|\.)(.+?)(?=\[|\.|$|\()|\[('|")(.+?)\2\])(\(\))?/g, // matches .xxxxx or ["xxxxx"] to run over object properties - replacer = function (all, key, obj) { - var res = obj; - key.replace(objNotationRegex, function (all, name, quote, quotedName, isFunc) { - name = name || quotedName; - if (res) { - if (name in res) { - res = res[name]; - } - typeof res == "function" && isFunc && (res = res()); - } - }); - res = (res == null || res == obj ? all : res) + ""; - return res; - }; - return function (str, obj) { - return String(str).replace(tokenRegex, function (all, key) { - return replacer(all, key, obj); - }); - }; - })(); - /*\ - * Raphael.ninja - [ method ] - ** - * If you want to leave no trace of Raphaël (Well, Raphaël creates only one global variable `Raphael`, but anyway.) You can use `ninja` method. - * Beware, that in this case plugins could stop working, because they are depending on global variable existence. - ** - = (object) Raphael object - > Usage - | (function (local_raphael) { - | var paper = local_raphael(10, 10, 320, 200); - | … - | })(Raphael.ninja()); - \*/ - R.ninja = function () { - if (oldRaphael.was) { - g.win.Raphael = oldRaphael.is; - } else { - // IE8 raises an error when deleting window property - window.Raphael = undefined; - try { - delete window.Raphael; - } catch(e) {} - } - return R; - }; - /*\ - * Raphael.st - [ property (object) ] - ** - * You can add your own method to elements and sets. It is wise to add a set method for each element method - * you added, so you will be able to call the same method on sets too. - ** - * See also @Raphael.el. - > Usage - | Raphael.el.red = function () { - | this.attr({fill: "#f00"}); - | }; - | Raphael.st.red = function () { - | this.forEach(function (el) { - | el.red(); - | }); - | }; - | // then use it - | paper.set(paper.circle(100, 100, 20), paper.circle(110, 100, 20)).red(); - \*/ - R.st = setproto; - - eve.on("raphael.DOMload", function () { - loaded = true; - }); - - // Firefox <3.6 fix: http://webreflection.blogspot.com/2009/11/195-chars-to-help-lazy-loading.html - (function (doc, loaded, f) { - if (doc.readyState == null && doc.addEventListener){ - doc.addEventListener(loaded, f = function () { - doc.removeEventListener(loaded, f, false); - doc.readyState = "complete"; - }, false); - doc.readyState = "loading"; - } - function isLoaded() { - (/in/).test(doc.readyState) ? setTimeout(isLoaded, 9) : R.eve("raphael.DOMload"); - } - isLoaded(); - })(document, "DOMContentLoaded"); - - return R; -}); diff --git a/admin/bower_components/raphael/dev/raphael.svg.js b/admin/bower_components/raphael/dev/raphael.svg.js deleted file mode 100644 index 727b8d7..0000000 --- a/admin/bower_components/raphael/dev/raphael.svg.js +++ /dev/null @@ -1,1424 +0,0 @@ -define(["./raphael.core"], function(R) { - if (R && !R.svg) { - return; - } - - var has = "hasOwnProperty", - Str = String, - toFloat = parseFloat, - toInt = parseInt, - math = Math, - mmax = math.max, - abs = math.abs, - pow = math.pow, - separator = /[, ]+/, - eve = R.eve, - E = "", - S = " "; - var xlink = "http://www.w3.org/1999/xlink", - markers = { - block: "M5,0 0,2.5 5,5z", - classic: "M5,0 0,2.5 5,5 3.5,3 3.5,2z", - diamond: "M2.5,0 5,2.5 2.5,5 0,2.5z", - open: "M6,1 1,3.5 6,6", - oval: "M2.5,0A2.5,2.5,0,0,1,2.5,5 2.5,2.5,0,0,1,2.5,0z" - }, - markerCounter = {}; - R.toString = function () { - return "Your browser supports SVG.\nYou are running Rapha\xebl " + this.version; - }; - var $ = function (el, attr) { - if (attr) { - if (typeof el == "string") { - el = $(el); - } - for (var key in attr) if (attr[has](key)) { - if (key.substring(0, 6) == "xlink:") { - el.setAttributeNS(xlink, key.substring(6), Str(attr[key])); - } else { - el.setAttribute(key, Str(attr[key])); - } - } - } else { - el = R._g.doc.createElementNS("http://www.w3.org/2000/svg", el); - el.style && (el.style.webkitTapHighlightColor = "rgba(0,0,0,0)"); - } - return el; - }, - addGradientFill = function (element, gradient) { - var type = "linear", - id = element.id + gradient, - fx = .5, fy = .5, - o = element.node, - SVG = element.paper, - s = o.style, - el = R._g.doc.getElementById(id); - if (!el) { - gradient = Str(gradient).replace(R._radial_gradient, function (all, _fx, _fy) { - type = "radial"; - if (_fx && _fy) { - fx = toFloat(_fx); - fy = toFloat(_fy); - var dir = ((fy > .5) * 2 - 1); - pow(fx - .5, 2) + pow(fy - .5, 2) > .25 && - (fy = math.sqrt(.25 - pow(fx - .5, 2)) * dir + .5) && - fy != .5 && - (fy = fy.toFixed(5) - 1e-5 * dir); - } - return E; - }); - gradient = gradient.split(/\s*\-\s*/); - if (type == "linear") { - var angle = gradient.shift(); - angle = -toFloat(angle); - if (isNaN(angle)) { - return null; - } - var vector = [0, 0, math.cos(R.rad(angle)), math.sin(R.rad(angle))], - max = 1 / (mmax(abs(vector[2]), abs(vector[3])) || 1); - vector[2] *= max; - vector[3] *= max; - if (vector[2] < 0) { - vector[0] = -vector[2]; - vector[2] = 0; - } - if (vector[3] < 0) { - vector[1] = -vector[3]; - vector[3] = 0; - } - } - var dots = R._parseDots(gradient); - if (!dots) { - return null; - } - id = id.replace(/[\(\)\s,\xb0#]/g, "_"); - - if (element.gradient && id != element.gradient.id) { - SVG.defs.removeChild(element.gradient); - delete element.gradient; - } - - if (!element.gradient) { - el = $(type + "Gradient", {id: id}); - element.gradient = el; - $(el, type == "radial" ? { - fx: fx, - fy: fy - } : { - x1: vector[0], - y1: vector[1], - x2: vector[2], - y2: vector[3], - gradientTransform: element.matrix.invert() - }); - SVG.defs.appendChild(el); - for (var i = 0, ii = dots.length; i < ii; i++) { - el.appendChild($("stop", { - offset: dots[i].offset ? dots[i].offset : i ? "100%" : "0%", - "stop-color": dots[i].color || "#fff", - "stop-opacity": isFinite(dots[i].opacity) ? dots[i].opacity : 1 - })); - } - } - } - $(o, { - fill: fillurl(id), - opacity: 1, - "fill-opacity": 1 - }); - s.fill = E; - s.opacity = 1; - s.fillOpacity = 1; - return 1; - }, - isIE9or10 = function () { - var mode = document.documentMode; - return mode && (mode === 9 || mode === 10); - }, - fillurl = function (id) { - if (isIE9or10()) { - return "url('#" + id + "')"; - } - var location = document.location; - var locationString = ( - location.protocol + '//' + - location.host + - location.pathname + - location.search - ); - return "url('" + locationString + "#" + id + "')"; - }, - updatePosition = function (o) { - var bbox = o.getBBox(1); - $(o.pattern, {patternTransform: o.matrix.invert() + " translate(" + bbox.x + "," + bbox.y + ")"}); - }, - addArrow = function (o, value, isEnd) { - if (o.type == "path") { - var values = Str(value).toLowerCase().split("-"), - p = o.paper, - se = isEnd ? "end" : "start", - node = o.node, - attrs = o.attrs, - stroke = attrs["stroke-width"], - i = values.length, - type = "classic", - from, - to, - dx, - refX, - attr, - w = 3, - h = 3, - t = 5; - while (i--) { - switch (values[i]) { - case "block": - case "classic": - case "oval": - case "diamond": - case "open": - case "none": - type = values[i]; - break; - case "wide": h = 5; break; - case "narrow": h = 2; break; - case "long": w = 5; break; - case "short": w = 2; break; - } - } - if (type == "open") { - w += 2; - h += 2; - t += 2; - dx = 1; - refX = isEnd ? 4 : 1; - attr = { - fill: "none", - stroke: attrs.stroke - }; - } else { - refX = dx = w / 2; - attr = { - fill: attrs.stroke, - stroke: "none" - }; - } - if (o._.arrows) { - if (isEnd) { - o._.arrows.endPath && markerCounter[o._.arrows.endPath]--; - o._.arrows.endMarker && markerCounter[o._.arrows.endMarker]--; - } else { - o._.arrows.startPath && markerCounter[o._.arrows.startPath]--; - o._.arrows.startMarker && markerCounter[o._.arrows.startMarker]--; - } - } else { - o._.arrows = {}; - } - if (type != "none") { - var pathId = "raphael-marker-" + type, - markerId = "raphael-marker-" + se + type + w + h + "-obj" + o.id; - if (!R._g.doc.getElementById(pathId)) { - p.defs.appendChild($($("path"), { - "stroke-linecap": "round", - d: markers[type], - id: pathId - })); - markerCounter[pathId] = 1; - } else { - markerCounter[pathId]++; - } - var marker = R._g.doc.getElementById(markerId), - use; - if (!marker) { - marker = $($("marker"), { - id: markerId, - markerHeight: h, - markerWidth: w, - orient: "auto", - refX: refX, - refY: h / 2 - }); - use = $($("use"), { - "xlink:href": "#" + pathId, - transform: (isEnd ? "rotate(180 " + w / 2 + " " + h / 2 + ") " : E) + "scale(" + w / t + "," + h / t + ")", - "stroke-width": (1 / ((w / t + h / t) / 2)).toFixed(4) - }); - marker.appendChild(use); - p.defs.appendChild(marker); - markerCounter[markerId] = 1; - } else { - markerCounter[markerId]++; - use = marker.getElementsByTagName("use")[0]; - } - $(use, attr); - var delta = dx * (type != "diamond" && type != "oval"); - if (isEnd) { - from = o._.arrows.startdx * stroke || 0; - to = R.getTotalLength(attrs.path) - delta * stroke; - } else { - from = delta * stroke; - to = R.getTotalLength(attrs.path) - (o._.arrows.enddx * stroke || 0); - } - attr = {}; - attr["marker-" + se] = "url(#" + markerId + ")"; - if (to || from) { - attr.d = R.getSubpath(attrs.path, from, to); - } - $(node, attr); - o._.arrows[se + "Path"] = pathId; - o._.arrows[se + "Marker"] = markerId; - o._.arrows[se + "dx"] = delta; - o._.arrows[se + "Type"] = type; - o._.arrows[se + "String"] = value; - } else { - if (isEnd) { - from = o._.arrows.startdx * stroke || 0; - to = R.getTotalLength(attrs.path) - from; - } else { - from = 0; - to = R.getTotalLength(attrs.path) - (o._.arrows.enddx * stroke || 0); - } - o._.arrows[se + "Path"] && $(node, {d: R.getSubpath(attrs.path, from, to)}); - delete o._.arrows[se + "Path"]; - delete o._.arrows[se + "Marker"]; - delete o._.arrows[se + "dx"]; - delete o._.arrows[se + "Type"]; - delete o._.arrows[se + "String"]; - } - for (attr in markerCounter) if (markerCounter[has](attr) && !markerCounter[attr]) { - var item = R._g.doc.getElementById(attr); - item && item.parentNode.removeChild(item); - } - } - }, - dasharray = { - "-": [3, 1], - ".": [1, 1], - "-.": [3, 1, 1, 1], - "-..": [3, 1, 1, 1, 1, 1], - ". ": [1, 3], - "- ": [4, 3], - "--": [8, 3], - "- .": [4, 3, 1, 3], - "--.": [8, 3, 1, 3], - "--..": [8, 3, 1, 3, 1, 3] - }, - addDashes = function (o, value, params) { - value = dasharray[Str(value).toLowerCase()]; - if (value) { - var width = o.attrs["stroke-width"] || "1", - butt = {round: width, square: width, butt: 0}[o.attrs["stroke-linecap"] || params["stroke-linecap"]] || 0, - dashes = [], - i = value.length; - while (i--) { - dashes[i] = value[i] * width + ((i % 2) ? 1 : -1) * butt; - } - $(o.node, {"stroke-dasharray": dashes.join(",")}); - } - else { - $(o.node, {"stroke-dasharray": "none"}); - } - }, - setFillAndStroke = function (o, params) { - var node = o.node, - attrs = o.attrs, - vis = node.style.visibility; - node.style.visibility = "hidden"; - for (var att in params) { - if (params[has](att)) { - if (!R._availableAttrs[has](att)) { - continue; - } - var value = params[att]; - attrs[att] = value; - switch (att) { - case "blur": - o.blur(value); - break; - case "title": - var title = node.getElementsByTagName("title"); - - // Use the existing <title>. - if (title.length && (title = title[0])) { - title.firstChild.nodeValue = value; - } else { - title = $("title"); - var val = R._g.doc.createTextNode(value); - title.appendChild(val); - node.appendChild(title); - } - break; - case "href": - case "target": - var pn = node.parentNode; - if (pn.tagName.toLowerCase() != "a") { - var hl = $("a"); - pn.insertBefore(hl, node); - hl.appendChild(node); - pn = hl; - } - if (att == "target") { - pn.setAttributeNS(xlink, "show", value == "blank" ? "new" : value); - } else { - pn.setAttributeNS(xlink, att, value); - } - break; - case "cursor": - node.style.cursor = value; - break; - case "transform": - o.transform(value); - break; - case "arrow-start": - addArrow(o, value); - break; - case "arrow-end": - addArrow(o, value, 1); - break; - case "clip-rect": - var rect = Str(value).split(separator); - if (rect.length == 4) { - o.clip && o.clip.parentNode.parentNode.removeChild(o.clip.parentNode); - var el = $("clipPath"), - rc = $("rect"); - el.id = R.createUUID(); - $(rc, { - x: rect[0], - y: rect[1], - width: rect[2], - height: rect[3] - }); - el.appendChild(rc); - o.paper.defs.appendChild(el); - $(node, {"clip-path": "url(#" + el.id + ")"}); - o.clip = rc; - } - if (!value) { - var path = node.getAttribute("clip-path"); - if (path) { - var clip = R._g.doc.getElementById(path.replace(/(^url\(#|\)$)/g, E)); - clip && clip.parentNode.removeChild(clip); - $(node, {"clip-path": E}); - delete o.clip; - } - } - break; - case "path": - if (o.type == "path") { - $(node, {d: value ? attrs.path = R._pathToAbsolute(value) : "M0,0"}); - o._.dirty = 1; - if (o._.arrows) { - "startString" in o._.arrows && addArrow(o, o._.arrows.startString); - "endString" in o._.arrows && addArrow(o, o._.arrows.endString, 1); - } - } - break; - case "width": - node.setAttribute(att, value); - o._.dirty = 1; - if (attrs.fx) { - att = "x"; - value = attrs.x; - } else { - break; - } - case "x": - if (attrs.fx) { - value = -attrs.x - (attrs.width || 0); - } - case "rx": - if (att == "rx" && o.type == "rect") { - break; - } - case "cx": - node.setAttribute(att, value); - o.pattern && updatePosition(o); - o._.dirty = 1; - break; - case "height": - node.setAttribute(att, value); - o._.dirty = 1; - if (attrs.fy) { - att = "y"; - value = attrs.y; - } else { - break; - } - case "y": - if (attrs.fy) { - value = -attrs.y - (attrs.height || 0); - } - case "ry": - if (att == "ry" && o.type == "rect") { - break; - } - case "cy": - node.setAttribute(att, value); - o.pattern && updatePosition(o); - o._.dirty = 1; - break; - case "r": - if (o.type == "rect") { - $(node, {rx: value, ry: value}); - } else { - node.setAttribute(att, value); - } - o._.dirty = 1; - break; - case "src": - if (o.type == "image") { - node.setAttributeNS(xlink, "href", value); - } - break; - case "stroke-width": - if (o._.sx != 1 || o._.sy != 1) { - value /= mmax(abs(o._.sx), abs(o._.sy)) || 1; - } - node.setAttribute(att, value); - if (attrs["stroke-dasharray"]) { - addDashes(o, attrs["stroke-dasharray"], params); - } - if (o._.arrows) { - "startString" in o._.arrows && addArrow(o, o._.arrows.startString); - "endString" in o._.arrows && addArrow(o, o._.arrows.endString, 1); - } - break; - case "stroke-dasharray": - addDashes(o, value, params); - break; - case "fill": - var isURL = Str(value).match(R._ISURL); - if (isURL) { - el = $("pattern"); - var ig = $("image"); - el.id = R.createUUID(); - $(el, {x: 0, y: 0, patternUnits: "userSpaceOnUse", height: 1, width: 1}); - $(ig, {x: 0, y: 0, "xlink:href": isURL[1]}); - el.appendChild(ig); - - (function (el) { - R._preload(isURL[1], function () { - var w = this.offsetWidth, - h = this.offsetHeight; - $(el, {width: w, height: h}); - $(ig, {width: w, height: h}); - }); - })(el); - o.paper.defs.appendChild(el); - $(node, {fill: "url(#" + el.id + ")"}); - o.pattern = el; - o.pattern && updatePosition(o); - break; - } - var clr = R.getRGB(value); - if (!clr.error) { - delete params.gradient; - delete attrs.gradient; - !R.is(attrs.opacity, "undefined") && - R.is(params.opacity, "undefined") && - $(node, {opacity: attrs.opacity}); - !R.is(attrs["fill-opacity"], "undefined") && - R.is(params["fill-opacity"], "undefined") && - $(node, {"fill-opacity": attrs["fill-opacity"]}); - } else if ((o.type == "circle" || o.type == "ellipse" || Str(value).charAt() != "r") && addGradientFill(o, value)) { - if ("opacity" in attrs || "fill-opacity" in attrs) { - var gradient = R._g.doc.getElementById(node.getAttribute("fill").replace(/^url\(#|\)$/g, E)); - if (gradient) { - var stops = gradient.getElementsByTagName("stop"); - $(stops[stops.length - 1], {"stop-opacity": ("opacity" in attrs ? attrs.opacity : 1) * ("fill-opacity" in attrs ? attrs["fill-opacity"] : 1)}); - } - } - attrs.gradient = value; - attrs.fill = "none"; - break; - } - clr[has]("opacity") && $(node, {"fill-opacity": clr.opacity > 1 ? clr.opacity / 100 : clr.opacity}); - case "stroke": - clr = R.getRGB(value); - node.setAttribute(att, clr.hex); - att == "stroke" && clr[has]("opacity") && $(node, {"stroke-opacity": clr.opacity > 1 ? clr.opacity / 100 : clr.opacity}); - if (att == "stroke" && o._.arrows) { - "startString" in o._.arrows && addArrow(o, o._.arrows.startString); - "endString" in o._.arrows && addArrow(o, o._.arrows.endString, 1); - } - break; - case "gradient": - (o.type == "circle" || o.type == "ellipse" || Str(value).charAt() != "r") && addGradientFill(o, value); - break; - case "opacity": - if (attrs.gradient && !attrs[has]("stroke-opacity")) { - $(node, {"stroke-opacity": value > 1 ? value / 100 : value}); - } - // fall - case "fill-opacity": - if (attrs.gradient) { - gradient = R._g.doc.getElementById(node.getAttribute("fill").replace(/^url\(#|\)$/g, E)); - if (gradient) { - stops = gradient.getElementsByTagName("stop"); - $(stops[stops.length - 1], {"stop-opacity": value}); - } - break; - } - default: - att == "font-size" && (value = toInt(value, 10) + "px"); - var cssrule = att.replace(/(\-.)/g, function (w) { - return w.substring(1).toUpperCase(); - }); - node.style[cssrule] = value; - o._.dirty = 1; - node.setAttribute(att, value); - break; - } - } - } - - tuneText(o, params); - node.style.visibility = vis; - }, - leading = 1.2, - tuneText = function (el, params) { - if (el.type != "text" || !(params[has]("text") || params[has]("font") || params[has]("font-size") || params[has]("x") || params[has]("y"))) { - return; - } - var a = el.attrs, - node = el.node, - fontSize = node.firstChild ? toInt(R._g.doc.defaultView.getComputedStyle(node.firstChild, E).getPropertyValue("font-size"), 10) : 10; - - if (params[has]("text")) { - a.text = params.text; - while (node.firstChild) { - node.removeChild(node.firstChild); - } - var texts = Str(params.text).split("\n"), - tspans = [], - tspan; - for (var i = 0, ii = texts.length; i < ii; i++) { - tspan = $("tspan"); - i && $(tspan, {dy: fontSize * leading, x: a.x}); - tspan.appendChild(R._g.doc.createTextNode(texts[i])); - node.appendChild(tspan); - tspans[i] = tspan; - } - } else { - tspans = node.getElementsByTagName("tspan"); - for (i = 0, ii = tspans.length; i < ii; i++) if (i) { - $(tspans[i], {dy: fontSize * leading, x: a.x}); - } else { - $(tspans[0], {dy: 0}); - } - } - $(node, {x: a.x, y: a.y}); - el._.dirty = 1; - var bb = el._getBBox(), - dif = a.y - (bb.y + bb.height / 2); - dif && R.is(dif, "finite") && $(tspans[0], {dy: dif}); - }, - getRealNode = function (node) { - if (node.parentNode && node.parentNode.tagName.toLowerCase() === "a") { - return node.parentNode; - } else { - return node; - } - }, - Element = function (node, svg) { - var X = 0, - Y = 0; - /*\ - * Element.node - [ property (object) ] - ** - * Gives you a reference to the DOM object, so you can assign event handlers or just mess around. - ** - * Note: Don’t mess with it. - > Usage - | // draw a circle at coordinate 10,10 with radius of 10 - | var c = paper.circle(10, 10, 10); - | c.node.onclick = function () { - | c.attr("fill", "red"); - | }; - \*/ - this[0] = this.node = node; - /*\ - * Element.raphael - [ property (object) ] - ** - * Internal reference to @Raphael object. In case it is not available. - > Usage - | Raphael.el.red = function () { - | var hsb = this.paper.raphael.rgb2hsb(this.attr("fill")); - | hsb.h = 1; - | this.attr({fill: this.paper.raphael.hsb2rgb(hsb).hex}); - | } - \*/ - node.raphael = true; - /*\ - * Element.id - [ property (number) ] - ** - * Unique id of the element. Especially useful when you want to listen to events of the element, - * because all events are fired in format `<module>.<action>.<id>`. Also useful for @Paper.getById method. - \*/ - this.id = guid(); - node.raphaelid = this.id; - - /** - * Method that returns a 5 letter/digit id, enough for 36^5 = 60466176 elements - * @returns {string} id - */ - function guid() { - return ("0000" + (Math.random()*Math.pow(36,5) << 0).toString(36)).slice(-5); - } - - this.matrix = R.matrix(); - this.realPath = null; - /*\ - * Element.paper - [ property (object) ] - ** - * Internal reference to “paper” where object drawn. Mainly for use in plugins and element extensions. - > Usage - | Raphael.el.cross = function () { - | this.attr({fill: "red"}); - | this.paper.path("M10,10L50,50M50,10L10,50") - | .attr({stroke: "red"}); - | } - \*/ - this.paper = svg; - this.attrs = this.attrs || {}; - this._ = { - transform: [], - sx: 1, - sy: 1, - deg: 0, - dx: 0, - dy: 0, - dirty: 1 - }; - !svg.bottom && (svg.bottom = this); - /*\ - * Element.prev - [ property (object) ] - ** - * Reference to the previous element in the hierarchy. - \*/ - this.prev = svg.top; - svg.top && (svg.top.next = this); - svg.top = this; - /*\ - * Element.next - [ property (object) ] - ** - * Reference to the next element in the hierarchy. - \*/ - this.next = null; - }, - elproto = R.el; - - Element.prototype = elproto; - elproto.constructor = Element; - - R._engine.path = function (pathString, SVG) { - var el = $("path"); - SVG.canvas && SVG.canvas.appendChild(el); - var p = new Element(el, SVG); - p.type = "path"; - setFillAndStroke(p, { - fill: "none", - stroke: "#000", - path: pathString - }); - return p; - }; - /*\ - * Element.rotate - [ method ] - ** - * Deprecated! Use @Element.transform instead. - * Adds rotation by given angle around given point to the list of - * transformations of the element. - > Parameters - - deg (number) angle in degrees - - cx (number) #optional x coordinate of the centre of rotation - - cy (number) #optional y coordinate of the centre of rotation - * If cx & cy aren’t specified centre of the shape is used as a point of rotation. - = (object) @Element - \*/ - elproto.rotate = function (deg, cx, cy) { - if (this.removed) { - return this; - } - deg = Str(deg).split(separator); - if (deg.length - 1) { - cx = toFloat(deg[1]); - cy = toFloat(deg[2]); - } - deg = toFloat(deg[0]); - (cy == null) && (cx = cy); - if (cx == null || cy == null) { - var bbox = this.getBBox(1); - cx = bbox.x + bbox.width / 2; - cy = bbox.y + bbox.height / 2; - } - this.transform(this._.transform.concat([["r", deg, cx, cy]])); - return this; - }; - /*\ - * Element.scale - [ method ] - ** - * Deprecated! Use @Element.transform instead. - * Adds scale by given amount relative to given point to the list of - * transformations of the element. - > Parameters - - sx (number) horisontal scale amount - - sy (number) vertical scale amount - - cx (number) #optional x coordinate of the centre of scale - - cy (number) #optional y coordinate of the centre of scale - * If cx & cy aren’t specified centre of the shape is used instead. - = (object) @Element - \*/ - elproto.scale = function (sx, sy, cx, cy) { - if (this.removed) { - return this; - } - sx = Str(sx).split(separator); - if (sx.length - 1) { - sy = toFloat(sx[1]); - cx = toFloat(sx[2]); - cy = toFloat(sx[3]); - } - sx = toFloat(sx[0]); - (sy == null) && (sy = sx); - (cy == null) && (cx = cy); - if (cx == null || cy == null) { - var bbox = this.getBBox(1); - } - cx = cx == null ? bbox.x + bbox.width / 2 : cx; - cy = cy == null ? bbox.y + bbox.height / 2 : cy; - this.transform(this._.transform.concat([["s", sx, sy, cx, cy]])); - return this; - }; - /*\ - * Element.translate - [ method ] - ** - * Deprecated! Use @Element.transform instead. - * Adds translation by given amount to the list of transformations of the element. - > Parameters - - dx (number) horisontal shift - - dy (number) vertical shift - = (object) @Element - \*/ - elproto.translate = function (dx, dy) { - if (this.removed) { - return this; - } - dx = Str(dx).split(separator); - if (dx.length - 1) { - dy = toFloat(dx[1]); - } - dx = toFloat(dx[0]) || 0; - dy = +dy || 0; - this.transform(this._.transform.concat([["t", dx, dy]])); - return this; - }; - /*\ - * Element.transform - [ method ] - ** - * Adds transformation to the element which is separate to other attributes, - * i.e. translation doesn’t change `x` or `y` of the rectange. The format - * of transformation string is similar to the path string syntax: - | "t100,100r30,100,100s2,2,100,100r45s1.5" - * Each letter is a command. There are four commands: `t` is for translate, `r` is for rotate, `s` is for - * scale and `m` is for matrix. - * - * There are also alternative “absolute” translation, rotation and scale: `T`, `R` and `S`. They will not take previous transformation into account. For example, `...T100,0` will always move element 100 px horisontally, while `...t100,0` could move it vertically if there is `r90` before. Just compare results of `r90t100,0` and `r90T100,0`. - * - * So, the example line above could be read like “translate by 100, 100; rotate 30° around 100, 100; scale twice around 100, 100; - * rotate 45° around centre; scale 1.5 times relative to centre”. As you can see rotate and scale commands have origin - * coordinates as optional parameters, the default is the centre point of the element. - * Matrix accepts six parameters. - > Usage - | var el = paper.rect(10, 20, 300, 200); - | // translate 100, 100, rotate 45°, translate -100, 0 - | el.transform("t100,100r45t-100,0"); - | // if you want you can append or prepend transformations - | el.transform("...t50,50"); - | el.transform("s2..."); - | // or even wrap - | el.transform("t50,50...t-50-50"); - | // to reset transformation call method with empty string - | el.transform(""); - | // to get current value call it without parameters - | console.log(el.transform()); - > Parameters - - tstr (string) #optional transformation string - * If tstr isn’t specified - = (string) current transformation string - * else - = (object) @Element - \*/ - elproto.transform = function (tstr) { - var _ = this._; - if (tstr == null) { - return _.transform; - } - R._extractTransform(this, tstr); - - this.clip && $(this.clip, {transform: this.matrix.invert()}); - this.pattern && updatePosition(this); - this.node && $(this.node, {transform: this.matrix}); - - if (_.sx != 1 || _.sy != 1) { - var sw = this.attrs[has]("stroke-width") ? this.attrs["stroke-width"] : 1; - this.attr({"stroke-width": sw}); - } - - return this; - }; - /*\ - * Element.hide - [ method ] - ** - * Makes element invisible. See @Element.show. - = (object) @Element - \*/ - elproto.hide = function () { - if(!this.removed) this.node.style.display = "none"; - return this; - }; - /*\ - * Element.show - [ method ] - ** - * Makes element visible. See @Element.hide. - = (object) @Element - \*/ - elproto.show = function () { - if(!this.removed) this.node.style.display = ""; - return this; - }; - /*\ - * Element.remove - [ method ] - ** - * Removes element from the paper. - \*/ - elproto.remove = function () { - var node = getRealNode(this.node); - if (this.removed || !node.parentNode) { - return; - } - var paper = this.paper; - paper.__set__ && paper.__set__.exclude(this); - eve.unbind("raphael.*.*." + this.id); - if (this.gradient) { - paper.defs.removeChild(this.gradient); - } - R._tear(this, paper); - - node.parentNode.removeChild(node); - - // Remove custom data for element - this.removeData(); - - for (var i in this) { - this[i] = typeof this[i] == "function" ? R._removedFactory(i) : null; - } - this.removed = true; - }; - elproto._getBBox = function () { - if (this.node.style.display == "none") { - this.show(); - var hide = true; - } - var canvasHidden = false, - containerStyle; - if (this.paper.canvas.parentElement) { - containerStyle = this.paper.canvas.parentElement.style; - } //IE10+ can't find parentElement - else if (this.paper.canvas.parentNode) { - containerStyle = this.paper.canvas.parentNode.style; - } - - if(containerStyle && containerStyle.display == "none") { - canvasHidden = true; - containerStyle.display = ""; - } - var bbox = {}; - try { - bbox = this.node.getBBox(); - } catch(e) { - // Firefox 3.0.x, 25.0.1 (probably more versions affected) play badly here - possible fix - bbox = { - x: this.node.clientLeft, - y: this.node.clientTop, - width: this.node.clientWidth, - height: this.node.clientHeight - } - } finally { - bbox = bbox || {}; - if(canvasHidden){ - containerStyle.display = "none"; - } - } - hide && this.hide(); - return bbox; - }; - /*\ - * Element.attr - [ method ] - ** - * Sets the attributes of the element. - > Parameters - - attrName (string) attribute’s name - - value (string) value - * or - - params (object) object of name/value pairs - * or - - attrName (string) attribute’s name - * or - - attrNames (array) in this case method returns array of current values for given attribute names - = (object) @Element if attrsName & value or params are passed in. - = (...) value of the attribute if only attrsName is passed in. - = (array) array of values of the attribute if attrsNames is passed in. - = (object) object of attributes if nothing is passed in. - > Possible parameters - # <p>Please refer to the <a href="http://www.w3.org/TR/SVG/" title="The W3C Recommendation for the SVG language describes these properties in detail.">SVG specification</a> for an explanation of these parameters.</p> - o arrow-end (string) arrowhead on the end of the path. The format for string is `<type>[-<width>[-<length>]]`. Possible types: `classic`, `block`, `open`, `oval`, `diamond`, `none`, width: `wide`, `narrow`, `medium`, length: `long`, `short`, `midium`. - o clip-rect (string) comma or space separated values: x, y, width and height - o cursor (string) CSS type of the cursor - o cx (number) the x-axis coordinate of the center of the circle, or ellipse - o cy (number) the y-axis coordinate of the center of the circle, or ellipse - o fill (string) colour, gradient or image - o fill-opacity (number) - o font (string) - o font-family (string) - o font-size (number) font size in pixels - o font-weight (string) - o height (number) - o href (string) URL, if specified element behaves as hyperlink - o opacity (number) - o path (string) SVG path string format - o r (number) radius of the circle, ellipse or rounded corner on the rect - o rx (number) horisontal radius of the ellipse - o ry (number) vertical radius of the ellipse - o src (string) image URL, only works for @Element.image element - o stroke (string) stroke colour - o stroke-dasharray (string) [“”, “none”, “`-`”, “`.`”, “`-.`”, “`-..`”, “`. `”, “`- `”, “`--`”, “`- .`”, “`--.`”, “`--..`”] - o stroke-linecap (string) [“`butt`”, “`square`”, “`round`”] - o stroke-linejoin (string) [“`bevel`”, “`round`”, “`miter`”] - o stroke-miterlimit (number) - o stroke-opacity (number) - o stroke-width (number) stroke width in pixels, default is '1' - o target (string) used with href - o text (string) contents of the text element. Use `\n` for multiline text - o text-anchor (string) [“`start`”, “`middle`”, “`end`”], default is “`middle`” - o title (string) will create tooltip with a given text - o transform (string) see @Element.transform - o width (number) - o x (number) - o y (number) - > Gradients - * Linear gradient format: “`‹angle›-‹colour›[-‹colour›[:‹offset›]]*-‹colour›`”, example: “`90-#fff-#000`” – 90° - * gradient from white to black or “`0-#fff-#f00:20-#000`” – 0° gradient from white via red (at 20%) to black. - * - * radial gradient: “`r[(‹fx›, ‹fy›)]‹colour›[-‹colour›[:‹offset›]]*-‹colour›`”, example: “`r#fff-#000`” – - * gradient from white to black or “`r(0.25, 0.75)#fff-#000`” – gradient from white to black with focus point - * at 0.25, 0.75. Focus point coordinates are in 0..1 range. Radial gradients can only be applied to circles and ellipses. - > Path String - # <p>Please refer to <a href="http://www.w3.org/TR/SVG/paths.html#PathData" title="Details of a path’s data attribute’s format are described in the SVG specification.">SVG documentation regarding path string</a>. Raphaël fully supports it.</p> - > Colour Parsing - # <ul> - # <li>Colour name (“<code>red</code>”, “<code>green</code>”, “<code>cornflowerblue</code>”, etc)</li> - # <li>#••• — shortened HTML colour: (“<code>#000</code>”, “<code>#fc0</code>”, etc)</li> - # <li>#•••••• — full length HTML colour: (“<code>#000000</code>”, “<code>#bd2300</code>”)</li> - # <li>rgb(•••, •••, •••) — red, green and blue channels’ values: (“<code>rgb(200,&nbsp;100,&nbsp;0)</code>”)</li> - # <li>rgb(•••%, •••%, •••%) — same as above, but in %: (“<code>rgb(100%,&nbsp;175%,&nbsp;0%)</code>”)</li> - # <li>rgba(•••, •••, •••, •••) — red, green and blue channels’ values: (“<code>rgba(200,&nbsp;100,&nbsp;0, .5)</code>”)</li> - # <li>rgba(•••%, •••%, •••%, •••%) — same as above, but in %: (“<code>rgba(100%,&nbsp;175%,&nbsp;0%, 50%)</code>”)</li> - # <li>hsb(•••, •••, •••) — hue, saturation and brightness values: (“<code>hsb(0.5,&nbsp;0.25,&nbsp;1)</code>”)</li> - # <li>hsb(•••%, •••%, •••%) — same as above, but in %</li> - # <li>hsba(•••, •••, •••, •••) — same as above, but with opacity</li> - # <li>hsl(•••, •••, •••) — almost the same as hsb, see <a href="http://en.wikipedia.org/wiki/HSL_and_HSV" title="HSL and HSV - Wikipedia, the free encyclopedia">Wikipedia page</a></li> - # <li>hsl(•••%, •••%, •••%) — same as above, but in %</li> - # <li>hsla(•••, •••, •••, •••) — same as above, but with opacity</li> - # <li>Optionally for hsb and hsl you could specify hue as a degree: “<code>hsl(240deg,&nbsp;1,&nbsp;.5)</code>” or, if you want to go fancy, “<code>hsl(240°,&nbsp;1,&nbsp;.5)</code>”</li> - # </ul> - \*/ - elproto.attr = function (name, value) { - if (this.removed) { - return this; - } - if (name == null) { - var res = {}; - for (var a in this.attrs) if (this.attrs[has](a)) { - res[a] = this.attrs[a]; - } - res.gradient && res.fill == "none" && (res.fill = res.gradient) && delete res.gradient; - res.transform = this._.transform; - return res; - } - if (value == null && R.is(name, "string")) { - if (name == "fill" && this.attrs.fill == "none" && this.attrs.gradient) { - return this.attrs.gradient; - } - if (name == "transform") { - return this._.transform; - } - var names = name.split(separator), - out = {}; - for (var i = 0, ii = names.length; i < ii; i++) { - name = names[i]; - if (name in this.attrs) { - out[name] = this.attrs[name]; - } else if (R.is(this.paper.customAttributes[name], "function")) { - out[name] = this.paper.customAttributes[name].def; - } else { - out[name] = R._availableAttrs[name]; - } - } - return ii - 1 ? out : out[names[0]]; - } - if (value == null && R.is(name, "array")) { - out = {}; - for (i = 0, ii = name.length; i < ii; i++) { - out[name[i]] = this.attr(name[i]); - } - return out; - } - if (value != null) { - var params = {}; - params[name] = value; - } else if (name != null && R.is(name, "object")) { - params = name; - } - for (var key in params) { - eve("raphael.attr." + key + "." + this.id, this, params[key]); - } - for (key in this.paper.customAttributes) if (this.paper.customAttributes[has](key) && params[has](key) && R.is(this.paper.customAttributes[key], "function")) { - var par = this.paper.customAttributes[key].apply(this, [].concat(params[key])); - this.attrs[key] = params[key]; - for (var subkey in par) if (par[has](subkey)) { - params[subkey] = par[subkey]; - } - } - setFillAndStroke(this, params); - return this; - }; - /*\ - * Element.toFront - [ method ] - ** - * Moves the element so it is the closest to the viewer’s eyes, on top of other elements. - = (object) @Element - \*/ - elproto.toFront = function () { - if (this.removed) { - return this; - } - var node = getRealNode(this.node); - node.parentNode.appendChild(node); - var svg = this.paper; - svg.top != this && R._tofront(this, svg); - return this; - }; - /*\ - * Element.toBack - [ method ] - ** - * Moves the element so it is the furthest from the viewer’s eyes, behind other elements. - = (object) @Element - \*/ - elproto.toBack = function () { - if (this.removed) { - return this; - } - var node = getRealNode(this.node); - var parentNode = node.parentNode; - parentNode.insertBefore(node, parentNode.firstChild); - R._toback(this, this.paper); - var svg = this.paper; - return this; - }; - /*\ - * Element.insertAfter - [ method ] - ** - * Inserts current object after the given one. - = (object) @Element - \*/ - elproto.insertAfter = function (element) { - if (this.removed || !element) { - return this; - } - - var node = getRealNode(this.node); - var afterNode = getRealNode(element.node || element[element.length - 1].node); - if (afterNode.nextSibling) { - afterNode.parentNode.insertBefore(node, afterNode.nextSibling); - } else { - afterNode.parentNode.appendChild(node); - } - R._insertafter(this, element, this.paper); - return this; - }; - /*\ - * Element.insertBefore - [ method ] - ** - * Inserts current object before the given one. - = (object) @Element - \*/ - elproto.insertBefore = function (element) { - if (this.removed || !element) { - return this; - } - - var node = getRealNode(this.node); - var beforeNode = getRealNode(element.node || element[0].node); - beforeNode.parentNode.insertBefore(node, beforeNode); - R._insertbefore(this, element, this.paper); - return this; - }; - elproto.blur = function (size) { - // Experimental. No Safari support. Use it on your own risk. - var t = this; - if (+size !== 0) { - var fltr = $("filter"), - blur = $("feGaussianBlur"); - t.attrs.blur = size; - fltr.id = R.createUUID(); - $(blur, {stdDeviation: +size || 1.5}); - fltr.appendChild(blur); - t.paper.defs.appendChild(fltr); - t._blur = fltr; - $(t.node, {filter: "url(#" + fltr.id + ")"}); - } else { - if (t._blur) { - t._blur.parentNode.removeChild(t._blur); - delete t._blur; - delete t.attrs.blur; - } - t.node.removeAttribute("filter"); - } - return t; - }; - R._engine.circle = function (svg, x, y, r) { - var el = $("circle"); - svg.canvas && svg.canvas.appendChild(el); - var res = new Element(el, svg); - res.attrs = {cx: x, cy: y, r: r, fill: "none", stroke: "#000"}; - res.type = "circle"; - $(el, res.attrs); - return res; - }; - R._engine.rect = function (svg, x, y, w, h, r) { - var el = $("rect"); - svg.canvas && svg.canvas.appendChild(el); - var res = new Element(el, svg); - res.attrs = {x: x, y: y, width: w, height: h, rx: r || 0, ry: r || 0, fill: "none", stroke: "#000"}; - res.type = "rect"; - $(el, res.attrs); - return res; - }; - R._engine.ellipse = function (svg, x, y, rx, ry) { - var el = $("ellipse"); - svg.canvas && svg.canvas.appendChild(el); - var res = new Element(el, svg); - res.attrs = {cx: x, cy: y, rx: rx, ry: ry, fill: "none", stroke: "#000"}; - res.type = "ellipse"; - $(el, res.attrs); - return res; - }; - R._engine.image = function (svg, src, x, y, w, h) { - var el = $("image"); - $(el, {x: x, y: y, width: w, height: h, preserveAspectRatio: "none"}); - el.setAttributeNS(xlink, "href", src); - svg.canvas && svg.canvas.appendChild(el); - var res = new Element(el, svg); - res.attrs = {x: x, y: y, width: w, height: h, src: src}; - res.type = "image"; - return res; - }; - R._engine.text = function (svg, x, y, text) { - var el = $("text"); - svg.canvas && svg.canvas.appendChild(el); - var res = new Element(el, svg); - res.attrs = { - x: x, - y: y, - "text-anchor": "middle", - text: text, - "font-family": R._availableAttrs["font-family"], - "font-size": R._availableAttrs["font-size"], - stroke: "none", - fill: "#000" - }; - res.type = "text"; - setFillAndStroke(res, res.attrs); - return res; - }; - R._engine.setSize = function (width, height) { - this.width = width || this.width; - this.height = height || this.height; - this.canvas.setAttribute("width", this.width); - this.canvas.setAttribute("height", this.height); - if (this._viewBox) { - this.setViewBox.apply(this, this._viewBox); - } - return this; - }; - R._engine.create = function () { - var con = R._getContainer.apply(0, arguments), - container = con && con.container, - x = con.x, - y = con.y, - width = con.width, - height = con.height; - if (!container) { - throw new Error("SVG container not found."); - } - var cnvs = $("svg"), - css = "overflow:hidden;", - isFloating; - x = x || 0; - y = y || 0; - width = width || 512; - height = height || 342; - $(cnvs, { - height: height, - version: 1.1, - width: width, - xmlns: "http://www.w3.org/2000/svg", - "xmlns:xlink": "http://www.w3.org/1999/xlink" - }); - if (container == 1) { - cnvs.style.cssText = css + "position:absolute;left:" + x + "px;top:" + y + "px"; - R._g.doc.body.appendChild(cnvs); - isFloating = 1; - } else { - cnvs.style.cssText = css + "position:relative"; - if (container.firstChild) { - container.insertBefore(cnvs, container.firstChild); - } else { - container.appendChild(cnvs); - } - } - container = new R._Paper; - container.width = width; - container.height = height; - container.canvas = cnvs; - container.clear(); - container._left = container._top = 0; - isFloating && (container.renderfix = function () {}); - container.renderfix(); - return container; - }; - R._engine.setViewBox = function (x, y, w, h, fit) { - eve("raphael.setViewBox", this, this._viewBox, [x, y, w, h, fit]); - var paperSize = this.getSize(), - size = mmax(w / paperSize.width, h / paperSize.height), - top = this.top, - aspectRatio = fit ? "xMidYMid meet" : "xMinYMin", - vb, - sw; - if (x == null) { - if (this._vbSize) { - size = 1; - } - delete this._vbSize; - vb = "0 0 " + this.width + S + this.height; - } else { - this._vbSize = size; - vb = x + S + y + S + w + S + h; - } - $(this.canvas, { - viewBox: vb, - preserveAspectRatio: aspectRatio - }); - while (size && top) { - sw = "stroke-width" in top.attrs ? top.attrs["stroke-width"] : 1; - top.attr({"stroke-width": sw}); - top._.dirty = 1; - top._.dirtyT = 1; - top = top.prev; - } - this._viewBox = [x, y, w, h, !!fit]; - return this; - }; - /*\ - * Paper.renderfix - [ method ] - ** - * Fixes the issue of Firefox and IE9 regarding subpixel rendering. If paper is dependent - * on other elements after reflow it could shift half pixel which cause for lines to lost their crispness. - * This method fixes the issue. - ** - Special thanks to Mariusz Nowak (http://www.medikoo.com/) for this method. - \*/ - R.prototype.renderfix = function () { - var cnvs = this.canvas, - s = cnvs.style, - pos; - try { - pos = cnvs.getScreenCTM() || cnvs.createSVGMatrix(); - } catch (e) { - pos = cnvs.createSVGMatrix(); - } - var left = -pos.e % 1, - top = -pos.f % 1; - if (left || top) { - if (left) { - this._left = (this._left + left) % 1; - s.left = this._left + "px"; - } - if (top) { - this._top = (this._top + top) % 1; - s.top = this._top + "px"; - } - } - }; - /*\ - * Paper.clear - [ method ] - ** - * Clears the paper, i.e. removes all the elements. - \*/ - R.prototype.clear = function () { - R.eve("raphael.clear", this); - var c = this.canvas; - while (c.firstChild) { - c.removeChild(c.firstChild); - } - this.bottom = this.top = null; - (this.desc = $("desc")).appendChild(R._g.doc.createTextNode("Created with Rapha\xebl " + R.version)); - c.appendChild(this.desc); - c.appendChild(this.defs = $("defs")); - }; - /*\ - * Paper.remove - [ method ] - ** - * Removes the paper from the DOM. - \*/ - R.prototype.remove = function () { - eve("raphael.remove", this); - this.canvas.parentNode && this.canvas.parentNode.removeChild(this.canvas); - for (var i in this) { - this[i] = typeof this[i] == "function" ? R._removedFactory(i) : null; - } - }; - var setproto = R.st; - for (var method in elproto) if (elproto[has](method) && !setproto[has](method)) { - setproto[method] = (function (methodname) { - return function () { - var arg = arguments; - return this.forEach(function (el) { - el[methodname].apply(el, arg); - }); - }; - })(method); - } -}); diff --git a/admin/bower_components/raphael/dev/raphael.vml.js b/admin/bower_components/raphael/dev/raphael.vml.js deleted file mode 100644 index f287632..0000000 --- a/admin/bower_components/raphael/dev/raphael.vml.js +++ /dev/null @@ -1,999 +0,0 @@ -define(["./raphael.core"], function(R) { - if (R && !R.vml) { - return; - } - - var has = "hasOwnProperty", - Str = String, - toFloat = parseFloat, - math = Math, - round = math.round, - mmax = math.max, - mmin = math.min, - abs = math.abs, - fillString = "fill", - separator = /[, ]+/, - eve = R.eve, - ms = " progid:DXImageTransform.Microsoft", - S = " ", - E = "", - map = {M: "m", L: "l", C: "c", Z: "x", m: "t", l: "r", c: "v", z: "x"}, - bites = /([clmz]),?([^clmz]*)/gi, - blurregexp = / progid:\S+Blur\([^\)]+\)/g, - val = /-?[^,\s-]+/g, - cssDot = "position:absolute;left:0;top:0;width:1px;height:1px;behavior:url(#default#VML)", - zoom = 21600, - pathTypes = {path: 1, rect: 1, image: 1}, - ovalTypes = {circle: 1, ellipse: 1}, - path2vml = function (path) { - var total = /[ahqstv]/ig, - command = R._pathToAbsolute; - Str(path).match(total) && (command = R._path2curve); - total = /[clmz]/g; - if (command == R._pathToAbsolute && !Str(path).match(total)) { - var res = Str(path).replace(bites, function (all, command, args) { - var vals = [], - isMove = command.toLowerCase() == "m", - res = map[command]; - args.replace(val, function (value) { - if (isMove && vals.length == 2) { - res += vals + map[command == "m" ? "l" : "L"]; - vals = []; - } - vals.push(round(value * zoom)); - }); - return res + vals; - }); - return res; - } - var pa = command(path), p, r; - res = []; - for (var i = 0, ii = pa.length; i < ii; i++) { - p = pa[i]; - r = pa[i][0].toLowerCase(); - r == "z" && (r = "x"); - for (var j = 1, jj = p.length; j < jj; j++) { - r += round(p[j] * zoom) + (j != jj - 1 ? "," : E); - } - res.push(r); - } - return res.join(S); - }, - compensation = function (deg, dx, dy) { - var m = R.matrix(); - m.rotate(-deg, .5, .5); - return { - dx: m.x(dx, dy), - dy: m.y(dx, dy) - }; - }, - setCoords = function (p, sx, sy, dx, dy, deg) { - var _ = p._, - m = p.matrix, - fillpos = _.fillpos, - o = p.node, - s = o.style, - y = 1, - flip = "", - dxdy, - kx = zoom / sx, - ky = zoom / sy; - s.visibility = "hidden"; - if (!sx || !sy) { - return; - } - o.coordsize = abs(kx) + S + abs(ky); - s.rotation = deg * (sx * sy < 0 ? -1 : 1); - if (deg) { - var c = compensation(deg, dx, dy); - dx = c.dx; - dy = c.dy; - } - sx < 0 && (flip += "x"); - sy < 0 && (flip += " y") && (y = -1); - s.flip = flip; - o.coordorigin = (dx * -kx) + S + (dy * -ky); - if (fillpos || _.fillsize) { - var fill = o.getElementsByTagName(fillString); - fill = fill && fill[0]; - o.removeChild(fill); - if (fillpos) { - c = compensation(deg, m.x(fillpos[0], fillpos[1]), m.y(fillpos[0], fillpos[1])); - fill.position = c.dx * y + S + c.dy * y; - } - if (_.fillsize) { - fill.size = _.fillsize[0] * abs(sx) + S + _.fillsize[1] * abs(sy); - } - o.appendChild(fill); - } - s.visibility = "visible"; - }; - R.toString = function () { - return "Your browser doesn\u2019t support SVG. Falling down to VML.\nYou are running Rapha\xebl " + this.version; - }; - var addArrow = function (o, value, isEnd) { - var values = Str(value).toLowerCase().split("-"), - se = isEnd ? "end" : "start", - i = values.length, - type = "classic", - w = "medium", - h = "medium"; - while (i--) { - switch (values[i]) { - case "block": - case "classic": - case "oval": - case "diamond": - case "open": - case "none": - type = values[i]; - break; - case "wide": - case "narrow": h = values[i]; break; - case "long": - case "short": w = values[i]; break; - } - } - var stroke = o.node.getElementsByTagName("stroke")[0]; - stroke[se + "arrow"] = type; - stroke[se + "arrowlength"] = w; - stroke[se + "arrowwidth"] = h; - }, - setFillAndStroke = function (o, params) { - // o.paper.canvas.style.display = "none"; - o.attrs = o.attrs || {}; - var node = o.node, - a = o.attrs, - s = node.style, - xy, - newpath = pathTypes[o.type] && (params.x != a.x || params.y != a.y || params.width != a.width || params.height != a.height || params.cx != a.cx || params.cy != a.cy || params.rx != a.rx || params.ry != a.ry || params.r != a.r), - isOval = ovalTypes[o.type] && (a.cx != params.cx || a.cy != params.cy || a.r != params.r || a.rx != params.rx || a.ry != params.ry), - res = o; - - - for (var par in params) if (params[has](par)) { - a[par] = params[par]; - } - if (newpath) { - a.path = R._getPath[o.type](o); - o._.dirty = 1; - } - params.href && (node.href = params.href); - params.title && (node.title = params.title); - params.target && (node.target = params.target); - params.cursor && (s.cursor = params.cursor); - "blur" in params && o.blur(params.blur); - if (params.path && o.type == "path" || newpath) { - node.path = path2vml(~Str(a.path).toLowerCase().indexOf("r") ? R._pathToAbsolute(a.path) : a.path); - o._.dirty = 1; - if (o.type == "image") { - o._.fillpos = [a.x, a.y]; - o._.fillsize = [a.width, a.height]; - setCoords(o, 1, 1, 0, 0, 0); - } - } - "transform" in params && o.transform(params.transform); - if (isOval) { - var cx = +a.cx, - cy = +a.cy, - rx = +a.rx || +a.r || 0, - ry = +a.ry || +a.r || 0; - node.path = R.format("ar{0},{1},{2},{3},{4},{1},{4},{1}x", round((cx - rx) * zoom), round((cy - ry) * zoom), round((cx + rx) * zoom), round((cy + ry) * zoom), round(cx * zoom)); - o._.dirty = 1; - } - if ("clip-rect" in params) { - var rect = Str(params["clip-rect"]).split(separator); - if (rect.length == 4) { - rect[2] = +rect[2] + (+rect[0]); - rect[3] = +rect[3] + (+rect[1]); - var div = node.clipRect || R._g.doc.createElement("div"), - dstyle = div.style; - dstyle.clip = R.format("rect({1}px {2}px {3}px {0}px)", rect); - if (!node.clipRect) { - dstyle.position = "absolute"; - dstyle.top = 0; - dstyle.left = 0; - dstyle.width = o.paper.width + "px"; - dstyle.height = o.paper.height + "px"; - node.parentNode.insertBefore(div, node); - div.appendChild(node); - node.clipRect = div; - } - } - if (!params["clip-rect"]) { - node.clipRect && (node.clipRect.style.clip = "auto"); - } - } - if (o.textpath) { - var textpathStyle = o.textpath.style; - params.font && (textpathStyle.font = params.font); - params["font-family"] && (textpathStyle.fontFamily = '"' + params["font-family"].split(",")[0].replace(/^['"]+|['"]+$/g, E) + '"'); - params["font-size"] && (textpathStyle.fontSize = params["font-size"]); - params["font-weight"] && (textpathStyle.fontWeight = params["font-weight"]); - params["font-style"] && (textpathStyle.fontStyle = params["font-style"]); - } - if ("arrow-start" in params) { - addArrow(res, params["arrow-start"]); - } - if ("arrow-end" in params) { - addArrow(res, params["arrow-end"], 1); - } - if (params.opacity != null || - params.fill != null || - params.src != null || - params.stroke != null || - params["stroke-width"] != null || - params["stroke-opacity"] != null || - params["fill-opacity"] != null || - params["stroke-dasharray"] != null || - params["stroke-miterlimit"] != null || - params["stroke-linejoin"] != null || - params["stroke-linecap"] != null) { - var fill = node.getElementsByTagName(fillString), - newfill = false; - fill = fill && fill[0]; - !fill && (newfill = fill = createNode(fillString)); - if (o.type == "image" && params.src) { - fill.src = params.src; - } - params.fill && (fill.on = true); - if (fill.on == null || params.fill == "none" || params.fill === null) { - fill.on = false; - } - if (fill.on && params.fill) { - var isURL = Str(params.fill).match(R._ISURL); - if (isURL) { - fill.parentNode == node && node.removeChild(fill); - fill.rotate = true; - fill.src = isURL[1]; - fill.type = "tile"; - var bbox = o.getBBox(1); - fill.position = bbox.x + S + bbox.y; - o._.fillpos = [bbox.x, bbox.y]; - - R._preload(isURL[1], function () { - o._.fillsize = [this.offsetWidth, this.offsetHeight]; - }); - } else { - fill.color = R.getRGB(params.fill).hex; - fill.src = E; - fill.type = "solid"; - if (R.getRGB(params.fill).error && (res.type in {circle: 1, ellipse: 1} || Str(params.fill).charAt() != "r") && addGradientFill(res, params.fill, fill)) { - a.fill = "none"; - a.gradient = params.fill; - fill.rotate = false; - } - } - } - if ("fill-opacity" in params || "opacity" in params) { - var opacity = ((+a["fill-opacity"] + 1 || 2) - 1) * ((+a.opacity + 1 || 2) - 1) * ((+R.getRGB(params.fill).o + 1 || 2) - 1); - opacity = mmin(mmax(opacity, 0), 1); - fill.opacity = opacity; - if (fill.src) { - fill.color = "none"; - } - } - node.appendChild(fill); - var stroke = (node.getElementsByTagName("stroke") && node.getElementsByTagName("stroke")[0]), - newstroke = false; - !stroke && (newstroke = stroke = createNode("stroke")); - if ((params.stroke && params.stroke != "none") || - params["stroke-width"] || - params["stroke-opacity"] != null || - params["stroke-dasharray"] || - params["stroke-miterlimit"] || - params["stroke-linejoin"] || - params["stroke-linecap"]) { - stroke.on = true; - } - (params.stroke == "none" || params.stroke === null || stroke.on == null || params.stroke == 0 || params["stroke-width"] == 0) && (stroke.on = false); - var strokeColor = R.getRGB(params.stroke); - stroke.on && params.stroke && (stroke.color = strokeColor.hex); - opacity = ((+a["stroke-opacity"] + 1 || 2) - 1) * ((+a.opacity + 1 || 2) - 1) * ((+strokeColor.o + 1 || 2) - 1); - var width = (toFloat(params["stroke-width"]) || 1) * .75; - opacity = mmin(mmax(opacity, 0), 1); - params["stroke-width"] == null && (width = a["stroke-width"]); - params["stroke-width"] && (stroke.weight = width); - width && width < 1 && (opacity *= width) && (stroke.weight = 1); - stroke.opacity = opacity; - - params["stroke-linejoin"] && (stroke.joinstyle = params["stroke-linejoin"] || "miter"); - stroke.miterlimit = params["stroke-miterlimit"] || 8; - params["stroke-linecap"] && (stroke.endcap = params["stroke-linecap"] == "butt" ? "flat" : params["stroke-linecap"] == "square" ? "square" : "round"); - if ("stroke-dasharray" in params) { - var dasharray = { - "-": "shortdash", - ".": "shortdot", - "-.": "shortdashdot", - "-..": "shortdashdotdot", - ". ": "dot", - "- ": "dash", - "--": "longdash", - "- .": "dashdot", - "--.": "longdashdot", - "--..": "longdashdotdot" - }; - stroke.dashstyle = dasharray[has](params["stroke-dasharray"]) ? dasharray[params["stroke-dasharray"]] : E; - } - newstroke && node.appendChild(stroke); - } - if (res.type == "text") { - res.paper.canvas.style.display = E; - var span = res.paper.span, - m = 100, - fontSize = a.font && a.font.match(/\d+(?:\.\d*)?(?=px)/); - s = span.style; - a.font && (s.font = a.font); - a["font-family"] && (s.fontFamily = a["font-family"]); - a["font-weight"] && (s.fontWeight = a["font-weight"]); - a["font-style"] && (s.fontStyle = a["font-style"]); - fontSize = toFloat(a["font-size"] || fontSize && fontSize[0]) || 10; - s.fontSize = fontSize * m + "px"; - res.textpath.string && (span.innerHTML = Str(res.textpath.string).replace(/</g, "&#60;").replace(/&/g, "&#38;").replace(/\n/g, "<br>")); - var brect = span.getBoundingClientRect(); - res.W = a.w = (brect.right - brect.left) / m; - res.H = a.h = (brect.bottom - brect.top) / m; - // res.paper.canvas.style.display = "none"; - res.X = a.x; - res.Y = a.y + res.H / 2; - - ("x" in params || "y" in params) && (res.path.v = R.format("m{0},{1}l{2},{1}", round(a.x * zoom), round(a.y * zoom), round(a.x * zoom) + 1)); - var dirtyattrs = ["x", "y", "text", "font", "font-family", "font-weight", "font-style", "font-size"]; - for (var d = 0, dd = dirtyattrs.length; d < dd; d++) if (dirtyattrs[d] in params) { - res._.dirty = 1; - break; - } - - // text-anchor emulation - switch (a["text-anchor"]) { - case "start": - res.textpath.style["v-text-align"] = "left"; - res.bbx = res.W / 2; - break; - case "end": - res.textpath.style["v-text-align"] = "right"; - res.bbx = -res.W / 2; - break; - default: - res.textpath.style["v-text-align"] = "center"; - res.bbx = 0; - break; - } - res.textpath.style["v-text-kern"] = true; - } - // res.paper.canvas.style.display = E; - }, - addGradientFill = function (o, gradient, fill) { - o.attrs = o.attrs || {}; - var attrs = o.attrs, - pow = Math.pow, - opacity, - oindex, - type = "linear", - fxfy = ".5 .5"; - o.attrs.gradient = gradient; - gradient = Str(gradient).replace(R._radial_gradient, function (all, fx, fy) { - type = "radial"; - if (fx && fy) { - fx = toFloat(fx); - fy = toFloat(fy); - pow(fx - .5, 2) + pow(fy - .5, 2) > .25 && (fy = math.sqrt(.25 - pow(fx - .5, 2)) * ((fy > .5) * 2 - 1) + .5); - fxfy = fx + S + fy; - } - return E; - }); - gradient = gradient.split(/\s*\-\s*/); - if (type == "linear") { - var angle = gradient.shift(); - angle = -toFloat(angle); - if (isNaN(angle)) { - return null; - } - } - var dots = R._parseDots(gradient); - if (!dots) { - return null; - } - o = o.shape || o.node; - if (dots.length) { - o.removeChild(fill); - fill.on = true; - fill.method = "none"; - fill.color = dots[0].color; - fill.color2 = dots[dots.length - 1].color; - var clrs = []; - for (var i = 0, ii = dots.length; i < ii; i++) { - dots[i].offset && clrs.push(dots[i].offset + S + dots[i].color); - } - fill.colors = clrs.length ? clrs.join() : "0% " + fill.color; - if (type == "radial") { - fill.type = "gradientTitle"; - fill.focus = "100%"; - fill.focussize = "0 0"; - fill.focusposition = fxfy; - fill.angle = 0; - } else { - // fill.rotate= true; - fill.type = "gradient"; - fill.angle = (270 - angle) % 360; - } - o.appendChild(fill); - } - return 1; - }, - Element = function (node, vml) { - this[0] = this.node = node; - node.raphael = true; - this.id = R._oid++; - node.raphaelid = this.id; - this.X = 0; - this.Y = 0; - this.attrs = {}; - this.paper = vml; - this.matrix = R.matrix(); - this._ = { - transform: [], - sx: 1, - sy: 1, - dx: 0, - dy: 0, - deg: 0, - dirty: 1, - dirtyT: 1 - }; - !vml.bottom && (vml.bottom = this); - this.prev = vml.top; - vml.top && (vml.top.next = this); - vml.top = this; - this.next = null; - }; - var elproto = R.el; - - Element.prototype = elproto; - elproto.constructor = Element; - elproto.transform = function (tstr) { - if (tstr == null) { - return this._.transform; - } - var vbs = this.paper._viewBoxShift, - vbt = vbs ? "s" + [vbs.scale, vbs.scale] + "-1-1t" + [vbs.dx, vbs.dy] : E, - oldt; - if (vbs) { - oldt = tstr = Str(tstr).replace(/\.{3}|\u2026/g, this._.transform || E); - } - R._extractTransform(this, vbt + tstr); - var matrix = this.matrix.clone(), - skew = this.skew, - o = this.node, - split, - isGrad = ~Str(this.attrs.fill).indexOf("-"), - isPatt = !Str(this.attrs.fill).indexOf("url("); - matrix.translate(1, 1); - if (isPatt || isGrad || this.type == "image") { - skew.matrix = "1 0 0 1"; - skew.offset = "0 0"; - split = matrix.split(); - if ((isGrad && split.noRotation) || !split.isSimple) { - o.style.filter = matrix.toFilter(); - var bb = this.getBBox(), - bbt = this.getBBox(1), - dx = bb.x - bbt.x, - dy = bb.y - bbt.y; - o.coordorigin = (dx * -zoom) + S + (dy * -zoom); - setCoords(this, 1, 1, dx, dy, 0); - } else { - o.style.filter = E; - setCoords(this, split.scalex, split.scaley, split.dx, split.dy, split.rotate); - } - } else { - o.style.filter = E; - skew.matrix = Str(matrix); - skew.offset = matrix.offset(); - } - if (oldt !== null) { // empty string value is true as well - this._.transform = oldt; - R._extractTransform(this, oldt); - } - return this; - }; - elproto.rotate = function (deg, cx, cy) { - if (this.removed) { - return this; - } - if (deg == null) { - return; - } - deg = Str(deg).split(separator); - if (deg.length - 1) { - cx = toFloat(deg[1]); - cy = toFloat(deg[2]); - } - deg = toFloat(deg[0]); - (cy == null) && (cx = cy); - if (cx == null || cy == null) { - var bbox = this.getBBox(1); - cx = bbox.x + bbox.width / 2; - cy = bbox.y + bbox.height / 2; - } - this._.dirtyT = 1; - this.transform(this._.transform.concat([["r", deg, cx, cy]])); - return this; - }; - elproto.translate = function (dx, dy) { - if (this.removed) { - return this; - } - dx = Str(dx).split(separator); - if (dx.length - 1) { - dy = toFloat(dx[1]); - } - dx = toFloat(dx[0]) || 0; - dy = +dy || 0; - if (this._.bbox) { - this._.bbox.x += dx; - this._.bbox.y += dy; - } - this.transform(this._.transform.concat([["t", dx, dy]])); - return this; - }; - elproto.scale = function (sx, sy, cx, cy) { - if (this.removed) { - return this; - } - sx = Str(sx).split(separator); - if (sx.length - 1) { - sy = toFloat(sx[1]); - cx = toFloat(sx[2]); - cy = toFloat(sx[3]); - isNaN(cx) && (cx = null); - isNaN(cy) && (cy = null); - } - sx = toFloat(sx[0]); - (sy == null) && (sy = sx); - (cy == null) && (cx = cy); - if (cx == null || cy == null) { - var bbox = this.getBBox(1); - } - cx = cx == null ? bbox.x + bbox.width / 2 : cx; - cy = cy == null ? bbox.y + bbox.height / 2 : cy; - - this.transform(this._.transform.concat([["s", sx, sy, cx, cy]])); - this._.dirtyT = 1; - return this; - }; - elproto.hide = function () { - !this.removed && (this.node.style.display = "none"); - return this; - }; - elproto.show = function () { - !this.removed && (this.node.style.display = E); - return this; - }; - // Needed to fix the vml setViewBox issues - elproto.auxGetBBox = R.el.getBBox; - elproto.getBBox = function(){ - var b = this.auxGetBBox(); - if (this.paper && this.paper._viewBoxShift) - { - var c = {}; - var z = 1/this.paper._viewBoxShift.scale; - c.x = b.x - this.paper._viewBoxShift.dx; - c.x *= z; - c.y = b.y - this.paper._viewBoxShift.dy; - c.y *= z; - c.width = b.width * z; - c.height = b.height * z; - c.x2 = c.x + c.width; - c.y2 = c.y + c.height; - return c; - } - return b; - }; - elproto._getBBox = function () { - if (this.removed) { - return {}; - } - return { - x: this.X + (this.bbx || 0) - this.W / 2, - y: this.Y - this.H, - width: this.W, - height: this.H - }; - }; - elproto.remove = function () { - if (this.removed || !this.node.parentNode) { - return; - } - this.paper.__set__ && this.paper.__set__.exclude(this); - R.eve.unbind("raphael.*.*." + this.id); - R._tear(this, this.paper); - this.node.parentNode.removeChild(this.node); - this.shape && this.shape.parentNode.removeChild(this.shape); - for (var i in this) { - this[i] = typeof this[i] == "function" ? R._removedFactory(i) : null; - } - this.removed = true; - }; - elproto.attr = function (name, value) { - if (this.removed) { - return this; - } - if (name == null) { - var res = {}; - for (var a in this.attrs) if (this.attrs[has](a)) { - res[a] = this.attrs[a]; - } - res.gradient && res.fill == "none" && (res.fill = res.gradient) && delete res.gradient; - res.transform = this._.transform; - return res; - } - if (value == null && R.is(name, "string")) { - if (name == fillString && this.attrs.fill == "none" && this.attrs.gradient) { - return this.attrs.gradient; - } - var names = name.split(separator), - out = {}; - for (var i = 0, ii = names.length; i < ii; i++) { - name = names[i]; - if (name in this.attrs) { - out[name] = this.attrs[name]; - } else if (R.is(this.paper.customAttributes[name], "function")) { - out[name] = this.paper.customAttributes[name].def; - } else { - out[name] = R._availableAttrs[name]; - } - } - return ii - 1 ? out : out[names[0]]; - } - if (this.attrs && value == null && R.is(name, "array")) { - out = {}; - for (i = 0, ii = name.length; i < ii; i++) { - out[name[i]] = this.attr(name[i]); - } - return out; - } - var params; - if (value != null) { - params = {}; - params[name] = value; - } - value == null && R.is(name, "object") && (params = name); - for (var key in params) { - eve("raphael.attr." + key + "." + this.id, this, params[key]); - } - if (params) { - for (key in this.paper.customAttributes) if (this.paper.customAttributes[has](key) && params[has](key) && R.is(this.paper.customAttributes[key], "function")) { - var par = this.paper.customAttributes[key].apply(this, [].concat(params[key])); - this.attrs[key] = params[key]; - for (var subkey in par) if (par[has](subkey)) { - params[subkey] = par[subkey]; - } - } - // this.paper.canvas.style.display = "none"; - if (params.text && this.type == "text") { - this.textpath.string = params.text; - } - setFillAndStroke(this, params); - // this.paper.canvas.style.display = E; - } - return this; - }; - elproto.toFront = function () { - !this.removed && this.node.parentNode.appendChild(this.node); - this.paper && this.paper.top != this && R._tofront(this, this.paper); - return this; - }; - elproto.toBack = function () { - if (this.removed) { - return this; - } - if (this.node.parentNode.firstChild != this.node) { - this.node.parentNode.insertBefore(this.node, this.node.parentNode.firstChild); - R._toback(this, this.paper); - } - return this; - }; - elproto.insertAfter = function (element) { - if (this.removed) { - return this; - } - if (element.constructor == R.st.constructor) { - element = element[element.length - 1]; - } - if (element.node.nextSibling) { - element.node.parentNode.insertBefore(this.node, element.node.nextSibling); - } else { - element.node.parentNode.appendChild(this.node); - } - R._insertafter(this, element, this.paper); - return this; - }; - elproto.insertBefore = function (element) { - if (this.removed) { - return this; - } - if (element.constructor == R.st.constructor) { - element = element[0]; - } - element.node.parentNode.insertBefore(this.node, element.node); - R._insertbefore(this, element, this.paper); - return this; - }; - elproto.blur = function (size) { - var s = this.node.runtimeStyle, - f = s.filter; - f = f.replace(blurregexp, E); - if (+size !== 0) { - this.attrs.blur = size; - s.filter = f + S + ms + ".Blur(pixelradius=" + (+size || 1.5) + ")"; - s.margin = R.format("-{0}px 0 0 -{0}px", round(+size || 1.5)); - } else { - s.filter = f; - s.margin = 0; - delete this.attrs.blur; - } - return this; - }; - - R._engine.path = function (pathString, vml) { - var el = createNode("shape"); - el.style.cssText = cssDot; - el.coordsize = zoom + S + zoom; - el.coordorigin = vml.coordorigin; - var p = new Element(el, vml), - attr = {fill: "none", stroke: "#000"}; - pathString && (attr.path = pathString); - p.type = "path"; - p.path = []; - p.Path = E; - setFillAndStroke(p, attr); - vml.canvas && vml.canvas.appendChild(el); - var skew = createNode("skew"); - skew.on = true; - el.appendChild(skew); - p.skew = skew; - p.transform(E); - return p; - }; - R._engine.rect = function (vml, x, y, w, h, r) { - var path = R._rectPath(x, y, w, h, r), - res = vml.path(path), - a = res.attrs; - res.X = a.x = x; - res.Y = a.y = y; - res.W = a.width = w; - res.H = a.height = h; - a.r = r; - a.path = path; - res.type = "rect"; - return res; - }; - R._engine.ellipse = function (vml, x, y, rx, ry) { - var res = vml.path(), - a = res.attrs; - res.X = x - rx; - res.Y = y - ry; - res.W = rx * 2; - res.H = ry * 2; - res.type = "ellipse"; - setFillAndStroke(res, { - cx: x, - cy: y, - rx: rx, - ry: ry - }); - return res; - }; - R._engine.circle = function (vml, x, y, r) { - var res = vml.path(), - a = res.attrs; - res.X = x - r; - res.Y = y - r; - res.W = res.H = r * 2; - res.type = "circle"; - setFillAndStroke(res, { - cx: x, - cy: y, - r: r - }); - return res; - }; - R._engine.image = function (vml, src, x, y, w, h) { - var path = R._rectPath(x, y, w, h), - res = vml.path(path).attr({stroke: "none"}), - a = res.attrs, - node = res.node, - fill = node.getElementsByTagName(fillString)[0]; - a.src = src; - res.X = a.x = x; - res.Y = a.y = y; - res.W = a.width = w; - res.H = a.height = h; - a.path = path; - res.type = "image"; - fill.parentNode == node && node.removeChild(fill); - fill.rotate = true; - fill.src = src; - fill.type = "tile"; - res._.fillpos = [x, y]; - res._.fillsize = [w, h]; - node.appendChild(fill); - setCoords(res, 1, 1, 0, 0, 0); - return res; - }; - R._engine.text = function (vml, x, y, text) { - var el = createNode("shape"), - path = createNode("path"), - o = createNode("textpath"); - x = x || 0; - y = y || 0; - text = text || ""; - path.v = R.format("m{0},{1}l{2},{1}", round(x * zoom), round(y * zoom), round(x * zoom) + 1); - path.textpathok = true; - o.string = Str(text); - o.on = true; - el.style.cssText = cssDot; - el.coordsize = zoom + S + zoom; - el.coordorigin = "0 0"; - var p = new Element(el, vml), - attr = { - fill: "#000", - stroke: "none", - font: R._availableAttrs.font, - text: text - }; - p.shape = el; - p.path = path; - p.textpath = o; - p.type = "text"; - p.attrs.text = Str(text); - p.attrs.x = x; - p.attrs.y = y; - p.attrs.w = 1; - p.attrs.h = 1; - setFillAndStroke(p, attr); - el.appendChild(o); - el.appendChild(path); - vml.canvas.appendChild(el); - var skew = createNode("skew"); - skew.on = true; - el.appendChild(skew); - p.skew = skew; - p.transform(E); - return p; - }; - R._engine.setSize = function (width, height) { - var cs = this.canvas.style; - this.width = width; - this.height = height; - width == +width && (width += "px"); - height == +height && (height += "px"); - cs.width = width; - cs.height = height; - cs.clip = "rect(0 " + width + " " + height + " 0)"; - if (this._viewBox) { - R._engine.setViewBox.apply(this, this._viewBox); - } - return this; - }; - R._engine.setViewBox = function (x, y, w, h, fit) { - R.eve("raphael.setViewBox", this, this._viewBox, [x, y, w, h, fit]); - var paperSize = this.getSize(), - width = paperSize.width, - height = paperSize.height, - H, W; - if (fit) { - H = height / h; - W = width / w; - if (w * H < width) { - x -= (width - w * H) / 2 / H; - } - if (h * W < height) { - y -= (height - h * W) / 2 / W; - } - } - this._viewBox = [x, y, w, h, !!fit]; - this._viewBoxShift = { - dx: -x, - dy: -y, - scale: paperSize - }; - this.forEach(function (el) { - el.transform("..."); - }); - return this; - }; - var createNode; - R._engine.initWin = function (win) { - var doc = win.document; - if (doc.styleSheets.length < 31) { - doc.createStyleSheet().addRule(".rvml", "behavior:url(#default#VML)"); - } else { - // no more room, add to the existing one - // http://msdn.microsoft.com/en-us/library/ms531194%28VS.85%29.aspx - doc.styleSheets[0].addRule(".rvml", "behavior:url(#default#VML)"); - } - try { - !doc.namespaces.rvml && doc.namespaces.add("rvml", "urn:schemas-microsoft-com:vml"); - createNode = function (tagName) { - return doc.createElement('<rvml:' + tagName + ' class="rvml">'); - }; - } catch (e) { - createNode = function (tagName) { - return doc.createElement('<' + tagName + ' xmlns="urn:schemas-microsoft.com:vml" class="rvml">'); - }; - } - }; - R._engine.initWin(R._g.win); - R._engine.create = function () { - var con = R._getContainer.apply(0, arguments), - container = con.container, - height = con.height, - s, - width = con.width, - x = con.x, - y = con.y; - if (!container) { - throw new Error("VML container not found."); - } - var res = new R._Paper, - c = res.canvas = R._g.doc.createElement("div"), - cs = c.style; - x = x || 0; - y = y || 0; - width = width || 512; - height = height || 342; - res.width = width; - res.height = height; - width == +width && (width += "px"); - height == +height && (height += "px"); - res.coordsize = zoom * 1e3 + S + zoom * 1e3; - res.coordorigin = "0 0"; - res.span = R._g.doc.createElement("span"); - res.span.style.cssText = "position:absolute;left:-9999em;top:-9999em;padding:0;margin:0;line-height:1;"; - c.appendChild(res.span); - cs.cssText = R.format("top:0;left:0;width:{0};height:{1};display:inline-block;position:relative;clip:rect(0 {0} {1} 0);overflow:hidden", width, height); - if (container == 1) { - R._g.doc.body.appendChild(c); - cs.left = x + "px"; - cs.top = y + "px"; - cs.position = "absolute"; - } else { - if (container.firstChild) { - container.insertBefore(c, container.firstChild); - } else { - container.appendChild(c); - } - } - res.renderfix = function () {}; - return res; - }; - R.prototype.clear = function () { - R.eve("raphael.clear", this); - this.canvas.innerHTML = E; - this.span = R._g.doc.createElement("span"); - this.span.style.cssText = "position:absolute;left:-9999em;top:-9999em;padding:0;margin:0;line-height:1;display:inline;"; - this.canvas.appendChild(this.span); - this.bottom = this.top = null; - }; - R.prototype.remove = function () { - R.eve("raphael.remove", this); - this.canvas.parentNode.removeChild(this.canvas); - for (var i in this) { - this[i] = typeof this[i] == "function" ? R._removedFactory(i) : null; - } - return true; - }; - - var setproto = R.st; - for (var method in elproto) if (elproto[has](method) && !setproto[has](method)) { - setproto[method] = (function (methodname) { - return function () { - var arg = arguments; - return this.forEach(function (el) { - el[methodname].apply(el, arg); - }); - }; - })(method); - } -}); diff --git a/admin/bower_components/raphael/dev/test/svg/dom.js b/admin/bower_components/raphael/dev/test/svg/dom.js deleted file mode 100644 index a27d3e1..0000000 --- a/admin/bower_components/raphael/dev/test/svg/dom.js +++ /dev/null @@ -1,317 +0,0 @@ -(function() { - -var paper, - url = 'http://raphaeljs.com'; - -module('DOM', { - setup: function() { - paper = new Raphael(document.getElementById('qunit-fixture'), 1000, 1000); - }, - teardown: function() { - paper.remove(); - } -}); - -var equalNodePosition = function(node, expectedParent, expectedPreviousSibling, expectedNextSibling) { - equal(node.parentNode, expectedParent); - equal(node.previousSibling, expectedPreviousSibling); - equal(node.nextSibling, expectedNextSibling); -}; - -var equalNodePositionWrapped = function(node, anchor, expectedParent, expectedPreviousSibling, expectedNextSibling) { - equal(node.parentNode, anchor); - equalNodePosition(anchor, expectedParent, expectedPreviousSibling, expectedNextSibling); -}; - -// Element#insertBefore -// -------------------- - -test('insertBefore: no element', function() { - var el = paper.rect(); - - el.insertBefore(null); - - equalNodePosition(el.node, paper.canvas, paper.defs, null); -}); - -test('insertBefore: first element', function() { - var x = paper.rect(); - var el = paper.rect(); - - el.insertBefore(x); - - equalNodePosition(el.node, paper.canvas, paper.defs, x.node); -}); - -test('insertBefore: middle element', function() { - var x = paper.rect(); - var y = paper.rect(); - var el = paper.rect(); - - el.insertBefore(y); - - equalNodePosition(el.node, paper.canvas, x.node, y.node); -}); - -test('insertBefore: no element when wrapped in <a>', function() { - var el = paper.rect().attr('href', url), - anchor = el.node.parentNode; - - el.insertBefore(null); - - equalNodePositionWrapped(el.node, anchor, paper.canvas, paper.defs, null); -}); - -test('insertBefore: first element when wrapped in <a>', function() { - var x = paper.rect(); - var el = paper.rect().attr('href', url), - anchor = el.node.parentNode; - - el.insertBefore(x); - - equalNodePositionWrapped(el.node, anchor, paper.canvas, paper.defs, x.node); -}); - -test('insertBefore: first element wrapped in <a> and wrapped in <a>', function() { - var x = paper.rect().attr('href', url), - xAnchor = x.node.parentNode; - var el = paper.rect().attr('href', url), - anchor = el.node.parentNode; - - el.insertBefore(x); - - equalNodePositionWrapped(el.node, anchor, paper.canvas, paper.defs, xAnchor); -}); - -test('insertBefore: middle element when wrapped in <a>', function() { - var x = paper.rect(); - var y = paper.rect(); - var el = paper.rect().attr('href', url), - anchor = el.node.parentNode; - - el.insertBefore(y); - - equalNodePositionWrapped(el.node, anchor, paper.canvas, x.node, y.node); -}); - -test('insertBefore: middle element wrapped in <a> and wrapped in <a>', function() { - var x = paper.rect().attr('href', url), - xAnchor = x.node.parentNode; - var y = paper.rect().attr('href', url), - yAnchor = y.node.parentNode; - var el = paper.rect().attr('href', url), - anchor = el.node.parentNode; - - el.insertBefore(y); - - equalNodePositionWrapped(el.node, anchor, paper.canvas, xAnchor, yAnchor); -}); - -// TODO... -// insertBefore: with set -// insertBefore: with nested set. - -// Element#insertAfter -// ------------------- - -test('insertAfter: no element', function() { - var el = paper.rect(); - - el.insertAfter(null); - - equalNodePosition(el.node, paper.canvas, paper.defs, null); -}); - -test('insertAfter: last element', function() { - var x = paper.rect(); - var el = paper.rect(); - - el.insertAfter(x); - - equalNodePosition(el.node, paper.canvas, x.node, null); -}); - -test('insertAfter: middle element', function() { - var x = paper.rect(); - var y = paper.rect(); - var el = paper.rect(); - - el.insertAfter(x); - - equalNodePosition(el.node, paper.canvas, x.node, y.node); -}); - -test('insertAfter: no element when wrapped in <a>', function() { - var el = paper.rect().attr('href', url), - anchor = el.node.parentNode; - - el.insertAfter(null); - - equalNodePositionWrapped(el.node, anchor, paper.canvas, paper.defs, null); -}); - -test('insertAfter: last element when wrapped in <a>', function() { - var x = paper.rect(); - var el = paper.rect().attr('href', url), - anchor = el.node.parentNode; - - el.insertAfter(x); - - equalNodePositionWrapped(el.node, anchor, paper.canvas, x.node, null); -}); - -test('insertAfter: last element wrapped in <a> and wrapped in <a>', function() { - var x = paper.rect().attr('href', url), - xAnchor = x.node.parentNode; - var el = paper.rect().attr('href', url), - anchor = el.node.parentNode; - - el.insertAfter(x); - - equalNodePositionWrapped(el.node, anchor, paper.canvas, xAnchor, null); -}); - -test('insertAfter: middle element when wrapped in <a>', function() { - var x = paper.rect(); - var y = paper.rect(); - var el = paper.rect().attr('href', url), - anchor = el.node.parentNode; - - el.insertAfter(x); - - equalNodePositionWrapped(el.node, anchor, paper.canvas, x.node, y.node); -}); - -test('insertAfter: middle element wrapped in <a> and wrapped in <a>', function() { - var x = paper.rect().attr('href', url), - xAnchor = x.node.parentNode; - var y = paper.rect().attr('href', url), - yAnchor = y.node.parentNode; - var el = paper.rect().attr('href', url), - anchor = el.node.parentNode; - - el.insertAfter(x); - - equalNodePositionWrapped(el.node, anchor, paper.canvas, xAnchor, yAnchor); -}); - -// TODO... -// insertAfter: with set -// insertAfter: with nested set. - -// Element#remove -// -------------- - -test('remove: after added', function() { - var el = paper.rect(), - node = el.node; - - el.remove(); - - equal(el.node, null); - equal(node.parentNode, null); -}); - -test('remove: when wrapped in <a>', function() { - var el = paper.rect().attr('href', url), - node = el.node, - anchor = node.parentNode; - - el.remove(); - - equal(el.node, null); - equal(node.parentNode, anchor); - equal(anchor.parentNode, null); -}); - -test('remove: when already removed', function() { - var el = paper.rect(), - node = el.node; - - el.remove(); - el.remove(); - - equal(el.node, null); - equal(node.parentNode, null); -}); - -test('remove: when the canvas is removed', function() { - var el = paper.rect(), - node = el.node; - - paper.remove(); - el.remove(); - - equal(el.node, null); - equal(node.parentNode, null); -}); - -// Element#toFront -// -------------- - -test('toFront: normal', function() { - var el = paper.rect(); - var x = paper.rect(); - - el.toFront(); - - equalNodePosition(el.node, paper.canvas, x.node, null); -}); - -test('toFront: when wrapped in <a>', function() { - var el = paper.rect().attr('href', url), - anchor = el.node.parentNode; - var x = paper.rect(); - - el.toFront(); - - equalNodePositionWrapped(el.node, anchor, paper.canvas, x.node, null); -}); - -// Element#toBack -// -------------- - -test('toBack: normal', function() { - var x = paper.rect(); - var el = paper.rect(); - - el.toBack(); - - equalNodePosition(el.node, paper.canvas, null, paper.desc); - equalNodePosition(x.node, paper.canvas, paper.defs, null); -}); - -test('toBack: when wrapped in <a>', function() { - var x = paper.rect(); - var el = paper.rect().attr('href', url), - anchor = el.node.parentNode; - - el.toBack(); - - equalNodePositionWrapped(el.node, anchor, paper.canvas, null, paper.desc); - equalNodePosition(x.node, paper.canvas, paper.defs, null); -}); - - -// Element#attrs -// ------------- - -// #x - -// #y - -// #rx - -// #ry - -// #transform - -// #title - -// #href - -//keep adding and testing! - - - -})(); \ No newline at end of file diff --git a/admin/bower_components/raphael/dev/test/vml/dom.js b/admin/bower_components/raphael/dev/test/vml/dom.js deleted file mode 100644 index ba41ea6..0000000 --- a/admin/bower_components/raphael/dev/test/vml/dom.js +++ /dev/null @@ -1,5 +0,0 @@ -(function() { - -module('DOM'); - -})(); \ No newline at end of file diff --git a/admin/bower_components/raphael/license.txt b/admin/bower_components/raphael/license.txt deleted file mode 100644 index 479afcb..0000000 --- a/admin/bower_components/raphael/license.txt +++ /dev/null @@ -1,21 +0,0 @@ -The MIT License - -Copyright (c) 2008-2010 Dmitry Baranovskiy - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -THE SOFTWARE. \ No newline at end of file diff --git a/admin/bower_components/raphael/raphael.js b/admin/bower_components/raphael/raphael.js deleted file mode 100644 index 8679b41..0000000 --- a/admin/bower_components/raphael/raphael.js +++ /dev/null @@ -1,8353 +0,0 @@ -// ┌───────────────────────────────────────────────────────────────────────────────────────────────────────┐ \\ -// │ Raphaël 2.2.0 - JavaScript Vector Library │ \\ -// ├───────────────────────────────────────────────────────────────────────────────────────────────────────┤ \\ -// │ Copyright © 2008-2016 Dmitry Baranovskiy (http://raphaeljs.com) │ \\ -// │ Copyright © 2008-2016 Sencha Labs (http://sencha.com) │ \\ -// ├───────────────────────────────────────────────────────────────────────────────────────────────────────┤ \\ -// │ Licensed under the MIT (https://github.com/DmitryBaranovskiy/raphael/blob/master/license.txt) license.│ \\ -// └───────────────────────────────────────────────────────────────────────────────────────────────────────┘ \\ - -(function webpackUniversalModuleDefinition(root, factory) { - if(typeof exports === 'object' && typeof module === 'object') - module.exports = factory(); - else if(typeof define === 'function' && define.amd) - define([], factory); - else if(typeof exports === 'object') - exports["Raphael"] = factory(); - else - root["Raphael"] = factory(); -})(this, function() { -return /******/ (function(modules) { // webpackBootstrap -/******/ // The module cache -/******/ var installedModules = {}; - -/******/ // The require function -/******/ function __webpack_require__(moduleId) { - -/******/ // Check if module is in cache -/******/ if(installedModules[moduleId]) -/******/ return installedModules[moduleId].exports; - -/******/ // Create a new module (and put it into the cache) -/******/ var module = installedModules[moduleId] = { -/******/ exports: {}, -/******/ id: moduleId, -/******/ loaded: false -/******/ }; - -/******/ // Execute the module function -/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__); - -/******/ // Flag the module as loaded -/******/ module.loaded = true; - -/******/ // Return the exports of the module -/******/ return module.exports; -/******/ } - - -/******/ // expose the modules object (__webpack_modules__) -/******/ __webpack_require__.m = modules; - -/******/ // expose the module cache -/******/ __webpack_require__.c = installedModules; - -/******/ // __webpack_public_path__ -/******/ __webpack_require__.p = ""; - -/******/ // Load entry module and return exports -/******/ return __webpack_require__(0); -/******/ }) -/************************************************************************/ -/******/ ([ -/* 0 */ -/***/ function(module, exports, __webpack_require__) { - - var __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;!(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(1), __webpack_require__(3), __webpack_require__(4)], __WEBPACK_AMD_DEFINE_RESULT__ = function(R) { - - return R; - - }.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)); - -/***/ }, -/* 1 */ -/***/ function(module, exports, __webpack_require__) { - - var __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;!(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(2)], __WEBPACK_AMD_DEFINE_RESULT__ = function(eve) { - - /*\ - * Raphael - [ method ] - ** - * Creates a canvas object on which to draw. - * You must do this first, as all future calls to drawing methods - * from this instance will be bound to this canvas. - > Parameters - ** - - container (HTMLElement|string) DOM element or its ID which is going to be a parent for drawing surface - - width (number) - - height (number) - - callback (function) #optional callback function which is going to be executed in the context of newly created paper - * or - - x (number) - - y (number) - - width (number) - - height (number) - - callback (function) #optional callback function which is going to be executed in the context of newly created paper - * or - - all (array) (first 3 or 4 elements in the array are equal to [containerID, width, height] or [x, y, width, height]. The rest are element descriptions in format {type: type, <attributes>}). See @Paper.add. - - callback (function) #optional callback function which is going to be executed in the context of newly created paper - * or - - onReadyCallback (function) function that is going to be called on DOM ready event. You can also subscribe to this event via Eve’s “DOMLoad” event. In this case method returns `undefined`. - = (object) @Paper - > Usage - | // Each of the following examples create a canvas - | // that is 320px wide by 200px high. - | // Canvas is created at the viewport’s 10,50 coordinate. - | var paper = Raphael(10, 50, 320, 200); - | // Canvas is created at the top left corner of the #notepad element - | // (or its top right corner in dir="rtl" elements) - | var paper = Raphael(document.getElementById("notepad"), 320, 200); - | // Same as above - | var paper = Raphael("notepad", 320, 200); - | // Image dump - | var set = Raphael(["notepad", 320, 200, { - | type: "rect", - | x: 10, - | y: 10, - | width: 25, - | height: 25, - | stroke: "#f00" - | }, { - | type: "text", - | x: 30, - | y: 40, - | text: "Dump" - | }]); - \*/ - function R(first) { - if (R.is(first, "function")) { - return loaded ? first() : eve.on("raphael.DOMload", first); - } else if (R.is(first, array)) { - return R._engine.create[apply](R, first.splice(0, 3 + R.is(first[0], nu))).add(first); - } else { - var args = Array.prototype.slice.call(arguments, 0); - if (R.is(args[args.length - 1], "function")) { - var f = args.pop(); - return loaded ? f.call(R._engine.create[apply](R, args)) : eve.on("raphael.DOMload", function () { - f.call(R._engine.create[apply](R, args)); - }); - } else { - return R._engine.create[apply](R, arguments); - } - } - } - R.version = "2.2.0"; - R.eve = eve; - var loaded, - separator = /[, ]+/, - elements = {circle: 1, rect: 1, path: 1, ellipse: 1, text: 1, image: 1}, - formatrg = /\{(\d+)\}/g, - proto = "prototype", - has = "hasOwnProperty", - g = { - doc: document, - win: window - }, - oldRaphael = { - was: Object.prototype[has].call(g.win, "Raphael"), - is: g.win.Raphael - }, - Paper = function () { - /*\ - * Paper.ca - [ property (object) ] - ** - * Shortcut for @Paper.customAttributes - \*/ - /*\ - * Paper.customAttributes - [ property (object) ] - ** - * If you have a set of attributes that you would like to represent - * as a function of some number you can do it easily with custom attributes: - > Usage - | paper.customAttributes.hue = function (num) { - | num = num % 1; - | return {fill: "hsb(" + num + ", 0.75, 1)"}; - | }; - | // Custom attribute “hue” will change fill - | // to be given hue with fixed saturation and brightness. - | // Now you can use it like this: - | var c = paper.circle(10, 10, 10).attr({hue: .45}); - | // or even like this: - | c.animate({hue: 1}, 1e3); - | - | // You could also create custom attribute - | // with multiple parameters: - | paper.customAttributes.hsb = function (h, s, b) { - | return {fill: "hsb(" + [h, s, b].join(",") + ")"}; - | }; - | c.attr({hsb: "0.5 .8 1"}); - | c.animate({hsb: [1, 0, 0.5]}, 1e3); - \*/ - this.ca = this.customAttributes = {}; - }, - paperproto, - appendChild = "appendChild", - apply = "apply", - concat = "concat", - supportsTouch = ('ontouchstart' in g.win) || g.win.DocumentTouch && g.doc instanceof DocumentTouch, //taken from Modernizr touch test - E = "", - S = " ", - Str = String, - split = "split", - events = "click dblclick mousedown mousemove mouseout mouseover mouseup touchstart touchmove touchend touchcancel"[split](S), - touchMap = { - mousedown: "touchstart", - mousemove: "touchmove", - mouseup: "touchend" - }, - lowerCase = Str.prototype.toLowerCase, - math = Math, - mmax = math.max, - mmin = math.min, - abs = math.abs, - pow = math.pow, - PI = math.PI, - nu = "number", - string = "string", - array = "array", - toString = "toString", - fillString = "fill", - objectToString = Object.prototype.toString, - paper = {}, - push = "push", - ISURL = R._ISURL = /^url\(['"]?(.+?)['"]?\)$/i, - colourRegExp = /^\s*((#[a-f\d]{6})|(#[a-f\d]{3})|rgba?\(\s*([\d\.]+%?\s*,\s*[\d\.]+%?\s*,\s*[\d\.]+%?(?:\s*,\s*[\d\.]+%?)?)\s*\)|hsba?\(\s*([\d\.]+(?:deg|\xb0|%)?\s*,\s*[\d\.]+%?\s*,\s*[\d\.]+(?:%?\s*,\s*[\d\.]+)?)%?\s*\)|hsla?\(\s*([\d\.]+(?:deg|\xb0|%)?\s*,\s*[\d\.]+%?\s*,\s*[\d\.]+(?:%?\s*,\s*[\d\.]+)?)%?\s*\))\s*$/i, - isnan = {"NaN": 1, "Infinity": 1, "-Infinity": 1}, - bezierrg = /^(?:cubic-)?bezier\(([^,]+),([^,]+),([^,]+),([^\)]+)\)/, - round = math.round, - setAttribute = "setAttribute", - toFloat = parseFloat, - toInt = parseInt, - upperCase = Str.prototype.toUpperCase, - availableAttrs = R._availableAttrs = { - "arrow-end": "none", - "arrow-start": "none", - blur: 0, - "clip-rect": "0 0 1e9 1e9", - cursor: "default", - cx: 0, - cy: 0, - fill: "#fff", - "fill-opacity": 1, - font: '10px "Arial"', - "font-family": '"Arial"', - "font-size": "10", - "font-style": "normal", - "font-weight": 400, - gradient: 0, - height: 0, - href: "http://raphaeljs.com/", - "letter-spacing": 0, - opacity: 1, - path: "M0,0", - r: 0, - rx: 0, - ry: 0, - src: "", - stroke: "#000", - "stroke-dasharray": "", - "stroke-linecap": "butt", - "stroke-linejoin": "butt", - "stroke-miterlimit": 0, - "stroke-opacity": 1, - "stroke-width": 1, - target: "_blank", - "text-anchor": "middle", - title: "Raphael", - transform: "", - width: 0, - x: 0, - y: 0, - "class": "" - }, - availableAnimAttrs = R._availableAnimAttrs = { - blur: nu, - "clip-rect": "csv", - cx: nu, - cy: nu, - fill: "colour", - "fill-opacity": nu, - "font-size": nu, - height: nu, - opacity: nu, - path: "path", - r: nu, - rx: nu, - ry: nu, - stroke: "colour", - "stroke-opacity": nu, - "stroke-width": nu, - transform: "transform", - width: nu, - x: nu, - y: nu - }, - whitespace = /[\x09\x0a\x0b\x0c\x0d\x20\xa0\u1680\u180e\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u202f\u205f\u3000\u2028\u2029]/g, - commaSpaces = /[\x09\x0a\x0b\x0c\x0d\x20\xa0\u1680\u180e\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u202f\u205f\u3000\u2028\u2029]*,[\x09\x0a\x0b\x0c\x0d\x20\xa0\u1680\u180e\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u202f\u205f\u3000\u2028\u2029]*/, - hsrg = {hs: 1, rg: 1}, - p2s = /,?([achlmqrstvxz]),?/gi, - pathCommand = /([achlmrqstvz])[\x09\x0a\x0b\x0c\x0d\x20\xa0\u1680\u180e\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u202f\u205f\u3000\u2028\u2029,]*((-?\d*\.?\d*(?:e[\-+]?\d+)?[\x09\x0a\x0b\x0c\x0d\x20\xa0\u1680\u180e\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u202f\u205f\u3000\u2028\u2029]*,?[\x09\x0a\x0b\x0c\x0d\x20\xa0\u1680\u180e\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u202f\u205f\u3000\u2028\u2029]*)+)/ig, - tCommand = /([rstm])[\x09\x0a\x0b\x0c\x0d\x20\xa0\u1680\u180e\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u202f\u205f\u3000\u2028\u2029,]*((-?\d*\.?\d*(?:e[\-+]?\d+)?[\x09\x0a\x0b\x0c\x0d\x20\xa0\u1680\u180e\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u202f\u205f\u3000\u2028\u2029]*,?[\x09\x0a\x0b\x0c\x0d\x20\xa0\u1680\u180e\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u202f\u205f\u3000\u2028\u2029]*)+)/ig, - pathValues = /(-?\d*\.?\d*(?:e[\-+]?\d+)?)[\x09\x0a\x0b\x0c\x0d\x20\xa0\u1680\u180e\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u202f\u205f\u3000\u2028\u2029]*,?[\x09\x0a\x0b\x0c\x0d\x20\xa0\u1680\u180e\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u202f\u205f\u3000\u2028\u2029]*/ig, - radial_gradient = R._radial_gradient = /^r(?:\(([^,]+?)[\x09\x0a\x0b\x0c\x0d\x20\xa0\u1680\u180e\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u202f\u205f\u3000\u2028\u2029]*,[\x09\x0a\x0b\x0c\x0d\x20\xa0\u1680\u180e\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u202f\u205f\u3000\u2028\u2029]*([^\)]+?)\))?/, - eldata = {}, - sortByKey = function (a, b) { - return a.key - b.key; - }, - sortByNumber = function (a, b) { - return toFloat(a) - toFloat(b); - }, - fun = function () {}, - pipe = function (x) { - return x; - }, - rectPath = R._rectPath = function (x, y, w, h, r) { - if (r) { - return [["M", x + r, y], ["l", w - r * 2, 0], ["a", r, r, 0, 0, 1, r, r], ["l", 0, h - r * 2], ["a", r, r, 0, 0, 1, -r, r], ["l", r * 2 - w, 0], ["a", r, r, 0, 0, 1, -r, -r], ["l", 0, r * 2 - h], ["a", r, r, 0, 0, 1, r, -r], ["z"]]; - } - return [["M", x, y], ["l", w, 0], ["l", 0, h], ["l", -w, 0], ["z"]]; - }, - ellipsePath = function (x, y, rx, ry) { - if (ry == null) { - ry = rx; - } - return [["M", x, y], ["m", 0, -ry], ["a", rx, ry, 0, 1, 1, 0, 2 * ry], ["a", rx, ry, 0, 1, 1, 0, -2 * ry], ["z"]]; - }, - getPath = R._getPath = { - path: function (el) { - return el.attr("path"); - }, - circle: function (el) { - var a = el.attrs; - return ellipsePath(a.cx, a.cy, a.r); - }, - ellipse: function (el) { - var a = el.attrs; - return ellipsePath(a.cx, a.cy, a.rx, a.ry); - }, - rect: function (el) { - var a = el.attrs; - return rectPath(a.x, a.y, a.width, a.height, a.r); - }, - image: function (el) { - var a = el.attrs; - return rectPath(a.x, a.y, a.width, a.height); - }, - text: function (el) { - var bbox = el._getBBox(); - return rectPath(bbox.x, bbox.y, bbox.width, bbox.height); - }, - set : function(el) { - var bbox = el._getBBox(); - return rectPath(bbox.x, bbox.y, bbox.width, bbox.height); - } - }, - /*\ - * Raphael.mapPath - [ method ] - ** - * Transform the path string with given matrix. - > Parameters - - path (string) path string - - matrix (object) see @Matrix - = (string) transformed path string - \*/ - mapPath = R.mapPath = function (path, matrix) { - if (!matrix) { - return path; - } - var x, y, i, j, ii, jj, pathi; - path = path2curve(path); - for (i = 0, ii = path.length; i < ii; i++) { - pathi = path[i]; - for (j = 1, jj = pathi.length; j < jj; j += 2) { - x = matrix.x(pathi[j], pathi[j + 1]); - y = matrix.y(pathi[j], pathi[j + 1]); - pathi[j] = x; - pathi[j + 1] = y; - } - } - return path; - }; - - R._g = g; - /*\ - * Raphael.type - [ property (string) ] - ** - * Can be “SVG”, “VML” or empty, depending on browser support. - \*/ - R.type = (g.win.SVGAngle || g.doc.implementation.hasFeature("http://www.w3.org/TR/SVG11/feature#BasicStructure", "1.1") ? "SVG" : "VML"); - if (R.type == "VML") { - var d = g.doc.createElement("div"), - b; - d.innerHTML = '<v:shape adj="1"/>'; - b = d.firstChild; - b.style.behavior = "url(#default#VML)"; - if (!(b && typeof b.adj == "object")) { - return (R.type = E); - } - d = null; - } - /*\ - * Raphael.svg - [ property (boolean) ] - ** - * `true` if browser supports SVG. - \*/ - /*\ - * Raphael.vml - [ property (boolean) ] - ** - * `true` if browser supports VML. - \*/ - R.svg = !(R.vml = R.type == "VML"); - R._Paper = Paper; - /*\ - * Raphael.fn - [ property (object) ] - ** - * You can add your own method to the canvas. For example if you want to draw a pie chart, - * you can create your own pie chart function and ship it as a Raphaël plugin. To do this - * you need to extend the `Raphael.fn` object. You should modify the `fn` object before a - * Raphaël instance is created, otherwise it will take no effect. Please note that the - * ability for namespaced plugins was removed in Raphael 2.0. It is up to the plugin to - * ensure any namespacing ensures proper context. - > Usage - | Raphael.fn.arrow = function (x1, y1, x2, y2, size) { - | return this.path( ... ); - | }; - | // or create namespace - | Raphael.fn.mystuff = { - | arrow: function () {…}, - | star: function () {…}, - | // etc… - | }; - | var paper = Raphael(10, 10, 630, 480); - | // then use it - | paper.arrow(10, 10, 30, 30, 5).attr({fill: "#f00"}); - | paper.mystuff.arrow(); - | paper.mystuff.star(); - \*/ - R.fn = paperproto = Paper.prototype = R.prototype; - R._id = 0; - /*\ - * Raphael.is - [ method ] - ** - * Handful of replacements for `typeof` operator. - > Parameters - - o (…) any object or primitive - - type (string) name of the type, i.e. “string”, “function”, “number”, etc. - = (boolean) is given value is of given type - \*/ - R.is = function (o, type) { - type = lowerCase.call(type); - if (type == "finite") { - return !isnan[has](+o); - } - if (type == "array") { - return o instanceof Array; - } - return (type == "null" && o === null) || - (type == typeof o && o !== null) || - (type == "object" && o === Object(o)) || - (type == "array" && Array.isArray && Array.isArray(o)) || - objectToString.call(o).slice(8, -1).toLowerCase() == type; - }; - - function clone(obj) { - if (typeof obj == "function" || Object(obj) !== obj) { - return obj; - } - var res = new obj.constructor; - for (var key in obj) if (obj[has](key)) { - res[key] = clone(obj[key]); - } - return res; - } - - /*\ - * Raphael.angle - [ method ] - ** - * Returns angle between two or three points - > Parameters - - x1 (number) x coord of first point - - y1 (number) y coord of first point - - x2 (number) x coord of second point - - y2 (number) y coord of second point - - x3 (number) #optional x coord of third point - - y3 (number) #optional y coord of third point - = (number) angle in degrees. - \*/ - R.angle = function (x1, y1, x2, y2, x3, y3) { - if (x3 == null) { - var x = x1 - x2, - y = y1 - y2; - if (!x && !y) { - return 0; - } - return (180 + math.atan2(-y, -x) * 180 / PI + 360) % 360; - } else { - return R.angle(x1, y1, x3, y3) - R.angle(x2, y2, x3, y3); - } - }; - /*\ - * Raphael.rad - [ method ] - ** - * Transform angle to radians - > Parameters - - deg (number) angle in degrees - = (number) angle in radians. - \*/ - R.rad = function (deg) { - return deg % 360 * PI / 180; - }; - /*\ - * Raphael.deg - [ method ] - ** - * Transform angle to degrees - > Parameters - - rad (number) angle in radians - = (number) angle in degrees. - \*/ - R.deg = function (rad) { - return Math.round ((rad * 180 / PI% 360)* 1000) / 1000; - }; - /*\ - * Raphael.snapTo - [ method ] - ** - * Snaps given value to given grid. - > Parameters - - values (array|number) given array of values or step of the grid - - value (number) value to adjust - - tolerance (number) #optional tolerance for snapping. Default is `10`. - = (number) adjusted value. - \*/ - R.snapTo = function (values, value, tolerance) { - tolerance = R.is(tolerance, "finite") ? tolerance : 10; - if (R.is(values, array)) { - var i = values.length; - while (i--) if (abs(values[i] - value) <= tolerance) { - return values[i]; - } - } else { - values = +values; - var rem = value % values; - if (rem < tolerance) { - return value - rem; - } - if (rem > values - tolerance) { - return value - rem + values; - } - } - return value; - }; - - /*\ - * Raphael.createUUID - [ method ] - ** - * Returns RFC4122, version 4 ID - \*/ - var createUUID = R.createUUID = (function (uuidRegEx, uuidReplacer) { - return function () { - return "xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(uuidRegEx, uuidReplacer).toUpperCase(); - }; - })(/[xy]/g, function (c) { - var r = math.random() * 16 | 0, - v = c == "x" ? r : (r & 3 | 8); - return v.toString(16); - }); - - /*\ - * Raphael.setWindow - [ method ] - ** - * Used when you need to draw in `&lt;iframe>`. Switched window to the iframe one. - > Parameters - - newwin (window) new window object - \*/ - R.setWindow = function (newwin) { - eve("raphael.setWindow", R, g.win, newwin); - g.win = newwin; - g.doc = g.win.document; - if (R._engine.initWin) { - R._engine.initWin(g.win); - } - }; - var toHex = function (color) { - if (R.vml) { - // http://dean.edwards.name/weblog/2009/10/convert-any-colour-value-to-hex-in-msie/ - var trim = /^\s+|\s+$/g; - var bod; - try { - var docum = new ActiveXObject("htmlfile"); - docum.write("<body>"); - docum.close(); - bod = docum.body; - } catch(e) { - bod = createPopup().document.body; - } - var range = bod.createTextRange(); - toHex = cacher(function (color) { - try { - bod.style.color = Str(color).replace(trim, E); - var value = range.queryCommandValue("ForeColor"); - value = ((value & 255) << 16) | (value & 65280) | ((value & 16711680) >>> 16); - return "#" + ("000000" + value.toString(16)).slice(-6); - } catch(e) { - return "none"; - } - }); - } else { - var i = g.doc.createElement("i"); - i.title = "Rapha\xebl Colour Picker"; - i.style.display = "none"; - g.doc.body.appendChild(i); - toHex = cacher(function (color) { - i.style.color = color; - return g.doc.defaultView.getComputedStyle(i, E).getPropertyValue("color"); - }); - } - return toHex(color); - }, - hsbtoString = function () { - return "hsb(" + [this.h, this.s, this.b] + ")"; - }, - hsltoString = function () { - return "hsl(" + [this.h, this.s, this.l] + ")"; - }, - rgbtoString = function () { - return this.hex; - }, - prepareRGB = function (r, g, b) { - if (g == null && R.is(r, "object") && "r" in r && "g" in r && "b" in r) { - b = r.b; - g = r.g; - r = r.r; - } - if (g == null && R.is(r, string)) { - var clr = R.getRGB(r); - r = clr.r; - g = clr.g; - b = clr.b; - } - if (r > 1 || g > 1 || b > 1) { - r /= 255; - g /= 255; - b /= 255; - } - - return [r, g, b]; - }, - packageRGB = function (r, g, b, o) { - r *= 255; - g *= 255; - b *= 255; - var rgb = { - r: r, - g: g, - b: b, - hex: R.rgb(r, g, b), - toString: rgbtoString - }; - R.is(o, "finite") && (rgb.opacity = o); - return rgb; - }; - - /*\ - * Raphael.color - [ method ] - ** - * Parses the color string and returns object with all values for the given color. - > Parameters - - clr (string) color string in one of the supported formats (see @Raphael.getRGB) - = (object) Combined RGB & HSB object in format: - o { - o r (number) red, - o g (number) green, - o b (number) blue, - o hex (string) color in HTML/CSS format: #••••••, - o error (boolean) `true` if string can’t be parsed, - o h (number) hue, - o s (number) saturation, - o v (number) value (brightness), - o l (number) lightness - o } - \*/ - R.color = function (clr) { - var rgb; - if (R.is(clr, "object") && "h" in clr && "s" in clr && "b" in clr) { - rgb = R.hsb2rgb(clr); - clr.r = rgb.r; - clr.g = rgb.g; - clr.b = rgb.b; - clr.hex = rgb.hex; - } else if (R.is(clr, "object") && "h" in clr && "s" in clr && "l" in clr) { - rgb = R.hsl2rgb(clr); - clr.r = rgb.r; - clr.g = rgb.g; - clr.b = rgb.b; - clr.hex = rgb.hex; - } else { - if (R.is(clr, "string")) { - clr = R.getRGB(clr); - } - if (R.is(clr, "object") && "r" in clr && "g" in clr && "b" in clr) { - rgb = R.rgb2hsl(clr); - clr.h = rgb.h; - clr.s = rgb.s; - clr.l = rgb.l; - rgb = R.rgb2hsb(clr); - clr.v = rgb.b; - } else { - clr = {hex: "none"}; - clr.r = clr.g = clr.b = clr.h = clr.s = clr.v = clr.l = -1; - } - } - clr.toString = rgbtoString; - return clr; - }; - /*\ - * Raphael.hsb2rgb - [ method ] - ** - * Converts HSB values to RGB object. - > Parameters - - h (number) hue - - s (number) saturation - - v (number) value or brightness - = (object) RGB object in format: - o { - o r (number) red, - o g (number) green, - o b (number) blue, - o hex (string) color in HTML/CSS format: #•••••• - o } - \*/ - R.hsb2rgb = function (h, s, v, o) { - if (this.is(h, "object") && "h" in h && "s" in h && "b" in h) { - v = h.b; - s = h.s; - o = h.o; - h = h.h; - } - h *= 360; - var R, G, B, X, C; - h = (h % 360) / 60; - C = v * s; - X = C * (1 - abs(h % 2 - 1)); - R = G = B = v - C; - - h = ~~h; - R += [C, X, 0, 0, X, C][h]; - G += [X, C, C, X, 0, 0][h]; - B += [0, 0, X, C, C, X][h]; - return packageRGB(R, G, B, o); - }; - /*\ - * Raphael.hsl2rgb - [ method ] - ** - * Converts HSL values to RGB object. - > Parameters - - h (number) hue - - s (number) saturation - - l (number) luminosity - = (object) RGB object in format: - o { - o r (number) red, - o g (number) green, - o b (number) blue, - o hex (string) color in HTML/CSS format: #•••••• - o } - \*/ - R.hsl2rgb = function (h, s, l, o) { - if (this.is(h, "object") && "h" in h && "s" in h && "l" in h) { - l = h.l; - s = h.s; - h = h.h; - } - if (h > 1 || s > 1 || l > 1) { - h /= 360; - s /= 100; - l /= 100; - } - h *= 360; - var R, G, B, X, C; - h = (h % 360) / 60; - C = 2 * s * (l < .5 ? l : 1 - l); - X = C * (1 - abs(h % 2 - 1)); - R = G = B = l - C / 2; - - h = ~~h; - R += [C, X, 0, 0, X, C][h]; - G += [X, C, C, X, 0, 0][h]; - B += [0, 0, X, C, C, X][h]; - return packageRGB(R, G, B, o); - }; - /*\ - * Raphael.rgb2hsb - [ method ] - ** - * Converts RGB values to HSB object. - > Parameters - - r (number) red - - g (number) green - - b (number) blue - = (object) HSB object in format: - o { - o h (number) hue - o s (number) saturation - o b (number) brightness - o } - \*/ - R.rgb2hsb = function (r, g, b) { - b = prepareRGB(r, g, b); - r = b[0]; - g = b[1]; - b = b[2]; - - var H, S, V, C; - V = mmax(r, g, b); - C = V - mmin(r, g, b); - H = (C == 0 ? null : - V == r ? (g - b) / C : - V == g ? (b - r) / C + 2 : - (r - g) / C + 4 - ); - H = ((H + 360) % 6) * 60 / 360; - S = C == 0 ? 0 : C / V; - return {h: H, s: S, b: V, toString: hsbtoString}; - }; - /*\ - * Raphael.rgb2hsl - [ method ] - ** - * Converts RGB values to HSL object. - > Parameters - - r (number) red - - g (number) green - - b (number) blue - = (object) HSL object in format: - o { - o h (number) hue - o s (number) saturation - o l (number) luminosity - o } - \*/ - R.rgb2hsl = function (r, g, b) { - b = prepareRGB(r, g, b); - r = b[0]; - g = b[1]; - b = b[2]; - - var H, S, L, M, m, C; - M = mmax(r, g, b); - m = mmin(r, g, b); - C = M - m; - H = (C == 0 ? null : - M == r ? (g - b) / C : - M == g ? (b - r) / C + 2 : - (r - g) / C + 4); - H = ((H + 360) % 6) * 60 / 360; - L = (M + m) / 2; - S = (C == 0 ? 0 : - L < .5 ? C / (2 * L) : - C / (2 - 2 * L)); - return {h: H, s: S, l: L, toString: hsltoString}; - }; - R._path2string = function () { - return this.join(",").replace(p2s, "$1"); - }; - function repush(array, item) { - for (var i = 0, ii = array.length; i < ii; i++) if (array[i] === item) { - return array.push(array.splice(i, 1)[0]); - } - } - function cacher(f, scope, postprocessor) { - function newf() { - var arg = Array.prototype.slice.call(arguments, 0), - args = arg.join("\u2400"), - cache = newf.cache = newf.cache || {}, - count = newf.count = newf.count || []; - if (cache[has](args)) { - repush(count, args); - return postprocessor ? postprocessor(cache[args]) : cache[args]; - } - count.length >= 1e3 && delete cache[count.shift()]; - count.push(args); - cache[args] = f[apply](scope, arg); - return postprocessor ? postprocessor(cache[args]) : cache[args]; - } - return newf; - } - - var preload = R._preload = function (src, f) { - var img = g.doc.createElement("img"); - img.style.cssText = "position:absolute;left:-9999em;top:-9999em"; - img.onload = function () { - f.call(this); - this.onload = null; - g.doc.body.removeChild(this); - }; - img.onerror = function () { - g.doc.body.removeChild(this); - }; - g.doc.body.appendChild(img); - img.src = src; - }; - - function clrToString() { - return this.hex; - } - - /*\ - * Raphael.getRGB - [ method ] - ** - * Parses colour string as RGB object - > Parameters - - colour (string) colour string in one of formats: - # <ul> - # <li>Colour name (“<code>red</code>”, “<code>green</code>”, “<code>cornflowerblue</code>”, etc)</li> - # <li>#••• — shortened HTML colour: (“<code>#000</code>”, “<code>#fc0</code>”, etc)</li> - # <li>#•••••• — full length HTML colour: (“<code>#000000</code>”, “<code>#bd2300</code>”)</li> - # <li>rgb(•••, •••, •••) — red, green and blue channels’ values: (“<code>rgb(200,&nbsp;100,&nbsp;0)</code>”)</li> - # <li>rgb(•••%, •••%, •••%) — same as above, but in %: (“<code>rgb(100%,&nbsp;175%,&nbsp;0%)</code>”)</li> - # <li>hsb(•••, •••, •••) — hue, saturation and brightness values: (“<code>hsb(0.5,&nbsp;0.25,&nbsp;1)</code>”)</li> - # <li>hsb(•••%, •••%, •••%) — same as above, but in %</li> - # <li>hsl(•••, •••, •••) — same as hsb</li> - # <li>hsl(•••%, •••%, •••%) — same as hsb</li> - # </ul> - = (object) RGB object in format: - o { - o r (number) red, - o g (number) green, - o b (number) blue - o hex (string) color in HTML/CSS format: #••••••, - o error (boolean) true if string can’t be parsed - o } - \*/ - R.getRGB = cacher(function (colour) { - if (!colour || !!((colour = Str(colour)).indexOf("-") + 1)) { - return {r: -1, g: -1, b: -1, hex: "none", error: 1, toString: clrToString}; - } - if (colour == "none") { - return {r: -1, g: -1, b: -1, hex: "none", toString: clrToString}; - } - !(hsrg[has](colour.toLowerCase().substring(0, 2)) || colour.charAt() == "#") && (colour = toHex(colour)); - var res, - red, - green, - blue, - opacity, - t, - values, - rgb = colour.match(colourRegExp); - if (rgb) { - if (rgb[2]) { - blue = toInt(rgb[2].substring(5), 16); - green = toInt(rgb[2].substring(3, 5), 16); - red = toInt(rgb[2].substring(1, 3), 16); - } - if (rgb[3]) { - blue = toInt((t = rgb[3].charAt(3)) + t, 16); - green = toInt((t = rgb[3].charAt(2)) + t, 16); - red = toInt((t = rgb[3].charAt(1)) + t, 16); - } - if (rgb[4]) { - values = rgb[4][split](commaSpaces); - red = toFloat(values[0]); - values[0].slice(-1) == "%" && (red *= 2.55); - green = toFloat(values[1]); - values[1].slice(-1) == "%" && (green *= 2.55); - blue = toFloat(values[2]); - values[2].slice(-1) == "%" && (blue *= 2.55); - rgb[1].toLowerCase().slice(0, 4) == "rgba" && (opacity = toFloat(values[3])); - values[3] && values[3].slice(-1) == "%" && (opacity /= 100); - } - if (rgb[5]) { - values = rgb[5][split](commaSpaces); - red = toFloat(values[0]); - values[0].slice(-1) == "%" && (red *= 2.55); - green = toFloat(values[1]); - values[1].slice(-1) == "%" && (green *= 2.55); - blue = toFloat(values[2]); - values[2].slice(-1) == "%" && (blue *= 2.55); - (values[0].slice(-3) == "deg" || values[0].slice(-1) == "\xb0") && (red /= 360); - rgb[1].toLowerCase().slice(0, 4) == "hsba" && (opacity = toFloat(values[3])); - values[3] && values[3].slice(-1) == "%" && (opacity /= 100); - return R.hsb2rgb(red, green, blue, opacity); - } - if (rgb[6]) { - values = rgb[6][split](commaSpaces); - red = toFloat(values[0]); - values[0].slice(-1) == "%" && (red *= 2.55); - green = toFloat(values[1]); - values[1].slice(-1) == "%" && (green *= 2.55); - blue = toFloat(values[2]); - values[2].slice(-1) == "%" && (blue *= 2.55); - (values[0].slice(-3) == "deg" || values[0].slice(-1) == "\xb0") && (red /= 360); - rgb[1].toLowerCase().slice(0, 4) == "hsla" && (opacity = toFloat(values[3])); - values[3] && values[3].slice(-1) == "%" && (opacity /= 100); - return R.hsl2rgb(red, green, blue, opacity); - } - rgb = {r: red, g: green, b: blue, toString: clrToString}; - rgb.hex = "#" + (16777216 | blue | (green << 8) | (red << 16)).toString(16).slice(1); - R.is(opacity, "finite") && (rgb.opacity = opacity); - return rgb; - } - return {r: -1, g: -1, b: -1, hex: "none", error: 1, toString: clrToString}; - }, R); - /*\ - * Raphael.hsb - [ method ] - ** - * Converts HSB values to hex representation of the colour. - > Parameters - - h (number) hue - - s (number) saturation - - b (number) value or brightness - = (string) hex representation of the colour. - \*/ - R.hsb = cacher(function (h, s, b) { - return R.hsb2rgb(h, s, b).hex; - }); - /*\ - * Raphael.hsl - [ method ] - ** - * Converts HSL values to hex representation of the colour. - > Parameters - - h (number) hue - - s (number) saturation - - l (number) luminosity - = (string) hex representation of the colour. - \*/ - R.hsl = cacher(function (h, s, l) { - return R.hsl2rgb(h, s, l).hex; - }); - /*\ - * Raphael.rgb - [ method ] - ** - * Converts RGB values to hex representation of the colour. - > Parameters - - r (number) red - - g (number) green - - b (number) blue - = (string) hex representation of the colour. - \*/ - R.rgb = cacher(function (r, g, b) { - function round(x) { return (x + 0.5) | 0; } - return "#" + (16777216 | round(b) | (round(g) << 8) | (round(r) << 16)).toString(16).slice(1); - }); - /*\ - * Raphael.getColor - [ method ] - ** - * On each call returns next colour in the spectrum. To reset it back to red call @Raphael.getColor.reset - > Parameters - - value (number) #optional brightness, default is `0.75` - = (string) hex representation of the colour. - \*/ - R.getColor = function (value) { - var start = this.getColor.start = this.getColor.start || {h: 0, s: 1, b: value || .75}, - rgb = this.hsb2rgb(start.h, start.s, start.b); - start.h += .075; - if (start.h > 1) { - start.h = 0; - start.s -= .2; - start.s <= 0 && (this.getColor.start = {h: 0, s: 1, b: start.b}); - } - return rgb.hex; - }; - /*\ - * Raphael.getColor.reset - [ method ] - ** - * Resets spectrum position for @Raphael.getColor back to red. - \*/ - R.getColor.reset = function () { - delete this.start; - }; - - // http://schepers.cc/getting-to-the-point - function catmullRom2bezier(crp, z) { - var d = []; - for (var i = 0, iLen = crp.length; iLen - 2 * !z > i; i += 2) { - var p = [ - {x: +crp[i - 2], y: +crp[i - 1]}, - {x: +crp[i], y: +crp[i + 1]}, - {x: +crp[i + 2], y: +crp[i + 3]}, - {x: +crp[i + 4], y: +crp[i + 5]} - ]; - if (z) { - if (!i) { - p[0] = {x: +crp[iLen - 2], y: +crp[iLen - 1]}; - } else if (iLen - 4 == i) { - p[3] = {x: +crp[0], y: +crp[1]}; - } else if (iLen - 2 == i) { - p[2] = {x: +crp[0], y: +crp[1]}; - p[3] = {x: +crp[2], y: +crp[3]}; - } - } else { - if (iLen - 4 == i) { - p[3] = p[2]; - } else if (!i) { - p[0] = {x: +crp[i], y: +crp[i + 1]}; - } - } - d.push(["C", - (-p[0].x + 6 * p[1].x + p[2].x) / 6, - (-p[0].y + 6 * p[1].y + p[2].y) / 6, - (p[1].x + 6 * p[2].x - p[3].x) / 6, - (p[1].y + 6*p[2].y - p[3].y) / 6, - p[2].x, - p[2].y - ]); - } - - return d; - } - /*\ - * Raphael.parsePathString - [ method ] - ** - * Utility method - ** - * Parses given path string into an array of arrays of path segments. - > Parameters - - pathString (string|array) path string or array of segments (in the last case it will be returned straight away) - = (array) array of segments. - \*/ - R.parsePathString = function (pathString) { - if (!pathString) { - return null; - } - var pth = paths(pathString); - if (pth.arr) { - return pathClone(pth.arr); - } - - var paramCounts = {a: 7, c: 6, h: 1, l: 2, m: 2, r: 4, q: 4, s: 4, t: 2, v: 1, z: 0}, - data = []; - if (R.is(pathString, array) && R.is(pathString[0], array)) { // rough assumption - data = pathClone(pathString); - } - if (!data.length) { - Str(pathString).replace(pathCommand, function (a, b, c) { - var params = [], - name = b.toLowerCase(); - c.replace(pathValues, function (a, b) { - b && params.push(+b); - }); - if (name == "m" && params.length > 2) { - data.push([b][concat](params.splice(0, 2))); - name = "l"; - b = b == "m" ? "l" : "L"; - } - if (name == "r") { - data.push([b][concat](params)); - } else while (params.length >= paramCounts[name]) { - data.push([b][concat](params.splice(0, paramCounts[name]))); - if (!paramCounts[name]) { - break; - } - } - }); - } - data.toString = R._path2string; - pth.arr = pathClone(data); - return data; - }; - /*\ - * Raphael.parseTransformString - [ method ] - ** - * Utility method - ** - * Parses given path string into an array of transformations. - > Parameters - - TString (string|array) transform string or array of transformations (in the last case it will be returned straight away) - = (array) array of transformations. - \*/ - R.parseTransformString = cacher(function (TString) { - if (!TString) { - return null; - } - var paramCounts = {r: 3, s: 4, t: 2, m: 6}, - data = []; - if (R.is(TString, array) && R.is(TString[0], array)) { // rough assumption - data = pathClone(TString); - } - if (!data.length) { - Str(TString).replace(tCommand, function (a, b, c) { - var params = [], - name = lowerCase.call(b); - c.replace(pathValues, function (a, b) { - b && params.push(+b); - }); - data.push([b][concat](params)); - }); - } - data.toString = R._path2string; - return data; - }); - // PATHS - var paths = function (ps) { - var p = paths.ps = paths.ps || {}; - if (p[ps]) { - p[ps].sleep = 100; - } else { - p[ps] = { - sleep: 100 - }; - } - setTimeout(function () { - for (var key in p) if (p[has](key) && key != ps) { - p[key].sleep--; - !p[key].sleep && delete p[key]; - } - }); - return p[ps]; - }; - /*\ - * Raphael.findDotsAtSegment - [ method ] - ** - * Utility method - ** - * Find dot coordinates on the given cubic bezier curve at the given t. - > Parameters - - p1x (number) x of the first point of the curve - - p1y (number) y of the first point of the curve - - c1x (number) x of the first anchor of the curve - - c1y (number) y of the first anchor of the curve - - c2x (number) x of the second anchor of the curve - - c2y (number) y of the second anchor of the curve - - p2x (number) x of the second point of the curve - - p2y (number) y of the second point of the curve - - t (number) position on the curve (0..1) - = (object) point information in format: - o { - o x: (number) x coordinate of the point - o y: (number) y coordinate of the point - o m: { - o x: (number) x coordinate of the left anchor - o y: (number) y coordinate of the left anchor - o } - o n: { - o x: (number) x coordinate of the right anchor - o y: (number) y coordinate of the right anchor - o } - o start: { - o x: (number) x coordinate of the start of the curve - o y: (number) y coordinate of the start of the curve - o } - o end: { - o x: (number) x coordinate of the end of the curve - o y: (number) y coordinate of the end of the curve - o } - o alpha: (number) angle of the curve derivative at the point - o } - \*/ - R.findDotsAtSegment = function (p1x, p1y, c1x, c1y, c2x, c2y, p2x, p2y, t) { - var t1 = 1 - t, - t13 = pow(t1, 3), - t12 = pow(t1, 2), - t2 = t * t, - t3 = t2 * t, - x = t13 * p1x + t12 * 3 * t * c1x + t1 * 3 * t * t * c2x + t3 * p2x, - y = t13 * p1y + t12 * 3 * t * c1y + t1 * 3 * t * t * c2y + t3 * p2y, - mx = p1x + 2 * t * (c1x - p1x) + t2 * (c2x - 2 * c1x + p1x), - my = p1y + 2 * t * (c1y - p1y) + t2 * (c2y - 2 * c1y + p1y), - nx = c1x + 2 * t * (c2x - c1x) + t2 * (p2x - 2 * c2x + c1x), - ny = c1y + 2 * t * (c2y - c1y) + t2 * (p2y - 2 * c2y + c1y), - ax = t1 * p1x + t * c1x, - ay = t1 * p1y + t * c1y, - cx = t1 * c2x + t * p2x, - cy = t1 * c2y + t * p2y, - alpha = (90 - math.atan2(mx - nx, my - ny) * 180 / PI); - (mx > nx || my < ny) && (alpha += 180); - return { - x: x, - y: y, - m: {x: mx, y: my}, - n: {x: nx, y: ny}, - start: {x: ax, y: ay}, - end: {x: cx, y: cy}, - alpha: alpha - }; - }; - /*\ - * Raphael.bezierBBox - [ method ] - ** - * Utility method - ** - * Return bounding box of a given cubic bezier curve - > Parameters - - p1x (number) x of the first point of the curve - - p1y (number) y of the first point of the curve - - c1x (number) x of the first anchor of the curve - - c1y (number) y of the first anchor of the curve - - c2x (number) x of the second anchor of the curve - - c2y (number) y of the second anchor of the curve - - p2x (number) x of the second point of the curve - - p2y (number) y of the second point of the curve - * or - - bez (array) array of six points for bezier curve - = (object) point information in format: - o { - o min: { - o x: (number) x coordinate of the left point - o y: (number) y coordinate of the top point - o } - o max: { - o x: (number) x coordinate of the right point - o y: (number) y coordinate of the bottom point - o } - o } - \*/ - R.bezierBBox = function (p1x, p1y, c1x, c1y, c2x, c2y, p2x, p2y) { - if (!R.is(p1x, "array")) { - p1x = [p1x, p1y, c1x, c1y, c2x, c2y, p2x, p2y]; - } - var bbox = curveDim.apply(null, p1x); - return { - x: bbox.min.x, - y: bbox.min.y, - x2: bbox.max.x, - y2: bbox.max.y, - width: bbox.max.x - bbox.min.x, - height: bbox.max.y - bbox.min.y - }; - }; - /*\ - * Raphael.isPointInsideBBox - [ method ] - ** - * Utility method - ** - * Returns `true` if given point is inside bounding boxes. - > Parameters - - bbox (string) bounding box - - x (string) x coordinate of the point - - y (string) y coordinate of the point - = (boolean) `true` if point inside - \*/ - R.isPointInsideBBox = function (bbox, x, y) { - return x >= bbox.x && x <= bbox.x2 && y >= bbox.y && y <= bbox.y2; - }; - /*\ - * Raphael.isBBoxIntersect - [ method ] - ** - * Utility method - ** - * Returns `true` if two bounding boxes intersect - > Parameters - - bbox1 (string) first bounding box - - bbox2 (string) second bounding box - = (boolean) `true` if they intersect - \*/ - R.isBBoxIntersect = function (bbox1, bbox2) { - var i = R.isPointInsideBBox; - return i(bbox2, bbox1.x, bbox1.y) - || i(bbox2, bbox1.x2, bbox1.y) - || i(bbox2, bbox1.x, bbox1.y2) - || i(bbox2, bbox1.x2, bbox1.y2) - || i(bbox1, bbox2.x, bbox2.y) - || i(bbox1, bbox2.x2, bbox2.y) - || i(bbox1, bbox2.x, bbox2.y2) - || i(bbox1, bbox2.x2, bbox2.y2) - || (bbox1.x < bbox2.x2 && bbox1.x > bbox2.x || bbox2.x < bbox1.x2 && bbox2.x > bbox1.x) - && (bbox1.y < bbox2.y2 && bbox1.y > bbox2.y || bbox2.y < bbox1.y2 && bbox2.y > bbox1.y); - }; - function base3(t, p1, p2, p3, p4) { - var t1 = -3 * p1 + 9 * p2 - 9 * p3 + 3 * p4, - t2 = t * t1 + 6 * p1 - 12 * p2 + 6 * p3; - return t * t2 - 3 * p1 + 3 * p2; - } - function bezlen(x1, y1, x2, y2, x3, y3, x4, y4, z) { - if (z == null) { - z = 1; - } - z = z > 1 ? 1 : z < 0 ? 0 : z; - var z2 = z / 2, - n = 12, - Tvalues = [-0.1252,0.1252,-0.3678,0.3678,-0.5873,0.5873,-0.7699,0.7699,-0.9041,0.9041,-0.9816,0.9816], - Cvalues = [0.2491,0.2491,0.2335,0.2335,0.2032,0.2032,0.1601,0.1601,0.1069,0.1069,0.0472,0.0472], - sum = 0; - for (var i = 0; i < n; i++) { - var ct = z2 * Tvalues[i] + z2, - xbase = base3(ct, x1, x2, x3, x4), - ybase = base3(ct, y1, y2, y3, y4), - comb = xbase * xbase + ybase * ybase; - sum += Cvalues[i] * math.sqrt(comb); - } - return z2 * sum; - } - function getTatLen(x1, y1, x2, y2, x3, y3, x4, y4, ll) { - if (ll < 0 || bezlen(x1, y1, x2, y2, x3, y3, x4, y4) < ll) { - return; - } - var t = 1, - step = t / 2, - t2 = t - step, - l, - e = .01; - l = bezlen(x1, y1, x2, y2, x3, y3, x4, y4, t2); - while (abs(l - ll) > e) { - step /= 2; - t2 += (l < ll ? 1 : -1) * step; - l = bezlen(x1, y1, x2, y2, x3, y3, x4, y4, t2); - } - return t2; - } - function intersect(x1, y1, x2, y2, x3, y3, x4, y4) { - if ( - mmax(x1, x2) < mmin(x3, x4) || - mmin(x1, x2) > mmax(x3, x4) || - mmax(y1, y2) < mmin(y3, y4) || - mmin(y1, y2) > mmax(y3, y4) - ) { - return; - } - var nx = (x1 * y2 - y1 * x2) * (x3 - x4) - (x1 - x2) * (x3 * y4 - y3 * x4), - ny = (x1 * y2 - y1 * x2) * (y3 - y4) - (y1 - y2) * (x3 * y4 - y3 * x4), - denominator = (x1 - x2) * (y3 - y4) - (y1 - y2) * (x3 - x4); - - if (!denominator) { - return; - } - var px = nx / denominator, - py = ny / denominator, - px2 = +px.toFixed(2), - py2 = +py.toFixed(2); - if ( - px2 < +mmin(x1, x2).toFixed(2) || - px2 > +mmax(x1, x2).toFixed(2) || - px2 < +mmin(x3, x4).toFixed(2) || - px2 > +mmax(x3, x4).toFixed(2) || - py2 < +mmin(y1, y2).toFixed(2) || - py2 > +mmax(y1, y2).toFixed(2) || - py2 < +mmin(y3, y4).toFixed(2) || - py2 > +mmax(y3, y4).toFixed(2) - ) { - return; - } - return {x: px, y: py}; - } - function inter(bez1, bez2) { - return interHelper(bez1, bez2); - } - function interCount(bez1, bez2) { - return interHelper(bez1, bez2, 1); - } - function interHelper(bez1, bez2, justCount) { - var bbox1 = R.bezierBBox(bez1), - bbox2 = R.bezierBBox(bez2); - if (!R.isBBoxIntersect(bbox1, bbox2)) { - return justCount ? 0 : []; - } - var l1 = bezlen.apply(0, bez1), - l2 = bezlen.apply(0, bez2), - n1 = mmax(~~(l1 / 5), 1), - n2 = mmax(~~(l2 / 5), 1), - dots1 = [], - dots2 = [], - xy = {}, - res = justCount ? 0 : []; - for (var i = 0; i < n1 + 1; i++) { - var p = R.findDotsAtSegment.apply(R, bez1.concat(i / n1)); - dots1.push({x: p.x, y: p.y, t: i / n1}); - } - for (i = 0; i < n2 + 1; i++) { - p = R.findDotsAtSegment.apply(R, bez2.concat(i / n2)); - dots2.push({x: p.x, y: p.y, t: i / n2}); - } - for (i = 0; i < n1; i++) { - for (var j = 0; j < n2; j++) { - var di = dots1[i], - di1 = dots1[i + 1], - dj = dots2[j], - dj1 = dots2[j + 1], - ci = abs(di1.x - di.x) < .001 ? "y" : "x", - cj = abs(dj1.x - dj.x) < .001 ? "y" : "x", - is = intersect(di.x, di.y, di1.x, di1.y, dj.x, dj.y, dj1.x, dj1.y); - if (is) { - if (xy[is.x.toFixed(4)] == is.y.toFixed(4)) { - continue; - } - xy[is.x.toFixed(4)] = is.y.toFixed(4); - var t1 = di.t + abs((is[ci] - di[ci]) / (di1[ci] - di[ci])) * (di1.t - di.t), - t2 = dj.t + abs((is[cj] - dj[cj]) / (dj1[cj] - dj[cj])) * (dj1.t - dj.t); - if (t1 >= 0 && t1 <= 1.001 && t2 >= 0 && t2 <= 1.001) { - if (justCount) { - res++; - } else { - res.push({ - x: is.x, - y: is.y, - t1: mmin(t1, 1), - t2: mmin(t2, 1) - }); - } - } - } - } - } - return res; - } - /*\ - * Raphael.pathIntersection - [ method ] - ** - * Utility method - ** - * Finds intersections of two paths - > Parameters - - path1 (string) path string - - path2 (string) path string - = (array) dots of intersection - o [ - o { - o x: (number) x coordinate of the point - o y: (number) y coordinate of the point - o t1: (number) t value for segment of path1 - o t2: (number) t value for segment of path2 - o segment1: (number) order number for segment of path1 - o segment2: (number) order number for segment of path2 - o bez1: (array) eight coordinates representing beziér curve for the segment of path1 - o bez2: (array) eight coordinates representing beziér curve for the segment of path2 - o } - o ] - \*/ - R.pathIntersection = function (path1, path2) { - return interPathHelper(path1, path2); - }; - R.pathIntersectionNumber = function (path1, path2) { - return interPathHelper(path1, path2, 1); - }; - function interPathHelper(path1, path2, justCount) { - path1 = R._path2curve(path1); - path2 = R._path2curve(path2); - var x1, y1, x2, y2, x1m, y1m, x2m, y2m, bez1, bez2, - res = justCount ? 0 : []; - for (var i = 0, ii = path1.length; i < ii; i++) { - var pi = path1[i]; - if (pi[0] == "M") { - x1 = x1m = pi[1]; - y1 = y1m = pi[2]; - } else { - if (pi[0] == "C") { - bez1 = [x1, y1].concat(pi.slice(1)); - x1 = bez1[6]; - y1 = bez1[7]; - } else { - bez1 = [x1, y1, x1, y1, x1m, y1m, x1m, y1m]; - x1 = x1m; - y1 = y1m; - } - for (var j = 0, jj = path2.length; j < jj; j++) { - var pj = path2[j]; - if (pj[0] == "M") { - x2 = x2m = pj[1]; - y2 = y2m = pj[2]; - } else { - if (pj[0] == "C") { - bez2 = [x2, y2].concat(pj.slice(1)); - x2 = bez2[6]; - y2 = bez2[7]; - } else { - bez2 = [x2, y2, x2, y2, x2m, y2m, x2m, y2m]; - x2 = x2m; - y2 = y2m; - } - var intr = interHelper(bez1, bez2, justCount); - if (justCount) { - res += intr; - } else { - for (var k = 0, kk = intr.length; k < kk; k++) { - intr[k].segment1 = i; - intr[k].segment2 = j; - intr[k].bez1 = bez1; - intr[k].bez2 = bez2; - } - res = res.concat(intr); - } - } - } - } - } - return res; - } - /*\ - * Raphael.isPointInsidePath - [ method ] - ** - * Utility method - ** - * Returns `true` if given point is inside a given closed path. - > Parameters - - path (string) path string - - x (number) x of the point - - y (number) y of the point - = (boolean) true, if point is inside the path - \*/ - R.isPointInsidePath = function (path, x, y) { - var bbox = R.pathBBox(path); - return R.isPointInsideBBox(bbox, x, y) && - interPathHelper(path, [["M", x, y], ["H", bbox.x2 + 10]], 1) % 2 == 1; - }; - R._removedFactory = function (methodname) { - return function () { - eve("raphael.log", null, "Rapha\xebl: you are calling to method \u201c" + methodname + "\u201d of removed object", methodname); - }; - }; - /*\ - * Raphael.pathBBox - [ method ] - ** - * Utility method - ** - * Return bounding box of a given path - > Parameters - - path (string) path string - = (object) bounding box - o { - o x: (number) x coordinate of the left top point of the box - o y: (number) y coordinate of the left top point of the box - o x2: (number) x coordinate of the right bottom point of the box - o y2: (number) y coordinate of the right bottom point of the box - o width: (number) width of the box - o height: (number) height of the box - o cx: (number) x coordinate of the center of the box - o cy: (number) y coordinate of the center of the box - o } - \*/ - var pathDimensions = R.pathBBox = function (path) { - var pth = paths(path); - if (pth.bbox) { - return clone(pth.bbox); - } - if (!path) { - return {x: 0, y: 0, width: 0, height: 0, x2: 0, y2: 0}; - } - path = path2curve(path); - var x = 0, - y = 0, - X = [], - Y = [], - p; - for (var i = 0, ii = path.length; i < ii; i++) { - p = path[i]; - if (p[0] == "M") { - x = p[1]; - y = p[2]; - X.push(x); - Y.push(y); - } else { - var dim = curveDim(x, y, p[1], p[2], p[3], p[4], p[5], p[6]); - X = X[concat](dim.min.x, dim.max.x); - Y = Y[concat](dim.min.y, dim.max.y); - x = p[5]; - y = p[6]; - } - } - var xmin = mmin[apply](0, X), - ymin = mmin[apply](0, Y), - xmax = mmax[apply](0, X), - ymax = mmax[apply](0, Y), - width = xmax - xmin, - height = ymax - ymin, - bb = { - x: xmin, - y: ymin, - x2: xmax, - y2: ymax, - width: width, - height: height, - cx: xmin + width / 2, - cy: ymin + height / 2 - }; - pth.bbox = clone(bb); - return bb; - }, - pathClone = function (pathArray) { - var res = clone(pathArray); - res.toString = R._path2string; - return res; - }, - pathToRelative = R._pathToRelative = function (pathArray) { - var pth = paths(pathArray); - if (pth.rel) { - return pathClone(pth.rel); - } - if (!R.is(pathArray, array) || !R.is(pathArray && pathArray[0], array)) { // rough assumption - pathArray = R.parsePathString(pathArray); - } - var res = [], - x = 0, - y = 0, - mx = 0, - my = 0, - start = 0; - if (pathArray[0][0] == "M") { - x = pathArray[0][1]; - y = pathArray[0][2]; - mx = x; - my = y; - start++; - res.push(["M", x, y]); - } - for (var i = start, ii = pathArray.length; i < ii; i++) { - var r = res[i] = [], - pa = pathArray[i]; - if (pa[0] != lowerCase.call(pa[0])) { - r[0] = lowerCase.call(pa[0]); - switch (r[0]) { - case "a": - r[1] = pa[1]; - r[2] = pa[2]; - r[3] = pa[3]; - r[4] = pa[4]; - r[5] = pa[5]; - r[6] = +(pa[6] - x).toFixed(3); - r[7] = +(pa[7] - y).toFixed(3); - break; - case "v": - r[1] = +(pa[1] - y).toFixed(3); - break; - case "m": - mx = pa[1]; - my = pa[2]; - default: - for (var j = 1, jj = pa.length; j < jj; j++) { - r[j] = +(pa[j] - ((j % 2) ? x : y)).toFixed(3); - } - } - } else { - r = res[i] = []; - if (pa[0] == "m") { - mx = pa[1] + x; - my = pa[2] + y; - } - for (var k = 0, kk = pa.length; k < kk; k++) { - res[i][k] = pa[k]; - } - } - var len = res[i].length; - switch (res[i][0]) { - case "z": - x = mx; - y = my; - break; - case "h": - x += +res[i][len - 1]; - break; - case "v": - y += +res[i][len - 1]; - break; - default: - x += +res[i][len - 2]; - y += +res[i][len - 1]; - } - } - res.toString = R._path2string; - pth.rel = pathClone(res); - return res; - }, - pathToAbsolute = R._pathToAbsolute = function (pathArray) { - var pth = paths(pathArray); - if (pth.abs) { - return pathClone(pth.abs); - } - if (!R.is(pathArray, array) || !R.is(pathArray && pathArray[0], array)) { // rough assumption - pathArray = R.parsePathString(pathArray); - } - if (!pathArray || !pathArray.length) { - return [["M", 0, 0]]; - } - var res = [], - x = 0, - y = 0, - mx = 0, - my = 0, - start = 0; - if (pathArray[0][0] == "M") { - x = +pathArray[0][1]; - y = +pathArray[0][2]; - mx = x; - my = y; - start++; - res[0] = ["M", x, y]; - } - var crz = pathArray.length == 3 && pathArray[0][0] == "M" && pathArray[1][0].toUpperCase() == "R" && pathArray[2][0].toUpperCase() == "Z"; - for (var r, pa, i = start, ii = pathArray.length; i < ii; i++) { - res.push(r = []); - pa = pathArray[i]; - if (pa[0] != upperCase.call(pa[0])) { - r[0] = upperCase.call(pa[0]); - switch (r[0]) { - case "A": - r[1] = pa[1]; - r[2] = pa[2]; - r[3] = pa[3]; - r[4] = pa[4]; - r[5] = pa[5]; - r[6] = +(pa[6] + x); - r[7] = +(pa[7] + y); - break; - case "V": - r[1] = +pa[1] + y; - break; - case "H": - r[1] = +pa[1] + x; - break; - case "R": - var dots = [x, y][concat](pa.slice(1)); - for (var j = 2, jj = dots.length; j < jj; j++) { - dots[j] = +dots[j] + x; - dots[++j] = +dots[j] + y; - } - res.pop(); - res = res[concat](catmullRom2bezier(dots, crz)); - break; - case "M": - mx = +pa[1] + x; - my = +pa[2] + y; - default: - for (j = 1, jj = pa.length; j < jj; j++) { - r[j] = +pa[j] + ((j % 2) ? x : y); - } - } - } else if (pa[0] == "R") { - dots = [x, y][concat](pa.slice(1)); - res.pop(); - res = res[concat](catmullRom2bezier(dots, crz)); - r = ["R"][concat](pa.slice(-2)); - } else { - for (var k = 0, kk = pa.length; k < kk; k++) { - r[k] = pa[k]; - } - } - switch (r[0]) { - case "Z": - x = mx; - y = my; - break; - case "H": - x = r[1]; - break; - case "V": - y = r[1]; - break; - case "M": - mx = r[r.length - 2]; - my = r[r.length - 1]; - default: - x = r[r.length - 2]; - y = r[r.length - 1]; - } - } - res.toString = R._path2string; - pth.abs = pathClone(res); - return res; - }, - l2c = function (x1, y1, x2, y2) { - return [x1, y1, x2, y2, x2, y2]; - }, - q2c = function (x1, y1, ax, ay, x2, y2) { - var _13 = 1 / 3, - _23 = 2 / 3; - return [ - _13 * x1 + _23 * ax, - _13 * y1 + _23 * ay, - _13 * x2 + _23 * ax, - _13 * y2 + _23 * ay, - x2, - y2 - ]; - }, - a2c = function (x1, y1, rx, ry, angle, large_arc_flag, sweep_flag, x2, y2, recursive) { - // for more information of where this math came from visit: - // http://www.w3.org/TR/SVG11/implnote.html#ArcImplementationNotes - var _120 = PI * 120 / 180, - rad = PI / 180 * (+angle || 0), - res = [], - xy, - rotate = cacher(function (x, y, rad) { - var X = x * math.cos(rad) - y * math.sin(rad), - Y = x * math.sin(rad) + y * math.cos(rad); - return {x: X, y: Y}; - }); - if (!recursive) { - xy = rotate(x1, y1, -rad); - x1 = xy.x; - y1 = xy.y; - xy = rotate(x2, y2, -rad); - x2 = xy.x; - y2 = xy.y; - var cos = math.cos(PI / 180 * angle), - sin = math.sin(PI / 180 * angle), - x = (x1 - x2) / 2, - y = (y1 - y2) / 2; - var h = (x * x) / (rx * rx) + (y * y) / (ry * ry); - if (h > 1) { - h = math.sqrt(h); - rx = h * rx; - ry = h * ry; - } - var rx2 = rx * rx, - ry2 = ry * ry, - k = (large_arc_flag == sweep_flag ? -1 : 1) * - math.sqrt(abs((rx2 * ry2 - rx2 * y * y - ry2 * x * x) / (rx2 * y * y + ry2 * x * x))), - cx = k * rx * y / ry + (x1 + x2) / 2, - cy = k * -ry * x / rx + (y1 + y2) / 2, - f1 = math.asin(((y1 - cy) / ry).toFixed(9)), - f2 = math.asin(((y2 - cy) / ry).toFixed(9)); - - f1 = x1 < cx ? PI - f1 : f1; - f2 = x2 < cx ? PI - f2 : f2; - f1 < 0 && (f1 = PI * 2 + f1); - f2 < 0 && (f2 = PI * 2 + f2); - if (sweep_flag && f1 > f2) { - f1 = f1 - PI * 2; - } - if (!sweep_flag && f2 > f1) { - f2 = f2 - PI * 2; - } - } else { - f1 = recursive[0]; - f2 = recursive[1]; - cx = recursive[2]; - cy = recursive[3]; - } - var df = f2 - f1; - if (abs(df) > _120) { - var f2old = f2, - x2old = x2, - y2old = y2; - f2 = f1 + _120 * (sweep_flag && f2 > f1 ? 1 : -1); - x2 = cx + rx * math.cos(f2); - y2 = cy + ry * math.sin(f2); - res = a2c(x2, y2, rx, ry, angle, 0, sweep_flag, x2old, y2old, [f2, f2old, cx, cy]); - } - df = f2 - f1; - var c1 = math.cos(f1), - s1 = math.sin(f1), - c2 = math.cos(f2), - s2 = math.sin(f2), - t = math.tan(df / 4), - hx = 4 / 3 * rx * t, - hy = 4 / 3 * ry * t, - m1 = [x1, y1], - m2 = [x1 + hx * s1, y1 - hy * c1], - m3 = [x2 + hx * s2, y2 - hy * c2], - m4 = [x2, y2]; - m2[0] = 2 * m1[0] - m2[0]; - m2[1] = 2 * m1[1] - m2[1]; - if (recursive) { - return [m2, m3, m4][concat](res); - } else { - res = [m2, m3, m4][concat](res).join()[split](","); - var newres = []; - for (var i = 0, ii = res.length; i < ii; i++) { - newres[i] = i % 2 ? rotate(res[i - 1], res[i], rad).y : rotate(res[i], res[i + 1], rad).x; - } - return newres; - } - }, - findDotAtSegment = function (p1x, p1y, c1x, c1y, c2x, c2y, p2x, p2y, t) { - var t1 = 1 - t; - return { - x: pow(t1, 3) * p1x + pow(t1, 2) * 3 * t * c1x + t1 * 3 * t * t * c2x + pow(t, 3) * p2x, - y: pow(t1, 3) * p1y + pow(t1, 2) * 3 * t * c1y + t1 * 3 * t * t * c2y + pow(t, 3) * p2y - }; - }, - curveDim = cacher(function (p1x, p1y, c1x, c1y, c2x, c2y, p2x, p2y) { - var a = (c2x - 2 * c1x + p1x) - (p2x - 2 * c2x + c1x), - b = 2 * (c1x - p1x) - 2 * (c2x - c1x), - c = p1x - c1x, - t1 = (-b + math.sqrt(b * b - 4 * a * c)) / 2 / a, - t2 = (-b - math.sqrt(b * b - 4 * a * c)) / 2 / a, - y = [p1y, p2y], - x = [p1x, p2x], - dot; - abs(t1) > "1e12" && (t1 = .5); - abs(t2) > "1e12" && (t2 = .5); - if (t1 > 0 && t1 < 1) { - dot = findDotAtSegment(p1x, p1y, c1x, c1y, c2x, c2y, p2x, p2y, t1); - x.push(dot.x); - y.push(dot.y); - } - if (t2 > 0 && t2 < 1) { - dot = findDotAtSegment(p1x, p1y, c1x, c1y, c2x, c2y, p2x, p2y, t2); - x.push(dot.x); - y.push(dot.y); - } - a = (c2y - 2 * c1y + p1y) - (p2y - 2 * c2y + c1y); - b = 2 * (c1y - p1y) - 2 * (c2y - c1y); - c = p1y - c1y; - t1 = (-b + math.sqrt(b * b - 4 * a * c)) / 2 / a; - t2 = (-b - math.sqrt(b * b - 4 * a * c)) / 2 / a; - abs(t1) > "1e12" && (t1 = .5); - abs(t2) > "1e12" && (t2 = .5); - if (t1 > 0 && t1 < 1) { - dot = findDotAtSegment(p1x, p1y, c1x, c1y, c2x, c2y, p2x, p2y, t1); - x.push(dot.x); - y.push(dot.y); - } - if (t2 > 0 && t2 < 1) { - dot = findDotAtSegment(p1x, p1y, c1x, c1y, c2x, c2y, p2x, p2y, t2); - x.push(dot.x); - y.push(dot.y); - } - return { - min: {x: mmin[apply](0, x), y: mmin[apply](0, y)}, - max: {x: mmax[apply](0, x), y: mmax[apply](0, y)} - }; - }), - path2curve = R._path2curve = cacher(function (path, path2) { - var pth = !path2 && paths(path); - if (!path2 && pth.curve) { - return pathClone(pth.curve); - } - var p = pathToAbsolute(path), - p2 = path2 && pathToAbsolute(path2), - attrs = {x: 0, y: 0, bx: 0, by: 0, X: 0, Y: 0, qx: null, qy: null}, - attrs2 = {x: 0, y: 0, bx: 0, by: 0, X: 0, Y: 0, qx: null, qy: null}, - processPath = function (path, d, pcom) { - var nx, ny, tq = {T:1, Q:1}; - if (!path) { - return ["C", d.x, d.y, d.x, d.y, d.x, d.y]; - } - !(path[0] in tq) && (d.qx = d.qy = null); - switch (path[0]) { - case "M": - d.X = path[1]; - d.Y = path[2]; - break; - case "A": - path = ["C"][concat](a2c[apply](0, [d.x, d.y][concat](path.slice(1)))); - break; - case "S": - if (pcom == "C" || pcom == "S") { // In "S" case we have to take into account, if the previous command is C/S. - nx = d.x * 2 - d.bx; // And reflect the previous - ny = d.y * 2 - d.by; // command's control point relative to the current point. - } - else { // or some else or nothing - nx = d.x; - ny = d.y; - } - path = ["C", nx, ny][concat](path.slice(1)); - break; - case "T": - if (pcom == "Q" || pcom == "T") { // In "T" case we have to take into account, if the previous command is Q/T. - d.qx = d.x * 2 - d.qx; // And make a reflection similar - d.qy = d.y * 2 - d.qy; // to case "S". - } - else { // or something else or nothing - d.qx = d.x; - d.qy = d.y; - } - path = ["C"][concat](q2c(d.x, d.y, d.qx, d.qy, path[1], path[2])); - break; - case "Q": - d.qx = path[1]; - d.qy = path[2]; - path = ["C"][concat](q2c(d.x, d.y, path[1], path[2], path[3], path[4])); - break; - case "L": - path = ["C"][concat](l2c(d.x, d.y, path[1], path[2])); - break; - case "H": - path = ["C"][concat](l2c(d.x, d.y, path[1], d.y)); - break; - case "V": - path = ["C"][concat](l2c(d.x, d.y, d.x, path[1])); - break; - case "Z": - path = ["C"][concat](l2c(d.x, d.y, d.X, d.Y)); - break; - } - return path; - }, - fixArc = function (pp, i) { - if (pp[i].length > 7) { - pp[i].shift(); - var pi = pp[i]; - while (pi.length) { - pcoms1[i]="A"; // if created multiple C:s, their original seg is saved - p2 && (pcoms2[i]="A"); // the same as above - pp.splice(i++, 0, ["C"][concat](pi.splice(0, 6))); - } - pp.splice(i, 1); - ii = mmax(p.length, p2 && p2.length || 0); - } - }, - fixM = function (path1, path2, a1, a2, i) { - if (path1 && path2 && path1[i][0] == "M" && path2[i][0] != "M") { - path2.splice(i, 0, ["M", a2.x, a2.y]); - a1.bx = 0; - a1.by = 0; - a1.x = path1[i][1]; - a1.y = path1[i][2]; - ii = mmax(p.length, p2 && p2.length || 0); - } - }, - pcoms1 = [], // path commands of original path p - pcoms2 = [], // path commands of original path p2 - pfirst = "", // temporary holder for original path command - pcom = ""; // holder for previous path command of original path - for (var i = 0, ii = mmax(p.length, p2 && p2.length || 0); i < ii; i++) { - p[i] && (pfirst = p[i][0]); // save current path command - - if (pfirst != "C") // C is not saved yet, because it may be result of conversion - { - pcoms1[i] = pfirst; // Save current path command - i && ( pcom = pcoms1[i-1]); // Get previous path command pcom - } - p[i] = processPath(p[i], attrs, pcom); // Previous path command is inputted to processPath - - if (pcoms1[i] != "A" && pfirst == "C") pcoms1[i] = "C"; // A is the only command - // which may produce multiple C:s - // so we have to make sure that C is also C in original path - - fixArc(p, i); // fixArc adds also the right amount of A:s to pcoms1 - - if (p2) { // the same procedures is done to p2 - p2[i] && (pfirst = p2[i][0]); - if (pfirst != "C") - { - pcoms2[i] = pfirst; - i && (pcom = pcoms2[i-1]); - } - p2[i] = processPath(p2[i], attrs2, pcom); - - if (pcoms2[i]!="A" && pfirst=="C") pcoms2[i]="C"; - - fixArc(p2, i); - } - fixM(p, p2, attrs, attrs2, i); - fixM(p2, p, attrs2, attrs, i); - var seg = p[i], - seg2 = p2 && p2[i], - seglen = seg.length, - seg2len = p2 && seg2.length; - attrs.x = seg[seglen - 2]; - attrs.y = seg[seglen - 1]; - attrs.bx = toFloat(seg[seglen - 4]) || attrs.x; - attrs.by = toFloat(seg[seglen - 3]) || attrs.y; - attrs2.bx = p2 && (toFloat(seg2[seg2len - 4]) || attrs2.x); - attrs2.by = p2 && (toFloat(seg2[seg2len - 3]) || attrs2.y); - attrs2.x = p2 && seg2[seg2len - 2]; - attrs2.y = p2 && seg2[seg2len - 1]; - } - if (!p2) { - pth.curve = pathClone(p); - } - return p2 ? [p, p2] : p; - }, null, pathClone), - parseDots = R._parseDots = cacher(function (gradient) { - var dots = []; - for (var i = 0, ii = gradient.length; i < ii; i++) { - var dot = {}, - par = gradient[i].match(/^([^:]*):?([\d\.]*)/); - dot.color = R.getRGB(par[1]); - if (dot.color.error) { - return null; - } - dot.opacity = dot.color.opacity; - dot.color = dot.color.hex; - par[2] && (dot.offset = par[2] + "%"); - dots.push(dot); - } - for (i = 1, ii = dots.length - 1; i < ii; i++) { - if (!dots[i].offset) { - var start = toFloat(dots[i - 1].offset || 0), - end = 0; - for (var j = i + 1; j < ii; j++) { - if (dots[j].offset) { - end = dots[j].offset; - break; - } - } - if (!end) { - end = 100; - j = ii; - } - end = toFloat(end); - var d = (end - start) / (j - i + 1); - for (; i < j; i++) { - start += d; - dots[i].offset = start + "%"; - } - } - } - return dots; - }), - tear = R._tear = function (el, paper) { - el == paper.top && (paper.top = el.prev); - el == paper.bottom && (paper.bottom = el.next); - el.next && (el.next.prev = el.prev); - el.prev && (el.prev.next = el.next); - }, - tofront = R._tofront = function (el, paper) { - if (paper.top === el) { - return; - } - tear(el, paper); - el.next = null; - el.prev = paper.top; - paper.top.next = el; - paper.top = el; - }, - toback = R._toback = function (el, paper) { - if (paper.bottom === el) { - return; - } - tear(el, paper); - el.next = paper.bottom; - el.prev = null; - paper.bottom.prev = el; - paper.bottom = el; - }, - insertafter = R._insertafter = function (el, el2, paper) { - tear(el, paper); - el2 == paper.top && (paper.top = el); - el2.next && (el2.next.prev = el); - el.next = el2.next; - el.prev = el2; - el2.next = el; - }, - insertbefore = R._insertbefore = function (el, el2, paper) { - tear(el, paper); - el2 == paper.bottom && (paper.bottom = el); - el2.prev && (el2.prev.next = el); - el.prev = el2.prev; - el2.prev = el; - el.next = el2; - }, - /*\ - * Raphael.toMatrix - [ method ] - ** - * Utility method - ** - * Returns matrix of transformations applied to a given path - > Parameters - - path (string) path string - - transform (string|array) transformation string - = (object) @Matrix - \*/ - toMatrix = R.toMatrix = function (path, transform) { - var bb = pathDimensions(path), - el = { - _: { - transform: E - }, - getBBox: function () { - return bb; - } - }; - extractTransform(el, transform); - return el.matrix; - }, - /*\ - * Raphael.transformPath - [ method ] - ** - * Utility method - ** - * Returns path transformed by a given transformation - > Parameters - - path (string) path string - - transform (string|array) transformation string - = (string) path - \*/ - transformPath = R.transformPath = function (path, transform) { - return mapPath(path, toMatrix(path, transform)); - }, - extractTransform = R._extractTransform = function (el, tstr) { - if (tstr == null) { - return el._.transform; - } - tstr = Str(tstr).replace(/\.{3}|\u2026/g, el._.transform || E); - var tdata = R.parseTransformString(tstr), - deg = 0, - dx = 0, - dy = 0, - sx = 1, - sy = 1, - _ = el._, - m = new Matrix; - _.transform = tdata || []; - if (tdata) { - for (var i = 0, ii = tdata.length; i < ii; i++) { - var t = tdata[i], - tlen = t.length, - command = Str(t[0]).toLowerCase(), - absolute = t[0] != command, - inver = absolute ? m.invert() : 0, - x1, - y1, - x2, - y2, - bb; - if (command == "t" && tlen == 3) { - if (absolute) { - x1 = inver.x(0, 0); - y1 = inver.y(0, 0); - x2 = inver.x(t[1], t[2]); - y2 = inver.y(t[1], t[2]); - m.translate(x2 - x1, y2 - y1); - } else { - m.translate(t[1], t[2]); - } - } else if (command == "r") { - if (tlen == 2) { - bb = bb || el.getBBox(1); - m.rotate(t[1], bb.x + bb.width / 2, bb.y + bb.height / 2); - deg += t[1]; - } else if (tlen == 4) { - if (absolute) { - x2 = inver.x(t[2], t[3]); - y2 = inver.y(t[2], t[3]); - m.rotate(t[1], x2, y2); - } else { - m.rotate(t[1], t[2], t[3]); - } - deg += t[1]; - } - } else if (command == "s") { - if (tlen == 2 || tlen == 3) { - bb = bb || el.getBBox(1); - m.scale(t[1], t[tlen - 1], bb.x + bb.width / 2, bb.y + bb.height / 2); - sx *= t[1]; - sy *= t[tlen - 1]; - } else if (tlen == 5) { - if (absolute) { - x2 = inver.x(t[3], t[4]); - y2 = inver.y(t[3], t[4]); - m.scale(t[1], t[2], x2, y2); - } else { - m.scale(t[1], t[2], t[3], t[4]); - } - sx *= t[1]; - sy *= t[2]; - } - } else if (command == "m" && tlen == 7) { - m.add(t[1], t[2], t[3], t[4], t[5], t[6]); - } - _.dirtyT = 1; - el.matrix = m; - } - } - - /*\ - * Element.matrix - [ property (object) ] - ** - * Keeps @Matrix object, which represents element transformation - \*/ - el.matrix = m; - - _.sx = sx; - _.sy = sy; - _.deg = deg; - _.dx = dx = m.e; - _.dy = dy = m.f; - - if (sx == 1 && sy == 1 && !deg && _.bbox) { - _.bbox.x += +dx; - _.bbox.y += +dy; - } else { - _.dirtyT = 1; - } - }, - getEmpty = function (item) { - var l = item[0]; - switch (l.toLowerCase()) { - case "t": return [l, 0, 0]; - case "m": return [l, 1, 0, 0, 1, 0, 0]; - case "r": if (item.length == 4) { - return [l, 0, item[2], item[3]]; - } else { - return [l, 0]; - } - case "s": if (item.length == 5) { - return [l, 1, 1, item[3], item[4]]; - } else if (item.length == 3) { - return [l, 1, 1]; - } else { - return [l, 1]; - } - } - }, - equaliseTransform = R._equaliseTransform = function (t1, t2) { - t2 = Str(t2).replace(/\.{3}|\u2026/g, t1); - t1 = R.parseTransformString(t1) || []; - t2 = R.parseTransformString(t2) || []; - var maxlength = mmax(t1.length, t2.length), - from = [], - to = [], - i = 0, j, jj, - tt1, tt2; - for (; i < maxlength; i++) { - tt1 = t1[i] || getEmpty(t2[i]); - tt2 = t2[i] || getEmpty(tt1); - if ((tt1[0] != tt2[0]) || - (tt1[0].toLowerCase() == "r" && (tt1[2] != tt2[2] || tt1[3] != tt2[3])) || - (tt1[0].toLowerCase() == "s" && (tt1[3] != tt2[3] || tt1[4] != tt2[4])) - ) { - return; - } - from[i] = []; - to[i] = []; - for (j = 0, jj = mmax(tt1.length, tt2.length); j < jj; j++) { - j in tt1 && (from[i][j] = tt1[j]); - j in tt2 && (to[i][j] = tt2[j]); - } - } - return { - from: from, - to: to - }; - }; - R._getContainer = function (x, y, w, h) { - var container; - container = h == null && !R.is(x, "object") ? g.doc.getElementById(x) : x; - if (container == null) { - return; - } - if (container.tagName) { - if (y == null) { - return { - container: container, - width: container.style.pixelWidth || container.offsetWidth, - height: container.style.pixelHeight || container.offsetHeight - }; - } else { - return { - container: container, - width: y, - height: w - }; - } - } - return { - container: 1, - x: x, - y: y, - width: w, - height: h - }; - }; - /*\ - * Raphael.pathToRelative - [ method ] - ** - * Utility method - ** - * Converts path to relative form - > Parameters - - pathString (string|array) path string or array of segments - = (array) array of segments. - \*/ - R.pathToRelative = pathToRelative; - R._engine = {}; - /*\ - * Raphael.path2curve - [ method ] - ** - * Utility method - ** - * Converts path to a new path where all segments are cubic bezier curves. - > Parameters - - pathString (string|array) path string or array of segments - = (array) array of segments. - \*/ - R.path2curve = path2curve; - /*\ - * Raphael.matrix - [ method ] - ** - * Utility method - ** - * Returns matrix based on given parameters. - > Parameters - - a (number) - - b (number) - - c (number) - - d (number) - - e (number) - - f (number) - = (object) @Matrix - \*/ - R.matrix = function (a, b, c, d, e, f) { - return new Matrix(a, b, c, d, e, f); - }; - function Matrix(a, b, c, d, e, f) { - if (a != null) { - this.a = +a; - this.b = +b; - this.c = +c; - this.d = +d; - this.e = +e; - this.f = +f; - } else { - this.a = 1; - this.b = 0; - this.c = 0; - this.d = 1; - this.e = 0; - this.f = 0; - } - } - (function (matrixproto) { - /*\ - * Matrix.add - [ method ] - ** - * Adds given matrix to existing one. - > Parameters - - a (number) - - b (number) - - c (number) - - d (number) - - e (number) - - f (number) - or - - matrix (object) @Matrix - \*/ - matrixproto.add = function (a, b, c, d, e, f) { - var out = [[], [], []], - m = [[this.a, this.c, this.e], [this.b, this.d, this.f], [0, 0, 1]], - matrix = [[a, c, e], [b, d, f], [0, 0, 1]], - x, y, z, res; - - if (a && a instanceof Matrix) { - matrix = [[a.a, a.c, a.e], [a.b, a.d, a.f], [0, 0, 1]]; - } - - for (x = 0; x < 3; x++) { - for (y = 0; y < 3; y++) { - res = 0; - for (z = 0; z < 3; z++) { - res += m[x][z] * matrix[z][y]; - } - out[x][y] = res; - } - } - this.a = out[0][0]; - this.b = out[1][0]; - this.c = out[0][1]; - this.d = out[1][1]; - this.e = out[0][2]; - this.f = out[1][2]; - }; - /*\ - * Matrix.invert - [ method ] - ** - * Returns inverted version of the matrix - = (object) @Matrix - \*/ - matrixproto.invert = function () { - var me = this, - x = me.a * me.d - me.b * me.c; - return new Matrix(me.d / x, -me.b / x, -me.c / x, me.a / x, (me.c * me.f - me.d * me.e) / x, (me.b * me.e - me.a * me.f) / x); - }; - /*\ - * Matrix.clone - [ method ] - ** - * Returns copy of the matrix - = (object) @Matrix - \*/ - matrixproto.clone = function () { - return new Matrix(this.a, this.b, this.c, this.d, this.e, this.f); - }; - /*\ - * Matrix.translate - [ method ] - ** - * Translate the matrix - > Parameters - - x (number) - - y (number) - \*/ - matrixproto.translate = function (x, y) { - this.add(1, 0, 0, 1, x, y); - }; - /*\ - * Matrix.scale - [ method ] - ** - * Scales the matrix - > Parameters - - x (number) - - y (number) #optional - - cx (number) #optional - - cy (number) #optional - \*/ - matrixproto.scale = function (x, y, cx, cy) { - y == null && (y = x); - (cx || cy) && this.add(1, 0, 0, 1, cx, cy); - this.add(x, 0, 0, y, 0, 0); - (cx || cy) && this.add(1, 0, 0, 1, -cx, -cy); - }; - /*\ - * Matrix.rotate - [ method ] - ** - * Rotates the matrix - > Parameters - - a (number) - - x (number) - - y (number) - \*/ - matrixproto.rotate = function (a, x, y) { - a = R.rad(a); - x = x || 0; - y = y || 0; - var cos = +math.cos(a).toFixed(9), - sin = +math.sin(a).toFixed(9); - this.add(cos, sin, -sin, cos, x, y); - this.add(1, 0, 0, 1, -x, -y); - }; - /*\ - * Matrix.x - [ method ] - ** - * Return x coordinate for given point after transformation described by the matrix. See also @Matrix.y - > Parameters - - x (number) - - y (number) - = (number) x - \*/ - matrixproto.x = function (x, y) { - return x * this.a + y * this.c + this.e; - }; - /*\ - * Matrix.y - [ method ] - ** - * Return y coordinate for given point after transformation described by the matrix. See also @Matrix.x - > Parameters - - x (number) - - y (number) - = (number) y - \*/ - matrixproto.y = function (x, y) { - return x * this.b + y * this.d + this.f; - }; - matrixproto.get = function (i) { - return +this[Str.fromCharCode(97 + i)].toFixed(4); - }; - matrixproto.toString = function () { - return R.svg ? - "matrix(" + [this.get(0), this.get(1), this.get(2), this.get(3), this.get(4), this.get(5)].join() + ")" : - [this.get(0), this.get(2), this.get(1), this.get(3), 0, 0].join(); - }; - matrixproto.toFilter = function () { - return "progid:DXImageTransform.Microsoft.Matrix(M11=" + this.get(0) + - ", M12=" + this.get(2) + ", M21=" + this.get(1) + ", M22=" + this.get(3) + - ", Dx=" + this.get(4) + ", Dy=" + this.get(5) + ", sizingmethod='auto expand')"; - }; - matrixproto.offset = function () { - return [this.e.toFixed(4), this.f.toFixed(4)]; - }; - function norm(a) { - return a[0] * a[0] + a[1] * a[1]; - } - function normalize(a) { - var mag = math.sqrt(norm(a)); - a[0] && (a[0] /= mag); - a[1] && (a[1] /= mag); - } - /*\ - * Matrix.split - [ method ] - ** - * Splits matrix into primitive transformations - = (object) in format: - o dx (number) translation by x - o dy (number) translation by y - o scalex (number) scale by x - o scaley (number) scale by y - o shear (number) shear - o rotate (number) rotation in deg - o isSimple (boolean) could it be represented via simple transformations - \*/ - matrixproto.split = function () { - var out = {}; - // translation - out.dx = this.e; - out.dy = this.f; - - // scale and shear - var row = [[this.a, this.c], [this.b, this.d]]; - out.scalex = math.sqrt(norm(row[0])); - normalize(row[0]); - - out.shear = row[0][0] * row[1][0] + row[0][1] * row[1][1]; - row[1] = [row[1][0] - row[0][0] * out.shear, row[1][1] - row[0][1] * out.shear]; - - out.scaley = math.sqrt(norm(row[1])); - normalize(row[1]); - out.shear /= out.scaley; - - // rotation - var sin = -row[0][1], - cos = row[1][1]; - if (cos < 0) { - out.rotate = R.deg(math.acos(cos)); - if (sin < 0) { - out.rotate = 360 - out.rotate; - } - } else { - out.rotate = R.deg(math.asin(sin)); - } - - out.isSimple = !+out.shear.toFixed(9) && (out.scalex.toFixed(9) == out.scaley.toFixed(9) || !out.rotate); - out.isSuperSimple = !+out.shear.toFixed(9) && out.scalex.toFixed(9) == out.scaley.toFixed(9) && !out.rotate; - out.noRotation = !+out.shear.toFixed(9) && !out.rotate; - return out; - }; - /*\ - * Matrix.toTransformString - [ method ] - ** - * Return transform string that represents given matrix - = (string) transform string - \*/ - matrixproto.toTransformString = function (shorter) { - var s = shorter || this[split](); - if (s.isSimple) { - s.scalex = +s.scalex.toFixed(4); - s.scaley = +s.scaley.toFixed(4); - s.rotate = +s.rotate.toFixed(4); - return (s.dx || s.dy ? "t" + [s.dx, s.dy] : E) + - (s.scalex != 1 || s.scaley != 1 ? "s" + [s.scalex, s.scaley, 0, 0] : E) + - (s.rotate ? "r" + [s.rotate, 0, 0] : E); - } else { - return "m" + [this.get(0), this.get(1), this.get(2), this.get(3), this.get(4), this.get(5)]; - } - }; - })(Matrix.prototype); - - var preventDefault = function () { - this.returnValue = false; - }, - preventTouch = function () { - return this.originalEvent.preventDefault(); - }, - stopPropagation = function () { - this.cancelBubble = true; - }, - stopTouch = function () { - return this.originalEvent.stopPropagation(); - }, - getEventPosition = function (e) { - var scrollY = g.doc.documentElement.scrollTop || g.doc.body.scrollTop, - scrollX = g.doc.documentElement.scrollLeft || g.doc.body.scrollLeft; - - return { - x: e.clientX + scrollX, - y: e.clientY + scrollY - }; - }, - addEvent = (function () { - if (g.doc.addEventListener) { - return function (obj, type, fn, element) { - var f = function (e) { - var pos = getEventPosition(e); - return fn.call(element, e, pos.x, pos.y); - }; - obj.addEventListener(type, f, false); - - if (supportsTouch && touchMap[type]) { - var _f = function (e) { - var pos = getEventPosition(e), - olde = e; - - for (var i = 0, ii = e.targetTouches && e.targetTouches.length; i < ii; i++) { - if (e.targetTouches[i].target == obj) { - e = e.targetTouches[i]; - e.originalEvent = olde; - e.preventDefault = preventTouch; - e.stopPropagation = stopTouch; - break; - } - } - - return fn.call(element, e, pos.x, pos.y); - }; - obj.addEventListener(touchMap[type], _f, false); - } - - return function () { - obj.removeEventListener(type, f, false); - - if (supportsTouch && touchMap[type]) - obj.removeEventListener(touchMap[type], _f, false); - - return true; - }; - }; - } else if (g.doc.attachEvent) { - return function (obj, type, fn, element) { - var f = function (e) { - e = e || g.win.event; - var scrollY = g.doc.documentElement.scrollTop || g.doc.body.scrollTop, - scrollX = g.doc.documentElement.scrollLeft || g.doc.body.scrollLeft, - x = e.clientX + scrollX, - y = e.clientY + scrollY; - e.preventDefault = e.preventDefault || preventDefault; - e.stopPropagation = e.stopPropagation || stopPropagation; - return fn.call(element, e, x, y); - }; - obj.attachEvent("on" + type, f); - var detacher = function () { - obj.detachEvent("on" + type, f); - return true; - }; - return detacher; - }; - } - })(), - drag = [], - dragMove = function (e) { - var x = e.clientX, - y = e.clientY, - scrollY = g.doc.documentElement.scrollTop || g.doc.body.scrollTop, - scrollX = g.doc.documentElement.scrollLeft || g.doc.body.scrollLeft, - dragi, - j = drag.length; - while (j--) { - dragi = drag[j]; - if (supportsTouch && e.touches) { - var i = e.touches.length, - touch; - while (i--) { - touch = e.touches[i]; - if (touch.identifier == dragi.el._drag.id) { - x = touch.clientX; - y = touch.clientY; - (e.originalEvent ? e.originalEvent : e).preventDefault(); - break; - } - } - } else { - e.preventDefault(); - } - var node = dragi.el.node, - o, - next = node.nextSibling, - parent = node.parentNode, - display = node.style.display; - g.win.opera && parent.removeChild(node); - node.style.display = "none"; - o = dragi.el.paper.getElementByPoint(x, y); - node.style.display = display; - g.win.opera && (next ? parent.insertBefore(node, next) : parent.appendChild(node)); - o && eve("raphael.drag.over." + dragi.el.id, dragi.el, o); - x += scrollX; - y += scrollY; - eve("raphael.drag.move." + dragi.el.id, dragi.move_scope || dragi.el, x - dragi.el._drag.x, y - dragi.el._drag.y, x, y, e); - } - }, - dragUp = function (e) { - R.unmousemove(dragMove).unmouseup(dragUp); - var i = drag.length, - dragi; - while (i--) { - dragi = drag[i]; - dragi.el._drag = {}; - eve("raphael.drag.end." + dragi.el.id, dragi.end_scope || dragi.start_scope || dragi.move_scope || dragi.el, e); - } - drag = []; - }, - /*\ - * Raphael.el - [ property (object) ] - ** - * You can add your own method to elements. This is useful when you want to hack default functionality or - * want to wrap some common transformation or attributes in one method. In difference to canvas methods, - * you can redefine element method at any time. Expending element methods wouldn’t affect set. - > Usage - | Raphael.el.red = function () { - | this.attr({fill: "#f00"}); - | }; - | // then use it - | paper.circle(100, 100, 20).red(); - \*/ - elproto = R.el = {}; - /*\ - * Element.click - [ method ] - ** - * Adds event handler for click for the element. - > Parameters - - handler (function) handler for the event - = (object) @Element - \*/ - /*\ - * Element.unclick - [ method ] - ** - * Removes event handler for click for the element. - > Parameters - - handler (function) #optional handler for the event - = (object) @Element - \*/ - - /*\ - * Element.dblclick - [ method ] - ** - * Adds event handler for double click for the element. - > Parameters - - handler (function) handler for the event - = (object) @Element - \*/ - /*\ - * Element.undblclick - [ method ] - ** - * Removes event handler for double click for the element. - > Parameters - - handler (function) #optional handler for the event - = (object) @Element - \*/ - - /*\ - * Element.mousedown - [ method ] - ** - * Adds event handler for mousedown for the element. - > Parameters - - handler (function) handler for the event - = (object) @Element - \*/ - /*\ - * Element.unmousedown - [ method ] - ** - * Removes event handler for mousedown for the element. - > Parameters - - handler (function) #optional handler for the event - = (object) @Element - \*/ - - /*\ - * Element.mousemove - [ method ] - ** - * Adds event handler for mousemove for the element. - > Parameters - - handler (function) handler for the event - = (object) @Element - \*/ - /*\ - * Element.unmousemove - [ method ] - ** - * Removes event handler for mousemove for the element. - > Parameters - - handler (function) #optional handler for the event - = (object) @Element - \*/ - - /*\ - * Element.mouseout - [ method ] - ** - * Adds event handler for mouseout for the element. - > Parameters - - handler (function) handler for the event - = (object) @Element - \*/ - /*\ - * Element.unmouseout - [ method ] - ** - * Removes event handler for mouseout for the element. - > Parameters - - handler (function) #optional handler for the event - = (object) @Element - \*/ - - /*\ - * Element.mouseover - [ method ] - ** - * Adds event handler for mouseover for the element. - > Parameters - - handler (function) handler for the event - = (object) @Element - \*/ - /*\ - * Element.unmouseover - [ method ] - ** - * Removes event handler for mouseover for the element. - > Parameters - - handler (function) #optional handler for the event - = (object) @Element - \*/ - - /*\ - * Element.mouseup - [ method ] - ** - * Adds event handler for mouseup for the element. - > Parameters - - handler (function) handler for the event - = (object) @Element - \*/ - /*\ - * Element.unmouseup - [ method ] - ** - * Removes event handler for mouseup for the element. - > Parameters - - handler (function) #optional handler for the event - = (object) @Element - \*/ - - /*\ - * Element.touchstart - [ method ] - ** - * Adds event handler for touchstart for the element. - > Parameters - - handler (function) handler for the event - = (object) @Element - \*/ - /*\ - * Element.untouchstart - [ method ] - ** - * Removes event handler for touchstart for the element. - > Parameters - - handler (function) #optional handler for the event - = (object) @Element - \*/ - - /*\ - * Element.touchmove - [ method ] - ** - * Adds event handler for touchmove for the element. - > Parameters - - handler (function) handler for the event - = (object) @Element - \*/ - /*\ - * Element.untouchmove - [ method ] - ** - * Removes event handler for touchmove for the element. - > Parameters - - handler (function) #optional handler for the event - = (object) @Element - \*/ - - /*\ - * Element.touchend - [ method ] - ** - * Adds event handler for touchend for the element. - > Parameters - - handler (function) handler for the event - = (object) @Element - \*/ - /*\ - * Element.untouchend - [ method ] - ** - * Removes event handler for touchend for the element. - > Parameters - - handler (function) #optional handler for the event - = (object) @Element - \*/ - - /*\ - * Element.touchcancel - [ method ] - ** - * Adds event handler for touchcancel for the element. - > Parameters - - handler (function) handler for the event - = (object) @Element - \*/ - /*\ - * Element.untouchcancel - [ method ] - ** - * Removes event handler for touchcancel for the element. - > Parameters - - handler (function) #optional handler for the event - = (object) @Element - \*/ - for (var i = events.length; i--;) { - (function (eventName) { - R[eventName] = elproto[eventName] = function (fn, scope) { - if (R.is(fn, "function")) { - this.events = this.events || []; - this.events.push({name: eventName, f: fn, unbind: addEvent(this.shape || this.node || g.doc, eventName, fn, scope || this)}); - } - return this; - }; - R["un" + eventName] = elproto["un" + eventName] = function (fn) { - var events = this.events || [], - l = events.length; - while (l--){ - if (events[l].name == eventName && (R.is(fn, "undefined") || events[l].f == fn)) { - events[l].unbind(); - events.splice(l, 1); - !events.length && delete this.events; - } - } - return this; - }; - })(events[i]); - } - - /*\ - * Element.data - [ method ] - ** - * Adds or retrieves given value associated with given key. - ** - * See also @Element.removeData - > Parameters - - key (string) key to store data - - value (any) #optional value to store - = (object) @Element - * or, if value is not specified: - = (any) value - * or, if key and value are not specified: - = (object) Key/value pairs for all the data associated with the element. - > Usage - | for (var i = 0, i < 5, i++) { - | paper.circle(10 + 15 * i, 10, 10) - | .attr({fill: "#000"}) - | .data("i", i) - | .click(function () { - | alert(this.data("i")); - | }); - | } - \*/ - elproto.data = function (key, value) { - var data = eldata[this.id] = eldata[this.id] || {}; - if (arguments.length == 0) { - return data; - } - if (arguments.length == 1) { - if (R.is(key, "object")) { - for (var i in key) if (key[has](i)) { - this.data(i, key[i]); - } - return this; - } - eve("raphael.data.get." + this.id, this, data[key], key); - return data[key]; - } - data[key] = value; - eve("raphael.data.set." + this.id, this, value, key); - return this; - }; - /*\ - * Element.removeData - [ method ] - ** - * Removes value associated with an element by given key. - * If key is not provided, removes all the data of the element. - > Parameters - - key (string) #optional key - = (object) @Element - \*/ - elproto.removeData = function (key) { - if (key == null) { - eldata[this.id] = {}; - } else { - eldata[this.id] && delete eldata[this.id][key]; - } - return this; - }; - /*\ - * Element.getData - [ method ] - ** - * Retrieves the element data - = (object) data - \*/ - elproto.getData = function () { - return clone(eldata[this.id] || {}); - }; - /*\ - * Element.hover - [ method ] - ** - * Adds event handlers for hover for the element. - > Parameters - - f_in (function) handler for hover in - - f_out (function) handler for hover out - - icontext (object) #optional context for hover in handler - - ocontext (object) #optional context for hover out handler - = (object) @Element - \*/ - elproto.hover = function (f_in, f_out, scope_in, scope_out) { - return this.mouseover(f_in, scope_in).mouseout(f_out, scope_out || scope_in); - }; - /*\ - * Element.unhover - [ method ] - ** - * Removes event handlers for hover for the element. - > Parameters - - f_in (function) handler for hover in - - f_out (function) handler for hover out - = (object) @Element - \*/ - elproto.unhover = function (f_in, f_out) { - return this.unmouseover(f_in).unmouseout(f_out); - }; - var draggable = []; - /*\ - * Element.drag - [ method ] - ** - * Adds event handlers for drag of the element. - > Parameters - - onmove (function) handler for moving - - onstart (function) handler for drag start - - onend (function) handler for drag end - - mcontext (object) #optional context for moving handler - - scontext (object) #optional context for drag start handler - - econtext (object) #optional context for drag end handler - * Additionally following `drag` events will be triggered: `drag.start.<id>` on start, - * `drag.end.<id>` on end and `drag.move.<id>` on every move. When element will be dragged over another element - * `drag.over.<id>` will be fired as well. - * - * Start event and start handler will be called in specified context or in context of the element with following parameters: - o x (number) x position of the mouse - o y (number) y position of the mouse - o event (object) DOM event object - * Move event and move handler will be called in specified context or in context of the element with following parameters: - o dx (number) shift by x from the start point - o dy (number) shift by y from the start point - o x (number) x position of the mouse - o y (number) y position of the mouse - o event (object) DOM event object - * End event and end handler will be called in specified context or in context of the element with following parameters: - o event (object) DOM event object - = (object) @Element - \*/ - elproto.drag = function (onmove, onstart, onend, move_scope, start_scope, end_scope) { - function start(e) { - (e.originalEvent || e).preventDefault(); - var x = e.clientX, - y = e.clientY, - scrollY = g.doc.documentElement.scrollTop || g.doc.body.scrollTop, - scrollX = g.doc.documentElement.scrollLeft || g.doc.body.scrollLeft; - this._drag.id = e.identifier; - if (supportsTouch && e.touches) { - var i = e.touches.length, touch; - while (i--) { - touch = e.touches[i]; - this._drag.id = touch.identifier; - if (touch.identifier == this._drag.id) { - x = touch.clientX; - y = touch.clientY; - break; - } - } - } - this._drag.x = x + scrollX; - this._drag.y = y + scrollY; - !drag.length && R.mousemove(dragMove).mouseup(dragUp); - drag.push({el: this, move_scope: move_scope, start_scope: start_scope, end_scope: end_scope}); - onstart && eve.on("raphael.drag.start." + this.id, onstart); - onmove && eve.on("raphael.drag.move." + this.id, onmove); - onend && eve.on("raphael.drag.end." + this.id, onend); - eve("raphael.drag.start." + this.id, start_scope || move_scope || this, e.clientX + scrollX, e.clientY + scrollY, e); - } - this._drag = {}; - draggable.push({el: this, start: start}); - this.mousedown(start); - return this; - }; - /*\ - * Element.onDragOver - [ method ] - ** - * Shortcut for assigning event handler for `drag.over.<id>` event, where id is id of the element (see @Element.id). - > Parameters - - f (function) handler for event, first argument would be the element you are dragging over - \*/ - elproto.onDragOver = function (f) { - f ? eve.on("raphael.drag.over." + this.id, f) : eve.unbind("raphael.drag.over." + this.id); - }; - /*\ - * Element.undrag - [ method ] - ** - * Removes all drag event handlers from given element. - \*/ - elproto.undrag = function () { - var i = draggable.length; - while (i--) if (draggable[i].el == this) { - this.unmousedown(draggable[i].start); - draggable.splice(i, 1); - eve.unbind("raphael.drag.*." + this.id); - } - !draggable.length && R.unmousemove(dragMove).unmouseup(dragUp); - drag = []; - }; - /*\ - * Paper.circle - [ method ] - ** - * Draws a circle. - ** - > Parameters - ** - - x (number) x coordinate of the centre - - y (number) y coordinate of the centre - - r (number) radius - = (object) Raphaël element object with type “circle” - ** - > Usage - | var c = paper.circle(50, 50, 40); - \*/ - paperproto.circle = function (x, y, r) { - var out = R._engine.circle(this, x || 0, y || 0, r || 0); - this.__set__ && this.__set__.push(out); - return out; - }; - /*\ - * Paper.rect - [ method ] - * - * Draws a rectangle. - ** - > Parameters - ** - - x (number) x coordinate of the top left corner - - y (number) y coordinate of the top left corner - - width (number) width - - height (number) height - - r (number) #optional radius for rounded corners, default is 0 - = (object) Raphaël element object with type “rect” - ** - > Usage - | // regular rectangle - | var c = paper.rect(10, 10, 50, 50); - | // rectangle with rounded corners - | var c = paper.rect(40, 40, 50, 50, 10); - \*/ - paperproto.rect = function (x, y, w, h, r) { - var out = R._engine.rect(this, x || 0, y || 0, w || 0, h || 0, r || 0); - this.__set__ && this.__set__.push(out); - return out; - }; - /*\ - * Paper.ellipse - [ method ] - ** - * Draws an ellipse. - ** - > Parameters - ** - - x (number) x coordinate of the centre - - y (number) y coordinate of the centre - - rx (number) horizontal radius - - ry (number) vertical radius - = (object) Raphaël element object with type “ellipse” - ** - > Usage - | var c = paper.ellipse(50, 50, 40, 20); - \*/ - paperproto.ellipse = function (x, y, rx, ry) { - var out = R._engine.ellipse(this, x || 0, y || 0, rx || 0, ry || 0); - this.__set__ && this.__set__.push(out); - return out; - }; - /*\ - * Paper.path - [ method ] - ** - * Creates a path element by given path data string. - > Parameters - - pathString (string) #optional path string in SVG format. - * Path string consists of one-letter commands, followed by comma seprarated arguments in numercal form. Example: - | "M10,20L30,40" - * Here we can see two commands: “M”, with arguments `(10, 20)` and “L” with arguments `(30, 40)`. Upper case letter mean command is absolute, lower case—relative. - * - # <p>Here is short list of commands available, for more details see <a href="http://www.w3.org/TR/SVG/paths.html#PathData" title="Details of a path's data attribute's format are described in the SVG specification.">SVG path string format</a>.</p> - # <table><thead><tr><th>Command</th><th>Name</th><th>Parameters</th></tr></thead><tbody> - # <tr><td>M</td><td>moveto</td><td>(x y)+</td></tr> - # <tr><td>Z</td><td>closepath</td><td>(none)</td></tr> - # <tr><td>L</td><td>lineto</td><td>(x y)+</td></tr> - # <tr><td>H</td><td>horizontal lineto</td><td>x+</td></tr> - # <tr><td>V</td><td>vertical lineto</td><td>y+</td></tr> - # <tr><td>C</td><td>curveto</td><td>(x1 y1 x2 y2 x y)+</td></tr> - # <tr><td>S</td><td>smooth curveto</td><td>(x2 y2 x y)+</td></tr> - # <tr><td>Q</td><td>quadratic Bézier curveto</td><td>(x1 y1 x y)+</td></tr> - # <tr><td>T</td><td>smooth quadratic Bézier curveto</td><td>(x y)+</td></tr> - # <tr><td>A</td><td>elliptical arc</td><td>(rx ry x-axis-rotation large-arc-flag sweep-flag x y)+</td></tr> - # <tr><td>R</td><td><a href="http://en.wikipedia.org/wiki/Catmull–Rom_spline#Catmull.E2.80.93Rom_spline">Catmull-Rom curveto</a>*</td><td>x1 y1 (x y)+</td></tr></tbody></table> - * * “Catmull-Rom curveto” is a not standard SVG command and added in 2.0 to make life easier. - * Note: there is a special case when path consist of just three commands: “M10,10R…z”. In this case path will smoothly connects to its beginning. - > Usage - | var c = paper.path("M10 10L90 90"); - | // draw a diagonal line: - | // move to 10,10, line to 90,90 - * For example of path strings, check out these icons: http://raphaeljs.com/icons/ - \*/ - paperproto.path = function (pathString) { - pathString && !R.is(pathString, string) && !R.is(pathString[0], array) && (pathString += E); - var out = R._engine.path(R.format[apply](R, arguments), this); - this.__set__ && this.__set__.push(out); - return out; - }; - /*\ - * Paper.image - [ method ] - ** - * Embeds an image into the surface. - ** - > Parameters - ** - - src (string) URI of the source image - - x (number) x coordinate position - - y (number) y coordinate position - - width (number) width of the image - - height (number) height of the image - = (object) Raphaël element object with type “image” - ** - > Usage - | var c = paper.image("apple.png", 10, 10, 80, 80); - \*/ - paperproto.image = function (src, x, y, w, h) { - var out = R._engine.image(this, src || "about:blank", x || 0, y || 0, w || 0, h || 0); - this.__set__ && this.__set__.push(out); - return out; - }; - /*\ - * Paper.text - [ method ] - ** - * Draws a text string. If you need line breaks, put “\n” in the string. - ** - > Parameters - ** - - x (number) x coordinate position - - y (number) y coordinate position - - text (string) The text string to draw - = (object) Raphaël element object with type “text” - ** - > Usage - | var t = paper.text(50, 50, "Raphaël\nkicks\nbutt!"); - \*/ - paperproto.text = function (x, y, text) { - var out = R._engine.text(this, x || 0, y || 0, Str(text)); - this.__set__ && this.__set__.push(out); - return out; - }; - /*\ - * Paper.set - [ method ] - ** - * Creates array-like object to keep and operate several elements at once. - * Warning: it doesn’t create any elements for itself in the page, it just groups existing elements. - * Sets act as pseudo elements — all methods available to an element can be used on a set. - = (object) array-like object that represents set of elements - ** - > Usage - | var st = paper.set(); - | st.push( - | paper.circle(10, 10, 5), - | paper.circle(30, 10, 5) - | ); - | st.attr({fill: "red"}); // changes the fill of both circles - \*/ - paperproto.set = function (itemsArray) { - !R.is(itemsArray, "array") && (itemsArray = Array.prototype.splice.call(arguments, 0, arguments.length)); - var out = new Set(itemsArray); - this.__set__ && this.__set__.push(out); - out["paper"] = this; - out["type"] = "set"; - return out; - }; - /*\ - * Paper.setStart - [ method ] - ** - * Creates @Paper.set. All elements that will be created after calling this method and before calling - * @Paper.setFinish will be added to the set. - ** - > Usage - | paper.setStart(); - | paper.circle(10, 10, 5), - | paper.circle(30, 10, 5) - | var st = paper.setFinish(); - | st.attr({fill: "red"}); // changes the fill of both circles - \*/ - paperproto.setStart = function (set) { - this.__set__ = set || this.set(); - }; - /*\ - * Paper.setFinish - [ method ] - ** - * See @Paper.setStart. This method finishes catching and returns resulting set. - ** - = (object) set - \*/ - paperproto.setFinish = function (set) { - var out = this.__set__; - delete this.__set__; - return out; - }; - /*\ - * Paper.getSize - [ method ] - ** - * Obtains current paper actual size. - ** - = (object) - \*/ - paperproto.getSize = function () { - var container = this.canvas.parentNode; - return { - width: container.offsetWidth, - height: container.offsetHeight - }; - }; - /*\ - * Paper.setSize - [ method ] - ** - * If you need to change dimensions of the canvas call this method - ** - > Parameters - ** - - width (number) new width of the canvas - - height (number) new height of the canvas - \*/ - paperproto.setSize = function (width, height) { - return R._engine.setSize.call(this, width, height); - }; - /*\ - * Paper.setViewBox - [ method ] - ** - * Sets the view box of the paper. Practically it gives you ability to zoom and pan whole paper surface by - * specifying new boundaries. - ** - > Parameters - ** - - x (number) new x position, default is `0` - - y (number) new y position, default is `0` - - w (number) new width of the canvas - - h (number) new height of the canvas - - fit (boolean) `true` if you want graphics to fit into new boundary box - \*/ - paperproto.setViewBox = function (x, y, w, h, fit) { - return R._engine.setViewBox.call(this, x, y, w, h, fit); - }; - /*\ - * Paper.top - [ property ] - ** - * Points to the topmost element on the paper - \*/ - /*\ - * Paper.bottom - [ property ] - ** - * Points to the bottom element on the paper - \*/ - paperproto.top = paperproto.bottom = null; - /*\ - * Paper.raphael - [ property ] - ** - * Points to the @Raphael object/function - \*/ - paperproto.raphael = R; - var getOffset = function (elem) { - var box = elem.getBoundingClientRect(), - doc = elem.ownerDocument, - body = doc.body, - docElem = doc.documentElement, - clientTop = docElem.clientTop || body.clientTop || 0, clientLeft = docElem.clientLeft || body.clientLeft || 0, - top = box.top + (g.win.pageYOffset || docElem.scrollTop || body.scrollTop ) - clientTop, - left = box.left + (g.win.pageXOffset || docElem.scrollLeft || body.scrollLeft) - clientLeft; - return { - y: top, - x: left - }; - }; - /*\ - * Paper.getElementByPoint - [ method ] - ** - * Returns you topmost element under given point. - ** - = (object) Raphaël element object - > Parameters - ** - - x (number) x coordinate from the top left corner of the window - - y (number) y coordinate from the top left corner of the window - > Usage - | paper.getElementByPoint(mouseX, mouseY).attr({stroke: "#f00"}); - \*/ - paperproto.getElementByPoint = function (x, y) { - var paper = this, - svg = paper.canvas, - target = g.doc.elementFromPoint(x, y); - if (g.win.opera && target.tagName == "svg") { - var so = getOffset(svg), - sr = svg.createSVGRect(); - sr.x = x - so.x; - sr.y = y - so.y; - sr.width = sr.height = 1; - var hits = svg.getIntersectionList(sr, null); - if (hits.length) { - target = hits[hits.length - 1]; - } - } - if (!target) { - return null; - } - while (target.parentNode && target != svg.parentNode && !target.raphael) { - target = target.parentNode; - } - target == paper.canvas.parentNode && (target = svg); - target = target && target.raphael ? paper.getById(target.raphaelid) : null; - return target; - }; - - /*\ - * Paper.getElementsByBBox - [ method ] - ** - * Returns set of elements that have an intersecting bounding box - ** - > Parameters - ** - - bbox (object) bbox to check with - = (object) @Set - \*/ - paperproto.getElementsByBBox = function (bbox) { - var set = this.set(); - this.forEach(function (el) { - if (R.isBBoxIntersect(el.getBBox(), bbox)) { - set.push(el); - } - }); - return set; - }; - - /*\ - * Paper.getById - [ method ] - ** - * Returns you element by its internal ID. - ** - > Parameters - ** - - id (number) id - = (object) Raphaël element object - \*/ - paperproto.getById = function (id) { - var bot = this.bottom; - while (bot) { - if (bot.id == id) { - return bot; - } - bot = bot.next; - } - return null; - }; - /*\ - * Paper.forEach - [ method ] - ** - * Executes given function for each element on the paper - * - * If callback function returns `false` it will stop loop running. - ** - > Parameters - ** - - callback (function) function to run - - thisArg (object) context object for the callback - = (object) Paper object - > Usage - | paper.forEach(function (el) { - | el.attr({ stroke: "blue" }); - | }); - \*/ - paperproto.forEach = function (callback, thisArg) { - var bot = this.bottom; - while (bot) { - if (callback.call(thisArg, bot) === false) { - return this; - } - bot = bot.next; - } - return this; - }; - /*\ - * Paper.getElementsByPoint - [ method ] - ** - * Returns set of elements that have common point inside - ** - > Parameters - ** - - x (number) x coordinate of the point - - y (number) y coordinate of the point - = (object) @Set - \*/ - paperproto.getElementsByPoint = function (x, y) { - var set = this.set(); - this.forEach(function (el) { - if (el.isPointInside(x, y)) { - set.push(el); - } - }); - return set; - }; - function x_y() { - return this.x + S + this.y; - } - function x_y_w_h() { - return this.x + S + this.y + S + this.width + " \xd7 " + this.height; - } - /*\ - * Element.isPointInside - [ method ] - ** - * Determine if given point is inside this element’s shape - ** - > Parameters - ** - - x (number) x coordinate of the point - - y (number) y coordinate of the point - = (boolean) `true` if point inside the shape - \*/ - elproto.isPointInside = function (x, y) { - var rp = this.realPath = getPath[this.type](this); - if (this.attr('transform') && this.attr('transform').length) { - rp = R.transformPath(rp, this.attr('transform')); - } - return R.isPointInsidePath(rp, x, y); - }; - /*\ - * Element.getBBox - [ method ] - ** - * Return bounding box for a given element - ** - > Parameters - ** - - isWithoutTransform (boolean) flag, `true` if you want to have bounding box before transformations. Default is `false`. - = (object) Bounding box object: - o { - o x: (number) top left corner x - o y: (number) top left corner y - o x2: (number) bottom right corner x - o y2: (number) bottom right corner y - o width: (number) width - o height: (number) height - o } - \*/ - elproto.getBBox = function (isWithoutTransform) { - if (this.removed) { - return {}; - } - var _ = this._; - if (isWithoutTransform) { - if (_.dirty || !_.bboxwt) { - this.realPath = getPath[this.type](this); - _.bboxwt = pathDimensions(this.realPath); - _.bboxwt.toString = x_y_w_h; - _.dirty = 0; - } - return _.bboxwt; - } - if (_.dirty || _.dirtyT || !_.bbox) { - if (_.dirty || !this.realPath) { - _.bboxwt = 0; - this.realPath = getPath[this.type](this); - } - _.bbox = pathDimensions(mapPath(this.realPath, this.matrix)); - _.bbox.toString = x_y_w_h; - _.dirty = _.dirtyT = 0; - } - return _.bbox; - }; - /*\ - * Element.clone - [ method ] - ** - = (object) clone of a given element - ** - \*/ - elproto.clone = function () { - if (this.removed) { - return null; - } - var out = this.paper[this.type]().attr(this.attr()); - this.__set__ && this.__set__.push(out); - return out; - }; - /*\ - * Element.glow - [ method ] - ** - * Return set of elements that create glow-like effect around given element. See @Paper.set. - * - * Note: Glow is not connected to the element. If you change element attributes it won’t adjust itself. - ** - > Parameters - ** - - glow (object) #optional parameters object with all properties optional: - o { - o width (number) size of the glow, default is `10` - o fill (boolean) will it be filled, default is `false` - o opacity (number) opacity, default is `0.5` - o offsetx (number) horizontal offset, default is `0` - o offsety (number) vertical offset, default is `0` - o color (string) glow colour, default is `black` - o } - = (object) @Paper.set of elements that represents glow - \*/ - elproto.glow = function (glow) { - if (this.type == "text") { - return null; - } - glow = glow || {}; - var s = { - width: (glow.width || 10) + (+this.attr("stroke-width") || 1), - fill: glow.fill || false, - opacity: glow.opacity == null ? .5 : glow.opacity, - offsetx: glow.offsetx || 0, - offsety: glow.offsety || 0, - color: glow.color || "#000" - }, - c = s.width / 2, - r = this.paper, - out = r.set(), - path = this.realPath || getPath[this.type](this); - path = this.matrix ? mapPath(path, this.matrix) : path; - for (var i = 1; i < c + 1; i++) { - out.push(r.path(path).attr({ - stroke: s.color, - fill: s.fill ? s.color : "none", - "stroke-linejoin": "round", - "stroke-linecap": "round", - "stroke-width": +(s.width / c * i).toFixed(3), - opacity: +(s.opacity / c).toFixed(3) - })); - } - return out.insertBefore(this).translate(s.offsetx, s.offsety); - }; - var curveslengths = {}, - getPointAtSegmentLength = function (p1x, p1y, c1x, c1y, c2x, c2y, p2x, p2y, length) { - if (length == null) { - return bezlen(p1x, p1y, c1x, c1y, c2x, c2y, p2x, p2y); - } else { - return R.findDotsAtSegment(p1x, p1y, c1x, c1y, c2x, c2y, p2x, p2y, getTatLen(p1x, p1y, c1x, c1y, c2x, c2y, p2x, p2y, length)); - } - }, - getLengthFactory = function (istotal, subpath) { - return function (path, length, onlystart) { - path = path2curve(path); - var x, y, p, l, sp = "", subpaths = {}, point, - len = 0; - for (var i = 0, ii = path.length; i < ii; i++) { - p = path[i]; - if (p[0] == "M") { - x = +p[1]; - y = +p[2]; - } else { - l = getPointAtSegmentLength(x, y, p[1], p[2], p[3], p[4], p[5], p[6]); - if (len + l > length) { - if (subpath && !subpaths.start) { - point = getPointAtSegmentLength(x, y, p[1], p[2], p[3], p[4], p[5], p[6], length - len); - sp += ["C" + point.start.x, point.start.y, point.m.x, point.m.y, point.x, point.y]; - if (onlystart) {return sp;} - subpaths.start = sp; - sp = ["M" + point.x, point.y + "C" + point.n.x, point.n.y, point.end.x, point.end.y, p[5], p[6]].join(); - len += l; - x = +p[5]; - y = +p[6]; - continue; - } - if (!istotal && !subpath) { - point = getPointAtSegmentLength(x, y, p[1], p[2], p[3], p[4], p[5], p[6], length - len); - return {x: point.x, y: point.y, alpha: point.alpha}; - } - } - len += l; - x = +p[5]; - y = +p[6]; - } - sp += p.shift() + p; - } - subpaths.end = sp; - point = istotal ? len : subpath ? subpaths : R.findDotsAtSegment(x, y, p[0], p[1], p[2], p[3], p[4], p[5], 1); - point.alpha && (point = {x: point.x, y: point.y, alpha: point.alpha}); - return point; - }; - }; - var getTotalLength = getLengthFactory(1), - getPointAtLength = getLengthFactory(), - getSubpathsAtLength = getLengthFactory(0, 1); - /*\ - * Raphael.getTotalLength - [ method ] - ** - * Returns length of the given path in pixels. - ** - > Parameters - ** - - path (string) SVG path string. - ** - = (number) length. - \*/ - R.getTotalLength = getTotalLength; - /*\ - * Raphael.getPointAtLength - [ method ] - ** - * Return coordinates of the point located at the given length on the given path. - ** - > Parameters - ** - - path (string) SVG path string - - length (number) - ** - = (object) representation of the point: - o { - o x: (number) x coordinate - o y: (number) y coordinate - o alpha: (number) angle of derivative - o } - \*/ - R.getPointAtLength = getPointAtLength; - /*\ - * Raphael.getSubpath - [ method ] - ** - * Return subpath of a given path from given length to given length. - ** - > Parameters - ** - - path (string) SVG path string - - from (number) position of the start of the segment - - to (number) position of the end of the segment - ** - = (string) pathstring for the segment - \*/ - R.getSubpath = function (path, from, to) { - if (this.getTotalLength(path) - to < 1e-6) { - return getSubpathsAtLength(path, from).end; - } - var a = getSubpathsAtLength(path, to, 1); - return from ? getSubpathsAtLength(a, from).end : a; - }; - /*\ - * Element.getTotalLength - [ method ] - ** - * Returns length of the path in pixels. Only works for element of “path” type. - = (number) length. - \*/ - elproto.getTotalLength = function () { - var path = this.getPath(); - if (!path) { - return; - } - - if (this.node.getTotalLength) { - return this.node.getTotalLength(); - } - - return getTotalLength(path); - }; - /*\ - * Element.getPointAtLength - [ method ] - ** - * Return coordinates of the point located at the given length on the given path. Only works for element of “path” type. - ** - > Parameters - ** - - length (number) - ** - = (object) representation of the point: - o { - o x: (number) x coordinate - o y: (number) y coordinate - o alpha: (number) angle of derivative - o } - \*/ - elproto.getPointAtLength = function (length) { - var path = this.getPath(); - if (!path) { - return; - } - - return getPointAtLength(path, length); - }; - /*\ - * Element.getPath - [ method ] - ** - * Returns path of the element. Only works for elements of “path” type and simple elements like circle. - = (object) path - ** - \*/ - elproto.getPath = function () { - var path, - getPath = R._getPath[this.type]; - - if (this.type == "text" || this.type == "set") { - return; - } - - if (getPath) { - path = getPath(this); - } - - return path; - }; - /*\ - * Element.getSubpath - [ method ] - ** - * Return subpath of a given element from given length to given length. Only works for element of “path” type. - ** - > Parameters - ** - - from (number) position of the start of the segment - - to (number) position of the end of the segment - ** - = (string) pathstring for the segment - \*/ - elproto.getSubpath = function (from, to) { - var path = this.getPath(); - if (!path) { - return; - } - - return R.getSubpath(path, from, to); - }; - /*\ - * Raphael.easing_formulas - [ property ] - ** - * Object that contains easing formulas for animation. You could extend it with your own. By default it has following list of easing: - # <ul> - # <li>“linear”</li> - # <li>“&lt;” or “easeIn” or “ease-in”</li> - # <li>“>” or “easeOut” or “ease-out”</li> - # <li>“&lt;>” or “easeInOut” or “ease-in-out”</li> - # <li>“backIn” or “back-in”</li> - # <li>“backOut” or “back-out”</li> - # <li>“elastic”</li> - # <li>“bounce”</li> - # </ul> - # <p>See also <a href="http://raphaeljs.com/easing.html">Easing demo</a>.</p> - \*/ - var ef = R.easing_formulas = { - linear: function (n) { - return n; - }, - "<": function (n) { - return pow(n, 1.7); - }, - ">": function (n) { - return pow(n, .48); - }, - "<>": function (n) { - var q = .48 - n / 1.04, - Q = math.sqrt(.1734 + q * q), - x = Q - q, - X = pow(abs(x), 1 / 3) * (x < 0 ? -1 : 1), - y = -Q - q, - Y = pow(abs(y), 1 / 3) * (y < 0 ? -1 : 1), - t = X + Y + .5; - return (1 - t) * 3 * t * t + t * t * t; - }, - backIn: function (n) { - var s = 1.70158; - return n * n * ((s + 1) * n - s); - }, - backOut: function (n) { - n = n - 1; - var s = 1.70158; - return n * n * ((s + 1) * n + s) + 1; - }, - elastic: function (n) { - if (n == !!n) { - return n; - } - return pow(2, -10 * n) * math.sin((n - .075) * (2 * PI) / .3) + 1; - }, - bounce: function (n) { - var s = 7.5625, - p = 2.75, - l; - if (n < (1 / p)) { - l = s * n * n; - } else { - if (n < (2 / p)) { - n -= (1.5 / p); - l = s * n * n + .75; - } else { - if (n < (2.5 / p)) { - n -= (2.25 / p); - l = s * n * n + .9375; - } else { - n -= (2.625 / p); - l = s * n * n + .984375; - } - } - } - return l; - } - }; - ef.easeIn = ef["ease-in"] = ef["<"]; - ef.easeOut = ef["ease-out"] = ef[">"]; - ef.easeInOut = ef["ease-in-out"] = ef["<>"]; - ef["back-in"] = ef.backIn; - ef["back-out"] = ef.backOut; - - var animationElements = [], - requestAnimFrame = window.requestAnimationFrame || - window.webkitRequestAnimationFrame || - window.mozRequestAnimationFrame || - window.oRequestAnimationFrame || - window.msRequestAnimationFrame || - function (callback) { - setTimeout(callback, 16); - }, - animation = function () { - var Now = +new Date, - l = 0; - for (; l < animationElements.length; l++) { - var e = animationElements[l]; - if (e.el.removed || e.paused) { - continue; - } - var time = Now - e.start, - ms = e.ms, - easing = e.easing, - from = e.from, - diff = e.diff, - to = e.to, - t = e.t, - that = e.el, - set = {}, - now, - init = {}, - key; - if (e.initstatus) { - time = (e.initstatus * e.anim.top - e.prev) / (e.percent - e.prev) * ms; - e.status = e.initstatus; - delete e.initstatus; - e.stop && animationElements.splice(l--, 1); - } else { - e.status = (e.prev + (e.percent - e.prev) * (time / ms)) / e.anim.top; - } - if (time < 0) { - continue; - } - if (time < ms) { - var pos = easing(time / ms); - for (var attr in from) if (from[has](attr)) { - switch (availableAnimAttrs[attr]) { - case nu: - now = +from[attr] + pos * ms * diff[attr]; - break; - case "colour": - now = "rgb(" + [ - upto255(round(from[attr].r + pos * ms * diff[attr].r)), - upto255(round(from[attr].g + pos * ms * diff[attr].g)), - upto255(round(from[attr].b + pos * ms * diff[attr].b)) - ].join(",") + ")"; - break; - case "path": - now = []; - for (var i = 0, ii = from[attr].length; i < ii; i++) { - now[i] = [from[attr][i][0]]; - for (var j = 1, jj = from[attr][i].length; j < jj; j++) { - now[i][j] = +from[attr][i][j] + pos * ms * diff[attr][i][j]; - } - now[i] = now[i].join(S); - } - now = now.join(S); - break; - case "transform": - if (diff[attr].real) { - now = []; - for (i = 0, ii = from[attr].length; i < ii; i++) { - now[i] = [from[attr][i][0]]; - for (j = 1, jj = from[attr][i].length; j < jj; j++) { - now[i][j] = from[attr][i][j] + pos * ms * diff[attr][i][j]; - } - } - } else { - var get = function (i) { - return +from[attr][i] + pos * ms * diff[attr][i]; - }; - // now = [["r", get(2), 0, 0], ["t", get(3), get(4)], ["s", get(0), get(1), 0, 0]]; - now = [["m", get(0), get(1), get(2), get(3), get(4), get(5)]]; - } - break; - case "csv": - if (attr == "clip-rect") { - now = []; - i = 4; - while (i--) { - now[i] = +from[attr][i] + pos * ms * diff[attr][i]; - } - } - break; - default: - var from2 = [][concat](from[attr]); - now = []; - i = that.paper.customAttributes[attr].length; - while (i--) { - now[i] = +from2[i] + pos * ms * diff[attr][i]; - } - break; - } - set[attr] = now; - } - that.attr(set); - (function (id, that, anim) { - setTimeout(function () { - eve("raphael.anim.frame." + id, that, anim); - }); - })(that.id, that, e.anim); - } else { - (function(f, el, a) { - setTimeout(function() { - eve("raphael.anim.frame." + el.id, el, a); - eve("raphael.anim.finish." + el.id, el, a); - R.is(f, "function") && f.call(el); - }); - })(e.callback, that, e.anim); - that.attr(to); - animationElements.splice(l--, 1); - if (e.repeat > 1 && !e.next) { - for (key in to) if (to[has](key)) { - init[key] = e.totalOrigin[key]; - } - e.el.attr(init); - runAnimation(e.anim, e.el, e.anim.percents[0], null, e.totalOrigin, e.repeat - 1); - } - if (e.next && !e.stop) { - runAnimation(e.anim, e.el, e.next, null, e.totalOrigin, e.repeat); - } - } - } - animationElements.length && requestAnimFrame(animation); - }, - upto255 = function (color) { - return color > 255 ? 255 : color < 0 ? 0 : color; - }; - /*\ - * Element.animateWith - [ method ] - ** - * Acts similar to @Element.animate, but ensure that given animation runs in sync with another given element. - ** - > Parameters - ** - - el (object) element to sync with - - anim (object) animation to sync with - - params (object) #optional final attributes for the element, see also @Element.attr - - ms (number) #optional number of milliseconds for animation to run - - easing (string) #optional easing type. Accept on of @Raphael.easing_formulas or CSS format: `cubic&#x2010;bezier(XX,&#160;XX,&#160;XX,&#160;XX)` - - callback (function) #optional callback function. Will be called at the end of animation. - * or - - element (object) element to sync with - - anim (object) animation to sync with - - animation (object) #optional animation object, see @Raphael.animation - ** - = (object) original element - \*/ - elproto.animateWith = function (el, anim, params, ms, easing, callback) { - var element = this; - if (element.removed) { - callback && callback.call(element); - return element; - } - var a = params instanceof Animation ? params : R.animation(params, ms, easing, callback), - x, y; - runAnimation(a, element, a.percents[0], null, element.attr()); - for (var i = 0, ii = animationElements.length; i < ii; i++) { - if (animationElements[i].anim == anim && animationElements[i].el == el) { - animationElements[ii - 1].start = animationElements[i].start; - break; - } - } - return element; - // - // - // var a = params ? R.animation(params, ms, easing, callback) : anim, - // status = element.status(anim); - // return this.animate(a).status(a, status * anim.ms / a.ms); - }; - function CubicBezierAtTime(t, p1x, p1y, p2x, p2y, duration) { - var cx = 3 * p1x, - bx = 3 * (p2x - p1x) - cx, - ax = 1 - cx - bx, - cy = 3 * p1y, - by = 3 * (p2y - p1y) - cy, - ay = 1 - cy - by; - function sampleCurveX(t) { - return ((ax * t + bx) * t + cx) * t; - } - function solve(x, epsilon) { - var t = solveCurveX(x, epsilon); - return ((ay * t + by) * t + cy) * t; - } - function solveCurveX(x, epsilon) { - var t0, t1, t2, x2, d2, i; - for(t2 = x, i = 0; i < 8; i++) { - x2 = sampleCurveX(t2) - x; - if (abs(x2) < epsilon) { - return t2; - } - d2 = (3 * ax * t2 + 2 * bx) * t2 + cx; - if (abs(d2) < 1e-6) { - break; - } - t2 = t2 - x2 / d2; - } - t0 = 0; - t1 = 1; - t2 = x; - if (t2 < t0) { - return t0; - } - if (t2 > t1) { - return t1; - } - while (t0 < t1) { - x2 = sampleCurveX(t2); - if (abs(x2 - x) < epsilon) { - return t2; - } - if (x > x2) { - t0 = t2; - } else { - t1 = t2; - } - t2 = (t1 - t0) / 2 + t0; - } - return t2; - } - return solve(t, 1 / (200 * duration)); - } - elproto.onAnimation = function (f) { - f ? eve.on("raphael.anim.frame." + this.id, f) : eve.unbind("raphael.anim.frame." + this.id); - return this; - }; - function Animation(anim, ms) { - var percents = [], - newAnim = {}; - this.ms = ms; - this.times = 1; - if (anim) { - for (var attr in anim) if (anim[has](attr)) { - newAnim[toFloat(attr)] = anim[attr]; - percents.push(toFloat(attr)); - } - percents.sort(sortByNumber); - } - this.anim = newAnim; - this.top = percents[percents.length - 1]; - this.percents = percents; - } - /*\ - * Animation.delay - [ method ] - ** - * Creates a copy of existing animation object with given delay. - ** - > Parameters - ** - - delay (number) number of ms to pass between animation start and actual animation - ** - = (object) new altered Animation object - | var anim = Raphael.animation({cx: 10, cy: 20}, 2e3); - | circle1.animate(anim); // run the given animation immediately - | circle2.animate(anim.delay(500)); // run the given animation after 500 ms - \*/ - Animation.prototype.delay = function (delay) { - var a = new Animation(this.anim, this.ms); - a.times = this.times; - a.del = +delay || 0; - return a; - }; - /*\ - * Animation.repeat - [ method ] - ** - * Creates a copy of existing animation object with given repetition. - ** - > Parameters - ** - - repeat (number) number iterations of animation. For infinite animation pass `Infinity` - ** - = (object) new altered Animation object - \*/ - Animation.prototype.repeat = function (times) { - var a = new Animation(this.anim, this.ms); - a.del = this.del; - a.times = math.floor(mmax(times, 0)) || 1; - return a; - }; - function runAnimation(anim, element, percent, status, totalOrigin, times) { - percent = toFloat(percent); - var params, - isInAnim, - isInAnimSet, - percents = [], - next, - prev, - timestamp, - ms = anim.ms, - from = {}, - to = {}, - diff = {}; - if (status) { - for (i = 0, ii = animationElements.length; i < ii; i++) { - var e = animationElements[i]; - if (e.el.id == element.id && e.anim == anim) { - if (e.percent != percent) { - animationElements.splice(i, 1); - isInAnimSet = 1; - } else { - isInAnim = e; - } - element.attr(e.totalOrigin); - break; - } - } - } else { - status = +to; // NaN - } - for (var i = 0, ii = anim.percents.length; i < ii; i++) { - if (anim.percents[i] == percent || anim.percents[i] > status * anim.top) { - percent = anim.percents[i]; - prev = anim.percents[i - 1] || 0; - ms = ms / anim.top * (percent - prev); - next = anim.percents[i + 1]; - params = anim.anim[percent]; - break; - } else if (status) { - element.attr(anim.anim[anim.percents[i]]); - } - } - if (!params) { - return; - } - if (!isInAnim) { - for (var attr in params) if (params[has](attr)) { - if (availableAnimAttrs[has](attr) || element.paper.customAttributes[has](attr)) { - from[attr] = element.attr(attr); - (from[attr] == null) && (from[attr] = availableAttrs[attr]); - to[attr] = params[attr]; - switch (availableAnimAttrs[attr]) { - case nu: - diff[attr] = (to[attr] - from[attr]) / ms; - break; - case "colour": - from[attr] = R.getRGB(from[attr]); - var toColour = R.getRGB(to[attr]); - diff[attr] = { - r: (toColour.r - from[attr].r) / ms, - g: (toColour.g - from[attr].g) / ms, - b: (toColour.b - from[attr].b) / ms - }; - break; - case "path": - var pathes = path2curve(from[attr], to[attr]), - toPath = pathes[1]; - from[attr] = pathes[0]; - diff[attr] = []; - for (i = 0, ii = from[attr].length; i < ii; i++) { - diff[attr][i] = [0]; - for (var j = 1, jj = from[attr][i].length; j < jj; j++) { - diff[attr][i][j] = (toPath[i][j] - from[attr][i][j]) / ms; - } - } - break; - case "transform": - var _ = element._, - eq = equaliseTransform(_[attr], to[attr]); - if (eq) { - from[attr] = eq.from; - to[attr] = eq.to; - diff[attr] = []; - diff[attr].real = true; - for (i = 0, ii = from[attr].length; i < ii; i++) { - diff[attr][i] = [from[attr][i][0]]; - for (j = 1, jj = from[attr][i].length; j < jj; j++) { - diff[attr][i][j] = (to[attr][i][j] - from[attr][i][j]) / ms; - } - } - } else { - var m = (element.matrix || new Matrix), - to2 = { - _: {transform: _.transform}, - getBBox: function () { - return element.getBBox(1); - } - }; - from[attr] = [ - m.a, - m.b, - m.c, - m.d, - m.e, - m.f - ]; - extractTransform(to2, to[attr]); - to[attr] = to2._.transform; - diff[attr] = [ - (to2.matrix.a - m.a) / ms, - (to2.matrix.b - m.b) / ms, - (to2.matrix.c - m.c) / ms, - (to2.matrix.d - m.d) / ms, - (to2.matrix.e - m.e) / ms, - (to2.matrix.f - m.f) / ms - ]; - // from[attr] = [_.sx, _.sy, _.deg, _.dx, _.dy]; - // var to2 = {_:{}, getBBox: function () { return element.getBBox(); }}; - // extractTransform(to2, to[attr]); - // diff[attr] = [ - // (to2._.sx - _.sx) / ms, - // (to2._.sy - _.sy) / ms, - // (to2._.deg - _.deg) / ms, - // (to2._.dx - _.dx) / ms, - // (to2._.dy - _.dy) / ms - // ]; - } - break; - case "csv": - var values = Str(params[attr])[split](separator), - from2 = Str(from[attr])[split](separator); - if (attr == "clip-rect") { - from[attr] = from2; - diff[attr] = []; - i = from2.length; - while (i--) { - diff[attr][i] = (values[i] - from[attr][i]) / ms; - } - } - to[attr] = values; - break; - default: - values = [][concat](params[attr]); - from2 = [][concat](from[attr]); - diff[attr] = []; - i = element.paper.customAttributes[attr].length; - while (i--) { - diff[attr][i] = ((values[i] || 0) - (from2[i] || 0)) / ms; - } - break; - } - } - } - var easing = params.easing, - easyeasy = R.easing_formulas[easing]; - if (!easyeasy) { - easyeasy = Str(easing).match(bezierrg); - if (easyeasy && easyeasy.length == 5) { - var curve = easyeasy; - easyeasy = function (t) { - return CubicBezierAtTime(t, +curve[1], +curve[2], +curve[3], +curve[4], ms); - }; - } else { - easyeasy = pipe; - } - } - timestamp = params.start || anim.start || +new Date; - e = { - anim: anim, - percent: percent, - timestamp: timestamp, - start: timestamp + (anim.del || 0), - status: 0, - initstatus: status || 0, - stop: false, - ms: ms, - easing: easyeasy, - from: from, - diff: diff, - to: to, - el: element, - callback: params.callback, - prev: prev, - next: next, - repeat: times || anim.times, - origin: element.attr(), - totalOrigin: totalOrigin - }; - animationElements.push(e); - if (status && !isInAnim && !isInAnimSet) { - e.stop = true; - e.start = new Date - ms * status; - if (animationElements.length == 1) { - return animation(); - } - } - if (isInAnimSet) { - e.start = new Date - e.ms * status; - } - animationElements.length == 1 && requestAnimFrame(animation); - } else { - isInAnim.initstatus = status; - isInAnim.start = new Date - isInAnim.ms * status; - } - eve("raphael.anim.start." + element.id, element, anim); - } - /*\ - * Raphael.animation - [ method ] - ** - * Creates an animation object that can be passed to the @Element.animate or @Element.animateWith methods. - * See also @Animation.delay and @Animation.repeat methods. - ** - > Parameters - ** - - params (object) final attributes for the element, see also @Element.attr - - ms (number) number of milliseconds for animation to run - - easing (string) #optional easing type. Accept one of @Raphael.easing_formulas or CSS format: `cubic&#x2010;bezier(XX,&#160;XX,&#160;XX,&#160;XX)` - - callback (function) #optional callback function. Will be called at the end of animation. - ** - = (object) @Animation - \*/ - R.animation = function (params, ms, easing, callback) { - if (params instanceof Animation) { - return params; - } - if (R.is(easing, "function") || !easing) { - callback = callback || easing || null; - easing = null; - } - params = Object(params); - ms = +ms || 0; - var p = {}, - json, - attr; - for (attr in params) if (params[has](attr) && toFloat(attr) != attr && toFloat(attr) + "%" != attr) { - json = true; - p[attr] = params[attr]; - } - if (!json) { - // if percent-like syntax is used and end-of-all animation callback used - if(callback){ - // find the last one - var lastKey = 0; - for(var i in params){ - var percent = toInt(i); - if(params[has](i) && percent > lastKey){ - lastKey = percent; - } - } - lastKey += '%'; - // if already defined callback in the last keyframe, skip - !params[lastKey].callback && (params[lastKey].callback = callback); - } - return new Animation(params, ms); - } else { - easing && (p.easing = easing); - callback && (p.callback = callback); - return new Animation({100: p}, ms); - } - }; - /*\ - * Element.animate - [ method ] - ** - * Creates and starts animation for given element. - ** - > Parameters - ** - - params (object) final attributes for the element, see also @Element.attr - - ms (number) number of milliseconds for animation to run - - easing (string) #optional easing type. Accept one of @Raphael.easing_formulas or CSS format: `cubic&#x2010;bezier(XX,&#160;XX,&#160;XX,&#160;XX)` - - callback (function) #optional callback function. Will be called at the end of animation. - * or - - animation (object) animation object, see @Raphael.animation - ** - = (object) original element - \*/ - elproto.animate = function (params, ms, easing, callback) { - var element = this; - if (element.removed) { - callback && callback.call(element); - return element; - } - var anim = params instanceof Animation ? params : R.animation(params, ms, easing, callback); - runAnimation(anim, element, anim.percents[0], null, element.attr()); - return element; - }; - /*\ - * Element.setTime - [ method ] - ** - * Sets the status of animation of the element in milliseconds. Similar to @Element.status method. - ** - > Parameters - ** - - anim (object) animation object - - value (number) number of milliseconds from the beginning of the animation - ** - = (object) original element if `value` is specified - * Note, that during animation following events are triggered: - * - * On each animation frame event `anim.frame.<id>`, on start `anim.start.<id>` and on end `anim.finish.<id>`. - \*/ - elproto.setTime = function (anim, value) { - if (anim && value != null) { - this.status(anim, mmin(value, anim.ms) / anim.ms); - } - return this; - }; - /*\ - * Element.status - [ method ] - ** - * Gets or sets the status of animation of the element. - ** - > Parameters - ** - - anim (object) #optional animation object - - value (number) #optional 0 – 1. If specified, method works like a setter and sets the status of a given animation to the value. This will cause animation to jump to the given position. - ** - = (number) status - * or - = (array) status if `anim` is not specified. Array of objects in format: - o { - o anim: (object) animation object - o status: (number) status - o } - * or - = (object) original element if `value` is specified - \*/ - elproto.status = function (anim, value) { - var out = [], - i = 0, - len, - e; - if (value != null) { - runAnimation(anim, this, -1, mmin(value, 1)); - return this; - } else { - len = animationElements.length; - for (; i < len; i++) { - e = animationElements[i]; - if (e.el.id == this.id && (!anim || e.anim == anim)) { - if (anim) { - return e.status; - } - out.push({ - anim: e.anim, - status: e.status - }); - } - } - if (anim) { - return 0; - } - return out; - } - }; - /*\ - * Element.pause - [ method ] - ** - * Stops animation of the element with ability to resume it later on. - ** - > Parameters - ** - - anim (object) #optional animation object - ** - = (object) original element - \*/ - elproto.pause = function (anim) { - for (var i = 0; i < animationElements.length; i++) if (animationElements[i].el.id == this.id && (!anim || animationElements[i].anim == anim)) { - if (eve("raphael.anim.pause." + this.id, this, animationElements[i].anim) !== false) { - animationElements[i].paused = true; - } - } - return this; - }; - /*\ - * Element.resume - [ method ] - ** - * Resumes animation if it was paused with @Element.pause method. - ** - > Parameters - ** - - anim (object) #optional animation object - ** - = (object) original element - \*/ - elproto.resume = function (anim) { - for (var i = 0; i < animationElements.length; i++) if (animationElements[i].el.id == this.id && (!anim || animationElements[i].anim == anim)) { - var e = animationElements[i]; - if (eve("raphael.anim.resume." + this.id, this, e.anim) !== false) { - delete e.paused; - this.status(e.anim, e.status); - } - } - return this; - }; - /*\ - * Element.stop - [ method ] - ** - * Stops animation of the element. - ** - > Parameters - ** - - anim (object) #optional animation object - ** - = (object) original element - \*/ - elproto.stop = function (anim) { - for (var i = 0; i < animationElements.length; i++) if (animationElements[i].el.id == this.id && (!anim || animationElements[i].anim == anim)) { - if (eve("raphael.anim.stop." + this.id, this, animationElements[i].anim) !== false) { - animationElements.splice(i--, 1); - } - } - return this; - }; - function stopAnimation(paper) { - for (var i = 0; i < animationElements.length; i++) if (animationElements[i].el.paper == paper) { - animationElements.splice(i--, 1); - } - } - eve.on("raphael.remove", stopAnimation); - eve.on("raphael.clear", stopAnimation); - elproto.toString = function () { - return "Rapha\xebl\u2019s object"; - }; - - // Set - var Set = function (items) { - this.items = []; - this.length = 0; - this.type = "set"; - if (items) { - for (var i = 0, ii = items.length; i < ii; i++) { - if (items[i] && (items[i].constructor == elproto.constructor || items[i].constructor == Set)) { - this[this.items.length] = this.items[this.items.length] = items[i]; - this.length++; - } - } - } - }, - setproto = Set.prototype; - /*\ - * Set.push - [ method ] - ** - * Adds each argument to the current set. - = (object) original element - \*/ - setproto.push = function () { - var item, - len; - for (var i = 0, ii = arguments.length; i < ii; i++) { - item = arguments[i]; - if (item && (item.constructor == elproto.constructor || item.constructor == Set)) { - len = this.items.length; - this[len] = this.items[len] = item; - this.length++; - } - } - return this; - }; - /*\ - * Set.pop - [ method ] - ** - * Removes last element and returns it. - = (object) element - \*/ - setproto.pop = function () { - this.length && delete this[this.length--]; - return this.items.pop(); - }; - /*\ - * Set.forEach - [ method ] - ** - * Executes given function for each element in the set. - * - * If function returns `false` it will stop loop running. - ** - > Parameters - ** - - callback (function) function to run - - thisArg (object) context object for the callback - = (object) Set object - \*/ - setproto.forEach = function (callback, thisArg) { - for (var i = 0, ii = this.items.length; i < ii; i++) { - if (callback.call(thisArg, this.items[i], i) === false) { - return this; - } - } - return this; - }; - for (var method in elproto) if (elproto[has](method)) { - setproto[method] = (function (methodname) { - return function () { - var arg = arguments; - return this.forEach(function (el) { - el[methodname][apply](el, arg); - }); - }; - })(method); - } - setproto.attr = function (name, value) { - if (name && R.is(name, array) && R.is(name[0], "object")) { - for (var j = 0, jj = name.length; j < jj; j++) { - this.items[j].attr(name[j]); - } - } else { - for (var i = 0, ii = this.items.length; i < ii; i++) { - this.items[i].attr(name, value); - } - } - return this; - }; - /*\ - * Set.clear - [ method ] - ** - * Removes all elements from the set - \*/ - setproto.clear = function () { - while (this.length) { - this.pop(); - } - }; - /*\ - * Set.splice - [ method ] - ** - * Removes given element from the set - ** - > Parameters - ** - - index (number) position of the deletion - - count (number) number of element to remove - - insertion… (object) #optional elements to insert - = (object) set elements that were deleted - \*/ - setproto.splice = function (index, count, insertion) { - index = index < 0 ? mmax(this.length + index, 0) : index; - count = mmax(0, mmin(this.length - index, count)); - var tail = [], - todel = [], - args = [], - i; - for (i = 2; i < arguments.length; i++) { - args.push(arguments[i]); - } - for (i = 0; i < count; i++) { - todel.push(this[index + i]); - } - for (; i < this.length - index; i++) { - tail.push(this[index + i]); - } - var arglen = args.length; - for (i = 0; i < arglen + tail.length; i++) { - this.items[index + i] = this[index + i] = i < arglen ? args[i] : tail[i - arglen]; - } - i = this.items.length = this.length -= count - arglen; - while (this[i]) { - delete this[i++]; - } - return new Set(todel); - }; - /*\ - * Set.exclude - [ method ] - ** - * Removes given element from the set - ** - > Parameters - ** - - element (object) element to remove - = (boolean) `true` if object was found & removed from the set - \*/ - setproto.exclude = function (el) { - for (var i = 0, ii = this.length; i < ii; i++) if (this[i] == el) { - this.splice(i, 1); - return true; - } - }; - setproto.animate = function (params, ms, easing, callback) { - (R.is(easing, "function") || !easing) && (callback = easing || null); - var len = this.items.length, - i = len, - item, - set = this, - collector; - if (!len) { - return this; - } - callback && (collector = function () { - !--len && callback.call(set); - }); - easing = R.is(easing, string) ? easing : collector; - var anim = R.animation(params, ms, easing, collector); - item = this.items[--i].animate(anim); - while (i--) { - this.items[i] && !this.items[i].removed && this.items[i].animateWith(item, anim, anim); - (this.items[i] && !this.items[i].removed) || len--; - } - return this; - }; - setproto.insertAfter = function (el) { - var i = this.items.length; - while (i--) { - this.items[i].insertAfter(el); - } - return this; - }; - setproto.getBBox = function () { - var x = [], - y = [], - x2 = [], - y2 = []; - for (var i = this.items.length; i--;) if (!this.items[i].removed) { - var box = this.items[i].getBBox(); - x.push(box.x); - y.push(box.y); - x2.push(box.x + box.width); - y2.push(box.y + box.height); - } - x = mmin[apply](0, x); - y = mmin[apply](0, y); - x2 = mmax[apply](0, x2); - y2 = mmax[apply](0, y2); - return { - x: x, - y: y, - x2: x2, - y2: y2, - width: x2 - x, - height: y2 - y - }; - }; - setproto.clone = function (s) { - s = this.paper.set(); - for (var i = 0, ii = this.items.length; i < ii; i++) { - s.push(this.items[i].clone()); - } - return s; - }; - setproto.toString = function () { - return "Rapha\xebl\u2018s set"; - }; - - setproto.glow = function(glowConfig) { - var ret = this.paper.set(); - this.forEach(function(shape, index){ - var g = shape.glow(glowConfig); - if(g != null){ - g.forEach(function(shape2, index2){ - ret.push(shape2); - }); - } - }); - return ret; - }; - - - /*\ - * Set.isPointInside - [ method ] - ** - * Determine if given point is inside this set’s elements - ** - > Parameters - ** - - x (number) x coordinate of the point - - y (number) y coordinate of the point - = (boolean) `true` if point is inside any of the set's elements - \*/ - setproto.isPointInside = function (x, y) { - var isPointInside = false; - this.forEach(function (el) { - if (el.isPointInside(x, y)) { - isPointInside = true; - return false; // stop loop - } - }); - return isPointInside; - }; - - /*\ - * Raphael.registerFont - [ method ] - ** - * Adds given font to the registered set of fonts for Raphaël. Should be used as an internal call from within Cufón’s font file. - * Returns original parameter, so it could be used with chaining. - # <a href="http://wiki.github.com/sorccu/cufon/about">More about Cufón and how to convert your font form TTF, OTF, etc to JavaScript file.</a> - ** - > Parameters - ** - - font (object) the font to register - = (object) the font you passed in - > Usage - | Cufon.registerFont(Raphael.registerFont({…})); - \*/ - R.registerFont = function (font) { - if (!font.face) { - return font; - } - this.fonts = this.fonts || {}; - var fontcopy = { - w: font.w, - face: {}, - glyphs: {} - }, - family = font.face["font-family"]; - for (var prop in font.face) if (font.face[has](prop)) { - fontcopy.face[prop] = font.face[prop]; - } - if (this.fonts[family]) { - this.fonts[family].push(fontcopy); - } else { - this.fonts[family] = [fontcopy]; - } - if (!font.svg) { - fontcopy.face["units-per-em"] = toInt(font.face["units-per-em"], 10); - for (var glyph in font.glyphs) if (font.glyphs[has](glyph)) { - var path = font.glyphs[glyph]; - fontcopy.glyphs[glyph] = { - w: path.w, - k: {}, - d: path.d && "M" + path.d.replace(/[mlcxtrv]/g, function (command) { - return {l: "L", c: "C", x: "z", t: "m", r: "l", v: "c"}[command] || "M"; - }) + "z" - }; - if (path.k) { - for (var k in path.k) if (path[has](k)) { - fontcopy.glyphs[glyph].k[k] = path.k[k]; - } - } - } - } - return font; - }; - /*\ - * Paper.getFont - [ method ] - ** - * Finds font object in the registered fonts by given parameters. You could specify only one word from the font name, like “Myriad” for “Myriad Pro”. - ** - > Parameters - ** - - family (string) font family name or any word from it - - weight (string) #optional font weight - - style (string) #optional font style - - stretch (string) #optional font stretch - = (object) the font object - > Usage - | paper.print(100, 100, "Test string", paper.getFont("Times", 800), 30); - \*/ - paperproto.getFont = function (family, weight, style, stretch) { - stretch = stretch || "normal"; - style = style || "normal"; - weight = +weight || {normal: 400, bold: 700, lighter: 300, bolder: 800}[weight] || 400; - if (!R.fonts) { - return; - } - var font = R.fonts[family]; - if (!font) { - var name = new RegExp("(^|\\s)" + family.replace(/[^\w\d\s+!~.:_-]/g, E) + "(\\s|$)", "i"); - for (var fontName in R.fonts) if (R.fonts[has](fontName)) { - if (name.test(fontName)) { - font = R.fonts[fontName]; - break; - } - } - } - var thefont; - if (font) { - for (var i = 0, ii = font.length; i < ii; i++) { - thefont = font[i]; - if (thefont.face["font-weight"] == weight && (thefont.face["font-style"] == style || !thefont.face["font-style"]) && thefont.face["font-stretch"] == stretch) { - break; - } - } - } - return thefont; - }; - /*\ - * Paper.print - [ method ] - ** - * Creates path that represent given text written using given font at given position with given size. - * Result of the method is path element that contains whole text as a separate path. - ** - > Parameters - ** - - x (number) x position of the text - - y (number) y position of the text - - string (string) text to print - - font (object) font object, see @Paper.getFont - - size (number) #optional size of the font, default is `16` - - origin (string) #optional could be `"baseline"` or `"middle"`, default is `"middle"` - - letter_spacing (number) #optional number in range `-1..1`, default is `0` - - line_spacing (number) #optional number in range `1..3`, default is `1` - = (object) resulting path element, which consist of all letters - > Usage - | var txt = r.print(10, 50, "print", r.getFont("Museo"), 30).attr({fill: "#fff"}); - \*/ - paperproto.print = function (x, y, string, font, size, origin, letter_spacing, line_spacing) { - origin = origin || "middle"; // baseline|middle - letter_spacing = mmax(mmin(letter_spacing || 0, 1), -1); - line_spacing = mmax(mmin(line_spacing || 1, 3), 1); - var letters = Str(string)[split](E), - shift = 0, - notfirst = 0, - path = E, - scale; - R.is(font, "string") && (font = this.getFont(font)); - if (font) { - scale = (size || 16) / font.face["units-per-em"]; - var bb = font.face.bbox[split](separator), - top = +bb[0], - lineHeight = bb[3] - bb[1], - shifty = 0, - height = +bb[1] + (origin == "baseline" ? lineHeight + (+font.face.descent) : lineHeight / 2); - for (var i = 0, ii = letters.length; i < ii; i++) { - if (letters[i] == "\n") { - shift = 0; - curr = 0; - notfirst = 0; - shifty += lineHeight * line_spacing; - } else { - var prev = notfirst && font.glyphs[letters[i - 1]] || {}, - curr = font.glyphs[letters[i]]; - shift += notfirst ? (prev.w || font.w) + (prev.k && prev.k[letters[i]] || 0) + (font.w * letter_spacing) : 0; - notfirst = 1; - } - if (curr && curr.d) { - path += R.transformPath(curr.d, ["t", shift * scale, shifty * scale, "s", scale, scale, top, height, "t", (x - top) / scale, (y - height) / scale]); - } - } - } - return this.path(path).attr({ - fill: "#000", - stroke: "none" - }); - }; - - /*\ - * Paper.add - [ method ] - ** - * Imports elements in JSON array in format `{type: type, <attributes>}` - ** - > Parameters - ** - - json (array) - = (object) resulting set of imported elements - > Usage - | paper.add([ - | { - | type: "circle", - | cx: 10, - | cy: 10, - | r: 5 - | }, - | { - | type: "rect", - | x: 10, - | y: 10, - | width: 10, - | height: 10, - | fill: "#fc0" - | } - | ]); - \*/ - paperproto.add = function (json) { - if (R.is(json, "array")) { - var res = this.set(), - i = 0, - ii = json.length, - j; - for (; i < ii; i++) { - j = json[i] || {}; - elements[has](j.type) && res.push(this[j.type]().attr(j)); - } - } - return res; - }; - - /*\ - * Raphael.format - [ method ] - ** - * Simple format function. Replaces construction of type “`{<number>}`” to the corresponding argument. - ** - > Parameters - ** - - token (string) string to format - - … (string) rest of arguments will be treated as parameters for replacement - = (string) formated string - > Usage - | var x = 10, - | y = 20, - | width = 40, - | height = 50; - | // this will draw a rectangular shape equivalent to "M10,20h40v50h-40z" - | paper.path(Raphael.format("M{0},{1}h{2}v{3}h{4}z", x, y, width, height, -width)); - \*/ - R.format = function (token, params) { - var args = R.is(params, array) ? [0][concat](params) : arguments; - token && R.is(token, string) && args.length - 1 && (token = token.replace(formatrg, function (str, i) { - return args[++i] == null ? E : args[i]; - })); - return token || E; - }; - /*\ - * Raphael.fullfill - [ method ] - ** - * A little bit more advanced format function than @Raphael.format. Replaces construction of type “`{<name>}`” to the corresponding argument. - ** - > Parameters - ** - - token (string) string to format - - json (object) object which properties will be used as a replacement - = (string) formated string - > Usage - | // this will draw a rectangular shape equivalent to "M10,20h40v50h-40z" - | paper.path(Raphael.fullfill("M{x},{y}h{dim.width}v{dim.height}h{dim['negative width']}z", { - | x: 10, - | y: 20, - | dim: { - | width: 40, - | height: 50, - | "negative width": -40 - | } - | })); - \*/ - R.fullfill = (function () { - var tokenRegex = /\{([^\}]+)\}/g, - objNotationRegex = /(?:(?:^|\.)(.+?)(?=\[|\.|$|\()|\[('|")(.+?)\2\])(\(\))?/g, // matches .xxxxx or ["xxxxx"] to run over object properties - replacer = function (all, key, obj) { - var res = obj; - key.replace(objNotationRegex, function (all, name, quote, quotedName, isFunc) { - name = name || quotedName; - if (res) { - if (name in res) { - res = res[name]; - } - typeof res == "function" && isFunc && (res = res()); - } - }); - res = (res == null || res == obj ? all : res) + ""; - return res; - }; - return function (str, obj) { - return String(str).replace(tokenRegex, function (all, key) { - return replacer(all, key, obj); - }); - }; - })(); - /*\ - * Raphael.ninja - [ method ] - ** - * If you want to leave no trace of Raphaël (Well, Raphaël creates only one global variable `Raphael`, but anyway.) You can use `ninja` method. - * Beware, that in this case plugins could stop working, because they are depending on global variable existence. - ** - = (object) Raphael object - > Usage - | (function (local_raphael) { - | var paper = local_raphael(10, 10, 320, 200); - | … - | })(Raphael.ninja()); - \*/ - R.ninja = function () { - if (oldRaphael.was) { - g.win.Raphael = oldRaphael.is; - } else { - // IE8 raises an error when deleting window property - window.Raphael = undefined; - try { - delete window.Raphael; - } catch(e) {} - } - return R; - }; - /*\ - * Raphael.st - [ property (object) ] - ** - * You can add your own method to elements and sets. It is wise to add a set method for each element method - * you added, so you will be able to call the same method on sets too. - ** - * See also @Raphael.el. - > Usage - | Raphael.el.red = function () { - | this.attr({fill: "#f00"}); - | }; - | Raphael.st.red = function () { - | this.forEach(function (el) { - | el.red(); - | }); - | }; - | // then use it - | paper.set(paper.circle(100, 100, 20), paper.circle(110, 100, 20)).red(); - \*/ - R.st = setproto; - - eve.on("raphael.DOMload", function () { - loaded = true; - }); - - // Firefox <3.6 fix: http://webreflection.blogspot.com/2009/11/195-chars-to-help-lazy-loading.html - (function (doc, loaded, f) { - if (doc.readyState == null && doc.addEventListener){ - doc.addEventListener(loaded, f = function () { - doc.removeEventListener(loaded, f, false); - doc.readyState = "complete"; - }, false); - doc.readyState = "loading"; - } - function isLoaded() { - (/in/).test(doc.readyState) ? setTimeout(isLoaded, 9) : R.eve("raphael.DOMload"); - } - isLoaded(); - })(document, "DOMContentLoaded"); - - return R; - }.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)); - - -/***/ }, -/* 2 */ -/***/ function(module, exports, __webpack_require__) { - - var __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;// Copyright (c) 2013 Adobe Systems Incorporated. All rights reserved. - // - // Licensed under the Apache License, Version 2.0 (the "License"); - // you may not use this file except in compliance with the License. - // You may obtain a copy of the License at - // - // http://www.apache.org/licenses/LICENSE-2.0 - // - // Unless required by applicable law or agreed to in writing, software - // distributed under the License is distributed on an "AS IS" BASIS, - // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - // See the License for the specific language governing permissions and - // limitations under the License. - // ┌────────────────────────────────────────────────────────────┐ \\ - // │ Eve 0.5.0 - JavaScript Events Library │ \\ - // ├────────────────────────────────────────────────────────────┤ \\ - // │ Author Dmitry Baranovskiy (http://dmitry.baranovskiy.com/) │ \\ - // └────────────────────────────────────────────────────────────┘ \\ - - (function (glob) { - var version = "0.5.0", - has = "hasOwnProperty", - separator = /[\.\/]/, - comaseparator = /\s*,\s*/, - wildcard = "*", - fun = function () {}, - numsort = function (a, b) { - return a - b; - }, - current_event, - stop, - events = {n: {}}, - firstDefined = function () { - for (var i = 0, ii = this.length; i < ii; i++) { - if (typeof this[i] != "undefined") { - return this[i]; - } - } - }, - lastDefined = function () { - var i = this.length; - while (--i) { - if (typeof this[i] != "undefined") { - return this[i]; - } - } - }, - objtos = Object.prototype.toString, - Str = String, - isArray = Array.isArray || function (ar) { - return ar instanceof Array || objtos.call(ar) == "[object Array]"; - }; - /*\ - * eve - [ method ] - - * Fires event with given `name`, given scope and other parameters. - - > Arguments - - - name (string) name of the *event*, dot (`.`) or slash (`/`) separated - - scope (object) context for the event handlers - - varargs (...) the rest of arguments will be sent to event handlers - - = (object) array of returned values from the listeners. Array has two methods `.firstDefined()` and `.lastDefined()` to get first or last not `undefined` value. - \*/ - eve = function (name, scope) { - var e = events, - oldstop = stop, - args = Array.prototype.slice.call(arguments, 2), - listeners = eve.listeners(name), - z = 0, - f = false, - l, - indexed = [], - queue = {}, - out = [], - ce = current_event, - errors = []; - out.firstDefined = firstDefined; - out.lastDefined = lastDefined; - current_event = name; - stop = 0; - for (var i = 0, ii = listeners.length; i < ii; i++) if ("zIndex" in listeners[i]) { - indexed.push(listeners[i].zIndex); - if (listeners[i].zIndex < 0) { - queue[listeners[i].zIndex] = listeners[i]; - } - } - indexed.sort(numsort); - while (indexed[z] < 0) { - l = queue[indexed[z++]]; - out.push(l.apply(scope, args)); - if (stop) { - stop = oldstop; - return out; - } - } - for (i = 0; i < ii; i++) { - l = listeners[i]; - if ("zIndex" in l) { - if (l.zIndex == indexed[z]) { - out.push(l.apply(scope, args)); - if (stop) { - break; - } - do { - z++; - l = queue[indexed[z]]; - l && out.push(l.apply(scope, args)); - if (stop) { - break; - } - } while (l) - } else { - queue[l.zIndex] = l; - } - } else { - out.push(l.apply(scope, args)); - if (stop) { - break; - } - } - } - stop = oldstop; - current_event = ce; - return out; - }; - // Undocumented. Debug only. - eve._events = events; - /*\ - * eve.listeners - [ method ] - - * Internal method which gives you array of all event handlers that will be triggered by the given `name`. - - > Arguments - - - name (string) name of the event, dot (`.`) or slash (`/`) separated - - = (array) array of event handlers - \*/ - eve.listeners = function (name) { - var names = isArray(name) ? name : name.split(separator), - e = events, - item, - items, - k, - i, - ii, - j, - jj, - nes, - es = [e], - out = []; - for (i = 0, ii = names.length; i < ii; i++) { - nes = []; - for (j = 0, jj = es.length; j < jj; j++) { - e = es[j].n; - items = [e[names[i]], e[wildcard]]; - k = 2; - while (k--) { - item = items[k]; - if (item) { - nes.push(item); - out = out.concat(item.f || []); - } - } - } - es = nes; - } - return out; - }; - /*\ - * eve.separator - [ method ] - - * If for some reasons you don’t like default separators (`.` or `/`) you can specify yours - * here. Be aware that if you pass a string longer than one character it will be treated as - * a list of characters. - - - separator (string) new separator. Empty string resets to default: `.` or `/`. - \*/ - eve.separator = function (sep) { - if (sep) { - sep = Str(sep).replace(/(?=[\.\^\]\[\-])/g, "\\"); - sep = "[" + sep + "]"; - separator = new RegExp(sep); - } else { - separator = /[\.\/]/; - } - }; - /*\ - * eve.on - [ method ] - ** - * Binds given event handler with a given name. You can use wildcards “`*`” for the names: - | eve.on("*.under.*", f); - | eve("mouse.under.floor"); // triggers f - * Use @eve to trigger the listener. - ** - - name (string) name of the event, dot (`.`) or slash (`/`) separated, with optional wildcards - - f (function) event handler function - ** - - name (array) if you don’t want to use separators, you can use array of strings - - f (function) event handler function - ** - = (function) returned function accepts a single numeric parameter that represents z-index of the handler. It is an optional feature and only used when you need to ensure that some subset of handlers will be invoked in a given order, despite of the order of assignment. - > Example: - | eve.on("mouse", eatIt)(2); - | eve.on("mouse", scream); - | eve.on("mouse", catchIt)(1); - * This will ensure that `catchIt` function will be called before `eatIt`. - * - * If you want to put your handler before non-indexed handlers, specify a negative value. - * Note: I assume most of the time you don’t need to worry about z-index, but it’s nice to have this feature “just in case”. - \*/ - eve.on = function (name, f) { - if (typeof f != "function") { - return function () {}; - } - var names = isArray(name) ? (isArray(name[0]) ? name : [name]) : Str(name).split(comaseparator); - for (var i = 0, ii = names.length; i < ii; i++) { - (function (name) { - var names = isArray(name) ? name : Str(name).split(separator), - e = events, - exist; - for (var i = 0, ii = names.length; i < ii; i++) { - e = e.n; - e = e.hasOwnProperty(names[i]) && e[names[i]] || (e[names[i]] = {n: {}}); - } - e.f = e.f || []; - for (i = 0, ii = e.f.length; i < ii; i++) if (e.f[i] == f) { - exist = true; - break; - } - !exist && e.f.push(f); - }(names[i])); - } - return function (zIndex) { - if (+zIndex == +zIndex) { - f.zIndex = +zIndex; - } - }; - }; - /*\ - * eve.f - [ method ] - ** - * Returns function that will fire given event with optional arguments. - * Arguments that will be passed to the result function will be also - * concated to the list of final arguments. - | el.onclick = eve.f("click", 1, 2); - | eve.on("click", function (a, b, c) { - | console.log(a, b, c); // 1, 2, [event object] - | }); - > Arguments - - event (string) event name - - varargs (…) and any other arguments - = (function) possible event handler function - \*/ - eve.f = function (event) { - var attrs = [].slice.call(arguments, 1); - return function () { - eve.apply(null, [event, null].concat(attrs).concat([].slice.call(arguments, 0))); - }; - }; - /*\ - * eve.stop - [ method ] - ** - * Is used inside an event handler to stop the event, preventing any subsequent listeners from firing. - \*/ - eve.stop = function () { - stop = 1; - }; - /*\ - * eve.nt - [ method ] - ** - * Could be used inside event handler to figure out actual name of the event. - ** - > Arguments - ** - - subname (string) #optional subname of the event - ** - = (string) name of the event, if `subname` is not specified - * or - = (boolean) `true`, if current event’s name contains `subname` - \*/ - eve.nt = function (subname) { - var cur = isArray(current_event) ? current_event.join(".") : current_event; - if (subname) { - return new RegExp("(?:\\.|\\/|^)" + subname + "(?:\\.|\\/|$)").test(cur); - } - return cur; - }; - /*\ - * eve.nts - [ method ] - ** - * Could be used inside event handler to figure out actual name of the event. - ** - ** - = (array) names of the event - \*/ - eve.nts = function () { - return isArray(current_event) ? current_event : current_event.split(separator); - }; - /*\ - * eve.off - [ method ] - ** - * Removes given function from the list of event listeners assigned to given name. - * If no arguments specified all the events will be cleared. - ** - > Arguments - ** - - name (string) name of the event, dot (`.`) or slash (`/`) separated, with optional wildcards - - f (function) event handler function - \*/ - /*\ - * eve.unbind - [ method ] - ** - * See @eve.off - \*/ - eve.off = eve.unbind = function (name, f) { - if (!name) { - eve._events = events = {n: {}}; - return; - } - var names = isArray(name) ? (isArray(name[0]) ? name : [name]) : Str(name).split(comaseparator); - if (names.length > 1) { - for (var i = 0, ii = names.length; i < ii; i++) { - eve.off(names[i], f); - } - return; - } - names = isArray(name) ? name : Str(name).split(separator); - var e, - key, - splice, - i, ii, j, jj, - cur = [events]; - for (i = 0, ii = names.length; i < ii; i++) { - for (j = 0; j < cur.length; j += splice.length - 2) { - splice = [j, 1]; - e = cur[j].n; - if (names[i] != wildcard) { - if (e[names[i]]) { - splice.push(e[names[i]]); - } - } else { - for (key in e) if (e[has](key)) { - splice.push(e[key]); - } - } - cur.splice.apply(cur, splice); - } - } - for (i = 0, ii = cur.length; i < ii; i++) { - e = cur[i]; - while (e.n) { - if (f) { - if (e.f) { - for (j = 0, jj = e.f.length; j < jj; j++) if (e.f[j] == f) { - e.f.splice(j, 1); - break; - } - !e.f.length && delete e.f; - } - for (key in e.n) if (e.n[has](key) && e.n[key].f) { - var funcs = e.n[key].f; - for (j = 0, jj = funcs.length; j < jj; j++) if (funcs[j] == f) { - funcs.splice(j, 1); - break; - } - !funcs.length && delete e.n[key].f; - } - } else { - delete e.f; - for (key in e.n) if (e.n[has](key) && e.n[key].f) { - delete e.n[key].f; - } - } - e = e.n; - } - } - }; - /*\ - * eve.once - [ method ] - ** - * Binds given event handler with a given name to only run once then unbind itself. - | eve.once("login", f); - | eve("login"); // triggers f - | eve("login"); // no listeners - * Use @eve to trigger the listener. - ** - > Arguments - ** - - name (string) name of the event, dot (`.`) or slash (`/`) separated, with optional wildcards - - f (function) event handler function - ** - = (function) same return function as @eve.on - \*/ - eve.once = function (name, f) { - var f2 = function () { - eve.off(name, f2); - return f.apply(this, arguments); - }; - return eve.on(name, f2); - }; - /*\ - * eve.version - [ property (string) ] - ** - * Current version of the library. - \*/ - eve.version = version; - eve.toString = function () { - return "You are running Eve " + version; - }; - (typeof module != "undefined" && module.exports) ? (module.exports = eve) : ( true ? (!(__WEBPACK_AMD_DEFINE_ARRAY__ = [], __WEBPACK_AMD_DEFINE_RESULT__ = function() { return eve; }.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__))) : (glob.eve = eve)); - })(this); - - -/***/ }, -/* 3 */ -/***/ function(module, exports, __webpack_require__) { - - var __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;!(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(1)], __WEBPACK_AMD_DEFINE_RESULT__ = function(R) { - if (R && !R.svg) { - return; - } - - var has = "hasOwnProperty", - Str = String, - toFloat = parseFloat, - toInt = parseInt, - math = Math, - mmax = math.max, - abs = math.abs, - pow = math.pow, - separator = /[, ]+/, - eve = R.eve, - E = "", - S = " "; - var xlink = "http://www.w3.org/1999/xlink", - markers = { - block: "M5,0 0,2.5 5,5z", - classic: "M5,0 0,2.5 5,5 3.5,3 3.5,2z", - diamond: "M2.5,0 5,2.5 2.5,5 0,2.5z", - open: "M6,1 1,3.5 6,6", - oval: "M2.5,0A2.5,2.5,0,0,1,2.5,5 2.5,2.5,0,0,1,2.5,0z" - }, - markerCounter = {}; - R.toString = function () { - return "Your browser supports SVG.\nYou are running Rapha\xebl " + this.version; - }; - var $ = function (el, attr) { - if (attr) { - if (typeof el == "string") { - el = $(el); - } - for (var key in attr) if (attr[has](key)) { - if (key.substring(0, 6) == "xlink:") { - el.setAttributeNS(xlink, key.substring(6), Str(attr[key])); - } else { - el.setAttribute(key, Str(attr[key])); - } - } - } else { - el = R._g.doc.createElementNS("http://www.w3.org/2000/svg", el); - el.style && (el.style.webkitTapHighlightColor = "rgba(0,0,0,0)"); - } - return el; - }, - addGradientFill = function (element, gradient) { - var type = "linear", - id = element.id + gradient, - fx = .5, fy = .5, - o = element.node, - SVG = element.paper, - s = o.style, - el = R._g.doc.getElementById(id); - if (!el) { - gradient = Str(gradient).replace(R._radial_gradient, function (all, _fx, _fy) { - type = "radial"; - if (_fx && _fy) { - fx = toFloat(_fx); - fy = toFloat(_fy); - var dir = ((fy > .5) * 2 - 1); - pow(fx - .5, 2) + pow(fy - .5, 2) > .25 && - (fy = math.sqrt(.25 - pow(fx - .5, 2)) * dir + .5) && - fy != .5 && - (fy = fy.toFixed(5) - 1e-5 * dir); - } - return E; - }); - gradient = gradient.split(/\s*\-\s*/); - if (type == "linear") { - var angle = gradient.shift(); - angle = -toFloat(angle); - if (isNaN(angle)) { - return null; - } - var vector = [0, 0, math.cos(R.rad(angle)), math.sin(R.rad(angle))], - max = 1 / (mmax(abs(vector[2]), abs(vector[3])) || 1); - vector[2] *= max; - vector[3] *= max; - if (vector[2] < 0) { - vector[0] = -vector[2]; - vector[2] = 0; - } - if (vector[3] < 0) { - vector[1] = -vector[3]; - vector[3] = 0; - } - } - var dots = R._parseDots(gradient); - if (!dots) { - return null; - } - id = id.replace(/[\(\)\s,\xb0#]/g, "_"); - - if (element.gradient && id != element.gradient.id) { - SVG.defs.removeChild(element.gradient); - delete element.gradient; - } - - if (!element.gradient) { - el = $(type + "Gradient", {id: id}); - element.gradient = el; - $(el, type == "radial" ? { - fx: fx, - fy: fy - } : { - x1: vector[0], - y1: vector[1], - x2: vector[2], - y2: vector[3], - gradientTransform: element.matrix.invert() - }); - SVG.defs.appendChild(el); - for (var i = 0, ii = dots.length; i < ii; i++) { - el.appendChild($("stop", { - offset: dots[i].offset ? dots[i].offset : i ? "100%" : "0%", - "stop-color": dots[i].color || "#fff", - "stop-opacity": isFinite(dots[i].opacity) ? dots[i].opacity : 1 - })); - } - } - } - $(o, { - fill: fillurl(id), - opacity: 1, - "fill-opacity": 1 - }); - s.fill = E; - s.opacity = 1; - s.fillOpacity = 1; - return 1; - }, - isIE9or10 = function () { - var mode = document.documentMode; - return mode && (mode === 9 || mode === 10); - }, - fillurl = function (id) { - if (isIE9or10()) { - return "url('#" + id + "')"; - } - var location = document.location; - var locationString = ( - location.protocol + '//' + - location.host + - location.pathname + - location.search - ); - return "url('" + locationString + "#" + id + "')"; - }, - updatePosition = function (o) { - var bbox = o.getBBox(1); - $(o.pattern, {patternTransform: o.matrix.invert() + " translate(" + bbox.x + "," + bbox.y + ")"}); - }, - addArrow = function (o, value, isEnd) { - if (o.type == "path") { - var values = Str(value).toLowerCase().split("-"), - p = o.paper, - se = isEnd ? "end" : "start", - node = o.node, - attrs = o.attrs, - stroke = attrs["stroke-width"], - i = values.length, - type = "classic", - from, - to, - dx, - refX, - attr, - w = 3, - h = 3, - t = 5; - while (i--) { - switch (values[i]) { - case "block": - case "classic": - case "oval": - case "diamond": - case "open": - case "none": - type = values[i]; - break; - case "wide": h = 5; break; - case "narrow": h = 2; break; - case "long": w = 5; break; - case "short": w = 2; break; - } - } - if (type == "open") { - w += 2; - h += 2; - t += 2; - dx = 1; - refX = isEnd ? 4 : 1; - attr = { - fill: "none", - stroke: attrs.stroke - }; - } else { - refX = dx = w / 2; - attr = { - fill: attrs.stroke, - stroke: "none" - }; - } - if (o._.arrows) { - if (isEnd) { - o._.arrows.endPath && markerCounter[o._.arrows.endPath]--; - o._.arrows.endMarker && markerCounter[o._.arrows.endMarker]--; - } else { - o._.arrows.startPath && markerCounter[o._.arrows.startPath]--; - o._.arrows.startMarker && markerCounter[o._.arrows.startMarker]--; - } - } else { - o._.arrows = {}; - } - if (type != "none") { - var pathId = "raphael-marker-" + type, - markerId = "raphael-marker-" + se + type + w + h + "-obj" + o.id; - if (!R._g.doc.getElementById(pathId)) { - p.defs.appendChild($($("path"), { - "stroke-linecap": "round", - d: markers[type], - id: pathId - })); - markerCounter[pathId] = 1; - } else { - markerCounter[pathId]++; - } - var marker = R._g.doc.getElementById(markerId), - use; - if (!marker) { - marker = $($("marker"), { - id: markerId, - markerHeight: h, - markerWidth: w, - orient: "auto", - refX: refX, - refY: h / 2 - }); - use = $($("use"), { - "xlink:href": "#" + pathId, - transform: (isEnd ? "rotate(180 " + w / 2 + " " + h / 2 + ") " : E) + "scale(" + w / t + "," + h / t + ")", - "stroke-width": (1 / ((w / t + h / t) / 2)).toFixed(4) - }); - marker.appendChild(use); - p.defs.appendChild(marker); - markerCounter[markerId] = 1; - } else { - markerCounter[markerId]++; - use = marker.getElementsByTagName("use")[0]; - } - $(use, attr); - var delta = dx * (type != "diamond" && type != "oval"); - if (isEnd) { - from = o._.arrows.startdx * stroke || 0; - to = R.getTotalLength(attrs.path) - delta * stroke; - } else { - from = delta * stroke; - to = R.getTotalLength(attrs.path) - (o._.arrows.enddx * stroke || 0); - } - attr = {}; - attr["marker-" + se] = "url(#" + markerId + ")"; - if (to || from) { - attr.d = R.getSubpath(attrs.path, from, to); - } - $(node, attr); - o._.arrows[se + "Path"] = pathId; - o._.arrows[se + "Marker"] = markerId; - o._.arrows[se + "dx"] = delta; - o._.arrows[se + "Type"] = type; - o._.arrows[se + "String"] = value; - } else { - if (isEnd) { - from = o._.arrows.startdx * stroke || 0; - to = R.getTotalLength(attrs.path) - from; - } else { - from = 0; - to = R.getTotalLength(attrs.path) - (o._.arrows.enddx * stroke || 0); - } - o._.arrows[se + "Path"] && $(node, {d: R.getSubpath(attrs.path, from, to)}); - delete o._.arrows[se + "Path"]; - delete o._.arrows[se + "Marker"]; - delete o._.arrows[se + "dx"]; - delete o._.arrows[se + "Type"]; - delete o._.arrows[se + "String"]; - } - for (attr in markerCounter) if (markerCounter[has](attr) && !markerCounter[attr]) { - var item = R._g.doc.getElementById(attr); - item && item.parentNode.removeChild(item); - } - } - }, - dasharray = { - "-": [3, 1], - ".": [1, 1], - "-.": [3, 1, 1, 1], - "-..": [3, 1, 1, 1, 1, 1], - ". ": [1, 3], - "- ": [4, 3], - "--": [8, 3], - "- .": [4, 3, 1, 3], - "--.": [8, 3, 1, 3], - "--..": [8, 3, 1, 3, 1, 3] - }, - addDashes = function (o, value, params) { - value = dasharray[Str(value).toLowerCase()]; - if (value) { - var width = o.attrs["stroke-width"] || "1", - butt = {round: width, square: width, butt: 0}[o.attrs["stroke-linecap"] || params["stroke-linecap"]] || 0, - dashes = [], - i = value.length; - while (i--) { - dashes[i] = value[i] * width + ((i % 2) ? 1 : -1) * butt; - } - $(o.node, {"stroke-dasharray": dashes.join(",")}); - } - else { - $(o.node, {"stroke-dasharray": "none"}); - } - }, - setFillAndStroke = function (o, params) { - var node = o.node, - attrs = o.attrs, - vis = node.style.visibility; - node.style.visibility = "hidden"; - for (var att in params) { - if (params[has](att)) { - if (!R._availableAttrs[has](att)) { - continue; - } - var value = params[att]; - attrs[att] = value; - switch (att) { - case "blur": - o.blur(value); - break; - case "title": - var title = node.getElementsByTagName("title"); - - // Use the existing <title>. - if (title.length && (title = title[0])) { - title.firstChild.nodeValue = value; - } else { - title = $("title"); - var val = R._g.doc.createTextNode(value); - title.appendChild(val); - node.appendChild(title); - } - break; - case "href": - case "target": - var pn = node.parentNode; - if (pn.tagName.toLowerCase() != "a") { - var hl = $("a"); - pn.insertBefore(hl, node); - hl.appendChild(node); - pn = hl; - } - if (att == "target") { - pn.setAttributeNS(xlink, "show", value == "blank" ? "new" : value); - } else { - pn.setAttributeNS(xlink, att, value); - } - break; - case "cursor": - node.style.cursor = value; - break; - case "transform": - o.transform(value); - break; - case "arrow-start": - addArrow(o, value); - break; - case "arrow-end": - addArrow(o, value, 1); - break; - case "clip-rect": - var rect = Str(value).split(separator); - if (rect.length == 4) { - o.clip && o.clip.parentNode.parentNode.removeChild(o.clip.parentNode); - var el = $("clipPath"), - rc = $("rect"); - el.id = R.createUUID(); - $(rc, { - x: rect[0], - y: rect[1], - width: rect[2], - height: rect[3] - }); - el.appendChild(rc); - o.paper.defs.appendChild(el); - $(node, {"clip-path": "url(#" + el.id + ")"}); - o.clip = rc; - } - if (!value) { - var path = node.getAttribute("clip-path"); - if (path) { - var clip = R._g.doc.getElementById(path.replace(/(^url\(#|\)$)/g, E)); - clip && clip.parentNode.removeChild(clip); - $(node, {"clip-path": E}); - delete o.clip; - } - } - break; - case "path": - if (o.type == "path") { - $(node, {d: value ? attrs.path = R._pathToAbsolute(value) : "M0,0"}); - o._.dirty = 1; - if (o._.arrows) { - "startString" in o._.arrows && addArrow(o, o._.arrows.startString); - "endString" in o._.arrows && addArrow(o, o._.arrows.endString, 1); - } - } - break; - case "width": - node.setAttribute(att, value); - o._.dirty = 1; - if (attrs.fx) { - att = "x"; - value = attrs.x; - } else { - break; - } - case "x": - if (attrs.fx) { - value = -attrs.x - (attrs.width || 0); - } - case "rx": - if (att == "rx" && o.type == "rect") { - break; - } - case "cx": - node.setAttribute(att, value); - o.pattern && updatePosition(o); - o._.dirty = 1; - break; - case "height": - node.setAttribute(att, value); - o._.dirty = 1; - if (attrs.fy) { - att = "y"; - value = attrs.y; - } else { - break; - } - case "y": - if (attrs.fy) { - value = -attrs.y - (attrs.height || 0); - } - case "ry": - if (att == "ry" && o.type == "rect") { - break; - } - case "cy": - node.setAttribute(att, value); - o.pattern && updatePosition(o); - o._.dirty = 1; - break; - case "r": - if (o.type == "rect") { - $(node, {rx: value, ry: value}); - } else { - node.setAttribute(att, value); - } - o._.dirty = 1; - break; - case "src": - if (o.type == "image") { - node.setAttributeNS(xlink, "href", value); - } - break; - case "stroke-width": - if (o._.sx != 1 || o._.sy != 1) { - value /= mmax(abs(o._.sx), abs(o._.sy)) || 1; - } - node.setAttribute(att, value); - if (attrs["stroke-dasharray"]) { - addDashes(o, attrs["stroke-dasharray"], params); - } - if (o._.arrows) { - "startString" in o._.arrows && addArrow(o, o._.arrows.startString); - "endString" in o._.arrows && addArrow(o, o._.arrows.endString, 1); - } - break; - case "stroke-dasharray": - addDashes(o, value, params); - break; - case "fill": - var isURL = Str(value).match(R._ISURL); - if (isURL) { - el = $("pattern"); - var ig = $("image"); - el.id = R.createUUID(); - $(el, {x: 0, y: 0, patternUnits: "userSpaceOnUse", height: 1, width: 1}); - $(ig, {x: 0, y: 0, "xlink:href": isURL[1]}); - el.appendChild(ig); - - (function (el) { - R._preload(isURL[1], function () { - var w = this.offsetWidth, - h = this.offsetHeight; - $(el, {width: w, height: h}); - $(ig, {width: w, height: h}); - }); - })(el); - o.paper.defs.appendChild(el); - $(node, {fill: "url(#" + el.id + ")"}); - o.pattern = el; - o.pattern && updatePosition(o); - break; - } - var clr = R.getRGB(value); - if (!clr.error) { - delete params.gradient; - delete attrs.gradient; - !R.is(attrs.opacity, "undefined") && - R.is(params.opacity, "undefined") && - $(node, {opacity: attrs.opacity}); - !R.is(attrs["fill-opacity"], "undefined") && - R.is(params["fill-opacity"], "undefined") && - $(node, {"fill-opacity": attrs["fill-opacity"]}); - } else if ((o.type == "circle" || o.type == "ellipse" || Str(value).charAt() != "r") && addGradientFill(o, value)) { - if ("opacity" in attrs || "fill-opacity" in attrs) { - var gradient = R._g.doc.getElementById(node.getAttribute("fill").replace(/^url\(#|\)$/g, E)); - if (gradient) { - var stops = gradient.getElementsByTagName("stop"); - $(stops[stops.length - 1], {"stop-opacity": ("opacity" in attrs ? attrs.opacity : 1) * ("fill-opacity" in attrs ? attrs["fill-opacity"] : 1)}); - } - } - attrs.gradient = value; - attrs.fill = "none"; - break; - } - clr[has]("opacity") && $(node, {"fill-opacity": clr.opacity > 1 ? clr.opacity / 100 : clr.opacity}); - case "stroke": - clr = R.getRGB(value); - node.setAttribute(att, clr.hex); - att == "stroke" && clr[has]("opacity") && $(node, {"stroke-opacity": clr.opacity > 1 ? clr.opacity / 100 : clr.opacity}); - if (att == "stroke" && o._.arrows) { - "startString" in o._.arrows && addArrow(o, o._.arrows.startString); - "endString" in o._.arrows && addArrow(o, o._.arrows.endString, 1); - } - break; - case "gradient": - (o.type == "circle" || o.type == "ellipse" || Str(value).charAt() != "r") && addGradientFill(o, value); - break; - case "opacity": - if (attrs.gradient && !attrs[has]("stroke-opacity")) { - $(node, {"stroke-opacity": value > 1 ? value / 100 : value}); - } - // fall - case "fill-opacity": - if (attrs.gradient) { - gradient = R._g.doc.getElementById(node.getAttribute("fill").replace(/^url\(#|\)$/g, E)); - if (gradient) { - stops = gradient.getElementsByTagName("stop"); - $(stops[stops.length - 1], {"stop-opacity": value}); - } - break; - } - default: - att == "font-size" && (value = toInt(value, 10) + "px"); - var cssrule = att.replace(/(\-.)/g, function (w) { - return w.substring(1).toUpperCase(); - }); - node.style[cssrule] = value; - o._.dirty = 1; - node.setAttribute(att, value); - break; - } - } - } - - tuneText(o, params); - node.style.visibility = vis; - }, - leading = 1.2, - tuneText = function (el, params) { - if (el.type != "text" || !(params[has]("text") || params[has]("font") || params[has]("font-size") || params[has]("x") || params[has]("y"))) { - return; - } - var a = el.attrs, - node = el.node, - fontSize = node.firstChild ? toInt(R._g.doc.defaultView.getComputedStyle(node.firstChild, E).getPropertyValue("font-size"), 10) : 10; - - if (params[has]("text")) { - a.text = params.text; - while (node.firstChild) { - node.removeChild(node.firstChild); - } - var texts = Str(params.text).split("\n"), - tspans = [], - tspan; - for (var i = 0, ii = texts.length; i < ii; i++) { - tspan = $("tspan"); - i && $(tspan, {dy: fontSize * leading, x: a.x}); - tspan.appendChild(R._g.doc.createTextNode(texts[i])); - node.appendChild(tspan); - tspans[i] = tspan; - } - } else { - tspans = node.getElementsByTagName("tspan"); - for (i = 0, ii = tspans.length; i < ii; i++) if (i) { - $(tspans[i], {dy: fontSize * leading, x: a.x}); - } else { - $(tspans[0], {dy: 0}); - } - } - $(node, {x: a.x, y: a.y}); - el._.dirty = 1; - var bb = el._getBBox(), - dif = a.y - (bb.y + bb.height / 2); - dif && R.is(dif, "finite") && $(tspans[0], {dy: dif}); - }, - getRealNode = function (node) { - if (node.parentNode && node.parentNode.tagName.toLowerCase() === "a") { - return node.parentNode; - } else { - return node; - } - }, - Element = function (node, svg) { - var X = 0, - Y = 0; - /*\ - * Element.node - [ property (object) ] - ** - * Gives you a reference to the DOM object, so you can assign event handlers or just mess around. - ** - * Note: Don’t mess with it. - > Usage - | // draw a circle at coordinate 10,10 with radius of 10 - | var c = paper.circle(10, 10, 10); - | c.node.onclick = function () { - | c.attr("fill", "red"); - | }; - \*/ - this[0] = this.node = node; - /*\ - * Element.raphael - [ property (object) ] - ** - * Internal reference to @Raphael object. In case it is not available. - > Usage - | Raphael.el.red = function () { - | var hsb = this.paper.raphael.rgb2hsb(this.attr("fill")); - | hsb.h = 1; - | this.attr({fill: this.paper.raphael.hsb2rgb(hsb).hex}); - | } - \*/ - node.raphael = true; - /*\ - * Element.id - [ property (number) ] - ** - * Unique id of the element. Especially useful when you want to listen to events of the element, - * because all events are fired in format `<module>.<action>.<id>`. Also useful for @Paper.getById method. - \*/ - this.id = guid(); - node.raphaelid = this.id; - - /** - * Method that returns a 5 letter/digit id, enough for 36^5 = 60466176 elements - * @returns {string} id - */ - function guid() { - return ("0000" + (Math.random()*Math.pow(36,5) << 0).toString(36)).slice(-5); - } - - this.matrix = R.matrix(); - this.realPath = null; - /*\ - * Element.paper - [ property (object) ] - ** - * Internal reference to “paper” where object drawn. Mainly for use in plugins and element extensions. - > Usage - | Raphael.el.cross = function () { - | this.attr({fill: "red"}); - | this.paper.path("M10,10L50,50M50,10L10,50") - | .attr({stroke: "red"}); - | } - \*/ - this.paper = svg; - this.attrs = this.attrs || {}; - this._ = { - transform: [], - sx: 1, - sy: 1, - deg: 0, - dx: 0, - dy: 0, - dirty: 1 - }; - !svg.bottom && (svg.bottom = this); - /*\ - * Element.prev - [ property (object) ] - ** - * Reference to the previous element in the hierarchy. - \*/ - this.prev = svg.top; - svg.top && (svg.top.next = this); - svg.top = this; - /*\ - * Element.next - [ property (object) ] - ** - * Reference to the next element in the hierarchy. - \*/ - this.next = null; - }, - elproto = R.el; - - Element.prototype = elproto; - elproto.constructor = Element; - - R._engine.path = function (pathString, SVG) { - var el = $("path"); - SVG.canvas && SVG.canvas.appendChild(el); - var p = new Element(el, SVG); - p.type = "path"; - setFillAndStroke(p, { - fill: "none", - stroke: "#000", - path: pathString - }); - return p; - }; - /*\ - * Element.rotate - [ method ] - ** - * Deprecated! Use @Element.transform instead. - * Adds rotation by given angle around given point to the list of - * transformations of the element. - > Parameters - - deg (number) angle in degrees - - cx (number) #optional x coordinate of the centre of rotation - - cy (number) #optional y coordinate of the centre of rotation - * If cx & cy aren’t specified centre of the shape is used as a point of rotation. - = (object) @Element - \*/ - elproto.rotate = function (deg, cx, cy) { - if (this.removed) { - return this; - } - deg = Str(deg).split(separator); - if (deg.length - 1) { - cx = toFloat(deg[1]); - cy = toFloat(deg[2]); - } - deg = toFloat(deg[0]); - (cy == null) && (cx = cy); - if (cx == null || cy == null) { - var bbox = this.getBBox(1); - cx = bbox.x + bbox.width / 2; - cy = bbox.y + bbox.height / 2; - } - this.transform(this._.transform.concat([["r", deg, cx, cy]])); - return this; - }; - /*\ - * Element.scale - [ method ] - ** - * Deprecated! Use @Element.transform instead. - * Adds scale by given amount relative to given point to the list of - * transformations of the element. - > Parameters - - sx (number) horisontal scale amount - - sy (number) vertical scale amount - - cx (number) #optional x coordinate of the centre of scale - - cy (number) #optional y coordinate of the centre of scale - * If cx & cy aren’t specified centre of the shape is used instead. - = (object) @Element - \*/ - elproto.scale = function (sx, sy, cx, cy) { - if (this.removed) { - return this; - } - sx = Str(sx).split(separator); - if (sx.length - 1) { - sy = toFloat(sx[1]); - cx = toFloat(sx[2]); - cy = toFloat(sx[3]); - } - sx = toFloat(sx[0]); - (sy == null) && (sy = sx); - (cy == null) && (cx = cy); - if (cx == null || cy == null) { - var bbox = this.getBBox(1); - } - cx = cx == null ? bbox.x + bbox.width / 2 : cx; - cy = cy == null ? bbox.y + bbox.height / 2 : cy; - this.transform(this._.transform.concat([["s", sx, sy, cx, cy]])); - return this; - }; - /*\ - * Element.translate - [ method ] - ** - * Deprecated! Use @Element.transform instead. - * Adds translation by given amount to the list of transformations of the element. - > Parameters - - dx (number) horisontal shift - - dy (number) vertical shift - = (object) @Element - \*/ - elproto.translate = function (dx, dy) { - if (this.removed) { - return this; - } - dx = Str(dx).split(separator); - if (dx.length - 1) { - dy = toFloat(dx[1]); - } - dx = toFloat(dx[0]) || 0; - dy = +dy || 0; - this.transform(this._.transform.concat([["t", dx, dy]])); - return this; - }; - /*\ - * Element.transform - [ method ] - ** - * Adds transformation to the element which is separate to other attributes, - * i.e. translation doesn’t change `x` or `y` of the rectange. The format - * of transformation string is similar to the path string syntax: - | "t100,100r30,100,100s2,2,100,100r45s1.5" - * Each letter is a command. There are four commands: `t` is for translate, `r` is for rotate, `s` is for - * scale and `m` is for matrix. - * - * There are also alternative “absolute” translation, rotation and scale: `T`, `R` and `S`. They will not take previous transformation into account. For example, `...T100,0` will always move element 100 px horisontally, while `...t100,0` could move it vertically if there is `r90` before. Just compare results of `r90t100,0` and `r90T100,0`. - * - * So, the example line above could be read like “translate by 100, 100; rotate 30° around 100, 100; scale twice around 100, 100; - * rotate 45° around centre; scale 1.5 times relative to centre”. As you can see rotate and scale commands have origin - * coordinates as optional parameters, the default is the centre point of the element. - * Matrix accepts six parameters. - > Usage - | var el = paper.rect(10, 20, 300, 200); - | // translate 100, 100, rotate 45°, translate -100, 0 - | el.transform("t100,100r45t-100,0"); - | // if you want you can append or prepend transformations - | el.transform("...t50,50"); - | el.transform("s2..."); - | // or even wrap - | el.transform("t50,50...t-50-50"); - | // to reset transformation call method with empty string - | el.transform(""); - | // to get current value call it without parameters - | console.log(el.transform()); - > Parameters - - tstr (string) #optional transformation string - * If tstr isn’t specified - = (string) current transformation string - * else - = (object) @Element - \*/ - elproto.transform = function (tstr) { - var _ = this._; - if (tstr == null) { - return _.transform; - } - R._extractTransform(this, tstr); - - this.clip && $(this.clip, {transform: this.matrix.invert()}); - this.pattern && updatePosition(this); - this.node && $(this.node, {transform: this.matrix}); - - if (_.sx != 1 || _.sy != 1) { - var sw = this.attrs[has]("stroke-width") ? this.attrs["stroke-width"] : 1; - this.attr({"stroke-width": sw}); - } - - return this; - }; - /*\ - * Element.hide - [ method ] - ** - * Makes element invisible. See @Element.show. - = (object) @Element - \*/ - elproto.hide = function () { - if(!this.removed) this.node.style.display = "none"; - return this; - }; - /*\ - * Element.show - [ method ] - ** - * Makes element visible. See @Element.hide. - = (object) @Element - \*/ - elproto.show = function () { - if(!this.removed) this.node.style.display = ""; - return this; - }; - /*\ - * Element.remove - [ method ] - ** - * Removes element from the paper. - \*/ - elproto.remove = function () { - var node = getRealNode(this.node); - if (this.removed || !node.parentNode) { - return; - } - var paper = this.paper; - paper.__set__ && paper.__set__.exclude(this); - eve.unbind("raphael.*.*." + this.id); - if (this.gradient) { - paper.defs.removeChild(this.gradient); - } - R._tear(this, paper); - - node.parentNode.removeChild(node); - - // Remove custom data for element - this.removeData(); - - for (var i in this) { - this[i] = typeof this[i] == "function" ? R._removedFactory(i) : null; - } - this.removed = true; - }; - elproto._getBBox = function () { - if (this.node.style.display == "none") { - this.show(); - var hide = true; - } - var canvasHidden = false, - containerStyle; - if (this.paper.canvas.parentElement) { - containerStyle = this.paper.canvas.parentElement.style; - } //IE10+ can't find parentElement - else if (this.paper.canvas.parentNode) { - containerStyle = this.paper.canvas.parentNode.style; - } - - if(containerStyle && containerStyle.display == "none") { - canvasHidden = true; - containerStyle.display = ""; - } - var bbox = {}; - try { - bbox = this.node.getBBox(); - } catch(e) { - // Firefox 3.0.x, 25.0.1 (probably more versions affected) play badly here - possible fix - bbox = { - x: this.node.clientLeft, - y: this.node.clientTop, - width: this.node.clientWidth, - height: this.node.clientHeight - } - } finally { - bbox = bbox || {}; - if(canvasHidden){ - containerStyle.display = "none"; - } - } - hide && this.hide(); - return bbox; - }; - /*\ - * Element.attr - [ method ] - ** - * Sets the attributes of the element. - > Parameters - - attrName (string) attribute’s name - - value (string) value - * or - - params (object) object of name/value pairs - * or - - attrName (string) attribute’s name - * or - - attrNames (array) in this case method returns array of current values for given attribute names - = (object) @Element if attrsName & value or params are passed in. - = (...) value of the attribute if only attrsName is passed in. - = (array) array of values of the attribute if attrsNames is passed in. - = (object) object of attributes if nothing is passed in. - > Possible parameters - # <p>Please refer to the <a href="http://www.w3.org/TR/SVG/" title="The W3C Recommendation for the SVG language describes these properties in detail.">SVG specification</a> for an explanation of these parameters.</p> - o arrow-end (string) arrowhead on the end of the path. The format for string is `<type>[-<width>[-<length>]]`. Possible types: `classic`, `block`, `open`, `oval`, `diamond`, `none`, width: `wide`, `narrow`, `medium`, length: `long`, `short`, `midium`. - o clip-rect (string) comma or space separated values: x, y, width and height - o cursor (string) CSS type of the cursor - o cx (number) the x-axis coordinate of the center of the circle, or ellipse - o cy (number) the y-axis coordinate of the center of the circle, or ellipse - o fill (string) colour, gradient or image - o fill-opacity (number) - o font (string) - o font-family (string) - o font-size (number) font size in pixels - o font-weight (string) - o height (number) - o href (string) URL, if specified element behaves as hyperlink - o opacity (number) - o path (string) SVG path string format - o r (number) radius of the circle, ellipse or rounded corner on the rect - o rx (number) horisontal radius of the ellipse - o ry (number) vertical radius of the ellipse - o src (string) image URL, only works for @Element.image element - o stroke (string) stroke colour - o stroke-dasharray (string) [“”, “none”, “`-`”, “`.`”, “`-.`”, “`-..`”, “`. `”, “`- `”, “`--`”, “`- .`”, “`--.`”, “`--..`”] - o stroke-linecap (string) [“`butt`”, “`square`”, “`round`”] - o stroke-linejoin (string) [“`bevel`”, “`round`”, “`miter`”] - o stroke-miterlimit (number) - o stroke-opacity (number) - o stroke-width (number) stroke width in pixels, default is '1' - o target (string) used with href - o text (string) contents of the text element. Use `\n` for multiline text - o text-anchor (string) [“`start`”, “`middle`”, “`end`”], default is “`middle`” - o title (string) will create tooltip with a given text - o transform (string) see @Element.transform - o width (number) - o x (number) - o y (number) - > Gradients - * Linear gradient format: “`‹angle›-‹colour›[-‹colour›[:‹offset›]]*-‹colour›`”, example: “`90-#fff-#000`” – 90° - * gradient from white to black or “`0-#fff-#f00:20-#000`” – 0° gradient from white via red (at 20%) to black. - * - * radial gradient: “`r[(‹fx›, ‹fy›)]‹colour›[-‹colour›[:‹offset›]]*-‹colour›`”, example: “`r#fff-#000`” – - * gradient from white to black or “`r(0.25, 0.75)#fff-#000`” – gradient from white to black with focus point - * at 0.25, 0.75. Focus point coordinates are in 0..1 range. Radial gradients can only be applied to circles and ellipses. - > Path String - # <p>Please refer to <a href="http://www.w3.org/TR/SVG/paths.html#PathData" title="Details of a path’s data attribute’s format are described in the SVG specification.">SVG documentation regarding path string</a>. Raphaël fully supports it.</p> - > Colour Parsing - # <ul> - # <li>Colour name (“<code>red</code>”, “<code>green</code>”, “<code>cornflowerblue</code>”, etc)</li> - # <li>#••• — shortened HTML colour: (“<code>#000</code>”, “<code>#fc0</code>”, etc)</li> - # <li>#•••••• — full length HTML colour: (“<code>#000000</code>”, “<code>#bd2300</code>”)</li> - # <li>rgb(•••, •••, •••) — red, green and blue channels’ values: (“<code>rgb(200,&nbsp;100,&nbsp;0)</code>”)</li> - # <li>rgb(•••%, •••%, •••%) — same as above, but in %: (“<code>rgb(100%,&nbsp;175%,&nbsp;0%)</code>”)</li> - # <li>rgba(•••, •••, •••, •••) — red, green and blue channels’ values: (“<code>rgba(200,&nbsp;100,&nbsp;0, .5)</code>”)</li> - # <li>rgba(•••%, •••%, •••%, •••%) — same as above, but in %: (“<code>rgba(100%,&nbsp;175%,&nbsp;0%, 50%)</code>”)</li> - # <li>hsb(•••, •••, •••) — hue, saturation and brightness values: (“<code>hsb(0.5,&nbsp;0.25,&nbsp;1)</code>”)</li> - # <li>hsb(•••%, •••%, •••%) — same as above, but in %</li> - # <li>hsba(•••, •••, •••, •••) — same as above, but with opacity</li> - # <li>hsl(•••, •••, •••) — almost the same as hsb, see <a href="http://en.wikipedia.org/wiki/HSL_and_HSV" title="HSL and HSV - Wikipedia, the free encyclopedia">Wikipedia page</a></li> - # <li>hsl(•••%, •••%, •••%) — same as above, but in %</li> - # <li>hsla(•••, •••, •••, •••) — same as above, but with opacity</li> - # <li>Optionally for hsb and hsl you could specify hue as a degree: “<code>hsl(240deg,&nbsp;1,&nbsp;.5)</code>” or, if you want to go fancy, “<code>hsl(240°,&nbsp;1,&nbsp;.5)</code>”</li> - # </ul> - \*/ - elproto.attr = function (name, value) { - if (this.removed) { - return this; - } - if (name == null) { - var res = {}; - for (var a in this.attrs) if (this.attrs[has](a)) { - res[a] = this.attrs[a]; - } - res.gradient && res.fill == "none" && (res.fill = res.gradient) && delete res.gradient; - res.transform = this._.transform; - return res; - } - if (value == null && R.is(name, "string")) { - if (name == "fill" && this.attrs.fill == "none" && this.attrs.gradient) { - return this.attrs.gradient; - } - if (name == "transform") { - return this._.transform; - } - var names = name.split(separator), - out = {}; - for (var i = 0, ii = names.length; i < ii; i++) { - name = names[i]; - if (name in this.attrs) { - out[name] = this.attrs[name]; - } else if (R.is(this.paper.customAttributes[name], "function")) { - out[name] = this.paper.customAttributes[name].def; - } else { - out[name] = R._availableAttrs[name]; - } - } - return ii - 1 ? out : out[names[0]]; - } - if (value == null && R.is(name, "array")) { - out = {}; - for (i = 0, ii = name.length; i < ii; i++) { - out[name[i]] = this.attr(name[i]); - } - return out; - } - if (value != null) { - var params = {}; - params[name] = value; - } else if (name != null && R.is(name, "object")) { - params = name; - } - for (var key in params) { - eve("raphael.attr." + key + "." + this.id, this, params[key]); - } - for (key in this.paper.customAttributes) if (this.paper.customAttributes[has](key) && params[has](key) && R.is(this.paper.customAttributes[key], "function")) { - var par = this.paper.customAttributes[key].apply(this, [].concat(params[key])); - this.attrs[key] = params[key]; - for (var subkey in par) if (par[has](subkey)) { - params[subkey] = par[subkey]; - } - } - setFillAndStroke(this, params); - return this; - }; - /*\ - * Element.toFront - [ method ] - ** - * Moves the element so it is the closest to the viewer’s eyes, on top of other elements. - = (object) @Element - \*/ - elproto.toFront = function () { - if (this.removed) { - return this; - } - var node = getRealNode(this.node); - node.parentNode.appendChild(node); - var svg = this.paper; - svg.top != this && R._tofront(this, svg); - return this; - }; - /*\ - * Element.toBack - [ method ] - ** - * Moves the element so it is the furthest from the viewer’s eyes, behind other elements. - = (object) @Element - \*/ - elproto.toBack = function () { - if (this.removed) { - return this; - } - var node = getRealNode(this.node); - var parentNode = node.parentNode; - parentNode.insertBefore(node, parentNode.firstChild); - R._toback(this, this.paper); - var svg = this.paper; - return this; - }; - /*\ - * Element.insertAfter - [ method ] - ** - * Inserts current object after the given one. - = (object) @Element - \*/ - elproto.insertAfter = function (element) { - if (this.removed || !element) { - return this; - } - - var node = getRealNode(this.node); - var afterNode = getRealNode(element.node || element[element.length - 1].node); - if (afterNode.nextSibling) { - afterNode.parentNode.insertBefore(node, afterNode.nextSibling); - } else { - afterNode.parentNode.appendChild(node); - } - R._insertafter(this, element, this.paper); - return this; - }; - /*\ - * Element.insertBefore - [ method ] - ** - * Inserts current object before the given one. - = (object) @Element - \*/ - elproto.insertBefore = function (element) { - if (this.removed || !element) { - return this; - } - - var node = getRealNode(this.node); - var beforeNode = getRealNode(element.node || element[0].node); - beforeNode.parentNode.insertBefore(node, beforeNode); - R._insertbefore(this, element, this.paper); - return this; - }; - elproto.blur = function (size) { - // Experimental. No Safari support. Use it on your own risk. - var t = this; - if (+size !== 0) { - var fltr = $("filter"), - blur = $("feGaussianBlur"); - t.attrs.blur = size; - fltr.id = R.createUUID(); - $(blur, {stdDeviation: +size || 1.5}); - fltr.appendChild(blur); - t.paper.defs.appendChild(fltr); - t._blur = fltr; - $(t.node, {filter: "url(#" + fltr.id + ")"}); - } else { - if (t._blur) { - t._blur.parentNode.removeChild(t._blur); - delete t._blur; - delete t.attrs.blur; - } - t.node.removeAttribute("filter"); - } - return t; - }; - R._engine.circle = function (svg, x, y, r) { - var el = $("circle"); - svg.canvas && svg.canvas.appendChild(el); - var res = new Element(el, svg); - res.attrs = {cx: x, cy: y, r: r, fill: "none", stroke: "#000"}; - res.type = "circle"; - $(el, res.attrs); - return res; - }; - R._engine.rect = function (svg, x, y, w, h, r) { - var el = $("rect"); - svg.canvas && svg.canvas.appendChild(el); - var res = new Element(el, svg); - res.attrs = {x: x, y: y, width: w, height: h, rx: r || 0, ry: r || 0, fill: "none", stroke: "#000"}; - res.type = "rect"; - $(el, res.attrs); - return res; - }; - R._engine.ellipse = function (svg, x, y, rx, ry) { - var el = $("ellipse"); - svg.canvas && svg.canvas.appendChild(el); - var res = new Element(el, svg); - res.attrs = {cx: x, cy: y, rx: rx, ry: ry, fill: "none", stroke: "#000"}; - res.type = "ellipse"; - $(el, res.attrs); - return res; - }; - R._engine.image = function (svg, src, x, y, w, h) { - var el = $("image"); - $(el, {x: x, y: y, width: w, height: h, preserveAspectRatio: "none"}); - el.setAttributeNS(xlink, "href", src); - svg.canvas && svg.canvas.appendChild(el); - var res = new Element(el, svg); - res.attrs = {x: x, y: y, width: w, height: h, src: src}; - res.type = "image"; - return res; - }; - R._engine.text = function (svg, x, y, text) { - var el = $("text"); - svg.canvas && svg.canvas.appendChild(el); - var res = new Element(el, svg); - res.attrs = { - x: x, - y: y, - "text-anchor": "middle", - text: text, - "font-family": R._availableAttrs["font-family"], - "font-size": R._availableAttrs["font-size"], - stroke: "none", - fill: "#000" - }; - res.type = "text"; - setFillAndStroke(res, res.attrs); - return res; - }; - R._engine.setSize = function (width, height) { - this.width = width || this.width; - this.height = height || this.height; - this.canvas.setAttribute("width", this.width); - this.canvas.setAttribute("height", this.height); - if (this._viewBox) { - this.setViewBox.apply(this, this._viewBox); - } - return this; - }; - R._engine.create = function () { - var con = R._getContainer.apply(0, arguments), - container = con && con.container, - x = con.x, - y = con.y, - width = con.width, - height = con.height; - if (!container) { - throw new Error("SVG container not found."); - } - var cnvs = $("svg"), - css = "overflow:hidden;", - isFloating; - x = x || 0; - y = y || 0; - width = width || 512; - height = height || 342; - $(cnvs, { - height: height, - version: 1.1, - width: width, - xmlns: "http://www.w3.org/2000/svg", - "xmlns:xlink": "http://www.w3.org/1999/xlink" - }); - if (container == 1) { - cnvs.style.cssText = css + "position:absolute;left:" + x + "px;top:" + y + "px"; - R._g.doc.body.appendChild(cnvs); - isFloating = 1; - } else { - cnvs.style.cssText = css + "position:relative"; - if (container.firstChild) { - container.insertBefore(cnvs, container.firstChild); - } else { - container.appendChild(cnvs); - } - } - container = new R._Paper; - container.width = width; - container.height = height; - container.canvas = cnvs; - container.clear(); - container._left = container._top = 0; - isFloating && (container.renderfix = function () {}); - container.renderfix(); - return container; - }; - R._engine.setViewBox = function (x, y, w, h, fit) { - eve("raphael.setViewBox", this, this._viewBox, [x, y, w, h, fit]); - var paperSize = this.getSize(), - size = mmax(w / paperSize.width, h / paperSize.height), - top = this.top, - aspectRatio = fit ? "xMidYMid meet" : "xMinYMin", - vb, - sw; - if (x == null) { - if (this._vbSize) { - size = 1; - } - delete this._vbSize; - vb = "0 0 " + this.width + S + this.height; - } else { - this._vbSize = size; - vb = x + S + y + S + w + S + h; - } - $(this.canvas, { - viewBox: vb, - preserveAspectRatio: aspectRatio - }); - while (size && top) { - sw = "stroke-width" in top.attrs ? top.attrs["stroke-width"] : 1; - top.attr({"stroke-width": sw}); - top._.dirty = 1; - top._.dirtyT = 1; - top = top.prev; - } - this._viewBox = [x, y, w, h, !!fit]; - return this; - }; - /*\ - * Paper.renderfix - [ method ] - ** - * Fixes the issue of Firefox and IE9 regarding subpixel rendering. If paper is dependent - * on other elements after reflow it could shift half pixel which cause for lines to lost their crispness. - * This method fixes the issue. - ** - Special thanks to Mariusz Nowak (http://www.medikoo.com/) for this method. - \*/ - R.prototype.renderfix = function () { - var cnvs = this.canvas, - s = cnvs.style, - pos; - try { - pos = cnvs.getScreenCTM() || cnvs.createSVGMatrix(); - } catch (e) { - pos = cnvs.createSVGMatrix(); - } - var left = -pos.e % 1, - top = -pos.f % 1; - if (left || top) { - if (left) { - this._left = (this._left + left) % 1; - s.left = this._left + "px"; - } - if (top) { - this._top = (this._top + top) % 1; - s.top = this._top + "px"; - } - } - }; - /*\ - * Paper.clear - [ method ] - ** - * Clears the paper, i.e. removes all the elements. - \*/ - R.prototype.clear = function () { - R.eve("raphael.clear", this); - var c = this.canvas; - while (c.firstChild) { - c.removeChild(c.firstChild); - } - this.bottom = this.top = null; - (this.desc = $("desc")).appendChild(R._g.doc.createTextNode("Created with Rapha\xebl " + R.version)); - c.appendChild(this.desc); - c.appendChild(this.defs = $("defs")); - }; - /*\ - * Paper.remove - [ method ] - ** - * Removes the paper from the DOM. - \*/ - R.prototype.remove = function () { - eve("raphael.remove", this); - this.canvas.parentNode && this.canvas.parentNode.removeChild(this.canvas); - for (var i in this) { - this[i] = typeof this[i] == "function" ? R._removedFactory(i) : null; - } - }; - var setproto = R.st; - for (var method in elproto) if (elproto[has](method) && !setproto[has](method)) { - setproto[method] = (function (methodname) { - return function () { - var arg = arguments; - return this.forEach(function (el) { - el[methodname].apply(el, arg); - }); - }; - })(method); - } - }.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)); - - -/***/ }, -/* 4 */ -/***/ function(module, exports, __webpack_require__) { - - var __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;!(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(1)], __WEBPACK_AMD_DEFINE_RESULT__ = function(R) { - if (R && !R.vml) { - return; - } - - var has = "hasOwnProperty", - Str = String, - toFloat = parseFloat, - math = Math, - round = math.round, - mmax = math.max, - mmin = math.min, - abs = math.abs, - fillString = "fill", - separator = /[, ]+/, - eve = R.eve, - ms = " progid:DXImageTransform.Microsoft", - S = " ", - E = "", - map = {M: "m", L: "l", C: "c", Z: "x", m: "t", l: "r", c: "v", z: "x"}, - bites = /([clmz]),?([^clmz]*)/gi, - blurregexp = / progid:\S+Blur\([^\)]+\)/g, - val = /-?[^,\s-]+/g, - cssDot = "position:absolute;left:0;top:0;width:1px;height:1px;behavior:url(#default#VML)", - zoom = 21600, - pathTypes = {path: 1, rect: 1, image: 1}, - ovalTypes = {circle: 1, ellipse: 1}, - path2vml = function (path) { - var total = /[ahqstv]/ig, - command = R._pathToAbsolute; - Str(path).match(total) && (command = R._path2curve); - total = /[clmz]/g; - if (command == R._pathToAbsolute && !Str(path).match(total)) { - var res = Str(path).replace(bites, function (all, command, args) { - var vals = [], - isMove = command.toLowerCase() == "m", - res = map[command]; - args.replace(val, function (value) { - if (isMove && vals.length == 2) { - res += vals + map[command == "m" ? "l" : "L"]; - vals = []; - } - vals.push(round(value * zoom)); - }); - return res + vals; - }); - return res; - } - var pa = command(path), p, r; - res = []; - for (var i = 0, ii = pa.length; i < ii; i++) { - p = pa[i]; - r = pa[i][0].toLowerCase(); - r == "z" && (r = "x"); - for (var j = 1, jj = p.length; j < jj; j++) { - r += round(p[j] * zoom) + (j != jj - 1 ? "," : E); - } - res.push(r); - } - return res.join(S); - }, - compensation = function (deg, dx, dy) { - var m = R.matrix(); - m.rotate(-deg, .5, .5); - return { - dx: m.x(dx, dy), - dy: m.y(dx, dy) - }; - }, - setCoords = function (p, sx, sy, dx, dy, deg) { - var _ = p._, - m = p.matrix, - fillpos = _.fillpos, - o = p.node, - s = o.style, - y = 1, - flip = "", - dxdy, - kx = zoom / sx, - ky = zoom / sy; - s.visibility = "hidden"; - if (!sx || !sy) { - return; - } - o.coordsize = abs(kx) + S + abs(ky); - s.rotation = deg * (sx * sy < 0 ? -1 : 1); - if (deg) { - var c = compensation(deg, dx, dy); - dx = c.dx; - dy = c.dy; - } - sx < 0 && (flip += "x"); - sy < 0 && (flip += " y") && (y = -1); - s.flip = flip; - o.coordorigin = (dx * -kx) + S + (dy * -ky); - if (fillpos || _.fillsize) { - var fill = o.getElementsByTagName(fillString); - fill = fill && fill[0]; - o.removeChild(fill); - if (fillpos) { - c = compensation(deg, m.x(fillpos[0], fillpos[1]), m.y(fillpos[0], fillpos[1])); - fill.position = c.dx * y + S + c.dy * y; - } - if (_.fillsize) { - fill.size = _.fillsize[0] * abs(sx) + S + _.fillsize[1] * abs(sy); - } - o.appendChild(fill); - } - s.visibility = "visible"; - }; - R.toString = function () { - return "Your browser doesn\u2019t support SVG. Falling down to VML.\nYou are running Rapha\xebl " + this.version; - }; - var addArrow = function (o, value, isEnd) { - var values = Str(value).toLowerCase().split("-"), - se = isEnd ? "end" : "start", - i = values.length, - type = "classic", - w = "medium", - h = "medium"; - while (i--) { - switch (values[i]) { - case "block": - case "classic": - case "oval": - case "diamond": - case "open": - case "none": - type = values[i]; - break; - case "wide": - case "narrow": h = values[i]; break; - case "long": - case "short": w = values[i]; break; - } - } - var stroke = o.node.getElementsByTagName("stroke")[0]; - stroke[se + "arrow"] = type; - stroke[se + "arrowlength"] = w; - stroke[se + "arrowwidth"] = h; - }, - setFillAndStroke = function (o, params) { - // o.paper.canvas.style.display = "none"; - o.attrs = o.attrs || {}; - var node = o.node, - a = o.attrs, - s = node.style, - xy, - newpath = pathTypes[o.type] && (params.x != a.x || params.y != a.y || params.width != a.width || params.height != a.height || params.cx != a.cx || params.cy != a.cy || params.rx != a.rx || params.ry != a.ry || params.r != a.r), - isOval = ovalTypes[o.type] && (a.cx != params.cx || a.cy != params.cy || a.r != params.r || a.rx != params.rx || a.ry != params.ry), - res = o; - - - for (var par in params) if (params[has](par)) { - a[par] = params[par]; - } - if (newpath) { - a.path = R._getPath[o.type](o); - o._.dirty = 1; - } - params.href && (node.href = params.href); - params.title && (node.title = params.title); - params.target && (node.target = params.target); - params.cursor && (s.cursor = params.cursor); - "blur" in params && o.blur(params.blur); - if (params.path && o.type == "path" || newpath) { - node.path = path2vml(~Str(a.path).toLowerCase().indexOf("r") ? R._pathToAbsolute(a.path) : a.path); - o._.dirty = 1; - if (o.type == "image") { - o._.fillpos = [a.x, a.y]; - o._.fillsize = [a.width, a.height]; - setCoords(o, 1, 1, 0, 0, 0); - } - } - "transform" in params && o.transform(params.transform); - if (isOval) { - var cx = +a.cx, - cy = +a.cy, - rx = +a.rx || +a.r || 0, - ry = +a.ry || +a.r || 0; - node.path = R.format("ar{0},{1},{2},{3},{4},{1},{4},{1}x", round((cx - rx) * zoom), round((cy - ry) * zoom), round((cx + rx) * zoom), round((cy + ry) * zoom), round(cx * zoom)); - o._.dirty = 1; - } - if ("clip-rect" in params) { - var rect = Str(params["clip-rect"]).split(separator); - if (rect.length == 4) { - rect[2] = +rect[2] + (+rect[0]); - rect[3] = +rect[3] + (+rect[1]); - var div = node.clipRect || R._g.doc.createElement("div"), - dstyle = div.style; - dstyle.clip = R.format("rect({1}px {2}px {3}px {0}px)", rect); - if (!node.clipRect) { - dstyle.position = "absolute"; - dstyle.top = 0; - dstyle.left = 0; - dstyle.width = o.paper.width + "px"; - dstyle.height = o.paper.height + "px"; - node.parentNode.insertBefore(div, node); - div.appendChild(node); - node.clipRect = div; - } - } - if (!params["clip-rect"]) { - node.clipRect && (node.clipRect.style.clip = "auto"); - } - } - if (o.textpath) { - var textpathStyle = o.textpath.style; - params.font && (textpathStyle.font = params.font); - params["font-family"] && (textpathStyle.fontFamily = '"' + params["font-family"].split(",")[0].replace(/^['"]+|['"]+$/g, E) + '"'); - params["font-size"] && (textpathStyle.fontSize = params["font-size"]); - params["font-weight"] && (textpathStyle.fontWeight = params["font-weight"]); - params["font-style"] && (textpathStyle.fontStyle = params["font-style"]); - } - if ("arrow-start" in params) { - addArrow(res, params["arrow-start"]); - } - if ("arrow-end" in params) { - addArrow(res, params["arrow-end"], 1); - } - if (params.opacity != null || - params.fill != null || - params.src != null || - params.stroke != null || - params["stroke-width"] != null || - params["stroke-opacity"] != null || - params["fill-opacity"] != null || - params["stroke-dasharray"] != null || - params["stroke-miterlimit"] != null || - params["stroke-linejoin"] != null || - params["stroke-linecap"] != null) { - var fill = node.getElementsByTagName(fillString), - newfill = false; - fill = fill && fill[0]; - !fill && (newfill = fill = createNode(fillString)); - if (o.type == "image" && params.src) { - fill.src = params.src; - } - params.fill && (fill.on = true); - if (fill.on == null || params.fill == "none" || params.fill === null) { - fill.on = false; - } - if (fill.on && params.fill) { - var isURL = Str(params.fill).match(R._ISURL); - if (isURL) { - fill.parentNode == node && node.removeChild(fill); - fill.rotate = true; - fill.src = isURL[1]; - fill.type = "tile"; - var bbox = o.getBBox(1); - fill.position = bbox.x + S + bbox.y; - o._.fillpos = [bbox.x, bbox.y]; - - R._preload(isURL[1], function () { - o._.fillsize = [this.offsetWidth, this.offsetHeight]; - }); - } else { - fill.color = R.getRGB(params.fill).hex; - fill.src = E; - fill.type = "solid"; - if (R.getRGB(params.fill).error && (res.type in {circle: 1, ellipse: 1} || Str(params.fill).charAt() != "r") && addGradientFill(res, params.fill, fill)) { - a.fill = "none"; - a.gradient = params.fill; - fill.rotate = false; - } - } - } - if ("fill-opacity" in params || "opacity" in params) { - var opacity = ((+a["fill-opacity"] + 1 || 2) - 1) * ((+a.opacity + 1 || 2) - 1) * ((+R.getRGB(params.fill).o + 1 || 2) - 1); - opacity = mmin(mmax(opacity, 0), 1); - fill.opacity = opacity; - if (fill.src) { - fill.color = "none"; - } - } - node.appendChild(fill); - var stroke = (node.getElementsByTagName("stroke") && node.getElementsByTagName("stroke")[0]), - newstroke = false; - !stroke && (newstroke = stroke = createNode("stroke")); - if ((params.stroke && params.stroke != "none") || - params["stroke-width"] || - params["stroke-opacity"] != null || - params["stroke-dasharray"] || - params["stroke-miterlimit"] || - params["stroke-linejoin"] || - params["stroke-linecap"]) { - stroke.on = true; - } - (params.stroke == "none" || params.stroke === null || stroke.on == null || params.stroke == 0 || params["stroke-width"] == 0) && (stroke.on = false); - var strokeColor = R.getRGB(params.stroke); - stroke.on && params.stroke && (stroke.color = strokeColor.hex); - opacity = ((+a["stroke-opacity"] + 1 || 2) - 1) * ((+a.opacity + 1 || 2) - 1) * ((+strokeColor.o + 1 || 2) - 1); - var width = (toFloat(params["stroke-width"]) || 1) * .75; - opacity = mmin(mmax(opacity, 0), 1); - params["stroke-width"] == null && (width = a["stroke-width"]); - params["stroke-width"] && (stroke.weight = width); - width && width < 1 && (opacity *= width) && (stroke.weight = 1); - stroke.opacity = opacity; - - params["stroke-linejoin"] && (stroke.joinstyle = params["stroke-linejoin"] || "miter"); - stroke.miterlimit = params["stroke-miterlimit"] || 8; - params["stroke-linecap"] && (stroke.endcap = params["stroke-linecap"] == "butt" ? "flat" : params["stroke-linecap"] == "square" ? "square" : "round"); - if ("stroke-dasharray" in params) { - var dasharray = { - "-": "shortdash", - ".": "shortdot", - "-.": "shortdashdot", - "-..": "shortdashdotdot", - ". ": "dot", - "- ": "dash", - "--": "longdash", - "- .": "dashdot", - "--.": "longdashdot", - "--..": "longdashdotdot" - }; - stroke.dashstyle = dasharray[has](params["stroke-dasharray"]) ? dasharray[params["stroke-dasharray"]] : E; - } - newstroke && node.appendChild(stroke); - } - if (res.type == "text") { - res.paper.canvas.style.display = E; - var span = res.paper.span, - m = 100, - fontSize = a.font && a.font.match(/\d+(?:\.\d*)?(?=px)/); - s = span.style; - a.font && (s.font = a.font); - a["font-family"] && (s.fontFamily = a["font-family"]); - a["font-weight"] && (s.fontWeight = a["font-weight"]); - a["font-style"] && (s.fontStyle = a["font-style"]); - fontSize = toFloat(a["font-size"] || fontSize && fontSize[0]) || 10; - s.fontSize = fontSize * m + "px"; - res.textpath.string && (span.innerHTML = Str(res.textpath.string).replace(/</g, "&#60;").replace(/&/g, "&#38;").replace(/\n/g, "<br>")); - var brect = span.getBoundingClientRect(); - res.W = a.w = (brect.right - brect.left) / m; - res.H = a.h = (brect.bottom - brect.top) / m; - // res.paper.canvas.style.display = "none"; - res.X = a.x; - res.Y = a.y + res.H / 2; - - ("x" in params || "y" in params) && (res.path.v = R.format("m{0},{1}l{2},{1}", round(a.x * zoom), round(a.y * zoom), round(a.x * zoom) + 1)); - var dirtyattrs = ["x", "y", "text", "font", "font-family", "font-weight", "font-style", "font-size"]; - for (var d = 0, dd = dirtyattrs.length; d < dd; d++) if (dirtyattrs[d] in params) { - res._.dirty = 1; - break; - } - - // text-anchor emulation - switch (a["text-anchor"]) { - case "start": - res.textpath.style["v-text-align"] = "left"; - res.bbx = res.W / 2; - break; - case "end": - res.textpath.style["v-text-align"] = "right"; - res.bbx = -res.W / 2; - break; - default: - res.textpath.style["v-text-align"] = "center"; - res.bbx = 0; - break; - } - res.textpath.style["v-text-kern"] = true; - } - // res.paper.canvas.style.display = E; - }, - addGradientFill = function (o, gradient, fill) { - o.attrs = o.attrs || {}; - var attrs = o.attrs, - pow = Math.pow, - opacity, - oindex, - type = "linear", - fxfy = ".5 .5"; - o.attrs.gradient = gradient; - gradient = Str(gradient).replace(R._radial_gradient, function (all, fx, fy) { - type = "radial"; - if (fx && fy) { - fx = toFloat(fx); - fy = toFloat(fy); - pow(fx - .5, 2) + pow(fy - .5, 2) > .25 && (fy = math.sqrt(.25 - pow(fx - .5, 2)) * ((fy > .5) * 2 - 1) + .5); - fxfy = fx + S + fy; - } - return E; - }); - gradient = gradient.split(/\s*\-\s*/); - if (type == "linear") { - var angle = gradient.shift(); - angle = -toFloat(angle); - if (isNaN(angle)) { - return null; - } - } - var dots = R._parseDots(gradient); - if (!dots) { - return null; - } - o = o.shape || o.node; - if (dots.length) { - o.removeChild(fill); - fill.on = true; - fill.method = "none"; - fill.color = dots[0].color; - fill.color2 = dots[dots.length - 1].color; - var clrs = []; - for (var i = 0, ii = dots.length; i < ii; i++) { - dots[i].offset && clrs.push(dots[i].offset + S + dots[i].color); - } - fill.colors = clrs.length ? clrs.join() : "0% " + fill.color; - if (type == "radial") { - fill.type = "gradientTitle"; - fill.focus = "100%"; - fill.focussize = "0 0"; - fill.focusposition = fxfy; - fill.angle = 0; - } else { - // fill.rotate= true; - fill.type = "gradient"; - fill.angle = (270 - angle) % 360; - } - o.appendChild(fill); - } - return 1; - }, - Element = function (node, vml) { - this[0] = this.node = node; - node.raphael = true; - this.id = R._oid++; - node.raphaelid = this.id; - this.X = 0; - this.Y = 0; - this.attrs = {}; - this.paper = vml; - this.matrix = R.matrix(); - this._ = { - transform: [], - sx: 1, - sy: 1, - dx: 0, - dy: 0, - deg: 0, - dirty: 1, - dirtyT: 1 - }; - !vml.bottom && (vml.bottom = this); - this.prev = vml.top; - vml.top && (vml.top.next = this); - vml.top = this; - this.next = null; - }; - var elproto = R.el; - - Element.prototype = elproto; - elproto.constructor = Element; - elproto.transform = function (tstr) { - if (tstr == null) { - return this._.transform; - } - var vbs = this.paper._viewBoxShift, - vbt = vbs ? "s" + [vbs.scale, vbs.scale] + "-1-1t" + [vbs.dx, vbs.dy] : E, - oldt; - if (vbs) { - oldt = tstr = Str(tstr).replace(/\.{3}|\u2026/g, this._.transform || E); - } - R._extractTransform(this, vbt + tstr); - var matrix = this.matrix.clone(), - skew = this.skew, - o = this.node, - split, - isGrad = ~Str(this.attrs.fill).indexOf("-"), - isPatt = !Str(this.attrs.fill).indexOf("url("); - matrix.translate(1, 1); - if (isPatt || isGrad || this.type == "image") { - skew.matrix = "1 0 0 1"; - skew.offset = "0 0"; - split = matrix.split(); - if ((isGrad && split.noRotation) || !split.isSimple) { - o.style.filter = matrix.toFilter(); - var bb = this.getBBox(), - bbt = this.getBBox(1), - dx = bb.x - bbt.x, - dy = bb.y - bbt.y; - o.coordorigin = (dx * -zoom) + S + (dy * -zoom); - setCoords(this, 1, 1, dx, dy, 0); - } else { - o.style.filter = E; - setCoords(this, split.scalex, split.scaley, split.dx, split.dy, split.rotate); - } - } else { - o.style.filter = E; - skew.matrix = Str(matrix); - skew.offset = matrix.offset(); - } - if (oldt !== null) { // empty string value is true as well - this._.transform = oldt; - R._extractTransform(this, oldt); - } - return this; - }; - elproto.rotate = function (deg, cx, cy) { - if (this.removed) { - return this; - } - if (deg == null) { - return; - } - deg = Str(deg).split(separator); - if (deg.length - 1) { - cx = toFloat(deg[1]); - cy = toFloat(deg[2]); - } - deg = toFloat(deg[0]); - (cy == null) && (cx = cy); - if (cx == null || cy == null) { - var bbox = this.getBBox(1); - cx = bbox.x + bbox.width / 2; - cy = bbox.y + bbox.height / 2; - } - this._.dirtyT = 1; - this.transform(this._.transform.concat([["r", deg, cx, cy]])); - return this; - }; - elproto.translate = function (dx, dy) { - if (this.removed) { - return this; - } - dx = Str(dx).split(separator); - if (dx.length - 1) { - dy = toFloat(dx[1]); - } - dx = toFloat(dx[0]) || 0; - dy = +dy || 0; - if (this._.bbox) { - this._.bbox.x += dx; - this._.bbox.y += dy; - } - this.transform(this._.transform.concat([["t", dx, dy]])); - return this; - }; - elproto.scale = function (sx, sy, cx, cy) { - if (this.removed) { - return this; - } - sx = Str(sx).split(separator); - if (sx.length - 1) { - sy = toFloat(sx[1]); - cx = toFloat(sx[2]); - cy = toFloat(sx[3]); - isNaN(cx) && (cx = null); - isNaN(cy) && (cy = null); - } - sx = toFloat(sx[0]); - (sy == null) && (sy = sx); - (cy == null) && (cx = cy); - if (cx == null || cy == null) { - var bbox = this.getBBox(1); - } - cx = cx == null ? bbox.x + bbox.width / 2 : cx; - cy = cy == null ? bbox.y + bbox.height / 2 : cy; - - this.transform(this._.transform.concat([["s", sx, sy, cx, cy]])); - this._.dirtyT = 1; - return this; - }; - elproto.hide = function () { - !this.removed && (this.node.style.display = "none"); - return this; - }; - elproto.show = function () { - !this.removed && (this.node.style.display = E); - return this; - }; - // Needed to fix the vml setViewBox issues - elproto.auxGetBBox = R.el.getBBox; - elproto.getBBox = function(){ - var b = this.auxGetBBox(); - if (this.paper && this.paper._viewBoxShift) - { - var c = {}; - var z = 1/this.paper._viewBoxShift.scale; - c.x = b.x - this.paper._viewBoxShift.dx; - c.x *= z; - c.y = b.y - this.paper._viewBoxShift.dy; - c.y *= z; - c.width = b.width * z; - c.height = b.height * z; - c.x2 = c.x + c.width; - c.y2 = c.y + c.height; - return c; - } - return b; - }; - elproto._getBBox = function () { - if (this.removed) { - return {}; - } - return { - x: this.X + (this.bbx || 0) - this.W / 2, - y: this.Y - this.H, - width: this.W, - height: this.H - }; - }; - elproto.remove = function () { - if (this.removed || !this.node.parentNode) { - return; - } - this.paper.__set__ && this.paper.__set__.exclude(this); - R.eve.unbind("raphael.*.*." + this.id); - R._tear(this, this.paper); - this.node.parentNode.removeChild(this.node); - this.shape && this.shape.parentNode.removeChild(this.shape); - for (var i in this) { - this[i] = typeof this[i] == "function" ? R._removedFactory(i) : null; - } - this.removed = true; - }; - elproto.attr = function (name, value) { - if (this.removed) { - return this; - } - if (name == null) { - var res = {}; - for (var a in this.attrs) if (this.attrs[has](a)) { - res[a] = this.attrs[a]; - } - res.gradient && res.fill == "none" && (res.fill = res.gradient) && delete res.gradient; - res.transform = this._.transform; - return res; - } - if (value == null && R.is(name, "string")) { - if (name == fillString && this.attrs.fill == "none" && this.attrs.gradient) { - return this.attrs.gradient; - } - var names = name.split(separator), - out = {}; - for (var i = 0, ii = names.length; i < ii; i++) { - name = names[i]; - if (name in this.attrs) { - out[name] = this.attrs[name]; - } else if (R.is(this.paper.customAttributes[name], "function")) { - out[name] = this.paper.customAttributes[name].def; - } else { - out[name] = R._availableAttrs[name]; - } - } - return ii - 1 ? out : out[names[0]]; - } - if (this.attrs && value == null && R.is(name, "array")) { - out = {}; - for (i = 0, ii = name.length; i < ii; i++) { - out[name[i]] = this.attr(name[i]); - } - return out; - } - var params; - if (value != null) { - params = {}; - params[name] = value; - } - value == null && R.is(name, "object") && (params = name); - for (var key in params) { - eve("raphael.attr." + key + "." + this.id, this, params[key]); - } - if (params) { - for (key in this.paper.customAttributes) if (this.paper.customAttributes[has](key) && params[has](key) && R.is(this.paper.customAttributes[key], "function")) { - var par = this.paper.customAttributes[key].apply(this, [].concat(params[key])); - this.attrs[key] = params[key]; - for (var subkey in par) if (par[has](subkey)) { - params[subkey] = par[subkey]; - } - } - // this.paper.canvas.style.display = "none"; - if (params.text && this.type == "text") { - this.textpath.string = params.text; - } - setFillAndStroke(this, params); - // this.paper.canvas.style.display = E; - } - return this; - }; - elproto.toFront = function () { - !this.removed && this.node.parentNode.appendChild(this.node); - this.paper && this.paper.top != this && R._tofront(this, this.paper); - return this; - }; - elproto.toBack = function () { - if (this.removed) { - return this; - } - if (this.node.parentNode.firstChild != this.node) { - this.node.parentNode.insertBefore(this.node, this.node.parentNode.firstChild); - R._toback(this, this.paper); - } - return this; - }; - elproto.insertAfter = function (element) { - if (this.removed) { - return this; - } - if (element.constructor == R.st.constructor) { - element = element[element.length - 1]; - } - if (element.node.nextSibling) { - element.node.parentNode.insertBefore(this.node, element.node.nextSibling); - } else { - element.node.parentNode.appendChild(this.node); - } - R._insertafter(this, element, this.paper); - return this; - }; - elproto.insertBefore = function (element) { - if (this.removed) { - return this; - } - if (element.constructor == R.st.constructor) { - element = element[0]; - } - element.node.parentNode.insertBefore(this.node, element.node); - R._insertbefore(this, element, this.paper); - return this; - }; - elproto.blur = function (size) { - var s = this.node.runtimeStyle, - f = s.filter; - f = f.replace(blurregexp, E); - if (+size !== 0) { - this.attrs.blur = size; - s.filter = f + S + ms + ".Blur(pixelradius=" + (+size || 1.5) + ")"; - s.margin = R.format("-{0}px 0 0 -{0}px", round(+size || 1.5)); - } else { - s.filter = f; - s.margin = 0; - delete this.attrs.blur; - } - return this; - }; - - R._engine.path = function (pathString, vml) { - var el = createNode("shape"); - el.style.cssText = cssDot; - el.coordsize = zoom + S + zoom; - el.coordorigin = vml.coordorigin; - var p = new Element(el, vml), - attr = {fill: "none", stroke: "#000"}; - pathString && (attr.path = pathString); - p.type = "path"; - p.path = []; - p.Path = E; - setFillAndStroke(p, attr); - vml.canvas && vml.canvas.appendChild(el); - var skew = createNode("skew"); - skew.on = true; - el.appendChild(skew); - p.skew = skew; - p.transform(E); - return p; - }; - R._engine.rect = function (vml, x, y, w, h, r) { - var path = R._rectPath(x, y, w, h, r), - res = vml.path(path), - a = res.attrs; - res.X = a.x = x; - res.Y = a.y = y; - res.W = a.width = w; - res.H = a.height = h; - a.r = r; - a.path = path; - res.type = "rect"; - return res; - }; - R._engine.ellipse = function (vml, x, y, rx, ry) { - var res = vml.path(), - a = res.attrs; - res.X = x - rx; - res.Y = y - ry; - res.W = rx * 2; - res.H = ry * 2; - res.type = "ellipse"; - setFillAndStroke(res, { - cx: x, - cy: y, - rx: rx, - ry: ry - }); - return res; - }; - R._engine.circle = function (vml, x, y, r) { - var res = vml.path(), - a = res.attrs; - res.X = x - r; - res.Y = y - r; - res.W = res.H = r * 2; - res.type = "circle"; - setFillAndStroke(res, { - cx: x, - cy: y, - r: r - }); - return res; - }; - R._engine.image = function (vml, src, x, y, w, h) { - var path = R._rectPath(x, y, w, h), - res = vml.path(path).attr({stroke: "none"}), - a = res.attrs, - node = res.node, - fill = node.getElementsByTagName(fillString)[0]; - a.src = src; - res.X = a.x = x; - res.Y = a.y = y; - res.W = a.width = w; - res.H = a.height = h; - a.path = path; - res.type = "image"; - fill.parentNode == node && node.removeChild(fill); - fill.rotate = true; - fill.src = src; - fill.type = "tile"; - res._.fillpos = [x, y]; - res._.fillsize = [w, h]; - node.appendChild(fill); - setCoords(res, 1, 1, 0, 0, 0); - return res; - }; - R._engine.text = function (vml, x, y, text) { - var el = createNode("shape"), - path = createNode("path"), - o = createNode("textpath"); - x = x || 0; - y = y || 0; - text = text || ""; - path.v = R.format("m{0},{1}l{2},{1}", round(x * zoom), round(y * zoom), round(x * zoom) + 1); - path.textpathok = true; - o.string = Str(text); - o.on = true; - el.style.cssText = cssDot; - el.coordsize = zoom + S + zoom; - el.coordorigin = "0 0"; - var p = new Element(el, vml), - attr = { - fill: "#000", - stroke: "none", - font: R._availableAttrs.font, - text: text - }; - p.shape = el; - p.path = path; - p.textpath = o; - p.type = "text"; - p.attrs.text = Str(text); - p.attrs.x = x; - p.attrs.y = y; - p.attrs.w = 1; - p.attrs.h = 1; - setFillAndStroke(p, attr); - el.appendChild(o); - el.appendChild(path); - vml.canvas.appendChild(el); - var skew = createNode("skew"); - skew.on = true; - el.appendChild(skew); - p.skew = skew; - p.transform(E); - return p; - }; - R._engine.setSize = function (width, height) { - var cs = this.canvas.style; - this.width = width; - this.height = height; - width == +width && (width += "px"); - height == +height && (height += "px"); - cs.width = width; - cs.height = height; - cs.clip = "rect(0 " + width + " " + height + " 0)"; - if (this._viewBox) { - R._engine.setViewBox.apply(this, this._viewBox); - } - return this; - }; - R._engine.setViewBox = function (x, y, w, h, fit) { - R.eve("raphael.setViewBox", this, this._viewBox, [x, y, w, h, fit]); - var paperSize = this.getSize(), - width = paperSize.width, - height = paperSize.height, - H, W; - if (fit) { - H = height / h; - W = width / w; - if (w * H < width) { - x -= (width - w * H) / 2 / H; - } - if (h * W < height) { - y -= (height - h * W) / 2 / W; - } - } - this._viewBox = [x, y, w, h, !!fit]; - this._viewBoxShift = { - dx: -x, - dy: -y, - scale: paperSize - }; - this.forEach(function (el) { - el.transform("..."); - }); - return this; - }; - var createNode; - R._engine.initWin = function (win) { - var doc = win.document; - if (doc.styleSheets.length < 31) { - doc.createStyleSheet().addRule(".rvml", "behavior:url(#default#VML)"); - } else { - // no more room, add to the existing one - // http://msdn.microsoft.com/en-us/library/ms531194%28VS.85%29.aspx - doc.styleSheets[0].addRule(".rvml", "behavior:url(#default#VML)"); - } - try { - !doc.namespaces.rvml && doc.namespaces.add("rvml", "urn:schemas-microsoft-com:vml"); - createNode = function (tagName) { - return doc.createElement('<rvml:' + tagName + ' class="rvml">'); - }; - } catch (e) { - createNode = function (tagName) { - return doc.createElement('<' + tagName + ' xmlns="urn:schemas-microsoft.com:vml" class="rvml">'); - }; - } - }; - R._engine.initWin(R._g.win); - R._engine.create = function () { - var con = R._getContainer.apply(0, arguments), - container = con.container, - height = con.height, - s, - width = con.width, - x = con.x, - y = con.y; - if (!container) { - throw new Error("VML container not found."); - } - var res = new R._Paper, - c = res.canvas = R._g.doc.createElement("div"), - cs = c.style; - x = x || 0; - y = y || 0; - width = width || 512; - height = height || 342; - res.width = width; - res.height = height; - width == +width && (width += "px"); - height == +height && (height += "px"); - res.coordsize = zoom * 1e3 + S + zoom * 1e3; - res.coordorigin = "0 0"; - res.span = R._g.doc.createElement("span"); - res.span.style.cssText = "position:absolute;left:-9999em;top:-9999em;padding:0;margin:0;line-height:1;"; - c.appendChild(res.span); - cs.cssText = R.format("top:0;left:0;width:{0};height:{1};display:inline-block;position:relative;clip:rect(0 {0} {1} 0);overflow:hidden", width, height); - if (container == 1) { - R._g.doc.body.appendChild(c); - cs.left = x + "px"; - cs.top = y + "px"; - cs.position = "absolute"; - } else { - if (container.firstChild) { - container.insertBefore(c, container.firstChild); - } else { - container.appendChild(c); - } - } - res.renderfix = function () {}; - return res; - }; - R.prototype.clear = function () { - R.eve("raphael.clear", this); - this.canvas.innerHTML = E; - this.span = R._g.doc.createElement("span"); - this.span.style.cssText = "position:absolute;left:-9999em;top:-9999em;padding:0;margin:0;line-height:1;display:inline;"; - this.canvas.appendChild(this.span); - this.bottom = this.top = null; - }; - R.prototype.remove = function () { - R.eve("raphael.remove", this); - this.canvas.parentNode.removeChild(this.canvas); - for (var i in this) { - this[i] = typeof this[i] == "function" ? R._removedFactory(i) : null; - } - return true; - }; - - var setproto = R.st; - for (var method in elproto) if (elproto[has](method) && !setproto[has](method)) { - setproto[method] = (function (methodname) { - return function () { - var arg = arguments; - return this.forEach(function (el) { - el[methodname].apply(el, arg); - }); - }; - })(method); - } - }.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)); - - -/***/ } -/******/ ]) -}); -; \ No newline at end of file diff --git a/admin/bower_components/raphael/raphael.min.js b/admin/bower_components/raphael/raphael.min.js deleted file mode 100644 index 2fb9104..0000000 --- a/admin/bower_components/raphael/raphael.min.js +++ /dev/null @@ -1,3 +0,0 @@ -!function t(e,r){"object"==typeof exports&&"object"==typeof module?module.exports=r():"function"==typeof define&&define.amd?define([],r):"object"==typeof exports?exports.Raphael=r():e.Raphael=r()}(this,function(){return function(t){function e(i){if(r[i])return r[i].exports;var n=r[i]={exports:{},id:i,loaded:!1};return t[i].call(n.exports,n,n.exports,e),n.loaded=!0,n.exports}var r={};return e.m=t,e.c=r,e.p="",e(0)}([function(t,e,r){var i,n;i=[r(1),r(3),r(4)],n=function(t){return t}.apply(e,i),!(void 0!==n&&(t.exports=n))},function(t,e,r){var i,n;i=[r(2)],n=function(t){function e(r){if(e.is(r,"function"))return w?r():t.on("raphael.DOMload",r);if(e.is(r,Q))return e._engine.create[z](e,r.splice(0,3+e.is(r[0],$))).add(r);var i=Array.prototype.slice.call(arguments,0);if(e.is(i[i.length-1],"function")){var n=i.pop();return w?n.call(e._engine.create[z](e,i)):t.on("raphael.DOMload",function(){n.call(e._engine.create[z](e,i))})}return e._engine.create[z](e,arguments)}function r(t){if("function"==typeof t||Object(t)!==t)return t;var e=new t.constructor;for(var i in t)t[A](i)&&(e[i]=r(t[i]));return e}function i(t,e){for(var r=0,i=t.length;r<i;r++)if(t[r]===e)return t.push(t.splice(r,1)[0])}function n(t,e,r){function n(){var a=Array.prototype.slice.call(arguments,0),s=a.join("␀"),o=n.cache=n.cache||{},l=n.count=n.count||[];return o[A](s)?(i(l,s),r?r(o[s]):o[s]):(l.length>=1e3&&delete o[l.shift()],l.push(s),o[s]=t[z](e,a),r?r(o[s]):o[s])}return n}function a(){return this.hex}function s(t,e){for(var r=[],i=0,n=t.length;n-2*!e>i;i+=2){var a=[{x:+t[i-2],y:+t[i-1]},{x:+t[i],y:+t[i+1]},{x:+t[i+2],y:+t[i+3]},{x:+t[i+4],y:+t[i+5]}];e?i?n-4==i?a[3]={x:+t[0],y:+t[1]}:n-2==i&&(a[2]={x:+t[0],y:+t[1]},a[3]={x:+t[2],y:+t[3]}):a[0]={x:+t[n-2],y:+t[n-1]}:n-4==i?a[3]=a[2]:i||(a[0]={x:+t[i],y:+t[i+1]}),r.push(["C",(-a[0].x+6*a[1].x+a[2].x)/6,(-a[0].y+6*a[1].y+a[2].y)/6,(a[1].x+6*a[2].x-a[3].x)/6,(a[1].y+6*a[2].y-a[3].y)/6,a[2].x,a[2].y])}return r}function o(t,e,r,i,n){var a=-3*e+9*r-9*i+3*n,s=t*a+6*e-12*r+6*i;return t*s-3*e+3*r}function l(t,e,r,i,n,a,s,l,h){null==h&&(h=1),h=h>1?1:h<0?0:h;for(var u=h/2,c=12,f=[-.1252,.1252,-.3678,.3678,-.5873,.5873,-.7699,.7699,-.9041,.9041,-.9816,.9816],p=[.2491,.2491,.2335,.2335,.2032,.2032,.1601,.1601,.1069,.1069,.0472,.0472],d=0,g=0;g<c;g++){var v=u*f[g]+u,x=o(v,t,r,n,s),y=o(v,e,i,a,l),m=x*x+y*y;d+=p[g]*Y.sqrt(m)}return u*d}function h(t,e,r,i,n,a,s,o,h){if(!(h<0||l(t,e,r,i,n,a,s,o)<h)){var u=1,c=u/2,f=u-c,p,d=.01;for(p=l(t,e,r,i,n,a,s,o,f);H(p-h)>d;)c/=2,f+=(p<h?1:-1)*c,p=l(t,e,r,i,n,a,s,o,f);return f}}function u(t,e,r,i,n,a,s,o){if(!(W(t,r)<G(n,s)||G(t,r)>W(n,s)||W(e,i)<G(a,o)||G(e,i)>W(a,o))){var l=(t*i-e*r)*(n-s)-(t-r)*(n*o-a*s),h=(t*i-e*r)*(a-o)-(e-i)*(n*o-a*s),u=(t-r)*(a-o)-(e-i)*(n-s);if(u){var c=l/u,f=h/u,p=+c.toFixed(2),d=+f.toFixed(2);if(!(p<+G(t,r).toFixed(2)||p>+W(t,r).toFixed(2)||p<+G(n,s).toFixed(2)||p>+W(n,s).toFixed(2)||d<+G(e,i).toFixed(2)||d>+W(e,i).toFixed(2)||d<+G(a,o).toFixed(2)||d>+W(a,o).toFixed(2)))return{x:c,y:f}}}}function c(t,e){return p(t,e)}function f(t,e){return p(t,e,1)}function p(t,r,i){var n=e.bezierBBox(t),a=e.bezierBBox(r);if(!e.isBBoxIntersect(n,a))return i?0:[];for(var s=l.apply(0,t),o=l.apply(0,r),h=W(~~(s/5),1),c=W(~~(o/5),1),f=[],p=[],d={},g=i?0:[],v=0;v<h+1;v++){var x=e.findDotsAtSegment.apply(e,t.concat(v/h));f.push({x:x.x,y:x.y,t:v/h})}for(v=0;v<c+1;v++)x=e.findDotsAtSegment.apply(e,r.concat(v/c)),p.push({x:x.x,y:x.y,t:v/c});for(v=0;v<h;v++)for(var y=0;y<c;y++){var m=f[v],b=f[v+1],_=p[y],w=p[y+1],k=H(b.x-m.x)<.001?"y":"x",B=H(w.x-_.x)<.001?"y":"x",C=u(m.x,m.y,b.x,b.y,_.x,_.y,w.x,w.y);if(C){if(d[C.x.toFixed(4)]==C.y.toFixed(4))continue;d[C.x.toFixed(4)]=C.y.toFixed(4);var S=m.t+H((C[k]-m[k])/(b[k]-m[k]))*(b.t-m.t),A=_.t+H((C[B]-_[B])/(w[B]-_[B]))*(w.t-_.t);S>=0&&S<=1.001&&A>=0&&A<=1.001&&(i?g++:g.push({x:C.x,y:C.y,t1:G(S,1),t2:G(A,1)}))}}return g}function d(t,r,i){t=e._path2curve(t),r=e._path2curve(r);for(var n,a,s,o,l,h,u,c,f,d,g=i?0:[],v=0,x=t.length;v<x;v++){var y=t[v];if("M"==y[0])n=l=y[1],a=h=y[2];else{"C"==y[0]?(f=[n,a].concat(y.slice(1)),n=f[6],a=f[7]):(f=[n,a,n,a,l,h,l,h],n=l,a=h);for(var m=0,b=r.length;m<b;m++){var _=r[m];if("M"==_[0])s=u=_[1],o=c=_[2];else{"C"==_[0]?(d=[s,o].concat(_.slice(1)),s=d[6],o=d[7]):(d=[s,o,s,o,u,c,u,c],s=u,o=c);var w=p(f,d,i);if(i)g+=w;else{for(var k=0,B=w.length;k<B;k++)w[k].segment1=v,w[k].segment2=m,w[k].bez1=f,w[k].bez2=d;g=g.concat(w)}}}}}return g}function g(t,e,r,i,n,a){null!=t?(this.a=+t,this.b=+e,this.c=+r,this.d=+i,this.e=+n,this.f=+a):(this.a=1,this.b=0,this.c=0,this.d=1,this.e=0,this.f=0)}function v(){return this.x+j+this.y}function x(){return this.x+j+this.y+j+this.width+" × "+this.height}function y(t,e,r,i,n,a){function s(t){return((c*t+u)*t+h)*t}function o(t,e){var r=l(t,e);return((d*r+p)*r+f)*r}function l(t,e){var r,i,n,a,o,l;for(n=t,l=0;l<8;l++){if(a=s(n)-t,H(a)<e)return n;if(o=(3*c*n+2*u)*n+h,H(o)<1e-6)break;n-=a/o}if(r=0,i=1,n=t,n<r)return r;if(n>i)return i;for(;r<i;){if(a=s(n),H(a-t)<e)return n;t>a?r=n:i=n,n=(i-r)/2+r}return n}var h=3*e,u=3*(i-e)-h,c=1-h-u,f=3*r,p=3*(n-r)-f,d=1-f-p;return o(t,1/(200*a))}function m(t,e){var r=[],i={};if(this.ms=e,this.times=1,t){for(var n in t)t[A](n)&&(i[ht(n)]=t[n],r.push(ht(n)));r.sort(Bt)}this.anim=i,this.top=r[r.length-1],this.percents=r}function b(r,i,n,a,s,o){n=ht(n);var l,h,u,c=[],f,p,d,v=r.ms,x={},m={},b={};if(a)for(w=0,B=Ee.length;w<B;w++){var _=Ee[w];if(_.el.id==i.id&&_.anim==r){_.percent!=n?(Ee.splice(w,1),u=1):h=_,i.attr(_.totalOrigin);break}}else a=+m;for(var w=0,B=r.percents.length;w<B;w++){if(r.percents[w]==n||r.percents[w]>a*r.top){n=r.percents[w],p=r.percents[w-1]||0,v=v/r.top*(n-p),f=r.percents[w+1],l=r.anim[n];break}a&&i.attr(r.anim[r.percents[w]])}if(l){if(h)h.initstatus=a,h.start=new Date-h.ms*a;else{for(var C in l)if(l[A](C)&&(pt[A](C)||i.paper.customAttributes[A](C)))switch(x[C]=i.attr(C),null==x[C]&&(x[C]=ft[C]),m[C]=l[C],pt[C]){case $:b[C]=(m[C]-x[C])/v;break;case"colour":x[C]=e.getRGB(x[C]);var S=e.getRGB(m[C]);b[C]={r:(S.r-x[C].r)/v,g:(S.g-x[C].g)/v,b:(S.b-x[C].b)/v};break;case"path":var T=Qt(x[C],m[C]),E=T[1];for(x[C]=T[0],b[C]=[],w=0,B=x[C].length;w<B;w++){b[C][w]=[0];for(var M=1,N=x[C][w].length;M<N;M++)b[C][w][M]=(E[w][M]-x[C][w][M])/v}break;case"transform":var L=i._,z=le(L[C],m[C]);if(z)for(x[C]=z.from,m[C]=z.to,b[C]=[],b[C].real=!0,w=0,B=x[C].length;w<B;w++)for(b[C][w]=[x[C][w][0]],M=1,N=x[C][w].length;M<N;M++)b[C][w][M]=(m[C][w][M]-x[C][w][M])/v;else{var F=i.matrix||new g,R={_:{transform:L.transform},getBBox:function(){return i.getBBox(1)}};x[C]=[F.a,F.b,F.c,F.d,F.e,F.f],se(R,m[C]),m[C]=R._.transform,b[C]=[(R.matrix.a-F.a)/v,(R.matrix.b-F.b)/v,(R.matrix.c-F.c)/v,(R.matrix.d-F.d)/v,(R.matrix.e-F.e)/v,(R.matrix.f-F.f)/v]}break;case"csv":var j=I(l[C])[q](k),D=I(x[C])[q](k);if("clip-rect"==C)for(x[C]=D,b[C]=[],w=D.length;w--;)b[C][w]=(j[w]-x[C][w])/v;m[C]=j;break;default:for(j=[][P](l[C]),D=[][P](x[C]),b[C]=[],w=i.paper.customAttributes[C].length;w--;)b[C][w]=((j[w]||0)-(D[w]||0))/v}var V=l.easing,O=e.easing_formulas[V];if(!O)if(O=I(V).match(st),O&&5==O.length){var Y=O;O=function(t){return y(t,+Y[1],+Y[2],+Y[3],+Y[4],v)}}else O=St;if(d=l.start||r.start||+new Date,_={anim:r,percent:n,timestamp:d,start:d+(r.del||0),status:0,initstatus:a||0,stop:!1,ms:v,easing:O,from:x,diff:b,to:m,el:i,callback:l.callback,prev:p,next:f,repeat:o||r.times,origin:i.attr(),totalOrigin:s},Ee.push(_),a&&!h&&!u&&(_.stop=!0,_.start=new Date-v*a,1==Ee.length))return Ne();u&&(_.start=new Date-_.ms*a),1==Ee.length&&Me(Ne)}t("raphael.anim.start."+i.id,i,r)}}function _(t){for(var e=0;e<Ee.length;e++)Ee[e].el.paper==t&&Ee.splice(e--,1)}e.version="2.2.0",e.eve=t;var w,k=/[, ]+/,B={circle:1,rect:1,path:1,ellipse:1,text:1,image:1},C=/\{(\d+)\}/g,S="prototype",A="hasOwnProperty",T={doc:document,win:window},E={was:Object.prototype[A].call(T.win,"Raphael"),is:T.win.Raphael},M=function(){this.ca=this.customAttributes={}},N,L="appendChild",z="apply",P="concat",F="ontouchstart"in T.win||T.win.DocumentTouch&&T.doc instanceof DocumentTouch,R="",j=" ",I=String,q="split",D="click dblclick mousedown mousemove mouseout mouseover mouseup touchstart touchmove touchend touchcancel"[q](j),V={mousedown:"touchstart",mousemove:"touchmove",mouseup:"touchend"},O=I.prototype.toLowerCase,Y=Math,W=Y.max,G=Y.min,H=Y.abs,X=Y.pow,U=Y.PI,$="number",Z="string",Q="array",J="toString",K="fill",tt=Object.prototype.toString,et={},rt="push",it=e._ISURL=/^url\(['"]?(.+?)['"]?\)$/i,nt=/^\s*((#[a-f\d]{6})|(#[a-f\d]{3})|rgba?\(\s*([\d\.]+%?\s*,\s*[\d\.]+%?\s*,\s*[\d\.]+%?(?:\s*,\s*[\d\.]+%?)?)\s*\)|hsba?\(\s*([\d\.]+(?:deg|\xb0|%)?\s*,\s*[\d\.]+%?\s*,\s*[\d\.]+(?:%?\s*,\s*[\d\.]+)?)%?\s*\)|hsla?\(\s*([\d\.]+(?:deg|\xb0|%)?\s*,\s*[\d\.]+%?\s*,\s*[\d\.]+(?:%?\s*,\s*[\d\.]+)?)%?\s*\))\s*$/i,at={NaN:1,Infinity:1,"-Infinity":1},st=/^(?:cubic-)?bezier\(([^,]+),([^,]+),([^,]+),([^\)]+)\)/,ot=Y.round,lt="setAttribute",ht=parseFloat,ut=parseInt,ct=I.prototype.toUpperCase,ft=e._availableAttrs={"arrow-end":"none","arrow-start":"none",blur:0,"clip-rect":"0 0 1e9 1e9",cursor:"default",cx:0,cy:0,fill:"#fff","fill-opacity":1,font:'10px "Arial"',"font-family":'"Arial"',"font-size":"10","font-style":"normal","font-weight":400,gradient:0,height:0,href:"http://raphaeljs.com/","letter-spacing":0,opacity:1,path:"M0,0",r:0,rx:0,ry:0,src:"",stroke:"#000","stroke-dasharray":"","stroke-linecap":"butt","stroke-linejoin":"butt","stroke-miterlimit":0,"stroke-opacity":1,"stroke-width":1,target:"_blank","text-anchor":"middle",title:"Raphael",transform:"",width:0,x:0,y:0,"class":""},pt=e._availableAnimAttrs={blur:$,"clip-rect":"csv",cx:$,cy:$,fill:"colour","fill-opacity":$,"font-size":$,height:$,opacity:$,path:"path",r:$,rx:$,ry:$,stroke:"colour","stroke-opacity":$,"stroke-width":$,transform:"transform",width:$,x:$,y:$},dt=/[\x09\x0a\x0b\x0c\x0d\x20\xa0\u1680\u180e\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u202f\u205f\u3000\u2028\u2029]/g,gt=/[\x09\x0a\x0b\x0c\x0d\x20\xa0\u1680\u180e\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u202f\u205f\u3000\u2028\u2029]*,[\x09\x0a\x0b\x0c\x0d\x20\xa0\u1680\u180e\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u202f\u205f\u3000\u2028\u2029]*/,vt={hs:1,rg:1},xt=/,?([achlmqrstvxz]),?/gi,yt=/([achlmrqstvz])[\x09\x0a\x0b\x0c\x0d\x20\xa0\u1680\u180e\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u202f\u205f\u3000\u2028\u2029,]*((-?\d*\.?\d*(?:e[\-+]?\d+)?[\x09\x0a\x0b\x0c\x0d\x20\xa0\u1680\u180e\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u202f\u205f\u3000\u2028\u2029]*,?[\x09\x0a\x0b\x0c\x0d\x20\xa0\u1680\u180e\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u202f\u205f\u3000\u2028\u2029]*)+)/gi,mt=/([rstm])[\x09\x0a\x0b\x0c\x0d\x20\xa0\u1680\u180e\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u202f\u205f\u3000\u2028\u2029,]*((-?\d*\.?\d*(?:e[\-+]?\d+)?[\x09\x0a\x0b\x0c\x0d\x20\xa0\u1680\u180e\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u202f\u205f\u3000\u2028\u2029]*,?[\x09\x0a\x0b\x0c\x0d\x20\xa0\u1680\u180e\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u202f\u205f\u3000\u2028\u2029]*)+)/gi,bt=/(-?\d*\.?\d*(?:e[\-+]?\d+)?)[\x09\x0a\x0b\x0c\x0d\x20\xa0\u1680\u180e\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u202f\u205f\u3000\u2028\u2029]*,?[\x09\x0a\x0b\x0c\x0d\x20\xa0\u1680\u180e\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u202f\u205f\u3000\u2028\u2029]*/gi,_t=e._radial_gradient=/^r(?:\(([^,]+?)[\x09\x0a\x0b\x0c\x0d\x20\xa0\u1680\u180e\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u202f\u205f\u3000\u2028\u2029]*,[\x09\x0a\x0b\x0c\x0d\x20\xa0\u1680\u180e\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u202f\u205f\u3000\u2028\u2029]*([^\)]+?)\))?/,wt={},kt=function(t,e){return t.key-e.key},Bt=function(t,e){return ht(t)-ht(e)},Ct=function(){},St=function(t){return t},At=e._rectPath=function(t,e,r,i,n){return n?[["M",t+n,e],["l",r-2*n,0],["a",n,n,0,0,1,n,n],["l",0,i-2*n],["a",n,n,0,0,1,-n,n],["l",2*n-r,0],["a",n,n,0,0,1,-n,-n],["l",0,2*n-i],["a",n,n,0,0,1,n,-n],["z"]]:[["M",t,e],["l",r,0],["l",0,i],["l",-r,0],["z"]]},Tt=function(t,e,r,i){return null==i&&(i=r),[["M",t,e],["m",0,-i],["a",r,i,0,1,1,0,2*i],["a",r,i,0,1,1,0,-2*i],["z"]]},Et=e._getPath={path:function(t){return t.attr("path")},circle:function(t){var e=t.attrs;return Tt(e.cx,e.cy,e.r)},ellipse:function(t){var e=t.attrs;return Tt(e.cx,e.cy,e.rx,e.ry)},rect:function(t){var e=t.attrs;return At(e.x,e.y,e.width,e.height,e.r)},image:function(t){var e=t.attrs;return At(e.x,e.y,e.width,e.height)},text:function(t){var e=t._getBBox();return At(e.x,e.y,e.width,e.height)},set:function(t){var e=t._getBBox();return At(e.x,e.y,e.width,e.height)}},Mt=e.mapPath=function(t,e){if(!e)return t;var r,i,n,a,s,o,l;for(t=Qt(t),n=0,s=t.length;n<s;n++)for(l=t[n],a=1,o=l.length;a<o;a+=2)r=e.x(l[a],l[a+1]),i=e.y(l[a],l[a+1]),l[a]=r,l[a+1]=i;return t};if(e._g=T,e.type=T.win.SVGAngle||T.doc.implementation.hasFeature("http://www.w3.org/TR/SVG11/feature#BasicStructure","1.1")?"SVG":"VML","VML"==e.type){var Nt=T.doc.createElement("div"),Lt;if(Nt.innerHTML='<v:shape adj="1"/>',Lt=Nt.firstChild,Lt.style.behavior="url(#default#VML)",!Lt||"object"!=typeof Lt.adj)return e.type=R;Nt=null}e.svg=!(e.vml="VML"==e.type),e._Paper=M,e.fn=N=M.prototype=e.prototype,e._id=0,e.is=function(t,e){return e=O.call(e),"finite"==e?!at[A](+t):"array"==e?t instanceof Array:"null"==e&&null===t||e==typeof t&&null!==t||"object"==e&&t===Object(t)||"array"==e&&Array.isArray&&Array.isArray(t)||tt.call(t).slice(8,-1).toLowerCase()==e},e.angle=function(t,r,i,n,a,s){if(null==a){var o=t-i,l=r-n;return o||l?(180+180*Y.atan2(-l,-o)/U+360)%360:0}return e.angle(t,r,a,s)-e.angle(i,n,a,s)},e.rad=function(t){return t%360*U/180},e.deg=function(t){return Math.round(180*t/U%360*1e3)/1e3},e.snapTo=function(t,r,i){if(i=e.is(i,"finite")?i:10,e.is(t,Q)){for(var n=t.length;n--;)if(H(t[n]-r)<=i)return t[n]}else{t=+t;var a=r%t;if(a<i)return r-a;if(a>t-i)return r-a+t}return r};var zt=e.createUUID=function(t,e){return function(){return"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(t,e).toUpperCase()}}(/[xy]/g,function(t){var e=16*Y.random()|0,r="x"==t?e:3&e|8;return r.toString(16)});e.setWindow=function(r){t("raphael.setWindow",e,T.win,r),T.win=r,T.doc=T.win.document,e._engine.initWin&&e._engine.initWin(T.win)};var Pt=function(t){if(e.vml){var r=/^\s+|\s+$/g,i;try{var a=new ActiveXObject("htmlfile");a.write("<body>"),a.close(),i=a.body}catch(s){i=createPopup().document.body}var o=i.createTextRange();Pt=n(function(t){try{i.style.color=I(t).replace(r,R);var e=o.queryCommandValue("ForeColor");return e=(255&e)<<16|65280&e|(16711680&e)>>>16,"#"+("000000"+e.toString(16)).slice(-6)}catch(n){return"none"}})}else{var l=T.doc.createElement("i");l.title="Raphaël Colour Picker",l.style.display="none",T.doc.body.appendChild(l),Pt=n(function(t){return l.style.color=t,T.doc.defaultView.getComputedStyle(l,R).getPropertyValue("color")})}return Pt(t)},Ft=function(){return"hsb("+[this.h,this.s,this.b]+")"},Rt=function(){return"hsl("+[this.h,this.s,this.l]+")"},jt=function(){return this.hex},It=function(t,r,i){if(null==r&&e.is(t,"object")&&"r"in t&&"g"in t&&"b"in t&&(i=t.b,r=t.g,t=t.r),null==r&&e.is(t,Z)){var n=e.getRGB(t);t=n.r,r=n.g,i=n.b}return(t>1||r>1||i>1)&&(t/=255,r/=255,i/=255),[t,r,i]},qt=function(t,r,i,n){t*=255,r*=255,i*=255;var a={r:t,g:r,b:i,hex:e.rgb(t,r,i),toString:jt};return e.is(n,"finite")&&(a.opacity=n),a};e.color=function(t){var r;return e.is(t,"object")&&"h"in t&&"s"in t&&"b"in t?(r=e.hsb2rgb(t),t.r=r.r,t.g=r.g,t.b=r.b,t.hex=r.hex):e.is(t,"object")&&"h"in t&&"s"in t&&"l"in t?(r=e.hsl2rgb(t),t.r=r.r,t.g=r.g,t.b=r.b,t.hex=r.hex):(e.is(t,"string")&&(t=e.getRGB(t)),e.is(t,"object")&&"r"in t&&"g"in t&&"b"in t?(r=e.rgb2hsl(t),t.h=r.h,t.s=r.s,t.l=r.l,r=e.rgb2hsb(t),t.v=r.b):(t={hex:"none"},t.r=t.g=t.b=t.h=t.s=t.v=t.l=-1)),t.toString=jt,t},e.hsb2rgb=function(t,e,r,i){this.is(t,"object")&&"h"in t&&"s"in t&&"b"in t&&(r=t.b,e=t.s,i=t.o,t=t.h),t*=360;var n,a,s,o,l;return t=t%360/60,l=r*e,o=l*(1-H(t%2-1)),n=a=s=r-l,t=~~t,n+=[l,o,0,0,o,l][t],a+=[o,l,l,o,0,0][t],s+=[0,0,o,l,l,o][t],qt(n,a,s,i)},e.hsl2rgb=function(t,e,r,i){this.is(t,"object")&&"h"in t&&"s"in t&&"l"in t&&(r=t.l,e=t.s,t=t.h),(t>1||e>1||r>1)&&(t/=360,e/=100,r/=100),t*=360;var n,a,s,o,l;return t=t%360/60,l=2*e*(r<.5?r:1-r),o=l*(1-H(t%2-1)),n=a=s=r-l/2,t=~~t,n+=[l,o,0,0,o,l][t],a+=[o,l,l,o,0,0][t],s+=[0,0,o,l,l,o][t],qt(n,a,s,i)},e.rgb2hsb=function(t,e,r){r=It(t,e,r),t=r[0],e=r[1],r=r[2];var i,n,a,s;return a=W(t,e,r),s=a-G(t,e,r),i=0==s?null:a==t?(e-r)/s:a==e?(r-t)/s+2:(t-e)/s+4,i=(i+360)%6*60/360,n=0==s?0:s/a,{h:i,s:n,b:a,toString:Ft}},e.rgb2hsl=function(t,e,r){r=It(t,e,r),t=r[0],e=r[1],r=r[2];var i,n,a,s,o,l;return s=W(t,e,r),o=G(t,e,r),l=s-o,i=0==l?null:s==t?(e-r)/l:s==e?(r-t)/l+2:(t-e)/l+4,i=(i+360)%6*60/360,a=(s+o)/2,n=0==l?0:a<.5?l/(2*a):l/(2-2*a),{h:i,s:n,l:a,toString:Rt}},e._path2string=function(){return this.join(",").replace(xt,"$1")};var Dt=e._preload=function(t,e){var r=T.doc.createElement("img");r.style.cssText="position:absolute;left:-9999em;top:-9999em",r.onload=function(){e.call(this),this.onload=null,T.doc.body.removeChild(this)},r.onerror=function(){T.doc.body.removeChild(this)},T.doc.body.appendChild(r),r.src=t};e.getRGB=n(function(t){if(!t||(t=I(t)).indexOf("-")+1)return{r:-1,g:-1,b:-1,hex:"none",error:1,toString:a};if("none"==t)return{r:-1,g:-1,b:-1,hex:"none",toString:a};!(vt[A](t.toLowerCase().substring(0,2))||"#"==t.charAt())&&(t=Pt(t));var r,i,n,s,o,l,h,u=t.match(nt);return u?(u[2]&&(s=ut(u[2].substring(5),16),n=ut(u[2].substring(3,5),16),i=ut(u[2].substring(1,3),16)),u[3]&&(s=ut((l=u[3].charAt(3))+l,16),n=ut((l=u[3].charAt(2))+l,16),i=ut((l=u[3].charAt(1))+l,16)),u[4]&&(h=u[4][q](gt),i=ht(h[0]),"%"==h[0].slice(-1)&&(i*=2.55),n=ht(h[1]),"%"==h[1].slice(-1)&&(n*=2.55),s=ht(h[2]),"%"==h[2].slice(-1)&&(s*=2.55),"rgba"==u[1].toLowerCase().slice(0,4)&&(o=ht(h[3])),h[3]&&"%"==h[3].slice(-1)&&(o/=100)),u[5]?(h=u[5][q](gt),i=ht(h[0]),"%"==h[0].slice(-1)&&(i*=2.55),n=ht(h[1]),"%"==h[1].slice(-1)&&(n*=2.55),s=ht(h[2]),"%"==h[2].slice(-1)&&(s*=2.55),("deg"==h[0].slice(-3)||"°"==h[0].slice(-1))&&(i/=360),"hsba"==u[1].toLowerCase().slice(0,4)&&(o=ht(h[3])),h[3]&&"%"==h[3].slice(-1)&&(o/=100),e.hsb2rgb(i,n,s,o)):u[6]?(h=u[6][q](gt),i=ht(h[0]),"%"==h[0].slice(-1)&&(i*=2.55),n=ht(h[1]),"%"==h[1].slice(-1)&&(n*=2.55),s=ht(h[2]),"%"==h[2].slice(-1)&&(s*=2.55),("deg"==h[0].slice(-3)||"°"==h[0].slice(-1))&&(i/=360),"hsla"==u[1].toLowerCase().slice(0,4)&&(o=ht(h[3])),h[3]&&"%"==h[3].slice(-1)&&(o/=100),e.hsl2rgb(i,n,s,o)):(u={r:i,g:n,b:s,toString:a},u.hex="#"+(16777216|s|n<<8|i<<16).toString(16).slice(1),e.is(o,"finite")&&(u.opacity=o),u)):{r:-1,g:-1,b:-1,hex:"none",error:1,toString:a}},e),e.hsb=n(function(t,r,i){return e.hsb2rgb(t,r,i).hex}),e.hsl=n(function(t,r,i){return e.hsl2rgb(t,r,i).hex}),e.rgb=n(function(t,e,r){function i(t){return t+.5|0}return"#"+(16777216|i(r)|i(e)<<8|i(t)<<16).toString(16).slice(1)}),e.getColor=function(t){var e=this.getColor.start=this.getColor.start||{h:0,s:1,b:t||.75},r=this.hsb2rgb(e.h,e.s,e.b);return e.h+=.075,e.h>1&&(e.h=0,e.s-=.2,e.s<=0&&(this.getColor.start={h:0,s:1,b:e.b})),r.hex},e.getColor.reset=function(){delete this.start},e.parsePathString=function(t){if(!t)return null;var r=Vt(t);if(r.arr)return Yt(r.arr);var i={a:7,c:6,h:1,l:2,m:2,r:4,q:4,s:4,t:2,v:1,z:0},n=[];return e.is(t,Q)&&e.is(t[0],Q)&&(n=Yt(t)),n.length||I(t).replace(yt,function(t,e,r){var a=[],s=e.toLowerCase();if(r.replace(bt,function(t,e){e&&a.push(+e)}),"m"==s&&a.length>2&&(n.push([e][P](a.splice(0,2))),s="l",e="m"==e?"l":"L"),"r"==s)n.push([e][P](a));else for(;a.length>=i[s]&&(n.push([e][P](a.splice(0,i[s]))),i[s]););}),n.toString=e._path2string,r.arr=Yt(n),n},e.parseTransformString=n(function(t){if(!t)return null;var r={r:3,s:4,t:2,m:6},i=[];return e.is(t,Q)&&e.is(t[0],Q)&&(i=Yt(t)),i.length||I(t).replace(mt,function(t,e,r){var n=[],a=O.call(e);r.replace(bt,function(t,e){e&&n.push(+e)}),i.push([e][P](n))}),i.toString=e._path2string,i});var Vt=function(t){var e=Vt.ps=Vt.ps||{};return e[t]?e[t].sleep=100:e[t]={sleep:100},setTimeout(function(){for(var r in e)e[A](r)&&r!=t&&(e[r].sleep--,!e[r].sleep&&delete e[r])}),e[t]};e.findDotsAtSegment=function(t,e,r,i,n,a,s,o,l){var h=1-l,u=X(h,3),c=X(h,2),f=l*l,p=f*l,d=u*t+3*c*l*r+3*h*l*l*n+p*s,g=u*e+3*c*l*i+3*h*l*l*a+p*o,v=t+2*l*(r-t)+f*(n-2*r+t),x=e+2*l*(i-e)+f*(a-2*i+e),y=r+2*l*(n-r)+f*(s-2*n+r),m=i+2*l*(a-i)+f*(o-2*a+i),b=h*t+l*r,_=h*e+l*i,w=h*n+l*s,k=h*a+l*o,B=90-180*Y.atan2(v-y,x-m)/U;return(v>y||x<m)&&(B+=180),{x:d,y:g,m:{x:v,y:x},n:{x:y,y:m},start:{x:b,y:_},end:{x:w,y:k},alpha:B}},e.bezierBBox=function(t,r,i,n,a,s,o,l){e.is(t,"array")||(t=[t,r,i,n,a,s,o,l]);var h=Zt.apply(null,t);return{x:h.min.x,y:h.min.y,x2:h.max.x,y2:h.max.y,width:h.max.x-h.min.x,height:h.max.y-h.min.y}},e.isPointInsideBBox=function(t,e,r){return e>=t.x&&e<=t.x2&&r>=t.y&&r<=t.y2},e.isBBoxIntersect=function(t,r){var i=e.isPointInsideBBox;return i(r,t.x,t.y)||i(r,t.x2,t.y)||i(r,t.x,t.y2)||i(r,t.x2,t.y2)||i(t,r.x,r.y)||i(t,r.x2,r.y)||i(t,r.x,r.y2)||i(t,r.x2,r.y2)||(t.x<r.x2&&t.x>r.x||r.x<t.x2&&r.x>t.x)&&(t.y<r.y2&&t.y>r.y||r.y<t.y2&&r.y>t.y)},e.pathIntersection=function(t,e){return d(t,e)},e.pathIntersectionNumber=function(t,e){return d(t,e,1)},e.isPointInsidePath=function(t,r,i){var n=e.pathBBox(t);return e.isPointInsideBBox(n,r,i)&&d(t,[["M",r,i],["H",n.x2+10]],1)%2==1},e._removedFactory=function(e){return function(){t("raphael.log",null,"Raphaël: you are calling to method “"+e+"” of removed object",e)}};var Ot=e.pathBBox=function(t){var e=Vt(t);if(e.bbox)return r(e.bbox);if(!t)return{x:0,y:0,width:0,height:0,x2:0,y2:0};t=Qt(t);for(var i=0,n=0,a=[],s=[],o,l=0,h=t.length;l<h;l++)if(o=t[l],"M"==o[0])i=o[1],n=o[2],a.push(i),s.push(n);else{var u=Zt(i,n,o[1],o[2],o[3],o[4],o[5],o[6]);a=a[P](u.min.x,u.max.x),s=s[P](u.min.y,u.max.y),i=o[5],n=o[6]}var c=G[z](0,a),f=G[z](0,s),p=W[z](0,a),d=W[z](0,s),g=p-c,v=d-f,x={x:c,y:f,x2:p,y2:d,width:g,height:v,cx:c+g/2,cy:f+v/2};return e.bbox=r(x),x},Yt=function(t){var i=r(t);return i.toString=e._path2string,i},Wt=e._pathToRelative=function(t){var r=Vt(t);if(r.rel)return Yt(r.rel);e.is(t,Q)&&e.is(t&&t[0],Q)||(t=e.parsePathString(t));var i=[],n=0,a=0,s=0,o=0,l=0;"M"==t[0][0]&&(n=t[0][1],a=t[0][2],s=n,o=a,l++,i.push(["M",n,a]));for(var h=l,u=t.length;h<u;h++){var c=i[h]=[],f=t[h];if(f[0]!=O.call(f[0]))switch(c[0]=O.call(f[0]),c[0]){case"a":c[1]=f[1],c[2]=f[2],c[3]=f[3],c[4]=f[4],c[5]=f[5],c[6]=+(f[6]-n).toFixed(3),c[7]=+(f[7]-a).toFixed(3);break;case"v":c[1]=+(f[1]-a).toFixed(3);break;case"m":s=f[1],o=f[2];default:for(var p=1,d=f.length;p<d;p++)c[p]=+(f[p]-(p%2?n:a)).toFixed(3)}else{c=i[h]=[],"m"==f[0]&&(s=f[1]+n,o=f[2]+a);for(var g=0,v=f.length;g<v;g++)i[h][g]=f[g]}var x=i[h].length;switch(i[h][0]){case"z":n=s,a=o;break;case"h":n+=+i[h][x-1];break;case"v":a+=+i[h][x-1];break;default:n+=+i[h][x-2],a+=+i[h][x-1]}}return i.toString=e._path2string,r.rel=Yt(i),i},Gt=e._pathToAbsolute=function(t){var r=Vt(t);if(r.abs)return Yt(r.abs);if(e.is(t,Q)&&e.is(t&&t[0],Q)||(t=e.parsePathString(t)),!t||!t.length)return[["M",0,0]];var i=[],n=0,a=0,o=0,l=0,h=0;"M"==t[0][0]&&(n=+t[0][1],a=+t[0][2],o=n,l=a,h++,i[0]=["M",n,a]);for(var u=3==t.length&&"M"==t[0][0]&&"R"==t[1][0].toUpperCase()&&"Z"==t[2][0].toUpperCase(),c,f,p=h,d=t.length;p<d;p++){if(i.push(c=[]),f=t[p],f[0]!=ct.call(f[0]))switch(c[0]=ct.call(f[0]),c[0]){case"A":c[1]=f[1],c[2]=f[2],c[3]=f[3],c[4]=f[4],c[5]=f[5],c[6]=+(f[6]+n),c[7]=+(f[7]+a);break;case"V":c[1]=+f[1]+a;break;case"H":c[1]=+f[1]+n;break;case"R":for(var g=[n,a][P](f.slice(1)),v=2,x=g.length;v<x;v++)g[v]=+g[v]+n,g[++v]=+g[v]+a;i.pop(),i=i[P](s(g,u));break;case"M":o=+f[1]+n,l=+f[2]+a;default:for(v=1,x=f.length;v<x;v++)c[v]=+f[v]+(v%2?n:a)}else if("R"==f[0])g=[n,a][P](f.slice(1)),i.pop(),i=i[P](s(g,u)),c=["R"][P](f.slice(-2));else for(var y=0,m=f.length;y<m;y++)c[y]=f[y];switch(c[0]){case"Z":n=o,a=l;break;case"H":n=c[1];break;case"V":a=c[1];break;case"M":o=c[c.length-2],l=c[c.length-1];default:n=c[c.length-2],a=c[c.length-1]}}return i.toString=e._path2string,r.abs=Yt(i),i},Ht=function(t,e,r,i){return[t,e,r,i,r,i]},Xt=function(t,e,r,i,n,a){var s=1/3,o=2/3;return[s*t+o*r,s*e+o*i,s*n+o*r,s*a+o*i,n,a]},Ut=function(t,e,r,i,a,s,o,l,h,u){var c=120*U/180,f=U/180*(+a||0),p=[],d,g=n(function(t,e,r){var i=t*Y.cos(r)-e*Y.sin(r),n=t*Y.sin(r)+e*Y.cos(r);return{x:i,y:n}});if(u)S=u[0],A=u[1],B=u[2],C=u[3];else{d=g(t,e,-f),t=d.x,e=d.y,d=g(l,h,-f),l=d.x,h=d.y;var v=Y.cos(U/180*a),x=Y.sin(U/180*a),y=(t-l)/2,m=(e-h)/2,b=y*y/(r*r)+m*m/(i*i);b>1&&(b=Y.sqrt(b),r=b*r,i=b*i);var _=r*r,w=i*i,k=(s==o?-1:1)*Y.sqrt(H((_*w-_*m*m-w*y*y)/(_*m*m+w*y*y))),B=k*r*m/i+(t+l)/2,C=k*-i*y/r+(e+h)/2,S=Y.asin(((e-C)/i).toFixed(9)),A=Y.asin(((h-C)/i).toFixed(9));S=t<B?U-S:S,A=l<B?U-A:A,S<0&&(S=2*U+S),A<0&&(A=2*U+A),o&&S>A&&(S-=2*U),!o&&A>S&&(A-=2*U)}var T=A-S;if(H(T)>c){var E=A,M=l,N=h;A=S+c*(o&&A>S?1:-1),l=B+r*Y.cos(A),h=C+i*Y.sin(A),p=Ut(l,h,r,i,a,0,o,M,N,[A,E,B,C])}T=A-S;var L=Y.cos(S),z=Y.sin(S),F=Y.cos(A),R=Y.sin(A),j=Y.tan(T/4),I=4/3*r*j,D=4/3*i*j,V=[t,e],O=[t+I*z,e-D*L],W=[l+I*R,h-D*F],G=[l,h];if(O[0]=2*V[0]-O[0],O[1]=2*V[1]-O[1],u)return[O,W,G][P](p);p=[O,W,G][P](p).join()[q](",");for(var X=[],$=0,Z=p.length;$<Z;$++)X[$]=$%2?g(p[$-1],p[$],f).y:g(p[$],p[$+1],f).x;return X},$t=function(t,e,r,i,n,a,s,o,l){var h=1-l;return{x:X(h,3)*t+3*X(h,2)*l*r+3*h*l*l*n+X(l,3)*s,y:X(h,3)*e+3*X(h,2)*l*i+3*h*l*l*a+X(l,3)*o}},Zt=n(function(t,e,r,i,n,a,s,o){var l=n-2*r+t-(s-2*n+r),h=2*(r-t)-2*(n-r),u=t-r,c=(-h+Y.sqrt(h*h-4*l*u))/2/l,f=(-h-Y.sqrt(h*h-4*l*u))/2/l,p=[e,o],d=[t,s],g;return H(c)>"1e12"&&(c=.5),H(f)>"1e12"&&(f=.5),c>0&&c<1&&(g=$t(t,e,r,i,n,a,s,o,c),d.push(g.x),p.push(g.y)),f>0&&f<1&&(g=$t(t,e,r,i,n,a,s,o,f),d.push(g.x),p.push(g.y)),l=a-2*i+e-(o-2*a+i),h=2*(i-e)-2*(a-i),u=e-i,c=(-h+Y.sqrt(h*h-4*l*u))/2/l,f=(-h-Y.sqrt(h*h-4*l*u))/2/l,H(c)>"1e12"&&(c=.5),H(f)>"1e12"&&(f=.5),c>0&&c<1&&(g=$t(t,e,r,i,n,a,s,o,c),d.push(g.x),p.push(g.y)),f>0&&f<1&&(g=$t(t,e,r,i,n,a,s,o,f),d.push(g.x),p.push(g.y)),{min:{x:G[z](0,d),y:G[z](0,p)},max:{x:W[z](0,d),y:W[z](0,p)}}}),Qt=e._path2curve=n(function(t,e){var r=!e&&Vt(t);if(!e&&r.curve)return Yt(r.curve);for(var i=Gt(t),n=e&&Gt(e),a={x:0,y:0,bx:0,by:0,X:0,Y:0,qx:null,qy:null},s={x:0,y:0,bx:0,by:0,X:0,Y:0,qx:null,qy:null},o=(function(t,e,r){var i,n,a={T:1,Q:1};if(!t)return["C",e.x,e.y,e.x,e.y,e.x,e.y];switch(!(t[0]in a)&&(e.qx=e.qy=null),t[0]){case"M":e.X=t[1],e.Y=t[2];break;case"A":t=["C"][P](Ut[z](0,[e.x,e.y][P](t.slice(1))));break;case"S":"C"==r||"S"==r?(i=2*e.x-e.bx,n=2*e.y-e.by):(i=e.x,n=e.y),t=["C",i,n][P](t.slice(1));break;case"T":"Q"==r||"T"==r?(e.qx=2*e.x-e.qx,e.qy=2*e.y-e.qy):(e.qx=e.x,e.qy=e.y),t=["C"][P](Xt(e.x,e.y,e.qx,e.qy,t[1],t[2]));break;case"Q":e.qx=t[1],e.qy=t[2],t=["C"][P](Xt(e.x,e.y,t[1],t[2],t[3],t[4]));break;case"L":t=["C"][P](Ht(e.x,e.y,t[1],t[2]));break;case"H":t=["C"][P](Ht(e.x,e.y,t[1],e.y));break;case"V":t=["C"][P](Ht(e.x,e.y,e.x,t[1]));break;case"Z":t=["C"][P](Ht(e.x,e.y,e.X,e.Y))}return t}),l=function(t,e){if(t[e].length>7){t[e].shift();for(var r=t[e];r.length;)u[e]="A",n&&(c[e]="A"),t.splice(e++,0,["C"][P](r.splice(0,6)));t.splice(e,1),g=W(i.length,n&&n.length||0)}},h=function(t,e,r,a,s){t&&e&&"M"==t[s][0]&&"M"!=e[s][0]&&(e.splice(s,0,["M",a.x,a.y]),r.bx=0,r.by=0,r.x=t[s][1],r.y=t[s][2],g=W(i.length,n&&n.length||0))},u=[],c=[],f="",p="",d=0,g=W(i.length,n&&n.length||0);d<g;d++){i[d]&&(f=i[d][0]),"C"!=f&&(u[d]=f,d&&(p=u[d-1])),i[d]=o(i[d],a,p),"A"!=u[d]&&"C"==f&&(u[d]="C"),l(i,d),n&&(n[d]&&(f=n[d][0]),"C"!=f&&(c[d]=f,d&&(p=c[d-1])),n[d]=o(n[d],s,p),"A"!=c[d]&&"C"==f&&(c[d]="C"),l(n,d)),h(i,n,a,s,d),h(n,i,s,a,d);var v=i[d],x=n&&n[d],y=v.length,m=n&&x.length;a.x=v[y-2],a.y=v[y-1],a.bx=ht(v[y-4])||a.x,a.by=ht(v[y-3])||a.y,s.bx=n&&(ht(x[m-4])||s.x),s.by=n&&(ht(x[m-3])||s.y),s.x=n&&x[m-2],s.y=n&&x[m-1]}return n||(r.curve=Yt(i)),n?[i,n]:i},null,Yt),Jt=e._parseDots=n(function(t){for(var r=[],i=0,n=t.length;i<n;i++){var a={},s=t[i].match(/^([^:]*):?([\d\.]*)/);if(a.color=e.getRGB(s[1]),a.color.error)return null;a.opacity=a.color.opacity,a.color=a.color.hex,s[2]&&(a.offset=s[2]+"%"),r.push(a)}for(i=1,n=r.length-1;i<n;i++)if(!r[i].offset){for(var o=ht(r[i-1].offset||0),l=0,h=i+1;h<n;h++)if(r[h].offset){l=r[h].offset;break}l||(l=100,h=n),l=ht(l);for(var u=(l-o)/(h-i+1);i<h;i++)o+=u,r[i].offset=o+"%"}return r}),Kt=e._tear=function(t,e){t==e.top&&(e.top=t.prev),t==e.bottom&&(e.bottom=t.next),t.next&&(t.next.prev=t.prev),t.prev&&(t.prev.next=t.next)},te=e._tofront=function(t,e){e.top!==t&&(Kt(t,e),t.next=null,t.prev=e.top,e.top.next=t,e.top=t)},ee=e._toback=function(t,e){e.bottom!==t&&(Kt(t,e),t.next=e.bottom,t.prev=null,e.bottom.prev=t,e.bottom=t)},re=e._insertafter=function(t,e,r){Kt(t,r),e==r.top&&(r.top=t),e.next&&(e.next.prev=t),t.next=e.next,t.prev=e,e.next=t},ie=e._insertbefore=function(t,e,r){Kt(t,r),e==r.bottom&&(r.bottom=t),e.prev&&(e.prev.next=t),t.prev=e.prev,e.prev=t,t.next=e},ne=e.toMatrix=function(t,e){var r=Ot(t),i={_:{transform:R},getBBox:function(){return r}};return se(i,e),i.matrix},ae=e.transformPath=function(t,e){return Mt(t,ne(t,e))},se=e._extractTransform=function(t,r){if(null==r)return t._.transform;r=I(r).replace(/\.{3}|\u2026/g,t._.transform||R);var i=e.parseTransformString(r),n=0,a=0,s=0,o=1,l=1,h=t._,u=new g;if(h.transform=i||[],i)for(var c=0,f=i.length;c<f;c++){var p=i[c],d=p.length,v=I(p[0]).toLowerCase(),x=p[0]!=v,y=x?u.invert():0,m,b,_,w,k;"t"==v&&3==d?x?(m=y.x(0,0),b=y.y(0,0),_=y.x(p[1],p[2]),w=y.y(p[1],p[2]),u.translate(_-m,w-b)):u.translate(p[1],p[2]):"r"==v?2==d?(k=k||t.getBBox(1),u.rotate(p[1],k.x+k.width/2,k.y+k.height/2),n+=p[1]):4==d&&(x?(_=y.x(p[2],p[3]),w=y.y(p[2],p[3]),u.rotate(p[1],_,w)):u.rotate(p[1],p[2],p[3]),n+=p[1]):"s"==v?2==d||3==d?(k=k||t.getBBox(1),u.scale(p[1],p[d-1],k.x+k.width/2,k.y+k.height/2),o*=p[1],l*=p[d-1]):5==d&&(x?(_=y.x(p[3],p[4]),w=y.y(p[3],p[4]),u.scale(p[1],p[2],_,w)):u.scale(p[1],p[2],p[3],p[4]),o*=p[1],l*=p[2]):"m"==v&&7==d&&u.add(p[1],p[2],p[3],p[4],p[5],p[6]),h.dirtyT=1,t.matrix=u}t.matrix=u,h.sx=o,h.sy=l,h.deg=n,h.dx=a=u.e,h.dy=s=u.f,1==o&&1==l&&!n&&h.bbox?(h.bbox.x+=+a,h.bbox.y+=+s):h.dirtyT=1},oe=function(t){var e=t[0];switch(e.toLowerCase()){case"t":return[e,0,0];case"m":return[e,1,0,0,1,0,0];case"r":return 4==t.length?[e,0,t[2],t[3]]:[e,0];case"s":return 5==t.length?[e,1,1,t[3],t[4]]:3==t.length?[e,1,1]:[e,1]}},le=e._equaliseTransform=function(t,r){r=I(r).replace(/\.{3}|\u2026/g,t),t=e.parseTransformString(t)||[],r=e.parseTransformString(r)||[];for(var i=W(t.length,r.length),n=[],a=[],s=0,o,l,h,u;s<i;s++){if(h=t[s]||oe(r[s]),u=r[s]||oe(h),h[0]!=u[0]||"r"==h[0].toLowerCase()&&(h[2]!=u[2]||h[3]!=u[3])||"s"==h[0].toLowerCase()&&(h[3]!=u[3]||h[4]!=u[4]))return;for(n[s]=[],a[s]=[],o=0,l=W(h.length,u.length);o<l;o++)o in h&&(n[s][o]=h[o]),o in u&&(a[s][o]=u[o])}return{from:n,to:a}};e._getContainer=function(t,r,i,n){var a;if(a=null!=n||e.is(t,"object")?t:T.doc.getElementById(t),null!=a)return a.tagName?null==r?{container:a,width:a.style.pixelWidth||a.offsetWidth,height:a.style.pixelHeight||a.offsetHeight}:{container:a,width:r,height:i}:{container:1,x:t,y:r,width:i,height:n}},e.pathToRelative=Wt,e._engine={},e.path2curve=Qt,e.matrix=function(t,e,r,i,n,a){return new g(t,e,r,i,n,a)},function(t){function r(t){return t[0]*t[0]+t[1]*t[1]}function i(t){var e=Y.sqrt(r(t));t[0]&&(t[0]/=e),t[1]&&(t[1]/=e)}t.add=function(t,e,r,i,n,a){var s=[[],[],[]],o=[[this.a,this.c,this.e],[this.b,this.d,this.f],[0,0,1]],l=[[t,r,n],[e,i,a],[0,0,1]],h,u,c,f;for(t&&t instanceof g&&(l=[[t.a,t.c,t.e],[t.b,t.d,t.f],[0,0,1]]),h=0;h<3;h++)for(u=0;u<3;u++){for(f=0,c=0;c<3;c++)f+=o[h][c]*l[c][u];s[h][u]=f}this.a=s[0][0],this.b=s[1][0],this.c=s[0][1],this.d=s[1][1],this.e=s[0][2],this.f=s[1][2]},t.invert=function(){var t=this,e=t.a*t.d-t.b*t.c;return new g(t.d/e,-t.b/e,-t.c/e,t.a/e,(t.c*t.f-t.d*t.e)/e,(t.b*t.e-t.a*t.f)/e)},t.clone=function(){return new g(this.a,this.b,this.c,this.d,this.e,this.f)},t.translate=function(t,e){ -this.add(1,0,0,1,t,e)},t.scale=function(t,e,r,i){null==e&&(e=t),(r||i)&&this.add(1,0,0,1,r,i),this.add(t,0,0,e,0,0),(r||i)&&this.add(1,0,0,1,-r,-i)},t.rotate=function(t,r,i){t=e.rad(t),r=r||0,i=i||0;var n=+Y.cos(t).toFixed(9),a=+Y.sin(t).toFixed(9);this.add(n,a,-a,n,r,i),this.add(1,0,0,1,-r,-i)},t.x=function(t,e){return t*this.a+e*this.c+this.e},t.y=function(t,e){return t*this.b+e*this.d+this.f},t.get=function(t){return+this[I.fromCharCode(97+t)].toFixed(4)},t.toString=function(){return e.svg?"matrix("+[this.get(0),this.get(1),this.get(2),this.get(3),this.get(4),this.get(5)].join()+")":[this.get(0),this.get(2),this.get(1),this.get(3),0,0].join()},t.toFilter=function(){return"progid:DXImageTransform.Microsoft.Matrix(M11="+this.get(0)+", M12="+this.get(2)+", M21="+this.get(1)+", M22="+this.get(3)+", Dx="+this.get(4)+", Dy="+this.get(5)+", sizingmethod='auto expand')"},t.offset=function(){return[this.e.toFixed(4),this.f.toFixed(4)]},t.split=function(){var t={};t.dx=this.e,t.dy=this.f;var n=[[this.a,this.c],[this.b,this.d]];t.scalex=Y.sqrt(r(n[0])),i(n[0]),t.shear=n[0][0]*n[1][0]+n[0][1]*n[1][1],n[1]=[n[1][0]-n[0][0]*t.shear,n[1][1]-n[0][1]*t.shear],t.scaley=Y.sqrt(r(n[1])),i(n[1]),t.shear/=t.scaley;var a=-n[0][1],s=n[1][1];return s<0?(t.rotate=e.deg(Y.acos(s)),a<0&&(t.rotate=360-t.rotate)):t.rotate=e.deg(Y.asin(a)),t.isSimple=!(+t.shear.toFixed(9)||t.scalex.toFixed(9)!=t.scaley.toFixed(9)&&t.rotate),t.isSuperSimple=!+t.shear.toFixed(9)&&t.scalex.toFixed(9)==t.scaley.toFixed(9)&&!t.rotate,t.noRotation=!+t.shear.toFixed(9)&&!t.rotate,t},t.toTransformString=function(t){var e=t||this[q]();return e.isSimple?(e.scalex=+e.scalex.toFixed(4),e.scaley=+e.scaley.toFixed(4),e.rotate=+e.rotate.toFixed(4),(e.dx||e.dy?"t"+[e.dx,e.dy]:R)+(1!=e.scalex||1!=e.scaley?"s"+[e.scalex,e.scaley,0,0]:R)+(e.rotate?"r"+[e.rotate,0,0]:R)):"m"+[this.get(0),this.get(1),this.get(2),this.get(3),this.get(4),this.get(5)]}}(g.prototype);for(var he=function(){this.returnValue=!1},ue=function(){return this.originalEvent.preventDefault()},ce=function(){this.cancelBubble=!0},fe=function(){return this.originalEvent.stopPropagation()},pe=function(t){var e=T.doc.documentElement.scrollTop||T.doc.body.scrollTop,r=T.doc.documentElement.scrollLeft||T.doc.body.scrollLeft;return{x:t.clientX+r,y:t.clientY+e}},de=function(){return T.doc.addEventListener?function(t,e,r,i){var n=function(t){var e=pe(t);return r.call(i,t,e.x,e.y)};if(t.addEventListener(e,n,!1),F&&V[e]){var a=function(e){for(var n=pe(e),a=e,s=0,o=e.targetTouches&&e.targetTouches.length;s<o;s++)if(e.targetTouches[s].target==t){e=e.targetTouches[s],e.originalEvent=a,e.preventDefault=ue,e.stopPropagation=fe;break}return r.call(i,e,n.x,n.y)};t.addEventListener(V[e],a,!1)}return function(){return t.removeEventListener(e,n,!1),F&&V[e]&&t.removeEventListener(V[e],a,!1),!0}}:T.doc.attachEvent?function(t,e,r,i){var n=function(t){t=t||T.win.event;var e=T.doc.documentElement.scrollTop||T.doc.body.scrollTop,n=T.doc.documentElement.scrollLeft||T.doc.body.scrollLeft,a=t.clientX+n,s=t.clientY+e;return t.preventDefault=t.preventDefault||he,t.stopPropagation=t.stopPropagation||ce,r.call(i,t,a,s)};t.attachEvent("on"+e,n);var a=function(){return t.detachEvent("on"+e,n),!0};return a}:void 0}(),ge=[],ve=function(e){for(var r=e.clientX,i=e.clientY,n=T.doc.documentElement.scrollTop||T.doc.body.scrollTop,a=T.doc.documentElement.scrollLeft||T.doc.body.scrollLeft,s,o=ge.length;o--;){if(s=ge[o],F&&e.touches){for(var l=e.touches.length,h;l--;)if(h=e.touches[l],h.identifier==s.el._drag.id){r=h.clientX,i=h.clientY,(e.originalEvent?e.originalEvent:e).preventDefault();break}}else e.preventDefault();var u=s.el.node,c,f=u.nextSibling,p=u.parentNode,d=u.style.display;T.win.opera&&p.removeChild(u),u.style.display="none",c=s.el.paper.getElementByPoint(r,i),u.style.display=d,T.win.opera&&(f?p.insertBefore(u,f):p.appendChild(u)),c&&t("raphael.drag.over."+s.el.id,s.el,c),r+=a,i+=n,t("raphael.drag.move."+s.el.id,s.move_scope||s.el,r-s.el._drag.x,i-s.el._drag.y,r,i,e)}},xe=function(r){e.unmousemove(ve).unmouseup(xe);for(var i=ge.length,n;i--;)n=ge[i],n.el._drag={},t("raphael.drag.end."+n.el.id,n.end_scope||n.start_scope||n.move_scope||n.el,r);ge=[]},ye=e.el={},me=D.length;me--;)!function(t){e[t]=ye[t]=function(r,i){return e.is(r,"function")&&(this.events=this.events||[],this.events.push({name:t,f:r,unbind:de(this.shape||this.node||T.doc,t,r,i||this)})),this},e["un"+t]=ye["un"+t]=function(r){for(var i=this.events||[],n=i.length;n--;)i[n].name!=t||!e.is(r,"undefined")&&i[n].f!=r||(i[n].unbind(),i.splice(n,1),!i.length&&delete this.events);return this}}(D[me]);ye.data=function(r,i){var n=wt[this.id]=wt[this.id]||{};if(0==arguments.length)return n;if(1==arguments.length){if(e.is(r,"object")){for(var a in r)r[A](a)&&this.data(a,r[a]);return this}return t("raphael.data.get."+this.id,this,n[r],r),n[r]}return n[r]=i,t("raphael.data.set."+this.id,this,i,r),this},ye.removeData=function(t){return null==t?wt[this.id]={}:wt[this.id]&&delete wt[this.id][t],this},ye.getData=function(){return r(wt[this.id]||{})},ye.hover=function(t,e,r,i){return this.mouseover(t,r).mouseout(e,i||r)},ye.unhover=function(t,e){return this.unmouseover(t).unmouseout(e)};var be=[];ye.drag=function(r,i,n,a,s,o){function l(l){(l.originalEvent||l).preventDefault();var h=l.clientX,u=l.clientY,c=T.doc.documentElement.scrollTop||T.doc.body.scrollTop,f=T.doc.documentElement.scrollLeft||T.doc.body.scrollLeft;if(this._drag.id=l.identifier,F&&l.touches)for(var p=l.touches.length,d;p--;)if(d=l.touches[p],this._drag.id=d.identifier,d.identifier==this._drag.id){h=d.clientX,u=d.clientY;break}this._drag.x=h+f,this._drag.y=u+c,!ge.length&&e.mousemove(ve).mouseup(xe),ge.push({el:this,move_scope:a,start_scope:s,end_scope:o}),i&&t.on("raphael.drag.start."+this.id,i),r&&t.on("raphael.drag.move."+this.id,r),n&&t.on("raphael.drag.end."+this.id,n),t("raphael.drag.start."+this.id,s||a||this,l.clientX+f,l.clientY+c,l)}return this._drag={},be.push({el:this,start:l}),this.mousedown(l),this},ye.onDragOver=function(e){e?t.on("raphael.drag.over."+this.id,e):t.unbind("raphael.drag.over."+this.id)},ye.undrag=function(){for(var r=be.length;r--;)be[r].el==this&&(this.unmousedown(be[r].start),be.splice(r,1),t.unbind("raphael.drag.*."+this.id));!be.length&&e.unmousemove(ve).unmouseup(xe),ge=[]},N.circle=function(t,r,i){var n=e._engine.circle(this,t||0,r||0,i||0);return this.__set__&&this.__set__.push(n),n},N.rect=function(t,r,i,n,a){var s=e._engine.rect(this,t||0,r||0,i||0,n||0,a||0);return this.__set__&&this.__set__.push(s),s},N.ellipse=function(t,r,i,n){var a=e._engine.ellipse(this,t||0,r||0,i||0,n||0);return this.__set__&&this.__set__.push(a),a},N.path=function(t){t&&!e.is(t,Z)&&!e.is(t[0],Q)&&(t+=R);var r=e._engine.path(e.format[z](e,arguments),this);return this.__set__&&this.__set__.push(r),r},N.image=function(t,r,i,n,a){var s=e._engine.image(this,t||"about:blank",r||0,i||0,n||0,a||0);return this.__set__&&this.__set__.push(s),s},N.text=function(t,r,i){var n=e._engine.text(this,t||0,r||0,I(i));return this.__set__&&this.__set__.push(n),n},N.set=function(t){!e.is(t,"array")&&(t=Array.prototype.splice.call(arguments,0,arguments.length));var r=new ze(t);return this.__set__&&this.__set__.push(r),r.paper=this,r.type="set",r},N.setStart=function(t){this.__set__=t||this.set()},N.setFinish=function(t){var e=this.__set__;return delete this.__set__,e},N.getSize=function(){var t=this.canvas.parentNode;return{width:t.offsetWidth,height:t.offsetHeight}},N.setSize=function(t,r){return e._engine.setSize.call(this,t,r)},N.setViewBox=function(t,r,i,n,a){return e._engine.setViewBox.call(this,t,r,i,n,a)},N.top=N.bottom=null,N.raphael=e;var _e=function(t){var e=t.getBoundingClientRect(),r=t.ownerDocument,i=r.body,n=r.documentElement,a=n.clientTop||i.clientTop||0,s=n.clientLeft||i.clientLeft||0,o=e.top+(T.win.pageYOffset||n.scrollTop||i.scrollTop)-a,l=e.left+(T.win.pageXOffset||n.scrollLeft||i.scrollLeft)-s;return{y:o,x:l}};N.getElementByPoint=function(t,e){var r=this,i=r.canvas,n=T.doc.elementFromPoint(t,e);if(T.win.opera&&"svg"==n.tagName){var a=_e(i),s=i.createSVGRect();s.x=t-a.x,s.y=e-a.y,s.width=s.height=1;var o=i.getIntersectionList(s,null);o.length&&(n=o[o.length-1])}if(!n)return null;for(;n.parentNode&&n!=i.parentNode&&!n.raphael;)n=n.parentNode;return n==r.canvas.parentNode&&(n=i),n=n&&n.raphael?r.getById(n.raphaelid):null},N.getElementsByBBox=function(t){var r=this.set();return this.forEach(function(i){e.isBBoxIntersect(i.getBBox(),t)&&r.push(i)}),r},N.getById=function(t){for(var e=this.bottom;e;){if(e.id==t)return e;e=e.next}return null},N.forEach=function(t,e){for(var r=this.bottom;r;){if(t.call(e,r)===!1)return this;r=r.next}return this},N.getElementsByPoint=function(t,e){var r=this.set();return this.forEach(function(i){i.isPointInside(t,e)&&r.push(i)}),r},ye.isPointInside=function(t,r){var i=this.realPath=Et[this.type](this);return this.attr("transform")&&this.attr("transform").length&&(i=e.transformPath(i,this.attr("transform"))),e.isPointInsidePath(i,t,r)},ye.getBBox=function(t){if(this.removed)return{};var e=this._;return t?(!e.dirty&&e.bboxwt||(this.realPath=Et[this.type](this),e.bboxwt=Ot(this.realPath),e.bboxwt.toString=x,e.dirty=0),e.bboxwt):((e.dirty||e.dirtyT||!e.bbox)&&(!e.dirty&&this.realPath||(e.bboxwt=0,this.realPath=Et[this.type](this)),e.bbox=Ot(Mt(this.realPath,this.matrix)),e.bbox.toString=x,e.dirty=e.dirtyT=0),e.bbox)},ye.clone=function(){if(this.removed)return null;var t=this.paper[this.type]().attr(this.attr());return this.__set__&&this.__set__.push(t),t},ye.glow=function(t){if("text"==this.type)return null;t=t||{};var e={width:(t.width||10)+(+this.attr("stroke-width")||1),fill:t.fill||!1,opacity:null==t.opacity?.5:t.opacity,offsetx:t.offsetx||0,offsety:t.offsety||0,color:t.color||"#000"},r=e.width/2,i=this.paper,n=i.set(),a=this.realPath||Et[this.type](this);a=this.matrix?Mt(a,this.matrix):a;for(var s=1;s<r+1;s++)n.push(i.path(a).attr({stroke:e.color,fill:e.fill?e.color:"none","stroke-linejoin":"round","stroke-linecap":"round","stroke-width":+(e.width/r*s).toFixed(3),opacity:+(e.opacity/r).toFixed(3)}));return n.insertBefore(this).translate(e.offsetx,e.offsety)};var we={},ke=function(t,r,i,n,a,s,o,u,c){return null==c?l(t,r,i,n,a,s,o,u):e.findDotsAtSegment(t,r,i,n,a,s,o,u,h(t,r,i,n,a,s,o,u,c))},Be=function(t,r){return function(i,n,a){i=Qt(i);for(var s,o,l,h,u="",c={},f,p=0,d=0,g=i.length;d<g;d++){if(l=i[d],"M"==l[0])s=+l[1],o=+l[2];else{if(h=ke(s,o,l[1],l[2],l[3],l[4],l[5],l[6]),p+h>n){if(r&&!c.start){if(f=ke(s,o,l[1],l[2],l[3],l[4],l[5],l[6],n-p),u+=["C"+f.start.x,f.start.y,f.m.x,f.m.y,f.x,f.y],a)return u;c.start=u,u=["M"+f.x,f.y+"C"+f.n.x,f.n.y,f.end.x,f.end.y,l[5],l[6]].join(),p+=h,s=+l[5],o=+l[6];continue}if(!t&&!r)return f=ke(s,o,l[1],l[2],l[3],l[4],l[5],l[6],n-p),{x:f.x,y:f.y,alpha:f.alpha}}p+=h,s=+l[5],o=+l[6]}u+=l.shift()+l}return c.end=u,f=t?p:r?c:e.findDotsAtSegment(s,o,l[0],l[1],l[2],l[3],l[4],l[5],1),f.alpha&&(f={x:f.x,y:f.y,alpha:f.alpha}),f}},Ce=Be(1),Se=Be(),Ae=Be(0,1);e.getTotalLength=Ce,e.getPointAtLength=Se,e.getSubpath=function(t,e,r){if(this.getTotalLength(t)-r<1e-6)return Ae(t,e).end;var i=Ae(t,r,1);return e?Ae(i,e).end:i},ye.getTotalLength=function(){var t=this.getPath();if(t)return this.node.getTotalLength?this.node.getTotalLength():Ce(t)},ye.getPointAtLength=function(t){var e=this.getPath();if(e)return Se(e,t)},ye.getPath=function(){var t,r=e._getPath[this.type];if("text"!=this.type&&"set"!=this.type)return r&&(t=r(this)),t},ye.getSubpath=function(t,r){var i=this.getPath();if(i)return e.getSubpath(i,t,r)};var Te=e.easing_formulas={linear:function(t){return t},"<":function(t){return X(t,1.7)},">":function(t){return X(t,.48)},"<>":function(t){var e=.48-t/1.04,r=Y.sqrt(.1734+e*e),i=r-e,n=X(H(i),1/3)*(i<0?-1:1),a=-r-e,s=X(H(a),1/3)*(a<0?-1:1),o=n+s+.5;return 3*(1-o)*o*o+o*o*o},backIn:function(t){var e=1.70158;return t*t*((e+1)*t-e)},backOut:function(t){t-=1;var e=1.70158;return t*t*((e+1)*t+e)+1},elastic:function(t){return t==!!t?t:X(2,-10*t)*Y.sin((t-.075)*(2*U)/.3)+1},bounce:function(t){var e=7.5625,r=2.75,i;return t<1/r?i=e*t*t:t<2/r?(t-=1.5/r,i=e*t*t+.75):t<2.5/r?(t-=2.25/r,i=e*t*t+.9375):(t-=2.625/r,i=e*t*t+.984375),i}};Te.easeIn=Te["ease-in"]=Te["<"],Te.easeOut=Te["ease-out"]=Te[">"],Te.easeInOut=Te["ease-in-out"]=Te["<>"],Te["back-in"]=Te.backIn,Te["back-out"]=Te.backOut;var Ee=[],Me=window.requestAnimationFrame||window.webkitRequestAnimationFrame||window.mozRequestAnimationFrame||window.oRequestAnimationFrame||window.msRequestAnimationFrame||function(t){setTimeout(t,16)},Ne=function(){for(var r=+new Date,i=0;i<Ee.length;i++){var n=Ee[i];if(!n.el.removed&&!n.paused){var a=r-n.start,s=n.ms,o=n.easing,l=n.from,h=n.diff,u=n.to,c=n.t,f=n.el,p={},d,g={},v;if(n.initstatus?(a=(n.initstatus*n.anim.top-n.prev)/(n.percent-n.prev)*s,n.status=n.initstatus,delete n.initstatus,n.stop&&Ee.splice(i--,1)):n.status=(n.prev+(n.percent-n.prev)*(a/s))/n.anim.top,!(a<0))if(a<s){var x=o(a/s);for(var y in l)if(l[A](y)){switch(pt[y]){case $:d=+l[y]+x*s*h[y];break;case"colour":d="rgb("+[Le(ot(l[y].r+x*s*h[y].r)),Le(ot(l[y].g+x*s*h[y].g)),Le(ot(l[y].b+x*s*h[y].b))].join(",")+")";break;case"path":d=[];for(var m=0,_=l[y].length;m<_;m++){d[m]=[l[y][m][0]];for(var w=1,k=l[y][m].length;w<k;w++)d[m][w]=+l[y][m][w]+x*s*h[y][m][w];d[m]=d[m].join(j)}d=d.join(j);break;case"transform":if(h[y].real)for(d=[],m=0,_=l[y].length;m<_;m++)for(d[m]=[l[y][m][0]],w=1,k=l[y][m].length;w<k;w++)d[m][w]=l[y][m][w]+x*s*h[y][m][w];else{var B=function(t){return+l[y][t]+x*s*h[y][t]};d=[["m",B(0),B(1),B(2),B(3),B(4),B(5)]]}break;case"csv":if("clip-rect"==y)for(d=[],m=4;m--;)d[m]=+l[y][m]+x*s*h[y][m];break;default:var C=[][P](l[y]);for(d=[],m=f.paper.customAttributes[y].length;m--;)d[m]=+C[m]+x*s*h[y][m]}p[y]=d}f.attr(p),function(e,r,i){setTimeout(function(){t("raphael.anim.frame."+e,r,i)})}(f.id,f,n.anim)}else{if(function(r,i,n){setTimeout(function(){t("raphael.anim.frame."+i.id,i,n),t("raphael.anim.finish."+i.id,i,n),e.is(r,"function")&&r.call(i)})}(n.callback,f,n.anim),f.attr(u),Ee.splice(i--,1),n.repeat>1&&!n.next){for(v in u)u[A](v)&&(g[v]=n.totalOrigin[v]);n.el.attr(g),b(n.anim,n.el,n.anim.percents[0],null,n.totalOrigin,n.repeat-1)}n.next&&!n.stop&&b(n.anim,n.el,n.next,null,n.totalOrigin,n.repeat)}}}Ee.length&&Me(Ne)},Le=function(t){return t>255?255:t<0?0:t};ye.animateWith=function(t,r,i,n,a,s){var o=this;if(o.removed)return s&&s.call(o),o;var l=i instanceof m?i:e.animation(i,n,a,s),h,u;b(l,o,l.percents[0],null,o.attr());for(var c=0,f=Ee.length;c<f;c++)if(Ee[c].anim==r&&Ee[c].el==t){Ee[f-1].start=Ee[c].start;break}return o},ye.onAnimation=function(e){return e?t.on("raphael.anim.frame."+this.id,e):t.unbind("raphael.anim.frame."+this.id),this},m.prototype.delay=function(t){var e=new m(this.anim,this.ms);return e.times=this.times,e.del=+t||0,e},m.prototype.repeat=function(t){var e=new m(this.anim,this.ms);return e.del=this.del,e.times=Y.floor(W(t,0))||1,e},e.animation=function(t,r,i,n){if(t instanceof m)return t;!e.is(i,"function")&&i||(n=n||i||null,i=null),t=Object(t),r=+r||0;var a={},s,o;for(o in t)t[A](o)&&ht(o)!=o&&ht(o)+"%"!=o&&(s=!0,a[o]=t[o]);if(s)return i&&(a.easing=i),n&&(a.callback=n),new m({100:a},r);if(n){var l=0;for(var h in t){var u=ut(h);t[A](h)&&u>l&&(l=u)}l+="%",!t[l].callback&&(t[l].callback=n)}return new m(t,r)},ye.animate=function(t,r,i,n){var a=this;if(a.removed)return n&&n.call(a),a;var s=t instanceof m?t:e.animation(t,r,i,n);return b(s,a,s.percents[0],null,a.attr()),a},ye.setTime=function(t,e){return t&&null!=e&&this.status(t,G(e,t.ms)/t.ms),this},ye.status=function(t,e){var r=[],i=0,n,a;if(null!=e)return b(t,this,-1,G(e,1)),this;for(n=Ee.length;i<n;i++)if(a=Ee[i],a.el.id==this.id&&(!t||a.anim==t)){if(t)return a.status;r.push({anim:a.anim,status:a.status})}return t?0:r},ye.pause=function(e){for(var r=0;r<Ee.length;r++)Ee[r].el.id!=this.id||e&&Ee[r].anim!=e||t("raphael.anim.pause."+this.id,this,Ee[r].anim)!==!1&&(Ee[r].paused=!0);return this},ye.resume=function(e){for(var r=0;r<Ee.length;r++)if(Ee[r].el.id==this.id&&(!e||Ee[r].anim==e)){var i=Ee[r];t("raphael.anim.resume."+this.id,this,i.anim)!==!1&&(delete i.paused,this.status(i.anim,i.status))}return this},ye.stop=function(e){for(var r=0;r<Ee.length;r++)Ee[r].el.id!=this.id||e&&Ee[r].anim!=e||t("raphael.anim.stop."+this.id,this,Ee[r].anim)!==!1&&Ee.splice(r--,1);return this},t.on("raphael.remove",_),t.on("raphael.clear",_),ye.toString=function(){return"Raphaël’s object"};var ze=function(t){if(this.items=[],this.length=0,this.type="set",t)for(var e=0,r=t.length;e<r;e++)!t[e]||t[e].constructor!=ye.constructor&&t[e].constructor!=ze||(this[this.items.length]=this.items[this.items.length]=t[e],this.length++)},Pe=ze.prototype;Pe.push=function(){for(var t,e,r=0,i=arguments.length;r<i;r++)t=arguments[r],!t||t.constructor!=ye.constructor&&t.constructor!=ze||(e=this.items.length,this[e]=this.items[e]=t,this.length++);return this},Pe.pop=function(){return this.length&&delete this[this.length--],this.items.pop()},Pe.forEach=function(t,e){for(var r=0,i=this.items.length;r<i;r++)if(t.call(e,this.items[r],r)===!1)return this;return this};for(var Fe in ye)ye[A](Fe)&&(Pe[Fe]=function(t){return function(){var e=arguments;return this.forEach(function(r){r[t][z](r,e)})}}(Fe));return Pe.attr=function(t,r){if(t&&e.is(t,Q)&&e.is(t[0],"object"))for(var i=0,n=t.length;i<n;i++)this.items[i].attr(t[i]);else for(var a=0,s=this.items.length;a<s;a++)this.items[a].attr(t,r);return this},Pe.clear=function(){for(;this.length;)this.pop()},Pe.splice=function(t,e,r){t=t<0?W(this.length+t,0):t,e=W(0,G(this.length-t,e));var i=[],n=[],a=[],s;for(s=2;s<arguments.length;s++)a.push(arguments[s]);for(s=0;s<e;s++)n.push(this[t+s]);for(;s<this.length-t;s++)i.push(this[t+s]);var o=a.length;for(s=0;s<o+i.length;s++)this.items[t+s]=this[t+s]=s<o?a[s]:i[s-o];for(s=this.items.length=this.length-=e-o;this[s];)delete this[s++];return new ze(n)},Pe.exclude=function(t){for(var e=0,r=this.length;e<r;e++)if(this[e]==t)return this.splice(e,1),!0},Pe.animate=function(t,r,i,n){(e.is(i,"function")||!i)&&(n=i||null);var a=this.items.length,s=a,o,l=this,h;if(!a)return this;n&&(h=function(){!--a&&n.call(l)}),i=e.is(i,Z)?i:h;var u=e.animation(t,r,i,h);for(o=this.items[--s].animate(u);s--;)this.items[s]&&!this.items[s].removed&&this.items[s].animateWith(o,u,u),this.items[s]&&!this.items[s].removed||a--;return this},Pe.insertAfter=function(t){for(var e=this.items.length;e--;)this.items[e].insertAfter(t);return this},Pe.getBBox=function(){for(var t=[],e=[],r=[],i=[],n=this.items.length;n--;)if(!this.items[n].removed){var a=this.items[n].getBBox();t.push(a.x),e.push(a.y),r.push(a.x+a.width),i.push(a.y+a.height)}return t=G[z](0,t),e=G[z](0,e),r=W[z](0,r),i=W[z](0,i),{x:t,y:e,x2:r,y2:i,width:r-t,height:i-e}},Pe.clone=function(t){t=this.paper.set();for(var e=0,r=this.items.length;e<r;e++)t.push(this.items[e].clone());return t},Pe.toString=function(){return"Raphaël‘s set"},Pe.glow=function(t){var e=this.paper.set();return this.forEach(function(r,i){var n=r.glow(t);null!=n&&n.forEach(function(t,r){e.push(t)})}),e},Pe.isPointInside=function(t,e){var r=!1;return this.forEach(function(i){if(i.isPointInside(t,e))return r=!0,!1}),r},e.registerFont=function(t){if(!t.face)return t;this.fonts=this.fonts||{};var e={w:t.w,face:{},glyphs:{}},r=t.face["font-family"];for(var i in t.face)t.face[A](i)&&(e.face[i]=t.face[i]);if(this.fonts[r]?this.fonts[r].push(e):this.fonts[r]=[e],!t.svg){e.face["units-per-em"]=ut(t.face["units-per-em"],10);for(var n in t.glyphs)if(t.glyphs[A](n)){var a=t.glyphs[n];if(e.glyphs[n]={w:a.w,k:{},d:a.d&&"M"+a.d.replace(/[mlcxtrv]/g,function(t){return{l:"L",c:"C",x:"z",t:"m",r:"l",v:"c"}[t]||"M"})+"z"},a.k)for(var s in a.k)a[A](s)&&(e.glyphs[n].k[s]=a.k[s])}}return t},N.getFont=function(t,r,i,n){if(n=n||"normal",i=i||"normal",r=+r||{normal:400,bold:700,lighter:300,bolder:800}[r]||400,e.fonts){var a=e.fonts[t];if(!a){var s=new RegExp("(^|\\s)"+t.replace(/[^\w\d\s+!~.:_-]/g,R)+"(\\s|$)","i");for(var o in e.fonts)if(e.fonts[A](o)&&s.test(o)){a=e.fonts[o];break}}var l;if(a)for(var h=0,u=a.length;h<u&&(l=a[h],l.face["font-weight"]!=r||l.face["font-style"]!=i&&l.face["font-style"]||l.face["font-stretch"]!=n);h++);return l}},N.print=function(t,r,i,n,a,s,o,l){s=s||"middle",o=W(G(o||0,1),-1),l=W(G(l||1,3),1);var h=I(i)[q](R),u=0,c=0,f=R,p;if(e.is(n,"string")&&(n=this.getFont(n)),n){p=(a||16)/n.face["units-per-em"];for(var d=n.face.bbox[q](k),g=+d[0],v=d[3]-d[1],x=0,y=+d[1]+("baseline"==s?v+ +n.face.descent:v/2),m=0,b=h.length;m<b;m++){if("\n"==h[m])u=0,w=0,c=0,x+=v*l;else{var _=c&&n.glyphs[h[m-1]]||{},w=n.glyphs[h[m]];u+=c?(_.w||n.w)+(_.k&&_.k[h[m]]||0)+n.w*o:0,c=1}w&&w.d&&(f+=e.transformPath(w.d,["t",u*p,x*p,"s",p,p,g,y,"t",(t-g)/p,(r-y)/p]))}}return this.path(f).attr({fill:"#000",stroke:"none"})},N.add=function(t){if(e.is(t,"array"))for(var r=this.set(),i=0,n=t.length,a;i<n;i++)a=t[i]||{},B[A](a.type)&&r.push(this[a.type]().attr(a));return r},e.format=function(t,r){var i=e.is(r,Q)?[0][P](r):arguments;return t&&e.is(t,Z)&&i.length-1&&(t=t.replace(C,function(t,e){return null==i[++e]?R:i[e]})),t||R},e.fullfill=function(){var t=/\{([^\}]+)\}/g,e=/(?:(?:^|\.)(.+?)(?=\[|\.|$|\()|\[('|")(.+?)\2\])(\(\))?/g,r=function(t,r,i){var n=i;return r.replace(e,function(t,e,r,i,a){e=e||i,n&&(e in n&&(n=n[e]),"function"==typeof n&&a&&(n=n()))}),n=(null==n||n==i?t:n)+""};return function(e,i){return String(e).replace(t,function(t,e){return r(t,e,i)})}}(),e.ninja=function(){if(E.was)T.win.Raphael=E.is;else{window.Raphael=void 0;try{delete window.Raphael}catch(t){}}return e},e.st=Pe,t.on("raphael.DOMload",function(){w=!0}),function(t,r,i){function n(){/in/.test(t.readyState)?setTimeout(n,9):e.eve("raphael.DOMload")}null==t.readyState&&t.addEventListener&&(t.addEventListener(r,i=function(){t.removeEventListener(r,i,!1),t.readyState="complete"},!1),t.readyState="loading"),n()}(document,"DOMContentLoaded"),e}.apply(e,i),!(void 0!==n&&(t.exports=n))},function(t,e,r){var i,n;!function(r){var a="0.5.0",s="hasOwnProperty",o=/[\.\/]/,l=/\s*,\s*/,h="*",u=function(){},c=function(t,e){return t-e},f,p,d={n:{}},g=function(){for(var t=0,e=this.length;t<e;t++)if("undefined"!=typeof this[t])return this[t]},v=function(){for(var t=this.length;--t;)if("undefined"!=typeof this[t])return this[t]},x=Object.prototype.toString,y=String,m=Array.isArray||function(t){return t instanceof Array||"[object Array]"==x.call(t)};eve=function(t,e){var r=d,i=p,n=Array.prototype.slice.call(arguments,2),a=eve.listeners(t),s=0,o=!1,l,h=[],u={},x=[],y=f,m=[];x.firstDefined=g,x.lastDefined=v,f=t,p=0;for(var b=0,_=a.length;b<_;b++)"zIndex"in a[b]&&(h.push(a[b].zIndex),a[b].zIndex<0&&(u[a[b].zIndex]=a[b]));for(h.sort(c);h[s]<0;)if(l=u[h[s++]],x.push(l.apply(e,n)),p)return p=i,x;for(b=0;b<_;b++)if(l=a[b],"zIndex"in l)if(l.zIndex==h[s]){if(x.push(l.apply(e,n)),p)break;do if(s++,l=u[h[s]],l&&x.push(l.apply(e,n)),p)break;while(l)}else u[l.zIndex]=l;else if(x.push(l.apply(e,n)),p)break;return p=i,f=y,x},eve._events=d,eve.listeners=function(t){var e=m(t)?t:t.split(o),r=d,i,n,a,s,l,u,c,f,p=[r],g=[];for(s=0,l=e.length;s<l;s++){for(f=[],u=0,c=p.length;u<c;u++)for(r=p[u].n,n=[r[e[s]],r[h]],a=2;a--;)i=n[a],i&&(f.push(i),g=g.concat(i.f||[]));p=f}return g},eve.separator=function(t){t?(t=y(t).replace(/(?=[\.\^\]\[\-])/g,"\\"),t="["+t+"]",o=new RegExp(t)):o=/[\.\/]/},eve.on=function(t,e){if("function"!=typeof e)return function(){};for(var r=m(t)?m(t[0])?t:[t]:y(t).split(l),i=0,n=r.length;i<n;i++)!function(t){for(var r=m(t)?t:y(t).split(o),i=d,n,a=0,s=r.length;a<s;a++)i=i.n,i=i.hasOwnProperty(r[a])&&i[r[a]]||(i[r[a]]={n:{}});for(i.f=i.f||[],a=0,s=i.f.length;a<s;a++)if(i.f[a]==e){n=!0;break}!n&&i.f.push(e)}(r[i]);return function(t){+t==+t&&(e.zIndex=+t)}},eve.f=function(t){var e=[].slice.call(arguments,1);return function(){eve.apply(null,[t,null].concat(e).concat([].slice.call(arguments,0)))}},eve.stop=function(){p=1},eve.nt=function(t){var e=m(f)?f.join("."):f;return t?new RegExp("(?:\\.|\\/|^)"+t+"(?:\\.|\\/|$)").test(e):e},eve.nts=function(){return m(f)?f:f.split(o)},eve.off=eve.unbind=function(t,e){if(!t)return void(eve._events=d={n:{}});var r=m(t)?m(t[0])?t:[t]:y(t).split(l);if(r.length>1)for(var i=0,n=r.length;i<n;i++)eve.off(r[i],e);else{r=m(t)?t:y(t).split(o);var a,u,c,i,n,f,p,g=[d];for(i=0,n=r.length;i<n;i++)for(f=0;f<g.length;f+=c.length-2){if(c=[f,1],a=g[f].n,r[i]!=h)a[r[i]]&&c.push(a[r[i]]);else for(u in a)a[s](u)&&c.push(a[u]);g.splice.apply(g,c)}for(i=0,n=g.length;i<n;i++)for(a=g[i];a.n;){if(e){if(a.f){for(f=0,p=a.f.length;f<p;f++)if(a.f[f]==e){a.f.splice(f,1);break}!a.f.length&&delete a.f}for(u in a.n)if(a.n[s](u)&&a.n[u].f){var v=a.n[u].f;for(f=0,p=v.length;f<p;f++)if(v[f]==e){v.splice(f,1);break}!v.length&&delete a.n[u].f}}else{delete a.f;for(u in a.n)a.n[s](u)&&a.n[u].f&&delete a.n[u].f}a=a.n}}},eve.once=function(t,e){var r=function(){return eve.off(t,r),e.apply(this,arguments)};return eve.on(t,r)},eve.version=a,eve.toString=function(){return"You are running Eve "+a},"undefined"!=typeof t&&t.exports?t.exports=eve:(i=[],n=function(){return eve}.apply(e,i),!(void 0!==n&&(t.exports=n)))}(this)},function(t,e,r){var i,n;i=[r(1)],n=function(t){if(!t||t.svg){var e="hasOwnProperty",r=String,i=parseFloat,n=parseInt,a=Math,s=a.max,o=a.abs,l=a.pow,h=/[, ]+/,u=t.eve,c="",f=" ",p="http://www.w3.org/1999/xlink",d={block:"M5,0 0,2.5 5,5z",classic:"M5,0 0,2.5 5,5 3.5,3 3.5,2z",diamond:"M2.5,0 5,2.5 2.5,5 0,2.5z",open:"M6,1 1,3.5 6,6",oval:"M2.5,0A2.5,2.5,0,0,1,2.5,5 2.5,2.5,0,0,1,2.5,0z"},g={};t.toString=function(){return"Your browser supports SVG.\nYou are running Raphaël "+this.version};var v=function(i,n){if(n){"string"==typeof i&&(i=v(i));for(var a in n)n[e](a)&&("xlink:"==a.substring(0,6)?i.setAttributeNS(p,a.substring(6),r(n[a])):i.setAttribute(a,r(n[a])))}else i=t._g.doc.createElementNS("http://www.w3.org/2000/svg",i),i.style&&(i.style.webkitTapHighlightColor="rgba(0,0,0,0)");return i},x=function(e,n){var h="linear",u=e.id+n,f=.5,p=.5,d=e.node,g=e.paper,x=d.style,y=t._g.doc.getElementById(u);if(!y){if(n=r(n).replace(t._radial_gradient,function(t,e,r){if(h="radial",e&&r){f=i(e),p=i(r);var n=2*(p>.5)-1;l(f-.5,2)+l(p-.5,2)>.25&&(p=a.sqrt(.25-l(f-.5,2))*n+.5)&&.5!=p&&(p=p.toFixed(5)-1e-5*n)}return c}),n=n.split(/\s*\-\s*/),"linear"==h){var b=n.shift();if(b=-i(b),isNaN(b))return null;var _=[0,0,a.cos(t.rad(b)),a.sin(t.rad(b))],w=1/(s(o(_[2]),o(_[3]))||1);_[2]*=w,_[3]*=w,_[2]<0&&(_[0]=-_[2],_[2]=0),_[3]<0&&(_[1]=-_[3],_[3]=0)}var k=t._parseDots(n);if(!k)return null;if(u=u.replace(/[\(\)\s,\xb0#]/g,"_"),e.gradient&&u!=e.gradient.id&&(g.defs.removeChild(e.gradient),delete e.gradient),!e.gradient){y=v(h+"Gradient",{id:u}),e.gradient=y,v(y,"radial"==h?{fx:f,fy:p}:{x1:_[0],y1:_[1],x2:_[2],y2:_[3],gradientTransform:e.matrix.invert()}),g.defs.appendChild(y);for(var B=0,C=k.length;B<C;B++)y.appendChild(v("stop",{offset:k[B].offset?k[B].offset:B?"100%":"0%","stop-color":k[B].color||"#fff","stop-opacity":isFinite(k[B].opacity)?k[B].opacity:1}))}}return v(d,{fill:m(u),opacity:1,"fill-opacity":1}),x.fill=c,x.opacity=1,x.fillOpacity=1,1},y=function(){var t=document.documentMode;return t&&(9===t||10===t)},m=function(t){if(y())return"url('#"+t+"')";var e=document.location,r=e.protocol+"//"+e.host+e.pathname+e.search;return"url('"+r+"#"+t+"')"},b=function(t){var e=t.getBBox(1);v(t.pattern,{patternTransform:t.matrix.invert()+" translate("+e.x+","+e.y+")"})},_=function(i,n,a){if("path"==i.type){for(var s=r(n).toLowerCase().split("-"),o=i.paper,l=a?"end":"start",h=i.node,u=i.attrs,f=u["stroke-width"],p=s.length,x="classic",y,m,b,_,w,k=3,B=3,C=5;p--;)switch(s[p]){case"block":case"classic":case"oval":case"diamond":case"open":case"none":x=s[p];break;case"wide":B=5;break;case"narrow":B=2;break;case"long":k=5;break;case"short":k=2}if("open"==x?(k+=2,B+=2,C+=2,b=1,_=a?4:1,w={fill:"none",stroke:u.stroke}):(_=b=k/2,w={fill:u.stroke,stroke:"none"}),i._.arrows?a?(i._.arrows.endPath&&g[i._.arrows.endPath]--,i._.arrows.endMarker&&g[i._.arrows.endMarker]--):(i._.arrows.startPath&&g[i._.arrows.startPath]--,i._.arrows.startMarker&&g[i._.arrows.startMarker]--):i._.arrows={},"none"!=x){var S="raphael-marker-"+x,A="raphael-marker-"+l+x+k+B+"-obj"+i.id;t._g.doc.getElementById(S)?g[S]++:(o.defs.appendChild(v(v("path"),{"stroke-linecap":"round",d:d[x],id:S})),g[S]=1);var T=t._g.doc.getElementById(A),E;T?(g[A]++,E=T.getElementsByTagName("use")[0]):(T=v(v("marker"),{id:A,markerHeight:B,markerWidth:k,orient:"auto",refX:_,refY:B/2}),E=v(v("use"),{"xlink:href":"#"+S,transform:(a?"rotate(180 "+k/2+" "+B/2+") ":c)+"scale("+k/C+","+B/C+")","stroke-width":(1/((k/C+B/C)/2)).toFixed(4)}),T.appendChild(E),o.defs.appendChild(T),g[A]=1),v(E,w);var M=b*("diamond"!=x&&"oval"!=x);a?(y=i._.arrows.startdx*f||0,m=t.getTotalLength(u.path)-M*f):(y=M*f,m=t.getTotalLength(u.path)-(i._.arrows.enddx*f||0)),w={},w["marker-"+l]="url(#"+A+")",(m||y)&&(w.d=t.getSubpath(u.path,y,m)),v(h,w),i._.arrows[l+"Path"]=S,i._.arrows[l+"Marker"]=A,i._.arrows[l+"dx"]=M,i._.arrows[l+"Type"]=x,i._.arrows[l+"String"]=n}else a?(y=i._.arrows.startdx*f||0,m=t.getTotalLength(u.path)-y):(y=0,m=t.getTotalLength(u.path)-(i._.arrows.enddx*f||0)),i._.arrows[l+"Path"]&&v(h,{d:t.getSubpath(u.path,y,m)}),delete i._.arrows[l+"Path"],delete i._.arrows[l+"Marker"],delete i._.arrows[l+"dx"],delete i._.arrows[l+"Type"],delete i._.arrows[l+"String"];for(w in g)if(g[e](w)&&!g[w]){var N=t._g.doc.getElementById(w);N&&N.parentNode.removeChild(N)}}},w={"-":[3,1],".":[1,1],"-.":[3,1,1,1],"-..":[3,1,1,1,1,1],". ":[1,3],"- ":[4,3],"--":[8,3],"- .":[4,3,1,3],"--.":[8,3,1,3],"--..":[8,3,1,3,1,3]},k=function(t,e,i){if(e=w[r(e).toLowerCase()]){for(var n=t.attrs["stroke-width"]||"1",a={round:n,square:n,butt:0}[t.attrs["stroke-linecap"]||i["stroke-linecap"]]||0,s=[],o=e.length;o--;)s[o]=e[o]*n+(o%2?1:-1)*a;v(t.node,{"stroke-dasharray":s.join(",")})}else v(t.node,{"stroke-dasharray":"none"})},B=function(i,a){var l=i.node,u=i.attrs,f=l.style.visibility;l.style.visibility="hidden";for(var d in a)if(a[e](d)){if(!t._availableAttrs[e](d))continue;var g=a[d];switch(u[d]=g,d){case"blur":i.blur(g);break;case"title":var y=l.getElementsByTagName("title");if(y.length&&(y=y[0]))y.firstChild.nodeValue=g;else{y=v("title");var m=t._g.doc.createTextNode(g);y.appendChild(m),l.appendChild(y)}break;case"href":case"target":var w=l.parentNode;if("a"!=w.tagName.toLowerCase()){var B=v("a");w.insertBefore(B,l),B.appendChild(l),w=B}"target"==d?w.setAttributeNS(p,"show","blank"==g?"new":g):w.setAttributeNS(p,d,g);break;case"cursor":l.style.cursor=g;break;case"transform":i.transform(g);break;case"arrow-start":_(i,g);break;case"arrow-end":_(i,g,1);break;case"clip-rect":var C=r(g).split(h);if(4==C.length){i.clip&&i.clip.parentNode.parentNode.removeChild(i.clip.parentNode);var A=v("clipPath"),T=v("rect");A.id=t.createUUID(),v(T,{x:C[0],y:C[1],width:C[2],height:C[3]}),A.appendChild(T),i.paper.defs.appendChild(A),v(l,{"clip-path":"url(#"+A.id+")"}),i.clip=T}if(!g){var E=l.getAttribute("clip-path");if(E){var M=t._g.doc.getElementById(E.replace(/(^url\(#|\)$)/g,c));M&&M.parentNode.removeChild(M),v(l,{"clip-path":c}),delete i.clip}}break;case"path":"path"==i.type&&(v(l,{d:g?u.path=t._pathToAbsolute(g):"M0,0"}),i._.dirty=1,i._.arrows&&("startString"in i._.arrows&&_(i,i._.arrows.startString),"endString"in i._.arrows&&_(i,i._.arrows.endString,1)));break;case"width":if(l.setAttribute(d,g),i._.dirty=1,!u.fx)break;d="x",g=u.x;case"x":u.fx&&(g=-u.x-(u.width||0));case"rx":if("rx"==d&&"rect"==i.type)break;case"cx":l.setAttribute(d,g),i.pattern&&b(i),i._.dirty=1;break;case"height":if(l.setAttribute(d,g),i._.dirty=1,!u.fy)break;d="y",g=u.y;case"y":u.fy&&(g=-u.y-(u.height||0));case"ry":if("ry"==d&&"rect"==i.type)break;case"cy":l.setAttribute(d,g),i.pattern&&b(i),i._.dirty=1;break;case"r":"rect"==i.type?v(l,{rx:g,ry:g}):l.setAttribute(d,g),i._.dirty=1;break;case"src":"image"==i.type&&l.setAttributeNS(p,"href",g);break;case"stroke-width":1==i._.sx&&1==i._.sy||(g/=s(o(i._.sx),o(i._.sy))||1),l.setAttribute(d,g),u["stroke-dasharray"]&&k(i,u["stroke-dasharray"],a), -i._.arrows&&("startString"in i._.arrows&&_(i,i._.arrows.startString),"endString"in i._.arrows&&_(i,i._.arrows.endString,1));break;case"stroke-dasharray":k(i,g,a);break;case"fill":var N=r(g).match(t._ISURL);if(N){A=v("pattern");var L=v("image");A.id=t.createUUID(),v(A,{x:0,y:0,patternUnits:"userSpaceOnUse",height:1,width:1}),v(L,{x:0,y:0,"xlink:href":N[1]}),A.appendChild(L),function(e){t._preload(N[1],function(){var t=this.offsetWidth,r=this.offsetHeight;v(e,{width:t,height:r}),v(L,{width:t,height:r})})}(A),i.paper.defs.appendChild(A),v(l,{fill:"url(#"+A.id+")"}),i.pattern=A,i.pattern&&b(i);break}var z=t.getRGB(g);if(z.error){if(("circle"==i.type||"ellipse"==i.type||"r"!=r(g).charAt())&&x(i,g)){if("opacity"in u||"fill-opacity"in u){var P=t._g.doc.getElementById(l.getAttribute("fill").replace(/^url\(#|\)$/g,c));if(P){var F=P.getElementsByTagName("stop");v(F[F.length-1],{"stop-opacity":("opacity"in u?u.opacity:1)*("fill-opacity"in u?u["fill-opacity"]:1)})}}u.gradient=g,u.fill="none";break}}else delete a.gradient,delete u.gradient,!t.is(u.opacity,"undefined")&&t.is(a.opacity,"undefined")&&v(l,{opacity:u.opacity}),!t.is(u["fill-opacity"],"undefined")&&t.is(a["fill-opacity"],"undefined")&&v(l,{"fill-opacity":u["fill-opacity"]});z[e]("opacity")&&v(l,{"fill-opacity":z.opacity>1?z.opacity/100:z.opacity});case"stroke":z=t.getRGB(g),l.setAttribute(d,z.hex),"stroke"==d&&z[e]("opacity")&&v(l,{"stroke-opacity":z.opacity>1?z.opacity/100:z.opacity}),"stroke"==d&&i._.arrows&&("startString"in i._.arrows&&_(i,i._.arrows.startString),"endString"in i._.arrows&&_(i,i._.arrows.endString,1));break;case"gradient":("circle"==i.type||"ellipse"==i.type||"r"!=r(g).charAt())&&x(i,g);break;case"opacity":u.gradient&&!u[e]("stroke-opacity")&&v(l,{"stroke-opacity":g>1?g/100:g});case"fill-opacity":if(u.gradient){P=t._g.doc.getElementById(l.getAttribute("fill").replace(/^url\(#|\)$/g,c)),P&&(F=P.getElementsByTagName("stop"),v(F[F.length-1],{"stop-opacity":g}));break}default:"font-size"==d&&(g=n(g,10)+"px");var R=d.replace(/(\-.)/g,function(t){return t.substring(1).toUpperCase()});l.style[R]=g,i._.dirty=1,l.setAttribute(d,g)}}S(i,a),l.style.visibility=f},C=1.2,S=function(i,a){if("text"==i.type&&(a[e]("text")||a[e]("font")||a[e]("font-size")||a[e]("x")||a[e]("y"))){var s=i.attrs,o=i.node,l=o.firstChild?n(t._g.doc.defaultView.getComputedStyle(o.firstChild,c).getPropertyValue("font-size"),10):10;if(a[e]("text")){for(s.text=a.text;o.firstChild;)o.removeChild(o.firstChild);for(var h=r(a.text).split("\n"),u=[],f,p=0,d=h.length;p<d;p++)f=v("tspan"),p&&v(f,{dy:l*C,x:s.x}),f.appendChild(t._g.doc.createTextNode(h[p])),o.appendChild(f),u[p]=f}else for(u=o.getElementsByTagName("tspan"),p=0,d=u.length;p<d;p++)p?v(u[p],{dy:l*C,x:s.x}):v(u[0],{dy:0});v(o,{x:s.x,y:s.y}),i._.dirty=1;var g=i._getBBox(),x=s.y-(g.y+g.height/2);x&&t.is(x,"finite")&&v(u[0],{dy:x})}},A=function(t){return t.parentNode&&"a"===t.parentNode.tagName.toLowerCase()?t.parentNode:t},T=function(e,r){function i(){return("0000"+(Math.random()*Math.pow(36,5)<<0).toString(36)).slice(-5)}var n=0,a=0;this[0]=this.node=e,e.raphael=!0,this.id=i(),e.raphaelid=this.id,this.matrix=t.matrix(),this.realPath=null,this.paper=r,this.attrs=this.attrs||{},this._={transform:[],sx:1,sy:1,deg:0,dx:0,dy:0,dirty:1},!r.bottom&&(r.bottom=this),this.prev=r.top,r.top&&(r.top.next=this),r.top=this,this.next=null},E=t.el;T.prototype=E,E.constructor=T,t._engine.path=function(t,e){var r=v("path");e.canvas&&e.canvas.appendChild(r);var i=new T(r,e);return i.type="path",B(i,{fill:"none",stroke:"#000",path:t}),i},E.rotate=function(t,e,n){if(this.removed)return this;if(t=r(t).split(h),t.length-1&&(e=i(t[1]),n=i(t[2])),t=i(t[0]),null==n&&(e=n),null==e||null==n){var a=this.getBBox(1);e=a.x+a.width/2,n=a.y+a.height/2}return this.transform(this._.transform.concat([["r",t,e,n]])),this},E.scale=function(t,e,n,a){if(this.removed)return this;if(t=r(t).split(h),t.length-1&&(e=i(t[1]),n=i(t[2]),a=i(t[3])),t=i(t[0]),null==e&&(e=t),null==a&&(n=a),null==n||null==a)var s=this.getBBox(1);return n=null==n?s.x+s.width/2:n,a=null==a?s.y+s.height/2:a,this.transform(this._.transform.concat([["s",t,e,n,a]])),this},E.translate=function(t,e){return this.removed?this:(t=r(t).split(h),t.length-1&&(e=i(t[1])),t=i(t[0])||0,e=+e||0,this.transform(this._.transform.concat([["t",t,e]])),this)},E.transform=function(r){var i=this._;if(null==r)return i.transform;if(t._extractTransform(this,r),this.clip&&v(this.clip,{transform:this.matrix.invert()}),this.pattern&&b(this),this.node&&v(this.node,{transform:this.matrix}),1!=i.sx||1!=i.sy){var n=this.attrs[e]("stroke-width")?this.attrs["stroke-width"]:1;this.attr({"stroke-width":n})}return this},E.hide=function(){return this.removed||(this.node.style.display="none"),this},E.show=function(){return this.removed||(this.node.style.display=""),this},E.remove=function(){var e=A(this.node);if(!this.removed&&e.parentNode){var r=this.paper;r.__set__&&r.__set__.exclude(this),u.unbind("raphael.*.*."+this.id),this.gradient&&r.defs.removeChild(this.gradient),t._tear(this,r),e.parentNode.removeChild(e),this.removeData();for(var i in this)this[i]="function"==typeof this[i]?t._removedFactory(i):null;this.removed=!0}},E._getBBox=function(){if("none"==this.node.style.display){this.show();var t=!0}var e=!1,r;this.paper.canvas.parentElement?r=this.paper.canvas.parentElement.style:this.paper.canvas.parentNode&&(r=this.paper.canvas.parentNode.style),r&&"none"==r.display&&(e=!0,r.display="");var i={};try{i=this.node.getBBox()}catch(n){i={x:this.node.clientLeft,y:this.node.clientTop,width:this.node.clientWidth,height:this.node.clientHeight}}finally{i=i||{},e&&(r.display="none")}return t&&this.hide(),i},E.attr=function(r,i){if(this.removed)return this;if(null==r){var n={};for(var a in this.attrs)this.attrs[e](a)&&(n[a]=this.attrs[a]);return n.gradient&&"none"==n.fill&&(n.fill=n.gradient)&&delete n.gradient,n.transform=this._.transform,n}if(null==i&&t.is(r,"string")){if("fill"==r&&"none"==this.attrs.fill&&this.attrs.gradient)return this.attrs.gradient;if("transform"==r)return this._.transform;for(var s=r.split(h),o={},l=0,c=s.length;l<c;l++)r=s[l],r in this.attrs?o[r]=this.attrs[r]:t.is(this.paper.customAttributes[r],"function")?o[r]=this.paper.customAttributes[r].def:o[r]=t._availableAttrs[r];return c-1?o:o[s[0]]}if(null==i&&t.is(r,"array")){for(o={},l=0,c=r.length;l<c;l++)o[r[l]]=this.attr(r[l]);return o}if(null!=i){var f={};f[r]=i}else null!=r&&t.is(r,"object")&&(f=r);for(var p in f)u("raphael.attr."+p+"."+this.id,this,f[p]);for(p in this.paper.customAttributes)if(this.paper.customAttributes[e](p)&&f[e](p)&&t.is(this.paper.customAttributes[p],"function")){var d=this.paper.customAttributes[p].apply(this,[].concat(f[p]));this.attrs[p]=f[p];for(var g in d)d[e](g)&&(f[g]=d[g])}return B(this,f),this},E.toFront=function(){if(this.removed)return this;var e=A(this.node);e.parentNode.appendChild(e);var r=this.paper;return r.top!=this&&t._tofront(this,r),this},E.toBack=function(){if(this.removed)return this;var e=A(this.node),r=e.parentNode;r.insertBefore(e,r.firstChild),t._toback(this,this.paper);var i=this.paper;return this},E.insertAfter=function(e){if(this.removed||!e)return this;var r=A(this.node),i=A(e.node||e[e.length-1].node);return i.nextSibling?i.parentNode.insertBefore(r,i.nextSibling):i.parentNode.appendChild(r),t._insertafter(this,e,this.paper),this},E.insertBefore=function(e){if(this.removed||!e)return this;var r=A(this.node),i=A(e.node||e[0].node);return i.parentNode.insertBefore(r,i),t._insertbefore(this,e,this.paper),this},E.blur=function(e){var r=this;if(0!==+e){var i=v("filter"),n=v("feGaussianBlur");r.attrs.blur=e,i.id=t.createUUID(),v(n,{stdDeviation:+e||1.5}),i.appendChild(n),r.paper.defs.appendChild(i),r._blur=i,v(r.node,{filter:"url(#"+i.id+")"})}else r._blur&&(r._blur.parentNode.removeChild(r._blur),delete r._blur,delete r.attrs.blur),r.node.removeAttribute("filter");return r},t._engine.circle=function(t,e,r,i){var n=v("circle");t.canvas&&t.canvas.appendChild(n);var a=new T(n,t);return a.attrs={cx:e,cy:r,r:i,fill:"none",stroke:"#000"},a.type="circle",v(n,a.attrs),a},t._engine.rect=function(t,e,r,i,n,a){var s=v("rect");t.canvas&&t.canvas.appendChild(s);var o=new T(s,t);return o.attrs={x:e,y:r,width:i,height:n,rx:a||0,ry:a||0,fill:"none",stroke:"#000"},o.type="rect",v(s,o.attrs),o},t._engine.ellipse=function(t,e,r,i,n){var a=v("ellipse");t.canvas&&t.canvas.appendChild(a);var s=new T(a,t);return s.attrs={cx:e,cy:r,rx:i,ry:n,fill:"none",stroke:"#000"},s.type="ellipse",v(a,s.attrs),s},t._engine.image=function(t,e,r,i,n,a){var s=v("image");v(s,{x:r,y:i,width:n,height:a,preserveAspectRatio:"none"}),s.setAttributeNS(p,"href",e),t.canvas&&t.canvas.appendChild(s);var o=new T(s,t);return o.attrs={x:r,y:i,width:n,height:a,src:e},o.type="image",o},t._engine.text=function(e,r,i,n){var a=v("text");e.canvas&&e.canvas.appendChild(a);var s=new T(a,e);return s.attrs={x:r,y:i,"text-anchor":"middle",text:n,"font-family":t._availableAttrs["font-family"],"font-size":t._availableAttrs["font-size"],stroke:"none",fill:"#000"},s.type="text",B(s,s.attrs),s},t._engine.setSize=function(t,e){return this.width=t||this.width,this.height=e||this.height,this.canvas.setAttribute("width",this.width),this.canvas.setAttribute("height",this.height),this._viewBox&&this.setViewBox.apply(this,this._viewBox),this},t._engine.create=function(){var e=t._getContainer.apply(0,arguments),r=e&&e.container,i=e.x,n=e.y,a=e.width,s=e.height;if(!r)throw new Error("SVG container not found.");var o=v("svg"),l="overflow:hidden;",h;return i=i||0,n=n||0,a=a||512,s=s||342,v(o,{height:s,version:1.1,width:a,xmlns:"http://www.w3.org/2000/svg","xmlns:xlink":"http://www.w3.org/1999/xlink"}),1==r?(o.style.cssText=l+"position:absolute;left:"+i+"px;top:"+n+"px",t._g.doc.body.appendChild(o),h=1):(o.style.cssText=l+"position:relative",r.firstChild?r.insertBefore(o,r.firstChild):r.appendChild(o)),r=new t._Paper,r.width=a,r.height=s,r.canvas=o,r.clear(),r._left=r._top=0,h&&(r.renderfix=function(){}),r.renderfix(),r},t._engine.setViewBox=function(t,e,r,i,n){u("raphael.setViewBox",this,this._viewBox,[t,e,r,i,n]);var a=this.getSize(),o=s(r/a.width,i/a.height),l=this.top,h=n?"xMidYMid meet":"xMinYMin",c,p;for(null==t?(this._vbSize&&(o=1),delete this._vbSize,c="0 0 "+this.width+f+this.height):(this._vbSize=o,c=t+f+e+f+r+f+i),v(this.canvas,{viewBox:c,preserveAspectRatio:h});o&&l;)p="stroke-width"in l.attrs?l.attrs["stroke-width"]:1,l.attr({"stroke-width":p}),l._.dirty=1,l._.dirtyT=1,l=l.prev;return this._viewBox=[t,e,r,i,!!n],this},t.prototype.renderfix=function(){var t=this.canvas,e=t.style,r;try{r=t.getScreenCTM()||t.createSVGMatrix()}catch(i){r=t.createSVGMatrix()}var n=-r.e%1,a=-r.f%1;(n||a)&&(n&&(this._left=(this._left+n)%1,e.left=this._left+"px"),a&&(this._top=(this._top+a)%1,e.top=this._top+"px"))},t.prototype.clear=function(){t.eve("raphael.clear",this);for(var e=this.canvas;e.firstChild;)e.removeChild(e.firstChild);this.bottom=this.top=null,(this.desc=v("desc")).appendChild(t._g.doc.createTextNode("Created with Raphaël "+t.version)),e.appendChild(this.desc),e.appendChild(this.defs=v("defs"))},t.prototype.remove=function(){u("raphael.remove",this),this.canvas.parentNode&&this.canvas.parentNode.removeChild(this.canvas);for(var e in this)this[e]="function"==typeof this[e]?t._removedFactory(e):null};var M=t.st;for(var N in E)E[e](N)&&!M[e](N)&&(M[N]=function(t){return function(){var e=arguments;return this.forEach(function(r){r[t].apply(r,e)})}}(N))}}.apply(e,i),!(void 0!==n&&(t.exports=n))},function(t,e,r){var i,n;i=[r(1)],n=function(t){if(!t||t.vml){var e="hasOwnProperty",r=String,i=parseFloat,n=Math,a=n.round,s=n.max,o=n.min,l=n.abs,h="fill",u=/[, ]+/,c=t.eve,f=" progid:DXImageTransform.Microsoft",p=" ",d="",g={M:"m",L:"l",C:"c",Z:"x",m:"t",l:"r",c:"v",z:"x"},v=/([clmz]),?([^clmz]*)/gi,x=/ progid:\S+Blur\([^\)]+\)/g,y=/-?[^,\s-]+/g,m="position:absolute;left:0;top:0;width:1px;height:1px;behavior:url(#default#VML)",b=21600,_={path:1,rect:1,image:1},w={circle:1,ellipse:1},k=function(e){var i=/[ahqstv]/gi,n=t._pathToAbsolute;if(r(e).match(i)&&(n=t._path2curve),i=/[clmz]/g,n==t._pathToAbsolute&&!r(e).match(i)){var s=r(e).replace(v,function(t,e,r){var i=[],n="m"==e.toLowerCase(),s=g[e];return r.replace(y,function(t){n&&2==i.length&&(s+=i+g["m"==e?"l":"L"],i=[]),i.push(a(t*b))}),s+i});return s}var o=n(e),l,h;s=[];for(var u=0,c=o.length;u<c;u++){l=o[u],h=o[u][0].toLowerCase(),"z"==h&&(h="x");for(var f=1,x=l.length;f<x;f++)h+=a(l[f]*b)+(f!=x-1?",":d);s.push(h)}return s.join(p)},B=function(e,r,i){var n=t.matrix();return n.rotate(-e,.5,.5),{dx:n.x(r,i),dy:n.y(r,i)}},C=function(t,e,r,i,n,a){var s=t._,o=t.matrix,u=s.fillpos,c=t.node,f=c.style,d=1,g="",v,x=b/e,y=b/r;if(f.visibility="hidden",e&&r){if(c.coordsize=l(x)+p+l(y),f.rotation=a*(e*r<0?-1:1),a){var m=B(a,i,n);i=m.dx,n=m.dy}if(e<0&&(g+="x"),r<0&&(g+=" y")&&(d=-1),f.flip=g,c.coordorigin=i*-x+p+n*-y,u||s.fillsize){var _=c.getElementsByTagName(h);_=_&&_[0],c.removeChild(_),u&&(m=B(a,o.x(u[0],u[1]),o.y(u[0],u[1])),_.position=m.dx*d+p+m.dy*d),s.fillsize&&(_.size=s.fillsize[0]*l(e)+p+s.fillsize[1]*l(r)),c.appendChild(_)}f.visibility="visible"}};t.toString=function(){return"Your browser doesn’t support SVG. Falling down to VML.\nYou are running Raphaël "+this.version};var S=function(t,e,i){for(var n=r(e).toLowerCase().split("-"),a=i?"end":"start",s=n.length,o="classic",l="medium",h="medium";s--;)switch(n[s]){case"block":case"classic":case"oval":case"diamond":case"open":case"none":o=n[s];break;case"wide":case"narrow":h=n[s];break;case"long":case"short":l=n[s]}var u=t.node.getElementsByTagName("stroke")[0];u[a+"arrow"]=o,u[a+"arrowlength"]=l,u[a+"arrowwidth"]=h},A=function(n,l){n.attrs=n.attrs||{};var c=n.node,f=n.attrs,g=c.style,v,x=_[n.type]&&(l.x!=f.x||l.y!=f.y||l.width!=f.width||l.height!=f.height||l.cx!=f.cx||l.cy!=f.cy||l.rx!=f.rx||l.ry!=f.ry||l.r!=f.r),y=w[n.type]&&(f.cx!=l.cx||f.cy!=l.cy||f.r!=l.r||f.rx!=l.rx||f.ry!=l.ry),m=n;for(var B in l)l[e](B)&&(f[B]=l[B]);if(x&&(f.path=t._getPath[n.type](n),n._.dirty=1),l.href&&(c.href=l.href),l.title&&(c.title=l.title),l.target&&(c.target=l.target),l.cursor&&(g.cursor=l.cursor),"blur"in l&&n.blur(l.blur),(l.path&&"path"==n.type||x)&&(c.path=k(~r(f.path).toLowerCase().indexOf("r")?t._pathToAbsolute(f.path):f.path),n._.dirty=1,"image"==n.type&&(n._.fillpos=[f.x,f.y],n._.fillsize=[f.width,f.height],C(n,1,1,0,0,0))),"transform"in l&&n.transform(l.transform),y){var A=+f.cx,E=+f.cy,M=+f.rx||+f.r||0,L=+f.ry||+f.r||0;c.path=t.format("ar{0},{1},{2},{3},{4},{1},{4},{1}x",a((A-M)*b),a((E-L)*b),a((A+M)*b),a((E+L)*b),a(A*b)),n._.dirty=1}if("clip-rect"in l){var z=r(l["clip-rect"]).split(u);if(4==z.length){z[2]=+z[2]+ +z[0],z[3]=+z[3]+ +z[1];var P=c.clipRect||t._g.doc.createElement("div"),F=P.style;F.clip=t.format("rect({1}px {2}px {3}px {0}px)",z),c.clipRect||(F.position="absolute",F.top=0,F.left=0,F.width=n.paper.width+"px",F.height=n.paper.height+"px",c.parentNode.insertBefore(P,c),P.appendChild(c),c.clipRect=P)}l["clip-rect"]||c.clipRect&&(c.clipRect.style.clip="auto")}if(n.textpath){var R=n.textpath.style;l.font&&(R.font=l.font),l["font-family"]&&(R.fontFamily='"'+l["font-family"].split(",")[0].replace(/^['"]+|['"]+$/g,d)+'"'),l["font-size"]&&(R.fontSize=l["font-size"]),l["font-weight"]&&(R.fontWeight=l["font-weight"]),l["font-style"]&&(R.fontStyle=l["font-style"])}if("arrow-start"in l&&S(m,l["arrow-start"]),"arrow-end"in l&&S(m,l["arrow-end"],1),null!=l.opacity||null!=l.fill||null!=l.src||null!=l.stroke||null!=l["stroke-width"]||null!=l["stroke-opacity"]||null!=l["fill-opacity"]||null!=l["stroke-dasharray"]||null!=l["stroke-miterlimit"]||null!=l["stroke-linejoin"]||null!=l["stroke-linecap"]){var j=c.getElementsByTagName(h),I=!1;if(j=j&&j[0],!j&&(I=j=N(h)),"image"==n.type&&l.src&&(j.src=l.src),l.fill&&(j.on=!0),null!=j.on&&"none"!=l.fill&&null!==l.fill||(j.on=!1),j.on&&l.fill){var q=r(l.fill).match(t._ISURL);if(q){j.parentNode==c&&c.removeChild(j),j.rotate=!0,j.src=q[1],j.type="tile";var D=n.getBBox(1);j.position=D.x+p+D.y,n._.fillpos=[D.x,D.y],t._preload(q[1],function(){n._.fillsize=[this.offsetWidth,this.offsetHeight]})}else j.color=t.getRGB(l.fill).hex,j.src=d,j.type="solid",t.getRGB(l.fill).error&&(m.type in{circle:1,ellipse:1}||"r"!=r(l.fill).charAt())&&T(m,l.fill,j)&&(f.fill="none",f.gradient=l.fill,j.rotate=!1)}if("fill-opacity"in l||"opacity"in l){var V=((+f["fill-opacity"]+1||2)-1)*((+f.opacity+1||2)-1)*((+t.getRGB(l.fill).o+1||2)-1);V=o(s(V,0),1),j.opacity=V,j.src&&(j.color="none")}c.appendChild(j);var O=c.getElementsByTagName("stroke")&&c.getElementsByTagName("stroke")[0],Y=!1;!O&&(Y=O=N("stroke")),(l.stroke&&"none"!=l.stroke||l["stroke-width"]||null!=l["stroke-opacity"]||l["stroke-dasharray"]||l["stroke-miterlimit"]||l["stroke-linejoin"]||l["stroke-linecap"])&&(O.on=!0),("none"==l.stroke||null===l.stroke||null==O.on||0==l.stroke||0==l["stroke-width"])&&(O.on=!1);var W=t.getRGB(l.stroke);O.on&&l.stroke&&(O.color=W.hex),V=((+f["stroke-opacity"]+1||2)-1)*((+f.opacity+1||2)-1)*((+W.o+1||2)-1);var G=.75*(i(l["stroke-width"])||1);if(V=o(s(V,0),1),null==l["stroke-width"]&&(G=f["stroke-width"]),l["stroke-width"]&&(O.weight=G),G&&G<1&&(V*=G)&&(O.weight=1),O.opacity=V,l["stroke-linejoin"]&&(O.joinstyle=l["stroke-linejoin"]||"miter"),O.miterlimit=l["stroke-miterlimit"]||8,l["stroke-linecap"]&&(O.endcap="butt"==l["stroke-linecap"]?"flat":"square"==l["stroke-linecap"]?"square":"round"),"stroke-dasharray"in l){var H={"-":"shortdash",".":"shortdot","-.":"shortdashdot","-..":"shortdashdotdot",". ":"dot","- ":"dash","--":"longdash","- .":"dashdot","--.":"longdashdot","--..":"longdashdotdot"};O.dashstyle=H[e](l["stroke-dasharray"])?H[l["stroke-dasharray"]]:d}Y&&c.appendChild(O)}if("text"==m.type){m.paper.canvas.style.display=d;var X=m.paper.span,U=100,$=f.font&&f.font.match(/\d+(?:\.\d*)?(?=px)/);g=X.style,f.font&&(g.font=f.font),f["font-family"]&&(g.fontFamily=f["font-family"]),f["font-weight"]&&(g.fontWeight=f["font-weight"]),f["font-style"]&&(g.fontStyle=f["font-style"]),$=i(f["font-size"]||$&&$[0])||10,g.fontSize=$*U+"px",m.textpath.string&&(X.innerHTML=r(m.textpath.string).replace(/</g,"&#60;").replace(/&/g,"&#38;").replace(/\n/g,"<br>"));var Z=X.getBoundingClientRect();m.W=f.w=(Z.right-Z.left)/U,m.H=f.h=(Z.bottom-Z.top)/U,m.X=f.x,m.Y=f.y+m.H/2,("x"in l||"y"in l)&&(m.path.v=t.format("m{0},{1}l{2},{1}",a(f.x*b),a(f.y*b),a(f.x*b)+1));for(var Q=["x","y","text","font","font-family","font-weight","font-style","font-size"],J=0,K=Q.length;J<K;J++)if(Q[J]in l){m._.dirty=1;break}switch(f["text-anchor"]){case"start":m.textpath.style["v-text-align"]="left",m.bbx=m.W/2;break;case"end":m.textpath.style["v-text-align"]="right",m.bbx=-m.W/2;break;default:m.textpath.style["v-text-align"]="center",m.bbx=0}m.textpath.style["v-text-kern"]=!0}},T=function(e,a,s){e.attrs=e.attrs||{};var o=e.attrs,l=Math.pow,h,u,c="linear",f=".5 .5";if(e.attrs.gradient=a,a=r(a).replace(t._radial_gradient,function(t,e,r){return c="radial",e&&r&&(e=i(e),r=i(r),l(e-.5,2)+l(r-.5,2)>.25&&(r=n.sqrt(.25-l(e-.5,2))*(2*(r>.5)-1)+.5),f=e+p+r),d}),a=a.split(/\s*\-\s*/),"linear"==c){var g=a.shift();if(g=-i(g),isNaN(g))return null}var v=t._parseDots(a);if(!v)return null;if(e=e.shape||e.node,v.length){e.removeChild(s),s.on=!0,s.method="none",s.color=v[0].color,s.color2=v[v.length-1].color;for(var x=[],y=0,m=v.length;y<m;y++)v[y].offset&&x.push(v[y].offset+p+v[y].color);s.colors=x.length?x.join():"0% "+s.color,"radial"==c?(s.type="gradientTitle",s.focus="100%",s.focussize="0 0",s.focusposition=f,s.angle=0):(s.type="gradient",s.angle=(270-g)%360),e.appendChild(s)}return 1},E=function(e,r){this[0]=this.node=e,e.raphael=!0,this.id=t._oid++,e.raphaelid=this.id,this.X=0,this.Y=0,this.attrs={},this.paper=r,this.matrix=t.matrix(),this._={transform:[],sx:1,sy:1,dx:0,dy:0,deg:0,dirty:1,dirtyT:1},!r.bottom&&(r.bottom=this),this.prev=r.top,r.top&&(r.top.next=this),r.top=this,this.next=null},M=t.el;E.prototype=M,M.constructor=E,M.transform=function(e){if(null==e)return this._.transform;var i=this.paper._viewBoxShift,n=i?"s"+[i.scale,i.scale]+"-1-1t"+[i.dx,i.dy]:d,a;i&&(a=e=r(e).replace(/\.{3}|\u2026/g,this._.transform||d)),t._extractTransform(this,n+e);var s=this.matrix.clone(),o=this.skew,l=this.node,h,u=~r(this.attrs.fill).indexOf("-"),c=!r(this.attrs.fill).indexOf("url(");if(s.translate(1,1),c||u||"image"==this.type)if(o.matrix="1 0 0 1",o.offset="0 0",h=s.split(),u&&h.noRotation||!h.isSimple){l.style.filter=s.toFilter();var f=this.getBBox(),g=this.getBBox(1),v=f.x-g.x,x=f.y-g.y;l.coordorigin=v*-b+p+x*-b,C(this,1,1,v,x,0)}else l.style.filter=d,C(this,h.scalex,h.scaley,h.dx,h.dy,h.rotate);else l.style.filter=d,o.matrix=r(s),o.offset=s.offset();return null!==a&&(this._.transform=a,t._extractTransform(this,a)),this},M.rotate=function(t,e,n){if(this.removed)return this;if(null!=t){if(t=r(t).split(u),t.length-1&&(e=i(t[1]),n=i(t[2])),t=i(t[0]),null==n&&(e=n),null==e||null==n){var a=this.getBBox(1);e=a.x+a.width/2,n=a.y+a.height/2}return this._.dirtyT=1,this.transform(this._.transform.concat([["r",t,e,n]])),this}},M.translate=function(t,e){return this.removed?this:(t=r(t).split(u),t.length-1&&(e=i(t[1])),t=i(t[0])||0,e=+e||0,this._.bbox&&(this._.bbox.x+=t,this._.bbox.y+=e),this.transform(this._.transform.concat([["t",t,e]])),this)},M.scale=function(t,e,n,a){if(this.removed)return this;if(t=r(t).split(u),t.length-1&&(e=i(t[1]),n=i(t[2]),a=i(t[3]),isNaN(n)&&(n=null),isNaN(a)&&(a=null)),t=i(t[0]),null==e&&(e=t),null==a&&(n=a),null==n||null==a)var s=this.getBBox(1);return n=null==n?s.x+s.width/2:n,a=null==a?s.y+s.height/2:a,this.transform(this._.transform.concat([["s",t,e,n,a]])),this._.dirtyT=1,this},M.hide=function(){return!this.removed&&(this.node.style.display="none"),this},M.show=function(){return!this.removed&&(this.node.style.display=d),this},M.auxGetBBox=t.el.getBBox,M.getBBox=function(){var t=this.auxGetBBox();if(this.paper&&this.paper._viewBoxShift){var e={},r=1/this.paper._viewBoxShift.scale;return e.x=t.x-this.paper._viewBoxShift.dx,e.x*=r,e.y=t.y-this.paper._viewBoxShift.dy,e.y*=r,e.width=t.width*r,e.height=t.height*r,e.x2=e.x+e.width,e.y2=e.y+e.height,e}return t},M._getBBox=function(){return this.removed?{}:{x:this.X+(this.bbx||0)-this.W/2,y:this.Y-this.H,width:this.W,height:this.H}},M.remove=function(){if(!this.removed&&this.node.parentNode){this.paper.__set__&&this.paper.__set__.exclude(this),t.eve.unbind("raphael.*.*."+this.id),t._tear(this,this.paper),this.node.parentNode.removeChild(this.node),this.shape&&this.shape.parentNode.removeChild(this.shape);for(var e in this)this[e]="function"==typeof this[e]?t._removedFactory(e):null;this.removed=!0}},M.attr=function(r,i){if(this.removed)return this;if(null==r){var n={};for(var a in this.attrs)this.attrs[e](a)&&(n[a]=this.attrs[a]);return n.gradient&&"none"==n.fill&&(n.fill=n.gradient)&&delete n.gradient,n.transform=this._.transform,n}if(null==i&&t.is(r,"string")){if(r==h&&"none"==this.attrs.fill&&this.attrs.gradient)return this.attrs.gradient;for(var s=r.split(u),o={},l=0,f=s.length;l<f;l++)r=s[l],r in this.attrs?o[r]=this.attrs[r]:t.is(this.paper.customAttributes[r],"function")?o[r]=this.paper.customAttributes[r].def:o[r]=t._availableAttrs[r];return f-1?o:o[s[0]]}if(this.attrs&&null==i&&t.is(r,"array")){for(o={},l=0,f=r.length;l<f;l++)o[r[l]]=this.attr(r[l]);return o}var p;null!=i&&(p={},p[r]=i),null==i&&t.is(r,"object")&&(p=r);for(var d in p)c("raphael.attr."+d+"."+this.id,this,p[d]);if(p){for(d in this.paper.customAttributes)if(this.paper.customAttributes[e](d)&&p[e](d)&&t.is(this.paper.customAttributes[d],"function")){var g=this.paper.customAttributes[d].apply(this,[].concat(p[d]));this.attrs[d]=p[d];for(var v in g)g[e](v)&&(p[v]=g[v])}p.text&&"text"==this.type&&(this.textpath.string=p.text),A(this,p)}return this},M.toFront=function(){return!this.removed&&this.node.parentNode.appendChild(this.node),this.paper&&this.paper.top!=this&&t._tofront(this,this.paper),this},M.toBack=function(){return this.removed?this:(this.node.parentNode.firstChild!=this.node&&(this.node.parentNode.insertBefore(this.node,this.node.parentNode.firstChild),t._toback(this,this.paper)),this)},M.insertAfter=function(e){return this.removed?this:(e.constructor==t.st.constructor&&(e=e[e.length-1]),e.node.nextSibling?e.node.parentNode.insertBefore(this.node,e.node.nextSibling):e.node.parentNode.appendChild(this.node),t._insertafter(this,e,this.paper),this)},M.insertBefore=function(e){return this.removed?this:(e.constructor==t.st.constructor&&(e=e[0]),e.node.parentNode.insertBefore(this.node,e.node),t._insertbefore(this,e,this.paper),this)},M.blur=function(e){var r=this.node.runtimeStyle,i=r.filter;return i=i.replace(x,d),0!==+e?(this.attrs.blur=e,r.filter=i+p+f+".Blur(pixelradius="+(+e||1.5)+")",r.margin=t.format("-{0}px 0 0 -{0}px",a(+e||1.5))):(r.filter=i,r.margin=0,delete this.attrs.blur),this},t._engine.path=function(t,e){var r=N("shape");r.style.cssText=m,r.coordsize=b+p+b,r.coordorigin=e.coordorigin;var i=new E(r,e),n={fill:"none",stroke:"#000"};t&&(n.path=t),i.type="path",i.path=[],i.Path=d,A(i,n),e.canvas&&e.canvas.appendChild(r);var a=N("skew");return a.on=!0,r.appendChild(a),i.skew=a,i.transform(d),i},t._engine.rect=function(e,r,i,n,a,s){var o=t._rectPath(r,i,n,a,s),l=e.path(o),h=l.attrs;return l.X=h.x=r,l.Y=h.y=i,l.W=h.width=n,l.H=h.height=a,h.r=s,h.path=o,l.type="rect",l},t._engine.ellipse=function(t,e,r,i,n){var a=t.path(),s=a.attrs;return a.X=e-i,a.Y=r-n,a.W=2*i,a.H=2*n,a.type="ellipse",A(a,{cx:e,cy:r,rx:i,ry:n}),a},t._engine.circle=function(t,e,r,i){var n=t.path(),a=n.attrs;return n.X=e-i,n.Y=r-i,n.W=n.H=2*i,n.type="circle",A(n,{cx:e,cy:r,r:i}),n},t._engine.image=function(e,r,i,n,a,s){var o=t._rectPath(i,n,a,s),l=e.path(o).attr({stroke:"none"}),u=l.attrs,c=l.node,f=c.getElementsByTagName(h)[0];return u.src=r,l.X=u.x=i,l.Y=u.y=n,l.W=u.width=a,l.H=u.height=s,u.path=o,l.type="image",f.parentNode==c&&c.removeChild(f),f.rotate=!0,f.src=r,f.type="tile",l._.fillpos=[i,n],l._.fillsize=[a,s],c.appendChild(f),C(l,1,1,0,0,0),l},t._engine.text=function(e,i,n,s){var o=N("shape"),l=N("path"),h=N("textpath");i=i||0,n=n||0,s=s||"",l.v=t.format("m{0},{1}l{2},{1}",a(i*b),a(n*b),a(i*b)+1),l.textpathok=!0,h.string=r(s),h.on=!0,o.style.cssText=m,o.coordsize=b+p+b,o.coordorigin="0 0";var u=new E(o,e),c={fill:"#000",stroke:"none",font:t._availableAttrs.font,text:s};u.shape=o,u.path=l,u.textpath=h,u.type="text",u.attrs.text=r(s),u.attrs.x=i,u.attrs.y=n,u.attrs.w=1,u.attrs.h=1,A(u,c),o.appendChild(h),o.appendChild(l),e.canvas.appendChild(o);var f=N("skew");return f.on=!0,o.appendChild(f),u.skew=f,u.transform(d),u},t._engine.setSize=function(e,r){var i=this.canvas.style;return this.width=e,this.height=r,e==+e&&(e+="px"),r==+r&&(r+="px"),i.width=e,i.height=r,i.clip="rect(0 "+e+" "+r+" 0)",this._viewBox&&t._engine.setViewBox.apply(this,this._viewBox),this},t._engine.setViewBox=function(e,r,i,n,a){t.eve("raphael.setViewBox",this,this._viewBox,[e,r,i,n,a]);var s=this.getSize(),o=s.width,l=s.height,h,u;return a&&(h=l/n,u=o/i,i*h<o&&(e-=(o-i*h)/2/h),n*u<l&&(r-=(l-n*u)/2/u)),this._viewBox=[e,r,i,n,!!a],this._viewBoxShift={dx:-e,dy:-r,scale:s},this.forEach(function(t){t.transform("...")}),this};var N;t._engine.initWin=function(t){var e=t.document;e.styleSheets.length<31?e.createStyleSheet().addRule(".rvml","behavior:url(#default#VML)"):e.styleSheets[0].addRule(".rvml","behavior:url(#default#VML)");try{!e.namespaces.rvml&&e.namespaces.add("rvml","urn:schemas-microsoft-com:vml"),N=function(t){return e.createElement("<rvml:"+t+' class="rvml">')}}catch(r){N=function(t){return e.createElement("<"+t+' xmlns="urn:schemas-microsoft.com:vml" class="rvml">')}}},t._engine.initWin(t._g.win),t._engine.create=function(){var e=t._getContainer.apply(0,arguments),r=e.container,i=e.height,n,a=e.width,s=e.x,o=e.y;if(!r)throw new Error("VML container not found.");var l=new t._Paper,h=l.canvas=t._g.doc.createElement("div"),u=h.style;return s=s||0,o=o||0,a=a||512,i=i||342,l.width=a,l.height=i,a==+a&&(a+="px"),i==+i&&(i+="px"),l.coordsize=1e3*b+p+1e3*b,l.coordorigin="0 0",l.span=t._g.doc.createElement("span"),l.span.style.cssText="position:absolute;left:-9999em;top:-9999em;padding:0;margin:0;line-height:1;",h.appendChild(l.span),u.cssText=t.format("top:0;left:0;width:{0};height:{1};display:inline-block;position:relative;clip:rect(0 {0} {1} 0);overflow:hidden",a,i),1==r?(t._g.doc.body.appendChild(h),u.left=s+"px",u.top=o+"px",u.position="absolute"):r.firstChild?r.insertBefore(h,r.firstChild):r.appendChild(h),l.renderfix=function(){},l},t.prototype.clear=function(){t.eve("raphael.clear",this),this.canvas.innerHTML=d,this.span=t._g.doc.createElement("span"),this.span.style.cssText="position:absolute;left:-9999em;top:-9999em;padding:0;margin:0;line-height:1;display:inline;",this.canvas.appendChild(this.span),this.bottom=this.top=null},t.prototype.remove=function(){t.eve("raphael.remove",this),this.canvas.parentNode.removeChild(this.canvas);for(var e in this)this[e]="function"==typeof this[e]?t._removedFactory(e):null;return!0};var L=t.st;for(var z in M)M[e](z)&&!L[e](z)&&(L[z]=function(t){return function(){var e=arguments;return this.forEach(function(r){r[t].apply(r,e)})}}(z))}}.apply(e,i),!(void 0!==n&&(t.exports=n))}])}); \ No newline at end of file diff --git a/admin/bower_components/raphael/raphael.no-deps.js b/admin/bower_components/raphael/raphael.no-deps.js deleted file mode 100644 index c38945c..0000000 --- a/admin/bower_components/raphael/raphael.no-deps.js +++ /dev/null @@ -1,7927 +0,0 @@ -// ┌───────────────────────────────────────────────────────────────────────────────────────────────────────┐ \\ -// │ Raphaël 2.2.0 - JavaScript Vector Library │ \\ -// ├───────────────────────────────────────────────────────────────────────────────────────────────────────┤ \\ -// │ Copyright © 2008-2016 Dmitry Baranovskiy (http://raphaeljs.com) │ \\ -// │ Copyright © 2008-2016 Sencha Labs (http://sencha.com) │ \\ -// ├───────────────────────────────────────────────────────────────────────────────────────────────────────┤ \\ -// │ Licensed under the MIT (https://github.com/DmitryBaranovskiy/raphael/blob/master/license.txt) license.│ \\ -// └───────────────────────────────────────────────────────────────────────────────────────────────────────┘ \\ - -(function webpackUniversalModuleDefinition(root, factory) { - if(typeof exports === 'object' && typeof module === 'object') - module.exports = factory(require("eve")); - else if(typeof define === 'function' && define.amd) - define(["eve"], factory); - else if(typeof exports === 'object') - exports["Raphael"] = factory(require("eve")); - else - root["Raphael"] = factory(root["eve"]); -})(this, function(__WEBPACK_EXTERNAL_MODULE_2__) { -return /******/ (function(modules) { // webpackBootstrap -/******/ // The module cache -/******/ var installedModules = {}; - -/******/ // The require function -/******/ function __webpack_require__(moduleId) { - -/******/ // Check if module is in cache -/******/ if(installedModules[moduleId]) -/******/ return installedModules[moduleId].exports; - -/******/ // Create a new module (and put it into the cache) -/******/ var module = installedModules[moduleId] = { -/******/ exports: {}, -/******/ id: moduleId, -/******/ loaded: false -/******/ }; - -/******/ // Execute the module function -/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__); - -/******/ // Flag the module as loaded -/******/ module.loaded = true; - -/******/ // Return the exports of the module -/******/ return module.exports; -/******/ } - - -/******/ // expose the modules object (__webpack_modules__) -/******/ __webpack_require__.m = modules; - -/******/ // expose the module cache -/******/ __webpack_require__.c = installedModules; - -/******/ // __webpack_public_path__ -/******/ __webpack_require__.p = ""; - -/******/ // Load entry module and return exports -/******/ return __webpack_require__(0); -/******/ }) -/************************************************************************/ -/******/ ([ -/* 0 */ -/***/ function(module, exports, __webpack_require__) { - - var __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;!(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(1), __webpack_require__(3), __webpack_require__(4)], __WEBPACK_AMD_DEFINE_RESULT__ = function(R) { - - return R; - - }.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)); - -/***/ }, -/* 1 */ -/***/ function(module, exports, __webpack_require__) { - - var __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;!(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(2)], __WEBPACK_AMD_DEFINE_RESULT__ = function(eve) { - - /*\ - * Raphael - [ method ] - ** - * Creates a canvas object on which to draw. - * You must do this first, as all future calls to drawing methods - * from this instance will be bound to this canvas. - > Parameters - ** - - container (HTMLElement|string) DOM element or its ID which is going to be a parent for drawing surface - - width (number) - - height (number) - - callback (function) #optional callback function which is going to be executed in the context of newly created paper - * or - - x (number) - - y (number) - - width (number) - - height (number) - - callback (function) #optional callback function which is going to be executed in the context of newly created paper - * or - - all (array) (first 3 or 4 elements in the array are equal to [containerID, width, height] or [x, y, width, height]. The rest are element descriptions in format {type: type, <attributes>}). See @Paper.add. - - callback (function) #optional callback function which is going to be executed in the context of newly created paper - * or - - onReadyCallback (function) function that is going to be called on DOM ready event. You can also subscribe to this event via Eve’s “DOMLoad” event. In this case method returns `undefined`. - = (object) @Paper - > Usage - | // Each of the following examples create a canvas - | // that is 320px wide by 200px high. - | // Canvas is created at the viewport’s 10,50 coordinate. - | var paper = Raphael(10, 50, 320, 200); - | // Canvas is created at the top left corner of the #notepad element - | // (or its top right corner in dir="rtl" elements) - | var paper = Raphael(document.getElementById("notepad"), 320, 200); - | // Same as above - | var paper = Raphael("notepad", 320, 200); - | // Image dump - | var set = Raphael(["notepad", 320, 200, { - | type: "rect", - | x: 10, - | y: 10, - | width: 25, - | height: 25, - | stroke: "#f00" - | }, { - | type: "text", - | x: 30, - | y: 40, - | text: "Dump" - | }]); - \*/ - function R(first) { - if (R.is(first, "function")) { - return loaded ? first() : eve.on("raphael.DOMload", first); - } else if (R.is(first, array)) { - return R._engine.create[apply](R, first.splice(0, 3 + R.is(first[0], nu))).add(first); - } else { - var args = Array.prototype.slice.call(arguments, 0); - if (R.is(args[args.length - 1], "function")) { - var f = args.pop(); - return loaded ? f.call(R._engine.create[apply](R, args)) : eve.on("raphael.DOMload", function () { - f.call(R._engine.create[apply](R, args)); - }); - } else { - return R._engine.create[apply](R, arguments); - } - } - } - R.version = "2.2.0"; - R.eve = eve; - var loaded, - separator = /[, ]+/, - elements = {circle: 1, rect: 1, path: 1, ellipse: 1, text: 1, image: 1}, - formatrg = /\{(\d+)\}/g, - proto = "prototype", - has = "hasOwnProperty", - g = { - doc: document, - win: window - }, - oldRaphael = { - was: Object.prototype[has].call(g.win, "Raphael"), - is: g.win.Raphael - }, - Paper = function () { - /*\ - * Paper.ca - [ property (object) ] - ** - * Shortcut for @Paper.customAttributes - \*/ - /*\ - * Paper.customAttributes - [ property (object) ] - ** - * If you have a set of attributes that you would like to represent - * as a function of some number you can do it easily with custom attributes: - > Usage - | paper.customAttributes.hue = function (num) { - | num = num % 1; - | return {fill: "hsb(" + num + ", 0.75, 1)"}; - | }; - | // Custom attribute “hue” will change fill - | // to be given hue with fixed saturation and brightness. - | // Now you can use it like this: - | var c = paper.circle(10, 10, 10).attr({hue: .45}); - | // or even like this: - | c.animate({hue: 1}, 1e3); - | - | // You could also create custom attribute - | // with multiple parameters: - | paper.customAttributes.hsb = function (h, s, b) { - | return {fill: "hsb(" + [h, s, b].join(",") + ")"}; - | }; - | c.attr({hsb: "0.5 .8 1"}); - | c.animate({hsb: [1, 0, 0.5]}, 1e3); - \*/ - this.ca = this.customAttributes = {}; - }, - paperproto, - appendChild = "appendChild", - apply = "apply", - concat = "concat", - supportsTouch = ('ontouchstart' in g.win) || g.win.DocumentTouch && g.doc instanceof DocumentTouch, //taken from Modernizr touch test - E = "", - S = " ", - Str = String, - split = "split", - events = "click dblclick mousedown mousemove mouseout mouseover mouseup touchstart touchmove touchend touchcancel"[split](S), - touchMap = { - mousedown: "touchstart", - mousemove: "touchmove", - mouseup: "touchend" - }, - lowerCase = Str.prototype.toLowerCase, - math = Math, - mmax = math.max, - mmin = math.min, - abs = math.abs, - pow = math.pow, - PI = math.PI, - nu = "number", - string = "string", - array = "array", - toString = "toString", - fillString = "fill", - objectToString = Object.prototype.toString, - paper = {}, - push = "push", - ISURL = R._ISURL = /^url\(['"]?(.+?)['"]?\)$/i, - colourRegExp = /^\s*((#[a-f\d]{6})|(#[a-f\d]{3})|rgba?\(\s*([\d\.]+%?\s*,\s*[\d\.]+%?\s*,\s*[\d\.]+%?(?:\s*,\s*[\d\.]+%?)?)\s*\)|hsba?\(\s*([\d\.]+(?:deg|\xb0|%)?\s*,\s*[\d\.]+%?\s*,\s*[\d\.]+(?:%?\s*,\s*[\d\.]+)?)%?\s*\)|hsla?\(\s*([\d\.]+(?:deg|\xb0|%)?\s*,\s*[\d\.]+%?\s*,\s*[\d\.]+(?:%?\s*,\s*[\d\.]+)?)%?\s*\))\s*$/i, - isnan = {"NaN": 1, "Infinity": 1, "-Infinity": 1}, - bezierrg = /^(?:cubic-)?bezier\(([^,]+),([^,]+),([^,]+),([^\)]+)\)/, - round = math.round, - setAttribute = "setAttribute", - toFloat = parseFloat, - toInt = parseInt, - upperCase = Str.prototype.toUpperCase, - availableAttrs = R._availableAttrs = { - "arrow-end": "none", - "arrow-start": "none", - blur: 0, - "clip-rect": "0 0 1e9 1e9", - cursor: "default", - cx: 0, - cy: 0, - fill: "#fff", - "fill-opacity": 1, - font: '10px "Arial"', - "font-family": '"Arial"', - "font-size": "10", - "font-style": "normal", - "font-weight": 400, - gradient: 0, - height: 0, - href: "http://raphaeljs.com/", - "letter-spacing": 0, - opacity: 1, - path: "M0,0", - r: 0, - rx: 0, - ry: 0, - src: "", - stroke: "#000", - "stroke-dasharray": "", - "stroke-linecap": "butt", - "stroke-linejoin": "butt", - "stroke-miterlimit": 0, - "stroke-opacity": 1, - "stroke-width": 1, - target: "_blank", - "text-anchor": "middle", - title: "Raphael", - transform: "", - width: 0, - x: 0, - y: 0, - "class": "" - }, - availableAnimAttrs = R._availableAnimAttrs = { - blur: nu, - "clip-rect": "csv", - cx: nu, - cy: nu, - fill: "colour", - "fill-opacity": nu, - "font-size": nu, - height: nu, - opacity: nu, - path: "path", - r: nu, - rx: nu, - ry: nu, - stroke: "colour", - "stroke-opacity": nu, - "stroke-width": nu, - transform: "transform", - width: nu, - x: nu, - y: nu - }, - whitespace = /[\x09\x0a\x0b\x0c\x0d\x20\xa0\u1680\u180e\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u202f\u205f\u3000\u2028\u2029]/g, - commaSpaces = /[\x09\x0a\x0b\x0c\x0d\x20\xa0\u1680\u180e\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u202f\u205f\u3000\u2028\u2029]*,[\x09\x0a\x0b\x0c\x0d\x20\xa0\u1680\u180e\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u202f\u205f\u3000\u2028\u2029]*/, - hsrg = {hs: 1, rg: 1}, - p2s = /,?([achlmqrstvxz]),?/gi, - pathCommand = /([achlmrqstvz])[\x09\x0a\x0b\x0c\x0d\x20\xa0\u1680\u180e\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u202f\u205f\u3000\u2028\u2029,]*((-?\d*\.?\d*(?:e[\-+]?\d+)?[\x09\x0a\x0b\x0c\x0d\x20\xa0\u1680\u180e\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u202f\u205f\u3000\u2028\u2029]*,?[\x09\x0a\x0b\x0c\x0d\x20\xa0\u1680\u180e\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u202f\u205f\u3000\u2028\u2029]*)+)/ig, - tCommand = /([rstm])[\x09\x0a\x0b\x0c\x0d\x20\xa0\u1680\u180e\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u202f\u205f\u3000\u2028\u2029,]*((-?\d*\.?\d*(?:e[\-+]?\d+)?[\x09\x0a\x0b\x0c\x0d\x20\xa0\u1680\u180e\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u202f\u205f\u3000\u2028\u2029]*,?[\x09\x0a\x0b\x0c\x0d\x20\xa0\u1680\u180e\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u202f\u205f\u3000\u2028\u2029]*)+)/ig, - pathValues = /(-?\d*\.?\d*(?:e[\-+]?\d+)?)[\x09\x0a\x0b\x0c\x0d\x20\xa0\u1680\u180e\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u202f\u205f\u3000\u2028\u2029]*,?[\x09\x0a\x0b\x0c\x0d\x20\xa0\u1680\u180e\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u202f\u205f\u3000\u2028\u2029]*/ig, - radial_gradient = R._radial_gradient = /^r(?:\(([^,]+?)[\x09\x0a\x0b\x0c\x0d\x20\xa0\u1680\u180e\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u202f\u205f\u3000\u2028\u2029]*,[\x09\x0a\x0b\x0c\x0d\x20\xa0\u1680\u180e\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u202f\u205f\u3000\u2028\u2029]*([^\)]+?)\))?/, - eldata = {}, - sortByKey = function (a, b) { - return a.key - b.key; - }, - sortByNumber = function (a, b) { - return toFloat(a) - toFloat(b); - }, - fun = function () {}, - pipe = function (x) { - return x; - }, - rectPath = R._rectPath = function (x, y, w, h, r) { - if (r) { - return [["M", x + r, y], ["l", w - r * 2, 0], ["a", r, r, 0, 0, 1, r, r], ["l", 0, h - r * 2], ["a", r, r, 0, 0, 1, -r, r], ["l", r * 2 - w, 0], ["a", r, r, 0, 0, 1, -r, -r], ["l", 0, r * 2 - h], ["a", r, r, 0, 0, 1, r, -r], ["z"]]; - } - return [["M", x, y], ["l", w, 0], ["l", 0, h], ["l", -w, 0], ["z"]]; - }, - ellipsePath = function (x, y, rx, ry) { - if (ry == null) { - ry = rx; - } - return [["M", x, y], ["m", 0, -ry], ["a", rx, ry, 0, 1, 1, 0, 2 * ry], ["a", rx, ry, 0, 1, 1, 0, -2 * ry], ["z"]]; - }, - getPath = R._getPath = { - path: function (el) { - return el.attr("path"); - }, - circle: function (el) { - var a = el.attrs; - return ellipsePath(a.cx, a.cy, a.r); - }, - ellipse: function (el) { - var a = el.attrs; - return ellipsePath(a.cx, a.cy, a.rx, a.ry); - }, - rect: function (el) { - var a = el.attrs; - return rectPath(a.x, a.y, a.width, a.height, a.r); - }, - image: function (el) { - var a = el.attrs; - return rectPath(a.x, a.y, a.width, a.height); - }, - text: function (el) { - var bbox = el._getBBox(); - return rectPath(bbox.x, bbox.y, bbox.width, bbox.height); - }, - set : function(el) { - var bbox = el._getBBox(); - return rectPath(bbox.x, bbox.y, bbox.width, bbox.height); - } - }, - /*\ - * Raphael.mapPath - [ method ] - ** - * Transform the path string with given matrix. - > Parameters - - path (string) path string - - matrix (object) see @Matrix - = (string) transformed path string - \*/ - mapPath = R.mapPath = function (path, matrix) { - if (!matrix) { - return path; - } - var x, y, i, j, ii, jj, pathi; - path = path2curve(path); - for (i = 0, ii = path.length; i < ii; i++) { - pathi = path[i]; - for (j = 1, jj = pathi.length; j < jj; j += 2) { - x = matrix.x(pathi[j], pathi[j + 1]); - y = matrix.y(pathi[j], pathi[j + 1]); - pathi[j] = x; - pathi[j + 1] = y; - } - } - return path; - }; - - R._g = g; - /*\ - * Raphael.type - [ property (string) ] - ** - * Can be “SVG”, “VML” or empty, depending on browser support. - \*/ - R.type = (g.win.SVGAngle || g.doc.implementation.hasFeature("http://www.w3.org/TR/SVG11/feature#BasicStructure", "1.1") ? "SVG" : "VML"); - if (R.type == "VML") { - var d = g.doc.createElement("div"), - b; - d.innerHTML = '<v:shape adj="1"/>'; - b = d.firstChild; - b.style.behavior = "url(#default#VML)"; - if (!(b && typeof b.adj == "object")) { - return (R.type = E); - } - d = null; - } - /*\ - * Raphael.svg - [ property (boolean) ] - ** - * `true` if browser supports SVG. - \*/ - /*\ - * Raphael.vml - [ property (boolean) ] - ** - * `true` if browser supports VML. - \*/ - R.svg = !(R.vml = R.type == "VML"); - R._Paper = Paper; - /*\ - * Raphael.fn - [ property (object) ] - ** - * You can add your own method to the canvas. For example if you want to draw a pie chart, - * you can create your own pie chart function and ship it as a Raphaël plugin. To do this - * you need to extend the `Raphael.fn` object. You should modify the `fn` object before a - * Raphaël instance is created, otherwise it will take no effect. Please note that the - * ability for namespaced plugins was removed in Raphael 2.0. It is up to the plugin to - * ensure any namespacing ensures proper context. - > Usage - | Raphael.fn.arrow = function (x1, y1, x2, y2, size) { - | return this.path( ... ); - | }; - | // or create namespace - | Raphael.fn.mystuff = { - | arrow: function () {…}, - | star: function () {…}, - | // etc… - | }; - | var paper = Raphael(10, 10, 630, 480); - | // then use it - | paper.arrow(10, 10, 30, 30, 5).attr({fill: "#f00"}); - | paper.mystuff.arrow(); - | paper.mystuff.star(); - \*/ - R.fn = paperproto = Paper.prototype = R.prototype; - R._id = 0; - /*\ - * Raphael.is - [ method ] - ** - * Handful of replacements for `typeof` operator. - > Parameters - - o (…) any object or primitive - - type (string) name of the type, i.e. “string”, “function”, “number”, etc. - = (boolean) is given value is of given type - \*/ - R.is = function (o, type) { - type = lowerCase.call(type); - if (type == "finite") { - return !isnan[has](+o); - } - if (type == "array") { - return o instanceof Array; - } - return (type == "null" && o === null) || - (type == typeof o && o !== null) || - (type == "object" && o === Object(o)) || - (type == "array" && Array.isArray && Array.isArray(o)) || - objectToString.call(o).slice(8, -1).toLowerCase() == type; - }; - - function clone(obj) { - if (typeof obj == "function" || Object(obj) !== obj) { - return obj; - } - var res = new obj.constructor; - for (var key in obj) if (obj[has](key)) { - res[key] = clone(obj[key]); - } - return res; - } - - /*\ - * Raphael.angle - [ method ] - ** - * Returns angle between two or three points - > Parameters - - x1 (number) x coord of first point - - y1 (number) y coord of first point - - x2 (number) x coord of second point - - y2 (number) y coord of second point - - x3 (number) #optional x coord of third point - - y3 (number) #optional y coord of third point - = (number) angle in degrees. - \*/ - R.angle = function (x1, y1, x2, y2, x3, y3) { - if (x3 == null) { - var x = x1 - x2, - y = y1 - y2; - if (!x && !y) { - return 0; - } - return (180 + math.atan2(-y, -x) * 180 / PI + 360) % 360; - } else { - return R.angle(x1, y1, x3, y3) - R.angle(x2, y2, x3, y3); - } - }; - /*\ - * Raphael.rad - [ method ] - ** - * Transform angle to radians - > Parameters - - deg (number) angle in degrees - = (number) angle in radians. - \*/ - R.rad = function (deg) { - return deg % 360 * PI / 180; - }; - /*\ - * Raphael.deg - [ method ] - ** - * Transform angle to degrees - > Parameters - - rad (number) angle in radians - = (number) angle in degrees. - \*/ - R.deg = function (rad) { - return Math.round ((rad * 180 / PI% 360)* 1000) / 1000; - }; - /*\ - * Raphael.snapTo - [ method ] - ** - * Snaps given value to given grid. - > Parameters - - values (array|number) given array of values or step of the grid - - value (number) value to adjust - - tolerance (number) #optional tolerance for snapping. Default is `10`. - = (number) adjusted value. - \*/ - R.snapTo = function (values, value, tolerance) { - tolerance = R.is(tolerance, "finite") ? tolerance : 10; - if (R.is(values, array)) { - var i = values.length; - while (i--) if (abs(values[i] - value) <= tolerance) { - return values[i]; - } - } else { - values = +values; - var rem = value % values; - if (rem < tolerance) { - return value - rem; - } - if (rem > values - tolerance) { - return value - rem + values; - } - } - return value; - }; - - /*\ - * Raphael.createUUID - [ method ] - ** - * Returns RFC4122, version 4 ID - \*/ - var createUUID = R.createUUID = (function (uuidRegEx, uuidReplacer) { - return function () { - return "xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(uuidRegEx, uuidReplacer).toUpperCase(); - }; - })(/[xy]/g, function (c) { - var r = math.random() * 16 | 0, - v = c == "x" ? r : (r & 3 | 8); - return v.toString(16); - }); - - /*\ - * Raphael.setWindow - [ method ] - ** - * Used when you need to draw in `&lt;iframe>`. Switched window to the iframe one. - > Parameters - - newwin (window) new window object - \*/ - R.setWindow = function (newwin) { - eve("raphael.setWindow", R, g.win, newwin); - g.win = newwin; - g.doc = g.win.document; - if (R._engine.initWin) { - R._engine.initWin(g.win); - } - }; - var toHex = function (color) { - if (R.vml) { - // http://dean.edwards.name/weblog/2009/10/convert-any-colour-value-to-hex-in-msie/ - var trim = /^\s+|\s+$/g; - var bod; - try { - var docum = new ActiveXObject("htmlfile"); - docum.write("<body>"); - docum.close(); - bod = docum.body; - } catch(e) { - bod = createPopup().document.body; - } - var range = bod.createTextRange(); - toHex = cacher(function (color) { - try { - bod.style.color = Str(color).replace(trim, E); - var value = range.queryCommandValue("ForeColor"); - value = ((value & 255) << 16) | (value & 65280) | ((value & 16711680) >>> 16); - return "#" + ("000000" + value.toString(16)).slice(-6); - } catch(e) { - return "none"; - } - }); - } else { - var i = g.doc.createElement("i"); - i.title = "Rapha\xebl Colour Picker"; - i.style.display = "none"; - g.doc.body.appendChild(i); - toHex = cacher(function (color) { - i.style.color = color; - return g.doc.defaultView.getComputedStyle(i, E).getPropertyValue("color"); - }); - } - return toHex(color); - }, - hsbtoString = function () { - return "hsb(" + [this.h, this.s, this.b] + ")"; - }, - hsltoString = function () { - return "hsl(" + [this.h, this.s, this.l] + ")"; - }, - rgbtoString = function () { - return this.hex; - }, - prepareRGB = function (r, g, b) { - if (g == null && R.is(r, "object") && "r" in r && "g" in r && "b" in r) { - b = r.b; - g = r.g; - r = r.r; - } - if (g == null && R.is(r, string)) { - var clr = R.getRGB(r); - r = clr.r; - g = clr.g; - b = clr.b; - } - if (r > 1 || g > 1 || b > 1) { - r /= 255; - g /= 255; - b /= 255; - } - - return [r, g, b]; - }, - packageRGB = function (r, g, b, o) { - r *= 255; - g *= 255; - b *= 255; - var rgb = { - r: r, - g: g, - b: b, - hex: R.rgb(r, g, b), - toString: rgbtoString - }; - R.is(o, "finite") && (rgb.opacity = o); - return rgb; - }; - - /*\ - * Raphael.color - [ method ] - ** - * Parses the color string and returns object with all values for the given color. - > Parameters - - clr (string) color string in one of the supported formats (see @Raphael.getRGB) - = (object) Combined RGB & HSB object in format: - o { - o r (number) red, - o g (number) green, - o b (number) blue, - o hex (string) color in HTML/CSS format: #••••••, - o error (boolean) `true` if string can’t be parsed, - o h (number) hue, - o s (number) saturation, - o v (number) value (brightness), - o l (number) lightness - o } - \*/ - R.color = function (clr) { - var rgb; - if (R.is(clr, "object") && "h" in clr && "s" in clr && "b" in clr) { - rgb = R.hsb2rgb(clr); - clr.r = rgb.r; - clr.g = rgb.g; - clr.b = rgb.b; - clr.hex = rgb.hex; - } else if (R.is(clr, "object") && "h" in clr && "s" in clr && "l" in clr) { - rgb = R.hsl2rgb(clr); - clr.r = rgb.r; - clr.g = rgb.g; - clr.b = rgb.b; - clr.hex = rgb.hex; - } else { - if (R.is(clr, "string")) { - clr = R.getRGB(clr); - } - if (R.is(clr, "object") && "r" in clr && "g" in clr && "b" in clr) { - rgb = R.rgb2hsl(clr); - clr.h = rgb.h; - clr.s = rgb.s; - clr.l = rgb.l; - rgb = R.rgb2hsb(clr); - clr.v = rgb.b; - } else { - clr = {hex: "none"}; - clr.r = clr.g = clr.b = clr.h = clr.s = clr.v = clr.l = -1; - } - } - clr.toString = rgbtoString; - return clr; - }; - /*\ - * Raphael.hsb2rgb - [ method ] - ** - * Converts HSB values to RGB object. - > Parameters - - h (number) hue - - s (number) saturation - - v (number) value or brightness - = (object) RGB object in format: - o { - o r (number) red, - o g (number) green, - o b (number) blue, - o hex (string) color in HTML/CSS format: #•••••• - o } - \*/ - R.hsb2rgb = function (h, s, v, o) { - if (this.is(h, "object") && "h" in h && "s" in h && "b" in h) { - v = h.b; - s = h.s; - o = h.o; - h = h.h; - } - h *= 360; - var R, G, B, X, C; - h = (h % 360) / 60; - C = v * s; - X = C * (1 - abs(h % 2 - 1)); - R = G = B = v - C; - - h = ~~h; - R += [C, X, 0, 0, X, C][h]; - G += [X, C, C, X, 0, 0][h]; - B += [0, 0, X, C, C, X][h]; - return packageRGB(R, G, B, o); - }; - /*\ - * Raphael.hsl2rgb - [ method ] - ** - * Converts HSL values to RGB object. - > Parameters - - h (number) hue - - s (number) saturation - - l (number) luminosity - = (object) RGB object in format: - o { - o r (number) red, - o g (number) green, - o b (number) blue, - o hex (string) color in HTML/CSS format: #•••••• - o } - \*/ - R.hsl2rgb = function (h, s, l, o) { - if (this.is(h, "object") && "h" in h && "s" in h && "l" in h) { - l = h.l; - s = h.s; - h = h.h; - } - if (h > 1 || s > 1 || l > 1) { - h /= 360; - s /= 100; - l /= 100; - } - h *= 360; - var R, G, B, X, C; - h = (h % 360) / 60; - C = 2 * s * (l < .5 ? l : 1 - l); - X = C * (1 - abs(h % 2 - 1)); - R = G = B = l - C / 2; - - h = ~~h; - R += [C, X, 0, 0, X, C][h]; - G += [X, C, C, X, 0, 0][h]; - B += [0, 0, X, C, C, X][h]; - return packageRGB(R, G, B, o); - }; - /*\ - * Raphael.rgb2hsb - [ method ] - ** - * Converts RGB values to HSB object. - > Parameters - - r (number) red - - g (number) green - - b (number) blue - = (object) HSB object in format: - o { - o h (number) hue - o s (number) saturation - o b (number) brightness - o } - \*/ - R.rgb2hsb = function (r, g, b) { - b = prepareRGB(r, g, b); - r = b[0]; - g = b[1]; - b = b[2]; - - var H, S, V, C; - V = mmax(r, g, b); - C = V - mmin(r, g, b); - H = (C == 0 ? null : - V == r ? (g - b) / C : - V == g ? (b - r) / C + 2 : - (r - g) / C + 4 - ); - H = ((H + 360) % 6) * 60 / 360; - S = C == 0 ? 0 : C / V; - return {h: H, s: S, b: V, toString: hsbtoString}; - }; - /*\ - * Raphael.rgb2hsl - [ method ] - ** - * Converts RGB values to HSL object. - > Parameters - - r (number) red - - g (number) green - - b (number) blue - = (object) HSL object in format: - o { - o h (number) hue - o s (number) saturation - o l (number) luminosity - o } - \*/ - R.rgb2hsl = function (r, g, b) { - b = prepareRGB(r, g, b); - r = b[0]; - g = b[1]; - b = b[2]; - - var H, S, L, M, m, C; - M = mmax(r, g, b); - m = mmin(r, g, b); - C = M - m; - H = (C == 0 ? null : - M == r ? (g - b) / C : - M == g ? (b - r) / C + 2 : - (r - g) / C + 4); - H = ((H + 360) % 6) * 60 / 360; - L = (M + m) / 2; - S = (C == 0 ? 0 : - L < .5 ? C / (2 * L) : - C / (2 - 2 * L)); - return {h: H, s: S, l: L, toString: hsltoString}; - }; - R._path2string = function () { - return this.join(",").replace(p2s, "$1"); - }; - function repush(array, item) { - for (var i = 0, ii = array.length; i < ii; i++) if (array[i] === item) { - return array.push(array.splice(i, 1)[0]); - } - } - function cacher(f, scope, postprocessor) { - function newf() { - var arg = Array.prototype.slice.call(arguments, 0), - args = arg.join("\u2400"), - cache = newf.cache = newf.cache || {}, - count = newf.count = newf.count || []; - if (cache[has](args)) { - repush(count, args); - return postprocessor ? postprocessor(cache[args]) : cache[args]; - } - count.length >= 1e3 && delete cache[count.shift()]; - count.push(args); - cache[args] = f[apply](scope, arg); - return postprocessor ? postprocessor(cache[args]) : cache[args]; - } - return newf; - } - - var preload = R._preload = function (src, f) { - var img = g.doc.createElement("img"); - img.style.cssText = "position:absolute;left:-9999em;top:-9999em"; - img.onload = function () { - f.call(this); - this.onload = null; - g.doc.body.removeChild(this); - }; - img.onerror = function () { - g.doc.body.removeChild(this); - }; - g.doc.body.appendChild(img); - img.src = src; - }; - - function clrToString() { - return this.hex; - } - - /*\ - * Raphael.getRGB - [ method ] - ** - * Parses colour string as RGB object - > Parameters - - colour (string) colour string in one of formats: - # <ul> - # <li>Colour name (“<code>red</code>”, “<code>green</code>”, “<code>cornflowerblue</code>”, etc)</li> - # <li>#••• — shortened HTML colour: (“<code>#000</code>”, “<code>#fc0</code>”, etc)</li> - # <li>#•••••• — full length HTML colour: (“<code>#000000</code>”, “<code>#bd2300</code>”)</li> - # <li>rgb(•••, •••, •••) — red, green and blue channels’ values: (“<code>rgb(200,&nbsp;100,&nbsp;0)</code>”)</li> - # <li>rgb(•••%, •••%, •••%) — same as above, but in %: (“<code>rgb(100%,&nbsp;175%,&nbsp;0%)</code>”)</li> - # <li>hsb(•••, •••, •••) — hue, saturation and brightness values: (“<code>hsb(0.5,&nbsp;0.25,&nbsp;1)</code>”)</li> - # <li>hsb(•••%, •••%, •••%) — same as above, but in %</li> - # <li>hsl(•••, •••, •••) — same as hsb</li> - # <li>hsl(•••%, •••%, •••%) — same as hsb</li> - # </ul> - = (object) RGB object in format: - o { - o r (number) red, - o g (number) green, - o b (number) blue - o hex (string) color in HTML/CSS format: #••••••, - o error (boolean) true if string can’t be parsed - o } - \*/ - R.getRGB = cacher(function (colour) { - if (!colour || !!((colour = Str(colour)).indexOf("-") + 1)) { - return {r: -1, g: -1, b: -1, hex: "none", error: 1, toString: clrToString}; - } - if (colour == "none") { - return {r: -1, g: -1, b: -1, hex: "none", toString: clrToString}; - } - !(hsrg[has](colour.toLowerCase().substring(0, 2)) || colour.charAt() == "#") && (colour = toHex(colour)); - var res, - red, - green, - blue, - opacity, - t, - values, - rgb = colour.match(colourRegExp); - if (rgb) { - if (rgb[2]) { - blue = toInt(rgb[2].substring(5), 16); - green = toInt(rgb[2].substring(3, 5), 16); - red = toInt(rgb[2].substring(1, 3), 16); - } - if (rgb[3]) { - blue = toInt((t = rgb[3].charAt(3)) + t, 16); - green = toInt((t = rgb[3].charAt(2)) + t, 16); - red = toInt((t = rgb[3].charAt(1)) + t, 16); - } - if (rgb[4]) { - values = rgb[4][split](commaSpaces); - red = toFloat(values[0]); - values[0].slice(-1) == "%" && (red *= 2.55); - green = toFloat(values[1]); - values[1].slice(-1) == "%" && (green *= 2.55); - blue = toFloat(values[2]); - values[2].slice(-1) == "%" && (blue *= 2.55); - rgb[1].toLowerCase().slice(0, 4) == "rgba" && (opacity = toFloat(values[3])); - values[3] && values[3].slice(-1) == "%" && (opacity /= 100); - } - if (rgb[5]) { - values = rgb[5][split](commaSpaces); - red = toFloat(values[0]); - values[0].slice(-1) == "%" && (red *= 2.55); - green = toFloat(values[1]); - values[1].slice(-1) == "%" && (green *= 2.55); - blue = toFloat(values[2]); - values[2].slice(-1) == "%" && (blue *= 2.55); - (values[0].slice(-3) == "deg" || values[0].slice(-1) == "\xb0") && (red /= 360); - rgb[1].toLowerCase().slice(0, 4) == "hsba" && (opacity = toFloat(values[3])); - values[3] && values[3].slice(-1) == "%" && (opacity /= 100); - return R.hsb2rgb(red, green, blue, opacity); - } - if (rgb[6]) { - values = rgb[6][split](commaSpaces); - red = toFloat(values[0]); - values[0].slice(-1) == "%" && (red *= 2.55); - green = toFloat(values[1]); - values[1].slice(-1) == "%" && (green *= 2.55); - blue = toFloat(values[2]); - values[2].slice(-1) == "%" && (blue *= 2.55); - (values[0].slice(-3) == "deg" || values[0].slice(-1) == "\xb0") && (red /= 360); - rgb[1].toLowerCase().slice(0, 4) == "hsla" && (opacity = toFloat(values[3])); - values[3] && values[3].slice(-1) == "%" && (opacity /= 100); - return R.hsl2rgb(red, green, blue, opacity); - } - rgb = {r: red, g: green, b: blue, toString: clrToString}; - rgb.hex = "#" + (16777216 | blue | (green << 8) | (red << 16)).toString(16).slice(1); - R.is(opacity, "finite") && (rgb.opacity = opacity); - return rgb; - } - return {r: -1, g: -1, b: -1, hex: "none", error: 1, toString: clrToString}; - }, R); - /*\ - * Raphael.hsb - [ method ] - ** - * Converts HSB values to hex representation of the colour. - > Parameters - - h (number) hue - - s (number) saturation - - b (number) value or brightness - = (string) hex representation of the colour. - \*/ - R.hsb = cacher(function (h, s, b) { - return R.hsb2rgb(h, s, b).hex; - }); - /*\ - * Raphael.hsl - [ method ] - ** - * Converts HSL values to hex representation of the colour. - > Parameters - - h (number) hue - - s (number) saturation - - l (number) luminosity - = (string) hex representation of the colour. - \*/ - R.hsl = cacher(function (h, s, l) { - return R.hsl2rgb(h, s, l).hex; - }); - /*\ - * Raphael.rgb - [ method ] - ** - * Converts RGB values to hex representation of the colour. - > Parameters - - r (number) red - - g (number) green - - b (number) blue - = (string) hex representation of the colour. - \*/ - R.rgb = cacher(function (r, g, b) { - function round(x) { return (x + 0.5) | 0; } - return "#" + (16777216 | round(b) | (round(g) << 8) | (round(r) << 16)).toString(16).slice(1); - }); - /*\ - * Raphael.getColor - [ method ] - ** - * On each call returns next colour in the spectrum. To reset it back to red call @Raphael.getColor.reset - > Parameters - - value (number) #optional brightness, default is `0.75` - = (string) hex representation of the colour. - \*/ - R.getColor = function (value) { - var start = this.getColor.start = this.getColor.start || {h: 0, s: 1, b: value || .75}, - rgb = this.hsb2rgb(start.h, start.s, start.b); - start.h += .075; - if (start.h > 1) { - start.h = 0; - start.s -= .2; - start.s <= 0 && (this.getColor.start = {h: 0, s: 1, b: start.b}); - } - return rgb.hex; - }; - /*\ - * Raphael.getColor.reset - [ method ] - ** - * Resets spectrum position for @Raphael.getColor back to red. - \*/ - R.getColor.reset = function () { - delete this.start; - }; - - // http://schepers.cc/getting-to-the-point - function catmullRom2bezier(crp, z) { - var d = []; - for (var i = 0, iLen = crp.length; iLen - 2 * !z > i; i += 2) { - var p = [ - {x: +crp[i - 2], y: +crp[i - 1]}, - {x: +crp[i], y: +crp[i + 1]}, - {x: +crp[i + 2], y: +crp[i + 3]}, - {x: +crp[i + 4], y: +crp[i + 5]} - ]; - if (z) { - if (!i) { - p[0] = {x: +crp[iLen - 2], y: +crp[iLen - 1]}; - } else if (iLen - 4 == i) { - p[3] = {x: +crp[0], y: +crp[1]}; - } else if (iLen - 2 == i) { - p[2] = {x: +crp[0], y: +crp[1]}; - p[3] = {x: +crp[2], y: +crp[3]}; - } - } else { - if (iLen - 4 == i) { - p[3] = p[2]; - } else if (!i) { - p[0] = {x: +crp[i], y: +crp[i + 1]}; - } - } - d.push(["C", - (-p[0].x + 6 * p[1].x + p[2].x) / 6, - (-p[0].y + 6 * p[1].y + p[2].y) / 6, - (p[1].x + 6 * p[2].x - p[3].x) / 6, - (p[1].y + 6*p[2].y - p[3].y) / 6, - p[2].x, - p[2].y - ]); - } - - return d; - } - /*\ - * Raphael.parsePathString - [ method ] - ** - * Utility method - ** - * Parses given path string into an array of arrays of path segments. - > Parameters - - pathString (string|array) path string or array of segments (in the last case it will be returned straight away) - = (array) array of segments. - \*/ - R.parsePathString = function (pathString) { - if (!pathString) { - return null; - } - var pth = paths(pathString); - if (pth.arr) { - return pathClone(pth.arr); - } - - var paramCounts = {a: 7, c: 6, h: 1, l: 2, m: 2, r: 4, q: 4, s: 4, t: 2, v: 1, z: 0}, - data = []; - if (R.is(pathString, array) && R.is(pathString[0], array)) { // rough assumption - data = pathClone(pathString); - } - if (!data.length) { - Str(pathString).replace(pathCommand, function (a, b, c) { - var params = [], - name = b.toLowerCase(); - c.replace(pathValues, function (a, b) { - b && params.push(+b); - }); - if (name == "m" && params.length > 2) { - data.push([b][concat](params.splice(0, 2))); - name = "l"; - b = b == "m" ? "l" : "L"; - } - if (name == "r") { - data.push([b][concat](params)); - } else while (params.length >= paramCounts[name]) { - data.push([b][concat](params.splice(0, paramCounts[name]))); - if (!paramCounts[name]) { - break; - } - } - }); - } - data.toString = R._path2string; - pth.arr = pathClone(data); - return data; - }; - /*\ - * Raphael.parseTransformString - [ method ] - ** - * Utility method - ** - * Parses given path string into an array of transformations. - > Parameters - - TString (string|array) transform string or array of transformations (in the last case it will be returned straight away) - = (array) array of transformations. - \*/ - R.parseTransformString = cacher(function (TString) { - if (!TString) { - return null; - } - var paramCounts = {r: 3, s: 4, t: 2, m: 6}, - data = []; - if (R.is(TString, array) && R.is(TString[0], array)) { // rough assumption - data = pathClone(TString); - } - if (!data.length) { - Str(TString).replace(tCommand, function (a, b, c) { - var params = [], - name = lowerCase.call(b); - c.replace(pathValues, function (a, b) { - b && params.push(+b); - }); - data.push([b][concat](params)); - }); - } - data.toString = R._path2string; - return data; - }); - // PATHS - var paths = function (ps) { - var p = paths.ps = paths.ps || {}; - if (p[ps]) { - p[ps].sleep = 100; - } else { - p[ps] = { - sleep: 100 - }; - } - setTimeout(function () { - for (var key in p) if (p[has](key) && key != ps) { - p[key].sleep--; - !p[key].sleep && delete p[key]; - } - }); - return p[ps]; - }; - /*\ - * Raphael.findDotsAtSegment - [ method ] - ** - * Utility method - ** - * Find dot coordinates on the given cubic bezier curve at the given t. - > Parameters - - p1x (number) x of the first point of the curve - - p1y (number) y of the first point of the curve - - c1x (number) x of the first anchor of the curve - - c1y (number) y of the first anchor of the curve - - c2x (number) x of the second anchor of the curve - - c2y (number) y of the second anchor of the curve - - p2x (number) x of the second point of the curve - - p2y (number) y of the second point of the curve - - t (number) position on the curve (0..1) - = (object) point information in format: - o { - o x: (number) x coordinate of the point - o y: (number) y coordinate of the point - o m: { - o x: (number) x coordinate of the left anchor - o y: (number) y coordinate of the left anchor - o } - o n: { - o x: (number) x coordinate of the right anchor - o y: (number) y coordinate of the right anchor - o } - o start: { - o x: (number) x coordinate of the start of the curve - o y: (number) y coordinate of the start of the curve - o } - o end: { - o x: (number) x coordinate of the end of the curve - o y: (number) y coordinate of the end of the curve - o } - o alpha: (number) angle of the curve derivative at the point - o } - \*/ - R.findDotsAtSegment = function (p1x, p1y, c1x, c1y, c2x, c2y, p2x, p2y, t) { - var t1 = 1 - t, - t13 = pow(t1, 3), - t12 = pow(t1, 2), - t2 = t * t, - t3 = t2 * t, - x = t13 * p1x + t12 * 3 * t * c1x + t1 * 3 * t * t * c2x + t3 * p2x, - y = t13 * p1y + t12 * 3 * t * c1y + t1 * 3 * t * t * c2y + t3 * p2y, - mx = p1x + 2 * t * (c1x - p1x) + t2 * (c2x - 2 * c1x + p1x), - my = p1y + 2 * t * (c1y - p1y) + t2 * (c2y - 2 * c1y + p1y), - nx = c1x + 2 * t * (c2x - c1x) + t2 * (p2x - 2 * c2x + c1x), - ny = c1y + 2 * t * (c2y - c1y) + t2 * (p2y - 2 * c2y + c1y), - ax = t1 * p1x + t * c1x, - ay = t1 * p1y + t * c1y, - cx = t1 * c2x + t * p2x, - cy = t1 * c2y + t * p2y, - alpha = (90 - math.atan2(mx - nx, my - ny) * 180 / PI); - (mx > nx || my < ny) && (alpha += 180); - return { - x: x, - y: y, - m: {x: mx, y: my}, - n: {x: nx, y: ny}, - start: {x: ax, y: ay}, - end: {x: cx, y: cy}, - alpha: alpha - }; - }; - /*\ - * Raphael.bezierBBox - [ method ] - ** - * Utility method - ** - * Return bounding box of a given cubic bezier curve - > Parameters - - p1x (number) x of the first point of the curve - - p1y (number) y of the first point of the curve - - c1x (number) x of the first anchor of the curve - - c1y (number) y of the first anchor of the curve - - c2x (number) x of the second anchor of the curve - - c2y (number) y of the second anchor of the curve - - p2x (number) x of the second point of the curve - - p2y (number) y of the second point of the curve - * or - - bez (array) array of six points for bezier curve - = (object) point information in format: - o { - o min: { - o x: (number) x coordinate of the left point - o y: (number) y coordinate of the top point - o } - o max: { - o x: (number) x coordinate of the right point - o y: (number) y coordinate of the bottom point - o } - o } - \*/ - R.bezierBBox = function (p1x, p1y, c1x, c1y, c2x, c2y, p2x, p2y) { - if (!R.is(p1x, "array")) { - p1x = [p1x, p1y, c1x, c1y, c2x, c2y, p2x, p2y]; - } - var bbox = curveDim.apply(null, p1x); - return { - x: bbox.min.x, - y: bbox.min.y, - x2: bbox.max.x, - y2: bbox.max.y, - width: bbox.max.x - bbox.min.x, - height: bbox.max.y - bbox.min.y - }; - }; - /*\ - * Raphael.isPointInsideBBox - [ method ] - ** - * Utility method - ** - * Returns `true` if given point is inside bounding boxes. - > Parameters - - bbox (string) bounding box - - x (string) x coordinate of the point - - y (string) y coordinate of the point - = (boolean) `true` if point inside - \*/ - R.isPointInsideBBox = function (bbox, x, y) { - return x >= bbox.x && x <= bbox.x2 && y >= bbox.y && y <= bbox.y2; - }; - /*\ - * Raphael.isBBoxIntersect - [ method ] - ** - * Utility method - ** - * Returns `true` if two bounding boxes intersect - > Parameters - - bbox1 (string) first bounding box - - bbox2 (string) second bounding box - = (boolean) `true` if they intersect - \*/ - R.isBBoxIntersect = function (bbox1, bbox2) { - var i = R.isPointInsideBBox; - return i(bbox2, bbox1.x, bbox1.y) - || i(bbox2, bbox1.x2, bbox1.y) - || i(bbox2, bbox1.x, bbox1.y2) - || i(bbox2, bbox1.x2, bbox1.y2) - || i(bbox1, bbox2.x, bbox2.y) - || i(bbox1, bbox2.x2, bbox2.y) - || i(bbox1, bbox2.x, bbox2.y2) - || i(bbox1, bbox2.x2, bbox2.y2) - || (bbox1.x < bbox2.x2 && bbox1.x > bbox2.x || bbox2.x < bbox1.x2 && bbox2.x > bbox1.x) - && (bbox1.y < bbox2.y2 && bbox1.y > bbox2.y || bbox2.y < bbox1.y2 && bbox2.y > bbox1.y); - }; - function base3(t, p1, p2, p3, p4) { - var t1 = -3 * p1 + 9 * p2 - 9 * p3 + 3 * p4, - t2 = t * t1 + 6 * p1 - 12 * p2 + 6 * p3; - return t * t2 - 3 * p1 + 3 * p2; - } - function bezlen(x1, y1, x2, y2, x3, y3, x4, y4, z) { - if (z == null) { - z = 1; - } - z = z > 1 ? 1 : z < 0 ? 0 : z; - var z2 = z / 2, - n = 12, - Tvalues = [-0.1252,0.1252,-0.3678,0.3678,-0.5873,0.5873,-0.7699,0.7699,-0.9041,0.9041,-0.9816,0.9816], - Cvalues = [0.2491,0.2491,0.2335,0.2335,0.2032,0.2032,0.1601,0.1601,0.1069,0.1069,0.0472,0.0472], - sum = 0; - for (var i = 0; i < n; i++) { - var ct = z2 * Tvalues[i] + z2, - xbase = base3(ct, x1, x2, x3, x4), - ybase = base3(ct, y1, y2, y3, y4), - comb = xbase * xbase + ybase * ybase; - sum += Cvalues[i] * math.sqrt(comb); - } - return z2 * sum; - } - function getTatLen(x1, y1, x2, y2, x3, y3, x4, y4, ll) { - if (ll < 0 || bezlen(x1, y1, x2, y2, x3, y3, x4, y4) < ll) { - return; - } - var t = 1, - step = t / 2, - t2 = t - step, - l, - e = .01; - l = bezlen(x1, y1, x2, y2, x3, y3, x4, y4, t2); - while (abs(l - ll) > e) { - step /= 2; - t2 += (l < ll ? 1 : -1) * step; - l = bezlen(x1, y1, x2, y2, x3, y3, x4, y4, t2); - } - return t2; - } - function intersect(x1, y1, x2, y2, x3, y3, x4, y4) { - if ( - mmax(x1, x2) < mmin(x3, x4) || - mmin(x1, x2) > mmax(x3, x4) || - mmax(y1, y2) < mmin(y3, y4) || - mmin(y1, y2) > mmax(y3, y4) - ) { - return; - } - var nx = (x1 * y2 - y1 * x2) * (x3 - x4) - (x1 - x2) * (x3 * y4 - y3 * x4), - ny = (x1 * y2 - y1 * x2) * (y3 - y4) - (y1 - y2) * (x3 * y4 - y3 * x4), - denominator = (x1 - x2) * (y3 - y4) - (y1 - y2) * (x3 - x4); - - if (!denominator) { - return; - } - var px = nx / denominator, - py = ny / denominator, - px2 = +px.toFixed(2), - py2 = +py.toFixed(2); - if ( - px2 < +mmin(x1, x2).toFixed(2) || - px2 > +mmax(x1, x2).toFixed(2) || - px2 < +mmin(x3, x4).toFixed(2) || - px2 > +mmax(x3, x4).toFixed(2) || - py2 < +mmin(y1, y2).toFixed(2) || - py2 > +mmax(y1, y2).toFixed(2) || - py2 < +mmin(y3, y4).toFixed(2) || - py2 > +mmax(y3, y4).toFixed(2) - ) { - return; - } - return {x: px, y: py}; - } - function inter(bez1, bez2) { - return interHelper(bez1, bez2); - } - function interCount(bez1, bez2) { - return interHelper(bez1, bez2, 1); - } - function interHelper(bez1, bez2, justCount) { - var bbox1 = R.bezierBBox(bez1), - bbox2 = R.bezierBBox(bez2); - if (!R.isBBoxIntersect(bbox1, bbox2)) { - return justCount ? 0 : []; - } - var l1 = bezlen.apply(0, bez1), - l2 = bezlen.apply(0, bez2), - n1 = mmax(~~(l1 / 5), 1), - n2 = mmax(~~(l2 / 5), 1), - dots1 = [], - dots2 = [], - xy = {}, - res = justCount ? 0 : []; - for (var i = 0; i < n1 + 1; i++) { - var p = R.findDotsAtSegment.apply(R, bez1.concat(i / n1)); - dots1.push({x: p.x, y: p.y, t: i / n1}); - } - for (i = 0; i < n2 + 1; i++) { - p = R.findDotsAtSegment.apply(R, bez2.concat(i / n2)); - dots2.push({x: p.x, y: p.y, t: i / n2}); - } - for (i = 0; i < n1; i++) { - for (var j = 0; j < n2; j++) { - var di = dots1[i], - di1 = dots1[i + 1], - dj = dots2[j], - dj1 = dots2[j + 1], - ci = abs(di1.x - di.x) < .001 ? "y" : "x", - cj = abs(dj1.x - dj.x) < .001 ? "y" : "x", - is = intersect(di.x, di.y, di1.x, di1.y, dj.x, dj.y, dj1.x, dj1.y); - if (is) { - if (xy[is.x.toFixed(4)] == is.y.toFixed(4)) { - continue; - } - xy[is.x.toFixed(4)] = is.y.toFixed(4); - var t1 = di.t + abs((is[ci] - di[ci]) / (di1[ci] - di[ci])) * (di1.t - di.t), - t2 = dj.t + abs((is[cj] - dj[cj]) / (dj1[cj] - dj[cj])) * (dj1.t - dj.t); - if (t1 >= 0 && t1 <= 1.001 && t2 >= 0 && t2 <= 1.001) { - if (justCount) { - res++; - } else { - res.push({ - x: is.x, - y: is.y, - t1: mmin(t1, 1), - t2: mmin(t2, 1) - }); - } - } - } - } - } - return res; - } - /*\ - * Raphael.pathIntersection - [ method ] - ** - * Utility method - ** - * Finds intersections of two paths - > Parameters - - path1 (string) path string - - path2 (string) path string - = (array) dots of intersection - o [ - o { - o x: (number) x coordinate of the point - o y: (number) y coordinate of the point - o t1: (number) t value for segment of path1 - o t2: (number) t value for segment of path2 - o segment1: (number) order number for segment of path1 - o segment2: (number) order number for segment of path2 - o bez1: (array) eight coordinates representing beziér curve for the segment of path1 - o bez2: (array) eight coordinates representing beziér curve for the segment of path2 - o } - o ] - \*/ - R.pathIntersection = function (path1, path2) { - return interPathHelper(path1, path2); - }; - R.pathIntersectionNumber = function (path1, path2) { - return interPathHelper(path1, path2, 1); - }; - function interPathHelper(path1, path2, justCount) { - path1 = R._path2curve(path1); - path2 = R._path2curve(path2); - var x1, y1, x2, y2, x1m, y1m, x2m, y2m, bez1, bez2, - res = justCount ? 0 : []; - for (var i = 0, ii = path1.length; i < ii; i++) { - var pi = path1[i]; - if (pi[0] == "M") { - x1 = x1m = pi[1]; - y1 = y1m = pi[2]; - } else { - if (pi[0] == "C") { - bez1 = [x1, y1].concat(pi.slice(1)); - x1 = bez1[6]; - y1 = bez1[7]; - } else { - bez1 = [x1, y1, x1, y1, x1m, y1m, x1m, y1m]; - x1 = x1m; - y1 = y1m; - } - for (var j = 0, jj = path2.length; j < jj; j++) { - var pj = path2[j]; - if (pj[0] == "M") { - x2 = x2m = pj[1]; - y2 = y2m = pj[2]; - } else { - if (pj[0] == "C") { - bez2 = [x2, y2].concat(pj.slice(1)); - x2 = bez2[6]; - y2 = bez2[7]; - } else { - bez2 = [x2, y2, x2, y2, x2m, y2m, x2m, y2m]; - x2 = x2m; - y2 = y2m; - } - var intr = interHelper(bez1, bez2, justCount); - if (justCount) { - res += intr; - } else { - for (var k = 0, kk = intr.length; k < kk; k++) { - intr[k].segment1 = i; - intr[k].segment2 = j; - intr[k].bez1 = bez1; - intr[k].bez2 = bez2; - } - res = res.concat(intr); - } - } - } - } - } - return res; - } - /*\ - * Raphael.isPointInsidePath - [ method ] - ** - * Utility method - ** - * Returns `true` if given point is inside a given closed path. - > Parameters - - path (string) path string - - x (number) x of the point - - y (number) y of the point - = (boolean) true, if point is inside the path - \*/ - R.isPointInsidePath = function (path, x, y) { - var bbox = R.pathBBox(path); - return R.isPointInsideBBox(bbox, x, y) && - interPathHelper(path, [["M", x, y], ["H", bbox.x2 + 10]], 1) % 2 == 1; - }; - R._removedFactory = function (methodname) { - return function () { - eve("raphael.log", null, "Rapha\xebl: you are calling to method \u201c" + methodname + "\u201d of removed object", methodname); - }; - }; - /*\ - * Raphael.pathBBox - [ method ] - ** - * Utility method - ** - * Return bounding box of a given path - > Parameters - - path (string) path string - = (object) bounding box - o { - o x: (number) x coordinate of the left top point of the box - o y: (number) y coordinate of the left top point of the box - o x2: (number) x coordinate of the right bottom point of the box - o y2: (number) y coordinate of the right bottom point of the box - o width: (number) width of the box - o height: (number) height of the box - o cx: (number) x coordinate of the center of the box - o cy: (number) y coordinate of the center of the box - o } - \*/ - var pathDimensions = R.pathBBox = function (path) { - var pth = paths(path); - if (pth.bbox) { - return clone(pth.bbox); - } - if (!path) { - return {x: 0, y: 0, width: 0, height: 0, x2: 0, y2: 0}; - } - path = path2curve(path); - var x = 0, - y = 0, - X = [], - Y = [], - p; - for (var i = 0, ii = path.length; i < ii; i++) { - p = path[i]; - if (p[0] == "M") { - x = p[1]; - y = p[2]; - X.push(x); - Y.push(y); - } else { - var dim = curveDim(x, y, p[1], p[2], p[3], p[4], p[5], p[6]); - X = X[concat](dim.min.x, dim.max.x); - Y = Y[concat](dim.min.y, dim.max.y); - x = p[5]; - y = p[6]; - } - } - var xmin = mmin[apply](0, X), - ymin = mmin[apply](0, Y), - xmax = mmax[apply](0, X), - ymax = mmax[apply](0, Y), - width = xmax - xmin, - height = ymax - ymin, - bb = { - x: xmin, - y: ymin, - x2: xmax, - y2: ymax, - width: width, - height: height, - cx: xmin + width / 2, - cy: ymin + height / 2 - }; - pth.bbox = clone(bb); - return bb; - }, - pathClone = function (pathArray) { - var res = clone(pathArray); - res.toString = R._path2string; - return res; - }, - pathToRelative = R._pathToRelative = function (pathArray) { - var pth = paths(pathArray); - if (pth.rel) { - return pathClone(pth.rel); - } - if (!R.is(pathArray, array) || !R.is(pathArray && pathArray[0], array)) { // rough assumption - pathArray = R.parsePathString(pathArray); - } - var res = [], - x = 0, - y = 0, - mx = 0, - my = 0, - start = 0; - if (pathArray[0][0] == "M") { - x = pathArray[0][1]; - y = pathArray[0][2]; - mx = x; - my = y; - start++; - res.push(["M", x, y]); - } - for (var i = start, ii = pathArray.length; i < ii; i++) { - var r = res[i] = [], - pa = pathArray[i]; - if (pa[0] != lowerCase.call(pa[0])) { - r[0] = lowerCase.call(pa[0]); - switch (r[0]) { - case "a": - r[1] = pa[1]; - r[2] = pa[2]; - r[3] = pa[3]; - r[4] = pa[4]; - r[5] = pa[5]; - r[6] = +(pa[6] - x).toFixed(3); - r[7] = +(pa[7] - y).toFixed(3); - break; - case "v": - r[1] = +(pa[1] - y).toFixed(3); - break; - case "m": - mx = pa[1]; - my = pa[2]; - default: - for (var j = 1, jj = pa.length; j < jj; j++) { - r[j] = +(pa[j] - ((j % 2) ? x : y)).toFixed(3); - } - } - } else { - r = res[i] = []; - if (pa[0] == "m") { - mx = pa[1] + x; - my = pa[2] + y; - } - for (var k = 0, kk = pa.length; k < kk; k++) { - res[i][k] = pa[k]; - } - } - var len = res[i].length; - switch (res[i][0]) { - case "z": - x = mx; - y = my; - break; - case "h": - x += +res[i][len - 1]; - break; - case "v": - y += +res[i][len - 1]; - break; - default: - x += +res[i][len - 2]; - y += +res[i][len - 1]; - } - } - res.toString = R._path2string; - pth.rel = pathClone(res); - return res; - }, - pathToAbsolute = R._pathToAbsolute = function (pathArray) { - var pth = paths(pathArray); - if (pth.abs) { - return pathClone(pth.abs); - } - if (!R.is(pathArray, array) || !R.is(pathArray && pathArray[0], array)) { // rough assumption - pathArray = R.parsePathString(pathArray); - } - if (!pathArray || !pathArray.length) { - return [["M", 0, 0]]; - } - var res = [], - x = 0, - y = 0, - mx = 0, - my = 0, - start = 0; - if (pathArray[0][0] == "M") { - x = +pathArray[0][1]; - y = +pathArray[0][2]; - mx = x; - my = y; - start++; - res[0] = ["M", x, y]; - } - var crz = pathArray.length == 3 && pathArray[0][0] == "M" && pathArray[1][0].toUpperCase() == "R" && pathArray[2][0].toUpperCase() == "Z"; - for (var r, pa, i = start, ii = pathArray.length; i < ii; i++) { - res.push(r = []); - pa = pathArray[i]; - if (pa[0] != upperCase.call(pa[0])) { - r[0] = upperCase.call(pa[0]); - switch (r[0]) { - case "A": - r[1] = pa[1]; - r[2] = pa[2]; - r[3] = pa[3]; - r[4] = pa[4]; - r[5] = pa[5]; - r[6] = +(pa[6] + x); - r[7] = +(pa[7] + y); - break; - case "V": - r[1] = +pa[1] + y; - break; - case "H": - r[1] = +pa[1] + x; - break; - case "R": - var dots = [x, y][concat](pa.slice(1)); - for (var j = 2, jj = dots.length; j < jj; j++) { - dots[j] = +dots[j] + x; - dots[++j] = +dots[j] + y; - } - res.pop(); - res = res[concat](catmullRom2bezier(dots, crz)); - break; - case "M": - mx = +pa[1] + x; - my = +pa[2] + y; - default: - for (j = 1, jj = pa.length; j < jj; j++) { - r[j] = +pa[j] + ((j % 2) ? x : y); - } - } - } else if (pa[0] == "R") { - dots = [x, y][concat](pa.slice(1)); - res.pop(); - res = res[concat](catmullRom2bezier(dots, crz)); - r = ["R"][concat](pa.slice(-2)); - } else { - for (var k = 0, kk = pa.length; k < kk; k++) { - r[k] = pa[k]; - } - } - switch (r[0]) { - case "Z": - x = mx; - y = my; - break; - case "H": - x = r[1]; - break; - case "V": - y = r[1]; - break; - case "M": - mx = r[r.length - 2]; - my = r[r.length - 1]; - default: - x = r[r.length - 2]; - y = r[r.length - 1]; - } - } - res.toString = R._path2string; - pth.abs = pathClone(res); - return res; - }, - l2c = function (x1, y1, x2, y2) { - return [x1, y1, x2, y2, x2, y2]; - }, - q2c = function (x1, y1, ax, ay, x2, y2) { - var _13 = 1 / 3, - _23 = 2 / 3; - return [ - _13 * x1 + _23 * ax, - _13 * y1 + _23 * ay, - _13 * x2 + _23 * ax, - _13 * y2 + _23 * ay, - x2, - y2 - ]; - }, - a2c = function (x1, y1, rx, ry, angle, large_arc_flag, sweep_flag, x2, y2, recursive) { - // for more information of where this math came from visit: - // http://www.w3.org/TR/SVG11/implnote.html#ArcImplementationNotes - var _120 = PI * 120 / 180, - rad = PI / 180 * (+angle || 0), - res = [], - xy, - rotate = cacher(function (x, y, rad) { - var X = x * math.cos(rad) - y * math.sin(rad), - Y = x * math.sin(rad) + y * math.cos(rad); - return {x: X, y: Y}; - }); - if (!recursive) { - xy = rotate(x1, y1, -rad); - x1 = xy.x; - y1 = xy.y; - xy = rotate(x2, y2, -rad); - x2 = xy.x; - y2 = xy.y; - var cos = math.cos(PI / 180 * angle), - sin = math.sin(PI / 180 * angle), - x = (x1 - x2) / 2, - y = (y1 - y2) / 2; - var h = (x * x) / (rx * rx) + (y * y) / (ry * ry); - if (h > 1) { - h = math.sqrt(h); - rx = h * rx; - ry = h * ry; - } - var rx2 = rx * rx, - ry2 = ry * ry, - k = (large_arc_flag == sweep_flag ? -1 : 1) * - math.sqrt(abs((rx2 * ry2 - rx2 * y * y - ry2 * x * x) / (rx2 * y * y + ry2 * x * x))), - cx = k * rx * y / ry + (x1 + x2) / 2, - cy = k * -ry * x / rx + (y1 + y2) / 2, - f1 = math.asin(((y1 - cy) / ry).toFixed(9)), - f2 = math.asin(((y2 - cy) / ry).toFixed(9)); - - f1 = x1 < cx ? PI - f1 : f1; - f2 = x2 < cx ? PI - f2 : f2; - f1 < 0 && (f1 = PI * 2 + f1); - f2 < 0 && (f2 = PI * 2 + f2); - if (sweep_flag && f1 > f2) { - f1 = f1 - PI * 2; - } - if (!sweep_flag && f2 > f1) { - f2 = f2 - PI * 2; - } - } else { - f1 = recursive[0]; - f2 = recursive[1]; - cx = recursive[2]; - cy = recursive[3]; - } - var df = f2 - f1; - if (abs(df) > _120) { - var f2old = f2, - x2old = x2, - y2old = y2; - f2 = f1 + _120 * (sweep_flag && f2 > f1 ? 1 : -1); - x2 = cx + rx * math.cos(f2); - y2 = cy + ry * math.sin(f2); - res = a2c(x2, y2, rx, ry, angle, 0, sweep_flag, x2old, y2old, [f2, f2old, cx, cy]); - } - df = f2 - f1; - var c1 = math.cos(f1), - s1 = math.sin(f1), - c2 = math.cos(f2), - s2 = math.sin(f2), - t = math.tan(df / 4), - hx = 4 / 3 * rx * t, - hy = 4 / 3 * ry * t, - m1 = [x1, y1], - m2 = [x1 + hx * s1, y1 - hy * c1], - m3 = [x2 + hx * s2, y2 - hy * c2], - m4 = [x2, y2]; - m2[0] = 2 * m1[0] - m2[0]; - m2[1] = 2 * m1[1] - m2[1]; - if (recursive) { - return [m2, m3, m4][concat](res); - } else { - res = [m2, m3, m4][concat](res).join()[split](","); - var newres = []; - for (var i = 0, ii = res.length; i < ii; i++) { - newres[i] = i % 2 ? rotate(res[i - 1], res[i], rad).y : rotate(res[i], res[i + 1], rad).x; - } - return newres; - } - }, - findDotAtSegment = function (p1x, p1y, c1x, c1y, c2x, c2y, p2x, p2y, t) { - var t1 = 1 - t; - return { - x: pow(t1, 3) * p1x + pow(t1, 2) * 3 * t * c1x + t1 * 3 * t * t * c2x + pow(t, 3) * p2x, - y: pow(t1, 3) * p1y + pow(t1, 2) * 3 * t * c1y + t1 * 3 * t * t * c2y + pow(t, 3) * p2y - }; - }, - curveDim = cacher(function (p1x, p1y, c1x, c1y, c2x, c2y, p2x, p2y) { - var a = (c2x - 2 * c1x + p1x) - (p2x - 2 * c2x + c1x), - b = 2 * (c1x - p1x) - 2 * (c2x - c1x), - c = p1x - c1x, - t1 = (-b + math.sqrt(b * b - 4 * a * c)) / 2 / a, - t2 = (-b - math.sqrt(b * b - 4 * a * c)) / 2 / a, - y = [p1y, p2y], - x = [p1x, p2x], - dot; - abs(t1) > "1e12" && (t1 = .5); - abs(t2) > "1e12" && (t2 = .5); - if (t1 > 0 && t1 < 1) { - dot = findDotAtSegment(p1x, p1y, c1x, c1y, c2x, c2y, p2x, p2y, t1); - x.push(dot.x); - y.push(dot.y); - } - if (t2 > 0 && t2 < 1) { - dot = findDotAtSegment(p1x, p1y, c1x, c1y, c2x, c2y, p2x, p2y, t2); - x.push(dot.x); - y.push(dot.y); - } - a = (c2y - 2 * c1y + p1y) - (p2y - 2 * c2y + c1y); - b = 2 * (c1y - p1y) - 2 * (c2y - c1y); - c = p1y - c1y; - t1 = (-b + math.sqrt(b * b - 4 * a * c)) / 2 / a; - t2 = (-b - math.sqrt(b * b - 4 * a * c)) / 2 / a; - abs(t1) > "1e12" && (t1 = .5); - abs(t2) > "1e12" && (t2 = .5); - if (t1 > 0 && t1 < 1) { - dot = findDotAtSegment(p1x, p1y, c1x, c1y, c2x, c2y, p2x, p2y, t1); - x.push(dot.x); - y.push(dot.y); - } - if (t2 > 0 && t2 < 1) { - dot = findDotAtSegment(p1x, p1y, c1x, c1y, c2x, c2y, p2x, p2y, t2); - x.push(dot.x); - y.push(dot.y); - } - return { - min: {x: mmin[apply](0, x), y: mmin[apply](0, y)}, - max: {x: mmax[apply](0, x), y: mmax[apply](0, y)} - }; - }), - path2curve = R._path2curve = cacher(function (path, path2) { - var pth = !path2 && paths(path); - if (!path2 && pth.curve) { - return pathClone(pth.curve); - } - var p = pathToAbsolute(path), - p2 = path2 && pathToAbsolute(path2), - attrs = {x: 0, y: 0, bx: 0, by: 0, X: 0, Y: 0, qx: null, qy: null}, - attrs2 = {x: 0, y: 0, bx: 0, by: 0, X: 0, Y: 0, qx: null, qy: null}, - processPath = function (path, d, pcom) { - var nx, ny, tq = {T:1, Q:1}; - if (!path) { - return ["C", d.x, d.y, d.x, d.y, d.x, d.y]; - } - !(path[0] in tq) && (d.qx = d.qy = null); - switch (path[0]) { - case "M": - d.X = path[1]; - d.Y = path[2]; - break; - case "A": - path = ["C"][concat](a2c[apply](0, [d.x, d.y][concat](path.slice(1)))); - break; - case "S": - if (pcom == "C" || pcom == "S") { // In "S" case we have to take into account, if the previous command is C/S. - nx = d.x * 2 - d.bx; // And reflect the previous - ny = d.y * 2 - d.by; // command's control point relative to the current point. - } - else { // or some else or nothing - nx = d.x; - ny = d.y; - } - path = ["C", nx, ny][concat](path.slice(1)); - break; - case "T": - if (pcom == "Q" || pcom == "T") { // In "T" case we have to take into account, if the previous command is Q/T. - d.qx = d.x * 2 - d.qx; // And make a reflection similar - d.qy = d.y * 2 - d.qy; // to case "S". - } - else { // or something else or nothing - d.qx = d.x; - d.qy = d.y; - } - path = ["C"][concat](q2c(d.x, d.y, d.qx, d.qy, path[1], path[2])); - break; - case "Q": - d.qx = path[1]; - d.qy = path[2]; - path = ["C"][concat](q2c(d.x, d.y, path[1], path[2], path[3], path[4])); - break; - case "L": - path = ["C"][concat](l2c(d.x, d.y, path[1], path[2])); - break; - case "H": - path = ["C"][concat](l2c(d.x, d.y, path[1], d.y)); - break; - case "V": - path = ["C"][concat](l2c(d.x, d.y, d.x, path[1])); - break; - case "Z": - path = ["C"][concat](l2c(d.x, d.y, d.X, d.Y)); - break; - } - return path; - }, - fixArc = function (pp, i) { - if (pp[i].length > 7) { - pp[i].shift(); - var pi = pp[i]; - while (pi.length) { - pcoms1[i]="A"; // if created multiple C:s, their original seg is saved - p2 && (pcoms2[i]="A"); // the same as above - pp.splice(i++, 0, ["C"][concat](pi.splice(0, 6))); - } - pp.splice(i, 1); - ii = mmax(p.length, p2 && p2.length || 0); - } - }, - fixM = function (path1, path2, a1, a2, i) { - if (path1 && path2 && path1[i][0] == "M" && path2[i][0] != "M") { - path2.splice(i, 0, ["M", a2.x, a2.y]); - a1.bx = 0; - a1.by = 0; - a1.x = path1[i][1]; - a1.y = path1[i][2]; - ii = mmax(p.length, p2 && p2.length || 0); - } - }, - pcoms1 = [], // path commands of original path p - pcoms2 = [], // path commands of original path p2 - pfirst = "", // temporary holder for original path command - pcom = ""; // holder for previous path command of original path - for (var i = 0, ii = mmax(p.length, p2 && p2.length || 0); i < ii; i++) { - p[i] && (pfirst = p[i][0]); // save current path command - - if (pfirst != "C") // C is not saved yet, because it may be result of conversion - { - pcoms1[i] = pfirst; // Save current path command - i && ( pcom = pcoms1[i-1]); // Get previous path command pcom - } - p[i] = processPath(p[i], attrs, pcom); // Previous path command is inputted to processPath - - if (pcoms1[i] != "A" && pfirst == "C") pcoms1[i] = "C"; // A is the only command - // which may produce multiple C:s - // so we have to make sure that C is also C in original path - - fixArc(p, i); // fixArc adds also the right amount of A:s to pcoms1 - - if (p2) { // the same procedures is done to p2 - p2[i] && (pfirst = p2[i][0]); - if (pfirst != "C") - { - pcoms2[i] = pfirst; - i && (pcom = pcoms2[i-1]); - } - p2[i] = processPath(p2[i], attrs2, pcom); - - if (pcoms2[i]!="A" && pfirst=="C") pcoms2[i]="C"; - - fixArc(p2, i); - } - fixM(p, p2, attrs, attrs2, i); - fixM(p2, p, attrs2, attrs, i); - var seg = p[i], - seg2 = p2 && p2[i], - seglen = seg.length, - seg2len = p2 && seg2.length; - attrs.x = seg[seglen - 2]; - attrs.y = seg[seglen - 1]; - attrs.bx = toFloat(seg[seglen - 4]) || attrs.x; - attrs.by = toFloat(seg[seglen - 3]) || attrs.y; - attrs2.bx = p2 && (toFloat(seg2[seg2len - 4]) || attrs2.x); - attrs2.by = p2 && (toFloat(seg2[seg2len - 3]) || attrs2.y); - attrs2.x = p2 && seg2[seg2len - 2]; - attrs2.y = p2 && seg2[seg2len - 1]; - } - if (!p2) { - pth.curve = pathClone(p); - } - return p2 ? [p, p2] : p; - }, null, pathClone), - parseDots = R._parseDots = cacher(function (gradient) { - var dots = []; - for (var i = 0, ii = gradient.length; i < ii; i++) { - var dot = {}, - par = gradient[i].match(/^([^:]*):?([\d\.]*)/); - dot.color = R.getRGB(par[1]); - if (dot.color.error) { - return null; - } - dot.opacity = dot.color.opacity; - dot.color = dot.color.hex; - par[2] && (dot.offset = par[2] + "%"); - dots.push(dot); - } - for (i = 1, ii = dots.length - 1; i < ii; i++) { - if (!dots[i].offset) { - var start = toFloat(dots[i - 1].offset || 0), - end = 0; - for (var j = i + 1; j < ii; j++) { - if (dots[j].offset) { - end = dots[j].offset; - break; - } - } - if (!end) { - end = 100; - j = ii; - } - end = toFloat(end); - var d = (end - start) / (j - i + 1); - for (; i < j; i++) { - start += d; - dots[i].offset = start + "%"; - } - } - } - return dots; - }), - tear = R._tear = function (el, paper) { - el == paper.top && (paper.top = el.prev); - el == paper.bottom && (paper.bottom = el.next); - el.next && (el.next.prev = el.prev); - el.prev && (el.prev.next = el.next); - }, - tofront = R._tofront = function (el, paper) { - if (paper.top === el) { - return; - } - tear(el, paper); - el.next = null; - el.prev = paper.top; - paper.top.next = el; - paper.top = el; - }, - toback = R._toback = function (el, paper) { - if (paper.bottom === el) { - return; - } - tear(el, paper); - el.next = paper.bottom; - el.prev = null; - paper.bottom.prev = el; - paper.bottom = el; - }, - insertafter = R._insertafter = function (el, el2, paper) { - tear(el, paper); - el2 == paper.top && (paper.top = el); - el2.next && (el2.next.prev = el); - el.next = el2.next; - el.prev = el2; - el2.next = el; - }, - insertbefore = R._insertbefore = function (el, el2, paper) { - tear(el, paper); - el2 == paper.bottom && (paper.bottom = el); - el2.prev && (el2.prev.next = el); - el.prev = el2.prev; - el2.prev = el; - el.next = el2; - }, - /*\ - * Raphael.toMatrix - [ method ] - ** - * Utility method - ** - * Returns matrix of transformations applied to a given path - > Parameters - - path (string) path string - - transform (string|array) transformation string - = (object) @Matrix - \*/ - toMatrix = R.toMatrix = function (path, transform) { - var bb = pathDimensions(path), - el = { - _: { - transform: E - }, - getBBox: function () { - return bb; - } - }; - extractTransform(el, transform); - return el.matrix; - }, - /*\ - * Raphael.transformPath - [ method ] - ** - * Utility method - ** - * Returns path transformed by a given transformation - > Parameters - - path (string) path string - - transform (string|array) transformation string - = (string) path - \*/ - transformPath = R.transformPath = function (path, transform) { - return mapPath(path, toMatrix(path, transform)); - }, - extractTransform = R._extractTransform = function (el, tstr) { - if (tstr == null) { - return el._.transform; - } - tstr = Str(tstr).replace(/\.{3}|\u2026/g, el._.transform || E); - var tdata = R.parseTransformString(tstr), - deg = 0, - dx = 0, - dy = 0, - sx = 1, - sy = 1, - _ = el._, - m = new Matrix; - _.transform = tdata || []; - if (tdata) { - for (var i = 0, ii = tdata.length; i < ii; i++) { - var t = tdata[i], - tlen = t.length, - command = Str(t[0]).toLowerCase(), - absolute = t[0] != command, - inver = absolute ? m.invert() : 0, - x1, - y1, - x2, - y2, - bb; - if (command == "t" && tlen == 3) { - if (absolute) { - x1 = inver.x(0, 0); - y1 = inver.y(0, 0); - x2 = inver.x(t[1], t[2]); - y2 = inver.y(t[1], t[2]); - m.translate(x2 - x1, y2 - y1); - } else { - m.translate(t[1], t[2]); - } - } else if (command == "r") { - if (tlen == 2) { - bb = bb || el.getBBox(1); - m.rotate(t[1], bb.x + bb.width / 2, bb.y + bb.height / 2); - deg += t[1]; - } else if (tlen == 4) { - if (absolute) { - x2 = inver.x(t[2], t[3]); - y2 = inver.y(t[2], t[3]); - m.rotate(t[1], x2, y2); - } else { - m.rotate(t[1], t[2], t[3]); - } - deg += t[1]; - } - } else if (command == "s") { - if (tlen == 2 || tlen == 3) { - bb = bb || el.getBBox(1); - m.scale(t[1], t[tlen - 1], bb.x + bb.width / 2, bb.y + bb.height / 2); - sx *= t[1]; - sy *= t[tlen - 1]; - } else if (tlen == 5) { - if (absolute) { - x2 = inver.x(t[3], t[4]); - y2 = inver.y(t[3], t[4]); - m.scale(t[1], t[2], x2, y2); - } else { - m.scale(t[1], t[2], t[3], t[4]); - } - sx *= t[1]; - sy *= t[2]; - } - } else if (command == "m" && tlen == 7) { - m.add(t[1], t[2], t[3], t[4], t[5], t[6]); - } - _.dirtyT = 1; - el.matrix = m; - } - } - - /*\ - * Element.matrix - [ property (object) ] - ** - * Keeps @Matrix object, which represents element transformation - \*/ - el.matrix = m; - - _.sx = sx; - _.sy = sy; - _.deg = deg; - _.dx = dx = m.e; - _.dy = dy = m.f; - - if (sx == 1 && sy == 1 && !deg && _.bbox) { - _.bbox.x += +dx; - _.bbox.y += +dy; - } else { - _.dirtyT = 1; - } - }, - getEmpty = function (item) { - var l = item[0]; - switch (l.toLowerCase()) { - case "t": return [l, 0, 0]; - case "m": return [l, 1, 0, 0, 1, 0, 0]; - case "r": if (item.length == 4) { - return [l, 0, item[2], item[3]]; - } else { - return [l, 0]; - } - case "s": if (item.length == 5) { - return [l, 1, 1, item[3], item[4]]; - } else if (item.length == 3) { - return [l, 1, 1]; - } else { - return [l, 1]; - } - } - }, - equaliseTransform = R._equaliseTransform = function (t1, t2) { - t2 = Str(t2).replace(/\.{3}|\u2026/g, t1); - t1 = R.parseTransformString(t1) || []; - t2 = R.parseTransformString(t2) || []; - var maxlength = mmax(t1.length, t2.length), - from = [], - to = [], - i = 0, j, jj, - tt1, tt2; - for (; i < maxlength; i++) { - tt1 = t1[i] || getEmpty(t2[i]); - tt2 = t2[i] || getEmpty(tt1); - if ((tt1[0] != tt2[0]) || - (tt1[0].toLowerCase() == "r" && (tt1[2] != tt2[2] || tt1[3] != tt2[3])) || - (tt1[0].toLowerCase() == "s" && (tt1[3] != tt2[3] || tt1[4] != tt2[4])) - ) { - return; - } - from[i] = []; - to[i] = []; - for (j = 0, jj = mmax(tt1.length, tt2.length); j < jj; j++) { - j in tt1 && (from[i][j] = tt1[j]); - j in tt2 && (to[i][j] = tt2[j]); - } - } - return { - from: from, - to: to - }; - }; - R._getContainer = function (x, y, w, h) { - var container; - container = h == null && !R.is(x, "object") ? g.doc.getElementById(x) : x; - if (container == null) { - return; - } - if (container.tagName) { - if (y == null) { - return { - container: container, - width: container.style.pixelWidth || container.offsetWidth, - height: container.style.pixelHeight || container.offsetHeight - }; - } else { - return { - container: container, - width: y, - height: w - }; - } - } - return { - container: 1, - x: x, - y: y, - width: w, - height: h - }; - }; - /*\ - * Raphael.pathToRelative - [ method ] - ** - * Utility method - ** - * Converts path to relative form - > Parameters - - pathString (string|array) path string or array of segments - = (array) array of segments. - \*/ - R.pathToRelative = pathToRelative; - R._engine = {}; - /*\ - * Raphael.path2curve - [ method ] - ** - * Utility method - ** - * Converts path to a new path where all segments are cubic bezier curves. - > Parameters - - pathString (string|array) path string or array of segments - = (array) array of segments. - \*/ - R.path2curve = path2curve; - /*\ - * Raphael.matrix - [ method ] - ** - * Utility method - ** - * Returns matrix based on given parameters. - > Parameters - - a (number) - - b (number) - - c (number) - - d (number) - - e (number) - - f (number) - = (object) @Matrix - \*/ - R.matrix = function (a, b, c, d, e, f) { - return new Matrix(a, b, c, d, e, f); - }; - function Matrix(a, b, c, d, e, f) { - if (a != null) { - this.a = +a; - this.b = +b; - this.c = +c; - this.d = +d; - this.e = +e; - this.f = +f; - } else { - this.a = 1; - this.b = 0; - this.c = 0; - this.d = 1; - this.e = 0; - this.f = 0; - } - } - (function (matrixproto) { - /*\ - * Matrix.add - [ method ] - ** - * Adds given matrix to existing one. - > Parameters - - a (number) - - b (number) - - c (number) - - d (number) - - e (number) - - f (number) - or - - matrix (object) @Matrix - \*/ - matrixproto.add = function (a, b, c, d, e, f) { - var out = [[], [], []], - m = [[this.a, this.c, this.e], [this.b, this.d, this.f], [0, 0, 1]], - matrix = [[a, c, e], [b, d, f], [0, 0, 1]], - x, y, z, res; - - if (a && a instanceof Matrix) { - matrix = [[a.a, a.c, a.e], [a.b, a.d, a.f], [0, 0, 1]]; - } - - for (x = 0; x < 3; x++) { - for (y = 0; y < 3; y++) { - res = 0; - for (z = 0; z < 3; z++) { - res += m[x][z] * matrix[z][y]; - } - out[x][y] = res; - } - } - this.a = out[0][0]; - this.b = out[1][0]; - this.c = out[0][1]; - this.d = out[1][1]; - this.e = out[0][2]; - this.f = out[1][2]; - }; - /*\ - * Matrix.invert - [ method ] - ** - * Returns inverted version of the matrix - = (object) @Matrix - \*/ - matrixproto.invert = function () { - var me = this, - x = me.a * me.d - me.b * me.c; - return new Matrix(me.d / x, -me.b / x, -me.c / x, me.a / x, (me.c * me.f - me.d * me.e) / x, (me.b * me.e - me.a * me.f) / x); - }; - /*\ - * Matrix.clone - [ method ] - ** - * Returns copy of the matrix - = (object) @Matrix - \*/ - matrixproto.clone = function () { - return new Matrix(this.a, this.b, this.c, this.d, this.e, this.f); - }; - /*\ - * Matrix.translate - [ method ] - ** - * Translate the matrix - > Parameters - - x (number) - - y (number) - \*/ - matrixproto.translate = function (x, y) { - this.add(1, 0, 0, 1, x, y); - }; - /*\ - * Matrix.scale - [ method ] - ** - * Scales the matrix - > Parameters - - x (number) - - y (number) #optional - - cx (number) #optional - - cy (number) #optional - \*/ - matrixproto.scale = function (x, y, cx, cy) { - y == null && (y = x); - (cx || cy) && this.add(1, 0, 0, 1, cx, cy); - this.add(x, 0, 0, y, 0, 0); - (cx || cy) && this.add(1, 0, 0, 1, -cx, -cy); - }; - /*\ - * Matrix.rotate - [ method ] - ** - * Rotates the matrix - > Parameters - - a (number) - - x (number) - - y (number) - \*/ - matrixproto.rotate = function (a, x, y) { - a = R.rad(a); - x = x || 0; - y = y || 0; - var cos = +math.cos(a).toFixed(9), - sin = +math.sin(a).toFixed(9); - this.add(cos, sin, -sin, cos, x, y); - this.add(1, 0, 0, 1, -x, -y); - }; - /*\ - * Matrix.x - [ method ] - ** - * Return x coordinate for given point after transformation described by the matrix. See also @Matrix.y - > Parameters - - x (number) - - y (number) - = (number) x - \*/ - matrixproto.x = function (x, y) { - return x * this.a + y * this.c + this.e; - }; - /*\ - * Matrix.y - [ method ] - ** - * Return y coordinate for given point after transformation described by the matrix. See also @Matrix.x - > Parameters - - x (number) - - y (number) - = (number) y - \*/ - matrixproto.y = function (x, y) { - return x * this.b + y * this.d + this.f; - }; - matrixproto.get = function (i) { - return +this[Str.fromCharCode(97 + i)].toFixed(4); - }; - matrixproto.toString = function () { - return R.svg ? - "matrix(" + [this.get(0), this.get(1), this.get(2), this.get(3), this.get(4), this.get(5)].join() + ")" : - [this.get(0), this.get(2), this.get(1), this.get(3), 0, 0].join(); - }; - matrixproto.toFilter = function () { - return "progid:DXImageTransform.Microsoft.Matrix(M11=" + this.get(0) + - ", M12=" + this.get(2) + ", M21=" + this.get(1) + ", M22=" + this.get(3) + - ", Dx=" + this.get(4) + ", Dy=" + this.get(5) + ", sizingmethod='auto expand')"; - }; - matrixproto.offset = function () { - return [this.e.toFixed(4), this.f.toFixed(4)]; - }; - function norm(a) { - return a[0] * a[0] + a[1] * a[1]; - } - function normalize(a) { - var mag = math.sqrt(norm(a)); - a[0] && (a[0] /= mag); - a[1] && (a[1] /= mag); - } - /*\ - * Matrix.split - [ method ] - ** - * Splits matrix into primitive transformations - = (object) in format: - o dx (number) translation by x - o dy (number) translation by y - o scalex (number) scale by x - o scaley (number) scale by y - o shear (number) shear - o rotate (number) rotation in deg - o isSimple (boolean) could it be represented via simple transformations - \*/ - matrixproto.split = function () { - var out = {}; - // translation - out.dx = this.e; - out.dy = this.f; - - // scale and shear - var row = [[this.a, this.c], [this.b, this.d]]; - out.scalex = math.sqrt(norm(row[0])); - normalize(row[0]); - - out.shear = row[0][0] * row[1][0] + row[0][1] * row[1][1]; - row[1] = [row[1][0] - row[0][0] * out.shear, row[1][1] - row[0][1] * out.shear]; - - out.scaley = math.sqrt(norm(row[1])); - normalize(row[1]); - out.shear /= out.scaley; - - // rotation - var sin = -row[0][1], - cos = row[1][1]; - if (cos < 0) { - out.rotate = R.deg(math.acos(cos)); - if (sin < 0) { - out.rotate = 360 - out.rotate; - } - } else { - out.rotate = R.deg(math.asin(sin)); - } - - out.isSimple = !+out.shear.toFixed(9) && (out.scalex.toFixed(9) == out.scaley.toFixed(9) || !out.rotate); - out.isSuperSimple = !+out.shear.toFixed(9) && out.scalex.toFixed(9) == out.scaley.toFixed(9) && !out.rotate; - out.noRotation = !+out.shear.toFixed(9) && !out.rotate; - return out; - }; - /*\ - * Matrix.toTransformString - [ method ] - ** - * Return transform string that represents given matrix - = (string) transform string - \*/ - matrixproto.toTransformString = function (shorter) { - var s = shorter || this[split](); - if (s.isSimple) { - s.scalex = +s.scalex.toFixed(4); - s.scaley = +s.scaley.toFixed(4); - s.rotate = +s.rotate.toFixed(4); - return (s.dx || s.dy ? "t" + [s.dx, s.dy] : E) + - (s.scalex != 1 || s.scaley != 1 ? "s" + [s.scalex, s.scaley, 0, 0] : E) + - (s.rotate ? "r" + [s.rotate, 0, 0] : E); - } else { - return "m" + [this.get(0), this.get(1), this.get(2), this.get(3), this.get(4), this.get(5)]; - } - }; - })(Matrix.prototype); - - var preventDefault = function () { - this.returnValue = false; - }, - preventTouch = function () { - return this.originalEvent.preventDefault(); - }, - stopPropagation = function () { - this.cancelBubble = true; - }, - stopTouch = function () { - return this.originalEvent.stopPropagation(); - }, - getEventPosition = function (e) { - var scrollY = g.doc.documentElement.scrollTop || g.doc.body.scrollTop, - scrollX = g.doc.documentElement.scrollLeft || g.doc.body.scrollLeft; - - return { - x: e.clientX + scrollX, - y: e.clientY + scrollY - }; - }, - addEvent = (function () { - if (g.doc.addEventListener) { - return function (obj, type, fn, element) { - var f = function (e) { - var pos = getEventPosition(e); - return fn.call(element, e, pos.x, pos.y); - }; - obj.addEventListener(type, f, false); - - if (supportsTouch && touchMap[type]) { - var _f = function (e) { - var pos = getEventPosition(e), - olde = e; - - for (var i = 0, ii = e.targetTouches && e.targetTouches.length; i < ii; i++) { - if (e.targetTouches[i].target == obj) { - e = e.targetTouches[i]; - e.originalEvent = olde; - e.preventDefault = preventTouch; - e.stopPropagation = stopTouch; - break; - } - } - - return fn.call(element, e, pos.x, pos.y); - }; - obj.addEventListener(touchMap[type], _f, false); - } - - return function () { - obj.removeEventListener(type, f, false); - - if (supportsTouch && touchMap[type]) - obj.removeEventListener(touchMap[type], _f, false); - - return true; - }; - }; - } else if (g.doc.attachEvent) { - return function (obj, type, fn, element) { - var f = function (e) { - e = e || g.win.event; - var scrollY = g.doc.documentElement.scrollTop || g.doc.body.scrollTop, - scrollX = g.doc.documentElement.scrollLeft || g.doc.body.scrollLeft, - x = e.clientX + scrollX, - y = e.clientY + scrollY; - e.preventDefault = e.preventDefault || preventDefault; - e.stopPropagation = e.stopPropagation || stopPropagation; - return fn.call(element, e, x, y); - }; - obj.attachEvent("on" + type, f); - var detacher = function () { - obj.detachEvent("on" + type, f); - return true; - }; - return detacher; - }; - } - })(), - drag = [], - dragMove = function (e) { - var x = e.clientX, - y = e.clientY, - scrollY = g.doc.documentElement.scrollTop || g.doc.body.scrollTop, - scrollX = g.doc.documentElement.scrollLeft || g.doc.body.scrollLeft, - dragi, - j = drag.length; - while (j--) { - dragi = drag[j]; - if (supportsTouch && e.touches) { - var i = e.touches.length, - touch; - while (i--) { - touch = e.touches[i]; - if (touch.identifier == dragi.el._drag.id) { - x = touch.clientX; - y = touch.clientY; - (e.originalEvent ? e.originalEvent : e).preventDefault(); - break; - } - } - } else { - e.preventDefault(); - } - var node = dragi.el.node, - o, - next = node.nextSibling, - parent = node.parentNode, - display = node.style.display; - g.win.opera && parent.removeChild(node); - node.style.display = "none"; - o = dragi.el.paper.getElementByPoint(x, y); - node.style.display = display; - g.win.opera && (next ? parent.insertBefore(node, next) : parent.appendChild(node)); - o && eve("raphael.drag.over." + dragi.el.id, dragi.el, o); - x += scrollX; - y += scrollY; - eve("raphael.drag.move." + dragi.el.id, dragi.move_scope || dragi.el, x - dragi.el._drag.x, y - dragi.el._drag.y, x, y, e); - } - }, - dragUp = function (e) { - R.unmousemove(dragMove).unmouseup(dragUp); - var i = drag.length, - dragi; - while (i--) { - dragi = drag[i]; - dragi.el._drag = {}; - eve("raphael.drag.end." + dragi.el.id, dragi.end_scope || dragi.start_scope || dragi.move_scope || dragi.el, e); - } - drag = []; - }, - /*\ - * Raphael.el - [ property (object) ] - ** - * You can add your own method to elements. This is useful when you want to hack default functionality or - * want to wrap some common transformation or attributes in one method. In difference to canvas methods, - * you can redefine element method at any time. Expending element methods wouldn’t affect set. - > Usage - | Raphael.el.red = function () { - | this.attr({fill: "#f00"}); - | }; - | // then use it - | paper.circle(100, 100, 20).red(); - \*/ - elproto = R.el = {}; - /*\ - * Element.click - [ method ] - ** - * Adds event handler for click for the element. - > Parameters - - handler (function) handler for the event - = (object) @Element - \*/ - /*\ - * Element.unclick - [ method ] - ** - * Removes event handler for click for the element. - > Parameters - - handler (function) #optional handler for the event - = (object) @Element - \*/ - - /*\ - * Element.dblclick - [ method ] - ** - * Adds event handler for double click for the element. - > Parameters - - handler (function) handler for the event - = (object) @Element - \*/ - /*\ - * Element.undblclick - [ method ] - ** - * Removes event handler for double click for the element. - > Parameters - - handler (function) #optional handler for the event - = (object) @Element - \*/ - - /*\ - * Element.mousedown - [ method ] - ** - * Adds event handler for mousedown for the element. - > Parameters - - handler (function) handler for the event - = (object) @Element - \*/ - /*\ - * Element.unmousedown - [ method ] - ** - * Removes event handler for mousedown for the element. - > Parameters - - handler (function) #optional handler for the event - = (object) @Element - \*/ - - /*\ - * Element.mousemove - [ method ] - ** - * Adds event handler for mousemove for the element. - > Parameters - - handler (function) handler for the event - = (object) @Element - \*/ - /*\ - * Element.unmousemove - [ method ] - ** - * Removes event handler for mousemove for the element. - > Parameters - - handler (function) #optional handler for the event - = (object) @Element - \*/ - - /*\ - * Element.mouseout - [ method ] - ** - * Adds event handler for mouseout for the element. - > Parameters - - handler (function) handler for the event - = (object) @Element - \*/ - /*\ - * Element.unmouseout - [ method ] - ** - * Removes event handler for mouseout for the element. - > Parameters - - handler (function) #optional handler for the event - = (object) @Element - \*/ - - /*\ - * Element.mouseover - [ method ] - ** - * Adds event handler for mouseover for the element. - > Parameters - - handler (function) handler for the event - = (object) @Element - \*/ - /*\ - * Element.unmouseover - [ method ] - ** - * Removes event handler for mouseover for the element. - > Parameters - - handler (function) #optional handler for the event - = (object) @Element - \*/ - - /*\ - * Element.mouseup - [ method ] - ** - * Adds event handler for mouseup for the element. - > Parameters - - handler (function) handler for the event - = (object) @Element - \*/ - /*\ - * Element.unmouseup - [ method ] - ** - * Removes event handler for mouseup for the element. - > Parameters - - handler (function) #optional handler for the event - = (object) @Element - \*/ - - /*\ - * Element.touchstart - [ method ] - ** - * Adds event handler for touchstart for the element. - > Parameters - - handler (function) handler for the event - = (object) @Element - \*/ - /*\ - * Element.untouchstart - [ method ] - ** - * Removes event handler for touchstart for the element. - > Parameters - - handler (function) #optional handler for the event - = (object) @Element - \*/ - - /*\ - * Element.touchmove - [ method ] - ** - * Adds event handler for touchmove for the element. - > Parameters - - handler (function) handler for the event - = (object) @Element - \*/ - /*\ - * Element.untouchmove - [ method ] - ** - * Removes event handler for touchmove for the element. - > Parameters - - handler (function) #optional handler for the event - = (object) @Element - \*/ - - /*\ - * Element.touchend - [ method ] - ** - * Adds event handler for touchend for the element. - > Parameters - - handler (function) handler for the event - = (object) @Element - \*/ - /*\ - * Element.untouchend - [ method ] - ** - * Removes event handler for touchend for the element. - > Parameters - - handler (function) #optional handler for the event - = (object) @Element - \*/ - - /*\ - * Element.touchcancel - [ method ] - ** - * Adds event handler for touchcancel for the element. - > Parameters - - handler (function) handler for the event - = (object) @Element - \*/ - /*\ - * Element.untouchcancel - [ method ] - ** - * Removes event handler for touchcancel for the element. - > Parameters - - handler (function) #optional handler for the event - = (object) @Element - \*/ - for (var i = events.length; i--;) { - (function (eventName) { - R[eventName] = elproto[eventName] = function (fn, scope) { - if (R.is(fn, "function")) { - this.events = this.events || []; - this.events.push({name: eventName, f: fn, unbind: addEvent(this.shape || this.node || g.doc, eventName, fn, scope || this)}); - } - return this; - }; - R["un" + eventName] = elproto["un" + eventName] = function (fn) { - var events = this.events || [], - l = events.length; - while (l--){ - if (events[l].name == eventName && (R.is(fn, "undefined") || events[l].f == fn)) { - events[l].unbind(); - events.splice(l, 1); - !events.length && delete this.events; - } - } - return this; - }; - })(events[i]); - } - - /*\ - * Element.data - [ method ] - ** - * Adds or retrieves given value associated with given key. - ** - * See also @Element.removeData - > Parameters - - key (string) key to store data - - value (any) #optional value to store - = (object) @Element - * or, if value is not specified: - = (any) value - * or, if key and value are not specified: - = (object) Key/value pairs for all the data associated with the element. - > Usage - | for (var i = 0, i < 5, i++) { - | paper.circle(10 + 15 * i, 10, 10) - | .attr({fill: "#000"}) - | .data("i", i) - | .click(function () { - | alert(this.data("i")); - | }); - | } - \*/ - elproto.data = function (key, value) { - var data = eldata[this.id] = eldata[this.id] || {}; - if (arguments.length == 0) { - return data; - } - if (arguments.length == 1) { - if (R.is(key, "object")) { - for (var i in key) if (key[has](i)) { - this.data(i, key[i]); - } - return this; - } - eve("raphael.data.get." + this.id, this, data[key], key); - return data[key]; - } - data[key] = value; - eve("raphael.data.set." + this.id, this, value, key); - return this; - }; - /*\ - * Element.removeData - [ method ] - ** - * Removes value associated with an element by given key. - * If key is not provided, removes all the data of the element. - > Parameters - - key (string) #optional key - = (object) @Element - \*/ - elproto.removeData = function (key) { - if (key == null) { - eldata[this.id] = {}; - } else { - eldata[this.id] && delete eldata[this.id][key]; - } - return this; - }; - /*\ - * Element.getData - [ method ] - ** - * Retrieves the element data - = (object) data - \*/ - elproto.getData = function () { - return clone(eldata[this.id] || {}); - }; - /*\ - * Element.hover - [ method ] - ** - * Adds event handlers for hover for the element. - > Parameters - - f_in (function) handler for hover in - - f_out (function) handler for hover out - - icontext (object) #optional context for hover in handler - - ocontext (object) #optional context for hover out handler - = (object) @Element - \*/ - elproto.hover = function (f_in, f_out, scope_in, scope_out) { - return this.mouseover(f_in, scope_in).mouseout(f_out, scope_out || scope_in); - }; - /*\ - * Element.unhover - [ method ] - ** - * Removes event handlers for hover for the element. - > Parameters - - f_in (function) handler for hover in - - f_out (function) handler for hover out - = (object) @Element - \*/ - elproto.unhover = function (f_in, f_out) { - return this.unmouseover(f_in).unmouseout(f_out); - }; - var draggable = []; - /*\ - * Element.drag - [ method ] - ** - * Adds event handlers for drag of the element. - > Parameters - - onmove (function) handler for moving - - onstart (function) handler for drag start - - onend (function) handler for drag end - - mcontext (object) #optional context for moving handler - - scontext (object) #optional context for drag start handler - - econtext (object) #optional context for drag end handler - * Additionally following `drag` events will be triggered: `drag.start.<id>` on start, - * `drag.end.<id>` on end and `drag.move.<id>` on every move. When element will be dragged over another element - * `drag.over.<id>` will be fired as well. - * - * Start event and start handler will be called in specified context or in context of the element with following parameters: - o x (number) x position of the mouse - o y (number) y position of the mouse - o event (object) DOM event object - * Move event and move handler will be called in specified context or in context of the element with following parameters: - o dx (number) shift by x from the start point - o dy (number) shift by y from the start point - o x (number) x position of the mouse - o y (number) y position of the mouse - o event (object) DOM event object - * End event and end handler will be called in specified context or in context of the element with following parameters: - o event (object) DOM event object - = (object) @Element - \*/ - elproto.drag = function (onmove, onstart, onend, move_scope, start_scope, end_scope) { - function start(e) { - (e.originalEvent || e).preventDefault(); - var x = e.clientX, - y = e.clientY, - scrollY = g.doc.documentElement.scrollTop || g.doc.body.scrollTop, - scrollX = g.doc.documentElement.scrollLeft || g.doc.body.scrollLeft; - this._drag.id = e.identifier; - if (supportsTouch && e.touches) { - var i = e.touches.length, touch; - while (i--) { - touch = e.touches[i]; - this._drag.id = touch.identifier; - if (touch.identifier == this._drag.id) { - x = touch.clientX; - y = touch.clientY; - break; - } - } - } - this._drag.x = x + scrollX; - this._drag.y = y + scrollY; - !drag.length && R.mousemove(dragMove).mouseup(dragUp); - drag.push({el: this, move_scope: move_scope, start_scope: start_scope, end_scope: end_scope}); - onstart && eve.on("raphael.drag.start." + this.id, onstart); - onmove && eve.on("raphael.drag.move." + this.id, onmove); - onend && eve.on("raphael.drag.end." + this.id, onend); - eve("raphael.drag.start." + this.id, start_scope || move_scope || this, e.clientX + scrollX, e.clientY + scrollY, e); - } - this._drag = {}; - draggable.push({el: this, start: start}); - this.mousedown(start); - return this; - }; - /*\ - * Element.onDragOver - [ method ] - ** - * Shortcut for assigning event handler for `drag.over.<id>` event, where id is id of the element (see @Element.id). - > Parameters - - f (function) handler for event, first argument would be the element you are dragging over - \*/ - elproto.onDragOver = function (f) { - f ? eve.on("raphael.drag.over." + this.id, f) : eve.unbind("raphael.drag.over." + this.id); - }; - /*\ - * Element.undrag - [ method ] - ** - * Removes all drag event handlers from given element. - \*/ - elproto.undrag = function () { - var i = draggable.length; - while (i--) if (draggable[i].el == this) { - this.unmousedown(draggable[i].start); - draggable.splice(i, 1); - eve.unbind("raphael.drag.*." + this.id); - } - !draggable.length && R.unmousemove(dragMove).unmouseup(dragUp); - drag = []; - }; - /*\ - * Paper.circle - [ method ] - ** - * Draws a circle. - ** - > Parameters - ** - - x (number) x coordinate of the centre - - y (number) y coordinate of the centre - - r (number) radius - = (object) Raphaël element object with type “circle” - ** - > Usage - | var c = paper.circle(50, 50, 40); - \*/ - paperproto.circle = function (x, y, r) { - var out = R._engine.circle(this, x || 0, y || 0, r || 0); - this.__set__ && this.__set__.push(out); - return out; - }; - /*\ - * Paper.rect - [ method ] - * - * Draws a rectangle. - ** - > Parameters - ** - - x (number) x coordinate of the top left corner - - y (number) y coordinate of the top left corner - - width (number) width - - height (number) height - - r (number) #optional radius for rounded corners, default is 0 - = (object) Raphaël element object with type “rect” - ** - > Usage - | // regular rectangle - | var c = paper.rect(10, 10, 50, 50); - | // rectangle with rounded corners - | var c = paper.rect(40, 40, 50, 50, 10); - \*/ - paperproto.rect = function (x, y, w, h, r) { - var out = R._engine.rect(this, x || 0, y || 0, w || 0, h || 0, r || 0); - this.__set__ && this.__set__.push(out); - return out; - }; - /*\ - * Paper.ellipse - [ method ] - ** - * Draws an ellipse. - ** - > Parameters - ** - - x (number) x coordinate of the centre - - y (number) y coordinate of the centre - - rx (number) horizontal radius - - ry (number) vertical radius - = (object) Raphaël element object with type “ellipse” - ** - > Usage - | var c = paper.ellipse(50, 50, 40, 20); - \*/ - paperproto.ellipse = function (x, y, rx, ry) { - var out = R._engine.ellipse(this, x || 0, y || 0, rx || 0, ry || 0); - this.__set__ && this.__set__.push(out); - return out; - }; - /*\ - * Paper.path - [ method ] - ** - * Creates a path element by given path data string. - > Parameters - - pathString (string) #optional path string in SVG format. - * Path string consists of one-letter commands, followed by comma seprarated arguments in numercal form. Example: - | "M10,20L30,40" - * Here we can see two commands: “M”, with arguments `(10, 20)` and “L” with arguments `(30, 40)`. Upper case letter mean command is absolute, lower case—relative. - * - # <p>Here is short list of commands available, for more details see <a href="http://www.w3.org/TR/SVG/paths.html#PathData" title="Details of a path's data attribute's format are described in the SVG specification.">SVG path string format</a>.</p> - # <table><thead><tr><th>Command</th><th>Name</th><th>Parameters</th></tr></thead><tbody> - # <tr><td>M</td><td>moveto</td><td>(x y)+</td></tr> - # <tr><td>Z</td><td>closepath</td><td>(none)</td></tr> - # <tr><td>L</td><td>lineto</td><td>(x y)+</td></tr> - # <tr><td>H</td><td>horizontal lineto</td><td>x+</td></tr> - # <tr><td>V</td><td>vertical lineto</td><td>y+</td></tr> - # <tr><td>C</td><td>curveto</td><td>(x1 y1 x2 y2 x y)+</td></tr> - # <tr><td>S</td><td>smooth curveto</td><td>(x2 y2 x y)+</td></tr> - # <tr><td>Q</td><td>quadratic Bézier curveto</td><td>(x1 y1 x y)+</td></tr> - # <tr><td>T</td><td>smooth quadratic Bézier curveto</td><td>(x y)+</td></tr> - # <tr><td>A</td><td>elliptical arc</td><td>(rx ry x-axis-rotation large-arc-flag sweep-flag x y)+</td></tr> - # <tr><td>R</td><td><a href="http://en.wikipedia.org/wiki/Catmull–Rom_spline#Catmull.E2.80.93Rom_spline">Catmull-Rom curveto</a>*</td><td>x1 y1 (x y)+</td></tr></tbody></table> - * * “Catmull-Rom curveto” is a not standard SVG command and added in 2.0 to make life easier. - * Note: there is a special case when path consist of just three commands: “M10,10R…z”. In this case path will smoothly connects to its beginning. - > Usage - | var c = paper.path("M10 10L90 90"); - | // draw a diagonal line: - | // move to 10,10, line to 90,90 - * For example of path strings, check out these icons: http://raphaeljs.com/icons/ - \*/ - paperproto.path = function (pathString) { - pathString && !R.is(pathString, string) && !R.is(pathString[0], array) && (pathString += E); - var out = R._engine.path(R.format[apply](R, arguments), this); - this.__set__ && this.__set__.push(out); - return out; - }; - /*\ - * Paper.image - [ method ] - ** - * Embeds an image into the surface. - ** - > Parameters - ** - - src (string) URI of the source image - - x (number) x coordinate position - - y (number) y coordinate position - - width (number) width of the image - - height (number) height of the image - = (object) Raphaël element object with type “image” - ** - > Usage - | var c = paper.image("apple.png", 10, 10, 80, 80); - \*/ - paperproto.image = function (src, x, y, w, h) { - var out = R._engine.image(this, src || "about:blank", x || 0, y || 0, w || 0, h || 0); - this.__set__ && this.__set__.push(out); - return out; - }; - /*\ - * Paper.text - [ method ] - ** - * Draws a text string. If you need line breaks, put “\n” in the string. - ** - > Parameters - ** - - x (number) x coordinate position - - y (number) y coordinate position - - text (string) The text string to draw - = (object) Raphaël element object with type “text” - ** - > Usage - | var t = paper.text(50, 50, "Raphaël\nkicks\nbutt!"); - \*/ - paperproto.text = function (x, y, text) { - var out = R._engine.text(this, x || 0, y || 0, Str(text)); - this.__set__ && this.__set__.push(out); - return out; - }; - /*\ - * Paper.set - [ method ] - ** - * Creates array-like object to keep and operate several elements at once. - * Warning: it doesn’t create any elements for itself in the page, it just groups existing elements. - * Sets act as pseudo elements — all methods available to an element can be used on a set. - = (object) array-like object that represents set of elements - ** - > Usage - | var st = paper.set(); - | st.push( - | paper.circle(10, 10, 5), - | paper.circle(30, 10, 5) - | ); - | st.attr({fill: "red"}); // changes the fill of both circles - \*/ - paperproto.set = function (itemsArray) { - !R.is(itemsArray, "array") && (itemsArray = Array.prototype.splice.call(arguments, 0, arguments.length)); - var out = new Set(itemsArray); - this.__set__ && this.__set__.push(out); - out["paper"] = this; - out["type"] = "set"; - return out; - }; - /*\ - * Paper.setStart - [ method ] - ** - * Creates @Paper.set. All elements that will be created after calling this method and before calling - * @Paper.setFinish will be added to the set. - ** - > Usage - | paper.setStart(); - | paper.circle(10, 10, 5), - | paper.circle(30, 10, 5) - | var st = paper.setFinish(); - | st.attr({fill: "red"}); // changes the fill of both circles - \*/ - paperproto.setStart = function (set) { - this.__set__ = set || this.set(); - }; - /*\ - * Paper.setFinish - [ method ] - ** - * See @Paper.setStart. This method finishes catching and returns resulting set. - ** - = (object) set - \*/ - paperproto.setFinish = function (set) { - var out = this.__set__; - delete this.__set__; - return out; - }; - /*\ - * Paper.getSize - [ method ] - ** - * Obtains current paper actual size. - ** - = (object) - \*/ - paperproto.getSize = function () { - var container = this.canvas.parentNode; - return { - width: container.offsetWidth, - height: container.offsetHeight - }; - }; - /*\ - * Paper.setSize - [ method ] - ** - * If you need to change dimensions of the canvas call this method - ** - > Parameters - ** - - width (number) new width of the canvas - - height (number) new height of the canvas - \*/ - paperproto.setSize = function (width, height) { - return R._engine.setSize.call(this, width, height); - }; - /*\ - * Paper.setViewBox - [ method ] - ** - * Sets the view box of the paper. Practically it gives you ability to zoom and pan whole paper surface by - * specifying new boundaries. - ** - > Parameters - ** - - x (number) new x position, default is `0` - - y (number) new y position, default is `0` - - w (number) new width of the canvas - - h (number) new height of the canvas - - fit (boolean) `true` if you want graphics to fit into new boundary box - \*/ - paperproto.setViewBox = function (x, y, w, h, fit) { - return R._engine.setViewBox.call(this, x, y, w, h, fit); - }; - /*\ - * Paper.top - [ property ] - ** - * Points to the topmost element on the paper - \*/ - /*\ - * Paper.bottom - [ property ] - ** - * Points to the bottom element on the paper - \*/ - paperproto.top = paperproto.bottom = null; - /*\ - * Paper.raphael - [ property ] - ** - * Points to the @Raphael object/function - \*/ - paperproto.raphael = R; - var getOffset = function (elem) { - var box = elem.getBoundingClientRect(), - doc = elem.ownerDocument, - body = doc.body, - docElem = doc.documentElement, - clientTop = docElem.clientTop || body.clientTop || 0, clientLeft = docElem.clientLeft || body.clientLeft || 0, - top = box.top + (g.win.pageYOffset || docElem.scrollTop || body.scrollTop ) - clientTop, - left = box.left + (g.win.pageXOffset || docElem.scrollLeft || body.scrollLeft) - clientLeft; - return { - y: top, - x: left - }; - }; - /*\ - * Paper.getElementByPoint - [ method ] - ** - * Returns you topmost element under given point. - ** - = (object) Raphaël element object - > Parameters - ** - - x (number) x coordinate from the top left corner of the window - - y (number) y coordinate from the top left corner of the window - > Usage - | paper.getElementByPoint(mouseX, mouseY).attr({stroke: "#f00"}); - \*/ - paperproto.getElementByPoint = function (x, y) { - var paper = this, - svg = paper.canvas, - target = g.doc.elementFromPoint(x, y); - if (g.win.opera && target.tagName == "svg") { - var so = getOffset(svg), - sr = svg.createSVGRect(); - sr.x = x - so.x; - sr.y = y - so.y; - sr.width = sr.height = 1; - var hits = svg.getIntersectionList(sr, null); - if (hits.length) { - target = hits[hits.length - 1]; - } - } - if (!target) { - return null; - } - while (target.parentNode && target != svg.parentNode && !target.raphael) { - target = target.parentNode; - } - target == paper.canvas.parentNode && (target = svg); - target = target && target.raphael ? paper.getById(target.raphaelid) : null; - return target; - }; - - /*\ - * Paper.getElementsByBBox - [ method ] - ** - * Returns set of elements that have an intersecting bounding box - ** - > Parameters - ** - - bbox (object) bbox to check with - = (object) @Set - \*/ - paperproto.getElementsByBBox = function (bbox) { - var set = this.set(); - this.forEach(function (el) { - if (R.isBBoxIntersect(el.getBBox(), bbox)) { - set.push(el); - } - }); - return set; - }; - - /*\ - * Paper.getById - [ method ] - ** - * Returns you element by its internal ID. - ** - > Parameters - ** - - id (number) id - = (object) Raphaël element object - \*/ - paperproto.getById = function (id) { - var bot = this.bottom; - while (bot) { - if (bot.id == id) { - return bot; - } - bot = bot.next; - } - return null; - }; - /*\ - * Paper.forEach - [ method ] - ** - * Executes given function for each element on the paper - * - * If callback function returns `false` it will stop loop running. - ** - > Parameters - ** - - callback (function) function to run - - thisArg (object) context object for the callback - = (object) Paper object - > Usage - | paper.forEach(function (el) { - | el.attr({ stroke: "blue" }); - | }); - \*/ - paperproto.forEach = function (callback, thisArg) { - var bot = this.bottom; - while (bot) { - if (callback.call(thisArg, bot) === false) { - return this; - } - bot = bot.next; - } - return this; - }; - /*\ - * Paper.getElementsByPoint - [ method ] - ** - * Returns set of elements that have common point inside - ** - > Parameters - ** - - x (number) x coordinate of the point - - y (number) y coordinate of the point - = (object) @Set - \*/ - paperproto.getElementsByPoint = function (x, y) { - var set = this.set(); - this.forEach(function (el) { - if (el.isPointInside(x, y)) { - set.push(el); - } - }); - return set; - }; - function x_y() { - return this.x + S + this.y; - } - function x_y_w_h() { - return this.x + S + this.y + S + this.width + " \xd7 " + this.height; - } - /*\ - * Element.isPointInside - [ method ] - ** - * Determine if given point is inside this element’s shape - ** - > Parameters - ** - - x (number) x coordinate of the point - - y (number) y coordinate of the point - = (boolean) `true` if point inside the shape - \*/ - elproto.isPointInside = function (x, y) { - var rp = this.realPath = getPath[this.type](this); - if (this.attr('transform') && this.attr('transform').length) { - rp = R.transformPath(rp, this.attr('transform')); - } - return R.isPointInsidePath(rp, x, y); - }; - /*\ - * Element.getBBox - [ method ] - ** - * Return bounding box for a given element - ** - > Parameters - ** - - isWithoutTransform (boolean) flag, `true` if you want to have bounding box before transformations. Default is `false`. - = (object) Bounding box object: - o { - o x: (number) top left corner x - o y: (number) top left corner y - o x2: (number) bottom right corner x - o y2: (number) bottom right corner y - o width: (number) width - o height: (number) height - o } - \*/ - elproto.getBBox = function (isWithoutTransform) { - if (this.removed) { - return {}; - } - var _ = this._; - if (isWithoutTransform) { - if (_.dirty || !_.bboxwt) { - this.realPath = getPath[this.type](this); - _.bboxwt = pathDimensions(this.realPath); - _.bboxwt.toString = x_y_w_h; - _.dirty = 0; - } - return _.bboxwt; - } - if (_.dirty || _.dirtyT || !_.bbox) { - if (_.dirty || !this.realPath) { - _.bboxwt = 0; - this.realPath = getPath[this.type](this); - } - _.bbox = pathDimensions(mapPath(this.realPath, this.matrix)); - _.bbox.toString = x_y_w_h; - _.dirty = _.dirtyT = 0; - } - return _.bbox; - }; - /*\ - * Element.clone - [ method ] - ** - = (object) clone of a given element - ** - \*/ - elproto.clone = function () { - if (this.removed) { - return null; - } - var out = this.paper[this.type]().attr(this.attr()); - this.__set__ && this.__set__.push(out); - return out; - }; - /*\ - * Element.glow - [ method ] - ** - * Return set of elements that create glow-like effect around given element. See @Paper.set. - * - * Note: Glow is not connected to the element. If you change element attributes it won’t adjust itself. - ** - > Parameters - ** - - glow (object) #optional parameters object with all properties optional: - o { - o width (number) size of the glow, default is `10` - o fill (boolean) will it be filled, default is `false` - o opacity (number) opacity, default is `0.5` - o offsetx (number) horizontal offset, default is `0` - o offsety (number) vertical offset, default is `0` - o color (string) glow colour, default is `black` - o } - = (object) @Paper.set of elements that represents glow - \*/ - elproto.glow = function (glow) { - if (this.type == "text") { - return null; - } - glow = glow || {}; - var s = { - width: (glow.width || 10) + (+this.attr("stroke-width") || 1), - fill: glow.fill || false, - opacity: glow.opacity == null ? .5 : glow.opacity, - offsetx: glow.offsetx || 0, - offsety: glow.offsety || 0, - color: glow.color || "#000" - }, - c = s.width / 2, - r = this.paper, - out = r.set(), - path = this.realPath || getPath[this.type](this); - path = this.matrix ? mapPath(path, this.matrix) : path; - for (var i = 1; i < c + 1; i++) { - out.push(r.path(path).attr({ - stroke: s.color, - fill: s.fill ? s.color : "none", - "stroke-linejoin": "round", - "stroke-linecap": "round", - "stroke-width": +(s.width / c * i).toFixed(3), - opacity: +(s.opacity / c).toFixed(3) - })); - } - return out.insertBefore(this).translate(s.offsetx, s.offsety); - }; - var curveslengths = {}, - getPointAtSegmentLength = function (p1x, p1y, c1x, c1y, c2x, c2y, p2x, p2y, length) { - if (length == null) { - return bezlen(p1x, p1y, c1x, c1y, c2x, c2y, p2x, p2y); - } else { - return R.findDotsAtSegment(p1x, p1y, c1x, c1y, c2x, c2y, p2x, p2y, getTatLen(p1x, p1y, c1x, c1y, c2x, c2y, p2x, p2y, length)); - } - }, - getLengthFactory = function (istotal, subpath) { - return function (path, length, onlystart) { - path = path2curve(path); - var x, y, p, l, sp = "", subpaths = {}, point, - len = 0; - for (var i = 0, ii = path.length; i < ii; i++) { - p = path[i]; - if (p[0] == "M") { - x = +p[1]; - y = +p[2]; - } else { - l = getPointAtSegmentLength(x, y, p[1], p[2], p[3], p[4], p[5], p[6]); - if (len + l > length) { - if (subpath && !subpaths.start) { - point = getPointAtSegmentLength(x, y, p[1], p[2], p[3], p[4], p[5], p[6], length - len); - sp += ["C" + point.start.x, point.start.y, point.m.x, point.m.y, point.x, point.y]; - if (onlystart) {return sp;} - subpaths.start = sp; - sp = ["M" + point.x, point.y + "C" + point.n.x, point.n.y, point.end.x, point.end.y, p[5], p[6]].join(); - len += l; - x = +p[5]; - y = +p[6]; - continue; - } - if (!istotal && !subpath) { - point = getPointAtSegmentLength(x, y, p[1], p[2], p[3], p[4], p[5], p[6], length - len); - return {x: point.x, y: point.y, alpha: point.alpha}; - } - } - len += l; - x = +p[5]; - y = +p[6]; - } - sp += p.shift() + p; - } - subpaths.end = sp; - point = istotal ? len : subpath ? subpaths : R.findDotsAtSegment(x, y, p[0], p[1], p[2], p[3], p[4], p[5], 1); - point.alpha && (point = {x: point.x, y: point.y, alpha: point.alpha}); - return point; - }; - }; - var getTotalLength = getLengthFactory(1), - getPointAtLength = getLengthFactory(), - getSubpathsAtLength = getLengthFactory(0, 1); - /*\ - * Raphael.getTotalLength - [ method ] - ** - * Returns length of the given path in pixels. - ** - > Parameters - ** - - path (string) SVG path string. - ** - = (number) length. - \*/ - R.getTotalLength = getTotalLength; - /*\ - * Raphael.getPointAtLength - [ method ] - ** - * Return coordinates of the point located at the given length on the given path. - ** - > Parameters - ** - - path (string) SVG path string - - length (number) - ** - = (object) representation of the point: - o { - o x: (number) x coordinate - o y: (number) y coordinate - o alpha: (number) angle of derivative - o } - \*/ - R.getPointAtLength = getPointAtLength; - /*\ - * Raphael.getSubpath - [ method ] - ** - * Return subpath of a given path from given length to given length. - ** - > Parameters - ** - - path (string) SVG path string - - from (number) position of the start of the segment - - to (number) position of the end of the segment - ** - = (string) pathstring for the segment - \*/ - R.getSubpath = function (path, from, to) { - if (this.getTotalLength(path) - to < 1e-6) { - return getSubpathsAtLength(path, from).end; - } - var a = getSubpathsAtLength(path, to, 1); - return from ? getSubpathsAtLength(a, from).end : a; - }; - /*\ - * Element.getTotalLength - [ method ] - ** - * Returns length of the path in pixels. Only works for element of “path” type. - = (number) length. - \*/ - elproto.getTotalLength = function () { - var path = this.getPath(); - if (!path) { - return; - } - - if (this.node.getTotalLength) { - return this.node.getTotalLength(); - } - - return getTotalLength(path); - }; - /*\ - * Element.getPointAtLength - [ method ] - ** - * Return coordinates of the point located at the given length on the given path. Only works for element of “path” type. - ** - > Parameters - ** - - length (number) - ** - = (object) representation of the point: - o { - o x: (number) x coordinate - o y: (number) y coordinate - o alpha: (number) angle of derivative - o } - \*/ - elproto.getPointAtLength = function (length) { - var path = this.getPath(); - if (!path) { - return; - } - - return getPointAtLength(path, length); - }; - /*\ - * Element.getPath - [ method ] - ** - * Returns path of the element. Only works for elements of “path” type and simple elements like circle. - = (object) path - ** - \*/ - elproto.getPath = function () { - var path, - getPath = R._getPath[this.type]; - - if (this.type == "text" || this.type == "set") { - return; - } - - if (getPath) { - path = getPath(this); - } - - return path; - }; - /*\ - * Element.getSubpath - [ method ] - ** - * Return subpath of a given element from given length to given length. Only works for element of “path” type. - ** - > Parameters - ** - - from (number) position of the start of the segment - - to (number) position of the end of the segment - ** - = (string) pathstring for the segment - \*/ - elproto.getSubpath = function (from, to) { - var path = this.getPath(); - if (!path) { - return; - } - - return R.getSubpath(path, from, to); - }; - /*\ - * Raphael.easing_formulas - [ property ] - ** - * Object that contains easing formulas for animation. You could extend it with your own. By default it has following list of easing: - # <ul> - # <li>“linear”</li> - # <li>“&lt;” or “easeIn” or “ease-in”</li> - # <li>“>” or “easeOut” or “ease-out”</li> - # <li>“&lt;>” or “easeInOut” or “ease-in-out”</li> - # <li>“backIn” or “back-in”</li> - # <li>“backOut” or “back-out”</li> - # <li>“elastic”</li> - # <li>“bounce”</li> - # </ul> - # <p>See also <a href="http://raphaeljs.com/easing.html">Easing demo</a>.</p> - \*/ - var ef = R.easing_formulas = { - linear: function (n) { - return n; - }, - "<": function (n) { - return pow(n, 1.7); - }, - ">": function (n) { - return pow(n, .48); - }, - "<>": function (n) { - var q = .48 - n / 1.04, - Q = math.sqrt(.1734 + q * q), - x = Q - q, - X = pow(abs(x), 1 / 3) * (x < 0 ? -1 : 1), - y = -Q - q, - Y = pow(abs(y), 1 / 3) * (y < 0 ? -1 : 1), - t = X + Y + .5; - return (1 - t) * 3 * t * t + t * t * t; - }, - backIn: function (n) { - var s = 1.70158; - return n * n * ((s + 1) * n - s); - }, - backOut: function (n) { - n = n - 1; - var s = 1.70158; - return n * n * ((s + 1) * n + s) + 1; - }, - elastic: function (n) { - if (n == !!n) { - return n; - } - return pow(2, -10 * n) * math.sin((n - .075) * (2 * PI) / .3) + 1; - }, - bounce: function (n) { - var s = 7.5625, - p = 2.75, - l; - if (n < (1 / p)) { - l = s * n * n; - } else { - if (n < (2 / p)) { - n -= (1.5 / p); - l = s * n * n + .75; - } else { - if (n < (2.5 / p)) { - n -= (2.25 / p); - l = s * n * n + .9375; - } else { - n -= (2.625 / p); - l = s * n * n + .984375; - } - } - } - return l; - } - }; - ef.easeIn = ef["ease-in"] = ef["<"]; - ef.easeOut = ef["ease-out"] = ef[">"]; - ef.easeInOut = ef["ease-in-out"] = ef["<>"]; - ef["back-in"] = ef.backIn; - ef["back-out"] = ef.backOut; - - var animationElements = [], - requestAnimFrame = window.requestAnimationFrame || - window.webkitRequestAnimationFrame || - window.mozRequestAnimationFrame || - window.oRequestAnimationFrame || - window.msRequestAnimationFrame || - function (callback) { - setTimeout(callback, 16); - }, - animation = function () { - var Now = +new Date, - l = 0; - for (; l < animationElements.length; l++) { - var e = animationElements[l]; - if (e.el.removed || e.paused) { - continue; - } - var time = Now - e.start, - ms = e.ms, - easing = e.easing, - from = e.from, - diff = e.diff, - to = e.to, - t = e.t, - that = e.el, - set = {}, - now, - init = {}, - key; - if (e.initstatus) { - time = (e.initstatus * e.anim.top - e.prev) / (e.percent - e.prev) * ms; - e.status = e.initstatus; - delete e.initstatus; - e.stop && animationElements.splice(l--, 1); - } else { - e.status = (e.prev + (e.percent - e.prev) * (time / ms)) / e.anim.top; - } - if (time < 0) { - continue; - } - if (time < ms) { - var pos = easing(time / ms); - for (var attr in from) if (from[has](attr)) { - switch (availableAnimAttrs[attr]) { - case nu: - now = +from[attr] + pos * ms * diff[attr]; - break; - case "colour": - now = "rgb(" + [ - upto255(round(from[attr].r + pos * ms * diff[attr].r)), - upto255(round(from[attr].g + pos * ms * diff[attr].g)), - upto255(round(from[attr].b + pos * ms * diff[attr].b)) - ].join(",") + ")"; - break; - case "path": - now = []; - for (var i = 0, ii = from[attr].length; i < ii; i++) { - now[i] = [from[attr][i][0]]; - for (var j = 1, jj = from[attr][i].length; j < jj; j++) { - now[i][j] = +from[attr][i][j] + pos * ms * diff[attr][i][j]; - } - now[i] = now[i].join(S); - } - now = now.join(S); - break; - case "transform": - if (diff[attr].real) { - now = []; - for (i = 0, ii = from[attr].length; i < ii; i++) { - now[i] = [from[attr][i][0]]; - for (j = 1, jj = from[attr][i].length; j < jj; j++) { - now[i][j] = from[attr][i][j] + pos * ms * diff[attr][i][j]; - } - } - } else { - var get = function (i) { - return +from[attr][i] + pos * ms * diff[attr][i]; - }; - // now = [["r", get(2), 0, 0], ["t", get(3), get(4)], ["s", get(0), get(1), 0, 0]]; - now = [["m", get(0), get(1), get(2), get(3), get(4), get(5)]]; - } - break; - case "csv": - if (attr == "clip-rect") { - now = []; - i = 4; - while (i--) { - now[i] = +from[attr][i] + pos * ms * diff[attr][i]; - } - } - break; - default: - var from2 = [][concat](from[attr]); - now = []; - i = that.paper.customAttributes[attr].length; - while (i--) { - now[i] = +from2[i] + pos * ms * diff[attr][i]; - } - break; - } - set[attr] = now; - } - that.attr(set); - (function (id, that, anim) { - setTimeout(function () { - eve("raphael.anim.frame." + id, that, anim); - }); - })(that.id, that, e.anim); - } else { - (function(f, el, a) { - setTimeout(function() { - eve("raphael.anim.frame." + el.id, el, a); - eve("raphael.anim.finish." + el.id, el, a); - R.is(f, "function") && f.call(el); - }); - })(e.callback, that, e.anim); - that.attr(to); - animationElements.splice(l--, 1); - if (e.repeat > 1 && !e.next) { - for (key in to) if (to[has](key)) { - init[key] = e.totalOrigin[key]; - } - e.el.attr(init); - runAnimation(e.anim, e.el, e.anim.percents[0], null, e.totalOrigin, e.repeat - 1); - } - if (e.next && !e.stop) { - runAnimation(e.anim, e.el, e.next, null, e.totalOrigin, e.repeat); - } - } - } - animationElements.length && requestAnimFrame(animation); - }, - upto255 = function (color) { - return color > 255 ? 255 : color < 0 ? 0 : color; - }; - /*\ - * Element.animateWith - [ method ] - ** - * Acts similar to @Element.animate, but ensure that given animation runs in sync with another given element. - ** - > Parameters - ** - - el (object) element to sync with - - anim (object) animation to sync with - - params (object) #optional final attributes for the element, see also @Element.attr - - ms (number) #optional number of milliseconds for animation to run - - easing (string) #optional easing type. Accept on of @Raphael.easing_formulas or CSS format: `cubic&#x2010;bezier(XX,&#160;XX,&#160;XX,&#160;XX)` - - callback (function) #optional callback function. Will be called at the end of animation. - * or - - element (object) element to sync with - - anim (object) animation to sync with - - animation (object) #optional animation object, see @Raphael.animation - ** - = (object) original element - \*/ - elproto.animateWith = function (el, anim, params, ms, easing, callback) { - var element = this; - if (element.removed) { - callback && callback.call(element); - return element; - } - var a = params instanceof Animation ? params : R.animation(params, ms, easing, callback), - x, y; - runAnimation(a, element, a.percents[0], null, element.attr()); - for (var i = 0, ii = animationElements.length; i < ii; i++) { - if (animationElements[i].anim == anim && animationElements[i].el == el) { - animationElements[ii - 1].start = animationElements[i].start; - break; - } - } - return element; - // - // - // var a = params ? R.animation(params, ms, easing, callback) : anim, - // status = element.status(anim); - // return this.animate(a).status(a, status * anim.ms / a.ms); - }; - function CubicBezierAtTime(t, p1x, p1y, p2x, p2y, duration) { - var cx = 3 * p1x, - bx = 3 * (p2x - p1x) - cx, - ax = 1 - cx - bx, - cy = 3 * p1y, - by = 3 * (p2y - p1y) - cy, - ay = 1 - cy - by; - function sampleCurveX(t) { - return ((ax * t + bx) * t + cx) * t; - } - function solve(x, epsilon) { - var t = solveCurveX(x, epsilon); - return ((ay * t + by) * t + cy) * t; - } - function solveCurveX(x, epsilon) { - var t0, t1, t2, x2, d2, i; - for(t2 = x, i = 0; i < 8; i++) { - x2 = sampleCurveX(t2) - x; - if (abs(x2) < epsilon) { - return t2; - } - d2 = (3 * ax * t2 + 2 * bx) * t2 + cx; - if (abs(d2) < 1e-6) { - break; - } - t2 = t2 - x2 / d2; - } - t0 = 0; - t1 = 1; - t2 = x; - if (t2 < t0) { - return t0; - } - if (t2 > t1) { - return t1; - } - while (t0 < t1) { - x2 = sampleCurveX(t2); - if (abs(x2 - x) < epsilon) { - return t2; - } - if (x > x2) { - t0 = t2; - } else { - t1 = t2; - } - t2 = (t1 - t0) / 2 + t0; - } - return t2; - } - return solve(t, 1 / (200 * duration)); - } - elproto.onAnimation = function (f) { - f ? eve.on("raphael.anim.frame." + this.id, f) : eve.unbind("raphael.anim.frame." + this.id); - return this; - }; - function Animation(anim, ms) { - var percents = [], - newAnim = {}; - this.ms = ms; - this.times = 1; - if (anim) { - for (var attr in anim) if (anim[has](attr)) { - newAnim[toFloat(attr)] = anim[attr]; - percents.push(toFloat(attr)); - } - percents.sort(sortByNumber); - } - this.anim = newAnim; - this.top = percents[percents.length - 1]; - this.percents = percents; - } - /*\ - * Animation.delay - [ method ] - ** - * Creates a copy of existing animation object with given delay. - ** - > Parameters - ** - - delay (number) number of ms to pass between animation start and actual animation - ** - = (object) new altered Animation object - | var anim = Raphael.animation({cx: 10, cy: 20}, 2e3); - | circle1.animate(anim); // run the given animation immediately - | circle2.animate(anim.delay(500)); // run the given animation after 500 ms - \*/ - Animation.prototype.delay = function (delay) { - var a = new Animation(this.anim, this.ms); - a.times = this.times; - a.del = +delay || 0; - return a; - }; - /*\ - * Animation.repeat - [ method ] - ** - * Creates a copy of existing animation object with given repetition. - ** - > Parameters - ** - - repeat (number) number iterations of animation. For infinite animation pass `Infinity` - ** - = (object) new altered Animation object - \*/ - Animation.prototype.repeat = function (times) { - var a = new Animation(this.anim, this.ms); - a.del = this.del; - a.times = math.floor(mmax(times, 0)) || 1; - return a; - }; - function runAnimation(anim, element, percent, status, totalOrigin, times) { - percent = toFloat(percent); - var params, - isInAnim, - isInAnimSet, - percents = [], - next, - prev, - timestamp, - ms = anim.ms, - from = {}, - to = {}, - diff = {}; - if (status) { - for (i = 0, ii = animationElements.length; i < ii; i++) { - var e = animationElements[i]; - if (e.el.id == element.id && e.anim == anim) { - if (e.percent != percent) { - animationElements.splice(i, 1); - isInAnimSet = 1; - } else { - isInAnim = e; - } - element.attr(e.totalOrigin); - break; - } - } - } else { - status = +to; // NaN - } - for (var i = 0, ii = anim.percents.length; i < ii; i++) { - if (anim.percents[i] == percent || anim.percents[i] > status * anim.top) { - percent = anim.percents[i]; - prev = anim.percents[i - 1] || 0; - ms = ms / anim.top * (percent - prev); - next = anim.percents[i + 1]; - params = anim.anim[percent]; - break; - } else if (status) { - element.attr(anim.anim[anim.percents[i]]); - } - } - if (!params) { - return; - } - if (!isInAnim) { - for (var attr in params) if (params[has](attr)) { - if (availableAnimAttrs[has](attr) || element.paper.customAttributes[has](attr)) { - from[attr] = element.attr(attr); - (from[attr] == null) && (from[attr] = availableAttrs[attr]); - to[attr] = params[attr]; - switch (availableAnimAttrs[attr]) { - case nu: - diff[attr] = (to[attr] - from[attr]) / ms; - break; - case "colour": - from[attr] = R.getRGB(from[attr]); - var toColour = R.getRGB(to[attr]); - diff[attr] = { - r: (toColour.r - from[attr].r) / ms, - g: (toColour.g - from[attr].g) / ms, - b: (toColour.b - from[attr].b) / ms - }; - break; - case "path": - var pathes = path2curve(from[attr], to[attr]), - toPath = pathes[1]; - from[attr] = pathes[0]; - diff[attr] = []; - for (i = 0, ii = from[attr].length; i < ii; i++) { - diff[attr][i] = [0]; - for (var j = 1, jj = from[attr][i].length; j < jj; j++) { - diff[attr][i][j] = (toPath[i][j] - from[attr][i][j]) / ms; - } - } - break; - case "transform": - var _ = element._, - eq = equaliseTransform(_[attr], to[attr]); - if (eq) { - from[attr] = eq.from; - to[attr] = eq.to; - diff[attr] = []; - diff[attr].real = true; - for (i = 0, ii = from[attr].length; i < ii; i++) { - diff[attr][i] = [from[attr][i][0]]; - for (j = 1, jj = from[attr][i].length; j < jj; j++) { - diff[attr][i][j] = (to[attr][i][j] - from[attr][i][j]) / ms; - } - } - } else { - var m = (element.matrix || new Matrix), - to2 = { - _: {transform: _.transform}, - getBBox: function () { - return element.getBBox(1); - } - }; - from[attr] = [ - m.a, - m.b, - m.c, - m.d, - m.e, - m.f - ]; - extractTransform(to2, to[attr]); - to[attr] = to2._.transform; - diff[attr] = [ - (to2.matrix.a - m.a) / ms, - (to2.matrix.b - m.b) / ms, - (to2.matrix.c - m.c) / ms, - (to2.matrix.d - m.d) / ms, - (to2.matrix.e - m.e) / ms, - (to2.matrix.f - m.f) / ms - ]; - // from[attr] = [_.sx, _.sy, _.deg, _.dx, _.dy]; - // var to2 = {_:{}, getBBox: function () { return element.getBBox(); }}; - // extractTransform(to2, to[attr]); - // diff[attr] = [ - // (to2._.sx - _.sx) / ms, - // (to2._.sy - _.sy) / ms, - // (to2._.deg - _.deg) / ms, - // (to2._.dx - _.dx) / ms, - // (to2._.dy - _.dy) / ms - // ]; - } - break; - case "csv": - var values = Str(params[attr])[split](separator), - from2 = Str(from[attr])[split](separator); - if (attr == "clip-rect") { - from[attr] = from2; - diff[attr] = []; - i = from2.length; - while (i--) { - diff[attr][i] = (values[i] - from[attr][i]) / ms; - } - } - to[attr] = values; - break; - default: - values = [][concat](params[attr]); - from2 = [][concat](from[attr]); - diff[attr] = []; - i = element.paper.customAttributes[attr].length; - while (i--) { - diff[attr][i] = ((values[i] || 0) - (from2[i] || 0)) / ms; - } - break; - } - } - } - var easing = params.easing, - easyeasy = R.easing_formulas[easing]; - if (!easyeasy) { - easyeasy = Str(easing).match(bezierrg); - if (easyeasy && easyeasy.length == 5) { - var curve = easyeasy; - easyeasy = function (t) { - return CubicBezierAtTime(t, +curve[1], +curve[2], +curve[3], +curve[4], ms); - }; - } else { - easyeasy = pipe; - } - } - timestamp = params.start || anim.start || +new Date; - e = { - anim: anim, - percent: percent, - timestamp: timestamp, - start: timestamp + (anim.del || 0), - status: 0, - initstatus: status || 0, - stop: false, - ms: ms, - easing: easyeasy, - from: from, - diff: diff, - to: to, - el: element, - callback: params.callback, - prev: prev, - next: next, - repeat: times || anim.times, - origin: element.attr(), - totalOrigin: totalOrigin - }; - animationElements.push(e); - if (status && !isInAnim && !isInAnimSet) { - e.stop = true; - e.start = new Date - ms * status; - if (animationElements.length == 1) { - return animation(); - } - } - if (isInAnimSet) { - e.start = new Date - e.ms * status; - } - animationElements.length == 1 && requestAnimFrame(animation); - } else { - isInAnim.initstatus = status; - isInAnim.start = new Date - isInAnim.ms * status; - } - eve("raphael.anim.start." + element.id, element, anim); - } - /*\ - * Raphael.animation - [ method ] - ** - * Creates an animation object that can be passed to the @Element.animate or @Element.animateWith methods. - * See also @Animation.delay and @Animation.repeat methods. - ** - > Parameters - ** - - params (object) final attributes for the element, see also @Element.attr - - ms (number) number of milliseconds for animation to run - - easing (string) #optional easing type. Accept one of @Raphael.easing_formulas or CSS format: `cubic&#x2010;bezier(XX,&#160;XX,&#160;XX,&#160;XX)` - - callback (function) #optional callback function. Will be called at the end of animation. - ** - = (object) @Animation - \*/ - R.animation = function (params, ms, easing, callback) { - if (params instanceof Animation) { - return params; - } - if (R.is(easing, "function") || !easing) { - callback = callback || easing || null; - easing = null; - } - params = Object(params); - ms = +ms || 0; - var p = {}, - json, - attr; - for (attr in params) if (params[has](attr) && toFloat(attr) != attr && toFloat(attr) + "%" != attr) { - json = true; - p[attr] = params[attr]; - } - if (!json) { - // if percent-like syntax is used and end-of-all animation callback used - if(callback){ - // find the last one - var lastKey = 0; - for(var i in params){ - var percent = toInt(i); - if(params[has](i) && percent > lastKey){ - lastKey = percent; - } - } - lastKey += '%'; - // if already defined callback in the last keyframe, skip - !params[lastKey].callback && (params[lastKey].callback = callback); - } - return new Animation(params, ms); - } else { - easing && (p.easing = easing); - callback && (p.callback = callback); - return new Animation({100: p}, ms); - } - }; - /*\ - * Element.animate - [ method ] - ** - * Creates and starts animation for given element. - ** - > Parameters - ** - - params (object) final attributes for the element, see also @Element.attr - - ms (number) number of milliseconds for animation to run - - easing (string) #optional easing type. Accept one of @Raphael.easing_formulas or CSS format: `cubic&#x2010;bezier(XX,&#160;XX,&#160;XX,&#160;XX)` - - callback (function) #optional callback function. Will be called at the end of animation. - * or - - animation (object) animation object, see @Raphael.animation - ** - = (object) original element - \*/ - elproto.animate = function (params, ms, easing, callback) { - var element = this; - if (element.removed) { - callback && callback.call(element); - return element; - } - var anim = params instanceof Animation ? params : R.animation(params, ms, easing, callback); - runAnimation(anim, element, anim.percents[0], null, element.attr()); - return element; - }; - /*\ - * Element.setTime - [ method ] - ** - * Sets the status of animation of the element in milliseconds. Similar to @Element.status method. - ** - > Parameters - ** - - anim (object) animation object - - value (number) number of milliseconds from the beginning of the animation - ** - = (object) original element if `value` is specified - * Note, that during animation following events are triggered: - * - * On each animation frame event `anim.frame.<id>`, on start `anim.start.<id>` and on end `anim.finish.<id>`. - \*/ - elproto.setTime = function (anim, value) { - if (anim && value != null) { - this.status(anim, mmin(value, anim.ms) / anim.ms); - } - return this; - }; - /*\ - * Element.status - [ method ] - ** - * Gets or sets the status of animation of the element. - ** - > Parameters - ** - - anim (object) #optional animation object - - value (number) #optional 0 – 1. If specified, method works like a setter and sets the status of a given animation to the value. This will cause animation to jump to the given position. - ** - = (number) status - * or - = (array) status if `anim` is not specified. Array of objects in format: - o { - o anim: (object) animation object - o status: (number) status - o } - * or - = (object) original element if `value` is specified - \*/ - elproto.status = function (anim, value) { - var out = [], - i = 0, - len, - e; - if (value != null) { - runAnimation(anim, this, -1, mmin(value, 1)); - return this; - } else { - len = animationElements.length; - for (; i < len; i++) { - e = animationElements[i]; - if (e.el.id == this.id && (!anim || e.anim == anim)) { - if (anim) { - return e.status; - } - out.push({ - anim: e.anim, - status: e.status - }); - } - } - if (anim) { - return 0; - } - return out; - } - }; - /*\ - * Element.pause - [ method ] - ** - * Stops animation of the element with ability to resume it later on. - ** - > Parameters - ** - - anim (object) #optional animation object - ** - = (object) original element - \*/ - elproto.pause = function (anim) { - for (var i = 0; i < animationElements.length; i++) if (animationElements[i].el.id == this.id && (!anim || animationElements[i].anim == anim)) { - if (eve("raphael.anim.pause." + this.id, this, animationElements[i].anim) !== false) { - animationElements[i].paused = true; - } - } - return this; - }; - /*\ - * Element.resume - [ method ] - ** - * Resumes animation if it was paused with @Element.pause method. - ** - > Parameters - ** - - anim (object) #optional animation object - ** - = (object) original element - \*/ - elproto.resume = function (anim) { - for (var i = 0; i < animationElements.length; i++) if (animationElements[i].el.id == this.id && (!anim || animationElements[i].anim == anim)) { - var e = animationElements[i]; - if (eve("raphael.anim.resume." + this.id, this, e.anim) !== false) { - delete e.paused; - this.status(e.anim, e.status); - } - } - return this; - }; - /*\ - * Element.stop - [ method ] - ** - * Stops animation of the element. - ** - > Parameters - ** - - anim (object) #optional animation object - ** - = (object) original element - \*/ - elproto.stop = function (anim) { - for (var i = 0; i < animationElements.length; i++) if (animationElements[i].el.id == this.id && (!anim || animationElements[i].anim == anim)) { - if (eve("raphael.anim.stop." + this.id, this, animationElements[i].anim) !== false) { - animationElements.splice(i--, 1); - } - } - return this; - }; - function stopAnimation(paper) { - for (var i = 0; i < animationElements.length; i++) if (animationElements[i].el.paper == paper) { - animationElements.splice(i--, 1); - } - } - eve.on("raphael.remove", stopAnimation); - eve.on("raphael.clear", stopAnimation); - elproto.toString = function () { - return "Rapha\xebl\u2019s object"; - }; - - // Set - var Set = function (items) { - this.items = []; - this.length = 0; - this.type = "set"; - if (items) { - for (var i = 0, ii = items.length; i < ii; i++) { - if (items[i] && (items[i].constructor == elproto.constructor || items[i].constructor == Set)) { - this[this.items.length] = this.items[this.items.length] = items[i]; - this.length++; - } - } - } - }, - setproto = Set.prototype; - /*\ - * Set.push - [ method ] - ** - * Adds each argument to the current set. - = (object) original element - \*/ - setproto.push = function () { - var item, - len; - for (var i = 0, ii = arguments.length; i < ii; i++) { - item = arguments[i]; - if (item && (item.constructor == elproto.constructor || item.constructor == Set)) { - len = this.items.length; - this[len] = this.items[len] = item; - this.length++; - } - } - return this; - }; - /*\ - * Set.pop - [ method ] - ** - * Removes last element and returns it. - = (object) element - \*/ - setproto.pop = function () { - this.length && delete this[this.length--]; - return this.items.pop(); - }; - /*\ - * Set.forEach - [ method ] - ** - * Executes given function for each element in the set. - * - * If function returns `false` it will stop loop running. - ** - > Parameters - ** - - callback (function) function to run - - thisArg (object) context object for the callback - = (object) Set object - \*/ - setproto.forEach = function (callback, thisArg) { - for (var i = 0, ii = this.items.length; i < ii; i++) { - if (callback.call(thisArg, this.items[i], i) === false) { - return this; - } - } - return this; - }; - for (var method in elproto) if (elproto[has](method)) { - setproto[method] = (function (methodname) { - return function () { - var arg = arguments; - return this.forEach(function (el) { - el[methodname][apply](el, arg); - }); - }; - })(method); - } - setproto.attr = function (name, value) { - if (name && R.is(name, array) && R.is(name[0], "object")) { - for (var j = 0, jj = name.length; j < jj; j++) { - this.items[j].attr(name[j]); - } - } else { - for (var i = 0, ii = this.items.length; i < ii; i++) { - this.items[i].attr(name, value); - } - } - return this; - }; - /*\ - * Set.clear - [ method ] - ** - * Removes all elements from the set - \*/ - setproto.clear = function () { - while (this.length) { - this.pop(); - } - }; - /*\ - * Set.splice - [ method ] - ** - * Removes given element from the set - ** - > Parameters - ** - - index (number) position of the deletion - - count (number) number of element to remove - - insertion… (object) #optional elements to insert - = (object) set elements that were deleted - \*/ - setproto.splice = function (index, count, insertion) { - index = index < 0 ? mmax(this.length + index, 0) : index; - count = mmax(0, mmin(this.length - index, count)); - var tail = [], - todel = [], - args = [], - i; - for (i = 2; i < arguments.length; i++) { - args.push(arguments[i]); - } - for (i = 0; i < count; i++) { - todel.push(this[index + i]); - } - for (; i < this.length - index; i++) { - tail.push(this[index + i]); - } - var arglen = args.length; - for (i = 0; i < arglen + tail.length; i++) { - this.items[index + i] = this[index + i] = i < arglen ? args[i] : tail[i - arglen]; - } - i = this.items.length = this.length -= count - arglen; - while (this[i]) { - delete this[i++]; - } - return new Set(todel); - }; - /*\ - * Set.exclude - [ method ] - ** - * Removes given element from the set - ** - > Parameters - ** - - element (object) element to remove - = (boolean) `true` if object was found & removed from the set - \*/ - setproto.exclude = function (el) { - for (var i = 0, ii = this.length; i < ii; i++) if (this[i] == el) { - this.splice(i, 1); - return true; - } - }; - setproto.animate = function (params, ms, easing, callback) { - (R.is(easing, "function") || !easing) && (callback = easing || null); - var len = this.items.length, - i = len, - item, - set = this, - collector; - if (!len) { - return this; - } - callback && (collector = function () { - !--len && callback.call(set); - }); - easing = R.is(easing, string) ? easing : collector; - var anim = R.animation(params, ms, easing, collector); - item = this.items[--i].animate(anim); - while (i--) { - this.items[i] && !this.items[i].removed && this.items[i].animateWith(item, anim, anim); - (this.items[i] && !this.items[i].removed) || len--; - } - return this; - }; - setproto.insertAfter = function (el) { - var i = this.items.length; - while (i--) { - this.items[i].insertAfter(el); - } - return this; - }; - setproto.getBBox = function () { - var x = [], - y = [], - x2 = [], - y2 = []; - for (var i = this.items.length; i--;) if (!this.items[i].removed) { - var box = this.items[i].getBBox(); - x.push(box.x); - y.push(box.y); - x2.push(box.x + box.width); - y2.push(box.y + box.height); - } - x = mmin[apply](0, x); - y = mmin[apply](0, y); - x2 = mmax[apply](0, x2); - y2 = mmax[apply](0, y2); - return { - x: x, - y: y, - x2: x2, - y2: y2, - width: x2 - x, - height: y2 - y - }; - }; - setproto.clone = function (s) { - s = this.paper.set(); - for (var i = 0, ii = this.items.length; i < ii; i++) { - s.push(this.items[i].clone()); - } - return s; - }; - setproto.toString = function () { - return "Rapha\xebl\u2018s set"; - }; - - setproto.glow = function(glowConfig) { - var ret = this.paper.set(); - this.forEach(function(shape, index){ - var g = shape.glow(glowConfig); - if(g != null){ - g.forEach(function(shape2, index2){ - ret.push(shape2); - }); - } - }); - return ret; - }; - - - /*\ - * Set.isPointInside - [ method ] - ** - * Determine if given point is inside this set’s elements - ** - > Parameters - ** - - x (number) x coordinate of the point - - y (number) y coordinate of the point - = (boolean) `true` if point is inside any of the set's elements - \*/ - setproto.isPointInside = function (x, y) { - var isPointInside = false; - this.forEach(function (el) { - if (el.isPointInside(x, y)) { - isPointInside = true; - return false; // stop loop - } - }); - return isPointInside; - }; - - /*\ - * Raphael.registerFont - [ method ] - ** - * Adds given font to the registered set of fonts for Raphaël. Should be used as an internal call from within Cufón’s font file. - * Returns original parameter, so it could be used with chaining. - # <a href="http://wiki.github.com/sorccu/cufon/about">More about Cufón and how to convert your font form TTF, OTF, etc to JavaScript file.</a> - ** - > Parameters - ** - - font (object) the font to register - = (object) the font you passed in - > Usage - | Cufon.registerFont(Raphael.registerFont({…})); - \*/ - R.registerFont = function (font) { - if (!font.face) { - return font; - } - this.fonts = this.fonts || {}; - var fontcopy = { - w: font.w, - face: {}, - glyphs: {} - }, - family = font.face["font-family"]; - for (var prop in font.face) if (font.face[has](prop)) { - fontcopy.face[prop] = font.face[prop]; - } - if (this.fonts[family]) { - this.fonts[family].push(fontcopy); - } else { - this.fonts[family] = [fontcopy]; - } - if (!font.svg) { - fontcopy.face["units-per-em"] = toInt(font.face["units-per-em"], 10); - for (var glyph in font.glyphs) if (font.glyphs[has](glyph)) { - var path = font.glyphs[glyph]; - fontcopy.glyphs[glyph] = { - w: path.w, - k: {}, - d: path.d && "M" + path.d.replace(/[mlcxtrv]/g, function (command) { - return {l: "L", c: "C", x: "z", t: "m", r: "l", v: "c"}[command] || "M"; - }) + "z" - }; - if (path.k) { - for (var k in path.k) if (path[has](k)) { - fontcopy.glyphs[glyph].k[k] = path.k[k]; - } - } - } - } - return font; - }; - /*\ - * Paper.getFont - [ method ] - ** - * Finds font object in the registered fonts by given parameters. You could specify only one word from the font name, like “Myriad” for “Myriad Pro”. - ** - > Parameters - ** - - family (string) font family name or any word from it - - weight (string) #optional font weight - - style (string) #optional font style - - stretch (string) #optional font stretch - = (object) the font object - > Usage - | paper.print(100, 100, "Test string", paper.getFont("Times", 800), 30); - \*/ - paperproto.getFont = function (family, weight, style, stretch) { - stretch = stretch || "normal"; - style = style || "normal"; - weight = +weight || {normal: 400, bold: 700, lighter: 300, bolder: 800}[weight] || 400; - if (!R.fonts) { - return; - } - var font = R.fonts[family]; - if (!font) { - var name = new RegExp("(^|\\s)" + family.replace(/[^\w\d\s+!~.:_-]/g, E) + "(\\s|$)", "i"); - for (var fontName in R.fonts) if (R.fonts[has](fontName)) { - if (name.test(fontName)) { - font = R.fonts[fontName]; - break; - } - } - } - var thefont; - if (font) { - for (var i = 0, ii = font.length; i < ii; i++) { - thefont = font[i]; - if (thefont.face["font-weight"] == weight && (thefont.face["font-style"] == style || !thefont.face["font-style"]) && thefont.face["font-stretch"] == stretch) { - break; - } - } - } - return thefont; - }; - /*\ - * Paper.print - [ method ] - ** - * Creates path that represent given text written using given font at given position with given size. - * Result of the method is path element that contains whole text as a separate path. - ** - > Parameters - ** - - x (number) x position of the text - - y (number) y position of the text - - string (string) text to print - - font (object) font object, see @Paper.getFont - - size (number) #optional size of the font, default is `16` - - origin (string) #optional could be `"baseline"` or `"middle"`, default is `"middle"` - - letter_spacing (number) #optional number in range `-1..1`, default is `0` - - line_spacing (number) #optional number in range `1..3`, default is `1` - = (object) resulting path element, which consist of all letters - > Usage - | var txt = r.print(10, 50, "print", r.getFont("Museo"), 30).attr({fill: "#fff"}); - \*/ - paperproto.print = function (x, y, string, font, size, origin, letter_spacing, line_spacing) { - origin = origin || "middle"; // baseline|middle - letter_spacing = mmax(mmin(letter_spacing || 0, 1), -1); - line_spacing = mmax(mmin(line_spacing || 1, 3), 1); - var letters = Str(string)[split](E), - shift = 0, - notfirst = 0, - path = E, - scale; - R.is(font, "string") && (font = this.getFont(font)); - if (font) { - scale = (size || 16) / font.face["units-per-em"]; - var bb = font.face.bbox[split](separator), - top = +bb[0], - lineHeight = bb[3] - bb[1], - shifty = 0, - height = +bb[1] + (origin == "baseline" ? lineHeight + (+font.face.descent) : lineHeight / 2); - for (var i = 0, ii = letters.length; i < ii; i++) { - if (letters[i] == "\n") { - shift = 0; - curr = 0; - notfirst = 0; - shifty += lineHeight * line_spacing; - } else { - var prev = notfirst && font.glyphs[letters[i - 1]] || {}, - curr = font.glyphs[letters[i]]; - shift += notfirst ? (prev.w || font.w) + (prev.k && prev.k[letters[i]] || 0) + (font.w * letter_spacing) : 0; - notfirst = 1; - } - if (curr && curr.d) { - path += R.transformPath(curr.d, ["t", shift * scale, shifty * scale, "s", scale, scale, top, height, "t", (x - top) / scale, (y - height) / scale]); - } - } - } - return this.path(path).attr({ - fill: "#000", - stroke: "none" - }); - }; - - /*\ - * Paper.add - [ method ] - ** - * Imports elements in JSON array in format `{type: type, <attributes>}` - ** - > Parameters - ** - - json (array) - = (object) resulting set of imported elements - > Usage - | paper.add([ - | { - | type: "circle", - | cx: 10, - | cy: 10, - | r: 5 - | }, - | { - | type: "rect", - | x: 10, - | y: 10, - | width: 10, - | height: 10, - | fill: "#fc0" - | } - | ]); - \*/ - paperproto.add = function (json) { - if (R.is(json, "array")) { - var res = this.set(), - i = 0, - ii = json.length, - j; - for (; i < ii; i++) { - j = json[i] || {}; - elements[has](j.type) && res.push(this[j.type]().attr(j)); - } - } - return res; - }; - - /*\ - * Raphael.format - [ method ] - ** - * Simple format function. Replaces construction of type “`{<number>}`” to the corresponding argument. - ** - > Parameters - ** - - token (string) string to format - - … (string) rest of arguments will be treated as parameters for replacement - = (string) formated string - > Usage - | var x = 10, - | y = 20, - | width = 40, - | height = 50; - | // this will draw a rectangular shape equivalent to "M10,20h40v50h-40z" - | paper.path(Raphael.format("M{0},{1}h{2}v{3}h{4}z", x, y, width, height, -width)); - \*/ - R.format = function (token, params) { - var args = R.is(params, array) ? [0][concat](params) : arguments; - token && R.is(token, string) && args.length - 1 && (token = token.replace(formatrg, function (str, i) { - return args[++i] == null ? E : args[i]; - })); - return token || E; - }; - /*\ - * Raphael.fullfill - [ method ] - ** - * A little bit more advanced format function than @Raphael.format. Replaces construction of type “`{<name>}`” to the corresponding argument. - ** - > Parameters - ** - - token (string) string to format - - json (object) object which properties will be used as a replacement - = (string) formated string - > Usage - | // this will draw a rectangular shape equivalent to "M10,20h40v50h-40z" - | paper.path(Raphael.fullfill("M{x},{y}h{dim.width}v{dim.height}h{dim['negative width']}z", { - | x: 10, - | y: 20, - | dim: { - | width: 40, - | height: 50, - | "negative width": -40 - | } - | })); - \*/ - R.fullfill = (function () { - var tokenRegex = /\{([^\}]+)\}/g, - objNotationRegex = /(?:(?:^|\.)(.+?)(?=\[|\.|$|\()|\[('|")(.+?)\2\])(\(\))?/g, // matches .xxxxx or ["xxxxx"] to run over object properties - replacer = function (all, key, obj) { - var res = obj; - key.replace(objNotationRegex, function (all, name, quote, quotedName, isFunc) { - name = name || quotedName; - if (res) { - if (name in res) { - res = res[name]; - } - typeof res == "function" && isFunc && (res = res()); - } - }); - res = (res == null || res == obj ? all : res) + ""; - return res; - }; - return function (str, obj) { - return String(str).replace(tokenRegex, function (all, key) { - return replacer(all, key, obj); - }); - }; - })(); - /*\ - * Raphael.ninja - [ method ] - ** - * If you want to leave no trace of Raphaël (Well, Raphaël creates only one global variable `Raphael`, but anyway.) You can use `ninja` method. - * Beware, that in this case plugins could stop working, because they are depending on global variable existence. - ** - = (object) Raphael object - > Usage - | (function (local_raphael) { - | var paper = local_raphael(10, 10, 320, 200); - | … - | })(Raphael.ninja()); - \*/ - R.ninja = function () { - if (oldRaphael.was) { - g.win.Raphael = oldRaphael.is; - } else { - // IE8 raises an error when deleting window property - window.Raphael = undefined; - try { - delete window.Raphael; - } catch(e) {} - } - return R; - }; - /*\ - * Raphael.st - [ property (object) ] - ** - * You can add your own method to elements and sets. It is wise to add a set method for each element method - * you added, so you will be able to call the same method on sets too. - ** - * See also @Raphael.el. - > Usage - | Raphael.el.red = function () { - | this.attr({fill: "#f00"}); - | }; - | Raphael.st.red = function () { - | this.forEach(function (el) { - | el.red(); - | }); - | }; - | // then use it - | paper.set(paper.circle(100, 100, 20), paper.circle(110, 100, 20)).red(); - \*/ - R.st = setproto; - - eve.on("raphael.DOMload", function () { - loaded = true; - }); - - // Firefox <3.6 fix: http://webreflection.blogspot.com/2009/11/195-chars-to-help-lazy-loading.html - (function (doc, loaded, f) { - if (doc.readyState == null && doc.addEventListener){ - doc.addEventListener(loaded, f = function () { - doc.removeEventListener(loaded, f, false); - doc.readyState = "complete"; - }, false); - doc.readyState = "loading"; - } - function isLoaded() { - (/in/).test(doc.readyState) ? setTimeout(isLoaded, 9) : R.eve("raphael.DOMload"); - } - isLoaded(); - })(document, "DOMContentLoaded"); - - return R; - }.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)); - - -/***/ }, -/* 2 */ -/***/ function(module, exports) { - - module.exports = __WEBPACK_EXTERNAL_MODULE_2__; - -/***/ }, -/* 3 */ -/***/ function(module, exports, __webpack_require__) { - - var __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;!(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(1)], __WEBPACK_AMD_DEFINE_RESULT__ = function(R) { - if (R && !R.svg) { - return; - } - - var has = "hasOwnProperty", - Str = String, - toFloat = parseFloat, - toInt = parseInt, - math = Math, - mmax = math.max, - abs = math.abs, - pow = math.pow, - separator = /[, ]+/, - eve = R.eve, - E = "", - S = " "; - var xlink = "http://www.w3.org/1999/xlink", - markers = { - block: "M5,0 0,2.5 5,5z", - classic: "M5,0 0,2.5 5,5 3.5,3 3.5,2z", - diamond: "M2.5,0 5,2.5 2.5,5 0,2.5z", - open: "M6,1 1,3.5 6,6", - oval: "M2.5,0A2.5,2.5,0,0,1,2.5,5 2.5,2.5,0,0,1,2.5,0z" - }, - markerCounter = {}; - R.toString = function () { - return "Your browser supports SVG.\nYou are running Rapha\xebl " + this.version; - }; - var $ = function (el, attr) { - if (attr) { - if (typeof el == "string") { - el = $(el); - } - for (var key in attr) if (attr[has](key)) { - if (key.substring(0, 6) == "xlink:") { - el.setAttributeNS(xlink, key.substring(6), Str(attr[key])); - } else { - el.setAttribute(key, Str(attr[key])); - } - } - } else { - el = R._g.doc.createElementNS("http://www.w3.org/2000/svg", el); - el.style && (el.style.webkitTapHighlightColor = "rgba(0,0,0,0)"); - } - return el; - }, - addGradientFill = function (element, gradient) { - var type = "linear", - id = element.id + gradient, - fx = .5, fy = .5, - o = element.node, - SVG = element.paper, - s = o.style, - el = R._g.doc.getElementById(id); - if (!el) { - gradient = Str(gradient).replace(R._radial_gradient, function (all, _fx, _fy) { - type = "radial"; - if (_fx && _fy) { - fx = toFloat(_fx); - fy = toFloat(_fy); - var dir = ((fy > .5) * 2 - 1); - pow(fx - .5, 2) + pow(fy - .5, 2) > .25 && - (fy = math.sqrt(.25 - pow(fx - .5, 2)) * dir + .5) && - fy != .5 && - (fy = fy.toFixed(5) - 1e-5 * dir); - } - return E; - }); - gradient = gradient.split(/\s*\-\s*/); - if (type == "linear") { - var angle = gradient.shift(); - angle = -toFloat(angle); - if (isNaN(angle)) { - return null; - } - var vector = [0, 0, math.cos(R.rad(angle)), math.sin(R.rad(angle))], - max = 1 / (mmax(abs(vector[2]), abs(vector[3])) || 1); - vector[2] *= max; - vector[3] *= max; - if (vector[2] < 0) { - vector[0] = -vector[2]; - vector[2] = 0; - } - if (vector[3] < 0) { - vector[1] = -vector[3]; - vector[3] = 0; - } - } - var dots = R._parseDots(gradient); - if (!dots) { - return null; - } - id = id.replace(/[\(\)\s,\xb0#]/g, "_"); - - if (element.gradient && id != element.gradient.id) { - SVG.defs.removeChild(element.gradient); - delete element.gradient; - } - - if (!element.gradient) { - el = $(type + "Gradient", {id: id}); - element.gradient = el; - $(el, type == "radial" ? { - fx: fx, - fy: fy - } : { - x1: vector[0], - y1: vector[1], - x2: vector[2], - y2: vector[3], - gradientTransform: element.matrix.invert() - }); - SVG.defs.appendChild(el); - for (var i = 0, ii = dots.length; i < ii; i++) { - el.appendChild($("stop", { - offset: dots[i].offset ? dots[i].offset : i ? "100%" : "0%", - "stop-color": dots[i].color || "#fff", - "stop-opacity": isFinite(dots[i].opacity) ? dots[i].opacity : 1 - })); - } - } - } - $(o, { - fill: fillurl(id), - opacity: 1, - "fill-opacity": 1 - }); - s.fill = E; - s.opacity = 1; - s.fillOpacity = 1; - return 1; - }, - isIE9or10 = function () { - var mode = document.documentMode; - return mode && (mode === 9 || mode === 10); - }, - fillurl = function (id) { - if (isIE9or10()) { - return "url('#" + id + "')"; - } - var location = document.location; - var locationString = ( - location.protocol + '//' + - location.host + - location.pathname + - location.search - ); - return "url('" + locationString + "#" + id + "')"; - }, - updatePosition = function (o) { - var bbox = o.getBBox(1); - $(o.pattern, {patternTransform: o.matrix.invert() + " translate(" + bbox.x + "," + bbox.y + ")"}); - }, - addArrow = function (o, value, isEnd) { - if (o.type == "path") { - var values = Str(value).toLowerCase().split("-"), - p = o.paper, - se = isEnd ? "end" : "start", - node = o.node, - attrs = o.attrs, - stroke = attrs["stroke-width"], - i = values.length, - type = "classic", - from, - to, - dx, - refX, - attr, - w = 3, - h = 3, - t = 5; - while (i--) { - switch (values[i]) { - case "block": - case "classic": - case "oval": - case "diamond": - case "open": - case "none": - type = values[i]; - break; - case "wide": h = 5; break; - case "narrow": h = 2; break; - case "long": w = 5; break; - case "short": w = 2; break; - } - } - if (type == "open") { - w += 2; - h += 2; - t += 2; - dx = 1; - refX = isEnd ? 4 : 1; - attr = { - fill: "none", - stroke: attrs.stroke - }; - } else { - refX = dx = w / 2; - attr = { - fill: attrs.stroke, - stroke: "none" - }; - } - if (o._.arrows) { - if (isEnd) { - o._.arrows.endPath && markerCounter[o._.arrows.endPath]--; - o._.arrows.endMarker && markerCounter[o._.arrows.endMarker]--; - } else { - o._.arrows.startPath && markerCounter[o._.arrows.startPath]--; - o._.arrows.startMarker && markerCounter[o._.arrows.startMarker]--; - } - } else { - o._.arrows = {}; - } - if (type != "none") { - var pathId = "raphael-marker-" + type, - markerId = "raphael-marker-" + se + type + w + h + "-obj" + o.id; - if (!R._g.doc.getElementById(pathId)) { - p.defs.appendChild($($("path"), { - "stroke-linecap": "round", - d: markers[type], - id: pathId - })); - markerCounter[pathId] = 1; - } else { - markerCounter[pathId]++; - } - var marker = R._g.doc.getElementById(markerId), - use; - if (!marker) { - marker = $($("marker"), { - id: markerId, - markerHeight: h, - markerWidth: w, - orient: "auto", - refX: refX, - refY: h / 2 - }); - use = $($("use"), { - "xlink:href": "#" + pathId, - transform: (isEnd ? "rotate(180 " + w / 2 + " " + h / 2 + ") " : E) + "scale(" + w / t + "," + h / t + ")", - "stroke-width": (1 / ((w / t + h / t) / 2)).toFixed(4) - }); - marker.appendChild(use); - p.defs.appendChild(marker); - markerCounter[markerId] = 1; - } else { - markerCounter[markerId]++; - use = marker.getElementsByTagName("use")[0]; - } - $(use, attr); - var delta = dx * (type != "diamond" && type != "oval"); - if (isEnd) { - from = o._.arrows.startdx * stroke || 0; - to = R.getTotalLength(attrs.path) - delta * stroke; - } else { - from = delta * stroke; - to = R.getTotalLength(attrs.path) - (o._.arrows.enddx * stroke || 0); - } - attr = {}; - attr["marker-" + se] = "url(#" + markerId + ")"; - if (to || from) { - attr.d = R.getSubpath(attrs.path, from, to); - } - $(node, attr); - o._.arrows[se + "Path"] = pathId; - o._.arrows[se + "Marker"] = markerId; - o._.arrows[se + "dx"] = delta; - o._.arrows[se + "Type"] = type; - o._.arrows[se + "String"] = value; - } else { - if (isEnd) { - from = o._.arrows.startdx * stroke || 0; - to = R.getTotalLength(attrs.path) - from; - } else { - from = 0; - to = R.getTotalLength(attrs.path) - (o._.arrows.enddx * stroke || 0); - } - o._.arrows[se + "Path"] && $(node, {d: R.getSubpath(attrs.path, from, to)}); - delete o._.arrows[se + "Path"]; - delete o._.arrows[se + "Marker"]; - delete o._.arrows[se + "dx"]; - delete o._.arrows[se + "Type"]; - delete o._.arrows[se + "String"]; - } - for (attr in markerCounter) if (markerCounter[has](attr) && !markerCounter[attr]) { - var item = R._g.doc.getElementById(attr); - item && item.parentNode.removeChild(item); - } - } - }, - dasharray = { - "-": [3, 1], - ".": [1, 1], - "-.": [3, 1, 1, 1], - "-..": [3, 1, 1, 1, 1, 1], - ". ": [1, 3], - "- ": [4, 3], - "--": [8, 3], - "- .": [4, 3, 1, 3], - "--.": [8, 3, 1, 3], - "--..": [8, 3, 1, 3, 1, 3] - }, - addDashes = function (o, value, params) { - value = dasharray[Str(value).toLowerCase()]; - if (value) { - var width = o.attrs["stroke-width"] || "1", - butt = {round: width, square: width, butt: 0}[o.attrs["stroke-linecap"] || params["stroke-linecap"]] || 0, - dashes = [], - i = value.length; - while (i--) { - dashes[i] = value[i] * width + ((i % 2) ? 1 : -1) * butt; - } - $(o.node, {"stroke-dasharray": dashes.join(",")}); - } - else { - $(o.node, {"stroke-dasharray": "none"}); - } - }, - setFillAndStroke = function (o, params) { - var node = o.node, - attrs = o.attrs, - vis = node.style.visibility; - node.style.visibility = "hidden"; - for (var att in params) { - if (params[has](att)) { - if (!R._availableAttrs[has](att)) { - continue; - } - var value = params[att]; - attrs[att] = value; - switch (att) { - case "blur": - o.blur(value); - break; - case "title": - var title = node.getElementsByTagName("title"); - - // Use the existing <title>. - if (title.length && (title = title[0])) { - title.firstChild.nodeValue = value; - } else { - title = $("title"); - var val = R._g.doc.createTextNode(value); - title.appendChild(val); - node.appendChild(title); - } - break; - case "href": - case "target": - var pn = node.parentNode; - if (pn.tagName.toLowerCase() != "a") { - var hl = $("a"); - pn.insertBefore(hl, node); - hl.appendChild(node); - pn = hl; - } - if (att == "target") { - pn.setAttributeNS(xlink, "show", value == "blank" ? "new" : value); - } else { - pn.setAttributeNS(xlink, att, value); - } - break; - case "cursor": - node.style.cursor = value; - break; - case "transform": - o.transform(value); - break; - case "arrow-start": - addArrow(o, value); - break; - case "arrow-end": - addArrow(o, value, 1); - break; - case "clip-rect": - var rect = Str(value).split(separator); - if (rect.length == 4) { - o.clip && o.clip.parentNode.parentNode.removeChild(o.clip.parentNode); - var el = $("clipPath"), - rc = $("rect"); - el.id = R.createUUID(); - $(rc, { - x: rect[0], - y: rect[1], - width: rect[2], - height: rect[3] - }); - el.appendChild(rc); - o.paper.defs.appendChild(el); - $(node, {"clip-path": "url(#" + el.id + ")"}); - o.clip = rc; - } - if (!value) { - var path = node.getAttribute("clip-path"); - if (path) { - var clip = R._g.doc.getElementById(path.replace(/(^url\(#|\)$)/g, E)); - clip && clip.parentNode.removeChild(clip); - $(node, {"clip-path": E}); - delete o.clip; - } - } - break; - case "path": - if (o.type == "path") { - $(node, {d: value ? attrs.path = R._pathToAbsolute(value) : "M0,0"}); - o._.dirty = 1; - if (o._.arrows) { - "startString" in o._.arrows && addArrow(o, o._.arrows.startString); - "endString" in o._.arrows && addArrow(o, o._.arrows.endString, 1); - } - } - break; - case "width": - node.setAttribute(att, value); - o._.dirty = 1; - if (attrs.fx) { - att = "x"; - value = attrs.x; - } else { - break; - } - case "x": - if (attrs.fx) { - value = -attrs.x - (attrs.width || 0); - } - case "rx": - if (att == "rx" && o.type == "rect") { - break; - } - case "cx": - node.setAttribute(att, value); - o.pattern && updatePosition(o); - o._.dirty = 1; - break; - case "height": - node.setAttribute(att, value); - o._.dirty = 1; - if (attrs.fy) { - att = "y"; - value = attrs.y; - } else { - break; - } - case "y": - if (attrs.fy) { - value = -attrs.y - (attrs.height || 0); - } - case "ry": - if (att == "ry" && o.type == "rect") { - break; - } - case "cy": - node.setAttribute(att, value); - o.pattern && updatePosition(o); - o._.dirty = 1; - break; - case "r": - if (o.type == "rect") { - $(node, {rx: value, ry: value}); - } else { - node.setAttribute(att, value); - } - o._.dirty = 1; - break; - case "src": - if (o.type == "image") { - node.setAttributeNS(xlink, "href", value); - } - break; - case "stroke-width": - if (o._.sx != 1 || o._.sy != 1) { - value /= mmax(abs(o._.sx), abs(o._.sy)) || 1; - } - node.setAttribute(att, value); - if (attrs["stroke-dasharray"]) { - addDashes(o, attrs["stroke-dasharray"], params); - } - if (o._.arrows) { - "startString" in o._.arrows && addArrow(o, o._.arrows.startString); - "endString" in o._.arrows && addArrow(o, o._.arrows.endString, 1); - } - break; - case "stroke-dasharray": - addDashes(o, value, params); - break; - case "fill": - var isURL = Str(value).match(R._ISURL); - if (isURL) { - el = $("pattern"); - var ig = $("image"); - el.id = R.createUUID(); - $(el, {x: 0, y: 0, patternUnits: "userSpaceOnUse", height: 1, width: 1}); - $(ig, {x: 0, y: 0, "xlink:href": isURL[1]}); - el.appendChild(ig); - - (function (el) { - R._preload(isURL[1], function () { - var w = this.offsetWidth, - h = this.offsetHeight; - $(el, {width: w, height: h}); - $(ig, {width: w, height: h}); - }); - })(el); - o.paper.defs.appendChild(el); - $(node, {fill: "url(#" + el.id + ")"}); - o.pattern = el; - o.pattern && updatePosition(o); - break; - } - var clr = R.getRGB(value); - if (!clr.error) { - delete params.gradient; - delete attrs.gradient; - !R.is(attrs.opacity, "undefined") && - R.is(params.opacity, "undefined") && - $(node, {opacity: attrs.opacity}); - !R.is(attrs["fill-opacity"], "undefined") && - R.is(params["fill-opacity"], "undefined") && - $(node, {"fill-opacity": attrs["fill-opacity"]}); - } else if ((o.type == "circle" || o.type == "ellipse" || Str(value).charAt() != "r") && addGradientFill(o, value)) { - if ("opacity" in attrs || "fill-opacity" in attrs) { - var gradient = R._g.doc.getElementById(node.getAttribute("fill").replace(/^url\(#|\)$/g, E)); - if (gradient) { - var stops = gradient.getElementsByTagName("stop"); - $(stops[stops.length - 1], {"stop-opacity": ("opacity" in attrs ? attrs.opacity : 1) * ("fill-opacity" in attrs ? attrs["fill-opacity"] : 1)}); - } - } - attrs.gradient = value; - attrs.fill = "none"; - break; - } - clr[has]("opacity") && $(node, {"fill-opacity": clr.opacity > 1 ? clr.opacity / 100 : clr.opacity}); - case "stroke": - clr = R.getRGB(value); - node.setAttribute(att, clr.hex); - att == "stroke" && clr[has]("opacity") && $(node, {"stroke-opacity": clr.opacity > 1 ? clr.opacity / 100 : clr.opacity}); - if (att == "stroke" && o._.arrows) { - "startString" in o._.arrows && addArrow(o, o._.arrows.startString); - "endString" in o._.arrows && addArrow(o, o._.arrows.endString, 1); - } - break; - case "gradient": - (o.type == "circle" || o.type == "ellipse" || Str(value).charAt() != "r") && addGradientFill(o, value); - break; - case "opacity": - if (attrs.gradient && !attrs[has]("stroke-opacity")) { - $(node, {"stroke-opacity": value > 1 ? value / 100 : value}); - } - // fall - case "fill-opacity": - if (attrs.gradient) { - gradient = R._g.doc.getElementById(node.getAttribute("fill").replace(/^url\(#|\)$/g, E)); - if (gradient) { - stops = gradient.getElementsByTagName("stop"); - $(stops[stops.length - 1], {"stop-opacity": value}); - } - break; - } - default: - att == "font-size" && (value = toInt(value, 10) + "px"); - var cssrule = att.replace(/(\-.)/g, function (w) { - return w.substring(1).toUpperCase(); - }); - node.style[cssrule] = value; - o._.dirty = 1; - node.setAttribute(att, value); - break; - } - } - } - - tuneText(o, params); - node.style.visibility = vis; - }, - leading = 1.2, - tuneText = function (el, params) { - if (el.type != "text" || !(params[has]("text") || params[has]("font") || params[has]("font-size") || params[has]("x") || params[has]("y"))) { - return; - } - var a = el.attrs, - node = el.node, - fontSize = node.firstChild ? toInt(R._g.doc.defaultView.getComputedStyle(node.firstChild, E).getPropertyValue("font-size"), 10) : 10; - - if (params[has]("text")) { - a.text = params.text; - while (node.firstChild) { - node.removeChild(node.firstChild); - } - var texts = Str(params.text).split("\n"), - tspans = [], - tspan; - for (var i = 0, ii = texts.length; i < ii; i++) { - tspan = $("tspan"); - i && $(tspan, {dy: fontSize * leading, x: a.x}); - tspan.appendChild(R._g.doc.createTextNode(texts[i])); - node.appendChild(tspan); - tspans[i] = tspan; - } - } else { - tspans = node.getElementsByTagName("tspan"); - for (i = 0, ii = tspans.length; i < ii; i++) if (i) { - $(tspans[i], {dy: fontSize * leading, x: a.x}); - } else { - $(tspans[0], {dy: 0}); - } - } - $(node, {x: a.x, y: a.y}); - el._.dirty = 1; - var bb = el._getBBox(), - dif = a.y - (bb.y + bb.height / 2); - dif && R.is(dif, "finite") && $(tspans[0], {dy: dif}); - }, - getRealNode = function (node) { - if (node.parentNode && node.parentNode.tagName.toLowerCase() === "a") { - return node.parentNode; - } else { - return node; - } - }, - Element = function (node, svg) { - var X = 0, - Y = 0; - /*\ - * Element.node - [ property (object) ] - ** - * Gives you a reference to the DOM object, so you can assign event handlers or just mess around. - ** - * Note: Don’t mess with it. - > Usage - | // draw a circle at coordinate 10,10 with radius of 10 - | var c = paper.circle(10, 10, 10); - | c.node.onclick = function () { - | c.attr("fill", "red"); - | }; - \*/ - this[0] = this.node = node; - /*\ - * Element.raphael - [ property (object) ] - ** - * Internal reference to @Raphael object. In case it is not available. - > Usage - | Raphael.el.red = function () { - | var hsb = this.paper.raphael.rgb2hsb(this.attr("fill")); - | hsb.h = 1; - | this.attr({fill: this.paper.raphael.hsb2rgb(hsb).hex}); - | } - \*/ - node.raphael = true; - /*\ - * Element.id - [ property (number) ] - ** - * Unique id of the element. Especially useful when you want to listen to events of the element, - * because all events are fired in format `<module>.<action>.<id>`. Also useful for @Paper.getById method. - \*/ - this.id = guid(); - node.raphaelid = this.id; - - /** - * Method that returns a 5 letter/digit id, enough for 36^5 = 60466176 elements - * @returns {string} id - */ - function guid() { - return ("0000" + (Math.random()*Math.pow(36,5) << 0).toString(36)).slice(-5); - } - - this.matrix = R.matrix(); - this.realPath = null; - /*\ - * Element.paper - [ property (object) ] - ** - * Internal reference to “paper” where object drawn. Mainly for use in plugins and element extensions. - > Usage - | Raphael.el.cross = function () { - | this.attr({fill: "red"}); - | this.paper.path("M10,10L50,50M50,10L10,50") - | .attr({stroke: "red"}); - | } - \*/ - this.paper = svg; - this.attrs = this.attrs || {}; - this._ = { - transform: [], - sx: 1, - sy: 1, - deg: 0, - dx: 0, - dy: 0, - dirty: 1 - }; - !svg.bottom && (svg.bottom = this); - /*\ - * Element.prev - [ property (object) ] - ** - * Reference to the previous element in the hierarchy. - \*/ - this.prev = svg.top; - svg.top && (svg.top.next = this); - svg.top = this; - /*\ - * Element.next - [ property (object) ] - ** - * Reference to the next element in the hierarchy. - \*/ - this.next = null; - }, - elproto = R.el; - - Element.prototype = elproto; - elproto.constructor = Element; - - R._engine.path = function (pathString, SVG) { - var el = $("path"); - SVG.canvas && SVG.canvas.appendChild(el); - var p = new Element(el, SVG); - p.type = "path"; - setFillAndStroke(p, { - fill: "none", - stroke: "#000", - path: pathString - }); - return p; - }; - /*\ - * Element.rotate - [ method ] - ** - * Deprecated! Use @Element.transform instead. - * Adds rotation by given angle around given point to the list of - * transformations of the element. - > Parameters - - deg (number) angle in degrees - - cx (number) #optional x coordinate of the centre of rotation - - cy (number) #optional y coordinate of the centre of rotation - * If cx & cy aren’t specified centre of the shape is used as a point of rotation. - = (object) @Element - \*/ - elproto.rotate = function (deg, cx, cy) { - if (this.removed) { - return this; - } - deg = Str(deg).split(separator); - if (deg.length - 1) { - cx = toFloat(deg[1]); - cy = toFloat(deg[2]); - } - deg = toFloat(deg[0]); - (cy == null) && (cx = cy); - if (cx == null || cy == null) { - var bbox = this.getBBox(1); - cx = bbox.x + bbox.width / 2; - cy = bbox.y + bbox.height / 2; - } - this.transform(this._.transform.concat([["r", deg, cx, cy]])); - return this; - }; - /*\ - * Element.scale - [ method ] - ** - * Deprecated! Use @Element.transform instead. - * Adds scale by given amount relative to given point to the list of - * transformations of the element. - > Parameters - - sx (number) horisontal scale amount - - sy (number) vertical scale amount - - cx (number) #optional x coordinate of the centre of scale - - cy (number) #optional y coordinate of the centre of scale - * If cx & cy aren’t specified centre of the shape is used instead. - = (object) @Element - \*/ - elproto.scale = function (sx, sy, cx, cy) { - if (this.removed) { - return this; - } - sx = Str(sx).split(separator); - if (sx.length - 1) { - sy = toFloat(sx[1]); - cx = toFloat(sx[2]); - cy = toFloat(sx[3]); - } - sx = toFloat(sx[0]); - (sy == null) && (sy = sx); - (cy == null) && (cx = cy); - if (cx == null || cy == null) { - var bbox = this.getBBox(1); - } - cx = cx == null ? bbox.x + bbox.width / 2 : cx; - cy = cy == null ? bbox.y + bbox.height / 2 : cy; - this.transform(this._.transform.concat([["s", sx, sy, cx, cy]])); - return this; - }; - /*\ - * Element.translate - [ method ] - ** - * Deprecated! Use @Element.transform instead. - * Adds translation by given amount to the list of transformations of the element. - > Parameters - - dx (number) horisontal shift - - dy (number) vertical shift - = (object) @Element - \*/ - elproto.translate = function (dx, dy) { - if (this.removed) { - return this; - } - dx = Str(dx).split(separator); - if (dx.length - 1) { - dy = toFloat(dx[1]); - } - dx = toFloat(dx[0]) || 0; - dy = +dy || 0; - this.transform(this._.transform.concat([["t", dx, dy]])); - return this; - }; - /*\ - * Element.transform - [ method ] - ** - * Adds transformation to the element which is separate to other attributes, - * i.e. translation doesn’t change `x` or `y` of the rectange. The format - * of transformation string is similar to the path string syntax: - | "t100,100r30,100,100s2,2,100,100r45s1.5" - * Each letter is a command. There are four commands: `t` is for translate, `r` is for rotate, `s` is for - * scale and `m` is for matrix. - * - * There are also alternative “absolute” translation, rotation and scale: `T`, `R` and `S`. They will not take previous transformation into account. For example, `...T100,0` will always move element 100 px horisontally, while `...t100,0` could move it vertically if there is `r90` before. Just compare results of `r90t100,0` and `r90T100,0`. - * - * So, the example line above could be read like “translate by 100, 100; rotate 30° around 100, 100; scale twice around 100, 100; - * rotate 45° around centre; scale 1.5 times relative to centre”. As you can see rotate and scale commands have origin - * coordinates as optional parameters, the default is the centre point of the element. - * Matrix accepts six parameters. - > Usage - | var el = paper.rect(10, 20, 300, 200); - | // translate 100, 100, rotate 45°, translate -100, 0 - | el.transform("t100,100r45t-100,0"); - | // if you want you can append or prepend transformations - | el.transform("...t50,50"); - | el.transform("s2..."); - | // or even wrap - | el.transform("t50,50...t-50-50"); - | // to reset transformation call method with empty string - | el.transform(""); - | // to get current value call it without parameters - | console.log(el.transform()); - > Parameters - - tstr (string) #optional transformation string - * If tstr isn’t specified - = (string) current transformation string - * else - = (object) @Element - \*/ - elproto.transform = function (tstr) { - var _ = this._; - if (tstr == null) { - return _.transform; - } - R._extractTransform(this, tstr); - - this.clip && $(this.clip, {transform: this.matrix.invert()}); - this.pattern && updatePosition(this); - this.node && $(this.node, {transform: this.matrix}); - - if (_.sx != 1 || _.sy != 1) { - var sw = this.attrs[has]("stroke-width") ? this.attrs["stroke-width"] : 1; - this.attr({"stroke-width": sw}); - } - - return this; - }; - /*\ - * Element.hide - [ method ] - ** - * Makes element invisible. See @Element.show. - = (object) @Element - \*/ - elproto.hide = function () { - if(!this.removed) this.node.style.display = "none"; - return this; - }; - /*\ - * Element.show - [ method ] - ** - * Makes element visible. See @Element.hide. - = (object) @Element - \*/ - elproto.show = function () { - if(!this.removed) this.node.style.display = ""; - return this; - }; - /*\ - * Element.remove - [ method ] - ** - * Removes element from the paper. - \*/ - elproto.remove = function () { - var node = getRealNode(this.node); - if (this.removed || !node.parentNode) { - return; - } - var paper = this.paper; - paper.__set__ && paper.__set__.exclude(this); - eve.unbind("raphael.*.*." + this.id); - if (this.gradient) { - paper.defs.removeChild(this.gradient); - } - R._tear(this, paper); - - node.parentNode.removeChild(node); - - // Remove custom data for element - this.removeData(); - - for (var i in this) { - this[i] = typeof this[i] == "function" ? R._removedFactory(i) : null; - } - this.removed = true; - }; - elproto._getBBox = function () { - if (this.node.style.display == "none") { - this.show(); - var hide = true; - } - var canvasHidden = false, - containerStyle; - if (this.paper.canvas.parentElement) { - containerStyle = this.paper.canvas.parentElement.style; - } //IE10+ can't find parentElement - else if (this.paper.canvas.parentNode) { - containerStyle = this.paper.canvas.parentNode.style; - } - - if(containerStyle && containerStyle.display == "none") { - canvasHidden = true; - containerStyle.display = ""; - } - var bbox = {}; - try { - bbox = this.node.getBBox(); - } catch(e) { - // Firefox 3.0.x, 25.0.1 (probably more versions affected) play badly here - possible fix - bbox = { - x: this.node.clientLeft, - y: this.node.clientTop, - width: this.node.clientWidth, - height: this.node.clientHeight - } - } finally { - bbox = bbox || {}; - if(canvasHidden){ - containerStyle.display = "none"; - } - } - hide && this.hide(); - return bbox; - }; - /*\ - * Element.attr - [ method ] - ** - * Sets the attributes of the element. - > Parameters - - attrName (string) attribute’s name - - value (string) value - * or - - params (object) object of name/value pairs - * or - - attrName (string) attribute’s name - * or - - attrNames (array) in this case method returns array of current values for given attribute names - = (object) @Element if attrsName & value or params are passed in. - = (...) value of the attribute if only attrsName is passed in. - = (array) array of values of the attribute if attrsNames is passed in. - = (object) object of attributes if nothing is passed in. - > Possible parameters - # <p>Please refer to the <a href="http://www.w3.org/TR/SVG/" title="The W3C Recommendation for the SVG language describes these properties in detail.">SVG specification</a> for an explanation of these parameters.</p> - o arrow-end (string) arrowhead on the end of the path. The format for string is `<type>[-<width>[-<length>]]`. Possible types: `classic`, `block`, `open`, `oval`, `diamond`, `none`, width: `wide`, `narrow`, `medium`, length: `long`, `short`, `midium`. - o clip-rect (string) comma or space separated values: x, y, width and height - o cursor (string) CSS type of the cursor - o cx (number) the x-axis coordinate of the center of the circle, or ellipse - o cy (number) the y-axis coordinate of the center of the circle, or ellipse - o fill (string) colour, gradient or image - o fill-opacity (number) - o font (string) - o font-family (string) - o font-size (number) font size in pixels - o font-weight (string) - o height (number) - o href (string) URL, if specified element behaves as hyperlink - o opacity (number) - o path (string) SVG path string format - o r (number) radius of the circle, ellipse or rounded corner on the rect - o rx (number) horisontal radius of the ellipse - o ry (number) vertical radius of the ellipse - o src (string) image URL, only works for @Element.image element - o stroke (string) stroke colour - o stroke-dasharray (string) [“”, “none”, “`-`”, “`.`”, “`-.`”, “`-..`”, “`. `”, “`- `”, “`--`”, “`- .`”, “`--.`”, “`--..`”] - o stroke-linecap (string) [“`butt`”, “`square`”, “`round`”] - o stroke-linejoin (string) [“`bevel`”, “`round`”, “`miter`”] - o stroke-miterlimit (number) - o stroke-opacity (number) - o stroke-width (number) stroke width in pixels, default is '1' - o target (string) used with href - o text (string) contents of the text element. Use `\n` for multiline text - o text-anchor (string) [“`start`”, “`middle`”, “`end`”], default is “`middle`” - o title (string) will create tooltip with a given text - o transform (string) see @Element.transform - o width (number) - o x (number) - o y (number) - > Gradients - * Linear gradient format: “`‹angle›-‹colour›[-‹colour›[:‹offset›]]*-‹colour›`”, example: “`90-#fff-#000`” – 90° - * gradient from white to black or “`0-#fff-#f00:20-#000`” – 0° gradient from white via red (at 20%) to black. - * - * radial gradient: “`r[(‹fx›, ‹fy›)]‹colour›[-‹colour›[:‹offset›]]*-‹colour›`”, example: “`r#fff-#000`” – - * gradient from white to black or “`r(0.25, 0.75)#fff-#000`” – gradient from white to black with focus point - * at 0.25, 0.75. Focus point coordinates are in 0..1 range. Radial gradients can only be applied to circles and ellipses. - > Path String - # <p>Please refer to <a href="http://www.w3.org/TR/SVG/paths.html#PathData" title="Details of a path’s data attribute’s format are described in the SVG specification.">SVG documentation regarding path string</a>. Raphaël fully supports it.</p> - > Colour Parsing - # <ul> - # <li>Colour name (“<code>red</code>”, “<code>green</code>”, “<code>cornflowerblue</code>”, etc)</li> - # <li>#••• — shortened HTML colour: (“<code>#000</code>”, “<code>#fc0</code>”, etc)</li> - # <li>#•••••• — full length HTML colour: (“<code>#000000</code>”, “<code>#bd2300</code>”)</li> - # <li>rgb(•••, •••, •••) — red, green and blue channels’ values: (“<code>rgb(200,&nbsp;100,&nbsp;0)</code>”)</li> - # <li>rgb(•••%, •••%, •••%) — same as above, but in %: (“<code>rgb(100%,&nbsp;175%,&nbsp;0%)</code>”)</li> - # <li>rgba(•••, •••, •••, •••) — red, green and blue channels’ values: (“<code>rgba(200,&nbsp;100,&nbsp;0, .5)</code>”)</li> - # <li>rgba(•••%, •••%, •••%, •••%) — same as above, but in %: (“<code>rgba(100%,&nbsp;175%,&nbsp;0%, 50%)</code>”)</li> - # <li>hsb(•••, •••, •••) — hue, saturation and brightness values: (“<code>hsb(0.5,&nbsp;0.25,&nbsp;1)</code>”)</li> - # <li>hsb(•••%, •••%, •••%) — same as above, but in %</li> - # <li>hsba(•••, •••, •••, •••) — same as above, but with opacity</li> - # <li>hsl(•••, •••, •••) — almost the same as hsb, see <a href="http://en.wikipedia.org/wiki/HSL_and_HSV" title="HSL and HSV - Wikipedia, the free encyclopedia">Wikipedia page</a></li> - # <li>hsl(•••%, •••%, •••%) — same as above, but in %</li> - # <li>hsla(•••, •••, •••, •••) — same as above, but with opacity</li> - # <li>Optionally for hsb and hsl you could specify hue as a degree: “<code>hsl(240deg,&nbsp;1,&nbsp;.5)</code>” or, if you want to go fancy, “<code>hsl(240°,&nbsp;1,&nbsp;.5)</code>”</li> - # </ul> - \*/ - elproto.attr = function (name, value) { - if (this.removed) { - return this; - } - if (name == null) { - var res = {}; - for (var a in this.attrs) if (this.attrs[has](a)) { - res[a] = this.attrs[a]; - } - res.gradient && res.fill == "none" && (res.fill = res.gradient) && delete res.gradient; - res.transform = this._.transform; - return res; - } - if (value == null && R.is(name, "string")) { - if (name == "fill" && this.attrs.fill == "none" && this.attrs.gradient) { - return this.attrs.gradient; - } - if (name == "transform") { - return this._.transform; - } - var names = name.split(separator), - out = {}; - for (var i = 0, ii = names.length; i < ii; i++) { - name = names[i]; - if (name in this.attrs) { - out[name] = this.attrs[name]; - } else if (R.is(this.paper.customAttributes[name], "function")) { - out[name] = this.paper.customAttributes[name].def; - } else { - out[name] = R._availableAttrs[name]; - } - } - return ii - 1 ? out : out[names[0]]; - } - if (value == null && R.is(name, "array")) { - out = {}; - for (i = 0, ii = name.length; i < ii; i++) { - out[name[i]] = this.attr(name[i]); - } - return out; - } - if (value != null) { - var params = {}; - params[name] = value; - } else if (name != null && R.is(name, "object")) { - params = name; - } - for (var key in params) { - eve("raphael.attr." + key + "." + this.id, this, params[key]); - } - for (key in this.paper.customAttributes) if (this.paper.customAttributes[has](key) && params[has](key) && R.is(this.paper.customAttributes[key], "function")) { - var par = this.paper.customAttributes[key].apply(this, [].concat(params[key])); - this.attrs[key] = params[key]; - for (var subkey in par) if (par[has](subkey)) { - params[subkey] = par[subkey]; - } - } - setFillAndStroke(this, params); - return this; - }; - /*\ - * Element.toFront - [ method ] - ** - * Moves the element so it is the closest to the viewer’s eyes, on top of other elements. - = (object) @Element - \*/ - elproto.toFront = function () { - if (this.removed) { - return this; - } - var node = getRealNode(this.node); - node.parentNode.appendChild(node); - var svg = this.paper; - svg.top != this && R._tofront(this, svg); - return this; - }; - /*\ - * Element.toBack - [ method ] - ** - * Moves the element so it is the furthest from the viewer’s eyes, behind other elements. - = (object) @Element - \*/ - elproto.toBack = function () { - if (this.removed) { - return this; - } - var node = getRealNode(this.node); - var parentNode = node.parentNode; - parentNode.insertBefore(node, parentNode.firstChild); - R._toback(this, this.paper); - var svg = this.paper; - return this; - }; - /*\ - * Element.insertAfter - [ method ] - ** - * Inserts current object after the given one. - = (object) @Element - \*/ - elproto.insertAfter = function (element) { - if (this.removed || !element) { - return this; - } - - var node = getRealNode(this.node); - var afterNode = getRealNode(element.node || element[element.length - 1].node); - if (afterNode.nextSibling) { - afterNode.parentNode.insertBefore(node, afterNode.nextSibling); - } else { - afterNode.parentNode.appendChild(node); - } - R._insertafter(this, element, this.paper); - return this; - }; - /*\ - * Element.insertBefore - [ method ] - ** - * Inserts current object before the given one. - = (object) @Element - \*/ - elproto.insertBefore = function (element) { - if (this.removed || !element) { - return this; - } - - var node = getRealNode(this.node); - var beforeNode = getRealNode(element.node || element[0].node); - beforeNode.parentNode.insertBefore(node, beforeNode); - R._insertbefore(this, element, this.paper); - return this; - }; - elproto.blur = function (size) { - // Experimental. No Safari support. Use it on your own risk. - var t = this; - if (+size !== 0) { - var fltr = $("filter"), - blur = $("feGaussianBlur"); - t.attrs.blur = size; - fltr.id = R.createUUID(); - $(blur, {stdDeviation: +size || 1.5}); - fltr.appendChild(blur); - t.paper.defs.appendChild(fltr); - t._blur = fltr; - $(t.node, {filter: "url(#" + fltr.id + ")"}); - } else { - if (t._blur) { - t._blur.parentNode.removeChild(t._blur); - delete t._blur; - delete t.attrs.blur; - } - t.node.removeAttribute("filter"); - } - return t; - }; - R._engine.circle = function (svg, x, y, r) { - var el = $("circle"); - svg.canvas && svg.canvas.appendChild(el); - var res = new Element(el, svg); - res.attrs = {cx: x, cy: y, r: r, fill: "none", stroke: "#000"}; - res.type = "circle"; - $(el, res.attrs); - return res; - }; - R._engine.rect = function (svg, x, y, w, h, r) { - var el = $("rect"); - svg.canvas && svg.canvas.appendChild(el); - var res = new Element(el, svg); - res.attrs = {x: x, y: y, width: w, height: h, rx: r || 0, ry: r || 0, fill: "none", stroke: "#000"}; - res.type = "rect"; - $(el, res.attrs); - return res; - }; - R._engine.ellipse = function (svg, x, y, rx, ry) { - var el = $("ellipse"); - svg.canvas && svg.canvas.appendChild(el); - var res = new Element(el, svg); - res.attrs = {cx: x, cy: y, rx: rx, ry: ry, fill: "none", stroke: "#000"}; - res.type = "ellipse"; - $(el, res.attrs); - return res; - }; - R._engine.image = function (svg, src, x, y, w, h) { - var el = $("image"); - $(el, {x: x, y: y, width: w, height: h, preserveAspectRatio: "none"}); - el.setAttributeNS(xlink, "href", src); - svg.canvas && svg.canvas.appendChild(el); - var res = new Element(el, svg); - res.attrs = {x: x, y: y, width: w, height: h, src: src}; - res.type = "image"; - return res; - }; - R._engine.text = function (svg, x, y, text) { - var el = $("text"); - svg.canvas && svg.canvas.appendChild(el); - var res = new Element(el, svg); - res.attrs = { - x: x, - y: y, - "text-anchor": "middle", - text: text, - "font-family": R._availableAttrs["font-family"], - "font-size": R._availableAttrs["font-size"], - stroke: "none", - fill: "#000" - }; - res.type = "text"; - setFillAndStroke(res, res.attrs); - return res; - }; - R._engine.setSize = function (width, height) { - this.width = width || this.width; - this.height = height || this.height; - this.canvas.setAttribute("width", this.width); - this.canvas.setAttribute("height", this.height); - if (this._viewBox) { - this.setViewBox.apply(this, this._viewBox); - } - return this; - }; - R._engine.create = function () { - var con = R._getContainer.apply(0, arguments), - container = con && con.container, - x = con.x, - y = con.y, - width = con.width, - height = con.height; - if (!container) { - throw new Error("SVG container not found."); - } - var cnvs = $("svg"), - css = "overflow:hidden;", - isFloating; - x = x || 0; - y = y || 0; - width = width || 512; - height = height || 342; - $(cnvs, { - height: height, - version: 1.1, - width: width, - xmlns: "http://www.w3.org/2000/svg", - "xmlns:xlink": "http://www.w3.org/1999/xlink" - }); - if (container == 1) { - cnvs.style.cssText = css + "position:absolute;left:" + x + "px;top:" + y + "px"; - R._g.doc.body.appendChild(cnvs); - isFloating = 1; - } else { - cnvs.style.cssText = css + "position:relative"; - if (container.firstChild) { - container.insertBefore(cnvs, container.firstChild); - } else { - container.appendChild(cnvs); - } - } - container = new R._Paper; - container.width = width; - container.height = height; - container.canvas = cnvs; - container.clear(); - container._left = container._top = 0; - isFloating && (container.renderfix = function () {}); - container.renderfix(); - return container; - }; - R._engine.setViewBox = function (x, y, w, h, fit) { - eve("raphael.setViewBox", this, this._viewBox, [x, y, w, h, fit]); - var paperSize = this.getSize(), - size = mmax(w / paperSize.width, h / paperSize.height), - top = this.top, - aspectRatio = fit ? "xMidYMid meet" : "xMinYMin", - vb, - sw; - if (x == null) { - if (this._vbSize) { - size = 1; - } - delete this._vbSize; - vb = "0 0 " + this.width + S + this.height; - } else { - this._vbSize = size; - vb = x + S + y + S + w + S + h; - } - $(this.canvas, { - viewBox: vb, - preserveAspectRatio: aspectRatio - }); - while (size && top) { - sw = "stroke-width" in top.attrs ? top.attrs["stroke-width"] : 1; - top.attr({"stroke-width": sw}); - top._.dirty = 1; - top._.dirtyT = 1; - top = top.prev; - } - this._viewBox = [x, y, w, h, !!fit]; - return this; - }; - /*\ - * Paper.renderfix - [ method ] - ** - * Fixes the issue of Firefox and IE9 regarding subpixel rendering. If paper is dependent - * on other elements after reflow it could shift half pixel which cause for lines to lost their crispness. - * This method fixes the issue. - ** - Special thanks to Mariusz Nowak (http://www.medikoo.com/) for this method. - \*/ - R.prototype.renderfix = function () { - var cnvs = this.canvas, - s = cnvs.style, - pos; - try { - pos = cnvs.getScreenCTM() || cnvs.createSVGMatrix(); - } catch (e) { - pos = cnvs.createSVGMatrix(); - } - var left = -pos.e % 1, - top = -pos.f % 1; - if (left || top) { - if (left) { - this._left = (this._left + left) % 1; - s.left = this._left + "px"; - } - if (top) { - this._top = (this._top + top) % 1; - s.top = this._top + "px"; - } - } - }; - /*\ - * Paper.clear - [ method ] - ** - * Clears the paper, i.e. removes all the elements. - \*/ - R.prototype.clear = function () { - R.eve("raphael.clear", this); - var c = this.canvas; - while (c.firstChild) { - c.removeChild(c.firstChild); - } - this.bottom = this.top = null; - (this.desc = $("desc")).appendChild(R._g.doc.createTextNode("Created with Rapha\xebl " + R.version)); - c.appendChild(this.desc); - c.appendChild(this.defs = $("defs")); - }; - /*\ - * Paper.remove - [ method ] - ** - * Removes the paper from the DOM. - \*/ - R.prototype.remove = function () { - eve("raphael.remove", this); - this.canvas.parentNode && this.canvas.parentNode.removeChild(this.canvas); - for (var i in this) { - this[i] = typeof this[i] == "function" ? R._removedFactory(i) : null; - } - }; - var setproto = R.st; - for (var method in elproto) if (elproto[has](method) && !setproto[has](method)) { - setproto[method] = (function (methodname) { - return function () { - var arg = arguments; - return this.forEach(function (el) { - el[methodname].apply(el, arg); - }); - }; - })(method); - } - }.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)); - - -/***/ }, -/* 4 */ -/***/ function(module, exports, __webpack_require__) { - - var __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;!(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(1)], __WEBPACK_AMD_DEFINE_RESULT__ = function(R) { - if (R && !R.vml) { - return; - } - - var has = "hasOwnProperty", - Str = String, - toFloat = parseFloat, - math = Math, - round = math.round, - mmax = math.max, - mmin = math.min, - abs = math.abs, - fillString = "fill", - separator = /[, ]+/, - eve = R.eve, - ms = " progid:DXImageTransform.Microsoft", - S = " ", - E = "", - map = {M: "m", L: "l", C: "c", Z: "x", m: "t", l: "r", c: "v", z: "x"}, - bites = /([clmz]),?([^clmz]*)/gi, - blurregexp = / progid:\S+Blur\([^\)]+\)/g, - val = /-?[^,\s-]+/g, - cssDot = "position:absolute;left:0;top:0;width:1px;height:1px;behavior:url(#default#VML)", - zoom = 21600, - pathTypes = {path: 1, rect: 1, image: 1}, - ovalTypes = {circle: 1, ellipse: 1}, - path2vml = function (path) { - var total = /[ahqstv]/ig, - command = R._pathToAbsolute; - Str(path).match(total) && (command = R._path2curve); - total = /[clmz]/g; - if (command == R._pathToAbsolute && !Str(path).match(total)) { - var res = Str(path).replace(bites, function (all, command, args) { - var vals = [], - isMove = command.toLowerCase() == "m", - res = map[command]; - args.replace(val, function (value) { - if (isMove && vals.length == 2) { - res += vals + map[command == "m" ? "l" : "L"]; - vals = []; - } - vals.push(round(value * zoom)); - }); - return res + vals; - }); - return res; - } - var pa = command(path), p, r; - res = []; - for (var i = 0, ii = pa.length; i < ii; i++) { - p = pa[i]; - r = pa[i][0].toLowerCase(); - r == "z" && (r = "x"); - for (var j = 1, jj = p.length; j < jj; j++) { - r += round(p[j] * zoom) + (j != jj - 1 ? "," : E); - } - res.push(r); - } - return res.join(S); - }, - compensation = function (deg, dx, dy) { - var m = R.matrix(); - m.rotate(-deg, .5, .5); - return { - dx: m.x(dx, dy), - dy: m.y(dx, dy) - }; - }, - setCoords = function (p, sx, sy, dx, dy, deg) { - var _ = p._, - m = p.matrix, - fillpos = _.fillpos, - o = p.node, - s = o.style, - y = 1, - flip = "", - dxdy, - kx = zoom / sx, - ky = zoom / sy; - s.visibility = "hidden"; - if (!sx || !sy) { - return; - } - o.coordsize = abs(kx) + S + abs(ky); - s.rotation = deg * (sx * sy < 0 ? -1 : 1); - if (deg) { - var c = compensation(deg, dx, dy); - dx = c.dx; - dy = c.dy; - } - sx < 0 && (flip += "x"); - sy < 0 && (flip += " y") && (y = -1); - s.flip = flip; - o.coordorigin = (dx * -kx) + S + (dy * -ky); - if (fillpos || _.fillsize) { - var fill = o.getElementsByTagName(fillString); - fill = fill && fill[0]; - o.removeChild(fill); - if (fillpos) { - c = compensation(deg, m.x(fillpos[0], fillpos[1]), m.y(fillpos[0], fillpos[1])); - fill.position = c.dx * y + S + c.dy * y; - } - if (_.fillsize) { - fill.size = _.fillsize[0] * abs(sx) + S + _.fillsize[1] * abs(sy); - } - o.appendChild(fill); - } - s.visibility = "visible"; - }; - R.toString = function () { - return "Your browser doesn\u2019t support SVG. Falling down to VML.\nYou are running Rapha\xebl " + this.version; - }; - var addArrow = function (o, value, isEnd) { - var values = Str(value).toLowerCase().split("-"), - se = isEnd ? "end" : "start", - i = values.length, - type = "classic", - w = "medium", - h = "medium"; - while (i--) { - switch (values[i]) { - case "block": - case "classic": - case "oval": - case "diamond": - case "open": - case "none": - type = values[i]; - break; - case "wide": - case "narrow": h = values[i]; break; - case "long": - case "short": w = values[i]; break; - } - } - var stroke = o.node.getElementsByTagName("stroke")[0]; - stroke[se + "arrow"] = type; - stroke[se + "arrowlength"] = w; - stroke[se + "arrowwidth"] = h; - }, - setFillAndStroke = function (o, params) { - // o.paper.canvas.style.display = "none"; - o.attrs = o.attrs || {}; - var node = o.node, - a = o.attrs, - s = node.style, - xy, - newpath = pathTypes[o.type] && (params.x != a.x || params.y != a.y || params.width != a.width || params.height != a.height || params.cx != a.cx || params.cy != a.cy || params.rx != a.rx || params.ry != a.ry || params.r != a.r), - isOval = ovalTypes[o.type] && (a.cx != params.cx || a.cy != params.cy || a.r != params.r || a.rx != params.rx || a.ry != params.ry), - res = o; - - - for (var par in params) if (params[has](par)) { - a[par] = params[par]; - } - if (newpath) { - a.path = R._getPath[o.type](o); - o._.dirty = 1; - } - params.href && (node.href = params.href); - params.title && (node.title = params.title); - params.target && (node.target = params.target); - params.cursor && (s.cursor = params.cursor); - "blur" in params && o.blur(params.blur); - if (params.path && o.type == "path" || newpath) { - node.path = path2vml(~Str(a.path).toLowerCase().indexOf("r") ? R._pathToAbsolute(a.path) : a.path); - o._.dirty = 1; - if (o.type == "image") { - o._.fillpos = [a.x, a.y]; - o._.fillsize = [a.width, a.height]; - setCoords(o, 1, 1, 0, 0, 0); - } - } - "transform" in params && o.transform(params.transform); - if (isOval) { - var cx = +a.cx, - cy = +a.cy, - rx = +a.rx || +a.r || 0, - ry = +a.ry || +a.r || 0; - node.path = R.format("ar{0},{1},{2},{3},{4},{1},{4},{1}x", round((cx - rx) * zoom), round((cy - ry) * zoom), round((cx + rx) * zoom), round((cy + ry) * zoom), round(cx * zoom)); - o._.dirty = 1; - } - if ("clip-rect" in params) { - var rect = Str(params["clip-rect"]).split(separator); - if (rect.length == 4) { - rect[2] = +rect[2] + (+rect[0]); - rect[3] = +rect[3] + (+rect[1]); - var div = node.clipRect || R._g.doc.createElement("div"), - dstyle = div.style; - dstyle.clip = R.format("rect({1}px {2}px {3}px {0}px)", rect); - if (!node.clipRect) { - dstyle.position = "absolute"; - dstyle.top = 0; - dstyle.left = 0; - dstyle.width = o.paper.width + "px"; - dstyle.height = o.paper.height + "px"; - node.parentNode.insertBefore(div, node); - div.appendChild(node); - node.clipRect = div; - } - } - if (!params["clip-rect"]) { - node.clipRect && (node.clipRect.style.clip = "auto"); - } - } - if (o.textpath) { - var textpathStyle = o.textpath.style; - params.font && (textpathStyle.font = params.font); - params["font-family"] && (textpathStyle.fontFamily = '"' + params["font-family"].split(",")[0].replace(/^['"]+|['"]+$/g, E) + '"'); - params["font-size"] && (textpathStyle.fontSize = params["font-size"]); - params["font-weight"] && (textpathStyle.fontWeight = params["font-weight"]); - params["font-style"] && (textpathStyle.fontStyle = params["font-style"]); - } - if ("arrow-start" in params) { - addArrow(res, params["arrow-start"]); - } - if ("arrow-end" in params) { - addArrow(res, params["arrow-end"], 1); - } - if (params.opacity != null || - params.fill != null || - params.src != null || - params.stroke != null || - params["stroke-width"] != null || - params["stroke-opacity"] != null || - params["fill-opacity"] != null || - params["stroke-dasharray"] != null || - params["stroke-miterlimit"] != null || - params["stroke-linejoin"] != null || - params["stroke-linecap"] != null) { - var fill = node.getElementsByTagName(fillString), - newfill = false; - fill = fill && fill[0]; - !fill && (newfill = fill = createNode(fillString)); - if (o.type == "image" && params.src) { - fill.src = params.src; - } - params.fill && (fill.on = true); - if (fill.on == null || params.fill == "none" || params.fill === null) { - fill.on = false; - } - if (fill.on && params.fill) { - var isURL = Str(params.fill).match(R._ISURL); - if (isURL) { - fill.parentNode == node && node.removeChild(fill); - fill.rotate = true; - fill.src = isURL[1]; - fill.type = "tile"; - var bbox = o.getBBox(1); - fill.position = bbox.x + S + bbox.y; - o._.fillpos = [bbox.x, bbox.y]; - - R._preload(isURL[1], function () { - o._.fillsize = [this.offsetWidth, this.offsetHeight]; - }); - } else { - fill.color = R.getRGB(params.fill).hex; - fill.src = E; - fill.type = "solid"; - if (R.getRGB(params.fill).error && (res.type in {circle: 1, ellipse: 1} || Str(params.fill).charAt() != "r") && addGradientFill(res, params.fill, fill)) { - a.fill = "none"; - a.gradient = params.fill; - fill.rotate = false; - } - } - } - if ("fill-opacity" in params || "opacity" in params) { - var opacity = ((+a["fill-opacity"] + 1 || 2) - 1) * ((+a.opacity + 1 || 2) - 1) * ((+R.getRGB(params.fill).o + 1 || 2) - 1); - opacity = mmin(mmax(opacity, 0), 1); - fill.opacity = opacity; - if (fill.src) { - fill.color = "none"; - } - } - node.appendChild(fill); - var stroke = (node.getElementsByTagName("stroke") && node.getElementsByTagName("stroke")[0]), - newstroke = false; - !stroke && (newstroke = stroke = createNode("stroke")); - if ((params.stroke && params.stroke != "none") || - params["stroke-width"] || - params["stroke-opacity"] != null || - params["stroke-dasharray"] || - params["stroke-miterlimit"] || - params["stroke-linejoin"] || - params["stroke-linecap"]) { - stroke.on = true; - } - (params.stroke == "none" || params.stroke === null || stroke.on == null || params.stroke == 0 || params["stroke-width"] == 0) && (stroke.on = false); - var strokeColor = R.getRGB(params.stroke); - stroke.on && params.stroke && (stroke.color = strokeColor.hex); - opacity = ((+a["stroke-opacity"] + 1 || 2) - 1) * ((+a.opacity + 1 || 2) - 1) * ((+strokeColor.o + 1 || 2) - 1); - var width = (toFloat(params["stroke-width"]) || 1) * .75; - opacity = mmin(mmax(opacity, 0), 1); - params["stroke-width"] == null && (width = a["stroke-width"]); - params["stroke-width"] && (stroke.weight = width); - width && width < 1 && (opacity *= width) && (stroke.weight = 1); - stroke.opacity = opacity; - - params["stroke-linejoin"] && (stroke.joinstyle = params["stroke-linejoin"] || "miter"); - stroke.miterlimit = params["stroke-miterlimit"] || 8; - params["stroke-linecap"] && (stroke.endcap = params["stroke-linecap"] == "butt" ? "flat" : params["stroke-linecap"] == "square" ? "square" : "round"); - if ("stroke-dasharray" in params) { - var dasharray = { - "-": "shortdash", - ".": "shortdot", - "-.": "shortdashdot", - "-..": "shortdashdotdot", - ". ": "dot", - "- ": "dash", - "--": "longdash", - "- .": "dashdot", - "--.": "longdashdot", - "--..": "longdashdotdot" - }; - stroke.dashstyle = dasharray[has](params["stroke-dasharray"]) ? dasharray[params["stroke-dasharray"]] : E; - } - newstroke && node.appendChild(stroke); - } - if (res.type == "text") { - res.paper.canvas.style.display = E; - var span = res.paper.span, - m = 100, - fontSize = a.font && a.font.match(/\d+(?:\.\d*)?(?=px)/); - s = span.style; - a.font && (s.font = a.font); - a["font-family"] && (s.fontFamily = a["font-family"]); - a["font-weight"] && (s.fontWeight = a["font-weight"]); - a["font-style"] && (s.fontStyle = a["font-style"]); - fontSize = toFloat(a["font-size"] || fontSize && fontSize[0]) || 10; - s.fontSize = fontSize * m + "px"; - res.textpath.string && (span.innerHTML = Str(res.textpath.string).replace(/</g, "&#60;").replace(/&/g, "&#38;").replace(/\n/g, "<br>")); - var brect = span.getBoundingClientRect(); - res.W = a.w = (brect.right - brect.left) / m; - res.H = a.h = (brect.bottom - brect.top) / m; - // res.paper.canvas.style.display = "none"; - res.X = a.x; - res.Y = a.y + res.H / 2; - - ("x" in params || "y" in params) && (res.path.v = R.format("m{0},{1}l{2},{1}", round(a.x * zoom), round(a.y * zoom), round(a.x * zoom) + 1)); - var dirtyattrs = ["x", "y", "text", "font", "font-family", "font-weight", "font-style", "font-size"]; - for (var d = 0, dd = dirtyattrs.length; d < dd; d++) if (dirtyattrs[d] in params) { - res._.dirty = 1; - break; - } - - // text-anchor emulation - switch (a["text-anchor"]) { - case "start": - res.textpath.style["v-text-align"] = "left"; - res.bbx = res.W / 2; - break; - case "end": - res.textpath.style["v-text-align"] = "right"; - res.bbx = -res.W / 2; - break; - default: - res.textpath.style["v-text-align"] = "center"; - res.bbx = 0; - break; - } - res.textpath.style["v-text-kern"] = true; - } - // res.paper.canvas.style.display = E; - }, - addGradientFill = function (o, gradient, fill) { - o.attrs = o.attrs || {}; - var attrs = o.attrs, - pow = Math.pow, - opacity, - oindex, - type = "linear", - fxfy = ".5 .5"; - o.attrs.gradient = gradient; - gradient = Str(gradient).replace(R._radial_gradient, function (all, fx, fy) { - type = "radial"; - if (fx && fy) { - fx = toFloat(fx); - fy = toFloat(fy); - pow(fx - .5, 2) + pow(fy - .5, 2) > .25 && (fy = math.sqrt(.25 - pow(fx - .5, 2)) * ((fy > .5) * 2 - 1) + .5); - fxfy = fx + S + fy; - } - return E; - }); - gradient = gradient.split(/\s*\-\s*/); - if (type == "linear") { - var angle = gradient.shift(); - angle = -toFloat(angle); - if (isNaN(angle)) { - return null; - } - } - var dots = R._parseDots(gradient); - if (!dots) { - return null; - } - o = o.shape || o.node; - if (dots.length) { - o.removeChild(fill); - fill.on = true; - fill.method = "none"; - fill.color = dots[0].color; - fill.color2 = dots[dots.length - 1].color; - var clrs = []; - for (var i = 0, ii = dots.length; i < ii; i++) { - dots[i].offset && clrs.push(dots[i].offset + S + dots[i].color); - } - fill.colors = clrs.length ? clrs.join() : "0% " + fill.color; - if (type == "radial") { - fill.type = "gradientTitle"; - fill.focus = "100%"; - fill.focussize = "0 0"; - fill.focusposition = fxfy; - fill.angle = 0; - } else { - // fill.rotate= true; - fill.type = "gradient"; - fill.angle = (270 - angle) % 360; - } - o.appendChild(fill); - } - return 1; - }, - Element = function (node, vml) { - this[0] = this.node = node; - node.raphael = true; - this.id = R._oid++; - node.raphaelid = this.id; - this.X = 0; - this.Y = 0; - this.attrs = {}; - this.paper = vml; - this.matrix = R.matrix(); - this._ = { - transform: [], - sx: 1, - sy: 1, - dx: 0, - dy: 0, - deg: 0, - dirty: 1, - dirtyT: 1 - }; - !vml.bottom && (vml.bottom = this); - this.prev = vml.top; - vml.top && (vml.top.next = this); - vml.top = this; - this.next = null; - }; - var elproto = R.el; - - Element.prototype = elproto; - elproto.constructor = Element; - elproto.transform = function (tstr) { - if (tstr == null) { - return this._.transform; - } - var vbs = this.paper._viewBoxShift, - vbt = vbs ? "s" + [vbs.scale, vbs.scale] + "-1-1t" + [vbs.dx, vbs.dy] : E, - oldt; - if (vbs) { - oldt = tstr = Str(tstr).replace(/\.{3}|\u2026/g, this._.transform || E); - } - R._extractTransform(this, vbt + tstr); - var matrix = this.matrix.clone(), - skew = this.skew, - o = this.node, - split, - isGrad = ~Str(this.attrs.fill).indexOf("-"), - isPatt = !Str(this.attrs.fill).indexOf("url("); - matrix.translate(1, 1); - if (isPatt || isGrad || this.type == "image") { - skew.matrix = "1 0 0 1"; - skew.offset = "0 0"; - split = matrix.split(); - if ((isGrad && split.noRotation) || !split.isSimple) { - o.style.filter = matrix.toFilter(); - var bb = this.getBBox(), - bbt = this.getBBox(1), - dx = bb.x - bbt.x, - dy = bb.y - bbt.y; - o.coordorigin = (dx * -zoom) + S + (dy * -zoom); - setCoords(this, 1, 1, dx, dy, 0); - } else { - o.style.filter = E; - setCoords(this, split.scalex, split.scaley, split.dx, split.dy, split.rotate); - } - } else { - o.style.filter = E; - skew.matrix = Str(matrix); - skew.offset = matrix.offset(); - } - if (oldt !== null) { // empty string value is true as well - this._.transform = oldt; - R._extractTransform(this, oldt); - } - return this; - }; - elproto.rotate = function (deg, cx, cy) { - if (this.removed) { - return this; - } - if (deg == null) { - return; - } - deg = Str(deg).split(separator); - if (deg.length - 1) { - cx = toFloat(deg[1]); - cy = toFloat(deg[2]); - } - deg = toFloat(deg[0]); - (cy == null) && (cx = cy); - if (cx == null || cy == null) { - var bbox = this.getBBox(1); - cx = bbox.x + bbox.width / 2; - cy = bbox.y + bbox.height / 2; - } - this._.dirtyT = 1; - this.transform(this._.transform.concat([["r", deg, cx, cy]])); - return this; - }; - elproto.translate = function (dx, dy) { - if (this.removed) { - return this; - } - dx = Str(dx).split(separator); - if (dx.length - 1) { - dy = toFloat(dx[1]); - } - dx = toFloat(dx[0]) || 0; - dy = +dy || 0; - if (this._.bbox) { - this._.bbox.x += dx; - this._.bbox.y += dy; - } - this.transform(this._.transform.concat([["t", dx, dy]])); - return this; - }; - elproto.scale = function (sx, sy, cx, cy) { - if (this.removed) { - return this; - } - sx = Str(sx).split(separator); - if (sx.length - 1) { - sy = toFloat(sx[1]); - cx = toFloat(sx[2]); - cy = toFloat(sx[3]); - isNaN(cx) && (cx = null); - isNaN(cy) && (cy = null); - } - sx = toFloat(sx[0]); - (sy == null) && (sy = sx); - (cy == null) && (cx = cy); - if (cx == null || cy == null) { - var bbox = this.getBBox(1); - } - cx = cx == null ? bbox.x + bbox.width / 2 : cx; - cy = cy == null ? bbox.y + bbox.height / 2 : cy; - - this.transform(this._.transform.concat([["s", sx, sy, cx, cy]])); - this._.dirtyT = 1; - return this; - }; - elproto.hide = function () { - !this.removed && (this.node.style.display = "none"); - return this; - }; - elproto.show = function () { - !this.removed && (this.node.style.display = E); - return this; - }; - // Needed to fix the vml setViewBox issues - elproto.auxGetBBox = R.el.getBBox; - elproto.getBBox = function(){ - var b = this.auxGetBBox(); - if (this.paper && this.paper._viewBoxShift) - { - var c = {}; - var z = 1/this.paper._viewBoxShift.scale; - c.x = b.x - this.paper._viewBoxShift.dx; - c.x *= z; - c.y = b.y - this.paper._viewBoxShift.dy; - c.y *= z; - c.width = b.width * z; - c.height = b.height * z; - c.x2 = c.x + c.width; - c.y2 = c.y + c.height; - return c; - } - return b; - }; - elproto._getBBox = function () { - if (this.removed) { - return {}; - } - return { - x: this.X + (this.bbx || 0) - this.W / 2, - y: this.Y - this.H, - width: this.W, - height: this.H - }; - }; - elproto.remove = function () { - if (this.removed || !this.node.parentNode) { - return; - } - this.paper.__set__ && this.paper.__set__.exclude(this); - R.eve.unbind("raphael.*.*." + this.id); - R._tear(this, this.paper); - this.node.parentNode.removeChild(this.node); - this.shape && this.shape.parentNode.removeChild(this.shape); - for (var i in this) { - this[i] = typeof this[i] == "function" ? R._removedFactory(i) : null; - } - this.removed = true; - }; - elproto.attr = function (name, value) { - if (this.removed) { - return this; - } - if (name == null) { - var res = {}; - for (var a in this.attrs) if (this.attrs[has](a)) { - res[a] = this.attrs[a]; - } - res.gradient && res.fill == "none" && (res.fill = res.gradient) && delete res.gradient; - res.transform = this._.transform; - return res; - } - if (value == null && R.is(name, "string")) { - if (name == fillString && this.attrs.fill == "none" && this.attrs.gradient) { - return this.attrs.gradient; - } - var names = name.split(separator), - out = {}; - for (var i = 0, ii = names.length; i < ii; i++) { - name = names[i]; - if (name in this.attrs) { - out[name] = this.attrs[name]; - } else if (R.is(this.paper.customAttributes[name], "function")) { - out[name] = this.paper.customAttributes[name].def; - } else { - out[name] = R._availableAttrs[name]; - } - } - return ii - 1 ? out : out[names[0]]; - } - if (this.attrs && value == null && R.is(name, "array")) { - out = {}; - for (i = 0, ii = name.length; i < ii; i++) { - out[name[i]] = this.attr(name[i]); - } - return out; - } - var params; - if (value != null) { - params = {}; - params[name] = value; - } - value == null && R.is(name, "object") && (params = name); - for (var key in params) { - eve("raphael.attr." + key + "." + this.id, this, params[key]); - } - if (params) { - for (key in this.paper.customAttributes) if (this.paper.customAttributes[has](key) && params[has](key) && R.is(this.paper.customAttributes[key], "function")) { - var par = this.paper.customAttributes[key].apply(this, [].concat(params[key])); - this.attrs[key] = params[key]; - for (var subkey in par) if (par[has](subkey)) { - params[subkey] = par[subkey]; - } - } - // this.paper.canvas.style.display = "none"; - if (params.text && this.type == "text") { - this.textpath.string = params.text; - } - setFillAndStroke(this, params); - // this.paper.canvas.style.display = E; - } - return this; - }; - elproto.toFront = function () { - !this.removed && this.node.parentNode.appendChild(this.node); - this.paper && this.paper.top != this && R._tofront(this, this.paper); - return this; - }; - elproto.toBack = function () { - if (this.removed) { - return this; - } - if (this.node.parentNode.firstChild != this.node) { - this.node.parentNode.insertBefore(this.node, this.node.parentNode.firstChild); - R._toback(this, this.paper); - } - return this; - }; - elproto.insertAfter = function (element) { - if (this.removed) { - return this; - } - if (element.constructor == R.st.constructor) { - element = element[element.length - 1]; - } - if (element.node.nextSibling) { - element.node.parentNode.insertBefore(this.node, element.node.nextSibling); - } else { - element.node.parentNode.appendChild(this.node); - } - R._insertafter(this, element, this.paper); - return this; - }; - elproto.insertBefore = function (element) { - if (this.removed) { - return this; - } - if (element.constructor == R.st.constructor) { - element = element[0]; - } - element.node.parentNode.insertBefore(this.node, element.node); - R._insertbefore(this, element, this.paper); - return this; - }; - elproto.blur = function (size) { - var s = this.node.runtimeStyle, - f = s.filter; - f = f.replace(blurregexp, E); - if (+size !== 0) { - this.attrs.blur = size; - s.filter = f + S + ms + ".Blur(pixelradius=" + (+size || 1.5) + ")"; - s.margin = R.format("-{0}px 0 0 -{0}px", round(+size || 1.5)); - } else { - s.filter = f; - s.margin = 0; - delete this.attrs.blur; - } - return this; - }; - - R._engine.path = function (pathString, vml) { - var el = createNode("shape"); - el.style.cssText = cssDot; - el.coordsize = zoom + S + zoom; - el.coordorigin = vml.coordorigin; - var p = new Element(el, vml), - attr = {fill: "none", stroke: "#000"}; - pathString && (attr.path = pathString); - p.type = "path"; - p.path = []; - p.Path = E; - setFillAndStroke(p, attr); - vml.canvas && vml.canvas.appendChild(el); - var skew = createNode("skew"); - skew.on = true; - el.appendChild(skew); - p.skew = skew; - p.transform(E); - return p; - }; - R._engine.rect = function (vml, x, y, w, h, r) { - var path = R._rectPath(x, y, w, h, r), - res = vml.path(path), - a = res.attrs; - res.X = a.x = x; - res.Y = a.y = y; - res.W = a.width = w; - res.H = a.height = h; - a.r = r; - a.path = path; - res.type = "rect"; - return res; - }; - R._engine.ellipse = function (vml, x, y, rx, ry) { - var res = vml.path(), - a = res.attrs; - res.X = x - rx; - res.Y = y - ry; - res.W = rx * 2; - res.H = ry * 2; - res.type = "ellipse"; - setFillAndStroke(res, { - cx: x, - cy: y, - rx: rx, - ry: ry - }); - return res; - }; - R._engine.circle = function (vml, x, y, r) { - var res = vml.path(), - a = res.attrs; - res.X = x - r; - res.Y = y - r; - res.W = res.H = r * 2; - res.type = "circle"; - setFillAndStroke(res, { - cx: x, - cy: y, - r: r - }); - return res; - }; - R._engine.image = function (vml, src, x, y, w, h) { - var path = R._rectPath(x, y, w, h), - res = vml.path(path).attr({stroke: "none"}), - a = res.attrs, - node = res.node, - fill = node.getElementsByTagName(fillString)[0]; - a.src = src; - res.X = a.x = x; - res.Y = a.y = y; - res.W = a.width = w; - res.H = a.height = h; - a.path = path; - res.type = "image"; - fill.parentNode == node && node.removeChild(fill); - fill.rotate = true; - fill.src = src; - fill.type = "tile"; - res._.fillpos = [x, y]; - res._.fillsize = [w, h]; - node.appendChild(fill); - setCoords(res, 1, 1, 0, 0, 0); - return res; - }; - R._engine.text = function (vml, x, y, text) { - var el = createNode("shape"), - path = createNode("path"), - o = createNode("textpath"); - x = x || 0; - y = y || 0; - text = text || ""; - path.v = R.format("m{0},{1}l{2},{1}", round(x * zoom), round(y * zoom), round(x * zoom) + 1); - path.textpathok = true; - o.string = Str(text); - o.on = true; - el.style.cssText = cssDot; - el.coordsize = zoom + S + zoom; - el.coordorigin = "0 0"; - var p = new Element(el, vml), - attr = { - fill: "#000", - stroke: "none", - font: R._availableAttrs.font, - text: text - }; - p.shape = el; - p.path = path; - p.textpath = o; - p.type = "text"; - p.attrs.text = Str(text); - p.attrs.x = x; - p.attrs.y = y; - p.attrs.w = 1; - p.attrs.h = 1; - setFillAndStroke(p, attr); - el.appendChild(o); - el.appendChild(path); - vml.canvas.appendChild(el); - var skew = createNode("skew"); - skew.on = true; - el.appendChild(skew); - p.skew = skew; - p.transform(E); - return p; - }; - R._engine.setSize = function (width, height) { - var cs = this.canvas.style; - this.width = width; - this.height = height; - width == +width && (width += "px"); - height == +height && (height += "px"); - cs.width = width; - cs.height = height; - cs.clip = "rect(0 " + width + " " + height + " 0)"; - if (this._viewBox) { - R._engine.setViewBox.apply(this, this._viewBox); - } - return this; - }; - R._engine.setViewBox = function (x, y, w, h, fit) { - R.eve("raphael.setViewBox", this, this._viewBox, [x, y, w, h, fit]); - var paperSize = this.getSize(), - width = paperSize.width, - height = paperSize.height, - H, W; - if (fit) { - H = height / h; - W = width / w; - if (w * H < width) { - x -= (width - w * H) / 2 / H; - } - if (h * W < height) { - y -= (height - h * W) / 2 / W; - } - } - this._viewBox = [x, y, w, h, !!fit]; - this._viewBoxShift = { - dx: -x, - dy: -y, - scale: paperSize - }; - this.forEach(function (el) { - el.transform("..."); - }); - return this; - }; - var createNode; - R._engine.initWin = function (win) { - var doc = win.document; - if (doc.styleSheets.length < 31) { - doc.createStyleSheet().addRule(".rvml", "behavior:url(#default#VML)"); - } else { - // no more room, add to the existing one - // http://msdn.microsoft.com/en-us/library/ms531194%28VS.85%29.aspx - doc.styleSheets[0].addRule(".rvml", "behavior:url(#default#VML)"); - } - try { - !doc.namespaces.rvml && doc.namespaces.add("rvml", "urn:schemas-microsoft-com:vml"); - createNode = function (tagName) { - return doc.createElement('<rvml:' + tagName + ' class="rvml">'); - }; - } catch (e) { - createNode = function (tagName) { - return doc.createElement('<' + tagName + ' xmlns="urn:schemas-microsoft.com:vml" class="rvml">'); - }; - } - }; - R._engine.initWin(R._g.win); - R._engine.create = function () { - var con = R._getContainer.apply(0, arguments), - container = con.container, - height = con.height, - s, - width = con.width, - x = con.x, - y = con.y; - if (!container) { - throw new Error("VML container not found."); - } - var res = new R._Paper, - c = res.canvas = R._g.doc.createElement("div"), - cs = c.style; - x = x || 0; - y = y || 0; - width = width || 512; - height = height || 342; - res.width = width; - res.height = height; - width == +width && (width += "px"); - height == +height && (height += "px"); - res.coordsize = zoom * 1e3 + S + zoom * 1e3; - res.coordorigin = "0 0"; - res.span = R._g.doc.createElement("span"); - res.span.style.cssText = "position:absolute;left:-9999em;top:-9999em;padding:0;margin:0;line-height:1;"; - c.appendChild(res.span); - cs.cssText = R.format("top:0;left:0;width:{0};height:{1};display:inline-block;position:relative;clip:rect(0 {0} {1} 0);overflow:hidden", width, height); - if (container == 1) { - R._g.doc.body.appendChild(c); - cs.left = x + "px"; - cs.top = y + "px"; - cs.position = "absolute"; - } else { - if (container.firstChild) { - container.insertBefore(c, container.firstChild); - } else { - container.appendChild(c); - } - } - res.renderfix = function () {}; - return res; - }; - R.prototype.clear = function () { - R.eve("raphael.clear", this); - this.canvas.innerHTML = E; - this.span = R._g.doc.createElement("span"); - this.span.style.cssText = "position:absolute;left:-9999em;top:-9999em;padding:0;margin:0;line-height:1;display:inline;"; - this.canvas.appendChild(this.span); - this.bottom = this.top = null; - }; - R.prototype.remove = function () { - R.eve("raphael.remove", this); - this.canvas.parentNode.removeChild(this.canvas); - for (var i in this) { - this[i] = typeof this[i] == "function" ? R._removedFactory(i) : null; - } - return true; - }; - - var setproto = R.st; - for (var method in elproto) if (elproto[has](method) && !setproto[has](method)) { - setproto[method] = (function (methodname) { - return function () { - var arg = arguments; - return this.forEach(function (el) { - el[methodname].apply(el, arg); - }); - }; - })(method); - } - }.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)); - - -/***/ } -/******/ ]) -}); -; \ No newline at end of file diff --git a/admin/bower_components/raphael/raphael.no-deps.min.js b/admin/bower_components/raphael/raphael.no-deps.min.js deleted file mode 100644 index 4734b17..0000000 --- a/admin/bower_components/raphael/raphael.no-deps.min.js +++ /dev/null @@ -1,3 +0,0 @@ -!function t(e,r){"object"==typeof exports&&"object"==typeof module?module.exports=r(require("eve")):"function"==typeof define&&define.amd?define(["eve"],r):"object"==typeof exports?exports.Raphael=r(require("eve")):e.Raphael=r(e.eve)}(this,function(t){return function(t){function e(i){if(r[i])return r[i].exports;var n=r[i]={exports:{},id:i,loaded:!1};return t[i].call(n.exports,n,n.exports,e),n.loaded=!0,n.exports}var r={};return e.m=t,e.c=r,e.p="",e(0)}([function(t,e,r){var i,n;i=[r(1),r(3),r(4)],n=function(t){return t}.apply(e,i),!(void 0!==n&&(t.exports=n))},function(t,e,r){var i,n;i=[r(2)],n=function(t){function e(r){if(e.is(r,"function"))return w?r():t.on("raphael.DOMload",r);if(e.is(r,Q))return e._engine.create[F](e,r.splice(0,3+e.is(r[0],$))).add(r);var i=Array.prototype.slice.call(arguments,0);if(e.is(i[i.length-1],"function")){var n=i.pop();return w?n.call(e._engine.create[F](e,i)):t.on("raphael.DOMload",function(){n.call(e._engine.create[F](e,i))})}return e._engine.create[F](e,arguments)}function r(t){if("function"==typeof t||Object(t)!==t)return t;var e=new t.constructor;for(var i in t)t[T](i)&&(e[i]=r(t[i]));return e}function i(t,e){for(var r=0,i=t.length;r<i;r++)if(t[r]===e)return t.push(t.splice(r,1)[0])}function n(t,e,r){function n(){var a=Array.prototype.slice.call(arguments,0),s=a.join("␀"),o=n.cache=n.cache||{},l=n.count=n.count||[];return o[T](s)?(i(l,s),r?r(o[s]):o[s]):(l.length>=1e3&&delete o[l.shift()],l.push(s),o[s]=t[F](e,a),r?r(o[s]):o[s])}return n}function a(){return this.hex}function s(t,e){for(var r=[],i=0,n=t.length;n-2*!e>i;i+=2){var a=[{x:+t[i-2],y:+t[i-1]},{x:+t[i],y:+t[i+1]},{x:+t[i+2],y:+t[i+3]},{x:+t[i+4],y:+t[i+5]}];e?i?n-4==i?a[3]={x:+t[0],y:+t[1]}:n-2==i&&(a[2]={x:+t[0],y:+t[1]},a[3]={x:+t[2],y:+t[3]}):a[0]={x:+t[n-2],y:+t[n-1]}:n-4==i?a[3]=a[2]:i||(a[0]={x:+t[i],y:+t[i+1]}),r.push(["C",(-a[0].x+6*a[1].x+a[2].x)/6,(-a[0].y+6*a[1].y+a[2].y)/6,(a[1].x+6*a[2].x-a[3].x)/6,(a[1].y+6*a[2].y-a[3].y)/6,a[2].x,a[2].y])}return r}function o(t,e,r,i,n){var a=-3*e+9*r-9*i+3*n,s=t*a+6*e-12*r+6*i;return t*s-3*e+3*r}function l(t,e,r,i,n,a,s,l,h){null==h&&(h=1),h=h>1?1:h<0?0:h;for(var u=h/2,c=12,f=[-.1252,.1252,-.3678,.3678,-.5873,.5873,-.7699,.7699,-.9041,.9041,-.9816,.9816],p=[.2491,.2491,.2335,.2335,.2032,.2032,.1601,.1601,.1069,.1069,.0472,.0472],d=0,g=0;g<c;g++){var x=u*f[g]+u,v=o(x,t,r,n,s),y=o(x,e,i,a,l),m=v*v+y*y;d+=p[g]*W.sqrt(m)}return u*d}function h(t,e,r,i,n,a,s,o,h){if(!(h<0||l(t,e,r,i,n,a,s,o)<h)){var u=1,c=u/2,f=u-c,p,d=.01;for(p=l(t,e,r,i,n,a,s,o,f);H(p-h)>d;)c/=2,f+=(p<h?1:-1)*c,p=l(t,e,r,i,n,a,s,o,f);return f}}function u(t,e,r,i,n,a,s,o){if(!(Y(t,r)<G(n,s)||G(t,r)>Y(n,s)||Y(e,i)<G(a,o)||G(e,i)>Y(a,o))){var l=(t*i-e*r)*(n-s)-(t-r)*(n*o-a*s),h=(t*i-e*r)*(a-o)-(e-i)*(n*o-a*s),u=(t-r)*(a-o)-(e-i)*(n-s);if(u){var c=l/u,f=h/u,p=+c.toFixed(2),d=+f.toFixed(2);if(!(p<+G(t,r).toFixed(2)||p>+Y(t,r).toFixed(2)||p<+G(n,s).toFixed(2)||p>+Y(n,s).toFixed(2)||d<+G(e,i).toFixed(2)||d>+Y(e,i).toFixed(2)||d<+G(a,o).toFixed(2)||d>+Y(a,o).toFixed(2)))return{x:c,y:f}}}}function c(t,e){return p(t,e)}function f(t,e){return p(t,e,1)}function p(t,r,i){var n=e.bezierBBox(t),a=e.bezierBBox(r);if(!e.isBBoxIntersect(n,a))return i?0:[];for(var s=l.apply(0,t),o=l.apply(0,r),h=Y(~~(s/5),1),c=Y(~~(o/5),1),f=[],p=[],d={},g=i?0:[],x=0;x<h+1;x++){var v=e.findDotsAtSegment.apply(e,t.concat(x/h));f.push({x:v.x,y:v.y,t:x/h})}for(x=0;x<c+1;x++)v=e.findDotsAtSegment.apply(e,r.concat(x/c)),p.push({x:v.x,y:v.y,t:x/c});for(x=0;x<h;x++)for(var y=0;y<c;y++){var m=f[x],b=f[x+1],_=p[y],w=p[y+1],k=H(b.x-m.x)<.001?"y":"x",B=H(w.x-_.x)<.001?"y":"x",C=u(m.x,m.y,b.x,b.y,_.x,_.y,w.x,w.y);if(C){if(d[C.x.toFixed(4)]==C.y.toFixed(4))continue;d[C.x.toFixed(4)]=C.y.toFixed(4);var S=m.t+H((C[k]-m[k])/(b[k]-m[k]))*(b.t-m.t),T=_.t+H((C[B]-_[B])/(w[B]-_[B]))*(w.t-_.t);S>=0&&S<=1.001&&T>=0&&T<=1.001&&(i?g++:g.push({x:C.x,y:C.y,t1:G(S,1),t2:G(T,1)}))}}return g}function d(t,r,i){t=e._path2curve(t),r=e._path2curve(r);for(var n,a,s,o,l,h,u,c,f,d,g=i?0:[],x=0,v=t.length;x<v;x++){var y=t[x];if("M"==y[0])n=l=y[1],a=h=y[2];else{"C"==y[0]?(f=[n,a].concat(y.slice(1)),n=f[6],a=f[7]):(f=[n,a,n,a,l,h,l,h],n=l,a=h);for(var m=0,b=r.length;m<b;m++){var _=r[m];if("M"==_[0])s=u=_[1],o=c=_[2];else{"C"==_[0]?(d=[s,o].concat(_.slice(1)),s=d[6],o=d[7]):(d=[s,o,s,o,u,c,u,c],s=u,o=c);var w=p(f,d,i);if(i)g+=w;else{for(var k=0,B=w.length;k<B;k++)w[k].segment1=x,w[k].segment2=m,w[k].bez1=f,w[k].bez2=d;g=g.concat(w)}}}}}return g}function g(t,e,r,i,n,a){null!=t?(this.a=+t,this.b=+e,this.c=+r,this.d=+i,this.e=+n,this.f=+a):(this.a=1,this.b=0,this.c=0,this.d=1,this.e=0,this.f=0)}function x(){return this.x+j+this.y}function v(){return this.x+j+this.y+j+this.width+" × "+this.height}function y(t,e,r,i,n,a){function s(t){return((c*t+u)*t+h)*t}function o(t,e){var r=l(t,e);return((d*r+p)*r+f)*r}function l(t,e){var r,i,n,a,o,l;for(n=t,l=0;l<8;l++){if(a=s(n)-t,H(a)<e)return n;if(o=(3*c*n+2*u)*n+h,H(o)<1e-6)break;n-=a/o}if(r=0,i=1,n=t,n<r)return r;if(n>i)return i;for(;r<i;){if(a=s(n),H(a-t)<e)return n;t>a?r=n:i=n,n=(i-r)/2+r}return n}var h=3*e,u=3*(i-e)-h,c=1-h-u,f=3*r,p=3*(n-r)-f,d=1-f-p;return o(t,1/(200*a))}function m(t,e){var r=[],i={};if(this.ms=e,this.times=1,t){for(var n in t)t[T](n)&&(i[ht(n)]=t[n],r.push(ht(n)));r.sort(Bt)}this.anim=i,this.top=r[r.length-1],this.percents=r}function b(r,i,n,a,s,o){n=ht(n);var l,h,u,c=[],f,p,d,x=r.ms,v={},m={},b={};if(a)for(w=0,B=Me.length;w<B;w++){var _=Me[w];if(_.el.id==i.id&&_.anim==r){_.percent!=n?(Me.splice(w,1),u=1):h=_,i.attr(_.totalOrigin);break}}else a=+m;for(var w=0,B=r.percents.length;w<B;w++){if(r.percents[w]==n||r.percents[w]>a*r.top){n=r.percents[w],p=r.percents[w-1]||0,x=x/r.top*(n-p),f=r.percents[w+1],l=r.anim[n];break}a&&i.attr(r.anim[r.percents[w]])}if(l){if(h)h.initstatus=a,h.start=new Date-h.ms*a;else{for(var C in l)if(l[T](C)&&(pt[T](C)||i.paper.customAttributes[T](C)))switch(v[C]=i.attr(C),null==v[C]&&(v[C]=ft[C]),m[C]=l[C],pt[C]){case $:b[C]=(m[C]-v[C])/x;break;case"colour":v[C]=e.getRGB(v[C]);var S=e.getRGB(m[C]);b[C]={r:(S.r-v[C].r)/x,g:(S.g-v[C].g)/x,b:(S.b-v[C].b)/x};break;case"path":var A=Qt(v[C],m[C]),M=A[1];for(v[C]=A[0],b[C]=[],w=0,B=v[C].length;w<B;w++){b[C][w]=[0];for(var N=1,E=v[C][w].length;N<E;N++)b[C][w][N]=(M[w][N]-v[C][w][N])/x}break;case"transform":var L=i._,F=le(L[C],m[C]);if(F)for(v[C]=F.from,m[C]=F.to,b[C]=[],b[C].real=!0,w=0,B=v[C].length;w<B;w++)for(b[C][w]=[v[C][w][0]],N=1,E=v[C][w].length;N<E;N++)b[C][w][N]=(m[C][w][N]-v[C][w][N])/x;else{var z=i.matrix||new g,R={_:{transform:L.transform},getBBox:function(){return i.getBBox(1)}};v[C]=[z.a,z.b,z.c,z.d,z.e,z.f],se(R,m[C]),m[C]=R._.transform,b[C]=[(R.matrix.a-z.a)/x,(R.matrix.b-z.b)/x,(R.matrix.c-z.c)/x,(R.matrix.d-z.d)/x,(R.matrix.e-z.e)/x,(R.matrix.f-z.f)/x]}break;case"csv":var j=q(l[C])[I](k),D=q(v[C])[I](k);if("clip-rect"==C)for(v[C]=D,b[C]=[],w=D.length;w--;)b[C][w]=(j[w]-v[C][w])/x;m[C]=j;break;default:for(j=[][P](l[C]),D=[][P](v[C]),b[C]=[],w=i.paper.customAttributes[C].length;w--;)b[C][w]=((j[w]||0)-(D[w]||0))/x}var V=l.easing,O=e.easing_formulas[V];if(!O)if(O=q(V).match(st),O&&5==O.length){var W=O;O=function(t){return y(t,+W[1],+W[2],+W[3],+W[4],x)}}else O=St;if(d=l.start||r.start||+new Date,_={anim:r,percent:n,timestamp:d,start:d+(r.del||0),status:0,initstatus:a||0,stop:!1,ms:x,easing:O,from:v,diff:b,to:m,el:i,callback:l.callback,prev:p,next:f,repeat:o||r.times,origin:i.attr(),totalOrigin:s},Me.push(_),a&&!h&&!u&&(_.stop=!0,_.start=new Date-x*a,1==Me.length))return Ee();u&&(_.start=new Date-_.ms*a),1==Me.length&&Ne(Ee)}t("raphael.anim.start."+i.id,i,r)}}function _(t){for(var e=0;e<Me.length;e++)Me[e].el.paper==t&&Me.splice(e--,1)}e.version="2.2.0",e.eve=t;var w,k=/[, ]+/,B={circle:1,rect:1,path:1,ellipse:1,text:1,image:1},C=/\{(\d+)\}/g,S="prototype",T="hasOwnProperty",A={doc:document,win:window},M={was:Object.prototype[T].call(A.win,"Raphael"),is:A.win.Raphael},N=function(){this.ca=this.customAttributes={}},E,L="appendChild",F="apply",P="concat",z="ontouchstart"in A.win||A.win.DocumentTouch&&A.doc instanceof DocumentTouch,R="",j=" ",q=String,I="split",D="click dblclick mousedown mousemove mouseout mouseover mouseup touchstart touchmove touchend touchcancel"[I](j),V={mousedown:"touchstart",mousemove:"touchmove",mouseup:"touchend"},O=q.prototype.toLowerCase,W=Math,Y=W.max,G=W.min,H=W.abs,X=W.pow,U=W.PI,$="number",Z="string",Q="array",J="toString",K="fill",tt=Object.prototype.toString,et={},rt="push",it=e._ISURL=/^url\(['"]?(.+?)['"]?\)$/i,nt=/^\s*((#[a-f\d]{6})|(#[a-f\d]{3})|rgba?\(\s*([\d\.]+%?\s*,\s*[\d\.]+%?\s*,\s*[\d\.]+%?(?:\s*,\s*[\d\.]+%?)?)\s*\)|hsba?\(\s*([\d\.]+(?:deg|\xb0|%)?\s*,\s*[\d\.]+%?\s*,\s*[\d\.]+(?:%?\s*,\s*[\d\.]+)?)%?\s*\)|hsla?\(\s*([\d\.]+(?:deg|\xb0|%)?\s*,\s*[\d\.]+%?\s*,\s*[\d\.]+(?:%?\s*,\s*[\d\.]+)?)%?\s*\))\s*$/i,at={NaN:1,Infinity:1,"-Infinity":1},st=/^(?:cubic-)?bezier\(([^,]+),([^,]+),([^,]+),([^\)]+)\)/,ot=W.round,lt="setAttribute",ht=parseFloat,ut=parseInt,ct=q.prototype.toUpperCase,ft=e._availableAttrs={"arrow-end":"none","arrow-start":"none",blur:0,"clip-rect":"0 0 1e9 1e9",cursor:"default",cx:0,cy:0,fill:"#fff","fill-opacity":1,font:'10px "Arial"',"font-family":'"Arial"',"font-size":"10","font-style":"normal","font-weight":400,gradient:0,height:0,href:"http://raphaeljs.com/","letter-spacing":0,opacity:1,path:"M0,0",r:0,rx:0,ry:0,src:"",stroke:"#000","stroke-dasharray":"","stroke-linecap":"butt","stroke-linejoin":"butt","stroke-miterlimit":0,"stroke-opacity":1,"stroke-width":1,target:"_blank","text-anchor":"middle",title:"Raphael",transform:"",width:0,x:0,y:0,"class":""},pt=e._availableAnimAttrs={blur:$,"clip-rect":"csv",cx:$,cy:$,fill:"colour","fill-opacity":$,"font-size":$,height:$,opacity:$,path:"path",r:$,rx:$,ry:$,stroke:"colour","stroke-opacity":$,"stroke-width":$,transform:"transform",width:$,x:$,y:$},dt=/[\x09\x0a\x0b\x0c\x0d\x20\xa0\u1680\u180e\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u202f\u205f\u3000\u2028\u2029]/g,gt=/[\x09\x0a\x0b\x0c\x0d\x20\xa0\u1680\u180e\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u202f\u205f\u3000\u2028\u2029]*,[\x09\x0a\x0b\x0c\x0d\x20\xa0\u1680\u180e\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u202f\u205f\u3000\u2028\u2029]*/,xt={hs:1,rg:1},vt=/,?([achlmqrstvxz]),?/gi,yt=/([achlmrqstvz])[\x09\x0a\x0b\x0c\x0d\x20\xa0\u1680\u180e\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u202f\u205f\u3000\u2028\u2029,]*((-?\d*\.?\d*(?:e[\-+]?\d+)?[\x09\x0a\x0b\x0c\x0d\x20\xa0\u1680\u180e\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u202f\u205f\u3000\u2028\u2029]*,?[\x09\x0a\x0b\x0c\x0d\x20\xa0\u1680\u180e\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u202f\u205f\u3000\u2028\u2029]*)+)/gi,mt=/([rstm])[\x09\x0a\x0b\x0c\x0d\x20\xa0\u1680\u180e\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u202f\u205f\u3000\u2028\u2029,]*((-?\d*\.?\d*(?:e[\-+]?\d+)?[\x09\x0a\x0b\x0c\x0d\x20\xa0\u1680\u180e\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u202f\u205f\u3000\u2028\u2029]*,?[\x09\x0a\x0b\x0c\x0d\x20\xa0\u1680\u180e\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u202f\u205f\u3000\u2028\u2029]*)+)/gi,bt=/(-?\d*\.?\d*(?:e[\-+]?\d+)?)[\x09\x0a\x0b\x0c\x0d\x20\xa0\u1680\u180e\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u202f\u205f\u3000\u2028\u2029]*,?[\x09\x0a\x0b\x0c\x0d\x20\xa0\u1680\u180e\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u202f\u205f\u3000\u2028\u2029]*/gi,_t=e._radial_gradient=/^r(?:\(([^,]+?)[\x09\x0a\x0b\x0c\x0d\x20\xa0\u1680\u180e\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u202f\u205f\u3000\u2028\u2029]*,[\x09\x0a\x0b\x0c\x0d\x20\xa0\u1680\u180e\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u202f\u205f\u3000\u2028\u2029]*([^\)]+?)\))?/,wt={},kt=function(t,e){return t.key-e.key},Bt=function(t,e){return ht(t)-ht(e)},Ct=function(){},St=function(t){return t},Tt=e._rectPath=function(t,e,r,i,n){return n?[["M",t+n,e],["l",r-2*n,0],["a",n,n,0,0,1,n,n],["l",0,i-2*n],["a",n,n,0,0,1,-n,n],["l",2*n-r,0],["a",n,n,0,0,1,-n,-n],["l",0,2*n-i],["a",n,n,0,0,1,n,-n],["z"]]:[["M",t,e],["l",r,0],["l",0,i],["l",-r,0],["z"]]},At=function(t,e,r,i){return null==i&&(i=r),[["M",t,e],["m",0,-i],["a",r,i,0,1,1,0,2*i],["a",r,i,0,1,1,0,-2*i],["z"]]},Mt=e._getPath={path:function(t){return t.attr("path")},circle:function(t){var e=t.attrs;return At(e.cx,e.cy,e.r)},ellipse:function(t){var e=t.attrs;return At(e.cx,e.cy,e.rx,e.ry)},rect:function(t){var e=t.attrs;return Tt(e.x,e.y,e.width,e.height,e.r)},image:function(t){var e=t.attrs;return Tt(e.x,e.y,e.width,e.height)},text:function(t){var e=t._getBBox();return Tt(e.x,e.y,e.width,e.height)},set:function(t){var e=t._getBBox();return Tt(e.x,e.y,e.width,e.height)}},Nt=e.mapPath=function(t,e){if(!e)return t;var r,i,n,a,s,o,l;for(t=Qt(t),n=0,s=t.length;n<s;n++)for(l=t[n],a=1,o=l.length;a<o;a+=2)r=e.x(l[a],l[a+1]),i=e.y(l[a],l[a+1]),l[a]=r,l[a+1]=i;return t};if(e._g=A,e.type=A.win.SVGAngle||A.doc.implementation.hasFeature("http://www.w3.org/TR/SVG11/feature#BasicStructure","1.1")?"SVG":"VML","VML"==e.type){var Et=A.doc.createElement("div"),Lt;if(Et.innerHTML='<v:shape adj="1"/>',Lt=Et.firstChild,Lt.style.behavior="url(#default#VML)",!Lt||"object"!=typeof Lt.adj)return e.type=R;Et=null}e.svg=!(e.vml="VML"==e.type),e._Paper=N,e.fn=E=N.prototype=e.prototype,e._id=0,e.is=function(t,e){return e=O.call(e),"finite"==e?!at[T](+t):"array"==e?t instanceof Array:"null"==e&&null===t||e==typeof t&&null!==t||"object"==e&&t===Object(t)||"array"==e&&Array.isArray&&Array.isArray(t)||tt.call(t).slice(8,-1).toLowerCase()==e},e.angle=function(t,r,i,n,a,s){if(null==a){var o=t-i,l=r-n;return o||l?(180+180*W.atan2(-l,-o)/U+360)%360:0}return e.angle(t,r,a,s)-e.angle(i,n,a,s)},e.rad=function(t){return t%360*U/180},e.deg=function(t){return Math.round(180*t/U%360*1e3)/1e3},e.snapTo=function(t,r,i){if(i=e.is(i,"finite")?i:10,e.is(t,Q)){for(var n=t.length;n--;)if(H(t[n]-r)<=i)return t[n]}else{t=+t;var a=r%t;if(a<i)return r-a;if(a>t-i)return r-a+t}return r};var Ft=e.createUUID=function(t,e){return function(){return"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(t,e).toUpperCase()}}(/[xy]/g,function(t){var e=16*W.random()|0,r="x"==t?e:3&e|8;return r.toString(16)});e.setWindow=function(r){t("raphael.setWindow",e,A.win,r),A.win=r,A.doc=A.win.document,e._engine.initWin&&e._engine.initWin(A.win)};var Pt=function(t){if(e.vml){var r=/^\s+|\s+$/g,i;try{var a=new ActiveXObject("htmlfile");a.write("<body>"),a.close(),i=a.body}catch(s){i=createPopup().document.body}var o=i.createTextRange();Pt=n(function(t){try{i.style.color=q(t).replace(r,R);var e=o.queryCommandValue("ForeColor");return e=(255&e)<<16|65280&e|(16711680&e)>>>16,"#"+("000000"+e.toString(16)).slice(-6)}catch(n){return"none"}})}else{var l=A.doc.createElement("i");l.title="Raphaël Colour Picker",l.style.display="none",A.doc.body.appendChild(l),Pt=n(function(t){return l.style.color=t,A.doc.defaultView.getComputedStyle(l,R).getPropertyValue("color")})}return Pt(t)},zt=function(){return"hsb("+[this.h,this.s,this.b]+")"},Rt=function(){return"hsl("+[this.h,this.s,this.l]+")"},jt=function(){return this.hex},qt=function(t,r,i){if(null==r&&e.is(t,"object")&&"r"in t&&"g"in t&&"b"in t&&(i=t.b,r=t.g,t=t.r),null==r&&e.is(t,Z)){var n=e.getRGB(t);t=n.r,r=n.g,i=n.b}return(t>1||r>1||i>1)&&(t/=255,r/=255,i/=255),[t,r,i]},It=function(t,r,i,n){t*=255,r*=255,i*=255;var a={r:t,g:r,b:i,hex:e.rgb(t,r,i),toString:jt};return e.is(n,"finite")&&(a.opacity=n),a};e.color=function(t){var r;return e.is(t,"object")&&"h"in t&&"s"in t&&"b"in t?(r=e.hsb2rgb(t),t.r=r.r,t.g=r.g,t.b=r.b,t.hex=r.hex):e.is(t,"object")&&"h"in t&&"s"in t&&"l"in t?(r=e.hsl2rgb(t),t.r=r.r,t.g=r.g,t.b=r.b,t.hex=r.hex):(e.is(t,"string")&&(t=e.getRGB(t)),e.is(t,"object")&&"r"in t&&"g"in t&&"b"in t?(r=e.rgb2hsl(t),t.h=r.h,t.s=r.s,t.l=r.l,r=e.rgb2hsb(t),t.v=r.b):(t={hex:"none"},t.r=t.g=t.b=t.h=t.s=t.v=t.l=-1)),t.toString=jt,t},e.hsb2rgb=function(t,e,r,i){this.is(t,"object")&&"h"in t&&"s"in t&&"b"in t&&(r=t.b,e=t.s,i=t.o,t=t.h),t*=360;var n,a,s,o,l;return t=t%360/60,l=r*e,o=l*(1-H(t%2-1)),n=a=s=r-l,t=~~t,n+=[l,o,0,0,o,l][t],a+=[o,l,l,o,0,0][t],s+=[0,0,o,l,l,o][t],It(n,a,s,i)},e.hsl2rgb=function(t,e,r,i){this.is(t,"object")&&"h"in t&&"s"in t&&"l"in t&&(r=t.l,e=t.s,t=t.h),(t>1||e>1||r>1)&&(t/=360,e/=100,r/=100),t*=360;var n,a,s,o,l;return t=t%360/60,l=2*e*(r<.5?r:1-r),o=l*(1-H(t%2-1)),n=a=s=r-l/2,t=~~t,n+=[l,o,0,0,o,l][t],a+=[o,l,l,o,0,0][t],s+=[0,0,o,l,l,o][t],It(n,a,s,i)},e.rgb2hsb=function(t,e,r){r=qt(t,e,r),t=r[0],e=r[1],r=r[2];var i,n,a,s;return a=Y(t,e,r),s=a-G(t,e,r),i=0==s?null:a==t?(e-r)/s:a==e?(r-t)/s+2:(t-e)/s+4,i=(i+360)%6*60/360,n=0==s?0:s/a,{h:i,s:n,b:a,toString:zt}},e.rgb2hsl=function(t,e,r){r=qt(t,e,r),t=r[0],e=r[1],r=r[2];var i,n,a,s,o,l;return s=Y(t,e,r),o=G(t,e,r),l=s-o,i=0==l?null:s==t?(e-r)/l:s==e?(r-t)/l+2:(t-e)/l+4,i=(i+360)%6*60/360,a=(s+o)/2,n=0==l?0:a<.5?l/(2*a):l/(2-2*a),{h:i,s:n,l:a,toString:Rt}},e._path2string=function(){return this.join(",").replace(vt,"$1")};var Dt=e._preload=function(t,e){var r=A.doc.createElement("img");r.style.cssText="position:absolute;left:-9999em;top:-9999em",r.onload=function(){e.call(this),this.onload=null,A.doc.body.removeChild(this)},r.onerror=function(){A.doc.body.removeChild(this)},A.doc.body.appendChild(r),r.src=t};e.getRGB=n(function(t){if(!t||(t=q(t)).indexOf("-")+1)return{r:-1,g:-1,b:-1,hex:"none",error:1,toString:a};if("none"==t)return{r:-1,g:-1,b:-1,hex:"none",toString:a};!(xt[T](t.toLowerCase().substring(0,2))||"#"==t.charAt())&&(t=Pt(t));var r,i,n,s,o,l,h,u=t.match(nt);return u?(u[2]&&(s=ut(u[2].substring(5),16),n=ut(u[2].substring(3,5),16),i=ut(u[2].substring(1,3),16)),u[3]&&(s=ut((l=u[3].charAt(3))+l,16),n=ut((l=u[3].charAt(2))+l,16),i=ut((l=u[3].charAt(1))+l,16)),u[4]&&(h=u[4][I](gt),i=ht(h[0]),"%"==h[0].slice(-1)&&(i*=2.55),n=ht(h[1]),"%"==h[1].slice(-1)&&(n*=2.55),s=ht(h[2]),"%"==h[2].slice(-1)&&(s*=2.55),"rgba"==u[1].toLowerCase().slice(0,4)&&(o=ht(h[3])),h[3]&&"%"==h[3].slice(-1)&&(o/=100)),u[5]?(h=u[5][I](gt),i=ht(h[0]),"%"==h[0].slice(-1)&&(i*=2.55),n=ht(h[1]),"%"==h[1].slice(-1)&&(n*=2.55),s=ht(h[2]),"%"==h[2].slice(-1)&&(s*=2.55),("deg"==h[0].slice(-3)||"°"==h[0].slice(-1))&&(i/=360),"hsba"==u[1].toLowerCase().slice(0,4)&&(o=ht(h[3])),h[3]&&"%"==h[3].slice(-1)&&(o/=100),e.hsb2rgb(i,n,s,o)):u[6]?(h=u[6][I](gt),i=ht(h[0]),"%"==h[0].slice(-1)&&(i*=2.55),n=ht(h[1]),"%"==h[1].slice(-1)&&(n*=2.55),s=ht(h[2]),"%"==h[2].slice(-1)&&(s*=2.55),("deg"==h[0].slice(-3)||"°"==h[0].slice(-1))&&(i/=360),"hsla"==u[1].toLowerCase().slice(0,4)&&(o=ht(h[3])),h[3]&&"%"==h[3].slice(-1)&&(o/=100),e.hsl2rgb(i,n,s,o)):(u={r:i,g:n,b:s,toString:a},u.hex="#"+(16777216|s|n<<8|i<<16).toString(16).slice(1),e.is(o,"finite")&&(u.opacity=o),u)):{r:-1,g:-1,b:-1,hex:"none",error:1,toString:a}},e),e.hsb=n(function(t,r,i){return e.hsb2rgb(t,r,i).hex}),e.hsl=n(function(t,r,i){return e.hsl2rgb(t,r,i).hex}),e.rgb=n(function(t,e,r){function i(t){return t+.5|0}return"#"+(16777216|i(r)|i(e)<<8|i(t)<<16).toString(16).slice(1)}),e.getColor=function(t){var e=this.getColor.start=this.getColor.start||{h:0,s:1,b:t||.75},r=this.hsb2rgb(e.h,e.s,e.b);return e.h+=.075,e.h>1&&(e.h=0,e.s-=.2,e.s<=0&&(this.getColor.start={h:0,s:1,b:e.b})),r.hex},e.getColor.reset=function(){delete this.start},e.parsePathString=function(t){if(!t)return null;var r=Vt(t);if(r.arr)return Wt(r.arr);var i={a:7,c:6,h:1,l:2,m:2,r:4,q:4,s:4,t:2,v:1,z:0},n=[];return e.is(t,Q)&&e.is(t[0],Q)&&(n=Wt(t)),n.length||q(t).replace(yt,function(t,e,r){var a=[],s=e.toLowerCase();if(r.replace(bt,function(t,e){e&&a.push(+e)}),"m"==s&&a.length>2&&(n.push([e][P](a.splice(0,2))),s="l",e="m"==e?"l":"L"),"r"==s)n.push([e][P](a));else for(;a.length>=i[s]&&(n.push([e][P](a.splice(0,i[s]))),i[s]););}),n.toString=e._path2string,r.arr=Wt(n),n},e.parseTransformString=n(function(t){if(!t)return null;var r={r:3,s:4,t:2,m:6},i=[];return e.is(t,Q)&&e.is(t[0],Q)&&(i=Wt(t)),i.length||q(t).replace(mt,function(t,e,r){var n=[],a=O.call(e);r.replace(bt,function(t,e){e&&n.push(+e)}),i.push([e][P](n))}),i.toString=e._path2string,i});var Vt=function(t){var e=Vt.ps=Vt.ps||{};return e[t]?e[t].sleep=100:e[t]={sleep:100},setTimeout(function(){for(var r in e)e[T](r)&&r!=t&&(e[r].sleep--,!e[r].sleep&&delete e[r])}),e[t]};e.findDotsAtSegment=function(t,e,r,i,n,a,s,o,l){var h=1-l,u=X(h,3),c=X(h,2),f=l*l,p=f*l,d=u*t+3*c*l*r+3*h*l*l*n+p*s,g=u*e+3*c*l*i+3*h*l*l*a+p*o,x=t+2*l*(r-t)+f*(n-2*r+t),v=e+2*l*(i-e)+f*(a-2*i+e),y=r+2*l*(n-r)+f*(s-2*n+r),m=i+2*l*(a-i)+f*(o-2*a+i),b=h*t+l*r,_=h*e+l*i,w=h*n+l*s,k=h*a+l*o,B=90-180*W.atan2(x-y,v-m)/U;return(x>y||v<m)&&(B+=180),{x:d,y:g,m:{x:x,y:v},n:{x:y,y:m},start:{x:b,y:_},end:{x:w,y:k},alpha:B}},e.bezierBBox=function(t,r,i,n,a,s,o,l){e.is(t,"array")||(t=[t,r,i,n,a,s,o,l]);var h=Zt.apply(null,t);return{x:h.min.x,y:h.min.y,x2:h.max.x,y2:h.max.y,width:h.max.x-h.min.x,height:h.max.y-h.min.y}},e.isPointInsideBBox=function(t,e,r){return e>=t.x&&e<=t.x2&&r>=t.y&&r<=t.y2},e.isBBoxIntersect=function(t,r){var i=e.isPointInsideBBox;return i(r,t.x,t.y)||i(r,t.x2,t.y)||i(r,t.x,t.y2)||i(r,t.x2,t.y2)||i(t,r.x,r.y)||i(t,r.x2,r.y)||i(t,r.x,r.y2)||i(t,r.x2,r.y2)||(t.x<r.x2&&t.x>r.x||r.x<t.x2&&r.x>t.x)&&(t.y<r.y2&&t.y>r.y||r.y<t.y2&&r.y>t.y)},e.pathIntersection=function(t,e){return d(t,e)},e.pathIntersectionNumber=function(t,e){return d(t,e,1)},e.isPointInsidePath=function(t,r,i){var n=e.pathBBox(t);return e.isPointInsideBBox(n,r,i)&&d(t,[["M",r,i],["H",n.x2+10]],1)%2==1},e._removedFactory=function(e){return function(){t("raphael.log",null,"Raphaël: you are calling to method “"+e+"” of removed object",e)}};var Ot=e.pathBBox=function(t){var e=Vt(t);if(e.bbox)return r(e.bbox);if(!t)return{x:0,y:0,width:0,height:0,x2:0,y2:0};t=Qt(t);for(var i=0,n=0,a=[],s=[],o,l=0,h=t.length;l<h;l++)if(o=t[l],"M"==o[0])i=o[1],n=o[2],a.push(i),s.push(n);else{var u=Zt(i,n,o[1],o[2],o[3],o[4],o[5],o[6]);a=a[P](u.min.x,u.max.x),s=s[P](u.min.y,u.max.y),i=o[5],n=o[6]}var c=G[F](0,a),f=G[F](0,s),p=Y[F](0,a),d=Y[F](0,s),g=p-c,x=d-f,v={x:c,y:f,x2:p,y2:d,width:g,height:x,cx:c+g/2,cy:f+x/2};return e.bbox=r(v),v},Wt=function(t){var i=r(t);return i.toString=e._path2string,i},Yt=e._pathToRelative=function(t){var r=Vt(t);if(r.rel)return Wt(r.rel);e.is(t,Q)&&e.is(t&&t[0],Q)||(t=e.parsePathString(t));var i=[],n=0,a=0,s=0,o=0,l=0;"M"==t[0][0]&&(n=t[0][1],a=t[0][2],s=n,o=a,l++,i.push(["M",n,a]));for(var h=l,u=t.length;h<u;h++){var c=i[h]=[],f=t[h];if(f[0]!=O.call(f[0]))switch(c[0]=O.call(f[0]),c[0]){case"a":c[1]=f[1],c[2]=f[2],c[3]=f[3],c[4]=f[4],c[5]=f[5],c[6]=+(f[6]-n).toFixed(3),c[7]=+(f[7]-a).toFixed(3);break;case"v":c[1]=+(f[1]-a).toFixed(3);break;case"m":s=f[1],o=f[2];default:for(var p=1,d=f.length;p<d;p++)c[p]=+(f[p]-(p%2?n:a)).toFixed(3)}else{c=i[h]=[],"m"==f[0]&&(s=f[1]+n,o=f[2]+a);for(var g=0,x=f.length;g<x;g++)i[h][g]=f[g]}var v=i[h].length;switch(i[h][0]){case"z":n=s,a=o;break;case"h":n+=+i[h][v-1];break;case"v":a+=+i[h][v-1];break;default:n+=+i[h][v-2],a+=+i[h][v-1]}}return i.toString=e._path2string,r.rel=Wt(i),i},Gt=e._pathToAbsolute=function(t){var r=Vt(t);if(r.abs)return Wt(r.abs);if(e.is(t,Q)&&e.is(t&&t[0],Q)||(t=e.parsePathString(t)),!t||!t.length)return[["M",0,0]];var i=[],n=0,a=0,o=0,l=0,h=0;"M"==t[0][0]&&(n=+t[0][1],a=+t[0][2],o=n,l=a,h++,i[0]=["M",n,a]);for(var u=3==t.length&&"M"==t[0][0]&&"R"==t[1][0].toUpperCase()&&"Z"==t[2][0].toUpperCase(),c,f,p=h,d=t.length;p<d;p++){if(i.push(c=[]),f=t[p],f[0]!=ct.call(f[0]))switch(c[0]=ct.call(f[0]),c[0]){case"A":c[1]=f[1],c[2]=f[2],c[3]=f[3],c[4]=f[4],c[5]=f[5],c[6]=+(f[6]+n),c[7]=+(f[7]+a);break;case"V":c[1]=+f[1]+a;break;case"H":c[1]=+f[1]+n;break;case"R":for(var g=[n,a][P](f.slice(1)),x=2,v=g.length;x<v;x++)g[x]=+g[x]+n,g[++x]=+g[x]+a;i.pop(),i=i[P](s(g,u));break;case"M":o=+f[1]+n,l=+f[2]+a;default:for(x=1,v=f.length;x<v;x++)c[x]=+f[x]+(x%2?n:a)}else if("R"==f[0])g=[n,a][P](f.slice(1)),i.pop(),i=i[P](s(g,u)),c=["R"][P](f.slice(-2));else for(var y=0,m=f.length;y<m;y++)c[y]=f[y];switch(c[0]){case"Z":n=o,a=l;break;case"H":n=c[1];break;case"V":a=c[1];break;case"M":o=c[c.length-2],l=c[c.length-1];default:n=c[c.length-2],a=c[c.length-1]}}return i.toString=e._path2string,r.abs=Wt(i),i},Ht=function(t,e,r,i){return[t,e,r,i,r,i]},Xt=function(t,e,r,i,n,a){var s=1/3,o=2/3;return[s*t+o*r,s*e+o*i,s*n+o*r,s*a+o*i,n,a]},Ut=function(t,e,r,i,a,s,o,l,h,u){var c=120*U/180,f=U/180*(+a||0),p=[],d,g=n(function(t,e,r){var i=t*W.cos(r)-e*W.sin(r),n=t*W.sin(r)+e*W.cos(r);return{x:i,y:n}});if(u)S=u[0],T=u[1],B=u[2],C=u[3];else{d=g(t,e,-f),t=d.x,e=d.y,d=g(l,h,-f),l=d.x,h=d.y;var x=W.cos(U/180*a),v=W.sin(U/180*a),y=(t-l)/2,m=(e-h)/2,b=y*y/(r*r)+m*m/(i*i);b>1&&(b=W.sqrt(b),r=b*r,i=b*i);var _=r*r,w=i*i,k=(s==o?-1:1)*W.sqrt(H((_*w-_*m*m-w*y*y)/(_*m*m+w*y*y))),B=k*r*m/i+(t+l)/2,C=k*-i*y/r+(e+h)/2,S=W.asin(((e-C)/i).toFixed(9)),T=W.asin(((h-C)/i).toFixed(9));S=t<B?U-S:S,T=l<B?U-T:T,S<0&&(S=2*U+S),T<0&&(T=2*U+T),o&&S>T&&(S-=2*U),!o&&T>S&&(T-=2*U)}var A=T-S;if(H(A)>c){var M=T,N=l,E=h;T=S+c*(o&&T>S?1:-1),l=B+r*W.cos(T),h=C+i*W.sin(T),p=Ut(l,h,r,i,a,0,o,N,E,[T,M,B,C])}A=T-S;var L=W.cos(S),F=W.sin(S),z=W.cos(T),R=W.sin(T),j=W.tan(A/4),q=4/3*r*j,D=4/3*i*j,V=[t,e],O=[t+q*F,e-D*L],Y=[l+q*R,h-D*z],G=[l,h];if(O[0]=2*V[0]-O[0],O[1]=2*V[1]-O[1],u)return[O,Y,G][P](p);p=[O,Y,G][P](p).join()[I](",");for(var X=[],$=0,Z=p.length;$<Z;$++)X[$]=$%2?g(p[$-1],p[$],f).y:g(p[$],p[$+1],f).x;return X},$t=function(t,e,r,i,n,a,s,o,l){var h=1-l;return{x:X(h,3)*t+3*X(h,2)*l*r+3*h*l*l*n+X(l,3)*s,y:X(h,3)*e+3*X(h,2)*l*i+3*h*l*l*a+X(l,3)*o}},Zt=n(function(t,e,r,i,n,a,s,o){var l=n-2*r+t-(s-2*n+r),h=2*(r-t)-2*(n-r),u=t-r,c=(-h+W.sqrt(h*h-4*l*u))/2/l,f=(-h-W.sqrt(h*h-4*l*u))/2/l,p=[e,o],d=[t,s],g;return H(c)>"1e12"&&(c=.5),H(f)>"1e12"&&(f=.5),c>0&&c<1&&(g=$t(t,e,r,i,n,a,s,o,c),d.push(g.x),p.push(g.y)),f>0&&f<1&&(g=$t(t,e,r,i,n,a,s,o,f),d.push(g.x),p.push(g.y)),l=a-2*i+e-(o-2*a+i),h=2*(i-e)-2*(a-i),u=e-i,c=(-h+W.sqrt(h*h-4*l*u))/2/l,f=(-h-W.sqrt(h*h-4*l*u))/2/l,H(c)>"1e12"&&(c=.5),H(f)>"1e12"&&(f=.5),c>0&&c<1&&(g=$t(t,e,r,i,n,a,s,o,c),d.push(g.x),p.push(g.y)),f>0&&f<1&&(g=$t(t,e,r,i,n,a,s,o,f),d.push(g.x),p.push(g.y)),{min:{x:G[F](0,d),y:G[F](0,p)},max:{x:Y[F](0,d),y:Y[F](0,p)}}}),Qt=e._path2curve=n(function(t,e){var r=!e&&Vt(t);if(!e&&r.curve)return Wt(r.curve);for(var i=Gt(t),n=e&&Gt(e),a={x:0,y:0,bx:0,by:0,X:0,Y:0,qx:null,qy:null},s={x:0,y:0,bx:0,by:0,X:0,Y:0,qx:null,qy:null},o=(function(t,e,r){var i,n,a={T:1,Q:1};if(!t)return["C",e.x,e.y,e.x,e.y,e.x,e.y];switch(!(t[0]in a)&&(e.qx=e.qy=null),t[0]){case"M":e.X=t[1],e.Y=t[2];break;case"A":t=["C"][P](Ut[F](0,[e.x,e.y][P](t.slice(1))));break;case"S":"C"==r||"S"==r?(i=2*e.x-e.bx,n=2*e.y-e.by):(i=e.x,n=e.y),t=["C",i,n][P](t.slice(1));break;case"T":"Q"==r||"T"==r?(e.qx=2*e.x-e.qx,e.qy=2*e.y-e.qy):(e.qx=e.x,e.qy=e.y),t=["C"][P](Xt(e.x,e.y,e.qx,e.qy,t[1],t[2]));break;case"Q":e.qx=t[1],e.qy=t[2],t=["C"][P](Xt(e.x,e.y,t[1],t[2],t[3],t[4]));break;case"L":t=["C"][P](Ht(e.x,e.y,t[1],t[2]));break;case"H":t=["C"][P](Ht(e.x,e.y,t[1],e.y));break;case"V":t=["C"][P](Ht(e.x,e.y,e.x,t[1]));break;case"Z":t=["C"][P](Ht(e.x,e.y,e.X,e.Y))}return t}),l=function(t,e){if(t[e].length>7){t[e].shift();for(var r=t[e];r.length;)u[e]="A",n&&(c[e]="A"),t.splice(e++,0,["C"][P](r.splice(0,6)));t.splice(e,1),g=Y(i.length,n&&n.length||0)}},h=function(t,e,r,a,s){t&&e&&"M"==t[s][0]&&"M"!=e[s][0]&&(e.splice(s,0,["M",a.x,a.y]),r.bx=0,r.by=0,r.x=t[s][1],r.y=t[s][2],g=Y(i.length,n&&n.length||0))},u=[],c=[],f="",p="",d=0,g=Y(i.length,n&&n.length||0);d<g;d++){i[d]&&(f=i[d][0]),"C"!=f&&(u[d]=f,d&&(p=u[d-1])),i[d]=o(i[d],a,p),"A"!=u[d]&&"C"==f&&(u[d]="C"),l(i,d),n&&(n[d]&&(f=n[d][0]),"C"!=f&&(c[d]=f,d&&(p=c[d-1])),n[d]=o(n[d],s,p),"A"!=c[d]&&"C"==f&&(c[d]="C"),l(n,d)),h(i,n,a,s,d),h(n,i,s,a,d);var x=i[d],v=n&&n[d],y=x.length,m=n&&v.length;a.x=x[y-2],a.y=x[y-1],a.bx=ht(x[y-4])||a.x,a.by=ht(x[y-3])||a.y,s.bx=n&&(ht(v[m-4])||s.x),s.by=n&&(ht(v[m-3])||s.y),s.x=n&&v[m-2],s.y=n&&v[m-1]}return n||(r.curve=Wt(i)),n?[i,n]:i},null,Wt),Jt=e._parseDots=n(function(t){for(var r=[],i=0,n=t.length;i<n;i++){var a={},s=t[i].match(/^([^:]*):?([\d\.]*)/);if(a.color=e.getRGB(s[1]),a.color.error)return null;a.opacity=a.color.opacity,a.color=a.color.hex,s[2]&&(a.offset=s[2]+"%"),r.push(a)}for(i=1,n=r.length-1;i<n;i++)if(!r[i].offset){for(var o=ht(r[i-1].offset||0),l=0,h=i+1;h<n;h++)if(r[h].offset){l=r[h].offset;break}l||(l=100,h=n),l=ht(l);for(var u=(l-o)/(h-i+1);i<h;i++)o+=u,r[i].offset=o+"%"}return r}),Kt=e._tear=function(t,e){t==e.top&&(e.top=t.prev),t==e.bottom&&(e.bottom=t.next),t.next&&(t.next.prev=t.prev),t.prev&&(t.prev.next=t.next)},te=e._tofront=function(t,e){e.top!==t&&(Kt(t,e),t.next=null,t.prev=e.top,e.top.next=t,e.top=t)},ee=e._toback=function(t,e){e.bottom!==t&&(Kt(t,e),t.next=e.bottom,t.prev=null,e.bottom.prev=t,e.bottom=t)},re=e._insertafter=function(t,e,r){Kt(t,r),e==r.top&&(r.top=t),e.next&&(e.next.prev=t),t.next=e.next,t.prev=e,e.next=t},ie=e._insertbefore=function(t,e,r){Kt(t,r),e==r.bottom&&(r.bottom=t),e.prev&&(e.prev.next=t),t.prev=e.prev,e.prev=t,t.next=e},ne=e.toMatrix=function(t,e){var r=Ot(t),i={_:{transform:R},getBBox:function(){return r}};return se(i,e),i.matrix},ae=e.transformPath=function(t,e){return Nt(t,ne(t,e))},se=e._extractTransform=function(t,r){if(null==r)return t._.transform;r=q(r).replace(/\.{3}|\u2026/g,t._.transform||R);var i=e.parseTransformString(r),n=0,a=0,s=0,o=1,l=1,h=t._,u=new g;if(h.transform=i||[],i)for(var c=0,f=i.length;c<f;c++){var p=i[c],d=p.length,x=q(p[0]).toLowerCase(),v=p[0]!=x,y=v?u.invert():0,m,b,_,w,k;"t"==x&&3==d?v?(m=y.x(0,0),b=y.y(0,0),_=y.x(p[1],p[2]),w=y.y(p[1],p[2]),u.translate(_-m,w-b)):u.translate(p[1],p[2]):"r"==x?2==d?(k=k||t.getBBox(1),u.rotate(p[1],k.x+k.width/2,k.y+k.height/2),n+=p[1]):4==d&&(v?(_=y.x(p[2],p[3]),w=y.y(p[2],p[3]),u.rotate(p[1],_,w)):u.rotate(p[1],p[2],p[3]),n+=p[1]):"s"==x?2==d||3==d?(k=k||t.getBBox(1),u.scale(p[1],p[d-1],k.x+k.width/2,k.y+k.height/2),o*=p[1],l*=p[d-1]):5==d&&(v?(_=y.x(p[3],p[4]),w=y.y(p[3],p[4]),u.scale(p[1],p[2],_,w)):u.scale(p[1],p[2],p[3],p[4]),o*=p[1],l*=p[2]):"m"==x&&7==d&&u.add(p[1],p[2],p[3],p[4],p[5],p[6]),h.dirtyT=1,t.matrix=u}t.matrix=u,h.sx=o,h.sy=l,h.deg=n,h.dx=a=u.e,h.dy=s=u.f,1==o&&1==l&&!n&&h.bbox?(h.bbox.x+=+a,h.bbox.y+=+s):h.dirtyT=1},oe=function(t){var e=t[0];switch(e.toLowerCase()){case"t":return[e,0,0];case"m":return[e,1,0,0,1,0,0];case"r":return 4==t.length?[e,0,t[2],t[3]]:[e,0];case"s":return 5==t.length?[e,1,1,t[3],t[4]]:3==t.length?[e,1,1]:[e,1]}},le=e._equaliseTransform=function(t,r){r=q(r).replace(/\.{3}|\u2026/g,t),t=e.parseTransformString(t)||[],r=e.parseTransformString(r)||[];for(var i=Y(t.length,r.length),n=[],a=[],s=0,o,l,h,u;s<i;s++){if(h=t[s]||oe(r[s]),u=r[s]||oe(h),h[0]!=u[0]||"r"==h[0].toLowerCase()&&(h[2]!=u[2]||h[3]!=u[3])||"s"==h[0].toLowerCase()&&(h[3]!=u[3]||h[4]!=u[4]))return;for(n[s]=[],a[s]=[],o=0,l=Y(h.length,u.length);o<l;o++)o in h&&(n[s][o]=h[o]),o in u&&(a[s][o]=u[o])}return{from:n,to:a}};e._getContainer=function(t,r,i,n){var a;if(a=null!=n||e.is(t,"object")?t:A.doc.getElementById(t),null!=a)return a.tagName?null==r?{container:a,width:a.style.pixelWidth||a.offsetWidth,height:a.style.pixelHeight||a.offsetHeight}:{container:a,width:r,height:i}:{container:1,x:t,y:r,width:i,height:n}},e.pathToRelative=Yt,e._engine={},e.path2curve=Qt,e.matrix=function(t,e,r,i,n,a){return new g(t,e,r,i,n,a)},function(t){function r(t){return t[0]*t[0]+t[1]*t[1]}function i(t){var e=W.sqrt(r(t));t[0]&&(t[0]/=e),t[1]&&(t[1]/=e)}t.add=function(t,e,r,i,n,a){var s=[[],[],[]],o=[[this.a,this.c,this.e],[this.b,this.d,this.f],[0,0,1]],l=[[t,r,n],[e,i,a],[0,0,1]],h,u,c,f;for(t&&t instanceof g&&(l=[[t.a,t.c,t.e],[t.b,t.d,t.f],[0,0,1]]),h=0;h<3;h++)for(u=0;u<3;u++){for(f=0,c=0;c<3;c++)f+=o[h][c]*l[c][u];s[h][u]=f}this.a=s[0][0],this.b=s[1][0],this.c=s[0][1],this.d=s[1][1],this.e=s[0][2],this.f=s[1][2]},t.invert=function(){var t=this,e=t.a*t.d-t.b*t.c;return new g(t.d/e,-t.b/e,-t.c/e,t.a/e,(t.c*t.f-t.d*t.e)/e,(t.b*t.e-t.a*t.f)/e)},t.clone=function(){return new g(this.a,this.b,this.c,this.d,this.e,this.f); -},t.translate=function(t,e){this.add(1,0,0,1,t,e)},t.scale=function(t,e,r,i){null==e&&(e=t),(r||i)&&this.add(1,0,0,1,r,i),this.add(t,0,0,e,0,0),(r||i)&&this.add(1,0,0,1,-r,-i)},t.rotate=function(t,r,i){t=e.rad(t),r=r||0,i=i||0;var n=+W.cos(t).toFixed(9),a=+W.sin(t).toFixed(9);this.add(n,a,-a,n,r,i),this.add(1,0,0,1,-r,-i)},t.x=function(t,e){return t*this.a+e*this.c+this.e},t.y=function(t,e){return t*this.b+e*this.d+this.f},t.get=function(t){return+this[q.fromCharCode(97+t)].toFixed(4)},t.toString=function(){return e.svg?"matrix("+[this.get(0),this.get(1),this.get(2),this.get(3),this.get(4),this.get(5)].join()+")":[this.get(0),this.get(2),this.get(1),this.get(3),0,0].join()},t.toFilter=function(){return"progid:DXImageTransform.Microsoft.Matrix(M11="+this.get(0)+", M12="+this.get(2)+", M21="+this.get(1)+", M22="+this.get(3)+", Dx="+this.get(4)+", Dy="+this.get(5)+", sizingmethod='auto expand')"},t.offset=function(){return[this.e.toFixed(4),this.f.toFixed(4)]},t.split=function(){var t={};t.dx=this.e,t.dy=this.f;var n=[[this.a,this.c],[this.b,this.d]];t.scalex=W.sqrt(r(n[0])),i(n[0]),t.shear=n[0][0]*n[1][0]+n[0][1]*n[1][1],n[1]=[n[1][0]-n[0][0]*t.shear,n[1][1]-n[0][1]*t.shear],t.scaley=W.sqrt(r(n[1])),i(n[1]),t.shear/=t.scaley;var a=-n[0][1],s=n[1][1];return s<0?(t.rotate=e.deg(W.acos(s)),a<0&&(t.rotate=360-t.rotate)):t.rotate=e.deg(W.asin(a)),t.isSimple=!(+t.shear.toFixed(9)||t.scalex.toFixed(9)!=t.scaley.toFixed(9)&&t.rotate),t.isSuperSimple=!+t.shear.toFixed(9)&&t.scalex.toFixed(9)==t.scaley.toFixed(9)&&!t.rotate,t.noRotation=!+t.shear.toFixed(9)&&!t.rotate,t},t.toTransformString=function(t){var e=t||this[I]();return e.isSimple?(e.scalex=+e.scalex.toFixed(4),e.scaley=+e.scaley.toFixed(4),e.rotate=+e.rotate.toFixed(4),(e.dx||e.dy?"t"+[e.dx,e.dy]:R)+(1!=e.scalex||1!=e.scaley?"s"+[e.scalex,e.scaley,0,0]:R)+(e.rotate?"r"+[e.rotate,0,0]:R)):"m"+[this.get(0),this.get(1),this.get(2),this.get(3),this.get(4),this.get(5)]}}(g.prototype);for(var he=function(){this.returnValue=!1},ue=function(){return this.originalEvent.preventDefault()},ce=function(){this.cancelBubble=!0},fe=function(){return this.originalEvent.stopPropagation()},pe=function(t){var e=A.doc.documentElement.scrollTop||A.doc.body.scrollTop,r=A.doc.documentElement.scrollLeft||A.doc.body.scrollLeft;return{x:t.clientX+r,y:t.clientY+e}},de=function(){return A.doc.addEventListener?function(t,e,r,i){var n=function(t){var e=pe(t);return r.call(i,t,e.x,e.y)};if(t.addEventListener(e,n,!1),z&&V[e]){var a=function(e){for(var n=pe(e),a=e,s=0,o=e.targetTouches&&e.targetTouches.length;s<o;s++)if(e.targetTouches[s].target==t){e=e.targetTouches[s],e.originalEvent=a,e.preventDefault=ue,e.stopPropagation=fe;break}return r.call(i,e,n.x,n.y)};t.addEventListener(V[e],a,!1)}return function(){return t.removeEventListener(e,n,!1),z&&V[e]&&t.removeEventListener(V[e],a,!1),!0}}:A.doc.attachEvent?function(t,e,r,i){var n=function(t){t=t||A.win.event;var e=A.doc.documentElement.scrollTop||A.doc.body.scrollTop,n=A.doc.documentElement.scrollLeft||A.doc.body.scrollLeft,a=t.clientX+n,s=t.clientY+e;return t.preventDefault=t.preventDefault||he,t.stopPropagation=t.stopPropagation||ce,r.call(i,t,a,s)};t.attachEvent("on"+e,n);var a=function(){return t.detachEvent("on"+e,n),!0};return a}:void 0}(),ge=[],xe=function(e){for(var r=e.clientX,i=e.clientY,n=A.doc.documentElement.scrollTop||A.doc.body.scrollTop,a=A.doc.documentElement.scrollLeft||A.doc.body.scrollLeft,s,o=ge.length;o--;){if(s=ge[o],z&&e.touches){for(var l=e.touches.length,h;l--;)if(h=e.touches[l],h.identifier==s.el._drag.id){r=h.clientX,i=h.clientY,(e.originalEvent?e.originalEvent:e).preventDefault();break}}else e.preventDefault();var u=s.el.node,c,f=u.nextSibling,p=u.parentNode,d=u.style.display;A.win.opera&&p.removeChild(u),u.style.display="none",c=s.el.paper.getElementByPoint(r,i),u.style.display=d,A.win.opera&&(f?p.insertBefore(u,f):p.appendChild(u)),c&&t("raphael.drag.over."+s.el.id,s.el,c),r+=a,i+=n,t("raphael.drag.move."+s.el.id,s.move_scope||s.el,r-s.el._drag.x,i-s.el._drag.y,r,i,e)}},ve=function(r){e.unmousemove(xe).unmouseup(ve);for(var i=ge.length,n;i--;)n=ge[i],n.el._drag={},t("raphael.drag.end."+n.el.id,n.end_scope||n.start_scope||n.move_scope||n.el,r);ge=[]},ye=e.el={},me=D.length;me--;)!function(t){e[t]=ye[t]=function(r,i){return e.is(r,"function")&&(this.events=this.events||[],this.events.push({name:t,f:r,unbind:de(this.shape||this.node||A.doc,t,r,i||this)})),this},e["un"+t]=ye["un"+t]=function(r){for(var i=this.events||[],n=i.length;n--;)i[n].name!=t||!e.is(r,"undefined")&&i[n].f!=r||(i[n].unbind(),i.splice(n,1),!i.length&&delete this.events);return this}}(D[me]);ye.data=function(r,i){var n=wt[this.id]=wt[this.id]||{};if(0==arguments.length)return n;if(1==arguments.length){if(e.is(r,"object")){for(var a in r)r[T](a)&&this.data(a,r[a]);return this}return t("raphael.data.get."+this.id,this,n[r],r),n[r]}return n[r]=i,t("raphael.data.set."+this.id,this,i,r),this},ye.removeData=function(t){return null==t?wt[this.id]={}:wt[this.id]&&delete wt[this.id][t],this},ye.getData=function(){return r(wt[this.id]||{})},ye.hover=function(t,e,r,i){return this.mouseover(t,r).mouseout(e,i||r)},ye.unhover=function(t,e){return this.unmouseover(t).unmouseout(e)};var be=[];ye.drag=function(r,i,n,a,s,o){function l(l){(l.originalEvent||l).preventDefault();var h=l.clientX,u=l.clientY,c=A.doc.documentElement.scrollTop||A.doc.body.scrollTop,f=A.doc.documentElement.scrollLeft||A.doc.body.scrollLeft;if(this._drag.id=l.identifier,z&&l.touches)for(var p=l.touches.length,d;p--;)if(d=l.touches[p],this._drag.id=d.identifier,d.identifier==this._drag.id){h=d.clientX,u=d.clientY;break}this._drag.x=h+f,this._drag.y=u+c,!ge.length&&e.mousemove(xe).mouseup(ve),ge.push({el:this,move_scope:a,start_scope:s,end_scope:o}),i&&t.on("raphael.drag.start."+this.id,i),r&&t.on("raphael.drag.move."+this.id,r),n&&t.on("raphael.drag.end."+this.id,n),t("raphael.drag.start."+this.id,s||a||this,l.clientX+f,l.clientY+c,l)}return this._drag={},be.push({el:this,start:l}),this.mousedown(l),this},ye.onDragOver=function(e){e?t.on("raphael.drag.over."+this.id,e):t.unbind("raphael.drag.over."+this.id)},ye.undrag=function(){for(var r=be.length;r--;)be[r].el==this&&(this.unmousedown(be[r].start),be.splice(r,1),t.unbind("raphael.drag.*."+this.id));!be.length&&e.unmousemove(xe).unmouseup(ve),ge=[]},E.circle=function(t,r,i){var n=e._engine.circle(this,t||0,r||0,i||0);return this.__set__&&this.__set__.push(n),n},E.rect=function(t,r,i,n,a){var s=e._engine.rect(this,t||0,r||0,i||0,n||0,a||0);return this.__set__&&this.__set__.push(s),s},E.ellipse=function(t,r,i,n){var a=e._engine.ellipse(this,t||0,r||0,i||0,n||0);return this.__set__&&this.__set__.push(a),a},E.path=function(t){t&&!e.is(t,Z)&&!e.is(t[0],Q)&&(t+=R);var r=e._engine.path(e.format[F](e,arguments),this);return this.__set__&&this.__set__.push(r),r},E.image=function(t,r,i,n,a){var s=e._engine.image(this,t||"about:blank",r||0,i||0,n||0,a||0);return this.__set__&&this.__set__.push(s),s},E.text=function(t,r,i){var n=e._engine.text(this,t||0,r||0,q(i));return this.__set__&&this.__set__.push(n),n},E.set=function(t){!e.is(t,"array")&&(t=Array.prototype.splice.call(arguments,0,arguments.length));var r=new Fe(t);return this.__set__&&this.__set__.push(r),r.paper=this,r.type="set",r},E.setStart=function(t){this.__set__=t||this.set()},E.setFinish=function(t){var e=this.__set__;return delete this.__set__,e},E.getSize=function(){var t=this.canvas.parentNode;return{width:t.offsetWidth,height:t.offsetHeight}},E.setSize=function(t,r){return e._engine.setSize.call(this,t,r)},E.setViewBox=function(t,r,i,n,a){return e._engine.setViewBox.call(this,t,r,i,n,a)},E.top=E.bottom=null,E.raphael=e;var _e=function(t){var e=t.getBoundingClientRect(),r=t.ownerDocument,i=r.body,n=r.documentElement,a=n.clientTop||i.clientTop||0,s=n.clientLeft||i.clientLeft||0,o=e.top+(A.win.pageYOffset||n.scrollTop||i.scrollTop)-a,l=e.left+(A.win.pageXOffset||n.scrollLeft||i.scrollLeft)-s;return{y:o,x:l}};E.getElementByPoint=function(t,e){var r=this,i=r.canvas,n=A.doc.elementFromPoint(t,e);if(A.win.opera&&"svg"==n.tagName){var a=_e(i),s=i.createSVGRect();s.x=t-a.x,s.y=e-a.y,s.width=s.height=1;var o=i.getIntersectionList(s,null);o.length&&(n=o[o.length-1])}if(!n)return null;for(;n.parentNode&&n!=i.parentNode&&!n.raphael;)n=n.parentNode;return n==r.canvas.parentNode&&(n=i),n=n&&n.raphael?r.getById(n.raphaelid):null},E.getElementsByBBox=function(t){var r=this.set();return this.forEach(function(i){e.isBBoxIntersect(i.getBBox(),t)&&r.push(i)}),r},E.getById=function(t){for(var e=this.bottom;e;){if(e.id==t)return e;e=e.next}return null},E.forEach=function(t,e){for(var r=this.bottom;r;){if(t.call(e,r)===!1)return this;r=r.next}return this},E.getElementsByPoint=function(t,e){var r=this.set();return this.forEach(function(i){i.isPointInside(t,e)&&r.push(i)}),r},ye.isPointInside=function(t,r){var i=this.realPath=Mt[this.type](this);return this.attr("transform")&&this.attr("transform").length&&(i=e.transformPath(i,this.attr("transform"))),e.isPointInsidePath(i,t,r)},ye.getBBox=function(t){if(this.removed)return{};var e=this._;return t?(!e.dirty&&e.bboxwt||(this.realPath=Mt[this.type](this),e.bboxwt=Ot(this.realPath),e.bboxwt.toString=v,e.dirty=0),e.bboxwt):((e.dirty||e.dirtyT||!e.bbox)&&(!e.dirty&&this.realPath||(e.bboxwt=0,this.realPath=Mt[this.type](this)),e.bbox=Ot(Nt(this.realPath,this.matrix)),e.bbox.toString=v,e.dirty=e.dirtyT=0),e.bbox)},ye.clone=function(){if(this.removed)return null;var t=this.paper[this.type]().attr(this.attr());return this.__set__&&this.__set__.push(t),t},ye.glow=function(t){if("text"==this.type)return null;t=t||{};var e={width:(t.width||10)+(+this.attr("stroke-width")||1),fill:t.fill||!1,opacity:null==t.opacity?.5:t.opacity,offsetx:t.offsetx||0,offsety:t.offsety||0,color:t.color||"#000"},r=e.width/2,i=this.paper,n=i.set(),a=this.realPath||Mt[this.type](this);a=this.matrix?Nt(a,this.matrix):a;for(var s=1;s<r+1;s++)n.push(i.path(a).attr({stroke:e.color,fill:e.fill?e.color:"none","stroke-linejoin":"round","stroke-linecap":"round","stroke-width":+(e.width/r*s).toFixed(3),opacity:+(e.opacity/r).toFixed(3)}));return n.insertBefore(this).translate(e.offsetx,e.offsety)};var we={},ke=function(t,r,i,n,a,s,o,u,c){return null==c?l(t,r,i,n,a,s,o,u):e.findDotsAtSegment(t,r,i,n,a,s,o,u,h(t,r,i,n,a,s,o,u,c))},Be=function(t,r){return function(i,n,a){i=Qt(i);for(var s,o,l,h,u="",c={},f,p=0,d=0,g=i.length;d<g;d++){if(l=i[d],"M"==l[0])s=+l[1],o=+l[2];else{if(h=ke(s,o,l[1],l[2],l[3],l[4],l[5],l[6]),p+h>n){if(r&&!c.start){if(f=ke(s,o,l[1],l[2],l[3],l[4],l[5],l[6],n-p),u+=["C"+f.start.x,f.start.y,f.m.x,f.m.y,f.x,f.y],a)return u;c.start=u,u=["M"+f.x,f.y+"C"+f.n.x,f.n.y,f.end.x,f.end.y,l[5],l[6]].join(),p+=h,s=+l[5],o=+l[6];continue}if(!t&&!r)return f=ke(s,o,l[1],l[2],l[3],l[4],l[5],l[6],n-p),{x:f.x,y:f.y,alpha:f.alpha}}p+=h,s=+l[5],o=+l[6]}u+=l.shift()+l}return c.end=u,f=t?p:r?c:e.findDotsAtSegment(s,o,l[0],l[1],l[2],l[3],l[4],l[5],1),f.alpha&&(f={x:f.x,y:f.y,alpha:f.alpha}),f}},Ce=Be(1),Se=Be(),Te=Be(0,1);e.getTotalLength=Ce,e.getPointAtLength=Se,e.getSubpath=function(t,e,r){if(this.getTotalLength(t)-r<1e-6)return Te(t,e).end;var i=Te(t,r,1);return e?Te(i,e).end:i},ye.getTotalLength=function(){var t=this.getPath();if(t)return this.node.getTotalLength?this.node.getTotalLength():Ce(t)},ye.getPointAtLength=function(t){var e=this.getPath();if(e)return Se(e,t)},ye.getPath=function(){var t,r=e._getPath[this.type];if("text"!=this.type&&"set"!=this.type)return r&&(t=r(this)),t},ye.getSubpath=function(t,r){var i=this.getPath();if(i)return e.getSubpath(i,t,r)};var Ae=e.easing_formulas={linear:function(t){return t},"<":function(t){return X(t,1.7)},">":function(t){return X(t,.48)},"<>":function(t){var e=.48-t/1.04,r=W.sqrt(.1734+e*e),i=r-e,n=X(H(i),1/3)*(i<0?-1:1),a=-r-e,s=X(H(a),1/3)*(a<0?-1:1),o=n+s+.5;return 3*(1-o)*o*o+o*o*o},backIn:function(t){var e=1.70158;return t*t*((e+1)*t-e)},backOut:function(t){t-=1;var e=1.70158;return t*t*((e+1)*t+e)+1},elastic:function(t){return t==!!t?t:X(2,-10*t)*W.sin((t-.075)*(2*U)/.3)+1},bounce:function(t){var e=7.5625,r=2.75,i;return t<1/r?i=e*t*t:t<2/r?(t-=1.5/r,i=e*t*t+.75):t<2.5/r?(t-=2.25/r,i=e*t*t+.9375):(t-=2.625/r,i=e*t*t+.984375),i}};Ae.easeIn=Ae["ease-in"]=Ae["<"],Ae.easeOut=Ae["ease-out"]=Ae[">"],Ae.easeInOut=Ae["ease-in-out"]=Ae["<>"],Ae["back-in"]=Ae.backIn,Ae["back-out"]=Ae.backOut;var Me=[],Ne=window.requestAnimationFrame||window.webkitRequestAnimationFrame||window.mozRequestAnimationFrame||window.oRequestAnimationFrame||window.msRequestAnimationFrame||function(t){setTimeout(t,16)},Ee=function(){for(var r=+new Date,i=0;i<Me.length;i++){var n=Me[i];if(!n.el.removed&&!n.paused){var a=r-n.start,s=n.ms,o=n.easing,l=n.from,h=n.diff,u=n.to,c=n.t,f=n.el,p={},d,g={},x;if(n.initstatus?(a=(n.initstatus*n.anim.top-n.prev)/(n.percent-n.prev)*s,n.status=n.initstatus,delete n.initstatus,n.stop&&Me.splice(i--,1)):n.status=(n.prev+(n.percent-n.prev)*(a/s))/n.anim.top,!(a<0))if(a<s){var v=o(a/s);for(var y in l)if(l[T](y)){switch(pt[y]){case $:d=+l[y]+v*s*h[y];break;case"colour":d="rgb("+[Le(ot(l[y].r+v*s*h[y].r)),Le(ot(l[y].g+v*s*h[y].g)),Le(ot(l[y].b+v*s*h[y].b))].join(",")+")";break;case"path":d=[];for(var m=0,_=l[y].length;m<_;m++){d[m]=[l[y][m][0]];for(var w=1,k=l[y][m].length;w<k;w++)d[m][w]=+l[y][m][w]+v*s*h[y][m][w];d[m]=d[m].join(j)}d=d.join(j);break;case"transform":if(h[y].real)for(d=[],m=0,_=l[y].length;m<_;m++)for(d[m]=[l[y][m][0]],w=1,k=l[y][m].length;w<k;w++)d[m][w]=l[y][m][w]+v*s*h[y][m][w];else{var B=function(t){return+l[y][t]+v*s*h[y][t]};d=[["m",B(0),B(1),B(2),B(3),B(4),B(5)]]}break;case"csv":if("clip-rect"==y)for(d=[],m=4;m--;)d[m]=+l[y][m]+v*s*h[y][m];break;default:var C=[][P](l[y]);for(d=[],m=f.paper.customAttributes[y].length;m--;)d[m]=+C[m]+v*s*h[y][m]}p[y]=d}f.attr(p),function(e,r,i){setTimeout(function(){t("raphael.anim.frame."+e,r,i)})}(f.id,f,n.anim)}else{if(function(r,i,n){setTimeout(function(){t("raphael.anim.frame."+i.id,i,n),t("raphael.anim.finish."+i.id,i,n),e.is(r,"function")&&r.call(i)})}(n.callback,f,n.anim),f.attr(u),Me.splice(i--,1),n.repeat>1&&!n.next){for(x in u)u[T](x)&&(g[x]=n.totalOrigin[x]);n.el.attr(g),b(n.anim,n.el,n.anim.percents[0],null,n.totalOrigin,n.repeat-1)}n.next&&!n.stop&&b(n.anim,n.el,n.next,null,n.totalOrigin,n.repeat)}}}Me.length&&Ne(Ee)},Le=function(t){return t>255?255:t<0?0:t};ye.animateWith=function(t,r,i,n,a,s){var o=this;if(o.removed)return s&&s.call(o),o;var l=i instanceof m?i:e.animation(i,n,a,s),h,u;b(l,o,l.percents[0],null,o.attr());for(var c=0,f=Me.length;c<f;c++)if(Me[c].anim==r&&Me[c].el==t){Me[f-1].start=Me[c].start;break}return o},ye.onAnimation=function(e){return e?t.on("raphael.anim.frame."+this.id,e):t.unbind("raphael.anim.frame."+this.id),this},m.prototype.delay=function(t){var e=new m(this.anim,this.ms);return e.times=this.times,e.del=+t||0,e},m.prototype.repeat=function(t){var e=new m(this.anim,this.ms);return e.del=this.del,e.times=W.floor(Y(t,0))||1,e},e.animation=function(t,r,i,n){if(t instanceof m)return t;!e.is(i,"function")&&i||(n=n||i||null,i=null),t=Object(t),r=+r||0;var a={},s,o;for(o in t)t[T](o)&&ht(o)!=o&&ht(o)+"%"!=o&&(s=!0,a[o]=t[o]);if(s)return i&&(a.easing=i),n&&(a.callback=n),new m({100:a},r);if(n){var l=0;for(var h in t){var u=ut(h);t[T](h)&&u>l&&(l=u)}l+="%",!t[l].callback&&(t[l].callback=n)}return new m(t,r)},ye.animate=function(t,r,i,n){var a=this;if(a.removed)return n&&n.call(a),a;var s=t instanceof m?t:e.animation(t,r,i,n);return b(s,a,s.percents[0],null,a.attr()),a},ye.setTime=function(t,e){return t&&null!=e&&this.status(t,G(e,t.ms)/t.ms),this},ye.status=function(t,e){var r=[],i=0,n,a;if(null!=e)return b(t,this,-1,G(e,1)),this;for(n=Me.length;i<n;i++)if(a=Me[i],a.el.id==this.id&&(!t||a.anim==t)){if(t)return a.status;r.push({anim:a.anim,status:a.status})}return t?0:r},ye.pause=function(e){for(var r=0;r<Me.length;r++)Me[r].el.id!=this.id||e&&Me[r].anim!=e||t("raphael.anim.pause."+this.id,this,Me[r].anim)!==!1&&(Me[r].paused=!0);return this},ye.resume=function(e){for(var r=0;r<Me.length;r++)if(Me[r].el.id==this.id&&(!e||Me[r].anim==e)){var i=Me[r];t("raphael.anim.resume."+this.id,this,i.anim)!==!1&&(delete i.paused,this.status(i.anim,i.status))}return this},ye.stop=function(e){for(var r=0;r<Me.length;r++)Me[r].el.id!=this.id||e&&Me[r].anim!=e||t("raphael.anim.stop."+this.id,this,Me[r].anim)!==!1&&Me.splice(r--,1);return this},t.on("raphael.remove",_),t.on("raphael.clear",_),ye.toString=function(){return"Raphaël’s object"};var Fe=function(t){if(this.items=[],this.length=0,this.type="set",t)for(var e=0,r=t.length;e<r;e++)!t[e]||t[e].constructor!=ye.constructor&&t[e].constructor!=Fe||(this[this.items.length]=this.items[this.items.length]=t[e],this.length++)},Pe=Fe.prototype;Pe.push=function(){for(var t,e,r=0,i=arguments.length;r<i;r++)t=arguments[r],!t||t.constructor!=ye.constructor&&t.constructor!=Fe||(e=this.items.length,this[e]=this.items[e]=t,this.length++);return this},Pe.pop=function(){return this.length&&delete this[this.length--],this.items.pop()},Pe.forEach=function(t,e){for(var r=0,i=this.items.length;r<i;r++)if(t.call(e,this.items[r],r)===!1)return this;return this};for(var ze in ye)ye[T](ze)&&(Pe[ze]=function(t){return function(){var e=arguments;return this.forEach(function(r){r[t][F](r,e)})}}(ze));return Pe.attr=function(t,r){if(t&&e.is(t,Q)&&e.is(t[0],"object"))for(var i=0,n=t.length;i<n;i++)this.items[i].attr(t[i]);else for(var a=0,s=this.items.length;a<s;a++)this.items[a].attr(t,r);return this},Pe.clear=function(){for(;this.length;)this.pop()},Pe.splice=function(t,e,r){t=t<0?Y(this.length+t,0):t,e=Y(0,G(this.length-t,e));var i=[],n=[],a=[],s;for(s=2;s<arguments.length;s++)a.push(arguments[s]);for(s=0;s<e;s++)n.push(this[t+s]);for(;s<this.length-t;s++)i.push(this[t+s]);var o=a.length;for(s=0;s<o+i.length;s++)this.items[t+s]=this[t+s]=s<o?a[s]:i[s-o];for(s=this.items.length=this.length-=e-o;this[s];)delete this[s++];return new Fe(n)},Pe.exclude=function(t){for(var e=0,r=this.length;e<r;e++)if(this[e]==t)return this.splice(e,1),!0},Pe.animate=function(t,r,i,n){(e.is(i,"function")||!i)&&(n=i||null);var a=this.items.length,s=a,o,l=this,h;if(!a)return this;n&&(h=function(){!--a&&n.call(l)}),i=e.is(i,Z)?i:h;var u=e.animation(t,r,i,h);for(o=this.items[--s].animate(u);s--;)this.items[s]&&!this.items[s].removed&&this.items[s].animateWith(o,u,u),this.items[s]&&!this.items[s].removed||a--;return this},Pe.insertAfter=function(t){for(var e=this.items.length;e--;)this.items[e].insertAfter(t);return this},Pe.getBBox=function(){for(var t=[],e=[],r=[],i=[],n=this.items.length;n--;)if(!this.items[n].removed){var a=this.items[n].getBBox();t.push(a.x),e.push(a.y),r.push(a.x+a.width),i.push(a.y+a.height)}return t=G[F](0,t),e=G[F](0,e),r=Y[F](0,r),i=Y[F](0,i),{x:t,y:e,x2:r,y2:i,width:r-t,height:i-e}},Pe.clone=function(t){t=this.paper.set();for(var e=0,r=this.items.length;e<r;e++)t.push(this.items[e].clone());return t},Pe.toString=function(){return"Raphaël‘s set"},Pe.glow=function(t){var e=this.paper.set();return this.forEach(function(r,i){var n=r.glow(t);null!=n&&n.forEach(function(t,r){e.push(t)})}),e},Pe.isPointInside=function(t,e){var r=!1;return this.forEach(function(i){if(i.isPointInside(t,e))return r=!0,!1}),r},e.registerFont=function(t){if(!t.face)return t;this.fonts=this.fonts||{};var e={w:t.w,face:{},glyphs:{}},r=t.face["font-family"];for(var i in t.face)t.face[T](i)&&(e.face[i]=t.face[i]);if(this.fonts[r]?this.fonts[r].push(e):this.fonts[r]=[e],!t.svg){e.face["units-per-em"]=ut(t.face["units-per-em"],10);for(var n in t.glyphs)if(t.glyphs[T](n)){var a=t.glyphs[n];if(e.glyphs[n]={w:a.w,k:{},d:a.d&&"M"+a.d.replace(/[mlcxtrv]/g,function(t){return{l:"L",c:"C",x:"z",t:"m",r:"l",v:"c"}[t]||"M"})+"z"},a.k)for(var s in a.k)a[T](s)&&(e.glyphs[n].k[s]=a.k[s])}}return t},E.getFont=function(t,r,i,n){if(n=n||"normal",i=i||"normal",r=+r||{normal:400,bold:700,lighter:300,bolder:800}[r]||400,e.fonts){var a=e.fonts[t];if(!a){var s=new RegExp("(^|\\s)"+t.replace(/[^\w\d\s+!~.:_-]/g,R)+"(\\s|$)","i");for(var o in e.fonts)if(e.fonts[T](o)&&s.test(o)){a=e.fonts[o];break}}var l;if(a)for(var h=0,u=a.length;h<u&&(l=a[h],l.face["font-weight"]!=r||l.face["font-style"]!=i&&l.face["font-style"]||l.face["font-stretch"]!=n);h++);return l}},E.print=function(t,r,i,n,a,s,o,l){s=s||"middle",o=Y(G(o||0,1),-1),l=Y(G(l||1,3),1);var h=q(i)[I](R),u=0,c=0,f=R,p;if(e.is(n,"string")&&(n=this.getFont(n)),n){p=(a||16)/n.face["units-per-em"];for(var d=n.face.bbox[I](k),g=+d[0],x=d[3]-d[1],v=0,y=+d[1]+("baseline"==s?x+ +n.face.descent:x/2),m=0,b=h.length;m<b;m++){if("\n"==h[m])u=0,w=0,c=0,v+=x*l;else{var _=c&&n.glyphs[h[m-1]]||{},w=n.glyphs[h[m]];u+=c?(_.w||n.w)+(_.k&&_.k[h[m]]||0)+n.w*o:0,c=1}w&&w.d&&(f+=e.transformPath(w.d,["t",u*p,v*p,"s",p,p,g,y,"t",(t-g)/p,(r-y)/p]))}}return this.path(f).attr({fill:"#000",stroke:"none"})},E.add=function(t){if(e.is(t,"array"))for(var r=this.set(),i=0,n=t.length,a;i<n;i++)a=t[i]||{},B[T](a.type)&&r.push(this[a.type]().attr(a));return r},e.format=function(t,r){var i=e.is(r,Q)?[0][P](r):arguments;return t&&e.is(t,Z)&&i.length-1&&(t=t.replace(C,function(t,e){return null==i[++e]?R:i[e]})),t||R},e.fullfill=function(){var t=/\{([^\}]+)\}/g,e=/(?:(?:^|\.)(.+?)(?=\[|\.|$|\()|\[('|")(.+?)\2\])(\(\))?/g,r=function(t,r,i){var n=i;return r.replace(e,function(t,e,r,i,a){e=e||i,n&&(e in n&&(n=n[e]),"function"==typeof n&&a&&(n=n()))}),n=(null==n||n==i?t:n)+""};return function(e,i){return String(e).replace(t,function(t,e){return r(t,e,i)})}}(),e.ninja=function(){if(M.was)A.win.Raphael=M.is;else{window.Raphael=void 0;try{delete window.Raphael}catch(t){}}return e},e.st=Pe,t.on("raphael.DOMload",function(){w=!0}),function(t,r,i){function n(){/in/.test(t.readyState)?setTimeout(n,9):e.eve("raphael.DOMload")}null==t.readyState&&t.addEventListener&&(t.addEventListener(r,i=function(){t.removeEventListener(r,i,!1),t.readyState="complete"},!1),t.readyState="loading"),n()}(document,"DOMContentLoaded"),e}.apply(e,i),!(void 0!==n&&(t.exports=n))},function(e,r){e.exports=t},function(t,e,r){var i,n;i=[r(1)],n=function(t){if(!t||t.svg){var e="hasOwnProperty",r=String,i=parseFloat,n=parseInt,a=Math,s=a.max,o=a.abs,l=a.pow,h=/[, ]+/,u=t.eve,c="",f=" ",p="http://www.w3.org/1999/xlink",d={block:"M5,0 0,2.5 5,5z",classic:"M5,0 0,2.5 5,5 3.5,3 3.5,2z",diamond:"M2.5,0 5,2.5 2.5,5 0,2.5z",open:"M6,1 1,3.5 6,6",oval:"M2.5,0A2.5,2.5,0,0,1,2.5,5 2.5,2.5,0,0,1,2.5,0z"},g={};t.toString=function(){return"Your browser supports SVG.\nYou are running Raphaël "+this.version};var x=function(i,n){if(n){"string"==typeof i&&(i=x(i));for(var a in n)n[e](a)&&("xlink:"==a.substring(0,6)?i.setAttributeNS(p,a.substring(6),r(n[a])):i.setAttribute(a,r(n[a])))}else i=t._g.doc.createElementNS("http://www.w3.org/2000/svg",i),i.style&&(i.style.webkitTapHighlightColor="rgba(0,0,0,0)");return i},v=function(e,n){var h="linear",u=e.id+n,f=.5,p=.5,d=e.node,g=e.paper,v=d.style,y=t._g.doc.getElementById(u);if(!y){if(n=r(n).replace(t._radial_gradient,function(t,e,r){if(h="radial",e&&r){f=i(e),p=i(r);var n=2*(p>.5)-1;l(f-.5,2)+l(p-.5,2)>.25&&(p=a.sqrt(.25-l(f-.5,2))*n+.5)&&.5!=p&&(p=p.toFixed(5)-1e-5*n)}return c}),n=n.split(/\s*\-\s*/),"linear"==h){var b=n.shift();if(b=-i(b),isNaN(b))return null;var _=[0,0,a.cos(t.rad(b)),a.sin(t.rad(b))],w=1/(s(o(_[2]),o(_[3]))||1);_[2]*=w,_[3]*=w,_[2]<0&&(_[0]=-_[2],_[2]=0),_[3]<0&&(_[1]=-_[3],_[3]=0)}var k=t._parseDots(n);if(!k)return null;if(u=u.replace(/[\(\)\s,\xb0#]/g,"_"),e.gradient&&u!=e.gradient.id&&(g.defs.removeChild(e.gradient),delete e.gradient),!e.gradient){y=x(h+"Gradient",{id:u}),e.gradient=y,x(y,"radial"==h?{fx:f,fy:p}:{x1:_[0],y1:_[1],x2:_[2],y2:_[3],gradientTransform:e.matrix.invert()}),g.defs.appendChild(y);for(var B=0,C=k.length;B<C;B++)y.appendChild(x("stop",{offset:k[B].offset?k[B].offset:B?"100%":"0%","stop-color":k[B].color||"#fff","stop-opacity":isFinite(k[B].opacity)?k[B].opacity:1}))}}return x(d,{fill:m(u),opacity:1,"fill-opacity":1}),v.fill=c,v.opacity=1,v.fillOpacity=1,1},y=function(){var t=document.documentMode;return t&&(9===t||10===t)},m=function(t){if(y())return"url('#"+t+"')";var e=document.location,r=e.protocol+"//"+e.host+e.pathname+e.search;return"url('"+r+"#"+t+"')"},b=function(t){var e=t.getBBox(1);x(t.pattern,{patternTransform:t.matrix.invert()+" translate("+e.x+","+e.y+")"})},_=function(i,n,a){if("path"==i.type){for(var s=r(n).toLowerCase().split("-"),o=i.paper,l=a?"end":"start",h=i.node,u=i.attrs,f=u["stroke-width"],p=s.length,v="classic",y,m,b,_,w,k=3,B=3,C=5;p--;)switch(s[p]){case"block":case"classic":case"oval":case"diamond":case"open":case"none":v=s[p];break;case"wide":B=5;break;case"narrow":B=2;break;case"long":k=5;break;case"short":k=2}if("open"==v?(k+=2,B+=2,C+=2,b=1,_=a?4:1,w={fill:"none",stroke:u.stroke}):(_=b=k/2,w={fill:u.stroke,stroke:"none"}),i._.arrows?a?(i._.arrows.endPath&&g[i._.arrows.endPath]--,i._.arrows.endMarker&&g[i._.arrows.endMarker]--):(i._.arrows.startPath&&g[i._.arrows.startPath]--,i._.arrows.startMarker&&g[i._.arrows.startMarker]--):i._.arrows={},"none"!=v){var S="raphael-marker-"+v,T="raphael-marker-"+l+v+k+B+"-obj"+i.id;t._g.doc.getElementById(S)?g[S]++:(o.defs.appendChild(x(x("path"),{"stroke-linecap":"round",d:d[v],id:S})),g[S]=1);var A=t._g.doc.getElementById(T),M;A?(g[T]++,M=A.getElementsByTagName("use")[0]):(A=x(x("marker"),{id:T,markerHeight:B,markerWidth:k,orient:"auto",refX:_,refY:B/2}),M=x(x("use"),{"xlink:href":"#"+S,transform:(a?"rotate(180 "+k/2+" "+B/2+") ":c)+"scale("+k/C+","+B/C+")","stroke-width":(1/((k/C+B/C)/2)).toFixed(4)}),A.appendChild(M),o.defs.appendChild(A),g[T]=1),x(M,w);var N=b*("diamond"!=v&&"oval"!=v);a?(y=i._.arrows.startdx*f||0,m=t.getTotalLength(u.path)-N*f):(y=N*f,m=t.getTotalLength(u.path)-(i._.arrows.enddx*f||0)),w={},w["marker-"+l]="url(#"+T+")",(m||y)&&(w.d=t.getSubpath(u.path,y,m)),x(h,w),i._.arrows[l+"Path"]=S,i._.arrows[l+"Marker"]=T,i._.arrows[l+"dx"]=N,i._.arrows[l+"Type"]=v,i._.arrows[l+"String"]=n}else a?(y=i._.arrows.startdx*f||0,m=t.getTotalLength(u.path)-y):(y=0,m=t.getTotalLength(u.path)-(i._.arrows.enddx*f||0)),i._.arrows[l+"Path"]&&x(h,{d:t.getSubpath(u.path,y,m)}),delete i._.arrows[l+"Path"],delete i._.arrows[l+"Marker"],delete i._.arrows[l+"dx"],delete i._.arrows[l+"Type"],delete i._.arrows[l+"String"];for(w in g)if(g[e](w)&&!g[w]){var E=t._g.doc.getElementById(w);E&&E.parentNode.removeChild(E)}}},w={"-":[3,1],".":[1,1],"-.":[3,1,1,1],"-..":[3,1,1,1,1,1],". ":[1,3],"- ":[4,3],"--":[8,3],"- .":[4,3,1,3],"--.":[8,3,1,3],"--..":[8,3,1,3,1,3]},k=function(t,e,i){if(e=w[r(e).toLowerCase()]){for(var n=t.attrs["stroke-width"]||"1",a={round:n,square:n,butt:0}[t.attrs["stroke-linecap"]||i["stroke-linecap"]]||0,s=[],o=e.length;o--;)s[o]=e[o]*n+(o%2?1:-1)*a;x(t.node,{"stroke-dasharray":s.join(",")})}else x(t.node,{"stroke-dasharray":"none"})},B=function(i,a){var l=i.node,u=i.attrs,f=l.style.visibility;l.style.visibility="hidden";for(var d in a)if(a[e](d)){if(!t._availableAttrs[e](d))continue;var g=a[d];switch(u[d]=g,d){case"blur":i.blur(g);break;case"title":var y=l.getElementsByTagName("title");if(y.length&&(y=y[0]))y.firstChild.nodeValue=g;else{y=x("title");var m=t._g.doc.createTextNode(g);y.appendChild(m),l.appendChild(y)}break;case"href":case"target":var w=l.parentNode;if("a"!=w.tagName.toLowerCase()){var B=x("a");w.insertBefore(B,l),B.appendChild(l),w=B}"target"==d?w.setAttributeNS(p,"show","blank"==g?"new":g):w.setAttributeNS(p,d,g);break;case"cursor":l.style.cursor=g;break;case"transform":i.transform(g);break;case"arrow-start":_(i,g);break;case"arrow-end":_(i,g,1);break;case"clip-rect":var C=r(g).split(h);if(4==C.length){i.clip&&i.clip.parentNode.parentNode.removeChild(i.clip.parentNode);var T=x("clipPath"),A=x("rect");T.id=t.createUUID(),x(A,{x:C[0],y:C[1],width:C[2],height:C[3]}),T.appendChild(A),i.paper.defs.appendChild(T),x(l,{"clip-path":"url(#"+T.id+")"}),i.clip=A}if(!g){var M=l.getAttribute("clip-path");if(M){var N=t._g.doc.getElementById(M.replace(/(^url\(#|\)$)/g,c));N&&N.parentNode.removeChild(N),x(l,{"clip-path":c}),delete i.clip}}break;case"path":"path"==i.type&&(x(l,{d:g?u.path=t._pathToAbsolute(g):"M0,0"}),i._.dirty=1,i._.arrows&&("startString"in i._.arrows&&_(i,i._.arrows.startString),"endString"in i._.arrows&&_(i,i._.arrows.endString,1)));break;case"width":if(l.setAttribute(d,g),i._.dirty=1,!u.fx)break;d="x",g=u.x;case"x":u.fx&&(g=-u.x-(u.width||0));case"rx":if("rx"==d&&"rect"==i.type)break;case"cx":l.setAttribute(d,g),i.pattern&&b(i),i._.dirty=1;break;case"height":if(l.setAttribute(d,g),i._.dirty=1,!u.fy)break;d="y",g=u.y;case"y":u.fy&&(g=-u.y-(u.height||0));case"ry":if("ry"==d&&"rect"==i.type)break;case"cy":l.setAttribute(d,g),i.pattern&&b(i),i._.dirty=1;break;case"r":"rect"==i.type?x(l,{rx:g,ry:g}):l.setAttribute(d,g),i._.dirty=1;break;case"src":"image"==i.type&&l.setAttributeNS(p,"href",g);break;case"stroke-width":1==i._.sx&&1==i._.sy||(g/=s(o(i._.sx),o(i._.sy))||1),l.setAttribute(d,g),u["stroke-dasharray"]&&k(i,u["stroke-dasharray"],a),i._.arrows&&("startString"in i._.arrows&&_(i,i._.arrows.startString),"endString"in i._.arrows&&_(i,i._.arrows.endString,1));break;case"stroke-dasharray":k(i,g,a);break;case"fill":var E=r(g).match(t._ISURL);if(E){T=x("pattern");var L=x("image");T.id=t.createUUID(),x(T,{x:0,y:0,patternUnits:"userSpaceOnUse",height:1,width:1}),x(L,{x:0,y:0,"xlink:href":E[1]}),T.appendChild(L),function(e){t._preload(E[1],function(){var t=this.offsetWidth,r=this.offsetHeight;x(e,{width:t,height:r}),x(L,{width:t,height:r})})}(T),i.paper.defs.appendChild(T),x(l,{fill:"url(#"+T.id+")"}),i.pattern=T,i.pattern&&b(i);break}var F=t.getRGB(g);if(F.error){if(("circle"==i.type||"ellipse"==i.type||"r"!=r(g).charAt())&&v(i,g)){if("opacity"in u||"fill-opacity"in u){var P=t._g.doc.getElementById(l.getAttribute("fill").replace(/^url\(#|\)$/g,c));if(P){var z=P.getElementsByTagName("stop");x(z[z.length-1],{"stop-opacity":("opacity"in u?u.opacity:1)*("fill-opacity"in u?u["fill-opacity"]:1)})}}u.gradient=g,u.fill="none";break}}else delete a.gradient,delete u.gradient,!t.is(u.opacity,"undefined")&&t.is(a.opacity,"undefined")&&x(l,{opacity:u.opacity}),!t.is(u["fill-opacity"],"undefined")&&t.is(a["fill-opacity"],"undefined")&&x(l,{"fill-opacity":u["fill-opacity"]});F[e]("opacity")&&x(l,{"fill-opacity":F.opacity>1?F.opacity/100:F.opacity});case"stroke":F=t.getRGB(g),l.setAttribute(d,F.hex),"stroke"==d&&F[e]("opacity")&&x(l,{"stroke-opacity":F.opacity>1?F.opacity/100:F.opacity}),"stroke"==d&&i._.arrows&&("startString"in i._.arrows&&_(i,i._.arrows.startString),"endString"in i._.arrows&&_(i,i._.arrows.endString,1));break;case"gradient":("circle"==i.type||"ellipse"==i.type||"r"!=r(g).charAt())&&v(i,g);break;case"opacity":u.gradient&&!u[e]("stroke-opacity")&&x(l,{"stroke-opacity":g>1?g/100:g});case"fill-opacity":if(u.gradient){P=t._g.doc.getElementById(l.getAttribute("fill").replace(/^url\(#|\)$/g,c)),P&&(z=P.getElementsByTagName("stop"),x(z[z.length-1],{"stop-opacity":g}));break}default:"font-size"==d&&(g=n(g,10)+"px");var R=d.replace(/(\-.)/g,function(t){return t.substring(1).toUpperCase()});l.style[R]=g,i._.dirty=1,l.setAttribute(d,g)}}S(i,a),l.style.visibility=f},C=1.2,S=function(i,a){if("text"==i.type&&(a[e]("text")||a[e]("font")||a[e]("font-size")||a[e]("x")||a[e]("y"))){var s=i.attrs,o=i.node,l=o.firstChild?n(t._g.doc.defaultView.getComputedStyle(o.firstChild,c).getPropertyValue("font-size"),10):10;if(a[e]("text")){for(s.text=a.text;o.firstChild;)o.removeChild(o.firstChild);for(var h=r(a.text).split("\n"),u=[],f,p=0,d=h.length;p<d;p++)f=x("tspan"),p&&x(f,{dy:l*C,x:s.x}),f.appendChild(t._g.doc.createTextNode(h[p])),o.appendChild(f),u[p]=f}else for(u=o.getElementsByTagName("tspan"),p=0,d=u.length;p<d;p++)p?x(u[p],{dy:l*C,x:s.x}):x(u[0],{dy:0});x(o,{x:s.x,y:s.y}),i._.dirty=1;var g=i._getBBox(),v=s.y-(g.y+g.height/2);v&&t.is(v,"finite")&&x(u[0],{dy:v})}},T=function(t){return t.parentNode&&"a"===t.parentNode.tagName.toLowerCase()?t.parentNode:t},A=function(e,r){function i(){return("0000"+(Math.random()*Math.pow(36,5)<<0).toString(36)).slice(-5)}var n=0,a=0;this[0]=this.node=e, -e.raphael=!0,this.id=i(),e.raphaelid=this.id,this.matrix=t.matrix(),this.realPath=null,this.paper=r,this.attrs=this.attrs||{},this._={transform:[],sx:1,sy:1,deg:0,dx:0,dy:0,dirty:1},!r.bottom&&(r.bottom=this),this.prev=r.top,r.top&&(r.top.next=this),r.top=this,this.next=null},M=t.el;A.prototype=M,M.constructor=A,t._engine.path=function(t,e){var r=x("path");e.canvas&&e.canvas.appendChild(r);var i=new A(r,e);return i.type="path",B(i,{fill:"none",stroke:"#000",path:t}),i},M.rotate=function(t,e,n){if(this.removed)return this;if(t=r(t).split(h),t.length-1&&(e=i(t[1]),n=i(t[2])),t=i(t[0]),null==n&&(e=n),null==e||null==n){var a=this.getBBox(1);e=a.x+a.width/2,n=a.y+a.height/2}return this.transform(this._.transform.concat([["r",t,e,n]])),this},M.scale=function(t,e,n,a){if(this.removed)return this;if(t=r(t).split(h),t.length-1&&(e=i(t[1]),n=i(t[2]),a=i(t[3])),t=i(t[0]),null==e&&(e=t),null==a&&(n=a),null==n||null==a)var s=this.getBBox(1);return n=null==n?s.x+s.width/2:n,a=null==a?s.y+s.height/2:a,this.transform(this._.transform.concat([["s",t,e,n,a]])),this},M.translate=function(t,e){return this.removed?this:(t=r(t).split(h),t.length-1&&(e=i(t[1])),t=i(t[0])||0,e=+e||0,this.transform(this._.transform.concat([["t",t,e]])),this)},M.transform=function(r){var i=this._;if(null==r)return i.transform;if(t._extractTransform(this,r),this.clip&&x(this.clip,{transform:this.matrix.invert()}),this.pattern&&b(this),this.node&&x(this.node,{transform:this.matrix}),1!=i.sx||1!=i.sy){var n=this.attrs[e]("stroke-width")?this.attrs["stroke-width"]:1;this.attr({"stroke-width":n})}return this},M.hide=function(){return this.removed||(this.node.style.display="none"),this},M.show=function(){return this.removed||(this.node.style.display=""),this},M.remove=function(){var e=T(this.node);if(!this.removed&&e.parentNode){var r=this.paper;r.__set__&&r.__set__.exclude(this),u.unbind("raphael.*.*."+this.id),this.gradient&&r.defs.removeChild(this.gradient),t._tear(this,r),e.parentNode.removeChild(e),this.removeData();for(var i in this)this[i]="function"==typeof this[i]?t._removedFactory(i):null;this.removed=!0}},M._getBBox=function(){if("none"==this.node.style.display){this.show();var t=!0}var e=!1,r;this.paper.canvas.parentElement?r=this.paper.canvas.parentElement.style:this.paper.canvas.parentNode&&(r=this.paper.canvas.parentNode.style),r&&"none"==r.display&&(e=!0,r.display="");var i={};try{i=this.node.getBBox()}catch(n){i={x:this.node.clientLeft,y:this.node.clientTop,width:this.node.clientWidth,height:this.node.clientHeight}}finally{i=i||{},e&&(r.display="none")}return t&&this.hide(),i},M.attr=function(r,i){if(this.removed)return this;if(null==r){var n={};for(var a in this.attrs)this.attrs[e](a)&&(n[a]=this.attrs[a]);return n.gradient&&"none"==n.fill&&(n.fill=n.gradient)&&delete n.gradient,n.transform=this._.transform,n}if(null==i&&t.is(r,"string")){if("fill"==r&&"none"==this.attrs.fill&&this.attrs.gradient)return this.attrs.gradient;if("transform"==r)return this._.transform;for(var s=r.split(h),o={},l=0,c=s.length;l<c;l++)r=s[l],r in this.attrs?o[r]=this.attrs[r]:t.is(this.paper.customAttributes[r],"function")?o[r]=this.paper.customAttributes[r].def:o[r]=t._availableAttrs[r];return c-1?o:o[s[0]]}if(null==i&&t.is(r,"array")){for(o={},l=0,c=r.length;l<c;l++)o[r[l]]=this.attr(r[l]);return o}if(null!=i){var f={};f[r]=i}else null!=r&&t.is(r,"object")&&(f=r);for(var p in f)u("raphael.attr."+p+"."+this.id,this,f[p]);for(p in this.paper.customAttributes)if(this.paper.customAttributes[e](p)&&f[e](p)&&t.is(this.paper.customAttributes[p],"function")){var d=this.paper.customAttributes[p].apply(this,[].concat(f[p]));this.attrs[p]=f[p];for(var g in d)d[e](g)&&(f[g]=d[g])}return B(this,f),this},M.toFront=function(){if(this.removed)return this;var e=T(this.node);e.parentNode.appendChild(e);var r=this.paper;return r.top!=this&&t._tofront(this,r),this},M.toBack=function(){if(this.removed)return this;var e=T(this.node),r=e.parentNode;r.insertBefore(e,r.firstChild),t._toback(this,this.paper);var i=this.paper;return this},M.insertAfter=function(e){if(this.removed||!e)return this;var r=T(this.node),i=T(e.node||e[e.length-1].node);return i.nextSibling?i.parentNode.insertBefore(r,i.nextSibling):i.parentNode.appendChild(r),t._insertafter(this,e,this.paper),this},M.insertBefore=function(e){if(this.removed||!e)return this;var r=T(this.node),i=T(e.node||e[0].node);return i.parentNode.insertBefore(r,i),t._insertbefore(this,e,this.paper),this},M.blur=function(e){var r=this;if(0!==+e){var i=x("filter"),n=x("feGaussianBlur");r.attrs.blur=e,i.id=t.createUUID(),x(n,{stdDeviation:+e||1.5}),i.appendChild(n),r.paper.defs.appendChild(i),r._blur=i,x(r.node,{filter:"url(#"+i.id+")"})}else r._blur&&(r._blur.parentNode.removeChild(r._blur),delete r._blur,delete r.attrs.blur),r.node.removeAttribute("filter");return r},t._engine.circle=function(t,e,r,i){var n=x("circle");t.canvas&&t.canvas.appendChild(n);var a=new A(n,t);return a.attrs={cx:e,cy:r,r:i,fill:"none",stroke:"#000"},a.type="circle",x(n,a.attrs),a},t._engine.rect=function(t,e,r,i,n,a){var s=x("rect");t.canvas&&t.canvas.appendChild(s);var o=new A(s,t);return o.attrs={x:e,y:r,width:i,height:n,rx:a||0,ry:a||0,fill:"none",stroke:"#000"},o.type="rect",x(s,o.attrs),o},t._engine.ellipse=function(t,e,r,i,n){var a=x("ellipse");t.canvas&&t.canvas.appendChild(a);var s=new A(a,t);return s.attrs={cx:e,cy:r,rx:i,ry:n,fill:"none",stroke:"#000"},s.type="ellipse",x(a,s.attrs),s},t._engine.image=function(t,e,r,i,n,a){var s=x("image");x(s,{x:r,y:i,width:n,height:a,preserveAspectRatio:"none"}),s.setAttributeNS(p,"href",e),t.canvas&&t.canvas.appendChild(s);var o=new A(s,t);return o.attrs={x:r,y:i,width:n,height:a,src:e},o.type="image",o},t._engine.text=function(e,r,i,n){var a=x("text");e.canvas&&e.canvas.appendChild(a);var s=new A(a,e);return s.attrs={x:r,y:i,"text-anchor":"middle",text:n,"font-family":t._availableAttrs["font-family"],"font-size":t._availableAttrs["font-size"],stroke:"none",fill:"#000"},s.type="text",B(s,s.attrs),s},t._engine.setSize=function(t,e){return this.width=t||this.width,this.height=e||this.height,this.canvas.setAttribute("width",this.width),this.canvas.setAttribute("height",this.height),this._viewBox&&this.setViewBox.apply(this,this._viewBox),this},t._engine.create=function(){var e=t._getContainer.apply(0,arguments),r=e&&e.container,i=e.x,n=e.y,a=e.width,s=e.height;if(!r)throw new Error("SVG container not found.");var o=x("svg"),l="overflow:hidden;",h;return i=i||0,n=n||0,a=a||512,s=s||342,x(o,{height:s,version:1.1,width:a,xmlns:"http://www.w3.org/2000/svg","xmlns:xlink":"http://www.w3.org/1999/xlink"}),1==r?(o.style.cssText=l+"position:absolute;left:"+i+"px;top:"+n+"px",t._g.doc.body.appendChild(o),h=1):(o.style.cssText=l+"position:relative",r.firstChild?r.insertBefore(o,r.firstChild):r.appendChild(o)),r=new t._Paper,r.width=a,r.height=s,r.canvas=o,r.clear(),r._left=r._top=0,h&&(r.renderfix=function(){}),r.renderfix(),r},t._engine.setViewBox=function(t,e,r,i,n){u("raphael.setViewBox",this,this._viewBox,[t,e,r,i,n]);var a=this.getSize(),o=s(r/a.width,i/a.height),l=this.top,h=n?"xMidYMid meet":"xMinYMin",c,p;for(null==t?(this._vbSize&&(o=1),delete this._vbSize,c="0 0 "+this.width+f+this.height):(this._vbSize=o,c=t+f+e+f+r+f+i),x(this.canvas,{viewBox:c,preserveAspectRatio:h});o&&l;)p="stroke-width"in l.attrs?l.attrs["stroke-width"]:1,l.attr({"stroke-width":p}),l._.dirty=1,l._.dirtyT=1,l=l.prev;return this._viewBox=[t,e,r,i,!!n],this},t.prototype.renderfix=function(){var t=this.canvas,e=t.style,r;try{r=t.getScreenCTM()||t.createSVGMatrix()}catch(i){r=t.createSVGMatrix()}var n=-r.e%1,a=-r.f%1;(n||a)&&(n&&(this._left=(this._left+n)%1,e.left=this._left+"px"),a&&(this._top=(this._top+a)%1,e.top=this._top+"px"))},t.prototype.clear=function(){t.eve("raphael.clear",this);for(var e=this.canvas;e.firstChild;)e.removeChild(e.firstChild);this.bottom=this.top=null,(this.desc=x("desc")).appendChild(t._g.doc.createTextNode("Created with Raphaël "+t.version)),e.appendChild(this.desc),e.appendChild(this.defs=x("defs"))},t.prototype.remove=function(){u("raphael.remove",this),this.canvas.parentNode&&this.canvas.parentNode.removeChild(this.canvas);for(var e in this)this[e]="function"==typeof this[e]?t._removedFactory(e):null};var N=t.st;for(var E in M)M[e](E)&&!N[e](E)&&(N[E]=function(t){return function(){var e=arguments;return this.forEach(function(r){r[t].apply(r,e)})}}(E))}}.apply(e,i),!(void 0!==n&&(t.exports=n))},function(t,e,r){var i,n;i=[r(1)],n=function(t){if(!t||t.vml){var e="hasOwnProperty",r=String,i=parseFloat,n=Math,a=n.round,s=n.max,o=n.min,l=n.abs,h="fill",u=/[, ]+/,c=t.eve,f=" progid:DXImageTransform.Microsoft",p=" ",d="",g={M:"m",L:"l",C:"c",Z:"x",m:"t",l:"r",c:"v",z:"x"},x=/([clmz]),?([^clmz]*)/gi,v=/ progid:\S+Blur\([^\)]+\)/g,y=/-?[^,\s-]+/g,m="position:absolute;left:0;top:0;width:1px;height:1px;behavior:url(#default#VML)",b=21600,_={path:1,rect:1,image:1},w={circle:1,ellipse:1},k=function(e){var i=/[ahqstv]/gi,n=t._pathToAbsolute;if(r(e).match(i)&&(n=t._path2curve),i=/[clmz]/g,n==t._pathToAbsolute&&!r(e).match(i)){var s=r(e).replace(x,function(t,e,r){var i=[],n="m"==e.toLowerCase(),s=g[e];return r.replace(y,function(t){n&&2==i.length&&(s+=i+g["m"==e?"l":"L"],i=[]),i.push(a(t*b))}),s+i});return s}var o=n(e),l,h;s=[];for(var u=0,c=o.length;u<c;u++){l=o[u],h=o[u][0].toLowerCase(),"z"==h&&(h="x");for(var f=1,v=l.length;f<v;f++)h+=a(l[f]*b)+(f!=v-1?",":d);s.push(h)}return s.join(p)},B=function(e,r,i){var n=t.matrix();return n.rotate(-e,.5,.5),{dx:n.x(r,i),dy:n.y(r,i)}},C=function(t,e,r,i,n,a){var s=t._,o=t.matrix,u=s.fillpos,c=t.node,f=c.style,d=1,g="",x,v=b/e,y=b/r;if(f.visibility="hidden",e&&r){if(c.coordsize=l(v)+p+l(y),f.rotation=a*(e*r<0?-1:1),a){var m=B(a,i,n);i=m.dx,n=m.dy}if(e<0&&(g+="x"),r<0&&(g+=" y")&&(d=-1),f.flip=g,c.coordorigin=i*-v+p+n*-y,u||s.fillsize){var _=c.getElementsByTagName(h);_=_&&_[0],c.removeChild(_),u&&(m=B(a,o.x(u[0],u[1]),o.y(u[0],u[1])),_.position=m.dx*d+p+m.dy*d),s.fillsize&&(_.size=s.fillsize[0]*l(e)+p+s.fillsize[1]*l(r)),c.appendChild(_)}f.visibility="visible"}};t.toString=function(){return"Your browser doesn’t support SVG. Falling down to VML.\nYou are running Raphaël "+this.version};var S=function(t,e,i){for(var n=r(e).toLowerCase().split("-"),a=i?"end":"start",s=n.length,o="classic",l="medium",h="medium";s--;)switch(n[s]){case"block":case"classic":case"oval":case"diamond":case"open":case"none":o=n[s];break;case"wide":case"narrow":h=n[s];break;case"long":case"short":l=n[s]}var u=t.node.getElementsByTagName("stroke")[0];u[a+"arrow"]=o,u[a+"arrowlength"]=l,u[a+"arrowwidth"]=h},T=function(n,l){n.attrs=n.attrs||{};var c=n.node,f=n.attrs,g=c.style,x,v=_[n.type]&&(l.x!=f.x||l.y!=f.y||l.width!=f.width||l.height!=f.height||l.cx!=f.cx||l.cy!=f.cy||l.rx!=f.rx||l.ry!=f.ry||l.r!=f.r),y=w[n.type]&&(f.cx!=l.cx||f.cy!=l.cy||f.r!=l.r||f.rx!=l.rx||f.ry!=l.ry),m=n;for(var B in l)l[e](B)&&(f[B]=l[B]);if(v&&(f.path=t._getPath[n.type](n),n._.dirty=1),l.href&&(c.href=l.href),l.title&&(c.title=l.title),l.target&&(c.target=l.target),l.cursor&&(g.cursor=l.cursor),"blur"in l&&n.blur(l.blur),(l.path&&"path"==n.type||v)&&(c.path=k(~r(f.path).toLowerCase().indexOf("r")?t._pathToAbsolute(f.path):f.path),n._.dirty=1,"image"==n.type&&(n._.fillpos=[f.x,f.y],n._.fillsize=[f.width,f.height],C(n,1,1,0,0,0))),"transform"in l&&n.transform(l.transform),y){var T=+f.cx,M=+f.cy,N=+f.rx||+f.r||0,L=+f.ry||+f.r||0;c.path=t.format("ar{0},{1},{2},{3},{4},{1},{4},{1}x",a((T-N)*b),a((M-L)*b),a((T+N)*b),a((M+L)*b),a(T*b)),n._.dirty=1}if("clip-rect"in l){var F=r(l["clip-rect"]).split(u);if(4==F.length){F[2]=+F[2]+ +F[0],F[3]=+F[3]+ +F[1];var P=c.clipRect||t._g.doc.createElement("div"),z=P.style;z.clip=t.format("rect({1}px {2}px {3}px {0}px)",F),c.clipRect||(z.position="absolute",z.top=0,z.left=0,z.width=n.paper.width+"px",z.height=n.paper.height+"px",c.parentNode.insertBefore(P,c),P.appendChild(c),c.clipRect=P)}l["clip-rect"]||c.clipRect&&(c.clipRect.style.clip="auto")}if(n.textpath){var R=n.textpath.style;l.font&&(R.font=l.font),l["font-family"]&&(R.fontFamily='"'+l["font-family"].split(",")[0].replace(/^['"]+|['"]+$/g,d)+'"'),l["font-size"]&&(R.fontSize=l["font-size"]),l["font-weight"]&&(R.fontWeight=l["font-weight"]),l["font-style"]&&(R.fontStyle=l["font-style"])}if("arrow-start"in l&&S(m,l["arrow-start"]),"arrow-end"in l&&S(m,l["arrow-end"],1),null!=l.opacity||null!=l.fill||null!=l.src||null!=l.stroke||null!=l["stroke-width"]||null!=l["stroke-opacity"]||null!=l["fill-opacity"]||null!=l["stroke-dasharray"]||null!=l["stroke-miterlimit"]||null!=l["stroke-linejoin"]||null!=l["stroke-linecap"]){var j=c.getElementsByTagName(h),q=!1;if(j=j&&j[0],!j&&(q=j=E(h)),"image"==n.type&&l.src&&(j.src=l.src),l.fill&&(j.on=!0),null!=j.on&&"none"!=l.fill&&null!==l.fill||(j.on=!1),j.on&&l.fill){var I=r(l.fill).match(t._ISURL);if(I){j.parentNode==c&&c.removeChild(j),j.rotate=!0,j.src=I[1],j.type="tile";var D=n.getBBox(1);j.position=D.x+p+D.y,n._.fillpos=[D.x,D.y],t._preload(I[1],function(){n._.fillsize=[this.offsetWidth,this.offsetHeight]})}else j.color=t.getRGB(l.fill).hex,j.src=d,j.type="solid",t.getRGB(l.fill).error&&(m.type in{circle:1,ellipse:1}||"r"!=r(l.fill).charAt())&&A(m,l.fill,j)&&(f.fill="none",f.gradient=l.fill,j.rotate=!1)}if("fill-opacity"in l||"opacity"in l){var V=((+f["fill-opacity"]+1||2)-1)*((+f.opacity+1||2)-1)*((+t.getRGB(l.fill).o+1||2)-1);V=o(s(V,0),1),j.opacity=V,j.src&&(j.color="none")}c.appendChild(j);var O=c.getElementsByTagName("stroke")&&c.getElementsByTagName("stroke")[0],W=!1;!O&&(W=O=E("stroke")),(l.stroke&&"none"!=l.stroke||l["stroke-width"]||null!=l["stroke-opacity"]||l["stroke-dasharray"]||l["stroke-miterlimit"]||l["stroke-linejoin"]||l["stroke-linecap"])&&(O.on=!0),("none"==l.stroke||null===l.stroke||null==O.on||0==l.stroke||0==l["stroke-width"])&&(O.on=!1);var Y=t.getRGB(l.stroke);O.on&&l.stroke&&(O.color=Y.hex),V=((+f["stroke-opacity"]+1||2)-1)*((+f.opacity+1||2)-1)*((+Y.o+1||2)-1);var G=.75*(i(l["stroke-width"])||1);if(V=o(s(V,0),1),null==l["stroke-width"]&&(G=f["stroke-width"]),l["stroke-width"]&&(O.weight=G),G&&G<1&&(V*=G)&&(O.weight=1),O.opacity=V,l["stroke-linejoin"]&&(O.joinstyle=l["stroke-linejoin"]||"miter"),O.miterlimit=l["stroke-miterlimit"]||8,l["stroke-linecap"]&&(O.endcap="butt"==l["stroke-linecap"]?"flat":"square"==l["stroke-linecap"]?"square":"round"),"stroke-dasharray"in l){var H={"-":"shortdash",".":"shortdot","-.":"shortdashdot","-..":"shortdashdotdot",". ":"dot","- ":"dash","--":"longdash","- .":"dashdot","--.":"longdashdot","--..":"longdashdotdot"};O.dashstyle=H[e](l["stroke-dasharray"])?H[l["stroke-dasharray"]]:d}W&&c.appendChild(O)}if("text"==m.type){m.paper.canvas.style.display=d;var X=m.paper.span,U=100,$=f.font&&f.font.match(/\d+(?:\.\d*)?(?=px)/);g=X.style,f.font&&(g.font=f.font),f["font-family"]&&(g.fontFamily=f["font-family"]),f["font-weight"]&&(g.fontWeight=f["font-weight"]),f["font-style"]&&(g.fontStyle=f["font-style"]),$=i(f["font-size"]||$&&$[0])||10,g.fontSize=$*U+"px",m.textpath.string&&(X.innerHTML=r(m.textpath.string).replace(/</g,"&#60;").replace(/&/g,"&#38;").replace(/\n/g,"<br>"));var Z=X.getBoundingClientRect();m.W=f.w=(Z.right-Z.left)/U,m.H=f.h=(Z.bottom-Z.top)/U,m.X=f.x,m.Y=f.y+m.H/2,("x"in l||"y"in l)&&(m.path.v=t.format("m{0},{1}l{2},{1}",a(f.x*b),a(f.y*b),a(f.x*b)+1));for(var Q=["x","y","text","font","font-family","font-weight","font-style","font-size"],J=0,K=Q.length;J<K;J++)if(Q[J]in l){m._.dirty=1;break}switch(f["text-anchor"]){case"start":m.textpath.style["v-text-align"]="left",m.bbx=m.W/2;break;case"end":m.textpath.style["v-text-align"]="right",m.bbx=-m.W/2;break;default:m.textpath.style["v-text-align"]="center",m.bbx=0}m.textpath.style["v-text-kern"]=!0}},A=function(e,a,s){e.attrs=e.attrs||{};var o=e.attrs,l=Math.pow,h,u,c="linear",f=".5 .5";if(e.attrs.gradient=a,a=r(a).replace(t._radial_gradient,function(t,e,r){return c="radial",e&&r&&(e=i(e),r=i(r),l(e-.5,2)+l(r-.5,2)>.25&&(r=n.sqrt(.25-l(e-.5,2))*(2*(r>.5)-1)+.5),f=e+p+r),d}),a=a.split(/\s*\-\s*/),"linear"==c){var g=a.shift();if(g=-i(g),isNaN(g))return null}var x=t._parseDots(a);if(!x)return null;if(e=e.shape||e.node,x.length){e.removeChild(s),s.on=!0,s.method="none",s.color=x[0].color,s.color2=x[x.length-1].color;for(var v=[],y=0,m=x.length;y<m;y++)x[y].offset&&v.push(x[y].offset+p+x[y].color);s.colors=v.length?v.join():"0% "+s.color,"radial"==c?(s.type="gradientTitle",s.focus="100%",s.focussize="0 0",s.focusposition=f,s.angle=0):(s.type="gradient",s.angle=(270-g)%360),e.appendChild(s)}return 1},M=function(e,r){this[0]=this.node=e,e.raphael=!0,this.id=t._oid++,e.raphaelid=this.id,this.X=0,this.Y=0,this.attrs={},this.paper=r,this.matrix=t.matrix(),this._={transform:[],sx:1,sy:1,dx:0,dy:0,deg:0,dirty:1,dirtyT:1},!r.bottom&&(r.bottom=this),this.prev=r.top,r.top&&(r.top.next=this),r.top=this,this.next=null},N=t.el;M.prototype=N,N.constructor=M,N.transform=function(e){if(null==e)return this._.transform;var i=this.paper._viewBoxShift,n=i?"s"+[i.scale,i.scale]+"-1-1t"+[i.dx,i.dy]:d,a;i&&(a=e=r(e).replace(/\.{3}|\u2026/g,this._.transform||d)),t._extractTransform(this,n+e);var s=this.matrix.clone(),o=this.skew,l=this.node,h,u=~r(this.attrs.fill).indexOf("-"),c=!r(this.attrs.fill).indexOf("url(");if(s.translate(1,1),c||u||"image"==this.type)if(o.matrix="1 0 0 1",o.offset="0 0",h=s.split(),u&&h.noRotation||!h.isSimple){l.style.filter=s.toFilter();var f=this.getBBox(),g=this.getBBox(1),x=f.x-g.x,v=f.y-g.y;l.coordorigin=x*-b+p+v*-b,C(this,1,1,x,v,0)}else l.style.filter=d,C(this,h.scalex,h.scaley,h.dx,h.dy,h.rotate);else l.style.filter=d,o.matrix=r(s),o.offset=s.offset();return null!==a&&(this._.transform=a,t._extractTransform(this,a)),this},N.rotate=function(t,e,n){if(this.removed)return this;if(null!=t){if(t=r(t).split(u),t.length-1&&(e=i(t[1]),n=i(t[2])),t=i(t[0]),null==n&&(e=n),null==e||null==n){var a=this.getBBox(1);e=a.x+a.width/2,n=a.y+a.height/2}return this._.dirtyT=1,this.transform(this._.transform.concat([["r",t,e,n]])),this}},N.translate=function(t,e){return this.removed?this:(t=r(t).split(u),t.length-1&&(e=i(t[1])),t=i(t[0])||0,e=+e||0,this._.bbox&&(this._.bbox.x+=t,this._.bbox.y+=e),this.transform(this._.transform.concat([["t",t,e]])),this)},N.scale=function(t,e,n,a){if(this.removed)return this;if(t=r(t).split(u),t.length-1&&(e=i(t[1]),n=i(t[2]),a=i(t[3]),isNaN(n)&&(n=null),isNaN(a)&&(a=null)),t=i(t[0]),null==e&&(e=t),null==a&&(n=a),null==n||null==a)var s=this.getBBox(1);return n=null==n?s.x+s.width/2:n,a=null==a?s.y+s.height/2:a,this.transform(this._.transform.concat([["s",t,e,n,a]])),this._.dirtyT=1,this},N.hide=function(){return!this.removed&&(this.node.style.display="none"),this},N.show=function(){return!this.removed&&(this.node.style.display=d),this},N.auxGetBBox=t.el.getBBox,N.getBBox=function(){var t=this.auxGetBBox();if(this.paper&&this.paper._viewBoxShift){var e={},r=1/this.paper._viewBoxShift.scale;return e.x=t.x-this.paper._viewBoxShift.dx,e.x*=r,e.y=t.y-this.paper._viewBoxShift.dy,e.y*=r,e.width=t.width*r,e.height=t.height*r,e.x2=e.x+e.width,e.y2=e.y+e.height,e}return t},N._getBBox=function(){return this.removed?{}:{x:this.X+(this.bbx||0)-this.W/2,y:this.Y-this.H,width:this.W,height:this.H}},N.remove=function(){if(!this.removed&&this.node.parentNode){this.paper.__set__&&this.paper.__set__.exclude(this),t.eve.unbind("raphael.*.*."+this.id),t._tear(this,this.paper),this.node.parentNode.removeChild(this.node),this.shape&&this.shape.parentNode.removeChild(this.shape);for(var e in this)this[e]="function"==typeof this[e]?t._removedFactory(e):null;this.removed=!0}},N.attr=function(r,i){if(this.removed)return this;if(null==r){var n={};for(var a in this.attrs)this.attrs[e](a)&&(n[a]=this.attrs[a]);return n.gradient&&"none"==n.fill&&(n.fill=n.gradient)&&delete n.gradient,n.transform=this._.transform,n}if(null==i&&t.is(r,"string")){if(r==h&&"none"==this.attrs.fill&&this.attrs.gradient)return this.attrs.gradient;for(var s=r.split(u),o={},l=0,f=s.length;l<f;l++)r=s[l],r in this.attrs?o[r]=this.attrs[r]:t.is(this.paper.customAttributes[r],"function")?o[r]=this.paper.customAttributes[r].def:o[r]=t._availableAttrs[r];return f-1?o:o[s[0]]}if(this.attrs&&null==i&&t.is(r,"array")){for(o={},l=0,f=r.length;l<f;l++)o[r[l]]=this.attr(r[l]);return o}var p;null!=i&&(p={},p[r]=i),null==i&&t.is(r,"object")&&(p=r);for(var d in p)c("raphael.attr."+d+"."+this.id,this,p[d]);if(p){for(d in this.paper.customAttributes)if(this.paper.customAttributes[e](d)&&p[e](d)&&t.is(this.paper.customAttributes[d],"function")){var g=this.paper.customAttributes[d].apply(this,[].concat(p[d]));this.attrs[d]=p[d];for(var x in g)g[e](x)&&(p[x]=g[x])}p.text&&"text"==this.type&&(this.textpath.string=p.text),T(this,p)}return this},N.toFront=function(){return!this.removed&&this.node.parentNode.appendChild(this.node),this.paper&&this.paper.top!=this&&t._tofront(this,this.paper),this},N.toBack=function(){return this.removed?this:(this.node.parentNode.firstChild!=this.node&&(this.node.parentNode.insertBefore(this.node,this.node.parentNode.firstChild),t._toback(this,this.paper)),this)},N.insertAfter=function(e){return this.removed?this:(e.constructor==t.st.constructor&&(e=e[e.length-1]),e.node.nextSibling?e.node.parentNode.insertBefore(this.node,e.node.nextSibling):e.node.parentNode.appendChild(this.node),t._insertafter(this,e,this.paper),this)},N.insertBefore=function(e){return this.removed?this:(e.constructor==t.st.constructor&&(e=e[0]),e.node.parentNode.insertBefore(this.node,e.node),t._insertbefore(this,e,this.paper),this)},N.blur=function(e){var r=this.node.runtimeStyle,i=r.filter;return i=i.replace(v,d),0!==+e?(this.attrs.blur=e,r.filter=i+p+f+".Blur(pixelradius="+(+e||1.5)+")",r.margin=t.format("-{0}px 0 0 -{0}px",a(+e||1.5))):(r.filter=i,r.margin=0,delete this.attrs.blur),this},t._engine.path=function(t,e){var r=E("shape");r.style.cssText=m,r.coordsize=b+p+b,r.coordorigin=e.coordorigin;var i=new M(r,e),n={fill:"none",stroke:"#000"};t&&(n.path=t),i.type="path",i.path=[],i.Path=d,T(i,n),e.canvas&&e.canvas.appendChild(r);var a=E("skew");return a.on=!0,r.appendChild(a),i.skew=a,i.transform(d),i},t._engine.rect=function(e,r,i,n,a,s){var o=t._rectPath(r,i,n,a,s),l=e.path(o),h=l.attrs;return l.X=h.x=r,l.Y=h.y=i,l.W=h.width=n,l.H=h.height=a,h.r=s,h.path=o,l.type="rect",l},t._engine.ellipse=function(t,e,r,i,n){var a=t.path(),s=a.attrs;return a.X=e-i,a.Y=r-n,a.W=2*i,a.H=2*n,a.type="ellipse",T(a,{cx:e,cy:r,rx:i,ry:n}),a},t._engine.circle=function(t,e,r,i){var n=t.path(),a=n.attrs;return n.X=e-i,n.Y=r-i,n.W=n.H=2*i,n.type="circle",T(n,{cx:e,cy:r,r:i}),n},t._engine.image=function(e,r,i,n,a,s){var o=t._rectPath(i,n,a,s),l=e.path(o).attr({stroke:"none"}),u=l.attrs,c=l.node,f=c.getElementsByTagName(h)[0];return u.src=r,l.X=u.x=i,l.Y=u.y=n,l.W=u.width=a,l.H=u.height=s,u.path=o,l.type="image",f.parentNode==c&&c.removeChild(f),f.rotate=!0,f.src=r,f.type="tile",l._.fillpos=[i,n],l._.fillsize=[a,s],c.appendChild(f),C(l,1,1,0,0,0),l},t._engine.text=function(e,i,n,s){var o=E("shape"),l=E("path"),h=E("textpath");i=i||0,n=n||0,s=s||"",l.v=t.format("m{0},{1}l{2},{1}",a(i*b),a(n*b),a(i*b)+1),l.textpathok=!0,h.string=r(s),h.on=!0,o.style.cssText=m,o.coordsize=b+p+b,o.coordorigin="0 0";var u=new M(o,e),c={fill:"#000",stroke:"none",font:t._availableAttrs.font,text:s};u.shape=o,u.path=l,u.textpath=h,u.type="text",u.attrs.text=r(s),u.attrs.x=i,u.attrs.y=n,u.attrs.w=1,u.attrs.h=1,T(u,c),o.appendChild(h),o.appendChild(l),e.canvas.appendChild(o);var f=E("skew");return f.on=!0,o.appendChild(f),u.skew=f,u.transform(d),u},t._engine.setSize=function(e,r){var i=this.canvas.style;return this.width=e,this.height=r,e==+e&&(e+="px"),r==+r&&(r+="px"),i.width=e,i.height=r,i.clip="rect(0 "+e+" "+r+" 0)",this._viewBox&&t._engine.setViewBox.apply(this,this._viewBox),this},t._engine.setViewBox=function(e,r,i,n,a){t.eve("raphael.setViewBox",this,this._viewBox,[e,r,i,n,a]);var s=this.getSize(),o=s.width,l=s.height,h,u;return a&&(h=l/n,u=o/i,i*h<o&&(e-=(o-i*h)/2/h),n*u<l&&(r-=(l-n*u)/2/u)),this._viewBox=[e,r,i,n,!!a],this._viewBoxShift={dx:-e,dy:-r,scale:s},this.forEach(function(t){t.transform("...")}),this};var E;t._engine.initWin=function(t){var e=t.document;e.styleSheets.length<31?e.createStyleSheet().addRule(".rvml","behavior:url(#default#VML)"):e.styleSheets[0].addRule(".rvml","behavior:url(#default#VML)");try{!e.namespaces.rvml&&e.namespaces.add("rvml","urn:schemas-microsoft-com:vml"),E=function(t){return e.createElement("<rvml:"+t+' class="rvml">')}}catch(r){E=function(t){return e.createElement("<"+t+' xmlns="urn:schemas-microsoft.com:vml" class="rvml">')}}},t._engine.initWin(t._g.win),t._engine.create=function(){var e=t._getContainer.apply(0,arguments),r=e.container,i=e.height,n,a=e.width,s=e.x,o=e.y;if(!r)throw new Error("VML container not found.");var l=new t._Paper,h=l.canvas=t._g.doc.createElement("div"),u=h.style;return s=s||0,o=o||0,a=a||512,i=i||342,l.width=a,l.height=i,a==+a&&(a+="px"),i==+i&&(i+="px"),l.coordsize=1e3*b+p+1e3*b,l.coordorigin="0 0",l.span=t._g.doc.createElement("span"),l.span.style.cssText="position:absolute;left:-9999em;top:-9999em;padding:0;margin:0;line-height:1;",h.appendChild(l.span),u.cssText=t.format("top:0;left:0;width:{0};height:{1};display:inline-block;position:relative;clip:rect(0 {0} {1} 0);overflow:hidden",a,i),1==r?(t._g.doc.body.appendChild(h),u.left=s+"px",u.top=o+"px",u.position="absolute"):r.firstChild?r.insertBefore(h,r.firstChild):r.appendChild(h),l.renderfix=function(){},l},t.prototype.clear=function(){t.eve("raphael.clear",this),this.canvas.innerHTML=d,this.span=t._g.doc.createElement("span"),this.span.style.cssText="position:absolute;left:-9999em;top:-9999em;padding:0;margin:0;line-height:1;display:inline;",this.canvas.appendChild(this.span),this.bottom=this.top=null},t.prototype.remove=function(){t.eve("raphael.remove",this),this.canvas.parentNode.removeChild(this.canvas);for(var e in this)this[e]="function"==typeof this[e]?t._removedFactory(e):null;return!0};var L=t.st;for(var F in N)N[e](F)&&!L[e](F)&&(L[F]=function(t){return function(){var e=arguments;return this.forEach(function(r){r[t].apply(r,e)})}}(F))}}.apply(e,i),!(void 0!==n&&(t.exports=n))}])}); \ No newline at end of file diff --git a/admin/bower_components/raphael/webpack.config.js b/admin/bower_components/raphael/webpack.config.js deleted file mode 100644 index af7a206..0000000 --- a/admin/bower_components/raphael/webpack.config.js +++ /dev/null @@ -1,64 +0,0 @@ -"use strict"; - -const webpack = require("webpack"); -const fs = require("fs"); - -const args = process.argv; - -let plugins = [ - new webpack.BannerPlugin(fs.readFileSync('./dev/banner.txt', 'utf8'), { raw: true, entryOnly: true }) -]; -let externals = []; -let filename = "raphael"; - - -if(args.indexOf('--no-deps') !== -1){ - console.log('Building version without deps'); - externals.push("eve"); - filename += ".no-deps" -} - -if(args.indexOf('--min') !== -1){ - console.log('Building minified version'); - plugins.push( - new webpack.optimize.UglifyJsPlugin({ - compress:{ - dead_code: false, - unused: false - } - }) - ); - filename += ".min" -} - -module.exports = { - entry: './dev/raphael.amd.js', - output: { - filename: filename + ".js", - libraryTarget: "umd", - library: "Raphael" - }, - - externals: externals, - - plugins: plugins, - - loaders: [ - { - test: /\.js$/, - loader: "eslint-loader", - include: "./dev/" - } - ], - - eslint: { - configFile: './.eslintrc' - }, - - resolve: { - modulesDirectories: ["bower_components"], - alias: { - "eve": "eve-raphael/eve" - } - } -}; \ No newline at end of file diff --git a/admin/bower_components/raphael/yarn.lock b/admin/bower_components/raphael/yarn.lock deleted file mode 100644 index 62e88b6..0000000 --- a/admin/bower_components/raphael/yarn.lock +++ /dev/null @@ -1,2012 +0,0 @@ -# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. -# yarn lockfile v1 -abbrev@1: - version "1.0.9" - resolved "https://registry.yarnpkg.com/abbrev/-/abbrev-1.0.9.tgz#91b4792588a7738c25f35dd6f63752a2f8776135" - -acorn-jsx@^3.0.0: - version "3.0.1" - resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-3.0.1.tgz#afdf9488fb1ecefc8348f6fb22f464e32a58b36b" - dependencies: - acorn "^3.0.4" - -acorn@^3.0.0, acorn@^3.0.4: - version "3.3.0" - resolved "https://registry.yarnpkg.com/acorn/-/acorn-3.3.0.tgz#45e37fb39e8da3f25baee3ff5369e2bb5f22017a" - -acorn@^4.0.1: - version "4.0.3" - resolved "https://registry.yarnpkg.com/acorn/-/acorn-4.0.3.tgz#1a3e850b428e73ba6b09d1cc527f5aaad4d03ef1" - -ajv-keywords@^1.0.0: - version "1.1.1" - resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-1.1.1.tgz#02550bc605a3e576041565628af972e06c549d50" - -ajv@^4.7.0: - version "4.8.2" - resolved "https://registry.yarnpkg.com/ajv/-/ajv-4.8.2.tgz#65486936ca36fea39a1504332a78bebd5d447bdc" - dependencies: - co "^4.6.0" - json-stable-stringify "^1.0.1" - -align-text@^0.1.1, align-text@^0.1.3: - version "0.1.4" - resolved "https://registry.yarnpkg.com/align-text/-/align-text-0.1.4.tgz#0cd90a561093f35d0a99256c22b7069433fad117" - dependencies: - kind-of "^3.0.2" - longest "^1.0.1" - repeat-string "^1.5.2" - -amdefine@>=0.0.4: - version "1.0.1" - resolved "https://registry.yarnpkg.com/amdefine/-/amdefine-1.0.1.tgz#4a5282ac164729e93619bcfd3ad151f817ce91f5" - -ansi-escapes@^1.1.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-1.4.0.tgz#d3a8a83b319aa67793662b13e761c7911422306e" - -ansi-regex@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-2.0.0.tgz#c5061b6e0ef8a81775e50f5d66151bf6bf371107" - -ansi-styles@^2.2.1: - version "2.2.1" - resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-2.2.1.tgz#b432dd3358b634cf75e1e4664368240533c1ddbe" - -anymatch@^1.3.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-1.3.0.tgz#a3e52fa39168c825ff57b0248126ce5a8ff95507" - dependencies: - arrify "^1.0.0" - micromatch "^2.1.5" - -aproba@^1.0.3: - version "1.0.4" - resolved "https://registry.yarnpkg.com/aproba/-/aproba-1.0.4.tgz#2713680775e7614c8ba186c065d4e2e52d1072c0" - -are-we-there-yet@~1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/are-we-there-yet/-/are-we-there-yet-1.1.2.tgz#80e470e95a084794fe1899262c5667c6e88de1b3" - dependencies: - delegates "^1.0.0" - readable-stream "^2.0.0 || ^1.1.13" - -argparse@^1.0.7: - version "1.0.9" - resolved "https://registry.yarnpkg.com/argparse/-/argparse-1.0.9.tgz#73d83bc263f86e97f8cc4f6bae1b0e90a7d22c86" - dependencies: - sprintf-js "~1.0.2" - -arr-diff@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/arr-diff/-/arr-diff-2.0.0.tgz#8f3b827f955a8bd669697e4a4256ac3ceae356cf" - dependencies: - arr-flatten "^1.0.1" - -arr-flatten@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/arr-flatten/-/arr-flatten-1.0.1.tgz#e5ffe54d45e19f32f216e91eb99c8ce892bb604b" - -array-union@^1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/array-union/-/array-union-1.0.2.tgz#9a34410e4f4e3da23dea375be5be70f24778ec39" - dependencies: - array-uniq "^1.0.1" - -array-uniq@^1.0.1: - version "1.0.3" - resolved "https://registry.yarnpkg.com/array-uniq/-/array-uniq-1.0.3.tgz#af6ac877a25cc7f74e058894753858dfdb24fdb6" - -array-unique@^0.2.1: - version "0.2.1" - resolved "https://registry.yarnpkg.com/array-unique/-/array-unique-0.2.1.tgz#a1d97ccafcbc2625cc70fadceb36a50c58b01a53" - -arrify@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/arrify/-/arrify-1.0.1.tgz#898508da2226f380df904728456849c1501a4b0d" - -asn1@~0.2.3: - version "0.2.3" - resolved "https://registry.yarnpkg.com/asn1/-/asn1-0.2.3.tgz#dac8787713c9966849fc8180777ebe9c1ddf3b86" - -assert-plus@^0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/assert-plus/-/assert-plus-0.2.0.tgz#d74e1b87e7affc0db8aadb7021f3fe48101ab234" - -assert-plus@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/assert-plus/-/assert-plus-1.0.0.tgz#f12e0f3c5d77b0b1cdd9146942e4e96c1e4dd525" - -assert@^1.1.1: - version "1.4.1" - resolved "https://registry.yarnpkg.com/assert/-/assert-1.4.1.tgz#99912d591836b5a6f5b345c0f07eefc08fc65d91" - dependencies: - util "0.10.3" - -async-each@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/async-each/-/async-each-1.0.1.tgz#19d386a1d9edc6e7c1c85d388aedbcc56d33602d" - -async@^0.9.0: - version "0.9.2" - resolved "https://registry.yarnpkg.com/async/-/async-0.9.2.tgz#aea74d5e61c1f899613bf64bda66d4c78f2fd17d" - -async@^1.3.0: - version "1.5.2" - resolved "https://registry.yarnpkg.com/async/-/async-1.5.2.tgz#ec6a61ae56480c0c3cb241c95618e20892f9672a" - -async@~0.2.6: - version "0.2.10" - resolved "https://registry.yarnpkg.com/async/-/async-0.2.10.tgz#b6bbe0b0674b9d719708ca38de8c237cb526c3d1" - -asynckit@^0.4.0: - version "0.4.0" - resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79" - -aws-sign2@~0.6.0: - version "0.6.0" - resolved "https://registry.yarnpkg.com/aws-sign2/-/aws-sign2-0.6.0.tgz#14342dd38dbcc94d0e5b87d763cd63612c0e794f" - -aws4@^1.2.1: - version "1.5.0" - resolved "https://registry.yarnpkg.com/aws4/-/aws4-1.5.0.tgz#0a29ffb79c31c9e712eeb087e8e7a64b4a56d755" - -babel-code-frame@^6.16.0: - version "6.16.0" - resolved "https://registry.yarnpkg.com/babel-code-frame/-/babel-code-frame-6.16.0.tgz#f90e60da0862909d3ce098733b5d3987c97cb8de" - dependencies: - chalk "^1.1.0" - esutils "^2.0.2" - js-tokens "^2.0.0" - -balanced-match@^0.4.1: - version "0.4.2" - resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-0.4.2.tgz#cb3f3e3c732dc0f01ee70b403f302e61d7709838" - -base64-js@^1.0.2: - version "1.2.0" - resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.2.0.tgz#a39992d723584811982be5e290bb6a53d86700f1" - -Base64@~0.2.0: - version "0.2.1" - resolved "https://registry.yarnpkg.com/Base64/-/Base64-0.2.1.tgz#ba3a4230708e186705065e66babdd4c35cf60028" - -bcrypt-pbkdf@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.0.tgz#3ca76b85241c7170bf7d9703e7b9aa74630040d4" - dependencies: - tweetnacl "^0.14.3" - -big.js@^3.1.3: - version "3.1.3" - resolved "https://registry.yarnpkg.com/big.js/-/big.js-3.1.3.tgz#4cada2193652eb3ca9ec8e55c9015669c9806978" - -binary-extensions@^1.0.0: - version "1.7.0" - resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-1.7.0.tgz#6c1610db163abfb34edfe42fa423343a1e01185d" - -block-stream@*: - version "0.0.9" - resolved "https://registry.yarnpkg.com/block-stream/-/block-stream-0.0.9.tgz#13ebfe778a03205cfe03751481ebb4b3300c126a" - dependencies: - inherits "~2.0.0" - -boom@2.x.x: - version "2.10.1" - resolved "https://registry.yarnpkg.com/boom/-/boom-2.10.1.tgz#39c8918ceff5799f83f9492a848f625add0c766f" - dependencies: - hoek "2.x.x" - -bower@1.8.0: - version "1.8.0" - resolved "https://registry.yarnpkg.com/bower/-/bower-1.8.0.tgz#55dbebef0ad9155382d9e9d3e497c1372345b44a" - -brace-expansion@^1.0.0: - version "1.1.6" - resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.6.tgz#7197d7eaa9b87e648390ea61fc66c84427420df9" - dependencies: - balanced-match "^0.4.1" - concat-map "0.0.1" - -braces@^1.8.2: - version "1.8.5" - resolved "https://registry.yarnpkg.com/braces/-/braces-1.8.5.tgz#ba77962e12dff969d6b76711e914b737857bf6a7" - dependencies: - expand-range "^1.8.1" - preserve "^0.2.0" - repeat-element "^1.1.2" - -browserify-zlib@~0.1.4: - version "0.1.4" - resolved "https://registry.yarnpkg.com/browserify-zlib/-/browserify-zlib-0.1.4.tgz#bb35f8a519f600e0fa6b8485241c979d0141fb2d" - dependencies: - pako "~0.2.0" - -buffer-shims@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/buffer-shims/-/buffer-shims-1.0.0.tgz#9978ce317388c649ad8793028c3477ef044a8b51" - -buffer@^4.9.0: - version "4.9.1" - resolved "https://registry.yarnpkg.com/buffer/-/buffer-4.9.1.tgz#6d1bb601b07a4efced97094132093027c95bc298" - dependencies: - base64-js "^1.0.2" - ieee754 "^1.1.4" - isarray "^1.0.0" - -caller-path@^0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/caller-path/-/caller-path-0.1.0.tgz#94085ef63581ecd3daa92444a8fe94e82577751f" - dependencies: - callsites "^0.2.0" - -callsites@^0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/callsites/-/callsites-0.2.0.tgz#afab96262910a7f33c19a5775825c69f34e350ca" - -camelcase@^1.0.2: - version "1.2.1" - resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-1.2.1.tgz#9bb5304d2e0b56698b2c758b08a3eaa9daa58a39" - -caseless@~0.11.0: - version "0.11.0" - resolved "https://registry.yarnpkg.com/caseless/-/caseless-0.11.0.tgz#715b96ea9841593cc33067923f5ec60ebda4f7d7" - -center-align@^0.1.1: - version "0.1.3" - resolved "https://registry.yarnpkg.com/center-align/-/center-align-0.1.3.tgz#aa0d32629b6ee972200411cbd4461c907bc2b7ad" - dependencies: - align-text "^0.1.3" - lazy-cache "^1.0.3" - -chalk@^1.0.0, chalk@^1.1.0, chalk@^1.1.1, chalk@^1.1.3: - version "1.1.3" - resolved "https://registry.yarnpkg.com/chalk/-/chalk-1.1.3.tgz#a8115c55e4a702fe4d150abd3872822a7e09fc98" - dependencies: - ansi-styles "^2.2.1" - escape-string-regexp "^1.0.2" - has-ansi "^2.0.0" - strip-ansi "^3.0.0" - supports-color "^2.0.0" - -chokidar@^1.0.0: - version "1.6.1" - resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-1.6.1.tgz#2f4447ab5e96e50fb3d789fd90d4c72e0e4c70c2" - dependencies: - anymatch "^1.3.0" - async-each "^1.0.0" - glob-parent "^2.0.0" - inherits "^2.0.1" - is-binary-path "^1.0.0" - is-glob "^2.0.0" - path-is-absolute "^1.0.0" - readdirp "^2.0.0" - optionalDependencies: - fsevents "^1.0.0" - -circular-json@^0.3.0: - version "0.3.1" - resolved "https://registry.yarnpkg.com/circular-json/-/circular-json-0.3.1.tgz#be8b36aefccde8b3ca7aa2d6afc07a37242c0d2d" - -cli-cursor@^1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/cli-cursor/-/cli-cursor-1.0.2.tgz#64da3f7d56a54412e59794bd62dc35295e8f2987" - dependencies: - restore-cursor "^1.0.1" - -cli-width@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/cli-width/-/cli-width-2.1.0.tgz#b234ca209b29ef66fc518d9b98d5847b00edf00a" - -cliui@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/cliui/-/cliui-2.1.0.tgz#4b475760ff80264c762c3a1719032e91c7fea0d1" - dependencies: - center-align "^0.1.1" - right-align "^0.1.1" - wordwrap "0.0.2" - -clone@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/clone/-/clone-1.0.2.tgz#260b7a99ebb1edfe247538175f783243cb19d149" - -co@^4.6.0: - version "4.6.0" - resolved "https://registry.yarnpkg.com/co/-/co-4.6.0.tgz#6ea6bdf3d853ae54ccb8e47bfa0bf3f9031fb184" - -code-point-at@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/code-point-at/-/code-point-at-1.1.0.tgz#0d070b4d043a5bea33a2f1a40e2edb3d9a4ccf77" - -combined-stream@^1.0.5, combined-stream@~1.0.5: - version "1.0.5" - resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.5.tgz#938370a57b4a51dea2c77c15d5c5fdf895164009" - dependencies: - delayed-stream "~1.0.0" - -commander@^2.9.0: - version "2.9.0" - resolved "https://registry.yarnpkg.com/commander/-/commander-2.9.0.tgz#9c99094176e12240cb22d6c5146098400fe0f7d4" - dependencies: - graceful-readlink ">= 1.0.0" - -commondir@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/commondir/-/commondir-1.0.1.tgz#ddd800da0c66127393cca5950ea968a3aaf1253b" - -concat-map@0.0.1: - version "0.0.1" - resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" - -concat-stream@^1.4.6: - version "1.5.2" - resolved "https://registry.yarnpkg.com/concat-stream/-/concat-stream-1.5.2.tgz#708978624d856af41a5a741defdd261da752c266" - dependencies: - inherits "~2.0.1" - readable-stream "~2.0.0" - typedarray "~0.0.5" - -console-browserify@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/console-browserify/-/console-browserify-1.1.0.tgz#f0241c45730a9fc6323b206dbf38edc741d0bb10" - dependencies: - date-now "^0.1.4" - -console-control-strings@^1.0.0, console-control-strings@~1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/console-control-strings/-/console-control-strings-1.1.0.tgz#3d7cf4464db6446ea644bf4b39507f9851008e8e" - -constants-browserify@0.0.1: - version "0.0.1" - resolved "https://registry.yarnpkg.com/constants-browserify/-/constants-browserify-0.0.1.tgz#92577db527ba6c4cf0a4568d84bc031f441e21f2" - -core-util-is@~1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7" - -cryptiles@2.x.x: - version "2.0.5" - resolved "https://registry.yarnpkg.com/cryptiles/-/cryptiles-2.0.5.tgz#3bdfecdc608147c1c67202fa291e7dca59eaa3b8" - dependencies: - boom "2.x.x" - -crypto-browserify@~3.2.6: - version "3.2.8" - resolved "https://registry.yarnpkg.com/crypto-browserify/-/crypto-browserify-3.2.8.tgz#b9b11dbe6d9651dd882a01e6cc467df718ecf189" - dependencies: - pbkdf2-compat "2.0.1" - ripemd160 "0.2.0" - sha.js "2.2.6" - -d@^0.1.1, d@~0.1.1: - version "0.1.1" - resolved "https://registry.yarnpkg.com/d/-/d-0.1.1.tgz#da184c535d18d8ee7ba2aa229b914009fae11309" - dependencies: - es5-ext "~0.10.2" - -dashdash@^1.12.0: - version "1.14.0" - resolved "https://registry.yarnpkg.com/dashdash/-/dashdash-1.14.0.tgz#29e486c5418bf0f356034a993d51686a33e84141" - dependencies: - assert-plus "^1.0.0" - -date-now@^0.1.4: - version "0.1.4" - resolved "https://registry.yarnpkg.com/date-now/-/date-now-0.1.4.tgz#eaf439fd4d4848ad74e5cc7dbef200672b9e345b" - -debug@^2.1.1: - version "2.3.2" - resolved "https://registry.yarnpkg.com/debug/-/debug-2.3.2.tgz#94cb466ef7d6d2c7e5245cdd6e4104f2d0d70d30" - dependencies: - ms "0.7.2" - -debug@~2.2.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/debug/-/debug-2.2.0.tgz#f87057e995b1a1f6ae6a4960664137bc56f039da" - dependencies: - ms "0.7.1" - -decamelize@^1.0.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290" - -deep-extend@~0.4.0: - version "0.4.1" - resolved "https://registry.yarnpkg.com/deep-extend/-/deep-extend-0.4.1.tgz#efe4113d08085f4e6f9687759810f807469e2253" - -deep-is@~0.1.3: - version "0.1.3" - resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.3.tgz#b369d6fb5dbc13eecf524f91b070feedc357cf34" - -del@^2.0.2: - version "2.2.2" - resolved "https://registry.yarnpkg.com/del/-/del-2.2.2.tgz#c12c981d067846c84bcaf862cff930d907ffd1a8" - dependencies: - globby "^5.0.0" - is-path-cwd "^1.0.0" - is-path-in-cwd "^1.0.0" - object-assign "^4.0.1" - pify "^2.0.0" - pinkie-promise "^2.0.0" - rimraf "^2.2.8" - -delayed-stream@~1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619" - -delegates@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/delegates/-/delegates-1.0.0.tgz#84c6e159b81904fdca59a0ef44cd870d31250f9a" - -doctrine@^1.2.2: - version "1.5.0" - resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-1.5.0.tgz#379dce730f6166f76cefa4e6707a159b02c5a6fa" - dependencies: - esutils "^2.0.2" - isarray "^1.0.0" - -domain-browser@^1.1.1: - version "1.1.7" - resolved "https://registry.yarnpkg.com/domain-browser/-/domain-browser-1.1.7.tgz#867aa4b093faa05f1de08c06f4d7b21fdf8698bc" - -ecc-jsbn@~0.1.1: - version "0.1.1" - resolved "https://registry.yarnpkg.com/ecc-jsbn/-/ecc-jsbn-0.1.1.tgz#0fc73a9ed5f0d53c38193398523ef7e543777505" - dependencies: - jsbn "~0.1.0" - -emojis-list@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/emojis-list/-/emojis-list-2.1.0.tgz#4daa4d9db00f9819880c79fa457ae5b09a1fd389" - -enhanced-resolve@~0.9.0: - version "0.9.1" - resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-0.9.1.tgz#4d6e689b3725f86090927ccc86cd9f1635b89e2e" - dependencies: - graceful-fs "^4.1.2" - memory-fs "^0.2.0" - tapable "^0.1.8" - -errno@^0.1.3: - version "0.1.4" - resolved "https://registry.yarnpkg.com/errno/-/errno-0.1.4.tgz#b896e23a9e5e8ba33871fc996abd3635fc9a1c7d" - dependencies: - prr "~0.0.0" - -es5-ext@^0.10.7, es5-ext@^0.10.8, es5-ext@~0.10.11, es5-ext@~0.10.2, es5-ext@~0.10.7: - version "0.10.12" - resolved "https://registry.yarnpkg.com/es5-ext/-/es5-ext-0.10.12.tgz#aa84641d4db76b62abba5e45fd805ecbab140047" - dependencies: - es6-iterator "2" - es6-symbol "~3.1" - -es6-iterator@2: - version "2.0.0" - resolved "https://registry.yarnpkg.com/es6-iterator/-/es6-iterator-2.0.0.tgz#bd968567d61635e33c0b80727613c9cb4b096bac" - dependencies: - d "^0.1.1" - es5-ext "^0.10.7" - es6-symbol "3" - -es6-map@^0.1.3: - version "0.1.4" - resolved "https://registry.yarnpkg.com/es6-map/-/es6-map-0.1.4.tgz#a34b147be224773a4d7da8072794cefa3632b897" - dependencies: - d "~0.1.1" - es5-ext "~0.10.11" - es6-iterator "2" - es6-set "~0.1.3" - es6-symbol "~3.1.0" - event-emitter "~0.3.4" - -es6-set@~0.1.3: - version "0.1.4" - resolved "https://registry.yarnpkg.com/es6-set/-/es6-set-0.1.4.tgz#9516b6761c2964b92ff479456233a247dc707ce8" - dependencies: - d "~0.1.1" - es5-ext "~0.10.11" - es6-iterator "2" - es6-symbol "3" - event-emitter "~0.3.4" - -es6-symbol@~3.1, es6-symbol@~3.1.0, es6-symbol@3: - version "3.1.0" - resolved "https://registry.yarnpkg.com/es6-symbol/-/es6-symbol-3.1.0.tgz#94481c655e7a7cad82eba832d97d5433496d7ffa" - dependencies: - d "~0.1.1" - es5-ext "~0.10.11" - -es6-weak-map@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/es6-weak-map/-/es6-weak-map-2.0.1.tgz#0d2bbd8827eb5fb4ba8f97fbfea50d43db21ea81" - dependencies: - d "^0.1.1" - es5-ext "^0.10.8" - es6-iterator "2" - es6-symbol "3" - -escape-string-regexp@^1.0.2, escape-string-regexp@^1.0.5: - version "1.0.5" - resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" - -escope@^3.6.0: - version "3.6.0" - resolved "https://registry.yarnpkg.com/escope/-/escope-3.6.0.tgz#e01975e812781a163a6dadfdd80398dc64c889c3" - dependencies: - es6-map "^0.1.3" - es6-weak-map "^2.0.1" - esrecurse "^4.1.0" - estraverse "^4.1.1" - -eslint-config-standard@6.2.1: - version "6.2.1" - resolved "https://registry.yarnpkg.com/eslint-config-standard/-/eslint-config-standard-6.2.1.tgz#d3a68aafc7191639e7ee441e7348739026354292" - -eslint-loader@1.6.1: - version "1.6.1" - resolved "https://registry.yarnpkg.com/eslint-loader/-/eslint-loader-1.6.1.tgz#96c47c812772eeb077e3a81681818e671a2cabf5" - dependencies: - find-cache-dir "^0.1.1" - loader-utils "^0.2.7" - object-assign "^4.0.1" - object-hash "^1.1.4" - -eslint-plugin-promise@3.3.2: - version "3.3.2" - resolved "https://registry.yarnpkg.com/eslint-plugin-promise/-/eslint-plugin-promise-3.3.2.tgz#c1169ae6487a87cdeae44f659f4cf05131b8dc66" - -eslint-plugin-standard@2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/eslint-plugin-standard/-/eslint-plugin-standard-2.0.1.tgz#3589699ff9c917f2c25f76a916687f641c369ff3" - -eslint@3.10.0: - version "3.10.0" - resolved "https://registry.yarnpkg.com/eslint/-/eslint-3.10.0.tgz#4a90079046b3a89099eaa47787eafeb081e78209" - dependencies: - babel-code-frame "^6.16.0" - chalk "^1.1.3" - concat-stream "^1.4.6" - debug "^2.1.1" - doctrine "^1.2.2" - escope "^3.6.0" - espree "^3.3.1" - estraverse "^4.2.0" - esutils "^2.0.2" - file-entry-cache "^2.0.0" - glob "^7.0.3" - globals "^9.2.0" - ignore "^3.2.0" - imurmurhash "^0.1.4" - inquirer "^0.12.0" - is-my-json-valid "^2.10.0" - is-resolvable "^1.0.0" - js-yaml "^3.5.1" - json-stable-stringify "^1.0.0" - levn "^0.3.0" - lodash "^4.0.0" - mkdirp "^0.5.0" - natural-compare "^1.4.0" - optionator "^0.8.2" - path-is-inside "^1.0.1" - pluralize "^1.2.1" - progress "^1.1.8" - require-uncached "^1.0.2" - shelljs "^0.7.5" - strip-bom "^3.0.0" - strip-json-comments "~1.0.1" - table "^3.7.8" - text-table "~0.2.0" - user-home "^2.0.0" - -espree@^3.3.1: - version "3.3.2" - resolved "https://registry.yarnpkg.com/espree/-/espree-3.3.2.tgz#dbf3fadeb4ecb4d4778303e50103b3d36c88b89c" - dependencies: - acorn "^4.0.1" - acorn-jsx "^3.0.0" - -esprima@^2.6.0: - version "2.7.3" - resolved "https://registry.yarnpkg.com/esprima/-/esprima-2.7.3.tgz#96e3b70d5779f6ad49cd032673d1c312767ba581" - -esrecurse@^4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/esrecurse/-/esrecurse-4.1.0.tgz#4713b6536adf7f2ac4f327d559e7756bff648220" - dependencies: - estraverse "~4.1.0" - object-assign "^4.0.1" - -estraverse@^4.1.1, estraverse@^4.2.0: - version "4.2.0" - resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-4.2.0.tgz#0dee3fed31fcd469618ce7342099fc1afa0bdb13" - -estraverse@~4.1.0: - version "4.1.1" - resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-4.1.1.tgz#f6caca728933a850ef90661d0e17982ba47111a2" - -esutils@^2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.2.tgz#0abf4f1caa5bcb1f7a9d8acc6dea4faaa04bac9b" - -eve-raphael@0.5.0: - version "0.5.0" - resolved "https://registry.yarnpkg.com/eve-raphael/-/eve-raphael-0.5.0.tgz#17c754b792beef3fa6684d79cf5a47c63c4cda30" - -event-emitter@~0.3.4: - version "0.3.4" - resolved "https://registry.yarnpkg.com/event-emitter/-/event-emitter-0.3.4.tgz#8d63ddfb4cfe1fae3b32ca265c4c720222080bb5" - dependencies: - d "~0.1.1" - es5-ext "~0.10.7" - -events@^1.0.0: - version "1.1.1" - resolved "https://registry.yarnpkg.com/events/-/events-1.1.1.tgz#9ebdb7635ad099c70dcc4c2a1f5004288e8bd924" - -exit-hook@^1.0.0: - version "1.1.1" - resolved "https://registry.yarnpkg.com/exit-hook/-/exit-hook-1.1.1.tgz#f05ca233b48c05d54fff07765df8507e95c02ff8" - -expand-brackets@^0.1.4: - version "0.1.5" - resolved "https://registry.yarnpkg.com/expand-brackets/-/expand-brackets-0.1.5.tgz#df07284e342a807cd733ac5af72411e581d1177b" - dependencies: - is-posix-bracket "^0.1.0" - -expand-range@^1.8.1: - version "1.8.2" - resolved "https://registry.yarnpkg.com/expand-range/-/expand-range-1.8.2.tgz#a299effd335fe2721ebae8e257ec79644fc85337" - dependencies: - fill-range "^2.1.0" - -extend@~3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/extend/-/extend-3.0.0.tgz#5a474353b9f3353ddd8176dfd37b91c83a46f1d4" - -extglob@^0.3.1: - version "0.3.2" - resolved "https://registry.yarnpkg.com/extglob/-/extglob-0.3.2.tgz#2e18ff3d2f49ab2765cec9023f011daa8d8349a1" - dependencies: - is-extglob "^1.0.0" - -extsprintf@1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.0.2.tgz#e1080e0658e300b06294990cc70e1502235fd550" - -fast-levenshtein@~2.0.4: - version "2.0.5" - resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.5.tgz#bd33145744519ab1c36c3ee9f31f08e9079b67f2" - -figures@^1.3.5: - version "1.7.0" - resolved "https://registry.yarnpkg.com/figures/-/figures-1.7.0.tgz#cbe1e3affcf1cd44b80cadfed28dc793a9701d2e" - dependencies: - escape-string-regexp "^1.0.5" - object-assign "^4.1.0" - -file-entry-cache@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/file-entry-cache/-/file-entry-cache-2.0.0.tgz#c392990c3e684783d838b8c84a45d8a048458361" - dependencies: - flat-cache "^1.2.1" - object-assign "^4.0.1" - -filename-regex@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/filename-regex/-/filename-regex-2.0.0.tgz#996e3e80479b98b9897f15a8a58b3d084e926775" - -fill-range@^2.1.0: - version "2.2.3" - resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-2.2.3.tgz#50b77dfd7e469bc7492470963699fe7a8485a723" - dependencies: - is-number "^2.1.0" - isobject "^2.0.0" - randomatic "^1.1.3" - repeat-element "^1.1.2" - repeat-string "^1.5.2" - -find-cache-dir@^0.1.1: - version "0.1.1" - resolved "https://registry.yarnpkg.com/find-cache-dir/-/find-cache-dir-0.1.1.tgz#c8defae57c8a52a8a784f9e31c57c742e993a0b9" - dependencies: - commondir "^1.0.1" - mkdirp "^0.5.1" - pkg-dir "^1.0.0" - -find-up@^1.0.0: - version "1.1.2" - resolved "https://registry.yarnpkg.com/find-up/-/find-up-1.1.2.tgz#6b2e9822b1a2ce0a60ab64d610eccad53cb24d0f" - dependencies: - path-exists "^2.0.0" - pinkie-promise "^2.0.0" - -flat-cache@^1.2.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/flat-cache/-/flat-cache-1.2.1.tgz#6c837d6225a7de5659323740b36d5361f71691ff" - dependencies: - circular-json "^0.3.0" - del "^2.0.2" - graceful-fs "^4.1.2" - write "^0.2.1" - -for-in@^0.1.5: - version "0.1.6" - resolved "https://registry.yarnpkg.com/for-in/-/for-in-0.1.6.tgz#c9f96e89bfad18a545af5ec3ed352a1d9e5b4dc8" - -for-own@^0.1.4: - version "0.1.4" - resolved "https://registry.yarnpkg.com/for-own/-/for-own-0.1.4.tgz#0149b41a39088c7515f51ebe1c1386d45f935072" - dependencies: - for-in "^0.1.5" - -forever-agent@~0.6.1: - version "0.6.1" - resolved "https://registry.yarnpkg.com/forever-agent/-/forever-agent-0.6.1.tgz#fbc71f0c41adeb37f96c577ad1ed42d8fdacca91" - -form-data@~2.1.1: - version "2.1.2" - resolved "https://registry.yarnpkg.com/form-data/-/form-data-2.1.2.tgz#89c3534008b97eada4cbb157d58f6f5df025eae4" - dependencies: - asynckit "^0.4.0" - combined-stream "^1.0.5" - mime-types "^2.1.12" - -fs.realpath@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" - -fsevents@^1.0.0: - version "1.0.15" - resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-1.0.15.tgz#fa63f590f3c2ad91275e4972a6cea545fb0aae44" - dependencies: - nan "^2.3.0" - node-pre-gyp "^0.6.29" - -fstream-ignore@~1.0.5: - version "1.0.5" - resolved "https://registry.yarnpkg.com/fstream-ignore/-/fstream-ignore-1.0.5.tgz#9c31dae34767018fe1d249b24dada67d092da105" - dependencies: - fstream "^1.0.0" - inherits "2" - minimatch "^3.0.0" - -fstream@^1.0.0, fstream@^1.0.2, fstream@~1.0.10: - version "1.0.10" - resolved "https://registry.yarnpkg.com/fstream/-/fstream-1.0.10.tgz#604e8a92fe26ffd9f6fae30399d4984e1ab22822" - dependencies: - graceful-fs "^4.1.2" - inherits "~2.0.0" - mkdirp ">=0.5 0" - rimraf "2" - -gauge@~2.6.0: - version "2.6.0" - resolved "https://registry.yarnpkg.com/gauge/-/gauge-2.6.0.tgz#d35301ad18e96902b4751dcbbe40f4218b942a46" - dependencies: - aproba "^1.0.3" - console-control-strings "^1.0.0" - has-color "^0.1.7" - has-unicode "^2.0.0" - object-assign "^4.1.0" - signal-exit "^3.0.0" - string-width "^1.0.1" - strip-ansi "^3.0.1" - wide-align "^1.1.0" - -generate-function@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/generate-function/-/generate-function-2.0.0.tgz#6858fe7c0969b7d4e9093337647ac79f60dfbe74" - -generate-object-property@^1.1.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/generate-object-property/-/generate-object-property-1.2.0.tgz#9c0e1c40308ce804f4783618b937fa88f99d50d0" - dependencies: - is-property "^1.0.0" - -getpass@^0.1.1: - version "0.1.6" - resolved "https://registry.yarnpkg.com/getpass/-/getpass-0.1.6.tgz#283ffd9fc1256840875311c1b60e8c40187110e6" - dependencies: - assert-plus "^1.0.0" - -glob-base@^0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/glob-base/-/glob-base-0.3.0.tgz#dbb164f6221b1c0b1ccf82aea328b497df0ea3c4" - dependencies: - glob-parent "^2.0.0" - is-glob "^2.0.0" - -glob-parent@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-2.0.0.tgz#81383d72db054fcccf5336daa902f182f6edbb28" - dependencies: - is-glob "^2.0.0" - -glob@^7.0.0, glob@^7.0.3, glob@^7.0.5: - version "7.1.1" - resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.1.tgz#805211df04faaf1c63a3600306cdf5ade50b2ec8" - dependencies: - fs.realpath "^1.0.0" - inflight "^1.0.4" - inherits "2" - minimatch "^3.0.2" - once "^1.3.0" - path-is-absolute "^1.0.0" - -globals@^9.2.0: - version "9.13.0" - resolved "https://registry.yarnpkg.com/globals/-/globals-9.13.0.tgz#d97706b61600d8dbe94708c367d3fdcf48470b8f" - -globby@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/globby/-/globby-5.0.0.tgz#ebd84667ca0dbb330b99bcfc68eac2bc54370e0d" - dependencies: - array-union "^1.0.1" - arrify "^1.0.0" - glob "^7.0.3" - object-assign "^4.0.1" - pify "^2.0.0" - pinkie-promise "^2.0.0" - -graceful-fs@^4.1.2: - version "4.1.10" - resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.1.10.tgz#f2d720c22092f743228775c75e3612632501f131" - -"graceful-readlink@>= 1.0.0": - version "1.0.1" - resolved "https://registry.yarnpkg.com/graceful-readlink/-/graceful-readlink-1.0.1.tgz#4cafad76bc62f02fa039b2f94e9a3dd3a391a725" - -har-validator@~2.0.6: - version "2.0.6" - resolved "https://registry.yarnpkg.com/har-validator/-/har-validator-2.0.6.tgz#cdcbc08188265ad119b6a5a7c8ab70eecfb5d27d" - dependencies: - chalk "^1.1.1" - commander "^2.9.0" - is-my-json-valid "^2.12.4" - pinkie-promise "^2.0.0" - -has-ansi@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/has-ansi/-/has-ansi-2.0.0.tgz#34f5049ce1ecdf2b0649af3ef24e45ed35416d91" - dependencies: - ansi-regex "^2.0.0" - -has-color@^0.1.7: - version "0.1.7" - resolved "https://registry.yarnpkg.com/has-color/-/has-color-0.1.7.tgz#67144a5260c34fc3cca677d041daf52fe7b78b2f" - -has-flag@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-1.0.0.tgz#9d9e793165ce017a00f00418c43f942a7b1d11fa" - -has-unicode@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/has-unicode/-/has-unicode-2.0.1.tgz#e0e6fe6a28cf51138855e086d1691e771de2a8b9" - -hawk@~3.1.3: - version "3.1.3" - resolved "https://registry.yarnpkg.com/hawk/-/hawk-3.1.3.tgz#078444bd7c1640b0fe540d2c9b73d59678e8e1c4" - dependencies: - boom "2.x.x" - cryptiles "2.x.x" - hoek "2.x.x" - sntp "1.x.x" - -hoek@2.x.x: - version "2.16.3" - resolved "https://registry.yarnpkg.com/hoek/-/hoek-2.16.3.tgz#20bb7403d3cea398e91dc4710a8ff1b8274a25ed" - -http-browserify@^1.3.2: - version "1.7.0" - resolved "https://registry.yarnpkg.com/http-browserify/-/http-browserify-1.7.0.tgz#33795ade72df88acfbfd36773cefeda764735b20" - dependencies: - Base64 "~0.2.0" - inherits "~2.0.1" - -http-signature@~1.1.0: - version "1.1.1" - resolved "https://registry.yarnpkg.com/http-signature/-/http-signature-1.1.1.tgz#df72e267066cd0ac67fb76adf8e134a8fbcf91bf" - dependencies: - assert-plus "^0.2.0" - jsprim "^1.2.2" - sshpk "^1.7.0" - -https-browserify@0.0.0: - version "0.0.0" - resolved "https://registry.yarnpkg.com/https-browserify/-/https-browserify-0.0.0.tgz#b3ffdfe734b2a3d4a9efd58e8654c91fce86eafd" - -ieee754@^1.1.4: - version "1.1.8" - resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.1.8.tgz#be33d40ac10ef1926701f6f08a2d86fbfd1ad3e4" - -ignore@^3.2.0: - version "3.2.0" - resolved "https://registry.yarnpkg.com/ignore/-/ignore-3.2.0.tgz#8d88f03c3002a0ac52114db25d2c673b0bf1e435" - -imurmurhash@^0.1.4: - version "0.1.4" - resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea" - -indexof@0.0.1: - version "0.0.1" - resolved "https://registry.yarnpkg.com/indexof/-/indexof-0.0.1.tgz#82dc336d232b9062179d05ab3293a66059fd435d" - -inflight@^1.0.4: - version "1.0.6" - resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" - dependencies: - once "^1.3.0" - wrappy "1" - -inherits@^2.0.1, inherits@~2.0.0, inherits@~2.0.1, inherits@2: - version "2.0.3" - resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de" - -inherits@2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.1.tgz#b17d08d326b4423e568eff719f91b0b1cbdf69f1" - -ini@~1.3.0: - version "1.3.4" - resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.4.tgz#0537cb79daf59b59a1a517dff706c86ec039162e" - -inquirer@^0.12.0: - version "0.12.0" - resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-0.12.0.tgz#1ef2bfd63504df0bc75785fff8c2c41df12f077e" - dependencies: - ansi-escapes "^1.1.0" - ansi-regex "^2.0.0" - chalk "^1.0.0" - cli-cursor "^1.0.1" - cli-width "^2.0.0" - figures "^1.3.5" - lodash "^4.3.0" - readline2 "^1.0.1" - run-async "^0.1.0" - rx-lite "^3.1.2" - string-width "^1.0.1" - strip-ansi "^3.0.0" - through "^2.3.6" - -interpret@^0.6.4: - version "0.6.6" - resolved "https://registry.yarnpkg.com/interpret/-/interpret-0.6.6.tgz#fecd7a18e7ce5ca6abfb953e1f86213a49f1625b" - -interpret@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/interpret/-/interpret-1.0.1.tgz#d579fb7f693b858004947af39fa0db49f795602c" - -is-binary-path@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-1.0.1.tgz#75f16642b480f187a711c814161fd3a4a7655898" - dependencies: - binary-extensions "^1.0.0" - -is-buffer@^1.0.2: - version "1.1.4" - resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-1.1.4.tgz#cfc86ccd5dc5a52fa80489111c6920c457e2d98b" - -is-dotfile@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/is-dotfile/-/is-dotfile-1.0.2.tgz#2c132383f39199f8edc268ca01b9b007d205cc4d" - -is-equal-shallow@^0.1.3: - version "0.1.3" - resolved "https://registry.yarnpkg.com/is-equal-shallow/-/is-equal-shallow-0.1.3.tgz#2238098fc221de0bcfa5d9eac4c45d638aa1c534" - dependencies: - is-primitive "^2.0.0" - -is-extendable@^0.1.1: - version "0.1.1" - resolved "https://registry.yarnpkg.com/is-extendable/-/is-extendable-0.1.1.tgz#62b110e289a471418e3ec36a617d472e301dfc89" - -is-extglob@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-1.0.0.tgz#ac468177c4943405a092fc8f29760c6ffc6206c0" - -is-fullwidth-code-point@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz#ef9e31386f031a7f0d643af82fde50c457ef00cb" - dependencies: - number-is-nan "^1.0.0" - -is-fullwidth-code-point@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz#a3b30a5c4f199183167aaab93beefae3ddfb654f" - -is-glob@^2.0.0, is-glob@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-2.0.1.tgz#d096f926a3ded5600f3fdfd91198cb0888c2d863" - dependencies: - is-extglob "^1.0.0" - -is-my-json-valid@^2.10.0, is-my-json-valid@^2.12.4: - version "2.15.0" - resolved "https://registry.yarnpkg.com/is-my-json-valid/-/is-my-json-valid-2.15.0.tgz#936edda3ca3c211fd98f3b2d3e08da43f7b2915b" - dependencies: - generate-function "^2.0.0" - generate-object-property "^1.1.0" - jsonpointer "^4.0.0" - xtend "^4.0.0" - -is-number@^2.0.2, is-number@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/is-number/-/is-number-2.1.0.tgz#01fcbbb393463a548f2f466cce16dece49db908f" - dependencies: - kind-of "^3.0.2" - -is-path-cwd@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-path-cwd/-/is-path-cwd-1.0.0.tgz#d225ec23132e89edd38fda767472e62e65f1106d" - -is-path-in-cwd@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-path-in-cwd/-/is-path-in-cwd-1.0.0.tgz#6477582b8214d602346094567003be8a9eac04dc" - dependencies: - is-path-inside "^1.0.0" - -is-path-inside@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-path-inside/-/is-path-inside-1.0.0.tgz#fc06e5a1683fbda13de667aff717bbc10a48f37f" - dependencies: - path-is-inside "^1.0.1" - -is-posix-bracket@^0.1.0: - version "0.1.1" - resolved "https://registry.yarnpkg.com/is-posix-bracket/-/is-posix-bracket-0.1.1.tgz#3334dc79774368e92f016e6fbc0a88f5cd6e6bc4" - -is-primitive@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/is-primitive/-/is-primitive-2.0.0.tgz#207bab91638499c07b2adf240a41a87210034575" - -is-property@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/is-property/-/is-property-1.0.2.tgz#57fe1c4e48474edd65b09911f26b1cd4095dda84" - -is-resolvable@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-resolvable/-/is-resolvable-1.0.0.tgz#8df57c61ea2e3c501408d100fb013cf8d6e0cc62" - dependencies: - tryit "^1.0.1" - -is-typedarray@~1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-typedarray/-/is-typedarray-1.0.0.tgz#e479c80858df0c1b11ddda6940f96011fcda4a9a" - -isarray@^1.0.0, isarray@~1.0.0, isarray@1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11" - -isarray@0.0.1: - version "0.0.1" - resolved "https://registry.yarnpkg.com/isarray/-/isarray-0.0.1.tgz#8a18acfca9a8f4177e09abfc6038939b05d1eedf" - -isobject@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/isobject/-/isobject-2.1.0.tgz#f065561096a3f1da2ef46272f815c840d87e0c89" - dependencies: - isarray "1.0.0" - -isstream@~0.1.2: - version "0.1.2" - resolved "https://registry.yarnpkg.com/isstream/-/isstream-0.1.2.tgz#47e63f7af55afa6f92e1500e690eb8b8529c099a" - -jodid25519@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/jodid25519/-/jodid25519-1.0.2.tgz#06d4912255093419477d425633606e0e90782967" - dependencies: - jsbn "~0.1.0" - -js-tokens@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-2.0.0.tgz#79903f5563ee778cc1162e6dcf1a0027c97f9cb5" - -js-yaml@^3.5.1: - version "3.6.1" - resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.6.1.tgz#6e5fe67d8b205ce4d22fad05b7781e8dadcc4b30" - dependencies: - argparse "^1.0.7" - esprima "^2.6.0" - -jsbn@~0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/jsbn/-/jsbn-0.1.0.tgz#650987da0dd74f4ebf5a11377a2aa2d273e97dfd" - -json-schema@0.2.3: - version "0.2.3" - resolved "https://registry.yarnpkg.com/json-schema/-/json-schema-0.2.3.tgz#b480c892e59a2f05954ce727bd3f2a4e882f9e13" - -json-stable-stringify@^1.0.0, json-stable-stringify@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/json-stable-stringify/-/json-stable-stringify-1.0.1.tgz#9a759d39c5f2ff503fd5300646ed445f88c4f9af" - dependencies: - jsonify "~0.0.0" - -json-stringify-safe@~5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz#1296a2d58fd45f19a0f6ce01d65701e2c735b6eb" - -json5@^0.5.0: - version "0.5.0" - resolved "https://registry.yarnpkg.com/json5/-/json5-0.5.0.tgz#9b20715b026cbe3778fd769edccd822d8332a5b2" - -jsonify@~0.0.0: - version "0.0.0" - resolved "https://registry.yarnpkg.com/jsonify/-/jsonify-0.0.0.tgz#2c74b6ee41d93ca51b7b5aaee8f503631d252a73" - -jsonpointer@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/jsonpointer/-/jsonpointer-4.0.0.tgz#6661e161d2fc445f19f98430231343722e1fcbd5" - -jsprim@^1.2.2: - version "1.3.1" - resolved "https://registry.yarnpkg.com/jsprim/-/jsprim-1.3.1.tgz#2a7256f70412a29ee3670aaca625994c4dcff252" - dependencies: - extsprintf "1.0.2" - json-schema "0.2.3" - verror "1.3.6" - -kind-of@^3.0.2: - version "3.0.4" - resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-3.0.4.tgz#7b8ecf18a4e17f8269d73b501c9f232c96887a74" - dependencies: - is-buffer "^1.0.2" - -lazy-cache@^1.0.3: - version "1.0.4" - resolved "https://registry.yarnpkg.com/lazy-cache/-/lazy-cache-1.0.4.tgz#a1d78fc3a50474cb80845d3b3b6e1da49a446e8e" - -levn@^0.3.0, levn@~0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/levn/-/levn-0.3.0.tgz#3b09924edf9f083c0490fdd4c0bc4421e04764ee" - dependencies: - prelude-ls "~1.1.2" - type-check "~0.3.2" - -loader-utils@^0.2.11, loader-utils@^0.2.7: - version "0.2.16" - resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-0.2.16.tgz#f08632066ed8282835dff88dfb52704765adee6d" - dependencies: - big.js "^3.1.3" - emojis-list "^2.0.0" - json5 "^0.5.0" - object-assign "^4.0.1" - -lodash@^4.0.0, lodash@^4.3.0: - version "4.16.6" - resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.16.6.tgz#d22c9ac660288f3843e16ba7d2b5d06cca27d777" - -longest@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/longest/-/longest-1.0.1.tgz#30a0b2da38f73770e8294a0d22e6625ed77d0097" - -memory-fs@^0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/memory-fs/-/memory-fs-0.2.0.tgz#f2bb25368bc121e391c2520de92969caee0a0290" - -memory-fs@~0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/memory-fs/-/memory-fs-0.3.0.tgz#7bcc6b629e3a43e871d7e29aca6ae8a7f15cbb20" - dependencies: - errno "^0.1.3" - readable-stream "^2.0.1" - -micromatch@^2.1.5: - version "2.3.11" - resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-2.3.11.tgz#86677c97d1720b363431d04d0d15293bd38c1565" - dependencies: - arr-diff "^2.0.0" - array-unique "^0.2.1" - braces "^1.8.2" - expand-brackets "^0.1.4" - extglob "^0.3.1" - filename-regex "^2.0.0" - is-extglob "^1.0.0" - is-glob "^2.0.1" - kind-of "^3.0.2" - normalize-path "^2.0.1" - object.omit "^2.0.0" - parse-glob "^3.0.4" - regex-cache "^0.4.2" - -mime-db@~1.24.0: - version "1.24.0" - resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.24.0.tgz#e2d13f939f0016c6e4e9ad25a8652f126c467f0c" - -mime-types@^2.1.12, mime-types@~2.1.7: - version "2.1.12" - resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.12.tgz#152ba256777020dd4663f54c2e7bc26381e71729" - dependencies: - mime-db "~1.24.0" - -minimatch@^3.0.0, minimatch@^3.0.2: - version "3.0.3" - resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.3.tgz#2a4e4090b96b2db06a9d7df01055a62a77c9b774" - dependencies: - brace-expansion "^1.0.0" - -minimist@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.0.tgz#a35008b20f41383eec1fb914f4cd5df79a264284" - -minimist@~0.0.1: - version "0.0.10" - resolved "https://registry.yarnpkg.com/minimist/-/minimist-0.0.10.tgz#de3f98543dbf96082be48ad1a0c7cda836301dcf" - -minimist@0.0.8: - version "0.0.8" - resolved "https://registry.yarnpkg.com/minimist/-/minimist-0.0.8.tgz#857fcabfc3397d2625b8228262e86aa7a011b05d" - -mkdirp@^0.5.0, mkdirp@^0.5.1, "mkdirp@>=0.5 0", mkdirp@~0.5.0, mkdirp@~0.5.1: - version "0.5.1" - resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.1.tgz#30057438eac6cf7f8c4767f38648d6697d75c903" - dependencies: - minimist "0.0.8" - -ms@0.7.1: - version "0.7.1" - resolved "https://registry.yarnpkg.com/ms/-/ms-0.7.1.tgz#9cd13c03adbff25b65effde7ce864ee952017098" - -ms@0.7.2: - version "0.7.2" - resolved "https://registry.yarnpkg.com/ms/-/ms-0.7.2.tgz#ae25cf2512b3885a1d95d7f037868d8431124765" - -mute-stream@0.0.5: - version "0.0.5" - resolved "https://registry.yarnpkg.com/mute-stream/-/mute-stream-0.0.5.tgz#8fbfabb0a98a253d3184331f9e8deb7372fac6c0" - -nan@^2.3.0: - version "2.4.0" - resolved "https://registry.yarnpkg.com/nan/-/nan-2.4.0.tgz#fb3c59d45fe4effe215f0b890f8adf6eb32d2232" - -natural-compare@^1.4.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7" - -node-libs-browser@^0.6.0: - version "0.6.0" - resolved "https://registry.yarnpkg.com/node-libs-browser/-/node-libs-browser-0.6.0.tgz#244806d44d319e048bc8607b5cc4eaf9a29d2e3c" - dependencies: - assert "^1.1.1" - browserify-zlib "~0.1.4" - buffer "^4.9.0" - console-browserify "^1.1.0" - constants-browserify "0.0.1" - crypto-browserify "~3.2.6" - domain-browser "^1.1.1" - events "^1.0.0" - http-browserify "^1.3.2" - https-browserify "0.0.0" - os-browserify "~0.1.2" - path-browserify "0.0.0" - process "^0.11.0" - punycode "^1.2.4" - querystring-es3 "~0.2.0" - readable-stream "^1.1.13" - stream-browserify "^1.0.0" - string_decoder "~0.10.25" - timers-browserify "^1.0.1" - tty-browserify "0.0.0" - url "~0.10.1" - util "~0.10.3" - vm-browserify "0.0.4" - -node-pre-gyp@^0.6.29: - version "0.6.31" - resolved "https://registry.yarnpkg.com/node-pre-gyp/-/node-pre-gyp-0.6.31.tgz#d8a00ddaa301a940615dbcc8caad4024d58f6017" - dependencies: - mkdirp "~0.5.1" - nopt "~3.0.6" - npmlog "^4.0.0" - rc "~1.1.6" - request "^2.75.0" - rimraf "~2.5.4" - semver "~5.3.0" - tar "~2.2.1" - tar-pack "~3.3.0" - -node-uuid@~1.4.7: - version "1.4.7" - resolved "https://registry.yarnpkg.com/node-uuid/-/node-uuid-1.4.7.tgz#6da5a17668c4b3dd59623bda11cf7fa4c1f60a6f" - -nopt@~3.0.6: - version "3.0.6" - resolved "https://registry.yarnpkg.com/nopt/-/nopt-3.0.6.tgz#c6465dbf08abcd4db359317f79ac68a646b28ff9" - dependencies: - abbrev "1" - -normalize-path@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-2.0.1.tgz#47886ac1662760d4261b7d979d241709d3ce3f7a" - -npmlog@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/npmlog/-/npmlog-4.0.0.tgz#e094503961c70c1774eb76692080e8d578a9f88f" - dependencies: - are-we-there-yet "~1.1.2" - console-control-strings "~1.1.0" - gauge "~2.6.0" - set-blocking "~2.0.0" - -number-is-nan@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/number-is-nan/-/number-is-nan-1.0.1.tgz#097b602b53422a522c1afb8790318336941a011d" - -oauth-sign@~0.8.1: - version "0.8.2" - resolved "https://registry.yarnpkg.com/oauth-sign/-/oauth-sign-0.8.2.tgz#46a6ab7f0aead8deae9ec0565780b7d4efeb9d43" - -object-assign@^4.0.1, object-assign@^4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.0.tgz#7a3b3d0e98063d43f4c03f2e8ae6cd51a86883a0" - -object-hash@^1.1.4: - version "1.1.5" - resolved "https://registry.yarnpkg.com/object-hash/-/object-hash-1.1.5.tgz#bdd844e030d0861b692ca175c6cab6868ec233d7" - -object.omit@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/object.omit/-/object.omit-2.0.1.tgz#1a9c744829f39dbb858c76ca3579ae2a54ebd1fa" - dependencies: - for-own "^0.1.4" - is-extendable "^0.1.1" - -once@^1.3.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" - dependencies: - wrappy "1" - -once@~1.3.3: - version "1.3.3" - resolved "https://registry.yarnpkg.com/once/-/once-1.3.3.tgz#b2e261557ce4c314ec8304f3fa82663e4297ca20" - dependencies: - wrappy "1" - -onetime@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/onetime/-/onetime-1.1.0.tgz#a1f7838f8314c516f05ecefcbc4ccfe04b4ed789" - -optimist@~0.6.0: - version "0.6.1" - resolved "https://registry.yarnpkg.com/optimist/-/optimist-0.6.1.tgz#da3ea74686fa21a19a111c326e90eb15a0196686" - dependencies: - minimist "~0.0.1" - wordwrap "~0.0.2" - -optionator@^0.8.2: - version "0.8.2" - resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.8.2.tgz#364c5e409d3f4d6301d6c0b4c05bba50180aeb64" - dependencies: - deep-is "~0.1.3" - fast-levenshtein "~2.0.4" - levn "~0.3.0" - prelude-ls "~1.1.2" - type-check "~0.3.2" - wordwrap "~1.0.0" - -os-browserify@~0.1.2: - version "0.1.2" - resolved "https://registry.yarnpkg.com/os-browserify/-/os-browserify-0.1.2.tgz#49ca0293e0b19590a5f5de10c7f265a617d8fe54" - -os-homedir@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/os-homedir/-/os-homedir-1.0.2.tgz#ffbc4988336e0e833de0c168c7ef152121aa7fb3" - -pako@~0.2.0: - version "0.2.9" - resolved "https://registry.yarnpkg.com/pako/-/pako-0.2.9.tgz#f3f7522f4ef782348da8161bad9ecfd51bf83a75" - -parse-glob@^3.0.4: - version "3.0.4" - resolved "https://registry.yarnpkg.com/parse-glob/-/parse-glob-3.0.4.tgz#b2c376cfb11f35513badd173ef0bb6e3a388391c" - dependencies: - glob-base "^0.3.0" - is-dotfile "^1.0.0" - is-extglob "^1.0.0" - is-glob "^2.0.0" - -path-browserify@0.0.0: - version "0.0.0" - resolved "https://registry.yarnpkg.com/path-browserify/-/path-browserify-0.0.0.tgz#a0b870729aae214005b7d5032ec2cbbb0fb4451a" - -path-exists@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-2.1.0.tgz#0feb6c64f0fc518d9a754dd5efb62c7022761f4b" - dependencies: - pinkie-promise "^2.0.0" - -path-is-absolute@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" - -path-is-inside@^1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/path-is-inside/-/path-is-inside-1.0.2.tgz#365417dede44430d1c11af61027facf074bdfc53" - -pbkdf2-compat@2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/pbkdf2-compat/-/pbkdf2-compat-2.0.1.tgz#b6e0c8fa99494d94e0511575802a59a5c142f288" - -pify@^2.0.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/pify/-/pify-2.3.0.tgz#ed141a6ac043a849ea588498e7dca8b15330e90c" - -pinkie-promise@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/pinkie-promise/-/pinkie-promise-2.0.1.tgz#2135d6dfa7a358c069ac9b178776288228450ffa" - dependencies: - pinkie "^2.0.0" - -pinkie@^2.0.0: - version "2.0.4" - resolved "https://registry.yarnpkg.com/pinkie/-/pinkie-2.0.4.tgz#72556b80cfa0d48a974e80e77248e80ed4f7f870" - -pkg-dir@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-1.0.0.tgz#7a4b508a8d5bb2d629d447056ff4e9c9314cf3d4" - dependencies: - find-up "^1.0.0" - -pluralize@^1.2.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/pluralize/-/pluralize-1.2.1.tgz#d1a21483fd22bb41e58a12fa3421823140897c45" - -prelude-ls@~1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.1.2.tgz#21932a549f5e52ffd9a827f570e04be62a97da54" - -preserve@^0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/preserve/-/preserve-0.2.0.tgz#815ed1f6ebc65926f865b310c0713bcb3315ce4b" - -process-nextick-args@~1.0.6: - version "1.0.7" - resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-1.0.7.tgz#150e20b756590ad3f91093f25a4f2ad8bff30ba3" - -process@^0.11.0, process@~0.11.0: - version "0.11.9" - resolved "https://registry.yarnpkg.com/process/-/process-0.11.9.tgz#7bd5ad21aa6253e7da8682264f1e11d11c0318c1" - -progress@^1.1.8: - version "1.1.8" - resolved "https://registry.yarnpkg.com/progress/-/progress-1.1.8.tgz#e260c78f6161cdd9b0e56cc3e0a85de17c7a57be" - -prr@~0.0.0: - version "0.0.0" - resolved "https://registry.yarnpkg.com/prr/-/prr-0.0.0.tgz#1a84b85908325501411853d0081ee3fa86e2926a" - -punycode@^1.2.4, punycode@^1.4.1: - version "1.4.1" - resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.4.1.tgz#c0d5a63b2718800ad8e1eb0fa5269c84dd41845e" - -punycode@1.3.2: - version "1.3.2" - resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.3.2.tgz#9653a036fb7c1ee42342f2325cceefea3926c48d" - -qs@~6.3.0: - version "6.3.0" - resolved "https://registry.yarnpkg.com/qs/-/qs-6.3.0.tgz#f403b264f23bc01228c74131b407f18d5ea5d442" - -querystring-es3@~0.2.0: - version "0.2.1" - resolved "https://registry.yarnpkg.com/querystring-es3/-/querystring-es3-0.2.1.tgz#9ec61f79049875707d69414596fd907a4d711e73" - -querystring@0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/querystring/-/querystring-0.2.0.tgz#b209849203bb25df820da756e747005878521620" - -qunitjs@2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/qunitjs/-/qunitjs-2.0.1.tgz#2110056518f6e4bcaf0794a55ce87729f43ab353" - -randomatic@^1.1.3: - version "1.1.5" - resolved "https://registry.yarnpkg.com/randomatic/-/randomatic-1.1.5.tgz#5e9ef5f2d573c67bd2b8124ae90b5156e457840b" - dependencies: - is-number "^2.0.2" - kind-of "^3.0.2" - -rc@~1.1.6: - version "1.1.6" - resolved "https://registry.yarnpkg.com/rc/-/rc-1.1.6.tgz#43651b76b6ae53b5c802f1151fa3fc3b059969c9" - dependencies: - deep-extend "~0.4.0" - ini "~1.3.0" - minimist "^1.2.0" - strip-json-comments "~1.0.4" - -readable-stream@^1.0.27-1, readable-stream@^1.1.13: - version "1.1.14" - resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-1.1.14.tgz#7cf4c54ef648e3813084c636dd2079e166c081d9" - dependencies: - core-util-is "~1.0.0" - inherits "~2.0.1" - isarray "0.0.1" - string_decoder "~0.10.x" - -"readable-stream@^2.0.0 || ^1.1.13", readable-stream@^2.0.1, readable-stream@^2.0.2: - version "2.2.1" - resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.2.1.tgz#c459a6687ad6195f936b959870776edef27a7655" - dependencies: - buffer-shims "^1.0.0" - core-util-is "~1.0.0" - inherits "~2.0.1" - isarray "~1.0.0" - process-nextick-args "~1.0.6" - string_decoder "~0.10.x" - util-deprecate "~1.0.1" - -readable-stream@~2.0.0: - version "2.0.6" - resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.0.6.tgz#8f90341e68a53ccc928788dacfcd11b36eb9b78e" - dependencies: - core-util-is "~1.0.0" - inherits "~2.0.1" - isarray "~1.0.0" - process-nextick-args "~1.0.6" - string_decoder "~0.10.x" - util-deprecate "~1.0.1" - -readable-stream@~2.1.4: - version "2.1.5" - resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.1.5.tgz#66fa8b720e1438b364681f2ad1a63c618448c9d0" - dependencies: - buffer-shims "^1.0.0" - core-util-is "~1.0.0" - inherits "~2.0.1" - isarray "~1.0.0" - process-nextick-args "~1.0.6" - string_decoder "~0.10.x" - util-deprecate "~1.0.1" - -readdirp@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-2.1.0.tgz#4ed0ad060df3073300c48440373f72d1cc642d78" - dependencies: - graceful-fs "^4.1.2" - minimatch "^3.0.2" - readable-stream "^2.0.2" - set-immediate-shim "^1.0.1" - -readline2@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/readline2/-/readline2-1.0.1.tgz#41059608ffc154757b715d9989d199ffbf372e35" - dependencies: - code-point-at "^1.0.0" - is-fullwidth-code-point "^1.0.0" - mute-stream "0.0.5" - -rechoir@^0.6.2: - version "0.6.2" - resolved "https://registry.yarnpkg.com/rechoir/-/rechoir-0.6.2.tgz#85204b54dba82d5742e28c96756ef43af50e3384" - dependencies: - resolve "^1.1.6" - -regex-cache@^0.4.2: - version "0.4.3" - resolved "https://registry.yarnpkg.com/regex-cache/-/regex-cache-0.4.3.tgz#9b1a6c35d4d0dfcef5711ae651e8e9d3d7114145" - dependencies: - is-equal-shallow "^0.1.3" - is-primitive "^2.0.0" - -repeat-element@^1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/repeat-element/-/repeat-element-1.1.2.tgz#ef089a178d1483baae4d93eb98b4f9e4e11d990a" - -repeat-string@^1.5.2: - version "1.6.1" - resolved "https://registry.yarnpkg.com/repeat-string/-/repeat-string-1.6.1.tgz#8dcae470e1c88abc2d600fff4a776286da75e637" - -request@^2.75.0: - version "2.78.0" - resolved "https://registry.yarnpkg.com/request/-/request-2.78.0.tgz#e1c8dec346e1c81923b24acdb337f11decabe9cc" - dependencies: - aws-sign2 "~0.6.0" - aws4 "^1.2.1" - caseless "~0.11.0" - combined-stream "~1.0.5" - extend "~3.0.0" - forever-agent "~0.6.1" - form-data "~2.1.1" - har-validator "~2.0.6" - hawk "~3.1.3" - http-signature "~1.1.0" - is-typedarray "~1.0.0" - isstream "~0.1.2" - json-stringify-safe "~5.0.1" - mime-types "~2.1.7" - node-uuid "~1.4.7" - oauth-sign "~0.8.1" - qs "~6.3.0" - stringstream "~0.0.4" - tough-cookie "~2.3.0" - tunnel-agent "~0.4.1" - -require-uncached@^1.0.2: - version "1.0.3" - resolved "https://registry.yarnpkg.com/require-uncached/-/require-uncached-1.0.3.tgz#4e0d56d6c9662fd31e43011c4b95aa49955421d3" - dependencies: - caller-path "^0.1.0" - resolve-from "^1.0.0" - -resolve-from@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-1.0.1.tgz#26cbfe935d1aeeeabb29bc3fe5aeb01e93d44226" - -resolve@^1.1.6: - version "1.1.7" - resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.1.7.tgz#203114d82ad2c5ed9e8e0411b3932875e889e97b" - -restore-cursor@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-1.0.1.tgz#34661f46886327fed2991479152252df92daa541" - dependencies: - exit-hook "^1.0.0" - onetime "^1.0.0" - -right-align@^0.1.1: - version "0.1.3" - resolved "https://registry.yarnpkg.com/right-align/-/right-align-0.1.3.tgz#61339b722fe6a3515689210d24e14c96148613ef" - dependencies: - align-text "^0.1.1" - -rimraf@^2.2.8, rimraf@~2.5.1, rimraf@~2.5.4, rimraf@2: - version "2.5.4" - resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.5.4.tgz#96800093cbf1a0c86bd95b4625467535c29dfa04" - dependencies: - glob "^7.0.5" - -ripemd160@0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/ripemd160/-/ripemd160-0.2.0.tgz#2bf198bde167cacfa51c0a928e84b68bbe171fce" - -run-async@^0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/run-async/-/run-async-0.1.0.tgz#c8ad4a5e110661e402a7d21b530e009f25f8e389" - dependencies: - once "^1.3.0" - -rx-lite@^3.1.2: - version "3.1.2" - resolved "https://registry.yarnpkg.com/rx-lite/-/rx-lite-3.1.2.tgz#19ce502ca572665f3b647b10939f97fd1615f102" - -semver@~5.3.0: - version "5.3.0" - resolved "https://registry.yarnpkg.com/semver/-/semver-5.3.0.tgz#9b2ce5d3de02d17c6012ad326aa6b4d0cf54f94f" - -set-blocking@~2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/set-blocking/-/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7" - -set-immediate-shim@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/set-immediate-shim/-/set-immediate-shim-1.0.1.tgz#4b2b1b27eb808a9f8dcc481a58e5e56f599f3f61" - -sha.js@2.2.6: - version "2.2.6" - resolved "https://registry.yarnpkg.com/sha.js/-/sha.js-2.2.6.tgz#17ddeddc5f722fb66501658895461977867315ba" - -shelljs@^0.7.5: - version "0.7.5" - resolved "https://registry.yarnpkg.com/shelljs/-/shelljs-0.7.5.tgz#2eef7a50a21e1ccf37da00df767ec69e30ad0675" - dependencies: - glob "^7.0.0" - interpret "^1.0.0" - rechoir "^0.6.2" - -signal-exit@^3.0.0: - version "3.0.1" - resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.1.tgz#5a4c884992b63a7acd9badb7894c3ee9cfccad81" - -slice-ansi@0.0.4: - version "0.0.4" - resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-0.0.4.tgz#edbf8903f66f7ce2f8eafd6ceed65e264c831b35" - -sntp@1.x.x: - version "1.0.9" - resolved "https://registry.yarnpkg.com/sntp/-/sntp-1.0.9.tgz#6541184cc90aeea6c6e7b35e2659082443c66198" - dependencies: - hoek "2.x.x" - -source-list-map@~0.1.0: - version "0.1.6" - resolved "https://registry.yarnpkg.com/source-list-map/-/source-list-map-0.1.6.tgz#e1e6f94f0b40c4d28dcf8f5b8766e0e45636877f" - -source-map@~0.4.1: - version "0.4.4" - resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.4.4.tgz#eba4f5da9c0dc999de68032d8b4f76173652036b" - dependencies: - amdefine ">=0.0.4" - -source-map@~0.5.1: - version "0.5.6" - resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.6.tgz#75ce38f52bf0733c5a7f0c118d81334a2bb5f412" - -sprintf-js@~1.0.2: - version "1.0.3" - resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c" - -sshpk@^1.7.0: - version "1.10.1" - resolved "https://registry.yarnpkg.com/sshpk/-/sshpk-1.10.1.tgz#30e1a5d329244974a1af61511339d595af6638b0" - dependencies: - asn1 "~0.2.3" - assert-plus "^1.0.0" - dashdash "^1.12.0" - getpass "^0.1.1" - optionalDependencies: - bcrypt-pbkdf "^1.0.0" - ecc-jsbn "~0.1.1" - jodid25519 "^1.0.0" - jsbn "~0.1.0" - tweetnacl "~0.14.0" - -stream-browserify@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/stream-browserify/-/stream-browserify-1.0.0.tgz#bf9b4abfb42b274d751479e44e0ff2656b6f1193" - dependencies: - inherits "~2.0.1" - readable-stream "^1.0.27-1" - -string_decoder@~0.10.25, string_decoder@~0.10.x: - version "0.10.31" - resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-0.10.31.tgz#62e203bc41766c6c28c9fc84301dab1c5310fa94" - -string-width@^1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/string-width/-/string-width-1.0.2.tgz#118bdf5b8cdc51a2a7e70d211e07e2b0b9b107d3" - dependencies: - code-point-at "^1.0.0" - is-fullwidth-code-point "^1.0.0" - strip-ansi "^3.0.0" - -string-width@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/string-width/-/string-width-2.0.0.tgz#635c5436cc72a6e0c387ceca278d4e2eec52687e" - dependencies: - is-fullwidth-code-point "^2.0.0" - strip-ansi "^3.0.0" - -stringstream@~0.0.4: - version "0.0.5" - resolved "https://registry.yarnpkg.com/stringstream/-/stringstream-0.0.5.tgz#4e484cd4de5a0bbbee18e46307710a8a81621878" - -strip-ansi@^3.0.0, strip-ansi@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-3.0.1.tgz#6a385fb8853d952d5ff05d0e8aaf94278dc63dcf" - dependencies: - ansi-regex "^2.0.0" - -strip-bom@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-3.0.0.tgz#2334c18e9c759f7bdd56fdef7e9ae3d588e68ed3" - -strip-json-comments@~1.0.1, strip-json-comments@~1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-1.0.4.tgz#1e15fbcac97d3ee99bf2d73b4c656b082bbafb91" - -supports-color@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-2.0.0.tgz#535d045ce6b6363fa40117084629995e9df324c7" - -supports-color@^3.1.0: - version "3.1.2" - resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-3.1.2.tgz#72a262894d9d408b956ca05ff37b2ed8a6e2a2d5" - dependencies: - has-flag "^1.0.0" - -table@^3.7.8: - version "3.8.3" - resolved "https://registry.yarnpkg.com/table/-/table-3.8.3.tgz#2bbc542f0fda9861a755d3947fefd8b3f513855f" - dependencies: - ajv "^4.7.0" - ajv-keywords "^1.0.0" - chalk "^1.1.1" - lodash "^4.0.0" - slice-ansi "0.0.4" - string-width "^2.0.0" - -tapable@^0.1.8, tapable@~0.1.8: - version "0.1.10" - resolved "https://registry.yarnpkg.com/tapable/-/tapable-0.1.10.tgz#29c35707c2b70e50d07482b5d202e8ed446dafd4" - -tar-pack@~3.3.0: - version "3.3.0" - resolved "https://registry.yarnpkg.com/tar-pack/-/tar-pack-3.3.0.tgz#30931816418f55afc4d21775afdd6720cee45dae" - dependencies: - debug "~2.2.0" - fstream "~1.0.10" - fstream-ignore "~1.0.5" - once "~1.3.3" - readable-stream "~2.1.4" - rimraf "~2.5.1" - tar "~2.2.1" - uid-number "~0.0.6" - -tar@~2.2.1: - version "2.2.1" - resolved "https://registry.yarnpkg.com/tar/-/tar-2.2.1.tgz#8e4d2a256c0e2185c6b18ad694aec968b83cb1d1" - dependencies: - block-stream "*" - fstream "^1.0.2" - inherits "2" - -text-table@~0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4" - -through@^2.3.6: - version "2.3.8" - resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5" - -timers-browserify@^1.0.1: - version "1.4.2" - resolved "https://registry.yarnpkg.com/timers-browserify/-/timers-browserify-1.4.2.tgz#c9c58b575be8407375cb5e2462dacee74359f41d" - dependencies: - process "~0.11.0" - -tough-cookie@~2.3.0: - version "2.3.2" - resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-2.3.2.tgz#f081f76e4c85720e6c37a5faced737150d84072a" - dependencies: - punycode "^1.4.1" - -tryit@^1.0.1: - version "1.0.3" - resolved "https://registry.yarnpkg.com/tryit/-/tryit-1.0.3.tgz#393be730a9446fd1ead6da59a014308f36c289cb" - -tty-browserify@0.0.0: - version "0.0.0" - resolved "https://registry.yarnpkg.com/tty-browserify/-/tty-browserify-0.0.0.tgz#a157ba402da24e9bf957f9aa69d524eed42901a6" - -tunnel-agent@~0.4.1: - version "0.4.3" - resolved "https://registry.yarnpkg.com/tunnel-agent/-/tunnel-agent-0.4.3.tgz#6373db76909fe570e08d73583365ed828a74eeeb" - -tweetnacl@^0.14.3, tweetnacl@~0.14.0: - version "0.14.3" - resolved "https://registry.yarnpkg.com/tweetnacl/-/tweetnacl-0.14.3.tgz#3da382f670f25ded78d7b3d1792119bca0b7132d" - -type-check@~0.3.2: - version "0.3.2" - resolved "https://registry.yarnpkg.com/type-check/-/type-check-0.3.2.tgz#5884cab512cf1d355e3fb784f30804b2b520db72" - dependencies: - prelude-ls "~1.1.2" - -typedarray@~0.0.5: - version "0.0.6" - resolved "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777" - -uglify-js@~2.7.3: - version "2.7.4" - resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-2.7.4.tgz#a295a0de12b6a650c031c40deb0dc40b14568bd2" - dependencies: - async "~0.2.6" - source-map "~0.5.1" - uglify-to-browserify "~1.0.0" - yargs "~3.10.0" - -uglify-to-browserify@~1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/uglify-to-browserify/-/uglify-to-browserify-1.0.2.tgz#6e0924d6bda6b5afe349e39a6d632850a0f882b7" - -uid-number@~0.0.6: - version "0.0.6" - resolved "https://registry.yarnpkg.com/uid-number/-/uid-number-0.0.6.tgz#0ea10e8035e8eb5b8e4449f06da1c730663baa81" - -url@~0.10.1: - version "0.10.3" - resolved "https://registry.yarnpkg.com/url/-/url-0.10.3.tgz#021e4d9c7705f21bbf37d03ceb58767402774c64" - dependencies: - punycode "1.3.2" - querystring "0.2.0" - -user-home@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/user-home/-/user-home-2.0.0.tgz#9c70bfd8169bc1dcbf48604e0f04b8b49cde9e9f" - dependencies: - os-homedir "^1.0.0" - -util-deprecate@~1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" - -util@~0.10.3, util@0.10.3: - version "0.10.3" - resolved "https://registry.yarnpkg.com/util/-/util-0.10.3.tgz#7afb1afe50805246489e3db7fe0ed379336ac0f9" - dependencies: - inherits "2.0.1" - -verror@1.3.6: - version "1.3.6" - resolved "https://registry.yarnpkg.com/verror/-/verror-1.3.6.tgz#cff5df12946d297d2baaefaa2689e25be01c005c" - dependencies: - extsprintf "1.0.2" - -vm-browserify@0.0.4: - version "0.0.4" - resolved "https://registry.yarnpkg.com/vm-browserify/-/vm-browserify-0.0.4.tgz#5d7ea45bbef9e4a6ff65f95438e0a87c357d5a73" - dependencies: - indexof "0.0.1" - -watchpack@^0.2.1: - version "0.2.9" - resolved "https://registry.yarnpkg.com/watchpack/-/watchpack-0.2.9.tgz#62eaa4ab5e5ba35fdfc018275626e3c0f5e3fb0b" - dependencies: - async "^0.9.0" - chokidar "^1.0.0" - graceful-fs "^4.1.2" - -webpack-core@~0.6.0: - version "0.6.8" - resolved "https://registry.yarnpkg.com/webpack-core/-/webpack-core-0.6.8.tgz#edf9135de00a6a3c26dd0f14b208af0aa4af8d0a" - dependencies: - source-list-map "~0.1.0" - source-map "~0.4.1" - -webpack@1.13.3: - version "1.13.3" - resolved "https://registry.yarnpkg.com/webpack/-/webpack-1.13.3.tgz#e79c46fe5a37c5ca70084ba0894c595cdcb42815" - dependencies: - acorn "^3.0.0" - async "^1.3.0" - clone "^1.0.2" - enhanced-resolve "~0.9.0" - interpret "^0.6.4" - loader-utils "^0.2.11" - memory-fs "~0.3.0" - mkdirp "~0.5.0" - node-libs-browser "^0.6.0" - optimist "~0.6.0" - supports-color "^3.1.0" - tapable "~0.1.8" - uglify-js "~2.7.3" - watchpack "^0.2.1" - webpack-core "~0.6.0" - -wide-align@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/wide-align/-/wide-align-1.1.0.tgz#40edde802a71fea1f070da3e62dcda2e7add96ad" - dependencies: - string-width "^1.0.1" - -window-size@0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/window-size/-/window-size-0.1.0.tgz#5438cd2ea93b202efa3a19fe8887aee7c94f9c9d" - -wordwrap@~0.0.2: - version "0.0.3" - resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-0.0.3.tgz#a3d5da6cd5c0bc0008d37234bbaf1bed63059107" - -wordwrap@~1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-1.0.0.tgz#27584810891456a4171c8d0226441ade90cbcaeb" - -wordwrap@0.0.2: - version "0.0.2" - resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-0.0.2.tgz#b79669bb42ecb409f83d583cad52ca17eaa1643f" - -wrappy@1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" - -write@^0.2.1: - version "0.2.1" - resolved "https://registry.yarnpkg.com/write/-/write-0.2.1.tgz#5fc03828e264cea3fe91455476f7a3c566cb0757" - dependencies: - mkdirp "^0.5.1" - -xtend@^4.0.0: - version "4.0.1" - resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.1.tgz#a5c6d532be656e23db820efb943a1f04998d63af" - -yargs@~3.10.0: - version "3.10.0" - resolved "https://registry.yarnpkg.com/yargs/-/yargs-3.10.0.tgz#f7ee7bd857dd7c1d2d38c0e74efbd681d1431fd1" - dependencies: - camelcase "^1.0.2" - cliui "^2.1.0" - decamelize "^1.0.0" - window-size "0.1.0" - diff --git a/admin/bower_components/select2/.bower.json b/admin/bower_components/select2/.bower.json deleted file mode 100644 index a216938..0000000 --- a/admin/bower_components/select2/.bower.json +++ /dev/null @@ -1,24 +0,0 @@ -{ - "name": "select2", - "description": "Select2 is a jQuery based replacement for select boxes. It supports searching, remote data sets, and infinite scrolling of results.", - "main": [ - "dist/js/select2.js", - "src/scss/core.scss" - ], - "license": "MIT", - "repository": { - "type": "git", - "url": "git@github.com:select2/select2.git" - }, - "homepage": "https://github.com/ivaynberg/select2", - "version": "4.0.4", - "_release": "4.0.4", - "_resolution": { - "type": "version", - "tag": "4.0.4", - "commit": "16f6b10628f9000918708cef9b3da615119cf6d6" - }, - "_source": "https://github.com/ivaynberg/select2.git", - "_target": "^4.0.3", - "_originalSource": "select2" -} \ No newline at end of file diff --git a/admin/bower_components/select2/.editorconfig b/admin/bower_components/select2/.editorconfig deleted file mode 100644 index 54f4d3b..0000000 --- a/admin/bower_components/select2/.editorconfig +++ /dev/null @@ -1,6 +0,0 @@ -[*] -indent_style = space -end_of_line = lf - -[*.js] -indent_size = 2 diff --git a/admin/bower_components/select2/.github/CONTRIBUTING.md b/admin/bower_components/select2/.github/CONTRIBUTING.md deleted file mode 100644 index c4d0069..0000000 --- a/admin/bower_components/select2/.github/CONTRIBUTING.md +++ /dev/null @@ -1,204 +0,0 @@ -Contributing to Select2 -======================= -Looking to contribute something to Select2? **Here's how you can help.** - -Please take a moment to review this document in order to make the contribution -process easy and effective for everyone involved. - -Following these guidelines helps to communicate that you respect the time of -the developers managing and developing this open source project. In return, -they should reciprocate that respect in addressing your issue or assessing -patches and features. - -Using the issue tracker ------------------------ -When [reporting bugs][reporting-bugs] or -[requesting features][requesting-features], the -[issue tracker on GitHub][issue-tracker] is the recommended channel to use. - -The issue tracker **is not** a place for support requests. The -[mailing list][community] or [IRC channel][community] are better places to -get help. - -Reporting bugs with Select2 ---------------------------- -We really appreciate clear bug reports that _consistently_ show an issue -_within Select2_. - -The ideal bug report follows these guidelines: - -1. **Use the [GitHub issue search][issue-search]** &mdash; Check if the issue - has already been reported. -2. **Check if the issue has been fixed** &mdash; Try to reproduce the problem - using the code in the `master` branch. -3. **Isolate the problem** &mdash; Try to create an - [isolated test case][isolated-case] that consistently reproduces the problem. - -Please try to be as detailed as possible in your bug report, especially if an -isolated test case cannot be made. Some useful questions to include the answer -to are: - -- What steps can be used to reproduce the issue? -- What is the bug and what is the expected outcome? -- What browser(s) and Operating System have you tested with? -- Does the bug happen consistently across all tested browsers? -- What version of jQuery are you using? And what version of Select2? -- Are you using Select2 with other plugins? - -All of these questions will help others fix and identify any potential bugs. - -Requesting features in Select2 ------------------------------- -Select2 is a large library that carries with it a lot of functionality. Because -of this, many feature requests will not be implemented in the core library. - -Before starting work on a major feature for Select2, **contact the -[community][community] first** or you may risk spending a considerable amount of -time on something which the project developers are not interested in bringing -into the project. - -Contributing changes to Select2 -------------------------------- -Select2 is made up of multiple submodules that all come together to make the -standard and extended builds that are available to users. The build system uses -Node.js to manage and compile the submodules, all of which is done using the -Grunt build system. - -### Installing development dependencies - -Select2 can be built and developed on any system which supports Node.js. The -preferred Node.js version is 0.10, but 0.12 and later versions can be used -without any noticeable issues. You can download Node.js at -[their website][nodejs]. - -All other required Node.js packages can be installed using [npm][npm], which -comes bundled alongside Node.js. - -```bash -cd /path/to/select2/repo -npm install -``` - -You may need to install libsass on your system if it is not already available -in order to build the SASS files which generate the CSS for themes and the main -component. - -In order to build and serve the documentation, you need to have [Jekyll][jekyll] -installed on your system. - -### Building the Select2 component - -Select2 uses the [Grunt][grunt] build task system and defines a few custom -tasks for common routines. One of them is the `compile` task, which compiles -the JavaScript and CSS and produces the final files. - -```bash -cd /path/to/select2/repo -grunt compile -``` - -You can also generate the minified versions (`.min.js` files) by executing the -`minify` task after compiling. - -```bash -cd /path/to/select2/repo -grunt minify -``` - -### Building the documentation - -Using the Grunt build system, you run Jekyll and serve the documentation -locally. This will also set up the examples to use the latest version of -Select2 that has been built. - -```bash -cd /path/to/select2/repo -grunt docs -``` - -### Running tests - -Select2 uses the QUnit test system to test individual components. - -```bash -cd /path/to/selct2/repo -grunt test -``` - -### Submitting a pull request - -We use GitHub's pull request system for submitting patches. Here are some -guidelines to follow when creating the pull request for your fix. - -1. Make sure to create a ticket for your pull request. This will serve as the -bug ticket, and any discussion about the bug will take place there. Your pull -request will be focused on the specific changes that fix the bug. -2. Make sure to reference the ticket you are fixing within your pull request. -This will allow us to close off the ticket once we merge the pull request, or -follow up on the ticket if there are any related blocking issues. -3. Explain why the specific change was made. Not everyone who is reviewing your -pull request will be familiar with the problem it is fixing. -4. Run your tests first. If your tests aren't passing, the pull request won't -be able to be merged. If you're breaking existing tests, make sure that you -aren't causing any breaking changes. -5. Only include source changes. While it's not required, only including changes -from the `src` directory will prevent merge conflicts from occurring. Making -this happen can be as a simple as not committing changes from the `dist` -directory. - -By following these steps, you will make it easier for your pull request to be -reviewed and eventually merged. - -Triaging issues and pull requests ---------------------------------- -Anyone can help the project maintainers triage issues and review pull requests. - -### Handling new issues - -Select2 regularly receives new issues which need to be tested and organized. - -When a new issue that comes in that is similar to another existing issue, it -should be checked to make sure it is not a duplicate. Duplicates issues should -be marked by replying to the issue with "Duplicate of #[issue number]" where -`[issue number]` is the url or issue number for the existing issue. This will -allow the project maintainers to quickly close off additional issues and keep -the discussion focused within a single issue. - -If you can test issues that are reported to Select2 that contain test cases and -confirm under what conditions bugs happen, that will allow others to identify -what causes a bug quicker. - -### Reviewing pull requests - -It is very common for pull requests to be opened for issues that contain a clear -solution to the problem. These pull requests should be rigorously reviewed by -the community before being accepted. If you are not sure about a piece of -submitted code, or know of a better way to do something, do not hesitate to make -a comment on the pull request. - -### Reviving old tickets - -If you come across tickets which have not been updated for a while, you are -encouraged to revive them. While this can be as simple as saying `:+1:`, it is -best if you can include more information on the issue. Common bugs and feature -requests are more likely to be fixed, whether it is by the community or the -developers, so keeping tickets up to date is encouraged. - -Licensing ---------- - -It should also be made clear that **all code contributed to Select** must be -licensable under the [MIT license][licensing]. Code that cannot be released -under this license **cannot be accepted** into the project. - -[community]: https://select2.github.io/community.html -[grunt]: http://gruntjs.com/ -[isolated-case]: http://css-tricks.com/6263-reduced-test-cases/ -[issue-search]: https://github.com/select2/select2/search?q=&type=Issues -[issue-tracker]: https://github.com/select2/select2/issues -[jekyll]: https://jekyllrb.com/docs/installation/ -[licensing]: https://github.com/select2/select2/blob/master/LICENSE.md -[nodejs]: https://nodejs.org/ -[npm]: https://www.npmjs.com/ -[reporting-bugs]: #reporting-bugs-with-select2 -[requesting-features]: #requesting-features-in-select2 diff --git a/admin/bower_components/select2/.github/ISSUE_TEMPLATE.md b/admin/bower_components/select2/.github/ISSUE_TEMPLATE.md deleted file mode 100644 index 8333884..0000000 --- a/admin/bower_components/select2/.github/ISSUE_TEMPLATE.md +++ /dev/null @@ -1,46 +0,0 @@ -## Prerequisites - -- [ ] I have searched for similar issues in both open and closed tickets and cannot find a duplicate -- [ ] The issue still exists against the latest `master` branch of Select2 -- [ ] This is not a usage question (Those should be directed to the [community](https://select2.github.io/community.html)) -- [ ] I have attempted to find the simplest possible steps to reproduce the issue -- [ ] I have included a failing test as a pull request (Optional) - -## Steps to reproduce the issue - -1. -2. -3. - -## Expected behavior and actual behavior - -When I follow those steps, I see... - -I was expecting... - -## Environment - -Browsers - -- [ ] Google Chrome -- [ ] Mozilla Firefox -- [ ] Internet Explorer - -Operating System - -- [ ] Windows -- [ ] Mac OS X -- [ ] Linux -- [ ] Mobile - -Libraries - -- jQuery version: -- Select2 version: - -## Isolating the problem - -- [ ] This bug happens [on the examples page](https://select2.github.io/examples.html) -- [ ] The bug happens consistently across all tested browsers -- [ ] This bug happens when using Select2 without other plugins -- [ ] I can reproduce this bug in [a jsbin](https://jsbin.com/) diff --git a/admin/bower_components/select2/.github/PULL_REQUEST_TEMPLATE.md b/admin/bower_components/select2/.github/PULL_REQUEST_TEMPLATE.md deleted file mode 100644 index 82395c7..0000000 --- a/admin/bower_components/select2/.github/PULL_REQUEST_TEMPLATE.md +++ /dev/null @@ -1,13 +0,0 @@ -This pull request includes a - -- [ ] Bug fix -- [ ] New feature -- [ ] Translation - -The following changes were made - -- -- -- - -If this is related to an existing ticket, include a link to it as well. diff --git a/admin/bower_components/select2/.gitignore b/admin/bower_components/select2/.gitignore deleted file mode 100644 index aa970da..0000000 --- a/admin/bower_components/select2/.gitignore +++ /dev/null @@ -1,3 +0,0 @@ -node_modules -dist/js/i18n/build.txt -.sass-cache diff --git a/admin/bower_components/select2/.jshintignore b/admin/bower_components/select2/.jshintignore deleted file mode 100644 index ba5a30f..0000000 --- a/admin/bower_components/select2/.jshintignore +++ /dev/null @@ -1,4 +0,0 @@ -src/js/banner.*.js -src/js/wrapper.*.js -tests/vendor/*.js -tests/helpers.js diff --git a/admin/bower_components/select2/.jshintrc b/admin/bower_components/select2/.jshintrc deleted file mode 100644 index 9429926..0000000 --- a/admin/bower_components/select2/.jshintrc +++ /dev/null @@ -1,25 +0,0 @@ -{ - "bitwise": true, - "camelcase": true, - "curly": true, - "es3": true, - "eqnull": true, - "freeze": true, - "globals": { - "console": false, - "define": false, - "document": false, - "MockContainer": false, - "module": false, - "QUnit": false, - "require": false, - "test": false, - "window": false - }, - "indent": 2, - "maxlen": 80, - "noarg": true, - "nonew": true, - "quotmark": "single", - "undef": true -} diff --git a/admin/bower_components/select2/.travis.yml b/admin/bower_components/select2/.travis.yml deleted file mode 100644 index 0af4c69..0000000 --- a/admin/bower_components/select2/.travis.yml +++ /dev/null @@ -1,22 +0,0 @@ -language: node_js - -sudo: false - -node_js: - - 0.10 - -env: - global: - - secure: XMNK8GVxkwKa6oLl7nJwgg/wmY1YDk5rrMd+UXz26EDCsMDbiy1P7GhN2fEiBSLaQ7YfEuvaDcmzQxTrT0YTHp1PDzb2o9J4tIDdEkqPcv1y8xMaYDfmsN0rBPdBwZEg9H5zUgi7OdUbrGswSYxsKCE3x8EOqK89104HyOo1LN4= - - secure: BU5BPRx6H4O3WJ509YPixjUxg+hDF3z2BVJX6NiGmKWweqvCEYFfiiHLwDEgp/ynRcF9vGVi1V4Ly1jq7f8NIajbDZ5q443XchZFYFg78K/EwD5mK6LYt16zb7+Jn0KbzwHeGRGzc9AvcEYlW6i634cSCm4n3BnqtF5PpogSzdw= - -script: - - grunt ci - -notifications: - email: false - irc: - channels: - - "chat.freenode.net#select2" - on_success: change - on_failure: always diff --git a/admin/bower_components/select2/CHANGELOG.md b/admin/bower_components/select2/CHANGELOG.md deleted file mode 100644 index 3ae60af..0000000 --- a/admin/bower_components/select2/CHANGELOG.md +++ /dev/null @@ -1,254 +0,0 @@ -# Change Log - -## 4.0.4 - -### New features / Improvements -- Make tag matching case insensitive [https://github.com/select2/select2/commit/cb9a90457867ffb14c7b1550bb67e872e0a5c2dd, https://github.com/select2/select2/commit/1167bace78cd3b1a918c1b04f3bac54674eab62b] -- Support selecting options with blank or `0` option values [https://github.com/select2/select2/commit/16b4840c0e2df0461998e3b464ee0a546173950d, https://github.com/select2/select2/commit/0358ee528765157234643d289bce6b8ca5889c72] - -### Bug fixes -- Fix issue with entire form losing focus when tabbing away from a Select2 control (#4419) -- Fix UMD support for CommonJS [https://github.com/select2/select2/commit/45a877345482956021161203ac789c25f40a7d5e] - -### Documentation -- Github Pages documentation has been deprecated, replaced with https://github.com/select2/docs -- Add django-autocomplete-light to integrations [https://github.com/select2/select2/pull/4597] -- Correct typo in options page [https://github.com/select2/select2/pull/4389] -- Correct misspelling in AJAX query parameters example [https://github.com/select2/select2/pull/4435] -- "highlight" should be "focus" in focus example [https://github.com/select2/select2/pull/4441] -- Correct misspelling in `<select>` serialization example [https://github.com/select2/select2/pull/4538] -- Correct typos in documentation [https://github.com/select2/select2/pull/4663] - -### Translations -- Add `errorLoading` Hungarian translation [https://github.com/select2/select2/commit/7d1d13352321e21670ff1c6cba7413aa264fd57a] -- Add `errorLoading` German translation [https://github.com/select2/select2/commit/4df965219ea4c39147fde9335bc260840465933a] -- Add Slovene language [https://github.com/select2/select2/commit/8e6422c570a87da8d89c45daf0d253695a943c84] -- Add `errorLoading` Galician translation [https://github.com/select2/select2/commit/8fcc6202c37f4e06d951342bf142a3b906b6b8e3] -- Add `errorLoading` Thai translation [https://github.com/select2/select2/commit/625fc78ee616baedf64aa37357403b4b72c7363c] -- Add `searching` and `errorLoading` Finnish translations [https://github.com/select2/select2/pull/4730] -- Add `errorLoading` Turkish translation [https://github.com/select2/select2/commit/fd4a0825315c7055347726d5818c999279f96ff8, https://github.com/select2/select2/commit/751b36767f9f28b9de9428d5e8035c9a404915d9] -- Add Armenian language [https://github.com/select2/select2/commit/f6fa52dcc02341df1523f50348f2effc54ee2911] - -## 4.0.3 - -This is the third bugfix release of Select2 4.0.0. It builds upon the [second bugfix release](https://github.com/select2/select2/releases/tag/4.0.2) and fixes many common issues. - -### New features / Improvements -- The old `dropdownAutoWidth` option now properly works [https://github.com/select2/select2/commit/fe26b083eb830836061de1458e483782cefef424] -- A `focus` event on the original `<select>` is now handled [https://github.com/select2/select2/commit/31e7a1d4c52ed7477769fcad5d15166ae3c9b4d0] -- Adding and removing options now refreshes the selection automatically [https://github.com/select2/select2/commit/ea79a197e0ffe55aa600eed6d18cbd1c804c3176] - -### Bug fixes -- `select2('option')` no longer mutate the arguments when working on multiple elements [https://github.com/select2/select2/commit/c2c1aeef31c95c6df5545c900a4e1782d712497c] -- Better detect aborted requests [https://github.com/select2/select2/commit/cfb66f5e4f71a56c46a6890c5dde4b7f24f11fa8] -- New options are now properly created during tokenization [https://github.com/select2/select2/commit/3b8cd2e36990e695e4cb4b966c8658e7ca1574dc] -- Fix positioning bug with non-static parents for the dropdown [https://github.com/select2/select2/pull/4267] -- Infinite scrolling no longer resets the keyboard focus [https://github.com/select2/select2/commit/e897d008a672da262ba84cee2a144578696ada29, https://github.com/select2/select2/commit/9f581285d88128b29a01fc1e5fd2d445d610b553] -- `selectOnClose` now works properly with `closeOnSelect` [https://github.com/select2/select2/commit/481c43883e23874e9c35879d173eb8cc5b994b12] -- Apply `ajax.delay` to empty search terms as well [https://github.com/select2/select2/commit/4b9e02f02211248be25ac4c16d4635cf38237bb9] - -### Documentation -- Added example for attaching event listeners [https://github.com/select2/select2/commit/84d6b5d840f7f4e6b7a2fb3f08424bf5495c876d] -- Correct link to the [Select2 Bootstrap Theme](https://github.com/select2/select2-bootstrap-theme) [https://github.com/select2/select2/pull/4318] -- Added example for using a `<label>` [https://github.com/select2/select2/commit/3bc7f4ac78b58eff8cd17b3273596638c3c9c5c1] -- Add documentation for `ajax.url` [https://github.com/select2/select2/commit/5a831afb9a7d46e8f20aec21164cfbfd182024de] -- Added favicon [https://github.com/select2/select2/pull/4379] - -### Translations -- Add Khmer translation [https://github.com/select2/select2/pull/4246] -- Added Norwegian bokmaal for `errorLoading` [https://github.com/select2/select2/pull/4259] -- Fixed pluralization in Lithuanian translation [https://github.com/select2/select2/commit/5b5eddd183c87bf43165b3a98e03eabe10e9fa58] -- Add French translation for `errorLoading` [https://github.com/select2/select2/commit/b1ea28bb7d8c02b3b352f558031ccfc8041122eb] -- Add Greek translation [https://github.com/select2/select2/pull/4139] - -## 4.0.2 - -This is the second bugfix release of Select2 4.0.0. It builds upon the [first release candidate of Select2 4.0.2](https://github.com/select2/select2/releases/tag/4.0.2-rc.1) with some minor improvements. - -### New features / Improvements - -- Added `insertTag` option to control the placement of the `tags` option [https://github.com/select2/select2/pull/4008] -- Added handler for AJAX errors [https://github.com/select2/select2/issues/3501] -- Added insertTag to control the tag position [https://github.com/select2/select2/pull/4008] - -### Bug fixes - -- Fixed positioning issues with static dropdown parents [https://github.com/select2/select2/issues/3970] -- Fixed existing selections not always being respected with array data [https://github.com/select2/select2/issues/3990] -- Sanitize automatically generated ids so CSS identifiers can be used [https://github.com/select2/select2/issues/3618] -- Recursively apply defaults so AJAX defaults can be set [https://github.com/select2/select2/commit/983cd8e765c5345bfe7d3bdcc3b0c882a35461ca] -- No need to recalculate the top of the dropdown twice [https://github.com/select2/select2/pull/4155] - -### Documentation - -- Updated Bootstrap and Font Awesome dependencies [https://github.com/select2/select2/commit/a5e539b509778eabeb8ce79e191b3ee1e81f6deb, https://github.com/select2/select2/commit/81a4a68b113e0d3e0fb1d0f8b1c33ae1b48ba04f, https://github.com/select2/select2/commit/6369f5f173fb81ec692213782945cc737e248da5] -- Use Jekyll's highlighting instead of prettify [https://github.com/select2/select2/commit/54441e6a22be3969dd934ccb769f5d7dde684bfb, https://github.com/select2/select2/commit/74387b98632c75b06d15d83ad5359b9daf0f5dcb, https://github.com/select2/select2/commit/a126b53b4c90fac33b5d855894647cd8bcac3558, https://github.com/select2/select2/commit/75163d67cb80e4279965a97e9eeda5b171806085] -- Corrected responsive width example to properly show it working [https://github.com/select2/select2/commit/63d531a9c0ab51f05327492a56f3245777762b45] -- Replaced protocol-relative URLs with HTTPS protocol [https://github.com/select2/select2/pull/4127] -- Code snippets for mapping `id` and `text` [https://github.com/select2/select2/issues/4086] -- Document how to trigger `change` just for Select2 [https://github.com/select2/select2/issues/3620] -- Added notes about DOM events [https://github.com/select2/select2/commit/37dbe059fce4578b46b7561e6243b7fdc63ac002] - -### Translations -- Correct Romanian translation [https://github.com/select2/select2/commit/72d905f9e026d49e7c600f37a1ce742c404654d7] - -## 4.0.1 - -This is the first bugfix release of Select2 4.0.0. It builds upon the [first release candidate of Select2 4.0.1](https://github.com/select2/select2/releases/tag/4.0.1-rc.1) with some minor improvements. - -### New features / improvements -- The option container is now passed in as the second argument when templating selections using `templateResult` [https://github.com/select2/select2/commit/dc516e7073605723be59bc727b96a3b3dea1ae5a] -- The option container is now passed in as the second argument when templating selections using `templateSelection` [https://github.com/select2/select2/pull/3324] -- You can immediately start typing to search when tabbing into a multiple select [https://github.com/select2/select2/commit/02cca7baa7b78e73cdcf393172ee3a54be387167, https://github.com/select2/select2/commit/79cdcc0956e242c1ce642bbaa93e538c54f4be0] -- All parameters passed in for AJAX requests are now set as query string parameters by default [https://github.com/select2/select2/issues/3548] - -### Bug fixes -- The search box will now be properly sized after removing a selection [https://github.com/select2/select2/commit/5f80c5d9f81f3c5398c3e6e3e84fd6c67c8873f1] -- Dropdown results will now be spoken by screen readers [https://github.com/select2/select2/commit/9fae3d74e373fc646da4e39a0c2ab11efa808c3f] -- Options are now properly cloned when initializing multiple instances at once [https://github.com/select2/select2/commit/3c8366e8769233a6b20ade934fe629279e7be6ff] -- `selectOnClose` and now be used with `closeOnSelect` without getting a stack overflow [https://github.com/select2/select2/commit/393ca4cf7f7f7097d3a994bda3dbf195e945eba1] -- Fixed positioning with non-static parents [https://github.com/select2/select2/commit/c9216b4b966653dd63a67e815b47899ef5325298] -- Fixed bug where multiple selects with placeholders were buggy in IE [https://github.com/select2/select2/issues/3300] -- Fixed bug where AJAX selects could not be initialized with array data [https://github.com/select2/select2/pull/3375] -- `:all:` is now correctly removed when used in `containerCss` and `dropdownCss` options [https://github.com/select2/select2/pull/3464] -- Fixed bug where the multiple select search box would appear on the left in RTL mode [https://github.com/select2/select2/pull/3502] -- Change ALT + UP to close the dropdown instead of opening it [https://github.com/select2/select2/commit/d2346cc33186c2a00fa2dad29e8e559c42bfea00] -- Fix focus issue with the multiple select search box when the `change` event was triggered [https://github.com/select2/select2/commit/698fe7b9e187e182f679aa679eb8b0ecb64a846b, https://github.com/select2/select2/commit/88503d2c67dc7f4fb9395a17f17edfe4948cf738, https://github.com/select2/select2/commit/dd2990adead92593a2dffff6ae004ea8b647d130] -- Fix bug in `ArrayAdapter` where the existing `<option>` data would be used instead of the array data [https://github.com/select2/select2/pull/3565] -- Remove random call to `$dropdownContainer.width()` in the `AttachBody` decorator [https://github.com/select2/select2/pull/3654] -- Fix memory leak in `AttachBody` decorator [https://github.com/select2/select2/commit/671f5a2ce21005090e0b69059799cd3dd1fbbf84] -- Selections can no longer be removed when Select2 is in a disabled state [https://github.com/select2/select2/commit/68d068f1d2c7722d011d285a291d1f974bf09772, https://github.com/select2/select2/commit/7d8f86cbf85ebd2179195ff6a2a7a1c5dcb9da58] -- Remove redundant `open` event trigger [https://github.com/select2/select2/pull/3507] -- Correct references to `this` in `ajax.data` and `ajax.url` callback functions [https://github.com/select2/select2/issues/3361] -- Apply select2('option') calls on all elements [https://github.com/select2/select2/pull/3495] - -### Design - -- Fixed original `<select>` not always being hidden correctly in some cases [https://github.com/select2/select2/pull/3301] -- Fix potential issue with Bootstrap's gradients in Internet Explorer [https://github.com/select2/select2/pull/3307] -- Improve compatibility with Zurb Foundation [https://github.com/select2/select2/pull/3290] -- Remove padding on mobile safari search field in multiple selects [https://github.com/select2/select2/pull/3605] -- Fix the clear button appearing beneath long text [https://github.com/select2/select2/issues/3306] -- Migrate the CSS classes for the "Loading more results" message to BEM [https://github.com/select2/select2/issues/3889] -- Fix inline search not displaying properly in Safari [https://github.com/select2/select2/issues/3459] - -### Documentation - -- New documentation theme designed by @fk [https://github.com/select2/select2/pull/3376, https://github.com/select2/select2/pull/3467, https://github.com/select2/select2/pull/3488] -- Update ajax example to reflect pagination [https://github.com/select2/select2/pull/3357] -- Fix incorrect option name in `maxiumSelectionLength` example [https://github.com/select2/select2/pull/3454] -- Fix typos in the disabled mode/results examples [https://github.com/select2/select2/pull/3665] -- Fix `Option` parameters in the 4.0 announcement [https://github.com/select2/select2/pull/3547] -- Fix invalid JSON in the tags example within the 4.0 announcement [https://github.com/select2/select2/pull/3637] - -### Translations -- Added Cyrillic variant of the Serbian language [https://github.com/select2/select2/pull/3943] -- Corrected Thai "no results found" translation [https://github.com/select2/select2/pull/3782] -- Swapped the `inputTooLong` and `inputTooShort` messages in the Galician translation [https://github.com/select2/select2/pull/3291] -- Fix improper grammar in Dutch translation [https://github.com/select2/select2/pull/3692] -- Add Japanese translation [https://github.com/select2/select2/pull/3477] -- Polish translation: Fixed typo in maximum selected message [https://github.com/select2/select2/pull/3587] -- Add Malay translation [https://github.com/select2/select2/pull/3635] -- Add `errorLoading` for Indonesian translation [https://github.com/select2/select2/pull/3635] -- Correct grammar issues in Hebrew translation [https://github.com/select2/select2/pull/3911] -- Add `errorLoading` for Danish translation [https://github.com/select2/select2/pull/3870] -- Add Arabic translation [https://github.com/select2/select2/pull/3859] - -## 4.0.0 - - -This builds upon [the second release candidate](https://github.com/select2/select2/tree/4.0.0-rc.2), **so review all previous release notes** before upgrading from previous versions of Select2. - -### Supported environments -- jQuery 1.7.2+ -- Modern browsers (Chrome, Firefox, Safari) -- Internet Explorer 8+ - -### New features -- Fully compatible with AMD and UMD based loaders. -- Advanced plugin system that [uses custom adapters](https://select2.org/advanced/adapters-and-decorators). -- Full support for `jQuery.noConflict`. -- A `<select>` is the recommended element and [can be used for all options](https://select2.org/upgrading/migrating-from-35#no-more-hidden-input-tags). There is limited backwards-compatible support for the `<input>` element in [full builds](https://select2.org/getting-started/builds-and-modules). -- [Declarative configuration through `data-*` attributes](https://select2.org/configuration/data-attributes) -- Easy to configure theme system and new default theme -- You can use more specific locales (like `en-US`) and Select2 will be able to determine what translation files to load. - -### Breaking changes -- Select2 now uses the MIT license -- [The full build](https://select2.org/getting-started/builds-and-modules) of Select2 no longer includes jQuery - You must include jQuery separately on your page. -- Select2 will prevent the inner scrolling of modals (and other scrollable containers) when it is open to prevent the UI from breaking. [Read more at the commit.](https://github.com/select2/select2/commit/003d6053a9fff587c688008397e7d5824463fe99) -- jQuery is no longer listed as a dependency in the `bower.json`/`component.json` files. -- [`<select>` has replaced `<input type="hidden" />`](https://select2.org/upgrading/migrating-from-35#no-more-hidden-input-tags) for **all options** (_including remote data_) -- The [`matcher` has been revamped](https://select2.org/upgrading/migrating-from-35#advanced-matching-of-searches) to include full context, a compatibility module (`select2/compat/matcher`) has been created -- The [display always reflects the order](https://select2.org/upgrading/migrating-from-35#display-reflects-the-actual-order-of-the-values) data is sent to the server -- The click mask is no longer the default (again). You can get back the old functionality by wrapping your `selectionAdapter` with the `ClickMask` (`select2/selection/clickMask`) decorator. -- Select2 no longer stops the propagation of events happening within the dropdown and selection. You can use the `StopPropagation` modules available in the [full builds](https://select2.org/getting-started/builds-and-modules) to prevent this. [https://github.com/select2/select2/commit/8f8140e3b00c5d5bb232455137c4c633d7da4275] -- The enter key no longer toggles the state of multiple select items in the results, but instead will only select them. Use CTRL + Space instead to toggle the state. [https://github.com/select2/select2/commit/017c20109471fa5b835603faf5dc37f7c2c2ea45] -- Warnings will now be triggered in the developer console if Select2 detects an unsupported configuration. - -#### Options - -- The default value of the `width` option has been changed from `style` to `resolve`. -- The `copy` value for the `width` option has been renamed to `style`. - -##### Renamed -- `formatSelection` -> `templateSelection` -- `formatResult` -> `templateResult` -- `sortResults` -> `sorter` -- `createSearchChoice` -> `createTag` -- `selectOnBlur` -> `selectOnClose` -- `ajax.jsonpCallback` -> `ajax.jsonp` -- `ajax.results` -> `ajax.processResults` -- `tags: [array,of,data]` -> `data: [array,of,data], tags: true` -- `placeholderOption` has been replaced by `placeholder.id` (`placeholder` -> `placeholder.text`) - -##### [Internationalization](https://select2.org/i18n) -- `formatNoMatches` -> `language.noMatches` -- `formatSearching` -> `language.searching` -- `formatInputTooShort` -> `language.inputTooShort` -- `formatInputTooLong` -> `language.inputTooLong` -- `formatAjaxError` -> `language.errorLoading` -- `formatLoading` -> `language.loadingMore` -- `formatSelectionTooBig` -> `language.maximumSelected` - -##### Deprecated/Removed -- `initSelection` - This is [no longer needed](https://select2.org/upgrading/migrating-from-35#removed-the-requirement-of-initselection) with `<select>` tags. Limited backwards compatibility in the [full build](https://select2.org/getting-started/builds-and-modules). -- `id` - Data objects should now always have `id` and `text` attributes that are strings, use [`$.map`](https://api.jquery.com/jquery.map/) when migrating -- `query` - Use a [custom data adapter](https://select2.org/upgrading/migrating-from-35#custom-data-adapters-instead-of-query) instead. Limited backwards compatibility in the [full build](https://select2.org/getting-started/builds-and-modules). -- `ajax.params` - All parameters passed to `ajax` will be passed to the AJAX data transport function - -#### Methods - -##### Renamed -- `.select2("val", [value])` -> `.val([value])` -- `.select2("enable", !disabled)` -> `.prop("disabled", disabled)` - -##### Removed -- `.select2("onSortStart")` and `.select2("onSortEnd")` - A custom [selection adapter](https://select2.org/advanced/default-adapters/selection) should be created instead -- `.select2("data", data)` - Create the `<option>` tags for the objects that you would like to set, and set the `.val` to select them -- `.select2("readonly")` - There is [no way to make a `<select>` element read-only](http://stackoverflow.com/q/368813/359284), disable it instead - -#### Events - -##### New -- `select2:closing` is triggered before the dropdown is closed -- `select2:select` is triggered when an option is selected - -##### Renamed -- `select2-close` is now `select2:close` -- `select2-open` is now `select2:open` -- `select2-opening` is now `select2:opening` -- `select2-selecting` is now `select2:selecting` -- `select2-removed` is now `select2:unselect` -- `select2-removing` is now `select2:unselecting` - -##### Removed -- `select2-clearing` has been removed in favor of `select2:unselecting` -- `select2-highlight` -- `select2-loaded` -- `select2-focus` - Use the native `focus` event instead -- `select2-blur` - Use the native `blur` event instead -- All extra properties from the `change` event were removed - - `val` can be retrieved with `$element.val()` instead - - `added` can be retrieved by listening to `select2:select` - - `removed` can be retrieved by listening to `select2:unselect` diff --git a/admin/bower_components/select2/Gruntfile.js b/admin/bower_components/select2/Gruntfile.js deleted file mode 100644 index bf0f38d..0000000 --- a/admin/bower_components/select2/Gruntfile.js +++ /dev/null @@ -1,370 +0,0 @@ -module.exports = function (grunt) { - // Full list of files that must be included by RequireJS - includes = [ - 'jquery.select2', - 'almond', - - 'jquery-mousewheel' // shimmed for non-full builds - ]; - - fullIncludes = [ - 'jquery', - - 'select2/compat/containerCss', - 'select2/compat/dropdownCss', - - 'select2/compat/initSelection', - 'select2/compat/inputData', - 'select2/compat/matcher', - 'select2/compat/query', - - 'select2/dropdown/attachContainer', - 'select2/dropdown/stopPropagation', - - 'select2/selection/stopPropagation' - ].concat(includes); - - var i18nModules = []; - var i18nPaths = {}; - - var i18nFiles = grunt.file.expand({ - cwd: 'src/js' - }, 'select2/i18n/*.js'); - - var testFiles = grunt.file.expand('tests/**/*.html'); - var testUrls = testFiles.map(function (filePath) { - return 'http://localhost:9999/' + filePath; - }); - - var testBuildNumber = "unknown"; - - if (process.env.TRAVIS_JOB_ID) { - testBuildNumber = "travis-" + process.env.TRAVIS_JOB_ID; - } else { - var currentTime = new Date(); - - testBuildNumber = "manual-" + currentTime.getTime(); - } - - for (var i = 0; i < i18nFiles.length; i++) { - var file = i18nFiles[i]; - var name = file.split('.')[0]; - - i18nModules.push({ - name: name - }); - - i18nPaths[name] = '../../' + name; - } - - var minifiedBanner = '/*! Select2 <%= package.version %> | https://github.com/select2/select2/blob/master/LICENSE.md */'; - - grunt.initConfig({ - package: grunt.file.readJSON('package.json'), - - clean: { - docs: ['docs/_site'] - }, - - concat: { - 'dist': { - options: { - banner: grunt.file.read('src/js/wrapper.start.js'), - }, - src: [ - 'dist/js/select2.js', - 'src/js/wrapper.end.js' - ], - dest: 'dist/js/select2.js' - }, - 'dist.full': { - options: { - banner: grunt.file.read('src/js/wrapper.start.js'), - }, - src: [ - 'dist/js/select2.full.js', - 'src/js/wrapper.end.js' - ], - dest: 'dist/js/select2.full.js' - } - }, - - connect: { - tests: { - options: { - base: '.', - hostname: '127.0.0.1', - port: 9999 - } - } - }, - - uglify: { - 'dist': { - src: 'dist/js/select2.js', - dest: 'dist/js/select2.min.js', - options: { - banner: minifiedBanner - } - }, - 'dist.full': { - src: 'dist/js/select2.full.js', - dest: 'dist/js/select2.full.min.js', - options: { - banner: minifiedBanner - } - } - }, - - qunit: { - all: { - options: { - urls: testUrls - } - } - }, - - 'saucelabs-qunit': { - all: { - options: { - build: testBuildNumber, - tags: ['tests', 'qunit'], - urls: testUrls, - testname: 'QUnit test for Select2', - browsers: [ - { - browserName: 'internet explorer', - version: '8' - }, - { - browserName: 'internet explorer', - version: '9' - }, - { - browserName: 'internet explorer', - version: '10' - }, - { - browserName: 'internet explorer', - version: '11' - }, - - { - browserName: 'firefox', - platform: 'linux' - }, - - { - browserName: 'chrome' - }, - - { - browserName: 'opera', - version: '12', - platform: 'linux' - } - ] - } - } - }, - - 'gh-pages': { - options: { - base: 'docs', - branch: 'master', - clone: 'node_modules/grunt-gh-pages/repo', - message: 'Updated docs with master', - push: true, - repo: 'git@github.com:select2/select2.github.io.git' - }, - src: '**' - }, - - jekyll: { - options: { - src: 'docs', - dest: 'docs/_site' - }, - build: { - d: null - }, - serve: { - options: { - serve: true, - watch: true - } - } - }, - - jshint: { - options: { - jshintrc: true - }, - code: { - src: ['src/js/**/*.js'] - }, - tests: { - src: ['tests/**/*.js'] - } - }, - - sass: { - dist: { - options: { - outputStyle: 'compressed' - }, - files: { - 'dist/css/select2.min.css': [ - 'src/scss/core.scss', - 'src/scss/theme/default/layout.css' - ] - } - }, - dev: { - options: { - outputStyle: 'nested' - }, - files: { - 'dist/css/select2.css': [ - 'src/scss/core.scss', - 'src/scss/theme/default/layout.css' - ] - } - } - }, - - symlink: { - docs: { - cwd: 'dist', - expand: true, - overwrite: false, - src: [ - '*' - ], - dest: 'docs/dist', - filter: 'isDirectory' - } - }, - - requirejs: { - 'dist': { - options: { - baseUrl: 'src/js', - optimize: 'none', - name: 'select2/core', - out: 'dist/js/select2.js', - include: includes, - namespace: 'S2', - paths: { - 'almond': require.resolve('almond').slice(0, -3), - 'jquery': 'jquery.shim', - 'jquery-mousewheel': 'jquery.mousewheel.shim' - }, - wrap: { - startFile: 'src/js/banner.start.js', - endFile: 'src/js/banner.end.js' - } - } - }, - 'dist.full': { - options: { - baseUrl: 'src/js', - optimize: 'none', - name: 'select2/core', - out: 'dist/js/select2.full.js', - include: fullIncludes, - namespace: 'S2', - paths: { - 'almond': require.resolve('almond').slice(0, -3), - 'jquery': 'jquery.shim', - 'jquery-mousewheel': require.resolve('jquery-mousewheel').slice(0, -3) - }, - wrap: { - startFile: 'src/js/banner.start.js', - endFile: 'src/js/banner.end.js' - } - } - }, - 'i18n': { - options: { - baseUrl: 'src/js/select2/i18n', - dir: 'dist/js/i18n', - paths: i18nPaths, - modules: i18nModules, - namespace: 'S2', - wrap: { - start: minifiedBanner + grunt.file.read('src/js/banner.start.js'), - end: grunt.file.read('src/js/banner.end.js') - } - } - } - }, - - watch: { - js: { - files: [ - 'src/js/select2/**/*.js', - 'tests/**/*.js' - ], - tasks: [ - 'compile', - 'test', - 'minify' - ] - }, - css: { - files: [ - 'src/scss/**/*.scss' - ], - tasks: [ - 'compile', - 'minify' - ] - } - } - }); - - grunt.loadNpmTasks('grunt-contrib-clean'); - grunt.loadNpmTasks('grunt-contrib-concat'); - grunt.loadNpmTasks('grunt-contrib-connect'); - grunt.loadNpmTasks('grunt-contrib-jshint'); - grunt.loadNpmTasks('grunt-contrib-qunit'); - grunt.loadNpmTasks('grunt-contrib-requirejs'); - grunt.loadNpmTasks('grunt-contrib-symlink'); - grunt.loadNpmTasks('grunt-contrib-uglify'); - grunt.loadNpmTasks('grunt-contrib-watch'); - - grunt.loadNpmTasks('grunt-gh-pages'); - grunt.loadNpmTasks('grunt-jekyll'); - grunt.loadNpmTasks('grunt-saucelabs'); - grunt.loadNpmTasks('grunt-sass'); - - grunt.registerTask('default', ['compile', 'test', 'minify']); - - grunt.registerTask('compile', [ - 'requirejs:dist', 'requirejs:dist.full', 'requirejs:i18n', - 'concat:dist', 'concat:dist.full', - 'sass:dev' - ]); - grunt.registerTask('minify', ['uglify', 'sass:dist']); - grunt.registerTask('test', ['connect:tests', 'qunit', 'jshint']); - - var ciTasks = []; - - ciTasks.push('compile'); - ciTasks.push('connect:tests'); - - // Can't run Sauce Labs tests in pull requests - if (process.env.TRAVIS_PULL_REQUEST == 'false') { - ciTasks.push('saucelabs-qunit'); - } - - ciTasks.push('qunit'); - ciTasks.push('jshint'); - - grunt.registerTask('ci', ciTasks); - - grunt.registerTask('docs', ['symlink:docs', 'jekyll:serve']); - - grunt.registerTask('docs-release', ['default', 'clean:docs', 'gh-pages']); -}; diff --git a/admin/bower_components/select2/LICENSE.md b/admin/bower_components/select2/LICENSE.md deleted file mode 100644 index 8cb8a2b..0000000 --- a/admin/bower_components/select2/LICENSE.md +++ /dev/null @@ -1,21 +0,0 @@ -The MIT License (MIT) - -Copyright (c) 2012-2017 Kevin Brown, Igor Vaynberg, and Select2 contributors - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -THE SOFTWARE. diff --git a/admin/bower_components/select2/README.md b/admin/bower_components/select2/README.md deleted file mode 100644 index 6ee975d..0000000 --- a/admin/bower_components/select2/README.md +++ /dev/null @@ -1,123 +0,0 @@ -Select2 -======= -[![Build Status][travis-ci-image]][travis-ci-status] - -Select2 is a jQuery-based replacement for select boxes. It supports searching, -remote data sets, and pagination of results. - -To get started, checkout examples and documentation at -https://select2.org/ - -Use cases ---------- -* Enhancing native selects with search. -* Enhancing native selects with a better multi-select interface. -* Loading data from JavaScript: easily load items via AJAX and have them - searchable. -* Nesting optgroups: native selects only support one level of nesting. Select2 - does not have this restriction. -* Tagging: ability to add new items on the fly. -* Working with large, remote datasets: ability to partially load a dataset based - on the search term. -* Paging of large datasets: easy support for loading more pages when the results - are scrolled to the end. -* Templating: support for custom rendering of results and selections. - -Browser compatibility ---------------------- -* IE 8+ -* Chrome 8+ -* Firefox 10+ -* Safari 3+ -* Opera 10.6+ - -Select2 is automatically tested on the following browsers. - -[![Sauce Labs Test Status][saucelabs-matrix]][saucelabs-status] - -Usage ------ -You can source Select2 directly from a CDN like [JSDliver][jsdelivr] or -[CDNJS][cdnjs], [download it from this GitHub repo][releases], or use one of -the integrations below. - -Integrations ------------- -Third party developers have created plugins for platforms which allow Select2 to be integrated more natively and quickly. For many platforms, additional plugins are not required because Select2 acts as a standard `<select>` box. - -Plugins - -* [Django] - - [django-autocomplete-light] - - [django-easy-select2] - - [django-select2] -* [Meteor] - [meteor-select2] -* [Ruby on Rails][ruby-on-rails] - [select2-rails] -* [Wicket] - [wicketstuff-select2] -* [Yii 2][yii2] - [yii2-widget-select2] - -Themes - -- [Bootstrap 3][bootstrap3] - [select2-bootstrap-theme] -- [Flat UI][flat-ui] - [select2-flat-theme] -- [Metro UI][metro-ui] - [select2-metro] - -Missing an integration? Modify this `README` and make a pull request back here to Select2 on GitHub. - -Internationalization (i18n) ---------------------------- -Select2 supports multiple languages by simply including the right language JS -file (`dist/js/i18n/it.js`, `dist/js/i18n/nl.js`, etc.) after -`dist/js/select2.js`. - -Missing a language? Just copy `src/js/select2/i18n/en.js`, translate it, and -make a pull request back to Select2 here on GitHub. - -Documentation -------------- -The documentation for Select2 is available -[through GitHub Pages][documentation] and is located within this repository -in the [`docs` folder][documentation-folder]. - -Community ---------- -You can find out about the different ways to get in touch with the Select2 -community at the [Select2 community page][community]. - -Copyright and license ---------------------- -The license is available within the repository in the [LICENSE][license] file. - -[cdnjs]: http://www.cdnjs.com/libraries/select2 -[community]: https://select2.org/getting-help -[documentation]: https://select2.org -[documentation-folder]: https://github.com/select2/select2/tree/master/docs -[freenode]: https://freenode.net/ -[jsdelivr]: http://www.jsdelivr.com/#!select2 -[license]: LICENSE.md -[releases]: https://github.com/select2/select2/releases -[saucelabs-matrix]: https://saucelabs.com/browser-matrix/select2.svg -[saucelabs-status]: https://saucelabs.com/u/select2 -[travis-ci-image]: https://img.shields.io/travis/select2/select2/master.svg -[travis-ci-status]: https://travis-ci.org/select2/select2 - -[bootstrap3]: https://getbootstrap.com/ -[django]: https://www.djangoproject.com/ -[django-autocomplete-light]: https://github.com/yourlabs/django-autocomplete-light -[django-easy-select2]: https://github.com/asyncee/django-easy-select2 -[django-select2]: https://github.com/applegrew/django-select2 -[flat-ui]: http://designmodo.github.io/Flat-UI/ -[meteor]: https://www.meteor.com/ -[meteor-select2]: https://github.com/nate-strauser/meteor-select2 -[metro-ui]: http://metroui.org.ua/ -[select2-metro]: http://metroui.org.ua/select2.html -[ruby-on-rails]: http://rubyonrails.org/ -[select2-bootstrap-theme]: https://github.com/select2/select2-bootstrap-theme -[select2-flat-theme]: https://github.com/techhysahil/select2-Flat_Theme -[select2-rails]: https://github.com/argerim/select2-rails -[vue.js]: http://vuejs.org/ -[select2-vue]: http://vuejs.org/examples/select2.html -[wicket]: https://wicket.apache.org/ -[wicketstuff-select2]: https://github.com/wicketstuff/core/tree/master/select2-parent -[yii2]: http://www.yiiframework.com/ -[yii2-widget-select2]: https://github.com/kartik-v/yii2-widget-select2 diff --git a/admin/bower_components/select2/bower.json b/admin/bower_components/select2/bower.json deleted file mode 100644 index 681600b..0000000 --- a/admin/bower_components/select2/bower.json +++ /dev/null @@ -1,13 +0,0 @@ -{ - "name": "select2", - "description": "Select2 is a jQuery based replacement for select boxes. It supports searching, remote data sets, and infinite scrolling of results.", - "main": [ - "dist/js/select2.js", - "src/scss/core.scss" - ], - "license": "MIT", - "repository": { - "type": "git", - "url": "git@github.com:select2/select2.git" - } -} diff --git a/admin/bower_components/select2/component.json b/admin/bower_components/select2/component.json deleted file mode 100644 index 078338b..0000000 --- a/admin/bower_components/select2/component.json +++ /dev/null @@ -1,19 +0,0 @@ -{ - "name": "select2", - "repo": "select/select2", - "description": "Select2 is a jQuery based replacement for select boxes. It supports searching, remote data sets, and infinite scrolling of results.", - "version": "4.0.4", - "demo": "https://select2.org/", - "keywords": [ - "jquery" - ], - "main": "dist/js/select2.js", - "styles": [ - "dist/css/select2.css" - ], - "scripts": [ - "dist/js/select2.js", - "dist/js/i18n/*.js" - ], - "license": "MIT" -} diff --git a/admin/bower_components/select2/composer.json b/admin/bower_components/select2/composer.json deleted file mode 100644 index 141f4e1..0000000 --- a/admin/bower_components/select2/composer.json +++ /dev/null @@ -1,25 +0,0 @@ -{ - "name": "select2/select2", - "description": "Select2 is a jQuery based replacement for select boxes.", - "type": "component", - "homepage": "https://select2.org/", - "license": "MIT", - "require": { - "robloach/component-installer": "*" - }, - "extra": { - "component": { - "scripts": [ - "dist/js/select2.js" - ], - "styles": [ - "dist/css/select2.css" - ], - "files": [ - "dist/js/select2.js", - "dist/js/i18n/*.js", - "dist/css/select2.css" - ] - } - } -} diff --git a/admin/bower_components/select2/dist/css/select2.css b/admin/bower_components/select2/dist/css/select2.css deleted file mode 100644 index 447b2b8..0000000 --- a/admin/bower_components/select2/dist/css/select2.css +++ /dev/null @@ -1,484 +0,0 @@ -.select2-container { - box-sizing: border-box; - display: inline-block; - margin: 0; - position: relative; - vertical-align: middle; } - .select2-container .select2-selection--single { - box-sizing: border-box; - cursor: pointer; - display: block; - height: 28px; - user-select: none; - -webkit-user-select: none; } - .select2-container .select2-selection--single .select2-selection__rendered { - display: block; - padding-left: 8px; - padding-right: 20px; - overflow: hidden; - text-overflow: ellipsis; - white-space: nowrap; } - .select2-container .select2-selection--single .select2-selection__clear { - position: relative; } - .select2-container[dir="rtl"] .select2-selection--single .select2-selection__rendered { - padding-right: 8px; - padding-left: 20px; } - .select2-container .select2-selection--multiple { - box-sizing: border-box; - cursor: pointer; - display: block; - min-height: 32px; - user-select: none; - -webkit-user-select: none; } - .select2-container .select2-selection--multiple .select2-selection__rendered { - display: inline-block; - overflow: hidden; - padding-left: 8px; - text-overflow: ellipsis; - white-space: nowrap; } - .select2-container .select2-search--inline { - float: left; } - .select2-container .select2-search--inline .select2-search__field { - box-sizing: border-box; - border: none; - font-size: 100%; - margin-top: 5px; - padding: 0; } - .select2-container .select2-search--inline .select2-search__field::-webkit-search-cancel-button { - -webkit-appearance: none; } - -.select2-dropdown { - background-color: white; - border: 1px solid #aaa; - border-radius: 4px; - box-sizing: border-box; - display: block; - position: absolute; - left: -100000px; - width: 100%; - z-index: 1051; } - -.select2-results { - display: block; } - -.select2-results__options { - list-style: none; - margin: 0; - padding: 0; } - -.select2-results__option { - padding: 6px; - user-select: none; - -webkit-user-select: none; } - .select2-results__option[aria-selected] { - cursor: pointer; } - -.select2-container--open .select2-dropdown { - left: 0; } - -.select2-container--open .select2-dropdown--above { - border-bottom: none; - border-bottom-left-radius: 0; - border-bottom-right-radius: 0; } - -.select2-container--open .select2-dropdown--below { - border-top: none; - border-top-left-radius: 0; - border-top-right-radius: 0; } - -.select2-search--dropdown { - display: block; - padding: 4px; } - .select2-search--dropdown .select2-search__field { - padding: 4px; - width: 100%; - box-sizing: border-box; } - .select2-search--dropdown .select2-search__field::-webkit-search-cancel-button { - -webkit-appearance: none; } - .select2-search--dropdown.select2-search--hide { - display: none; } - -.select2-close-mask { - border: 0; - margin: 0; - padding: 0; - display: block; - position: fixed; - left: 0; - top: 0; - min-height: 100%; - min-width: 100%; - height: auto; - width: auto; - opacity: 0; - z-index: 99; - background-color: #fff; - filter: alpha(opacity=0); } - -.select2-hidden-accessible { - border: 0 !important; - clip: rect(0 0 0 0) !important; - height: 1px !important; - margin: -1px !important; - overflow: hidden !important; - padding: 0 !important; - position: absolute !important; - width: 1px !important; } - -.select2-container--default .select2-selection--single { - background-color: #fff; - border: 1px solid #aaa; - border-radius: 4px; } - .select2-container--default .select2-selection--single .select2-selection__rendered { - color: #444; - line-height: 28px; } - .select2-container--default .select2-selection--single .select2-selection__clear { - cursor: pointer; - float: right; - font-weight: bold; } - .select2-container--default .select2-selection--single .select2-selection__placeholder { - color: #999; } - .select2-container--default .select2-selection--single .select2-selection__arrow { - height: 26px; - position: absolute; - top: 1px; - right: 1px; - width: 20px; } - .select2-container--default .select2-selection--single .select2-selection__arrow b { - border-color: #888 transparent transparent transparent; - border-style: solid; - border-width: 5px 4px 0 4px; - height: 0; - left: 50%; - margin-left: -4px; - margin-top: -2px; - position: absolute; - top: 50%; - width: 0; } - -.select2-container--default[dir="rtl"] .select2-selection--single .select2-selection__clear { - float: left; } - -.select2-container--default[dir="rtl"] .select2-selection--single .select2-selection__arrow { - left: 1px; - right: auto; } - -.select2-container--default.select2-container--disabled .select2-selection--single { - background-color: #eee; - cursor: default; } - .select2-container--default.select2-container--disabled .select2-selection--single .select2-selection__clear { - display: none; } - -.select2-container--default.select2-container--open .select2-selection--single .select2-selection__arrow b { - border-color: transparent transparent #888 transparent; - border-width: 0 4px 5px 4px; } - -.select2-container--default .select2-selection--multiple { - background-color: white; - border: 1px solid #aaa; - border-radius: 4px; - cursor: text; } - .select2-container--default .select2-selection--multiple .select2-selection__rendered { - box-sizing: border-box; - list-style: none; - margin: 0; - padding: 0 5px; - width: 100%; } - .select2-container--default .select2-selection--multiple .select2-selection__rendered li { - list-style: none; } - .select2-container--default .select2-selection--multiple .select2-selection__placeholder { - color: #999; - margin-top: 5px; - float: left; } - .select2-container--default .select2-selection--multiple .select2-selection__clear { - cursor: pointer; - float: right; - font-weight: bold; - margin-top: 5px; - margin-right: 10px; } - .select2-container--default .select2-selection--multiple .select2-selection__choice { - background-color: #e4e4e4; - border: 1px solid #aaa; - border-radius: 4px; - cursor: default; - float: left; - margin-right: 5px; - margin-top: 5px; - padding: 0 5px; } - .select2-container--default .select2-selection--multiple .select2-selection__choice__remove { - color: #999; - cursor: pointer; - display: inline-block; - font-weight: bold; - margin-right: 2px; } - .select2-container--default .select2-selection--multiple .select2-selection__choice__remove:hover { - color: #333; } - -.select2-container--default[dir="rtl"] .select2-selection--multiple .select2-selection__choice, .select2-container--default[dir="rtl"] .select2-selection--multiple .select2-selection__placeholder, .select2-container--default[dir="rtl"] .select2-selection--multiple .select2-search--inline { - float: right; } - -.select2-container--default[dir="rtl"] .select2-selection--multiple .select2-selection__choice { - margin-left: 5px; - margin-right: auto; } - -.select2-container--default[dir="rtl"] .select2-selection--multiple .select2-selection__choice__remove { - margin-left: 2px; - margin-right: auto; } - -.select2-container--default.select2-container--focus .select2-selection--multiple { - border: solid black 1px; - outline: 0; } - -.select2-container--default.select2-container--disabled .select2-selection--multiple { - background-color: #eee; - cursor: default; } - -.select2-container--default.select2-container--disabled .select2-selection__choice__remove { - display: none; } - -.select2-container--default.select2-container--open.select2-container--above .select2-selection--single, .select2-container--default.select2-container--open.select2-container--above .select2-selection--multiple { - border-top-left-radius: 0; - border-top-right-radius: 0; } - -.select2-container--default.select2-container--open.select2-container--below .select2-selection--single, .select2-container--default.select2-container--open.select2-container--below .select2-selection--multiple { - border-bottom-left-radius: 0; - border-bottom-right-radius: 0; } - -.select2-container--default .select2-search--dropdown .select2-search__field { - border: 1px solid #aaa; } - -.select2-container--default .select2-search--inline .select2-search__field { - background: transparent; - border: none; - outline: 0; - box-shadow: none; - -webkit-appearance: textfield; } - -.select2-container--default .select2-results > .select2-results__options { - max-height: 200px; - overflow-y: auto; } - -.select2-container--default .select2-results__option[role=group] { - padding: 0; } - -.select2-container--default .select2-results__option[aria-disabled=true] { - color: #999; } - -.select2-container--default .select2-results__option[aria-selected=true] { - background-color: #ddd; } - -.select2-container--default .select2-results__option .select2-results__option { - padding-left: 1em; } - .select2-container--default .select2-results__option .select2-results__option .select2-results__group { - padding-left: 0; } - .select2-container--default .select2-results__option .select2-results__option .select2-results__option { - margin-left: -1em; - padding-left: 2em; } - .select2-container--default .select2-results__option .select2-results__option .select2-results__option .select2-results__option { - margin-left: -2em; - padding-left: 3em; } - .select2-container--default .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option { - margin-left: -3em; - padding-left: 4em; } - .select2-container--default .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option { - margin-left: -4em; - padding-left: 5em; } - .select2-container--default .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option { - margin-left: -5em; - padding-left: 6em; } - -.select2-container--default .select2-results__option--highlighted[aria-selected] { - background-color: #5897fb; - color: white; } - -.select2-container--default .select2-results__group { - cursor: default; - display: block; - padding: 6px; } - -.select2-container--classic .select2-selection--single { - background-color: #f7f7f7; - border: 1px solid #aaa; - border-radius: 4px; - outline: 0; - background-image: -webkit-linear-gradient(top, white 50%, #eeeeee 100%); - background-image: -o-linear-gradient(top, white 50%, #eeeeee 100%); - background-image: linear-gradient(to bottom, white 50%, #eeeeee 100%); - background-repeat: repeat-x; - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#FFFFFFFF', endColorstr='#FFEEEEEE', GradientType=0); } - .select2-container--classic .select2-selection--single:focus { - border: 1px solid #5897fb; } - .select2-container--classic .select2-selection--single .select2-selection__rendered { - color: #444; - line-height: 28px; } - .select2-container--classic .select2-selection--single .select2-selection__clear { - cursor: pointer; - float: right; - font-weight: bold; - margin-right: 10px; } - .select2-container--classic .select2-selection--single .select2-selection__placeholder { - color: #999; } - .select2-container--classic .select2-selection--single .select2-selection__arrow { - background-color: #ddd; - border: none; - border-left: 1px solid #aaa; - border-top-right-radius: 4px; - border-bottom-right-radius: 4px; - height: 26px; - position: absolute; - top: 1px; - right: 1px; - width: 20px; - background-image: -webkit-linear-gradient(top, #eeeeee 50%, #cccccc 100%); - background-image: -o-linear-gradient(top, #eeeeee 50%, #cccccc 100%); - background-image: linear-gradient(to bottom, #eeeeee 50%, #cccccc 100%); - background-repeat: repeat-x; - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#FFEEEEEE', endColorstr='#FFCCCCCC', GradientType=0); } - .select2-container--classic .select2-selection--single .select2-selection__arrow b { - border-color: #888 transparent transparent transparent; - border-style: solid; - border-width: 5px 4px 0 4px; - height: 0; - left: 50%; - margin-left: -4px; - margin-top: -2px; - position: absolute; - top: 50%; - width: 0; } - -.select2-container--classic[dir="rtl"] .select2-selection--single .select2-selection__clear { - float: left; } - -.select2-container--classic[dir="rtl"] .select2-selection--single .select2-selection__arrow { - border: none; - border-right: 1px solid #aaa; - border-radius: 0; - border-top-left-radius: 4px; - border-bottom-left-radius: 4px; - left: 1px; - right: auto; } - -.select2-container--classic.select2-container--open .select2-selection--single { - border: 1px solid #5897fb; } - .select2-container--classic.select2-container--open .select2-selection--single .select2-selection__arrow { - background: transparent; - border: none; } - .select2-container--classic.select2-container--open .select2-selection--single .select2-selection__arrow b { - border-color: transparent transparent #888 transparent; - border-width: 0 4px 5px 4px; } - -.select2-container--classic.select2-container--open.select2-container--above .select2-selection--single { - border-top: none; - border-top-left-radius: 0; - border-top-right-radius: 0; - background-image: -webkit-linear-gradient(top, white 0%, #eeeeee 50%); - background-image: -o-linear-gradient(top, white 0%, #eeeeee 50%); - background-image: linear-gradient(to bottom, white 0%, #eeeeee 50%); - background-repeat: repeat-x; - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#FFFFFFFF', endColorstr='#FFEEEEEE', GradientType=0); } - -.select2-container--classic.select2-container--open.select2-container--below .select2-selection--single { - border-bottom: none; - border-bottom-left-radius: 0; - border-bottom-right-radius: 0; - background-image: -webkit-linear-gradient(top, #eeeeee 50%, white 100%); - background-image: -o-linear-gradient(top, #eeeeee 50%, white 100%); - background-image: linear-gradient(to bottom, #eeeeee 50%, white 100%); - background-repeat: repeat-x; - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#FFEEEEEE', endColorstr='#FFFFFFFF', GradientType=0); } - -.select2-container--classic .select2-selection--multiple { - background-color: white; - border: 1px solid #aaa; - border-radius: 4px; - cursor: text; - outline: 0; } - .select2-container--classic .select2-selection--multiple:focus { - border: 1px solid #5897fb; } - .select2-container--classic .select2-selection--multiple .select2-selection__rendered { - list-style: none; - margin: 0; - padding: 0 5px; } - .select2-container--classic .select2-selection--multiple .select2-selection__clear { - display: none; } - .select2-container--classic .select2-selection--multiple .select2-selection__choice { - background-color: #e4e4e4; - border: 1px solid #aaa; - border-radius: 4px; - cursor: default; - float: left; - margin-right: 5px; - margin-top: 5px; - padding: 0 5px; } - .select2-container--classic .select2-selection--multiple .select2-selection__choice__remove { - color: #888; - cursor: pointer; - display: inline-block; - font-weight: bold; - margin-right: 2px; } - .select2-container--classic .select2-selection--multiple .select2-selection__choice__remove:hover { - color: #555; } - -.select2-container--classic[dir="rtl"] .select2-selection--multiple .select2-selection__choice { - float: right; } - -.select2-container--classic[dir="rtl"] .select2-selection--multiple .select2-selection__choice { - margin-left: 5px; - margin-right: auto; } - -.select2-container--classic[dir="rtl"] .select2-selection--multiple .select2-selection__choice__remove { - margin-left: 2px; - margin-right: auto; } - -.select2-container--classic.select2-container--open .select2-selection--multiple { - border: 1px solid #5897fb; } - -.select2-container--classic.select2-container--open.select2-container--above .select2-selection--multiple { - border-top: none; - border-top-left-radius: 0; - border-top-right-radius: 0; } - -.select2-container--classic.select2-container--open.select2-container--below .select2-selection--multiple { - border-bottom: none; - border-bottom-left-radius: 0; - border-bottom-right-radius: 0; } - -.select2-container--classic .select2-search--dropdown .select2-search__field { - border: 1px solid #aaa; - outline: 0; } - -.select2-container--classic .select2-search--inline .select2-search__field { - outline: 0; - box-shadow: none; } - -.select2-container--classic .select2-dropdown { - background-color: white; - border: 1px solid transparent; } - -.select2-container--classic .select2-dropdown--above { - border-bottom: none; } - -.select2-container--classic .select2-dropdown--below { - border-top: none; } - -.select2-container--classic .select2-results > .select2-results__options { - max-height: 200px; - overflow-y: auto; } - -.select2-container--classic .select2-results__option[role=group] { - padding: 0; } - -.select2-container--classic .select2-results__option[aria-disabled=true] { - color: grey; } - -.select2-container--classic .select2-results__option--highlighted[aria-selected] { - background-color: #3875d7; - color: white; } - -.select2-container--classic .select2-results__group { - cursor: default; - display: block; - padding: 6px; } - -.select2-container--classic.select2-container--open .select2-dropdown { - border-color: #5897fb; } diff --git a/admin/bower_components/select2/dist/css/select2.min.css b/admin/bower_components/select2/dist/css/select2.min.css deleted file mode 100644 index 76de04d..0000000 --- a/admin/bower_components/select2/dist/css/select2.min.css +++ /dev/null @@ -1 +0,0 @@ -.select2-container{box-sizing:border-box;display:inline-block;margin:0;position:relative;vertical-align:middle}.select2-container .select2-selection--single{box-sizing:border-box;cursor:pointer;display:block;height:28px;user-select:none;-webkit-user-select:none}.select2-container .select2-selection--single .select2-selection__rendered{display:block;padding-left:8px;padding-right:20px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.select2-container .select2-selection--single .select2-selection__clear{position:relative}.select2-container[dir="rtl"] .select2-selection--single .select2-selection__rendered{padding-right:8px;padding-left:20px}.select2-container .select2-selection--multiple{box-sizing:border-box;cursor:pointer;display:block;min-height:32px;user-select:none;-webkit-user-select:none}.select2-container .select2-selection--multiple .select2-selection__rendered{display:inline-block;overflow:hidden;padding-left:8px;text-overflow:ellipsis;white-space:nowrap}.select2-container .select2-search--inline{float:left}.select2-container .select2-search--inline .select2-search__field{box-sizing:border-box;border:none;font-size:100%;margin-top:5px;padding:0}.select2-container .select2-search--inline .select2-search__field::-webkit-search-cancel-button{-webkit-appearance:none}.select2-dropdown{background-color:white;border:1px solid #aaa;border-radius:4px;box-sizing:border-box;display:block;position:absolute;left:-100000px;width:100%;z-index:1051}.select2-results{display:block}.select2-results__options{list-style:none;margin:0;padding:0}.select2-results__option{padding:6px;user-select:none;-webkit-user-select:none}.select2-results__option[aria-selected]{cursor:pointer}.select2-container--open .select2-dropdown{left:0}.select2-container--open .select2-dropdown--above{border-bottom:none;border-bottom-left-radius:0;border-bottom-right-radius:0}.select2-container--open .select2-dropdown--below{border-top:none;border-top-left-radius:0;border-top-right-radius:0}.select2-search--dropdown{display:block;padding:4px}.select2-search--dropdown .select2-search__field{padding:4px;width:100%;box-sizing:border-box}.select2-search--dropdown .select2-search__field::-webkit-search-cancel-button{-webkit-appearance:none}.select2-search--dropdown.select2-search--hide{display:none}.select2-close-mask{border:0;margin:0;padding:0;display:block;position:fixed;left:0;top:0;min-height:100%;min-width:100%;height:auto;width:auto;opacity:0;z-index:99;background-color:#fff;filter:alpha(opacity=0)}.select2-hidden-accessible{border:0 !important;clip:rect(0 0 0 0) !important;height:1px !important;margin:-1px !important;overflow:hidden !important;padding:0 !important;position:absolute !important;width:1px !important}.select2-container--default .select2-selection--single{background-color:#fff;border:1px solid #aaa;border-radius:4px}.select2-container--default .select2-selection--single .select2-selection__rendered{color:#444;line-height:28px}.select2-container--default .select2-selection--single .select2-selection__clear{cursor:pointer;float:right;font-weight:bold}.select2-container--default .select2-selection--single .select2-selection__placeholder{color:#999}.select2-container--default .select2-selection--single .select2-selection__arrow{height:26px;position:absolute;top:1px;right:1px;width:20px}.select2-container--default .select2-selection--single .select2-selection__arrow b{border-color:#888 transparent transparent transparent;border-style:solid;border-width:5px 4px 0 4px;height:0;left:50%;margin-left:-4px;margin-top:-2px;position:absolute;top:50%;width:0}.select2-container--default[dir="rtl"] .select2-selection--single .select2-selection__clear{float:left}.select2-container--default[dir="rtl"] .select2-selection--single .select2-selection__arrow{left:1px;right:auto}.select2-container--default.select2-container--disabled .select2-selection--single{background-color:#eee;cursor:default}.select2-container--default.select2-container--disabled .select2-selection--single .select2-selection__clear{display:none}.select2-container--default.select2-container--open .select2-selection--single .select2-selection__arrow b{border-color:transparent transparent #888 transparent;border-width:0 4px 5px 4px}.select2-container--default .select2-selection--multiple{background-color:white;border:1px solid #aaa;border-radius:4px;cursor:text}.select2-container--default .select2-selection--multiple .select2-selection__rendered{box-sizing:border-box;list-style:none;margin:0;padding:0 5px;width:100%}.select2-container--default .select2-selection--multiple .select2-selection__rendered li{list-style:none}.select2-container--default .select2-selection--multiple .select2-selection__placeholder{color:#999;margin-top:5px;float:left}.select2-container--default .select2-selection--multiple .select2-selection__clear{cursor:pointer;float:right;font-weight:bold;margin-top:5px;margin-right:10px}.select2-container--default .select2-selection--multiple .select2-selection__choice{background-color:#e4e4e4;border:1px solid #aaa;border-radius:4px;cursor:default;float:left;margin-right:5px;margin-top:5px;padding:0 5px}.select2-container--default .select2-selection--multiple .select2-selection__choice__remove{color:#999;cursor:pointer;display:inline-block;font-weight:bold;margin-right:2px}.select2-container--default .select2-selection--multiple .select2-selection__choice__remove:hover{color:#333}.select2-container--default[dir="rtl"] .select2-selection--multiple .select2-selection__choice,.select2-container--default[dir="rtl"] .select2-selection--multiple .select2-selection__placeholder,.select2-container--default[dir="rtl"] .select2-selection--multiple .select2-search--inline{float:right}.select2-container--default[dir="rtl"] .select2-selection--multiple .select2-selection__choice{margin-left:5px;margin-right:auto}.select2-container--default[dir="rtl"] .select2-selection--multiple .select2-selection__choice__remove{margin-left:2px;margin-right:auto}.select2-container--default.select2-container--focus .select2-selection--multiple{border:solid black 1px;outline:0}.select2-container--default.select2-container--disabled .select2-selection--multiple{background-color:#eee;cursor:default}.select2-container--default.select2-container--disabled .select2-selection__choice__remove{display:none}.select2-container--default.select2-container--open.select2-container--above .select2-selection--single,.select2-container--default.select2-container--open.select2-container--above .select2-selection--multiple{border-top-left-radius:0;border-top-right-radius:0}.select2-container--default.select2-container--open.select2-container--below .select2-selection--single,.select2-container--default.select2-container--open.select2-container--below .select2-selection--multiple{border-bottom-left-radius:0;border-bottom-right-radius:0}.select2-container--default .select2-search--dropdown .select2-search__field{border:1px solid #aaa}.select2-container--default .select2-search--inline .select2-search__field{background:transparent;border:none;outline:0;box-shadow:none;-webkit-appearance:textfield}.select2-container--default .select2-results>.select2-results__options{max-height:200px;overflow-y:auto}.select2-container--default .select2-results__option[role=group]{padding:0}.select2-container--default .select2-results__option[aria-disabled=true]{color:#999}.select2-container--default .select2-results__option[aria-selected=true]{background-color:#ddd}.select2-container--default .select2-results__option .select2-results__option{padding-left:1em}.select2-container--default .select2-results__option .select2-results__option .select2-results__group{padding-left:0}.select2-container--default .select2-results__option .select2-results__option .select2-results__option{margin-left:-1em;padding-left:2em}.select2-container--default .select2-results__option .select2-results__option .select2-results__option .select2-results__option{margin-left:-2em;padding-left:3em}.select2-container--default .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option{margin-left:-3em;padding-left:4em}.select2-container--default .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option{margin-left:-4em;padding-left:5em}.select2-container--default .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option{margin-left:-5em;padding-left:6em}.select2-container--default .select2-results__option--highlighted[aria-selected]{background-color:#5897fb;color:white}.select2-container--default .select2-results__group{cursor:default;display:block;padding:6px}.select2-container--classic .select2-selection--single{background-color:#f7f7f7;border:1px solid #aaa;border-radius:4px;outline:0;background-image:-webkit-linear-gradient(top, #fff 50%, #eee 100%);background-image:-o-linear-gradient(top, #fff 50%, #eee 100%);background-image:linear-gradient(to bottom, #fff 50%, #eee 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#FFFFFFFF', endColorstr='#FFEEEEEE', GradientType=0)}.select2-container--classic .select2-selection--single:focus{border:1px solid #5897fb}.select2-container--classic .select2-selection--single .select2-selection__rendered{color:#444;line-height:28px}.select2-container--classic .select2-selection--single .select2-selection__clear{cursor:pointer;float:right;font-weight:bold;margin-right:10px}.select2-container--classic .select2-selection--single .select2-selection__placeholder{color:#999}.select2-container--classic .select2-selection--single .select2-selection__arrow{background-color:#ddd;border:none;border-left:1px solid #aaa;border-top-right-radius:4px;border-bottom-right-radius:4px;height:26px;position:absolute;top:1px;right:1px;width:20px;background-image:-webkit-linear-gradient(top, #eee 50%, #ccc 100%);background-image:-o-linear-gradient(top, #eee 50%, #ccc 100%);background-image:linear-gradient(to bottom, #eee 50%, #ccc 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#FFEEEEEE', endColorstr='#FFCCCCCC', GradientType=0)}.select2-container--classic .select2-selection--single .select2-selection__arrow b{border-color:#888 transparent transparent transparent;border-style:solid;border-width:5px 4px 0 4px;height:0;left:50%;margin-left:-4px;margin-top:-2px;position:absolute;top:50%;width:0}.select2-container--classic[dir="rtl"] .select2-selection--single .select2-selection__clear{float:left}.select2-container--classic[dir="rtl"] .select2-selection--single .select2-selection__arrow{border:none;border-right:1px solid #aaa;border-radius:0;border-top-left-radius:4px;border-bottom-left-radius:4px;left:1px;right:auto}.select2-container--classic.select2-container--open .select2-selection--single{border:1px solid #5897fb}.select2-container--classic.select2-container--open .select2-selection--single .select2-selection__arrow{background:transparent;border:none}.select2-container--classic.select2-container--open .select2-selection--single .select2-selection__arrow b{border-color:transparent transparent #888 transparent;border-width:0 4px 5px 4px}.select2-container--classic.select2-container--open.select2-container--above .select2-selection--single{border-top:none;border-top-left-radius:0;border-top-right-radius:0;background-image:-webkit-linear-gradient(top, #fff 0%, #eee 50%);background-image:-o-linear-gradient(top, #fff 0%, #eee 50%);background-image:linear-gradient(to bottom, #fff 0%, #eee 50%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#FFFFFFFF', endColorstr='#FFEEEEEE', GradientType=0)}.select2-container--classic.select2-container--open.select2-container--below .select2-selection--single{border-bottom:none;border-bottom-left-radius:0;border-bottom-right-radius:0;background-image:-webkit-linear-gradient(top, #eee 50%, #fff 100%);background-image:-o-linear-gradient(top, #eee 50%, #fff 100%);background-image:linear-gradient(to bottom, #eee 50%, #fff 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#FFEEEEEE', endColorstr='#FFFFFFFF', GradientType=0)}.select2-container--classic .select2-selection--multiple{background-color:white;border:1px solid #aaa;border-radius:4px;cursor:text;outline:0}.select2-container--classic .select2-selection--multiple:focus{border:1px solid #5897fb}.select2-container--classic .select2-selection--multiple .select2-selection__rendered{list-style:none;margin:0;padding:0 5px}.select2-container--classic .select2-selection--multiple .select2-selection__clear{display:none}.select2-container--classic .select2-selection--multiple .select2-selection__choice{background-color:#e4e4e4;border:1px solid #aaa;border-radius:4px;cursor:default;float:left;margin-right:5px;margin-top:5px;padding:0 5px}.select2-container--classic .select2-selection--multiple .select2-selection__choice__remove{color:#888;cursor:pointer;display:inline-block;font-weight:bold;margin-right:2px}.select2-container--classic .select2-selection--multiple .select2-selection__choice__remove:hover{color:#555}.select2-container--classic[dir="rtl"] .select2-selection--multiple .select2-selection__choice{float:right}.select2-container--classic[dir="rtl"] .select2-selection--multiple .select2-selection__choice{margin-left:5px;margin-right:auto}.select2-container--classic[dir="rtl"] .select2-selection--multiple .select2-selection__choice__remove{margin-left:2px;margin-right:auto}.select2-container--classic.select2-container--open .select2-selection--multiple{border:1px solid #5897fb}.select2-container--classic.select2-container--open.select2-container--above .select2-selection--multiple{border-top:none;border-top-left-radius:0;border-top-right-radius:0}.select2-container--classic.select2-container--open.select2-container--below .select2-selection--multiple{border-bottom:none;border-bottom-left-radius:0;border-bottom-right-radius:0}.select2-container--classic .select2-search--dropdown .select2-search__field{border:1px solid #aaa;outline:0}.select2-container--classic .select2-search--inline .select2-search__field{outline:0;box-shadow:none}.select2-container--classic .select2-dropdown{background-color:#fff;border:1px solid transparent}.select2-container--classic .select2-dropdown--above{border-bottom:none}.select2-container--classic .select2-dropdown--below{border-top:none}.select2-container--classic .select2-results>.select2-results__options{max-height:200px;overflow-y:auto}.select2-container--classic .select2-results__option[role=group]{padding:0}.select2-container--classic .select2-results__option[aria-disabled=true]{color:grey}.select2-container--classic .select2-results__option--highlighted[aria-selected]{background-color:#3875d7;color:#fff}.select2-container--classic .select2-results__group{cursor:default;display:block;padding:6px}.select2-container--classic.select2-container--open .select2-dropdown{border-color:#5897fb} diff --git a/admin/bower_components/select2/dist/js/i18n/ar.js b/admin/bower_components/select2/dist/js/i18n/ar.js deleted file mode 100644 index 67d2531..0000000 --- a/admin/bower_components/select2/dist/js/i18n/ar.js +++ /dev/null @@ -1,3 +0,0 @@ -/*! Select2 4.0.4 | https://github.com/select2/select2/blob/master/LICENSE.md */ - -(function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/ar",[],function(){return{errorLoading:function(){return"لا يمكن تحميل النتائج"},inputTooLong:function(e){var t=e.input.length-e.maximum;return"الرجاء حذف "+t+" عناصر"},inputTooShort:function(e){var t=e.minimum-e.input.length;return"الرجاء إضافة "+t+" عناصر"},loadingMore:function(){return"جاري تحميل نتائج إضافية..."},maximumSelected:function(e){return"تستطيع إختيار "+e.maximum+" بنود فقط"},noResults:function(){return"لم يتم العثور على أي نتائج"},searching:function(){return"جاري البحث…"}}}),{define:e.define,require:e.require}})(); \ No newline at end of file diff --git a/admin/bower_components/select2/dist/js/i18n/az.js b/admin/bower_components/select2/dist/js/i18n/az.js deleted file mode 100644 index 14d8c53..0000000 --- a/admin/bower_components/select2/dist/js/i18n/az.js +++ /dev/null @@ -1,3 +0,0 @@ -/*! Select2 4.0.4 | https://github.com/select2/select2/blob/master/LICENSE.md */ - -(function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/az",[],function(){return{inputTooLong:function(e){var t=e.input.length-e.maximum;return t+" simvol silin"},inputTooShort:function(e){var t=e.minimum-e.input.length;return t+" simvol daxil edin"},loadingMore:function(){return"Daha çox nəticə yüklənir…"},maximumSelected:function(e){return"Sadəcə "+e.maximum+" element seçə bilərsiniz"},noResults:function(){return"Nəticə tapılmadı"},searching:function(){return"Axtarılır…"}}}),{define:e.define,require:e.require}})(); \ No newline at end of file diff --git a/admin/bower_components/select2/dist/js/i18n/bg.js b/admin/bower_components/select2/dist/js/i18n/bg.js deleted file mode 100644 index 84c4af6..0000000 --- a/admin/bower_components/select2/dist/js/i18n/bg.js +++ /dev/null @@ -1,3 +0,0 @@ -/*! Select2 4.0.4 | https://github.com/select2/select2/blob/master/LICENSE.md */ - -(function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/bg",[],function(){return{inputTooLong:function(e){var t=e.input.length-e.maximum,n="Моля въведете с "+t+" по-малко символ";return t>1&&(n+="a"),n},inputTooShort:function(e){var t=e.minimum-e.input.length,n="Моля въведете още "+t+" символ";return t>1&&(n+="a"),n},loadingMore:function(){return"Зареждат се още…"},maximumSelected:function(e){var t="Можете да направите до "+e.maximum+" ";return e.maximum>1?t+="избора":t+="избор",t},noResults:function(){return"Няма намерени съвпадения"},searching:function(){return"Търсене…"}}}),{define:e.define,require:e.require}})(); \ No newline at end of file diff --git a/admin/bower_components/select2/dist/js/i18n/ca.js b/admin/bower_components/select2/dist/js/i18n/ca.js deleted file mode 100644 index edb7e01..0000000 --- a/admin/bower_components/select2/dist/js/i18n/ca.js +++ /dev/null @@ -1,3 +0,0 @@ -/*! Select2 4.0.4 | https://github.com/select2/select2/blob/master/LICENSE.md */ - -(function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/ca",[],function(){return{errorLoading:function(){return"La càrrega ha fallat"},inputTooLong:function(e){var t=e.input.length-e.maximum,n="Si us plau, elimina "+t+" car";return t==1?n+="àcter":n+="àcters",n},inputTooShort:function(e){var t=e.minimum-e.input.length,n="Si us plau, introdueix "+t+" car";return t==1?n+="àcter":n+="àcters",n},loadingMore:function(){return"Carregant més resultats…"},maximumSelected:function(e){var t="Només es pot seleccionar "+e.maximum+" element";return e.maximum!=1&&(t+="s"),t},noResults:function(){return"No s'han trobat resultats"},searching:function(){return"Cercant…"}}}),{define:e.define,require:e.require}})(); \ No newline at end of file diff --git a/admin/bower_components/select2/dist/js/i18n/cs.js b/admin/bower_components/select2/dist/js/i18n/cs.js deleted file mode 100644 index e04c4d2..0000000 --- a/admin/bower_components/select2/dist/js/i18n/cs.js +++ /dev/null @@ -1,3 +0,0 @@ -/*! Select2 4.0.4 | https://github.com/select2/select2/blob/master/LICENSE.md */ - -(function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/cs",[],function(){function e(e,t){switch(e){case 2:return t?"dva":"dvě";case 3:return"tři";case 4:return"čtyři"}return""}return{errorLoading:function(){return"Výsledky nemohly být načteny."},inputTooLong:function(t){var n=t.input.length-t.maximum;return n==1?"Prosím zadejte o jeden znak méně":n<=4?"Prosím zadejte o "+e(n,!0)+" znaky méně":"Prosím zadejte o "+n+" znaků méně"},inputTooShort:function(t){var n=t.minimum-t.input.length;return n==1?"Prosím zadejte ještě jeden znak":n<=4?"Prosím zadejte ještě další "+e(n,!0)+" znaky":"Prosím zadejte ještě dalších "+n+" znaků"},loadingMore:function(){return"Načítají se další výsledky…"},maximumSelected:function(t){var n=t.maximum;return n==1?"Můžete zvolit jen jednu položku":n<=4?"Můžete zvolit maximálně "+e(n,!1)+" položky":"Můžete zvolit maximálně "+n+" položek"},noResults:function(){return"Nenalezeny žádné položky"},searching:function(){return"Vyhledávání…"}}}),{define:e.define,require:e.require}})(); \ No newline at end of file diff --git a/admin/bower_components/select2/dist/js/i18n/da.js b/admin/bower_components/select2/dist/js/i18n/da.js deleted file mode 100644 index d511a56..0000000 --- a/admin/bower_components/select2/dist/js/i18n/da.js +++ /dev/null @@ -1,3 +0,0 @@ -/*! Select2 4.0.4 | https://github.com/select2/select2/blob/master/LICENSE.md */ - -(function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/da",[],function(){return{errorLoading:function(){return"Resultaterne kunne ikke indlæses."},inputTooLong:function(e){var t=e.input.length-e.maximum;return"Angiv venligst "+t+" tegn mindre"},inputTooShort:function(e){var t=e.minimum-e.input.length;return"Angiv venligst "+t+" tegn mere"},loadingMore:function(){return"Indlæser flere resultater…"},maximumSelected:function(e){var t="Du kan kun vælge "+e.maximum+" emne";return e.maximum!=1&&(t+="r"),t},noResults:function(){return"Ingen resultater fundet"},searching:function(){return"Søger…"}}}),{define:e.define,require:e.require}})(); \ No newline at end of file diff --git a/admin/bower_components/select2/dist/js/i18n/de.js b/admin/bower_components/select2/dist/js/i18n/de.js deleted file mode 100644 index 3a8b7ad..0000000 --- a/admin/bower_components/select2/dist/js/i18n/de.js +++ /dev/null @@ -1,3 +0,0 @@ -/*! Select2 4.0.4 | https://github.com/select2/select2/blob/master/LICENSE.md */ - -(function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/de",[],function(){return{errorLoading:function(){return"Die Ergebnisse konnten nicht geladen werden."},inputTooLong:function(e){var t=e.input.length-e.maximum;return"Bitte "+t+" Zeichen weniger eingeben"},inputTooShort:function(e){var t=e.minimum-e.input.length;return"Bitte "+t+" Zeichen mehr eingeben"},loadingMore:function(){return"Lade mehr Ergebnisse…"},maximumSelected:function(e){var t="Sie können nur "+e.maximum+" Eintr";return e.maximum===1?t+="ag":t+="äge",t+=" auswählen",t},noResults:function(){return"Keine Übereinstimmungen gefunden"},searching:function(){return"Suche…"}}}),{define:e.define,require:e.require}})(); \ No newline at end of file diff --git a/admin/bower_components/select2/dist/js/i18n/el.js b/admin/bower_components/select2/dist/js/i18n/el.js deleted file mode 100644 index 7f36271..0000000 --- a/admin/bower_components/select2/dist/js/i18n/el.js +++ /dev/null @@ -1,3 +0,0 @@ -/*! Select2 4.0.4 | https://github.com/select2/select2/blob/master/LICENSE.md */ - -(function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/el",[],function(){return{errorLoading:function(){return"Τα αποτελέσματα δεν μπόρεσαν να φορτώσουν."},inputTooLong:function(e){var t=e.input.length-e.maximum,n="Παρακαλώ διαγράψτε "+t+" χαρακτήρ";return t==1&&(n+="α"),t!=1&&(n+="ες"),n},inputTooShort:function(e){var t=e.minimum-e.input.length,n="Παρακαλώ συμπληρώστε "+t+" ή περισσότερους χαρακτήρες";return n},loadingMore:function(){return"Φόρτωση περισσότερων αποτελεσμάτων…"},maximumSelected:function(e){var t="Μπορείτε να επιλέξετε μόνο "+e.maximum+" επιλογ";return e.maximum==1&&(t+="ή"),e.maximum!=1&&(t+="ές"),t},noResults:function(){return"Δεν βρέθηκαν αποτελέσματα"},searching:function(){return"Αναζήτηση…"}}}),{define:e.define,require:e.require}})(); \ No newline at end of file diff --git a/admin/bower_components/select2/dist/js/i18n/en.js b/admin/bower_components/select2/dist/js/i18n/en.js deleted file mode 100644 index dc215a3..0000000 --- a/admin/bower_components/select2/dist/js/i18n/en.js +++ /dev/null @@ -1,3 +0,0 @@ -/*! Select2 4.0.4 | https://github.com/select2/select2/blob/master/LICENSE.md */ - -(function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/en",[],function(){return{errorLoading:function(){return"The results could not be loaded."},inputTooLong:function(e){var t=e.input.length-e.maximum,n="Please delete "+t+" character";return t!=1&&(n+="s"),n},inputTooShort:function(e){var t=e.minimum-e.input.length,n="Please enter "+t+" or more characters";return n},loadingMore:function(){return"Loading more results…"},maximumSelected:function(e){var t="You can only select "+e.maximum+" item";return e.maximum!=1&&(t+="s"),t},noResults:function(){return"No results found"},searching:function(){return"Searching…"}}}),{define:e.define,require:e.require}})(); \ No newline at end of file diff --git a/admin/bower_components/select2/dist/js/i18n/es.js b/admin/bower_components/select2/dist/js/i18n/es.js deleted file mode 100644 index 6217153..0000000 --- a/admin/bower_components/select2/dist/js/i18n/es.js +++ /dev/null @@ -1,3 +0,0 @@ -/*! Select2 4.0.4 | https://github.com/select2/select2/blob/master/LICENSE.md */ - -(function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/es",[],function(){return{errorLoading:function(){return"La carga falló"},inputTooLong:function(e){var t=e.input.length-e.maximum,n="Por favor, elimine "+t+" car";return t==1?n+="ácter":n+="acteres",n},inputTooShort:function(e){var t=e.minimum-e.input.length,n="Por favor, introduzca "+t+" car";return t==1?n+="ácter":n+="acteres",n},loadingMore:function(){return"Cargando más resultados…"},maximumSelected:function(e){var t="Sólo puede seleccionar "+e.maximum+" elemento";return e.maximum!=1&&(t+="s"),t},noResults:function(){return"No se encontraron resultados"},searching:function(){return"Buscando…"}}}),{define:e.define,require:e.require}})(); \ No newline at end of file diff --git a/admin/bower_components/select2/dist/js/i18n/et.js b/admin/bower_components/select2/dist/js/i18n/et.js deleted file mode 100644 index 0ca18b4..0000000 --- a/admin/bower_components/select2/dist/js/i18n/et.js +++ /dev/null @@ -1,3 +0,0 @@ -/*! Select2 4.0.4 | https://github.com/select2/select2/blob/master/LICENSE.md */ - -(function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/et",[],function(){return{inputTooLong:function(e){var t=e.input.length-e.maximum,n="Sisesta "+t+" täht";return t!=1&&(n+="e"),n+=" vähem",n},inputTooShort:function(e){var t=e.minimum-e.input.length,n="Sisesta "+t+" täht";return t!=1&&(n+="e"),n+=" rohkem",n},loadingMore:function(){return"Laen tulemusi…"},maximumSelected:function(e){var t="Saad vaid "+e.maximum+" tulemus";return e.maximum==1?t+="e":t+="t",t+=" valida",t},noResults:function(){return"Tulemused puuduvad"},searching:function(){return"Otsin…"}}}),{define:e.define,require:e.require}})(); \ No newline at end of file diff --git a/admin/bower_components/select2/dist/js/i18n/eu.js b/admin/bower_components/select2/dist/js/i18n/eu.js deleted file mode 100644 index 6f45596..0000000 --- a/admin/bower_components/select2/dist/js/i18n/eu.js +++ /dev/null @@ -1,3 +0,0 @@ -/*! Select2 4.0.4 | https://github.com/select2/select2/blob/master/LICENSE.md */ - -(function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/eu",[],function(){return{inputTooLong:function(e){var t=e.input.length-e.maximum,n="Idatzi ";return t==1?n+="karaktere bat":n+=t+" karaktere",n+=" gutxiago",n},inputTooShort:function(e){var t=e.minimum-e.input.length,n="Idatzi ";return t==1?n+="karaktere bat":n+=t+" karaktere",n+=" gehiago",n},loadingMore:function(){return"Emaitza gehiago kargatzen…"},maximumSelected:function(e){return e.maximum===1?"Elementu bakarra hauta dezakezu":e.maximum+" elementu hauta ditzakezu soilik"},noResults:function(){return"Ez da bat datorrenik aurkitu"},searching:function(){return"Bilatzen…"}}}),{define:e.define,require:e.require}})(); \ No newline at end of file diff --git a/admin/bower_components/select2/dist/js/i18n/fa.js b/admin/bower_components/select2/dist/js/i18n/fa.js deleted file mode 100644 index a51c93c..0000000 --- a/admin/bower_components/select2/dist/js/i18n/fa.js +++ /dev/null @@ -1,3 +0,0 @@ -/*! Select2 4.0.4 | https://github.com/select2/select2/blob/master/LICENSE.md */ - -(function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/fa",[],function(){return{errorLoading:function(){return"امکان بارگذاری نتایج وجود ندارد."},inputTooLong:function(e){var t=e.input.length-e.maximum,n="لطفاً "+t+" کاراکتر را حذف نمایید";return n},inputTooShort:function(e){var t=e.minimum-e.input.length,n="لطفاً تعداد "+t+" کاراکتر یا بیشتر وارد نمایید";return n},loadingMore:function(){return"در حال بارگذاری نتایج بیشتر..."},maximumSelected:function(e){var t="شما تنها می‌توانید "+e.maximum+" آیتم را انتخاب نمایید";return t},noResults:function(){return"هیچ نتیجه‌ای یافت نشد"},searching:function(){return"در حال جستجو..."}}}),{define:e.define,require:e.require}})(); \ No newline at end of file diff --git a/admin/bower_components/select2/dist/js/i18n/fi.js b/admin/bower_components/select2/dist/js/i18n/fi.js deleted file mode 100644 index b408633..0000000 --- a/admin/bower_components/select2/dist/js/i18n/fi.js +++ /dev/null @@ -1,3 +0,0 @@ -/*! Select2 4.0.4 | https://github.com/select2/select2/blob/master/LICENSE.md */ - -(function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/fi",[],function(){return{errorLoading:function(){return"Tuloksia ei saatu ladattua."},inputTooLong:function(e){var t=e.input.length-e.maximum;return"Ole hyvä ja anna "+t+" merkkiä vähemmän"},inputTooShort:function(e){var t=e.minimum-e.input.length;return"Ole hyvä ja anna "+t+" merkkiä lisää"},loadingMore:function(){return"Ladataan lisää tuloksia…"},maximumSelected:function(e){return"Voit valita ainoastaan "+e.maximum+" kpl"},noResults:function(){return"Ei tuloksia"},searching:function(){return"Haetaan…"}}}),{define:e.define,require:e.require}})(); \ No newline at end of file diff --git a/admin/bower_components/select2/dist/js/i18n/fr.js b/admin/bower_components/select2/dist/js/i18n/fr.js deleted file mode 100644 index aec0fde..0000000 --- a/admin/bower_components/select2/dist/js/i18n/fr.js +++ /dev/null @@ -1,3 +0,0 @@ -/*! Select2 4.0.4 | https://github.com/select2/select2/blob/master/LICENSE.md */ - -(function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/fr",[],function(){return{errorLoading:function(){return"Les résultats ne peuvent pas être chargés."},inputTooLong:function(e){var t=e.input.length-e.maximum,n="Supprimez "+t+" caractère";return t!==1&&(n+="s"),n},inputTooShort:function(e){var t=e.minimum-e.input.length,n="Saisissez "+t+" caractère";return t!==1&&(n+="s"),n},loadingMore:function(){return"Chargement de résultats supplémentaires…"},maximumSelected:function(e){var t="Vous pouvez seulement sélectionner "+e.maximum+" élément";return e.maximum!==1&&(t+="s"),t},noResults:function(){return"Aucun résultat trouvé"},searching:function(){return"Recherche en cours…"}}}),{define:e.define,require:e.require}})(); \ No newline at end of file diff --git a/admin/bower_components/select2/dist/js/i18n/gl.js b/admin/bower_components/select2/dist/js/i18n/gl.js deleted file mode 100644 index 3b10c40..0000000 --- a/admin/bower_components/select2/dist/js/i18n/gl.js +++ /dev/null @@ -1,3 +0,0 @@ -/*! Select2 4.0.4 | https://github.com/select2/select2/blob/master/LICENSE.md */ - -(function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/gl",[],function(){return{errorLoading:function(){return"Non foi posíbel cargar os resultados."},inputTooLong:function(e){var t=e.input.length-e.maximum;return t===1?"Elimine un carácter":"Elimine "+t+" caracteres"},inputTooShort:function(e){var t=e.minimum-e.input.length;return t===1?"Engada un carácter":"Engada "+t+" caracteres"},loadingMore:function(){return"Cargando máis resultados…"},maximumSelected:function(e){return e.maximum===1?"Só pode seleccionar un elemento":"Só pode seleccionar "+e.maximum+" elementos"},noResults:function(){return"Non se atoparon resultados"},searching:function(){return"Buscando…"}}}),{define:e.define,require:e.require}})(); \ No newline at end of file diff --git a/admin/bower_components/select2/dist/js/i18n/he.js b/admin/bower_components/select2/dist/js/i18n/he.js deleted file mode 100644 index f13da1d..0000000 --- a/admin/bower_components/select2/dist/js/i18n/he.js +++ /dev/null @@ -1,3 +0,0 @@ -/*! Select2 4.0.4 | https://github.com/select2/select2/blob/master/LICENSE.md */ - -(function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/he",[],function(){return{errorLoading:function(){return"שגיאה בטעינת התוצאות"},inputTooLong:function(e){var t=e.input.length-e.maximum,n="נא למחוק ";return t===1?n+="תו אחד":n+=t+" תווים",n},inputTooShort:function(e){var t=e.minimum-e.input.length,n="נא להכניס ";return t===1?n+="תו אחד":n+=t+" תווים",n+=" או יותר",n},loadingMore:function(){return"טוען תוצאות נוספות…"},maximumSelected:function(e){var t="באפשרותך לבחור עד ";return e.maximum===1?t+="פריט אחד":t+=e.maximum+" פריטים",t},noResults:function(){return"לא נמצאו תוצאות"},searching:function(){return"מחפש…"}}}),{define:e.define,require:e.require}})(); \ No newline at end of file diff --git a/admin/bower_components/select2/dist/js/i18n/hi.js b/admin/bower_components/select2/dist/js/i18n/hi.js deleted file mode 100644 index 1f32fd7..0000000 --- a/admin/bower_components/select2/dist/js/i18n/hi.js +++ /dev/null @@ -1,3 +0,0 @@ -/*! Select2 4.0.4 | https://github.com/select2/select2/blob/master/LICENSE.md */ - -(function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/hi",[],function(){return{errorLoading:function(){return"परिणामों को लोड नहीं किया जा सका।"},inputTooLong:function(e){var t=e.input.length-e.maximum,n=t+" अक्षर को हटा दें";return t>1&&(n=t+" अक्षरों को हटा दें "),n},inputTooShort:function(e){var t=e.minimum-e.input.length,n="कृपया "+t+" या अधिक अक्षर दर्ज करें";return n},loadingMore:function(){return"अधिक परिणाम लोड हो रहे है..."},maximumSelected:function(e){var t="आप केवल "+e.maximum+" आइटम का चयन कर सकते हैं";return t},noResults:function(){return"कोई परिणाम नहीं मिला"},searching:function(){return"खोज रहा है..."}}}),{define:e.define,require:e.require}})(); \ No newline at end of file diff --git a/admin/bower_components/select2/dist/js/i18n/hr.js b/admin/bower_components/select2/dist/js/i18n/hr.js deleted file mode 100644 index 3c730ee..0000000 --- a/admin/bower_components/select2/dist/js/i18n/hr.js +++ /dev/null @@ -1,3 +0,0 @@ -/*! Select2 4.0.4 | https://github.com/select2/select2/blob/master/LICENSE.md */ - -(function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/hr",[],function(){function e(e){var t=" "+e+" znak";return e%10<5&&e%10>0&&(e%100<5||e%100>19)?e%10>1&&(t+="a"):t+="ova",t}return{errorLoading:function(){return"Preuzimanje nije uspjelo."},inputTooLong:function(t){var n=t.input.length-t.maximum;return"Unesite "+e(n)},inputTooShort:function(t){var n=t.minimum-t.input.length;return"Unesite još "+e(n)},loadingMore:function(){return"Učitavanje rezultata…"},maximumSelected:function(e){return"Maksimalan broj odabranih stavki je "+e.maximum},noResults:function(){return"Nema rezultata"},searching:function(){return"Pretraga…"}}}),{define:e.define,require:e.require}})(); \ No newline at end of file diff --git a/admin/bower_components/select2/dist/js/i18n/hu.js b/admin/bower_components/select2/dist/js/i18n/hu.js deleted file mode 100644 index aeaeb8f..0000000 --- a/admin/bower_components/select2/dist/js/i18n/hu.js +++ /dev/null @@ -1,3 +0,0 @@ -/*! Select2 4.0.4 | https://github.com/select2/select2/blob/master/LICENSE.md */ - -(function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/hu",[],function(){return{errorLoading:function(){return"Az eredmények betöltése nem sikerült."},inputTooLong:function(e){var t=e.input.length-e.maximum;return"Túl hosszú. "+t+" karakterrel több, mint kellene."},inputTooShort:function(e){var t=e.minimum-e.input.length;return"Túl rövid. Még "+t+" karakter hiányzik."},loadingMore:function(){return"Töltés…"},maximumSelected:function(e){return"Csak "+e.maximum+" elemet lehet kiválasztani."},noResults:function(){return"Nincs találat."},searching:function(){return"Keresés…"}}}),{define:e.define,require:e.require}})(); \ No newline at end of file diff --git a/admin/bower_components/select2/dist/js/i18n/hy.js b/admin/bower_components/select2/dist/js/i18n/hy.js deleted file mode 100644 index 3ca789c..0000000 --- a/admin/bower_components/select2/dist/js/i18n/hy.js +++ /dev/null @@ -1,3 +0,0 @@ -/*! Select2 4.0.4 | https://github.com/select2/select2/blob/master/LICENSE.md */ - -(function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/hy",[],function(){return{errorLoading:function(){return"Արդյունքները հնարավոր չէ բեռնել։"},inputTooLong:function(e){var t=e.input.length-e.maximum,n="Խնդրում ենք հեռացնել "+t+" նշան";return n},inputTooShort:function(e){var t=e.minimum-e.input.length,n="Խնդրում ենք մուտքագրել "+t+" կամ ավել նշաններ";return n},loadingMore:function(){return"Բեռնվում են նոր արդյունքներ․․․"},maximumSelected:function(e){var t="Դուք կարող եք ընտրել առավելագույնը "+e.maximum+" կետ";return t},noResults:function(){return"Արդյունքներ չեն գտնվել"},searching:function(){return"Որոնում․․․"}}}),{define:e.define,require:e.require}})(); \ No newline at end of file diff --git a/admin/bower_components/select2/dist/js/i18n/id.js b/admin/bower_components/select2/dist/js/i18n/id.js deleted file mode 100644 index 1047be4..0000000 --- a/admin/bower_components/select2/dist/js/i18n/id.js +++ /dev/null @@ -1,3 +0,0 @@ -/*! Select2 4.0.4 | https://github.com/select2/select2/blob/master/LICENSE.md */ - -(function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/id",[],function(){return{errorLoading:function(){return"Data tidak boleh diambil."},inputTooLong:function(e){var t=e.input.length-e.maximum;return"Hapuskan "+t+" huruf"},inputTooShort:function(e){var t=e.minimum-e.input.length;return"Masukkan "+t+" huruf lagi"},loadingMore:function(){return"Mengambil data…"},maximumSelected:function(e){return"Anda hanya dapat memilih "+e.maximum+" pilihan"},noResults:function(){return"Tidak ada data yang sesuai"},searching:function(){return"Mencari…"}}}),{define:e.define,require:e.require}})(); \ No newline at end of file diff --git a/admin/bower_components/select2/dist/js/i18n/is.js b/admin/bower_components/select2/dist/js/i18n/is.js deleted file mode 100644 index ef2f671..0000000 --- a/admin/bower_components/select2/dist/js/i18n/is.js +++ /dev/null @@ -1,3 +0,0 @@ -/*! Select2 4.0.4 | https://github.com/select2/select2/blob/master/LICENSE.md */ - -(function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/is",[],function(){return{inputTooLong:function(e){var t=e.input.length-e.maximum,n="Vinsamlegast styttið texta um "+t+" staf";return t<=1?n:n+"i"},inputTooShort:function(e){var t=e.minimum-e.input.length,n="Vinsamlegast skrifið "+t+" staf";return t>1&&(n+="i"),n+=" í viðbót",n},loadingMore:function(){return"Sæki fleiri niðurstöður…"},maximumSelected:function(e){return"Þú getur aðeins valið "+e.maximum+" atriði"},noResults:function(){return"Ekkert fannst"},searching:function(){return"Leita…"}}}),{define:e.define,require:e.require}})(); \ No newline at end of file diff --git a/admin/bower_components/select2/dist/js/i18n/it.js b/admin/bower_components/select2/dist/js/i18n/it.js deleted file mode 100644 index 7a027ec..0000000 --- a/admin/bower_components/select2/dist/js/i18n/it.js +++ /dev/null @@ -1,3 +0,0 @@ -/*! Select2 4.0.4 | https://github.com/select2/select2/blob/master/LICENSE.md */ - -(function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/it",[],function(){return{errorLoading:function(){return"I risultati non possono essere caricati."},inputTooLong:function(e){var t=e.input.length-e.maximum,n="Per favore cancella "+t+" caratter";return t!==1?n+="i":n+="e",n},inputTooShort:function(e){var t=e.minimum-e.input.length,n="Per favore inserisci "+t+" o più caratteri";return n},loadingMore:function(){return"Caricando più risultati…"},maximumSelected:function(e){var t="Puoi selezionare solo "+e.maximum+" element";return e.maximum!==1?t+="i":t+="o",t},noResults:function(){return"Nessun risultato trovato"},searching:function(){return"Sto cercando…"}}}),{define:e.define,require:e.require}})(); \ No newline at end of file diff --git a/admin/bower_components/select2/dist/js/i18n/ja.js b/admin/bower_components/select2/dist/js/i18n/ja.js deleted file mode 100644 index 7a13155..0000000 --- a/admin/bower_components/select2/dist/js/i18n/ja.js +++ /dev/null @@ -1,3 +0,0 @@ -/*! Select2 4.0.4 | https://github.com/select2/select2/blob/master/LICENSE.md */ - -(function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/ja",[],function(){return{errorLoading:function(){return"結果が読み込まれませんでした"},inputTooLong:function(e){var t=e.input.length-e.maximum,n=t+" 文字を削除してください";return n},inputTooShort:function(e){var t=e.minimum-e.input.length,n="少なくとも "+t+" 文字を入力してください";return n},loadingMore:function(){return"読み込み中…"},maximumSelected:function(e){var t=e.maximum+" 件しか選択できません";return t},noResults:function(){return"対象が見つかりません"},searching:function(){return"検索しています…"}}}),{define:e.define,require:e.require}})(); \ No newline at end of file diff --git a/admin/bower_components/select2/dist/js/i18n/km.js b/admin/bower_components/select2/dist/js/i18n/km.js deleted file mode 100644 index 17eb9d4..0000000 --- a/admin/bower_components/select2/dist/js/i18n/km.js +++ /dev/null @@ -1,3 +0,0 @@ -/*! Select2 4.0.4 | https://github.com/select2/select2/blob/master/LICENSE.md */ - -(function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/km",[],function(){return{errorLoading:function(){return"មិនអាចទាញយកទិន្នន័យ"},inputTooLong:function(e){var t=e.input.length-e.maximum,n="សូមលុបចេញ "+t+" អក្សរ";return n},inputTooShort:function(e){var t=e.minimum-e.input.length,n="សូមបញ្ចូល"+t+" អក្សរ រឺ ច្រើនជាងនេះ";return n},loadingMore:function(){return"កំពុងទាញយកទិន្នន័យបន្ថែម..."},maximumSelected:function(e){var t="អ្នកអាចជ្រើសរើសបានតែ "+e.maximum+" ជម្រើសប៉ុណ្ណោះ";return t},noResults:function(){return"មិនមានលទ្ធផល"},searching:function(){return"កំពុងស្វែងរក..."}}}),{define:e.define,require:e.require}})(); \ No newline at end of file diff --git a/admin/bower_components/select2/dist/js/i18n/ko.js b/admin/bower_components/select2/dist/js/i18n/ko.js deleted file mode 100644 index 726fced..0000000 --- a/admin/bower_components/select2/dist/js/i18n/ko.js +++ /dev/null @@ -1,3 +0,0 @@ -/*! Select2 4.0.4 | https://github.com/select2/select2/blob/master/LICENSE.md */ - -(function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/ko",[],function(){return{errorLoading:function(){return"결과를 불러올 수 없습니다."},inputTooLong:function(e){var t=e.input.length-e.maximum,n="너무 깁니다. "+t+" 글자 지워주세요.";return n},inputTooShort:function(e){var t=e.minimum-e.input.length,n="너무 짧습니다. "+t+" 글자 더 입력해주세요.";return n},loadingMore:function(){return"불러오는 중…"},maximumSelected:function(e){var t="최대 "+e.maximum+"개까지만 선택 가능합니다.";return t},noResults:function(){return"결과가 없습니다."},searching:function(){return"검색 중…"}}}),{define:e.define,require:e.require}})(); \ No newline at end of file diff --git a/admin/bower_components/select2/dist/js/i18n/lt.js b/admin/bower_components/select2/dist/js/i18n/lt.js deleted file mode 100644 index 5b44b6e..0000000 --- a/admin/bower_components/select2/dist/js/i18n/lt.js +++ /dev/null @@ -1,3 +0,0 @@ -/*! Select2 4.0.4 | https://github.com/select2/select2/blob/master/LICENSE.md */ - -(function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/lt",[],function(){function e(e,t,n,r){return e%10===1&&(e%100<11||e%100>19)?t:e%10>=2&&e%10<=9&&(e%100<11||e%100>19)?n:r}return{inputTooLong:function(t){var n=t.input.length-t.maximum,r="Pašalinkite "+n+" simbol";return r+=e(n,"į","ius","ių"),r},inputTooShort:function(t){var n=t.minimum-t.input.length,r="Įrašykite dar "+n+" simbol";return r+=e(n,"į","ius","ių"),r},loadingMore:function(){return"Kraunama daugiau rezultatų…"},maximumSelected:function(t){var n="Jūs galite pasirinkti tik "+t.maximum+" element";return n+=e(t.maximum,"ą","us","ų"),n},noResults:function(){return"Atitikmenų nerasta"},searching:function(){return"Ieškoma…"}}}),{define:e.define,require:e.require}})(); \ No newline at end of file diff --git a/admin/bower_components/select2/dist/js/i18n/lv.js b/admin/bower_components/select2/dist/js/i18n/lv.js deleted file mode 100644 index 533d138..0000000 --- a/admin/bower_components/select2/dist/js/i18n/lv.js +++ /dev/null @@ -1,3 +0,0 @@ -/*! Select2 4.0.4 | https://github.com/select2/select2/blob/master/LICENSE.md */ - -(function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/lv",[],function(){function e(e,t,n,r){return e===11?t:e%10===1?n:r}return{inputTooLong:function(t){var n=t.input.length-t.maximum,r="Lūdzu ievadiet par "+n;return r+=" simbol"+e(n,"iem","u","iem"),r+" mazāk"},inputTooShort:function(t){var n=t.minimum-t.input.length,r="Lūdzu ievadiet vēl "+n;return r+=" simbol"+e(n,"us","u","us"),r},loadingMore:function(){return"Datu ielāde…"},maximumSelected:function(t){var n="Jūs varat izvēlēties ne vairāk kā "+t.maximum;return n+=" element"+e(t.maximum,"us","u","us"),n},noResults:function(){return"Sakritību nav"},searching:function(){return"Meklēšana…"}}}),{define:e.define,require:e.require}})(); \ No newline at end of file diff --git a/admin/bower_components/select2/dist/js/i18n/mk.js b/admin/bower_components/select2/dist/js/i18n/mk.js deleted file mode 100644 index c8d0a84..0000000 --- a/admin/bower_components/select2/dist/js/i18n/mk.js +++ /dev/null @@ -1,3 +0,0 @@ -/*! Select2 4.0.4 | https://github.com/select2/select2/blob/master/LICENSE.md */ - -(function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/mk",[],function(){return{inputTooLong:function(e){var t=e.input.length-e.maximum,n="Ве молиме внесете "+e.maximum+" помалку карактер";return e.maximum!==1&&(n+="и"),n},inputTooShort:function(e){var t=e.minimum-e.input.length,n="Ве молиме внесете уште "+e.maximum+" карактер";return e.maximum!==1&&(n+="и"),n},loadingMore:function(){return"Вчитување резултати…"},maximumSelected:function(e){var t="Можете да изберете само "+e.maximum+" ставк";return e.maximum===1?t+="а":t+="и",t},noResults:function(){return"Нема пронајдено совпаѓања"},searching:function(){return"Пребарување…"}}}),{define:e.define,require:e.require}})(); \ No newline at end of file diff --git a/admin/bower_components/select2/dist/js/i18n/ms.js b/admin/bower_components/select2/dist/js/i18n/ms.js deleted file mode 100644 index 1b084c0..0000000 --- a/admin/bower_components/select2/dist/js/i18n/ms.js +++ /dev/null @@ -1,3 +0,0 @@ -/*! Select2 4.0.4 | https://github.com/select2/select2/blob/master/LICENSE.md */ - -(function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/ms",[],function(){return{errorLoading:function(){return"Keputusan tidak berjaya dimuatkan."},inputTooLong:function(e){var t=e.input.length-e.maximum;return"Sila hapuskan "+t+" aksara"},inputTooShort:function(e){var t=e.minimum-e.input.length;return"Sila masukkan "+t+" atau lebih aksara"},loadingMore:function(){return"Sedang memuatkan keputusan…"},maximumSelected:function(e){return"Anda hanya boleh memilih "+e.maximum+" pilihan"},noResults:function(){return"Tiada padanan yang ditemui"},searching:function(){return"Mencari…"}}}),{define:e.define,require:e.require}})(); \ No newline at end of file diff --git a/admin/bower_components/select2/dist/js/i18n/nb.js b/admin/bower_components/select2/dist/js/i18n/nb.js deleted file mode 100644 index c2dc01c..0000000 --- a/admin/bower_components/select2/dist/js/i18n/nb.js +++ /dev/null @@ -1,3 +0,0 @@ -/*! Select2 4.0.4 | https://github.com/select2/select2/blob/master/LICENSE.md */ - -(function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/nb",[],function(){return{errorLoading:function(){return"Kunne ikke hente resultater."},inputTooLong:function(e){var t=e.input.length-e.maximum;return"Vennligst fjern "+t+" tegn"},inputTooShort:function(e){var t=e.minimum-e.input.length,n="Vennligst skriv inn ";return t>1?n+=" flere tegn":n+=" tegn til",n},loadingMore:function(){return"Laster flere resultater…"},maximumSelected:function(e){return"Du kan velge maks "+e.maximum+" elementer"},noResults:function(){return"Ingen treff"},searching:function(){return"Søker…"}}}),{define:e.define,require:e.require}})(); \ No newline at end of file diff --git a/admin/bower_components/select2/dist/js/i18n/nl.js b/admin/bower_components/select2/dist/js/i18n/nl.js deleted file mode 100644 index 604bc18..0000000 --- a/admin/bower_components/select2/dist/js/i18n/nl.js +++ /dev/null @@ -1,3 +0,0 @@ -/*! Select2 4.0.4 | https://github.com/select2/select2/blob/master/LICENSE.md */ - -(function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/nl",[],function(){return{errorLoading:function(){return"De resultaten konden niet worden geladen."},inputTooLong:function(e){var t=e.input.length-e.maximum,n="Gelieve "+t+" karakters te verwijderen";return n},inputTooShort:function(e){var t=e.minimum-e.input.length,n="Gelieve "+t+" of meer karakters in te voeren";return n},loadingMore:function(){return"Meer resultaten laden…"},maximumSelected:function(e){var t=e.maximum==1?"kan":"kunnen",n="Er "+t+" maar "+e.maximum+" item";return e.maximum!=1&&(n+="s"),n+=" worden geselecteerd",n},noResults:function(){return"Geen resultaten gevonden…"},searching:function(){return"Zoeken…"}}}),{define:e.define,require:e.require}})(); \ No newline at end of file diff --git a/admin/bower_components/select2/dist/js/i18n/pl.js b/admin/bower_components/select2/dist/js/i18n/pl.js deleted file mode 100644 index dcc743f..0000000 --- a/admin/bower_components/select2/dist/js/i18n/pl.js +++ /dev/null @@ -1,3 +0,0 @@ -/*! Select2 4.0.4 | https://github.com/select2/select2/blob/master/LICENSE.md */ - -(function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/pl",[],function(){var e=["znak","znaki","znaków"],t=["element","elementy","elementów"],n=function(t,n){if(t===1)return n[0];if(t>1&&t<=4)return n[1];if(t>=5)return n[2]};return{errorLoading:function(){return"Nie można załadować wyników."},inputTooLong:function(t){var r=t.input.length-t.maximum;return"Usuń "+r+" "+n(r,e)},inputTooShort:function(t){var r=t.minimum-t.input.length;return"Podaj przynajmniej "+r+" "+n(r,e)},loadingMore:function(){return"Trwa ładowanie…"},maximumSelected:function(e){return"Możesz zaznaczyć tylko "+e.maximum+" "+n(e.maximum,t)},noResults:function(){return"Brak wyników"},searching:function(){return"Trwa wyszukiwanie…"}}}),{define:e.define,require:e.require}})(); \ No newline at end of file diff --git a/admin/bower_components/select2/dist/js/i18n/pt-BR.js b/admin/bower_components/select2/dist/js/i18n/pt-BR.js deleted file mode 100644 index ef5c56e..0000000 --- a/admin/bower_components/select2/dist/js/i18n/pt-BR.js +++ /dev/null @@ -1,3 +0,0 @@ -/*! Select2 4.0.4 | https://github.com/select2/select2/blob/master/LICENSE.md */ - -(function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/pt-BR",[],function(){return{errorLoading:function(){return"Os resultados não puderam ser carregados."},inputTooLong:function(e){var t=e.input.length-e.maximum,n="Apague "+t+" caracter";return t!=1&&(n+="es"),n},inputTooShort:function(e){var t=e.minimum-e.input.length,n="Digite "+t+" ou mais caracteres";return n},loadingMore:function(){return"Carregando mais resultados…"},maximumSelected:function(e){var t="Você só pode selecionar "+e.maximum+" ite";return e.maximum==1?t+="m":t+="ns",t},noResults:function(){return"Nenhum resultado encontrado"},searching:function(){return"Buscando…"}}}),{define:e.define,require:e.require}})(); \ No newline at end of file diff --git a/admin/bower_components/select2/dist/js/i18n/pt.js b/admin/bower_components/select2/dist/js/i18n/pt.js deleted file mode 100644 index 2c1ef6a..0000000 --- a/admin/bower_components/select2/dist/js/i18n/pt.js +++ /dev/null @@ -1,3 +0,0 @@ -/*! Select2 4.0.4 | https://github.com/select2/select2/blob/master/LICENSE.md */ - -(function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/pt",[],function(){return{errorLoading:function(){return"Os resultados não puderam ser carregados."},inputTooLong:function(e){var t=e.input.length-e.maximum,n="Por favor apague "+t+" ";return n+=t!=1?"caracteres":"caractere",n},inputTooShort:function(e){var t=e.minimum-e.input.length,n="Introduza "+t+" ou mais caracteres";return n},loadingMore:function(){return"A carregar mais resultados…"},maximumSelected:function(e){var t="Apenas pode seleccionar "+e.maximum+" ";return t+=e.maximum!=1?"itens":"item",t},noResults:function(){return"Sem resultados"},searching:function(){return"A procurar…"}}}),{define:e.define,require:e.require}})(); \ No newline at end of file diff --git a/admin/bower_components/select2/dist/js/i18n/ro.js b/admin/bower_components/select2/dist/js/i18n/ro.js deleted file mode 100644 index 216ae1b..0000000 --- a/admin/bower_components/select2/dist/js/i18n/ro.js +++ /dev/null @@ -1,3 +0,0 @@ -/*! Select2 4.0.4 | https://github.com/select2/select2/blob/master/LICENSE.md */ - -(function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/ro",[],function(){return{errorLoading:function(){return"Rezultatele nu au putut fi incărcate."},inputTooLong:function(e){var t=e.input.length-e.maximum,n="Vă rugăm să ștergeți"+t+" caracter";return t!==1&&(n+="e"),n},inputTooShort:function(e){var t=e.minimum-e.input.length,n="Vă rugăm să introduceți "+t+"sau mai multe caractere";return n},loadingMore:function(){return"Se încarcă mai multe rezultate…"},maximumSelected:function(e){var t="Aveți voie să selectați cel mult "+e.maximum;return t+=" element",e.maximum!==1&&(t+="e"),t},noResults:function(){return"Nu au fost găsite rezultate"},searching:function(){return"Căutare…"}}}),{define:e.define,require:e.require}})(); \ No newline at end of file diff --git a/admin/bower_components/select2/dist/js/i18n/ru.js b/admin/bower_components/select2/dist/js/i18n/ru.js deleted file mode 100644 index 6cecde9..0000000 --- a/admin/bower_components/select2/dist/js/i18n/ru.js +++ /dev/null @@ -1,3 +0,0 @@ -/*! Select2 4.0.4 | https://github.com/select2/select2/blob/master/LICENSE.md */ - -(function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/ru",[],function(){function e(e,t,n,r){return e%10<5&&e%10>0&&e%100<5||e%100>20?e%10>1?n:t:r}return{errorLoading:function(){return"Невозможно загрузить результаты"},inputTooLong:function(t){var n=t.input.length-t.maximum,r="Пожалуйста, введите на "+n+" символ";return r+=e(n,"","a","ов"),r+=" меньше",r},inputTooShort:function(t){var n=t.minimum-t.input.length,r="Пожалуйста, введите еще хотя бы "+n+" символ";return r+=e(n,"","a","ов"),r},loadingMore:function(){return"Загрузка данных…"},maximumSelected:function(t){var n="Вы можете выбрать не более "+t.maximum+" элемент";return n+=e(t.maximum,"","a","ов"),n},noResults:function(){return"Совпадений не найдено"},searching:function(){return"Поиск…"}}}),{define:e.define,require:e.require}})(); \ No newline at end of file diff --git a/admin/bower_components/select2/dist/js/i18n/sk.js b/admin/bower_components/select2/dist/js/i18n/sk.js deleted file mode 100644 index 1fae966..0000000 --- a/admin/bower_components/select2/dist/js/i18n/sk.js +++ /dev/null @@ -1,3 +0,0 @@ -/*! Select2 4.0.4 | https://github.com/select2/select2/blob/master/LICENSE.md */ - -(function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/sk",[],function(){var e={2:function(e){return e?"dva":"dve"},3:function(){return"tri"},4:function(){return"štyri"}};return{inputTooLong:function(t){var n=t.input.length-t.maximum;return n==1?"Prosím, zadajte o jeden znak menej":n>=2&&n<=4?"Prosím, zadajte o "+e[n](!0)+" znaky menej":"Prosím, zadajte o "+n+" znakov menej"},inputTooShort:function(t){var n=t.minimum-t.input.length;return n==1?"Prosím, zadajte ešte jeden znak":n<=4?"Prosím, zadajte ešte ďalšie "+e[n](!0)+" znaky":"Prosím, zadajte ešte ďalších "+n+" znakov"},loadingMore:function(){return"Loading more results…"},maximumSelected:function(t){return t.maximum==1?"Môžete zvoliť len jednu položku":t.maximum>=2&&t.maximum<=4?"Môžete zvoliť najviac "+e[t.maximum](!1)+" položky":"Môžete zvoliť najviac "+t.maximum+" položiek"},noResults:function(){return"Nenašli sa žiadne položky"},searching:function(){return"Vyhľadávanie…"}}}),{define:e.define,require:e.require}})(); \ No newline at end of file diff --git a/admin/bower_components/select2/dist/js/i18n/sl.js b/admin/bower_components/select2/dist/js/i18n/sl.js deleted file mode 100644 index e5ea633..0000000 --- a/admin/bower_components/select2/dist/js/i18n/sl.js +++ /dev/null @@ -1,3 +0,0 @@ -/*! Select2 4.0.4 | https://github.com/select2/select2/blob/master/LICENSE.md */ - -(function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/sl",[],function(){return{errorLoading:function(){return"Zadetkov iskanja ni bilo mogoče naložiti."},inputTooLong:function(e){var t=e.input.length-e.maximum,n="Prosim zbrišite "+t+" znak";return t==2?n+="a":t!=1&&(n+="e"),n},inputTooShort:function(e){var t=e.minimum-e.input.length,n="Prosim vpišite še "+t+" znak";return t==2?n+="a":t!=1&&(n+="e"),n},loadingMore:function(){return"Nalagam več zadetkov…"},maximumSelected:function(e){var t="Označite lahko največ "+e.maximum+" predmet";return e.maximum==2?t+="a":e.maximum!=1&&(t+="e"),t},noResults:function(){return"Ni zadetkov."},searching:function(){return"Iščem…"}}}),{define:e.define,require:e.require}})(); \ No newline at end of file diff --git a/admin/bower_components/select2/dist/js/i18n/sr-Cyrl.js b/admin/bower_components/select2/dist/js/i18n/sr-Cyrl.js deleted file mode 100644 index 3343a08..0000000 --- a/admin/bower_components/select2/dist/js/i18n/sr-Cyrl.js +++ /dev/null @@ -1,3 +0,0 @@ -/*! Select2 4.0.4 | https://github.com/select2/select2/blob/master/LICENSE.md */ - -(function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/sr-Cyrl",[],function(){function e(e,t,n,r){return e%10==1&&e%100!=11?t:e%10>=2&&e%10<=4&&(e%100<12||e%100>14)?n:r}return{errorLoading:function(){return"Преузимање није успело."},inputTooLong:function(t){var n=t.input.length-t.maximum,r="Обришите "+n+" симбол";return r+=e(n,"","а","а"),r},inputTooShort:function(t){var n=t.minimum-t.input.length,r="Укуцајте бар још "+n+" симбол";return r+=e(n,"","а","а"),r},loadingMore:function(){return"Преузимање још резултата…"},maximumSelected:function(t){var n="Можете изабрати само "+t.maximum+" ставк";return n+=e(t.maximum,"у","е","и"),n},noResults:function(){return"Ништа није пронађено"},searching:function(){return"Претрага…"}}}),{define:e.define,require:e.require}})(); \ No newline at end of file diff --git a/admin/bower_components/select2/dist/js/i18n/sr.js b/admin/bower_components/select2/dist/js/i18n/sr.js deleted file mode 100644 index f40b723..0000000 --- a/admin/bower_components/select2/dist/js/i18n/sr.js +++ /dev/null @@ -1,3 +0,0 @@ -/*! Select2 4.0.4 | https://github.com/select2/select2/blob/master/LICENSE.md */ - -(function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/sr",[],function(){function e(e,t,n,r){return e%10==1&&e%100!=11?t:e%10>=2&&e%10<=4&&(e%100<12||e%100>14)?n:r}return{errorLoading:function(){return"Preuzimanje nije uspelo."},inputTooLong:function(t){var n=t.input.length-t.maximum,r="Obrišite "+n+" simbol";return r+=e(n,"","a","a"),r},inputTooShort:function(t){var n=t.minimum-t.input.length,r="Ukucajte bar još "+n+" simbol";return r+=e(n,"","a","a"),r},loadingMore:function(){return"Preuzimanje još rezultata…"},maximumSelected:function(t){var n="Možete izabrati samo "+t.maximum+" stavk";return n+=e(t.maximum,"u","e","i"),n},noResults:function(){return"Ništa nije pronađeno"},searching:function(){return"Pretraga…"}}}),{define:e.define,require:e.require}})(); \ No newline at end of file diff --git a/admin/bower_components/select2/dist/js/i18n/sv.js b/admin/bower_components/select2/dist/js/i18n/sv.js deleted file mode 100644 index 2119788..0000000 --- a/admin/bower_components/select2/dist/js/i18n/sv.js +++ /dev/null @@ -1,3 +0,0 @@ -/*! Select2 4.0.4 | https://github.com/select2/select2/blob/master/LICENSE.md */ - -(function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/sv",[],function(){return{errorLoading:function(){return"Resultat kunde inte laddas."},inputTooLong:function(e){var t=e.input.length-e.maximum,n="Vänligen sudda ut "+t+" tecken";return n},inputTooShort:function(e){var t=e.minimum-e.input.length,n="Vänligen skriv in "+t+" eller fler tecken";return n},loadingMore:function(){return"Laddar fler resultat…"},maximumSelected:function(e){var t="Du kan max välja "+e.maximum+" element";return t},noResults:function(){return"Inga träffar"},searching:function(){return"Söker…"}}}),{define:e.define,require:e.require}})(); \ No newline at end of file diff --git a/admin/bower_components/select2/dist/js/i18n/th.js b/admin/bower_components/select2/dist/js/i18n/th.js deleted file mode 100644 index b2703b9..0000000 --- a/admin/bower_components/select2/dist/js/i18n/th.js +++ /dev/null @@ -1,3 +0,0 @@ -/*! Select2 4.0.4 | https://github.com/select2/select2/blob/master/LICENSE.md */ - -(function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/th",[],function(){return{errorLoading:function(){return"ไม่สามารถค้นข้อมูลได้"},inputTooLong:function(e){var t=e.input.length-e.maximum,n="โปรดลบออก "+t+" ตัวอักษร";return n},inputTooShort:function(e){var t=e.minimum-e.input.length,n="โปรดพิมพ์เพิ่มอีก "+t+" ตัวอักษร";return n},loadingMore:function(){return"กำลังค้นข้อมูลเพิ่ม…"},maximumSelected:function(e){var t="คุณสามารถเลือกได้ไม่เกิน "+e.maximum+" รายการ";return t},noResults:function(){return"ไม่พบข้อมูล"},searching:function(){return"กำลังค้นข้อมูล…"}}}),{define:e.define,require:e.require}})(); \ No newline at end of file diff --git a/admin/bower_components/select2/dist/js/i18n/tr.js b/admin/bower_components/select2/dist/js/i18n/tr.js deleted file mode 100644 index 96d15c1..0000000 --- a/admin/bower_components/select2/dist/js/i18n/tr.js +++ /dev/null @@ -1,3 +0,0 @@ -/*! Select2 4.0.4 | https://github.com/select2/select2/blob/master/LICENSE.md */ - -(function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/tr",[],function(){return{errorLoading:function(){return"Sonuç yüklenemedi"},inputTooLong:function(e){var t=e.input.length-e.maximum,n=t+" karakter daha girmelisiniz";return n},inputTooShort:function(e){var t=e.minimum-e.input.length,n="En az "+t+" karakter daha girmelisiniz";return n},loadingMore:function(){return"Daha fazla…"},maximumSelected:function(e){var t="Sadece "+e.maximum+" seçim yapabilirsiniz";return t},noResults:function(){return"Sonuç bulunamadı"},searching:function(){return"Aranıyor…"}}}),{define:e.define,require:e.require}})(); \ No newline at end of file diff --git a/admin/bower_components/select2/dist/js/i18n/uk.js b/admin/bower_components/select2/dist/js/i18n/uk.js deleted file mode 100644 index 2a7e6d3..0000000 --- a/admin/bower_components/select2/dist/js/i18n/uk.js +++ /dev/null @@ -1,3 +0,0 @@ -/*! Select2 4.0.4 | https://github.com/select2/select2/blob/master/LICENSE.md */ - -(function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/uk",[],function(){function e(e,t,n,r){return e%100>10&&e%100<15?r:e%10===1?t:e%10>1&&e%10<5?n:r}return{errorLoading:function(){return"Неможливо завантажити результати"},inputTooLong:function(t){var n=t.input.length-t.maximum;return"Будь ласка, видаліть "+n+" "+e(t.maximum,"літеру","літери","літер")},inputTooShort:function(e){var t=e.minimum-e.input.length;return"Будь ласка, введіть "+t+" або більше літер"},loadingMore:function(){return"Завантаження інших результатів…"},maximumSelected:function(t){return"Ви можете вибрати лише "+t.maximum+" "+e(t.maximum,"пункт","пункти","пунктів")},noResults:function(){return"Нічого не знайдено"},searching:function(){return"Пошук…"}}}),{define:e.define,require:e.require}})(); \ No newline at end of file diff --git a/admin/bower_components/select2/dist/js/i18n/vi.js b/admin/bower_components/select2/dist/js/i18n/vi.js deleted file mode 100644 index d1bc206..0000000 --- a/admin/bower_components/select2/dist/js/i18n/vi.js +++ /dev/null @@ -1,3 +0,0 @@ -/*! Select2 4.0.4 | https://github.com/select2/select2/blob/master/LICENSE.md */ - -(function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/vi",[],function(){return{inputTooLong:function(e){var t=e.input.length-e.maximum,n="Vui lòng nhập ít hơn "+t+" ký tự";return t!=1&&(n+="s"),n},inputTooShort:function(e){var t=e.minimum-e.input.length,n="Vui lòng nhập nhiều hơn "+t+' ký tự"';return n},loadingMore:function(){return"Đang lấy thêm kết quả…"},maximumSelected:function(e){var t="Chỉ có thể chọn được "+e.maximum+" lựa chọn";return t},noResults:function(){return"Không tìm thấy kết quả"},searching:function(){return"Đang tìm…"}}}),{define:e.define,require:e.require}})(); \ No newline at end of file diff --git a/admin/bower_components/select2/dist/js/i18n/zh-CN.js b/admin/bower_components/select2/dist/js/i18n/zh-CN.js deleted file mode 100644 index b67ed3b..0000000 --- a/admin/bower_components/select2/dist/js/i18n/zh-CN.js +++ /dev/null @@ -1,3 +0,0 @@ -/*! Select2 4.0.4 | https://github.com/select2/select2/blob/master/LICENSE.md */ - -(function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/zh-CN",[],function(){return{errorLoading:function(){return"无法载入结果。"},inputTooLong:function(e){var t=e.input.length-e.maximum,n="请删除"+t+"个字符";return n},inputTooShort:function(e){var t=e.minimum-e.input.length,n="请再输入至少"+t+"个字符";return n},loadingMore:function(){return"载入更多结果…"},maximumSelected:function(e){var t="最多只能选择"+e.maximum+"个项目";return t},noResults:function(){return"未找到结果"},searching:function(){return"搜索中…"}}}),{define:e.define,require:e.require}})(); \ No newline at end of file diff --git a/admin/bower_components/select2/dist/js/i18n/zh-TW.js b/admin/bower_components/select2/dist/js/i18n/zh-TW.js deleted file mode 100644 index 963774c..0000000 --- a/admin/bower_components/select2/dist/js/i18n/zh-TW.js +++ /dev/null @@ -1,3 +0,0 @@ -/*! Select2 4.0.4 | https://github.com/select2/select2/blob/master/LICENSE.md */ - -(function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/zh-TW",[],function(){return{inputTooLong:function(e){var t=e.input.length-e.maximum,n="請刪掉"+t+"個字元";return n},inputTooShort:function(e){var t=e.minimum-e.input.length,n="請再輸入"+t+"個字元";return n},loadingMore:function(){return"載入中…"},maximumSelected:function(e){var t="你只能選擇最多"+e.maximum+"項";return t},noResults:function(){return"沒有找到相符的項目"},searching:function(){return"搜尋中…"}}}),{define:e.define,require:e.require}})(); \ No newline at end of file diff --git a/admin/bower_components/select2/dist/js/select2.full.js b/admin/bower_components/select2/dist/js/select2.full.js deleted file mode 100644 index 546d065..0000000 --- a/admin/bower_components/select2/dist/js/select2.full.js +++ /dev/null @@ -1,6457 +0,0 @@ -/*! - * Select2 4.0.4 - * https://select2.github.io - * - * Released under the MIT license - * https://github.com/select2/select2/blob/master/LICENSE.md - */ -(function (factory) { - if (typeof define === 'function' && define.amd) { - // AMD. Register as an anonymous module. - define(['jquery'], factory); - } else if (typeof module === 'object' && module.exports) { - // Node/CommonJS - module.exports = function (root, jQuery) { - if (jQuery === undefined) { - // require('jQuery') returns a factory that requires window to - // build a jQuery instance, we normalize how we use modules - // that require this pattern but the window provided is a noop - // if it's defined (how jquery works) - if (typeof window !== 'undefined') { - jQuery = require('jquery'); - } - else { - jQuery = require('jquery')(root); - } - } - factory(jQuery); - return jQuery; - }; - } else { - // Browser globals - factory(jQuery); - } -} (function (jQuery) { - // This is needed so we can catch the AMD loader configuration and use it - // The inner file should be wrapped (by `banner.start.js`) in a function that - // returns the AMD loader references. - var S2 =(function () { - // Restore the Select2 AMD loader so it can be used - // Needed mostly in the language files, where the loader is not inserted - if (jQuery && jQuery.fn && jQuery.fn.select2 && jQuery.fn.select2.amd) { - var S2 = jQuery.fn.select2.amd; - } -var S2;(function () { if (!S2 || !S2.requirejs) { -if (!S2) { S2 = {}; } else { require = S2; } -/** - * @license almond 0.3.3 Copyright jQuery Foundation and other contributors. - * Released under MIT license, http://github.com/requirejs/almond/LICENSE - */ -//Going sloppy to avoid 'use strict' string cost, but strict practices should -//be followed. -/*global setTimeout: false */ - -var requirejs, require, define; -(function (undef) { - var main, req, makeMap, handlers, - defined = {}, - waiting = {}, - config = {}, - defining = {}, - hasOwn = Object.prototype.hasOwnProperty, - aps = [].slice, - jsSuffixRegExp = /\.js$/; - - function hasProp(obj, prop) { - return hasOwn.call(obj, prop); - } - - /** - * Given a relative module name, like ./something, normalize it to - * a real name that can be mapped to a path. - * @param {String} name the relative name - * @param {String} baseName a real name that the name arg is relative - * to. - * @returns {String} normalized name - */ - function normalize(name, baseName) { - var nameParts, nameSegment, mapValue, foundMap, lastIndex, - foundI, foundStarMap, starI, i, j, part, normalizedBaseParts, - baseParts = baseName && baseName.split("/"), - map = config.map, - starMap = (map && map['*']) || {}; - - //Adjust any relative paths. - if (name) { - name = name.split('/'); - lastIndex = name.length - 1; - - // If wanting node ID compatibility, strip .js from end - // of IDs. Have to do this here, and not in nameToUrl - // because node allows either .js or non .js to map - // to same file. - if (config.nodeIdCompat && jsSuffixRegExp.test(name[lastIndex])) { - name[lastIndex] = name[lastIndex].replace(jsSuffixRegExp, ''); - } - - // Starts with a '.' so need the baseName - if (name[0].charAt(0) === '.' && baseParts) { - //Convert baseName to array, and lop off the last part, - //so that . matches that 'directory' and not name of the baseName's - //module. For instance, baseName of 'one/two/three', maps to - //'one/two/three.js', but we want the directory, 'one/two' for - //this normalization. - normalizedBaseParts = baseParts.slice(0, baseParts.length - 1); - name = normalizedBaseParts.concat(name); - } - - //start trimDots - for (i = 0; i < name.length; i++) { - part = name[i]; - if (part === '.') { - name.splice(i, 1); - i -= 1; - } else if (part === '..') { - // If at the start, or previous value is still .., - // keep them so that when converted to a path it may - // still work when converted to a path, even though - // as an ID it is less than ideal. In larger point - // releases, may be better to just kick out an error. - if (i === 0 || (i === 1 && name[2] === '..') || name[i - 1] === '..') { - continue; - } else if (i > 0) { - name.splice(i - 1, 2); - i -= 2; - } - } - } - //end trimDots - - name = name.join('/'); - } - - //Apply map config if available. - if ((baseParts || starMap) && map) { - nameParts = name.split('/'); - - for (i = nameParts.length; i > 0; i -= 1) { - nameSegment = nameParts.slice(0, i).join("/"); - - if (baseParts) { - //Find the longest baseName segment match in the config. - //So, do joins on the biggest to smallest lengths of baseParts. - for (j = baseParts.length; j > 0; j -= 1) { - mapValue = map[baseParts.slice(0, j).join('/')]; - - //baseName segment has config, find if it has one for - //this name. - if (mapValue) { - mapValue = mapValue[nameSegment]; - if (mapValue) { - //Match, update name to the new value. - foundMap = mapValue; - foundI = i; - break; - } - } - } - } - - if (foundMap) { - break; - } - - //Check for a star map match, but just hold on to it, - //if there is a shorter segment match later in a matching - //config, then favor over this star map. - if (!foundStarMap && starMap && starMap[nameSegment]) { - foundStarMap = starMap[nameSegment]; - starI = i; - } - } - - if (!foundMap && foundStarMap) { - foundMap = foundStarMap; - foundI = starI; - } - - if (foundMap) { - nameParts.splice(0, foundI, foundMap); - name = nameParts.join('/'); - } - } - - return name; - } - - function makeRequire(relName, forceSync) { - return function () { - //A version of a require function that passes a moduleName - //value for items that may need to - //look up paths relative to the moduleName - var args = aps.call(arguments, 0); - - //If first arg is not require('string'), and there is only - //one arg, it is the array form without a callback. Insert - //a null so that the following concat is correct. - if (typeof args[0] !== 'string' && args.length === 1) { - args.push(null); - } - return req.apply(undef, args.concat([relName, forceSync])); - }; - } - - function makeNormalize(relName) { - return function (name) { - return normalize(name, relName); - }; - } - - function makeLoad(depName) { - return function (value) { - defined[depName] = value; - }; - } - - function callDep(name) { - if (hasProp(waiting, name)) { - var args = waiting[name]; - delete waiting[name]; - defining[name] = true; - main.apply(undef, args); - } - - if (!hasProp(defined, name) && !hasProp(defining, name)) { - throw new Error('No ' + name); - } - return defined[name]; - } - - //Turns a plugin!resource to [plugin, resource] - //with the plugin being undefined if the name - //did not have a plugin prefix. - function splitPrefix(name) { - var prefix, - index = name ? name.indexOf('!') : -1; - if (index > -1) { - prefix = name.substring(0, index); - name = name.substring(index + 1, name.length); - } - return [prefix, name]; - } - - //Creates a parts array for a relName where first part is plugin ID, - //second part is resource ID. Assumes relName has already been normalized. - function makeRelParts(relName) { - return relName ? splitPrefix(relName) : []; - } - - /** - * Makes a name map, normalizing the name, and using a plugin - * for normalization if necessary. Grabs a ref to plugin - * too, as an optimization. - */ - makeMap = function (name, relParts) { - var plugin, - parts = splitPrefix(name), - prefix = parts[0], - relResourceName = relParts[1]; - - name = parts[1]; - - if (prefix) { - prefix = normalize(prefix, relResourceName); - plugin = callDep(prefix); - } - - //Normalize according - if (prefix) { - if (plugin && plugin.normalize) { - name = plugin.normalize(name, makeNormalize(relResourceName)); - } else { - name = normalize(name, relResourceName); - } - } else { - name = normalize(name, relResourceName); - parts = splitPrefix(name); - prefix = parts[0]; - name = parts[1]; - if (prefix) { - plugin = callDep(prefix); - } - } - - //Using ridiculous property names for space reasons - return { - f: prefix ? prefix + '!' + name : name, //fullName - n: name, - pr: prefix, - p: plugin - }; - }; - - function makeConfig(name) { - return function () { - return (config && config.config && config.config[name]) || {}; - }; - } - - handlers = { - require: function (name) { - return makeRequire(name); - }, - exports: function (name) { - var e = defined[name]; - if (typeof e !== 'undefined') { - return e; - } else { - return (defined[name] = {}); - } - }, - module: function (name) { - return { - id: name, - uri: '', - exports: defined[name], - config: makeConfig(name) - }; - } - }; - - main = function (name, deps, callback, relName) { - var cjsModule, depName, ret, map, i, relParts, - args = [], - callbackType = typeof callback, - usingExports; - - //Use name if no relName - relName = relName || name; - relParts = makeRelParts(relName); - - //Call the callback to define the module, if necessary. - if (callbackType === 'undefined' || callbackType === 'function') { - //Pull out the defined dependencies and pass the ordered - //values to the callback. - //Default to [require, exports, module] if no deps - deps = !deps.length && callback.length ? ['require', 'exports', 'module'] : deps; - for (i = 0; i < deps.length; i += 1) { - map = makeMap(deps[i], relParts); - depName = map.f; - - //Fast path CommonJS standard dependencies. - if (depName === "require") { - args[i] = handlers.require(name); - } else if (depName === "exports") { - //CommonJS module spec 1.1 - args[i] = handlers.exports(name); - usingExports = true; - } else if (depName === "module") { - //CommonJS module spec 1.1 - cjsModule = args[i] = handlers.module(name); - } else if (hasProp(defined, depName) || - hasProp(waiting, depName) || - hasProp(defining, depName)) { - args[i] = callDep(depName); - } else if (map.p) { - map.p.load(map.n, makeRequire(relName, true), makeLoad(depName), {}); - args[i] = defined[depName]; - } else { - throw new Error(name + ' missing ' + depName); - } - } - - ret = callback ? callback.apply(defined[name], args) : undefined; - - if (name) { - //If setting exports via "module" is in play, - //favor that over return value and exports. After that, - //favor a non-undefined return value over exports use. - if (cjsModule && cjsModule.exports !== undef && - cjsModule.exports !== defined[name]) { - defined[name] = cjsModule.exports; - } else if (ret !== undef || !usingExports) { - //Use the return value from the function. - defined[name] = ret; - } - } - } else if (name) { - //May just be an object definition for the module. Only - //worry about defining if have a module name. - defined[name] = callback; - } - }; - - requirejs = require = req = function (deps, callback, relName, forceSync, alt) { - if (typeof deps === "string") { - if (handlers[deps]) { - //callback in this case is really relName - return handlers[deps](callback); - } - //Just return the module wanted. In this scenario, the - //deps arg is the module name, and second arg (if passed) - //is just the relName. - //Normalize module name, if it contains . or .. - return callDep(makeMap(deps, makeRelParts(callback)).f); - } else if (!deps.splice) { - //deps is a config object, not an array. - config = deps; - if (config.deps) { - req(config.deps, config.callback); - } - if (!callback) { - return; - } - - if (callback.splice) { - //callback is an array, which means it is a dependency list. - //Adjust args if there are dependencies - deps = callback; - callback = relName; - relName = null; - } else { - deps = undef; - } - } - - //Support require(['a']) - callback = callback || function () {}; - - //If relName is a function, it is an errback handler, - //so remove it. - if (typeof relName === 'function') { - relName = forceSync; - forceSync = alt; - } - - //Simulate async callback; - if (forceSync) { - main(undef, deps, callback, relName); - } else { - //Using a non-zero value because of concern for what old browsers - //do, and latest browsers "upgrade" to 4 if lower value is used: - //http://www.whatwg.org/specs/web-apps/current-work/multipage/timers.html#dom-windowtimers-settimeout: - //If want a value immediately, use require('id') instead -- something - //that works in almond on the global level, but not guaranteed and - //unlikely to work in other AMD implementations. - setTimeout(function () { - main(undef, deps, callback, relName); - }, 4); - } - - return req; - }; - - /** - * Just drops the config on the floor, but returns req in case - * the config return value is used. - */ - req.config = function (cfg) { - return req(cfg); - }; - - /** - * Expose module registry for debugging and tooling - */ - requirejs._defined = defined; - - define = function (name, deps, callback) { - if (typeof name !== 'string') { - throw new Error('See almond README: incorrect module build, no module name'); - } - - //This module may not have dependencies - if (!deps.splice) { - //deps is not an array, so probably means - //an object literal or factory function for - //the value. Adjust args. - callback = deps; - deps = []; - } - - if (!hasProp(defined, name) && !hasProp(waiting, name)) { - waiting[name] = [name, deps, callback]; - } - }; - - define.amd = { - jQuery: true - }; -}()); - -S2.requirejs = requirejs;S2.require = require;S2.define = define; -} -}()); -S2.define("almond", function(){}); - -/* global jQuery:false, $:false */ -S2.define('jquery',[],function () { - var _$ = jQuery || $; - - if (_$ == null && console && console.error) { - console.error( - 'Select2: An instance of jQuery or a jQuery-compatible library was not ' + - 'found. Make sure that you are including jQuery before Select2 on your ' + - 'web page.' - ); - } - - return _$; -}); - -S2.define('select2/utils',[ - 'jquery' -], function ($) { - var Utils = {}; - - Utils.Extend = function (ChildClass, SuperClass) { - var __hasProp = {}.hasOwnProperty; - - function BaseConstructor () { - this.constructor = ChildClass; - } - - for (var key in SuperClass) { - if (__hasProp.call(SuperClass, key)) { - ChildClass[key] = SuperClass[key]; - } - } - - BaseConstructor.prototype = SuperClass.prototype; - ChildClass.prototype = new BaseConstructor(); - ChildClass.__super__ = SuperClass.prototype; - - return ChildClass; - }; - - function getMethods (theClass) { - var proto = theClass.prototype; - - var methods = []; - - for (var methodName in proto) { - var m = proto[methodName]; - - if (typeof m !== 'function') { - continue; - } - - if (methodName === 'constructor') { - continue; - } - - methods.push(methodName); - } - - return methods; - } - - Utils.Decorate = function (SuperClass, DecoratorClass) { - var decoratedMethods = getMethods(DecoratorClass); - var superMethods = getMethods(SuperClass); - - function DecoratedClass () { - var unshift = Array.prototype.unshift; - - var argCount = DecoratorClass.prototype.constructor.length; - - var calledConstructor = SuperClass.prototype.constructor; - - if (argCount > 0) { - unshift.call(arguments, SuperClass.prototype.constructor); - - calledConstructor = DecoratorClass.prototype.constructor; - } - - calledConstructor.apply(this, arguments); - } - - DecoratorClass.displayName = SuperClass.displayName; - - function ctr () { - this.constructor = DecoratedClass; - } - - DecoratedClass.prototype = new ctr(); - - for (var m = 0; m < superMethods.length; m++) { - var superMethod = superMethods[m]; - - DecoratedClass.prototype[superMethod] = - SuperClass.prototype[superMethod]; - } - - var calledMethod = function (methodName) { - // Stub out the original method if it's not decorating an actual method - var originalMethod = function () {}; - - if (methodName in DecoratedClass.prototype) { - originalMethod = DecoratedClass.prototype[methodName]; - } - - var decoratedMethod = DecoratorClass.prototype[methodName]; - - return function () { - var unshift = Array.prototype.unshift; - - unshift.call(arguments, originalMethod); - - return decoratedMethod.apply(this, arguments); - }; - }; - - for (var d = 0; d < decoratedMethods.length; d++) { - var decoratedMethod = decoratedMethods[d]; - - DecoratedClass.prototype[decoratedMethod] = calledMethod(decoratedMethod); - } - - return DecoratedClass; - }; - - var Observable = function () { - this.listeners = {}; - }; - - Observable.prototype.on = function (event, callback) { - this.listeners = this.listeners || {}; - - if (event in this.listeners) { - this.listeners[event].push(callback); - } else { - this.listeners[event] = [callback]; - } - }; - - Observable.prototype.trigger = function (event) { - var slice = Array.prototype.slice; - var params = slice.call(arguments, 1); - - this.listeners = this.listeners || {}; - - // Params should always come in as an array - if (params == null) { - params = []; - } - - // If there are no arguments to the event, use a temporary object - if (params.length === 0) { - params.push({}); - } - - // Set the `_type` of the first object to the event - params[0]._type = event; - - if (event in this.listeners) { - this.invoke(this.listeners[event], slice.call(arguments, 1)); - } - - if ('*' in this.listeners) { - this.invoke(this.listeners['*'], arguments); - } - }; - - Observable.prototype.invoke = function (listeners, params) { - for (var i = 0, len = listeners.length; i < len; i++) { - listeners[i].apply(this, params); - } - }; - - Utils.Observable = Observable; - - Utils.generateChars = function (length) { - var chars = ''; - - for (var i = 0; i < length; i++) { - var randomChar = Math.floor(Math.random() * 36); - chars += randomChar.toString(36); - } - - return chars; - }; - - Utils.bind = function (func, context) { - return function () { - func.apply(context, arguments); - }; - }; - - Utils._convertData = function (data) { - for (var originalKey in data) { - var keys = originalKey.split('-'); - - var dataLevel = data; - - if (keys.length === 1) { - continue; - } - - for (var k = 0; k < keys.length; k++) { - var key = keys[k]; - - // Lowercase the first letter - // By default, dash-separated becomes camelCase - key = key.substring(0, 1).toLowerCase() + key.substring(1); - - if (!(key in dataLevel)) { - dataLevel[key] = {}; - } - - if (k == keys.length - 1) { - dataLevel[key] = data[originalKey]; - } - - dataLevel = dataLevel[key]; - } - - delete data[originalKey]; - } - - return data; - }; - - Utils.hasScroll = function (index, el) { - // Adapted from the function created by @ShadowScripter - // and adapted by @BillBarry on the Stack Exchange Code Review website. - // The original code can be found at - // http://codereview.stackexchange.com/q/13338 - // and was designed to be used with the Sizzle selector engine. - - var $el = $(el); - var overflowX = el.style.overflowX; - var overflowY = el.style.overflowY; - - //Check both x and y declarations - if (overflowX === overflowY && - (overflowY === 'hidden' || overflowY === 'visible')) { - return false; - } - - if (overflowX === 'scroll' || overflowY === 'scroll') { - return true; - } - - return ($el.innerHeight() < el.scrollHeight || - $el.innerWidth() < el.scrollWidth); - }; - - Utils.escapeMarkup = function (markup) { - var replaceMap = { - '\\': '&#92;', - '&': '&amp;', - '<': '&lt;', - '>': '&gt;', - '"': '&quot;', - '\'': '&#39;', - '/': '&#47;' - }; - - // Do not try to escape the markup if it's not a string - if (typeof markup !== 'string') { - return markup; - } - - return String(markup).replace(/[&<>"'\/\\]/g, function (match) { - return replaceMap[match]; - }); - }; - - // Append an array of jQuery nodes to a given element. - Utils.appendMany = function ($element, $nodes) { - // jQuery 1.7.x does not support $.fn.append() with an array - // Fall back to a jQuery object collection using $.fn.add() - if ($.fn.jquery.substr(0, 3) === '1.7') { - var $jqNodes = $(); - - $.map($nodes, function (node) { - $jqNodes = $jqNodes.add(node); - }); - - $nodes = $jqNodes; - } - - $element.append($nodes); - }; - - return Utils; -}); - -S2.define('select2/results',[ - 'jquery', - './utils' -], function ($, Utils) { - function Results ($element, options, dataAdapter) { - this.$element = $element; - this.data = dataAdapter; - this.options = options; - - Results.__super__.constructor.call(this); - } - - Utils.Extend(Results, Utils.Observable); - - Results.prototype.render = function () { - var $results = $( - '<ul class="select2-results__options" role="tree"></ul>' - ); - - if (this.options.get('multiple')) { - $results.attr('aria-multiselectable', 'true'); - } - - this.$results = $results; - - return $results; - }; - - Results.prototype.clear = function () { - this.$results.empty(); - }; - - Results.prototype.displayMessage = function (params) { - var escapeMarkup = this.options.get('escapeMarkup'); - - this.clear(); - this.hideLoading(); - - var $message = $( - '<li role="treeitem" aria-live="assertive"' + - ' class="select2-results__option"></li>' - ); - - var message = this.options.get('translations').get(params.message); - - $message.append( - escapeMarkup( - message(params.args) - ) - ); - - $message[0].className += ' select2-results__message'; - - this.$results.append($message); - }; - - Results.prototype.hideMessages = function () { - this.$results.find('.select2-results__message').remove(); - }; - - Results.prototype.append = function (data) { - this.hideLoading(); - - var $options = []; - - if (data.results == null || data.results.length === 0) { - if (this.$results.children().length === 0) { - this.trigger('results:message', { - message: 'noResults' - }); - } - - return; - } - - data.results = this.sort(data.results); - - for (var d = 0; d < data.results.length; d++) { - var item = data.results[d]; - - var $option = this.option(item); - - $options.push($option); - } - - this.$results.append($options); - }; - - Results.prototype.position = function ($results, $dropdown) { - var $resultsContainer = $dropdown.find('.select2-results'); - $resultsContainer.append($results); - }; - - Results.prototype.sort = function (data) { - var sorter = this.options.get('sorter'); - - return sorter(data); - }; - - Results.prototype.highlightFirstItem = function () { - var $options = this.$results - .find('.select2-results__option[aria-selected]'); - - var $selected = $options.filter('[aria-selected=true]'); - - // Check if there are any selected options - if ($selected.length > 0) { - // If there are selected options, highlight the first - $selected.first().trigger('mouseenter'); - } else { - // If there are no selected options, highlight the first option - // in the dropdown - $options.first().trigger('mouseenter'); - } - - this.ensureHighlightVisible(); - }; - - Results.prototype.setClasses = function () { - var self = this; - - this.data.current(function (selected) { - var selectedIds = $.map(selected, function (s) { - return s.id.toString(); - }); - - var $options = self.$results - .find('.select2-results__option[aria-selected]'); - - $options.each(function () { - var $option = $(this); - - var item = $.data(this, 'data'); - - // id needs to be converted to a string when comparing - var id = '' + item.id; - - if ((item.element != null && item.element.selected) || - (item.element == null && $.inArray(id, selectedIds) > -1)) { - $option.attr('aria-selected', 'true'); - } else { - $option.attr('aria-selected', 'false'); - } - }); - - }); - }; - - Results.prototype.showLoading = function (params) { - this.hideLoading(); - - var loadingMore = this.options.get('translations').get('searching'); - - var loading = { - disabled: true, - loading: true, - text: loadingMore(params) - }; - var $loading = this.option(loading); - $loading.className += ' loading-results'; - - this.$results.prepend($loading); - }; - - Results.prototype.hideLoading = function () { - this.$results.find('.loading-results').remove(); - }; - - Results.prototype.option = function (data) { - var option = document.createElement('li'); - option.className = 'select2-results__option'; - - var attrs = { - 'role': 'treeitem', - 'aria-selected': 'false' - }; - - if (data.disabled) { - delete attrs['aria-selected']; - attrs['aria-disabled'] = 'true'; - } - - if (data.id == null) { - delete attrs['aria-selected']; - } - - if (data._resultId != null) { - option.id = data._resultId; - } - - if (data.title) { - option.title = data.title; - } - - if (data.children) { - attrs.role = 'group'; - attrs['aria-label'] = data.text; - delete attrs['aria-selected']; - } - - for (var attr in attrs) { - var val = attrs[attr]; - - option.setAttribute(attr, val); - } - - if (data.children) { - var $option = $(option); - - var label = document.createElement('strong'); - label.className = 'select2-results__group'; - - var $label = $(label); - this.template(data, label); - - var $children = []; - - for (var c = 0; c < data.children.length; c++) { - var child = data.children[c]; - - var $child = this.option(child); - - $children.push($child); - } - - var $childrenContainer = $('<ul></ul>', { - 'class': 'select2-results__options select2-results__options--nested' - }); - - $childrenContainer.append($children); - - $option.append(label); - $option.append($childrenContainer); - } else { - this.template(data, option); - } - - $.data(option, 'data', data); - - return option; - }; - - Results.prototype.bind = function (container, $container) { - var self = this; - - var id = container.id + '-results'; - - this.$results.attr('id', id); - - container.on('results:all', function (params) { - self.clear(); - self.append(params.data); - - if (container.isOpen()) { - self.setClasses(); - self.highlightFirstItem(); - } - }); - - container.on('results:append', function (params) { - self.append(params.data); - - if (container.isOpen()) { - self.setClasses(); - } - }); - - container.on('query', function (params) { - self.hideMessages(); - self.showLoading(params); - }); - - container.on('select', function () { - if (!container.isOpen()) { - return; - } - - self.setClasses(); - self.highlightFirstItem(); - }); - - container.on('unselect', function () { - if (!container.isOpen()) { - return; - } - - self.setClasses(); - self.highlightFirstItem(); - }); - - container.on('open', function () { - // When the dropdown is open, aria-expended="true" - self.$results.attr('aria-expanded', 'true'); - self.$results.attr('aria-hidden', 'false'); - - self.setClasses(); - self.ensureHighlightVisible(); - }); - - container.on('close', function () { - // When the dropdown is closed, aria-expended="false" - self.$results.attr('aria-expanded', 'false'); - self.$results.attr('aria-hidden', 'true'); - self.$results.removeAttr('aria-activedescendant'); - }); - - container.on('results:toggle', function () { - var $highlighted = self.getHighlightedResults(); - - if ($highlighted.length === 0) { - return; - } - - $highlighted.trigger('mouseup'); - }); - - container.on('results:select', function () { - var $highlighted = self.getHighlightedResults(); - - if ($highlighted.length === 0) { - return; - } - - var data = $highlighted.data('data'); - - if ($highlighted.attr('aria-selected') == 'true') { - self.trigger('close', {}); - } else { - self.trigger('select', { - data: data - }); - } - }); - - container.on('results:previous', function () { - var $highlighted = self.getHighlightedResults(); - - var $options = self.$results.find('[aria-selected]'); - - var currentIndex = $options.index($highlighted); - - // If we are already at te top, don't move further - if (currentIndex === 0) { - return; - } - - var nextIndex = currentIndex - 1; - - // If none are highlighted, highlight the first - if ($highlighted.length === 0) { - nextIndex = 0; - } - - var $next = $options.eq(nextIndex); - - $next.trigger('mouseenter'); - - var currentOffset = self.$results.offset().top; - var nextTop = $next.offset().top; - var nextOffset = self.$results.scrollTop() + (nextTop - currentOffset); - - if (nextIndex === 0) { - self.$results.scrollTop(0); - } else if (nextTop - currentOffset < 0) { - self.$results.scrollTop(nextOffset); - } - }); - - container.on('results:next', function () { - var $highlighted = self.getHighlightedResults(); - - var $options = self.$results.find('[aria-selected]'); - - var currentIndex = $options.index($highlighted); - - var nextIndex = currentIndex + 1; - - // If we are at the last option, stay there - if (nextIndex >= $options.length) { - return; - } - - var $next = $options.eq(nextIndex); - - $next.trigger('mouseenter'); - - var currentOffset = self.$results.offset().top + - self.$results.outerHeight(false); - var nextBottom = $next.offset().top + $next.outerHeight(false); - var nextOffset = self.$results.scrollTop() + nextBottom - currentOffset; - - if (nextIndex === 0) { - self.$results.scrollTop(0); - } else if (nextBottom > currentOffset) { - self.$results.scrollTop(nextOffset); - } - }); - - container.on('results:focus', function (params) { - params.element.addClass('select2-results__option--highlighted'); - }); - - container.on('results:message', function (params) { - self.displayMessage(params); - }); - - if ($.fn.mousewheel) { - this.$results.on('mousewheel', function (e) { - var top = self.$results.scrollTop(); - - var bottom = self.$results.get(0).scrollHeight - top + e.deltaY; - - var isAtTop = e.deltaY > 0 && top - e.deltaY <= 0; - var isAtBottom = e.deltaY < 0 && bottom <= self.$results.height(); - - if (isAtTop) { - self.$results.scrollTop(0); - - e.preventDefault(); - e.stopPropagation(); - } else if (isAtBottom) { - self.$results.scrollTop( - self.$results.get(0).scrollHeight - self.$results.height() - ); - - e.preventDefault(); - e.stopPropagation(); - } - }); - } - - this.$results.on('mouseup', '.select2-results__option[aria-selected]', - function (evt) { - var $this = $(this); - - var data = $this.data('data'); - - if ($this.attr('aria-selected') === 'true') { - if (self.options.get('multiple')) { - self.trigger('unselect', { - originalEvent: evt, - data: data - }); - } else { - self.trigger('close', {}); - } - - return; - } - - self.trigger('select', { - originalEvent: evt, - data: data - }); - }); - - this.$results.on('mouseenter', '.select2-results__option[aria-selected]', - function (evt) { - var data = $(this).data('data'); - - self.getHighlightedResults() - .removeClass('select2-results__option--highlighted'); - - self.trigger('results:focus', { - data: data, - element: $(this) - }); - }); - }; - - Results.prototype.getHighlightedResults = function () { - var $highlighted = this.$results - .find('.select2-results__option--highlighted'); - - return $highlighted; - }; - - Results.prototype.destroy = function () { - this.$results.remove(); - }; - - Results.prototype.ensureHighlightVisible = function () { - var $highlighted = this.getHighlightedResults(); - - if ($highlighted.length === 0) { - return; - } - - var $options = this.$results.find('[aria-selected]'); - - var currentIndex = $options.index($highlighted); - - var currentOffset = this.$results.offset().top; - var nextTop = $highlighted.offset().top; - var nextOffset = this.$results.scrollTop() + (nextTop - currentOffset); - - var offsetDelta = nextTop - currentOffset; - nextOffset -= $highlighted.outerHeight(false) * 2; - - if (currentIndex <= 2) { - this.$results.scrollTop(0); - } else if (offsetDelta > this.$results.outerHeight() || offsetDelta < 0) { - this.$results.scrollTop(nextOffset); - } - }; - - Results.prototype.template = function (result, container) { - var template = this.options.get('templateResult'); - var escapeMarkup = this.options.get('escapeMarkup'); - - var content = template(result, container); - - if (content == null) { - container.style.display = 'none'; - } else if (typeof content === 'string') { - container.innerHTML = escapeMarkup(content); - } else { - $(container).append(content); - } - }; - - return Results; -}); - -S2.define('select2/keys',[ - -], function () { - var KEYS = { - BACKSPACE: 8, - TAB: 9, - ENTER: 13, - SHIFT: 16, - CTRL: 17, - ALT: 18, - ESC: 27, - SPACE: 32, - PAGE_UP: 33, - PAGE_DOWN: 34, - END: 35, - HOME: 36, - LEFT: 37, - UP: 38, - RIGHT: 39, - DOWN: 40, - DELETE: 46 - }; - - return KEYS; -}); - -S2.define('select2/selection/base',[ - 'jquery', - '../utils', - '../keys' -], function ($, Utils, KEYS) { - function BaseSelection ($element, options) { - this.$element = $element; - this.options = options; - - BaseSelection.__super__.constructor.call(this); - } - - Utils.Extend(BaseSelection, Utils.Observable); - - BaseSelection.prototype.render = function () { - var $selection = $( - '<span class="select2-selection" role="combobox" ' + - ' aria-haspopup="true" aria-expanded="false">' + - '</span>' - ); - - this._tabindex = 0; - - if (this.$element.data('old-tabindex') != null) { - this._tabindex = this.$element.data('old-tabindex'); - } else if (this.$element.attr('tabindex') != null) { - this._tabindex = this.$element.attr('tabindex'); - } - - $selection.attr('title', this.$element.attr('title')); - $selection.attr('tabindex', this._tabindex); - - this.$selection = $selection; - - return $selection; - }; - - BaseSelection.prototype.bind = function (container, $container) { - var self = this; - - var id = container.id + '-container'; - var resultsId = container.id + '-results'; - - this.container = container; - - this.$selection.on('focus', function (evt) { - self.trigger('focus', evt); - }); - - this.$selection.on('blur', function (evt) { - self._handleBlur(evt); - }); - - this.$selection.on('keydown', function (evt) { - self.trigger('keypress', evt); - - if (evt.which === KEYS.SPACE) { - evt.preventDefault(); - } - }); - - container.on('results:focus', function (params) { - self.$selection.attr('aria-activedescendant', params.data._resultId); - }); - - container.on('selection:update', function (params) { - self.update(params.data); - }); - - container.on('open', function () { - // When the dropdown is open, aria-expanded="true" - self.$selection.attr('aria-expanded', 'true'); - self.$selection.attr('aria-owns', resultsId); - - self._attachCloseHandler(container); - }); - - container.on('close', function () { - // When the dropdown is closed, aria-expanded="false" - self.$selection.attr('aria-expanded', 'false'); - self.$selection.removeAttr('aria-activedescendant'); - self.$selection.removeAttr('aria-owns'); - - self.$selection.focus(); - - self._detachCloseHandler(container); - }); - - container.on('enable', function () { - self.$selection.attr('tabindex', self._tabindex); - }); - - container.on('disable', function () { - self.$selection.attr('tabindex', '-1'); - }); - }; - - BaseSelection.prototype._handleBlur = function (evt) { - var self = this; - - // This needs to be delayed as the active element is the body when the tab - // key is pressed, possibly along with others. - window.setTimeout(function () { - // Don't trigger `blur` if the focus is still in the selection - if ( - (document.activeElement == self.$selection[0]) || - ($.contains(self.$selection[0], document.activeElement)) - ) { - return; - } - - self.trigger('blur', evt); - }, 1); - }; - - BaseSelection.prototype._attachCloseHandler = function (container) { - var self = this; - - $(document.body).on('mousedown.select2.' + container.id, function (e) { - var $target = $(e.target); - - var $select = $target.closest('.select2'); - - var $all = $('.select2.select2-container--open'); - - $all.each(function () { - var $this = $(this); - - if (this == $select[0]) { - return; - } - - var $element = $this.data('element'); - - $element.select2('close'); - }); - }); - }; - - BaseSelection.prototype._detachCloseHandler = function (container) { - $(document.body).off('mousedown.select2.' + container.id); - }; - - BaseSelection.prototype.position = function ($selection, $container) { - var $selectionContainer = $container.find('.selection'); - $selectionContainer.append($selection); - }; - - BaseSelection.prototype.destroy = function () { - this._detachCloseHandler(this.container); - }; - - BaseSelection.prototype.update = function (data) { - throw new Error('The `update` method must be defined in child classes.'); - }; - - return BaseSelection; -}); - -S2.define('select2/selection/single',[ - 'jquery', - './base', - '../utils', - '../keys' -], function ($, BaseSelection, Utils, KEYS) { - function SingleSelection () { - SingleSelection.__super__.constructor.apply(this, arguments); - } - - Utils.Extend(SingleSelection, BaseSelection); - - SingleSelection.prototype.render = function () { - var $selection = SingleSelection.__super__.render.call(this); - - $selection.addClass('select2-selection--single'); - - $selection.html( - '<span class="select2-selection__rendered"></span>' + - '<span class="select2-selection__arrow" role="presentation">' + - '<b role="presentation"></b>' + - '</span>' - ); - - return $selection; - }; - - SingleSelection.prototype.bind = function (container, $container) { - var self = this; - - SingleSelection.__super__.bind.apply(this, arguments); - - var id = container.id + '-container'; - - this.$selection.find('.select2-selection__rendered').attr('id', id); - this.$selection.attr('aria-labelledby', id); - - this.$selection.on('mousedown', function (evt) { - // Only respond to left clicks - if (evt.which !== 1) { - return; - } - - self.trigger('toggle', { - originalEvent: evt - }); - }); - - this.$selection.on('focus', function (evt) { - // User focuses on the container - }); - - this.$selection.on('blur', function (evt) { - // User exits the container - }); - - container.on('focus', function (evt) { - if (!container.isOpen()) { - self.$selection.focus(); - } - }); - - container.on('selection:update', function (params) { - self.update(params.data); - }); - }; - - SingleSelection.prototype.clear = function () { - this.$selection.find('.select2-selection__rendered').empty(); - }; - - SingleSelection.prototype.display = function (data, container) { - var template = this.options.get('templateSelection'); - var escapeMarkup = this.options.get('escapeMarkup'); - - return escapeMarkup(template(data, container)); - }; - - SingleSelection.prototype.selectionContainer = function () { - return $('<span></span>'); - }; - - SingleSelection.prototype.update = function (data) { - if (data.length === 0) { - this.clear(); - return; - } - - var selection = data[0]; - - var $rendered = this.$selection.find('.select2-selection__rendered'); - var formatted = this.display(selection, $rendered); - - $rendered.empty().append(formatted); - $rendered.prop('title', selection.title || selection.text); - }; - - return SingleSelection; -}); - -S2.define('select2/selection/multiple',[ - 'jquery', - './base', - '../utils' -], function ($, BaseSelection, Utils) { - function MultipleSelection ($element, options) { - MultipleSelection.__super__.constructor.apply(this, arguments); - } - - Utils.Extend(MultipleSelection, BaseSelection); - - MultipleSelection.prototype.render = function () { - var $selection = MultipleSelection.__super__.render.call(this); - - $selection.addClass('select2-selection--multiple'); - - $selection.html( - '<ul class="select2-selection__rendered"></ul>' - ); - - return $selection; - }; - - MultipleSelection.prototype.bind = function (container, $container) { - var self = this; - - MultipleSelection.__super__.bind.apply(this, arguments); - - this.$selection.on('click', function (evt) { - self.trigger('toggle', { - originalEvent: evt - }); - }); - - this.$selection.on( - 'click', - '.select2-selection__choice__remove', - function (evt) { - // Ignore the event if it is disabled - if (self.options.get('disabled')) { - return; - } - - var $remove = $(this); - var $selection = $remove.parent(); - - var data = $selection.data('data'); - - self.trigger('unselect', { - originalEvent: evt, - data: data - }); - } - ); - }; - - MultipleSelection.prototype.clear = function () { - this.$selection.find('.select2-selection__rendered').empty(); - }; - - MultipleSelection.prototype.display = function (data, container) { - var template = this.options.get('templateSelection'); - var escapeMarkup = this.options.get('escapeMarkup'); - - return escapeMarkup(template(data, container)); - }; - - MultipleSelection.prototype.selectionContainer = function () { - var $container = $( - '<li class="select2-selection__choice">' + - '<span class="select2-selection__choice__remove" role="presentation">' + - '&times;' + - '</span>' + - '</li>' - ); - - return $container; - }; - - MultipleSelection.prototype.update = function (data) { - this.clear(); - - if (data.length === 0) { - return; - } - - var $selections = []; - - for (var d = 0; d < data.length; d++) { - var selection = data[d]; - - var $selection = this.selectionContainer(); - var formatted = this.display(selection, $selection); - - $selection.append(formatted); - $selection.prop('title', selection.title || selection.text); - - $selection.data('data', selection); - - $selections.push($selection); - } - - var $rendered = this.$selection.find('.select2-selection__rendered'); - - Utils.appendMany($rendered, $selections); - }; - - return MultipleSelection; -}); - -S2.define('select2/selection/placeholder',[ - '../utils' -], function (Utils) { - function Placeholder (decorated, $element, options) { - this.placeholder = this.normalizePlaceholder(options.get('placeholder')); - - decorated.call(this, $element, options); - } - - Placeholder.prototype.normalizePlaceholder = function (_, placeholder) { - if (typeof placeholder === 'string') { - placeholder = { - id: '', - text: placeholder - }; - } - - return placeholder; - }; - - Placeholder.prototype.createPlaceholder = function (decorated, placeholder) { - var $placeholder = this.selectionContainer(); - - $placeholder.html(this.display(placeholder)); - $placeholder.addClass('select2-selection__placeholder') - .removeClass('select2-selection__choice'); - - return $placeholder; - }; - - Placeholder.prototype.update = function (decorated, data) { - var singlePlaceholder = ( - data.length == 1 && data[0].id != this.placeholder.id - ); - var multipleSelections = data.length > 1; - - if (multipleSelections || singlePlaceholder) { - return decorated.call(this, data); - } - - this.clear(); - - var $placeholder = this.createPlaceholder(this.placeholder); - - this.$selection.find('.select2-selection__rendered').append($placeholder); - }; - - return Placeholder; -}); - -S2.define('select2/selection/allowClear',[ - 'jquery', - '../keys' -], function ($, KEYS) { - function AllowClear () { } - - AllowClear.prototype.bind = function (decorated, container, $container) { - var self = this; - - decorated.call(this, container, $container); - - if (this.placeholder == null) { - if (this.options.get('debug') && window.console && console.error) { - console.error( - 'Select2: The `allowClear` option should be used in combination ' + - 'with the `placeholder` option.' - ); - } - } - - this.$selection.on('mousedown', '.select2-selection__clear', - function (evt) { - self._handleClear(evt); - }); - - container.on('keypress', function (evt) { - self._handleKeyboardClear(evt, container); - }); - }; - - AllowClear.prototype._handleClear = function (_, evt) { - // Ignore the event if it is disabled - if (this.options.get('disabled')) { - return; - } - - var $clear = this.$selection.find('.select2-selection__clear'); - - // Ignore the event if nothing has been selected - if ($clear.length === 0) { - return; - } - - evt.stopPropagation(); - - var data = $clear.data('data'); - - for (var d = 0; d < data.length; d++) { - var unselectData = { - data: data[d] - }; - - // Trigger the `unselect` event, so people can prevent it from being - // cleared. - this.trigger('unselect', unselectData); - - // If the event was prevented, don't clear it out. - if (unselectData.prevented) { - return; - } - } - - this.$element.val(this.placeholder.id).trigger('change'); - - this.trigger('toggle', {}); - }; - - AllowClear.prototype._handleKeyboardClear = function (_, evt, container) { - if (container.isOpen()) { - return; - } - - if (evt.which == KEYS.DELETE || evt.which == KEYS.BACKSPACE) { - this._handleClear(evt); - } - }; - - AllowClear.prototype.update = function (decorated, data) { - decorated.call(this, data); - - if (this.$selection.find('.select2-selection__placeholder').length > 0 || - data.length === 0) { - return; - } - - var $remove = $( - '<span class="select2-selection__clear">' + - '&times;' + - '</span>' - ); - $remove.data('data', data); - - this.$selection.find('.select2-selection__rendered').prepend($remove); - }; - - return AllowClear; -}); - -S2.define('select2/selection/search',[ - 'jquery', - '../utils', - '../keys' -], function ($, Utils, KEYS) { - function Search (decorated, $element, options) { - decorated.call(this, $element, options); - } - - Search.prototype.render = function (decorated) { - var $search = $( - '<li class="select2-search select2-search--inline">' + - '<input class="select2-search__field" type="search" tabindex="-1"' + - ' autocomplete="off" autocorrect="off" autocapitalize="off"' + - ' spellcheck="false" role="textbox" aria-autocomplete="list" />' + - '</li>' - ); - - this.$searchContainer = $search; - this.$search = $search.find('input'); - - var $rendered = decorated.call(this); - - this._transferTabIndex(); - - return $rendered; - }; - - Search.prototype.bind = function (decorated, container, $container) { - var self = this; - - decorated.call(this, container, $container); - - container.on('open', function () { - self.$search.trigger('focus'); - }); - - container.on('close', function () { - self.$search.val(''); - self.$search.removeAttr('aria-activedescendant'); - self.$search.trigger('focus'); - }); - - container.on('enable', function () { - self.$search.prop('disabled', false); - - self._transferTabIndex(); - }); - - container.on('disable', function () { - self.$search.prop('disabled', true); - }); - - container.on('focus', function (evt) { - self.$search.trigger('focus'); - }); - - container.on('results:focus', function (params) { - self.$search.attr('aria-activedescendant', params.id); - }); - - this.$selection.on('focusin', '.select2-search--inline', function (evt) { - self.trigger('focus', evt); - }); - - this.$selection.on('focusout', '.select2-search--inline', function (evt) { - self._handleBlur(evt); - }); - - this.$selection.on('keydown', '.select2-search--inline', function (evt) { - evt.stopPropagation(); - - self.trigger('keypress', evt); - - self._keyUpPrevented = evt.isDefaultPrevented(); - - var key = evt.which; - - if (key === KEYS.BACKSPACE && self.$search.val() === '') { - var $previousChoice = self.$searchContainer - .prev('.select2-selection__choice'); - - if ($previousChoice.length > 0) { - var item = $previousChoice.data('data'); - - self.searchRemoveChoice(item); - - evt.preventDefault(); - } - } - }); - - // Try to detect the IE version should the `documentMode` property that - // is stored on the document. This is only implemented in IE and is - // slightly cleaner than doing a user agent check. - // This property is not available in Edge, but Edge also doesn't have - // this bug. - var msie = document.documentMode; - var disableInputEvents = msie && msie <= 11; - - // Workaround for browsers which do not support the `input` event - // This will prevent double-triggering of events for browsers which support - // both the `keyup` and `input` events. - this.$selection.on( - 'input.searchcheck', - '.select2-search--inline', - function (evt) { - // IE will trigger the `input` event when a placeholder is used on a - // search box. To get around this issue, we are forced to ignore all - // `input` events in IE and keep using `keyup`. - if (disableInputEvents) { - self.$selection.off('input.search input.searchcheck'); - return; - } - - // Unbind the duplicated `keyup` event - self.$selection.off('keyup.search'); - } - ); - - this.$selection.on( - 'keyup.search input.search', - '.select2-search--inline', - function (evt) { - // IE will trigger the `input` event when a placeholder is used on a - // search box. To get around this issue, we are forced to ignore all - // `input` events in IE and keep using `keyup`. - if (disableInputEvents && evt.type === 'input') { - self.$selection.off('input.search input.searchcheck'); - return; - } - - var key = evt.which; - - // We can freely ignore events from modifier keys - if (key == KEYS.SHIFT || key == KEYS.CTRL || key == KEYS.ALT) { - return; - } - - // Tabbing will be handled during the `keydown` phase - if (key == KEYS.TAB) { - return; - } - - self.handleSearch(evt); - } - ); - }; - - /** - * This method will transfer the tabindex attribute from the rendered - * selection to the search box. This allows for the search box to be used as - * the primary focus instead of the selection container. - * - * @private - */ - Search.prototype._transferTabIndex = function (decorated) { - this.$search.attr('tabindex', this.$selection.attr('tabindex')); - this.$selection.attr('tabindex', '-1'); - }; - - Search.prototype.createPlaceholder = function (decorated, placeholder) { - this.$search.attr('placeholder', placeholder.text); - }; - - Search.prototype.update = function (decorated, data) { - var searchHadFocus = this.$search[0] == document.activeElement; - - this.$search.attr('placeholder', ''); - - decorated.call(this, data); - - this.$selection.find('.select2-selection__rendered') - .append(this.$searchContainer); - - this.resizeSearch(); - if (searchHadFocus) { - this.$search.focus(); - } - }; - - Search.prototype.handleSearch = function () { - this.resizeSearch(); - - if (!this._keyUpPrevented) { - var input = this.$search.val(); - - this.trigger('query', { - term: input - }); - } - - this._keyUpPrevented = false; - }; - - Search.prototype.searchRemoveChoice = function (decorated, item) { - this.trigger('unselect', { - data: item - }); - - this.$search.val(item.text); - this.handleSearch(); - }; - - Search.prototype.resizeSearch = function () { - this.$search.css('width', '25px'); - - var width = ''; - - if (this.$search.attr('placeholder') !== '') { - width = this.$selection.find('.select2-selection__rendered').innerWidth(); - } else { - var minimumWidth = this.$search.val().length + 1; - - width = (minimumWidth * 0.75) + 'em'; - } - - this.$search.css('width', width); - }; - - return Search; -}); - -S2.define('select2/selection/eventRelay',[ - 'jquery' -], function ($) { - function EventRelay () { } - - EventRelay.prototype.bind = function (decorated, container, $container) { - var self = this; - var relayEvents = [ - 'open', 'opening', - 'close', 'closing', - 'select', 'selecting', - 'unselect', 'unselecting' - ]; - - var preventableEvents = ['opening', 'closing', 'selecting', 'unselecting']; - - decorated.call(this, container, $container); - - container.on('*', function (name, params) { - // Ignore events that should not be relayed - if ($.inArray(name, relayEvents) === -1) { - return; - } - - // The parameters should always be an object - params = params || {}; - - // Generate the jQuery event for the Select2 event - var evt = $.Event('select2:' + name, { - params: params - }); - - self.$element.trigger(evt); - - // Only handle preventable events if it was one - if ($.inArray(name, preventableEvents) === -1) { - return; - } - - params.prevented = evt.isDefaultPrevented(); - }); - }; - - return EventRelay; -}); - -S2.define('select2/translation',[ - 'jquery', - 'require' -], function ($, require) { - function Translation (dict) { - this.dict = dict || {}; - } - - Translation.prototype.all = function () { - return this.dict; - }; - - Translation.prototype.get = function (key) { - return this.dict[key]; - }; - - Translation.prototype.extend = function (translation) { - this.dict = $.extend({}, translation.all(), this.dict); - }; - - // Static functions - - Translation._cache = {}; - - Translation.loadPath = function (path) { - if (!(path in Translation._cache)) { - var translations = require(path); - - Translation._cache[path] = translations; - } - - return new Translation(Translation._cache[path]); - }; - - return Translation; -}); - -S2.define('select2/diacritics',[ - -], function () { - var diacritics = { - '\u24B6': 'A', - '\uFF21': 'A', - '\u00C0': 'A', - '\u00C1': 'A', - '\u00C2': 'A', - '\u1EA6': 'A', - '\u1EA4': 'A', - '\u1EAA': 'A', - '\u1EA8': 'A', - '\u00C3': 'A', - '\u0100': 'A', - '\u0102': 'A', - '\u1EB0': 'A', - '\u1EAE': 'A', - '\u1EB4': 'A', - '\u1EB2': 'A', - '\u0226': 'A', - '\u01E0': 'A', - '\u00C4': 'A', - '\u01DE': 'A', - '\u1EA2': 'A', - '\u00C5': 'A', - '\u01FA': 'A', - '\u01CD': 'A', - '\u0200': 'A', - '\u0202': 'A', - '\u1EA0': 'A', - '\u1EAC': 'A', - '\u1EB6': 'A', - '\u1E00': 'A', - '\u0104': 'A', - '\u023A': 'A', - '\u2C6F': 'A', - '\uA732': 'AA', - '\u00C6': 'AE', - '\u01FC': 'AE', - '\u01E2': 'AE', - '\uA734': 'AO', - '\uA736': 'AU', - '\uA738': 'AV', - '\uA73A': 'AV', - '\uA73C': 'AY', - '\u24B7': 'B', - '\uFF22': 'B', - '\u1E02': 'B', - '\u1E04': 'B', - '\u1E06': 'B', - '\u0243': 'B', - '\u0182': 'B', - '\u0181': 'B', - '\u24B8': 'C', - '\uFF23': 'C', - '\u0106': 'C', - '\u0108': 'C', - '\u010A': 'C', - '\u010C': 'C', - '\u00C7': 'C', - '\u1E08': 'C', - '\u0187': 'C', - '\u023B': 'C', - '\uA73E': 'C', - '\u24B9': 'D', - '\uFF24': 'D', - '\u1E0A': 'D', - '\u010E': 'D', - '\u1E0C': 'D', - '\u1E10': 'D', - '\u1E12': 'D', - '\u1E0E': 'D', - '\u0110': 'D', - '\u018B': 'D', - '\u018A': 'D', - '\u0189': 'D', - '\uA779': 'D', - '\u01F1': 'DZ', - '\u01C4': 'DZ', - '\u01F2': 'Dz', - '\u01C5': 'Dz', - '\u24BA': 'E', - '\uFF25': 'E', - '\u00C8': 'E', - '\u00C9': 'E', - '\u00CA': 'E', - '\u1EC0': 'E', - '\u1EBE': 'E', - '\u1EC4': 'E', - '\u1EC2': 'E', - '\u1EBC': 'E', - '\u0112': 'E', - '\u1E14': 'E', - '\u1E16': 'E', - '\u0114': 'E', - '\u0116': 'E', - '\u00CB': 'E', - '\u1EBA': 'E', - '\u011A': 'E', - '\u0204': 'E', - '\u0206': 'E', - '\u1EB8': 'E', - '\u1EC6': 'E', - '\u0228': 'E', - '\u1E1C': 'E', - '\u0118': 'E', - '\u1E18': 'E', - '\u1E1A': 'E', - '\u0190': 'E', - '\u018E': 'E', - '\u24BB': 'F', - '\uFF26': 'F', - '\u1E1E': 'F', - '\u0191': 'F', - '\uA77B': 'F', - '\u24BC': 'G', - '\uFF27': 'G', - '\u01F4': 'G', - '\u011C': 'G', - '\u1E20': 'G', - '\u011E': 'G', - '\u0120': 'G', - '\u01E6': 'G', - '\u0122': 'G', - '\u01E4': 'G', - '\u0193': 'G', - '\uA7A0': 'G', - '\uA77D': 'G', - '\uA77E': 'G', - '\u24BD': 'H', - '\uFF28': 'H', - '\u0124': 'H', - '\u1E22': 'H', - '\u1E26': 'H', - '\u021E': 'H', - '\u1E24': 'H', - '\u1E28': 'H', - '\u1E2A': 'H', - '\u0126': 'H', - '\u2C67': 'H', - '\u2C75': 'H', - '\uA78D': 'H', - '\u24BE': 'I', - '\uFF29': 'I', - '\u00CC': 'I', - '\u00CD': 'I', - '\u00CE': 'I', - '\u0128': 'I', - '\u012A': 'I', - '\u012C': 'I', - '\u0130': 'I', - '\u00CF': 'I', - '\u1E2E': 'I', - '\u1EC8': 'I', - '\u01CF': 'I', - '\u0208': 'I', - '\u020A': 'I', - '\u1ECA': 'I', - '\u012E': 'I', - '\u1E2C': 'I', - '\u0197': 'I', - '\u24BF': 'J', - '\uFF2A': 'J', - '\u0134': 'J', - '\u0248': 'J', - '\u24C0': 'K', - '\uFF2B': 'K', - '\u1E30': 'K', - '\u01E8': 'K', - '\u1E32': 'K', - '\u0136': 'K', - '\u1E34': 'K', - '\u0198': 'K', - '\u2C69': 'K', - '\uA740': 'K', - '\uA742': 'K', - '\uA744': 'K', - '\uA7A2': 'K', - '\u24C1': 'L', - '\uFF2C': 'L', - '\u013F': 'L', - '\u0139': 'L', - '\u013D': 'L', - '\u1E36': 'L', - '\u1E38': 'L', - '\u013B': 'L', - '\u1E3C': 'L', - '\u1E3A': 'L', - '\u0141': 'L', - '\u023D': 'L', - '\u2C62': 'L', - '\u2C60': 'L', - '\uA748': 'L', - '\uA746': 'L', - '\uA780': 'L', - '\u01C7': 'LJ', - '\u01C8': 'Lj', - '\u24C2': 'M', - '\uFF2D': 'M', - '\u1E3E': 'M', - '\u1E40': 'M', - '\u1E42': 'M', - '\u2C6E': 'M', - '\u019C': 'M', - '\u24C3': 'N', - '\uFF2E': 'N', - '\u01F8': 'N', - '\u0143': 'N', - '\u00D1': 'N', - '\u1E44': 'N', - '\u0147': 'N', - '\u1E46': 'N', - '\u0145': 'N', - '\u1E4A': 'N', - '\u1E48': 'N', - '\u0220': 'N', - '\u019D': 'N', - '\uA790': 'N', - '\uA7A4': 'N', - '\u01CA': 'NJ', - '\u01CB': 'Nj', - '\u24C4': 'O', - '\uFF2F': 'O', - '\u00D2': 'O', - '\u00D3': 'O', - '\u00D4': 'O', - '\u1ED2': 'O', - '\u1ED0': 'O', - '\u1ED6': 'O', - '\u1ED4': 'O', - '\u00D5': 'O', - '\u1E4C': 'O', - '\u022C': 'O', - '\u1E4E': 'O', - '\u014C': 'O', - '\u1E50': 'O', - '\u1E52': 'O', - '\u014E': 'O', - '\u022E': 'O', - '\u0230': 'O', - '\u00D6': 'O', - '\u022A': 'O', - '\u1ECE': 'O', - '\u0150': 'O', - '\u01D1': 'O', - '\u020C': 'O', - '\u020E': 'O', - '\u01A0': 'O', - '\u1EDC': 'O', - '\u1EDA': 'O', - '\u1EE0': 'O', - '\u1EDE': 'O', - '\u1EE2': 'O', - '\u1ECC': 'O', - '\u1ED8': 'O', - '\u01EA': 'O', - '\u01EC': 'O', - '\u00D8': 'O', - '\u01FE': 'O', - '\u0186': 'O', - '\u019F': 'O', - '\uA74A': 'O', - '\uA74C': 'O', - '\u01A2': 'OI', - '\uA74E': 'OO', - '\u0222': 'OU', - '\u24C5': 'P', - '\uFF30': 'P', - '\u1E54': 'P', - '\u1E56': 'P', - '\u01A4': 'P', - '\u2C63': 'P', - '\uA750': 'P', - '\uA752': 'P', - '\uA754': 'P', - '\u24C6': 'Q', - '\uFF31': 'Q', - '\uA756': 'Q', - '\uA758': 'Q', - '\u024A': 'Q', - '\u24C7': 'R', - '\uFF32': 'R', - '\u0154': 'R', - '\u1E58': 'R', - '\u0158': 'R', - '\u0210': 'R', - '\u0212': 'R', - '\u1E5A': 'R', - '\u1E5C': 'R', - '\u0156': 'R', - '\u1E5E': 'R', - '\u024C': 'R', - '\u2C64': 'R', - '\uA75A': 'R', - '\uA7A6': 'R', - '\uA782': 'R', - '\u24C8': 'S', - '\uFF33': 'S', - '\u1E9E': 'S', - '\u015A': 'S', - '\u1E64': 'S', - '\u015C': 'S', - '\u1E60': 'S', - '\u0160': 'S', - '\u1E66': 'S', - '\u1E62': 'S', - '\u1E68': 'S', - '\u0218': 'S', - '\u015E': 'S', - '\u2C7E': 'S', - '\uA7A8': 'S', - '\uA784': 'S', - '\u24C9': 'T', - '\uFF34': 'T', - '\u1E6A': 'T', - '\u0164': 'T', - '\u1E6C': 'T', - '\u021A': 'T', - '\u0162': 'T', - '\u1E70': 'T', - '\u1E6E': 'T', - '\u0166': 'T', - '\u01AC': 'T', - '\u01AE': 'T', - '\u023E': 'T', - '\uA786': 'T', - '\uA728': 'TZ', - '\u24CA': 'U', - '\uFF35': 'U', - '\u00D9': 'U', - '\u00DA': 'U', - '\u00DB': 'U', - '\u0168': 'U', - '\u1E78': 'U', - '\u016A': 'U', - '\u1E7A': 'U', - '\u016C': 'U', - '\u00DC': 'U', - '\u01DB': 'U', - '\u01D7': 'U', - '\u01D5': 'U', - '\u01D9': 'U', - '\u1EE6': 'U', - '\u016E': 'U', - '\u0170': 'U', - '\u01D3': 'U', - '\u0214': 'U', - '\u0216': 'U', - '\u01AF': 'U', - '\u1EEA': 'U', - '\u1EE8': 'U', - '\u1EEE': 'U', - '\u1EEC': 'U', - '\u1EF0': 'U', - '\u1EE4': 'U', - '\u1E72': 'U', - '\u0172': 'U', - '\u1E76': 'U', - '\u1E74': 'U', - '\u0244': 'U', - '\u24CB': 'V', - '\uFF36': 'V', - '\u1E7C': 'V', - '\u1E7E': 'V', - '\u01B2': 'V', - '\uA75E': 'V', - '\u0245': 'V', - '\uA760': 'VY', - '\u24CC': 'W', - '\uFF37': 'W', - '\u1E80': 'W', - '\u1E82': 'W', - '\u0174': 'W', - '\u1E86': 'W', - '\u1E84': 'W', - '\u1E88': 'W', - '\u2C72': 'W', - '\u24CD': 'X', - '\uFF38': 'X', - '\u1E8A': 'X', - '\u1E8C': 'X', - '\u24CE': 'Y', - '\uFF39': 'Y', - '\u1EF2': 'Y', - '\u00DD': 'Y', - '\u0176': 'Y', - '\u1EF8': 'Y', - '\u0232': 'Y', - '\u1E8E': 'Y', - '\u0178': 'Y', - '\u1EF6': 'Y', - '\u1EF4': 'Y', - '\u01B3': 'Y', - '\u024E': 'Y', - '\u1EFE': 'Y', - '\u24CF': 'Z', - '\uFF3A': 'Z', - '\u0179': 'Z', - '\u1E90': 'Z', - '\u017B': 'Z', - '\u017D': 'Z', - '\u1E92': 'Z', - '\u1E94': 'Z', - '\u01B5': 'Z', - '\u0224': 'Z', - '\u2C7F': 'Z', - '\u2C6B': 'Z', - '\uA762': 'Z', - '\u24D0': 'a', - '\uFF41': 'a', - '\u1E9A': 'a', - '\u00E0': 'a', - '\u00E1': 'a', - '\u00E2': 'a', - '\u1EA7': 'a', - '\u1EA5': 'a', - '\u1EAB': 'a', - '\u1EA9': 'a', - '\u00E3': 'a', - '\u0101': 'a', - '\u0103': 'a', - '\u1EB1': 'a', - '\u1EAF': 'a', - '\u1EB5': 'a', - '\u1EB3': 'a', - '\u0227': 'a', - '\u01E1': 'a', - '\u00E4': 'a', - '\u01DF': 'a', - '\u1EA3': 'a', - '\u00E5': 'a', - '\u01FB': 'a', - '\u01CE': 'a', - '\u0201': 'a', - '\u0203': 'a', - '\u1EA1': 'a', - '\u1EAD': 'a', - '\u1EB7': 'a', - '\u1E01': 'a', - '\u0105': 'a', - '\u2C65': 'a', - '\u0250': 'a', - '\uA733': 'aa', - '\u00E6': 'ae', - '\u01FD': 'ae', - '\u01E3': 'ae', - '\uA735': 'ao', - '\uA737': 'au', - '\uA739': 'av', - '\uA73B': 'av', - '\uA73D': 'ay', - '\u24D1': 'b', - '\uFF42': 'b', - '\u1E03': 'b', - '\u1E05': 'b', - '\u1E07': 'b', - '\u0180': 'b', - '\u0183': 'b', - '\u0253': 'b', - '\u24D2': 'c', - '\uFF43': 'c', - '\u0107': 'c', - '\u0109': 'c', - '\u010B': 'c', - '\u010D': 'c', - '\u00E7': 'c', - '\u1E09': 'c', - '\u0188': 'c', - '\u023C': 'c', - '\uA73F': 'c', - '\u2184': 'c', - '\u24D3': 'd', - '\uFF44': 'd', - '\u1E0B': 'd', - '\u010F': 'd', - '\u1E0D': 'd', - '\u1E11': 'd', - '\u1E13': 'd', - '\u1E0F': 'd', - '\u0111': 'd', - '\u018C': 'd', - '\u0256': 'd', - '\u0257': 'd', - '\uA77A': 'd', - '\u01F3': 'dz', - '\u01C6': 'dz', - '\u24D4': 'e', - '\uFF45': 'e', - '\u00E8': 'e', - '\u00E9': 'e', - '\u00EA': 'e', - '\u1EC1': 'e', - '\u1EBF': 'e', - '\u1EC5': 'e', - '\u1EC3': 'e', - '\u1EBD': 'e', - '\u0113': 'e', - '\u1E15': 'e', - '\u1E17': 'e', - '\u0115': 'e', - '\u0117': 'e', - '\u00EB': 'e', - '\u1EBB': 'e', - '\u011B': 'e', - '\u0205': 'e', - '\u0207': 'e', - '\u1EB9': 'e', - '\u1EC7': 'e', - '\u0229': 'e', - '\u1E1D': 'e', - '\u0119': 'e', - '\u1E19': 'e', - '\u1E1B': 'e', - '\u0247': 'e', - '\u025B': 'e', - '\u01DD': 'e', - '\u24D5': 'f', - '\uFF46': 'f', - '\u1E1F': 'f', - '\u0192': 'f', - '\uA77C': 'f', - '\u24D6': 'g', - '\uFF47': 'g', - '\u01F5': 'g', - '\u011D': 'g', - '\u1E21': 'g', - '\u011F': 'g', - '\u0121': 'g', - '\u01E7': 'g', - '\u0123': 'g', - '\u01E5': 'g', - '\u0260': 'g', - '\uA7A1': 'g', - '\u1D79': 'g', - '\uA77F': 'g', - '\u24D7': 'h', - '\uFF48': 'h', - '\u0125': 'h', - '\u1E23': 'h', - '\u1E27': 'h', - '\u021F': 'h', - '\u1E25': 'h', - '\u1E29': 'h', - '\u1E2B': 'h', - '\u1E96': 'h', - '\u0127': 'h', - '\u2C68': 'h', - '\u2C76': 'h', - '\u0265': 'h', - '\u0195': 'hv', - '\u24D8': 'i', - '\uFF49': 'i', - '\u00EC': 'i', - '\u00ED': 'i', - '\u00EE': 'i', - '\u0129': 'i', - '\u012B': 'i', - '\u012D': 'i', - '\u00EF': 'i', - '\u1E2F': 'i', - '\u1EC9': 'i', - '\u01D0': 'i', - '\u0209': 'i', - '\u020B': 'i', - '\u1ECB': 'i', - '\u012F': 'i', - '\u1E2D': 'i', - '\u0268': 'i', - '\u0131': 'i', - '\u24D9': 'j', - '\uFF4A': 'j', - '\u0135': 'j', - '\u01F0': 'j', - '\u0249': 'j', - '\u24DA': 'k', - '\uFF4B': 'k', - '\u1E31': 'k', - '\u01E9': 'k', - '\u1E33': 'k', - '\u0137': 'k', - '\u1E35': 'k', - '\u0199': 'k', - '\u2C6A': 'k', - '\uA741': 'k', - '\uA743': 'k', - '\uA745': 'k', - '\uA7A3': 'k', - '\u24DB': 'l', - '\uFF4C': 'l', - '\u0140': 'l', - '\u013A': 'l', - '\u013E': 'l', - '\u1E37': 'l', - '\u1E39': 'l', - '\u013C': 'l', - '\u1E3D': 'l', - '\u1E3B': 'l', - '\u017F': 'l', - '\u0142': 'l', - '\u019A': 'l', - '\u026B': 'l', - '\u2C61': 'l', - '\uA749': 'l', - '\uA781': 'l', - '\uA747': 'l', - '\u01C9': 'lj', - '\u24DC': 'm', - '\uFF4D': 'm', - '\u1E3F': 'm', - '\u1E41': 'm', - '\u1E43': 'm', - '\u0271': 'm', - '\u026F': 'm', - '\u24DD': 'n', - '\uFF4E': 'n', - '\u01F9': 'n', - '\u0144': 'n', - '\u00F1': 'n', - '\u1E45': 'n', - '\u0148': 'n', - '\u1E47': 'n', - '\u0146': 'n', - '\u1E4B': 'n', - '\u1E49': 'n', - '\u019E': 'n', - '\u0272': 'n', - '\u0149': 'n', - '\uA791': 'n', - '\uA7A5': 'n', - '\u01CC': 'nj', - '\u24DE': 'o', - '\uFF4F': 'o', - '\u00F2': 'o', - '\u00F3': 'o', - '\u00F4': 'o', - '\u1ED3': 'o', - '\u1ED1': 'o', - '\u1ED7': 'o', - '\u1ED5': 'o', - '\u00F5': 'o', - '\u1E4D': 'o', - '\u022D': 'o', - '\u1E4F': 'o', - '\u014D': 'o', - '\u1E51': 'o', - '\u1E53': 'o', - '\u014F': 'o', - '\u022F': 'o', - '\u0231': 'o', - '\u00F6': 'o', - '\u022B': 'o', - '\u1ECF': 'o', - '\u0151': 'o', - '\u01D2': 'o', - '\u020D': 'o', - '\u020F': 'o', - '\u01A1': 'o', - '\u1EDD': 'o', - '\u1EDB': 'o', - '\u1EE1': 'o', - '\u1EDF': 'o', - '\u1EE3': 'o', - '\u1ECD': 'o', - '\u1ED9': 'o', - '\u01EB': 'o', - '\u01ED': 'o', - '\u00F8': 'o', - '\u01FF': 'o', - '\u0254': 'o', - '\uA74B': 'o', - '\uA74D': 'o', - '\u0275': 'o', - '\u01A3': 'oi', - '\u0223': 'ou', - '\uA74F': 'oo', - '\u24DF': 'p', - '\uFF50': 'p', - '\u1E55': 'p', - '\u1E57': 'p', - '\u01A5': 'p', - '\u1D7D': 'p', - '\uA751': 'p', - '\uA753': 'p', - '\uA755': 'p', - '\u24E0': 'q', - '\uFF51': 'q', - '\u024B': 'q', - '\uA757': 'q', - '\uA759': 'q', - '\u24E1': 'r', - '\uFF52': 'r', - '\u0155': 'r', - '\u1E59': 'r', - '\u0159': 'r', - '\u0211': 'r', - '\u0213': 'r', - '\u1E5B': 'r', - '\u1E5D': 'r', - '\u0157': 'r', - '\u1E5F': 'r', - '\u024D': 'r', - '\u027D': 'r', - '\uA75B': 'r', - '\uA7A7': 'r', - '\uA783': 'r', - '\u24E2': 's', - '\uFF53': 's', - '\u00DF': 's', - '\u015B': 's', - '\u1E65': 's', - '\u015D': 's', - '\u1E61': 's', - '\u0161': 's', - '\u1E67': 's', - '\u1E63': 's', - '\u1E69': 's', - '\u0219': 's', - '\u015F': 's', - '\u023F': 's', - '\uA7A9': 's', - '\uA785': 's', - '\u1E9B': 's', - '\u24E3': 't', - '\uFF54': 't', - '\u1E6B': 't', - '\u1E97': 't', - '\u0165': 't', - '\u1E6D': 't', - '\u021B': 't', - '\u0163': 't', - '\u1E71': 't', - '\u1E6F': 't', - '\u0167': 't', - '\u01AD': 't', - '\u0288': 't', - '\u2C66': 't', - '\uA787': 't', - '\uA729': 'tz', - '\u24E4': 'u', - '\uFF55': 'u', - '\u00F9': 'u', - '\u00FA': 'u', - '\u00FB': 'u', - '\u0169': 'u', - '\u1E79': 'u', - '\u016B': 'u', - '\u1E7B': 'u', - '\u016D': 'u', - '\u00FC': 'u', - '\u01DC': 'u', - '\u01D8': 'u', - '\u01D6': 'u', - '\u01DA': 'u', - '\u1EE7': 'u', - '\u016F': 'u', - '\u0171': 'u', - '\u01D4': 'u', - '\u0215': 'u', - '\u0217': 'u', - '\u01B0': 'u', - '\u1EEB': 'u', - '\u1EE9': 'u', - '\u1EEF': 'u', - '\u1EED': 'u', - '\u1EF1': 'u', - '\u1EE5': 'u', - '\u1E73': 'u', - '\u0173': 'u', - '\u1E77': 'u', - '\u1E75': 'u', - '\u0289': 'u', - '\u24E5': 'v', - '\uFF56': 'v', - '\u1E7D': 'v', - '\u1E7F': 'v', - '\u028B': 'v', - '\uA75F': 'v', - '\u028C': 'v', - '\uA761': 'vy', - '\u24E6': 'w', - '\uFF57': 'w', - '\u1E81': 'w', - '\u1E83': 'w', - '\u0175': 'w', - '\u1E87': 'w', - '\u1E85': 'w', - '\u1E98': 'w', - '\u1E89': 'w', - '\u2C73': 'w', - '\u24E7': 'x', - '\uFF58': 'x', - '\u1E8B': 'x', - '\u1E8D': 'x', - '\u24E8': 'y', - '\uFF59': 'y', - '\u1EF3': 'y', - '\u00FD': 'y', - '\u0177': 'y', - '\u1EF9': 'y', - '\u0233': 'y', - '\u1E8F': 'y', - '\u00FF': 'y', - '\u1EF7': 'y', - '\u1E99': 'y', - '\u1EF5': 'y', - '\u01B4': 'y', - '\u024F': 'y', - '\u1EFF': 'y', - '\u24E9': 'z', - '\uFF5A': 'z', - '\u017A': 'z', - '\u1E91': 'z', - '\u017C': 'z', - '\u017E': 'z', - '\u1E93': 'z', - '\u1E95': 'z', - '\u01B6': 'z', - '\u0225': 'z', - '\u0240': 'z', - '\u2C6C': 'z', - '\uA763': 'z', - '\u0386': '\u0391', - '\u0388': '\u0395', - '\u0389': '\u0397', - '\u038A': '\u0399', - '\u03AA': '\u0399', - '\u038C': '\u039F', - '\u038E': '\u03A5', - '\u03AB': '\u03A5', - '\u038F': '\u03A9', - '\u03AC': '\u03B1', - '\u03AD': '\u03B5', - '\u03AE': '\u03B7', - '\u03AF': '\u03B9', - '\u03CA': '\u03B9', - '\u0390': '\u03B9', - '\u03CC': '\u03BF', - '\u03CD': '\u03C5', - '\u03CB': '\u03C5', - '\u03B0': '\u03C5', - '\u03C9': '\u03C9', - '\u03C2': '\u03C3' - }; - - return diacritics; -}); - -S2.define('select2/data/base',[ - '../utils' -], function (Utils) { - function BaseAdapter ($element, options) { - BaseAdapter.__super__.constructor.call(this); - } - - Utils.Extend(BaseAdapter, Utils.Observable); - - BaseAdapter.prototype.current = function (callback) { - throw new Error('The `current` method must be defined in child classes.'); - }; - - BaseAdapter.prototype.query = function (params, callback) { - throw new Error('The `query` method must be defined in child classes.'); - }; - - BaseAdapter.prototype.bind = function (container, $container) { - // Can be implemented in subclasses - }; - - BaseAdapter.prototype.destroy = function () { - // Can be implemented in subclasses - }; - - BaseAdapter.prototype.generateResultId = function (container, data) { - var id = container.id + '-result-'; - - id += Utils.generateChars(4); - - if (data.id != null) { - id += '-' + data.id.toString(); - } else { - id += '-' + Utils.generateChars(4); - } - return id; - }; - - return BaseAdapter; -}); - -S2.define('select2/data/select',[ - './base', - '../utils', - 'jquery' -], function (BaseAdapter, Utils, $) { - function SelectAdapter ($element, options) { - this.$element = $element; - this.options = options; - - SelectAdapter.__super__.constructor.call(this); - } - - Utils.Extend(SelectAdapter, BaseAdapter); - - SelectAdapter.prototype.current = function (callback) { - var data = []; - var self = this; - - this.$element.find(':selected').each(function () { - var $option = $(this); - - var option = self.item($option); - - data.push(option); - }); - - callback(data); - }; - - SelectAdapter.prototype.select = function (data) { - var self = this; - - data.selected = true; - - // If data.element is a DOM node, use it instead - if ($(data.element).is('option')) { - data.element.selected = true; - - this.$element.trigger('change'); - - return; - } - - if (this.$element.prop('multiple')) { - this.current(function (currentData) { - var val = []; - - data = [data]; - data.push.apply(data, currentData); - - for (var d = 0; d < data.length; d++) { - var id = data[d].id; - - if ($.inArray(id, val) === -1) { - val.push(id); - } - } - - self.$element.val(val); - self.$element.trigger('change'); - }); - } else { - var val = data.id; - - this.$element.val(val); - this.$element.trigger('change'); - } - }; - - SelectAdapter.prototype.unselect = function (data) { - var self = this; - - if (!this.$element.prop('multiple')) { - return; - } - - data.selected = false; - - if ($(data.element).is('option')) { - data.element.selected = false; - - this.$element.trigger('change'); - - return; - } - - this.current(function (currentData) { - var val = []; - - for (var d = 0; d < currentData.length; d++) { - var id = currentData[d].id; - - if (id !== data.id && $.inArray(id, val) === -1) { - val.push(id); - } - } - - self.$element.val(val); - - self.$element.trigger('change'); - }); - }; - - SelectAdapter.prototype.bind = function (container, $container) { - var self = this; - - this.container = container; - - container.on('select', function (params) { - self.select(params.data); - }); - - container.on('unselect', function (params) { - self.unselect(params.data); - }); - }; - - SelectAdapter.prototype.destroy = function () { - // Remove anything added to child elements - this.$element.find('*').each(function () { - // Remove any custom data set by Select2 - $.removeData(this, 'data'); - }); - }; - - SelectAdapter.prototype.query = function (params, callback) { - var data = []; - var self = this; - - var $options = this.$element.children(); - - $options.each(function () { - var $option = $(this); - - if (!$option.is('option') && !$option.is('optgroup')) { - return; - } - - var option = self.item($option); - - var matches = self.matches(params, option); - - if (matches !== null) { - data.push(matches); - } - }); - - callback({ - results: data - }); - }; - - SelectAdapter.prototype.addOptions = function ($options) { - Utils.appendMany(this.$element, $options); - }; - - SelectAdapter.prototype.option = function (data) { - var option; - - if (data.children) { - option = document.createElement('optgroup'); - option.label = data.text; - } else { - option = document.createElement('option'); - - if (option.textContent !== undefined) { - option.textContent = data.text; - } else { - option.innerText = data.text; - } - } - - if (data.id !== undefined) { - option.value = data.id; - } - - if (data.disabled) { - option.disabled = true; - } - - if (data.selected) { - option.selected = true; - } - - if (data.title) { - option.title = data.title; - } - - var $option = $(option); - - var normalizedData = this._normalizeItem(data); - normalizedData.element = option; - - // Override the option's data with the combined data - $.data(option, 'data', normalizedData); - - return $option; - }; - - SelectAdapter.prototype.item = function ($option) { - var data = {}; - - data = $.data($option[0], 'data'); - - if (data != null) { - return data; - } - - if ($option.is('option')) { - data = { - id: $option.val(), - text: $option.text(), - disabled: $option.prop('disabled'), - selected: $option.prop('selected'), - title: $option.prop('title') - }; - } else if ($option.is('optgroup')) { - data = { - text: $option.prop('label'), - children: [], - title: $option.prop('title') - }; - - var $children = $option.children('option'); - var children = []; - - for (var c = 0; c < $children.length; c++) { - var $child = $($children[c]); - - var child = this.item($child); - - children.push(child); - } - - data.children = children; - } - - data = this._normalizeItem(data); - data.element = $option[0]; - - $.data($option[0], 'data', data); - - return data; - }; - - SelectAdapter.prototype._normalizeItem = function (item) { - if (!$.isPlainObject(item)) { - item = { - id: item, - text: item - }; - } - - item = $.extend({}, { - text: '' - }, item); - - var defaults = { - selected: false, - disabled: false - }; - - if (item.id != null) { - item.id = item.id.toString(); - } - - if (item.text != null) { - item.text = item.text.toString(); - } - - if (item._resultId == null && item.id && this.container != null) { - item._resultId = this.generateResultId(this.container, item); - } - - return $.extend({}, defaults, item); - }; - - SelectAdapter.prototype.matches = function (params, data) { - var matcher = this.options.get('matcher'); - - return matcher(params, data); - }; - - return SelectAdapter; -}); - -S2.define('select2/data/array',[ - './select', - '../utils', - 'jquery' -], function (SelectAdapter, Utils, $) { - function ArrayAdapter ($element, options) { - var data = options.get('data') || []; - - ArrayAdapter.__super__.constructor.call(this, $element, options); - - this.addOptions(this.convertToOptions(data)); - } - - Utils.Extend(ArrayAdapter, SelectAdapter); - - ArrayAdapter.prototype.select = function (data) { - var $option = this.$element.find('option').filter(function (i, elm) { - return elm.value == data.id.toString(); - }); - - if ($option.length === 0) { - $option = this.option(data); - - this.addOptions($option); - } - - ArrayAdapter.__super__.select.call(this, data); - }; - - ArrayAdapter.prototype.convertToOptions = function (data) { - var self = this; - - var $existing = this.$element.find('option'); - var existingIds = $existing.map(function () { - return self.item($(this)).id; - }).get(); - - var $options = []; - - // Filter out all items except for the one passed in the argument - function onlyItem (item) { - return function () { - return $(this).val() == item.id; - }; - } - - for (var d = 0; d < data.length; d++) { - var item = this._normalizeItem(data[d]); - - // Skip items which were pre-loaded, only merge the data - if ($.inArray(item.id, existingIds) >= 0) { - var $existingOption = $existing.filter(onlyItem(item)); - - var existingData = this.item($existingOption); - var newData = $.extend(true, {}, item, existingData); - - var $newOption = this.option(newData); - - $existingOption.replaceWith($newOption); - - continue; - } - - var $option = this.option(item); - - if (item.children) { - var $children = this.convertToOptions(item.children); - - Utils.appendMany($option, $children); - } - - $options.push($option); - } - - return $options; - }; - - return ArrayAdapter; -}); - -S2.define('select2/data/ajax',[ - './array', - '../utils', - 'jquery' -], function (ArrayAdapter, Utils, $) { - function AjaxAdapter ($element, options) { - this.ajaxOptions = this._applyDefaults(options.get('ajax')); - - if (this.ajaxOptions.processResults != null) { - this.processResults = this.ajaxOptions.processResults; - } - - AjaxAdapter.__super__.constructor.call(this, $element, options); - } - - Utils.Extend(AjaxAdapter, ArrayAdapter); - - AjaxAdapter.prototype._applyDefaults = function (options) { - var defaults = { - data: function (params) { - return $.extend({}, params, { - q: params.term - }); - }, - transport: function (params, success, failure) { - var $request = $.ajax(params); - - $request.then(success); - $request.fail(failure); - - return $request; - } - }; - - return $.extend({}, defaults, options, true); - }; - - AjaxAdapter.prototype.processResults = function (results) { - return results; - }; - - AjaxAdapter.prototype.query = function (params, callback) { - var matches = []; - var self = this; - - if (this._request != null) { - // JSONP requests cannot always be aborted - if ($.isFunction(this._request.abort)) { - this._request.abort(); - } - - this._request = null; - } - - var options = $.extend({ - type: 'GET' - }, this.ajaxOptions); - - if (typeof options.url === 'function') { - options.url = options.url.call(this.$element, params); - } - - if (typeof options.data === 'function') { - options.data = options.data.call(this.$element, params); - } - - function request () { - var $request = options.transport(options, function (data) { - var results = self.processResults(data, params); - - if (self.options.get('debug') && window.console && console.error) { - // Check to make sure that the response included a `results` key. - if (!results || !results.results || !$.isArray(results.results)) { - console.error( - 'Select2: The AJAX results did not return an array in the ' + - '`results` key of the response.' - ); - } - } - - callback(results); - }, function () { - // Attempt to detect if a request was aborted - // Only works if the transport exposes a status property - if ($request.status && $request.status === '0') { - return; - } - - self.trigger('results:message', { - message: 'errorLoading' - }); - }); - - self._request = $request; - } - - if (this.ajaxOptions.delay && params.term != null) { - if (this._queryTimeout) { - window.clearTimeout(this._queryTimeout); - } - - this._queryTimeout = window.setTimeout(request, this.ajaxOptions.delay); - } else { - request(); - } - }; - - return AjaxAdapter; -}); - -S2.define('select2/data/tags',[ - 'jquery' -], function ($) { - function Tags (decorated, $element, options) { - var tags = options.get('tags'); - - var createTag = options.get('createTag'); - - if (createTag !== undefined) { - this.createTag = createTag; - } - - var insertTag = options.get('insertTag'); - - if (insertTag !== undefined) { - this.insertTag = insertTag; - } - - decorated.call(this, $element, options); - - if ($.isArray(tags)) { - for (var t = 0; t < tags.length; t++) { - var tag = tags[t]; - var item = this._normalizeItem(tag); - - var $option = this.option(item); - - this.$element.append($option); - } - } - } - - Tags.prototype.query = function (decorated, params, callback) { - var self = this; - - this._removeOldTags(); - - if (params.term == null || params.page != null) { - decorated.call(this, params, callback); - return; - } - - function wrapper (obj, child) { - var data = obj.results; - - for (var i = 0; i < data.length; i++) { - var option = data[i]; - - var checkChildren = ( - option.children != null && - !wrapper({ - results: option.children - }, true) - ); - - var optionText = (option.text || '').toUpperCase(); - var paramsTerm = (params.term || '').toUpperCase(); - - var checkText = optionText === paramsTerm; - - if (checkText || checkChildren) { - if (child) { - return false; - } - - obj.data = data; - callback(obj); - - return; - } - } - - if (child) { - return true; - } - - var tag = self.createTag(params); - - if (tag != null) { - var $option = self.option(tag); - $option.attr('data-select2-tag', true); - - self.addOptions([$option]); - - self.insertTag(data, tag); - } - - obj.results = data; - - callback(obj); - } - - decorated.call(this, params, wrapper); - }; - - Tags.prototype.createTag = function (decorated, params) { - var term = $.trim(params.term); - - if (term === '') { - return null; - } - - return { - id: term, - text: term - }; - }; - - Tags.prototype.insertTag = function (_, data, tag) { - data.unshift(tag); - }; - - Tags.prototype._removeOldTags = function (_) { - var tag = this._lastTag; - - var $options = this.$element.find('option[data-select2-tag]'); - - $options.each(function () { - if (this.selected) { - return; - } - - $(this).remove(); - }); - }; - - return Tags; -}); - -S2.define('select2/data/tokenizer',[ - 'jquery' -], function ($) { - function Tokenizer (decorated, $element, options) { - var tokenizer = options.get('tokenizer'); - - if (tokenizer !== undefined) { - this.tokenizer = tokenizer; - } - - decorated.call(this, $element, options); - } - - Tokenizer.prototype.bind = function (decorated, container, $container) { - decorated.call(this, container, $container); - - this.$search = container.dropdown.$search || container.selection.$search || - $container.find('.select2-search__field'); - }; - - Tokenizer.prototype.query = function (decorated, params, callback) { - var self = this; - - function createAndSelect (data) { - // Normalize the data object so we can use it for checks - var item = self._normalizeItem(data); - - // Check if the data object already exists as a tag - // Select it if it doesn't - var $existingOptions = self.$element.find('option').filter(function () { - return $(this).val() === item.id; - }); - - // If an existing option wasn't found for it, create the option - if (!$existingOptions.length) { - var $option = self.option(item); - $option.attr('data-select2-tag', true); - - self._removeOldTags(); - self.addOptions([$option]); - } - - // Select the item, now that we know there is an option for it - select(item); - } - - function select (data) { - self.trigger('select', { - data: data - }); - } - - params.term = params.term || ''; - - var tokenData = this.tokenizer(params, this.options, createAndSelect); - - if (tokenData.term !== params.term) { - // Replace the search term if we have the search box - if (this.$search.length) { - this.$search.val(tokenData.term); - this.$search.focus(); - } - - params.term = tokenData.term; - } - - decorated.call(this, params, callback); - }; - - Tokenizer.prototype.tokenizer = function (_, params, options, callback) { - var separators = options.get('tokenSeparators') || []; - var term = params.term; - var i = 0; - - var createTag = this.createTag || function (params) { - return { - id: params.term, - text: params.term - }; - }; - - while (i < term.length) { - var termChar = term[i]; - - if ($.inArray(termChar, separators) === -1) { - i++; - - continue; - } - - var part = term.substr(0, i); - var partParams = $.extend({}, params, { - term: part - }); - - var data = createTag(partParams); - - if (data == null) { - i++; - continue; - } - - callback(data); - - // Reset the term to not include the tokenized portion - term = term.substr(i + 1) || ''; - i = 0; - } - - return { - term: term - }; - }; - - return Tokenizer; -}); - -S2.define('select2/data/minimumInputLength',[ - -], function () { - function MinimumInputLength (decorated, $e, options) { - this.minimumInputLength = options.get('minimumInputLength'); - - decorated.call(this, $e, options); - } - - MinimumInputLength.prototype.query = function (decorated, params, callback) { - params.term = params.term || ''; - - if (params.term.length < this.minimumInputLength) { - this.trigger('results:message', { - message: 'inputTooShort', - args: { - minimum: this.minimumInputLength, - input: params.term, - params: params - } - }); - - return; - } - - decorated.call(this, params, callback); - }; - - return MinimumInputLength; -}); - -S2.define('select2/data/maximumInputLength',[ - -], function () { - function MaximumInputLength (decorated, $e, options) { - this.maximumInputLength = options.get('maximumInputLength'); - - decorated.call(this, $e, options); - } - - MaximumInputLength.prototype.query = function (decorated, params, callback) { - params.term = params.term || ''; - - if (this.maximumInputLength > 0 && - params.term.length > this.maximumInputLength) { - this.trigger('results:message', { - message: 'inputTooLong', - args: { - maximum: this.maximumInputLength, - input: params.term, - params: params - } - }); - - return; - } - - decorated.call(this, params, callback); - }; - - return MaximumInputLength; -}); - -S2.define('select2/data/maximumSelectionLength',[ - -], function (){ - function MaximumSelectionLength (decorated, $e, options) { - this.maximumSelectionLength = options.get('maximumSelectionLength'); - - decorated.call(this, $e, options); - } - - MaximumSelectionLength.prototype.query = - function (decorated, params, callback) { - var self = this; - - this.current(function (currentData) { - var count = currentData != null ? currentData.length : 0; - if (self.maximumSelectionLength > 0 && - count >= self.maximumSelectionLength) { - self.trigger('results:message', { - message: 'maximumSelected', - args: { - maximum: self.maximumSelectionLength - } - }); - return; - } - decorated.call(self, params, callback); - }); - }; - - return MaximumSelectionLength; -}); - -S2.define('select2/dropdown',[ - 'jquery', - './utils' -], function ($, Utils) { - function Dropdown ($element, options) { - this.$element = $element; - this.options = options; - - Dropdown.__super__.constructor.call(this); - } - - Utils.Extend(Dropdown, Utils.Observable); - - Dropdown.prototype.render = function () { - var $dropdown = $( - '<span class="select2-dropdown">' + - '<span class="select2-results"></span>' + - '</span>' - ); - - $dropdown.attr('dir', this.options.get('dir')); - - this.$dropdown = $dropdown; - - return $dropdown; - }; - - Dropdown.prototype.bind = function () { - // Should be implemented in subclasses - }; - - Dropdown.prototype.position = function ($dropdown, $container) { - // Should be implmented in subclasses - }; - - Dropdown.prototype.destroy = function () { - // Remove the dropdown from the DOM - this.$dropdown.remove(); - }; - - return Dropdown; -}); - -S2.define('select2/dropdown/search',[ - 'jquery', - '../utils' -], function ($, Utils) { - function Search () { } - - Search.prototype.render = function (decorated) { - var $rendered = decorated.call(this); - - var $search = $( - '<span class="select2-search select2-search--dropdown">' + - '<input class="select2-search__field" type="search" tabindex="-1"' + - ' autocomplete="off" autocorrect="off" autocapitalize="off"' + - ' spellcheck="false" role="textbox" />' + - '</span>' - ); - - this.$searchContainer = $search; - this.$search = $search.find('input'); - - $rendered.prepend($search); - - return $rendered; - }; - - Search.prototype.bind = function (decorated, container, $container) { - var self = this; - - decorated.call(this, container, $container); - - this.$search.on('keydown', function (evt) { - self.trigger('keypress', evt); - - self._keyUpPrevented = evt.isDefaultPrevented(); - }); - - // Workaround for browsers which do not support the `input` event - // This will prevent double-triggering of events for browsers which support - // both the `keyup` and `input` events. - this.$search.on('input', function (evt) { - // Unbind the duplicated `keyup` event - $(this).off('keyup'); - }); - - this.$search.on('keyup input', function (evt) { - self.handleSearch(evt); - }); - - container.on('open', function () { - self.$search.attr('tabindex', 0); - - self.$search.focus(); - - window.setTimeout(function () { - self.$search.focus(); - }, 0); - }); - - container.on('close', function () { - self.$search.attr('tabindex', -1); - - self.$search.val(''); - }); - - container.on('focus', function () { - if (!container.isOpen()) { - self.$search.focus(); - } - }); - - container.on('results:all', function (params) { - if (params.query.term == null || params.query.term === '') { - var showSearch = self.showSearch(params); - - if (showSearch) { - self.$searchContainer.removeClass('select2-search--hide'); - } else { - self.$searchContainer.addClass('select2-search--hide'); - } - } - }); - }; - - Search.prototype.handleSearch = function (evt) { - if (!this._keyUpPrevented) { - var input = this.$search.val(); - - this.trigger('query', { - term: input - }); - } - - this._keyUpPrevented = false; - }; - - Search.prototype.showSearch = function (_, params) { - return true; - }; - - return Search; -}); - -S2.define('select2/dropdown/hidePlaceholder',[ - -], function () { - function HidePlaceholder (decorated, $element, options, dataAdapter) { - this.placeholder = this.normalizePlaceholder(options.get('placeholder')); - - decorated.call(this, $element, options, dataAdapter); - } - - HidePlaceholder.prototype.append = function (decorated, data) { - data.results = this.removePlaceholder(data.results); - - decorated.call(this, data); - }; - - HidePlaceholder.prototype.normalizePlaceholder = function (_, placeholder) { - if (typeof placeholder === 'string') { - placeholder = { - id: '', - text: placeholder - }; - } - - return placeholder; - }; - - HidePlaceholder.prototype.removePlaceholder = function (_, data) { - var modifiedData = data.slice(0); - - for (var d = data.length - 1; d >= 0; d--) { - var item = data[d]; - - if (this.placeholder.id === item.id) { - modifiedData.splice(d, 1); - } - } - - return modifiedData; - }; - - return HidePlaceholder; -}); - -S2.define('select2/dropdown/infiniteScroll',[ - 'jquery' -], function ($) { - function InfiniteScroll (decorated, $element, options, dataAdapter) { - this.lastParams = {}; - - decorated.call(this, $element, options, dataAdapter); - - this.$loadingMore = this.createLoadingMore(); - this.loading = false; - } - - InfiniteScroll.prototype.append = function (decorated, data) { - this.$loadingMore.remove(); - this.loading = false; - - decorated.call(this, data); - - if (this.showLoadingMore(data)) { - this.$results.append(this.$loadingMore); - } - }; - - InfiniteScroll.prototype.bind = function (decorated, container, $container) { - var self = this; - - decorated.call(this, container, $container); - - container.on('query', function (params) { - self.lastParams = params; - self.loading = true; - }); - - container.on('query:append', function (params) { - self.lastParams = params; - self.loading = true; - }); - - this.$results.on('scroll', function () { - var isLoadMoreVisible = $.contains( - document.documentElement, - self.$loadingMore[0] - ); - - if (self.loading || !isLoadMoreVisible) { - return; - } - - var currentOffset = self.$results.offset().top + - self.$results.outerHeight(false); - var loadingMoreOffset = self.$loadingMore.offset().top + - self.$loadingMore.outerHeight(false); - - if (currentOffset + 50 >= loadingMoreOffset) { - self.loadMore(); - } - }); - }; - - InfiniteScroll.prototype.loadMore = function () { - this.loading = true; - - var params = $.extend({}, {page: 1}, this.lastParams); - - params.page++; - - this.trigger('query:append', params); - }; - - InfiniteScroll.prototype.showLoadingMore = function (_, data) { - return data.pagination && data.pagination.more; - }; - - InfiniteScroll.prototype.createLoadingMore = function () { - var $option = $( - '<li ' + - 'class="select2-results__option select2-results__option--load-more"' + - 'role="treeitem" aria-disabled="true"></li>' - ); - - var message = this.options.get('translations').get('loadingMore'); - - $option.html(message(this.lastParams)); - - return $option; - }; - - return InfiniteScroll; -}); - -S2.define('select2/dropdown/attachBody',[ - 'jquery', - '../utils' -], function ($, Utils) { - function AttachBody (decorated, $element, options) { - this.$dropdownParent = options.get('dropdownParent') || $(document.body); - - decorated.call(this, $element, options); - } - - AttachBody.prototype.bind = function (decorated, container, $container) { - var self = this; - - var setupResultsEvents = false; - - decorated.call(this, container, $container); - - container.on('open', function () { - self._showDropdown(); - self._attachPositioningHandler(container); - - if (!setupResultsEvents) { - setupResultsEvents = true; - - container.on('results:all', function () { - self._positionDropdown(); - self._resizeDropdown(); - }); - - container.on('results:append', function () { - self._positionDropdown(); - self._resizeDropdown(); - }); - } - }); - - container.on('close', function () { - self._hideDropdown(); - self._detachPositioningHandler(container); - }); - - this.$dropdownContainer.on('mousedown', function (evt) { - evt.stopPropagation(); - }); - }; - - AttachBody.prototype.destroy = function (decorated) { - decorated.call(this); - - this.$dropdownContainer.remove(); - }; - - AttachBody.prototype.position = function (decorated, $dropdown, $container) { - // Clone all of the container classes - $dropdown.attr('class', $container.attr('class')); - - $dropdown.removeClass('select2'); - $dropdown.addClass('select2-container--open'); - - $dropdown.css({ - position: 'absolute', - top: -999999 - }); - - this.$container = $container; - }; - - AttachBody.prototype.render = function (decorated) { - var $container = $('<span></span>'); - - var $dropdown = decorated.call(this); - $container.append($dropdown); - - this.$dropdownContainer = $container; - - return $container; - }; - - AttachBody.prototype._hideDropdown = function (decorated) { - this.$dropdownContainer.detach(); - }; - - AttachBody.prototype._attachPositioningHandler = - function (decorated, container) { - var self = this; - - var scrollEvent = 'scroll.select2.' + container.id; - var resizeEvent = 'resize.select2.' + container.id; - var orientationEvent = 'orientationchange.select2.' + container.id; - - var $watchers = this.$container.parents().filter(Utils.hasScroll); - $watchers.each(function () { - $(this).data('select2-scroll-position', { - x: $(this).scrollLeft(), - y: $(this).scrollTop() - }); - }); - - $watchers.on(scrollEvent, function (ev) { - var position = $(this).data('select2-scroll-position'); - $(this).scrollTop(position.y); - }); - - $(window).on(scrollEvent + ' ' + resizeEvent + ' ' + orientationEvent, - function (e) { - self._positionDropdown(); - self._resizeDropdown(); - }); - }; - - AttachBody.prototype._detachPositioningHandler = - function (decorated, container) { - var scrollEvent = 'scroll.select2.' + container.id; - var resizeEvent = 'resize.select2.' + container.id; - var orientationEvent = 'orientationchange.select2.' + container.id; - - var $watchers = this.$container.parents().filter(Utils.hasScroll); - $watchers.off(scrollEvent); - - $(window).off(scrollEvent + ' ' + resizeEvent + ' ' + orientationEvent); - }; - - AttachBody.prototype._positionDropdown = function () { - var $window = $(window); - - var isCurrentlyAbove = this.$dropdown.hasClass('select2-dropdown--above'); - var isCurrentlyBelow = this.$dropdown.hasClass('select2-dropdown--below'); - - var newDirection = null; - - var offset = this.$container.offset(); - - offset.bottom = offset.top + this.$container.outerHeight(false); - - var container = { - height: this.$container.outerHeight(false) - }; - - container.top = offset.top; - container.bottom = offset.top + container.height; - - var dropdown = { - height: this.$dropdown.outerHeight(false) - }; - - var viewport = { - top: $window.scrollTop(), - bottom: $window.scrollTop() + $window.height() - }; - - var enoughRoomAbove = viewport.top < (offset.top - dropdown.height); - var enoughRoomBelow = viewport.bottom > (offset.bottom + dropdown.height); - - var css = { - left: offset.left, - top: container.bottom - }; - - // Determine what the parent element is to use for calciulating the offset - var $offsetParent = this.$dropdownParent; - - // For statically positoned elements, we need to get the element - // that is determining the offset - if ($offsetParent.css('position') === 'static') { - $offsetParent = $offsetParent.offsetParent(); - } - - var parentOffset = $offsetParent.offset(); - - css.top -= parentOffset.top; - css.left -= parentOffset.left; - - if (!isCurrentlyAbove && !isCurrentlyBelow) { - newDirection = 'below'; - } - - if (!enoughRoomBelow && enoughRoomAbove && !isCurrentlyAbove) { - newDirection = 'above'; - } else if (!enoughRoomAbove && enoughRoomBelow && isCurrentlyAbove) { - newDirection = 'below'; - } - - if (newDirection == 'above' || - (isCurrentlyAbove && newDirection !== 'below')) { - css.top = container.top - parentOffset.top - dropdown.height; - } - - if (newDirection != null) { - this.$dropdown - .removeClass('select2-dropdown--below select2-dropdown--above') - .addClass('select2-dropdown--' + newDirection); - this.$container - .removeClass('select2-container--below select2-container--above') - .addClass('select2-container--' + newDirection); - } - - this.$dropdownContainer.css(css); - }; - - AttachBody.prototype._resizeDropdown = function () { - var css = { - width: this.$container.outerWidth(false) + 'px' - }; - - if (this.options.get('dropdownAutoWidth')) { - css.minWidth = css.width; - css.position = 'relative'; - css.width = 'auto'; - } - - this.$dropdown.css(css); - }; - - AttachBody.prototype._showDropdown = function (decorated) { - this.$dropdownContainer.appendTo(this.$dropdownParent); - - this._positionDropdown(); - this._resizeDropdown(); - }; - - return AttachBody; -}); - -S2.define('select2/dropdown/minimumResultsForSearch',[ - -], function () { - function countResults (data) { - var count = 0; - - for (var d = 0; d < data.length; d++) { - var item = data[d]; - - if (item.children) { - count += countResults(item.children); - } else { - count++; - } - } - - return count; - } - - function MinimumResultsForSearch (decorated, $element, options, dataAdapter) { - this.minimumResultsForSearch = options.get('minimumResultsForSearch'); - - if (this.minimumResultsForSearch < 0) { - this.minimumResultsForSearch = Infinity; - } - - decorated.call(this, $element, options, dataAdapter); - } - - MinimumResultsForSearch.prototype.showSearch = function (decorated, params) { - if (countResults(params.data.results) < this.minimumResultsForSearch) { - return false; - } - - return decorated.call(this, params); - }; - - return MinimumResultsForSearch; -}); - -S2.define('select2/dropdown/selectOnClose',[ - -], function () { - function SelectOnClose () { } - - SelectOnClose.prototype.bind = function (decorated, container, $container) { - var self = this; - - decorated.call(this, container, $container); - - container.on('close', function (params) { - self._handleSelectOnClose(params); - }); - }; - - SelectOnClose.prototype._handleSelectOnClose = function (_, params) { - if (params && params.originalSelect2Event != null) { - var event = params.originalSelect2Event; - - // Don't select an item if the close event was triggered from a select or - // unselect event - if (event._type === 'select' || event._type === 'unselect') { - return; - } - } - - var $highlightedResults = this.getHighlightedResults(); - - // Only select highlighted results - if ($highlightedResults.length < 1) { - return; - } - - var data = $highlightedResults.data('data'); - - // Don't re-select already selected resulte - if ( - (data.element != null && data.element.selected) || - (data.element == null && data.selected) - ) { - return; - } - - this.trigger('select', { - data: data - }); - }; - - return SelectOnClose; -}); - -S2.define('select2/dropdown/closeOnSelect',[ - -], function () { - function CloseOnSelect () { } - - CloseOnSelect.prototype.bind = function (decorated, container, $container) { - var self = this; - - decorated.call(this, container, $container); - - container.on('select', function (evt) { - self._selectTriggered(evt); - }); - - container.on('unselect', function (evt) { - self._selectTriggered(evt); - }); - }; - - CloseOnSelect.prototype._selectTriggered = function (_, evt) { - var originalEvent = evt.originalEvent; - - // Don't close if the control key is being held - if (originalEvent && originalEvent.ctrlKey) { - return; - } - - this.trigger('close', { - originalEvent: originalEvent, - originalSelect2Event: evt - }); - }; - - return CloseOnSelect; -}); - -S2.define('select2/i18n/en',[],function () { - // English - return { - errorLoading: function () { - return 'The results could not be loaded.'; - }, - inputTooLong: function (args) { - var overChars = args.input.length - args.maximum; - - var message = 'Please delete ' + overChars + ' character'; - - if (overChars != 1) { - message += 's'; - } - - return message; - }, - inputTooShort: function (args) { - var remainingChars = args.minimum - args.input.length; - - var message = 'Please enter ' + remainingChars + ' or more characters'; - - return message; - }, - loadingMore: function () { - return 'Loading more results…'; - }, - maximumSelected: function (args) { - var message = 'You can only select ' + args.maximum + ' item'; - - if (args.maximum != 1) { - message += 's'; - } - - return message; - }, - noResults: function () { - return 'No results found'; - }, - searching: function () { - return 'Searching…'; - } - }; -}); - -S2.define('select2/defaults',[ - 'jquery', - 'require', - - './results', - - './selection/single', - './selection/multiple', - './selection/placeholder', - './selection/allowClear', - './selection/search', - './selection/eventRelay', - - './utils', - './translation', - './diacritics', - - './data/select', - './data/array', - './data/ajax', - './data/tags', - './data/tokenizer', - './data/minimumInputLength', - './data/maximumInputLength', - './data/maximumSelectionLength', - - './dropdown', - './dropdown/search', - './dropdown/hidePlaceholder', - './dropdown/infiniteScroll', - './dropdown/attachBody', - './dropdown/minimumResultsForSearch', - './dropdown/selectOnClose', - './dropdown/closeOnSelect', - - './i18n/en' -], function ($, require, - - ResultsList, - - SingleSelection, MultipleSelection, Placeholder, AllowClear, - SelectionSearch, EventRelay, - - Utils, Translation, DIACRITICS, - - SelectData, ArrayData, AjaxData, Tags, Tokenizer, - MinimumInputLength, MaximumInputLength, MaximumSelectionLength, - - Dropdown, DropdownSearch, HidePlaceholder, InfiniteScroll, - AttachBody, MinimumResultsForSearch, SelectOnClose, CloseOnSelect, - - EnglishTranslation) { - function Defaults () { - this.reset(); - } - - Defaults.prototype.apply = function (options) { - options = $.extend(true, {}, this.defaults, options); - - if (options.dataAdapter == null) { - if (options.ajax != null) { - options.dataAdapter = AjaxData; - } else if (options.data != null) { - options.dataAdapter = ArrayData; - } else { - options.dataAdapter = SelectData; - } - - if (options.minimumInputLength > 0) { - options.dataAdapter = Utils.Decorate( - options.dataAdapter, - MinimumInputLength - ); - } - - if (options.maximumInputLength > 0) { - options.dataAdapter = Utils.Decorate( - options.dataAdapter, - MaximumInputLength - ); - } - - if (options.maximumSelectionLength > 0) { - options.dataAdapter = Utils.Decorate( - options.dataAdapter, - MaximumSelectionLength - ); - } - - if (options.tags) { - options.dataAdapter = Utils.Decorate(options.dataAdapter, Tags); - } - - if (options.tokenSeparators != null || options.tokenizer != null) { - options.dataAdapter = Utils.Decorate( - options.dataAdapter, - Tokenizer - ); - } - - if (options.query != null) { - var Query = require(options.amdBase + 'compat/query'); - - options.dataAdapter = Utils.Decorate( - options.dataAdapter, - Query - ); - } - - if (options.initSelection != null) { - var InitSelection = require(options.amdBase + 'compat/initSelection'); - - options.dataAdapter = Utils.Decorate( - options.dataAdapter, - InitSelection - ); - } - } - - if (options.resultsAdapter == null) { - options.resultsAdapter = ResultsList; - - if (options.ajax != null) { - options.resultsAdapter = Utils.Decorate( - options.resultsAdapter, - InfiniteScroll - ); - } - - if (options.placeholder != null) { - options.resultsAdapter = Utils.Decorate( - options.resultsAdapter, - HidePlaceholder - ); - } - - if (options.selectOnClose) { - options.resultsAdapter = Utils.Decorate( - options.resultsAdapter, - SelectOnClose - ); - } - } - - if (options.dropdownAdapter == null) { - if (options.multiple) { - options.dropdownAdapter = Dropdown; - } else { - var SearchableDropdown = Utils.Decorate(Dropdown, DropdownSearch); - - options.dropdownAdapter = SearchableDropdown; - } - - if (options.minimumResultsForSearch !== 0) { - options.dropdownAdapter = Utils.Decorate( - options.dropdownAdapter, - MinimumResultsForSearch - ); - } - - if (options.closeOnSelect) { - options.dropdownAdapter = Utils.Decorate( - options.dropdownAdapter, - CloseOnSelect - ); - } - - if ( - options.dropdownCssClass != null || - options.dropdownCss != null || - options.adaptDropdownCssClass != null - ) { - var DropdownCSS = require(options.amdBase + 'compat/dropdownCss'); - - options.dropdownAdapter = Utils.Decorate( - options.dropdownAdapter, - DropdownCSS - ); - } - - options.dropdownAdapter = Utils.Decorate( - options.dropdownAdapter, - AttachBody - ); - } - - if (options.selectionAdapter == null) { - if (options.multiple) { - options.selectionAdapter = MultipleSelection; - } else { - options.selectionAdapter = SingleSelection; - } - - // Add the placeholder mixin if a placeholder was specified - if (options.placeholder != null) { - options.selectionAdapter = Utils.Decorate( - options.selectionAdapter, - Placeholder - ); - } - - if (options.allowClear) { - options.selectionAdapter = Utils.Decorate( - options.selectionAdapter, - AllowClear - ); - } - - if (options.multiple) { - options.selectionAdapter = Utils.Decorate( - options.selectionAdapter, - SelectionSearch - ); - } - - if ( - options.containerCssClass != null || - options.containerCss != null || - options.adaptContainerCssClass != null - ) { - var ContainerCSS = require(options.amdBase + 'compat/containerCss'); - - options.selectionAdapter = Utils.Decorate( - options.selectionAdapter, - ContainerCSS - ); - } - - options.selectionAdapter = Utils.Decorate( - options.selectionAdapter, - EventRelay - ); - } - - if (typeof options.language === 'string') { - // Check if the language is specified with a region - if (options.language.indexOf('-') > 0) { - // Extract the region information if it is included - var languageParts = options.language.split('-'); - var baseLanguage = languageParts[0]; - - options.language = [options.language, baseLanguage]; - } else { - options.language = [options.language]; - } - } - - if ($.isArray(options.language)) { - var languages = new Translation(); - options.language.push('en'); - - var languageNames = options.language; - - for (var l = 0; l < languageNames.length; l++) { - var name = languageNames[l]; - var language = {}; - - try { - // Try to load it with the original name - language = Translation.loadPath(name); - } catch (e) { - try { - // If we couldn't load it, check if it wasn't the full path - name = this.defaults.amdLanguageBase + name; - language = Translation.loadPath(name); - } catch (ex) { - // The translation could not be loaded at all. Sometimes this is - // because of a configuration problem, other times this can be - // because of how Select2 helps load all possible translation files. - if (options.debug && window.console && console.warn) { - console.warn( - 'Select2: The language file for "' + name + '" could not be ' + - 'automatically loaded. A fallback will be used instead.' - ); - } - - continue; - } - } - - languages.extend(language); - } - - options.translations = languages; - } else { - var baseTranslation = Translation.loadPath( - this.defaults.amdLanguageBase + 'en' - ); - var customTranslation = new Translation(options.language); - - customTranslation.extend(baseTranslation); - - options.translations = customTranslation; - } - - return options; - }; - - Defaults.prototype.reset = function () { - function stripDiacritics (text) { - // Used 'uni range + named function' from http://jsperf.com/diacritics/18 - function match(a) { - return DIACRITICS[a] || a; - } - - return text.replace(/[^\u0000-\u007E]/g, match); - } - - function matcher (params, data) { - // Always return the object if there is nothing to compare - if ($.trim(params.term) === '') { - return data; - } - - // Do a recursive check for options with children - if (data.children && data.children.length > 0) { - // Clone the data object if there are children - // This is required as we modify the object to remove any non-matches - var match = $.extend(true, {}, data); - - // Check each child of the option - for (var c = data.children.length - 1; c >= 0; c--) { - var child = data.children[c]; - - var matches = matcher(params, child); - - // If there wasn't a match, remove the object in the array - if (matches == null) { - match.children.splice(c, 1); - } - } - - // If any children matched, return the new object - if (match.children.length > 0) { - return match; - } - - // If there were no matching children, check just the plain object - return matcher(params, match); - } - - var original = stripDiacritics(data.text).toUpperCase(); - var term = stripDiacritics(params.term).toUpperCase(); - - // Check if the text contains the term - if (original.indexOf(term) > -1) { - return data; - } - - // If it doesn't contain the term, don't return anything - return null; - } - - this.defaults = { - amdBase: './', - amdLanguageBase: './i18n/', - closeOnSelect: true, - debug: false, - dropdownAutoWidth: false, - escapeMarkup: Utils.escapeMarkup, - language: EnglishTranslation, - matcher: matcher, - minimumInputLength: 0, - maximumInputLength: 0, - maximumSelectionLength: 0, - minimumResultsForSearch: 0, - selectOnClose: false, - sorter: function (data) { - return data; - }, - templateResult: function (result) { - return result.text; - }, - templateSelection: function (selection) { - return selection.text; - }, - theme: 'default', - width: 'resolve' - }; - }; - - Defaults.prototype.set = function (key, value) { - var camelKey = $.camelCase(key); - - var data = {}; - data[camelKey] = value; - - var convertedData = Utils._convertData(data); - - $.extend(this.defaults, convertedData); - }; - - var defaults = new Defaults(); - - return defaults; -}); - -S2.define('select2/options',[ - 'require', - 'jquery', - './defaults', - './utils' -], function (require, $, Defaults, Utils) { - function Options (options, $element) { - this.options = options; - - if ($element != null) { - this.fromElement($element); - } - - this.options = Defaults.apply(this.options); - - if ($element && $element.is('input')) { - var InputCompat = require(this.get('amdBase') + 'compat/inputData'); - - this.options.dataAdapter = Utils.Decorate( - this.options.dataAdapter, - InputCompat - ); - } - } - - Options.prototype.fromElement = function ($e) { - var excludedData = ['select2']; - - if (this.options.multiple == null) { - this.options.multiple = $e.prop('multiple'); - } - - if (this.options.disabled == null) { - this.options.disabled = $e.prop('disabled'); - } - - if (this.options.language == null) { - if ($e.prop('lang')) { - this.options.language = $e.prop('lang').toLowerCase(); - } else if ($e.closest('[lang]').prop('lang')) { - this.options.language = $e.closest('[lang]').prop('lang'); - } - } - - if (this.options.dir == null) { - if ($e.prop('dir')) { - this.options.dir = $e.prop('dir'); - } else if ($e.closest('[dir]').prop('dir')) { - this.options.dir = $e.closest('[dir]').prop('dir'); - } else { - this.options.dir = 'ltr'; - } - } - - $e.prop('disabled', this.options.disabled); - $e.prop('multiple', this.options.multiple); - - if ($e.data('select2Tags')) { - if (this.options.debug && window.console && console.warn) { - console.warn( - 'Select2: The `data-select2-tags` attribute has been changed to ' + - 'use the `data-data` and `data-tags="true"` attributes and will be ' + - 'removed in future versions of Select2.' - ); - } - - $e.data('data', $e.data('select2Tags')); - $e.data('tags', true); - } - - if ($e.data('ajaxUrl')) { - if (this.options.debug && window.console && console.warn) { - console.warn( - 'Select2: The `data-ajax-url` attribute has been changed to ' + - '`data-ajax--url` and support for the old attribute will be removed' + - ' in future versions of Select2.' - ); - } - - $e.attr('ajax--url', $e.data('ajaxUrl')); - $e.data('ajax--url', $e.data('ajaxUrl')); - } - - var dataset = {}; - - // Prefer the element's `dataset` attribute if it exists - // jQuery 1.x does not correctly handle data attributes with multiple dashes - if ($.fn.jquery && $.fn.jquery.substr(0, 2) == '1.' && $e[0].dataset) { - dataset = $.extend(true, {}, $e[0].dataset, $e.data()); - } else { - dataset = $e.data(); - } - - var data = $.extend(true, {}, dataset); - - data = Utils._convertData(data); - - for (var key in data) { - if ($.inArray(key, excludedData) > -1) { - continue; - } - - if ($.isPlainObject(this.options[key])) { - $.extend(this.options[key], data[key]); - } else { - this.options[key] = data[key]; - } - } - - return this; - }; - - Options.prototype.get = function (key) { - return this.options[key]; - }; - - Options.prototype.set = function (key, val) { - this.options[key] = val; - }; - - return Options; -}); - -S2.define('select2/core',[ - 'jquery', - './options', - './utils', - './keys' -], function ($, Options, Utils, KEYS) { - var Select2 = function ($element, options) { - if ($element.data('select2') != null) { - $element.data('select2').destroy(); - } - - this.$element = $element; - - this.id = this._generateId($element); - - options = options || {}; - - this.options = new Options(options, $element); - - Select2.__super__.constructor.call(this); - - // Set up the tabindex - - var tabindex = $element.attr('tabindex') || 0; - $element.data('old-tabindex', tabindex); - $element.attr('tabindex', '-1'); - - // Set up containers and adapters - - var DataAdapter = this.options.get('dataAdapter'); - this.dataAdapter = new DataAdapter($element, this.options); - - var $container = this.render(); - - this._placeContainer($container); - - var SelectionAdapter = this.options.get('selectionAdapter'); - this.selection = new SelectionAdapter($element, this.options); - this.$selection = this.selection.render(); - - this.selection.position(this.$selection, $container); - - var DropdownAdapter = this.options.get('dropdownAdapter'); - this.dropdown = new DropdownAdapter($element, this.options); - this.$dropdown = this.dropdown.render(); - - this.dropdown.position(this.$dropdown, $container); - - var ResultsAdapter = this.options.get('resultsAdapter'); - this.results = new ResultsAdapter($element, this.options, this.dataAdapter); - this.$results = this.results.render(); - - this.results.position(this.$results, this.$dropdown); - - // Bind events - - var self = this; - - // Bind the container to all of the adapters - this._bindAdapters(); - - // Register any DOM event handlers - this._registerDomEvents(); - - // Register any internal event handlers - this._registerDataEvents(); - this._registerSelectionEvents(); - this._registerDropdownEvents(); - this._registerResultsEvents(); - this._registerEvents(); - - // Set the initial state - this.dataAdapter.current(function (initialData) { - self.trigger('selection:update', { - data: initialData - }); - }); - - // Hide the original select - $element.addClass('select2-hidden-accessible'); - $element.attr('aria-hidden', 'true'); - - // Synchronize any monitored attributes - this._syncAttributes(); - - $element.data('select2', this); - }; - - Utils.Extend(Select2, Utils.Observable); - - Select2.prototype._generateId = function ($element) { - var id = ''; - - if ($element.attr('id') != null) { - id = $element.attr('id'); - } else if ($element.attr('name') != null) { - id = $element.attr('name') + '-' + Utils.generateChars(2); - } else { - id = Utils.generateChars(4); - } - - id = id.replace(/(:|\.|\[|\]|,)/g, ''); - id = 'select2-' + id; - - return id; - }; - - Select2.prototype._placeContainer = function ($container) { - $container.insertAfter(this.$element); - - var width = this._resolveWidth(this.$element, this.options.get('width')); - - if (width != null) { - $container.css('width', width); - } - }; - - Select2.prototype._resolveWidth = function ($element, method) { - var WIDTH = /^width:(([-+]?([0-9]*\.)?[0-9]+)(px|em|ex|%|in|cm|mm|pt|pc))/i; - - if (method == 'resolve') { - var styleWidth = this._resolveWidth($element, 'style'); - - if (styleWidth != null) { - return styleWidth; - } - - return this._resolveWidth($element, 'element'); - } - - if (method == 'element') { - var elementWidth = $element.outerWidth(false); - - if (elementWidth <= 0) { - return 'auto'; - } - - return elementWidth + 'px'; - } - - if (method == 'style') { - var style = $element.attr('style'); - - if (typeof(style) !== 'string') { - return null; - } - - var attrs = style.split(';'); - - for (var i = 0, l = attrs.length; i < l; i = i + 1) { - var attr = attrs[i].replace(/\s/g, ''); - var matches = attr.match(WIDTH); - - if (matches !== null && matches.length >= 1) { - return matches[1]; - } - } - - return null; - } - - return method; - }; - - Select2.prototype._bindAdapters = function () { - this.dataAdapter.bind(this, this.$container); - this.selection.bind(this, this.$container); - - this.dropdown.bind(this, this.$container); - this.results.bind(this, this.$container); - }; - - Select2.prototype._registerDomEvents = function () { - var self = this; - - this.$element.on('change.select2', function () { - self.dataAdapter.current(function (data) { - self.trigger('selection:update', { - data: data - }); - }); - }); - - this.$element.on('focus.select2', function (evt) { - self.trigger('focus', evt); - }); - - this._syncA = Utils.bind(this._syncAttributes, this); - this._syncS = Utils.bind(this._syncSubtree, this); - - if (this.$element[0].attachEvent) { - this.$element[0].attachEvent('onpropertychange', this._syncA); - } - - var observer = window.MutationObserver || - window.WebKitMutationObserver || - window.MozMutationObserver - ; - - if (observer != null) { - this._observer = new observer(function (mutations) { - $.each(mutations, self._syncA); - $.each(mutations, self._syncS); - }); - this._observer.observe(this.$element[0], { - attributes: true, - childList: true, - subtree: false - }); - } else if (this.$element[0].addEventListener) { - this.$element[0].addEventListener( - 'DOMAttrModified', - self._syncA, - false - ); - this.$element[0].addEventListener( - 'DOMNodeInserted', - self._syncS, - false - ); - this.$element[0].addEventListener( - 'DOMNodeRemoved', - self._syncS, - false - ); - } - }; - - Select2.prototype._registerDataEvents = function () { - var self = this; - - this.dataAdapter.on('*', function (name, params) { - self.trigger(name, params); - }); - }; - - Select2.prototype._registerSelectionEvents = function () { - var self = this; - var nonRelayEvents = ['toggle', 'focus']; - - this.selection.on('toggle', function () { - self.toggleDropdown(); - }); - - this.selection.on('focus', function (params) { - self.focus(params); - }); - - this.selection.on('*', function (name, params) { - if ($.inArray(name, nonRelayEvents) !== -1) { - return; - } - - self.trigger(name, params); - }); - }; - - Select2.prototype._registerDropdownEvents = function () { - var self = this; - - this.dropdown.on('*', function (name, params) { - self.trigger(name, params); - }); - }; - - Select2.prototype._registerResultsEvents = function () { - var self = this; - - this.results.on('*', function (name, params) { - self.trigger(name, params); - }); - }; - - Select2.prototype._registerEvents = function () { - var self = this; - - this.on('open', function () { - self.$container.addClass('select2-container--open'); - }); - - this.on('close', function () { - self.$container.removeClass('select2-container--open'); - }); - - this.on('enable', function () { - self.$container.removeClass('select2-container--disabled'); - }); - - this.on('disable', function () { - self.$container.addClass('select2-container--disabled'); - }); - - this.on('blur', function () { - self.$container.removeClass('select2-container--focus'); - }); - - this.on('query', function (params) { - if (!self.isOpen()) { - self.trigger('open', {}); - } - - this.dataAdapter.query(params, function (data) { - self.trigger('results:all', { - data: data, - query: params - }); - }); - }); - - this.on('query:append', function (params) { - this.dataAdapter.query(params, function (data) { - self.trigger('results:append', { - data: data, - query: params - }); - }); - }); - - this.on('keypress', function (evt) { - var key = evt.which; - - if (self.isOpen()) { - if (key === KEYS.ESC || key === KEYS.TAB || - (key === KEYS.UP && evt.altKey)) { - self.close(); - - evt.preventDefault(); - } else if (key === KEYS.ENTER) { - self.trigger('results:select', {}); - - evt.preventDefault(); - } else if ((key === KEYS.SPACE && evt.ctrlKey)) { - self.trigger('results:toggle', {}); - - evt.preventDefault(); - } else if (key === KEYS.UP) { - self.trigger('results:previous', {}); - - evt.preventDefault(); - } else if (key === KEYS.DOWN) { - self.trigger('results:next', {}); - - evt.preventDefault(); - } - } else { - if (key === KEYS.ENTER || key === KEYS.SPACE || - (key === KEYS.DOWN && evt.altKey)) { - self.open(); - - evt.preventDefault(); - } - } - }); - }; - - Select2.prototype._syncAttributes = function () { - this.options.set('disabled', this.$element.prop('disabled')); - - if (this.options.get('disabled')) { - if (this.isOpen()) { - this.close(); - } - - this.trigger('disable', {}); - } else { - this.trigger('enable', {}); - } - }; - - Select2.prototype._syncSubtree = function (evt, mutations) { - var changed = false; - var self = this; - - // Ignore any mutation events raised for elements that aren't options or - // optgroups. This handles the case when the select element is destroyed - if ( - evt && evt.target && ( - evt.target.nodeName !== 'OPTION' && evt.target.nodeName !== 'OPTGROUP' - ) - ) { - return; - } - - if (!mutations) { - // If mutation events aren't supported, then we can only assume that the - // change affected the selections - changed = true; - } else if (mutations.addedNodes && mutations.addedNodes.length > 0) { - for (var n = 0; n < mutations.addedNodes.length; n++) { - var node = mutations.addedNodes[n]; - - if (node.selected) { - changed = true; - } - } - } else if (mutations.removedNodes && mutations.removedNodes.length > 0) { - changed = true; - } - - // Only re-pull the data if we think there is a change - if (changed) { - this.dataAdapter.current(function (currentData) { - self.trigger('selection:update', { - data: currentData - }); - }); - } - }; - - /** - * Override the trigger method to automatically trigger pre-events when - * there are events that can be prevented. - */ - Select2.prototype.trigger = function (name, args) { - var actualTrigger = Select2.__super__.trigger; - var preTriggerMap = { - 'open': 'opening', - 'close': 'closing', - 'select': 'selecting', - 'unselect': 'unselecting' - }; - - if (args === undefined) { - args = {}; - } - - if (name in preTriggerMap) { - var preTriggerName = preTriggerMap[name]; - var preTriggerArgs = { - prevented: false, - name: name, - args: args - }; - - actualTrigger.call(this, preTriggerName, preTriggerArgs); - - if (preTriggerArgs.prevented) { - args.prevented = true; - - return; - } - } - - actualTrigger.call(this, name, args); - }; - - Select2.prototype.toggleDropdown = function () { - if (this.options.get('disabled')) { - return; - } - - if (this.isOpen()) { - this.close(); - } else { - this.open(); - } - }; - - Select2.prototype.open = function () { - if (this.isOpen()) { - return; - } - - this.trigger('query', {}); - }; - - Select2.prototype.close = function () { - if (!this.isOpen()) { - return; - } - - this.trigger('close', {}); - }; - - Select2.prototype.isOpen = function () { - return this.$container.hasClass('select2-container--open'); - }; - - Select2.prototype.hasFocus = function () { - return this.$container.hasClass('select2-container--focus'); - }; - - Select2.prototype.focus = function (data) { - // No need to re-trigger focus events if we are already focused - if (this.hasFocus()) { - return; - } - - this.$container.addClass('select2-container--focus'); - this.trigger('focus', {}); - }; - - Select2.prototype.enable = function (args) { - if (this.options.get('debug') && window.console && console.warn) { - console.warn( - 'Select2: The `select2("enable")` method has been deprecated and will' + - ' be removed in later Select2 versions. Use $element.prop("disabled")' + - ' instead.' - ); - } - - if (args == null || args.length === 0) { - args = [true]; - } - - var disabled = !args[0]; - - this.$element.prop('disabled', disabled); - }; - - Select2.prototype.data = function () { - if (this.options.get('debug') && - arguments.length > 0 && window.console && console.warn) { - console.warn( - 'Select2: Data can no longer be set using `select2("data")`. You ' + - 'should consider setting the value instead using `$element.val()`.' - ); - } - - var data = []; - - this.dataAdapter.current(function (currentData) { - data = currentData; - }); - - return data; - }; - - Select2.prototype.val = function (args) { - if (this.options.get('debug') && window.console && console.warn) { - console.warn( - 'Select2: The `select2("val")` method has been deprecated and will be' + - ' removed in later Select2 versions. Use $element.val() instead.' - ); - } - - if (args == null || args.length === 0) { - return this.$element.val(); - } - - var newVal = args[0]; - - if ($.isArray(newVal)) { - newVal = $.map(newVal, function (obj) { - return obj.toString(); - }); - } - - this.$element.val(newVal).trigger('change'); - }; - - Select2.prototype.destroy = function () { - this.$container.remove(); - - if (this.$element[0].detachEvent) { - this.$element[0].detachEvent('onpropertychange', this._syncA); - } - - if (this._observer != null) { - this._observer.disconnect(); - this._observer = null; - } else if (this.$element[0].removeEventListener) { - this.$element[0] - .removeEventListener('DOMAttrModified', this._syncA, false); - this.$element[0] - .removeEventListener('DOMNodeInserted', this._syncS, false); - this.$element[0] - .removeEventListener('DOMNodeRemoved', this._syncS, false); - } - - this._syncA = null; - this._syncS = null; - - this.$element.off('.select2'); - this.$element.attr('tabindex', this.$element.data('old-tabindex')); - - this.$element.removeClass('select2-hidden-accessible'); - this.$element.attr('aria-hidden', 'false'); - this.$element.removeData('select2'); - - this.dataAdapter.destroy(); - this.selection.destroy(); - this.dropdown.destroy(); - this.results.destroy(); - - this.dataAdapter = null; - this.selection = null; - this.dropdown = null; - this.results = null; - }; - - Select2.prototype.render = function () { - var $container = $( - '<span class="select2 select2-container">' + - '<span class="selection"></span>' + - '<span class="dropdown-wrapper" aria-hidden="true"></span>' + - '</span>' - ); - - $container.attr('dir', this.options.get('dir')); - - this.$container = $container; - - this.$container.addClass('select2-container--' + this.options.get('theme')); - - $container.data('element', this.$element); - - return $container; - }; - - return Select2; -}); - -S2.define('select2/compat/utils',[ - 'jquery' -], function ($) { - function syncCssClasses ($dest, $src, adapter) { - var classes, replacements = [], adapted; - - classes = $.trim($dest.attr('class')); - - if (classes) { - classes = '' + classes; // for IE which returns object - - $(classes.split(/\s+/)).each(function () { - // Save all Select2 classes - if (this.indexOf('select2-') === 0) { - replacements.push(this); - } - }); - } - - classes = $.trim($src.attr('class')); - - if (classes) { - classes = '' + classes; // for IE which returns object - - $(classes.split(/\s+/)).each(function () { - // Only adapt non-Select2 classes - if (this.indexOf('select2-') !== 0) { - adapted = adapter(this); - - if (adapted != null) { - replacements.push(adapted); - } - } - }); - } - - $dest.attr('class', replacements.join(' ')); - } - - return { - syncCssClasses: syncCssClasses - }; -}); - -S2.define('select2/compat/containerCss',[ - 'jquery', - './utils' -], function ($, CompatUtils) { - // No-op CSS adapter that discards all classes by default - function _containerAdapter (clazz) { - return null; - } - - function ContainerCSS () { } - - ContainerCSS.prototype.render = function (decorated) { - var $container = decorated.call(this); - - var containerCssClass = this.options.get('containerCssClass') || ''; - - if ($.isFunction(containerCssClass)) { - containerCssClass = containerCssClass(this.$element); - } - - var containerCssAdapter = this.options.get('adaptContainerCssClass'); - containerCssAdapter = containerCssAdapter || _containerAdapter; - - if (containerCssClass.indexOf(':all:') !== -1) { - containerCssClass = containerCssClass.replace(':all:', ''); - - var _cssAdapter = containerCssAdapter; - - containerCssAdapter = function (clazz) { - var adapted = _cssAdapter(clazz); - - if (adapted != null) { - // Append the old one along with the adapted one - return adapted + ' ' + clazz; - } - - return clazz; - }; - } - - var containerCss = this.options.get('containerCss') || {}; - - if ($.isFunction(containerCss)) { - containerCss = containerCss(this.$element); - } - - CompatUtils.syncCssClasses($container, this.$element, containerCssAdapter); - - $container.css(containerCss); - $container.addClass(containerCssClass); - - return $container; - }; - - return ContainerCSS; -}); - -S2.define('select2/compat/dropdownCss',[ - 'jquery', - './utils' -], function ($, CompatUtils) { - // No-op CSS adapter that discards all classes by default - function _dropdownAdapter (clazz) { - return null; - } - - function DropdownCSS () { } - - DropdownCSS.prototype.render = function (decorated) { - var $dropdown = decorated.call(this); - - var dropdownCssClass = this.options.get('dropdownCssClass') || ''; - - if ($.isFunction(dropdownCssClass)) { - dropdownCssClass = dropdownCssClass(this.$element); - } - - var dropdownCssAdapter = this.options.get('adaptDropdownCssClass'); - dropdownCssAdapter = dropdownCssAdapter || _dropdownAdapter; - - if (dropdownCssClass.indexOf(':all:') !== -1) { - dropdownCssClass = dropdownCssClass.replace(':all:', ''); - - var _cssAdapter = dropdownCssAdapter; - - dropdownCssAdapter = function (clazz) { - var adapted = _cssAdapter(clazz); - - if (adapted != null) { - // Append the old one along with the adapted one - return adapted + ' ' + clazz; - } - - return clazz; - }; - } - - var dropdownCss = this.options.get('dropdownCss') || {}; - - if ($.isFunction(dropdownCss)) { - dropdownCss = dropdownCss(this.$element); - } - - CompatUtils.syncCssClasses($dropdown, this.$element, dropdownCssAdapter); - - $dropdown.css(dropdownCss); - $dropdown.addClass(dropdownCssClass); - - return $dropdown; - }; - - return DropdownCSS; -}); - -S2.define('select2/compat/initSelection',[ - 'jquery' -], function ($) { - function InitSelection (decorated, $element, options) { - if (options.get('debug') && window.console && console.warn) { - console.warn( - 'Select2: The `initSelection` option has been deprecated in favor' + - ' of a custom data adapter that overrides the `current` method. ' + - 'This method is now called multiple times instead of a single ' + - 'time when the instance is initialized. Support will be removed ' + - 'for the `initSelection` option in future versions of Select2' - ); - } - - this.initSelection = options.get('initSelection'); - this._isInitialized = false; - - decorated.call(this, $element, options); - } - - InitSelection.prototype.current = function (decorated, callback) { - var self = this; - - if (this._isInitialized) { - decorated.call(this, callback); - - return; - } - - this.initSelection.call(null, this.$element, function (data) { - self._isInitialized = true; - - if (!$.isArray(data)) { - data = [data]; - } - - callback(data); - }); - }; - - return InitSelection; -}); - -S2.define('select2/compat/inputData',[ - 'jquery' -], function ($) { - function InputData (decorated, $element, options) { - this._currentData = []; - this._valueSeparator = options.get('valueSeparator') || ','; - - if ($element.prop('type') === 'hidden') { - if (options.get('debug') && console && console.warn) { - console.warn( - 'Select2: Using a hidden input with Select2 is no longer ' + - 'supported and may stop working in the future. It is recommended ' + - 'to use a `<select>` element instead.' - ); - } - } - - decorated.call(this, $element, options); - } - - InputData.prototype.current = function (_, callback) { - function getSelected (data, selectedIds) { - var selected = []; - - if (data.selected || $.inArray(data.id, selectedIds) !== -1) { - data.selected = true; - selected.push(data); - } else { - data.selected = false; - } - - if (data.children) { - selected.push.apply(selected, getSelected(data.children, selectedIds)); - } - - return selected; - } - - var selected = []; - - for (var d = 0; d < this._currentData.length; d++) { - var data = this._currentData[d]; - - selected.push.apply( - selected, - getSelected( - data, - this.$element.val().split( - this._valueSeparator - ) - ) - ); - } - - callback(selected); - }; - - InputData.prototype.select = function (_, data) { - if (!this.options.get('multiple')) { - this.current(function (allData) { - $.map(allData, function (data) { - data.selected = false; - }); - }); - - this.$element.val(data.id); - this.$element.trigger('change'); - } else { - var value = this.$element.val(); - value += this._valueSeparator + data.id; - - this.$element.val(value); - this.$element.trigger('change'); - } - }; - - InputData.prototype.unselect = function (_, data) { - var self = this; - - data.selected = false; - - this.current(function (allData) { - var values = []; - - for (var d = 0; d < allData.length; d++) { - var item = allData[d]; - - if (data.id == item.id) { - continue; - } - - values.push(item.id); - } - - self.$element.val(values.join(self._valueSeparator)); - self.$element.trigger('change'); - }); - }; - - InputData.prototype.query = function (_, params, callback) { - var results = []; - - for (var d = 0; d < this._currentData.length; d++) { - var data = this._currentData[d]; - - var matches = this.matches(params, data); - - if (matches !== null) { - results.push(matches); - } - } - - callback({ - results: results - }); - }; - - InputData.prototype.addOptions = function (_, $options) { - var options = $.map($options, function ($option) { - return $.data($option[0], 'data'); - }); - - this._currentData.push.apply(this._currentData, options); - }; - - return InputData; -}); - -S2.define('select2/compat/matcher',[ - 'jquery' -], function ($) { - function oldMatcher (matcher) { - function wrappedMatcher (params, data) { - var match = $.extend(true, {}, data); - - if (params.term == null || $.trim(params.term) === '') { - return match; - } - - if (data.children) { - for (var c = data.children.length - 1; c >= 0; c--) { - var child = data.children[c]; - - // Check if the child object matches - // The old matcher returned a boolean true or false - var doesMatch = matcher(params.term, child.text, child); - - // If the child didn't match, pop it off - if (!doesMatch) { - match.children.splice(c, 1); - } - } - - if (match.children.length > 0) { - return match; - } - } - - if (matcher(params.term, data.text, data)) { - return match; - } - - return null; - } - - return wrappedMatcher; - } - - return oldMatcher; -}); - -S2.define('select2/compat/query',[ - -], function () { - function Query (decorated, $element, options) { - if (options.get('debug') && window.console && console.warn) { - console.warn( - 'Select2: The `query` option has been deprecated in favor of a ' + - 'custom data adapter that overrides the `query` method. Support ' + - 'will be removed for the `query` option in future versions of ' + - 'Select2.' - ); - } - - decorated.call(this, $element, options); - } - - Query.prototype.query = function (_, params, callback) { - params.callback = callback; - - var query = this.options.get('query'); - - query.call(null, params); - }; - - return Query; -}); - -S2.define('select2/dropdown/attachContainer',[ - -], function () { - function AttachContainer (decorated, $element, options) { - decorated.call(this, $element, options); - } - - AttachContainer.prototype.position = - function (decorated, $dropdown, $container) { - var $dropdownContainer = $container.find('.dropdown-wrapper'); - $dropdownContainer.append($dropdown); - - $dropdown.addClass('select2-dropdown--below'); - $container.addClass('select2-container--below'); - }; - - return AttachContainer; -}); - -S2.define('select2/dropdown/stopPropagation',[ - -], function () { - function StopPropagation () { } - - StopPropagation.prototype.bind = function (decorated, container, $container) { - decorated.call(this, container, $container); - - var stoppedEvents = [ - 'blur', - 'change', - 'click', - 'dblclick', - 'focus', - 'focusin', - 'focusout', - 'input', - 'keydown', - 'keyup', - 'keypress', - 'mousedown', - 'mouseenter', - 'mouseleave', - 'mousemove', - 'mouseover', - 'mouseup', - 'search', - 'touchend', - 'touchstart' - ]; - - this.$dropdown.on(stoppedEvents.join(' '), function (evt) { - evt.stopPropagation(); - }); - }; - - return StopPropagation; -}); - -S2.define('select2/selection/stopPropagation',[ - -], function () { - function StopPropagation () { } - - StopPropagation.prototype.bind = function (decorated, container, $container) { - decorated.call(this, container, $container); - - var stoppedEvents = [ - 'blur', - 'change', - 'click', - 'dblclick', - 'focus', - 'focusin', - 'focusout', - 'input', - 'keydown', - 'keyup', - 'keypress', - 'mousedown', - 'mouseenter', - 'mouseleave', - 'mousemove', - 'mouseover', - 'mouseup', - 'search', - 'touchend', - 'touchstart' - ]; - - this.$selection.on(stoppedEvents.join(' '), function (evt) { - evt.stopPropagation(); - }); - }; - - return StopPropagation; -}); - -/*! - * jQuery Mousewheel 3.1.13 - * - * Copyright jQuery Foundation and other contributors - * Released under the MIT license - * http://jquery.org/license - */ - -(function (factory) { - if ( typeof S2.define === 'function' && S2.define.amd ) { - // AMD. Register as an anonymous module. - S2.define('jquery-mousewheel',['jquery'], factory); - } else if (typeof exports === 'object') { - // Node/CommonJS style for Browserify - module.exports = factory; - } else { - // Browser globals - factory(jQuery); - } -}(function ($) { - - var toFix = ['wheel', 'mousewheel', 'DOMMouseScroll', 'MozMousePixelScroll'], - toBind = ( 'onwheel' in document || document.documentMode >= 9 ) ? - ['wheel'] : ['mousewheel', 'DomMouseScroll', 'MozMousePixelScroll'], - slice = Array.prototype.slice, - nullLowestDeltaTimeout, lowestDelta; - - if ( $.event.fixHooks ) { - for ( var i = toFix.length; i; ) { - $.event.fixHooks[ toFix[--i] ] = $.event.mouseHooks; - } - } - - var special = $.event.special.mousewheel = { - version: '3.1.12', - - setup: function() { - if ( this.addEventListener ) { - for ( var i = toBind.length; i; ) { - this.addEventListener( toBind[--i], handler, false ); - } - } else { - this.onmousewheel = handler; - } - // Store the line height and page height for this particular element - $.data(this, 'mousewheel-line-height', special.getLineHeight(this)); - $.data(this, 'mousewheel-page-height', special.getPageHeight(this)); - }, - - teardown: function() { - if ( this.removeEventListener ) { - for ( var i = toBind.length; i; ) { - this.removeEventListener( toBind[--i], handler, false ); - } - } else { - this.onmousewheel = null; - } - // Clean up the data we added to the element - $.removeData(this, 'mousewheel-line-height'); - $.removeData(this, 'mousewheel-page-height'); - }, - - getLineHeight: function(elem) { - var $elem = $(elem), - $parent = $elem['offsetParent' in $.fn ? 'offsetParent' : 'parent'](); - if (!$parent.length) { - $parent = $('body'); - } - return parseInt($parent.css('fontSize'), 10) || parseInt($elem.css('fontSize'), 10) || 16; - }, - - getPageHeight: function(elem) { - return $(elem).height(); - }, - - settings: { - adjustOldDeltas: true, // see shouldAdjustOldDeltas() below - normalizeOffset: true // calls getBoundingClientRect for each event - } - }; - - $.fn.extend({ - mousewheel: function(fn) { - return fn ? this.bind('mousewheel', fn) : this.trigger('mousewheel'); - }, - - unmousewheel: function(fn) { - return this.unbind('mousewheel', fn); - } - }); - - - function handler(event) { - var orgEvent = event || window.event, - args = slice.call(arguments, 1), - delta = 0, - deltaX = 0, - deltaY = 0, - absDelta = 0, - offsetX = 0, - offsetY = 0; - event = $.event.fix(orgEvent); - event.type = 'mousewheel'; - - // Old school scrollwheel delta - if ( 'detail' in orgEvent ) { deltaY = orgEvent.detail * -1; } - if ( 'wheelDelta' in orgEvent ) { deltaY = orgEvent.wheelDelta; } - if ( 'wheelDeltaY' in orgEvent ) { deltaY = orgEvent.wheelDeltaY; } - if ( 'wheelDeltaX' in orgEvent ) { deltaX = orgEvent.wheelDeltaX * -1; } - - // Firefox < 17 horizontal scrolling related to DOMMouseScroll event - if ( 'axis' in orgEvent && orgEvent.axis === orgEvent.HORIZONTAL_AXIS ) { - deltaX = deltaY * -1; - deltaY = 0; - } - - // Set delta to be deltaY or deltaX if deltaY is 0 for backwards compatabilitiy - delta = deltaY === 0 ? deltaX : deltaY; - - // New school wheel delta (wheel event) - if ( 'deltaY' in orgEvent ) { - deltaY = orgEvent.deltaY * -1; - delta = deltaY; - } - if ( 'deltaX' in orgEvent ) { - deltaX = orgEvent.deltaX; - if ( deltaY === 0 ) { delta = deltaX * -1; } - } - - // No change actually happened, no reason to go any further - if ( deltaY === 0 && deltaX === 0 ) { return; } - - // Need to convert lines and pages to pixels if we aren't already in pixels - // There are three delta modes: - // * deltaMode 0 is by pixels, nothing to do - // * deltaMode 1 is by lines - // * deltaMode 2 is by pages - if ( orgEvent.deltaMode === 1 ) { - var lineHeight = $.data(this, 'mousewheel-line-height'); - delta *= lineHeight; - deltaY *= lineHeight; - deltaX *= lineHeight; - } else if ( orgEvent.deltaMode === 2 ) { - var pageHeight = $.data(this, 'mousewheel-page-height'); - delta *= pageHeight; - deltaY *= pageHeight; - deltaX *= pageHeight; - } - - // Store lowest absolute delta to normalize the delta values - absDelta = Math.max( Math.abs(deltaY), Math.abs(deltaX) ); - - if ( !lowestDelta || absDelta < lowestDelta ) { - lowestDelta = absDelta; - - // Adjust older deltas if necessary - if ( shouldAdjustOldDeltas(orgEvent, absDelta) ) { - lowestDelta /= 40; - } - } - - // Adjust older deltas if necessary - if ( shouldAdjustOldDeltas(orgEvent, absDelta) ) { - // Divide all the things by 40! - delta /= 40; - deltaX /= 40; - deltaY /= 40; - } - - // Get a whole, normalized value for the deltas - delta = Math[ delta >= 1 ? 'floor' : 'ceil' ](delta / lowestDelta); - deltaX = Math[ deltaX >= 1 ? 'floor' : 'ceil' ](deltaX / lowestDelta); - deltaY = Math[ deltaY >= 1 ? 'floor' : 'ceil' ](deltaY / lowestDelta); - - // Normalise offsetX and offsetY properties - if ( special.settings.normalizeOffset && this.getBoundingClientRect ) { - var boundingRect = this.getBoundingClientRect(); - offsetX = event.clientX - boundingRect.left; - offsetY = event.clientY - boundingRect.top; - } - - // Add information to the event object - event.deltaX = deltaX; - event.deltaY = deltaY; - event.deltaFactor = lowestDelta; - event.offsetX = offsetX; - event.offsetY = offsetY; - // Go ahead and set deltaMode to 0 since we converted to pixels - // Although this is a little odd since we overwrite the deltaX/Y - // properties with normalized deltas. - event.deltaMode = 0; - - // Add event and delta to the front of the arguments - args.unshift(event, delta, deltaX, deltaY); - - // Clearout lowestDelta after sometime to better - // handle multiple device types that give different - // a different lowestDelta - // Ex: trackpad = 3 and mouse wheel = 120 - if (nullLowestDeltaTimeout) { clearTimeout(nullLowestDeltaTimeout); } - nullLowestDeltaTimeout = setTimeout(nullLowestDelta, 200); - - return ($.event.dispatch || $.event.handle).apply(this, args); - } - - function nullLowestDelta() { - lowestDelta = null; - } - - function shouldAdjustOldDeltas(orgEvent, absDelta) { - // If this is an older event and the delta is divisable by 120, - // then we are assuming that the browser is treating this as an - // older mouse wheel event and that we should divide the deltas - // by 40 to try and get a more usable deltaFactor. - // Side note, this actually impacts the reported scroll distance - // in older browsers and can cause scrolling to be slower than native. - // Turn this off by setting $.event.special.mousewheel.settings.adjustOldDeltas to false. - return special.settings.adjustOldDeltas && orgEvent.type === 'mousewheel' && absDelta % 120 === 0; - } - -})); - -S2.define('jquery.select2',[ - 'jquery', - 'jquery-mousewheel', - - './select2/core', - './select2/defaults' -], function ($, _, Select2, Defaults) { - if ($.fn.select2 == null) { - // All methods that should return the element - var thisMethods = ['open', 'close', 'destroy']; - - $.fn.select2 = function (options) { - options = options || {}; - - if (typeof options === 'object') { - this.each(function () { - var instanceOptions = $.extend(true, {}, options); - - var instance = new Select2($(this), instanceOptions); - }); - - return this; - } else if (typeof options === 'string') { - var ret; - var args = Array.prototype.slice.call(arguments, 1); - - this.each(function () { - var instance = $(this).data('select2'); - - if (instance == null && window.console && console.error) { - console.error( - 'The select2(\'' + options + '\') method was called on an ' + - 'element that is not using Select2.' - ); - } - - ret = instance[options].apply(instance, args); - }); - - // Check if we should be returning `this` - if ($.inArray(options, thisMethods) > -1) { - return this; - } - - return ret; - } else { - throw new Error('Invalid arguments for Select2: ' + options); - } - }; - } - - if ($.fn.select2.defaults == null) { - $.fn.select2.defaults = Defaults; - } - - return Select2; -}); - - // Return the AMD loader configuration so it can be used outside of this file - return { - define: S2.define, - require: S2.require - }; -}()); - - // Autoload the jQuery bindings - // We know that all of the modules exist above this, so we're safe - var select2 = S2.require('jquery.select2'); - - // Hold the AMD module references on the jQuery function that was just loaded - // This allows Select2 to use the internal loader outside of this file, such - // as in the language files. - jQuery.fn.select2.amd = S2; - - // Return the Select2 instance for anyone who is importing it. - return select2; -})); diff --git a/admin/bower_components/select2/dist/js/select2.full.min.js b/admin/bower_components/select2/dist/js/select2.full.min.js deleted file mode 100644 index 8564efe..0000000 --- a/admin/bower_components/select2/dist/js/select2.full.min.js +++ /dev/null @@ -1 +0,0 @@ -/*! Select2 4.0.4 | https://github.com/select2/select2/blob/master/LICENSE.md */!function(a){"function"==typeof define&&define.amd?define(["jquery"],a):"object"==typeof module&&module.exports?module.exports=function(b,c){return void 0===c&&(c="undefined"!=typeof window?require("jquery"):require("jquery")(b)),a(c),c}:a(jQuery)}(function(a){var b=function(){if(a&&a.fn&&a.fn.select2&&a.fn.select2.amd)var b=a.fn.select2.amd;var b;return function(){if(!b||!b.requirejs){b?c=b:b={};var a,c,d;!function(b){function e(a,b){return v.call(a,b)}function f(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o=b&&b.split("/"),p=t.map,q=p&&p["*"]||{};if(a){for(a=a.split("/"),g=a.length-1,t.nodeIdCompat&&x.test(a[g])&&(a[g]=a[g].replace(x,"")),"."===a[0].charAt(0)&&o&&(n=o.slice(0,o.length-1),a=n.concat(a)),k=0;k<a.length;k++)if("."===(m=a[k]))a.splice(k,1),k-=1;else if(".."===m){if(0===k||1===k&&".."===a[2]||".."===a[k-1])continue;k>0&&(a.splice(k-1,2),k-=2)}a=a.join("/")}if((o||q)&&p){for(c=a.split("/"),k=c.length;k>0;k-=1){if(d=c.slice(0,k).join("/"),o)for(l=o.length;l>0;l-=1)if((e=p[o.slice(0,l).join("/")])&&(e=e[d])){f=e,h=k;break}if(f)break;!i&&q&&q[d]&&(i=q[d],j=k)}!f&&i&&(f=i,h=j),f&&(c.splice(0,h,f),a=c.join("/"))}return a}function g(a,c){return function(){var d=w.call(arguments,0);return"string"!=typeof d[0]&&1===d.length&&d.push(null),o.apply(b,d.concat([a,c]))}}function h(a){return function(b){return f(b,a)}}function i(a){return function(b){r[a]=b}}function j(a){if(e(s,a)){var c=s[a];delete s[a],u[a]=!0,n.apply(b,c)}if(!e(r,a)&&!e(u,a))throw new Error("No "+a);return r[a]}function k(a){var b,c=a?a.indexOf("!"):-1;return c>-1&&(b=a.substring(0,c),a=a.substring(c+1,a.length)),[b,a]}function l(a){return a?k(a):[]}function m(a){return function(){return t&&t.config&&t.config[a]||{}}}var n,o,p,q,r={},s={},t={},u={},v=Object.prototype.hasOwnProperty,w=[].slice,x=/\.js$/;p=function(a,b){var c,d=k(a),e=d[0],g=b[1];return a=d[1],e&&(e=f(e,g),c=j(e)),e?a=c&&c.normalize?c.normalize(a,h(g)):f(a,g):(a=f(a,g),d=k(a),e=d[0],a=d[1],e&&(c=j(e))),{f:e?e+"!"+a:a,n:a,pr:e,p:c}},q={require:function(a){return g(a)},exports:function(a){var b=r[a];return void 0!==b?b:r[a]={}},module:function(a){return{id:a,uri:"",exports:r[a],config:m(a)}}},n=function(a,c,d,f){var h,k,m,n,o,t,v,w=[],x=typeof d;if(f=f||a,t=l(f),"undefined"===x||"function"===x){for(c=!c.length&&d.length?["require","exports","module"]:c,o=0;o<c.length;o+=1)if(n=p(c[o],t),"require"===(k=n.f))w[o]=q.require(a);else if("exports"===k)w[o]=q.exports(a),v=!0;else if("module"===k)h=w[o]=q.module(a);else if(e(r,k)||e(s,k)||e(u,k))w[o]=j(k);else{if(!n.p)throw new Error(a+" missing "+k);n.p.load(n.n,g(f,!0),i(k),{}),w[o]=r[k]}m=d?d.apply(r[a],w):void 0,a&&(h&&h.exports!==b&&h.exports!==r[a]?r[a]=h.exports:m===b&&v||(r[a]=m))}else a&&(r[a]=d)},a=c=o=function(a,c,d,e,f){if("string"==typeof a)return q[a]?q[a](c):j(p(a,l(c)).f);if(!a.splice){if(t=a,t.deps&&o(t.deps,t.callback),!c)return;c.splice?(a=c,c=d,d=null):a=b}return c=c||function(){},"function"==typeof d&&(d=e,e=f),e?n(b,a,c,d):setTimeout(function(){n(b,a,c,d)},4),o},o.config=function(a){return o(a)},a._defined=r,d=function(a,b,c){if("string"!=typeof a)throw new Error("See almond README: incorrect module build, no module name");b.splice||(c=b,b=[]),e(r,a)||e(s,a)||(s[a]=[a,b,c])},d.amd={jQuery:!0}}(),b.requirejs=a,b.require=c,b.define=d}}(),b.define("almond",function(){}),b.define("jquery",[],function(){var b=a||$;return null==b&&console&&console.error&&console.error("Select2: An instance of jQuery or a jQuery-compatible library was not found. Make sure that you are including jQuery before Select2 on your web page."),b}),b.define("select2/utils",["jquery"],function(a){function b(a){var b=a.prototype,c=[];for(var d in b){"function"==typeof b[d]&&("constructor"!==d&&c.push(d))}return c}var c={};c.Extend=function(a,b){function c(){this.constructor=a}var d={}.hasOwnProperty;for(var e in b)d.call(b,e)&&(a[e]=b[e]);return c.prototype=b.prototype,a.prototype=new c,a.__super__=b.prototype,a},c.Decorate=function(a,c){function d(){var b=Array.prototype.unshift,d=c.prototype.constructor.length,e=a.prototype.constructor;d>0&&(b.call(arguments,a.prototype.constructor),e=c.prototype.constructor),e.apply(this,arguments)}function e(){this.constructor=d}var f=b(c),g=b(a);c.displayName=a.displayName,d.prototype=new e;for(var h=0;h<g.length;h++){var i=g[h];d.prototype[i]=a.prototype[i]}for(var j=(function(a){var b=function(){};a in d.prototype&&(b=d.prototype[a]);var e=c.prototype[a];return function(){return Array.prototype.unshift.call(arguments,b),e.apply(this,arguments)}}),k=0;k<f.length;k++){var l=f[k];d.prototype[l]=j(l)}return d};var d=function(){this.listeners={}};return d.prototype.on=function(a,b){this.listeners=this.listeners||{},a in this.listeners?this.listeners[a].push(b):this.listeners[a]=[b]},d.prototype.trigger=function(a){var b=Array.prototype.slice,c=b.call(arguments,1);this.listeners=this.listeners||{},null==c&&(c=[]),0===c.length&&c.push({}),c[0]._type=a,a in this.listeners&&this.invoke(this.listeners[a],b.call(arguments,1)),"*"in this.listeners&&this.invoke(this.listeners["*"],arguments)},d.prototype.invoke=function(a,b){for(var c=0,d=a.length;c<d;c++)a[c].apply(this,b)},c.Observable=d,c.generateChars=function(a){for(var b="",c=0;c<a;c++){b+=Math.floor(36*Math.random()).toString(36)}return b},c.bind=function(a,b){return function(){a.apply(b,arguments)}},c._convertData=function(a){for(var b in a){var c=b.split("-"),d=a;if(1!==c.length){for(var e=0;e<c.length;e++){var f=c[e];f=f.substring(0,1).toLowerCase()+f.substring(1),f in d||(d[f]={}),e==c.length-1&&(d[f]=a[b]),d=d[f]}delete a[b]}}return a},c.hasScroll=function(b,c){var d=a(c),e=c.style.overflowX,f=c.style.overflowY;return(e!==f||"hidden"!==f&&"visible"!==f)&&("scroll"===e||"scroll"===f||(d.innerHeight()<c.scrollHeight||d.innerWidth()<c.scrollWidth))},c.escapeMarkup=function(a){var b={"\\":"&#92;","&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#39;","/":"&#47;"};return"string"!=typeof a?a:String(a).replace(/[&<>"'\/\\]/g,function(a){return b[a]})},c.appendMany=function(b,c){if("1.7"===a.fn.jquery.substr(0,3)){var d=a();a.map(c,function(a){d=d.add(a)}),c=d}b.append(c)},c}),b.define("select2/results",["jquery","./utils"],function(a,b){function c(a,b,d){this.$element=a,this.data=d,this.options=b,c.__super__.constructor.call(this)}return b.Extend(c,b.Observable),c.prototype.render=function(){var b=a('<ul class="select2-results__options" role="tree"></ul>');return this.options.get("multiple")&&b.attr("aria-multiselectable","true"),this.$results=b,b},c.prototype.clear=function(){this.$results.empty()},c.prototype.displayMessage=function(b){var c=this.options.get("escapeMarkup");this.clear(),this.hideLoading();var d=a('<li role="treeitem" aria-live="assertive" class="select2-results__option"></li>'),e=this.options.get("translations").get(b.message);d.append(c(e(b.args))),d[0].className+=" select2-results__message",this.$results.append(d)},c.prototype.hideMessages=function(){this.$results.find(".select2-results__message").remove()},c.prototype.append=function(a){this.hideLoading();var b=[];if(null==a.results||0===a.results.length)return void(0===this.$results.children().length&&this.trigger("results:message",{message:"noResults"}));a.results=this.sort(a.results);for(var c=0;c<a.results.length;c++){var d=a.results[c],e=this.option(d);b.push(e)}this.$results.append(b)},c.prototype.position=function(a,b){b.find(".select2-results").append(a)},c.prototype.sort=function(a){return this.options.get("sorter")(a)},c.prototype.highlightFirstItem=function(){var a=this.$results.find(".select2-results__option[aria-selected]"),b=a.filter("[aria-selected=true]");b.length>0?b.first().trigger("mouseenter"):a.first().trigger("mouseenter"),this.ensureHighlightVisible()},c.prototype.setClasses=function(){var b=this;this.data.current(function(c){var d=a.map(c,function(a){return a.id.toString()});b.$results.find(".select2-results__option[aria-selected]").each(function(){var b=a(this),c=a.data(this,"data"),e=""+c.id;null!=c.element&&c.element.selected||null==c.element&&a.inArray(e,d)>-1?b.attr("aria-selected","true"):b.attr("aria-selected","false")})})},c.prototype.showLoading=function(a){this.hideLoading();var b=this.options.get("translations").get("searching"),c={disabled:!0,loading:!0,text:b(a)},d=this.option(c);d.className+=" loading-results",this.$results.prepend(d)},c.prototype.hideLoading=function(){this.$results.find(".loading-results").remove()},c.prototype.option=function(b){var c=document.createElement("li");c.className="select2-results__option";var d={role:"treeitem","aria-selected":"false"};b.disabled&&(delete d["aria-selected"],d["aria-disabled"]="true"),null==b.id&&delete d["aria-selected"],null!=b._resultId&&(c.id=b._resultId),b.title&&(c.title=b.title),b.children&&(d.role="group",d["aria-label"]=b.text,delete d["aria-selected"]);for(var e in d){var f=d[e];c.setAttribute(e,f)}if(b.children){var g=a(c),h=document.createElement("strong");h.className="select2-results__group";a(h);this.template(b,h);for(var i=[],j=0;j<b.children.length;j++){var k=b.children[j],l=this.option(k);i.push(l)}var m=a("<ul></ul>",{class:"select2-results__options select2-results__options--nested"});m.append(i),g.append(h),g.append(m)}else this.template(b,c);return a.data(c,"data",b),c},c.prototype.bind=function(b,c){var d=this,e=b.id+"-results";this.$results.attr("id",e),b.on("results:all",function(a){d.clear(),d.append(a.data),b.isOpen()&&(d.setClasses(),d.highlightFirstItem())}),b.on("results:append",function(a){d.append(a.data),b.isOpen()&&d.setClasses()}),b.on("query",function(a){d.hideMessages(),d.showLoading(a)}),b.on("select",function(){b.isOpen()&&(d.setClasses(),d.highlightFirstItem())}),b.on("unselect",function(){b.isOpen()&&(d.setClasses(),d.highlightFirstItem())}),b.on("open",function(){d.$results.attr("aria-expanded","true"),d.$results.attr("aria-hidden","false"),d.setClasses(),d.ensureHighlightVisible()}),b.on("close",function(){d.$results.attr("aria-expanded","false"),d.$results.attr("aria-hidden","true"),d.$results.removeAttr("aria-activedescendant")}),b.on("results:toggle",function(){var a=d.getHighlightedResults();0!==a.length&&a.trigger("mouseup")}),b.on("results:select",function(){var a=d.getHighlightedResults();if(0!==a.length){var b=a.data("data");"true"==a.attr("aria-selected")?d.trigger("close",{}):d.trigger("select",{data:b})}}),b.on("results:previous",function(){var a=d.getHighlightedResults(),b=d.$results.find("[aria-selected]"),c=b.index(a);if(0!==c){var e=c-1;0===a.length&&(e=0);var f=b.eq(e);f.trigger("mouseenter");var g=d.$results.offset().top,h=f.offset().top,i=d.$results.scrollTop()+(h-g);0===e?d.$results.scrollTop(0):h-g<0&&d.$results.scrollTop(i)}}),b.on("results:next",function(){var a=d.getHighlightedResults(),b=d.$results.find("[aria-selected]"),c=b.index(a),e=c+1;if(!(e>=b.length)){var f=b.eq(e);f.trigger("mouseenter");var g=d.$results.offset().top+d.$results.outerHeight(!1),h=f.offset().top+f.outerHeight(!1),i=d.$results.scrollTop()+h-g;0===e?d.$results.scrollTop(0):h>g&&d.$results.scrollTop(i)}}),b.on("results:focus",function(a){a.element.addClass("select2-results__option--highlighted")}),b.on("results:message",function(a){d.displayMessage(a)}),a.fn.mousewheel&&this.$results.on("mousewheel",function(a){var b=d.$results.scrollTop(),c=d.$results.get(0).scrollHeight-b+a.deltaY,e=a.deltaY>0&&b-a.deltaY<=0,f=a.deltaY<0&&c<=d.$results.height();e?(d.$results.scrollTop(0),a.preventDefault(),a.stopPropagation()):f&&(d.$results.scrollTop(d.$results.get(0).scrollHeight-d.$results.height()),a.preventDefault(),a.stopPropagation())}),this.$results.on("mouseup",".select2-results__option[aria-selected]",function(b){var c=a(this),e=c.data("data");if("true"===c.attr("aria-selected"))return void(d.options.get("multiple")?d.trigger("unselect",{originalEvent:b,data:e}):d.trigger("close",{}));d.trigger("select",{originalEvent:b,data:e})}),this.$results.on("mouseenter",".select2-results__option[aria-selected]",function(b){var c=a(this).data("data");d.getHighlightedResults().removeClass("select2-results__option--highlighted"),d.trigger("results:focus",{data:c,element:a(this)})})},c.prototype.getHighlightedResults=function(){return this.$results.find(".select2-results__option--highlighted")},c.prototype.destroy=function(){this.$results.remove()},c.prototype.ensureHighlightVisible=function(){var a=this.getHighlightedResults();if(0!==a.length){var b=this.$results.find("[aria-selected]"),c=b.index(a),d=this.$results.offset().top,e=a.offset().top,f=this.$results.scrollTop()+(e-d),g=e-d;f-=2*a.outerHeight(!1),c<=2?this.$results.scrollTop(0):(g>this.$results.outerHeight()||g<0)&&this.$results.scrollTop(f)}},c.prototype.template=function(b,c){var d=this.options.get("templateResult"),e=this.options.get("escapeMarkup"),f=d(b,c);null==f?c.style.display="none":"string"==typeof f?c.innerHTML=e(f):a(c).append(f)},c}),b.define("select2/keys",[],function(){return{BACKSPACE:8,TAB:9,ENTER:13,SHIFT:16,CTRL:17,ALT:18,ESC:27,SPACE:32,PAGE_UP:33,PAGE_DOWN:34,END:35,HOME:36,LEFT:37,UP:38,RIGHT:39,DOWN:40,DELETE:46}}),b.define("select2/selection/base",["jquery","../utils","../keys"],function(a,b,c){function d(a,b){this.$element=a,this.options=b,d.__super__.constructor.call(this)}return b.Extend(d,b.Observable),d.prototype.render=function(){var b=a('<span class="select2-selection" role="combobox" aria-haspopup="true" aria-expanded="false"></span>');return this._tabindex=0,null!=this.$element.data("old-tabindex")?this._tabindex=this.$element.data("old-tabindex"):null!=this.$element.attr("tabindex")&&(this._tabindex=this.$element.attr("tabindex")),b.attr("title",this.$element.attr("title")),b.attr("tabindex",this._tabindex),this.$selection=b,b},d.prototype.bind=function(a,b){var d=this,e=(a.id,a.id+"-results");this.container=a,this.$selection.on("focus",function(a){d.trigger("focus",a)}),this.$selection.on("blur",function(a){d._handleBlur(a)}),this.$selection.on("keydown",function(a){d.trigger("keypress",a),a.which===c.SPACE&&a.preventDefault()}),a.on("results:focus",function(a){d.$selection.attr("aria-activedescendant",a.data._resultId)}),a.on("selection:update",function(a){d.update(a.data)}),a.on("open",function(){d.$selection.attr("aria-expanded","true"),d.$selection.attr("aria-owns",e),d._attachCloseHandler(a)}),a.on("close",function(){d.$selection.attr("aria-expanded","false"),d.$selection.removeAttr("aria-activedescendant"),d.$selection.removeAttr("aria-owns"),d.$selection.focus(),d._detachCloseHandler(a)}),a.on("enable",function(){d.$selection.attr("tabindex",d._tabindex)}),a.on("disable",function(){d.$selection.attr("tabindex","-1")})},d.prototype._handleBlur=function(b){var c=this;window.setTimeout(function(){document.activeElement==c.$selection[0]||a.contains(c.$selection[0],document.activeElement)||c.trigger("blur",b)},1)},d.prototype._attachCloseHandler=function(b){a(document.body).on("mousedown.select2."+b.id,function(b){var c=a(b.target),d=c.closest(".select2");a(".select2.select2-container--open").each(function(){var b=a(this);this!=d[0]&&b.data("element").select2("close")})})},d.prototype._detachCloseHandler=function(b){a(document.body).off("mousedown.select2."+b.id)},d.prototype.position=function(a,b){b.find(".selection").append(a)},d.prototype.destroy=function(){this._detachCloseHandler(this.container)},d.prototype.update=function(a){throw new Error("The `update` method must be defined in child classes.")},d}),b.define("select2/selection/single",["jquery","./base","../utils","../keys"],function(a,b,c,d){function e(){e.__super__.constructor.apply(this,arguments)}return c.Extend(e,b),e.prototype.render=function(){var a=e.__super__.render.call(this);return a.addClass("select2-selection--single"),a.html('<span class="select2-selection__rendered"></span><span class="select2-selection__arrow" role="presentation"><b role="presentation"></b></span>'),a},e.prototype.bind=function(a,b){var c=this;e.__super__.bind.apply(this,arguments);var d=a.id+"-container";this.$selection.find(".select2-selection__rendered").attr("id",d),this.$selection.attr("aria-labelledby",d),this.$selection.on("mousedown",function(a){1===a.which&&c.trigger("toggle",{originalEvent:a})}),this.$selection.on("focus",function(a){}),this.$selection.on("blur",function(a){}),a.on("focus",function(b){a.isOpen()||c.$selection.focus()}),a.on("selection:update",function(a){c.update(a.data)})},e.prototype.clear=function(){this.$selection.find(".select2-selection__rendered").empty()},e.prototype.display=function(a,b){var c=this.options.get("templateSelection");return this.options.get("escapeMarkup")(c(a,b))},e.prototype.selectionContainer=function(){return a("<span></span>")},e.prototype.update=function(a){if(0===a.length)return void this.clear();var b=a[0],c=this.$selection.find(".select2-selection__rendered"),d=this.display(b,c);c.empty().append(d),c.prop("title",b.title||b.text)},e}),b.define("select2/selection/multiple",["jquery","./base","../utils"],function(a,b,c){function d(a,b){d.__super__.constructor.apply(this,arguments)}return c.Extend(d,b),d.prototype.render=function(){var a=d.__super__.render.call(this);return a.addClass("select2-selection--multiple"),a.html('<ul class="select2-selection__rendered"></ul>'),a},d.prototype.bind=function(b,c){var e=this;d.__super__.bind.apply(this,arguments),this.$selection.on("click",function(a){e.trigger("toggle",{originalEvent:a})}),this.$selection.on("click",".select2-selection__choice__remove",function(b){if(!e.options.get("disabled")){var c=a(this),d=c.parent(),f=d.data("data");e.trigger("unselect",{originalEvent:b,data:f})}})},d.prototype.clear=function(){this.$selection.find(".select2-selection__rendered").empty()},d.prototype.display=function(a,b){var c=this.options.get("templateSelection");return this.options.get("escapeMarkup")(c(a,b))},d.prototype.selectionContainer=function(){return a('<li class="select2-selection__choice"><span class="select2-selection__choice__remove" role="presentation">&times;</span></li>')},d.prototype.update=function(a){if(this.clear(),0!==a.length){for(var b=[],d=0;d<a.length;d++){var e=a[d],f=this.selectionContainer(),g=this.display(e,f);f.append(g),f.prop("title",e.title||e.text),f.data("data",e),b.push(f)}var h=this.$selection.find(".select2-selection__rendered");c.appendMany(h,b)}},d}),b.define("select2/selection/placeholder",["../utils"],function(a){function b(a,b,c){this.placeholder=this.normalizePlaceholder(c.get("placeholder")),a.call(this,b,c)}return b.prototype.normalizePlaceholder=function(a,b){return"string"==typeof b&&(b={id:"",text:b}),b},b.prototype.createPlaceholder=function(a,b){var c=this.selectionContainer();return c.html(this.display(b)),c.addClass("select2-selection__placeholder").removeClass("select2-selection__choice"),c},b.prototype.update=function(a,b){var c=1==b.length&&b[0].id!=this.placeholder.id;if(b.length>1||c)return a.call(this,b);this.clear();var d=this.createPlaceholder(this.placeholder);this.$selection.find(".select2-selection__rendered").append(d)},b}),b.define("select2/selection/allowClear",["jquery","../keys"],function(a,b){function c(){}return c.prototype.bind=function(a,b,c){var d=this;a.call(this,b,c),null==this.placeholder&&this.options.get("debug")&&window.console&&console.error&&console.error("Select2: The `allowClear` option should be used in combination with the `placeholder` option."),this.$selection.on("mousedown",".select2-selection__clear",function(a){d._handleClear(a)}),b.on("keypress",function(a){d._handleKeyboardClear(a,b)})},c.prototype._handleClear=function(a,b){if(!this.options.get("disabled")){var c=this.$selection.find(".select2-selection__clear");if(0!==c.length){b.stopPropagation();for(var d=c.data("data"),e=0;e<d.length;e++){var f={data:d[e]};if(this.trigger("unselect",f),f.prevented)return}this.$element.val(this.placeholder.id).trigger("change"),this.trigger("toggle",{})}}},c.prototype._handleKeyboardClear=function(a,c,d){d.isOpen()||c.which!=b.DELETE&&c.which!=b.BACKSPACE||this._handleClear(c)},c.prototype.update=function(b,c){if(b.call(this,c),!(this.$selection.find(".select2-selection__placeholder").length>0||0===c.length)){var d=a('<span class="select2-selection__clear">&times;</span>');d.data("data",c),this.$selection.find(".select2-selection__rendered").prepend(d)}},c}),b.define("select2/selection/search",["jquery","../utils","../keys"],function(a,b,c){function d(a,b,c){a.call(this,b,c)}return d.prototype.render=function(b){var c=a('<li class="select2-search select2-search--inline"><input class="select2-search__field" type="search" tabindex="-1" autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false" role="textbox" aria-autocomplete="list" /></li>');this.$searchContainer=c,this.$search=c.find("input");var d=b.call(this);return this._transferTabIndex(),d},d.prototype.bind=function(a,b,d){var e=this;a.call(this,b,d),b.on("open",function(){e.$search.trigger("focus")}),b.on("close",function(){e.$search.val(""),e.$search.removeAttr("aria-activedescendant"),e.$search.trigger("focus")}),b.on("enable",function(){e.$search.prop("disabled",!1),e._transferTabIndex()}),b.on("disable",function(){e.$search.prop("disabled",!0)}),b.on("focus",function(a){e.$search.trigger("focus")}),b.on("results:focus",function(a){e.$search.attr("aria-activedescendant",a.id)}),this.$selection.on("focusin",".select2-search--inline",function(a){e.trigger("focus",a)}),this.$selection.on("focusout",".select2-search--inline",function(a){e._handleBlur(a)}),this.$selection.on("keydown",".select2-search--inline",function(a){if(a.stopPropagation(),e.trigger("keypress",a),e._keyUpPrevented=a.isDefaultPrevented(),a.which===c.BACKSPACE&&""===e.$search.val()){var b=e.$searchContainer.prev(".select2-selection__choice");if(b.length>0){var d=b.data("data");e.searchRemoveChoice(d),a.preventDefault()}}});var f=document.documentMode,g=f&&f<=11;this.$selection.on("input.searchcheck",".select2-search--inline",function(a){if(g)return void e.$selection.off("input.search input.searchcheck");e.$selection.off("keyup.search")}),this.$selection.on("keyup.search input.search",".select2-search--inline",function(a){if(g&&"input"===a.type)return void e.$selection.off("input.search input.searchcheck");var b=a.which;b!=c.SHIFT&&b!=c.CTRL&&b!=c.ALT&&b!=c.TAB&&e.handleSearch(a)})},d.prototype._transferTabIndex=function(a){this.$search.attr("tabindex",this.$selection.attr("tabindex")),this.$selection.attr("tabindex","-1")},d.prototype.createPlaceholder=function(a,b){this.$search.attr("placeholder",b.text)},d.prototype.update=function(a,b){var c=this.$search[0]==document.activeElement;this.$search.attr("placeholder",""),a.call(this,b),this.$selection.find(".select2-selection__rendered").append(this.$searchContainer),this.resizeSearch(),c&&this.$search.focus()},d.prototype.handleSearch=function(){if(this.resizeSearch(),!this._keyUpPrevented){var a=this.$search.val();this.trigger("query",{term:a})}this._keyUpPrevented=!1},d.prototype.searchRemoveChoice=function(a,b){this.trigger("unselect",{data:b}),this.$search.val(b.text),this.handleSearch()},d.prototype.resizeSearch=function(){this.$search.css("width","25px");var a="";if(""!==this.$search.attr("placeholder"))a=this.$selection.find(".select2-selection__rendered").innerWidth();else{a=.75*(this.$search.val().length+1)+"em"}this.$search.css("width",a)},d}),b.define("select2/selection/eventRelay",["jquery"],function(a){function b(){}return b.prototype.bind=function(b,c,d){var e=this,f=["open","opening","close","closing","select","selecting","unselect","unselecting"],g=["opening","closing","selecting","unselecting"];b.call(this,c,d),c.on("*",function(b,c){if(-1!==a.inArray(b,f)){c=c||{};var d=a.Event("select2:"+b,{params:c});e.$element.trigger(d),-1!==a.inArray(b,g)&&(c.prevented=d.isDefaultPrevented())}})},b}),b.define("select2/translation",["jquery","require"],function(a,b){function c(a){this.dict=a||{}}return c.prototype.all=function(){return this.dict},c.prototype.get=function(a){return this.dict[a]},c.prototype.extend=function(b){this.dict=a.extend({},b.all(),this.dict)},c._cache={},c.loadPath=function(a){if(!(a in c._cache)){var d=b(a);c._cache[a]=d}return new c(c._cache[a])},c}),b.define("select2/diacritics",[],function(){return{"Ⓐ":"A","A":"A","À":"A","Á":"A","Â":"A","Ầ":"A","Ấ":"A","Ẫ":"A","Ẩ":"A","Ã":"A","Ā":"A","Ă":"A","Ằ":"A","Ắ":"A","Ẵ":"A","Ẳ":"A","Ȧ":"A","Ǡ":"A","Ä":"A","Ǟ":"A","Ả":"A","Å":"A","Ǻ":"A","Ǎ":"A","Ȁ":"A","Ȃ":"A","Ạ":"A","Ậ":"A","Ặ":"A","Ḁ":"A","Ą":"A","Ⱥ":"A","Ɐ":"A","Ꜳ":"AA","Æ":"AE","Ǽ":"AE","Ǣ":"AE","Ꜵ":"AO","Ꜷ":"AU","Ꜹ":"AV","Ꜻ":"AV","Ꜽ":"AY","Ⓑ":"B","B":"B","Ḃ":"B","Ḅ":"B","Ḇ":"B","Ƀ":"B","Ƃ":"B","Ɓ":"B","Ⓒ":"C","C":"C","Ć":"C","Ĉ":"C","Ċ":"C","Č":"C","Ç":"C","Ḉ":"C","Ƈ":"C","Ȼ":"C","Ꜿ":"C","Ⓓ":"D","D":"D","Ḋ":"D","Ď":"D","Ḍ":"D","Ḑ":"D","Ḓ":"D","Ḏ":"D","Đ":"D","Ƌ":"D","Ɗ":"D","Ɖ":"D","Ꝺ":"D","DZ":"DZ","DŽ":"DZ","Dz":"Dz","Dž":"Dz","Ⓔ":"E","E":"E","È":"E","É":"E","Ê":"E","Ề":"E","Ế":"E","Ễ":"E","Ể":"E","Ẽ":"E","Ē":"E","Ḕ":"E","Ḗ":"E","Ĕ":"E","Ė":"E","Ë":"E","Ẻ":"E","Ě":"E","Ȅ":"E","Ȇ":"E","Ẹ":"E","Ệ":"E","Ȩ":"E","Ḝ":"E","Ę":"E","Ḙ":"E","Ḛ":"E","Ɛ":"E","Ǝ":"E","Ⓕ":"F","F":"F","Ḟ":"F","Ƒ":"F","Ꝼ":"F","Ⓖ":"G","G":"G","Ǵ":"G","Ĝ":"G","Ḡ":"G","Ğ":"G","Ġ":"G","Ǧ":"G","Ģ":"G","Ǥ":"G","Ɠ":"G","Ꞡ":"G","Ᵹ":"G","Ꝿ":"G","Ⓗ":"H","H":"H","Ĥ":"H","Ḣ":"H","Ḧ":"H","Ȟ":"H","Ḥ":"H","Ḩ":"H","Ḫ":"H","Ħ":"H","Ⱨ":"H","Ⱶ":"H","Ɥ":"H","Ⓘ":"I","I":"I","Ì":"I","Í":"I","Î":"I","Ĩ":"I","Ī":"I","Ĭ":"I","İ":"I","Ï":"I","Ḯ":"I","Ỉ":"I","Ǐ":"I","Ȉ":"I","Ȋ":"I","Ị":"I","Į":"I","Ḭ":"I","Ɨ":"I","Ⓙ":"J","J":"J","Ĵ":"J","Ɉ":"J","Ⓚ":"K","K":"K","Ḱ":"K","Ǩ":"K","Ḳ":"K","Ķ":"K","Ḵ":"K","Ƙ":"K","Ⱪ":"K","Ꝁ":"K","Ꝃ":"K","Ꝅ":"K","Ꞣ":"K","Ⓛ":"L","L":"L","Ŀ":"L","Ĺ":"L","Ľ":"L","Ḷ":"L","Ḹ":"L","Ļ":"L","Ḽ":"L","Ḻ":"L","Ł":"L","Ƚ":"L","Ɫ":"L","Ⱡ":"L","Ꝉ":"L","Ꝇ":"L","Ꞁ":"L","LJ":"LJ","Lj":"Lj","Ⓜ":"M","M":"M","Ḿ":"M","Ṁ":"M","Ṃ":"M","Ɱ":"M","Ɯ":"M","Ⓝ":"N","N":"N","Ǹ":"N","Ń":"N","Ñ":"N","Ṅ":"N","Ň":"N","Ṇ":"N","Ņ":"N","Ṋ":"N","Ṉ":"N","Ƞ":"N","Ɲ":"N","Ꞑ":"N","Ꞥ":"N","NJ":"NJ","Nj":"Nj","Ⓞ":"O","O":"O","Ò":"O","Ó":"O","Ô":"O","Ồ":"O","Ố":"O","Ỗ":"O","Ổ":"O","Õ":"O","Ṍ":"O","Ȭ":"O","Ṏ":"O","Ō":"O","Ṑ":"O","Ṓ":"O","Ŏ":"O","Ȯ":"O","Ȱ":"O","Ö":"O","Ȫ":"O","Ỏ":"O","Ő":"O","Ǒ":"O","Ȍ":"O","Ȏ":"O","Ơ":"O","Ờ":"O","Ớ":"O","Ỡ":"O","Ở":"O","Ợ":"O","Ọ":"O","Ộ":"O","Ǫ":"O","Ǭ":"O","Ø":"O","Ǿ":"O","Ɔ":"O","Ɵ":"O","Ꝋ":"O","Ꝍ":"O","Ƣ":"OI","Ꝏ":"OO","Ȣ":"OU","Ⓟ":"P","P":"P","Ṕ":"P","Ṗ":"P","Ƥ":"P","Ᵽ":"P","Ꝑ":"P","Ꝓ":"P","Ꝕ":"P","Ⓠ":"Q","Q":"Q","Ꝗ":"Q","Ꝙ":"Q","Ɋ":"Q","Ⓡ":"R","R":"R","Ŕ":"R","Ṙ":"R","Ř":"R","Ȑ":"R","Ȓ":"R","Ṛ":"R","Ṝ":"R","Ŗ":"R","Ṟ":"R","Ɍ":"R","Ɽ":"R","Ꝛ":"R","Ꞧ":"R","Ꞃ":"R","Ⓢ":"S","S":"S","ẞ":"S","Ś":"S","Ṥ":"S","Ŝ":"S","Ṡ":"S","Š":"S","Ṧ":"S","Ṣ":"S","Ṩ":"S","Ș":"S","Ş":"S","Ȿ":"S","Ꞩ":"S","Ꞅ":"S","Ⓣ":"T","T":"T","Ṫ":"T","Ť":"T","Ṭ":"T","Ț":"T","Ţ":"T","Ṱ":"T","Ṯ":"T","Ŧ":"T","Ƭ":"T","Ʈ":"T","Ⱦ":"T","Ꞇ":"T","Ꜩ":"TZ","Ⓤ":"U","U":"U","Ù":"U","Ú":"U","Û":"U","Ũ":"U","Ṹ":"U","Ū":"U","Ṻ":"U","Ŭ":"U","Ü":"U","Ǜ":"U","Ǘ":"U","Ǖ":"U","Ǚ":"U","Ủ":"U","Ů":"U","Ű":"U","Ǔ":"U","Ȕ":"U","Ȗ":"U","Ư":"U","Ừ":"U","Ứ":"U","Ữ":"U","Ử":"U","Ự":"U","Ụ":"U","Ṳ":"U","Ų":"U","Ṷ":"U","Ṵ":"U","Ʉ":"U","Ⓥ":"V","V":"V","Ṽ":"V","Ṿ":"V","Ʋ":"V","Ꝟ":"V","Ʌ":"V","Ꝡ":"VY","Ⓦ":"W","W":"W","Ẁ":"W","Ẃ":"W","Ŵ":"W","Ẇ":"W","Ẅ":"W","Ẉ":"W","Ⱳ":"W","Ⓧ":"X","X":"X","Ẋ":"X","Ẍ":"X","Ⓨ":"Y","Y":"Y","Ỳ":"Y","Ý":"Y","Ŷ":"Y","Ỹ":"Y","Ȳ":"Y","Ẏ":"Y","Ÿ":"Y","Ỷ":"Y","Ỵ":"Y","Ƴ":"Y","Ɏ":"Y","Ỿ":"Y","Ⓩ":"Z","Z":"Z","Ź":"Z","Ẑ":"Z","Ż":"Z","Ž":"Z","Ẓ":"Z","Ẕ":"Z","Ƶ":"Z","Ȥ":"Z","Ɀ":"Z","Ⱬ":"Z","Ꝣ":"Z","ⓐ":"a","a":"a","ẚ":"a","à":"a","á":"a","â":"a","ầ":"a","ấ":"a","ẫ":"a","ẩ":"a","ã":"a","ā":"a","ă":"a","ằ":"a","ắ":"a","ẵ":"a","ẳ":"a","ȧ":"a","ǡ":"a","ä":"a","ǟ":"a","ả":"a","å":"a","ǻ":"a","ǎ":"a","ȁ":"a","ȃ":"a","ạ":"a","ậ":"a","ặ":"a","ḁ":"a","ą":"a","ⱥ":"a","ɐ":"a","ꜳ":"aa","æ":"ae","ǽ":"ae","ǣ":"ae","ꜵ":"ao","ꜷ":"au","ꜹ":"av","ꜻ":"av","ꜽ":"ay","ⓑ":"b","b":"b","ḃ":"b","ḅ":"b","ḇ":"b","ƀ":"b","ƃ":"b","ɓ":"b","ⓒ":"c","c":"c","ć":"c","ĉ":"c","ċ":"c","č":"c","ç":"c","ḉ":"c","ƈ":"c","ȼ":"c","ꜿ":"c","ↄ":"c","ⓓ":"d","d":"d","ḋ":"d","ď":"d","ḍ":"d","ḑ":"d","ḓ":"d","ḏ":"d","đ":"d","ƌ":"d","ɖ":"d","ɗ":"d","ꝺ":"d","dz":"dz","dž":"dz","ⓔ":"e","e":"e","è":"e","é":"e","ê":"e","ề":"e","ế":"e","ễ":"e","ể":"e","ẽ":"e","ē":"e","ḕ":"e","ḗ":"e","ĕ":"e","ė":"e","ë":"e","ẻ":"e","ě":"e","ȅ":"e","ȇ":"e","ẹ":"e","ệ":"e","ȩ":"e","ḝ":"e","ę":"e","ḙ":"e","ḛ":"e","ɇ":"e","ɛ":"e","ǝ":"e","ⓕ":"f","f":"f","ḟ":"f","ƒ":"f","ꝼ":"f","ⓖ":"g","g":"g","ǵ":"g","ĝ":"g","ḡ":"g","ğ":"g","ġ":"g","ǧ":"g","ģ":"g","ǥ":"g","ɠ":"g","ꞡ":"g","ᵹ":"g","ꝿ":"g","ⓗ":"h","h":"h","ĥ":"h","ḣ":"h","ḧ":"h","ȟ":"h","ḥ":"h","ḩ":"h","ḫ":"h","ẖ":"h","ħ":"h","ⱨ":"h","ⱶ":"h","ɥ":"h","ƕ":"hv","ⓘ":"i","i":"i","ì":"i","í":"i","î":"i","ĩ":"i","ī":"i","ĭ":"i","ï":"i","ḯ":"i","ỉ":"i","ǐ":"i","ȉ":"i","ȋ":"i","ị":"i","į":"i","ḭ":"i","ɨ":"i","ı":"i","ⓙ":"j","j":"j","ĵ":"j","ǰ":"j","ɉ":"j","ⓚ":"k","k":"k","ḱ":"k","ǩ":"k","ḳ":"k","ķ":"k","ḵ":"k","ƙ":"k","ⱪ":"k","ꝁ":"k","ꝃ":"k","ꝅ":"k","ꞣ":"k","ⓛ":"l","l":"l","ŀ":"l","ĺ":"l","ľ":"l","ḷ":"l","ḹ":"l","ļ":"l","ḽ":"l","ḻ":"l","ſ":"l","ł":"l","ƚ":"l","ɫ":"l","ⱡ":"l","ꝉ":"l","ꞁ":"l","ꝇ":"l","lj":"lj","ⓜ":"m","m":"m","ḿ":"m","ṁ":"m","ṃ":"m","ɱ":"m","ɯ":"m","ⓝ":"n","n":"n","ǹ":"n","ń":"n","ñ":"n","ṅ":"n","ň":"n","ṇ":"n","ņ":"n","ṋ":"n","ṉ":"n","ƞ":"n","ɲ":"n","ʼn":"n","ꞑ":"n","ꞥ":"n","nj":"nj","ⓞ":"o","o":"o","ò":"o","ó":"o","ô":"o","ồ":"o","ố":"o","ỗ":"o","ổ":"o","õ":"o","ṍ":"o","ȭ":"o","ṏ":"o","ō":"o","ṑ":"o","ṓ":"o","ŏ":"o","ȯ":"o","ȱ":"o","ö":"o","ȫ":"o","ỏ":"o","ő":"o","ǒ":"o","ȍ":"o","ȏ":"o","ơ":"o","ờ":"o","ớ":"o","ỡ":"o","ở":"o","ợ":"o","ọ":"o","ộ":"o","ǫ":"o","ǭ":"o","ø":"o","ǿ":"o","ɔ":"o","ꝋ":"o","ꝍ":"o","ɵ":"o","ƣ":"oi","ȣ":"ou","ꝏ":"oo","ⓟ":"p","p":"p","ṕ":"p","ṗ":"p","ƥ":"p","ᵽ":"p","ꝑ":"p","ꝓ":"p","ꝕ":"p","ⓠ":"q","q":"q","ɋ":"q","ꝗ":"q","ꝙ":"q","ⓡ":"r","r":"r","ŕ":"r","ṙ":"r","ř":"r","ȑ":"r","ȓ":"r","ṛ":"r","ṝ":"r","ŗ":"r","ṟ":"r","ɍ":"r","ɽ":"r","ꝛ":"r","ꞧ":"r","ꞃ":"r","ⓢ":"s","s":"s","ß":"s","ś":"s","ṥ":"s","ŝ":"s","ṡ":"s","š":"s","ṧ":"s","ṣ":"s","ṩ":"s","ș":"s","ş":"s","ȿ":"s","ꞩ":"s","ꞅ":"s","ẛ":"s","ⓣ":"t","t":"t","ṫ":"t","ẗ":"t","ť":"t","ṭ":"t","ț":"t","ţ":"t","ṱ":"t","ṯ":"t","ŧ":"t","ƭ":"t","ʈ":"t","ⱦ":"t","ꞇ":"t","ꜩ":"tz","ⓤ":"u","u":"u","ù":"u","ú":"u","û":"u","ũ":"u","ṹ":"u","ū":"u","ṻ":"u","ŭ":"u","ü":"u","ǜ":"u","ǘ":"u","ǖ":"u","ǚ":"u","ủ":"u","ů":"u","ű":"u","ǔ":"u","ȕ":"u","ȗ":"u","ư":"u","ừ":"u","ứ":"u","ữ":"u","ử":"u","ự":"u","ụ":"u","ṳ":"u","ų":"u","ṷ":"u","ṵ":"u","ʉ":"u","ⓥ":"v","v":"v","ṽ":"v","ṿ":"v","ʋ":"v","ꝟ":"v","ʌ":"v","ꝡ":"vy","ⓦ":"w","w":"w","ẁ":"w","ẃ":"w","ŵ":"w","ẇ":"w","ẅ":"w","ẘ":"w","ẉ":"w","ⱳ":"w","ⓧ":"x","x":"x","ẋ":"x","ẍ":"x","ⓨ":"y","y":"y","ỳ":"y","ý":"y","ŷ":"y","ỹ":"y","ȳ":"y","ẏ":"y","ÿ":"y","ỷ":"y","ẙ":"y","ỵ":"y","ƴ":"y","ɏ":"y","ỿ":"y","ⓩ":"z","z":"z","ź":"z","ẑ":"z","ż":"z","ž":"z","ẓ":"z","ẕ":"z","ƶ":"z","ȥ":"z","ɀ":"z","ⱬ":"z","ꝣ":"z","Ά":"Α","Έ":"Ε","Ή":"Η","Ί":"Ι","Ϊ":"Ι","Ό":"Ο","Ύ":"Υ","Ϋ":"Υ","Ώ":"Ω","ά":"α","έ":"ε","ή":"η","ί":"ι","ϊ":"ι","ΐ":"ι","ό":"ο","ύ":"υ","ϋ":"υ","ΰ":"υ","ω":"ω","ς":"σ"}}),b.define("select2/data/base",["../utils"],function(a){function b(a,c){b.__super__.constructor.call(this)}return a.Extend(b,a.Observable),b.prototype.current=function(a){throw new Error("The `current` method must be defined in child classes.")},b.prototype.query=function(a,b){throw new Error("The `query` method must be defined in child classes.")},b.prototype.bind=function(a,b){},b.prototype.destroy=function(){},b.prototype.generateResultId=function(b,c){var d=b.id+"-result-";return d+=a.generateChars(4),null!=c.id?d+="-"+c.id.toString():d+="-"+a.generateChars(4),d},b}),b.define("select2/data/select",["./base","../utils","jquery"],function(a,b,c){function d(a,b){this.$element=a,this.options=b,d.__super__.constructor.call(this)}return b.Extend(d,a),d.prototype.current=function(a){var b=[],d=this;this.$element.find(":selected").each(function(){var a=c(this),e=d.item(a);b.push(e)}),a(b)},d.prototype.select=function(a){var b=this;if(a.selected=!0,c(a.element).is("option"))return a.element.selected=!0,void this.$element.trigger("change");if(this.$element.prop("multiple"))this.current(function(d){var e=[];a=[a],a.push.apply(a,d);for(var f=0;f<a.length;f++){var g=a[f].id;-1===c.inArray(g,e)&&e.push(g)}b.$element.val(e),b.$element.trigger("change")});else{var d=a.id;this.$element.val(d),this.$element.trigger("change")}},d.prototype.unselect=function(a){var b=this;if(this.$element.prop("multiple")){if(a.selected=!1,c(a.element).is("option"))return a.element.selected=!1,void this.$element.trigger("change");this.current(function(d){for(var e=[],f=0;f<d.length;f++){var g=d[f].id;g!==a.id&&-1===c.inArray(g,e)&&e.push(g)}b.$element.val(e),b.$element.trigger("change")})}},d.prototype.bind=function(a,b){var c=this;this.container=a,a.on("select",function(a){c.select(a.data)}),a.on("unselect",function(a){c.unselect(a.data)})},d.prototype.destroy=function(){this.$element.find("*").each(function(){c.removeData(this,"data")})},d.prototype.query=function(a,b){var d=[],e=this;this.$element.children().each(function(){var b=c(this);if(b.is("option")||b.is("optgroup")){var f=e.item(b),g=e.matches(a,f);null!==g&&d.push(g)}}),b({results:d})},d.prototype.addOptions=function(a){b.appendMany(this.$element,a)},d.prototype.option=function(a){var b;a.children?(b=document.createElement("optgroup"),b.label=a.text):(b=document.createElement("option"),void 0!==b.textContent?b.textContent=a.text:b.innerText=a.text),void 0!==a.id&&(b.value=a.id),a.disabled&&(b.disabled=!0),a.selected&&(b.selected=!0),a.title&&(b.title=a.title);var d=c(b),e=this._normalizeItem(a);return e.element=b,c.data(b,"data",e),d},d.prototype.item=function(a){var b={};if(null!=(b=c.data(a[0],"data")))return b;if(a.is("option"))b={id:a.val(),text:a.text(),disabled:a.prop("disabled"),selected:a.prop("selected"),title:a.prop("title")};else if(a.is("optgroup")){b={text:a.prop("label"),children:[],title:a.prop("title")};for(var d=a.children("option"),e=[],f=0;f<d.length;f++){var g=c(d[f]),h=this.item(g);e.push(h)}b.children=e}return b=this._normalizeItem(b),b.element=a[0],c.data(a[0],"data",b),b},d.prototype._normalizeItem=function(a){c.isPlainObject(a)||(a={id:a,text:a}),a=c.extend({},{text:""},a);var b={selected:!1,disabled:!1};return null!=a.id&&(a.id=a.id.toString()),null!=a.text&&(a.text=a.text.toString()),null==a._resultId&&a.id&&null!=this.container&&(a._resultId=this.generateResultId(this.container,a)),c.extend({},b,a)},d.prototype.matches=function(a,b){return this.options.get("matcher")(a,b)},d}),b.define("select2/data/array",["./select","../utils","jquery"],function(a,b,c){function d(a,b){var c=b.get("data")||[];d.__super__.constructor.call(this,a,b),this.addOptions(this.convertToOptions(c))}return b.Extend(d,a),d.prototype.select=function(a){var b=this.$element.find("option").filter(function(b,c){return c.value==a.id.toString()});0===b.length&&(b=this.option(a),this.addOptions(b)),d.__super__.select.call(this,a)},d.prototype.convertToOptions=function(a){function d(a){return function(){return c(this).val()==a.id}}for(var e=this,f=this.$element.find("option"),g=f.map(function(){return e.item(c(this)).id}).get(),h=[],i=0;i<a.length;i++){var j=this._normalizeItem(a[i]);if(c.inArray(j.id,g)>=0){var k=f.filter(d(j)),l=this.item(k),m=c.extend(!0,{},j,l),n=this.option(m);k.replaceWith(n)}else{var o=this.option(j);if(j.children){var p=this.convertToOptions(j.children);b.appendMany(o,p)}h.push(o)}}return h},d}),b.define("select2/data/ajax",["./array","../utils","jquery"],function(a,b,c){function d(a,b){this.ajaxOptions=this._applyDefaults(b.get("ajax")),null!=this.ajaxOptions.processResults&&(this.processResults=this.ajaxOptions.processResults),d.__super__.constructor.call(this,a,b)}return b.Extend(d,a),d.prototype._applyDefaults=function(a){var b={data:function(a){return c.extend({},a,{q:a.term})},transport:function(a,b,d){var e=c.ajax(a);return e.then(b),e.fail(d),e}};return c.extend({},b,a,!0)},d.prototype.processResults=function(a){return a},d.prototype.query=function(a,b){function d(){var d=f.transport(f,function(d){var f=e.processResults(d,a);e.options.get("debug")&&window.console&&console.error&&(f&&f.results&&c.isArray(f.results)||console.error("Select2: The AJAX results did not return an array in the `results` key of the response.")),b(f)},function(){d.status&&"0"===d.status||e.trigger("results:message",{message:"errorLoading"})});e._request=d}var e=this;null!=this._request&&(c.isFunction(this._request.abort)&&this._request.abort(),this._request=null);var f=c.extend({type:"GET"},this.ajaxOptions);"function"==typeof f.url&&(f.url=f.url.call(this.$element,a)),"function"==typeof f.data&&(f.data=f.data.call(this.$element,a)),this.ajaxOptions.delay&&null!=a.term?(this._queryTimeout&&window.clearTimeout(this._queryTimeout),this._queryTimeout=window.setTimeout(d,this.ajaxOptions.delay)):d()},d}),b.define("select2/data/tags",["jquery"],function(a){function b(b,c,d){var e=d.get("tags"),f=d.get("createTag");void 0!==f&&(this.createTag=f);var g=d.get("insertTag");if(void 0!==g&&(this.insertTag=g),b.call(this,c,d),a.isArray(e))for(var h=0;h<e.length;h++){var i=e[h],j=this._normalizeItem(i),k=this.option(j);this.$element.append(k)}}return b.prototype.query=function(a,b,c){function d(a,f){for(var g=a.results,h=0;h<g.length;h++){var i=g[h],j=null!=i.children&&!d({results:i.children},!0);if((i.text||"").toUpperCase()===(b.term||"").toUpperCase()||j)return!f&&(a.data=g,void c(a))}if(f)return!0;var k=e.createTag(b);if(null!=k){var l=e.option(k);l.attr("data-select2-tag",!0),e.addOptions([l]),e.insertTag(g,k)}a.results=g,c(a)}var e=this;if(this._removeOldTags(),null==b.term||null!=b.page)return void a.call(this,b,c);a.call(this,b,d)},b.prototype.createTag=function(b,c){var d=a.trim(c.term);return""===d?null:{id:d,text:d}},b.prototype.insertTag=function(a,b,c){b.unshift(c)},b.prototype._removeOldTags=function(b){this._lastTag;this.$element.find("option[data-select2-tag]").each(function(){this.selected||a(this).remove()})},b}),b.define("select2/data/tokenizer",["jquery"],function(a){function b(a,b,c){var d=c.get("tokenizer");void 0!==d&&(this.tokenizer=d),a.call(this,b,c)}return b.prototype.bind=function(a,b,c){a.call(this,b,c),this.$search=b.dropdown.$search||b.selection.$search||c.find(".select2-search__field")},b.prototype.query=function(b,c,d){function e(b){var c=g._normalizeItem(b);if(!g.$element.find("option").filter(function(){return a(this).val()===c.id}).length){var d=g.option(c);d.attr("data-select2-tag",!0),g._removeOldTags(),g.addOptions([d])}f(c)}function f(a){g.trigger("select",{data:a})}var g=this;c.term=c.term||"";var h=this.tokenizer(c,this.options,e);h.term!==c.term&&(this.$search.length&&(this.$search.val(h.term),this.$search.focus()),c.term=h.term),b.call(this,c,d)},b.prototype.tokenizer=function(b,c,d,e){for(var f=d.get("tokenSeparators")||[],g=c.term,h=0,i=this.createTag||function(a){return{id:a.term,text:a.term}};h<g.length;){var j=g[h];if(-1!==a.inArray(j,f)){var k=g.substr(0,h),l=a.extend({},c,{term:k}),m=i(l);null!=m?(e(m),g=g.substr(h+1)||"",h=0):h++}else h++}return{term:g}},b}),b.define("select2/data/minimumInputLength",[],function(){function a(a,b,c){this.minimumInputLength=c.get("minimumInputLength"),a.call(this,b,c)}return a.prototype.query=function(a,b,c){if(b.term=b.term||"",b.term.length<this.minimumInputLength)return void this.trigger("results:message",{message:"inputTooShort",args:{minimum:this.minimumInputLength,input:b.term,params:b}});a.call(this,b,c)},a}),b.define("select2/data/maximumInputLength",[],function(){function a(a,b,c){this.maximumInputLength=c.get("maximumInputLength"),a.call(this,b,c)}return a.prototype.query=function(a,b,c){if(b.term=b.term||"",this.maximumInputLength>0&&b.term.length>this.maximumInputLength)return void this.trigger("results:message",{message:"inputTooLong",args:{maximum:this.maximumInputLength,input:b.term,params:b}});a.call(this,b,c)},a}),b.define("select2/data/maximumSelectionLength",[],function(){function a(a,b,c){this.maximumSelectionLength=c.get("maximumSelectionLength"),a.call(this,b,c)}return a.prototype.query=function(a,b,c){var d=this;this.current(function(e){var f=null!=e?e.length:0;if(d.maximumSelectionLength>0&&f>=d.maximumSelectionLength)return void d.trigger("results:message",{message:"maximumSelected",args:{maximum:d.maximumSelectionLength}});a.call(d,b,c)})},a}),b.define("select2/dropdown",["jquery","./utils"],function(a,b){function c(a,b){this.$element=a,this.options=b,c.__super__.constructor.call(this)}return b.Extend(c,b.Observable),c.prototype.render=function(){var b=a('<span class="select2-dropdown"><span class="select2-results"></span></span>');return b.attr("dir",this.options.get("dir")),this.$dropdown=b,b},c.prototype.bind=function(){},c.prototype.position=function(a,b){},c.prototype.destroy=function(){this.$dropdown.remove()},c}),b.define("select2/dropdown/search",["jquery","../utils"],function(a,b){function c(){}return c.prototype.render=function(b){var c=b.call(this),d=a('<span class="select2-search select2-search--dropdown"><input class="select2-search__field" type="search" tabindex="-1" autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false" role="textbox" /></span>');return this.$searchContainer=d,this.$search=d.find("input"),c.prepend(d),c},c.prototype.bind=function(b,c,d){var e=this;b.call(this,c,d),this.$search.on("keydown",function(a){e.trigger("keypress",a),e._keyUpPrevented=a.isDefaultPrevented()}),this.$search.on("input",function(b){a(this).off("keyup")}),this.$search.on("keyup input",function(a){e.handleSearch(a)}),c.on("open",function(){e.$search.attr("tabindex",0),e.$search.focus(),window.setTimeout(function(){e.$search.focus()},0)}),c.on("close",function(){e.$search.attr("tabindex",-1),e.$search.val("")}),c.on("focus",function(){c.isOpen()||e.$search.focus()}),c.on("results:all",function(a){if(null==a.query.term||""===a.query.term){e.showSearch(a)?e.$searchContainer.removeClass("select2-search--hide"):e.$searchContainer.addClass("select2-search--hide")}})},c.prototype.handleSearch=function(a){if(!this._keyUpPrevented){var b=this.$search.val();this.trigger("query",{term:b})}this._keyUpPrevented=!1},c.prototype.showSearch=function(a,b){return!0},c}),b.define("select2/dropdown/hidePlaceholder",[],function(){function a(a,b,c,d){this.placeholder=this.normalizePlaceholder(c.get("placeholder")),a.call(this,b,c,d)}return a.prototype.append=function(a,b){b.results=this.removePlaceholder(b.results),a.call(this,b)},a.prototype.normalizePlaceholder=function(a,b){return"string"==typeof b&&(b={id:"",text:b}),b},a.prototype.removePlaceholder=function(a,b){for(var c=b.slice(0),d=b.length-1;d>=0;d--){var e=b[d];this.placeholder.id===e.id&&c.splice(d,1)}return c},a}),b.define("select2/dropdown/infiniteScroll",["jquery"],function(a){function b(a,b,c,d){this.lastParams={},a.call(this,b,c,d),this.$loadingMore=this.createLoadingMore(),this.loading=!1}return b.prototype.append=function(a,b){this.$loadingMore.remove(),this.loading=!1,a.call(this,b),this.showLoadingMore(b)&&this.$results.append(this.$loadingMore)},b.prototype.bind=function(b,c,d){var e=this;b.call(this,c,d),c.on("query",function(a){e.lastParams=a,e.loading=!0}),c.on("query:append",function(a){e.lastParams=a,e.loading=!0}),this.$results.on("scroll",function(){var b=a.contains(document.documentElement,e.$loadingMore[0]);if(!e.loading&&b){e.$results.offset().top+e.$results.outerHeight(!1)+50>=e.$loadingMore.offset().top+e.$loadingMore.outerHeight(!1)&&e.loadMore()}})},b.prototype.loadMore=function(){this.loading=!0;var b=a.extend({},{page:1},this.lastParams);b.page++,this.trigger("query:append",b)},b.prototype.showLoadingMore=function(a,b){return b.pagination&&b.pagination.more},b.prototype.createLoadingMore=function(){var b=a('<li class="select2-results__option select2-results__option--load-more"role="treeitem" aria-disabled="true"></li>'),c=this.options.get("translations").get("loadingMore");return b.html(c(this.lastParams)),b},b}),b.define("select2/dropdown/attachBody",["jquery","../utils"],function(a,b){function c(b,c,d){this.$dropdownParent=d.get("dropdownParent")||a(document.body),b.call(this,c,d)}return c.prototype.bind=function(a,b,c){var d=this,e=!1;a.call(this,b,c),b.on("open",function(){d._showDropdown(),d._attachPositioningHandler(b),e||(e=!0,b.on("results:all",function(){d._positionDropdown(),d._resizeDropdown()}),b.on("results:append",function(){d._positionDropdown(),d._resizeDropdown()}))}),b.on("close",function(){d._hideDropdown(),d._detachPositioningHandler(b)}),this.$dropdownContainer.on("mousedown",function(a){a.stopPropagation()})},c.prototype.destroy=function(a){a.call(this),this.$dropdownContainer.remove()},c.prototype.position=function(a,b,c){b.attr("class",c.attr("class")),b.removeClass("select2"),b.addClass("select2-container--open"),b.css({position:"absolute",top:-999999}),this.$container=c},c.prototype.render=function(b){var c=a("<span></span>"),d=b.call(this);return c.append(d),this.$dropdownContainer=c,c},c.prototype._hideDropdown=function(a){this.$dropdownContainer.detach()},c.prototype._attachPositioningHandler=function(c,d){var e=this,f="scroll.select2."+d.id,g="resize.select2."+d.id,h="orientationchange.select2."+d.id,i=this.$container.parents().filter(b.hasScroll);i.each(function(){a(this).data("select2-scroll-position",{x:a(this).scrollLeft(),y:a(this).scrollTop()})}),i.on(f,function(b){var c=a(this).data("select2-scroll-position");a(this).scrollTop(c.y)}),a(window).on(f+" "+g+" "+h,function(a){e._positionDropdown(),e._resizeDropdown()})},c.prototype._detachPositioningHandler=function(c,d){var e="scroll.select2."+d.id,f="resize.select2."+d.id,g="orientationchange.select2."+d.id;this.$container.parents().filter(b.hasScroll).off(e),a(window).off(e+" "+f+" "+g)},c.prototype._positionDropdown=function(){var b=a(window),c=this.$dropdown.hasClass("select2-dropdown--above"),d=this.$dropdown.hasClass("select2-dropdown--below"),e=null,f=this.$container.offset();f.bottom=f.top+this.$container.outerHeight(!1);var g={height:this.$container.outerHeight(!1)};g.top=f.top,g.bottom=f.top+g.height;var h={height:this.$dropdown.outerHeight(!1)},i={top:b.scrollTop(),bottom:b.scrollTop()+b.height()},j=i.top<f.top-h.height,k=i.bottom>f.bottom+h.height,l={left:f.left,top:g.bottom},m=this.$dropdownParent;"static"===m.css("position")&&(m=m.offsetParent());var n=m.offset();l.top-=n.top,l.left-=n.left,c||d||(e="below"),k||!j||c?!j&&k&&c&&(e="below"):e="above",("above"==e||c&&"below"!==e)&&(l.top=g.top-n.top-h.height),null!=e&&(this.$dropdown.removeClass("select2-dropdown--below select2-dropdown--above").addClass("select2-dropdown--"+e),this.$container.removeClass("select2-container--below select2-container--above").addClass("select2-container--"+e)),this.$dropdownContainer.css(l)},c.prototype._resizeDropdown=function(){var a={width:this.$container.outerWidth(!1)+"px"};this.options.get("dropdownAutoWidth")&&(a.minWidth=a.width,a.position="relative",a.width="auto"),this.$dropdown.css(a)},c.prototype._showDropdown=function(a){this.$dropdownContainer.appendTo(this.$dropdownParent),this._positionDropdown(),this._resizeDropdown()},c}),b.define("select2/dropdown/minimumResultsForSearch",[],function(){function a(b){for(var c=0,d=0;d<b.length;d++){var e=b[d];e.children?c+=a(e.children):c++}return c}function b(a,b,c,d){this.minimumResultsForSearch=c.get("minimumResultsForSearch"),this.minimumResultsForSearch<0&&(this.minimumResultsForSearch=1/0),a.call(this,b,c,d)}return b.prototype.showSearch=function(b,c){return!(a(c.data.results)<this.minimumResultsForSearch)&&b.call(this,c)},b}),b.define("select2/dropdown/selectOnClose",[],function(){function a(){}return a.prototype.bind=function(a,b,c){var d=this;a.call(this,b,c),b.on("close",function(a){d._handleSelectOnClose(a)})},a.prototype._handleSelectOnClose=function(a,b){if(b&&null!=b.originalSelect2Event){var c=b.originalSelect2Event;if("select"===c._type||"unselect"===c._type)return}var d=this.getHighlightedResults();if(!(d.length<1)){var e=d.data("data");null!=e.element&&e.element.selected||null==e.element&&e.selected||this.trigger("select",{data:e})}},a}),b.define("select2/dropdown/closeOnSelect",[],function(){function a(){}return a.prototype.bind=function(a,b,c){var d=this;a.call(this,b,c),b.on("select",function(a){d._selectTriggered(a)}),b.on("unselect",function(a){d._selectTriggered(a)})},a.prototype._selectTriggered=function(a,b){var c=b.originalEvent;c&&c.ctrlKey||this.trigger("close",{originalEvent:c,originalSelect2Event:b})},a}),b.define("select2/i18n/en",[],function(){return{errorLoading:function(){return"The results could not be loaded."},inputTooLong:function(a){var b=a.input.length-a.maximum,c="Please delete "+b+" character";return 1!=b&&(c+="s"),c},inputTooShort:function(a){return"Please enter "+(a.minimum-a.input.length)+" or more characters"},loadingMore:function(){return"Loading more results…"},maximumSelected:function(a){var b="You can only select "+a.maximum+" item";return 1!=a.maximum&&(b+="s"),b},noResults:function(){return"No results found"},searching:function(){return"Searching…"}}}),b.define("select2/defaults",["jquery","require","./results","./selection/single","./selection/multiple","./selection/placeholder","./selection/allowClear","./selection/search","./selection/eventRelay","./utils","./translation","./diacritics","./data/select","./data/array","./data/ajax","./data/tags","./data/tokenizer","./data/minimumInputLength","./data/maximumInputLength","./data/maximumSelectionLength","./dropdown","./dropdown/search","./dropdown/hidePlaceholder","./dropdown/infiniteScroll","./dropdown/attachBody","./dropdown/minimumResultsForSearch","./dropdown/selectOnClose","./dropdown/closeOnSelect","./i18n/en"],function(a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,A,B,C){function D(){this.reset()}return D.prototype.apply=function(l){if(l=a.extend(!0,{},this.defaults,l),null==l.dataAdapter){if(null!=l.ajax?l.dataAdapter=o:null!=l.data?l.dataAdapter=n:l.dataAdapter=m,l.minimumInputLength>0&&(l.dataAdapter=j.Decorate(l.dataAdapter,r)),l.maximumInputLength>0&&(l.dataAdapter=j.Decorate(l.dataAdapter,s)),l.maximumSelectionLength>0&&(l.dataAdapter=j.Decorate(l.dataAdapter,t)),l.tags&&(l.dataAdapter=j.Decorate(l.dataAdapter,p)),null==l.tokenSeparators&&null==l.tokenizer||(l.dataAdapter=j.Decorate(l.dataAdapter,q)),null!=l.query){var C=b(l.amdBase+"compat/query");l.dataAdapter=j.Decorate(l.dataAdapter,C)}if(null!=l.initSelection){var D=b(l.amdBase+"compat/initSelection");l.dataAdapter=j.Decorate(l.dataAdapter,D)}}if(null==l.resultsAdapter&&(l.resultsAdapter=c,null!=l.ajax&&(l.resultsAdapter=j.Decorate(l.resultsAdapter,x)),null!=l.placeholder&&(l.resultsAdapter=j.Decorate(l.resultsAdapter,w)),l.selectOnClose&&(l.resultsAdapter=j.Decorate(l.resultsAdapter,A))),null==l.dropdownAdapter){if(l.multiple)l.dropdownAdapter=u;else{var E=j.Decorate(u,v);l.dropdownAdapter=E}if(0!==l.minimumResultsForSearch&&(l.dropdownAdapter=j.Decorate(l.dropdownAdapter,z)),l.closeOnSelect&&(l.dropdownAdapter=j.Decorate(l.dropdownAdapter,B)),null!=l.dropdownCssClass||null!=l.dropdownCss||null!=l.adaptDropdownCssClass){var F=b(l.amdBase+"compat/dropdownCss");l.dropdownAdapter=j.Decorate(l.dropdownAdapter,F)}l.dropdownAdapter=j.Decorate(l.dropdownAdapter,y)}if(null==l.selectionAdapter){if(l.multiple?l.selectionAdapter=e:l.selectionAdapter=d,null!=l.placeholder&&(l.selectionAdapter=j.Decorate(l.selectionAdapter,f)),l.allowClear&&(l.selectionAdapter=j.Decorate(l.selectionAdapter,g)),l.multiple&&(l.selectionAdapter=j.Decorate(l.selectionAdapter,h)),null!=l.containerCssClass||null!=l.containerCss||null!=l.adaptContainerCssClass){var G=b(l.amdBase+"compat/containerCss");l.selectionAdapter=j.Decorate(l.selectionAdapter,G)}l.selectionAdapter=j.Decorate(l.selectionAdapter,i)}if("string"==typeof l.language)if(l.language.indexOf("-")>0){var H=l.language.split("-"),I=H[0];l.language=[l.language,I]}else l.language=[l.language];if(a.isArray(l.language)){var J=new k;l.language.push("en");for(var K=l.language,L=0;L<K.length;L++){var M=K[L],N={};try{N=k.loadPath(M)}catch(a){try{M=this.defaults.amdLanguageBase+M,N=k.loadPath(M)}catch(a){l.debug&&window.console&&console.warn&&console.warn('Select2: The language file for "'+M+'" could not be automatically loaded. A fallback will be used instead.');continue}}J.extend(N)}l.translations=J}else{var O=k.loadPath(this.defaults.amdLanguageBase+"en"),P=new k(l.language);P.extend(O),l.translations=P}return l},D.prototype.reset=function(){function b(a){function b(a){return l[a]||a}return a.replace(/[^\u0000-\u007E]/g,b)}function c(d,e){if(""===a.trim(d.term))return e;if(e.children&&e.children.length>0){for(var f=a.extend(!0,{},e),g=e.children.length-1;g>=0;g--){null==c(d,e.children[g])&&f.children.splice(g,1)}return f.children.length>0?f:c(d,f)}var h=b(e.text).toUpperCase(),i=b(d.term).toUpperCase();return h.indexOf(i)>-1?e:null}this.defaults={amdBase:"./",amdLanguageBase:"./i18n/",closeOnSelect:!0,debug:!1,dropdownAutoWidth:!1,escapeMarkup:j.escapeMarkup,language:C,matcher:c,minimumInputLength:0,maximumInputLength:0,maximumSelectionLength:0,minimumResultsForSearch:0,selectOnClose:!1,sorter:function(a){return a},templateResult:function(a){return a.text},templateSelection:function(a){return a.text},theme:"default",width:"resolve"}},D.prototype.set=function(b,c){var d=a.camelCase(b),e={};e[d]=c;var f=j._convertData(e);a.extend(this.defaults,f)},new D}),b.define("select2/options",["require","jquery","./defaults","./utils"],function(a,b,c,d){function e(b,e){if(this.options=b,null!=e&&this.fromElement(e),this.options=c.apply(this.options),e&&e.is("input")){var f=a(this.get("amdBase")+"compat/inputData");this.options.dataAdapter=d.Decorate(this.options.dataAdapter,f)}}return e.prototype.fromElement=function(a){var c=["select2"];null==this.options.multiple&&(this.options.multiple=a.prop("multiple")),null==this.options.disabled&&(this.options.disabled=a.prop("disabled")),null==this.options.language&&(a.prop("lang")?this.options.language=a.prop("lang").toLowerCase():a.closest("[lang]").prop("lang")&&(this.options.language=a.closest("[lang]").prop("lang"))),null==this.options.dir&&(a.prop("dir")?this.options.dir=a.prop("dir"):a.closest("[dir]").prop("dir")?this.options.dir=a.closest("[dir]").prop("dir"):this.options.dir="ltr"),a.prop("disabled",this.options.disabled),a.prop("multiple",this.options.multiple),a.data("select2Tags")&&(this.options.debug&&window.console&&console.warn&&console.warn('Select2: The `data-select2-tags` attribute has been changed to use the `data-data` and `data-tags="true"` attributes and will be removed in future versions of Select2.'),a.data("data",a.data("select2Tags")),a.data("tags",!0)),a.data("ajaxUrl")&&(this.options.debug&&window.console&&console.warn&&console.warn("Select2: The `data-ajax-url` attribute has been changed to `data-ajax--url` and support for the old attribute will be removed in future versions of Select2."),a.attr("ajax--url",a.data("ajaxUrl")),a.data("ajax--url",a.data("ajaxUrl")));var e={};e=b.fn.jquery&&"1."==b.fn.jquery.substr(0,2)&&a[0].dataset?b.extend(!0,{},a[0].dataset,a.data()):a.data();var f=b.extend(!0,{},e);f=d._convertData(f);for(var g in f)b.inArray(g,c)>-1||(b.isPlainObject(this.options[g])?b.extend(this.options[g],f[g]):this.options[g]=f[g]);return this},e.prototype.get=function(a){return this.options[a]},e.prototype.set=function(a,b){this.options[a]=b},e}),b.define("select2/core",["jquery","./options","./utils","./keys"],function(a,b,c,d){var e=function(a,c){null!=a.data("select2")&&a.data("select2").destroy(),this.$element=a,this.id=this._generateId(a),c=c||{},this.options=new b(c,a),e.__super__.constructor.call(this);var d=a.attr("tabindex")||0;a.data("old-tabindex",d),a.attr("tabindex","-1");var f=this.options.get("dataAdapter");this.dataAdapter=new f(a,this.options);var g=this.render();this._placeContainer(g);var h=this.options.get("selectionAdapter");this.selection=new h(a,this.options),this.$selection=this.selection.render(),this.selection.position(this.$selection,g);var i=this.options.get("dropdownAdapter");this.dropdown=new i(a,this.options),this.$dropdown=this.dropdown.render(),this.dropdown.position(this.$dropdown,g);var j=this.options.get("resultsAdapter");this.results=new j(a,this.options,this.dataAdapter),this.$results=this.results.render(),this.results.position(this.$results,this.$dropdown);var k=this;this._bindAdapters(),this._registerDomEvents(),this._registerDataEvents(),this._registerSelectionEvents(),this._registerDropdownEvents(),this._registerResultsEvents(),this._registerEvents(),this.dataAdapter.current(function(a){k.trigger("selection:update",{data:a})}),a.addClass("select2-hidden-accessible"),a.attr("aria-hidden","true"),this._syncAttributes(),a.data("select2",this)};return c.Extend(e,c.Observable),e.prototype._generateId=function(a){var b="";return b=null!=a.attr("id")?a.attr("id"):null!=a.attr("name")?a.attr("name")+"-"+c.generateChars(2):c.generateChars(4),b=b.replace(/(:|\.|\[|\]|,)/g,""),b="select2-"+b},e.prototype._placeContainer=function(a){a.insertAfter(this.$element);var b=this._resolveWidth(this.$element,this.options.get("width"));null!=b&&a.css("width",b)},e.prototype._resolveWidth=function(a,b){var c=/^width:(([-+]?([0-9]*\.)?[0-9]+)(px|em|ex|%|in|cm|mm|pt|pc))/i;if("resolve"==b){var d=this._resolveWidth(a,"style");return null!=d?d:this._resolveWidth(a,"element")}if("element"==b){var e=a.outerWidth(!1);return e<=0?"auto":e+"px"}if("style"==b){var f=a.attr("style");if("string"!=typeof f)return null;for(var g=f.split(";"),h=0,i=g.length;h<i;h+=1){var j=g[h].replace(/\s/g,""),k=j.match(c);if(null!==k&&k.length>=1)return k[1]}return null}return b},e.prototype._bindAdapters=function(){this.dataAdapter.bind(this,this.$container),this.selection.bind(this,this.$container),this.dropdown.bind(this,this.$container),this.results.bind(this,this.$container)},e.prototype._registerDomEvents=function(){var b=this;this.$element.on("change.select2",function(){b.dataAdapter.current(function(a){b.trigger("selection:update",{data:a})})}),this.$element.on("focus.select2",function(a){b.trigger("focus",a)}),this._syncA=c.bind(this._syncAttributes,this),this._syncS=c.bind(this._syncSubtree,this),this.$element[0].attachEvent&&this.$element[0].attachEvent("onpropertychange",this._syncA);var d=window.MutationObserver||window.WebKitMutationObserver||window.MozMutationObserver;null!=d?(this._observer=new d(function(c){a.each(c,b._syncA),a.each(c,b._syncS)}),this._observer.observe(this.$element[0],{attributes:!0,childList:!0,subtree:!1})):this.$element[0].addEventListener&&(this.$element[0].addEventListener("DOMAttrModified",b._syncA,!1),this.$element[0].addEventListener("DOMNodeInserted",b._syncS,!1),this.$element[0].addEventListener("DOMNodeRemoved",b._syncS,!1))},e.prototype._registerDataEvents=function(){var a=this;this.dataAdapter.on("*",function(b,c){a.trigger(b,c)})},e.prototype._registerSelectionEvents=function(){var b=this,c=["toggle","focus"];this.selection.on("toggle",function(){b.toggleDropdown()}),this.selection.on("focus",function(a){b.focus(a)}),this.selection.on("*",function(d,e){-1===a.inArray(d,c)&&b.trigger(d,e)})},e.prototype._registerDropdownEvents=function(){var a=this;this.dropdown.on("*",function(b,c){a.trigger(b,c)})},e.prototype._registerResultsEvents=function(){var a=this;this.results.on("*",function(b,c){a.trigger(b,c)})},e.prototype._registerEvents=function(){var a=this;this.on("open",function(){a.$container.addClass("select2-container--open")}),this.on("close",function(){a.$container.removeClass("select2-container--open")}),this.on("enable",function(){a.$container.removeClass("select2-container--disabled")}),this.on("disable",function(){a.$container.addClass("select2-container--disabled")}),this.on("blur",function(){a.$container.removeClass("select2-container--focus")}),this.on("query",function(b){a.isOpen()||a.trigger("open",{}),this.dataAdapter.query(b,function(c){a.trigger("results:all",{data:c,query:b})})}),this.on("query:append",function(b){this.dataAdapter.query(b,function(c){a.trigger("results:append",{data:c,query:b})})}),this.on("keypress",function(b){var c=b.which;a.isOpen()?c===d.ESC||c===d.TAB||c===d.UP&&b.altKey?(a.close(),b.preventDefault()):c===d.ENTER?(a.trigger("results:select",{}),b.preventDefault()):c===d.SPACE&&b.ctrlKey?(a.trigger("results:toggle",{}),b.preventDefault()):c===d.UP?(a.trigger("results:previous",{}),b.preventDefault()):c===d.DOWN&&(a.trigger("results:next",{}),b.preventDefault()):(c===d.ENTER||c===d.SPACE||c===d.DOWN&&b.altKey)&&(a.open(),b.preventDefault())})},e.prototype._syncAttributes=function(){this.options.set("disabled",this.$element.prop("disabled")),this.options.get("disabled")?(this.isOpen()&&this.close(),this.trigger("disable",{})):this.trigger("enable",{})},e.prototype._syncSubtree=function(a,b){var c=!1,d=this;if(!a||!a.target||"OPTION"===a.target.nodeName||"OPTGROUP"===a.target.nodeName){if(b)if(b.addedNodes&&b.addedNodes.length>0)for(var e=0;e<b.addedNodes.length;e++){var f=b.addedNodes[e];f.selected&&(c=!0)}else b.removedNodes&&b.removedNodes.length>0&&(c=!0);else c=!0;c&&this.dataAdapter.current(function(a){d.trigger("selection:update",{data:a})})}},e.prototype.trigger=function(a,b){var c=e.__super__.trigger,d={open:"opening",close:"closing",select:"selecting",unselect:"unselecting"};if(void 0===b&&(b={}),a in d){var f=d[a],g={prevented:!1,name:a,args:b};if(c.call(this,f,g),g.prevented)return void(b.prevented=!0)}c.call(this,a,b)},e.prototype.toggleDropdown=function(){this.options.get("disabled")||(this.isOpen()?this.close():this.open())},e.prototype.open=function(){this.isOpen()||this.trigger("query",{})},e.prototype.close=function(){this.isOpen()&&this.trigger("close",{})},e.prototype.isOpen=function(){return this.$container.hasClass("select2-container--open")},e.prototype.hasFocus=function(){return this.$container.hasClass("select2-container--focus")},e.prototype.focus=function(a){this.hasFocus()||(this.$container.addClass("select2-container--focus"),this.trigger("focus",{}))},e.prototype.enable=function(a){this.options.get("debug")&&window.console&&console.warn&&console.warn('Select2: The `select2("enable")` method has been deprecated and will be removed in later Select2 versions. Use $element.prop("disabled") instead.'),null!=a&&0!==a.length||(a=[!0]);var b=!a[0];this.$element.prop("disabled",b)},e.prototype.data=function(){this.options.get("debug")&&arguments.length>0&&window.console&&console.warn&&console.warn('Select2: Data can no longer be set using `select2("data")`. You should consider setting the value instead using `$element.val()`.');var a=[];return this.dataAdapter.current(function(b){a=b}),a},e.prototype.val=function(b){if(this.options.get("debug")&&window.console&&console.warn&&console.warn('Select2: The `select2("val")` method has been deprecated and will be removed in later Select2 versions. Use $element.val() instead.'),null==b||0===b.length)return this.$element.val();var c=b[0];a.isArray(c)&&(c=a.map(c,function(a){return a.toString()})),this.$element.val(c).trigger("change")},e.prototype.destroy=function(){this.$container.remove(),this.$element[0].detachEvent&&this.$element[0].detachEvent("onpropertychange",this._syncA),null!=this._observer?(this._observer.disconnect(),this._observer=null):this.$element[0].removeEventListener&&(this.$element[0].removeEventListener("DOMAttrModified",this._syncA,!1),this.$element[0].removeEventListener("DOMNodeInserted",this._syncS,!1),this.$element[0].removeEventListener("DOMNodeRemoved",this._syncS,!1)),this._syncA=null,this._syncS=null,this.$element.off(".select2"),this.$element.attr("tabindex",this.$element.data("old-tabindex")),this.$element.removeClass("select2-hidden-accessible"),this.$element.attr("aria-hidden","false"),this.$element.removeData("select2"),this.dataAdapter.destroy(),this.selection.destroy(),this.dropdown.destroy(),this.results.destroy(),this.dataAdapter=null,this.selection=null,this.dropdown=null,this.results=null},e.prototype.render=function(){var b=a('<span class="select2 select2-container"><span class="selection"></span><span class="dropdown-wrapper" aria-hidden="true"></span></span>');return b.attr("dir",this.options.get("dir")),this.$container=b,this.$container.addClass("select2-container--"+this.options.get("theme")),b.data("element",this.$element),b},e}),b.define("select2/compat/utils",["jquery"],function(a){function b(b,c,d){var e,f,g=[];e=a.trim(b.attr("class")),e&&(e=""+e,a(e.split(/\s+/)).each(function(){0===this.indexOf("select2-")&&g.push(this)})),e=a.trim(c.attr("class")),e&&(e=""+e,a(e.split(/\s+/)).each(function(){0!==this.indexOf("select2-")&&null!=(f=d(this))&&g.push(f)})),b.attr("class",g.join(" "))}return{syncCssClasses:b}}),b.define("select2/compat/containerCss",["jquery","./utils"],function(a,b){function c(a){return null}function d(){}return d.prototype.render=function(d){var e=d.call(this),f=this.options.get("containerCssClass")||"";a.isFunction(f)&&(f=f(this.$element));var g=this.options.get("adaptContainerCssClass");if(g=g||c,-1!==f.indexOf(":all:")){f=f.replace(":all:","");var h=g;g=function(a){var b=h(a);return null!=b?b+" "+a:a}}var i=this.options.get("containerCss")||{};return a.isFunction(i)&&(i=i(this.$element)),b.syncCssClasses(e,this.$element,g),e.css(i),e.addClass(f),e},d}),b.define("select2/compat/dropdownCss",["jquery","./utils"],function(a,b){function c(a){return null}function d(){}return d.prototype.render=function(d){var e=d.call(this),f=this.options.get("dropdownCssClass")||"";a.isFunction(f)&&(f=f(this.$element));var g=this.options.get("adaptDropdownCssClass");if(g=g||c,-1!==f.indexOf(":all:")){f=f.replace(":all:","");var h=g;g=function(a){var b=h(a);return null!=b?b+" "+a:a}}var i=this.options.get("dropdownCss")||{};return a.isFunction(i)&&(i=i(this.$element)),b.syncCssClasses(e,this.$element,g),e.css(i),e.addClass(f),e},d}),b.define("select2/compat/initSelection",["jquery"],function(a){function b(a,b,c){c.get("debug")&&window.console&&console.warn&&console.warn("Select2: The `initSelection` option has been deprecated in favor of a custom data adapter that overrides the `current` method. This method is now called multiple times instead of a single time when the instance is initialized. Support will be removed for the `initSelection` option in future versions of Select2"),this.initSelection=c.get("initSelection"),this._isInitialized=!1,a.call(this,b,c)}return b.prototype.current=function(b,c){var d=this;if(this._isInitialized)return void b.call(this,c);this.initSelection.call(null,this.$element,function(b){d._isInitialized=!0,a.isArray(b)||(b=[b]),c(b)})},b}),b.define("select2/compat/inputData",["jquery"],function(a){function b(a,b,c){this._currentData=[],this._valueSeparator=c.get("valueSeparator")||",","hidden"===b.prop("type")&&c.get("debug")&&console&&console.warn&&console.warn("Select2: Using a hidden input with Select2 is no longer supported and may stop working in the future. It is recommended to use a `<select>` element instead."),a.call(this,b,c)}return b.prototype.current=function(b,c){function d(b,c){var e=[];return b.selected||-1!==a.inArray(b.id,c)?(b.selected=!0,e.push(b)):b.selected=!1,b.children&&e.push.apply(e,d(b.children,c)),e}for(var e=[],f=0;f<this._currentData.length;f++){var g=this._currentData[f];e.push.apply(e,d(g,this.$element.val().split(this._valueSeparator)))}c(e)},b.prototype.select=function(b,c){if(this.options.get("multiple")){var d=this.$element.val();d+=this._valueSeparator+c.id,this.$element.val(d),this.$element.trigger("change")}else this.current(function(b){a.map(b,function(a){a.selected=!1})}),this.$element.val(c.id),this.$element.trigger("change")},b.prototype.unselect=function(a,b){var c=this;b.selected=!1,this.current(function(a){for(var d=[],e=0;e<a.length;e++){var f=a[e];b.id!=f.id&&d.push(f.id)}c.$element.val(d.join(c._valueSeparator)),c.$element.trigger("change")})},b.prototype.query=function(a,b,c){for(var d=[],e=0;e<this._currentData.length;e++){var f=this._currentData[e],g=this.matches(b,f);null!==g&&d.push(g)}c({results:d})},b.prototype.addOptions=function(b,c){var d=a.map(c,function(b){return a.data(b[0],"data")});this._currentData.push.apply(this._currentData,d)},b}),b.define("select2/compat/matcher",["jquery"],function(a){function b(b){function c(c,d){var e=a.extend(!0,{},d);if(null==c.term||""===a.trim(c.term))return e;if(d.children){for(var f=d.children.length-1;f>=0;f--){var g=d.children[f];b(c.term,g.text,g)||e.children.splice(f,1)}if(e.children.length>0)return e}return b(c.term,d.text,d)?e:null}return c}return b}),b.define("select2/compat/query",[],function(){function a(a,b,c){c.get("debug")&&window.console&&console.warn&&console.warn("Select2: The `query` option has been deprecated in favor of a custom data adapter that overrides the `query` method. Support will be removed for the `query` option in future versions of Select2."),a.call(this,b,c)}return a.prototype.query=function(a,b,c){b.callback=c,this.options.get("query").call(null,b)},a}),b.define("select2/dropdown/attachContainer",[],function(){function a(a,b,c){a.call(this,b,c)}return a.prototype.position=function(a,b,c){c.find(".dropdown-wrapper").append(b),b.addClass("select2-dropdown--below"),c.addClass("select2-container--below")},a}),b.define("select2/dropdown/stopPropagation",[],function(){function a(){}return a.prototype.bind=function(a,b,c){a.call(this,b,c);var d=["blur","change","click","dblclick","focus","focusin","focusout","input","keydown","keyup","keypress","mousedown","mouseenter","mouseleave","mousemove","mouseover","mouseup","search","touchend","touchstart"];this.$dropdown.on(d.join(" "),function(a){a.stopPropagation()})},a}),b.define("select2/selection/stopPropagation",[],function(){function a(){}return a.prototype.bind=function(a,b,c){a.call(this,b,c);var d=["blur","change","click","dblclick","focus","focusin","focusout","input","keydown","keyup","keypress","mousedown","mouseenter","mouseleave","mousemove","mouseover","mouseup","search","touchend","touchstart"];this.$selection.on(d.join(" "),function(a){a.stopPropagation()})},a}),function(c){"function"==typeof b.define&&b.define.amd?b.define("jquery-mousewheel",["jquery"],c):"object"==typeof exports?module.exports=c:c(a)}(function(a){function b(b){var g=b||window.event,h=i.call(arguments,1),j=0,l=0,m=0,n=0,o=0,p=0;if(b=a.event.fix(g),b.type="mousewheel","detail"in g&&(m=-1*g.detail),"wheelDelta"in g&&(m=g.wheelDelta),"wheelDeltaY"in g&&(m=g.wheelDeltaY),"wheelDeltaX"in g&&(l=-1*g.wheelDeltaX),"axis"in g&&g.axis===g.HORIZONTAL_AXIS&&(l=-1*m,m=0),j=0===m?l:m,"deltaY"in g&&(m=-1*g.deltaY,j=m),"deltaX"in g&&(l=g.deltaX,0===m&&(j=-1*l)),0!==m||0!==l){if(1===g.deltaMode){var q=a.data(this,"mousewheel-line-height");j*=q,m*=q,l*=q}else if(2===g.deltaMode){var r=a.data(this,"mousewheel-page-height");j*=r,m*=r,l*=r}if(n=Math.max(Math.abs(m),Math.abs(l)),(!f||n<f)&&(f=n,d(g,n)&&(f/=40)),d(g,n)&&(j/=40,l/=40,m/=40),j=Math[j>=1?"floor":"ceil"](j/f),l=Math[l>=1?"floor":"ceil"](l/f),m=Math[m>=1?"floor":"ceil"](m/f),k.settings.normalizeOffset&&this.getBoundingClientRect){var s=this.getBoundingClientRect();o=b.clientX-s.left,p=b.clientY-s.top}return b.deltaX=l,b.deltaY=m,b.deltaFactor=f,b.offsetX=o,b.offsetY=p,b.deltaMode=0,h.unshift(b,j,l,m),e&&clearTimeout(e),e=setTimeout(c,200),(a.event.dispatch||a.event.handle).apply(this,h)}}function c(){f=null}function d(a,b){return k.settings.adjustOldDeltas&&"mousewheel"===a.type&&b%120==0}var e,f,g=["wheel","mousewheel","DOMMouseScroll","MozMousePixelScroll"],h="onwheel"in document||document.documentMode>=9?["wheel"]:["mousewheel","DomMouseScroll","MozMousePixelScroll"],i=Array.prototype.slice;if(a.event.fixHooks)for(var j=g.length;j;)a.event.fixHooks[g[--j]]=a.event.mouseHooks;var k=a.event.special.mousewheel={version:"3.1.12",setup:function(){if(this.addEventListener)for(var c=h.length;c;)this.addEventListener(h[--c],b,!1);else this.onmousewheel=b;a.data(this,"mousewheel-line-height",k.getLineHeight(this)),a.data(this,"mousewheel-page-height",k.getPageHeight(this))},teardown:function(){if(this.removeEventListener)for(var c=h.length;c;)this.removeEventListener(h[--c],b,!1);else this.onmousewheel=null;a.removeData(this,"mousewheel-line-height"),a.removeData(this,"mousewheel-page-height")},getLineHeight:function(b){var c=a(b),d=c["offsetParent"in a.fn?"offsetParent":"parent"]();return d.length||(d=a("body")),parseInt(d.css("fontSize"),10)||parseInt(c.css("fontSize"),10)||16},getPageHeight:function(b){return a(b).height()},settings:{adjustOldDeltas:!0,normalizeOffset:!0}};a.fn.extend({mousewheel:function(a){return a?this.bind("mousewheel",a):this.trigger("mousewheel")},unmousewheel:function(a){return this.unbind("mousewheel",a)}})}),b.define("jquery.select2",["jquery","jquery-mousewheel","./select2/core","./select2/defaults"],function(a,b,c,d){if(null==a.fn.select2){var e=["open","close","destroy"];a.fn.select2=function(b){if("object"==typeof(b=b||{}))return this.each(function(){var d=a.extend(!0,{},b);new c(a(this),d)}),this;if("string"==typeof b){var d,f=Array.prototype.slice.call(arguments,1);return this.each(function(){var c=a(this).data("select2");null==c&&window.console&&console.error&&console.error("The select2('"+b+"') method was called on an element that is not using Select2."),d=c[b].apply(c,f)}),a.inArray(b,e)>-1?this:d}throw new Error("Invalid arguments for Select2: "+b)}}return null==a.fn.select2.defaults&&(a.fn.select2.defaults=d),c}),{define:b.define,require:b.require}}(),c=b.require("jquery.select2");return a.fn.select2.amd=b,c}); \ No newline at end of file diff --git a/admin/bower_components/select2/dist/js/select2.js b/admin/bower_components/select2/dist/js/select2.js deleted file mode 100644 index da16adf..0000000 --- a/admin/bower_components/select2/dist/js/select2.js +++ /dev/null @@ -1,5746 +0,0 @@ -/*! - * Select2 4.0.4 - * https://select2.github.io - * - * Released under the MIT license - * https://github.com/select2/select2/blob/master/LICENSE.md - */ -(function (factory) { - if (typeof define === 'function' && define.amd) { - // AMD. Register as an anonymous module. - define(['jquery'], factory); - } else if (typeof module === 'object' && module.exports) { - // Node/CommonJS - module.exports = function (root, jQuery) { - if (jQuery === undefined) { - // require('jQuery') returns a factory that requires window to - // build a jQuery instance, we normalize how we use modules - // that require this pattern but the window provided is a noop - // if it's defined (how jquery works) - if (typeof window !== 'undefined') { - jQuery = require('jquery'); - } - else { - jQuery = require('jquery')(root); - } - } - factory(jQuery); - return jQuery; - }; - } else { - // Browser globals - factory(jQuery); - } -} (function (jQuery) { - // This is needed so we can catch the AMD loader configuration and use it - // The inner file should be wrapped (by `banner.start.js`) in a function that - // returns the AMD loader references. - var S2 =(function () { - // Restore the Select2 AMD loader so it can be used - // Needed mostly in the language files, where the loader is not inserted - if (jQuery && jQuery.fn && jQuery.fn.select2 && jQuery.fn.select2.amd) { - var S2 = jQuery.fn.select2.amd; - } -var S2;(function () { if (!S2 || !S2.requirejs) { -if (!S2) { S2 = {}; } else { require = S2; } -/** - * @license almond 0.3.3 Copyright jQuery Foundation and other contributors. - * Released under MIT license, http://github.com/requirejs/almond/LICENSE - */ -//Going sloppy to avoid 'use strict' string cost, but strict practices should -//be followed. -/*global setTimeout: false */ - -var requirejs, require, define; -(function (undef) { - var main, req, makeMap, handlers, - defined = {}, - waiting = {}, - config = {}, - defining = {}, - hasOwn = Object.prototype.hasOwnProperty, - aps = [].slice, - jsSuffixRegExp = /\.js$/; - - function hasProp(obj, prop) { - return hasOwn.call(obj, prop); - } - - /** - * Given a relative module name, like ./something, normalize it to - * a real name that can be mapped to a path. - * @param {String} name the relative name - * @param {String} baseName a real name that the name arg is relative - * to. - * @returns {String} normalized name - */ - function normalize(name, baseName) { - var nameParts, nameSegment, mapValue, foundMap, lastIndex, - foundI, foundStarMap, starI, i, j, part, normalizedBaseParts, - baseParts = baseName && baseName.split("/"), - map = config.map, - starMap = (map && map['*']) || {}; - - //Adjust any relative paths. - if (name) { - name = name.split('/'); - lastIndex = name.length - 1; - - // If wanting node ID compatibility, strip .js from end - // of IDs. Have to do this here, and not in nameToUrl - // because node allows either .js or non .js to map - // to same file. - if (config.nodeIdCompat && jsSuffixRegExp.test(name[lastIndex])) { - name[lastIndex] = name[lastIndex].replace(jsSuffixRegExp, ''); - } - - // Starts with a '.' so need the baseName - if (name[0].charAt(0) === '.' && baseParts) { - //Convert baseName to array, and lop off the last part, - //so that . matches that 'directory' and not name of the baseName's - //module. For instance, baseName of 'one/two/three', maps to - //'one/two/three.js', but we want the directory, 'one/two' for - //this normalization. - normalizedBaseParts = baseParts.slice(0, baseParts.length - 1); - name = normalizedBaseParts.concat(name); - } - - //start trimDots - for (i = 0; i < name.length; i++) { - part = name[i]; - if (part === '.') { - name.splice(i, 1); - i -= 1; - } else if (part === '..') { - // If at the start, or previous value is still .., - // keep them so that when converted to a path it may - // still work when converted to a path, even though - // as an ID it is less than ideal. In larger point - // releases, may be better to just kick out an error. - if (i === 0 || (i === 1 && name[2] === '..') || name[i - 1] === '..') { - continue; - } else if (i > 0) { - name.splice(i - 1, 2); - i -= 2; - } - } - } - //end trimDots - - name = name.join('/'); - } - - //Apply map config if available. - if ((baseParts || starMap) && map) { - nameParts = name.split('/'); - - for (i = nameParts.length; i > 0; i -= 1) { - nameSegment = nameParts.slice(0, i).join("/"); - - if (baseParts) { - //Find the longest baseName segment match in the config. - //So, do joins on the biggest to smallest lengths of baseParts. - for (j = baseParts.length; j > 0; j -= 1) { - mapValue = map[baseParts.slice(0, j).join('/')]; - - //baseName segment has config, find if it has one for - //this name. - if (mapValue) { - mapValue = mapValue[nameSegment]; - if (mapValue) { - //Match, update name to the new value. - foundMap = mapValue; - foundI = i; - break; - } - } - } - } - - if (foundMap) { - break; - } - - //Check for a star map match, but just hold on to it, - //if there is a shorter segment match later in a matching - //config, then favor over this star map. - if (!foundStarMap && starMap && starMap[nameSegment]) { - foundStarMap = starMap[nameSegment]; - starI = i; - } - } - - if (!foundMap && foundStarMap) { - foundMap = foundStarMap; - foundI = starI; - } - - if (foundMap) { - nameParts.splice(0, foundI, foundMap); - name = nameParts.join('/'); - } - } - - return name; - } - - function makeRequire(relName, forceSync) { - return function () { - //A version of a require function that passes a moduleName - //value for items that may need to - //look up paths relative to the moduleName - var args = aps.call(arguments, 0); - - //If first arg is not require('string'), and there is only - //one arg, it is the array form without a callback. Insert - //a null so that the following concat is correct. - if (typeof args[0] !== 'string' && args.length === 1) { - args.push(null); - } - return req.apply(undef, args.concat([relName, forceSync])); - }; - } - - function makeNormalize(relName) { - return function (name) { - return normalize(name, relName); - }; - } - - function makeLoad(depName) { - return function (value) { - defined[depName] = value; - }; - } - - function callDep(name) { - if (hasProp(waiting, name)) { - var args = waiting[name]; - delete waiting[name]; - defining[name] = true; - main.apply(undef, args); - } - - if (!hasProp(defined, name) && !hasProp(defining, name)) { - throw new Error('No ' + name); - } - return defined[name]; - } - - //Turns a plugin!resource to [plugin, resource] - //with the plugin being undefined if the name - //did not have a plugin prefix. - function splitPrefix(name) { - var prefix, - index = name ? name.indexOf('!') : -1; - if (index > -1) { - prefix = name.substring(0, index); - name = name.substring(index + 1, name.length); - } - return [prefix, name]; - } - - //Creates a parts array for a relName where first part is plugin ID, - //second part is resource ID. Assumes relName has already been normalized. - function makeRelParts(relName) { - return relName ? splitPrefix(relName) : []; - } - - /** - * Makes a name map, normalizing the name, and using a plugin - * for normalization if necessary. Grabs a ref to plugin - * too, as an optimization. - */ - makeMap = function (name, relParts) { - var plugin, - parts = splitPrefix(name), - prefix = parts[0], - relResourceName = relParts[1]; - - name = parts[1]; - - if (prefix) { - prefix = normalize(prefix, relResourceName); - plugin = callDep(prefix); - } - - //Normalize according - if (prefix) { - if (plugin && plugin.normalize) { - name = plugin.normalize(name, makeNormalize(relResourceName)); - } else { - name = normalize(name, relResourceName); - } - } else { - name = normalize(name, relResourceName); - parts = splitPrefix(name); - prefix = parts[0]; - name = parts[1]; - if (prefix) { - plugin = callDep(prefix); - } - } - - //Using ridiculous property names for space reasons - return { - f: prefix ? prefix + '!' + name : name, //fullName - n: name, - pr: prefix, - p: plugin - }; - }; - - function makeConfig(name) { - return function () { - return (config && config.config && config.config[name]) || {}; - }; - } - - handlers = { - require: function (name) { - return makeRequire(name); - }, - exports: function (name) { - var e = defined[name]; - if (typeof e !== 'undefined') { - return e; - } else { - return (defined[name] = {}); - } - }, - module: function (name) { - return { - id: name, - uri: '', - exports: defined[name], - config: makeConfig(name) - }; - } - }; - - main = function (name, deps, callback, relName) { - var cjsModule, depName, ret, map, i, relParts, - args = [], - callbackType = typeof callback, - usingExports; - - //Use name if no relName - relName = relName || name; - relParts = makeRelParts(relName); - - //Call the callback to define the module, if necessary. - if (callbackType === 'undefined' || callbackType === 'function') { - //Pull out the defined dependencies and pass the ordered - //values to the callback. - //Default to [require, exports, module] if no deps - deps = !deps.length && callback.length ? ['require', 'exports', 'module'] : deps; - for (i = 0; i < deps.length; i += 1) { - map = makeMap(deps[i], relParts); - depName = map.f; - - //Fast path CommonJS standard dependencies. - if (depName === "require") { - args[i] = handlers.require(name); - } else if (depName === "exports") { - //CommonJS module spec 1.1 - args[i] = handlers.exports(name); - usingExports = true; - } else if (depName === "module") { - //CommonJS module spec 1.1 - cjsModule = args[i] = handlers.module(name); - } else if (hasProp(defined, depName) || - hasProp(waiting, depName) || - hasProp(defining, depName)) { - args[i] = callDep(depName); - } else if (map.p) { - map.p.load(map.n, makeRequire(relName, true), makeLoad(depName), {}); - args[i] = defined[depName]; - } else { - throw new Error(name + ' missing ' + depName); - } - } - - ret = callback ? callback.apply(defined[name], args) : undefined; - - if (name) { - //If setting exports via "module" is in play, - //favor that over return value and exports. After that, - //favor a non-undefined return value over exports use. - if (cjsModule && cjsModule.exports !== undef && - cjsModule.exports !== defined[name]) { - defined[name] = cjsModule.exports; - } else if (ret !== undef || !usingExports) { - //Use the return value from the function. - defined[name] = ret; - } - } - } else if (name) { - //May just be an object definition for the module. Only - //worry about defining if have a module name. - defined[name] = callback; - } - }; - - requirejs = require = req = function (deps, callback, relName, forceSync, alt) { - if (typeof deps === "string") { - if (handlers[deps]) { - //callback in this case is really relName - return handlers[deps](callback); - } - //Just return the module wanted. In this scenario, the - //deps arg is the module name, and second arg (if passed) - //is just the relName. - //Normalize module name, if it contains . or .. - return callDep(makeMap(deps, makeRelParts(callback)).f); - } else if (!deps.splice) { - //deps is a config object, not an array. - config = deps; - if (config.deps) { - req(config.deps, config.callback); - } - if (!callback) { - return; - } - - if (callback.splice) { - //callback is an array, which means it is a dependency list. - //Adjust args if there are dependencies - deps = callback; - callback = relName; - relName = null; - } else { - deps = undef; - } - } - - //Support require(['a']) - callback = callback || function () {}; - - //If relName is a function, it is an errback handler, - //so remove it. - if (typeof relName === 'function') { - relName = forceSync; - forceSync = alt; - } - - //Simulate async callback; - if (forceSync) { - main(undef, deps, callback, relName); - } else { - //Using a non-zero value because of concern for what old browsers - //do, and latest browsers "upgrade" to 4 if lower value is used: - //http://www.whatwg.org/specs/web-apps/current-work/multipage/timers.html#dom-windowtimers-settimeout: - //If want a value immediately, use require('id') instead -- something - //that works in almond on the global level, but not guaranteed and - //unlikely to work in other AMD implementations. - setTimeout(function () { - main(undef, deps, callback, relName); - }, 4); - } - - return req; - }; - - /** - * Just drops the config on the floor, but returns req in case - * the config return value is used. - */ - req.config = function (cfg) { - return req(cfg); - }; - - /** - * Expose module registry for debugging and tooling - */ - requirejs._defined = defined; - - define = function (name, deps, callback) { - if (typeof name !== 'string') { - throw new Error('See almond README: incorrect module build, no module name'); - } - - //This module may not have dependencies - if (!deps.splice) { - //deps is not an array, so probably means - //an object literal or factory function for - //the value. Adjust args. - callback = deps; - deps = []; - } - - if (!hasProp(defined, name) && !hasProp(waiting, name)) { - waiting[name] = [name, deps, callback]; - } - }; - - define.amd = { - jQuery: true - }; -}()); - -S2.requirejs = requirejs;S2.require = require;S2.define = define; -} -}()); -S2.define("almond", function(){}); - -/* global jQuery:false, $:false */ -S2.define('jquery',[],function () { - var _$ = jQuery || $; - - if (_$ == null && console && console.error) { - console.error( - 'Select2: An instance of jQuery or a jQuery-compatible library was not ' + - 'found. Make sure that you are including jQuery before Select2 on your ' + - 'web page.' - ); - } - - return _$; -}); - -S2.define('select2/utils',[ - 'jquery' -], function ($) { - var Utils = {}; - - Utils.Extend = function (ChildClass, SuperClass) { - var __hasProp = {}.hasOwnProperty; - - function BaseConstructor () { - this.constructor = ChildClass; - } - - for (var key in SuperClass) { - if (__hasProp.call(SuperClass, key)) { - ChildClass[key] = SuperClass[key]; - } - } - - BaseConstructor.prototype = SuperClass.prototype; - ChildClass.prototype = new BaseConstructor(); - ChildClass.__super__ = SuperClass.prototype; - - return ChildClass; - }; - - function getMethods (theClass) { - var proto = theClass.prototype; - - var methods = []; - - for (var methodName in proto) { - var m = proto[methodName]; - - if (typeof m !== 'function') { - continue; - } - - if (methodName === 'constructor') { - continue; - } - - methods.push(methodName); - } - - return methods; - } - - Utils.Decorate = function (SuperClass, DecoratorClass) { - var decoratedMethods = getMethods(DecoratorClass); - var superMethods = getMethods(SuperClass); - - function DecoratedClass () { - var unshift = Array.prototype.unshift; - - var argCount = DecoratorClass.prototype.constructor.length; - - var calledConstructor = SuperClass.prototype.constructor; - - if (argCount > 0) { - unshift.call(arguments, SuperClass.prototype.constructor); - - calledConstructor = DecoratorClass.prototype.constructor; - } - - calledConstructor.apply(this, arguments); - } - - DecoratorClass.displayName = SuperClass.displayName; - - function ctr () { - this.constructor = DecoratedClass; - } - - DecoratedClass.prototype = new ctr(); - - for (var m = 0; m < superMethods.length; m++) { - var superMethod = superMethods[m]; - - DecoratedClass.prototype[superMethod] = - SuperClass.prototype[superMethod]; - } - - var calledMethod = function (methodName) { - // Stub out the original method if it's not decorating an actual method - var originalMethod = function () {}; - - if (methodName in DecoratedClass.prototype) { - originalMethod = DecoratedClass.prototype[methodName]; - } - - var decoratedMethod = DecoratorClass.prototype[methodName]; - - return function () { - var unshift = Array.prototype.unshift; - - unshift.call(arguments, originalMethod); - - return decoratedMethod.apply(this, arguments); - }; - }; - - for (var d = 0; d < decoratedMethods.length; d++) { - var decoratedMethod = decoratedMethods[d]; - - DecoratedClass.prototype[decoratedMethod] = calledMethod(decoratedMethod); - } - - return DecoratedClass; - }; - - var Observable = function () { - this.listeners = {}; - }; - - Observable.prototype.on = function (event, callback) { - this.listeners = this.listeners || {}; - - if (event in this.listeners) { - this.listeners[event].push(callback); - } else { - this.listeners[event] = [callback]; - } - }; - - Observable.prototype.trigger = function (event) { - var slice = Array.prototype.slice; - var params = slice.call(arguments, 1); - - this.listeners = this.listeners || {}; - - // Params should always come in as an array - if (params == null) { - params = []; - } - - // If there are no arguments to the event, use a temporary object - if (params.length === 0) { - params.push({}); - } - - // Set the `_type` of the first object to the event - params[0]._type = event; - - if (event in this.listeners) { - this.invoke(this.listeners[event], slice.call(arguments, 1)); - } - - if ('*' in this.listeners) { - this.invoke(this.listeners['*'], arguments); - } - }; - - Observable.prototype.invoke = function (listeners, params) { - for (var i = 0, len = listeners.length; i < len; i++) { - listeners[i].apply(this, params); - } - }; - - Utils.Observable = Observable; - - Utils.generateChars = function (length) { - var chars = ''; - - for (var i = 0; i < length; i++) { - var randomChar = Math.floor(Math.random() * 36); - chars += randomChar.toString(36); - } - - return chars; - }; - - Utils.bind = function (func, context) { - return function () { - func.apply(context, arguments); - }; - }; - - Utils._convertData = function (data) { - for (var originalKey in data) { - var keys = originalKey.split('-'); - - var dataLevel = data; - - if (keys.length === 1) { - continue; - } - - for (var k = 0; k < keys.length; k++) { - var key = keys[k]; - - // Lowercase the first letter - // By default, dash-separated becomes camelCase - key = key.substring(0, 1).toLowerCase() + key.substring(1); - - if (!(key in dataLevel)) { - dataLevel[key] = {}; - } - - if (k == keys.length - 1) { - dataLevel[key] = data[originalKey]; - } - - dataLevel = dataLevel[key]; - } - - delete data[originalKey]; - } - - return data; - }; - - Utils.hasScroll = function (index, el) { - // Adapted from the function created by @ShadowScripter - // and adapted by @BillBarry on the Stack Exchange Code Review website. - // The original code can be found at - // http://codereview.stackexchange.com/q/13338 - // and was designed to be used with the Sizzle selector engine. - - var $el = $(el); - var overflowX = el.style.overflowX; - var overflowY = el.style.overflowY; - - //Check both x and y declarations - if (overflowX === overflowY && - (overflowY === 'hidden' || overflowY === 'visible')) { - return false; - } - - if (overflowX === 'scroll' || overflowY === 'scroll') { - return true; - } - - return ($el.innerHeight() < el.scrollHeight || - $el.innerWidth() < el.scrollWidth); - }; - - Utils.escapeMarkup = function (markup) { - var replaceMap = { - '\\': '&#92;', - '&': '&amp;', - '<': '&lt;', - '>': '&gt;', - '"': '&quot;', - '\'': '&#39;', - '/': '&#47;' - }; - - // Do not try to escape the markup if it's not a string - if (typeof markup !== 'string') { - return markup; - } - - return String(markup).replace(/[&<>"'\/\\]/g, function (match) { - return replaceMap[match]; - }); - }; - - // Append an array of jQuery nodes to a given element. - Utils.appendMany = function ($element, $nodes) { - // jQuery 1.7.x does not support $.fn.append() with an array - // Fall back to a jQuery object collection using $.fn.add() - if ($.fn.jquery.substr(0, 3) === '1.7') { - var $jqNodes = $(); - - $.map($nodes, function (node) { - $jqNodes = $jqNodes.add(node); - }); - - $nodes = $jqNodes; - } - - $element.append($nodes); - }; - - return Utils; -}); - -S2.define('select2/results',[ - 'jquery', - './utils' -], function ($, Utils) { - function Results ($element, options, dataAdapter) { - this.$element = $element; - this.data = dataAdapter; - this.options = options; - - Results.__super__.constructor.call(this); - } - - Utils.Extend(Results, Utils.Observable); - - Results.prototype.render = function () { - var $results = $( - '<ul class="select2-results__options" role="tree"></ul>' - ); - - if (this.options.get('multiple')) { - $results.attr('aria-multiselectable', 'true'); - } - - this.$results = $results; - - return $results; - }; - - Results.prototype.clear = function () { - this.$results.empty(); - }; - - Results.prototype.displayMessage = function (params) { - var escapeMarkup = this.options.get('escapeMarkup'); - - this.clear(); - this.hideLoading(); - - var $message = $( - '<li role="treeitem" aria-live="assertive"' + - ' class="select2-results__option"></li>' - ); - - var message = this.options.get('translations').get(params.message); - - $message.append( - escapeMarkup( - message(params.args) - ) - ); - - $message[0].className += ' select2-results__message'; - - this.$results.append($message); - }; - - Results.prototype.hideMessages = function () { - this.$results.find('.select2-results__message').remove(); - }; - - Results.prototype.append = function (data) { - this.hideLoading(); - - var $options = []; - - if (data.results == null || data.results.length === 0) { - if (this.$results.children().length === 0) { - this.trigger('results:message', { - message: 'noResults' - }); - } - - return; - } - - data.results = this.sort(data.results); - - for (var d = 0; d < data.results.length; d++) { - var item = data.results[d]; - - var $option = this.option(item); - - $options.push($option); - } - - this.$results.append($options); - }; - - Results.prototype.position = function ($results, $dropdown) { - var $resultsContainer = $dropdown.find('.select2-results'); - $resultsContainer.append($results); - }; - - Results.prototype.sort = function (data) { - var sorter = this.options.get('sorter'); - - return sorter(data); - }; - - Results.prototype.highlightFirstItem = function () { - var $options = this.$results - .find('.select2-results__option[aria-selected]'); - - var $selected = $options.filter('[aria-selected=true]'); - - // Check if there are any selected options - if ($selected.length > 0) { - // If there are selected options, highlight the first - $selected.first().trigger('mouseenter'); - } else { - // If there are no selected options, highlight the first option - // in the dropdown - $options.first().trigger('mouseenter'); - } - - this.ensureHighlightVisible(); - }; - - Results.prototype.setClasses = function () { - var self = this; - - this.data.current(function (selected) { - var selectedIds = $.map(selected, function (s) { - return s.id.toString(); - }); - - var $options = self.$results - .find('.select2-results__option[aria-selected]'); - - $options.each(function () { - var $option = $(this); - - var item = $.data(this, 'data'); - - // id needs to be converted to a string when comparing - var id = '' + item.id; - - if ((item.element != null && item.element.selected) || - (item.element == null && $.inArray(id, selectedIds) > -1)) { - $option.attr('aria-selected', 'true'); - } else { - $option.attr('aria-selected', 'false'); - } - }); - - }); - }; - - Results.prototype.showLoading = function (params) { - this.hideLoading(); - - var loadingMore = this.options.get('translations').get('searching'); - - var loading = { - disabled: true, - loading: true, - text: loadingMore(params) - }; - var $loading = this.option(loading); - $loading.className += ' loading-results'; - - this.$results.prepend($loading); - }; - - Results.prototype.hideLoading = function () { - this.$results.find('.loading-results').remove(); - }; - - Results.prototype.option = function (data) { - var option = document.createElement('li'); - option.className = 'select2-results__option'; - - var attrs = { - 'role': 'treeitem', - 'aria-selected': 'false' - }; - - if (data.disabled) { - delete attrs['aria-selected']; - attrs['aria-disabled'] = 'true'; - } - - if (data.id == null) { - delete attrs['aria-selected']; - } - - if (data._resultId != null) { - option.id = data._resultId; - } - - if (data.title) { - option.title = data.title; - } - - if (data.children) { - attrs.role = 'group'; - attrs['aria-label'] = data.text; - delete attrs['aria-selected']; - } - - for (var attr in attrs) { - var val = attrs[attr]; - - option.setAttribute(attr, val); - } - - if (data.children) { - var $option = $(option); - - var label = document.createElement('strong'); - label.className = 'select2-results__group'; - - var $label = $(label); - this.template(data, label); - - var $children = []; - - for (var c = 0; c < data.children.length; c++) { - var child = data.children[c]; - - var $child = this.option(child); - - $children.push($child); - } - - var $childrenContainer = $('<ul></ul>', { - 'class': 'select2-results__options select2-results__options--nested' - }); - - $childrenContainer.append($children); - - $option.append(label); - $option.append($childrenContainer); - } else { - this.template(data, option); - } - - $.data(option, 'data', data); - - return option; - }; - - Results.prototype.bind = function (container, $container) { - var self = this; - - var id = container.id + '-results'; - - this.$results.attr('id', id); - - container.on('results:all', function (params) { - self.clear(); - self.append(params.data); - - if (container.isOpen()) { - self.setClasses(); - self.highlightFirstItem(); - } - }); - - container.on('results:append', function (params) { - self.append(params.data); - - if (container.isOpen()) { - self.setClasses(); - } - }); - - container.on('query', function (params) { - self.hideMessages(); - self.showLoading(params); - }); - - container.on('select', function () { - if (!container.isOpen()) { - return; - } - - self.setClasses(); - self.highlightFirstItem(); - }); - - container.on('unselect', function () { - if (!container.isOpen()) { - return; - } - - self.setClasses(); - self.highlightFirstItem(); - }); - - container.on('open', function () { - // When the dropdown is open, aria-expended="true" - self.$results.attr('aria-expanded', 'true'); - self.$results.attr('aria-hidden', 'false'); - - self.setClasses(); - self.ensureHighlightVisible(); - }); - - container.on('close', function () { - // When the dropdown is closed, aria-expended="false" - self.$results.attr('aria-expanded', 'false'); - self.$results.attr('aria-hidden', 'true'); - self.$results.removeAttr('aria-activedescendant'); - }); - - container.on('results:toggle', function () { - var $highlighted = self.getHighlightedResults(); - - if ($highlighted.length === 0) { - return; - } - - $highlighted.trigger('mouseup'); - }); - - container.on('results:select', function () { - var $highlighted = self.getHighlightedResults(); - - if ($highlighted.length === 0) { - return; - } - - var data = $highlighted.data('data'); - - if ($highlighted.attr('aria-selected') == 'true') { - self.trigger('close', {}); - } else { - self.trigger('select', { - data: data - }); - } - }); - - container.on('results:previous', function () { - var $highlighted = self.getHighlightedResults(); - - var $options = self.$results.find('[aria-selected]'); - - var currentIndex = $options.index($highlighted); - - // If we are already at te top, don't move further - if (currentIndex === 0) { - return; - } - - var nextIndex = currentIndex - 1; - - // If none are highlighted, highlight the first - if ($highlighted.length === 0) { - nextIndex = 0; - } - - var $next = $options.eq(nextIndex); - - $next.trigger('mouseenter'); - - var currentOffset = self.$results.offset().top; - var nextTop = $next.offset().top; - var nextOffset = self.$results.scrollTop() + (nextTop - currentOffset); - - if (nextIndex === 0) { - self.$results.scrollTop(0); - } else if (nextTop - currentOffset < 0) { - self.$results.scrollTop(nextOffset); - } - }); - - container.on('results:next', function () { - var $highlighted = self.getHighlightedResults(); - - var $options = self.$results.find('[aria-selected]'); - - var currentIndex = $options.index($highlighted); - - var nextIndex = currentIndex + 1; - - // If we are at the last option, stay there - if (nextIndex >= $options.length) { - return; - } - - var $next = $options.eq(nextIndex); - - $next.trigger('mouseenter'); - - var currentOffset = self.$results.offset().top + - self.$results.outerHeight(false); - var nextBottom = $next.offset().top + $next.outerHeight(false); - var nextOffset = self.$results.scrollTop() + nextBottom - currentOffset; - - if (nextIndex === 0) { - self.$results.scrollTop(0); - } else if (nextBottom > currentOffset) { - self.$results.scrollTop(nextOffset); - } - }); - - container.on('results:focus', function (params) { - params.element.addClass('select2-results__option--highlighted'); - }); - - container.on('results:message', function (params) { - self.displayMessage(params); - }); - - if ($.fn.mousewheel) { - this.$results.on('mousewheel', function (e) { - var top = self.$results.scrollTop(); - - var bottom = self.$results.get(0).scrollHeight - top + e.deltaY; - - var isAtTop = e.deltaY > 0 && top - e.deltaY <= 0; - var isAtBottom = e.deltaY < 0 && bottom <= self.$results.height(); - - if (isAtTop) { - self.$results.scrollTop(0); - - e.preventDefault(); - e.stopPropagation(); - } else if (isAtBottom) { - self.$results.scrollTop( - self.$results.get(0).scrollHeight - self.$results.height() - ); - - e.preventDefault(); - e.stopPropagation(); - } - }); - } - - this.$results.on('mouseup', '.select2-results__option[aria-selected]', - function (evt) { - var $this = $(this); - - var data = $this.data('data'); - - if ($this.attr('aria-selected') === 'true') { - if (self.options.get('multiple')) { - self.trigger('unselect', { - originalEvent: evt, - data: data - }); - } else { - self.trigger('close', {}); - } - - return; - } - - self.trigger('select', { - originalEvent: evt, - data: data - }); - }); - - this.$results.on('mouseenter', '.select2-results__option[aria-selected]', - function (evt) { - var data = $(this).data('data'); - - self.getHighlightedResults() - .removeClass('select2-results__option--highlighted'); - - self.trigger('results:focus', { - data: data, - element: $(this) - }); - }); - }; - - Results.prototype.getHighlightedResults = function () { - var $highlighted = this.$results - .find('.select2-results__option--highlighted'); - - return $highlighted; - }; - - Results.prototype.destroy = function () { - this.$results.remove(); - }; - - Results.prototype.ensureHighlightVisible = function () { - var $highlighted = this.getHighlightedResults(); - - if ($highlighted.length === 0) { - return; - } - - var $options = this.$results.find('[aria-selected]'); - - var currentIndex = $options.index($highlighted); - - var currentOffset = this.$results.offset().top; - var nextTop = $highlighted.offset().top; - var nextOffset = this.$results.scrollTop() + (nextTop - currentOffset); - - var offsetDelta = nextTop - currentOffset; - nextOffset -= $highlighted.outerHeight(false) * 2; - - if (currentIndex <= 2) { - this.$results.scrollTop(0); - } else if (offsetDelta > this.$results.outerHeight() || offsetDelta < 0) { - this.$results.scrollTop(nextOffset); - } - }; - - Results.prototype.template = function (result, container) { - var template = this.options.get('templateResult'); - var escapeMarkup = this.options.get('escapeMarkup'); - - var content = template(result, container); - - if (content == null) { - container.style.display = 'none'; - } else if (typeof content === 'string') { - container.innerHTML = escapeMarkup(content); - } else { - $(container).append(content); - } - }; - - return Results; -}); - -S2.define('select2/keys',[ - -], function () { - var KEYS = { - BACKSPACE: 8, - TAB: 9, - ENTER: 13, - SHIFT: 16, - CTRL: 17, - ALT: 18, - ESC: 27, - SPACE: 32, - PAGE_UP: 33, - PAGE_DOWN: 34, - END: 35, - HOME: 36, - LEFT: 37, - UP: 38, - RIGHT: 39, - DOWN: 40, - DELETE: 46 - }; - - return KEYS; -}); - -S2.define('select2/selection/base',[ - 'jquery', - '../utils', - '../keys' -], function ($, Utils, KEYS) { - function BaseSelection ($element, options) { - this.$element = $element; - this.options = options; - - BaseSelection.__super__.constructor.call(this); - } - - Utils.Extend(BaseSelection, Utils.Observable); - - BaseSelection.prototype.render = function () { - var $selection = $( - '<span class="select2-selection" role="combobox" ' + - ' aria-haspopup="true" aria-expanded="false">' + - '</span>' - ); - - this._tabindex = 0; - - if (this.$element.data('old-tabindex') != null) { - this._tabindex = this.$element.data('old-tabindex'); - } else if (this.$element.attr('tabindex') != null) { - this._tabindex = this.$element.attr('tabindex'); - } - - $selection.attr('title', this.$element.attr('title')); - $selection.attr('tabindex', this._tabindex); - - this.$selection = $selection; - - return $selection; - }; - - BaseSelection.prototype.bind = function (container, $container) { - var self = this; - - var id = container.id + '-container'; - var resultsId = container.id + '-results'; - - this.container = container; - - this.$selection.on('focus', function (evt) { - self.trigger('focus', evt); - }); - - this.$selection.on('blur', function (evt) { - self._handleBlur(evt); - }); - - this.$selection.on('keydown', function (evt) { - self.trigger('keypress', evt); - - if (evt.which === KEYS.SPACE) { - evt.preventDefault(); - } - }); - - container.on('results:focus', function (params) { - self.$selection.attr('aria-activedescendant', params.data._resultId); - }); - - container.on('selection:update', function (params) { - self.update(params.data); - }); - - container.on('open', function () { - // When the dropdown is open, aria-expanded="true" - self.$selection.attr('aria-expanded', 'true'); - self.$selection.attr('aria-owns', resultsId); - - self._attachCloseHandler(container); - }); - - container.on('close', function () { - // When the dropdown is closed, aria-expanded="false" - self.$selection.attr('aria-expanded', 'false'); - self.$selection.removeAttr('aria-activedescendant'); - self.$selection.removeAttr('aria-owns'); - - self.$selection.focus(); - - self._detachCloseHandler(container); - }); - - container.on('enable', function () { - self.$selection.attr('tabindex', self._tabindex); - }); - - container.on('disable', function () { - self.$selection.attr('tabindex', '-1'); - }); - }; - - BaseSelection.prototype._handleBlur = function (evt) { - var self = this; - - // This needs to be delayed as the active element is the body when the tab - // key is pressed, possibly along with others. - window.setTimeout(function () { - // Don't trigger `blur` if the focus is still in the selection - if ( - (document.activeElement == self.$selection[0]) || - ($.contains(self.$selection[0], document.activeElement)) - ) { - return; - } - - self.trigger('blur', evt); - }, 1); - }; - - BaseSelection.prototype._attachCloseHandler = function (container) { - var self = this; - - $(document.body).on('mousedown.select2.' + container.id, function (e) { - var $target = $(e.target); - - var $select = $target.closest('.select2'); - - var $all = $('.select2.select2-container--open'); - - $all.each(function () { - var $this = $(this); - - if (this == $select[0]) { - return; - } - - var $element = $this.data('element'); - - $element.select2('close'); - }); - }); - }; - - BaseSelection.prototype._detachCloseHandler = function (container) { - $(document.body).off('mousedown.select2.' + container.id); - }; - - BaseSelection.prototype.position = function ($selection, $container) { - var $selectionContainer = $container.find('.selection'); - $selectionContainer.append($selection); - }; - - BaseSelection.prototype.destroy = function () { - this._detachCloseHandler(this.container); - }; - - BaseSelection.prototype.update = function (data) { - throw new Error('The `update` method must be defined in child classes.'); - }; - - return BaseSelection; -}); - -S2.define('select2/selection/single',[ - 'jquery', - './base', - '../utils', - '../keys' -], function ($, BaseSelection, Utils, KEYS) { - function SingleSelection () { - SingleSelection.__super__.constructor.apply(this, arguments); - } - - Utils.Extend(SingleSelection, BaseSelection); - - SingleSelection.prototype.render = function () { - var $selection = SingleSelection.__super__.render.call(this); - - $selection.addClass('select2-selection--single'); - - $selection.html( - '<span class="select2-selection__rendered"></span>' + - '<span class="select2-selection__arrow" role="presentation">' + - '<b role="presentation"></b>' + - '</span>' - ); - - return $selection; - }; - - SingleSelection.prototype.bind = function (container, $container) { - var self = this; - - SingleSelection.__super__.bind.apply(this, arguments); - - var id = container.id + '-container'; - - this.$selection.find('.select2-selection__rendered').attr('id', id); - this.$selection.attr('aria-labelledby', id); - - this.$selection.on('mousedown', function (evt) { - // Only respond to left clicks - if (evt.which !== 1) { - return; - } - - self.trigger('toggle', { - originalEvent: evt - }); - }); - - this.$selection.on('focus', function (evt) { - // User focuses on the container - }); - - this.$selection.on('blur', function (evt) { - // User exits the container - }); - - container.on('focus', function (evt) { - if (!container.isOpen()) { - self.$selection.focus(); - } - }); - - container.on('selection:update', function (params) { - self.update(params.data); - }); - }; - - SingleSelection.prototype.clear = function () { - this.$selection.find('.select2-selection__rendered').empty(); - }; - - SingleSelection.prototype.display = function (data, container) { - var template = this.options.get('templateSelection'); - var escapeMarkup = this.options.get('escapeMarkup'); - - return escapeMarkup(template(data, container)); - }; - - SingleSelection.prototype.selectionContainer = function () { - return $('<span></span>'); - }; - - SingleSelection.prototype.update = function (data) { - if (data.length === 0) { - this.clear(); - return; - } - - var selection = data[0]; - - var $rendered = this.$selection.find('.select2-selection__rendered'); - var formatted = this.display(selection, $rendered); - - $rendered.empty().append(formatted); - $rendered.prop('title', selection.title || selection.text); - }; - - return SingleSelection; -}); - -S2.define('select2/selection/multiple',[ - 'jquery', - './base', - '../utils' -], function ($, BaseSelection, Utils) { - function MultipleSelection ($element, options) { - MultipleSelection.__super__.constructor.apply(this, arguments); - } - - Utils.Extend(MultipleSelection, BaseSelection); - - MultipleSelection.prototype.render = function () { - var $selection = MultipleSelection.__super__.render.call(this); - - $selection.addClass('select2-selection--multiple'); - - $selection.html( - '<ul class="select2-selection__rendered"></ul>' - ); - - return $selection; - }; - - MultipleSelection.prototype.bind = function (container, $container) { - var self = this; - - MultipleSelection.__super__.bind.apply(this, arguments); - - this.$selection.on('click', function (evt) { - self.trigger('toggle', { - originalEvent: evt - }); - }); - - this.$selection.on( - 'click', - '.select2-selection__choice__remove', - function (evt) { - // Ignore the event if it is disabled - if (self.options.get('disabled')) { - return; - } - - var $remove = $(this); - var $selection = $remove.parent(); - - var data = $selection.data('data'); - - self.trigger('unselect', { - originalEvent: evt, - data: data - }); - } - ); - }; - - MultipleSelection.prototype.clear = function () { - this.$selection.find('.select2-selection__rendered').empty(); - }; - - MultipleSelection.prototype.display = function (data, container) { - var template = this.options.get('templateSelection'); - var escapeMarkup = this.options.get('escapeMarkup'); - - return escapeMarkup(template(data, container)); - }; - - MultipleSelection.prototype.selectionContainer = function () { - var $container = $( - '<li class="select2-selection__choice">' + - '<span class="select2-selection__choice__remove" role="presentation">' + - '&times;' + - '</span>' + - '</li>' - ); - - return $container; - }; - - MultipleSelection.prototype.update = function (data) { - this.clear(); - - if (data.length === 0) { - return; - } - - var $selections = []; - - for (var d = 0; d < data.length; d++) { - var selection = data[d]; - - var $selection = this.selectionContainer(); - var formatted = this.display(selection, $selection); - - $selection.append(formatted); - $selection.prop('title', selection.title || selection.text); - - $selection.data('data', selection); - - $selections.push($selection); - } - - var $rendered = this.$selection.find('.select2-selection__rendered'); - - Utils.appendMany($rendered, $selections); - }; - - return MultipleSelection; -}); - -S2.define('select2/selection/placeholder',[ - '../utils' -], function (Utils) { - function Placeholder (decorated, $element, options) { - this.placeholder = this.normalizePlaceholder(options.get('placeholder')); - - decorated.call(this, $element, options); - } - - Placeholder.prototype.normalizePlaceholder = function (_, placeholder) { - if (typeof placeholder === 'string') { - placeholder = { - id: '', - text: placeholder - }; - } - - return placeholder; - }; - - Placeholder.prototype.createPlaceholder = function (decorated, placeholder) { - var $placeholder = this.selectionContainer(); - - $placeholder.html(this.display(placeholder)); - $placeholder.addClass('select2-selection__placeholder') - .removeClass('select2-selection__choice'); - - return $placeholder; - }; - - Placeholder.prototype.update = function (decorated, data) { - var singlePlaceholder = ( - data.length == 1 && data[0].id != this.placeholder.id - ); - var multipleSelections = data.length > 1; - - if (multipleSelections || singlePlaceholder) { - return decorated.call(this, data); - } - - this.clear(); - - var $placeholder = this.createPlaceholder(this.placeholder); - - this.$selection.find('.select2-selection__rendered').append($placeholder); - }; - - return Placeholder; -}); - -S2.define('select2/selection/allowClear',[ - 'jquery', - '../keys' -], function ($, KEYS) { - function AllowClear () { } - - AllowClear.prototype.bind = function (decorated, container, $container) { - var self = this; - - decorated.call(this, container, $container); - - if (this.placeholder == null) { - if (this.options.get('debug') && window.console && console.error) { - console.error( - 'Select2: The `allowClear` option should be used in combination ' + - 'with the `placeholder` option.' - ); - } - } - - this.$selection.on('mousedown', '.select2-selection__clear', - function (evt) { - self._handleClear(evt); - }); - - container.on('keypress', function (evt) { - self._handleKeyboardClear(evt, container); - }); - }; - - AllowClear.prototype._handleClear = function (_, evt) { - // Ignore the event if it is disabled - if (this.options.get('disabled')) { - return; - } - - var $clear = this.$selection.find('.select2-selection__clear'); - - // Ignore the event if nothing has been selected - if ($clear.length === 0) { - return; - } - - evt.stopPropagation(); - - var data = $clear.data('data'); - - for (var d = 0; d < data.length; d++) { - var unselectData = { - data: data[d] - }; - - // Trigger the `unselect` event, so people can prevent it from being - // cleared. - this.trigger('unselect', unselectData); - - // If the event was prevented, don't clear it out. - if (unselectData.prevented) { - return; - } - } - - this.$element.val(this.placeholder.id).trigger('change'); - - this.trigger('toggle', {}); - }; - - AllowClear.prototype._handleKeyboardClear = function (_, evt, container) { - if (container.isOpen()) { - return; - } - - if (evt.which == KEYS.DELETE || evt.which == KEYS.BACKSPACE) { - this._handleClear(evt); - } - }; - - AllowClear.prototype.update = function (decorated, data) { - decorated.call(this, data); - - if (this.$selection.find('.select2-selection__placeholder').length > 0 || - data.length === 0) { - return; - } - - var $remove = $( - '<span class="select2-selection__clear">' + - '&times;' + - '</span>' - ); - $remove.data('data', data); - - this.$selection.find('.select2-selection__rendered').prepend($remove); - }; - - return AllowClear; -}); - -S2.define('select2/selection/search',[ - 'jquery', - '../utils', - '../keys' -], function ($, Utils, KEYS) { - function Search (decorated, $element, options) { - decorated.call(this, $element, options); - } - - Search.prototype.render = function (decorated) { - var $search = $( - '<li class="select2-search select2-search--inline">' + - '<input class="select2-search__field" type="search" tabindex="-1"' + - ' autocomplete="off" autocorrect="off" autocapitalize="off"' + - ' spellcheck="false" role="textbox" aria-autocomplete="list" />' + - '</li>' - ); - - this.$searchContainer = $search; - this.$search = $search.find('input'); - - var $rendered = decorated.call(this); - - this._transferTabIndex(); - - return $rendered; - }; - - Search.prototype.bind = function (decorated, container, $container) { - var self = this; - - decorated.call(this, container, $container); - - container.on('open', function () { - self.$search.trigger('focus'); - }); - - container.on('close', function () { - self.$search.val(''); - self.$search.removeAttr('aria-activedescendant'); - self.$search.trigger('focus'); - }); - - container.on('enable', function () { - self.$search.prop('disabled', false); - - self._transferTabIndex(); - }); - - container.on('disable', function () { - self.$search.prop('disabled', true); - }); - - container.on('focus', function (evt) { - self.$search.trigger('focus'); - }); - - container.on('results:focus', function (params) { - self.$search.attr('aria-activedescendant', params.id); - }); - - this.$selection.on('focusin', '.select2-search--inline', function (evt) { - self.trigger('focus', evt); - }); - - this.$selection.on('focusout', '.select2-search--inline', function (evt) { - self._handleBlur(evt); - }); - - this.$selection.on('keydown', '.select2-search--inline', function (evt) { - evt.stopPropagation(); - - self.trigger('keypress', evt); - - self._keyUpPrevented = evt.isDefaultPrevented(); - - var key = evt.which; - - if (key === KEYS.BACKSPACE && self.$search.val() === '') { - var $previousChoice = self.$searchContainer - .prev('.select2-selection__choice'); - - if ($previousChoice.length > 0) { - var item = $previousChoice.data('data'); - - self.searchRemoveChoice(item); - - evt.preventDefault(); - } - } - }); - - // Try to detect the IE version should the `documentMode` property that - // is stored on the document. This is only implemented in IE and is - // slightly cleaner than doing a user agent check. - // This property is not available in Edge, but Edge also doesn't have - // this bug. - var msie = document.documentMode; - var disableInputEvents = msie && msie <= 11; - - // Workaround for browsers which do not support the `input` event - // This will prevent double-triggering of events for browsers which support - // both the `keyup` and `input` events. - this.$selection.on( - 'input.searchcheck', - '.select2-search--inline', - function (evt) { - // IE will trigger the `input` event when a placeholder is used on a - // search box. To get around this issue, we are forced to ignore all - // `input` events in IE and keep using `keyup`. - if (disableInputEvents) { - self.$selection.off('input.search input.searchcheck'); - return; - } - - // Unbind the duplicated `keyup` event - self.$selection.off('keyup.search'); - } - ); - - this.$selection.on( - 'keyup.search input.search', - '.select2-search--inline', - function (evt) { - // IE will trigger the `input` event when a placeholder is used on a - // search box. To get around this issue, we are forced to ignore all - // `input` events in IE and keep using `keyup`. - if (disableInputEvents && evt.type === 'input') { - self.$selection.off('input.search input.searchcheck'); - return; - } - - var key = evt.which; - - // We can freely ignore events from modifier keys - if (key == KEYS.SHIFT || key == KEYS.CTRL || key == KEYS.ALT) { - return; - } - - // Tabbing will be handled during the `keydown` phase - if (key == KEYS.TAB) { - return; - } - - self.handleSearch(evt); - } - ); - }; - - /** - * This method will transfer the tabindex attribute from the rendered - * selection to the search box. This allows for the search box to be used as - * the primary focus instead of the selection container. - * - * @private - */ - Search.prototype._transferTabIndex = function (decorated) { - this.$search.attr('tabindex', this.$selection.attr('tabindex')); - this.$selection.attr('tabindex', '-1'); - }; - - Search.prototype.createPlaceholder = function (decorated, placeholder) { - this.$search.attr('placeholder', placeholder.text); - }; - - Search.prototype.update = function (decorated, data) { - var searchHadFocus = this.$search[0] == document.activeElement; - - this.$search.attr('placeholder', ''); - - decorated.call(this, data); - - this.$selection.find('.select2-selection__rendered') - .append(this.$searchContainer); - - this.resizeSearch(); - if (searchHadFocus) { - this.$search.focus(); - } - }; - - Search.prototype.handleSearch = function () { - this.resizeSearch(); - - if (!this._keyUpPrevented) { - var input = this.$search.val(); - - this.trigger('query', { - term: input - }); - } - - this._keyUpPrevented = false; - }; - - Search.prototype.searchRemoveChoice = function (decorated, item) { - this.trigger('unselect', { - data: item - }); - - this.$search.val(item.text); - this.handleSearch(); - }; - - Search.prototype.resizeSearch = function () { - this.$search.css('width', '25px'); - - var width = ''; - - if (this.$search.attr('placeholder') !== '') { - width = this.$selection.find('.select2-selection__rendered').innerWidth(); - } else { - var minimumWidth = this.$search.val().length + 1; - - width = (minimumWidth * 0.75) + 'em'; - } - - this.$search.css('width', width); - }; - - return Search; -}); - -S2.define('select2/selection/eventRelay',[ - 'jquery' -], function ($) { - function EventRelay () { } - - EventRelay.prototype.bind = function (decorated, container, $container) { - var self = this; - var relayEvents = [ - 'open', 'opening', - 'close', 'closing', - 'select', 'selecting', - 'unselect', 'unselecting' - ]; - - var preventableEvents = ['opening', 'closing', 'selecting', 'unselecting']; - - decorated.call(this, container, $container); - - container.on('*', function (name, params) { - // Ignore events that should not be relayed - if ($.inArray(name, relayEvents) === -1) { - return; - } - - // The parameters should always be an object - params = params || {}; - - // Generate the jQuery event for the Select2 event - var evt = $.Event('select2:' + name, { - params: params - }); - - self.$element.trigger(evt); - - // Only handle preventable events if it was one - if ($.inArray(name, preventableEvents) === -1) { - return; - } - - params.prevented = evt.isDefaultPrevented(); - }); - }; - - return EventRelay; -}); - -S2.define('select2/translation',[ - 'jquery', - 'require' -], function ($, require) { - function Translation (dict) { - this.dict = dict || {}; - } - - Translation.prototype.all = function () { - return this.dict; - }; - - Translation.prototype.get = function (key) { - return this.dict[key]; - }; - - Translation.prototype.extend = function (translation) { - this.dict = $.extend({}, translation.all(), this.dict); - }; - - // Static functions - - Translation._cache = {}; - - Translation.loadPath = function (path) { - if (!(path in Translation._cache)) { - var translations = require(path); - - Translation._cache[path] = translations; - } - - return new Translation(Translation._cache[path]); - }; - - return Translation; -}); - -S2.define('select2/diacritics',[ - -], function () { - var diacritics = { - '\u24B6': 'A', - '\uFF21': 'A', - '\u00C0': 'A', - '\u00C1': 'A', - '\u00C2': 'A', - '\u1EA6': 'A', - '\u1EA4': 'A', - '\u1EAA': 'A', - '\u1EA8': 'A', - '\u00C3': 'A', - '\u0100': 'A', - '\u0102': 'A', - '\u1EB0': 'A', - '\u1EAE': 'A', - '\u1EB4': 'A', - '\u1EB2': 'A', - '\u0226': 'A', - '\u01E0': 'A', - '\u00C4': 'A', - '\u01DE': 'A', - '\u1EA2': 'A', - '\u00C5': 'A', - '\u01FA': 'A', - '\u01CD': 'A', - '\u0200': 'A', - '\u0202': 'A', - '\u1EA0': 'A', - '\u1EAC': 'A', - '\u1EB6': 'A', - '\u1E00': 'A', - '\u0104': 'A', - '\u023A': 'A', - '\u2C6F': 'A', - '\uA732': 'AA', - '\u00C6': 'AE', - '\u01FC': 'AE', - '\u01E2': 'AE', - '\uA734': 'AO', - '\uA736': 'AU', - '\uA738': 'AV', - '\uA73A': 'AV', - '\uA73C': 'AY', - '\u24B7': 'B', - '\uFF22': 'B', - '\u1E02': 'B', - '\u1E04': 'B', - '\u1E06': 'B', - '\u0243': 'B', - '\u0182': 'B', - '\u0181': 'B', - '\u24B8': 'C', - '\uFF23': 'C', - '\u0106': 'C', - '\u0108': 'C', - '\u010A': 'C', - '\u010C': 'C', - '\u00C7': 'C', - '\u1E08': 'C', - '\u0187': 'C', - '\u023B': 'C', - '\uA73E': 'C', - '\u24B9': 'D', - '\uFF24': 'D', - '\u1E0A': 'D', - '\u010E': 'D', - '\u1E0C': 'D', - '\u1E10': 'D', - '\u1E12': 'D', - '\u1E0E': 'D', - '\u0110': 'D', - '\u018B': 'D', - '\u018A': 'D', - '\u0189': 'D', - '\uA779': 'D', - '\u01F1': 'DZ', - '\u01C4': 'DZ', - '\u01F2': 'Dz', - '\u01C5': 'Dz', - '\u24BA': 'E', - '\uFF25': 'E', - '\u00C8': 'E', - '\u00C9': 'E', - '\u00CA': 'E', - '\u1EC0': 'E', - '\u1EBE': 'E', - '\u1EC4': 'E', - '\u1EC2': 'E', - '\u1EBC': 'E', - '\u0112': 'E', - '\u1E14': 'E', - '\u1E16': 'E', - '\u0114': 'E', - '\u0116': 'E', - '\u00CB': 'E', - '\u1EBA': 'E', - '\u011A': 'E', - '\u0204': 'E', - '\u0206': 'E', - '\u1EB8': 'E', - '\u1EC6': 'E', - '\u0228': 'E', - '\u1E1C': 'E', - '\u0118': 'E', - '\u1E18': 'E', - '\u1E1A': 'E', - '\u0190': 'E', - '\u018E': 'E', - '\u24BB': 'F', - '\uFF26': 'F', - '\u1E1E': 'F', - '\u0191': 'F', - '\uA77B': 'F', - '\u24BC': 'G', - '\uFF27': 'G', - '\u01F4': 'G', - '\u011C': 'G', - '\u1E20': 'G', - '\u011E': 'G', - '\u0120': 'G', - '\u01E6': 'G', - '\u0122': 'G', - '\u01E4': 'G', - '\u0193': 'G', - '\uA7A0': 'G', - '\uA77D': 'G', - '\uA77E': 'G', - '\u24BD': 'H', - '\uFF28': 'H', - '\u0124': 'H', - '\u1E22': 'H', - '\u1E26': 'H', - '\u021E': 'H', - '\u1E24': 'H', - '\u1E28': 'H', - '\u1E2A': 'H', - '\u0126': 'H', - '\u2C67': 'H', - '\u2C75': 'H', - '\uA78D': 'H', - '\u24BE': 'I', - '\uFF29': 'I', - '\u00CC': 'I', - '\u00CD': 'I', - '\u00CE': 'I', - '\u0128': 'I', - '\u012A': 'I', - '\u012C': 'I', - '\u0130': 'I', - '\u00CF': 'I', - '\u1E2E': 'I', - '\u1EC8': 'I', - '\u01CF': 'I', - '\u0208': 'I', - '\u020A': 'I', - '\u1ECA': 'I', - '\u012E': 'I', - '\u1E2C': 'I', - '\u0197': 'I', - '\u24BF': 'J', - '\uFF2A': 'J', - '\u0134': 'J', - '\u0248': 'J', - '\u24C0': 'K', - '\uFF2B': 'K', - '\u1E30': 'K', - '\u01E8': 'K', - '\u1E32': 'K', - '\u0136': 'K', - '\u1E34': 'K', - '\u0198': 'K', - '\u2C69': 'K', - '\uA740': 'K', - '\uA742': 'K', - '\uA744': 'K', - '\uA7A2': 'K', - '\u24C1': 'L', - '\uFF2C': 'L', - '\u013F': 'L', - '\u0139': 'L', - '\u013D': 'L', - '\u1E36': 'L', - '\u1E38': 'L', - '\u013B': 'L', - '\u1E3C': 'L', - '\u1E3A': 'L', - '\u0141': 'L', - '\u023D': 'L', - '\u2C62': 'L', - '\u2C60': 'L', - '\uA748': 'L', - '\uA746': 'L', - '\uA780': 'L', - '\u01C7': 'LJ', - '\u01C8': 'Lj', - '\u24C2': 'M', - '\uFF2D': 'M', - '\u1E3E': 'M', - '\u1E40': 'M', - '\u1E42': 'M', - '\u2C6E': 'M', - '\u019C': 'M', - '\u24C3': 'N', - '\uFF2E': 'N', - '\u01F8': 'N', - '\u0143': 'N', - '\u00D1': 'N', - '\u1E44': 'N', - '\u0147': 'N', - '\u1E46': 'N', - '\u0145': 'N', - '\u1E4A': 'N', - '\u1E48': 'N', - '\u0220': 'N', - '\u019D': 'N', - '\uA790': 'N', - '\uA7A4': 'N', - '\u01CA': 'NJ', - '\u01CB': 'Nj', - '\u24C4': 'O', - '\uFF2F': 'O', - '\u00D2': 'O', - '\u00D3': 'O', - '\u00D4': 'O', - '\u1ED2': 'O', - '\u1ED0': 'O', - '\u1ED6': 'O', - '\u1ED4': 'O', - '\u00D5': 'O', - '\u1E4C': 'O', - '\u022C': 'O', - '\u1E4E': 'O', - '\u014C': 'O', - '\u1E50': 'O', - '\u1E52': 'O', - '\u014E': 'O', - '\u022E': 'O', - '\u0230': 'O', - '\u00D6': 'O', - '\u022A': 'O', - '\u1ECE': 'O', - '\u0150': 'O', - '\u01D1': 'O', - '\u020C': 'O', - '\u020E': 'O', - '\u01A0': 'O', - '\u1EDC': 'O', - '\u1EDA': 'O', - '\u1EE0': 'O', - '\u1EDE': 'O', - '\u1EE2': 'O', - '\u1ECC': 'O', - '\u1ED8': 'O', - '\u01EA': 'O', - '\u01EC': 'O', - '\u00D8': 'O', - '\u01FE': 'O', - '\u0186': 'O', - '\u019F': 'O', - '\uA74A': 'O', - '\uA74C': 'O', - '\u01A2': 'OI', - '\uA74E': 'OO', - '\u0222': 'OU', - '\u24C5': 'P', - '\uFF30': 'P', - '\u1E54': 'P', - '\u1E56': 'P', - '\u01A4': 'P', - '\u2C63': 'P', - '\uA750': 'P', - '\uA752': 'P', - '\uA754': 'P', - '\u24C6': 'Q', - '\uFF31': 'Q', - '\uA756': 'Q', - '\uA758': 'Q', - '\u024A': 'Q', - '\u24C7': 'R', - '\uFF32': 'R', - '\u0154': 'R', - '\u1E58': 'R', - '\u0158': 'R', - '\u0210': 'R', - '\u0212': 'R', - '\u1E5A': 'R', - '\u1E5C': 'R', - '\u0156': 'R', - '\u1E5E': 'R', - '\u024C': 'R', - '\u2C64': 'R', - '\uA75A': 'R', - '\uA7A6': 'R', - '\uA782': 'R', - '\u24C8': 'S', - '\uFF33': 'S', - '\u1E9E': 'S', - '\u015A': 'S', - '\u1E64': 'S', - '\u015C': 'S', - '\u1E60': 'S', - '\u0160': 'S', - '\u1E66': 'S', - '\u1E62': 'S', - '\u1E68': 'S', - '\u0218': 'S', - '\u015E': 'S', - '\u2C7E': 'S', - '\uA7A8': 'S', - '\uA784': 'S', - '\u24C9': 'T', - '\uFF34': 'T', - '\u1E6A': 'T', - '\u0164': 'T', - '\u1E6C': 'T', - '\u021A': 'T', - '\u0162': 'T', - '\u1E70': 'T', - '\u1E6E': 'T', - '\u0166': 'T', - '\u01AC': 'T', - '\u01AE': 'T', - '\u023E': 'T', - '\uA786': 'T', - '\uA728': 'TZ', - '\u24CA': 'U', - '\uFF35': 'U', - '\u00D9': 'U', - '\u00DA': 'U', - '\u00DB': 'U', - '\u0168': 'U', - '\u1E78': 'U', - '\u016A': 'U', - '\u1E7A': 'U', - '\u016C': 'U', - '\u00DC': 'U', - '\u01DB': 'U', - '\u01D7': 'U', - '\u01D5': 'U', - '\u01D9': 'U', - '\u1EE6': 'U', - '\u016E': 'U', - '\u0170': 'U', - '\u01D3': 'U', - '\u0214': 'U', - '\u0216': 'U', - '\u01AF': 'U', - '\u1EEA': 'U', - '\u1EE8': 'U', - '\u1EEE': 'U', - '\u1EEC': 'U', - '\u1EF0': 'U', - '\u1EE4': 'U', - '\u1E72': 'U', - '\u0172': 'U', - '\u1E76': 'U', - '\u1E74': 'U', - '\u0244': 'U', - '\u24CB': 'V', - '\uFF36': 'V', - '\u1E7C': 'V', - '\u1E7E': 'V', - '\u01B2': 'V', - '\uA75E': 'V', - '\u0245': 'V', - '\uA760': 'VY', - '\u24CC': 'W', - '\uFF37': 'W', - '\u1E80': 'W', - '\u1E82': 'W', - '\u0174': 'W', - '\u1E86': 'W', - '\u1E84': 'W', - '\u1E88': 'W', - '\u2C72': 'W', - '\u24CD': 'X', - '\uFF38': 'X', - '\u1E8A': 'X', - '\u1E8C': 'X', - '\u24CE': 'Y', - '\uFF39': 'Y', - '\u1EF2': 'Y', - '\u00DD': 'Y', - '\u0176': 'Y', - '\u1EF8': 'Y', - '\u0232': 'Y', - '\u1E8E': 'Y', - '\u0178': 'Y', - '\u1EF6': 'Y', - '\u1EF4': 'Y', - '\u01B3': 'Y', - '\u024E': 'Y', - '\u1EFE': 'Y', - '\u24CF': 'Z', - '\uFF3A': 'Z', - '\u0179': 'Z', - '\u1E90': 'Z', - '\u017B': 'Z', - '\u017D': 'Z', - '\u1E92': 'Z', - '\u1E94': 'Z', - '\u01B5': 'Z', - '\u0224': 'Z', - '\u2C7F': 'Z', - '\u2C6B': 'Z', - '\uA762': 'Z', - '\u24D0': 'a', - '\uFF41': 'a', - '\u1E9A': 'a', - '\u00E0': 'a', - '\u00E1': 'a', - '\u00E2': 'a', - '\u1EA7': 'a', - '\u1EA5': 'a', - '\u1EAB': 'a', - '\u1EA9': 'a', - '\u00E3': 'a', - '\u0101': 'a', - '\u0103': 'a', - '\u1EB1': 'a', - '\u1EAF': 'a', - '\u1EB5': 'a', - '\u1EB3': 'a', - '\u0227': 'a', - '\u01E1': 'a', - '\u00E4': 'a', - '\u01DF': 'a', - '\u1EA3': 'a', - '\u00E5': 'a', - '\u01FB': 'a', - '\u01CE': 'a', - '\u0201': 'a', - '\u0203': 'a', - '\u1EA1': 'a', - '\u1EAD': 'a', - '\u1EB7': 'a', - '\u1E01': 'a', - '\u0105': 'a', - '\u2C65': 'a', - '\u0250': 'a', - '\uA733': 'aa', - '\u00E6': 'ae', - '\u01FD': 'ae', - '\u01E3': 'ae', - '\uA735': 'ao', - '\uA737': 'au', - '\uA739': 'av', - '\uA73B': 'av', - '\uA73D': 'ay', - '\u24D1': 'b', - '\uFF42': 'b', - '\u1E03': 'b', - '\u1E05': 'b', - '\u1E07': 'b', - '\u0180': 'b', - '\u0183': 'b', - '\u0253': 'b', - '\u24D2': 'c', - '\uFF43': 'c', - '\u0107': 'c', - '\u0109': 'c', - '\u010B': 'c', - '\u010D': 'c', - '\u00E7': 'c', - '\u1E09': 'c', - '\u0188': 'c', - '\u023C': 'c', - '\uA73F': 'c', - '\u2184': 'c', - '\u24D3': 'd', - '\uFF44': 'd', - '\u1E0B': 'd', - '\u010F': 'd', - '\u1E0D': 'd', - '\u1E11': 'd', - '\u1E13': 'd', - '\u1E0F': 'd', - '\u0111': 'd', - '\u018C': 'd', - '\u0256': 'd', - '\u0257': 'd', - '\uA77A': 'd', - '\u01F3': 'dz', - '\u01C6': 'dz', - '\u24D4': 'e', - '\uFF45': 'e', - '\u00E8': 'e', - '\u00E9': 'e', - '\u00EA': 'e', - '\u1EC1': 'e', - '\u1EBF': 'e', - '\u1EC5': 'e', - '\u1EC3': 'e', - '\u1EBD': 'e', - '\u0113': 'e', - '\u1E15': 'e', - '\u1E17': 'e', - '\u0115': 'e', - '\u0117': 'e', - '\u00EB': 'e', - '\u1EBB': 'e', - '\u011B': 'e', - '\u0205': 'e', - '\u0207': 'e', - '\u1EB9': 'e', - '\u1EC7': 'e', - '\u0229': 'e', - '\u1E1D': 'e', - '\u0119': 'e', - '\u1E19': 'e', - '\u1E1B': 'e', - '\u0247': 'e', - '\u025B': 'e', - '\u01DD': 'e', - '\u24D5': 'f', - '\uFF46': 'f', - '\u1E1F': 'f', - '\u0192': 'f', - '\uA77C': 'f', - '\u24D6': 'g', - '\uFF47': 'g', - '\u01F5': 'g', - '\u011D': 'g', - '\u1E21': 'g', - '\u011F': 'g', - '\u0121': 'g', - '\u01E7': 'g', - '\u0123': 'g', - '\u01E5': 'g', - '\u0260': 'g', - '\uA7A1': 'g', - '\u1D79': 'g', - '\uA77F': 'g', - '\u24D7': 'h', - '\uFF48': 'h', - '\u0125': 'h', - '\u1E23': 'h', - '\u1E27': 'h', - '\u021F': 'h', - '\u1E25': 'h', - '\u1E29': 'h', - '\u1E2B': 'h', - '\u1E96': 'h', - '\u0127': 'h', - '\u2C68': 'h', - '\u2C76': 'h', - '\u0265': 'h', - '\u0195': 'hv', - '\u24D8': 'i', - '\uFF49': 'i', - '\u00EC': 'i', - '\u00ED': 'i', - '\u00EE': 'i', - '\u0129': 'i', - '\u012B': 'i', - '\u012D': 'i', - '\u00EF': 'i', - '\u1E2F': 'i', - '\u1EC9': 'i', - '\u01D0': 'i', - '\u0209': 'i', - '\u020B': 'i', - '\u1ECB': 'i', - '\u012F': 'i', - '\u1E2D': 'i', - '\u0268': 'i', - '\u0131': 'i', - '\u24D9': 'j', - '\uFF4A': 'j', - '\u0135': 'j', - '\u01F0': 'j', - '\u0249': 'j', - '\u24DA': 'k', - '\uFF4B': 'k', - '\u1E31': 'k', - '\u01E9': 'k', - '\u1E33': 'k', - '\u0137': 'k', - '\u1E35': 'k', - '\u0199': 'k', - '\u2C6A': 'k', - '\uA741': 'k', - '\uA743': 'k', - '\uA745': 'k', - '\uA7A3': 'k', - '\u24DB': 'l', - '\uFF4C': 'l', - '\u0140': 'l', - '\u013A': 'l', - '\u013E': 'l', - '\u1E37': 'l', - '\u1E39': 'l', - '\u013C': 'l', - '\u1E3D': 'l', - '\u1E3B': 'l', - '\u017F': 'l', - '\u0142': 'l', - '\u019A': 'l', - '\u026B': 'l', - '\u2C61': 'l', - '\uA749': 'l', - '\uA781': 'l', - '\uA747': 'l', - '\u01C9': 'lj', - '\u24DC': 'm', - '\uFF4D': 'm', - '\u1E3F': 'm', - '\u1E41': 'm', - '\u1E43': 'm', - '\u0271': 'm', - '\u026F': 'm', - '\u24DD': 'n', - '\uFF4E': 'n', - '\u01F9': 'n', - '\u0144': 'n', - '\u00F1': 'n', - '\u1E45': 'n', - '\u0148': 'n', - '\u1E47': 'n', - '\u0146': 'n', - '\u1E4B': 'n', - '\u1E49': 'n', - '\u019E': 'n', - '\u0272': 'n', - '\u0149': 'n', - '\uA791': 'n', - '\uA7A5': 'n', - '\u01CC': 'nj', - '\u24DE': 'o', - '\uFF4F': 'o', - '\u00F2': 'o', - '\u00F3': 'o', - '\u00F4': 'o', - '\u1ED3': 'o', - '\u1ED1': 'o', - '\u1ED7': 'o', - '\u1ED5': 'o', - '\u00F5': 'o', - '\u1E4D': 'o', - '\u022D': 'o', - '\u1E4F': 'o', - '\u014D': 'o', - '\u1E51': 'o', - '\u1E53': 'o', - '\u014F': 'o', - '\u022F': 'o', - '\u0231': 'o', - '\u00F6': 'o', - '\u022B': 'o', - '\u1ECF': 'o', - '\u0151': 'o', - '\u01D2': 'o', - '\u020D': 'o', - '\u020F': 'o', - '\u01A1': 'o', - '\u1EDD': 'o', - '\u1EDB': 'o', - '\u1EE1': 'o', - '\u1EDF': 'o', - '\u1EE3': 'o', - '\u1ECD': 'o', - '\u1ED9': 'o', - '\u01EB': 'o', - '\u01ED': 'o', - '\u00F8': 'o', - '\u01FF': 'o', - '\u0254': 'o', - '\uA74B': 'o', - '\uA74D': 'o', - '\u0275': 'o', - '\u01A3': 'oi', - '\u0223': 'ou', - '\uA74F': 'oo', - '\u24DF': 'p', - '\uFF50': 'p', - '\u1E55': 'p', - '\u1E57': 'p', - '\u01A5': 'p', - '\u1D7D': 'p', - '\uA751': 'p', - '\uA753': 'p', - '\uA755': 'p', - '\u24E0': 'q', - '\uFF51': 'q', - '\u024B': 'q', - '\uA757': 'q', - '\uA759': 'q', - '\u24E1': 'r', - '\uFF52': 'r', - '\u0155': 'r', - '\u1E59': 'r', - '\u0159': 'r', - '\u0211': 'r', - '\u0213': 'r', - '\u1E5B': 'r', - '\u1E5D': 'r', - '\u0157': 'r', - '\u1E5F': 'r', - '\u024D': 'r', - '\u027D': 'r', - '\uA75B': 'r', - '\uA7A7': 'r', - '\uA783': 'r', - '\u24E2': 's', - '\uFF53': 's', - '\u00DF': 's', - '\u015B': 's', - '\u1E65': 's', - '\u015D': 's', - '\u1E61': 's', - '\u0161': 's', - '\u1E67': 's', - '\u1E63': 's', - '\u1E69': 's', - '\u0219': 's', - '\u015F': 's', - '\u023F': 's', - '\uA7A9': 's', - '\uA785': 's', - '\u1E9B': 's', - '\u24E3': 't', - '\uFF54': 't', - '\u1E6B': 't', - '\u1E97': 't', - '\u0165': 't', - '\u1E6D': 't', - '\u021B': 't', - '\u0163': 't', - '\u1E71': 't', - '\u1E6F': 't', - '\u0167': 't', - '\u01AD': 't', - '\u0288': 't', - '\u2C66': 't', - '\uA787': 't', - '\uA729': 'tz', - '\u24E4': 'u', - '\uFF55': 'u', - '\u00F9': 'u', - '\u00FA': 'u', - '\u00FB': 'u', - '\u0169': 'u', - '\u1E79': 'u', - '\u016B': 'u', - '\u1E7B': 'u', - '\u016D': 'u', - '\u00FC': 'u', - '\u01DC': 'u', - '\u01D8': 'u', - '\u01D6': 'u', - '\u01DA': 'u', - '\u1EE7': 'u', - '\u016F': 'u', - '\u0171': 'u', - '\u01D4': 'u', - '\u0215': 'u', - '\u0217': 'u', - '\u01B0': 'u', - '\u1EEB': 'u', - '\u1EE9': 'u', - '\u1EEF': 'u', - '\u1EED': 'u', - '\u1EF1': 'u', - '\u1EE5': 'u', - '\u1E73': 'u', - '\u0173': 'u', - '\u1E77': 'u', - '\u1E75': 'u', - '\u0289': 'u', - '\u24E5': 'v', - '\uFF56': 'v', - '\u1E7D': 'v', - '\u1E7F': 'v', - '\u028B': 'v', - '\uA75F': 'v', - '\u028C': 'v', - '\uA761': 'vy', - '\u24E6': 'w', - '\uFF57': 'w', - '\u1E81': 'w', - '\u1E83': 'w', - '\u0175': 'w', - '\u1E87': 'w', - '\u1E85': 'w', - '\u1E98': 'w', - '\u1E89': 'w', - '\u2C73': 'w', - '\u24E7': 'x', - '\uFF58': 'x', - '\u1E8B': 'x', - '\u1E8D': 'x', - '\u24E8': 'y', - '\uFF59': 'y', - '\u1EF3': 'y', - '\u00FD': 'y', - '\u0177': 'y', - '\u1EF9': 'y', - '\u0233': 'y', - '\u1E8F': 'y', - '\u00FF': 'y', - '\u1EF7': 'y', - '\u1E99': 'y', - '\u1EF5': 'y', - '\u01B4': 'y', - '\u024F': 'y', - '\u1EFF': 'y', - '\u24E9': 'z', - '\uFF5A': 'z', - '\u017A': 'z', - '\u1E91': 'z', - '\u017C': 'z', - '\u017E': 'z', - '\u1E93': 'z', - '\u1E95': 'z', - '\u01B6': 'z', - '\u0225': 'z', - '\u0240': 'z', - '\u2C6C': 'z', - '\uA763': 'z', - '\u0386': '\u0391', - '\u0388': '\u0395', - '\u0389': '\u0397', - '\u038A': '\u0399', - '\u03AA': '\u0399', - '\u038C': '\u039F', - '\u038E': '\u03A5', - '\u03AB': '\u03A5', - '\u038F': '\u03A9', - '\u03AC': '\u03B1', - '\u03AD': '\u03B5', - '\u03AE': '\u03B7', - '\u03AF': '\u03B9', - '\u03CA': '\u03B9', - '\u0390': '\u03B9', - '\u03CC': '\u03BF', - '\u03CD': '\u03C5', - '\u03CB': '\u03C5', - '\u03B0': '\u03C5', - '\u03C9': '\u03C9', - '\u03C2': '\u03C3' - }; - - return diacritics; -}); - -S2.define('select2/data/base',[ - '../utils' -], function (Utils) { - function BaseAdapter ($element, options) { - BaseAdapter.__super__.constructor.call(this); - } - - Utils.Extend(BaseAdapter, Utils.Observable); - - BaseAdapter.prototype.current = function (callback) { - throw new Error('The `current` method must be defined in child classes.'); - }; - - BaseAdapter.prototype.query = function (params, callback) { - throw new Error('The `query` method must be defined in child classes.'); - }; - - BaseAdapter.prototype.bind = function (container, $container) { - // Can be implemented in subclasses - }; - - BaseAdapter.prototype.destroy = function () { - // Can be implemented in subclasses - }; - - BaseAdapter.prototype.generateResultId = function (container, data) { - var id = container.id + '-result-'; - - id += Utils.generateChars(4); - - if (data.id != null) { - id += '-' + data.id.toString(); - } else { - id += '-' + Utils.generateChars(4); - } - return id; - }; - - return BaseAdapter; -}); - -S2.define('select2/data/select',[ - './base', - '../utils', - 'jquery' -], function (BaseAdapter, Utils, $) { - function SelectAdapter ($element, options) { - this.$element = $element; - this.options = options; - - SelectAdapter.__super__.constructor.call(this); - } - - Utils.Extend(SelectAdapter, BaseAdapter); - - SelectAdapter.prototype.current = function (callback) { - var data = []; - var self = this; - - this.$element.find(':selected').each(function () { - var $option = $(this); - - var option = self.item($option); - - data.push(option); - }); - - callback(data); - }; - - SelectAdapter.prototype.select = function (data) { - var self = this; - - data.selected = true; - - // If data.element is a DOM node, use it instead - if ($(data.element).is('option')) { - data.element.selected = true; - - this.$element.trigger('change'); - - return; - } - - if (this.$element.prop('multiple')) { - this.current(function (currentData) { - var val = []; - - data = [data]; - data.push.apply(data, currentData); - - for (var d = 0; d < data.length; d++) { - var id = data[d].id; - - if ($.inArray(id, val) === -1) { - val.push(id); - } - } - - self.$element.val(val); - self.$element.trigger('change'); - }); - } else { - var val = data.id; - - this.$element.val(val); - this.$element.trigger('change'); - } - }; - - SelectAdapter.prototype.unselect = function (data) { - var self = this; - - if (!this.$element.prop('multiple')) { - return; - } - - data.selected = false; - - if ($(data.element).is('option')) { - data.element.selected = false; - - this.$element.trigger('change'); - - return; - } - - this.current(function (currentData) { - var val = []; - - for (var d = 0; d < currentData.length; d++) { - var id = currentData[d].id; - - if (id !== data.id && $.inArray(id, val) === -1) { - val.push(id); - } - } - - self.$element.val(val); - - self.$element.trigger('change'); - }); - }; - - SelectAdapter.prototype.bind = function (container, $container) { - var self = this; - - this.container = container; - - container.on('select', function (params) { - self.select(params.data); - }); - - container.on('unselect', function (params) { - self.unselect(params.data); - }); - }; - - SelectAdapter.prototype.destroy = function () { - // Remove anything added to child elements - this.$element.find('*').each(function () { - // Remove any custom data set by Select2 - $.removeData(this, 'data'); - }); - }; - - SelectAdapter.prototype.query = function (params, callback) { - var data = []; - var self = this; - - var $options = this.$element.children(); - - $options.each(function () { - var $option = $(this); - - if (!$option.is('option') && !$option.is('optgroup')) { - return; - } - - var option = self.item($option); - - var matches = self.matches(params, option); - - if (matches !== null) { - data.push(matches); - } - }); - - callback({ - results: data - }); - }; - - SelectAdapter.prototype.addOptions = function ($options) { - Utils.appendMany(this.$element, $options); - }; - - SelectAdapter.prototype.option = function (data) { - var option; - - if (data.children) { - option = document.createElement('optgroup'); - option.label = data.text; - } else { - option = document.createElement('option'); - - if (option.textContent !== undefined) { - option.textContent = data.text; - } else { - option.innerText = data.text; - } - } - - if (data.id !== undefined) { - option.value = data.id; - } - - if (data.disabled) { - option.disabled = true; - } - - if (data.selected) { - option.selected = true; - } - - if (data.title) { - option.title = data.title; - } - - var $option = $(option); - - var normalizedData = this._normalizeItem(data); - normalizedData.element = option; - - // Override the option's data with the combined data - $.data(option, 'data', normalizedData); - - return $option; - }; - - SelectAdapter.prototype.item = function ($option) { - var data = {}; - - data = $.data($option[0], 'data'); - - if (data != null) { - return data; - } - - if ($option.is('option')) { - data = { - id: $option.val(), - text: $option.text(), - disabled: $option.prop('disabled'), - selected: $option.prop('selected'), - title: $option.prop('title') - }; - } else if ($option.is('optgroup')) { - data = { - text: $option.prop('label'), - children: [], - title: $option.prop('title') - }; - - var $children = $option.children('option'); - var children = []; - - for (var c = 0; c < $children.length; c++) { - var $child = $($children[c]); - - var child = this.item($child); - - children.push(child); - } - - data.children = children; - } - - data = this._normalizeItem(data); - data.element = $option[0]; - - $.data($option[0], 'data', data); - - return data; - }; - - SelectAdapter.prototype._normalizeItem = function (item) { - if (!$.isPlainObject(item)) { - item = { - id: item, - text: item - }; - } - - item = $.extend({}, { - text: '' - }, item); - - var defaults = { - selected: false, - disabled: false - }; - - if (item.id != null) { - item.id = item.id.toString(); - } - - if (item.text != null) { - item.text = item.text.toString(); - } - - if (item._resultId == null && item.id && this.container != null) { - item._resultId = this.generateResultId(this.container, item); - } - - return $.extend({}, defaults, item); - }; - - SelectAdapter.prototype.matches = function (params, data) { - var matcher = this.options.get('matcher'); - - return matcher(params, data); - }; - - return SelectAdapter; -}); - -S2.define('select2/data/array',[ - './select', - '../utils', - 'jquery' -], function (SelectAdapter, Utils, $) { - function ArrayAdapter ($element, options) { - var data = options.get('data') || []; - - ArrayAdapter.__super__.constructor.call(this, $element, options); - - this.addOptions(this.convertToOptions(data)); - } - - Utils.Extend(ArrayAdapter, SelectAdapter); - - ArrayAdapter.prototype.select = function (data) { - var $option = this.$element.find('option').filter(function (i, elm) { - return elm.value == data.id.toString(); - }); - - if ($option.length === 0) { - $option = this.option(data); - - this.addOptions($option); - } - - ArrayAdapter.__super__.select.call(this, data); - }; - - ArrayAdapter.prototype.convertToOptions = function (data) { - var self = this; - - var $existing = this.$element.find('option'); - var existingIds = $existing.map(function () { - return self.item($(this)).id; - }).get(); - - var $options = []; - - // Filter out all items except for the one passed in the argument - function onlyItem (item) { - return function () { - return $(this).val() == item.id; - }; - } - - for (var d = 0; d < data.length; d++) { - var item = this._normalizeItem(data[d]); - - // Skip items which were pre-loaded, only merge the data - if ($.inArray(item.id, existingIds) >= 0) { - var $existingOption = $existing.filter(onlyItem(item)); - - var existingData = this.item($existingOption); - var newData = $.extend(true, {}, item, existingData); - - var $newOption = this.option(newData); - - $existingOption.replaceWith($newOption); - - continue; - } - - var $option = this.option(item); - - if (item.children) { - var $children = this.convertToOptions(item.children); - - Utils.appendMany($option, $children); - } - - $options.push($option); - } - - return $options; - }; - - return ArrayAdapter; -}); - -S2.define('select2/data/ajax',[ - './array', - '../utils', - 'jquery' -], function (ArrayAdapter, Utils, $) { - function AjaxAdapter ($element, options) { - this.ajaxOptions = this._applyDefaults(options.get('ajax')); - - if (this.ajaxOptions.processResults != null) { - this.processResults = this.ajaxOptions.processResults; - } - - AjaxAdapter.__super__.constructor.call(this, $element, options); - } - - Utils.Extend(AjaxAdapter, ArrayAdapter); - - AjaxAdapter.prototype._applyDefaults = function (options) { - var defaults = { - data: function (params) { - return $.extend({}, params, { - q: params.term - }); - }, - transport: function (params, success, failure) { - var $request = $.ajax(params); - - $request.then(success); - $request.fail(failure); - - return $request; - } - }; - - return $.extend({}, defaults, options, true); - }; - - AjaxAdapter.prototype.processResults = function (results) { - return results; - }; - - AjaxAdapter.prototype.query = function (params, callback) { - var matches = []; - var self = this; - - if (this._request != null) { - // JSONP requests cannot always be aborted - if ($.isFunction(this._request.abort)) { - this._request.abort(); - } - - this._request = null; - } - - var options = $.extend({ - type: 'GET' - }, this.ajaxOptions); - - if (typeof options.url === 'function') { - options.url = options.url.call(this.$element, params); - } - - if (typeof options.data === 'function') { - options.data = options.data.call(this.$element, params); - } - - function request () { - var $request = options.transport(options, function (data) { - var results = self.processResults(data, params); - - if (self.options.get('debug') && window.console && console.error) { - // Check to make sure that the response included a `results` key. - if (!results || !results.results || !$.isArray(results.results)) { - console.error( - 'Select2: The AJAX results did not return an array in the ' + - '`results` key of the response.' - ); - } - } - - callback(results); - }, function () { - // Attempt to detect if a request was aborted - // Only works if the transport exposes a status property - if ($request.status && $request.status === '0') { - return; - } - - self.trigger('results:message', { - message: 'errorLoading' - }); - }); - - self._request = $request; - } - - if (this.ajaxOptions.delay && params.term != null) { - if (this._queryTimeout) { - window.clearTimeout(this._queryTimeout); - } - - this._queryTimeout = window.setTimeout(request, this.ajaxOptions.delay); - } else { - request(); - } - }; - - return AjaxAdapter; -}); - -S2.define('select2/data/tags',[ - 'jquery' -], function ($) { - function Tags (decorated, $element, options) { - var tags = options.get('tags'); - - var createTag = options.get('createTag'); - - if (createTag !== undefined) { - this.createTag = createTag; - } - - var insertTag = options.get('insertTag'); - - if (insertTag !== undefined) { - this.insertTag = insertTag; - } - - decorated.call(this, $element, options); - - if ($.isArray(tags)) { - for (var t = 0; t < tags.length; t++) { - var tag = tags[t]; - var item = this._normalizeItem(tag); - - var $option = this.option(item); - - this.$element.append($option); - } - } - } - - Tags.prototype.query = function (decorated, params, callback) { - var self = this; - - this._removeOldTags(); - - if (params.term == null || params.page != null) { - decorated.call(this, params, callback); - return; - } - - function wrapper (obj, child) { - var data = obj.results; - - for (var i = 0; i < data.length; i++) { - var option = data[i]; - - var checkChildren = ( - option.children != null && - !wrapper({ - results: option.children - }, true) - ); - - var optionText = (option.text || '').toUpperCase(); - var paramsTerm = (params.term || '').toUpperCase(); - - var checkText = optionText === paramsTerm; - - if (checkText || checkChildren) { - if (child) { - return false; - } - - obj.data = data; - callback(obj); - - return; - } - } - - if (child) { - return true; - } - - var tag = self.createTag(params); - - if (tag != null) { - var $option = self.option(tag); - $option.attr('data-select2-tag', true); - - self.addOptions([$option]); - - self.insertTag(data, tag); - } - - obj.results = data; - - callback(obj); - } - - decorated.call(this, params, wrapper); - }; - - Tags.prototype.createTag = function (decorated, params) { - var term = $.trim(params.term); - - if (term === '') { - return null; - } - - return { - id: term, - text: term - }; - }; - - Tags.prototype.insertTag = function (_, data, tag) { - data.unshift(tag); - }; - - Tags.prototype._removeOldTags = function (_) { - var tag = this._lastTag; - - var $options = this.$element.find('option[data-select2-tag]'); - - $options.each(function () { - if (this.selected) { - return; - } - - $(this).remove(); - }); - }; - - return Tags; -}); - -S2.define('select2/data/tokenizer',[ - 'jquery' -], function ($) { - function Tokenizer (decorated, $element, options) { - var tokenizer = options.get('tokenizer'); - - if (tokenizer !== undefined) { - this.tokenizer = tokenizer; - } - - decorated.call(this, $element, options); - } - - Tokenizer.prototype.bind = function (decorated, container, $container) { - decorated.call(this, container, $container); - - this.$search = container.dropdown.$search || container.selection.$search || - $container.find('.select2-search__field'); - }; - - Tokenizer.prototype.query = function (decorated, params, callback) { - var self = this; - - function createAndSelect (data) { - // Normalize the data object so we can use it for checks - var item = self._normalizeItem(data); - - // Check if the data object already exists as a tag - // Select it if it doesn't - var $existingOptions = self.$element.find('option').filter(function () { - return $(this).val() === item.id; - }); - - // If an existing option wasn't found for it, create the option - if (!$existingOptions.length) { - var $option = self.option(item); - $option.attr('data-select2-tag', true); - - self._removeOldTags(); - self.addOptions([$option]); - } - - // Select the item, now that we know there is an option for it - select(item); - } - - function select (data) { - self.trigger('select', { - data: data - }); - } - - params.term = params.term || ''; - - var tokenData = this.tokenizer(params, this.options, createAndSelect); - - if (tokenData.term !== params.term) { - // Replace the search term if we have the search box - if (this.$search.length) { - this.$search.val(tokenData.term); - this.$search.focus(); - } - - params.term = tokenData.term; - } - - decorated.call(this, params, callback); - }; - - Tokenizer.prototype.tokenizer = function (_, params, options, callback) { - var separators = options.get('tokenSeparators') || []; - var term = params.term; - var i = 0; - - var createTag = this.createTag || function (params) { - return { - id: params.term, - text: params.term - }; - }; - - while (i < term.length) { - var termChar = term[i]; - - if ($.inArray(termChar, separators) === -1) { - i++; - - continue; - } - - var part = term.substr(0, i); - var partParams = $.extend({}, params, { - term: part - }); - - var data = createTag(partParams); - - if (data == null) { - i++; - continue; - } - - callback(data); - - // Reset the term to not include the tokenized portion - term = term.substr(i + 1) || ''; - i = 0; - } - - return { - term: term - }; - }; - - return Tokenizer; -}); - -S2.define('select2/data/minimumInputLength',[ - -], function () { - function MinimumInputLength (decorated, $e, options) { - this.minimumInputLength = options.get('minimumInputLength'); - - decorated.call(this, $e, options); - } - - MinimumInputLength.prototype.query = function (decorated, params, callback) { - params.term = params.term || ''; - - if (params.term.length < this.minimumInputLength) { - this.trigger('results:message', { - message: 'inputTooShort', - args: { - minimum: this.minimumInputLength, - input: params.term, - params: params - } - }); - - return; - } - - decorated.call(this, params, callback); - }; - - return MinimumInputLength; -}); - -S2.define('select2/data/maximumInputLength',[ - -], function () { - function MaximumInputLength (decorated, $e, options) { - this.maximumInputLength = options.get('maximumInputLength'); - - decorated.call(this, $e, options); - } - - MaximumInputLength.prototype.query = function (decorated, params, callback) { - params.term = params.term || ''; - - if (this.maximumInputLength > 0 && - params.term.length > this.maximumInputLength) { - this.trigger('results:message', { - message: 'inputTooLong', - args: { - maximum: this.maximumInputLength, - input: params.term, - params: params - } - }); - - return; - } - - decorated.call(this, params, callback); - }; - - return MaximumInputLength; -}); - -S2.define('select2/data/maximumSelectionLength',[ - -], function (){ - function MaximumSelectionLength (decorated, $e, options) { - this.maximumSelectionLength = options.get('maximumSelectionLength'); - - decorated.call(this, $e, options); - } - - MaximumSelectionLength.prototype.query = - function (decorated, params, callback) { - var self = this; - - this.current(function (currentData) { - var count = currentData != null ? currentData.length : 0; - if (self.maximumSelectionLength > 0 && - count >= self.maximumSelectionLength) { - self.trigger('results:message', { - message: 'maximumSelected', - args: { - maximum: self.maximumSelectionLength - } - }); - return; - } - decorated.call(self, params, callback); - }); - }; - - return MaximumSelectionLength; -}); - -S2.define('select2/dropdown',[ - 'jquery', - './utils' -], function ($, Utils) { - function Dropdown ($element, options) { - this.$element = $element; - this.options = options; - - Dropdown.__super__.constructor.call(this); - } - - Utils.Extend(Dropdown, Utils.Observable); - - Dropdown.prototype.render = function () { - var $dropdown = $( - '<span class="select2-dropdown">' + - '<span class="select2-results"></span>' + - '</span>' - ); - - $dropdown.attr('dir', this.options.get('dir')); - - this.$dropdown = $dropdown; - - return $dropdown; - }; - - Dropdown.prototype.bind = function () { - // Should be implemented in subclasses - }; - - Dropdown.prototype.position = function ($dropdown, $container) { - // Should be implmented in subclasses - }; - - Dropdown.prototype.destroy = function () { - // Remove the dropdown from the DOM - this.$dropdown.remove(); - }; - - return Dropdown; -}); - -S2.define('select2/dropdown/search',[ - 'jquery', - '../utils' -], function ($, Utils) { - function Search () { } - - Search.prototype.render = function (decorated) { - var $rendered = decorated.call(this); - - var $search = $( - '<span class="select2-search select2-search--dropdown">' + - '<input class="select2-search__field" type="search" tabindex="-1"' + - ' autocomplete="off" autocorrect="off" autocapitalize="off"' + - ' spellcheck="false" role="textbox" />' + - '</span>' - ); - - this.$searchContainer = $search; - this.$search = $search.find('input'); - - $rendered.prepend($search); - - return $rendered; - }; - - Search.prototype.bind = function (decorated, container, $container) { - var self = this; - - decorated.call(this, container, $container); - - this.$search.on('keydown', function (evt) { - self.trigger('keypress', evt); - - self._keyUpPrevented = evt.isDefaultPrevented(); - }); - - // Workaround for browsers which do not support the `input` event - // This will prevent double-triggering of events for browsers which support - // both the `keyup` and `input` events. - this.$search.on('input', function (evt) { - // Unbind the duplicated `keyup` event - $(this).off('keyup'); - }); - - this.$search.on('keyup input', function (evt) { - self.handleSearch(evt); - }); - - container.on('open', function () { - self.$search.attr('tabindex', 0); - - self.$search.focus(); - - window.setTimeout(function () { - self.$search.focus(); - }, 0); - }); - - container.on('close', function () { - self.$search.attr('tabindex', -1); - - self.$search.val(''); - }); - - container.on('focus', function () { - if (!container.isOpen()) { - self.$search.focus(); - } - }); - - container.on('results:all', function (params) { - if (params.query.term == null || params.query.term === '') { - var showSearch = self.showSearch(params); - - if (showSearch) { - self.$searchContainer.removeClass('select2-search--hide'); - } else { - self.$searchContainer.addClass('select2-search--hide'); - } - } - }); - }; - - Search.prototype.handleSearch = function (evt) { - if (!this._keyUpPrevented) { - var input = this.$search.val(); - - this.trigger('query', { - term: input - }); - } - - this._keyUpPrevented = false; - }; - - Search.prototype.showSearch = function (_, params) { - return true; - }; - - return Search; -}); - -S2.define('select2/dropdown/hidePlaceholder',[ - -], function () { - function HidePlaceholder (decorated, $element, options, dataAdapter) { - this.placeholder = this.normalizePlaceholder(options.get('placeholder')); - - decorated.call(this, $element, options, dataAdapter); - } - - HidePlaceholder.prototype.append = function (decorated, data) { - data.results = this.removePlaceholder(data.results); - - decorated.call(this, data); - }; - - HidePlaceholder.prototype.normalizePlaceholder = function (_, placeholder) { - if (typeof placeholder === 'string') { - placeholder = { - id: '', - text: placeholder - }; - } - - return placeholder; - }; - - HidePlaceholder.prototype.removePlaceholder = function (_, data) { - var modifiedData = data.slice(0); - - for (var d = data.length - 1; d >= 0; d--) { - var item = data[d]; - - if (this.placeholder.id === item.id) { - modifiedData.splice(d, 1); - } - } - - return modifiedData; - }; - - return HidePlaceholder; -}); - -S2.define('select2/dropdown/infiniteScroll',[ - 'jquery' -], function ($) { - function InfiniteScroll (decorated, $element, options, dataAdapter) { - this.lastParams = {}; - - decorated.call(this, $element, options, dataAdapter); - - this.$loadingMore = this.createLoadingMore(); - this.loading = false; - } - - InfiniteScroll.prototype.append = function (decorated, data) { - this.$loadingMore.remove(); - this.loading = false; - - decorated.call(this, data); - - if (this.showLoadingMore(data)) { - this.$results.append(this.$loadingMore); - } - }; - - InfiniteScroll.prototype.bind = function (decorated, container, $container) { - var self = this; - - decorated.call(this, container, $container); - - container.on('query', function (params) { - self.lastParams = params; - self.loading = true; - }); - - container.on('query:append', function (params) { - self.lastParams = params; - self.loading = true; - }); - - this.$results.on('scroll', function () { - var isLoadMoreVisible = $.contains( - document.documentElement, - self.$loadingMore[0] - ); - - if (self.loading || !isLoadMoreVisible) { - return; - } - - var currentOffset = self.$results.offset().top + - self.$results.outerHeight(false); - var loadingMoreOffset = self.$loadingMore.offset().top + - self.$loadingMore.outerHeight(false); - - if (currentOffset + 50 >= loadingMoreOffset) { - self.loadMore(); - } - }); - }; - - InfiniteScroll.prototype.loadMore = function () { - this.loading = true; - - var params = $.extend({}, {page: 1}, this.lastParams); - - params.page++; - - this.trigger('query:append', params); - }; - - InfiniteScroll.prototype.showLoadingMore = function (_, data) { - return data.pagination && data.pagination.more; - }; - - InfiniteScroll.prototype.createLoadingMore = function () { - var $option = $( - '<li ' + - 'class="select2-results__option select2-results__option--load-more"' + - 'role="treeitem" aria-disabled="true"></li>' - ); - - var message = this.options.get('translations').get('loadingMore'); - - $option.html(message(this.lastParams)); - - return $option; - }; - - return InfiniteScroll; -}); - -S2.define('select2/dropdown/attachBody',[ - 'jquery', - '../utils' -], function ($, Utils) { - function AttachBody (decorated, $element, options) { - this.$dropdownParent = options.get('dropdownParent') || $(document.body); - - decorated.call(this, $element, options); - } - - AttachBody.prototype.bind = function (decorated, container, $container) { - var self = this; - - var setupResultsEvents = false; - - decorated.call(this, container, $container); - - container.on('open', function () { - self._showDropdown(); - self._attachPositioningHandler(container); - - if (!setupResultsEvents) { - setupResultsEvents = true; - - container.on('results:all', function () { - self._positionDropdown(); - self._resizeDropdown(); - }); - - container.on('results:append', function () { - self._positionDropdown(); - self._resizeDropdown(); - }); - } - }); - - container.on('close', function () { - self._hideDropdown(); - self._detachPositioningHandler(container); - }); - - this.$dropdownContainer.on('mousedown', function (evt) { - evt.stopPropagation(); - }); - }; - - AttachBody.prototype.destroy = function (decorated) { - decorated.call(this); - - this.$dropdownContainer.remove(); - }; - - AttachBody.prototype.position = function (decorated, $dropdown, $container) { - // Clone all of the container classes - $dropdown.attr('class', $container.attr('class')); - - $dropdown.removeClass('select2'); - $dropdown.addClass('select2-container--open'); - - $dropdown.css({ - position: 'absolute', - top: -999999 - }); - - this.$container = $container; - }; - - AttachBody.prototype.render = function (decorated) { - var $container = $('<span></span>'); - - var $dropdown = decorated.call(this); - $container.append($dropdown); - - this.$dropdownContainer = $container; - - return $container; - }; - - AttachBody.prototype._hideDropdown = function (decorated) { - this.$dropdownContainer.detach(); - }; - - AttachBody.prototype._attachPositioningHandler = - function (decorated, container) { - var self = this; - - var scrollEvent = 'scroll.select2.' + container.id; - var resizeEvent = 'resize.select2.' + container.id; - var orientationEvent = 'orientationchange.select2.' + container.id; - - var $watchers = this.$container.parents().filter(Utils.hasScroll); - $watchers.each(function () { - $(this).data('select2-scroll-position', { - x: $(this).scrollLeft(), - y: $(this).scrollTop() - }); - }); - - $watchers.on(scrollEvent, function (ev) { - var position = $(this).data('select2-scroll-position'); - $(this).scrollTop(position.y); - }); - - $(window).on(scrollEvent + ' ' + resizeEvent + ' ' + orientationEvent, - function (e) { - self._positionDropdown(); - self._resizeDropdown(); - }); - }; - - AttachBody.prototype._detachPositioningHandler = - function (decorated, container) { - var scrollEvent = 'scroll.select2.' + container.id; - var resizeEvent = 'resize.select2.' + container.id; - var orientationEvent = 'orientationchange.select2.' + container.id; - - var $watchers = this.$container.parents().filter(Utils.hasScroll); - $watchers.off(scrollEvent); - - $(window).off(scrollEvent + ' ' + resizeEvent + ' ' + orientationEvent); - }; - - AttachBody.prototype._positionDropdown = function () { - var $window = $(window); - - var isCurrentlyAbove = this.$dropdown.hasClass('select2-dropdown--above'); - var isCurrentlyBelow = this.$dropdown.hasClass('select2-dropdown--below'); - - var newDirection = null; - - var offset = this.$container.offset(); - - offset.bottom = offset.top + this.$container.outerHeight(false); - - var container = { - height: this.$container.outerHeight(false) - }; - - container.top = offset.top; - container.bottom = offset.top + container.height; - - var dropdown = { - height: this.$dropdown.outerHeight(false) - }; - - var viewport = { - top: $window.scrollTop(), - bottom: $window.scrollTop() + $window.height() - }; - - var enoughRoomAbove = viewport.top < (offset.top - dropdown.height); - var enoughRoomBelow = viewport.bottom > (offset.bottom + dropdown.height); - - var css = { - left: offset.left, - top: container.bottom - }; - - // Determine what the parent element is to use for calciulating the offset - var $offsetParent = this.$dropdownParent; - - // For statically positoned elements, we need to get the element - // that is determining the offset - if ($offsetParent.css('position') === 'static') { - $offsetParent = $offsetParent.offsetParent(); - } - - var parentOffset = $offsetParent.offset(); - - css.top -= parentOffset.top; - css.left -= parentOffset.left; - - if (!isCurrentlyAbove && !isCurrentlyBelow) { - newDirection = 'below'; - } - - if (!enoughRoomBelow && enoughRoomAbove && !isCurrentlyAbove) { - newDirection = 'above'; - } else if (!enoughRoomAbove && enoughRoomBelow && isCurrentlyAbove) { - newDirection = 'below'; - } - - if (newDirection == 'above' || - (isCurrentlyAbove && newDirection !== 'below')) { - css.top = container.top - parentOffset.top - dropdown.height; - } - - if (newDirection != null) { - this.$dropdown - .removeClass('select2-dropdown--below select2-dropdown--above') - .addClass('select2-dropdown--' + newDirection); - this.$container - .removeClass('select2-container--below select2-container--above') - .addClass('select2-container--' + newDirection); - } - - this.$dropdownContainer.css(css); - }; - - AttachBody.prototype._resizeDropdown = function () { - var css = { - width: this.$container.outerWidth(false) + 'px' - }; - - if (this.options.get('dropdownAutoWidth')) { - css.minWidth = css.width; - css.position = 'relative'; - css.width = 'auto'; - } - - this.$dropdown.css(css); - }; - - AttachBody.prototype._showDropdown = function (decorated) { - this.$dropdownContainer.appendTo(this.$dropdownParent); - - this._positionDropdown(); - this._resizeDropdown(); - }; - - return AttachBody; -}); - -S2.define('select2/dropdown/minimumResultsForSearch',[ - -], function () { - function countResults (data) { - var count = 0; - - for (var d = 0; d < data.length; d++) { - var item = data[d]; - - if (item.children) { - count += countResults(item.children); - } else { - count++; - } - } - - return count; - } - - function MinimumResultsForSearch (decorated, $element, options, dataAdapter) { - this.minimumResultsForSearch = options.get('minimumResultsForSearch'); - - if (this.minimumResultsForSearch < 0) { - this.minimumResultsForSearch = Infinity; - } - - decorated.call(this, $element, options, dataAdapter); - } - - MinimumResultsForSearch.prototype.showSearch = function (decorated, params) { - if (countResults(params.data.results) < this.minimumResultsForSearch) { - return false; - } - - return decorated.call(this, params); - }; - - return MinimumResultsForSearch; -}); - -S2.define('select2/dropdown/selectOnClose',[ - -], function () { - function SelectOnClose () { } - - SelectOnClose.prototype.bind = function (decorated, container, $container) { - var self = this; - - decorated.call(this, container, $container); - - container.on('close', function (params) { - self._handleSelectOnClose(params); - }); - }; - - SelectOnClose.prototype._handleSelectOnClose = function (_, params) { - if (params && params.originalSelect2Event != null) { - var event = params.originalSelect2Event; - - // Don't select an item if the close event was triggered from a select or - // unselect event - if (event._type === 'select' || event._type === 'unselect') { - return; - } - } - - var $highlightedResults = this.getHighlightedResults(); - - // Only select highlighted results - if ($highlightedResults.length < 1) { - return; - } - - var data = $highlightedResults.data('data'); - - // Don't re-select already selected resulte - if ( - (data.element != null && data.element.selected) || - (data.element == null && data.selected) - ) { - return; - } - - this.trigger('select', { - data: data - }); - }; - - return SelectOnClose; -}); - -S2.define('select2/dropdown/closeOnSelect',[ - -], function () { - function CloseOnSelect () { } - - CloseOnSelect.prototype.bind = function (decorated, container, $container) { - var self = this; - - decorated.call(this, container, $container); - - container.on('select', function (evt) { - self._selectTriggered(evt); - }); - - container.on('unselect', function (evt) { - self._selectTriggered(evt); - }); - }; - - CloseOnSelect.prototype._selectTriggered = function (_, evt) { - var originalEvent = evt.originalEvent; - - // Don't close if the control key is being held - if (originalEvent && originalEvent.ctrlKey) { - return; - } - - this.trigger('close', { - originalEvent: originalEvent, - originalSelect2Event: evt - }); - }; - - return CloseOnSelect; -}); - -S2.define('select2/i18n/en',[],function () { - // English - return { - errorLoading: function () { - return 'The results could not be loaded.'; - }, - inputTooLong: function (args) { - var overChars = args.input.length - args.maximum; - - var message = 'Please delete ' + overChars + ' character'; - - if (overChars != 1) { - message += 's'; - } - - return message; - }, - inputTooShort: function (args) { - var remainingChars = args.minimum - args.input.length; - - var message = 'Please enter ' + remainingChars + ' or more characters'; - - return message; - }, - loadingMore: function () { - return 'Loading more results…'; - }, - maximumSelected: function (args) { - var message = 'You can only select ' + args.maximum + ' item'; - - if (args.maximum != 1) { - message += 's'; - } - - return message; - }, - noResults: function () { - return 'No results found'; - }, - searching: function () { - return 'Searching…'; - } - }; -}); - -S2.define('select2/defaults',[ - 'jquery', - 'require', - - './results', - - './selection/single', - './selection/multiple', - './selection/placeholder', - './selection/allowClear', - './selection/search', - './selection/eventRelay', - - './utils', - './translation', - './diacritics', - - './data/select', - './data/array', - './data/ajax', - './data/tags', - './data/tokenizer', - './data/minimumInputLength', - './data/maximumInputLength', - './data/maximumSelectionLength', - - './dropdown', - './dropdown/search', - './dropdown/hidePlaceholder', - './dropdown/infiniteScroll', - './dropdown/attachBody', - './dropdown/minimumResultsForSearch', - './dropdown/selectOnClose', - './dropdown/closeOnSelect', - - './i18n/en' -], function ($, require, - - ResultsList, - - SingleSelection, MultipleSelection, Placeholder, AllowClear, - SelectionSearch, EventRelay, - - Utils, Translation, DIACRITICS, - - SelectData, ArrayData, AjaxData, Tags, Tokenizer, - MinimumInputLength, MaximumInputLength, MaximumSelectionLength, - - Dropdown, DropdownSearch, HidePlaceholder, InfiniteScroll, - AttachBody, MinimumResultsForSearch, SelectOnClose, CloseOnSelect, - - EnglishTranslation) { - function Defaults () { - this.reset(); - } - - Defaults.prototype.apply = function (options) { - options = $.extend(true, {}, this.defaults, options); - - if (options.dataAdapter == null) { - if (options.ajax != null) { - options.dataAdapter = AjaxData; - } else if (options.data != null) { - options.dataAdapter = ArrayData; - } else { - options.dataAdapter = SelectData; - } - - if (options.minimumInputLength > 0) { - options.dataAdapter = Utils.Decorate( - options.dataAdapter, - MinimumInputLength - ); - } - - if (options.maximumInputLength > 0) { - options.dataAdapter = Utils.Decorate( - options.dataAdapter, - MaximumInputLength - ); - } - - if (options.maximumSelectionLength > 0) { - options.dataAdapter = Utils.Decorate( - options.dataAdapter, - MaximumSelectionLength - ); - } - - if (options.tags) { - options.dataAdapter = Utils.Decorate(options.dataAdapter, Tags); - } - - if (options.tokenSeparators != null || options.tokenizer != null) { - options.dataAdapter = Utils.Decorate( - options.dataAdapter, - Tokenizer - ); - } - - if (options.query != null) { - var Query = require(options.amdBase + 'compat/query'); - - options.dataAdapter = Utils.Decorate( - options.dataAdapter, - Query - ); - } - - if (options.initSelection != null) { - var InitSelection = require(options.amdBase + 'compat/initSelection'); - - options.dataAdapter = Utils.Decorate( - options.dataAdapter, - InitSelection - ); - } - } - - if (options.resultsAdapter == null) { - options.resultsAdapter = ResultsList; - - if (options.ajax != null) { - options.resultsAdapter = Utils.Decorate( - options.resultsAdapter, - InfiniteScroll - ); - } - - if (options.placeholder != null) { - options.resultsAdapter = Utils.Decorate( - options.resultsAdapter, - HidePlaceholder - ); - } - - if (options.selectOnClose) { - options.resultsAdapter = Utils.Decorate( - options.resultsAdapter, - SelectOnClose - ); - } - } - - if (options.dropdownAdapter == null) { - if (options.multiple) { - options.dropdownAdapter = Dropdown; - } else { - var SearchableDropdown = Utils.Decorate(Dropdown, DropdownSearch); - - options.dropdownAdapter = SearchableDropdown; - } - - if (options.minimumResultsForSearch !== 0) { - options.dropdownAdapter = Utils.Decorate( - options.dropdownAdapter, - MinimumResultsForSearch - ); - } - - if (options.closeOnSelect) { - options.dropdownAdapter = Utils.Decorate( - options.dropdownAdapter, - CloseOnSelect - ); - } - - if ( - options.dropdownCssClass != null || - options.dropdownCss != null || - options.adaptDropdownCssClass != null - ) { - var DropdownCSS = require(options.amdBase + 'compat/dropdownCss'); - - options.dropdownAdapter = Utils.Decorate( - options.dropdownAdapter, - DropdownCSS - ); - } - - options.dropdownAdapter = Utils.Decorate( - options.dropdownAdapter, - AttachBody - ); - } - - if (options.selectionAdapter == null) { - if (options.multiple) { - options.selectionAdapter = MultipleSelection; - } else { - options.selectionAdapter = SingleSelection; - } - - // Add the placeholder mixin if a placeholder was specified - if (options.placeholder != null) { - options.selectionAdapter = Utils.Decorate( - options.selectionAdapter, - Placeholder - ); - } - - if (options.allowClear) { - options.selectionAdapter = Utils.Decorate( - options.selectionAdapter, - AllowClear - ); - } - - if (options.multiple) { - options.selectionAdapter = Utils.Decorate( - options.selectionAdapter, - SelectionSearch - ); - } - - if ( - options.containerCssClass != null || - options.containerCss != null || - options.adaptContainerCssClass != null - ) { - var ContainerCSS = require(options.amdBase + 'compat/containerCss'); - - options.selectionAdapter = Utils.Decorate( - options.selectionAdapter, - ContainerCSS - ); - } - - options.selectionAdapter = Utils.Decorate( - options.selectionAdapter, - EventRelay - ); - } - - if (typeof options.language === 'string') { - // Check if the language is specified with a region - if (options.language.indexOf('-') > 0) { - // Extract the region information if it is included - var languageParts = options.language.split('-'); - var baseLanguage = languageParts[0]; - - options.language = [options.language, baseLanguage]; - } else { - options.language = [options.language]; - } - } - - if ($.isArray(options.language)) { - var languages = new Translation(); - options.language.push('en'); - - var languageNames = options.language; - - for (var l = 0; l < languageNames.length; l++) { - var name = languageNames[l]; - var language = {}; - - try { - // Try to load it with the original name - language = Translation.loadPath(name); - } catch (e) { - try { - // If we couldn't load it, check if it wasn't the full path - name = this.defaults.amdLanguageBase + name; - language = Translation.loadPath(name); - } catch (ex) { - // The translation could not be loaded at all. Sometimes this is - // because of a configuration problem, other times this can be - // because of how Select2 helps load all possible translation files. - if (options.debug && window.console && console.warn) { - console.warn( - 'Select2: The language file for "' + name + '" could not be ' + - 'automatically loaded. A fallback will be used instead.' - ); - } - - continue; - } - } - - languages.extend(language); - } - - options.translations = languages; - } else { - var baseTranslation = Translation.loadPath( - this.defaults.amdLanguageBase + 'en' - ); - var customTranslation = new Translation(options.language); - - customTranslation.extend(baseTranslation); - - options.translations = customTranslation; - } - - return options; - }; - - Defaults.prototype.reset = function () { - function stripDiacritics (text) { - // Used 'uni range + named function' from http://jsperf.com/diacritics/18 - function match(a) { - return DIACRITICS[a] || a; - } - - return text.replace(/[^\u0000-\u007E]/g, match); - } - - function matcher (params, data) { - // Always return the object if there is nothing to compare - if ($.trim(params.term) === '') { - return data; - } - - // Do a recursive check for options with children - if (data.children && data.children.length > 0) { - // Clone the data object if there are children - // This is required as we modify the object to remove any non-matches - var match = $.extend(true, {}, data); - - // Check each child of the option - for (var c = data.children.length - 1; c >= 0; c--) { - var child = data.children[c]; - - var matches = matcher(params, child); - - // If there wasn't a match, remove the object in the array - if (matches == null) { - match.children.splice(c, 1); - } - } - - // If any children matched, return the new object - if (match.children.length > 0) { - return match; - } - - // If there were no matching children, check just the plain object - return matcher(params, match); - } - - var original = stripDiacritics(data.text).toUpperCase(); - var term = stripDiacritics(params.term).toUpperCase(); - - // Check if the text contains the term - if (original.indexOf(term) > -1) { - return data; - } - - // If it doesn't contain the term, don't return anything - return null; - } - - this.defaults = { - amdBase: './', - amdLanguageBase: './i18n/', - closeOnSelect: true, - debug: false, - dropdownAutoWidth: false, - escapeMarkup: Utils.escapeMarkup, - language: EnglishTranslation, - matcher: matcher, - minimumInputLength: 0, - maximumInputLength: 0, - maximumSelectionLength: 0, - minimumResultsForSearch: 0, - selectOnClose: false, - sorter: function (data) { - return data; - }, - templateResult: function (result) { - return result.text; - }, - templateSelection: function (selection) { - return selection.text; - }, - theme: 'default', - width: 'resolve' - }; - }; - - Defaults.prototype.set = function (key, value) { - var camelKey = $.camelCase(key); - - var data = {}; - data[camelKey] = value; - - var convertedData = Utils._convertData(data); - - $.extend(this.defaults, convertedData); - }; - - var defaults = new Defaults(); - - return defaults; -}); - -S2.define('select2/options',[ - 'require', - 'jquery', - './defaults', - './utils' -], function (require, $, Defaults, Utils) { - function Options (options, $element) { - this.options = options; - - if ($element != null) { - this.fromElement($element); - } - - this.options = Defaults.apply(this.options); - - if ($element && $element.is('input')) { - var InputCompat = require(this.get('amdBase') + 'compat/inputData'); - - this.options.dataAdapter = Utils.Decorate( - this.options.dataAdapter, - InputCompat - ); - } - } - - Options.prototype.fromElement = function ($e) { - var excludedData = ['select2']; - - if (this.options.multiple == null) { - this.options.multiple = $e.prop('multiple'); - } - - if (this.options.disabled == null) { - this.options.disabled = $e.prop('disabled'); - } - - if (this.options.language == null) { - if ($e.prop('lang')) { - this.options.language = $e.prop('lang').toLowerCase(); - } else if ($e.closest('[lang]').prop('lang')) { - this.options.language = $e.closest('[lang]').prop('lang'); - } - } - - if (this.options.dir == null) { - if ($e.prop('dir')) { - this.options.dir = $e.prop('dir'); - } else if ($e.closest('[dir]').prop('dir')) { - this.options.dir = $e.closest('[dir]').prop('dir'); - } else { - this.options.dir = 'ltr'; - } - } - - $e.prop('disabled', this.options.disabled); - $e.prop('multiple', this.options.multiple); - - if ($e.data('select2Tags')) { - if (this.options.debug && window.console && console.warn) { - console.warn( - 'Select2: The `data-select2-tags` attribute has been changed to ' + - 'use the `data-data` and `data-tags="true"` attributes and will be ' + - 'removed in future versions of Select2.' - ); - } - - $e.data('data', $e.data('select2Tags')); - $e.data('tags', true); - } - - if ($e.data('ajaxUrl')) { - if (this.options.debug && window.console && console.warn) { - console.warn( - 'Select2: The `data-ajax-url` attribute has been changed to ' + - '`data-ajax--url` and support for the old attribute will be removed' + - ' in future versions of Select2.' - ); - } - - $e.attr('ajax--url', $e.data('ajaxUrl')); - $e.data('ajax--url', $e.data('ajaxUrl')); - } - - var dataset = {}; - - // Prefer the element's `dataset` attribute if it exists - // jQuery 1.x does not correctly handle data attributes with multiple dashes - if ($.fn.jquery && $.fn.jquery.substr(0, 2) == '1.' && $e[0].dataset) { - dataset = $.extend(true, {}, $e[0].dataset, $e.data()); - } else { - dataset = $e.data(); - } - - var data = $.extend(true, {}, dataset); - - data = Utils._convertData(data); - - for (var key in data) { - if ($.inArray(key, excludedData) > -1) { - continue; - } - - if ($.isPlainObject(this.options[key])) { - $.extend(this.options[key], data[key]); - } else { - this.options[key] = data[key]; - } - } - - return this; - }; - - Options.prototype.get = function (key) { - return this.options[key]; - }; - - Options.prototype.set = function (key, val) { - this.options[key] = val; - }; - - return Options; -}); - -S2.define('select2/core',[ - 'jquery', - './options', - './utils', - './keys' -], function ($, Options, Utils, KEYS) { - var Select2 = function ($element, options) { - if ($element.data('select2') != null) { - $element.data('select2').destroy(); - } - - this.$element = $element; - - this.id = this._generateId($element); - - options = options || {}; - - this.options = new Options(options, $element); - - Select2.__super__.constructor.call(this); - - // Set up the tabindex - - var tabindex = $element.attr('tabindex') || 0; - $element.data('old-tabindex', tabindex); - $element.attr('tabindex', '-1'); - - // Set up containers and adapters - - var DataAdapter = this.options.get('dataAdapter'); - this.dataAdapter = new DataAdapter($element, this.options); - - var $container = this.render(); - - this._placeContainer($container); - - var SelectionAdapter = this.options.get('selectionAdapter'); - this.selection = new SelectionAdapter($element, this.options); - this.$selection = this.selection.render(); - - this.selection.position(this.$selection, $container); - - var DropdownAdapter = this.options.get('dropdownAdapter'); - this.dropdown = new DropdownAdapter($element, this.options); - this.$dropdown = this.dropdown.render(); - - this.dropdown.position(this.$dropdown, $container); - - var ResultsAdapter = this.options.get('resultsAdapter'); - this.results = new ResultsAdapter($element, this.options, this.dataAdapter); - this.$results = this.results.render(); - - this.results.position(this.$results, this.$dropdown); - - // Bind events - - var self = this; - - // Bind the container to all of the adapters - this._bindAdapters(); - - // Register any DOM event handlers - this._registerDomEvents(); - - // Register any internal event handlers - this._registerDataEvents(); - this._registerSelectionEvents(); - this._registerDropdownEvents(); - this._registerResultsEvents(); - this._registerEvents(); - - // Set the initial state - this.dataAdapter.current(function (initialData) { - self.trigger('selection:update', { - data: initialData - }); - }); - - // Hide the original select - $element.addClass('select2-hidden-accessible'); - $element.attr('aria-hidden', 'true'); - - // Synchronize any monitored attributes - this._syncAttributes(); - - $element.data('select2', this); - }; - - Utils.Extend(Select2, Utils.Observable); - - Select2.prototype._generateId = function ($element) { - var id = ''; - - if ($element.attr('id') != null) { - id = $element.attr('id'); - } else if ($element.attr('name') != null) { - id = $element.attr('name') + '-' + Utils.generateChars(2); - } else { - id = Utils.generateChars(4); - } - - id = id.replace(/(:|\.|\[|\]|,)/g, ''); - id = 'select2-' + id; - - return id; - }; - - Select2.prototype._placeContainer = function ($container) { - $container.insertAfter(this.$element); - - var width = this._resolveWidth(this.$element, this.options.get('width')); - - if (width != null) { - $container.css('width', width); - } - }; - - Select2.prototype._resolveWidth = function ($element, method) { - var WIDTH = /^width:(([-+]?([0-9]*\.)?[0-9]+)(px|em|ex|%|in|cm|mm|pt|pc))/i; - - if (method == 'resolve') { - var styleWidth = this._resolveWidth($element, 'style'); - - if (styleWidth != null) { - return styleWidth; - } - - return this._resolveWidth($element, 'element'); - } - - if (method == 'element') { - var elementWidth = $element.outerWidth(false); - - if (elementWidth <= 0) { - return 'auto'; - } - - return elementWidth + 'px'; - } - - if (method == 'style') { - var style = $element.attr('style'); - - if (typeof(style) !== 'string') { - return null; - } - - var attrs = style.split(';'); - - for (var i = 0, l = attrs.length; i < l; i = i + 1) { - var attr = attrs[i].replace(/\s/g, ''); - var matches = attr.match(WIDTH); - - if (matches !== null && matches.length >= 1) { - return matches[1]; - } - } - - return null; - } - - return method; - }; - - Select2.prototype._bindAdapters = function () { - this.dataAdapter.bind(this, this.$container); - this.selection.bind(this, this.$container); - - this.dropdown.bind(this, this.$container); - this.results.bind(this, this.$container); - }; - - Select2.prototype._registerDomEvents = function () { - var self = this; - - this.$element.on('change.select2', function () { - self.dataAdapter.current(function (data) { - self.trigger('selection:update', { - data: data - }); - }); - }); - - this.$element.on('focus.select2', function (evt) { - self.trigger('focus', evt); - }); - - this._syncA = Utils.bind(this._syncAttributes, this); - this._syncS = Utils.bind(this._syncSubtree, this); - - if (this.$element[0].attachEvent) { - this.$element[0].attachEvent('onpropertychange', this._syncA); - } - - var observer = window.MutationObserver || - window.WebKitMutationObserver || - window.MozMutationObserver - ; - - if (observer != null) { - this._observer = new observer(function (mutations) { - $.each(mutations, self._syncA); - $.each(mutations, self._syncS); - }); - this._observer.observe(this.$element[0], { - attributes: true, - childList: true, - subtree: false - }); - } else if (this.$element[0].addEventListener) { - this.$element[0].addEventListener( - 'DOMAttrModified', - self._syncA, - false - ); - this.$element[0].addEventListener( - 'DOMNodeInserted', - self._syncS, - false - ); - this.$element[0].addEventListener( - 'DOMNodeRemoved', - self._syncS, - false - ); - } - }; - - Select2.prototype._registerDataEvents = function () { - var self = this; - - this.dataAdapter.on('*', function (name, params) { - self.trigger(name, params); - }); - }; - - Select2.prototype._registerSelectionEvents = function () { - var self = this; - var nonRelayEvents = ['toggle', 'focus']; - - this.selection.on('toggle', function () { - self.toggleDropdown(); - }); - - this.selection.on('focus', function (params) { - self.focus(params); - }); - - this.selection.on('*', function (name, params) { - if ($.inArray(name, nonRelayEvents) !== -1) { - return; - } - - self.trigger(name, params); - }); - }; - - Select2.prototype._registerDropdownEvents = function () { - var self = this; - - this.dropdown.on('*', function (name, params) { - self.trigger(name, params); - }); - }; - - Select2.prototype._registerResultsEvents = function () { - var self = this; - - this.results.on('*', function (name, params) { - self.trigger(name, params); - }); - }; - - Select2.prototype._registerEvents = function () { - var self = this; - - this.on('open', function () { - self.$container.addClass('select2-container--open'); - }); - - this.on('close', function () { - self.$container.removeClass('select2-container--open'); - }); - - this.on('enable', function () { - self.$container.removeClass('select2-container--disabled'); - }); - - this.on('disable', function () { - self.$container.addClass('select2-container--disabled'); - }); - - this.on('blur', function () { - self.$container.removeClass('select2-container--focus'); - }); - - this.on('query', function (params) { - if (!self.isOpen()) { - self.trigger('open', {}); - } - - this.dataAdapter.query(params, function (data) { - self.trigger('results:all', { - data: data, - query: params - }); - }); - }); - - this.on('query:append', function (params) { - this.dataAdapter.query(params, function (data) { - self.trigger('results:append', { - data: data, - query: params - }); - }); - }); - - this.on('keypress', function (evt) { - var key = evt.which; - - if (self.isOpen()) { - if (key === KEYS.ESC || key === KEYS.TAB || - (key === KEYS.UP && evt.altKey)) { - self.close(); - - evt.preventDefault(); - } else if (key === KEYS.ENTER) { - self.trigger('results:select', {}); - - evt.preventDefault(); - } else if ((key === KEYS.SPACE && evt.ctrlKey)) { - self.trigger('results:toggle', {}); - - evt.preventDefault(); - } else if (key === KEYS.UP) { - self.trigger('results:previous', {}); - - evt.preventDefault(); - } else if (key === KEYS.DOWN) { - self.trigger('results:next', {}); - - evt.preventDefault(); - } - } else { - if (key === KEYS.ENTER || key === KEYS.SPACE || - (key === KEYS.DOWN && evt.altKey)) { - self.open(); - - evt.preventDefault(); - } - } - }); - }; - - Select2.prototype._syncAttributes = function () { - this.options.set('disabled', this.$element.prop('disabled')); - - if (this.options.get('disabled')) { - if (this.isOpen()) { - this.close(); - } - - this.trigger('disable', {}); - } else { - this.trigger('enable', {}); - } - }; - - Select2.prototype._syncSubtree = function (evt, mutations) { - var changed = false; - var self = this; - - // Ignore any mutation events raised for elements that aren't options or - // optgroups. This handles the case when the select element is destroyed - if ( - evt && evt.target && ( - evt.target.nodeName !== 'OPTION' && evt.target.nodeName !== 'OPTGROUP' - ) - ) { - return; - } - - if (!mutations) { - // If mutation events aren't supported, then we can only assume that the - // change affected the selections - changed = true; - } else if (mutations.addedNodes && mutations.addedNodes.length > 0) { - for (var n = 0; n < mutations.addedNodes.length; n++) { - var node = mutations.addedNodes[n]; - - if (node.selected) { - changed = true; - } - } - } else if (mutations.removedNodes && mutations.removedNodes.length > 0) { - changed = true; - } - - // Only re-pull the data if we think there is a change - if (changed) { - this.dataAdapter.current(function (currentData) { - self.trigger('selection:update', { - data: currentData - }); - }); - } - }; - - /** - * Override the trigger method to automatically trigger pre-events when - * there are events that can be prevented. - */ - Select2.prototype.trigger = function (name, args) { - var actualTrigger = Select2.__super__.trigger; - var preTriggerMap = { - 'open': 'opening', - 'close': 'closing', - 'select': 'selecting', - 'unselect': 'unselecting' - }; - - if (args === undefined) { - args = {}; - } - - if (name in preTriggerMap) { - var preTriggerName = preTriggerMap[name]; - var preTriggerArgs = { - prevented: false, - name: name, - args: args - }; - - actualTrigger.call(this, preTriggerName, preTriggerArgs); - - if (preTriggerArgs.prevented) { - args.prevented = true; - - return; - } - } - - actualTrigger.call(this, name, args); - }; - - Select2.prototype.toggleDropdown = function () { - if (this.options.get('disabled')) { - return; - } - - if (this.isOpen()) { - this.close(); - } else { - this.open(); - } - }; - - Select2.prototype.open = function () { - if (this.isOpen()) { - return; - } - - this.trigger('query', {}); - }; - - Select2.prototype.close = function () { - if (!this.isOpen()) { - return; - } - - this.trigger('close', {}); - }; - - Select2.prototype.isOpen = function () { - return this.$container.hasClass('select2-container--open'); - }; - - Select2.prototype.hasFocus = function () { - return this.$container.hasClass('select2-container--focus'); - }; - - Select2.prototype.focus = function (data) { - // No need to re-trigger focus events if we are already focused - if (this.hasFocus()) { - return; - } - - this.$container.addClass('select2-container--focus'); - this.trigger('focus', {}); - }; - - Select2.prototype.enable = function (args) { - if (this.options.get('debug') && window.console && console.warn) { - console.warn( - 'Select2: The `select2("enable")` method has been deprecated and will' + - ' be removed in later Select2 versions. Use $element.prop("disabled")' + - ' instead.' - ); - } - - if (args == null || args.length === 0) { - args = [true]; - } - - var disabled = !args[0]; - - this.$element.prop('disabled', disabled); - }; - - Select2.prototype.data = function () { - if (this.options.get('debug') && - arguments.length > 0 && window.console && console.warn) { - console.warn( - 'Select2: Data can no longer be set using `select2("data")`. You ' + - 'should consider setting the value instead using `$element.val()`.' - ); - } - - var data = []; - - this.dataAdapter.current(function (currentData) { - data = currentData; - }); - - return data; - }; - - Select2.prototype.val = function (args) { - if (this.options.get('debug') && window.console && console.warn) { - console.warn( - 'Select2: The `select2("val")` method has been deprecated and will be' + - ' removed in later Select2 versions. Use $element.val() instead.' - ); - } - - if (args == null || args.length === 0) { - return this.$element.val(); - } - - var newVal = args[0]; - - if ($.isArray(newVal)) { - newVal = $.map(newVal, function (obj) { - return obj.toString(); - }); - } - - this.$element.val(newVal).trigger('change'); - }; - - Select2.prototype.destroy = function () { - this.$container.remove(); - - if (this.$element[0].detachEvent) { - this.$element[0].detachEvent('onpropertychange', this._syncA); - } - - if (this._observer != null) { - this._observer.disconnect(); - this._observer = null; - } else if (this.$element[0].removeEventListener) { - this.$element[0] - .removeEventListener('DOMAttrModified', this._syncA, false); - this.$element[0] - .removeEventListener('DOMNodeInserted', this._syncS, false); - this.$element[0] - .removeEventListener('DOMNodeRemoved', this._syncS, false); - } - - this._syncA = null; - this._syncS = null; - - this.$element.off('.select2'); - this.$element.attr('tabindex', this.$element.data('old-tabindex')); - - this.$element.removeClass('select2-hidden-accessible'); - this.$element.attr('aria-hidden', 'false'); - this.$element.removeData('select2'); - - this.dataAdapter.destroy(); - this.selection.destroy(); - this.dropdown.destroy(); - this.results.destroy(); - - this.dataAdapter = null; - this.selection = null; - this.dropdown = null; - this.results = null; - }; - - Select2.prototype.render = function () { - var $container = $( - '<span class="select2 select2-container">' + - '<span class="selection"></span>' + - '<span class="dropdown-wrapper" aria-hidden="true"></span>' + - '</span>' - ); - - $container.attr('dir', this.options.get('dir')); - - this.$container = $container; - - this.$container.addClass('select2-container--' + this.options.get('theme')); - - $container.data('element', this.$element); - - return $container; - }; - - return Select2; -}); - -S2.define('jquery-mousewheel',[ - 'jquery' -], function ($) { - // Used to shim jQuery.mousewheel for non-full builds. - return $; -}); - -S2.define('jquery.select2',[ - 'jquery', - 'jquery-mousewheel', - - './select2/core', - './select2/defaults' -], function ($, _, Select2, Defaults) { - if ($.fn.select2 == null) { - // All methods that should return the element - var thisMethods = ['open', 'close', 'destroy']; - - $.fn.select2 = function (options) { - options = options || {}; - - if (typeof options === 'object') { - this.each(function () { - var instanceOptions = $.extend(true, {}, options); - - var instance = new Select2($(this), instanceOptions); - }); - - return this; - } else if (typeof options === 'string') { - var ret; - var args = Array.prototype.slice.call(arguments, 1); - - this.each(function () { - var instance = $(this).data('select2'); - - if (instance == null && window.console && console.error) { - console.error( - 'The select2(\'' + options + '\') method was called on an ' + - 'element that is not using Select2.' - ); - } - - ret = instance[options].apply(instance, args); - }); - - // Check if we should be returning `this` - if ($.inArray(options, thisMethods) > -1) { - return this; - } - - return ret; - } else { - throw new Error('Invalid arguments for Select2: ' + options); - } - }; - } - - if ($.fn.select2.defaults == null) { - $.fn.select2.defaults = Defaults; - } - - return Select2; -}); - - // Return the AMD loader configuration so it can be used outside of this file - return { - define: S2.define, - require: S2.require - }; -}()); - - // Autoload the jQuery bindings - // We know that all of the modules exist above this, so we're safe - var select2 = S2.require('jquery.select2'); - - // Hold the AMD module references on the jQuery function that was just loaded - // This allows Select2 to use the internal loader outside of this file, such - // as in the language files. - jQuery.fn.select2.amd = S2; - - // Return the Select2 instance for anyone who is importing it. - return select2; -})); diff --git a/admin/bower_components/select2/dist/js/select2.min.js b/admin/bower_components/select2/dist/js/select2.min.js deleted file mode 100644 index 991b8fc..0000000 --- a/admin/bower_components/select2/dist/js/select2.min.js +++ /dev/null @@ -1 +0,0 @@ -/*! Select2 4.0.4 | https://github.com/select2/select2/blob/master/LICENSE.md */!function(a){"function"==typeof define&&define.amd?define(["jquery"],a):"object"==typeof module&&module.exports?module.exports=function(b,c){return void 0===c&&(c="undefined"!=typeof window?require("jquery"):require("jquery")(b)),a(c),c}:a(jQuery)}(function(a){var b=function(){if(a&&a.fn&&a.fn.select2&&a.fn.select2.amd)var b=a.fn.select2.amd;var b;return function(){if(!b||!b.requirejs){b?c=b:b={};var a,c,d;!function(b){function e(a,b){return v.call(a,b)}function f(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o=b&&b.split("/"),p=t.map,q=p&&p["*"]||{};if(a){for(a=a.split("/"),g=a.length-1,t.nodeIdCompat&&x.test(a[g])&&(a[g]=a[g].replace(x,"")),"."===a[0].charAt(0)&&o&&(n=o.slice(0,o.length-1),a=n.concat(a)),k=0;k<a.length;k++)if("."===(m=a[k]))a.splice(k,1),k-=1;else if(".."===m){if(0===k||1===k&&".."===a[2]||".."===a[k-1])continue;k>0&&(a.splice(k-1,2),k-=2)}a=a.join("/")}if((o||q)&&p){for(c=a.split("/"),k=c.length;k>0;k-=1){if(d=c.slice(0,k).join("/"),o)for(l=o.length;l>0;l-=1)if((e=p[o.slice(0,l).join("/")])&&(e=e[d])){f=e,h=k;break}if(f)break;!i&&q&&q[d]&&(i=q[d],j=k)}!f&&i&&(f=i,h=j),f&&(c.splice(0,h,f),a=c.join("/"))}return a}function g(a,c){return function(){var d=w.call(arguments,0);return"string"!=typeof d[0]&&1===d.length&&d.push(null),o.apply(b,d.concat([a,c]))}}function h(a){return function(b){return f(b,a)}}function i(a){return function(b){r[a]=b}}function j(a){if(e(s,a)){var c=s[a];delete s[a],u[a]=!0,n.apply(b,c)}if(!e(r,a)&&!e(u,a))throw new Error("No "+a);return r[a]}function k(a){var b,c=a?a.indexOf("!"):-1;return c>-1&&(b=a.substring(0,c),a=a.substring(c+1,a.length)),[b,a]}function l(a){return a?k(a):[]}function m(a){return function(){return t&&t.config&&t.config[a]||{}}}var n,o,p,q,r={},s={},t={},u={},v=Object.prototype.hasOwnProperty,w=[].slice,x=/\.js$/;p=function(a,b){var c,d=k(a),e=d[0],g=b[1];return a=d[1],e&&(e=f(e,g),c=j(e)),e?a=c&&c.normalize?c.normalize(a,h(g)):f(a,g):(a=f(a,g),d=k(a),e=d[0],a=d[1],e&&(c=j(e))),{f:e?e+"!"+a:a,n:a,pr:e,p:c}},q={require:function(a){return g(a)},exports:function(a){var b=r[a];return void 0!==b?b:r[a]={}},module:function(a){return{id:a,uri:"",exports:r[a],config:m(a)}}},n=function(a,c,d,f){var h,k,m,n,o,t,v,w=[],x=typeof d;if(f=f||a,t=l(f),"undefined"===x||"function"===x){for(c=!c.length&&d.length?["require","exports","module"]:c,o=0;o<c.length;o+=1)if(n=p(c[o],t),"require"===(k=n.f))w[o]=q.require(a);else if("exports"===k)w[o]=q.exports(a),v=!0;else if("module"===k)h=w[o]=q.module(a);else if(e(r,k)||e(s,k)||e(u,k))w[o]=j(k);else{if(!n.p)throw new Error(a+" missing "+k);n.p.load(n.n,g(f,!0),i(k),{}),w[o]=r[k]}m=d?d.apply(r[a],w):void 0,a&&(h&&h.exports!==b&&h.exports!==r[a]?r[a]=h.exports:m===b&&v||(r[a]=m))}else a&&(r[a]=d)},a=c=o=function(a,c,d,e,f){if("string"==typeof a)return q[a]?q[a](c):j(p(a,l(c)).f);if(!a.splice){if(t=a,t.deps&&o(t.deps,t.callback),!c)return;c.splice?(a=c,c=d,d=null):a=b}return c=c||function(){},"function"==typeof d&&(d=e,e=f),e?n(b,a,c,d):setTimeout(function(){n(b,a,c,d)},4),o},o.config=function(a){return o(a)},a._defined=r,d=function(a,b,c){if("string"!=typeof a)throw new Error("See almond README: incorrect module build, no module name");b.splice||(c=b,b=[]),e(r,a)||e(s,a)||(s[a]=[a,b,c])},d.amd={jQuery:!0}}(),b.requirejs=a,b.require=c,b.define=d}}(),b.define("almond",function(){}),b.define("jquery",[],function(){var b=a||$;return null==b&&console&&console.error&&console.error("Select2: An instance of jQuery or a jQuery-compatible library was not found. Make sure that you are including jQuery before Select2 on your web page."),b}),b.define("select2/utils",["jquery"],function(a){function b(a){var b=a.prototype,c=[];for(var d in b){"function"==typeof b[d]&&("constructor"!==d&&c.push(d))}return c}var c={};c.Extend=function(a,b){function c(){this.constructor=a}var d={}.hasOwnProperty;for(var e in b)d.call(b,e)&&(a[e]=b[e]);return c.prototype=b.prototype,a.prototype=new c,a.__super__=b.prototype,a},c.Decorate=function(a,c){function d(){var b=Array.prototype.unshift,d=c.prototype.constructor.length,e=a.prototype.constructor;d>0&&(b.call(arguments,a.prototype.constructor),e=c.prototype.constructor),e.apply(this,arguments)}function e(){this.constructor=d}var f=b(c),g=b(a);c.displayName=a.displayName,d.prototype=new e;for(var h=0;h<g.length;h++){var i=g[h];d.prototype[i]=a.prototype[i]}for(var j=(function(a){var b=function(){};a in d.prototype&&(b=d.prototype[a]);var e=c.prototype[a];return function(){return Array.prototype.unshift.call(arguments,b),e.apply(this,arguments)}}),k=0;k<f.length;k++){var l=f[k];d.prototype[l]=j(l)}return d};var d=function(){this.listeners={}};return d.prototype.on=function(a,b){this.listeners=this.listeners||{},a in this.listeners?this.listeners[a].push(b):this.listeners[a]=[b]},d.prototype.trigger=function(a){var b=Array.prototype.slice,c=b.call(arguments,1);this.listeners=this.listeners||{},null==c&&(c=[]),0===c.length&&c.push({}),c[0]._type=a,a in this.listeners&&this.invoke(this.listeners[a],b.call(arguments,1)),"*"in this.listeners&&this.invoke(this.listeners["*"],arguments)},d.prototype.invoke=function(a,b){for(var c=0,d=a.length;c<d;c++)a[c].apply(this,b)},c.Observable=d,c.generateChars=function(a){for(var b="",c=0;c<a;c++){b+=Math.floor(36*Math.random()).toString(36)}return b},c.bind=function(a,b){return function(){a.apply(b,arguments)}},c._convertData=function(a){for(var b in a){var c=b.split("-"),d=a;if(1!==c.length){for(var e=0;e<c.length;e++){var f=c[e];f=f.substring(0,1).toLowerCase()+f.substring(1),f in d||(d[f]={}),e==c.length-1&&(d[f]=a[b]),d=d[f]}delete a[b]}}return a},c.hasScroll=function(b,c){var d=a(c),e=c.style.overflowX,f=c.style.overflowY;return(e!==f||"hidden"!==f&&"visible"!==f)&&("scroll"===e||"scroll"===f||(d.innerHeight()<c.scrollHeight||d.innerWidth()<c.scrollWidth))},c.escapeMarkup=function(a){var b={"\\":"&#92;","&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#39;","/":"&#47;"};return"string"!=typeof a?a:String(a).replace(/[&<>"'\/\\]/g,function(a){return b[a]})},c.appendMany=function(b,c){if("1.7"===a.fn.jquery.substr(0,3)){var d=a();a.map(c,function(a){d=d.add(a)}),c=d}b.append(c)},c}),b.define("select2/results",["jquery","./utils"],function(a,b){function c(a,b,d){this.$element=a,this.data=d,this.options=b,c.__super__.constructor.call(this)}return b.Extend(c,b.Observable),c.prototype.render=function(){var b=a('<ul class="select2-results__options" role="tree"></ul>');return this.options.get("multiple")&&b.attr("aria-multiselectable","true"),this.$results=b,b},c.prototype.clear=function(){this.$results.empty()},c.prototype.displayMessage=function(b){var c=this.options.get("escapeMarkup");this.clear(),this.hideLoading();var d=a('<li role="treeitem" aria-live="assertive" class="select2-results__option"></li>'),e=this.options.get("translations").get(b.message);d.append(c(e(b.args))),d[0].className+=" select2-results__message",this.$results.append(d)},c.prototype.hideMessages=function(){this.$results.find(".select2-results__message").remove()},c.prototype.append=function(a){this.hideLoading();var b=[];if(null==a.results||0===a.results.length)return void(0===this.$results.children().length&&this.trigger("results:message",{message:"noResults"}));a.results=this.sort(a.results);for(var c=0;c<a.results.length;c++){var d=a.results[c],e=this.option(d);b.push(e)}this.$results.append(b)},c.prototype.position=function(a,b){b.find(".select2-results").append(a)},c.prototype.sort=function(a){return this.options.get("sorter")(a)},c.prototype.highlightFirstItem=function(){var a=this.$results.find(".select2-results__option[aria-selected]"),b=a.filter("[aria-selected=true]");b.length>0?b.first().trigger("mouseenter"):a.first().trigger("mouseenter"),this.ensureHighlightVisible()},c.prototype.setClasses=function(){var b=this;this.data.current(function(c){var d=a.map(c,function(a){return a.id.toString()});b.$results.find(".select2-results__option[aria-selected]").each(function(){var b=a(this),c=a.data(this,"data"),e=""+c.id;null!=c.element&&c.element.selected||null==c.element&&a.inArray(e,d)>-1?b.attr("aria-selected","true"):b.attr("aria-selected","false")})})},c.prototype.showLoading=function(a){this.hideLoading();var b=this.options.get("translations").get("searching"),c={disabled:!0,loading:!0,text:b(a)},d=this.option(c);d.className+=" loading-results",this.$results.prepend(d)},c.prototype.hideLoading=function(){this.$results.find(".loading-results").remove()},c.prototype.option=function(b){var c=document.createElement("li");c.className="select2-results__option";var d={role:"treeitem","aria-selected":"false"};b.disabled&&(delete d["aria-selected"],d["aria-disabled"]="true"),null==b.id&&delete d["aria-selected"],null!=b._resultId&&(c.id=b._resultId),b.title&&(c.title=b.title),b.children&&(d.role="group",d["aria-label"]=b.text,delete d["aria-selected"]);for(var e in d){var f=d[e];c.setAttribute(e,f)}if(b.children){var g=a(c),h=document.createElement("strong");h.className="select2-results__group";a(h);this.template(b,h);for(var i=[],j=0;j<b.children.length;j++){var k=b.children[j],l=this.option(k);i.push(l)}var m=a("<ul></ul>",{class:"select2-results__options select2-results__options--nested"});m.append(i),g.append(h),g.append(m)}else this.template(b,c);return a.data(c,"data",b),c},c.prototype.bind=function(b,c){var d=this,e=b.id+"-results";this.$results.attr("id",e),b.on("results:all",function(a){d.clear(),d.append(a.data),b.isOpen()&&(d.setClasses(),d.highlightFirstItem())}),b.on("results:append",function(a){d.append(a.data),b.isOpen()&&d.setClasses()}),b.on("query",function(a){d.hideMessages(),d.showLoading(a)}),b.on("select",function(){b.isOpen()&&(d.setClasses(),d.highlightFirstItem())}),b.on("unselect",function(){b.isOpen()&&(d.setClasses(),d.highlightFirstItem())}),b.on("open",function(){d.$results.attr("aria-expanded","true"),d.$results.attr("aria-hidden","false"),d.setClasses(),d.ensureHighlightVisible()}),b.on("close",function(){d.$results.attr("aria-expanded","false"),d.$results.attr("aria-hidden","true"),d.$results.removeAttr("aria-activedescendant")}),b.on("results:toggle",function(){var a=d.getHighlightedResults();0!==a.length&&a.trigger("mouseup")}),b.on("results:select",function(){var a=d.getHighlightedResults();if(0!==a.length){var b=a.data("data");"true"==a.attr("aria-selected")?d.trigger("close",{}):d.trigger("select",{data:b})}}),b.on("results:previous",function(){var a=d.getHighlightedResults(),b=d.$results.find("[aria-selected]"),c=b.index(a);if(0!==c){var e=c-1;0===a.length&&(e=0);var f=b.eq(e);f.trigger("mouseenter");var g=d.$results.offset().top,h=f.offset().top,i=d.$results.scrollTop()+(h-g);0===e?d.$results.scrollTop(0):h-g<0&&d.$results.scrollTop(i)}}),b.on("results:next",function(){var a=d.getHighlightedResults(),b=d.$results.find("[aria-selected]"),c=b.index(a),e=c+1;if(!(e>=b.length)){var f=b.eq(e);f.trigger("mouseenter");var g=d.$results.offset().top+d.$results.outerHeight(!1),h=f.offset().top+f.outerHeight(!1),i=d.$results.scrollTop()+h-g;0===e?d.$results.scrollTop(0):h>g&&d.$results.scrollTop(i)}}),b.on("results:focus",function(a){a.element.addClass("select2-results__option--highlighted")}),b.on("results:message",function(a){d.displayMessage(a)}),a.fn.mousewheel&&this.$results.on("mousewheel",function(a){var b=d.$results.scrollTop(),c=d.$results.get(0).scrollHeight-b+a.deltaY,e=a.deltaY>0&&b-a.deltaY<=0,f=a.deltaY<0&&c<=d.$results.height();e?(d.$results.scrollTop(0),a.preventDefault(),a.stopPropagation()):f&&(d.$results.scrollTop(d.$results.get(0).scrollHeight-d.$results.height()),a.preventDefault(),a.stopPropagation())}),this.$results.on("mouseup",".select2-results__option[aria-selected]",function(b){var c=a(this),e=c.data("data");if("true"===c.attr("aria-selected"))return void(d.options.get("multiple")?d.trigger("unselect",{originalEvent:b,data:e}):d.trigger("close",{}));d.trigger("select",{originalEvent:b,data:e})}),this.$results.on("mouseenter",".select2-results__option[aria-selected]",function(b){var c=a(this).data("data");d.getHighlightedResults().removeClass("select2-results__option--highlighted"),d.trigger("results:focus",{data:c,element:a(this)})})},c.prototype.getHighlightedResults=function(){return this.$results.find(".select2-results__option--highlighted")},c.prototype.destroy=function(){this.$results.remove()},c.prototype.ensureHighlightVisible=function(){var a=this.getHighlightedResults();if(0!==a.length){var b=this.$results.find("[aria-selected]"),c=b.index(a),d=this.$results.offset().top,e=a.offset().top,f=this.$results.scrollTop()+(e-d),g=e-d;f-=2*a.outerHeight(!1),c<=2?this.$results.scrollTop(0):(g>this.$results.outerHeight()||g<0)&&this.$results.scrollTop(f)}},c.prototype.template=function(b,c){var d=this.options.get("templateResult"),e=this.options.get("escapeMarkup"),f=d(b,c);null==f?c.style.display="none":"string"==typeof f?c.innerHTML=e(f):a(c).append(f)},c}),b.define("select2/keys",[],function(){return{BACKSPACE:8,TAB:9,ENTER:13,SHIFT:16,CTRL:17,ALT:18,ESC:27,SPACE:32,PAGE_UP:33,PAGE_DOWN:34,END:35,HOME:36,LEFT:37,UP:38,RIGHT:39,DOWN:40,DELETE:46}}),b.define("select2/selection/base",["jquery","../utils","../keys"],function(a,b,c){function d(a,b){this.$element=a,this.options=b,d.__super__.constructor.call(this)}return b.Extend(d,b.Observable),d.prototype.render=function(){var b=a('<span class="select2-selection" role="combobox" aria-haspopup="true" aria-expanded="false"></span>');return this._tabindex=0,null!=this.$element.data("old-tabindex")?this._tabindex=this.$element.data("old-tabindex"):null!=this.$element.attr("tabindex")&&(this._tabindex=this.$element.attr("tabindex")),b.attr("title",this.$element.attr("title")),b.attr("tabindex",this._tabindex),this.$selection=b,b},d.prototype.bind=function(a,b){var d=this,e=(a.id,a.id+"-results");this.container=a,this.$selection.on("focus",function(a){d.trigger("focus",a)}),this.$selection.on("blur",function(a){d._handleBlur(a)}),this.$selection.on("keydown",function(a){d.trigger("keypress",a),a.which===c.SPACE&&a.preventDefault()}),a.on("results:focus",function(a){d.$selection.attr("aria-activedescendant",a.data._resultId)}),a.on("selection:update",function(a){d.update(a.data)}),a.on("open",function(){d.$selection.attr("aria-expanded","true"),d.$selection.attr("aria-owns",e),d._attachCloseHandler(a)}),a.on("close",function(){d.$selection.attr("aria-expanded","false"),d.$selection.removeAttr("aria-activedescendant"),d.$selection.removeAttr("aria-owns"),d.$selection.focus(),d._detachCloseHandler(a)}),a.on("enable",function(){d.$selection.attr("tabindex",d._tabindex)}),a.on("disable",function(){d.$selection.attr("tabindex","-1")})},d.prototype._handleBlur=function(b){var c=this;window.setTimeout(function(){document.activeElement==c.$selection[0]||a.contains(c.$selection[0],document.activeElement)||c.trigger("blur",b)},1)},d.prototype._attachCloseHandler=function(b){a(document.body).on("mousedown.select2."+b.id,function(b){var c=a(b.target),d=c.closest(".select2");a(".select2.select2-container--open").each(function(){var b=a(this);this!=d[0]&&b.data("element").select2("close")})})},d.prototype._detachCloseHandler=function(b){a(document.body).off("mousedown.select2."+b.id)},d.prototype.position=function(a,b){b.find(".selection").append(a)},d.prototype.destroy=function(){this._detachCloseHandler(this.container)},d.prototype.update=function(a){throw new Error("The `update` method must be defined in child classes.")},d}),b.define("select2/selection/single",["jquery","./base","../utils","../keys"],function(a,b,c,d){function e(){e.__super__.constructor.apply(this,arguments)}return c.Extend(e,b),e.prototype.render=function(){var a=e.__super__.render.call(this);return a.addClass("select2-selection--single"),a.html('<span class="select2-selection__rendered"></span><span class="select2-selection__arrow" role="presentation"><b role="presentation"></b></span>'),a},e.prototype.bind=function(a,b){var c=this;e.__super__.bind.apply(this,arguments);var d=a.id+"-container";this.$selection.find(".select2-selection__rendered").attr("id",d),this.$selection.attr("aria-labelledby",d),this.$selection.on("mousedown",function(a){1===a.which&&c.trigger("toggle",{originalEvent:a})}),this.$selection.on("focus",function(a){}),this.$selection.on("blur",function(a){}),a.on("focus",function(b){a.isOpen()||c.$selection.focus()}),a.on("selection:update",function(a){c.update(a.data)})},e.prototype.clear=function(){this.$selection.find(".select2-selection__rendered").empty()},e.prototype.display=function(a,b){var c=this.options.get("templateSelection");return this.options.get("escapeMarkup")(c(a,b))},e.prototype.selectionContainer=function(){return a("<span></span>")},e.prototype.update=function(a){if(0===a.length)return void this.clear();var b=a[0],c=this.$selection.find(".select2-selection__rendered"),d=this.display(b,c);c.empty().append(d),c.prop("title",b.title||b.text)},e}),b.define("select2/selection/multiple",["jquery","./base","../utils"],function(a,b,c){function d(a,b){d.__super__.constructor.apply(this,arguments)}return c.Extend(d,b),d.prototype.render=function(){var a=d.__super__.render.call(this);return a.addClass("select2-selection--multiple"),a.html('<ul class="select2-selection__rendered"></ul>'),a},d.prototype.bind=function(b,c){var e=this;d.__super__.bind.apply(this,arguments),this.$selection.on("click",function(a){e.trigger("toggle",{originalEvent:a})}),this.$selection.on("click",".select2-selection__choice__remove",function(b){if(!e.options.get("disabled")){var c=a(this),d=c.parent(),f=d.data("data");e.trigger("unselect",{originalEvent:b,data:f})}})},d.prototype.clear=function(){this.$selection.find(".select2-selection__rendered").empty()},d.prototype.display=function(a,b){var c=this.options.get("templateSelection");return this.options.get("escapeMarkup")(c(a,b))},d.prototype.selectionContainer=function(){return a('<li class="select2-selection__choice"><span class="select2-selection__choice__remove" role="presentation">&times;</span></li>')},d.prototype.update=function(a){if(this.clear(),0!==a.length){for(var b=[],d=0;d<a.length;d++){var e=a[d],f=this.selectionContainer(),g=this.display(e,f);f.append(g),f.prop("title",e.title||e.text),f.data("data",e),b.push(f)}var h=this.$selection.find(".select2-selection__rendered");c.appendMany(h,b)}},d}),b.define("select2/selection/placeholder",["../utils"],function(a){function b(a,b,c){this.placeholder=this.normalizePlaceholder(c.get("placeholder")),a.call(this,b,c)}return b.prototype.normalizePlaceholder=function(a,b){return"string"==typeof b&&(b={id:"",text:b}),b},b.prototype.createPlaceholder=function(a,b){var c=this.selectionContainer();return c.html(this.display(b)),c.addClass("select2-selection__placeholder").removeClass("select2-selection__choice"),c},b.prototype.update=function(a,b){var c=1==b.length&&b[0].id!=this.placeholder.id;if(b.length>1||c)return a.call(this,b);this.clear();var d=this.createPlaceholder(this.placeholder);this.$selection.find(".select2-selection__rendered").append(d)},b}),b.define("select2/selection/allowClear",["jquery","../keys"],function(a,b){function c(){}return c.prototype.bind=function(a,b,c){var d=this;a.call(this,b,c),null==this.placeholder&&this.options.get("debug")&&window.console&&console.error&&console.error("Select2: The `allowClear` option should be used in combination with the `placeholder` option."),this.$selection.on("mousedown",".select2-selection__clear",function(a){d._handleClear(a)}),b.on("keypress",function(a){d._handleKeyboardClear(a,b)})},c.prototype._handleClear=function(a,b){if(!this.options.get("disabled")){var c=this.$selection.find(".select2-selection__clear");if(0!==c.length){b.stopPropagation();for(var d=c.data("data"),e=0;e<d.length;e++){var f={data:d[e]};if(this.trigger("unselect",f),f.prevented)return}this.$element.val(this.placeholder.id).trigger("change"),this.trigger("toggle",{})}}},c.prototype._handleKeyboardClear=function(a,c,d){d.isOpen()||c.which!=b.DELETE&&c.which!=b.BACKSPACE||this._handleClear(c)},c.prototype.update=function(b,c){if(b.call(this,c),!(this.$selection.find(".select2-selection__placeholder").length>0||0===c.length)){var d=a('<span class="select2-selection__clear">&times;</span>');d.data("data",c),this.$selection.find(".select2-selection__rendered").prepend(d)}},c}),b.define("select2/selection/search",["jquery","../utils","../keys"],function(a,b,c){function d(a,b,c){a.call(this,b,c)}return d.prototype.render=function(b){var c=a('<li class="select2-search select2-search--inline"><input class="select2-search__field" type="search" tabindex="-1" autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false" role="textbox" aria-autocomplete="list" /></li>');this.$searchContainer=c,this.$search=c.find("input");var d=b.call(this);return this._transferTabIndex(),d},d.prototype.bind=function(a,b,d){var e=this;a.call(this,b,d),b.on("open",function(){e.$search.trigger("focus")}),b.on("close",function(){e.$search.val(""),e.$search.removeAttr("aria-activedescendant"),e.$search.trigger("focus")}),b.on("enable",function(){e.$search.prop("disabled",!1),e._transferTabIndex()}),b.on("disable",function(){e.$search.prop("disabled",!0)}),b.on("focus",function(a){e.$search.trigger("focus")}),b.on("results:focus",function(a){e.$search.attr("aria-activedescendant",a.id)}),this.$selection.on("focusin",".select2-search--inline",function(a){e.trigger("focus",a)}),this.$selection.on("focusout",".select2-search--inline",function(a){e._handleBlur(a)}),this.$selection.on("keydown",".select2-search--inline",function(a){if(a.stopPropagation(),e.trigger("keypress",a),e._keyUpPrevented=a.isDefaultPrevented(),a.which===c.BACKSPACE&&""===e.$search.val()){var b=e.$searchContainer.prev(".select2-selection__choice");if(b.length>0){var d=b.data("data");e.searchRemoveChoice(d),a.preventDefault()}}});var f=document.documentMode,g=f&&f<=11;this.$selection.on("input.searchcheck",".select2-search--inline",function(a){if(g)return void e.$selection.off("input.search input.searchcheck");e.$selection.off("keyup.search")}),this.$selection.on("keyup.search input.search",".select2-search--inline",function(a){if(g&&"input"===a.type)return void e.$selection.off("input.search input.searchcheck");var b=a.which;b!=c.SHIFT&&b!=c.CTRL&&b!=c.ALT&&b!=c.TAB&&e.handleSearch(a)})},d.prototype._transferTabIndex=function(a){this.$search.attr("tabindex",this.$selection.attr("tabindex")),this.$selection.attr("tabindex","-1")},d.prototype.createPlaceholder=function(a,b){this.$search.attr("placeholder",b.text)},d.prototype.update=function(a,b){var c=this.$search[0]==document.activeElement;this.$search.attr("placeholder",""),a.call(this,b),this.$selection.find(".select2-selection__rendered").append(this.$searchContainer),this.resizeSearch(),c&&this.$search.focus()},d.prototype.handleSearch=function(){if(this.resizeSearch(),!this._keyUpPrevented){var a=this.$search.val();this.trigger("query",{term:a})}this._keyUpPrevented=!1},d.prototype.searchRemoveChoice=function(a,b){this.trigger("unselect",{data:b}),this.$search.val(b.text),this.handleSearch()},d.prototype.resizeSearch=function(){this.$search.css("width","25px");var a="";if(""!==this.$search.attr("placeholder"))a=this.$selection.find(".select2-selection__rendered").innerWidth();else{a=.75*(this.$search.val().length+1)+"em"}this.$search.css("width",a)},d}),b.define("select2/selection/eventRelay",["jquery"],function(a){function b(){}return b.prototype.bind=function(b,c,d){var e=this,f=["open","opening","close","closing","select","selecting","unselect","unselecting"],g=["opening","closing","selecting","unselecting"];b.call(this,c,d),c.on("*",function(b,c){if(-1!==a.inArray(b,f)){c=c||{};var d=a.Event("select2:"+b,{params:c});e.$element.trigger(d),-1!==a.inArray(b,g)&&(c.prevented=d.isDefaultPrevented())}})},b}),b.define("select2/translation",["jquery","require"],function(a,b){function c(a){this.dict=a||{}}return c.prototype.all=function(){return this.dict},c.prototype.get=function(a){return this.dict[a]},c.prototype.extend=function(b){this.dict=a.extend({},b.all(),this.dict)},c._cache={},c.loadPath=function(a){if(!(a in c._cache)){var d=b(a);c._cache[a]=d}return new c(c._cache[a])},c}),b.define("select2/diacritics",[],function(){return{"Ⓐ":"A","A":"A","À":"A","Á":"A","Â":"A","Ầ":"A","Ấ":"A","Ẫ":"A","Ẩ":"A","Ã":"A","Ā":"A","Ă":"A","Ằ":"A","Ắ":"A","Ẵ":"A","Ẳ":"A","Ȧ":"A","Ǡ":"A","Ä":"A","Ǟ":"A","Ả":"A","Å":"A","Ǻ":"A","Ǎ":"A","Ȁ":"A","Ȃ":"A","Ạ":"A","Ậ":"A","Ặ":"A","Ḁ":"A","Ą":"A","Ⱥ":"A","Ɐ":"A","Ꜳ":"AA","Æ":"AE","Ǽ":"AE","Ǣ":"AE","Ꜵ":"AO","Ꜷ":"AU","Ꜹ":"AV","Ꜻ":"AV","Ꜽ":"AY","Ⓑ":"B","B":"B","Ḃ":"B","Ḅ":"B","Ḇ":"B","Ƀ":"B","Ƃ":"B","Ɓ":"B","Ⓒ":"C","C":"C","Ć":"C","Ĉ":"C","Ċ":"C","Č":"C","Ç":"C","Ḉ":"C","Ƈ":"C","Ȼ":"C","Ꜿ":"C","Ⓓ":"D","D":"D","Ḋ":"D","Ď":"D","Ḍ":"D","Ḑ":"D","Ḓ":"D","Ḏ":"D","Đ":"D","Ƌ":"D","Ɗ":"D","Ɖ":"D","Ꝺ":"D","DZ":"DZ","DŽ":"DZ","Dz":"Dz","Dž":"Dz","Ⓔ":"E","E":"E","È":"E","É":"E","Ê":"E","Ề":"E","Ế":"E","Ễ":"E","Ể":"E","Ẽ":"E","Ē":"E","Ḕ":"E","Ḗ":"E","Ĕ":"E","Ė":"E","Ë":"E","Ẻ":"E","Ě":"E","Ȅ":"E","Ȇ":"E","Ẹ":"E","Ệ":"E","Ȩ":"E","Ḝ":"E","Ę":"E","Ḙ":"E","Ḛ":"E","Ɛ":"E","Ǝ":"E","Ⓕ":"F","F":"F","Ḟ":"F","Ƒ":"F","Ꝼ":"F","Ⓖ":"G","G":"G","Ǵ":"G","Ĝ":"G","Ḡ":"G","Ğ":"G","Ġ":"G","Ǧ":"G","Ģ":"G","Ǥ":"G","Ɠ":"G","Ꞡ":"G","Ᵹ":"G","Ꝿ":"G","Ⓗ":"H","H":"H","Ĥ":"H","Ḣ":"H","Ḧ":"H","Ȟ":"H","Ḥ":"H","Ḩ":"H","Ḫ":"H","Ħ":"H","Ⱨ":"H","Ⱶ":"H","Ɥ":"H","Ⓘ":"I","I":"I","Ì":"I","Í":"I","Î":"I","Ĩ":"I","Ī":"I","Ĭ":"I","İ":"I","Ï":"I","Ḯ":"I","Ỉ":"I","Ǐ":"I","Ȉ":"I","Ȋ":"I","Ị":"I","Į":"I","Ḭ":"I","Ɨ":"I","Ⓙ":"J","J":"J","Ĵ":"J","Ɉ":"J","Ⓚ":"K","K":"K","Ḱ":"K","Ǩ":"K","Ḳ":"K","Ķ":"K","Ḵ":"K","Ƙ":"K","Ⱪ":"K","Ꝁ":"K","Ꝃ":"K","Ꝅ":"K","Ꞣ":"K","Ⓛ":"L","L":"L","Ŀ":"L","Ĺ":"L","Ľ":"L","Ḷ":"L","Ḹ":"L","Ļ":"L","Ḽ":"L","Ḻ":"L","Ł":"L","Ƚ":"L","Ɫ":"L","Ⱡ":"L","Ꝉ":"L","Ꝇ":"L","Ꞁ":"L","LJ":"LJ","Lj":"Lj","Ⓜ":"M","M":"M","Ḿ":"M","Ṁ":"M","Ṃ":"M","Ɱ":"M","Ɯ":"M","Ⓝ":"N","N":"N","Ǹ":"N","Ń":"N","Ñ":"N","Ṅ":"N","Ň":"N","Ṇ":"N","Ņ":"N","Ṋ":"N","Ṉ":"N","Ƞ":"N","Ɲ":"N","Ꞑ":"N","Ꞥ":"N","NJ":"NJ","Nj":"Nj","Ⓞ":"O","O":"O","Ò":"O","Ó":"O","Ô":"O","Ồ":"O","Ố":"O","Ỗ":"O","Ổ":"O","Õ":"O","Ṍ":"O","Ȭ":"O","Ṏ":"O","Ō":"O","Ṑ":"O","Ṓ":"O","Ŏ":"O","Ȯ":"O","Ȱ":"O","Ö":"O","Ȫ":"O","Ỏ":"O","Ő":"O","Ǒ":"O","Ȍ":"O","Ȏ":"O","Ơ":"O","Ờ":"O","Ớ":"O","Ỡ":"O","Ở":"O","Ợ":"O","Ọ":"O","Ộ":"O","Ǫ":"O","Ǭ":"O","Ø":"O","Ǿ":"O","Ɔ":"O","Ɵ":"O","Ꝋ":"O","Ꝍ":"O","Ƣ":"OI","Ꝏ":"OO","Ȣ":"OU","Ⓟ":"P","P":"P","Ṕ":"P","Ṗ":"P","Ƥ":"P","Ᵽ":"P","Ꝑ":"P","Ꝓ":"P","Ꝕ":"P","Ⓠ":"Q","Q":"Q","Ꝗ":"Q","Ꝙ":"Q","Ɋ":"Q","Ⓡ":"R","R":"R","Ŕ":"R","Ṙ":"R","Ř":"R","Ȑ":"R","Ȓ":"R","Ṛ":"R","Ṝ":"R","Ŗ":"R","Ṟ":"R","Ɍ":"R","Ɽ":"R","Ꝛ":"R","Ꞧ":"R","Ꞃ":"R","Ⓢ":"S","S":"S","ẞ":"S","Ś":"S","Ṥ":"S","Ŝ":"S","Ṡ":"S","Š":"S","Ṧ":"S","Ṣ":"S","Ṩ":"S","Ș":"S","Ş":"S","Ȿ":"S","Ꞩ":"S","Ꞅ":"S","Ⓣ":"T","T":"T","Ṫ":"T","Ť":"T","Ṭ":"T","Ț":"T","Ţ":"T","Ṱ":"T","Ṯ":"T","Ŧ":"T","Ƭ":"T","Ʈ":"T","Ⱦ":"T","Ꞇ":"T","Ꜩ":"TZ","Ⓤ":"U","U":"U","Ù":"U","Ú":"U","Û":"U","Ũ":"U","Ṹ":"U","Ū":"U","Ṻ":"U","Ŭ":"U","Ü":"U","Ǜ":"U","Ǘ":"U","Ǖ":"U","Ǚ":"U","Ủ":"U","Ů":"U","Ű":"U","Ǔ":"U","Ȕ":"U","Ȗ":"U","Ư":"U","Ừ":"U","Ứ":"U","Ữ":"U","Ử":"U","Ự":"U","Ụ":"U","Ṳ":"U","Ų":"U","Ṷ":"U","Ṵ":"U","Ʉ":"U","Ⓥ":"V","V":"V","Ṽ":"V","Ṿ":"V","Ʋ":"V","Ꝟ":"V","Ʌ":"V","Ꝡ":"VY","Ⓦ":"W","W":"W","Ẁ":"W","Ẃ":"W","Ŵ":"W","Ẇ":"W","Ẅ":"W","Ẉ":"W","Ⱳ":"W","Ⓧ":"X","X":"X","Ẋ":"X","Ẍ":"X","Ⓨ":"Y","Y":"Y","Ỳ":"Y","Ý":"Y","Ŷ":"Y","Ỹ":"Y","Ȳ":"Y","Ẏ":"Y","Ÿ":"Y","Ỷ":"Y","Ỵ":"Y","Ƴ":"Y","Ɏ":"Y","Ỿ":"Y","Ⓩ":"Z","Z":"Z","Ź":"Z","Ẑ":"Z","Ż":"Z","Ž":"Z","Ẓ":"Z","Ẕ":"Z","Ƶ":"Z","Ȥ":"Z","Ɀ":"Z","Ⱬ":"Z","Ꝣ":"Z","ⓐ":"a","a":"a","ẚ":"a","à":"a","á":"a","â":"a","ầ":"a","ấ":"a","ẫ":"a","ẩ":"a","ã":"a","ā":"a","ă":"a","ằ":"a","ắ":"a","ẵ":"a","ẳ":"a","ȧ":"a","ǡ":"a","ä":"a","ǟ":"a","ả":"a","å":"a","ǻ":"a","ǎ":"a","ȁ":"a","ȃ":"a","ạ":"a","ậ":"a","ặ":"a","ḁ":"a","ą":"a","ⱥ":"a","ɐ":"a","ꜳ":"aa","æ":"ae","ǽ":"ae","ǣ":"ae","ꜵ":"ao","ꜷ":"au","ꜹ":"av","ꜻ":"av","ꜽ":"ay","ⓑ":"b","b":"b","ḃ":"b","ḅ":"b","ḇ":"b","ƀ":"b","ƃ":"b","ɓ":"b","ⓒ":"c","c":"c","ć":"c","ĉ":"c","ċ":"c","č":"c","ç":"c","ḉ":"c","ƈ":"c","ȼ":"c","ꜿ":"c","ↄ":"c","ⓓ":"d","d":"d","ḋ":"d","ď":"d","ḍ":"d","ḑ":"d","ḓ":"d","ḏ":"d","đ":"d","ƌ":"d","ɖ":"d","ɗ":"d","ꝺ":"d","dz":"dz","dž":"dz","ⓔ":"e","e":"e","è":"e","é":"e","ê":"e","ề":"e","ế":"e","ễ":"e","ể":"e","ẽ":"e","ē":"e","ḕ":"e","ḗ":"e","ĕ":"e","ė":"e","ë":"e","ẻ":"e","ě":"e","ȅ":"e","ȇ":"e","ẹ":"e","ệ":"e","ȩ":"e","ḝ":"e","ę":"e","ḙ":"e","ḛ":"e","ɇ":"e","ɛ":"e","ǝ":"e","ⓕ":"f","f":"f","ḟ":"f","ƒ":"f","ꝼ":"f","ⓖ":"g","g":"g","ǵ":"g","ĝ":"g","ḡ":"g","ğ":"g","ġ":"g","ǧ":"g","ģ":"g","ǥ":"g","ɠ":"g","ꞡ":"g","ᵹ":"g","ꝿ":"g","ⓗ":"h","h":"h","ĥ":"h","ḣ":"h","ḧ":"h","ȟ":"h","ḥ":"h","ḩ":"h","ḫ":"h","ẖ":"h","ħ":"h","ⱨ":"h","ⱶ":"h","ɥ":"h","ƕ":"hv","ⓘ":"i","i":"i","ì":"i","í":"i","î":"i","ĩ":"i","ī":"i","ĭ":"i","ï":"i","ḯ":"i","ỉ":"i","ǐ":"i","ȉ":"i","ȋ":"i","ị":"i","į":"i","ḭ":"i","ɨ":"i","ı":"i","ⓙ":"j","j":"j","ĵ":"j","ǰ":"j","ɉ":"j","ⓚ":"k","k":"k","ḱ":"k","ǩ":"k","ḳ":"k","ķ":"k","ḵ":"k","ƙ":"k","ⱪ":"k","ꝁ":"k","ꝃ":"k","ꝅ":"k","ꞣ":"k","ⓛ":"l","l":"l","ŀ":"l","ĺ":"l","ľ":"l","ḷ":"l","ḹ":"l","ļ":"l","ḽ":"l","ḻ":"l","ſ":"l","ł":"l","ƚ":"l","ɫ":"l","ⱡ":"l","ꝉ":"l","ꞁ":"l","ꝇ":"l","lj":"lj","ⓜ":"m","m":"m","ḿ":"m","ṁ":"m","ṃ":"m","ɱ":"m","ɯ":"m","ⓝ":"n","n":"n","ǹ":"n","ń":"n","ñ":"n","ṅ":"n","ň":"n","ṇ":"n","ņ":"n","ṋ":"n","ṉ":"n","ƞ":"n","ɲ":"n","ʼn":"n","ꞑ":"n","ꞥ":"n","nj":"nj","ⓞ":"o","o":"o","ò":"o","ó":"o","ô":"o","ồ":"o","ố":"o","ỗ":"o","ổ":"o","õ":"o","ṍ":"o","ȭ":"o","ṏ":"o","ō":"o","ṑ":"o","ṓ":"o","ŏ":"o","ȯ":"o","ȱ":"o","ö":"o","ȫ":"o","ỏ":"o","ő":"o","ǒ":"o","ȍ":"o","ȏ":"o","ơ":"o","ờ":"o","ớ":"o","ỡ":"o","ở":"o","ợ":"o","ọ":"o","ộ":"o","ǫ":"o","ǭ":"o","ø":"o","ǿ":"o","ɔ":"o","ꝋ":"o","ꝍ":"o","ɵ":"o","ƣ":"oi","ȣ":"ou","ꝏ":"oo","ⓟ":"p","p":"p","ṕ":"p","ṗ":"p","ƥ":"p","ᵽ":"p","ꝑ":"p","ꝓ":"p","ꝕ":"p","ⓠ":"q","q":"q","ɋ":"q","ꝗ":"q","ꝙ":"q","ⓡ":"r","r":"r","ŕ":"r","ṙ":"r","ř":"r","ȑ":"r","ȓ":"r","ṛ":"r","ṝ":"r","ŗ":"r","ṟ":"r","ɍ":"r","ɽ":"r","ꝛ":"r","ꞧ":"r","ꞃ":"r","ⓢ":"s","s":"s","ß":"s","ś":"s","ṥ":"s","ŝ":"s","ṡ":"s","š":"s","ṧ":"s","ṣ":"s","ṩ":"s","ș":"s","ş":"s","ȿ":"s","ꞩ":"s","ꞅ":"s","ẛ":"s","ⓣ":"t","t":"t","ṫ":"t","ẗ":"t","ť":"t","ṭ":"t","ț":"t","ţ":"t","ṱ":"t","ṯ":"t","ŧ":"t","ƭ":"t","ʈ":"t","ⱦ":"t","ꞇ":"t","ꜩ":"tz","ⓤ":"u","u":"u","ù":"u","ú":"u","û":"u","ũ":"u","ṹ":"u","ū":"u","ṻ":"u","ŭ":"u","ü":"u","ǜ":"u","ǘ":"u","ǖ":"u","ǚ":"u","ủ":"u","ů":"u","ű":"u","ǔ":"u","ȕ":"u","ȗ":"u","ư":"u","ừ":"u","ứ":"u","ữ":"u","ử":"u","ự":"u","ụ":"u","ṳ":"u","ų":"u","ṷ":"u","ṵ":"u","ʉ":"u","ⓥ":"v","v":"v","ṽ":"v","ṿ":"v","ʋ":"v","ꝟ":"v","ʌ":"v","ꝡ":"vy","ⓦ":"w","w":"w","ẁ":"w","ẃ":"w","ŵ":"w","ẇ":"w","ẅ":"w","ẘ":"w","ẉ":"w","ⱳ":"w","ⓧ":"x","x":"x","ẋ":"x","ẍ":"x","ⓨ":"y","y":"y","ỳ":"y","ý":"y","ŷ":"y","ỹ":"y","ȳ":"y","ẏ":"y","ÿ":"y","ỷ":"y","ẙ":"y","ỵ":"y","ƴ":"y","ɏ":"y","ỿ":"y","ⓩ":"z","z":"z","ź":"z","ẑ":"z","ż":"z","ž":"z","ẓ":"z","ẕ":"z","ƶ":"z","ȥ":"z","ɀ":"z","ⱬ":"z","ꝣ":"z","Ά":"Α","Έ":"Ε","Ή":"Η","Ί":"Ι","Ϊ":"Ι","Ό":"Ο","Ύ":"Υ","Ϋ":"Υ","Ώ":"Ω","ά":"α","έ":"ε","ή":"η","ί":"ι","ϊ":"ι","ΐ":"ι","ό":"ο","ύ":"υ","ϋ":"υ","ΰ":"υ","ω":"ω","ς":"σ"}}),b.define("select2/data/base",["../utils"],function(a){function b(a,c){b.__super__.constructor.call(this)}return a.Extend(b,a.Observable),b.prototype.current=function(a){throw new Error("The `current` method must be defined in child classes.")},b.prototype.query=function(a,b){throw new Error("The `query` method must be defined in child classes.")},b.prototype.bind=function(a,b){},b.prototype.destroy=function(){},b.prototype.generateResultId=function(b,c){var d=b.id+"-result-";return d+=a.generateChars(4),null!=c.id?d+="-"+c.id.toString():d+="-"+a.generateChars(4),d},b}),b.define("select2/data/select",["./base","../utils","jquery"],function(a,b,c){function d(a,b){this.$element=a,this.options=b,d.__super__.constructor.call(this)}return b.Extend(d,a),d.prototype.current=function(a){var b=[],d=this;this.$element.find(":selected").each(function(){var a=c(this),e=d.item(a);b.push(e)}),a(b)},d.prototype.select=function(a){var b=this;if(a.selected=!0,c(a.element).is("option"))return a.element.selected=!0,void this.$element.trigger("change");if(this.$element.prop("multiple"))this.current(function(d){var e=[];a=[a],a.push.apply(a,d);for(var f=0;f<a.length;f++){var g=a[f].id;-1===c.inArray(g,e)&&e.push(g)}b.$element.val(e),b.$element.trigger("change")});else{var d=a.id;this.$element.val(d),this.$element.trigger("change")}},d.prototype.unselect=function(a){var b=this;if(this.$element.prop("multiple")){if(a.selected=!1,c(a.element).is("option"))return a.element.selected=!1,void this.$element.trigger("change");this.current(function(d){for(var e=[],f=0;f<d.length;f++){var g=d[f].id;g!==a.id&&-1===c.inArray(g,e)&&e.push(g)}b.$element.val(e),b.$element.trigger("change")})}},d.prototype.bind=function(a,b){var c=this;this.container=a,a.on("select",function(a){c.select(a.data)}),a.on("unselect",function(a){c.unselect(a.data)})},d.prototype.destroy=function(){this.$element.find("*").each(function(){c.removeData(this,"data")})},d.prototype.query=function(a,b){var d=[],e=this;this.$element.children().each(function(){var b=c(this);if(b.is("option")||b.is("optgroup")){var f=e.item(b),g=e.matches(a,f);null!==g&&d.push(g)}}),b({results:d})},d.prototype.addOptions=function(a){b.appendMany(this.$element,a)},d.prototype.option=function(a){var b;a.children?(b=document.createElement("optgroup"),b.label=a.text):(b=document.createElement("option"),void 0!==b.textContent?b.textContent=a.text:b.innerText=a.text),void 0!==a.id&&(b.value=a.id),a.disabled&&(b.disabled=!0),a.selected&&(b.selected=!0),a.title&&(b.title=a.title);var d=c(b),e=this._normalizeItem(a);return e.element=b,c.data(b,"data",e),d},d.prototype.item=function(a){var b={};if(null!=(b=c.data(a[0],"data")))return b;if(a.is("option"))b={id:a.val(),text:a.text(),disabled:a.prop("disabled"),selected:a.prop("selected"),title:a.prop("title")};else if(a.is("optgroup")){b={text:a.prop("label"),children:[],title:a.prop("title")};for(var d=a.children("option"),e=[],f=0;f<d.length;f++){var g=c(d[f]),h=this.item(g);e.push(h)}b.children=e}return b=this._normalizeItem(b),b.element=a[0],c.data(a[0],"data",b),b},d.prototype._normalizeItem=function(a){c.isPlainObject(a)||(a={id:a,text:a}),a=c.extend({},{text:""},a);var b={selected:!1,disabled:!1};return null!=a.id&&(a.id=a.id.toString()),null!=a.text&&(a.text=a.text.toString()),null==a._resultId&&a.id&&null!=this.container&&(a._resultId=this.generateResultId(this.container,a)),c.extend({},b,a)},d.prototype.matches=function(a,b){return this.options.get("matcher")(a,b)},d}),b.define("select2/data/array",["./select","../utils","jquery"],function(a,b,c){function d(a,b){var c=b.get("data")||[];d.__super__.constructor.call(this,a,b),this.addOptions(this.convertToOptions(c))}return b.Extend(d,a),d.prototype.select=function(a){var b=this.$element.find("option").filter(function(b,c){return c.value==a.id.toString()});0===b.length&&(b=this.option(a),this.addOptions(b)),d.__super__.select.call(this,a)},d.prototype.convertToOptions=function(a){function d(a){return function(){return c(this).val()==a.id}}for(var e=this,f=this.$element.find("option"),g=f.map(function(){return e.item(c(this)).id}).get(),h=[],i=0;i<a.length;i++){var j=this._normalizeItem(a[i]);if(c.inArray(j.id,g)>=0){var k=f.filter(d(j)),l=this.item(k),m=c.extend(!0,{},j,l),n=this.option(m);k.replaceWith(n)}else{var o=this.option(j);if(j.children){var p=this.convertToOptions(j.children);b.appendMany(o,p)}h.push(o)}}return h},d}),b.define("select2/data/ajax",["./array","../utils","jquery"],function(a,b,c){function d(a,b){this.ajaxOptions=this._applyDefaults(b.get("ajax")),null!=this.ajaxOptions.processResults&&(this.processResults=this.ajaxOptions.processResults),d.__super__.constructor.call(this,a,b)}return b.Extend(d,a),d.prototype._applyDefaults=function(a){var b={data:function(a){return c.extend({},a,{q:a.term})},transport:function(a,b,d){var e=c.ajax(a);return e.then(b),e.fail(d),e}};return c.extend({},b,a,!0)},d.prototype.processResults=function(a){return a},d.prototype.query=function(a,b){function d(){var d=f.transport(f,function(d){var f=e.processResults(d,a);e.options.get("debug")&&window.console&&console.error&&(f&&f.results&&c.isArray(f.results)||console.error("Select2: The AJAX results did not return an array in the `results` key of the response.")),b(f)},function(){d.status&&"0"===d.status||e.trigger("results:message",{message:"errorLoading"})});e._request=d}var e=this;null!=this._request&&(c.isFunction(this._request.abort)&&this._request.abort(),this._request=null);var f=c.extend({type:"GET"},this.ajaxOptions);"function"==typeof f.url&&(f.url=f.url.call(this.$element,a)),"function"==typeof f.data&&(f.data=f.data.call(this.$element,a)),this.ajaxOptions.delay&&null!=a.term?(this._queryTimeout&&window.clearTimeout(this._queryTimeout),this._queryTimeout=window.setTimeout(d,this.ajaxOptions.delay)):d()},d}),b.define("select2/data/tags",["jquery"],function(a){function b(b,c,d){var e=d.get("tags"),f=d.get("createTag");void 0!==f&&(this.createTag=f);var g=d.get("insertTag");if(void 0!==g&&(this.insertTag=g),b.call(this,c,d),a.isArray(e))for(var h=0;h<e.length;h++){var i=e[h],j=this._normalizeItem(i),k=this.option(j);this.$element.append(k)}}return b.prototype.query=function(a,b,c){function d(a,f){for(var g=a.results,h=0;h<g.length;h++){var i=g[h],j=null!=i.children&&!d({results:i.children},!0);if((i.text||"").toUpperCase()===(b.term||"").toUpperCase()||j)return!f&&(a.data=g,void c(a))}if(f)return!0;var k=e.createTag(b);if(null!=k){var l=e.option(k);l.attr("data-select2-tag",!0),e.addOptions([l]),e.insertTag(g,k)}a.results=g,c(a)}var e=this;if(this._removeOldTags(),null==b.term||null!=b.page)return void a.call(this,b,c);a.call(this,b,d)},b.prototype.createTag=function(b,c){var d=a.trim(c.term);return""===d?null:{id:d,text:d}},b.prototype.insertTag=function(a,b,c){b.unshift(c)},b.prototype._removeOldTags=function(b){this._lastTag;this.$element.find("option[data-select2-tag]").each(function(){this.selected||a(this).remove()})},b}),b.define("select2/data/tokenizer",["jquery"],function(a){function b(a,b,c){var d=c.get("tokenizer");void 0!==d&&(this.tokenizer=d),a.call(this,b,c)}return b.prototype.bind=function(a,b,c){a.call(this,b,c),this.$search=b.dropdown.$search||b.selection.$search||c.find(".select2-search__field")},b.prototype.query=function(b,c,d){function e(b){var c=g._normalizeItem(b);if(!g.$element.find("option").filter(function(){return a(this).val()===c.id}).length){var d=g.option(c);d.attr("data-select2-tag",!0),g._removeOldTags(),g.addOptions([d])}f(c)}function f(a){g.trigger("select",{data:a})}var g=this;c.term=c.term||"";var h=this.tokenizer(c,this.options,e);h.term!==c.term&&(this.$search.length&&(this.$search.val(h.term),this.$search.focus()),c.term=h.term),b.call(this,c,d)},b.prototype.tokenizer=function(b,c,d,e){for(var f=d.get("tokenSeparators")||[],g=c.term,h=0,i=this.createTag||function(a){return{id:a.term,text:a.term}};h<g.length;){var j=g[h];if(-1!==a.inArray(j,f)){var k=g.substr(0,h),l=a.extend({},c,{term:k}),m=i(l);null!=m?(e(m),g=g.substr(h+1)||"",h=0):h++}else h++}return{term:g}},b}),b.define("select2/data/minimumInputLength",[],function(){function a(a,b,c){this.minimumInputLength=c.get("minimumInputLength"),a.call(this,b,c)}return a.prototype.query=function(a,b,c){if(b.term=b.term||"",b.term.length<this.minimumInputLength)return void this.trigger("results:message",{message:"inputTooShort",args:{minimum:this.minimumInputLength,input:b.term,params:b}});a.call(this,b,c)},a}),b.define("select2/data/maximumInputLength",[],function(){function a(a,b,c){this.maximumInputLength=c.get("maximumInputLength"),a.call(this,b,c)}return a.prototype.query=function(a,b,c){if(b.term=b.term||"",this.maximumInputLength>0&&b.term.length>this.maximumInputLength)return void this.trigger("results:message",{message:"inputTooLong",args:{maximum:this.maximumInputLength,input:b.term,params:b}});a.call(this,b,c)},a}),b.define("select2/data/maximumSelectionLength",[],function(){function a(a,b,c){this.maximumSelectionLength=c.get("maximumSelectionLength"),a.call(this,b,c)}return a.prototype.query=function(a,b,c){var d=this;this.current(function(e){var f=null!=e?e.length:0;if(d.maximumSelectionLength>0&&f>=d.maximumSelectionLength)return void d.trigger("results:message",{message:"maximumSelected",args:{maximum:d.maximumSelectionLength}});a.call(d,b,c)})},a}),b.define("select2/dropdown",["jquery","./utils"],function(a,b){function c(a,b){this.$element=a,this.options=b,c.__super__.constructor.call(this)}return b.Extend(c,b.Observable),c.prototype.render=function(){var b=a('<span class="select2-dropdown"><span class="select2-results"></span></span>');return b.attr("dir",this.options.get("dir")),this.$dropdown=b,b},c.prototype.bind=function(){},c.prototype.position=function(a,b){},c.prototype.destroy=function(){this.$dropdown.remove()},c}),b.define("select2/dropdown/search",["jquery","../utils"],function(a,b){function c(){}return c.prototype.render=function(b){var c=b.call(this),d=a('<span class="select2-search select2-search--dropdown"><input class="select2-search__field" type="search" tabindex="-1" autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false" role="textbox" /></span>');return this.$searchContainer=d,this.$search=d.find("input"),c.prepend(d),c},c.prototype.bind=function(b,c,d){var e=this;b.call(this,c,d),this.$search.on("keydown",function(a){e.trigger("keypress",a),e._keyUpPrevented=a.isDefaultPrevented()}),this.$search.on("input",function(b){a(this).off("keyup")}),this.$search.on("keyup input",function(a){e.handleSearch(a)}),c.on("open",function(){e.$search.attr("tabindex",0),e.$search.focus(),window.setTimeout(function(){e.$search.focus()},0)}),c.on("close",function(){e.$search.attr("tabindex",-1),e.$search.val("")}),c.on("focus",function(){c.isOpen()||e.$search.focus()}),c.on("results:all",function(a){if(null==a.query.term||""===a.query.term){e.showSearch(a)?e.$searchContainer.removeClass("select2-search--hide"):e.$searchContainer.addClass("select2-search--hide")}})},c.prototype.handleSearch=function(a){if(!this._keyUpPrevented){var b=this.$search.val();this.trigger("query",{term:b})}this._keyUpPrevented=!1},c.prototype.showSearch=function(a,b){return!0},c}),b.define("select2/dropdown/hidePlaceholder",[],function(){function a(a,b,c,d){this.placeholder=this.normalizePlaceholder(c.get("placeholder")),a.call(this,b,c,d)}return a.prototype.append=function(a,b){b.results=this.removePlaceholder(b.results),a.call(this,b)},a.prototype.normalizePlaceholder=function(a,b){return"string"==typeof b&&(b={id:"",text:b}),b},a.prototype.removePlaceholder=function(a,b){for(var c=b.slice(0),d=b.length-1;d>=0;d--){var e=b[d];this.placeholder.id===e.id&&c.splice(d,1)}return c},a}),b.define("select2/dropdown/infiniteScroll",["jquery"],function(a){function b(a,b,c,d){this.lastParams={},a.call(this,b,c,d),this.$loadingMore=this.createLoadingMore(),this.loading=!1}return b.prototype.append=function(a,b){this.$loadingMore.remove(),this.loading=!1,a.call(this,b),this.showLoadingMore(b)&&this.$results.append(this.$loadingMore)},b.prototype.bind=function(b,c,d){var e=this;b.call(this,c,d),c.on("query",function(a){e.lastParams=a,e.loading=!0}),c.on("query:append",function(a){e.lastParams=a,e.loading=!0}),this.$results.on("scroll",function(){var b=a.contains(document.documentElement,e.$loadingMore[0]);if(!e.loading&&b){e.$results.offset().top+e.$results.outerHeight(!1)+50>=e.$loadingMore.offset().top+e.$loadingMore.outerHeight(!1)&&e.loadMore()}})},b.prototype.loadMore=function(){this.loading=!0;var b=a.extend({},{page:1},this.lastParams);b.page++,this.trigger("query:append",b)},b.prototype.showLoadingMore=function(a,b){return b.pagination&&b.pagination.more},b.prototype.createLoadingMore=function(){var b=a('<li class="select2-results__option select2-results__option--load-more"role="treeitem" aria-disabled="true"></li>'),c=this.options.get("translations").get("loadingMore");return b.html(c(this.lastParams)),b},b}),b.define("select2/dropdown/attachBody",["jquery","../utils"],function(a,b){function c(b,c,d){this.$dropdownParent=d.get("dropdownParent")||a(document.body),b.call(this,c,d)}return c.prototype.bind=function(a,b,c){var d=this,e=!1;a.call(this,b,c),b.on("open",function(){d._showDropdown(),d._attachPositioningHandler(b),e||(e=!0,b.on("results:all",function(){d._positionDropdown(),d._resizeDropdown()}),b.on("results:append",function(){d._positionDropdown(),d._resizeDropdown()}))}),b.on("close",function(){d._hideDropdown(),d._detachPositioningHandler(b)}),this.$dropdownContainer.on("mousedown",function(a){a.stopPropagation()})},c.prototype.destroy=function(a){a.call(this),this.$dropdownContainer.remove()},c.prototype.position=function(a,b,c){b.attr("class",c.attr("class")),b.removeClass("select2"),b.addClass("select2-container--open"),b.css({position:"absolute",top:-999999}),this.$container=c},c.prototype.render=function(b){var c=a("<span></span>"),d=b.call(this);return c.append(d),this.$dropdownContainer=c,c},c.prototype._hideDropdown=function(a){this.$dropdownContainer.detach()},c.prototype._attachPositioningHandler=function(c,d){var e=this,f="scroll.select2."+d.id,g="resize.select2."+d.id,h="orientationchange.select2."+d.id,i=this.$container.parents().filter(b.hasScroll);i.each(function(){a(this).data("select2-scroll-position",{x:a(this).scrollLeft(),y:a(this).scrollTop()})}),i.on(f,function(b){var c=a(this).data("select2-scroll-position");a(this).scrollTop(c.y)}),a(window).on(f+" "+g+" "+h,function(a){e._positionDropdown(),e._resizeDropdown()})},c.prototype._detachPositioningHandler=function(c,d){var e="scroll.select2."+d.id,f="resize.select2."+d.id,g="orientationchange.select2."+d.id;this.$container.parents().filter(b.hasScroll).off(e),a(window).off(e+" "+f+" "+g)},c.prototype._positionDropdown=function(){var b=a(window),c=this.$dropdown.hasClass("select2-dropdown--above"),d=this.$dropdown.hasClass("select2-dropdown--below"),e=null,f=this.$container.offset();f.bottom=f.top+this.$container.outerHeight(!1);var g={height:this.$container.outerHeight(!1)};g.top=f.top,g.bottom=f.top+g.height;var h={height:this.$dropdown.outerHeight(!1)},i={top:b.scrollTop(),bottom:b.scrollTop()+b.height()},j=i.top<f.top-h.height,k=i.bottom>f.bottom+h.height,l={left:f.left,top:g.bottom},m=this.$dropdownParent;"static"===m.css("position")&&(m=m.offsetParent());var n=m.offset();l.top-=n.top,l.left-=n.left,c||d||(e="below"),k||!j||c?!j&&k&&c&&(e="below"):e="above",("above"==e||c&&"below"!==e)&&(l.top=g.top-n.top-h.height),null!=e&&(this.$dropdown.removeClass("select2-dropdown--below select2-dropdown--above").addClass("select2-dropdown--"+e),this.$container.removeClass("select2-container--below select2-container--above").addClass("select2-container--"+e)),this.$dropdownContainer.css(l)},c.prototype._resizeDropdown=function(){var a={width:this.$container.outerWidth(!1)+"px"};this.options.get("dropdownAutoWidth")&&(a.minWidth=a.width,a.position="relative",a.width="auto"),this.$dropdown.css(a)},c.prototype._showDropdown=function(a){this.$dropdownContainer.appendTo(this.$dropdownParent),this._positionDropdown(),this._resizeDropdown()},c}),b.define("select2/dropdown/minimumResultsForSearch",[],function(){function a(b){for(var c=0,d=0;d<b.length;d++){var e=b[d];e.children?c+=a(e.children):c++}return c}function b(a,b,c,d){this.minimumResultsForSearch=c.get("minimumResultsForSearch"),this.minimumResultsForSearch<0&&(this.minimumResultsForSearch=1/0),a.call(this,b,c,d)}return b.prototype.showSearch=function(b,c){return!(a(c.data.results)<this.minimumResultsForSearch)&&b.call(this,c)},b}),b.define("select2/dropdown/selectOnClose",[],function(){function a(){}return a.prototype.bind=function(a,b,c){var d=this;a.call(this,b,c),b.on("close",function(a){d._handleSelectOnClose(a)})},a.prototype._handleSelectOnClose=function(a,b){if(b&&null!=b.originalSelect2Event){var c=b.originalSelect2Event;if("select"===c._type||"unselect"===c._type)return}var d=this.getHighlightedResults();if(!(d.length<1)){var e=d.data("data");null!=e.element&&e.element.selected||null==e.element&&e.selected||this.trigger("select",{data:e})}},a}),b.define("select2/dropdown/closeOnSelect",[],function(){function a(){}return a.prototype.bind=function(a,b,c){var d=this;a.call(this,b,c),b.on("select",function(a){d._selectTriggered(a)}),b.on("unselect",function(a){d._selectTriggered(a)})},a.prototype._selectTriggered=function(a,b){var c=b.originalEvent;c&&c.ctrlKey||this.trigger("close",{originalEvent:c,originalSelect2Event:b})},a}),b.define("select2/i18n/en",[],function(){return{errorLoading:function(){return"The results could not be loaded."},inputTooLong:function(a){var b=a.input.length-a.maximum,c="Please delete "+b+" character";return 1!=b&&(c+="s"),c},inputTooShort:function(a){return"Please enter "+(a.minimum-a.input.length)+" or more characters"},loadingMore:function(){return"Loading more results…"},maximumSelected:function(a){var b="You can only select "+a.maximum+" item";return 1!=a.maximum&&(b+="s"),b},noResults:function(){return"No results found"},searching:function(){return"Searching…"}}}),b.define("select2/defaults",["jquery","require","./results","./selection/single","./selection/multiple","./selection/placeholder","./selection/allowClear","./selection/search","./selection/eventRelay","./utils","./translation","./diacritics","./data/select","./data/array","./data/ajax","./data/tags","./data/tokenizer","./data/minimumInputLength","./data/maximumInputLength","./data/maximumSelectionLength","./dropdown","./dropdown/search","./dropdown/hidePlaceholder","./dropdown/infiniteScroll","./dropdown/attachBody","./dropdown/minimumResultsForSearch","./dropdown/selectOnClose","./dropdown/closeOnSelect","./i18n/en"],function(a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,A,B,C){function D(){this.reset()}return D.prototype.apply=function(l){if(l=a.extend(!0,{},this.defaults,l),null==l.dataAdapter){if(null!=l.ajax?l.dataAdapter=o:null!=l.data?l.dataAdapter=n:l.dataAdapter=m,l.minimumInputLength>0&&(l.dataAdapter=j.Decorate(l.dataAdapter,r)),l.maximumInputLength>0&&(l.dataAdapter=j.Decorate(l.dataAdapter,s)),l.maximumSelectionLength>0&&(l.dataAdapter=j.Decorate(l.dataAdapter,t)),l.tags&&(l.dataAdapter=j.Decorate(l.dataAdapter,p)),null==l.tokenSeparators&&null==l.tokenizer||(l.dataAdapter=j.Decorate(l.dataAdapter,q)),null!=l.query){var C=b(l.amdBase+"compat/query");l.dataAdapter=j.Decorate(l.dataAdapter,C)}if(null!=l.initSelection){var D=b(l.amdBase+"compat/initSelection");l.dataAdapter=j.Decorate(l.dataAdapter,D)}}if(null==l.resultsAdapter&&(l.resultsAdapter=c,null!=l.ajax&&(l.resultsAdapter=j.Decorate(l.resultsAdapter,x)),null!=l.placeholder&&(l.resultsAdapter=j.Decorate(l.resultsAdapter,w)),l.selectOnClose&&(l.resultsAdapter=j.Decorate(l.resultsAdapter,A))),null==l.dropdownAdapter){if(l.multiple)l.dropdownAdapter=u;else{var E=j.Decorate(u,v);l.dropdownAdapter=E}if(0!==l.minimumResultsForSearch&&(l.dropdownAdapter=j.Decorate(l.dropdownAdapter,z)),l.closeOnSelect&&(l.dropdownAdapter=j.Decorate(l.dropdownAdapter,B)),null!=l.dropdownCssClass||null!=l.dropdownCss||null!=l.adaptDropdownCssClass){var F=b(l.amdBase+"compat/dropdownCss");l.dropdownAdapter=j.Decorate(l.dropdownAdapter,F)}l.dropdownAdapter=j.Decorate(l.dropdownAdapter,y)}if(null==l.selectionAdapter){if(l.multiple?l.selectionAdapter=e:l.selectionAdapter=d,null!=l.placeholder&&(l.selectionAdapter=j.Decorate(l.selectionAdapter,f)),l.allowClear&&(l.selectionAdapter=j.Decorate(l.selectionAdapter,g)),l.multiple&&(l.selectionAdapter=j.Decorate(l.selectionAdapter,h)),null!=l.containerCssClass||null!=l.containerCss||null!=l.adaptContainerCssClass){var G=b(l.amdBase+"compat/containerCss");l.selectionAdapter=j.Decorate(l.selectionAdapter,G)}l.selectionAdapter=j.Decorate(l.selectionAdapter,i)}if("string"==typeof l.language)if(l.language.indexOf("-")>0){var H=l.language.split("-"),I=H[0];l.language=[l.language,I]}else l.language=[l.language];if(a.isArray(l.language)){var J=new k;l.language.push("en");for(var K=l.language,L=0;L<K.length;L++){var M=K[L],N={};try{N=k.loadPath(M)}catch(a){try{M=this.defaults.amdLanguageBase+M,N=k.loadPath(M)}catch(a){l.debug&&window.console&&console.warn&&console.warn('Select2: The language file for "'+M+'" could not be automatically loaded. A fallback will be used instead.');continue}}J.extend(N)}l.translations=J}else{var O=k.loadPath(this.defaults.amdLanguageBase+"en"),P=new k(l.language);P.extend(O),l.translations=P}return l},D.prototype.reset=function(){function b(a){function b(a){return l[a]||a}return a.replace(/[^\u0000-\u007E]/g,b)}function c(d,e){if(""===a.trim(d.term))return e;if(e.children&&e.children.length>0){for(var f=a.extend(!0,{},e),g=e.children.length-1;g>=0;g--){null==c(d,e.children[g])&&f.children.splice(g,1)}return f.children.length>0?f:c(d,f)}var h=b(e.text).toUpperCase(),i=b(d.term).toUpperCase();return h.indexOf(i)>-1?e:null}this.defaults={amdBase:"./",amdLanguageBase:"./i18n/",closeOnSelect:!0,debug:!1,dropdownAutoWidth:!1,escapeMarkup:j.escapeMarkup,language:C,matcher:c,minimumInputLength:0,maximumInputLength:0,maximumSelectionLength:0,minimumResultsForSearch:0,selectOnClose:!1,sorter:function(a){return a},templateResult:function(a){return a.text},templateSelection:function(a){return a.text},theme:"default",width:"resolve"}},D.prototype.set=function(b,c){var d=a.camelCase(b),e={};e[d]=c;var f=j._convertData(e);a.extend(this.defaults,f)},new D}),b.define("select2/options",["require","jquery","./defaults","./utils"],function(a,b,c,d){function e(b,e){if(this.options=b,null!=e&&this.fromElement(e),this.options=c.apply(this.options),e&&e.is("input")){var f=a(this.get("amdBase")+"compat/inputData");this.options.dataAdapter=d.Decorate(this.options.dataAdapter,f)}}return e.prototype.fromElement=function(a){var c=["select2"];null==this.options.multiple&&(this.options.multiple=a.prop("multiple")),null==this.options.disabled&&(this.options.disabled=a.prop("disabled")),null==this.options.language&&(a.prop("lang")?this.options.language=a.prop("lang").toLowerCase():a.closest("[lang]").prop("lang")&&(this.options.language=a.closest("[lang]").prop("lang"))),null==this.options.dir&&(a.prop("dir")?this.options.dir=a.prop("dir"):a.closest("[dir]").prop("dir")?this.options.dir=a.closest("[dir]").prop("dir"):this.options.dir="ltr"),a.prop("disabled",this.options.disabled),a.prop("multiple",this.options.multiple),a.data("select2Tags")&&(this.options.debug&&window.console&&console.warn&&console.warn('Select2: The `data-select2-tags` attribute has been changed to use the `data-data` and `data-tags="true"` attributes and will be removed in future versions of Select2.'),a.data("data",a.data("select2Tags")),a.data("tags",!0)),a.data("ajaxUrl")&&(this.options.debug&&window.console&&console.warn&&console.warn("Select2: The `data-ajax-url` attribute has been changed to `data-ajax--url` and support for the old attribute will be removed in future versions of Select2."),a.attr("ajax--url",a.data("ajaxUrl")),a.data("ajax--url",a.data("ajaxUrl")));var e={};e=b.fn.jquery&&"1."==b.fn.jquery.substr(0,2)&&a[0].dataset?b.extend(!0,{},a[0].dataset,a.data()):a.data();var f=b.extend(!0,{},e);f=d._convertData(f);for(var g in f)b.inArray(g,c)>-1||(b.isPlainObject(this.options[g])?b.extend(this.options[g],f[g]):this.options[g]=f[g]);return this},e.prototype.get=function(a){return this.options[a]},e.prototype.set=function(a,b){this.options[a]=b},e}),b.define("select2/core",["jquery","./options","./utils","./keys"],function(a,b,c,d){var e=function(a,c){null!=a.data("select2")&&a.data("select2").destroy(),this.$element=a,this.id=this._generateId(a),c=c||{},this.options=new b(c,a),e.__super__.constructor.call(this);var d=a.attr("tabindex")||0;a.data("old-tabindex",d),a.attr("tabindex","-1");var f=this.options.get("dataAdapter");this.dataAdapter=new f(a,this.options);var g=this.render();this._placeContainer(g);var h=this.options.get("selectionAdapter");this.selection=new h(a,this.options),this.$selection=this.selection.render(),this.selection.position(this.$selection,g);var i=this.options.get("dropdownAdapter");this.dropdown=new i(a,this.options),this.$dropdown=this.dropdown.render(),this.dropdown.position(this.$dropdown,g);var j=this.options.get("resultsAdapter");this.results=new j(a,this.options,this.dataAdapter),this.$results=this.results.render(),this.results.position(this.$results,this.$dropdown);var k=this;this._bindAdapters(),this._registerDomEvents(),this._registerDataEvents(),this._registerSelectionEvents(),this._registerDropdownEvents(),this._registerResultsEvents(),this._registerEvents(),this.dataAdapter.current(function(a){k.trigger("selection:update",{data:a})}),a.addClass("select2-hidden-accessible"),a.attr("aria-hidden","true"),this._syncAttributes(),a.data("select2",this)};return c.Extend(e,c.Observable),e.prototype._generateId=function(a){var b="";return b=null!=a.attr("id")?a.attr("id"):null!=a.attr("name")?a.attr("name")+"-"+c.generateChars(2):c.generateChars(4),b=b.replace(/(:|\.|\[|\]|,)/g,""),b="select2-"+b},e.prototype._placeContainer=function(a){a.insertAfter(this.$element);var b=this._resolveWidth(this.$element,this.options.get("width"));null!=b&&a.css("width",b)},e.prototype._resolveWidth=function(a,b){var c=/^width:(([-+]?([0-9]*\.)?[0-9]+)(px|em|ex|%|in|cm|mm|pt|pc))/i;if("resolve"==b){var d=this._resolveWidth(a,"style");return null!=d?d:this._resolveWidth(a,"element")}if("element"==b){var e=a.outerWidth(!1);return e<=0?"auto":e+"px"}if("style"==b){var f=a.attr("style");if("string"!=typeof f)return null;for(var g=f.split(";"),h=0,i=g.length;h<i;h+=1){var j=g[h].replace(/\s/g,""),k=j.match(c);if(null!==k&&k.length>=1)return k[1]}return null}return b},e.prototype._bindAdapters=function(){this.dataAdapter.bind(this,this.$container),this.selection.bind(this,this.$container),this.dropdown.bind(this,this.$container),this.results.bind(this,this.$container)},e.prototype._registerDomEvents=function(){var b=this;this.$element.on("change.select2",function(){b.dataAdapter.current(function(a){b.trigger("selection:update",{data:a})})}),this.$element.on("focus.select2",function(a){b.trigger("focus",a)}),this._syncA=c.bind(this._syncAttributes,this),this._syncS=c.bind(this._syncSubtree,this),this.$element[0].attachEvent&&this.$element[0].attachEvent("onpropertychange",this._syncA);var d=window.MutationObserver||window.WebKitMutationObserver||window.MozMutationObserver;null!=d?(this._observer=new d(function(c){a.each(c,b._syncA),a.each(c,b._syncS)}),this._observer.observe(this.$element[0],{attributes:!0,childList:!0,subtree:!1})):this.$element[0].addEventListener&&(this.$element[0].addEventListener("DOMAttrModified",b._syncA,!1),this.$element[0].addEventListener("DOMNodeInserted",b._syncS,!1),this.$element[0].addEventListener("DOMNodeRemoved",b._syncS,!1))},e.prototype._registerDataEvents=function(){var a=this;this.dataAdapter.on("*",function(b,c){a.trigger(b,c)})},e.prototype._registerSelectionEvents=function(){var b=this,c=["toggle","focus"];this.selection.on("toggle",function(){b.toggleDropdown()}),this.selection.on("focus",function(a){b.focus(a)}),this.selection.on("*",function(d,e){-1===a.inArray(d,c)&&b.trigger(d,e)})},e.prototype._registerDropdownEvents=function(){var a=this;this.dropdown.on("*",function(b,c){a.trigger(b,c)})},e.prototype._registerResultsEvents=function(){var a=this;this.results.on("*",function(b,c){a.trigger(b,c)})},e.prototype._registerEvents=function(){var a=this;this.on("open",function(){a.$container.addClass("select2-container--open")}),this.on("close",function(){a.$container.removeClass("select2-container--open")}),this.on("enable",function(){a.$container.removeClass("select2-container--disabled")}),this.on("disable",function(){a.$container.addClass("select2-container--disabled")}),this.on("blur",function(){a.$container.removeClass("select2-container--focus")}),this.on("query",function(b){a.isOpen()||a.trigger("open",{}),this.dataAdapter.query(b,function(c){a.trigger("results:all",{data:c,query:b})})}),this.on("query:append",function(b){this.dataAdapter.query(b,function(c){a.trigger("results:append",{data:c,query:b})})}),this.on("keypress",function(b){var c=b.which;a.isOpen()?c===d.ESC||c===d.TAB||c===d.UP&&b.altKey?(a.close(),b.preventDefault()):c===d.ENTER?(a.trigger("results:select",{}),b.preventDefault()):c===d.SPACE&&b.ctrlKey?(a.trigger("results:toggle",{}),b.preventDefault()):c===d.UP?(a.trigger("results:previous",{}),b.preventDefault()):c===d.DOWN&&(a.trigger("results:next",{}),b.preventDefault()):(c===d.ENTER||c===d.SPACE||c===d.DOWN&&b.altKey)&&(a.open(),b.preventDefault())})},e.prototype._syncAttributes=function(){this.options.set("disabled",this.$element.prop("disabled")),this.options.get("disabled")?(this.isOpen()&&this.close(),this.trigger("disable",{})):this.trigger("enable",{})},e.prototype._syncSubtree=function(a,b){var c=!1,d=this;if(!a||!a.target||"OPTION"===a.target.nodeName||"OPTGROUP"===a.target.nodeName){if(b)if(b.addedNodes&&b.addedNodes.length>0)for(var e=0;e<b.addedNodes.length;e++){var f=b.addedNodes[e];f.selected&&(c=!0)}else b.removedNodes&&b.removedNodes.length>0&&(c=!0);else c=!0;c&&this.dataAdapter.current(function(a){d.trigger("selection:update",{data:a})})}},e.prototype.trigger=function(a,b){var c=e.__super__.trigger,d={open:"opening",close:"closing",select:"selecting",unselect:"unselecting"};if(void 0===b&&(b={}),a in d){var f=d[a],g={prevented:!1,name:a,args:b};if(c.call(this,f,g),g.prevented)return void(b.prevented=!0)}c.call(this,a,b)},e.prototype.toggleDropdown=function(){this.options.get("disabled")||(this.isOpen()?this.close():this.open())},e.prototype.open=function(){this.isOpen()||this.trigger("query",{})},e.prototype.close=function(){this.isOpen()&&this.trigger("close",{})},e.prototype.isOpen=function(){return this.$container.hasClass("select2-container--open")},e.prototype.hasFocus=function(){return this.$container.hasClass("select2-container--focus")},e.prototype.focus=function(a){this.hasFocus()||(this.$container.addClass("select2-container--focus"),this.trigger("focus",{}))},e.prototype.enable=function(a){this.options.get("debug")&&window.console&&console.warn&&console.warn('Select2: The `select2("enable")` method has been deprecated and will be removed in later Select2 versions. Use $element.prop("disabled") instead.'),null!=a&&0!==a.length||(a=[!0]);var b=!a[0];this.$element.prop("disabled",b)},e.prototype.data=function(){this.options.get("debug")&&arguments.length>0&&window.console&&console.warn&&console.warn('Select2: Data can no longer be set using `select2("data")`. You should consider setting the value instead using `$element.val()`.');var a=[];return this.dataAdapter.current(function(b){a=b}),a},e.prototype.val=function(b){if(this.options.get("debug")&&window.console&&console.warn&&console.warn('Select2: The `select2("val")` method has been deprecated and will be removed in later Select2 versions. Use $element.val() instead.'),null==b||0===b.length)return this.$element.val();var c=b[0];a.isArray(c)&&(c=a.map(c,function(a){return a.toString()})),this.$element.val(c).trigger("change")},e.prototype.destroy=function(){this.$container.remove(),this.$element[0].detachEvent&&this.$element[0].detachEvent("onpropertychange",this._syncA),null!=this._observer?(this._observer.disconnect(),this._observer=null):this.$element[0].removeEventListener&&(this.$element[0].removeEventListener("DOMAttrModified",this._syncA,!1),this.$element[0].removeEventListener("DOMNodeInserted",this._syncS,!1),this.$element[0].removeEventListener("DOMNodeRemoved",this._syncS,!1)),this._syncA=null,this._syncS=null,this.$element.off(".select2"),this.$element.attr("tabindex",this.$element.data("old-tabindex")),this.$element.removeClass("select2-hidden-accessible"),this.$element.attr("aria-hidden","false"),this.$element.removeData("select2"),this.dataAdapter.destroy(),this.selection.destroy(),this.dropdown.destroy(),this.results.destroy(),this.dataAdapter=null,this.selection=null,this.dropdown=null,this.results=null},e.prototype.render=function(){var b=a('<span class="select2 select2-container"><span class="selection"></span><span class="dropdown-wrapper" aria-hidden="true"></span></span>');return b.attr("dir",this.options.get("dir")),this.$container=b,this.$container.addClass("select2-container--"+this.options.get("theme")),b.data("element",this.$element),b},e}),b.define("jquery-mousewheel",["jquery"],function(a){return a}),b.define("jquery.select2",["jquery","jquery-mousewheel","./select2/core","./select2/defaults"],function(a,b,c,d){if(null==a.fn.select2){var e=["open","close","destroy"];a.fn.select2=function(b){if("object"==typeof(b=b||{}))return this.each(function(){var d=a.extend(!0,{},b);new c(a(this),d)}),this;if("string"==typeof b){var d,f=Array.prototype.slice.call(arguments,1);return this.each(function(){var c=a(this).data("select2");null==c&&window.console&&console.error&&console.error("The select2('"+b+"') method was called on an element that is not using Select2."),d=c[b].apply(c,f)}),a.inArray(b,e)>-1?this:d}throw new Error("Invalid arguments for Select2: "+b)}}return null==a.fn.select2.defaults&&(a.fn.select2.defaults=d),c}),{define:b.define,require:b.require}}(),c=b.require("jquery.select2");return a.fn.select2.amd=b,c}); \ No newline at end of file diff --git a/admin/bower_components/select2/package.json b/admin/bower_components/select2/package.json deleted file mode 100644 index 69423b3..0000000 --- a/admin/bower_components/select2/package.json +++ /dev/null @@ -1,73 +0,0 @@ -{ - "name": "select2", - "description": "Select2 is a jQuery based replacement for select boxes. It supports searching, remote data sets, and infinite scrolling of results.", - "homepage": "https://select2.org", - "author": { - "name": "Kevin Brown", - "url": "https://github.com/kevin-brown" - }, - "contributors": [ - { - "name": "Igor Vaynberg", - "url": "https://github.com/ivaynberg" - }, - { - "name": "Alex Weissman", - "url": "https://github.com/alexweissman" - } - ], - "repository": { - "type": "git", - "url": "git://github.com/select2/select2.git" - }, - "bugs": { - "url": "https://github.com/select2/select2/issues" - }, - "keywords": [ - "select", - "autocomplete", - "typeahead", - "dropdown", - "multiselect", - "tag", - "tagging" - ], - "license": "MIT", - "main": "dist/js/select2.js", - "files": [ - "src", - "dist" - ], - "version": "4.0.4", - "jspm": { - "main": "js/select2", - "directories": { - "lib": "dist" - } - }, - "devDependencies": { - "grunt": "^0.4.5", - "grunt-cli": "^0.1.13", - "grunt-contrib-clean": "^0.6.0", - "grunt-contrib-concat": "^0.4.0", - "grunt-contrib-connect": "^0.9.0", - "grunt-contrib-jshint": "^0.10.0", - "grunt-contrib-nodeunit": "~0.3.3", - "grunt-contrib-qunit": "~0.4.0", - "grunt-contrib-requirejs": "^0.4.4", - "grunt-contrib-symlink": "^0.3.0", - "grunt-contrib-uglify": "~0.4.0", - "grunt-contrib-watch": "~0.6.0", - "grunt-gh-pages": "^0.9.1", - "grunt-jekyll": "^0.4.2", - "grunt-sass": "^1.0.0", - "grunt-saucelabs": "^9.0.0", - "node-sass": "^4.5.3", - "request": "<=2.81.0", - "shrinkwrap": "^0.4.0" - }, - "dependencies": { - "almond": "~0.3.1", - "jquery-mousewheel": "~3.1.13" - } -} diff --git a/admin/bower_components/select2/select2.jquery.json b/admin/bower_components/select2/select2.jquery.json deleted file mode 100644 index 92b7c05..0000000 --- a/admin/bower_components/select2/select2.jquery.json +++ /dev/null @@ -1,32 +0,0 @@ -{ - "name": "select2", - "title": "Select2", - "description": "Select2 is a jQuery based replacement for select boxes. It supports searching, remote data sets, and infinite scrolling of results.", - "keywords": [ - "select", - "autocomplete", - "typeahead", - "dropdown", - "multiselect", - "tag", - "tagging" - ], - "version": "4.0.4", - "author": { - "name": "Kevin Brown", - "url": "https://github.com/kevin-brown" - }, - "licenses": [ - { - "type": "MIT", - "url": "http://opensource.org/licenses/MIT" - } - ], - "bugs": "https://github.com/select2/select2/issues", - "homepage": "https://select2.org", - "docs": "https://select2.org", - "download": "https://github.com/select2/select2/releases", - "dependencies": { - "jquery": ">=1.7.2" - } -} diff --git a/admin/bower_components/select2/src/js/banner.end.js b/admin/bower_components/select2/src/js/banner.end.js deleted file mode 100644 index ea00a03..0000000 --- a/admin/bower_components/select2/src/js/banner.end.js +++ /dev/null @@ -1,6 +0,0 @@ - // Return the AMD loader configuration so it can be used outside of this file - return { - define: S2.define, - require: S2.require - }; -}()); diff --git a/admin/bower_components/select2/src/js/banner.start.js b/admin/bower_components/select2/src/js/banner.start.js deleted file mode 100644 index 78fe8b0..0000000 --- a/admin/bower_components/select2/src/js/banner.start.js +++ /dev/null @@ -1,6 +0,0 @@ -(function () { - // Restore the Select2 AMD loader so it can be used - // Needed mostly in the language files, where the loader is not inserted - if (jQuery && jQuery.fn && jQuery.fn.select2 && jQuery.fn.select2.amd) { - var S2 = jQuery.fn.select2.amd; - } diff --git a/admin/bower_components/select2/src/js/jquery.mousewheel.shim.js b/admin/bower_components/select2/src/js/jquery.mousewheel.shim.js deleted file mode 100644 index a27fda0..0000000 --- a/admin/bower_components/select2/src/js/jquery.mousewheel.shim.js +++ /dev/null @@ -1,6 +0,0 @@ -define([ - 'jquery' -], function ($) { - // Used to shim jQuery.mousewheel for non-full builds. - return $; -}); diff --git a/admin/bower_components/select2/src/js/jquery.select2.js b/admin/bower_components/select2/src/js/jquery.select2.js deleted file mode 100644 index a3f8eff..0000000 --- a/admin/bower_components/select2/src/js/jquery.select2.js +++ /dev/null @@ -1,57 +0,0 @@ -define([ - 'jquery', - 'jquery-mousewheel', - - './select2/core', - './select2/defaults' -], function ($, _, Select2, Defaults) { - if ($.fn.select2 == null) { - // All methods that should return the element - var thisMethods = ['open', 'close', 'destroy']; - - $.fn.select2 = function (options) { - options = options || {}; - - if (typeof options === 'object') { - this.each(function () { - var instanceOptions = $.extend(true, {}, options); - - var instance = new Select2($(this), instanceOptions); - }); - - return this; - } else if (typeof options === 'string') { - var ret; - var args = Array.prototype.slice.call(arguments, 1); - - this.each(function () { - var instance = $(this).data('select2'); - - if (instance == null && window.console && console.error) { - console.error( - 'The select2(\'' + options + '\') method was called on an ' + - 'element that is not using Select2.' - ); - } - - ret = instance[options].apply(instance, args); - }); - - // Check if we should be returning `this` - if ($.inArray(options, thisMethods) > -1) { - return this; - } - - return ret; - } else { - throw new Error('Invalid arguments for Select2: ' + options); - } - }; - } - - if ($.fn.select2.defaults == null) { - $.fn.select2.defaults = Defaults; - } - - return Select2; -}); diff --git a/admin/bower_components/select2/src/js/jquery.shim.js b/admin/bower_components/select2/src/js/jquery.shim.js deleted file mode 100644 index 880993a..0000000 --- a/admin/bower_components/select2/src/js/jquery.shim.js +++ /dev/null @@ -1,14 +0,0 @@ -/* global jQuery:false, $:false */ -define(function () { - var _$ = jQuery || $; - - if (_$ == null && console && console.error) { - console.error( - 'Select2: An instance of jQuery or a jQuery-compatible library was not ' + - 'found. Make sure that you are including jQuery before Select2 on your ' + - 'web page.' - ); - } - - return _$; -}); diff --git a/admin/bower_components/select2/src/js/select2/compat/containerCss.js b/admin/bower_components/select2/src/js/select2/compat/containerCss.js deleted file mode 100644 index 45703ac..0000000 --- a/admin/bower_components/select2/src/js/select2/compat/containerCss.js +++ /dev/null @@ -1,56 +0,0 @@ -define([ - 'jquery', - './utils' -], function ($, CompatUtils) { - // No-op CSS adapter that discards all classes by default - function _containerAdapter (clazz) { - return null; - } - - function ContainerCSS () { } - - ContainerCSS.prototype.render = function (decorated) { - var $container = decorated.call(this); - - var containerCssClass = this.options.get('containerCssClass') || ''; - - if ($.isFunction(containerCssClass)) { - containerCssClass = containerCssClass(this.$element); - } - - var containerCssAdapter = this.options.get('adaptContainerCssClass'); - containerCssAdapter = containerCssAdapter || _containerAdapter; - - if (containerCssClass.indexOf(':all:') !== -1) { - containerCssClass = containerCssClass.replace(':all:', ''); - - var _cssAdapter = containerCssAdapter; - - containerCssAdapter = function (clazz) { - var adapted = _cssAdapter(clazz); - - if (adapted != null) { - // Append the old one along with the adapted one - return adapted + ' ' + clazz; - } - - return clazz; - }; - } - - var containerCss = this.options.get('containerCss') || {}; - - if ($.isFunction(containerCss)) { - containerCss = containerCss(this.$element); - } - - CompatUtils.syncCssClasses($container, this.$element, containerCssAdapter); - - $container.css(containerCss); - $container.addClass(containerCssClass); - - return $container; - }; - - return ContainerCSS; -}); diff --git a/admin/bower_components/select2/src/js/select2/compat/dropdownCss.js b/admin/bower_components/select2/src/js/select2/compat/dropdownCss.js deleted file mode 100644 index 02f5582..0000000 --- a/admin/bower_components/select2/src/js/select2/compat/dropdownCss.js +++ /dev/null @@ -1,56 +0,0 @@ -define([ - 'jquery', - './utils' -], function ($, CompatUtils) { - // No-op CSS adapter that discards all classes by default - function _dropdownAdapter (clazz) { - return null; - } - - function DropdownCSS () { } - - DropdownCSS.prototype.render = function (decorated) { - var $dropdown = decorated.call(this); - - var dropdownCssClass = this.options.get('dropdownCssClass') || ''; - - if ($.isFunction(dropdownCssClass)) { - dropdownCssClass = dropdownCssClass(this.$element); - } - - var dropdownCssAdapter = this.options.get('adaptDropdownCssClass'); - dropdownCssAdapter = dropdownCssAdapter || _dropdownAdapter; - - if (dropdownCssClass.indexOf(':all:') !== -1) { - dropdownCssClass = dropdownCssClass.replace(':all:', ''); - - var _cssAdapter = dropdownCssAdapter; - - dropdownCssAdapter = function (clazz) { - var adapted = _cssAdapter(clazz); - - if (adapted != null) { - // Append the old one along with the adapted one - return adapted + ' ' + clazz; - } - - return clazz; - }; - } - - var dropdownCss = this.options.get('dropdownCss') || {}; - - if ($.isFunction(dropdownCss)) { - dropdownCss = dropdownCss(this.$element); - } - - CompatUtils.syncCssClasses($dropdown, this.$element, dropdownCssAdapter); - - $dropdown.css(dropdownCss); - $dropdown.addClass(dropdownCssClass); - - return $dropdown; - }; - - return DropdownCSS; -}); diff --git a/admin/bower_components/select2/src/js/select2/compat/initSelection.js b/admin/bower_components/select2/src/js/select2/compat/initSelection.js deleted file mode 100644 index 71ee29d..0000000 --- a/admin/bower_components/select2/src/js/select2/compat/initSelection.js +++ /dev/null @@ -1,42 +0,0 @@ -define([ - 'jquery' -], function ($) { - function InitSelection (decorated, $element, options) { - if (options.get('debug') && window.console && console.warn) { - console.warn( - 'Select2: The `initSelection` option has been deprecated in favor' + - ' of a custom data adapter that overrides the `current` method. ' + - 'This method is now called multiple times instead of a single ' + - 'time when the instance is initialized. Support will be removed ' + - 'for the `initSelection` option in future versions of Select2' - ); - } - - this.initSelection = options.get('initSelection'); - this._isInitialized = false; - - decorated.call(this, $element, options); - } - - InitSelection.prototype.current = function (decorated, callback) { - var self = this; - - if (this._isInitialized) { - decorated.call(this, callback); - - return; - } - - this.initSelection.call(null, this.$element, function (data) { - self._isInitialized = true; - - if (!$.isArray(data)) { - data = [data]; - } - - callback(data); - }); - }; - - return InitSelection; -}); diff --git a/admin/bower_components/select2/src/js/select2/compat/inputData.js b/admin/bower_components/select2/src/js/select2/compat/inputData.js deleted file mode 100644 index a338bf1..0000000 --- a/admin/bower_components/select2/src/js/select2/compat/inputData.js +++ /dev/null @@ -1,127 +0,0 @@ -define([ - 'jquery' -], function ($) { - function InputData (decorated, $element, options) { - this._currentData = []; - this._valueSeparator = options.get('valueSeparator') || ','; - - if ($element.prop('type') === 'hidden') { - if (options.get('debug') && console && console.warn) { - console.warn( - 'Select2: Using a hidden input with Select2 is no longer ' + - 'supported and may stop working in the future. It is recommended ' + - 'to use a `<select>` element instead.' - ); - } - } - - decorated.call(this, $element, options); - } - - InputData.prototype.current = function (_, callback) { - function getSelected (data, selectedIds) { - var selected = []; - - if (data.selected || $.inArray(data.id, selectedIds) !== -1) { - data.selected = true; - selected.push(data); - } else { - data.selected = false; - } - - if (data.children) { - selected.push.apply(selected, getSelected(data.children, selectedIds)); - } - - return selected; - } - - var selected = []; - - for (var d = 0; d < this._currentData.length; d++) { - var data = this._currentData[d]; - - selected.push.apply( - selected, - getSelected( - data, - this.$element.val().split( - this._valueSeparator - ) - ) - ); - } - - callback(selected); - }; - - InputData.prototype.select = function (_, data) { - if (!this.options.get('multiple')) { - this.current(function (allData) { - $.map(allData, function (data) { - data.selected = false; - }); - }); - - this.$element.val(data.id); - this.$element.trigger('change'); - } else { - var value = this.$element.val(); - value += this._valueSeparator + data.id; - - this.$element.val(value); - this.$element.trigger('change'); - } - }; - - InputData.prototype.unselect = function (_, data) { - var self = this; - - data.selected = false; - - this.current(function (allData) { - var values = []; - - for (var d = 0; d < allData.length; d++) { - var item = allData[d]; - - if (data.id == item.id) { - continue; - } - - values.push(item.id); - } - - self.$element.val(values.join(self._valueSeparator)); - self.$element.trigger('change'); - }); - }; - - InputData.prototype.query = function (_, params, callback) { - var results = []; - - for (var d = 0; d < this._currentData.length; d++) { - var data = this._currentData[d]; - - var matches = this.matches(params, data); - - if (matches !== null) { - results.push(matches); - } - } - - callback({ - results: results - }); - }; - - InputData.prototype.addOptions = function (_, $options) { - var options = $.map($options, function ($option) { - return $.data($option[0], 'data'); - }); - - this._currentData.push.apply(this._currentData, options); - }; - - return InputData; -}); diff --git a/admin/bower_components/select2/src/js/select2/compat/matcher.js b/admin/bower_components/select2/src/js/select2/compat/matcher.js deleted file mode 100644 index a975fdd..0000000 --- a/admin/bower_components/select2/src/js/select2/compat/matcher.js +++ /dev/null @@ -1,42 +0,0 @@ -define([ - 'jquery' -], function ($) { - function oldMatcher (matcher) { - function wrappedMatcher (params, data) { - var match = $.extend(true, {}, data); - - if (params.term == null || $.trim(params.term) === '') { - return match; - } - - if (data.children) { - for (var c = data.children.length - 1; c >= 0; c--) { - var child = data.children[c]; - - // Check if the child object matches - // The old matcher returned a boolean true or false - var doesMatch = matcher(params.term, child.text, child); - - // If the child didn't match, pop it off - if (!doesMatch) { - match.children.splice(c, 1); - } - } - - if (match.children.length > 0) { - return match; - } - } - - if (matcher(params.term, data.text, data)) { - return match; - } - - return null; - } - - return wrappedMatcher; - } - - return oldMatcher; -}); diff --git a/admin/bower_components/select2/src/js/select2/compat/query.js b/admin/bower_components/select2/src/js/select2/compat/query.js deleted file mode 100644 index f2884a7..0000000 --- a/admin/bower_components/select2/src/js/select2/compat/query.js +++ /dev/null @@ -1,26 +0,0 @@ -define([ - -], function () { - function Query (decorated, $element, options) { - if (options.get('debug') && window.console && console.warn) { - console.warn( - 'Select2: The `query` option has been deprecated in favor of a ' + - 'custom data adapter that overrides the `query` method. Support ' + - 'will be removed for the `query` option in future versions of ' + - 'Select2.' - ); - } - - decorated.call(this, $element, options); - } - - Query.prototype.query = function (_, params, callback) { - params.callback = callback; - - var query = this.options.get('query'); - - query.call(null, params); - }; - - return Query; -}); diff --git a/admin/bower_components/select2/src/js/select2/compat/utils.js b/admin/bower_components/select2/src/js/select2/compat/utils.js deleted file mode 100644 index 5a3ea1c..0000000 --- a/admin/bower_components/select2/src/js/select2/compat/utils.js +++ /dev/null @@ -1,43 +0,0 @@ -define([ - 'jquery' -], function ($) { - function syncCssClasses ($dest, $src, adapter) { - var classes, replacements = [], adapted; - - classes = $.trim($dest.attr('class')); - - if (classes) { - classes = '' + classes; // for IE which returns object - - $(classes.split(/\s+/)).each(function () { - // Save all Select2 classes - if (this.indexOf('select2-') === 0) { - replacements.push(this); - } - }); - } - - classes = $.trim($src.attr('class')); - - if (classes) { - classes = '' + classes; // for IE which returns object - - $(classes.split(/\s+/)).each(function () { - // Only adapt non-Select2 classes - if (this.indexOf('select2-') !== 0) { - adapted = adapter(this); - - if (adapted != null) { - replacements.push(adapted); - } - } - }); - } - - $dest.attr('class', replacements.join(' ')); - } - - return { - syncCssClasses: syncCssClasses - }; -}); diff --git a/admin/bower_components/select2/src/js/select2/core.js b/admin/bower_components/select2/src/js/select2/core.js deleted file mode 100644 index 4ba06ed..0000000 --- a/admin/bower_components/select2/src/js/select2/core.js +++ /dev/null @@ -1,612 +0,0 @@ -define([ - 'jquery', - './options', - './utils', - './keys' -], function ($, Options, Utils, KEYS) { - var Select2 = function ($element, options) { - if ($element.data('select2') != null) { - $element.data('select2').destroy(); - } - - this.$element = $element; - - this.id = this._generateId($element); - - options = options || {}; - - this.options = new Options(options, $element); - - Select2.__super__.constructor.call(this); - - // Set up the tabindex - - var tabindex = $element.attr('tabindex') || 0; - $element.data('old-tabindex', tabindex); - $element.attr('tabindex', '-1'); - - // Set up containers and adapters - - var DataAdapter = this.options.get('dataAdapter'); - this.dataAdapter = new DataAdapter($element, this.options); - - var $container = this.render(); - - this._placeContainer($container); - - var SelectionAdapter = this.options.get('selectionAdapter'); - this.selection = new SelectionAdapter($element, this.options); - this.$selection = this.selection.render(); - - this.selection.position(this.$selection, $container); - - var DropdownAdapter = this.options.get('dropdownAdapter'); - this.dropdown = new DropdownAdapter($element, this.options); - this.$dropdown = this.dropdown.render(); - - this.dropdown.position(this.$dropdown, $container); - - var ResultsAdapter = this.options.get('resultsAdapter'); - this.results = new ResultsAdapter($element, this.options, this.dataAdapter); - this.$results = this.results.render(); - - this.results.position(this.$results, this.$dropdown); - - // Bind events - - var self = this; - - // Bind the container to all of the adapters - this._bindAdapters(); - - // Register any DOM event handlers - this._registerDomEvents(); - - // Register any internal event handlers - this._registerDataEvents(); - this._registerSelectionEvents(); - this._registerDropdownEvents(); - this._registerResultsEvents(); - this._registerEvents(); - - // Set the initial state - this.dataAdapter.current(function (initialData) { - self.trigger('selection:update', { - data: initialData - }); - }); - - // Hide the original select - $element.addClass('select2-hidden-accessible'); - $element.attr('aria-hidden', 'true'); - - // Synchronize any monitored attributes - this._syncAttributes(); - - $element.data('select2', this); - }; - - Utils.Extend(Select2, Utils.Observable); - - Select2.prototype._generateId = function ($element) { - var id = ''; - - if ($element.attr('id') != null) { - id = $element.attr('id'); - } else if ($element.attr('name') != null) { - id = $element.attr('name') + '-' + Utils.generateChars(2); - } else { - id = Utils.generateChars(4); - } - - id = id.replace(/(:|\.|\[|\]|,)/g, ''); - id = 'select2-' + id; - - return id; - }; - - Select2.prototype._placeContainer = function ($container) { - $container.insertAfter(this.$element); - - var width = this._resolveWidth(this.$element, this.options.get('width')); - - if (width != null) { - $container.css('width', width); - } - }; - - Select2.prototype._resolveWidth = function ($element, method) { - var WIDTH = /^width:(([-+]?([0-9]*\.)?[0-9]+)(px|em|ex|%|in|cm|mm|pt|pc))/i; - - if (method == 'resolve') { - var styleWidth = this._resolveWidth($element, 'style'); - - if (styleWidth != null) { - return styleWidth; - } - - return this._resolveWidth($element, 'element'); - } - - if (method == 'element') { - var elementWidth = $element.outerWidth(false); - - if (elementWidth <= 0) { - return 'auto'; - } - - return elementWidth + 'px'; - } - - if (method == 'style') { - var style = $element.attr('style'); - - if (typeof(style) !== 'string') { - return null; - } - - var attrs = style.split(';'); - - for (var i = 0, l = attrs.length; i < l; i = i + 1) { - var attr = attrs[i].replace(/\s/g, ''); - var matches = attr.match(WIDTH); - - if (matches !== null && matches.length >= 1) { - return matches[1]; - } - } - - return null; - } - - return method; - }; - - Select2.prototype._bindAdapters = function () { - this.dataAdapter.bind(this, this.$container); - this.selection.bind(this, this.$container); - - this.dropdown.bind(this, this.$container); - this.results.bind(this, this.$container); - }; - - Select2.prototype._registerDomEvents = function () { - var self = this; - - this.$element.on('change.select2', function () { - self.dataAdapter.current(function (data) { - self.trigger('selection:update', { - data: data - }); - }); - }); - - this.$element.on('focus.select2', function (evt) { - self.trigger('focus', evt); - }); - - this._syncA = Utils.bind(this._syncAttributes, this); - this._syncS = Utils.bind(this._syncSubtree, this); - - if (this.$element[0].attachEvent) { - this.$element[0].attachEvent('onpropertychange', this._syncA); - } - - var observer = window.MutationObserver || - window.WebKitMutationObserver || - window.MozMutationObserver - ; - - if (observer != null) { - this._observer = new observer(function (mutations) { - $.each(mutations, self._syncA); - $.each(mutations, self._syncS); - }); - this._observer.observe(this.$element[0], { - attributes: true, - childList: true, - subtree: false - }); - } else if (this.$element[0].addEventListener) { - this.$element[0].addEventListener( - 'DOMAttrModified', - self._syncA, - false - ); - this.$element[0].addEventListener( - 'DOMNodeInserted', - self._syncS, - false - ); - this.$element[0].addEventListener( - 'DOMNodeRemoved', - self._syncS, - false - ); - } - }; - - Select2.prototype._registerDataEvents = function () { - var self = this; - - this.dataAdapter.on('*', function (name, params) { - self.trigger(name, params); - }); - }; - - Select2.prototype._registerSelectionEvents = function () { - var self = this; - var nonRelayEvents = ['toggle', 'focus']; - - this.selection.on('toggle', function () { - self.toggleDropdown(); - }); - - this.selection.on('focus', function (params) { - self.focus(params); - }); - - this.selection.on('*', function (name, params) { - if ($.inArray(name, nonRelayEvents) !== -1) { - return; - } - - self.trigger(name, params); - }); - }; - - Select2.prototype._registerDropdownEvents = function () { - var self = this; - - this.dropdown.on('*', function (name, params) { - self.trigger(name, params); - }); - }; - - Select2.prototype._registerResultsEvents = function () { - var self = this; - - this.results.on('*', function (name, params) { - self.trigger(name, params); - }); - }; - - Select2.prototype._registerEvents = function () { - var self = this; - - this.on('open', function () { - self.$container.addClass('select2-container--open'); - }); - - this.on('close', function () { - self.$container.removeClass('select2-container--open'); - }); - - this.on('enable', function () { - self.$container.removeClass('select2-container--disabled'); - }); - - this.on('disable', function () { - self.$container.addClass('select2-container--disabled'); - }); - - this.on('blur', function () { - self.$container.removeClass('select2-container--focus'); - }); - - this.on('query', function (params) { - if (!self.isOpen()) { - self.trigger('open', {}); - } - - this.dataAdapter.query(params, function (data) { - self.trigger('results:all', { - data: data, - query: params - }); - }); - }); - - this.on('query:append', function (params) { - this.dataAdapter.query(params, function (data) { - self.trigger('results:append', { - data: data, - query: params - }); - }); - }); - - this.on('keypress', function (evt) { - var key = evt.which; - - if (self.isOpen()) { - if (key === KEYS.ESC || key === KEYS.TAB || - (key === KEYS.UP && evt.altKey)) { - self.close(); - - evt.preventDefault(); - } else if (key === KEYS.ENTER) { - self.trigger('results:select', {}); - - evt.preventDefault(); - } else if ((key === KEYS.SPACE && evt.ctrlKey)) { - self.trigger('results:toggle', {}); - - evt.preventDefault(); - } else if (key === KEYS.UP) { - self.trigger('results:previous', {}); - - evt.preventDefault(); - } else if (key === KEYS.DOWN) { - self.trigger('results:next', {}); - - evt.preventDefault(); - } - } else { - if (key === KEYS.ENTER || key === KEYS.SPACE || - (key === KEYS.DOWN && evt.altKey)) { - self.open(); - - evt.preventDefault(); - } - } - }); - }; - - Select2.prototype._syncAttributes = function () { - this.options.set('disabled', this.$element.prop('disabled')); - - if (this.options.get('disabled')) { - if (this.isOpen()) { - this.close(); - } - - this.trigger('disable', {}); - } else { - this.trigger('enable', {}); - } - }; - - Select2.prototype._syncSubtree = function (evt, mutations) { - var changed = false; - var self = this; - - // Ignore any mutation events raised for elements that aren't options or - // optgroups. This handles the case when the select element is destroyed - if ( - evt && evt.target && ( - evt.target.nodeName !== 'OPTION' && evt.target.nodeName !== 'OPTGROUP' - ) - ) { - return; - } - - if (!mutations) { - // If mutation events aren't supported, then we can only assume that the - // change affected the selections - changed = true; - } else if (mutations.addedNodes && mutations.addedNodes.length > 0) { - for (var n = 0; n < mutations.addedNodes.length; n++) { - var node = mutations.addedNodes[n]; - - if (node.selected) { - changed = true; - } - } - } else if (mutations.removedNodes && mutations.removedNodes.length > 0) { - changed = true; - } - - // Only re-pull the data if we think there is a change - if (changed) { - this.dataAdapter.current(function (currentData) { - self.trigger('selection:update', { - data: currentData - }); - }); - } - }; - - /** - * Override the trigger method to automatically trigger pre-events when - * there are events that can be prevented. - */ - Select2.prototype.trigger = function (name, args) { - var actualTrigger = Select2.__super__.trigger; - var preTriggerMap = { - 'open': 'opening', - 'close': 'closing', - 'select': 'selecting', - 'unselect': 'unselecting' - }; - - if (args === undefined) { - args = {}; - } - - if (name in preTriggerMap) { - var preTriggerName = preTriggerMap[name]; - var preTriggerArgs = { - prevented: false, - name: name, - args: args - }; - - actualTrigger.call(this, preTriggerName, preTriggerArgs); - - if (preTriggerArgs.prevented) { - args.prevented = true; - - return; - } - } - - actualTrigger.call(this, name, args); - }; - - Select2.prototype.toggleDropdown = function () { - if (this.options.get('disabled')) { - return; - } - - if (this.isOpen()) { - this.close(); - } else { - this.open(); - } - }; - - Select2.prototype.open = function () { - if (this.isOpen()) { - return; - } - - this.trigger('query', {}); - }; - - Select2.prototype.close = function () { - if (!this.isOpen()) { - return; - } - - this.trigger('close', {}); - }; - - Select2.prototype.isOpen = function () { - return this.$container.hasClass('select2-container--open'); - }; - - Select2.prototype.hasFocus = function () { - return this.$container.hasClass('select2-container--focus'); - }; - - Select2.prototype.focus = function (data) { - // No need to re-trigger focus events if we are already focused - if (this.hasFocus()) { - return; - } - - this.$container.addClass('select2-container--focus'); - this.trigger('focus', {}); - }; - - Select2.prototype.enable = function (args) { - if (this.options.get('debug') && window.console && console.warn) { - console.warn( - 'Select2: The `select2("enable")` method has been deprecated and will' + - ' be removed in later Select2 versions. Use $element.prop("disabled")' + - ' instead.' - ); - } - - if (args == null || args.length === 0) { - args = [true]; - } - - var disabled = !args[0]; - - this.$element.prop('disabled', disabled); - }; - - Select2.prototype.data = function () { - if (this.options.get('debug') && - arguments.length > 0 && window.console && console.warn) { - console.warn( - 'Select2: Data can no longer be set using `select2("data")`. You ' + - 'should consider setting the value instead using `$element.val()`.' - ); - } - - var data = []; - - this.dataAdapter.current(function (currentData) { - data = currentData; - }); - - return data; - }; - - Select2.prototype.val = function (args) { - if (this.options.get('debug') && window.console && console.warn) { - console.warn( - 'Select2: The `select2("val")` method has been deprecated and will be' + - ' removed in later Select2 versions. Use $element.val() instead.' - ); - } - - if (args == null || args.length === 0) { - return this.$element.val(); - } - - var newVal = args[0]; - - if ($.isArray(newVal)) { - newVal = $.map(newVal, function (obj) { - return obj.toString(); - }); - } - - this.$element.val(newVal).trigger('change'); - }; - - Select2.prototype.destroy = function () { - this.$container.remove(); - - if (this.$element[0].detachEvent) { - this.$element[0].detachEvent('onpropertychange', this._syncA); - } - - if (this._observer != null) { - this._observer.disconnect(); - this._observer = null; - } else if (this.$element[0].removeEventListener) { - this.$element[0] - .removeEventListener('DOMAttrModified', this._syncA, false); - this.$element[0] - .removeEventListener('DOMNodeInserted', this._syncS, false); - this.$element[0] - .removeEventListener('DOMNodeRemoved', this._syncS, false); - } - - this._syncA = null; - this._syncS = null; - - this.$element.off('.select2'); - this.$element.attr('tabindex', this.$element.data('old-tabindex')); - - this.$element.removeClass('select2-hidden-accessible'); - this.$element.attr('aria-hidden', 'false'); - this.$element.removeData('select2'); - - this.dataAdapter.destroy(); - this.selection.destroy(); - this.dropdown.destroy(); - this.results.destroy(); - - this.dataAdapter = null; - this.selection = null; - this.dropdown = null; - this.results = null; - }; - - Select2.prototype.render = function () { - var $container = $( - '<span class="select2 select2-container">' + - '<span class="selection"></span>' + - '<span class="dropdown-wrapper" aria-hidden="true"></span>' + - '</span>' - ); - - $container.attr('dir', this.options.get('dir')); - - this.$container = $container; - - this.$container.addClass('select2-container--' + this.options.get('theme')); - - $container.data('element', this.$element); - - return $container; - }; - - return Select2; -}); diff --git a/admin/bower_components/select2/src/js/select2/data/ajax.js b/admin/bower_components/select2/src/js/select2/data/ajax.js deleted file mode 100644 index 97d3416..0000000 --- a/admin/bower_components/select2/src/js/select2/data/ajax.js +++ /dev/null @@ -1,109 +0,0 @@ -define([ - './array', - '../utils', - 'jquery' -], function (ArrayAdapter, Utils, $) { - function AjaxAdapter ($element, options) { - this.ajaxOptions = this._applyDefaults(options.get('ajax')); - - if (this.ajaxOptions.processResults != null) { - this.processResults = this.ajaxOptions.processResults; - } - - AjaxAdapter.__super__.constructor.call(this, $element, options); - } - - Utils.Extend(AjaxAdapter, ArrayAdapter); - - AjaxAdapter.prototype._applyDefaults = function (options) { - var defaults = { - data: function (params) { - return $.extend({}, params, { - q: params.term - }); - }, - transport: function (params, success, failure) { - var $request = $.ajax(params); - - $request.then(success); - $request.fail(failure); - - return $request; - } - }; - - return $.extend({}, defaults, options, true); - }; - - AjaxAdapter.prototype.processResults = function (results) { - return results; - }; - - AjaxAdapter.prototype.query = function (params, callback) { - var matches = []; - var self = this; - - if (this._request != null) { - // JSONP requests cannot always be aborted - if ($.isFunction(this._request.abort)) { - this._request.abort(); - } - - this._request = null; - } - - var options = $.extend({ - type: 'GET' - }, this.ajaxOptions); - - if (typeof options.url === 'function') { - options.url = options.url.call(this.$element, params); - } - - if (typeof options.data === 'function') { - options.data = options.data.call(this.$element, params); - } - - function request () { - var $request = options.transport(options, function (data) { - var results = self.processResults(data, params); - - if (self.options.get('debug') && window.console && console.error) { - // Check to make sure that the response included a `results` key. - if (!results || !results.results || !$.isArray(results.results)) { - console.error( - 'Select2: The AJAX results did not return an array in the ' + - '`results` key of the response.' - ); - } - } - - callback(results); - }, function () { - // Attempt to detect if a request was aborted - // Only works if the transport exposes a status property - if ($request.status && $request.status === '0') { - return; - } - - self.trigger('results:message', { - message: 'errorLoading' - }); - }); - - self._request = $request; - } - - if (this.ajaxOptions.delay && params.term != null) { - if (this._queryTimeout) { - window.clearTimeout(this._queryTimeout); - } - - this._queryTimeout = window.setTimeout(request, this.ajaxOptions.delay); - } else { - request(); - } - }; - - return AjaxAdapter; -}); diff --git a/admin/bower_components/select2/src/js/select2/data/array.js b/admin/bower_components/select2/src/js/select2/data/array.js deleted file mode 100644 index b889966..0000000 --- a/admin/bower_components/select2/src/js/select2/data/array.js +++ /dev/null @@ -1,79 +0,0 @@ -define([ - './select', - '../utils', - 'jquery' -], function (SelectAdapter, Utils, $) { - function ArrayAdapter ($element, options) { - var data = options.get('data') || []; - - ArrayAdapter.__super__.constructor.call(this, $element, options); - - this.addOptions(this.convertToOptions(data)); - } - - Utils.Extend(ArrayAdapter, SelectAdapter); - - ArrayAdapter.prototype.select = function (data) { - var $option = this.$element.find('option').filter(function (i, elm) { - return elm.value == data.id.toString(); - }); - - if ($option.length === 0) { - $option = this.option(data); - - this.addOptions($option); - } - - ArrayAdapter.__super__.select.call(this, data); - }; - - ArrayAdapter.prototype.convertToOptions = function (data) { - var self = this; - - var $existing = this.$element.find('option'); - var existingIds = $existing.map(function () { - return self.item($(this)).id; - }).get(); - - var $options = []; - - // Filter out all items except for the one passed in the argument - function onlyItem (item) { - return function () { - return $(this).val() == item.id; - }; - } - - for (var d = 0; d < data.length; d++) { - var item = this._normalizeItem(data[d]); - - // Skip items which were pre-loaded, only merge the data - if ($.inArray(item.id, existingIds) >= 0) { - var $existingOption = $existing.filter(onlyItem(item)); - - var existingData = this.item($existingOption); - var newData = $.extend(true, {}, item, existingData); - - var $newOption = this.option(newData); - - $existingOption.replaceWith($newOption); - - continue; - } - - var $option = this.option(item); - - if (item.children) { - var $children = this.convertToOptions(item.children); - - Utils.appendMany($option, $children); - } - - $options.push($option); - } - - return $options; - }; - - return ArrayAdapter; -}); diff --git a/admin/bower_components/select2/src/js/select2/data/base.js b/admin/bower_components/select2/src/js/select2/data/base.js deleted file mode 100644 index e35054d..0000000 --- a/admin/bower_components/select2/src/js/select2/data/base.js +++ /dev/null @@ -1,40 +0,0 @@ -define([ - '../utils' -], function (Utils) { - function BaseAdapter ($element, options) { - BaseAdapter.__super__.constructor.call(this); - } - - Utils.Extend(BaseAdapter, Utils.Observable); - - BaseAdapter.prototype.current = function (callback) { - throw new Error('The `current` method must be defined in child classes.'); - }; - - BaseAdapter.prototype.query = function (params, callback) { - throw new Error('The `query` method must be defined in child classes.'); - }; - - BaseAdapter.prototype.bind = function (container, $container) { - // Can be implemented in subclasses - }; - - BaseAdapter.prototype.destroy = function () { - // Can be implemented in subclasses - }; - - BaseAdapter.prototype.generateResultId = function (container, data) { - var id = container.id + '-result-'; - - id += Utils.generateChars(4); - - if (data.id != null) { - id += '-' + data.id.toString(); - } else { - id += '-' + Utils.generateChars(4); - } - return id; - }; - - return BaseAdapter; -}); diff --git a/admin/bower_components/select2/src/js/select2/data/maximumInputLength.js b/admin/bower_components/select2/src/js/select2/data/maximumInputLength.js deleted file mode 100644 index f303ba8..0000000 --- a/admin/bower_components/select2/src/js/select2/data/maximumInputLength.js +++ /dev/null @@ -1,31 +0,0 @@ -define([ - -], function () { - function MaximumInputLength (decorated, $e, options) { - this.maximumInputLength = options.get('maximumInputLength'); - - decorated.call(this, $e, options); - } - - MaximumInputLength.prototype.query = function (decorated, params, callback) { - params.term = params.term || ''; - - if (this.maximumInputLength > 0 && - params.term.length > this.maximumInputLength) { - this.trigger('results:message', { - message: 'inputTooLong', - args: { - maximum: this.maximumInputLength, - input: params.term, - params: params - } - }); - - return; - } - - decorated.call(this, params, callback); - }; - - return MaximumInputLength; -}); diff --git a/admin/bower_components/select2/src/js/select2/data/maximumSelectionLength.js b/admin/bower_components/select2/src/js/select2/data/maximumSelectionLength.js deleted file mode 100644 index ae72752..0000000 --- a/admin/bower_components/select2/src/js/select2/data/maximumSelectionLength.js +++ /dev/null @@ -1,31 +0,0 @@ -define([ - -], function (){ - function MaximumSelectionLength (decorated, $e, options) { - this.maximumSelectionLength = options.get('maximumSelectionLength'); - - decorated.call(this, $e, options); - } - - MaximumSelectionLength.prototype.query = - function (decorated, params, callback) { - var self = this; - - this.current(function (currentData) { - var count = currentData != null ? currentData.length : 0; - if (self.maximumSelectionLength > 0 && - count >= self.maximumSelectionLength) { - self.trigger('results:message', { - message: 'maximumSelected', - args: { - maximum: self.maximumSelectionLength - } - }); - return; - } - decorated.call(self, params, callback); - }); - }; - - return MaximumSelectionLength; -}); diff --git a/admin/bower_components/select2/src/js/select2/data/minimumInputLength.js b/admin/bower_components/select2/src/js/select2/data/minimumInputLength.js deleted file mode 100644 index c19f71c..0000000 --- a/admin/bower_components/select2/src/js/select2/data/minimumInputLength.js +++ /dev/null @@ -1,30 +0,0 @@ -define([ - -], function () { - function MinimumInputLength (decorated, $e, options) { - this.minimumInputLength = options.get('minimumInputLength'); - - decorated.call(this, $e, options); - } - - MinimumInputLength.prototype.query = function (decorated, params, callback) { - params.term = params.term || ''; - - if (params.term.length < this.minimumInputLength) { - this.trigger('results:message', { - message: 'inputTooShort', - args: { - minimum: this.minimumInputLength, - input: params.term, - params: params - } - }); - - return; - } - - decorated.call(this, params, callback); - }; - - return MinimumInputLength; -}); diff --git a/admin/bower_components/select2/src/js/select2/data/select.js b/admin/bower_components/select2/src/js/select2/data/select.js deleted file mode 100644 index 6865a47..0000000 --- a/admin/bower_components/select2/src/js/select2/data/select.js +++ /dev/null @@ -1,285 +0,0 @@ -define([ - './base', - '../utils', - 'jquery' -], function (BaseAdapter, Utils, $) { - function SelectAdapter ($element, options) { - this.$element = $element; - this.options = options; - - SelectAdapter.__super__.constructor.call(this); - } - - Utils.Extend(SelectAdapter, BaseAdapter); - - SelectAdapter.prototype.current = function (callback) { - var data = []; - var self = this; - - this.$element.find(':selected').each(function () { - var $option = $(this); - - var option = self.item($option); - - data.push(option); - }); - - callback(data); - }; - - SelectAdapter.prototype.select = function (data) { - var self = this; - - data.selected = true; - - // If data.element is a DOM node, use it instead - if ($(data.element).is('option')) { - data.element.selected = true; - - this.$element.trigger('change'); - - return; - } - - if (this.$element.prop('multiple')) { - this.current(function (currentData) { - var val = []; - - data = [data]; - data.push.apply(data, currentData); - - for (var d = 0; d < data.length; d++) { - var id = data[d].id; - - if ($.inArray(id, val) === -1) { - val.push(id); - } - } - - self.$element.val(val); - self.$element.trigger('change'); - }); - } else { - var val = data.id; - - this.$element.val(val); - this.$element.trigger('change'); - } - }; - - SelectAdapter.prototype.unselect = function (data) { - var self = this; - - if (!this.$element.prop('multiple')) { - return; - } - - data.selected = false; - - if ($(data.element).is('option')) { - data.element.selected = false; - - this.$element.trigger('change'); - - return; - } - - this.current(function (currentData) { - var val = []; - - for (var d = 0; d < currentData.length; d++) { - var id = currentData[d].id; - - if (id !== data.id && $.inArray(id, val) === -1) { - val.push(id); - } - } - - self.$element.val(val); - - self.$element.trigger('change'); - }); - }; - - SelectAdapter.prototype.bind = function (container, $container) { - var self = this; - - this.container = container; - - container.on('select', function (params) { - self.select(params.data); - }); - - container.on('unselect', function (params) { - self.unselect(params.data); - }); - }; - - SelectAdapter.prototype.destroy = function () { - // Remove anything added to child elements - this.$element.find('*').each(function () { - // Remove any custom data set by Select2 - $.removeData(this, 'data'); - }); - }; - - SelectAdapter.prototype.query = function (params, callback) { - var data = []; - var self = this; - - var $options = this.$element.children(); - - $options.each(function () { - var $option = $(this); - - if (!$option.is('option') && !$option.is('optgroup')) { - return; - } - - var option = self.item($option); - - var matches = self.matches(params, option); - - if (matches !== null) { - data.push(matches); - } - }); - - callback({ - results: data - }); - }; - - SelectAdapter.prototype.addOptions = function ($options) { - Utils.appendMany(this.$element, $options); - }; - - SelectAdapter.prototype.option = function (data) { - var option; - - if (data.children) { - option = document.createElement('optgroup'); - option.label = data.text; - } else { - option = document.createElement('option'); - - if (option.textContent !== undefined) { - option.textContent = data.text; - } else { - option.innerText = data.text; - } - } - - if (data.id !== undefined) { - option.value = data.id; - } - - if (data.disabled) { - option.disabled = true; - } - - if (data.selected) { - option.selected = true; - } - - if (data.title) { - option.title = data.title; - } - - var $option = $(option); - - var normalizedData = this._normalizeItem(data); - normalizedData.element = option; - - // Override the option's data with the combined data - $.data(option, 'data', normalizedData); - - return $option; - }; - - SelectAdapter.prototype.item = function ($option) { - var data = {}; - - data = $.data($option[0], 'data'); - - if (data != null) { - return data; - } - - if ($option.is('option')) { - data = { - id: $option.val(), - text: $option.text(), - disabled: $option.prop('disabled'), - selected: $option.prop('selected'), - title: $option.prop('title') - }; - } else if ($option.is('optgroup')) { - data = { - text: $option.prop('label'), - children: [], - title: $option.prop('title') - }; - - var $children = $option.children('option'); - var children = []; - - for (var c = 0; c < $children.length; c++) { - var $child = $($children[c]); - - var child = this.item($child); - - children.push(child); - } - - data.children = children; - } - - data = this._normalizeItem(data); - data.element = $option[0]; - - $.data($option[0], 'data', data); - - return data; - }; - - SelectAdapter.prototype._normalizeItem = function (item) { - if (!$.isPlainObject(item)) { - item = { - id: item, - text: item - }; - } - - item = $.extend({}, { - text: '' - }, item); - - var defaults = { - selected: false, - disabled: false - }; - - if (item.id != null) { - item.id = item.id.toString(); - } - - if (item.text != null) { - item.text = item.text.toString(); - } - - if (item._resultId == null && item.id && this.container != null) { - item._resultId = this.generateResultId(this.container, item); - } - - return $.extend({}, defaults, item); - }; - - SelectAdapter.prototype.matches = function (params, data) { - var matcher = this.options.get('matcher'); - - return matcher(params, data); - }; - - return SelectAdapter; -}); diff --git a/admin/bower_components/select2/src/js/select2/data/tags.js b/admin/bower_components/select2/src/js/select2/data/tags.js deleted file mode 100644 index 7bb45c9..0000000 --- a/admin/bower_components/select2/src/js/select2/data/tags.js +++ /dev/null @@ -1,128 +0,0 @@ -define([ - 'jquery' -], function ($) { - function Tags (decorated, $element, options) { - var tags = options.get('tags'); - - var createTag = options.get('createTag'); - - if (createTag !== undefined) { - this.createTag = createTag; - } - - var insertTag = options.get('insertTag'); - - if (insertTag !== undefined) { - this.insertTag = insertTag; - } - - decorated.call(this, $element, options); - - if ($.isArray(tags)) { - for (var t = 0; t < tags.length; t++) { - var tag = tags[t]; - var item = this._normalizeItem(tag); - - var $option = this.option(item); - - this.$element.append($option); - } - } - } - - Tags.prototype.query = function (decorated, params, callback) { - var self = this; - - this._removeOldTags(); - - if (params.term == null || params.page != null) { - decorated.call(this, params, callback); - return; - } - - function wrapper (obj, child) { - var data = obj.results; - - for (var i = 0; i < data.length; i++) { - var option = data[i]; - - var checkChildren = ( - option.children != null && - !wrapper({ - results: option.children - }, true) - ); - - var optionText = (option.text || '').toUpperCase(); - var paramsTerm = (params.term || '').toUpperCase(); - - var checkText = optionText === paramsTerm; - - if (checkText || checkChildren) { - if (child) { - return false; - } - - obj.data = data; - callback(obj); - - return; - } - } - - if (child) { - return true; - } - - var tag = self.createTag(params); - - if (tag != null) { - var $option = self.option(tag); - $option.attr('data-select2-tag', true); - - self.addOptions([$option]); - - self.insertTag(data, tag); - } - - obj.results = data; - - callback(obj); - } - - decorated.call(this, params, wrapper); - }; - - Tags.prototype.createTag = function (decorated, params) { - var term = $.trim(params.term); - - if (term === '') { - return null; - } - - return { - id: term, - text: term - }; - }; - - Tags.prototype.insertTag = function (_, data, tag) { - data.unshift(tag); - }; - - Tags.prototype._removeOldTags = function (_) { - var tag = this._lastTag; - - var $options = this.$element.find('option[data-select2-tag]'); - - $options.each(function () { - if (this.selected) { - return; - } - - $(this).remove(); - }); - }; - - return Tags; -}); diff --git a/admin/bower_components/select2/src/js/select2/data/tokenizer.js b/admin/bower_components/select2/src/js/select2/data/tokenizer.js deleted file mode 100644 index 7757655..0000000 --- a/admin/bower_components/select2/src/js/select2/data/tokenizer.js +++ /dev/null @@ -1,116 +0,0 @@ -define([ - 'jquery' -], function ($) { - function Tokenizer (decorated, $element, options) { - var tokenizer = options.get('tokenizer'); - - if (tokenizer !== undefined) { - this.tokenizer = tokenizer; - } - - decorated.call(this, $element, options); - } - - Tokenizer.prototype.bind = function (decorated, container, $container) { - decorated.call(this, container, $container); - - this.$search = container.dropdown.$search || container.selection.$search || - $container.find('.select2-search__field'); - }; - - Tokenizer.prototype.query = function (decorated, params, callback) { - var self = this; - - function createAndSelect (data) { - // Normalize the data object so we can use it for checks - var item = self._normalizeItem(data); - - // Check if the data object already exists as a tag - // Select it if it doesn't - var $existingOptions = self.$element.find('option').filter(function () { - return $(this).val() === item.id; - }); - - // If an existing option wasn't found for it, create the option - if (!$existingOptions.length) { - var $option = self.option(item); - $option.attr('data-select2-tag', true); - - self._removeOldTags(); - self.addOptions([$option]); - } - - // Select the item, now that we know there is an option for it - select(item); - } - - function select (data) { - self.trigger('select', { - data: data - }); - } - - params.term = params.term || ''; - - var tokenData = this.tokenizer(params, this.options, createAndSelect); - - if (tokenData.term !== params.term) { - // Replace the search term if we have the search box - if (this.$search.length) { - this.$search.val(tokenData.term); - this.$search.focus(); - } - - params.term = tokenData.term; - } - - decorated.call(this, params, callback); - }; - - Tokenizer.prototype.tokenizer = function (_, params, options, callback) { - var separators = options.get('tokenSeparators') || []; - var term = params.term; - var i = 0; - - var createTag = this.createTag || function (params) { - return { - id: params.term, - text: params.term - }; - }; - - while (i < term.length) { - var termChar = term[i]; - - if ($.inArray(termChar, separators) === -1) { - i++; - - continue; - } - - var part = term.substr(0, i); - var partParams = $.extend({}, params, { - term: part - }); - - var data = createTag(partParams); - - if (data == null) { - i++; - continue; - } - - callback(data); - - // Reset the term to not include the tokenized portion - term = term.substr(i + 1) || ''; - i = 0; - } - - return { - term: term - }; - }; - - return Tokenizer; -}); diff --git a/admin/bower_components/select2/src/js/select2/defaults.js b/admin/bower_components/select2/src/js/select2/defaults.js deleted file mode 100644 index ad4d224..0000000 --- a/admin/bower_components/select2/src/js/select2/defaults.js +++ /dev/null @@ -1,396 +0,0 @@ -define([ - 'jquery', - 'require', - - './results', - - './selection/single', - './selection/multiple', - './selection/placeholder', - './selection/allowClear', - './selection/search', - './selection/eventRelay', - - './utils', - './translation', - './diacritics', - - './data/select', - './data/array', - './data/ajax', - './data/tags', - './data/tokenizer', - './data/minimumInputLength', - './data/maximumInputLength', - './data/maximumSelectionLength', - - './dropdown', - './dropdown/search', - './dropdown/hidePlaceholder', - './dropdown/infiniteScroll', - './dropdown/attachBody', - './dropdown/minimumResultsForSearch', - './dropdown/selectOnClose', - './dropdown/closeOnSelect', - - './i18n/en' -], function ($, require, - - ResultsList, - - SingleSelection, MultipleSelection, Placeholder, AllowClear, - SelectionSearch, EventRelay, - - Utils, Translation, DIACRITICS, - - SelectData, ArrayData, AjaxData, Tags, Tokenizer, - MinimumInputLength, MaximumInputLength, MaximumSelectionLength, - - Dropdown, DropdownSearch, HidePlaceholder, InfiniteScroll, - AttachBody, MinimumResultsForSearch, SelectOnClose, CloseOnSelect, - - EnglishTranslation) { - function Defaults () { - this.reset(); - } - - Defaults.prototype.apply = function (options) { - options = $.extend(true, {}, this.defaults, options); - - if (options.dataAdapter == null) { - if (options.ajax != null) { - options.dataAdapter = AjaxData; - } else if (options.data != null) { - options.dataAdapter = ArrayData; - } else { - options.dataAdapter = SelectData; - } - - if (options.minimumInputLength > 0) { - options.dataAdapter = Utils.Decorate( - options.dataAdapter, - MinimumInputLength - ); - } - - if (options.maximumInputLength > 0) { - options.dataAdapter = Utils.Decorate( - options.dataAdapter, - MaximumInputLength - ); - } - - if (options.maximumSelectionLength > 0) { - options.dataAdapter = Utils.Decorate( - options.dataAdapter, - MaximumSelectionLength - ); - } - - if (options.tags) { - options.dataAdapter = Utils.Decorate(options.dataAdapter, Tags); - } - - if (options.tokenSeparators != null || options.tokenizer != null) { - options.dataAdapter = Utils.Decorate( - options.dataAdapter, - Tokenizer - ); - } - - if (options.query != null) { - var Query = require(options.amdBase + 'compat/query'); - - options.dataAdapter = Utils.Decorate( - options.dataAdapter, - Query - ); - } - - if (options.initSelection != null) { - var InitSelection = require(options.amdBase + 'compat/initSelection'); - - options.dataAdapter = Utils.Decorate( - options.dataAdapter, - InitSelection - ); - } - } - - if (options.resultsAdapter == null) { - options.resultsAdapter = ResultsList; - - if (options.ajax != null) { - options.resultsAdapter = Utils.Decorate( - options.resultsAdapter, - InfiniteScroll - ); - } - - if (options.placeholder != null) { - options.resultsAdapter = Utils.Decorate( - options.resultsAdapter, - HidePlaceholder - ); - } - - if (options.selectOnClose) { - options.resultsAdapter = Utils.Decorate( - options.resultsAdapter, - SelectOnClose - ); - } - } - - if (options.dropdownAdapter == null) { - if (options.multiple) { - options.dropdownAdapter = Dropdown; - } else { - var SearchableDropdown = Utils.Decorate(Dropdown, DropdownSearch); - - options.dropdownAdapter = SearchableDropdown; - } - - if (options.minimumResultsForSearch !== 0) { - options.dropdownAdapter = Utils.Decorate( - options.dropdownAdapter, - MinimumResultsForSearch - ); - } - - if (options.closeOnSelect) { - options.dropdownAdapter = Utils.Decorate( - options.dropdownAdapter, - CloseOnSelect - ); - } - - if ( - options.dropdownCssClass != null || - options.dropdownCss != null || - options.adaptDropdownCssClass != null - ) { - var DropdownCSS = require(options.amdBase + 'compat/dropdownCss'); - - options.dropdownAdapter = Utils.Decorate( - options.dropdownAdapter, - DropdownCSS - ); - } - - options.dropdownAdapter = Utils.Decorate( - options.dropdownAdapter, - AttachBody - ); - } - - if (options.selectionAdapter == null) { - if (options.multiple) { - options.selectionAdapter = MultipleSelection; - } else { - options.selectionAdapter = SingleSelection; - } - - // Add the placeholder mixin if a placeholder was specified - if (options.placeholder != null) { - options.selectionAdapter = Utils.Decorate( - options.selectionAdapter, - Placeholder - ); - } - - if (options.allowClear) { - options.selectionAdapter = Utils.Decorate( - options.selectionAdapter, - AllowClear - ); - } - - if (options.multiple) { - options.selectionAdapter = Utils.Decorate( - options.selectionAdapter, - SelectionSearch - ); - } - - if ( - options.containerCssClass != null || - options.containerCss != null || - options.adaptContainerCssClass != null - ) { - var ContainerCSS = require(options.amdBase + 'compat/containerCss'); - - options.selectionAdapter = Utils.Decorate( - options.selectionAdapter, - ContainerCSS - ); - } - - options.selectionAdapter = Utils.Decorate( - options.selectionAdapter, - EventRelay - ); - } - - if (typeof options.language === 'string') { - // Check if the language is specified with a region - if (options.language.indexOf('-') > 0) { - // Extract the region information if it is included - var languageParts = options.language.split('-'); - var baseLanguage = languageParts[0]; - - options.language = [options.language, baseLanguage]; - } else { - options.language = [options.language]; - } - } - - if ($.isArray(options.language)) { - var languages = new Translation(); - options.language.push('en'); - - var languageNames = options.language; - - for (var l = 0; l < languageNames.length; l++) { - var name = languageNames[l]; - var language = {}; - - try { - // Try to load it with the original name - language = Translation.loadPath(name); - } catch (e) { - try { - // If we couldn't load it, check if it wasn't the full path - name = this.defaults.amdLanguageBase + name; - language = Translation.loadPath(name); - } catch (ex) { - // The translation could not be loaded at all. Sometimes this is - // because of a configuration problem, other times this can be - // because of how Select2 helps load all possible translation files. - if (options.debug && window.console && console.warn) { - console.warn( - 'Select2: The language file for "' + name + '" could not be ' + - 'automatically loaded. A fallback will be used instead.' - ); - } - - continue; - } - } - - languages.extend(language); - } - - options.translations = languages; - } else { - var baseTranslation = Translation.loadPath( - this.defaults.amdLanguageBase + 'en' - ); - var customTranslation = new Translation(options.language); - - customTranslation.extend(baseTranslation); - - options.translations = customTranslation; - } - - return options; - }; - - Defaults.prototype.reset = function () { - function stripDiacritics (text) { - // Used 'uni range + named function' from http://jsperf.com/diacritics/18 - function match(a) { - return DIACRITICS[a] || a; - } - - return text.replace(/[^\u0000-\u007E]/g, match); - } - - function matcher (params, data) { - // Always return the object if there is nothing to compare - if ($.trim(params.term) === '') { - return data; - } - - // Do a recursive check for options with children - if (data.children && data.children.length > 0) { - // Clone the data object if there are children - // This is required as we modify the object to remove any non-matches - var match = $.extend(true, {}, data); - - // Check each child of the option - for (var c = data.children.length - 1; c >= 0; c--) { - var child = data.children[c]; - - var matches = matcher(params, child); - - // If there wasn't a match, remove the object in the array - if (matches == null) { - match.children.splice(c, 1); - } - } - - // If any children matched, return the new object - if (match.children.length > 0) { - return match; - } - - // If there were no matching children, check just the plain object - return matcher(params, match); - } - - var original = stripDiacritics(data.text).toUpperCase(); - var term = stripDiacritics(params.term).toUpperCase(); - - // Check if the text contains the term - if (original.indexOf(term) > -1) { - return data; - } - - // If it doesn't contain the term, don't return anything - return null; - } - - this.defaults = { - amdBase: './', - amdLanguageBase: './i18n/', - closeOnSelect: true, - debug: false, - dropdownAutoWidth: false, - escapeMarkup: Utils.escapeMarkup, - language: EnglishTranslation, - matcher: matcher, - minimumInputLength: 0, - maximumInputLength: 0, - maximumSelectionLength: 0, - minimumResultsForSearch: 0, - selectOnClose: false, - sorter: function (data) { - return data; - }, - templateResult: function (result) { - return result.text; - }, - templateSelection: function (selection) { - return selection.text; - }, - theme: 'default', - width: 'resolve' - }; - }; - - Defaults.prototype.set = function (key, value) { - var camelKey = $.camelCase(key); - - var data = {}; - data[camelKey] = value; - - var convertedData = Utils._convertData(data); - - $.extend(this.defaults, convertedData); - }; - - var defaults = new Defaults(); - - return defaults; -}); diff --git a/admin/bower_components/select2/src/js/select2/diacritics.js b/admin/bower_components/select2/src/js/select2/diacritics.js deleted file mode 100644 index c99ae61..0000000 --- a/admin/bower_components/select2/src/js/select2/diacritics.js +++ /dev/null @@ -1,847 +0,0 @@ -define([ - -], function () { - var diacritics = { - '\u24B6': 'A', - '\uFF21': 'A', - '\u00C0': 'A', - '\u00C1': 'A', - '\u00C2': 'A', - '\u1EA6': 'A', - '\u1EA4': 'A', - '\u1EAA': 'A', - '\u1EA8': 'A', - '\u00C3': 'A', - '\u0100': 'A', - '\u0102': 'A', - '\u1EB0': 'A', - '\u1EAE': 'A', - '\u1EB4': 'A', - '\u1EB2': 'A', - '\u0226': 'A', - '\u01E0': 'A', - '\u00C4': 'A', - '\u01DE': 'A', - '\u1EA2': 'A', - '\u00C5': 'A', - '\u01FA': 'A', - '\u01CD': 'A', - '\u0200': 'A', - '\u0202': 'A', - '\u1EA0': 'A', - '\u1EAC': 'A', - '\u1EB6': 'A', - '\u1E00': 'A', - '\u0104': 'A', - '\u023A': 'A', - '\u2C6F': 'A', - '\uA732': 'AA', - '\u00C6': 'AE', - '\u01FC': 'AE', - '\u01E2': 'AE', - '\uA734': 'AO', - '\uA736': 'AU', - '\uA738': 'AV', - '\uA73A': 'AV', - '\uA73C': 'AY', - '\u24B7': 'B', - '\uFF22': 'B', - '\u1E02': 'B', - '\u1E04': 'B', - '\u1E06': 'B', - '\u0243': 'B', - '\u0182': 'B', - '\u0181': 'B', - '\u24B8': 'C', - '\uFF23': 'C', - '\u0106': 'C', - '\u0108': 'C', - '\u010A': 'C', - '\u010C': 'C', - '\u00C7': 'C', - '\u1E08': 'C', - '\u0187': 'C', - '\u023B': 'C', - '\uA73E': 'C', - '\u24B9': 'D', - '\uFF24': 'D', - '\u1E0A': 'D', - '\u010E': 'D', - '\u1E0C': 'D', - '\u1E10': 'D', - '\u1E12': 'D', - '\u1E0E': 'D', - '\u0110': 'D', - '\u018B': 'D', - '\u018A': 'D', - '\u0189': 'D', - '\uA779': 'D', - '\u01F1': 'DZ', - '\u01C4': 'DZ', - '\u01F2': 'Dz', - '\u01C5': 'Dz', - '\u24BA': 'E', - '\uFF25': 'E', - '\u00C8': 'E', - '\u00C9': 'E', - '\u00CA': 'E', - '\u1EC0': 'E', - '\u1EBE': 'E', - '\u1EC4': 'E', - '\u1EC2': 'E', - '\u1EBC': 'E', - '\u0112': 'E', - '\u1E14': 'E', - '\u1E16': 'E', - '\u0114': 'E', - '\u0116': 'E', - '\u00CB': 'E', - '\u1EBA': 'E', - '\u011A': 'E', - '\u0204': 'E', - '\u0206': 'E', - '\u1EB8': 'E', - '\u1EC6': 'E', - '\u0228': 'E', - '\u1E1C': 'E', - '\u0118': 'E', - '\u1E18': 'E', - '\u1E1A': 'E', - '\u0190': 'E', - '\u018E': 'E', - '\u24BB': 'F', - '\uFF26': 'F', - '\u1E1E': 'F', - '\u0191': 'F', - '\uA77B': 'F', - '\u24BC': 'G', - '\uFF27': 'G', - '\u01F4': 'G', - '\u011C': 'G', - '\u1E20': 'G', - '\u011E': 'G', - '\u0120': 'G', - '\u01E6': 'G', - '\u0122': 'G', - '\u01E4': 'G', - '\u0193': 'G', - '\uA7A0': 'G', - '\uA77D': 'G', - '\uA77E': 'G', - '\u24BD': 'H', - '\uFF28': 'H', - '\u0124': 'H', - '\u1E22': 'H', - '\u1E26': 'H', - '\u021E': 'H', - '\u1E24': 'H', - '\u1E28': 'H', - '\u1E2A': 'H', - '\u0126': 'H', - '\u2C67': 'H', - '\u2C75': 'H', - '\uA78D': 'H', - '\u24BE': 'I', - '\uFF29': 'I', - '\u00CC': 'I', - '\u00CD': 'I', - '\u00CE': 'I', - '\u0128': 'I', - '\u012A': 'I', - '\u012C': 'I', - '\u0130': 'I', - '\u00CF': 'I', - '\u1E2E': 'I', - '\u1EC8': 'I', - '\u01CF': 'I', - '\u0208': 'I', - '\u020A': 'I', - '\u1ECA': 'I', - '\u012E': 'I', - '\u1E2C': 'I', - '\u0197': 'I', - '\u24BF': 'J', - '\uFF2A': 'J', - '\u0134': 'J', - '\u0248': 'J', - '\u24C0': 'K', - '\uFF2B': 'K', - '\u1E30': 'K', - '\u01E8': 'K', - '\u1E32': 'K', - '\u0136': 'K', - '\u1E34': 'K', - '\u0198': 'K', - '\u2C69': 'K', - '\uA740': 'K', - '\uA742': 'K', - '\uA744': 'K', - '\uA7A2': 'K', - '\u24C1': 'L', - '\uFF2C': 'L', - '\u013F': 'L', - '\u0139': 'L', - '\u013D': 'L', - '\u1E36': 'L', - '\u1E38': 'L', - '\u013B': 'L', - '\u1E3C': 'L', - '\u1E3A': 'L', - '\u0141': 'L', - '\u023D': 'L', - '\u2C62': 'L', - '\u2C60': 'L', - '\uA748': 'L', - '\uA746': 'L', - '\uA780': 'L', - '\u01C7': 'LJ', - '\u01C8': 'Lj', - '\u24C2': 'M', - '\uFF2D': 'M', - '\u1E3E': 'M', - '\u1E40': 'M', - '\u1E42': 'M', - '\u2C6E': 'M', - '\u019C': 'M', - '\u24C3': 'N', - '\uFF2E': 'N', - '\u01F8': 'N', - '\u0143': 'N', - '\u00D1': 'N', - '\u1E44': 'N', - '\u0147': 'N', - '\u1E46': 'N', - '\u0145': 'N', - '\u1E4A': 'N', - '\u1E48': 'N', - '\u0220': 'N', - '\u019D': 'N', - '\uA790': 'N', - '\uA7A4': 'N', - '\u01CA': 'NJ', - '\u01CB': 'Nj', - '\u24C4': 'O', - '\uFF2F': 'O', - '\u00D2': 'O', - '\u00D3': 'O', - '\u00D4': 'O', - '\u1ED2': 'O', - '\u1ED0': 'O', - '\u1ED6': 'O', - '\u1ED4': 'O', - '\u00D5': 'O', - '\u1E4C': 'O', - '\u022C': 'O', - '\u1E4E': 'O', - '\u014C': 'O', - '\u1E50': 'O', - '\u1E52': 'O', - '\u014E': 'O', - '\u022E': 'O', - '\u0230': 'O', - '\u00D6': 'O', - '\u022A': 'O', - '\u1ECE': 'O', - '\u0150': 'O', - '\u01D1': 'O', - '\u020C': 'O', - '\u020E': 'O', - '\u01A0': 'O', - '\u1EDC': 'O', - '\u1EDA': 'O', - '\u1EE0': 'O', - '\u1EDE': 'O', - '\u1EE2': 'O', - '\u1ECC': 'O', - '\u1ED8': 'O', - '\u01EA': 'O', - '\u01EC': 'O', - '\u00D8': 'O', - '\u01FE': 'O', - '\u0186': 'O', - '\u019F': 'O', - '\uA74A': 'O', - '\uA74C': 'O', - '\u01A2': 'OI', - '\uA74E': 'OO', - '\u0222': 'OU', - '\u24C5': 'P', - '\uFF30': 'P', - '\u1E54': 'P', - '\u1E56': 'P', - '\u01A4': 'P', - '\u2C63': 'P', - '\uA750': 'P', - '\uA752': 'P', - '\uA754': 'P', - '\u24C6': 'Q', - '\uFF31': 'Q', - '\uA756': 'Q', - '\uA758': 'Q', - '\u024A': 'Q', - '\u24C7': 'R', - '\uFF32': 'R', - '\u0154': 'R', - '\u1E58': 'R', - '\u0158': 'R', - '\u0210': 'R', - '\u0212': 'R', - '\u1E5A': 'R', - '\u1E5C': 'R', - '\u0156': 'R', - '\u1E5E': 'R', - '\u024C': 'R', - '\u2C64': 'R', - '\uA75A': 'R', - '\uA7A6': 'R', - '\uA782': 'R', - '\u24C8': 'S', - '\uFF33': 'S', - '\u1E9E': 'S', - '\u015A': 'S', - '\u1E64': 'S', - '\u015C': 'S', - '\u1E60': 'S', - '\u0160': 'S', - '\u1E66': 'S', - '\u1E62': 'S', - '\u1E68': 'S', - '\u0218': 'S', - '\u015E': 'S', - '\u2C7E': 'S', - '\uA7A8': 'S', - '\uA784': 'S', - '\u24C9': 'T', - '\uFF34': 'T', - '\u1E6A': 'T', - '\u0164': 'T', - '\u1E6C': 'T', - '\u021A': 'T', - '\u0162': 'T', - '\u1E70': 'T', - '\u1E6E': 'T', - '\u0166': 'T', - '\u01AC': 'T', - '\u01AE': 'T', - '\u023E': 'T', - '\uA786': 'T', - '\uA728': 'TZ', - '\u24CA': 'U', - '\uFF35': 'U', - '\u00D9': 'U', - '\u00DA': 'U', - '\u00DB': 'U', - '\u0168': 'U', - '\u1E78': 'U', - '\u016A': 'U', - '\u1E7A': 'U', - '\u016C': 'U', - '\u00DC': 'U', - '\u01DB': 'U', - '\u01D7': 'U', - '\u01D5': 'U', - '\u01D9': 'U', - '\u1EE6': 'U', - '\u016E': 'U', - '\u0170': 'U', - '\u01D3': 'U', - '\u0214': 'U', - '\u0216': 'U', - '\u01AF': 'U', - '\u1EEA': 'U', - '\u1EE8': 'U', - '\u1EEE': 'U', - '\u1EEC': 'U', - '\u1EF0': 'U', - '\u1EE4': 'U', - '\u1E72': 'U', - '\u0172': 'U', - '\u1E76': 'U', - '\u1E74': 'U', - '\u0244': 'U', - '\u24CB': 'V', - '\uFF36': 'V', - '\u1E7C': 'V', - '\u1E7E': 'V', - '\u01B2': 'V', - '\uA75E': 'V', - '\u0245': 'V', - '\uA760': 'VY', - '\u24CC': 'W', - '\uFF37': 'W', - '\u1E80': 'W', - '\u1E82': 'W', - '\u0174': 'W', - '\u1E86': 'W', - '\u1E84': 'W', - '\u1E88': 'W', - '\u2C72': 'W', - '\u24CD': 'X', - '\uFF38': 'X', - '\u1E8A': 'X', - '\u1E8C': 'X', - '\u24CE': 'Y', - '\uFF39': 'Y', - '\u1EF2': 'Y', - '\u00DD': 'Y', - '\u0176': 'Y', - '\u1EF8': 'Y', - '\u0232': 'Y', - '\u1E8E': 'Y', - '\u0178': 'Y', - '\u1EF6': 'Y', - '\u1EF4': 'Y', - '\u01B3': 'Y', - '\u024E': 'Y', - '\u1EFE': 'Y', - '\u24CF': 'Z', - '\uFF3A': 'Z', - '\u0179': 'Z', - '\u1E90': 'Z', - '\u017B': 'Z', - '\u017D': 'Z', - '\u1E92': 'Z', - '\u1E94': 'Z', - '\u01B5': 'Z', - '\u0224': 'Z', - '\u2C7F': 'Z', - '\u2C6B': 'Z', - '\uA762': 'Z', - '\u24D0': 'a', - '\uFF41': 'a', - '\u1E9A': 'a', - '\u00E0': 'a', - '\u00E1': 'a', - '\u00E2': 'a', - '\u1EA7': 'a', - '\u1EA5': 'a', - '\u1EAB': 'a', - '\u1EA9': 'a', - '\u00E3': 'a', - '\u0101': 'a', - '\u0103': 'a', - '\u1EB1': 'a', - '\u1EAF': 'a', - '\u1EB5': 'a', - '\u1EB3': 'a', - '\u0227': 'a', - '\u01E1': 'a', - '\u00E4': 'a', - '\u01DF': 'a', - '\u1EA3': 'a', - '\u00E5': 'a', - '\u01FB': 'a', - '\u01CE': 'a', - '\u0201': 'a', - '\u0203': 'a', - '\u1EA1': 'a', - '\u1EAD': 'a', - '\u1EB7': 'a', - '\u1E01': 'a', - '\u0105': 'a', - '\u2C65': 'a', - '\u0250': 'a', - '\uA733': 'aa', - '\u00E6': 'ae', - '\u01FD': 'ae', - '\u01E3': 'ae', - '\uA735': 'ao', - '\uA737': 'au', - '\uA739': 'av', - '\uA73B': 'av', - '\uA73D': 'ay', - '\u24D1': 'b', - '\uFF42': 'b', - '\u1E03': 'b', - '\u1E05': 'b', - '\u1E07': 'b', - '\u0180': 'b', - '\u0183': 'b', - '\u0253': 'b', - '\u24D2': 'c', - '\uFF43': 'c', - '\u0107': 'c', - '\u0109': 'c', - '\u010B': 'c', - '\u010D': 'c', - '\u00E7': 'c', - '\u1E09': 'c', - '\u0188': 'c', - '\u023C': 'c', - '\uA73F': 'c', - '\u2184': 'c', - '\u24D3': 'd', - '\uFF44': 'd', - '\u1E0B': 'd', - '\u010F': 'd', - '\u1E0D': 'd', - '\u1E11': 'd', - '\u1E13': 'd', - '\u1E0F': 'd', - '\u0111': 'd', - '\u018C': 'd', - '\u0256': 'd', - '\u0257': 'd', - '\uA77A': 'd', - '\u01F3': 'dz', - '\u01C6': 'dz', - '\u24D4': 'e', - '\uFF45': 'e', - '\u00E8': 'e', - '\u00E9': 'e', - '\u00EA': 'e', - '\u1EC1': 'e', - '\u1EBF': 'e', - '\u1EC5': 'e', - '\u1EC3': 'e', - '\u1EBD': 'e', - '\u0113': 'e', - '\u1E15': 'e', - '\u1E17': 'e', - '\u0115': 'e', - '\u0117': 'e', - '\u00EB': 'e', - '\u1EBB': 'e', - '\u011B': 'e', - '\u0205': 'e', - '\u0207': 'e', - '\u1EB9': 'e', - '\u1EC7': 'e', - '\u0229': 'e', - '\u1E1D': 'e', - '\u0119': 'e', - '\u1E19': 'e', - '\u1E1B': 'e', - '\u0247': 'e', - '\u025B': 'e', - '\u01DD': 'e', - '\u24D5': 'f', - '\uFF46': 'f', - '\u1E1F': 'f', - '\u0192': 'f', - '\uA77C': 'f', - '\u24D6': 'g', - '\uFF47': 'g', - '\u01F5': 'g', - '\u011D': 'g', - '\u1E21': 'g', - '\u011F': 'g', - '\u0121': 'g', - '\u01E7': 'g', - '\u0123': 'g', - '\u01E5': 'g', - '\u0260': 'g', - '\uA7A1': 'g', - '\u1D79': 'g', - '\uA77F': 'g', - '\u24D7': 'h', - '\uFF48': 'h', - '\u0125': 'h', - '\u1E23': 'h', - '\u1E27': 'h', - '\u021F': 'h', - '\u1E25': 'h', - '\u1E29': 'h', - '\u1E2B': 'h', - '\u1E96': 'h', - '\u0127': 'h', - '\u2C68': 'h', - '\u2C76': 'h', - '\u0265': 'h', - '\u0195': 'hv', - '\u24D8': 'i', - '\uFF49': 'i', - '\u00EC': 'i', - '\u00ED': 'i', - '\u00EE': 'i', - '\u0129': 'i', - '\u012B': 'i', - '\u012D': 'i', - '\u00EF': 'i', - '\u1E2F': 'i', - '\u1EC9': 'i', - '\u01D0': 'i', - '\u0209': 'i', - '\u020B': 'i', - '\u1ECB': 'i', - '\u012F': 'i', - '\u1E2D': 'i', - '\u0268': 'i', - '\u0131': 'i', - '\u24D9': 'j', - '\uFF4A': 'j', - '\u0135': 'j', - '\u01F0': 'j', - '\u0249': 'j', - '\u24DA': 'k', - '\uFF4B': 'k', - '\u1E31': 'k', - '\u01E9': 'k', - '\u1E33': 'k', - '\u0137': 'k', - '\u1E35': 'k', - '\u0199': 'k', - '\u2C6A': 'k', - '\uA741': 'k', - '\uA743': 'k', - '\uA745': 'k', - '\uA7A3': 'k', - '\u24DB': 'l', - '\uFF4C': 'l', - '\u0140': 'l', - '\u013A': 'l', - '\u013E': 'l', - '\u1E37': 'l', - '\u1E39': 'l', - '\u013C': 'l', - '\u1E3D': 'l', - '\u1E3B': 'l', - '\u017F': 'l', - '\u0142': 'l', - '\u019A': 'l', - '\u026B': 'l', - '\u2C61': 'l', - '\uA749': 'l', - '\uA781': 'l', - '\uA747': 'l', - '\u01C9': 'lj', - '\u24DC': 'm', - '\uFF4D': 'm', - '\u1E3F': 'm', - '\u1E41': 'm', - '\u1E43': 'm', - '\u0271': 'm', - '\u026F': 'm', - '\u24DD': 'n', - '\uFF4E': 'n', - '\u01F9': 'n', - '\u0144': 'n', - '\u00F1': 'n', - '\u1E45': 'n', - '\u0148': 'n', - '\u1E47': 'n', - '\u0146': 'n', - '\u1E4B': 'n', - '\u1E49': 'n', - '\u019E': 'n', - '\u0272': 'n', - '\u0149': 'n', - '\uA791': 'n', - '\uA7A5': 'n', - '\u01CC': 'nj', - '\u24DE': 'o', - '\uFF4F': 'o', - '\u00F2': 'o', - '\u00F3': 'o', - '\u00F4': 'o', - '\u1ED3': 'o', - '\u1ED1': 'o', - '\u1ED7': 'o', - '\u1ED5': 'o', - '\u00F5': 'o', - '\u1E4D': 'o', - '\u022D': 'o', - '\u1E4F': 'o', - '\u014D': 'o', - '\u1E51': 'o', - '\u1E53': 'o', - '\u014F': 'o', - '\u022F': 'o', - '\u0231': 'o', - '\u00F6': 'o', - '\u022B': 'o', - '\u1ECF': 'o', - '\u0151': 'o', - '\u01D2': 'o', - '\u020D': 'o', - '\u020F': 'o', - '\u01A1': 'o', - '\u1EDD': 'o', - '\u1EDB': 'o', - '\u1EE1': 'o', - '\u1EDF': 'o', - '\u1EE3': 'o', - '\u1ECD': 'o', - '\u1ED9': 'o', - '\u01EB': 'o', - '\u01ED': 'o', - '\u00F8': 'o', - '\u01FF': 'o', - '\u0254': 'o', - '\uA74B': 'o', - '\uA74D': 'o', - '\u0275': 'o', - '\u01A3': 'oi', - '\u0223': 'ou', - '\uA74F': 'oo', - '\u24DF': 'p', - '\uFF50': 'p', - '\u1E55': 'p', - '\u1E57': 'p', - '\u01A5': 'p', - '\u1D7D': 'p', - '\uA751': 'p', - '\uA753': 'p', - '\uA755': 'p', - '\u24E0': 'q', - '\uFF51': 'q', - '\u024B': 'q', - '\uA757': 'q', - '\uA759': 'q', - '\u24E1': 'r', - '\uFF52': 'r', - '\u0155': 'r', - '\u1E59': 'r', - '\u0159': 'r', - '\u0211': 'r', - '\u0213': 'r', - '\u1E5B': 'r', - '\u1E5D': 'r', - '\u0157': 'r', - '\u1E5F': 'r', - '\u024D': 'r', - '\u027D': 'r', - '\uA75B': 'r', - '\uA7A7': 'r', - '\uA783': 'r', - '\u24E2': 's', - '\uFF53': 's', - '\u00DF': 's', - '\u015B': 's', - '\u1E65': 's', - '\u015D': 's', - '\u1E61': 's', - '\u0161': 's', - '\u1E67': 's', - '\u1E63': 's', - '\u1E69': 's', - '\u0219': 's', - '\u015F': 's', - '\u023F': 's', - '\uA7A9': 's', - '\uA785': 's', - '\u1E9B': 's', - '\u24E3': 't', - '\uFF54': 't', - '\u1E6B': 't', - '\u1E97': 't', - '\u0165': 't', - '\u1E6D': 't', - '\u021B': 't', - '\u0163': 't', - '\u1E71': 't', - '\u1E6F': 't', - '\u0167': 't', - '\u01AD': 't', - '\u0288': 't', - '\u2C66': 't', - '\uA787': 't', - '\uA729': 'tz', - '\u24E4': 'u', - '\uFF55': 'u', - '\u00F9': 'u', - '\u00FA': 'u', - '\u00FB': 'u', - '\u0169': 'u', - '\u1E79': 'u', - '\u016B': 'u', - '\u1E7B': 'u', - '\u016D': 'u', - '\u00FC': 'u', - '\u01DC': 'u', - '\u01D8': 'u', - '\u01D6': 'u', - '\u01DA': 'u', - '\u1EE7': 'u', - '\u016F': 'u', - '\u0171': 'u', - '\u01D4': 'u', - '\u0215': 'u', - '\u0217': 'u', - '\u01B0': 'u', - '\u1EEB': 'u', - '\u1EE9': 'u', - '\u1EEF': 'u', - '\u1EED': 'u', - '\u1EF1': 'u', - '\u1EE5': 'u', - '\u1E73': 'u', - '\u0173': 'u', - '\u1E77': 'u', - '\u1E75': 'u', - '\u0289': 'u', - '\u24E5': 'v', - '\uFF56': 'v', - '\u1E7D': 'v', - '\u1E7F': 'v', - '\u028B': 'v', - '\uA75F': 'v', - '\u028C': 'v', - '\uA761': 'vy', - '\u24E6': 'w', - '\uFF57': 'w', - '\u1E81': 'w', - '\u1E83': 'w', - '\u0175': 'w', - '\u1E87': 'w', - '\u1E85': 'w', - '\u1E98': 'w', - '\u1E89': 'w', - '\u2C73': 'w', - '\u24E7': 'x', - '\uFF58': 'x', - '\u1E8B': 'x', - '\u1E8D': 'x', - '\u24E8': 'y', - '\uFF59': 'y', - '\u1EF3': 'y', - '\u00FD': 'y', - '\u0177': 'y', - '\u1EF9': 'y', - '\u0233': 'y', - '\u1E8F': 'y', - '\u00FF': 'y', - '\u1EF7': 'y', - '\u1E99': 'y', - '\u1EF5': 'y', - '\u01B4': 'y', - '\u024F': 'y', - '\u1EFF': 'y', - '\u24E9': 'z', - '\uFF5A': 'z', - '\u017A': 'z', - '\u1E91': 'z', - '\u017C': 'z', - '\u017E': 'z', - '\u1E93': 'z', - '\u1E95': 'z', - '\u01B6': 'z', - '\u0225': 'z', - '\u0240': 'z', - '\u2C6C': 'z', - '\uA763': 'z', - '\u0386': '\u0391', - '\u0388': '\u0395', - '\u0389': '\u0397', - '\u038A': '\u0399', - '\u03AA': '\u0399', - '\u038C': '\u039F', - '\u038E': '\u03A5', - '\u03AB': '\u03A5', - '\u038F': '\u03A9', - '\u03AC': '\u03B1', - '\u03AD': '\u03B5', - '\u03AE': '\u03B7', - '\u03AF': '\u03B9', - '\u03CA': '\u03B9', - '\u0390': '\u03B9', - '\u03CC': '\u03BF', - '\u03CD': '\u03C5', - '\u03CB': '\u03C5', - '\u03B0': '\u03C5', - '\u03C9': '\u03C9', - '\u03C2': '\u03C3' - }; - - return diacritics; -}); diff --git a/admin/bower_components/select2/src/js/select2/dropdown.js b/admin/bower_components/select2/src/js/select2/dropdown.js deleted file mode 100644 index a6fc40b..0000000 --- a/admin/bower_components/select2/src/js/select2/dropdown.js +++ /dev/null @@ -1,42 +0,0 @@ -define([ - 'jquery', - './utils' -], function ($, Utils) { - function Dropdown ($element, options) { - this.$element = $element; - this.options = options; - - Dropdown.__super__.constructor.call(this); - } - - Utils.Extend(Dropdown, Utils.Observable); - - Dropdown.prototype.render = function () { - var $dropdown = $( - '<span class="select2-dropdown">' + - '<span class="select2-results"></span>' + - '</span>' - ); - - $dropdown.attr('dir', this.options.get('dir')); - - this.$dropdown = $dropdown; - - return $dropdown; - }; - - Dropdown.prototype.bind = function () { - // Should be implemented in subclasses - }; - - Dropdown.prototype.position = function ($dropdown, $container) { - // Should be implmented in subclasses - }; - - Dropdown.prototype.destroy = function () { - // Remove the dropdown from the DOM - this.$dropdown.remove(); - }; - - return Dropdown; -}); diff --git a/admin/bower_components/select2/src/js/select2/dropdown/attachBody.js b/admin/bower_components/select2/src/js/select2/dropdown/attachBody.js deleted file mode 100644 index 70a10d4..0000000 --- a/admin/bower_components/select2/src/js/select2/dropdown/attachBody.js +++ /dev/null @@ -1,222 +0,0 @@ -define([ - 'jquery', - '../utils' -], function ($, Utils) { - function AttachBody (decorated, $element, options) { - this.$dropdownParent = options.get('dropdownParent') || $(document.body); - - decorated.call(this, $element, options); - } - - AttachBody.prototype.bind = function (decorated, container, $container) { - var self = this; - - var setupResultsEvents = false; - - decorated.call(this, container, $container); - - container.on('open', function () { - self._showDropdown(); - self._attachPositioningHandler(container); - - if (!setupResultsEvents) { - setupResultsEvents = true; - - container.on('results:all', function () { - self._positionDropdown(); - self._resizeDropdown(); - }); - - container.on('results:append', function () { - self._positionDropdown(); - self._resizeDropdown(); - }); - } - }); - - container.on('close', function () { - self._hideDropdown(); - self._detachPositioningHandler(container); - }); - - this.$dropdownContainer.on('mousedown', function (evt) { - evt.stopPropagation(); - }); - }; - - AttachBody.prototype.destroy = function (decorated) { - decorated.call(this); - - this.$dropdownContainer.remove(); - }; - - AttachBody.prototype.position = function (decorated, $dropdown, $container) { - // Clone all of the container classes - $dropdown.attr('class', $container.attr('class')); - - $dropdown.removeClass('select2'); - $dropdown.addClass('select2-container--open'); - - $dropdown.css({ - position: 'absolute', - top: -999999 - }); - - this.$container = $container; - }; - - AttachBody.prototype.render = function (decorated) { - var $container = $('<span></span>'); - - var $dropdown = decorated.call(this); - $container.append($dropdown); - - this.$dropdownContainer = $container; - - return $container; - }; - - AttachBody.prototype._hideDropdown = function (decorated) { - this.$dropdownContainer.detach(); - }; - - AttachBody.prototype._attachPositioningHandler = - function (decorated, container) { - var self = this; - - var scrollEvent = 'scroll.select2.' + container.id; - var resizeEvent = 'resize.select2.' + container.id; - var orientationEvent = 'orientationchange.select2.' + container.id; - - var $watchers = this.$container.parents().filter(Utils.hasScroll); - $watchers.each(function () { - $(this).data('select2-scroll-position', { - x: $(this).scrollLeft(), - y: $(this).scrollTop() - }); - }); - - $watchers.on(scrollEvent, function (ev) { - var position = $(this).data('select2-scroll-position'); - $(this).scrollTop(position.y); - }); - - $(window).on(scrollEvent + ' ' + resizeEvent + ' ' + orientationEvent, - function (e) { - self._positionDropdown(); - self._resizeDropdown(); - }); - }; - - AttachBody.prototype._detachPositioningHandler = - function (decorated, container) { - var scrollEvent = 'scroll.select2.' + container.id; - var resizeEvent = 'resize.select2.' + container.id; - var orientationEvent = 'orientationchange.select2.' + container.id; - - var $watchers = this.$container.parents().filter(Utils.hasScroll); - $watchers.off(scrollEvent); - - $(window).off(scrollEvent + ' ' + resizeEvent + ' ' + orientationEvent); - }; - - AttachBody.prototype._positionDropdown = function () { - var $window = $(window); - - var isCurrentlyAbove = this.$dropdown.hasClass('select2-dropdown--above'); - var isCurrentlyBelow = this.$dropdown.hasClass('select2-dropdown--below'); - - var newDirection = null; - - var offset = this.$container.offset(); - - offset.bottom = offset.top + this.$container.outerHeight(false); - - var container = { - height: this.$container.outerHeight(false) - }; - - container.top = offset.top; - container.bottom = offset.top + container.height; - - var dropdown = { - height: this.$dropdown.outerHeight(false) - }; - - var viewport = { - top: $window.scrollTop(), - bottom: $window.scrollTop() + $window.height() - }; - - var enoughRoomAbove = viewport.top < (offset.top - dropdown.height); - var enoughRoomBelow = viewport.bottom > (offset.bottom + dropdown.height); - - var css = { - left: offset.left, - top: container.bottom - }; - - // Determine what the parent element is to use for calciulating the offset - var $offsetParent = this.$dropdownParent; - - // For statically positoned elements, we need to get the element - // that is determining the offset - if ($offsetParent.css('position') === 'static') { - $offsetParent = $offsetParent.offsetParent(); - } - - var parentOffset = $offsetParent.offset(); - - css.top -= parentOffset.top; - css.left -= parentOffset.left; - - if (!isCurrentlyAbove && !isCurrentlyBelow) { - newDirection = 'below'; - } - - if (!enoughRoomBelow && enoughRoomAbove && !isCurrentlyAbove) { - newDirection = 'above'; - } else if (!enoughRoomAbove && enoughRoomBelow && isCurrentlyAbove) { - newDirection = 'below'; - } - - if (newDirection == 'above' || - (isCurrentlyAbove && newDirection !== 'below')) { - css.top = container.top - parentOffset.top - dropdown.height; - } - - if (newDirection != null) { - this.$dropdown - .removeClass('select2-dropdown--below select2-dropdown--above') - .addClass('select2-dropdown--' + newDirection); - this.$container - .removeClass('select2-container--below select2-container--above') - .addClass('select2-container--' + newDirection); - } - - this.$dropdownContainer.css(css); - }; - - AttachBody.prototype._resizeDropdown = function () { - var css = { - width: this.$container.outerWidth(false) + 'px' - }; - - if (this.options.get('dropdownAutoWidth')) { - css.minWidth = css.width; - css.position = 'relative'; - css.width = 'auto'; - } - - this.$dropdown.css(css); - }; - - AttachBody.prototype._showDropdown = function (decorated) { - this.$dropdownContainer.appendTo(this.$dropdownParent); - - this._positionDropdown(); - this._resizeDropdown(); - }; - - return AttachBody; -}); diff --git a/admin/bower_components/select2/src/js/select2/dropdown/attachContainer.js b/admin/bower_components/select2/src/js/select2/dropdown/attachContainer.js deleted file mode 100644 index 4995df4..0000000 --- a/admin/bower_components/select2/src/js/select2/dropdown/attachContainer.js +++ /dev/null @@ -1,18 +0,0 @@ -define([ - -], function () { - function AttachContainer (decorated, $element, options) { - decorated.call(this, $element, options); - } - - AttachContainer.prototype.position = - function (decorated, $dropdown, $container) { - var $dropdownContainer = $container.find('.dropdown-wrapper'); - $dropdownContainer.append($dropdown); - - $dropdown.addClass('select2-dropdown--below'); - $container.addClass('select2-container--below'); - }; - - return AttachContainer; -}); diff --git a/admin/bower_components/select2/src/js/select2/dropdown/closeOnSelect.js b/admin/bower_components/select2/src/js/select2/dropdown/closeOnSelect.js deleted file mode 100644 index fa6a82c..0000000 --- a/admin/bower_components/select2/src/js/select2/dropdown/closeOnSelect.js +++ /dev/null @@ -1,35 +0,0 @@ -define([ - -], function () { - function CloseOnSelect () { } - - CloseOnSelect.prototype.bind = function (decorated, container, $container) { - var self = this; - - decorated.call(this, container, $container); - - container.on('select', function (evt) { - self._selectTriggered(evt); - }); - - container.on('unselect', function (evt) { - self._selectTriggered(evt); - }); - }; - - CloseOnSelect.prototype._selectTriggered = function (_, evt) { - var originalEvent = evt.originalEvent; - - // Don't close if the control key is being held - if (originalEvent && originalEvent.ctrlKey) { - return; - } - - this.trigger('close', { - originalEvent: originalEvent, - originalSelect2Event: evt - }); - }; - - return CloseOnSelect; -}); diff --git a/admin/bower_components/select2/src/js/select2/dropdown/hidePlaceholder.js b/admin/bower_components/select2/src/js/select2/dropdown/hidePlaceholder.js deleted file mode 100644 index 2901f68..0000000 --- a/admin/bower_components/select2/src/js/select2/dropdown/hidePlaceholder.js +++ /dev/null @@ -1,42 +0,0 @@ -define([ - -], function () { - function HidePlaceholder (decorated, $element, options, dataAdapter) { - this.placeholder = this.normalizePlaceholder(options.get('placeholder')); - - decorated.call(this, $element, options, dataAdapter); - } - - HidePlaceholder.prototype.append = function (decorated, data) { - data.results = this.removePlaceholder(data.results); - - decorated.call(this, data); - }; - - HidePlaceholder.prototype.normalizePlaceholder = function (_, placeholder) { - if (typeof placeholder === 'string') { - placeholder = { - id: '', - text: placeholder - }; - } - - return placeholder; - }; - - HidePlaceholder.prototype.removePlaceholder = function (_, data) { - var modifiedData = data.slice(0); - - for (var d = data.length - 1; d >= 0; d--) { - var item = data[d]; - - if (this.placeholder.id === item.id) { - modifiedData.splice(d, 1); - } - } - - return modifiedData; - }; - - return HidePlaceholder; -}); diff --git a/admin/bower_components/select2/src/js/select2/dropdown/infiniteScroll.js b/admin/bower_components/select2/src/js/select2/dropdown/infiniteScroll.js deleted file mode 100644 index 41d85de..0000000 --- a/admin/bower_components/select2/src/js/select2/dropdown/infiniteScroll.js +++ /dev/null @@ -1,89 +0,0 @@ -define([ - 'jquery' -], function ($) { - function InfiniteScroll (decorated, $element, options, dataAdapter) { - this.lastParams = {}; - - decorated.call(this, $element, options, dataAdapter); - - this.$loadingMore = this.createLoadingMore(); - this.loading = false; - } - - InfiniteScroll.prototype.append = function (decorated, data) { - this.$loadingMore.remove(); - this.loading = false; - - decorated.call(this, data); - - if (this.showLoadingMore(data)) { - this.$results.append(this.$loadingMore); - } - }; - - InfiniteScroll.prototype.bind = function (decorated, container, $container) { - var self = this; - - decorated.call(this, container, $container); - - container.on('query', function (params) { - self.lastParams = params; - self.loading = true; - }); - - container.on('query:append', function (params) { - self.lastParams = params; - self.loading = true; - }); - - this.$results.on('scroll', function () { - var isLoadMoreVisible = $.contains( - document.documentElement, - self.$loadingMore[0] - ); - - if (self.loading || !isLoadMoreVisible) { - return; - } - - var currentOffset = self.$results.offset().top + - self.$results.outerHeight(false); - var loadingMoreOffset = self.$loadingMore.offset().top + - self.$loadingMore.outerHeight(false); - - if (currentOffset + 50 >= loadingMoreOffset) { - self.loadMore(); - } - }); - }; - - InfiniteScroll.prototype.loadMore = function () { - this.loading = true; - - var params = $.extend({}, {page: 1}, this.lastParams); - - params.page++; - - this.trigger('query:append', params); - }; - - InfiniteScroll.prototype.showLoadingMore = function (_, data) { - return data.pagination && data.pagination.more; - }; - - InfiniteScroll.prototype.createLoadingMore = function () { - var $option = $( - '<li ' + - 'class="select2-results__option select2-results__option--load-more"' + - 'role="treeitem" aria-disabled="true"></li>' - ); - - var message = this.options.get('translations').get('loadingMore'); - - $option.html(message(this.lastParams)); - - return $option; - }; - - return InfiniteScroll; -}); diff --git a/admin/bower_components/select2/src/js/select2/dropdown/minimumResultsForSearch.js b/admin/bower_components/select2/src/js/select2/dropdown/minimumResultsForSearch.js deleted file mode 100644 index b3625d4..0000000 --- a/admin/bower_components/select2/src/js/select2/dropdown/minimumResultsForSearch.js +++ /dev/null @@ -1,39 +0,0 @@ -define([ - -], function () { - function countResults (data) { - var count = 0; - - for (var d = 0; d < data.length; d++) { - var item = data[d]; - - if (item.children) { - count += countResults(item.children); - } else { - count++; - } - } - - return count; - } - - function MinimumResultsForSearch (decorated, $element, options, dataAdapter) { - this.minimumResultsForSearch = options.get('minimumResultsForSearch'); - - if (this.minimumResultsForSearch < 0) { - this.minimumResultsForSearch = Infinity; - } - - decorated.call(this, $element, options, dataAdapter); - } - - MinimumResultsForSearch.prototype.showSearch = function (decorated, params) { - if (countResults(params.data.results) < this.minimumResultsForSearch) { - return false; - } - - return decorated.call(this, params); - }; - - return MinimumResultsForSearch; -}); diff --git a/admin/bower_components/select2/src/js/select2/dropdown/search.js b/admin/bower_components/select2/src/js/select2/dropdown/search.js deleted file mode 100644 index cee81fe..0000000 --- a/admin/bower_components/select2/src/js/select2/dropdown/search.js +++ /dev/null @@ -1,101 +0,0 @@ -define([ - 'jquery', - '../utils' -], function ($, Utils) { - function Search () { } - - Search.prototype.render = function (decorated) { - var $rendered = decorated.call(this); - - var $search = $( - '<span class="select2-search select2-search--dropdown">' + - '<input class="select2-search__field" type="search" tabindex="-1"' + - ' autocomplete="off" autocorrect="off" autocapitalize="off"' + - ' spellcheck="false" role="textbox" />' + - '</span>' - ); - - this.$searchContainer = $search; - this.$search = $search.find('input'); - - $rendered.prepend($search); - - return $rendered; - }; - - Search.prototype.bind = function (decorated, container, $container) { - var self = this; - - decorated.call(this, container, $container); - - this.$search.on('keydown', function (evt) { - self.trigger('keypress', evt); - - self._keyUpPrevented = evt.isDefaultPrevented(); - }); - - // Workaround for browsers which do not support the `input` event - // This will prevent double-triggering of events for browsers which support - // both the `keyup` and `input` events. - this.$search.on('input', function (evt) { - // Unbind the duplicated `keyup` event - $(this).off('keyup'); - }); - - this.$search.on('keyup input', function (evt) { - self.handleSearch(evt); - }); - - container.on('open', function () { - self.$search.attr('tabindex', 0); - - self.$search.focus(); - - window.setTimeout(function () { - self.$search.focus(); - }, 0); - }); - - container.on('close', function () { - self.$search.attr('tabindex', -1); - - self.$search.val(''); - }); - - container.on('focus', function () { - if (!container.isOpen()) { - self.$search.focus(); - } - }); - - container.on('results:all', function (params) { - if (params.query.term == null || params.query.term === '') { - var showSearch = self.showSearch(params); - - if (showSearch) { - self.$searchContainer.removeClass('select2-search--hide'); - } else { - self.$searchContainer.addClass('select2-search--hide'); - } - } - }); - }; - - Search.prototype.handleSearch = function (evt) { - if (!this._keyUpPrevented) { - var input = this.$search.val(); - - this.trigger('query', { - term: input - }); - } - - this._keyUpPrevented = false; - }; - - Search.prototype.showSearch = function (_, params) { - return true; - }; - - return Search; -}); diff --git a/admin/bower_components/select2/src/js/select2/dropdown/selectOnClose.js b/admin/bower_components/select2/src/js/select2/dropdown/selectOnClose.js deleted file mode 100644 index 430c032..0000000 --- a/admin/bower_components/select2/src/js/select2/dropdown/selectOnClose.js +++ /dev/null @@ -1,50 +0,0 @@ -define([ - -], function () { - function SelectOnClose () { } - - SelectOnClose.prototype.bind = function (decorated, container, $container) { - var self = this; - - decorated.call(this, container, $container); - - container.on('close', function (params) { - self._handleSelectOnClose(params); - }); - }; - - SelectOnClose.prototype._handleSelectOnClose = function (_, params) { - if (params && params.originalSelect2Event != null) { - var event = params.originalSelect2Event; - - // Don't select an item if the close event was triggered from a select or - // unselect event - if (event._type === 'select' || event._type === 'unselect') { - return; - } - } - - var $highlightedResults = this.getHighlightedResults(); - - // Only select highlighted results - if ($highlightedResults.length < 1) { - return; - } - - var data = $highlightedResults.data('data'); - - // Don't re-select already selected resulte - if ( - (data.element != null && data.element.selected) || - (data.element == null && data.selected) - ) { - return; - } - - this.trigger('select', { - data: data - }); - }; - - return SelectOnClose; -}); diff --git a/admin/bower_components/select2/src/js/select2/dropdown/stopPropagation.js b/admin/bower_components/select2/src/js/select2/dropdown/stopPropagation.js deleted file mode 100644 index 4f64182..0000000 --- a/admin/bower_components/select2/src/js/select2/dropdown/stopPropagation.js +++ /dev/null @@ -1,38 +0,0 @@ -define([ - -], function () { - function StopPropagation () { } - - StopPropagation.prototype.bind = function (decorated, container, $container) { - decorated.call(this, container, $container); - - var stoppedEvents = [ - 'blur', - 'change', - 'click', - 'dblclick', - 'focus', - 'focusin', - 'focusout', - 'input', - 'keydown', - 'keyup', - 'keypress', - 'mousedown', - 'mouseenter', - 'mouseleave', - 'mousemove', - 'mouseover', - 'mouseup', - 'search', - 'touchend', - 'touchstart' - ]; - - this.$dropdown.on(stoppedEvents.join(' '), function (evt) { - evt.stopPropagation(); - }); - }; - - return StopPropagation; -}); diff --git a/admin/bower_components/select2/src/js/select2/i18n/ar.js b/admin/bower_components/select2/src/js/select2/i18n/ar.js deleted file mode 100644 index be9ea68..0000000 --- a/admin/bower_components/select2/src/js/select2/i18n/ar.js +++ /dev/null @@ -1,30 +0,0 @@ -define(function () { - // Arabic - return { - errorLoading: function () { - return 'لا يمكن تحميل النتائج'; - }, - inputTooLong: function (args) { - var overChars = args.input.length - args.maximum; - - return 'الرجاء حذف ' + overChars + ' عناصر'; - }, - inputTooShort: function (args) { - var remainingChars = args.minimum - args.input.length; - - return 'الرجاء إضافة ' + remainingChars + ' عناصر'; - }, - loadingMore: function () { - return 'جاري تحميل نتائج إضافية...'; - }, - maximumSelected: function (args) { - return 'تستطيع إختيار ' + args.maximum + ' بنود فقط'; - }, - noResults: function () { - return 'لم يتم العثور على أي نتائج'; - }, - searching: function () { - return 'جاري البحث…'; - } - }; -}); \ No newline at end of file diff --git a/admin/bower_components/select2/src/js/select2/i18n/az.js b/admin/bower_components/select2/src/js/select2/i18n/az.js deleted file mode 100644 index 0d9bda4..0000000 --- a/admin/bower_components/select2/src/js/select2/i18n/az.js +++ /dev/null @@ -1,27 +0,0 @@ -define(function () { - // Azerbaijani - return { - inputTooLong: function (args) { - var overChars = args.input.length - args.maximum; - - return overChars + ' simvol silin'; - }, - inputTooShort: function (args) { - var remainingChars = args.minimum - args.input.length; - - return remainingChars + ' simvol daxil edin'; - }, - loadingMore: function () { - return 'Daha çox nəticə yüklənir…'; - }, - maximumSelected: function (args) { - return 'Sadəcə ' + args.maximum + ' element seçə bilərsiniz'; - }, - noResults: function () { - return 'Nəticə tapılmadı'; - }, - searching: function () { - return 'Axtarılır…'; - } - }; -}); diff --git a/admin/bower_components/select2/src/js/select2/i18n/bg.js b/admin/bower_components/select2/src/js/select2/i18n/bg.js deleted file mode 100644 index 909b4e5..0000000 --- a/admin/bower_components/select2/src/js/select2/i18n/bg.js +++ /dev/null @@ -1,47 +0,0 @@ -define(function () { - // Bulgarian - return { - inputTooLong: function (args) { - var overChars = args.input.length - args.maximum; - - var message = 'Моля въведете с ' + overChars + ' по-малко символ'; - - if (overChars > 1) { - message += 'a'; - } - - return message; - }, - inputTooShort: function (args) { - var remainingChars = args.minimum - args.input.length; - - var message = 'Моля въведете още ' + remainingChars + ' символ'; - - if (remainingChars > 1) { - message += 'a'; - } - - return message; - }, - loadingMore: function () { - return 'Зареждат се още…'; - }, - maximumSelected: function (args) { - var message = 'Можете да направите до ' + args.maximum + ' '; - - if (args.maximum > 1) { - message += 'избора'; - } else { - message += 'избор'; - } - - return message; - }, - noResults: function () { - return 'Няма намерени съвпадения'; - }, - searching: function () { - return 'Търсене…'; - } - }; -}); diff --git a/admin/bower_components/select2/src/js/select2/i18n/ca.js b/admin/bower_components/select2/src/js/select2/i18n/ca.js deleted file mode 100644 index 7aa8cc6..0000000 --- a/admin/bower_components/select2/src/js/select2/i18n/ca.js +++ /dev/null @@ -1,52 +0,0 @@ -define(function () { - // Catalan - return { - errorLoading: function () { - return 'La càrrega ha fallat'; - }, - inputTooLong: function (args) { - var overChars = args.input.length - args.maximum; - - var message = 'Si us plau, elimina ' + overChars + ' car'; - - if (overChars == 1) { - message += 'àcter'; - } else { - message += 'àcters'; - } - - return message; - }, - inputTooShort: function (args) { - var remainingChars = args.minimum - args.input.length; - - var message = 'Si us plau, introdueix ' + remainingChars + ' car'; - - if (remainingChars == 1) { - message += 'àcter'; - } else { - message += 'àcters'; - } - - return message; - }, - loadingMore: function () { - return 'Carregant més resultats…'; - }, - maximumSelected: function (args) { - var message = 'Només es pot seleccionar ' + args.maximum + ' element'; - - if (args.maximum != 1) { - message += 's'; - } - - return message; - }, - noResults: function () { - return 'No s\'han trobat resultats'; - }, - searching: function () { - return 'Cercant…'; - } - }; -}); diff --git a/admin/bower_components/select2/src/js/select2/i18n/cs.js b/admin/bower_components/select2/src/js/select2/i18n/cs.js deleted file mode 100644 index 3769e2a..0000000 --- a/admin/bower_components/select2/src/js/select2/i18n/cs.js +++ /dev/null @@ -1,61 +0,0 @@ -define(function () { - // Czech - function small (count, masc) { - switch(count) { - case 2: - return masc ? 'dva' : 'dvě'; - case 3: - return 'tři'; - case 4: - return 'čtyři'; - } - return ''; - } - return { - errorLoading: function () { - return 'Výsledky nemohly být načteny.'; - }, - inputTooLong: function (args) { - var n = args.input.length - args.maximum; - - if (n == 1) { - return 'Prosím zadejte o jeden znak méně'; - } else if (n <= 4) { - return 'Prosím zadejte o ' + small(n, true) + ' znaky méně'; - } else { - return 'Prosím zadejte o ' + n + ' znaků méně'; - } - }, - inputTooShort: function (args) { - var n = args.minimum - args.input.length; - - if (n == 1) { - return 'Prosím zadejte ještě jeden znak'; - } else if (n <= 4) { - return 'Prosím zadejte ještě další ' + small(n, true) + ' znaky'; - } else { - return 'Prosím zadejte ještě dalších ' + n + ' znaků'; - } - }, - loadingMore: function () { - return 'Načítají se další výsledky…'; - }, - maximumSelected: function (args) { - var n = args.maximum; - - if (n == 1) { - return 'Můžete zvolit jen jednu položku'; - } else if (n <= 4) { - return 'Můžete zvolit maximálně ' + small(n, false) + ' položky'; - } else { - return 'Můžete zvolit maximálně ' + n + ' položek'; - } - }, - noResults: function () { - return 'Nenalezeny žádné položky'; - }, - searching: function () { - return 'Vyhledávání…'; - } - }; -}); diff --git a/admin/bower_components/select2/src/js/select2/i18n/da.js b/admin/bower_components/select2/src/js/select2/i18n/da.js deleted file mode 100644 index 2ce169f..0000000 --- a/admin/bower_components/select2/src/js/select2/i18n/da.js +++ /dev/null @@ -1,36 +0,0 @@ -define(function () { - // Danish - return { - errorLoading: function () { - return 'Resultaterne kunne ikke indlæses.'; - }, - inputTooLong: function (args) { - var overChars = args.input.length - args.maximum; - - return 'Angiv venligst ' + overChars + ' tegn mindre'; - }, - inputTooShort: function (args) { - var remainingChars = args.minimum - args.input.length; - - return 'Angiv venligst ' + remainingChars + ' tegn mere'; - }, - loadingMore: function () { - return 'Indlæser flere resultater…'; - }, - maximumSelected: function (args) { - var message = 'Du kan kun vælge ' + args.maximum + ' emne'; - - if (args.maximum != 1) { - message += 'r'; - } - - return message; - }, - noResults: function () { - return 'Ingen resultater fundet'; - }, - searching: function () { - return 'Søger…'; - } - }; -}); \ No newline at end of file diff --git a/admin/bower_components/select2/src/js/select2/i18n/de.js b/admin/bower_components/select2/src/js/select2/i18n/de.js deleted file mode 100644 index c804fed..0000000 --- a/admin/bower_components/select2/src/js/select2/i18n/de.js +++ /dev/null @@ -1,40 +0,0 @@ -define(function () { - // German - return { - errorLoading: function () { - return 'Die Ergebnisse konnten nicht geladen werden.'; - }, - inputTooLong: function (args) { - var overChars = args.input.length - args.maximum; - - return 'Bitte ' + overChars + ' Zeichen weniger eingeben'; - }, - inputTooShort: function (args) { - var remainingChars = args.minimum - args.input.length; - - return 'Bitte ' + remainingChars + ' Zeichen mehr eingeben'; - }, - loadingMore: function () { - return 'Lade mehr Ergebnisse…'; - }, - maximumSelected: function (args) { - var message = 'Sie können nur ' + args.maximum + ' Eintr'; - - if (args.maximum === 1) { - message += 'ag'; - } else { - message += 'äge'; - } - - message += ' auswählen'; - - return message; - }, - noResults: function () { - return 'Keine Übereinstimmungen gefunden'; - }, - searching: function () { - return 'Suche…'; - } - }; -}); diff --git a/admin/bower_components/select2/src/js/select2/i18n/el.js b/admin/bower_components/select2/src/js/select2/i18n/el.js deleted file mode 100644 index 9cf8ee4..0000000 --- a/admin/bower_components/select2/src/js/select2/i18n/el.js +++ /dev/null @@ -1,52 +0,0 @@ -define(function () { - // Greek (el) - return { - errorLoading: function () { - return 'Τα αποτελέσματα δεν μπόρεσαν να φορτώσουν.'; - }, - inputTooLong: function (args) { - var overChars = args.input.length - args.maximum; - - var message = 'Παρακαλώ διαγράψτε ' + overChars + ' χαρακτήρ'; - - if (overChars == 1) { - message += 'α'; - } - if (overChars != 1) { - message += 'ες'; - } - - return message; - }, - inputTooShort: function (args) { - var remainingChars = args.minimum - args.input.length; - - var message = 'Παρακαλώ συμπληρώστε ' + remainingChars + - ' ή περισσότερους χαρακτήρες'; - - return message; - }, - loadingMore: function () { - return 'Φόρτωση περισσότερων αποτελεσμάτων…'; - }, - maximumSelected: function (args) { - var message = 'Μπορείτε να επιλέξετε μόνο ' + args.maximum + ' επιλογ'; - - if (args.maximum == 1) { - message += 'ή'; - } - - if (args.maximum != 1) { - message += 'ές'; - } - - return message; - }, - noResults: function () { - return 'Δεν βρέθηκαν αποτελέσματα'; - }, - searching: function () { - return 'Αναζήτηση…'; - } - }; -}); \ No newline at end of file diff --git a/admin/bower_components/select2/src/js/select2/i18n/en.js b/admin/bower_components/select2/src/js/select2/i18n/en.js deleted file mode 100644 index f226f2c..0000000 --- a/admin/bower_components/select2/src/js/select2/i18n/en.js +++ /dev/null @@ -1,44 +0,0 @@ -define(function () { - // English - return { - errorLoading: function () { - return 'The results could not be loaded.'; - }, - inputTooLong: function (args) { - var overChars = args.input.length - args.maximum; - - var message = 'Please delete ' + overChars + ' character'; - - if (overChars != 1) { - message += 's'; - } - - return message; - }, - inputTooShort: function (args) { - var remainingChars = args.minimum - args.input.length; - - var message = 'Please enter ' + remainingChars + ' or more characters'; - - return message; - }, - loadingMore: function () { - return 'Loading more results…'; - }, - maximumSelected: function (args) { - var message = 'You can only select ' + args.maximum + ' item'; - - if (args.maximum != 1) { - message += 's'; - } - - return message; - }, - noResults: function () { - return 'No results found'; - }, - searching: function () { - return 'Searching…'; - } - }; -}); diff --git a/admin/bower_components/select2/src/js/select2/i18n/es.js b/admin/bower_components/select2/src/js/select2/i18n/es.js deleted file mode 100644 index f17826d..0000000 --- a/admin/bower_components/select2/src/js/select2/i18n/es.js +++ /dev/null @@ -1,52 +0,0 @@ -define(function () { - // Spanish - return { - errorLoading: function () { - return 'La carga falló'; - }, - inputTooLong: function (args) { - var remainingChars = args.input.length - args.maximum; - - var message = 'Por favor, elimine ' + remainingChars + ' car'; - - if (remainingChars == 1) { - message += 'ácter'; - } else { - message += 'acteres'; - } - - return message; - }, - inputTooShort: function (args) { - var remainingChars = args.minimum - args.input.length; - - var message = 'Por favor, introduzca ' + remainingChars + ' car'; - - if (remainingChars == 1) { - message += 'ácter'; - } else { - message += 'acteres'; - } - - return message; - }, - loadingMore: function () { - return 'Cargando más resultados…'; - }, - maximumSelected: function (args) { - var message = 'Sólo puede seleccionar ' + args.maximum + ' elemento'; - - if (args.maximum != 1) { - message += 's'; - } - - return message; - }, - noResults: function () { - return 'No se encontraron resultados'; - }, - searching: function () { - return 'Buscando…'; - } - }; -}); diff --git a/admin/bower_components/select2/src/js/select2/i18n/et.js b/admin/bower_components/select2/src/js/select2/i18n/et.js deleted file mode 100644 index d546ade..0000000 --- a/admin/bower_components/select2/src/js/select2/i18n/et.js +++ /dev/null @@ -1,53 +0,0 @@ -define(function () { - // Estonian - return { - inputTooLong: function (args) { - var overChars = args.input.length - args.maximum; - - var message = 'Sisesta ' + overChars + ' täht'; - - if (overChars != 1) { - message += 'e'; - } - - message += ' vähem'; - - return message; - }, - inputTooShort: function (args) { - var remainingChars = args.minimum - args.input.length; - - var message = 'Sisesta ' + remainingChars + ' täht'; - - if (remainingChars != 1) { - message += 'e'; - } - - message += ' rohkem'; - - return message; - }, - loadingMore: function () { - return 'Laen tulemusi…'; - }, - maximumSelected: function (args) { - var message = 'Saad vaid ' + args.maximum + ' tulemus'; - - if (args.maximum == 1) { - message += 'e'; - } else { - message += 't'; - } - - message += ' valida'; - - return message; - }, - noResults: function () { - return 'Tulemused puuduvad'; - }, - searching: function () { - return 'Otsin…'; - } - }; -}); diff --git a/admin/bower_components/select2/src/js/select2/i18n/eu.js b/admin/bower_components/select2/src/js/select2/i18n/eu.js deleted file mode 100644 index 4a1f894..0000000 --- a/admin/bower_components/select2/src/js/select2/i18n/eu.js +++ /dev/null @@ -1,51 +0,0 @@ -define(function () { - // Basque - return { - inputTooLong: function (args) { - var overChars = args.input.length - args.maximum; - - var message = 'Idatzi '; - - if (overChars == 1) { - message += 'karaktere bat'; - } else { - message += overChars + ' karaktere'; - } - - message += ' gutxiago'; - - return message; - }, - inputTooShort: function (args) { - var remainingChars = args.minimum - args.input.length; - - var message = 'Idatzi '; - - if (remainingChars == 1) { - message += 'karaktere bat'; - } else { - message += remainingChars + ' karaktere'; - } - - message += ' gehiago'; - - return message; - }, - loadingMore: function () { - return 'Emaitza gehiago kargatzen…'; - }, - maximumSelected: function (args) { - if (args.maximum === 1) { - return 'Elementu bakarra hauta dezakezu'; - } else { - return args.maximum + ' elementu hauta ditzakezu soilik'; - } - }, - noResults: function () { - return 'Ez da bat datorrenik aurkitu'; - }, - searching: function () { - return 'Bilatzen…'; - } - }; -}); diff --git a/admin/bower_components/select2/src/js/select2/i18n/fa.js b/admin/bower_components/select2/src/js/select2/i18n/fa.js deleted file mode 100644 index 64ce1a5..0000000 --- a/admin/bower_components/select2/src/js/select2/i18n/fa.js +++ /dev/null @@ -1,38 +0,0 @@ -/* jshint -W100 */ -/* jslint maxlen: 86 */ -define(function () { - // Farsi (Persian) - return { - errorLoading: function () { - return 'امکان بارگذاری نتایج وجود ندارد.'; - }, - inputTooLong: function (args) { - var overChars = args.input.length - args.maximum; - - var message = 'لطفاً ' + overChars + ' کاراکتر را حذف نمایید'; - - return message; - }, - inputTooShort: function (args) { - var remainingChars = args.minimum - args.input.length; - - var message = 'لطفاً تعداد ' + remainingChars + ' کاراکتر یا بیشتر وارد نمایید'; - - return message; - }, - loadingMore: function () { - return 'در حال بارگذاری نتایج بیشتر...'; - }, - maximumSelected: function (args) { - var message = 'شما تنها می‌توانید ' + args.maximum + ' آیتم را انتخاب نمایید'; - - return message; - }, - noResults: function () { - return 'هیچ نتیجه‌ای یافت نشد'; - }, - searching: function () { - return 'در حال جستجو...'; - } - }; -}); diff --git a/admin/bower_components/select2/src/js/select2/i18n/fi.js b/admin/bower_components/select2/src/js/select2/i18n/fi.js deleted file mode 100644 index cf33a43..0000000 --- a/admin/bower_components/select2/src/js/select2/i18n/fi.js +++ /dev/null @@ -1,30 +0,0 @@ -define(function () { - // Finnish - return { - errorLoading: function () { - return 'Tuloksia ei saatu ladattua.'; - }, - inputTooLong: function (args) { - var overChars = args.input.length - args.maximum; - - return 'Ole hyvä ja anna ' + overChars + ' merkkiä vähemmän'; - }, - inputTooShort: function (args) { - var remainingChars = args.minimum - args.input.length; - - return 'Ole hyvä ja anna ' + remainingChars + ' merkkiä lisää'; - }, - loadingMore: function () { - return 'Ladataan lisää tuloksia…'; - }, - maximumSelected: function (args) { - return 'Voit valita ainoastaan ' + args.maximum + ' kpl'; - }, - noResults: function () { - return 'Ei tuloksia'; - }, - searching: function () { - return 'Haetaan…'; - } - }; -}); diff --git a/admin/bower_components/select2/src/js/select2/i18n/fr.js b/admin/bower_components/select2/src/js/select2/i18n/fr.js deleted file mode 100644 index 0f4fbdc..0000000 --- a/admin/bower_components/select2/src/js/select2/i18n/fr.js +++ /dev/null @@ -1,49 +0,0 @@ -define(function () { - // French - return { - errorLoading: function () { - return 'Les résultats ne peuvent pas être chargés.'; - }, - inputTooLong: function (args) { - var overChars = args.input.length - args.maximum; - - var message = 'Supprimez ' + overChars + ' caractère'; - - if (overChars !== 1) { - message += 's'; - } - - return message; - }, - inputTooShort: function (args) { - var remainingChars = args.minimum - args.input.length; - - var message = 'Saisissez ' + remainingChars + ' caractère'; - - if (remainingChars !== 1) { - message += 's'; - } - - return message; - }, - loadingMore: function () { - return 'Chargement de résultats supplémentaires…'; - }, - maximumSelected: function (args) { - var message = 'Vous pouvez seulement sélectionner ' + - args.maximum + ' élément'; - - if (args.maximum !== 1) { - message += 's'; - } - - return message; - }, - noResults: function () { - return 'Aucun résultat trouvé'; - }, - searching: function () { - return 'Recherche en cours…'; - } - }; -}); diff --git a/admin/bower_components/select2/src/js/select2/i18n/gl.js b/admin/bower_components/select2/src/js/select2/i18n/gl.js deleted file mode 100644 index 3a9ffe3..0000000 --- a/admin/bower_components/select2/src/js/select2/i18n/gl.js +++ /dev/null @@ -1,39 +0,0 @@ -define(function () { - // Galician - return { - errorLoading: function () { - return 'Non foi posíbel cargar os resultados.'; - }, - inputTooLong: function (args) { - var overChars = args.input.length - args.maximum; - - if (overChars === 1) { - return 'Elimine un carácter'; - } - return 'Elimine ' + overChars + ' caracteres'; - }, - inputTooShort: function (args) { - var remainingChars = args.minimum - args.input.length; - - if (remainingChars === 1) { - return 'Engada un carácter'; - } - return 'Engada ' + remainingChars + ' caracteres'; - }, - loadingMore: function () { - return 'Cargando máis resultados…'; - }, - maximumSelected: function (args) { - if (args.maximum === 1) { - return 'Só pode seleccionar un elemento'; - } - return 'Só pode seleccionar ' + args.maximum + ' elementos'; - }, - noResults: function () { - return 'Non se atoparon resultados'; - }, - searching: function () { - return 'Buscando…'; - } - }; -}); \ No newline at end of file diff --git a/admin/bower_components/select2/src/js/select2/i18n/he.js b/admin/bower_components/select2/src/js/select2/i18n/he.js deleted file mode 100644 index 5a27f81..0000000 --- a/admin/bower_components/select2/src/js/select2/i18n/he.js +++ /dev/null @@ -1,56 +0,0 @@ -define(function () { - // Hebrew - return { - errorLoading: function () { - return 'שגיאה בטעינת התוצאות'; - }, - inputTooLong: function (args) { - var overChars = args.input.length - args.maximum; - - var message = 'נא למחוק '; - - if (overChars === 1) { - message += 'תו אחד'; - } else { - message += overChars + ' תווים'; - } - - return message; - }, - inputTooShort: function (args) { - var remainingChars = args.minimum - args.input.length; - - var message = 'נא להכניס '; - - if (remainingChars === 1) { - message += 'תו אחד'; - } else { - message += remainingChars + ' תווים'; - } - - message += ' או יותר'; - - return message; - }, - loadingMore: function () { - return 'טוען תוצאות נוספות…'; - }, - maximumSelected: function (args) { - var message = 'באפשרותך לבחור עד '; - - if (args.maximum === 1) { - message += 'פריט אחד'; - } else { - message += args.maximum + ' פריטים'; - } - - return message; - }, - noResults: function () { - return 'לא נמצאו תוצאות'; - }, - searching: function () { - return 'מחפש…'; - } - }; -}); diff --git a/admin/bower_components/select2/src/js/select2/i18n/hi.js b/admin/bower_components/select2/src/js/select2/i18n/hi.js deleted file mode 100644 index e8ee153..0000000 --- a/admin/bower_components/select2/src/js/select2/i18n/hi.js +++ /dev/null @@ -1,39 +0,0 @@ -define(function () { - // Hindi - return { - errorLoading: function () { - return 'परिणामों को लोड नहीं किया जा सका।'; - }, - inputTooLong: function (args) { - var overChars = args.input.length - args.maximum; - - var message = overChars + ' अक्षर को हटा दें'; - - if (overChars > 1) { - message = overChars + ' अक्षरों को हटा दें '; - } - - return message; - }, - inputTooShort: function (args) { - var remainingChars = args.minimum - args.input.length; - - var message = 'कृपया ' + remainingChars + ' या अधिक अक्षर दर्ज करें'; - - return message; - }, - loadingMore: function () { - return 'अधिक परिणाम लोड हो रहे है...'; - }, - maximumSelected: function (args) { - var message = 'आप केवल ' + args.maximum + ' आइटम का चयन कर सकते हैं'; - return message; - }, - noResults: function () { - return 'कोई परिणाम नहीं मिला'; - }, - searching: function () { - return 'खोज रहा है...'; - } - }; -}); diff --git a/admin/bower_components/select2/src/js/select2/i18n/hr.js b/admin/bower_components/select2/src/js/select2/i18n/hr.js deleted file mode 100644 index 81462a5..0000000 --- a/admin/bower_components/select2/src/js/select2/i18n/hr.js +++ /dev/null @@ -1,44 +0,0 @@ -define(function () { - // Croatian - function character (n) { - var message = ' ' + n + ' znak'; - - if (n % 10 < 5 && n % 10 > 0 && (n % 100 < 5 || n % 100 > 19)) { - if (n % 10 > 1) { - message += 'a'; - } - } else { - message += 'ova'; - } - - return message; - } - - return { - errorLoading: function () { - return 'Preuzimanje nije uspjelo.'; - }, - inputTooLong: function (args) { - var overChars = args.input.length - args.maximum; - - return 'Unesite ' + character(overChars); - }, - inputTooShort: function (args) { - var remainingChars = args.minimum - args.input.length; - - return 'Unesite još ' + character(remainingChars); - }, - loadingMore: function () { - return 'Učitavanje rezultata…'; - }, - maximumSelected: function (args) { - return 'Maksimalan broj odabranih stavki je ' + args.maximum; - }, - noResults: function () { - return 'Nema rezultata'; - }, - searching: function () { - return 'Pretraga…'; - } - }; -}); diff --git a/admin/bower_components/select2/src/js/select2/i18n/hu.js b/admin/bower_components/select2/src/js/select2/i18n/hu.js deleted file mode 100644 index fbe1d77..0000000 --- a/admin/bower_components/select2/src/js/select2/i18n/hu.js +++ /dev/null @@ -1,30 +0,0 @@ -define(function () { - // Hungarian - return { - errorLoading: function () { - return 'Az eredmények betöltése nem sikerült.'; - }, - inputTooLong: function (args) { - var overChars = args.input.length - args.maximum; - - return 'Túl hosszú. ' + overChars + ' karakterrel több, mint kellene.'; - }, - inputTooShort: function (args) { - var remainingChars = args.minimum - args.input.length; - - return 'Túl rövid. Még ' + remainingChars + ' karakter hiányzik.'; - }, - loadingMore: function () { - return 'Töltés…'; - }, - maximumSelected: function (args) { - return 'Csak ' + args.maximum + ' elemet lehet kiválasztani.'; - }, - noResults: function () { - return 'Nincs találat.'; - }, - searching: function () { - return 'Keresés…'; - } - }; -}); diff --git a/admin/bower_components/select2/src/js/select2/i18n/hy.js b/admin/bower_components/select2/src/js/select2/i18n/hy.js deleted file mode 100644 index 098c350..0000000 --- a/admin/bower_components/select2/src/js/select2/i18n/hy.js +++ /dev/null @@ -1,38 +0,0 @@ -define(function () { - // Armenian - return { - errorLoading: function () { - return 'Արդյունքները հնարավոր չէ բեռնել։'; - }, - inputTooLong: function (args) { - var overChars = args.input.length - args.maximum; - - var message = 'Խնդրում ենք հեռացնել ' + overChars + ' նշան'; - - return message; - }, - inputTooShort: function (args) { - var remainingChars = args.minimum - args.input.length; - - var message = 'Խնդրում ենք մուտքագրել ' + remainingChars + - ' կամ ավել նշաններ'; - - return message; - }, - loadingMore: function () { - return 'Բեռնվում են նոր արդյունքներ․․․'; - }, - maximumSelected: function (args) { - var message = 'Դուք կարող եք ընտրել առավելագույնը ' + args.maximum + - ' կետ'; - - return message; - }, - noResults: function () { - return 'Արդյունքներ չեն գտնվել'; - }, - searching: function () { - return 'Որոնում․․․'; - } - }; -}); diff --git a/admin/bower_components/select2/src/js/select2/i18n/id.js b/admin/bower_components/select2/src/js/select2/i18n/id.js deleted file mode 100644 index 43b632e..0000000 --- a/admin/bower_components/select2/src/js/select2/i18n/id.js +++ /dev/null @@ -1,30 +0,0 @@ -define(function () { - // Indonesian - return { - errorLoading: function () { - return 'Data tidak boleh diambil.'; - }, - inputTooLong: function (args) { - var overChars = args.input.length - args.maximum; - - return 'Hapuskan ' + overChars + ' huruf'; - }, - inputTooShort: function (args) { - var remainingChars = args.minimum - args.input.length; - - return 'Masukkan ' + remainingChars + ' huruf lagi'; - }, - loadingMore: function () { - return 'Mengambil data…'; - }, - maximumSelected: function (args) { - return 'Anda hanya dapat memilih ' + args.maximum + ' pilihan'; - }, - noResults: function () { - return 'Tidak ada data yang sesuai'; - }, - searching: function () { - return 'Mencari…'; - } - }; -}); diff --git a/admin/bower_components/select2/src/js/select2/i18n/is.js b/admin/bower_components/select2/src/js/select2/i18n/is.js deleted file mode 100644 index 7a835f5..0000000 --- a/admin/bower_components/select2/src/js/select2/i18n/is.js +++ /dev/null @@ -1,41 +0,0 @@ -define(function () { - // Icelandic - return { - inputTooLong: function (args) { - var overChars = args.input.length - args.maximum; - - var message = 'Vinsamlegast styttið texta um ' + overChars + ' staf'; - - if (overChars <= 1) { - return message; - } - - return message + 'i'; - }, - inputTooShort: function (args) { - var remainingChars = args.minimum - args.input.length; - - var message = 'Vinsamlegast skrifið ' + remainingChars + ' staf'; - - if (remainingChars > 1) { - message += 'i'; - } - - message += ' í viðbót'; - - return message; - }, - loadingMore: function () { - return 'Sæki fleiri niðurstöður…'; - }, - maximumSelected: function (args) { - return 'Þú getur aðeins valið ' + args.maximum + ' atriði'; - }, - noResults: function () { - return 'Ekkert fannst'; - }, - searching: function () { - return 'Leita…'; - } - }; -}); diff --git a/admin/bower_components/select2/src/js/select2/i18n/it.js b/admin/bower_components/select2/src/js/select2/i18n/it.js deleted file mode 100644 index 76c2e4b..0000000 --- a/admin/bower_components/select2/src/js/select2/i18n/it.js +++ /dev/null @@ -1,48 +0,0 @@ -define(function () { - // Italian - return { - errorLoading: function () { - return 'I risultati non possono essere caricati.'; - }, - inputTooLong: function (args) { - var overChars = args.input.length - args.maximum; - - var message = 'Per favore cancella ' + overChars + ' caratter'; - - if (overChars !== 1) { - message += 'i'; - } else { - message += 'e'; - } - - return message; - }, - inputTooShort: function (args) { - var remainingChars = args.minimum - args.input.length; - - var message = 'Per favore inserisci ' +remainingChars+ ' o più caratteri'; - - return message; - }, - loadingMore: function () { - return 'Caricando più risultati…'; - }, - maximumSelected: function (args) { - var message = 'Puoi selezionare solo ' + args.maximum + ' element'; - - if (args.maximum !== 1) { - message += 'i'; - } else { - message += 'o'; - } - - return message; - }, - noResults: function () { - return 'Nessun risultato trovato'; - }, - searching: function () { - return 'Sto cercando…'; - } - }; -}); diff --git a/admin/bower_components/select2/src/js/select2/i18n/ja.js b/admin/bower_components/select2/src/js/select2/i18n/ja.js deleted file mode 100644 index c954c4f..0000000 --- a/admin/bower_components/select2/src/js/select2/i18n/ja.js +++ /dev/null @@ -1,36 +0,0 @@ -define(function () { - // Japanese - return { - errorLoading: function () { - return '結果が読み込まれませんでした'; - }, - inputTooLong: function (args) { - var overChars = args.input.length - args.maximum; - - var message = overChars + ' 文字を削除してください'; - - return message; - }, - inputTooShort: function (args) { - var remainingChars = args.minimum - args.input.length; - - var message = '少なくとも ' + remainingChars + ' 文字を入力してください'; - - return message; - }, - loadingMore: function () { - return '読み込み中…'; - }, - maximumSelected: function (args) { - var message = args.maximum + ' 件しか選択できません'; - - return message; - }, - noResults: function () { - return '対象が見つかりません'; - }, - searching: function () { - return '検索しています…'; - } - }; -}); diff --git a/admin/bower_components/select2/src/js/select2/i18n/km.js b/admin/bower_components/select2/src/js/select2/i18n/km.js deleted file mode 100644 index 10e3d7e..0000000 --- a/admin/bower_components/select2/src/js/select2/i18n/km.js +++ /dev/null @@ -1,36 +0,0 @@ -define(function () { - // Khmer - return { - errorLoading: function () { - return 'មិនអាចទាញយកទិន្នន័យ'; - }, - inputTooLong: function (args) { - var overChars = args.input.length - args.maximum; - - var message = 'សូមលុបចេញ ' + overChars + ' អក្សរ'; - - return message; - }, - inputTooShort: function (args) { - var remainingChars = args.minimum - args.input.length; - - var message = 'សូមបញ្ចូល' + remainingChars + ' អក្សរ រឺ ច្រើនជាងនេះ'; - - return message; - }, - loadingMore: function () { - return 'កំពុងទាញយកទិន្នន័យបន្ថែម...'; - }, - maximumSelected: function (args) { - var message = 'អ្នកអាចជ្រើសរើសបានតែ ' + args.maximum + ' ជម្រើសប៉ុណ្ណោះ'; - - return message; - }, - noResults: function () { - return 'មិនមានលទ្ធផល'; - }, - searching: function () { - return 'កំពុងស្វែងរក...'; - } - }; -}); diff --git a/admin/bower_components/select2/src/js/select2/i18n/ko.js b/admin/bower_components/select2/src/js/select2/i18n/ko.js deleted file mode 100644 index 9a2de10..0000000 --- a/admin/bower_components/select2/src/js/select2/i18n/ko.js +++ /dev/null @@ -1,36 +0,0 @@ -define(function () { - // Korean - return { - errorLoading: function () { - return '결과를 불러올 수 없습니다.'; - }, - inputTooLong: function (args) { - var overChars = args.input.length - args.maximum; - - var message = '너무 깁니다. ' + overChars + ' 글자 지워주세요.'; - - return message; - }, - inputTooShort: function (args) { - var remainingChars = args.minimum - args.input.length; - - var message = '너무 짧습니다. ' + remainingChars + ' 글자 더 입력해주세요.'; - - return message; - }, - loadingMore: function () { - return '불러오는 중…'; - }, - maximumSelected: function (args) { - var message = '최대 ' + args.maximum + '개까지만 선택 가능합니다.'; - - return message; - }, - noResults: function () { - return '결과가 없습니다.'; - }, - searching: function () { - return '검색 중…'; - } - }; -}); diff --git a/admin/bower_components/select2/src/js/select2/i18n/lt.js b/admin/bower_components/select2/src/js/select2/i18n/lt.js deleted file mode 100644 index 500a519..0000000 --- a/admin/bower_components/select2/src/js/select2/i18n/lt.js +++ /dev/null @@ -1,52 +0,0 @@ -define(function () { - // rules from - // http://www.unicode.org/cldr/charts/latest/supplemental/language_plural_rules.html#lt - function ending(count, one, few, other) { - if (count % 10 === 1 && (count % 100 < 11 || count % 100 > 19)) { - return one; - } else if ( - (count % 10 >= 2 && count % 10 <= 9) && - (count % 100 < 11 || count % 100 > 19)) { - return few; - } else { - return other; - } - } - - return { - inputTooLong: function (args) { - var overChars = args.input.length - args.maximum; - - var message = 'Pašalinkite ' + overChars + ' simbol'; - - message += ending(overChars, 'į', 'ius', 'ių'); - - return message; - }, - inputTooShort: function (args) { - var remainingChars = args.minimum - args.input.length; - - var message = 'Įrašykite dar ' + remainingChars + ' simbol'; - - message += ending(remainingChars, 'į', 'ius', 'ių'); - - return message; - }, - loadingMore: function () { - return 'Kraunama daugiau rezultatų…'; - }, - maximumSelected: function (args) { - var message = 'Jūs galite pasirinkti tik ' + args.maximum + ' element'; - - message += ending(args.maximum, 'ą', 'us', 'ų'); - - return message; - }, - noResults: function () { - return 'Atitikmenų nerasta'; - }, - searching: function () { - return 'Ieškoma…'; - } - }; -}); diff --git a/admin/bower_components/select2/src/js/select2/i18n/lv.js b/admin/bower_components/select2/src/js/select2/i18n/lv.js deleted file mode 100644 index 560cab0..0000000 --- a/admin/bower_components/select2/src/js/select2/i18n/lv.js +++ /dev/null @@ -1,51 +0,0 @@ -define(function () { - // Latvian - function ending (count, eleven, singular, other) { - if (count === 11) { - return eleven; - } - - if (count % 10 === 1) { - return singular; - } - - return other; - } - - return { - inputTooLong: function (args) { - var overChars = args.input.length - args.maximum; - - var message = 'Lūdzu ievadiet par ' + overChars; - - message += ' simbol' + ending(overChars, 'iem', 'u', 'iem'); - - return message + ' mazāk'; - }, - inputTooShort: function (args) { - var remainingChars = args.minimum - args.input.length; - - var message = 'Lūdzu ievadiet vēl ' + remainingChars; - - message += ' simbol' + ending(remainingChars, 'us', 'u', 'us'); - - return message; - }, - loadingMore: function () { - return 'Datu ielāde…'; - }, - maximumSelected: function (args) { - var message = 'Jūs varat izvēlēties ne vairāk kā ' + args.maximum; - - message += ' element' + ending(args.maximum, 'us', 'u', 'us'); - - return message; - }, - noResults: function () { - return 'Sakritību nav'; - }, - searching: function () { - return 'Meklēšana…'; - } - }; -}); diff --git a/admin/bower_components/select2/src/js/select2/i18n/mk.js b/admin/bower_components/select2/src/js/select2/i18n/mk.js deleted file mode 100644 index a27f0e8..0000000 --- a/admin/bower_components/select2/src/js/select2/i18n/mk.js +++ /dev/null @@ -1,47 +0,0 @@ -define(function () { - // Macedonian - return { - inputTooLong: function (args) { - var overChars = args.input.length - args.maximum; - - var message = 'Ве молиме внесете ' + args.maximum + ' помалку карактер'; - - if (args.maximum !== 1) { - message += 'и'; - } - - return message; - }, - inputTooShort: function (args) { - var remainingChars = args.minimum - args.input.length; - - var message = 'Ве молиме внесете уште ' + args.maximum + ' карактер'; - - if (args.maximum !== 1) { - message += 'и'; - } - - return message; - }, - loadingMore: function () { - return 'Вчитување резултати…'; - }, - maximumSelected: function (args) { - var message = 'Можете да изберете само ' + args.maximum + ' ставк'; - - if (args.maximum === 1) { - message += 'а'; - } else { - message += 'и'; - } - - return message; - }, - noResults: function () { - return 'Нема пронајдено совпаѓања'; - }, - searching: function () { - return 'Пребарување…'; - } - }; -}); diff --git a/admin/bower_components/select2/src/js/select2/i18n/ms.js b/admin/bower_components/select2/src/js/select2/i18n/ms.js deleted file mode 100644 index 3c11562..0000000 --- a/admin/bower_components/select2/src/js/select2/i18n/ms.js +++ /dev/null @@ -1,30 +0,0 @@ -define(function () { - // Malay - return { - errorLoading: function () { - return 'Keputusan tidak berjaya dimuatkan.'; - }, - inputTooLong: function (args) { - var overChars = args.input.length - args.maximum; - - return 'Sila hapuskan ' + overChars + ' aksara'; - }, - inputTooShort: function (args) { - var remainingChars = args.minimum - args.input.length; - - return 'Sila masukkan ' + remainingChars + ' atau lebih aksara'; - }, - loadingMore: function () { - return 'Sedang memuatkan keputusan…'; - }, - maximumSelected: function (args) { - return 'Anda hanya boleh memilih ' + args.maximum + ' pilihan'; - }, - noResults: function () { - return 'Tiada padanan yang ditemui'; - }, - searching: function () { - return 'Mencari…'; - } - }; -}); \ No newline at end of file diff --git a/admin/bower_components/select2/src/js/select2/i18n/nb.js b/admin/bower_components/select2/src/js/select2/i18n/nb.js deleted file mode 100644 index 2b7fe16..0000000 --- a/admin/bower_components/select2/src/js/select2/i18n/nb.js +++ /dev/null @@ -1,38 +0,0 @@ -define(function () { - // Norwegian (Bokmål) - return { - errorLoading: function () { - return 'Kunne ikke hente resultater.'; - }, - inputTooLong: function (args) { - var overChars = args.input.length - args.maximum; - - return 'Vennligst fjern ' + overChars + ' tegn'; - }, - inputTooShort: function (args) { - var remainingChars = args.minimum - args.input.length; - - var message = 'Vennligst skriv inn '; - - if (remainingChars > 1) { - message += ' flere tegn'; - } else { - message += ' tegn til'; - } - - return message; - }, - loadingMore: function () { - return 'Laster flere resultater…'; - }, - maximumSelected: function (args) { - return 'Du kan velge maks ' + args.maximum + ' elementer'; - }, - noResults: function () { - return 'Ingen treff'; - }, - searching: function () { - return 'Søker…'; - } - }; -}); diff --git a/admin/bower_components/select2/src/js/select2/i18n/nl.js b/admin/bower_components/select2/src/js/select2/i18n/nl.js deleted file mode 100644 index e8c016a..0000000 --- a/admin/bower_components/select2/src/js/select2/i18n/nl.js +++ /dev/null @@ -1,43 +0,0 @@ -define(function () { - // Dutch - return { - errorLoading: function () { - return 'De resultaten konden niet worden geladen.'; - }, - inputTooLong: function (args) { - var overChars = args.input.length - args.maximum; - - var message = 'Gelieve ' + overChars + ' karakters te verwijderen'; - - return message; - }, - inputTooShort: function (args) { - var remainingChars = args.minimum - args.input.length; - - var message = 'Gelieve ' + remainingChars + - ' of meer karakters in te voeren'; - - return message; - }, - loadingMore: function () { - return 'Meer resultaten laden…'; - }, - maximumSelected: function (args) { - var verb = args.maximum == 1 ? 'kan' : 'kunnen'; - var message = 'Er ' + verb + ' maar ' + args.maximum + ' item'; - - if (args.maximum != 1) { - message += 's'; - } - message += ' worden geselecteerd'; - - return message; - }, - noResults: function () { - return 'Geen resultaten gevonden…'; - }, - searching: function () { - return 'Zoeken…'; - } - }; -}); diff --git a/admin/bower_components/select2/src/js/select2/i18n/pl.js b/admin/bower_components/select2/src/js/select2/i18n/pl.js deleted file mode 100644 index 030a4dd..0000000 --- a/admin/bower_components/select2/src/js/select2/i18n/pl.js +++ /dev/null @@ -1,45 +0,0 @@ -define(function () { - // Polish - var charsWords = ['znak', 'znaki', 'znaków']; - var itemsWords = ['element', 'elementy', 'elementów']; - - var pluralWord = function pluralWord(numberOfChars, words) { - if (numberOfChars === 1) { - return words[0]; - } else if (numberOfChars > 1 && numberOfChars <= 4) { - return words[1]; - } else if (numberOfChars >= 5) { - return words[2]; - } - }; - - return { - errorLoading: function () { - return 'Nie można załadować wyników.'; - }, - inputTooLong: function (args) { - var overChars = args.input.length - args.maximum; - - return 'Usuń ' + overChars + ' ' + pluralWord(overChars, charsWords); - }, - inputTooShort: function (args) { - var remainingChars = args.minimum - args.input.length; - - return 'Podaj przynajmniej ' + remainingChars + ' ' + - pluralWord(remainingChars, charsWords); - }, - loadingMore: function () { - return 'Trwa ładowanie…'; - }, - maximumSelected: function (args) { - return 'Możesz zaznaczyć tylko ' + args.maximum + ' ' + - pluralWord(args.maximum, itemsWords); - }, - noResults: function () { - return 'Brak wyników'; - }, - searching: function () { - return 'Trwa wyszukiwanie…'; - } - }; -}); diff --git a/admin/bower_components/select2/src/js/select2/i18n/pt-BR.js b/admin/bower_components/select2/src/js/select2/i18n/pt-BR.js deleted file mode 100644 index 7f769b6..0000000 --- a/admin/bower_components/select2/src/js/select2/i18n/pt-BR.js +++ /dev/null @@ -1,46 +0,0 @@ -define(function () { - // Brazilian Portuguese - return { - errorLoading: function () { - return 'Os resultados não puderam ser carregados.'; - }, - inputTooLong: function (args) { - var overChars = args.input.length - args.maximum; - - var message = 'Apague ' + overChars + ' caracter'; - - if (overChars != 1) { - message += 'es'; - } - - return message; - }, - inputTooShort: function (args) { - var remainingChars = args.minimum - args.input.length; - - var message = 'Digite ' + remainingChars + ' ou mais caracteres'; - - return message; - }, - loadingMore: function () { - return 'Carregando mais resultados…'; - }, - maximumSelected: function (args) { - var message = 'Você só pode selecionar ' + args.maximum + ' ite'; - - if (args.maximum == 1) { - message += 'm'; - } else { - message += 'ns'; - } - - return message; - }, - noResults: function () { - return 'Nenhum resultado encontrado'; - }, - searching: function () { - return 'Buscando…'; - } - }; -}); diff --git a/admin/bower_components/select2/src/js/select2/i18n/pt.js b/admin/bower_components/select2/src/js/select2/i18n/pt.js deleted file mode 100644 index e66a8a2..0000000 --- a/admin/bower_components/select2/src/js/select2/i18n/pt.js +++ /dev/null @@ -1,40 +0,0 @@ -define(function () { - // European Portuguese - return { - errorLoading: function () { - return 'Os resultados não puderam ser carregados.'; - }, - inputTooLong: function (args) { - var overChars = args.input.length - args.maximum; - - var message = 'Por favor apague ' + overChars + ' '; - - message += overChars != 1 ? 'caracteres' : 'caractere'; - - return message; - }, - inputTooShort: function (args) { - var remainingChars = args.minimum - args.input.length; - - var message = 'Introduza ' + remainingChars + ' ou mais caracteres'; - - return message; - }, - loadingMore: function () { - return 'A carregar mais resultados…'; - }, - maximumSelected: function (args) { - var message = 'Apenas pode seleccionar ' + args.maximum + ' '; - - message += args.maximum != 1 ? 'itens' : 'item'; - - return message; - }, - noResults: function () { - return 'Sem resultados'; - }, - searching: function () { - return 'A procurar…'; - } - }; -}); diff --git a/admin/bower_components/select2/src/js/select2/i18n/ro.js b/admin/bower_components/select2/src/js/select2/i18n/ro.js deleted file mode 100644 index d62133a..0000000 --- a/admin/bower_components/select2/src/js/select2/i18n/ro.js +++ /dev/null @@ -1,46 +0,0 @@ -define(function () { - // Romanian - return { - errorLoading: function () { - return 'Rezultatele nu au putut fi incărcate.'; - }, - inputTooLong: function (args) { - var overChars = args.input.length - args.maximum; - - var message = 'Vă rugăm să ștergeți' + overChars + ' caracter'; - - if (overChars !== 1) { - message += 'e'; - } - - return message; - }, - inputTooShort: function (args) { - var remainingChars = args.minimum - args.input.length; - - var message = 'Vă rugăm să introduceți ' + remainingChars + - 'sau mai multe caractere'; - - return message; - }, - loadingMore: function () { - return 'Se încarcă mai multe rezultate…'; - }, - maximumSelected: function (args) { - var message = 'Aveți voie să selectați cel mult ' + args.maximum; - message += ' element'; - - if (args.maximum !== 1) { - message += 'e'; - } - - return message; - }, - noResults: function () { - return 'Nu au fost găsite rezultate'; - }, - searching: function () { - return 'Căutare…'; - } - }; -}); diff --git a/admin/bower_components/select2/src/js/select2/i18n/ru.js b/admin/bower_components/select2/src/js/select2/i18n/ru.js deleted file mode 100644 index 2ac11ec..0000000 --- a/admin/bower_components/select2/src/js/select2/i18n/ru.js +++ /dev/null @@ -1,58 +0,0 @@ -define(function () { - // Russian - function ending (count, one, couple, more) { - if (count % 10 < 5 && count % 10 > 0 && - count % 100 < 5 || count % 100 > 20) { - if (count % 10 > 1) { - return couple; - } - } else { - return more; - } - - return one; - } - - return { - errorLoading: function () { - return 'Невозможно загрузить результаты'; - }, - inputTooLong: function (args) { - var overChars = args.input.length - args.maximum; - - var message = 'Пожалуйста, введите на ' + overChars + ' символ'; - - message += ending(overChars, '', 'a', 'ов'); - - message += ' меньше'; - - return message; - }, - inputTooShort: function (args) { - var remainingChars = args.minimum - args.input.length; - - var message = 'Пожалуйста, введите еще хотя бы ' + remainingChars + - ' символ'; - - message += ending(remainingChars, '', 'a', 'ов'); - - return message; - }, - loadingMore: function () { - return 'Загрузка данных…'; - }, - maximumSelected: function (args) { - var message = 'Вы можете выбрать не более ' + args.maximum + ' элемент'; - - message += ending(args.maximum, '', 'a', 'ов'); - - return message; - }, - noResults: function () { - return 'Совпадений не найдено'; - }, - searching: function () { - return 'Поиск…'; - } - }; -}); diff --git a/admin/bower_components/select2/src/js/select2/i18n/sk.js b/admin/bower_components/select2/src/js/select2/i18n/sk.js deleted file mode 100644 index 449754e..0000000 --- a/admin/bower_components/select2/src/js/select2/i18n/sk.js +++ /dev/null @@ -1,56 +0,0 @@ -define(function () { - // Slovak - - // use text for the numbers 2 through 4 - var smallNumbers = { - 2: function (masc) { return (masc ? 'dva' : 'dve'); }, - 3: function () { return 'tri'; }, - 4: function () { return 'štyri'; } - }; - - return { - inputTooLong: function (args) { - var overChars = args.input.length - args.maximum; - - if (overChars == 1) { - return 'Prosím, zadajte o jeden znak menej'; - } else if (overChars >= 2 && overChars <= 4) { - return 'Prosím, zadajte o ' + smallNumbers[overChars](true) + - ' znaky menej'; - } else { - return 'Prosím, zadajte o ' + overChars + ' znakov menej'; - } - }, - inputTooShort: function (args) { - var remainingChars = args.minimum - args.input.length; - - if (remainingChars == 1) { - return 'Prosím, zadajte ešte jeden znak'; - } else if (remainingChars <= 4) { - return 'Prosím, zadajte ešte ďalšie ' + - smallNumbers[remainingChars](true) + ' znaky'; - } else { - return 'Prosím, zadajte ešte ďalších ' + remainingChars + ' znakov'; - } - }, - loadingMore: function () { - return 'Loading more results…'; - }, - maximumSelected: function (args) { - if (args.maximum == 1) { - return 'Môžete zvoliť len jednu položku'; - } else if (args.maximum >= 2 && args.maximum <= 4) { - return 'Môžete zvoliť najviac ' + smallNumbers[args.maximum](false) + - ' položky'; - } else { - return 'Môžete zvoliť najviac ' + args.maximum + ' položiek'; - } - }, - noResults: function () { - return 'Nenašli sa žiadne položky'; - }, - searching: function () { - return 'Vyhľadávanie…'; - } - }; -}); diff --git a/admin/bower_components/select2/src/js/select2/i18n/sl.js b/admin/bower_components/select2/src/js/select2/i18n/sl.js deleted file mode 100644 index a164044..0000000 --- a/admin/bower_components/select2/src/js/select2/i18n/sl.js +++ /dev/null @@ -1,54 +0,0 @@ -define(function () { - // Slovene - return { - errorLoading: function () { - return 'Zadetkov iskanja ni bilo mogoče naložiti.'; - }, - inputTooLong: function (args) { - var overChars = args.input.length - args.maximum; - - var message = 'Prosim zbrišite ' + overChars + ' znak'; - - if (overChars == 2) { - message += 'a'; - } else if (overChars != 1) { - message += 'e'; - } - - return message; - }, - inputTooShort: function (args) { - var remainingChars = args.minimum - args.input.length; - - var message = 'Prosim vpišite še ' + remainingChars + ' znak'; - - if (remainingChars == 2) { - message += 'a'; - } else if (remainingChars != 1) { - message += 'e'; - } - - return message; - }, - loadingMore: function () { - return 'Nalagam več zadetkov…'; - }, - maximumSelected: function (args) { - var message = 'Označite lahko največ ' + args.maximum + ' predmet'; - - if (args.maximum == 2) { - message += 'a'; - } else if (args.maximum != 1) { - message += 'e'; - } - - return message; - }, - noResults: function () { - return 'Ni zadetkov.'; - }, - searching: function () { - return 'Iščem…'; - } - }; -}); diff --git a/admin/bower_components/select2/src/js/select2/i18n/sr-Cyrl.js b/admin/bower_components/select2/src/js/select2/i18n/sr-Cyrl.js deleted file mode 100644 index c61184e..0000000 --- a/admin/bower_components/select2/src/js/select2/i18n/sr-Cyrl.js +++ /dev/null @@ -1,55 +0,0 @@ -define(function () { - // Serbian Cyrilic - function ending (count, one, some, many) { - if (count % 10 == 1 && count % 100 != 11) { - return one; - } - - if (count % 10 >= 2 && count % 10 <= 4 && - (count % 100 < 12 || count % 100 > 14)) { - return some; - } - - return many; - } - - return { - errorLoading: function () { - return 'Преузимање није успело.'; - }, - inputTooLong: function (args) { - var overChars = args.input.length - args.maximum; - - var message = 'Обришите ' + overChars + ' симбол'; - - message += ending(overChars, '', 'а', 'а'); - - return message; - }, - inputTooShort: function (args) { - var remainingChars = args.minimum - args.input.length; - - var message = 'Укуцајте бар још ' + remainingChars + ' симбол'; - - message += ending(remainingChars, '', 'а', 'а'); - - return message; - }, - loadingMore: function () { - return 'Преузимање још резултата…'; - }, - maximumSelected: function (args) { - var message = 'Можете изабрати само ' + args.maximum + ' ставк'; - - message += ending(args.maximum, 'у', 'е', 'и'); - - return message; - }, - noResults: function () { - return 'Ништа није пронађено'; - }, - searching: function () { - return 'Претрага…'; - } - }; -}); diff --git a/admin/bower_components/select2/src/js/select2/i18n/sr.js b/admin/bower_components/select2/src/js/select2/i18n/sr.js deleted file mode 100644 index 7821b2b..0000000 --- a/admin/bower_components/select2/src/js/select2/i18n/sr.js +++ /dev/null @@ -1,55 +0,0 @@ -define(function () { - // Serbian - function ending (count, one, some, many) { - if (count % 10 == 1 && count % 100 != 11) { - return one; - } - - if (count % 10 >= 2 && count % 10 <= 4 && - (count % 100 < 12 || count % 100 > 14)) { - return some; - } - - return many; - } - - return { - errorLoading: function () { - return 'Preuzimanje nije uspelo.'; - }, - inputTooLong: function (args) { - var overChars = args.input.length - args.maximum; - - var message = 'Obrišite ' + overChars + ' simbol'; - - message += ending(overChars, '', 'a', 'a'); - - return message; - }, - inputTooShort: function (args) { - var remainingChars = args.minimum - args.input.length; - - var message = 'Ukucajte bar još ' + remainingChars + ' simbol'; - - message += ending(remainingChars, '', 'a', 'a'); - - return message; - }, - loadingMore: function () { - return 'Preuzimanje još rezultata…'; - }, - maximumSelected: function (args) { - var message = 'Možete izabrati samo ' + args.maximum + ' stavk'; - - message += ending(args.maximum, 'u', 'e', 'i'); - - return message; - }, - noResults: function () { - return 'Ništa nije pronađeno'; - }, - searching: function () { - return 'Pretraga…'; - } - }; -}); diff --git a/admin/bower_components/select2/src/js/select2/i18n/sv.js b/admin/bower_components/select2/src/js/select2/i18n/sv.js deleted file mode 100644 index 42bed7e..0000000 --- a/admin/bower_components/select2/src/js/select2/i18n/sv.js +++ /dev/null @@ -1,37 +0,0 @@ -define(function () { - // Swedish - return { - errorLoading: function () { - return 'Resultat kunde inte laddas.'; - }, - inputTooLong: function (args) { - var overChars = args.input.length - args.maximum; - - var message = 'Vänligen sudda ut ' + overChars + ' tecken'; - - return message; - }, - inputTooShort: function (args) { - var remainingChars = args.minimum - args.input.length; - - var message = 'Vänligen skriv in ' + remainingChars + - ' eller fler tecken'; - - return message; - }, - loadingMore: function () { - return 'Laddar fler resultat…'; - }, - maximumSelected: function (args) { - var message = 'Du kan max välja ' + args.maximum + ' element'; - - return message; - }, - noResults: function () { - return 'Inga träffar'; - }, - searching: function () { - return 'Söker…'; - } - }; -}); diff --git a/admin/bower_components/select2/src/js/select2/i18n/th.js b/admin/bower_components/select2/src/js/select2/i18n/th.js deleted file mode 100644 index a7921ee..0000000 --- a/admin/bower_components/select2/src/js/select2/i18n/th.js +++ /dev/null @@ -1,36 +0,0 @@ -define(function () { - // Thai - return { - errorLoading: function () { - return 'ไม่สามารถค้นข้อมูลได้'; - }, - inputTooLong: function (args) { - var overChars = args.input.length - args.maximum; - - var message = 'โปรดลบออก ' + overChars + ' ตัวอักษร'; - - return message; - }, - inputTooShort: function (args) { - var remainingChars = args.minimum - args.input.length; - - var message = 'โปรดพิมพ์เพิ่มอีก ' + remainingChars + ' ตัวอักษร'; - - return message; - }, - loadingMore: function () { - return 'กำลังค้นข้อมูลเพิ่ม…'; - }, - maximumSelected: function (args) { - var message = 'คุณสามารถเลือกได้ไม่เกิน ' + args.maximum + ' รายการ'; - - return message; - }, - noResults: function () { - return 'ไม่พบข้อมูล'; - }, - searching: function () { - return 'กำลังค้นข้อมูล…'; - } - }; -}); diff --git a/admin/bower_components/select2/src/js/select2/i18n/tr.js b/admin/bower_components/select2/src/js/select2/i18n/tr.js deleted file mode 100644 index fd8ffd3..0000000 --- a/admin/bower_components/select2/src/js/select2/i18n/tr.js +++ /dev/null @@ -1,36 +0,0 @@ -define(function () { - // Turkish - return { - errorLoading: function (){ - return 'Sonuç yüklenemedi'; - }, - inputTooLong: function (args) { - var overChars = args.input.length - args.maximum; - - var message = overChars + ' karakter daha girmelisiniz'; - - return message; - }, - inputTooShort: function (args) { - var remainingChars = args.minimum - args.input.length; - - var message = 'En az ' + remainingChars + ' karakter daha girmelisiniz'; - - return message; - }, - loadingMore: function () { - return 'Daha fazla…'; - }, - maximumSelected: function (args) { - var message = 'Sadece ' + args.maximum + ' seçim yapabilirsiniz'; - - return message; - }, - noResults: function () { - return 'Sonuç bulunamadı'; - }, - searching: function () { - return 'Aranıyor…'; - } - }; -}); diff --git a/admin/bower_components/select2/src/js/select2/i18n/uk.js b/admin/bower_components/select2/src/js/select2/i18n/uk.js deleted file mode 100644 index 72067c9..0000000 --- a/admin/bower_components/select2/src/js/select2/i18n/uk.js +++ /dev/null @@ -1,43 +0,0 @@ -define(function () { - // Ukranian - function ending (count, one, couple, more) { - if (count % 100 > 10 && count % 100 < 15) { - return more; - } - if (count % 10 === 1) { - return one; - } - if (count % 10 > 1 && count % 10 < 5) { - return couple; - } - return more; - } - - return { - errorLoading: function () { - return 'Неможливо завантажити результати'; - }, - inputTooLong: function (args) { - var overChars = args.input.length - args.maximum; - return 'Будь ласка, видаліть ' + overChars + ' ' + - ending(args.maximum, 'літеру', 'літери', 'літер'); - }, - inputTooShort: function (args) { - var remainingChars = args.minimum - args.input.length; - return 'Будь ласка, введіть ' + remainingChars + ' або більше літер'; - }, - loadingMore: function () { - return 'Завантаження інших результатів…'; - }, - maximumSelected: function (args) { - return 'Ви можете вибрати лише ' + args.maximum + ' ' + - ending(args.maximum, 'пункт', 'пункти', 'пунктів'); - }, - noResults: function () { - return 'Нічого не знайдено'; - }, - searching: function () { - return 'Пошук…'; - } - }; -}); diff --git a/admin/bower_components/select2/src/js/select2/i18n/vi.js b/admin/bower_components/select2/src/js/select2/i18n/vi.js deleted file mode 100644 index f50ff75..0000000 --- a/admin/bower_components/select2/src/js/select2/i18n/vi.js +++ /dev/null @@ -1,37 +0,0 @@ -define(function () { - // Vietnamese - return { - inputTooLong: function (args) { - var overChars = args.input.length - args.maximum; - - var message = 'Vui lòng nhập ít hơn ' + overChars + ' ký tự'; - - if (overChars != 1) { - message += 's'; - } - - return message; - }, - inputTooShort: function (args) { - var remainingChars = args.minimum - args.input.length; - - var message = 'Vui lòng nhập nhiều hơn ' + remainingChars + ' ký tự"'; - - return message; - }, - loadingMore: function () { - return 'Đang lấy thêm kết quả…'; - }, - maximumSelected: function (args) { - var message = 'Chỉ có thể chọn được ' + args.maximum + ' lựa chọn'; - - return message; - }, - noResults: function () { - return 'Không tìm thấy kết quả'; - }, - searching: function () { - return 'Đang tìm…'; - } - }; -}); diff --git a/admin/bower_components/select2/src/js/select2/i18n/zh-CN.js b/admin/bower_components/select2/src/js/select2/i18n/zh-CN.js deleted file mode 100644 index 4aaec39..0000000 --- a/admin/bower_components/select2/src/js/select2/i18n/zh-CN.js +++ /dev/null @@ -1,36 +0,0 @@ -define(function () { - // Chinese (Simplified) - return { - errorLoading: function () { - return '无法载入结果。'; - }, - inputTooLong: function (args) { - var overChars = args.input.length - args.maximum; - - var message = '请删除' + overChars + '个字符'; - - return message; - }, - inputTooShort: function (args) { - var remainingChars = args.minimum - args.input.length; - - var message = '请再输入至少' + remainingChars + '个字符'; - - return message; - }, - loadingMore: function () { - return '载入更多结果…'; - }, - maximumSelected: function (args) { - var message = '最多只能选择' + args.maximum + '个项目'; - - return message; - }, - noResults: function () { - return '未找到结果'; - }, - searching: function () { - return '搜索中…'; - } - }; -}); diff --git a/admin/bower_components/select2/src/js/select2/i18n/zh-TW.js b/admin/bower_components/select2/src/js/select2/i18n/zh-TW.js deleted file mode 100644 index 80624f1..0000000 --- a/admin/bower_components/select2/src/js/select2/i18n/zh-TW.js +++ /dev/null @@ -1,33 +0,0 @@ -define(function () { - // Chinese (Traditional) - return { - inputTooLong: function (args) { - var overChars = args.input.length - args.maximum; - - var message = '請刪掉' + overChars + '個字元'; - - return message; - }, - inputTooShort: function (args) { - var remainingChars = args.minimum - args.input.length; - - var message = '請再輸入' + remainingChars + '個字元'; - - return message; - }, - loadingMore: function () { - return '載入中…'; - }, - maximumSelected: function (args) { - var message = '你只能選擇最多' + args.maximum + '項'; - - return message; - }, - noResults: function () { - return '沒有找到相符的項目'; - }, - searching: function () { - return '搜尋中…'; - } - }; -}); diff --git a/admin/bower_components/select2/src/js/select2/keys.js b/admin/bower_components/select2/src/js/select2/keys.js deleted file mode 100644 index f449ba4..0000000 --- a/admin/bower_components/select2/src/js/select2/keys.js +++ /dev/null @@ -1,25 +0,0 @@ -define([ - -], function () { - var KEYS = { - BACKSPACE: 8, - TAB: 9, - ENTER: 13, - SHIFT: 16, - CTRL: 17, - ALT: 18, - ESC: 27, - SPACE: 32, - PAGE_UP: 33, - PAGE_DOWN: 34, - END: 35, - HOME: 36, - LEFT: 37, - UP: 38, - RIGHT: 39, - DOWN: 40, - DELETE: 46 - }; - - return KEYS; -}); diff --git a/admin/bower_components/select2/src/js/select2/options.js b/admin/bower_components/select2/src/js/select2/options.js deleted file mode 100644 index 3e48dee..0000000 --- a/admin/bower_components/select2/src/js/select2/options.js +++ /dev/null @@ -1,122 +0,0 @@ -define([ - 'require', - 'jquery', - './defaults', - './utils' -], function (require, $, Defaults, Utils) { - function Options (options, $element) { - this.options = options; - - if ($element != null) { - this.fromElement($element); - } - - this.options = Defaults.apply(this.options); - - if ($element && $element.is('input')) { - var InputCompat = require(this.get('amdBase') + 'compat/inputData'); - - this.options.dataAdapter = Utils.Decorate( - this.options.dataAdapter, - InputCompat - ); - } - } - - Options.prototype.fromElement = function ($e) { - var excludedData = ['select2']; - - if (this.options.multiple == null) { - this.options.multiple = $e.prop('multiple'); - } - - if (this.options.disabled == null) { - this.options.disabled = $e.prop('disabled'); - } - - if (this.options.language == null) { - if ($e.prop('lang')) { - this.options.language = $e.prop('lang').toLowerCase(); - } else if ($e.closest('[lang]').prop('lang')) { - this.options.language = $e.closest('[lang]').prop('lang'); - } - } - - if (this.options.dir == null) { - if ($e.prop('dir')) { - this.options.dir = $e.prop('dir'); - } else if ($e.closest('[dir]').prop('dir')) { - this.options.dir = $e.closest('[dir]').prop('dir'); - } else { - this.options.dir = 'ltr'; - } - } - - $e.prop('disabled', this.options.disabled); - $e.prop('multiple', this.options.multiple); - - if ($e.data('select2Tags')) { - if (this.options.debug && window.console && console.warn) { - console.warn( - 'Select2: The `data-select2-tags` attribute has been changed to ' + - 'use the `data-data` and `data-tags="true"` attributes and will be ' + - 'removed in future versions of Select2.' - ); - } - - $e.data('data', $e.data('select2Tags')); - $e.data('tags', true); - } - - if ($e.data('ajaxUrl')) { - if (this.options.debug && window.console && console.warn) { - console.warn( - 'Select2: The `data-ajax-url` attribute has been changed to ' + - '`data-ajax--url` and support for the old attribute will be removed' + - ' in future versions of Select2.' - ); - } - - $e.attr('ajax--url', $e.data('ajaxUrl')); - $e.data('ajax--url', $e.data('ajaxUrl')); - } - - var dataset = {}; - - // Prefer the element's `dataset` attribute if it exists - // jQuery 1.x does not correctly handle data attributes with multiple dashes - if ($.fn.jquery && $.fn.jquery.substr(0, 2) == '1.' && $e[0].dataset) { - dataset = $.extend(true, {}, $e[0].dataset, $e.data()); - } else { - dataset = $e.data(); - } - - var data = $.extend(true, {}, dataset); - - data = Utils._convertData(data); - - for (var key in data) { - if ($.inArray(key, excludedData) > -1) { - continue; - } - - if ($.isPlainObject(this.options[key])) { - $.extend(this.options[key], data[key]); - } else { - this.options[key] = data[key]; - } - } - - return this; - }; - - Options.prototype.get = function (key) { - return this.options[key]; - }; - - Options.prototype.set = function (key, val) { - this.options[key] = val; - }; - - return Options; -}); diff --git a/admin/bower_components/select2/src/js/select2/results.js b/admin/bower_components/select2/src/js/select2/results.js deleted file mode 100644 index a16b65f..0000000 --- a/admin/bower_components/select2/src/js/select2/results.js +++ /dev/null @@ -1,523 +0,0 @@ -define([ - 'jquery', - './utils' -], function ($, Utils) { - function Results ($element, options, dataAdapter) { - this.$element = $element; - this.data = dataAdapter; - this.options = options; - - Results.__super__.constructor.call(this); - } - - Utils.Extend(Results, Utils.Observable); - - Results.prototype.render = function () { - var $results = $( - '<ul class="select2-results__options" role="tree"></ul>' - ); - - if (this.options.get('multiple')) { - $results.attr('aria-multiselectable', 'true'); - } - - this.$results = $results; - - return $results; - }; - - Results.prototype.clear = function () { - this.$results.empty(); - }; - - Results.prototype.displayMessage = function (params) { - var escapeMarkup = this.options.get('escapeMarkup'); - - this.clear(); - this.hideLoading(); - - var $message = $( - '<li role="treeitem" aria-live="assertive"' + - ' class="select2-results__option"></li>' - ); - - var message = this.options.get('translations').get(params.message); - - $message.append( - escapeMarkup( - message(params.args) - ) - ); - - $message[0].className += ' select2-results__message'; - - this.$results.append($message); - }; - - Results.prototype.hideMessages = function () { - this.$results.find('.select2-results__message').remove(); - }; - - Results.prototype.append = function (data) { - this.hideLoading(); - - var $options = []; - - if (data.results == null || data.results.length === 0) { - if (this.$results.children().length === 0) { - this.trigger('results:message', { - message: 'noResults' - }); - } - - return; - } - - data.results = this.sort(data.results); - - for (var d = 0; d < data.results.length; d++) { - var item = data.results[d]; - - var $option = this.option(item); - - $options.push($option); - } - - this.$results.append($options); - }; - - Results.prototype.position = function ($results, $dropdown) { - var $resultsContainer = $dropdown.find('.select2-results'); - $resultsContainer.append($results); - }; - - Results.prototype.sort = function (data) { - var sorter = this.options.get('sorter'); - - return sorter(data); - }; - - Results.prototype.highlightFirstItem = function () { - var $options = this.$results - .find('.select2-results__option[aria-selected]'); - - var $selected = $options.filter('[aria-selected=true]'); - - // Check if there are any selected options - if ($selected.length > 0) { - // If there are selected options, highlight the first - $selected.first().trigger('mouseenter'); - } else { - // If there are no selected options, highlight the first option - // in the dropdown - $options.first().trigger('mouseenter'); - } - - this.ensureHighlightVisible(); - }; - - Results.prototype.setClasses = function () { - var self = this; - - this.data.current(function (selected) { - var selectedIds = $.map(selected, function (s) { - return s.id.toString(); - }); - - var $options = self.$results - .find('.select2-results__option[aria-selected]'); - - $options.each(function () { - var $option = $(this); - - var item = $.data(this, 'data'); - - // id needs to be converted to a string when comparing - var id = '' + item.id; - - if ((item.element != null && item.element.selected) || - (item.element == null && $.inArray(id, selectedIds) > -1)) { - $option.attr('aria-selected', 'true'); - } else { - $option.attr('aria-selected', 'false'); - } - }); - - }); - }; - - Results.prototype.showLoading = function (params) { - this.hideLoading(); - - var loadingMore = this.options.get('translations').get('searching'); - - var loading = { - disabled: true, - loading: true, - text: loadingMore(params) - }; - var $loading = this.option(loading); - $loading.className += ' loading-results'; - - this.$results.prepend($loading); - }; - - Results.prototype.hideLoading = function () { - this.$results.find('.loading-results').remove(); - }; - - Results.prototype.option = function (data) { - var option = document.createElement('li'); - option.className = 'select2-results__option'; - - var attrs = { - 'role': 'treeitem', - 'aria-selected': 'false' - }; - - if (data.disabled) { - delete attrs['aria-selected']; - attrs['aria-disabled'] = 'true'; - } - - if (data.id == null) { - delete attrs['aria-selected']; - } - - if (data._resultId != null) { - option.id = data._resultId; - } - - if (data.title) { - option.title = data.title; - } - - if (data.children) { - attrs.role = 'group'; - attrs['aria-label'] = data.text; - delete attrs['aria-selected']; - } - - for (var attr in attrs) { - var val = attrs[attr]; - - option.setAttribute(attr, val); - } - - if (data.children) { - var $option = $(option); - - var label = document.createElement('strong'); - label.className = 'select2-results__group'; - - var $label = $(label); - this.template(data, label); - - var $children = []; - - for (var c = 0; c < data.children.length; c++) { - var child = data.children[c]; - - var $child = this.option(child); - - $children.push($child); - } - - var $childrenContainer = $('<ul></ul>', { - 'class': 'select2-results__options select2-results__options--nested' - }); - - $childrenContainer.append($children); - - $option.append(label); - $option.append($childrenContainer); - } else { - this.template(data, option); - } - - $.data(option, 'data', data); - - return option; - }; - - Results.prototype.bind = function (container, $container) { - var self = this; - - var id = container.id + '-results'; - - this.$results.attr('id', id); - - container.on('results:all', function (params) { - self.clear(); - self.append(params.data); - - if (container.isOpen()) { - self.setClasses(); - self.highlightFirstItem(); - } - }); - - container.on('results:append', function (params) { - self.append(params.data); - - if (container.isOpen()) { - self.setClasses(); - } - }); - - container.on('query', function (params) { - self.hideMessages(); - self.showLoading(params); - }); - - container.on('select', function () { - if (!container.isOpen()) { - return; - } - - self.setClasses(); - self.highlightFirstItem(); - }); - - container.on('unselect', function () { - if (!container.isOpen()) { - return; - } - - self.setClasses(); - self.highlightFirstItem(); - }); - - container.on('open', function () { - // When the dropdown is open, aria-expended="true" - self.$results.attr('aria-expanded', 'true'); - self.$results.attr('aria-hidden', 'false'); - - self.setClasses(); - self.ensureHighlightVisible(); - }); - - container.on('close', function () { - // When the dropdown is closed, aria-expended="false" - self.$results.attr('aria-expanded', 'false'); - self.$results.attr('aria-hidden', 'true'); - self.$results.removeAttr('aria-activedescendant'); - }); - - container.on('results:toggle', function () { - var $highlighted = self.getHighlightedResults(); - - if ($highlighted.length === 0) { - return; - } - - $highlighted.trigger('mouseup'); - }); - - container.on('results:select', function () { - var $highlighted = self.getHighlightedResults(); - - if ($highlighted.length === 0) { - return; - } - - var data = $highlighted.data('data'); - - if ($highlighted.attr('aria-selected') == 'true') { - self.trigger('close', {}); - } else { - self.trigger('select', { - data: data - }); - } - }); - - container.on('results:previous', function () { - var $highlighted = self.getHighlightedResults(); - - var $options = self.$results.find('[aria-selected]'); - - var currentIndex = $options.index($highlighted); - - // If we are already at te top, don't move further - if (currentIndex === 0) { - return; - } - - var nextIndex = currentIndex - 1; - - // If none are highlighted, highlight the first - if ($highlighted.length === 0) { - nextIndex = 0; - } - - var $next = $options.eq(nextIndex); - - $next.trigger('mouseenter'); - - var currentOffset = self.$results.offset().top; - var nextTop = $next.offset().top; - var nextOffset = self.$results.scrollTop() + (nextTop - currentOffset); - - if (nextIndex === 0) { - self.$results.scrollTop(0); - } else if (nextTop - currentOffset < 0) { - self.$results.scrollTop(nextOffset); - } - }); - - container.on('results:next', function () { - var $highlighted = self.getHighlightedResults(); - - var $options = self.$results.find('[aria-selected]'); - - var currentIndex = $options.index($highlighted); - - var nextIndex = currentIndex + 1; - - // If we are at the last option, stay there - if (nextIndex >= $options.length) { - return; - } - - var $next = $options.eq(nextIndex); - - $next.trigger('mouseenter'); - - var currentOffset = self.$results.offset().top + - self.$results.outerHeight(false); - var nextBottom = $next.offset().top + $next.outerHeight(false); - var nextOffset = self.$results.scrollTop() + nextBottom - currentOffset; - - if (nextIndex === 0) { - self.$results.scrollTop(0); - } else if (nextBottom > currentOffset) { - self.$results.scrollTop(nextOffset); - } - }); - - container.on('results:focus', function (params) { - params.element.addClass('select2-results__option--highlighted'); - }); - - container.on('results:message', function (params) { - self.displayMessage(params); - }); - - if ($.fn.mousewheel) { - this.$results.on('mousewheel', function (e) { - var top = self.$results.scrollTop(); - - var bottom = self.$results.get(0).scrollHeight - top + e.deltaY; - - var isAtTop = e.deltaY > 0 && top - e.deltaY <= 0; - var isAtBottom = e.deltaY < 0 && bottom <= self.$results.height(); - - if (isAtTop) { - self.$results.scrollTop(0); - - e.preventDefault(); - e.stopPropagation(); - } else if (isAtBottom) { - self.$results.scrollTop( - self.$results.get(0).scrollHeight - self.$results.height() - ); - - e.preventDefault(); - e.stopPropagation(); - } - }); - } - - this.$results.on('mouseup', '.select2-results__option[aria-selected]', - function (evt) { - var $this = $(this); - - var data = $this.data('data'); - - if ($this.attr('aria-selected') === 'true') { - if (self.options.get('multiple')) { - self.trigger('unselect', { - originalEvent: evt, - data: data - }); - } else { - self.trigger('close', {}); - } - - return; - } - - self.trigger('select', { - originalEvent: evt, - data: data - }); - }); - - this.$results.on('mouseenter', '.select2-results__option[aria-selected]', - function (evt) { - var data = $(this).data('data'); - - self.getHighlightedResults() - .removeClass('select2-results__option--highlighted'); - - self.trigger('results:focus', { - data: data, - element: $(this) - }); - }); - }; - - Results.prototype.getHighlightedResults = function () { - var $highlighted = this.$results - .find('.select2-results__option--highlighted'); - - return $highlighted; - }; - - Results.prototype.destroy = function () { - this.$results.remove(); - }; - - Results.prototype.ensureHighlightVisible = function () { - var $highlighted = this.getHighlightedResults(); - - if ($highlighted.length === 0) { - return; - } - - var $options = this.$results.find('[aria-selected]'); - - var currentIndex = $options.index($highlighted); - - var currentOffset = this.$results.offset().top; - var nextTop = $highlighted.offset().top; - var nextOffset = this.$results.scrollTop() + (nextTop - currentOffset); - - var offsetDelta = nextTop - currentOffset; - nextOffset -= $highlighted.outerHeight(false) * 2; - - if (currentIndex <= 2) { - this.$results.scrollTop(0); - } else if (offsetDelta > this.$results.outerHeight() || offsetDelta < 0) { - this.$results.scrollTop(nextOffset); - } - }; - - Results.prototype.template = function (result, container) { - var template = this.options.get('templateResult'); - var escapeMarkup = this.options.get('escapeMarkup'); - - var content = template(result, container); - - if (content == null) { - container.style.display = 'none'; - } else if (typeof content === 'string') { - container.innerHTML = escapeMarkup(content); - } else { - $(container).append(content); - } - }; - - return Results; -}); diff --git a/admin/bower_components/select2/src/js/select2/selection/allowClear.js b/admin/bower_components/select2/src/js/select2/selection/allowClear.js deleted file mode 100644 index d350206..0000000 --- a/admin/bower_components/select2/src/js/select2/selection/allowClear.js +++ /dev/null @@ -1,97 +0,0 @@ -define([ - 'jquery', - '../keys' -], function ($, KEYS) { - function AllowClear () { } - - AllowClear.prototype.bind = function (decorated, container, $container) { - var self = this; - - decorated.call(this, container, $container); - - if (this.placeholder == null) { - if (this.options.get('debug') && window.console && console.error) { - console.error( - 'Select2: The `allowClear` option should be used in combination ' + - 'with the `placeholder` option.' - ); - } - } - - this.$selection.on('mousedown', '.select2-selection__clear', - function (evt) { - self._handleClear(evt); - }); - - container.on('keypress', function (evt) { - self._handleKeyboardClear(evt, container); - }); - }; - - AllowClear.prototype._handleClear = function (_, evt) { - // Ignore the event if it is disabled - if (this.options.get('disabled')) { - return; - } - - var $clear = this.$selection.find('.select2-selection__clear'); - - // Ignore the event if nothing has been selected - if ($clear.length === 0) { - return; - } - - evt.stopPropagation(); - - var data = $clear.data('data'); - - for (var d = 0; d < data.length; d++) { - var unselectData = { - data: data[d] - }; - - // Trigger the `unselect` event, so people can prevent it from being - // cleared. - this.trigger('unselect', unselectData); - - // If the event was prevented, don't clear it out. - if (unselectData.prevented) { - return; - } - } - - this.$element.val(this.placeholder.id).trigger('change'); - - this.trigger('toggle', {}); - }; - - AllowClear.prototype._handleKeyboardClear = function (_, evt, container) { - if (container.isOpen()) { - return; - } - - if (evt.which == KEYS.DELETE || evt.which == KEYS.BACKSPACE) { - this._handleClear(evt); - } - }; - - AllowClear.prototype.update = function (decorated, data) { - decorated.call(this, data); - - if (this.$selection.find('.select2-selection__placeholder').length > 0 || - data.length === 0) { - return; - } - - var $remove = $( - '<span class="select2-selection__clear">' + - '&times;' + - '</span>' - ); - $remove.data('data', data); - - this.$selection.find('.select2-selection__rendered').prepend($remove); - }; - - return AllowClear; -}); diff --git a/admin/bower_components/select2/src/js/select2/selection/base.js b/admin/bower_components/select2/src/js/select2/selection/base.js deleted file mode 100644 index cd3aafd..0000000 --- a/admin/bower_components/select2/src/js/select2/selection/base.js +++ /dev/null @@ -1,158 +0,0 @@ -define([ - 'jquery', - '../utils', - '../keys' -], function ($, Utils, KEYS) { - function BaseSelection ($element, options) { - this.$element = $element; - this.options = options; - - BaseSelection.__super__.constructor.call(this); - } - - Utils.Extend(BaseSelection, Utils.Observable); - - BaseSelection.prototype.render = function () { - var $selection = $( - '<span class="select2-selection" role="combobox" ' + - ' aria-haspopup="true" aria-expanded="false">' + - '</span>' - ); - - this._tabindex = 0; - - if (this.$element.data('old-tabindex') != null) { - this._tabindex = this.$element.data('old-tabindex'); - } else if (this.$element.attr('tabindex') != null) { - this._tabindex = this.$element.attr('tabindex'); - } - - $selection.attr('title', this.$element.attr('title')); - $selection.attr('tabindex', this._tabindex); - - this.$selection = $selection; - - return $selection; - }; - - BaseSelection.prototype.bind = function (container, $container) { - var self = this; - - var id = container.id + '-container'; - var resultsId = container.id + '-results'; - - this.container = container; - - this.$selection.on('focus', function (evt) { - self.trigger('focus', evt); - }); - - this.$selection.on('blur', function (evt) { - self._handleBlur(evt); - }); - - this.$selection.on('keydown', function (evt) { - self.trigger('keypress', evt); - - if (evt.which === KEYS.SPACE) { - evt.preventDefault(); - } - }); - - container.on('results:focus', function (params) { - self.$selection.attr('aria-activedescendant', params.data._resultId); - }); - - container.on('selection:update', function (params) { - self.update(params.data); - }); - - container.on('open', function () { - // When the dropdown is open, aria-expanded="true" - self.$selection.attr('aria-expanded', 'true'); - self.$selection.attr('aria-owns', resultsId); - - self._attachCloseHandler(container); - }); - - container.on('close', function () { - // When the dropdown is closed, aria-expanded="false" - self.$selection.attr('aria-expanded', 'false'); - self.$selection.removeAttr('aria-activedescendant'); - self.$selection.removeAttr('aria-owns'); - - self.$selection.focus(); - - self._detachCloseHandler(container); - }); - - container.on('enable', function () { - self.$selection.attr('tabindex', self._tabindex); - }); - - container.on('disable', function () { - self.$selection.attr('tabindex', '-1'); - }); - }; - - BaseSelection.prototype._handleBlur = function (evt) { - var self = this; - - // This needs to be delayed as the active element is the body when the tab - // key is pressed, possibly along with others. - window.setTimeout(function () { - // Don't trigger `blur` if the focus is still in the selection - if ( - (document.activeElement == self.$selection[0]) || - ($.contains(self.$selection[0], document.activeElement)) - ) { - return; - } - - self.trigger('blur', evt); - }, 1); - }; - - BaseSelection.prototype._attachCloseHandler = function (container) { - var self = this; - - $(document.body).on('mousedown.select2.' + container.id, function (e) { - var $target = $(e.target); - - var $select = $target.closest('.select2'); - - var $all = $('.select2.select2-container--open'); - - $all.each(function () { - var $this = $(this); - - if (this == $select[0]) { - return; - } - - var $element = $this.data('element'); - - $element.select2('close'); - }); - }); - }; - - BaseSelection.prototype._detachCloseHandler = function (container) { - $(document.body).off('mousedown.select2.' + container.id); - }; - - BaseSelection.prototype.position = function ($selection, $container) { - var $selectionContainer = $container.find('.selection'); - $selectionContainer.append($selection); - }; - - BaseSelection.prototype.destroy = function () { - this._detachCloseHandler(this.container); - }; - - BaseSelection.prototype.update = function (data) { - throw new Error('The `update` method must be defined in child classes.'); - }; - - return BaseSelection; -}); diff --git a/admin/bower_components/select2/src/js/select2/selection/clickMask.js b/admin/bower_components/select2/src/js/select2/selection/clickMask.js deleted file mode 100644 index 2b4ac30..0000000 --- a/admin/bower_components/select2/src/js/select2/selection/clickMask.js +++ /dev/null @@ -1,29 +0,0 @@ -define([ - 'jquery' -], function ($) { - function ClickMask () { } - - ClickMask.prototype.bind = function (decorate, $container, container) { - var self = this; - - decorate.call(this, $container, container); - - this.$mask = $( - '<div class="select2-close-mask"></div>' - ); - - this.$mask.on('mousedown touchstart click', function () { - self.trigger('close', {}); - }); - }; - - ClickMask.prototype._attachCloseHandler = function (decorate, container) { - $(document.body).append(this.$mask); - }; - - ClickMask.prototype._detachCloseHandler = function (deocrate, container) { - this.$mask.detach(); - }; - - return ClickMask; -}); diff --git a/admin/bower_components/select2/src/js/select2/selection/eventRelay.js b/admin/bower_components/select2/src/js/select2/selection/eventRelay.js deleted file mode 100644 index a91e9c5..0000000 --- a/admin/bower_components/select2/src/js/select2/selection/eventRelay.js +++ /dev/null @@ -1,45 +0,0 @@ -define([ - 'jquery' -], function ($) { - function EventRelay () { } - - EventRelay.prototype.bind = function (decorated, container, $container) { - var self = this; - var relayEvents = [ - 'open', 'opening', - 'close', 'closing', - 'select', 'selecting', - 'unselect', 'unselecting' - ]; - - var preventableEvents = ['opening', 'closing', 'selecting', 'unselecting']; - - decorated.call(this, container, $container); - - container.on('*', function (name, params) { - // Ignore events that should not be relayed - if ($.inArray(name, relayEvents) === -1) { - return; - } - - // The parameters should always be an object - params = params || {}; - - // Generate the jQuery event for the Select2 event - var evt = $.Event('select2:' + name, { - params: params - }); - - self.$element.trigger(evt); - - // Only handle preventable events if it was one - if ($.inArray(name, preventableEvents) === -1) { - return; - } - - params.prevented = evt.isDefaultPrevented(); - }); - }; - - return EventRelay; -}); diff --git a/admin/bower_components/select2/src/js/select2/selection/multiple.js b/admin/bower_components/select2/src/js/select2/selection/multiple.js deleted file mode 100644 index ae0f7cc..0000000 --- a/admin/bower_components/select2/src/js/select2/selection/multiple.js +++ /dev/null @@ -1,109 +0,0 @@ -define([ - 'jquery', - './base', - '../utils' -], function ($, BaseSelection, Utils) { - function MultipleSelection ($element, options) { - MultipleSelection.__super__.constructor.apply(this, arguments); - } - - Utils.Extend(MultipleSelection, BaseSelection); - - MultipleSelection.prototype.render = function () { - var $selection = MultipleSelection.__super__.render.call(this); - - $selection.addClass('select2-selection--multiple'); - - $selection.html( - '<ul class="select2-selection__rendered"></ul>' - ); - - return $selection; - }; - - MultipleSelection.prototype.bind = function (container, $container) { - var self = this; - - MultipleSelection.__super__.bind.apply(this, arguments); - - this.$selection.on('click', function (evt) { - self.trigger('toggle', { - originalEvent: evt - }); - }); - - this.$selection.on( - 'click', - '.select2-selection__choice__remove', - function (evt) { - // Ignore the event if it is disabled - if (self.options.get('disabled')) { - return; - } - - var $remove = $(this); - var $selection = $remove.parent(); - - var data = $selection.data('data'); - - self.trigger('unselect', { - originalEvent: evt, - data: data - }); - } - ); - }; - - MultipleSelection.prototype.clear = function () { - this.$selection.find('.select2-selection__rendered').empty(); - }; - - MultipleSelection.prototype.display = function (data, container) { - var template = this.options.get('templateSelection'); - var escapeMarkup = this.options.get('escapeMarkup'); - - return escapeMarkup(template(data, container)); - }; - - MultipleSelection.prototype.selectionContainer = function () { - var $container = $( - '<li class="select2-selection__choice">' + - '<span class="select2-selection__choice__remove" role="presentation">' + - '&times;' + - '</span>' + - '</li>' - ); - - return $container; - }; - - MultipleSelection.prototype.update = function (data) { - this.clear(); - - if (data.length === 0) { - return; - } - - var $selections = []; - - for (var d = 0; d < data.length; d++) { - var selection = data[d]; - - var $selection = this.selectionContainer(); - var formatted = this.display(selection, $selection); - - $selection.append(formatted); - $selection.prop('title', selection.title || selection.text); - - $selection.data('data', selection); - - $selections.push($selection); - } - - var $rendered = this.$selection.find('.select2-selection__rendered'); - - Utils.appendMany($rendered, $selections); - }; - - return MultipleSelection; -}); diff --git a/admin/bower_components/select2/src/js/select2/selection/placeholder.js b/admin/bower_components/select2/src/js/select2/selection/placeholder.js deleted file mode 100644 index 87fbeda..0000000 --- a/admin/bower_components/select2/src/js/select2/selection/placeholder.js +++ /dev/null @@ -1,49 +0,0 @@ -define([ - '../utils' -], function (Utils) { - function Placeholder (decorated, $element, options) { - this.placeholder = this.normalizePlaceholder(options.get('placeholder')); - - decorated.call(this, $element, options); - } - - Placeholder.prototype.normalizePlaceholder = function (_, placeholder) { - if (typeof placeholder === 'string') { - placeholder = { - id: '', - text: placeholder - }; - } - - return placeholder; - }; - - Placeholder.prototype.createPlaceholder = function (decorated, placeholder) { - var $placeholder = this.selectionContainer(); - - $placeholder.html(this.display(placeholder)); - $placeholder.addClass('select2-selection__placeholder') - .removeClass('select2-selection__choice'); - - return $placeholder; - }; - - Placeholder.prototype.update = function (decorated, data) { - var singlePlaceholder = ( - data.length == 1 && data[0].id != this.placeholder.id - ); - var multipleSelections = data.length > 1; - - if (multipleSelections || singlePlaceholder) { - return decorated.call(this, data); - } - - this.clear(); - - var $placeholder = this.createPlaceholder(this.placeholder); - - this.$selection.find('.select2-selection__rendered').append($placeholder); - }; - - return Placeholder; -}); diff --git a/admin/bower_components/select2/src/js/select2/selection/search.js b/admin/bower_components/select2/src/js/select2/selection/search.js deleted file mode 100644 index 77c4edc..0000000 --- a/admin/bower_components/select2/src/js/select2/selection/search.js +++ /dev/null @@ -1,222 +0,0 @@ -define([ - 'jquery', - '../utils', - '../keys' -], function ($, Utils, KEYS) { - function Search (decorated, $element, options) { - decorated.call(this, $element, options); - } - - Search.prototype.render = function (decorated) { - var $search = $( - '<li class="select2-search select2-search--inline">' + - '<input class="select2-search__field" type="search" tabindex="-1"' + - ' autocomplete="off" autocorrect="off" autocapitalize="off"' + - ' spellcheck="false" role="textbox" aria-autocomplete="list" />' + - '</li>' - ); - - this.$searchContainer = $search; - this.$search = $search.find('input'); - - var $rendered = decorated.call(this); - - this._transferTabIndex(); - - return $rendered; - }; - - Search.prototype.bind = function (decorated, container, $container) { - var self = this; - - decorated.call(this, container, $container); - - container.on('open', function () { - self.$search.trigger('focus'); - }); - - container.on('close', function () { - self.$search.val(''); - self.$search.removeAttr('aria-activedescendant'); - self.$search.trigger('focus'); - }); - - container.on('enable', function () { - self.$search.prop('disabled', false); - - self._transferTabIndex(); - }); - - container.on('disable', function () { - self.$search.prop('disabled', true); - }); - - container.on('focus', function (evt) { - self.$search.trigger('focus'); - }); - - container.on('results:focus', function (params) { - self.$search.attr('aria-activedescendant', params.id); - }); - - this.$selection.on('focusin', '.select2-search--inline', function (evt) { - self.trigger('focus', evt); - }); - - this.$selection.on('focusout', '.select2-search--inline', function (evt) { - self._handleBlur(evt); - }); - - this.$selection.on('keydown', '.select2-search--inline', function (evt) { - evt.stopPropagation(); - - self.trigger('keypress', evt); - - self._keyUpPrevented = evt.isDefaultPrevented(); - - var key = evt.which; - - if (key === KEYS.BACKSPACE && self.$search.val() === '') { - var $previousChoice = self.$searchContainer - .prev('.select2-selection__choice'); - - if ($previousChoice.length > 0) { - var item = $previousChoice.data('data'); - - self.searchRemoveChoice(item); - - evt.preventDefault(); - } - } - }); - - // Try to detect the IE version should the `documentMode` property that - // is stored on the document. This is only implemented in IE and is - // slightly cleaner than doing a user agent check. - // This property is not available in Edge, but Edge also doesn't have - // this bug. - var msie = document.documentMode; - var disableInputEvents = msie && msie <= 11; - - // Workaround for browsers which do not support the `input` event - // This will prevent double-triggering of events for browsers which support - // both the `keyup` and `input` events. - this.$selection.on( - 'input.searchcheck', - '.select2-search--inline', - function (evt) { - // IE will trigger the `input` event when a placeholder is used on a - // search box. To get around this issue, we are forced to ignore all - // `input` events in IE and keep using `keyup`. - if (disableInputEvents) { - self.$selection.off('input.search input.searchcheck'); - return; - } - - // Unbind the duplicated `keyup` event - self.$selection.off('keyup.search'); - } - ); - - this.$selection.on( - 'keyup.search input.search', - '.select2-search--inline', - function (evt) { - // IE will trigger the `input` event when a placeholder is used on a - // search box. To get around this issue, we are forced to ignore all - // `input` events in IE and keep using `keyup`. - if (disableInputEvents && evt.type === 'input') { - self.$selection.off('input.search input.searchcheck'); - return; - } - - var key = evt.which; - - // We can freely ignore events from modifier keys - if (key == KEYS.SHIFT || key == KEYS.CTRL || key == KEYS.ALT) { - return; - } - - // Tabbing will be handled during the `keydown` phase - if (key == KEYS.TAB) { - return; - } - - self.handleSearch(evt); - } - ); - }; - - /** - * This method will transfer the tabindex attribute from the rendered - * selection to the search box. This allows for the search box to be used as - * the primary focus instead of the selection container. - * - * @private - */ - Search.prototype._transferTabIndex = function (decorated) { - this.$search.attr('tabindex', this.$selection.attr('tabindex')); - this.$selection.attr('tabindex', '-1'); - }; - - Search.prototype.createPlaceholder = function (decorated, placeholder) { - this.$search.attr('placeholder', placeholder.text); - }; - - Search.prototype.update = function (decorated, data) { - var searchHadFocus = this.$search[0] == document.activeElement; - - this.$search.attr('placeholder', ''); - - decorated.call(this, data); - - this.$selection.find('.select2-selection__rendered') - .append(this.$searchContainer); - - this.resizeSearch(); - if (searchHadFocus) { - this.$search.focus(); - } - }; - - Search.prototype.handleSearch = function () { - this.resizeSearch(); - - if (!this._keyUpPrevented) { - var input = this.$search.val(); - - this.trigger('query', { - term: input - }); - } - - this._keyUpPrevented = false; - }; - - Search.prototype.searchRemoveChoice = function (decorated, item) { - this.trigger('unselect', { - data: item - }); - - this.$search.val(item.text); - this.handleSearch(); - }; - - Search.prototype.resizeSearch = function () { - this.$search.css('width', '25px'); - - var width = ''; - - if (this.$search.attr('placeholder') !== '') { - width = this.$selection.find('.select2-selection__rendered').innerWidth(); - } else { - var minimumWidth = this.$search.val().length + 1; - - width = (minimumWidth * 0.75) + 'em'; - } - - this.$search.css('width', width); - }; - - return Search; -}); diff --git a/admin/bower_components/select2/src/js/select2/selection/single.js b/admin/bower_components/select2/src/js/select2/selection/single.js deleted file mode 100644 index 89c21db..0000000 --- a/admin/bower_components/select2/src/js/select2/selection/single.js +++ /dev/null @@ -1,99 +0,0 @@ -define([ - 'jquery', - './base', - '../utils', - '../keys' -], function ($, BaseSelection, Utils, KEYS) { - function SingleSelection () { - SingleSelection.__super__.constructor.apply(this, arguments); - } - - Utils.Extend(SingleSelection, BaseSelection); - - SingleSelection.prototype.render = function () { - var $selection = SingleSelection.__super__.render.call(this); - - $selection.addClass('select2-selection--single'); - - $selection.html( - '<span class="select2-selection__rendered"></span>' + - '<span class="select2-selection__arrow" role="presentation">' + - '<b role="presentation"></b>' + - '</span>' - ); - - return $selection; - }; - - SingleSelection.prototype.bind = function (container, $container) { - var self = this; - - SingleSelection.__super__.bind.apply(this, arguments); - - var id = container.id + '-container'; - - this.$selection.find('.select2-selection__rendered').attr('id', id); - this.$selection.attr('aria-labelledby', id); - - this.$selection.on('mousedown', function (evt) { - // Only respond to left clicks - if (evt.which !== 1) { - return; - } - - self.trigger('toggle', { - originalEvent: evt - }); - }); - - this.$selection.on('focus', function (evt) { - // User focuses on the container - }); - - this.$selection.on('blur', function (evt) { - // User exits the container - }); - - container.on('focus', function (evt) { - if (!container.isOpen()) { - self.$selection.focus(); - } - }); - - container.on('selection:update', function (params) { - self.update(params.data); - }); - }; - - SingleSelection.prototype.clear = function () { - this.$selection.find('.select2-selection__rendered').empty(); - }; - - SingleSelection.prototype.display = function (data, container) { - var template = this.options.get('templateSelection'); - var escapeMarkup = this.options.get('escapeMarkup'); - - return escapeMarkup(template(data, container)); - }; - - SingleSelection.prototype.selectionContainer = function () { - return $('<span></span>'); - }; - - SingleSelection.prototype.update = function (data) { - if (data.length === 0) { - this.clear(); - return; - } - - var selection = data[0]; - - var $rendered = this.$selection.find('.select2-selection__rendered'); - var formatted = this.display(selection, $rendered); - - $rendered.empty().append(formatted); - $rendered.prop('title', selection.title || selection.text); - }; - - return SingleSelection; -}); diff --git a/admin/bower_components/select2/src/js/select2/selection/stopPropagation.js b/admin/bower_components/select2/src/js/select2/selection/stopPropagation.js deleted file mode 100644 index 382f1e7..0000000 --- a/admin/bower_components/select2/src/js/select2/selection/stopPropagation.js +++ /dev/null @@ -1,38 +0,0 @@ -define([ - -], function () { - function StopPropagation () { } - - StopPropagation.prototype.bind = function (decorated, container, $container) { - decorated.call(this, container, $container); - - var stoppedEvents = [ - 'blur', - 'change', - 'click', - 'dblclick', - 'focus', - 'focusin', - 'focusout', - 'input', - 'keydown', - 'keyup', - 'keypress', - 'mousedown', - 'mouseenter', - 'mouseleave', - 'mousemove', - 'mouseover', - 'mouseup', - 'search', - 'touchend', - 'touchstart' - ]; - - this.$selection.on(stoppedEvents.join(' '), function (evt) { - evt.stopPropagation(); - }); - }; - - return StopPropagation; -}); diff --git a/admin/bower_components/select2/src/js/select2/translation.js b/admin/bower_components/select2/src/js/select2/translation.js deleted file mode 100644 index 5394c18..0000000 --- a/admin/bower_components/select2/src/js/select2/translation.js +++ /dev/null @@ -1,36 +0,0 @@ -define([ - 'jquery', - 'require' -], function ($, require) { - function Translation (dict) { - this.dict = dict || {}; - } - - Translation.prototype.all = function () { - return this.dict; - }; - - Translation.prototype.get = function (key) { - return this.dict[key]; - }; - - Translation.prototype.extend = function (translation) { - this.dict = $.extend({}, translation.all(), this.dict); - }; - - // Static functions - - Translation._cache = {}; - - Translation.loadPath = function (path) { - if (!(path in Translation._cache)) { - var translations = require(path); - - Translation._cache[path] = translations; - } - - return new Translation(Translation._cache[path]); - }; - - return Translation; -}); diff --git a/admin/bower_components/select2/src/js/select2/utils.js b/admin/bower_components/select2/src/js/select2/utils.js deleted file mode 100644 index d1a23d2..0000000 --- a/admin/bower_components/select2/src/js/select2/utils.js +++ /dev/null @@ -1,276 +0,0 @@ -define([ - 'jquery' -], function ($) { - var Utils = {}; - - Utils.Extend = function (ChildClass, SuperClass) { - var __hasProp = {}.hasOwnProperty; - - function BaseConstructor () { - this.constructor = ChildClass; - } - - for (var key in SuperClass) { - if (__hasProp.call(SuperClass, key)) { - ChildClass[key] = SuperClass[key]; - } - } - - BaseConstructor.prototype = SuperClass.prototype; - ChildClass.prototype = new BaseConstructor(); - ChildClass.__super__ = SuperClass.prototype; - - return ChildClass; - }; - - function getMethods (theClass) { - var proto = theClass.prototype; - - var methods = []; - - for (var methodName in proto) { - var m = proto[methodName]; - - if (typeof m !== 'function') { - continue; - } - - if (methodName === 'constructor') { - continue; - } - - methods.push(methodName); - } - - return methods; - } - - Utils.Decorate = function (SuperClass, DecoratorClass) { - var decoratedMethods = getMethods(DecoratorClass); - var superMethods = getMethods(SuperClass); - - function DecoratedClass () { - var unshift = Array.prototype.unshift; - - var argCount = DecoratorClass.prototype.constructor.length; - - var calledConstructor = SuperClass.prototype.constructor; - - if (argCount > 0) { - unshift.call(arguments, SuperClass.prototype.constructor); - - calledConstructor = DecoratorClass.prototype.constructor; - } - - calledConstructor.apply(this, arguments); - } - - DecoratorClass.displayName = SuperClass.displayName; - - function ctr () { - this.constructor = DecoratedClass; - } - - DecoratedClass.prototype = new ctr(); - - for (var m = 0; m < superMethods.length; m++) { - var superMethod = superMethods[m]; - - DecoratedClass.prototype[superMethod] = - SuperClass.prototype[superMethod]; - } - - var calledMethod = function (methodName) { - // Stub out the original method if it's not decorating an actual method - var originalMethod = function () {}; - - if (methodName in DecoratedClass.prototype) { - originalMethod = DecoratedClass.prototype[methodName]; - } - - var decoratedMethod = DecoratorClass.prototype[methodName]; - - return function () { - var unshift = Array.prototype.unshift; - - unshift.call(arguments, originalMethod); - - return decoratedMethod.apply(this, arguments); - }; - }; - - for (var d = 0; d < decoratedMethods.length; d++) { - var decoratedMethod = decoratedMethods[d]; - - DecoratedClass.prototype[decoratedMethod] = calledMethod(decoratedMethod); - } - - return DecoratedClass; - }; - - var Observable = function () { - this.listeners = {}; - }; - - Observable.prototype.on = function (event, callback) { - this.listeners = this.listeners || {}; - - if (event in this.listeners) { - this.listeners[event].push(callback); - } else { - this.listeners[event] = [callback]; - } - }; - - Observable.prototype.trigger = function (event) { - var slice = Array.prototype.slice; - var params = slice.call(arguments, 1); - - this.listeners = this.listeners || {}; - - // Params should always come in as an array - if (params == null) { - params = []; - } - - // If there are no arguments to the event, use a temporary object - if (params.length === 0) { - params.push({}); - } - - // Set the `_type` of the first object to the event - params[0]._type = event; - - if (event in this.listeners) { - this.invoke(this.listeners[event], slice.call(arguments, 1)); - } - - if ('*' in this.listeners) { - this.invoke(this.listeners['*'], arguments); - } - }; - - Observable.prototype.invoke = function (listeners, params) { - for (var i = 0, len = listeners.length; i < len; i++) { - listeners[i].apply(this, params); - } - }; - - Utils.Observable = Observable; - - Utils.generateChars = function (length) { - var chars = ''; - - for (var i = 0; i < length; i++) { - var randomChar = Math.floor(Math.random() * 36); - chars += randomChar.toString(36); - } - - return chars; - }; - - Utils.bind = function (func, context) { - return function () { - func.apply(context, arguments); - }; - }; - - Utils._convertData = function (data) { - for (var originalKey in data) { - var keys = originalKey.split('-'); - - var dataLevel = data; - - if (keys.length === 1) { - continue; - } - - for (var k = 0; k < keys.length; k++) { - var key = keys[k]; - - // Lowercase the first letter - // By default, dash-separated becomes camelCase - key = key.substring(0, 1).toLowerCase() + key.substring(1); - - if (!(key in dataLevel)) { - dataLevel[key] = {}; - } - - if (k == keys.length - 1) { - dataLevel[key] = data[originalKey]; - } - - dataLevel = dataLevel[key]; - } - - delete data[originalKey]; - } - - return data; - }; - - Utils.hasScroll = function (index, el) { - // Adapted from the function created by @ShadowScripter - // and adapted by @BillBarry on the Stack Exchange Code Review website. - // The original code can be found at - // http://codereview.stackexchange.com/q/13338 - // and was designed to be used with the Sizzle selector engine. - - var $el = $(el); - var overflowX = el.style.overflowX; - var overflowY = el.style.overflowY; - - //Check both x and y declarations - if (overflowX === overflowY && - (overflowY === 'hidden' || overflowY === 'visible')) { - return false; - } - - if (overflowX === 'scroll' || overflowY === 'scroll') { - return true; - } - - return ($el.innerHeight() < el.scrollHeight || - $el.innerWidth() < el.scrollWidth); - }; - - Utils.escapeMarkup = function (markup) { - var replaceMap = { - '\\': '&#92;', - '&': '&amp;', - '<': '&lt;', - '>': '&gt;', - '"': '&quot;', - '\'': '&#39;', - '/': '&#47;' - }; - - // Do not try to escape the markup if it's not a string - if (typeof markup !== 'string') { - return markup; - } - - return String(markup).replace(/[&<>"'\/\\]/g, function (match) { - return replaceMap[match]; - }); - }; - - // Append an array of jQuery nodes to a given element. - Utils.appendMany = function ($element, $nodes) { - // jQuery 1.7.x does not support $.fn.append() with an array - // Fall back to a jQuery object collection using $.fn.add() - if ($.fn.jquery.substr(0, 3) === '1.7') { - var $jqNodes = $(); - - $.map($nodes, function (node) { - $jqNodes = $jqNodes.add(node); - }); - - $nodes = $jqNodes; - } - - $element.append($nodes); - }; - - return Utils; -}); diff --git a/admin/bower_components/select2/src/js/wrapper.end.js b/admin/bower_components/select2/src/js/wrapper.end.js deleted file mode 100644 index 4367829..0000000 --- a/admin/bower_components/select2/src/js/wrapper.end.js +++ /dev/null @@ -1,12 +0,0 @@ - // Autoload the jQuery bindings - // We know that all of the modules exist above this, so we're safe - var select2 = S2.require('jquery.select2'); - - // Hold the AMD module references on the jQuery function that was just loaded - // This allows Select2 to use the internal loader outside of this file, such - // as in the language files. - jQuery.fn.select2.amd = S2; - - // Return the Select2 instance for anyone who is importing it. - return select2; -})); diff --git a/admin/bower_components/select2/src/js/wrapper.start.js b/admin/bower_components/select2/src/js/wrapper.start.js deleted file mode 100644 index 4df0e05..0000000 --- a/admin/bower_components/select2/src/js/wrapper.start.js +++ /dev/null @@ -1,38 +0,0 @@ -/*! - * Select2 <%= package.version %> - * https://select2.github.io - * - * Released under the MIT license - * https://github.com/select2/select2/blob/master/LICENSE.md - */ -(function (factory) { - if (typeof define === 'function' && define.amd) { - // AMD. Register as an anonymous module. - define(['jquery'], factory); - } else if (typeof module === 'object' && module.exports) { - // Node/CommonJS - module.exports = function (root, jQuery) { - if (jQuery === undefined) { - // require('jQuery') returns a factory that requires window to - // build a jQuery instance, we normalize how we use modules - // that require this pattern but the window provided is a noop - // if it's defined (how jquery works) - if (typeof window !== 'undefined') { - jQuery = require('jquery'); - } - else { - jQuery = require('jquery')(root); - } - } - factory(jQuery); - return jQuery; - }; - } else { - // Browser globals - factory(jQuery); - } -} (function (jQuery) { - // This is needed so we can catch the AMD loader configuration and use it - // The inner file should be wrapped (by `banner.start.js`) in a function that - // returns the AMD loader references. - var S2 = \ No newline at end of file diff --git a/admin/bower_components/select2/src/scss/_dropdown.scss b/admin/bower_components/select2/src/scss/_dropdown.scss deleted file mode 100644 index fb891d3..0000000 --- a/admin/bower_components/select2/src/scss/_dropdown.scss +++ /dev/null @@ -1,73 +0,0 @@ -.select2-dropdown { - background-color: white; - - border: 1px solid #aaa; - border-radius: 4px; - - box-sizing: border-box; - - display: block; - - position: absolute; - left: -100000px; - - width: 100%; - - z-index: 1051; -} - -.select2-results { - display: block; -} - -.select2-results__options { - list-style: none; - margin: 0; - padding: 0; -} - -.select2-results__option { - padding: 6px; - - user-select: none; - -webkit-user-select: none; - - &[aria-selected] { - cursor: pointer; - } -} - -.select2-container--open .select2-dropdown { - left: 0; -} - -.select2-container--open .select2-dropdown--above { - border-bottom: none; - border-bottom-left-radius: 0; - border-bottom-right-radius: 0; -} - -.select2-container--open .select2-dropdown--below { - border-top: none; - border-top-left-radius: 0; - border-top-right-radius: 0; -} - -.select2-search--dropdown { - display: block; - padding: 4px; - - .select2-search__field { - padding: 4px; - width: 100%; - box-sizing: border-box; - - &::-webkit-search-cancel-button { - -webkit-appearance: none; - } - } - - &.select2-search--hide { - display: none; - } -} diff --git a/admin/bower_components/select2/src/scss/_multiple.scss b/admin/bower_components/select2/src/scss/_multiple.scss deleted file mode 100644 index 981d208..0000000 --- a/admin/bower_components/select2/src/scss/_multiple.scss +++ /dev/null @@ -1,35 +0,0 @@ -.select2-selection--multiple { - box-sizing: border-box; - - cursor: pointer; - display: block; - - min-height: 32px; - - user-select: none; - -webkit-user-select: none; - - .select2-selection__rendered { - display: inline-block; - overflow: hidden; - padding-left: 8px; - text-overflow: ellipsis; - white-space: nowrap; - } -} - -.select2-search--inline { - float: left; - - .select2-search__field { - box-sizing: border-box; - border: none; - font-size: 100%; - margin-top: 5px; - padding: 0; - - &::-webkit-search-cancel-button { - -webkit-appearance: none; - } - } -} diff --git a/admin/bower_components/select2/src/scss/_single.scss b/admin/bower_components/select2/src/scss/_single.scss deleted file mode 100644 index 6c3418e..0000000 --- a/admin/bower_components/select2/src/scss/_single.scss +++ /dev/null @@ -1,34 +0,0 @@ -.select2-selection--single { - box-sizing: border-box; - - cursor: pointer; - display: block; - - height: 28px; - - user-select: none; - -webkit-user-select: none; - - .select2-selection__rendered { - display: block; - padding-left: 8px; - padding-right: 20px; - - overflow: hidden; - text-overflow: ellipsis; - white-space: nowrap; - } - - .select2-selection__clear { - position: relative; - } -} - -&[dir="rtl"] { - .select2-selection--single { - .select2-selection__rendered { - padding-right: 8px; - padding-left: 20px; - } - } -} diff --git a/admin/bower_components/select2/src/scss/core.scss b/admin/bower_components/select2/src/scss/core.scss deleted file mode 100644 index 3d69538..0000000 --- a/admin/bower_components/select2/src/scss/core.scss +++ /dev/null @@ -1,48 +0,0 @@ -.select2-container { - box-sizing: border-box; - - display: inline-block; - margin: 0; - position: relative; - vertical-align: middle; - - @import "single"; - @import "multiple"; -} - -@import "dropdown"; - -.select2-close-mask { - border: 0; - margin: 0; - padding: 0; - display: block; - position: fixed; - left: 0; - top: 0; - min-height: 100%; - min-width: 100%; - height: auto; - width: auto; - opacity: 0; - z-index: 99; - - // styles required for IE to work - - background-color: #fff; - filter: alpha(opacity=0); -} - -.select2-hidden-accessible { - border: 0 !important; - clip: rect(0 0 0 0) !important; - height: 1px !important; - margin: -1px !important; - overflow: hidden !important; - padding: 0 !important; - position: absolute !important; - width: 1px !important; -} - -@import "theme/default/layout"; -@import "theme/classic/layout"; diff --git a/admin/bower_components/select2/src/scss/mixins/_gradients.scss b/admin/bower_components/select2/src/scss/mixins/_gradients.scss deleted file mode 100644 index 05a6195..0000000 --- a/admin/bower_components/select2/src/scss/mixins/_gradients.scss +++ /dev/null @@ -1,13 +0,0 @@ -// https://github.com/twbs/bootstrap-sass/blob/3.3-stable/assets/stylesheets/bootstrap/mixins/_gradients.scss#L17-L27 - -// Vertical gradient, from top to bottom -// -// Creates two color stops, start and end, by specifying a color and position for each color stop. -// Color stops are not available in IE9 and below. -@mixin gradient-vertical($start-color: #555, $end-color: #333, $start-percent: 0%, $end-percent: 100%) { - background-image: -webkit-linear-gradient(top, $start-color $start-percent, $end-color $end-percent); // Safari 5.1-6, Chrome 10+ - background-image: -o-linear-gradient(top, $start-color $start-percent, $end-color $end-percent); // Opera 12 - background-image: linear-gradient(to bottom, $start-color $start-percent, $end-color $end-percent); // Standard, IE10, Firefox 16+, Opera 12.10+, Safari 7+, Chrome 26+ - background-repeat: repeat-x; - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#{ie-hex-str($start-color)}', endColorstr='#{ie-hex-str($end-color)}', GradientType=0); // IE9 and down -} diff --git a/admin/bower_components/select2/src/scss/theme/classic/_defaults.scss b/admin/bower_components/select2/src/scss/theme/classic/_defaults.scss deleted file mode 100644 index aa20456..0000000 --- a/admin/bower_components/select2/src/scss/theme/classic/_defaults.scss +++ /dev/null @@ -1,34 +0,0 @@ -$remove-color: #888 !default; -$remove-hover-color: #555 !default; -$remove-width: 20px !default; - -$selection-color: #444 !default; - -$border-color: #aaa !default; -$border-radius: 4px !default; - -$focus-border-color: #5897fb !default; - -$container-height: 28px !default; - -$selection-bg-top-color: white !default; -$selection-bg-bottom-color: #eeeeee !default; - -$container-placeholder-color: #999 !default; - -$container-focus-border-color: blue !default; - -$selection-opened-bg-top-color: $selection-bg-bottom-color !default; -$selection-opened-bg-bottom-color: $selection-bg-top-color !default; - -$dropdown-z-index: 1 !default; - -$dropdown-bg-color: $selection-bg-top-color !default; - -$results-max-height: 200px !default; -$results-nested-padding: 20px !default; - -$results-choice-bg-hover-color: #3875d7 !default; -$results-choice-fg-hover-color: white !default; - -$results-choice-fg-unselectable-color: grey !default; diff --git a/admin/bower_components/select2/src/scss/theme/classic/_multiple.scss b/admin/bower_components/select2/src/scss/theme/classic/_multiple.scss deleted file mode 100644 index e472418..0000000 --- a/admin/bower_components/select2/src/scss/theme/classic/_multiple.scss +++ /dev/null @@ -1,93 +0,0 @@ -.select2-selection--multiple { - background-color: white; - - border: 1px solid $border-color; - border-radius: $border-radius; - - cursor: text; - - outline: 0; - - &:focus { - border: 1px solid $focus-border-color; - } - - .select2-selection__rendered { - list-style: none; - margin: 0; - padding: 0 5px; - } - - .select2-selection__clear { - display: none; - } - - .select2-selection__choice { - background-color: #e4e4e4; - - border: 1px solid $border-color; - border-radius: $border-radius; - - cursor: default; - - float: left; - - margin-right: 5px; - margin-top: 5px; - padding: 0 5px; - } - - .select2-selection__choice__remove { - color: $remove-color; - cursor: pointer; - - display: inline-block; - font-weight: bold; - - margin-right: 2px; - - &:hover { - color: $remove-hover-color; - } - } -} - -&[dir="rtl"] { - .select2-selection--multiple { - .select2-selection__choice { - float: right; - } - - .select2-selection__choice { - margin-left: 5px; - margin-right: auto; - } - - .select2-selection__choice__remove { - margin-left: 2px; - margin-right: auto; - } - } -} - -&.select2-container--open { - .select2-selection--multiple { - border: 1px solid $focus-border-color; - } - - &.select2-container--above { - .select2-selection--multiple { - border-top: none; - border-top-left-radius: 0; - border-top-right-radius: 0; - } - } - - &.select2-container--below { - .select2-selection--multiple { - border-bottom: none; - border-bottom-left-radius: 0; - border-bottom-right-radius: 0; - } - } -} diff --git a/admin/bower_components/select2/src/scss/theme/classic/_single.scss b/admin/bower_components/select2/src/scss/theme/classic/_single.scss deleted file mode 100644 index e21de9a..0000000 --- a/admin/bower_components/select2/src/scss/theme/classic/_single.scss +++ /dev/null @@ -1,124 +0,0 @@ -.select2-selection--single { - background-color: mix($selection-bg-top-color, $selection-bg-bottom-color); - - border: 1px solid $border-color; - border-radius: $border-radius; - - outline: 0; - - @include gradient-vertical($selection-bg-top-color, $selection-bg-bottom-color, 50%, 100%); - - &:focus { - border: 1px solid $focus-border-color; - } - - .select2-selection__rendered { - color: #444; - line-height: 28px; - } - - .select2-selection__clear { - cursor: pointer; - float: right; - font-weight: bold; - margin-right: 10px; - } - - .select2-selection__placeholder { - color: #999; - } - - .select2-selection__arrow { - background-color: #ddd; - - border: none; - border-left: 1px solid $border-color; - border-top-right-radius: $border-radius; - border-bottom-right-radius: $border-radius; - - height: 26px; - - position: absolute; - - top: 1px; - right: 1px; - - width: 20px; - - @include gradient-vertical(#eeeeee, #cccccc, 50%, 100%); - - b { - border-color: #888 transparent transparent transparent; - border-style: solid; - border-width: 5px 4px 0 4px; - - height: 0; - left: 50%; - - margin-left: -4px; - margin-top: -2px; - - position: absolute; - - top: 50%; - width: 0; - } - } -} - -&[dir="rtl"] { - .select2-selection--single { - .select2-selection__clear { - float: left; - } - - .select2-selection__arrow { - border: none; - border-right: 1px solid $border-color; - - border-radius: 0; - border-top-left-radius: $border-radius; - border-bottom-left-radius: $border-radius; - - left: 1px; - right: auto; - } - } -} - -&.select2-container--open { - .select2-selection--single { - border: 1px solid $focus-border-color; - - .select2-selection__arrow { - background: transparent; - - border: none; - - b { - border-color: transparent transparent #888 transparent; - border-width: 0 4px 5px 4px; - } - } - } - - &.select2-container--above { - .select2-selection--single { - border-top: none; - border-top-left-radius: 0; - border-top-right-radius: 0; - - @include gradient-vertical($selection-opened-bg-bottom-color, $selection-opened-bg-top-color, 0%, 50%); - } - } - - &.select2-container--below { - .select2-selection--single { - border-bottom: none; - border-bottom-left-radius: 0; - border-bottom-right-radius: 0; - - @include gradient-vertical($selection-opened-bg-top-color, $selection-opened-bg-bottom-color, 50%, 100%); - } - } -} diff --git a/admin/bower_components/select2/src/scss/theme/classic/layout.scss b/admin/bower_components/select2/src/scss/theme/classic/layout.scss deleted file mode 100644 index d63e1d2..0000000 --- a/admin/bower_components/select2/src/scss/theme/classic/layout.scss +++ /dev/null @@ -1,64 +0,0 @@ -@import "defaults"; -@import "../../mixins/gradients"; - -.select2-container--classic { - @import "single"; - @import "multiple"; - - .select2-search--dropdown { - .select2-search__field { - border: 1px solid $border-color; - outline: 0; - } - } - - .select2-search--inline { - .select2-search__field { - outline: 0; - box-shadow: none; - } - } - - .select2-dropdown { - background-color: $dropdown-bg-color; - border: 1px solid transparent; - } - - .select2-dropdown--above { - border-bottom: none; - } - - .select2-dropdown--below { - border-top: none; - } - - .select2-results > .select2-results__options { - max-height: $results-max-height; - overflow-y: auto; - } - - .select2-results__option { - &[role=group] { - padding: 0; - } - - &[aria-disabled=true] { - color: $results-choice-fg-unselectable-color; - } - } - - .select2-results__option--highlighted[aria-selected] { - background-color: $results-choice-bg-hover-color; - color: $results-choice-fg-hover-color; - } - - .select2-results__group { - cursor: default; - display: block; - padding: 6px; - } - - &.select2-container--open .select2-dropdown { - border-color: $focus-border-color; - } -} diff --git a/admin/bower_components/select2/src/scss/theme/default/_multiple.scss b/admin/bower_components/select2/src/scss/theme/default/_multiple.scss deleted file mode 100644 index 9e204f3..0000000 --- a/admin/bower_components/select2/src/scss/theme/default/_multiple.scss +++ /dev/null @@ -1,98 +0,0 @@ -.select2-selection--multiple { - background-color: white; - border: 1px solid #aaa; - border-radius: 4px; - cursor: text; - - .select2-selection__rendered { - box-sizing: border-box; - list-style: none; - margin: 0; - padding: 0 5px; - width: 100%; - - li { - list-style: none; - } - } - - .select2-selection__placeholder { - color: #999; - - margin-top: 5px; - - float: left; - } - - .select2-selection__clear { - cursor: pointer; - float: right; - font-weight: bold; - margin-top: 5px; - margin-right: 10px; - } - - .select2-selection__choice { - background-color: #e4e4e4; - - border: 1px solid #aaa; - border-radius: 4px; - cursor: default; - - float: left; - - margin-right: 5px; - margin-top: 5px; - padding: 0 5px; - } - - .select2-selection__choice__remove { - color: #999; - cursor: pointer; - - display: inline-block; - font-weight: bold; - - margin-right: 2px; - - &:hover { - color: #333; - } - } -} - -&[dir="rtl"] { - .select2-selection--multiple { - .select2-selection__choice, .select2-selection__placeholder, .select2-search--inline { - float: right; - } - - .select2-selection__choice { - margin-left: 5px; - margin-right: auto; - } - - .select2-selection__choice__remove { - margin-left: 2px; - margin-right: auto; - } - } -} - -&.select2-container--focus { - .select2-selection--multiple { - border: solid black 1px; - outline: 0; - } -} - -&.select2-container--disabled { - .select2-selection--multiple { - background-color: #eee; - cursor: default; - } - - .select2-selection__choice__remove { - display: none; - } -} diff --git a/admin/bower_components/select2/src/scss/theme/default/_single.scss b/admin/bower_components/select2/src/scss/theme/default/_single.scss deleted file mode 100644 index 1387af0..0000000 --- a/admin/bower_components/select2/src/scss/theme/default/_single.scss +++ /dev/null @@ -1,83 +0,0 @@ -.select2-selection--single { - background-color: #fff; - border: 1px solid #aaa; - border-radius: 4px; - - .select2-selection__rendered { - color: #444; - line-height: 28px; - } - - .select2-selection__clear { - cursor: pointer; - float: right; - font-weight: bold; - } - - .select2-selection__placeholder { - color: #999; - } - - .select2-selection__arrow { - height: 26px; - - position: absolute; - - top: 1px; - right: 1px; - - width: 20px; - - b { - border-color: #888 transparent transparent transparent; - border-style: solid; - border-width: 5px 4px 0 4px; - - height: 0; - left: 50%; - - margin-left: -4px; - margin-top: -2px; - - position: absolute; - - top: 50%; - width: 0; - } - } -} - -&[dir="rtl"] { - .select2-selection--single { - .select2-selection__clear { - float: left; - } - - .select2-selection__arrow { - left: 1px; - right: auto; - } - } -} - -&.select2-container--disabled { - .select2-selection--single { - background-color: #eee; - cursor: default; - - .select2-selection__clear { - display: none; - } - } -} - -&.select2-container--open { - .select2-selection--single { - .select2-selection__arrow { - b { - border-color: transparent transparent #888 transparent; - border-width: 0 4px 5px 4px; - } - } - } -} diff --git a/admin/bower_components/select2/src/scss/theme/default/layout.scss b/admin/bower_components/select2/src/scss/theme/default/layout.scss deleted file mode 100644 index ea3d939..0000000 --- a/admin/bower_components/select2/src/scss/theme/default/layout.scss +++ /dev/null @@ -1,97 +0,0 @@ -.select2-container--default { - @import "single"; - @import "multiple"; - - &.select2-container--open.select2-container--above { - .select2-selection--single, .select2-selection--multiple { - border-top-left-radius: 0; - border-top-right-radius: 0; - } - } - - &.select2-container--open.select2-container--below { - .select2-selection--single, .select2-selection--multiple { - border-bottom-left-radius: 0; - border-bottom-right-radius: 0; - } - } - - .select2-search--dropdown { - .select2-search__field { - border: 1px solid #aaa; - } - } - - .select2-search--inline { - .select2-search__field { - background: transparent; - border: none; - outline: 0; - box-shadow: none; - -webkit-appearance: textfield; - } - } - - .select2-results > .select2-results__options { - max-height: 200px; - overflow-y: auto; - } - - .select2-results__option { - &[role=group] { - padding: 0; - } - - &[aria-disabled=true] { - color: #999; - } - - &[aria-selected=true] { - background-color: #ddd; - } - - .select2-results__option { - padding-left: 1em; - - .select2-results__group { - padding-left: 0; - } - - .select2-results__option { - margin-left: -1em; - padding-left: 2em; - - .select2-results__option { - margin-left: -2em; - padding-left: 3em; - - .select2-results__option { - margin-left: -3em; - padding-left: 4em; - - .select2-results__option { - margin-left: -4em; - padding-left: 5em; - - .select2-results__option { - margin-left: -5em; - padding-left: 6em; - } - } - } - } - } - } - } - - .select2-results__option--highlighted[aria-selected] { - background-color: #5897fb; - color: white; - } - - .select2-results__group { - cursor: default; - display: block; - padding: 6px; - } -} diff --git a/admin/bower_components/select2/tests/a11y/search-tests.js b/admin/bower_components/select2/tests/a11y/search-tests.js deleted file mode 100644 index 58e5649..0000000 --- a/admin/bower_components/select2/tests/a11y/search-tests.js +++ /dev/null @@ -1,51 +0,0 @@ -module('Accessibility - Search'); - -var MultipleSelection = require('select2/selection/multiple'); -var InlineSearch = require('select2/selection/search'); - -var $ = require('jquery'); - -var Utils = require('select2/utils'); -var Options = require('select2/options'); -var options = new Options({}); - -test('aria-autocomplete attribute is present', function (assert) { - var $select = $('#qunit-fixture .multiple'); - - var CustomSelection = Utils.Decorate(MultipleSelection, InlineSearch); - var selection = new CustomSelection($select, options); - var $selection = selection.render(); - - // Update the selection so the search is rendered - selection.update([]); - - assert.equal( - $selection.find('input').attr('aria-autocomplete'), - 'list', - 'The search box is marked as autocomplete' - ); -}); - -test('aria-activedescendant should be removed when closed', function (assert) { - var $select = $('#qunit-fixture .multiple'); - - var CustomSelection = Utils.Decorate(MultipleSelection, InlineSearch); - var selection = new CustomSelection($select, options); - var $selection = selection.render(); - - var container = new MockContainer(); - selection.bind(container, $('<span></span>')); - - // Update the selection so the search is rendered - selection.update([]); - - var $search = $selection.find('input'); - $search.attr('aria-activedescendant', 'something'); - - container.trigger('close'); - - assert.ok( - !$search.attr('aria-activedescendant'), - 'There is no active descendant when the dropdown is closed' - ); -}); diff --git a/admin/bower_components/select2/tests/a11y/selection-tests.js b/admin/bower_components/select2/tests/a11y/selection-tests.js deleted file mode 100644 index e2c1460..0000000 --- a/admin/bower_components/select2/tests/a11y/selection-tests.js +++ /dev/null @@ -1,154 +0,0 @@ -module('Accessibility - All'); - -var BaseSelection = require('select2/selection/base'); -var SingleSelection = require('select2/selection/single'); -var MultipleSelection = require('select2/selection/multiple'); - -var $ = require('jquery'); - -var Options = require('select2/options'); -var options = new Options({}); - -test('title is carried over from original element', function (assert) { - var $select = $('#qunit-fixture .single'); - - var selection = new BaseSelection($select, options); - var $selection = selection.render(); - - assert.equal( - $selection.attr('title'), - $select.attr('title'), - 'The title should have been copied over from the original element' - ); -}); - -test('aria-expanded reflects the state of the container', function (assert) { - var $select = $('#qunit-fixture .single'); - - var selection = new BaseSelection($select, options); - var $selection = selection.render(); - - var container = new MockContainer(); - - selection.bind(container, $('<span></span>')); - - assert.equal( - $selection.attr('aria-expanded'), - 'false', - 'The container should not be expanded when it is closed' - ); - - container.trigger('open'); - - assert.equal( - $selection.attr('aria-expanded'), - 'true', - 'The container should be expanded when it is opened' - ); -}); - -test('static aria attributes are present', function (assert) { - var $select = $('#qunit-fixture .single'); - - var selection = new BaseSelection($select, options); - var $selection = selection.render(); - - assert.equal( - $selection.attr('role'), - 'combobox', - 'The container should identify as a combobox' - ); - - assert.equal( - $selection.attr('aria-haspopup'), - 'true', - 'The dropdown is considered a popup of the container' - ); -}); - -test('the container should be in the tab order', function (assert) { - var $select = $('#qunit-fixture .single'); - - var selection = new BaseSelection($select, options); - var $selection = selection.render(); - - var container = new MockContainer(); - selection.bind(container, $('<span></span>')); - - assert.equal( - $selection.attr('tabindex'), - '0', - 'The tab index should allow it to fit in the natural tab order' - ); - - container.trigger('disable'); - - assert.equal( - $selection.attr('tabindex'), - '-1', - 'The selection should be dropped out of the tab order when disabled' - ); - - container.trigger('enable'); - - assert.equal( - $selection.attr('tabindex'), - '0', - 'The tab index should be restored when re-enabled' - ); -}); - -test('a custom tabindex is copied', function (assert) { - var $select = $('#qunit-fixture .single'); - $select.attr('tabindex', '999'); - - var selection = new BaseSelection($select, options); - var $selection = selection.render(); - - var container = new MockContainer(); - selection.bind(container, $('<span></span>')); - - assert.equal( - $selection.attr('tabindex'), - '999', - 'The tab index should match the original tab index' - ); - - container.trigger('disable'); - - assert.equal( - $selection.attr('tabindex'), - '-1', - 'The selection should be dropped out of the tab order when disabled' - ); - - container.trigger('enable'); - - assert.equal( - $selection.attr('tabindex'), - '999', - 'The tab index should be restored when re-enabled' - ); -}); - -module('Accessibility - Single'); - -test('aria-labelledby should match the rendered container', function (assert) { - var $select = $('#qunit-fixture .single'); - - var selection = new SingleSelection($select, options); - var $selection = selection.render(); - - var container = new MockContainer(); - selection.bind(container, $('<span></span>')); - - var $rendered = $selection.find('.select2-selection__rendered'); - - assert.equal( - $selection.attr('aria-labelledby'), - $rendered.attr('id'), - 'The rendered selection should label the container' - ); -}); - -module('Accessibility - Multiple'); diff --git a/admin/bower_components/select2/tests/data/array-tests.js b/admin/bower_components/select2/tests/data/array-tests.js deleted file mode 100644 index 65a6e32..0000000 --- a/admin/bower_components/select2/tests/data/array-tests.js +++ /dev/null @@ -1,318 +0,0 @@ -module('Data adapters - Array'); - -var ArrayData = require('select2/data/array'); -var $ = require('jquery'); -var Options = require('select2/options'); - -var arrayOptions = new Options({ - data: [ - { - id: 'default', - text: 'Default' - }, - { - id: '1', - text: 'One' - }, - { - id: '2', - text: '2' - } - ] -}); - -var extraOptions = new Options ({ - data: [ - { - id: 'default', - text: 'Default', - extra: true - }, - { - id: 'One', - text: 'One', - extra: true - } - ] -}); - -var nestedOptions = new Options({ - data: [ - { - text: 'Default', - children: [ - { - text: 'Next', - children: [ - { - id: 'a', - text: 'Option' - } - ] - } - ] - } - ] -}); - -test('current gets default for single', function (assert) { - var $select = $('#qunit-fixture .single-empty'); - - var data = new ArrayData($select, arrayOptions); - - data.current(function (val) { - assert.equal( - val.length, - 1, - 'There should always be a selected item for array data.' - ); - - var item = val[0]; - - assert.equal( - item.id, - 'default', - 'The first item should be selected' - ); - }); -}); - -test('current gets default for multiple', function (assert) { - var $select = $('#qunit-fixture .multiple'); - - var data = new ArrayData($select, arrayOptions); - - data.current(function (val) { - assert.equal( - val.length, - 0, - 'There should be no default selection.' - ); - }); -}); - -test('current works with existing selections', function (assert) { - var $select = $('#qunit-fixture .multiple'); - - var data = new ArrayData($select, arrayOptions); - - $select.val(['One']); - - data.current(function (val) { - assert.equal( - val.length, - 1, - 'There should only be one existing selection.' - ); - - var option = val[0]; - - assert.equal( - option.id, - 'One', - 'The id should be equal to the value of the option tag.' - ); - - assert.equal( - option.text, - 'One', - 'The text should be equal to the text of the option tag.' - ); - }); -}); - -test('current works with selected data', function (assert) { - var $select = $('#qunit-fixture .single-empty'); - - var data = new ArrayData($select, arrayOptions); - - data.select({ - id: '2', - text: '2' - }); - - data.current(function (val) { - assert.equal( - val.length, - 1, - 'There should only be one option selected.' - ); - - var option = val[0]; - - assert.equal( - option.id, - '2', - 'The id should match the original id from the array.' - ); - - assert.equal( - option.text, - '2', - 'The text should match the original text from the array.' - ); - }); -}); - -test('select works for single', function (assert) { - var $select = $('#qunit-fixture .single-empty'); - - var data = new ArrayData($select, arrayOptions); - - assert.equal( - $select.val(), - 'default', - 'There should already be a selection' - ); - - data.select({ - id: '1', - text: 'One' - }); - - assert.equal( - $select.val(), - '1', - 'The selected value should be the same as the selected id' - ); -}); - -test('multiple sets the value', function (assert) { - var $select = $('#qunit-fixture .multiple'); - - var data = new ArrayData($select, arrayOptions); - - assert.equal($select.val(), null); - - data.select({ - id: 'default', - text: 'Default' - }); - - assert.deepEqual($select.val(), ['default']); -}); - -test('multiple adds to the old value', function (assert) { - var $select = $('#qunit-fixture .multiple'); - - var data = new ArrayData($select, arrayOptions); - - $select.val(['One']); - - assert.deepEqual($select.val(), ['One']); - - data.select({ - id: 'default', - text: 'Default' - }); - - assert.deepEqual($select.val(), ['One', 'default']); -}); - -test('option tags are automatically generated', function (assert) { - var $select = $('#qunit-fixture .single-empty'); - - var data = new ArrayData($select, arrayOptions); - - assert.equal( - $select.find('option').length, - 3, - 'An <option> element should be created for each object' - ); -}); - -test('option tags can receive new data', function(assert) { - var $select = $('#qunit-fixture .single'); - - var data = new ArrayData($select, extraOptions); - - assert.equal( - $select.find('option').length, - 2, - 'Only one more <option> element should be created' - ); - - data.select({ - id: 'default' - }); - - assert.ok( - $select.find(':selected').data('data').extra, - '<option> default should have new data' - ); - - data.select({ - id: 'One' - }); - - assert.ok( - $select.find(':selected').data('data').extra, - '<option> One should have new data' - ); -}); - -test('optgroup tags can also be generated', function (assert) { - var $select = $('#qunit-fixture .single-empty'); - - var data = new ArrayData($select, nestedOptions); - - assert.equal( - $select.find('option').length, - 1, - 'An <option> element should be created for the one selectable object' - ); - - assert.equal( - $select.find('optgroup').length, - 2, - 'An <optgroup> element should be created for the two with children' - ); -}); - -test('optgroup tags have the right properties', function (assert) { - var $select = $('#qunit-fixture .single-empty'); - - var data = new ArrayData($select, nestedOptions); - - var $group = $select.children('optgroup'); - - assert.equal( - $group.prop('label'), - 'Default', - 'An `<optgroup>` label should match the text property' - ); - - assert.equal( - $group.children().length, - 1, - 'The <optgroup> should have one child under it' - ); -}); - -test('existing selections are respected on initialization', function (assert) { - var $select = $( - '<select>' + - '<option>First</option>' + - '<option selected>Second</option>' + - '</select>' - ); - - var options = new Options({ - data: [ - { - id: 'Second', - text: 'Second' - }, - { - id: 'Third', - text: 'Third' - } - ] - }); - - assert.equal($select.val(), 'Second'); - - var data = new ArrayData($select, options); - - assert.equal($select.val(), 'Second'); -}); \ No newline at end of file diff --git a/admin/bower_components/select2/tests/data/base-tests.js b/admin/bower_components/select2/tests/data/base-tests.js deleted file mode 100644 index b90158f..0000000 --- a/admin/bower_components/select2/tests/data/base-tests.js +++ /dev/null @@ -1,29 +0,0 @@ -module('Data adapters - Base'); - -var BaseData = require('select2/data/base'); -var $ = require('jquery'); -var Options = require('select2/options'); - -var options = new Options({}); - -test('current is required', function (assert) { - var data = new BaseData($('#qunit-fixture select'), options); - - assert.throws( - function () { - data.current(function () {}); - }, - 'current has no default implementation' - ); -}); - -test('query is required', function (assert) { - var data = new BaseData($('#qunit-fixture select'), options); - - assert.throws( - function () { - data.query({}, function () {}); - }, - 'query has no default implementation' - ); -}); diff --git a/admin/bower_components/select2/tests/data/inputData-tests.js b/admin/bower_components/select2/tests/data/inputData-tests.js deleted file mode 100644 index f2124ef..0000000 --- a/admin/bower_components/select2/tests/data/inputData-tests.js +++ /dev/null @@ -1,158 +0,0 @@ -module('Data adapters - <input> compatibility'); - -var $ = require('jquery'); - -var Options = require('select2/options'); -var Utils = require('select2/utils'); - -var ArrayData = require('select2/data/array'); -var InputData = require('select2/compat/inputData'); - -var InputAdapter = Utils.Decorate(ArrayData, InputData); - -test('test that options can be selected', function (assert) { - var options = new Options({ - data: [ - { - id: 'test', - text: 'Test' - } - ] - }); - var $element = $('<input />'); - - var adapter = new InputAdapter($element, options); - - adapter.select({ - id: 'test' - }); - - assert.equal( - $element.val(), - 'test', - 'The id of the item should be the value' - ); -}); - -test('unselect the single selected option clears the value', function (assert) { - var options = new Options({ - data: [ - { - id: 'test', - text: 'Test', - selected: true - } - ] - }); - var $element = $('<input />'); - - var adapter = new InputAdapter($element, options); - - adapter.unselect({ - id: 'test' - }); - - assert.equal( - $element.val(), - '', - 'The id should no longer be in the value' - ); -}); - -test('options can be unselected individually', function (assert) { - var options = new Options({ - data: [ - { - id: 'test', - text: 'Test' - }, - { - id: 'test2', - text: 'Test2' - }, - { - id: 'test3', - text: 'Test3' - } - ] - }); - var $element = $('<input />'); - $element.val('test,test2,test3'); - - var adapter = new InputAdapter($element, options); - - adapter.unselect({ - id: 'test2' - }); - - assert.equal( - $element.val(), - 'test,test3', - 'The value should contain all the still selected options' - ); -}); - -test('default values can be set', function (assert) { - assert.expect(4); - - var options = new Options({ - data: [ - { - id: 'test', - text: 'Test' - } - ] - }); - var $element = $('<input value="test" />'); - - var adapter = new InputAdapter($element, options); - - adapter.current(function (data) { - assert.equal( - data.length, - 1, - 'There should only be a single selected option' - ); - - var item = data[0]; - - assert.equal(item.id, 'test'); - assert.equal(item.text, 'Test'); - }); - - assert.equal( - $element.val(), - 'test', - 'The value should not have been altered' - ); -}); - -test('no default value', function (assert) { - assert.expect(2); - - var options = new Options({ - data: [ - { - id: 'test', - text: 'Test' - } - ] - }); - var $element = $('<input />'); - - var adapter = new InputAdapter($element, options); - - adapter.current(function (data) { - assert.equal( - data.length, - 0, - 'There should be no selected options' - ); - }); - - assert.equal( - $element.val(), - '', - 'The value should not have been altered' - ); -}); diff --git a/admin/bower_components/select2/tests/data/maximumInputLength-tests.js b/admin/bower_components/select2/tests/data/maximumInputLength-tests.js deleted file mode 100644 index e855713..0000000 --- a/admin/bower_components/select2/tests/data/maximumInputLength-tests.js +++ /dev/null @@ -1,138 +0,0 @@ -module('Data adapters - Maximum input length'); - -var MaximumInputLength = require('select2/data/maximumInputLength'); -var $ = require('jquery'); -var Options = require('select2/options'); -var Utils = require('select2/utils'); - -function MaximumInputStub () { - this.called = false; -} - -MaximumInputStub.prototype.query = function (params, callback) { - this.called = true; -}; - -var MaximumInputData = Utils.Decorate(MaximumInputStub, MaximumInputLength); - -test('0 never displays the notice', function (assert) { - var zeroOptions = new Options({ - maximumInputLength: 0 - }); - - var data = new MaximumInputData(null, zeroOptions); - - data.trigger = function () { - assert.ok(false, 'No events should be triggered'); - }; - - data.query({ - term: '' - }); - - assert.ok(data.called); - - data = new MaximumInputData(null, zeroOptions); - - data.query({ - term: 'test' - }); - - assert.ok(data.called); -}); - -test('< 0 never displays the notice', function (assert) { - var negativeOptions = new Options({ - maximumInputLength: -1 - }); - - var data = new MaximumInputData(null, negativeOptions); - - data.trigger = function () { - assert.ok(false, 'No events should be triggered'); - }; - - data.query({ - term: '' - }); - - assert.ok(data.called); - - data = new MaximumInputData(null, negativeOptions); - - data.query({ - term: 'test' - }); - - assert.ok(data.called); -}); - -test('triggers when input is too long', function (assert) { - var options = new Options({ - maximumInputLength: 1 - }); - - var data = new MaximumInputData(null, options); - - data.trigger = function () { - assert.ok(true, 'The event should be triggered.'); - }; - - data.query({ - term: 'no' - }); - - assert.ok(!data.called, 'The adapter should not be called'); -}); - -test('does not trigger when equal', function (assert) { - var options = new Options({ - maximumInputLength: 10 - }); - - var data = new MaximumInputData(null, options); - - data.trigger = function () { - assert.ok(false, 'The event should not be triggered.'); - }; - - data.query({ - term: '1234567890' - }); - - assert.ok(data.called); -}); - -test('does not trigger when less', function (assert) { - var options = new Options({ - maximumInputLength: 10 - }); - - var data = new MaximumInputData(null, options); - - data.trigger = function () { - assert.ok(false, 'The event should not be triggered.'); - }; - - data.query({ - term: '123' - }); - - assert.ok(data.called); -}); - -test('works with null term', function (assert) { - var options = new Options({ - maximumInputLength: 1 - }); - - var data = new MaximumInputData(null, options); - - data.trigger = function () { - assert.ok(false, 'The event should not be triggered'); - }; - - data.query({}); - - assert.ok(data.called); -}); diff --git a/admin/bower_components/select2/tests/data/maximumSelectionLength-tests.js b/admin/bower_components/select2/tests/data/maximumSelectionLength-tests.js deleted file mode 100644 index 89943b3..0000000 --- a/admin/bower_components/select2/tests/data/maximumSelectionLength-tests.js +++ /dev/null @@ -1,202 +0,0 @@ -module('Data adapters - Maximum selection length'); - -var MaximumSelectionLength = require('select2/data/maximumSelectionLength'); - -var $ = require('jquery'); -var Options = require('select2/options'); -var Utils = require('select2/utils'); - -function MaximumSelectionStub () { - this.called = false; - this.currentData = []; -} - -MaximumSelectionStub.prototype.current = function (callback) { - callback(this.currentData); -}; - -MaximumSelectionStub.prototype.val = function (val) { - this.currentData.push(val); -}; - -MaximumSelectionStub.prototype.query = function (params, callback) { - this.called = true; -}; - -var MaximumSelectionData = Utils.Decorate( - MaximumSelectionStub, - MaximumSelectionLength -); - -test('0 never displays the notice', function (assert) { - var zeroOptions = new Options({ - maximumSelectionLength: 0 - }); - - var data = new MaximumSelectionData(null, zeroOptions); - - data.trigger = function () { - assert.ok(false, 'No events should be triggered'); - }; - - data.query({ - term: '' - }); - - assert.ok(data.called); - - data = new MaximumSelectionData(null, zeroOptions); - - data.trigger = function () { - assert.ok(false, 'No events should be triggered'); - }; - - data.val('1'); - - data.query({ - term: '' - }); - - assert.ok(data.called); - - data = new MaximumSelectionData(null, zeroOptions); - - data.trigger = function () { - assert.ok(false, 'No events should be triggered'); - }; - - data.val('1'); - data.val('2'); - - data.query({ - term: '' - }); - - assert.ok(data.called); -}); - -test('< 0 never displays the notice', function (assert) { - var negativeOptions = new Options({ - maximumSelectionLength: -1 - }); - - var data = new MaximumSelectionData(null, negativeOptions); - - data.trigger = function () { - assert.ok(false, 'No events should be triggered'); - }; - - data.query({ - term: '' - }); - - assert.ok(data.called); - - data = new MaximumSelectionData(null, negativeOptions); - - data.trigger = function () { - assert.ok(false, 'No events should be triggered'); - }; - - data.val('1'); - - data.query({ - term: '' - }); - - assert.ok(data.called); - - data = new MaximumSelectionData(null, negativeOptions); - - data.trigger = function () { - assert.ok(false, 'No events should be triggered'); - }; - - data.val('1'); - data.val('2'); - - data.query({ - term: '' - }); - - assert.ok(data.called); -}); - -test('triggers when >= 1 selection' , function (assert) { - var maxOfOneOptions = new Options({ - maximumSelectionLength: 1 - }); - var data = new MaximumSelectionData(null, maxOfOneOptions); - - data.trigger = function () { - assert.ok(false, 'No events should be triggered'); - }; - - data.query({ - term: '' - }); - - assert.ok(data.called); - - data = new MaximumSelectionData(null, maxOfOneOptions); - - data.trigger = function () { - assert.ok(true, 'The event should be triggered.'); - }; - - data.val('1'); - - data.query({ - term: '' - }); - - assert.ok(!data.called); - -}); - -test('triggers when >= 2 selections' , function (assert) { - var maxOfTwoOptions = new Options({ - maximumSelectionLength: 2 - }); - var data = new MaximumSelectionData(null, maxOfTwoOptions); - - data.trigger = function () { - assert.ok(false, 'No events should be triggered'); - }; - - data.query({ - term: '' - }); - - assert.ok(data.called); - - data = new MaximumSelectionData(null, maxOfTwoOptions); - - data.trigger = function () { - assert.ok(false, 'No events should be triggered'); - }; - - data.val('1'); - - data.query({ - term: '' - }); - - assert.ok(data.called); - - data = new MaximumSelectionData(null, maxOfTwoOptions); - - data.trigger = function () { - assert.ok(true, 'The event should be triggered.'); - }; - - data.val('1'); - data.val('2'); - - data.query({ - term: '' - }); - - assert.ok(!data.called); - -}); diff --git a/admin/bower_components/select2/tests/data/minimumInputLength-tests.js b/admin/bower_components/select2/tests/data/minimumInputLength-tests.js deleted file mode 100644 index a67db08..0000000 --- a/admin/bower_components/select2/tests/data/minimumInputLength-tests.js +++ /dev/null @@ -1,138 +0,0 @@ -module('Data adapters - Minimum input length'); - -var MinimumInputLength = require('select2/data/minimumInputLength'); -var $ = require('jquery'); -var Options = require('select2/options'); -var Utils = require('select2/utils'); - -function StubData () { - this.called = false; -} - -StubData.prototype.query = function (params, callback) { - this.called = true; -}; - -var MinimumData = Utils.Decorate(StubData, MinimumInputLength); - -test('0 never displays the notice', function (assert) { - var zeroOptions = new Options({ - minimumInputLength: 0 - }); - - var data = new MinimumData(null, zeroOptions); - - data.trigger = function () { - assert.ok(false, 'No events should be triggered'); - }; - - data.query({ - term: '' - }); - - assert.ok(data.called); - - data = new MinimumData(null, zeroOptions); - - data.query({ - term: 'test' - }); - - assert.ok(data.called); -}); - -test('< 0 never displays the notice', function (assert) { - var negativeOptions = new Options({ - minimumInputLength: -1 - }); - - var data = new MinimumData(null, negativeOptions); - - data.trigger = function () { - assert.ok(false, 'No events should be triggered'); - }; - - data.query({ - term: '' - }); - - assert.ok(data.called); - - data = new MinimumData(null, negativeOptions); - - data.query({ - term: 'test' - }); - - assert.ok(data.called); -}); - -test('triggers when input is not long enough', function (assert) { - var options = new Options({ - minimumInputLength: 10 - }); - - var data = new MinimumData(null, options); - - data.trigger = function () { - assert.ok(true, 'The event should be triggered.'); - }; - - data.query({ - term: 'no' - }); - - assert.ok(!data.called); -}); - -test('does not trigger when equal', function (assert) { - var options = new Options({ - minimumInputLength: 10 - }); - - var data = new MinimumData(null, options); - - data.trigger = function () { - assert.ok(false, 'The event should not be triggered.'); - }; - - data.query({ - term: '1234567890' - }); - - assert.ok(data.called); -}); - -test('does not trigger when greater', function (assert) { - var options = new Options({ - minimumInputLength: 10 - }); - - var data = new MinimumData(null, options); - - data.trigger = function () { - assert.ok(false, 'The event should not be triggered.'); - }; - - data.query({ - term: '12345678901' - }); - - assert.ok(data.called); -}); - -test('works with null term', function (assert) { - var options = new Options({ - minimumInputLength: 1 - }); - - var data = new MinimumData(null, options); - - data.trigger = function () { - assert.ok(true, 'The event should be triggered'); - }; - - data.query({}); - - assert.ok(!data.called); -}); diff --git a/admin/bower_components/select2/tests/data/select-tests.js b/admin/bower_components/select2/tests/data/select-tests.js deleted file mode 100644 index 7d17966..0000000 --- a/admin/bower_components/select2/tests/data/select-tests.js +++ /dev/null @@ -1,489 +0,0 @@ -module('Data adapters - Select - current'); - -var SelectData = require('select2/data/select'); -var $ = require('jquery'); -var Options = require('select2/options'); -var selectOptions = new Options({}); - -test('current gets default for single', function (assert) { - var $select = $('#qunit-fixture .single'); - - var data = new SelectData($select, selectOptions); - - data.current(function (data) { - assert.equal( - data.length, - 1, - 'There should only be one selected option' - ); - - var option = data[0]; - - assert.equal( - option.id, - 'One', - 'The value of the option tag should be the id' - ); - - assert.equal( - option.text, - 'One', - 'The text within the option tag should be the text' - ); - }); -}); - -test('current gets default for multiple', function (assert) { - var $select = $('#qunit-fixture .multiple'); - - var data = new SelectData($select, selectOptions); - - data.current(function (data) { - assert.equal( - data.length, - 0, - 'Multiple selects have no default selection.' - ); - }); -}); - -test('current gets options with explicit value', function (assert) { - var $select = $('#qunit-fixture .single'); - - var $option = $('<option value="1">One</option>'); - $select.append($option); - - var data = new SelectData($select, selectOptions); - - $select.val('1'); - - data.current(function (data) { - assert.equal( - data.length, - 1, - 'There should be one selected option' - ); - - var option = data[0]; - - assert.equal( - option.id, - '1', - 'The option value should be the selected id' - ); - - assert.equal( - option.text, - 'One', - 'The text should match the text for the option tag' - ); - }); -}); - -test('current gets options with implicit value', function (assert) { - var $select = $('#qunit-fixture .single'); - - var data = new SelectData($select, selectOptions); - - $select.val('One'); - - data.current(function (val) { - assert.equal( - val.length, - 1, - 'There should only be one selected value' - ); - - var option = val[0]; - - assert.equal( - option.id, - 'One', - 'The id should be the same as the option text' - ); - - assert.equal( - option.text, - 'One', - 'The text should be the same as the option text' - ); - }); -}); - -test('select works for single', function (assert) { - var $select = $('#qunit-fixture .single-with-placeholder'); - - var data = new SelectData($select, selectOptions); - - assert.equal($select.val(), 'placeholder'); - - data.select({ - id: 'One', - text: 'One' - }); - - assert.equal($select.val(), 'One'); -}); - -test('multiple sets the value', function (assert) { - var $select = $('#qunit-fixture .multiple'); - - var data = new SelectData($select, selectOptions); - - assert.equal($select.val(), null); - - data.select({ - id: 'Two', - text: 'Two' - }); - - assert.deepEqual($select.val(), ['Two']); -}); - -test('multiple adds to the old value', function (assert) { - var $select = $('#qunit-fixture .multiple'); - - var data = new SelectData($select, selectOptions); - - $select.val(['Two']); - - assert.deepEqual($select.val(), ['Two']); - - data.select({ - id: 'One', - text: 'One' - }); - - assert.deepEqual($select.val(), ['One', 'Two']); -}); - -test('duplicates - single - same id on select triggers change', - function (assert) { - var $select = $('#qunit-fixture .duplicates'); - - var data = new SelectData($select, data); - var second = $('#qunit-fixture .duplicates option')[2]; - - var changeTriggered = false; - - assert.equal($select.val(), 'one'); - - $select.on('change', function () { - changeTriggered = true; - }); - - data.select({ - id: 'one', - text: 'Uno', - element: second - }); - - assert.equal( - $select.val(), - 'one', - 'The value never changed' - ); - - assert.ok( - changeTriggered, - 'The change event should be triggered' - ); - - assert.ok( - second.selected, - 'The second duplicate is selected, not the first' - ); -}); - -test('duplicates - single - different id on select triggers change', - function (assert) { - var $select = $('#qunit-fixture .duplicates'); - - var data = new SelectData($select, data); - var second = $('#qunit-fixture .duplicates option')[2]; - - var changeTriggered = false; - - $select.val('two'); - - $select.on('change', function () { - changeTriggered = true; - }); - - data.select({ - id: 'one', - text: 'Uno', - element: second - }); - - assert.equal( - $select.val(), - 'one', - 'The value changed to the duplicate id' - ); - - assert.ok( - changeTriggered, - 'The change event should be triggered' - ); - - assert.ok( - second.selected, - 'The second duplicate is selected, not the first' - ); -}); - -test('duplicates - multiple - same id on select triggers change', -function (assert) { - var $select = $('#qunit-fixture .duplicates-multi'); - - var data = new SelectData($select, data); - var second = $('#qunit-fixture .duplicates-multi option')[2]; - - var changeTriggered = false; - - $select.val(['one']); - - $select.on('change', function () { - changeTriggered = true; - }); - - data.select({ - id: 'one', - text: 'Uno', - element: second - }); - - assert.deepEqual( - $select.val(), - ['one', 'one'], - 'The value now has duplicates' - ); - - assert.ok( - changeTriggered, - 'The change event should be triggered' - ); - - assert.ok( - second.selected, - 'The second duplicate is selected, not the first' - ); -}); - -test('duplicates - multiple - different id on select triggers change', -function (assert) { - var $select = $('#qunit-fixture .duplicates-multi'); - - var data = new SelectData($select, data); - var second = $('#qunit-fixture .duplicates-multi option')[2]; - - var changeTriggered = false; - - $select.val(['two']); - - $select.on('change', function () { - changeTriggered = true; - }); - - data.select({ - id: 'one', - text: 'Uno', - element: second - }); - - assert.deepEqual( - $select.val(), - ['two', 'one'], - 'The value has the new id' - ); - - assert.ok( - changeTriggered, - 'The change event should be triggered' - ); - - assert.ok( - second.selected, - 'The second duplicate is selected, not the first' - ); -}); - -module('Data adapter - Select - query'); - -test('all options are returned with no term', function (assert) { - var $select = $('#qunit-fixture .single'); - - var data = new SelectData($select, selectOptions); - - data.query({}, function (data) { - assert.equal( - data.results.length, - 1, - 'The number of items returned should be equal to the number of options' - ); - }); -}); - -test('the matcher checks the text', function (assert) { - var $select = $('#qunit-fixture .single'); - - var data = new SelectData($select, selectOptions); - - data.query({ - term: 'One' - }, function (data) { - assert.equal( - data.results.length, - 1, - 'Only the "One" option should be found' - ); - }); -}); - -test('the matcher ignores case', function (assert) { - var $select = $('#qunit-fixture .single'); - - var data = new SelectData($select, selectOptions); - - data.query({ - term: 'one' - }, function (data) { - assert.equal( - data.results.length, - 1, - 'The "One" option should still be found' - ); - }); -}); - -test('no options may be returned with no matches', function (assert) { - var $select = $('#qunit-fixture .single'); - - var data = new SelectData($select, selectOptions); - - data.query({ - term: 'qwerty' - }, function (data) { - assert.equal( - data.results.length, - 0, - 'Only matching items should be returned' - ); - }); -}); - -test('optgroup tags are marked with children', function (assert) { - var $select = $('#qunit-fixture .groups'); - - var data = new SelectData($select, selectOptions); - - data.query({}, function (data) { - assert.ok( - 'children' in data.results[0], - 'The optgroup element should have children when queried' - ); - }); -}); - -test('empty optgroups are still shown when queried', function (assert) { - var $select = $('#qunit-fixture .groups'); - - var data = new SelectData($select, selectOptions); - - data.query({}, function (data) { - assert.equal( - data.results.length, - 2, - 'The empty optgroup element should still be returned when queried' - ); - - var item = data.results[1]; - - assert.equal( - item.text, - 'Empty', - 'The text of the empty optgroup should match the label' - ); - - assert.equal( - item.children.length, - 0, - 'There should be no children in the empty opgroup' - ); - }); -}); - -test('multiple options with the same value are returned', function (assert) { - var $select = $('#qunit-fixture .duplicates'); - - var data = new SelectData($select, selectOptions); - - data.query({}, function (data) { - assert.equal( - data.results.length, - 3, - 'The duplicate option should still be returned when queried' - ); - - var first = data.results[0]; - var duplicate = data.results[2]; - - assert.equal( - first.id, - duplicate.id, - 'The duplicates should have the same id' - ); - - assert.notEqual( - first.text, - duplicate.text, - 'The duplicates do not have the same text' - ); - }); -}); - -test('data objects use the text of the option', function (assert) { - var $select = $('#qunit-fixture .duplicates'); - - var data = new SelectData($select, selectOptions); - - var $option = $('<option>&amp;</option>'); - - var item = data.item($option); - - assert.equal(item.id, '&'); - assert.equal(item.text, '&'); -}); - -test('select option construction accepts id=0 (zero) value', function (assert) { - var $select = $('#qunit-fixture .single'); - - var selectOptions = [{ id: 0, text: 'Zero Value'}]; - var data = new SelectData($select, selectOptions); - - var optionElem = data.option(selectOptions[0]); - - // If was "Zero Value"", then it ignored id property - assert.equal( - optionElem[0].value, - '0', - 'Built option value should be "0" (zero as a string).' - ); -}); - -test('select option construction accepts id="" (empty string) value', - function (assert) { - var $select = $('#qunit-fixture .single'); - - var selectOptions = [{ id: '', text: 'Empty String'}]; - var data = new SelectData($select, selectOptions); - - var optionElem = data.option(selectOptions[0]); - - assert.equal( - optionElem[0].value, - '', - 'Built option value should be an empty string.' - ); -}); diff --git a/admin/bower_components/select2/tests/data/tags-tests.js b/admin/bower_components/select2/tests/data/tags-tests.js deleted file mode 100644 index 6af8d8a..0000000 --- a/admin/bower_components/select2/tests/data/tags-tests.js +++ /dev/null @@ -1,276 +0,0 @@ -module('Data adapters - Tags'); - -var SelectData = require('select2/data/select'); -var Tags = require('select2/data/tags'); - -var $ = require('jquery'); -var Options = require('select2/options'); -var Utils = require('select2/utils'); - -var SelectTags = Utils.Decorate(SelectData, Tags); -var options = new Options({ - tags: true -}); - -test('does not trigger on blank or null terms', function (assert) { - var data = new SelectTags($('#qunit-fixture .single'), options); - - data.query({ - term: '' - }, function (data) { - assert.equal(data.results.length, 1); - - var item = data.results[0]; - - assert.equal(item.id, 'One'); - assert.equal(item.text, 'One'); - }); - - data.query({ - term: null - }, function (data) { - assert.equal(data.results.length, 1); - - var item = data.results[0]; - - assert.equal(item.id, 'One'); - assert.equal(item.text, 'One'); - }); -}); - -test('white space is trimmed by default', function (assert) { - var data = new SelectTags($('#qunit-fixture .single'), options); - - data.query({ - term: ' ' - }, function (data) { - assert.equal(data.results.length, 1); - - var item = data.results[0]; - - assert.equal(item.id, 'One'); - assert.equal(item.text, 'One'); - }); - - data.query({ - term: ' One ' - }, function (data) { - assert.equal(data.results.length, 1); - - var item = data.results[0]; - - assert.equal(item.id, 'One'); - assert.equal(item.text, 'One'); - }); -}); - -test('does not create option if text is same but lowercase', function (assert) { - var data = new SelectTags($('#qunit-fixture .single'), options); - - data.query({ - term: 'one' - }, function (data) { - assert.equal(data.results.length, 1); - - var item = data.results[0]; - - assert.equal(item.id, 'One'); - assert.equal(item.text, 'One'); - }); -}); - -test('does not trigger for additional pages', function (assert) { - var data = new SelectTags($('#qunit-fixture .single'), options); - - data.query({ - page: 2 - }, function (data) { - assert.equal(data.results.length, 1); - - var item = data.results[0]; - - assert.equal(item.id, 'One'); - assert.equal(item.text, 'One'); - }); -}); - -test('creates tag at beginning', function (assert) { - var data = new SelectTags($('#qunit-fixture .single'), options); - - data.query({ - term: 'o' - }, function (data) { - assert.equal(data.results.length, 2); - - var first = data.results[0]; - - assert.equal(first.id, 'o'); - assert.equal(first.text, 'o'); - }); -}); - -test('tags can be the only result', function (assert) { - var data = new SelectTags($('#qunit-fixture .single'), options); - - data.query({ - term: 'test' - }, function (data) { - assert.equal(data.results.length, 1); - - var item = data.results[0]; - - assert.equal(item.id, 'test'); - assert.equal(item.text, 'test'); - }); -}); - -test('tags are injected as options', function (assert) { - var data = new SelectTags($('#qunit-fixture .single'), options); - - data.query({ - term: 'test' - }, function (data) { - assert.equal(data.results.length, 1); - - var $children = $('#qunit-fixture .single option'); - - assert.equal($children.length, 2); - - var $tag = $children.last(); - - assert.equal($tag.val(), 'test'); - assert.equal($tag.text(), 'test'); - }); -}); - -test('old tags are removed automatically', function (assert) { - var data = new SelectTags($('#qunit-fixture .single'), options); - - data.query({ - term: 'first' - }, function (data) { - assert.equal(data.results.length, 1); - - var $children = $('#qunit-fixture .single option'); - - assert.equal($children.length, 2); - }); - - data.query({ - term: 'second' - }, function (data) { - assert.equal(data.results.length, 1); - - var $children = $('#qunit-fixture .single option'); - - assert.equal($children.length, 2); - - var $tag = $children.last(); - - assert.equal($tag.val(), 'second'); - assert.equal($tag.text(), 'second'); - }); -}); - -test('insertTag controls the tag location', function (assert) { - var data = new SelectTags($('#qunit-fixture .single'), options); - - data.insertTag = function (data, tag) { - data.push(tag); - }; - - data.query({ - term: 'o' - }, function (data) { - assert.equal(data.results.length, 2); - - var item = data.results[1]; - - assert.equal(item.id, 'o'); - assert.equal(item.text, 'o'); - }); -}); - -test('insertTag can be controlled through the options', function (assert) { - var options = new Options({ - insertTag: function (data, tag) { - data.push(tag); - } - }); - var data = new SelectTags($('#qunit-fixture .single'), options); - - data.query({ - term: 'o' - }, function (data) { - assert.equal(data.results.length, 2); - - var item = data.results[1]; - - assert.equal(item.id, 'o'); - assert.equal(item.text, 'o'); - }); -}); - -test('createTag controls the tag object', function (assert) { - var data = new SelectTags($('#qunit-fixture .single'), options); - - data.createTag = function (params) { - return { - id: 0, - text: params.term - }; - }; - - data.query({ - term: 'test' - }, function (data) { - assert.equal(data.results.length, 1); - - var item = data.results[0]; - - assert.equal(item.id, 0); - assert.equal(item.text, 'test'); - }); -}); - -test('createTag returns null for no tag', function (assert) { - var data = new SelectTags($('#qunit-fixture .single'), options); - - data.createTag = function (params) { - return null; - }; - - data.query({ - term: 'o' - }, function (data) { - assert.equal(data.results.length, 1); - }); -}); - -test('the createTag options customizes the function', function (assert) { - var data = new SelectTags( - $('#qunit-fixture .single'), - new Options({ - tags: true, - createTag: function (params) { - return { - id: params.term, - text: params.term, - tag: true - }; - } - }) - ); - - data.query({ - term: 'test' - }, function (data) { - assert.equal(data.results.length, 1); - - var item = data.results[0]; - - assert.equal(item.id, 'test'); - assert.equal(item.text, 'test'); - assert.equal(item.tag, true); - }); -}); \ No newline at end of file diff --git a/admin/bower_components/select2/tests/data/tokenizer-tests.js b/admin/bower_components/select2/tests/data/tokenizer-tests.js deleted file mode 100644 index 2fa0121..0000000 --- a/admin/bower_components/select2/tests/data/tokenizer-tests.js +++ /dev/null @@ -1,219 +0,0 @@ -module('Data adaptor - Tokenizer'); - -test('triggers the select event', function (assert) { - assert.expect(2); - - var SelectData = require('select2/data/select'); - var Tokenizer = require('select2/data/tokenizer'); - var Tags = require('select2/data/tags'); - - var Options = require('select2/options'); - var Utils = require('select2/utils'); - - var $ = require('jquery'); - - var TokenizedSelect = Utils.Decorate( - Utils.Decorate(SelectData, Tags), - Tokenizer - ); - var $select = $('#qunit-fixture .single'); - - var options = new Options({ - tags: true, - tokenSeparators: [','] - }); - - var container = new MockContainer(); - container.dropdown = container.selection = {}; - - var $container = $('<div></div>'); - - var data = new TokenizedSelect($select, options); - data.bind(container, $container); - - data.on('select', function () { - assert.ok(true, 'The select event should be triggered'); - }); - - data.query({ - term: 'first,second' - }, function () { - assert.ok(true, 'The callback should have succeeded'); - }); -}); - -test('createTag can return null', function (assert) { - assert.expect(3); - - var SelectData = require('select2/data/select'); - var Tokenizer = require('select2/data/tokenizer'); - var Tags = require('select2/data/tags'); - - var Options = require('select2/options'); - var Utils = require('select2/utils'); - - var $ = require('jquery'); - - var TokenizedSelect = Utils.Decorate( - Utils.Decorate(SelectData, Tags), - Tokenizer - ); - var $select = $('#qunit-fixture .single'); - - var options = new Options({ - tags: true, - tokenSeparators: [','], - createTag: function () { - assert.ok(true, 'createTag should have been called'); - - return null; - } - }); - - var container = new MockContainer(); - container.dropdown = container.selection = {}; - - var $container = $('<div></div>'); - - var data = new TokenizedSelect($select, options); - data.bind(container, $container); - - data.on('select', function (params) { - if (params.data == null) { - assert.ok(false, 'Null data should never be selected'); - } - }); - - data.query({ - term: 'first,second' - }, function () { - assert.ok(true, 'The callback should have succeeded'); - }); -}); - -test('createTag returning null does not cut the term', function (assert) { - assert.expect(4); - - var SelectData = require('select2/data/select'); - var Tokenizer = require('select2/data/tokenizer'); - var Tags = require('select2/data/tags'); - - var Options = require('select2/options'); - var Utils = require('select2/utils'); - - var $ = require('jquery'); - - var TokenizedSelect = Utils.Decorate( - Utils.Decorate(SelectData, Tags), - Tokenizer - ); - var $select = $('#qunit-fixture .single'); - - var options = new Options({ - tags: true, - tokenSeparators: [',', '"'], - createTag: function (params) { - var term = params.term; - - // Ignore blanks - if (term.length === 0) { - return null; - } - - // Ignore the leading quote - if (term === '"') { - return null; - } - - // If there is a leading quote, check for a second one - if (term[0] === '"' && term[term.length - 1] !== '"') { - return null; - } - - var text = term.substr(1, term.length - 2); - - return { - id: term, - text: text - }; - } - }); - - var container = new MockContainer(); - container.dropdown = container.selection = {}; - - var $container = $('<div></div>'); - - var data = new TokenizedSelect($select, options); - data.bind(container, $container); - - data.on('select', function (params) { - assert.ok(params.data, 'Data should not be null'); - - assert.equal( - params.data.id, - '"first, second"', - 'The id should have the quotes' - ); - - assert.equal( - params.data.text, - 'first, second', - 'The text should not have the quotes' - ); - }); - - data.query({ - term: '"first, second",abc' - }, function () { - assert.ok(true, 'The callback should have succeeded'); - }); -}); - -test('works with multiple tokens given', function (assert) { - assert.expect(4); - - var SelectData = require('select2/data/select'); - var Tokenizer = require('select2/data/tokenizer'); - var Tags = require('select2/data/tags'); - - var Options = require('select2/options'); - var Utils = require('select2/utils'); - - var $ = require('jquery'); - - var TokenizedSelect = Utils.Decorate( - Utils.Decorate(SelectData, Tags), - Tokenizer - ); - var $select = $('#qunit-fixture .multiple'); - - var options = new Options({ - tags: true, - tokenSeparators: [','] - }); - - var container = new MockContainer(); - container.dropdown = container.selection = {}; - - var $container = $('<div></div>'); - - var data = new TokenizedSelect($select, options); - data.bind(container, $container); - - data.on('select', function () { - assert.ok(true, 'The select event should be triggered'); - }); - - data.query({ - term: 'first,second,third' - }, function () { - assert.ok(true, 'The callback should have succeeded'); - }); - - assert.equal( - $select.children('option').length, - 3, - 'The two new tags should have been created' - ); -}); \ No newline at end of file diff --git a/admin/bower_components/select2/tests/dropdown/dropdownCss-tests.js b/admin/bower_components/select2/tests/dropdown/dropdownCss-tests.js deleted file mode 100644 index 9969335..0000000 --- a/admin/bower_components/select2/tests/dropdown/dropdownCss-tests.js +++ /dev/null @@ -1,104 +0,0 @@ -module('Dropdown - dropdownCssClass compatibility'); - -var $ = require('jquery'); -var Utils = require('select2/utils'); -var Options = require('select2/options'); - -var Dropdown = require('select2/dropdown'); -var DropdownCSS = Utils.Decorate( - Dropdown, - require('select2/compat/dropdownCss') -); - -test('all classes will be copied if :all: is used', function (assert) { - var $element = $('<select class="test copy works"></select>'); - var options = new Options({ - dropdownCssClass: ':all:' - }); - - var select = new DropdownCSS($element, options); - var $dropdown = select.render(); - - assert.ok($dropdown.hasClass('test')); - assert.ok($dropdown.hasClass('copy')); - assert.ok($dropdown.hasClass('works')); - assert.ok(!$dropdown.hasClass(':all:')); -}); - -test(':all: can be used with other classes', function (assert) { - var $element = $('<select class="test copy works"></select>'); - var options = new Options({ - dropdownCssClass: ':all: other' - }); - - var select = new DropdownCSS($element, options); - var $dropdown = select.render(); - - assert.ok($dropdown.hasClass('test')); - assert.ok($dropdown.hasClass('copy')); - assert.ok($dropdown.hasClass('works')); - assert.ok($dropdown.hasClass('other')); - assert.ok(!$dropdown.hasClass(':all:')); -}); - -test('classes can be passed in as a string', function (assert) { - var $element = $('<select class="test copy works"></select>'); - var options = new Options({ - dropdownCssClass: 'other' - }); - - var select = new DropdownCSS($element, options); - var $dropdown = select.render(); - - assert.ok($dropdown.hasClass('other')); -}); - -test('a function can be used based on the element', function (assert){ - var $element = $('<select class="test"></select>'); - var options = new Options({ - dropdownCssClass: function ($element) { - return 'function'; - } - }); - - var select = new DropdownCSS($element, options); - var $dropdown = select.render(); - - assert.ok($dropdown.hasClass('function')); - assert.ok(!$dropdown.hasClass('test')); -}); - -test(':all: works around custom adapters', function (assert) { - var $element = $('<select class="test"></select>'); - var options = new Options({ - dropdownCssClass: ':all: something', - adaptDropdownCssClass: function (clazz) { - return clazz + '-modified'; - } - }); - - var select = new DropdownCSS($element, options); - var $dropdown = select.render(); - - assert.ok($dropdown.hasClass('something')); - - assert.ok($dropdown.hasClass('test')); - assert.ok($dropdown.hasClass('test-modified')); -}); - -module('Dropdown - adaptDropdownCss compatibility'); - -test('only return when adapted', function (assert) { - var $element = $('<select class="original"></select>'); - var options = new Options({ - adaptDropdownCssClass: function (clazz) { - return 'modified'; - } - }); - - var select = new DropdownCSS($element, options); - var $dropdown = select.render(); - - assert.ok(!$dropdown.hasClass('original')); - assert.ok($dropdown.hasClass('modified')); -}); diff --git a/admin/bower_components/select2/tests/dropdown/positioning-tests.js b/admin/bower_components/select2/tests/dropdown/positioning-tests.js deleted file mode 100644 index 37c2b06..0000000 --- a/admin/bower_components/select2/tests/dropdown/positioning-tests.js +++ /dev/null @@ -1,177 +0,0 @@ -module('Dropdown - attachBody - positioning'); - -test('appends to the dropdown parent', function (assert) { - assert.expect(4); - - var $ = require('jquery'); - - var $select = $('<select></select>'); - var $parent = $('<div></div>'); - - var $container = $('<span></span>'); - var container = new MockContainer(); - - $parent.appendTo($('#qunit-fixture')); - $select.appendTo($parent); - - var Utils = require('select2/utils'); - var Options = require('select2/options'); - - var Dropdown = require('select2/dropdown'); - var AttachBody = require('select2/dropdown/attachBody'); - - var DropdownAdapter = Utils.Decorate(Dropdown, AttachBody); - - var dropdown = new DropdownAdapter($select, new Options({ - dropdownParent: $parent - })); - - assert.equal( - $parent.children().length, - 1, - 'Only the select should be in the container' - ); - - var $dropdown = dropdown.render(); - - dropdown.bind(container, $container); - - dropdown.position($dropdown, $container); - - assert.equal( - $parent.children().length, - 1, - 'The dropdown should not be placed until after it is opened' - ); - - dropdown._showDropdown(); - - assert.equal( - $parent.children().length, - 2, - 'The dropdown should now be in the container as well' - ); - - assert.ok( - $.contains($parent[0], $dropdown[0]), - 'The dropdown should be contained within the parent container' - ); -}); - -test('dropdown is positioned down with static margins', function (assert) { - var $ = require('jquery'); - var $select = $('<select></select>'); - var $parent = $('<div></div>'); - $parent.css({ - position: 'static', - marginTop: '5px', - marginLeft: '10px' - }); - - var $container = $('<span>test</span>'); - var container = new MockContainer(); - - $('#qunit-fixture').empty(); - - $parent.appendTo($('#qunit-fixture')); - $container.appendTo($parent); - - var Utils = require('select2/utils'); - var Options = require('select2/options'); - - var Dropdown = require('select2/dropdown'); - var AttachBody = require('select2/dropdown/attachBody'); - - var DropdownAdapter = Utils.Decorate(Dropdown, AttachBody); - - var dropdown = new DropdownAdapter($select, new Options({ - dropdownParent: $parent - })); - - var $dropdown = dropdown.render(); - - assert.equal( - $dropdown[0].style.top, - 0, - 'The drodpown should not have any offset before it is displayed' - ); - - dropdown.bind(container, $container); - dropdown.position($dropdown, $container); - dropdown._showDropdown(); - - assert.ok( - dropdown.$dropdown.hasClass('select2-dropdown--below'), - 'The dropdown should be forced down' - ); - - assert.equal( - $dropdown.css('top').substring(0, 2), - $container.outerHeight() + 5, - 'The offset should be 5px at the top' - ); - - assert.equal( - $dropdown.css('left'), - '10px', - 'The offset should be 10px on the left' - ); -}); - -test('dropdown is positioned down with absolute offsets', function (assert) { - var $ = require('jquery'); - var $select = $('<select></select>'); - var $parent = $('<div></div>'); - $parent.css({ - position: 'absolute', - top: '10px', - left: '5px' - }); - - var $container = $('<span>test</span>'); - var container = new MockContainer(); - - $parent.appendTo($('#qunit-fixture')); - $container.appendTo($parent); - - var Utils = require('select2/utils'); - var Options = require('select2/options'); - - var Dropdown = require('select2/dropdown'); - var AttachBody = require('select2/dropdown/attachBody'); - - var DropdownAdapter = Utils.Decorate(Dropdown, AttachBody); - - var dropdown = new DropdownAdapter($select, new Options({ - dropdownParent: $parent - })); - - var $dropdown = dropdown.render(); - - assert.equal( - $dropdown[0].style.top, - 0, - 'The drodpown should not have any offset before it is displayed' - ); - - dropdown.bind(container, $container); - dropdown.position($dropdown, $container); - dropdown._showDropdown(); - - assert.ok( - dropdown.$dropdown.hasClass('select2-dropdown--below'), - 'The dropdown should be forced down' - ); - - assert.equal( - $dropdown.css('top').substring(0, 2), - $container.outerHeight(), - 'There should not be an extra top offset' - ); - - assert.equal( - $dropdown.css('left'), - '0px', - 'There should not be an extra left offset' - ); -}); \ No newline at end of file diff --git a/admin/bower_components/select2/tests/dropdown/selectOnClose-tests.js b/admin/bower_components/select2/tests/dropdown/selectOnClose-tests.js deleted file mode 100644 index 3f1d1d4..0000000 --- a/admin/bower_components/select2/tests/dropdown/selectOnClose-tests.js +++ /dev/null @@ -1,137 +0,0 @@ -module('Dropdown - selectOnClose'); - -var $ = require('jquery'); - -var Utils = require('select2/utils'); -var Options = require('select2/options'); - -var SelectData = require('select2/data/select'); - -var Results = require('select2/results'); -var SelectOnClose = require('select2/dropdown/selectOnClose'); - -var ModifiedResults = Utils.Decorate(Results, SelectOnClose); - -var options = new Options({ - selectOnClose: true -}); - -test('will not trigger if no results were given', function (assert) { - assert.expect(0); - - var $element = $('<select></select>'); - var select = new ModifiedResults($element, options, new SelectData($element)); - - var $dropdown = select.render(); - - var container = new MockContainer(); - select.bind(container, $('<div></div>')); - - select.on('select', function () { - assert.ok(false, 'The select event should not have been triggered'); - }); - - container.trigger('close'); -}); - -test('will not trigger if the results list is empty', function (assert) { - assert.expect(1); - - var $element = $('<select></select>'); - var select = new ModifiedResults($element, options, new SelectData($element)); - - var $dropdown = select.render(); - - var container = new MockContainer(); - select.bind(container, $('<div></div>')); - - select.on('select', function () { - assert.ok(false, 'The select event should not have been triggered'); - }); - - select.append({ - results: [] - }); - - assert.equal( - $dropdown.find('li').length, - 0, - 'There should not be any results in the dropdown' - ); - - container.trigger('close'); -}); - -test('will not trigger if no results here highlighted', function (assert) { - assert.expect(2); - - var $element = $('<select></select>'); - var select = new ModifiedResults($element, options, new SelectData($element)); - - var $dropdown = select.render(); - - var container = new MockContainer(); - select.bind(container, $('<div></div>')); - - select.on('select', function () { - assert.ok(false, 'The select event should not have been triggered'); - }); - - select.append({ - results: [ - { - id: '1', - text: 'Test' - } - ] - }); - - assert.equal( - $dropdown.find('li').length, - 1, - 'There should be one result in the dropdown' - ); - - assert.equal( - $.trim($dropdown.find('li').text()), - 'Test', - 'The result should be the same as the one we appended' - ); - - container.trigger('close'); -}); - -test('will trigger if there is a highlighted result', function (assert) { - assert.expect(2); - - var $element = $('<select></select>'); - var select = new ModifiedResults($element, options, new SelectData($element)); - - var $dropdown = select.render(); - - var container = new MockContainer(); - select.bind(container, $('<div></div>')); - - select.on('select', function () { - assert.ok(true, 'The select event should have been triggered'); - }); - - select.append({ - results: [ - { - id: '1', - text: 'Test' - } - ] - }); - - assert.equal( - $dropdown.find('li').length, - 1, - 'There should be one result in the dropdown' - ); - - $dropdown.find('li').addClass('select2-results__option--highlighted'); - - container.trigger('close'); -}); diff --git a/admin/bower_components/select2/tests/dropdown/stopPropagation-tests.js b/admin/bower_components/select2/tests/dropdown/stopPropagation-tests.js deleted file mode 100644 index 240a3e6..0000000 --- a/admin/bower_components/select2/tests/dropdown/stopPropagation-tests.js +++ /dev/null @@ -1,33 +0,0 @@ -module('Dropdown - Stoping event propagation'); - -var Dropdown = require('select2/dropdown'); -var StopPropagation = require('select2/dropdown/stopPropagation'); - -var $ = require('jquery'); -var Options = require('select2/options'); -var Utils = require('select2/utils'); - -var CustomDropdown = Utils.Decorate(Dropdown, StopPropagation); - -var options = new Options(); - -test('click event does not propagate', function (assert) { - assert.expect(1); - - var $container = $('#qunit-fixture .event-container'); - var container = new MockContainer(); - - var dropdown = new CustomDropdown($('#qunit-fixture select'), options); - - var $dropdown = dropdown.render(); - dropdown.bind(container, $container); - - $container.append($dropdown); - $container.on('click', function () { - assert.ok(false, 'The click event should have been stopped'); - }); - - $dropdown.trigger('click'); - - assert.ok(true, 'Something went wrong if this failed'); -}); diff --git a/admin/bower_components/select2/tests/helpers.js b/admin/bower_components/select2/tests/helpers.js deleted file mode 100644 index e0c9fa2..0000000 --- a/admin/bower_components/select2/tests/helpers.js +++ /dev/null @@ -1,46 +0,0 @@ -// Restore the require/define -var require = $.fn.select2.amd.require; -var define = $.fn.select2.amd.define; - -// Disable jQuery's binding to $ -jQuery.noConflict(); - -var Utils = require('select2/utils'); - -function MockContainer () { - MockContainer.__super__.constructor.call(this); -} - -Utils.Extend(MockContainer, Utils.Observable); - -MockContainer.prototype.isOpen = function () { - return this.isOpen; -}; - -var log = []; -var testName; - -QUnit.done(function (test_results) { - var tests = []; - for(var i = 0, len = log.length; i < len; i++) { - var details = log[i]; - tests.push({ - name: details.name, - result: details.result, - expected: details.expected, - actual: details.actual, - source: details.source - }); - } - test_results.tests = tests; - - window.global_test_results = test_results; -}); -QUnit.testStart(function(testDetails){ - QUnit.log(function(details){ - if (!details.result) { - details.name = testDetails.name; - log.push(details); - } - }); -}); diff --git a/admin/bower_components/select2/tests/integration.html b/admin/bower_components/select2/tests/integration.html deleted file mode 100644 index d8d0ef5..0000000 --- a/admin/bower_components/select2/tests/integration.html +++ /dev/null @@ -1,21 +0,0 @@ -<!doctype html> -<html> - <head> - <link rel="stylesheet" href="vendor/qunit-1.23.1.css" type="text/css" /> - <link rel="stylesheet" href="../../dist/css/select2.css" type="text/css" /> - </head> - <body> - <div id="qunit"></div> - <div id="qunit-fixture"></div> - - <script src="vendor/qunit-1.23.1.js" type="text/javascript"></script> - <script src="vendor/jquery-1.7.2.js" type="text/javascript"></script> - <script src="../dist/js/select2.full.js" type="text/javascript"></script> - - <script src="helpers.js" type="text/javascript"></script> - - <script src="integration/dom-changes.js" type="text/javascript"></script> - <script src="integration/jquery-calls.js" type="text/javascript"></script> - <script src="integration/select2-methods.js" type="text/javascript"></script> - </body> -</html> diff --git a/admin/bower_components/select2/tests/integration/dom-changes.js b/admin/bower_components/select2/tests/integration/dom-changes.js deleted file mode 100644 index 2d89ae2..0000000 --- a/admin/bower_components/select2/tests/integration/dom-changes.js +++ /dev/null @@ -1,257 +0,0 @@ -module('DOM integration'); - -test('adding a new unselected option changes nothing', function (assert) { - // Any browsers which support mutation observers will not trigger the event - var expected = 4; - if (window.MutationObserver) { - expected = 2; - } else if (!window.addEventListener) { - expected = 2; - } - - assert.expect(expected); - - var asyncDone = null; - var syncDone = assert.async(); - - if (expected != 2) { - asyncDone = assert.async(); - } - - var $ = require('jquery'); - var Options = require('select2/options'); - var Select2 = require('select2/core'); - - var $select = $( - '<select>' + - '<option>One</option>' + - '<option>Two</option>' + - '</select>' - ); - - $('#qunit-fixture').append($select); - - var select = new Select2($select); - - select.on('selection:update', function (args) { - assert.equal( - args.data.length, - 1, - 'There was more than one selection' - ); - - assert.equal( - args.data[0].id, - 'One', - 'The selection changed to something other than One' - ); - - if (expected != 2) { - asyncDone(); - } - }); - - assert.equal( - $select.val(), - 'One' - ); - - var $option = $('<option>Three</option>'); - - $select.append($option); - - assert.equal( - $select.val(), - 'One' - ); - - syncDone(); -}); - -test('adding a new selected option changes the value', function (assert) { - // handle IE 8 not being supported - var expected = 4; - if (!window.MutationObserver && !window.addEventListener) { - expected = 2; - } - - assert.expect(expected); - - var asyncDone = null; - var syncDone = assert.async(); - - if (expected != 2) { - asyncDone = assert.async(); - } - - var $ = require('jquery'); - var Options = require('select2/options'); - var Select2 = require('select2/core'); - - var $select = $( - '<select>' + - '<option>One</option>' + - '<option>Two</option>' + - '</select>' - ); - - $('#qunit-fixture').append($select); - - var select = new Select2($select); - - select.on('selection:update', function (args) { - assert.equal( - args.data.length, - 1, - 'There was more than one selection' - ); - - assert.equal( - args.data[0].id, - 'Three', - 'The selection did not change to Three' - ); - - if (expected != 2) { - asyncDone(); - } - }); - - assert.equal( - $select.val(), - 'One' - ); - - var $option = $('<option selected>Three</option>'); - - $select.append($option); - - assert.equal( - $select.val(), - 'Three' - ); - - syncDone(); -}); - -test('removing an unselected option changes nothing', function (assert) { - // Any browsers which support mutation observers will not trigger the event - var expected = 4; - if (!window.MutationObserver && !window.addEventListener) { - expected = 2; - } - - assert.expect(expected); - - var asyncDone = null; - var syncDone = assert.async(); - - if (expected != 2) { - asyncDone = assert.async(); - } - - var $ = require('jquery'); - var Options = require('select2/options'); - var Select2 = require('select2/core'); - - var $select = $( - '<select>' + - '<option>One</option>' + - '<option>Two</option>' + - '</select>' - ); - - $('#qunit-fixture').append($select); - - var select = new Select2($select); - - select.on('selection:update', function (args) { - assert.equal( - args.data.length, - 1, - 'There was more than one selection' - ); - - assert.equal( - args.data[0].id, - 'One', - 'The selection changed to something other than One' - ); - - if (expected != 2) { - asyncDone(); - } - }); - - assert.equal( - $select.val(), - 'One' - ); - - $select.children().eq(1).remove(); - - assert.equal( - $select.val(), - 'One' - ); - - syncDone(); -}); - -test('removing a selected option changes the value', function (assert) { - // handle IE 8 not being supported - var expected = 3; - if (!window.MutationObserver && !window.addEventListener) { - expected = 2; - } - - assert.expect(expected); - - var asyncDone = null; - var syncDone = assert.async(); - - if (expected != 2) { - asyncDone = assert.async(); - } - - var $ = require('jquery'); - var Options = require('select2/options'); - var Select2 = require('select2/core'); - - var $select = $( - '<select>' + - '<option>One</option>' + - '<option>Two</option>' + - '</select>' - ); - - $('#qunit-fixture').append($select); - - var select = new Select2($select); - - select.on('selection:update', function (args) { - assert.equal( - args.data.length, - 1, - 'There was more than one selection' - ); - - if (expected != 2) { - asyncDone(); - } - }); - - assert.equal( - $select.val(), - 'One' - ); - - $select.children().eq(0).remove(); - - assert.equal( - $select.val(), - 'Two' - ); - - syncDone(); -}); \ No newline at end of file diff --git a/admin/bower_components/select2/tests/integration/jquery-calls.js b/admin/bower_components/select2/tests/integration/jquery-calls.js deleted file mode 100644 index 6a30137..0000000 --- a/admin/bower_components/select2/tests/integration/jquery-calls.js +++ /dev/null @@ -1,30 +0,0 @@ -module('select2(val)'); - -test('multiple elements with arguments works', function (assert) { - var $ = require('jquery'); - require('jquery.select2'); - - var $first = $( - '<select>' + - '<option>1</option>' + - '<option>2</option>' + - '</select>' - ); - var $second = $first.clone(); - - var $both = $first.add($second); - $both.select2(); - - $both.select2('val', '2'); - - assert.equal( - $first.val(), - '2', - 'The call should change the value on the first element' - ); - assert.equal( - $second.val(), - '2', - 'The call should also change the value on the second element' - ); -}); \ No newline at end of file diff --git a/admin/bower_components/select2/tests/integration/select2-methods.js b/admin/bower_components/select2/tests/integration/select2-methods.js deleted file mode 100644 index b1e344a..0000000 --- a/admin/bower_components/select2/tests/integration/select2-methods.js +++ /dev/null @@ -1,139 +0,0 @@ -module('select2(data)'); - -var $ = require('jquery'); -var Select2 = require('select2/core'); -var Options = require('select2/options'); - -test('single default selection returned', function (assert) { - var $select = $( - '<select>' + - '<option>One</option>' + - '<option>Two</option>' + - '<option value="3" selected>Three</option>' + - '</select>' - ); - var options = new Options({}); - - var select = new Select2($select, options); - - var items = select.data(); - - assert.equal( - items.length, - 1, - 'The one selected item should be returned' - ); - - var first = items[0]; - - assert.equal( - first.id, - '3', - 'The first option was correct' - ); - - assert.equal( - first.text, - 'Three', - 'The first option was correct' - ); -}); - -test('multiple default selections returned', function (assert) { - var $select = $( - '<select multiple>' + - '<option selected>One</option>' + - '<option>Two</option>' + - '<option value="3" selected>Three</option>' + - '</select>' - ); - var options = new Options({}); - - var select = new Select2($select, options); - - var items = select.data(); - - assert.equal( - items.length, - 2, - 'The two selected items should be returned' - ); - - var first = items[0]; - - assert.equal( - first.id, - 'One', - 'The first option was correct' - ); - - var second = items[1]; - - assert.equal( - second.id, - '3', - 'The option value should be pulled correctly' - ); -}); - -module('select2(val)'); - -test('single value matches jquery value', function (assert) { - var $select = $( - '<select>' + - '<option>One</option>' + - '<option>Two</option>' + - '<option value="3" selected>Three</option>' + - '</select>' - ); - var options = new Options({}); - - var select = new Select2($select, options); - - var value = select.val(); - - assert.equal( - value, - '3', - 'The value should match the option tag attribute' - ); - - assert.equal( - value, - $select.val(), - 'The value should match the jquery value' - ); -}); - -test('multiple value matches the jquery value', function (assert) { - var $select = $( - '<select multiple>' + - '<option selected>One</option>' + - '<option>Two</option>' + - '<option value="3" selected>Three</option>' + - '</select>' - ); - var options = new Options({}); - - var select = new Select2($select, options); - - var value = select.val(); - - assert.equal( - value.length, - 2, - 'Two options should be selected' - ); - - assert.deepEqual( - value, - ['One', '3'], - 'The values should match the option tag attribute' - ); - - assert.deepEqual( - value, - $select.val(), - 'The values should match the jquery values' - ); -}); diff --git a/admin/bower_components/select2/tests/options/ajax-tests.js b/admin/bower_components/select2/tests/options/ajax-tests.js deleted file mode 100644 index 7d8537a..0000000 --- a/admin/bower_components/select2/tests/options/ajax-tests.js +++ /dev/null @@ -1,32 +0,0 @@ -module('Defaults - Ajax'); - -test('options are merged recursively with default options', function (assert) { - var defaults = require('select2/defaults'); - - var ajaxDelay = 250; - var ajaxUrl = 'http://www.test.com'; - - var mergedOptions; - - defaults.set('ajax--delay', ajaxDelay); - - mergedOptions = defaults.apply({ - ajax: { - url: ajaxUrl - } - }); - - assert.equal( - mergedOptions.ajax.delay, - ajaxDelay, - 'Ajax default options are present on the merged options' - ); - - assert.equal( - mergedOptions.ajax.url, - ajaxUrl, - 'Ajax provided options are present on the merged options' - ); - - defaults.reset(); -}); \ No newline at end of file diff --git a/admin/bower_components/select2/tests/options/data-tests.js b/admin/bower_components/select2/tests/options/data-tests.js deleted file mode 100644 index 107a2f0..0000000 --- a/admin/bower_components/select2/tests/options/data-tests.js +++ /dev/null @@ -1,44 +0,0 @@ -module('Options - Attributes'); - -var $ = require('jquery'); - -var Options = require('select2/options'); - -test('no nesting', function (assert) { - var $test = $('<select data-test="test"></select>'); - - var options = new Options({}, $test); - - assert.equal(options.get('test'), 'test'); -}); - -test('with nesting', function (assert) { - var $test = $('<select data-first--second="test"></select>'); - - if ($test[0].dataset == null) { - assert.ok( - true, - 'We can not run this test with jQuery 1.x if dataset is not implemented' - ); - - return; - } - - var options = new Options({}, $test); - - assert.ok(!(options.get('first-Second'))); - assert.equal(options.get('first').second, 'test'); -}); - -test('overrides initialized data', function (assert) { - var $test = $('<select data-override="yes" data-data="yes"></select>'); - - var options = new Options({ - options: 'yes', - override: 'no' - }, $test); - - assert.equal(options.get('options'), 'yes'); - assert.equal(options.get('override'), 'yes'); - assert.equal(options.get('data'), 'yes'); -}); diff --git a/admin/bower_components/select2/tests/options/deprecated-tests.js b/admin/bower_components/select2/tests/options/deprecated-tests.js deleted file mode 100644 index a51bba3..0000000 --- a/admin/bower_components/select2/tests/options/deprecated-tests.js +++ /dev/null @@ -1,250 +0,0 @@ -module('Options - Deprecated - initSelection'); - -var $ = require('jquery'); -var Options = require('select2/options'); - -test('converted into dataAdapter.current', function (assert) { - assert.expect(5); - - var $test = $('<select></select>'); - var called = false; - - var options = new Options({ - initSelection: function ($element, callback) { - called = true; - - callback([{ - id: '1', - text: '2' - }]); - } - }, $test); - - assert.ok(!called, 'initSelection should not have been called'); - - var DataAdapter = options.get('dataAdapter'); - var data = new DataAdapter($test, options); - - data.current(function (data) { - assert.equal( - data.length, - 1, - 'There should have only been one object selected' - ); - - var item = data[0]; - - assert.equal( - item.id, - '1', - 'The id should have been set by initSelection' - ); - - assert.equal( - item.text, - '2', - 'The text should have been set by initSelection' - ); - }); - - assert.ok(called, 'initSelection should have been called'); -}); - -test('single option converted to array automatically', function (assert) { - assert.expect(2); - - var $test = $('<select></select>'); - var called = false; - - var options = new Options({ - initSelection: function ($element, callback) { - called = true; - - callback({ - id: '1', - text: '2' - }); - } - }, $test); - - var DataAdapter = options.get('dataAdapter'); - var data = new DataAdapter($test, options); - - data.current(function (data) { - assert.ok( - $.isArray(data), - 'The data should have been converted to an array' - ); - }); - - assert.ok(called, 'initSelection should have been called'); -}); - -test('only called once', function (assert) { - assert.expect(8); - - var $test = $('<select><option value="3" selected>4</option></select>'); - var called = 0; - - var options = new Options({ - initSelection: function ($element, callback) { - called++; - - callback([{ - id: '1', - text: '2' - }]); - } - }, $test); - - var DataAdapter = options.get('dataAdapter'); - var data = new DataAdapter($test, options); - - data.current(function (data) { - assert.equal( - data.length, - 1, - 'There should have only been a single option' - ); - - var item = data[0]; - - assert.equal( - item.id, - '1', - 'The id should match the one given by initSelection' - ); - - assert.equal( - item.text, - '2', - 'The text should match the one given by initSelection' - ); - }); - - assert.equal( - called, - 1, - 'initSelection should have been called' - ); - - data.current(function (data) { - assert.equal( - data.length, - 1, - 'There should have only been a single option' - ); - - var item = data[0]; - - assert.equal( - item.id, - '3', - 'The id should match the value given in the DOM' - ); - - assert.equal( - item.text, - '4', - 'The text should match the text given in the DOM' - ); - }); - - assert.equal( - called, - 1, - 'initSelection should have only been called once' - ); -}); - -module('Options - Deprecated - query'); - -test('converted into dataAdapter.query automatically', function (assert) { - assert.expect(6); - - var $test = $('<select></select>'); - var called = false; - - var options = new Options({ - query: function (params) { - called = true; - - params.callback({ - results: [ - { - id: 'test', - text: params.term - } - ] - }); - } - }, $test); - - assert.ok(!called, 'The query option should not have been called'); - - var DataAdapter = options.get('dataAdapter'); - var data = new DataAdapter($test, options); - - data.query({ - term: 'term' - }, function (data) { - assert.ok( - 'results' in data, - 'It should have included the results key' - ); - - assert.equal( - data.results.length, - 1, - 'There should have only been a single result returned' - ); - - var item = data.results[0]; - - assert.equal( - item.id, - 'test', - 'The id should have been returned from the query function' - ); - - assert.equal( - item.text, - 'term', - 'The text should have matched the term that was passed in' - ); - }); - - assert.ok(called, 'The query function should have been called'); -}); - -module('Options - deprecated - data-ajax-url'); - -test('converted ajax-url to ajax--url automatically', function (assert) { - var $test = $('<select data-ajax-url="test://url"></select>'); - var options = new Options({}, $test); - - assert.ok( - options.get('ajax'), - 'The `ajax` key was automatically created' - ); - assert.equal( - options.get('ajax').url, - 'test://url', - 'The `url` property for the `ajax` option was filled in correctly' - ); -}); - -test('converted select2-tags to data/tags automatically', function (assert) { - var $test = $('<select data-select2-tags="original data"></select>'); - var options = new Options({}, $test); - - assert.ok( - options.get('tags'), - 'The `tags` key is automatically set to true' - ); - assert.equal( - options.get('data'), - 'original data', - 'The `data` key is created with the original data' - ); -}); diff --git a/admin/bower_components/select2/tests/options/translation-tests.js b/admin/bower_components/select2/tests/options/translation-tests.js deleted file mode 100644 index ab433b6..0000000 --- a/admin/bower_components/select2/tests/options/translation-tests.js +++ /dev/null @@ -1,28 +0,0 @@ -module('Options - Translations'); - -var $ = require('jquery'); -var Options = require('select2/options'); - -test('partial dictionaries can be passed', function (assert) { - var options = new Options({ - language: { - searching: function () { - return 'Something'; - } - } - }); - - var translations = options.get('translations'); - - assert.equal( - translations.get('searching')(), - 'Something', - 'The partial dictionary still overrides translations' - ); - - assert.equal( - translations.get('noResults')(), - 'No results found', - 'You can still get English translations for keys not passed in' - ); -}); diff --git a/admin/bower_components/select2/tests/options/width-tests.js b/admin/bower_components/select2/tests/options/width-tests.js deleted file mode 100644 index e724034..0000000 --- a/admin/bower_components/select2/tests/options/width-tests.js +++ /dev/null @@ -1,66 +0,0 @@ -module('Options - Width'); - -var $ = require('jquery'); - -var Select2 = require('select2/core'); -var select = new Select2($('<select></select>')); - -test('string passed as width', function (assert) { - var $test = $('<select></select>'); - - var width = select._resolveWidth($test, '80%'); - - assert.equal(width, '80%'); -}); - -test('width from style attribute', function (assert) { - var $test = $('<select style="width: 50%;"></selct>'); - - var width = select._resolveWidth($test, 'style'); - - assert.equal(width, '50%'); -}); - -test('width from style returns null if nothing is found', function (assert) { - var $test = $('<select></selct>'); - - var width = select._resolveWidth($test, 'style'); - - assert.equal(width, null); -}); - -test('width from computed element width', function (assert) { - var $style = $( - '<style type="text/css">.css-set-width { width: 500px; }</style>' - ); - var $test = $('<select class="css-set-width"></select>'); - - $('#qunit-fixture').append($style); - $('#qunit-fixture').append($test); - - var width = select._resolveWidth($test, 'element'); - - assert.equal(width, '500px'); -}); - -test('resolve gets the style if it is there', function (assert) { - var $test = $('<select style="width: 20%;"></selct>'); - - var width = select._resolveWidth($test, 'resolve'); - - assert.equal(width, '20%'); -}); - -test('resolve falls back to element if there is no style', function (assert) { - var $style = $( - '<style type="text/css">.css-set-width { width: 500px; }</style>' - ); - var $test = $('<select class="css-set-width"></select>'); - - $('#qunit-fixture').append($style); - $('#qunit-fixture').append($test); - - var width = select._resolveWidth($test, 'resolve'); - - assert.equal(width, '500px'); -}); diff --git a/admin/bower_components/select2/tests/results/focusing-tests.js b/admin/bower_components/select2/tests/results/focusing-tests.js deleted file mode 100644 index 135d001..0000000 --- a/admin/bower_components/select2/tests/results/focusing-tests.js +++ /dev/null @@ -1,138 +0,0 @@ -module('Results - highlighting results'); - -test('results:all with no data skips results:focus', function (assert) { - assert.expect(0); - - var $ = require('jquery'); - - var $select = $('<select></select>'); - var $parent = $('<div></div>'); - - var $container = $('<span></span>'); - var container = new MockContainer(); - - $parent.appendTo($('#qunit-fixture')); - $select.appendTo($parent); - - var Utils = require('select2/utils'); - var Options = require('select2/options'); - - var Results = require('select2/results'); - - var results = new Results($select, new Options({})); - - // Fake the data adapter for the `setClasses` method - results.data = {}; - results.data.current = function (callback) { - callback([{ id: 'test' }]); - }; - - results.render(); - - results.bind(container, $container); - - results.on('results:focus', function (params) { - assert.ok(false, 'The results:focus event was triggered'); - }); - - container.trigger('results:all', { - data: { - results: [] - } - }); -}); - -test('results:all triggers results:focus on the first item', function (assert) { - assert.expect(2); - - var $ = require('jquery'); - - var $select = $('<select></select>'); - var $parent = $('<div></div>'); - - var $container = $('<span></span>'); - var container = new MockContainer(); - - $parent.appendTo($('#qunit-fixture')); - $select.appendTo($parent); - - var Utils = require('select2/utils'); - var Options = require('select2/options'); - - var Results = require('select2/results'); - - var results = new Results($select, new Options({})); - - // Fake the data adapter for the `setClasses` method - results.data = {}; - results.data.current = function (callback) { - callback([{ id: 'test' }]); - }; - - results.render(); - - results.bind(container, $container); - - results.on('results:focus', function (params) { - assert.equal(params.data.id, 'test'); - assert.equal(params.data.text, 'Test'); - }); - - container.trigger('results:all', { - data: { - results: [ - { - id: 'test', - text: 'Test' - } - ] - } - }); -}); - -test('results:append does not trigger results:focus', function (assert) { - assert.expect(0); - - var $ = require('jquery'); - - var $select = $('<select></select>'); - var $parent = $('<div></div>'); - - var $container = $('<span></span>'); - var container = new MockContainer(); - - $parent.appendTo($('#qunit-fixture')); - $select.appendTo($parent); - - var Utils = require('select2/utils'); - var Options = require('select2/options'); - - var Results = require('select2/results'); - - var results = new Results($select, new Options({})); - - // Fake the data adapter for the `setClasses` method - results.data = {}; - results.data.current = function (callback) { - callback([{ id: 'test' }]); - }; - - results.render(); - - results.bind(container, $container); - - results.on('results:focus', function () { - assert.ok(false, 'The results:focus event was triggered'); - }); - - container.trigger('results:append', { - data: { - results: [ - { - id: 'test', - text: 'Test' - } - ] - } - }); -}); \ No newline at end of file diff --git a/admin/bower_components/select2/tests/selection/allowClear-tests.js b/admin/bower_components/select2/tests/selection/allowClear-tests.js deleted file mode 100644 index efa132a..0000000 --- a/admin/bower_components/select2/tests/selection/allowClear-tests.js +++ /dev/null @@ -1,218 +0,0 @@ -module('Selection containers - Placeholders - Allow clear'); - -var Placeholder = require('select2/selection/placeholder'); -var AllowClear = require('select2/selection/allowClear'); - -var SingleSelection = require('select2/selection/single'); - -var $ = require('jquery'); -var Options = require('select2/options'); -var Utils = require('select2/utils'); - -var AllowClearPlaceholder = Utils.Decorate( - Utils.Decorate(SingleSelection, Placeholder), - AllowClear -); - -var allowClearOptions = new Options({ - placeholder: { - id: 'placeholder', - text: 'This is the placeholder' - }, - allowClear: true -}); - -test('clear is not displayed for single placeholder', function (assert) { - var selection = new AllowClearPlaceholder( - $('#qunit-fixture .single-with-placeholder'), - allowClearOptions - ); - - var $selection = selection.render(); - - selection.update([{ - id: 'placeholder' - }]); - - assert.equal( - $selection.find('.select2-selection__clear').length, - 0, - 'The clear icon should not be displayed' - ); -}); - -test('clear is not displayed for multiple placeholder', function (assert) { - var selection = new AllowClearPlaceholder( - $('#qunit-fixture .single-with-placeholder'), - allowClearOptions - ); - - var $selection = selection.render(); - - selection.update([]); - - assert.equal( - $selection.find('.select2-selection__clear').length, - 0, - 'The clear icon should not be displayed' - ); -}); - - -test('clear is displayed for placeholder', function (assert) { - var selection = new AllowClearPlaceholder( - $('#qunit-fixture .single-with-placeholder'), - allowClearOptions - ); - - var $selection = selection.render(); - - selection.update([{ - id: 'one', - test: 'one' - }]); - - assert.equal( - $selection.find('.select2-selection__clear').length, - 1, - 'The clear icon should be displayed' - ); -}); - -test('clicking clear will set the placeholder value', function (assert) { - var $element = $('#qunit-fixture .single-with-placeholder'); - - var selection = new AllowClearPlaceholder( - $element, - allowClearOptions - ); - var container = new MockContainer(); - - var $selection = selection.render(); - - selection.bind(container, $('<div></div')); - - $element.val('One'); - selection.update([{ - id: 'One', - text: 'One' - }]); - - var $remove = $selection.find('.select2-selection__clear'); - $remove.trigger('mousedown'); - - assert.equal( - $element.val(), - 'placeholder', - 'The value should have been reset to the placeholder' - ); -}); - -test('clicking clear will trigger the unselect event', function (assert) { - assert.expect(3); - - var $element = $('#qunit-fixture .single-with-placeholder'); - - var selection = new AllowClearPlaceholder( - $element, - allowClearOptions - ); - var container = new MockContainer(); - - var $selection = selection.render(); - - selection.bind(container, $('<div></div')); - - $element.val('One'); - selection.update([{ - id: 'One', - text: 'One' - }]); - - selection.on('unselect', function (ev) { - assert.ok( - 'data' in ev && ev.data, - 'The event should have been triggered with the data property' - ); - - assert.ok( - $.isPlainObject(ev.data), - 'The data should be an object' - ); - - assert.equal( - ev.data.id, - 'One', - 'The previous object should be unselected' - ); - }); - - var $remove = $selection.find('.select2-selection__clear'); - $remove.trigger('mousedown'); -}); - - - -test('preventing the unselect event cancels the clearing', function (assert) { - var $element = $('#qunit-fixture .single-with-placeholder'); - - var selection = new AllowClearPlaceholder( - $element, - allowClearOptions - ); - var container = new MockContainer(); - - var $selection = selection.render(); - - selection.bind(container, $('<div></div')); - - $element.val('One'); - selection.update([{ - id: 'One', - text: 'One' - }]); - - selection.on('unselect', function (ev) { - ev.prevented = true; - }); - - var $remove = $selection.find('.select2-selection__clear'); - $remove.trigger('mousedown'); - - assert.equal( - $element.val(), - 'One', - 'The placeholder should not have been set' - ); -}); - -test('clear does not work when disabled', function (assert) { - var $element = $('#qunit-fixture .single-with-placeholder'); - - var selection = new AllowClearPlaceholder( - $element, - allowClearOptions - ); - var container = new MockContainer(); - - var $selection = selection.render(); - - selection.bind(container, $('<div></div')); - - selection.update([{ - id: 'One', - text: 'One' - }]); - - $element.val('One'); - selection.options.set('disabled', true); - - var $remove = $selection.find('.select2-selection__clear'); - $remove.trigger('mousedown'); - - assert.equal( - $element.val(), - 'One', - 'The placeholder should not have been set' - ); -}); diff --git a/admin/bower_components/select2/tests/selection/containerCss-tests.js b/admin/bower_components/select2/tests/selection/containerCss-tests.js deleted file mode 100644 index 522703a..0000000 --- a/admin/bower_components/select2/tests/selection/containerCss-tests.js +++ /dev/null @@ -1,104 +0,0 @@ -module('Dropdown - containerCssClass compatibility'); - -var $ = require('jquery'); -var Utils = require('select2/utils'); -var Options = require('select2/options'); - -var SingleSelection = require('select2/selection/single'); -var ContainerCSS = Utils.Decorate( - SingleSelection, - require('select2/compat/containerCss') -); - -test('all classes will be copied if :all: is used', function (assert) { - var $element = $('<select class="test copy works"></select>'); - var options = new Options({ - containerCssClass: ':all:' - }); - - var select = new ContainerCSS($element, options); - var $container = select.render(); - - assert.ok($container.hasClass('test')); - assert.ok($container.hasClass('copy')); - assert.ok($container.hasClass('works')); - assert.ok(!$container.hasClass(':all:')); -}); - -test(':all: can be used with other classes', function (assert) { - var $element = $('<select class="test copy works"></select>'); - var options = new Options({ - containerCssClass: ':all: other' - }); - - var select = new ContainerCSS($element, options); - var $container = select.render(); - - assert.ok($container.hasClass('test')); - assert.ok($container.hasClass('copy')); - assert.ok($container.hasClass('works')); - assert.ok($container.hasClass('other')); - assert.ok(!$container.hasClass(':all:')); -}); - -test('classes can be passed in as a string', function (assert) { - var $element = $('<select class="test copy works"></select>'); - var options = new Options({ - containerCssClass: 'other' - }); - - var select = new ContainerCSS($element, options); - var $container = select.render(); - - assert.ok($container.hasClass('other')); -}); - -test('a function can be used based on the element', function (assert){ - var $element = $('<select class="test"></select>'); - var options = new Options({ - containerCssClass: function ($element) { - return 'function'; - } - }); - - var select = new ContainerCSS($element, options); - var $container = select.render(); - - assert.ok($container.hasClass('function')); - assert.ok(!$container.hasClass('test')); -}); - -test(':all: works around custom adapters', function (assert) { - var $element = $('<select class="test"></select>'); - var options = new Options({ - containerCssClass: ':all: something', - adaptContainerCssClass: function (clazz) { - return clazz + '-modified'; - } - }); - - var select = new ContainerCSS($element, options); - var $container = select.render(); - - assert.ok($container.hasClass('something')); - - assert.ok($container.hasClass('test')); - assert.ok($container.hasClass('test-modified')); -}); - -module('Selection - adaptContainerCss compatibility'); - -test('only return when adapted', function (assert) { - var $element = $('<select class="original"></select>'); - var options = new Options({ - adaptContainerCssClass: function (clazz) { - return 'modified'; - } - }); - - var select = new ContainerCSS($element, options); - var $container = select.render(); - - assert.ok(!$container.hasClass('original')); - assert.ok($container.hasClass('modified')); -}); diff --git a/admin/bower_components/select2/tests/selection/multiple-tests.js b/admin/bower_components/select2/tests/selection/multiple-tests.js deleted file mode 100644 index 0d0f9c2..0000000 --- a/admin/bower_components/select2/tests/selection/multiple-tests.js +++ /dev/null @@ -1,149 +0,0 @@ -module('Selection containers - Multiple'); - -var MultipleSelection = require('select2/selection/multiple'); - -var $ = require('jquery'); -var Options = require('select2/options'); -var Utils = require('select2/utils'); - -var options = new Options({}); - -test('display uses templateSelection', function (assert) { - var called = false; - - var templateOptions = new Options({ - templateSelection: function (data) { - called = true; - - return data.text; - } - }); - - var selection = new MultipleSelection( - $('#qunit-fixture .multiple'), - templateOptions - ); - - var out = selection.display({ - text: 'test' - }); - - assert.ok(called); - - assert.equal(out, 'test'); -}); - -test('templateSelection can addClass', function (assert) { - var called = false; - - var templateOptions = new Options({ - templateSelection: function (data, container) { - called = true; - container.addClass('testclass'); - return data.text; - } - }); - - var selection = new MultipleSelection( - $('#qunit-fixture .multiple'), - templateOptions - ); - - var $container = selection.selectionContainer(); - - var out = selection.display({ - text: 'test' - }, $container); - - assert.ok(called); - - assert.equal(out, 'test'); - - assert.ok($container.hasClass('testclass')); -}); - -test('empty update clears the selection', function (assert) { - var selection = new MultipleSelection( - $('#qunit-fixture .multiple'), - options - ); - - var $selection = selection.render(); - var $rendered = $selection.find('.select2-selection__rendered'); - - $rendered.text('testing'); - - selection.update([]); - - assert.equal($rendered.text(), ''); -}); - -test('escapeMarkup is being used', function (assert) { - var selection = new MultipleSelection( - $('#qunit-fixture .multiple'), - options - ); - - var $selection = selection.render(); - var $rendered = $selection.find('.select2-selection__rendered'); - - var unescapedText = '<script>bad("stuff");</script>'; - - selection.update([{ - text: unescapedText - }]); - - assert.equal( - $rendered.text().substr(1), - unescapedText, - 'The text should be escaped by default to prevent injection' - ); -}); - -test('clear button respects the disabled state', function (assert) { - var options = new Options({ - disabled: true - }); - - var $select = $('#qunit-fixture .multiple'); - - var container = new MockContainer(); - var $container = $('<div></div>'); - - var selection = new MultipleSelection( - $select, - options - ); - - var $selection = selection.render(); - $container.append($selection); - - selection.bind(container, $container); - - // Select an option - selection.update([{ - text: 'Test' - }]); - - var $rendered = $selection.find('.select2-selection__rendered'); - - var $pill = $rendered.find('.select2-selection__choice'); - - assert.equal($pill.length, 1, 'There should only be one selection'); - - var $remove = $pill.find('.select2-selection__choice__remove'); - - assert.equal( - $remove.length, - 1, - 'The remove icon is displayed for the selection' - ); - - // Set up the unselect handler - selection.on('unselect', function (params) { - assert.ok(false, 'The unselect handler should not be triggered'); - }); - - // Trigger the handler for the remove icon - $remove.trigger('click'); -}); diff --git a/admin/bower_components/select2/tests/selection/placeholder-tests.js b/admin/bower_components/select2/tests/selection/placeholder-tests.js deleted file mode 100644 index 8a436ff..0000000 --- a/admin/bower_components/select2/tests/selection/placeholder-tests.js +++ /dev/null @@ -1,74 +0,0 @@ -module('Selection containers - Placeholders'); - -var Placeholder = require('select2/selection/placeholder'); -var SingleSelection = require('select2/selection/single'); - -var $ = require('jquery'); -var Options = require('select2/options'); -var Utils = require('select2/utils'); - -var SinglePlaceholder = Utils.Decorate(SingleSelection, Placeholder); - -var placeholderOptions = new Options({ - placeholder: { - id: 'placeholder', - text: 'This is the placeholder' - } -}); - -test('normalizing placeholder ignores objects', function (assert) { - var selection = new SinglePlaceholder( - $('#qunit-fixture .single'), - placeholderOptions - ); - - var original = { - id: 'test', - text: 'testing' - }; - - var normalized = selection.normalizePlaceholder(original); - - assert.equal(original, normalized); -}); - -test('normalizing placeholder gives object for string', function (assert) { - var selection = new SinglePlaceholder( - $('#qunit-fixture .single'), - placeholderOptions - ); - - var normalized = selection.normalizePlaceholder('placeholder'); - - assert.equal(normalized.id, ''); - assert.equal(normalized.text, 'placeholder'); -}); - - -test('text is shown for placeholder option on single', function (assert) { - var selection = new SinglePlaceholder( - $('#qunit-fixture .single'), - placeholderOptions - ); - - var $selection = selection.render(); - - selection.update([{ - id: 'placeholder' - }]); - - assert.equal($selection.text(), 'This is the placeholder'); -}); - -test('placeholder is shown when no options are selected', function (assert) { - var selection = new SinglePlaceholder( - $('#qunit-fixture .multiple'), - placeholderOptions - ); - - var $selection = selection.render(); - - selection.update([]); - - assert.equal($selection.text(), 'This is the placeholder'); -}); diff --git a/admin/bower_components/select2/tests/selection/search-tests.js b/admin/bower_components/select2/tests/selection/search-tests.js deleted file mode 100644 index 43345d7..0000000 --- a/admin/bower_components/select2/tests/selection/search-tests.js +++ /dev/null @@ -1,191 +0,0 @@ -module('Selection containers - Inline search'); - -var MultipleSelection = require('select2/selection/multiple'); -var InlineSearch = require('select2/selection/search'); - -var $ = require('jquery'); -var Options = require('select2/options'); -var Utils = require('select2/utils'); - -var options = new Options({}); - -test('backspace will remove a choice', function (assert) { - assert.expect(3); - - var KEYS = require('select2/keys'); - - var $container = $('#qunit-fixture .event-container'); - var container = new MockContainer(); - - var CustomSelection = Utils.Decorate(MultipleSelection, InlineSearch); - - var $element = $('#qunit-fixture .multiple'); - var selection = new CustomSelection($element, options); - - var $selection = selection.render(); - selection.bind(container, $container); - - // The unselect event should be triggered at some point - selection.on('unselect', function () { - assert.ok(true, 'A choice was unselected'); - }); - - // Add some selections and render the search - selection.update([ - { - id: '1', - text: 'One' - } - ]); - - var $search = $selection.find('input'); - var $choices = $selection.find('.select2-selection__choice'); - - assert.equal($search.length, 1, 'The search was visible'); - assert.equal($choices.length, 1, 'The choice was rendered'); - - // Trigger the backspace on the search - var backspace = $.Event('keydown', { - which: KEYS.BACKSPACE - }); - $search.trigger(backspace); -}); - -test('backspace will set the search text', function (assert) { - assert.expect(3); - - var KEYS = require('select2/keys'); - - var $container = $('#qunit-fixture .event-container'); - var container = new MockContainer(); - - var CustomSelection = Utils.Decorate(MultipleSelection, InlineSearch); - - var $element = $('#qunit-fixture .multiple'); - var selection = new CustomSelection($element, options); - - var $selection = selection.render(); - selection.bind(container, $container); - - // Add some selections and render the search - selection.update([ - { - id: '1', - text: 'One' - } - ]); - - var $search = $selection.find('input'); - var $choices = $selection.find('.select2-selection__choice'); - - assert.equal($search.length, 1, 'The search was visible'); - assert.equal($choices.length, 1, 'The choice was rendered'); - - // Trigger the backspace on the search - var backspace = $.Event('keydown', { - which: KEYS.BACKSPACE - }); - $search.trigger(backspace); - - assert.equal($search.val(), 'One', 'The search text was set'); -}); - -test('updating selection does not shift the focus', function (assert) { - // Check for IE 8, which triggers a false negative during testing - if (window.attachEvent && !window.addEventListener) { - // We must expect 0 assertions or the test will fail - assert.expect(0); - return; - } - - var $container = $('#qunit-fixture .event-container'); - var container = new MockContainer(); - - var CustomSelection = Utils.Decorate(MultipleSelection, InlineSearch); - - var $element = $('#qunit-fixture .multiple'); - var selection = new CustomSelection($element, options); - - var $selection = selection.render(); - selection.bind(container, $container); - - // Update the selection so the search is rendered - selection.update([]); - - // Make it visible so the browser can place focus on the search - $container.append($selection); - - var $search = $selection.find('input'); - $search.trigger('focus'); - - assert.equal($search.length, 1, 'The search was not visible'); - - assert.equal( - document.activeElement, - $search[0], - 'The search did not have focus originally' - ); - - // Trigger an update, this should redraw the search box - selection.update([]); - - assert.equal($search.length, 1, 'The search box disappeared'); - - assert.equal( - document.activeElement, - $search[0], - 'The search did not have focus after the selection was updated' - ); -}); - -test('the focus event shifts the focus', function (assert) { - // Check for IE 8, which triggers a false negative during testing - if (window.attachEvent && !window.addEventListener) { - // We must expect 0 assertions or the test will fail - assert.expect(0); - return; - } - - var $container = $('#qunit-fixture .event-container'); - var container = new MockContainer(); - - var CustomSelection = Utils.Decorate(MultipleSelection, InlineSearch); - - var $element = $('#qunit-fixture .multiple'); - var selection = new CustomSelection($element, options); - - var $selection = selection.render(); - selection.bind(container, $container); - - // Update the selection so the search is rendered - selection.update([]); - - // Make it visible so the browser can place focus on the search - $container.append($selection); - - // The search should not be automatically focused - - var $search = $selection.find('input'); - - assert.notEqual( - document.activeElement, - $search[0], - 'The search had focus originally' - ); - - assert.equal($search.length, 1, 'The search was not visible'); - - // Focus the container - - container.trigger('focus'); - - // Make sure it focuses the search - - assert.equal($search.length, 1, 'The search box disappeared'); - - assert.equal( - document.activeElement, - $search[0], - 'The search did not have focus originally' - ); -}); \ No newline at end of file diff --git a/admin/bower_components/select2/tests/selection/single-tests.js b/admin/bower_components/select2/tests/selection/single-tests.js deleted file mode 100644 index 2731b2a..0000000 --- a/admin/bower_components/select2/tests/selection/single-tests.js +++ /dev/null @@ -1,117 +0,0 @@ -module('Selection containers - Single'); - -var SingleSelection = require('select2/selection/single'); - -var $ = require('jquery'); -var Options = require('select2/options'); -var Utils = require('select2/utils'); - -var options = new Options({}); - -test('display uses templateSelection', function (assert) { - var called = false; - - var templateOptions = new Options({ - templateSelection: function (data) { - called = true; - - return data.text; - } - }); - - var selection = new SingleSelection( - $('#qunit-fixture .single'), - templateOptions - ); - - var out = selection.display({ - text: 'test' - }); - - assert.ok(called); - - assert.equal(out, 'test'); -}); - -test('templateSelection can addClass', function (assert) { - var called = false; - - var templateOptions = new Options({ - templateSelection: function (data, container) { - called = true; - container.addClass('testclass'); - return data.text; - } - }); - - var selection = new SingleSelection( - $('#qunit-fixture .single'), - templateOptions - ); - - var $container = selection.selectionContainer(); - - var out = selection.display({ - text: 'test' - }, $container); - - assert.ok(called); - - assert.equal(out, 'test'); - - assert.ok($container.hasClass('testclass')); -}); - -test('empty update clears the selection', function (assert) { - var selection = new SingleSelection( - $('#qunit-fixture .single'), - options - ); - - var $selection = selection.render(); - var $rendered = $selection.find('.select2-selection__rendered'); - - $rendered.text('testing'); - - selection.update([]); - - assert.equal($rendered.text(), ''); -}); - -test('update renders the data text', function (assert) { - var selection = new SingleSelection( - $('#qunit-fixture .single'), - options - ); - - var $selection = selection.render(); - var $rendered = $selection.find('.select2-selection__rendered'); - - selection.update([{ - text: 'test' - }]); - - assert.equal($rendered.text(), 'test'); -}); - -test('escapeMarkup is being used', function (assert) { - var selection = new SingleSelection( - $('#qunit-fixture .single'), - options - ); - - var $selection = selection.render(); - var $rendered = $selection.find('.select2-selection__rendered'); - - var unescapedText = '<script>bad("stuff");</script>'; - - selection.update([{ - text: unescapedText - }]); - - assert.equal( - $rendered.text(), - unescapedText, - 'The text should be escaped by default to prevent injection' - ); -}); diff --git a/admin/bower_components/select2/tests/selection/stopPropagation-tests.js b/admin/bower_components/select2/tests/selection/stopPropagation-tests.js deleted file mode 100644 index d8d8897..0000000 --- a/admin/bower_components/select2/tests/selection/stopPropagation-tests.js +++ /dev/null @@ -1,33 +0,0 @@ -module('Selection containers - Stoping event propagation'); - -var SingleSelection = require('select2/selection/single'); -var StopPropagation = require('select2/selection/stopPropagation'); - -var $ = require('jquery'); -var Options = require('select2/options'); -var Utils = require('select2/utils'); - -var CutomSelection = Utils.Decorate(SingleSelection, StopPropagation); - -var options = new Options(); - -test('click event does not propagate', function (assert) { - assert.expect(1); - - var $container = $('#qunit-fixture .event-container'); - var container = new MockContainer(); - - var selection = new CutomSelection($('#qunit-fixture select'), options); - - var $selection = selection.render(); - selection.bind(container, $container); - - $container.append($selection); - $container.on('click', function () { - assert.ok(false, 'The click event should have been stopped'); - }); - - $selection.trigger('click'); - - assert.ok(true, 'Something went wrong if this failed'); -}); diff --git a/admin/bower_components/select2/tests/unit.html b/admin/bower_components/select2/tests/unit.html deleted file mode 100644 index 384deb2..0000000 --- a/admin/bower_components/select2/tests/unit.html +++ /dev/null @@ -1,95 +0,0 @@ -<!doctype html> -<html> - <head> - <link rel="stylesheet" href="vendor/qunit-1.23.1.css" type="text/css" /> - <link rel="stylesheet" href="../../dist/css/select2.css" type="text/css" /> - </head> - <body> - <div id="qunit"></div> - <div id="qunit-fixture"> - <div class="event-container"> - <select></select> - </div> - - <select class="single"> - <option>One</option> - </select> - - <select class="single-empty"></select> - - <select class="single-with-placeholder"> - <option>placeholder</option> - <option>One</option> - </select> - - <select class="multiple" multiple="multiple"> - <option>One</option> - <option>Two</option> - </select> - - <select class="groups"> - <optgroup label="Test"> - <option value="one">One</option> - <option value="two">Two</option> - </optgroup> - <optgroup label="Empty"></optgroup> - </select> - - <select class="duplicates"> - <option value="one">One</option> - <option value="two">Two</option> - <option value="one">Uno</option> - </select> - - <select class="duplicates-multi" multiple="multiple"> - <option value="one">One</option> - <option value="two">Two</option> - <option value="one">Uno</option> - </select> - </div> - - <script src="vendor/qunit-1.23.1.js" type="text/javascript"></script> - <script src="vendor/jquery-1.7.2.js" type="text/javascript"></script> - <script src="../dist/js/select2.full.js" type="text/javascript"></script> - - <script src="helpers.js" type="text/javascript"></script> - - <script src="a11y/selection-tests.js" type="text/javascript"></script> - <script src="a11y/search-tests.js" type="text/javascript"></script> - - <script src="data/array-tests.js" type="text/javascript"></script> - <script src="data/base-tests.js" type="text/javascript"></script> - <script src="data/inputData-tests.js" type="text/javascript"></script> - <script src="data/select-tests.js" type="text/javascript"></script> - <script src="data/tags-tests.js" type="text/javascript"></script> - <script src="data/tokenizer-tests.js" type="text/javascript"></script> - - <script src="data/maximumInputLength-tests.js" type="text/javascript"></script> - <script src="data/maximumSelectionLength-tests.js" type="text/javascript"></script> - <script src="data/minimumInputLength-tests.js" type="text/javascript"></script> - - <script src="dropdown/dropdownCss-tests.js" type="text/javascript"></script> - <script src="dropdown/positioning-tests.js" type="text/javascript"></script> - <script src="dropdown/selectOnClose-tests.js" type="text/javascript"></script> - <script src="dropdown/stopPropagation-tests.js" type="text/javascript"></script> - - <script src="options/ajax-tests.js" type="text/javascript"></script> - <script src="options/data-tests.js" type="text/javascript"></script> - <script src="options/deprecated-tests.js" type="text/javascript"></script> - <script src="options/translation-tests.js" type="text/javascript"></script> - <script src="options/width-tests.js" type="text/javascript"></script> - - <script src="results/focusing-tests.js" type="text/javascript"></script> - - <script src="selection/allowClear-tests.js" type="text/javascript"></script> - <script src="selection/containerCss-tests.js" type="text/javascript"></script> - <script src="selection/multiple-tests.js" type="text/javascript"></script> - <script src="selection/placeholder-tests.js" type="text/javascript"></script> - <script src="selection/search-tests.js" type="text/javascript"></script> - <script src="selection/single-tests.js" type="text/javascript"></script> - <script src="selection/stopPropagation-tests.js" type="text/javascript"></script> - - <script src="utils/decorator-tests.js" type="text/javascript"></script> - <script src="utils/escapeMarkup-tests.js" type="text/javascript"></script> - </body> -</html> diff --git a/admin/bower_components/select2/tests/utils/decorator-tests.js b/admin/bower_components/select2/tests/utils/decorator-tests.js deleted file mode 100644 index 4888991..0000000 --- a/admin/bower_components/select2/tests/utils/decorator-tests.js +++ /dev/null @@ -1,189 +0,0 @@ -module('Decorators'); - -var Utils = require('select2/utils'); - -test('overridden - method', function (assert) { - function BaseClass () {} - - BaseClass.prototype.hello = function () { - return 'A'; - }; - - function DecoratorClass () {} - - DecoratorClass.prototype.hello = function () { - return 'B'; - }; - - var DecoratedClass = Utils.Decorate(BaseClass, DecoratorClass); - - var inst = new DecoratedClass(); - - assert.strictEqual(inst.hello(), 'B'); -}); - -test('overridden - constructor', function (assert) { - function BaseClass () { - this.inherited = true; - } - - BaseClass.prototype.hello = function () { - return 'A'; - }; - - function DecoratorClass (decorated) { - this.called = true; - } - - DecoratorClass.prototype.other = function () { - return 'B'; - }; - - var DecoratedClass = Utils.Decorate(BaseClass, DecoratorClass); - - var inst = new DecoratedClass(); - - assert.ok(inst.called); - assert.ok(!inst.inherited); -}); - -test('not overridden - method', function (assert) { - function BaseClass () {} - - BaseClass.prototype.hello = function () { - return 'A'; - }; - - function DecoratorClass () {} - - DecoratorClass.prototype.other = function () { - return 'B'; - }; - - var DecoratedClass = Utils.Decorate(BaseClass, DecoratorClass); - - var inst = new DecoratedClass(); - - assert.strictEqual(inst.hello(), 'A'); -}); - -test('not overridden - constructor', function (assert) { - function BaseClass () { - this.called = true; - } - - BaseClass.prototype.hello = function () { - return 'A'; - }; - - function DecoratorClass () {} - - DecoratorClass.prototype.other = function () { - return 'B'; - }; - - var DecoratedClass = Utils.Decorate(BaseClass, DecoratorClass); - - var inst = new DecoratedClass(); - - assert.ok(inst.called); -}); - -test('inherited - method', function (assert) { - function BaseClass () {} - - BaseClass.prototype.hello = function () { - return 'A'; - }; - - function DecoratorClass (decorated) {} - - DecoratorClass.prototype.hello = function (decorated) { - return 'B' + decorated.call(this) + 'C'; - }; - - var DecoratedClass = Utils.Decorate(BaseClass, DecoratorClass); - - var inst = new DecoratedClass(); - - assert.strictEqual(inst.hello(), 'BAC'); -}); - -test('inherited - constructor', function (assert) { - function BaseClass () { - this.inherited = true; - } - - BaseClass.prototype.hello = function () { - return 'A'; - }; - - function DecoratorClass (decorated) { - this.called = true; - - decorated.call(this); - } - - DecoratorClass.prototype.other = function () { - return 'B'; - }; - - var DecoratedClass = Utils.Decorate(BaseClass, DecoratorClass); - - var inst = new DecoratedClass(); - - assert.ok(inst.called); - assert.ok(inst.inherited); -}); - -test('inherited - three levels', function (assert) { - function BaseClass (testArgument) { - this.baseCalled = true; - this.baseTestArgument = testArgument; - } - - BaseClass.prototype.test = function (a) { - return a + 'c'; - }; - - function MiddleClass (decorated, testArgument) { - this.middleCalled = true; - this.middleTestArgument = testArgument; - - decorated.call(this, testArgument); - } - - MiddleClass.prototype.test = function (decorated, a) { - return decorated.call(this, a + 'b'); - }; - - function DecoratorClass (decorated, testArgument) { - this.decoratorCalled = true; - this.decoratorTestArgument = testArgument; - - decorated.call(this, testArgument); - } - - DecoratorClass.prototype.test = function (decorated, a) { - return decorated.call(this, a + 'a'); - }; - - var DecoratedClass = Utils.Decorate( - Utils.Decorate(BaseClass, MiddleClass), - DecoratorClass - ); - - var inst = new DecoratedClass('test'); - - assert.ok(inst.baseCalled, 'The base class contructor was called'); - assert.ok(inst.middleCalled, 'The middle class constructor was called'); - assert.ok(inst.decoratorCalled, 'The decorator constructor was called'); - - assert.strictEqual(inst.baseTestArgument, 'test'); - assert.strictEqual(inst.middleTestArgument, 'test'); - assert.strictEqual(inst.decoratorTestArgument, 'test'); - - var out = inst.test('test'); - - assert.strictEqual(out, 'testabc'); -}); diff --git a/admin/bower_components/select2/tests/utils/escapeMarkup-tests.js b/admin/bower_components/select2/tests/utils/escapeMarkup-tests.js deleted file mode 100644 index 726f09d..0000000 --- a/admin/bower_components/select2/tests/utils/escapeMarkup-tests.js +++ /dev/null @@ -1,36 +0,0 @@ -module('Utils - escapeMarkup'); - -var Utils = require('select2/utils'); - -test('text passes through', function (assert) { - var text = 'testing this'; - var escaped = Utils.escapeMarkup(text); - - assert.equal(text, escaped); -}); - -test('html tags are escaped', function (assert) { - var text = '<script>alert("bad");</script>'; - var escaped = Utils.escapeMarkup(text); - - assert.notEqual(text, escaped); - assert.equal(escaped.indexOf('<script>'), -1); -}); - -test('quotes are killed as well', function (assert) { - var text = 'testin\' these "quotes"'; - var escaped = Utils.escapeMarkup(text); - - assert.notEqual(text, escaped); - assert.equal(escaped.indexOf('\''), -1); - assert.equal(escaped.indexOf('"'), -1); -}); - -test('DocumentFragment options pass through', function (assert) { - var frag = document.createDocumentFragment(); - frag.innerHTML = '<strong>test</strong>'; - - var escaped = Utils.escapeMarkup(frag); - - assert.equal(frag, escaped); -}); diff --git a/admin/bower_components/select2/tests/vendor/jquery-1.7.2.js b/admin/bower_components/select2/tests/vendor/jquery-1.7.2.js deleted file mode 100644 index ceb681f..0000000 --- a/admin/bower_components/select2/tests/vendor/jquery-1.7.2.js +++ /dev/null @@ -1,9404 +0,0 @@ -/*! - * jQuery JavaScript Library v1.7.2 - * http://jquery.com/ - * - * Copyright 2011, John Resig - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * Includes Sizzle.js - * http://sizzlejs.com/ - * Copyright 2011, The Dojo Foundation - * Released under the MIT, BSD, and GPL Licenses. - * - * Date: Wed Mar 21 12:46:34 2012 -0700 - */ -(function( window, undefined ) { - -// Use the correct document accordingly with window argument (sandbox) -var document = window.document, - navigator = window.navigator, - location = window.location; -var jQuery = (function() { - -// Define a local copy of jQuery -var jQuery = function( selector, context ) { - // The jQuery object is actually just the init constructor 'enhanced' - return new jQuery.fn.init( selector, context, rootjQuery ); - }, - - // Map over jQuery in case of overwrite - _jQuery = window.jQuery, - - // Map over the $ in case of overwrite - _$ = window.$, - - // A central reference to the root jQuery(document) - rootjQuery, - - // A simple way to check for HTML strings or ID strings - // Prioritize #id over <tag> to avoid XSS via location.hash (#9521) - quickExpr = /^(?:[^#<]*(<[\w\W]+>)[^>]*$|#([\w\-]*)$)/, - - // Check if a string has a non-whitespace character in it - rnotwhite = /\S/, - - // Used for trimming whitespace - trimLeft = /^\s+/, - trimRight = /\s+$/, - - // Match a standalone tag - rsingleTag = /^<(\w+)\s*\/?>(?:<\/\1>)?$/, - - // JSON RegExp - rvalidchars = /^[\],:{}\s]*$/, - rvalidescape = /\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g, - rvalidtokens = /"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g, - rvalidbraces = /(?:^|:|,)(?:\s*\[)+/g, - - // Useragent RegExp - rwebkit = /(webkit)[ \/]([\w.]+)/, - ropera = /(opera)(?:.*version)?[ \/]([\w.]+)/, - rmsie = /(msie) ([\w.]+)/, - rmozilla = /(mozilla)(?:.*? rv:([\w.]+))?/, - - // Matches dashed string for camelizing - rdashAlpha = /-([a-z]|[0-9])/ig, - rmsPrefix = /^-ms-/, - - // Used by jQuery.camelCase as callback to replace() - fcamelCase = function( all, letter ) { - return ( letter + "" ).toUpperCase(); - }, - - // Keep a UserAgent string for use with jQuery.browser - userAgent = navigator.userAgent, - - // For matching the engine and version of the browser - browserMatch, - - // The deferred used on DOM ready - readyList, - - // The ready event handler - DOMContentLoaded, - - // Save a reference to some core methods - toString = Object.prototype.toString, - hasOwn = Object.prototype.hasOwnProperty, - push = Array.prototype.push, - slice = Array.prototype.slice, - trim = String.prototype.trim, - indexOf = Array.prototype.indexOf, - - // [[Class]] -> type pairs - class2type = {}; - -jQuery.fn = jQuery.prototype = { - constructor: jQuery, - init: function( selector, context, rootjQuery ) { - var match, elem, ret, doc; - - // Handle $(""), $(null), or $(undefined) - if ( !selector ) { - return this; - } - - // Handle $(DOMElement) - if ( selector.nodeType ) { - this.context = this[0] = selector; - this.length = 1; - return this; - } - - // The body element only exists once, optimize finding it - if ( selector === "body" && !context && document.body ) { - this.context = document; - this[0] = document.body; - this.selector = selector; - this.length = 1; - return this; - } - - // Handle HTML strings - if ( typeof selector === "string" ) { - // Are we dealing with HTML string or an ID? - if ( selector.charAt(0) === "<" && selector.charAt( selector.length - 1 ) === ">" && selector.length >= 3 ) { - // Assume that strings that start and end with <> are HTML and skip the regex check - match = [ null, selector, null ]; - - } else { - match = quickExpr.exec( selector ); - } - - // Verify a match, and that no context was specified for #id - if ( match && (match[1] || !context) ) { - - // HANDLE: $(html) -> $(array) - if ( match[1] ) { - context = context instanceof jQuery ? context[0] : context; - doc = ( context ? context.ownerDocument || context : document ); - - // If a single string is passed in and it's a single tag - // just do a createElement and skip the rest - ret = rsingleTag.exec( selector ); - - if ( ret ) { - if ( jQuery.isPlainObject( context ) ) { - selector = [ document.createElement( ret[1] ) ]; - jQuery.fn.attr.call( selector, context, true ); - - } else { - selector = [ doc.createElement( ret[1] ) ]; - } - - } else { - ret = jQuery.buildFragment( [ match[1] ], [ doc ] ); - selector = ( ret.cacheable ? jQuery.clone(ret.fragment) : ret.fragment ).childNodes; - } - - return jQuery.merge( this, selector ); - - // HANDLE: $("#id") - } else { - elem = document.getElementById( match[2] ); - - // Check parentNode to catch when Blackberry 4.6 returns - // nodes that are no longer in the document #6963 - if ( elem && elem.parentNode ) { - // Handle the case where IE and Opera return items - // by name instead of ID - if ( elem.id !== match[2] ) { - return rootjQuery.find( selector ); - } - - // Otherwise, we inject the element directly into the jQuery object - this.length = 1; - this[0] = elem; - } - - this.context = document; - this.selector = selector; - return this; - } - - // HANDLE: $(expr, $(...)) - } else if ( !context || context.jquery ) { - return ( context || rootjQuery ).find( selector ); - - // HANDLE: $(expr, context) - // (which is just equivalent to: $(context).find(expr) - } else { - return this.constructor( context ).find( selector ); - } - - // HANDLE: $(function) - // Shortcut for document ready - } else if ( jQuery.isFunction( selector ) ) { - return rootjQuery.ready( selector ); - } - - if ( selector.selector !== undefined ) { - this.selector = selector.selector; - this.context = selector.context; - } - - return jQuery.makeArray( selector, this ); - }, - - // Start with an empty selector - selector: "", - - // The current version of jQuery being used - jquery: "1.7.2", - - // The default length of a jQuery object is 0 - length: 0, - - // The number of elements contained in the matched element set - size: function() { - return this.length; - }, - - toArray: function() { - return slice.call( this, 0 ); - }, - - // Get the Nth element in the matched element set OR - // Get the whole matched element set as a clean array - get: function( num ) { - return num == null ? - - // Return a 'clean' array - this.toArray() : - - // Return just the object - ( num < 0 ? this[ this.length + num ] : this[ num ] ); - }, - - // Take an array of elements and push it onto the stack - // (returning the new matched element set) - pushStack: function( elems, name, selector ) { - // Build a new jQuery matched element set - var ret = this.constructor(); - - if ( jQuery.isArray( elems ) ) { - push.apply( ret, elems ); - - } else { - jQuery.merge( ret, elems ); - } - - // Add the old object onto the stack (as a reference) - ret.prevObject = this; - - ret.context = this.context; - - if ( name === "find" ) { - ret.selector = this.selector + ( this.selector ? " " : "" ) + selector; - } else if ( name ) { - ret.selector = this.selector + "." + name + "(" + selector + ")"; - } - - // Return the newly-formed element set - return ret; - }, - - // Execute a callback for every element in the matched set. - // (You can seed the arguments with an array of args, but this is - // only used internally.) - each: function( callback, args ) { - return jQuery.each( this, callback, args ); - }, - - ready: function( fn ) { - // Attach the listeners - jQuery.bindReady(); - - // Add the callback - readyList.add( fn ); - - return this; - }, - - eq: function( i ) { - i = +i; - return i === -1 ? - this.slice( i ) : - this.slice( i, i + 1 ); - }, - - first: function() { - return this.eq( 0 ); - }, - - last: function() { - return this.eq( -1 ); - }, - - slice: function() { - return this.pushStack( slice.apply( this, arguments ), - "slice", slice.call(arguments).join(",") ); - }, - - map: function( callback ) { - return this.pushStack( jQuery.map(this, function( elem, i ) { - return callback.call( elem, i, elem ); - })); - }, - - end: function() { - return this.prevObject || this.constructor(null); - }, - - // For internal use only. - // Behaves like an Array's method, not like a jQuery method. - push: push, - sort: [].sort, - splice: [].splice -}; - -// Give the init function the jQuery prototype for later instantiation -jQuery.fn.init.prototype = jQuery.fn; - -jQuery.extend = jQuery.fn.extend = function() { - var options, name, src, copy, copyIsArray, clone, - target = arguments[0] || {}, - i = 1, - length = arguments.length, - deep = false; - - // Handle a deep copy situation - if ( typeof target === "boolean" ) { - deep = target; - target = arguments[1] || {}; - // skip the boolean and the target - i = 2; - } - - // Handle case when target is a string or something (possible in deep copy) - if ( typeof target !== "object" && !jQuery.isFunction(target) ) { - target = {}; - } - - // extend jQuery itself if only one argument is passed - if ( length === i ) { - target = this; - --i; - } - - for ( ; i < length; i++ ) { - // Only deal with non-null/undefined values - if ( (options = arguments[ i ]) != null ) { - // Extend the base object - for ( name in options ) { - src = target[ name ]; - copy = options[ name ]; - - // Prevent never-ending loop - if ( target === copy ) { - continue; - } - - // Recurse if we're merging plain objects or arrays - if ( deep && copy && ( jQuery.isPlainObject(copy) || (copyIsArray = jQuery.isArray(copy)) ) ) { - if ( copyIsArray ) { - copyIsArray = false; - clone = src && jQuery.isArray(src) ? src : []; - - } else { - clone = src && jQuery.isPlainObject(src) ? src : {}; - } - - // Never move original objects, clone them - target[ name ] = jQuery.extend( deep, clone, copy ); - - // Don't bring in undefined values - } else if ( copy !== undefined ) { - target[ name ] = copy; - } - } - } - } - - // Return the modified object - return target; -}; - -jQuery.extend({ - noConflict: function( deep ) { - if ( window.$ === jQuery ) { - window.$ = _$; - } - - if ( deep && window.jQuery === jQuery ) { - window.jQuery = _jQuery; - } - - return jQuery; - }, - - // Is the DOM ready to be used? Set to true once it occurs. - isReady: false, - - // A counter to track how many items to wait for before - // the ready event fires. See #6781 - readyWait: 1, - - // Hold (or release) the ready event - holdReady: function( hold ) { - if ( hold ) { - jQuery.readyWait++; - } else { - jQuery.ready( true ); - } - }, - - // Handle when the DOM is ready - ready: function( wait ) { - // Either a released hold or an DOMready/load event and not yet ready - if ( (wait === true && !--jQuery.readyWait) || (wait !== true && !jQuery.isReady) ) { - // Make sure body exists, at least, in case IE gets a little overzealous (ticket #5443). - if ( !document.body ) { - return setTimeout( jQuery.ready, 1 ); - } - - // Remember that the DOM is ready - jQuery.isReady = true; - - // If a normal DOM Ready event fired, decrement, and wait if need be - if ( wait !== true && --jQuery.readyWait > 0 ) { - return; - } - - // If there are functions bound, to execute - readyList.fireWith( document, [ jQuery ] ); - - // Trigger any bound ready events - if ( jQuery.fn.trigger ) { - jQuery( document ).trigger( "ready" ).off( "ready" ); - } - } - }, - - bindReady: function() { - if ( readyList ) { - return; - } - - readyList = jQuery.Callbacks( "once memory" ); - - // Catch cases where $(document).ready() is called after the - // browser event has already occurred. - if ( document.readyState === "complete" ) { - // Handle it asynchronously to allow scripts the opportunity to delay ready - return setTimeout( jQuery.ready, 1 ); - } - - // Mozilla, Opera and webkit nightlies currently support this event - if ( document.addEventListener ) { - // Use the handy event callback - document.addEventListener( "DOMContentLoaded", DOMContentLoaded, false ); - - // A fallback to window.onload, that will always work - window.addEventListener( "load", jQuery.ready, false ); - - // If IE event model is used - } else if ( document.attachEvent ) { - // ensure firing before onload, - // maybe late but safe also for iframes - document.attachEvent( "onreadystatechange", DOMContentLoaded ); - - // A fallback to window.onload, that will always work - window.attachEvent( "onload", jQuery.ready ); - - // If IE and not a frame - // continually check to see if the document is ready - var toplevel = false; - - try { - toplevel = window.frameElement == null; - } catch(e) {} - - if ( document.documentElement.doScroll && toplevel ) { - doScrollCheck(); - } - } - }, - - // See test/unit/core.js for details concerning isFunction. - // Since version 1.3, DOM methods and functions like alert - // aren't supported. They return false on IE (#2968). - isFunction: function( obj ) { - return jQuery.type(obj) === "function"; - }, - - isArray: Array.isArray || function( obj ) { - return jQuery.type(obj) === "array"; - }, - - isWindow: function( obj ) { - return obj != null && obj == obj.window; - }, - - isNumeric: function( obj ) { - return !isNaN( parseFloat(obj) ) && isFinite( obj ); - }, - - type: function( obj ) { - return obj == null ? - String( obj ) : - class2type[ toString.call(obj) ] || "object"; - }, - - isPlainObject: function( obj ) { - // Must be an Object. - // Because of IE, we also have to check the presence of the constructor property. - // Make sure that DOM nodes and window objects don't pass through, as well - if ( !obj || jQuery.type(obj) !== "object" || obj.nodeType || jQuery.isWindow( obj ) ) { - return false; - } - - try { - // Not own constructor property must be Object - if ( obj.constructor && - !hasOwn.call(obj, "constructor") && - !hasOwn.call(obj.constructor.prototype, "isPrototypeOf") ) { - return false; - } - } catch ( e ) { - // IE8,9 Will throw exceptions on certain host objects #9897 - return false; - } - - // Own properties are enumerated firstly, so to speed up, - // if last one is own, then all properties are own. - - var key; - for ( key in obj ) {} - - return key === undefined || hasOwn.call( obj, key ); - }, - - isEmptyObject: function( obj ) { - for ( var name in obj ) { - return false; - } - return true; - }, - - error: function( msg ) { - throw new Error( msg ); - }, - - parseJSON: function( data ) { - if ( typeof data !== "string" || !data ) { - return null; - } - - // Make sure leading/trailing whitespace is removed (IE can't handle it) - data = jQuery.trim( data ); - - // Attempt to parse using the native JSON parser first - if ( window.JSON && window.JSON.parse ) { - return window.JSON.parse( data ); - } - - // Make sure the incoming data is actual JSON - // Logic borrowed from http://json.org/json2.js - if ( rvalidchars.test( data.replace( rvalidescape, "@" ) - .replace( rvalidtokens, "]" ) - .replace( rvalidbraces, "")) ) { - - return ( new Function( "return " + data ) )(); - - } - jQuery.error( "Invalid JSON: " + data ); - }, - - // Cross-browser xml parsing - parseXML: function( data ) { - if ( typeof data !== "string" || !data ) { - return null; - } - var xml, tmp; - try { - if ( window.DOMParser ) { // Standard - tmp = new DOMParser(); - xml = tmp.parseFromString( data , "text/xml" ); - } else { // IE - xml = new ActiveXObject( "Microsoft.XMLDOM" ); - xml.async = "false"; - xml.loadXML( data ); - } - } catch( e ) { - xml = undefined; - } - if ( !xml || !xml.documentElement || xml.getElementsByTagName( "parsererror" ).length ) { - jQuery.error( "Invalid XML: " + data ); - } - return xml; - }, - - noop: function() {}, - - // Evaluates a script in a global context - // Workarounds based on findings by Jim Driscoll - // http://weblogs.java.net/blog/driscoll/archive/2009/09/08/eval-javascript-global-context - globalEval: function( data ) { - if ( data && rnotwhite.test( data ) ) { - // We use execScript on Internet Explorer - // We use an anonymous function so that context is window - // rather than jQuery in Firefox - ( window.execScript || function( data ) { - window[ "eval" ].call( window, data ); - } )( data ); - } - }, - - // Convert dashed to camelCase; used by the css and data modules - // Microsoft forgot to hump their vendor prefix (#9572) - camelCase: function( string ) { - return string.replace( rmsPrefix, "ms-" ).replace( rdashAlpha, fcamelCase ); - }, - - nodeName: function( elem, name ) { - return elem.nodeName && elem.nodeName.toUpperCase() === name.toUpperCase(); - }, - - // args is for internal usage only - each: function( object, callback, args ) { - var name, i = 0, - length = object.length, - isObj = length === undefined || jQuery.isFunction( object ); - - if ( args ) { - if ( isObj ) { - for ( name in object ) { - if ( callback.apply( object[ name ], args ) === false ) { - break; - } - } - } else { - for ( ; i < length; ) { - if ( callback.apply( object[ i++ ], args ) === false ) { - break; - } - } - } - - // A special, fast, case for the most common use of each - } else { - if ( isObj ) { - for ( name in object ) { - if ( callback.call( object[ name ], name, object[ name ] ) === false ) { - break; - } - } - } else { - for ( ; i < length; ) { - if ( callback.call( object[ i ], i, object[ i++ ] ) === false ) { - break; - } - } - } - } - - return object; - }, - - // Use native String.trim function wherever possible - trim: trim ? - function( text ) { - return text == null ? - "" : - trim.call( text ); - } : - - // Otherwise use our own trimming functionality - function( text ) { - return text == null ? - "" : - text.toString().replace( trimLeft, "" ).replace( trimRight, "" ); - }, - - // results is for internal usage only - makeArray: function( array, results ) { - var ret = results || []; - - if ( array != null ) { - // The window, strings (and functions) also have 'length' - // Tweaked logic slightly to handle Blackberry 4.7 RegExp issues #6930 - var type = jQuery.type( array ); - - if ( array.length == null || type === "string" || type === "function" || type === "regexp" || jQuery.isWindow( array ) ) { - push.call( ret, array ); - } else { - jQuery.merge( ret, array ); - } - } - - return ret; - }, - - inArray: function( elem, array, i ) { - var len; - - if ( array ) { - if ( indexOf ) { - return indexOf.call( array, elem, i ); - } - - len = array.length; - i = i ? i < 0 ? Math.max( 0, len + i ) : i : 0; - - for ( ; i < len; i++ ) { - // Skip accessing in sparse arrays - if ( i in array && array[ i ] === elem ) { - return i; - } - } - } - - return -1; - }, - - merge: function( first, second ) { - var i = first.length, - j = 0; - - if ( typeof second.length === "number" ) { - for ( var l = second.length; j < l; j++ ) { - first[ i++ ] = second[ j ]; - } - - } else { - while ( second[j] !== undefined ) { - first[ i++ ] = second[ j++ ]; - } - } - - first.length = i; - - return first; - }, - - grep: function( elems, callback, inv ) { - var ret = [], retVal; - inv = !!inv; - - // Go through the array, only saving the items - // that pass the validator function - for ( var i = 0, length = elems.length; i < length; i++ ) { - retVal = !!callback( elems[ i ], i ); - if ( inv !== retVal ) { - ret.push( elems[ i ] ); - } - } - - return ret; - }, - - // arg is for internal usage only - map: function( elems, callback, arg ) { - var value, key, ret = [], - i = 0, - length = elems.length, - // jquery objects are treated as arrays - isArray = elems instanceof jQuery || length !== undefined && typeof length === "number" && ( ( length > 0 && elems[ 0 ] && elems[ length -1 ] ) || length === 0 || jQuery.isArray( elems ) ) ; - - // Go through the array, translating each of the items to their - if ( isArray ) { - for ( ; i < length; i++ ) { - value = callback( elems[ i ], i, arg ); - - if ( value != null ) { - ret[ ret.length ] = value; - } - } - - // Go through every key on the object, - } else { - for ( key in elems ) { - value = callback( elems[ key ], key, arg ); - - if ( value != null ) { - ret[ ret.length ] = value; - } - } - } - - // Flatten any nested arrays - return ret.concat.apply( [], ret ); - }, - - // A global GUID counter for objects - guid: 1, - - // Bind a function to a context, optionally partially applying any - // arguments. - proxy: function( fn, context ) { - if ( typeof context === "string" ) { - var tmp = fn[ context ]; - context = fn; - fn = tmp; - } - - // Quick check to determine if target is callable, in the spec - // this throws a TypeError, but we will just return undefined. - if ( !jQuery.isFunction( fn ) ) { - return undefined; - } - - // Simulated bind - var args = slice.call( arguments, 2 ), - proxy = function() { - return fn.apply( context, args.concat( slice.call( arguments ) ) ); - }; - - // Set the guid of unique handler to the same of original handler, so it can be removed - proxy.guid = fn.guid = fn.guid || proxy.guid || jQuery.guid++; - - return proxy; - }, - - // Mutifunctional method to get and set values to a collection - // The value/s can optionally be executed if it's a function - access: function( elems, fn, key, value, chainable, emptyGet, pass ) { - var exec, - bulk = key == null, - i = 0, - length = elems.length; - - // Sets many values - if ( key && typeof key === "object" ) { - for ( i in key ) { - jQuery.access( elems, fn, i, key[i], 1, emptyGet, value ); - } - chainable = 1; - - // Sets one value - } else if ( value !== undefined ) { - // Optionally, function values get executed if exec is true - exec = pass === undefined && jQuery.isFunction( value ); - - if ( bulk ) { - // Bulk operations only iterate when executing function values - if ( exec ) { - exec = fn; - fn = function( elem, key, value ) { - return exec.call( jQuery( elem ), value ); - }; - - // Otherwise they run against the entire set - } else { - fn.call( elems, value ); - fn = null; - } - } - - if ( fn ) { - for (; i < length; i++ ) { - fn( elems[i], key, exec ? value.call( elems[i], i, fn( elems[i], key ) ) : value, pass ); - } - } - - chainable = 1; - } - - return chainable ? - elems : - - // Gets - bulk ? - fn.call( elems ) : - length ? fn( elems[0], key ) : emptyGet; - }, - - now: function() { - return ( new Date() ).getTime(); - }, - - // Use of jQuery.browser is frowned upon. - // More details: http://docs.jquery.com/Utilities/jQuery.browser - uaMatch: function( ua ) { - ua = ua.toLowerCase(); - - var match = rwebkit.exec( ua ) || - ropera.exec( ua ) || - rmsie.exec( ua ) || - ua.indexOf("compatible") < 0 && rmozilla.exec( ua ) || - []; - - return { browser: match[1] || "", version: match[2] || "0" }; - }, - - sub: function() { - function jQuerySub( selector, context ) { - return new jQuerySub.fn.init( selector, context ); - } - jQuery.extend( true, jQuerySub, this ); - jQuerySub.superclass = this; - jQuerySub.fn = jQuerySub.prototype = this(); - jQuerySub.fn.constructor = jQuerySub; - jQuerySub.sub = this.sub; - jQuerySub.fn.init = function init( selector, context ) { - if ( context && context instanceof jQuery && !(context instanceof jQuerySub) ) { - context = jQuerySub( context ); - } - - return jQuery.fn.init.call( this, selector, context, rootjQuerySub ); - }; - jQuerySub.fn.init.prototype = jQuerySub.fn; - var rootjQuerySub = jQuerySub(document); - return jQuerySub; - }, - - browser: {} -}); - -// Populate the class2type map -jQuery.each("Boolean Number String Function Array Date RegExp Object".split(" "), function(i, name) { - class2type[ "[object " + name + "]" ] = name.toLowerCase(); -}); - -browserMatch = jQuery.uaMatch( userAgent ); -if ( browserMatch.browser ) { - jQuery.browser[ browserMatch.browser ] = true; - jQuery.browser.version = browserMatch.version; -} - -// Deprecated, use jQuery.browser.webkit instead -if ( jQuery.browser.webkit ) { - jQuery.browser.safari = true; -} - -// IE doesn't match non-breaking spaces with \s -if ( rnotwhite.test( "\xA0" ) ) { - trimLeft = /^[\s\xA0]+/; - trimRight = /[\s\xA0]+$/; -} - -// All jQuery objects should point back to these -rootjQuery = jQuery(document); - -// Cleanup functions for the document ready method -if ( document.addEventListener ) { - DOMContentLoaded = function() { - document.removeEventListener( "DOMContentLoaded", DOMContentLoaded, false ); - jQuery.ready(); - }; - -} else if ( document.attachEvent ) { - DOMContentLoaded = function() { - // Make sure body exists, at least, in case IE gets a little overzealous (ticket #5443). - if ( document.readyState === "complete" ) { - document.detachEvent( "onreadystatechange", DOMContentLoaded ); - jQuery.ready(); - } - }; -} - -// The DOM ready check for Internet Explorer -function doScrollCheck() { - if ( jQuery.isReady ) { - return; - } - - try { - // If IE is used, use the trick by Diego Perini - // http://javascript.nwbox.com/IEContentLoaded/ - document.documentElement.doScroll("left"); - } catch(e) { - setTimeout( doScrollCheck, 1 ); - return; - } - - // and execute any waiting functions - jQuery.ready(); -} - -return jQuery; - -})(); - - -// String to Object flags format cache -var flagsCache = {}; - -// Convert String-formatted flags into Object-formatted ones and store in cache -function createFlags( flags ) { - var object = flagsCache[ flags ] = {}, - i, length; - flags = flags.split( /\s+/ ); - for ( i = 0, length = flags.length; i < length; i++ ) { - object[ flags[i] ] = true; - } - return object; -} - -/* - * Create a callback list using the following parameters: - * - * flags: an optional list of space-separated flags that will change how - * the callback list behaves - * - * By default a callback list will act like an event callback list and can be - * "fired" multiple times. - * - * Possible flags: - * - * once: will ensure the callback list can only be fired once (like a Deferred) - * - * memory: will keep track of previous values and will call any callback added - * after the list has been fired right away with the latest "memorized" - * values (like a Deferred) - * - * unique: will ensure a callback can only be added once (no duplicate in the list) - * - * stopOnFalse: interrupt callings when a callback returns false - * - */ -jQuery.Callbacks = function( flags ) { - - // Convert flags from String-formatted to Object-formatted - // (we check in cache first) - flags = flags ? ( flagsCache[ flags ] || createFlags( flags ) ) : {}; - - var // Actual callback list - list = [], - // Stack of fire calls for repeatable lists - stack = [], - // Last fire value (for non-forgettable lists) - memory, - // Flag to know if list was already fired - fired, - // Flag to know if list is currently firing - firing, - // First callback to fire (used internally by add and fireWith) - firingStart, - // End of the loop when firing - firingLength, - // Index of currently firing callback (modified by remove if needed) - firingIndex, - // Add one or several callbacks to the list - add = function( args ) { - var i, - length, - elem, - type, - actual; - for ( i = 0, length = args.length; i < length; i++ ) { - elem = args[ i ]; - type = jQuery.type( elem ); - if ( type === "array" ) { - // Inspect recursively - add( elem ); - } else if ( type === "function" ) { - // Add if not in unique mode and callback is not in - if ( !flags.unique || !self.has( elem ) ) { - list.push( elem ); - } - } - } - }, - // Fire callbacks - fire = function( context, args ) { - args = args || []; - memory = !flags.memory || [ context, args ]; - fired = true; - firing = true; - firingIndex = firingStart || 0; - firingStart = 0; - firingLength = list.length; - for ( ; list && firingIndex < firingLength; firingIndex++ ) { - if ( list[ firingIndex ].apply( context, args ) === false && flags.stopOnFalse ) { - memory = true; // Mark as halted - break; - } - } - firing = false; - if ( list ) { - if ( !flags.once ) { - if ( stack && stack.length ) { - memory = stack.shift(); - self.fireWith( memory[ 0 ], memory[ 1 ] ); - } - } else if ( memory === true ) { - self.disable(); - } else { - list = []; - } - } - }, - // Actual Callbacks object - self = { - // Add a callback or a collection of callbacks to the list - add: function() { - if ( list ) { - var length = list.length; - add( arguments ); - // Do we need to add the callbacks to the - // current firing batch? - if ( firing ) { - firingLength = list.length; - // With memory, if we're not firing then - // we should call right away, unless previous - // firing was halted (stopOnFalse) - } else if ( memory && memory !== true ) { - firingStart = length; - fire( memory[ 0 ], memory[ 1 ] ); - } - } - return this; - }, - // Remove a callback from the list - remove: function() { - if ( list ) { - var args = arguments, - argIndex = 0, - argLength = args.length; - for ( ; argIndex < argLength ; argIndex++ ) { - for ( var i = 0; i < list.length; i++ ) { - if ( args[ argIndex ] === list[ i ] ) { - // Handle firingIndex and firingLength - if ( firing ) { - if ( i <= firingLength ) { - firingLength--; - if ( i <= firingIndex ) { - firingIndex--; - } - } - } - // Remove the element - list.splice( i--, 1 ); - // If we have some unicity property then - // we only need to do this once - if ( flags.unique ) { - break; - } - } - } - } - } - return this; - }, - // Control if a given callback is in the list - has: function( fn ) { - if ( list ) { - var i = 0, - length = list.length; - for ( ; i < length; i++ ) { - if ( fn === list[ i ] ) { - return true; - } - } - } - return false; - }, - // Remove all callbacks from the list - empty: function() { - list = []; - return this; - }, - // Have the list do nothing anymore - disable: function() { - list = stack = memory = undefined; - return this; - }, - // Is it disabled? - disabled: function() { - return !list; - }, - // Lock the list in its current state - lock: function() { - stack = undefined; - if ( !memory || memory === true ) { - self.disable(); - } - return this; - }, - // Is it locked? - locked: function() { - return !stack; - }, - // Call all callbacks with the given context and arguments - fireWith: function( context, args ) { - if ( stack ) { - if ( firing ) { - if ( !flags.once ) { - stack.push( [ context, args ] ); - } - } else if ( !( flags.once && memory ) ) { - fire( context, args ); - } - } - return this; - }, - // Call all the callbacks with the given arguments - fire: function() { - self.fireWith( this, arguments ); - return this; - }, - // To know if the callbacks have already been called at least once - fired: function() { - return !!fired; - } - }; - - return self; -}; - - - - -var // Static reference to slice - sliceDeferred = [].slice; - -jQuery.extend({ - - Deferred: function( func ) { - var doneList = jQuery.Callbacks( "once memory" ), - failList = jQuery.Callbacks( "once memory" ), - progressList = jQuery.Callbacks( "memory" ), - state = "pending", - lists = { - resolve: doneList, - reject: failList, - notify: progressList - }, - promise = { - done: doneList.add, - fail: failList.add, - progress: progressList.add, - - state: function() { - return state; - }, - - // Deprecated - isResolved: doneList.fired, - isRejected: failList.fired, - - then: function( doneCallbacks, failCallbacks, progressCallbacks ) { - deferred.done( doneCallbacks ).fail( failCallbacks ).progress( progressCallbacks ); - return this; - }, - always: function() { - deferred.done.apply( deferred, arguments ).fail.apply( deferred, arguments ); - return this; - }, - pipe: function( fnDone, fnFail, fnProgress ) { - return jQuery.Deferred(function( newDefer ) { - jQuery.each( { - done: [ fnDone, "resolve" ], - fail: [ fnFail, "reject" ], - progress: [ fnProgress, "notify" ] - }, function( handler, data ) { - var fn = data[ 0 ], - action = data[ 1 ], - returned; - if ( jQuery.isFunction( fn ) ) { - deferred[ handler ](function() { - returned = fn.apply( this, arguments ); - if ( returned && jQuery.isFunction( returned.promise ) ) { - returned.promise().then( newDefer.resolve, newDefer.reject, newDefer.notify ); - } else { - newDefer[ action + "With" ]( this === deferred ? newDefer : this, [ returned ] ); - } - }); - } else { - deferred[ handler ]( newDefer[ action ] ); - } - }); - }).promise(); - }, - // Get a promise for this deferred - // If obj is provided, the promise aspect is added to the object - promise: function( obj ) { - if ( obj == null ) { - obj = promise; - } else { - for ( var key in promise ) { - obj[ key ] = promise[ key ]; - } - } - return obj; - } - }, - deferred = promise.promise({}), - key; - - for ( key in lists ) { - deferred[ key ] = lists[ key ].fire; - deferred[ key + "With" ] = lists[ key ].fireWith; - } - - // Handle state - deferred.done( function() { - state = "resolved"; - }, failList.disable, progressList.lock ).fail( function() { - state = "rejected"; - }, doneList.disable, progressList.lock ); - - // Call given func if any - if ( func ) { - func.call( deferred, deferred ); - } - - // All done! - return deferred; - }, - - // Deferred helper - when: function( firstParam ) { - var args = sliceDeferred.call( arguments, 0 ), - i = 0, - length = args.length, - pValues = new Array( length ), - count = length, - pCount = length, - deferred = length <= 1 && firstParam && jQuery.isFunction( firstParam.promise ) ? - firstParam : - jQuery.Deferred(), - promise = deferred.promise(); - function resolveFunc( i ) { - return function( value ) { - args[ i ] = arguments.length > 1 ? sliceDeferred.call( arguments, 0 ) : value; - if ( !( --count ) ) { - deferred.resolveWith( deferred, args ); - } - }; - } - function progressFunc( i ) { - return function( value ) { - pValues[ i ] = arguments.length > 1 ? sliceDeferred.call( arguments, 0 ) : value; - deferred.notifyWith( promise, pValues ); - }; - } - if ( length > 1 ) { - for ( ; i < length; i++ ) { - if ( args[ i ] && args[ i ].promise && jQuery.isFunction( args[ i ].promise ) ) { - args[ i ].promise().then( resolveFunc(i), deferred.reject, progressFunc(i) ); - } else { - --count; - } - } - if ( !count ) { - deferred.resolveWith( deferred, args ); - } - } else if ( deferred !== firstParam ) { - deferred.resolveWith( deferred, length ? [ firstParam ] : [] ); - } - return promise; - } -}); - - - - -jQuery.support = (function() { - - var support, - all, - a, - select, - opt, - input, - fragment, - tds, - events, - eventName, - i, - isSupported, - div = document.createElement( "div" ), - documentElement = document.documentElement; - - // Preliminary tests - div.setAttribute("className", "t"); - div.innerHTML = " <link/><table></table><a href='/a' style='top:1px;float:left;opacity:.55;'>a</a><input type='checkbox'/>"; - - all = div.getElementsByTagName( "*" ); - a = div.getElementsByTagName( "a" )[ 0 ]; - - // Can't get basic test support - if ( !all || !all.length || !a ) { - return {}; - } - - // First batch of supports tests - select = document.createElement( "select" ); - opt = select.appendChild( document.createElement("option") ); - input = div.getElementsByTagName( "input" )[ 0 ]; - - support = { - // IE strips leading whitespace when .innerHTML is used - leadingWhitespace: ( div.firstChild.nodeType === 3 ), - - // Make sure that tbody elements aren't automatically inserted - // IE will insert them into empty tables - tbody: !div.getElementsByTagName("tbody").length, - - // Make sure that link elements get serialized correctly by innerHTML - // This requires a wrapper element in IE - htmlSerialize: !!div.getElementsByTagName("link").length, - - // Get the style information from getAttribute - // (IE uses .cssText instead) - style: /top/.test( a.getAttribute("style") ), - - // Make sure that URLs aren't manipulated - // (IE normalizes it by default) - hrefNormalized: ( a.getAttribute("href") === "/a" ), - - // Make sure that element opacity exists - // (IE uses filter instead) - // Use a regex to work around a WebKit issue. See #5145 - opacity: /^0.55/.test( a.style.opacity ), - - // Verify style float existence - // (IE uses styleFloat instead of cssFloat) - cssFloat: !!a.style.cssFloat, - - // Make sure that if no value is specified for a checkbox - // that it defaults to "on". - // (WebKit defaults to "" instead) - checkOn: ( input.value === "on" ), - - // Make sure that a selected-by-default option has a working selected property. - // (WebKit defaults to false instead of true, IE too, if it's in an optgroup) - optSelected: opt.selected, - - // Test setAttribute on camelCase class. If it works, we need attrFixes when doing get/setAttribute (ie6/7) - getSetAttribute: div.className !== "t", - - // Tests for enctype support on a form(#6743) - enctype: !!document.createElement("form").enctype, - - // Makes sure cloning an html5 element does not cause problems - // Where outerHTML is undefined, this still works - html5Clone: document.createElement("nav").cloneNode( true ).outerHTML !== "<:nav></:nav>", - - // Will be defined later - submitBubbles: true, - changeBubbles: true, - focusinBubbles: false, - deleteExpando: true, - noCloneEvent: true, - inlineBlockNeedsLayout: false, - shrinkWrapBlocks: false, - reliableMarginRight: true, - pixelMargin: true - }; - - // jQuery.boxModel DEPRECATED in 1.3, use jQuery.support.boxModel instead - jQuery.boxModel = support.boxModel = (document.compatMode === "CSS1Compat"); - - // Make sure checked status is properly cloned - input.checked = true; - support.noCloneChecked = input.cloneNode( true ).checked; - - // Make sure that the options inside disabled selects aren't marked as disabled - // (WebKit marks them as disabled) - select.disabled = true; - support.optDisabled = !opt.disabled; - - // Test to see if it's possible to delete an expando from an element - // Fails in Internet Explorer - try { - delete div.test; - } catch( e ) { - support.deleteExpando = false; - } - - if ( !div.addEventListener && div.attachEvent && div.fireEvent ) { - div.attachEvent( "onclick", function() { - // Cloning a node shouldn't copy over any - // bound event handlers (IE does this) - support.noCloneEvent = false; - }); - div.cloneNode( true ).fireEvent( "onclick" ); - } - - // Check if a radio maintains its value - // after being appended to the DOM - input = document.createElement("input"); - input.value = "t"; - input.setAttribute("type", "radio"); - support.radioValue = input.value === "t"; - - input.setAttribute("checked", "checked"); - - // #11217 - WebKit loses check when the name is after the checked attribute - input.setAttribute( "name", "t" ); - - div.appendChild( input ); - fragment = document.createDocumentFragment(); - fragment.appendChild( div.lastChild ); - - // WebKit doesn't clone checked state correctly in fragments - support.checkClone = fragment.cloneNode( true ).cloneNode( true ).lastChild.checked; - - // Check if a disconnected checkbox will retain its checked - // value of true after appended to the DOM (IE6/7) - support.appendChecked = input.checked; - - fragment.removeChild( input ); - fragment.appendChild( div ); - - // Technique from Juriy Zaytsev - // http://perfectionkills.com/detecting-event-support-without-browser-sniffing/ - // We only care about the case where non-standard event systems - // are used, namely in IE. Short-circuiting here helps us to - // avoid an eval call (in setAttribute) which can cause CSP - // to go haywire. See: https://developer.mozilla.org/en/Security/CSP - if ( div.attachEvent ) { - for ( i in { - submit: 1, - change: 1, - focusin: 1 - }) { - eventName = "on" + i; - isSupported = ( eventName in div ); - if ( !isSupported ) { - div.setAttribute( eventName, "return;" ); - isSupported = ( typeof div[ eventName ] === "function" ); - } - support[ i + "Bubbles" ] = isSupported; - } - } - - fragment.removeChild( div ); - - // Null elements to avoid leaks in IE - fragment = select = opt = div = input = null; - - // Run tests that need a body at doc ready - jQuery(function() { - var container, outer, inner, table, td, offsetSupport, - marginDiv, conMarginTop, style, html, positionTopLeftWidthHeight, - paddingMarginBorderVisibility, paddingMarginBorder, - body = document.getElementsByTagName("body")[0]; - - if ( !body ) { - // Return for frameset docs that don't have a body - return; - } - - conMarginTop = 1; - paddingMarginBorder = "padding:0;margin:0;border:"; - positionTopLeftWidthHeight = "position:absolute;top:0;left:0;width:1px;height:1px;"; - paddingMarginBorderVisibility = paddingMarginBorder + "0;visibility:hidden;"; - style = "style='" + positionTopLeftWidthHeight + paddingMarginBorder + "5px solid #000;"; - html = "<div " + style + "display:block;'><div style='" + paddingMarginBorder + "0;display:block;overflow:hidden;'></div></div>" + - "<table " + style + "' cellpadding='0' cellspacing='0'>" + - "<tr><td></td></tr></table>"; - - container = document.createElement("div"); - container.style.cssText = paddingMarginBorderVisibility + "width:0;height:0;position:static;top:0;margin-top:" + conMarginTop + "px"; - body.insertBefore( container, body.firstChild ); - - // Construct the test element - div = document.createElement("div"); - container.appendChild( div ); - - // Check if table cells still have offsetWidth/Height when they are set - // to display:none and there are still other visible table cells in a - // table row; if so, offsetWidth/Height are not reliable for use when - // determining if an element has been hidden directly using - // display:none (it is still safe to use offsets if a parent element is - // hidden; don safety goggles and see bug #4512 for more information). - // (only IE 8 fails this test) - div.innerHTML = "<table><tr><td style='" + paddingMarginBorder + "0;display:none'></td><td>t</td></tr></table>"; - tds = div.getElementsByTagName( "td" ); - isSupported = ( tds[ 0 ].offsetHeight === 0 ); - - tds[ 0 ].style.display = ""; - tds[ 1 ].style.display = "none"; - - // Check if empty table cells still have offsetWidth/Height - // (IE <= 8 fail this test) - support.reliableHiddenOffsets = isSupported && ( tds[ 0 ].offsetHeight === 0 ); - - // Check if div with explicit width and no margin-right incorrectly - // gets computed margin-right based on width of container. For more - // info see bug #3333 - // Fails in WebKit before Feb 2011 nightlies - // WebKit Bug 13343 - getComputedStyle returns wrong value for margin-right - if ( window.getComputedStyle ) { - div.innerHTML = ""; - marginDiv = document.createElement( "div" ); - marginDiv.style.width = "0"; - marginDiv.style.marginRight = "0"; - div.style.width = "2px"; - div.appendChild( marginDiv ); - support.reliableMarginRight = - ( parseInt( ( window.getComputedStyle( marginDiv, null ) || { marginRight: 0 } ).marginRight, 10 ) || 0 ) === 0; - } - - if ( typeof div.style.zoom !== "undefined" ) { - // Check if natively block-level elements act like inline-block - // elements when setting their display to 'inline' and giving - // them layout - // (IE < 8 does this) - div.innerHTML = ""; - div.style.width = div.style.padding = "1px"; - div.style.border = 0; - div.style.overflow = "hidden"; - div.style.display = "inline"; - div.style.zoom = 1; - support.inlineBlockNeedsLayout = ( div.offsetWidth === 3 ); - - // Check if elements with layout shrink-wrap their children - // (IE 6 does this) - div.style.display = "block"; - div.style.overflow = "visible"; - div.innerHTML = "<div style='width:5px;'></div>"; - support.shrinkWrapBlocks = ( div.offsetWidth !== 3 ); - } - - div.style.cssText = positionTopLeftWidthHeight + paddingMarginBorderVisibility; - div.innerHTML = html; - - outer = div.firstChild; - inner = outer.firstChild; - td = outer.nextSibling.firstChild.firstChild; - - offsetSupport = { - doesNotAddBorder: ( inner.offsetTop !== 5 ), - doesAddBorderForTableAndCells: ( td.offsetTop === 5 ) - }; - - inner.style.position = "fixed"; - inner.style.top = "20px"; - - // safari subtracts parent border width here which is 5px - offsetSupport.fixedPosition = ( inner.offsetTop === 20 || inner.offsetTop === 15 ); - inner.style.position = inner.style.top = ""; - - outer.style.overflow = "hidden"; - outer.style.position = "relative"; - - offsetSupport.subtractsBorderForOverflowNotVisible = ( inner.offsetTop === -5 ); - offsetSupport.doesNotIncludeMarginInBodyOffset = ( body.offsetTop !== conMarginTop ); - - if ( window.getComputedStyle ) { - div.style.marginTop = "1%"; - support.pixelMargin = ( window.getComputedStyle( div, null ) || { marginTop: 0 } ).marginTop !== "1%"; - } - - if ( typeof container.style.zoom !== "undefined" ) { - container.style.zoom = 1; - } - - body.removeChild( container ); - marginDiv = div = container = null; - - jQuery.extend( support, offsetSupport ); - }); - - return support; -})(); - - - - -var rbrace = /^(?:\{.*\}|\[.*\])$/, - rmultiDash = /([A-Z])/g; - -jQuery.extend({ - cache: {}, - - // Please use with caution - uuid: 0, - - // Unique for each copy of jQuery on the page - // Non-digits removed to match rinlinejQuery - expando: "jQuery" + ( jQuery.fn.jquery + Math.random() ).replace( /\D/g, "" ), - - // The following elements throw uncatchable exceptions if you - // attempt to add expando properties to them. - noData: { - "embed": true, - // Ban all objects except for Flash (which handle expandos) - "object": "clsid:D27CDB6E-AE6D-11cf-96B8-444553540000", - "applet": true - }, - - hasData: function( elem ) { - elem = elem.nodeType ? jQuery.cache[ elem[jQuery.expando] ] : elem[ jQuery.expando ]; - return !!elem && !isEmptyDataObject( elem ); - }, - - data: function( elem, name, data, pvt /* Internal Use Only */ ) { - if ( !jQuery.acceptData( elem ) ) { - return; - } - - var privateCache, thisCache, ret, - internalKey = jQuery.expando, - getByName = typeof name === "string", - - // We have to handle DOM nodes and JS objects differently because IE6-7 - // can't GC object references properly across the DOM-JS boundary - isNode = elem.nodeType, - - // Only DOM nodes need the global jQuery cache; JS object data is - // attached directly to the object so GC can occur automatically - cache = isNode ? jQuery.cache : elem, - - // Only defining an ID for JS objects if its cache already exists allows - // the code to shortcut on the same path as a DOM node with no cache - id = isNode ? elem[ internalKey ] : elem[ internalKey ] && internalKey, - isEvents = name === "events"; - - // Avoid doing any more work than we need to when trying to get data on an - // object that has no data at all - if ( (!id || !cache[id] || (!isEvents && !pvt && !cache[id].data)) && getByName && data === undefined ) { - return; - } - - if ( !id ) { - // Only DOM nodes need a new unique ID for each element since their data - // ends up in the global cache - if ( isNode ) { - elem[ internalKey ] = id = ++jQuery.uuid; - } else { - id = internalKey; - } - } - - if ( !cache[ id ] ) { - cache[ id ] = {}; - - // Avoids exposing jQuery metadata on plain JS objects when the object - // is serialized using JSON.stringify - if ( !isNode ) { - cache[ id ].toJSON = jQuery.noop; - } - } - - // An object can be passed to jQuery.data instead of a key/value pair; this gets - // shallow copied over onto the existing cache - if ( typeof name === "object" || typeof name === "function" ) { - if ( pvt ) { - cache[ id ] = jQuery.extend( cache[ id ], name ); - } else { - cache[ id ].data = jQuery.extend( cache[ id ].data, name ); - } - } - - privateCache = thisCache = cache[ id ]; - - // jQuery data() is stored in a separate object inside the object's internal data - // cache in order to avoid key collisions between internal data and user-defined - // data. - if ( !pvt ) { - if ( !thisCache.data ) { - thisCache.data = {}; - } - - thisCache = thisCache.data; - } - - if ( data !== undefined ) { - thisCache[ jQuery.camelCase( name ) ] = data; - } - - // Users should not attempt to inspect the internal events object using jQuery.data, - // it is undocumented and subject to change. But does anyone listen? No. - if ( isEvents && !thisCache[ name ] ) { - return privateCache.events; - } - - // Check for both converted-to-camel and non-converted data property names - // If a data property was specified - if ( getByName ) { - - // First Try to find as-is property data - ret = thisCache[ name ]; - - // Test for null|undefined property data - if ( ret == null ) { - - // Try to find the camelCased property - ret = thisCache[ jQuery.camelCase( name ) ]; - } - } else { - ret = thisCache; - } - - return ret; - }, - - removeData: function( elem, name, pvt /* Internal Use Only */ ) { - if ( !jQuery.acceptData( elem ) ) { - return; - } - - var thisCache, i, l, - - // Reference to internal data cache key - internalKey = jQuery.expando, - - isNode = elem.nodeType, - - // See jQuery.data for more information - cache = isNode ? jQuery.cache : elem, - - // See jQuery.data for more information - id = isNode ? elem[ internalKey ] : internalKey; - - // If there is already no cache entry for this object, there is no - // purpose in continuing - if ( !cache[ id ] ) { - return; - } - - if ( name ) { - - thisCache = pvt ? cache[ id ] : cache[ id ].data; - - if ( thisCache ) { - - // Support array or space separated string names for data keys - if ( !jQuery.isArray( name ) ) { - - // try the string as a key before any manipulation - if ( name in thisCache ) { - name = [ name ]; - } else { - - // split the camel cased version by spaces unless a key with the spaces exists - name = jQuery.camelCase( name ); - if ( name in thisCache ) { - name = [ name ]; - } else { - name = name.split( " " ); - } - } - } - - for ( i = 0, l = name.length; i < l; i++ ) { - delete thisCache[ name[i] ]; - } - - // If there is no data left in the cache, we want to continue - // and let the cache object itself get destroyed - if ( !( pvt ? isEmptyDataObject : jQuery.isEmptyObject )( thisCache ) ) { - return; - } - } - } - - // See jQuery.data for more information - if ( !pvt ) { - delete cache[ id ].data; - - // Don't destroy the parent cache unless the internal data object - // had been the only thing left in it - if ( !isEmptyDataObject(cache[ id ]) ) { - return; - } - } - - // Browsers that fail expando deletion also refuse to delete expandos on - // the window, but it will allow it on all other JS objects; other browsers - // don't care - // Ensure that `cache` is not a window object #10080 - if ( jQuery.support.deleteExpando || !cache.setInterval ) { - delete cache[ id ]; - } else { - cache[ id ] = null; - } - - // We destroyed the cache and need to eliminate the expando on the node to avoid - // false lookups in the cache for entries that no longer exist - if ( isNode ) { - // IE does not allow us to delete expando properties from nodes, - // nor does it have a removeAttribute function on Document nodes; - // we must handle all of these cases - if ( jQuery.support.deleteExpando ) { - delete elem[ internalKey ]; - } else if ( elem.removeAttribute ) { - elem.removeAttribute( internalKey ); - } else { - elem[ internalKey ] = null; - } - } - }, - - // For internal use only. - _data: function( elem, name, data ) { - return jQuery.data( elem, name, data, true ); - }, - - // A method for determining if a DOM node can handle the data expando - acceptData: function( elem ) { - if ( elem.nodeName ) { - var match = jQuery.noData[ elem.nodeName.toLowerCase() ]; - - if ( match ) { - return !(match === true || elem.getAttribute("classid") !== match); - } - } - - return true; - } -}); - -jQuery.fn.extend({ - data: function( key, value ) { - var parts, part, attr, name, l, - elem = this[0], - i = 0, - data = null; - - // Gets all values - if ( key === undefined ) { - if ( this.length ) { - data = jQuery.data( elem ); - - if ( elem.nodeType === 1 && !jQuery._data( elem, "parsedAttrs" ) ) { - attr = elem.attributes; - for ( l = attr.length; i < l; i++ ) { - name = attr[i].name; - - if ( name.indexOf( "data-" ) === 0 ) { - name = jQuery.camelCase( name.substring(5) ); - - dataAttr( elem, name, data[ name ] ); - } - } - jQuery._data( elem, "parsedAttrs", true ); - } - } - - return data; - } - - // Sets multiple values - if ( typeof key === "object" ) { - return this.each(function() { - jQuery.data( this, key ); - }); - } - - parts = key.split( ".", 2 ); - parts[1] = parts[1] ? "." + parts[1] : ""; - part = parts[1] + "!"; - - return jQuery.access( this, function( value ) { - - if ( value === undefined ) { - data = this.triggerHandler( "getData" + part, [ parts[0] ] ); - - // Try to fetch any internally stored data first - if ( data === undefined && elem ) { - data = jQuery.data( elem, key ); - data = dataAttr( elem, key, data ); - } - - return data === undefined && parts[1] ? - this.data( parts[0] ) : - data; - } - - parts[1] = value; - this.each(function() { - var self = jQuery( this ); - - self.triggerHandler( "setData" + part, parts ); - jQuery.data( this, key, value ); - self.triggerHandler( "changeData" + part, parts ); - }); - }, null, value, arguments.length > 1, null, false ); - }, - - removeData: function( key ) { - return this.each(function() { - jQuery.removeData( this, key ); - }); - } -}); - -function dataAttr( elem, key, data ) { - // If nothing was found internally, try to fetch any - // data from the HTML5 data-* attribute - if ( data === undefined && elem.nodeType === 1 ) { - - var name = "data-" + key.replace( rmultiDash, "-$1" ).toLowerCase(); - - data = elem.getAttribute( name ); - - if ( typeof data === "string" ) { - try { - data = data === "true" ? true : - data === "false" ? false : - data === "null" ? null : - jQuery.isNumeric( data ) ? +data : - rbrace.test( data ) ? jQuery.parseJSON( data ) : - data; - } catch( e ) {} - - // Make sure we set the data so it isn't changed later - jQuery.data( elem, key, data ); - - } else { - data = undefined; - } - } - - return data; -} - -// checks a cache object for emptiness -function isEmptyDataObject( obj ) { - for ( var name in obj ) { - - // if the public data object is empty, the private is still empty - if ( name === "data" && jQuery.isEmptyObject( obj[name] ) ) { - continue; - } - if ( name !== "toJSON" ) { - return false; - } - } - - return true; -} - - - - -function handleQueueMarkDefer( elem, type, src ) { - var deferDataKey = type + "defer", - queueDataKey = type + "queue", - markDataKey = type + "mark", - defer = jQuery._data( elem, deferDataKey ); - if ( defer && - ( src === "queue" || !jQuery._data(elem, queueDataKey) ) && - ( src === "mark" || !jQuery._data(elem, markDataKey) ) ) { - // Give room for hard-coded callbacks to fire first - // and eventually mark/queue something else on the element - setTimeout( function() { - if ( !jQuery._data( elem, queueDataKey ) && - !jQuery._data( elem, markDataKey ) ) { - jQuery.removeData( elem, deferDataKey, true ); - defer.fire(); - } - }, 0 ); - } -} - -jQuery.extend({ - - _mark: function( elem, type ) { - if ( elem ) { - type = ( type || "fx" ) + "mark"; - jQuery._data( elem, type, (jQuery._data( elem, type ) || 0) + 1 ); - } - }, - - _unmark: function( force, elem, type ) { - if ( force !== true ) { - type = elem; - elem = force; - force = false; - } - if ( elem ) { - type = type || "fx"; - var key = type + "mark", - count = force ? 0 : ( (jQuery._data( elem, key ) || 1) - 1 ); - if ( count ) { - jQuery._data( elem, key, count ); - } else { - jQuery.removeData( elem, key, true ); - handleQueueMarkDefer( elem, type, "mark" ); - } - } - }, - - queue: function( elem, type, data ) { - var q; - if ( elem ) { - type = ( type || "fx" ) + "queue"; - q = jQuery._data( elem, type ); - - // Speed up dequeue by getting out quickly if this is just a lookup - if ( data ) { - if ( !q || jQuery.isArray(data) ) { - q = jQuery._data( elem, type, jQuery.makeArray(data) ); - } else { - q.push( data ); - } - } - return q || []; - } - }, - - dequeue: function( elem, type ) { - type = type || "fx"; - - var queue = jQuery.queue( elem, type ), - fn = queue.shift(), - hooks = {}; - - // If the fx queue is dequeued, always remove the progress sentinel - if ( fn === "inprogress" ) { - fn = queue.shift(); - } - - if ( fn ) { - // Add a progress sentinel to prevent the fx queue from being - // automatically dequeued - if ( type === "fx" ) { - queue.unshift( "inprogress" ); - } - - jQuery._data( elem, type + ".run", hooks ); - fn.call( elem, function() { - jQuery.dequeue( elem, type ); - }, hooks ); - } - - if ( !queue.length ) { - jQuery.removeData( elem, type + "queue " + type + ".run", true ); - handleQueueMarkDefer( elem, type, "queue" ); - } - } -}); - -jQuery.fn.extend({ - queue: function( type, data ) { - var setter = 2; - - if ( typeof type !== "string" ) { - data = type; - type = "fx"; - setter--; - } - - if ( arguments.length < setter ) { - return jQuery.queue( this[0], type ); - } - - return data === undefined ? - this : - this.each(function() { - var queue = jQuery.queue( this, type, data ); - - if ( type === "fx" && queue[0] !== "inprogress" ) { - jQuery.dequeue( this, type ); - } - }); - }, - dequeue: function( type ) { - return this.each(function() { - jQuery.dequeue( this, type ); - }); - }, - // Based off of the plugin by Clint Helfers, with permission. - // http://blindsignals.com/index.php/2009/07/jquery-delay/ - delay: function( time, type ) { - time = jQuery.fx ? jQuery.fx.speeds[ time ] || time : time; - type = type || "fx"; - - return this.queue( type, function( next, hooks ) { - var timeout = setTimeout( next, time ); - hooks.stop = function() { - clearTimeout( timeout ); - }; - }); - }, - clearQueue: function( type ) { - return this.queue( type || "fx", [] ); - }, - // Get a promise resolved when queues of a certain type - // are emptied (fx is the type by default) - promise: function( type, object ) { - if ( typeof type !== "string" ) { - object = type; - type = undefined; - } - type = type || "fx"; - var defer = jQuery.Deferred(), - elements = this, - i = elements.length, - count = 1, - deferDataKey = type + "defer", - queueDataKey = type + "queue", - markDataKey = type + "mark", - tmp; - function resolve() { - if ( !( --count ) ) { - defer.resolveWith( elements, [ elements ] ); - } - } - while( i-- ) { - if (( tmp = jQuery.data( elements[ i ], deferDataKey, undefined, true ) || - ( jQuery.data( elements[ i ], queueDataKey, undefined, true ) || - jQuery.data( elements[ i ], markDataKey, undefined, true ) ) && - jQuery.data( elements[ i ], deferDataKey, jQuery.Callbacks( "once memory" ), true ) )) { - count++; - tmp.add( resolve ); - } - } - resolve(); - return defer.promise( object ); - } -}); - - - - -var rclass = /[\n\t\r]/g, - rspace = /\s+/, - rreturn = /\r/g, - rtype = /^(?:button|input)$/i, - rfocusable = /^(?:button|input|object|select|textarea)$/i, - rclickable = /^a(?:rea)?$/i, - rboolean = /^(?:autofocus|autoplay|async|checked|controls|defer|disabled|hidden|loop|multiple|open|readonly|required|scoped|selected)$/i, - getSetAttribute = jQuery.support.getSetAttribute, - nodeHook, boolHook, fixSpecified; - -jQuery.fn.extend({ - attr: function( name, value ) { - return jQuery.access( this, jQuery.attr, name, value, arguments.length > 1 ); - }, - - removeAttr: function( name ) { - return this.each(function() { - jQuery.removeAttr( this, name ); - }); - }, - - prop: function( name, value ) { - return jQuery.access( this, jQuery.prop, name, value, arguments.length > 1 ); - }, - - removeProp: function( name ) { - name = jQuery.propFix[ name ] || name; - return this.each(function() { - // try/catch handles cases where IE balks (such as removing a property on window) - try { - this[ name ] = undefined; - delete this[ name ]; - } catch( e ) {} - }); - }, - - addClass: function( value ) { - var classNames, i, l, elem, - setClass, c, cl; - - if ( jQuery.isFunction( value ) ) { - return this.each(function( j ) { - jQuery( this ).addClass( value.call(this, j, this.className) ); - }); - } - - if ( value && typeof value === "string" ) { - classNames = value.split( rspace ); - - for ( i = 0, l = this.length; i < l; i++ ) { - elem = this[ i ]; - - if ( elem.nodeType === 1 ) { - if ( !elem.className && classNames.length === 1 ) { - elem.className = value; - - } else { - setClass = " " + elem.className + " "; - - for ( c = 0, cl = classNames.length; c < cl; c++ ) { - if ( !~setClass.indexOf( " " + classNames[ c ] + " " ) ) { - setClass += classNames[ c ] + " "; - } - } - elem.className = jQuery.trim( setClass ); - } - } - } - } - - return this; - }, - - removeClass: function( value ) { - var classNames, i, l, elem, className, c, cl; - - if ( jQuery.isFunction( value ) ) { - return this.each(function( j ) { - jQuery( this ).removeClass( value.call(this, j, this.className) ); - }); - } - - if ( (value && typeof value === "string") || value === undefined ) { - classNames = ( value || "" ).split( rspace ); - - for ( i = 0, l = this.length; i < l; i++ ) { - elem = this[ i ]; - - if ( elem.nodeType === 1 && elem.className ) { - if ( value ) { - className = (" " + elem.className + " ").replace( rclass, " " ); - for ( c = 0, cl = classNames.length; c < cl; c++ ) { - className = className.replace(" " + classNames[ c ] + " ", " "); - } - elem.className = jQuery.trim( className ); - - } else { - elem.className = ""; - } - } - } - } - - return this; - }, - - toggleClass: function( value, stateVal ) { - var type = typeof value, - isBool = typeof stateVal === "boolean"; - - if ( jQuery.isFunction( value ) ) { - return this.each(function( i ) { - jQuery( this ).toggleClass( value.call(this, i, this.className, stateVal), stateVal ); - }); - } - - return this.each(function() { - if ( type === "string" ) { - // toggle individual class names - var className, - i = 0, - self = jQuery( this ), - state = stateVal, - classNames = value.split( rspace ); - - while ( (className = classNames[ i++ ]) ) { - // check each className given, space seperated list - state = isBool ? state : !self.hasClass( className ); - self[ state ? "addClass" : "removeClass" ]( className ); - } - - } else if ( type === "undefined" || type === "boolean" ) { - if ( this.className ) { - // store className if set - jQuery._data( this, "__className__", this.className ); - } - - // toggle whole className - this.className = this.className || value === false ? "" : jQuery._data( this, "__className__" ) || ""; - } - }); - }, - - hasClass: function( selector ) { - var className = " " + selector + " ", - i = 0, - l = this.length; - for ( ; i < l; i++ ) { - if ( this[i].nodeType === 1 && (" " + this[i].className + " ").replace(rclass, " ").indexOf( className ) > -1 ) { - return true; - } - } - - return false; - }, - - val: function( value ) { - var hooks, ret, isFunction, - elem = this[0]; - - if ( !arguments.length ) { - if ( elem ) { - hooks = jQuery.valHooks[ elem.type ] || jQuery.valHooks[ elem.nodeName.toLowerCase() ]; - - if ( hooks && "get" in hooks && (ret = hooks.get( elem, "value" )) !== undefined ) { - return ret; - } - - ret = elem.value; - - return typeof ret === "string" ? - // handle most common string cases - ret.replace(rreturn, "") : - // handle cases where value is null/undef or number - ret == null ? "" : ret; - } - - return; - } - - isFunction = jQuery.isFunction( value ); - - return this.each(function( i ) { - var self = jQuery(this), val; - - if ( this.nodeType !== 1 ) { - return; - } - - if ( isFunction ) { - val = value.call( this, i, self.val() ); - } else { - val = value; - } - - // Treat null/undefined as ""; convert numbers to string - if ( val == null ) { - val = ""; - } else if ( typeof val === "number" ) { - val += ""; - } else if ( jQuery.isArray( val ) ) { - val = jQuery.map(val, function ( value ) { - return value == null ? "" : value + ""; - }); - } - - hooks = jQuery.valHooks[ this.type ] || jQuery.valHooks[ this.nodeName.toLowerCase() ]; - - // If set returns undefined, fall back to normal setting - if ( !hooks || !("set" in hooks) || hooks.set( this, val, "value" ) === undefined ) { - this.value = val; - } - }); - } -}); - -jQuery.extend({ - valHooks: { - option: { - get: function( elem ) { - // attributes.value is undefined in Blackberry 4.7 but - // uses .value. See #6932 - var val = elem.attributes.value; - return !val || val.specified ? elem.value : elem.text; - } - }, - select: { - get: function( elem ) { - var value, i, max, option, - index = elem.selectedIndex, - values = [], - options = elem.options, - one = elem.type === "select-one"; - - // Nothing was selected - if ( index < 0 ) { - return null; - } - - // Loop through all the selected options - i = one ? index : 0; - max = one ? index + 1 : options.length; - for ( ; i < max; i++ ) { - option = options[ i ]; - - // Don't return options that are disabled or in a disabled optgroup - if ( option.selected && (jQuery.support.optDisabled ? !option.disabled : option.getAttribute("disabled") === null) && - (!option.parentNode.disabled || !jQuery.nodeName( option.parentNode, "optgroup" )) ) { - - // Get the specific value for the option - value = jQuery( option ).val(); - - // We don't need an array for one selects - if ( one ) { - return value; - } - - // Multi-Selects return an array - values.push( value ); - } - } - - // Fixes Bug #2551 -- select.val() broken in IE after form.reset() - if ( one && !values.length && options.length ) { - return jQuery( options[ index ] ).val(); - } - - return values; - }, - - set: function( elem, value ) { - var values = jQuery.makeArray( value ); - - jQuery(elem).find("option").each(function() { - this.selected = jQuery.inArray( jQuery(this).val(), values ) >= 0; - }); - - if ( !values.length ) { - elem.selectedIndex = -1; - } - return values; - } - } - }, - - attrFn: { - val: true, - css: true, - html: true, - text: true, - data: true, - width: true, - height: true, - offset: true - }, - - attr: function( elem, name, value, pass ) { - var ret, hooks, notxml, - nType = elem.nodeType; - - // don't get/set attributes on text, comment and attribute nodes - if ( !elem || nType === 3 || nType === 8 || nType === 2 ) { - return; - } - - if ( pass && name in jQuery.attrFn ) { - return jQuery( elem )[ name ]( value ); - } - - // Fallback to prop when attributes are not supported - if ( typeof elem.getAttribute === "undefined" ) { - return jQuery.prop( elem, name, value ); - } - - notxml = nType !== 1 || !jQuery.isXMLDoc( elem ); - - // All attributes are lowercase - // Grab necessary hook if one is defined - if ( notxml ) { - name = name.toLowerCase(); - hooks = jQuery.attrHooks[ name ] || ( rboolean.test( name ) ? boolHook : nodeHook ); - } - - if ( value !== undefined ) { - - if ( value === null ) { - jQuery.removeAttr( elem, name ); - return; - - } else if ( hooks && "set" in hooks && notxml && (ret = hooks.set( elem, value, name )) !== undefined ) { - return ret; - - } else { - elem.setAttribute( name, "" + value ); - return value; - } - - } else if ( hooks && "get" in hooks && notxml && (ret = hooks.get( elem, name )) !== null ) { - return ret; - - } else { - - ret = elem.getAttribute( name ); - - // Non-existent attributes return null, we normalize to undefined - return ret === null ? - undefined : - ret; - } - }, - - removeAttr: function( elem, value ) { - var propName, attrNames, name, l, isBool, - i = 0; - - if ( value && elem.nodeType === 1 ) { - attrNames = value.toLowerCase().split( rspace ); - l = attrNames.length; - - for ( ; i < l; i++ ) { - name = attrNames[ i ]; - - if ( name ) { - propName = jQuery.propFix[ name ] || name; - isBool = rboolean.test( name ); - - // See #9699 for explanation of this approach (setting first, then removal) - // Do not do this for boolean attributes (see #10870) - if ( !isBool ) { - jQuery.attr( elem, name, "" ); - } - elem.removeAttribute( getSetAttribute ? name : propName ); - - // Set corresponding property to false for boolean attributes - if ( isBool && propName in elem ) { - elem[ propName ] = false; - } - } - } - } - }, - - attrHooks: { - type: { - set: function( elem, value ) { - // We can't allow the type property to be changed (since it causes problems in IE) - if ( rtype.test( elem.nodeName ) && elem.parentNode ) { - jQuery.error( "type property can't be changed" ); - } else if ( !jQuery.support.radioValue && value === "radio" && jQuery.nodeName(elem, "input") ) { - // Setting the type on a radio button after the value resets the value in IE6-9 - // Reset value to it's default in case type is set after value - // This is for element creation - var val = elem.value; - elem.setAttribute( "type", value ); - if ( val ) { - elem.value = val; - } - return value; - } - } - }, - // Use the value property for back compat - // Use the nodeHook for button elements in IE6/7 (#1954) - value: { - get: function( elem, name ) { - if ( nodeHook && jQuery.nodeName( elem, "button" ) ) { - return nodeHook.get( elem, name ); - } - return name in elem ? - elem.value : - null; - }, - set: function( elem, value, name ) { - if ( nodeHook && jQuery.nodeName( elem, "button" ) ) { - return nodeHook.set( elem, value, name ); - } - // Does not return so that setAttribute is also used - elem.value = value; - } - } - }, - - propFix: { - tabindex: "tabIndex", - readonly: "readOnly", - "for": "htmlFor", - "class": "className", - maxlength: "maxLength", - cellspacing: "cellSpacing", - cellpadding: "cellPadding", - rowspan: "rowSpan", - colspan: "colSpan", - usemap: "useMap", - frameborder: "frameBorder", - contenteditable: "contentEditable" - }, - - prop: function( elem, name, value ) { - var ret, hooks, notxml, - nType = elem.nodeType; - - // don't get/set properties on text, comment and attribute nodes - if ( !elem || nType === 3 || nType === 8 || nType === 2 ) { - return; - } - - notxml = nType !== 1 || !jQuery.isXMLDoc( elem ); - - if ( notxml ) { - // Fix name and attach hooks - name = jQuery.propFix[ name ] || name; - hooks = jQuery.propHooks[ name ]; - } - - if ( value !== undefined ) { - if ( hooks && "set" in hooks && (ret = hooks.set( elem, value, name )) !== undefined ) { - return ret; - - } else { - return ( elem[ name ] = value ); - } - - } else { - if ( hooks && "get" in hooks && (ret = hooks.get( elem, name )) !== null ) { - return ret; - - } else { - return elem[ name ]; - } - } - }, - - propHooks: { - tabIndex: { - get: function( elem ) { - // elem.tabIndex doesn't always return the correct value when it hasn't been explicitly set - // http://fluidproject.org/blog/2008/01/09/getting-setting-and-removing-tabindex-values-with-javascript/ - var attributeNode = elem.getAttributeNode("tabindex"); - - return attributeNode && attributeNode.specified ? - parseInt( attributeNode.value, 10 ) : - rfocusable.test( elem.nodeName ) || rclickable.test( elem.nodeName ) && elem.href ? - 0 : - undefined; - } - } - } -}); - -// Add the tabIndex propHook to attrHooks for back-compat (different case is intentional) -jQuery.attrHooks.tabindex = jQuery.propHooks.tabIndex; - -// Hook for boolean attributes -boolHook = { - get: function( elem, name ) { - // Align boolean attributes with corresponding properties - // Fall back to attribute presence where some booleans are not supported - var attrNode, - property = jQuery.prop( elem, name ); - return property === true || typeof property !== "boolean" && ( attrNode = elem.getAttributeNode(name) ) && attrNode.nodeValue !== false ? - name.toLowerCase() : - undefined; - }, - set: function( elem, value, name ) { - var propName; - if ( value === false ) { - // Remove boolean attributes when set to false - jQuery.removeAttr( elem, name ); - } else { - // value is true since we know at this point it's type boolean and not false - // Set boolean attributes to the same name and set the DOM property - propName = jQuery.propFix[ name ] || name; - if ( propName in elem ) { - // Only set the IDL specifically if it already exists on the element - elem[ propName ] = true; - } - - elem.setAttribute( name, name.toLowerCase() ); - } - return name; - } -}; - -// IE6/7 do not support getting/setting some attributes with get/setAttribute -if ( !getSetAttribute ) { - - fixSpecified = { - name: true, - id: true, - coords: true - }; - - // Use this for any attribute in IE6/7 - // This fixes almost every IE6/7 issue - nodeHook = jQuery.valHooks.button = { - get: function( elem, name ) { - var ret; - ret = elem.getAttributeNode( name ); - return ret && ( fixSpecified[ name ] ? ret.nodeValue !== "" : ret.specified ) ? - ret.nodeValue : - undefined; - }, - set: function( elem, value, name ) { - // Set the existing or create a new attribute node - var ret = elem.getAttributeNode( name ); - if ( !ret ) { - ret = document.createAttribute( name ); - elem.setAttributeNode( ret ); - } - return ( ret.nodeValue = value + "" ); - } - }; - - // Apply the nodeHook to tabindex - jQuery.attrHooks.tabindex.set = nodeHook.set; - - // Set width and height to auto instead of 0 on empty string( Bug #8150 ) - // This is for removals - jQuery.each([ "width", "height" ], function( i, name ) { - jQuery.attrHooks[ name ] = jQuery.extend( jQuery.attrHooks[ name ], { - set: function( elem, value ) { - if ( value === "" ) { - elem.setAttribute( name, "auto" ); - return value; - } - } - }); - }); - - // Set contenteditable to false on removals(#10429) - // Setting to empty string throws an error as an invalid value - jQuery.attrHooks.contenteditable = { - get: nodeHook.get, - set: function( elem, value, name ) { - if ( value === "" ) { - value = "false"; - } - nodeHook.set( elem, value, name ); - } - }; -} - - -// Some attributes require a special call on IE -if ( !jQuery.support.hrefNormalized ) { - jQuery.each([ "href", "src", "width", "height" ], function( i, name ) { - jQuery.attrHooks[ name ] = jQuery.extend( jQuery.attrHooks[ name ], { - get: function( elem ) { - var ret = elem.getAttribute( name, 2 ); - return ret === null ? undefined : ret; - } - }); - }); -} - -if ( !jQuery.support.style ) { - jQuery.attrHooks.style = { - get: function( elem ) { - // Return undefined in the case of empty string - // Normalize to lowercase since IE uppercases css property names - return elem.style.cssText.toLowerCase() || undefined; - }, - set: function( elem, value ) { - return ( elem.style.cssText = "" + value ); - } - }; -} - -// Safari mis-reports the default selected property of an option -// Accessing the parent's selectedIndex property fixes it -if ( !jQuery.support.optSelected ) { - jQuery.propHooks.selected = jQuery.extend( jQuery.propHooks.selected, { - get: function( elem ) { - var parent = elem.parentNode; - - if ( parent ) { - parent.selectedIndex; - - // Make sure that it also works with optgroups, see #5701 - if ( parent.parentNode ) { - parent.parentNode.selectedIndex; - } - } - return null; - } - }); -} - -// IE6/7 call enctype encoding -if ( !jQuery.support.enctype ) { - jQuery.propFix.enctype = "encoding"; -} - -// Radios and checkboxes getter/setter -if ( !jQuery.support.checkOn ) { - jQuery.each([ "radio", "checkbox" ], function() { - jQuery.valHooks[ this ] = { - get: function( elem ) { - // Handle the case where in Webkit "" is returned instead of "on" if a value isn't specified - return elem.getAttribute("value") === null ? "on" : elem.value; - } - }; - }); -} -jQuery.each([ "radio", "checkbox" ], function() { - jQuery.valHooks[ this ] = jQuery.extend( jQuery.valHooks[ this ], { - set: function( elem, value ) { - if ( jQuery.isArray( value ) ) { - return ( elem.checked = jQuery.inArray( jQuery(elem).val(), value ) >= 0 ); - } - } - }); -}); - - - - -var rformElems = /^(?:textarea|input|select)$/i, - rtypenamespace = /^([^\.]*)?(?:\.(.+))?$/, - rhoverHack = /(?:^|\s)hover(\.\S+)?\b/, - rkeyEvent = /^key/, - rmouseEvent = /^(?:mouse|contextmenu)|click/, - rfocusMorph = /^(?:focusinfocus|focusoutblur)$/, - rquickIs = /^(\w*)(?:#([\w\-]+))?(?:\.([\w\-]+))?$/, - quickParse = function( selector ) { - var quick = rquickIs.exec( selector ); - if ( quick ) { - // 0 1 2 3 - // [ _, tag, id, class ] - quick[1] = ( quick[1] || "" ).toLowerCase(); - quick[3] = quick[3] && new RegExp( "(?:^|\\s)" + quick[3] + "(?:\\s|$)" ); - } - return quick; - }, - quickIs = function( elem, m ) { - var attrs = elem.attributes || {}; - return ( - (!m[1] || elem.nodeName.toLowerCase() === m[1]) && - (!m[2] || (attrs.id || {}).value === m[2]) && - (!m[3] || m[3].test( (attrs[ "class" ] || {}).value )) - ); - }, - hoverHack = function( events ) { - return jQuery.event.special.hover ? events : events.replace( rhoverHack, "mouseenter$1 mouseleave$1" ); - }; - -/* - * Helper functions for managing events -- not part of the public interface. - * Props to Dean Edwards' addEvent library for many of the ideas. - */ -jQuery.event = { - - add: function( elem, types, handler, data, selector ) { - - var elemData, eventHandle, events, - t, tns, type, namespaces, handleObj, - handleObjIn, quick, handlers, special; - - // Don't attach events to noData or text/comment nodes (allow plain objects tho) - if ( elem.nodeType === 3 || elem.nodeType === 8 || !types || !handler || !(elemData = jQuery._data( elem )) ) { - return; - } - - // Caller can pass in an object of custom data in lieu of the handler - if ( handler.handler ) { - handleObjIn = handler; - handler = handleObjIn.handler; - selector = handleObjIn.selector; - } - - // Make sure that the handler has a unique ID, used to find/remove it later - if ( !handler.guid ) { - handler.guid = jQuery.guid++; - } - - // Init the element's event structure and main handler, if this is the first - events = elemData.events; - if ( !events ) { - elemData.events = events = {}; - } - eventHandle = elemData.handle; - if ( !eventHandle ) { - elemData.handle = eventHandle = function( e ) { - // Discard the second event of a jQuery.event.trigger() and - // when an event is called after a page has unloaded - return typeof jQuery !== "undefined" && (!e || jQuery.event.triggered !== e.type) ? - jQuery.event.dispatch.apply( eventHandle.elem, arguments ) : - undefined; - }; - // Add elem as a property of the handle fn to prevent a memory leak with IE non-native events - eventHandle.elem = elem; - } - - // Handle multiple events separated by a space - // jQuery(...).bind("mouseover mouseout", fn); - types = jQuery.trim( hoverHack(types) ).split( " " ); - for ( t = 0; t < types.length; t++ ) { - - tns = rtypenamespace.exec( types[t] ) || []; - type = tns[1]; - namespaces = ( tns[2] || "" ).split( "." ).sort(); - - // If event changes its type, use the special event handlers for the changed type - special = jQuery.event.special[ type ] || {}; - - // If selector defined, determine special event api type, otherwise given type - type = ( selector ? special.delegateType : special.bindType ) || type; - - // Update special based on newly reset type - special = jQuery.event.special[ type ] || {}; - - // handleObj is passed to all event handlers - handleObj = jQuery.extend({ - type: type, - origType: tns[1], - data: data, - handler: handler, - guid: handler.guid, - selector: selector, - quick: selector && quickParse( selector ), - namespace: namespaces.join(".") - }, handleObjIn ); - - // Init the event handler queue if we're the first - handlers = events[ type ]; - if ( !handlers ) { - handlers = events[ type ] = []; - handlers.delegateCount = 0; - - // Only use addEventListener/attachEvent if the special events handler returns false - if ( !special.setup || special.setup.call( elem, data, namespaces, eventHandle ) === false ) { - // Bind the global event handler to the element - if ( elem.addEventListener ) { - elem.addEventListener( type, eventHandle, false ); - - } else if ( elem.attachEvent ) { - elem.attachEvent( "on" + type, eventHandle ); - } - } - } - - if ( special.add ) { - special.add.call( elem, handleObj ); - - if ( !handleObj.handler.guid ) { - handleObj.handler.guid = handler.guid; - } - } - - // Add to the element's handler list, delegates in front - if ( selector ) { - handlers.splice( handlers.delegateCount++, 0, handleObj ); - } else { - handlers.push( handleObj ); - } - - // Keep track of which events have ever been used, for event optimization - jQuery.event.global[ type ] = true; - } - - // Nullify elem to prevent memory leaks in IE - elem = null; - }, - - global: {}, - - // Detach an event or set of events from an element - remove: function( elem, types, handler, selector, mappedTypes ) { - - var elemData = jQuery.hasData( elem ) && jQuery._data( elem ), - t, tns, type, origType, namespaces, origCount, - j, events, special, handle, eventType, handleObj; - - if ( !elemData || !(events = elemData.events) ) { - return; - } - - // Once for each type.namespace in types; type may be omitted - types = jQuery.trim( hoverHack( types || "" ) ).split(" "); - for ( t = 0; t < types.length; t++ ) { - tns = rtypenamespace.exec( types[t] ) || []; - type = origType = tns[1]; - namespaces = tns[2]; - - // Unbind all events (on this namespace, if provided) for the element - if ( !type ) { - for ( type in events ) { - jQuery.event.remove( elem, type + types[ t ], handler, selector, true ); - } - continue; - } - - special = jQuery.event.special[ type ] || {}; - type = ( selector? special.delegateType : special.bindType ) || type; - eventType = events[ type ] || []; - origCount = eventType.length; - namespaces = namespaces ? new RegExp("(^|\\.)" + namespaces.split(".").sort().join("\\.(?:.*\\.)?") + "(\\.|$)") : null; - - // Remove matching events - for ( j = 0; j < eventType.length; j++ ) { - handleObj = eventType[ j ]; - - if ( ( mappedTypes || origType === handleObj.origType ) && - ( !handler || handler.guid === handleObj.guid ) && - ( !namespaces || namespaces.test( handleObj.namespace ) ) && - ( !selector || selector === handleObj.selector || selector === "**" && handleObj.selector ) ) { - eventType.splice( j--, 1 ); - - if ( handleObj.selector ) { - eventType.delegateCount--; - } - if ( special.remove ) { - special.remove.call( elem, handleObj ); - } - } - } - - // Remove generic event handler if we removed something and no more handlers exist - // (avoids potential for endless recursion during removal of special event handlers) - if ( eventType.length === 0 && origCount !== eventType.length ) { - if ( !special.teardown || special.teardown.call( elem, namespaces ) === false ) { - jQuery.removeEvent( elem, type, elemData.handle ); - } - - delete events[ type ]; - } - } - - // Remove the expando if it's no longer used - if ( jQuery.isEmptyObject( events ) ) { - handle = elemData.handle; - if ( handle ) { - handle.elem = null; - } - - // removeData also checks for emptiness and clears the expando if empty - // so use it instead of delete - jQuery.removeData( elem, [ "events", "handle" ], true ); - } - }, - - // Events that are safe to short-circuit if no handlers are attached. - // Native DOM events should not be added, they may have inline handlers. - customEvent: { - "getData": true, - "setData": true, - "changeData": true - }, - - trigger: function( event, data, elem, onlyHandlers ) { - // Don't do events on text and comment nodes - if ( elem && (elem.nodeType === 3 || elem.nodeType === 8) ) { - return; - } - - // Event object or event type - var type = event.type || event, - namespaces = [], - cache, exclusive, i, cur, old, ontype, special, handle, eventPath, bubbleType; - - // focus/blur morphs to focusin/out; ensure we're not firing them right now - if ( rfocusMorph.test( type + jQuery.event.triggered ) ) { - return; - } - - if ( type.indexOf( "!" ) >= 0 ) { - // Exclusive events trigger only for the exact event (no namespaces) - type = type.slice(0, -1); - exclusive = true; - } - - if ( type.indexOf( "." ) >= 0 ) { - // Namespaced trigger; create a regexp to match event type in handle() - namespaces = type.split("."); - type = namespaces.shift(); - namespaces.sort(); - } - - if ( (!elem || jQuery.event.customEvent[ type ]) && !jQuery.event.global[ type ] ) { - // No jQuery handlers for this event type, and it can't have inline handlers - return; - } - - // Caller can pass in an Event, Object, or just an event type string - event = typeof event === "object" ? - // jQuery.Event object - event[ jQuery.expando ] ? event : - // Object literal - new jQuery.Event( type, event ) : - // Just the event type (string) - new jQuery.Event( type ); - - event.type = type; - event.isTrigger = true; - event.exclusive = exclusive; - event.namespace = namespaces.join( "." ); - event.namespace_re = event.namespace? new RegExp("(^|\\.)" + namespaces.join("\\.(?:.*\\.)?") + "(\\.|$)") : null; - ontype = type.indexOf( ":" ) < 0 ? "on" + type : ""; - - // Handle a global trigger - if ( !elem ) { - - // TODO: Stop taunting the data cache; remove global events and always attach to document - cache = jQuery.cache; - for ( i in cache ) { - if ( cache[ i ].events && cache[ i ].events[ type ] ) { - jQuery.event.trigger( event, data, cache[ i ].handle.elem, true ); - } - } - return; - } - - // Clean up the event in case it is being reused - event.result = undefined; - if ( !event.target ) { - event.target = elem; - } - - // Clone any incoming data and prepend the event, creating the handler arg list - data = data != null ? jQuery.makeArray( data ) : []; - data.unshift( event ); - - // Allow special events to draw outside the lines - special = jQuery.event.special[ type ] || {}; - if ( special.trigger && special.trigger.apply( elem, data ) === false ) { - return; - } - - // Determine event propagation path in advance, per W3C events spec (#9951) - // Bubble up to document, then to window; watch for a global ownerDocument var (#9724) - eventPath = [[ elem, special.bindType || type ]]; - if ( !onlyHandlers && !special.noBubble && !jQuery.isWindow( elem ) ) { - - bubbleType = special.delegateType || type; - cur = rfocusMorph.test( bubbleType + type ) ? elem : elem.parentNode; - old = null; - for ( ; cur; cur = cur.parentNode ) { - eventPath.push([ cur, bubbleType ]); - old = cur; - } - - // Only add window if we got to document (e.g., not plain obj or detached DOM) - if ( old && old === elem.ownerDocument ) { - eventPath.push([ old.defaultView || old.parentWindow || window, bubbleType ]); - } - } - - // Fire handlers on the event path - for ( i = 0; i < eventPath.length && !event.isPropagationStopped(); i++ ) { - - cur = eventPath[i][0]; - event.type = eventPath[i][1]; - - handle = ( jQuery._data( cur, "events" ) || {} )[ event.type ] && jQuery._data( cur, "handle" ); - if ( handle ) { - handle.apply( cur, data ); - } - // Note that this is a bare JS function and not a jQuery handler - handle = ontype && cur[ ontype ]; - if ( handle && jQuery.acceptData( cur ) && handle.apply( cur, data ) === false ) { - event.preventDefault(); - } - } - event.type = type; - - // If nobody prevented the default action, do it now - if ( !onlyHandlers && !event.isDefaultPrevented() ) { - - if ( (!special._default || special._default.apply( elem.ownerDocument, data ) === false) && - !(type === "click" && jQuery.nodeName( elem, "a" )) && jQuery.acceptData( elem ) ) { - - // Call a native DOM method on the target with the same name name as the event. - // Can't use an .isFunction() check here because IE6/7 fails that test. - // Don't do default actions on window, that's where global variables be (#6170) - // IE<9 dies on focus/blur to hidden element (#1486) - if ( ontype && elem[ type ] && ((type !== "focus" && type !== "blur") || event.target.offsetWidth !== 0) && !jQuery.isWindow( elem ) ) { - - // Don't re-trigger an onFOO event when we call its FOO() method - old = elem[ ontype ]; - - if ( old ) { - elem[ ontype ] = null; - } - - // Prevent re-triggering of the same event, since we already bubbled it above - jQuery.event.triggered = type; - elem[ type ](); - jQuery.event.triggered = undefined; - - if ( old ) { - elem[ ontype ] = old; - } - } - } - } - - return event.result; - }, - - dispatch: function( event ) { - - // Make a writable jQuery.Event from the native event object - event = jQuery.event.fix( event || window.event ); - - var handlers = ( (jQuery._data( this, "events" ) || {} )[ event.type ] || []), - delegateCount = handlers.delegateCount, - args = [].slice.call( arguments, 0 ), - run_all = !event.exclusive && !event.namespace, - special = jQuery.event.special[ event.type ] || {}, - handlerQueue = [], - i, j, cur, jqcur, ret, selMatch, matched, matches, handleObj, sel, related; - - // Use the fix-ed jQuery.Event rather than the (read-only) native event - args[0] = event; - event.delegateTarget = this; - - // Call the preDispatch hook for the mapped type, and let it bail if desired - if ( special.preDispatch && special.preDispatch.call( this, event ) === false ) { - return; - } - - // Determine handlers that should run if there are delegated events - // Avoid non-left-click bubbling in Firefox (#3861) - if ( delegateCount && !(event.button && event.type === "click") ) { - - // Pregenerate a single jQuery object for reuse with .is() - jqcur = jQuery(this); - jqcur.context = this.ownerDocument || this; - - for ( cur = event.target; cur != this; cur = cur.parentNode || this ) { - - // Don't process events on disabled elements (#6911, #8165) - if ( cur.disabled !== true ) { - selMatch = {}; - matches = []; - jqcur[0] = cur; - for ( i = 0; i < delegateCount; i++ ) { - handleObj = handlers[ i ]; - sel = handleObj.selector; - - if ( selMatch[ sel ] === undefined ) { - selMatch[ sel ] = ( - handleObj.quick ? quickIs( cur, handleObj.quick ) : jqcur.is( sel ) - ); - } - if ( selMatch[ sel ] ) { - matches.push( handleObj ); - } - } - if ( matches.length ) { - handlerQueue.push({ elem: cur, matches: matches }); - } - } - } - } - - // Add the remaining (directly-bound) handlers - if ( handlers.length > delegateCount ) { - handlerQueue.push({ elem: this, matches: handlers.slice( delegateCount ) }); - } - - // Run delegates first; they may want to stop propagation beneath us - for ( i = 0; i < handlerQueue.length && !event.isPropagationStopped(); i++ ) { - matched = handlerQueue[ i ]; - event.currentTarget = matched.elem; - - for ( j = 0; j < matched.matches.length && !event.isImmediatePropagationStopped(); j++ ) { - handleObj = matched.matches[ j ]; - - // Triggered event must either 1) be non-exclusive and have no namespace, or - // 2) have namespace(s) a subset or equal to those in the bound event (both can have no namespace). - if ( run_all || (!event.namespace && !handleObj.namespace) || event.namespace_re && event.namespace_re.test( handleObj.namespace ) ) { - - event.data = handleObj.data; - event.handleObj = handleObj; - - ret = ( (jQuery.event.special[ handleObj.origType ] || {}).handle || handleObj.handler ) - .apply( matched.elem, args ); - - if ( ret !== undefined ) { - event.result = ret; - if ( ret === false ) { - event.preventDefault(); - event.stopPropagation(); - } - } - } - } - } - - // Call the postDispatch hook for the mapped type - if ( special.postDispatch ) { - special.postDispatch.call( this, event ); - } - - return event.result; - }, - - // Includes some event props shared by KeyEvent and MouseEvent - // *** attrChange attrName relatedNode srcElement are not normalized, non-W3C, deprecated, will be removed in 1.8 *** - props: "attrChange attrName relatedNode srcElement altKey bubbles cancelable ctrlKey currentTarget eventPhase metaKey relatedTarget shiftKey target timeStamp view which".split(" "), - - fixHooks: {}, - - keyHooks: { - props: "char charCode key keyCode".split(" "), - filter: function( event, original ) { - - // Add which for key events - if ( event.which == null ) { - event.which = original.charCode != null ? original.charCode : original.keyCode; - } - - return event; - } - }, - - mouseHooks: { - props: "button buttons clientX clientY fromElement offsetX offsetY pageX pageY screenX screenY toElement".split(" "), - filter: function( event, original ) { - var eventDoc, doc, body, - button = original.button, - fromElement = original.fromElement; - - // Calculate pageX/Y if missing and clientX/Y available - if ( event.pageX == null && original.clientX != null ) { - eventDoc = event.target.ownerDocument || document; - doc = eventDoc.documentElement; - body = eventDoc.body; - - event.pageX = original.clientX + ( doc && doc.scrollLeft || body && body.scrollLeft || 0 ) - ( doc && doc.clientLeft || body && body.clientLeft || 0 ); - event.pageY = original.clientY + ( doc && doc.scrollTop || body && body.scrollTop || 0 ) - ( doc && doc.clientTop || body && body.clientTop || 0 ); - } - - // Add relatedTarget, if necessary - if ( !event.relatedTarget && fromElement ) { - event.relatedTarget = fromElement === event.target ? original.toElement : fromElement; - } - - // Add which for click: 1 === left; 2 === middle; 3 === right - // Note: button is not normalized, so don't use it - if ( !event.which && button !== undefined ) { - event.which = ( button & 1 ? 1 : ( button & 2 ? 3 : ( button & 4 ? 2 : 0 ) ) ); - } - - return event; - } - }, - - fix: function( event ) { - if ( event[ jQuery.expando ] ) { - return event; - } - - // Create a writable copy of the event object and normalize some properties - var i, prop, - originalEvent = event, - fixHook = jQuery.event.fixHooks[ event.type ] || {}, - copy = fixHook.props ? this.props.concat( fixHook.props ) : this.props; - - event = jQuery.Event( originalEvent ); - - for ( i = copy.length; i; ) { - prop = copy[ --i ]; - event[ prop ] = originalEvent[ prop ]; - } - - // Fix target property, if necessary (#1925, IE 6/7/8 & Safari2) - if ( !event.target ) { - event.target = originalEvent.srcElement || document; - } - - // Target should not be a text node (#504, Safari) - if ( event.target.nodeType === 3 ) { - event.target = event.target.parentNode; - } - - // For mouse/key events; add metaKey if it's not there (#3368, IE6/7/8) - if ( event.metaKey === undefined ) { - event.metaKey = event.ctrlKey; - } - - return fixHook.filter? fixHook.filter( event, originalEvent ) : event; - }, - - special: { - ready: { - // Make sure the ready event is setup - setup: jQuery.bindReady - }, - - load: { - // Prevent triggered image.load events from bubbling to window.load - noBubble: true - }, - - focus: { - delegateType: "focusin" - }, - blur: { - delegateType: "focusout" - }, - - beforeunload: { - setup: function( data, namespaces, eventHandle ) { - // We only want to do this special case on windows - if ( jQuery.isWindow( this ) ) { - this.onbeforeunload = eventHandle; - } - }, - - teardown: function( namespaces, eventHandle ) { - if ( this.onbeforeunload === eventHandle ) { - this.onbeforeunload = null; - } - } - } - }, - - simulate: function( type, elem, event, bubble ) { - // Piggyback on a donor event to simulate a different one. - // Fake originalEvent to avoid donor's stopPropagation, but if the - // simulated event prevents default then we do the same on the donor. - var e = jQuery.extend( - new jQuery.Event(), - event, - { type: type, - isSimulated: true, - originalEvent: {} - } - ); - if ( bubble ) { - jQuery.event.trigger( e, null, elem ); - } else { - jQuery.event.dispatch.call( elem, e ); - } - if ( e.isDefaultPrevented() ) { - event.preventDefault(); - } - } -}; - -// Some plugins are using, but it's undocumented/deprecated and will be removed. -// The 1.7 special event interface should provide all the hooks needed now. -jQuery.event.handle = jQuery.event.dispatch; - -jQuery.removeEvent = document.removeEventListener ? - function( elem, type, handle ) { - if ( elem.removeEventListener ) { - elem.removeEventListener( type, handle, false ); - } - } : - function( elem, type, handle ) { - if ( elem.detachEvent ) { - elem.detachEvent( "on" + type, handle ); - } - }; - -jQuery.Event = function( src, props ) { - // Allow instantiation without the 'new' keyword - if ( !(this instanceof jQuery.Event) ) { - return new jQuery.Event( src, props ); - } - - // Event object - if ( src && src.type ) { - this.originalEvent = src; - this.type = src.type; - - // Events bubbling up the document may have been marked as prevented - // by a handler lower down the tree; reflect the correct value. - this.isDefaultPrevented = ( src.defaultPrevented || src.returnValue === false || - src.getPreventDefault && src.getPreventDefault() ) ? returnTrue : returnFalse; - - // Event type - } else { - this.type = src; - } - - // Put explicitly provided properties onto the event object - if ( props ) { - jQuery.extend( this, props ); - } - - // Create a timestamp if incoming event doesn't have one - this.timeStamp = src && src.timeStamp || jQuery.now(); - - // Mark it as fixed - this[ jQuery.expando ] = true; -}; - -function returnFalse() { - return false; -} -function returnTrue() { - return true; -} - -// jQuery.Event is based on DOM3 Events as specified by the ECMAScript Language Binding -// http://www.w3.org/TR/2003/WD-DOM-Level-3-Events-20030331/ecma-script-binding.html -jQuery.Event.prototype = { - preventDefault: function() { - this.isDefaultPrevented = returnTrue; - - var e = this.originalEvent; - if ( !e ) { - return; - } - - // if preventDefault exists run it on the original event - if ( e.preventDefault ) { - e.preventDefault(); - - // otherwise set the returnValue property of the original event to false (IE) - } else { - e.returnValue = false; - } - }, - stopPropagation: function() { - this.isPropagationStopped = returnTrue; - - var e = this.originalEvent; - if ( !e ) { - return; - } - // if stopPropagation exists run it on the original event - if ( e.stopPropagation ) { - e.stopPropagation(); - } - // otherwise set the cancelBubble property of the original event to true (IE) - e.cancelBubble = true; - }, - stopImmediatePropagation: function() { - this.isImmediatePropagationStopped = returnTrue; - this.stopPropagation(); - }, - isDefaultPrevented: returnFalse, - isPropagationStopped: returnFalse, - isImmediatePropagationStopped: returnFalse -}; - -// Create mouseenter/leave events using mouseover/out and event-time checks -jQuery.each({ - mouseenter: "mouseover", - mouseleave: "mouseout" -}, function( orig, fix ) { - jQuery.event.special[ orig ] = { - delegateType: fix, - bindType: fix, - - handle: function( event ) { - var target = this, - related = event.relatedTarget, - handleObj = event.handleObj, - selector = handleObj.selector, - ret; - - // For mousenter/leave call the handler if related is outside the target. - // NB: No relatedTarget if the mouse left/entered the browser window - if ( !related || (related !== target && !jQuery.contains( target, related )) ) { - event.type = handleObj.origType; - ret = handleObj.handler.apply( this, arguments ); - event.type = fix; - } - return ret; - } - }; -}); - -// IE submit delegation -if ( !jQuery.support.submitBubbles ) { - - jQuery.event.special.submit = { - setup: function() { - // Only need this for delegated form submit events - if ( jQuery.nodeName( this, "form" ) ) { - return false; - } - - // Lazy-add a submit handler when a descendant form may potentially be submitted - jQuery.event.add( this, "click._submit keypress._submit", function( e ) { - // Node name check avoids a VML-related crash in IE (#9807) - var elem = e.target, - form = jQuery.nodeName( elem, "input" ) || jQuery.nodeName( elem, "button" ) ? elem.form : undefined; - if ( form && !form._submit_attached ) { - jQuery.event.add( form, "submit._submit", function( event ) { - event._submit_bubble = true; - }); - form._submit_attached = true; - } - }); - // return undefined since we don't need an event listener - }, - - postDispatch: function( event ) { - // If form was submitted by the user, bubble the event up the tree - if ( event._submit_bubble ) { - delete event._submit_bubble; - if ( this.parentNode && !event.isTrigger ) { - jQuery.event.simulate( "submit", this.parentNode, event, true ); - } - } - }, - - teardown: function() { - // Only need this for delegated form submit events - if ( jQuery.nodeName( this, "form" ) ) { - return false; - } - - // Remove delegated handlers; cleanData eventually reaps submit handlers attached above - jQuery.event.remove( this, "._submit" ); - } - }; -} - -// IE change delegation and checkbox/radio fix -if ( !jQuery.support.changeBubbles ) { - - jQuery.event.special.change = { - - setup: function() { - - if ( rformElems.test( this.nodeName ) ) { - // IE doesn't fire change on a check/radio until blur; trigger it on click - // after a propertychange. Eat the blur-change in special.change.handle. - // This still fires onchange a second time for check/radio after blur. - if ( this.type === "checkbox" || this.type === "radio" ) { - jQuery.event.add( this, "propertychange._change", function( event ) { - if ( event.originalEvent.propertyName === "checked" ) { - this._just_changed = true; - } - }); - jQuery.event.add( this, "click._change", function( event ) { - if ( this._just_changed && !event.isTrigger ) { - this._just_changed = false; - jQuery.event.simulate( "change", this, event, true ); - } - }); - } - return false; - } - // Delegated event; lazy-add a change handler on descendant inputs - jQuery.event.add( this, "beforeactivate._change", function( e ) { - var elem = e.target; - - if ( rformElems.test( elem.nodeName ) && !elem._change_attached ) { - jQuery.event.add( elem, "change._change", function( event ) { - if ( this.parentNode && !event.isSimulated && !event.isTrigger ) { - jQuery.event.simulate( "change", this.parentNode, event, true ); - } - }); - elem._change_attached = true; - } - }); - }, - - handle: function( event ) { - var elem = event.target; - - // Swallow native change events from checkbox/radio, we already triggered them above - if ( this !== elem || event.isSimulated || event.isTrigger || (elem.type !== "radio" && elem.type !== "checkbox") ) { - return event.handleObj.handler.apply( this, arguments ); - } - }, - - teardown: function() { - jQuery.event.remove( this, "._change" ); - - return rformElems.test( this.nodeName ); - } - }; -} - -// Create "bubbling" focus and blur events -if ( !jQuery.support.focusinBubbles ) { - jQuery.each({ focus: "focusin", blur: "focusout" }, function( orig, fix ) { - - // Attach a single capturing handler while someone wants focusin/focusout - var attaches = 0, - handler = function( event ) { - jQuery.event.simulate( fix, event.target, jQuery.event.fix( event ), true ); - }; - - jQuery.event.special[ fix ] = { - setup: function() { - if ( attaches++ === 0 ) { - document.addEventListener( orig, handler, true ); - } - }, - teardown: function() { - if ( --attaches === 0 ) { - document.removeEventListener( orig, handler, true ); - } - } - }; - }); -} - -jQuery.fn.extend({ - - on: function( types, selector, data, fn, /*INTERNAL*/ one ) { - var origFn, type; - - // Types can be a map of types/handlers - if ( typeof types === "object" ) { - // ( types-Object, selector, data ) - if ( typeof selector !== "string" ) { // && selector != null - // ( types-Object, data ) - data = data || selector; - selector = undefined; - } - for ( type in types ) { - this.on( type, selector, data, types[ type ], one ); - } - return this; - } - - if ( data == null && fn == null ) { - // ( types, fn ) - fn = selector; - data = selector = undefined; - } else if ( fn == null ) { - if ( typeof selector === "string" ) { - // ( types, selector, fn ) - fn = data; - data = undefined; - } else { - // ( types, data, fn ) - fn = data; - data = selector; - selector = undefined; - } - } - if ( fn === false ) { - fn = returnFalse; - } else if ( !fn ) { - return this; - } - - if ( one === 1 ) { - origFn = fn; - fn = function( event ) { - // Can use an empty set, since event contains the info - jQuery().off( event ); - return origFn.apply( this, arguments ); - }; - // Use same guid so caller can remove using origFn - fn.guid = origFn.guid || ( origFn.guid = jQuery.guid++ ); - } - return this.each( function() { - jQuery.event.add( this, types, fn, data, selector ); - }); - }, - one: function( types, selector, data, fn ) { - return this.on( types, selector, data, fn, 1 ); - }, - off: function( types, selector, fn ) { - if ( types && types.preventDefault && types.handleObj ) { - // ( event ) dispatched jQuery.Event - var handleObj = types.handleObj; - jQuery( types.delegateTarget ).off( - handleObj.namespace ? handleObj.origType + "." + handleObj.namespace : handleObj.origType, - handleObj.selector, - handleObj.handler - ); - return this; - } - if ( typeof types === "object" ) { - // ( types-object [, selector] ) - for ( var type in types ) { - this.off( type, selector, types[ type ] ); - } - return this; - } - if ( selector === false || typeof selector === "function" ) { - // ( types [, fn] ) - fn = selector; - selector = undefined; - } - if ( fn === false ) { - fn = returnFalse; - } - return this.each(function() { - jQuery.event.remove( this, types, fn, selector ); - }); - }, - - bind: function( types, data, fn ) { - return this.on( types, null, data, fn ); - }, - unbind: function( types, fn ) { - return this.off( types, null, fn ); - }, - - live: function( types, data, fn ) { - jQuery( this.context ).on( types, this.selector, data, fn ); - return this; - }, - die: function( types, fn ) { - jQuery( this.context ).off( types, this.selector || "**", fn ); - return this; - }, - - delegate: function( selector, types, data, fn ) { - return this.on( types, selector, data, fn ); - }, - undelegate: function( selector, types, fn ) { - // ( namespace ) or ( selector, types [, fn] ) - return arguments.length == 1? this.off( selector, "**" ) : this.off( types, selector, fn ); - }, - - trigger: function( type, data ) { - return this.each(function() { - jQuery.event.trigger( type, data, this ); - }); - }, - triggerHandler: function( type, data ) { - if ( this[0] ) { - return jQuery.event.trigger( type, data, this[0], true ); - } - }, - - toggle: function( fn ) { - // Save reference to arguments for access in closure - var args = arguments, - guid = fn.guid || jQuery.guid++, - i = 0, - toggler = function( event ) { - // Figure out which function to execute - var lastToggle = ( jQuery._data( this, "lastToggle" + fn.guid ) || 0 ) % i; - jQuery._data( this, "lastToggle" + fn.guid, lastToggle + 1 ); - - // Make sure that clicks stop - event.preventDefault(); - - // and execute the function - return args[ lastToggle ].apply( this, arguments ) || false; - }; - - // link all the functions, so any of them can unbind this click handler - toggler.guid = guid; - while ( i < args.length ) { - args[ i++ ].guid = guid; - } - - return this.click( toggler ); - }, - - hover: function( fnOver, fnOut ) { - return this.mouseenter( fnOver ).mouseleave( fnOut || fnOver ); - } -}); - -jQuery.each( ("blur focus focusin focusout load resize scroll unload click dblclick " + - "mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave " + - "change select submit keydown keypress keyup error contextmenu").split(" "), function( i, name ) { - - // Handle event binding - jQuery.fn[ name ] = function( data, fn ) { - if ( fn == null ) { - fn = data; - data = null; - } - - return arguments.length > 0 ? - this.on( name, null, data, fn ) : - this.trigger( name ); - }; - - if ( jQuery.attrFn ) { - jQuery.attrFn[ name ] = true; - } - - if ( rkeyEvent.test( name ) ) { - jQuery.event.fixHooks[ name ] = jQuery.event.keyHooks; - } - - if ( rmouseEvent.test( name ) ) { - jQuery.event.fixHooks[ name ] = jQuery.event.mouseHooks; - } -}); - - - -/*! - * Sizzle CSS Selector Engine - * Copyright 2011, The Dojo Foundation - * Released under the MIT, BSD, and GPL Licenses. - * More information: http://sizzlejs.com/ - */ -(function(){ - -var chunker = /((?:\((?:\([^()]+\)|[^()]+)+\)|\[(?:\[[^\[\]]*\]|['"][^'"]*['"]|[^\[\]'"]+)+\]|\\.|[^ >+~,(\[\\]+)+|[>+~])(\s*,\s*)?((?:.|\r|\n)*)/g, - expando = "sizcache" + (Math.random() + '').replace('.', ''), - done = 0, - toString = Object.prototype.toString, - hasDuplicate = false, - baseHasDuplicate = true, - rBackslash = /\\/g, - rReturn = /\r\n/g, - rNonWord = /\W/; - -// Here we check if the JavaScript engine is using some sort of -// optimization where it does not always call our comparision -// function. If that is the case, discard the hasDuplicate value. -// Thus far that includes Google Chrome. -[0, 0].sort(function() { - baseHasDuplicate = false; - return 0; -}); - -var Sizzle = function( selector, context, results, seed ) { - results = results || []; - context = context || document; - - var origContext = context; - - if ( context.nodeType !== 1 && context.nodeType !== 9 ) { - return []; - } - - if ( !selector || typeof selector !== "string" ) { - return results; - } - - var m, set, checkSet, extra, ret, cur, pop, i, - prune = true, - contextXML = Sizzle.isXML( context ), - parts = [], - soFar = selector; - - // Reset the position of the chunker regexp (start from head) - do { - chunker.exec( "" ); - m = chunker.exec( soFar ); - - if ( m ) { - soFar = m[3]; - - parts.push( m[1] ); - - if ( m[2] ) { - extra = m[3]; - break; - } - } - } while ( m ); - - if ( parts.length > 1 && origPOS.exec( selector ) ) { - - if ( parts.length === 2 && Expr.relative[ parts[0] ] ) { - set = posProcess( parts[0] + parts[1], context, seed ); - - } else { - set = Expr.relative[ parts[0] ] ? - [ context ] : - Sizzle( parts.shift(), context ); - - while ( parts.length ) { - selector = parts.shift(); - - if ( Expr.relative[ selector ] ) { - selector += parts.shift(); - } - - set = posProcess( selector, set, seed ); - } - } - - } else { - // Take a shortcut and set the context if the root selector is an ID - // (but not if it'll be faster if the inner selector is an ID) - if ( !seed && parts.length > 1 && context.nodeType === 9 && !contextXML && - Expr.match.ID.test(parts[0]) && !Expr.match.ID.test(parts[parts.length - 1]) ) { - - ret = Sizzle.find( parts.shift(), context, contextXML ); - context = ret.expr ? - Sizzle.filter( ret.expr, ret.set )[0] : - ret.set[0]; - } - - if ( context ) { - ret = seed ? - { expr: parts.pop(), set: makeArray(seed) } : - Sizzle.find( parts.pop(), parts.length === 1 && (parts[0] === "~" || parts[0] === "+") && context.parentNode ? context.parentNode : context, contextXML ); - - set = ret.expr ? - Sizzle.filter( ret.expr, ret.set ) : - ret.set; - - if ( parts.length > 0 ) { - checkSet = makeArray( set ); - - } else { - prune = false; - } - - while ( parts.length ) { - cur = parts.pop(); - pop = cur; - - if ( !Expr.relative[ cur ] ) { - cur = ""; - } else { - pop = parts.pop(); - } - - if ( pop == null ) { - pop = context; - } - - Expr.relative[ cur ]( checkSet, pop, contextXML ); - } - - } else { - checkSet = parts = []; - } - } - - if ( !checkSet ) { - checkSet = set; - } - - if ( !checkSet ) { - Sizzle.error( cur || selector ); - } - - if ( toString.call(checkSet) === "[object Array]" ) { - if ( !prune ) { - results.push.apply( results, checkSet ); - - } else if ( context && context.nodeType === 1 ) { - for ( i = 0; checkSet[i] != null; i++ ) { - if ( checkSet[i] && (checkSet[i] === true || checkSet[i].nodeType === 1 && Sizzle.contains(context, checkSet[i])) ) { - results.push( set[i] ); - } - } - - } else { - for ( i = 0; checkSet[i] != null; i++ ) { - if ( checkSet[i] && checkSet[i].nodeType === 1 ) { - results.push( set[i] ); - } - } - } - - } else { - makeArray( checkSet, results ); - } - - if ( extra ) { - Sizzle( extra, origContext, results, seed ); - Sizzle.uniqueSort( results ); - } - - return results; -}; - -Sizzle.uniqueSort = function( results ) { - if ( sortOrder ) { - hasDuplicate = baseHasDuplicate; - results.sort( sortOrder ); - - if ( hasDuplicate ) { - for ( var i = 1; i < results.length; i++ ) { - if ( results[i] === results[ i - 1 ] ) { - results.splice( i--, 1 ); - } - } - } - } - - return results; -}; - -Sizzle.matches = function( expr, set ) { - return Sizzle( expr, null, null, set ); -}; - -Sizzle.matchesSelector = function( node, expr ) { - return Sizzle( expr, null, null, [node] ).length > 0; -}; - -Sizzle.find = function( expr, context, isXML ) { - var set, i, len, match, type, left; - - if ( !expr ) { - return []; - } - - for ( i = 0, len = Expr.order.length; i < len; i++ ) { - type = Expr.order[i]; - - if ( (match = Expr.leftMatch[ type ].exec( expr )) ) { - left = match[1]; - match.splice( 1, 1 ); - - if ( left.substr( left.length - 1 ) !== "\\" ) { - match[1] = (match[1] || "").replace( rBackslash, "" ); - set = Expr.find[ type ]( match, context, isXML ); - - if ( set != null ) { - expr = expr.replace( Expr.match[ type ], "" ); - break; - } - } - } - } - - if ( !set ) { - set = typeof context.getElementsByTagName !== "undefined" ? - context.getElementsByTagName( "*" ) : - []; - } - - return { set: set, expr: expr }; -}; - -Sizzle.filter = function( expr, set, inplace, not ) { - var match, anyFound, - type, found, item, filter, left, - i, pass, - old = expr, - result = [], - curLoop = set, - isXMLFilter = set && set[0] && Sizzle.isXML( set[0] ); - - while ( expr && set.length ) { - for ( type in Expr.filter ) { - if ( (match = Expr.leftMatch[ type ].exec( expr )) != null && match[2] ) { - filter = Expr.filter[ type ]; - left = match[1]; - - anyFound = false; - - match.splice(1,1); - - if ( left.substr( left.length - 1 ) === "\\" ) { - continue; - } - - if ( curLoop === result ) { - result = []; - } - - if ( Expr.preFilter[ type ] ) { - match = Expr.preFilter[ type ]( match, curLoop, inplace, result, not, isXMLFilter ); - - if ( !match ) { - anyFound = found = true; - - } else if ( match === true ) { - continue; - } - } - - if ( match ) { - for ( i = 0; (item = curLoop[i]) != null; i++ ) { - if ( item ) { - found = filter( item, match, i, curLoop ); - pass = not ^ found; - - if ( inplace && found != null ) { - if ( pass ) { - anyFound = true; - - } else { - curLoop[i] = false; - } - - } else if ( pass ) { - result.push( item ); - anyFound = true; - } - } - } - } - - if ( found !== undefined ) { - if ( !inplace ) { - curLoop = result; - } - - expr = expr.replace( Expr.match[ type ], "" ); - - if ( !anyFound ) { - return []; - } - - break; - } - } - } - - // Improper expression - if ( expr === old ) { - if ( anyFound == null ) { - Sizzle.error( expr ); - - } else { - break; - } - } - - old = expr; - } - - return curLoop; -}; - -Sizzle.error = function( msg ) { - throw new Error( "Syntax error, unrecognized expression: " + msg ); -}; - -/** - * Utility function for retreiving the text value of an array of DOM nodes - * @param {Array|Element} elem - */ -var getText = Sizzle.getText = function( elem ) { - var i, node, - nodeType = elem.nodeType, - ret = ""; - - if ( nodeType ) { - if ( nodeType === 1 || nodeType === 9 || nodeType === 11 ) { - // Use textContent || innerText for elements - if ( typeof elem.textContent === 'string' ) { - return elem.textContent; - } else if ( typeof elem.innerText === 'string' ) { - // Replace IE's carriage returns - return elem.innerText.replace( rReturn, '' ); - } else { - // Traverse it's children - for ( elem = elem.firstChild; elem; elem = elem.nextSibling) { - ret += getText( elem ); - } - } - } else if ( nodeType === 3 || nodeType === 4 ) { - return elem.nodeValue; - } - } else { - - // If no nodeType, this is expected to be an array - for ( i = 0; (node = elem[i]); i++ ) { - // Do not traverse comment nodes - if ( node.nodeType !== 8 ) { - ret += getText( node ); - } - } - } - return ret; -}; - -var Expr = Sizzle.selectors = { - order: [ "ID", "NAME", "TAG" ], - - match: { - ID: /#((?:[\w\u00c0-\uFFFF\-]|\\.)+)/, - CLASS: /\.((?:[\w\u00c0-\uFFFF\-]|\\.)+)/, - NAME: /\[name=['"]*((?:[\w\u00c0-\uFFFF\-]|\\.)+)['"]*\]/, - ATTR: /\[\s*((?:[\w\u00c0-\uFFFF\-]|\\.)+)\s*(?:(\S?=)\s*(?:(['"])(.*?)\3|(#?(?:[\w\u00c0-\uFFFF\-]|\\.)*)|)|)\s*\]/, - TAG: /^((?:[\w\u00c0-\uFFFF\*\-]|\\.)+)/, - CHILD: /:(only|nth|last|first)-child(?:\(\s*(even|odd|(?:[+\-]?\d+|(?:[+\-]?\d*)?n\s*(?:[+\-]\s*\d+)?))\s*\))?/, - POS: /:(nth|eq|gt|lt|first|last|even|odd)(?:\((\d*)\))?(?=[^\-]|$)/, - PSEUDO: /:((?:[\w\u00c0-\uFFFF\-]|\\.)+)(?:\((['"]?)((?:\([^\)]+\)|[^\(\)]*)+)\2\))?/ - }, - - leftMatch: {}, - - attrMap: { - "class": "className", - "for": "htmlFor" - }, - - attrHandle: { - href: function( elem ) { - return elem.getAttribute( "href" ); - }, - type: function( elem ) { - return elem.getAttribute( "type" ); - } - }, - - relative: { - "+": function(checkSet, part){ - var isPartStr = typeof part === "string", - isTag = isPartStr && !rNonWord.test( part ), - isPartStrNotTag = isPartStr && !isTag; - - if ( isTag ) { - part = part.toLowerCase(); - } - - for ( var i = 0, l = checkSet.length, elem; i < l; i++ ) { - if ( (elem = checkSet[i]) ) { - while ( (elem = elem.previousSibling) && elem.nodeType !== 1 ) {} - - checkSet[i] = isPartStrNotTag || elem && elem.nodeName.toLowerCase() === part ? - elem || false : - elem === part; - } - } - - if ( isPartStrNotTag ) { - Sizzle.filter( part, checkSet, true ); - } - }, - - ">": function( checkSet, part ) { - var elem, - isPartStr = typeof part === "string", - i = 0, - l = checkSet.length; - - if ( isPartStr && !rNonWord.test( part ) ) { - part = part.toLowerCase(); - - for ( ; i < l; i++ ) { - elem = checkSet[i]; - - if ( elem ) { - var parent = elem.parentNode; - checkSet[i] = parent.nodeName.toLowerCase() === part ? parent : false; - } - } - - } else { - for ( ; i < l; i++ ) { - elem = checkSet[i]; - - if ( elem ) { - checkSet[i] = isPartStr ? - elem.parentNode : - elem.parentNode === part; - } - } - - if ( isPartStr ) { - Sizzle.filter( part, checkSet, true ); - } - } - }, - - "": function(checkSet, part, isXML){ - var nodeCheck, - doneName = done++, - checkFn = dirCheck; - - if ( typeof part === "string" && !rNonWord.test( part ) ) { - part = part.toLowerCase(); - nodeCheck = part; - checkFn = dirNodeCheck; - } - - checkFn( "parentNode", part, doneName, checkSet, nodeCheck, isXML ); - }, - - "~": function( checkSet, part, isXML ) { - var nodeCheck, - doneName = done++, - checkFn = dirCheck; - - if ( typeof part === "string" && !rNonWord.test( part ) ) { - part = part.toLowerCase(); - nodeCheck = part; - checkFn = dirNodeCheck; - } - - checkFn( "previousSibling", part, doneName, checkSet, nodeCheck, isXML ); - } - }, - - find: { - ID: function( match, context, isXML ) { - if ( typeof context.getElementById !== "undefined" && !isXML ) { - var m = context.getElementById(match[1]); - // Check parentNode to catch when Blackberry 4.6 returns - // nodes that are no longer in the document #6963 - return m && m.parentNode ? [m] : []; - } - }, - - NAME: function( match, context ) { - if ( typeof context.getElementsByName !== "undefined" ) { - var ret = [], - results = context.getElementsByName( match[1] ); - - for ( var i = 0, l = results.length; i < l; i++ ) { - if ( results[i].getAttribute("name") === match[1] ) { - ret.push( results[i] ); - } - } - - return ret.length === 0 ? null : ret; - } - }, - - TAG: function( match, context ) { - if ( typeof context.getElementsByTagName !== "undefined" ) { - return context.getElementsByTagName( match[1] ); - } - } - }, - preFilter: { - CLASS: function( match, curLoop, inplace, result, not, isXML ) { - match = " " + match[1].replace( rBackslash, "" ) + " "; - - if ( isXML ) { - return match; - } - - for ( var i = 0, elem; (elem = curLoop[i]) != null; i++ ) { - if ( elem ) { - if ( not ^ (elem.className && (" " + elem.className + " ").replace(/[\t\n\r]/g, " ").indexOf(match) >= 0) ) { - if ( !inplace ) { - result.push( elem ); - } - - } else if ( inplace ) { - curLoop[i] = false; - } - } - } - - return false; - }, - - ID: function( match ) { - return match[1].replace( rBackslash, "" ); - }, - - TAG: function( match, curLoop ) { - return match[1].replace( rBackslash, "" ).toLowerCase(); - }, - - CHILD: function( match ) { - if ( match[1] === "nth" ) { - if ( !match[2] ) { - Sizzle.error( match[0] ); - } - - match[2] = match[2].replace(/^\+|\s*/g, ''); - - // parse equations like 'even', 'odd', '5', '2n', '3n+2', '4n-1', '-n+6' - var test = /(-?)(\d*)(?:n([+\-]?\d*))?/.exec( - match[2] === "even" && "2n" || match[2] === "odd" && "2n+1" || - !/\D/.test( match[2] ) && "0n+" + match[2] || match[2]); - - // calculate the numbers (first)n+(last) including if they are negative - match[2] = (test[1] + (test[2] || 1)) - 0; - match[3] = test[3] - 0; - } - else if ( match[2] ) { - Sizzle.error( match[0] ); - } - - // TODO: Move to normal caching system - match[0] = done++; - - return match; - }, - - ATTR: function( match, curLoop, inplace, result, not, isXML ) { - var name = match[1] = match[1].replace( rBackslash, "" ); - - if ( !isXML && Expr.attrMap[name] ) { - match[1] = Expr.attrMap[name]; - } - - // Handle if an un-quoted value was used - match[4] = ( match[4] || match[5] || "" ).replace( rBackslash, "" ); - - if ( match[2] === "~=" ) { - match[4] = " " + match[4] + " "; - } - - return match; - }, - - PSEUDO: function( match, curLoop, inplace, result, not ) { - if ( match[1] === "not" ) { - // If we're dealing with a complex expression, or a simple one - if ( ( chunker.exec(match[3]) || "" ).length > 1 || /^\w/.test(match[3]) ) { - match[3] = Sizzle(match[3], null, null, curLoop); - - } else { - var ret = Sizzle.filter(match[3], curLoop, inplace, true ^ not); - - if ( !inplace ) { - result.push.apply( result, ret ); - } - - return false; - } - - } else if ( Expr.match.POS.test( match[0] ) || Expr.match.CHILD.test( match[0] ) ) { - return true; - } - - return match; - }, - - POS: function( match ) { - match.unshift( true ); - - return match; - } - }, - - filters: { - enabled: function( elem ) { - return elem.disabled === false && elem.type !== "hidden"; - }, - - disabled: function( elem ) { - return elem.disabled === true; - }, - - checked: function( elem ) { - return elem.checked === true; - }, - - selected: function( elem ) { - // Accessing this property makes selected-by-default - // options in Safari work properly - if ( elem.parentNode ) { - elem.parentNode.selectedIndex; - } - - return elem.selected === true; - }, - - parent: function( elem ) { - return !!elem.firstChild; - }, - - empty: function( elem ) { - return !elem.firstChild; - }, - - has: function( elem, i, match ) { - return !!Sizzle( match[3], elem ).length; - }, - - header: function( elem ) { - return (/h\d/i).test( elem.nodeName ); - }, - - text: function( elem ) { - var attr = elem.getAttribute( "type" ), type = elem.type; - // IE6 and 7 will map elem.type to 'text' for new HTML5 types (search, etc) - // use getAttribute instead to test this case - return elem.nodeName.toLowerCase() === "input" && "text" === type && ( attr === type || attr === null ); - }, - - radio: function( elem ) { - return elem.nodeName.toLowerCase() === "input" && "radio" === elem.type; - }, - - checkbox: function( elem ) { - return elem.nodeName.toLowerCase() === "input" && "checkbox" === elem.type; - }, - - file: function( elem ) { - return elem.nodeName.toLowerCase() === "input" && "file" === elem.type; - }, - - password: function( elem ) { - return elem.nodeName.toLowerCase() === "input" && "password" === elem.type; - }, - - submit: function( elem ) { - var name = elem.nodeName.toLowerCase(); - return (name === "input" || name === "button") && "submit" === elem.type; - }, - - image: function( elem ) { - return elem.nodeName.toLowerCase() === "input" && "image" === elem.type; - }, - - reset: function( elem ) { - var name = elem.nodeName.toLowerCase(); - return (name === "input" || name === "button") && "reset" === elem.type; - }, - - button: function( elem ) { - var name = elem.nodeName.toLowerCase(); - return name === "input" && "button" === elem.type || name === "button"; - }, - - input: function( elem ) { - return (/input|select|textarea|button/i).test( elem.nodeName ); - }, - - focus: function( elem ) { - return elem === elem.ownerDocument.activeElement; - } - }, - setFilters: { - first: function( elem, i ) { - return i === 0; - }, - - last: function( elem, i, match, array ) { - return i === array.length - 1; - }, - - even: function( elem, i ) { - return i % 2 === 0; - }, - - odd: function( elem, i ) { - return i % 2 === 1; - }, - - lt: function( elem, i, match ) { - return i < match[3] - 0; - }, - - gt: function( elem, i, match ) { - return i > match[3] - 0; - }, - - nth: function( elem, i, match ) { - return match[3] - 0 === i; - }, - - eq: function( elem, i, match ) { - return match[3] - 0 === i; - } - }, - filter: { - PSEUDO: function( elem, match, i, array ) { - var name = match[1], - filter = Expr.filters[ name ]; - - if ( filter ) { - return filter( elem, i, match, array ); - - } else if ( name === "contains" ) { - return (elem.textContent || elem.innerText || getText([ elem ]) || "").indexOf(match[3]) >= 0; - - } else if ( name === "not" ) { - var not = match[3]; - - for ( var j = 0, l = not.length; j < l; j++ ) { - if ( not[j] === elem ) { - return false; - } - } - - return true; - - } else { - Sizzle.error( name ); - } - }, - - CHILD: function( elem, match ) { - var first, last, - doneName, parent, cache, - count, diff, - type = match[1], - node = elem; - - switch ( type ) { - case "only": - case "first": - while ( (node = node.previousSibling) ) { - if ( node.nodeType === 1 ) { - return false; - } - } - - if ( type === "first" ) { - return true; - } - - node = elem; - - /* falls through */ - case "last": - while ( (node = node.nextSibling) ) { - if ( node.nodeType === 1 ) { - return false; - } - } - - return true; - - case "nth": - first = match[2]; - last = match[3]; - - if ( first === 1 && last === 0 ) { - return true; - } - - doneName = match[0]; - parent = elem.parentNode; - - if ( parent && (parent[ expando ] !== doneName || !elem.nodeIndex) ) { - count = 0; - - for ( node = parent.firstChild; node; node = node.nextSibling ) { - if ( node.nodeType === 1 ) { - node.nodeIndex = ++count; - } - } - - parent[ expando ] = doneName; - } - - diff = elem.nodeIndex - last; - - if ( first === 0 ) { - return diff === 0; - - } else { - return ( diff % first === 0 && diff / first >= 0 ); - } - } - }, - - ID: function( elem, match ) { - return elem.nodeType === 1 && elem.getAttribute("id") === match; - }, - - TAG: function( elem, match ) { - return (match === "*" && elem.nodeType === 1) || !!elem.nodeName && elem.nodeName.toLowerCase() === match; - }, - - CLASS: function( elem, match ) { - return (" " + (elem.className || elem.getAttribute("class")) + " ") - .indexOf( match ) > -1; - }, - - ATTR: function( elem, match ) { - var name = match[1], - result = Sizzle.attr ? - Sizzle.attr( elem, name ) : - Expr.attrHandle[ name ] ? - Expr.attrHandle[ name ]( elem ) : - elem[ name ] != null ? - elem[ name ] : - elem.getAttribute( name ), - value = result + "", - type = match[2], - check = match[4]; - - return result == null ? - type === "!=" : - !type && Sizzle.attr ? - result != null : - type === "=" ? - value === check : - type === "*=" ? - value.indexOf(check) >= 0 : - type === "~=" ? - (" " + value + " ").indexOf(check) >= 0 : - !check ? - value && result !== false : - type === "!=" ? - value !== check : - type === "^=" ? - value.indexOf(check) === 0 : - type === "$=" ? - value.substr(value.length - check.length) === check : - type === "|=" ? - value === check || value.substr(0, check.length + 1) === check + "-" : - false; - }, - - POS: function( elem, match, i, array ) { - var name = match[2], - filter = Expr.setFilters[ name ]; - - if ( filter ) { - return filter( elem, i, match, array ); - } - } - } -}; - -var origPOS = Expr.match.POS, - fescape = function(all, num){ - return "\\" + (num - 0 + 1); - }; - -for ( var type in Expr.match ) { - Expr.match[ type ] = new RegExp( Expr.match[ type ].source + (/(?![^\[]*\])(?![^\(]*\))/.source) ); - Expr.leftMatch[ type ] = new RegExp( /(^(?:.|\r|\n)*?)/.source + Expr.match[ type ].source.replace(/\\(\d+)/g, fescape) ); -} -// Expose origPOS -// "global" as in regardless of relation to brackets/parens -Expr.match.globalPOS = origPOS; - -var makeArray = function( array, results ) { - array = Array.prototype.slice.call( array, 0 ); - - if ( results ) { - results.push.apply( results, array ); - return results; - } - - return array; -}; - -// Perform a simple check to determine if the browser is capable of -// converting a NodeList to an array using builtin methods. -// Also verifies that the returned array holds DOM nodes -// (which is not the case in the Blackberry browser) -try { - Array.prototype.slice.call( document.documentElement.childNodes, 0 )[0].nodeType; - -// Provide a fallback method if it does not work -} catch( e ) { - makeArray = function( array, results ) { - var i = 0, - ret = results || []; - - if ( toString.call(array) === "[object Array]" ) { - Array.prototype.push.apply( ret, array ); - - } else { - if ( typeof array.length === "number" ) { - for ( var l = array.length; i < l; i++ ) { - ret.push( array[i] ); - } - - } else { - for ( ; array[i]; i++ ) { - ret.push( array[i] ); - } - } - } - - return ret; - }; -} - -var sortOrder, siblingCheck; - -if ( document.documentElement.compareDocumentPosition ) { - sortOrder = function( a, b ) { - if ( a === b ) { - hasDuplicate = true; - return 0; - } - - if ( !a.compareDocumentPosition || !b.compareDocumentPosition ) { - return a.compareDocumentPosition ? -1 : 1; - } - - return a.compareDocumentPosition(b) & 4 ? -1 : 1; - }; - -} else { - sortOrder = function( a, b ) { - // The nodes are identical, we can exit early - if ( a === b ) { - hasDuplicate = true; - return 0; - - // Fallback to using sourceIndex (in IE) if it's available on both nodes - } else if ( a.sourceIndex && b.sourceIndex ) { - return a.sourceIndex - b.sourceIndex; - } - - var al, bl, - ap = [], - bp = [], - aup = a.parentNode, - bup = b.parentNode, - cur = aup; - - // If the nodes are siblings (or identical) we can do a quick check - if ( aup === bup ) { - return siblingCheck( a, b ); - - // If no parents were found then the nodes are disconnected - } else if ( !aup ) { - return -1; - - } else if ( !bup ) { - return 1; - } - - // Otherwise they're somewhere else in the tree so we need - // to build up a full list of the parentNodes for comparison - while ( cur ) { - ap.unshift( cur ); - cur = cur.parentNode; - } - - cur = bup; - - while ( cur ) { - bp.unshift( cur ); - cur = cur.parentNode; - } - - al = ap.length; - bl = bp.length; - - // Start walking down the tree looking for a discrepancy - for ( var i = 0; i < al && i < bl; i++ ) { - if ( ap[i] !== bp[i] ) { - return siblingCheck( ap[i], bp[i] ); - } - } - - // We ended someplace up the tree so do a sibling check - return i === al ? - siblingCheck( a, bp[i], -1 ) : - siblingCheck( ap[i], b, 1 ); - }; - - siblingCheck = function( a, b, ret ) { - if ( a === b ) { - return ret; - } - - var cur = a.nextSibling; - - while ( cur ) { - if ( cur === b ) { - return -1; - } - - cur = cur.nextSibling; - } - - return 1; - }; -} - -// Check to see if the browser returns elements by name when -// querying by getElementById (and provide a workaround) -(function(){ - // We're going to inject a fake input element with a specified name - var form = document.createElement("div"), - id = "script" + (new Date()).getTime(), - root = document.documentElement; - - form.innerHTML = "<a name='" + id + "'/>"; - - // Inject it into the root element, check its status, and remove it quickly - root.insertBefore( form, root.firstChild ); - - // The workaround has to do additional checks after a getElementById - // Which slows things down for other browsers (hence the branching) - if ( document.getElementById( id ) ) { - Expr.find.ID = function( match, context, isXML ) { - if ( typeof context.getElementById !== "undefined" && !isXML ) { - var m = context.getElementById(match[1]); - - return m ? - m.id === match[1] || typeof m.getAttributeNode !== "undefined" && m.getAttributeNode("id").nodeValue === match[1] ? - [m] : - undefined : - []; - } - }; - - Expr.filter.ID = function( elem, match ) { - var node = typeof elem.getAttributeNode !== "undefined" && elem.getAttributeNode("id"); - - return elem.nodeType === 1 && node && node.nodeValue === match; - }; - } - - root.removeChild( form ); - - // release memory in IE - root = form = null; -})(); - -(function(){ - // Check to see if the browser returns only elements - // when doing getElementsByTagName("*") - - // Create a fake element - var div = document.createElement("div"); - div.appendChild( document.createComment("") ); - - // Make sure no comments are found - if ( div.getElementsByTagName("*").length > 0 ) { - Expr.find.TAG = function( match, context ) { - var results = context.getElementsByTagName( match[1] ); - - // Filter out possible comments - if ( match[1] === "*" ) { - var tmp = []; - - for ( var i = 0; results[i]; i++ ) { - if ( results[i].nodeType === 1 ) { - tmp.push( results[i] ); - } - } - - results = tmp; - } - - return results; - }; - } - - // Check to see if an attribute returns normalized href attributes - div.innerHTML = "<a href='#'></a>"; - - if ( div.firstChild && typeof div.firstChild.getAttribute !== "undefined" && - div.firstChild.getAttribute("href") !== "#" ) { - - Expr.attrHandle.href = function( elem ) { - return elem.getAttribute( "href", 2 ); - }; - } - - // release memory in IE - div = null; -})(); - -if ( document.querySelectorAll ) { - (function(){ - var oldSizzle = Sizzle, - div = document.createElement("div"), - id = "__sizzle__"; - - div.innerHTML = "<p class='TEST'></p>"; - - // Safari can't handle uppercase or unicode characters when - // in quirks mode. - if ( div.querySelectorAll && div.querySelectorAll(".TEST").length === 0 ) { - return; - } - - Sizzle = function( query, context, extra, seed ) { - context = context || document; - - // Only use querySelectorAll on non-XML documents - // (ID selectors don't work in non-HTML documents) - if ( !seed && !Sizzle.isXML(context) ) { - // See if we find a selector to speed up - var match = /^(\w+$)|^\.([\w\-]+$)|^#([\w\-]+$)/.exec( query ); - - if ( match && (context.nodeType === 1 || context.nodeType === 9) ) { - // Speed-up: Sizzle("TAG") - if ( match[1] ) { - return makeArray( context.getElementsByTagName( query ), extra ); - - // Speed-up: Sizzle(".CLASS") - } else if ( match[2] && Expr.find.CLASS && context.getElementsByClassName ) { - return makeArray( context.getElementsByClassName( match[2] ), extra ); - } - } - - if ( context.nodeType === 9 ) { - // Speed-up: Sizzle("body") - // The body element only exists once, optimize finding it - if ( query === "body" && context.body ) { - return makeArray( [ context.body ], extra ); - - // Speed-up: Sizzle("#ID") - } else if ( match && match[3] ) { - var elem = context.getElementById( match[3] ); - - // Check parentNode to catch when Blackberry 4.6 returns - // nodes that are no longer in the document #6963 - if ( elem && elem.parentNode ) { - // Handle the case where IE and Opera return items - // by name instead of ID - if ( elem.id === match[3] ) { - return makeArray( [ elem ], extra ); - } - - } else { - return makeArray( [], extra ); - } - } - - try { - return makeArray( context.querySelectorAll(query), extra ); - } catch(qsaError) {} - - // qSA works strangely on Element-rooted queries - // We can work around this by specifying an extra ID on the root - // and working up from there (Thanks to Andrew Dupont for the technique) - // IE 8 doesn't work on object elements - } else if ( context.nodeType === 1 && context.nodeName.toLowerCase() !== "object" ) { - var oldContext = context, - old = context.getAttribute( "id" ), - nid = old || id, - hasParent = context.parentNode, - relativeHierarchySelector = /^\s*[+~]/.test( query ); - - if ( !old ) { - context.setAttribute( "id", nid ); - } else { - nid = nid.replace( /'/g, "\\$&" ); - } - if ( relativeHierarchySelector && hasParent ) { - context = context.parentNode; - } - - try { - if ( !relativeHierarchySelector || hasParent ) { - return makeArray( context.querySelectorAll( "[id='" + nid + "'] " + query ), extra ); - } - - } catch(pseudoError) { - } finally { - if ( !old ) { - oldContext.removeAttribute( "id" ); - } - } - } - } - - return oldSizzle(query, context, extra, seed); - }; - - for ( var prop in oldSizzle ) { - Sizzle[ prop ] = oldSizzle[ prop ]; - } - - // release memory in IE - div = null; - })(); -} - -(function(){ - var html = document.documentElement, - matches = html.matchesSelector || html.mozMatchesSelector || html.webkitMatchesSelector || html.msMatchesSelector; - - if ( matches ) { - // Check to see if it's possible to do matchesSelector - // on a disconnected node (IE 9 fails this) - var disconnectedMatch = !matches.call( document.createElement( "div" ), "div" ), - pseudoWorks = false; - - try { - // This should fail with an exception - // Gecko does not error, returns false instead - matches.call( document.documentElement, "[test!='']:sizzle" ); - - } catch( pseudoError ) { - pseudoWorks = true; - } - - Sizzle.matchesSelector = function( node, expr ) { - // Make sure that attribute selectors are quoted - expr = expr.replace(/\=\s*([^'"\]]*)\s*\]/g, "='$1']"); - - if ( !Sizzle.isXML( node ) ) { - try { - if ( pseudoWorks || !Expr.match.PSEUDO.test( expr ) && !/!=/.test( expr ) ) { - var ret = matches.call( node, expr ); - - // IE 9's matchesSelector returns false on disconnected nodes - if ( ret || !disconnectedMatch || - // As well, disconnected nodes are said to be in a document - // fragment in IE 9, so check for that - node.document && node.document.nodeType !== 11 ) { - return ret; - } - } - } catch(e) {} - } - - return Sizzle(expr, null, null, [node]).length > 0; - }; - } -})(); - -(function(){ - var div = document.createElement("div"); - - div.innerHTML = "<div class='test e'></div><div class='test'></div>"; - - // Opera can't find a second classname (in 9.6) - // Also, make sure that getElementsByClassName actually exists - if ( !div.getElementsByClassName || div.getElementsByClassName("e").length === 0 ) { - return; - } - - // Safari caches class attributes, doesn't catch changes (in 3.2) - div.lastChild.className = "e"; - - if ( div.getElementsByClassName("e").length === 1 ) { - return; - } - - Expr.order.splice(1, 0, "CLASS"); - Expr.find.CLASS = function( match, context, isXML ) { - if ( typeof context.getElementsByClassName !== "undefined" && !isXML ) { - return context.getElementsByClassName(match[1]); - } - }; - - // release memory in IE - div = null; -})(); - -function dirNodeCheck( dir, cur, doneName, checkSet, nodeCheck, isXML ) { - for ( var i = 0, l = checkSet.length; i < l; i++ ) { - var elem = checkSet[i]; - - if ( elem ) { - var match = false; - - elem = elem[dir]; - - while ( elem ) { - if ( elem[ expando ] === doneName ) { - match = checkSet[elem.sizset]; - break; - } - - if ( elem.nodeType === 1 && !isXML ){ - elem[ expando ] = doneName; - elem.sizset = i; - } - - if ( elem.nodeName.toLowerCase() === cur ) { - match = elem; - break; - } - - elem = elem[dir]; - } - - checkSet[i] = match; - } - } -} - -function dirCheck( dir, cur, doneName, checkSet, nodeCheck, isXML ) { - for ( var i = 0, l = checkSet.length; i < l; i++ ) { - var elem = checkSet[i]; - - if ( elem ) { - var match = false; - - elem = elem[dir]; - - while ( elem ) { - if ( elem[ expando ] === doneName ) { - match = checkSet[elem.sizset]; - break; - } - - if ( elem.nodeType === 1 ) { - if ( !isXML ) { - elem[ expando ] = doneName; - elem.sizset = i; - } - - if ( typeof cur !== "string" ) { - if ( elem === cur ) { - match = true; - break; - } - - } else if ( Sizzle.filter( cur, [elem] ).length > 0 ) { - match = elem; - break; - } - } - - elem = elem[dir]; - } - - checkSet[i] = match; - } - } -} - -if ( document.documentElement.contains ) { - Sizzle.contains = function( a, b ) { - return a !== b && (a.contains ? a.contains(b) : true); - }; - -} else if ( document.documentElement.compareDocumentPosition ) { - Sizzle.contains = function( a, b ) { - return !!(a.compareDocumentPosition(b) & 16); - }; - -} else { - Sizzle.contains = function() { - return false; - }; -} - -Sizzle.isXML = function( elem ) { - // documentElement is verified for cases where it doesn't yet exist - // (such as loading iframes in IE - #4833) - var documentElement = (elem ? elem.ownerDocument || elem : 0).documentElement; - - return documentElement ? documentElement.nodeName !== "HTML" : false; -}; - -var posProcess = function( selector, context, seed ) { - var match, - tmpSet = [], - later = "", - root = context.nodeType ? [context] : context; - - // Position selectors must be done after the filter - // And so must :not(positional) so we move all PSEUDOs to the end - while ( (match = Expr.match.PSEUDO.exec( selector )) ) { - later += match[0]; - selector = selector.replace( Expr.match.PSEUDO, "" ); - } - - selector = Expr.relative[selector] ? selector + "*" : selector; - - for ( var i = 0, l = root.length; i < l; i++ ) { - Sizzle( selector, root[i], tmpSet, seed ); - } - - return Sizzle.filter( later, tmpSet ); -}; - -// EXPOSE -// Override sizzle attribute retrieval -Sizzle.attr = jQuery.attr; -Sizzle.selectors.attrMap = {}; -jQuery.find = Sizzle; -jQuery.expr = Sizzle.selectors; -jQuery.expr[":"] = jQuery.expr.filters; -jQuery.unique = Sizzle.uniqueSort; -jQuery.text = Sizzle.getText; -jQuery.isXMLDoc = Sizzle.isXML; -jQuery.contains = Sizzle.contains; - - -})(); - - -var runtil = /Until$/, - rparentsprev = /^(?:parents|prevUntil|prevAll)/, - // Note: This RegExp should be improved, or likely pulled from Sizzle - rmultiselector = /,/, - isSimple = /^.[^:#\[\.,]*$/, - slice = Array.prototype.slice, - POS = jQuery.expr.match.globalPOS, - // methods guaranteed to produce a unique set when starting from a unique set - guaranteedUnique = { - children: true, - contents: true, - next: true, - prev: true - }; - -jQuery.fn.extend({ - find: function( selector ) { - var self = this, - i, l; - - if ( typeof selector !== "string" ) { - return jQuery( selector ).filter(function() { - for ( i = 0, l = self.length; i < l; i++ ) { - if ( jQuery.contains( self[ i ], this ) ) { - return true; - } - } - }); - } - - var ret = this.pushStack( "", "find", selector ), - length, n, r; - - for ( i = 0, l = this.length; i < l; i++ ) { - length = ret.length; - jQuery.find( selector, this[i], ret ); - - if ( i > 0 ) { - // Make sure that the results are unique - for ( n = length; n < ret.length; n++ ) { - for ( r = 0; r < length; r++ ) { - if ( ret[r] === ret[n] ) { - ret.splice(n--, 1); - break; - } - } - } - } - } - - return ret; - }, - - has: function( target ) { - var targets = jQuery( target ); - return this.filter(function() { - for ( var i = 0, l = targets.length; i < l; i++ ) { - if ( jQuery.contains( this, targets[i] ) ) { - return true; - } - } - }); - }, - - not: function( selector ) { - return this.pushStack( winnow(this, selector, false), "not", selector); - }, - - filter: function( selector ) { - return this.pushStack( winnow(this, selector, true), "filter", selector ); - }, - - is: function( selector ) { - return !!selector && ( - typeof selector === "string" ? - // If this is a positional selector, check membership in the returned set - // so $("p:first").is("p:last") won't return true for a doc with two "p". - POS.test( selector ) ? - jQuery( selector, this.context ).index( this[0] ) >= 0 : - jQuery.filter( selector, this ).length > 0 : - this.filter( selector ).length > 0 ); - }, - - closest: function( selectors, context ) { - var ret = [], i, l, cur = this[0]; - - // Array (deprecated as of jQuery 1.7) - if ( jQuery.isArray( selectors ) ) { - var level = 1; - - while ( cur && cur.ownerDocument && cur !== context ) { - for ( i = 0; i < selectors.length; i++ ) { - - if ( jQuery( cur ).is( selectors[ i ] ) ) { - ret.push({ selector: selectors[ i ], elem: cur, level: level }); - } - } - - cur = cur.parentNode; - level++; - } - - return ret; - } - - // String - var pos = POS.test( selectors ) || typeof selectors !== "string" ? - jQuery( selectors, context || this.context ) : - 0; - - for ( i = 0, l = this.length; i < l; i++ ) { - cur = this[i]; - - while ( cur ) { - if ( pos ? pos.index(cur) > -1 : jQuery.find.matchesSelector(cur, selectors) ) { - ret.push( cur ); - break; - - } else { - cur = cur.parentNode; - if ( !cur || !cur.ownerDocument || cur === context || cur.nodeType === 11 ) { - break; - } - } - } - } - - ret = ret.length > 1 ? jQuery.unique( ret ) : ret; - - return this.pushStack( ret, "closest", selectors ); - }, - - // Determine the position of an element within - // the matched set of elements - index: function( elem ) { - - // No argument, return index in parent - if ( !elem ) { - return ( this[0] && this[0].parentNode ) ? this.prevAll().length : -1; - } - - // index in selector - if ( typeof elem === "string" ) { - return jQuery.inArray( this[0], jQuery( elem ) ); - } - - // Locate the position of the desired element - return jQuery.inArray( - // If it receives a jQuery object, the first element is used - elem.jquery ? elem[0] : elem, this ); - }, - - add: function( selector, context ) { - var set = typeof selector === "string" ? - jQuery( selector, context ) : - jQuery.makeArray( selector && selector.nodeType ? [ selector ] : selector ), - all = jQuery.merge( this.get(), set ); - - return this.pushStack( isDisconnected( set[0] ) || isDisconnected( all[0] ) ? - all : - jQuery.unique( all ) ); - }, - - andSelf: function() { - return this.add( this.prevObject ); - } -}); - -// A painfully simple check to see if an element is disconnected -// from a document (should be improved, where feasible). -function isDisconnected( node ) { - return !node || !node.parentNode || node.parentNode.nodeType === 11; -} - -jQuery.each({ - parent: function( elem ) { - var parent = elem.parentNode; - return parent && parent.nodeType !== 11 ? parent : null; - }, - parents: function( elem ) { - return jQuery.dir( elem, "parentNode" ); - }, - parentsUntil: function( elem, i, until ) { - return jQuery.dir( elem, "parentNode", until ); - }, - next: function( elem ) { - return jQuery.nth( elem, 2, "nextSibling" ); - }, - prev: function( elem ) { - return jQuery.nth( elem, 2, "previousSibling" ); - }, - nextAll: function( elem ) { - return jQuery.dir( elem, "nextSibling" ); - }, - prevAll: function( elem ) { - return jQuery.dir( elem, "previousSibling" ); - }, - nextUntil: function( elem, i, until ) { - return jQuery.dir( elem, "nextSibling", until ); - }, - prevUntil: function( elem, i, until ) { - return jQuery.dir( elem, "previousSibling", until ); - }, - siblings: function( elem ) { - return jQuery.sibling( ( elem.parentNode || {} ).firstChild, elem ); - }, - children: function( elem ) { - return jQuery.sibling( elem.firstChild ); - }, - contents: function( elem ) { - return jQuery.nodeName( elem, "iframe" ) ? - elem.contentDocument || elem.contentWindow.document : - jQuery.makeArray( elem.childNodes ); - } -}, function( name, fn ) { - jQuery.fn[ name ] = function( until, selector ) { - var ret = jQuery.map( this, fn, until ); - - if ( !runtil.test( name ) ) { - selector = until; - } - - if ( selector && typeof selector === "string" ) { - ret = jQuery.filter( selector, ret ); - } - - ret = this.length > 1 && !guaranteedUnique[ name ] ? jQuery.unique( ret ) : ret; - - if ( (this.length > 1 || rmultiselector.test( selector )) && rparentsprev.test( name ) ) { - ret = ret.reverse(); - } - - return this.pushStack( ret, name, slice.call( arguments ).join(",") ); - }; -}); - -jQuery.extend({ - filter: function( expr, elems, not ) { - if ( not ) { - expr = ":not(" + expr + ")"; - } - - return elems.length === 1 ? - jQuery.find.matchesSelector(elems[0], expr) ? [ elems[0] ] : [] : - jQuery.find.matches(expr, elems); - }, - - dir: function( elem, dir, until ) { - var matched = [], - cur = elem[ dir ]; - - while ( cur && cur.nodeType !== 9 && (until === undefined || cur.nodeType !== 1 || !jQuery( cur ).is( until )) ) { - if ( cur.nodeType === 1 ) { - matched.push( cur ); - } - cur = cur[dir]; - } - return matched; - }, - - nth: function( cur, result, dir, elem ) { - result = result || 1; - var num = 0; - - for ( ; cur; cur = cur[dir] ) { - if ( cur.nodeType === 1 && ++num === result ) { - break; - } - } - - return cur; - }, - - sibling: function( n, elem ) { - var r = []; - - for ( ; n; n = n.nextSibling ) { - if ( n.nodeType === 1 && n !== elem ) { - r.push( n ); - } - } - - return r; - } -}); - -// Implement the identical functionality for filter and not -function winnow( elements, qualifier, keep ) { - - // Can't pass null or undefined to indexOf in Firefox 4 - // Set to 0 to skip string check - qualifier = qualifier || 0; - - if ( jQuery.isFunction( qualifier ) ) { - return jQuery.grep(elements, function( elem, i ) { - var retVal = !!qualifier.call( elem, i, elem ); - return retVal === keep; - }); - - } else if ( qualifier.nodeType ) { - return jQuery.grep(elements, function( elem, i ) { - return ( elem === qualifier ) === keep; - }); - - } else if ( typeof qualifier === "string" ) { - var filtered = jQuery.grep(elements, function( elem ) { - return elem.nodeType === 1; - }); - - if ( isSimple.test( qualifier ) ) { - return jQuery.filter(qualifier, filtered, !keep); - } else { - qualifier = jQuery.filter( qualifier, filtered ); - } - } - - return jQuery.grep(elements, function( elem, i ) { - return ( jQuery.inArray( elem, qualifier ) >= 0 ) === keep; - }); -} - - - - -function createSafeFragment( document ) { - var list = nodeNames.split( "|" ), - safeFrag = document.createDocumentFragment(); - - if ( safeFrag.createElement ) { - while ( list.length ) { - safeFrag.createElement( - list.pop() - ); - } - } - return safeFrag; -} - -var nodeNames = "abbr|article|aside|audio|bdi|canvas|data|datalist|details|figcaption|figure|footer|" + - "header|hgroup|mark|meter|nav|output|progress|section|summary|time|video", - rinlinejQuery = / jQuery\d+="(?:\d+|null)"/g, - rleadingWhitespace = /^\s+/, - rxhtmlTag = /<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/ig, - rtagName = /<([\w:]+)/, - rtbody = /<tbody/i, - rhtml = /<|&#?\w+;/, - rnoInnerhtml = /<(?:script|style)/i, - rnocache = /<(?:script|object|embed|option|style)/i, - rnoshimcache = new RegExp("<(?:" + nodeNames + ")[\\s/>]", "i"), - // checked="checked" or checked - rchecked = /checked\s*(?:[^=]|=\s*.checked.)/i, - rscriptType = /\/(java|ecma)script/i, - rcleanScript = /^\s*<!(?:\[CDATA\[|\-\-)/, - wrapMap = { - option: [ 1, "<select multiple='multiple'>", "</select>" ], - legend: [ 1, "<fieldset>", "</fieldset>" ], - thead: [ 1, "<table>", "</table>" ], - tr: [ 2, "<table><tbody>", "</tbody></table>" ], - td: [ 3, "<table><tbody><tr>", "</tr></tbody></table>" ], - col: [ 2, "<table><tbody></tbody><colgroup>", "</colgroup></table>" ], - area: [ 1, "<map>", "</map>" ], - _default: [ 0, "", "" ] - }, - safeFragment = createSafeFragment( document ); - -wrapMap.optgroup = wrapMap.option; -wrapMap.tbody = wrapMap.tfoot = wrapMap.colgroup = wrapMap.caption = wrapMap.thead; -wrapMap.th = wrapMap.td; - -// IE can't serialize <link> and <script> tags normally -if ( !jQuery.support.htmlSerialize ) { - wrapMap._default = [ 1, "div<div>", "</div>" ]; -} - -jQuery.fn.extend({ - text: function( value ) { - return jQuery.access( this, function( value ) { - return value === undefined ? - jQuery.text( this ) : - this.empty().append( ( this[0] && this[0].ownerDocument || document ).createTextNode( value ) ); - }, null, value, arguments.length ); - }, - - wrapAll: function( html ) { - if ( jQuery.isFunction( html ) ) { - return this.each(function(i) { - jQuery(this).wrapAll( html.call(this, i) ); - }); - } - - if ( this[0] ) { - // The elements to wrap the target around - var wrap = jQuery( html, this[0].ownerDocument ).eq(0).clone(true); - - if ( this[0].parentNode ) { - wrap.insertBefore( this[0] ); - } - - wrap.map(function() { - var elem = this; - - while ( elem.firstChild && elem.firstChild.nodeType === 1 ) { - elem = elem.firstChild; - } - - return elem; - }).append( this ); - } - - return this; - }, - - wrapInner: function( html ) { - if ( jQuery.isFunction( html ) ) { - return this.each(function(i) { - jQuery(this).wrapInner( html.call(this, i) ); - }); - } - - return this.each(function() { - var self = jQuery( this ), - contents = self.contents(); - - if ( contents.length ) { - contents.wrapAll( html ); - - } else { - self.append( html ); - } - }); - }, - - wrap: function( html ) { - var isFunction = jQuery.isFunction( html ); - - return this.each(function(i) { - jQuery( this ).wrapAll( isFunction ? html.call(this, i) : html ); - }); - }, - - unwrap: function() { - return this.parent().each(function() { - if ( !jQuery.nodeName( this, "body" ) ) { - jQuery( this ).replaceWith( this.childNodes ); - } - }).end(); - }, - - append: function() { - return this.domManip(arguments, true, function( elem ) { - if ( this.nodeType === 1 ) { - this.appendChild( elem ); - } - }); - }, - - prepend: function() { - return this.domManip(arguments, true, function( elem ) { - if ( this.nodeType === 1 ) { - this.insertBefore( elem, this.firstChild ); - } - }); - }, - - before: function() { - if ( this[0] && this[0].parentNode ) { - return this.domManip(arguments, false, function( elem ) { - this.parentNode.insertBefore( elem, this ); - }); - } else if ( arguments.length ) { - var set = jQuery.clean( arguments ); - set.push.apply( set, this.toArray() ); - return this.pushStack( set, "before", arguments ); - } - }, - - after: function() { - if ( this[0] && this[0].parentNode ) { - return this.domManip(arguments, false, function( elem ) { - this.parentNode.insertBefore( elem, this.nextSibling ); - }); - } else if ( arguments.length ) { - var set = this.pushStack( this, "after", arguments ); - set.push.apply( set, jQuery.clean(arguments) ); - return set; - } - }, - - // keepData is for internal use only--do not document - remove: function( selector, keepData ) { - for ( var i = 0, elem; (elem = this[i]) != null; i++ ) { - if ( !selector || jQuery.filter( selector, [ elem ] ).length ) { - if ( !keepData && elem.nodeType === 1 ) { - jQuery.cleanData( elem.getElementsByTagName("*") ); - jQuery.cleanData( [ elem ] ); - } - - if ( elem.parentNode ) { - elem.parentNode.removeChild( elem ); - } - } - } - - return this; - }, - - empty: function() { - for ( var i = 0, elem; (elem = this[i]) != null; i++ ) { - // Remove element nodes and prevent memory leaks - if ( elem.nodeType === 1 ) { - jQuery.cleanData( elem.getElementsByTagName("*") ); - } - - // Remove any remaining nodes - while ( elem.firstChild ) { - elem.removeChild( elem.firstChild ); - } - } - - return this; - }, - - clone: function( dataAndEvents, deepDataAndEvents ) { - dataAndEvents = dataAndEvents == null ? false : dataAndEvents; - deepDataAndEvents = deepDataAndEvents == null ? dataAndEvents : deepDataAndEvents; - - return this.map( function () { - return jQuery.clone( this, dataAndEvents, deepDataAndEvents ); - }); - }, - - html: function( value ) { - return jQuery.access( this, function( value ) { - var elem = this[0] || {}, - i = 0, - l = this.length; - - if ( value === undefined ) { - return elem.nodeType === 1 ? - elem.innerHTML.replace( rinlinejQuery, "" ) : - null; - } - - - if ( typeof value === "string" && !rnoInnerhtml.test( value ) && - ( jQuery.support.leadingWhitespace || !rleadingWhitespace.test( value ) ) && - !wrapMap[ ( rtagName.exec( value ) || ["", ""] )[1].toLowerCase() ] ) { - - value = value.replace( rxhtmlTag, "<$1></$2>" ); - - try { - for (; i < l; i++ ) { - // Remove element nodes and prevent memory leaks - elem = this[i] || {}; - if ( elem.nodeType === 1 ) { - jQuery.cleanData( elem.getElementsByTagName( "*" ) ); - elem.innerHTML = value; - } - } - - elem = 0; - - // If using innerHTML throws an exception, use the fallback method - } catch(e) {} - } - - if ( elem ) { - this.empty().append( value ); - } - }, null, value, arguments.length ); - }, - - replaceWith: function( value ) { - if ( this[0] && this[0].parentNode ) { - // Make sure that the elements are removed from the DOM before they are inserted - // this can help fix replacing a parent with child elements - if ( jQuery.isFunction( value ) ) { - return this.each(function(i) { - var self = jQuery(this), old = self.html(); - self.replaceWith( value.call( this, i, old ) ); - }); - } - - if ( typeof value !== "string" ) { - value = jQuery( value ).detach(); - } - - return this.each(function() { - var next = this.nextSibling, - parent = this.parentNode; - - jQuery( this ).remove(); - - if ( next ) { - jQuery(next).before( value ); - } else { - jQuery(parent).append( value ); - } - }); - } else { - return this.length ? - this.pushStack( jQuery(jQuery.isFunction(value) ? value() : value), "replaceWith", value ) : - this; - } - }, - - detach: function( selector ) { - return this.remove( selector, true ); - }, - - domManip: function( args, table, callback ) { - var results, first, fragment, parent, - value = args[0], - scripts = []; - - // We can't cloneNode fragments that contain checked, in WebKit - if ( !jQuery.support.checkClone && arguments.length === 3 && typeof value === "string" && rchecked.test( value ) ) { - return this.each(function() { - jQuery(this).domManip( args, table, callback, true ); - }); - } - - if ( jQuery.isFunction(value) ) { - return this.each(function(i) { - var self = jQuery(this); - args[0] = value.call(this, i, table ? self.html() : undefined); - self.domManip( args, table, callback ); - }); - } - - if ( this[0] ) { - parent = value && value.parentNode; - - // If we're in a fragment, just use that instead of building a new one - if ( jQuery.support.parentNode && parent && parent.nodeType === 11 && parent.childNodes.length === this.length ) { - results = { fragment: parent }; - - } else { - results = jQuery.buildFragment( args, this, scripts ); - } - - fragment = results.fragment; - - if ( fragment.childNodes.length === 1 ) { - first = fragment = fragment.firstChild; - } else { - first = fragment.firstChild; - } - - if ( first ) { - table = table && jQuery.nodeName( first, "tr" ); - - for ( var i = 0, l = this.length, lastIndex = l - 1; i < l; i++ ) { - callback.call( - table ? - root(this[i], first) : - this[i], - // Make sure that we do not leak memory by inadvertently discarding - // the original fragment (which might have attached data) instead of - // using it; in addition, use the original fragment object for the last - // item instead of first because it can end up being emptied incorrectly - // in certain situations (Bug #8070). - // Fragments from the fragment cache must always be cloned and never used - // in place. - results.cacheable || ( l > 1 && i < lastIndex ) ? - jQuery.clone( fragment, true, true ) : - fragment - ); - } - } - - if ( scripts.length ) { - jQuery.each( scripts, function( i, elem ) { - if ( elem.src ) { - jQuery.ajax({ - type: "GET", - global: false, - url: elem.src, - async: false, - dataType: "script" - }); - } else { - jQuery.globalEval( ( elem.text || elem.textContent || elem.innerHTML || "" ).replace( rcleanScript, "/*$0*/" ) ); - } - - if ( elem.parentNode ) { - elem.parentNode.removeChild( elem ); - } - }); - } - } - - return this; - } -}); - -function root( elem, cur ) { - return jQuery.nodeName(elem, "table") ? - (elem.getElementsByTagName("tbody")[0] || - elem.appendChild(elem.ownerDocument.createElement("tbody"))) : - elem; -} - -function cloneCopyEvent( src, dest ) { - - if ( dest.nodeType !== 1 || !jQuery.hasData( src ) ) { - return; - } - - var type, i, l, - oldData = jQuery._data( src ), - curData = jQuery._data( dest, oldData ), - events = oldData.events; - - if ( events ) { - delete curData.handle; - curData.events = {}; - - for ( type in events ) { - for ( i = 0, l = events[ type ].length; i < l; i++ ) { - jQuery.event.add( dest, type, events[ type ][ i ] ); - } - } - } - - // make the cloned public data object a copy from the original - if ( curData.data ) { - curData.data = jQuery.extend( {}, curData.data ); - } -} - -function cloneFixAttributes( src, dest ) { - var nodeName; - - // We do not need to do anything for non-Elements - if ( dest.nodeType !== 1 ) { - return; - } - - // clearAttributes removes the attributes, which we don't want, - // but also removes the attachEvent events, which we *do* want - if ( dest.clearAttributes ) { - dest.clearAttributes(); - } - - // mergeAttributes, in contrast, only merges back on the - // original attributes, not the events - if ( dest.mergeAttributes ) { - dest.mergeAttributes( src ); - } - - nodeName = dest.nodeName.toLowerCase(); - - // IE6-8 fail to clone children inside object elements that use - // the proprietary classid attribute value (rather than the type - // attribute) to identify the type of content to display - if ( nodeName === "object" ) { - dest.outerHTML = src.outerHTML; - - } else if ( nodeName === "input" && (src.type === "checkbox" || src.type === "radio") ) { - // IE6-8 fails to persist the checked state of a cloned checkbox - // or radio button. Worse, IE6-7 fail to give the cloned element - // a checked appearance if the defaultChecked value isn't also set - if ( src.checked ) { - dest.defaultChecked = dest.checked = src.checked; - } - - // IE6-7 get confused and end up setting the value of a cloned - // checkbox/radio button to an empty string instead of "on" - if ( dest.value !== src.value ) { - dest.value = src.value; - } - - // IE6-8 fails to return the selected option to the default selected - // state when cloning options - } else if ( nodeName === "option" ) { - dest.selected = src.defaultSelected; - - // IE6-8 fails to set the defaultValue to the correct value when - // cloning other types of input fields - } else if ( nodeName === "input" || nodeName === "textarea" ) { - dest.defaultValue = src.defaultValue; - - // IE blanks contents when cloning scripts - } else if ( nodeName === "script" && dest.text !== src.text ) { - dest.text = src.text; - } - - // Event data gets referenced instead of copied if the expando - // gets copied too - dest.removeAttribute( jQuery.expando ); - - // Clear flags for bubbling special change/submit events, they must - // be reattached when the newly cloned events are first activated - dest.removeAttribute( "_submit_attached" ); - dest.removeAttribute( "_change_attached" ); -} - -jQuery.buildFragment = function( args, nodes, scripts ) { - var fragment, cacheable, cacheresults, doc, - first = args[ 0 ]; - - // nodes may contain either an explicit document object, - // a jQuery collection or context object. - // If nodes[0] contains a valid object to assign to doc - if ( nodes && nodes[0] ) { - doc = nodes[0].ownerDocument || nodes[0]; - } - - // Ensure that an attr object doesn't incorrectly stand in as a document object - // Chrome and Firefox seem to allow this to occur and will throw exception - // Fixes #8950 - if ( !doc.createDocumentFragment ) { - doc = document; - } - - // Only cache "small" (1/2 KB) HTML strings that are associated with the main document - // Cloning options loses the selected state, so don't cache them - // IE 6 doesn't like it when you put <object> or <embed> elements in a fragment - // Also, WebKit does not clone 'checked' attributes on cloneNode, so don't cache - // Lastly, IE6,7,8 will not correctly reuse cached fragments that were created from unknown elems #10501 - if ( args.length === 1 && typeof first === "string" && first.length < 512 && doc === document && - first.charAt(0) === "<" && !rnocache.test( first ) && - (jQuery.support.checkClone || !rchecked.test( first )) && - (jQuery.support.html5Clone || !rnoshimcache.test( first )) ) { - - cacheable = true; - - cacheresults = jQuery.fragments[ first ]; - if ( cacheresults && cacheresults !== 1 ) { - fragment = cacheresults; - } - } - - if ( !fragment ) { - fragment = doc.createDocumentFragment(); - jQuery.clean( args, doc, fragment, scripts ); - } - - if ( cacheable ) { - jQuery.fragments[ first ] = cacheresults ? fragment : 1; - } - - return { fragment: fragment, cacheable: cacheable }; -}; - -jQuery.fragments = {}; - -jQuery.each({ - appendTo: "append", - prependTo: "prepend", - insertBefore: "before", - insertAfter: "after", - replaceAll: "replaceWith" -}, function( name, original ) { - jQuery.fn[ name ] = function( selector ) { - var ret = [], - insert = jQuery( selector ), - parent = this.length === 1 && this[0].parentNode; - - if ( parent && parent.nodeType === 11 && parent.childNodes.length === 1 && insert.length === 1 ) { - insert[ original ]( this[0] ); - return this; - - } else { - for ( var i = 0, l = insert.length; i < l; i++ ) { - var elems = ( i > 0 ? this.clone(true) : this ).get(); - jQuery( insert[i] )[ original ]( elems ); - ret = ret.concat( elems ); - } - - return this.pushStack( ret, name, insert.selector ); - } - }; -}); - -function getAll( elem ) { - if ( typeof elem.getElementsByTagName !== "undefined" ) { - return elem.getElementsByTagName( "*" ); - - } else if ( typeof elem.querySelectorAll !== "undefined" ) { - return elem.querySelectorAll( "*" ); - - } else { - return []; - } -} - -// Used in clean, fixes the defaultChecked property -function fixDefaultChecked( elem ) { - if ( elem.type === "checkbox" || elem.type === "radio" ) { - elem.defaultChecked = elem.checked; - } -} -// Finds all inputs and passes them to fixDefaultChecked -function findInputs( elem ) { - var nodeName = ( elem.nodeName || "" ).toLowerCase(); - if ( nodeName === "input" ) { - fixDefaultChecked( elem ); - // Skip scripts, get other children - } else if ( nodeName !== "script" && typeof elem.getElementsByTagName !== "undefined" ) { - jQuery.grep( elem.getElementsByTagName("input"), fixDefaultChecked ); - } -} - -// Derived From: http://www.iecss.com/shimprove/javascript/shimprove.1-0-1.js -function shimCloneNode( elem ) { - var div = document.createElement( "div" ); - safeFragment.appendChild( div ); - - div.innerHTML = elem.outerHTML; - return div.firstChild; -} - -jQuery.extend({ - clone: function( elem, dataAndEvents, deepDataAndEvents ) { - var srcElements, - destElements, - i, - // IE<=8 does not properly clone detached, unknown element nodes - clone = jQuery.support.html5Clone || jQuery.isXMLDoc(elem) || !rnoshimcache.test( "<" + elem.nodeName + ">" ) ? - elem.cloneNode( true ) : - shimCloneNode( elem ); - - if ( (!jQuery.support.noCloneEvent || !jQuery.support.noCloneChecked) && - (elem.nodeType === 1 || elem.nodeType === 11) && !jQuery.isXMLDoc(elem) ) { - // IE copies events bound via attachEvent when using cloneNode. - // Calling detachEvent on the clone will also remove the events - // from the original. In order to get around this, we use some - // proprietary methods to clear the events. Thanks to MooTools - // guys for this hotness. - - cloneFixAttributes( elem, clone ); - - // Using Sizzle here is crazy slow, so we use getElementsByTagName instead - srcElements = getAll( elem ); - destElements = getAll( clone ); - - // Weird iteration because IE will replace the length property - // with an element if you are cloning the body and one of the - // elements on the page has a name or id of "length" - for ( i = 0; srcElements[i]; ++i ) { - // Ensure that the destination node is not null; Fixes #9587 - if ( destElements[i] ) { - cloneFixAttributes( srcElements[i], destElements[i] ); - } - } - } - - // Copy the events from the original to the clone - if ( dataAndEvents ) { - cloneCopyEvent( elem, clone ); - - if ( deepDataAndEvents ) { - srcElements = getAll( elem ); - destElements = getAll( clone ); - - for ( i = 0; srcElements[i]; ++i ) { - cloneCopyEvent( srcElements[i], destElements[i] ); - } - } - } - - srcElements = destElements = null; - - // Return the cloned set - return clone; - }, - - clean: function( elems, context, fragment, scripts ) { - var checkScriptType, script, j, - ret = []; - - context = context || document; - - // !context.createElement fails in IE with an error but returns typeof 'object' - if ( typeof context.createElement === "undefined" ) { - context = context.ownerDocument || context[0] && context[0].ownerDocument || document; - } - - for ( var i = 0, elem; (elem = elems[i]) != null; i++ ) { - if ( typeof elem === "number" ) { - elem += ""; - } - - if ( !elem ) { - continue; - } - - // Convert html string into DOM nodes - if ( typeof elem === "string" ) { - if ( !rhtml.test( elem ) ) { - elem = context.createTextNode( elem ); - } else { - // Fix "XHTML"-style tags in all browsers - elem = elem.replace(rxhtmlTag, "<$1></$2>"); - - // Trim whitespace, otherwise indexOf won't work as expected - var tag = ( rtagName.exec( elem ) || ["", ""] )[1].toLowerCase(), - wrap = wrapMap[ tag ] || wrapMap._default, - depth = wrap[0], - div = context.createElement("div"), - safeChildNodes = safeFragment.childNodes, - remove; - - // Append wrapper element to unknown element safe doc fragment - if ( context === document ) { - // Use the fragment we've already created for this document - safeFragment.appendChild( div ); - } else { - // Use a fragment created with the owner document - createSafeFragment( context ).appendChild( div ); - } - - // Go to html and back, then peel off extra wrappers - div.innerHTML = wrap[1] + elem + wrap[2]; - - // Move to the right depth - while ( depth-- ) { - div = div.lastChild; - } - - // Remove IE's autoinserted <tbody> from table fragments - if ( !jQuery.support.tbody ) { - - // String was a <table>, *may* have spurious <tbody> - var hasBody = rtbody.test(elem), - tbody = tag === "table" && !hasBody ? - div.firstChild && div.firstChild.childNodes : - - // String was a bare <thead> or <tfoot> - wrap[1] === "<table>" && !hasBody ? - div.childNodes : - []; - - for ( j = tbody.length - 1; j >= 0 ; --j ) { - if ( jQuery.nodeName( tbody[ j ], "tbody" ) && !tbody[ j ].childNodes.length ) { - tbody[ j ].parentNode.removeChild( tbody[ j ] ); - } - } - } - - // IE completely kills leading whitespace when innerHTML is used - if ( !jQuery.support.leadingWhitespace && rleadingWhitespace.test( elem ) ) { - div.insertBefore( context.createTextNode( rleadingWhitespace.exec(elem)[0] ), div.firstChild ); - } - - elem = div.childNodes; - - // Clear elements from DocumentFragment (safeFragment or otherwise) - // to avoid hoarding elements. Fixes #11356 - if ( div ) { - div.parentNode.removeChild( div ); - - // Guard against -1 index exceptions in FF3.6 - if ( safeChildNodes.length > 0 ) { - remove = safeChildNodes[ safeChildNodes.length - 1 ]; - - if ( remove && remove.parentNode ) { - remove.parentNode.removeChild( remove ); - } - } - } - } - } - - // Resets defaultChecked for any radios and checkboxes - // about to be appended to the DOM in IE 6/7 (#8060) - var len; - if ( !jQuery.support.appendChecked ) { - if ( elem[0] && typeof (len = elem.length) === "number" ) { - for ( j = 0; j < len; j++ ) { - findInputs( elem[j] ); - } - } else { - findInputs( elem ); - } - } - - if ( elem.nodeType ) { - ret.push( elem ); - } else { - ret = jQuery.merge( ret, elem ); - } - } - - if ( fragment ) { - checkScriptType = function( elem ) { - return !elem.type || rscriptType.test( elem.type ); - }; - for ( i = 0; ret[i]; i++ ) { - script = ret[i]; - if ( scripts && jQuery.nodeName( script, "script" ) && (!script.type || rscriptType.test( script.type )) ) { - scripts.push( script.parentNode ? script.parentNode.removeChild( script ) : script ); - - } else { - if ( script.nodeType === 1 ) { - var jsTags = jQuery.grep( script.getElementsByTagName( "script" ), checkScriptType ); - - ret.splice.apply( ret, [i + 1, 0].concat( jsTags ) ); - } - fragment.appendChild( script ); - } - } - } - - return ret; - }, - - cleanData: function( elems ) { - var data, id, - cache = jQuery.cache, - special = jQuery.event.special, - deleteExpando = jQuery.support.deleteExpando; - - for ( var i = 0, elem; (elem = elems[i]) != null; i++ ) { - if ( elem.nodeName && jQuery.noData[elem.nodeName.toLowerCase()] ) { - continue; - } - - id = elem[ jQuery.expando ]; - - if ( id ) { - data = cache[ id ]; - - if ( data && data.events ) { - for ( var type in data.events ) { - if ( special[ type ] ) { - jQuery.event.remove( elem, type ); - - // This is a shortcut to avoid jQuery.event.remove's overhead - } else { - jQuery.removeEvent( elem, type, data.handle ); - } - } - - // Null the DOM reference to avoid IE6/7/8 leak (#7054) - if ( data.handle ) { - data.handle.elem = null; - } - } - - if ( deleteExpando ) { - delete elem[ jQuery.expando ]; - - } else if ( elem.removeAttribute ) { - elem.removeAttribute( jQuery.expando ); - } - - delete cache[ id ]; - } - } - } -}); - - - - -var ralpha = /alpha\([^)]*\)/i, - ropacity = /opacity=([^)]*)/, - // fixed for IE9, see #8346 - rupper = /([A-Z]|^ms)/g, - rnum = /^[\-+]?(?:\d*\.)?\d+$/i, - rnumnonpx = /^-?(?:\d*\.)?\d+(?!px)[^\d\s]+$/i, - rrelNum = /^([\-+])=([\-+.\de]+)/, - rmargin = /^margin/, - - cssShow = { position: "absolute", visibility: "hidden", display: "block" }, - - // order is important! - cssExpand = [ "Top", "Right", "Bottom", "Left" ], - - curCSS, - - getComputedStyle, - currentStyle; - -jQuery.fn.css = function( name, value ) { - return jQuery.access( this, function( elem, name, value ) { - return value !== undefined ? - jQuery.style( elem, name, value ) : - jQuery.css( elem, name ); - }, name, value, arguments.length > 1 ); -}; - -jQuery.extend({ - // Add in style property hooks for overriding the default - // behavior of getting and setting a style property - cssHooks: { - opacity: { - get: function( elem, computed ) { - if ( computed ) { - // We should always get a number back from opacity - var ret = curCSS( elem, "opacity" ); - return ret === "" ? "1" : ret; - - } else { - return elem.style.opacity; - } - } - } - }, - - // Exclude the following css properties to add px - cssNumber: { - "fillOpacity": true, - "fontWeight": true, - "lineHeight": true, - "opacity": true, - "orphans": true, - "widows": true, - "zIndex": true, - "zoom": true - }, - - // Add in properties whose names you wish to fix before - // setting or getting the value - cssProps: { - // normalize float css property - "float": jQuery.support.cssFloat ? "cssFloat" : "styleFloat" - }, - - // Get and set the style property on a DOM Node - style: function( elem, name, value, extra ) { - // Don't set styles on text and comment nodes - if ( !elem || elem.nodeType === 3 || elem.nodeType === 8 || !elem.style ) { - return; - } - - // Make sure that we're working with the right name - var ret, type, origName = jQuery.camelCase( name ), - style = elem.style, hooks = jQuery.cssHooks[ origName ]; - - name = jQuery.cssProps[ origName ] || origName; - - // Check if we're setting a value - if ( value !== undefined ) { - type = typeof value; - - // convert relative number strings (+= or -=) to relative numbers. #7345 - if ( type === "string" && (ret = rrelNum.exec( value )) ) { - value = ( +( ret[1] + 1) * +ret[2] ) + parseFloat( jQuery.css( elem, name ) ); - // Fixes bug #9237 - type = "number"; - } - - // Make sure that NaN and null values aren't set. See: #7116 - if ( value == null || type === "number" && isNaN( value ) ) { - return; - } - - // If a number was passed in, add 'px' to the (except for certain CSS properties) - if ( type === "number" && !jQuery.cssNumber[ origName ] ) { - value += "px"; - } - - // If a hook was provided, use that value, otherwise just set the specified value - if ( !hooks || !("set" in hooks) || (value = hooks.set( elem, value )) !== undefined ) { - // Wrapped to prevent IE from throwing errors when 'invalid' values are provided - // Fixes bug #5509 - try { - style[ name ] = value; - } catch(e) {} - } - - } else { - // If a hook was provided get the non-computed value from there - if ( hooks && "get" in hooks && (ret = hooks.get( elem, false, extra )) !== undefined ) { - return ret; - } - - // Otherwise just get the value from the style object - return style[ name ]; - } - }, - - css: function( elem, name, extra ) { - var ret, hooks; - - // Make sure that we're working with the right name - name = jQuery.camelCase( name ); - hooks = jQuery.cssHooks[ name ]; - name = jQuery.cssProps[ name ] || name; - - // cssFloat needs a special treatment - if ( name === "cssFloat" ) { - name = "float"; - } - - // If a hook was provided get the computed value from there - if ( hooks && "get" in hooks && (ret = hooks.get( elem, true, extra )) !== undefined ) { - return ret; - - // Otherwise, if a way to get the computed value exists, use that - } else if ( curCSS ) { - return curCSS( elem, name ); - } - }, - - // A method for quickly swapping in/out CSS properties to get correct calculations - swap: function( elem, options, callback ) { - var old = {}, - ret, name; - - // Remember the old values, and insert the new ones - for ( name in options ) { - old[ name ] = elem.style[ name ]; - elem.style[ name ] = options[ name ]; - } - - ret = callback.call( elem ); - - // Revert the old values - for ( name in options ) { - elem.style[ name ] = old[ name ]; - } - - return ret; - } -}); - -// DEPRECATED in 1.3, Use jQuery.css() instead -jQuery.curCSS = jQuery.css; - -if ( document.defaultView && document.defaultView.getComputedStyle ) { - getComputedStyle = function( elem, name ) { - var ret, defaultView, computedStyle, width, - style = elem.style; - - name = name.replace( rupper, "-$1" ).toLowerCase(); - - if ( (defaultView = elem.ownerDocument.defaultView) && - (computedStyle = defaultView.getComputedStyle( elem, null )) ) { - - ret = computedStyle.getPropertyValue( name ); - if ( ret === "" && !jQuery.contains( elem.ownerDocument.documentElement, elem ) ) { - ret = jQuery.style( elem, name ); - } - } - - // A tribute to the "awesome hack by Dean Edwards" - // WebKit uses "computed value (percentage if specified)" instead of "used value" for margins - // which is against the CSSOM draft spec: http://dev.w3.org/csswg/cssom/#resolved-values - if ( !jQuery.support.pixelMargin && computedStyle && rmargin.test( name ) && rnumnonpx.test( ret ) ) { - width = style.width; - style.width = ret; - ret = computedStyle.width; - style.width = width; - } - - return ret; - }; -} - -if ( document.documentElement.currentStyle ) { - currentStyle = function( elem, name ) { - var left, rsLeft, uncomputed, - ret = elem.currentStyle && elem.currentStyle[ name ], - style = elem.style; - - // Avoid setting ret to empty string here - // so we don't default to auto - if ( ret == null && style && (uncomputed = style[ name ]) ) { - ret = uncomputed; - } - - // From the awesome hack by Dean Edwards - // http://erik.eae.net/archives/2007/07/27/18.54.15/#comment-102291 - - // If we're not dealing with a regular pixel number - // but a number that has a weird ending, we need to convert it to pixels - if ( rnumnonpx.test( ret ) ) { - - // Remember the original values - left = style.left; - rsLeft = elem.runtimeStyle && elem.runtimeStyle.left; - - // Put in the new values to get a computed value out - if ( rsLeft ) { - elem.runtimeStyle.left = elem.currentStyle.left; - } - style.left = name === "fontSize" ? "1em" : ret; - ret = style.pixelLeft + "px"; - - // Revert the changed values - style.left = left; - if ( rsLeft ) { - elem.runtimeStyle.left = rsLeft; - } - } - - return ret === "" ? "auto" : ret; - }; -} - -curCSS = getComputedStyle || currentStyle; - -function getWidthOrHeight( elem, name, extra ) { - - // Start with offset property - var val = name === "width" ? elem.offsetWidth : elem.offsetHeight, - i = name === "width" ? 1 : 0, - len = 4; - - if ( val > 0 ) { - if ( extra !== "border" ) { - for ( ; i < len; i += 2 ) { - if ( !extra ) { - val -= parseFloat( jQuery.css( elem, "padding" + cssExpand[ i ] ) ) || 0; - } - if ( extra === "margin" ) { - val += parseFloat( jQuery.css( elem, extra + cssExpand[ i ] ) ) || 0; - } else { - val -= parseFloat( jQuery.css( elem, "border" + cssExpand[ i ] + "Width" ) ) || 0; - } - } - } - - return val + "px"; - } - - // Fall back to computed then uncomputed css if necessary - val = curCSS( elem, name ); - if ( val < 0 || val == null ) { - val = elem.style[ name ]; - } - - // Computed unit is not pixels. Stop here and return. - if ( rnumnonpx.test(val) ) { - return val; - } - - // Normalize "", auto, and prepare for extra - val = parseFloat( val ) || 0; - - // Add padding, border, margin - if ( extra ) { - for ( ; i < len; i += 2 ) { - val += parseFloat( jQuery.css( elem, "padding" + cssExpand[ i ] ) ) || 0; - if ( extra !== "padding" ) { - val += parseFloat( jQuery.css( elem, "border" + cssExpand[ i ] + "Width" ) ) || 0; - } - if ( extra === "margin" ) { - val += parseFloat( jQuery.css( elem, extra + cssExpand[ i ]) ) || 0; - } - } - } - - return val + "px"; -} - -jQuery.each([ "height", "width" ], function( i, name ) { - jQuery.cssHooks[ name ] = { - get: function( elem, computed, extra ) { - if ( computed ) { - if ( elem.offsetWidth !== 0 ) { - return getWidthOrHeight( elem, name, extra ); - } else { - return jQuery.swap( elem, cssShow, function() { - return getWidthOrHeight( elem, name, extra ); - }); - } - } - }, - - set: function( elem, value ) { - return rnum.test( value ) ? - value + "px" : - value; - } - }; -}); - -if ( !jQuery.support.opacity ) { - jQuery.cssHooks.opacity = { - get: function( elem, computed ) { - // IE uses filters for opacity - return ropacity.test( (computed && elem.currentStyle ? elem.currentStyle.filter : elem.style.filter) || "" ) ? - ( parseFloat( RegExp.$1 ) / 100 ) + "" : - computed ? "1" : ""; - }, - - set: function( elem, value ) { - var style = elem.style, - currentStyle = elem.currentStyle, - opacity = jQuery.isNumeric( value ) ? "alpha(opacity=" + value * 100 + ")" : "", - filter = currentStyle && currentStyle.filter || style.filter || ""; - - // IE has trouble with opacity if it does not have layout - // Force it by setting the zoom level - style.zoom = 1; - - // if setting opacity to 1, and no other filters exist - attempt to remove filter attribute #6652 - if ( value >= 1 && jQuery.trim( filter.replace( ralpha, "" ) ) === "" ) { - - // Setting style.filter to null, "" & " " still leave "filter:" in the cssText - // if "filter:" is present at all, clearType is disabled, we want to avoid this - // style.removeAttribute is IE Only, but so apparently is this code path... - style.removeAttribute( "filter" ); - - // if there there is no filter style applied in a css rule, we are done - if ( currentStyle && !currentStyle.filter ) { - return; - } - } - - // otherwise, set new filter values - style.filter = ralpha.test( filter ) ? - filter.replace( ralpha, opacity ) : - filter + " " + opacity; - } - }; -} - -jQuery(function() { - // This hook cannot be added until DOM ready because the support test - // for it is not run until after DOM ready - if ( !jQuery.support.reliableMarginRight ) { - jQuery.cssHooks.marginRight = { - get: function( elem, computed ) { - // WebKit Bug 13343 - getComputedStyle returns wrong value for margin-right - // Work around by temporarily setting element display to inline-block - return jQuery.swap( elem, { "display": "inline-block" }, function() { - if ( computed ) { - return curCSS( elem, "margin-right" ); - } else { - return elem.style.marginRight; - } - }); - } - }; - } -}); - -if ( jQuery.expr && jQuery.expr.filters ) { - jQuery.expr.filters.hidden = function( elem ) { - var width = elem.offsetWidth, - height = elem.offsetHeight; - - return ( width === 0 && height === 0 ) || (!jQuery.support.reliableHiddenOffsets && ((elem.style && elem.style.display) || jQuery.css( elem, "display" )) === "none"); - }; - - jQuery.expr.filters.visible = function( elem ) { - return !jQuery.expr.filters.hidden( elem ); - }; -} - -// These hooks are used by animate to expand properties -jQuery.each({ - margin: "", - padding: "", - border: "Width" -}, function( prefix, suffix ) { - - jQuery.cssHooks[ prefix + suffix ] = { - expand: function( value ) { - var i, - - // assumes a single number if not a string - parts = typeof value === "string" ? value.split(" ") : [ value ], - expanded = {}; - - for ( i = 0; i < 4; i++ ) { - expanded[ prefix + cssExpand[ i ] + suffix ] = - parts[ i ] || parts[ i - 2 ] || parts[ 0 ]; - } - - return expanded; - } - }; -}); - - - - -var r20 = /%20/g, - rbracket = /\[\]$/, - rCRLF = /\r?\n/g, - rhash = /#.*$/, - rheaders = /^(.*?):[ \t]*([^\r\n]*)\r?$/mg, // IE leaves an \r character at EOL - rinput = /^(?:color|date|datetime|datetime-local|email|hidden|month|number|password|range|search|tel|text|time|url|week)$/i, - // #7653, #8125, #8152: local protocol detection - rlocalProtocol = /^(?:about|app|app\-storage|.+\-extension|file|res|widget):$/, - rnoContent = /^(?:GET|HEAD)$/, - rprotocol = /^\/\//, - rquery = /\?/, - rscript = /<script\b[^<]*(?:(?!<\/script>)<[^<]*)*<\/script>/gi, - rselectTextarea = /^(?:select|textarea)/i, - rspacesAjax = /\s+/, - rts = /([?&])_=[^&]*/, - rurl = /^([\w\+\.\-]+:)(?:\/\/([^\/?#:]*)(?::(\d+))?)?/, - - // Keep a copy of the old load method - _load = jQuery.fn.load, - - /* Prefilters - * 1) They are useful to introduce custom dataTypes (see ajax/jsonp.js for an example) - * 2) These are called: - * - BEFORE asking for a transport - * - AFTER param serialization (s.data is a string if s.processData is true) - * 3) key is the dataType - * 4) the catchall symbol "*" can be used - * 5) execution will start with transport dataType and THEN continue down to "*" if needed - */ - prefilters = {}, - - /* Transports bindings - * 1) key is the dataType - * 2) the catchall symbol "*" can be used - * 3) selection will start with transport dataType and THEN go to "*" if needed - */ - transports = {}, - - // Document location - ajaxLocation, - - // Document location segments - ajaxLocParts, - - // Avoid comment-prolog char sequence (#10098); must appease lint and evade compression - allTypes = ["*/"] + ["*"]; - -// #8138, IE may throw an exception when accessing -// a field from window.location if document.domain has been set -try { - ajaxLocation = location.href; -} catch( e ) { - // Use the href attribute of an A element - // since IE will modify it given document.location - ajaxLocation = document.createElement( "a" ); - ajaxLocation.href = ""; - ajaxLocation = ajaxLocation.href; -} - -// Segment location into parts -ajaxLocParts = rurl.exec( ajaxLocation.toLowerCase() ) || []; - -// Base "constructor" for jQuery.ajaxPrefilter and jQuery.ajaxTransport -function addToPrefiltersOrTransports( structure ) { - - // dataTypeExpression is optional and defaults to "*" - return function( dataTypeExpression, func ) { - - if ( typeof dataTypeExpression !== "string" ) { - func = dataTypeExpression; - dataTypeExpression = "*"; - } - - if ( jQuery.isFunction( func ) ) { - var dataTypes = dataTypeExpression.toLowerCase().split( rspacesAjax ), - i = 0, - length = dataTypes.length, - dataType, - list, - placeBefore; - - // For each dataType in the dataTypeExpression - for ( ; i < length; i++ ) { - dataType = dataTypes[ i ]; - // We control if we're asked to add before - // any existing element - placeBefore = /^\+/.test( dataType ); - if ( placeBefore ) { - dataType = dataType.substr( 1 ) || "*"; - } - list = structure[ dataType ] = structure[ dataType ] || []; - // then we add to the structure accordingly - list[ placeBefore ? "unshift" : "push" ]( func ); - } - } - }; -} - -// Base inspection function for prefilters and transports -function inspectPrefiltersOrTransports( structure, options, originalOptions, jqXHR, - dataType /* internal */, inspected /* internal */ ) { - - dataType = dataType || options.dataTypes[ 0 ]; - inspected = inspected || {}; - - inspected[ dataType ] = true; - - var list = structure[ dataType ], - i = 0, - length = list ? list.length : 0, - executeOnly = ( structure === prefilters ), - selection; - - for ( ; i < length && ( executeOnly || !selection ); i++ ) { - selection = list[ i ]( options, originalOptions, jqXHR ); - // If we got redirected to another dataType - // we try there if executing only and not done already - if ( typeof selection === "string" ) { - if ( !executeOnly || inspected[ selection ] ) { - selection = undefined; - } else { - options.dataTypes.unshift( selection ); - selection = inspectPrefiltersOrTransports( - structure, options, originalOptions, jqXHR, selection, inspected ); - } - } - } - // If we're only executing or nothing was selected - // we try the catchall dataType if not done already - if ( ( executeOnly || !selection ) && !inspected[ "*" ] ) { - selection = inspectPrefiltersOrTransports( - structure, options, originalOptions, jqXHR, "*", inspected ); - } - // unnecessary when only executing (prefilters) - // but it'll be ignored by the caller in that case - return selection; -} - -// A special extend for ajax options -// that takes "flat" options (not to be deep extended) -// Fixes #9887 -function ajaxExtend( target, src ) { - var key, deep, - flatOptions = jQuery.ajaxSettings.flatOptions || {}; - for ( key in src ) { - if ( src[ key ] !== undefined ) { - ( flatOptions[ key ] ? target : ( deep || ( deep = {} ) ) )[ key ] = src[ key ]; - } - } - if ( deep ) { - jQuery.extend( true, target, deep ); - } -} - -jQuery.fn.extend({ - load: function( url, params, callback ) { - if ( typeof url !== "string" && _load ) { - return _load.apply( this, arguments ); - - // Don't do a request if no elements are being requested - } else if ( !this.length ) { - return this; - } - - var off = url.indexOf( " " ); - if ( off >= 0 ) { - var selector = url.slice( off, url.length ); - url = url.slice( 0, off ); - } - - // Default to a GET request - var type = "GET"; - - // If the second parameter was provided - if ( params ) { - // If it's a function - if ( jQuery.isFunction( params ) ) { - // We assume that it's the callback - callback = params; - params = undefined; - - // Otherwise, build a param string - } else if ( typeof params === "object" ) { - params = jQuery.param( params, jQuery.ajaxSettings.traditional ); - type = "POST"; - } - } - - var self = this; - - // Request the remote document - jQuery.ajax({ - url: url, - type: type, - dataType: "html", - data: params, - // Complete callback (responseText is used internally) - complete: function( jqXHR, status, responseText ) { - // Store the response as specified by the jqXHR object - responseText = jqXHR.responseText; - // If successful, inject the HTML into all the matched elements - if ( jqXHR.isResolved() ) { - // #4825: Get the actual response in case - // a dataFilter is present in ajaxSettings - jqXHR.done(function( r ) { - responseText = r; - }); - // See if a selector was specified - self.html( selector ? - // Create a dummy div to hold the results - jQuery("<div>") - // inject the contents of the document in, removing the scripts - // to avoid any 'Permission Denied' errors in IE - .append(responseText.replace(rscript, "")) - - // Locate the specified elements - .find(selector) : - - // If not, just inject the full result - responseText ); - } - - if ( callback ) { - self.each( callback, [ responseText, status, jqXHR ] ); - } - } - }); - - return this; - }, - - serialize: function() { - return jQuery.param( this.serializeArray() ); - }, - - serializeArray: function() { - return this.map(function(){ - return this.elements ? jQuery.makeArray( this.elements ) : this; - }) - .filter(function(){ - return this.name && !this.disabled && - ( this.checked || rselectTextarea.test( this.nodeName ) || - rinput.test( this.type ) ); - }) - .map(function( i, elem ){ - var val = jQuery( this ).val(); - - return val == null ? - null : - jQuery.isArray( val ) ? - jQuery.map( val, function( val, i ){ - return { name: elem.name, value: val.replace( rCRLF, "\r\n" ) }; - }) : - { name: elem.name, value: val.replace( rCRLF, "\r\n" ) }; - }).get(); - } -}); - -// Attach a bunch of functions for handling common AJAX events -jQuery.each( "ajaxStart ajaxStop ajaxComplete ajaxError ajaxSuccess ajaxSend".split( " " ), function( i, o ){ - jQuery.fn[ o ] = function( f ){ - return this.on( o, f ); - }; -}); - -jQuery.each( [ "get", "post" ], function( i, method ) { - jQuery[ method ] = function( url, data, callback, type ) { - // shift arguments if data argument was omitted - if ( jQuery.isFunction( data ) ) { - type = type || callback; - callback = data; - data = undefined; - } - - return jQuery.ajax({ - type: method, - url: url, - data: data, - success: callback, - dataType: type - }); - }; -}); - -jQuery.extend({ - - getScript: function( url, callback ) { - return jQuery.get( url, undefined, callback, "script" ); - }, - - getJSON: function( url, data, callback ) { - return jQuery.get( url, data, callback, "json" ); - }, - - // Creates a full fledged settings object into target - // with both ajaxSettings and settings fields. - // If target is omitted, writes into ajaxSettings. - ajaxSetup: function( target, settings ) { - if ( settings ) { - // Building a settings object - ajaxExtend( target, jQuery.ajaxSettings ); - } else { - // Extending ajaxSettings - settings = target; - target = jQuery.ajaxSettings; - } - ajaxExtend( target, settings ); - return target; - }, - - ajaxSettings: { - url: ajaxLocation, - isLocal: rlocalProtocol.test( ajaxLocParts[ 1 ] ), - global: true, - type: "GET", - contentType: "application/x-www-form-urlencoded; charset=UTF-8", - processData: true, - async: true, - /* - timeout: 0, - data: null, - dataType: null, - username: null, - password: null, - cache: null, - traditional: false, - headers: {}, - */ - - accepts: { - xml: "application/xml, text/xml", - html: "text/html", - text: "text/plain", - json: "application/json, text/javascript", - "*": allTypes - }, - - contents: { - xml: /xml/, - html: /html/, - json: /json/ - }, - - responseFields: { - xml: "responseXML", - text: "responseText" - }, - - // List of data converters - // 1) key format is "source_type destination_type" (a single space in-between) - // 2) the catchall symbol "*" can be used for source_type - converters: { - - // Convert anything to text - "* text": window.String, - - // Text to html (true = no transformation) - "text html": true, - - // Evaluate text as a json expression - "text json": jQuery.parseJSON, - - // Parse text as xml - "text xml": jQuery.parseXML - }, - - // For options that shouldn't be deep extended: - // you can add your own custom options here if - // and when you create one that shouldn't be - // deep extended (see ajaxExtend) - flatOptions: { - context: true, - url: true - } - }, - - ajaxPrefilter: addToPrefiltersOrTransports( prefilters ), - ajaxTransport: addToPrefiltersOrTransports( transports ), - - // Main method - ajax: function( url, options ) { - - // If url is an object, simulate pre-1.5 signature - if ( typeof url === "object" ) { - options = url; - url = undefined; - } - - // Force options to be an object - options = options || {}; - - var // Create the final options object - s = jQuery.ajaxSetup( {}, options ), - // Callbacks context - callbackContext = s.context || s, - // Context for global events - // It's the callbackContext if one was provided in the options - // and if it's a DOM node or a jQuery collection - globalEventContext = callbackContext !== s && - ( callbackContext.nodeType || callbackContext instanceof jQuery ) ? - jQuery( callbackContext ) : jQuery.event, - // Deferreds - deferred = jQuery.Deferred(), - completeDeferred = jQuery.Callbacks( "once memory" ), - // Status-dependent callbacks - statusCode = s.statusCode || {}, - // ifModified key - ifModifiedKey, - // Headers (they are sent all at once) - requestHeaders = {}, - requestHeadersNames = {}, - // Response headers - responseHeadersString, - responseHeaders, - // transport - transport, - // timeout handle - timeoutTimer, - // Cross-domain detection vars - parts, - // The jqXHR state - state = 0, - // To know if global events are to be dispatched - fireGlobals, - // Loop variable - i, - // Fake xhr - jqXHR = { - - readyState: 0, - - // Caches the header - setRequestHeader: function( name, value ) { - if ( !state ) { - var lname = name.toLowerCase(); - name = requestHeadersNames[ lname ] = requestHeadersNames[ lname ] || name; - requestHeaders[ name ] = value; - } - return this; - }, - - // Raw string - getAllResponseHeaders: function() { - return state === 2 ? responseHeadersString : null; - }, - - // Builds headers hashtable if needed - getResponseHeader: function( key ) { - var match; - if ( state === 2 ) { - if ( !responseHeaders ) { - responseHeaders = {}; - while( ( match = rheaders.exec( responseHeadersString ) ) ) { - responseHeaders[ match[1].toLowerCase() ] = match[ 2 ]; - } - } - match = responseHeaders[ key.toLowerCase() ]; - } - return match === undefined ? null : match; - }, - - // Overrides response content-type header - overrideMimeType: function( type ) { - if ( !state ) { - s.mimeType = type; - } - return this; - }, - - // Cancel the request - abort: function( statusText ) { - statusText = statusText || "abort"; - if ( transport ) { - transport.abort( statusText ); - } - done( 0, statusText ); - return this; - } - }; - - // Callback for when everything is done - // It is defined here because jslint complains if it is declared - // at the end of the function (which would be more logical and readable) - function done( status, nativeStatusText, responses, headers ) { - - // Called once - if ( state === 2 ) { - return; - } - - // State is "done" now - state = 2; - - // Clear timeout if it exists - if ( timeoutTimer ) { - clearTimeout( timeoutTimer ); - } - - // Dereference transport for early garbage collection - // (no matter how long the jqXHR object will be used) - transport = undefined; - - // Cache response headers - responseHeadersString = headers || ""; - - // Set readyState - jqXHR.readyState = status > 0 ? 4 : 0; - - var isSuccess, - success, - error, - statusText = nativeStatusText, - response = responses ? ajaxHandleResponses( s, jqXHR, responses ) : undefined, - lastModified, - etag; - - // If successful, handle type chaining - if ( status >= 200 && status < 300 || status === 304 ) { - - // Set the If-Modified-Since and/or If-None-Match header, if in ifModified mode. - if ( s.ifModified ) { - - if ( ( lastModified = jqXHR.getResponseHeader( "Last-Modified" ) ) ) { - jQuery.lastModified[ ifModifiedKey ] = lastModified; - } - if ( ( etag = jqXHR.getResponseHeader( "Etag" ) ) ) { - jQuery.etag[ ifModifiedKey ] = etag; - } - } - - // If not modified - if ( status === 304 ) { - - statusText = "notmodified"; - isSuccess = true; - - // If we have data - } else { - - try { - success = ajaxConvert( s, response ); - statusText = "success"; - isSuccess = true; - } catch(e) { - // We have a parsererror - statusText = "parsererror"; - error = e; - } - } - } else { - // We extract error from statusText - // then normalize statusText and status for non-aborts - error = statusText; - if ( !statusText || status ) { - statusText = "error"; - if ( status < 0 ) { - status = 0; - } - } - } - - // Set data for the fake xhr object - jqXHR.status = status; - jqXHR.statusText = "" + ( nativeStatusText || statusText ); - - // Success/Error - if ( isSuccess ) { - deferred.resolveWith( callbackContext, [ success, statusText, jqXHR ] ); - } else { - deferred.rejectWith( callbackContext, [ jqXHR, statusText, error ] ); - } - - // Status-dependent callbacks - jqXHR.statusCode( statusCode ); - statusCode = undefined; - - if ( fireGlobals ) { - globalEventContext.trigger( "ajax" + ( isSuccess ? "Success" : "Error" ), - [ jqXHR, s, isSuccess ? success : error ] ); - } - - // Complete - completeDeferred.fireWith( callbackContext, [ jqXHR, statusText ] ); - - if ( fireGlobals ) { - globalEventContext.trigger( "ajaxComplete", [ jqXHR, s ] ); - // Handle the global AJAX counter - if ( !( --jQuery.active ) ) { - jQuery.event.trigger( "ajaxStop" ); - } - } - } - - // Attach deferreds - deferred.promise( jqXHR ); - jqXHR.success = jqXHR.done; - jqXHR.error = jqXHR.fail; - jqXHR.complete = completeDeferred.add; - - // Status-dependent callbacks - jqXHR.statusCode = function( map ) { - if ( map ) { - var tmp; - if ( state < 2 ) { - for ( tmp in map ) { - statusCode[ tmp ] = [ statusCode[tmp], map[tmp] ]; - } - } else { - tmp = map[ jqXHR.status ]; - jqXHR.then( tmp, tmp ); - } - } - return this; - }; - - // Remove hash character (#7531: and string promotion) - // Add protocol if not provided (#5866: IE7 issue with protocol-less urls) - // We also use the url parameter if available - s.url = ( ( url || s.url ) + "" ).replace( rhash, "" ).replace( rprotocol, ajaxLocParts[ 1 ] + "//" ); - - // Extract dataTypes list - s.dataTypes = jQuery.trim( s.dataType || "*" ).toLowerCase().split( rspacesAjax ); - - // Determine if a cross-domain request is in order - if ( s.crossDomain == null ) { - parts = rurl.exec( s.url.toLowerCase() ); - s.crossDomain = !!( parts && - ( parts[ 1 ] != ajaxLocParts[ 1 ] || parts[ 2 ] != ajaxLocParts[ 2 ] || - ( parts[ 3 ] || ( parts[ 1 ] === "http:" ? 80 : 443 ) ) != - ( ajaxLocParts[ 3 ] || ( ajaxLocParts[ 1 ] === "http:" ? 80 : 443 ) ) ) - ); - } - - // Convert data if not already a string - if ( s.data && s.processData && typeof s.data !== "string" ) { - s.data = jQuery.param( s.data, s.traditional ); - } - - // Apply prefilters - inspectPrefiltersOrTransports( prefilters, s, options, jqXHR ); - - // If request was aborted inside a prefilter, stop there - if ( state === 2 ) { - return false; - } - - // We can fire global events as of now if asked to - fireGlobals = s.global; - - // Uppercase the type - s.type = s.type.toUpperCase(); - - // Determine if request has content - s.hasContent = !rnoContent.test( s.type ); - - // Watch for a new set of requests - if ( fireGlobals && jQuery.active++ === 0 ) { - jQuery.event.trigger( "ajaxStart" ); - } - - // More options handling for requests with no content - if ( !s.hasContent ) { - - // If data is available, append data to url - if ( s.data ) { - s.url += ( rquery.test( s.url ) ? "&" : "?" ) + s.data; - // #9682: remove data so that it's not used in an eventual retry - delete s.data; - } - - // Get ifModifiedKey before adding the anti-cache parameter - ifModifiedKey = s.url; - - // Add anti-cache in url if needed - if ( s.cache === false ) { - - var ts = jQuery.now(), - // try replacing _= if it is there - ret = s.url.replace( rts, "$1_=" + ts ); - - // if nothing was replaced, add timestamp to the end - s.url = ret + ( ( ret === s.url ) ? ( rquery.test( s.url ) ? "&" : "?" ) + "_=" + ts : "" ); - } - } - - // Set the correct header, if data is being sent - if ( s.data && s.hasContent && s.contentType !== false || options.contentType ) { - jqXHR.setRequestHeader( "Content-Type", s.contentType ); - } - - // Set the If-Modified-Since and/or If-None-Match header, if in ifModified mode. - if ( s.ifModified ) { - ifModifiedKey = ifModifiedKey || s.url; - if ( jQuery.lastModified[ ifModifiedKey ] ) { - jqXHR.setRequestHeader( "If-Modified-Since", jQuery.lastModified[ ifModifiedKey ] ); - } - if ( jQuery.etag[ ifModifiedKey ] ) { - jqXHR.setRequestHeader( "If-None-Match", jQuery.etag[ ifModifiedKey ] ); - } - } - - // Set the Accepts header for the server, depending on the dataType - jqXHR.setRequestHeader( - "Accept", - s.dataTypes[ 0 ] && s.accepts[ s.dataTypes[0] ] ? - s.accepts[ s.dataTypes[0] ] + ( s.dataTypes[ 0 ] !== "*" ? ", " + allTypes + "; q=0.01" : "" ) : - s.accepts[ "*" ] - ); - - // Check for headers option - for ( i in s.headers ) { - jqXHR.setRequestHeader( i, s.headers[ i ] ); - } - - // Allow custom headers/mimetypes and early abort - if ( s.beforeSend && ( s.beforeSend.call( callbackContext, jqXHR, s ) === false || state === 2 ) ) { - // Abort if not done already - jqXHR.abort(); - return false; - - } - - // Install callbacks on deferreds - for ( i in { success: 1, error: 1, complete: 1 } ) { - jqXHR[ i ]( s[ i ] ); - } - - // Get transport - transport = inspectPrefiltersOrTransports( transports, s, options, jqXHR ); - - // If no transport, we auto-abort - if ( !transport ) { - done( -1, "No Transport" ); - } else { - jqXHR.readyState = 1; - // Send global event - if ( fireGlobals ) { - globalEventContext.trigger( "ajaxSend", [ jqXHR, s ] ); - } - // Timeout - if ( s.async && s.timeout > 0 ) { - timeoutTimer = setTimeout( function(){ - jqXHR.abort( "timeout" ); - }, s.timeout ); - } - - try { - state = 1; - transport.send( requestHeaders, done ); - } catch (e) { - // Propagate exception as error if not done - if ( state < 2 ) { - done( -1, e ); - // Simply rethrow otherwise - } else { - throw e; - } - } - } - - return jqXHR; - }, - - // Serialize an array of form elements or a set of - // key/values into a query string - param: function( a, traditional ) { - var s = [], - add = function( key, value ) { - // If value is a function, invoke it and return its value - value = jQuery.isFunction( value ) ? value() : value; - s[ s.length ] = encodeURIComponent( key ) + "=" + encodeURIComponent( value ); - }; - - // Set traditional to true for jQuery <= 1.3.2 behavior. - if ( traditional === undefined ) { - traditional = jQuery.ajaxSettings.traditional; - } - - // If an array was passed in, assume that it is an array of form elements. - if ( jQuery.isArray( a ) || ( a.jquery && !jQuery.isPlainObject( a ) ) ) { - // Serialize the form elements - jQuery.each( a, function() { - add( this.name, this.value ); - }); - - } else { - // If traditional, encode the "old" way (the way 1.3.2 or older - // did it), otherwise encode params recursively. - for ( var prefix in a ) { - buildParams( prefix, a[ prefix ], traditional, add ); - } - } - - // Return the resulting serialization - return s.join( "&" ).replace( r20, "+" ); - } -}); - -function buildParams( prefix, obj, traditional, add ) { - if ( jQuery.isArray( obj ) ) { - // Serialize array item. - jQuery.each( obj, function( i, v ) { - if ( traditional || rbracket.test( prefix ) ) { - // Treat each array item as a scalar. - add( prefix, v ); - - } else { - // If array item is non-scalar (array or object), encode its - // numeric index to resolve deserialization ambiguity issues. - // Note that rack (as of 1.0.0) can't currently deserialize - // nested arrays properly, and attempting to do so may cause - // a server error. Possible fixes are to modify rack's - // deserialization algorithm or to provide an option or flag - // to force array serialization to be shallow. - buildParams( prefix + "[" + ( typeof v === "object" ? i : "" ) + "]", v, traditional, add ); - } - }); - - } else if ( !traditional && jQuery.type( obj ) === "object" ) { - // Serialize object item. - for ( var name in obj ) { - buildParams( prefix + "[" + name + "]", obj[ name ], traditional, add ); - } - - } else { - // Serialize scalar item. - add( prefix, obj ); - } -} - -// This is still on the jQuery object... for now -// Want to move this to jQuery.ajax some day -jQuery.extend({ - - // Counter for holding the number of active queries - active: 0, - - // Last-Modified header cache for next request - lastModified: {}, - etag: {} - -}); - -/* Handles responses to an ajax request: - * - sets all responseXXX fields accordingly - * - finds the right dataType (mediates between content-type and expected dataType) - * - returns the corresponding response - */ -function ajaxHandleResponses( s, jqXHR, responses ) { - - var contents = s.contents, - dataTypes = s.dataTypes, - responseFields = s.responseFields, - ct, - type, - finalDataType, - firstDataType; - - // Fill responseXXX fields - for ( type in responseFields ) { - if ( type in responses ) { - jqXHR[ responseFields[type] ] = responses[ type ]; - } - } - - // Remove auto dataType and get content-type in the process - while( dataTypes[ 0 ] === "*" ) { - dataTypes.shift(); - if ( ct === undefined ) { - ct = s.mimeType || jqXHR.getResponseHeader( "content-type" ); - } - } - - // Check if we're dealing with a known content-type - if ( ct ) { - for ( type in contents ) { - if ( contents[ type ] && contents[ type ].test( ct ) ) { - dataTypes.unshift( type ); - break; - } - } - } - - // Check to see if we have a response for the expected dataType - if ( dataTypes[ 0 ] in responses ) { - finalDataType = dataTypes[ 0 ]; - } else { - // Try convertible dataTypes - for ( type in responses ) { - if ( !dataTypes[ 0 ] || s.converters[ type + " " + dataTypes[0] ] ) { - finalDataType = type; - break; - } - if ( !firstDataType ) { - firstDataType = type; - } - } - // Or just use first one - finalDataType = finalDataType || firstDataType; - } - - // If we found a dataType - // We add the dataType to the list if needed - // and return the corresponding response - if ( finalDataType ) { - if ( finalDataType !== dataTypes[ 0 ] ) { - dataTypes.unshift( finalDataType ); - } - return responses[ finalDataType ]; - } -} - -// Chain conversions given the request and the original response -function ajaxConvert( s, response ) { - - // Apply the dataFilter if provided - if ( s.dataFilter ) { - response = s.dataFilter( response, s.dataType ); - } - - var dataTypes = s.dataTypes, - converters = {}, - i, - key, - length = dataTypes.length, - tmp, - // Current and previous dataTypes - current = dataTypes[ 0 ], - prev, - // Conversion expression - conversion, - // Conversion function - conv, - // Conversion functions (transitive conversion) - conv1, - conv2; - - // For each dataType in the chain - for ( i = 1; i < length; i++ ) { - - // Create converters map - // with lowercased keys - if ( i === 1 ) { - for ( key in s.converters ) { - if ( typeof key === "string" ) { - converters[ key.toLowerCase() ] = s.converters[ key ]; - } - } - } - - // Get the dataTypes - prev = current; - current = dataTypes[ i ]; - - // If current is auto dataType, update it to prev - if ( current === "*" ) { - current = prev; - // If no auto and dataTypes are actually different - } else if ( prev !== "*" && prev !== current ) { - - // Get the converter - conversion = prev + " " + current; - conv = converters[ conversion ] || converters[ "* " + current ]; - - // If there is no direct converter, search transitively - if ( !conv ) { - conv2 = undefined; - for ( conv1 in converters ) { - tmp = conv1.split( " " ); - if ( tmp[ 0 ] === prev || tmp[ 0 ] === "*" ) { - conv2 = converters[ tmp[1] + " " + current ]; - if ( conv2 ) { - conv1 = converters[ conv1 ]; - if ( conv1 === true ) { - conv = conv2; - } else if ( conv2 === true ) { - conv = conv1; - } - break; - } - } - } - } - // If we found no converter, dispatch an error - if ( !( conv || conv2 ) ) { - jQuery.error( "No conversion from " + conversion.replace(" "," to ") ); - } - // If found converter is not an equivalence - if ( conv !== true ) { - // Convert with 1 or 2 converters accordingly - response = conv ? conv( response ) : conv2( conv1(response) ); - } - } - } - return response; -} - - - - -var jsc = jQuery.now(), - jsre = /(\=)\?(&|$)|\?\?/i; - -// Default jsonp settings -jQuery.ajaxSetup({ - jsonp: "callback", - jsonpCallback: function() { - return jQuery.expando + "_" + ( jsc++ ); - } -}); - -// Detect, normalize options and install callbacks for jsonp requests -jQuery.ajaxPrefilter( "json jsonp", function( s, originalSettings, jqXHR ) { - - var inspectData = ( typeof s.data === "string" ) && /^application\/x\-www\-form\-urlencoded/.test( s.contentType ); - - if ( s.dataTypes[ 0 ] === "jsonp" || - s.jsonp !== false && ( jsre.test( s.url ) || - inspectData && jsre.test( s.data ) ) ) { - - var responseContainer, - jsonpCallback = s.jsonpCallback = - jQuery.isFunction( s.jsonpCallback ) ? s.jsonpCallback() : s.jsonpCallback, - previous = window[ jsonpCallback ], - url = s.url, - data = s.data, - replace = "$1" + jsonpCallback + "$2"; - - if ( s.jsonp !== false ) { - url = url.replace( jsre, replace ); - if ( s.url === url ) { - if ( inspectData ) { - data = data.replace( jsre, replace ); - } - if ( s.data === data ) { - // Add callback manually - url += (/\?/.test( url ) ? "&" : "?") + s.jsonp + "=" + jsonpCallback; - } - } - } - - s.url = url; - s.data = data; - - // Install callback - window[ jsonpCallback ] = function( response ) { - responseContainer = [ response ]; - }; - - // Clean-up function - jqXHR.always(function() { - // Set callback back to previous value - window[ jsonpCallback ] = previous; - // Call if it was a function and we have a response - if ( responseContainer && jQuery.isFunction( previous ) ) { - window[ jsonpCallback ]( responseContainer[ 0 ] ); - } - }); - - // Use data converter to retrieve json after script execution - s.converters["script json"] = function() { - if ( !responseContainer ) { - jQuery.error( jsonpCallback + " was not called" ); - } - return responseContainer[ 0 ]; - }; - - // force json dataType - s.dataTypes[ 0 ] = "json"; - - // Delegate to script - return "script"; - } -}); - - - - -// Install script dataType -jQuery.ajaxSetup({ - accepts: { - script: "text/javascript, application/javascript, application/ecmascript, application/x-ecmascript" - }, - contents: { - script: /javascript|ecmascript/ - }, - converters: { - "text script": function( text ) { - jQuery.globalEval( text ); - return text; - } - } -}); - -// Handle cache's special case and global -jQuery.ajaxPrefilter( "script", function( s ) { - if ( s.cache === undefined ) { - s.cache = false; - } - if ( s.crossDomain ) { - s.type = "GET"; - s.global = false; - } -}); - -// Bind script tag hack transport -jQuery.ajaxTransport( "script", function(s) { - - // This transport only deals with cross domain requests - if ( s.crossDomain ) { - - var script, - head = document.head || document.getElementsByTagName( "head" )[0] || document.documentElement; - - return { - - send: function( _, callback ) { - - script = document.createElement( "script" ); - - script.async = "async"; - - if ( s.scriptCharset ) { - script.charset = s.scriptCharset; - } - - script.src = s.url; - - // Attach handlers for all browsers - script.onload = script.onreadystatechange = function( _, isAbort ) { - - if ( isAbort || !script.readyState || /loaded|complete/.test( script.readyState ) ) { - - // Handle memory leak in IE - script.onload = script.onreadystatechange = null; - - // Remove the script - if ( head && script.parentNode ) { - head.removeChild( script ); - } - - // Dereference the script - script = undefined; - - // Callback if not abort - if ( !isAbort ) { - callback( 200, "success" ); - } - } - }; - // Use insertBefore instead of appendChild to circumvent an IE6 bug. - // This arises when a base node is used (#2709 and #4378). - head.insertBefore( script, head.firstChild ); - }, - - abort: function() { - if ( script ) { - script.onload( 0, 1 ); - } - } - }; - } -}); - - - - -var // #5280: Internet Explorer will keep connections alive if we don't abort on unload - xhrOnUnloadAbort = window.ActiveXObject ? function() { - // Abort all pending requests - for ( var key in xhrCallbacks ) { - xhrCallbacks[ key ]( 0, 1 ); - } - } : false, - xhrId = 0, - xhrCallbacks; - -// Functions to create xhrs -function createStandardXHR() { - try { - return new window.XMLHttpRequest(); - } catch( e ) {} -} - -function createActiveXHR() { - try { - return new window.ActiveXObject( "Microsoft.XMLHTTP" ); - } catch( e ) {} -} - -// Create the request object -// (This is still attached to ajaxSettings for backward compatibility) -jQuery.ajaxSettings.xhr = window.ActiveXObject ? - /* Microsoft failed to properly - * implement the XMLHttpRequest in IE7 (can't request local files), - * so we use the ActiveXObject when it is available - * Additionally XMLHttpRequest can be disabled in IE7/IE8 so - * we need a fallback. - */ - function() { - return !this.isLocal && createStandardXHR() || createActiveXHR(); - } : - // For all other browsers, use the standard XMLHttpRequest object - createStandardXHR; - -// Determine support properties -(function( xhr ) { - jQuery.extend( jQuery.support, { - ajax: !!xhr, - cors: !!xhr && ( "withCredentials" in xhr ) - }); -})( jQuery.ajaxSettings.xhr() ); - -// Create transport if the browser can provide an xhr -if ( jQuery.support.ajax ) { - - jQuery.ajaxTransport(function( s ) { - // Cross domain only allowed if supported through XMLHttpRequest - if ( !s.crossDomain || jQuery.support.cors ) { - - var callback; - - return { - send: function( headers, complete ) { - - // Get a new xhr - var xhr = s.xhr(), - handle, - i; - - // Open the socket - // Passing null username, generates a login popup on Opera (#2865) - if ( s.username ) { - xhr.open( s.type, s.url, s.async, s.username, s.password ); - } else { - xhr.open( s.type, s.url, s.async ); - } - - // Apply custom fields if provided - if ( s.xhrFields ) { - for ( i in s.xhrFields ) { - xhr[ i ] = s.xhrFields[ i ]; - } - } - - // Override mime type if needed - if ( s.mimeType && xhr.overrideMimeType ) { - xhr.overrideMimeType( s.mimeType ); - } - - // X-Requested-With header - // For cross-domain requests, seeing as conditions for a preflight are - // akin to a jigsaw puzzle, we simply never set it to be sure. - // (it can always be set on a per-request basis or even using ajaxSetup) - // For same-domain requests, won't change header if already provided. - if ( !s.crossDomain && !headers["X-Requested-With"] ) { - headers[ "X-Requested-With" ] = "XMLHttpRequest"; - } - - // Need an extra try/catch for cross domain requests in Firefox 3 - try { - for ( i in headers ) { - xhr.setRequestHeader( i, headers[ i ] ); - } - } catch( _ ) {} - - // Do send the request - // This may raise an exception which is actually - // handled in jQuery.ajax (so no try/catch here) - xhr.send( ( s.hasContent && s.data ) || null ); - - // Listener - callback = function( _, isAbort ) { - - var status, - statusText, - responseHeaders, - responses, - xml; - - // Firefox throws exceptions when accessing properties - // of an xhr when a network error occured - // http://helpful.knobs-dials.com/index.php/Component_returned_failure_code:_0x80040111_(NS_ERROR_NOT_AVAILABLE) - try { - - // Was never called and is aborted or complete - if ( callback && ( isAbort || xhr.readyState === 4 ) ) { - - // Only called once - callback = undefined; - - // Do not keep as active anymore - if ( handle ) { - xhr.onreadystatechange = jQuery.noop; - if ( xhrOnUnloadAbort ) { - delete xhrCallbacks[ handle ]; - } - } - - // If it's an abort - if ( isAbort ) { - // Abort it manually if needed - if ( xhr.readyState !== 4 ) { - xhr.abort(); - } - } else { - status = xhr.status; - responseHeaders = xhr.getAllResponseHeaders(); - responses = {}; - xml = xhr.responseXML; - - // Construct response list - if ( xml && xml.documentElement /* #4958 */ ) { - responses.xml = xml; - } - - // When requesting binary data, IE6-9 will throw an exception - // on any attempt to access responseText (#11426) - try { - responses.text = xhr.responseText; - } catch( _ ) { - } - - // Firefox throws an exception when accessing - // statusText for faulty cross-domain requests - try { - statusText = xhr.statusText; - } catch( e ) { - // We normalize with Webkit giving an empty statusText - statusText = ""; - } - - // Filter status for non standard behaviors - - // If the request is local and we have data: assume a success - // (success with no data won't get notified, that's the best we - // can do given current implementations) - if ( !status && s.isLocal && !s.crossDomain ) { - status = responses.text ? 200 : 404; - // IE - #1450: sometimes returns 1223 when it should be 204 - } else if ( status === 1223 ) { - status = 204; - } - } - } - } catch( firefoxAccessException ) { - if ( !isAbort ) { - complete( -1, firefoxAccessException ); - } - } - - // Call complete if needed - if ( responses ) { - complete( status, statusText, responses, responseHeaders ); - } - }; - - // if we're in sync mode or it's in cache - // and has been retrieved directly (IE6 & IE7) - // we need to manually fire the callback - if ( !s.async || xhr.readyState === 4 ) { - callback(); - } else { - handle = ++xhrId; - if ( xhrOnUnloadAbort ) { - // Create the active xhrs callbacks list if needed - // and attach the unload handler - if ( !xhrCallbacks ) { - xhrCallbacks = {}; - jQuery( window ).unload( xhrOnUnloadAbort ); - } - // Add to list of active xhrs callbacks - xhrCallbacks[ handle ] = callback; - } - xhr.onreadystatechange = callback; - } - }, - - abort: function() { - if ( callback ) { - callback(0,1); - } - } - }; - } - }); -} - - - - -var elemdisplay = {}, - iframe, iframeDoc, - rfxtypes = /^(?:toggle|show|hide)$/, - rfxnum = /^([+\-]=)?([\d+.\-]+)([a-z%]*)$/i, - timerId, - fxAttrs = [ - // height animations - [ "height", "marginTop", "marginBottom", "paddingTop", "paddingBottom" ], - // width animations - [ "width", "marginLeft", "marginRight", "paddingLeft", "paddingRight" ], - // opacity animations - [ "opacity" ] - ], - fxNow; - -jQuery.fn.extend({ - show: function( speed, easing, callback ) { - var elem, display; - - if ( speed || speed === 0 ) { - return this.animate( genFx("show", 3), speed, easing, callback ); - - } else { - for ( var i = 0, j = this.length; i < j; i++ ) { - elem = this[ i ]; - - if ( elem.style ) { - display = elem.style.display; - - // Reset the inline display of this element to learn if it is - // being hidden by cascaded rules or not - if ( !jQuery._data(elem, "olddisplay") && display === "none" ) { - display = elem.style.display = ""; - } - - // Set elements which have been overridden with display: none - // in a stylesheet to whatever the default browser style is - // for such an element - if ( (display === "" && jQuery.css(elem, "display") === "none") || - !jQuery.contains( elem.ownerDocument.documentElement, elem ) ) { - jQuery._data( elem, "olddisplay", defaultDisplay(elem.nodeName) ); - } - } - } - - // Set the display of most of the elements in a second loop - // to avoid the constant reflow - for ( i = 0; i < j; i++ ) { - elem = this[ i ]; - - if ( elem.style ) { - display = elem.style.display; - - if ( display === "" || display === "none" ) { - elem.style.display = jQuery._data( elem, "olddisplay" ) || ""; - } - } - } - - return this; - } - }, - - hide: function( speed, easing, callback ) { - if ( speed || speed === 0 ) { - return this.animate( genFx("hide", 3), speed, easing, callback); - - } else { - var elem, display, - i = 0, - j = this.length; - - for ( ; i < j; i++ ) { - elem = this[i]; - if ( elem.style ) { - display = jQuery.css( elem, "display" ); - - if ( display !== "none" && !jQuery._data( elem, "olddisplay" ) ) { - jQuery._data( elem, "olddisplay", display ); - } - } - } - - // Set the display of the elements in a second loop - // to avoid the constant reflow - for ( i = 0; i < j; i++ ) { - if ( this[i].style ) { - this[i].style.display = "none"; - } - } - - return this; - } - }, - - // Save the old toggle function - _toggle: jQuery.fn.toggle, - - toggle: function( fn, fn2, callback ) { - var bool = typeof fn === "boolean"; - - if ( jQuery.isFunction(fn) && jQuery.isFunction(fn2) ) { - this._toggle.apply( this, arguments ); - - } else if ( fn == null || bool ) { - this.each(function() { - var state = bool ? fn : jQuery(this).is(":hidden"); - jQuery(this)[ state ? "show" : "hide" ](); - }); - - } else { - this.animate(genFx("toggle", 3), fn, fn2, callback); - } - - return this; - }, - - fadeTo: function( speed, to, easing, callback ) { - return this.filter(":hidden").css("opacity", 0).show().end() - .animate({opacity: to}, speed, easing, callback); - }, - - animate: function( prop, speed, easing, callback ) { - var optall = jQuery.speed( speed, easing, callback ); - - if ( jQuery.isEmptyObject( prop ) ) { - return this.each( optall.complete, [ false ] ); - } - - // Do not change referenced properties as per-property easing will be lost - prop = jQuery.extend( {}, prop ); - - function doAnimation() { - // XXX 'this' does not always have a nodeName when running the - // test suite - - if ( optall.queue === false ) { - jQuery._mark( this ); - } - - var opt = jQuery.extend( {}, optall ), - isElement = this.nodeType === 1, - hidden = isElement && jQuery(this).is(":hidden"), - name, val, p, e, hooks, replace, - parts, start, end, unit, - method; - - // will store per property easing and be used to determine when an animation is complete - opt.animatedProperties = {}; - - // first pass over propertys to expand / normalize - for ( p in prop ) { - name = jQuery.camelCase( p ); - if ( p !== name ) { - prop[ name ] = prop[ p ]; - delete prop[ p ]; - } - - if ( ( hooks = jQuery.cssHooks[ name ] ) && "expand" in hooks ) { - replace = hooks.expand( prop[ name ] ); - delete prop[ name ]; - - // not quite $.extend, this wont overwrite keys already present. - // also - reusing 'p' from above because we have the correct "name" - for ( p in replace ) { - if ( ! ( p in prop ) ) { - prop[ p ] = replace[ p ]; - } - } - } - } - - for ( name in prop ) { - val = prop[ name ]; - // easing resolution: per property > opt.specialEasing > opt.easing > 'swing' (default) - if ( jQuery.isArray( val ) ) { - opt.animatedProperties[ name ] = val[ 1 ]; - val = prop[ name ] = val[ 0 ]; - } else { - opt.animatedProperties[ name ] = opt.specialEasing && opt.specialEasing[ name ] || opt.easing || 'swing'; - } - - if ( val === "hide" && hidden || val === "show" && !hidden ) { - return opt.complete.call( this ); - } - - if ( isElement && ( name === "height" || name === "width" ) ) { - // Make sure that nothing sneaks out - // Record all 3 overflow attributes because IE does not - // change the overflow attribute when overflowX and - // overflowY are set to the same value - opt.overflow = [ this.style.overflow, this.style.overflowX, this.style.overflowY ]; - - // Set display property to inline-block for height/width - // animations on inline elements that are having width/height animated - if ( jQuery.css( this, "display" ) === "inline" && - jQuery.css( this, "float" ) === "none" ) { - - // inline-level elements accept inline-block; - // block-level elements need to be inline with layout - if ( !jQuery.support.inlineBlockNeedsLayout || defaultDisplay( this.nodeName ) === "inline" ) { - this.style.display = "inline-block"; - - } else { - this.style.zoom = 1; - } - } - } - } - - if ( opt.overflow != null ) { - this.style.overflow = "hidden"; - } - - for ( p in prop ) { - e = new jQuery.fx( this, opt, p ); - val = prop[ p ]; - - if ( rfxtypes.test( val ) ) { - - // Tracks whether to show or hide based on private - // data attached to the element - method = jQuery._data( this, "toggle" + p ) || ( val === "toggle" ? hidden ? "show" : "hide" : 0 ); - if ( method ) { - jQuery._data( this, "toggle" + p, method === "show" ? "hide" : "show" ); - e[ method ](); - } else { - e[ val ](); - } - - } else { - parts = rfxnum.exec( val ); - start = e.cur(); - - if ( parts ) { - end = parseFloat( parts[2] ); - unit = parts[3] || ( jQuery.cssNumber[ p ] ? "" : "px" ); - - // We need to compute starting value - if ( unit !== "px" ) { - jQuery.style( this, p, (end || 1) + unit); - start = ( (end || 1) / e.cur() ) * start; - jQuery.style( this, p, start + unit); - } - - // If a +=/-= token was provided, we're doing a relative animation - if ( parts[1] ) { - end = ( (parts[ 1 ] === "-=" ? -1 : 1) * end ) + start; - } - - e.custom( start, end, unit ); - - } else { - e.custom( start, val, "" ); - } - } - } - - // For JS strict compliance - return true; - } - - return optall.queue === false ? - this.each( doAnimation ) : - this.queue( optall.queue, doAnimation ); - }, - - stop: function( type, clearQueue, gotoEnd ) { - if ( typeof type !== "string" ) { - gotoEnd = clearQueue; - clearQueue = type; - type = undefined; - } - if ( clearQueue && type !== false ) { - this.queue( type || "fx", [] ); - } - - return this.each(function() { - var index, - hadTimers = false, - timers = jQuery.timers, - data = jQuery._data( this ); - - // clear marker counters if we know they won't be - if ( !gotoEnd ) { - jQuery._unmark( true, this ); - } - - function stopQueue( elem, data, index ) { - var hooks = data[ index ]; - jQuery.removeData( elem, index, true ); - hooks.stop( gotoEnd ); - } - - if ( type == null ) { - for ( index in data ) { - if ( data[ index ] && data[ index ].stop && index.indexOf(".run") === index.length - 4 ) { - stopQueue( this, data, index ); - } - } - } else if ( data[ index = type + ".run" ] && data[ index ].stop ){ - stopQueue( this, data, index ); - } - - for ( index = timers.length; index--; ) { - if ( timers[ index ].elem === this && (type == null || timers[ index ].queue === type) ) { - if ( gotoEnd ) { - - // force the next step to be the last - timers[ index ]( true ); - } else { - timers[ index ].saveState(); - } - hadTimers = true; - timers.splice( index, 1 ); - } - } - - // start the next in the queue if the last step wasn't forced - // timers currently will call their complete callbacks, which will dequeue - // but only if they were gotoEnd - if ( !( gotoEnd && hadTimers ) ) { - jQuery.dequeue( this, type ); - } - }); - } - -}); - -// Animations created synchronously will run synchronously -function createFxNow() { - setTimeout( clearFxNow, 0 ); - return ( fxNow = jQuery.now() ); -} - -function clearFxNow() { - fxNow = undefined; -} - -// Generate parameters to create a standard animation -function genFx( type, num ) { - var obj = {}; - - jQuery.each( fxAttrs.concat.apply([], fxAttrs.slice( 0, num )), function() { - obj[ this ] = type; - }); - - return obj; -} - -// Generate shortcuts for custom animations -jQuery.each({ - slideDown: genFx( "show", 1 ), - slideUp: genFx( "hide", 1 ), - slideToggle: genFx( "toggle", 1 ), - fadeIn: { opacity: "show" }, - fadeOut: { opacity: "hide" }, - fadeToggle: { opacity: "toggle" } -}, function( name, props ) { - jQuery.fn[ name ] = function( speed, easing, callback ) { - return this.animate( props, speed, easing, callback ); - }; -}); - -jQuery.extend({ - speed: function( speed, easing, fn ) { - var opt = speed && typeof speed === "object" ? jQuery.extend( {}, speed ) : { - complete: fn || !fn && easing || - jQuery.isFunction( speed ) && speed, - duration: speed, - easing: fn && easing || easing && !jQuery.isFunction( easing ) && easing - }; - - opt.duration = jQuery.fx.off ? 0 : typeof opt.duration === "number" ? opt.duration : - opt.duration in jQuery.fx.speeds ? jQuery.fx.speeds[ opt.duration ] : jQuery.fx.speeds._default; - - // normalize opt.queue - true/undefined/null -> "fx" - if ( opt.queue == null || opt.queue === true ) { - opt.queue = "fx"; - } - - // Queueing - opt.old = opt.complete; - - opt.complete = function( noUnmark ) { - if ( jQuery.isFunction( opt.old ) ) { - opt.old.call( this ); - } - - if ( opt.queue ) { - jQuery.dequeue( this, opt.queue ); - } else if ( noUnmark !== false ) { - jQuery._unmark( this ); - } - }; - - return opt; - }, - - easing: { - linear: function( p ) { - return p; - }, - swing: function( p ) { - return ( -Math.cos( p*Math.PI ) / 2 ) + 0.5; - } - }, - - timers: [], - - fx: function( elem, options, prop ) { - this.options = options; - this.elem = elem; - this.prop = prop; - - options.orig = options.orig || {}; - } - -}); - -jQuery.fx.prototype = { - // Simple function for setting a style value - update: function() { - if ( this.options.step ) { - this.options.step.call( this.elem, this.now, this ); - } - - ( jQuery.fx.step[ this.prop ] || jQuery.fx.step._default )( this ); - }, - - // Get the current size - cur: function() { - if ( this.elem[ this.prop ] != null && (!this.elem.style || this.elem.style[ this.prop ] == null) ) { - return this.elem[ this.prop ]; - } - - var parsed, - r = jQuery.css( this.elem, this.prop ); - // Empty strings, null, undefined and "auto" are converted to 0, - // complex values such as "rotate(1rad)" are returned as is, - // simple values such as "10px" are parsed to Float. - return isNaN( parsed = parseFloat( r ) ) ? !r || r === "auto" ? 0 : r : parsed; - }, - - // Start an animation from one number to another - custom: function( from, to, unit ) { - var self = this, - fx = jQuery.fx; - - this.startTime = fxNow || createFxNow(); - this.end = to; - this.now = this.start = from; - this.pos = this.state = 0; - this.unit = unit || this.unit || ( jQuery.cssNumber[ this.prop ] ? "" : "px" ); - - function t( gotoEnd ) { - return self.step( gotoEnd ); - } - - t.queue = this.options.queue; - t.elem = this.elem; - t.saveState = function() { - if ( jQuery._data( self.elem, "fxshow" + self.prop ) === undefined ) { - if ( self.options.hide ) { - jQuery._data( self.elem, "fxshow" + self.prop, self.start ); - } else if ( self.options.show ) { - jQuery._data( self.elem, "fxshow" + self.prop, self.end ); - } - } - }; - - if ( t() && jQuery.timers.push(t) && !timerId ) { - timerId = setInterval( fx.tick, fx.interval ); - } - }, - - // Simple 'show' function - show: function() { - var dataShow = jQuery._data( this.elem, "fxshow" + this.prop ); - - // Remember where we started, so that we can go back to it later - this.options.orig[ this.prop ] = dataShow || jQuery.style( this.elem, this.prop ); - this.options.show = true; - - // Begin the animation - // Make sure that we start at a small width/height to avoid any flash of content - if ( dataShow !== undefined ) { - // This show is picking up where a previous hide or show left off - this.custom( this.cur(), dataShow ); - } else { - this.custom( this.prop === "width" || this.prop === "height" ? 1 : 0, this.cur() ); - } - - // Start by showing the element - jQuery( this.elem ).show(); - }, - - // Simple 'hide' function - hide: function() { - // Remember where we started, so that we can go back to it later - this.options.orig[ this.prop ] = jQuery._data( this.elem, "fxshow" + this.prop ) || jQuery.style( this.elem, this.prop ); - this.options.hide = true; - - // Begin the animation - this.custom( this.cur(), 0 ); - }, - - // Each step of an animation - step: function( gotoEnd ) { - var p, n, complete, - t = fxNow || createFxNow(), - done = true, - elem = this.elem, - options = this.options; - - if ( gotoEnd || t >= options.duration + this.startTime ) { - this.now = this.end; - this.pos = this.state = 1; - this.update(); - - options.animatedProperties[ this.prop ] = true; - - for ( p in options.animatedProperties ) { - if ( options.animatedProperties[ p ] !== true ) { - done = false; - } - } - - if ( done ) { - // Reset the overflow - if ( options.overflow != null && !jQuery.support.shrinkWrapBlocks ) { - - jQuery.each( [ "", "X", "Y" ], function( index, value ) { - elem.style[ "overflow" + value ] = options.overflow[ index ]; - }); - } - - // Hide the element if the "hide" operation was done - if ( options.hide ) { - jQuery( elem ).hide(); - } - - // Reset the properties, if the item has been hidden or shown - if ( options.hide || options.show ) { - for ( p in options.animatedProperties ) { - jQuery.style( elem, p, options.orig[ p ] ); - jQuery.removeData( elem, "fxshow" + p, true ); - // Toggle data is no longer needed - jQuery.removeData( elem, "toggle" + p, true ); - } - } - - // Execute the complete function - // in the event that the complete function throws an exception - // we must ensure it won't be called twice. #5684 - - complete = options.complete; - if ( complete ) { - - options.complete = false; - complete.call( elem ); - } - } - - return false; - - } else { - // classical easing cannot be used with an Infinity duration - if ( options.duration == Infinity ) { - this.now = t; - } else { - n = t - this.startTime; - this.state = n / options.duration; - - // Perform the easing function, defaults to swing - this.pos = jQuery.easing[ options.animatedProperties[this.prop] ]( this.state, n, 0, 1, options.duration ); - this.now = this.start + ( (this.end - this.start) * this.pos ); - } - // Perform the next step of the animation - this.update(); - } - - return true; - } -}; - -jQuery.extend( jQuery.fx, { - tick: function() { - var timer, - timers = jQuery.timers, - i = 0; - - for ( ; i < timers.length; i++ ) { - timer = timers[ i ]; - // Checks the timer has not already been removed - if ( !timer() && timers[ i ] === timer ) { - timers.splice( i--, 1 ); - } - } - - if ( !timers.length ) { - jQuery.fx.stop(); - } - }, - - interval: 13, - - stop: function() { - clearInterval( timerId ); - timerId = null; - }, - - speeds: { - slow: 600, - fast: 200, - // Default speed - _default: 400 - }, - - step: { - opacity: function( fx ) { - jQuery.style( fx.elem, "opacity", fx.now ); - }, - - _default: function( fx ) { - if ( fx.elem.style && fx.elem.style[ fx.prop ] != null ) { - fx.elem.style[ fx.prop ] = fx.now + fx.unit; - } else { - fx.elem[ fx.prop ] = fx.now; - } - } - } -}); - -// Ensure props that can't be negative don't go there on undershoot easing -jQuery.each( fxAttrs.concat.apply( [], fxAttrs ), function( i, prop ) { - // exclude marginTop, marginLeft, marginBottom and marginRight from this list - if ( prop.indexOf( "margin" ) ) { - jQuery.fx.step[ prop ] = function( fx ) { - jQuery.style( fx.elem, prop, Math.max(0, fx.now) + fx.unit ); - }; - } -}); - -if ( jQuery.expr && jQuery.expr.filters ) { - jQuery.expr.filters.animated = function( elem ) { - return jQuery.grep(jQuery.timers, function( fn ) { - return elem === fn.elem; - }).length; - }; -} - -// Try to restore the default display value of an element -function defaultDisplay( nodeName ) { - - if ( !elemdisplay[ nodeName ] ) { - - var body = document.body, - elem = jQuery( "<" + nodeName + ">" ).appendTo( body ), - display = elem.css( "display" ); - elem.remove(); - - // If the simple way fails, - // get element's real default display by attaching it to a temp iframe - if ( display === "none" || display === "" ) { - // No iframe to use yet, so create it - if ( !iframe ) { - iframe = document.createElement( "iframe" ); - iframe.frameBorder = iframe.width = iframe.height = 0; - } - - body.appendChild( iframe ); - - // Create a cacheable copy of the iframe document on first call. - // IE and Opera will allow us to reuse the iframeDoc without re-writing the fake HTML - // document to it; WebKit & Firefox won't allow reusing the iframe document. - if ( !iframeDoc || !iframe.createElement ) { - iframeDoc = ( iframe.contentWindow || iframe.contentDocument ).document; - iframeDoc.write( ( jQuery.support.boxModel ? "<!doctype html>" : "" ) + "<html><body>" ); - iframeDoc.close(); - } - - elem = iframeDoc.createElement( nodeName ); - - iframeDoc.body.appendChild( elem ); - - display = jQuery.css( elem, "display" ); - body.removeChild( iframe ); - } - - // Store the correct default display - elemdisplay[ nodeName ] = display; - } - - return elemdisplay[ nodeName ]; -} - - - - -var getOffset, - rtable = /^t(?:able|d|h)$/i, - rroot = /^(?:body|html)$/i; - -if ( "getBoundingClientRect" in document.documentElement ) { - getOffset = function( elem, doc, docElem, box ) { - try { - box = elem.getBoundingClientRect(); - } catch(e) {} - - // Make sure we're not dealing with a disconnected DOM node - if ( !box || !jQuery.contains( docElem, elem ) ) { - return box ? { top: box.top, left: box.left } : { top: 0, left: 0 }; - } - - var body = doc.body, - win = getWindow( doc ), - clientTop = docElem.clientTop || body.clientTop || 0, - clientLeft = docElem.clientLeft || body.clientLeft || 0, - scrollTop = win.pageYOffset || jQuery.support.boxModel && docElem.scrollTop || body.scrollTop, - scrollLeft = win.pageXOffset || jQuery.support.boxModel && docElem.scrollLeft || body.scrollLeft, - top = box.top + scrollTop - clientTop, - left = box.left + scrollLeft - clientLeft; - - return { top: top, left: left }; - }; - -} else { - getOffset = function( elem, doc, docElem ) { - var computedStyle, - offsetParent = elem.offsetParent, - prevOffsetParent = elem, - body = doc.body, - defaultView = doc.defaultView, - prevComputedStyle = defaultView ? defaultView.getComputedStyle( elem, null ) : elem.currentStyle, - top = elem.offsetTop, - left = elem.offsetLeft; - - while ( (elem = elem.parentNode) && elem !== body && elem !== docElem ) { - if ( jQuery.support.fixedPosition && prevComputedStyle.position === "fixed" ) { - break; - } - - computedStyle = defaultView ? defaultView.getComputedStyle(elem, null) : elem.currentStyle; - top -= elem.scrollTop; - left -= elem.scrollLeft; - - if ( elem === offsetParent ) { - top += elem.offsetTop; - left += elem.offsetLeft; - - if ( jQuery.support.doesNotAddBorder && !(jQuery.support.doesAddBorderForTableAndCells && rtable.test(elem.nodeName)) ) { - top += parseFloat( computedStyle.borderTopWidth ) || 0; - left += parseFloat( computedStyle.borderLeftWidth ) || 0; - } - - prevOffsetParent = offsetParent; - offsetParent = elem.offsetParent; - } - - if ( jQuery.support.subtractsBorderForOverflowNotVisible && computedStyle.overflow !== "visible" ) { - top += parseFloat( computedStyle.borderTopWidth ) || 0; - left += parseFloat( computedStyle.borderLeftWidth ) || 0; - } - - prevComputedStyle = computedStyle; - } - - if ( prevComputedStyle.position === "relative" || prevComputedStyle.position === "static" ) { - top += body.offsetTop; - left += body.offsetLeft; - } - - if ( jQuery.support.fixedPosition && prevComputedStyle.position === "fixed" ) { - top += Math.max( docElem.scrollTop, body.scrollTop ); - left += Math.max( docElem.scrollLeft, body.scrollLeft ); - } - - return { top: top, left: left }; - }; -} - -jQuery.fn.offset = function( options ) { - if ( arguments.length ) { - return options === undefined ? - this : - this.each(function( i ) { - jQuery.offset.setOffset( this, options, i ); - }); - } - - var elem = this[0], - doc = elem && elem.ownerDocument; - - if ( !doc ) { - return null; - } - - if ( elem === doc.body ) { - return jQuery.offset.bodyOffset( elem ); - } - - return getOffset( elem, doc, doc.documentElement ); -}; - -jQuery.offset = { - - bodyOffset: function( body ) { - var top = body.offsetTop, - left = body.offsetLeft; - - if ( jQuery.support.doesNotIncludeMarginInBodyOffset ) { - top += parseFloat( jQuery.css(body, "marginTop") ) || 0; - left += parseFloat( jQuery.css(body, "marginLeft") ) || 0; - } - - return { top: top, left: left }; - }, - - setOffset: function( elem, options, i ) { - var position = jQuery.css( elem, "position" ); - - // set position first, in-case top/left are set even on static elem - if ( position === "static" ) { - elem.style.position = "relative"; - } - - var curElem = jQuery( elem ), - curOffset = curElem.offset(), - curCSSTop = jQuery.css( elem, "top" ), - curCSSLeft = jQuery.css( elem, "left" ), - calculatePosition = ( position === "absolute" || position === "fixed" ) && jQuery.inArray("auto", [curCSSTop, curCSSLeft]) > -1, - props = {}, curPosition = {}, curTop, curLeft; - - // need to be able to calculate position if either top or left is auto and position is either absolute or fixed - if ( calculatePosition ) { - curPosition = curElem.position(); - curTop = curPosition.top; - curLeft = curPosition.left; - } else { - curTop = parseFloat( curCSSTop ) || 0; - curLeft = parseFloat( curCSSLeft ) || 0; - } - - if ( jQuery.isFunction( options ) ) { - options = options.call( elem, i, curOffset ); - } - - if ( options.top != null ) { - props.top = ( options.top - curOffset.top ) + curTop; - } - if ( options.left != null ) { - props.left = ( options.left - curOffset.left ) + curLeft; - } - - if ( "using" in options ) { - options.using.call( elem, props ); - } else { - curElem.css( props ); - } - } -}; - - -jQuery.fn.extend({ - - position: function() { - if ( !this[0] ) { - return null; - } - - var elem = this[0], - - // Get *real* offsetParent - offsetParent = this.offsetParent(), - - // Get correct offsets - offset = this.offset(), - parentOffset = rroot.test(offsetParent[0].nodeName) ? { top: 0, left: 0 } : offsetParent.offset(); - - // Subtract element margins - // note: when an element has margin: auto the offsetLeft and marginLeft - // are the same in Safari causing offset.left to incorrectly be 0 - offset.top -= parseFloat( jQuery.css(elem, "marginTop") ) || 0; - offset.left -= parseFloat( jQuery.css(elem, "marginLeft") ) || 0; - - // Add offsetParent borders - parentOffset.top += parseFloat( jQuery.css(offsetParent[0], "borderTopWidth") ) || 0; - parentOffset.left += parseFloat( jQuery.css(offsetParent[0], "borderLeftWidth") ) || 0; - - // Subtract the two offsets - return { - top: offset.top - parentOffset.top, - left: offset.left - parentOffset.left - }; - }, - - offsetParent: function() { - return this.map(function() { - var offsetParent = this.offsetParent || document.body; - while ( offsetParent && (!rroot.test(offsetParent.nodeName) && jQuery.css(offsetParent, "position") === "static") ) { - offsetParent = offsetParent.offsetParent; - } - return offsetParent; - }); - } -}); - - -// Create scrollLeft and scrollTop methods -jQuery.each( {scrollLeft: "pageXOffset", scrollTop: "pageYOffset"}, function( method, prop ) { - var top = /Y/.test( prop ); - - jQuery.fn[ method ] = function( val ) { - return jQuery.access( this, function( elem, method, val ) { - var win = getWindow( elem ); - - if ( val === undefined ) { - return win ? (prop in win) ? win[ prop ] : - jQuery.support.boxModel && win.document.documentElement[ method ] || - win.document.body[ method ] : - elem[ method ]; - } - - if ( win ) { - win.scrollTo( - !top ? val : jQuery( win ).scrollLeft(), - top ? val : jQuery( win ).scrollTop() - ); - - } else { - elem[ method ] = val; - } - }, method, val, arguments.length, null ); - }; -}); - -function getWindow( elem ) { - return jQuery.isWindow( elem ) ? - elem : - elem.nodeType === 9 ? - elem.defaultView || elem.parentWindow : - false; -} - - - - -// Create width, height, innerHeight, innerWidth, outerHeight and outerWidth methods -jQuery.each( { Height: "height", Width: "width" }, function( name, type ) { - var clientProp = "client" + name, - scrollProp = "scroll" + name, - offsetProp = "offset" + name; - - // innerHeight and innerWidth - jQuery.fn[ "inner" + name ] = function() { - var elem = this[0]; - return elem ? - elem.style ? - parseFloat( jQuery.css( elem, type, "padding" ) ) : - this[ type ]() : - null; - }; - - // outerHeight and outerWidth - jQuery.fn[ "outer" + name ] = function( margin ) { - var elem = this[0]; - return elem ? - elem.style ? - parseFloat( jQuery.css( elem, type, margin ? "margin" : "border" ) ) : - this[ type ]() : - null; - }; - - jQuery.fn[ type ] = function( value ) { - return jQuery.access( this, function( elem, type, value ) { - var doc, docElemProp, orig, ret; - - if ( jQuery.isWindow( elem ) ) { - // 3rd condition allows Nokia support, as it supports the docElem prop but not CSS1Compat - doc = elem.document; - docElemProp = doc.documentElement[ clientProp ]; - return jQuery.support.boxModel && docElemProp || - doc.body && doc.body[ clientProp ] || docElemProp; - } - - // Get document width or height - if ( elem.nodeType === 9 ) { - // Either scroll[Width/Height] or offset[Width/Height], whichever is greater - doc = elem.documentElement; - - // when a window > document, IE6 reports a offset[Width/Height] > client[Width/Height] - // so we can't use max, as it'll choose the incorrect offset[Width/Height] - // instead we use the correct client[Width/Height] - // support:IE6 - if ( doc[ clientProp ] >= doc[ scrollProp ] ) { - return doc[ clientProp ]; - } - - return Math.max( - elem.body[ scrollProp ], doc[ scrollProp ], - elem.body[ offsetProp ], doc[ offsetProp ] - ); - } - - // Get width or height on the element - if ( value === undefined ) { - orig = jQuery.css( elem, type ); - ret = parseFloat( orig ); - return jQuery.isNumeric( ret ) ? ret : orig; - } - - // Set the width or height on the element - jQuery( elem ).css( type, value ); - }, type, value, arguments.length, null ); - }; -}); - - - - -// Expose jQuery to the global object -window.jQuery = window.$ = jQuery; - -// Expose jQuery as an AMD module, but only for AMD loaders that -// understand the issues with loading multiple versions of jQuery -// in a page that all might call define(). The loader will indicate -// they have special allowances for multiple jQuery versions by -// specifying define.amd.jQuery = true. Register as a named module, -// since jQuery can be concatenated with other files that may use define, -// but not use a proper concatenation script that understands anonymous -// AMD modules. A named AMD is safest and most robust way to register. -// Lowercase jquery is used because AMD module names are derived from -// file names, and jQuery is normally delivered in a lowercase file name. -// Do this after creating the global so that if an AMD module wants to call -// noConflict to hide this version of jQuery, it will work. -if ( typeof define === "function" && define.amd && define.amd.jQuery ) { - define( "jquery", [], function () { return jQuery; } ); -} - - - -})( window ); diff --git a/admin/bower_components/select2/tests/vendor/qunit-1.23.1.css b/admin/bower_components/select2/tests/vendor/qunit-1.23.1.css deleted file mode 100644 index ae68fc4..0000000 --- a/admin/bower_components/select2/tests/vendor/qunit-1.23.1.css +++ /dev/null @@ -1,305 +0,0 @@ -/*! - * QUnit 1.23.1 - * https://qunitjs.com/ - * - * Copyright jQuery Foundation and other contributors - * Released under the MIT license - * https://jquery.org/license - * - * Date: 2016-04-12T17:29Z - */ - -/** Font Family and Sizes */ - -#qunit-tests, #qunit-header, #qunit-banner, #qunit-testrunner-toolbar, #qunit-filteredTest, #qunit-userAgent, #qunit-testresult { - font-family: "Helvetica Neue Light", "HelveticaNeue-Light", "Helvetica Neue", Calibri, Helvetica, Arial, sans-serif; -} - -#qunit-testrunner-toolbar, #qunit-filteredTest, #qunit-userAgent, #qunit-testresult, #qunit-tests li { font-size: small; } -#qunit-tests { font-size: smaller; } - - -/** Resets */ - -#qunit-tests, #qunit-header, #qunit-banner, #qunit-filteredTest, #qunit-userAgent, #qunit-testresult, #qunit-modulefilter { - margin: 0; - padding: 0; -} - - -/** Header */ - -#qunit-header { - padding: 0.5em 0 0.5em 1em; - - color: #8699A4; - background-color: #0D3349; - - font-size: 1.5em; - line-height: 1em; - font-weight: 400; - - border-radius: 5px 5px 0 0; -} - -#qunit-header a { - text-decoration: none; - color: #C2CCD1; -} - -#qunit-header a:hover, -#qunit-header a:focus { - color: #FFF; -} - -#qunit-testrunner-toolbar label { - display: inline-block; - padding: 0 0.5em 0 0.1em; -} - -#qunit-banner { - height: 5px; -} - -#qunit-testrunner-toolbar { - padding: 0.5em 1em 0.5em 1em; - color: #5E740B; - background-color: #EEE; - overflow: hidden; -} - -#qunit-filteredTest { - padding: 0.5em 1em 0.5em 1em; - background-color: #F4FF77; - color: #366097; -} - -#qunit-userAgent { - padding: 0.5em 1em 0.5em 1em; - background-color: #2B81AF; - color: #FFF; - text-shadow: rgba(0, 0, 0, 0.5) 2px 2px 1px; -} - -#qunit-modulefilter-container { - float: right; - padding: 0.2em; -} - -.qunit-url-config { - display: inline-block; - padding: 0.1em; -} - -.qunit-filter { - display: block; - float: right; - margin-left: 1em; -} - -/** Tests: Pass/Fail */ - -#qunit-tests { - list-style-position: inside; -} - -#qunit-tests li { - padding: 0.4em 1em 0.4em 1em; - border-bottom: 1px solid #FFF; - list-style-position: inside; -} - -#qunit-tests > li { - display: none; -} - -#qunit-tests li.running, -#qunit-tests li.pass, -#qunit-tests li.fail, -#qunit-tests li.skipped { - display: list-item; -} - -#qunit-tests.hidepass { - position: relative; -} - -#qunit-tests.hidepass li.running, -#qunit-tests.hidepass li.pass { - visibility: hidden; - position: absolute; - width: 0; - height: 0; - padding: 0; - border: 0; - margin: 0; -} - -#qunit-tests li strong { - cursor: pointer; -} - -#qunit-tests li.skipped strong { - cursor: default; -} - -#qunit-tests li a { - padding: 0.5em; - color: #C2CCD1; - text-decoration: none; -} - -#qunit-tests li p a { - padding: 0.25em; - color: #6B6464; -} -#qunit-tests li a:hover, -#qunit-tests li a:focus { - color: #000; -} - -#qunit-tests li .runtime { - float: right; - font-size: smaller; -} - -.qunit-assert-list { - margin-top: 0.5em; - padding: 0.5em; - - background-color: #FFF; - - border-radius: 5px; -} - -.qunit-source { - margin: 0.6em 0 0.3em; -} - -.qunit-collapsed { - display: none; -} - -#qunit-tests table { - border-collapse: collapse; - margin-top: 0.2em; -} - -#qunit-tests th { - text-align: right; - vertical-align: top; - padding: 0 0.5em 0 0; -} - -#qunit-tests td { - vertical-align: top; -} - -#qunit-tests pre { - margin: 0; - white-space: pre-wrap; - word-wrap: break-word; -} - -#qunit-tests del { - background-color: #E0F2BE; - color: #374E0C; - text-decoration: none; -} - -#qunit-tests ins { - background-color: #FFCACA; - color: #500; - text-decoration: none; -} - -/*** Test Counts */ - -#qunit-tests b.counts { color: #000; } -#qunit-tests b.passed { color: #5E740B; } -#qunit-tests b.failed { color: #710909; } - -#qunit-tests li li { - padding: 5px; - background-color: #FFF; - border-bottom: none; - list-style-position: inside; -} - -/*** Passing Styles */ - -#qunit-tests li li.pass { - color: #3C510C; - background-color: #FFF; - border-left: 10px solid #C6E746; -} - -#qunit-tests .pass { color: #528CE0; background-color: #D2E0E6; } -#qunit-tests .pass .test-name { color: #366097; } - -#qunit-tests .pass .test-actual, -#qunit-tests .pass .test-expected { color: #999; } - -#qunit-banner.qunit-pass { background-color: #C6E746; } - -/*** Failing Styles */ - -#qunit-tests li li.fail { - color: #710909; - background-color: #FFF; - border-left: 10px solid #EE5757; - white-space: pre; -} - -#qunit-tests > li:last-child { - border-radius: 0 0 5px 5px; -} - -#qunit-tests .fail { color: #000; background-color: #EE5757; } -#qunit-tests .fail .test-name, -#qunit-tests .fail .module-name { color: #000; } - -#qunit-tests .fail .test-actual { color: #EE5757; } -#qunit-tests .fail .test-expected { color: #008000; } - -#qunit-banner.qunit-fail { background-color: #EE5757; } - -/*** Skipped tests */ - -#qunit-tests .skipped { - background-color: #EBECE9; -} - -#qunit-tests .qunit-skipped-label { - background-color: #F4FF77; - display: inline-block; - font-style: normal; - color: #366097; - line-height: 1.8em; - padding: 0 0.5em; - margin: -0.4em 0.4em -0.4em 0; -} - -/** Result */ - -#qunit-testresult { - padding: 0.5em 1em 0.5em 1em; - - color: #2B81AF; - background-color: #D2E0E6; - - border-bottom: 1px solid #FFF; -} -#qunit-testresult .module-name { - font-weight: 700; -} - -/** Fixture */ - -#qunit-fixture { - position: absolute; - top: -10000px; - left: -10000px; - width: 1000px; - height: 1000px; -} diff --git a/admin/bower_components/select2/tests/vendor/qunit-1.23.1.js b/admin/bower_components/select2/tests/vendor/qunit-1.23.1.js deleted file mode 100644 index 5df0822..0000000 --- a/admin/bower_components/select2/tests/vendor/qunit-1.23.1.js +++ /dev/null @@ -1,4334 +0,0 @@ -/*! - * QUnit 1.23.1 - * https://qunitjs.com/ - * - * Copyright jQuery Foundation and other contributors - * Released under the MIT license - * https://jquery.org/license - * - * Date: 2016-04-12T17:29Z - */ - -( function( global ) { - -var QUnit = {}; - -var Date = global.Date; -var now = Date.now || function() { - return new Date().getTime(); -}; - -var setTimeout = global.setTimeout; -var clearTimeout = global.clearTimeout; - -// Store a local window from the global to allow direct references. -var window = global.window; - -var defined = { - document: window && window.document !== undefined, - setTimeout: setTimeout !== undefined, - sessionStorage: ( function() { - var x = "qunit-test-string"; - try { - sessionStorage.setItem( x, x ); - sessionStorage.removeItem( x ); - return true; - } catch ( e ) { - return false; - } - }() ) -}; - -var fileName = ( sourceFromStacktrace( 0 ) || "" ).replace( /(:\d+)+\)?/, "" ).replace( /.+\//, "" ); -var globalStartCalled = false; -var runStarted = false; - -var toString = Object.prototype.toString, - hasOwn = Object.prototype.hasOwnProperty; - -// Returns a new Array with the elements that are in a but not in b -function diff( a, b ) { - var i, j, - result = a.slice(); - - for ( i = 0; i < result.length; i++ ) { - for ( j = 0; j < b.length; j++ ) { - if ( result[ i ] === b[ j ] ) { - result.splice( i, 1 ); - i--; - break; - } - } - } - return result; -} - -// From jquery.js -function inArray( elem, array ) { - if ( array.indexOf ) { - return array.indexOf( elem ); - } - - for ( var i = 0, length = array.length; i < length; i++ ) { - if ( array[ i ] === elem ) { - return i; - } - } - - return -1; -} - -/** - * Makes a clone of an object using only Array or Object as base, - * and copies over the own enumerable properties. - * - * @param {Object} obj - * @return {Object} New object with only the own properties (recursively). - */ -function objectValues ( obj ) { - var key, val, - vals = QUnit.is( "array", obj ) ? [] : {}; - for ( key in obj ) { - if ( hasOwn.call( obj, key ) ) { - val = obj[ key ]; - vals[ key ] = val === Object( val ) ? objectValues( val ) : val; - } - } - return vals; -} - -function extend( a, b, undefOnly ) { - for ( var prop in b ) { - if ( hasOwn.call( b, prop ) ) { - - // Avoid "Member not found" error in IE8 caused by messing with window.constructor - // This block runs on every environment, so `global` is being used instead of `window` - // to avoid errors on node. - if ( prop !== "constructor" || a !== global ) { - if ( b[ prop ] === undefined ) { - delete a[ prop ]; - } else if ( !( undefOnly && typeof a[ prop ] !== "undefined" ) ) { - a[ prop ] = b[ prop ]; - } - } - } - } - - return a; -} - -function objectType( obj ) { - if ( typeof obj === "undefined" ) { - return "undefined"; - } - - // Consider: typeof null === object - if ( obj === null ) { - return "null"; - } - - var match = toString.call( obj ).match( /^\[object\s(.*)\]$/ ), - type = match && match[ 1 ]; - - switch ( type ) { - case "Number": - if ( isNaN( obj ) ) { - return "nan"; - } - return "number"; - case "String": - case "Boolean": - case "Array": - case "Set": - case "Map": - case "Date": - case "RegExp": - case "Function": - case "Symbol": - return type.toLowerCase(); - } - if ( typeof obj === "object" ) { - return "object"; - } -} - -// Safe object type checking -function is( type, obj ) { - return QUnit.objectType( obj ) === type; -} - -// Doesn't support IE6 to IE9, it will return undefined on these browsers -// See also https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Error/Stack -function extractStacktrace( e, offset ) { - offset = offset === undefined ? 4 : offset; - - var stack, include, i; - - if ( e.stack ) { - stack = e.stack.split( "\n" ); - if ( /^error$/i.test( stack[ 0 ] ) ) { - stack.shift(); - } - if ( fileName ) { - include = []; - for ( i = offset; i < stack.length; i++ ) { - if ( stack[ i ].indexOf( fileName ) !== -1 ) { - break; - } - include.push( stack[ i ] ); - } - if ( include.length ) { - return include.join( "\n" ); - } - } - return stack[ offset ]; - - // Support: Safari <=6 only - } else if ( e.sourceURL ) { - - // Exclude useless self-reference for generated Error objects - if ( /qunit.js$/.test( e.sourceURL ) ) { - return; - } - - // For actual exceptions, this is useful - return e.sourceURL + ":" + e.line; - } -} - -function sourceFromStacktrace( offset ) { - var error = new Error(); - - // Support: Safari <=7 only, IE <=10 - 11 only - // Not all browsers generate the `stack` property for `new Error()`, see also #636 - if ( !error.stack ) { - try { - throw error; - } catch ( err ) { - error = err; - } - } - - return extractStacktrace( error, offset ); -} - -/** - * Config object: Maintain internal state - * Later exposed as QUnit.config - * `config` initialized at top of scope - */ -var config = { - - // The queue of tests to run - queue: [], - - // Block until document ready - blocking: true, - - // By default, run previously failed tests first - // very useful in combination with "Hide passed tests" checked - reorder: true, - - // By default, modify document.title when suite is done - altertitle: true, - - // HTML Reporter: collapse every test except the first failing test - // If false, all failing tests will be expanded - collapse: true, - - // By default, scroll to top of the page when suite is done - scrolltop: true, - - // Depth up-to which object will be dumped - maxDepth: 5, - - // When enabled, all tests must call expect() - requireExpects: false, - - // Placeholder for user-configurable form-exposed URL parameters - urlConfig: [], - - // Set of all modules. - modules: [], - - // Stack of nested modules - moduleStack: [], - - // The first unnamed module - currentModule: { - name: "", - tests: [] - }, - - callbacks: {} -}; - -// Push a loose unnamed module to the modules collection -config.modules.push( config.currentModule ); - -var loggingCallbacks = {}; - -// Register logging callbacks -function registerLoggingCallbacks( obj ) { - var i, l, key, - callbackNames = [ "begin", "done", "log", "testStart", "testDone", - "moduleStart", "moduleDone" ]; - - function registerLoggingCallback( key ) { - var loggingCallback = function( callback ) { - if ( objectType( callback ) !== "function" ) { - throw new Error( - "QUnit logging methods require a callback function as their first parameters." - ); - } - - config.callbacks[ key ].push( callback ); - }; - - // DEPRECATED: This will be removed on QUnit 2.0.0+ - // Stores the registered functions allowing restoring - // at verifyLoggingCallbacks() if modified - loggingCallbacks[ key ] = loggingCallback; - - return loggingCallback; - } - - for ( i = 0, l = callbackNames.length; i < l; i++ ) { - key = callbackNames[ i ]; - - // Initialize key collection of logging callback - if ( objectType( config.callbacks[ key ] ) === "undefined" ) { - config.callbacks[ key ] = []; - } - - obj[ key ] = registerLoggingCallback( key ); - } -} - -function runLoggingCallbacks( key, args ) { - var i, l, callbacks; - - callbacks = config.callbacks[ key ]; - for ( i = 0, l = callbacks.length; i < l; i++ ) { - callbacks[ i ]( args ); - } -} - -// DEPRECATED: This will be removed on 2.0.0+ -// This function verifies if the loggingCallbacks were modified by the user -// If so, it will restore it, assign the given callback and print a console warning -function verifyLoggingCallbacks() { - var loggingCallback, userCallback; - - for ( loggingCallback in loggingCallbacks ) { - if ( QUnit[ loggingCallback ] !== loggingCallbacks[ loggingCallback ] ) { - - userCallback = QUnit[ loggingCallback ]; - - // Restore the callback function - QUnit[ loggingCallback ] = loggingCallbacks[ loggingCallback ]; - - // Assign the deprecated given callback - QUnit[ loggingCallback ]( userCallback ); - - if ( global.console && global.console.warn ) { - global.console.warn( - "QUnit." + loggingCallback + " was replaced with a new value.\n" + - "Please, check out the documentation on how to apply logging callbacks.\n" + - "Reference: https://api.qunitjs.com/category/callbacks/" - ); - } - } - } -} - -( function() { - if ( !defined.document ) { - return; - } - - // `onErrorFnPrev` initialized at top of scope - // Preserve other handlers - var onErrorFnPrev = window.onerror; - - // Cover uncaught exceptions - // Returning true will suppress the default browser handler, - // returning false will let it run. - window.onerror = function( error, filePath, linerNr ) { - var ret = false; - if ( onErrorFnPrev ) { - ret = onErrorFnPrev( error, filePath, linerNr ); - } - - // Treat return value as window.onerror itself does, - // Only do our handling if not suppressed. - if ( ret !== true ) { - if ( QUnit.config.current ) { - if ( QUnit.config.current.ignoreGlobalErrors ) { - return true; - } - QUnit.pushFailure( error, filePath + ":" + linerNr ); - } else { - QUnit.test( "global failure", extend( function() { - QUnit.pushFailure( error, filePath + ":" + linerNr ); - }, { validTest: true } ) ); - } - return false; - } - - return ret; - }; -}() ); - -// Figure out if we're running the tests from a server or not -QUnit.isLocal = !( defined.document && window.location.protocol !== "file:" ); - -// Expose the current QUnit version -QUnit.version = "1.23.1"; - -extend( QUnit, { - - // Call on start of module test to prepend name to all tests - module: function( name, testEnvironment, executeNow ) { - var module, moduleFns; - var currentModule = config.currentModule; - - if ( arguments.length === 2 ) { - if ( objectType( testEnvironment ) === "function" ) { - executeNow = testEnvironment; - testEnvironment = undefined; - } - } - - // DEPRECATED: handles setup/teardown functions, - // beforeEach and afterEach should be used instead - if ( testEnvironment && testEnvironment.setup ) { - testEnvironment.beforeEach = testEnvironment.setup; - delete testEnvironment.setup; - } - if ( testEnvironment && testEnvironment.teardown ) { - testEnvironment.afterEach = testEnvironment.teardown; - delete testEnvironment.teardown; - } - - module = createModule(); - - moduleFns = { - beforeEach: setHook( module, "beforeEach" ), - afterEach: setHook( module, "afterEach" ) - }; - - if ( objectType( executeNow ) === "function" ) { - config.moduleStack.push( module ); - setCurrentModule( module ); - executeNow.call( module.testEnvironment, moduleFns ); - config.moduleStack.pop(); - module = module.parentModule || currentModule; - } - - setCurrentModule( module ); - - function createModule() { - var parentModule = config.moduleStack.length ? - config.moduleStack.slice( -1 )[ 0 ] : null; - var moduleName = parentModule !== null ? - [ parentModule.name, name ].join( " > " ) : name; - var module = { - name: moduleName, - parentModule: parentModule, - tests: [], - moduleId: generateHash( moduleName ) - }; - - var env = {}; - if ( parentModule ) { - extend( env, parentModule.testEnvironment ); - delete env.beforeEach; - delete env.afterEach; - } - extend( env, testEnvironment ); - module.testEnvironment = env; - - config.modules.push( module ); - return module; - } - - function setCurrentModule( module ) { - config.currentModule = module; - } - - }, - - // DEPRECATED: QUnit.asyncTest() will be removed in QUnit 2.0. - asyncTest: asyncTest, - - test: test, - - skip: skip, - - only: only, - - // DEPRECATED: The functionality of QUnit.start() will be altered in QUnit 2.0. - // In QUnit 2.0, invoking it will ONLY affect the `QUnit.config.autostart` blocking behavior. - start: function( count ) { - var globalStartAlreadyCalled = globalStartCalled; - - if ( !config.current ) { - globalStartCalled = true; - - if ( runStarted ) { - throw new Error( "Called start() outside of a test context while already started" ); - } else if ( globalStartAlreadyCalled || count > 1 ) { - throw new Error( "Called start() outside of a test context too many times" ); - } else if ( config.autostart ) { - throw new Error( "Called start() outside of a test context when " + - "QUnit.config.autostart was true" ); - } else if ( !config.pageLoaded ) { - - // The page isn't completely loaded yet, so bail out and let `QUnit.load` handle it - config.autostart = true; - return; - } - } else { - - // If a test is running, adjust its semaphore - config.current.semaphore -= count || 1; - - // If semaphore is non-numeric, throw error - if ( isNaN( config.current.semaphore ) ) { - config.current.semaphore = 0; - - QUnit.pushFailure( - "Called start() with a non-numeric decrement.", - sourceFromStacktrace( 2 ) - ); - return; - } - - // Don't start until equal number of stop-calls - if ( config.current.semaphore > 0 ) { - return; - } - - // Throw an Error if start is called more often than stop - if ( config.current.semaphore < 0 ) { - config.current.semaphore = 0; - - QUnit.pushFailure( - "Called start() while already started (test's semaphore was 0 already)", - sourceFromStacktrace( 2 ) - ); - return; - } - } - - resumeProcessing(); - }, - - // DEPRECATED: QUnit.stop() will be removed in QUnit 2.0. - stop: function( count ) { - - // If there isn't a test running, don't allow QUnit.stop() to be called - if ( !config.current ) { - throw new Error( "Called stop() outside of a test context" ); - } - - // If a test is running, adjust its semaphore - config.current.semaphore += count || 1; - - pauseProcessing(); - }, - - config: config, - - is: is, - - objectType: objectType, - - extend: extend, - - load: function() { - config.pageLoaded = true; - - // Initialize the configuration options - extend( config, { - stats: { all: 0, bad: 0 }, - moduleStats: { all: 0, bad: 0 }, - started: 0, - updateRate: 1000, - autostart: true, - filter: "" - }, true ); - - config.blocking = false; - - if ( config.autostart ) { - resumeProcessing(); - } - }, - - stack: function( offset ) { - offset = ( offset || 0 ) + 2; - return sourceFromStacktrace( offset ); - } -} ); - -registerLoggingCallbacks( QUnit ); - -function begin() { - var i, l, - modulesLog = []; - - // If the test run hasn't officially begun yet - if ( !config.started ) { - - // Record the time of the test run's beginning - config.started = now(); - - verifyLoggingCallbacks(); - - // Delete the loose unnamed module if unused. - if ( config.modules[ 0 ].name === "" && config.modules[ 0 ].tests.length === 0 ) { - config.modules.shift(); - } - - // Avoid unnecessary information by not logging modules' test environments - for ( i = 0, l = config.modules.length; i < l; i++ ) { - modulesLog.push( { - name: config.modules[ i ].name, - tests: config.modules[ i ].tests - } ); - } - - // The test run is officially beginning now - runLoggingCallbacks( "begin", { - totalTests: Test.count, - modules: modulesLog - } ); - } - - config.blocking = false; - process( true ); -} - -function process( last ) { - function next() { - process( last ); - } - var start = now(); - config.depth = ( config.depth || 0 ) + 1; - - while ( config.queue.length && !config.blocking ) { - if ( !defined.setTimeout || config.updateRate <= 0 || - ( ( now() - start ) < config.updateRate ) ) { - if ( config.current ) { - - // Reset async tracking for each phase of the Test lifecycle - config.current.usedAsync = false; - } - config.queue.shift()(); - } else { - setTimeout( next, 13 ); - break; - } - } - config.depth--; - if ( last && !config.blocking && !config.queue.length && config.depth === 0 ) { - done(); - } -} - -function pauseProcessing() { - config.blocking = true; - - if ( config.testTimeout && defined.setTimeout ) { - clearTimeout( config.timeout ); - config.timeout = setTimeout( function() { - if ( config.current ) { - config.current.semaphore = 0; - QUnit.pushFailure( "Test timed out", sourceFromStacktrace( 2 ) ); - } else { - throw new Error( "Test timed out" ); - } - resumeProcessing(); - }, config.testTimeout ); - } -} - -function resumeProcessing() { - runStarted = true; - - // A slight delay to allow this iteration of the event loop to finish (more assertions, etc.) - if ( defined.setTimeout ) { - setTimeout( function() { - if ( config.current && config.current.semaphore > 0 ) { - return; - } - if ( config.timeout ) { - clearTimeout( config.timeout ); - } - - begin(); - }, 13 ); - } else { - begin(); - } -} - -function done() { - var runtime, passed; - - config.autorun = true; - - // Log the last module results - if ( config.previousModule ) { - runLoggingCallbacks( "moduleDone", { - name: config.previousModule.name, - tests: config.previousModule.tests, - failed: config.moduleStats.bad, - passed: config.moduleStats.all - config.moduleStats.bad, - total: config.moduleStats.all, - runtime: now() - config.moduleStats.started - } ); - } - delete config.previousModule; - - runtime = now() - config.started; - passed = config.stats.all - config.stats.bad; - - runLoggingCallbacks( "done", { - failed: config.stats.bad, - passed: passed, - total: config.stats.all, - runtime: runtime - } ); -} - -function setHook( module, hookName ) { - if ( module.testEnvironment === undefined ) { - module.testEnvironment = {}; - } - - return function( callback ) { - module.testEnvironment[ hookName ] = callback; - }; -} - -var focused = false; -var priorityCount = 0; -var unitSampler; - -function Test( settings ) { - var i, l; - - ++Test.count; - - extend( this, settings ); - this.assertions = []; - this.semaphore = 0; - this.usedAsync = false; - this.module = config.currentModule; - this.stack = sourceFromStacktrace( 3 ); - - // Register unique strings - for ( i = 0, l = this.module.tests; i < l.length; i++ ) { - if ( this.module.tests[ i ].name === this.testName ) { - this.testName += " "; - } - } - - this.testId = generateHash( this.module.name, this.testName ); - - this.module.tests.push( { - name: this.testName, - testId: this.testId - } ); - - if ( settings.skip ) { - - // Skipped tests will fully ignore any sent callback - this.callback = function() {}; - this.async = false; - this.expected = 0; - } else { - this.assert = new Assert( this ); - } -} - -Test.count = 0; - -Test.prototype = { - before: function() { - if ( - - // Emit moduleStart when we're switching from one module to another - this.module !== config.previousModule || - - // They could be equal (both undefined) but if the previousModule property doesn't - // yet exist it means this is the first test in a suite that isn't wrapped in a - // module, in which case we'll just emit a moduleStart event for 'undefined'. - // Without this, reporters can get testStart before moduleStart which is a problem. - !hasOwn.call( config, "previousModule" ) - ) { - if ( hasOwn.call( config, "previousModule" ) ) { - runLoggingCallbacks( "moduleDone", { - name: config.previousModule.name, - tests: config.previousModule.tests, - failed: config.moduleStats.bad, - passed: config.moduleStats.all - config.moduleStats.bad, - total: config.moduleStats.all, - runtime: now() - config.moduleStats.started - } ); - } - config.previousModule = this.module; - config.moduleStats = { all: 0, bad: 0, started: now() }; - runLoggingCallbacks( "moduleStart", { - name: this.module.name, - tests: this.module.tests - } ); - } - - config.current = this; - - if ( this.module.testEnvironment ) { - delete this.module.testEnvironment.beforeEach; - delete this.module.testEnvironment.afterEach; - } - this.testEnvironment = extend( {}, this.module.testEnvironment ); - - this.started = now(); - runLoggingCallbacks( "testStart", { - name: this.testName, - module: this.module.name, - testId: this.testId - } ); - - if ( !config.pollution ) { - saveGlobal(); - } - }, - - run: function() { - var promise; - - config.current = this; - - if ( this.async ) { - QUnit.stop(); - } - - this.callbackStarted = now(); - - if ( config.notrycatch ) { - runTest( this ); - return; - } - - try { - runTest( this ); - } catch ( e ) { - this.pushFailure( "Died on test #" + ( this.assertions.length + 1 ) + " " + - this.stack + ": " + ( e.message || e ), extractStacktrace( e, 0 ) ); - - // Else next test will carry the responsibility - saveGlobal(); - - // Restart the tests if they're blocking - if ( config.blocking ) { - QUnit.start(); - } - } - - function runTest( test ) { - promise = test.callback.call( test.testEnvironment, test.assert ); - test.resolvePromise( promise ); - } - }, - - after: function() { - checkPollution(); - }, - - queueHook: function( hook, hookName ) { - var promise, - test = this; - return function runHook() { - config.current = test; - if ( config.notrycatch ) { - callHook(); - return; - } - try { - callHook(); - } catch ( error ) { - test.pushFailure( hookName + " failed on " + test.testName + ": " + - ( error.message || error ), extractStacktrace( error, 0 ) ); - } - - function callHook() { - promise = hook.call( test.testEnvironment, test.assert ); - test.resolvePromise( promise, hookName ); - } - }; - }, - - // Currently only used for module level hooks, can be used to add global level ones - hooks: function( handler ) { - var hooks = []; - - function processHooks( test, module ) { - if ( module.parentModule ) { - processHooks( test, module.parentModule ); - } - if ( module.testEnvironment && - QUnit.objectType( module.testEnvironment[ handler ] ) === "function" ) { - hooks.push( test.queueHook( module.testEnvironment[ handler ], handler ) ); - } - } - - // Hooks are ignored on skipped tests - if ( !this.skip ) { - processHooks( this, this.module ); - } - return hooks; - }, - - finish: function() { - config.current = this; - if ( config.requireExpects && this.expected === null ) { - this.pushFailure( "Expected number of assertions to be defined, but expect() was " + - "not called.", this.stack ); - } else if ( this.expected !== null && this.expected !== this.assertions.length ) { - this.pushFailure( "Expected " + this.expected + " assertions, but " + - this.assertions.length + " were run", this.stack ); - } else if ( this.expected === null && !this.assertions.length ) { - this.pushFailure( "Expected at least one assertion, but none were run - call " + - "expect(0) to accept zero assertions.", this.stack ); - } - - var i, - bad = 0; - - this.runtime = now() - this.started; - config.stats.all += this.assertions.length; - config.moduleStats.all += this.assertions.length; - - for ( i = 0; i < this.assertions.length; i++ ) { - if ( !this.assertions[ i ].result ) { - bad++; - config.stats.bad++; - config.moduleStats.bad++; - } - } - - runLoggingCallbacks( "testDone", { - name: this.testName, - module: this.module.name, - skipped: !!this.skip, - failed: bad, - passed: this.assertions.length - bad, - total: this.assertions.length, - runtime: this.runtime, - - // HTML Reporter use - assertions: this.assertions, - testId: this.testId, - - // Source of Test - source: this.stack, - - // DEPRECATED: this property will be removed in 2.0.0, use runtime instead - duration: this.runtime - } ); - - // QUnit.reset() is deprecated and will be replaced for a new - // fixture reset function on QUnit 2.0/2.1. - // It's still called here for backwards compatibility handling - QUnit.reset(); - - config.current = undefined; - }, - - queue: function() { - var priority, - test = this; - - if ( !this.valid() ) { - return; - } - - function run() { - - // Each of these can by async - synchronize( [ - function() { - test.before(); - }, - - test.hooks( "beforeEach" ), - function() { - test.run(); - }, - - test.hooks( "afterEach" ).reverse(), - - function() { - test.after(); - }, - function() { - test.finish(); - } - ] ); - } - - // Prioritize previously failed tests, detected from sessionStorage - priority = QUnit.config.reorder && defined.sessionStorage && - +sessionStorage.getItem( "qunit-test-" + this.module.name + "-" + this.testName ); - - return synchronize( run, priority, config.seed ); - }, - - pushResult: function( resultInfo ) { - - // Destructure of resultInfo = { result, actual, expected, message, negative } - var source, - details = { - module: this.module.name, - name: this.testName, - result: resultInfo.result, - message: resultInfo.message, - actual: resultInfo.actual, - expected: resultInfo.expected, - testId: this.testId, - negative: resultInfo.negative || false, - runtime: now() - this.started - }; - - if ( !resultInfo.result ) { - source = sourceFromStacktrace(); - - if ( source ) { - details.source = source; - } - } - - runLoggingCallbacks( "log", details ); - - this.assertions.push( { - result: !!resultInfo.result, - message: resultInfo.message - } ); - }, - - pushFailure: function( message, source, actual ) { - if ( !( this instanceof Test ) ) { - throw new Error( "pushFailure() assertion outside test context, was " + - sourceFromStacktrace( 2 ) ); - } - - var details = { - module: this.module.name, - name: this.testName, - result: false, - message: message || "error", - actual: actual || null, - testId: this.testId, - runtime: now() - this.started - }; - - if ( source ) { - details.source = source; - } - - runLoggingCallbacks( "log", details ); - - this.assertions.push( { - result: false, - message: message - } ); - }, - - resolvePromise: function( promise, phase ) { - var then, message, - test = this; - if ( promise != null ) { - then = promise.then; - if ( QUnit.objectType( then ) === "function" ) { - QUnit.stop(); - then.call( - promise, - function() { QUnit.start(); }, - function( error ) { - message = "Promise rejected " + - ( !phase ? "during" : phase.replace( /Each$/, "" ) ) + - " " + test.testName + ": " + ( error.message || error ); - test.pushFailure( message, extractStacktrace( error, 0 ) ); - - // Else next test will carry the responsibility - saveGlobal(); - - // Unblock - QUnit.start(); - } - ); - } - } - }, - - valid: function() { - var filter = config.filter, - regexFilter = /^(!?)\/([\w\W]*)\/(i?$)/.exec( filter ), - module = config.module && config.module.toLowerCase(), - fullName = ( this.module.name + ": " + this.testName ); - - function moduleChainNameMatch( testModule ) { - var testModuleName = testModule.name ? testModule.name.toLowerCase() : null; - if ( testModuleName === module ) { - return true; - } else if ( testModule.parentModule ) { - return moduleChainNameMatch( testModule.parentModule ); - } else { - return false; - } - } - - function moduleChainIdMatch( testModule ) { - return inArray( testModule.moduleId, config.moduleId ) > -1 || - testModule.parentModule && moduleChainIdMatch( testModule.parentModule ); - } - - // Internally-generated tests are always valid - if ( this.callback && this.callback.validTest ) { - return true; - } - - if ( config.moduleId && config.moduleId.length > 0 && - !moduleChainIdMatch( this.module ) ) { - - return false; - } - - if ( config.testId && config.testId.length > 0 && - inArray( this.testId, config.testId ) < 0 ) { - - return false; - } - - if ( module && !moduleChainNameMatch( this.module ) ) { - return false; - } - - if ( !filter ) { - return true; - } - - return regexFilter ? - this.regexFilter( !!regexFilter[ 1 ], regexFilter[ 2 ], regexFilter[ 3 ], fullName ) : - this.stringFilter( filter, fullName ); - }, - - regexFilter: function( exclude, pattern, flags, fullName ) { - var regex = new RegExp( pattern, flags ); - var match = regex.test( fullName ); - - return match !== exclude; - }, - - stringFilter: function( filter, fullName ) { - filter = filter.toLowerCase(); - fullName = fullName.toLowerCase(); - - var include = filter.charAt( 0 ) !== "!"; - if ( !include ) { - filter = filter.slice( 1 ); - } - - // If the filter matches, we need to honour include - if ( fullName.indexOf( filter ) !== -1 ) { - return include; - } - - // Otherwise, do the opposite - return !include; - } -}; - -// Resets the test setup. Useful for tests that modify the DOM. -/* -DEPRECATED: Use multiple tests instead of resetting inside a test. -Use testStart or testDone for custom cleanup. -This method will throw an error in 2.0, and will be removed in 2.1 -*/ -QUnit.reset = function() { - - // Return on non-browser environments - // This is necessary to not break on node tests - if ( !defined.document ) { - return; - } - - var fixture = defined.document && document.getElementById && - document.getElementById( "qunit-fixture" ); - - if ( fixture ) { - fixture.innerHTML = config.fixture; - } -}; - -QUnit.pushFailure = function() { - if ( !QUnit.config.current ) { - throw new Error( "pushFailure() assertion outside test context, in " + - sourceFromStacktrace( 2 ) ); - } - - // Gets current test obj - var currentTest = QUnit.config.current; - - return currentTest.pushFailure.apply( currentTest, arguments ); -}; - -// Based on Java's String.hashCode, a simple but not -// rigorously collision resistant hashing function -function generateHash( module, testName ) { - var hex, - i = 0, - hash = 0, - str = module + "\x1C" + testName, - len = str.length; - - for ( ; i < len; i++ ) { - hash = ( ( hash << 5 ) - hash ) + str.charCodeAt( i ); - hash |= 0; - } - - // Convert the possibly negative integer hash code into an 8 character hex string, which isn't - // strictly necessary but increases user understanding that the id is a SHA-like hash - hex = ( 0x100000000 + hash ).toString( 16 ); - if ( hex.length < 8 ) { - hex = "0000000" + hex; - } - - return hex.slice( -8 ); -} - -function synchronize( callback, priority, seed ) { - var last = !priority, - index; - - if ( QUnit.objectType( callback ) === "array" ) { - while ( callback.length ) { - synchronize( callback.shift() ); - } - return; - } - - if ( priority ) { - config.queue.splice( priorityCount++, 0, callback ); - } else if ( seed ) { - if ( !unitSampler ) { - unitSampler = unitSamplerGenerator( seed ); - } - - // Insert into a random position after all priority items - index = Math.floor( unitSampler() * ( config.queue.length - priorityCount + 1 ) ); - config.queue.splice( priorityCount + index, 0, callback ); - } else { - config.queue.push( callback ); - } - - if ( config.autorun && !config.blocking ) { - process( last ); - } -} - -function unitSamplerGenerator( seed ) { - - // 32-bit xorshift, requires only a nonzero seed - // http://excamera.com/sphinx/article-xorshift.html - var sample = parseInt( generateHash( seed ), 16 ) || -1; - return function() { - sample ^= sample << 13; - sample ^= sample >>> 17; - sample ^= sample << 5; - - // ECMAScript has no unsigned number type - if ( sample < 0 ) { - sample += 0x100000000; - } - - return sample / 0x100000000; - }; -} - -function saveGlobal() { - config.pollution = []; - - if ( config.noglobals ) { - for ( var key in global ) { - if ( hasOwn.call( global, key ) ) { - - // In Opera sometimes DOM element ids show up here, ignore them - if ( /^qunit-test-output/.test( key ) ) { - continue; - } - config.pollution.push( key ); - } - } - } -} - -function checkPollution() { - var newGlobals, - deletedGlobals, - old = config.pollution; - - saveGlobal(); - - newGlobals = diff( config.pollution, old ); - if ( newGlobals.length > 0 ) { - QUnit.pushFailure( "Introduced global variable(s): " + newGlobals.join( ", " ) ); - } - - deletedGlobals = diff( old, config.pollution ); - if ( deletedGlobals.length > 0 ) { - QUnit.pushFailure( "Deleted global variable(s): " + deletedGlobals.join( ", " ) ); - } -} - -// Will be exposed as QUnit.asyncTest -function asyncTest( testName, expected, callback ) { - if ( arguments.length === 2 ) { - callback = expected; - expected = null; - } - - QUnit.test( testName, expected, callback, true ); -} - -// Will be exposed as QUnit.test -function test( testName, expected, callback, async ) { - if ( focused ) { return; } - - var newTest; - - if ( arguments.length === 2 ) { - callback = expected; - expected = null; - } - - newTest = new Test( { - testName: testName, - expected: expected, - async: async, - callback: callback - } ); - - newTest.queue(); -} - -// Will be exposed as QUnit.skip -function skip( testName ) { - if ( focused ) { return; } - - var test = new Test( { - testName: testName, - skip: true - } ); - - test.queue(); -} - -// Will be exposed as QUnit.only -function only( testName, expected, callback, async ) { - var newTest; - - if ( focused ) { return; } - - QUnit.config.queue.length = 0; - focused = true; - - if ( arguments.length === 2 ) { - callback = expected; - expected = null; - } - - newTest = new Test( { - testName: testName, - expected: expected, - async: async, - callback: callback - } ); - - newTest.queue(); -} - -function Assert( testContext ) { - this.test = testContext; -} - -// Assert helpers -QUnit.assert = Assert.prototype = { - - // Specify the number of expected assertions to guarantee that failed test - // (no assertions are run at all) don't slip through. - expect: function( asserts ) { - if ( arguments.length === 1 ) { - this.test.expected = asserts; - } else { - return this.test.expected; - } - }, - - // Increment this Test's semaphore counter, then return a function that - // decrements that counter a maximum of once. - async: function( count ) { - var test = this.test, - popped = false, - acceptCallCount = count; - - if ( typeof acceptCallCount === "undefined" ) { - acceptCallCount = 1; - } - - test.semaphore += 1; - test.usedAsync = true; - pauseProcessing(); - - return function done() { - - if ( popped ) { - test.pushFailure( "Too many calls to the `assert.async` callback", - sourceFromStacktrace( 2 ) ); - return; - } - acceptCallCount -= 1; - if ( acceptCallCount > 0 ) { - return; - } - - test.semaphore -= 1; - popped = true; - resumeProcessing(); - }; - }, - - // Exports test.push() to the user API - // Alias of pushResult. - push: function( result, actual, expected, message, negative ) { - var currentAssert = this instanceof Assert ? this : QUnit.config.current.assert; - return currentAssert.pushResult( { - result: result, - actual: actual, - expected: expected, - message: message, - negative: negative - } ); - }, - - pushResult: function( resultInfo ) { - - // Destructure of resultInfo = { result, actual, expected, message, negative } - var assert = this, - currentTest = ( assert instanceof Assert && assert.test ) || QUnit.config.current; - - // Backwards compatibility fix. - // Allows the direct use of global exported assertions and QUnit.assert.* - // Although, it's use is not recommended as it can leak assertions - // to other tests from async tests, because we only get a reference to the current test, - // not exactly the test where assertion were intended to be called. - if ( !currentTest ) { - throw new Error( "assertion outside test context, in " + sourceFromStacktrace( 2 ) ); - } - - if ( currentTest.usedAsync === true && currentTest.semaphore === 0 ) { - currentTest.pushFailure( "Assertion after the final `assert.async` was resolved", - sourceFromStacktrace( 2 ) ); - - // Allow this assertion to continue running anyway... - } - - if ( !( assert instanceof Assert ) ) { - assert = currentTest.assert; - } - - return assert.test.pushResult( resultInfo ); - }, - - ok: function( result, message ) { - message = message || ( result ? "okay" : "failed, expected argument to be truthy, was: " + - QUnit.dump.parse( result ) ); - this.pushResult( { - result: !!result, - actual: result, - expected: true, - message: message - } ); - }, - - notOk: function( result, message ) { - message = message || ( !result ? "okay" : "failed, expected argument to be falsy, was: " + - QUnit.dump.parse( result ) ); - this.pushResult( { - result: !result, - actual: result, - expected: false, - message: message - } ); - }, - - equal: function( actual, expected, message ) { - /*jshint eqeqeq:false */ - this.pushResult( { - result: expected == actual, - actual: actual, - expected: expected, - message: message - } ); - }, - - notEqual: function( actual, expected, message ) { - /*jshint eqeqeq:false */ - this.pushResult( { - result: expected != actual, - actual: actual, - expected: expected, - message: message, - negative: true - } ); - }, - - propEqual: function( actual, expected, message ) { - actual = objectValues( actual ); - expected = objectValues( expected ); - this.pushResult( { - result: QUnit.equiv( actual, expected ), - actual: actual, - expected: expected, - message: message - } ); - }, - - notPropEqual: function( actual, expected, message ) { - actual = objectValues( actual ); - expected = objectValues( expected ); - this.pushResult( { - result: !QUnit.equiv( actual, expected ), - actual: actual, - expected: expected, - message: message, - negative: true - } ); - }, - - deepEqual: function( actual, expected, message ) { - this.pushResult( { - result: QUnit.equiv( actual, expected ), - actual: actual, - expected: expected, - message: message - } ); - }, - - notDeepEqual: function( actual, expected, message ) { - this.pushResult( { - result: !QUnit.equiv( actual, expected ), - actual: actual, - expected: expected, - message: message, - negative: true - } ); - }, - - strictEqual: function( actual, expected, message ) { - this.pushResult( { - result: expected === actual, - actual: actual, - expected: expected, - message: message - } ); - }, - - notStrictEqual: function( actual, expected, message ) { - this.pushResult( { - result: expected !== actual, - actual: actual, - expected: expected, - message: message, - negative: true - } ); - }, - - "throws": function( block, expected, message ) { - var actual, expectedType, - expectedOutput = expected, - ok = false, - currentTest = ( this instanceof Assert && this.test ) || QUnit.config.current; - - // 'expected' is optional unless doing string comparison - if ( message == null && typeof expected === "string" ) { - message = expected; - expected = null; - } - - currentTest.ignoreGlobalErrors = true; - try { - block.call( currentTest.testEnvironment ); - } catch ( e ) { - actual = e; - } - currentTest.ignoreGlobalErrors = false; - - if ( actual ) { - expectedType = QUnit.objectType( expected ); - - // We don't want to validate thrown error - if ( !expected ) { - ok = true; - expectedOutput = null; - - // Expected is a regexp - } else if ( expectedType === "regexp" ) { - ok = expected.test( errorString( actual ) ); - - // Expected is a string - } else if ( expectedType === "string" ) { - ok = expected === errorString( actual ); - - // Expected is a constructor, maybe an Error constructor - } else if ( expectedType === "function" && actual instanceof expected ) { - ok = true; - - // Expected is an Error object - } else if ( expectedType === "object" ) { - ok = actual instanceof expected.constructor && - actual.name === expected.name && - actual.message === expected.message; - - // Expected is a validation function which returns true if validation passed - } else if ( expectedType === "function" && expected.call( {}, actual ) === true ) { - expectedOutput = null; - ok = true; - } - } - - currentTest.assert.pushResult( { - result: ok, - actual: actual, - expected: expectedOutput, - message: message - } ); - } -}; - -// Provide an alternative to assert.throws(), for environments that consider throws a reserved word -// Known to us are: Closure Compiler, Narwhal -( function() { - /*jshint sub:true */ - Assert.prototype.raises = Assert.prototype [ "throws" ]; //jscs:ignore requireDotNotation -}() ); - -function errorString( error ) { - var name, message, - resultErrorString = error.toString(); - if ( resultErrorString.substring( 0, 7 ) === "[object" ) { - name = error.name ? error.name.toString() : "Error"; - message = error.message ? error.message.toString() : ""; - if ( name && message ) { - return name + ": " + message; - } else if ( name ) { - return name; - } else if ( message ) { - return message; - } else { - return "Error"; - } - } else { - return resultErrorString; - } -} - -// Test for equality any JavaScript type. -// Author: Philippe Rathé <prathe@gmail.com> -QUnit.equiv = ( function() { - - // Stack to decide between skip/abort functions - var callers = []; - - // Stack to avoiding loops from circular referencing - var parents = []; - var parentsB = []; - - var getProto = Object.getPrototypeOf || function( obj ) { - - /*jshint proto: true */ - return obj.__proto__; - }; - - function useStrictEquality( b, a ) { - - // To catch short annotation VS 'new' annotation of a declaration. e.g.: - // `var i = 1;` - // `var j = new Number(1);` - if ( typeof a === "object" ) { - a = a.valueOf(); - } - if ( typeof b === "object" ) { - b = b.valueOf(); - } - - return a === b; - } - - function compareConstructors( a, b ) { - var protoA = getProto( a ); - var protoB = getProto( b ); - - // Comparing constructors is more strict than using `instanceof` - if ( a.constructor === b.constructor ) { - return true; - } - - // Ref #851 - // If the obj prototype descends from a null constructor, treat it - // as a null prototype. - if ( protoA && protoA.constructor === null ) { - protoA = null; - } - if ( protoB && protoB.constructor === null ) { - protoB = null; - } - - // Allow objects with no prototype to be equivalent to - // objects with Object as their constructor. - if ( ( protoA === null && protoB === Object.prototype ) || - ( protoB === null && protoA === Object.prototype ) ) { - return true; - } - - return false; - } - - function getRegExpFlags( regexp ) { - return "flags" in regexp ? regexp.flags : regexp.toString().match( /[gimuy]*$/ )[ 0 ]; - } - - var callbacks = { - "string": useStrictEquality, - "boolean": useStrictEquality, - "number": useStrictEquality, - "null": useStrictEquality, - "undefined": useStrictEquality, - "symbol": useStrictEquality, - "date": useStrictEquality, - - "nan": function() { - return true; - }, - - "regexp": function( b, a ) { - return a.source === b.source && - - // Include flags in the comparison - getRegExpFlags( a ) === getRegExpFlags( b ); - }, - - // - skip when the property is a method of an instance (OOP) - // - abort otherwise, - // initial === would have catch identical references anyway - "function": function() { - var caller = callers[ callers.length - 1 ]; - return caller !== Object && typeof caller !== "undefined"; - }, - - "array": function( b, a ) { - var i, j, len, loop, aCircular, bCircular; - - len = a.length; - if ( len !== b.length ) { - - // Safe and faster - return false; - } - - // Track reference to avoid circular references - parents.push( a ); - parentsB.push( b ); - for ( i = 0; i < len; i++ ) { - loop = false; - for ( j = 0; j < parents.length; j++ ) { - aCircular = parents[ j ] === a[ i ]; - bCircular = parentsB[ j ] === b[ i ]; - if ( aCircular || bCircular ) { - if ( a[ i ] === b[ i ] || aCircular && bCircular ) { - loop = true; - } else { - parents.pop(); - parentsB.pop(); - return false; - } - } - } - if ( !loop && !innerEquiv( a[ i ], b[ i ] ) ) { - parents.pop(); - parentsB.pop(); - return false; - } - } - parents.pop(); - parentsB.pop(); - return true; - }, - - "set": function( b, a ) { - var innerEq, - outerEq = true; - - if ( a.size !== b.size ) { - return false; - } - - a.forEach( function( aVal ) { - innerEq = false; - - b.forEach( function( bVal ) { - if ( innerEquiv( bVal, aVal ) ) { - innerEq = true; - } - } ); - - if ( !innerEq ) { - outerEq = false; - } - } ); - - return outerEq; - }, - - "map": function( b, a ) { - var innerEq, - outerEq = true; - - if ( a.size !== b.size ) { - return false; - } - - a.forEach( function( aVal, aKey ) { - innerEq = false; - - b.forEach( function( bVal, bKey ) { - if ( innerEquiv( [ bVal, bKey ], [ aVal, aKey ] ) ) { - innerEq = true; - } - } ); - - if ( !innerEq ) { - outerEq = false; - } - } ); - - return outerEq; - }, - - "object": function( b, a ) { - var i, j, loop, aCircular, bCircular; - - // Default to true - var eq = true; - var aProperties = []; - var bProperties = []; - - if ( compareConstructors( a, b ) === false ) { - return false; - } - - // Stack constructor before traversing properties - callers.push( a.constructor ); - - // Track reference to avoid circular references - parents.push( a ); - parentsB.push( b ); - - // Be strict: don't ensure hasOwnProperty and go deep - for ( i in a ) { - loop = false; - for ( j = 0; j < parents.length; j++ ) { - aCircular = parents[ j ] === a[ i ]; - bCircular = parentsB[ j ] === b[ i ]; - if ( aCircular || bCircular ) { - if ( a[ i ] === b[ i ] || aCircular && bCircular ) { - loop = true; - } else { - eq = false; - break; - } - } - } - aProperties.push( i ); - if ( !loop && !innerEquiv( a[ i ], b[ i ] ) ) { - eq = false; - break; - } - } - - parents.pop(); - parentsB.pop(); - - // Unstack, we are done - callers.pop(); - - for ( i in b ) { - - // Collect b's properties - bProperties.push( i ); - } - - // Ensures identical properties name - return eq && innerEquiv( aProperties.sort(), bProperties.sort() ); - } - }; - - function typeEquiv( a, b ) { - var type = QUnit.objectType( a ); - return QUnit.objectType( b ) === type && callbacks[ type ]( b, a ); - } - - // The real equiv function - function innerEquiv( a, b ) { - - // We're done when there's nothing more to compare - if ( arguments.length < 2 ) { - return true; - } - - // Require type-specific equality - return ( a === b || typeEquiv( a, b ) ) && - - // ...across all consecutive argument pairs - ( arguments.length === 2 || innerEquiv.apply( this, [].slice.call( arguments, 1 ) ) ); - } - - return innerEquiv; -}() ); - -// Based on jsDump by Ariel Flesler -// http://flesler.blogspot.com/2008/05/jsdump-pretty-dump-of-any-javascript.html -QUnit.dump = ( function() { - function quote( str ) { - return "\"" + str.toString().replace( /\\/g, "\\\\" ).replace( /"/g, "\\\"" ) + "\""; - } - function literal( o ) { - return o + ""; - } - function join( pre, arr, post ) { - var s = dump.separator(), - base = dump.indent(), - inner = dump.indent( 1 ); - if ( arr.join ) { - arr = arr.join( "," + s + inner ); - } - if ( !arr ) { - return pre + post; - } - return [ pre, inner + arr, base + post ].join( s ); - } - function array( arr, stack ) { - var i = arr.length, - ret = new Array( i ); - - if ( dump.maxDepth && dump.depth > dump.maxDepth ) { - return "[object Array]"; - } - - this.up(); - while ( i-- ) { - ret[ i ] = this.parse( arr[ i ], undefined, stack ); - } - this.down(); - return join( "[", ret, "]" ); - } - - var reName = /^function (\w+)/, - dump = { - - // The objType is used mostly internally, you can fix a (custom) type in advance - parse: function( obj, objType, stack ) { - stack = stack || []; - var res, parser, parserType, - inStack = inArray( obj, stack ); - - if ( inStack !== -1 ) { - return "recursion(" + ( inStack - stack.length ) + ")"; - } - - objType = objType || this.typeOf( obj ); - parser = this.parsers[ objType ]; - parserType = typeof parser; - - if ( parserType === "function" ) { - stack.push( obj ); - res = parser.call( this, obj, stack ); - stack.pop(); - return res; - } - return ( parserType === "string" ) ? parser : this.parsers.error; - }, - typeOf: function( obj ) { - var type; - if ( obj === null ) { - type = "null"; - } else if ( typeof obj === "undefined" ) { - type = "undefined"; - } else if ( QUnit.is( "regexp", obj ) ) { - type = "regexp"; - } else if ( QUnit.is( "date", obj ) ) { - type = "date"; - } else if ( QUnit.is( "function", obj ) ) { - type = "function"; - } else if ( obj.setInterval !== undefined && - obj.document !== undefined && - obj.nodeType === undefined ) { - type = "window"; - } else if ( obj.nodeType === 9 ) { - type = "document"; - } else if ( obj.nodeType ) { - type = "node"; - } else if ( - - // Native arrays - toString.call( obj ) === "[object Array]" || - - // NodeList objects - ( typeof obj.length === "number" && obj.item !== undefined && - ( obj.length ? obj.item( 0 ) === obj[ 0 ] : ( obj.item( 0 ) === null && - obj[ 0 ] === undefined ) ) ) - ) { - type = "array"; - } else if ( obj.constructor === Error.prototype.constructor ) { - type = "error"; - } else { - type = typeof obj; - } - return type; - }, - - separator: function() { - return this.multiline ? this.HTML ? "<br />" : "\n" : this.HTML ? "&#160;" : " "; - }, - - // Extra can be a number, shortcut for increasing-calling-decreasing - indent: function( extra ) { - if ( !this.multiline ) { - return ""; - } - var chr = this.indentChar; - if ( this.HTML ) { - chr = chr.replace( /\t/g, " " ).replace( / /g, "&#160;" ); - } - return new Array( this.depth + ( extra || 0 ) ).join( chr ); - }, - up: function( a ) { - this.depth += a || 1; - }, - down: function( a ) { - this.depth -= a || 1; - }, - setParser: function( name, parser ) { - this.parsers[ name ] = parser; - }, - - // The next 3 are exposed so you can use them - quote: quote, - literal: literal, - join: join, - depth: 1, - maxDepth: QUnit.config.maxDepth, - - // This is the list of parsers, to modify them, use dump.setParser - parsers: { - window: "[Window]", - document: "[Document]", - error: function( error ) { - return "Error(\"" + error.message + "\")"; - }, - unknown: "[Unknown]", - "null": "null", - "undefined": "undefined", - "function": function( fn ) { - var ret = "function", - - // Functions never have name in IE - name = "name" in fn ? fn.name : ( reName.exec( fn ) || [] )[ 1 ]; - - if ( name ) { - ret += " " + name; - } - ret += "("; - - ret = [ ret, dump.parse( fn, "functionArgs" ), "){" ].join( "" ); - return join( ret, dump.parse( fn, "functionCode" ), "}" ); - }, - array: array, - nodelist: array, - "arguments": array, - object: function( map, stack ) { - var keys, key, val, i, nonEnumerableProperties, - ret = []; - - if ( dump.maxDepth && dump.depth > dump.maxDepth ) { - return "[object Object]"; - } - - dump.up(); - keys = []; - for ( key in map ) { - keys.push( key ); - } - - // Some properties are not always enumerable on Error objects. - nonEnumerableProperties = [ "message", "name" ]; - for ( i in nonEnumerableProperties ) { - key = nonEnumerableProperties[ i ]; - if ( key in map && inArray( key, keys ) < 0 ) { - keys.push( key ); - } - } - keys.sort(); - for ( i = 0; i < keys.length; i++ ) { - key = keys[ i ]; - val = map[ key ]; - ret.push( dump.parse( key, "key" ) + ": " + - dump.parse( val, undefined, stack ) ); - } - dump.down(); - return join( "{", ret, "}" ); - }, - node: function( node ) { - var len, i, val, - open = dump.HTML ? "&lt;" : "<", - close = dump.HTML ? "&gt;" : ">", - tag = node.nodeName.toLowerCase(), - ret = open + tag, - attrs = node.attributes; - - if ( attrs ) { - for ( i = 0, len = attrs.length; i < len; i++ ) { - val = attrs[ i ].nodeValue; - - // IE6 includes all attributes in .attributes, even ones not explicitly - // set. Those have values like undefined, null, 0, false, "" or - // "inherit". - if ( val && val !== "inherit" ) { - ret += " " + attrs[ i ].nodeName + "=" + - dump.parse( val, "attribute" ); - } - } - } - ret += close; - - // Show content of TextNode or CDATASection - if ( node.nodeType === 3 || node.nodeType === 4 ) { - ret += node.nodeValue; - } - - return ret + open + "/" + tag + close; - }, - - // Function calls it internally, it's the arguments part of the function - functionArgs: function( fn ) { - var args, - l = fn.length; - - if ( !l ) { - return ""; - } - - args = new Array( l ); - while ( l-- ) { - - // 97 is 'a' - args[ l ] = String.fromCharCode( 97 + l ); - } - return " " + args.join( ", " ) + " "; - }, - - // Object calls it internally, the key part of an item in a map - key: quote, - - // Function calls it internally, it's the content of the function - functionCode: "[code]", - - // Node calls it internally, it's a html attribute value - attribute: quote, - string: quote, - date: quote, - regexp: literal, - number: literal, - "boolean": literal - }, - - // If true, entities are escaped ( <, >, \t, space and \n ) - HTML: false, - - // Indentation unit - indentChar: " ", - - // If true, items in a collection, are separated by a \n, else just a space. - multiline: true - }; - - return dump; -}() ); - -// Back compat -QUnit.jsDump = QUnit.dump; - -// Deprecated -// Extend assert methods to QUnit for Backwards compatibility -( function() { - var i, - assertions = Assert.prototype; - - function applyCurrent( current ) { - return function() { - var assert = new Assert( QUnit.config.current ); - current.apply( assert, arguments ); - }; - } - - for ( i in assertions ) { - QUnit[ i ] = applyCurrent( assertions[ i ] ); - } -}() ); - -// For browser, export only select globals -if ( defined.document ) { - - ( function() { - var i, l, - keys = [ - "test", - "module", - "expect", - "asyncTest", - "start", - "stop", - "ok", - "notOk", - "equal", - "notEqual", - "propEqual", - "notPropEqual", - "deepEqual", - "notDeepEqual", - "strictEqual", - "notStrictEqual", - "throws", - "raises" - ]; - - for ( i = 0, l = keys.length; i < l; i++ ) { - window[ keys[ i ] ] = QUnit[ keys[ i ] ]; - } - }() ); - - window.QUnit = QUnit; -} - -// For nodejs -if ( typeof module !== "undefined" && module && module.exports ) { - module.exports = QUnit; - - // For consistency with CommonJS environments' exports - module.exports.QUnit = QUnit; -} - -// For CommonJS with exports, but without module.exports, like Rhino -if ( typeof exports !== "undefined" && exports ) { - exports.QUnit = QUnit; -} - -if ( typeof define === "function" && define.amd ) { - define( function() { - return QUnit; - } ); - QUnit.config.autostart = false; -} - -// Get a reference to the global object, like window in browsers -}( ( function() { - return this; -}() ) ) ); - -( function() { - -// Only interact with URLs via window.location -var location = typeof window !== "undefined" && window.location; -if ( !location ) { - return; -} - -var urlParams = getUrlParams(); - -QUnit.urlParams = urlParams; - -// Match module/test by inclusion in an array -QUnit.config.moduleId = [].concat( urlParams.moduleId || [] ); -QUnit.config.testId = [].concat( urlParams.testId || [] ); - -// Exact case-insensitive match of the module name -QUnit.config.module = urlParams.module; - -// Regular expression or case-insenstive substring match against "moduleName: testName" -QUnit.config.filter = urlParams.filter; - -// Test order randomization -if ( urlParams.seed === true ) { - - // Generate a random seed if the option is specified without a value - QUnit.config.seed = Math.random().toString( 36 ).slice( 2 ); -} else if ( urlParams.seed ) { - QUnit.config.seed = urlParams.seed; -} - -// Add URL-parameter-mapped config values with UI form rendering data -QUnit.config.urlConfig.push( - { - id: "hidepassed", - label: "Hide passed tests", - tooltip: "Only show tests and assertions that fail. Stored as query-strings." - }, - { - id: "noglobals", - label: "Check for Globals", - tooltip: "Enabling this will test if any test introduces new properties on the " + - "global object (`window` in Browsers). Stored as query-strings." - }, - { - id: "notrycatch", - label: "No try-catch", - tooltip: "Enabling this will run tests outside of a try-catch block. Makes debugging " + - "exceptions in IE reasonable. Stored as query-strings." - } -); - -QUnit.begin( function() { - var i, option, - urlConfig = QUnit.config.urlConfig; - - for ( i = 0; i < urlConfig.length; i++ ) { - - // Options can be either strings or objects with nonempty "id" properties - option = QUnit.config.urlConfig[ i ]; - if ( typeof option !== "string" ) { - option = option.id; - } - - if ( QUnit.config[ option ] === undefined ) { - QUnit.config[ option ] = urlParams[ option ]; - } - } -} ); - -function getUrlParams() { - var i, param, name, value; - var urlParams = {}; - var params = location.search.slice( 1 ).split( "&" ); - var length = params.length; - - for ( i = 0; i < length; i++ ) { - if ( params[ i ] ) { - param = params[ i ].split( "=" ); - name = decodeURIComponent( param[ 0 ] ); - - // Allow just a key to turn on a flag, e.g., test.html?noglobals - value = param.length === 1 || - decodeURIComponent( param.slice( 1 ).join( "=" ) ) ; - if ( urlParams[ name ] ) { - urlParams[ name ] = [].concat( urlParams[ name ], value ); - } else { - urlParams[ name ] = value; - } - } - } - - return urlParams; -} - -// Don't load the HTML Reporter on non-browser environments -if ( typeof window === "undefined" || !window.document ) { - return; -} - -// Deprecated QUnit.init - Ref #530 -// Re-initialize the configuration options -QUnit.init = function() { - var config = QUnit.config; - - config.stats = { all: 0, bad: 0 }; - config.moduleStats = { all: 0, bad: 0 }; - config.started = 0; - config.updateRate = 1000; - config.blocking = false; - config.autostart = true; - config.autorun = false; - config.filter = ""; - config.queue = []; - - appendInterface(); -}; - -var config = QUnit.config, - document = window.document, - collapseNext = false, - hasOwn = Object.prototype.hasOwnProperty, - unfilteredUrl = setUrl( { filter: undefined, module: undefined, - moduleId: undefined, testId: undefined } ), - defined = { - sessionStorage: ( function() { - var x = "qunit-test-string"; - try { - sessionStorage.setItem( x, x ); - sessionStorage.removeItem( x ); - return true; - } catch ( e ) { - return false; - } - }() ) - }, - modulesList = []; - -/** -* Escape text for attribute or text content. -*/ -function escapeText( s ) { - if ( !s ) { - return ""; - } - s = s + ""; - - // Both single quotes and double quotes (for attributes) - return s.replace( /['"<>&]/g, function( s ) { - switch ( s ) { - case "'": - return "&#039;"; - case "\"": - return "&quot;"; - case "<": - return "&lt;"; - case ">": - return "&gt;"; - case "&": - return "&amp;"; - } - } ); -} - -/** - * @param {HTMLElement} elem - * @param {string} type - * @param {Function} fn - */ -function addEvent( elem, type, fn ) { - if ( elem.addEventListener ) { - - // Standards-based browsers - elem.addEventListener( type, fn, false ); - } else if ( elem.attachEvent ) { - - // Support: IE <9 - elem.attachEvent( "on" + type, function() { - var event = window.event; - if ( !event.target ) { - event.target = event.srcElement || document; - } - - fn.call( elem, event ); - } ); - } -} - -/** - * @param {Array|NodeList} elems - * @param {string} type - * @param {Function} fn - */ -function addEvents( elems, type, fn ) { - var i = elems.length; - while ( i-- ) { - addEvent( elems[ i ], type, fn ); - } -} - -function hasClass( elem, name ) { - return ( " " + elem.className + " " ).indexOf( " " + name + " " ) >= 0; -} - -function addClass( elem, name ) { - if ( !hasClass( elem, name ) ) { - elem.className += ( elem.className ? " " : "" ) + name; - } -} - -function toggleClass( elem, name, force ) { - if ( force || typeof force === "undefined" && !hasClass( elem, name ) ) { - addClass( elem, name ); - } else { - removeClass( elem, name ); - } -} - -function removeClass( elem, name ) { - var set = " " + elem.className + " "; - - // Class name may appear multiple times - while ( set.indexOf( " " + name + " " ) >= 0 ) { - set = set.replace( " " + name + " ", " " ); - } - - // Trim for prettiness - elem.className = typeof set.trim === "function" ? set.trim() : set.replace( /^\s+|\s+$/g, "" ); -} - -function id( name ) { - return document.getElementById && document.getElementById( name ); -} - -function getUrlConfigHtml() { - var i, j, val, - escaped, escapedTooltip, - selection = false, - urlConfig = config.urlConfig, - urlConfigHtml = ""; - - for ( i = 0; i < urlConfig.length; i++ ) { - - // Options can be either strings or objects with nonempty "id" properties - val = config.urlConfig[ i ]; - if ( typeof val === "string" ) { - val = { - id: val, - label: val - }; - } - - escaped = escapeText( val.id ); - escapedTooltip = escapeText( val.tooltip ); - - if ( !val.value || typeof val.value === "string" ) { - urlConfigHtml += "<input id='qunit-urlconfig-" + escaped + - "' name='" + escaped + "' type='checkbox'" + - ( val.value ? " value='" + escapeText( val.value ) + "'" : "" ) + - ( config[ val.id ] ? " checked='checked'" : "" ) + - " title='" + escapedTooltip + "' /><label for='qunit-urlconfig-" + escaped + - "' title='" + escapedTooltip + "'>" + val.label + "</label>"; - } else { - urlConfigHtml += "<label for='qunit-urlconfig-" + escaped + - "' title='" + escapedTooltip + "'>" + val.label + - ": </label><select id='qunit-urlconfig-" + escaped + - "' name='" + escaped + "' title='" + escapedTooltip + "'><option></option>"; - - if ( QUnit.is( "array", val.value ) ) { - for ( j = 0; j < val.value.length; j++ ) { - escaped = escapeText( val.value[ j ] ); - urlConfigHtml += "<option value='" + escaped + "'" + - ( config[ val.id ] === val.value[ j ] ? - ( selection = true ) && " selected='selected'" : "" ) + - ">" + escaped + "</option>"; - } - } else { - for ( j in val.value ) { - if ( hasOwn.call( val.value, j ) ) { - urlConfigHtml += "<option value='" + escapeText( j ) + "'" + - ( config[ val.id ] === j ? - ( selection = true ) && " selected='selected'" : "" ) + - ">" + escapeText( val.value[ j ] ) + "</option>"; - } - } - } - if ( config[ val.id ] && !selection ) { - escaped = escapeText( config[ val.id ] ); - urlConfigHtml += "<option value='" + escaped + - "' selected='selected' disabled='disabled'>" + escaped + "</option>"; - } - urlConfigHtml += "</select>"; - } - } - - return urlConfigHtml; -} - -// Handle "click" events on toolbar checkboxes and "change" for select menus. -// Updates the URL with the new state of `config.urlConfig` values. -function toolbarChanged() { - var updatedUrl, value, tests, - field = this, - params = {}; - - // Detect if field is a select menu or a checkbox - if ( "selectedIndex" in field ) { - value = field.options[ field.selectedIndex ].value || undefined; - } else { - value = field.checked ? ( field.defaultValue || true ) : undefined; - } - - params[ field.name ] = value; - updatedUrl = setUrl( params ); - - // Check if we can apply the change without a page refresh - if ( "hidepassed" === field.name && "replaceState" in window.history ) { - QUnit.urlParams[ field.name ] = value; - config[ field.name ] = value || false; - tests = id( "qunit-tests" ); - if ( tests ) { - toggleClass( tests, "hidepass", value || false ); - } - window.history.replaceState( null, "", updatedUrl ); - } else { - window.location = updatedUrl; - } -} - -function setUrl( params ) { - var key, arrValue, i, - querystring = "?", - location = window.location; - - params = QUnit.extend( QUnit.extend( {}, QUnit.urlParams ), params ); - - for ( key in params ) { - - // Skip inherited or undefined properties - if ( hasOwn.call( params, key ) && params[ key ] !== undefined ) { - - // Output a parameter for each value of this key (but usually just one) - arrValue = [].concat( params[ key ] ); - for ( i = 0; i < arrValue.length; i++ ) { - querystring += encodeURIComponent( key ); - if ( arrValue[ i ] !== true ) { - querystring += "=" + encodeURIComponent( arrValue[ i ] ); - } - querystring += "&"; - } - } - } - return location.protocol + "//" + location.host + - location.pathname + querystring.slice( 0, -1 ); -} - -function applyUrlParams() { - var selectedModule, - modulesList = id( "qunit-modulefilter" ), - filter = id( "qunit-filter-input" ).value; - - selectedModule = modulesList ? - decodeURIComponent( modulesList.options[ modulesList.selectedIndex ].value ) : - undefined; - - window.location = setUrl( { - module: ( selectedModule === "" ) ? undefined : selectedModule, - filter: ( filter === "" ) ? undefined : filter, - - // Remove moduleId and testId filters - moduleId: undefined, - testId: undefined - } ); -} - -function toolbarUrlConfigContainer() { - var urlConfigContainer = document.createElement( "span" ); - - urlConfigContainer.innerHTML = getUrlConfigHtml(); - addClass( urlConfigContainer, "qunit-url-config" ); - - // For oldIE support: - // * Add handlers to the individual elements instead of the container - // * Use "click" instead of "change" for checkboxes - addEvents( urlConfigContainer.getElementsByTagName( "input" ), "click", toolbarChanged ); - addEvents( urlConfigContainer.getElementsByTagName( "select" ), "change", toolbarChanged ); - - return urlConfigContainer; -} - -function toolbarLooseFilter() { - var filter = document.createElement( "form" ), - label = document.createElement( "label" ), - input = document.createElement( "input" ), - button = document.createElement( "button" ); - - addClass( filter, "qunit-filter" ); - - label.innerHTML = "Filter: "; - - input.type = "text"; - input.value = config.filter || ""; - input.name = "filter"; - input.id = "qunit-filter-input"; - - button.innerHTML = "Go"; - - label.appendChild( input ); - - filter.appendChild( label ); - filter.appendChild( button ); - addEvent( filter, "submit", function( ev ) { - applyUrlParams(); - - if ( ev && ev.preventDefault ) { - ev.preventDefault(); - } - - return false; - } ); - - return filter; -} - -function toolbarModuleFilterHtml() { - var i, - moduleFilterHtml = ""; - - if ( !modulesList.length ) { - return false; - } - - moduleFilterHtml += "<label for='qunit-modulefilter'>Module: </label>" + - "<select id='qunit-modulefilter' name='modulefilter'><option value='' " + - ( QUnit.urlParams.module === undefined ? "selected='selected'" : "" ) + - ">< All Modules ></option>"; - - for ( i = 0; i < modulesList.length; i++ ) { - moduleFilterHtml += "<option value='" + - escapeText( encodeURIComponent( modulesList[ i ] ) ) + "' " + - ( QUnit.urlParams.module === modulesList[ i ] ? "selected='selected'" : "" ) + - ">" + escapeText( modulesList[ i ] ) + "</option>"; - } - moduleFilterHtml += "</select>"; - - return moduleFilterHtml; -} - -function toolbarModuleFilter() { - var toolbar = id( "qunit-testrunner-toolbar" ), - moduleFilter = document.createElement( "span" ), - moduleFilterHtml = toolbarModuleFilterHtml(); - - if ( !toolbar || !moduleFilterHtml ) { - return false; - } - - moduleFilter.setAttribute( "id", "qunit-modulefilter-container" ); - moduleFilter.innerHTML = moduleFilterHtml; - - addEvent( moduleFilter.lastChild, "change", applyUrlParams ); - - toolbar.appendChild( moduleFilter ); -} - -function appendToolbar() { - var toolbar = id( "qunit-testrunner-toolbar" ); - - if ( toolbar ) { - toolbar.appendChild( toolbarUrlConfigContainer() ); - toolbar.appendChild( toolbarLooseFilter() ); - toolbarModuleFilter(); - } -} - -function appendHeader() { - var header = id( "qunit-header" ); - - if ( header ) { - header.innerHTML = "<a href='" + escapeText( unfilteredUrl ) + "'>" + header.innerHTML + - "</a> "; - } -} - -function appendBanner() { - var banner = id( "qunit-banner" ); - - if ( banner ) { - banner.className = ""; - } -} - -function appendTestResults() { - var tests = id( "qunit-tests" ), - result = id( "qunit-testresult" ); - - if ( result ) { - result.parentNode.removeChild( result ); - } - - if ( tests ) { - tests.innerHTML = ""; - result = document.createElement( "p" ); - result.id = "qunit-testresult"; - result.className = "result"; - tests.parentNode.insertBefore( result, tests ); - result.innerHTML = "Running...<br />&#160;"; - } -} - -function storeFixture() { - var fixture = id( "qunit-fixture" ); - if ( fixture ) { - config.fixture = fixture.innerHTML; - } -} - -function appendFilteredTest() { - var testId = QUnit.config.testId; - if ( !testId || testId.length <= 0 ) { - return ""; - } - return "<div id='qunit-filteredTest'>Rerunning selected tests: " + - escapeText( testId.join( ", " ) ) + - " <a id='qunit-clearFilter' href='" + - escapeText( unfilteredUrl ) + - "'>Run all tests</a></div>"; -} - -function appendUserAgent() { - var userAgent = id( "qunit-userAgent" ); - - if ( userAgent ) { - userAgent.innerHTML = ""; - userAgent.appendChild( - document.createTextNode( - "QUnit " + QUnit.version + "; " + navigator.userAgent - ) - ); - } -} - -function appendInterface() { - var qunit = id( "qunit" ); - - if ( qunit ) { - qunit.innerHTML = - "<h1 id='qunit-header'>" + escapeText( document.title ) + "</h1>" + - "<h2 id='qunit-banner'></h2>" + - "<div id='qunit-testrunner-toolbar'></div>" + - appendFilteredTest() + - "<h2 id='qunit-userAgent'></h2>" + - "<ol id='qunit-tests'></ol>"; - } - - appendHeader(); - appendBanner(); - appendTestResults(); - appendUserAgent(); - appendToolbar(); -} - -function appendTestsList( modules ) { - var i, l, x, z, test, moduleObj; - - for ( i = 0, l = modules.length; i < l; i++ ) { - moduleObj = modules[ i ]; - - for ( x = 0, z = moduleObj.tests.length; x < z; x++ ) { - test = moduleObj.tests[ x ]; - - appendTest( test.name, test.testId, moduleObj.name ); - } - } -} - -function appendTest( name, testId, moduleName ) { - var title, rerunTrigger, testBlock, assertList, - tests = id( "qunit-tests" ); - - if ( !tests ) { - return; - } - - title = document.createElement( "strong" ); - title.innerHTML = getNameHtml( name, moduleName ); - - rerunTrigger = document.createElement( "a" ); - rerunTrigger.innerHTML = "Rerun"; - rerunTrigger.href = setUrl( { testId: testId } ); - - testBlock = document.createElement( "li" ); - testBlock.appendChild( title ); - testBlock.appendChild( rerunTrigger ); - testBlock.id = "qunit-test-output-" + testId; - - assertList = document.createElement( "ol" ); - assertList.className = "qunit-assert-list"; - - testBlock.appendChild( assertList ); - - tests.appendChild( testBlock ); -} - -// HTML Reporter initialization and load -QUnit.begin( function( details ) { - var i, moduleObj, tests; - - // Sort modules by name for the picker - for ( i = 0; i < details.modules.length; i++ ) { - moduleObj = details.modules[ i ]; - if ( moduleObj.name ) { - modulesList.push( moduleObj.name ); - } - } - modulesList.sort( function( a, b ) { - return a.localeCompare( b ); - } ); - - // Capture fixture HTML from the page - storeFixture(); - - // Initialize QUnit elements - appendInterface(); - appendTestsList( details.modules ); - tests = id( "qunit-tests" ); - if ( tests && config.hidepassed ) { - addClass( tests, "hidepass" ); - } -} ); - -QUnit.done( function( details ) { - var i, key, - banner = id( "qunit-banner" ), - tests = id( "qunit-tests" ), - html = [ - "Tests completed in ", - details.runtime, - " milliseconds.<br />", - "<span class='passed'>", - details.passed, - "</span> assertions of <span class='total'>", - details.total, - "</span> passed, <span class='failed'>", - details.failed, - "</span> failed." - ].join( "" ); - - if ( banner ) { - banner.className = details.failed ? "qunit-fail" : "qunit-pass"; - } - - if ( tests ) { - id( "qunit-testresult" ).innerHTML = html; - } - - if ( config.altertitle && document.title ) { - - // Show ✖ for good, ✔ for bad suite result in title - // use escape sequences in case file gets loaded with non-utf-8-charset - document.title = [ - ( details.failed ? "\u2716" : "\u2714" ), - document.title.replace( /^[\u2714\u2716] /i, "" ) - ].join( " " ); - } - - // Clear own sessionStorage items if all tests passed - if ( config.reorder && defined.sessionStorage && details.failed === 0 ) { - for ( i = 0; i < sessionStorage.length; i++ ) { - key = sessionStorage.key( i++ ); - if ( key.indexOf( "qunit-test-" ) === 0 ) { - sessionStorage.removeItem( key ); - } - } - } - - // Scroll back to top to show results - if ( config.scrolltop && window.scrollTo ) { - window.scrollTo( 0, 0 ); - } -} ); - -function getNameHtml( name, module ) { - var nameHtml = ""; - - if ( module ) { - nameHtml = "<span class='module-name'>" + escapeText( module ) + "</span>: "; - } - - nameHtml += "<span class='test-name'>" + escapeText( name ) + "</span>"; - - return nameHtml; -} - -QUnit.testStart( function( details ) { - var running, testBlock, bad; - - testBlock = id( "qunit-test-output-" + details.testId ); - if ( testBlock ) { - testBlock.className = "running"; - } else { - - // Report later registered tests - appendTest( details.name, details.testId, details.module ); - } - - running = id( "qunit-testresult" ); - if ( running ) { - bad = QUnit.config.reorder && defined.sessionStorage && - +sessionStorage.getItem( "qunit-test-" + details.module + "-" + details.name ); - - running.innerHTML = ( bad ? - "Rerunning previously failed test: <br />" : - "Running: <br />" ) + - getNameHtml( details.name, details.module ); - } - -} ); - -function stripHtml( string ) { - - // Strip tags, html entity and whitespaces - return string.replace( /<\/?[^>]+(>|$)/g, "" ).replace( /\&quot;/g, "" ).replace( /\s+/g, "" ); -} - -QUnit.log( function( details ) { - var assertList, assertLi, - message, expected, actual, diff, - showDiff = false, - testItem = id( "qunit-test-output-" + details.testId ); - - if ( !testItem ) { - return; - } - - message = escapeText( details.message ) || ( details.result ? "okay" : "failed" ); - message = "<span class='test-message'>" + message + "</span>"; - message += "<span class='runtime'>@ " + details.runtime + " ms</span>"; - - // The pushFailure doesn't provide details.expected - // when it calls, it's implicit to also not show expected and diff stuff - // Also, we need to check details.expected existence, as it can exist and be undefined - if ( !details.result && hasOwn.call( details, "expected" ) ) { - if ( details.negative ) { - expected = "NOT " + QUnit.dump.parse( details.expected ); - } else { - expected = QUnit.dump.parse( details.expected ); - } - - actual = QUnit.dump.parse( details.actual ); - message += "<table><tr class='test-expected'><th>Expected: </th><td><pre>" + - escapeText( expected ) + - "</pre></td></tr>"; - - if ( actual !== expected ) { - - message += "<tr class='test-actual'><th>Result: </th><td><pre>" + - escapeText( actual ) + "</pre></td></tr>"; - - // Don't show diff if actual or expected are booleans - if ( !( /^(true|false)$/.test( actual ) ) && - !( /^(true|false)$/.test( expected ) ) ) { - diff = QUnit.diff( expected, actual ); - showDiff = stripHtml( diff ).length !== - stripHtml( expected ).length + - stripHtml( actual ).length; - } - - // Don't show diff if expected and actual are totally different - if ( showDiff ) { - message += "<tr class='test-diff'><th>Diff: </th><td><pre>" + - diff + "</pre></td></tr>"; - } - } else if ( expected.indexOf( "[object Array]" ) !== -1 || - expected.indexOf( "[object Object]" ) !== -1 ) { - message += "<tr class='test-message'><th>Message: </th><td>" + - "Diff suppressed as the depth of object is more than current max depth (" + - QUnit.config.maxDepth + ").<p>Hint: Use <code>QUnit.dump.maxDepth</code> to " + - " run with a higher max depth or <a href='" + - escapeText( setUrl( { maxDepth: -1 } ) ) + "'>" + - "Rerun</a> without max depth.</p></td></tr>"; - } else { - message += "<tr class='test-message'><th>Message: </th><td>" + - "Diff suppressed as the expected and actual results have an equivalent" + - " serialization</td></tr>"; - } - - if ( details.source ) { - message += "<tr class='test-source'><th>Source: </th><td><pre>" + - escapeText( details.source ) + "</pre></td></tr>"; - } - - message += "</table>"; - - // This occurs when pushFailure is set and we have an extracted stack trace - } else if ( !details.result && details.source ) { - message += "<table>" + - "<tr class='test-source'><th>Source: </th><td><pre>" + - escapeText( details.source ) + "</pre></td></tr>" + - "</table>"; - } - - assertList = testItem.getElementsByTagName( "ol" )[ 0 ]; - - assertLi = document.createElement( "li" ); - assertLi.className = details.result ? "pass" : "fail"; - assertLi.innerHTML = message; - assertList.appendChild( assertLi ); -} ); - -QUnit.testDone( function( details ) { - var testTitle, time, testItem, assertList, - good, bad, testCounts, skipped, sourceName, - tests = id( "qunit-tests" ); - - if ( !tests ) { - return; - } - - testItem = id( "qunit-test-output-" + details.testId ); - - assertList = testItem.getElementsByTagName( "ol" )[ 0 ]; - - good = details.passed; - bad = details.failed; - - // Store result when possible - if ( config.reorder && defined.sessionStorage ) { - if ( bad ) { - sessionStorage.setItem( "qunit-test-" + details.module + "-" + details.name, bad ); - } else { - sessionStorage.removeItem( "qunit-test-" + details.module + "-" + details.name ); - } - } - - if ( bad === 0 ) { - - // Collapse the passing tests - addClass( assertList, "qunit-collapsed" ); - } else if ( bad && config.collapse && !collapseNext ) { - - // Skip collapsing the first failing test - collapseNext = true; - } else { - - // Collapse remaining tests - addClass( assertList, "qunit-collapsed" ); - } - - // The testItem.firstChild is the test name - testTitle = testItem.firstChild; - - testCounts = bad ? - "<b class='failed'>" + bad + "</b>, " + "<b class='passed'>" + good + "</b>, " : - ""; - - testTitle.innerHTML += " <b class='counts'>(" + testCounts + - details.assertions.length + ")</b>"; - - if ( details.skipped ) { - testItem.className = "skipped"; - skipped = document.createElement( "em" ); - skipped.className = "qunit-skipped-label"; - skipped.innerHTML = "skipped"; - testItem.insertBefore( skipped, testTitle ); - } else { - addEvent( testTitle, "click", function() { - toggleClass( assertList, "qunit-collapsed" ); - } ); - - testItem.className = bad ? "fail" : "pass"; - - time = document.createElement( "span" ); - time.className = "runtime"; - time.innerHTML = details.runtime + " ms"; - testItem.insertBefore( time, assertList ); - } - - // Show the source of the test when showing assertions - if ( details.source ) { - sourceName = document.createElement( "p" ); - sourceName.innerHTML = "<strong>Source: </strong>" + details.source; - addClass( sourceName, "qunit-source" ); - if ( bad === 0 ) { - addClass( sourceName, "qunit-collapsed" ); - } - addEvent( testTitle, "click", function() { - toggleClass( sourceName, "qunit-collapsed" ); - } ); - testItem.appendChild( sourceName ); - } -} ); - -// Avoid readyState issue with phantomjs -// Ref: #818 -var notPhantom = ( function( p ) { - return !( p && p.version && p.version.major > 0 ); -} )( window.phantom ); - -if ( notPhantom && document.readyState === "complete" ) { - QUnit.load(); -} else { - addEvent( window, "load", QUnit.load ); -} - -/* - * This file is a modified version of google-diff-match-patch's JavaScript implementation - * (https://code.google.com/p/google-diff-match-patch/source/browse/trunk/javascript/diff_match_patch_uncompressed.js), - * modifications are licensed as more fully set forth in LICENSE.txt. - * - * The original source of google-diff-match-patch is attributable and licensed as follows: - * - * Copyright 2006 Google Inc. - * https://code.google.com/p/google-diff-match-patch/ - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - * More Info: - * https://code.google.com/p/google-diff-match-patch/ - * - * Usage: QUnit.diff(expected, actual) - * - */ -QUnit.diff = ( function() { - function DiffMatchPatch() { - } - - // DIFF FUNCTIONS - - /** - * The data structure representing a diff is an array of tuples: - * [[DIFF_DELETE, 'Hello'], [DIFF_INSERT, 'Goodbye'], [DIFF_EQUAL, ' world.']] - * which means: delete 'Hello', add 'Goodbye' and keep ' world.' - */ - var DIFF_DELETE = -1, - DIFF_INSERT = 1, - DIFF_EQUAL = 0; - - /** - * Find the differences between two texts. Simplifies the problem by stripping - * any common prefix or suffix off the texts before diffing. - * @param {string} text1 Old string to be diffed. - * @param {string} text2 New string to be diffed. - * @param {boolean=} optChecklines Optional speedup flag. If present and false, - * then don't run a line-level diff first to identify the changed areas. - * Defaults to true, which does a faster, slightly less optimal diff. - * @return {!Array.<!DiffMatchPatch.Diff>} Array of diff tuples. - */ - DiffMatchPatch.prototype.DiffMain = function( text1, text2, optChecklines ) { - var deadline, checklines, commonlength, - commonprefix, commonsuffix, diffs; - - // The diff must be complete in up to 1 second. - deadline = ( new Date() ).getTime() + 1000; - - // Check for null inputs. - if ( text1 === null || text2 === null ) { - throw new Error( "Null input. (DiffMain)" ); - } - - // Check for equality (speedup). - if ( text1 === text2 ) { - if ( text1 ) { - return [ - [ DIFF_EQUAL, text1 ] - ]; - } - return []; - } - - if ( typeof optChecklines === "undefined" ) { - optChecklines = true; - } - - checklines = optChecklines; - - // Trim off common prefix (speedup). - commonlength = this.diffCommonPrefix( text1, text2 ); - commonprefix = text1.substring( 0, commonlength ); - text1 = text1.substring( commonlength ); - text2 = text2.substring( commonlength ); - - // Trim off common suffix (speedup). - commonlength = this.diffCommonSuffix( text1, text2 ); - commonsuffix = text1.substring( text1.length - commonlength ); - text1 = text1.substring( 0, text1.length - commonlength ); - text2 = text2.substring( 0, text2.length - commonlength ); - - // Compute the diff on the middle block. - diffs = this.diffCompute( text1, text2, checklines, deadline ); - - // Restore the prefix and suffix. - if ( commonprefix ) { - diffs.unshift( [ DIFF_EQUAL, commonprefix ] ); - } - if ( commonsuffix ) { - diffs.push( [ DIFF_EQUAL, commonsuffix ] ); - } - this.diffCleanupMerge( diffs ); - return diffs; - }; - - /** - * Reduce the number of edits by eliminating operationally trivial equalities. - * @param {!Array.<!DiffMatchPatch.Diff>} diffs Array of diff tuples. - */ - DiffMatchPatch.prototype.diffCleanupEfficiency = function( diffs ) { - var changes, equalities, equalitiesLength, lastequality, - pointer, preIns, preDel, postIns, postDel; - changes = false; - equalities = []; // Stack of indices where equalities are found. - equalitiesLength = 0; // Keeping our own length var is faster in JS. - /** @type {?string} */ - lastequality = null; - - // Always equal to diffs[equalities[equalitiesLength - 1]][1] - pointer = 0; // Index of current position. - - // Is there an insertion operation before the last equality. - preIns = false; - - // Is there a deletion operation before the last equality. - preDel = false; - - // Is there an insertion operation after the last equality. - postIns = false; - - // Is there a deletion operation after the last equality. - postDel = false; - while ( pointer < diffs.length ) { - - // Equality found. - if ( diffs[ pointer ][ 0 ] === DIFF_EQUAL ) { - if ( diffs[ pointer ][ 1 ].length < 4 && ( postIns || postDel ) ) { - - // Candidate found. - equalities[ equalitiesLength++ ] = pointer; - preIns = postIns; - preDel = postDel; - lastequality = diffs[ pointer ][ 1 ]; - } else { - - // Not a candidate, and can never become one. - equalitiesLength = 0; - lastequality = null; - } - postIns = postDel = false; - - // An insertion or deletion. - } else { - - if ( diffs[ pointer ][ 0 ] === DIFF_DELETE ) { - postDel = true; - } else { - postIns = true; - } - - /* - * Five types to be split: - * <ins>A</ins><del>B</del>XY<ins>C</ins><del>D</del> - * <ins>A</ins>X<ins>C</ins><del>D</del> - * <ins>A</ins><del>B</del>X<ins>C</ins> - * <ins>A</del>X<ins>C</ins><del>D</del> - * <ins>A</ins><del>B</del>X<del>C</del> - */ - if ( lastequality && ( ( preIns && preDel && postIns && postDel ) || - ( ( lastequality.length < 2 ) && - ( preIns + preDel + postIns + postDel ) === 3 ) ) ) { - - // Duplicate record. - diffs.splice( - equalities[ equalitiesLength - 1 ], - 0, - [ DIFF_DELETE, lastequality ] - ); - - // Change second copy to insert. - diffs[ equalities[ equalitiesLength - 1 ] + 1 ][ 0 ] = DIFF_INSERT; - equalitiesLength--; // Throw away the equality we just deleted; - lastequality = null; - if ( preIns && preDel ) { - - // No changes made which could affect previous entry, keep going. - postIns = postDel = true; - equalitiesLength = 0; - } else { - equalitiesLength--; // Throw away the previous equality. - pointer = equalitiesLength > 0 ? equalities[ equalitiesLength - 1 ] : -1; - postIns = postDel = false; - } - changes = true; - } - } - pointer++; - } - - if ( changes ) { - this.diffCleanupMerge( diffs ); - } - }; - - /** - * Convert a diff array into a pretty HTML report. - * @param {!Array.<!DiffMatchPatch.Diff>} diffs Array of diff tuples. - * @param {integer} string to be beautified. - * @return {string} HTML representation. - */ - DiffMatchPatch.prototype.diffPrettyHtml = function( diffs ) { - var op, data, x, - html = []; - for ( x = 0; x < diffs.length; x++ ) { - op = diffs[ x ][ 0 ]; // Operation (insert, delete, equal) - data = diffs[ x ][ 1 ]; // Text of change. - switch ( op ) { - case DIFF_INSERT: - html[ x ] = "<ins>" + escapeText( data ) + "</ins>"; - break; - case DIFF_DELETE: - html[ x ] = "<del>" + escapeText( data ) + "</del>"; - break; - case DIFF_EQUAL: - html[ x ] = "<span>" + escapeText( data ) + "</span>"; - break; - } - } - return html.join( "" ); - }; - - /** - * Determine the common prefix of two strings. - * @param {string} text1 First string. - * @param {string} text2 Second string. - * @return {number} The number of characters common to the start of each - * string. - */ - DiffMatchPatch.prototype.diffCommonPrefix = function( text1, text2 ) { - var pointermid, pointermax, pointermin, pointerstart; - - // Quick check for common null cases. - if ( !text1 || !text2 || text1.charAt( 0 ) !== text2.charAt( 0 ) ) { - return 0; - } - - // Binary search. - // Performance analysis: https://neil.fraser.name/news/2007/10/09/ - pointermin = 0; - pointermax = Math.min( text1.length, text2.length ); - pointermid = pointermax; - pointerstart = 0; - while ( pointermin < pointermid ) { - if ( text1.substring( pointerstart, pointermid ) === - text2.substring( pointerstart, pointermid ) ) { - pointermin = pointermid; - pointerstart = pointermin; - } else { - pointermax = pointermid; - } - pointermid = Math.floor( ( pointermax - pointermin ) / 2 + pointermin ); - } - return pointermid; - }; - - /** - * Determine the common suffix of two strings. - * @param {string} text1 First string. - * @param {string} text2 Second string. - * @return {number} The number of characters common to the end of each string. - */ - DiffMatchPatch.prototype.diffCommonSuffix = function( text1, text2 ) { - var pointermid, pointermax, pointermin, pointerend; - - // Quick check for common null cases. - if ( !text1 || - !text2 || - text1.charAt( text1.length - 1 ) !== text2.charAt( text2.length - 1 ) ) { - return 0; - } - - // Binary search. - // Performance analysis: https://neil.fraser.name/news/2007/10/09/ - pointermin = 0; - pointermax = Math.min( text1.length, text2.length ); - pointermid = pointermax; - pointerend = 0; - while ( pointermin < pointermid ) { - if ( text1.substring( text1.length - pointermid, text1.length - pointerend ) === - text2.substring( text2.length - pointermid, text2.length - pointerend ) ) { - pointermin = pointermid; - pointerend = pointermin; - } else { - pointermax = pointermid; - } - pointermid = Math.floor( ( pointermax - pointermin ) / 2 + pointermin ); - } - return pointermid; - }; - - /** - * Find the differences between two texts. Assumes that the texts do not - * have any common prefix or suffix. - * @param {string} text1 Old string to be diffed. - * @param {string} text2 New string to be diffed. - * @param {boolean} checklines Speedup flag. If false, then don't run a - * line-level diff first to identify the changed areas. - * If true, then run a faster, slightly less optimal diff. - * @param {number} deadline Time when the diff should be complete by. - * @return {!Array.<!DiffMatchPatch.Diff>} Array of diff tuples. - * @private - */ - DiffMatchPatch.prototype.diffCompute = function( text1, text2, checklines, deadline ) { - var diffs, longtext, shorttext, i, hm, - text1A, text2A, text1B, text2B, - midCommon, diffsA, diffsB; - - if ( !text1 ) { - - // Just add some text (speedup). - return [ - [ DIFF_INSERT, text2 ] - ]; - } - - if ( !text2 ) { - - // Just delete some text (speedup). - return [ - [ DIFF_DELETE, text1 ] - ]; - } - - longtext = text1.length > text2.length ? text1 : text2; - shorttext = text1.length > text2.length ? text2 : text1; - i = longtext.indexOf( shorttext ); - if ( i !== -1 ) { - - // Shorter text is inside the longer text (speedup). - diffs = [ - [ DIFF_INSERT, longtext.substring( 0, i ) ], - [ DIFF_EQUAL, shorttext ], - [ DIFF_INSERT, longtext.substring( i + shorttext.length ) ] - ]; - - // Swap insertions for deletions if diff is reversed. - if ( text1.length > text2.length ) { - diffs[ 0 ][ 0 ] = diffs[ 2 ][ 0 ] = DIFF_DELETE; - } - return diffs; - } - - if ( shorttext.length === 1 ) { - - // Single character string. - // After the previous speedup, the character can't be an equality. - return [ - [ DIFF_DELETE, text1 ], - [ DIFF_INSERT, text2 ] - ]; - } - - // Check to see if the problem can be split in two. - hm = this.diffHalfMatch( text1, text2 ); - if ( hm ) { - - // A half-match was found, sort out the return data. - text1A = hm[ 0 ]; - text1B = hm[ 1 ]; - text2A = hm[ 2 ]; - text2B = hm[ 3 ]; - midCommon = hm[ 4 ]; - - // Send both pairs off for separate processing. - diffsA = this.DiffMain( text1A, text2A, checklines, deadline ); - diffsB = this.DiffMain( text1B, text2B, checklines, deadline ); - - // Merge the results. - return diffsA.concat( [ - [ DIFF_EQUAL, midCommon ] - ], diffsB ); - } - - if ( checklines && text1.length > 100 && text2.length > 100 ) { - return this.diffLineMode( text1, text2, deadline ); - } - - return this.diffBisect( text1, text2, deadline ); - }; - - /** - * Do the two texts share a substring which is at least half the length of the - * longer text? - * This speedup can produce non-minimal diffs. - * @param {string} text1 First string. - * @param {string} text2 Second string. - * @return {Array.<string>} Five element Array, containing the prefix of - * text1, the suffix of text1, the prefix of text2, the suffix of - * text2 and the common middle. Or null if there was no match. - * @private - */ - DiffMatchPatch.prototype.diffHalfMatch = function( text1, text2 ) { - var longtext, shorttext, dmp, - text1A, text2B, text2A, text1B, midCommon, - hm1, hm2, hm; - - longtext = text1.length > text2.length ? text1 : text2; - shorttext = text1.length > text2.length ? text2 : text1; - if ( longtext.length < 4 || shorttext.length * 2 < longtext.length ) { - return null; // Pointless. - } - dmp = this; // 'this' becomes 'window' in a closure. - - /** - * Does a substring of shorttext exist within longtext such that the substring - * is at least half the length of longtext? - * Closure, but does not reference any external variables. - * @param {string} longtext Longer string. - * @param {string} shorttext Shorter string. - * @param {number} i Start index of quarter length substring within longtext. - * @return {Array.<string>} Five element Array, containing the prefix of - * longtext, the suffix of longtext, the prefix of shorttext, the suffix - * of shorttext and the common middle. Or null if there was no match. - * @private - */ - function diffHalfMatchI( longtext, shorttext, i ) { - var seed, j, bestCommon, prefixLength, suffixLength, - bestLongtextA, bestLongtextB, bestShorttextA, bestShorttextB; - - // Start with a 1/4 length substring at position i as a seed. - seed = longtext.substring( i, i + Math.floor( longtext.length / 4 ) ); - j = -1; - bestCommon = ""; - while ( ( j = shorttext.indexOf( seed, j + 1 ) ) !== -1 ) { - prefixLength = dmp.diffCommonPrefix( longtext.substring( i ), - shorttext.substring( j ) ); - suffixLength = dmp.diffCommonSuffix( longtext.substring( 0, i ), - shorttext.substring( 0, j ) ); - if ( bestCommon.length < suffixLength + prefixLength ) { - bestCommon = shorttext.substring( j - suffixLength, j ) + - shorttext.substring( j, j + prefixLength ); - bestLongtextA = longtext.substring( 0, i - suffixLength ); - bestLongtextB = longtext.substring( i + prefixLength ); - bestShorttextA = shorttext.substring( 0, j - suffixLength ); - bestShorttextB = shorttext.substring( j + prefixLength ); - } - } - if ( bestCommon.length * 2 >= longtext.length ) { - return [ bestLongtextA, bestLongtextB, - bestShorttextA, bestShorttextB, bestCommon - ]; - } else { - return null; - } - } - - // First check if the second quarter is the seed for a half-match. - hm1 = diffHalfMatchI( longtext, shorttext, - Math.ceil( longtext.length / 4 ) ); - - // Check again based on the third quarter. - hm2 = diffHalfMatchI( longtext, shorttext, - Math.ceil( longtext.length / 2 ) ); - if ( !hm1 && !hm2 ) { - return null; - } else if ( !hm2 ) { - hm = hm1; - } else if ( !hm1 ) { - hm = hm2; - } else { - - // Both matched. Select the longest. - hm = hm1[ 4 ].length > hm2[ 4 ].length ? hm1 : hm2; - } - - // A half-match was found, sort out the return data. - text1A, text1B, text2A, text2B; - if ( text1.length > text2.length ) { - text1A = hm[ 0 ]; - text1B = hm[ 1 ]; - text2A = hm[ 2 ]; - text2B = hm[ 3 ]; - } else { - text2A = hm[ 0 ]; - text2B = hm[ 1 ]; - text1A = hm[ 2 ]; - text1B = hm[ 3 ]; - } - midCommon = hm[ 4 ]; - return [ text1A, text1B, text2A, text2B, midCommon ]; - }; - - /** - * Do a quick line-level diff on both strings, then rediff the parts for - * greater accuracy. - * This speedup can produce non-minimal diffs. - * @param {string} text1 Old string to be diffed. - * @param {string} text2 New string to be diffed. - * @param {number} deadline Time when the diff should be complete by. - * @return {!Array.<!DiffMatchPatch.Diff>} Array of diff tuples. - * @private - */ - DiffMatchPatch.prototype.diffLineMode = function( text1, text2, deadline ) { - var a, diffs, linearray, pointer, countInsert, - countDelete, textInsert, textDelete, j; - - // Scan the text on a line-by-line basis first. - a = this.diffLinesToChars( text1, text2 ); - text1 = a.chars1; - text2 = a.chars2; - linearray = a.lineArray; - - diffs = this.DiffMain( text1, text2, false, deadline ); - - // Convert the diff back to original text. - this.diffCharsToLines( diffs, linearray ); - - // Eliminate freak matches (e.g. blank lines) - this.diffCleanupSemantic( diffs ); - - // Rediff any replacement blocks, this time character-by-character. - // Add a dummy entry at the end. - diffs.push( [ DIFF_EQUAL, "" ] ); - pointer = 0; - countDelete = 0; - countInsert = 0; - textDelete = ""; - textInsert = ""; - while ( pointer < diffs.length ) { - switch ( diffs[ pointer ][ 0 ] ) { - case DIFF_INSERT: - countInsert++; - textInsert += diffs[ pointer ][ 1 ]; - break; - case DIFF_DELETE: - countDelete++; - textDelete += diffs[ pointer ][ 1 ]; - break; - case DIFF_EQUAL: - - // Upon reaching an equality, check for prior redundancies. - if ( countDelete >= 1 && countInsert >= 1 ) { - - // Delete the offending records and add the merged ones. - diffs.splice( pointer - countDelete - countInsert, - countDelete + countInsert ); - pointer = pointer - countDelete - countInsert; - a = this.DiffMain( textDelete, textInsert, false, deadline ); - for ( j = a.length - 1; j >= 0; j-- ) { - diffs.splice( pointer, 0, a[ j ] ); - } - pointer = pointer + a.length; - } - countInsert = 0; - countDelete = 0; - textDelete = ""; - textInsert = ""; - break; - } - pointer++; - } - diffs.pop(); // Remove the dummy entry at the end. - - return diffs; - }; - - /** - * Find the 'middle snake' of a diff, split the problem in two - * and return the recursively constructed diff. - * See Myers 1986 paper: An O(ND) Difference Algorithm and Its Variations. - * @param {string} text1 Old string to be diffed. - * @param {string} text2 New string to be diffed. - * @param {number} deadline Time at which to bail if not yet complete. - * @return {!Array.<!DiffMatchPatch.Diff>} Array of diff tuples. - * @private - */ - DiffMatchPatch.prototype.diffBisect = function( text1, text2, deadline ) { - var text1Length, text2Length, maxD, vOffset, vLength, - v1, v2, x, delta, front, k1start, k1end, k2start, - k2end, k2Offset, k1Offset, x1, x2, y1, y2, d, k1, k2; - - // Cache the text lengths to prevent multiple calls. - text1Length = text1.length; - text2Length = text2.length; - maxD = Math.ceil( ( text1Length + text2Length ) / 2 ); - vOffset = maxD; - vLength = 2 * maxD; - v1 = new Array( vLength ); - v2 = new Array( vLength ); - - // Setting all elements to -1 is faster in Chrome & Firefox than mixing - // integers and undefined. - for ( x = 0; x < vLength; x++ ) { - v1[ x ] = -1; - v2[ x ] = -1; - } - v1[ vOffset + 1 ] = 0; - v2[ vOffset + 1 ] = 0; - delta = text1Length - text2Length; - - // If the total number of characters is odd, then the front path will collide - // with the reverse path. - front = ( delta % 2 !== 0 ); - - // Offsets for start and end of k loop. - // Prevents mapping of space beyond the grid. - k1start = 0; - k1end = 0; - k2start = 0; - k2end = 0; - for ( d = 0; d < maxD; d++ ) { - - // Bail out if deadline is reached. - if ( ( new Date() ).getTime() > deadline ) { - break; - } - - // Walk the front path one step. - for ( k1 = -d + k1start; k1 <= d - k1end; k1 += 2 ) { - k1Offset = vOffset + k1; - if ( k1 === -d || ( k1 !== d && v1[ k1Offset - 1 ] < v1[ k1Offset + 1 ] ) ) { - x1 = v1[ k1Offset + 1 ]; - } else { - x1 = v1[ k1Offset - 1 ] + 1; - } - y1 = x1 - k1; - while ( x1 < text1Length && y1 < text2Length && - text1.charAt( x1 ) === text2.charAt( y1 ) ) { - x1++; - y1++; - } - v1[ k1Offset ] = x1; - if ( x1 > text1Length ) { - - // Ran off the right of the graph. - k1end += 2; - } else if ( y1 > text2Length ) { - - // Ran off the bottom of the graph. - k1start += 2; - } else if ( front ) { - k2Offset = vOffset + delta - k1; - if ( k2Offset >= 0 && k2Offset < vLength && v2[ k2Offset ] !== -1 ) { - - // Mirror x2 onto top-left coordinate system. - x2 = text1Length - v2[ k2Offset ]; - if ( x1 >= x2 ) { - - // Overlap detected. - return this.diffBisectSplit( text1, text2, x1, y1, deadline ); - } - } - } - } - - // Walk the reverse path one step. - for ( k2 = -d + k2start; k2 <= d - k2end; k2 += 2 ) { - k2Offset = vOffset + k2; - if ( k2 === -d || ( k2 !== d && v2[ k2Offset - 1 ] < v2[ k2Offset + 1 ] ) ) { - x2 = v2[ k2Offset + 1 ]; - } else { - x2 = v2[ k2Offset - 1 ] + 1; - } - y2 = x2 - k2; - while ( x2 < text1Length && y2 < text2Length && - text1.charAt( text1Length - x2 - 1 ) === - text2.charAt( text2Length - y2 - 1 ) ) { - x2++; - y2++; - } - v2[ k2Offset ] = x2; - if ( x2 > text1Length ) { - - // Ran off the left of the graph. - k2end += 2; - } else if ( y2 > text2Length ) { - - // Ran off the top of the graph. - k2start += 2; - } else if ( !front ) { - k1Offset = vOffset + delta - k2; - if ( k1Offset >= 0 && k1Offset < vLength && v1[ k1Offset ] !== -1 ) { - x1 = v1[ k1Offset ]; - y1 = vOffset + x1 - k1Offset; - - // Mirror x2 onto top-left coordinate system. - x2 = text1Length - x2; - if ( x1 >= x2 ) { - - // Overlap detected. - return this.diffBisectSplit( text1, text2, x1, y1, deadline ); - } - } - } - } - } - - // Diff took too long and hit the deadline or - // number of diffs equals number of characters, no commonality at all. - return [ - [ DIFF_DELETE, text1 ], - [ DIFF_INSERT, text2 ] - ]; - }; - - /** - * Given the location of the 'middle snake', split the diff in two parts - * and recurse. - * @param {string} text1 Old string to be diffed. - * @param {string} text2 New string to be diffed. - * @param {number} x Index of split point in text1. - * @param {number} y Index of split point in text2. - * @param {number} deadline Time at which to bail if not yet complete. - * @return {!Array.<!DiffMatchPatch.Diff>} Array of diff tuples. - * @private - */ - DiffMatchPatch.prototype.diffBisectSplit = function( text1, text2, x, y, deadline ) { - var text1a, text1b, text2a, text2b, diffs, diffsb; - text1a = text1.substring( 0, x ); - text2a = text2.substring( 0, y ); - text1b = text1.substring( x ); - text2b = text2.substring( y ); - - // Compute both diffs serially. - diffs = this.DiffMain( text1a, text2a, false, deadline ); - diffsb = this.DiffMain( text1b, text2b, false, deadline ); - - return diffs.concat( diffsb ); - }; - - /** - * Reduce the number of edits by eliminating semantically trivial equalities. - * @param {!Array.<!DiffMatchPatch.Diff>} diffs Array of diff tuples. - */ - DiffMatchPatch.prototype.diffCleanupSemantic = function( diffs ) { - var changes, equalities, equalitiesLength, lastequality, - pointer, lengthInsertions2, lengthDeletions2, lengthInsertions1, - lengthDeletions1, deletion, insertion, overlapLength1, overlapLength2; - changes = false; - equalities = []; // Stack of indices where equalities are found. - equalitiesLength = 0; // Keeping our own length var is faster in JS. - /** @type {?string} */ - lastequality = null; - - // Always equal to diffs[equalities[equalitiesLength - 1]][1] - pointer = 0; // Index of current position. - - // Number of characters that changed prior to the equality. - lengthInsertions1 = 0; - lengthDeletions1 = 0; - - // Number of characters that changed after the equality. - lengthInsertions2 = 0; - lengthDeletions2 = 0; - while ( pointer < diffs.length ) { - if ( diffs[ pointer ][ 0 ] === DIFF_EQUAL ) { // Equality found. - equalities[ equalitiesLength++ ] = pointer; - lengthInsertions1 = lengthInsertions2; - lengthDeletions1 = lengthDeletions2; - lengthInsertions2 = 0; - lengthDeletions2 = 0; - lastequality = diffs[ pointer ][ 1 ]; - } else { // An insertion or deletion. - if ( diffs[ pointer ][ 0 ] === DIFF_INSERT ) { - lengthInsertions2 += diffs[ pointer ][ 1 ].length; - } else { - lengthDeletions2 += diffs[ pointer ][ 1 ].length; - } - - // Eliminate an equality that is smaller or equal to the edits on both - // sides of it. - if ( lastequality && ( lastequality.length <= - Math.max( lengthInsertions1, lengthDeletions1 ) ) && - ( lastequality.length <= Math.max( lengthInsertions2, - lengthDeletions2 ) ) ) { - - // Duplicate record. - diffs.splice( - equalities[ equalitiesLength - 1 ], - 0, - [ DIFF_DELETE, lastequality ] - ); - - // Change second copy to insert. - diffs[ equalities[ equalitiesLength - 1 ] + 1 ][ 0 ] = DIFF_INSERT; - - // Throw away the equality we just deleted. - equalitiesLength--; - - // Throw away the previous equality (it needs to be reevaluated). - equalitiesLength--; - pointer = equalitiesLength > 0 ? equalities[ equalitiesLength - 1 ] : -1; - - // Reset the counters. - lengthInsertions1 = 0; - lengthDeletions1 = 0; - lengthInsertions2 = 0; - lengthDeletions2 = 0; - lastequality = null; - changes = true; - } - } - pointer++; - } - - // Normalize the diff. - if ( changes ) { - this.diffCleanupMerge( diffs ); - } - - // Find any overlaps between deletions and insertions. - // e.g: <del>abcxxx</del><ins>xxxdef</ins> - // -> <del>abc</del>xxx<ins>def</ins> - // e.g: <del>xxxabc</del><ins>defxxx</ins> - // -> <ins>def</ins>xxx<del>abc</del> - // Only extract an overlap if it is as big as the edit ahead or behind it. - pointer = 1; - while ( pointer < diffs.length ) { - if ( diffs[ pointer - 1 ][ 0 ] === DIFF_DELETE && - diffs[ pointer ][ 0 ] === DIFF_INSERT ) { - deletion = diffs[ pointer - 1 ][ 1 ]; - insertion = diffs[ pointer ][ 1 ]; - overlapLength1 = this.diffCommonOverlap( deletion, insertion ); - overlapLength2 = this.diffCommonOverlap( insertion, deletion ); - if ( overlapLength1 >= overlapLength2 ) { - if ( overlapLength1 >= deletion.length / 2 || - overlapLength1 >= insertion.length / 2 ) { - - // Overlap found. Insert an equality and trim the surrounding edits. - diffs.splice( - pointer, - 0, - [ DIFF_EQUAL, insertion.substring( 0, overlapLength1 ) ] - ); - diffs[ pointer - 1 ][ 1 ] = - deletion.substring( 0, deletion.length - overlapLength1 ); - diffs[ pointer + 1 ][ 1 ] = insertion.substring( overlapLength1 ); - pointer++; - } - } else { - if ( overlapLength2 >= deletion.length / 2 || - overlapLength2 >= insertion.length / 2 ) { - - // Reverse overlap found. - // Insert an equality and swap and trim the surrounding edits. - diffs.splice( - pointer, - 0, - [ DIFF_EQUAL, deletion.substring( 0, overlapLength2 ) ] - ); - - diffs[ pointer - 1 ][ 0 ] = DIFF_INSERT; - diffs[ pointer - 1 ][ 1 ] = - insertion.substring( 0, insertion.length - overlapLength2 ); - diffs[ pointer + 1 ][ 0 ] = DIFF_DELETE; - diffs[ pointer + 1 ][ 1 ] = - deletion.substring( overlapLength2 ); - pointer++; - } - } - pointer++; - } - pointer++; - } - }; - - /** - * Determine if the suffix of one string is the prefix of another. - * @param {string} text1 First string. - * @param {string} text2 Second string. - * @return {number} The number of characters common to the end of the first - * string and the start of the second string. - * @private - */ - DiffMatchPatch.prototype.diffCommonOverlap = function( text1, text2 ) { - var text1Length, text2Length, textLength, - best, length, pattern, found; - - // Cache the text lengths to prevent multiple calls. - text1Length = text1.length; - text2Length = text2.length; - - // Eliminate the null case. - if ( text1Length === 0 || text2Length === 0 ) { - return 0; - } - - // Truncate the longer string. - if ( text1Length > text2Length ) { - text1 = text1.substring( text1Length - text2Length ); - } else if ( text1Length < text2Length ) { - text2 = text2.substring( 0, text1Length ); - } - textLength = Math.min( text1Length, text2Length ); - - // Quick check for the worst case. - if ( text1 === text2 ) { - return textLength; - } - - // Start by looking for a single character match - // and increase length until no match is found. - // Performance analysis: https://neil.fraser.name/news/2010/11/04/ - best = 0; - length = 1; - while ( true ) { - pattern = text1.substring( textLength - length ); - found = text2.indexOf( pattern ); - if ( found === -1 ) { - return best; - } - length += found; - if ( found === 0 || text1.substring( textLength - length ) === - text2.substring( 0, length ) ) { - best = length; - length++; - } - } - }; - - /** - * Split two texts into an array of strings. Reduce the texts to a string of - * hashes where each Unicode character represents one line. - * @param {string} text1 First string. - * @param {string} text2 Second string. - * @return {{chars1: string, chars2: string, lineArray: !Array.<string>}} - * An object containing the encoded text1, the encoded text2 and - * the array of unique strings. - * The zeroth element of the array of unique strings is intentionally blank. - * @private - */ - DiffMatchPatch.prototype.diffLinesToChars = function( text1, text2 ) { - var lineArray, lineHash, chars1, chars2; - lineArray = []; // E.g. lineArray[4] === 'Hello\n' - lineHash = {}; // E.g. lineHash['Hello\n'] === 4 - - // '\x00' is a valid character, but various debuggers don't like it. - // So we'll insert a junk entry to avoid generating a null character. - lineArray[ 0 ] = ""; - - /** - * Split a text into an array of strings. Reduce the texts to a string of - * hashes where each Unicode character represents one line. - * Modifies linearray and linehash through being a closure. - * @param {string} text String to encode. - * @return {string} Encoded string. - * @private - */ - function diffLinesToCharsMunge( text ) { - var chars, lineStart, lineEnd, lineArrayLength, line; - chars = ""; - - // Walk the text, pulling out a substring for each line. - // text.split('\n') would would temporarily double our memory footprint. - // Modifying text would create many large strings to garbage collect. - lineStart = 0; - lineEnd = -1; - - // Keeping our own length variable is faster than looking it up. - lineArrayLength = lineArray.length; - while ( lineEnd < text.length - 1 ) { - lineEnd = text.indexOf( "\n", lineStart ); - if ( lineEnd === -1 ) { - lineEnd = text.length - 1; - } - line = text.substring( lineStart, lineEnd + 1 ); - lineStart = lineEnd + 1; - - if ( lineHash.hasOwnProperty ? lineHash.hasOwnProperty( line ) : - ( lineHash[ line ] !== undefined ) ) { - chars += String.fromCharCode( lineHash[ line ] ); - } else { - chars += String.fromCharCode( lineArrayLength ); - lineHash[ line ] = lineArrayLength; - lineArray[ lineArrayLength++ ] = line; - } - } - return chars; - } - - chars1 = diffLinesToCharsMunge( text1 ); - chars2 = diffLinesToCharsMunge( text2 ); - return { - chars1: chars1, - chars2: chars2, - lineArray: lineArray - }; - }; - - /** - * Rehydrate the text in a diff from a string of line hashes to real lines of - * text. - * @param {!Array.<!DiffMatchPatch.Diff>} diffs Array of diff tuples. - * @param {!Array.<string>} lineArray Array of unique strings. - * @private - */ - DiffMatchPatch.prototype.diffCharsToLines = function( diffs, lineArray ) { - var x, chars, text, y; - for ( x = 0; x < diffs.length; x++ ) { - chars = diffs[ x ][ 1 ]; - text = []; - for ( y = 0; y < chars.length; y++ ) { - text[ y ] = lineArray[ chars.charCodeAt( y ) ]; - } - diffs[ x ][ 1 ] = text.join( "" ); - } - }; - - /** - * Reorder and merge like edit sections. Merge equalities. - * Any edit section can move as long as it doesn't cross an equality. - * @param {!Array.<!DiffMatchPatch.Diff>} diffs Array of diff tuples. - */ - DiffMatchPatch.prototype.diffCleanupMerge = function( diffs ) { - var pointer, countDelete, countInsert, textInsert, textDelete, - commonlength, changes, diffPointer, position; - diffs.push( [ DIFF_EQUAL, "" ] ); // Add a dummy entry at the end. - pointer = 0; - countDelete = 0; - countInsert = 0; - textDelete = ""; - textInsert = ""; - commonlength; - while ( pointer < diffs.length ) { - switch ( diffs[ pointer ][ 0 ] ) { - case DIFF_INSERT: - countInsert++; - textInsert += diffs[ pointer ][ 1 ]; - pointer++; - break; - case DIFF_DELETE: - countDelete++; - textDelete += diffs[ pointer ][ 1 ]; - pointer++; - break; - case DIFF_EQUAL: - - // Upon reaching an equality, check for prior redundancies. - if ( countDelete + countInsert > 1 ) { - if ( countDelete !== 0 && countInsert !== 0 ) { - - // Factor out any common prefixes. - commonlength = this.diffCommonPrefix( textInsert, textDelete ); - if ( commonlength !== 0 ) { - if ( ( pointer - countDelete - countInsert ) > 0 && - diffs[ pointer - countDelete - countInsert - 1 ][ 0 ] === - DIFF_EQUAL ) { - diffs[ pointer - countDelete - countInsert - 1 ][ 1 ] += - textInsert.substring( 0, commonlength ); - } else { - diffs.splice( 0, 0, [ DIFF_EQUAL, - textInsert.substring( 0, commonlength ) - ] ); - pointer++; - } - textInsert = textInsert.substring( commonlength ); - textDelete = textDelete.substring( commonlength ); - } - - // Factor out any common suffixies. - commonlength = this.diffCommonSuffix( textInsert, textDelete ); - if ( commonlength !== 0 ) { - diffs[ pointer ][ 1 ] = textInsert.substring( textInsert.length - - commonlength ) + diffs[ pointer ][ 1 ]; - textInsert = textInsert.substring( 0, textInsert.length - - commonlength ); - textDelete = textDelete.substring( 0, textDelete.length - - commonlength ); - } - } - - // Delete the offending records and add the merged ones. - if ( countDelete === 0 ) { - diffs.splice( pointer - countInsert, - countDelete + countInsert, [ DIFF_INSERT, textInsert ] ); - } else if ( countInsert === 0 ) { - diffs.splice( pointer - countDelete, - countDelete + countInsert, [ DIFF_DELETE, textDelete ] ); - } else { - diffs.splice( - pointer - countDelete - countInsert, - countDelete + countInsert, - [ DIFF_DELETE, textDelete ], [ DIFF_INSERT, textInsert ] - ); - } - pointer = pointer - countDelete - countInsert + - ( countDelete ? 1 : 0 ) + ( countInsert ? 1 : 0 ) + 1; - } else if ( pointer !== 0 && diffs[ pointer - 1 ][ 0 ] === DIFF_EQUAL ) { - - // Merge this equality with the previous one. - diffs[ pointer - 1 ][ 1 ] += diffs[ pointer ][ 1 ]; - diffs.splice( pointer, 1 ); - } else { - pointer++; - } - countInsert = 0; - countDelete = 0; - textDelete = ""; - textInsert = ""; - break; - } - } - if ( diffs[ diffs.length - 1 ][ 1 ] === "" ) { - diffs.pop(); // Remove the dummy entry at the end. - } - - // Second pass: look for single edits surrounded on both sides by equalities - // which can be shifted sideways to eliminate an equality. - // e.g: A<ins>BA</ins>C -> <ins>AB</ins>AC - changes = false; - pointer = 1; - - // Intentionally ignore the first and last element (don't need checking). - while ( pointer < diffs.length - 1 ) { - if ( diffs[ pointer - 1 ][ 0 ] === DIFF_EQUAL && - diffs[ pointer + 1 ][ 0 ] === DIFF_EQUAL ) { - - diffPointer = diffs[ pointer ][ 1 ]; - position = diffPointer.substring( - diffPointer.length - diffs[ pointer - 1 ][ 1 ].length - ); - - // This is a single edit surrounded by equalities. - if ( position === diffs[ pointer - 1 ][ 1 ] ) { - - // Shift the edit over the previous equality. - diffs[ pointer ][ 1 ] = diffs[ pointer - 1 ][ 1 ] + - diffs[ pointer ][ 1 ].substring( 0, diffs[ pointer ][ 1 ].length - - diffs[ pointer - 1 ][ 1 ].length ); - diffs[ pointer + 1 ][ 1 ] = - diffs[ pointer - 1 ][ 1 ] + diffs[ pointer + 1 ][ 1 ]; - diffs.splice( pointer - 1, 1 ); - changes = true; - } else if ( diffPointer.substring( 0, diffs[ pointer + 1 ][ 1 ].length ) === - diffs[ pointer + 1 ][ 1 ] ) { - - // Shift the edit over the next equality. - diffs[ pointer - 1 ][ 1 ] += diffs[ pointer + 1 ][ 1 ]; - diffs[ pointer ][ 1 ] = - diffs[ pointer ][ 1 ].substring( diffs[ pointer + 1 ][ 1 ].length ) + - diffs[ pointer + 1 ][ 1 ]; - diffs.splice( pointer + 1, 1 ); - changes = true; - } - } - pointer++; - } - - // If shifts were made, the diff needs reordering and another shift sweep. - if ( changes ) { - this.diffCleanupMerge( diffs ); - } - }; - - return function( o, n ) { - var diff, output, text; - diff = new DiffMatchPatch(); - output = diff.DiffMain( o, n ); - diff.diffCleanupEfficiency( output ); - text = diff.diffPrettyHtml( output ); - - return text; - }; -}() ); - -}() ); diff --git a/admin/bower_components/select2/vendor/jquery-2.1.0.js b/admin/bower_components/select2/vendor/jquery-2.1.0.js deleted file mode 100644 index d405ae7..0000000 --- a/admin/bower_components/select2/vendor/jquery-2.1.0.js +++ /dev/null @@ -1,9111 +0,0 @@ -/*! - * jQuery JavaScript Library v2.1.0 - * http://jquery.com/ - * - * Includes Sizzle.js - * http://sizzlejs.com/ - * - * Copyright 2005, 2014 jQuery Foundation, Inc. and other contributors - * Released under the MIT license - * http://jquery.org/license - * - * Date: 2014-01-23T21:10Z - */ - -(function( global, factory ) { - - if ( typeof module === "object" && typeof module.exports === "object" ) { - // For CommonJS and CommonJS-like environments where a proper window is present, - // execute the factory and get jQuery - // For environments that do not inherently posses a window with a document - // (such as Node.js), expose a jQuery-making factory as module.exports - // This accentuates the need for the creation of a real window - // e.g. var jQuery = require("jquery")(window); - // See ticket #14549 for more info - module.exports = global.document ? - factory( global, true ) : - function( w ) { - if ( !w.document ) { - throw new Error( "jQuery requires a window with a document" ); - } - return factory( w ); - }; - } else { - factory( global ); - } - -// Pass this if window is not defined yet -}(typeof window !== "undefined" ? window : this, function( window, noGlobal ) { - -// Can't do this because several apps including ASP.NET trace -// the stack via arguments.caller.callee and Firefox dies if -// you try to trace through "use strict" call chains. (#13335) -// Support: Firefox 18+ -// - - var arr = []; - - var slice = arr.slice; - - var concat = arr.concat; - - var push = arr.push; - - var indexOf = arr.indexOf; - - var class2type = {}; - - var toString = class2type.toString; - - var hasOwn = class2type.hasOwnProperty; - - var trim = "".trim; - - var support = {}; - - - - var - // Use the correct document accordingly with window argument (sandbox) - document = window.document, - - version = "2.1.0", - - // Define a local copy of jQuery - jQuery = function( selector, context ) { - // The jQuery object is actually just the init constructor 'enhanced' - // Need init if jQuery is called (just allow error to be thrown if not included) - return new jQuery.fn.init( selector, context ); - }, - - // Matches dashed string for camelizing - rmsPrefix = /^-ms-/, - rdashAlpha = /-([\da-z])/gi, - - // Used by jQuery.camelCase as callback to replace() - fcamelCase = function( all, letter ) { - return letter.toUpperCase(); - }; - - jQuery.fn = jQuery.prototype = { - // The current version of jQuery being used - jquery: version, - - constructor: jQuery, - - // Start with an empty selector - selector: "", - - // The default length of a jQuery object is 0 - length: 0, - - toArray: function() { - return slice.call( this ); - }, - - // Get the Nth element in the matched element set OR - // Get the whole matched element set as a clean array - get: function( num ) { - return num != null ? - - // Return a 'clean' array - ( num < 0 ? this[ num + this.length ] : this[ num ] ) : - - // Return just the object - slice.call( this ); - }, - - // Take an array of elements and push it onto the stack - // (returning the new matched element set) - pushStack: function( elems ) { - - // Build a new jQuery matched element set - var ret = jQuery.merge( this.constructor(), elems ); - - // Add the old object onto the stack (as a reference) - ret.prevObject = this; - ret.context = this.context; - - // Return the newly-formed element set - return ret; - }, - - // Execute a callback for every element in the matched set. - // (You can seed the arguments with an array of args, but this is - // only used internally.) - each: function( callback, args ) { - return jQuery.each( this, callback, args ); - }, - - map: function( callback ) { - return this.pushStack( jQuery.map(this, function( elem, i ) { - return callback.call( elem, i, elem ); - })); - }, - - slice: function() { - return this.pushStack( slice.apply( this, arguments ) ); - }, - - first: function() { - return this.eq( 0 ); - }, - - last: function() { - return this.eq( -1 ); - }, - - eq: function( i ) { - var len = this.length, - j = +i + ( i < 0 ? len : 0 ); - return this.pushStack( j >= 0 && j < len ? [ this[j] ] : [] ); - }, - - end: function() { - return this.prevObject || this.constructor(null); - }, - - // For internal use only. - // Behaves like an Array's method, not like a jQuery method. - push: push, - sort: arr.sort, - splice: arr.splice - }; - - jQuery.extend = jQuery.fn.extend = function() { - var options, name, src, copy, copyIsArray, clone, - target = arguments[0] || {}, - i = 1, - length = arguments.length, - deep = false; - - // Handle a deep copy situation - if ( typeof target === "boolean" ) { - deep = target; - - // skip the boolean and the target - target = arguments[ i ] || {}; - i++; - } - - // Handle case when target is a string or something (possible in deep copy) - if ( typeof target !== "object" && !jQuery.isFunction(target) ) { - target = {}; - } - - // extend jQuery itself if only one argument is passed - if ( i === length ) { - target = this; - i--; - } - - for ( ; i < length; i++ ) { - // Only deal with non-null/undefined values - if ( (options = arguments[ i ]) != null ) { - // Extend the base object - for ( name in options ) { - src = target[ name ]; - copy = options[ name ]; - - // Prevent never-ending loop - if ( target === copy ) { - continue; - } - - // Recurse if we're merging plain objects or arrays - if ( deep && copy && ( jQuery.isPlainObject(copy) || (copyIsArray = jQuery.isArray(copy)) ) ) { - if ( copyIsArray ) { - copyIsArray = false; - clone = src && jQuery.isArray(src) ? src : []; - - } else { - clone = src && jQuery.isPlainObject(src) ? src : {}; - } - - // Never move original objects, clone them - target[ name ] = jQuery.extend( deep, clone, copy ); - - // Don't bring in undefined values - } else if ( copy !== undefined ) { - target[ name ] = copy; - } - } - } - } - - // Return the modified object - return target; - }; - - jQuery.extend({ - // Unique for each copy of jQuery on the page - expando: "jQuery" + ( version + Math.random() ).replace( /\D/g, "" ), - - // Assume jQuery is ready without the ready module - isReady: true, - - error: function( msg ) { - throw new Error( msg ); - }, - - noop: function() {}, - - // See test/unit/core.js for details concerning isFunction. - // Since version 1.3, DOM methods and functions like alert - // aren't supported. They return false on IE (#2968). - isFunction: function( obj ) { - return jQuery.type(obj) === "function"; - }, - - isArray: Array.isArray, - - isWindow: function( obj ) { - return obj != null && obj === obj.window; - }, - - isNumeric: function( obj ) { - // parseFloat NaNs numeric-cast false positives (null|true|false|"") - // ...but misinterprets leading-number strings, particularly hex literals ("0x...") - // subtraction forces infinities to NaN - return obj - parseFloat( obj ) >= 0; - }, - - isPlainObject: function( obj ) { - // Not plain objects: - // - Any object or value whose internal [[Class]] property is not "[object Object]" - // - DOM nodes - // - window - if ( jQuery.type( obj ) !== "object" || obj.nodeType || jQuery.isWindow( obj ) ) { - return false; - } - - // Support: Firefox <20 - // The try/catch suppresses exceptions thrown when attempting to access - // the "constructor" property of certain host objects, ie. |window.location| - // https://bugzilla.mozilla.org/show_bug.cgi?id=814622 - try { - if ( obj.constructor && - !hasOwn.call( obj.constructor.prototype, "isPrototypeOf" ) ) { - return false; - } - } catch ( e ) { - return false; - } - - // If the function hasn't returned already, we're confident that - // |obj| is a plain object, created by {} or constructed with new Object - return true; - }, - - isEmptyObject: function( obj ) { - var name; - for ( name in obj ) { - return false; - } - return true; - }, - - type: function( obj ) { - if ( obj == null ) { - return obj + ""; - } - // Support: Android < 4.0, iOS < 6 (functionish RegExp) - return typeof obj === "object" || typeof obj === "function" ? - class2type[ toString.call(obj) ] || "object" : - typeof obj; - }, - - // Evaluates a script in a global context - globalEval: function( code ) { - var script, - indirect = eval; - - code = jQuery.trim( code ); - - if ( code ) { - // If the code includes a valid, prologue position - // strict mode pragma, execute code by injecting a - // script tag into the document. - if ( code.indexOf("use strict") === 1 ) { - script = document.createElement("script"); - script.text = code; - document.head.appendChild( script ).parentNode.removeChild( script ); - } else { - // Otherwise, avoid the DOM node creation, insertion - // and removal by using an indirect global eval - indirect( code ); - } - } - }, - - // Convert dashed to camelCase; used by the css and data modules - // Microsoft forgot to hump their vendor prefix (#9572) - camelCase: function( string ) { - return string.replace( rmsPrefix, "ms-" ).replace( rdashAlpha, fcamelCase ); - }, - - nodeName: function( elem, name ) { - return elem.nodeName && elem.nodeName.toLowerCase() === name.toLowerCase(); - }, - - // args is for internal usage only - each: function( obj, callback, args ) { - var value, - i = 0, - length = obj.length, - isArray = isArraylike( obj ); - - if ( args ) { - if ( isArray ) { - for ( ; i < length; i++ ) { - value = callback.apply( obj[ i ], args ); - - if ( value === false ) { - break; - } - } - } else { - for ( i in obj ) { - value = callback.apply( obj[ i ], args ); - - if ( value === false ) { - break; - } - } - } - - // A special, fast, case for the most common use of each - } else { - if ( isArray ) { - for ( ; i < length; i++ ) { - value = callback.call( obj[ i ], i, obj[ i ] ); - - if ( value === false ) { - break; - } - } - } else { - for ( i in obj ) { - value = callback.call( obj[ i ], i, obj[ i ] ); - - if ( value === false ) { - break; - } - } - } - } - - return obj; - }, - - trim: function( text ) { - return text == null ? "" : trim.call( text ); - }, - - // results is for internal usage only - makeArray: function( arr, results ) { - var ret = results || []; - - if ( arr != null ) { - if ( isArraylike( Object(arr) ) ) { - jQuery.merge( ret, - typeof arr === "string" ? - [ arr ] : arr - ); - } else { - push.call( ret, arr ); - } - } - - return ret; - }, - - inArray: function( elem, arr, i ) { - return arr == null ? -1 : indexOf.call( arr, elem, i ); - }, - - merge: function( first, second ) { - var len = +second.length, - j = 0, - i = first.length; - - for ( ; j < len; j++ ) { - first[ i++ ] = second[ j ]; - } - - first.length = i; - - return first; - }, - - grep: function( elems, callback, invert ) { - var callbackInverse, - matches = [], - i = 0, - length = elems.length, - callbackExpect = !invert; - - // Go through the array, only saving the items - // that pass the validator function - for ( ; i < length; i++ ) { - callbackInverse = !callback( elems[ i ], i ); - if ( callbackInverse !== callbackExpect ) { - matches.push( elems[ i ] ); - } - } - - return matches; - }, - - // arg is for internal usage only - map: function( elems, callback, arg ) { - var value, - i = 0, - length = elems.length, - isArray = isArraylike( elems ), - ret = []; - - // Go through the array, translating each of the items to their new values - if ( isArray ) { - for ( ; i < length; i++ ) { - value = callback( elems[ i ], i, arg ); - - if ( value != null ) { - ret.push( value ); - } - } - - // Go through every key on the object, - } else { - for ( i in elems ) { - value = callback( elems[ i ], i, arg ); - - if ( value != null ) { - ret.push( value ); - } - } - } - - // Flatten any nested arrays - return concat.apply( [], ret ); - }, - - // A global GUID counter for objects - guid: 1, - - // Bind a function to a context, optionally partially applying any - // arguments. - proxy: function( fn, context ) { - var tmp, args, proxy; - - if ( typeof context === "string" ) { - tmp = fn[ context ]; - context = fn; - fn = tmp; - } - - // Quick check to determine if target is callable, in the spec - // this throws a TypeError, but we will just return undefined. - if ( !jQuery.isFunction( fn ) ) { - return undefined; - } - - // Simulated bind - args = slice.call( arguments, 2 ); - proxy = function() { - return fn.apply( context || this, args.concat( slice.call( arguments ) ) ); - }; - - // Set the guid of unique handler to the same of original handler, so it can be removed - proxy.guid = fn.guid = fn.guid || jQuery.guid++; - - return proxy; - }, - - now: Date.now, - - // jQuery.support is not used in Core but other projects attach their - // properties to it so it needs to exist. - support: support - }); - -// Populate the class2type map - jQuery.each("Boolean Number String Function Array Date RegExp Object Error".split(" "), function(i, name) { - class2type[ "[object " + name + "]" ] = name.toLowerCase(); - }); - - function isArraylike( obj ) { - var length = obj.length, - type = jQuery.type( obj ); - - if ( type === "function" || jQuery.isWindow( obj ) ) { - return false; - } - - if ( obj.nodeType === 1 && length ) { - return true; - } - - return type === "array" || length === 0 || - typeof length === "number" && length > 0 && ( length - 1 ) in obj; - } - var Sizzle = - /*! - * Sizzle CSS Selector Engine v1.10.16 - * http://sizzlejs.com/ - * - * Copyright 2013 jQuery Foundation, Inc. and other contributors - * Released under the MIT license - * http://jquery.org/license - * - * Date: 2014-01-13 - */ - (function( window ) { - - var i, - support, - Expr, - getText, - isXML, - compile, - outermostContext, - sortInput, - hasDuplicate, - - // Local document vars - setDocument, - document, - docElem, - documentIsHTML, - rbuggyQSA, - rbuggyMatches, - matches, - contains, - - // Instance-specific data - expando = "sizzle" + -(new Date()), - preferredDoc = window.document, - dirruns = 0, - done = 0, - classCache = createCache(), - tokenCache = createCache(), - compilerCache = createCache(), - sortOrder = function( a, b ) { - if ( a === b ) { - hasDuplicate = true; - } - return 0; - }, - - // General-purpose constants - strundefined = typeof undefined, - MAX_NEGATIVE = 1 << 31, - - // Instance methods - hasOwn = ({}).hasOwnProperty, - arr = [], - pop = arr.pop, - push_native = arr.push, - push = arr.push, - slice = arr.slice, - // Use a stripped-down indexOf if we can't use a native one - indexOf = arr.indexOf || function( elem ) { - var i = 0, - len = this.length; - for ( ; i < len; i++ ) { - if ( this[i] === elem ) { - return i; - } - } - return -1; - }, - - booleans = "checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped", - - // Regular expressions - - // Whitespace characters http://www.w3.org/TR/css3-selectors/#whitespace - whitespace = "[\\x20\\t\\r\\n\\f]", - // http://www.w3.org/TR/css3-syntax/#characters - characterEncoding = "(?:\\\\.|[\\w-]|[^\\x00-\\xa0])+", - - // Loosely modeled on CSS identifier characters - // An unquoted value should be a CSS identifier http://www.w3.org/TR/css3-selectors/#attribute-selectors - // Proper syntax: http://www.w3.org/TR/CSS21/syndata.html#value-def-identifier - identifier = characterEncoding.replace( "w", "w#" ), - - // Acceptable operators http://www.w3.org/TR/selectors/#attribute-selectors - attributes = "\\[" + whitespace + "*(" + characterEncoding + ")" + whitespace + - "*(?:([*^$|!~]?=)" + whitespace + "*(?:(['\"])((?:\\\\.|[^\\\\])*?)\\3|(" + identifier + ")|)|)" + whitespace + "*\\]", - - // Prefer arguments quoted, - // then not containing pseudos/brackets, - // then attribute selectors/non-parenthetical expressions, - // then anything else - // These preferences are here to reduce the number of selectors - // needing tokenize in the PSEUDO preFilter - pseudos = ":(" + characterEncoding + ")(?:\\(((['\"])((?:\\\\.|[^\\\\])*?)\\3|((?:\\\\.|[^\\\\()[\\]]|" + attributes.replace( 3, 8 ) + ")*)|.*)\\)|)", - - // Leading and non-escaped trailing whitespace, capturing some non-whitespace characters preceding the latter - rtrim = new RegExp( "^" + whitespace + "+|((?:^|[^\\\\])(?:\\\\.)*)" + whitespace + "+$", "g" ), - - rcomma = new RegExp( "^" + whitespace + "*," + whitespace + "*" ), - rcombinators = new RegExp( "^" + whitespace + "*([>+~]|" + whitespace + ")" + whitespace + "*" ), - - rattributeQuotes = new RegExp( "=" + whitespace + "*([^\\]'\"]*?)" + whitespace + "*\\]", "g" ), - - rpseudo = new RegExp( pseudos ), - ridentifier = new RegExp( "^" + identifier + "$" ), - - matchExpr = { - "ID": new RegExp( "^#(" + characterEncoding + ")" ), - "CLASS": new RegExp( "^\\.(" + characterEncoding + ")" ), - "TAG": new RegExp( "^(" + characterEncoding.replace( "w", "w*" ) + ")" ), - "ATTR": new RegExp( "^" + attributes ), - "PSEUDO": new RegExp( "^" + pseudos ), - "CHILD": new RegExp( "^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\(" + whitespace + - "*(even|odd|(([+-]|)(\\d*)n|)" + whitespace + "*(?:([+-]|)" + whitespace + - "*(\\d+)|))" + whitespace + "*\\)|)", "i" ), - "bool": new RegExp( "^(?:" + booleans + ")$", "i" ), - // For use in libraries implementing .is() - // We use this for POS matching in `select` - "needsContext": new RegExp( "^" + whitespace + "*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\(" + - whitespace + "*((?:-\\d)?\\d*)" + whitespace + "*\\)|)(?=[^-]|$)", "i" ) - }, - - rinputs = /^(?:input|select|textarea|button)$/i, - rheader = /^h\d$/i, - - rnative = /^[^{]+\{\s*\[native \w/, - - // Easily-parseable/retrievable ID or TAG or CLASS selectors - rquickExpr = /^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/, - - rsibling = /[+~]/, - rescape = /'|\\/g, - - // CSS escapes http://www.w3.org/TR/CSS21/syndata.html#escaped-characters - runescape = new RegExp( "\\\\([\\da-f]{1,6}" + whitespace + "?|(" + whitespace + ")|.)", "ig" ), - funescape = function( _, escaped, escapedWhitespace ) { - var high = "0x" + escaped - 0x10000; - // NaN means non-codepoint - // Support: Firefox - // Workaround erroneous numeric interpretation of +"0x" - return high !== high || escapedWhitespace ? - escaped : - high < 0 ? - // BMP codepoint - String.fromCharCode( high + 0x10000 ) : - // Supplemental Plane codepoint (surrogate pair) - String.fromCharCode( high >> 10 | 0xD800, high & 0x3FF | 0xDC00 ); - }; - -// Optimize for push.apply( _, NodeList ) - try { - push.apply( - (arr = slice.call( preferredDoc.childNodes )), - preferredDoc.childNodes - ); - // Support: Android<4.0 - // Detect silently failing push.apply - arr[ preferredDoc.childNodes.length ].nodeType; - } catch ( e ) { - push = { apply: arr.length ? - - // Leverage slice if possible - function( target, els ) { - push_native.apply( target, slice.call(els) ); - } : - - // Support: IE<9 - // Otherwise append directly - function( target, els ) { - var j = target.length, - i = 0; - // Can't trust NodeList.length - while ( (target[j++] = els[i++]) ) {} - target.length = j - 1; - } - }; - } - - function Sizzle( selector, context, results, seed ) { - var match, elem, m, nodeType, - // QSA vars - i, groups, old, nid, newContext, newSelector; - - if ( ( context ? context.ownerDocument || context : preferredDoc ) !== document ) { - setDocument( context ); - } - - context = context || document; - results = results || []; - - if ( !selector || typeof selector !== "string" ) { - return results; - } - - if ( (nodeType = context.nodeType) !== 1 && nodeType !== 9 ) { - return []; - } - - if ( documentIsHTML && !seed ) { - - // Shortcuts - if ( (match = rquickExpr.exec( selector )) ) { - // Speed-up: Sizzle("#ID") - if ( (m = match[1]) ) { - if ( nodeType === 9 ) { - elem = context.getElementById( m ); - // Check parentNode to catch when Blackberry 4.6 returns - // nodes that are no longer in the document (jQuery #6963) - if ( elem && elem.parentNode ) { - // Handle the case where IE, Opera, and Webkit return items - // by name instead of ID - if ( elem.id === m ) { - results.push( elem ); - return results; - } - } else { - return results; - } - } else { - // Context is not a document - if ( context.ownerDocument && (elem = context.ownerDocument.getElementById( m )) && - contains( context, elem ) && elem.id === m ) { - results.push( elem ); - return results; - } - } - - // Speed-up: Sizzle("TAG") - } else if ( match[2] ) { - push.apply( results, context.getElementsByTagName( selector ) ); - return results; - - // Speed-up: Sizzle(".CLASS") - } else if ( (m = match[3]) && support.getElementsByClassName && context.getElementsByClassName ) { - push.apply( results, context.getElementsByClassName( m ) ); - return results; - } - } - - // QSA path - if ( support.qsa && (!rbuggyQSA || !rbuggyQSA.test( selector )) ) { - nid = old = expando; - newContext = context; - newSelector = nodeType === 9 && selector; - - // qSA works strangely on Element-rooted queries - // We can work around this by specifying an extra ID on the root - // and working up from there (Thanks to Andrew Dupont for the technique) - // IE 8 doesn't work on object elements - if ( nodeType === 1 && context.nodeName.toLowerCase() !== "object" ) { - groups = tokenize( selector ); - - if ( (old = context.getAttribute("id")) ) { - nid = old.replace( rescape, "\\$&" ); - } else { - context.setAttribute( "id", nid ); - } - nid = "[id='" + nid + "'] "; - - i = groups.length; - while ( i-- ) { - groups[i] = nid + toSelector( groups[i] ); - } - newContext = rsibling.test( selector ) && testContext( context.parentNode ) || context; - newSelector = groups.join(","); - } - - if ( newSelector ) { - try { - push.apply( results, - newContext.querySelectorAll( newSelector ) - ); - return results; - } catch(qsaError) { - } finally { - if ( !old ) { - context.removeAttribute("id"); - } - } - } - } - } - - // All others - return select( selector.replace( rtrim, "$1" ), context, results, seed ); - } - - /** - * Create key-value caches of limited size - * @returns {Function(string, Object)} Returns the Object data after storing it on itself with - * property name the (space-suffixed) string and (if the cache is larger than Expr.cacheLength) - * deleting the oldest entry - */ - function createCache() { - var keys = []; - - function cache( key, value ) { - // Use (key + " ") to avoid collision with native prototype properties (see Issue #157) - if ( keys.push( key + " " ) > Expr.cacheLength ) { - // Only keep the most recent entries - delete cache[ keys.shift() ]; - } - return (cache[ key + " " ] = value); - } - return cache; - } - - /** - * Mark a function for special use by Sizzle - * @param {Function} fn The function to mark - */ - function markFunction( fn ) { - fn[ expando ] = true; - return fn; - } - - /** - * Support testing using an element - * @param {Function} fn Passed the created div and expects a boolean result - */ - function assert( fn ) { - var div = document.createElement("div"); - - try { - return !!fn( div ); - } catch (e) { - return false; - } finally { - // Remove from its parent by default - if ( div.parentNode ) { - div.parentNode.removeChild( div ); - } - // release memory in IE - div = null; - } - } - - /** - * Adds the same handler for all of the specified attrs - * @param {String} attrs Pipe-separated list of attributes - * @param {Function} handler The method that will be applied - */ - function addHandle( attrs, handler ) { - var arr = attrs.split("|"), - i = attrs.length; - - while ( i-- ) { - Expr.attrHandle[ arr[i] ] = handler; - } - } - - /** - * Checks document order of two siblings - * @param {Element} a - * @param {Element} b - * @returns {Number} Returns less than 0 if a precedes b, greater than 0 if a follows b - */ - function siblingCheck( a, b ) { - var cur = b && a, - diff = cur && a.nodeType === 1 && b.nodeType === 1 && - ( ~b.sourceIndex || MAX_NEGATIVE ) - - ( ~a.sourceIndex || MAX_NEGATIVE ); - - // Use IE sourceIndex if available on both nodes - if ( diff ) { - return diff; - } - - // Check if b follows a - if ( cur ) { - while ( (cur = cur.nextSibling) ) { - if ( cur === b ) { - return -1; - } - } - } - - return a ? 1 : -1; - } - - /** - * Returns a function to use in pseudos for input types - * @param {String} type - */ - function createInputPseudo( type ) { - return function( elem ) { - var name = elem.nodeName.toLowerCase(); - return name === "input" && elem.type === type; - }; - } - - /** - * Returns a function to use in pseudos for buttons - * @param {String} type - */ - function createButtonPseudo( type ) { - return function( elem ) { - var name = elem.nodeName.toLowerCase(); - return (name === "input" || name === "button") && elem.type === type; - }; - } - - /** - * Returns a function to use in pseudos for positionals - * @param {Function} fn - */ - function createPositionalPseudo( fn ) { - return markFunction(function( argument ) { - argument = +argument; - return markFunction(function( seed, matches ) { - var j, - matchIndexes = fn( [], seed.length, argument ), - i = matchIndexes.length; - - // Match elements found at the specified indexes - while ( i-- ) { - if ( seed[ (j = matchIndexes[i]) ] ) { - seed[j] = !(matches[j] = seed[j]); - } - } - }); - }); - } - - /** - * Checks a node for validity as a Sizzle context - * @param {Element|Object=} context - * @returns {Element|Object|Boolean} The input node if acceptable, otherwise a falsy value - */ - function testContext( context ) { - return context && typeof context.getElementsByTagName !== strundefined && context; - } - -// Expose support vars for convenience - support = Sizzle.support = {}; - - /** - * Detects XML nodes - * @param {Element|Object} elem An element or a document - * @returns {Boolean} True iff elem is a non-HTML XML node - */ - isXML = Sizzle.isXML = function( elem ) { - // documentElement is verified for cases where it doesn't yet exist - // (such as loading iframes in IE - #4833) - var documentElement = elem && (elem.ownerDocument || elem).documentElement; - return documentElement ? documentElement.nodeName !== "HTML" : false; - }; - - /** - * Sets document-related variables once based on the current document - * @param {Element|Object} [doc] An element or document object to use to set the document - * @returns {Object} Returns the current document - */ - setDocument = Sizzle.setDocument = function( node ) { - var hasCompare, - doc = node ? node.ownerDocument || node : preferredDoc, - parent = doc.defaultView; - - // If no document and documentElement is available, return - if ( doc === document || doc.nodeType !== 9 || !doc.documentElement ) { - return document; - } - - // Set our document - document = doc; - docElem = doc.documentElement; - - // Support tests - documentIsHTML = !isXML( doc ); - - // Support: IE>8 - // If iframe document is assigned to "document" variable and if iframe has been reloaded, - // IE will throw "permission denied" error when accessing "document" variable, see jQuery #13936 - // IE6-8 do not support the defaultView property so parent will be undefined - if ( parent && parent !== parent.top ) { - // IE11 does not have attachEvent, so all must suffer - if ( parent.addEventListener ) { - parent.addEventListener( "unload", function() { - setDocument(); - }, false ); - } else if ( parent.attachEvent ) { - parent.attachEvent( "onunload", function() { - setDocument(); - }); - } - } - - /* Attributes - ---------------------------------------------------------------------- */ - - // Support: IE<8 - // Verify that getAttribute really returns attributes and not properties (excepting IE8 booleans) - support.attributes = assert(function( div ) { - div.className = "i"; - return !div.getAttribute("className"); - }); - - /* getElement(s)By* - ---------------------------------------------------------------------- */ - - // Check if getElementsByTagName("*") returns only elements - support.getElementsByTagName = assert(function( div ) { - div.appendChild( doc.createComment("") ); - return !div.getElementsByTagName("*").length; - }); - - // Check if getElementsByClassName can be trusted - support.getElementsByClassName = rnative.test( doc.getElementsByClassName ) && assert(function( div ) { - div.innerHTML = "<div class='a'></div><div class='a i'></div>"; - - // Support: Safari<4 - // Catch class over-caching - div.firstChild.className = "i"; - // Support: Opera<10 - // Catch gEBCN failure to find non-leading classes - return div.getElementsByClassName("i").length === 2; - }); - - // Support: IE<10 - // Check if getElementById returns elements by name - // The broken getElementById methods don't pick up programatically-set names, - // so use a roundabout getElementsByName test - support.getById = assert(function( div ) { - docElem.appendChild( div ).id = expando; - return !doc.getElementsByName || !doc.getElementsByName( expando ).length; - }); - - // ID find and filter - if ( support.getById ) { - Expr.find["ID"] = function( id, context ) { - if ( typeof context.getElementById !== strundefined && documentIsHTML ) { - var m = context.getElementById( id ); - // Check parentNode to catch when Blackberry 4.6 returns - // nodes that are no longer in the document #6963 - return m && m.parentNode ? [m] : []; - } - }; - Expr.filter["ID"] = function( id ) { - var attrId = id.replace( runescape, funescape ); - return function( elem ) { - return elem.getAttribute("id") === attrId; - }; - }; - } else { - // Support: IE6/7 - // getElementById is not reliable as a find shortcut - delete Expr.find["ID"]; - - Expr.filter["ID"] = function( id ) { - var attrId = id.replace( runescape, funescape ); - return function( elem ) { - var node = typeof elem.getAttributeNode !== strundefined && elem.getAttributeNode("id"); - return node && node.value === attrId; - }; - }; - } - - // Tag - Expr.find["TAG"] = support.getElementsByTagName ? - function( tag, context ) { - if ( typeof context.getElementsByTagName !== strundefined ) { - return context.getElementsByTagName( tag ); - } - } : - function( tag, context ) { - var elem, - tmp = [], - i = 0, - results = context.getElementsByTagName( tag ); - - // Filter out possible comments - if ( tag === "*" ) { - while ( (elem = results[i++]) ) { - if ( elem.nodeType === 1 ) { - tmp.push( elem ); - } - } - - return tmp; - } - return results; - }; - - // Class - Expr.find["CLASS"] = support.getElementsByClassName && function( className, context ) { - if ( typeof context.getElementsByClassName !== strundefined && documentIsHTML ) { - return context.getElementsByClassName( className ); - } - }; - - /* QSA/matchesSelector - ---------------------------------------------------------------------- */ - - // QSA and matchesSelector support - - // matchesSelector(:active) reports false when true (IE9/Opera 11.5) - rbuggyMatches = []; - - // qSa(:focus) reports false when true (Chrome 21) - // We allow this because of a bug in IE8/9 that throws an error - // whenever `document.activeElement` is accessed on an iframe - // So, we allow :focus to pass through QSA all the time to avoid the IE error - // See http://bugs.jquery.com/ticket/13378 - rbuggyQSA = []; - - if ( (support.qsa = rnative.test( doc.querySelectorAll )) ) { - // Build QSA regex - // Regex strategy adopted from Diego Perini - assert(function( div ) { - // Select is set to empty string on purpose - // This is to test IE's treatment of not explicitly - // setting a boolean content attribute, - // since its presence should be enough - // http://bugs.jquery.com/ticket/12359 - div.innerHTML = "<select t=''><option selected=''></option></select>"; - - // Support: IE8, Opera 10-12 - // Nothing should be selected when empty strings follow ^= or $= or *= - if ( div.querySelectorAll("[t^='']").length ) { - rbuggyQSA.push( "[*^$]=" + whitespace + "*(?:''|\"\")" ); - } - - // Support: IE8 - // Boolean attributes and "value" are not treated correctly - if ( !div.querySelectorAll("[selected]").length ) { - rbuggyQSA.push( "\\[" + whitespace + "*(?:value|" + booleans + ")" ); - } - - // Webkit/Opera - :checked should return selected option elements - // http://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked - // IE8 throws error here and will not see later tests - if ( !div.querySelectorAll(":checked").length ) { - rbuggyQSA.push(":checked"); - } - }); - - assert(function( div ) { - // Support: Windows 8 Native Apps - // The type and name attributes are restricted during .innerHTML assignment - var input = doc.createElement("input"); - input.setAttribute( "type", "hidden" ); - div.appendChild( input ).setAttribute( "name", "D" ); - - // Support: IE8 - // Enforce case-sensitivity of name attribute - if ( div.querySelectorAll("[name=d]").length ) { - rbuggyQSA.push( "name" + whitespace + "*[*^$|!~]?=" ); - } - - // FF 3.5 - :enabled/:disabled and hidden elements (hidden elements are still enabled) - // IE8 throws error here and will not see later tests - if ( !div.querySelectorAll(":enabled").length ) { - rbuggyQSA.push( ":enabled", ":disabled" ); - } - - // Opera 10-11 does not throw on post-comma invalid pseudos - div.querySelectorAll("*,:x"); - rbuggyQSA.push(",.*:"); - }); - } - - if ( (support.matchesSelector = rnative.test( (matches = docElem.webkitMatchesSelector || - docElem.mozMatchesSelector || - docElem.oMatchesSelector || - docElem.msMatchesSelector) )) ) { - - assert(function( div ) { - // Check to see if it's possible to do matchesSelector - // on a disconnected node (IE 9) - support.disconnectedMatch = matches.call( div, "div" ); - - // This should fail with an exception - // Gecko does not error, returns false instead - matches.call( div, "[s!='']:x" ); - rbuggyMatches.push( "!=", pseudos ); - }); - } - - rbuggyQSA = rbuggyQSA.length && new RegExp( rbuggyQSA.join("|") ); - rbuggyMatches = rbuggyMatches.length && new RegExp( rbuggyMatches.join("|") ); - - /* Contains - ---------------------------------------------------------------------- */ - hasCompare = rnative.test( docElem.compareDocumentPosition ); - - // Element contains another - // Purposefully does not implement inclusive descendent - // As in, an element does not contain itself - contains = hasCompare || rnative.test( docElem.contains ) ? - function( a, b ) { - var adown = a.nodeType === 9 ? a.documentElement : a, - bup = b && b.parentNode; - return a === bup || !!( bup && bup.nodeType === 1 && ( - adown.contains ? - adown.contains( bup ) : - a.compareDocumentPosition && a.compareDocumentPosition( bup ) & 16 - )); - } : - function( a, b ) { - if ( b ) { - while ( (b = b.parentNode) ) { - if ( b === a ) { - return true; - } - } - } - return false; - }; - - /* Sorting - ---------------------------------------------------------------------- */ - - // Document order sorting - sortOrder = hasCompare ? - function( a, b ) { - - // Flag for duplicate removal - if ( a === b ) { - hasDuplicate = true; - return 0; - } - - // Sort on method existence if only one input has compareDocumentPosition - var compare = !a.compareDocumentPosition - !b.compareDocumentPosition; - if ( compare ) { - return compare; - } - - // Calculate position if both inputs belong to the same document - compare = ( a.ownerDocument || a ) === ( b.ownerDocument || b ) ? - a.compareDocumentPosition( b ) : - - // Otherwise we know they are disconnected - 1; - - // Disconnected nodes - if ( compare & 1 || - (!support.sortDetached && b.compareDocumentPosition( a ) === compare) ) { - - // Choose the first element that is related to our preferred document - if ( a === doc || a.ownerDocument === preferredDoc && contains(preferredDoc, a) ) { - return -1; - } - if ( b === doc || b.ownerDocument === preferredDoc && contains(preferredDoc, b) ) { - return 1; - } - - // Maintain original order - return sortInput ? - ( indexOf.call( sortInput, a ) - indexOf.call( sortInput, b ) ) : - 0; - } - - return compare & 4 ? -1 : 1; - } : - function( a, b ) { - // Exit early if the nodes are identical - if ( a === b ) { - hasDuplicate = true; - return 0; - } - - var cur, - i = 0, - aup = a.parentNode, - bup = b.parentNode, - ap = [ a ], - bp = [ b ]; - - // Parentless nodes are either documents or disconnected - if ( !aup || !bup ) { - return a === doc ? -1 : - b === doc ? 1 : - aup ? -1 : - bup ? 1 : - sortInput ? - ( indexOf.call( sortInput, a ) - indexOf.call( sortInput, b ) ) : - 0; - - // If the nodes are siblings, we can do a quick check - } else if ( aup === bup ) { - return siblingCheck( a, b ); - } - - // Otherwise we need full lists of their ancestors for comparison - cur = a; - while ( (cur = cur.parentNode) ) { - ap.unshift( cur ); - } - cur = b; - while ( (cur = cur.parentNode) ) { - bp.unshift( cur ); - } - - // Walk down the tree looking for a discrepancy - while ( ap[i] === bp[i] ) { - i++; - } - - return i ? - // Do a sibling check if the nodes have a common ancestor - siblingCheck( ap[i], bp[i] ) : - - // Otherwise nodes in our document sort first - ap[i] === preferredDoc ? -1 : - bp[i] === preferredDoc ? 1 : - 0; - }; - - return doc; - }; - - Sizzle.matches = function( expr, elements ) { - return Sizzle( expr, null, null, elements ); - }; - - Sizzle.matchesSelector = function( elem, expr ) { - // Set document vars if needed - if ( ( elem.ownerDocument || elem ) !== document ) { - setDocument( elem ); - } - - // Make sure that attribute selectors are quoted - expr = expr.replace( rattributeQuotes, "='$1']" ); - - if ( support.matchesSelector && documentIsHTML && - ( !rbuggyMatches || !rbuggyMatches.test( expr ) ) && - ( !rbuggyQSA || !rbuggyQSA.test( expr ) ) ) { - - try { - var ret = matches.call( elem, expr ); - - // IE 9's matchesSelector returns false on disconnected nodes - if ( ret || support.disconnectedMatch || - // As well, disconnected nodes are said to be in a document - // fragment in IE 9 - elem.document && elem.document.nodeType !== 11 ) { - return ret; - } - } catch(e) {} - } - - return Sizzle( expr, document, null, [elem] ).length > 0; - }; - - Sizzle.contains = function( context, elem ) { - // Set document vars if needed - if ( ( context.ownerDocument || context ) !== document ) { - setDocument( context ); - } - return contains( context, elem ); - }; - - Sizzle.attr = function( elem, name ) { - // Set document vars if needed - if ( ( elem.ownerDocument || elem ) !== document ) { - setDocument( elem ); - } - - var fn = Expr.attrHandle[ name.toLowerCase() ], - // Don't get fooled by Object.prototype properties (jQuery #13807) - val = fn && hasOwn.call( Expr.attrHandle, name.toLowerCase() ) ? - fn( elem, name, !documentIsHTML ) : - undefined; - - return val !== undefined ? - val : - support.attributes || !documentIsHTML ? - elem.getAttribute( name ) : - (val = elem.getAttributeNode(name)) && val.specified ? - val.value : - null; - }; - - Sizzle.error = function( msg ) { - throw new Error( "Syntax error, unrecognized expression: " + msg ); - }; - - /** - * Document sorting and removing duplicates - * @param {ArrayLike} results - */ - Sizzle.uniqueSort = function( results ) { - var elem, - duplicates = [], - j = 0, - i = 0; - - // Unless we *know* we can detect duplicates, assume their presence - hasDuplicate = !support.detectDuplicates; - sortInput = !support.sortStable && results.slice( 0 ); - results.sort( sortOrder ); - - if ( hasDuplicate ) { - while ( (elem = results[i++]) ) { - if ( elem === results[ i ] ) { - j = duplicates.push( i ); - } - } - while ( j-- ) { - results.splice( duplicates[ j ], 1 ); - } - } - - // Clear input after sorting to release objects - // See https://github.com/jquery/sizzle/pull/225 - sortInput = null; - - return results; - }; - - /** - * Utility function for retrieving the text value of an array of DOM nodes - * @param {Array|Element} elem - */ - getText = Sizzle.getText = function( elem ) { - var node, - ret = "", - i = 0, - nodeType = elem.nodeType; - - if ( !nodeType ) { - // If no nodeType, this is expected to be an array - while ( (node = elem[i++]) ) { - // Do not traverse comment nodes - ret += getText( node ); - } - } else if ( nodeType === 1 || nodeType === 9 || nodeType === 11 ) { - // Use textContent for elements - // innerText usage removed for consistency of new lines (jQuery #11153) - if ( typeof elem.textContent === "string" ) { - return elem.textContent; - } else { - // Traverse its children - for ( elem = elem.firstChild; elem; elem = elem.nextSibling ) { - ret += getText( elem ); - } - } - } else if ( nodeType === 3 || nodeType === 4 ) { - return elem.nodeValue; - } - // Do not include comment or processing instruction nodes - - return ret; - }; - - Expr = Sizzle.selectors = { - - // Can be adjusted by the user - cacheLength: 50, - - createPseudo: markFunction, - - match: matchExpr, - - attrHandle: {}, - - find: {}, - - relative: { - ">": { dir: "parentNode", first: true }, - " ": { dir: "parentNode" }, - "+": { dir: "previousSibling", first: true }, - "~": { dir: "previousSibling" } - }, - - preFilter: { - "ATTR": function( match ) { - match[1] = match[1].replace( runescape, funescape ); - - // Move the given value to match[3] whether quoted or unquoted - match[3] = ( match[4] || match[5] || "" ).replace( runescape, funescape ); - - if ( match[2] === "~=" ) { - match[3] = " " + match[3] + " "; - } - - return match.slice( 0, 4 ); - }, - - "CHILD": function( match ) { - /* matches from matchExpr["CHILD"] - 1 type (only|nth|...) - 2 what (child|of-type) - 3 argument (even|odd|\d*|\d*n([+-]\d+)?|...) - 4 xn-component of xn+y argument ([+-]?\d*n|) - 5 sign of xn-component - 6 x of xn-component - 7 sign of y-component - 8 y of y-component - */ - match[1] = match[1].toLowerCase(); - - if ( match[1].slice( 0, 3 ) === "nth" ) { - // nth-* requires argument - if ( !match[3] ) { - Sizzle.error( match[0] ); - } - - // numeric x and y parameters for Expr.filter.CHILD - // remember that false/true cast respectively to 0/1 - match[4] = +( match[4] ? match[5] + (match[6] || 1) : 2 * ( match[3] === "even" || match[3] === "odd" ) ); - match[5] = +( ( match[7] + match[8] ) || match[3] === "odd" ); - - // other types prohibit arguments - } else if ( match[3] ) { - Sizzle.error( match[0] ); - } - - return match; - }, - - "PSEUDO": function( match ) { - var excess, - unquoted = !match[5] && match[2]; - - if ( matchExpr["CHILD"].test( match[0] ) ) { - return null; - } - - // Accept quoted arguments as-is - if ( match[3] && match[4] !== undefined ) { - match[2] = match[4]; - - // Strip excess characters from unquoted arguments - } else if ( unquoted && rpseudo.test( unquoted ) && - // Get excess from tokenize (recursively) - (excess = tokenize( unquoted, true )) && - // advance to the next closing parenthesis - (excess = unquoted.indexOf( ")", unquoted.length - excess ) - unquoted.length) ) { - - // excess is a negative index - match[0] = match[0].slice( 0, excess ); - match[2] = unquoted.slice( 0, excess ); - } - - // Return only captures needed by the pseudo filter method (type and argument) - return match.slice( 0, 3 ); - } - }, - - filter: { - - "TAG": function( nodeNameSelector ) { - var nodeName = nodeNameSelector.replace( runescape, funescape ).toLowerCase(); - return nodeNameSelector === "*" ? - function() { return true; } : - function( elem ) { - return elem.nodeName && elem.nodeName.toLowerCase() === nodeName; - }; - }, - - "CLASS": function( className ) { - var pattern = classCache[ className + " " ]; - - return pattern || - (pattern = new RegExp( "(^|" + whitespace + ")" + className + "(" + whitespace + "|$)" )) && - classCache( className, function( elem ) { - return pattern.test( typeof elem.className === "string" && elem.className || typeof elem.getAttribute !== strundefined && elem.getAttribute("class") || "" ); - }); - }, - - "ATTR": function( name, operator, check ) { - return function( elem ) { - var result = Sizzle.attr( elem, name ); - - if ( result == null ) { - return operator === "!="; - } - if ( !operator ) { - return true; - } - - result += ""; - - return operator === "=" ? result === check : - operator === "!=" ? result !== check : - operator === "^=" ? check && result.indexOf( check ) === 0 : - operator === "*=" ? check && result.indexOf( check ) > -1 : - operator === "$=" ? check && result.slice( -check.length ) === check : - operator === "~=" ? ( " " + result + " " ).indexOf( check ) > -1 : - operator === "|=" ? result === check || result.slice( 0, check.length + 1 ) === check + "-" : - false; - }; - }, - - "CHILD": function( type, what, argument, first, last ) { - var simple = type.slice( 0, 3 ) !== "nth", - forward = type.slice( -4 ) !== "last", - ofType = what === "of-type"; - - return first === 1 && last === 0 ? - - // Shortcut for :nth-*(n) - function( elem ) { - return !!elem.parentNode; - } : - - function( elem, context, xml ) { - var cache, outerCache, node, diff, nodeIndex, start, - dir = simple !== forward ? "nextSibling" : "previousSibling", - parent = elem.parentNode, - name = ofType && elem.nodeName.toLowerCase(), - useCache = !xml && !ofType; - - if ( parent ) { - - // :(first|last|only)-(child|of-type) - if ( simple ) { - while ( dir ) { - node = elem; - while ( (node = node[ dir ]) ) { - if ( ofType ? node.nodeName.toLowerCase() === name : node.nodeType === 1 ) { - return false; - } - } - // Reverse direction for :only-* (if we haven't yet done so) - start = dir = type === "only" && !start && "nextSibling"; - } - return true; - } - - start = [ forward ? parent.firstChild : parent.lastChild ]; - - // non-xml :nth-child(...) stores cache data on `parent` - if ( forward && useCache ) { - // Seek `elem` from a previously-cached index - outerCache = parent[ expando ] || (parent[ expando ] = {}); - cache = outerCache[ type ] || []; - nodeIndex = cache[0] === dirruns && cache[1]; - diff = cache[0] === dirruns && cache[2]; - node = nodeIndex && parent.childNodes[ nodeIndex ]; - - while ( (node = ++nodeIndex && node && node[ dir ] || - - // Fallback to seeking `elem` from the start - (diff = nodeIndex = 0) || start.pop()) ) { - - // When found, cache indexes on `parent` and break - if ( node.nodeType === 1 && ++diff && node === elem ) { - outerCache[ type ] = [ dirruns, nodeIndex, diff ]; - break; - } - } - - // Use previously-cached element index if available - } else if ( useCache && (cache = (elem[ expando ] || (elem[ expando ] = {}))[ type ]) && cache[0] === dirruns ) { - diff = cache[1]; - - // xml :nth-child(...) or :nth-last-child(...) or :nth(-last)?-of-type(...) - } else { - // Use the same loop as above to seek `elem` from the start - while ( (node = ++nodeIndex && node && node[ dir ] || - (diff = nodeIndex = 0) || start.pop()) ) { - - if ( ( ofType ? node.nodeName.toLowerCase() === name : node.nodeType === 1 ) && ++diff ) { - // Cache the index of each encountered element - if ( useCache ) { - (node[ expando ] || (node[ expando ] = {}))[ type ] = [ dirruns, diff ]; - } - - if ( node === elem ) { - break; - } - } - } - } - - // Incorporate the offset, then check against cycle size - diff -= last; - return diff === first || ( diff % first === 0 && diff / first >= 0 ); - } - }; - }, - - "PSEUDO": function( pseudo, argument ) { - // pseudo-class names are case-insensitive - // http://www.w3.org/TR/selectors/#pseudo-classes - // Prioritize by case sensitivity in case custom pseudos are added with uppercase letters - // Remember that setFilters inherits from pseudos - var args, - fn = Expr.pseudos[ pseudo ] || Expr.setFilters[ pseudo.toLowerCase() ] || - Sizzle.error( "unsupported pseudo: " + pseudo ); - - // The user may use createPseudo to indicate that - // arguments are needed to create the filter function - // just as Sizzle does - if ( fn[ expando ] ) { - return fn( argument ); - } - - // But maintain support for old signatures - if ( fn.length > 1 ) { - args = [ pseudo, pseudo, "", argument ]; - return Expr.setFilters.hasOwnProperty( pseudo.toLowerCase() ) ? - markFunction(function( seed, matches ) { - var idx, - matched = fn( seed, argument ), - i = matched.length; - while ( i-- ) { - idx = indexOf.call( seed, matched[i] ); - seed[ idx ] = !( matches[ idx ] = matched[i] ); - } - }) : - function( elem ) { - return fn( elem, 0, args ); - }; - } - - return fn; - } - }, - - pseudos: { - // Potentially complex pseudos - "not": markFunction(function( selector ) { - // Trim the selector passed to compile - // to avoid treating leading and trailing - // spaces as combinators - var input = [], - results = [], - matcher = compile( selector.replace( rtrim, "$1" ) ); - - return matcher[ expando ] ? - markFunction(function( seed, matches, context, xml ) { - var elem, - unmatched = matcher( seed, null, xml, [] ), - i = seed.length; - - // Match elements unmatched by `matcher` - while ( i-- ) { - if ( (elem = unmatched[i]) ) { - seed[i] = !(matches[i] = elem); - } - } - }) : - function( elem, context, xml ) { - input[0] = elem; - matcher( input, null, xml, results ); - return !results.pop(); - }; - }), - - "has": markFunction(function( selector ) { - return function( elem ) { - return Sizzle( selector, elem ).length > 0; - }; - }), - - "contains": markFunction(function( text ) { - return function( elem ) { - return ( elem.textContent || elem.innerText || getText( elem ) ).indexOf( text ) > -1; - }; - }), - - // "Whether an element is represented by a :lang() selector - // is based solely on the element's language value - // being equal to the identifier C, - // or beginning with the identifier C immediately followed by "-". - // The matching of C against the element's language value is performed case-insensitively. - // The identifier C does not have to be a valid language name." - // http://www.w3.org/TR/selectors/#lang-pseudo - "lang": markFunction( function( lang ) { - // lang value must be a valid identifier - if ( !ridentifier.test(lang || "") ) { - Sizzle.error( "unsupported lang: " + lang ); - } - lang = lang.replace( runescape, funescape ).toLowerCase(); - return function( elem ) { - var elemLang; - do { - if ( (elemLang = documentIsHTML ? - elem.lang : - elem.getAttribute("xml:lang") || elem.getAttribute("lang")) ) { - - elemLang = elemLang.toLowerCase(); - return elemLang === lang || elemLang.indexOf( lang + "-" ) === 0; - } - } while ( (elem = elem.parentNode) && elem.nodeType === 1 ); - return false; - }; - }), - - // Miscellaneous - "target": function( elem ) { - var hash = window.location && window.location.hash; - return hash && hash.slice( 1 ) === elem.id; - }, - - "root": function( elem ) { - return elem === docElem; - }, - - "focus": function( elem ) { - return elem === document.activeElement && (!document.hasFocus || document.hasFocus()) && !!(elem.type || elem.href || ~elem.tabIndex); - }, - - // Boolean properties - "enabled": function( elem ) { - return elem.disabled === false; - }, - - "disabled": function( elem ) { - return elem.disabled === true; - }, - - "checked": function( elem ) { - // In CSS3, :checked should return both checked and selected elements - // http://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked - var nodeName = elem.nodeName.toLowerCase(); - return (nodeName === "input" && !!elem.checked) || (nodeName === "option" && !!elem.selected); - }, - - "selected": function( elem ) { - // Accessing this property makes selected-by-default - // options in Safari work properly - if ( elem.parentNode ) { - elem.parentNode.selectedIndex; - } - - return elem.selected === true; - }, - - // Contents - "empty": function( elem ) { - // http://www.w3.org/TR/selectors/#empty-pseudo - // :empty is negated by element (1) or content nodes (text: 3; cdata: 4; entity ref: 5), - // but not by others (comment: 8; processing instruction: 7; etc.) - // nodeType < 6 works because attributes (2) do not appear as children - for ( elem = elem.firstChild; elem; elem = elem.nextSibling ) { - if ( elem.nodeType < 6 ) { - return false; - } - } - return true; - }, - - "parent": function( elem ) { - return !Expr.pseudos["empty"]( elem ); - }, - - // Element/input types - "header": function( elem ) { - return rheader.test( elem.nodeName ); - }, - - "input": function( elem ) { - return rinputs.test( elem.nodeName ); - }, - - "button": function( elem ) { - var name = elem.nodeName.toLowerCase(); - return name === "input" && elem.type === "button" || name === "button"; - }, - - "text": function( elem ) { - var attr; - return elem.nodeName.toLowerCase() === "input" && - elem.type === "text" && - - // Support: IE<8 - // New HTML5 attribute values (e.g., "search") appear with elem.type === "text" - ( (attr = elem.getAttribute("type")) == null || attr.toLowerCase() === "text" ); - }, - - // Position-in-collection - "first": createPositionalPseudo(function() { - return [ 0 ]; - }), - - "last": createPositionalPseudo(function( matchIndexes, length ) { - return [ length - 1 ]; - }), - - "eq": createPositionalPseudo(function( matchIndexes, length, argument ) { - return [ argument < 0 ? argument + length : argument ]; - }), - - "even": createPositionalPseudo(function( matchIndexes, length ) { - var i = 0; - for ( ; i < length; i += 2 ) { - matchIndexes.push( i ); - } - return matchIndexes; - }), - - "odd": createPositionalPseudo(function( matchIndexes, length ) { - var i = 1; - for ( ; i < length; i += 2 ) { - matchIndexes.push( i ); - } - return matchIndexes; - }), - - "lt": createPositionalPseudo(function( matchIndexes, length, argument ) { - var i = argument < 0 ? argument + length : argument; - for ( ; --i >= 0; ) { - matchIndexes.push( i ); - } - return matchIndexes; - }), - - "gt": createPositionalPseudo(function( matchIndexes, length, argument ) { - var i = argument < 0 ? argument + length : argument; - for ( ; ++i < length; ) { - matchIndexes.push( i ); - } - return matchIndexes; - }) - } - }; - - Expr.pseudos["nth"] = Expr.pseudos["eq"]; - -// Add button/input type pseudos - for ( i in { radio: true, checkbox: true, file: true, password: true, image: true } ) { - Expr.pseudos[ i ] = createInputPseudo( i ); - } - for ( i in { submit: true, reset: true } ) { - Expr.pseudos[ i ] = createButtonPseudo( i ); - } - -// Easy API for creating new setFilters - function setFilters() {} - setFilters.prototype = Expr.filters = Expr.pseudos; - Expr.setFilters = new setFilters(); - - function tokenize( selector, parseOnly ) { - var matched, match, tokens, type, - soFar, groups, preFilters, - cached = tokenCache[ selector + " " ]; - - if ( cached ) { - return parseOnly ? 0 : cached.slice( 0 ); - } - - soFar = selector; - groups = []; - preFilters = Expr.preFilter; - - while ( soFar ) { - - // Comma and first run - if ( !matched || (match = rcomma.exec( soFar )) ) { - if ( match ) { - // Don't consume trailing commas as valid - soFar = soFar.slice( match[0].length ) || soFar; - } - groups.push( (tokens = []) ); - } - - matched = false; - - // Combinators - if ( (match = rcombinators.exec( soFar )) ) { - matched = match.shift(); - tokens.push({ - value: matched, - // Cast descendant combinators to space - type: match[0].replace( rtrim, " " ) - }); - soFar = soFar.slice( matched.length ); - } - - // Filters - for ( type in Expr.filter ) { - if ( (match = matchExpr[ type ].exec( soFar )) && (!preFilters[ type ] || - (match = preFilters[ type ]( match ))) ) { - matched = match.shift(); - tokens.push({ - value: matched, - type: type, - matches: match - }); - soFar = soFar.slice( matched.length ); - } - } - - if ( !matched ) { - break; - } - } - - // Return the length of the invalid excess - // if we're just parsing - // Otherwise, throw an error or return tokens - return parseOnly ? - soFar.length : - soFar ? - Sizzle.error( selector ) : - // Cache the tokens - tokenCache( selector, groups ).slice( 0 ); - } - - function toSelector( tokens ) { - var i = 0, - len = tokens.length, - selector = ""; - for ( ; i < len; i++ ) { - selector += tokens[i].value; - } - return selector; - } - - function addCombinator( matcher, combinator, base ) { - var dir = combinator.dir, - checkNonElements = base && dir === "parentNode", - doneName = done++; - - return combinator.first ? - // Check against closest ancestor/preceding element - function( elem, context, xml ) { - while ( (elem = elem[ dir ]) ) { - if ( elem.nodeType === 1 || checkNonElements ) { - return matcher( elem, context, xml ); - } - } - } : - - // Check against all ancestor/preceding elements - function( elem, context, xml ) { - var oldCache, outerCache, - newCache = [ dirruns, doneName ]; - - // We can't set arbitrary data on XML nodes, so they don't benefit from dir caching - if ( xml ) { - while ( (elem = elem[ dir ]) ) { - if ( elem.nodeType === 1 || checkNonElements ) { - if ( matcher( elem, context, xml ) ) { - return true; - } - } - } - } else { - while ( (elem = elem[ dir ]) ) { - if ( elem.nodeType === 1 || checkNonElements ) { - outerCache = elem[ expando ] || (elem[ expando ] = {}); - if ( (oldCache = outerCache[ dir ]) && - oldCache[ 0 ] === dirruns && oldCache[ 1 ] === doneName ) { - - // Assign to newCache so results back-propagate to previous elements - return (newCache[ 2 ] = oldCache[ 2 ]); - } else { - // Reuse newcache so results back-propagate to previous elements - outerCache[ dir ] = newCache; - - // A match means we're done; a fail means we have to keep checking - if ( (newCache[ 2 ] = matcher( elem, context, xml )) ) { - return true; - } - } - } - } - } - }; - } - - function elementMatcher( matchers ) { - return matchers.length > 1 ? - function( elem, context, xml ) { - var i = matchers.length; - while ( i-- ) { - if ( !matchers[i]( elem, context, xml ) ) { - return false; - } - } - return true; - } : - matchers[0]; - } - - function condense( unmatched, map, filter, context, xml ) { - var elem, - newUnmatched = [], - i = 0, - len = unmatched.length, - mapped = map != null; - - for ( ; i < len; i++ ) { - if ( (elem = unmatched[i]) ) { - if ( !filter || filter( elem, context, xml ) ) { - newUnmatched.push( elem ); - if ( mapped ) { - map.push( i ); - } - } - } - } - - return newUnmatched; - } - - function setMatcher( preFilter, selector, matcher, postFilter, postFinder, postSelector ) { - if ( postFilter && !postFilter[ expando ] ) { - postFilter = setMatcher( postFilter ); - } - if ( postFinder && !postFinder[ expando ] ) { - postFinder = setMatcher( postFinder, postSelector ); - } - return markFunction(function( seed, results, context, xml ) { - var temp, i, elem, - preMap = [], - postMap = [], - preexisting = results.length, - - // Get initial elements from seed or context - elems = seed || multipleContexts( selector || "*", context.nodeType ? [ context ] : context, [] ), - - // Prefilter to get matcher input, preserving a map for seed-results synchronization - matcherIn = preFilter && ( seed || !selector ) ? - condense( elems, preMap, preFilter, context, xml ) : - elems, - - matcherOut = matcher ? - // If we have a postFinder, or filtered seed, or non-seed postFilter or preexisting results, - postFinder || ( seed ? preFilter : preexisting || postFilter ) ? - - // ...intermediate processing is necessary - [] : - - // ...otherwise use results directly - results : - matcherIn; - - // Find primary matches - if ( matcher ) { - matcher( matcherIn, matcherOut, context, xml ); - } - - // Apply postFilter - if ( postFilter ) { - temp = condense( matcherOut, postMap ); - postFilter( temp, [], context, xml ); - - // Un-match failing elements by moving them back to matcherIn - i = temp.length; - while ( i-- ) { - if ( (elem = temp[i]) ) { - matcherOut[ postMap[i] ] = !(matcherIn[ postMap[i] ] = elem); - } - } - } - - if ( seed ) { - if ( postFinder || preFilter ) { - if ( postFinder ) { - // Get the final matcherOut by condensing this intermediate into postFinder contexts - temp = []; - i = matcherOut.length; - while ( i-- ) { - if ( (elem = matcherOut[i]) ) { - // Restore matcherIn since elem is not yet a final match - temp.push( (matcherIn[i] = elem) ); - } - } - postFinder( null, (matcherOut = []), temp, xml ); - } - - // Move matched elements from seed to results to keep them synchronized - i = matcherOut.length; - while ( i-- ) { - if ( (elem = matcherOut[i]) && - (temp = postFinder ? indexOf.call( seed, elem ) : preMap[i]) > -1 ) { - - seed[temp] = !(results[temp] = elem); - } - } - } - - // Add elements to results, through postFinder if defined - } else { - matcherOut = condense( - matcherOut === results ? - matcherOut.splice( preexisting, matcherOut.length ) : - matcherOut - ); - if ( postFinder ) { - postFinder( null, results, matcherOut, xml ); - } else { - push.apply( results, matcherOut ); - } - } - }); - } - - function matcherFromTokens( tokens ) { - var checkContext, matcher, j, - len = tokens.length, - leadingRelative = Expr.relative[ tokens[0].type ], - implicitRelative = leadingRelative || Expr.relative[" "], - i = leadingRelative ? 1 : 0, - - // The foundational matcher ensures that elements are reachable from top-level context(s) - matchContext = addCombinator( function( elem ) { - return elem === checkContext; - }, implicitRelative, true ), - matchAnyContext = addCombinator( function( elem ) { - return indexOf.call( checkContext, elem ) > -1; - }, implicitRelative, true ), - matchers = [ function( elem, context, xml ) { - return ( !leadingRelative && ( xml || context !== outermostContext ) ) || ( - (checkContext = context).nodeType ? - matchContext( elem, context, xml ) : - matchAnyContext( elem, context, xml ) ); - } ]; - - for ( ; i < len; i++ ) { - if ( (matcher = Expr.relative[ tokens[i].type ]) ) { - matchers = [ addCombinator(elementMatcher( matchers ), matcher) ]; - } else { - matcher = Expr.filter[ tokens[i].type ].apply( null, tokens[i].matches ); - - // Return special upon seeing a positional matcher - if ( matcher[ expando ] ) { - // Find the next relative operator (if any) for proper handling - j = ++i; - for ( ; j < len; j++ ) { - if ( Expr.relative[ tokens[j].type ] ) { - break; - } - } - return setMatcher( - i > 1 && elementMatcher( matchers ), - i > 1 && toSelector( - // If the preceding token was a descendant combinator, insert an implicit any-element `*` - tokens.slice( 0, i - 1 ).concat({ value: tokens[ i - 2 ].type === " " ? "*" : "" }) - ).replace( rtrim, "$1" ), - matcher, - i < j && matcherFromTokens( tokens.slice( i, j ) ), - j < len && matcherFromTokens( (tokens = tokens.slice( j )) ), - j < len && toSelector( tokens ) - ); - } - matchers.push( matcher ); - } - } - - return elementMatcher( matchers ); - } - - function matcherFromGroupMatchers( elementMatchers, setMatchers ) { - var bySet = setMatchers.length > 0, - byElement = elementMatchers.length > 0, - superMatcher = function( seed, context, xml, results, outermost ) { - var elem, j, matcher, - matchedCount = 0, - i = "0", - unmatched = seed && [], - setMatched = [], - contextBackup = outermostContext, - // We must always have either seed elements or outermost context - elems = seed || byElement && Expr.find["TAG"]( "*", outermost ), - // Use integer dirruns iff this is the outermost matcher - dirrunsUnique = (dirruns += contextBackup == null ? 1 : Math.random() || 0.1), - len = elems.length; - - if ( outermost ) { - outermostContext = context !== document && context; - } - - // Add elements passing elementMatchers directly to results - // Keep `i` a string if there are no elements so `matchedCount` will be "00" below - // Support: IE<9, Safari - // Tolerate NodeList properties (IE: "length"; Safari: <number>) matching elements by id - for ( ; i !== len && (elem = elems[i]) != null; i++ ) { - if ( byElement && elem ) { - j = 0; - while ( (matcher = elementMatchers[j++]) ) { - if ( matcher( elem, context, xml ) ) { - results.push( elem ); - break; - } - } - if ( outermost ) { - dirruns = dirrunsUnique; - } - } - - // Track unmatched elements for set filters - if ( bySet ) { - // They will have gone through all possible matchers - if ( (elem = !matcher && elem) ) { - matchedCount--; - } - - // Lengthen the array for every element, matched or not - if ( seed ) { - unmatched.push( elem ); - } - } - } - - // Apply set filters to unmatched elements - matchedCount += i; - if ( bySet && i !== matchedCount ) { - j = 0; - while ( (matcher = setMatchers[j++]) ) { - matcher( unmatched, setMatched, context, xml ); - } - - if ( seed ) { - // Reintegrate element matches to eliminate the need for sorting - if ( matchedCount > 0 ) { - while ( i-- ) { - if ( !(unmatched[i] || setMatched[i]) ) { - setMatched[i] = pop.call( results ); - } - } - } - - // Discard index placeholder values to get only actual matches - setMatched = condense( setMatched ); - } - - // Add matches to results - push.apply( results, setMatched ); - - // Seedless set matches succeeding multiple successful matchers stipulate sorting - if ( outermost && !seed && setMatched.length > 0 && - ( matchedCount + setMatchers.length ) > 1 ) { - - Sizzle.uniqueSort( results ); - } - } - - // Override manipulation of globals by nested matchers - if ( outermost ) { - dirruns = dirrunsUnique; - outermostContext = contextBackup; - } - - return unmatched; - }; - - return bySet ? - markFunction( superMatcher ) : - superMatcher; - } - - compile = Sizzle.compile = function( selector, group /* Internal Use Only */ ) { - var i, - setMatchers = [], - elementMatchers = [], - cached = compilerCache[ selector + " " ]; - - if ( !cached ) { - // Generate a function of recursive functions that can be used to check each element - if ( !group ) { - group = tokenize( selector ); - } - i = group.length; - while ( i-- ) { - cached = matcherFromTokens( group[i] ); - if ( cached[ expando ] ) { - setMatchers.push( cached ); - } else { - elementMatchers.push( cached ); - } - } - - // Cache the compiled function - cached = compilerCache( selector, matcherFromGroupMatchers( elementMatchers, setMatchers ) ); - } - return cached; - }; - - function multipleContexts( selector, contexts, results ) { - var i = 0, - len = contexts.length; - for ( ; i < len; i++ ) { - Sizzle( selector, contexts[i], results ); - } - return results; - } - - function select( selector, context, results, seed ) { - var i, tokens, token, type, find, - match = tokenize( selector ); - - if ( !seed ) { - // Try to minimize operations if there is only one group - if ( match.length === 1 ) { - - // Take a shortcut and set the context if the root selector is an ID - tokens = match[0] = match[0].slice( 0 ); - if ( tokens.length > 2 && (token = tokens[0]).type === "ID" && - support.getById && context.nodeType === 9 && documentIsHTML && - Expr.relative[ tokens[1].type ] ) { - - context = ( Expr.find["ID"]( token.matches[0].replace(runescape, funescape), context ) || [] )[0]; - if ( !context ) { - return results; - } - selector = selector.slice( tokens.shift().value.length ); - } - - // Fetch a seed set for right-to-left matching - i = matchExpr["needsContext"].test( selector ) ? 0 : tokens.length; - while ( i-- ) { - token = tokens[i]; - - // Abort if we hit a combinator - if ( Expr.relative[ (type = token.type) ] ) { - break; - } - if ( (find = Expr.find[ type ]) ) { - // Search, expanding context for leading sibling combinators - if ( (seed = find( - token.matches[0].replace( runescape, funescape ), - rsibling.test( tokens[0].type ) && testContext( context.parentNode ) || context - )) ) { - - // If seed is empty or no tokens remain, we can return early - tokens.splice( i, 1 ); - selector = seed.length && toSelector( tokens ); - if ( !selector ) { - push.apply( results, seed ); - return results; - } - - break; - } - } - } - } - } - - // Compile and execute a filtering function - // Provide `match` to avoid retokenization if we modified the selector above - compile( selector, match )( - seed, - context, - !documentIsHTML, - results, - rsibling.test( selector ) && testContext( context.parentNode ) || context - ); - return results; - } - -// One-time assignments - -// Sort stability - support.sortStable = expando.split("").sort( sortOrder ).join("") === expando; - -// Support: Chrome<14 -// Always assume duplicates if they aren't passed to the comparison function - support.detectDuplicates = !!hasDuplicate; - -// Initialize against the default document - setDocument(); - -// Support: Webkit<537.32 - Safari 6.0.3/Chrome 25 (fixed in Chrome 27) -// Detached nodes confoundingly follow *each other* - support.sortDetached = assert(function( div1 ) { - // Should return 1, but returns 4 (following) - return div1.compareDocumentPosition( document.createElement("div") ) & 1; - }); - -// Support: IE<8 -// Prevent attribute/property "interpolation" -// http://msdn.microsoft.com/en-us/library/ms536429%28VS.85%29.aspx - if ( !assert(function( div ) { - div.innerHTML = "<a href='#'></a>"; - return div.firstChild.getAttribute("href") === "#" ; - }) ) { - addHandle( "type|href|height|width", function( elem, name, isXML ) { - if ( !isXML ) { - return elem.getAttribute( name, name.toLowerCase() === "type" ? 1 : 2 ); - } - }); - } - -// Support: IE<9 -// Use defaultValue in place of getAttribute("value") - if ( !support.attributes || !assert(function( div ) { - div.innerHTML = "<input/>"; - div.firstChild.setAttribute( "value", "" ); - return div.firstChild.getAttribute( "value" ) === ""; - }) ) { - addHandle( "value", function( elem, name, isXML ) { - if ( !isXML && elem.nodeName.toLowerCase() === "input" ) { - return elem.defaultValue; - } - }); - } - -// Support: IE<9 -// Use getAttributeNode to fetch booleans when getAttribute lies - if ( !assert(function( div ) { - return div.getAttribute("disabled") == null; - }) ) { - addHandle( booleans, function( elem, name, isXML ) { - var val; - if ( !isXML ) { - return elem[ name ] === true ? name.toLowerCase() : - (val = elem.getAttributeNode( name )) && val.specified ? - val.value : - null; - } - }); - } - - return Sizzle; - - })( window ); - - - - jQuery.find = Sizzle; - jQuery.expr = Sizzle.selectors; - jQuery.expr[":"] = jQuery.expr.pseudos; - jQuery.unique = Sizzle.uniqueSort; - jQuery.text = Sizzle.getText; - jQuery.isXMLDoc = Sizzle.isXML; - jQuery.contains = Sizzle.contains; - - - - var rneedsContext = jQuery.expr.match.needsContext; - - var rsingleTag = (/^<(\w+)\s*\/?>(?:<\/\1>|)$/); - - - - var risSimple = /^.[^:#\[\.,]*$/; - -// Implement the identical functionality for filter and not - function winnow( elements, qualifier, not ) { - if ( jQuery.isFunction( qualifier ) ) { - return jQuery.grep( elements, function( elem, i ) { - /* jshint -W018 */ - return !!qualifier.call( elem, i, elem ) !== not; - }); - - } - - if ( qualifier.nodeType ) { - return jQuery.grep( elements, function( elem ) { - return ( elem === qualifier ) !== not; - }); - - } - - if ( typeof qualifier === "string" ) { - if ( risSimple.test( qualifier ) ) { - return jQuery.filter( qualifier, elements, not ); - } - - qualifier = jQuery.filter( qualifier, elements ); - } - - return jQuery.grep( elements, function( elem ) { - return ( indexOf.call( qualifier, elem ) >= 0 ) !== not; - }); - } - - jQuery.filter = function( expr, elems, not ) { - var elem = elems[ 0 ]; - - if ( not ) { - expr = ":not(" + expr + ")"; - } - - return elems.length === 1 && elem.nodeType === 1 ? - jQuery.find.matchesSelector( elem, expr ) ? [ elem ] : [] : - jQuery.find.matches( expr, jQuery.grep( elems, function( elem ) { - return elem.nodeType === 1; - })); - }; - - jQuery.fn.extend({ - find: function( selector ) { - var i, - len = this.length, - ret = [], - self = this; - - if ( typeof selector !== "string" ) { - return this.pushStack( jQuery( selector ).filter(function() { - for ( i = 0; i < len; i++ ) { - if ( jQuery.contains( self[ i ], this ) ) { - return true; - } - } - }) ); - } - - for ( i = 0; i < len; i++ ) { - jQuery.find( selector, self[ i ], ret ); - } - - // Needed because $( selector, context ) becomes $( context ).find( selector ) - ret = this.pushStack( len > 1 ? jQuery.unique( ret ) : ret ); - ret.selector = this.selector ? this.selector + " " + selector : selector; - return ret; - }, - filter: function( selector ) { - return this.pushStack( winnow(this, selector || [], false) ); - }, - not: function( selector ) { - return this.pushStack( winnow(this, selector || [], true) ); - }, - is: function( selector ) { - return !!winnow( - this, - - // If this is a positional/relative selector, check membership in the returned set - // so $("p:first").is("p:last") won't return true for a doc with two "p". - typeof selector === "string" && rneedsContext.test( selector ) ? - jQuery( selector ) : - selector || [], - false - ).length; - } - }); - - -// Initialize a jQuery object - - -// A central reference to the root jQuery(document) - var rootjQuery, - - // A simple way to check for HTML strings - // Prioritize #id over <tag> to avoid XSS via location.hash (#9521) - // Strict HTML recognition (#11290: must start with <) - rquickExpr = /^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]*))$/, - - init = jQuery.fn.init = function( selector, context ) { - var match, elem; - - // HANDLE: $(""), $(null), $(undefined), $(false) - if ( !selector ) { - return this; - } - - // Handle HTML strings - if ( typeof selector === "string" ) { - if ( selector[0] === "<" && selector[ selector.length - 1 ] === ">" && selector.length >= 3 ) { - // Assume that strings that start and end with <> are HTML and skip the regex check - match = [ null, selector, null ]; - - } else { - match = rquickExpr.exec( selector ); - } - - // Match html or make sure no context is specified for #id - if ( match && (match[1] || !context) ) { - - // HANDLE: $(html) -> $(array) - if ( match[1] ) { - context = context instanceof jQuery ? context[0] : context; - - // scripts is true for back-compat - // Intentionally let the error be thrown if parseHTML is not present - jQuery.merge( this, jQuery.parseHTML( - match[1], - context && context.nodeType ? context.ownerDocument || context : document, - true - ) ); - - // HANDLE: $(html, props) - if ( rsingleTag.test( match[1] ) && jQuery.isPlainObject( context ) ) { - for ( match in context ) { - // Properties of context are called as methods if possible - if ( jQuery.isFunction( this[ match ] ) ) { - this[ match ]( context[ match ] ); - - // ...and otherwise set as attributes - } else { - this.attr( match, context[ match ] ); - } - } - } - - return this; - - // HANDLE: $(#id) - } else { - elem = document.getElementById( match[2] ); - - // Check parentNode to catch when Blackberry 4.6 returns - // nodes that are no longer in the document #6963 - if ( elem && elem.parentNode ) { - // Inject the element directly into the jQuery object - this.length = 1; - this[0] = elem; - } - - this.context = document; - this.selector = selector; - return this; - } - - // HANDLE: $(expr, $(...)) - } else if ( !context || context.jquery ) { - return ( context || rootjQuery ).find( selector ); - - // HANDLE: $(expr, context) - // (which is just equivalent to: $(context).find(expr) - } else { - return this.constructor( context ).find( selector ); - } - - // HANDLE: $(DOMElement) - } else if ( selector.nodeType ) { - this.context = this[0] = selector; - this.length = 1; - return this; - - // HANDLE: $(function) - // Shortcut for document ready - } else if ( jQuery.isFunction( selector ) ) { - return typeof rootjQuery.ready !== "undefined" ? - rootjQuery.ready( selector ) : - // Execute immediately if ready is not present - selector( jQuery ); - } - - if ( selector.selector !== undefined ) { - this.selector = selector.selector; - this.context = selector.context; - } - - return jQuery.makeArray( selector, this ); - }; - -// Give the init function the jQuery prototype for later instantiation - init.prototype = jQuery.fn; - -// Initialize central reference - rootjQuery = jQuery( document ); - - - var rparentsprev = /^(?:parents|prev(?:Until|All))/, - // methods guaranteed to produce a unique set when starting from a unique set - guaranteedUnique = { - children: true, - contents: true, - next: true, - prev: true - }; - - jQuery.extend({ - dir: function( elem, dir, until ) { - var matched = [], - truncate = until !== undefined; - - while ( (elem = elem[ dir ]) && elem.nodeType !== 9 ) { - if ( elem.nodeType === 1 ) { - if ( truncate && jQuery( elem ).is( until ) ) { - break; - } - matched.push( elem ); - } - } - return matched; - }, - - sibling: function( n, elem ) { - var matched = []; - - for ( ; n; n = n.nextSibling ) { - if ( n.nodeType === 1 && n !== elem ) { - matched.push( n ); - } - } - - return matched; - } - }); - - jQuery.fn.extend({ - has: function( target ) { - var targets = jQuery( target, this ), - l = targets.length; - - return this.filter(function() { - var i = 0; - for ( ; i < l; i++ ) { - if ( jQuery.contains( this, targets[i] ) ) { - return true; - } - } - }); - }, - - closest: function( selectors, context ) { - var cur, - i = 0, - l = this.length, - matched = [], - pos = rneedsContext.test( selectors ) || typeof selectors !== "string" ? - jQuery( selectors, context || this.context ) : - 0; - - for ( ; i < l; i++ ) { - for ( cur = this[i]; cur && cur !== context; cur = cur.parentNode ) { - // Always skip document fragments - if ( cur.nodeType < 11 && (pos ? - pos.index(cur) > -1 : - - // Don't pass non-elements to Sizzle - cur.nodeType === 1 && - jQuery.find.matchesSelector(cur, selectors)) ) { - - matched.push( cur ); - break; - } - } - } - - return this.pushStack( matched.length > 1 ? jQuery.unique( matched ) : matched ); - }, - - // Determine the position of an element within - // the matched set of elements - index: function( elem ) { - - // No argument, return index in parent - if ( !elem ) { - return ( this[ 0 ] && this[ 0 ].parentNode ) ? this.first().prevAll().length : -1; - } - - // index in selector - if ( typeof elem === "string" ) { - return indexOf.call( jQuery( elem ), this[ 0 ] ); - } - - // Locate the position of the desired element - return indexOf.call( this, - - // If it receives a jQuery object, the first element is used - elem.jquery ? elem[ 0 ] : elem - ); - }, - - add: function( selector, context ) { - return this.pushStack( - jQuery.unique( - jQuery.merge( this.get(), jQuery( selector, context ) ) - ) - ); - }, - - addBack: function( selector ) { - return this.add( selector == null ? - this.prevObject : this.prevObject.filter(selector) - ); - } - }); - - function sibling( cur, dir ) { - while ( (cur = cur[dir]) && cur.nodeType !== 1 ) {} - return cur; - } - - jQuery.each({ - parent: function( elem ) { - var parent = elem.parentNode; - return parent && parent.nodeType !== 11 ? parent : null; - }, - parents: function( elem ) { - return jQuery.dir( elem, "parentNode" ); - }, - parentsUntil: function( elem, i, until ) { - return jQuery.dir( elem, "parentNode", until ); - }, - next: function( elem ) { - return sibling( elem, "nextSibling" ); - }, - prev: function( elem ) { - return sibling( elem, "previousSibling" ); - }, - nextAll: function( elem ) { - return jQuery.dir( elem, "nextSibling" ); - }, - prevAll: function( elem ) { - return jQuery.dir( elem, "previousSibling" ); - }, - nextUntil: function( elem, i, until ) { - return jQuery.dir( elem, "nextSibling", until ); - }, - prevUntil: function( elem, i, until ) { - return jQuery.dir( elem, "previousSibling", until ); - }, - siblings: function( elem ) { - return jQuery.sibling( ( elem.parentNode || {} ).firstChild, elem ); - }, - children: function( elem ) { - return jQuery.sibling( elem.firstChild ); - }, - contents: function( elem ) { - return elem.contentDocument || jQuery.merge( [], elem.childNodes ); - } - }, function( name, fn ) { - jQuery.fn[ name ] = function( until, selector ) { - var matched = jQuery.map( this, fn, until ); - - if ( name.slice( -5 ) !== "Until" ) { - selector = until; - } - - if ( selector && typeof selector === "string" ) { - matched = jQuery.filter( selector, matched ); - } - - if ( this.length > 1 ) { - // Remove duplicates - if ( !guaranteedUnique[ name ] ) { - jQuery.unique( matched ); - } - - // Reverse order for parents* and prev-derivatives - if ( rparentsprev.test( name ) ) { - matched.reverse(); - } - } - - return this.pushStack( matched ); - }; - }); - var rnotwhite = (/\S+/g); - - - -// String to Object options format cache - var optionsCache = {}; - -// Convert String-formatted options into Object-formatted ones and store in cache - function createOptions( options ) { - var object = optionsCache[ options ] = {}; - jQuery.each( options.match( rnotwhite ) || [], function( _, flag ) { - object[ flag ] = true; - }); - return object; - } - - /* - * Create a callback list using the following parameters: - * - * options: an optional list of space-separated options that will change how - * the callback list behaves or a more traditional option object - * - * By default a callback list will act like an event callback list and can be - * "fired" multiple times. - * - * Possible options: - * - * once: will ensure the callback list can only be fired once (like a Deferred) - * - * memory: will keep track of previous values and will call any callback added - * after the list has been fired right away with the latest "memorized" - * values (like a Deferred) - * - * unique: will ensure a callback can only be added once (no duplicate in the list) - * - * stopOnFalse: interrupt callings when a callback returns false - * - */ - jQuery.Callbacks = function( options ) { - - // Convert options from String-formatted to Object-formatted if needed - // (we check in cache first) - options = typeof options === "string" ? - ( optionsCache[ options ] || createOptions( options ) ) : - jQuery.extend( {}, options ); - - var // Last fire value (for non-forgettable lists) - memory, - // Flag to know if list was already fired - fired, - // Flag to know if list is currently firing - firing, - // First callback to fire (used internally by add and fireWith) - firingStart, - // End of the loop when firing - firingLength, - // Index of currently firing callback (modified by remove if needed) - firingIndex, - // Actual callback list - list = [], - // Stack of fire calls for repeatable lists - stack = !options.once && [], - // Fire callbacks - fire = function( data ) { - memory = options.memory && data; - fired = true; - firingIndex = firingStart || 0; - firingStart = 0; - firingLength = list.length; - firing = true; - for ( ; list && firingIndex < firingLength; firingIndex++ ) { - if ( list[ firingIndex ].apply( data[ 0 ], data[ 1 ] ) === false && options.stopOnFalse ) { - memory = false; // To prevent further calls using add - break; - } - } - firing = false; - if ( list ) { - if ( stack ) { - if ( stack.length ) { - fire( stack.shift() ); - } - } else if ( memory ) { - list = []; - } else { - self.disable(); - } - } - }, - // Actual Callbacks object - self = { - // Add a callback or a collection of callbacks to the list - add: function() { - if ( list ) { - // First, we save the current length - var start = list.length; - (function add( args ) { - jQuery.each( args, function( _, arg ) { - var type = jQuery.type( arg ); - if ( type === "function" ) { - if ( !options.unique || !self.has( arg ) ) { - list.push( arg ); - } - } else if ( arg && arg.length && type !== "string" ) { - // Inspect recursively - add( arg ); - } - }); - })( arguments ); - // Do we need to add the callbacks to the - // current firing batch? - if ( firing ) { - firingLength = list.length; - // With memory, if we're not firing then - // we should call right away - } else if ( memory ) { - firingStart = start; - fire( memory ); - } - } - return this; - }, - // Remove a callback from the list - remove: function() { - if ( list ) { - jQuery.each( arguments, function( _, arg ) { - var index; - while ( ( index = jQuery.inArray( arg, list, index ) ) > -1 ) { - list.splice( index, 1 ); - // Handle firing indexes - if ( firing ) { - if ( index <= firingLength ) { - firingLength--; - } - if ( index <= firingIndex ) { - firingIndex--; - } - } - } - }); - } - return this; - }, - // Check if a given callback is in the list. - // If no argument is given, return whether or not list has callbacks attached. - has: function( fn ) { - return fn ? jQuery.inArray( fn, list ) > -1 : !!( list && list.length ); - }, - // Remove all callbacks from the list - empty: function() { - list = []; - firingLength = 0; - return this; - }, - // Have the list do nothing anymore - disable: function() { - list = stack = memory = undefined; - return this; - }, - // Is it disabled? - disabled: function() { - return !list; - }, - // Lock the list in its current state - lock: function() { - stack = undefined; - if ( !memory ) { - self.disable(); - } - return this; - }, - // Is it locked? - locked: function() { - return !stack; - }, - // Call all callbacks with the given context and arguments - fireWith: function( context, args ) { - if ( list && ( !fired || stack ) ) { - args = args || []; - args = [ context, args.slice ? args.slice() : args ]; - if ( firing ) { - stack.push( args ); - } else { - fire( args ); - } - } - return this; - }, - // Call all the callbacks with the given arguments - fire: function() { - self.fireWith( this, arguments ); - return this; - }, - // To know if the callbacks have already been called at least once - fired: function() { - return !!fired; - } - }; - - return self; - }; - - - jQuery.extend({ - - Deferred: function( func ) { - var tuples = [ - // action, add listener, listener list, final state - [ "resolve", "done", jQuery.Callbacks("once memory"), "resolved" ], - [ "reject", "fail", jQuery.Callbacks("once memory"), "rejected" ], - [ "notify", "progress", jQuery.Callbacks("memory") ] - ], - state = "pending", - promise = { - state: function() { - return state; - }, - always: function() { - deferred.done( arguments ).fail( arguments ); - return this; - }, - then: function( /* fnDone, fnFail, fnProgress */ ) { - var fns = arguments; - return jQuery.Deferred(function( newDefer ) { - jQuery.each( tuples, function( i, tuple ) { - var fn = jQuery.isFunction( fns[ i ] ) && fns[ i ]; - // deferred[ done | fail | progress ] for forwarding actions to newDefer - deferred[ tuple[1] ](function() { - var returned = fn && fn.apply( this, arguments ); - if ( returned && jQuery.isFunction( returned.promise ) ) { - returned.promise() - .done( newDefer.resolve ) - .fail( newDefer.reject ) - .progress( newDefer.notify ); - } else { - newDefer[ tuple[ 0 ] + "With" ]( this === promise ? newDefer.promise() : this, fn ? [ returned ] : arguments ); - } - }); - }); - fns = null; - }).promise(); - }, - // Get a promise for this deferred - // If obj is provided, the promise aspect is added to the object - promise: function( obj ) { - return obj != null ? jQuery.extend( obj, promise ) : promise; - } - }, - deferred = {}; - - // Keep pipe for back-compat - promise.pipe = promise.then; - - // Add list-specific methods - jQuery.each( tuples, function( i, tuple ) { - var list = tuple[ 2 ], - stateString = tuple[ 3 ]; - - // promise[ done | fail | progress ] = list.add - promise[ tuple[1] ] = list.add; - - // Handle state - if ( stateString ) { - list.add(function() { - // state = [ resolved | rejected ] - state = stateString; - - // [ reject_list | resolve_list ].disable; progress_list.lock - }, tuples[ i ^ 1 ][ 2 ].disable, tuples[ 2 ][ 2 ].lock ); - } - - // deferred[ resolve | reject | notify ] - deferred[ tuple[0] ] = function() { - deferred[ tuple[0] + "With" ]( this === deferred ? promise : this, arguments ); - return this; - }; - deferred[ tuple[0] + "With" ] = list.fireWith; - }); - - // Make the deferred a promise - promise.promise( deferred ); - - // Call given func if any - if ( func ) { - func.call( deferred, deferred ); - } - - // All done! - return deferred; - }, - - // Deferred helper - when: function( subordinate /* , ..., subordinateN */ ) { - var i = 0, - resolveValues = slice.call( arguments ), - length = resolveValues.length, - - // the count of uncompleted subordinates - remaining = length !== 1 || ( subordinate && jQuery.isFunction( subordinate.promise ) ) ? length : 0, - - // the master Deferred. If resolveValues consist of only a single Deferred, just use that. - deferred = remaining === 1 ? subordinate : jQuery.Deferred(), - - // Update function for both resolve and progress values - updateFunc = function( i, contexts, values ) { - return function( value ) { - contexts[ i ] = this; - values[ i ] = arguments.length > 1 ? slice.call( arguments ) : value; - if ( values === progressValues ) { - deferred.notifyWith( contexts, values ); - } else if ( !( --remaining ) ) { - deferred.resolveWith( contexts, values ); - } - }; - }, - - progressValues, progressContexts, resolveContexts; - - // add listeners to Deferred subordinates; treat others as resolved - if ( length > 1 ) { - progressValues = new Array( length ); - progressContexts = new Array( length ); - resolveContexts = new Array( length ); - for ( ; i < length; i++ ) { - if ( resolveValues[ i ] && jQuery.isFunction( resolveValues[ i ].promise ) ) { - resolveValues[ i ].promise() - .done( updateFunc( i, resolveContexts, resolveValues ) ) - .fail( deferred.reject ) - .progress( updateFunc( i, progressContexts, progressValues ) ); - } else { - --remaining; - } - } - } - - // if we're not waiting on anything, resolve the master - if ( !remaining ) { - deferred.resolveWith( resolveContexts, resolveValues ); - } - - return deferred.promise(); - } - }); - - -// The deferred used on DOM ready - var readyList; - - jQuery.fn.ready = function( fn ) { - // Add the callback - jQuery.ready.promise().done( fn ); - - return this; - }; - - jQuery.extend({ - // Is the DOM ready to be used? Set to true once it occurs. - isReady: false, - - // A counter to track how many items to wait for before - // the ready event fires. See #6781 - readyWait: 1, - - // Hold (or release) the ready event - holdReady: function( hold ) { - if ( hold ) { - jQuery.readyWait++; - } else { - jQuery.ready( true ); - } - }, - - // Handle when the DOM is ready - ready: function( wait ) { - - // Abort if there are pending holds or we're already ready - if ( wait === true ? --jQuery.readyWait : jQuery.isReady ) { - return; - } - - // Remember that the DOM is ready - jQuery.isReady = true; - - // If a normal DOM Ready event fired, decrement, and wait if need be - if ( wait !== true && --jQuery.readyWait > 0 ) { - return; - } - - // If there are functions bound, to execute - readyList.resolveWith( document, [ jQuery ] ); - - // Trigger any bound ready events - if ( jQuery.fn.trigger ) { - jQuery( document ).trigger("ready").off("ready"); - } - } - }); - - /** - * The ready event handler and self cleanup method - */ - function completed() { - document.removeEventListener( "DOMContentLoaded", completed, false ); - window.removeEventListener( "load", completed, false ); - jQuery.ready(); - } - - jQuery.ready.promise = function( obj ) { - if ( !readyList ) { - - readyList = jQuery.Deferred(); - - // Catch cases where $(document).ready() is called after the browser event has already occurred. - // we once tried to use readyState "interactive" here, but it caused issues like the one - // discovered by ChrisS here: http://bugs.jquery.com/ticket/12282#comment:15 - if ( document.readyState === "complete" ) { - // Handle it asynchronously to allow scripts the opportunity to delay ready - setTimeout( jQuery.ready ); - - } else { - - // Use the handy event callback - document.addEventListener( "DOMContentLoaded", completed, false ); - - // A fallback to window.onload, that will always work - window.addEventListener( "load", completed, false ); - } - } - return readyList.promise( obj ); - }; - -// Kick off the DOM ready check even if the user does not - jQuery.ready.promise(); - - - - -// Multifunctional method to get and set values of a collection -// The value/s can optionally be executed if it's a function - var access = jQuery.access = function( elems, fn, key, value, chainable, emptyGet, raw ) { - var i = 0, - len = elems.length, - bulk = key == null; - - // Sets many values - if ( jQuery.type( key ) === "object" ) { - chainable = true; - for ( i in key ) { - jQuery.access( elems, fn, i, key[i], true, emptyGet, raw ); - } - - // Sets one value - } else if ( value !== undefined ) { - chainable = true; - - if ( !jQuery.isFunction( value ) ) { - raw = true; - } - - if ( bulk ) { - // Bulk operations run against the entire set - if ( raw ) { - fn.call( elems, value ); - fn = null; - - // ...except when executing function values - } else { - bulk = fn; - fn = function( elem, key, value ) { - return bulk.call( jQuery( elem ), value ); - }; - } - } - - if ( fn ) { - for ( ; i < len; i++ ) { - fn( elems[i], key, raw ? value : value.call( elems[i], i, fn( elems[i], key ) ) ); - } - } - } - - return chainable ? - elems : - - // Gets - bulk ? - fn.call( elems ) : - len ? fn( elems[0], key ) : emptyGet; - }; - - - /** - * Determines whether an object can have data - */ - jQuery.acceptData = function( owner ) { - // Accepts only: - // - Node - // - Node.ELEMENT_NODE - // - Node.DOCUMENT_NODE - // - Object - // - Any - /* jshint -W018 */ - return owner.nodeType === 1 || owner.nodeType === 9 || !( +owner.nodeType ); - }; - - - function Data() { - // Support: Android < 4, - // Old WebKit does not have Object.preventExtensions/freeze method, - // return new empty object instead with no [[set]] accessor - Object.defineProperty( this.cache = {}, 0, { - get: function() { - return {}; - } - }); - - this.expando = jQuery.expando + Math.random(); - } - - Data.uid = 1; - Data.accepts = jQuery.acceptData; - - Data.prototype = { - key: function( owner ) { - // We can accept data for non-element nodes in modern browsers, - // but we should not, see #8335. - // Always return the key for a frozen object. - if ( !Data.accepts( owner ) ) { - return 0; - } - - var descriptor = {}, - // Check if the owner object already has a cache key - unlock = owner[ this.expando ]; - - // If not, create one - if ( !unlock ) { - unlock = Data.uid++; - - // Secure it in a non-enumerable, non-writable property - try { - descriptor[ this.expando ] = { value: unlock }; - Object.defineProperties( owner, descriptor ); - - // Support: Android < 4 - // Fallback to a less secure definition - } catch ( e ) { - descriptor[ this.expando ] = unlock; - jQuery.extend( owner, descriptor ); - } - } - - // Ensure the cache object - if ( !this.cache[ unlock ] ) { - this.cache[ unlock ] = {}; - } - - return unlock; - }, - set: function( owner, data, value ) { - var prop, - // There may be an unlock assigned to this node, - // if there is no entry for this "owner", create one inline - // and set the unlock as though an owner entry had always existed - unlock = this.key( owner ), - cache = this.cache[ unlock ]; - - // Handle: [ owner, key, value ] args - if ( typeof data === "string" ) { - cache[ data ] = value; - - // Handle: [ owner, { properties } ] args - } else { - // Fresh assignments by object are shallow copied - if ( jQuery.isEmptyObject( cache ) ) { - jQuery.extend( this.cache[ unlock ], data ); - // Otherwise, copy the properties one-by-one to the cache object - } else { - for ( prop in data ) { - cache[ prop ] = data[ prop ]; - } - } - } - return cache; - }, - get: function( owner, key ) { - // Either a valid cache is found, or will be created. - // New caches will be created and the unlock returned, - // allowing direct access to the newly created - // empty data object. A valid owner object must be provided. - var cache = this.cache[ this.key( owner ) ]; - - return key === undefined ? - cache : cache[ key ]; - }, - access: function( owner, key, value ) { - var stored; - // In cases where either: - // - // 1. No key was specified - // 2. A string key was specified, but no value provided - // - // Take the "read" path and allow the get method to determine - // which value to return, respectively either: - // - // 1. The entire cache object - // 2. The data stored at the key - // - if ( key === undefined || - ((key && typeof key === "string") && value === undefined) ) { - - stored = this.get( owner, key ); - - return stored !== undefined ? - stored : this.get( owner, jQuery.camelCase(key) ); - } - - // [*]When the key is not a string, or both a key and value - // are specified, set or extend (existing objects) with either: - // - // 1. An object of properties - // 2. A key and value - // - this.set( owner, key, value ); - - // Since the "set" path can have two possible entry points - // return the expected data based on which path was taken[*] - return value !== undefined ? value : key; - }, - remove: function( owner, key ) { - var i, name, camel, - unlock = this.key( owner ), - cache = this.cache[ unlock ]; - - if ( key === undefined ) { - this.cache[ unlock ] = {}; - - } else { - // Support array or space separated string of keys - if ( jQuery.isArray( key ) ) { - // If "name" is an array of keys... - // When data is initially created, via ("key", "val") signature, - // keys will be converted to camelCase. - // Since there is no way to tell _how_ a key was added, remove - // both plain key and camelCase key. #12786 - // This will only penalize the array argument path. - name = key.concat( key.map( jQuery.camelCase ) ); - } else { - camel = jQuery.camelCase( key ); - // Try the string as a key before any manipulation - if ( key in cache ) { - name = [ key, camel ]; - } else { - // If a key with the spaces exists, use it. - // Otherwise, create an array by matching non-whitespace - name = camel; - name = name in cache ? - [ name ] : ( name.match( rnotwhite ) || [] ); - } - } - - i = name.length; - while ( i-- ) { - delete cache[ name[ i ] ]; - } - } - }, - hasData: function( owner ) { - return !jQuery.isEmptyObject( - this.cache[ owner[ this.expando ] ] || {} - ); - }, - discard: function( owner ) { - if ( owner[ this.expando ] ) { - delete this.cache[ owner[ this.expando ] ]; - } - } - }; - var data_priv = new Data(); - - var data_user = new Data(); - - - - /* - Implementation Summary - - 1. Enforce API surface and semantic compatibility with 1.9.x branch - 2. Improve the module's maintainability by reducing the storage - paths to a single mechanism. - 3. Use the same single mechanism to support "private" and "user" data. - 4. _Never_ expose "private" data to user code (TODO: Drop _data, _removeData) - 5. Avoid exposing implementation details on user objects (eg. expando properties) - 6. Provide a clear path for implementation upgrade to WeakMap in 2014 - */ - var rbrace = /^(?:\{[\w\W]*\}|\[[\w\W]*\])$/, - rmultiDash = /([A-Z])/g; - - function dataAttr( elem, key, data ) { - var name; - - // If nothing was found internally, try to fetch any - // data from the HTML5 data-* attribute - if ( data === undefined && elem.nodeType === 1 ) { - name = "data-" + key.replace( rmultiDash, "-$1" ).toLowerCase(); - data = elem.getAttribute( name ); - - if ( typeof data === "string" ) { - try { - data = data === "true" ? true : - data === "false" ? false : - data === "null" ? null : - // Only convert to a number if it doesn't change the string - +data + "" === data ? +data : - rbrace.test( data ) ? jQuery.parseJSON( data ) : - data; - } catch( e ) {} - - // Make sure we set the data so it isn't changed later - data_user.set( elem, key, data ); - } else { - data = undefined; - } - } - return data; - } - - jQuery.extend({ - hasData: function( elem ) { - return data_user.hasData( elem ) || data_priv.hasData( elem ); - }, - - data: function( elem, name, data ) { - return data_user.access( elem, name, data ); - }, - - removeData: function( elem, name ) { - data_user.remove( elem, name ); - }, - - // TODO: Now that all calls to _data and _removeData have been replaced - // with direct calls to data_priv methods, these can be deprecated. - _data: function( elem, name, data ) { - return data_priv.access( elem, name, data ); - }, - - _removeData: function( elem, name ) { - data_priv.remove( elem, name ); - } - }); - - jQuery.fn.extend({ - data: function( key, value ) { - var i, name, data, - elem = this[ 0 ], - attrs = elem && elem.attributes; - - // Gets all values - if ( key === undefined ) { - if ( this.length ) { - data = data_user.get( elem ); - - if ( elem.nodeType === 1 && !data_priv.get( elem, "hasDataAttrs" ) ) { - i = attrs.length; - while ( i-- ) { - name = attrs[ i ].name; - - if ( name.indexOf( "data-" ) === 0 ) { - name = jQuery.camelCase( name.slice(5) ); - dataAttr( elem, name, data[ name ] ); - } - } - data_priv.set( elem, "hasDataAttrs", true ); - } - } - - return data; - } - - // Sets multiple values - if ( typeof key === "object" ) { - return this.each(function() { - data_user.set( this, key ); - }); - } - - return access( this, function( value ) { - var data, - camelKey = jQuery.camelCase( key ); - - // The calling jQuery object (element matches) is not empty - // (and therefore has an element appears at this[ 0 ]) and the - // `value` parameter was not undefined. An empty jQuery object - // will result in `undefined` for elem = this[ 0 ] which will - // throw an exception if an attempt to read a data cache is made. - if ( elem && value === undefined ) { - // Attempt to get data from the cache - // with the key as-is - data = data_user.get( elem, key ); - if ( data !== undefined ) { - return data; - } - - // Attempt to get data from the cache - // with the key camelized - data = data_user.get( elem, camelKey ); - if ( data !== undefined ) { - return data; - } - - // Attempt to "discover" the data in - // HTML5 custom data-* attrs - data = dataAttr( elem, camelKey, undefined ); - if ( data !== undefined ) { - return data; - } - - // We tried really hard, but the data doesn't exist. - return; - } - - // Set the data... - this.each(function() { - // First, attempt to store a copy or reference of any - // data that might've been store with a camelCased key. - var data = data_user.get( this, camelKey ); - - // For HTML5 data-* attribute interop, we have to - // store property names with dashes in a camelCase form. - // This might not apply to all properties...* - data_user.set( this, camelKey, value ); - - // *... In the case of properties that might _actually_ - // have dashes, we need to also store a copy of that - // unchanged property. - if ( key.indexOf("-") !== -1 && data !== undefined ) { - data_user.set( this, key, value ); - } - }); - }, null, value, arguments.length > 1, null, true ); - }, - - removeData: function( key ) { - return this.each(function() { - data_user.remove( this, key ); - }); - } - }); - - - jQuery.extend({ - queue: function( elem, type, data ) { - var queue; - - if ( elem ) { - type = ( type || "fx" ) + "queue"; - queue = data_priv.get( elem, type ); - - // Speed up dequeue by getting out quickly if this is just a lookup - if ( data ) { - if ( !queue || jQuery.isArray( data ) ) { - queue = data_priv.access( elem, type, jQuery.makeArray(data) ); - } else { - queue.push( data ); - } - } - return queue || []; - } - }, - - dequeue: function( elem, type ) { - type = type || "fx"; - - var queue = jQuery.queue( elem, type ), - startLength = queue.length, - fn = queue.shift(), - hooks = jQuery._queueHooks( elem, type ), - next = function() { - jQuery.dequeue( elem, type ); - }; - - // If the fx queue is dequeued, always remove the progress sentinel - if ( fn === "inprogress" ) { - fn = queue.shift(); - startLength--; - } - - if ( fn ) { - - // Add a progress sentinel to prevent the fx queue from being - // automatically dequeued - if ( type === "fx" ) { - queue.unshift( "inprogress" ); - } - - // clear up the last queue stop function - delete hooks.stop; - fn.call( elem, next, hooks ); - } - - if ( !startLength && hooks ) { - hooks.empty.fire(); - } - }, - - // not intended for public consumption - generates a queueHooks object, or returns the current one - _queueHooks: function( elem, type ) { - var key = type + "queueHooks"; - return data_priv.get( elem, key ) || data_priv.access( elem, key, { - empty: jQuery.Callbacks("once memory").add(function() { - data_priv.remove( elem, [ type + "queue", key ] ); - }) - }); - } - }); - - jQuery.fn.extend({ - queue: function( type, data ) { - var setter = 2; - - if ( typeof type !== "string" ) { - data = type; - type = "fx"; - setter--; - } - - if ( arguments.length < setter ) { - return jQuery.queue( this[0], type ); - } - - return data === undefined ? - this : - this.each(function() { - var queue = jQuery.queue( this, type, data ); - - // ensure a hooks for this queue - jQuery._queueHooks( this, type ); - - if ( type === "fx" && queue[0] !== "inprogress" ) { - jQuery.dequeue( this, type ); - } - }); - }, - dequeue: function( type ) { - return this.each(function() { - jQuery.dequeue( this, type ); - }); - }, - clearQueue: function( type ) { - return this.queue( type || "fx", [] ); - }, - // Get a promise resolved when queues of a certain type - // are emptied (fx is the type by default) - promise: function( type, obj ) { - var tmp, - count = 1, - defer = jQuery.Deferred(), - elements = this, - i = this.length, - resolve = function() { - if ( !( --count ) ) { - defer.resolveWith( elements, [ elements ] ); - } - }; - - if ( typeof type !== "string" ) { - obj = type; - type = undefined; - } - type = type || "fx"; - - while ( i-- ) { - tmp = data_priv.get( elements[ i ], type + "queueHooks" ); - if ( tmp && tmp.empty ) { - count++; - tmp.empty.add( resolve ); - } - } - resolve(); - return defer.promise( obj ); - } - }); - var pnum = (/[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/).source; - - var cssExpand = [ "Top", "Right", "Bottom", "Left" ]; - - var isHidden = function( elem, el ) { - // isHidden might be called from jQuery#filter function; - // in that case, element will be second argument - elem = el || elem; - return jQuery.css( elem, "display" ) === "none" || !jQuery.contains( elem.ownerDocument, elem ); - }; - - var rcheckableType = (/^(?:checkbox|radio)$/i); - - - - (function() { - var fragment = document.createDocumentFragment(), - div = fragment.appendChild( document.createElement( "div" ) ); - - // #11217 - WebKit loses check when the name is after the checked attribute - div.innerHTML = "<input type='radio' checked='checked' name='t'/>"; - - // Support: Safari 5.1, iOS 5.1, Android 4.x, Android 2.3 - // old WebKit doesn't clone checked state correctly in fragments - support.checkClone = div.cloneNode( true ).cloneNode( true ).lastChild.checked; - - // Make sure textarea (and checkbox) defaultValue is properly cloned - // Support: IE9-IE11+ - div.innerHTML = "<textarea>x</textarea>"; - support.noCloneChecked = !!div.cloneNode( true ).lastChild.defaultValue; - })(); - var strundefined = typeof undefined; - - - - support.focusinBubbles = "onfocusin" in window; - - - var - rkeyEvent = /^key/, - rmouseEvent = /^(?:mouse|contextmenu)|click/, - rfocusMorph = /^(?:focusinfocus|focusoutblur)$/, - rtypenamespace = /^([^.]*)(?:\.(.+)|)$/; - - function returnTrue() { - return true; - } - - function returnFalse() { - return false; - } - - function safeActiveElement() { - try { - return document.activeElement; - } catch ( err ) { } - } - - /* - * Helper functions for managing events -- not part of the public interface. - * Props to Dean Edwards' addEvent library for many of the ideas. - */ - jQuery.event = { - - global: {}, - - add: function( elem, types, handler, data, selector ) { - - var handleObjIn, eventHandle, tmp, - events, t, handleObj, - special, handlers, type, namespaces, origType, - elemData = data_priv.get( elem ); - - // Don't attach events to noData or text/comment nodes (but allow plain objects) - if ( !elemData ) { - return; - } - - // Caller can pass in an object of custom data in lieu of the handler - if ( handler.handler ) { - handleObjIn = handler; - handler = handleObjIn.handler; - selector = handleObjIn.selector; - } - - // Make sure that the handler has a unique ID, used to find/remove it later - if ( !handler.guid ) { - handler.guid = jQuery.guid++; - } - - // Init the element's event structure and main handler, if this is the first - if ( !(events = elemData.events) ) { - events = elemData.events = {}; - } - if ( !(eventHandle = elemData.handle) ) { - eventHandle = elemData.handle = function( e ) { - // Discard the second event of a jQuery.event.trigger() and - // when an event is called after a page has unloaded - return typeof jQuery !== strundefined && jQuery.event.triggered !== e.type ? - jQuery.event.dispatch.apply( elem, arguments ) : undefined; - }; - } - - // Handle multiple events separated by a space - types = ( types || "" ).match( rnotwhite ) || [ "" ]; - t = types.length; - while ( t-- ) { - tmp = rtypenamespace.exec( types[t] ) || []; - type = origType = tmp[1]; - namespaces = ( tmp[2] || "" ).split( "." ).sort(); - - // There *must* be a type, no attaching namespace-only handlers - if ( !type ) { - continue; - } - - // If event changes its type, use the special event handlers for the changed type - special = jQuery.event.special[ type ] || {}; - - // If selector defined, determine special event api type, otherwise given type - type = ( selector ? special.delegateType : special.bindType ) || type; - - // Update special based on newly reset type - special = jQuery.event.special[ type ] || {}; - - // handleObj is passed to all event handlers - handleObj = jQuery.extend({ - type: type, - origType: origType, - data: data, - handler: handler, - guid: handler.guid, - selector: selector, - needsContext: selector && jQuery.expr.match.needsContext.test( selector ), - namespace: namespaces.join(".") - }, handleObjIn ); - - // Init the event handler queue if we're the first - if ( !(handlers = events[ type ]) ) { - handlers = events[ type ] = []; - handlers.delegateCount = 0; - - // Only use addEventListener if the special events handler returns false - if ( !special.setup || special.setup.call( elem, data, namespaces, eventHandle ) === false ) { - if ( elem.addEventListener ) { - elem.addEventListener( type, eventHandle, false ); - } - } - } - - if ( special.add ) { - special.add.call( elem, handleObj ); - - if ( !handleObj.handler.guid ) { - handleObj.handler.guid = handler.guid; - } - } - - // Add to the element's handler list, delegates in front - if ( selector ) { - handlers.splice( handlers.delegateCount++, 0, handleObj ); - } else { - handlers.push( handleObj ); - } - - // Keep track of which events have ever been used, for event optimization - jQuery.event.global[ type ] = true; - } - - }, - - // Detach an event or set of events from an element - remove: function( elem, types, handler, selector, mappedTypes ) { - - var j, origCount, tmp, - events, t, handleObj, - special, handlers, type, namespaces, origType, - elemData = data_priv.hasData( elem ) && data_priv.get( elem ); - - if ( !elemData || !(events = elemData.events) ) { - return; - } - - // Once for each type.namespace in types; type may be omitted - types = ( types || "" ).match( rnotwhite ) || [ "" ]; - t = types.length; - while ( t-- ) { - tmp = rtypenamespace.exec( types[t] ) || []; - type = origType = tmp[1]; - namespaces = ( tmp[2] || "" ).split( "." ).sort(); - - // Unbind all events (on this namespace, if provided) for the element - if ( !type ) { - for ( type in events ) { - jQuery.event.remove( elem, type + types[ t ], handler, selector, true ); - } - continue; - } - - special = jQuery.event.special[ type ] || {}; - type = ( selector ? special.delegateType : special.bindType ) || type; - handlers = events[ type ] || []; - tmp = tmp[2] && new RegExp( "(^|\\.)" + namespaces.join("\\.(?:.*\\.|)") + "(\\.|$)" ); - - // Remove matching events - origCount = j = handlers.length; - while ( j-- ) { - handleObj = handlers[ j ]; - - if ( ( mappedTypes || origType === handleObj.origType ) && - ( !handler || handler.guid === handleObj.guid ) && - ( !tmp || tmp.test( handleObj.namespace ) ) && - ( !selector || selector === handleObj.selector || selector === "**" && handleObj.selector ) ) { - handlers.splice( j, 1 ); - - if ( handleObj.selector ) { - handlers.delegateCount--; - } - if ( special.remove ) { - special.remove.call( elem, handleObj ); - } - } - } - - // Remove generic event handler if we removed something and no more handlers exist - // (avoids potential for endless recursion during removal of special event handlers) - if ( origCount && !handlers.length ) { - if ( !special.teardown || special.teardown.call( elem, namespaces, elemData.handle ) === false ) { - jQuery.removeEvent( elem, type, elemData.handle ); - } - - delete events[ type ]; - } - } - - // Remove the expando if it's no longer used - if ( jQuery.isEmptyObject( events ) ) { - delete elemData.handle; - data_priv.remove( elem, "events" ); - } - }, - - trigger: function( event, data, elem, onlyHandlers ) { - - var i, cur, tmp, bubbleType, ontype, handle, special, - eventPath = [ elem || document ], - type = hasOwn.call( event, "type" ) ? event.type : event, - namespaces = hasOwn.call( event, "namespace" ) ? event.namespace.split(".") : []; - - cur = tmp = elem = elem || document; - - // Don't do events on text and comment nodes - if ( elem.nodeType === 3 || elem.nodeType === 8 ) { - return; - } - - // focus/blur morphs to focusin/out; ensure we're not firing them right now - if ( rfocusMorph.test( type + jQuery.event.triggered ) ) { - return; - } - - if ( type.indexOf(".") >= 0 ) { - // Namespaced trigger; create a regexp to match event type in handle() - namespaces = type.split("."); - type = namespaces.shift(); - namespaces.sort(); - } - ontype = type.indexOf(":") < 0 && "on" + type; - - // Caller can pass in a jQuery.Event object, Object, or just an event type string - event = event[ jQuery.expando ] ? - event : - new jQuery.Event( type, typeof event === "object" && event ); - - // Trigger bitmask: & 1 for native handlers; & 2 for jQuery (always true) - event.isTrigger = onlyHandlers ? 2 : 3; - event.namespace = namespaces.join("."); - event.namespace_re = event.namespace ? - new RegExp( "(^|\\.)" + namespaces.join("\\.(?:.*\\.|)") + "(\\.|$)" ) : - null; - - // Clean up the event in case it is being reused - event.result = undefined; - if ( !event.target ) { - event.target = elem; - } - - // Clone any incoming data and prepend the event, creating the handler arg list - data = data == null ? - [ event ] : - jQuery.makeArray( data, [ event ] ); - - // Allow special events to draw outside the lines - special = jQuery.event.special[ type ] || {}; - if ( !onlyHandlers && special.trigger && special.trigger.apply( elem, data ) === false ) { - return; - } - - // Determine event propagation path in advance, per W3C events spec (#9951) - // Bubble up to document, then to window; watch for a global ownerDocument var (#9724) - if ( !onlyHandlers && !special.noBubble && !jQuery.isWindow( elem ) ) { - - bubbleType = special.delegateType || type; - if ( !rfocusMorph.test( bubbleType + type ) ) { - cur = cur.parentNode; - } - for ( ; cur; cur = cur.parentNode ) { - eventPath.push( cur ); - tmp = cur; - } - - // Only add window if we got to document (e.g., not plain obj or detached DOM) - if ( tmp === (elem.ownerDocument || document) ) { - eventPath.push( tmp.defaultView || tmp.parentWindow || window ); - } - } - - // Fire handlers on the event path - i = 0; - while ( (cur = eventPath[i++]) && !event.isPropagationStopped() ) { - - event.type = i > 1 ? - bubbleType : - special.bindType || type; - - // jQuery handler - handle = ( data_priv.get( cur, "events" ) || {} )[ event.type ] && data_priv.get( cur, "handle" ); - if ( handle ) { - handle.apply( cur, data ); - } - - // Native handler - handle = ontype && cur[ ontype ]; - if ( handle && handle.apply && jQuery.acceptData( cur ) ) { - event.result = handle.apply( cur, data ); - if ( event.result === false ) { - event.preventDefault(); - } - } - } - event.type = type; - - // If nobody prevented the default action, do it now - if ( !onlyHandlers && !event.isDefaultPrevented() ) { - - if ( (!special._default || special._default.apply( eventPath.pop(), data ) === false) && - jQuery.acceptData( elem ) ) { - - // Call a native DOM method on the target with the same name name as the event. - // Don't do default actions on window, that's where global variables be (#6170) - if ( ontype && jQuery.isFunction( elem[ type ] ) && !jQuery.isWindow( elem ) ) { - - // Don't re-trigger an onFOO event when we call its FOO() method - tmp = elem[ ontype ]; - - if ( tmp ) { - elem[ ontype ] = null; - } - - // Prevent re-triggering of the same event, since we already bubbled it above - jQuery.event.triggered = type; - elem[ type ](); - jQuery.event.triggered = undefined; - - if ( tmp ) { - elem[ ontype ] = tmp; - } - } - } - } - - return event.result; - }, - - dispatch: function( event ) { - - // Make a writable jQuery.Event from the native event object - event = jQuery.event.fix( event ); - - var i, j, ret, matched, handleObj, - handlerQueue = [], - args = slice.call( arguments ), - handlers = ( data_priv.get( this, "events" ) || {} )[ event.type ] || [], - special = jQuery.event.special[ event.type ] || {}; - - // Use the fix-ed jQuery.Event rather than the (read-only) native event - args[0] = event; - event.delegateTarget = this; - - // Call the preDispatch hook for the mapped type, and let it bail if desired - if ( special.preDispatch && special.preDispatch.call( this, event ) === false ) { - return; - } - - // Determine handlers - handlerQueue = jQuery.event.handlers.call( this, event, handlers ); - - // Run delegates first; they may want to stop propagation beneath us - i = 0; - while ( (matched = handlerQueue[ i++ ]) && !event.isPropagationStopped() ) { - event.currentTarget = matched.elem; - - j = 0; - while ( (handleObj = matched.handlers[ j++ ]) && !event.isImmediatePropagationStopped() ) { - - // Triggered event must either 1) have no namespace, or - // 2) have namespace(s) a subset or equal to those in the bound event (both can have no namespace). - if ( !event.namespace_re || event.namespace_re.test( handleObj.namespace ) ) { - - event.handleObj = handleObj; - event.data = handleObj.data; - - ret = ( (jQuery.event.special[ handleObj.origType ] || {}).handle || handleObj.handler ) - .apply( matched.elem, args ); - - if ( ret !== undefined ) { - if ( (event.result = ret) === false ) { - event.preventDefault(); - event.stopPropagation(); - } - } - } - } - } - - // Call the postDispatch hook for the mapped type - if ( special.postDispatch ) { - special.postDispatch.call( this, event ); - } - - return event.result; - }, - - handlers: function( event, handlers ) { - var i, matches, sel, handleObj, - handlerQueue = [], - delegateCount = handlers.delegateCount, - cur = event.target; - - // Find delegate handlers - // Black-hole SVG <use> instance trees (#13180) - // Avoid non-left-click bubbling in Firefox (#3861) - if ( delegateCount && cur.nodeType && (!event.button || event.type !== "click") ) { - - for ( ; cur !== this; cur = cur.parentNode || this ) { - - // Don't process clicks on disabled elements (#6911, #8165, #11382, #11764) - if ( cur.disabled !== true || event.type !== "click" ) { - matches = []; - for ( i = 0; i < delegateCount; i++ ) { - handleObj = handlers[ i ]; - - // Don't conflict with Object.prototype properties (#13203) - sel = handleObj.selector + " "; - - if ( matches[ sel ] === undefined ) { - matches[ sel ] = handleObj.needsContext ? - jQuery( sel, this ).index( cur ) >= 0 : - jQuery.find( sel, this, null, [ cur ] ).length; - } - if ( matches[ sel ] ) { - matches.push( handleObj ); - } - } - if ( matches.length ) { - handlerQueue.push({ elem: cur, handlers: matches }); - } - } - } - } - - // Add the remaining (directly-bound) handlers - if ( delegateCount < handlers.length ) { - handlerQueue.push({ elem: this, handlers: handlers.slice( delegateCount ) }); - } - - return handlerQueue; - }, - - // Includes some event props shared by KeyEvent and MouseEvent - props: "altKey bubbles cancelable ctrlKey currentTarget eventPhase metaKey relatedTarget shiftKey target timeStamp view which".split(" "), - - fixHooks: {}, - - keyHooks: { - props: "char charCode key keyCode".split(" "), - filter: function( event, original ) { - - // Add which for key events - if ( event.which == null ) { - event.which = original.charCode != null ? original.charCode : original.keyCode; - } - - return event; - } - }, - - mouseHooks: { - props: "button buttons clientX clientY offsetX offsetY pageX pageY screenX screenY toElement".split(" "), - filter: function( event, original ) { - var eventDoc, doc, body, - button = original.button; - - // Calculate pageX/Y if missing and clientX/Y available - if ( event.pageX == null && original.clientX != null ) { - eventDoc = event.target.ownerDocument || document; - doc = eventDoc.documentElement; - body = eventDoc.body; - - event.pageX = original.clientX + ( doc && doc.scrollLeft || body && body.scrollLeft || 0 ) - ( doc && doc.clientLeft || body && body.clientLeft || 0 ); - event.pageY = original.clientY + ( doc && doc.scrollTop || body && body.scrollTop || 0 ) - ( doc && doc.clientTop || body && body.clientTop || 0 ); - } - - // Add which for click: 1 === left; 2 === middle; 3 === right - // Note: button is not normalized, so don't use it - if ( !event.which && button !== undefined ) { - event.which = ( button & 1 ? 1 : ( button & 2 ? 3 : ( button & 4 ? 2 : 0 ) ) ); - } - - return event; - } - }, - - fix: function( event ) { - if ( event[ jQuery.expando ] ) { - return event; - } - - // Create a writable copy of the event object and normalize some properties - var i, prop, copy, - type = event.type, - originalEvent = event, - fixHook = this.fixHooks[ type ]; - - if ( !fixHook ) { - this.fixHooks[ type ] = fixHook = - rmouseEvent.test( type ) ? this.mouseHooks : - rkeyEvent.test( type ) ? this.keyHooks : - {}; - } - copy = fixHook.props ? this.props.concat( fixHook.props ) : this.props; - - event = new jQuery.Event( originalEvent ); - - i = copy.length; - while ( i-- ) { - prop = copy[ i ]; - event[ prop ] = originalEvent[ prop ]; - } - - // Support: Cordova 2.5 (WebKit) (#13255) - // All events should have a target; Cordova deviceready doesn't - if ( !event.target ) { - event.target = document; - } - - // Support: Safari 6.0+, Chrome < 28 - // Target should not be a text node (#504, #13143) - if ( event.target.nodeType === 3 ) { - event.target = event.target.parentNode; - } - - return fixHook.filter ? fixHook.filter( event, originalEvent ) : event; - }, - - special: { - load: { - // Prevent triggered image.load events from bubbling to window.load - noBubble: true - }, - focus: { - // Fire native event if possible so blur/focus sequence is correct - trigger: function() { - if ( this !== safeActiveElement() && this.focus ) { - this.focus(); - return false; - } - }, - delegateType: "focusin" - }, - blur: { - trigger: function() { - if ( this === safeActiveElement() && this.blur ) { - this.blur(); - return false; - } - }, - delegateType: "focusout" - }, - click: { - // For checkbox, fire native event so checked state will be right - trigger: function() { - if ( this.type === "checkbox" && this.click && jQuery.nodeName( this, "input" ) ) { - this.click(); - return false; - } - }, - - // For cross-browser consistency, don't fire native .click() on links - _default: function( event ) { - return jQuery.nodeName( event.target, "a" ); - } - }, - - beforeunload: { - postDispatch: function( event ) { - - // Support: Firefox 20+ - // Firefox doesn't alert if the returnValue field is not set. - if ( event.result !== undefined ) { - event.originalEvent.returnValue = event.result; - } - } - } - }, - - simulate: function( type, elem, event, bubble ) { - // Piggyback on a donor event to simulate a different one. - // Fake originalEvent to avoid donor's stopPropagation, but if the - // simulated event prevents default then we do the same on the donor. - var e = jQuery.extend( - new jQuery.Event(), - event, - { - type: type, - isSimulated: true, - originalEvent: {} - } - ); - if ( bubble ) { - jQuery.event.trigger( e, null, elem ); - } else { - jQuery.event.dispatch.call( elem, e ); - } - if ( e.isDefaultPrevented() ) { - event.preventDefault(); - } - } - }; - - jQuery.removeEvent = function( elem, type, handle ) { - if ( elem.removeEventListener ) { - elem.removeEventListener( type, handle, false ); - } - }; - - jQuery.Event = function( src, props ) { - // Allow instantiation without the 'new' keyword - if ( !(this instanceof jQuery.Event) ) { - return new jQuery.Event( src, props ); - } - - // Event object - if ( src && src.type ) { - this.originalEvent = src; - this.type = src.type; - - // Events bubbling up the document may have been marked as prevented - // by a handler lower down the tree; reflect the correct value. - this.isDefaultPrevented = src.defaultPrevented || - // Support: Android < 4.0 - src.defaultPrevented === undefined && - src.getPreventDefault && src.getPreventDefault() ? - returnTrue : - returnFalse; - - // Event type - } else { - this.type = src; - } - - // Put explicitly provided properties onto the event object - if ( props ) { - jQuery.extend( this, props ); - } - - // Create a timestamp if incoming event doesn't have one - this.timeStamp = src && src.timeStamp || jQuery.now(); - - // Mark it as fixed - this[ jQuery.expando ] = true; - }; - -// jQuery.Event is based on DOM3 Events as specified by the ECMAScript Language Binding -// http://www.w3.org/TR/2003/WD-DOM-Level-3-Events-20030331/ecma-script-binding.html - jQuery.Event.prototype = { - isDefaultPrevented: returnFalse, - isPropagationStopped: returnFalse, - isImmediatePropagationStopped: returnFalse, - - preventDefault: function() { - var e = this.originalEvent; - - this.isDefaultPrevented = returnTrue; - - if ( e && e.preventDefault ) { - e.preventDefault(); - } - }, - stopPropagation: function() { - var e = this.originalEvent; - - this.isPropagationStopped = returnTrue; - - if ( e && e.stopPropagation ) { - e.stopPropagation(); - } - }, - stopImmediatePropagation: function() { - this.isImmediatePropagationStopped = returnTrue; - this.stopPropagation(); - } - }; - -// Create mouseenter/leave events using mouseover/out and event-time checks -// Support: Chrome 15+ - jQuery.each({ - mouseenter: "mouseover", - mouseleave: "mouseout" - }, function( orig, fix ) { - jQuery.event.special[ orig ] = { - delegateType: fix, - bindType: fix, - - handle: function( event ) { - var ret, - target = this, - related = event.relatedTarget, - handleObj = event.handleObj; - - // For mousenter/leave call the handler if related is outside the target. - // NB: No relatedTarget if the mouse left/entered the browser window - if ( !related || (related !== target && !jQuery.contains( target, related )) ) { - event.type = handleObj.origType; - ret = handleObj.handler.apply( this, arguments ); - event.type = fix; - } - return ret; - } - }; - }); - -// Create "bubbling" focus and blur events -// Support: Firefox, Chrome, Safari - if ( !support.focusinBubbles ) { - jQuery.each({ focus: "focusin", blur: "focusout" }, function( orig, fix ) { - - // Attach a single capturing handler on the document while someone wants focusin/focusout - var handler = function( event ) { - jQuery.event.simulate( fix, event.target, jQuery.event.fix( event ), true ); - }; - - jQuery.event.special[ fix ] = { - setup: function() { - var doc = this.ownerDocument || this, - attaches = data_priv.access( doc, fix ); - - if ( !attaches ) { - doc.addEventListener( orig, handler, true ); - } - data_priv.access( doc, fix, ( attaches || 0 ) + 1 ); - }, - teardown: function() { - var doc = this.ownerDocument || this, - attaches = data_priv.access( doc, fix ) - 1; - - if ( !attaches ) { - doc.removeEventListener( orig, handler, true ); - data_priv.remove( doc, fix ); - - } else { - data_priv.access( doc, fix, attaches ); - } - } - }; - }); - } - - jQuery.fn.extend({ - - on: function( types, selector, data, fn, /*INTERNAL*/ one ) { - var origFn, type; - - // Types can be a map of types/handlers - if ( typeof types === "object" ) { - // ( types-Object, selector, data ) - if ( typeof selector !== "string" ) { - // ( types-Object, data ) - data = data || selector; - selector = undefined; - } - for ( type in types ) { - this.on( type, selector, data, types[ type ], one ); - } - return this; - } - - if ( data == null && fn == null ) { - // ( types, fn ) - fn = selector; - data = selector = undefined; - } else if ( fn == null ) { - if ( typeof selector === "string" ) { - // ( types, selector, fn ) - fn = data; - data = undefined; - } else { - // ( types, data, fn ) - fn = data; - data = selector; - selector = undefined; - } - } - if ( fn === false ) { - fn = returnFalse; - } else if ( !fn ) { - return this; - } - - if ( one === 1 ) { - origFn = fn; - fn = function( event ) { - // Can use an empty set, since event contains the info - jQuery().off( event ); - return origFn.apply( this, arguments ); - }; - // Use same guid so caller can remove using origFn - fn.guid = origFn.guid || ( origFn.guid = jQuery.guid++ ); - } - return this.each( function() { - jQuery.event.add( this, types, fn, data, selector ); - }); - }, - one: function( types, selector, data, fn ) { - return this.on( types, selector, data, fn, 1 ); - }, - off: function( types, selector, fn ) { - var handleObj, type; - if ( types && types.preventDefault && types.handleObj ) { - // ( event ) dispatched jQuery.Event - handleObj = types.handleObj; - jQuery( types.delegateTarget ).off( - handleObj.namespace ? handleObj.origType + "." + handleObj.namespace : handleObj.origType, - handleObj.selector, - handleObj.handler - ); - return this; - } - if ( typeof types === "object" ) { - // ( types-object [, selector] ) - for ( type in types ) { - this.off( type, selector, types[ type ] ); - } - return this; - } - if ( selector === false || typeof selector === "function" ) { - // ( types [, fn] ) - fn = selector; - selector = undefined; - } - if ( fn === false ) { - fn = returnFalse; - } - return this.each(function() { - jQuery.event.remove( this, types, fn, selector ); - }); - }, - - trigger: function( type, data ) { - return this.each(function() { - jQuery.event.trigger( type, data, this ); - }); - }, - triggerHandler: function( type, data ) { - var elem = this[0]; - if ( elem ) { - return jQuery.event.trigger( type, data, elem, true ); - } - } - }); - - - var - rxhtmlTag = /<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/gi, - rtagName = /<([\w:]+)/, - rhtml = /<|&#?\w+;/, - rnoInnerhtml = /<(?:script|style|link)/i, - // checked="checked" or checked - rchecked = /checked\s*(?:[^=]|=\s*.checked.)/i, - rscriptType = /^$|\/(?:java|ecma)script/i, - rscriptTypeMasked = /^true\/(.*)/, - rcleanScript = /^\s*<!(?:\[CDATA\[|--)|(?:\]\]|--)>\s*$/g, - - // We have to close these tags to support XHTML (#13200) - wrapMap = { - - // Support: IE 9 - option: [ 1, "<select multiple='multiple'>", "</select>" ], - - thead: [ 1, "<table>", "</table>" ], - col: [ 2, "<table><colgroup>", "</colgroup></table>" ], - tr: [ 2, "<table><tbody>", "</tbody></table>" ], - td: [ 3, "<table><tbody><tr>", "</tr></tbody></table>" ], - - _default: [ 0, "", "" ] - }; - -// Support: IE 9 - wrapMap.optgroup = wrapMap.option; - - wrapMap.tbody = wrapMap.tfoot = wrapMap.colgroup = wrapMap.caption = wrapMap.thead; - wrapMap.th = wrapMap.td; - -// Support: 1.x compatibility -// Manipulating tables requires a tbody - function manipulationTarget( elem, content ) { - return jQuery.nodeName( elem, "table" ) && - jQuery.nodeName( content.nodeType !== 11 ? content : content.firstChild, "tr" ) ? - - elem.getElementsByTagName("tbody")[0] || - elem.appendChild( elem.ownerDocument.createElement("tbody") ) : - elem; - } - -// Replace/restore the type attribute of script elements for safe DOM manipulation - function disableScript( elem ) { - elem.type = (elem.getAttribute("type") !== null) + "/" + elem.type; - return elem; - } - function restoreScript( elem ) { - var match = rscriptTypeMasked.exec( elem.type ); - - if ( match ) { - elem.type = match[ 1 ]; - } else { - elem.removeAttribute("type"); - } - - return elem; - } - -// Mark scripts as having already been evaluated - function setGlobalEval( elems, refElements ) { - var i = 0, - l = elems.length; - - for ( ; i < l; i++ ) { - data_priv.set( - elems[ i ], "globalEval", !refElements || data_priv.get( refElements[ i ], "globalEval" ) - ); - } - } - - function cloneCopyEvent( src, dest ) { - var i, l, type, pdataOld, pdataCur, udataOld, udataCur, events; - - if ( dest.nodeType !== 1 ) { - return; - } - - // 1. Copy private data: events, handlers, etc. - if ( data_priv.hasData( src ) ) { - pdataOld = data_priv.access( src ); - pdataCur = data_priv.set( dest, pdataOld ); - events = pdataOld.events; - - if ( events ) { - delete pdataCur.handle; - pdataCur.events = {}; - - for ( type in events ) { - for ( i = 0, l = events[ type ].length; i < l; i++ ) { - jQuery.event.add( dest, type, events[ type ][ i ] ); - } - } - } - } - - // 2. Copy user data - if ( data_user.hasData( src ) ) { - udataOld = data_user.access( src ); - udataCur = jQuery.extend( {}, udataOld ); - - data_user.set( dest, udataCur ); - } - } - - function getAll( context, tag ) { - var ret = context.getElementsByTagName ? context.getElementsByTagName( tag || "*" ) : - context.querySelectorAll ? context.querySelectorAll( tag || "*" ) : - []; - - return tag === undefined || tag && jQuery.nodeName( context, tag ) ? - jQuery.merge( [ context ], ret ) : - ret; - } - -// Support: IE >= 9 - function fixInput( src, dest ) { - var nodeName = dest.nodeName.toLowerCase(); - - // Fails to persist the checked state of a cloned checkbox or radio button. - if ( nodeName === "input" && rcheckableType.test( src.type ) ) { - dest.checked = src.checked; - - // Fails to return the selected option to the default selected state when cloning options - } else if ( nodeName === "input" || nodeName === "textarea" ) { - dest.defaultValue = src.defaultValue; - } - } - - jQuery.extend({ - clone: function( elem, dataAndEvents, deepDataAndEvents ) { - var i, l, srcElements, destElements, - clone = elem.cloneNode( true ), - inPage = jQuery.contains( elem.ownerDocument, elem ); - - // Support: IE >= 9 - // Fix Cloning issues - if ( !support.noCloneChecked && ( elem.nodeType === 1 || elem.nodeType === 11 ) && - !jQuery.isXMLDoc( elem ) ) { - - // We eschew Sizzle here for performance reasons: http://jsperf.com/getall-vs-sizzle/2 - destElements = getAll( clone ); - srcElements = getAll( elem ); - - for ( i = 0, l = srcElements.length; i < l; i++ ) { - fixInput( srcElements[ i ], destElements[ i ] ); - } - } - - // Copy the events from the original to the clone - if ( dataAndEvents ) { - if ( deepDataAndEvents ) { - srcElements = srcElements || getAll( elem ); - destElements = destElements || getAll( clone ); - - for ( i = 0, l = srcElements.length; i < l; i++ ) { - cloneCopyEvent( srcElements[ i ], destElements[ i ] ); - } - } else { - cloneCopyEvent( elem, clone ); - } - } - - // Preserve script evaluation history - destElements = getAll( clone, "script" ); - if ( destElements.length > 0 ) { - setGlobalEval( destElements, !inPage && getAll( elem, "script" ) ); - } - - // Return the cloned set - return clone; - }, - - buildFragment: function( elems, context, scripts, selection ) { - var elem, tmp, tag, wrap, contains, j, - fragment = context.createDocumentFragment(), - nodes = [], - i = 0, - l = elems.length; - - for ( ; i < l; i++ ) { - elem = elems[ i ]; - - if ( elem || elem === 0 ) { - - // Add nodes directly - if ( jQuery.type( elem ) === "object" ) { - // Support: QtWebKit - // jQuery.merge because push.apply(_, arraylike) throws - jQuery.merge( nodes, elem.nodeType ? [ elem ] : elem ); - - // Convert non-html into a text node - } else if ( !rhtml.test( elem ) ) { - nodes.push( context.createTextNode( elem ) ); - - // Convert html into DOM nodes - } else { - tmp = tmp || fragment.appendChild( context.createElement("div") ); - - // Deserialize a standard representation - tag = ( rtagName.exec( elem ) || [ "", "" ] )[ 1 ].toLowerCase(); - wrap = wrapMap[ tag ] || wrapMap._default; - tmp.innerHTML = wrap[ 1 ] + elem.replace( rxhtmlTag, "<$1></$2>" ) + wrap[ 2 ]; - - // Descend through wrappers to the right content - j = wrap[ 0 ]; - while ( j-- ) { - tmp = tmp.lastChild; - } - - // Support: QtWebKit - // jQuery.merge because push.apply(_, arraylike) throws - jQuery.merge( nodes, tmp.childNodes ); - - // Remember the top-level container - tmp = fragment.firstChild; - - // Fixes #12346 - // Support: Webkit, IE - tmp.textContent = ""; - } - } - } - - // Remove wrapper from fragment - fragment.textContent = ""; - - i = 0; - while ( (elem = nodes[ i++ ]) ) { - - // #4087 - If origin and destination elements are the same, and this is - // that element, do not do anything - if ( selection && jQuery.inArray( elem, selection ) !== -1 ) { - continue; - } - - contains = jQuery.contains( elem.ownerDocument, elem ); - - // Append to fragment - tmp = getAll( fragment.appendChild( elem ), "script" ); - - // Preserve script evaluation history - if ( contains ) { - setGlobalEval( tmp ); - } - - // Capture executables - if ( scripts ) { - j = 0; - while ( (elem = tmp[ j++ ]) ) { - if ( rscriptType.test( elem.type || "" ) ) { - scripts.push( elem ); - } - } - } - } - - return fragment; - }, - - cleanData: function( elems ) { - var data, elem, events, type, key, j, - special = jQuery.event.special, - i = 0; - - for ( ; (elem = elems[ i ]) !== undefined; i++ ) { - if ( jQuery.acceptData( elem ) ) { - key = elem[ data_priv.expando ]; - - if ( key && (data = data_priv.cache[ key ]) ) { - events = Object.keys( data.events || {} ); - if ( events.length ) { - for ( j = 0; (type = events[j]) !== undefined; j++ ) { - if ( special[ type ] ) { - jQuery.event.remove( elem, type ); - - // This is a shortcut to avoid jQuery.event.remove's overhead - } else { - jQuery.removeEvent( elem, type, data.handle ); - } - } - } - if ( data_priv.cache[ key ] ) { - // Discard any remaining `private` data - delete data_priv.cache[ key ]; - } - } - } - // Discard any remaining `user` data - delete data_user.cache[ elem[ data_user.expando ] ]; - } - } - }); - - jQuery.fn.extend({ - text: function( value ) { - return access( this, function( value ) { - return value === undefined ? - jQuery.text( this ) : - this.empty().each(function() { - if ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) { - this.textContent = value; - } - }); - }, null, value, arguments.length ); - }, - - append: function() { - return this.domManip( arguments, function( elem ) { - if ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) { - var target = manipulationTarget( this, elem ); - target.appendChild( elem ); - } - }); - }, - - prepend: function() { - return this.domManip( arguments, function( elem ) { - if ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) { - var target = manipulationTarget( this, elem ); - target.insertBefore( elem, target.firstChild ); - } - }); - }, - - before: function() { - return this.domManip( arguments, function( elem ) { - if ( this.parentNode ) { - this.parentNode.insertBefore( elem, this ); - } - }); - }, - - after: function() { - return this.domManip( arguments, function( elem ) { - if ( this.parentNode ) { - this.parentNode.insertBefore( elem, this.nextSibling ); - } - }); - }, - - remove: function( selector, keepData /* Internal Use Only */ ) { - var elem, - elems = selector ? jQuery.filter( selector, this ) : this, - i = 0; - - for ( ; (elem = elems[i]) != null; i++ ) { - if ( !keepData && elem.nodeType === 1 ) { - jQuery.cleanData( getAll( elem ) ); - } - - if ( elem.parentNode ) { - if ( keepData && jQuery.contains( elem.ownerDocument, elem ) ) { - setGlobalEval( getAll( elem, "script" ) ); - } - elem.parentNode.removeChild( elem ); - } - } - - return this; - }, - - empty: function() { - var elem, - i = 0; - - for ( ; (elem = this[i]) != null; i++ ) { - if ( elem.nodeType === 1 ) { - - // Prevent memory leaks - jQuery.cleanData( getAll( elem, false ) ); - - // Remove any remaining nodes - elem.textContent = ""; - } - } - - return this; - }, - - clone: function( dataAndEvents, deepDataAndEvents ) { - dataAndEvents = dataAndEvents == null ? false : dataAndEvents; - deepDataAndEvents = deepDataAndEvents == null ? dataAndEvents : deepDataAndEvents; - - return this.map(function() { - return jQuery.clone( this, dataAndEvents, deepDataAndEvents ); - }); - }, - - html: function( value ) { - return access( this, function( value ) { - var elem = this[ 0 ] || {}, - i = 0, - l = this.length; - - if ( value === undefined && elem.nodeType === 1 ) { - return elem.innerHTML; - } - - // See if we can take a shortcut and just use innerHTML - if ( typeof value === "string" && !rnoInnerhtml.test( value ) && - !wrapMap[ ( rtagName.exec( value ) || [ "", "" ] )[ 1 ].toLowerCase() ] ) { - - value = value.replace( rxhtmlTag, "<$1></$2>" ); - - try { - for ( ; i < l; i++ ) { - elem = this[ i ] || {}; - - // Remove element nodes and prevent memory leaks - if ( elem.nodeType === 1 ) { - jQuery.cleanData( getAll( elem, false ) ); - elem.innerHTML = value; - } - } - - elem = 0; - - // If using innerHTML throws an exception, use the fallback method - } catch( e ) {} - } - - if ( elem ) { - this.empty().append( value ); - } - }, null, value, arguments.length ); - }, - - replaceWith: function() { - var arg = arguments[ 0 ]; - - // Make the changes, replacing each context element with the new content - this.domManip( arguments, function( elem ) { - arg = this.parentNode; - - jQuery.cleanData( getAll( this ) ); - - if ( arg ) { - arg.replaceChild( elem, this ); - } - }); - - // Force removal if there was no new content (e.g., from empty arguments) - return arg && (arg.length || arg.nodeType) ? this : this.remove(); - }, - - detach: function( selector ) { - return this.remove( selector, true ); - }, - - domManip: function( args, callback ) { - - // Flatten any nested arrays - args = concat.apply( [], args ); - - var fragment, first, scripts, hasScripts, node, doc, - i = 0, - l = this.length, - set = this, - iNoClone = l - 1, - value = args[ 0 ], - isFunction = jQuery.isFunction( value ); - - // We can't cloneNode fragments that contain checked, in WebKit - if ( isFunction || - ( l > 1 && typeof value === "string" && - !support.checkClone && rchecked.test( value ) ) ) { - return this.each(function( index ) { - var self = set.eq( index ); - if ( isFunction ) { - args[ 0 ] = value.call( this, index, self.html() ); - } - self.domManip( args, callback ); - }); - } - - if ( l ) { - fragment = jQuery.buildFragment( args, this[ 0 ].ownerDocument, false, this ); - first = fragment.firstChild; - - if ( fragment.childNodes.length === 1 ) { - fragment = first; - } - - if ( first ) { - scripts = jQuery.map( getAll( fragment, "script" ), disableScript ); - hasScripts = scripts.length; - - // Use the original fragment for the last item instead of the first because it can end up - // being emptied incorrectly in certain situations (#8070). - for ( ; i < l; i++ ) { - node = fragment; - - if ( i !== iNoClone ) { - node = jQuery.clone( node, true, true ); - - // Keep references to cloned scripts for later restoration - if ( hasScripts ) { - // Support: QtWebKit - // jQuery.merge because push.apply(_, arraylike) throws - jQuery.merge( scripts, getAll( node, "script" ) ); - } - } - - callback.call( this[ i ], node, i ); - } - - if ( hasScripts ) { - doc = scripts[ scripts.length - 1 ].ownerDocument; - - // Reenable scripts - jQuery.map( scripts, restoreScript ); - - // Evaluate executable scripts on first document insertion - for ( i = 0; i < hasScripts; i++ ) { - node = scripts[ i ]; - if ( rscriptType.test( node.type || "" ) && - !data_priv.access( node, "globalEval" ) && jQuery.contains( doc, node ) ) { - - if ( node.src ) { - // Optional AJAX dependency, but won't run scripts if not present - if ( jQuery._evalUrl ) { - jQuery._evalUrl( node.src ); - } - } else { - jQuery.globalEval( node.textContent.replace( rcleanScript, "" ) ); - } - } - } - } - } - } - - return this; - } - }); - - jQuery.each({ - appendTo: "append", - prependTo: "prepend", - insertBefore: "before", - insertAfter: "after", - replaceAll: "replaceWith" - }, function( name, original ) { - jQuery.fn[ name ] = function( selector ) { - var elems, - ret = [], - insert = jQuery( selector ), - last = insert.length - 1, - i = 0; - - for ( ; i <= last; i++ ) { - elems = i === last ? this : this.clone( true ); - jQuery( insert[ i ] )[ original ]( elems ); - - // Support: QtWebKit - // .get() because push.apply(_, arraylike) throws - push.apply( ret, elems.get() ); - } - - return this.pushStack( ret ); - }; - }); - - - var iframe, - elemdisplay = {}; - - /** - * Retrieve the actual display of a element - * @param {String} name nodeName of the element - * @param {Object} doc Document object - */ -// Called only from within defaultDisplay - function actualDisplay( name, doc ) { - var elem = jQuery( doc.createElement( name ) ).appendTo( doc.body ), - - // getDefaultComputedStyle might be reliably used only on attached element - display = window.getDefaultComputedStyle ? - - // Use of this method is a temporary fix (more like optmization) until something better comes along, - // since it was removed from specification and supported only in FF - window.getDefaultComputedStyle( elem[ 0 ] ).display : jQuery.css( elem[ 0 ], "display" ); - - // We don't have any data stored on the element, - // so use "detach" method as fast way to get rid of the element - elem.detach(); - - return display; - } - - /** - * Try to determine the default display value of an element - * @param {String} nodeName - */ - function defaultDisplay( nodeName ) { - var doc = document, - display = elemdisplay[ nodeName ]; - - if ( !display ) { - display = actualDisplay( nodeName, doc ); - - // If the simple way fails, read from inside an iframe - if ( display === "none" || !display ) { - - // Use the already-created iframe if possible - iframe = (iframe || jQuery( "<iframe frameborder='0' width='0' height='0'/>" )).appendTo( doc.documentElement ); - - // Always write a new HTML skeleton so Webkit and Firefox don't choke on reuse - doc = iframe[ 0 ].contentDocument; - - // Support: IE - doc.write(); - doc.close(); - - display = actualDisplay( nodeName, doc ); - iframe.detach(); - } - - // Store the correct default display - elemdisplay[ nodeName ] = display; - } - - return display; - } - var rmargin = (/^margin/); - - var rnumnonpx = new RegExp( "^(" + pnum + ")(?!px)[a-z%]+$", "i" ); - - var getStyles = function( elem ) { - return elem.ownerDocument.defaultView.getComputedStyle( elem, null ); - }; - - - - function curCSS( elem, name, computed ) { - var width, minWidth, maxWidth, ret, - style = elem.style; - - computed = computed || getStyles( elem ); - - // Support: IE9 - // getPropertyValue is only needed for .css('filter') in IE9, see #12537 - if ( computed ) { - ret = computed.getPropertyValue( name ) || computed[ name ]; - } - - if ( computed ) { - - if ( ret === "" && !jQuery.contains( elem.ownerDocument, elem ) ) { - ret = jQuery.style( elem, name ); - } - - // Support: iOS < 6 - // A tribute to the "awesome hack by Dean Edwards" - // iOS < 6 (at least) returns percentage for a larger set of values, but width seems to be reliably pixels - // this is against the CSSOM draft spec: http://dev.w3.org/csswg/cssom/#resolved-values - if ( rnumnonpx.test( ret ) && rmargin.test( name ) ) { - - // Remember the original values - width = style.width; - minWidth = style.minWidth; - maxWidth = style.maxWidth; - - // Put in the new values to get a computed value out - style.minWidth = style.maxWidth = style.width = ret; - ret = computed.width; - - // Revert the changed values - style.width = width; - style.minWidth = minWidth; - style.maxWidth = maxWidth; - } - } - - return ret !== undefined ? - // Support: IE - // IE returns zIndex value as an integer. - ret + "" : - ret; - } - - - function addGetHookIf( conditionFn, hookFn ) { - // Define the hook, we'll check on the first run if it's really needed. - return { - get: function() { - if ( conditionFn() ) { - // Hook not needed (or it's not possible to use it due to missing dependency), - // remove it. - // Since there are no other hooks for marginRight, remove the whole object. - delete this.get; - return; - } - - // Hook needed; redefine it so that the support test is not executed again. - - return (this.get = hookFn).apply( this, arguments ); - } - }; - } - - - (function() { - var pixelPositionVal, boxSizingReliableVal, - // Support: Firefox, Android 2.3 (Prefixed box-sizing versions). - divReset = "padding:0;margin:0;border:0;display:block;-webkit-box-sizing:content-box;" + - "-moz-box-sizing:content-box;box-sizing:content-box", - docElem = document.documentElement, - container = document.createElement( "div" ), - div = document.createElement( "div" ); - - div.style.backgroundClip = "content-box"; - div.cloneNode( true ).style.backgroundClip = ""; - support.clearCloneStyle = div.style.backgroundClip === "content-box"; - - container.style.cssText = "border:0;width:0;height:0;position:absolute;top:0;left:-9999px;" + - "margin-top:1px"; - container.appendChild( div ); - - // Executing both pixelPosition & boxSizingReliable tests require only one layout - // so they're executed at the same time to save the second computation. - function computePixelPositionAndBoxSizingReliable() { - // Support: Firefox, Android 2.3 (Prefixed box-sizing versions). - div.style.cssText = "-webkit-box-sizing:border-box;-moz-box-sizing:border-box;" + - "box-sizing:border-box;padding:1px;border:1px;display:block;width:4px;margin-top:1%;" + - "position:absolute;top:1%"; - docElem.appendChild( container ); - - var divStyle = window.getComputedStyle( div, null ); - pixelPositionVal = divStyle.top !== "1%"; - boxSizingReliableVal = divStyle.width === "4px"; - - docElem.removeChild( container ); - } - - // Use window.getComputedStyle because jsdom on node.js will break without it. - if ( window.getComputedStyle ) { - jQuery.extend(support, { - pixelPosition: function() { - // This test is executed only once but we still do memoizing - // since we can use the boxSizingReliable pre-computing. - // No need to check if the test was already performed, though. - computePixelPositionAndBoxSizingReliable(); - return pixelPositionVal; - }, - boxSizingReliable: function() { - if ( boxSizingReliableVal == null ) { - computePixelPositionAndBoxSizingReliable(); - } - return boxSizingReliableVal; - }, - reliableMarginRight: function() { - // Support: Android 2.3 - // Check if div with explicit width and no margin-right incorrectly - // gets computed margin-right based on width of container. (#3333) - // WebKit Bug 13343 - getComputedStyle returns wrong value for margin-right - // This support function is only executed once so no memoizing is needed. - var ret, - marginDiv = div.appendChild( document.createElement( "div" ) ); - marginDiv.style.cssText = div.style.cssText = divReset; - marginDiv.style.marginRight = marginDiv.style.width = "0"; - div.style.width = "1px"; - docElem.appendChild( container ); - - ret = !parseFloat( window.getComputedStyle( marginDiv, null ).marginRight ); - - docElem.removeChild( container ); - - // Clean up the div for other support tests. - div.innerHTML = ""; - - return ret; - } - }); - } - })(); - - -// A method for quickly swapping in/out CSS properties to get correct calculations. - jQuery.swap = function( elem, options, callback, args ) { - var ret, name, - old = {}; - - // Remember the old values, and insert the new ones - for ( name in options ) { - old[ name ] = elem.style[ name ]; - elem.style[ name ] = options[ name ]; - } - - ret = callback.apply( elem, args || [] ); - - // Revert the old values - for ( name in options ) { - elem.style[ name ] = old[ name ]; - } - - return ret; - }; - - - var - // swappable if display is none or starts with table except "table", "table-cell", or "table-caption" - // see here for display values: https://developer.mozilla.org/en-US/docs/CSS/display - rdisplayswap = /^(none|table(?!-c[ea]).+)/, - rnumsplit = new RegExp( "^(" + pnum + ")(.*)$", "i" ), - rrelNum = new RegExp( "^([+-])=(" + pnum + ")", "i" ), - - cssShow = { position: "absolute", visibility: "hidden", display: "block" }, - cssNormalTransform = { - letterSpacing: 0, - fontWeight: 400 - }, - - cssPrefixes = [ "Webkit", "O", "Moz", "ms" ]; - -// return a css property mapped to a potentially vendor prefixed property - function vendorPropName( style, name ) { - - // shortcut for names that are not vendor prefixed - if ( name in style ) { - return name; - } - - // check for vendor prefixed names - var capName = name[0].toUpperCase() + name.slice(1), - origName = name, - i = cssPrefixes.length; - - while ( i-- ) { - name = cssPrefixes[ i ] + capName; - if ( name in style ) { - return name; - } - } - - return origName; - } - - function setPositiveNumber( elem, value, subtract ) { - var matches = rnumsplit.exec( value ); - return matches ? - // Guard against undefined "subtract", e.g., when used as in cssHooks - Math.max( 0, matches[ 1 ] - ( subtract || 0 ) ) + ( matches[ 2 ] || "px" ) : - value; - } - - function augmentWidthOrHeight( elem, name, extra, isBorderBox, styles ) { - var i = extra === ( isBorderBox ? "border" : "content" ) ? - // If we already have the right measurement, avoid augmentation - 4 : - // Otherwise initialize for horizontal or vertical properties - name === "width" ? 1 : 0, - - val = 0; - - for ( ; i < 4; i += 2 ) { - // both box models exclude margin, so add it if we want it - if ( extra === "margin" ) { - val += jQuery.css( elem, extra + cssExpand[ i ], true, styles ); - } - - if ( isBorderBox ) { - // border-box includes padding, so remove it if we want content - if ( extra === "content" ) { - val -= jQuery.css( elem, "padding" + cssExpand[ i ], true, styles ); - } - - // at this point, extra isn't border nor margin, so remove border - if ( extra !== "margin" ) { - val -= jQuery.css( elem, "border" + cssExpand[ i ] + "Width", true, styles ); - } - } else { - // at this point, extra isn't content, so add padding - val += jQuery.css( elem, "padding" + cssExpand[ i ], true, styles ); - - // at this point, extra isn't content nor padding, so add border - if ( extra !== "padding" ) { - val += jQuery.css( elem, "border" + cssExpand[ i ] + "Width", true, styles ); - } - } - } - - return val; - } - - function getWidthOrHeight( elem, name, extra ) { - - // Start with offset property, which is equivalent to the border-box value - var valueIsBorderBox = true, - val = name === "width" ? elem.offsetWidth : elem.offsetHeight, - styles = getStyles( elem ), - isBorderBox = jQuery.css( elem, "boxSizing", false, styles ) === "border-box"; - - // some non-html elements return undefined for offsetWidth, so check for null/undefined - // svg - https://bugzilla.mozilla.org/show_bug.cgi?id=649285 - // MathML - https://bugzilla.mozilla.org/show_bug.cgi?id=491668 - if ( val <= 0 || val == null ) { - // Fall back to computed then uncomputed css if necessary - val = curCSS( elem, name, styles ); - if ( val < 0 || val == null ) { - val = elem.style[ name ]; - } - - // Computed unit is not pixels. Stop here and return. - if ( rnumnonpx.test(val) ) { - return val; - } - - // we need the check for style in case a browser which returns unreliable values - // for getComputedStyle silently falls back to the reliable elem.style - valueIsBorderBox = isBorderBox && - ( support.boxSizingReliable() || val === elem.style[ name ] ); - - // Normalize "", auto, and prepare for extra - val = parseFloat( val ) || 0; - } - - // use the active box-sizing model to add/subtract irrelevant styles - return ( val + - augmentWidthOrHeight( - elem, - name, - extra || ( isBorderBox ? "border" : "content" ), - valueIsBorderBox, - styles - ) - ) + "px"; - } - - function showHide( elements, show ) { - var display, elem, hidden, - values = [], - index = 0, - length = elements.length; - - for ( ; index < length; index++ ) { - elem = elements[ index ]; - if ( !elem.style ) { - continue; - } - - values[ index ] = data_priv.get( elem, "olddisplay" ); - display = elem.style.display; - if ( show ) { - // Reset the inline display of this element to learn if it is - // being hidden by cascaded rules or not - if ( !values[ index ] && display === "none" ) { - elem.style.display = ""; - } - - // Set elements which have been overridden with display: none - // in a stylesheet to whatever the default browser style is - // for such an element - if ( elem.style.display === "" && isHidden( elem ) ) { - values[ index ] = data_priv.access( elem, "olddisplay", defaultDisplay(elem.nodeName) ); - } - } else { - - if ( !values[ index ] ) { - hidden = isHidden( elem ); - - if ( display && display !== "none" || !hidden ) { - data_priv.set( elem, "olddisplay", hidden ? display : jQuery.css(elem, "display") ); - } - } - } - } - - // Set the display of most of the elements in a second loop - // to avoid the constant reflow - for ( index = 0; index < length; index++ ) { - elem = elements[ index ]; - if ( !elem.style ) { - continue; - } - if ( !show || elem.style.display === "none" || elem.style.display === "" ) { - elem.style.display = show ? values[ index ] || "" : "none"; - } - } - - return elements; - } - - jQuery.extend({ - // Add in style property hooks for overriding the default - // behavior of getting and setting a style property - cssHooks: { - opacity: { - get: function( elem, computed ) { - if ( computed ) { - // We should always get a number back from opacity - var ret = curCSS( elem, "opacity" ); - return ret === "" ? "1" : ret; - } - } - } - }, - - // Don't automatically add "px" to these possibly-unitless properties - cssNumber: { - "columnCount": true, - "fillOpacity": true, - "fontWeight": true, - "lineHeight": true, - "opacity": true, - "order": true, - "orphans": true, - "widows": true, - "zIndex": true, - "zoom": true - }, - - // Add in properties whose names you wish to fix before - // setting or getting the value - cssProps: { - // normalize float css property - "float": "cssFloat" - }, - - // Get and set the style property on a DOM Node - style: function( elem, name, value, extra ) { - // Don't set styles on text and comment nodes - if ( !elem || elem.nodeType === 3 || elem.nodeType === 8 || !elem.style ) { - return; - } - - // Make sure that we're working with the right name - var ret, type, hooks, - origName = jQuery.camelCase( name ), - style = elem.style; - - name = jQuery.cssProps[ origName ] || ( jQuery.cssProps[ origName ] = vendorPropName( style, origName ) ); - - // gets hook for the prefixed version - // followed by the unprefixed version - hooks = jQuery.cssHooks[ name ] || jQuery.cssHooks[ origName ]; - - // Check if we're setting a value - if ( value !== undefined ) { - type = typeof value; - - // convert relative number strings (+= or -=) to relative numbers. #7345 - if ( type === "string" && (ret = rrelNum.exec( value )) ) { - value = ( ret[1] + 1 ) * ret[2] + parseFloat( jQuery.css( elem, name ) ); - // Fixes bug #9237 - type = "number"; - } - - // Make sure that null and NaN values aren't set. See: #7116 - if ( value == null || value !== value ) { - return; - } - - // If a number was passed in, add 'px' to the (except for certain CSS properties) - if ( type === "number" && !jQuery.cssNumber[ origName ] ) { - value += "px"; - } - - // Fixes #8908, it can be done more correctly by specifying setters in cssHooks, - // but it would mean to define eight (for every problematic property) identical functions - if ( !support.clearCloneStyle && value === "" && name.indexOf( "background" ) === 0 ) { - style[ name ] = "inherit"; - } - - // If a hook was provided, use that value, otherwise just set the specified value - if ( !hooks || !("set" in hooks) || (value = hooks.set( elem, value, extra )) !== undefined ) { - // Support: Chrome, Safari - // Setting style to blank string required to delete "style: x !important;" - style[ name ] = ""; - style[ name ] = value; - } - - } else { - // If a hook was provided get the non-computed value from there - if ( hooks && "get" in hooks && (ret = hooks.get( elem, false, extra )) !== undefined ) { - return ret; - } - - // Otherwise just get the value from the style object - return style[ name ]; - } - }, - - css: function( elem, name, extra, styles ) { - var val, num, hooks, - origName = jQuery.camelCase( name ); - - // Make sure that we're working with the right name - name = jQuery.cssProps[ origName ] || ( jQuery.cssProps[ origName ] = vendorPropName( elem.style, origName ) ); - - // gets hook for the prefixed version - // followed by the unprefixed version - hooks = jQuery.cssHooks[ name ] || jQuery.cssHooks[ origName ]; - - // If a hook was provided get the computed value from there - if ( hooks && "get" in hooks ) { - val = hooks.get( elem, true, extra ); - } - - // Otherwise, if a way to get the computed value exists, use that - if ( val === undefined ) { - val = curCSS( elem, name, styles ); - } - - //convert "normal" to computed value - if ( val === "normal" && name in cssNormalTransform ) { - val = cssNormalTransform[ name ]; - } - - // Return, converting to number if forced or a qualifier was provided and val looks numeric - if ( extra === "" || extra ) { - num = parseFloat( val ); - return extra === true || jQuery.isNumeric( num ) ? num || 0 : val; - } - return val; - } - }); - - jQuery.each([ "height", "width" ], function( i, name ) { - jQuery.cssHooks[ name ] = { - get: function( elem, computed, extra ) { - if ( computed ) { - // certain elements can have dimension info if we invisibly show them - // however, it must have a current display style that would benefit from this - return elem.offsetWidth === 0 && rdisplayswap.test( jQuery.css( elem, "display" ) ) ? - jQuery.swap( elem, cssShow, function() { - return getWidthOrHeight( elem, name, extra ); - }) : - getWidthOrHeight( elem, name, extra ); - } - }, - - set: function( elem, value, extra ) { - var styles = extra && getStyles( elem ); - return setPositiveNumber( elem, value, extra ? - augmentWidthOrHeight( - elem, - name, - extra, - jQuery.css( elem, "boxSizing", false, styles ) === "border-box", - styles - ) : 0 - ); - } - }; - }); - -// Support: Android 2.3 - jQuery.cssHooks.marginRight = addGetHookIf( support.reliableMarginRight, - function( elem, computed ) { - if ( computed ) { - // WebKit Bug 13343 - getComputedStyle returns wrong value for margin-right - // Work around by temporarily setting element display to inline-block - return jQuery.swap( elem, { "display": "inline-block" }, - curCSS, [ elem, "marginRight" ] ); - } - } - ); - -// These hooks are used by animate to expand properties - jQuery.each({ - margin: "", - padding: "", - border: "Width" - }, function( prefix, suffix ) { - jQuery.cssHooks[ prefix + suffix ] = { - expand: function( value ) { - var i = 0, - expanded = {}, - - // assumes a single number if not a string - parts = typeof value === "string" ? value.split(" ") : [ value ]; - - for ( ; i < 4; i++ ) { - expanded[ prefix + cssExpand[ i ] + suffix ] = - parts[ i ] || parts[ i - 2 ] || parts[ 0 ]; - } - - return expanded; - } - }; - - if ( !rmargin.test( prefix ) ) { - jQuery.cssHooks[ prefix + suffix ].set = setPositiveNumber; - } - }); - - jQuery.fn.extend({ - css: function( name, value ) { - return access( this, function( elem, name, value ) { - var styles, len, - map = {}, - i = 0; - - if ( jQuery.isArray( name ) ) { - styles = getStyles( elem ); - len = name.length; - - for ( ; i < len; i++ ) { - map[ name[ i ] ] = jQuery.css( elem, name[ i ], false, styles ); - } - - return map; - } - - return value !== undefined ? - jQuery.style( elem, name, value ) : - jQuery.css( elem, name ); - }, name, value, arguments.length > 1 ); - }, - show: function() { - return showHide( this, true ); - }, - hide: function() { - return showHide( this ); - }, - toggle: function( state ) { - if ( typeof state === "boolean" ) { - return state ? this.show() : this.hide(); - } - - return this.each(function() { - if ( isHidden( this ) ) { - jQuery( this ).show(); - } else { - jQuery( this ).hide(); - } - }); - } - }); - - - function Tween( elem, options, prop, end, easing ) { - return new Tween.prototype.init( elem, options, prop, end, easing ); - } - jQuery.Tween = Tween; - - Tween.prototype = { - constructor: Tween, - init: function( elem, options, prop, end, easing, unit ) { - this.elem = elem; - this.prop = prop; - this.easing = easing || "swing"; - this.options = options; - this.start = this.now = this.cur(); - this.end = end; - this.unit = unit || ( jQuery.cssNumber[ prop ] ? "" : "px" ); - }, - cur: function() { - var hooks = Tween.propHooks[ this.prop ]; - - return hooks && hooks.get ? - hooks.get( this ) : - Tween.propHooks._default.get( this ); - }, - run: function( percent ) { - var eased, - hooks = Tween.propHooks[ this.prop ]; - - if ( this.options.duration ) { - this.pos = eased = jQuery.easing[ this.easing ]( - percent, this.options.duration * percent, 0, 1, this.options.duration - ); - } else { - this.pos = eased = percent; - } - this.now = ( this.end - this.start ) * eased + this.start; - - if ( this.options.step ) { - this.options.step.call( this.elem, this.now, this ); - } - - if ( hooks && hooks.set ) { - hooks.set( this ); - } else { - Tween.propHooks._default.set( this ); - } - return this; - } - }; - - Tween.prototype.init.prototype = Tween.prototype; - - Tween.propHooks = { - _default: { - get: function( tween ) { - var result; - - if ( tween.elem[ tween.prop ] != null && - (!tween.elem.style || tween.elem.style[ tween.prop ] == null) ) { - return tween.elem[ tween.prop ]; - } - - // passing an empty string as a 3rd parameter to .css will automatically - // attempt a parseFloat and fallback to a string if the parse fails - // so, simple values such as "10px" are parsed to Float. - // complex values such as "rotate(1rad)" are returned as is. - result = jQuery.css( tween.elem, tween.prop, "" ); - // Empty strings, null, undefined and "auto" are converted to 0. - return !result || result === "auto" ? 0 : result; - }, - set: function( tween ) { - // use step hook for back compat - use cssHook if its there - use .style if its - // available and use plain properties where available - if ( jQuery.fx.step[ tween.prop ] ) { - jQuery.fx.step[ tween.prop ]( tween ); - } else if ( tween.elem.style && ( tween.elem.style[ jQuery.cssProps[ tween.prop ] ] != null || jQuery.cssHooks[ tween.prop ] ) ) { - jQuery.style( tween.elem, tween.prop, tween.now + tween.unit ); - } else { - tween.elem[ tween.prop ] = tween.now; - } - } - } - }; - -// Support: IE9 -// Panic based approach to setting things on disconnected nodes - - Tween.propHooks.scrollTop = Tween.propHooks.scrollLeft = { - set: function( tween ) { - if ( tween.elem.nodeType && tween.elem.parentNode ) { - tween.elem[ tween.prop ] = tween.now; - } - } - }; - - jQuery.easing = { - linear: function( p ) { - return p; - }, - swing: function( p ) { - return 0.5 - Math.cos( p * Math.PI ) / 2; - } - }; - - jQuery.fx = Tween.prototype.init; - -// Back Compat <1.8 extension point - jQuery.fx.step = {}; - - - - - var - fxNow, timerId, - rfxtypes = /^(?:toggle|show|hide)$/, - rfxnum = new RegExp( "^(?:([+-])=|)(" + pnum + ")([a-z%]*)$", "i" ), - rrun = /queueHooks$/, - animationPrefilters = [ defaultPrefilter ], - tweeners = { - "*": [ function( prop, value ) { - var tween = this.createTween( prop, value ), - target = tween.cur(), - parts = rfxnum.exec( value ), - unit = parts && parts[ 3 ] || ( jQuery.cssNumber[ prop ] ? "" : "px" ), - - // Starting value computation is required for potential unit mismatches - start = ( jQuery.cssNumber[ prop ] || unit !== "px" && +target ) && - rfxnum.exec( jQuery.css( tween.elem, prop ) ), - scale = 1, - maxIterations = 20; - - if ( start && start[ 3 ] !== unit ) { - // Trust units reported by jQuery.css - unit = unit || start[ 3 ]; - - // Make sure we update the tween properties later on - parts = parts || []; - - // Iteratively approximate from a nonzero starting point - start = +target || 1; - - do { - // If previous iteration zeroed out, double until we get *something* - // Use a string for doubling factor so we don't accidentally see scale as unchanged below - scale = scale || ".5"; - - // Adjust and apply - start = start / scale; - jQuery.style( tween.elem, prop, start + unit ); - - // Update scale, tolerating zero or NaN from tween.cur() - // And breaking the loop if scale is unchanged or perfect, or if we've just had enough - } while ( scale !== (scale = tween.cur() / target) && scale !== 1 && --maxIterations ); - } - - // Update tween properties - if ( parts ) { - start = tween.start = +start || +target || 0; - tween.unit = unit; - // If a +=/-= token was provided, we're doing a relative animation - tween.end = parts[ 1 ] ? - start + ( parts[ 1 ] + 1 ) * parts[ 2 ] : - +parts[ 2 ]; - } - - return tween; - } ] - }; - -// Animations created synchronously will run synchronously - function createFxNow() { - setTimeout(function() { - fxNow = undefined; - }); - return ( fxNow = jQuery.now() ); - } - -// Generate parameters to create a standard animation - function genFx( type, includeWidth ) { - var which, - i = 0, - attrs = { height: type }; - - // if we include width, step value is 1 to do all cssExpand values, - // if we don't include width, step value is 2 to skip over Left and Right - includeWidth = includeWidth ? 1 : 0; - for ( ; i < 4 ; i += 2 - includeWidth ) { - which = cssExpand[ i ]; - attrs[ "margin" + which ] = attrs[ "padding" + which ] = type; - } - - if ( includeWidth ) { - attrs.opacity = attrs.width = type; - } - - return attrs; - } - - function createTween( value, prop, animation ) { - var tween, - collection = ( tweeners[ prop ] || [] ).concat( tweeners[ "*" ] ), - index = 0, - length = collection.length; - for ( ; index < length; index++ ) { - if ( (tween = collection[ index ].call( animation, prop, value )) ) { - - // we're done with this property - return tween; - } - } - } - - function defaultPrefilter( elem, props, opts ) { - /* jshint validthis: true */ - var prop, value, toggle, tween, hooks, oldfire, display, - anim = this, - orig = {}, - style = elem.style, - hidden = elem.nodeType && isHidden( elem ), - dataShow = data_priv.get( elem, "fxshow" ); - - // handle queue: false promises - if ( !opts.queue ) { - hooks = jQuery._queueHooks( elem, "fx" ); - if ( hooks.unqueued == null ) { - hooks.unqueued = 0; - oldfire = hooks.empty.fire; - hooks.empty.fire = function() { - if ( !hooks.unqueued ) { - oldfire(); - } - }; - } - hooks.unqueued++; - - anim.always(function() { - // doing this makes sure that the complete handler will be called - // before this completes - anim.always(function() { - hooks.unqueued--; - if ( !jQuery.queue( elem, "fx" ).length ) { - hooks.empty.fire(); - } - }); - }); - } - - // height/width overflow pass - if ( elem.nodeType === 1 && ( "height" in props || "width" in props ) ) { - // Make sure that nothing sneaks out - // Record all 3 overflow attributes because IE9-10 do not - // change the overflow attribute when overflowX and - // overflowY are set to the same value - opts.overflow = [ style.overflow, style.overflowX, style.overflowY ]; - - // Set display property to inline-block for height/width - // animations on inline elements that are having width/height animated - display = jQuery.css( elem, "display" ); - // Get default display if display is currently "none" - if ( display === "none" ) { - display = defaultDisplay( elem.nodeName ); - } - if ( display === "inline" && - jQuery.css( elem, "float" ) === "none" ) { - - style.display = "inline-block"; - } - } - - if ( opts.overflow ) { - style.overflow = "hidden"; - anim.always(function() { - style.overflow = opts.overflow[ 0 ]; - style.overflowX = opts.overflow[ 1 ]; - style.overflowY = opts.overflow[ 2 ]; - }); - } - - // show/hide pass - for ( prop in props ) { - value = props[ prop ]; - if ( rfxtypes.exec( value ) ) { - delete props[ prop ]; - toggle = toggle || value === "toggle"; - if ( value === ( hidden ? "hide" : "show" ) ) { - - // If there is dataShow left over from a stopped hide or show and we are going to proceed with show, we should pretend to be hidden - if ( value === "show" && dataShow && dataShow[ prop ] !== undefined ) { - hidden = true; - } else { - continue; - } - } - orig[ prop ] = dataShow && dataShow[ prop ] || jQuery.style( elem, prop ); - } - } - - if ( !jQuery.isEmptyObject( orig ) ) { - if ( dataShow ) { - if ( "hidden" in dataShow ) { - hidden = dataShow.hidden; - } - } else { - dataShow = data_priv.access( elem, "fxshow", {} ); - } - - // store state if its toggle - enables .stop().toggle() to "reverse" - if ( toggle ) { - dataShow.hidden = !hidden; - } - if ( hidden ) { - jQuery( elem ).show(); - } else { - anim.done(function() { - jQuery( elem ).hide(); - }); - } - anim.done(function() { - var prop; - - data_priv.remove( elem, "fxshow" ); - for ( prop in orig ) { - jQuery.style( elem, prop, orig[ prop ] ); - } - }); - for ( prop in orig ) { - tween = createTween( hidden ? dataShow[ prop ] : 0, prop, anim ); - - if ( !( prop in dataShow ) ) { - dataShow[ prop ] = tween.start; - if ( hidden ) { - tween.end = tween.start; - tween.start = prop === "width" || prop === "height" ? 1 : 0; - } - } - } - } - } - - function propFilter( props, specialEasing ) { - var index, name, easing, value, hooks; - - // camelCase, specialEasing and expand cssHook pass - for ( index in props ) { - name = jQuery.camelCase( index ); - easing = specialEasing[ name ]; - value = props[ index ]; - if ( jQuery.isArray( value ) ) { - easing = value[ 1 ]; - value = props[ index ] = value[ 0 ]; - } - - if ( index !== name ) { - props[ name ] = value; - delete props[ index ]; - } - - hooks = jQuery.cssHooks[ name ]; - if ( hooks && "expand" in hooks ) { - value = hooks.expand( value ); - delete props[ name ]; - - // not quite $.extend, this wont overwrite keys already present. - // also - reusing 'index' from above because we have the correct "name" - for ( index in value ) { - if ( !( index in props ) ) { - props[ index ] = value[ index ]; - specialEasing[ index ] = easing; - } - } - } else { - specialEasing[ name ] = easing; - } - } - } - - function Animation( elem, properties, options ) { - var result, - stopped, - index = 0, - length = animationPrefilters.length, - deferred = jQuery.Deferred().always( function() { - // don't match elem in the :animated selector - delete tick.elem; - }), - tick = function() { - if ( stopped ) { - return false; - } - var currentTime = fxNow || createFxNow(), - remaining = Math.max( 0, animation.startTime + animation.duration - currentTime ), - // archaic crash bug won't allow us to use 1 - ( 0.5 || 0 ) (#12497) - temp = remaining / animation.duration || 0, - percent = 1 - temp, - index = 0, - length = animation.tweens.length; - - for ( ; index < length ; index++ ) { - animation.tweens[ index ].run( percent ); - } - - deferred.notifyWith( elem, [ animation, percent, remaining ]); - - if ( percent < 1 && length ) { - return remaining; - } else { - deferred.resolveWith( elem, [ animation ] ); - return false; - } - }, - animation = deferred.promise({ - elem: elem, - props: jQuery.extend( {}, properties ), - opts: jQuery.extend( true, { specialEasing: {} }, options ), - originalProperties: properties, - originalOptions: options, - startTime: fxNow || createFxNow(), - duration: options.duration, - tweens: [], - createTween: function( prop, end ) { - var tween = jQuery.Tween( elem, animation.opts, prop, end, - animation.opts.specialEasing[ prop ] || animation.opts.easing ); - animation.tweens.push( tween ); - return tween; - }, - stop: function( gotoEnd ) { - var index = 0, - // if we are going to the end, we want to run all the tweens - // otherwise we skip this part - length = gotoEnd ? animation.tweens.length : 0; - if ( stopped ) { - return this; - } - stopped = true; - for ( ; index < length ; index++ ) { - animation.tweens[ index ].run( 1 ); - } - - // resolve when we played the last frame - // otherwise, reject - if ( gotoEnd ) { - deferred.resolveWith( elem, [ animation, gotoEnd ] ); - } else { - deferred.rejectWith( elem, [ animation, gotoEnd ] ); - } - return this; - } - }), - props = animation.props; - - propFilter( props, animation.opts.specialEasing ); - - for ( ; index < length ; index++ ) { - result = animationPrefilters[ index ].call( animation, elem, props, animation.opts ); - if ( result ) { - return result; - } - } - - jQuery.map( props, createTween, animation ); - - if ( jQuery.isFunction( animation.opts.start ) ) { - animation.opts.start.call( elem, animation ); - } - - jQuery.fx.timer( - jQuery.extend( tick, { - elem: elem, - anim: animation, - queue: animation.opts.queue - }) - ); - - // attach callbacks from options - return animation.progress( animation.opts.progress ) - .done( animation.opts.done, animation.opts.complete ) - .fail( animation.opts.fail ) - .always( animation.opts.always ); - } - - jQuery.Animation = jQuery.extend( Animation, { - - tweener: function( props, callback ) { - if ( jQuery.isFunction( props ) ) { - callback = props; - props = [ "*" ]; - } else { - props = props.split(" "); - } - - var prop, - index = 0, - length = props.length; - - for ( ; index < length ; index++ ) { - prop = props[ index ]; - tweeners[ prop ] = tweeners[ prop ] || []; - tweeners[ prop ].unshift( callback ); - } - }, - - prefilter: function( callback, prepend ) { - if ( prepend ) { - animationPrefilters.unshift( callback ); - } else { - animationPrefilters.push( callback ); - } - } - }); - - jQuery.speed = function( speed, easing, fn ) { - var opt = speed && typeof speed === "object" ? jQuery.extend( {}, speed ) : { - complete: fn || !fn && easing || - jQuery.isFunction( speed ) && speed, - duration: speed, - easing: fn && easing || easing && !jQuery.isFunction( easing ) && easing - }; - - opt.duration = jQuery.fx.off ? 0 : typeof opt.duration === "number" ? opt.duration : - opt.duration in jQuery.fx.speeds ? jQuery.fx.speeds[ opt.duration ] : jQuery.fx.speeds._default; - - // normalize opt.queue - true/undefined/null -> "fx" - if ( opt.queue == null || opt.queue === true ) { - opt.queue = "fx"; - } - - // Queueing - opt.old = opt.complete; - - opt.complete = function() { - if ( jQuery.isFunction( opt.old ) ) { - opt.old.call( this ); - } - - if ( opt.queue ) { - jQuery.dequeue( this, opt.queue ); - } - }; - - return opt; - }; - - jQuery.fn.extend({ - fadeTo: function( speed, to, easing, callback ) { - - // show any hidden elements after setting opacity to 0 - return this.filter( isHidden ).css( "opacity", 0 ).show() - - // animate to the value specified - .end().animate({ opacity: to }, speed, easing, callback ); - }, - animate: function( prop, speed, easing, callback ) { - var empty = jQuery.isEmptyObject( prop ), - optall = jQuery.speed( speed, easing, callback ), - doAnimation = function() { - // Operate on a copy of prop so per-property easing won't be lost - var anim = Animation( this, jQuery.extend( {}, prop ), optall ); - - // Empty animations, or finishing resolves immediately - if ( empty || data_priv.get( this, "finish" ) ) { - anim.stop( true ); - } - }; - doAnimation.finish = doAnimation; - - return empty || optall.queue === false ? - this.each( doAnimation ) : - this.queue( optall.queue, doAnimation ); - }, - stop: function( type, clearQueue, gotoEnd ) { - var stopQueue = function( hooks ) { - var stop = hooks.stop; - delete hooks.stop; - stop( gotoEnd ); - }; - - if ( typeof type !== "string" ) { - gotoEnd = clearQueue; - clearQueue = type; - type = undefined; - } - if ( clearQueue && type !== false ) { - this.queue( type || "fx", [] ); - } - - return this.each(function() { - var dequeue = true, - index = type != null && type + "queueHooks", - timers = jQuery.timers, - data = data_priv.get( this ); - - if ( index ) { - if ( data[ index ] && data[ index ].stop ) { - stopQueue( data[ index ] ); - } - } else { - for ( index in data ) { - if ( data[ index ] && data[ index ].stop && rrun.test( index ) ) { - stopQueue( data[ index ] ); - } - } - } - - for ( index = timers.length; index--; ) { - if ( timers[ index ].elem === this && (type == null || timers[ index ].queue === type) ) { - timers[ index ].anim.stop( gotoEnd ); - dequeue = false; - timers.splice( index, 1 ); - } - } - - // start the next in the queue if the last step wasn't forced - // timers currently will call their complete callbacks, which will dequeue - // but only if they were gotoEnd - if ( dequeue || !gotoEnd ) { - jQuery.dequeue( this, type ); - } - }); - }, - finish: function( type ) { - if ( type !== false ) { - type = type || "fx"; - } - return this.each(function() { - var index, - data = data_priv.get( this ), - queue = data[ type + "queue" ], - hooks = data[ type + "queueHooks" ], - timers = jQuery.timers, - length = queue ? queue.length : 0; - - // enable finishing flag on private data - data.finish = true; - - // empty the queue first - jQuery.queue( this, type, [] ); - - if ( hooks && hooks.stop ) { - hooks.stop.call( this, true ); - } - - // look for any active animations, and finish them - for ( index = timers.length; index--; ) { - if ( timers[ index ].elem === this && timers[ index ].queue === type ) { - timers[ index ].anim.stop( true ); - timers.splice( index, 1 ); - } - } - - // look for any animations in the old queue and finish them - for ( index = 0; index < length; index++ ) { - if ( queue[ index ] && queue[ index ].finish ) { - queue[ index ].finish.call( this ); - } - } - - // turn off finishing flag - delete data.finish; - }); - } - }); - - jQuery.each([ "toggle", "show", "hide" ], function( i, name ) { - var cssFn = jQuery.fn[ name ]; - jQuery.fn[ name ] = function( speed, easing, callback ) { - return speed == null || typeof speed === "boolean" ? - cssFn.apply( this, arguments ) : - this.animate( genFx( name, true ), speed, easing, callback ); - }; - }); - -// Generate shortcuts for custom animations - jQuery.each({ - slideDown: genFx("show"), - slideUp: genFx("hide"), - slideToggle: genFx("toggle"), - fadeIn: { opacity: "show" }, - fadeOut: { opacity: "hide" }, - fadeToggle: { opacity: "toggle" } - }, function( name, props ) { - jQuery.fn[ name ] = function( speed, easing, callback ) { - return this.animate( props, speed, easing, callback ); - }; - }); - - jQuery.timers = []; - jQuery.fx.tick = function() { - var timer, - i = 0, - timers = jQuery.timers; - - fxNow = jQuery.now(); - - for ( ; i < timers.length; i++ ) { - timer = timers[ i ]; - // Checks the timer has not already been removed - if ( !timer() && timers[ i ] === timer ) { - timers.splice( i--, 1 ); - } - } - - if ( !timers.length ) { - jQuery.fx.stop(); - } - fxNow = undefined; - }; - - jQuery.fx.timer = function( timer ) { - jQuery.timers.push( timer ); - if ( timer() ) { - jQuery.fx.start(); - } else { - jQuery.timers.pop(); - } - }; - - jQuery.fx.interval = 13; - - jQuery.fx.start = function() { - if ( !timerId ) { - timerId = setInterval( jQuery.fx.tick, jQuery.fx.interval ); - } - }; - - jQuery.fx.stop = function() { - clearInterval( timerId ); - timerId = null; - }; - - jQuery.fx.speeds = { - slow: 600, - fast: 200, - // Default speed - _default: 400 - }; - - -// Based off of the plugin by Clint Helfers, with permission. -// http://blindsignals.com/index.php/2009/07/jquery-delay/ - jQuery.fn.delay = function( time, type ) { - time = jQuery.fx ? jQuery.fx.speeds[ time ] || time : time; - type = type || "fx"; - - return this.queue( type, function( next, hooks ) { - var timeout = setTimeout( next, time ); - hooks.stop = function() { - clearTimeout( timeout ); - }; - }); - }; - - - (function() { - var input = document.createElement( "input" ), - select = document.createElement( "select" ), - opt = select.appendChild( document.createElement( "option" ) ); - - input.type = "checkbox"; - - // Support: iOS 5.1, Android 4.x, Android 2.3 - // Check the default checkbox/radio value ("" on old WebKit; "on" elsewhere) - support.checkOn = input.value !== ""; - - // Must access the parent to make an option select properly - // Support: IE9, IE10 - support.optSelected = opt.selected; - - // Make sure that the options inside disabled selects aren't marked as disabled - // (WebKit marks them as disabled) - select.disabled = true; - support.optDisabled = !opt.disabled; - - // Check if an input maintains its value after becoming a radio - // Support: IE9, IE10 - input = document.createElement( "input" ); - input.value = "t"; - input.type = "radio"; - support.radioValue = input.value === "t"; - })(); - - - var nodeHook, boolHook, - attrHandle = jQuery.expr.attrHandle; - - jQuery.fn.extend({ - attr: function( name, value ) { - return access( this, jQuery.attr, name, value, arguments.length > 1 ); - }, - - removeAttr: function( name ) { - return this.each(function() { - jQuery.removeAttr( this, name ); - }); - } - }); - - jQuery.extend({ - attr: function( elem, name, value ) { - var hooks, ret, - nType = elem.nodeType; - - // don't get/set attributes on text, comment and attribute nodes - if ( !elem || nType === 3 || nType === 8 || nType === 2 ) { - return; - } - - // Fallback to prop when attributes are not supported - if ( typeof elem.getAttribute === strundefined ) { - return jQuery.prop( elem, name, value ); - } - - // All attributes are lowercase - // Grab necessary hook if one is defined - if ( nType !== 1 || !jQuery.isXMLDoc( elem ) ) { - name = name.toLowerCase(); - hooks = jQuery.attrHooks[ name ] || - ( jQuery.expr.match.bool.test( name ) ? boolHook : nodeHook ); - } - - if ( value !== undefined ) { - - if ( value === null ) { - jQuery.removeAttr( elem, name ); - - } else if ( hooks && "set" in hooks && (ret = hooks.set( elem, value, name )) !== undefined ) { - return ret; - - } else { - elem.setAttribute( name, value + "" ); - return value; - } - - } else if ( hooks && "get" in hooks && (ret = hooks.get( elem, name )) !== null ) { - return ret; - - } else { - ret = jQuery.find.attr( elem, name ); - - // Non-existent attributes return null, we normalize to undefined - return ret == null ? - undefined : - ret; - } - }, - - removeAttr: function( elem, value ) { - var name, propName, - i = 0, - attrNames = value && value.match( rnotwhite ); - - if ( attrNames && elem.nodeType === 1 ) { - while ( (name = attrNames[i++]) ) { - propName = jQuery.propFix[ name ] || name; - - // Boolean attributes get special treatment (#10870) - if ( jQuery.expr.match.bool.test( name ) ) { - // Set corresponding property to false - elem[ propName ] = false; - } - - elem.removeAttribute( name ); - } - } - }, - - attrHooks: { - type: { - set: function( elem, value ) { - if ( !support.radioValue && value === "radio" && - jQuery.nodeName( elem, "input" ) ) { - // Setting the type on a radio button after the value resets the value in IE6-9 - // Reset value to default in case type is set after value during creation - var val = elem.value; - elem.setAttribute( "type", value ); - if ( val ) { - elem.value = val; - } - return value; - } - } - } - } - }); - -// Hooks for boolean attributes - boolHook = { - set: function( elem, value, name ) { - if ( value === false ) { - // Remove boolean attributes when set to false - jQuery.removeAttr( elem, name ); - } else { - elem.setAttribute( name, name ); - } - return name; - } - }; - jQuery.each( jQuery.expr.match.bool.source.match( /\w+/g ), function( i, name ) { - var getter = attrHandle[ name ] || jQuery.find.attr; - - attrHandle[ name ] = function( elem, name, isXML ) { - var ret, handle; - if ( !isXML ) { - // Avoid an infinite loop by temporarily removing this function from the getter - handle = attrHandle[ name ]; - attrHandle[ name ] = ret; - ret = getter( elem, name, isXML ) != null ? - name.toLowerCase() : - null; - attrHandle[ name ] = handle; - } - return ret; - }; - }); - - - - - var rfocusable = /^(?:input|select|textarea|button)$/i; - - jQuery.fn.extend({ - prop: function( name, value ) { - return access( this, jQuery.prop, name, value, arguments.length > 1 ); - }, - - removeProp: function( name ) { - return this.each(function() { - delete this[ jQuery.propFix[ name ] || name ]; - }); - } - }); - - jQuery.extend({ - propFix: { - "for": "htmlFor", - "class": "className" - }, - - prop: function( elem, name, value ) { - var ret, hooks, notxml, - nType = elem.nodeType; - - // don't get/set properties on text, comment and attribute nodes - if ( !elem || nType === 3 || nType === 8 || nType === 2 ) { - return; - } - - notxml = nType !== 1 || !jQuery.isXMLDoc( elem ); - - if ( notxml ) { - // Fix name and attach hooks - name = jQuery.propFix[ name ] || name; - hooks = jQuery.propHooks[ name ]; - } - - if ( value !== undefined ) { - return hooks && "set" in hooks && (ret = hooks.set( elem, value, name )) !== undefined ? - ret : - ( elem[ name ] = value ); - - } else { - return hooks && "get" in hooks && (ret = hooks.get( elem, name )) !== null ? - ret : - elem[ name ]; - } - }, - - propHooks: { - tabIndex: { - get: function( elem ) { - return elem.hasAttribute( "tabindex" ) || rfocusable.test( elem.nodeName ) || elem.href ? - elem.tabIndex : - -1; - } - } - } - }); - -// Support: IE9+ -// Selectedness for an option in an optgroup can be inaccurate - if ( !support.optSelected ) { - jQuery.propHooks.selected = { - get: function( elem ) { - var parent = elem.parentNode; - if ( parent && parent.parentNode ) { - parent.parentNode.selectedIndex; - } - return null; - } - }; - } - - jQuery.each([ - "tabIndex", - "readOnly", - "maxLength", - "cellSpacing", - "cellPadding", - "rowSpan", - "colSpan", - "useMap", - "frameBorder", - "contentEditable" - ], function() { - jQuery.propFix[ this.toLowerCase() ] = this; - }); - - - - - var rclass = /[\t\r\n\f]/g; - - jQuery.fn.extend({ - addClass: function( value ) { - var classes, elem, cur, clazz, j, finalValue, - proceed = typeof value === "string" && value, - i = 0, - len = this.length; - - if ( jQuery.isFunction( value ) ) { - return this.each(function( j ) { - jQuery( this ).addClass( value.call( this, j, this.className ) ); - }); - } - - if ( proceed ) { - // The disjunction here is for better compressibility (see removeClass) - classes = ( value || "" ).match( rnotwhite ) || []; - - for ( ; i < len; i++ ) { - elem = this[ i ]; - cur = elem.nodeType === 1 && ( elem.className ? - ( " " + elem.className + " " ).replace( rclass, " " ) : - " " - ); - - if ( cur ) { - j = 0; - while ( (clazz = classes[j++]) ) { - if ( cur.indexOf( " " + clazz + " " ) < 0 ) { - cur += clazz + " "; - } - } - - // only assign if different to avoid unneeded rendering. - finalValue = jQuery.trim( cur ); - if ( elem.className !== finalValue ) { - elem.className = finalValue; - } - } - } - } - - return this; - }, - - removeClass: function( value ) { - var classes, elem, cur, clazz, j, finalValue, - proceed = arguments.length === 0 || typeof value === "string" && value, - i = 0, - len = this.length; - - if ( jQuery.isFunction( value ) ) { - return this.each(function( j ) { - jQuery( this ).removeClass( value.call( this, j, this.className ) ); - }); - } - if ( proceed ) { - classes = ( value || "" ).match( rnotwhite ) || []; - - for ( ; i < len; i++ ) { - elem = this[ i ]; - // This expression is here for better compressibility (see addClass) - cur = elem.nodeType === 1 && ( elem.className ? - ( " " + elem.className + " " ).replace( rclass, " " ) : - "" - ); - - if ( cur ) { - j = 0; - while ( (clazz = classes[j++]) ) { - // Remove *all* instances - while ( cur.indexOf( " " + clazz + " " ) >= 0 ) { - cur = cur.replace( " " + clazz + " ", " " ); - } - } - - // only assign if different to avoid unneeded rendering. - finalValue = value ? jQuery.trim( cur ) : ""; - if ( elem.className !== finalValue ) { - elem.className = finalValue; - } - } - } - } - - return this; - }, - - toggleClass: function( value, stateVal ) { - var type = typeof value; - - if ( typeof stateVal === "boolean" && type === "string" ) { - return stateVal ? this.addClass( value ) : this.removeClass( value ); - } - - if ( jQuery.isFunction( value ) ) { - return this.each(function( i ) { - jQuery( this ).toggleClass( value.call(this, i, this.className, stateVal), stateVal ); - }); - } - - return this.each(function() { - if ( type === "string" ) { - // toggle individual class names - var className, - i = 0, - self = jQuery( this ), - classNames = value.match( rnotwhite ) || []; - - while ( (className = classNames[ i++ ]) ) { - // check each className given, space separated list - if ( self.hasClass( className ) ) { - self.removeClass( className ); - } else { - self.addClass( className ); - } - } - - // Toggle whole class name - } else if ( type === strundefined || type === "boolean" ) { - if ( this.className ) { - // store className if set - data_priv.set( this, "__className__", this.className ); - } - - // If the element has a class name or if we're passed "false", - // then remove the whole classname (if there was one, the above saved it). - // Otherwise bring back whatever was previously saved (if anything), - // falling back to the empty string if nothing was stored. - this.className = this.className || value === false ? "" : data_priv.get( this, "__className__" ) || ""; - } - }); - }, - - hasClass: function( selector ) { - var className = " " + selector + " ", - i = 0, - l = this.length; - for ( ; i < l; i++ ) { - if ( this[i].nodeType === 1 && (" " + this[i].className + " ").replace(rclass, " ").indexOf( className ) >= 0 ) { - return true; - } - } - - return false; - } - }); - - - - - var rreturn = /\r/g; - - jQuery.fn.extend({ - val: function( value ) { - var hooks, ret, isFunction, - elem = this[0]; - - if ( !arguments.length ) { - if ( elem ) { - hooks = jQuery.valHooks[ elem.type ] || jQuery.valHooks[ elem.nodeName.toLowerCase() ]; - - if ( hooks && "get" in hooks && (ret = hooks.get( elem, "value" )) !== undefined ) { - return ret; - } - - ret = elem.value; - - return typeof ret === "string" ? - // handle most common string cases - ret.replace(rreturn, "") : - // handle cases where value is null/undef or number - ret == null ? "" : ret; - } - - return; - } - - isFunction = jQuery.isFunction( value ); - - return this.each(function( i ) { - var val; - - if ( this.nodeType !== 1 ) { - return; - } - - if ( isFunction ) { - val = value.call( this, i, jQuery( this ).val() ); - } else { - val = value; - } - - // Treat null/undefined as ""; convert numbers to string - if ( val == null ) { - val = ""; - - } else if ( typeof val === "number" ) { - val += ""; - - } else if ( jQuery.isArray( val ) ) { - val = jQuery.map( val, function( value ) { - return value == null ? "" : value + ""; - }); - } - - hooks = jQuery.valHooks[ this.type ] || jQuery.valHooks[ this.nodeName.toLowerCase() ]; - - // If set returns undefined, fall back to normal setting - if ( !hooks || !("set" in hooks) || hooks.set( this, val, "value" ) === undefined ) { - this.value = val; - } - }); - } - }); - - jQuery.extend({ - valHooks: { - select: { - get: function( elem ) { - var value, option, - options = elem.options, - index = elem.selectedIndex, - one = elem.type === "select-one" || index < 0, - values = one ? null : [], - max = one ? index + 1 : options.length, - i = index < 0 ? - max : - one ? index : 0; - - // Loop through all the selected options - for ( ; i < max; i++ ) { - option = options[ i ]; - - // IE6-9 doesn't update selected after form reset (#2551) - if ( ( option.selected || i === index ) && - // Don't return options that are disabled or in a disabled optgroup - ( support.optDisabled ? !option.disabled : option.getAttribute( "disabled" ) === null ) && - ( !option.parentNode.disabled || !jQuery.nodeName( option.parentNode, "optgroup" ) ) ) { - - // Get the specific value for the option - value = jQuery( option ).val(); - - // We don't need an array for one selects - if ( one ) { - return value; - } - - // Multi-Selects return an array - values.push( value ); - } - } - - return values; - }, - - set: function( elem, value ) { - var optionSet, option, - options = elem.options, - values = jQuery.makeArray( value ), - i = options.length; - - while ( i-- ) { - option = options[ i ]; - if ( (option.selected = jQuery.inArray( jQuery(option).val(), values ) >= 0) ) { - optionSet = true; - } - } - - // force browsers to behave consistently when non-matching value is set - if ( !optionSet ) { - elem.selectedIndex = -1; - } - return values; - } - } - } - }); - -// Radios and checkboxes getter/setter - jQuery.each([ "radio", "checkbox" ], function() { - jQuery.valHooks[ this ] = { - set: function( elem, value ) { - if ( jQuery.isArray( value ) ) { - return ( elem.checked = jQuery.inArray( jQuery(elem).val(), value ) >= 0 ); - } - } - }; - if ( !support.checkOn ) { - jQuery.valHooks[ this ].get = function( elem ) { - // Support: Webkit - // "" is returned instead of "on" if a value isn't specified - return elem.getAttribute("value") === null ? "on" : elem.value; - }; - } - }); - - - - -// Return jQuery for attributes-only inclusion - - - jQuery.each( ("blur focus focusin focusout load resize scroll unload click dblclick " + - "mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave " + - "change select submit keydown keypress keyup error contextmenu").split(" "), function( i, name ) { - - // Handle event binding - jQuery.fn[ name ] = function( data, fn ) { - return arguments.length > 0 ? - this.on( name, null, data, fn ) : - this.trigger( name ); - }; - }); - - jQuery.fn.extend({ - hover: function( fnOver, fnOut ) { - return this.mouseenter( fnOver ).mouseleave( fnOut || fnOver ); - }, - - bind: function( types, data, fn ) { - return this.on( types, null, data, fn ); - }, - unbind: function( types, fn ) { - return this.off( types, null, fn ); - }, - - delegate: function( selector, types, data, fn ) { - return this.on( types, selector, data, fn ); - }, - undelegate: function( selector, types, fn ) { - // ( namespace ) or ( selector, types [, fn] ) - return arguments.length === 1 ? this.off( selector, "**" ) : this.off( types, selector || "**", fn ); - } - }); - - - var nonce = jQuery.now(); - - var rquery = (/\?/); - - - -// Support: Android 2.3 -// Workaround failure to string-cast null input - jQuery.parseJSON = function( data ) { - return JSON.parse( data + "" ); - }; - - -// Cross-browser xml parsing - jQuery.parseXML = function( data ) { - var xml, tmp; - if ( !data || typeof data !== "string" ) { - return null; - } - - // Support: IE9 - try { - tmp = new DOMParser(); - xml = tmp.parseFromString( data, "text/xml" ); - } catch ( e ) { - xml = undefined; - } - - if ( !xml || xml.getElementsByTagName( "parsererror" ).length ) { - jQuery.error( "Invalid XML: " + data ); - } - return xml; - }; - - - var - // Document location - ajaxLocParts, - ajaxLocation, - - rhash = /#.*$/, - rts = /([?&])_=[^&]*/, - rheaders = /^(.*?):[ \t]*([^\r\n]*)$/mg, - // #7653, #8125, #8152: local protocol detection - rlocalProtocol = /^(?:about|app|app-storage|.+-extension|file|res|widget):$/, - rnoContent = /^(?:GET|HEAD)$/, - rprotocol = /^\/\//, - rurl = /^([\w.+-]+:)(?:\/\/(?:[^\/?#]*@|)([^\/?#:]*)(?::(\d+)|)|)/, - - /* Prefilters - * 1) They are useful to introduce custom dataTypes (see ajax/jsonp.js for an example) - * 2) These are called: - * - BEFORE asking for a transport - * - AFTER param serialization (s.data is a string if s.processData is true) - * 3) key is the dataType - * 4) the catchall symbol "*" can be used - * 5) execution will start with transport dataType and THEN continue down to "*" if needed - */ - prefilters = {}, - - /* Transports bindings - * 1) key is the dataType - * 2) the catchall symbol "*" can be used - * 3) selection will start with transport dataType and THEN go to "*" if needed - */ - transports = {}, - - // Avoid comment-prolog char sequence (#10098); must appease lint and evade compression - allTypes = "*/".concat("*"); - -// #8138, IE may throw an exception when accessing -// a field from window.location if document.domain has been set - try { - ajaxLocation = location.href; - } catch( e ) { - // Use the href attribute of an A element - // since IE will modify it given document.location - ajaxLocation = document.createElement( "a" ); - ajaxLocation.href = ""; - ajaxLocation = ajaxLocation.href; - } - -// Segment location into parts - ajaxLocParts = rurl.exec( ajaxLocation.toLowerCase() ) || []; - -// Base "constructor" for jQuery.ajaxPrefilter and jQuery.ajaxTransport - function addToPrefiltersOrTransports( structure ) { - - // dataTypeExpression is optional and defaults to "*" - return function( dataTypeExpression, func ) { - - if ( typeof dataTypeExpression !== "string" ) { - func = dataTypeExpression; - dataTypeExpression = "*"; - } - - var dataType, - i = 0, - dataTypes = dataTypeExpression.toLowerCase().match( rnotwhite ) || []; - - if ( jQuery.isFunction( func ) ) { - // For each dataType in the dataTypeExpression - while ( (dataType = dataTypes[i++]) ) { - // Prepend if requested - if ( dataType[0] === "+" ) { - dataType = dataType.slice( 1 ) || "*"; - (structure[ dataType ] = structure[ dataType ] || []).unshift( func ); - - // Otherwise append - } else { - (structure[ dataType ] = structure[ dataType ] || []).push( func ); - } - } - } - }; - } - -// Base inspection function for prefilters and transports - function inspectPrefiltersOrTransports( structure, options, originalOptions, jqXHR ) { - - var inspected = {}, - seekingTransport = ( structure === transports ); - - function inspect( dataType ) { - var selected; - inspected[ dataType ] = true; - jQuery.each( structure[ dataType ] || [], function( _, prefilterOrFactory ) { - var dataTypeOrTransport = prefilterOrFactory( options, originalOptions, jqXHR ); - if ( typeof dataTypeOrTransport === "string" && !seekingTransport && !inspected[ dataTypeOrTransport ] ) { - options.dataTypes.unshift( dataTypeOrTransport ); - inspect( dataTypeOrTransport ); - return false; - } else if ( seekingTransport ) { - return !( selected = dataTypeOrTransport ); - } - }); - return selected; - } - - return inspect( options.dataTypes[ 0 ] ) || !inspected[ "*" ] && inspect( "*" ); - } - -// A special extend for ajax options -// that takes "flat" options (not to be deep extended) -// Fixes #9887 - function ajaxExtend( target, src ) { - var key, deep, - flatOptions = jQuery.ajaxSettings.flatOptions || {}; - - for ( key in src ) { - if ( src[ key ] !== undefined ) { - ( flatOptions[ key ] ? target : ( deep || (deep = {}) ) )[ key ] = src[ key ]; - } - } - if ( deep ) { - jQuery.extend( true, target, deep ); - } - - return target; - } - - /* Handles responses to an ajax request: - * - finds the right dataType (mediates between content-type and expected dataType) - * - returns the corresponding response - */ - function ajaxHandleResponses( s, jqXHR, responses ) { - - var ct, type, finalDataType, firstDataType, - contents = s.contents, - dataTypes = s.dataTypes; - - // Remove auto dataType and get content-type in the process - while ( dataTypes[ 0 ] === "*" ) { - dataTypes.shift(); - if ( ct === undefined ) { - ct = s.mimeType || jqXHR.getResponseHeader("Content-Type"); - } - } - - // Check if we're dealing with a known content-type - if ( ct ) { - for ( type in contents ) { - if ( contents[ type ] && contents[ type ].test( ct ) ) { - dataTypes.unshift( type ); - break; - } - } - } - - // Check to see if we have a response for the expected dataType - if ( dataTypes[ 0 ] in responses ) { - finalDataType = dataTypes[ 0 ]; - } else { - // Try convertible dataTypes - for ( type in responses ) { - if ( !dataTypes[ 0 ] || s.converters[ type + " " + dataTypes[0] ] ) { - finalDataType = type; - break; - } - if ( !firstDataType ) { - firstDataType = type; - } - } - // Or just use first one - finalDataType = finalDataType || firstDataType; - } - - // If we found a dataType - // We add the dataType to the list if needed - // and return the corresponding response - if ( finalDataType ) { - if ( finalDataType !== dataTypes[ 0 ] ) { - dataTypes.unshift( finalDataType ); - } - return responses[ finalDataType ]; - } - } - - /* Chain conversions given the request and the original response - * Also sets the responseXXX fields on the jqXHR instance - */ - function ajaxConvert( s, response, jqXHR, isSuccess ) { - var conv2, current, conv, tmp, prev, - converters = {}, - // Work with a copy of dataTypes in case we need to modify it for conversion - dataTypes = s.dataTypes.slice(); - - // Create converters map with lowercased keys - if ( dataTypes[ 1 ] ) { - for ( conv in s.converters ) { - converters[ conv.toLowerCase() ] = s.converters[ conv ]; - } - } - - current = dataTypes.shift(); - - // Convert to each sequential dataType - while ( current ) { - - if ( s.responseFields[ current ] ) { - jqXHR[ s.responseFields[ current ] ] = response; - } - - // Apply the dataFilter if provided - if ( !prev && isSuccess && s.dataFilter ) { - response = s.dataFilter( response, s.dataType ); - } - - prev = current; - current = dataTypes.shift(); - - if ( current ) { - - // There's only work to do if current dataType is non-auto - if ( current === "*" ) { - - current = prev; - - // Convert response if prev dataType is non-auto and differs from current - } else if ( prev !== "*" && prev !== current ) { - - // Seek a direct converter - conv = converters[ prev + " " + current ] || converters[ "* " + current ]; - - // If none found, seek a pair - if ( !conv ) { - for ( conv2 in converters ) { - - // If conv2 outputs current - tmp = conv2.split( " " ); - if ( tmp[ 1 ] === current ) { - - // If prev can be converted to accepted input - conv = converters[ prev + " " + tmp[ 0 ] ] || - converters[ "* " + tmp[ 0 ] ]; - if ( conv ) { - // Condense equivalence converters - if ( conv === true ) { - conv = converters[ conv2 ]; - - // Otherwise, insert the intermediate dataType - } else if ( converters[ conv2 ] !== true ) { - current = tmp[ 0 ]; - dataTypes.unshift( tmp[ 1 ] ); - } - break; - } - } - } - } - - // Apply converter (if not an equivalence) - if ( conv !== true ) { - - // Unless errors are allowed to bubble, catch and return them - if ( conv && s[ "throws" ] ) { - response = conv( response ); - } else { - try { - response = conv( response ); - } catch ( e ) { - return { state: "parsererror", error: conv ? e : "No conversion from " + prev + " to " + current }; - } - } - } - } - } - } - - return { state: "success", data: response }; - } - - jQuery.extend({ - - // Counter for holding the number of active queries - active: 0, - - // Last-Modified header cache for next request - lastModified: {}, - etag: {}, - - ajaxSettings: { - url: ajaxLocation, - type: "GET", - isLocal: rlocalProtocol.test( ajaxLocParts[ 1 ] ), - global: true, - processData: true, - async: true, - contentType: "application/x-www-form-urlencoded; charset=UTF-8", - /* - timeout: 0, - data: null, - dataType: null, - username: null, - password: null, - cache: null, - throws: false, - traditional: false, - headers: {}, - */ - - accepts: { - "*": allTypes, - text: "text/plain", - html: "text/html", - xml: "application/xml, text/xml", - json: "application/json, text/javascript" - }, - - contents: { - xml: /xml/, - html: /html/, - json: /json/ - }, - - responseFields: { - xml: "responseXML", - text: "responseText", - json: "responseJSON" - }, - - // Data converters - // Keys separate source (or catchall "*") and destination types with a single space - converters: { - - // Convert anything to text - "* text": String, - - // Text to html (true = no transformation) - "text html": true, - - // Evaluate text as a json expression - "text json": jQuery.parseJSON, - - // Parse text as xml - "text xml": jQuery.parseXML - }, - - // For options that shouldn't be deep extended: - // you can add your own custom options here if - // and when you create one that shouldn't be - // deep extended (see ajaxExtend) - flatOptions: { - url: true, - context: true - } - }, - - // Creates a full fledged settings object into target - // with both ajaxSettings and settings fields. - // If target is omitted, writes into ajaxSettings. - ajaxSetup: function( target, settings ) { - return settings ? - - // Building a settings object - ajaxExtend( ajaxExtend( target, jQuery.ajaxSettings ), settings ) : - - // Extending ajaxSettings - ajaxExtend( jQuery.ajaxSettings, target ); - }, - - ajaxPrefilter: addToPrefiltersOrTransports( prefilters ), - ajaxTransport: addToPrefiltersOrTransports( transports ), - - // Main method - ajax: function( url, options ) { - - // If url is an object, simulate pre-1.5 signature - if ( typeof url === "object" ) { - options = url; - url = undefined; - } - - // Force options to be an object - options = options || {}; - - var transport, - // URL without anti-cache param - cacheURL, - // Response headers - responseHeadersString, - responseHeaders, - // timeout handle - timeoutTimer, - // Cross-domain detection vars - parts, - // To know if global events are to be dispatched - fireGlobals, - // Loop variable - i, - // Create the final options object - s = jQuery.ajaxSetup( {}, options ), - // Callbacks context - callbackContext = s.context || s, - // Context for global events is callbackContext if it is a DOM node or jQuery collection - globalEventContext = s.context && ( callbackContext.nodeType || callbackContext.jquery ) ? - jQuery( callbackContext ) : - jQuery.event, - // Deferreds - deferred = jQuery.Deferred(), - completeDeferred = jQuery.Callbacks("once memory"), - // Status-dependent callbacks - statusCode = s.statusCode || {}, - // Headers (they are sent all at once) - requestHeaders = {}, - requestHeadersNames = {}, - // The jqXHR state - state = 0, - // Default abort message - strAbort = "canceled", - // Fake xhr - jqXHR = { - readyState: 0, - - // Builds headers hashtable if needed - getResponseHeader: function( key ) { - var match; - if ( state === 2 ) { - if ( !responseHeaders ) { - responseHeaders = {}; - while ( (match = rheaders.exec( responseHeadersString )) ) { - responseHeaders[ match[1].toLowerCase() ] = match[ 2 ]; - } - } - match = responseHeaders[ key.toLowerCase() ]; - } - return match == null ? null : match; - }, - - // Raw string - getAllResponseHeaders: function() { - return state === 2 ? responseHeadersString : null; - }, - - // Caches the header - setRequestHeader: function( name, value ) { - var lname = name.toLowerCase(); - if ( !state ) { - name = requestHeadersNames[ lname ] = requestHeadersNames[ lname ] || name; - requestHeaders[ name ] = value; - } - return this; - }, - - // Overrides response content-type header - overrideMimeType: function( type ) { - if ( !state ) { - s.mimeType = type; - } - return this; - }, - - // Status-dependent callbacks - statusCode: function( map ) { - var code; - if ( map ) { - if ( state < 2 ) { - for ( code in map ) { - // Lazy-add the new callback in a way that preserves old ones - statusCode[ code ] = [ statusCode[ code ], map[ code ] ]; - } - } else { - // Execute the appropriate callbacks - jqXHR.always( map[ jqXHR.status ] ); - } - } - return this; - }, - - // Cancel the request - abort: function( statusText ) { - var finalText = statusText || strAbort; - if ( transport ) { - transport.abort( finalText ); - } - done( 0, finalText ); - return this; - } - }; - - // Attach deferreds - deferred.promise( jqXHR ).complete = completeDeferred.add; - jqXHR.success = jqXHR.done; - jqXHR.error = jqXHR.fail; - - // Remove hash character (#7531: and string promotion) - // Add protocol if not provided (prefilters might expect it) - // Handle falsy url in the settings object (#10093: consistency with old signature) - // We also use the url parameter if available - s.url = ( ( url || s.url || ajaxLocation ) + "" ).replace( rhash, "" ) - .replace( rprotocol, ajaxLocParts[ 1 ] + "//" ); - - // Alias method option to type as per ticket #12004 - s.type = options.method || options.type || s.method || s.type; - - // Extract dataTypes list - s.dataTypes = jQuery.trim( s.dataType || "*" ).toLowerCase().match( rnotwhite ) || [ "" ]; - - // A cross-domain request is in order when we have a protocol:host:port mismatch - if ( s.crossDomain == null ) { - parts = rurl.exec( s.url.toLowerCase() ); - s.crossDomain = !!( parts && - ( parts[ 1 ] !== ajaxLocParts[ 1 ] || parts[ 2 ] !== ajaxLocParts[ 2 ] || - ( parts[ 3 ] || ( parts[ 1 ] === "http:" ? "80" : "443" ) ) !== - ( ajaxLocParts[ 3 ] || ( ajaxLocParts[ 1 ] === "http:" ? "80" : "443" ) ) ) - ); - } - - // Convert data if not already a string - if ( s.data && s.processData && typeof s.data !== "string" ) { - s.data = jQuery.param( s.data, s.traditional ); - } - - // Apply prefilters - inspectPrefiltersOrTransports( prefilters, s, options, jqXHR ); - - // If request was aborted inside a prefilter, stop there - if ( state === 2 ) { - return jqXHR; - } - - // We can fire global events as of now if asked to - fireGlobals = s.global; - - // Watch for a new set of requests - if ( fireGlobals && jQuery.active++ === 0 ) { - jQuery.event.trigger("ajaxStart"); - } - - // Uppercase the type - s.type = s.type.toUpperCase(); - - // Determine if request has content - s.hasContent = !rnoContent.test( s.type ); - - // Save the URL in case we're toying with the If-Modified-Since - // and/or If-None-Match header later on - cacheURL = s.url; - - // More options handling for requests with no content - if ( !s.hasContent ) { - - // If data is available, append data to url - if ( s.data ) { - cacheURL = ( s.url += ( rquery.test( cacheURL ) ? "&" : "?" ) + s.data ); - // #9682: remove data so that it's not used in an eventual retry - delete s.data; - } - - // Add anti-cache in url if needed - if ( s.cache === false ) { - s.url = rts.test( cacheURL ) ? - - // If there is already a '_' parameter, set its value - cacheURL.replace( rts, "$1_=" + nonce++ ) : - - // Otherwise add one to the end - cacheURL + ( rquery.test( cacheURL ) ? "&" : "?" ) + "_=" + nonce++; - } - } - - // Set the If-Modified-Since and/or If-None-Match header, if in ifModified mode. - if ( s.ifModified ) { - if ( jQuery.lastModified[ cacheURL ] ) { - jqXHR.setRequestHeader( "If-Modified-Since", jQuery.lastModified[ cacheURL ] ); - } - if ( jQuery.etag[ cacheURL ] ) { - jqXHR.setRequestHeader( "If-None-Match", jQuery.etag[ cacheURL ] ); - } - } - - // Set the correct header, if data is being sent - if ( s.data && s.hasContent && s.contentType !== false || options.contentType ) { - jqXHR.setRequestHeader( "Content-Type", s.contentType ); - } - - // Set the Accepts header for the server, depending on the dataType - jqXHR.setRequestHeader( - "Accept", - s.dataTypes[ 0 ] && s.accepts[ s.dataTypes[0] ] ? - s.accepts[ s.dataTypes[0] ] + ( s.dataTypes[ 0 ] !== "*" ? ", " + allTypes + "; q=0.01" : "" ) : - s.accepts[ "*" ] - ); - - // Check for headers option - for ( i in s.headers ) { - jqXHR.setRequestHeader( i, s.headers[ i ] ); - } - - // Allow custom headers/mimetypes and early abort - if ( s.beforeSend && ( s.beforeSend.call( callbackContext, jqXHR, s ) === false || state === 2 ) ) { - // Abort if not done already and return - return jqXHR.abort(); - } - - // aborting is no longer a cancellation - strAbort = "abort"; - - // Install callbacks on deferreds - for ( i in { success: 1, error: 1, complete: 1 } ) { - jqXHR[ i ]( s[ i ] ); - } - - // Get transport - transport = inspectPrefiltersOrTransports( transports, s, options, jqXHR ); - - // If no transport, we auto-abort - if ( !transport ) { - done( -1, "No Transport" ); - } else { - jqXHR.readyState = 1; - - // Send global event - if ( fireGlobals ) { - globalEventContext.trigger( "ajaxSend", [ jqXHR, s ] ); - } - // Timeout - if ( s.async && s.timeout > 0 ) { - timeoutTimer = setTimeout(function() { - jqXHR.abort("timeout"); - }, s.timeout ); - } - - try { - state = 1; - transport.send( requestHeaders, done ); - } catch ( e ) { - // Propagate exception as error if not done - if ( state < 2 ) { - done( -1, e ); - // Simply rethrow otherwise - } else { - throw e; - } - } - } - - // Callback for when everything is done - function done( status, nativeStatusText, responses, headers ) { - var isSuccess, success, error, response, modified, - statusText = nativeStatusText; - - // Called once - if ( state === 2 ) { - return; - } - - // State is "done" now - state = 2; - - // Clear timeout if it exists - if ( timeoutTimer ) { - clearTimeout( timeoutTimer ); - } - - // Dereference transport for early garbage collection - // (no matter how long the jqXHR object will be used) - transport = undefined; - - // Cache response headers - responseHeadersString = headers || ""; - - // Set readyState - jqXHR.readyState = status > 0 ? 4 : 0; - - // Determine if successful - isSuccess = status >= 200 && status < 300 || status === 304; - - // Get response data - if ( responses ) { - response = ajaxHandleResponses( s, jqXHR, responses ); - } - - // Convert no matter what (that way responseXXX fields are always set) - response = ajaxConvert( s, response, jqXHR, isSuccess ); - - // If successful, handle type chaining - if ( isSuccess ) { - - // Set the If-Modified-Since and/or If-None-Match header, if in ifModified mode. - if ( s.ifModified ) { - modified = jqXHR.getResponseHeader("Last-Modified"); - if ( modified ) { - jQuery.lastModified[ cacheURL ] = modified; - } - modified = jqXHR.getResponseHeader("etag"); - if ( modified ) { - jQuery.etag[ cacheURL ] = modified; - } - } - - // if no content - if ( status === 204 || s.type === "HEAD" ) { - statusText = "nocontent"; - - // if not modified - } else if ( status === 304 ) { - statusText = "notmodified"; - - // If we have data, let's convert it - } else { - statusText = response.state; - success = response.data; - error = response.error; - isSuccess = !error; - } - } else { - // We extract error from statusText - // then normalize statusText and status for non-aborts - error = statusText; - if ( status || !statusText ) { - statusText = "error"; - if ( status < 0 ) { - status = 0; - } - } - } - - // Set data for the fake xhr object - jqXHR.status = status; - jqXHR.statusText = ( nativeStatusText || statusText ) + ""; - - // Success/Error - if ( isSuccess ) { - deferred.resolveWith( callbackContext, [ success, statusText, jqXHR ] ); - } else { - deferred.rejectWith( callbackContext, [ jqXHR, statusText, error ] ); - } - - // Status-dependent callbacks - jqXHR.statusCode( statusCode ); - statusCode = undefined; - - if ( fireGlobals ) { - globalEventContext.trigger( isSuccess ? "ajaxSuccess" : "ajaxError", - [ jqXHR, s, isSuccess ? success : error ] ); - } - - // Complete - completeDeferred.fireWith( callbackContext, [ jqXHR, statusText ] ); - - if ( fireGlobals ) { - globalEventContext.trigger( "ajaxComplete", [ jqXHR, s ] ); - // Handle the global AJAX counter - if ( !( --jQuery.active ) ) { - jQuery.event.trigger("ajaxStop"); - } - } - } - - return jqXHR; - }, - - getJSON: function( url, data, callback ) { - return jQuery.get( url, data, callback, "json" ); - }, - - getScript: function( url, callback ) { - return jQuery.get( url, undefined, callback, "script" ); - } - }); - - jQuery.each( [ "get", "post" ], function( i, method ) { - jQuery[ method ] = function( url, data, callback, type ) { - // shift arguments if data argument was omitted - if ( jQuery.isFunction( data ) ) { - type = type || callback; - callback = data; - data = undefined; - } - - return jQuery.ajax({ - url: url, - type: method, - dataType: type, - data: data, - success: callback - }); - }; - }); - -// Attach a bunch of functions for handling common AJAX events - jQuery.each( [ "ajaxStart", "ajaxStop", "ajaxComplete", "ajaxError", "ajaxSuccess", "ajaxSend" ], function( i, type ) { - jQuery.fn[ type ] = function( fn ) { - return this.on( type, fn ); - }; - }); - - - jQuery._evalUrl = function( url ) { - return jQuery.ajax({ - url: url, - type: "GET", - dataType: "script", - async: false, - global: false, - "throws": true - }); - }; - - - jQuery.fn.extend({ - wrapAll: function( html ) { - var wrap; - - if ( jQuery.isFunction( html ) ) { - return this.each(function( i ) { - jQuery( this ).wrapAll( html.call(this, i) ); - }); - } - - if ( this[ 0 ] ) { - - // The elements to wrap the target around - wrap = jQuery( html, this[ 0 ].ownerDocument ).eq( 0 ).clone( true ); - - if ( this[ 0 ].parentNode ) { - wrap.insertBefore( this[ 0 ] ); - } - - wrap.map(function() { - var elem = this; - - while ( elem.firstElementChild ) { - elem = elem.firstElementChild; - } - - return elem; - }).append( this ); - } - - return this; - }, - - wrapInner: function( html ) { - if ( jQuery.isFunction( html ) ) { - return this.each(function( i ) { - jQuery( this ).wrapInner( html.call(this, i) ); - }); - } - - return this.each(function() { - var self = jQuery( this ), - contents = self.contents(); - - if ( contents.length ) { - contents.wrapAll( html ); - - } else { - self.append( html ); - } - }); - }, - - wrap: function( html ) { - var isFunction = jQuery.isFunction( html ); - - return this.each(function( i ) { - jQuery( this ).wrapAll( isFunction ? html.call(this, i) : html ); - }); - }, - - unwrap: function() { - return this.parent().each(function() { - if ( !jQuery.nodeName( this, "body" ) ) { - jQuery( this ).replaceWith( this.childNodes ); - } - }).end(); - } - }); - - - jQuery.expr.filters.hidden = function( elem ) { - // Support: Opera <= 12.12 - // Opera reports offsetWidths and offsetHeights less than zero on some elements - return elem.offsetWidth <= 0 && elem.offsetHeight <= 0; - }; - jQuery.expr.filters.visible = function( elem ) { - return !jQuery.expr.filters.hidden( elem ); - }; - - - - - var r20 = /%20/g, - rbracket = /\[\]$/, - rCRLF = /\r?\n/g, - rsubmitterTypes = /^(?:submit|button|image|reset|file)$/i, - rsubmittable = /^(?:input|select|textarea|keygen)/i; - - function buildParams( prefix, obj, traditional, add ) { - var name; - - if ( jQuery.isArray( obj ) ) { - // Serialize array item. - jQuery.each( obj, function( i, v ) { - if ( traditional || rbracket.test( prefix ) ) { - // Treat each array item as a scalar. - add( prefix, v ); - - } else { - // Item is non-scalar (array or object), encode its numeric index. - buildParams( prefix + "[" + ( typeof v === "object" ? i : "" ) + "]", v, traditional, add ); - } - }); - - } else if ( !traditional && jQuery.type( obj ) === "object" ) { - // Serialize object item. - for ( name in obj ) { - buildParams( prefix + "[" + name + "]", obj[ name ], traditional, add ); - } - - } else { - // Serialize scalar item. - add( prefix, obj ); - } - } - -// Serialize an array of form elements or a set of -// key/values into a query string - jQuery.param = function( a, traditional ) { - var prefix, - s = [], - add = function( key, value ) { - // If value is a function, invoke it and return its value - value = jQuery.isFunction( value ) ? value() : ( value == null ? "" : value ); - s[ s.length ] = encodeURIComponent( key ) + "=" + encodeURIComponent( value ); - }; - - // Set traditional to true for jQuery <= 1.3.2 behavior. - if ( traditional === undefined ) { - traditional = jQuery.ajaxSettings && jQuery.ajaxSettings.traditional; - } - - // If an array was passed in, assume that it is an array of form elements. - if ( jQuery.isArray( a ) || ( a.jquery && !jQuery.isPlainObject( a ) ) ) { - // Serialize the form elements - jQuery.each( a, function() { - add( this.name, this.value ); - }); - - } else { - // If traditional, encode the "old" way (the way 1.3.2 or older - // did it), otherwise encode params recursively. - for ( prefix in a ) { - buildParams( prefix, a[ prefix ], traditional, add ); - } - } - - // Return the resulting serialization - return s.join( "&" ).replace( r20, "+" ); - }; - - jQuery.fn.extend({ - serialize: function() { - return jQuery.param( this.serializeArray() ); - }, - serializeArray: function() { - return this.map(function() { - // Can add propHook for "elements" to filter or add form elements - var elements = jQuery.prop( this, "elements" ); - return elements ? jQuery.makeArray( elements ) : this; - }) - .filter(function() { - var type = this.type; - - // Use .is( ":disabled" ) so that fieldset[disabled] works - return this.name && !jQuery( this ).is( ":disabled" ) && - rsubmittable.test( this.nodeName ) && !rsubmitterTypes.test( type ) && - ( this.checked || !rcheckableType.test( type ) ); - }) - .map(function( i, elem ) { - var val = jQuery( this ).val(); - - return val == null ? - null : - jQuery.isArray( val ) ? - jQuery.map( val, function( val ) { - return { name: elem.name, value: val.replace( rCRLF, "\r\n" ) }; - }) : - { name: elem.name, value: val.replace( rCRLF, "\r\n" ) }; - }).get(); - } - }); - - - jQuery.ajaxSettings.xhr = function() { - try { - return new XMLHttpRequest(); - } catch( e ) {} - }; - - var xhrId = 0, - xhrCallbacks = {}, - xhrSuccessStatus = { - // file protocol always yields status code 0, assume 200 - 0: 200, - // Support: IE9 - // #1450: sometimes IE returns 1223 when it should be 204 - 1223: 204 - }, - xhrSupported = jQuery.ajaxSettings.xhr(); - -// Support: IE9 -// Open requests must be manually aborted on unload (#5280) - if ( window.ActiveXObject ) { - jQuery( window ).on( "unload", function() { - for ( var key in xhrCallbacks ) { - xhrCallbacks[ key ](); - } - }); - } - - support.cors = !!xhrSupported && ( "withCredentials" in xhrSupported ); - support.ajax = xhrSupported = !!xhrSupported; - - jQuery.ajaxTransport(function( options ) { - var callback; - - // Cross domain only allowed if supported through XMLHttpRequest - if ( support.cors || xhrSupported && !options.crossDomain ) { - return { - send: function( headers, complete ) { - var i, - xhr = options.xhr(), - id = ++xhrId; - - xhr.open( options.type, options.url, options.async, options.username, options.password ); - - // Apply custom fields if provided - if ( options.xhrFields ) { - for ( i in options.xhrFields ) { - xhr[ i ] = options.xhrFields[ i ]; - } - } - - // Override mime type if needed - if ( options.mimeType && xhr.overrideMimeType ) { - xhr.overrideMimeType( options.mimeType ); - } - - // X-Requested-With header - // For cross-domain requests, seeing as conditions for a preflight are - // akin to a jigsaw puzzle, we simply never set it to be sure. - // (it can always be set on a per-request basis or even using ajaxSetup) - // For same-domain requests, won't change header if already provided. - if ( !options.crossDomain && !headers["X-Requested-With"] ) { - headers["X-Requested-With"] = "XMLHttpRequest"; - } - - // Set headers - for ( i in headers ) { - xhr.setRequestHeader( i, headers[ i ] ); - } - - // Callback - callback = function( type ) { - return function() { - if ( callback ) { - delete xhrCallbacks[ id ]; - callback = xhr.onload = xhr.onerror = null; - - if ( type === "abort" ) { - xhr.abort(); - } else if ( type === "error" ) { - complete( - // file: protocol always yields status 0; see #8605, #14207 - xhr.status, - xhr.statusText - ); - } else { - complete( - xhrSuccessStatus[ xhr.status ] || xhr.status, - xhr.statusText, - // Support: IE9 - // Accessing binary-data responseText throws an exception - // (#11426) - typeof xhr.responseText === "string" ? { - text: xhr.responseText - } : undefined, - xhr.getAllResponseHeaders() - ); - } - } - }; - }; - - // Listen to events - xhr.onload = callback(); - xhr.onerror = callback("error"); - - // Create the abort callback - callback = xhrCallbacks[ id ] = callback("abort"); - - // Do send the request - // This may raise an exception which is actually - // handled in jQuery.ajax (so no try/catch here) - xhr.send( options.hasContent && options.data || null ); - }, - - abort: function() { - if ( callback ) { - callback(); - } - } - }; - } - }); - - - - -// Install script dataType - jQuery.ajaxSetup({ - accepts: { - script: "text/javascript, application/javascript, application/ecmascript, application/x-ecmascript" - }, - contents: { - script: /(?:java|ecma)script/ - }, - converters: { - "text script": function( text ) { - jQuery.globalEval( text ); - return text; - } - } - }); - -// Handle cache's special case and crossDomain - jQuery.ajaxPrefilter( "script", function( s ) { - if ( s.cache === undefined ) { - s.cache = false; - } - if ( s.crossDomain ) { - s.type = "GET"; - } - }); - -// Bind script tag hack transport - jQuery.ajaxTransport( "script", function( s ) { - // This transport only deals with cross domain requests - if ( s.crossDomain ) { - var script, callback; - return { - send: function( _, complete ) { - script = jQuery("<script>").prop({ - async: true, - charset: s.scriptCharset, - src: s.url - }).on( - "load error", - callback = function( evt ) { - script.remove(); - callback = null; - if ( evt ) { - complete( evt.type === "error" ? 404 : 200, evt.type ); - } - } - ); - document.head.appendChild( script[ 0 ] ); - }, - abort: function() { - if ( callback ) { - callback(); - } - } - }; - } - }); - - - - - var oldCallbacks = [], - rjsonp = /(=)\?(?=&|$)|\?\?/; - -// Default jsonp settings - jQuery.ajaxSetup({ - jsonp: "callback", - jsonpCallback: function() { - var callback = oldCallbacks.pop() || ( jQuery.expando + "_" + ( nonce++ ) ); - this[ callback ] = true; - return callback; - } - }); - -// Detect, normalize options and install callbacks for jsonp requests - jQuery.ajaxPrefilter( "json jsonp", function( s, originalSettings, jqXHR ) { - - var callbackName, overwritten, responseContainer, - jsonProp = s.jsonp !== false && ( rjsonp.test( s.url ) ? - "url" : - typeof s.data === "string" && !( s.contentType || "" ).indexOf("application/x-www-form-urlencoded") && rjsonp.test( s.data ) && "data" - ); - - // Handle iff the expected data type is "jsonp" or we have a parameter to set - if ( jsonProp || s.dataTypes[ 0 ] === "jsonp" ) { - - // Get callback name, remembering preexisting value associated with it - callbackName = s.jsonpCallback = jQuery.isFunction( s.jsonpCallback ) ? - s.jsonpCallback() : - s.jsonpCallback; - - // Insert callback into url or form data - if ( jsonProp ) { - s[ jsonProp ] = s[ jsonProp ].replace( rjsonp, "$1" + callbackName ); - } else if ( s.jsonp !== false ) { - s.url += ( rquery.test( s.url ) ? "&" : "?" ) + s.jsonp + "=" + callbackName; - } - - // Use data converter to retrieve json after script execution - s.converters["script json"] = function() { - if ( !responseContainer ) { - jQuery.error( callbackName + " was not called" ); - } - return responseContainer[ 0 ]; - }; - - // force json dataType - s.dataTypes[ 0 ] = "json"; - - // Install callback - overwritten = window[ callbackName ]; - window[ callbackName ] = function() { - responseContainer = arguments; - }; - - // Clean-up function (fires after converters) - jqXHR.always(function() { - // Restore preexisting value - window[ callbackName ] = overwritten; - - // Save back as free - if ( s[ callbackName ] ) { - // make sure that re-using the options doesn't screw things around - s.jsonpCallback = originalSettings.jsonpCallback; - - // save the callback name for future use - oldCallbacks.push( callbackName ); - } - - // Call if it was a function and we have a response - if ( responseContainer && jQuery.isFunction( overwritten ) ) { - overwritten( responseContainer[ 0 ] ); - } - - responseContainer = overwritten = undefined; - }); - - // Delegate to script - return "script"; - } - }); - - - - -// data: string of html -// context (optional): If specified, the fragment will be created in this context, defaults to document -// keepScripts (optional): If true, will include scripts passed in the html string - jQuery.parseHTML = function( data, context, keepScripts ) { - if ( !data || typeof data !== "string" ) { - return null; - } - if ( typeof context === "boolean" ) { - keepScripts = context; - context = false; - } - context = context || document; - - var parsed = rsingleTag.exec( data ), - scripts = !keepScripts && []; - - // Single tag - if ( parsed ) { - return [ context.createElement( parsed[1] ) ]; - } - - parsed = jQuery.buildFragment( [ data ], context, scripts ); - - if ( scripts && scripts.length ) { - jQuery( scripts ).remove(); - } - - return jQuery.merge( [], parsed.childNodes ); - }; - - -// Keep a copy of the old load method - var _load = jQuery.fn.load; - - /** - * Load a url into a page - */ - jQuery.fn.load = function( url, params, callback ) { - if ( typeof url !== "string" && _load ) { - return _load.apply( this, arguments ); - } - - var selector, type, response, - self = this, - off = url.indexOf(" "); - - if ( off >= 0 ) { - selector = url.slice( off ); - url = url.slice( 0, off ); - } - - // If it's a function - if ( jQuery.isFunction( params ) ) { - - // We assume that it's the callback - callback = params; - params = undefined; - - // Otherwise, build a param string - } else if ( params && typeof params === "object" ) { - type = "POST"; - } - - // If we have elements to modify, make the request - if ( self.length > 0 ) { - jQuery.ajax({ - url: url, - - // if "type" variable is undefined, then "GET" method will be used - type: type, - dataType: "html", - data: params - }).done(function( responseText ) { - - // Save response for use in complete callback - response = arguments; - - self.html( selector ? - - // If a selector was specified, locate the right elements in a dummy div - // Exclude scripts to avoid IE 'Permission Denied' errors - jQuery("<div>").append( jQuery.parseHTML( responseText ) ).find( selector ) : - - // Otherwise use the full result - responseText ); - - }).complete( callback && function( jqXHR, status ) { - self.each( callback, response || [ jqXHR.responseText, status, jqXHR ] ); - }); - } - - return this; - }; - - - - - jQuery.expr.filters.animated = function( elem ) { - return jQuery.grep(jQuery.timers, function( fn ) { - return elem === fn.elem; - }).length; - }; - - - - - var docElem = window.document.documentElement; - - /** - * Gets a window from an element - */ - function getWindow( elem ) { - return jQuery.isWindow( elem ) ? elem : elem.nodeType === 9 && elem.defaultView; - } - - jQuery.offset = { - setOffset: function( elem, options, i ) { - var curPosition, curLeft, curCSSTop, curTop, curOffset, curCSSLeft, calculatePosition, - position = jQuery.css( elem, "position" ), - curElem = jQuery( elem ), - props = {}; - - // Set position first, in-case top/left are set even on static elem - if ( position === "static" ) { - elem.style.position = "relative"; - } - - curOffset = curElem.offset(); - curCSSTop = jQuery.css( elem, "top" ); - curCSSLeft = jQuery.css( elem, "left" ); - calculatePosition = ( position === "absolute" || position === "fixed" ) && - ( curCSSTop + curCSSLeft ).indexOf("auto") > -1; - - // Need to be able to calculate position if either top or left is auto and position is either absolute or fixed - if ( calculatePosition ) { - curPosition = curElem.position(); - curTop = curPosition.top; - curLeft = curPosition.left; - - } else { - curTop = parseFloat( curCSSTop ) || 0; - curLeft = parseFloat( curCSSLeft ) || 0; - } - - if ( jQuery.isFunction( options ) ) { - options = options.call( elem, i, curOffset ); - } - - if ( options.top != null ) { - props.top = ( options.top - curOffset.top ) + curTop; - } - if ( options.left != null ) { - props.left = ( options.left - curOffset.left ) + curLeft; - } - - if ( "using" in options ) { - options.using.call( elem, props ); - - } else { - curElem.css( props ); - } - } - }; - - jQuery.fn.extend({ - offset: function( options ) { - if ( arguments.length ) { - return options === undefined ? - this : - this.each(function( i ) { - jQuery.offset.setOffset( this, options, i ); - }); - } - - var docElem, win, - elem = this[ 0 ], - box = { top: 0, left: 0 }, - doc = elem && elem.ownerDocument; - - if ( !doc ) { - return; - } - - docElem = doc.documentElement; - - // Make sure it's not a disconnected DOM node - if ( !jQuery.contains( docElem, elem ) ) { - return box; - } - - // If we don't have gBCR, just use 0,0 rather than error - // BlackBerry 5, iOS 3 (original iPhone) - if ( typeof elem.getBoundingClientRect !== strundefined ) { - box = elem.getBoundingClientRect(); - } - win = getWindow( doc ); - return { - top: box.top + win.pageYOffset - docElem.clientTop, - left: box.left + win.pageXOffset - docElem.clientLeft - }; - }, - - position: function() { - if ( !this[ 0 ] ) { - return; - } - - var offsetParent, offset, - elem = this[ 0 ], - parentOffset = { top: 0, left: 0 }; - - // Fixed elements are offset from window (parentOffset = {top:0, left: 0}, because it is its only offset parent - if ( jQuery.css( elem, "position" ) === "fixed" ) { - // We assume that getBoundingClientRect is available when computed position is fixed - offset = elem.getBoundingClientRect(); - - } else { - // Get *real* offsetParent - offsetParent = this.offsetParent(); - - // Get correct offsets - offset = this.offset(); - if ( !jQuery.nodeName( offsetParent[ 0 ], "html" ) ) { - parentOffset = offsetParent.offset(); - } - - // Add offsetParent borders - parentOffset.top += jQuery.css( offsetParent[ 0 ], "borderTopWidth", true ); - parentOffset.left += jQuery.css( offsetParent[ 0 ], "borderLeftWidth", true ); - } - - // Subtract parent offsets and element margins - return { - top: offset.top - parentOffset.top - jQuery.css( elem, "marginTop", true ), - left: offset.left - parentOffset.left - jQuery.css( elem, "marginLeft", true ) - }; - }, - - offsetParent: function() { - return this.map(function() { - var offsetParent = this.offsetParent || docElem; - - while ( offsetParent && ( !jQuery.nodeName( offsetParent, "html" ) && jQuery.css( offsetParent, "position" ) === "static" ) ) { - offsetParent = offsetParent.offsetParent; - } - - return offsetParent || docElem; - }); - } - }); - -// Create scrollLeft and scrollTop methods - jQuery.each( { scrollLeft: "pageXOffset", scrollTop: "pageYOffset" }, function( method, prop ) { - var top = "pageYOffset" === prop; - - jQuery.fn[ method ] = function( val ) { - return access( this, function( elem, method, val ) { - var win = getWindow( elem ); - - if ( val === undefined ) { - return win ? win[ prop ] : elem[ method ]; - } - - if ( win ) { - win.scrollTo( - !top ? val : window.pageXOffset, - top ? val : window.pageYOffset - ); - - } else { - elem[ method ] = val; - } - }, method, val, arguments.length, null ); - }; - }); - -// Add the top/left cssHooks using jQuery.fn.position -// Webkit bug: https://bugs.webkit.org/show_bug.cgi?id=29084 -// getComputedStyle returns percent when specified for top/left/bottom/right -// rather than make the css module depend on the offset module, we just check for it here - jQuery.each( [ "top", "left" ], function( i, prop ) { - jQuery.cssHooks[ prop ] = addGetHookIf( support.pixelPosition, - function( elem, computed ) { - if ( computed ) { - computed = curCSS( elem, prop ); - // if curCSS returns percentage, fallback to offset - return rnumnonpx.test( computed ) ? - jQuery( elem ).position()[ prop ] + "px" : - computed; - } - } - ); - }); - - -// Create innerHeight, innerWidth, height, width, outerHeight and outerWidth methods - jQuery.each( { Height: "height", Width: "width" }, function( name, type ) { - jQuery.each( { padding: "inner" + name, content: type, "": "outer" + name }, function( defaultExtra, funcName ) { - // margin is only for outerHeight, outerWidth - jQuery.fn[ funcName ] = function( margin, value ) { - var chainable = arguments.length && ( defaultExtra || typeof margin !== "boolean" ), - extra = defaultExtra || ( margin === true || value === true ? "margin" : "border" ); - - return access( this, function( elem, type, value ) { - var doc; - - if ( jQuery.isWindow( elem ) ) { - // As of 5/8/2012 this will yield incorrect results for Mobile Safari, but there - // isn't a whole lot we can do. See pull request at this URL for discussion: - // https://github.com/jquery/jquery/pull/764 - return elem.document.documentElement[ "client" + name ]; - } - - // Get document width or height - if ( elem.nodeType === 9 ) { - doc = elem.documentElement; - - // Either scroll[Width/Height] or offset[Width/Height] or client[Width/Height], - // whichever is greatest - return Math.max( - elem.body[ "scroll" + name ], doc[ "scroll" + name ], - elem.body[ "offset" + name ], doc[ "offset" + name ], - doc[ "client" + name ] - ); - } - - return value === undefined ? - // Get width or height on the element, requesting but not forcing parseFloat - jQuery.css( elem, type, extra ) : - - // Set width or height on the element - jQuery.style( elem, type, value, extra ); - }, type, chainable ? margin : undefined, chainable, null ); - }; - }); - }); - - -// The number of elements contained in the matched element set - jQuery.fn.size = function() { - return this.length; - }; - - jQuery.fn.andSelf = jQuery.fn.addBack; - - - - -// Register as a named AMD module, since jQuery can be concatenated with other -// files that may use define, but not via a proper concatenation script that -// understands anonymous AMD modules. A named AMD is safest and most robust -// way to register. Lowercase jquery is used because AMD module names are -// derived from file names, and jQuery is normally delivered in a lowercase -// file name. Do this after creating the global so that if an AMD module wants -// to call noConflict to hide this version of jQuery, it will work. - if ( typeof define === "function" && define.amd ) { - define( "jquery", [], function() { - return jQuery; - }); - } - - - - - var - // Map over jQuery in case of overwrite - _jQuery = window.jQuery, - - // Map over the $ in case of overwrite - _$ = window.$; - - jQuery.noConflict = function( deep ) { - if ( window.$ === jQuery ) { - window.$ = _$; - } - - if ( deep && window.jQuery === jQuery ) { - window.jQuery = _jQuery; - } - - return jQuery; - }; - -// Expose jQuery and $ identifiers, even in -// AMD (#7102#comment:10, https://github.com/jquery/jquery/pull/557) -// and CommonJS for browser emulators (#13566) - if ( typeof noGlobal === strundefined ) { - window.jQuery = window.$ = jQuery; - } - - - - - return jQuery; - -})); \ No newline at end of file diff --git a/admin/dist/css/AdminLTE.css b/admin/dist/css/AdminLTE.css deleted file mode 100644 index 27b5a7d..0000000 --- a/admin/dist/css/AdminLTE.css +++ /dev/null @@ -1,4066 +0,0 @@ -@import url(//fonts.googleapis.com/css?family=Source+Sans+Pro:300,400,600,700,300italic,400italic,600italic); -/*! - * AdminLTE v2.0. - * Author: Almsaeed Studio - * Website: Almsaeed Studio <http://almsaeedstudio.com> - * License: Open source - MIT - * Please visit http://opensource.org/licenses/MIT for more information -!*/ -/* - * Core: Genral Layout Style - * ------------------------- - */ -html, -body { - min-height: 100%; -} -.layout-boxed html, -.layout-boxed body { - height: 100%; -} -body { - -webkit-font-smoothing: antialiased; - -moz-osx-font-smoothing: grayscale; - font-family: 'Source Sans Pro', 'Helvetica Neue', Helvetica, Arial, sans-serif; - font-weight: 400; - overflow-x: hidden; - overflow-y: auto; -} -/* Layout */ -.wrapper { - min-height: 100%; - position: static; - overflow: hidden; -} -.wrapper:before, -.wrapper:after { - content: " "; - display: table; -} -.wrapper:after { - clear: both; -} -.layout-boxed .wrapper { - max-width: 1250px; - margin: 0 auto; - min-height: 100%; - box-shadow: 0 0 8px rgba(0, 0, 0, 0.5); - position: relative; -} -.layout-boxed { - background: url('../img/boxed-bg.jpg') repeat fixed; -} -/* - * Content Wrapper - contins main content - * ```.right-side has been deprecated as of v2.0.0 in favor of .content-wrapper ``` - */ -.content-wrapper, -.right-side, -.main-footer { - -webkit-transition: -webkit-transform 0.3s cubic-bezier(0.32, 1.25, 0.375, 1.15); - -moz-transition: -moz-transform 0.3s cubic-bezier(0.32, 1.25, 0.375, 1.15); - -o-transition: -o-transform 0.3s cubic-bezier(0.32, 1.25, 0.375, 1.15); - transition: transform 0.3s cubic-bezier(0.32, 1.25, 0.375, 1.15); - -webkit-transition: margin-left 0.3s cubic-bezier(0.32, 1.25, 0.375, 1.15); - -o-transition: margin-left 0.3s cubic-bezier(0.32, 1.25, 0.375, 1.15); - transition: margin-left 0.3s cubic-bezier(0.32, 1.25, 0.375, 1.15); - margin-left: 230px; - z-index: 820; -} -.layout-top-nav .content-wrapper, -.layout-top-nav .right-side, -.layout-top-nav .main-footer { - margin-left: 0; -} -@media (max-width: 767px) { - .content-wrapper, - .right-side, - .main-footer { - margin-left: 0; - } -} -@media (min-width: 768px) { - .sidebar-collapse .content-wrapper, - .sidebar-collapse .right-side, - .sidebar-collapse .main-footer { - margin-left: 0; - } -} -@media (max-width: 767px) { - .sidebar-open .content-wrapper, - .sidebar-open .right-side, - .sidebar-open .main-footer { - -webkit-transform: translate(230px, 0); - -ms-transform: translate(230px, 0); - -o-transform: translate(230px, 0); - transform: translate(230px, 0); - } -} -.content-wrapper, -.right-side { - min-height: 100%; - background-color: #ecf0f5; - z-index: 800; -} -.main-footer { - background: #fff; - padding: 15px; - color: #444; - border-top: 1px solid #eee; -} -/* Fixed layout */ -.fixed .main-header, -.fixed .main-sidebar, -.fixed .left-side { - position: fixed; -} -.fixed .main-header { - top: 0; - right: 0; - left: 0; -} -.fixed .content-wrapper, -.fixed .right-side { - padding-top: 50px; -} -@media (max-width: 767px) { - .fixed .content-wrapper, - .fixed .right-side { - padding-top: 100px; - } -} -.fixed.layout-boxed .wrapper { - max-width: 100%; -} -/* Content */ -.content { - min-height: 250px; - padding: 15px; - margin-right: auto; - margin-left: auto; - padding-left: 15px; - padding-right: 15px; -} -/* H1 - H6 font */ -h1, -h2, -h3, -h4, -h5, -h6, -.h1, -.h2, -.h3, -.h4, -.h5, -.h6 { - font-family: 'Source Sans Pro', sans-serif; -} -/* General Links */ -a { - color: #3c8dbc; -} -a:hover, -a:active, -a:focus { - outline: none; - text-decoration: none; - color: #72afd2; -} -/* Page Header */ -.page-header { - margin: 10px 0 20px 0; - font-size: 22px; -} -.page-header > small { - color: #666; - display: block; - margin-top: 5px; -} -/* - * Component: Main Header - * ---------------------- - */ -.main-header { - position: relative; - max-height: 100px; - z-index: 1030; -} -.main-header > .navbar { - margin-bottom: 0; - margin-left: 230px; - border: none; - min-height: 50px; - border-radius: 0; -} -.layout-top-nav .main-header > .navbar { - margin-left: 0!important; -} -.main-header #navbar-search-input { - background: rgba(255, 255, 255, 0.2); - border-color: transparent; -} -.main-header #navbar-search-input:focus, -.main-header #navbar-search-input:active { - border-color: rgba(0, 0, 0, 0.1) !important; - background: rgba(255, 255, 255, 0.9); -} -.main-header #navbar-search-input::-moz-placeholder { - color: #ccc; - opacity: 1; -} -.main-header #navbar-search-input:-ms-input-placeholder { - color: #ccc; -} -.main-header #navbar-search-input::-webkit-input-placeholder { - color: #ccc; -} -.main-header .navbar-custom-menu, -.main-header .navbar-right { - margin-right: 5px; - float: right; -} -@media (max-width: 991px) { - .main-header .navbar-custom-menu a, - .main-header .navbar-right a { - color: inherit; - background: transparent; - } -} -@media (max-width: 767px) { - .main-header .navbar-right { - float: none; - } - .navbar-collapse .main-header .navbar-right { - margin: 7.5px -15px; - } - .main-header .navbar-right > li { - color: inherit; - border: 0; - } -} -.main-header .sidebar-toggle { - float: left; - background-color: transparent; - background-image: none; - padding: 15px 15px; - font-family: fontAwesome; -} -.main-header .sidebar-toggle:before { - content: "\f0c9"; -} -.main-header .sidebar-toggle:hover { - color: #fff; -} -.main-header .sidebar-toggle .icon-bar { - display: none; -} -.main-header .navbar .nav > li.user > a > .fa, -.main-header .navbar .nav > li.user > a > .glyphicon, -.main-header .navbar .nav > li.user > a > .ion { - margin-right: 5px; -} -.main-header .navbar .nav > li > a > .label { - position: absolute; - top: 9px; - right: 7px; - text-align: center; - font-size: 9px; - padding: 2px 3px; - line-height: .9; -} -.main-header .logo { - display: block; - float: left; - height: 50px; - font-size: 20px; - line-height: 50px; - text-align: center; - width: 230px; - font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; - padding: 0 15px; - font-weight: 300; -} -.main-header .navbar-brand { - color: #fff; -} -.content-header { - position: relative; - padding: 15px 15px 0 15px; -} -.content-header > h1 { - margin: 0; - font-size: 24px; -} -.content-header > h1 > small { - font-size: 15px; - display: inline-block; - padding-left: 4px; - font-weight: 300; -} -.content-header > .breadcrumb { - float: right; - background: transparent; - margin-top: 0px; - margin-bottom: 0; - font-size: 12px; - padding: 7px 5px; - position: absolute; - top: 15px; - right: 10px; - border-radius: 2px; -} -.content-header > .breadcrumb > li > a { - color: #444; - text-decoration: none; - display: inline-block; -} -.content-header > .breadcrumb > li > a > .fa, -.content-header > .breadcrumb > li > a > .glyphicon, -.content-header > .breadcrumb > li > a > .ion { - margin-right: 5px; -} -.content-header > .breadcrumb > li + li:before { - content: '>\00a0'; -} -@media (max-width: 991px) { - .content-header > .breadcrumb { - position: relative; - margin-top: 5px; - top: 0; - right: 0; - float: none; - background: #d2d6de; - padding-left: 10px; - } - .content-header > .breadcrumb li:before { - color: #97a0b3; - } -} -.navbar-toggle { - color: #fff; - border: 0; - margin: 0; - padding: 15px 15px; -} -@media (max-width: 991px) { - .navbar-custom-menu .navbar-nav > li { - float: left; - } - .navbar-custom-menu .navbar-nav { - margin: 0; - float: left; - } - .navbar-custom-menu .navbar-nav > li > a { - padding-top: 15px; - padding-bottom: 15px; - line-height: 20px; - } -} -@media (max-width: 767px) { - .main-header { - position: relative; - } - .main-header .logo, - .main-header .navbar { - width: 100%; - float: none; - position: relative!important; - } - .main-header .navbar { - margin: 0; - } - .main-header .navbar-custom-menu { - float: right; - } - .main-sidebar, - .left-side { - padding-top: 100px!important; - } -} -/* - * Component: Sidebar - * ------------------ - */ -.main-sidebar, -.left-side { - position: absolute; - top: 0; - left: 0; - padding-top: 50px; - min-height: 100%; - width: 230px; - z-index: 810; - -webkit-transition: -webkit-transform 0.3s cubic-bezier(0.32, 1.25, 0.375, 1.15); - -moz-transition: -moz-transform 0.3s cubic-bezier(0.32, 1.25, 0.375, 1.15); - -o-transition: -o-transform 0.3s cubic-bezier(0.32, 1.25, 0.375, 1.15); - transition: transform 0.3s cubic-bezier(0.32, 1.25, 0.375, 1.15); -} -@media (max-width: 767px) { - .main-sidebar, - .left-side { - -webkit-transform: translate(-230px, 0); - -ms-transform: translate(-230px, 0); - -o-transform: translate(-230px, 0); - transform: translate(-230px, 0); - } -} -@media (min-width: 768px) { - .sidebar-collapse .main-sidebar, - .sidebar-collapse .left-side { - -webkit-transform: translate(-230px, 0); - -ms-transform: translate(-230px, 0); - -o-transform: translate(-230px, 0); - transform: translate(-230px, 0); - } -} -@media (max-width: 767px) { - .sidebar-open .main-sidebar, - .sidebar-open .left-side { - -webkit-transform: translate(0, 0); - -ms-transform: translate(0, 0); - -o-transform: translate(0, 0); - transform: translate(0, 0); - } -} -.sidebar { - padding-bottom: 10px; -} -.fixed .sidebar { - overflow: auto; - height: 100%; -} -.sidebar-form input:focus { - border-color: transparent!important; -} -.user-panel { - padding: 10px; -} -.user-panel:before, -.user-panel:after { - content: " "; - display: table; -} -.user-panel:after { - clear: both; -} -.user-panel > .image > img { - width: 45px; - height: 45px; -} -.user-panel > .info { - font-weight: 600; - padding: 5px 5px 5px 15px; - font-size: 14px; - line-height: 1; -} -.user-panel > .info > p { - margin-bottom: 9px; -} -.user-panel > .info > a { - text-decoration: none; - padding-right: 5px; - margin-top: 3px; - font-size: 11px; - font-weight: normal; -} -.user-panel > .info > a > .fa, -.user-panel > .info > a > .ion, -.user-panel > .info > a > .glyphicon { - margin-right: 3px; -} -.sidebar-menu { - list-style: none; - margin: 0; - padding: 0; -} -.sidebar-menu > li { - position: relative; - margin: 0; - padding: 0; -} -.sidebar-menu > li > a { - padding: 12px 5px 12px 15px; - display: block; -} -.sidebar-menu > li > a > .fa, -.sidebar-menu > li > a > .glyphicon, -.sidebar-menu > li > a > .ion { - width: 20px; -} -.sidebar-menu > li .label, -.sidebar-menu > li .badge { - margin-top: 3px; - margin-right: 5px; -} -.sidebar-menu li.header { - padding: 10px 25px 10px 15px; - font-size: 12px; -} -.sidebar-menu li > a > .fa-angle-left { - width: auto; - height: auto; - padding: 0; - margin-right: 10px; - margin-top: 3px; -} -.sidebar-menu li.active > a > .fa-angle-left { - -webkit-transform: rotate(-90deg); - -ms-transform: rotate(-90deg); - -o-transform: rotate(-90deg); - transform: rotate(-90deg); -} -.sidebar-menu li.active > .treeview-menu { - display: block; -} -.sidebar-menu .treeview-menu { - display: none; - list-style: none; - padding: 0; - margin: 0; - padding-left: 5px; -} -.sidebar-menu .treeview-menu .treeview-menu { - padding-left: 20px; -} -.sidebar-menu .treeview-menu > li { - margin: 0; -} -.sidebar-menu .treeview-menu > li > a { - padding: 5px 5px 5px 15px; - display: block; - font-size: 14px; -} -.sidebar-menu .treeview-menu > li > a > .fa, -.sidebar-menu .treeview-menu > li > a > .glyphicon, -.sidebar-menu .treeview-menu > li > a > .ion { - width: 20px; -} -.sidebar-menu .treeview-menu > li > a > .fa-angle-left, -.sidebar-menu .treeview-menu > li > a > .fa-angle-down { - width: auto; -} -/* - * Component: Dropdown menus - * ------------------------- - */ -/*Dropdowns in general*/ -.dropdown-menu { - box-shadow: 0 1px 1px rgba(0, 0, 0, 0.1); - border-color: #eee; -} -.dropdown-menu > li > a { - color: #777; -} -.dropdown-menu > li > a > .glyphicon, -.dropdown-menu > li > a > .fa, -.dropdown-menu > li > a > .ion { - margin-right: 10px; -} -.dropdown-menu > li > a:hover { - background-color: #e1e3e9; - color: #333; -} -.dropdown-menu > .divider { - background-color: #eee; -} -/* - Navbar custom dropdown menu ------------------------------------- -*/ -.navbar-nav > .notifications-menu, -.navbar-nav > .messages-menu, -.navbar-nav > .tasks-menu { - position: relative; -} -.navbar-nav > .notifications-menu > .dropdown-menu, -.navbar-nav > .messages-menu > .dropdown-menu, -.navbar-nav > .tasks-menu > .dropdown-menu { - width: 280px; - padding: 0 0 0 0!important; - margin: 0!important; - top: 100%; -} -.navbar-nav > .notifications-menu > .dropdown-menu > li, -.navbar-nav > .messages-menu > .dropdown-menu > li, -.navbar-nav > .tasks-menu > .dropdown-menu > li { - position: relative; -} -.navbar-nav > .notifications-menu > .dropdown-menu > li.header, -.navbar-nav > .messages-menu > .dropdown-menu > li.header, -.navbar-nav > .tasks-menu > .dropdown-menu > li.header { - border-top-left-radius: 4px; - border-top-right-radius: 4px; - border-bottom-right-radius: 0; - border-bottom-left-radius: 0; - background-color: #ffffff; - padding: 7px 10px; - border-bottom: 1px solid #f4f4f4; - color: #444444; - font-size: 14px; -} -.navbar-nav > .notifications-menu > .dropdown-menu > li.footer > a, -.navbar-nav > .messages-menu > .dropdown-menu > li.footer > a, -.navbar-nav > .tasks-menu > .dropdown-menu > li.footer > a { - border-top-left-radius: 0px; - border-top-right-radius: 0px; - border-bottom-right-radius: 4px; - border-bottom-left-radius: 4px; - font-size: 12px; - background-color: #fff; - padding: 7px 10px; - border-bottom: 1px solid #eeeeee; - color: #444!important; - text-align: center; -} -@media (max-width: 991px) { - .navbar-nav > .notifications-menu > .dropdown-menu > li.footer > a, - .navbar-nav > .messages-menu > .dropdown-menu > li.footer > a, - .navbar-nav > .tasks-menu > .dropdown-menu > li.footer > a { - background: #fff!important; - color: #444!important; - } -} -.navbar-nav > .notifications-menu > .dropdown-menu > li.footer > a:hover, -.navbar-nav > .messages-menu > .dropdown-menu > li.footer > a:hover, -.navbar-nav > .tasks-menu > .dropdown-menu > li.footer > a:hover { - text-decoration: none; - font-weight: normal; -} -.navbar-nav > .notifications-menu > .dropdown-menu > li .menu, -.navbar-nav > .messages-menu > .dropdown-menu > li .menu, -.navbar-nav > .tasks-menu > .dropdown-menu > li .menu { - max-height: 200px; - margin: 0; - padding: 0; - list-style: none; - overflow-x: hidden; -} -.navbar-nav > .notifications-menu > .dropdown-menu > li .menu > li > a, -.navbar-nav > .messages-menu > .dropdown-menu > li .menu > li > a, -.navbar-nav > .tasks-menu > .dropdown-menu > li .menu > li > a { - display: block; - white-space: nowrap; - /* Prevent text from breaking */ - border-bottom: 1px solid #f4f4f4; -} -.navbar-nav > .notifications-menu > .dropdown-menu > li .menu > li > a:hover, -.navbar-nav > .messages-menu > .dropdown-menu > li .menu > li > a:hover, -.navbar-nav > .tasks-menu > .dropdown-menu > li .menu > li > a:hover { - background: #f4f4f4; - text-decoration: none; -} -.navbar-nav > .notifications-menu > .dropdown-menu > li .menu > li > a { - color: #444444; - overflow: hidden; - text-overflow: ellipsis; - white-space: nowrap; - padding: 10px; -} -.navbar-nav > .notifications-menu > .dropdown-menu > li .menu > li > a > .glyphicon, -.navbar-nav > .notifications-menu > .dropdown-menu > li .menu > li > a > .fa, -.navbar-nav > .notifications-menu > .dropdown-menu > li .menu > li > a > .ion { - width: 20px; -} -.navbar-nav > .messages-menu > .dropdown-menu > li .menu > li > a { - margin: 0px; - padding: 10px 10px; -} -.navbar-nav > .messages-menu > .dropdown-menu > li .menu > li > a > div > img { - margin: auto 10px auto auto; - width: 40px; - height: 40px; -} -.navbar-nav > .messages-menu > .dropdown-menu > li .menu > li > a > h4 { - padding: 0; - margin: 0 0 0 45px; - color: #444444; - font-size: 15px; - position: relative; -} -.navbar-nav > .messages-menu > .dropdown-menu > li .menu > li > a > h4 > small { - color: #999999; - font-size: 10px; - position: absolute; - top: 0px; - right: 0px; -} -.navbar-nav > .messages-menu > .dropdown-menu > li .menu > li > a > p { - margin: 0 0 0 45px; - font-size: 12px; - color: #888888; -} -.navbar-nav > .messages-menu > .dropdown-menu > li .menu > li > a:before, -.navbar-nav > .messages-menu > .dropdown-menu > li .menu > li > a:after { - content: " "; - display: table; -} -.navbar-nav > .messages-menu > .dropdown-menu > li .menu > li > a:after { - clear: both; -} -.navbar-nav > .tasks-menu > .dropdown-menu > li .menu > li > a { - padding: 10px; -} -.navbar-nav > .tasks-menu > .dropdown-menu > li .menu > li > a > h3 { - font-size: 14px; - padding: 0; - margin: 0 0 10px 0; - color: #666666; -} -.navbar-nav > .tasks-menu > .dropdown-menu > li .menu > li > a > .progress { - padding: 0; - margin: 0; -} -.navbar-nav > .user-menu > .dropdown-menu { - border-top-right-radius: 0; - border-top-left-radius: 0; - padding: 1px 0 0 0; - border-top-width: 0; - width: 280px; -} -.navbar-nav > .user-menu > .dropdown-menu, -.navbar-nav > .user-menu > .dropdown-menu > .user-body { - border-bottom-right-radius: 4px; - border-bottom-left-radius: 4px; -} -.navbar-nav > .user-menu > .dropdown-menu > li.user-header { - height: 175px; - padding: 10px; - text-align: center; -} -.navbar-nav > .user-menu > .dropdown-menu > li.user-header > img { - z-index: 5; - height: 90px; - width: 90px; - border: 3px solid; - border-color: transparent; - border-color: rgba(255, 255, 255, 0.2); -} -.navbar-nav > .user-menu > .dropdown-menu > li.user-header > p { - z-index: 5; - color: #fff; - color: rgba(255, 255, 255, 0.8); - font-size: 17px; - margin-top: 10px; -} -.navbar-nav > .user-menu > .dropdown-menu > li.user-header > p > small { - display: block; - font-size: 12px; -} -.navbar-nav > .user-menu > .dropdown-menu > .user-body { - padding: 15px; - border-bottom: 1px solid #f4f4f4; - border-top: 1px solid #dddddd; -} -.navbar-nav > .user-menu > .dropdown-menu > .user-body:before, -.navbar-nav > .user-menu > .dropdown-menu > .user-body:after { - content: " "; - display: table; -} -.navbar-nav > .user-menu > .dropdown-menu > .user-body:after { - clear: both; -} -.navbar-nav > .user-menu > .dropdown-menu > .user-body a { - color: #444 !important; -} -@media (max-width: 991px) { - .navbar-nav > .user-menu > .dropdown-menu > .user-body a { - background: #fff !important; - color: #444 !important; - } -} -.navbar-nav > .user-menu > .dropdown-menu > .user-footer { - background-color: #f9f9f9; - padding: 10px; -} -.navbar-nav > .user-menu > .dropdown-menu > .user-footer:before, -.navbar-nav > .user-menu > .dropdown-menu > .user-footer:after { - content: " "; - display: table; -} -.navbar-nav > .user-menu > .dropdown-menu > .user-footer:after { - clear: both; -} -.navbar-nav > .user-menu > .dropdown-menu > .user-footer .btn-default { - color: #666666; -} -.navbar-nav > .user-menu .user-image { - float: left; - width: 25px; - height: 25px; - border-radius: 50%; - margin-right: 10px; - margin-top: -2px; -} -@media (max-width: 767px) { - .navbar-nav > .user-menu .user-image { - float: none; - margin-right: 0; - margin-top: -8px; - line-height: 10px; - } -} -/* Add fade animation to dropdown menus by appending - the class .animated-dropdown-menu to the .dropdown-menu ul (or ol)*/ -.open:not(.dropup) > .animated-dropdown-menu { - backface-visibility: visible !important; - -webkit-animation: flipInX 0.7s both; - -o-animation: flipInX 0.7s both; - animation: flipInX 0.7s both; -} -@keyframes flipInX { - 0% { - transform: perspective(400px) rotate3d(1, 0, 0, 90deg); - transition-timing-function: ease-in; - opacity: 0; - } - 40% { - transform: perspective(400px) rotate3d(1, 0, 0, -20deg); - transition-timing-function: ease-in; - } - 60% { - transform: perspective(400px) rotate3d(1, 0, 0, 10deg); - opacity: 1; - } - 80% { - transform: perspective(400px) rotate3d(1, 0, 0, -5deg); - } - 100% { - transform: perspective(400px); - } -} -@-webkit-keyframes flipInX { - 0% { - transform: perspective(400px) rotate3d(1, 0, 0, 90deg); - transition-timing-function: ease-in; - opacity: 0; - } - 40% { - transform: perspective(400px) rotate3d(1, 0, 0, -20deg); - transition-timing-function: ease-in; - } - 60% { - transform: perspective(400px) rotate3d(1, 0, 0, 10deg); - opacity: 1; - } - 80% { - transform: perspective(400px) rotate3d(1, 0, 0, -5deg); - } - 100% { - transform: perspective(400px); - } -} -/* Fix dropdown menu in navbars */ -.navbar-custom-menu > .navbar-nav > li { - position: relative; -} -.navbar-custom-menu > .navbar-nav > li > .dropdown-menu { - position: absolute; - right: 0; - left: auto; -} -@media (max-width: 991px) { - .navbar-custom-menu > .navbar-nav { - float: right; - } - .navbar-custom-menu > .navbar-nav > li { - position: static; - } - .navbar-custom-menu > .navbar-nav > li > .dropdown-menu { - position: absolute; - right: 5%; - left: auto; - border: 1px solid #ddd; - background: #fff; - } -} -/* - * Component: Form - * --------------- - */ -.form-control { - border-radius: 0px !important; - box-shadow: none; - border-color: #d2d6de; -} -.form-control:focus { - border-color: #3c8dbc !important; - box-shadow: none; -} -.form-control::-moz-placeholder { - color: #bbb; - opacity: 1; -} -.form-control:-ms-input-placeholder { - color: #bbb; -} -.form-control::-webkit-input-placeholder { - color: #bbb; -} -.form-control:not(select) { - -webkit-appearance: none; - -moz-appearance: none; - appearance: none; -} -.form-group.has-success label { - color: #00a65a; -} -.form-group.has-success .form-control { - border-color: #00a65a !important; - box-shadow: none; -} -.form-group.has-warning label { - color: #f39c12; -} -.form-group.has-warning .form-control { - border-color: #f39c12 !important; - box-shadow: none; -} -.form-group.has-error label { - color: #dd4b39; -} -.form-group.has-error .form-control { - border-color: #dd4b39 !important; - box-shadow: none; -} -/* Input group */ -.input-group .input-group-addon { - border-radius: 0px; - border-color: #d2d6de; - background-color: #fff; -} -/* button groups */ -.btn-group-vertical .btn.btn-flat:first-of-type, -.btn-group-vertical .btn.btn-flat:last-of-type { - border-radius: 0; -} -.icheck > label { - padding-left: 0; -} -/* - * Component: Progress Bar - * ----------------------- - */ -.progress, -.progress > .progress-bar { - -webkit-box-shadow: none; - box-shadow: none; -} -.progress, -.progress > .progress-bar, -.progress .progress-bar, -.progress > .progress-bar .progress-bar { - border-radius: 1px; -} -/* size variation */ -.progress.sm, -.progress-sm { - height: 10px; -} -.progress.sm, -.progress-sm, -.progress.sm .progress-bar, -.progress-sm .progress-bar { - border-radius: 1px; -} -.progress.xs, -.progress-xs { - height: 7px; -} -.progress.xs, -.progress-xs, -.progress.xs .progress-bar, -.progress-xs .progress-bar { - border-radius: 1px; -} -.progress.xxs, -.progress-xxs { - height: 3px; -} -.progress.xxs, -.progress-xxs, -.progress.xxs .progress-bar, -.progress-xxs .progress-bar { - border-radius: 1px; -} -/* Vertical bars */ -.progress.vertical { - position: relative; - width: 30px; - height: 200px; - display: inline-block; - margin-right: 10px; -} -.progress.vertical > .progress-bar { - width: 100%!important; - position: absolute; - bottom: 0; -} -.progress.vertical.sm, -.progress.vertical.progress-sm { - width: 20px; -} -.progress.vertical.xs, -.progress.vertical.progress-xs { - width: 10px; -} -.progress.vertical.xxs, -.progress.vertical.progress-xxs { - width: 3px; -} -.progress-group .progress-text { - font-weight: 600; -} -.progress-group .progress-number { - float: right; -} -/* Remove margins from progress bars when put in a table */ -.table tr > td .progress { - margin: 0; -} -.progress-bar-light-blue, -.progress-bar-primary { - background-color: #3c8dbc; -} -.progress-striped .progress-bar-light-blue, -.progress-striped .progress-bar-primary { - background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); - background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); - background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); -} -.progress-bar-green, -.progress-bar-success { - background-color: #00a65a; -} -.progress-striped .progress-bar-green, -.progress-striped .progress-bar-success { - background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); - background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); - background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); -} -.progress-bar-aqua, -.progress-bar-info { - background-color: #00c0ef; -} -.progress-striped .progress-bar-aqua, -.progress-striped .progress-bar-info { - background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); - background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); - background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); -} -.progress-bar-yellow, -.progress-bar-warning { - background-color: #f39c12; -} -.progress-striped .progress-bar-yellow, -.progress-striped .progress-bar-warning { - background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); - background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); - background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); -} -.progress-bar-red, -.progress-bar-danger { - background-color: #dd4b39; -} -.progress-striped .progress-bar-red, -.progress-striped .progress-bar-danger { - background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); - background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); - background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); -} -/* - * Component: Small Box - * -------------------- - */ -.small-box { - border-radius: 2px; - position: relative; - display: block; - margin-bottom: 20px; - box-shadow: 0 1px 1px rgba(0, 0, 0, 0.1); -} -.small-box > .inner { - padding: 10px; -} -.small-box > .small-box-footer { - position: relative; - text-align: center; - padding: 3px 0; - color: #fff; - color: rgba(255, 255, 255, 0.8); - display: block; - z-index: 10; - background: rgba(0, 0, 0, 0.1); - text-decoration: none; -} -.small-box > .small-box-footer:hover { - color: #fff; - background: rgba(0, 0, 0, 0.15); -} -.small-box h3 { - font-size: 38px; - font-weight: bold; - margin: 0 0 10px 0; - white-space: nowrap; - padding: 0; -} -.small-box p { - font-size: 15px; -} -.small-box p > small { - display: block; - color: #f9f9f9; - font-size: 13px; - margin-top: 5px; -} -.small-box h3, -.small-box p { - z-index: 5px; -} -.small-box .icon { - -webkit-transition: all 0.3s linear; - -o-transition: all 0.3s linear; - transition: all 0.3s linear; - position: absolute; - top: -10px; - right: 10px; - z-index: 0; - font-size: 90px; - color: rgba(0, 0, 0, 0.15); -} -.small-box:hover { - text-decoration: none; - color: #f9f9f9; -} -.small-box:hover .icon { - font-size: 95px; -} -@media (max-width: 767px) { - .small-box { - text-align: center; - } - .small-box .icon { - display: none; - } - .small-box p { - font-size: 12px; - } -} -/* - * Component: Box - * -------------- - */ -.box { - position: relative; - border-radius: 3px; - background: #ffffff; - border-top: 3px solid #d2d6de; - margin-bottom: 20px; - width: 100%; - box-shadow: 0 1px 1px rgba(0, 0, 0, 0.1); -} -.box.box-primary { - border-top-color: #3c8dbc; -} -.box.box-info { - border-top-color: #00c0ef; -} -.box.box-danger { - border-top-color: #dd4b39; -} -.box.box-warning { - border-top-color: #f39c12; -} -.box.box-success { - border-top-color: #00a65a; -} -.box.box-default { - border-top-color: #d2d6de; -} -.box.collapsed-box .box-body, -.box.collapsed-box .box-footer { - display: none; -} -.box .nav-stacked > li { - border-bottom: 1px solid #f4f4f4; - margin: 0; -} -.box .nav-stacked > li:last-of-type { - border-bottom: none; -} -.box.height-control .box-body { - max-height: 300px; - overflow: auto; -} -.box .border-right { - border-right: 1px solid #f4f4f4; -} -.box .border-left { - border-left: 1px solid #f4f4f4; -} -.box.box-solid { - border-top: 0px; -} -.box.box-solid > .box-header .btn.btn-default { - background: transparent; -} -.box.box-solid > .box-header .btn:hover, -.box.box-solid > .box-header a:hover { - background: rgba(0, 0, 0, 0.1) !important; -} -.box.box-solid.box-default { - border: 1px solid #d2d6de; -} -.box.box-solid.box-default > .box-header { - color: #444444; - background: #d2d6de; - background-color: #d2d6de; -} -.box.box-solid.box-default > .box-header a, -.box.box-solid.box-default > .box-header .btn { - color: #444444; -} -.box.box-solid.box-primary { - border: 1px solid #3c8dbc; -} -.box.box-solid.box-primary > .box-header { - color: #ffffff; - background: #3c8dbc; - background-color: #3c8dbc; -} -.box.box-solid.box-primary > .box-header a, -.box.box-solid.box-primary > .box-header .btn { - color: #ffffff; -} -.box.box-solid.box-info { - border: 1px solid #00c0ef; -} -.box.box-solid.box-info > .box-header { - color: #ffffff; - background: #00c0ef; - background-color: #00c0ef; -} -.box.box-solid.box-info > .box-header a, -.box.box-solid.box-info > .box-header .btn { - color: #ffffff; -} -.box.box-solid.box-danger { - border: 1px solid #dd4b39; -} -.box.box-solid.box-danger > .box-header { - color: #ffffff; - background: #dd4b39; - background-color: #dd4b39; -} -.box.box-solid.box-danger > .box-header a, -.box.box-solid.box-danger > .box-header .btn { - color: #ffffff; -} -.box.box-solid.box-warning { - border: 1px solid #f39c12; -} -.box.box-solid.box-warning > .box-header { - color: #ffffff; - background: #f39c12; - background-color: #f39c12; -} -.box.box-solid.box-warning > .box-header a, -.box.box-solid.box-warning > .box-header .btn { - color: #ffffff; -} -.box.box-solid.box-success { - border: 1px solid #00a65a; -} -.box.box-solid.box-success > .box-header { - color: #ffffff; - background: #00a65a; - background-color: #00a65a; -} -.box.box-solid.box-success > .box-header a, -.box.box-solid.box-success > .box-header .btn { - color: #ffffff; -} -.box.box-solid > .box-header > .box-tools .btn { - border: 0; - box-shadow: none; -} -.box.box-solid[class*='bg'] > .box-header { - color: #fff; -} -.box .box-group > .box { - margin-bottom: 5px; -} -.box .knob-label { - text-align: center; - color: #333; - font-weight: 100; - font-size: 12px; - margin-bottom: 0.3em; -} -.box > .overlay, -.box > .loading-img { - position: absolute; - top: 0; - left: 0; - width: 100%; - height: 100%; -} -.box .overlay { - z-index: 1010; - background: rgba(255, 255, 255, 0.7); - border-radius: 3px; -} -.box .overlay > .fa { - position: absolute; - top: 50%; - left: 50%; - margin-left: -15px; - margin-top: -15px; - color: #000; - font-size: 30px; -} -.box .overlay.dark { - background: rgba(0, 0, 0, 0.5); -} -.box-header { - color: #444; - display: block; - padding: 10px; - position: relative; -} -.box-header:before, -.box-header:after { - content: " "; - display: table; -} -.box-header:after { - clear: both; -} -.box-header.with-border { - border-bottom: 1px solid #f4f4f4; -} -.collapsed-box .box-header.with-border { - border-bottom: none; -} -.box-header > .fa, -.box-header > .glyphicon, -.box-header > .ion, -.box-header .box-title { - display: inline-block; - font-size: 18px; - margin: 0; - line-height: 1; -} -.box-header > .fa, -.box-header > .glyphicon, -.box-header > .ion { - margin-right: 5px; -} -.box-header > .box-tools { - position: absolute; - right: 10px; - top: 5px; -} -.box-header > .box-tools [data-toggle="tooltip"] { - position: relative; -} -.box-header > .box-tools.pull-right .dropdown-menu { - right: 0; - left: auto; -} -.btn-box-tool { - padding: 5px; - font-size: 12px; - background: transparent; - box-shadow: none!important; - color: #97a0b3; -} -.open .btn-box-tool, -.btn-box-tool:hover { - color: #606c84; -} -.btn-box-tool:active { - outline: none!important; -} -.box-body { - border-top-left-radius: 0; - border-top-right-radius: 0; - border-bottom-right-radius: 3px; - border-bottom-left-radius: 3px; - padding: 10px; -} -.no-header .box-body { - border-top-right-radius: 3px; - border-top-left-radius: 3px; -} -.box-body > .table { - margin-bottom: 0; -} -.box-body > .chart { - position: relative; - overflow: hidden; - width: 100%; -} -.box-body > .chart svg, -.box-body > .chart canvas { - width: 100%!important; -} -.box-body .fc { - margin-top: 5px; -} -.box-body .full-width-chart { - margin: -19px; -} -.box-body.no-padding .full-width-chart { - margin: -9px; -} -.box-body .box-pane { - border-top-left-radius: 0; - border-top-right-radius: 0; - border-bottom-right-radius: 0; - border-bottom-left-radius: 3px; -} -.box-body .box-pane-right { - border-top-left-radius: 0; - border-top-right-radius: 0; - border-bottom-right-radius: 3px; - border-bottom-left-radius: 0; -} -.box-footer { - border-top-left-radius: 0; - border-top-right-radius: 0; - border-bottom-right-radius: 3px; - border-bottom-left-radius: 3px; - border-top: 1px solid #f4f4f4; - padding: 10px; - background-color: #ffffff; -} -.chart-legend { - margin: 10px 0; -} -@media (max-width: 991px) { - .chart-legend > li { - float: left; - margin-right: 10px; - } -} -/* Widget: TODO LIST */ -.todo-list { - margin: 0; - padding: 0px 0px; - list-style: none; - overflow: auto; -} -.todo-list > li { - border-radius: 2px; - padding: 10px; - background: #f4f4f4; - margin-bottom: 2px; - border-left: 2px solid #e6e7e8; - color: #444; -} -.todo-list > li:last-of-type { - margin-bottom: 0; -} -.todo-list > li.danger { - border-left-color: #dd4b39; -} -.todo-list > li.warning { - border-left-color: #f39c12; -} -.todo-list > li.info { - border-left-color: #00c0ef; -} -.todo-list > li.success { - border-left-color: #00a65a; -} -.todo-list > li.primary { - border-left-color: #3c8dbc; -} -.todo-list > li > input[type='checkbox'] { - margin: 0 10px 0 5px; -} -.todo-list > li .text { - display: inline-block; - margin-left: 5px; - font-weight: 600; -} -.todo-list > li .label { - margin-left: 10px; - font-size: 9px; -} -.todo-list > li .tools { - display: none; - float: right; - color: #dd4b39; -} -.todo-list > li .tools > .fa, -.todo-list > li .tools > .glyphicon, -.todo-list > li .tools > .ion { - margin-right: 5px; - cursor: pointer; -} -.todo-list > li:hover .tools { - display: inline-block; -} -.todo-list > li.done { - color: #999; -} -.todo-list > li.done .text { - text-decoration: line-through; - font-weight: 500; -} -.todo-list > li.done .label { - background: #d2d6de !important; -} -.todo-list .handle { - display: inline-block; - cursor: move; - margin: 0 5px; -} -/* Chat widget (DEPRECATED - this will be removed in the next major release. Use Direct Chat instead)*/ -.chat { - padding: 5px 20px 5px 10px; -} -.chat .item { - margin-bottom: 10px; -} -.chat .item:before, -.chat .item:after { - content: " "; - display: table; -} -.chat .item:after { - clear: both; -} -.chat .item > img { - width: 40px; - height: 40px; - border: 2px solid transparent; - border-radius: 50% !important; -} -.chat .item > img.online { - border: 2px solid #00a65a; -} -.chat .item > img.offline { - border: 2px solid #dd4b39; -} -.chat .item > .message { - margin-left: 55px; - margin-top: -40px; -} -.chat .item > .message > .name { - display: block; - font-weight: 600; -} -.chat .item > .attachment { - border-radius: 3px; - background: #f4f4f4; - margin-left: 65px; - margin-right: 15px; - padding: 10px; -} -.chat .item > .attachment > h4 { - margin: 0 0 5px 0; - font-weight: 600; - font-size: 14px; -} -.chat .item > .attachment > p, -.chat .item > .attachment > .filename { - font-weight: 600; - font-size: 13px; - font-style: italic; - margin: 0; -} -.chat .item > .attachment:before, -.chat .item > .attachment:after { - content: " "; - display: table; -} -.chat .item > .attachment:after { - clear: both; -} -.box-input { - max-width: 200px; -} -/* - * Component: Info Box - * ------------------- - */ -.info-box { - display: block; - min-height: 90px; - background: #fff; - width: 100%; - box-shadow: 0 1px 1px rgba(0, 0, 0, 0.1); - border-radius: 2px; - margin-bottom: 15px; -} -.info-box small { - font-size: 14px; -} -.info-box .progress { - background: rgba(0, 0, 0, 0.2); - margin: 5px -10px 5px -10px; - height: 2px; -} -.info-box .progress, -.info-box .progress .progress-bar { - border-radius: 0; -} -.info-box .progress .progress-bar { - background: #fff; -} -.info-box-icon { - border-top-left-radius: 2px; - border-top-right-radius: 0; - border-bottom-right-radius: 0; - border-bottom-left-radius: 2px; - display: block; - float: left; - height: 90px; - width: 90px; - text-align: center; - font-size: 45px; - line-height: 90px; - background: rgba(0, 0, 0, 0.2); -} -.info-box-content { - padding: 5px 10px; - margin-left: 90px; -} -.info-box-number { - display: block; - font-weight: bold; - font-size: 18px; -} -.progress-description, -.info-box-text { - display: block; - font-size: 14px; - white-space: nowrap; - overflow: hidden; - text-overflow: ellipsis; -} -.info-box-text { - text-transform: uppercase; -} -.info-box-more { - display: block; -} -.progress-description { - margin: 0; -} -/* - * Component: Timeline - * ------------------- - */ -.timeline { - position: relative; - margin: 0 0 30px 0; - padding: 0; - list-style: none; -} -.timeline:before { - content: ''; - position: absolute; - top: 0px; - bottom: 0; - width: 4px; - background: #ddd; - left: 31px; - margin: 0; - border-radius: 2px; -} -.timeline > li { - position: relative; - margin-right: 10px; - margin-bottom: 15px; -} -.timeline > li:before, -.timeline > li:after { - content: " "; - display: table; -} -.timeline > li:after { - clear: both; -} -.timeline > li > .timeline-item { - -webkit-box-shadow: 0 1px 1px rgba(0, 0, 0, 0.1); - box-shadow: 0 1px 1px rgba(0, 0, 0, 0.1); - border-radius: 3px; - margin-top: 0px; - background: #fff; - color: #444; - margin-left: 60px; - margin-right: 15px; - padding: 0; - position: relative; -} -.timeline > li > .timeline-item > .time { - color: #999; - float: right; - padding: 10px; - font-size: 12px; -} -.timeline > li > .timeline-item > .timeline-header { - margin: 0; - color: #555; - border-bottom: 1px solid #f4f4f4; - padding: 10px; - font-size: 16px; - line-height: 1.1; -} -.timeline > li > .timeline-item > .timeline-header > a { - font-weight: 600; -} -.timeline > li > .timeline-item > .timeline-body, -.timeline > li > .timeline-item > .timeline-footer { - padding: 10px; -} -.timeline > li.time-label > span { - font-weight: 600; - padding: 5px; - display: inline-block; - background-color: #fff; - border-radius: 4px; -} -.timeline > li > .fa, -.timeline > li > .glyphicon, -.timeline > li > .ion { - width: 30px; - height: 30px; - font-size: 15px; - line-height: 30px; - position: absolute; - color: #666; - background: #d2d6de; - border-radius: 50%; - text-align: center; - left: 18px; - top: 0; -} -/* - * Component: Button - * ----------------- - */ -.btn { - border-radius: 3px; - -webkit-box-shadow: none; - box-shadow: none; - border: 1px solid transparent; -} -.btn.uppercase { - text-transform: uppercase; -} -.btn.btn-flat { - border-radius: 0; - -webkit-box-shadow: none; - -moz-box-shadow: none; - box-shadow: none; - border-width: 1px; -} -.btn:active { - -webkit-box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); - -moz-box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); - box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); -} -.btn:focus { - outline: none; -} -.btn.btn-file { - position: relative; - overflow: hidden; -} -.btn.btn-file > input[type='file'] { - position: absolute; - top: 0; - right: 0; - min-width: 100%; - min-height: 100%; - font-size: 100px; - text-align: right; - opacity: 0; - filter: alpha(opacity=0); - outline: none; - background: white; - cursor: inherit; - display: block; -} -.btn-default { - background-color: #f4f4f4; - color: #444; - border-color: #ddd; -} -.btn-default:hover, -.btn-default:active, -.btn-default.hover { - background-color: #e7e7e7 !important; -} -.btn-primary { - background-color: #3c8dbc; - border-color: #367fa9; -} -.btn-primary:hover, -.btn-primary:active, -.btn-primary.hover { - background-color: #367fa9; -} -.btn-success { - background-color: #00a65a; - border-color: #008d4c; -} -.btn-success:hover, -.btn-success:active, -.btn-success.hover { - background-color: #008d4c; -} -.btn-info { - background-color: #00c0ef; - border-color: #00acd6; -} -.btn-info:hover, -.btn-info:active, -.btn-info.hover { - background-color: #00acd6; -} -.btn-danger { - background-color: #dd4b39; - border-color: #d73925; -} -.btn-danger:hover, -.btn-danger:active, -.btn-danger.hover { - background-color: #d73925; -} -.btn-warning { - background-color: #f39c12; - border-color: #e08e0b; -} -.btn-warning:hover, -.btn-warning:active, -.btn-warning.hover { - background-color: #e08e0b; -} -.btn-outline { - border: 1px solid #fff; - background: transparent; - color: #fff; -} -.btn-outline:hover, -.btn-outline:focus, -.btn-outline:active { - color: rgba(255, 255, 255, 0.7); - border-color: rgba(255, 255, 255, 0.7); -} -.btn-link { - -webkit-box-shadow: none; - box-shadow: none; -} -.btn[class*='bg-']:hover { - -webkit-box-shadow: inset 0 0 100px rgba(0, 0, 0, 0.2); - box-shadow: inset 0 0 100px rgba(0, 0, 0, 0.2); -} -.btn-app { - border-radius: 3px; - position: relative; - padding: 15px 5px; - margin: 0 0 10px 10px; - min-width: 80px; - height: 60px; - text-align: center; - color: #666; - border: 1px solid #ddd; - background-color: #f4f4f4; - font-size: 12px; -} -.btn-app > .fa, -.btn-app > .glyphicon, -.btn-app > .ion { - font-size: 20px; - display: block; -} -.btn-app:hover { - background: #f4f4f4; - color: #444; - border-color: #aaa; -} -.btn-app:active, -.btn-app:focus { - -webkit-box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); - -moz-box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); - box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); -} -.btn-app > .badge { - position: absolute; - top: -3px; - right: -10px; - font-size: 10px; - font-weight: 400; -} -/* - * Component: Callout - * ------------------ - */ -.callout { - border-radius: 3px; - margin: 0 0 20px 0; - padding: 15px 30px 15px 15px; - border-left: 5px solid #eee; -} -.callout a { - color: #fff; - text-decoration: underline; -} -.callout a:hover { - color: #eee; -} -.callout h4 { - margin-top: 0; - font-weight: 600; -} -.callout p:last-child { - margin-bottom: 0; -} -.callout code, -.callout .highlight { - background-color: #fff; -} -.callout.callout-danger { - border-color: #c23321; -} -.callout.callout-warning { - border-color: #c87f0a; -} -.callout.callout-info { - border-color: #0097bc; -} -.callout.callout-success { - border-color: #00733e; -} -/* - * Component: alert - * ---------------- - */ -.alert { - border-radius: 3px; -} -.alert h4 { - font-weight: 600; -} -.alert .icon { - margin-right: 10px; -} -.alert .close { - color: #000; - opacity: 0.2; - filter: alpha(opacity=20); -} -.alert .close:hover { - opacity: 0.5; - filter: alpha(opacity=50); -} -.alert a { - color: #fff; - text-decoration: underline; -} -.alert-success { - border-color: #008d4c; -} -.alert-danger, -.alert-error { - border-color: #d73925; -} -.alert-warning { - border-color: #e08e0b; -} -.alert-info { - border-color: #00acd6; -} -/* - * Component: Nav - * -------------- - */ -/* NAV PILLS */ -.nav-pills > li > a { - border-radius: 0; - border-top: 3px solid transparent; - color: #444; -} -.nav-pills > li > a > .fa, -.nav-pills > li > a > .glyphicon, -.nav-pills > li > a > .ion { - margin-right: 5px; -} -.nav-pills > li.active > a, -.nav-pills > li.active > a:hover { - background-color: #f4f4f4; - border-top-color: #3c8dbc; - color: #444; -} -.nav-pills > li.active > a { - font-weight: 600; -} -.nav-pills > li > a:hover { - background-color: #f6f6f6; -} -/* NAV STACKED */ -.nav-stacked > li > a { - border-radius: 0; - border-top: 0; - border-left: 3px solid transparent; - color: #444; -} -.nav-stacked > li.active > a, -.nav-stacked > li.active > a:hover { - background-color: #f4f4f4; - border-top: 0; - border-left-color: #3c8dbc; - color: #444; -} -.nav-stacked > li.header { - border-bottom: 1px solid #ddd; - color: #777; - margin-bottom: 10px; - padding: 5px 10px; - text-transform: uppercase; -} -/* NAV TABS */ -.nav-tabs-custom { - margin-bottom: 20px; - background: #fff; - box-shadow: 0 1px 1px rgba(0, 0, 0, 0.1); - border-radius: 3px; -} -.nav-tabs-custom > .nav-tabs { - margin: 0; - border-bottom-color: #f4f4f4; - border-top-right-radius: 3px; - border-top-left-radius: 3px; -} -.nav-tabs-custom > .nav-tabs > li { - border-top: 3px solid transparent; - margin-bottom: -2px; - margin-right: 5px; -} -.nav-tabs-custom > .nav-tabs > li > a { - border-radius: 0 !important; -} -.nav-tabs-custom > .nav-tabs > li > a, -.nav-tabs-custom > .nav-tabs > li > a:hover { - background: transparent; - margin: 0; -} -.nav-tabs-custom > .nav-tabs > li:not(.active) > a:hover, -.nav-tabs-custom > .nav-tabs > li:not(.active) > a:focus, -.nav-tabs-custom > .nav-tabs > li:not(.active) > a:active { - border-color: transparent; -} -.nav-tabs-custom > .nav-tabs > li.active { - border-top-color: #3c8dbc; -} -.nav-tabs-custom > .nav-tabs > li.active > a, -.nav-tabs-custom > .nav-tabs > li.active:hover > a { - background-color: #fff; -} -.nav-tabs-custom > .nav-tabs > li.active > a { - border-top: 0; - border-left-color: #f4f4f4; - border-right-color: #f4f4f4; -} -.nav-tabs-custom > .nav-tabs > li:first-of-type { - margin-left: 0; -} -.nav-tabs-custom > .nav-tabs > li:first-of-type.active > a { - border-left-width: 0; -} -.nav-tabs-custom > .nav-tabs.pull-right { - float: none!important; -} -.nav-tabs-custom > .nav-tabs.pull-right > li { - float: right; -} -.nav-tabs-custom > .nav-tabs.pull-right > li:first-of-type { - margin-right: 0; -} -.nav-tabs-custom > .nav-tabs.pull-right > li:first-of-type.active > a { - border-left-width: 1px; - border-right-width: 0; -} -.nav-tabs-custom > .nav-tabs > li.header { - line-height: 35px; - padding: 0 10px; - font-size: 20px; - color: #444; -} -.nav-tabs-custom > .nav-tabs > li.header > .fa, -.nav-tabs-custom > .nav-tabs > li.header > .glyphicon, -.nav-tabs-custom > .nav-tabs > li.header > .ion { - margin-right: 5px; -} -.nav-tabs-custom > .tab-content { - background: #fff; - padding: 10px; - border-bottom-right-radius: 3px; - border-bottom-left-radius: 3px; -} -/* Nav tabs bottom */ -.tabs-bottom.nav-3 li a { - width: 3333.33333333% !important; -} -.tabs-bottom li a { - border: 0; -} -/* PAGINATION */ -.pagination > li > a { - background: #fafafa; - color: #666; -} -.pagination > li:first-of-type a, -.pagination > li:last-of-type a { - border-radius: 0; -} -/* - * Component: Products List - * ------------------------ - */ -.products-list { - list-style: none; - margin: 0; - padding: 0; -} -.products-list > .item { - border-radius: 3px; - -webkit-box-shadow: 0 1px 1px rgba(0, 0, 0, 0.1); - box-shadow: 0 1px 1px rgba(0, 0, 0, 0.1); - padding: 10px 0; - background: #fff; -} -.products-list > .item:before, -.products-list > .item:after { - content: " "; - display: table; -} -.products-list > .item:after { - clear: both; -} -.products-list .product-img { - float: left; -} -.products-list .product-img img { - width: 50px; - height: 50px; -} -.products-list .product-info { - margin-left: 60px; -} -.products-list .product-title { - font-weight: 600; -} -.products-list .product-description { - display: block; - color: #999; - overflow: hidden; - white-space: nowrap; - text-overflow: ellipsis; -} -.product-list-in-box > .item { - -webkit-box-shadow: none; - box-shadow: none; - border-radius: 0; - border-bottom: 1px solid #f4f4f4; -} -.product-list-in-box > .item:last-of-type { - border-bottom-width: 0; -} -/* - * Component: Table - * ---------------- - */ -.table > thead > tr > th, -.table > tbody > tr > th, -.table > tfoot > tr > th, -.table > thead > tr > td, -.table > tbody > tr > td, -.table > tfoot > tr > td { - border-top: 1px solid #f4f4f4; -} -.table > thead > tr > th { - border-bottom: 2px solid #f4f4f4; -} -.table tr td .progress { - margin-top: 5px; -} -.table-bordered { - border: 1px solid #f4f4f4; -} -.table-bordered > thead > tr > th, -.table-bordered > tbody > tr > th, -.table-bordered > tfoot > tr > th, -.table-bordered > thead > tr > td, -.table-bordered > tbody > tr > td, -.table-bordered > tfoot > tr > td { - border: 1px solid #f4f4f4; -} -.table-bordered > thead > tr > th, -.table-bordered > thead > tr > td { - border-bottom-width: 2px; -} -.table.no-border, -.table.no-border td, -.table.no-border th { - border: 0; -} -/* .text-center in tables */ -table.text-center, -table.text-center td, -table.text-center th { - text-align: center; -} -.table.align th { - text-align: left; -} -.table.align td { - text-align: right; -} -/* - * Component: Label - * ---------------- - */ -.label-default { - background-color: #d2d6de; - color: #444; -} -/* - * Component: Direct Chat - * ---------------------- - */ -.direct-chat .box-body { - border-bottom-right-radius: 0; - border-bottom-left-radius: 0; - position: relative; - overflow-x: hidden; - padding: 0; -} -.direct-chat.chat-pane-open .direct-chat-contacts { - -webkit-transform: translate(0, 0); - -ms-transform: translate(0, 0); - -o-transform: translate(0, 0); - transform: translate(0, 0); -} -.direct-chat-messages { - -webkit-transform: translate(0, 0); - -ms-transform: translate(0, 0); - -o-transform: translate(0, 0); - transform: translate(0, 0); - padding: 10px; - height: 250px; - overflow: auto; -} -.direct-chat-msg, -.direct-chat-text { - display: block; -} -.direct-chat-msg { - margin-bottom: 10px; -} -.direct-chat-msg:before, -.direct-chat-msg:after { - content: " "; - display: table; -} -.direct-chat-msg:after { - clear: both; -} -.direct-chat-messages, -.direct-chat-contacts { - -webkit-transition: -webkit-transform 0.5s ease-in-out; - -moz-transition: -moz-transform 0.5s ease-in-out; - -o-transition: -o-transform 0.5s ease-in-out; - transition: transform 0.5s ease-in-out; -} -.direct-chat-text { - border-radius: 5px; - position: relative; - padding: 5px 10px; - background: #d2d6de; - border: 1px solid #d2d6de; - margin: 5px 0 0 50px; - color: #444444; -} -.direct-chat-text:after, -.direct-chat-text:before { - position: absolute; - right: 100%; - top: 15px; - border: solid transparent; - border-right-color: #d2d6de; - content: ' '; - height: 0; - width: 0; - pointer-events: none; -} -.direct-chat-text:after { - border-width: 5px; - margin-top: -5px; -} -.direct-chat-text:before { - border-width: 6px; - margin-top: -6px; -} -.right .direct-chat-text { - margin-right: 50px; - margin-left: 0; -} -.right .direct-chat-text:after, -.right .direct-chat-text:before { - right: auto; - left: 100%; - border-right-color: transparent; - border-left-color: #d2d6de; -} -.direct-chat-img { - border-radius: 50%; - float: left; - width: 40px; - height: 40px; -} -.right .direct-chat-img { - float: right; -} -.direct-chat-info { - display: block; - margin-bottom: 2px; - font-size: 12px; -} -.direct-chat-name { - font-weight: 600; -} -.direct-chat-timestamp { - color: #999; -} -.direct-chat-contacts-open .direct-chat-contacts { - -webkit-transform: translate(0, 0); - -ms-transform: translate(0, 0); - -o-transform: translate(0, 0); - transform: translate(0, 0); -} -.direct-chat-contacts { - -webkit-transform: translate(100%, 0); - -ms-transform: translate(100%, 0); - -o-transform: translate(100%, 0); - transform: translate(100%, 0); - position: absolute; - top: 0; - bottom: 0; - height: 250px; - width: 100%; - background: #222d32; - color: #fff; - overflow: auto; -} -.contacts-list > li { - border-bottom: 1px solid rgba(0, 0, 0, 0.2); - padding: 10px; - margin: 0; -} -.contacts-list > li:before, -.contacts-list > li:after { - content: " "; - display: table; -} -.contacts-list > li:after { - clear: both; -} -.contacts-list > li:last-of-type { - border-bottom: none; -} -.contacts-list-img { - border-radius: 50%; - width: 40px; - float: left; -} -.contacts-list-info { - margin-left: 45px; - color: #fff; -} -.contacts-list-name, -.contacts-list-status { - display: block; -} -.contacts-list-name { - font-weight: 600; -} -.contacts-list-status { - font-size: 12px; -} -.contacts-list-date { - color: #aaa; - font-weight: normal; -} -.contacts-list-msg { - color: #999; -} -.direct-chat-danger .right > .direct-chat-text { - background: #dd4b39; - border-color: #dd4b39; - color: #ffffff; -} -.direct-chat-danger .right > .direct-chat-text:after, -.direct-chat-danger .right > .direct-chat-text:before { - border-left-color: #dd4b39; -} -.direct-chat-primary .right > .direct-chat-text { - background: #3c8dbc; - border-color: #3c8dbc; - color: #ffffff; -} -.direct-chat-primary .right > .direct-chat-text:after, -.direct-chat-primary .right > .direct-chat-text:before { - border-left-color: #3c8dbc; -} -.direct-chat-warning .right > .direct-chat-text { - background: #f39c12; - border-color: #f39c12; - color: #ffffff; -} -.direct-chat-warning .right > .direct-chat-text:after, -.direct-chat-warning .right > .direct-chat-text:before { - border-left-color: #f39c12; -} -.direct-chat-info .right > .direct-chat-text { - background: #00c0ef; - border-color: #00c0ef; - color: #ffffff; -} -.direct-chat-info .right > .direct-chat-text:after, -.direct-chat-info .right > .direct-chat-text:before { - border-left-color: #00c0ef; -} -.direct-chat-success .right > .direct-chat-text { - background: #00a65a; - border-color: #00a65a; - color: #ffffff; -} -.direct-chat-success .right > .direct-chat-text:after, -.direct-chat-success .right > .direct-chat-text:before { - border-left-color: #00a65a; -} -/* - * Component: Users List - * --------------------- - */ -.users-list > li { - width: 25%; - float: left; - padding: 10px; - text-align: center; -} -.users-list > li > img { - border-radius: 50%; - max-width: 100%; - height: auto; -} -.users-list-name, -.users-list-date { - display: block; -} -.users-list-name { - font-weight: 600; - color: #444; - overflow: hidden; - white-space: nowrap; - text-overflow: ellipsis; -} -.users-list-name:hover { - color: #999; -} -.users-list-date { - color: #999; - font-size: 12px; -} -/* - * Component: Carousel - * ------------------- - */ -.carousel-control { - background-image: none!important; -} -.carousel-control > .fa { - font-size: 40px; - position: absolute; - top: 50%; - z-index: 5; - display: inline-block; - margin-top: -20px; -} -/* - * Component: modal - * ---------------- - */ -.modal { - background: rgba(0, 0, 0, 0.3); -} -.modal-content { - border-radius: 0; - -webkit-box-shadow: 0 2px 3px rgba(0, 0, 0, 0.125) !important; - box-shadow: 0 2px 3px rgba(0, 0, 0, 0.125) !important; - border: 0; -} -@media (min-width: 768px) { - .modal-content { - -webkit-box-shadow: 0 2px 3px rgba(0, 0, 0, 0.125) !important; - box-shadow: 0 2px 3px rgba(0, 0, 0, 0.125) !important; - } -} -.modal-header { - border-bottom-color: #f4f4f4; -} -.modal-footer { - border-top-color: #f4f4f4; -} -.modal-primary .modal-header, -.modal-primary .modal-footer { - border-color: #307095; -} -.modal-warning .modal-header, -.modal-warning .modal-footer { - border-color: #c87f0a; -} -.modal-info .modal-header, -.modal-info .modal-footer { - border-color: #0097bc; -} -.modal-success .modal-header, -.modal-success .modal-footer { - border-color: #00733e; -} -.modal-danger .modal-header, -.modal-danger .modal-footer { - border-color: #c23321; -} -/* - * Page: Mailbox - * ------------- - */ -.mailbox-messages > .table { - margin: 0; -} -.mailbox-controls { - padding: 5px; -} -.mailbox-controls.with-border { - border-bottom: 1px solid #f4f4f4; -} -.mailbox-read-info { - border-bottom: 1px solid #f4f4f4; - padding: 10px; -} -.mailbox-read-info h3 { - font-size: 20px; - margin: 0; -} -.mailbox-read-info h5 { - margin: 0; - padding: 5px 0 0 0; -} -.mailbox-read-time { - color: #999; - font-size: 13px; -} -.mailbox-read-message { - padding: 10px; -} -.mailbox-attachments li { - float: left; - width: 200px; - border: 1px solid #eee; - margin-bottom: 10px; - margin-right: 10px; -} -.mailbox-attachment-name { - font-weight: bold; - color: #666; -} -.mailbox-attachment-icon, -.mailbox-attachment-info, -.mailbox-attachment-size { - display: block; -} -.mailbox-attachment-info { - padding: 10px; - background: #f4f4f4; -} -.mailbox-attachment-size { - color: #999; - font-size: 12px; -} -.mailbox-attachment-icon { - text-align: center; - font-size: 65px; - color: #666; - padding: 20px 10px; -} -.mailbox-attachment-icon.has-img { - padding: 0; -} -.mailbox-attachment-icon.has-img > img { - max-width: 100%; - height: auto; -} -.mailbox .table-mailbox { - border-left: 1px solid #f4f4f4; - border-right: 1px solid #f4f4f4; - border-bottom: 1px solid #f4f4f4; -} -.mailbox .table-mailbox tr.unread > td { - background-color: rgba(0, 0, 0, 0.05); - color: #000; - font-weight: 600; -} -.mailbox .table-mailbox tr > td > .fa.fa-star, -.mailbox .table-mailbox tr > td > .fa.fa-star-o, -.mailbox .table-mailbox tr > td > .glyphicon.glyphicon-star, -.mailbox .table-mailbox tr > td > .glyphicon.glyphicon-star-empty { - color: #f39c12; - cursor: pointer; -} -.mailbox .table-mailbox tr > td.small-col { - width: 30px; -} -.mailbox .table-mailbox tr > td.name { - width: 150px; - font-weight: 600; -} -.mailbox .table-mailbox tr > td.time { - text-align: right; - width: 100px; -} -.mailbox .table-mailbox tr > td { - white-space: nowrap; -} -.mailbox .table-mailbox tr > td > a { - color: #444; -} -@media (max-width: 991px) { - .mailbox .nav-stacked > li:not(.header) { - float: left; - width: 50%; - } - .mailbox .nav-stacked > li:not(.header).header { - border: 0!important; - } - .mailbox .search-form { - margin-top: 10px; - } -} -/* - * Page: Lock Screen - * ----------------- - */ -/* ADD THIS CLASS TO THE <BODY> TAG */ -.lockscreen { - background: #d2d6de; -} -.lockscreen-logo { - font-size: 35px; - text-align: center; - margin-bottom: 25px; - font-weight: 300; -} -.lockscreen-logo a { - color: #444; -} -.lockscreen-wrapper { - max-width: 400px; - margin: 0 auto; - margin-top: 10%; -} -/* User name [optional] */ -.lockscreen .lockscreen-name { - text-align: center; - font-weight: 600; -} -/* Will contain the image and the sign in form */ -.lockscreen-item { - border-radius: 4px; - padding: 0; - background: #fff; - position: relative; - margin: 10px auto 30px auto; - width: 290px; -} -/* User image */ -.lockscreen-image { - border-radius: 50%; - position: absolute; - left: -10px; - top: -25px; - background: #fff; - padding: 5px; - z-index: 10; -} -.lockscreen-image > img { - border-radius: 50%; - width: 70px; - height: 70px; -} -/* Contains the password input and the login button */ -.lockscreen-credentials { - margin-left: 70px; -} -.lockscreen-credentials .form-control { - border: 0 !important; -} -.lockscreen-credentials .btn { - background-color: #fff; - border: 0; - padding: 0 10px; -} -.lockscreen-footer { - margin-top: 10px; -} -/* - * Page: Login & Register - * ---------------------- - */ -.login-logo, -.register-logo { - font-size: 35px; - text-align: center; - margin-bottom: 25px; - font-weight: 300; -} -.login-logo a, -.register-logo a { - color: #444; -} -.login-page, -.register-page { - background: #d2d6de; -} -.login-box, -.register-box { - width: 360px; - margin: 7% auto; -} -@media (max-width: 768px) { - .login-box, - .register-box { - width: 90%; - margin-top: 20px; - } -} -.login-box-body, -.register-box-body { - background: #fff; - padding: 20px; - color: #444; - border-top: 0; - color: #666; -} -.login-box-body .form-control-feedback, -.register-box-body .form-control-feedback { - color: #777; -} -.login-box-msg, -.register-box-msg { - margin: 0; - text-align: center; - padding: 0 20px 20px 20px; -} -.social-auth-links { - margin: 10px 0; -} -/* - * Page: 400 and 500 error pages - * ------------------------------ - */ -.error-page { - width: 600px; - margin: 20px auto 0 auto; -} -@media (max-width: 991px) { - .error-page { - width: 100%; - } -} -.error-page > .headline { - float: left; - font-size: 100px; - font-weight: 300; -} -@media (max-width: 991px) { - .error-page > .headline { - float: none; - text-align: center; - } -} -.error-page > .error-content { - margin-left: 190px; - display: block; -} -@media (max-width: 991px) { - .error-page > .error-content { - margin-left: 0; - } -} -.error-page > .error-content > h3 { - font-weight: 300; - font-size: 25px; -} -@media (max-width: 991px) { - .error-page > .error-content > h3 { - text-align: center; - } -} -/* - * Page: Invoice - * ------------- - */ -.invoice { - position: relative; - background: #fff; - border: 1px solid #f4f4f4; - padding: 20px; - margin: 10px 25px; -} -.invoice-title { - margin-top: 0; -} -/* - * Plugin: Social Buttons - * ---------------------- - */ -.btn-social { - position: relative; - padding-left: 44px !important; - text-align: left; - white-space: nowrap; - overflow: hidden; - text-overflow: ellipsis; -} -.btn-social :first-child { - position: absolute; - left: 0; - top: 0; - bottom: 0; - width: 32px !important; - line-height: 34px !important; - font-size: 1.6em!important; - text-align: center; - border-right: 1px solid rgba(0, 0, 0, 0.2); -} -.btn-social.btn-lg { - padding-left: 61px !important; -} -.btn-social.btn-lg :first-child { - line-height: 45px; - width: 45px; - font-size: 1.8em; -} -.btn-social.btn-sm { - padding-left: 38px !important; -} -.btn-social.btn-sm :first-child { - line-height: 28px; - width: 28px; - font-size: 1.4em; -} -.btn-social.btn-xs { - padding-left: 30px !important; -} -.btn-social.btn-xs :first-child { - line-height: 20px; - width: 20px; - font-size: 1.2em; -} -.btn-social-icon { - position: relative; - padding-left: 44px !important; - text-align: left; - white-space: nowrap; - overflow: hidden; - text-overflow: ellipsis; - height: 34px; - width: 34px; - padding: 0; -} -.btn-social-icon :first-child { - position: absolute; - left: 0; - top: 0; - bottom: 0; - width: 32px !important; - line-height: 34px !important; - font-size: 1.6em!important; - text-align: center; - border-right: 1px solid rgba(0, 0, 0, 0.2); -} -.btn-social-icon.btn-lg { - padding-left: 61px !important; -} -.btn-social-icon.btn-lg :first-child { - line-height: 45px; - width: 45px; - font-size: 1.8em; -} -.btn-social-icon.btn-sm { - padding-left: 38px !important; -} -.btn-social-icon.btn-sm :first-child { - line-height: 28px; - width: 28px; - font-size: 1.4em; -} -.btn-social-icon.btn-xs { - padding-left: 30px !important; -} -.btn-social-icon.btn-xs :first-child { - line-height: 20px; - width: 20px; - font-size: 1.2em; -} -.btn-social-icon :first-child { - border: none; - text-align: center; - width: 100%!important; -} -.btn-social-icon.btn-lg { - height: 45px; - width: 45px; - padding-left: 0; - padding-right: 0; -} -.btn-social-icon.btn-sm { - height: 30px; - width: 30px; - padding-left: 0; - padding-right: 0; -} -.btn-social-icon.btn-xs { - height: 22px; - width: 22px; - padding-left: 0; - padding-right: 0; -} -.btn-bitbucket { - color: #ffffff; - background-color: #205081; - border-color: rgba(0, 0, 0, 0.2); -} -.btn-bitbucket:hover, -.btn-bitbucket:focus, -.btn-bitbucket.focus, -.btn-bitbucket:active, -.btn-bitbucket.active, -.open > .dropdown-toggle.btn-bitbucket { - color: #ffffff; - background-color: #163758; - border-color: rgba(0, 0, 0, 0.2); -} -.btn-bitbucket:active, -.btn-bitbucket.active, -.open > .dropdown-toggle.btn-bitbucket { - background-image: none; -} -.btn-bitbucket.disabled, -.btn-bitbucket[disabled], -fieldset[disabled] .btn-bitbucket, -.btn-bitbucket.disabled:hover, -.btn-bitbucket[disabled]:hover, -fieldset[disabled] .btn-bitbucket:hover, -.btn-bitbucket.disabled:focus, -.btn-bitbucket[disabled]:focus, -fieldset[disabled] .btn-bitbucket:focus, -.btn-bitbucket.disabled.focus, -.btn-bitbucket[disabled].focus, -fieldset[disabled] .btn-bitbucket.focus, -.btn-bitbucket.disabled:active, -.btn-bitbucket[disabled]:active, -fieldset[disabled] .btn-bitbucket:active, -.btn-bitbucket.disabled.active, -.btn-bitbucket[disabled].active, -fieldset[disabled] .btn-bitbucket.active { - background-color: #205081; - border-color: rgba(0, 0, 0, 0.2); -} -.btn-bitbucket .badge { - color: #205081; - background-color: #ffffff; -} -.btn-dropbox { - color: #ffffff; - background-color: #1087dd; - border-color: rgba(0, 0, 0, 0.2); -} -.btn-dropbox:hover, -.btn-dropbox:focus, -.btn-dropbox.focus, -.btn-dropbox:active, -.btn-dropbox.active, -.open > .dropdown-toggle.btn-dropbox { - color: #ffffff; - background-color: #0d6aad; - border-color: rgba(0, 0, 0, 0.2); -} -.btn-dropbox:active, -.btn-dropbox.active, -.open > .dropdown-toggle.btn-dropbox { - background-image: none; -} -.btn-dropbox.disabled, -.btn-dropbox[disabled], -fieldset[disabled] .btn-dropbox, -.btn-dropbox.disabled:hover, -.btn-dropbox[disabled]:hover, -fieldset[disabled] .btn-dropbox:hover, -.btn-dropbox.disabled:focus, -.btn-dropbox[disabled]:focus, -fieldset[disabled] .btn-dropbox:focus, -.btn-dropbox.disabled.focus, -.btn-dropbox[disabled].focus, -fieldset[disabled] .btn-dropbox.focus, -.btn-dropbox.disabled:active, -.btn-dropbox[disabled]:active, -fieldset[disabled] .btn-dropbox:active, -.btn-dropbox.disabled.active, -.btn-dropbox[disabled].active, -fieldset[disabled] .btn-dropbox.active { - background-color: #1087dd; - border-color: rgba(0, 0, 0, 0.2); -} -.btn-dropbox .badge { - color: #1087dd; - background-color: #ffffff; -} -.btn-facebook { - color: #ffffff; - background-color: #3b5998; - border-color: rgba(0, 0, 0, 0.2); -} -.btn-facebook:hover, -.btn-facebook:focus, -.btn-facebook.focus, -.btn-facebook:active, -.btn-facebook.active, -.open > .dropdown-toggle.btn-facebook { - color: #ffffff; - background-color: #2d4373; - border-color: rgba(0, 0, 0, 0.2); -} -.btn-facebook:active, -.btn-facebook.active, -.open > .dropdown-toggle.btn-facebook { - background-image: none; -} -.btn-facebook.disabled, -.btn-facebook[disabled], -fieldset[disabled] .btn-facebook, -.btn-facebook.disabled:hover, -.btn-facebook[disabled]:hover, -fieldset[disabled] .btn-facebook:hover, -.btn-facebook.disabled:focus, -.btn-facebook[disabled]:focus, -fieldset[disabled] .btn-facebook:focus, -.btn-facebook.disabled.focus, -.btn-facebook[disabled].focus, -fieldset[disabled] .btn-facebook.focus, -.btn-facebook.disabled:active, -.btn-facebook[disabled]:active, -fieldset[disabled] .btn-facebook:active, -.btn-facebook.disabled.active, -.btn-facebook[disabled].active, -fieldset[disabled] .btn-facebook.active { - background-color: #3b5998; - border-color: rgba(0, 0, 0, 0.2); -} -.btn-facebook .badge { - color: #3b5998; - background-color: #ffffff; -} -.btn-flickr { - color: #ffffff; - background-color: #ff0084; - border-color: rgba(0, 0, 0, 0.2); -} -.btn-flickr:hover, -.btn-flickr:focus, -.btn-flickr.focus, -.btn-flickr:active, -.btn-flickr.active, -.open > .dropdown-toggle.btn-flickr { - color: #ffffff; - background-color: #cc006a; - border-color: rgba(0, 0, 0, 0.2); -} -.btn-flickr:active, -.btn-flickr.active, -.open > .dropdown-toggle.btn-flickr { - background-image: none; -} -.btn-flickr.disabled, -.btn-flickr[disabled], -fieldset[disabled] .btn-flickr, -.btn-flickr.disabled:hover, -.btn-flickr[disabled]:hover, -fieldset[disabled] .btn-flickr:hover, -.btn-flickr.disabled:focus, -.btn-flickr[disabled]:focus, -fieldset[disabled] .btn-flickr:focus, -.btn-flickr.disabled.focus, -.btn-flickr[disabled].focus, -fieldset[disabled] .btn-flickr.focus, -.btn-flickr.disabled:active, -.btn-flickr[disabled]:active, -fieldset[disabled] .btn-flickr:active, -.btn-flickr.disabled.active, -.btn-flickr[disabled].active, -fieldset[disabled] .btn-flickr.active { - background-color: #ff0084; - border-color: rgba(0, 0, 0, 0.2); -} -.btn-flickr .badge { - color: #ff0084; - background-color: #ffffff; -} -.btn-foursquare { - color: #ffffff; - background-color: #0072b1; - border-color: rgba(0, 0, 0, 0.2); -} -.btn-foursquare:hover, -.btn-foursquare:focus, -.btn-foursquare.focus, -.btn-foursquare:active, -.btn-foursquare.active, -.open > .dropdown-toggle.btn-foursquare { - color: #ffffff; - background-color: #00517e; - border-color: rgba(0, 0, 0, 0.2); -} -.btn-foursquare:active, -.btn-foursquare.active, -.open > .dropdown-toggle.btn-foursquare { - background-image: none; -} -.btn-foursquare.disabled, -.btn-foursquare[disabled], -fieldset[disabled] .btn-foursquare, -.btn-foursquare.disabled:hover, -.btn-foursquare[disabled]:hover, -fieldset[disabled] .btn-foursquare:hover, -.btn-foursquare.disabled:focus, -.btn-foursquare[disabled]:focus, -fieldset[disabled] .btn-foursquare:focus, -.btn-foursquare.disabled.focus, -.btn-foursquare[disabled].focus, -fieldset[disabled] .btn-foursquare.focus, -.btn-foursquare.disabled:active, -.btn-foursquare[disabled]:active, -fieldset[disabled] .btn-foursquare:active, -.btn-foursquare.disabled.active, -.btn-foursquare[disabled].active, -fieldset[disabled] .btn-foursquare.active { - background-color: #0072b1; - border-color: rgba(0, 0, 0, 0.2); -} -.btn-foursquare .badge { - color: #0072b1; - background-color: #ffffff; -} -.btn-github { - color: #ffffff; - background-color: #444444; - border-color: rgba(0, 0, 0, 0.2); -} -.btn-github:hover, -.btn-github:focus, -.btn-github.focus, -.btn-github:active, -.btn-github.active, -.open > .dropdown-toggle.btn-github { - color: #ffffff; - background-color: #2b2b2b; - border-color: rgba(0, 0, 0, 0.2); -} -.btn-github:active, -.btn-github.active, -.open > .dropdown-toggle.btn-github { - background-image: none; -} -.btn-github.disabled, -.btn-github[disabled], -fieldset[disabled] .btn-github, -.btn-github.disabled:hover, -.btn-github[disabled]:hover, -fieldset[disabled] .btn-github:hover, -.btn-github.disabled:focus, -.btn-github[disabled]:focus, -fieldset[disabled] .btn-github:focus, -.btn-github.disabled.focus, -.btn-github[disabled].focus, -fieldset[disabled] .btn-github.focus, -.btn-github.disabled:active, -.btn-github[disabled]:active, -fieldset[disabled] .btn-github:active, -.btn-github.disabled.active, -.btn-github[disabled].active, -fieldset[disabled] .btn-github.active { - background-color: #444444; - border-color: rgba(0, 0, 0, 0.2); -} -.btn-github .badge { - color: #444444; - background-color: #ffffff; -} -.btn-google-plus { - color: #ffffff; - background-color: #dd4b39; - border-color: rgba(0, 0, 0, 0.2); -} -.btn-google-plus:hover, -.btn-google-plus:focus, -.btn-google-plus.focus, -.btn-google-plus:active, -.btn-google-plus.active, -.open > .dropdown-toggle.btn-google-plus { - color: #ffffff; - background-color: #c23321; - border-color: rgba(0, 0, 0, 0.2); -} -.btn-google-plus:active, -.btn-google-plus.active, -.open > .dropdown-toggle.btn-google-plus { - background-image: none; -} -.btn-google-plus.disabled, -.btn-google-plus[disabled], -fieldset[disabled] .btn-google-plus, -.btn-google-plus.disabled:hover, -.btn-google-plus[disabled]:hover, -fieldset[disabled] .btn-google-plus:hover, -.btn-google-plus.disabled:focus, -.btn-google-plus[disabled]:focus, -fieldset[disabled] .btn-google-plus:focus, -.btn-google-plus.disabled.focus, -.btn-google-plus[disabled].focus, -fieldset[disabled] .btn-google-plus.focus, -.btn-google-plus.disabled:active, -.btn-google-plus[disabled]:active, -fieldset[disabled] .btn-google-plus:active, -.btn-google-plus.disabled.active, -.btn-google-plus[disabled].active, -fieldset[disabled] .btn-google-plus.active { - background-color: #dd4b39; - border-color: rgba(0, 0, 0, 0.2); -} -.btn-google-plus .badge { - color: #dd4b39; - background-color: #ffffff; -} -.btn-instagram { - color: #ffffff; - background-color: #3f729b; - border-color: rgba(0, 0, 0, 0.2); -} -.btn-instagram:hover, -.btn-instagram:focus, -.btn-instagram.focus, -.btn-instagram:active, -.btn-instagram.active, -.open > .dropdown-toggle.btn-instagram { - color: #ffffff; - background-color: #305777; - border-color: rgba(0, 0, 0, 0.2); -} -.btn-instagram:active, -.btn-instagram.active, -.open > .dropdown-toggle.btn-instagram { - background-image: none; -} -.btn-instagram.disabled, -.btn-instagram[disabled], -fieldset[disabled] .btn-instagram, -.btn-instagram.disabled:hover, -.btn-instagram[disabled]:hover, -fieldset[disabled] .btn-instagram:hover, -.btn-instagram.disabled:focus, -.btn-instagram[disabled]:focus, -fieldset[disabled] .btn-instagram:focus, -.btn-instagram.disabled.focus, -.btn-instagram[disabled].focus, -fieldset[disabled] .btn-instagram.focus, -.btn-instagram.disabled:active, -.btn-instagram[disabled]:active, -fieldset[disabled] .btn-instagram:active, -.btn-instagram.disabled.active, -.btn-instagram[disabled].active, -fieldset[disabled] .btn-instagram.active { - background-color: #3f729b; - border-color: rgba(0, 0, 0, 0.2); -} -.btn-instagram .badge { - color: #3f729b; - background-color: #ffffff; -} -.btn-linkedin { - color: #ffffff; - background-color: #007bb6; - border-color: rgba(0, 0, 0, 0.2); -} -.btn-linkedin:hover, -.btn-linkedin:focus, -.btn-linkedin.focus, -.btn-linkedin:active, -.btn-linkedin.active, -.open > .dropdown-toggle.btn-linkedin { - color: #ffffff; - background-color: #005983; - border-color: rgba(0, 0, 0, 0.2); -} -.btn-linkedin:active, -.btn-linkedin.active, -.open > .dropdown-toggle.btn-linkedin { - background-image: none; -} -.btn-linkedin.disabled, -.btn-linkedin[disabled], -fieldset[disabled] .btn-linkedin, -.btn-linkedin.disabled:hover, -.btn-linkedin[disabled]:hover, -fieldset[disabled] .btn-linkedin:hover, -.btn-linkedin.disabled:focus, -.btn-linkedin[disabled]:focus, -fieldset[disabled] .btn-linkedin:focus, -.btn-linkedin.disabled.focus, -.btn-linkedin[disabled].focus, -fieldset[disabled] .btn-linkedin.focus, -.btn-linkedin.disabled:active, -.btn-linkedin[disabled]:active, -fieldset[disabled] .btn-linkedin:active, -.btn-linkedin.disabled.active, -.btn-linkedin[disabled].active, -fieldset[disabled] .btn-linkedin.active { - background-color: #007bb6; - border-color: rgba(0, 0, 0, 0.2); -} -.btn-linkedin .badge { - color: #007bb6; - background-color: #ffffff; -} -.btn-tumblr { - color: #ffffff; - background-color: #2c4762; - border-color: rgba(0, 0, 0, 0.2); -} -.btn-tumblr:hover, -.btn-tumblr:focus, -.btn-tumblr.focus, -.btn-tumblr:active, -.btn-tumblr.active, -.open > .dropdown-toggle.btn-tumblr { - color: #ffffff; - background-color: #1c2d3f; - border-color: rgba(0, 0, 0, 0.2); -} -.btn-tumblr:active, -.btn-tumblr.active, -.open > .dropdown-toggle.btn-tumblr { - background-image: none; -} -.btn-tumblr.disabled, -.btn-tumblr[disabled], -fieldset[disabled] .btn-tumblr, -.btn-tumblr.disabled:hover, -.btn-tumblr[disabled]:hover, -fieldset[disabled] .btn-tumblr:hover, -.btn-tumblr.disabled:focus, -.btn-tumblr[disabled]:focus, -fieldset[disabled] .btn-tumblr:focus, -.btn-tumblr.disabled.focus, -.btn-tumblr[disabled].focus, -fieldset[disabled] .btn-tumblr.focus, -.btn-tumblr.disabled:active, -.btn-tumblr[disabled]:active, -fieldset[disabled] .btn-tumblr:active, -.btn-tumblr.disabled.active, -.btn-tumblr[disabled].active, -fieldset[disabled] .btn-tumblr.active { - background-color: #2c4762; - border-color: rgba(0, 0, 0, 0.2); -} -.btn-tumblr .badge { - color: #2c4762; - background-color: #ffffff; -} -.btn-twitter { - color: #ffffff; - background-color: #55acee; - border-color: rgba(0, 0, 0, 0.2); -} -.btn-twitter:hover, -.btn-twitter:focus, -.btn-twitter.focus, -.btn-twitter:active, -.btn-twitter.active, -.open > .dropdown-toggle.btn-twitter { - color: #ffffff; - background-color: #2795e9; - border-color: rgba(0, 0, 0, 0.2); -} -.btn-twitter:active, -.btn-twitter.active, -.open > .dropdown-toggle.btn-twitter { - background-image: none; -} -.btn-twitter.disabled, -.btn-twitter[disabled], -fieldset[disabled] .btn-twitter, -.btn-twitter.disabled:hover, -.btn-twitter[disabled]:hover, -fieldset[disabled] .btn-twitter:hover, -.btn-twitter.disabled:focus, -.btn-twitter[disabled]:focus, -fieldset[disabled] .btn-twitter:focus, -.btn-twitter.disabled.focus, -.btn-twitter[disabled].focus, -fieldset[disabled] .btn-twitter.focus, -.btn-twitter.disabled:active, -.btn-twitter[disabled]:active, -fieldset[disabled] .btn-twitter:active, -.btn-twitter.disabled.active, -.btn-twitter[disabled].active, -fieldset[disabled] .btn-twitter.active { - background-color: #55acee; - border-color: rgba(0, 0, 0, 0.2); -} -.btn-twitter .badge { - color: #55acee; - background-color: #ffffff; -} -.btn-vk { - color: #ffffff; - background-color: #587ea3; - border-color: rgba(0, 0, 0, 0.2); -} -.btn-vk:hover, -.btn-vk:focus, -.btn-vk.focus, -.btn-vk:active, -.btn-vk.active, -.open > .dropdown-toggle.btn-vk { - color: #ffffff; - background-color: #466482; - border-color: rgba(0, 0, 0, 0.2); -} -.btn-vk:active, -.btn-vk.active, -.open > .dropdown-toggle.btn-vk { - background-image: none; -} -.btn-vk.disabled, -.btn-vk[disabled], -fieldset[disabled] .btn-vk, -.btn-vk.disabled:hover, -.btn-vk[disabled]:hover, -fieldset[disabled] .btn-vk:hover, -.btn-vk.disabled:focus, -.btn-vk[disabled]:focus, -fieldset[disabled] .btn-vk:focus, -.btn-vk.disabled.focus, -.btn-vk[disabled].focus, -fieldset[disabled] .btn-vk.focus, -.btn-vk.disabled:active, -.btn-vk[disabled]:active, -fieldset[disabled] .btn-vk:active, -.btn-vk.disabled.active, -.btn-vk[disabled].active, -fieldset[disabled] .btn-vk.active { - background-color: #587ea3; - border-color: rgba(0, 0, 0, 0.2); -} -.btn-vk .badge { - color: #587ea3; - background-color: #ffffff; -} -/* - * Plugin: Full Calendar - * --------------------- - */ -.fc-button { - background: #f4f4f4; - background-image: none; - color: #444; - border-color: #ddd; - border-bottom-color: #ddd; -} -.fc-button:hover, -.fc-button:active, -.fc-button.hover { - background-color: #e9e9e9; -} -.fc-header-title h2 { - font-size: 15px; - line-height: 1.6em; - color: #666; - margin-left: 10px; -} -.fc-header-right { - padding-right: 10px; -} -.fc-header-left { - padding-left: 10px; -} -.fc-widget-header { - background: #fafafa; -} -.fc-grid { - width: 100%; - border: 0; -} -.fc-widget-header:first-of-type, -.fc-widget-content:first-of-type { - border-left: 0; - border-right: 0; -} -.fc-widget-header:last-of-type, -.fc-widget-content:last-of-type { - border-right: 0; -} -.fc-toolbar { - padding: 10px; - margin: 0; -} -.fc-day-number { - font-size: 20px; - font-weight: 300; - padding-right: 10px; -} -.fc-color-picker { - list-style: none; - margin: 0; - padding: 0; -} -.fc-color-picker > li { - float: left; - font-size: 30px; - margin-right: 5px; - line-height: 30px; -} -.fc-color-picker > li .fa { - -webkit-transition: -webkit-transform linear 0.3s; - -moz-transition: -moz-transform linear 0.3s; - -o-transition: -o-transform linear 0.3s; - transition: transform linear 0.3s; -} -.fc-color-picker > li .fa:hover { - -webkit-transform: rotate(30deg); - -ms-transform: rotate(30deg); - -o-transform: rotate(30deg); - transform: rotate(30deg); -} -#add-new-event { - -webkit-transition: all linear 0.3s; - -o-transition: all linear 0.3s; - transition: all linear 0.3s; -} -.external-event { - padding: 5px 10px; - font-weight: bold; - margin-bottom: 4px; - box-shadow: 0 1px 1px rgba(0, 0, 0, 0.1); - text-shadow: 0 1px 1px rgba(0, 0, 0, 0.1); - border-radius: 3px; - cursor: move; -} -.external-event:hover { - box-shadow: inset 0 0 90px rgba(0, 0, 0, 0.2); -} -/* - * General: Miscellaneous - * ---------------------- - */ -/* 10px padding and margins */ -.pad { - padding: 10px; -} -.margin { - margin: 10px; -} -.margin-bottom { - margin-bottom: 20px; -} -/* Display inline */ -.inline { - display: inline; - width: auto; -} -/* Description Blocks */ -.description-block { - display: block; - margin: 10px 0; - text-align: center; -} -.description-block.margin-bottom { - margin-bottom: 25px; -} -.description-block > .description-header { - margin: 0; - padding: 0; - font-weight: 600; - font-size: 16px; -} -.description-block > .description-text { - text-transform: uppercase; -} -/* Background colors */ -.bg-red, -.bg-yellow, -.bg-aqua, -.bg-blue, -.bg-light-blue, -.bg-green, -.bg-navy, -.bg-teal, -.bg-olive, -.bg-lime, -.bg-orange, -.bg-fuchsia, -.bg-purple, -.bg-maroon, -.bg-black, -.bg-red-active, -.bg-yellow-active, -.bg-aqua-active, -.bg-blue-active, -.bg-light-blue-active, -.bg-green-active, -.bg-navy-active, -.bg-teal-active, -.bg-olive-active, -.bg-lime-active, -.bg-orange-active, -.bg-fuchsia-active, -.bg-purple-active, -.bg-maroon-active, -.bg-black-active, -.callout.callout-danger, -.callout.callout-warning, -.callout.callout-info, -.callout.callout-success, -.alert-success, -.alert-danger, -.alert-error, -.alert-warning, -.alert-info, -.label-danger, -.label-info, -.label-waring, -.label-primary, -.label-success, -.modal-primary .modal-body, -.modal-primary .modal-header, -.modal-primary .modal-footer, -.modal-warning .modal-body, -.modal-warning .modal-header, -.modal-warning .modal-footer, -.modal-info .modal-body, -.modal-info .modal-header, -.modal-info .modal-footer, -.modal-success .modal-body, -.modal-success .modal-header, -.modal-success .modal-footer, -.modal-danger .modal-body, -.modal-danger .modal-header, -.modal-danger .modal-footer { - color: #fff !important; -} -.bg-gray { - color: #000; - background-color: #d2d6de !important; -} -.bg-black { - background-color: #111111 !important; -} -.bg-red, -.callout.callout-danger, -.alert-danger, -.alert-error, -.label-danger, -.modal-danger .modal-body { - background-color: #dd4b39 !important; -} -.bg-yellow, -.callout.callout-warning, -.alert-warning, -.label-waring, -.modal-warning .modal-body { - background-color: #f39c12 !important; -} -.bg-aqua, -.callout.callout-info, -.alert-info, -.label-info, -.modal-info .modal-body { - background-color: #00c0ef !important; -} -.bg-blue { - background-color: #0073b7 !important; -} -.bg-light-blue, -.label-primary, -.modal-primary .modal-body { - background-color: #3c8dbc !important; -} -.bg-green, -.callout.callout-success, -.alert-success, -.label-success, -.modal-success .modal-body { - background-color: #00a65a !important; -} -.bg-navy { - background-color: #001f3f !important; -} -.bg-teal { - background-color: #39cccc !important; -} -.bg-olive { - background-color: #3d9970 !important; -} -.bg-lime { - background-color: #01ff70 !important; -} -.bg-orange { - background-color: #ff851b !important; -} -.bg-fuchsia { - background-color: #f012be !important; -} -.bg-purple { - background-color: #605ca8 !important; -} -.bg-maroon { - background-color: #d81b60 !important; -} -.bg-gray-active { - color: #000; - background-color: #b5bbc8 !important; -} -.bg-black-active { - background-color: #000000 !important; -} -.bg-red-active, -.modal-danger .modal-header, -.modal-danger .modal-footer { - background-color: #d33724 !important; -} -.bg-yellow-active, -.modal-warning .modal-header, -.modal-warning .modal-footer { - background-color: #db8b0b !important; -} -.bg-aqua-active, -.modal-info .modal-header, -.modal-info .modal-footer { - background-color: #00a7d0 !important; -} -.bg-blue-active { - background-color: #005384 !important; -} -.bg-light-blue-active, -.modal-primary .modal-header, -.modal-primary .modal-footer { - background-color: #357ca5 !important; -} -.bg-green-active, -.modal-success .modal-header, -.modal-success .modal-footer { - background-color: #008d4c !important; -} -.bg-navy-active { - background-color: #001a35 !important; -} -.bg-teal-active { - background-color: #30bbbb !important; -} -.bg-olive-active { - background-color: #368763 !important; -} -.bg-lime-active { - background-color: #00e765 !important; -} -.bg-orange-active { - background-color: #ff7701 !important; -} -.bg-fuchsia-active { - background-color: #db0ead !important; -} -.bg-purple-active { - background-color: #555299 !important; -} -.bg-maroon-active { - background-color: #ca195a !important; -} -[class^="bg-"].disabled { - opacity: 0.65; - filter: alpha(opacity=65); -} -/* Text colors */ -.text-red { - color: #dd4b39 !important; -} -.text-yellow { - color: #f39c12 !important; -} -.text-aqua { - color: #00c0ef !important; -} -.text-blue { - color: #0073b7 !important; -} -.text-black { - color: #111111 !important; -} -.text-light-blue { - color: #3c8dbc !important; -} -.text-green { - color: #00a65a !important; -} -.text-gray { - color: #d2d6de !important; -} -.text-navy { - color: #001f3f !important; -} -.text-teal { - color: #39cccc !important; -} -.text-olive { - color: #3d9970 !important; -} -.text-lime { - color: #01ff70 !important; -} -.text-orange { - color: #ff851b !important; -} -.text-fuchsia { - color: #f012be !important; -} -.text-purple { - color: #605ca8 !important; -} -.text-maroon { - color: #d81b60 !important; -} -/*Hide elements by display none only*/ -.hide { - display: none !important; -} -/* Remove borders */ -.no-border { - border: 0px !important; -} -/* Remove padding */ -.no-padding { - padding: 0px !important; -} -/* Remove margins */ -.no-margin { - margin: 0px !important; -} -/* Remove box shadow */ -.no-shadow { - box-shadow: none!important; -} -/* Unstyled List */ -.list-unstyled, -.chart-legend, -.contacts-list, -.users-list, -.mailbox-attachments { - list-style: none; - margin: 0; - padding: 0; -} -/* Remove border radius */ -.flat { - border-radius: 0 !important; -} -.text-bold, -.text-bold.table td, -.text-bold.table th { - font-weight: 700; -} -/* _fix for sparkline tooltip */ -.jqstooltip { - padding: 5px!important; - width: auto!important; - height: auto!important; -} -/* -Gradient Background colors -*/ -.bg-teal-gradient { - background: #39cccc !important; - background: -webkit-gradient(linear, left bottom, left top, color-stop(0, #39cccc), color-stop(1, #7adddd)) !important; - background: -ms-linear-gradient(bottom, #39cccc, #7adddd) !important; - background: -moz-linear-gradient(center bottom, #39cccc 0%, #7adddd 100%) !important; - background: -o-linear-gradient(#7adddd, #39cccc) !important; - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#7adddd', endColorstr='#39cccc', GradientType=0) !important; - color: #fff; -} -.bg-light-blue-gradient { - background: #3c8dbc !important; - background: -webkit-gradient(linear, left bottom, left top, color-stop(0, #3c8dbc), color-stop(1, #67a8ce)) !important; - background: -ms-linear-gradient(bottom, #3c8dbc, #67a8ce) !important; - background: -moz-linear-gradient(center bottom, #3c8dbc 0%, #67a8ce 100%) !important; - background: -o-linear-gradient(#67a8ce, #3c8dbc) !important; - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#67a8ce', endColorstr='#3c8dbc', GradientType=0) !important; - color: #fff; -} -.bg-blue-gradient { - background: #0073b7 !important; - background: -webkit-gradient(linear, left bottom, left top, color-stop(0, #0073b7), color-stop(1, #0089db)) !important; - background: -ms-linear-gradient(bottom, #0073b7, #0089db) !important; - background: -moz-linear-gradient(center bottom, #0073b7 0%, #0089db 100%) !important; - background: -o-linear-gradient(#0089db, #0073b7) !important; - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#0089db', endColorstr='#0073b7', GradientType=0) !important; - color: #fff; -} -.bg-aqua-gradient { - background: #00c0ef !important; - background: -webkit-gradient(linear, left bottom, left top, color-stop(0, #00c0ef), color-stop(1, #14d1ff)) !important; - background: -ms-linear-gradient(bottom, #00c0ef, #14d1ff) !important; - background: -moz-linear-gradient(center bottom, #00c0ef 0%, #14d1ff 100%) !important; - background: -o-linear-gradient(#14d1ff, #00c0ef) !important; - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#14d1ff', endColorstr='#00c0ef', GradientType=0) !important; - color: #fff; -} -.bg-yellow-gradient { - background: #f39c12 !important; - background: -webkit-gradient(linear, left bottom, left top, color-stop(0, #f39c12), color-stop(1, #f7bc60)) !important; - background: -ms-linear-gradient(bottom, #f39c12, #f7bc60) !important; - background: -moz-linear-gradient(center bottom, #f39c12 0%, #f7bc60 100%) !important; - background: -o-linear-gradient(#f7bc60, #f39c12) !important; - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#f7bc60', endColorstr='#f39c12', GradientType=0) !important; - color: #fff; -} -.bg-purple-gradient { - background: #605ca8 !important; - background: -webkit-gradient(linear, left bottom, left top, color-stop(0, #605ca8), color-stop(1, #9491c4)) !important; - background: -ms-linear-gradient(bottom, #605ca8, #9491c4) !important; - background: -moz-linear-gradient(center bottom, #605ca8 0%, #9491c4 100%) !important; - background: -o-linear-gradient(#9491c4, #605ca8) !important; - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#9491c4', endColorstr='#605ca8', GradientType=0) !important; - color: #fff; -} -.bg-green-gradient { - background: #00a65a !important; - background: -webkit-gradient(linear, left bottom, left top, color-stop(0, #00a65a), color-stop(1, #00ca6d)) !important; - background: -ms-linear-gradient(bottom, #00a65a, #00ca6d) !important; - background: -moz-linear-gradient(center bottom, #00a65a 0%, #00ca6d 100%) !important; - background: -o-linear-gradient(#00ca6d, #00a65a) !important; - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#00ca6d', endColorstr='#00a65a', GradientType=0) !important; - color: #fff; -} -.bg-red-gradient { - background: #dd4b39 !important; - background: -webkit-gradient(linear, left bottom, left top, color-stop(0, #dd4b39), color-stop(1, #e47365)) !important; - background: -ms-linear-gradient(bottom, #dd4b39, #e47365) !important; - background: -moz-linear-gradient(center bottom, #dd4b39 0%, #e47365 100%) !important; - background: -o-linear-gradient(#e47365, #dd4b39) !important; - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#e47365', endColorstr='#dd4b39', GradientType=0) !important; - color: #fff; -} -.bg-black-gradient { - background: #111111 !important; - background: -webkit-gradient(linear, left bottom, left top, color-stop(0, #111111), color-stop(1, #2b2b2b)) !important; - background: -ms-linear-gradient(bottom, #111111, #2b2b2b) !important; - background: -moz-linear-gradient(center bottom, #111111 0%, #2b2b2b 100%) !important; - background: -o-linear-gradient(#2b2b2b, #111111) !important; - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#2b2b2b', endColorstr='#111111', GradientType=0) !important; - color: #fff; -} -.bg-maroon-gradient { - background: #d81b60 !important; - background: -webkit-gradient(linear, left bottom, left top, color-stop(0, #d81b60), color-stop(1, #e73f7c)) !important; - background: -ms-linear-gradient(bottom, #d81b60, #e73f7c) !important; - background: -moz-linear-gradient(center bottom, #d81b60 0%, #e73f7c 100%) !important; - background: -o-linear-gradient(#e73f7c, #d81b60) !important; - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#e73f7c', endColorstr='#d81b60', GradientType=0) !important; - color: #fff; -} -.connectedSortable { - min-height: 100px; -} -.ui-helper-hidden-accessible { - border: 0; - clip: rect(0 0 0 0); - height: 1px; - margin: -1px; - overflow: hidden; - padding: 0; - position: absolute; - width: 1px; -} -.sort-highlight { - background: #f4f4f4; - border: 1px dashed #ddd; - margin-bottom: 10px; -} -.full-opacity-hover { - opacity: 0.65; - filter: alpha(opacity=65); -} -.full-opacity-hover:hover { - opacity: 1; - filter: alpha(opacity=100); -} -/* - * Misc: print - * ----------- - */ -@media print { - .no-print, - .main-sidebar, - .left-side, - .main-header, - .content-header { - display: none!important; - } - .content-wrapper, - .right-side, - .main-footer { - margin-left: 0!important; - min-height: 0!important; - -webkit-transform: translate(0, 0) !important; - -ms-transform: translate(0, 0) !important; - -o-transform: translate(0, 0) !important; - transform: translate(0, 0) !important; - } - .fixed .content-wrapper, - .fixed .right-side { - padding-top: 0!important; - } - .invoice { - width: 100%; - border: 0; - margin: 0; - padding: 0; - } - .invoice-col { - float: left; - width: 33.3333333%; - } - .table-responsive { - overflow: auto; - } - .table-responsive > .table tr th, - .table-responsive > .table tr td { - white-space: normal!important; - } -} diff --git a/admin/dist/css/AdminLTE.min.css b/admin/dist/css/AdminLTE.min.css deleted file mode 100644 index 4ce76c3..0000000 --- a/admin/dist/css/AdminLTE.min.css +++ /dev/null @@ -1,7 +0,0 @@ -@import url(//fonts.googleapis.com/css?family=Source+Sans+Pro:300,400,600,700,300italic,400italic,600italic);/*! - * AdminLTE v2.0. - * Author: Almsaeed Studio - * Website: Almsaeed Studio <http://almsaeedstudio.com> - * License: Open source - MIT - * Please visit http://opensource.org/licenses/MIT for more information -!*/html,body{min-height:100%}.layout-boxed html,.layout-boxed body{height:100%}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:'Source Sans Pro','Helvetica Neue',Helvetica,Arial,sans-serif;font-weight:400;overflow-x:hidden;overflow-y:auto}.wrapper{min-height:100%;position:static;overflow:hidden}.wrapper:before,.wrapper:after{content:" ";display:table}.wrapper:after{clear:both}.layout-boxed .wrapper{max-width:1250px;margin:0 auto;min-height:100%;box-shadow:0 0 8px rgba(0,0,0,0.5);position:relative}.layout-boxed{background:url('../img/boxed-bg.jpg') repeat fixed}.content-wrapper,.right-side,.main-footer{-webkit-transition:-webkit-transform .3s cubic-bezier(.32, 1.25, .375, 1.15);-moz-transition:-moz-transform .3s cubic-bezier(.32, 1.25, .375, 1.15);-o-transition:-o-transform .3s cubic-bezier(.32, 1.25, .375, 1.15);transition:transform .3s cubic-bezier(.32, 1.25, .375, 1.15);-webkit-transition:margin-left .3s cubic-bezier(.32, 1.25, .375, 1.15);-o-transition:margin-left .3s cubic-bezier(.32, 1.25, .375, 1.15);transition:margin-left .3s cubic-bezier(.32, 1.25, .375, 1.15);margin-left:230px;z-index:820}.layout-top-nav .content-wrapper,.layout-top-nav .right-side,.layout-top-nav .main-footer{margin-left:0}@media (max-width:767px){.content-wrapper,.right-side,.main-footer{margin-left:0}}@media (min-width:768px){.sidebar-collapse .content-wrapper,.sidebar-collapse .right-side,.sidebar-collapse .main-footer{margin-left:0}}@media (max-width:767px){.sidebar-open .content-wrapper,.sidebar-open .right-side,.sidebar-open .main-footer{-webkit-transform:translate(230px, 0);-ms-transform:translate(230px, 0);-o-transform:translate(230px, 0);transform:translate(230px, 0)}}.content-wrapper,.right-side{min-height:100%;background-color:#ecf0f5;z-index:800}.main-footer{background:#fff;padding:15px;color:#444;border-top:1px solid #eee}.fixed .main-header,.fixed .main-sidebar,.fixed .left-side{position:fixed}.fixed .main-header{top:0;right:0;left:0}.fixed .content-wrapper,.fixed .right-side{padding-top:50px}@media (max-width:767px){.fixed .content-wrapper,.fixed .right-side{padding-top:100px}}.fixed.layout-boxed .wrapper{max-width:100%}.content{min-height:250px;padding:15px;margin-right:auto;margin-left:auto;padding-left:15px;padding-right:15px}h1,h2,h3,h4,h5,h6,.h1,.h2,.h3,.h4,.h5,.h6{font-family:'Source Sans Pro',sans-serif}a{color:#3c8dbc}a:hover,a:active,a:focus{outline:none;text-decoration:none;color:#72afd2}.page-header{margin:10px 0 20px 0;font-size:22px}.page-header>small{color:#666;display:block;margin-top:5px}.main-header{position:relative;max-height:100px;z-index:1030}.main-header>.navbar{margin-bottom:0;margin-left:230px;border:none;min-height:50px;border-radius:0}.layout-top-nav .main-header>.navbar{margin-left:0!important}.main-header #navbar-search-input{background:rgba(255,255,255,0.2);border-color:transparent}.main-header #navbar-search-input:focus,.main-header #navbar-search-input:active{border-color:rgba(0,0,0,0.1) !important;background:rgba(255,255,255,0.9)}.main-header #navbar-search-input::-moz-placeholder{color:#ccc;opacity:1}.main-header #navbar-search-input:-ms-input-placeholder{color:#ccc}.main-header #navbar-search-input::-webkit-input-placeholder{color:#ccc}.main-header .navbar-custom-menu,.main-header .navbar-right{margin-right:5px;float:right}@media (max-width:991px){.main-header .navbar-custom-menu a,.main-header .navbar-right a{color:inherit;background:transparent}}@media (max-width:767px){.main-header .navbar-right{float:none}.navbar-collapse .main-header .navbar-right{margin:7.5px -15px}.main-header .navbar-right>li{color:inherit;border:0}}.main-header .sidebar-toggle{float:left;background-color:transparent;background-image:none;padding:15px 15px;font-family:fontAwesome}.main-header .sidebar-toggle:before{content:"\f0c9"}.main-header .sidebar-toggle:hover{color:#fff}.main-header .sidebar-toggle .icon-bar{display:none}.main-header .navbar .nav>li.user>a>.fa,.main-header .navbar .nav>li.user>a>.glyphicon,.main-header .navbar .nav>li.user>a>.ion{margin-right:5px}.main-header .navbar .nav>li>a>.label{position:absolute;top:9px;right:7px;text-align:center;font-size:9px;padding:2px 3px;line-height:.9}.main-header .logo{display:block;float:left;height:50px;font-size:20px;line-height:50px;text-align:center;width:230px;font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;padding:0 15px;font-weight:300}.main-header .navbar-brand{color:#fff}.content-header{position:relative;padding:15px 15px 0 15px}.content-header>h1{margin:0;font-size:24px}.content-header>h1>small{font-size:15px;display:inline-block;padding-left:4px;font-weight:300}.content-header>.breadcrumb{float:right;background:transparent;margin-top:0px;margin-bottom:0;font-size:12px;padding:7px 5px;position:absolute;top:15px;right:10px;border-radius:2px}.content-header>.breadcrumb>li>a{color:#444;text-decoration:none;display:inline-block}.content-header>.breadcrumb>li>a>.fa,.content-header>.breadcrumb>li>a>.glyphicon,.content-header>.breadcrumb>li>a>.ion{margin-right:5px}.content-header>.breadcrumb>li+li:before{content:'>\00a0'}@media (max-width:991px){.content-header>.breadcrumb{position:relative;margin-top:5px;top:0;right:0;float:none;background:#d2d6de;padding-left:10px}.content-header>.breadcrumb li:before{color:#97a0b3}}.navbar-toggle{color:#fff;border:0;margin:0;padding:15px 15px}@media (max-width:991px){.navbar-custom-menu .navbar-nav>li{float:left}.navbar-custom-menu .navbar-nav{margin:0;float:left}.navbar-custom-menu .navbar-nav>li>a{padding-top:15px;padding-bottom:15px;line-height:20px}}@media (max-width:767px){.main-header{position:relative}.main-header .logo,.main-header .navbar{width:100%;float:none;position:relative!important}.main-header .navbar{margin:0}.main-header .navbar-custom-menu{float:right}.main-sidebar,.left-side{padding-top:100px!important}}.main-sidebar,.left-side{position:absolute;top:0;left:0;padding-top:50px;min-height:100%;width:230px;z-index:810;-webkit-transition:-webkit-transform .3s cubic-bezier(.32, 1.25, .375, 1.15);-moz-transition:-moz-transform .3s cubic-bezier(.32, 1.25, .375, 1.15);-o-transition:-o-transform .3s cubic-bezier(.32, 1.25, .375, 1.15);transition:transform .3s cubic-bezier(.32, 1.25, .375, 1.15)}@media (max-width:767px){.main-sidebar,.left-side{-webkit-transform:translate(-230px, 0);-ms-transform:translate(-230px, 0);-o-transform:translate(-230px, 0);transform:translate(-230px, 0)}}@media (min-width:768px){.sidebar-collapse .main-sidebar,.sidebar-collapse .left-side{-webkit-transform:translate(-230px, 0);-ms-transform:translate(-230px, 0);-o-transform:translate(-230px, 0);transform:translate(-230px, 0)}}@media (max-width:767px){.sidebar-open .main-sidebar,.sidebar-open .left-side{-webkit-transform:translate(0, 0);-ms-transform:translate(0, 0);-o-transform:translate(0, 0);transform:translate(0, 0)}}.sidebar{padding-bottom:10px}.fixed .sidebar{overflow:auto;height:100%}.sidebar-form input:focus{border-color:transparent!important}.user-panel{padding:10px}.user-panel:before,.user-panel:after{content:" ";display:table}.user-panel:after{clear:both}.user-panel>.image>img{width:45px;height:45px}.user-panel>.info{font-weight:600;padding:5px 5px 5px 15px;font-size:14px;line-height:1}.user-panel>.info>p{margin-bottom:9px}.user-panel>.info>a{text-decoration:none;padding-right:5px;margin-top:3px;font-size:11px;font-weight:normal}.user-panel>.info>a>.fa,.user-panel>.info>a>.ion,.user-panel>.info>a>.glyphicon{margin-right:3px}.sidebar-menu{list-style:none;margin:0;padding:0}.sidebar-menu>li{position:relative;margin:0;padding:0}.sidebar-menu>li>a{padding:12px 5px 12px 15px;display:block}.sidebar-menu>li>a>.fa,.sidebar-menu>li>a>.glyphicon,.sidebar-menu>li>a>.ion{width:20px}.sidebar-menu>li .label,.sidebar-menu>li .badge{margin-top:3px;margin-right:5px}.sidebar-menu li.header{padding:10px 25px 10px 15px;font-size:12px}.sidebar-menu li>a>.fa-angle-left{width:auto;height:auto;padding:0;margin-right:10px;margin-top:3px}.sidebar-menu li.active>a>.fa-angle-left{-webkit-transform:rotate(-90deg);-ms-transform:rotate(-90deg);-o-transform:rotate(-90deg);transform:rotate(-90deg)}.sidebar-menu li.active>.treeview-menu{display:block}.sidebar-menu .treeview-menu{display:none;list-style:none;padding:0;margin:0;padding-left:5px}.sidebar-menu .treeview-menu .treeview-menu{padding-left:20px}.sidebar-menu .treeview-menu>li{margin:0}.sidebar-menu .treeview-menu>li>a{padding:5px 5px 5px 15px;display:block;font-size:14px}.sidebar-menu .treeview-menu>li>a>.fa,.sidebar-menu .treeview-menu>li>a>.glyphicon,.sidebar-menu .treeview-menu>li>a>.ion{width:20px}.sidebar-menu .treeview-menu>li>a>.fa-angle-left,.sidebar-menu .treeview-menu>li>a>.fa-angle-down{width:auto}.dropdown-menu{box-shadow:0 1px 1px rgba(0,0,0,0.1);border-color:#eee}.dropdown-menu>li>a{color:#777}.dropdown-menu>li>a>.glyphicon,.dropdown-menu>li>a>.fa,.dropdown-menu>li>a>.ion{margin-right:10px}.dropdown-menu>li>a:hover{background-color:#e1e3e9;color:#333}.dropdown-menu>.divider{background-color:#eee}.navbar-nav>.notifications-menu,.navbar-nav>.messages-menu,.navbar-nav>.tasks-menu{position:relative}.navbar-nav>.notifications-menu>.dropdown-menu,.navbar-nav>.messages-menu>.dropdown-menu,.navbar-nav>.tasks-menu>.dropdown-menu{width:280px;padding:0 0 0 0!important;margin:0!important;top:100%}.navbar-nav>.notifications-menu>.dropdown-menu>li,.navbar-nav>.messages-menu>.dropdown-menu>li,.navbar-nav>.tasks-menu>.dropdown-menu>li{position:relative}.navbar-nav>.notifications-menu>.dropdown-menu>li.header,.navbar-nav>.messages-menu>.dropdown-menu>li.header,.navbar-nav>.tasks-menu>.dropdown-menu>li.header{border-top-left-radius:4px;border-top-right-radius:4px;border-bottom-right-radius:0;border-bottom-left-radius:0;background-color:#ffffff;padding:7px 10px;border-bottom:1px solid #f4f4f4;color:#444444;font-size:14px}.navbar-nav>.notifications-menu>.dropdown-menu>li.footer>a,.navbar-nav>.messages-menu>.dropdown-menu>li.footer>a,.navbar-nav>.tasks-menu>.dropdown-menu>li.footer>a{border-top-left-radius:0;border-top-right-radius:0;border-bottom-right-radius:4px;border-bottom-left-radius:4px;font-size:12px;background-color:#fff;padding:7px 10px;border-bottom:1px solid #eeeeee;color:#444!important;text-align:center}@media (max-width:991px){.navbar-nav>.notifications-menu>.dropdown-menu>li.footer>a,.navbar-nav>.messages-menu>.dropdown-menu>li.footer>a,.navbar-nav>.tasks-menu>.dropdown-menu>li.footer>a{background:#fff!important;color:#444!important}}.navbar-nav>.notifications-menu>.dropdown-menu>li.footer>a:hover,.navbar-nav>.messages-menu>.dropdown-menu>li.footer>a:hover,.navbar-nav>.tasks-menu>.dropdown-menu>li.footer>a:hover{text-decoration:none;font-weight:normal}.navbar-nav>.notifications-menu>.dropdown-menu>li .menu,.navbar-nav>.messages-menu>.dropdown-menu>li .menu,.navbar-nav>.tasks-menu>.dropdown-menu>li .menu{max-height:200px;margin:0;padding:0;list-style:none;overflow-x:hidden}.navbar-nav>.notifications-menu>.dropdown-menu>li .menu>li>a,.navbar-nav>.messages-menu>.dropdown-menu>li .menu>li>a,.navbar-nav>.tasks-menu>.dropdown-menu>li .menu>li>a{display:block;white-space:nowrap;border-bottom:1px solid #f4f4f4}.navbar-nav>.notifications-menu>.dropdown-menu>li .menu>li>a:hover,.navbar-nav>.messages-menu>.dropdown-menu>li .menu>li>a:hover,.navbar-nav>.tasks-menu>.dropdown-menu>li .menu>li>a:hover{background:#f4f4f4;text-decoration:none}.navbar-nav>.notifications-menu>.dropdown-menu>li .menu>li>a{color:#444444;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;padding:10px}.navbar-nav>.notifications-menu>.dropdown-menu>li .menu>li>a>.glyphicon,.navbar-nav>.notifications-menu>.dropdown-menu>li .menu>li>a>.fa,.navbar-nav>.notifications-menu>.dropdown-menu>li .menu>li>a>.ion{width:20px}.navbar-nav>.messages-menu>.dropdown-menu>li .menu>li>a{margin:0px;padding:10px 10px}.navbar-nav>.messages-menu>.dropdown-menu>li .menu>li>a>div>img{margin:auto 10px auto auto;width:40px;height:40px}.navbar-nav>.messages-menu>.dropdown-menu>li .menu>li>a>h4{padding:0;margin:0 0 0 45px;color:#444444;font-size:15px;position:relative}.navbar-nav>.messages-menu>.dropdown-menu>li .menu>li>a>h4>small{color:#999999;font-size:10px;position:absolute;top:0px;right:0px}.navbar-nav>.messages-menu>.dropdown-menu>li .menu>li>a>p{margin:0 0 0 45px;font-size:12px;color:#888888}.navbar-nav>.messages-menu>.dropdown-menu>li .menu>li>a:before,.navbar-nav>.messages-menu>.dropdown-menu>li .menu>li>a:after{content:" ";display:table}.navbar-nav>.messages-menu>.dropdown-menu>li .menu>li>a:after{clear:both}.navbar-nav>.tasks-menu>.dropdown-menu>li .menu>li>a{padding:10px}.navbar-nav>.tasks-menu>.dropdown-menu>li .menu>li>a>h3{font-size:14px;padding:0;margin:0 0 10px 0;color:#666666}.navbar-nav>.tasks-menu>.dropdown-menu>li .menu>li>a>.progress{padding:0;margin:0}.navbar-nav>.user-menu>.dropdown-menu{border-top-right-radius:0;border-top-left-radius:0;padding:1px 0 0 0;border-top-width:0;width:280px}.navbar-nav>.user-menu>.dropdown-menu,.navbar-nav>.user-menu>.dropdown-menu>.user-body{border-bottom-right-radius:4px;border-bottom-left-radius:4px}.navbar-nav>.user-menu>.dropdown-menu>li.user-header{padding:10px;text-align:center}.navbar-nav>.user-menu>.dropdown-menu>li.user-header>img{z-index:5;height:90px;width:90px;border:3px solid;border-color:transparent;border-color:rgba(255,255,255,0.2)}.navbar-nav>.user-menu>.dropdown-menu>li.user-header>p{z-index:5;color:#fff;color:rgba(255,255,255,0.8);font-size:17px;margin-top:10px}.navbar-nav>.user-menu>.dropdown-menu>li.user-header>p>small{display:block;font-size:12px}.navbar-nav>.user-menu>.dropdown-menu>.user-body{padding:15px;border-bottom:1px solid #f4f4f4;border-top:1px solid #dddddd}.navbar-nav>.user-menu>.dropdown-menu>.user-body:before,.navbar-nav>.user-menu>.dropdown-menu>.user-body:after{content:" ";display:table}.navbar-nav>.user-menu>.dropdown-menu>.user-body:after{clear:both}.navbar-nav>.user-menu>.dropdown-menu>.user-body a{color:#444 !important}@media (max-width:991px){.navbar-nav>.user-menu>.dropdown-menu>.user-body a{background:#fff !important;color:#444 !important}}.navbar-nav>.user-menu>.dropdown-menu>.user-footer{background-color:#f9f9f9;padding:10px}.navbar-nav>.user-menu>.dropdown-menu>.user-footer:before,.navbar-nav>.user-menu>.dropdown-menu>.user-footer:after{content:" ";display:table}.navbar-nav>.user-menu>.dropdown-menu>.user-footer:after{clear:both}.navbar-nav>.user-menu>.dropdown-menu>.user-footer .btn-default{color:#666666}.navbar-nav>.user-menu .user-image{float:left;width:25px;height:25px;border-radius:50%;margin-right:10px;margin-top:-2px}@media (max-width:767px){.navbar-nav>.user-menu .user-image{float:none;margin-right:0;margin-top:-8px;line-height:10px}}.open:not(.dropup)>.animated-dropdown-menu{backface-visibility:visible !important;-webkit-animation:flipInX .7s both;-o-animation:flipInX .7s both;animation:flipInX .7s both}@keyframes flipInX{0%{transform:perspective(400px) rotate3d(1, 0, 0, 90deg);transition-timing-function:ease-in;opacity:0}40%{transform:perspective(400px) rotate3d(1, 0, 0, -20deg);transition-timing-function:ease-in}60%{transform:perspective(400px) rotate3d(1, 0, 0, 10deg);opacity:1}80%{transform:perspective(400px) rotate3d(1, 0, 0, -5deg)}100%{transform:perspective(400px)}}@-webkit-keyframes flipInX{0%{transform:perspective(400px) rotate3d(1, 0, 0, 90deg);transition-timing-function:ease-in;opacity:0}40%{transform:perspective(400px) rotate3d(1, 0, 0, -20deg);transition-timing-function:ease-in}60%{transform:perspective(400px) rotate3d(1, 0, 0, 10deg);opacity:1}80%{transform:perspective(400px) rotate3d(1, 0, 0, -5deg)}100%{transform:perspective(400px)}}.navbar-custom-menu>.navbar-nav>li{position:relative}.navbar-custom-menu>.navbar-nav>li>.dropdown-menu{position:absolute;right:0;left:auto}@media (max-width:991px){.navbar-custom-menu>.navbar-nav{float:right}.navbar-custom-menu>.navbar-nav>li{position:static}.navbar-custom-menu>.navbar-nav>li>.dropdown-menu{position:absolute;right:5%;left:auto;border:1px solid #ddd;background:#fff}}.form-control{border-radius:0 !important;box-shadow:none;border-color:#d2d6de}.form-control:focus{border-color:#3c8dbc !important;box-shadow:none}.form-control::-moz-placeholder{color:#bbb;opacity:1}.form-control:-ms-input-placeholder{color:#bbb}.form-control::-webkit-input-placeholder{color:#bbb}.form-control:not(select){-webkit-appearance:none;-moz-appearance:none;appearance:none}.form-group.has-success label{color:#00a65a}.form-group.has-success .form-control{border-color:#00a65a !important;box-shadow:none}.form-group.has-warning label{color:#f39c12}.form-group.has-warning .form-control{border-color:#f39c12 !important;box-shadow:none}.form-group.has-error label{color:#dd4b39}.form-group.has-error .form-control{border-color:#dd4b39 !important;box-shadow:none}.input-group .input-group-addon{border-radius:0;border-color:#d2d6de;background-color:#fff}.btn-group-vertical .btn.btn-flat:first-of-type,.btn-group-vertical .btn.btn-flat:last-of-type{border-radius:0}.icheck>label{padding-left:0}.progress,.progress>.progress-bar{-webkit-box-shadow:none;box-shadow:none}.progress,.progress>.progress-bar,.progress .progress-bar,.progress>.progress-bar .progress-bar{border-radius:1px}.progress.sm,.progress-sm{height:10px}.progress.sm,.progress-sm,.progress.sm .progress-bar,.progress-sm .progress-bar{border-radius:1px}.progress.xs,.progress-xs{height:7px}.progress.xs,.progress-xs,.progress.xs .progress-bar,.progress-xs .progress-bar{border-radius:1px}.progress.xxs,.progress-xxs{height:3px}.progress.xxs,.progress-xxs,.progress.xxs .progress-bar,.progress-xxs .progress-bar{border-radius:1px}.progress.vertical{position:relative;width:30px;height:200px;display:inline-block;margin-right:10px}.progress.vertical>.progress-bar{width:100%!important;position:absolute;bottom:0}.progress.vertical.sm,.progress.vertical.progress-sm{width:20px}.progress.vertical.xs,.progress.vertical.progress-xs{width:10px}.progress.vertical.xxs,.progress.vertical.progress-xxs{width:3px}.progress-group .progress-text{font-weight:600}.progress-group .progress-number{float:right}.table tr>td .progress{margin:0}.progress-bar-light-blue,.progress-bar-primary{background-color:#3c8dbc}.progress-striped .progress-bar-light-blue,.progress-striped .progress-bar-primary{background-image:-webkit-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:-o-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent)}.progress-bar-green,.progress-bar-success{background-color:#00a65a}.progress-striped .progress-bar-green,.progress-striped .progress-bar-success{background-image:-webkit-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:-o-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent)}.progress-bar-aqua,.progress-bar-info{background-color:#00c0ef}.progress-striped .progress-bar-aqua,.progress-striped .progress-bar-info{background-image:-webkit-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:-o-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent)}.progress-bar-yellow,.progress-bar-warning{background-color:#f39c12}.progress-striped .progress-bar-yellow,.progress-striped .progress-bar-warning{background-image:-webkit-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:-o-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent)}.progress-bar-red,.progress-bar-danger{background-color:#dd4b39}.progress-striped .progress-bar-red,.progress-striped .progress-bar-danger{background-image:-webkit-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:-o-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent)}.small-box{border-radius:2px;position:relative;display:block;margin-bottom:20px;box-shadow:0 1px 1px rgba(0,0,0,0.1)}.small-box>.inner{padding:10px}.small-box>.small-box-footer{position:relative;text-align:center;padding:3px 0;color:#fff;color:rgba(255,255,255,0.8);display:block;z-index:10;background:rgba(0,0,0,0.1);text-decoration:none}.small-box>.small-box-footer:hover{color:#fff;background:rgba(0,0,0,0.15)}.small-box h3{font-size:38px;font-weight:bold;margin:0 0 10px 0;white-space:nowrap;padding:0}.small-box p{font-size:15px}.small-box p>small{display:block;color:#f9f9f9;font-size:13px;margin-top:5px}.small-box h3,.small-box p{z-index:5px}.small-box .icon{-webkit-transition:all .3s linear;-o-transition:all .3s linear;transition:all .3s linear;position:absolute;top:-10px;right:10px;z-index:0;font-size:90px;color:rgba(0,0,0,0.15)}.small-box:hover{text-decoration:none;color:#f9f9f9}.small-box:hover .icon{font-size:95px}@media (max-width:767px){.small-box{text-align:center}.small-box .icon{display:none}.small-box p{font-size:12px}}.box{position:relative;border-radius:3px;background:#ffffff;border-top:3px solid #d2d6de;margin-bottom:20px;width:100%;box-shadow:0 1px 1px rgba(0,0,0,0.1)}.box.box-primary{border-top-color:#3c8dbc}.box.box-info{border-top-color:#00c0ef}.box.box-danger{border-top-color:#dd4b39}.box.box-warning{border-top-color:#f39c12}.box.box-success{border-top-color:#00a65a}.box.box-default{border-top-color:#d2d6de}.box.collapsed-box .box-body,.box.collapsed-box .box-footer{display:none}.box .nav-stacked>li{border-bottom:1px solid #f4f4f4;margin:0}.box .nav-stacked>li:last-of-type{border-bottom:none}.box.height-control .box-body{max-height:300px;overflow:auto}.box .border-right{border-right:1px solid #f4f4f4}.box .border-left{border-left:1px solid #f4f4f4}.box.box-solid{border-top:0px}.box.box-solid>.box-header .btn.btn-default{background:transparent}.box.box-solid>.box-header .btn:hover,.box.box-solid>.box-header a:hover{background:rgba(0,0,0,0.1) !important}.box.box-solid.box-default{border:1px solid #d2d6de}.box.box-solid.box-default>.box-header{color:#444;background:#d2d6de;background-color:#d2d6de}.box.box-solid.box-default>.box-header a,.box.box-solid.box-default>.box-header .btn{color:#444}.box.box-solid.box-primary{border:1px solid #3c8dbc}.box.box-solid.box-primary>.box-header{color:#fff;background:#3c8dbc;background-color:#3c8dbc}.box.box-solid.box-primary>.box-header a,.box.box-solid.box-primary>.box-header .btn{color:#fff}.box.box-solid.box-info{border:1px solid #00c0ef}.box.box-solid.box-info>.box-header{color:#fff;background:#00c0ef;background-color:#00c0ef}.box.box-solid.box-info>.box-header a,.box.box-solid.box-info>.box-header .btn{color:#fff}.box.box-solid.box-danger{border:1px solid #dd4b39}.box.box-solid.box-danger>.box-header{color:#fff;background:#dd4b39;background-color:#dd4b39}.box.box-solid.box-danger>.box-header a,.box.box-solid.box-danger>.box-header .btn{color:#fff}.box.box-solid.box-warning{border:1px solid #f39c12}.box.box-solid.box-warning>.box-header{color:#fff;background:#f39c12;background-color:#f39c12}.box.box-solid.box-warning>.box-header a,.box.box-solid.box-warning>.box-header .btn{color:#fff}.box.box-solid.box-success{border:1px solid #00a65a}.box.box-solid.box-success>.box-header{color:#fff;background:#00a65a;background-color:#00a65a}.box.box-solid.box-success>.box-header a,.box.box-solid.box-success>.box-header .btn{color:#fff}.box.box-solid>.box-header>.box-tools .btn{border:0;box-shadow:none}.box.box-solid[class*='bg']>.box-header{color:#fff}.box .box-group>.box{margin-bottom:5px}.box .knob-label{text-align:center;color:#333;font-weight:100;font-size:12px;margin-bottom:0.3em}.box>.overlay,.box>.loading-img{position:absolute;top:0;left:0;width:100%;height:100%}.box .overlay{z-index:1010;background:rgba(255,255,255,0.7);border-radius:3px}.box .overlay>.fa{position:absolute;top:50%;left:50%;margin-left:-15px;margin-top:-15px;color:#000;font-size:30px}.box .overlay.dark{background:rgba(0,0,0,0.5)}.box-header{color:#444;display:block;padding:10px;position:relative}.box-header:before,.box-header:after{content:" ";display:table}.box-header:after{clear:both}.box-header.with-border{border-bottom:1px solid #f4f4f4}.collapsed-box .box-header.with-border{border-bottom:none}.box-header>.fa,.box-header>.glyphicon,.box-header>.ion,.box-header .box-title{display:inline-block;font-size:18px;margin:0;line-height:1}.box-header>.fa,.box-header>.glyphicon,.box-header>.ion{margin-right:5px}.box-header>.box-tools{position:absolute;right:10px;top:5px}.box-header>.box-tools [data-toggle="tooltip"]{position:relative}.box-header>.box-tools.pull-right .dropdown-menu{right:0;left:auto}.btn-box-tool{padding:5px;font-size:12px;background:transparent;box-shadow:none!important;color:#97a0b3}.open .btn-box-tool,.btn-box-tool:hover{color:#606c84}.btn-box-tool:active{outline:none!important}.box-body{border-top-left-radius:0;border-top-right-radius:0;border-bottom-right-radius:3px;border-bottom-left-radius:3px;padding:10px}.no-header .box-body{border-top-right-radius:3px;border-top-left-radius:3px}.box-body>.table{margin-bottom:0}.box-body>.chart{position:relative;overflow:hidden;width:100%}.box-body>.chart svg,.box-body>.chart canvas{width:100%!important}.box-body .fc{margin-top:5px}.box-body .full-width-chart{margin:-19px}.box-body.no-padding .full-width-chart{margin:-9px}.box-body .box-pane{border-top-left-radius:0;border-top-right-radius:0;border-bottom-right-radius:0;border-bottom-left-radius:3px}.box-body .box-pane-right{border-top-left-radius:0;border-top-right-radius:0;border-bottom-right-radius:3px;border-bottom-left-radius:0}.box-footer{border-top-left-radius:0;border-top-right-radius:0;border-bottom-right-radius:3px;border-bottom-left-radius:3px;border-top:1px solid #f4f4f4;padding:10px;background-color:#fff}.chart-legend{margin:10px 0}@media (max-width:991px){.chart-legend>li{float:left;margin-right:10px}}.todo-list{margin:0;padding:0px 0px;list-style:none;overflow:auto}.todo-list>li{border-radius:2px;padding:10px;background:#f4f4f4;margin-bottom:2px;border-left:2px solid #e6e7e8;color:#444}.todo-list>li:last-of-type{margin-bottom:0}.todo-list>li.danger{border-left-color:#dd4b39}.todo-list>li.warning{border-left-color:#f39c12}.todo-list>li.info{border-left-color:#00c0ef}.todo-list>li.success{border-left-color:#00a65a}.todo-list>li.primary{border-left-color:#3c8dbc}.todo-list>li>input[type='checkbox']{margin:0 10px 0 5px}.todo-list>li .text{display:inline-block;margin-left:5px;font-weight:600}.todo-list>li .label{margin-left:10px;font-size:9px}.todo-list>li .tools{display:none;float:right;color:#dd4b39}.todo-list>li .tools>.fa,.todo-list>li .tools>.glyphicon,.todo-list>li .tools>.ion{margin-right:5px;cursor:pointer}.todo-list>li:hover .tools{display:inline-block}.todo-list>li.done{color:#999}.todo-list>li.done .text{text-decoration:line-through;font-weight:500}.todo-list>li.done .label{background:#d2d6de !important}.todo-list .handle{display:inline-block;cursor:move;margin:0 5px}.chat{padding:5px 20px 5px 10px}.chat .item{margin-bottom:10px}.chat .item:before,.chat .item:after{content:" ";display:table}.chat .item:after{clear:both}.chat .item>img{width:40px;height:40px;border:2px solid transparent;border-radius:50% !important}.chat .item>img.online{border:2px solid #00a65a}.chat .item>img.offline{border:2px solid #dd4b39}.chat .item>.message{margin-left:55px;margin-top:-40px}.chat .item>.message>.name{display:block;font-weight:600}.chat .item>.attachment{border-radius:3px;background:#f4f4f4;margin-left:65px;margin-right:15px;padding:10px}.chat .item>.attachment>h4{margin:0 0 5px 0;font-weight:600;font-size:14px}.chat .item>.attachment>p,.chat .item>.attachment>.filename{font-weight:600;font-size:13px;font-style:italic;margin:0}.chat .item>.attachment:before,.chat .item>.attachment:after{content:" ";display:table}.chat .item>.attachment:after{clear:both}.box-input{max-width:200px}.info-box{display:block;min-height:90px;background:#fff;width:100%;box-shadow:0 1px 1px rgba(0,0,0,0.1);border-radius:2px;margin-bottom:15px}.info-box small{font-size:14px}.info-box .progress{background:rgba(0,0,0,0.2);margin:5px -10px 5px -10px;height:2px}.info-box .progress,.info-box .progress .progress-bar{border-radius:0}.info-box .progress .progress-bar{background:#fff}.info-box-icon{border-top-left-radius:2px;border-top-right-radius:0;border-bottom-right-radius:0;border-bottom-left-radius:2px;display:block;float:left;height:90px;width:90px;text-align:center;font-size:45px;line-height:90px;background:rgba(0,0,0,0.2)}.info-box-content{padding:5px 10px;margin-left:90px}.info-box-number{display:block;font-weight:bold;font-size:18px}.progress-description,.info-box-text{display:block;font-size:14px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.info-box-text{text-transform:uppercase}.info-box-more{display:block}.progress-description{margin:0}.timeline{position:relative;margin:0 0 30px 0;padding:0;list-style:none}.timeline:before{content:'';position:absolute;top:0px;bottom:0;width:4px;background:#ddd;left:31px;margin:0;border-radius:2px}.timeline>li{position:relative;margin-right:10px;margin-bottom:15px}.timeline>li:before,.timeline>li:after{content:" ";display:table}.timeline>li:after{clear:both}.timeline>li>.timeline-item{-webkit-box-shadow:0 1px 1px rgba(0,0,0,0.1);box-shadow:0 1px 1px rgba(0,0,0,0.1);border-radius:3px;margin-top:0px;background:#fff;color:#444;margin-left:60px;margin-right:15px;padding:0;position:relative}.timeline>li>.timeline-item>.time{color:#999;float:right;padding:10px;font-size:12px}.timeline>li>.timeline-item>.timeline-header{margin:0;color:#555;border-bottom:1px solid #f4f4f4;padding:10px;font-size:16px;line-height:1.1}.timeline>li>.timeline-item>.timeline-header>a{font-weight:600}.timeline>li>.timeline-item>.timeline-body,.timeline>li>.timeline-item>.timeline-footer{padding:10px}.timeline>li.time-label>span{font-weight:600;padding:5px;display:inline-block;background-color:#fff;border-radius:4px}.timeline>li>.fa,.timeline>li>.glyphicon,.timeline>li>.ion{width:30px;height:30px;font-size:15px;line-height:30px;position:absolute;color:#666;background:#d2d6de;border-radius:50%;text-align:center;left:18px;top:0}.btn{border-radius:3px;-webkit-box-shadow:none;box-shadow:none;border:1px solid transparent}.btn.uppercase{text-transform:uppercase}.btn.btn-flat{border-radius:0;-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none;border-width:1px}.btn:active{-webkit-box-shadow:inset 0 3px 5px rgba(0,0,0,0.125);-moz-box-shadow:inset 0 3px 5px rgba(0,0,0,0.125);box-shadow:inset 0 3px 5px rgba(0,0,0,0.125)}.btn:focus{outline:none}.btn.btn-file{position:relative;overflow:hidden}.btn.btn-file>input[type='file']{position:absolute;top:0;right:0;min-width:100%;min-height:100%;font-size:100px;text-align:right;opacity:0;filter:alpha(opacity=0);outline:none;background:white;cursor:inherit;display:block}.btn-default{background-color:#f4f4f4;color:#444;border-color:#ddd}.btn-default:hover,.btn-default:active,.btn-default.hover{background-color:#e7e7e7 !important}.btn-primary{background-color:#3c8dbc;border-color:#367fa9}.btn-primary:hover,.btn-primary:active,.btn-primary.hover{background-color:#367fa9}.btn-success{background-color:#00a65a;border-color:#008d4c}.btn-success:hover,.btn-success:active,.btn-success.hover{background-color:#008d4c}.btn-info{background-color:#00c0ef;border-color:#00acd6}.btn-info:hover,.btn-info:active,.btn-info.hover{background-color:#00acd6}.btn-danger{background-color:#dd4b39;border-color:#d73925}.btn-danger:hover,.btn-danger:active,.btn-danger.hover{background-color:#d73925}.btn-warning{background-color:#f39c12;border-color:#e08e0b}.btn-warning:hover,.btn-warning:active,.btn-warning.hover{background-color:#e08e0b}.btn-outline{border:1px solid #fff;background:transparent;color:#fff}.btn-outline:hover,.btn-outline:focus,.btn-outline:active{color:rgba(255,255,255,0.7);border-color:rgba(255,255,255,0.7)}.btn-link{-webkit-box-shadow:none;box-shadow:none}.btn[class*='bg-']:hover{-webkit-box-shadow:inset 0 0 100px rgba(0,0,0,0.2);box-shadow:inset 0 0 100px rgba(0,0,0,0.2)}.btn-app{border-radius:3px;position:relative;padding:15px 5px;margin:0 0 10px 10px;min-width:80px;height:60px;text-align:center;color:#666;border:1px solid #ddd;background-color:#f4f4f4;font-size:12px}.btn-app>.fa,.btn-app>.glyphicon,.btn-app>.ion{font-size:20px;display:block}.btn-app:hover{background:#f4f4f4;color:#444;border-color:#aaa}.btn-app:active,.btn-app:focus{-webkit-box-shadow:inset 0 3px 5px rgba(0,0,0,0.125);-moz-box-shadow:inset 0 3px 5px rgba(0,0,0,0.125);box-shadow:inset 0 3px 5px rgba(0,0,0,0.125)}.btn-app>.badge{position:absolute;top:-3px;right:-10px;font-size:10px;font-weight:400}.callout{border-radius:3px;margin:0 0 20px 0;padding:15px 30px 15px 15px;border-left:5px solid #eee}.callout a{color:#fff;text-decoration:underline}.callout a:hover{color:#eee}.callout h4{margin-top:0;font-weight:600}.callout p:last-child{margin-bottom:0}.callout code,.callout .highlight{background-color:#fff}.callout.callout-danger{border-color:#c23321}.callout.callout-warning{border-color:#c87f0a}.callout.callout-info{border-color:#0097bc}.callout.callout-success{border-color:#00733e}.alert{border-radius:3px}.alert h4{font-weight:600}.alert .icon{margin-right:10px}.alert .close{color:#000;opacity:.2;filter:alpha(opacity=20)}.alert .close:hover{opacity:.5;filter:alpha(opacity=50)}.alert a{color:#fff;text-decoration:underline}.alert-success{border-color:#008d4c}.alert-danger,.alert-error{border-color:#d73925}.alert-warning{border-color:#e08e0b}.alert-info{border-color:#00acd6}.nav-pills>li>a{border-radius:0;border-top:3px solid transparent;color:#444}.nav-pills>li>a>.fa,.nav-pills>li>a>.glyphicon,.nav-pills>li>a>.ion{margin-right:5px}.nav-pills>li.active>a,.nav-pills>li.active>a:hover{background-color:#f4f4f4;border-top-color:#3c8dbc;color:#444}.nav-pills>li.active>a{font-weight:600}.nav-pills>li>a:hover{background-color:#f6f6f6}.nav-stacked>li>a{border-radius:0;border-top:0;border-left:3px solid transparent;color:#444}.nav-stacked>li.active>a,.nav-stacked>li.active>a:hover{background-color:#f4f4f4;border-top:0;border-left-color:#3c8dbc;color:#444}.nav-stacked>li.header{border-bottom:1px solid #ddd;color:#777;margin-bottom:10px;padding:5px 10px;text-transform:uppercase}.nav-tabs-custom{margin-bottom:20px;background:#fff;box-shadow:0 1px 1px rgba(0,0,0,0.1);border-radius:3px}.nav-tabs-custom>.nav-tabs{margin:0;border-bottom-color:#f4f4f4;border-top-right-radius:3px;border-top-left-radius:3px}.nav-tabs-custom>.nav-tabs>li{border-top:3px solid transparent;margin-bottom:-2px;margin-right:5px}.nav-tabs-custom>.nav-tabs>li>a{border-radius:0 !important}.nav-tabs-custom>.nav-tabs>li>a,.nav-tabs-custom>.nav-tabs>li>a:hover{background:transparent;margin:0}.nav-tabs-custom>.nav-tabs>li:not(.active)>a:hover,.nav-tabs-custom>.nav-tabs>li:not(.active)>a:focus,.nav-tabs-custom>.nav-tabs>li:not(.active)>a:active{border-color:transparent}.nav-tabs-custom>.nav-tabs>li.active{border-top-color:#3c8dbc}.nav-tabs-custom>.nav-tabs>li.active>a,.nav-tabs-custom>.nav-tabs>li.active:hover>a{background-color:#fff}.nav-tabs-custom>.nav-tabs>li.active>a{border-top:0;border-left-color:#f4f4f4;border-right-color:#f4f4f4}.nav-tabs-custom>.nav-tabs>li:first-of-type{margin-left:0}.nav-tabs-custom>.nav-tabs>li:first-of-type.active>a{border-left-width:0}.nav-tabs-custom>.nav-tabs.pull-right{float:none!important}.nav-tabs-custom>.nav-tabs.pull-right>li{float:right}.nav-tabs-custom>.nav-tabs.pull-right>li:first-of-type{margin-right:0}.nav-tabs-custom>.nav-tabs.pull-right>li:first-of-type.active>a{border-left-width:1px;border-right-width:0}.nav-tabs-custom>.nav-tabs>li.header{line-height:35px;padding:0 10px;font-size:20px;color:#444}.nav-tabs-custom>.nav-tabs>li.header>.fa,.nav-tabs-custom>.nav-tabs>li.header>.glyphicon,.nav-tabs-custom>.nav-tabs>li.header>.ion{margin-right:5px}.nav-tabs-custom>.tab-content{background:#fff;padding:10px;border-bottom-right-radius:3px;border-bottom-left-radius:3px}.tabs-bottom.nav-3 li a{width:3333.33333333% !important}.tabs-bottom li a{border:0}.pagination>li>a{background:#fafafa;color:#666}.pagination>li:first-of-type a,.pagination>li:last-of-type a{border-radius:0}.products-list{list-style:none;margin:0;padding:0}.products-list>.item{border-radius:3px;-webkit-box-shadow:0 1px 1px rgba(0,0,0,0.1);box-shadow:0 1px 1px rgba(0,0,0,0.1);padding:10px 0;background:#fff}.products-list>.item:before,.products-list>.item:after{content:" ";display:table}.products-list>.item:after{clear:both}.products-list .product-img{float:left}.products-list .product-img img{width:50px;height:50px}.products-list .product-info{margin-left:60px}.products-list .product-title{font-weight:600}.products-list .product-description{display:block;color:#999;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.product-list-in-box>.item{-webkit-box-shadow:none;box-shadow:none;border-radius:0;border-bottom:1px solid #f4f4f4}.product-list-in-box>.item:last-of-type{border-bottom-width:0}.table>thead>tr>th,.table>tbody>tr>th,.table>tfoot>tr>th,.table>thead>tr>td,.table>tbody>tr>td,.table>tfoot>tr>td{border-top:1px solid #f4f4f4}.table>thead>tr>th{border-bottom:2px solid #f4f4f4}.table tr td .progress{margin-top:5px}.table-bordered{border:1px solid #f4f4f4}.table-bordered>thead>tr>th,.table-bordered>tbody>tr>th,.table-bordered>tfoot>tr>th,.table-bordered>thead>tr>td,.table-bordered>tbody>tr>td,.table-bordered>tfoot>tr>td{border:1px solid #f4f4f4}.table-bordered>thead>tr>th,.table-bordered>thead>tr>td{border-bottom-width:2px}.table.no-border,.table.no-border td,.table.no-border th{border:0}table.text-center,table.text-center td,table.text-center th{text-align:center}.table.align th{text-align:left}.table.align td{text-align:right}.label-default{background-color:#d2d6de;color:#444}.direct-chat .box-body{border-bottom-right-radius:0;border-bottom-left-radius:0;position:relative;overflow-x:hidden;padding:0}.direct-chat.chat-pane-open .direct-chat-contacts{-webkit-transform:translate(0, 0);-ms-transform:translate(0, 0);-o-transform:translate(0, 0);transform:translate(0, 0)}.direct-chat-messages{-webkit-transform:translate(0, 0);-ms-transform:translate(0, 0);-o-transform:translate(0, 0);transform:translate(0, 0);padding:10px;height:250px;overflow:auto}.direct-chat-msg,.direct-chat-text{display:block}.direct-chat-msg{margin-bottom:10px}.direct-chat-msg:before,.direct-chat-msg:after{content:" ";display:table}.direct-chat-msg:after{clear:both}.direct-chat-messages,.direct-chat-contacts{-webkit-transition:-webkit-transform .5s ease-in-out;-moz-transition:-moz-transform .5s ease-in-out;-o-transition:-o-transform .5s ease-in-out;transition:transform .5s ease-in-out}.direct-chat-text{border-radius:5px;position:relative;padding:5px 10px;background:#d2d6de;border:1px solid #d2d6de;margin:5px 0 0 50px;color:#444}.direct-chat-text:after,.direct-chat-text:before{position:absolute;right:100%;top:15px;border:solid transparent;border-right-color:#d2d6de;content:' ';height:0;width:0;pointer-events:none}.direct-chat-text:after{border-width:5px;margin-top:-5px}.direct-chat-text:before{border-width:6px;margin-top:-6px}.right .direct-chat-text{margin-right:50px;margin-left:0}.right .direct-chat-text:after,.right .direct-chat-text:before{right:auto;left:100%;border-right-color:transparent;border-left-color:#d2d6de}.direct-chat-img{border-radius:50%;float:left;width:40px;height:40px}.right .direct-chat-img{float:right}.direct-chat-info{display:block;margin-bottom:2px;font-size:12px}.direct-chat-name{font-weight:600}.direct-chat-timestamp{color:#999}.direct-chat-contacts-open .direct-chat-contacts{-webkit-transform:translate(0, 0);-ms-transform:translate(0, 0);-o-transform:translate(0, 0);transform:translate(0, 0)}.direct-chat-contacts{-webkit-transform:translate(100%, 0);-ms-transform:translate(100%, 0);-o-transform:translate(100%, 0);transform:translate(100%, 0);position:absolute;top:0;bottom:0;height:250px;width:100%;background:#222d32;color:#fff;overflow:auto}.contacts-list>li{border-bottom:1px solid rgba(0,0,0,0.2);padding:10px;margin:0}.contacts-list>li:before,.contacts-list>li:after{content:" ";display:table}.contacts-list>li:after{clear:both}.contacts-list>li:last-of-type{border-bottom:none}.contacts-list-img{border-radius:50%;width:40px;float:left}.contacts-list-info{margin-left:45px;color:#fff}.contacts-list-name,.contacts-list-status{display:block}.contacts-list-name{font-weight:600}.contacts-list-status{font-size:12px}.contacts-list-date{color:#aaa;font-weight:normal}.contacts-list-msg{color:#999}.direct-chat-danger .right>.direct-chat-text{background:#dd4b39;border-color:#dd4b39;color:#fff}.direct-chat-danger .right>.direct-chat-text:after,.direct-chat-danger .right>.direct-chat-text:before{border-left-color:#dd4b39}.direct-chat-primary .right>.direct-chat-text{background:#3c8dbc;border-color:#3c8dbc;color:#fff}.direct-chat-primary .right>.direct-chat-text:after,.direct-chat-primary .right>.direct-chat-text:before{border-left-color:#3c8dbc}.direct-chat-warning .right>.direct-chat-text{background:#f39c12;border-color:#f39c12;color:#fff}.direct-chat-warning .right>.direct-chat-text:after,.direct-chat-warning .right>.direct-chat-text:before{border-left-color:#f39c12}.direct-chat-info .right>.direct-chat-text{background:#00c0ef;border-color:#00c0ef;color:#fff}.direct-chat-info .right>.direct-chat-text:after,.direct-chat-info .right>.direct-chat-text:before{border-left-color:#00c0ef}.direct-chat-success .right>.direct-chat-text{background:#00a65a;border-color:#00a65a;color:#fff}.direct-chat-success .right>.direct-chat-text:after,.direct-chat-success .right>.direct-chat-text:before{border-left-color:#00a65a}.users-list>li{width:25%;float:left;padding:10px;text-align:center}.users-list>li>img{border-radius:50%;max-width:100%;height:auto}.users-list-name,.users-list-date{display:block}.users-list-name{font-weight:600;color:#444;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.users-list-name:hover{color:#999}.users-list-date{color:#999;font-size:12px}.carousel-control{background-image:none!important}.carousel-control>.fa{font-size:40px;position:absolute;top:50%;z-index:5;display:inline-block;margin-top:-20px}.modal{background:rgba(0,0,0,0.3)}.modal-content{border-radius:0;-webkit-box-shadow:0 2px 3px rgba(0,0,0,0.125) !important;box-shadow:0 2px 3px rgba(0,0,0,0.125) !important;border:0}@media (min-width:768px){.modal-content{-webkit-box-shadow:0 2px 3px rgba(0,0,0,0.125) !important;box-shadow:0 2px 3px rgba(0,0,0,0.125) !important}}.modal-header{border-bottom-color:#f4f4f4}.modal-footer{border-top-color:#f4f4f4}.modal-primary .modal-header,.modal-primary .modal-footer{border-color:#307095}.modal-warning .modal-header,.modal-warning .modal-footer{border-color:#c87f0a}.modal-info .modal-header,.modal-info .modal-footer{border-color:#0097bc}.modal-success .modal-header,.modal-success .modal-footer{border-color:#00733e}.modal-danger .modal-header,.modal-danger .modal-footer{border-color:#c23321}.mailbox-messages>.table{margin:0}.mailbox-controls{padding:5px}.mailbox-controls.with-border{border-bottom:1px solid #f4f4f4}.mailbox-read-info{border-bottom:1px solid #f4f4f4;padding:10px}.mailbox-read-info h3{font-size:20px;margin:0}.mailbox-read-info h5{margin:0;padding:5px 0 0 0}.mailbox-read-time{color:#999;font-size:13px}.mailbox-read-message{padding:10px}.mailbox-attachments li{float:left;width:200px;border:1px solid #eee;margin-bottom:10px;margin-right:10px}.mailbox-attachment-name{font-weight:bold;color:#666}.mailbox-attachment-icon,.mailbox-attachment-info,.mailbox-attachment-size{display:block}.mailbox-attachment-info{padding:10px;background:#f4f4f4}.mailbox-attachment-size{color:#999;font-size:12px}.mailbox-attachment-icon{text-align:center;font-size:65px;color:#666;padding:20px 10px}.mailbox-attachment-icon.has-img{padding:0}.mailbox-attachment-icon.has-img>img{max-width:100%;height:auto}.mailbox .table-mailbox{border-left:1px solid #f4f4f4;border-right:1px solid #f4f4f4;border-bottom:1px solid #f4f4f4}.mailbox .table-mailbox tr.unread>td{background-color:rgba(0,0,0,0.05);color:#000;font-weight:600}.mailbox .table-mailbox tr>td>.fa.fa-star,.mailbox .table-mailbox tr>td>.fa.fa-star-o,.mailbox .table-mailbox tr>td>.glyphicon.glyphicon-star,.mailbox .table-mailbox tr>td>.glyphicon.glyphicon-star-empty{color:#f39c12;cursor:pointer}.mailbox .table-mailbox tr>td.small-col{width:30px}.mailbox .table-mailbox tr>td.name{width:150px;font-weight:600}.mailbox .table-mailbox tr>td.time{text-align:right;width:100px}.mailbox .table-mailbox tr>td{white-space:nowrap}.mailbox .table-mailbox tr>td>a{color:#444}@media (max-width:991px){.mailbox .nav-stacked>li:not(.header){float:left;width:50%}.mailbox .nav-stacked>li:not(.header).header{border:0!important}.mailbox .search-form{margin-top:10px}}.lockscreen{background:#d2d6de}.lockscreen-logo{font-size:35px;text-align:center;margin-bottom:25px;font-weight:300}.lockscreen-logo a{color:#444}.lockscreen-wrapper{max-width:400px;margin:0 auto;margin-top:10%}.lockscreen .lockscreen-name{text-align:center;font-weight:600}.lockscreen-item{border-radius:4px;padding:0;background:#fff;position:relative;margin:10px auto 30px auto;width:290px}.lockscreen-image{border-radius:50%;position:absolute;left:-10px;top:-25px;background:#fff;padding:5px;z-index:10}.lockscreen-image>img{border-radius:50%;width:70px;height:70px}.lockscreen-credentials{margin-left:70px}.lockscreen-credentials .form-control{border:0 !important}.lockscreen-credentials .btn{background-color:#fff;border:0;padding:0 10px}.lockscreen-footer{margin-top:10px}.login-logo,.register-logo{font-size:35px;text-align:center;margin-bottom:25px;font-weight:300}.login-logo a,.register-logo a{color:#444}.login-page,.register-page{background:#d2d6de}.login-box,.register-box{width:360px;margin:7% auto}@media (max-width:768px){.login-box,.register-box{width:90%;margin-top:20px}}.login-box-body,.register-box-body{background:#fff;padding:20px;color:#444;border-top:0;color:#666}.login-box-body .form-control-feedback,.register-box-body .form-control-feedback{color:#777}.login-box-msg,.register-box-msg{margin:0;text-align:center;padding:0 20px 20px 20px}.social-auth-links{margin:10px 0}.error-page{width:600px;margin:20px auto 0 auto}@media (max-width:991px){.error-page{width:100%}}.error-page>.headline{float:left;font-size:100px;font-weight:300}@media (max-width:991px){.error-page>.headline{float:none;text-align:center}}.error-page>.error-content{margin-left:190px;display:block}@media (max-width:991px){.error-page>.error-content{margin-left:0}}.error-page>.error-content>h3{font-weight:300;font-size:25px}@media (max-width:991px){.error-page>.error-content>h3{text-align:center}}.invoice{position:relative;background:#fff;border:1px solid #f4f4f4;padding:20px;margin:10px 25px}.invoice-title{margin-top:0}.btn-social{position:relative;padding-left:44px !important;text-align:left;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.btn-social :first-child{position:absolute;left:0;top:0;bottom:0;width:32px !important;line-height:34px !important;font-size:1.6em!important;text-align:center;border-right:1px solid rgba(0,0,0,0.2)}.btn-social.btn-lg{padding-left:61px !important}.btn-social.btn-lg :first-child{line-height:45px;width:45px;font-size:1.8em}.btn-social.btn-sm{padding-left:38px !important}.btn-social.btn-sm :first-child{line-height:28px;width:28px;font-size:1.4em}.btn-social.btn-xs{padding-left:30px !important}.btn-social.btn-xs :first-child{line-height:20px;width:20px;font-size:1.2em}.btn-social-icon{position:relative;padding-left:44px !important;text-align:left;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;height:34px;width:34px;padding:0}.btn-social-icon :first-child{position:absolute;left:0;top:0;bottom:0;width:32px !important;line-height:34px !important;font-size:1.6em!important;text-align:center;border-right:1px solid rgba(0,0,0,0.2)}.btn-social-icon.btn-lg{padding-left:61px !important}.btn-social-icon.btn-lg :first-child{line-height:45px;width:45px;font-size:1.8em}.btn-social-icon.btn-sm{padding-left:38px !important}.btn-social-icon.btn-sm :first-child{line-height:28px;width:28px;font-size:1.4em}.btn-social-icon.btn-xs{padding-left:30px !important}.btn-social-icon.btn-xs :first-child{line-height:20px;width:20px;font-size:1.2em}.btn-social-icon :first-child{border:none;text-align:center;width:100%!important}.btn-social-icon.btn-lg{height:45px;width:45px;padding-left:0;padding-right:0}.btn-social-icon.btn-sm{height:30px;width:30px;padding-left:0;padding-right:0}.btn-social-icon.btn-xs{height:22px;width:22px;padding-left:0;padding-right:0}.btn-bitbucket{color:#fff;background-color:#205081;border-color:rgba(0,0,0,0.2)}.btn-bitbucket:hover,.btn-bitbucket:focus,.btn-bitbucket.focus,.btn-bitbucket:active,.btn-bitbucket.active,.open>.dropdown-toggle.btn-bitbucket{color:#fff;background-color:#163758;border-color:rgba(0,0,0,0.2)}.btn-bitbucket:active,.btn-bitbucket.active,.open>.dropdown-toggle.btn-bitbucket{background-image:none}.btn-bitbucket.disabled,.btn-bitbucket[disabled],fieldset[disabled] .btn-bitbucket,.btn-bitbucket.disabled:hover,.btn-bitbucket[disabled]:hover,fieldset[disabled] .btn-bitbucket:hover,.btn-bitbucket.disabled:focus,.btn-bitbucket[disabled]:focus,fieldset[disabled] .btn-bitbucket:focus,.btn-bitbucket.disabled.focus,.btn-bitbucket[disabled].focus,fieldset[disabled] .btn-bitbucket.focus,.btn-bitbucket.disabled:active,.btn-bitbucket[disabled]:active,fieldset[disabled] .btn-bitbucket:active,.btn-bitbucket.disabled.active,.btn-bitbucket[disabled].active,fieldset[disabled] .btn-bitbucket.active{background-color:#205081;border-color:rgba(0,0,0,0.2)}.btn-bitbucket .badge{color:#205081;background-color:#fff}.btn-dropbox{color:#fff;background-color:#1087dd;border-color:rgba(0,0,0,0.2)}.btn-dropbox:hover,.btn-dropbox:focus,.btn-dropbox.focus,.btn-dropbox:active,.btn-dropbox.active,.open>.dropdown-toggle.btn-dropbox{color:#fff;background-color:#0d6aad;border-color:rgba(0,0,0,0.2)}.btn-dropbox:active,.btn-dropbox.active,.open>.dropdown-toggle.btn-dropbox{background-image:none}.btn-dropbox.disabled,.btn-dropbox[disabled],fieldset[disabled] .btn-dropbox,.btn-dropbox.disabled:hover,.btn-dropbox[disabled]:hover,fieldset[disabled] .btn-dropbox:hover,.btn-dropbox.disabled:focus,.btn-dropbox[disabled]:focus,fieldset[disabled] .btn-dropbox:focus,.btn-dropbox.disabled.focus,.btn-dropbox[disabled].focus,fieldset[disabled] .btn-dropbox.focus,.btn-dropbox.disabled:active,.btn-dropbox[disabled]:active,fieldset[disabled] .btn-dropbox:active,.btn-dropbox.disabled.active,.btn-dropbox[disabled].active,fieldset[disabled] .btn-dropbox.active{background-color:#1087dd;border-color:rgba(0,0,0,0.2)}.btn-dropbox .badge{color:#1087dd;background-color:#fff}.btn-facebook{color:#fff;background-color:#3b5998;border-color:rgba(0,0,0,0.2)}.btn-facebook:hover,.btn-facebook:focus,.btn-facebook.focus,.btn-facebook:active,.btn-facebook.active,.open>.dropdown-toggle.btn-facebook{color:#fff;background-color:#2d4373;border-color:rgba(0,0,0,0.2)}.btn-facebook:active,.btn-facebook.active,.open>.dropdown-toggle.btn-facebook{background-image:none}.btn-facebook.disabled,.btn-facebook[disabled],fieldset[disabled] .btn-facebook,.btn-facebook.disabled:hover,.btn-facebook[disabled]:hover,fieldset[disabled] .btn-facebook:hover,.btn-facebook.disabled:focus,.btn-facebook[disabled]:focus,fieldset[disabled] .btn-facebook:focus,.btn-facebook.disabled.focus,.btn-facebook[disabled].focus,fieldset[disabled] .btn-facebook.focus,.btn-facebook.disabled:active,.btn-facebook[disabled]:active,fieldset[disabled] .btn-facebook:active,.btn-facebook.disabled.active,.btn-facebook[disabled].active,fieldset[disabled] .btn-facebook.active{background-color:#3b5998;border-color:rgba(0,0,0,0.2)}.btn-facebook .badge{color:#3b5998;background-color:#fff}.btn-flickr{color:#fff;background-color:#ff0084;border-color:rgba(0,0,0,0.2)}.btn-flickr:hover,.btn-flickr:focus,.btn-flickr.focus,.btn-flickr:active,.btn-flickr.active,.open>.dropdown-toggle.btn-flickr{color:#fff;background-color:#cc006a;border-color:rgba(0,0,0,0.2)}.btn-flickr:active,.btn-flickr.active,.open>.dropdown-toggle.btn-flickr{background-image:none}.btn-flickr.disabled,.btn-flickr[disabled],fieldset[disabled] .btn-flickr,.btn-flickr.disabled:hover,.btn-flickr[disabled]:hover,fieldset[disabled] .btn-flickr:hover,.btn-flickr.disabled:focus,.btn-flickr[disabled]:focus,fieldset[disabled] .btn-flickr:focus,.btn-flickr.disabled.focus,.btn-flickr[disabled].focus,fieldset[disabled] .btn-flickr.focus,.btn-flickr.disabled:active,.btn-flickr[disabled]:active,fieldset[disabled] .btn-flickr:active,.btn-flickr.disabled.active,.btn-flickr[disabled].active,fieldset[disabled] .btn-flickr.active{background-color:#ff0084;border-color:rgba(0,0,0,0.2)}.btn-flickr .badge{color:#ff0084;background-color:#fff}.btn-foursquare{color:#fff;background-color:#0072b1;border-color:rgba(0,0,0,0.2)}.btn-foursquare:hover,.btn-foursquare:focus,.btn-foursquare.focus,.btn-foursquare:active,.btn-foursquare.active,.open>.dropdown-toggle.btn-foursquare{color:#fff;background-color:#00517e;border-color:rgba(0,0,0,0.2)}.btn-foursquare:active,.btn-foursquare.active,.open>.dropdown-toggle.btn-foursquare{background-image:none}.btn-foursquare.disabled,.btn-foursquare[disabled],fieldset[disabled] .btn-foursquare,.btn-foursquare.disabled:hover,.btn-foursquare[disabled]:hover,fieldset[disabled] .btn-foursquare:hover,.btn-foursquare.disabled:focus,.btn-foursquare[disabled]:focus,fieldset[disabled] .btn-foursquare:focus,.btn-foursquare.disabled.focus,.btn-foursquare[disabled].focus,fieldset[disabled] .btn-foursquare.focus,.btn-foursquare.disabled:active,.btn-foursquare[disabled]:active,fieldset[disabled] .btn-foursquare:active,.btn-foursquare.disabled.active,.btn-foursquare[disabled].active,fieldset[disabled] .btn-foursquare.active{background-color:#0072b1;border-color:rgba(0,0,0,0.2)}.btn-foursquare .badge{color:#0072b1;background-color:#fff}.btn-github{color:#fff;background-color:#444;border-color:rgba(0,0,0,0.2)}.btn-github:hover,.btn-github:focus,.btn-github.focus,.btn-github:active,.btn-github.active,.open>.dropdown-toggle.btn-github{color:#fff;background-color:#2b2b2b;border-color:rgba(0,0,0,0.2)}.btn-github:active,.btn-github.active,.open>.dropdown-toggle.btn-github{background-image:none}.btn-github.disabled,.btn-github[disabled],fieldset[disabled] .btn-github,.btn-github.disabled:hover,.btn-github[disabled]:hover,fieldset[disabled] .btn-github:hover,.btn-github.disabled:focus,.btn-github[disabled]:focus,fieldset[disabled] .btn-github:focus,.btn-github.disabled.focus,.btn-github[disabled].focus,fieldset[disabled] .btn-github.focus,.btn-github.disabled:active,.btn-github[disabled]:active,fieldset[disabled] .btn-github:active,.btn-github.disabled.active,.btn-github[disabled].active,fieldset[disabled] .btn-github.active{background-color:#444;border-color:rgba(0,0,0,0.2)}.btn-github .badge{color:#444;background-color:#fff}.btn-google-plus{color:#fff;background-color:#dd4b39;border-color:rgba(0,0,0,0.2)}.btn-google-plus:hover,.btn-google-plus:focus,.btn-google-plus.focus,.btn-google-plus:active,.btn-google-plus.active,.open>.dropdown-toggle.btn-google-plus{color:#fff;background-color:#c23321;border-color:rgba(0,0,0,0.2)}.btn-google-plus:active,.btn-google-plus.active,.open>.dropdown-toggle.btn-google-plus{background-image:none}.btn-google-plus.disabled,.btn-google-plus[disabled],fieldset[disabled] .btn-google-plus,.btn-google-plus.disabled:hover,.btn-google-plus[disabled]:hover,fieldset[disabled] .btn-google-plus:hover,.btn-google-plus.disabled:focus,.btn-google-plus[disabled]:focus,fieldset[disabled] .btn-google-plus:focus,.btn-google-plus.disabled.focus,.btn-google-plus[disabled].focus,fieldset[disabled] .btn-google-plus.focus,.btn-google-plus.disabled:active,.btn-google-plus[disabled]:active,fieldset[disabled] .btn-google-plus:active,.btn-google-plus.disabled.active,.btn-google-plus[disabled].active,fieldset[disabled] .btn-google-plus.active{background-color:#dd4b39;border-color:rgba(0,0,0,0.2)}.btn-google-plus .badge{color:#dd4b39;background-color:#fff}.btn-instagram{color:#fff;background-color:#3f729b;border-color:rgba(0,0,0,0.2)}.btn-instagram:hover,.btn-instagram:focus,.btn-instagram.focus,.btn-instagram:active,.btn-instagram.active,.open>.dropdown-toggle.btn-instagram{color:#fff;background-color:#305777;border-color:rgba(0,0,0,0.2)}.btn-instagram:active,.btn-instagram.active,.open>.dropdown-toggle.btn-instagram{background-image:none}.btn-instagram.disabled,.btn-instagram[disabled],fieldset[disabled] .btn-instagram,.btn-instagram.disabled:hover,.btn-instagram[disabled]:hover,fieldset[disabled] .btn-instagram:hover,.btn-instagram.disabled:focus,.btn-instagram[disabled]:focus,fieldset[disabled] .btn-instagram:focus,.btn-instagram.disabled.focus,.btn-instagram[disabled].focus,fieldset[disabled] .btn-instagram.focus,.btn-instagram.disabled:active,.btn-instagram[disabled]:active,fieldset[disabled] .btn-instagram:active,.btn-instagram.disabled.active,.btn-instagram[disabled].active,fieldset[disabled] .btn-instagram.active{background-color:#3f729b;border-color:rgba(0,0,0,0.2)}.btn-instagram .badge{color:#3f729b;background-color:#fff}.btn-linkedin{color:#fff;background-color:#007bb6;border-color:rgba(0,0,0,0.2)}.btn-linkedin:hover,.btn-linkedin:focus,.btn-linkedin.focus,.btn-linkedin:active,.btn-linkedin.active,.open>.dropdown-toggle.btn-linkedin{color:#fff;background-color:#005983;border-color:rgba(0,0,0,0.2)}.btn-linkedin:active,.btn-linkedin.active,.open>.dropdown-toggle.btn-linkedin{background-image:none}.btn-linkedin.disabled,.btn-linkedin[disabled],fieldset[disabled] .btn-linkedin,.btn-linkedin.disabled:hover,.btn-linkedin[disabled]:hover,fieldset[disabled] .btn-linkedin:hover,.btn-linkedin.disabled:focus,.btn-linkedin[disabled]:focus,fieldset[disabled] .btn-linkedin:focus,.btn-linkedin.disabled.focus,.btn-linkedin[disabled].focus,fieldset[disabled] .btn-linkedin.focus,.btn-linkedin.disabled:active,.btn-linkedin[disabled]:active,fieldset[disabled] .btn-linkedin:active,.btn-linkedin.disabled.active,.btn-linkedin[disabled].active,fieldset[disabled] .btn-linkedin.active{background-color:#007bb6;border-color:rgba(0,0,0,0.2)}.btn-linkedin .badge{color:#007bb6;background-color:#fff}.btn-tumblr{color:#fff;background-color:#2c4762;border-color:rgba(0,0,0,0.2)}.btn-tumblr:hover,.btn-tumblr:focus,.btn-tumblr.focus,.btn-tumblr:active,.btn-tumblr.active,.open>.dropdown-toggle.btn-tumblr{color:#fff;background-color:#1c2d3f;border-color:rgba(0,0,0,0.2)}.btn-tumblr:active,.btn-tumblr.active,.open>.dropdown-toggle.btn-tumblr{background-image:none}.btn-tumblr.disabled,.btn-tumblr[disabled],fieldset[disabled] .btn-tumblr,.btn-tumblr.disabled:hover,.btn-tumblr[disabled]:hover,fieldset[disabled] .btn-tumblr:hover,.btn-tumblr.disabled:focus,.btn-tumblr[disabled]:focus,fieldset[disabled] .btn-tumblr:focus,.btn-tumblr.disabled.focus,.btn-tumblr[disabled].focus,fieldset[disabled] .btn-tumblr.focus,.btn-tumblr.disabled:active,.btn-tumblr[disabled]:active,fieldset[disabled] .btn-tumblr:active,.btn-tumblr.disabled.active,.btn-tumblr[disabled].active,fieldset[disabled] .btn-tumblr.active{background-color:#2c4762;border-color:rgba(0,0,0,0.2)}.btn-tumblr .badge{color:#2c4762;background-color:#fff}.btn-twitter{color:#fff;background-color:#55acee;border-color:rgba(0,0,0,0.2)}.btn-twitter:hover,.btn-twitter:focus,.btn-twitter.focus,.btn-twitter:active,.btn-twitter.active,.open>.dropdown-toggle.btn-twitter{color:#fff;background-color:#2795e9;border-color:rgba(0,0,0,0.2)}.btn-twitter:active,.btn-twitter.active,.open>.dropdown-toggle.btn-twitter{background-image:none}.btn-twitter.disabled,.btn-twitter[disabled],fieldset[disabled] .btn-twitter,.btn-twitter.disabled:hover,.btn-twitter[disabled]:hover,fieldset[disabled] .btn-twitter:hover,.btn-twitter.disabled:focus,.btn-twitter[disabled]:focus,fieldset[disabled] .btn-twitter:focus,.btn-twitter.disabled.focus,.btn-twitter[disabled].focus,fieldset[disabled] .btn-twitter.focus,.btn-twitter.disabled:active,.btn-twitter[disabled]:active,fieldset[disabled] .btn-twitter:active,.btn-twitter.disabled.active,.btn-twitter[disabled].active,fieldset[disabled] .btn-twitter.active{background-color:#55acee;border-color:rgba(0,0,0,0.2)}.btn-twitter .badge{color:#55acee;background-color:#fff}.btn-vk{color:#fff;background-color:#587ea3;border-color:rgba(0,0,0,0.2)}.btn-vk:hover,.btn-vk:focus,.btn-vk.focus,.btn-vk:active,.btn-vk.active,.open>.dropdown-toggle.btn-vk{color:#fff;background-color:#466482;border-color:rgba(0,0,0,0.2)}.btn-vk:active,.btn-vk.active,.open>.dropdown-toggle.btn-vk{background-image:none}.btn-vk.disabled,.btn-vk[disabled],fieldset[disabled] .btn-vk,.btn-vk.disabled:hover,.btn-vk[disabled]:hover,fieldset[disabled] .btn-vk:hover,.btn-vk.disabled:focus,.btn-vk[disabled]:focus,fieldset[disabled] .btn-vk:focus,.btn-vk.disabled.focus,.btn-vk[disabled].focus,fieldset[disabled] .btn-vk.focus,.btn-vk.disabled:active,.btn-vk[disabled]:active,fieldset[disabled] .btn-vk:active,.btn-vk.disabled.active,.btn-vk[disabled].active,fieldset[disabled] .btn-vk.active{background-color:#587ea3;border-color:rgba(0,0,0,0.2)}.btn-vk .badge{color:#587ea3;background-color:#fff}.fc-button{background:#f4f4f4;background-image:none;color:#444;border-color:#ddd;border-bottom-color:#ddd}.fc-button:hover,.fc-button:active,.fc-button.hover{background-color:#e9e9e9}.fc-header-title h2{font-size:15px;line-height:1.6em;color:#666;margin-left:10px}.fc-header-right{padding-right:10px}.fc-header-left{padding-left:10px}.fc-widget-header{background:#fafafa}.fc-grid{width:100%;border:0}.fc-widget-header:first-of-type,.fc-widget-content:first-of-type{border-left:0;border-right:0}.fc-widget-header:last-of-type,.fc-widget-content:last-of-type{border-right:0}.fc-toolbar{padding:10px;margin:0}.fc-day-number{font-size:20px;font-weight:300;padding-right:10px}.fc-color-picker{list-style:none;margin:0;padding:0}.fc-color-picker>li{float:left;font-size:30px;margin-right:5px;line-height:30px}.fc-color-picker>li .fa{-webkit-transition:-webkit-transform linear .3s;-moz-transition:-moz-transform linear .3s;-o-transition:-o-transform linear .3s;transition:transform linear .3s}.fc-color-picker>li .fa:hover{-webkit-transform:rotate(30deg);-ms-transform:rotate(30deg);-o-transform:rotate(30deg);transform:rotate(30deg)}#add-new-event{-webkit-transition:all linear .3s;-o-transition:all linear .3s;transition:all linear .3s}.external-event{padding:5px 10px;font-weight:bold;margin-bottom:4px;box-shadow:0 1px 1px rgba(0,0,0,0.1);text-shadow:0 1px 1px rgba(0,0,0,0.1);border-radius:3px;cursor:move}.external-event:hover{box-shadow:inset 0 0 90px rgba(0,0,0,0.2)}.pad{padding:10px}.margin{margin:10px}.margin-bottom{margin-bottom:20px}.inline{display:inline;width:auto}.description-block{display:block;margin:10px 0;text-align:center}.description-block.margin-bottom{margin-bottom:25px}.description-block>.description-header{margin:0;padding:0;font-weight:600;font-size:16px}.description-block>.description-text{text-transform:uppercase}.bg-red,.bg-yellow,.bg-aqua,.bg-blue,.bg-light-blue,.bg-green,.bg-navy,.bg-teal,.bg-olive,.bg-lime,.bg-orange,.bg-fuchsia,.bg-purple,.bg-maroon,.bg-black,.bg-red-active,.bg-yellow-active,.bg-aqua-active,.bg-blue-active,.bg-light-blue-active,.bg-green-active,.bg-navy-active,.bg-teal-active,.bg-olive-active,.bg-lime-active,.bg-orange-active,.bg-fuchsia-active,.bg-purple-active,.bg-maroon-active,.bg-black-active,.callout.callout-danger,.callout.callout-warning,.callout.callout-info,.callout.callout-success,.alert-success,.alert-danger,.alert-error,.alert-warning,.alert-info,.label-danger,.label-info,.label-waring,.label-primary,.label-success,.modal-primary .modal-body,.modal-primary .modal-header,.modal-primary .modal-footer,.modal-warning .modal-body,.modal-warning .modal-header,.modal-warning .modal-footer,.modal-info .modal-body,.modal-info .modal-header,.modal-info .modal-footer,.modal-success .modal-body,.modal-success .modal-header,.modal-success .modal-footer,.modal-danger .modal-body,.modal-danger .modal-header,.modal-danger .modal-footer{color:#fff !important}.bg-gray{color:#000;background-color:#d2d6de !important}.bg-black{background-color:#111 !important}.bg-red,.callout.callout-danger,.alert-danger,.alert-error,.label-danger,.modal-danger .modal-body{background-color:#dd4b39 !important}.bg-yellow,.callout.callout-warning,.alert-warning,.label-waring,.modal-warning .modal-body{background-color:#f39c12 !important}.bg-aqua,.callout.callout-info,.alert-info,.label-info,.modal-info .modal-body{background-color:#00c0ef !important}.bg-blue{background-color:#0073b7 !important}.bg-light-blue,.label-primary,.modal-primary .modal-body{background-color:#3c8dbc !important}.bg-green,.callout.callout-success,.alert-success,.label-success,.modal-success .modal-body{background-color:#00a65a !important}.bg-navy{background-color:#001f3f !important}.bg-teal{background-color:#39cccc !important}.bg-olive{background-color:#3d9970 !important}.bg-lime{background-color:#01ff70 !important}.bg-orange{background-color:#ff851b !important}.bg-fuchsia{background-color:#f012be !important}.bg-purple{background-color:#605ca8 !important}.bg-maroon{background-color:#d81b60 !important}.bg-gray-active{color:#000;background-color:#b5bbc8 !important}.bg-black-active{background-color:#000 !important}.bg-red-active,.modal-danger .modal-header,.modal-danger .modal-footer{background-color:#d33724 !important}.bg-yellow-active,.modal-warning .modal-header,.modal-warning .modal-footer{background-color:#db8b0b !important}.bg-aqua-active,.modal-info .modal-header,.modal-info .modal-footer{background-color:#00a7d0 !important}.bg-blue-active{background-color:#005384 !important}.bg-light-blue-active,.modal-primary .modal-header,.modal-primary .modal-footer{background-color:#357ca5 !important}.bg-green-active,.modal-success .modal-header,.modal-success .modal-footer{background-color:#008d4c !important}.bg-navy-active{background-color:#001a35 !important}.bg-teal-active{background-color:#30bbbb !important}.bg-olive-active{background-color:#368763 !important}.bg-lime-active{background-color:#00e765 !important}.bg-orange-active{background-color:#ff7701 !important}.bg-fuchsia-active{background-color:#db0ead !important}.bg-purple-active{background-color:#555299 !important}.bg-maroon-active{background-color:#ca195a !important}[class^="bg-"].disabled{opacity:.65;filter:alpha(opacity=65)}.text-red{color:#dd4b39 !important}.text-yellow{color:#f39c12 !important}.text-aqua{color:#00c0ef !important}.text-blue{color:#0073b7 !important}.text-black{color:#111 !important}.text-light-blue{color:#3c8dbc !important}.text-green{color:#00a65a !important}.text-gray{color:#d2d6de !important}.text-navy{color:#001f3f !important}.text-teal{color:#39cccc !important}.text-olive{color:#3d9970 !important}.text-lime{color:#01ff70 !important}.text-orange{color:#ff851b !important}.text-fuchsia{color:#f012be !important}.text-purple{color:#605ca8 !important}.text-maroon{color:#d81b60 !important}.hide{display:none !important}.no-border{border:0px !important}.no-padding{padding:0px !important}.no-margin{margin:0px !important}.no-shadow{box-shadow:none!important}.list-unstyled,.chart-legend,.contacts-list,.users-list,.mailbox-attachments{list-style:none;margin:0;padding:0}.flat{border-radius:0 !important}.text-bold,.text-bold.table td,.text-bold.table th{font-weight:700}.jqstooltip{padding:5px!important;width:auto!important;height:auto!important}.bg-teal-gradient{background:#39cccc !important;background:-webkit-gradient(linear, left bottom, left top, color-stop(0, #39cccc), color-stop(1, #7adddd)) !important;background:-ms-linear-gradient(bottom, #39cccc, #7adddd) !important;background:-moz-linear-gradient(center bottom, #39cccc 0, #7adddd 100%) !important;background:-o-linear-gradient(#7adddd, #39cccc) !important;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#7adddd', endColorstr='#39cccc', GradientType=0) !important;color:#fff}.bg-light-blue-gradient{background:#3c8dbc !important;background:-webkit-gradient(linear, left bottom, left top, color-stop(0, #3c8dbc), color-stop(1, #67a8ce)) !important;background:-ms-linear-gradient(bottom, #3c8dbc, #67a8ce) !important;background:-moz-linear-gradient(center bottom, #3c8dbc 0, #67a8ce 100%) !important;background:-o-linear-gradient(#67a8ce, #3c8dbc) !important;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#67a8ce', endColorstr='#3c8dbc', GradientType=0) !important;color:#fff}.bg-blue-gradient{background:#0073b7 !important;background:-webkit-gradient(linear, left bottom, left top, color-stop(0, #0073b7), color-stop(1, #0089db)) !important;background:-ms-linear-gradient(bottom, #0073b7, #0089db) !important;background:-moz-linear-gradient(center bottom, #0073b7 0, #0089db 100%) !important;background:-o-linear-gradient(#0089db, #0073b7) !important;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#0089db', endColorstr='#0073b7', GradientType=0) !important;color:#fff}.bg-aqua-gradient{background:#00c0ef !important;background:-webkit-gradient(linear, left bottom, left top, color-stop(0, #00c0ef), color-stop(1, #14d1ff)) !important;background:-ms-linear-gradient(bottom, #00c0ef, #14d1ff) !important;background:-moz-linear-gradient(center bottom, #00c0ef 0, #14d1ff 100%) !important;background:-o-linear-gradient(#14d1ff, #00c0ef) !important;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#14d1ff', endColorstr='#00c0ef', GradientType=0) !important;color:#fff}.bg-yellow-gradient{background:#f39c12 !important;background:-webkit-gradient(linear, left bottom, left top, color-stop(0, #f39c12), color-stop(1, #f7bc60)) !important;background:-ms-linear-gradient(bottom, #f39c12, #f7bc60) !important;background:-moz-linear-gradient(center bottom, #f39c12 0, #f7bc60 100%) !important;background:-o-linear-gradient(#f7bc60, #f39c12) !important;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#f7bc60', endColorstr='#f39c12', GradientType=0) !important;color:#fff}.bg-purple-gradient{background:#605ca8 !important;background:-webkit-gradient(linear, left bottom, left top, color-stop(0, #605ca8), color-stop(1, #9491c4)) !important;background:-ms-linear-gradient(bottom, #605ca8, #9491c4) !important;background:-moz-linear-gradient(center bottom, #605ca8 0, #9491c4 100%) !important;background:-o-linear-gradient(#9491c4, #605ca8) !important;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#9491c4', endColorstr='#605ca8', GradientType=0) !important;color:#fff}.bg-green-gradient{background:#00a65a !important;background:-webkit-gradient(linear, left bottom, left top, color-stop(0, #00a65a), color-stop(1, #00ca6d)) !important;background:-ms-linear-gradient(bottom, #00a65a, #00ca6d) !important;background:-moz-linear-gradient(center bottom, #00a65a 0, #00ca6d 100%) !important;background:-o-linear-gradient(#00ca6d, #00a65a) !important;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#00ca6d', endColorstr='#00a65a', GradientType=0) !important;color:#fff}.bg-red-gradient{background:#dd4b39 !important;background:-webkit-gradient(linear, left bottom, left top, color-stop(0, #dd4b39), color-stop(1, #e47365)) !important;background:-ms-linear-gradient(bottom, #dd4b39, #e47365) !important;background:-moz-linear-gradient(center bottom, #dd4b39 0, #e47365 100%) !important;background:-o-linear-gradient(#e47365, #dd4b39) !important;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#e47365', endColorstr='#dd4b39', GradientType=0) !important;color:#fff}.bg-black-gradient{background:#111 !important;background:-webkit-gradient(linear, left bottom, left top, color-stop(0, #111), color-stop(1, #2b2b2b)) !important;background:-ms-linear-gradient(bottom, #111, #2b2b2b) !important;background:-moz-linear-gradient(center bottom, #111 0, #2b2b2b 100%) !important;background:-o-linear-gradient(#2b2b2b, #111) !important;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#2b2b2b', endColorstr='#111111', GradientType=0) !important;color:#fff}.bg-maroon-gradient{background:#d81b60 !important;background:-webkit-gradient(linear, left bottom, left top, color-stop(0, #d81b60), color-stop(1, #e73f7c)) !important;background:-ms-linear-gradient(bottom, #d81b60, #e73f7c) !important;background:-moz-linear-gradient(center bottom, #d81b60 0, #e73f7c 100%) !important;background:-o-linear-gradient(#e73f7c, #d81b60) !important;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#e73f7c', endColorstr='#d81b60', GradientType=0) !important;color:#fff}.connectedSortable{min-height:100px}.ui-helper-hidden-accessible{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.sort-highlight{background:#f4f4f4;border:1px dashed #ddd;margin-bottom:10px}.full-opacity-hover{opacity:.65;filter:alpha(opacity=65)}.full-opacity-hover:hover{opacity:1;filter:alpha(opacity=100)}@media print{.no-print,.main-sidebar,.left-side,.main-header,.content-header{display:none!important}.content-wrapper,.right-side,.main-footer{margin-left:0!important;min-height:0!important;-webkit-transform:translate(0, 0) !important;-ms-transform:translate(0, 0) !important;-o-transform:translate(0, 0) !important;transform:translate(0, 0) !important}.fixed .content-wrapper,.fixed .right-side{padding-top:0!important}.invoice{width:100%;border:0;margin:0;padding:0}.invoice-col{float:left;width:33.3333333%}.table-responsive{overflow:auto}.table-responsive>.table tr th,.table-responsive>.table tr td{white-space:normal!important}} \ No newline at end of file diff --git a/admin/dist/css/skins/_all-skins.css b/admin/dist/css/skins/_all-skins.css deleted file mode 100644 index 0571afd..0000000 --- a/admin/dist/css/skins/_all-skins.css +++ /dev/null @@ -1,876 +0,0 @@ -/* - * Skin: Blue - * ---------- - */ -.skin-blue .main-header .navbar { - background-color: #3c8dbc; -} -.skin-blue .main-header .navbar .nav > li > a { - color: #ffffff; -} -.skin-blue .main-header .navbar .nav > li > a:hover, -.skin-blue .main-header .navbar .nav > li > a:active, -.skin-blue .main-header .navbar .nav > li > a:focus, -.skin-blue .main-header .navbar .nav .open > a, -.skin-blue .main-header .navbar .nav .open > a:hover, -.skin-blue .main-header .navbar .nav .open > a:focus { - background: rgba(0, 0, 0, 0.1); - color: #f6f6f6; -} -.skin-blue .main-header .navbar .navbar-custom-menu > .nav { - margin-right: 10px; -} -.skin-blue .main-header .navbar .sidebar-toggle { - color: #ffffff; -} -.skin-blue .main-header .navbar .sidebar-toggle:hover { - color: #f6f6f6; - background: rgba(0, 0, 0, 0.1); -} -.skin-blue .main-header .navbar .sidebar-toggle { - color: #fff; -} -.skin-blue .main-header .navbar .sidebar-toggle:hover { - background-color: #367fa9; -} -@media (max-width: 767px) { - .skin-blue .main-header .navbar .dropdown-menu li.divider { - background-color: rgba(255, 255, 255, 0.1); - } - .skin-blue .main-header .navbar .dropdown-menu li a { - color: #fff; - } - .skin-blue .main-header .navbar .dropdown-menu li a:hover { - background: #367fa9; - } -} -.skin-blue .main-header .logo { - background-color: #367fa9; - color: #ffffff; - border-bottom: 0px solid transparent; -} -.skin-blue .main-header .logo > a { - color: #ffffff; -} -.skin-blue .main-header .logo:hover { - background: #357ca5; -} -.skin-blue .main-header li.user-header { - background-color: #3c8dbc; -} -.skin-blue .content-header { - background: transparent; -} -.skin-blue .user-panel > .info, -.skin-blue .user-panel > .info > a { - color: #fff; -} -.skin-blue .sidebar-menu > li.header { - color: #4b646f; - background: #1a2226; -} -.skin-blue .sidebar-menu > li > a { - border-left: 3px solid transparent; - margin-right: 1px; -} -.skin-blue .sidebar-menu > li > a:hover, -.skin-blue .sidebar-menu > li.active > a { - color: #ffffff; - background: #1e282c; - border-left-color: #3c8dbc; -} -.skin-blue .sidebar-menu > li > .treeview-menu { - margin: 0 1px; - background: #2c3b41; -} -.skin-blue .wrapper, -.skin-blue .main-sidebar, -.skin-blue .left-side { - background: #222d32; -} -.skin-blue .sidebar a { - color: #b8c7ce; -} -.skin-blue .sidebar a:hover { - text-decoration: none; -} -.skin-blue .treeview-menu > li > a { - color: #8aa4af; -} -.skin-blue .treeview-menu > li.active > a, -.skin-blue .treeview-menu > li > a:hover { - color: #ffffff; -} -.skin-blue .sidebar-form { - border-radius: 3px; - border: 1px solid #374850; - margin: 10px 10px; -} -.skin-blue .sidebar-form input[type="text"], -.skin-blue .sidebar-form .btn { - box-shadow: none; - background-color: #374850; - border: 1px solid transparent; - height: 35px; - -webkit-transition: all 0.3s cubic-bezier(0.32, 1.25, 0.375, 1.15); - -o-transition: all 0.3s cubic-bezier(0.32, 1.25, 0.375, 1.15); - transition: all 0.3s cubic-bezier(0.32, 1.25, 0.375, 1.15); -} -.skin-blue .sidebar-form input[type="text"] { - color: #666; - border-top-left-radius: 2px !important; - border-top-right-radius: 0 !important; - border-bottom-right-radius: 0 !important; - border-bottom-left-radius: 2px !important; -} -.skin-blue .sidebar-form input[type="text"]:focus, -.skin-blue .sidebar-form input[type="text"]:focus + .input-group-btn .btn { - background-color: #fff; - color: #666; -} -.skin-blue .sidebar-form input[type="text"]:focus + .input-group-btn .btn { - border-left-color: #fff; -} -.skin-blue .sidebar-form .btn { - color: #999; - border-top-left-radius: 0 !important; - border-top-right-radius: 2px !important; - border-bottom-right-radius: 2px !important; - border-bottom-left-radius: 0 !important; -} -.skin-blue.layout-top-nav .main-header > .logo { - background-color: #3c8dbc; - color: #ffffff; - border-bottom: 0px solid transparent; -} -.skin-blue.layout-top-nav .main-header > .logo > a { - color: #ffffff; -} -.skin-blue.layout-top-nav .main-header > .logo:hover { - background: #3b8ab8; -} -/* - * Skin: Black - * ----------- - */ -/* skin-black navbar */ -.skin-black .main-header { - -webkit-box-shadow: 0px 1px 1px rgba(0, 0, 0, 0.05); - box-shadow: 0px 1px 1px rgba(0, 0, 0, 0.05); -} -.skin-black .main-header .navbar-toggle { - color: #333; -} -.skin-black .main-header .navbar-brand { - color: #333; - border-right: 1px solid #eee; -} -.skin-black .main-header > .navbar { - background-color: #ffffff; -} -.skin-black .main-header > .navbar .nav > li > a { - color: #333333; -} -.skin-black .main-header > .navbar .nav > li > a:hover, -.skin-black .main-header > .navbar .nav > li > a:active, -.skin-black .main-header > .navbar .nav > li > a:focus, -.skin-black .main-header > .navbar .nav .open > a, -.skin-black .main-header > .navbar .nav .open > a:hover, -.skin-black .main-header > .navbar .nav .open > a:focus { - background: #ffffff; - color: #999999; -} -.skin-black .main-header > .navbar .navbar-custom-menu > .nav { - margin-right: 10px; -} -.skin-black .main-header > .navbar .sidebar-toggle { - color: #333333; -} -.skin-black .main-header > .navbar .sidebar-toggle:hover { - color: #999999; - background: #ffffff; -} -.skin-black .main-header > .navbar > .sidebar-toggle { - color: #333; - border-right: 1px solid #eee; -} -.skin-black .main-header > .navbar .navbar-nav > li > a { - border-right: 1px solid #eee; -} -.skin-black .main-header > .navbar .navbar-custom-menu .navbar-nav > li > a, -.skin-black .main-header > .navbar .navbar-right > li > a { - border-left: 1px solid #eee; - border-right-width: 0; -} -.skin-black .main-header > .logo { - background-color: #ffffff; - color: #333333; - border-bottom: 0px solid transparent; - border-right: 1px solid #eee; -} -.skin-black .main-header > .logo > a { - color: #333333; -} -.skin-black .main-header > .logo:hover { - background: #fcfcfc; -} -@media (max-width: 767px) { - .skin-black .main-header > .logo { - background-color: #222222; - color: #ffffff; - border-bottom: 0px solid transparent; - border-right: none; - } - .skin-black .main-header > .logo > a { - color: #ffffff; - } - .skin-black .main-header > .logo:hover { - background: #1f1f1f; - } -} -.skin-black .main-header li.user-header { - background-color: #222; -} -.skin-black .content-header { - background: transparent; - box-shadow: none; -} -.skin-black .user-panel > .image > img { - border: 1px solid #444; -} -.skin-black .user-panel > .info, -.skin-black .user-panel > .info > a { - color: #eee; -} -.skin-black .main-sidebar, -.skin-black .left-side, -.skin-black .wrapper { - background: #222; -} -.skin-black .sidebar > .sidebar-menu > li.header { - background: #1d1d1d; - color: rgba(255, 255, 255, 0.4); -} -.skin-black .sidebar > .sidebar-menu > li > a { - margin-right: 1px; - border-left: 3px solid transparent; -} -.skin-black .sidebar > .sidebar-menu > li > a:hover, -.skin-black .sidebar > .sidebar-menu > li.active > a { - color: #fff; - background: #444; - border-left-color: #fff; -} -.skin-black .sidebar > .sidebar-menu > li > .treeview-menu { - background: #333; -} -.skin-black .sidebar a { - color: #eee; -} -.skin-black .sidebar a:hover { - text-decoration: none; -} -.skin-black .treeview-menu > li > a { - color: #ccc; -} -.skin-black .treeview-menu > li.active > a, -.skin-black .treeview-menu > li > a:hover { - color: #fff; -} -.skin-black .sidebar-form { - border-radius: 3px; - border: 1px solid #3c3c3c; - margin: 10px 10px; -} -.skin-black .sidebar-form input[type="text"], -.skin-black .sidebar-form .btn { - box-shadow: none; - background-color: #3c3c3c; - border: 1px solid transparent; - height: 35px; - -webkit-transition: all 0.3s cubic-bezier(0.32, 1.25, 0.375, 1.15); - -o-transition: all 0.3s cubic-bezier(0.32, 1.25, 0.375, 1.15); - transition: all 0.3s cubic-bezier(0.32, 1.25, 0.375, 1.15); -} -.skin-black .sidebar-form input[type="text"] { - color: #666; - border-top-left-radius: 2px !important; - border-top-right-radius: 0 !important; - border-bottom-right-radius: 0 !important; - border-bottom-left-radius: 2px !important; -} -.skin-black .sidebar-form input[type="text"]:focus, -.skin-black .sidebar-form input[type="text"]:focus + .input-group-btn .btn { - background-color: #fff; - color: #666; -} -.skin-black .sidebar-form input[type="text"]:focus + .input-group-btn .btn { - border-left-color: #fff; -} -.skin-black .sidebar-form .btn { - color: #999; - border-top-left-radius: 0 !important; - border-top-right-radius: 2px !important; - border-bottom-right-radius: 2px !important; - border-bottom-left-radius: 0 !important; -} -/* - * Skin: Green - * ----------- - */ -.skin-green .main-header .navbar { - background-color: #00a65a; -} -.skin-green .main-header .navbar .nav > li > a { - color: #ffffff; -} -.skin-green .main-header .navbar .nav > li > a:hover, -.skin-green .main-header .navbar .nav > li > a:active, -.skin-green .main-header .navbar .nav > li > a:focus, -.skin-green .main-header .navbar .nav .open > a, -.skin-green .main-header .navbar .nav .open > a:hover, -.skin-green .main-header .navbar .nav .open > a:focus { - background: rgba(0, 0, 0, 0.1); - color: #f6f6f6; -} -.skin-green .main-header .navbar .navbar-custom-menu > .nav { - margin-right: 10px; -} -.skin-green .main-header .navbar .sidebar-toggle { - color: #ffffff; -} -.skin-green .main-header .navbar .sidebar-toggle:hover { - color: #f6f6f6; - background: rgba(0, 0, 0, 0.1); -} -.skin-green .main-header .navbar .sidebar-toggle { - color: #fff; -} -.skin-green .main-header .navbar .sidebar-toggle:hover { - background-color: #008d4c; -} -@media (max-width: 767px) { - .skin-green .main-header .navbar .dropdown-menu li.divider { - background-color: rgba(255, 255, 255, 0.1); - } - .skin-green .main-header .navbar .dropdown-menu li a { - color: #fff; - } - .skin-green .main-header .navbar .dropdown-menu li a:hover { - background: #008d4c; - } -} -.skin-green .main-header .logo { - background-color: #008d4c; - color: #ffffff; - border-bottom: 0px solid transparent; -} -.skin-green .main-header .logo > a { - color: #ffffff; -} -.skin-green .main-header .logo:hover { - background: #008749; -} -.skin-green .main-header li.user-header { - background-color: #00a65a; -} -.skin-green .content-header { - background: transparent; -} -.skin-green .user-panel > .info, -.skin-green .user-panel > .info > a { - color: #fff; -} -.skin-green .sidebar-menu > li.header { - color: #4b646f; - background: #1a2226; -} -.skin-green .sidebar-menu > li > a { - border-left: 3px solid transparent; - margin-right: 1px; -} -.skin-green .sidebar-menu > li > a:hover, -.skin-green .sidebar-menu > li.active > a { - color: #ffffff; - background: #1e282c; - border-left-color: #00a65a; -} -.skin-green .sidebar-menu > li > .treeview-menu { - margin: 0 1px; - background: #2c3b41; -} -.skin-green .wrapper, -.skin-green .main-sidebar, -.skin-green .left-side { - background: #222d32; -} -.skin-green .sidebar a { - color: #b8c7ce; -} -.skin-green .sidebar a:hover { - text-decoration: none; -} -.skin-green .treeview-menu > li > a { - color: #8aa4af; -} -.skin-green .treeview-menu > li.active > a, -.skin-green .treeview-menu > li > a:hover { - color: #ffffff; -} -.skin-green .sidebar-form { - border-radius: 3px; - border: 1px solid #374850; - margin: 10px 10px; -} -.skin-green .sidebar-form input[type="text"], -.skin-green .sidebar-form .btn { - box-shadow: none; - background-color: #374850; - border: 1px solid transparent; - height: 35px; - -webkit-transition: all 0.3s cubic-bezier(0.32, 1.25, 0.375, 1.15); - -o-transition: all 0.3s cubic-bezier(0.32, 1.25, 0.375, 1.15); - transition: all 0.3s cubic-bezier(0.32, 1.25, 0.375, 1.15); -} -.skin-green .sidebar-form input[type="text"] { - color: #666; - border-top-left-radius: 2px !important; - border-top-right-radius: 0 !important; - border-bottom-right-radius: 0 !important; - border-bottom-left-radius: 2px !important; -} -.skin-green .sidebar-form input[type="text"]:focus, -.skin-green .sidebar-form input[type="text"]:focus + .input-group-btn .btn { - background-color: #fff; - color: #666; -} -.skin-green .sidebar-form input[type="text"]:focus + .input-group-btn .btn { - border-left-color: #fff; -} -.skin-green .sidebar-form .btn { - color: #999; - border-top-left-radius: 0 !important; - border-top-right-radius: 2px !important; - border-bottom-right-radius: 2px !important; - border-bottom-left-radius: 0 !important; -} -/* - * Skin: Red - * --------- - */ -.skin-red .main-header .navbar { - background-color: #dd4b39; -} -.skin-red .main-header .navbar .nav > li > a { - color: #ffffff; -} -.skin-red .main-header .navbar .nav > li > a:hover, -.skin-red .main-header .navbar .nav > li > a:active, -.skin-red .main-header .navbar .nav > li > a:focus, -.skin-red .main-header .navbar .nav .open > a, -.skin-red .main-header .navbar .nav .open > a:hover, -.skin-red .main-header .navbar .nav .open > a:focus { - background: rgba(0, 0, 0, 0.1); - color: #f6f6f6; -} -.skin-red .main-header .navbar .navbar-custom-menu > .nav { - margin-right: 10px; -} -.skin-red .main-header .navbar .sidebar-toggle { - color: #ffffff; -} -.skin-red .main-header .navbar .sidebar-toggle:hover { - color: #f6f6f6; - background: rgba(0, 0, 0, 0.1); -} -.skin-red .main-header .navbar .sidebar-toggle { - color: #fff; -} -.skin-red .main-header .navbar .sidebar-toggle:hover { - background-color: #d73925; -} -@media (max-width: 767px) { - .skin-red .main-header .navbar .dropdown-menu li.divider { - background-color: rgba(255, 255, 255, 0.1); - } - .skin-red .main-header .navbar .dropdown-menu li a { - color: #fff; - } - .skin-red .main-header .navbar .dropdown-menu li a:hover { - background: #d73925; - } -} -.skin-red .main-header .logo { - background-color: #d73925; - color: #ffffff; - border-bottom: 0px solid transparent; -} -.skin-red .main-header .logo > a { - color: #ffffff; -} -.skin-red .main-header .logo:hover { - background: #d33724; -} -.skin-red .main-header li.user-header { - background-color: #dd4b39; -} -.skin-red .content-header { - background: transparent; -} -.skin-red .user-panel > .info, -.skin-red .user-panel > .info > a { - color: #fff; -} -.skin-red .sidebar-menu > li.header { - color: #4b646f; - background: #1a2226; -} -.skin-red .sidebar-menu > li > a { - border-left: 3px solid transparent; - margin-right: 1px; -} -.skin-red .sidebar-menu > li > a:hover, -.skin-red .sidebar-menu > li.active > a { - color: #ffffff; - background: #1e282c; - border-left-color: #dd4b39; -} -.skin-red .sidebar-menu > li > .treeview-menu { - margin: 0 1px; - background: #2c3b41; -} -.skin-red .wrapper, -.skin-red .main-sidebar, -.skin-red .left-side { - background: #222d32; -} -.skin-red .sidebar a { - color: #b8c7ce; -} -.skin-red .sidebar a:hover { - text-decoration: none; -} -.skin-red .treeview-menu > li > a { - color: #8aa4af; -} -.skin-red .treeview-menu > li.active > a, -.skin-red .treeview-menu > li > a:hover { - color: #ffffff; -} -.skin-red .sidebar-form { - border-radius: 3px; - border: 1px solid #374850; - margin: 10px 10px; -} -.skin-red .sidebar-form input[type="text"], -.skin-red .sidebar-form .btn { - box-shadow: none; - background-color: #374850; - border: 1px solid transparent; - height: 35px; - -webkit-transition: all 0.3s cubic-bezier(0.32, 1.25, 0.375, 1.15); - -o-transition: all 0.3s cubic-bezier(0.32, 1.25, 0.375, 1.15); - transition: all 0.3s cubic-bezier(0.32, 1.25, 0.375, 1.15); -} -.skin-red .sidebar-form input[type="text"] { - color: #666; - border-top-left-radius: 2px !important; - border-top-right-radius: 0 !important; - border-bottom-right-radius: 0 !important; - border-bottom-left-radius: 2px !important; -} -.skin-red .sidebar-form input[type="text"]:focus, -.skin-red .sidebar-form input[type="text"]:focus + .input-group-btn .btn { - background-color: #fff; - color: #666; -} -.skin-red .sidebar-form input[type="text"]:focus + .input-group-btn .btn { - border-left-color: #fff; -} -.skin-red .sidebar-form .btn { - color: #999; - border-top-left-radius: 0 !important; - border-top-right-radius: 2px !important; - border-bottom-right-radius: 2px !important; - border-bottom-left-radius: 0 !important; -} -/* - * Skin: Yellow - * ------------ - */ -.skin-yellow .main-header .navbar { - background-color: #f39c12; -} -.skin-yellow .main-header .navbar .nav > li > a { - color: #ffffff; -} -.skin-yellow .main-header .navbar .nav > li > a:hover, -.skin-yellow .main-header .navbar .nav > li > a:active, -.skin-yellow .main-header .navbar .nav > li > a:focus, -.skin-yellow .main-header .navbar .nav .open > a, -.skin-yellow .main-header .navbar .nav .open > a:hover, -.skin-yellow .main-header .navbar .nav .open > a:focus { - background: rgba(0, 0, 0, 0.1); - color: #f6f6f6; -} -.skin-yellow .main-header .navbar .navbar-custom-menu > .nav { - margin-right: 10px; -} -.skin-yellow .main-header .navbar .sidebar-toggle { - color: #ffffff; -} -.skin-yellow .main-header .navbar .sidebar-toggle:hover { - color: #f6f6f6; - background: rgba(0, 0, 0, 0.1); -} -.skin-yellow .main-header .navbar .sidebar-toggle { - color: #fff; -} -.skin-yellow .main-header .navbar .sidebar-toggle:hover { - background-color: #e08e0b; -} -@media (max-width: 767px) { - .skin-yellow .main-header .navbar .dropdown-menu li.divider { - background-color: rgba(255, 255, 255, 0.1); - } - .skin-yellow .main-header .navbar .dropdown-menu li a { - color: #fff; - } - .skin-yellow .main-header .navbar .dropdown-menu li a:hover { - background: #e08e0b; - } -} -.skin-yellow .main-header .logo { - background-color: #e08e0b; - color: #ffffff; - border-bottom: 0px solid transparent; -} -.skin-yellow .main-header .logo > a { - color: #ffffff; -} -.skin-yellow .main-header .logo:hover { - background: #db8b0b; -} -.skin-yellow .main-header li.user-header { - background-color: #f39c12; -} -.skin-yellow .content-header { - background: transparent; -} -.skin-yellow .user-panel > .info, -.skin-yellow .user-panel > .info > a { - color: #fff; -} -.skin-yellow .sidebar-menu > li.header { - color: #4b646f; - background: #1a2226; -} -.skin-yellow .sidebar-menu > li > a { - border-left: 3px solid transparent; - margin-right: 1px; -} -.skin-yellow .sidebar-menu > li > a:hover, -.skin-yellow .sidebar-menu > li.active > a { - color: #ffffff; - background: #1e282c; - border-left-color: #f39c12; -} -.skin-yellow .sidebar-menu > li > .treeview-menu { - margin: 0 1px; - background: #2c3b41; -} -.skin-yellow .wrapper, -.skin-yellow .main-sidebar, -.skin-yellow .left-side { - background: #222d32; -} -.skin-yellow .sidebar a { - color: #b8c7ce; -} -.skin-yellow .sidebar a:hover { - text-decoration: none; -} -.skin-yellow .treeview-menu > li > a { - color: #8aa4af; -} -.skin-yellow .treeview-menu > li.active > a, -.skin-yellow .treeview-menu > li > a:hover { - color: #ffffff; -} -.skin-yellow .sidebar-form { - border-radius: 3px; - border: 1px solid #374850; - margin: 10px 10px; -} -.skin-yellow .sidebar-form input[type="text"], -.skin-yellow .sidebar-form .btn { - box-shadow: none; - background-color: #374850; - border: 1px solid transparent; - height: 35px; - -webkit-transition: all 0.3s cubic-bezier(0.32, 1.25, 0.375, 1.15); - -o-transition: all 0.3s cubic-bezier(0.32, 1.25, 0.375, 1.15); - transition: all 0.3s cubic-bezier(0.32, 1.25, 0.375, 1.15); -} -.skin-yellow .sidebar-form input[type="text"] { - color: #666; - border-top-left-radius: 2px !important; - border-top-right-radius: 0 !important; - border-bottom-right-radius: 0 !important; - border-bottom-left-radius: 2px !important; -} -.skin-yellow .sidebar-form input[type="text"]:focus, -.skin-yellow .sidebar-form input[type="text"]:focus + .input-group-btn .btn { - background-color: #fff; - color: #666; -} -.skin-yellow .sidebar-form input[type="text"]:focus + .input-group-btn .btn { - border-left-color: #fff; -} -.skin-yellow .sidebar-form .btn { - color: #999; - border-top-left-radius: 0 !important; - border-top-right-radius: 2px !important; - border-bottom-right-radius: 2px !important; - border-bottom-left-radius: 0 !important; -} -/* - * Skin: Purple - * ------------ - */ -.skin-purple .main-header .navbar { - background-color: #605ca8; -} -.skin-purple .main-header .navbar .nav > li > a { - color: #ffffff; -} -.skin-purple .main-header .navbar .nav > li > a:hover, -.skin-purple .main-header .navbar .nav > li > a:active, -.skin-purple .main-header .navbar .nav > li > a:focus, -.skin-purple .main-header .navbar .nav .open > a, -.skin-purple .main-header .navbar .nav .open > a:hover, -.skin-purple .main-header .navbar .nav .open > a:focus { - background: rgba(0, 0, 0, 0.1); - color: #f6f6f6; -} -.skin-purple .main-header .navbar .navbar-custom-menu > .nav { - margin-right: 10px; -} -.skin-purple .main-header .navbar .sidebar-toggle { - color: #ffffff; -} -.skin-purple .main-header .navbar .sidebar-toggle:hover { - color: #f6f6f6; - background: rgba(0, 0, 0, 0.1); -} -.skin-purple .main-header .navbar .sidebar-toggle { - color: #fff; -} -.skin-purple .main-header .navbar .sidebar-toggle:hover { - background-color: #555299; -} -@media (max-width: 767px) { - .skin-purple .main-header .navbar .dropdown-menu li.divider { - background-color: rgba(255, 255, 255, 0.1); - } - .skin-purple .main-header .navbar .dropdown-menu li a { - color: #fff; - } - .skin-purple .main-header .navbar .dropdown-menu li a:hover { - background: #555299; - } -} -.skin-purple .main-header .logo { - background-color: #555299; - color: #ffffff; - border-bottom: 0px solid transparent; -} -.skin-purple .main-header .logo > a { - color: #ffffff; -} -.skin-purple .main-header .logo:hover { - background: #545096; -} -.skin-purple .main-header li.user-header { - background-color: #605ca8; -} -.skin-purple .content-header { - background: transparent; -} -.skin-purple .user-panel > .info, -.skin-purple .user-panel > .info > a { - color: #fff; -} -.skin-purple .sidebar-menu > li.header { - color: #4b646f; - background: #1a2226; -} -.skin-purple .sidebar-menu > li > a { - border-left: 3px solid transparent; - margin-right: 1px; -} -.skin-purple .sidebar-menu > li > a:hover, -.skin-purple .sidebar-menu > li.active > a { - color: #ffffff; - background: #1e282c; - border-left-color: #605ca8; -} -.skin-purple .sidebar-menu > li > .treeview-menu { - margin: 0 1px; - background: #2c3b41; -} -.skin-purple .wrapper, -.skin-purple .main-sidebar, -.skin-purple .left-side { - background: #222d32; -} -.skin-purple .sidebar a { - color: #b8c7ce; -} -.skin-purple .sidebar a:hover { - text-decoration: none; -} -.skin-purple .treeview-menu > li > a { - color: #8aa4af; -} -.skin-purple .treeview-menu > li.active > a, -.skin-purple .treeview-menu > li > a:hover { - color: #ffffff; -} -.skin-purple .sidebar-form { - border-radius: 3px; - border: 1px solid #374850; - margin: 10px 10px; -} -.skin-purple .sidebar-form input[type="text"], -.skin-purple .sidebar-form .btn { - box-shadow: none; - background-color: #374850; - border: 1px solid transparent; - height: 35px; - -webkit-transition: all 0.3s cubic-bezier(0.32, 1.25, 0.375, 1.15); - -o-transition: all 0.3s cubic-bezier(0.32, 1.25, 0.375, 1.15); - transition: all 0.3s cubic-bezier(0.32, 1.25, 0.375, 1.15); -} -.skin-purple .sidebar-form input[type="text"] { - color: #666; - border-top-left-radius: 2px !important; - border-top-right-radius: 0 !important; - border-bottom-right-radius: 0 !important; - border-bottom-left-radius: 2px !important; -} -.skin-purple .sidebar-form input[type="text"]:focus, -.skin-purple .sidebar-form input[type="text"]:focus + .input-group-btn .btn { - background-color: #fff; - color: #666; -} -.skin-purple .sidebar-form input[type="text"]:focus + .input-group-btn .btn { - border-left-color: #fff; -} -.skin-purple .sidebar-form .btn { - color: #999; - border-top-left-radius: 0 !important; - border-top-right-radius: 2px !important; - border-bottom-right-radius: 2px !important; - border-bottom-left-radius: 0 !important; -} diff --git a/admin/dist/css/skins/_all-skins.min.css b/admin/dist/css/skins/_all-skins.min.css deleted file mode 100644 index 1f65eb5..0000000 --- a/admin/dist/css/skins/_all-skins.min.css +++ /dev/null @@ -1 +0,0 @@ -.skin-blue .main-header .navbar{background-color:#3c8dbc}.skin-blue .main-header .navbar .nav>li>a{color:#fff}.skin-blue .main-header .navbar .nav>li>a:hover,.skin-blue .main-header .navbar .nav>li>a:active,.skin-blue .main-header .navbar .nav>li>a:focus,.skin-blue .main-header .navbar .nav .open>a,.skin-blue .main-header .navbar .nav .open>a:hover,.skin-blue .main-header .navbar .nav .open>a:focus{background:rgba(0,0,0,0.1);color:#f6f6f6}.skin-blue .main-header .navbar .navbar-custom-menu>.nav{margin-right:10px}.skin-blue .main-header .navbar .sidebar-toggle{color:#fff}.skin-blue .main-header .navbar .sidebar-toggle:hover{color:#f6f6f6;background:rgba(0,0,0,0.1)}.skin-blue .main-header .navbar .sidebar-toggle{color:#fff}.skin-blue .main-header .navbar .sidebar-toggle:hover{background-color:#367fa9}@media (max-width:767px){.skin-blue .main-header .navbar .dropdown-menu li.divider{background-color:rgba(255,255,255,0.1)}.skin-blue .main-header .navbar .dropdown-menu li a{color:#fff}.skin-blue .main-header .navbar .dropdown-menu li a:hover{background:#367fa9}}.skin-blue .main-header .logo{background-color:#367fa9;color:#fff;border-bottom:0 solid transparent}.skin-blue .main-header .logo>a{color:#fff}.skin-blue .main-header .logo:hover{background:#357ca5}.skin-blue .main-header li.user-header{background-color:#3c8dbc}.skin-blue .content-header{background:transparent}.skin-blue .user-panel>.info,.skin-blue .user-panel>.info>a{color:#fff}.skin-blue .sidebar-menu>li.header{color:#4b646f;background:#1a2226}.skin-blue .sidebar-menu>li>a{border-left:3px solid transparent;margin-right:1px}.skin-blue .sidebar-menu>li>a:hover,.skin-blue .sidebar-menu>li.active>a{color:#fff;background:#1e282c;border-left-color:#3c8dbc}.skin-blue .sidebar-menu>li>.treeview-menu{margin:0 1px;background:#2c3b41}.skin-blue .wrapper,.skin-blue .main-sidebar,.skin-blue .left-side{background:#222d32}.skin-blue .sidebar a{color:#b8c7ce}.skin-blue .sidebar a:hover{text-decoration:none}.skin-blue .treeview-menu>li>a{color:#8aa4af}.skin-blue .treeview-menu>li.active>a,.skin-blue .treeview-menu>li>a:hover{color:#fff}.skin-blue .sidebar-form{border-radius:3px;border:1px solid #374850;margin:10px 10px}.skin-blue .sidebar-form input[type="text"],.skin-blue .sidebar-form .btn{box-shadow:none;background-color:#374850;border:1px solid transparent;height:35px;-webkit-transition:all .3s cubic-bezier(.32, 1.25, .375, 1.15);-o-transition:all .3s cubic-bezier(.32, 1.25, .375, 1.15);transition:all .3s cubic-bezier(.32, 1.25, .375, 1.15)}.skin-blue .sidebar-form input[type="text"]{color:#666;border-top-left-radius:2px !important;border-top-right-radius:0 !important;border-bottom-right-radius:0 !important;border-bottom-left-radius:2px !important}.skin-blue .sidebar-form input[type="text"]:focus,.skin-blue .sidebar-form input[type="text"]:focus+.input-group-btn .btn{background-color:#fff;color:#666}.skin-blue .sidebar-form input[type="text"]:focus+.input-group-btn .btn{border-left-color:#fff}.skin-blue .sidebar-form .btn{color:#999;border-top-left-radius:0 !important;border-top-right-radius:2px !important;border-bottom-right-radius:2px !important;border-bottom-left-radius:0 !important}.skin-blue.layout-top-nav .main-header>.logo{background-color:#3c8dbc;color:#fff;border-bottom:0 solid transparent}.skin-blue.layout-top-nav .main-header>.logo>a{color:#fff}.skin-blue.layout-top-nav .main-header>.logo:hover{background:#3b8ab8}.skin-black .main-header{-webkit-box-shadow:0 1px 1px rgba(0,0,0,0.05);box-shadow:0 1px 1px rgba(0,0,0,0.05)}.skin-black .main-header .navbar-toggle{color:#333}.skin-black .main-header .navbar-brand{color:#333;border-right:1px solid #eee}.skin-black .main-header>.navbar{background-color:#fff}.skin-black .main-header>.navbar .nav>li>a{color:#333}.skin-black .main-header>.navbar .nav>li>a:hover,.skin-black .main-header>.navbar .nav>li>a:active,.skin-black .main-header>.navbar .nav>li>a:focus,.skin-black .main-header>.navbar .nav .open>a,.skin-black .main-header>.navbar .nav .open>a:hover,.skin-black .main-header>.navbar .nav .open>a:focus{background:#fff;color:#999}.skin-black .main-header>.navbar .navbar-custom-menu>.nav{margin-right:10px}.skin-black .main-header>.navbar .sidebar-toggle{color:#333}.skin-black .main-header>.navbar .sidebar-toggle:hover{color:#999;background:#fff}.skin-black .main-header>.navbar>.sidebar-toggle{color:#333;border-right:1px solid #eee}.skin-black .main-header>.navbar .navbar-nav>li>a{border-right:1px solid #eee}.skin-black .main-header>.navbar .navbar-custom-menu .navbar-nav>li>a,.skin-black .main-header>.navbar .navbar-right>li>a{border-left:1px solid #eee;border-right-width:0}.skin-black .main-header>.logo{background-color:#fff;color:#333;border-bottom:0 solid transparent;border-right:1px solid #eee}.skin-black .main-header>.logo>a{color:#333}.skin-black .main-header>.logo:hover{background:#fcfcfc}@media (max-width:767px){.skin-black .main-header>.logo{background-color:#222;color:#fff;border-bottom:0 solid transparent;border-right:none}.skin-black .main-header>.logo>a{color:#fff}.skin-black .main-header>.logo:hover{background:#1f1f1f}}.skin-black .main-header li.user-header{background-color:#222}.skin-black .content-header{background:transparent;box-shadow:none}.skin-black .user-panel>.image>img{border:1px solid #444}.skin-black .user-panel>.info,.skin-black .user-panel>.info>a{color:#eee}.skin-black .main-sidebar,.skin-black .left-side,.skin-black .wrapper{background:#222}.skin-black .sidebar>.sidebar-menu>li.header{background:#1d1d1d;color:rgba(255,255,255,0.4)}.skin-black .sidebar>.sidebar-menu>li>a{margin-right:1px;border-left:3px solid transparent}.skin-black .sidebar>.sidebar-menu>li>a:hover,.skin-black .sidebar>.sidebar-menu>li.active>a{color:#fff;background:#444;border-left-color:#fff}.skin-black .sidebar>.sidebar-menu>li>.treeview-menu{background:#333}.skin-black .sidebar a{color:#eee}.skin-black .sidebar a:hover{text-decoration:none}.skin-black .treeview-menu>li>a{color:#ccc}.skin-black .treeview-menu>li.active>a,.skin-black .treeview-menu>li>a:hover{color:#fff}.skin-black .sidebar-form{border-radius:3px;border:1px solid #3c3c3c;margin:10px 10px}.skin-black .sidebar-form input[type="text"],.skin-black .sidebar-form .btn{box-shadow:none;background-color:#3c3c3c;border:1px solid transparent;height:35px;-webkit-transition:all .3s cubic-bezier(.32, 1.25, .375, 1.15);-o-transition:all .3s cubic-bezier(.32, 1.25, .375, 1.15);transition:all .3s cubic-bezier(.32, 1.25, .375, 1.15)}.skin-black .sidebar-form input[type="text"]{color:#666;border-top-left-radius:2px !important;border-top-right-radius:0 !important;border-bottom-right-radius:0 !important;border-bottom-left-radius:2px !important}.skin-black .sidebar-form input[type="text"]:focus,.skin-black .sidebar-form input[type="text"]:focus+.input-group-btn .btn{background-color:#fff;color:#666}.skin-black .sidebar-form input[type="text"]:focus+.input-group-btn .btn{border-left-color:#fff}.skin-black .sidebar-form .btn{color:#999;border-top-left-radius:0 !important;border-top-right-radius:2px !important;border-bottom-right-radius:2px !important;border-bottom-left-radius:0 !important}.skin-green .main-header .navbar{background-color:#00a65a}.skin-green .main-header .navbar .nav>li>a{color:#fff}.skin-green .main-header .navbar .nav>li>a:hover,.skin-green .main-header .navbar .nav>li>a:active,.skin-green .main-header .navbar .nav>li>a:focus,.skin-green .main-header .navbar .nav .open>a,.skin-green .main-header .navbar .nav .open>a:hover,.skin-green .main-header .navbar .nav .open>a:focus{background:rgba(0,0,0,0.1);color:#f6f6f6}.skin-green .main-header .navbar .navbar-custom-menu>.nav{margin-right:10px}.skin-green .main-header .navbar .sidebar-toggle{color:#fff}.skin-green .main-header .navbar .sidebar-toggle:hover{color:#f6f6f6;background:rgba(0,0,0,0.1)}.skin-green .main-header .navbar .sidebar-toggle{color:#fff}.skin-green .main-header .navbar .sidebar-toggle:hover{background-color:#008d4c}@media (max-width:767px){.skin-green .main-header .navbar .dropdown-menu li.divider{background-color:rgba(255,255,255,0.1)}.skin-green .main-header .navbar .dropdown-menu li a{color:#fff}.skin-green .main-header .navbar .dropdown-menu li a:hover{background:#008d4c}}.skin-green .main-header .logo{background-color:#008d4c;color:#fff;border-bottom:0 solid transparent}.skin-green .main-header .logo>a{color:#fff}.skin-green .main-header .logo:hover{background:#008749}.skin-green .main-header li.user-header{background-color:#00a65a}.skin-green .content-header{background:transparent}.skin-green .user-panel>.info,.skin-green .user-panel>.info>a{color:#fff}.skin-green .sidebar-menu>li.header{color:#4b646f;background:#1a2226}.skin-green .sidebar-menu>li>a{border-left:3px solid transparent;margin-right:1px}.skin-green .sidebar-menu>li>a:hover,.skin-green .sidebar-menu>li.active>a{color:#fff;background:#1e282c;border-left-color:#00a65a}.skin-green .sidebar-menu>li>.treeview-menu{margin:0 1px;background:#2c3b41}.skin-green .wrapper,.skin-green .main-sidebar,.skin-green .left-side{background:#222d32}.skin-green .sidebar a{color:#b8c7ce}.skin-green .sidebar a:hover{text-decoration:none}.skin-green .treeview-menu>li>a{color:#8aa4af}.skin-green .treeview-menu>li.active>a,.skin-green .treeview-menu>li>a:hover{color:#fff}.skin-green .sidebar-form{border-radius:3px;border:1px solid #374850;margin:10px 10px}.skin-green .sidebar-form input[type="text"],.skin-green .sidebar-form .btn{box-shadow:none;background-color:#374850;border:1px solid transparent;height:35px;-webkit-transition:all .3s cubic-bezier(.32, 1.25, .375, 1.15);-o-transition:all .3s cubic-bezier(.32, 1.25, .375, 1.15);transition:all .3s cubic-bezier(.32, 1.25, .375, 1.15)}.skin-green .sidebar-form input[type="text"]{color:#666;border-top-left-radius:2px !important;border-top-right-radius:0 !important;border-bottom-right-radius:0 !important;border-bottom-left-radius:2px !important}.skin-green .sidebar-form input[type="text"]:focus,.skin-green .sidebar-form input[type="text"]:focus+.input-group-btn .btn{background-color:#fff;color:#666}.skin-green .sidebar-form input[type="text"]:focus+.input-group-btn .btn{border-left-color:#fff}.skin-green .sidebar-form .btn{color:#999;border-top-left-radius:0 !important;border-top-right-radius:2px !important;border-bottom-right-radius:2px !important;border-bottom-left-radius:0 !important}.skin-red .main-header .navbar{background-color:#dd4b39}.skin-red .main-header .navbar .nav>li>a{color:#fff}.skin-red .main-header .navbar .nav>li>a:hover,.skin-red .main-header .navbar .nav>li>a:active,.skin-red .main-header .navbar .nav>li>a:focus,.skin-red .main-header .navbar .nav .open>a,.skin-red .main-header .navbar .nav .open>a:hover,.skin-red .main-header .navbar .nav .open>a:focus{background:rgba(0,0,0,0.1);color:#f6f6f6}.skin-red .main-header .navbar .navbar-custom-menu>.nav{margin-right:10px}.skin-red .main-header .navbar .sidebar-toggle{color:#fff}.skin-red .main-header .navbar .sidebar-toggle:hover{color:#f6f6f6;background:rgba(0,0,0,0.1)}.skin-red .main-header .navbar .sidebar-toggle{color:#fff}.skin-red .main-header .navbar .sidebar-toggle:hover{background-color:#d73925}@media (max-width:767px){.skin-red .main-header .navbar .dropdown-menu li.divider{background-color:rgba(255,255,255,0.1)}.skin-red .main-header .navbar .dropdown-menu li a{color:#fff}.skin-red .main-header .navbar .dropdown-menu li a:hover{background:#d73925}}.skin-red .main-header .logo{background-color:#d73925;color:#fff;border-bottom:0 solid transparent}.skin-red .main-header .logo>a{color:#fff}.skin-red .main-header .logo:hover{background:#d33724}.skin-red .main-header li.user-header{background-color:#dd4b39}.skin-red .content-header{background:transparent}.skin-red .user-panel>.info,.skin-red .user-panel>.info>a{color:#fff}.skin-red .sidebar-menu>li.header{color:#4b646f;background:#1a2226}.skin-red .sidebar-menu>li>a{border-left:3px solid transparent;margin-right:1px}.skin-red .sidebar-menu>li>a:hover,.skin-red .sidebar-menu>li.active>a{color:#fff;background:#1e282c;border-left-color:#dd4b39}.skin-red .sidebar-menu>li>.treeview-menu{margin:0 1px;background:#2c3b41}.skin-red .wrapper,.skin-red .main-sidebar,.skin-red .left-side{background:#222d32}.skin-red .sidebar a{color:#b8c7ce}.skin-red .sidebar a:hover{text-decoration:none}.skin-red .treeview-menu>li>a{color:#8aa4af}.skin-red .treeview-menu>li.active>a,.skin-red .treeview-menu>li>a:hover{color:#fff}.skin-red .sidebar-form{border-radius:3px;border:1px solid #374850;margin:10px 10px}.skin-red .sidebar-form input[type="text"],.skin-red .sidebar-form .btn{box-shadow:none;background-color:#374850;border:1px solid transparent;height:35px;-webkit-transition:all .3s cubic-bezier(.32, 1.25, .375, 1.15);-o-transition:all .3s cubic-bezier(.32, 1.25, .375, 1.15);transition:all .3s cubic-bezier(.32, 1.25, .375, 1.15)}.skin-red .sidebar-form input[type="text"]{color:#666;border-top-left-radius:2px !important;border-top-right-radius:0 !important;border-bottom-right-radius:0 !important;border-bottom-left-radius:2px !important}.skin-red .sidebar-form input[type="text"]:focus,.skin-red .sidebar-form input[type="text"]:focus+.input-group-btn .btn{background-color:#fff;color:#666}.skin-red .sidebar-form input[type="text"]:focus+.input-group-btn .btn{border-left-color:#fff}.skin-red .sidebar-form .btn{color:#999;border-top-left-radius:0 !important;border-top-right-radius:2px !important;border-bottom-right-radius:2px !important;border-bottom-left-radius:0 !important}.skin-yellow .main-header .navbar{background-color:#f39c12}.skin-yellow .main-header .navbar .nav>li>a{color:#fff}.skin-yellow .main-header .navbar .nav>li>a:hover,.skin-yellow .main-header .navbar .nav>li>a:active,.skin-yellow .main-header .navbar .nav>li>a:focus,.skin-yellow .main-header .navbar .nav .open>a,.skin-yellow .main-header .navbar .nav .open>a:hover,.skin-yellow .main-header .navbar .nav .open>a:focus{background:rgba(0,0,0,0.1);color:#f6f6f6}.skin-yellow .main-header .navbar .navbar-custom-menu>.nav{margin-right:10px}.skin-yellow .main-header .navbar .sidebar-toggle{color:#fff}.skin-yellow .main-header .navbar .sidebar-toggle:hover{color:#f6f6f6;background:rgba(0,0,0,0.1)}.skin-yellow .main-header .navbar .sidebar-toggle{color:#fff}.skin-yellow .main-header .navbar .sidebar-toggle:hover{background-color:#e08e0b}@media (max-width:767px){.skin-yellow .main-header .navbar .dropdown-menu li.divider{background-color:rgba(255,255,255,0.1)}.skin-yellow .main-header .navbar .dropdown-menu li a{color:#fff}.skin-yellow .main-header .navbar .dropdown-menu li a:hover{background:#e08e0b}}.skin-yellow .main-header .logo{background-color:#e08e0b;color:#fff;border-bottom:0 solid transparent}.skin-yellow .main-header .logo>a{color:#fff}.skin-yellow .main-header .logo:hover{background:#db8b0b}.skin-yellow .main-header li.user-header{background-color:#f39c12}.skin-yellow .content-header{background:transparent}.skin-yellow .user-panel>.info,.skin-yellow .user-panel>.info>a{color:#fff}.skin-yellow .sidebar-menu>li.header{color:#4b646f;background:#1a2226}.skin-yellow .sidebar-menu>li>a{border-left:3px solid transparent;margin-right:1px}.skin-yellow .sidebar-menu>li>a:hover,.skin-yellow .sidebar-menu>li.active>a{color:#fff;background:#1e282c;border-left-color:#f39c12}.skin-yellow .sidebar-menu>li>.treeview-menu{margin:0 1px;background:#2c3b41}.skin-yellow .wrapper,.skin-yellow .main-sidebar,.skin-yellow .left-side{background:#222d32}.skin-yellow .sidebar a{color:#b8c7ce}.skin-yellow .sidebar a:hover{text-decoration:none}.skin-yellow .treeview-menu>li>a{color:#8aa4af}.skin-yellow .treeview-menu>li.active>a,.skin-yellow .treeview-menu>li>a:hover{color:#fff}.skin-yellow .sidebar-form{border-radius:3px;border:1px solid #374850;margin:10px 10px}.skin-yellow .sidebar-form input[type="text"],.skin-yellow .sidebar-form .btn{box-shadow:none;background-color:#374850;border:1px solid transparent;height:35px;-webkit-transition:all .3s cubic-bezier(.32, 1.25, .375, 1.15);-o-transition:all .3s cubic-bezier(.32, 1.25, .375, 1.15);transition:all .3s cubic-bezier(.32, 1.25, .375, 1.15)}.skin-yellow .sidebar-form input[type="text"]{color:#666;border-top-left-radius:2px !important;border-top-right-radius:0 !important;border-bottom-right-radius:0 !important;border-bottom-left-radius:2px !important}.skin-yellow .sidebar-form input[type="text"]:focus,.skin-yellow .sidebar-form input[type="text"]:focus+.input-group-btn .btn{background-color:#fff;color:#666}.skin-yellow .sidebar-form input[type="text"]:focus+.input-group-btn .btn{border-left-color:#fff}.skin-yellow .sidebar-form .btn{color:#999;border-top-left-radius:0 !important;border-top-right-radius:2px !important;border-bottom-right-radius:2px !important;border-bottom-left-radius:0 !important}.skin-purple .main-header .navbar{background-color:#605ca8}.skin-purple .main-header .navbar .nav>li>a{color:#fff}.skin-purple .main-header .navbar .nav>li>a:hover,.skin-purple .main-header .navbar .nav>li>a:active,.skin-purple .main-header .navbar .nav>li>a:focus,.skin-purple .main-header .navbar .nav .open>a,.skin-purple .main-header .navbar .nav .open>a:hover,.skin-purple .main-header .navbar .nav .open>a:focus{background:rgba(0,0,0,0.1);color:#f6f6f6}.skin-purple .main-header .navbar .navbar-custom-menu>.nav{margin-right:10px}.skin-purple .main-header .navbar .sidebar-toggle{color:#fff}.skin-purple .main-header .navbar .sidebar-toggle:hover{color:#f6f6f6;background:rgba(0,0,0,0.1)}.skin-purple .main-header .navbar .sidebar-toggle{color:#fff}.skin-purple .main-header .navbar .sidebar-toggle:hover{background-color:#555299}@media (max-width:767px){.skin-purple .main-header .navbar .dropdown-menu li.divider{background-color:rgba(255,255,255,0.1)}.skin-purple .main-header .navbar .dropdown-menu li a{color:#fff}.skin-purple .main-header .navbar .dropdown-menu li a:hover{background:#555299}}.skin-purple .main-header .logo{background-color:#555299;color:#fff;border-bottom:0 solid transparent}.skin-purple .main-header .logo>a{color:#fff}.skin-purple .main-header .logo:hover{background:#545096}.skin-purple .main-header li.user-header{background-color:#605ca8}.skin-purple .content-header{background:transparent}.skin-purple .user-panel>.info,.skin-purple .user-panel>.info>a{color:#fff}.skin-purple .sidebar-menu>li.header{color:#4b646f;background:#1a2226}.skin-purple .sidebar-menu>li>a{border-left:3px solid transparent;margin-right:1px}.skin-purple .sidebar-menu>li>a:hover,.skin-purple .sidebar-menu>li.active>a{color:#fff;background:#1e282c;border-left-color:#605ca8}.skin-purple .sidebar-menu>li>.treeview-menu{margin:0 1px;background:#2c3b41}.skin-purple .wrapper,.skin-purple .main-sidebar,.skin-purple .left-side{background:#222d32}.skin-purple .sidebar a{color:#b8c7ce}.skin-purple .sidebar a:hover{text-decoration:none}.skin-purple .treeview-menu>li>a{color:#8aa4af}.skin-purple .treeview-menu>li.active>a,.skin-purple .treeview-menu>li>a:hover{color:#fff}.skin-purple .sidebar-form{border-radius:3px;border:1px solid #374850;margin:10px 10px}.skin-purple .sidebar-form input[type="text"],.skin-purple .sidebar-form .btn{box-shadow:none;background-color:#374850;border:1px solid transparent;height:35px;-webkit-transition:all .3s cubic-bezier(.32, 1.25, .375, 1.15);-o-transition:all .3s cubic-bezier(.32, 1.25, .375, 1.15);transition:all .3s cubic-bezier(.32, 1.25, .375, 1.15)}.skin-purple .sidebar-form input[type="text"]{color:#666;border-top-left-radius:2px !important;border-top-right-radius:0 !important;border-bottom-right-radius:0 !important;border-bottom-left-radius:2px !important}.skin-purple .sidebar-form input[type="text"]:focus,.skin-purple .sidebar-form input[type="text"]:focus+.input-group-btn .btn{background-color:#fff;color:#666}.skin-purple .sidebar-form input[type="text"]:focus+.input-group-btn .btn{border-left-color:#fff}.skin-purple .sidebar-form .btn{color:#999;border-top-left-radius:0 !important;border-top-right-radius:2px !important;border-bottom-right-radius:2px !important;border-bottom-left-radius:0 !important} \ No newline at end of file diff --git a/admin/dist/css/skins/skin-black.css b/admin/dist/css/skins/skin-black.css deleted file mode 100644 index 9dab529..0000000 --- a/admin/dist/css/skins/skin-black.css +++ /dev/null @@ -1,165 +0,0 @@ -/* - * Skin: Black - * ----------- - */ -/* skin-black navbar */ -.skin-black .main-header { - -webkit-box-shadow: 0px 1px 1px rgba(0, 0, 0, 0.05); - box-shadow: 0px 1px 1px rgba(0, 0, 0, 0.05); -} -.skin-black .main-header .navbar-toggle { - color: #333; -} -.skin-black .main-header .navbar-brand { - color: #333; - border-right: 1px solid #eee; -} -.skin-black .main-header > .navbar { - background-color: #ffffff; -} -.skin-black .main-header > .navbar .nav > li > a { - color: #333333; -} -.skin-black .main-header > .navbar .nav > li > a:hover, -.skin-black .main-header > .navbar .nav > li > a:active, -.skin-black .main-header > .navbar .nav > li > a:focus, -.skin-black .main-header > .navbar .nav .open > a, -.skin-black .main-header > .navbar .nav .open > a:hover, -.skin-black .main-header > .navbar .nav .open > a:focus { - background: #ffffff; - color: #999999; -} -.skin-black .main-header > .navbar .navbar-custom-menu > .nav { - margin-right: 10px; -} -.skin-black .main-header > .navbar .sidebar-toggle { - color: #333333; -} -.skin-black .main-header > .navbar .sidebar-toggle:hover { - color: #999999; - background: #ffffff; -} -.skin-black .main-header > .navbar > .sidebar-toggle { - color: #333; - border-right: 1px solid #eee; -} -.skin-black .main-header > .navbar .navbar-nav > li > a { - border-right: 1px solid #eee; -} -.skin-black .main-header > .navbar .navbar-custom-menu .navbar-nav > li > a, -.skin-black .main-header > .navbar .navbar-right > li > a { - border-left: 1px solid #eee; - border-right-width: 0; -} -.skin-black .main-header > .logo { - background-color: #ffffff; - color: #333333; - border-bottom: 0px solid transparent; - border-right: 1px solid #eee; -} -.skin-black .main-header > .logo > a { - color: #333333; -} -.skin-black .main-header > .logo:hover { - background: #fcfcfc; -} -@media (max-width: 767px) { - .skin-black .main-header > .logo { - background-color: #222222; - color: #ffffff; - border-bottom: 0px solid transparent; - border-right: none; - } - .skin-black .main-header > .logo > a { - color: #ffffff; - } - .skin-black .main-header > .logo:hover { - background: #1f1f1f; - } -} -.skin-black .main-header li.user-header { - background-color: #222; -} -.skin-black .content-header { - background: transparent; - box-shadow: none; -} -.skin-black .user-panel > .image > img { - border: 1px solid #444; -} -.skin-black .user-panel > .info, -.skin-black .user-panel > .info > a { - color: #eee; -} -.skin-black .main-sidebar, -.skin-black .left-side, -.skin-black .wrapper { - background: #222; -} -.skin-black .sidebar > .sidebar-menu > li.header { - background: #1d1d1d; - color: rgba(255, 255, 255, 0.4); -} -.skin-black .sidebar > .sidebar-menu > li > a { - margin-right: 1px; - border-left: 3px solid transparent; -} -.skin-black .sidebar > .sidebar-menu > li > a:hover, -.skin-black .sidebar > .sidebar-menu > li.active > a { - color: #fff; - background: #444; - border-left-color: #fff; -} -.skin-black .sidebar > .sidebar-menu > li > .treeview-menu { - background: #333; -} -.skin-black .sidebar a { - color: #eee; -} -.skin-black .sidebar a:hover { - text-decoration: none; -} -.skin-black .treeview-menu > li > a { - color: #ccc; -} -.skin-black .treeview-menu > li.active > a, -.skin-black .treeview-menu > li > a:hover { - color: #fff; -} -.skin-black .sidebar-form { - border-radius: 3px; - border: 1px solid #3c3c3c; - margin: 10px 10px; -} -.skin-black .sidebar-form input[type="text"], -.skin-black .sidebar-form .btn { - box-shadow: none; - background-color: #3c3c3c; - border: 1px solid transparent; - height: 35px; - -webkit-transition: all 0.3s cubic-bezier(0.32, 1.25, 0.375, 1.15); - -o-transition: all 0.3s cubic-bezier(0.32, 1.25, 0.375, 1.15); - transition: all 0.3s cubic-bezier(0.32, 1.25, 0.375, 1.15); -} -.skin-black .sidebar-form input[type="text"] { - color: #666; - border-top-left-radius: 2px !important; - border-top-right-radius: 0 !important; - border-bottom-right-radius: 0 !important; - border-bottom-left-radius: 2px !important; -} -.skin-black .sidebar-form input[type="text"]:focus, -.skin-black .sidebar-form input[type="text"]:focus + .input-group-btn .btn { - background-color: #fff; - color: #666; -} -.skin-black .sidebar-form input[type="text"]:focus + .input-group-btn .btn { - border-left-color: #fff; -} -.skin-black .sidebar-form .btn { - color: #999; - border-top-left-radius: 0 !important; - border-top-right-radius: 2px !important; - border-bottom-right-radius: 2px !important; - border-bottom-left-radius: 0 !important; -} diff --git a/admin/dist/css/skins/skin-black.min.css b/admin/dist/css/skins/skin-black.min.css deleted file mode 100644 index afb878f..0000000 --- a/admin/dist/css/skins/skin-black.min.css +++ /dev/null @@ -1 +0,0 @@ -.skin-black .main-header{-webkit-box-shadow:0 1px 1px rgba(0,0,0,0.05);box-shadow:0 1px 1px rgba(0,0,0,0.05)}.skin-black .main-header .navbar-toggle{color:#333}.skin-black .main-header .navbar-brand{color:#333;border-right:1px solid #eee}.skin-black .main-header>.navbar{background-color:#fff}.skin-black .main-header>.navbar .nav>li>a{color:#333}.skin-black .main-header>.navbar .nav>li>a:hover,.skin-black .main-header>.navbar .nav>li>a:active,.skin-black .main-header>.navbar .nav>li>a:focus,.skin-black .main-header>.navbar .nav .open>a,.skin-black .main-header>.navbar .nav .open>a:hover,.skin-black .main-header>.navbar .nav .open>a:focus{background:#fff;color:#999}.skin-black .main-header>.navbar .navbar-custom-menu>.nav{margin-right:10px}.skin-black .main-header>.navbar .sidebar-toggle{color:#333}.skin-black .main-header>.navbar .sidebar-toggle:hover{color:#999;background:#fff}.skin-black .main-header>.navbar>.sidebar-toggle{color:#333;border-right:1px solid #eee}.skin-black .main-header>.navbar .navbar-nav>li>a{border-right:1px solid #eee}.skin-black .main-header>.navbar .navbar-custom-menu .navbar-nav>li>a,.skin-black .main-header>.navbar .navbar-right>li>a{border-left:1px solid #eee;border-right-width:0}.skin-black .main-header>.logo{background-color:#fff;color:#333;border-bottom:0 solid transparent;border-right:1px solid #eee}.skin-black .main-header>.logo>a{color:#333}.skin-black .main-header>.logo:hover{background:#fcfcfc}@media (max-width:767px){.skin-black .main-header>.logo{background-color:#222;color:#fff;border-bottom:0 solid transparent;border-right:none}.skin-black .main-header>.logo>a{color:#fff}.skin-black .main-header>.logo:hover{background:#1f1f1f}}.skin-black .main-header li.user-header{background-color:#222}.skin-black .content-header{background:transparent;box-shadow:none}.skin-black .user-panel>.image>img{border:1px solid #444}.skin-black .user-panel>.info,.skin-black .user-panel>.info>a{color:#eee}.skin-black .main-sidebar,.skin-black .left-side,.skin-black .wrapper{background:#222}.skin-black .sidebar>.sidebar-menu>li.header{background:#1d1d1d;color:rgba(255,255,255,0.4)}.skin-black .sidebar>.sidebar-menu>li>a{margin-right:1px;border-left:3px solid transparent}.skin-black .sidebar>.sidebar-menu>li>a:hover,.skin-black .sidebar>.sidebar-menu>li.active>a{color:#fff;background:#444;border-left-color:#fff}.skin-black .sidebar>.sidebar-menu>li>.treeview-menu{background:#333}.skin-black .sidebar a{color:#eee}.skin-black .sidebar a:hover{text-decoration:none}.skin-black .treeview-menu>li>a{color:#ccc}.skin-black .treeview-menu>li.active>a,.skin-black .treeview-menu>li>a:hover{color:#fff}.skin-black .sidebar-form{border-radius:3px;border:1px solid #3c3c3c;margin:10px 10px}.skin-black .sidebar-form input[type="text"],.skin-black .sidebar-form .btn{box-shadow:none;background-color:#3c3c3c;border:1px solid transparent;height:35px;-webkit-transition:all .3s cubic-bezier(.32, 1.25, .375, 1.15);-o-transition:all .3s cubic-bezier(.32, 1.25, .375, 1.15);transition:all .3s cubic-bezier(.32, 1.25, .375, 1.15)}.skin-black .sidebar-form input[type="text"]{color:#666;border-top-left-radius:2px !important;border-top-right-radius:0 !important;border-bottom-right-radius:0 !important;border-bottom-left-radius:2px !important}.skin-black .sidebar-form input[type="text"]:focus,.skin-black .sidebar-form input[type="text"]:focus+.input-group-btn .btn{background-color:#fff;color:#666}.skin-black .sidebar-form input[type="text"]:focus+.input-group-btn .btn{border-left-color:#fff}.skin-black .sidebar-form .btn{color:#999;border-top-left-radius:0 !important;border-top-right-radius:2px !important;border-bottom-right-radius:2px !important;border-bottom-left-radius:0 !important} \ No newline at end of file diff --git a/admin/dist/css/skins/skin-blue.css b/admin/dist/css/skins/skin-blue.css deleted file mode 100644 index db5482c..0000000 --- a/admin/dist/css/skins/skin-blue.css +++ /dev/null @@ -1,151 +0,0 @@ -/* - * Skin: Blue - * ---------- - */ -.skin-blue .main-header .navbar { - background-color: #3c8dbc; -} -.skin-blue .main-header .navbar .nav > li > a { - color: #ffffff; -} -.skin-blue .main-header .navbar .nav > li > a:hover, -.skin-blue .main-header .navbar .nav > li > a:active, -.skin-blue .main-header .navbar .nav > li > a:focus, -.skin-blue .main-header .navbar .nav .open > a, -.skin-blue .main-header .navbar .nav .open > a:hover, -.skin-blue .main-header .navbar .nav .open > a:focus { - background: rgba(0, 0, 0, 0.1); - color: #f6f6f6; -} -.skin-blue .main-header .navbar .navbar-custom-menu > .nav { - margin-right: 10px; -} -.skin-blue .main-header .navbar .sidebar-toggle { - color: #ffffff; -} -.skin-blue .main-header .navbar .sidebar-toggle:hover { - color: #f6f6f6; - background: rgba(0, 0, 0, 0.1); -} -.skin-blue .main-header .navbar .sidebar-toggle { - color: #fff; -} -.skin-blue .main-header .navbar .sidebar-toggle:hover { - background-color: #367fa9; -} -@media (max-width: 767px) { - .skin-blue .main-header .navbar .dropdown-menu li.divider { - background-color: rgba(255, 255, 255, 0.1); - } - .skin-blue .main-header .navbar .dropdown-menu li a { - color: #fff; - } - .skin-blue .main-header .navbar .dropdown-menu li a:hover { - background: #367fa9; - } -} -.skin-blue .main-header .logo { - background-color: #367fa9; - color: #ffffff; - border-bottom: 0px solid transparent; -} -.skin-blue .main-header .logo > a { - color: #ffffff; -} -.skin-blue .main-header .logo:hover { - background: #357ca5; -} -.skin-blue .main-header li.user-header { - background-color: #3c8dbc; -} -.skin-blue .content-header { - background: transparent; -} -.skin-blue .user-panel > .info, -.skin-blue .user-panel > .info > a { - color: #fff; -} -.skin-blue .sidebar-menu > li.header { - color: #4b646f; - background: #1a2226; -} -.skin-blue .sidebar-menu > li > a { - border-left: 3px solid transparent; - margin-right: 1px; -} -.skin-blue .sidebar-menu > li > a:hover, -.skin-blue .sidebar-menu > li.active > a { - color: #ffffff; - background: #1e282c; - border-left-color: #3c8dbc; -} -.skin-blue .sidebar-menu > li > .treeview-menu { - margin: 0 1px; - background: #2c3b41; -} -.skin-blue .wrapper, -.skin-blue .main-sidebar, -.skin-blue .left-side { - background: #222d32; -} -.skin-blue .sidebar a { - color: #b8c7ce; -} -.skin-blue .sidebar a:hover { - text-decoration: none; -} -.skin-blue .treeview-menu > li > a { - color: #8aa4af; -} -.skin-blue .treeview-menu > li.active > a, -.skin-blue .treeview-menu > li > a:hover { - color: #ffffff; -} -.skin-blue .sidebar-form { - border-radius: 3px; - border: 1px solid #374850; - margin: 10px 10px; -} -.skin-blue .sidebar-form input[type="text"], -.skin-blue .sidebar-form .btn { - box-shadow: none; - background-color: #374850; - border: 1px solid transparent; - height: 35px; - -webkit-transition: all 0.3s cubic-bezier(0.32, 1.25, 0.375, 1.15); - -o-transition: all 0.3s cubic-bezier(0.32, 1.25, 0.375, 1.15); - transition: all 0.3s cubic-bezier(0.32, 1.25, 0.375, 1.15); -} -.skin-blue .sidebar-form input[type="text"] { - color: #666; - border-top-left-radius: 2px !important; - border-top-right-radius: 0 !important; - border-bottom-right-radius: 0 !important; - border-bottom-left-radius: 2px !important; -} -.skin-blue .sidebar-form input[type="text"]:focus, -.skin-blue .sidebar-form input[type="text"]:focus + .input-group-btn .btn { - background-color: #fff; - color: #666; -} -.skin-blue .sidebar-form input[type="text"]:focus + .input-group-btn .btn { - border-left-color: #fff; -} -.skin-blue .sidebar-form .btn { - color: #999; - border-top-left-radius: 0 !important; - border-top-right-radius: 2px !important; - border-bottom-right-radius: 2px !important; - border-bottom-left-radius: 0 !important; -} -.skin-blue.layout-top-nav .main-header > .logo { - background-color: #3c8dbc; - color: #ffffff; - border-bottom: 0px solid transparent; -} -.skin-blue.layout-top-nav .main-header > .logo > a { - color: #ffffff; -} -.skin-blue.layout-top-nav .main-header > .logo:hover { - background: #3b8ab8; -} diff --git a/admin/dist/css/skins/skin-blue.min.css b/admin/dist/css/skins/skin-blue.min.css deleted file mode 100644 index 8bcb95a..0000000 --- a/admin/dist/css/skins/skin-blue.min.css +++ /dev/null @@ -1 +0,0 @@ -.skin-blue .main-header .navbar{background-color:#3c8dbc}.skin-blue .main-header .navbar .nav>li>a{color:#fff}.skin-blue .main-header .navbar .nav>li>a:hover,.skin-blue .main-header .navbar .nav>li>a:active,.skin-blue .main-header .navbar .nav>li>a:focus,.skin-blue .main-header .navbar .nav .open>a,.skin-blue .main-header .navbar .nav .open>a:hover,.skin-blue .main-header .navbar .nav .open>a:focus{background:rgba(0,0,0,0.1);color:#f6f6f6}.skin-blue .main-header .navbar .navbar-custom-menu>.nav{margin-right:10px}.skin-blue .main-header .navbar .sidebar-toggle{color:#fff}.skin-blue .main-header .navbar .sidebar-toggle:hover{color:#f6f6f6;background:rgba(0,0,0,0.1)}.skin-blue .main-header .navbar .sidebar-toggle{color:#fff}.skin-blue .main-header .navbar .sidebar-toggle:hover{background-color:#367fa9}@media (max-width:767px){.skin-blue .main-header .navbar .dropdown-menu li.divider{background-color:rgba(255,255,255,0.1)}.skin-blue .main-header .navbar .dropdown-menu li a{color:#fff}.skin-blue .main-header .navbar .dropdown-menu li a:hover{background:#367fa9}}.skin-blue .main-header .logo{background-color:#367fa9;color:#fff;border-bottom:0 solid transparent}.skin-blue .main-header .logo>a{color:#fff}.skin-blue .main-header .logo:hover{background:#357ca5}.skin-blue .main-header li.user-header{background-color:#3c8dbc}.skin-blue .content-header{background:transparent}.skin-blue .user-panel>.info,.skin-blue .user-panel>.info>a{color:#fff}.skin-blue .sidebar-menu>li.header{color:#4b646f;background:#1a2226}.skin-blue .sidebar-menu>li>a{border-left:3px solid transparent;margin-right:1px}.skin-blue .sidebar-menu>li>a:hover,.skin-blue .sidebar-menu>li.active>a{color:#fff;background:#1e282c;border-left-color:#3c8dbc}.skin-blue .sidebar-menu>li>.treeview-menu{margin:0 1px;background:#2c3b41}.skin-blue .wrapper,.skin-blue .main-sidebar,.skin-blue .left-side{background:#222d32}.skin-blue .sidebar a{color:#b8c7ce}.skin-blue .sidebar a:hover{text-decoration:none}.skin-blue .treeview-menu>li>a{color:#8aa4af}.skin-blue .treeview-menu>li.active>a,.skin-blue .treeview-menu>li>a:hover{color:#fff}.skin-blue .sidebar-form{border-radius:3px;border:1px solid #374850;margin:10px 10px}.skin-blue .sidebar-form input[type="text"],.skin-blue .sidebar-form .btn{box-shadow:none;background-color:#374850;border:1px solid transparent;height:35px;-webkit-transition:all .3s cubic-bezier(.32, 1.25, .375, 1.15);-o-transition:all .3s cubic-bezier(.32, 1.25, .375, 1.15);transition:all .3s cubic-bezier(.32, 1.25, .375, 1.15)}.skin-blue .sidebar-form input[type="text"]{color:#666;border-top-left-radius:2px !important;border-top-right-radius:0 !important;border-bottom-right-radius:0 !important;border-bottom-left-radius:2px !important}.skin-blue .sidebar-form input[type="text"]:focus,.skin-blue .sidebar-form input[type="text"]:focus+.input-group-btn .btn{background-color:#fff;color:#666}.skin-blue .sidebar-form input[type="text"]:focus+.input-group-btn .btn{border-left-color:#fff}.skin-blue .sidebar-form .btn{color:#999;border-top-left-radius:0 !important;border-top-right-radius:2px !important;border-bottom-right-radius:2px !important;border-bottom-left-radius:0 !important}.skin-blue.layout-top-nav .main-header>.logo{background-color:#3c8dbc;color:#fff;border-bottom:0 solid transparent}.skin-blue.layout-top-nav .main-header>.logo>a{color:#fff}.skin-blue.layout-top-nav .main-header>.logo:hover{background:#3b8ab8} \ No newline at end of file diff --git a/admin/dist/css/skins/skin-green.css b/admin/dist/css/skins/skin-green.css deleted file mode 100644 index 436c6eb..0000000 --- a/admin/dist/css/skins/skin-green.css +++ /dev/null @@ -1,140 +0,0 @@ -/* - * Skin: Green - * ----------- - */ -.skin-green .main-header .navbar { - background-color: #00a65a; -} -.skin-green .main-header .navbar .nav > li > a { - color: #ffffff; -} -.skin-green .main-header .navbar .nav > li > a:hover, -.skin-green .main-header .navbar .nav > li > a:active, -.skin-green .main-header .navbar .nav > li > a:focus, -.skin-green .main-header .navbar .nav .open > a, -.skin-green .main-header .navbar .nav .open > a:hover, -.skin-green .main-header .navbar .nav .open > a:focus { - background: rgba(0, 0, 0, 0.1); - color: #f6f6f6; -} -.skin-green .main-header .navbar .navbar-custom-menu > .nav { - margin-right: 10px; -} -.skin-green .main-header .navbar .sidebar-toggle { - color: #ffffff; -} -.skin-green .main-header .navbar .sidebar-toggle:hover { - color: #f6f6f6; - background: rgba(0, 0, 0, 0.1); -} -.skin-green .main-header .navbar .sidebar-toggle { - color: #fff; -} -.skin-green .main-header .navbar .sidebar-toggle:hover { - background-color: #008d4c; -} -@media (max-width: 767px) { - .skin-green .main-header .navbar .dropdown-menu li.divider { - background-color: rgba(255, 255, 255, 0.1); - } - .skin-green .main-header .navbar .dropdown-menu li a { - color: #fff; - } - .skin-green .main-header .navbar .dropdown-menu li a:hover { - background: #008d4c; - } -} -.skin-green .main-header .logo { - background-color: #008d4c; - color: #ffffff; - border-bottom: 0px solid transparent; -} -.skin-green .main-header .logo > a { - color: #ffffff; -} -.skin-green .main-header .logo:hover { - background: #008749; -} -.skin-green .main-header li.user-header { - background-color: #00a65a; -} -.skin-green .content-header { - background: transparent; -} -.skin-green .user-panel > .info, -.skin-green .user-panel > .info > a { - color: #fff; -} -.skin-green .sidebar-menu > li.header { - color: #4b646f; - background: #1a2226; -} -.skin-green .sidebar-menu > li > a { - border-left: 3px solid transparent; - margin-right: 1px; -} -.skin-green .sidebar-menu > li > a:hover, -.skin-green .sidebar-menu > li.active > a { - color: #ffffff; - background: #1e282c; - border-left-color: #00a65a; -} -.skin-green .sidebar-menu > li > .treeview-menu { - margin: 0 1px; - background: #2c3b41; -} -.skin-green .wrapper, -.skin-green .main-sidebar, -.skin-green .left-side { - background: #222d32; -} -.skin-green .sidebar a { - color: #b8c7ce; -} -.skin-green .sidebar a:hover { - text-decoration: none; -} -.skin-green .treeview-menu > li > a { - color: #8aa4af; -} -.skin-green .treeview-menu > li.active > a, -.skin-green .treeview-menu > li > a:hover { - color: #ffffff; -} -.skin-green .sidebar-form { - border-radius: 3px; - border: 1px solid #374850; - margin: 10px 10px; -} -.skin-green .sidebar-form input[type="text"], -.skin-green .sidebar-form .btn { - box-shadow: none; - background-color: #374850; - border: 1px solid transparent; - height: 35px; - -webkit-transition: all 0.3s cubic-bezier(0.32, 1.25, 0.375, 1.15); - -o-transition: all 0.3s cubic-bezier(0.32, 1.25, 0.375, 1.15); - transition: all 0.3s cubic-bezier(0.32, 1.25, 0.375, 1.15); -} -.skin-green .sidebar-form input[type="text"] { - color: #666; - border-top-left-radius: 2px !important; - border-top-right-radius: 0 !important; - border-bottom-right-radius: 0 !important; - border-bottom-left-radius: 2px !important; -} -.skin-green .sidebar-form input[type="text"]:focus, -.skin-green .sidebar-form input[type="text"]:focus + .input-group-btn .btn { - background-color: #fff; - color: #666; -} -.skin-green .sidebar-form input[type="text"]:focus + .input-group-btn .btn { - border-left-color: #fff; -} -.skin-green .sidebar-form .btn { - color: #999; - border-top-left-radius: 0 !important; - border-top-right-radius: 2px !important; - border-bottom-right-radius: 2px !important; - border-bottom-left-radius: 0 !important; -} diff --git a/admin/dist/css/skins/skin-green.min.css b/admin/dist/css/skins/skin-green.min.css deleted file mode 100644 index 66661cd..0000000 --- a/admin/dist/css/skins/skin-green.min.css +++ /dev/null @@ -1 +0,0 @@ -.skin-green .main-header .navbar{background-color:#00a65a}.skin-green .main-header .navbar .nav>li>a{color:#fff}.skin-green .main-header .navbar .nav>li>a:hover,.skin-green .main-header .navbar .nav>li>a:active,.skin-green .main-header .navbar .nav>li>a:focus,.skin-green .main-header .navbar .nav .open>a,.skin-green .main-header .navbar .nav .open>a:hover,.skin-green .main-header .navbar .nav .open>a:focus{background:rgba(0,0,0,0.1);color:#f6f6f6}.skin-green .main-header .navbar .navbar-custom-menu>.nav{margin-right:10px}.skin-green .main-header .navbar .sidebar-toggle{color:#fff}.skin-green .main-header .navbar .sidebar-toggle:hover{color:#f6f6f6;background:rgba(0,0,0,0.1)}.skin-green .main-header .navbar .sidebar-toggle{color:#fff}.skin-green .main-header .navbar .sidebar-toggle:hover{background-color:#008d4c}@media (max-width:767px){.skin-green .main-header .navbar .dropdown-menu li.divider{background-color:rgba(255,255,255,0.1)}.skin-green .main-header .navbar .dropdown-menu li a{color:#fff}.skin-green .main-header .navbar .dropdown-menu li a:hover{background:#008d4c}}.skin-green .main-header .logo{background-color:#008d4c;color:#fff;border-bottom:0 solid transparent}.skin-green .main-header .logo>a{color:#fff}.skin-green .main-header .logo:hover{background:#008749}.skin-green .main-header li.user-header{background-color:#00a65a}.skin-green .content-header{background:transparent}.skin-green .user-panel>.info,.skin-green .user-panel>.info>a{color:#fff}.skin-green .sidebar-menu>li.header{color:#4b646f;background:#1a2226}.skin-green .sidebar-menu>li>a{border-left:3px solid transparent;margin-right:1px}.skin-green .sidebar-menu>li>a:hover,.skin-green .sidebar-menu>li.active>a{color:#fff;background:#1e282c;border-left-color:#00a65a}.skin-green .sidebar-menu>li>.treeview-menu{margin:0 1px;background:#2c3b41}.skin-green .wrapper,.skin-green .main-sidebar,.skin-green .left-side{background:#222d32}.skin-green .sidebar a{color:#b8c7ce}.skin-green .sidebar a:hover{text-decoration:none}.skin-green .treeview-menu>li>a{color:#8aa4af}.skin-green .treeview-menu>li.active>a,.skin-green .treeview-menu>li>a:hover{color:#fff}.skin-green .sidebar-form{border-radius:3px;border:1px solid #374850;margin:10px 10px}.skin-green .sidebar-form input[type="text"],.skin-green .sidebar-form .btn{box-shadow:none;background-color:#374850;border:1px solid transparent;height:35px;-webkit-transition:all .3s cubic-bezier(.32, 1.25, .375, 1.15);-o-transition:all .3s cubic-bezier(.32, 1.25, .375, 1.15);transition:all .3s cubic-bezier(.32, 1.25, .375, 1.15)}.skin-green .sidebar-form input[type="text"]{color:#666;border-top-left-radius:2px !important;border-top-right-radius:0 !important;border-bottom-right-radius:0 !important;border-bottom-left-radius:2px !important}.skin-green .sidebar-form input[type="text"]:focus,.skin-green .sidebar-form input[type="text"]:focus+.input-group-btn .btn{background-color:#fff;color:#666}.skin-green .sidebar-form input[type="text"]:focus+.input-group-btn .btn{border-left-color:#fff}.skin-green .sidebar-form .btn{color:#999;border-top-left-radius:0 !important;border-top-right-radius:2px !important;border-bottom-right-radius:2px !important;border-bottom-left-radius:0 !important} \ No newline at end of file diff --git a/admin/dist/css/skins/skin-purple.css b/admin/dist/css/skins/skin-purple.css deleted file mode 100644 index af7f88f..0000000 --- a/admin/dist/css/skins/skin-purple.css +++ /dev/null @@ -1,140 +0,0 @@ -/* - * Skin: Purple - * ------------ - */ -.skin-purple .main-header .navbar { - background-color: #605ca8; -} -.skin-purple .main-header .navbar .nav > li > a { - color: #ffffff; -} -.skin-purple .main-header .navbar .nav > li > a:hover, -.skin-purple .main-header .navbar .nav > li > a:active, -.skin-purple .main-header .navbar .nav > li > a:focus, -.skin-purple .main-header .navbar .nav .open > a, -.skin-purple .main-header .navbar .nav .open > a:hover, -.skin-purple .main-header .navbar .nav .open > a:focus { - background: rgba(0, 0, 0, 0.1); - color: #f6f6f6; -} -.skin-purple .main-header .navbar .navbar-custom-menu > .nav { - margin-right: 10px; -} -.skin-purple .main-header .navbar .sidebar-toggle { - color: #ffffff; -} -.skin-purple .main-header .navbar .sidebar-toggle:hover { - color: #f6f6f6; - background: rgba(0, 0, 0, 0.1); -} -.skin-purple .main-header .navbar .sidebar-toggle { - color: #fff; -} -.skin-purple .main-header .navbar .sidebar-toggle:hover { - background-color: #555299; -} -@media (max-width: 767px) { - .skin-purple .main-header .navbar .dropdown-menu li.divider { - background-color: rgba(255, 255, 255, 0.1); - } - .skin-purple .main-header .navbar .dropdown-menu li a { - color: #fff; - } - .skin-purple .main-header .navbar .dropdown-menu li a:hover { - background: #555299; - } -} -.skin-purple .main-header .logo { - background-color: #555299; - color: #ffffff; - border-bottom: 0px solid transparent; -} -.skin-purple .main-header .logo > a { - color: #ffffff; -} -.skin-purple .main-header .logo:hover { - background: #545096; -} -.skin-purple .main-header li.user-header { - background-color: #605ca8; -} -.skin-purple .content-header { - background: transparent; -} -.skin-purple .user-panel > .info, -.skin-purple .user-panel > .info > a { - color: #fff; -} -.skin-purple .sidebar-menu > li.header { - color: #4b646f; - background: #1a2226; -} -.skin-purple .sidebar-menu > li > a { - border-left: 3px solid transparent; - margin-right: 1px; -} -.skin-purple .sidebar-menu > li > a:hover, -.skin-purple .sidebar-menu > li.active > a { - color: #ffffff; - background: #1e282c; - border-left-color: #605ca8; -} -.skin-purple .sidebar-menu > li > .treeview-menu { - margin: 0 1px; - background: #2c3b41; -} -.skin-purple .wrapper, -.skin-purple .main-sidebar, -.skin-purple .left-side { - background: #222d32; -} -.skin-purple .sidebar a { - color: #b8c7ce; -} -.skin-purple .sidebar a:hover { - text-decoration: none; -} -.skin-purple .treeview-menu > li > a { - color: #8aa4af; -} -.skin-purple .treeview-menu > li.active > a, -.skin-purple .treeview-menu > li > a:hover { - color: #ffffff; -} -.skin-purple .sidebar-form { - border-radius: 3px; - border: 1px solid #374850; - margin: 10px 10px; -} -.skin-purple .sidebar-form input[type="text"], -.skin-purple .sidebar-form .btn { - box-shadow: none; - background-color: #374850; - border: 1px solid transparent; - height: 35px; - -webkit-transition: all 0.3s cubic-bezier(0.32, 1.25, 0.375, 1.15); - -o-transition: all 0.3s cubic-bezier(0.32, 1.25, 0.375, 1.15); - transition: all 0.3s cubic-bezier(0.32, 1.25, 0.375, 1.15); -} -.skin-purple .sidebar-form input[type="text"] { - color: #666; - border-top-left-radius: 2px !important; - border-top-right-radius: 0 !important; - border-bottom-right-radius: 0 !important; - border-bottom-left-radius: 2px !important; -} -.skin-purple .sidebar-form input[type="text"]:focus, -.skin-purple .sidebar-form input[type="text"]:focus + .input-group-btn .btn { - background-color: #fff; - color: #666; -} -.skin-purple .sidebar-form input[type="text"]:focus + .input-group-btn .btn { - border-left-color: #fff; -} -.skin-purple .sidebar-form .btn { - color: #999; - border-top-left-radius: 0 !important; - border-top-right-radius: 2px !important; - border-bottom-right-radius: 2px !important; - border-bottom-left-radius: 0 !important; -} diff --git a/admin/dist/css/skins/skin-purple.min.css b/admin/dist/css/skins/skin-purple.min.css deleted file mode 100644 index 7c3aa6c..0000000 --- a/admin/dist/css/skins/skin-purple.min.css +++ /dev/null @@ -1 +0,0 @@ -.skin-purple .main-header .navbar{background-color:#605ca8}.skin-purple .main-header .navbar .nav>li>a{color:#fff}.skin-purple .main-header .navbar .nav>li>a:hover,.skin-purple .main-header .navbar .nav>li>a:active,.skin-purple .main-header .navbar .nav>li>a:focus,.skin-purple .main-header .navbar .nav .open>a,.skin-purple .main-header .navbar .nav .open>a:hover,.skin-purple .main-header .navbar .nav .open>a:focus{background:rgba(0,0,0,0.1);color:#f6f6f6}.skin-purple .main-header .navbar .navbar-custom-menu>.nav{margin-right:10px}.skin-purple .main-header .navbar .sidebar-toggle{color:#fff}.skin-purple .main-header .navbar .sidebar-toggle:hover{color:#f6f6f6;background:rgba(0,0,0,0.1)}.skin-purple .main-header .navbar .sidebar-toggle{color:#fff}.skin-purple .main-header .navbar .sidebar-toggle:hover{background-color:#555299}@media (max-width:767px){.skin-purple .main-header .navbar .dropdown-menu li.divider{background-color:rgba(255,255,255,0.1)}.skin-purple .main-header .navbar .dropdown-menu li a{color:#fff}.skin-purple .main-header .navbar .dropdown-menu li a:hover{background:#555299}}.skin-purple .main-header .logo{background-color:#555299;color:#fff;border-bottom:0 solid transparent}.skin-purple .main-header .logo>a{color:#fff}.skin-purple .main-header .logo:hover{background:#545096}.skin-purple .main-header li.user-header{background-color:#605ca8}.skin-purple .content-header{background:transparent}.skin-purple .user-panel>.info,.skin-purple .user-panel>.info>a{color:#fff}.skin-purple .sidebar-menu>li.header{color:#4b646f;background:#1a2226}.skin-purple .sidebar-menu>li>a{border-left:3px solid transparent;margin-right:1px}.skin-purple .sidebar-menu>li>a:hover,.skin-purple .sidebar-menu>li.active>a{color:#fff;background:#1e282c;border-left-color:#605ca8}.skin-purple .sidebar-menu>li>.treeview-menu{margin:0 1px;background:#2c3b41}.skin-purple .wrapper,.skin-purple .main-sidebar,.skin-purple .left-side{background:#222d32}.skin-purple .sidebar a{color:#b8c7ce}.skin-purple .sidebar a:hover{text-decoration:none}.skin-purple .treeview-menu>li>a{color:#8aa4af}.skin-purple .treeview-menu>li.active>a,.skin-purple .treeview-menu>li>a:hover{color:#fff}.skin-purple .sidebar-form{border-radius:3px;border:1px solid #374850;margin:10px 10px}.skin-purple .sidebar-form input[type="text"],.skin-purple .sidebar-form .btn{box-shadow:none;background-color:#374850;border:1px solid transparent;height:35px;-webkit-transition:all .3s cubic-bezier(.32, 1.25, .375, 1.15);-o-transition:all .3s cubic-bezier(.32, 1.25, .375, 1.15);transition:all .3s cubic-bezier(.32, 1.25, .375, 1.15)}.skin-purple .sidebar-form input[type="text"]{color:#666;border-top-left-radius:2px !important;border-top-right-radius:0 !important;border-bottom-right-radius:0 !important;border-bottom-left-radius:2px !important}.skin-purple .sidebar-form input[type="text"]:focus,.skin-purple .sidebar-form input[type="text"]:focus+.input-group-btn .btn{background-color:#fff;color:#666}.skin-purple .sidebar-form input[type="text"]:focus+.input-group-btn .btn{border-left-color:#fff}.skin-purple .sidebar-form .btn{color:#999;border-top-left-radius:0 !important;border-top-right-radius:2px !important;border-bottom-right-radius:2px !important;border-bottom-left-radius:0 !important} \ No newline at end of file diff --git a/admin/dist/css/skins/skin-red.css b/admin/dist/css/skins/skin-red.css deleted file mode 100644 index 9f4cd36..0000000 --- a/admin/dist/css/skins/skin-red.css +++ /dev/null @@ -1,140 +0,0 @@ -/* - * Skin: Red - * --------- - */ -.skin-red .main-header .navbar { - background-color: #dd4b39; -} -.skin-red .main-header .navbar .nav > li > a { - color: #ffffff; -} -.skin-red .main-header .navbar .nav > li > a:hover, -.skin-red .main-header .navbar .nav > li > a:active, -.skin-red .main-header .navbar .nav > li > a:focus, -.skin-red .main-header .navbar .nav .open > a, -.skin-red .main-header .navbar .nav .open > a:hover, -.skin-red .main-header .navbar .nav .open > a:focus { - background: rgba(0, 0, 0, 0.1); - color: #f6f6f6; -} -.skin-red .main-header .navbar .navbar-custom-menu > .nav { - margin-right: 10px; -} -.skin-red .main-header .navbar .sidebar-toggle { - color: #ffffff; -} -.skin-red .main-header .navbar .sidebar-toggle:hover { - color: #f6f6f6; - background: rgba(0, 0, 0, 0.1); -} -.skin-red .main-header .navbar .sidebar-toggle { - color: #fff; -} -.skin-red .main-header .navbar .sidebar-toggle:hover { - background-color: #d73925; -} -@media (max-width: 767px) { - .skin-red .main-header .navbar .dropdown-menu li.divider { - background-color: rgba(255, 255, 255, 0.1); - } - .skin-red .main-header .navbar .dropdown-menu li a { - color: #fff; - } - .skin-red .main-header .navbar .dropdown-menu li a:hover { - background: #d73925; - } -} -.skin-red .main-header .logo { - background-color: #d73925; - color: #ffffff; - border-bottom: 0px solid transparent; -} -.skin-red .main-header .logo > a { - color: #ffffff; -} -.skin-red .main-header .logo:hover { - background: #d33724; -} -.skin-red .main-header li.user-header { - background-color: #dd4b39; -} -.skin-red .content-header { - background: transparent; -} -.skin-red .user-panel > .info, -.skin-red .user-panel > .info > a { - color: #fff; -} -.skin-red .sidebar-menu > li.header { - color: #4b646f; - background: #1a2226; -} -.skin-red .sidebar-menu > li > a { - border-left: 3px solid transparent; - margin-right: 1px; -} -.skin-red .sidebar-menu > li > a:hover, -.skin-red .sidebar-menu > li.active > a { - color: #ffffff; - background: #1e282c; - border-left-color: #dd4b39; -} -.skin-red .sidebar-menu > li > .treeview-menu { - margin: 0 1px; - background: #2c3b41; -} -.skin-red .wrapper, -.skin-red .main-sidebar, -.skin-red .left-side { - background: #222d32; -} -.skin-red .sidebar a { - color: #b8c7ce; -} -.skin-red .sidebar a:hover { - text-decoration: none; -} -.skin-red .treeview-menu > li > a { - color: #8aa4af; -} -.skin-red .treeview-menu > li.active > a, -.skin-red .treeview-menu > li > a:hover { - color: #ffffff; -} -.skin-red .sidebar-form { - border-radius: 3px; - border: 1px solid #374850; - margin: 10px 10px; -} -.skin-red .sidebar-form input[type="text"], -.skin-red .sidebar-form .btn { - box-shadow: none; - background-color: #374850; - border: 1px solid transparent; - height: 35px; - -webkit-transition: all 0.3s cubic-bezier(0.32, 1.25, 0.375, 1.15); - -o-transition: all 0.3s cubic-bezier(0.32, 1.25, 0.375, 1.15); - transition: all 0.3s cubic-bezier(0.32, 1.25, 0.375, 1.15); -} -.skin-red .sidebar-form input[type="text"] { - color: #666; - border-top-left-radius: 2px !important; - border-top-right-radius: 0 !important; - border-bottom-right-radius: 0 !important; - border-bottom-left-radius: 2px !important; -} -.skin-red .sidebar-form input[type="text"]:focus, -.skin-red .sidebar-form input[type="text"]:focus + .input-group-btn .btn { - background-color: #fff; - color: #666; -} -.skin-red .sidebar-form input[type="text"]:focus + .input-group-btn .btn { - border-left-color: #fff; -} -.skin-red .sidebar-form .btn { - color: #999; - border-top-left-radius: 0 !important; - border-top-right-radius: 2px !important; - border-bottom-right-radius: 2px !important; - border-bottom-left-radius: 0 !important; -} diff --git a/admin/dist/css/skins/skin-red.min.css b/admin/dist/css/skins/skin-red.min.css deleted file mode 100644 index ae35e9c..0000000 --- a/admin/dist/css/skins/skin-red.min.css +++ /dev/null @@ -1 +0,0 @@ -.skin-red .main-header .navbar{background-color:#dd4b39}.skin-red .main-header .navbar .nav>li>a{color:#fff}.skin-red .main-header .navbar .nav>li>a:hover,.skin-red .main-header .navbar .nav>li>a:active,.skin-red .main-header .navbar .nav>li>a:focus,.skin-red .main-header .navbar .nav .open>a,.skin-red .main-header .navbar .nav .open>a:hover,.skin-red .main-header .navbar .nav .open>a:focus{background:rgba(0,0,0,0.1);color:#f6f6f6}.skin-red .main-header .navbar .navbar-custom-menu>.nav{margin-right:10px}.skin-red .main-header .navbar .sidebar-toggle{color:#fff}.skin-red .main-header .navbar .sidebar-toggle:hover{color:#f6f6f6;background:rgba(0,0,0,0.1)}.skin-red .main-header .navbar .sidebar-toggle{color:#fff}.skin-red .main-header .navbar .sidebar-toggle:hover{background-color:#d73925}@media (max-width:767px){.skin-red .main-header .navbar .dropdown-menu li.divider{background-color:rgba(255,255,255,0.1)}.skin-red .main-header .navbar .dropdown-menu li a{color:#fff}.skin-red .main-header .navbar .dropdown-menu li a:hover{background:#d73925}}.skin-red .main-header .logo{background-color:#d73925;color:#fff;border-bottom:0 solid transparent}.skin-red .main-header .logo>a{color:#fff}.skin-red .main-header .logo:hover{background:#d33724}.skin-red .main-header li.user-header{background-color:#dd4b39}.skin-red .content-header{background:transparent}.skin-red .user-panel>.info,.skin-red .user-panel>.info>a{color:#fff}.skin-red .sidebar-menu>li.header{color:#4b646f;background:#1a2226}.skin-red .sidebar-menu>li>a{border-left:3px solid transparent;margin-right:1px}.skin-red .sidebar-menu>li>a:hover,.skin-red .sidebar-menu>li.active>a{color:#fff;background:#1e282c;border-left-color:#dd4b39}.skin-red .sidebar-menu>li>.treeview-menu{margin:0 1px;background:#2c3b41}.skin-red .wrapper,.skin-red .main-sidebar,.skin-red .left-side{background:#222d32}.skin-red .sidebar a{color:#b8c7ce}.skin-red .sidebar a:hover{text-decoration:none}.skin-red .treeview-menu>li>a{color:#8aa4af}.skin-red .treeview-menu>li.active>a,.skin-red .treeview-menu>li>a:hover{color:#fff}.skin-red .sidebar-form{border-radius:3px;border:1px solid #374850;margin:10px 10px}.skin-red .sidebar-form input[type="text"],.skin-red .sidebar-form .btn{box-shadow:none;background-color:#374850;border:1px solid transparent;height:35px;-webkit-transition:all .3s cubic-bezier(.32, 1.25, .375, 1.15);-o-transition:all .3s cubic-bezier(.32, 1.25, .375, 1.15);transition:all .3s cubic-bezier(.32, 1.25, .375, 1.15)}.skin-red .sidebar-form input[type="text"]{color:#666;border-top-left-radius:2px !important;border-top-right-radius:0 !important;border-bottom-right-radius:0 !important;border-bottom-left-radius:2px !important}.skin-red .sidebar-form input[type="text"]:focus,.skin-red .sidebar-form input[type="text"]:focus+.input-group-btn .btn{background-color:#fff;color:#666}.skin-red .sidebar-form input[type="text"]:focus+.input-group-btn .btn{border-left-color:#fff}.skin-red .sidebar-form .btn{color:#999;border-top-left-radius:0 !important;border-top-right-radius:2px !important;border-bottom-right-radius:2px !important;border-bottom-left-radius:0 !important} \ No newline at end of file diff --git a/admin/dist/css/skins/skin-yellow.css b/admin/dist/css/skins/skin-yellow.css deleted file mode 100644 index 650c40a..0000000 --- a/admin/dist/css/skins/skin-yellow.css +++ /dev/null @@ -1,140 +0,0 @@ -/* - * Skin: Yellow - * ------------ - */ -.skin-yellow .main-header .navbar { - background-color: #f39c12; -} -.skin-yellow .main-header .navbar .nav > li > a { - color: #ffffff; -} -.skin-yellow .main-header .navbar .nav > li > a:hover, -.skin-yellow .main-header .navbar .nav > li > a:active, -.skin-yellow .main-header .navbar .nav > li > a:focus, -.skin-yellow .main-header .navbar .nav .open > a, -.skin-yellow .main-header .navbar .nav .open > a:hover, -.skin-yellow .main-header .navbar .nav .open > a:focus { - background: rgba(0, 0, 0, 0.1); - color: #f6f6f6; -} -.skin-yellow .main-header .navbar .navbar-custom-menu > .nav { - margin-right: 10px; -} -.skin-yellow .main-header .navbar .sidebar-toggle { - color: #ffffff; -} -.skin-yellow .main-header .navbar .sidebar-toggle:hover { - color: #f6f6f6; - background: rgba(0, 0, 0, 0.1); -} -.skin-yellow .main-header .navbar .sidebar-toggle { - color: #fff; -} -.skin-yellow .main-header .navbar .sidebar-toggle:hover { - background-color: #e08e0b; -} -@media (max-width: 767px) { - .skin-yellow .main-header .navbar .dropdown-menu li.divider { - background-color: rgba(255, 255, 255, 0.1); - } - .skin-yellow .main-header .navbar .dropdown-menu li a { - color: #fff; - } - .skin-yellow .main-header .navbar .dropdown-menu li a:hover { - background: #e08e0b; - } -} -.skin-yellow .main-header .logo { - background-color: #e08e0b; - color: #ffffff; - border-bottom: 0px solid transparent; -} -.skin-yellow .main-header .logo > a { - color: #ffffff; -} -.skin-yellow .main-header .logo:hover { - background: #db8b0b; -} -.skin-yellow .main-header li.user-header { - background-color: #f39c12; -} -.skin-yellow .content-header { - background: transparent; -} -.skin-yellow .user-panel > .info, -.skin-yellow .user-panel > .info > a { - color: #fff; -} -.skin-yellow .sidebar-menu > li.header { - color: #4b646f; - background: #1a2226; -} -.skin-yellow .sidebar-menu > li > a { - border-left: 3px solid transparent; - margin-right: 1px; -} -.skin-yellow .sidebar-menu > li > a:hover, -.skin-yellow .sidebar-menu > li.active > a { - color: #ffffff; - background: #1e282c; - border-left-color: #f39c12; -} -.skin-yellow .sidebar-menu > li > .treeview-menu { - margin: 0 1px; - background: #2c3b41; -} -.skin-yellow .wrapper, -.skin-yellow .main-sidebar, -.skin-yellow .left-side { - background: #222d32; -} -.skin-yellow .sidebar a { - color: #b8c7ce; -} -.skin-yellow .sidebar a:hover { - text-decoration: none; -} -.skin-yellow .treeview-menu > li > a { - color: #8aa4af; -} -.skin-yellow .treeview-menu > li.active > a, -.skin-yellow .treeview-menu > li > a:hover { - color: #ffffff; -} -.skin-yellow .sidebar-form { - border-radius: 3px; - border: 1px solid #374850; - margin: 10px 10px; -} -.skin-yellow .sidebar-form input[type="text"], -.skin-yellow .sidebar-form .btn { - box-shadow: none; - background-color: #374850; - border: 1px solid transparent; - height: 35px; - -webkit-transition: all 0.3s cubic-bezier(0.32, 1.25, 0.375, 1.15); - -o-transition: all 0.3s cubic-bezier(0.32, 1.25, 0.375, 1.15); - transition: all 0.3s cubic-bezier(0.32, 1.25, 0.375, 1.15); -} -.skin-yellow .sidebar-form input[type="text"] { - color: #666; - border-top-left-radius: 2px !important; - border-top-right-radius: 0 !important; - border-bottom-right-radius: 0 !important; - border-bottom-left-radius: 2px !important; -} -.skin-yellow .sidebar-form input[type="text"]:focus, -.skin-yellow .sidebar-form input[type="text"]:focus + .input-group-btn .btn { - background-color: #fff; - color: #666; -} -.skin-yellow .sidebar-form input[type="text"]:focus + .input-group-btn .btn { - border-left-color: #fff; -} -.skin-yellow .sidebar-form .btn { - color: #999; - border-top-left-radius: 0 !important; - border-top-right-radius: 2px !important; - border-bottom-right-radius: 2px !important; - border-bottom-left-radius: 0 !important; -} diff --git a/admin/dist/css/skins/skin-yellow.min.css b/admin/dist/css/skins/skin-yellow.min.css deleted file mode 100644 index 903e45b..0000000 --- a/admin/dist/css/skins/skin-yellow.min.css +++ /dev/null @@ -1 +0,0 @@ -.skin-yellow .main-header .navbar{background-color:#f39c12}.skin-yellow .main-header .navbar .nav>li>a{color:#fff}.skin-yellow .main-header .navbar .nav>li>a:hover,.skin-yellow .main-header .navbar .nav>li>a:active,.skin-yellow .main-header .navbar .nav>li>a:focus,.skin-yellow .main-header .navbar .nav .open>a,.skin-yellow .main-header .navbar .nav .open>a:hover,.skin-yellow .main-header .navbar .nav .open>a:focus{background:rgba(0,0,0,0.1);color:#f6f6f6}.skin-yellow .main-header .navbar .navbar-custom-menu>.nav{margin-right:10px}.skin-yellow .main-header .navbar .sidebar-toggle{color:#fff}.skin-yellow .main-header .navbar .sidebar-toggle:hover{color:#f6f6f6;background:rgba(0,0,0,0.1)}.skin-yellow .main-header .navbar .sidebar-toggle{color:#fff}.skin-yellow .main-header .navbar .sidebar-toggle:hover{background-color:#e08e0b}@media (max-width:767px){.skin-yellow .main-header .navbar .dropdown-menu li.divider{background-color:rgba(255,255,255,0.1)}.skin-yellow .main-header .navbar .dropdown-menu li a{color:#fff}.skin-yellow .main-header .navbar .dropdown-menu li a:hover{background:#e08e0b}}.skin-yellow .main-header .logo{background-color:#e08e0b;color:#fff;border-bottom:0 solid transparent}.skin-yellow .main-header .logo>a{color:#fff}.skin-yellow .main-header .logo:hover{background:#db8b0b}.skin-yellow .main-header li.user-header{background-color:#f39c12}.skin-yellow .content-header{background:transparent}.skin-yellow .user-panel>.info,.skin-yellow .user-panel>.info>a{color:#fff}.skin-yellow .sidebar-menu>li.header{color:#4b646f;background:#1a2226}.skin-yellow .sidebar-menu>li>a{border-left:3px solid transparent;margin-right:1px}.skin-yellow .sidebar-menu>li>a:hover,.skin-yellow .sidebar-menu>li.active>a{color:#fff;background:#1e282c;border-left-color:#f39c12}.skin-yellow .sidebar-menu>li>.treeview-menu{margin:0 1px;background:#2c3b41}.skin-yellow .wrapper,.skin-yellow .main-sidebar,.skin-yellow .left-side{background:#222d32}.skin-yellow .sidebar a{color:#b8c7ce}.skin-yellow .sidebar a:hover{text-decoration:none}.skin-yellow .treeview-menu>li>a{color:#8aa4af}.skin-yellow .treeview-menu>li.active>a,.skin-yellow .treeview-menu>li>a:hover{color:#fff}.skin-yellow .sidebar-form{border-radius:3px;border:1px solid #374850;margin:10px 10px}.skin-yellow .sidebar-form input[type="text"],.skin-yellow .sidebar-form .btn{box-shadow:none;background-color:#374850;border:1px solid transparent;height:35px;-webkit-transition:all .3s cubic-bezier(.32, 1.25, .375, 1.15);-o-transition:all .3s cubic-bezier(.32, 1.25, .375, 1.15);transition:all .3s cubic-bezier(.32, 1.25, .375, 1.15)}.skin-yellow .sidebar-form input[type="text"]{color:#666;border-top-left-radius:2px !important;border-top-right-radius:0 !important;border-bottom-right-radius:0 !important;border-bottom-left-radius:2px !important}.skin-yellow .sidebar-form input[type="text"]:focus,.skin-yellow .sidebar-form input[type="text"]:focus+.input-group-btn .btn{background-color:#fff;color:#666}.skin-yellow .sidebar-form input[type="text"]:focus+.input-group-btn .btn{border-left-color:#fff}.skin-yellow .sidebar-form .btn{color:#999;border-top-left-radius:0 !important;border-top-right-radius:2px !important;border-bottom-right-radius:2px !important;border-bottom-left-radius:0 !important} \ No newline at end of file diff --git a/admin/dist/js/adminlte.js b/admin/dist/js/adminlte.js deleted file mode 100644 index dd8e2e3..0000000 --- a/admin/dist/js/adminlte.js +++ /dev/null @@ -1,1127 +0,0 @@ -/*! AdminLTE app.js -* ================ -* Main JS application file for AdminLTE v2. This file -* should be included in all pages. It controls some layout -* options and implements exclusive AdminLTE plugins. -* -* @Author Almsaeed Studio -* @Support <https://www.almsaeedstudio.com> -* @Email <abdullah@almsaeedstudio.com> -* @version 2.4.0 -* @repository git://github.com/almasaeed2010/AdminLTE.git -* @license MIT <http://opensource.org/licenses/MIT> -*/ - -// Make sure jQuery has been loaded -if (typeof jQuery === 'undefined') { -throw new Error('AdminLTE requires jQuery') -} - -/* BoxRefresh() - * ========= - * Adds AJAX content control to a box. - * - * @Usage: $('#my-box').boxRefresh(options) - * or add [data-widget="box-refresh"] to the box element - * Pass any option as data-option="value" - */ -+function ($) { - 'use strict' - - var DataKey = 'lte.boxrefresh' - - var Default = { - source : '', - params : {}, - trigger : '.refresh-btn', - content : '.box-body', - loadInContent : true, - responseType : '', - overlayTemplate: '<div class="overlay"><div class="fa fa-refresh fa-spin"></div></div>', - onLoadStart : function () { - }, - onLoadDone : function (response) { - return response - } - } - - var Selector = { - data: '[data-widget="box-refresh"]' - } - - // BoxRefresh Class Definition - // ========================= - var BoxRefresh = function (element, options) { - this.element = element - this.options = options - this.$overlay = $(options.overlay) - - if (options.source === '') { - throw new Error('Source url was not defined. Please specify a url in your BoxRefresh source option.') - } - - this._setUpListeners() - this.load() - } - - BoxRefresh.prototype.load = function () { - this._addOverlay() - this.options.onLoadStart.call($(this)) - - $.get(this.options.source, this.options.params, function (response) { - if (this.options.loadInContent) { - $(this.options.content).html(response) - } - this.options.onLoadDone.call($(this), response) - this._removeOverlay() - }.bind(this), this.options.responseType !== '' && this.options.responseType) - } - - // Private - - BoxRefresh.prototype._setUpListeners = function () { - $(this.element).on('click', Selector.trigger, function (event) { - if (event) event.preventDefault() - this.load() - }.bind(this)) - } - - BoxRefresh.prototype._addOverlay = function () { - $(this.element).append(this.$overlay) - } - - BoxRefresh.prototype._removeOverlay = function () { - $(this.element).remove(this.$overlay) - } - - // Plugin Definition - // ================= - function Plugin(option) { - return this.each(function () { - var $this = $(this) - var data = $this.data(DataKey) - - if (!data) { - var options = $.extend({}, Default, $this.data(), typeof option == 'object' && option) - $this.data(DataKey, (data = new BoxRefresh($this, options))) - } - - if (typeof data == 'string') { - if (typeof data[option] == 'undefined') { - throw new Error('No method named ' + option) - } - data[option]() - } - }) - } - - var old = $.fn.boxRefresh - - $.fn.boxRefresh = Plugin - $.fn.boxRefresh.Constructor = BoxRefresh - - // No Conflict Mode - // ================ - $.fn.boxRefresh.noConflict = function () { - $.fn.boxRefresh = old - return this - } - - // BoxRefresh Data API - // ================= - $(window).on('load', function () { - $(Selector.data).each(function () { - Plugin.call($(this)) - }) - }) - -}(jQuery) - - -/* BoxWidget() - * ====== - * Adds box widget functions to boxes. - * - * @Usage: $('.my-box').boxWidget(options) - * This plugin auto activates on any element using the `.box` class - * Pass any option as data-option="value" - */ -+function ($) { - 'use strict' - - var DataKey = 'lte.boxwidget' - - var Default = { - animationSpeed : 500, - collapseTrigger: '[data-widget="collapse"]', - removeTrigger : '[data-widget="remove"]', - collapseIcon : 'fa-minus', - expandIcon : 'fa-plus', - removeIcon : 'fa-times' - } - - var Selector = { - data : '.box', - collapsed: '.collapsed-box', - body : '.box-body', - footer : '.box-footer', - tools : '.box-tools' - } - - var ClassName = { - collapsed: 'collapsed-box' - } - - var Event = { - collapsed: 'collapsed.boxwidget', - expanded : 'expanded.boxwidget', - removed : 'removed.boxwidget' - } - - // BoxWidget Class Definition - // ===================== - var BoxWidget = function (element, options) { - this.element = element - this.options = options - - this._setUpListeners() - } - - BoxWidget.prototype.toggle = function () { - var isOpen = !$(this.element).is(Selector.collapsed) - - if (isOpen) { - this.collapse() - } else { - this.expand() - } - } - - BoxWidget.prototype.expand = function () { - var expandedEvent = $.Event(Event.expanded) - var collapseIcon = this.options.collapseIcon - var expandIcon = this.options.expandIcon - - $(this.element).removeClass(ClassName.collapsed) - - $(this.element) - .find(Selector.tools) - .find('.' + expandIcon) - .removeClass(expandIcon) - .addClass(collapseIcon) - - $(this.element).find(Selector.body + ', ' + Selector.footer) - .slideDown(this.options.animationSpeed, function () { - $(this.element).trigger(expandedEvent) - }.bind(this)) - } - - BoxWidget.prototype.collapse = function () { - var collapsedEvent = $.Event(Event.collapsed) - var collapseIcon = this.options.collapseIcon - var expandIcon = this.options.expandIcon - - $(this.element) - .find(Selector.tools) - .find('.' + collapseIcon) - .removeClass(collapseIcon) - .addClass(expandIcon) - - $(this.element).find(Selector.body + ', ' + Selector.footer) - .slideUp(this.options.animationSpeed, function () { - $(this.element).addClass(ClassName.collapsed) - $(this.element).trigger(collapsedEvent) - }.bind(this)) - } - - BoxWidget.prototype.remove = function () { - var removedEvent = $.Event(Event.removed) - - $(this.element).slideUp(this.options.animationSpeed, function () { - $(this.element).trigger(removedEvent) - $(this.element).remove() - }.bind(this)) - } - - // Private - - BoxWidget.prototype._setUpListeners = function () { - var that = this - - $(this.element).on('click', this.options.collapseTrigger, function (event) { - if (event) event.preventDefault() - that.toggle() - }) - - $(this.element).on('click', this.options.removeTrigger, function (event) { - if (event) event.preventDefault() - that.remove() - }) - } - - // Plugin Definition - // ================= - function Plugin(option) { - return this.each(function () { - var $this = $(this) - var data = $this.data(DataKey) - - if (!data) { - var options = $.extend({}, Default, $this.data(), typeof option == 'object' && option) - $this.data(DataKey, (data = new BoxWidget($this, options))) - } - - if (typeof option == 'string') { - if (typeof data[option] == 'undefined') { - throw new Error('No method named ' + option) - } - data[option]() - } - }) - } - - var old = $.fn.boxWidget - - $.fn.boxWidget = Plugin - $.fn.boxWidget.Constructor = BoxWidget - - // No Conflict Mode - // ================ - $.fn.boxWidget.noConflict = function () { - $.fn.boxWidget = old - return this - } - - // BoxWidget Data API - // ================== - $(window).on('load', function () { - $(Selector.data).each(function () { - Plugin.call($(this)) - }) - }) - -}(jQuery) - - -/* ControlSidebar() - * =============== - * Toggles the state of the control sidebar - * - * @Usage: $('#control-sidebar-trigger').controlSidebar(options) - * or add [data-toggle="control-sidebar"] to the trigger - * Pass any option as data-option="value" - */ -+function ($) { - 'use strict' - - var DataKey = 'lte.controlsidebar' - - var Default = { - slide: true - } - - var Selector = { - sidebar: '.control-sidebar', - data : '[data-toggle="control-sidebar"]', - open : '.control-sidebar-open', - bg : '.control-sidebar-bg', - wrapper: '.wrapper', - content: '.content-wrapper', - boxed : '.layout-boxed' - } - - var ClassName = { - open : 'control-sidebar-open', - fixed: 'fixed' - } - - var Event = { - collapsed: 'collapsed.controlsidebar', - expanded : 'expanded.controlsidebar' - } - - // ControlSidebar Class Definition - // =============================== - var ControlSidebar = function (element, options) { - this.element = element - this.options = options - this.hasBindedResize = false - - this.init() - } - - ControlSidebar.prototype.init = function () { - // Add click listener if the element hasn't been - // initialized using the data API - if (!$(this.element).is(Selector.data)) { - $(this).on('click', this.toggle) - } - - this.fix() - $(window).resize(function () { - this.fix() - }.bind(this)) - } - - ControlSidebar.prototype.toggle = function (event) { - if (event) event.preventDefault() - - this.fix() - - if (!$(Selector.sidebar).is(Selector.open) && !$('body').is(Selector.open)) { - this.expand() - } else { - this.collapse() - } - } - - ControlSidebar.prototype.expand = function () { - if (!this.options.slide) { - $('body').addClass(ClassName.open) - } else { - $(Selector.sidebar).addClass(ClassName.open) - } - - $(this.element).trigger($.Event(Event.expanded)) - } - - ControlSidebar.prototype.collapse = function () { - $('body, ' + Selector.sidebar).removeClass(ClassName.open) - $(this.element).trigger($.Event(Event.collapsed)) - } - - ControlSidebar.prototype.fix = function () { - if ($('body').is(Selector.boxed)) { - this._fixForBoxed($(Selector.bg)) - } - } - - // Private - - ControlSidebar.prototype._fixForBoxed = function (bg) { - bg.css({ - position: 'absolute', - height : $(Selector.wrapper).height() - }) - } - - // Plugin Definition - // ================= - function Plugin(option) { - return this.each(function () { - var $this = $(this) - var data = $this.data(DataKey) - - if (!data) { - var options = $.extend({}, Default, $this.data(), typeof option == 'object' && option) - $this.data(DataKey, (data = new ControlSidebar($this, options))) - } - - if (typeof option == 'string') data.toggle() - }) - } - - var old = $.fn.controlSidebar - - $.fn.controlSidebar = Plugin - $.fn.controlSidebar.Constructor = ControlSidebar - - // No Conflict Mode - // ================ - $.fn.controlSidebar.noConflict = function () { - $.fn.controlSidebar = old - return this - } - - // ControlSidebar Data API - // ======================= - $(document).on('click', Selector.data, function (event) { - if (event) event.preventDefault() - Plugin.call($(this), 'toggle') - }) - -}(jQuery) - - -/* DirectChat() - * =============== - * Toggles the state of the control sidebar - * - * @Usage: $('#my-chat-box').directChat() - * or add [data-widget="direct-chat"] to the trigger - */ -+function ($) { - 'use strict' - - var DataKey = 'lte.directchat' - - var Selector = { - data: '[data-widget="chat-pane-toggle"]', - box : '.direct-chat' - } - - var ClassName = { - open: 'direct-chat-contacts-open' - } - - // DirectChat Class Definition - // =========================== - var DirectChat = function (element) { - this.element = element - } - - DirectChat.prototype.toggle = function ($trigger) { - $trigger.parents(Selector.box).first().toggleClass(ClassName.open) - } - - // Plugin Definition - // ================= - function Plugin(option) { - return this.each(function () { - var $this = $(this) - var data = $this.data(DataKey) - - if (!data) { - $this.data(DataKey, (data = new DirectChat($this))) - } - - if (typeof option == 'string') data.toggle($this) - }) - } - - var old = $.fn.directChat - - $.fn.directChat = Plugin - $.fn.directChat.Constructor = DirectChat - - // No Conflict Mode - // ================ - $.fn.directChat.noConflict = function () { - $.fn.directChat = old - return this - } - - // DirectChat Data API - // =================== - $(document).on('click', Selector.data, function (event) { - if (event) event.preventDefault() - Plugin.call($(this), 'toggle') - }) - -}(jQuery) - - -/* Layout() - * ======== - * Implements AdminLTE layout. - * Fixes the layout height in case min-height fails. - * - * @usage activated automatically upon window load. - * Configure any options by passing data-option="value" - * to the body tag. - */ -+function ($) { - 'use strict' - - var DataKey = 'lte.layout' - - var Default = { - slimscroll : true, - resetHeight: true - } - - var Selector = { - wrapper : '.wrapper', - contentWrapper: '.content-wrapper', - layoutBoxed : '.layout-boxed', - mainFooter : '.main-footer', - mainHeader : '.main-header', - sidebar : '.sidebar', - controlSidebar: '.control-sidebar', - fixed : '.fixed', - sidebarMenu : '.sidebar-menu', - logo : '.main-header .logo' - } - - var ClassName = { - fixed : 'fixed', - holdTransition: 'hold-transition' - } - - var Layout = function (options) { - this.options = options - this.bindedResize = false - this.activate() - } - - Layout.prototype.activate = function () { - this.fix() - this.fixSidebar() - - $('body').removeClass(ClassName.holdTransition) - - if (this.options.resetHeight) { - $('body, html, ' + Selector.wrapper).css({ - 'height' : 'auto', - 'min-height': '100%' - }) - } - - if (!this.bindedResize) { - $(window).resize(function () { - this.fix() - this.fixSidebar() - - $(Selector.logo + ', ' + Selector.sidebar).one('webkitTransitionEnd otransitionend oTransitionEnd msTransitionEnd transitionend', function () { - this.fix() - this.fixSidebar() - }.bind(this)) - }.bind(this)) - - this.bindedResize = true - } - - $(Selector.sidebarMenu).on('expanded.tree', function () { - this.fix() - this.fixSidebar() - }.bind(this)) - - $(Selector.sidebarMenu).on('collapsed.tree', function () { - this.fix() - this.fixSidebar() - }.bind(this)) - } - - Layout.prototype.fix = function () { - // Remove overflow from .wrapper if layout-boxed exists - $(Selector.layoutBoxed + ' > ' + Selector.wrapper).css('overflow', 'hidden') - - // Get window height and the wrapper height - var footerHeight = $(Selector.mainFooter).outerHeight() || 0 - var neg = $(Selector.mainHeader).outerHeight() + footerHeight - var windowHeight = $(window).height() - var sidebarHeight = $(Selector.sidebar).height() || 0 - - // Set the min-height of the content and sidebar based on - // the height of the document. - if ($('body').hasClass(ClassName.fixed)) { - $(Selector.contentWrapper).css('min-height', windowHeight - footerHeight) - } else { - var postSetHeight - - if (windowHeight >= sidebarHeight) { - $(Selector.contentWrapper).css('min-height', windowHeight - neg) - postSetHeight = windowHeight - neg - } else { - $(Selector.contentWrapper).css('min-height', sidebarHeight) - postSetHeight = sidebarHeight - } - - // Fix for the control sidebar height - var $controlSidebar = $(Selector.controlSidebar) - if (typeof $controlSidebar !== 'undefined') { - if ($controlSidebar.height() > postSetHeight) - $(Selector.contentWrapper).css('min-height', $controlSidebar.height()) - } - } - } - - Layout.prototype.fixSidebar = function () { - // Make sure the body tag has the .fixed class - if (!$('body').hasClass(ClassName.fixed)) { - if (typeof $.fn.slimScroll !== 'undefined') { - $(Selector.sidebar).slimScroll({ destroy: true }).height('auto') - } - return - } - - // Enable slimscroll for fixed layout - if (this.options.slimscroll) { - if (typeof $.fn.slimScroll !== 'undefined') { - // Destroy if it exists - // $(Selector.sidebar).slimScroll({ destroy: true }).height('auto') - - // Add slimscroll - $(Selector.sidebar).slimScroll({ - height: ($(window).height() - $(Selector.mainHeader).height()) + 'px', - color : 'rgba(0,0,0,0.2)', - size : '3px' - }) - } - } - } - - // Plugin Definition - // ================= - function Plugin(option) { - return this.each(function () { - var $this = $(this) - var data = $this.data(DataKey) - - if (!data) { - var options = $.extend({}, Default, $this.data(), typeof option === 'object' && option) - $this.data(DataKey, (data = new Layout(options))) - } - - if (typeof option === 'string') { - if (typeof data[option] === 'undefined') { - throw new Error('No method named ' + option) - } - data[option]() - } - }) - } - - var old = $.fn.layout - - $.fn.layout = Plugin - $.fn.layout.Constuctor = Layout - - // No conflict mode - // ================ - $.fn.layout.noConflict = function () { - $.fn.layout = old - return this - } - - // Layout DATA-API - // =============== - $(window).on('load', function () { - Plugin.call($('body')) - }) -}(jQuery) - - -/* PushMenu() - * ========== - * Adds the push menu functionality to the sidebar. - * - * @usage: $('.btn').pushMenu(options) - * or add [data-toggle="push-menu"] to any button - * Pass any option as data-option="value" - */ -+function ($) { - 'use strict' - - var DataKey = 'lte.pushmenu' - - var Default = { - collapseScreenSize : 767, - expandOnHover : false, - expandTransitionDelay: 200 - } - - var Selector = { - collapsed : '.sidebar-collapse', - open : '.sidebar-open', - mainSidebar : '.main-sidebar', - contentWrapper: '.content-wrapper', - searchInput : '.sidebar-form .form-control', - button : '[data-toggle="push-menu"]', - mini : '.sidebar-mini', - expanded : '.sidebar-expanded-on-hover', - layoutFixed : '.fixed' - } - - var ClassName = { - collapsed : 'sidebar-collapse', - open : 'sidebar-open', - mini : 'sidebar-mini', - expanded : 'sidebar-expanded-on-hover', - expandFeature: 'sidebar-mini-expand-feature', - layoutFixed : 'fixed' - } - - var Event = { - expanded : 'expanded.pushMenu', - collapsed: 'collapsed.pushMenu' - } - - // PushMenu Class Definition - // ========================= - var PushMenu = function (options) { - this.options = options - this.init() - } - - PushMenu.prototype.init = function () { - if (this.options.expandOnHover - || ($('body').is(Selector.mini + Selector.layoutFixed))) { - this.expandOnHover() - $('body').addClass(ClassName.expandFeature) - } - - $(Selector.contentWrapper).click(function () { - // Enable hide menu when clicking on the content-wrapper on small screens - if ($(window).width() <= this.options.collapseScreenSize && $('body').hasClass(ClassName.open)) { - this.close() - } - }.bind(this)) - - // __Fix for android devices - $(Selector.searchInput).click(function (e) { - e.stopPropagation() - }) - } - - PushMenu.prototype.toggle = function () { - var windowWidth = $(window).width() - var isOpen = !$('body').hasClass(ClassName.collapsed) - - if (windowWidth <= this.options.collapseScreenSize) { - isOpen = $('body').hasClass(ClassName.open) - } - - if (!isOpen) { - this.open() - } else { - this.close() - } - } - - PushMenu.prototype.open = function () { - var windowWidth = $(window).width() - - if (windowWidth > this.options.collapseScreenSize) { - $('body').removeClass(ClassName.collapsed) - .trigger($.Event(Event.expanded)) - } - else { - $('body').addClass(ClassName.open) - .trigger($.Event(Event.expanded)) - } - } - - PushMenu.prototype.close = function () { - var windowWidth = $(window).width() - if (windowWidth > this.options.collapseScreenSize) { - $('body').addClass(ClassName.collapsed) - .trigger($.Event(Event.collapsed)) - } else { - $('body').removeClass(ClassName.open + ' ' + ClassName.collapsed) - .trigger($.Event(Event.collapsed)) - } - } - - PushMenu.prototype.expandOnHover = function () { - $(Selector.mainSidebar).hover(function () { - if ($('body').is(Selector.mini + Selector.collapsed) - && $(window).width() > this.options.collapseScreenSize) { - this.expand() - } - }.bind(this), function () { - if ($('body').is(Selector.expanded)) { - this.collapse() - } - }.bind(this)) - } - - PushMenu.prototype.expand = function () { - setTimeout(function () { - $('body').removeClass(ClassName.collapsed) - .addClass(ClassName.expanded) - }, this.options.expandTransitionDelay) - } - - PushMenu.prototype.collapse = function () { - setTimeout(function () { - $('body').removeClass(ClassName.expanded) - .addClass(ClassName.collapsed) - }, this.options.expandTransitionDelay) - } - - // PushMenu Plugin Definition - // ========================== - function Plugin(option) { - return this.each(function () { - var $this = $(this) - var data = $this.data(DataKey) - - if (!data) { - var options = $.extend({}, Default, $this.data(), typeof option == 'object' && option) - $this.data(DataKey, (data = new PushMenu(options))) - } - - if (option === 'toggle') data.toggle() - }) - } - - var old = $.fn.pushMenu - - $.fn.pushMenu = Plugin - $.fn.pushMenu.Constructor = PushMenu - - // No Conflict Mode - // ================ - $.fn.pushMenu.noConflict = function () { - $.fn.pushMenu = old - return this - } - - // Data API - // ======== - $(document).on('click', Selector.button, function (e) { - e.preventDefault() - Plugin.call($(this), 'toggle') - }) - $(window).on('load', function () { - Plugin.call($(Selector.button)) - }) -}(jQuery) - - -/* TodoList() - * ========= - * Converts a list into a todoList. - * - * @Usage: $('.my-list').todoList(options) - * or add [data-widget="todo-list"] to the ul element - * Pass any option as data-option="value" - */ -+function ($) { - 'use strict' - - var DataKey = 'lte.todolist' - - var Default = { - onCheck : function (item) { - return item - }, - onUnCheck: function (item) { - return item - } - } - - var Selector = { - data: '[data-widget="todo-list"]' - } - - var ClassName = { - done: 'done' - } - - // TodoList Class Definition - // ========================= - var TodoList = function (element, options) { - this.element = element - this.options = options - - this._setUpListeners() - } - - TodoList.prototype.toggle = function (item) { - item.parents(Selector.li).first().toggleClass(ClassName.done) - if (!item.prop('checked')) { - this.unCheck(item) - return - } - - this.check(item) - } - - TodoList.prototype.check = function (item) { - this.options.onCheck.call(item) - } - - TodoList.prototype.unCheck = function (item) { - this.options.onUnCheck.call(item) - } - - // Private - - TodoList.prototype._setUpListeners = function () { - var that = this - $(this.element).on('change ifChanged', 'input:checkbox', function () { - that.toggle($(this)) - }) - } - - // Plugin Definition - // ================= - function Plugin(option) { - return this.each(function () { - var $this = $(this) - var data = $this.data(DataKey) - - if (!data) { - var options = $.extend({}, Default, $this.data(), typeof option == 'object' && option) - $this.data(DataKey, (data = new TodoList($this, options))) - } - - if (typeof data == 'string') { - if (typeof data[option] == 'undefined') { - throw new Error('No method named ' + option) - } - data[option]() - } - }) - } - - var old = $.fn.todoList - - $.fn.todoList = Plugin - $.fn.todoList.Constructor = TodoList - - // No Conflict Mode - // ================ - $.fn.todoList.noConflict = function () { - $.fn.todoList = old - return this - } - - // TodoList Data API - // ================= - $(window).on('load', function () { - $(Selector.data).each(function () { - Plugin.call($(this)) - }) - }) - -}(jQuery) - - -/* Tree() - * ====== - * Converts a nested list into a multilevel - * tree view menu. - * - * @Usage: $('.my-menu').tree(options) - * or add [data-widget="tree"] to the ul element - * Pass any option as data-option="value" - */ -+function ($) { - 'use strict' - - var DataKey = 'lte.tree' - - var Default = { - animationSpeed: 500, - accordion : true, - followLink : false, - trigger : '.treeview a' - } - - var Selector = { - tree : '.tree', - treeview : '.treeview', - treeviewMenu: '.treeview-menu', - open : '.menu-open, .active', - li : 'li', - data : '[data-widget="tree"]', - active : '.active' - } - - var ClassName = { - open: 'menu-open', - tree: 'tree' - } - - var Event = { - collapsed: 'collapsed.tree', - expanded : 'expanded.tree' - } - - // Tree Class Definition - // ===================== - var Tree = function (element, options) { - this.element = element - this.options = options - - $(this.element).addClass(ClassName.tree) - - $(Selector.treeview + Selector.active, this.element).addClass(ClassName.open) - - this._setUpListeners() - } - - Tree.prototype.toggle = function (link, event) { - var treeviewMenu = link.next(Selector.treeviewMenu) - var parentLi = link.parent() - var isOpen = parentLi.hasClass(ClassName.open) - - if (!parentLi.is(Selector.treeview)) { - return - } - - if (!this.options.followLink || link.attr('href') === '#') { - event.preventDefault() - } - - if (isOpen) { - this.collapse(treeviewMenu, parentLi) - } else { - this.expand(treeviewMenu, parentLi) - } - } - - Tree.prototype.expand = function (tree, parent) { - var expandedEvent = $.Event(Event.expanded) - - if (this.options.accordion) { - var openMenuLi = parent.siblings(Selector.open) - var openTree = openMenuLi.children(Selector.treeviewMenu) - this.collapse(openTree, openMenuLi) - } - - parent.addClass(ClassName.open) - tree.slideDown(this.options.animationSpeed, function () { - $(this.element).trigger(expandedEvent) - }.bind(this)) - } - - Tree.prototype.collapse = function (tree, parentLi) { - var collapsedEvent = $.Event(Event.collapsed) - - tree.find(Selector.open).removeClass(ClassName.open) - parentLi.removeClass(ClassName.open) - tree.slideUp(this.options.animationSpeed, function () { - tree.find(Selector.open + ' > ' + Selector.treeview).slideUp() - $(this.element).trigger(collapsedEvent) - }.bind(this)) - } - - // Private - - Tree.prototype._setUpListeners = function () { - var that = this - - $(this.element).on('click', this.options.trigger, function (event) { - that.toggle($(this), event) - }) - } - - // Plugin Definition - // ================= - function Plugin(option) { - return this.each(function () { - var $this = $(this) - var data = $this.data(DataKey) - - if (!data) { - var options = $.extend({}, Default, $this.data(), typeof option == 'object' && option) - $this.data(DataKey, new Tree($this, options)) - } - }) - } - - var old = $.fn.tree - - $.fn.tree = Plugin - $.fn.tree.Constructor = Tree - - // No Conflict Mode - // ================ - $.fn.tree.noConflict = function () { - $.fn.tree = old - return this - } - - // Tree Data API - // ============= - $(window).on('load', function () { - $(Selector.data).each(function () { - Plugin.call($(this)) - }) - }) - -}(jQuery) diff --git a/admin/dist/js/adminlte.min.js b/admin/dist/js/adminlte.min.js deleted file mode 100644 index d1572d6..0000000 --- a/admin/dist/js/adminlte.min.js +++ /dev/null @@ -1,14 +0,0 @@ -/*! AdminLTE app.js - * ================ - * Main JS application file for AdminLTE v2. This file - * should be included in all pages. It controls some layout - * options and implements exclusive AdminLTE plugins. - * - * @Author Almsaeed Studio - * @Support <https://www.almsaeedstudio.com> - * @Email <abdullah@almsaeedstudio.com> - * @version 2.4.2 - * @repository git://github.com/almasaeed2010/AdminLTE.git - * @license MIT <http://opensource.org/licenses/MIT> - */ -if("undefined"==typeof jQuery)throw new Error("AdminLTE requires jQuery");+function(a){"use strict";function b(b){return this.each(function(){var e=a(this),g=e.data(c);if(!g){var h=a.extend({},d,e.data(),"object"==typeof b&&b);e.data(c,g=new f(e,h))}if("string"==typeof g){if(void 0===g[b])throw new Error("No method named "+b);g[b]()}})}var c="lte.boxrefresh",d={source:"",params:{},trigger:".refresh-btn",content:".box-body",loadInContent:!0,responseType:"",overlayTemplate:'<div class="overlay"><div class="fa fa-refresh fa-spin"></div></div>',onLoadStart:function(){},onLoadDone:function(a){return a}},e={data:'[data-widget="box-refresh"]'},f=function(b,c){if(this.element=b,this.options=c,this.$overlay=a(c.overlay),""===c.source)throw new Error("Source url was not defined. Please specify a url in your BoxRefresh source option.");this._setUpListeners(),this.load()};f.prototype.load=function(){this._addOverlay(),this.options.onLoadStart.call(a(this)),a.get(this.options.source,this.options.params,function(b){this.options.loadInContent&&a(this.options.content).html(b),this.options.onLoadDone.call(a(this),b),this._removeOverlay()}.bind(this),""!==this.options.responseType&&this.options.responseType)},f.prototype._setUpListeners=function(){a(this.element).on("click",e.trigger,function(a){a&&a.preventDefault(),this.load()}.bind(this))},f.prototype._addOverlay=function(){a(this.element).append(this.$overlay)},f.prototype._removeOverlay=function(){a(this.element).remove(this.$overlay)};var g=a.fn.boxRefresh;a.fn.boxRefresh=b,a.fn.boxRefresh.Constructor=f,a.fn.boxRefresh.noConflict=function(){return a.fn.boxRefresh=g,this},a(window).on("load",function(){a(e.data).each(function(){b.call(a(this))})})}(jQuery),function(a){"use strict";function b(b){return this.each(function(){var e=a(this),f=e.data(c);if(!f){var g=a.extend({},d,e.data(),"object"==typeof b&&b);e.data(c,f=new h(e,g))}if("string"==typeof b){if(void 0===f[b])throw new Error("No method named "+b);f[b]()}})}var c="lte.boxwidget",d={animationSpeed:500,collapseTrigger:'[data-widget="collapse"]',removeTrigger:'[data-widget="remove"]',collapseIcon:"fa-minus",expandIcon:"fa-plus",removeIcon:"fa-times"},e={data:".box",collapsed:".collapsed-box",header:".box-header",body:".box-body",footer:".box-footer",tools:".box-tools"},f={collapsed:"collapsed-box"},g={collapsed:"collapsed.boxwidget",expanded:"expanded.boxwidget",removed:"removed.boxwidget"},h=function(a,b){this.element=a,this.options=b,this._setUpListeners()};h.prototype.toggle=function(){a(this.element).is(e.collapsed)?this.expand():this.collapse()},h.prototype.expand=function(){var b=a.Event(g.expanded),c=this.options.collapseIcon,d=this.options.expandIcon;a(this.element).removeClass(f.collapsed),a(this.element).children(e.header+", "+e.body+", "+e.footer).children(e.tools).find("."+d).removeClass(d).addClass(c),a(this.element).children(e.body+", "+e.footer).slideDown(this.options.animationSpeed,function(){a(this.element).trigger(b)}.bind(this))},h.prototype.collapse=function(){var b=a.Event(g.collapsed),c=this.options.collapseIcon,d=this.options.expandIcon;a(this.element).children(e.header+", "+e.body+", "+e.footer).children(e.tools).find("."+c).removeClass(c).addClass(d),a(this.element).children(e.body+", "+e.footer).slideUp(this.options.animationSpeed,function(){a(this.element).addClass(f.collapsed),a(this.element).trigger(b)}.bind(this))},h.prototype.remove=function(){var b=a.Event(g.removed);a(this.element).slideUp(this.options.animationSpeed,function(){a(this.element).trigger(b),a(this.element).remove()}.bind(this))},h.prototype._setUpListeners=function(){var b=this;a(this.element).on("click",this.options.collapseTrigger,function(c){return c&&c.preventDefault(),b.toggle(a(this)),!1}),a(this.element).on("click",this.options.removeTrigger,function(c){return c&&c.preventDefault(),b.remove(a(this)),!1})};var i=a.fn.boxWidget;a.fn.boxWidget=b,a.fn.boxWidget.Constructor=h,a.fn.boxWidget.noConflict=function(){return a.fn.boxWidget=i,this},a(window).on("load",function(){a(e.data).each(function(){b.call(a(this))})})}(jQuery),function(a){"use strict";function b(b){return this.each(function(){var e=a(this),f=e.data(c);if(!f){var g=a.extend({},d,e.data(),"object"==typeof b&&b);e.data(c,f=new h(e,g))}"string"==typeof b&&f.toggle()})}var c="lte.controlsidebar",d={slide:!0},e={sidebar:".control-sidebar",data:'[data-toggle="control-sidebar"]',open:".control-sidebar-open",bg:".control-sidebar-bg",wrapper:".wrapper",content:".content-wrapper",boxed:".layout-boxed"},f={open:"control-sidebar-open",fixed:"fixed"},g={collapsed:"collapsed.controlsidebar",expanded:"expanded.controlsidebar"},h=function(a,b){this.element=a,this.options=b,this.hasBindedResize=!1,this.init()};h.prototype.init=function(){a(this.element).is(e.data)||a(this).on("click",this.toggle),this.fix(),a(window).resize(function(){this.fix()}.bind(this))},h.prototype.toggle=function(b){b&&b.preventDefault(),this.fix(),a(e.sidebar).is(e.open)||a("body").is(e.open)?this.collapse():this.expand()},h.prototype.expand=function(){this.options.slide?a(e.sidebar).addClass(f.open):a("body").addClass(f.open),a(this.element).trigger(a.Event(g.expanded))},h.prototype.collapse=function(){a("body, "+e.sidebar).removeClass(f.open),a(this.element).trigger(a.Event(g.collapsed))},h.prototype.fix=function(){a("body").is(e.boxed)&&this._fixForBoxed(a(e.bg))},h.prototype._fixForBoxed=function(b){b.css({position:"absolute",height:a(e.wrapper).height()})};var i=a.fn.controlSidebar;a.fn.controlSidebar=b,a.fn.controlSidebar.Constructor=h,a.fn.controlSidebar.noConflict=function(){return a.fn.controlSidebar=i,this},a(document).on("click",e.data,function(c){c&&c.preventDefault(),b.call(a(this),"toggle")})}(jQuery),function(a){"use strict";function b(b){return this.each(function(){var d=a(this),e=d.data(c);e||d.data(c,e=new f(d)),"string"==typeof b&&e.toggle(d)})}var c="lte.directchat",d={data:'[data-widget="chat-pane-toggle"]',box:".direct-chat"},e={open:"direct-chat-contacts-open"},f=function(a){this.element=a};f.prototype.toggle=function(a){a.parents(d.box).first().toggleClass(e.open)};var g=a.fn.directChat;a.fn.directChat=b,a.fn.directChat.Constructor=f,a.fn.directChat.noConflict=function(){return a.fn.directChat=g,this},a(document).on("click",d.data,function(c){c&&c.preventDefault(),b.call(a(this),"toggle")})}(jQuery),function(a){"use strict";function b(b){return this.each(function(){var e=a(this),f=e.data(c);if(!f){var h=a.extend({},d,e.data(),"object"==typeof b&&b);e.data(c,f=new g(h))}if("string"==typeof b){if(void 0===f[b])throw new Error("No method named "+b);f[b]()}})}var c="lte.layout",d={slimscroll:!0,resetHeight:!0},e={wrapper:".wrapper",contentWrapper:".content-wrapper",layoutBoxed:".layout-boxed",mainFooter:".main-footer",mainHeader:".main-header",sidebar:".sidebar",controlSidebar:".control-sidebar",fixed:".fixed",sidebarMenu:".sidebar-menu",logo:".main-header .logo"},f={fixed:"fixed",holdTransition:"hold-transition"},g=function(a){this.options=a,this.bindedResize=!1,this.activate()};g.prototype.activate=function(){this.fix(),this.fixSidebar(),a("body").removeClass(f.holdTransition),this.options.resetHeight&&a("body, html, "+e.wrapper).css({height:"auto","min-height":"100%"}),this.bindedResize||(a(window).resize(function(){this.fix(),this.fixSidebar(),a(e.logo+", "+e.sidebar).one("webkitTransitionEnd otransitionend oTransitionEnd msTransitionEnd transitionend",function(){this.fix(),this.fixSidebar()}.bind(this))}.bind(this)),this.bindedResize=!0),a(e.sidebarMenu).on("expanded.tree",function(){this.fix(),this.fixSidebar()}.bind(this)),a(e.sidebarMenu).on("collapsed.tree",function(){this.fix(),this.fixSidebar()}.bind(this))},g.prototype.fix=function(){a(e.layoutBoxed+" > "+e.wrapper).css("overflow","hidden");var b=a(e.mainFooter).outerHeight()||0,c=a(e.mainHeader).outerHeight()+b,d=a(window).height(),g=a(e.sidebar).height()||0;if(a("body").hasClass(f.fixed))a(e.contentWrapper).css("min-height",d-b);else{var h;d>=g?(a(e.contentWrapper).css("min-height",d-c),h=d-c):(a(e.contentWrapper).css("min-height",g),h=g);var i=a(e.controlSidebar);void 0!==i&&i.height()>h&&a(e.contentWrapper).css("min-height",i.height())}},g.prototype.fixSidebar=function(){if(!a("body").hasClass(f.fixed))return void(void 0!==a.fn.slimScroll&&a(e.sidebar).slimScroll({destroy:!0}).height("auto"));this.options.slimscroll&&void 0!==a.fn.slimScroll&&a(e.sidebar).slimScroll({height:a(window).height()-a(e.mainHeader).height()+"px"})};var h=a.fn.layout;a.fn.layout=b,a.fn.layout.Constuctor=g,a.fn.layout.noConflict=function(){return a.fn.layout=h,this},a(window).on("load",function(){b.call(a("body"))})}(jQuery),function(a){"use strict";function b(b){return this.each(function(){var e=a(this),f=e.data(c);if(!f){var g=a.extend({},d,e.data(),"object"==typeof b&&b);e.data(c,f=new h(g))}"toggle"===b&&f.toggle()})}var c="lte.pushmenu",d={collapseScreenSize:767,expandOnHover:!1,expandTransitionDelay:200},e={collapsed:".sidebar-collapse",open:".sidebar-open",mainSidebar:".main-sidebar",contentWrapper:".content-wrapper",searchInput:".sidebar-form .form-control",button:'[data-toggle="push-menu"]',mini:".sidebar-mini",expanded:".sidebar-expanded-on-hover",layoutFixed:".fixed"},f={collapsed:"sidebar-collapse",open:"sidebar-open",mini:"sidebar-mini",expanded:"sidebar-expanded-on-hover",expandFeature:"sidebar-mini-expand-feature",layoutFixed:"fixed"},g={expanded:"expanded.pushMenu",collapsed:"collapsed.pushMenu"},h=function(a){this.options=a,this.init()};h.prototype.init=function(){(this.options.expandOnHover||a("body").is(e.mini+e.layoutFixed))&&(this.expandOnHover(),a("body").addClass(f.expandFeature)),a(e.contentWrapper).click(function(){a(window).width()<=this.options.collapseScreenSize&&a("body").hasClass(f.open)&&this.close()}.bind(this)),a(e.searchInput).click(function(a){a.stopPropagation()})},h.prototype.toggle=function(){var b=a(window).width(),c=!a("body").hasClass(f.collapsed);b<=this.options.collapseScreenSize&&(c=a("body").hasClass(f.open)),c?this.close():this.open()},h.prototype.open=function(){a(window).width()>this.options.collapseScreenSize?a("body").removeClass(f.collapsed).trigger(a.Event(g.expanded)):a("body").addClass(f.open).trigger(a.Event(g.expanded))},h.prototype.close=function(){a(window).width()>this.options.collapseScreenSize?a("body").addClass(f.collapsed).trigger(a.Event(g.collapsed)):a("body").removeClass(f.open+" "+f.collapsed).trigger(a.Event(g.collapsed))},h.prototype.expandOnHover=function(){a(e.mainSidebar).hover(function(){a("body").is(e.mini+e.collapsed)&&a(window).width()>this.options.collapseScreenSize&&this.expand()}.bind(this),function(){a("body").is(e.expanded)&&this.collapse()}.bind(this))},h.prototype.expand=function(){setTimeout(function(){a("body").removeClass(f.collapsed).addClass(f.expanded)},this.options.expandTransitionDelay)},h.prototype.collapse=function(){setTimeout(function(){a("body").removeClass(f.expanded).addClass(f.collapsed)},this.options.expandTransitionDelay)};var i=a.fn.pushMenu;a.fn.pushMenu=b,a.fn.pushMenu.Constructor=h,a.fn.pushMenu.noConflict=function(){return a.fn.pushMenu=i,this},a(document).on("click",e.button,function(c){c.preventDefault(),b.call(a(this),"toggle")}),a(window).on("load",function(){b.call(a(e.button))})}(jQuery),function(a){"use strict";function b(b){return this.each(function(){var e=a(this),f=e.data(c);if(!f){var h=a.extend({},d,e.data(),"object"==typeof b&&b);e.data(c,f=new g(e,h))}if("string"==typeof f){if(void 0===f[b])throw new Error("No method named "+b);f[b]()}})}var c="lte.todolist",d={onCheck:function(a){return a},onUnCheck:function(a){return a}},e={data:'[data-widget="todo-list"]'},f={done:"done"},g=function(a,b){this.element=a,this.options=b,this._setUpListeners()};g.prototype.toggle=function(a){if(a.parents(e.li).first().toggleClass(f.done),!a.prop("checked"))return void this.unCheck(a);this.check(a)},g.prototype.check=function(a){this.options.onCheck.call(a)},g.prototype.unCheck=function(a){this.options.onUnCheck.call(a)},g.prototype._setUpListeners=function(){var b=this;a(this.element).on("change ifChanged","input:checkbox",function(){b.toggle(a(this))})};var h=a.fn.todoList;a.fn.todoList=b,a.fn.todoList.Constructor=g,a.fn.todoList.noConflict=function(){return a.fn.todoList=h,this},a(window).on("load",function(){a(e.data).each(function(){b.call(a(this))})})}(jQuery),function(a){"use strict";function b(b){return this.each(function(){var e=a(this);if(!e.data(c)){var f=a.extend({},d,e.data(),"object"==typeof b&&b);e.data(c,new h(e,f))}})}var c="lte.tree",d={animationSpeed:500,accordion:!0,followLink:!1,trigger:".treeview a"},e={tree:".tree",treeview:".treeview",treeviewMenu:".treeview-menu",open:".menu-open, .active",li:"li",data:'[data-widget="tree"]',active:".active"},f={open:"menu-open",tree:"tree"},g={collapsed:"collapsed.tree",expanded:"expanded.tree"},h=function(b,c){this.element=b,this.options=c,a(this.element).addClass(f.tree),a(e.treeview+e.active,this.element).addClass(f.open),this._setUpListeners()};h.prototype.toggle=function(a,b){var c=a.next(e.treeviewMenu),d=a.parent(),g=d.hasClass(f.open);d.is(e.treeview)&&(this.options.followLink&&"#"!==a.attr("href")||b.preventDefault(),g?this.collapse(c,d):this.expand(c,d))},h.prototype.expand=function(b,c){var d=a.Event(g.expanded);if(this.options.accordion){var h=c.siblings(e.open),i=h.children(e.treeviewMenu);this.collapse(i,h)}c.addClass(f.open),b.slideDown(this.options.animationSpeed,function(){a(this.element).trigger(d)}.bind(this))},h.prototype.collapse=function(b,c){var d=a.Event(g.collapsed);b.find(e.open).removeClass(f.open),c.removeClass(f.open),b.slideUp(this.options.animationSpeed,function(){b.find(e.open+" > "+e.treeview).slideUp(),a(this.element).trigger(d)}.bind(this))},h.prototype._setUpListeners=function(){var b=this;a(this.element).on("click",this.options.trigger,function(c){b.toggle(a(this),c)})};var i=a.fn.tree;a.fn.tree=b,a.fn.tree.Constructor=h,a.fn.tree.noConflict=function(){return a.fn.tree=i,this},a(window).on("load",function(){a(e.data).each(function(){b.call(a(this))})})}(jQuery); \ No newline at end of file diff --git a/admin/index.php b/admin/index.php index 331fb47..7b0a7f3 100644 --- a/admin/index.php +++ b/admin/index.php @@ -76,10 +76,9 @@ <title><?php echo _APP_NAME_; ?> Admin | <?php echo __('Login'); ?></title> <!-- Tell the browser to be responsive to screen width --> <meta content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no" name="viewport"> - <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0-alpha.6/css/bootstrap.min.css" integrity="sha384-rwoIResjU2yc3z8GV/NPeZWAv56rSmLldC3R/AZzGRnGxQQKnKkoFVhFQhNUwEyJ" crossorigin="anonymous" /> <link rel="stylesheet" href="<?php echo _FOLDER_URL_; ?>css/main.css"> <!-- Theme style --> - <link rel="stylesheet" href="dist/css/AdminLTE.min.css"> + <link rel="stylesheet" href="<?php echo _FOLDER_URL_; ?>vendor/almasaeed2010/adminlte/dist/css/AdminLTE.min.css"> <!-- HTML5 Shim and Respond.js IE8 support of HTML5 elements and media queries --> <!-- WARNING: Respond.js doesn't work if you view the page via file:// --> @@ -119,8 +118,7 @@ </div> <!-- /.login-box --> <script type="text/javascript" src="<?php echo _FOLDER_URL_; ?>js/jquery.min.js"></script> - <script src="https://cdnjs.cloudflare.com/ajax/libs/tether/1.4.0/js/tether.min.js" integrity="sha384-DztdAPBWPRXSA/3eYEEUWrWCy7G5KFbe8fFjk5JAIxUYHKkDx6Qin1DkWx51bBrb" crossorigin="anonymous"></script> - <script src="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0-alpha.6/js/bootstrap.min.js" integrity="sha384-vBWWzlZJ8ea9aCX4pEW3rVHjgjt7zpkNpZk+02D9phzyeVkE+jo0ieGizqPLForn" crossorigin="anonymous"></script> + <script src="<?php echo _FOLDER_URL_; ?>vendor/almasaeed2010/adminlte/bower_components/bootstrap/dist/js/bootstrap.min.js"></script> </body> </html> <?php diff --git a/admin/js/jquery-ui.min.js b/admin/js/jquery-ui.min.js deleted file mode 100644 index cdf06c2..0000000 --- a/admin/js/jquery-ui.min.js +++ /dev/null @@ -1,13 +0,0 @@ -/*! jQuery UI - v1.11.2 - 2014-10-16 - * http://jqueryui.com - * Includes: core.js, widget.js, mouse.js, position.js, accordion.js, autocomplete.js, button.js, datepicker.js, dialog.js, draggable.js, droppable.js, effect.js, effect-blind.js, effect-bounce.js, effect-clip.js, effect-drop.js, effect-explode.js, effect-fade.js, effect-fold.js, effect-highlight.js, effect-puff.js, effect-pulsate.js, effect-scale.js, effect-shake.js, effect-size.js, effect-slide.js, effect-transfer.js, menu.js, progressbar.js, resizable.js, selectable.js, selectmenu.js, slider.js, sortable.js, spinner.js, tabs.js, tooltip.js - * Copyright 2014 jQuery Foundation and other contributors; Licensed MIT */ - -(function(e){"function"==typeof define&&define.amd?define(["jquery"],e):e(jQuery)})(function(e){function t(t,s){var n,a,o,r=t.nodeName.toLowerCase();return"area"===r?(n=t.parentNode,a=n.name,t.href&&a&&"map"===n.nodeName.toLowerCase()?(o=e("img[usemap='#"+a+"']")[0],!!o&&i(o)):!1):(/input|select|textarea|button|object/.test(r)?!t.disabled:"a"===r?t.href||s:s)&&i(t)}function i(t){return e.expr.filters.visible(t)&&!e(t).parents().addBack().filter(function(){return"hidden"===e.css(this,"visibility")}).length}function s(e){for(var t,i;e.length&&e[0]!==document;){if(t=e.css("position"),("absolute"===t||"relative"===t||"fixed"===t)&&(i=parseInt(e.css("zIndex"),10),!isNaN(i)&&0!==i))return i;e=e.parent()}return 0}function n(){this._curInst=null,this._keyEvent=!1,this._disabledInputs=[],this._datepickerShowing=!1,this._inDialog=!1,this._mainDivId="ui-datepicker-div",this._inlineClass="ui-datepicker-inline",this._appendClass="ui-datepicker-append",this._triggerClass="ui-datepicker-trigger",this._dialogClass="ui-datepicker-dialog",this._disableClass="ui-datepicker-disabled",this._unselectableClass="ui-datepicker-unselectable",this._currentClass="ui-datepicker-current-day",this._dayOverClass="ui-datepicker-days-cell-over",this.regional=[],this.regional[""]={closeText:"Done",prevText:"Prev",nextText:"Next",currentText:"Today",monthNames:["January","February","March","April","May","June","July","August","September","October","November","December"],monthNamesShort:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],dayNames:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],dayNamesShort:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],dayNamesMin:["Su","Mo","Tu","We","Th","Fr","Sa"],weekHeader:"Wk",dateFormat:"mm/dd/yy",firstDay:0,isRTL:!1,showMonthAfterYear:!1,yearSuffix:""},this._defaults={showOn:"focus",showAnim:"fadeIn",showOptions:{},defaultDate:null,appendText:"",buttonText:"...",buttonImage:"",buttonImageOnly:!1,hideIfNoPrevNext:!1,navigationAsDateFormat:!1,gotoCurrent:!1,changeMonth:!1,changeYear:!1,yearRange:"c-10:c+10",showOtherMonths:!1,selectOtherMonths:!1,showWeek:!1,calculateWeek:this.iso8601Week,shortYearCutoff:"+10",minDate:null,maxDate:null,duration:"fast",beforeShowDay:null,beforeShow:null,onSelect:null,onChangeMonthYear:null,onClose:null,numberOfMonths:1,showCurrentAtPos:0,stepMonths:1,stepBigMonths:12,altField:"",altFormat:"",constrainInput:!0,showButtonPanel:!1,autoSize:!1,disabled:!1},e.extend(this._defaults,this.regional[""]),this.regional.en=e.extend(!0,{},this.regional[""]),this.regional["en-US"]=e.extend(!0,{},this.regional.en),this.dpDiv=a(e("<div id='"+this._mainDivId+"' class='ui-datepicker ui-widget ui-widget-content ui-helper-clearfix ui-corner-all'></div>"))}function a(t){var i="button, .ui-datepicker-prev, .ui-datepicker-next, .ui-datepicker-calendar td a";return t.delegate(i,"mouseout",function(){e(this).removeClass("ui-state-hover"),-1!==this.className.indexOf("ui-datepicker-prev")&&e(this).removeClass("ui-datepicker-prev-hover"),-1!==this.className.indexOf("ui-datepicker-next")&&e(this).removeClass("ui-datepicker-next-hover")}).delegate(i,"mouseover",o)}function o(){e.datepicker._isDisabledDatepicker(v.inline?v.dpDiv.parent()[0]:v.input[0])||(e(this).parents(".ui-datepicker-calendar").find("a").removeClass("ui-state-hover"),e(this).addClass("ui-state-hover"),-1!==this.className.indexOf("ui-datepicker-prev")&&e(this).addClass("ui-datepicker-prev-hover"),-1!==this.className.indexOf("ui-datepicker-next")&&e(this).addClass("ui-datepicker-next-hover"))}function r(t,i){e.extend(t,i);for(var s in i)null==i[s]&&(t[s]=i[s]);return t}function h(e){return function(){var t=this.element.val();e.apply(this,arguments),this._refresh(),t!==this.element.val()&&this._trigger("change")}}e.ui=e.ui||{},e.extend(e.ui,{version:"1.11.2",keyCode:{BACKSPACE:8,COMMA:188,DELETE:46,DOWN:40,END:35,ENTER:13,ESCAPE:27,HOME:36,LEFT:37,PAGE_DOWN:34,PAGE_UP:33,PERIOD:190,RIGHT:39,SPACE:32,TAB:9,UP:38}}),e.fn.extend({scrollParent:function(t){var i=this.css("position"),s="absolute"===i,n=t?/(auto|scroll|hidden)/:/(auto|scroll)/,a=this.parents().filter(function(){var t=e(this);return s&&"static"===t.css("position")?!1:n.test(t.css("overflow")+t.css("overflow-y")+t.css("overflow-x"))}).eq(0);return"fixed"!==i&&a.length?a:e(this[0].ownerDocument||document)},uniqueId:function(){var e=0;return function(){return this.each(function(){this.id||(this.id="ui-id-"+ ++e)})}}(),removeUniqueId:function(){return this.each(function(){/^ui-id-\d+$/.test(this.id)&&e(this).removeAttr("id")})}}),e.extend(e.expr[":"],{data:e.expr.createPseudo?e.expr.createPseudo(function(t){return function(i){return!!e.data(i,t)}}):function(t,i,s){return!!e.data(t,s[3])},focusable:function(i){return t(i,!isNaN(e.attr(i,"tabindex")))},tabbable:function(i){var s=e.attr(i,"tabindex"),n=isNaN(s);return(n||s>=0)&&t(i,!n)}}),e("<a>").outerWidth(1).jquery||e.each(["Width","Height"],function(t,i){function s(t,i,s,a){return e.each(n,function(){i-=parseFloat(e.css(t,"padding"+this))||0,s&&(i-=parseFloat(e.css(t,"border"+this+"Width"))||0),a&&(i-=parseFloat(e.css(t,"margin"+this))||0)}),i}var n="Width"===i?["Left","Right"]:["Top","Bottom"],a=i.toLowerCase(),o={innerWidth:e.fn.innerWidth,innerHeight:e.fn.innerHeight,outerWidth:e.fn.outerWidth,outerHeight:e.fn.outerHeight};e.fn["inner"+i]=function(t){return void 0===t?o["inner"+i].call(this):this.each(function(){e(this).css(a,s(this,t)+"px")})},e.fn["outer"+i]=function(t,n){return"number"!=typeof t?o["outer"+i].call(this,t):this.each(function(){e(this).css(a,s(this,t,!0,n)+"px")})}}),e.fn.addBack||(e.fn.addBack=function(e){return this.add(null==e?this.prevObject:this.prevObject.filter(e))}),e("<a>").data("a-b","a").removeData("a-b").data("a-b")&&(e.fn.removeData=function(t){return function(i){return arguments.length?t.call(this,e.camelCase(i)):t.call(this)}}(e.fn.removeData)),e.ui.ie=!!/msie [\w.]+/.exec(navigator.userAgent.toLowerCase()),e.fn.extend({focus:function(t){return function(i,s){return"number"==typeof i?this.each(function(){var t=this;setTimeout(function(){e(t).focus(),s&&s.call(t)},i)}):t.apply(this,arguments)}}(e.fn.focus),disableSelection:function(){var e="onselectstart"in document.createElement("div")?"selectstart":"mousedown";return function(){return this.bind(e+".ui-disableSelection",function(e){e.preventDefault()})}}(),enableSelection:function(){return this.unbind(".ui-disableSelection")},zIndex:function(t){if(void 0!==t)return this.css("zIndex",t);if(this.length)for(var i,s,n=e(this[0]);n.length&&n[0]!==document;){if(i=n.css("position"),("absolute"===i||"relative"===i||"fixed"===i)&&(s=parseInt(n.css("zIndex"),10),!isNaN(s)&&0!==s))return s;n=n.parent()}return 0}}),e.ui.plugin={add:function(t,i,s){var n,a=e.ui[t].prototype;for(n in s)a.plugins[n]=a.plugins[n]||[],a.plugins[n].push([i,s[n]])},call:function(e,t,i,s){var n,a=e.plugins[t];if(a&&(s||e.element[0].parentNode&&11!==e.element[0].parentNode.nodeType))for(n=0;a.length>n;n++)e.options[a[n][0]]&&a[n][1].apply(e.element,i)}};var l=0,u=Array.prototype.slice;e.cleanData=function(t){return function(i){var s,n,a;for(a=0;null!=(n=i[a]);a++)try{s=e._data(n,"events"),s&&s.remove&&e(n).triggerHandler("remove")}catch(o){}t(i)}}(e.cleanData),e.widget=function(t,i,s){var n,a,o,r,h={},l=t.split(".")[0];return t=t.split(".")[1],n=l+"-"+t,s||(s=i,i=e.Widget),e.expr[":"][n.toLowerCase()]=function(t){return!!e.data(t,n)},e[l]=e[l]||{},a=e[l][t],o=e[l][t]=function(e,t){return this._createWidget?(arguments.length&&this._createWidget(e,t),void 0):new o(e,t)},e.extend(o,a,{version:s.version,_proto:e.extend({},s),_childConstructors:[]}),r=new i,r.options=e.widget.extend({},r.options),e.each(s,function(t,s){return e.isFunction(s)?(h[t]=function(){var e=function(){return i.prototype[t].apply(this,arguments)},n=function(e){return i.prototype[t].apply(this,e)};return function(){var t,i=this._super,a=this._superApply;return this._super=e,this._superApply=n,t=s.apply(this,arguments),this._super=i,this._superApply=a,t}}(),void 0):(h[t]=s,void 0)}),o.prototype=e.widget.extend(r,{widgetEventPrefix:a?r.widgetEventPrefix||t:t},h,{constructor:o,namespace:l,widgetName:t,widgetFullName:n}),a?(e.each(a._childConstructors,function(t,i){var s=i.prototype;e.widget(s.namespace+"."+s.widgetName,o,i._proto)}),delete a._childConstructors):i._childConstructors.push(o),e.widget.bridge(t,o),o},e.widget.extend=function(t){for(var i,s,n=u.call(arguments,1),a=0,o=n.length;o>a;a++)for(i in n[a])s=n[a][i],n[a].hasOwnProperty(i)&&void 0!==s&&(t[i]=e.isPlainObject(s)?e.isPlainObject(t[i])?e.widget.extend({},t[i],s):e.widget.extend({},s):s);return t},e.widget.bridge=function(t,i){var s=i.prototype.widgetFullName||t;e.fn[t]=function(n){var a="string"==typeof n,o=u.call(arguments,1),r=this;return n=!a&&o.length?e.widget.extend.apply(null,[n].concat(o)):n,a?this.each(function(){var i,a=e.data(this,s);return"instance"===n?(r=a,!1):a?e.isFunction(a[n])&&"_"!==n.charAt(0)?(i=a[n].apply(a,o),i!==a&&void 0!==i?(r=i&&i.jquery?r.pushStack(i.get()):i,!1):void 0):e.error("no such method '"+n+"' for "+t+" widget instance"):e.error("cannot call methods on "+t+" prior to initialization; "+"attempted to call method '"+n+"'")}):this.each(function(){var t=e.data(this,s);t?(t.option(n||{}),t._init&&t._init()):e.data(this,s,new i(n,this))}),r}},e.Widget=function(){},e.Widget._childConstructors=[],e.Widget.prototype={widgetName:"widget",widgetEventPrefix:"",defaultElement:"<div>",options:{disabled:!1,create:null},_createWidget:function(t,i){i=e(i||this.defaultElement||this)[0],this.element=e(i),this.uuid=l++,this.eventNamespace="."+this.widgetName+this.uuid,this.bindings=e(),this.hoverable=e(),this.focusable=e(),i!==this&&(e.data(i,this.widgetFullName,this),this._on(!0,this.element,{remove:function(e){e.target===i&&this.destroy()}}),this.document=e(i.style?i.ownerDocument:i.document||i),this.window=e(this.document[0].defaultView||this.document[0].parentWindow)),this.options=e.widget.extend({},this.options,this._getCreateOptions(),t),this._create(),this._trigger("create",null,this._getCreateEventData()),this._init()},_getCreateOptions:e.noop,_getCreateEventData:e.noop,_create:e.noop,_init:e.noop,destroy:function(){this._destroy(),this.element.unbind(this.eventNamespace).removeData(this.widgetFullName).removeData(e.camelCase(this.widgetFullName)),this.widget().unbind(this.eventNamespace).removeAttr("aria-disabled").removeClass(this.widgetFullName+"-disabled "+"ui-state-disabled"),this.bindings.unbind(this.eventNamespace),this.hoverable.removeClass("ui-state-hover"),this.focusable.removeClass("ui-state-focus")},_destroy:e.noop,widget:function(){return this.element},option:function(t,i){var s,n,a,o=t;if(0===arguments.length)return e.widget.extend({},this.options);if("string"==typeof t)if(o={},s=t.split("."),t=s.shift(),s.length){for(n=o[t]=e.widget.extend({},this.options[t]),a=0;s.length-1>a;a++)n[s[a]]=n[s[a]]||{},n=n[s[a]];if(t=s.pop(),1===arguments.length)return void 0===n[t]?null:n[t];n[t]=i}else{if(1===arguments.length)return void 0===this.options[t]?null:this.options[t];o[t]=i}return this._setOptions(o),this},_setOptions:function(e){var t;for(t in e)this._setOption(t,e[t]);return this},_setOption:function(e,t){return this.options[e]=t,"disabled"===e&&(this.widget().toggleClass(this.widgetFullName+"-disabled",!!t),t&&(this.hoverable.removeClass("ui-state-hover"),this.focusable.removeClass("ui-state-focus"))),this},enable:function(){return this._setOptions({disabled:!1})},disable:function(){return this._setOptions({disabled:!0})},_on:function(t,i,s){var n,a=this;"boolean"!=typeof t&&(s=i,i=t,t=!1),s?(i=n=e(i),this.bindings=this.bindings.add(i)):(s=i,i=this.element,n=this.widget()),e.each(s,function(s,o){function r(){return t||a.options.disabled!==!0&&!e(this).hasClass("ui-state-disabled")?("string"==typeof o?a[o]:o).apply(a,arguments):void 0}"string"!=typeof o&&(r.guid=o.guid=o.guid||r.guid||e.guid++);var h=s.match(/^([\w:-]*)\s*(.*)$/),l=h[1]+a.eventNamespace,u=h[2];u?n.delegate(u,l,r):i.bind(l,r)})},_off:function(t,i){i=(i||"").split(" ").join(this.eventNamespace+" ")+this.eventNamespace,t.unbind(i).undelegate(i),this.bindings=e(this.bindings.not(t).get()),this.focusable=e(this.focusable.not(t).get()),this.hoverable=e(this.hoverable.not(t).get())},_delay:function(e,t){function i(){return("string"==typeof e?s[e]:e).apply(s,arguments)}var s=this;return setTimeout(i,t||0)},_hoverable:function(t){this.hoverable=this.hoverable.add(t),this._on(t,{mouseenter:function(t){e(t.currentTarget).addClass("ui-state-hover")},mouseleave:function(t){e(t.currentTarget).removeClass("ui-state-hover")}})},_focusable:function(t){this.focusable=this.focusable.add(t),this._on(t,{focusin:function(t){e(t.currentTarget).addClass("ui-state-focus")},focusout:function(t){e(t.currentTarget).removeClass("ui-state-focus")}})},_trigger:function(t,i,s){var n,a,o=this.options[t];if(s=s||{},i=e.Event(i),i.type=(t===this.widgetEventPrefix?t:this.widgetEventPrefix+t).toLowerCase(),i.target=this.element[0],a=i.originalEvent)for(n in a)n in i||(i[n]=a[n]);return this.element.trigger(i,s),!(e.isFunction(o)&&o.apply(this.element[0],[i].concat(s))===!1||i.isDefaultPrevented())}},e.each({show:"fadeIn",hide:"fadeOut"},function(t,i){e.Widget.prototype["_"+t]=function(s,n,a){"string"==typeof n&&(n={effect:n});var o,r=n?n===!0||"number"==typeof n?i:n.effect||i:t;n=n||{},"number"==typeof n&&(n={duration:n}),o=!e.isEmptyObject(n),n.complete=a,n.delay&&s.delay(n.delay),o&&e.effects&&e.effects.effect[r]?s[t](n):r!==t&&s[r]?s[r](n.duration,n.easing,a):s.queue(function(i){e(this)[t](),a&&a.call(s[0]),i()})}}),e.widget;var d=!1;e(document).mouseup(function(){d=!1}),e.widget("ui.mouse",{version:"1.11.2",options:{cancel:"input,textarea,button,select,option",distance:1,delay:0},_mouseInit:function(){var t=this;this.element.bind("mousedown."+this.widgetName,function(e){return t._mouseDown(e)}).bind("click."+this.widgetName,function(i){return!0===e.data(i.target,t.widgetName+".preventClickEvent")?(e.removeData(i.target,t.widgetName+".preventClickEvent"),i.stopImmediatePropagation(),!1):void 0}),this.started=!1},_mouseDestroy:function(){this.element.unbind("."+this.widgetName),this._mouseMoveDelegate&&this.document.unbind("mousemove."+this.widgetName,this._mouseMoveDelegate).unbind("mouseup."+this.widgetName,this._mouseUpDelegate)},_mouseDown:function(t){if(!d){this._mouseMoved=!1,this._mouseStarted&&this._mouseUp(t),this._mouseDownEvent=t;var i=this,s=1===t.which,n="string"==typeof this.options.cancel&&t.target.nodeName?e(t.target).closest(this.options.cancel).length:!1;return s&&!n&&this._mouseCapture(t)?(this.mouseDelayMet=!this.options.delay,this.mouseDelayMet||(this._mouseDelayTimer=setTimeout(function(){i.mouseDelayMet=!0},this.options.delay)),this._mouseDistanceMet(t)&&this._mouseDelayMet(t)&&(this._mouseStarted=this._mouseStart(t)!==!1,!this._mouseStarted)?(t.preventDefault(),!0):(!0===e.data(t.target,this.widgetName+".preventClickEvent")&&e.removeData(t.target,this.widgetName+".preventClickEvent"),this._mouseMoveDelegate=function(e){return i._mouseMove(e)},this._mouseUpDelegate=function(e){return i._mouseUp(e)},this.document.bind("mousemove."+this.widgetName,this._mouseMoveDelegate).bind("mouseup."+this.widgetName,this._mouseUpDelegate),t.preventDefault(),d=!0,!0)):!0}},_mouseMove:function(t){if(this._mouseMoved){if(e.ui.ie&&(!document.documentMode||9>document.documentMode)&&!t.button)return this._mouseUp(t);if(!t.which)return this._mouseUp(t)}return(t.which||t.button)&&(this._mouseMoved=!0),this._mouseStarted?(this._mouseDrag(t),t.preventDefault()):(this._mouseDistanceMet(t)&&this._mouseDelayMet(t)&&(this._mouseStarted=this._mouseStart(this._mouseDownEvent,t)!==!1,this._mouseStarted?this._mouseDrag(t):this._mouseUp(t)),!this._mouseStarted)},_mouseUp:function(t){return this.document.unbind("mousemove."+this.widgetName,this._mouseMoveDelegate).unbind("mouseup."+this.widgetName,this._mouseUpDelegate),this._mouseStarted&&(this._mouseStarted=!1,t.target===this._mouseDownEvent.target&&e.data(t.target,this.widgetName+".preventClickEvent",!0),this._mouseStop(t)),d=!1,!1},_mouseDistanceMet:function(e){return Math.max(Math.abs(this._mouseDownEvent.pageX-e.pageX),Math.abs(this._mouseDownEvent.pageY-e.pageY))>=this.options.distance},_mouseDelayMet:function(){return this.mouseDelayMet},_mouseStart:function(){},_mouseDrag:function(){},_mouseStop:function(){},_mouseCapture:function(){return!0}}),function(){function t(e,t,i){return[parseFloat(e[0])*(p.test(e[0])?t/100:1),parseFloat(e[1])*(p.test(e[1])?i/100:1)]}function i(t,i){return parseInt(e.css(t,i),10)||0}function s(t){var i=t[0];return 9===i.nodeType?{width:t.width(),height:t.height(),offset:{top:0,left:0}}:e.isWindow(i)?{width:t.width(),height:t.height(),offset:{top:t.scrollTop(),left:t.scrollLeft()}}:i.preventDefault?{width:0,height:0,offset:{top:i.pageY,left:i.pageX}}:{width:t.outerWidth(),height:t.outerHeight(),offset:t.offset()}}e.ui=e.ui||{};var n,a,o=Math.max,r=Math.abs,h=Math.round,l=/left|center|right/,u=/top|center|bottom/,d=/[\+\-]\d+(\.[\d]+)?%?/,c=/^\w+/,p=/%$/,f=e.fn.position;e.position={scrollbarWidth:function(){if(void 0!==n)return n;var t,i,s=e("<div style='display:block;position:absolute;width:50px;height:50px;overflow:hidden;'><div style='height:100px;width:auto;'></div></div>"),a=s.children()[0];return e("body").append(s),t=a.offsetWidth,s.css("overflow","scroll"),i=a.offsetWidth,t===i&&(i=s[0].clientWidth),s.remove(),n=t-i},getScrollInfo:function(t){var i=t.isWindow||t.isDocument?"":t.element.css("overflow-x"),s=t.isWindow||t.isDocument?"":t.element.css("overflow-y"),n="scroll"===i||"auto"===i&&t.width<t.element[0].scrollWidth,a="scroll"===s||"auto"===s&&t.height<t.element[0].scrollHeight;return{width:a?e.position.scrollbarWidth():0,height:n?e.position.scrollbarWidth():0}},getWithinInfo:function(t){var i=e(t||window),s=e.isWindow(i[0]),n=!!i[0]&&9===i[0].nodeType;return{element:i,isWindow:s,isDocument:n,offset:i.offset()||{left:0,top:0},scrollLeft:i.scrollLeft(),scrollTop:i.scrollTop(),width:s||n?i.width():i.outerWidth(),height:s||n?i.height():i.outerHeight()}}},e.fn.position=function(n){if(!n||!n.of)return f.apply(this,arguments);n=e.extend({},n);var p,m,g,v,y,b,_=e(n.of),x=e.position.getWithinInfo(n.within),w=e.position.getScrollInfo(x),k=(n.collision||"flip").split(" "),T={};return b=s(_),_[0].preventDefault&&(n.at="left top"),m=b.width,g=b.height,v=b.offset,y=e.extend({},v),e.each(["my","at"],function(){var e,t,i=(n[this]||"").split(" ");1===i.length&&(i=l.test(i[0])?i.concat(["center"]):u.test(i[0])?["center"].concat(i):["center","center"]),i[0]=l.test(i[0])?i[0]:"center",i[1]=u.test(i[1])?i[1]:"center",e=d.exec(i[0]),t=d.exec(i[1]),T[this]=[e?e[0]:0,t?t[0]:0],n[this]=[c.exec(i[0])[0],c.exec(i[1])[0]]}),1===k.length&&(k[1]=k[0]),"right"===n.at[0]?y.left+=m:"center"===n.at[0]&&(y.left+=m/2),"bottom"===n.at[1]?y.top+=g:"center"===n.at[1]&&(y.top+=g/2),p=t(T.at,m,g),y.left+=p[0],y.top+=p[1],this.each(function(){var s,l,u=e(this),d=u.outerWidth(),c=u.outerHeight(),f=i(this,"marginLeft"),b=i(this,"marginTop"),D=d+f+i(this,"marginRight")+w.width,S=c+b+i(this,"marginBottom")+w.height,M=e.extend({},y),C=t(T.my,u.outerWidth(),u.outerHeight());"right"===n.my[0]?M.left-=d:"center"===n.my[0]&&(M.left-=d/2),"bottom"===n.my[1]?M.top-=c:"center"===n.my[1]&&(M.top-=c/2),M.left+=C[0],M.top+=C[1],a||(M.left=h(M.left),M.top=h(M.top)),s={marginLeft:f,marginTop:b},e.each(["left","top"],function(t,i){e.ui.position[k[t]]&&e.ui.position[k[t]][i](M,{targetWidth:m,targetHeight:g,elemWidth:d,elemHeight:c,collisionPosition:s,collisionWidth:D,collisionHeight:S,offset:[p[0]+C[0],p[1]+C[1]],my:n.my,at:n.at,within:x,elem:u})}),n.using&&(l=function(e){var t=v.left-M.left,i=t+m-d,s=v.top-M.top,a=s+g-c,h={target:{element:_,left:v.left,top:v.top,width:m,height:g},element:{element:u,left:M.left,top:M.top,width:d,height:c},horizontal:0>i?"left":t>0?"right":"center",vertical:0>a?"top":s>0?"bottom":"middle"};d>m&&m>r(t+i)&&(h.horizontal="center"),c>g&&g>r(s+a)&&(h.vertical="middle"),h.important=o(r(t),r(i))>o(r(s),r(a))?"horizontal":"vertical",n.using.call(this,e,h)}),u.offset(e.extend(M,{using:l}))})},e.ui.position={fit:{left:function(e,t){var i,s=t.within,n=s.isWindow?s.scrollLeft:s.offset.left,a=s.width,r=e.left-t.collisionPosition.marginLeft,h=n-r,l=r+t.collisionWidth-a-n;t.collisionWidth>a?h>0&&0>=l?(i=e.left+h+t.collisionWidth-a-n,e.left+=h-i):e.left=l>0&&0>=h?n:h>l?n+a-t.collisionWidth:n:h>0?e.left+=h:l>0?e.left-=l:e.left=o(e.left-r,e.left)},top:function(e,t){var i,s=t.within,n=s.isWindow?s.scrollTop:s.offset.top,a=t.within.height,r=e.top-t.collisionPosition.marginTop,h=n-r,l=r+t.collisionHeight-a-n;t.collisionHeight>a?h>0&&0>=l?(i=e.top+h+t.collisionHeight-a-n,e.top+=h-i):e.top=l>0&&0>=h?n:h>l?n+a-t.collisionHeight:n:h>0?e.top+=h:l>0?e.top-=l:e.top=o(e.top-r,e.top)}},flip:{left:function(e,t){var i,s,n=t.within,a=n.offset.left+n.scrollLeft,o=n.width,h=n.isWindow?n.scrollLeft:n.offset.left,l=e.left-t.collisionPosition.marginLeft,u=l-h,d=l+t.collisionWidth-o-h,c="left"===t.my[0]?-t.elemWidth:"right"===t.my[0]?t.elemWidth:0,p="left"===t.at[0]?t.targetWidth:"right"===t.at[0]?-t.targetWidth:0,f=-2*t.offset[0];0>u?(i=e.left+c+p+f+t.collisionWidth-o-a,(0>i||r(u)>i)&&(e.left+=c+p+f)):d>0&&(s=e.left-t.collisionPosition.marginLeft+c+p+f-h,(s>0||d>r(s))&&(e.left+=c+p+f))},top:function(e,t){var i,s,n=t.within,a=n.offset.top+n.scrollTop,o=n.height,h=n.isWindow?n.scrollTop:n.offset.top,l=e.top-t.collisionPosition.marginTop,u=l-h,d=l+t.collisionHeight-o-h,c="top"===t.my[1],p=c?-t.elemHeight:"bottom"===t.my[1]?t.elemHeight:0,f="top"===t.at[1]?t.targetHeight:"bottom"===t.at[1]?-t.targetHeight:0,m=-2*t.offset[1];0>u?(s=e.top+p+f+m+t.collisionHeight-o-a,e.top+p+f+m>u&&(0>s||r(u)>s)&&(e.top+=p+f+m)):d>0&&(i=e.top-t.collisionPosition.marginTop+p+f+m-h,e.top+p+f+m>d&&(i>0||d>r(i))&&(e.top+=p+f+m))}},flipfit:{left:function(){e.ui.position.flip.left.apply(this,arguments),e.ui.position.fit.left.apply(this,arguments)},top:function(){e.ui.position.flip.top.apply(this,arguments),e.ui.position.fit.top.apply(this,arguments)}}},function(){var t,i,s,n,o,r=document.getElementsByTagName("body")[0],h=document.createElement("div");t=document.createElement(r?"div":"body"),s={visibility:"hidden",width:0,height:0,border:0,margin:0,background:"none"},r&&e.extend(s,{position:"absolute",left:"-1000px",top:"-1000px"});for(o in s)t.style[o]=s[o];t.appendChild(h),i=r||document.documentElement,i.insertBefore(t,i.firstChild),h.style.cssText="position: absolute; left: 10.7432222px;",n=e(h).offset().left,a=n>10&&11>n,t.innerHTML="",i.removeChild(t)}()}(),e.ui.position,e.widget("ui.accordion",{version:"1.11.2",options:{active:0,animate:{},collapsible:!1,event:"click",header:"> li > :first-child,> :not(li):even",heightStyle:"auto",icons:{activeHeader:"ui-icon-triangle-1-s",header:"ui-icon-triangle-1-e"},activate:null,beforeActivate:null},hideProps:{borderTopWidth:"hide",borderBottomWidth:"hide",paddingTop:"hide",paddingBottom:"hide",height:"hide"},showProps:{borderTopWidth:"show",borderBottomWidth:"show",paddingTop:"show",paddingBottom:"show",height:"show"},_create:function(){var t=this.options;this.prevShow=this.prevHide=e(),this.element.addClass("ui-accordion ui-widget ui-helper-reset").attr("role","tablist"),t.collapsible||t.active!==!1&&null!=t.active||(t.active=0),this._processPanels(),0>t.active&&(t.active+=this.headers.length),this._refresh()},_getCreateEventData:function(){return{header:this.active,panel:this.active.length?this.active.next():e()}},_createIcons:function(){var t=this.options.icons;t&&(e("<span>").addClass("ui-accordion-header-icon ui-icon "+t.header).prependTo(this.headers),this.active.children(".ui-accordion-header-icon").removeClass(t.header).addClass(t.activeHeader),this.headers.addClass("ui-accordion-icons"))},_destroyIcons:function(){this.headers.removeClass("ui-accordion-icons").children(".ui-accordion-header-icon").remove()},_destroy:function(){var e;this.element.removeClass("ui-accordion ui-widget ui-helper-reset").removeAttr("role"),this.headers.removeClass("ui-accordion-header ui-accordion-header-active ui-state-default ui-corner-all ui-state-active ui-state-disabled ui-corner-top").removeAttr("role").removeAttr("aria-expanded").removeAttr("aria-selected").removeAttr("aria-controls").removeAttr("tabIndex").removeUniqueId(),this._destroyIcons(),e=this.headers.next().removeClass("ui-helper-reset ui-widget-content ui-corner-bottom ui-accordion-content ui-accordion-content-active ui-state-disabled").css("display","").removeAttr("role").removeAttr("aria-hidden").removeAttr("aria-labelledby").removeUniqueId(),"content"!==this.options.heightStyle&&e.css("height","")},_setOption:function(e,t){return"active"===e?(this._activate(t),void 0):("event"===e&&(this.options.event&&this._off(this.headers,this.options.event),this._setupEvents(t)),this._super(e,t),"collapsible"!==e||t||this.options.active!==!1||this._activate(0),"icons"===e&&(this._destroyIcons(),t&&this._createIcons()),"disabled"===e&&(this.element.toggleClass("ui-state-disabled",!!t).attr("aria-disabled",t),this.headers.add(this.headers.next()).toggleClass("ui-state-disabled",!!t)),void 0)},_keydown:function(t){if(!t.altKey&&!t.ctrlKey){var i=e.ui.keyCode,s=this.headers.length,n=this.headers.index(t.target),a=!1;switch(t.keyCode){case i.RIGHT:case i.DOWN:a=this.headers[(n+1)%s];break;case i.LEFT:case i.UP:a=this.headers[(n-1+s)%s];break;case i.SPACE:case i.ENTER:this._eventHandler(t);break;case i.HOME:a=this.headers[0];break;case i.END:a=this.headers[s-1]}a&&(e(t.target).attr("tabIndex",-1),e(a).attr("tabIndex",0),a.focus(),t.preventDefault())}},_panelKeyDown:function(t){t.keyCode===e.ui.keyCode.UP&&t.ctrlKey&&e(t.currentTarget).prev().focus()},refresh:function(){var t=this.options;this._processPanels(),t.active===!1&&t.collapsible===!0||!this.headers.length?(t.active=!1,this.active=e()):t.active===!1?this._activate(0):this.active.length&&!e.contains(this.element[0],this.active[0])?this.headers.length===this.headers.find(".ui-state-disabled").length?(t.active=!1,this.active=e()):this._activate(Math.max(0,t.active-1)):t.active=this.headers.index(this.active),this._destroyIcons(),this._refresh()},_processPanels:function(){var e=this.headers,t=this.panels;this.headers=this.element.find(this.options.header).addClass("ui-accordion-header ui-state-default ui-corner-all"),this.panels=this.headers.next().addClass("ui-accordion-content ui-helper-reset ui-widget-content ui-corner-bottom").filter(":not(.ui-accordion-content-active)").hide(),t&&(this._off(e.not(this.headers)),this._off(t.not(this.panels)))},_refresh:function(){var t,i=this.options,s=i.heightStyle,n=this.element.parent();this.active=this._findActive(i.active).addClass("ui-accordion-header-active ui-state-active ui-corner-top").removeClass("ui-corner-all"),this.active.next().addClass("ui-accordion-content-active").show(),this.headers.attr("role","tab").each(function(){var t=e(this),i=t.uniqueId().attr("id"),s=t.next(),n=s.uniqueId().attr("id");t.attr("aria-controls",n),s.attr("aria-labelledby",i)}).next().attr("role","tabpanel"),this.headers.not(this.active).attr({"aria-selected":"false","aria-expanded":"false",tabIndex:-1}).next().attr({"aria-hidden":"true"}).hide(),this.active.length?this.active.attr({"aria-selected":"true","aria-expanded":"true",tabIndex:0}).next().attr({"aria-hidden":"false"}):this.headers.eq(0).attr("tabIndex",0),this._createIcons(),this._setupEvents(i.event),"fill"===s?(t=n.height(),this.element.siblings(":visible").each(function(){var i=e(this),s=i.css("position");"absolute"!==s&&"fixed"!==s&&(t-=i.outerHeight(!0))}),this.headers.each(function(){t-=e(this).outerHeight(!0)}),this.headers.next().each(function(){e(this).height(Math.max(0,t-e(this).innerHeight()+e(this).height()))}).css("overflow","auto")):"auto"===s&&(t=0,this.headers.next().each(function(){t=Math.max(t,e(this).css("height","").height())}).height(t))},_activate:function(t){var i=this._findActive(t)[0];i!==this.active[0]&&(i=i||this.active[0],this._eventHandler({target:i,currentTarget:i,preventDefault:e.noop}))},_findActive:function(t){return"number"==typeof t?this.headers.eq(t):e()},_setupEvents:function(t){var i={keydown:"_keydown"};t&&e.each(t.split(" "),function(e,t){i[t]="_eventHandler"}),this._off(this.headers.add(this.headers.next())),this._on(this.headers,i),this._on(this.headers.next(),{keydown:"_panelKeyDown"}),this._hoverable(this.headers),this._focusable(this.headers)},_eventHandler:function(t){var i=this.options,s=this.active,n=e(t.currentTarget),a=n[0]===s[0],o=a&&i.collapsible,r=o?e():n.next(),h=s.next(),l={oldHeader:s,oldPanel:h,newHeader:o?e():n,newPanel:r};t.preventDefault(),a&&!i.collapsible||this._trigger("beforeActivate",t,l)===!1||(i.active=o?!1:this.headers.index(n),this.active=a?e():n,this._toggle(l),s.removeClass("ui-accordion-header-active ui-state-active"),i.icons&&s.children(".ui-accordion-header-icon").removeClass(i.icons.activeHeader).addClass(i.icons.header),a||(n.removeClass("ui-corner-all").addClass("ui-accordion-header-active ui-state-active ui-corner-top"),i.icons&&n.children(".ui-accordion-header-icon").removeClass(i.icons.header).addClass(i.icons.activeHeader),n.next().addClass("ui-accordion-content-active")))},_toggle:function(t){var i=t.newPanel,s=this.prevShow.length?this.prevShow:t.oldPanel;this.prevShow.add(this.prevHide).stop(!0,!0),this.prevShow=i,this.prevHide=s,this.options.animate?this._animate(i,s,t):(s.hide(),i.show(),this._toggleComplete(t)),s.attr({"aria-hidden":"true"}),s.prev().attr("aria-selected","false"),i.length&&s.length?s.prev().attr({tabIndex:-1,"aria-expanded":"false"}):i.length&&this.headers.filter(function(){return 0===e(this).attr("tabIndex")}).attr("tabIndex",-1),i.attr("aria-hidden","false").prev().attr({"aria-selected":"true",tabIndex:0,"aria-expanded":"true"})},_animate:function(e,t,i){var s,n,a,o=this,r=0,h=e.length&&(!t.length||e.index()<t.index()),l=this.options.animate||{},u=h&&l.down||l,d=function(){o._toggleComplete(i)};return"number"==typeof u&&(a=u),"string"==typeof u&&(n=u),n=n||u.easing||l.easing,a=a||u.duration||l.duration,t.length?e.length?(s=e.show().outerHeight(),t.animate(this.hideProps,{duration:a,easing:n,step:function(e,t){t.now=Math.round(e)}}),e.hide().animate(this.showProps,{duration:a,easing:n,complete:d,step:function(e,i){i.now=Math.round(e),"height"!==i.prop?r+=i.now:"content"!==o.options.heightStyle&&(i.now=Math.round(s-t.outerHeight()-r),r=0)}}),void 0):t.animate(this.hideProps,a,n,d):e.animate(this.showProps,a,n,d)},_toggleComplete:function(e){var t=e.oldPanel;t.removeClass("ui-accordion-content-active").prev().removeClass("ui-corner-top").addClass("ui-corner-all"),t.length&&(t.parent()[0].className=t.parent()[0].className),this._trigger("activate",null,e)}}),e.widget("ui.menu",{version:"1.11.2",defaultElement:"<ul>",delay:300,options:{icons:{submenu:"ui-icon-carat-1-e"},items:"> *",menus:"ul",position:{my:"left-1 top",at:"right top"},role:"menu",blur:null,focus:null,select:null},_create:function(){this.activeMenu=this.element,this.mouseHandled=!1,this.element.uniqueId().addClass("ui-menu ui-widget ui-widget-content").toggleClass("ui-menu-icons",!!this.element.find(".ui-icon").length).attr({role:this.options.role,tabIndex:0}),this.options.disabled&&this.element.addClass("ui-state-disabled").attr("aria-disabled","true"),this._on({"mousedown .ui-menu-item":function(e){e.preventDefault()},"click .ui-menu-item":function(t){var i=e(t.target);!this.mouseHandled&&i.not(".ui-state-disabled").length&&(this.select(t),t.isPropagationStopped()||(this.mouseHandled=!0),i.has(".ui-menu").length?this.expand(t):!this.element.is(":focus")&&e(this.document[0].activeElement).closest(".ui-menu").length&&(this.element.trigger("focus",[!0]),this.active&&1===this.active.parents(".ui-menu").length&&clearTimeout(this.timer)))},"mouseenter .ui-menu-item":function(t){if(!this.previousFilter){var i=e(t.currentTarget);i.siblings(".ui-state-active").removeClass("ui-state-active"),this.focus(t,i) -}},mouseleave:"collapseAll","mouseleave .ui-menu":"collapseAll",focus:function(e,t){var i=this.active||this.element.find(this.options.items).eq(0);t||this.focus(e,i)},blur:function(t){this._delay(function(){e.contains(this.element[0],this.document[0].activeElement)||this.collapseAll(t)})},keydown:"_keydown"}),this.refresh(),this._on(this.document,{click:function(e){this._closeOnDocumentClick(e)&&this.collapseAll(e),this.mouseHandled=!1}})},_destroy:function(){this.element.removeAttr("aria-activedescendant").find(".ui-menu").addBack().removeClass("ui-menu ui-widget ui-widget-content ui-menu-icons ui-front").removeAttr("role").removeAttr("tabIndex").removeAttr("aria-labelledby").removeAttr("aria-expanded").removeAttr("aria-hidden").removeAttr("aria-disabled").removeUniqueId().show(),this.element.find(".ui-menu-item").removeClass("ui-menu-item").removeAttr("role").removeAttr("aria-disabled").removeUniqueId().removeClass("ui-state-hover").removeAttr("tabIndex").removeAttr("role").removeAttr("aria-haspopup").children().each(function(){var t=e(this);t.data("ui-menu-submenu-carat")&&t.remove()}),this.element.find(".ui-menu-divider").removeClass("ui-menu-divider ui-widget-content")},_keydown:function(t){var i,s,n,a,o=!0;switch(t.keyCode){case e.ui.keyCode.PAGE_UP:this.previousPage(t);break;case e.ui.keyCode.PAGE_DOWN:this.nextPage(t);break;case e.ui.keyCode.HOME:this._move("first","first",t);break;case e.ui.keyCode.END:this._move("last","last",t);break;case e.ui.keyCode.UP:this.previous(t);break;case e.ui.keyCode.DOWN:this.next(t);break;case e.ui.keyCode.LEFT:this.collapse(t);break;case e.ui.keyCode.RIGHT:this.active&&!this.active.is(".ui-state-disabled")&&this.expand(t);break;case e.ui.keyCode.ENTER:case e.ui.keyCode.SPACE:this._activate(t);break;case e.ui.keyCode.ESCAPE:this.collapse(t);break;default:o=!1,s=this.previousFilter||"",n=String.fromCharCode(t.keyCode),a=!1,clearTimeout(this.filterTimer),n===s?a=!0:n=s+n,i=this._filterMenuItems(n),i=a&&-1!==i.index(this.active.next())?this.active.nextAll(".ui-menu-item"):i,i.length||(n=String.fromCharCode(t.keyCode),i=this._filterMenuItems(n)),i.length?(this.focus(t,i),this.previousFilter=n,this.filterTimer=this._delay(function(){delete this.previousFilter},1e3)):delete this.previousFilter}o&&t.preventDefault()},_activate:function(e){this.active.is(".ui-state-disabled")||(this.active.is("[aria-haspopup='true']")?this.expand(e):this.select(e))},refresh:function(){var t,i,s=this,n=this.options.icons.submenu,a=this.element.find(this.options.menus);this.element.toggleClass("ui-menu-icons",!!this.element.find(".ui-icon").length),a.filter(":not(.ui-menu)").addClass("ui-menu ui-widget ui-widget-content ui-front").hide().attr({role:this.options.role,"aria-hidden":"true","aria-expanded":"false"}).each(function(){var t=e(this),i=t.parent(),s=e("<span>").addClass("ui-menu-icon ui-icon "+n).data("ui-menu-submenu-carat",!0);i.attr("aria-haspopup","true").prepend(s),t.attr("aria-labelledby",i.attr("id"))}),t=a.add(this.element),i=t.find(this.options.items),i.not(".ui-menu-item").each(function(){var t=e(this);s._isDivider(t)&&t.addClass("ui-widget-content ui-menu-divider")}),i.not(".ui-menu-item, .ui-menu-divider").addClass("ui-menu-item").uniqueId().attr({tabIndex:-1,role:this._itemRole()}),i.filter(".ui-state-disabled").attr("aria-disabled","true"),this.active&&!e.contains(this.element[0],this.active[0])&&this.blur()},_itemRole:function(){return{menu:"menuitem",listbox:"option"}[this.options.role]},_setOption:function(e,t){"icons"===e&&this.element.find(".ui-menu-icon").removeClass(this.options.icons.submenu).addClass(t.submenu),"disabled"===e&&this.element.toggleClass("ui-state-disabled",!!t).attr("aria-disabled",t),this._super(e,t)},focus:function(e,t){var i,s;this.blur(e,e&&"focus"===e.type),this._scrollIntoView(t),this.active=t.first(),s=this.active.addClass("ui-state-focus").removeClass("ui-state-active"),this.options.role&&this.element.attr("aria-activedescendant",s.attr("id")),this.active.parent().closest(".ui-menu-item").addClass("ui-state-active"),e&&"keydown"===e.type?this._close():this.timer=this._delay(function(){this._close()},this.delay),i=t.children(".ui-menu"),i.length&&e&&/^mouse/.test(e.type)&&this._startOpening(i),this.activeMenu=t.parent(),this._trigger("focus",e,{item:t})},_scrollIntoView:function(t){var i,s,n,a,o,r;this._hasScroll()&&(i=parseFloat(e.css(this.activeMenu[0],"borderTopWidth"))||0,s=parseFloat(e.css(this.activeMenu[0],"paddingTop"))||0,n=t.offset().top-this.activeMenu.offset().top-i-s,a=this.activeMenu.scrollTop(),o=this.activeMenu.height(),r=t.outerHeight(),0>n?this.activeMenu.scrollTop(a+n):n+r>o&&this.activeMenu.scrollTop(a+n-o+r))},blur:function(e,t){t||clearTimeout(this.timer),this.active&&(this.active.removeClass("ui-state-focus"),this.active=null,this._trigger("blur",e,{item:this.active}))},_startOpening:function(e){clearTimeout(this.timer),"true"===e.attr("aria-hidden")&&(this.timer=this._delay(function(){this._close(),this._open(e)},this.delay))},_open:function(t){var i=e.extend({of:this.active},this.options.position);clearTimeout(this.timer),this.element.find(".ui-menu").not(t.parents(".ui-menu")).hide().attr("aria-hidden","true"),t.show().removeAttr("aria-hidden").attr("aria-expanded","true").position(i)},collapseAll:function(t,i){clearTimeout(this.timer),this.timer=this._delay(function(){var s=i?this.element:e(t&&t.target).closest(this.element.find(".ui-menu"));s.length||(s=this.element),this._close(s),this.blur(t),this.activeMenu=s},this.delay)},_close:function(e){e||(e=this.active?this.active.parent():this.element),e.find(".ui-menu").hide().attr("aria-hidden","true").attr("aria-expanded","false").end().find(".ui-state-active").not(".ui-state-focus").removeClass("ui-state-active")},_closeOnDocumentClick:function(t){return!e(t.target).closest(".ui-menu").length},_isDivider:function(e){return!/[^\-\u2014\u2013\s]/.test(e.text())},collapse:function(e){var t=this.active&&this.active.parent().closest(".ui-menu-item",this.element);t&&t.length&&(this._close(),this.focus(e,t))},expand:function(e){var t=this.active&&this.active.children(".ui-menu ").find(this.options.items).first();t&&t.length&&(this._open(t.parent()),this._delay(function(){this.focus(e,t)}))},next:function(e){this._move("next","first",e)},previous:function(e){this._move("prev","last",e)},isFirstItem:function(){return this.active&&!this.active.prevAll(".ui-menu-item").length},isLastItem:function(){return this.active&&!this.active.nextAll(".ui-menu-item").length},_move:function(e,t,i){var s;this.active&&(s="first"===e||"last"===e?this.active["first"===e?"prevAll":"nextAll"](".ui-menu-item").eq(-1):this.active[e+"All"](".ui-menu-item").eq(0)),s&&s.length&&this.active||(s=this.activeMenu.find(this.options.items)[t]()),this.focus(i,s)},nextPage:function(t){var i,s,n;return this.active?(this.isLastItem()||(this._hasScroll()?(s=this.active.offset().top,n=this.element.height(),this.active.nextAll(".ui-menu-item").each(function(){return i=e(this),0>i.offset().top-s-n}),this.focus(t,i)):this.focus(t,this.activeMenu.find(this.options.items)[this.active?"last":"first"]())),void 0):(this.next(t),void 0)},previousPage:function(t){var i,s,n;return this.active?(this.isFirstItem()||(this._hasScroll()?(s=this.active.offset().top,n=this.element.height(),this.active.prevAll(".ui-menu-item").each(function(){return i=e(this),i.offset().top-s+n>0}),this.focus(t,i)):this.focus(t,this.activeMenu.find(this.options.items).first())),void 0):(this.next(t),void 0)},_hasScroll:function(){return this.element.outerHeight()<this.element.prop("scrollHeight")},select:function(t){this.active=this.active||e(t.target).closest(".ui-menu-item");var i={item:this.active};this.active.has(".ui-menu").length||this.collapseAll(t,!0),this._trigger("select",t,i)},_filterMenuItems:function(t){var i=t.replace(/[\-\[\]{}()*+?.,\\\^$|#\s]/g,"\\$&"),s=RegExp("^"+i,"i");return this.activeMenu.find(this.options.items).filter(".ui-menu-item").filter(function(){return s.test(e.trim(e(this).text()))})}}),e.widget("ui.autocomplete",{version:"1.11.2",defaultElement:"<input>",options:{appendTo:null,autoFocus:!1,delay:300,minLength:1,position:{my:"left top",at:"left bottom",collision:"none"},source:null,change:null,close:null,focus:null,open:null,response:null,search:null,select:null},requestIndex:0,pending:0,_create:function(){var t,i,s,n=this.element[0].nodeName.toLowerCase(),a="textarea"===n,o="input"===n;this.isMultiLine=a?!0:o?!1:this.element.prop("isContentEditable"),this.valueMethod=this.element[a||o?"val":"text"],this.isNewMenu=!0,this.element.addClass("ui-autocomplete-input").attr("autocomplete","off"),this._on(this.element,{keydown:function(n){if(this.element.prop("readOnly"))return t=!0,s=!0,i=!0,void 0;t=!1,s=!1,i=!1;var a=e.ui.keyCode;switch(n.keyCode){case a.PAGE_UP:t=!0,this._move("previousPage",n);break;case a.PAGE_DOWN:t=!0,this._move("nextPage",n);break;case a.UP:t=!0,this._keyEvent("previous",n);break;case a.DOWN:t=!0,this._keyEvent("next",n);break;case a.ENTER:this.menu.active&&(t=!0,n.preventDefault(),this.menu.select(n));break;case a.TAB:this.menu.active&&this.menu.select(n);break;case a.ESCAPE:this.menu.element.is(":visible")&&(this.isMultiLine||this._value(this.term),this.close(n),n.preventDefault());break;default:i=!0,this._searchTimeout(n)}},keypress:function(s){if(t)return t=!1,(!this.isMultiLine||this.menu.element.is(":visible"))&&s.preventDefault(),void 0;if(!i){var n=e.ui.keyCode;switch(s.keyCode){case n.PAGE_UP:this._move("previousPage",s);break;case n.PAGE_DOWN:this._move("nextPage",s);break;case n.UP:this._keyEvent("previous",s);break;case n.DOWN:this._keyEvent("next",s)}}},input:function(e){return s?(s=!1,e.preventDefault(),void 0):(this._searchTimeout(e),void 0)},focus:function(){this.selectedItem=null,this.previous=this._value()},blur:function(e){return this.cancelBlur?(delete this.cancelBlur,void 0):(clearTimeout(this.searching),this.close(e),this._change(e),void 0)}}),this._initSource(),this.menu=e("<ul>").addClass("ui-autocomplete ui-front").appendTo(this._appendTo()).menu({role:null}).hide().menu("instance"),this._on(this.menu.element,{mousedown:function(t){t.preventDefault(),this.cancelBlur=!0,this._delay(function(){delete this.cancelBlur});var i=this.menu.element[0];e(t.target).closest(".ui-menu-item").length||this._delay(function(){var t=this;this.document.one("mousedown",function(s){s.target===t.element[0]||s.target===i||e.contains(i,s.target)||t.close()})})},menufocus:function(t,i){var s,n;return this.isNewMenu&&(this.isNewMenu=!1,t.originalEvent&&/^mouse/.test(t.originalEvent.type))?(this.menu.blur(),this.document.one("mousemove",function(){e(t.target).trigger(t.originalEvent)}),void 0):(n=i.item.data("ui-autocomplete-item"),!1!==this._trigger("focus",t,{item:n})&&t.originalEvent&&/^key/.test(t.originalEvent.type)&&this._value(n.value),s=i.item.attr("aria-label")||n.value,s&&e.trim(s).length&&(this.liveRegion.children().hide(),e("<div>").text(s).appendTo(this.liveRegion)),void 0)},menuselect:function(e,t){var i=t.item.data("ui-autocomplete-item"),s=this.previous;this.element[0]!==this.document[0].activeElement&&(this.element.focus(),this.previous=s,this._delay(function(){this.previous=s,this.selectedItem=i})),!1!==this._trigger("select",e,{item:i})&&this._value(i.value),this.term=this._value(),this.close(e),this.selectedItem=i}}),this.liveRegion=e("<span>",{role:"status","aria-live":"assertive","aria-relevant":"additions"}).addClass("ui-helper-hidden-accessible").appendTo(this.document[0].body),this._on(this.window,{beforeunload:function(){this.element.removeAttr("autocomplete")}})},_destroy:function(){clearTimeout(this.searching),this.element.removeClass("ui-autocomplete-input").removeAttr("autocomplete"),this.menu.element.remove(),this.liveRegion.remove()},_setOption:function(e,t){this._super(e,t),"source"===e&&this._initSource(),"appendTo"===e&&this.menu.element.appendTo(this._appendTo()),"disabled"===e&&t&&this.xhr&&this.xhr.abort()},_appendTo:function(){var t=this.options.appendTo;return t&&(t=t.jquery||t.nodeType?e(t):this.document.find(t).eq(0)),t&&t[0]||(t=this.element.closest(".ui-front")),t.length||(t=this.document[0].body),t},_initSource:function(){var t,i,s=this;e.isArray(this.options.source)?(t=this.options.source,this.source=function(i,s){s(e.ui.autocomplete.filter(t,i.term))}):"string"==typeof this.options.source?(i=this.options.source,this.source=function(t,n){s.xhr&&s.xhr.abort(),s.xhr=e.ajax({url:i,data:t,dataType:"json",success:function(e){n(e)},error:function(){n([])}})}):this.source=this.options.source},_searchTimeout:function(e){clearTimeout(this.searching),this.searching=this._delay(function(){var t=this.term===this._value(),i=this.menu.element.is(":visible"),s=e.altKey||e.ctrlKey||e.metaKey||e.shiftKey;(!t||t&&!i&&!s)&&(this.selectedItem=null,this.search(null,e))},this.options.delay)},search:function(e,t){return e=null!=e?e:this._value(),this.term=this._value(),e.length<this.options.minLength?this.close(t):this._trigger("search",t)!==!1?this._search(e):void 0},_search:function(e){this.pending++,this.element.addClass("ui-autocomplete-loading"),this.cancelSearch=!1,this.source({term:e},this._response())},_response:function(){var t=++this.requestIndex;return e.proxy(function(e){t===this.requestIndex&&this.__response(e),this.pending--,this.pending||this.element.removeClass("ui-autocomplete-loading")},this)},__response:function(e){e&&(e=this._normalize(e)),this._trigger("response",null,{content:e}),!this.options.disabled&&e&&e.length&&!this.cancelSearch?(this._suggest(e),this._trigger("open")):this._close()},close:function(e){this.cancelSearch=!0,this._close(e)},_close:function(e){this.menu.element.is(":visible")&&(this.menu.element.hide(),this.menu.blur(),this.isNewMenu=!0,this._trigger("close",e))},_change:function(e){this.previous!==this._value()&&this._trigger("change",e,{item:this.selectedItem})},_normalize:function(t){return t.length&&t[0].label&&t[0].value?t:e.map(t,function(t){return"string"==typeof t?{label:t,value:t}:e.extend({},t,{label:t.label||t.value,value:t.value||t.label})})},_suggest:function(t){var i=this.menu.element.empty();this._renderMenu(i,t),this.isNewMenu=!0,this.menu.refresh(),i.show(),this._resizeMenu(),i.position(e.extend({of:this.element},this.options.position)),this.options.autoFocus&&this.menu.next()},_resizeMenu:function(){var e=this.menu.element;e.outerWidth(Math.max(e.width("").outerWidth()+1,this.element.outerWidth()))},_renderMenu:function(t,i){var s=this;e.each(i,function(e,i){s._renderItemData(t,i)})},_renderItemData:function(e,t){return this._renderItem(e,t).data("ui-autocomplete-item",t)},_renderItem:function(t,i){return e("<li>").text(i.label).appendTo(t)},_move:function(e,t){return this.menu.element.is(":visible")?this.menu.isFirstItem()&&/^previous/.test(e)||this.menu.isLastItem()&&/^next/.test(e)?(this.isMultiLine||this._value(this.term),this.menu.blur(),void 0):(this.menu[e](t),void 0):(this.search(null,t),void 0)},widget:function(){return this.menu.element},_value:function(){return this.valueMethod.apply(this.element,arguments)},_keyEvent:function(e,t){(!this.isMultiLine||this.menu.element.is(":visible"))&&(this._move(e,t),t.preventDefault())}}),e.extend(e.ui.autocomplete,{escapeRegex:function(e){return e.replace(/[\-\[\]{}()*+?.,\\\^$|#\s]/g,"\\$&")},filter:function(t,i){var s=RegExp(e.ui.autocomplete.escapeRegex(i),"i");return e.grep(t,function(e){return s.test(e.label||e.value||e)})}}),e.widget("ui.autocomplete",e.ui.autocomplete,{options:{messages:{noResults:"No search results.",results:function(e){return e+(e>1?" results are":" result is")+" available, use up and down arrow keys to navigate."}}},__response:function(t){var i;this._superApply(arguments),this.options.disabled||this.cancelSearch||(i=t&&t.length?this.options.messages.results(t.length):this.options.messages.noResults,this.liveRegion.children().hide(),e("<div>").text(i).appendTo(this.liveRegion))}}),e.ui.autocomplete;var c,p="ui-button ui-widget ui-state-default ui-corner-all",f="ui-button-icons-only ui-button-icon-only ui-button-text-icons ui-button-text-icon-primary ui-button-text-icon-secondary ui-button-text-only",m=function(){var t=e(this);setTimeout(function(){t.find(":ui-button").button("refresh")},1)},g=function(t){var i=t.name,s=t.form,n=e([]);return i&&(i=i.replace(/'/g,"\\'"),n=s?e(s).find("[name='"+i+"'][type=radio]"):e("[name='"+i+"'][type=radio]",t.ownerDocument).filter(function(){return!this.form})),n};e.widget("ui.button",{version:"1.11.2",defaultElement:"<button>",options:{disabled:null,text:!0,label:null,icons:{primary:null,secondary:null}},_create:function(){this.element.closest("form").unbind("reset"+this.eventNamespace).bind("reset"+this.eventNamespace,m),"boolean"!=typeof this.options.disabled?this.options.disabled=!!this.element.prop("disabled"):this.element.prop("disabled",this.options.disabled),this._determineButtonType(),this.hasTitle=!!this.buttonElement.attr("title");var t=this,i=this.options,s="checkbox"===this.type||"radio"===this.type,n=s?"":"ui-state-active";null===i.label&&(i.label="input"===this.type?this.buttonElement.val():this.buttonElement.html()),this._hoverable(this.buttonElement),this.buttonElement.addClass(p).attr("role","button").bind("mouseenter"+this.eventNamespace,function(){i.disabled||this===c&&e(this).addClass("ui-state-active")}).bind("mouseleave"+this.eventNamespace,function(){i.disabled||e(this).removeClass(n)}).bind("click"+this.eventNamespace,function(e){i.disabled&&(e.preventDefault(),e.stopImmediatePropagation())}),this._on({focus:function(){this.buttonElement.addClass("ui-state-focus")},blur:function(){this.buttonElement.removeClass("ui-state-focus")}}),s&&this.element.bind("change"+this.eventNamespace,function(){t.refresh()}),"checkbox"===this.type?this.buttonElement.bind("click"+this.eventNamespace,function(){return i.disabled?!1:void 0}):"radio"===this.type?this.buttonElement.bind("click"+this.eventNamespace,function(){if(i.disabled)return!1;e(this).addClass("ui-state-active"),t.buttonElement.attr("aria-pressed","true");var s=t.element[0];g(s).not(s).map(function(){return e(this).button("widget")[0]}).removeClass("ui-state-active").attr("aria-pressed","false")}):(this.buttonElement.bind("mousedown"+this.eventNamespace,function(){return i.disabled?!1:(e(this).addClass("ui-state-active"),c=this,t.document.one("mouseup",function(){c=null}),void 0)}).bind("mouseup"+this.eventNamespace,function(){return i.disabled?!1:(e(this).removeClass("ui-state-active"),void 0)}).bind("keydown"+this.eventNamespace,function(t){return i.disabled?!1:((t.keyCode===e.ui.keyCode.SPACE||t.keyCode===e.ui.keyCode.ENTER)&&e(this).addClass("ui-state-active"),void 0)}).bind("keyup"+this.eventNamespace+" blur"+this.eventNamespace,function(){e(this).removeClass("ui-state-active")}),this.buttonElement.is("a")&&this.buttonElement.keyup(function(t){t.keyCode===e.ui.keyCode.SPACE&&e(this).click()})),this._setOption("disabled",i.disabled),this._resetButton()},_determineButtonType:function(){var e,t,i;this.type=this.element.is("[type=checkbox]")?"checkbox":this.element.is("[type=radio]")?"radio":this.element.is("input")?"input":"button","checkbox"===this.type||"radio"===this.type?(e=this.element.parents().last(),t="label[for='"+this.element.attr("id")+"']",this.buttonElement=e.find(t),this.buttonElement.length||(e=e.length?e.siblings():this.element.siblings(),this.buttonElement=e.filter(t),this.buttonElement.length||(this.buttonElement=e.find(t))),this.element.addClass("ui-helper-hidden-accessible"),i=this.element.is(":checked"),i&&this.buttonElement.addClass("ui-state-active"),this.buttonElement.prop("aria-pressed",i)):this.buttonElement=this.element},widget:function(){return this.buttonElement},_destroy:function(){this.element.removeClass("ui-helper-hidden-accessible"),this.buttonElement.removeClass(p+" ui-state-active "+f).removeAttr("role").removeAttr("aria-pressed").html(this.buttonElement.find(".ui-button-text").html()),this.hasTitle||this.buttonElement.removeAttr("title")},_setOption:function(e,t){return this._super(e,t),"disabled"===e?(this.widget().toggleClass("ui-state-disabled",!!t),this.element.prop("disabled",!!t),t&&("checkbox"===this.type||"radio"===this.type?this.buttonElement.removeClass("ui-state-focus"):this.buttonElement.removeClass("ui-state-focus ui-state-active")),void 0):(this._resetButton(),void 0)},refresh:function(){var t=this.element.is("input, button")?this.element.is(":disabled"):this.element.hasClass("ui-button-disabled");t!==this.options.disabled&&this._setOption("disabled",t),"radio"===this.type?g(this.element[0]).each(function(){e(this).is(":checked")?e(this).button("widget").addClass("ui-state-active").attr("aria-pressed","true"):e(this).button("widget").removeClass("ui-state-active").attr("aria-pressed","false")}):"checkbox"===this.type&&(this.element.is(":checked")?this.buttonElement.addClass("ui-state-active").attr("aria-pressed","true"):this.buttonElement.removeClass("ui-state-active").attr("aria-pressed","false"))},_resetButton:function(){if("input"===this.type)return this.options.label&&this.element.val(this.options.label),void 0;var t=this.buttonElement.removeClass(f),i=e("<span></span>",this.document[0]).addClass("ui-button-text").html(this.options.label).appendTo(t.empty()).text(),s=this.options.icons,n=s.primary&&s.secondary,a=[];s.primary||s.secondary?(this.options.text&&a.push("ui-button-text-icon"+(n?"s":s.primary?"-primary":"-secondary")),s.primary&&t.prepend("<span class='ui-button-icon-primary ui-icon "+s.primary+"'></span>"),s.secondary&&t.append("<span class='ui-button-icon-secondary ui-icon "+s.secondary+"'></span>"),this.options.text||(a.push(n?"ui-button-icons-only":"ui-button-icon-only"),this.hasTitle||t.attr("title",e.trim(i)))):a.push("ui-button-text-only"),t.addClass(a.join(" "))}}),e.widget("ui.buttonset",{version:"1.11.2",options:{items:"button, input[type=button], input[type=submit], input[type=reset], input[type=checkbox], input[type=radio], a, :data(ui-button)"},_create:function(){this.element.addClass("ui-buttonset")},_init:function(){this.refresh()},_setOption:function(e,t){"disabled"===e&&this.buttons.button("option",e,t),this._super(e,t)},refresh:function(){var t="rtl"===this.element.css("direction"),i=this.element.find(this.options.items),s=i.filter(":ui-button");i.not(":ui-button").button(),s.button("refresh"),this.buttons=i.map(function(){return e(this).button("widget")[0]}).removeClass("ui-corner-all ui-corner-left ui-corner-right").filter(":first").addClass(t?"ui-corner-right":"ui-corner-left").end().filter(":last").addClass(t?"ui-corner-left":"ui-corner-right").end().end()},_destroy:function(){this.element.removeClass("ui-buttonset"),this.buttons.map(function(){return e(this).button("widget")[0]}).removeClass("ui-corner-left ui-corner-right").end().button("destroy")}}),e.ui.button,e.extend(e.ui,{datepicker:{version:"1.11.2"}});var v;e.extend(n.prototype,{markerClassName:"hasDatepicker",maxRows:4,_widgetDatepicker:function(){return this.dpDiv},setDefaults:function(e){return r(this._defaults,e||{}),this},_attachDatepicker:function(t,i){var s,n,a;s=t.nodeName.toLowerCase(),n="div"===s||"span"===s,t.id||(this.uuid+=1,t.id="dp"+this.uuid),a=this._newInst(e(t),n),a.settings=e.extend({},i||{}),"input"===s?this._connectDatepicker(t,a):n&&this._inlineDatepicker(t,a)},_newInst:function(t,i){var s=t[0].id.replace(/([^A-Za-z0-9_\-])/g,"\\\\$1");return{id:s,input:t,selectedDay:0,selectedMonth:0,selectedYear:0,drawMonth:0,drawYear:0,inline:i,dpDiv:i?a(e("<div class='"+this._inlineClass+" ui-datepicker ui-widget ui-widget-content ui-helper-clearfix ui-corner-all'></div>")):this.dpDiv}},_connectDatepicker:function(t,i){var s=e(t);i.append=e([]),i.trigger=e([]),s.hasClass(this.markerClassName)||(this._attachments(s,i),s.addClass(this.markerClassName).keydown(this._doKeyDown).keypress(this._doKeyPress).keyup(this._doKeyUp),this._autoSize(i),e.data(t,"datepicker",i),i.settings.disabled&&this._disableDatepicker(t))},_attachments:function(t,i){var s,n,a,o=this._get(i,"appendText"),r=this._get(i,"isRTL");i.append&&i.append.remove(),o&&(i.append=e("<span class='"+this._appendClass+"'>"+o+"</span>"),t[r?"before":"after"](i.append)),t.unbind("focus",this._showDatepicker),i.trigger&&i.trigger.remove(),s=this._get(i,"showOn"),("focus"===s||"both"===s)&&t.focus(this._showDatepicker),("button"===s||"both"===s)&&(n=this._get(i,"buttonText"),a=this._get(i,"buttonImage"),i.trigger=e(this._get(i,"buttonImageOnly")?e("<img/>").addClass(this._triggerClass).attr({src:a,alt:n,title:n}):e("<button type='button'></button>").addClass(this._triggerClass).html(a?e("<img/>").attr({src:a,alt:n,title:n}):n)),t[r?"before":"after"](i.trigger),i.trigger.click(function(){return e.datepicker._datepickerShowing&&e.datepicker._lastInput===t[0]?e.datepicker._hideDatepicker():e.datepicker._datepickerShowing&&e.datepicker._lastInput!==t[0]?(e.datepicker._hideDatepicker(),e.datepicker._showDatepicker(t[0])):e.datepicker._showDatepicker(t[0]),!1}))},_autoSize:function(e){if(this._get(e,"autoSize")&&!e.inline){var t,i,s,n,a=new Date(2009,11,20),o=this._get(e,"dateFormat");o.match(/[DM]/)&&(t=function(e){for(i=0,s=0,n=0;e.length>n;n++)e[n].length>i&&(i=e[n].length,s=n);return s},a.setMonth(t(this._get(e,o.match(/MM/)?"monthNames":"monthNamesShort"))),a.setDate(t(this._get(e,o.match(/DD/)?"dayNames":"dayNamesShort"))+20-a.getDay())),e.input.attr("size",this._formatDate(e,a).length)}},_inlineDatepicker:function(t,i){var s=e(t);s.hasClass(this.markerClassName)||(s.addClass(this.markerClassName).append(i.dpDiv),e.data(t,"datepicker",i),this._setDate(i,this._getDefaultDate(i),!0),this._updateDatepicker(i),this._updateAlternate(i),i.settings.disabled&&this._disableDatepicker(t),i.dpDiv.css("display","block"))},_dialogDatepicker:function(t,i,s,n,a){var o,h,l,u,d,c=this._dialogInst;return c||(this.uuid+=1,o="dp"+this.uuid,this._dialogInput=e("<input type='text' id='"+o+"' style='position: absolute; top: -100px; width: 0px;'/>"),this._dialogInput.keydown(this._doKeyDown),e("body").append(this._dialogInput),c=this._dialogInst=this._newInst(this._dialogInput,!1),c.settings={},e.data(this._dialogInput[0],"datepicker",c)),r(c.settings,n||{}),i=i&&i.constructor===Date?this._formatDate(c,i):i,this._dialogInput.val(i),this._pos=a?a.length?a:[a.pageX,a.pageY]:null,this._pos||(h=document.documentElement.clientWidth,l=document.documentElement.clientHeight,u=document.documentElement.scrollLeft||document.body.scrollLeft,d=document.documentElement.scrollTop||document.body.scrollTop,this._pos=[h/2-100+u,l/2-150+d]),this._dialogInput.css("left",this._pos[0]+20+"px").css("top",this._pos[1]+"px"),c.settings.onSelect=s,this._inDialog=!0,this.dpDiv.addClass(this._dialogClass),this._showDatepicker(this._dialogInput[0]),e.blockUI&&e.blockUI(this.dpDiv),e.data(this._dialogInput[0],"datepicker",c),this},_destroyDatepicker:function(t){var i,s=e(t),n=e.data(t,"datepicker");s.hasClass(this.markerClassName)&&(i=t.nodeName.toLowerCase(),e.removeData(t,"datepicker"),"input"===i?(n.append.remove(),n.trigger.remove(),s.removeClass(this.markerClassName).unbind("focus",this._showDatepicker).unbind("keydown",this._doKeyDown).unbind("keypress",this._doKeyPress).unbind("keyup",this._doKeyUp)):("div"===i||"span"===i)&&s.removeClass(this.markerClassName).empty())},_enableDatepicker:function(t){var i,s,n=e(t),a=e.data(t,"datepicker");n.hasClass(this.markerClassName)&&(i=t.nodeName.toLowerCase(),"input"===i?(t.disabled=!1,a.trigger.filter("button").each(function(){this.disabled=!1}).end().filter("img").css({opacity:"1.0",cursor:""})):("div"===i||"span"===i)&&(s=n.children("."+this._inlineClass),s.children().removeClass("ui-state-disabled"),s.find("select.ui-datepicker-month, select.ui-datepicker-year").prop("disabled",!1)),this._disabledInputs=e.map(this._disabledInputs,function(e){return e===t?null:e}))},_disableDatepicker:function(t){var i,s,n=e(t),a=e.data(t,"datepicker");n.hasClass(this.markerClassName)&&(i=t.nodeName.toLowerCase(),"input"===i?(t.disabled=!0,a.trigger.filter("button").each(function(){this.disabled=!0}).end().filter("img").css({opacity:"0.5",cursor:"default"})):("div"===i||"span"===i)&&(s=n.children("."+this._inlineClass),s.children().addClass("ui-state-disabled"),s.find("select.ui-datepicker-month, select.ui-datepicker-year").prop("disabled",!0)),this._disabledInputs=e.map(this._disabledInputs,function(e){return e===t?null:e}),this._disabledInputs[this._disabledInputs.length]=t)},_isDisabledDatepicker:function(e){if(!e)return!1;for(var t=0;this._disabledInputs.length>t;t++)if(this._disabledInputs[t]===e)return!0;return!1},_getInst:function(t){try{return e.data(t,"datepicker")}catch(i){throw"Missing instance data for this datepicker"}},_optionDatepicker:function(t,i,s){var n,a,o,h,l=this._getInst(t);return 2===arguments.length&&"string"==typeof i?"defaults"===i?e.extend({},e.datepicker._defaults):l?"all"===i?e.extend({},l.settings):this._get(l,i):null:(n=i||{},"string"==typeof i&&(n={},n[i]=s),l&&(this._curInst===l&&this._hideDatepicker(),a=this._getDateDatepicker(t,!0),o=this._getMinMaxDate(l,"min"),h=this._getMinMaxDate(l,"max"),r(l.settings,n),null!==o&&void 0!==n.dateFormat&&void 0===n.minDate&&(l.settings.minDate=this._formatDate(l,o)),null!==h&&void 0!==n.dateFormat&&void 0===n.maxDate&&(l.settings.maxDate=this._formatDate(l,h)),"disabled"in n&&(n.disabled?this._disableDatepicker(t):this._enableDatepicker(t)),this._attachments(e(t),l),this._autoSize(l),this._setDate(l,a),this._updateAlternate(l),this._updateDatepicker(l)),void 0)},_changeDatepicker:function(e,t,i){this._optionDatepicker(e,t,i)},_refreshDatepicker:function(e){var t=this._getInst(e);t&&this._updateDatepicker(t)},_setDateDatepicker:function(e,t){var i=this._getInst(e);i&&(this._setDate(i,t),this._updateDatepicker(i),this._updateAlternate(i))},_getDateDatepicker:function(e,t){var i=this._getInst(e);return i&&!i.inline&&this._setDateFromField(i,t),i?this._getDate(i):null},_doKeyDown:function(t){var i,s,n,a=e.datepicker._getInst(t.target),o=!0,r=a.dpDiv.is(".ui-datepicker-rtl");if(a._keyEvent=!0,e.datepicker._datepickerShowing)switch(t.keyCode){case 9:e.datepicker._hideDatepicker(),o=!1;break;case 13:return n=e("td."+e.datepicker._dayOverClass+":not(."+e.datepicker._currentClass+")",a.dpDiv),n[0]&&e.datepicker._selectDay(t.target,a.selectedMonth,a.selectedYear,n[0]),i=e.datepicker._get(a,"onSelect"),i?(s=e.datepicker._formatDate(a),i.apply(a.input?a.input[0]:null,[s,a])):e.datepicker._hideDatepicker(),!1;case 27:e.datepicker._hideDatepicker();break;case 33:e.datepicker._adjustDate(t.target,t.ctrlKey?-e.datepicker._get(a,"stepBigMonths"):-e.datepicker._get(a,"stepMonths"),"M");break;case 34:e.datepicker._adjustDate(t.target,t.ctrlKey?+e.datepicker._get(a,"stepBigMonths"):+e.datepicker._get(a,"stepMonths"),"M");break;case 35:(t.ctrlKey||t.metaKey)&&e.datepicker._clearDate(t.target),o=t.ctrlKey||t.metaKey;break;case 36:(t.ctrlKey||t.metaKey)&&e.datepicker._gotoToday(t.target),o=t.ctrlKey||t.metaKey;break;case 37:(t.ctrlKey||t.metaKey)&&e.datepicker._adjustDate(t.target,r?1:-1,"D"),o=t.ctrlKey||t.metaKey,t.originalEvent.altKey&&e.datepicker._adjustDate(t.target,t.ctrlKey?-e.datepicker._get(a,"stepBigMonths"):-e.datepicker._get(a,"stepMonths"),"M");break;case 38:(t.ctrlKey||t.metaKey)&&e.datepicker._adjustDate(t.target,-7,"D"),o=t.ctrlKey||t.metaKey;break;case 39:(t.ctrlKey||t.metaKey)&&e.datepicker._adjustDate(t.target,r?-1:1,"D"),o=t.ctrlKey||t.metaKey,t.originalEvent.altKey&&e.datepicker._adjustDate(t.target,t.ctrlKey?+e.datepicker._get(a,"stepBigMonths"):+e.datepicker._get(a,"stepMonths"),"M");break;case 40:(t.ctrlKey||t.metaKey)&&e.datepicker._adjustDate(t.target,7,"D"),o=t.ctrlKey||t.metaKey;break;default:o=!1}else 36===t.keyCode&&t.ctrlKey?e.datepicker._showDatepicker(this):o=!1;o&&(t.preventDefault(),t.stopPropagation())},_doKeyPress:function(t){var i,s,n=e.datepicker._getInst(t.target);return e.datepicker._get(n,"constrainInput")?(i=e.datepicker._possibleChars(e.datepicker._get(n,"dateFormat")),s=String.fromCharCode(null==t.charCode?t.keyCode:t.charCode),t.ctrlKey||t.metaKey||" ">s||!i||i.indexOf(s)>-1):void 0 -},_doKeyUp:function(t){var i,s=e.datepicker._getInst(t.target);if(s.input.val()!==s.lastVal)try{i=e.datepicker.parseDate(e.datepicker._get(s,"dateFormat"),s.input?s.input.val():null,e.datepicker._getFormatConfig(s)),i&&(e.datepicker._setDateFromField(s),e.datepicker._updateAlternate(s),e.datepicker._updateDatepicker(s))}catch(n){}return!0},_showDatepicker:function(t){if(t=t.target||t,"input"!==t.nodeName.toLowerCase()&&(t=e("input",t.parentNode)[0]),!e.datepicker._isDisabledDatepicker(t)&&e.datepicker._lastInput!==t){var i,n,a,o,h,l,u;i=e.datepicker._getInst(t),e.datepicker._curInst&&e.datepicker._curInst!==i&&(e.datepicker._curInst.dpDiv.stop(!0,!0),i&&e.datepicker._datepickerShowing&&e.datepicker._hideDatepicker(e.datepicker._curInst.input[0])),n=e.datepicker._get(i,"beforeShow"),a=n?n.apply(t,[t,i]):{},a!==!1&&(r(i.settings,a),i.lastVal=null,e.datepicker._lastInput=t,e.datepicker._setDateFromField(i),e.datepicker._inDialog&&(t.value=""),e.datepicker._pos||(e.datepicker._pos=e.datepicker._findPos(t),e.datepicker._pos[1]+=t.offsetHeight),o=!1,e(t).parents().each(function(){return o|="fixed"===e(this).css("position"),!o}),h={left:e.datepicker._pos[0],top:e.datepicker._pos[1]},e.datepicker._pos=null,i.dpDiv.empty(),i.dpDiv.css({position:"absolute",display:"block",top:"-1000px"}),e.datepicker._updateDatepicker(i),h=e.datepicker._checkOffset(i,h,o),i.dpDiv.css({position:e.datepicker._inDialog&&e.blockUI?"static":o?"fixed":"absolute",display:"none",left:h.left+"px",top:h.top+"px"}),i.inline||(l=e.datepicker._get(i,"showAnim"),u=e.datepicker._get(i,"duration"),i.dpDiv.css("z-index",s(e(t))+1),e.datepicker._datepickerShowing=!0,e.effects&&e.effects.effect[l]?i.dpDiv.show(l,e.datepicker._get(i,"showOptions"),u):i.dpDiv[l||"show"](l?u:null),e.datepicker._shouldFocusInput(i)&&i.input.focus(),e.datepicker._curInst=i))}},_updateDatepicker:function(t){this.maxRows=4,v=t,t.dpDiv.empty().append(this._generateHTML(t)),this._attachHandlers(t);var i,s=this._getNumberOfMonths(t),n=s[1],a=17,r=t.dpDiv.find("."+this._dayOverClass+" a");r.length>0&&o.apply(r.get(0)),t.dpDiv.removeClass("ui-datepicker-multi-2 ui-datepicker-multi-3 ui-datepicker-multi-4").width(""),n>1&&t.dpDiv.addClass("ui-datepicker-multi-"+n).css("width",a*n+"em"),t.dpDiv[(1!==s[0]||1!==s[1]?"add":"remove")+"Class"]("ui-datepicker-multi"),t.dpDiv[(this._get(t,"isRTL")?"add":"remove")+"Class"]("ui-datepicker-rtl"),t===e.datepicker._curInst&&e.datepicker._datepickerShowing&&e.datepicker._shouldFocusInput(t)&&t.input.focus(),t.yearshtml&&(i=t.yearshtml,setTimeout(function(){i===t.yearshtml&&t.yearshtml&&t.dpDiv.find("select.ui-datepicker-year:first").replaceWith(t.yearshtml),i=t.yearshtml=null},0))},_shouldFocusInput:function(e){return e.input&&e.input.is(":visible")&&!e.input.is(":disabled")&&!e.input.is(":focus")},_checkOffset:function(t,i,s){var n=t.dpDiv.outerWidth(),a=t.dpDiv.outerHeight(),o=t.input?t.input.outerWidth():0,r=t.input?t.input.outerHeight():0,h=document.documentElement.clientWidth+(s?0:e(document).scrollLeft()),l=document.documentElement.clientHeight+(s?0:e(document).scrollTop());return i.left-=this._get(t,"isRTL")?n-o:0,i.left-=s&&i.left===t.input.offset().left?e(document).scrollLeft():0,i.top-=s&&i.top===t.input.offset().top+r?e(document).scrollTop():0,i.left-=Math.min(i.left,i.left+n>h&&h>n?Math.abs(i.left+n-h):0),i.top-=Math.min(i.top,i.top+a>l&&l>a?Math.abs(a+r):0),i},_findPos:function(t){for(var i,s=this._getInst(t),n=this._get(s,"isRTL");t&&("hidden"===t.type||1!==t.nodeType||e.expr.filters.hidden(t));)t=t[n?"previousSibling":"nextSibling"];return i=e(t).offset(),[i.left,i.top]},_hideDatepicker:function(t){var i,s,n,a,o=this._curInst;!o||t&&o!==e.data(t,"datepicker")||this._datepickerShowing&&(i=this._get(o,"showAnim"),s=this._get(o,"duration"),n=function(){e.datepicker._tidyDialog(o)},e.effects&&(e.effects.effect[i]||e.effects[i])?o.dpDiv.hide(i,e.datepicker._get(o,"showOptions"),s,n):o.dpDiv["slideDown"===i?"slideUp":"fadeIn"===i?"fadeOut":"hide"](i?s:null,n),i||n(),this._datepickerShowing=!1,a=this._get(o,"onClose"),a&&a.apply(o.input?o.input[0]:null,[o.input?o.input.val():"",o]),this._lastInput=null,this._inDialog&&(this._dialogInput.css({position:"absolute",left:"0",top:"-100px"}),e.blockUI&&(e.unblockUI(),e("body").append(this.dpDiv))),this._inDialog=!1)},_tidyDialog:function(e){e.dpDiv.removeClass(this._dialogClass).unbind(".ui-datepicker-calendar")},_checkExternalClick:function(t){if(e.datepicker._curInst){var i=e(t.target),s=e.datepicker._getInst(i[0]);(i[0].id!==e.datepicker._mainDivId&&0===i.parents("#"+e.datepicker._mainDivId).length&&!i.hasClass(e.datepicker.markerClassName)&&!i.closest("."+e.datepicker._triggerClass).length&&e.datepicker._datepickerShowing&&(!e.datepicker._inDialog||!e.blockUI)||i.hasClass(e.datepicker.markerClassName)&&e.datepicker._curInst!==s)&&e.datepicker._hideDatepicker()}},_adjustDate:function(t,i,s){var n=e(t),a=this._getInst(n[0]);this._isDisabledDatepicker(n[0])||(this._adjustInstDate(a,i+("M"===s?this._get(a,"showCurrentAtPos"):0),s),this._updateDatepicker(a))},_gotoToday:function(t){var i,s=e(t),n=this._getInst(s[0]);this._get(n,"gotoCurrent")&&n.currentDay?(n.selectedDay=n.currentDay,n.drawMonth=n.selectedMonth=n.currentMonth,n.drawYear=n.selectedYear=n.currentYear):(i=new Date,n.selectedDay=i.getDate(),n.drawMonth=n.selectedMonth=i.getMonth(),n.drawYear=n.selectedYear=i.getFullYear()),this._notifyChange(n),this._adjustDate(s)},_selectMonthYear:function(t,i,s){var n=e(t),a=this._getInst(n[0]);a["selected"+("M"===s?"Month":"Year")]=a["draw"+("M"===s?"Month":"Year")]=parseInt(i.options[i.selectedIndex].value,10),this._notifyChange(a),this._adjustDate(n)},_selectDay:function(t,i,s,n){var a,o=e(t);e(n).hasClass(this._unselectableClass)||this._isDisabledDatepicker(o[0])||(a=this._getInst(o[0]),a.selectedDay=a.currentDay=e("a",n).html(),a.selectedMonth=a.currentMonth=i,a.selectedYear=a.currentYear=s,this._selectDate(t,this._formatDate(a,a.currentDay,a.currentMonth,a.currentYear)))},_clearDate:function(t){var i=e(t);this._selectDate(i,"")},_selectDate:function(t,i){var s,n=e(t),a=this._getInst(n[0]);i=null!=i?i:this._formatDate(a),a.input&&a.input.val(i),this._updateAlternate(a),s=this._get(a,"onSelect"),s?s.apply(a.input?a.input[0]:null,[i,a]):a.input&&a.input.trigger("change"),a.inline?this._updateDatepicker(a):(this._hideDatepicker(),this._lastInput=a.input[0],"object"!=typeof a.input[0]&&a.input.focus(),this._lastInput=null)},_updateAlternate:function(t){var i,s,n,a=this._get(t,"altField");a&&(i=this._get(t,"altFormat")||this._get(t,"dateFormat"),s=this._getDate(t),n=this.formatDate(i,s,this._getFormatConfig(t)),e(a).each(function(){e(this).val(n)}))},noWeekends:function(e){var t=e.getDay();return[t>0&&6>t,""]},iso8601Week:function(e){var t,i=new Date(e.getTime());return i.setDate(i.getDate()+4-(i.getDay()||7)),t=i.getTime(),i.setMonth(0),i.setDate(1),Math.floor(Math.round((t-i)/864e5)/7)+1},parseDate:function(t,i,s){if(null==t||null==i)throw"Invalid arguments";if(i="object"==typeof i?""+i:i+"",""===i)return null;var n,a,o,r,h=0,l=(s?s.shortYearCutoff:null)||this._defaults.shortYearCutoff,u="string"!=typeof l?l:(new Date).getFullYear()%100+parseInt(l,10),d=(s?s.dayNamesShort:null)||this._defaults.dayNamesShort,c=(s?s.dayNames:null)||this._defaults.dayNames,p=(s?s.monthNamesShort:null)||this._defaults.monthNamesShort,f=(s?s.monthNames:null)||this._defaults.monthNames,m=-1,g=-1,v=-1,y=-1,b=!1,_=function(e){var i=t.length>n+1&&t.charAt(n+1)===e;return i&&n++,i},x=function(e){var t=_(e),s="@"===e?14:"!"===e?20:"y"===e&&t?4:"o"===e?3:2,n="y"===e?s:1,a=RegExp("^\\d{"+n+","+s+"}"),o=i.substring(h).match(a);if(!o)throw"Missing number at position "+h;return h+=o[0].length,parseInt(o[0],10)},w=function(t,s,n){var a=-1,o=e.map(_(t)?n:s,function(e,t){return[[t,e]]}).sort(function(e,t){return-(e[1].length-t[1].length)});if(e.each(o,function(e,t){var s=t[1];return i.substr(h,s.length).toLowerCase()===s.toLowerCase()?(a=t[0],h+=s.length,!1):void 0}),-1!==a)return a+1;throw"Unknown name at position "+h},k=function(){if(i.charAt(h)!==t.charAt(n))throw"Unexpected literal at position "+h;h++};for(n=0;t.length>n;n++)if(b)"'"!==t.charAt(n)||_("'")?k():b=!1;else switch(t.charAt(n)){case"d":v=x("d");break;case"D":w("D",d,c);break;case"o":y=x("o");break;case"m":g=x("m");break;case"M":g=w("M",p,f);break;case"y":m=x("y");break;case"@":r=new Date(x("@")),m=r.getFullYear(),g=r.getMonth()+1,v=r.getDate();break;case"!":r=new Date((x("!")-this._ticksTo1970)/1e4),m=r.getFullYear(),g=r.getMonth()+1,v=r.getDate();break;case"'":_("'")?k():b=!0;break;default:k()}if(i.length>h&&(o=i.substr(h),!/^\s+/.test(o)))throw"Extra/unparsed characters found in date: "+o;if(-1===m?m=(new Date).getFullYear():100>m&&(m+=(new Date).getFullYear()-(new Date).getFullYear()%100+(u>=m?0:-100)),y>-1)for(g=1,v=y;;){if(a=this._getDaysInMonth(m,g-1),a>=v)break;g++,v-=a}if(r=this._daylightSavingAdjust(new Date(m,g-1,v)),r.getFullYear()!==m||r.getMonth()+1!==g||r.getDate()!==v)throw"Invalid date";return r},ATOM:"yy-mm-dd",COOKIE:"D, dd M yy",ISO_8601:"yy-mm-dd",RFC_822:"D, d M y",RFC_850:"DD, dd-M-y",RFC_1036:"D, d M y",RFC_1123:"D, d M yy",RFC_2822:"D, d M yy",RSS:"D, d M y",TICKS:"!",TIMESTAMP:"@",W3C:"yy-mm-dd",_ticksTo1970:1e7*60*60*24*(718685+Math.floor(492.5)-Math.floor(19.7)+Math.floor(4.925)),formatDate:function(e,t,i){if(!t)return"";var s,n=(i?i.dayNamesShort:null)||this._defaults.dayNamesShort,a=(i?i.dayNames:null)||this._defaults.dayNames,o=(i?i.monthNamesShort:null)||this._defaults.monthNamesShort,r=(i?i.monthNames:null)||this._defaults.monthNames,h=function(t){var i=e.length>s+1&&e.charAt(s+1)===t;return i&&s++,i},l=function(e,t,i){var s=""+t;if(h(e))for(;i>s.length;)s="0"+s;return s},u=function(e,t,i,s){return h(e)?s[t]:i[t]},d="",c=!1;if(t)for(s=0;e.length>s;s++)if(c)"'"!==e.charAt(s)||h("'")?d+=e.charAt(s):c=!1;else switch(e.charAt(s)){case"d":d+=l("d",t.getDate(),2);break;case"D":d+=u("D",t.getDay(),n,a);break;case"o":d+=l("o",Math.round((new Date(t.getFullYear(),t.getMonth(),t.getDate()).getTime()-new Date(t.getFullYear(),0,0).getTime())/864e5),3);break;case"m":d+=l("m",t.getMonth()+1,2);break;case"M":d+=u("M",t.getMonth(),o,r);break;case"y":d+=h("y")?t.getFullYear():(10>t.getYear()%100?"0":"")+t.getYear()%100;break;case"@":d+=t.getTime();break;case"!":d+=1e4*t.getTime()+this._ticksTo1970;break;case"'":h("'")?d+="'":c=!0;break;default:d+=e.charAt(s)}return d},_possibleChars:function(e){var t,i="",s=!1,n=function(i){var s=e.length>t+1&&e.charAt(t+1)===i;return s&&t++,s};for(t=0;e.length>t;t++)if(s)"'"!==e.charAt(t)||n("'")?i+=e.charAt(t):s=!1;else switch(e.charAt(t)){case"d":case"m":case"y":case"@":i+="0123456789";break;case"D":case"M":return null;case"'":n("'")?i+="'":s=!0;break;default:i+=e.charAt(t)}return i},_get:function(e,t){return void 0!==e.settings[t]?e.settings[t]:this._defaults[t]},_setDateFromField:function(e,t){if(e.input.val()!==e.lastVal){var i=this._get(e,"dateFormat"),s=e.lastVal=e.input?e.input.val():null,n=this._getDefaultDate(e),a=n,o=this._getFormatConfig(e);try{a=this.parseDate(i,s,o)||n}catch(r){s=t?"":s}e.selectedDay=a.getDate(),e.drawMonth=e.selectedMonth=a.getMonth(),e.drawYear=e.selectedYear=a.getFullYear(),e.currentDay=s?a.getDate():0,e.currentMonth=s?a.getMonth():0,e.currentYear=s?a.getFullYear():0,this._adjustInstDate(e)}},_getDefaultDate:function(e){return this._restrictMinMax(e,this._determineDate(e,this._get(e,"defaultDate"),new Date))},_determineDate:function(t,i,s){var n=function(e){var t=new Date;return t.setDate(t.getDate()+e),t},a=function(i){try{return e.datepicker.parseDate(e.datepicker._get(t,"dateFormat"),i,e.datepicker._getFormatConfig(t))}catch(s){}for(var n=(i.toLowerCase().match(/^c/)?e.datepicker._getDate(t):null)||new Date,a=n.getFullYear(),o=n.getMonth(),r=n.getDate(),h=/([+\-]?[0-9]+)\s*(d|D|w|W|m|M|y|Y)?/g,l=h.exec(i);l;){switch(l[2]||"d"){case"d":case"D":r+=parseInt(l[1],10);break;case"w":case"W":r+=7*parseInt(l[1],10);break;case"m":case"M":o+=parseInt(l[1],10),r=Math.min(r,e.datepicker._getDaysInMonth(a,o));break;case"y":case"Y":a+=parseInt(l[1],10),r=Math.min(r,e.datepicker._getDaysInMonth(a,o))}l=h.exec(i)}return new Date(a,o,r)},o=null==i||""===i?s:"string"==typeof i?a(i):"number"==typeof i?isNaN(i)?s:n(i):new Date(i.getTime());return o=o&&"Invalid Date"==""+o?s:o,o&&(o.setHours(0),o.setMinutes(0),o.setSeconds(0),o.setMilliseconds(0)),this._daylightSavingAdjust(o)},_daylightSavingAdjust:function(e){return e?(e.setHours(e.getHours()>12?e.getHours()+2:0),e):null},_setDate:function(e,t,i){var s=!t,n=e.selectedMonth,a=e.selectedYear,o=this._restrictMinMax(e,this._determineDate(e,t,new Date));e.selectedDay=e.currentDay=o.getDate(),e.drawMonth=e.selectedMonth=e.currentMonth=o.getMonth(),e.drawYear=e.selectedYear=e.currentYear=o.getFullYear(),n===e.selectedMonth&&a===e.selectedYear||i||this._notifyChange(e),this._adjustInstDate(e),e.input&&e.input.val(s?"":this._formatDate(e))},_getDate:function(e){var t=!e.currentYear||e.input&&""===e.input.val()?null:this._daylightSavingAdjust(new Date(e.currentYear,e.currentMonth,e.currentDay));return t},_attachHandlers:function(t){var i=this._get(t,"stepMonths"),s="#"+t.id.replace(/\\\\/g,"\\");t.dpDiv.find("[data-handler]").map(function(){var t={prev:function(){e.datepicker._adjustDate(s,-i,"M")},next:function(){e.datepicker._adjustDate(s,+i,"M")},hide:function(){e.datepicker._hideDatepicker()},today:function(){e.datepicker._gotoToday(s)},selectDay:function(){return e.datepicker._selectDay(s,+this.getAttribute("data-month"),+this.getAttribute("data-year"),this),!1},selectMonth:function(){return e.datepicker._selectMonthYear(s,this,"M"),!1},selectYear:function(){return e.datepicker._selectMonthYear(s,this,"Y"),!1}};e(this).bind(this.getAttribute("data-event"),t[this.getAttribute("data-handler")])})},_generateHTML:function(e){var t,i,s,n,a,o,r,h,l,u,d,c,p,f,m,g,v,y,b,_,x,w,k,T,D,S,M,C,N,A,P,I,z,H,F,E,O,j,W,L=new Date,R=this._daylightSavingAdjust(new Date(L.getFullYear(),L.getMonth(),L.getDate())),Y=this._get(e,"isRTL"),B=this._get(e,"showButtonPanel"),J=this._get(e,"hideIfNoPrevNext"),q=this._get(e,"navigationAsDateFormat"),K=this._getNumberOfMonths(e),V=this._get(e,"showCurrentAtPos"),U=this._get(e,"stepMonths"),Q=1!==K[0]||1!==K[1],G=this._daylightSavingAdjust(e.currentDay?new Date(e.currentYear,e.currentMonth,e.currentDay):new Date(9999,9,9)),X=this._getMinMaxDate(e,"min"),$=this._getMinMaxDate(e,"max"),Z=e.drawMonth-V,et=e.drawYear;if(0>Z&&(Z+=12,et--),$)for(t=this._daylightSavingAdjust(new Date($.getFullYear(),$.getMonth()-K[0]*K[1]+1,$.getDate())),t=X&&X>t?X:t;this._daylightSavingAdjust(new Date(et,Z,1))>t;)Z--,0>Z&&(Z=11,et--);for(e.drawMonth=Z,e.drawYear=et,i=this._get(e,"prevText"),i=q?this.formatDate(i,this._daylightSavingAdjust(new Date(et,Z-U,1)),this._getFormatConfig(e)):i,s=this._canAdjustMonth(e,-1,et,Z)?"<a class='ui-datepicker-prev ui-corner-all' data-handler='prev' data-event='click' title='"+i+"'><span class='ui-icon ui-icon-circle-triangle-"+(Y?"e":"w")+"'>"+i+"</span></a>":J?"":"<a class='ui-datepicker-prev ui-corner-all ui-state-disabled' title='"+i+"'><span class='ui-icon ui-icon-circle-triangle-"+(Y?"e":"w")+"'>"+i+"</span></a>",n=this._get(e,"nextText"),n=q?this.formatDate(n,this._daylightSavingAdjust(new Date(et,Z+U,1)),this._getFormatConfig(e)):n,a=this._canAdjustMonth(e,1,et,Z)?"<a class='ui-datepicker-next ui-corner-all' data-handler='next' data-event='click' title='"+n+"'><span class='ui-icon ui-icon-circle-triangle-"+(Y?"w":"e")+"'>"+n+"</span></a>":J?"":"<a class='ui-datepicker-next ui-corner-all ui-state-disabled' title='"+n+"'><span class='ui-icon ui-icon-circle-triangle-"+(Y?"w":"e")+"'>"+n+"</span></a>",o=this._get(e,"currentText"),r=this._get(e,"gotoCurrent")&&e.currentDay?G:R,o=q?this.formatDate(o,r,this._getFormatConfig(e)):o,h=e.inline?"":"<button type='button' class='ui-datepicker-close ui-state-default ui-priority-primary ui-corner-all' data-handler='hide' data-event='click'>"+this._get(e,"closeText")+"</button>",l=B?"<div class='ui-datepicker-buttonpane ui-widget-content'>"+(Y?h:"")+(this._isInRange(e,r)?"<button type='button' class='ui-datepicker-current ui-state-default ui-priority-secondary ui-corner-all' data-handler='today' data-event='click'>"+o+"</button>":"")+(Y?"":h)+"</div>":"",u=parseInt(this._get(e,"firstDay"),10),u=isNaN(u)?0:u,d=this._get(e,"showWeek"),c=this._get(e,"dayNames"),p=this._get(e,"dayNamesMin"),f=this._get(e,"monthNames"),m=this._get(e,"monthNamesShort"),g=this._get(e,"beforeShowDay"),v=this._get(e,"showOtherMonths"),y=this._get(e,"selectOtherMonths"),b=this._getDefaultDate(e),_="",w=0;K[0]>w;w++){for(k="",this.maxRows=4,T=0;K[1]>T;T++){if(D=this._daylightSavingAdjust(new Date(et,Z,e.selectedDay)),S=" ui-corner-all",M="",Q){if(M+="<div class='ui-datepicker-group",K[1]>1)switch(T){case 0:M+=" ui-datepicker-group-first",S=" ui-corner-"+(Y?"right":"left");break;case K[1]-1:M+=" ui-datepicker-group-last",S=" ui-corner-"+(Y?"left":"right");break;default:M+=" ui-datepicker-group-middle",S=""}M+="'>"}for(M+="<div class='ui-datepicker-header ui-widget-header ui-helper-clearfix"+S+"'>"+(/all|left/.test(S)&&0===w?Y?a:s:"")+(/all|right/.test(S)&&0===w?Y?s:a:"")+this._generateMonthYearHeader(e,Z,et,X,$,w>0||T>0,f,m)+"</div><table class='ui-datepicker-calendar'><thead>"+"<tr>",C=d?"<th class='ui-datepicker-week-col'>"+this._get(e,"weekHeader")+"</th>":"",x=0;7>x;x++)N=(x+u)%7,C+="<th scope='col'"+((x+u+6)%7>=5?" class='ui-datepicker-week-end'":"")+">"+"<span title='"+c[N]+"'>"+p[N]+"</span></th>";for(M+=C+"</tr></thead><tbody>",A=this._getDaysInMonth(et,Z),et===e.selectedYear&&Z===e.selectedMonth&&(e.selectedDay=Math.min(e.selectedDay,A)),P=(this._getFirstDayOfMonth(et,Z)-u+7)%7,I=Math.ceil((P+A)/7),z=Q?this.maxRows>I?this.maxRows:I:I,this.maxRows=z,H=this._daylightSavingAdjust(new Date(et,Z,1-P)),F=0;z>F;F++){for(M+="<tr>",E=d?"<td class='ui-datepicker-week-col'>"+this._get(e,"calculateWeek")(H)+"</td>":"",x=0;7>x;x++)O=g?g.apply(e.input?e.input[0]:null,[H]):[!0,""],j=H.getMonth()!==Z,W=j&&!y||!O[0]||X&&X>H||$&&H>$,E+="<td class='"+((x+u+6)%7>=5?" ui-datepicker-week-end":"")+(j?" ui-datepicker-other-month":"")+(H.getTime()===D.getTime()&&Z===e.selectedMonth&&e._keyEvent||b.getTime()===H.getTime()&&b.getTime()===D.getTime()?" "+this._dayOverClass:"")+(W?" "+this._unselectableClass+" ui-state-disabled":"")+(j&&!v?"":" "+O[1]+(H.getTime()===G.getTime()?" "+this._currentClass:"")+(H.getTime()===R.getTime()?" ui-datepicker-today":""))+"'"+(j&&!v||!O[2]?"":" title='"+O[2].replace(/'/g,"&#39;")+"'")+(W?"":" data-handler='selectDay' data-event='click' data-month='"+H.getMonth()+"' data-year='"+H.getFullYear()+"'")+">"+(j&&!v?"&#xa0;":W?"<span class='ui-state-default'>"+H.getDate()+"</span>":"<a class='ui-state-default"+(H.getTime()===R.getTime()?" ui-state-highlight":"")+(H.getTime()===G.getTime()?" ui-state-active":"")+(j?" ui-priority-secondary":"")+"' href='#'>"+H.getDate()+"</a>")+"</td>",H.setDate(H.getDate()+1),H=this._daylightSavingAdjust(H);M+=E+"</tr>"}Z++,Z>11&&(Z=0,et++),M+="</tbody></table>"+(Q?"</div>"+(K[0]>0&&T===K[1]-1?"<div class='ui-datepicker-row-break'></div>":""):""),k+=M}_+=k}return _+=l,e._keyEvent=!1,_},_generateMonthYearHeader:function(e,t,i,s,n,a,o,r){var h,l,u,d,c,p,f,m,g=this._get(e,"changeMonth"),v=this._get(e,"changeYear"),y=this._get(e,"showMonthAfterYear"),b="<div class='ui-datepicker-title'>",_="";if(a||!g)_+="<span class='ui-datepicker-month'>"+o[t]+"</span>";else{for(h=s&&s.getFullYear()===i,l=n&&n.getFullYear()===i,_+="<select class='ui-datepicker-month' data-handler='selectMonth' data-event='change'>",u=0;12>u;u++)(!h||u>=s.getMonth())&&(!l||n.getMonth()>=u)&&(_+="<option value='"+u+"'"+(u===t?" selected='selected'":"")+">"+r[u]+"</option>");_+="</select>"}if(y||(b+=_+(!a&&g&&v?"":"&#xa0;")),!e.yearshtml)if(e.yearshtml="",a||!v)b+="<span class='ui-datepicker-year'>"+i+"</span>";else{for(d=this._get(e,"yearRange").split(":"),c=(new Date).getFullYear(),p=function(e){var t=e.match(/c[+\-].*/)?i+parseInt(e.substring(1),10):e.match(/[+\-].*/)?c+parseInt(e,10):parseInt(e,10);return isNaN(t)?c:t},f=p(d[0]),m=Math.max(f,p(d[1]||"")),f=s?Math.max(f,s.getFullYear()):f,m=n?Math.min(m,n.getFullYear()):m,e.yearshtml+="<select class='ui-datepicker-year' data-handler='selectYear' data-event='change'>";m>=f;f++)e.yearshtml+="<option value='"+f+"'"+(f===i?" selected='selected'":"")+">"+f+"</option>";e.yearshtml+="</select>",b+=e.yearshtml,e.yearshtml=null}return b+=this._get(e,"yearSuffix"),y&&(b+=(!a&&g&&v?"":"&#xa0;")+_),b+="</div>"},_adjustInstDate:function(e,t,i){var s=e.drawYear+("Y"===i?t:0),n=e.drawMonth+("M"===i?t:0),a=Math.min(e.selectedDay,this._getDaysInMonth(s,n))+("D"===i?t:0),o=this._restrictMinMax(e,this._daylightSavingAdjust(new Date(s,n,a)));e.selectedDay=o.getDate(),e.drawMonth=e.selectedMonth=o.getMonth(),e.drawYear=e.selectedYear=o.getFullYear(),("M"===i||"Y"===i)&&this._notifyChange(e)},_restrictMinMax:function(e,t){var i=this._getMinMaxDate(e,"min"),s=this._getMinMaxDate(e,"max"),n=i&&i>t?i:t;return s&&n>s?s:n},_notifyChange:function(e){var t=this._get(e,"onChangeMonthYear");t&&t.apply(e.input?e.input[0]:null,[e.selectedYear,e.selectedMonth+1,e])},_getNumberOfMonths:function(e){var t=this._get(e,"numberOfMonths");return null==t?[1,1]:"number"==typeof t?[1,t]:t},_getMinMaxDate:function(e,t){return this._determineDate(e,this._get(e,t+"Date"),null)},_getDaysInMonth:function(e,t){return 32-this._daylightSavingAdjust(new Date(e,t,32)).getDate()},_getFirstDayOfMonth:function(e,t){return new Date(e,t,1).getDay()},_canAdjustMonth:function(e,t,i,s){var n=this._getNumberOfMonths(e),a=this._daylightSavingAdjust(new Date(i,s+(0>t?t:n[0]*n[1]),1));return 0>t&&a.setDate(this._getDaysInMonth(a.getFullYear(),a.getMonth())),this._isInRange(e,a)},_isInRange:function(e,t){var i,s,n=this._getMinMaxDate(e,"min"),a=this._getMinMaxDate(e,"max"),o=null,r=null,h=this._get(e,"yearRange");return h&&(i=h.split(":"),s=(new Date).getFullYear(),o=parseInt(i[0],10),r=parseInt(i[1],10),i[0].match(/[+\-].*/)&&(o+=s),i[1].match(/[+\-].*/)&&(r+=s)),(!n||t.getTime()>=n.getTime())&&(!a||t.getTime()<=a.getTime())&&(!o||t.getFullYear()>=o)&&(!r||r>=t.getFullYear())},_getFormatConfig:function(e){var t=this._get(e,"shortYearCutoff");return t="string"!=typeof t?t:(new Date).getFullYear()%100+parseInt(t,10),{shortYearCutoff:t,dayNamesShort:this._get(e,"dayNamesShort"),dayNames:this._get(e,"dayNames"),monthNamesShort:this._get(e,"monthNamesShort"),monthNames:this._get(e,"monthNames")}},_formatDate:function(e,t,i,s){t||(e.currentDay=e.selectedDay,e.currentMonth=e.selectedMonth,e.currentYear=e.selectedYear);var n=t?"object"==typeof t?t:this._daylightSavingAdjust(new Date(s,i,t)):this._daylightSavingAdjust(new Date(e.currentYear,e.currentMonth,e.currentDay));return this.formatDate(this._get(e,"dateFormat"),n,this._getFormatConfig(e))}}),e.fn.datepicker=function(t){if(!this.length)return this;e.datepicker.initialized||(e(document).mousedown(e.datepicker._checkExternalClick),e.datepicker.initialized=!0),0===e("#"+e.datepicker._mainDivId).length&&e("body").append(e.datepicker.dpDiv);var i=Array.prototype.slice.call(arguments,1);return"string"!=typeof t||"isDisabled"!==t&&"getDate"!==t&&"widget"!==t?"option"===t&&2===arguments.length&&"string"==typeof arguments[1]?e.datepicker["_"+t+"Datepicker"].apply(e.datepicker,[this[0]].concat(i)):this.each(function(){"string"==typeof t?e.datepicker["_"+t+"Datepicker"].apply(e.datepicker,[this].concat(i)):e.datepicker._attachDatepicker(this,t)}):e.datepicker["_"+t+"Datepicker"].apply(e.datepicker,[this[0]].concat(i))},e.datepicker=new n,e.datepicker.initialized=!1,e.datepicker.uuid=(new Date).getTime(),e.datepicker.version="1.11.2",e.datepicker,e.widget("ui.draggable",e.ui.mouse,{version:"1.11.2",widgetEventPrefix:"drag",options:{addClasses:!0,appendTo:"parent",axis:!1,connectToSortable:!1,containment:!1,cursor:"auto",cursorAt:!1,grid:!1,handle:!1,helper:"original",iframeFix:!1,opacity:!1,refreshPositions:!1,revert:!1,revertDuration:500,scope:"default",scroll:!0,scrollSensitivity:20,scrollSpeed:20,snap:!1,snapMode:"both",snapTolerance:20,stack:!1,zIndex:!1,drag:null,start:null,stop:null},_create:function(){"original"===this.options.helper&&this._setPositionRelative(),this.options.addClasses&&this.element.addClass("ui-draggable"),this.options.disabled&&this.element.addClass("ui-draggable-disabled"),this._setHandleClassName(),this._mouseInit()},_setOption:function(e,t){this._super(e,t),"handle"===e&&(this._removeHandleClassName(),this._setHandleClassName())},_destroy:function(){return(this.helper||this.element).is(".ui-draggable-dragging")?(this.destroyOnClear=!0,void 0):(this.element.removeClass("ui-draggable ui-draggable-dragging ui-draggable-disabled"),this._removeHandleClassName(),this._mouseDestroy(),void 0)},_mouseCapture:function(t){var i=this.options;return this._blurActiveElement(t),this.helper||i.disabled||e(t.target).closest(".ui-resizable-handle").length>0?!1:(this.handle=this._getHandle(t),this.handle?(this._blockFrames(i.iframeFix===!0?"iframe":i.iframeFix),!0):!1)},_blockFrames:function(t){this.iframeBlocks=this.document.find(t).map(function(){var t=e(this);return e("<div>").css("position","absolute").appendTo(t.parent()).outerWidth(t.outerWidth()).outerHeight(t.outerHeight()).offset(t.offset())[0]})},_unblockFrames:function(){this.iframeBlocks&&(this.iframeBlocks.remove(),delete this.iframeBlocks)},_blurActiveElement:function(t){var i=this.document[0];if(this.handleElement.is(t.target))try{i.activeElement&&"body"!==i.activeElement.nodeName.toLowerCase()&&e(i.activeElement).blur()}catch(s){}},_mouseStart:function(t){var i=this.options;return this.helper=this._createHelper(t),this.helper.addClass("ui-draggable-dragging"),this._cacheHelperProportions(),e.ui.ddmanager&&(e.ui.ddmanager.current=this),this._cacheMargins(),this.cssPosition=this.helper.css("position"),this.scrollParent=this.helper.scrollParent(!0),this.offsetParent=this.helper.offsetParent(),this.hasFixedAncestor=this.helper.parents().filter(function(){return"fixed"===e(this).css("position")}).length>0,this.positionAbs=this.element.offset(),this._refreshOffsets(t),this.originalPosition=this.position=this._generatePosition(t,!1),this.originalPageX=t.pageX,this.originalPageY=t.pageY,i.cursorAt&&this._adjustOffsetFromHelper(i.cursorAt),this._setContainment(),this._trigger("start",t)===!1?(this._clear(),!1):(this._cacheHelperProportions(),e.ui.ddmanager&&!i.dropBehaviour&&e.ui.ddmanager.prepareOffsets(this,t),this._normalizeRightBottom(),this._mouseDrag(t,!0),e.ui.ddmanager&&e.ui.ddmanager.dragStart(this,t),!0)},_refreshOffsets:function(e){this.offset={top:this.positionAbs.top-this.margins.top,left:this.positionAbs.left-this.margins.left,scroll:!1,parent:this._getParentOffset(),relative:this._getRelativeOffset()},this.offset.click={left:e.pageX-this.offset.left,top:e.pageY-this.offset.top}},_mouseDrag:function(t,i){if(this.hasFixedAncestor&&(this.offset.parent=this._getParentOffset()),this.position=this._generatePosition(t,!0),this.positionAbs=this._convertPositionTo("absolute"),!i){var s=this._uiHash();if(this._trigger("drag",t,s)===!1)return this._mouseUp({}),!1;this.position=s.position}return this.helper[0].style.left=this.position.left+"px",this.helper[0].style.top=this.position.top+"px",e.ui.ddmanager&&e.ui.ddmanager.drag(this,t),!1},_mouseStop:function(t){var i=this,s=!1;return e.ui.ddmanager&&!this.options.dropBehaviour&&(s=e.ui.ddmanager.drop(this,t)),this.dropped&&(s=this.dropped,this.dropped=!1),"invalid"===this.options.revert&&!s||"valid"===this.options.revert&&s||this.options.revert===!0||e.isFunction(this.options.revert)&&this.options.revert.call(this.element,s)?e(this.helper).animate(this.originalPosition,parseInt(this.options.revertDuration,10),function(){i._trigger("stop",t)!==!1&&i._clear()}):this._trigger("stop",t)!==!1&&this._clear(),!1},_mouseUp:function(t){return this._unblockFrames(),e.ui.ddmanager&&e.ui.ddmanager.dragStop(this,t),this.handleElement.is(t.target)&&this.element.focus(),e.ui.mouse.prototype._mouseUp.call(this,t)},cancel:function(){return this.helper.is(".ui-draggable-dragging")?this._mouseUp({}):this._clear(),this},_getHandle:function(t){return this.options.handle?!!e(t.target).closest(this.element.find(this.options.handle)).length:!0},_setHandleClassName:function(){this.handleElement=this.options.handle?this.element.find(this.options.handle):this.element,this.handleElement.addClass("ui-draggable-handle")},_removeHandleClassName:function(){this.handleElement.removeClass("ui-draggable-handle")},_createHelper:function(t){var i=this.options,s=e.isFunction(i.helper),n=s?e(i.helper.apply(this.element[0],[t])):"clone"===i.helper?this.element.clone().removeAttr("id"):this.element;return n.parents("body").length||n.appendTo("parent"===i.appendTo?this.element[0].parentNode:i.appendTo),s&&n[0]===this.element[0]&&this._setPositionRelative(),n[0]===this.element[0]||/(fixed|absolute)/.test(n.css("position"))||n.css("position","absolute"),n},_setPositionRelative:function(){/^(?:r|a|f)/.test(this.element.css("position"))||(this.element[0].style.position="relative")},_adjustOffsetFromHelper:function(t){"string"==typeof t&&(t=t.split(" ")),e.isArray(t)&&(t={left:+t[0],top:+t[1]||0}),"left"in t&&(this.offset.click.left=t.left+this.margins.left),"right"in t&&(this.offset.click.left=this.helperProportions.width-t.right+this.margins.left),"top"in t&&(this.offset.click.top=t.top+this.margins.top),"bottom"in t&&(this.offset.click.top=this.helperProportions.height-t.bottom+this.margins.top)},_isRootNode:function(e){return/(html|body)/i.test(e.tagName)||e===this.document[0]},_getParentOffset:function(){var t=this.offsetParent.offset(),i=this.document[0];return"absolute"===this.cssPosition&&this.scrollParent[0]!==i&&e.contains(this.scrollParent[0],this.offsetParent[0])&&(t.left+=this.scrollParent.scrollLeft(),t.top+=this.scrollParent.scrollTop()),this._isRootNode(this.offsetParent[0])&&(t={top:0,left:0}),{top:t.top+(parseInt(this.offsetParent.css("borderTopWidth"),10)||0),left:t.left+(parseInt(this.offsetParent.css("borderLeftWidth"),10)||0)}},_getRelativeOffset:function(){if("relative"!==this.cssPosition)return{top:0,left:0};var e=this.element.position(),t=this._isRootNode(this.scrollParent[0]);return{top:e.top-(parseInt(this.helper.css("top"),10)||0)+(t?0:this.scrollParent.scrollTop()),left:e.left-(parseInt(this.helper.css("left"),10)||0)+(t?0:this.scrollParent.scrollLeft())}},_cacheMargins:function(){this.margins={left:parseInt(this.element.css("marginLeft"),10)||0,top:parseInt(this.element.css("marginTop"),10)||0,right:parseInt(this.element.css("marginRight"),10)||0,bottom:parseInt(this.element.css("marginBottom"),10)||0}},_cacheHelperProportions:function(){this.helperProportions={width:this.helper.outerWidth(),height:this.helper.outerHeight()}},_setContainment:function(){var t,i,s,n=this.options,a=this.document[0];return this.relativeContainer=null,n.containment?"window"===n.containment?(this.containment=[e(window).scrollLeft()-this.offset.relative.left-this.offset.parent.left,e(window).scrollTop()-this.offset.relative.top-this.offset.parent.top,e(window).scrollLeft()+e(window).width()-this.helperProportions.width-this.margins.left,e(window).scrollTop()+(e(window).height()||a.body.parentNode.scrollHeight)-this.helperProportions.height-this.margins.top],void 0):"document"===n.containment?(this.containment=[0,0,e(a).width()-this.helperProportions.width-this.margins.left,(e(a).height()||a.body.parentNode.scrollHeight)-this.helperProportions.height-this.margins.top],void 0):n.containment.constructor===Array?(this.containment=n.containment,void 0):("parent"===n.containment&&(n.containment=this.helper[0].parentNode),i=e(n.containment),s=i[0],s&&(t=/(scroll|auto)/.test(i.css("overflow")),this.containment=[(parseInt(i.css("borderLeftWidth"),10)||0)+(parseInt(i.css("paddingLeft"),10)||0),(parseInt(i.css("borderTopWidth"),10)||0)+(parseInt(i.css("paddingTop"),10)||0),(t?Math.max(s.scrollWidth,s.offsetWidth):s.offsetWidth)-(parseInt(i.css("borderRightWidth"),10)||0)-(parseInt(i.css("paddingRight"),10)||0)-this.helperProportions.width-this.margins.left-this.margins.right,(t?Math.max(s.scrollHeight,s.offsetHeight):s.offsetHeight)-(parseInt(i.css("borderBottomWidth"),10)||0)-(parseInt(i.css("paddingBottom"),10)||0)-this.helperProportions.height-this.margins.top-this.margins.bottom],this.relativeContainer=i),void 0):(this.containment=null,void 0) -},_convertPositionTo:function(e,t){t||(t=this.position);var i="absolute"===e?1:-1,s=this._isRootNode(this.scrollParent[0]);return{top:t.top+this.offset.relative.top*i+this.offset.parent.top*i-("fixed"===this.cssPosition?-this.offset.scroll.top:s?0:this.offset.scroll.top)*i,left:t.left+this.offset.relative.left*i+this.offset.parent.left*i-("fixed"===this.cssPosition?-this.offset.scroll.left:s?0:this.offset.scroll.left)*i}},_generatePosition:function(e,t){var i,s,n,a,o=this.options,r=this._isRootNode(this.scrollParent[0]),h=e.pageX,l=e.pageY;return r&&this.offset.scroll||(this.offset.scroll={top:this.scrollParent.scrollTop(),left:this.scrollParent.scrollLeft()}),t&&(this.containment&&(this.relativeContainer?(s=this.relativeContainer.offset(),i=[this.containment[0]+s.left,this.containment[1]+s.top,this.containment[2]+s.left,this.containment[3]+s.top]):i=this.containment,e.pageX-this.offset.click.left<i[0]&&(h=i[0]+this.offset.click.left),e.pageY-this.offset.click.top<i[1]&&(l=i[1]+this.offset.click.top),e.pageX-this.offset.click.left>i[2]&&(h=i[2]+this.offset.click.left),e.pageY-this.offset.click.top>i[3]&&(l=i[3]+this.offset.click.top)),o.grid&&(n=o.grid[1]?this.originalPageY+Math.round((l-this.originalPageY)/o.grid[1])*o.grid[1]:this.originalPageY,l=i?n-this.offset.click.top>=i[1]||n-this.offset.click.top>i[3]?n:n-this.offset.click.top>=i[1]?n-o.grid[1]:n+o.grid[1]:n,a=o.grid[0]?this.originalPageX+Math.round((h-this.originalPageX)/o.grid[0])*o.grid[0]:this.originalPageX,h=i?a-this.offset.click.left>=i[0]||a-this.offset.click.left>i[2]?a:a-this.offset.click.left>=i[0]?a-o.grid[0]:a+o.grid[0]:a),"y"===o.axis&&(h=this.originalPageX),"x"===o.axis&&(l=this.originalPageY)),{top:l-this.offset.click.top-this.offset.relative.top-this.offset.parent.top+("fixed"===this.cssPosition?-this.offset.scroll.top:r?0:this.offset.scroll.top),left:h-this.offset.click.left-this.offset.relative.left-this.offset.parent.left+("fixed"===this.cssPosition?-this.offset.scroll.left:r?0:this.offset.scroll.left)}},_clear:function(){this.helper.removeClass("ui-draggable-dragging"),this.helper[0]===this.element[0]||this.cancelHelperRemoval||this.helper.remove(),this.helper=null,this.cancelHelperRemoval=!1,this.destroyOnClear&&this.destroy()},_normalizeRightBottom:function(){"y"!==this.options.axis&&"auto"!==this.helper.css("right")&&(this.helper.width(this.helper.width()),this.helper.css("right","auto")),"x"!==this.options.axis&&"auto"!==this.helper.css("bottom")&&(this.helper.height(this.helper.height()),this.helper.css("bottom","auto"))},_trigger:function(t,i,s){return s=s||this._uiHash(),e.ui.plugin.call(this,t,[i,s,this],!0),/^(drag|start|stop)/.test(t)&&(this.positionAbs=this._convertPositionTo("absolute"),s.offset=this.positionAbs),e.Widget.prototype._trigger.call(this,t,i,s)},plugins:{},_uiHash:function(){return{helper:this.helper,position:this.position,originalPosition:this.originalPosition,offset:this.positionAbs}}}),e.ui.plugin.add("draggable","connectToSortable",{start:function(t,i,s){var n=e.extend({},i,{item:s.element});s.sortables=[],e(s.options.connectToSortable).each(function(){var i=e(this).sortable("instance");i&&!i.options.disabled&&(s.sortables.push(i),i.refreshPositions(),i._trigger("activate",t,n))})},stop:function(t,i,s){var n=e.extend({},i,{item:s.element});s.cancelHelperRemoval=!1,e.each(s.sortables,function(){var e=this;e.isOver?(e.isOver=0,s.cancelHelperRemoval=!0,e.cancelHelperRemoval=!1,e._storedCSS={position:e.placeholder.css("position"),top:e.placeholder.css("top"),left:e.placeholder.css("left")},e._mouseStop(t),e.options.helper=e.options._helper):(e.cancelHelperRemoval=!0,e._trigger("deactivate",t,n))})},drag:function(t,i,s){e.each(s.sortables,function(){var n=!1,a=this;a.positionAbs=s.positionAbs,a.helperProportions=s.helperProportions,a.offset.click=s.offset.click,a._intersectsWith(a.containerCache)&&(n=!0,e.each(s.sortables,function(){return this.positionAbs=s.positionAbs,this.helperProportions=s.helperProportions,this.offset.click=s.offset.click,this!==a&&this._intersectsWith(this.containerCache)&&e.contains(a.element[0],this.element[0])&&(n=!1),n})),n?(a.isOver||(a.isOver=1,a.currentItem=i.helper.appendTo(a.element).data("ui-sortable-item",!0),a.options._helper=a.options.helper,a.options.helper=function(){return i.helper[0]},t.target=a.currentItem[0],a._mouseCapture(t,!0),a._mouseStart(t,!0,!0),a.offset.click.top=s.offset.click.top,a.offset.click.left=s.offset.click.left,a.offset.parent.left-=s.offset.parent.left-a.offset.parent.left,a.offset.parent.top-=s.offset.parent.top-a.offset.parent.top,s._trigger("toSortable",t),s.dropped=a.element,e.each(s.sortables,function(){this.refreshPositions()}),s.currentItem=s.element,a.fromOutside=s),a.currentItem&&(a._mouseDrag(t),i.position=a.position)):a.isOver&&(a.isOver=0,a.cancelHelperRemoval=!0,a.options._revert=a.options.revert,a.options.revert=!1,a._trigger("out",t,a._uiHash(a)),a._mouseStop(t,!0),a.options.revert=a.options._revert,a.options.helper=a.options._helper,a.placeholder&&a.placeholder.remove(),s._refreshOffsets(t),i.position=s._generatePosition(t,!0),s._trigger("fromSortable",t),s.dropped=!1,e.each(s.sortables,function(){this.refreshPositions()}))})}}),e.ui.plugin.add("draggable","cursor",{start:function(t,i,s){var n=e("body"),a=s.options;n.css("cursor")&&(a._cursor=n.css("cursor")),n.css("cursor",a.cursor)},stop:function(t,i,s){var n=s.options;n._cursor&&e("body").css("cursor",n._cursor)}}),e.ui.plugin.add("draggable","opacity",{start:function(t,i,s){var n=e(i.helper),a=s.options;n.css("opacity")&&(a._opacity=n.css("opacity")),n.css("opacity",a.opacity)},stop:function(t,i,s){var n=s.options;n._opacity&&e(i.helper).css("opacity",n._opacity)}}),e.ui.plugin.add("draggable","scroll",{start:function(e,t,i){i.scrollParentNotHidden||(i.scrollParentNotHidden=i.helper.scrollParent(!1)),i.scrollParentNotHidden[0]!==i.document[0]&&"HTML"!==i.scrollParentNotHidden[0].tagName&&(i.overflowOffset=i.scrollParentNotHidden.offset())},drag:function(t,i,s){var n=s.options,a=!1,o=s.scrollParentNotHidden[0],r=s.document[0];o!==r&&"HTML"!==o.tagName?(n.axis&&"x"===n.axis||(s.overflowOffset.top+o.offsetHeight-t.pageY<n.scrollSensitivity?o.scrollTop=a=o.scrollTop+n.scrollSpeed:t.pageY-s.overflowOffset.top<n.scrollSensitivity&&(o.scrollTop=a=o.scrollTop-n.scrollSpeed)),n.axis&&"y"===n.axis||(s.overflowOffset.left+o.offsetWidth-t.pageX<n.scrollSensitivity?o.scrollLeft=a=o.scrollLeft+n.scrollSpeed:t.pageX-s.overflowOffset.left<n.scrollSensitivity&&(o.scrollLeft=a=o.scrollLeft-n.scrollSpeed))):(n.axis&&"x"===n.axis||(t.pageY-e(r).scrollTop()<n.scrollSensitivity?a=e(r).scrollTop(e(r).scrollTop()-n.scrollSpeed):e(window).height()-(t.pageY-e(r).scrollTop())<n.scrollSensitivity&&(a=e(r).scrollTop(e(r).scrollTop()+n.scrollSpeed))),n.axis&&"y"===n.axis||(t.pageX-e(r).scrollLeft()<n.scrollSensitivity?a=e(r).scrollLeft(e(r).scrollLeft()-n.scrollSpeed):e(window).width()-(t.pageX-e(r).scrollLeft())<n.scrollSensitivity&&(a=e(r).scrollLeft(e(r).scrollLeft()+n.scrollSpeed)))),a!==!1&&e.ui.ddmanager&&!n.dropBehaviour&&e.ui.ddmanager.prepareOffsets(s,t)}}),e.ui.plugin.add("draggable","snap",{start:function(t,i,s){var n=s.options;s.snapElements=[],e(n.snap.constructor!==String?n.snap.items||":data(ui-draggable)":n.snap).each(function(){var t=e(this),i=t.offset();this!==s.element[0]&&s.snapElements.push({item:this,width:t.outerWidth(),height:t.outerHeight(),top:i.top,left:i.left})})},drag:function(t,i,s){var n,a,o,r,h,l,u,d,c,p,f=s.options,m=f.snapTolerance,g=i.offset.left,v=g+s.helperProportions.width,y=i.offset.top,b=y+s.helperProportions.height;for(c=s.snapElements.length-1;c>=0;c--)h=s.snapElements[c].left-s.margins.left,l=h+s.snapElements[c].width,u=s.snapElements[c].top-s.margins.top,d=u+s.snapElements[c].height,h-m>v||g>l+m||u-m>b||y>d+m||!e.contains(s.snapElements[c].item.ownerDocument,s.snapElements[c].item)?(s.snapElements[c].snapping&&s.options.snap.release&&s.options.snap.release.call(s.element,t,e.extend(s._uiHash(),{snapItem:s.snapElements[c].item})),s.snapElements[c].snapping=!1):("inner"!==f.snapMode&&(n=m>=Math.abs(u-b),a=m>=Math.abs(d-y),o=m>=Math.abs(h-v),r=m>=Math.abs(l-g),n&&(i.position.top=s._convertPositionTo("relative",{top:u-s.helperProportions.height,left:0}).top),a&&(i.position.top=s._convertPositionTo("relative",{top:d,left:0}).top),o&&(i.position.left=s._convertPositionTo("relative",{top:0,left:h-s.helperProportions.width}).left),r&&(i.position.left=s._convertPositionTo("relative",{top:0,left:l}).left)),p=n||a||o||r,"outer"!==f.snapMode&&(n=m>=Math.abs(u-y),a=m>=Math.abs(d-b),o=m>=Math.abs(h-g),r=m>=Math.abs(l-v),n&&(i.position.top=s._convertPositionTo("relative",{top:u,left:0}).top),a&&(i.position.top=s._convertPositionTo("relative",{top:d-s.helperProportions.height,left:0}).top),o&&(i.position.left=s._convertPositionTo("relative",{top:0,left:h}).left),r&&(i.position.left=s._convertPositionTo("relative",{top:0,left:l-s.helperProportions.width}).left)),!s.snapElements[c].snapping&&(n||a||o||r||p)&&s.options.snap.snap&&s.options.snap.snap.call(s.element,t,e.extend(s._uiHash(),{snapItem:s.snapElements[c].item})),s.snapElements[c].snapping=n||a||o||r||p)}}),e.ui.plugin.add("draggable","stack",{start:function(t,i,s){var n,a=s.options,o=e.makeArray(e(a.stack)).sort(function(t,i){return(parseInt(e(t).css("zIndex"),10)||0)-(parseInt(e(i).css("zIndex"),10)||0)});o.length&&(n=parseInt(e(o[0]).css("zIndex"),10)||0,e(o).each(function(t){e(this).css("zIndex",n+t)}),this.css("zIndex",n+o.length))}}),e.ui.plugin.add("draggable","zIndex",{start:function(t,i,s){var n=e(i.helper),a=s.options;n.css("zIndex")&&(a._zIndex=n.css("zIndex")),n.css("zIndex",a.zIndex)},stop:function(t,i,s){var n=s.options;n._zIndex&&e(i.helper).css("zIndex",n._zIndex)}}),e.ui.draggable,e.widget("ui.resizable",e.ui.mouse,{version:"1.11.2",widgetEventPrefix:"resize",options:{alsoResize:!1,animate:!1,animateDuration:"slow",animateEasing:"swing",aspectRatio:!1,autoHide:!1,containment:!1,ghost:!1,grid:!1,handles:"e,s,se",helper:!1,maxHeight:null,maxWidth:null,minHeight:10,minWidth:10,zIndex:90,resize:null,start:null,stop:null},_num:function(e){return parseInt(e,10)||0},_isNumber:function(e){return!isNaN(parseInt(e,10))},_hasScroll:function(t,i){if("hidden"===e(t).css("overflow"))return!1;var s=i&&"left"===i?"scrollLeft":"scrollTop",n=!1;return t[s]>0?!0:(t[s]=1,n=t[s]>0,t[s]=0,n)},_create:function(){var t,i,s,n,a,o=this,r=this.options;if(this.element.addClass("ui-resizable"),e.extend(this,{_aspectRatio:!!r.aspectRatio,aspectRatio:r.aspectRatio,originalElement:this.element,_proportionallyResizeElements:[],_helper:r.helper||r.ghost||r.animate?r.helper||"ui-resizable-helper":null}),this.element[0].nodeName.match(/canvas|textarea|input|select|button|img/i)&&(this.element.wrap(e("<div class='ui-wrapper' style='overflow: hidden;'></div>").css({position:this.element.css("position"),width:this.element.outerWidth(),height:this.element.outerHeight(),top:this.element.css("top"),left:this.element.css("left")})),this.element=this.element.parent().data("ui-resizable",this.element.resizable("instance")),this.elementIsWrapper=!0,this.element.css({marginLeft:this.originalElement.css("marginLeft"),marginTop:this.originalElement.css("marginTop"),marginRight:this.originalElement.css("marginRight"),marginBottom:this.originalElement.css("marginBottom")}),this.originalElement.css({marginLeft:0,marginTop:0,marginRight:0,marginBottom:0}),this.originalResizeStyle=this.originalElement.css("resize"),this.originalElement.css("resize","none"),this._proportionallyResizeElements.push(this.originalElement.css({position:"static",zoom:1,display:"block"})),this.originalElement.css({margin:this.originalElement.css("margin")}),this._proportionallyResize()),this.handles=r.handles||(e(".ui-resizable-handle",this.element).length?{n:".ui-resizable-n",e:".ui-resizable-e",s:".ui-resizable-s",w:".ui-resizable-w",se:".ui-resizable-se",sw:".ui-resizable-sw",ne:".ui-resizable-ne",nw:".ui-resizable-nw"}:"e,s,se"),this.handles.constructor===String)for("all"===this.handles&&(this.handles="n,e,s,w,se,sw,ne,nw"),t=this.handles.split(","),this.handles={},i=0;t.length>i;i++)s=e.trim(t[i]),a="ui-resizable-"+s,n=e("<div class='ui-resizable-handle "+a+"'></div>"),n.css({zIndex:r.zIndex}),"se"===s&&n.addClass("ui-icon ui-icon-gripsmall-diagonal-se"),this.handles[s]=".ui-resizable-"+s,this.element.append(n);this._renderAxis=function(t){var i,s,n,a;t=t||this.element;for(i in this.handles)this.handles[i].constructor===String&&(this.handles[i]=this.element.children(this.handles[i]).first().show()),this.elementIsWrapper&&this.originalElement[0].nodeName.match(/textarea|input|select|button/i)&&(s=e(this.handles[i],this.element),a=/sw|ne|nw|se|n|s/.test(i)?s.outerHeight():s.outerWidth(),n=["padding",/ne|nw|n/.test(i)?"Top":/se|sw|s/.test(i)?"Bottom":/^e$/.test(i)?"Right":"Left"].join(""),t.css(n,a),this._proportionallyResize()),e(this.handles[i]).length},this._renderAxis(this.element),this._handles=e(".ui-resizable-handle",this.element).disableSelection(),this._handles.mouseover(function(){o.resizing||(this.className&&(n=this.className.match(/ui-resizable-(se|sw|ne|nw|n|e|s|w)/i)),o.axis=n&&n[1]?n[1]:"se")}),r.autoHide&&(this._handles.hide(),e(this.element).addClass("ui-resizable-autohide").mouseenter(function(){r.disabled||(e(this).removeClass("ui-resizable-autohide"),o._handles.show())}).mouseleave(function(){r.disabled||o.resizing||(e(this).addClass("ui-resizable-autohide"),o._handles.hide())})),this._mouseInit()},_destroy:function(){this._mouseDestroy();var t,i=function(t){e(t).removeClass("ui-resizable ui-resizable-disabled ui-resizable-resizing").removeData("resizable").removeData("ui-resizable").unbind(".resizable").find(".ui-resizable-handle").remove()};return this.elementIsWrapper&&(i(this.element),t=this.element,this.originalElement.css({position:t.css("position"),width:t.outerWidth(),height:t.outerHeight(),top:t.css("top"),left:t.css("left")}).insertAfter(t),t.remove()),this.originalElement.css("resize",this.originalResizeStyle),i(this.originalElement),this},_mouseCapture:function(t){var i,s,n=!1;for(i in this.handles)s=e(this.handles[i])[0],(s===t.target||e.contains(s,t.target))&&(n=!0);return!this.options.disabled&&n},_mouseStart:function(t){var i,s,n,a=this.options,o=this.element;return this.resizing=!0,this._renderProxy(),i=this._num(this.helper.css("left")),s=this._num(this.helper.css("top")),a.containment&&(i+=e(a.containment).scrollLeft()||0,s+=e(a.containment).scrollTop()||0),this.offset=this.helper.offset(),this.position={left:i,top:s},this.size=this._helper?{width:this.helper.width(),height:this.helper.height()}:{width:o.width(),height:o.height()},this.originalSize=this._helper?{width:o.outerWidth(),height:o.outerHeight()}:{width:o.width(),height:o.height()},this.sizeDiff={width:o.outerWidth()-o.width(),height:o.outerHeight()-o.height()},this.originalPosition={left:i,top:s},this.originalMousePosition={left:t.pageX,top:t.pageY},this.aspectRatio="number"==typeof a.aspectRatio?a.aspectRatio:this.originalSize.width/this.originalSize.height||1,n=e(".ui-resizable-"+this.axis).css("cursor"),e("body").css("cursor","auto"===n?this.axis+"-resize":n),o.addClass("ui-resizable-resizing"),this._propagate("start",t),!0},_mouseDrag:function(t){var i,s,n=this.originalMousePosition,a=this.axis,o=t.pageX-n.left||0,r=t.pageY-n.top||0,h=this._change[a];return this._updatePrevProperties(),h?(i=h.apply(this,[t,o,r]),this._updateVirtualBoundaries(t.shiftKey),(this._aspectRatio||t.shiftKey)&&(i=this._updateRatio(i,t)),i=this._respectSize(i,t),this._updateCache(i),this._propagate("resize",t),s=this._applyChanges(),!this._helper&&this._proportionallyResizeElements.length&&this._proportionallyResize(),e.isEmptyObject(s)||(this._updatePrevProperties(),this._trigger("resize",t,this.ui()),this._applyChanges()),!1):!1},_mouseStop:function(t){this.resizing=!1;var i,s,n,a,o,r,h,l=this.options,u=this;return this._helper&&(i=this._proportionallyResizeElements,s=i.length&&/textarea/i.test(i[0].nodeName),n=s&&this._hasScroll(i[0],"left")?0:u.sizeDiff.height,a=s?0:u.sizeDiff.width,o={width:u.helper.width()-a,height:u.helper.height()-n},r=parseInt(u.element.css("left"),10)+(u.position.left-u.originalPosition.left)||null,h=parseInt(u.element.css("top"),10)+(u.position.top-u.originalPosition.top)||null,l.animate||this.element.css(e.extend(o,{top:h,left:r})),u.helper.height(u.size.height),u.helper.width(u.size.width),this._helper&&!l.animate&&this._proportionallyResize()),e("body").css("cursor","auto"),this.element.removeClass("ui-resizable-resizing"),this._propagate("stop",t),this._helper&&this.helper.remove(),!1},_updatePrevProperties:function(){this.prevPosition={top:this.position.top,left:this.position.left},this.prevSize={width:this.size.width,height:this.size.height}},_applyChanges:function(){var e={};return this.position.top!==this.prevPosition.top&&(e.top=this.position.top+"px"),this.position.left!==this.prevPosition.left&&(e.left=this.position.left+"px"),this.size.width!==this.prevSize.width&&(e.width=this.size.width+"px"),this.size.height!==this.prevSize.height&&(e.height=this.size.height+"px"),this.helper.css(e),e},_updateVirtualBoundaries:function(e){var t,i,s,n,a,o=this.options;a={minWidth:this._isNumber(o.minWidth)?o.minWidth:0,maxWidth:this._isNumber(o.maxWidth)?o.maxWidth:1/0,minHeight:this._isNumber(o.minHeight)?o.minHeight:0,maxHeight:this._isNumber(o.maxHeight)?o.maxHeight:1/0},(this._aspectRatio||e)&&(t=a.minHeight*this.aspectRatio,s=a.minWidth/this.aspectRatio,i=a.maxHeight*this.aspectRatio,n=a.maxWidth/this.aspectRatio,t>a.minWidth&&(a.minWidth=t),s>a.minHeight&&(a.minHeight=s),a.maxWidth>i&&(a.maxWidth=i),a.maxHeight>n&&(a.maxHeight=n)),this._vBoundaries=a},_updateCache:function(e){this.offset=this.helper.offset(),this._isNumber(e.left)&&(this.position.left=e.left),this._isNumber(e.top)&&(this.position.top=e.top),this._isNumber(e.height)&&(this.size.height=e.height),this._isNumber(e.width)&&(this.size.width=e.width)},_updateRatio:function(e){var t=this.position,i=this.size,s=this.axis;return this._isNumber(e.height)?e.width=e.height*this.aspectRatio:this._isNumber(e.width)&&(e.height=e.width/this.aspectRatio),"sw"===s&&(e.left=t.left+(i.width-e.width),e.top=null),"nw"===s&&(e.top=t.top+(i.height-e.height),e.left=t.left+(i.width-e.width)),e},_respectSize:function(e){var t=this._vBoundaries,i=this.axis,s=this._isNumber(e.width)&&t.maxWidth&&t.maxWidth<e.width,n=this._isNumber(e.height)&&t.maxHeight&&t.maxHeight<e.height,a=this._isNumber(e.width)&&t.minWidth&&t.minWidth>e.width,o=this._isNumber(e.height)&&t.minHeight&&t.minHeight>e.height,r=this.originalPosition.left+this.originalSize.width,h=this.position.top+this.size.height,l=/sw|nw|w/.test(i),u=/nw|ne|n/.test(i);return a&&(e.width=t.minWidth),o&&(e.height=t.minHeight),s&&(e.width=t.maxWidth),n&&(e.height=t.maxHeight),a&&l&&(e.left=r-t.minWidth),s&&l&&(e.left=r-t.maxWidth),o&&u&&(e.top=h-t.minHeight),n&&u&&(e.top=h-t.maxHeight),e.width||e.height||e.left||!e.top?e.width||e.height||e.top||!e.left||(e.left=null):e.top=null,e},_getPaddingPlusBorderDimensions:function(e){for(var t=0,i=[],s=[e.css("borderTopWidth"),e.css("borderRightWidth"),e.css("borderBottomWidth"),e.css("borderLeftWidth")],n=[e.css("paddingTop"),e.css("paddingRight"),e.css("paddingBottom"),e.css("paddingLeft")];4>t;t++)i[t]=parseInt(s[t],10)||0,i[t]+=parseInt(n[t],10)||0;return{height:i[0]+i[2],width:i[1]+i[3]}},_proportionallyResize:function(){if(this._proportionallyResizeElements.length)for(var e,t=0,i=this.helper||this.element;this._proportionallyResizeElements.length>t;t++)e=this._proportionallyResizeElements[t],this.outerDimensions||(this.outerDimensions=this._getPaddingPlusBorderDimensions(e)),e.css({height:i.height()-this.outerDimensions.height||0,width:i.width()-this.outerDimensions.width||0})},_renderProxy:function(){var t=this.element,i=this.options;this.elementOffset=t.offset(),this._helper?(this.helper=this.helper||e("<div style='overflow:hidden;'></div>"),this.helper.addClass(this._helper).css({width:this.element.outerWidth()-1,height:this.element.outerHeight()-1,position:"absolute",left:this.elementOffset.left+"px",top:this.elementOffset.top+"px",zIndex:++i.zIndex}),this.helper.appendTo("body").disableSelection()):this.helper=this.element},_change:{e:function(e,t){return{width:this.originalSize.width+t}},w:function(e,t){var i=this.originalSize,s=this.originalPosition;return{left:s.left+t,width:i.width-t}},n:function(e,t,i){var s=this.originalSize,n=this.originalPosition;return{top:n.top+i,height:s.height-i}},s:function(e,t,i){return{height:this.originalSize.height+i}},se:function(t,i,s){return e.extend(this._change.s.apply(this,arguments),this._change.e.apply(this,[t,i,s]))},sw:function(t,i,s){return e.extend(this._change.s.apply(this,arguments),this._change.w.apply(this,[t,i,s]))},ne:function(t,i,s){return e.extend(this._change.n.apply(this,arguments),this._change.e.apply(this,[t,i,s]))},nw:function(t,i,s){return e.extend(this._change.n.apply(this,arguments),this._change.w.apply(this,[t,i,s]))}},_propagate:function(t,i){e.ui.plugin.call(this,t,[i,this.ui()]),"resize"!==t&&this._trigger(t,i,this.ui())},plugins:{},ui:function(){return{originalElement:this.originalElement,element:this.element,helper:this.helper,position:this.position,size:this.size,originalSize:this.originalSize,originalPosition:this.originalPosition}}}),e.ui.plugin.add("resizable","animate",{stop:function(t){var i=e(this).resizable("instance"),s=i.options,n=i._proportionallyResizeElements,a=n.length&&/textarea/i.test(n[0].nodeName),o=a&&i._hasScroll(n[0],"left")?0:i.sizeDiff.height,r=a?0:i.sizeDiff.width,h={width:i.size.width-r,height:i.size.height-o},l=parseInt(i.element.css("left"),10)+(i.position.left-i.originalPosition.left)||null,u=parseInt(i.element.css("top"),10)+(i.position.top-i.originalPosition.top)||null;i.element.animate(e.extend(h,u&&l?{top:u,left:l}:{}),{duration:s.animateDuration,easing:s.animateEasing,step:function(){var s={width:parseInt(i.element.css("width"),10),height:parseInt(i.element.css("height"),10),top:parseInt(i.element.css("top"),10),left:parseInt(i.element.css("left"),10)};n&&n.length&&e(n[0]).css({width:s.width,height:s.height}),i._updateCache(s),i._propagate("resize",t)}})}}),e.ui.plugin.add("resizable","containment",{start:function(){var t,i,s,n,a,o,r,h=e(this).resizable("instance"),l=h.options,u=h.element,d=l.containment,c=d instanceof e?d.get(0):/parent/.test(d)?u.parent().get(0):d;c&&(h.containerElement=e(c),/document/.test(d)||d===document?(h.containerOffset={left:0,top:0},h.containerPosition={left:0,top:0},h.parentData={element:e(document),left:0,top:0,width:e(document).width(),height:e(document).height()||document.body.parentNode.scrollHeight}):(t=e(c),i=[],e(["Top","Right","Left","Bottom"]).each(function(e,s){i[e]=h._num(t.css("padding"+s))}),h.containerOffset=t.offset(),h.containerPosition=t.position(),h.containerSize={height:t.innerHeight()-i[3],width:t.innerWidth()-i[1]},s=h.containerOffset,n=h.containerSize.height,a=h.containerSize.width,o=h._hasScroll(c,"left")?c.scrollWidth:a,r=h._hasScroll(c)?c.scrollHeight:n,h.parentData={element:c,left:s.left,top:s.top,width:o,height:r}))},resize:function(t){var i,s,n,a,o=e(this).resizable("instance"),r=o.options,h=o.containerOffset,l=o.position,u=o._aspectRatio||t.shiftKey,d={top:0,left:0},c=o.containerElement,p=!0;c[0]!==document&&/static/.test(c.css("position"))&&(d=h),l.left<(o._helper?h.left:0)&&(o.size.width=o.size.width+(o._helper?o.position.left-h.left:o.position.left-d.left),u&&(o.size.height=o.size.width/o.aspectRatio,p=!1),o.position.left=r.helper?h.left:0),l.top<(o._helper?h.top:0)&&(o.size.height=o.size.height+(o._helper?o.position.top-h.top:o.position.top),u&&(o.size.width=o.size.height*o.aspectRatio,p=!1),o.position.top=o._helper?h.top:0),n=o.containerElement.get(0)===o.element.parent().get(0),a=/relative|absolute/.test(o.containerElement.css("position")),n&&a?(o.offset.left=o.parentData.left+o.position.left,o.offset.top=o.parentData.top+o.position.top):(o.offset.left=o.element.offset().left,o.offset.top=o.element.offset().top),i=Math.abs(o.sizeDiff.width+(o._helper?o.offset.left-d.left:o.offset.left-h.left)),s=Math.abs(o.sizeDiff.height+(o._helper?o.offset.top-d.top:o.offset.top-h.top)),i+o.size.width>=o.parentData.width&&(o.size.width=o.parentData.width-i,u&&(o.size.height=o.size.width/o.aspectRatio,p=!1)),s+o.size.height>=o.parentData.height&&(o.size.height=o.parentData.height-s,u&&(o.size.width=o.size.height*o.aspectRatio,p=!1)),p||(o.position.left=o.prevPosition.left,o.position.top=o.prevPosition.top,o.size.width=o.prevSize.width,o.size.height=o.prevSize.height)},stop:function(){var t=e(this).resizable("instance"),i=t.options,s=t.containerOffset,n=t.containerPosition,a=t.containerElement,o=e(t.helper),r=o.offset(),h=o.outerWidth()-t.sizeDiff.width,l=o.outerHeight()-t.sizeDiff.height;t._helper&&!i.animate&&/relative/.test(a.css("position"))&&e(this).css({left:r.left-n.left-s.left,width:h,height:l}),t._helper&&!i.animate&&/static/.test(a.css("position"))&&e(this).css({left:r.left-n.left-s.left,width:h,height:l})}}),e.ui.plugin.add("resizable","alsoResize",{start:function(){var t=e(this).resizable("instance"),i=t.options,s=function(t){e(t).each(function(){var t=e(this);t.data("ui-resizable-alsoresize",{width:parseInt(t.width(),10),height:parseInt(t.height(),10),left:parseInt(t.css("left"),10),top:parseInt(t.css("top"),10)})})};"object"!=typeof i.alsoResize||i.alsoResize.parentNode?s(i.alsoResize):i.alsoResize.length?(i.alsoResize=i.alsoResize[0],s(i.alsoResize)):e.each(i.alsoResize,function(e){s(e)})},resize:function(t,i){var s=e(this).resizable("instance"),n=s.options,a=s.originalSize,o=s.originalPosition,r={height:s.size.height-a.height||0,width:s.size.width-a.width||0,top:s.position.top-o.top||0,left:s.position.left-o.left||0},h=function(t,s){e(t).each(function(){var t=e(this),n=e(this).data("ui-resizable-alsoresize"),a={},o=s&&s.length?s:t.parents(i.originalElement[0]).length?["width","height"]:["width","height","top","left"];e.each(o,function(e,t){var i=(n[t]||0)+(r[t]||0);i&&i>=0&&(a[t]=i||null)}),t.css(a)})};"object"!=typeof n.alsoResize||n.alsoResize.nodeType?h(n.alsoResize):e.each(n.alsoResize,function(e,t){h(e,t)})},stop:function(){e(this).removeData("resizable-alsoresize")}}),e.ui.plugin.add("resizable","ghost",{start:function(){var t=e(this).resizable("instance"),i=t.options,s=t.size;t.ghost=t.originalElement.clone(),t.ghost.css({opacity:.25,display:"block",position:"relative",height:s.height,width:s.width,margin:0,left:0,top:0}).addClass("ui-resizable-ghost").addClass("string"==typeof i.ghost?i.ghost:""),t.ghost.appendTo(t.helper)},resize:function(){var t=e(this).resizable("instance");t.ghost&&t.ghost.css({position:"relative",height:t.size.height,width:t.size.width})},stop:function(){var t=e(this).resizable("instance");t.ghost&&t.helper&&t.helper.get(0).removeChild(t.ghost.get(0))}}),e.ui.plugin.add("resizable","grid",{resize:function(){var t,i=e(this).resizable("instance"),s=i.options,n=i.size,a=i.originalSize,o=i.originalPosition,r=i.axis,h="number"==typeof s.grid?[s.grid,s.grid]:s.grid,l=h[0]||1,u=h[1]||1,d=Math.round((n.width-a.width)/l)*l,c=Math.round((n.height-a.height)/u)*u,p=a.width+d,f=a.height+c,m=s.maxWidth&&p>s.maxWidth,g=s.maxHeight&&f>s.maxHeight,v=s.minWidth&&s.minWidth>p,y=s.minHeight&&s.minHeight>f;s.grid=h,v&&(p+=l),y&&(f+=u),m&&(p-=l),g&&(f-=u),/^(se|s|e)$/.test(r)?(i.size.width=p,i.size.height=f):/^(ne)$/.test(r)?(i.size.width=p,i.size.height=f,i.position.top=o.top-c):/^(sw)$/.test(r)?(i.size.width=p,i.size.height=f,i.position.left=o.left-d):((0>=f-u||0>=p-l)&&(t=i._getPaddingPlusBorderDimensions(this)),f-u>0?(i.size.height=f,i.position.top=o.top-c):(f=u-t.height,i.size.height=f,i.position.top=o.top+a.height-f),p-l>0?(i.size.width=p,i.position.left=o.left-d):(p=u-t.height,i.size.width=p,i.position.left=o.left+a.width-p))}}),e.ui.resizable,e.widget("ui.dialog",{version:"1.11.2",options:{appendTo:"body",autoOpen:!0,buttons:[],closeOnEscape:!0,closeText:"Close",dialogClass:"",draggable:!0,hide:null,height:"auto",maxHeight:null,maxWidth:null,minHeight:150,minWidth:150,modal:!1,position:{my:"center",at:"center",of:window,collision:"fit",using:function(t){var i=e(this).css(t).offset().top;0>i&&e(this).css("top",t.top-i)}},resizable:!0,show:null,title:null,width:300,beforeClose:null,close:null,drag:null,dragStart:null,dragStop:null,focus:null,open:null,resize:null,resizeStart:null,resizeStop:null},sizeRelatedOptions:{buttons:!0,height:!0,maxHeight:!0,maxWidth:!0,minHeight:!0,minWidth:!0,width:!0},resizableRelatedOptions:{maxHeight:!0,maxWidth:!0,minHeight:!0,minWidth:!0},_create:function(){this.originalCss={display:this.element[0].style.display,width:this.element[0].style.width,minHeight:this.element[0].style.minHeight,maxHeight:this.element[0].style.maxHeight,height:this.element[0].style.height},this.originalPosition={parent:this.element.parent(),index:this.element.parent().children().index(this.element)},this.originalTitle=this.element.attr("title"),this.options.title=this.options.title||this.originalTitle,this._createWrapper(),this.element.show().removeAttr("title").addClass("ui-dialog-content ui-widget-content").appendTo(this.uiDialog),this._createTitlebar(),this._createButtonPane(),this.options.draggable&&e.fn.draggable&&this._makeDraggable(),this.options.resizable&&e.fn.resizable&&this._makeResizable(),this._isOpen=!1,this._trackFocus()},_init:function(){this.options.autoOpen&&this.open()},_appendTo:function(){var t=this.options.appendTo;return t&&(t.jquery||t.nodeType)?e(t):this.document.find(t||"body").eq(0)},_destroy:function(){var e,t=this.originalPosition;this._destroyOverlay(),this.element.removeUniqueId().removeClass("ui-dialog-content ui-widget-content").css(this.originalCss).detach(),this.uiDialog.stop(!0,!0).remove(),this.originalTitle&&this.element.attr("title",this.originalTitle),e=t.parent.children().eq(t.index),e.length&&e[0]!==this.element[0]?e.before(this.element):t.parent.append(this.element)},widget:function(){return this.uiDialog},disable:e.noop,enable:e.noop,close:function(t){var i,s=this;if(this._isOpen&&this._trigger("beforeClose",t)!==!1){if(this._isOpen=!1,this._focusedElement=null,this._destroyOverlay(),this._untrackInstance(),!this.opener.filter(":focusable").focus().length)try{i=this.document[0].activeElement,i&&"body"!==i.nodeName.toLowerCase()&&e(i).blur()}catch(n){}this._hide(this.uiDialog,this.options.hide,function(){s._trigger("close",t)})}},isOpen:function(){return this._isOpen},moveToTop:function(){this._moveToTop()},_moveToTop:function(t,i){var s=!1,n=this.uiDialog.siblings(".ui-front:visible").map(function(){return+e(this).css("z-index")}).get(),a=Math.max.apply(null,n);return a>=+this.uiDialog.css("z-index")&&(this.uiDialog.css("z-index",a+1),s=!0),s&&!i&&this._trigger("focus",t),s},open:function(){var t=this;return this._isOpen?(this._moveToTop()&&this._focusTabbable(),void 0):(this._isOpen=!0,this.opener=e(this.document[0].activeElement),this._size(),this._position(),this._createOverlay(),this._moveToTop(null,!0),this.overlay&&this.overlay.css("z-index",this.uiDialog.css("z-index")-1),this._show(this.uiDialog,this.options.show,function(){t._focusTabbable(),t._trigger("focus")}),this._makeFocusTarget(),this._trigger("open"),void 0)},_focusTabbable:function(){var e=this._focusedElement;e||(e=this.element.find("[autofocus]")),e.length||(e=this.element.find(":tabbable")),e.length||(e=this.uiDialogButtonPane.find(":tabbable")),e.length||(e=this.uiDialogTitlebarClose.filter(":tabbable")),e.length||(e=this.uiDialog),e.eq(0).focus()},_keepFocus:function(t){function i(){var t=this.document[0].activeElement,i=this.uiDialog[0]===t||e.contains(this.uiDialog[0],t);i||this._focusTabbable()}t.preventDefault(),i.call(this),this._delay(i)},_createWrapper:function(){this.uiDialog=e("<div>").addClass("ui-dialog ui-widget ui-widget-content ui-corner-all ui-front "+this.options.dialogClass).hide().attr({tabIndex:-1,role:"dialog"}).appendTo(this._appendTo()),this._on(this.uiDialog,{keydown:function(t){if(this.options.closeOnEscape&&!t.isDefaultPrevented()&&t.keyCode&&t.keyCode===e.ui.keyCode.ESCAPE)return t.preventDefault(),this.close(t),void 0; - if(t.keyCode===e.ui.keyCode.TAB&&!t.isDefaultPrevented()){var i=this.uiDialog.find(":tabbable"),s=i.filter(":first"),n=i.filter(":last");t.target!==n[0]&&t.target!==this.uiDialog[0]||t.shiftKey?t.target!==s[0]&&t.target!==this.uiDialog[0]||!t.shiftKey||(this._delay(function(){n.focus()}),t.preventDefault()):(this._delay(function(){s.focus()}),t.preventDefault())}},mousedown:function(e){this._moveToTop(e)&&this._focusTabbable()}}),this.element.find("[aria-describedby]").length||this.uiDialog.attr({"aria-describedby":this.element.uniqueId().attr("id")})},_createTitlebar:function(){var t;this.uiDialogTitlebar=e("<div>").addClass("ui-dialog-titlebar ui-widget-header ui-corner-all ui-helper-clearfix").prependTo(this.uiDialog),this._on(this.uiDialogTitlebar,{mousedown:function(t){e(t.target).closest(".ui-dialog-titlebar-close")||this.uiDialog.focus()}}),this.uiDialogTitlebarClose=e("<button type='button'></button>").button({label:this.options.closeText,icons:{primary:"ui-icon-closethick"},text:!1}).addClass("ui-dialog-titlebar-close").appendTo(this.uiDialogTitlebar),this._on(this.uiDialogTitlebarClose,{click:function(e){e.preventDefault(),this.close(e)}}),t=e("<span>").uniqueId().addClass("ui-dialog-title").prependTo(this.uiDialogTitlebar),this._title(t),this.uiDialog.attr({"aria-labelledby":t.attr("id")})},_title:function(e){this.options.title||e.html("&#160;"),e.text(this.options.title)},_createButtonPane:function(){this.uiDialogButtonPane=e("<div>").addClass("ui-dialog-buttonpane ui-widget-content ui-helper-clearfix"),this.uiButtonSet=e("<div>").addClass("ui-dialog-buttonset").appendTo(this.uiDialogButtonPane),this._createButtons()},_createButtons:function(){var t=this,i=this.options.buttons;return this.uiDialogButtonPane.remove(),this.uiButtonSet.empty(),e.isEmptyObject(i)||e.isArray(i)&&!i.length?(this.uiDialog.removeClass("ui-dialog-buttons"),void 0):(e.each(i,function(i,s){var n,a;s=e.isFunction(s)?{click:s,text:i}:s,s=e.extend({type:"button"},s),n=s.click,s.click=function(){n.apply(t.element[0],arguments)},a={icons:s.icons,text:s.showText},delete s.icons,delete s.showText,e("<button></button>",s).button(a).appendTo(t.uiButtonSet)}),this.uiDialog.addClass("ui-dialog-buttons"),this.uiDialogButtonPane.appendTo(this.uiDialog),void 0)},_makeDraggable:function(){function t(e){return{position:e.position,offset:e.offset}}var i=this,s=this.options;this.uiDialog.draggable({cancel:".ui-dialog-content, .ui-dialog-titlebar-close",handle:".ui-dialog-titlebar",containment:"document",start:function(s,n){e(this).addClass("ui-dialog-dragging"),i._blockFrames(),i._trigger("dragStart",s,t(n))},drag:function(e,s){i._trigger("drag",e,t(s))},stop:function(n,a){var o=a.offset.left-i.document.scrollLeft(),r=a.offset.top-i.document.scrollTop();s.position={my:"left top",at:"left"+(o>=0?"+":"")+o+" "+"top"+(r>=0?"+":"")+r,of:i.window},e(this).removeClass("ui-dialog-dragging"),i._unblockFrames(),i._trigger("dragStop",n,t(a))}})},_makeResizable:function(){function t(e){return{originalPosition:e.originalPosition,originalSize:e.originalSize,position:e.position,size:e.size}}var i=this,s=this.options,n=s.resizable,a=this.uiDialog.css("position"),o="string"==typeof n?n:"n,e,s,w,se,sw,ne,nw";this.uiDialog.resizable({cancel:".ui-dialog-content",containment:"document",alsoResize:this.element,maxWidth:s.maxWidth,maxHeight:s.maxHeight,minWidth:s.minWidth,minHeight:this._minHeight(),handles:o,start:function(s,n){e(this).addClass("ui-dialog-resizing"),i._blockFrames(),i._trigger("resizeStart",s,t(n))},resize:function(e,s){i._trigger("resize",e,t(s))},stop:function(n,a){var o=i.uiDialog.offset(),r=o.left-i.document.scrollLeft(),h=o.top-i.document.scrollTop();s.height=i.uiDialog.height(),s.width=i.uiDialog.width(),s.position={my:"left top",at:"left"+(r>=0?"+":"")+r+" "+"top"+(h>=0?"+":"")+h,of:i.window},e(this).removeClass("ui-dialog-resizing"),i._unblockFrames(),i._trigger("resizeStop",n,t(a))}}).css("position",a)},_trackFocus:function(){this._on(this.widget(),{focusin:function(t){this._makeFocusTarget(),this._focusedElement=e(t.target)}})},_makeFocusTarget:function(){this._untrackInstance(),this._trackingInstances().unshift(this)},_untrackInstance:function(){var t=this._trackingInstances(),i=e.inArray(this,t);-1!==i&&t.splice(i,1)},_trackingInstances:function(){var e=this.document.data("ui-dialog-instances");return e||(e=[],this.document.data("ui-dialog-instances",e)),e},_minHeight:function(){var e=this.options;return"auto"===e.height?e.minHeight:Math.min(e.minHeight,e.height)},_position:function(){var e=this.uiDialog.is(":visible");e||this.uiDialog.show(),this.uiDialog.position(this.options.position),e||this.uiDialog.hide()},_setOptions:function(t){var i=this,s=!1,n={};e.each(t,function(e,t){i._setOption(e,t),e in i.sizeRelatedOptions&&(s=!0),e in i.resizableRelatedOptions&&(n[e]=t)}),s&&(this._size(),this._position()),this.uiDialog.is(":data(ui-resizable)")&&this.uiDialog.resizable("option",n)},_setOption:function(e,t){var i,s,n=this.uiDialog;"dialogClass"===e&&n.removeClass(this.options.dialogClass).addClass(t),"disabled"!==e&&(this._super(e,t),"appendTo"===e&&this.uiDialog.appendTo(this._appendTo()),"buttons"===e&&this._createButtons(),"closeText"===e&&this.uiDialogTitlebarClose.button({label:""+t}),"draggable"===e&&(i=n.is(":data(ui-draggable)"),i&&!t&&n.draggable("destroy"),!i&&t&&this._makeDraggable()),"position"===e&&this._position(),"resizable"===e&&(s=n.is(":data(ui-resizable)"),s&&!t&&n.resizable("destroy"),s&&"string"==typeof t&&n.resizable("option","handles",t),s||t===!1||this._makeResizable()),"title"===e&&this._title(this.uiDialogTitlebar.find(".ui-dialog-title")))},_size:function(){var e,t,i,s=this.options;this.element.show().css({width:"auto",minHeight:0,maxHeight:"none",height:0}),s.minWidth>s.width&&(s.width=s.minWidth),e=this.uiDialog.css({height:"auto",width:s.width}).outerHeight(),t=Math.max(0,s.minHeight-e),i="number"==typeof s.maxHeight?Math.max(0,s.maxHeight-e):"none","auto"===s.height?this.element.css({minHeight:t,maxHeight:i,height:"auto"}):this.element.height(Math.max(0,s.height-e)),this.uiDialog.is(":data(ui-resizable)")&&this.uiDialog.resizable("option","minHeight",this._minHeight())},_blockFrames:function(){this.iframeBlocks=this.document.find("iframe").map(function(){var t=e(this);return e("<div>").css({position:"absolute",width:t.outerWidth(),height:t.outerHeight()}).appendTo(t.parent()).offset(t.offset())[0]})},_unblockFrames:function(){this.iframeBlocks&&(this.iframeBlocks.remove(),delete this.iframeBlocks)},_allowInteraction:function(t){return e(t.target).closest(".ui-dialog").length?!0:!!e(t.target).closest(".ui-datepicker").length},_createOverlay:function(){if(this.options.modal){var t=!0;this._delay(function(){t=!1}),this.document.data("ui-dialog-overlays")||this._on(this.document,{focusin:function(e){t||this._allowInteraction(e)||(e.preventDefault(),this._trackingInstances()[0]._focusTabbable())}}),this.overlay=e("<div>").addClass("ui-widget-overlay ui-front").appendTo(this._appendTo()),this._on(this.overlay,{mousedown:"_keepFocus"}),this.document.data("ui-dialog-overlays",(this.document.data("ui-dialog-overlays")||0)+1)}},_destroyOverlay:function(){if(this.options.modal&&this.overlay){var e=this.document.data("ui-dialog-overlays")-1;e?this.document.data("ui-dialog-overlays",e):this.document.unbind("focusin").removeData("ui-dialog-overlays"),this.overlay.remove(),this.overlay=null}}}),e.widget("ui.droppable",{version:"1.11.2",widgetEventPrefix:"drop",options:{accept:"*",activeClass:!1,addClasses:!0,greedy:!1,hoverClass:!1,scope:"default",tolerance:"intersect",activate:null,deactivate:null,drop:null,out:null,over:null},_create:function(){var t,i=this.options,s=i.accept;this.isover=!1,this.isout=!0,this.accept=e.isFunction(s)?s:function(e){return e.is(s)},this.proportions=function(){return arguments.length?(t=arguments[0],void 0):t?t:t={width:this.element[0].offsetWidth,height:this.element[0].offsetHeight}},this._addToManager(i.scope),i.addClasses&&this.element.addClass("ui-droppable")},_addToManager:function(t){e.ui.ddmanager.droppables[t]=e.ui.ddmanager.droppables[t]||[],e.ui.ddmanager.droppables[t].push(this)},_splice:function(e){for(var t=0;e.length>t;t++)e[t]===this&&e.splice(t,1)},_destroy:function(){var t=e.ui.ddmanager.droppables[this.options.scope];this._splice(t),this.element.removeClass("ui-droppable ui-droppable-disabled")},_setOption:function(t,i){if("accept"===t)this.accept=e.isFunction(i)?i:function(e){return e.is(i)};else if("scope"===t){var s=e.ui.ddmanager.droppables[this.options.scope];this._splice(s),this._addToManager(i)}this._super(t,i)},_activate:function(t){var i=e.ui.ddmanager.current;this.options.activeClass&&this.element.addClass(this.options.activeClass),i&&this._trigger("activate",t,this.ui(i))},_deactivate:function(t){var i=e.ui.ddmanager.current;this.options.activeClass&&this.element.removeClass(this.options.activeClass),i&&this._trigger("deactivate",t,this.ui(i))},_over:function(t){var i=e.ui.ddmanager.current;i&&(i.currentItem||i.element)[0]!==this.element[0]&&this.accept.call(this.element[0],i.currentItem||i.element)&&(this.options.hoverClass&&this.element.addClass(this.options.hoverClass),this._trigger("over",t,this.ui(i)))},_out:function(t){var i=e.ui.ddmanager.current;i&&(i.currentItem||i.element)[0]!==this.element[0]&&this.accept.call(this.element[0],i.currentItem||i.element)&&(this.options.hoverClass&&this.element.removeClass(this.options.hoverClass),this._trigger("out",t,this.ui(i)))},_drop:function(t,i){var s=i||e.ui.ddmanager.current,n=!1;return s&&(s.currentItem||s.element)[0]!==this.element[0]?(this.element.find(":data(ui-droppable)").not(".ui-draggable-dragging").each(function(){var i=e(this).droppable("instance");return i.options.greedy&&!i.options.disabled&&i.options.scope===s.options.scope&&i.accept.call(i.element[0],s.currentItem||s.element)&&e.ui.intersect(s,e.extend(i,{offset:i.element.offset()}),i.options.tolerance,t)?(n=!0,!1):void 0}),n?!1:this.accept.call(this.element[0],s.currentItem||s.element)?(this.options.activeClass&&this.element.removeClass(this.options.activeClass),this.options.hoverClass&&this.element.removeClass(this.options.hoverClass),this._trigger("drop",t,this.ui(s)),this.element):!1):!1},ui:function(e){return{draggable:e.currentItem||e.element,helper:e.helper,position:e.position,offset:e.positionAbs}}}),e.ui.intersect=function(){function e(e,t,i){return e>=t&&t+i>e}return function(t,i,s,n){if(!i.offset)return!1;var a=(t.positionAbs||t.position.absolute).left+t.margins.left,o=(t.positionAbs||t.position.absolute).top+t.margins.top,r=a+t.helperProportions.width,h=o+t.helperProportions.height,l=i.offset.left,u=i.offset.top,d=l+i.proportions().width,c=u+i.proportions().height;switch(s){case"fit":return a>=l&&d>=r&&o>=u&&c>=h;case"intersect":return a+t.helperProportions.width/2>l&&d>r-t.helperProportions.width/2&&o+t.helperProportions.height/2>u&&c>h-t.helperProportions.height/2;case"pointer":return e(n.pageY,u,i.proportions().height)&&e(n.pageX,l,i.proportions().width);case"touch":return(o>=u&&c>=o||h>=u&&c>=h||u>o&&h>c)&&(a>=l&&d>=a||r>=l&&d>=r||l>a&&r>d);default:return!1}}}(),e.ui.ddmanager={current:null,droppables:{"default":[]},prepareOffsets:function(t,i){var s,n,a=e.ui.ddmanager.droppables[t.options.scope]||[],o=i?i.type:null,r=(t.currentItem||t.element).find(":data(ui-droppable)").addBack();e:for(s=0;a.length>s;s++)if(!(a[s].options.disabled||t&&!a[s].accept.call(a[s].element[0],t.currentItem||t.element))){for(n=0;r.length>n;n++)if(r[n]===a[s].element[0]){a[s].proportions().height=0;continue e}a[s].visible="none"!==a[s].element.css("display"),a[s].visible&&("mousedown"===o&&a[s]._activate.call(a[s],i),a[s].offset=a[s].element.offset(),a[s].proportions({width:a[s].element[0].offsetWidth,height:a[s].element[0].offsetHeight}))}},drop:function(t,i){var s=!1;return e.each((e.ui.ddmanager.droppables[t.options.scope]||[]).slice(),function(){this.options&&(!this.options.disabled&&this.visible&&e.ui.intersect(t,this,this.options.tolerance,i)&&(s=this._drop.call(this,i)||s),!this.options.disabled&&this.visible&&this.accept.call(this.element[0],t.currentItem||t.element)&&(this.isout=!0,this.isover=!1,this._deactivate.call(this,i)))}),s},dragStart:function(t,i){t.element.parentsUntil("body").bind("scroll.droppable",function(){t.options.refreshPositions||e.ui.ddmanager.prepareOffsets(t,i)})},drag:function(t,i){t.options.refreshPositions&&e.ui.ddmanager.prepareOffsets(t,i),e.each(e.ui.ddmanager.droppables[t.options.scope]||[],function(){if(!this.options.disabled&&!this.greedyChild&&this.visible){var s,n,a,o=e.ui.intersect(t,this,this.options.tolerance,i),r=!o&&this.isover?"isout":o&&!this.isover?"isover":null;r&&(this.options.greedy&&(n=this.options.scope,a=this.element.parents(":data(ui-droppable)").filter(function(){return e(this).droppable("instance").options.scope===n}),a.length&&(s=e(a[0]).droppable("instance"),s.greedyChild="isover"===r)),s&&"isover"===r&&(s.isover=!1,s.isout=!0,s._out.call(s,i)),this[r]=!0,this["isout"===r?"isover":"isout"]=!1,this["isover"===r?"_over":"_out"].call(this,i),s&&"isout"===r&&(s.isout=!1,s.isover=!0,s._over.call(s,i)))}})},dragStop:function(t,i){t.element.parentsUntil("body").unbind("scroll.droppable"),t.options.refreshPositions||e.ui.ddmanager.prepareOffsets(t,i)}},e.ui.droppable;var y="ui-effects-",b=e;e.effects={effect:{}},function(e,t){function i(e,t,i){var s=d[t.type]||{};return null==e?i||!t.def?null:t.def:(e=s.floor?~~e:parseFloat(e),isNaN(e)?t.def:s.mod?(e+s.mod)%s.mod:0>e?0:e>s.max?s.max:e)}function s(i){var s=l(),n=s._rgba=[];return i=i.toLowerCase(),f(h,function(e,a){var o,r=a.re.exec(i),h=r&&a.parse(r),l=a.space||"rgba";return h?(o=s[l](h),s[u[l].cache]=o[u[l].cache],n=s._rgba=o._rgba,!1):t}),n.length?("0,0,0,0"===n.join()&&e.extend(n,a.transparent),s):a[i]}function n(e,t,i){return i=(i+1)%1,1>6*i?e+6*(t-e)*i:1>2*i?t:2>3*i?e+6*(t-e)*(2/3-i):e}var a,o="backgroundColor borderBottomColor borderLeftColor borderRightColor borderTopColor color columnRuleColor outlineColor textDecorationColor textEmphasisColor",r=/^([\-+])=\s*(\d+\.?\d*)/,h=[{re:/rgba?\(\s*(\d{1,3})\s*,\s*(\d{1,3})\s*,\s*(\d{1,3})\s*(?:,\s*(\d?(?:\.\d+)?)\s*)?\)/,parse:function(e){return[e[1],e[2],e[3],e[4]]}},{re:/rgba?\(\s*(\d+(?:\.\d+)?)\%\s*,\s*(\d+(?:\.\d+)?)\%\s*,\s*(\d+(?:\.\d+)?)\%\s*(?:,\s*(\d?(?:\.\d+)?)\s*)?\)/,parse:function(e){return[2.55*e[1],2.55*e[2],2.55*e[3],e[4]]}},{re:/#([a-f0-9]{2})([a-f0-9]{2})([a-f0-9]{2})/,parse:function(e){return[parseInt(e[1],16),parseInt(e[2],16),parseInt(e[3],16)]}},{re:/#([a-f0-9])([a-f0-9])([a-f0-9])/,parse:function(e){return[parseInt(e[1]+e[1],16),parseInt(e[2]+e[2],16),parseInt(e[3]+e[3],16)]}},{re:/hsla?\(\s*(\d+(?:\.\d+)?)\s*,\s*(\d+(?:\.\d+)?)\%\s*,\s*(\d+(?:\.\d+)?)\%\s*(?:,\s*(\d?(?:\.\d+)?)\s*)?\)/,space:"hsla",parse:function(e){return[e[1],e[2]/100,e[3]/100,e[4]]}}],l=e.Color=function(t,i,s,n){return new e.Color.fn.parse(t,i,s,n)},u={rgba:{props:{red:{idx:0,type:"byte"},green:{idx:1,type:"byte"},blue:{idx:2,type:"byte"}}},hsla:{props:{hue:{idx:0,type:"degrees"},saturation:{idx:1,type:"percent"},lightness:{idx:2,type:"percent"}}}},d={"byte":{floor:!0,max:255},percent:{max:1},degrees:{mod:360,floor:!0}},c=l.support={},p=e("<p>")[0],f=e.each;p.style.cssText="background-color:rgba(1,1,1,.5)",c.rgba=p.style.backgroundColor.indexOf("rgba")>-1,f(u,function(e,t){t.cache="_"+e,t.props.alpha={idx:3,type:"percent",def:1}}),l.fn=e.extend(l.prototype,{parse:function(n,o,r,h){if(n===t)return this._rgba=[null,null,null,null],this;(n.jquery||n.nodeType)&&(n=e(n).css(o),o=t);var d=this,c=e.type(n),p=this._rgba=[];return o!==t&&(n=[n,o,r,h],c="array"),"string"===c?this.parse(s(n)||a._default):"array"===c?(f(u.rgba.props,function(e,t){p[t.idx]=i(n[t.idx],t)}),this):"object"===c?(n instanceof l?f(u,function(e,t){n[t.cache]&&(d[t.cache]=n[t.cache].slice())}):f(u,function(t,s){var a=s.cache;f(s.props,function(e,t){if(!d[a]&&s.to){if("alpha"===e||null==n[e])return;d[a]=s.to(d._rgba)}d[a][t.idx]=i(n[e],t,!0)}),d[a]&&0>e.inArray(null,d[a].slice(0,3))&&(d[a][3]=1,s.from&&(d._rgba=s.from(d[a])))}),this):t},is:function(e){var i=l(e),s=!0,n=this;return f(u,function(e,a){var o,r=i[a.cache];return r&&(o=n[a.cache]||a.to&&a.to(n._rgba)||[],f(a.props,function(e,i){return null!=r[i.idx]?s=r[i.idx]===o[i.idx]:t})),s}),s},_space:function(){var e=[],t=this;return f(u,function(i,s){t[s.cache]&&e.push(i)}),e.pop()},transition:function(e,t){var s=l(e),n=s._space(),a=u[n],o=0===this.alpha()?l("transparent"):this,r=o[a.cache]||a.to(o._rgba),h=r.slice();return s=s[a.cache],f(a.props,function(e,n){var a=n.idx,o=r[a],l=s[a],u=d[n.type]||{};null!==l&&(null===o?h[a]=l:(u.mod&&(l-o>u.mod/2?o+=u.mod:o-l>u.mod/2&&(o-=u.mod)),h[a]=i((l-o)*t+o,n)))}),this[n](h)},blend:function(t){if(1===this._rgba[3])return this;var i=this._rgba.slice(),s=i.pop(),n=l(t)._rgba;return l(e.map(i,function(e,t){return(1-s)*n[t]+s*e}))},toRgbaString:function(){var t="rgba(",i=e.map(this._rgba,function(e,t){return null==e?t>2?1:0:e});return 1===i[3]&&(i.pop(),t="rgb("),t+i.join()+")"},toHslaString:function(){var t="hsla(",i=e.map(this.hsla(),function(e,t){return null==e&&(e=t>2?1:0),t&&3>t&&(e=Math.round(100*e)+"%"),e});return 1===i[3]&&(i.pop(),t="hsl("),t+i.join()+")"},toHexString:function(t){var i=this._rgba.slice(),s=i.pop();return t&&i.push(~~(255*s)),"#"+e.map(i,function(e){return e=(e||0).toString(16),1===e.length?"0"+e:e}).join("")},toString:function(){return 0===this._rgba[3]?"transparent":this.toRgbaString()}}),l.fn.parse.prototype=l.fn,u.hsla.to=function(e){if(null==e[0]||null==e[1]||null==e[2])return[null,null,null,e[3]];var t,i,s=e[0]/255,n=e[1]/255,a=e[2]/255,o=e[3],r=Math.max(s,n,a),h=Math.min(s,n,a),l=r-h,u=r+h,d=.5*u;return t=h===r?0:s===r?60*(n-a)/l+360:n===r?60*(a-s)/l+120:60*(s-n)/l+240,i=0===l?0:.5>=d?l/u:l/(2-u),[Math.round(t)%360,i,d,null==o?1:o]},u.hsla.from=function(e){if(null==e[0]||null==e[1]||null==e[2])return[null,null,null,e[3]];var t=e[0]/360,i=e[1],s=e[2],a=e[3],o=.5>=s?s*(1+i):s+i-s*i,r=2*s-o;return[Math.round(255*n(r,o,t+1/3)),Math.round(255*n(r,o,t)),Math.round(255*n(r,o,t-1/3)),a]},f(u,function(s,n){var a=n.props,o=n.cache,h=n.to,u=n.from;l.fn[s]=function(s){if(h&&!this[o]&&(this[o]=h(this._rgba)),s===t)return this[o].slice();var n,r=e.type(s),d="array"===r||"object"===r?s:arguments,c=this[o].slice();return f(a,function(e,t){var s=d["object"===r?e:t.idx];null==s&&(s=c[t.idx]),c[t.idx]=i(s,t)}),u?(n=l(u(c)),n[o]=c,n):l(c)},f(a,function(t,i){l.fn[t]||(l.fn[t]=function(n){var a,o=e.type(n),h="alpha"===t?this._hsla?"hsla":"rgba":s,l=this[h](),u=l[i.idx];return"undefined"===o?u:("function"===o&&(n=n.call(this,u),o=e.type(n)),null==n&&i.empty?this:("string"===o&&(a=r.exec(n),a&&(n=u+parseFloat(a[2])*("+"===a[1]?1:-1))),l[i.idx]=n,this[h](l)))})})}),l.hook=function(t){var i=t.split(" ");f(i,function(t,i){e.cssHooks[i]={set:function(t,n){var a,o,r="";if("transparent"!==n&&("string"!==e.type(n)||(a=s(n)))){if(n=l(a||n),!c.rgba&&1!==n._rgba[3]){for(o="backgroundColor"===i?t.parentNode:t;(""===r||"transparent"===r)&&o&&o.style;)try{r=e.css(o,"backgroundColor"),o=o.parentNode}catch(h){}n=n.blend(r&&"transparent"!==r?r:"_default")}n=n.toRgbaString()}try{t.style[i]=n}catch(h){}}},e.fx.step[i]=function(t){t.colorInit||(t.start=l(t.elem,i),t.end=l(t.end),t.colorInit=!0),e.cssHooks[i].set(t.elem,t.start.transition(t.end,t.pos))}})},l.hook(o),e.cssHooks.borderColor={expand:function(e){var t={};return f(["Top","Right","Bottom","Left"],function(i,s){t["border"+s+"Color"]=e}),t}},a=e.Color.names={aqua:"#00ffff",black:"#000000",blue:"#0000ff",fuchsia:"#ff00ff",gray:"#808080",green:"#008000",lime:"#00ff00",maroon:"#800000",navy:"#000080",olive:"#808000",purple:"#800080",red:"#ff0000",silver:"#c0c0c0",teal:"#008080",white:"#ffffff",yellow:"#ffff00",transparent:[null,null,null,0],_default:"#ffffff"}}(b),function(){function t(t){var i,s,n=t.ownerDocument.defaultView?t.ownerDocument.defaultView.getComputedStyle(t,null):t.currentStyle,a={};if(n&&n.length&&n[0]&&n[n[0]])for(s=n.length;s--;)i=n[s],"string"==typeof n[i]&&(a[e.camelCase(i)]=n[i]);else for(i in n)"string"==typeof n[i]&&(a[i]=n[i]);return a}function i(t,i){var s,a,o={};for(s in i)a=i[s],t[s]!==a&&(n[s]||(e.fx.step[s]||!isNaN(parseFloat(a)))&&(o[s]=a));return o}var s=["add","remove","toggle"],n={border:1,borderBottom:1,borderColor:1,borderLeft:1,borderRight:1,borderTop:1,borderWidth:1,margin:1,padding:1};e.each(["borderLeftStyle","borderRightStyle","borderBottomStyle","borderTopStyle"],function(t,i){e.fx.step[i]=function(e){("none"!==e.end&&!e.setAttr||1===e.pos&&!e.setAttr)&&(b.style(e.elem,i,e.end),e.setAttr=!0)}}),e.fn.addBack||(e.fn.addBack=function(e){return this.add(null==e?this.prevObject:this.prevObject.filter(e))}),e.effects.animateClass=function(n,a,o,r){var h=e.speed(a,o,r);return this.queue(function(){var a,o=e(this),r=o.attr("class")||"",l=h.children?o.find("*").addBack():o;l=l.map(function(){var i=e(this);return{el:i,start:t(this)}}),a=function(){e.each(s,function(e,t){n[t]&&o[t+"Class"](n[t])})},a(),l=l.map(function(){return this.end=t(this.el[0]),this.diff=i(this.start,this.end),this}),o.attr("class",r),l=l.map(function(){var t=this,i=e.Deferred(),s=e.extend({},h,{queue:!1,complete:function(){i.resolve(t)}});return this.el.animate(this.diff,s),i.promise()}),e.when.apply(e,l.get()).done(function(){a(),e.each(arguments,function(){var t=this.el;e.each(this.diff,function(e){t.css(e,"")})}),h.complete.call(o[0])})})},e.fn.extend({addClass:function(t){return function(i,s,n,a){return s?e.effects.animateClass.call(this,{add:i},s,n,a):t.apply(this,arguments)}}(e.fn.addClass),removeClass:function(t){return function(i,s,n,a){return arguments.length>1?e.effects.animateClass.call(this,{remove:i},s,n,a):t.apply(this,arguments)}}(e.fn.removeClass),toggleClass:function(t){return function(i,s,n,a,o){return"boolean"==typeof s||void 0===s?n?e.effects.animateClass.call(this,s?{add:i}:{remove:i},n,a,o):t.apply(this,arguments):e.effects.animateClass.call(this,{toggle:i},s,n,a)}}(e.fn.toggleClass),switchClass:function(t,i,s,n,a){return e.effects.animateClass.call(this,{add:i,remove:t},s,n,a)}})}(),function(){function t(t,i,s,n){return e.isPlainObject(t)&&(i=t,t=t.effect),t={effect:t},null==i&&(i={}),e.isFunction(i)&&(n=i,s=null,i={}),("number"==typeof i||e.fx.speeds[i])&&(n=s,s=i,i={}),e.isFunction(s)&&(n=s,s=null),i&&e.extend(t,i),s=s||i.duration,t.duration=e.fx.off?0:"number"==typeof s?s:s in e.fx.speeds?e.fx.speeds[s]:e.fx.speeds._default,t.complete=n||i.complete,t}function i(t){return!t||"number"==typeof t||e.fx.speeds[t]?!0:"string"!=typeof t||e.effects.effect[t]?e.isFunction(t)?!0:"object"!=typeof t||t.effect?!1:!0:!0}e.extend(e.effects,{version:"1.11.2",save:function(e,t){for(var i=0;t.length>i;i++)null!==t[i]&&e.data(y+t[i],e[0].style[t[i]])},restore:function(e,t){var i,s;for(s=0;t.length>s;s++)null!==t[s]&&(i=e.data(y+t[s]),void 0===i&&(i=""),e.css(t[s],i))},setMode:function(e,t){return"toggle"===t&&(t=e.is(":hidden")?"show":"hide"),t},getBaseline:function(e,t){var i,s;switch(e[0]){case"top":i=0;break;case"middle":i=.5;break;case"bottom":i=1;break;default:i=e[0]/t.height}switch(e[1]){case"left":s=0;break;case"center":s=.5;break;case"right":s=1;break;default:s=e[1]/t.width}return{x:s,y:i}},createWrapper:function(t){if(t.parent().is(".ui-effects-wrapper"))return t.parent();var i={width:t.outerWidth(!0),height:t.outerHeight(!0),"float":t.css("float")},s=e("<div></div>").addClass("ui-effects-wrapper").css({fontSize:"100%",background:"transparent",border:"none",margin:0,padding:0}),n={width:t.width(),height:t.height()},a=document.activeElement;try{a.id}catch(o){a=document.body}return t.wrap(s),(t[0]===a||e.contains(t[0],a))&&e(a).focus(),s=t.parent(),"static"===t.css("position")?(s.css({position:"relative"}),t.css({position:"relative"})):(e.extend(i,{position:t.css("position"),zIndex:t.css("z-index")}),e.each(["top","left","bottom","right"],function(e,s){i[s]=t.css(s),isNaN(parseInt(i[s],10))&&(i[s]="auto")}),t.css({position:"relative",top:0,left:0,right:"auto",bottom:"auto"})),t.css(n),s.css(i).show()},removeWrapper:function(t){var i=document.activeElement;return t.parent().is(".ui-effects-wrapper")&&(t.parent().replaceWith(t),(t[0]===i||e.contains(t[0],i))&&e(i).focus()),t},setTransition:function(t,i,s,n){return n=n||{},e.each(i,function(e,i){var a=t.cssUnit(i);a[0]>0&&(n[i]=a[0]*s+a[1])}),n}}),e.fn.extend({effect:function(){function i(t){function i(){e.isFunction(a)&&a.call(n[0]),e.isFunction(t)&&t()}var n=e(this),a=s.complete,r=s.mode;(n.is(":hidden")?"hide"===r:"show"===r)?(n[r](),i()):o.call(n[0],s,i)}var s=t.apply(this,arguments),n=s.mode,a=s.queue,o=e.effects.effect[s.effect];return e.fx.off||!o?n?this[n](s.duration,s.complete):this.each(function(){s.complete&&s.complete.call(this)}):a===!1?this.each(i):this.queue(a||"fx",i)},show:function(e){return function(s){if(i(s))return e.apply(this,arguments);var n=t.apply(this,arguments);return n.mode="show",this.effect.call(this,n)}}(e.fn.show),hide:function(e){return function(s){if(i(s))return e.apply(this,arguments);var n=t.apply(this,arguments);return n.mode="hide",this.effect.call(this,n)}}(e.fn.hide),toggle:function(e){return function(s){if(i(s)||"boolean"==typeof s)return e.apply(this,arguments);var n=t.apply(this,arguments);return n.mode="toggle",this.effect.call(this,n)}}(e.fn.toggle),cssUnit:function(t){var i=this.css(t),s=[];return e.each(["em","px","%","pt"],function(e,t){i.indexOf(t)>0&&(s=[parseFloat(i),t])}),s}})}(),function(){var t={};e.each(["Quad","Cubic","Quart","Quint","Expo"],function(e,i){t[i]=function(t){return Math.pow(t,e+2)}}),e.extend(t,{Sine:function(e){return 1-Math.cos(e*Math.PI/2)},Circ:function(e){return 1-Math.sqrt(1-e*e)},Elastic:function(e){return 0===e||1===e?e:-Math.pow(2,8*(e-1))*Math.sin((80*(e-1)-7.5)*Math.PI/15)},Back:function(e){return e*e*(3*e-2)},Bounce:function(e){for(var t,i=4;((t=Math.pow(2,--i))-1)/11>e;);return 1/Math.pow(4,3-i)-7.5625*Math.pow((3*t-2)/22-e,2)}}),e.each(t,function(t,i){e.easing["easeIn"+t]=i,e.easing["easeOut"+t]=function(e){return 1-i(1-e)},e.easing["easeInOut"+t]=function(e){return.5>e?i(2*e)/2:1-i(-2*e+2)/2}})}(),e.effects,e.effects.effect.blind=function(t,i){var s,n,a,o=e(this),r=/up|down|vertical/,h=/up|left|vertical|horizontal/,l=["position","top","bottom","left","right","height","width"],u=e.effects.setMode(o,t.mode||"hide"),d=t.direction||"up",c=r.test(d),p=c?"height":"width",f=c?"top":"left",m=h.test(d),g={},v="show"===u;o.parent().is(".ui-effects-wrapper")?e.effects.save(o.parent(),l):e.effects.save(o,l),o.show(),s=e.effects.createWrapper(o).css({overflow:"hidden"}),n=s[p](),a=parseFloat(s.css(f))||0,g[p]=v?n:0,m||(o.css(c?"bottom":"right",0).css(c?"top":"left","auto").css({position:"absolute"}),g[f]=v?a:n+a),v&&(s.css(p,0),m||s.css(f,a+n)),s.animate(g,{duration:t.duration,easing:t.easing,queue:!1,complete:function(){"hide"===u&&o.hide(),e.effects.restore(o,l),e.effects.removeWrapper(o),i()}})},e.effects.effect.bounce=function(t,i){var s,n,a,o=e(this),r=["position","top","bottom","left","right","height","width"],h=e.effects.setMode(o,t.mode||"effect"),l="hide"===h,u="show"===h,d=t.direction||"up",c=t.distance,p=t.times||5,f=2*p+(u||l?1:0),m=t.duration/f,g=t.easing,v="up"===d||"down"===d?"top":"left",y="up"===d||"left"===d,b=o.queue(),_=b.length;for((u||l)&&r.push("opacity"),e.effects.save(o,r),o.show(),e.effects.createWrapper(o),c||(c=o["top"===v?"outerHeight":"outerWidth"]()/3),u&&(a={opacity:1},a[v]=0,o.css("opacity",0).css(v,y?2*-c:2*c).animate(a,m,g)),l&&(c/=Math.pow(2,p-1)),a={},a[v]=0,s=0;p>s;s++)n={},n[v]=(y?"-=":"+=")+c,o.animate(n,m,g).animate(a,m,g),c=l?2*c:c/2;l&&(n={opacity:0},n[v]=(y?"-=":"+=")+c,o.animate(n,m,g)),o.queue(function(){l&&o.hide(),e.effects.restore(o,r),e.effects.removeWrapper(o),i()}),_>1&&b.splice.apply(b,[1,0].concat(b.splice(_,f+1))),o.dequeue()},e.effects.effect.clip=function(t,i){var s,n,a,o=e(this),r=["position","top","bottom","left","right","height","width"],h=e.effects.setMode(o,t.mode||"hide"),l="show"===h,u=t.direction||"vertical",d="vertical"===u,c=d?"height":"width",p=d?"top":"left",f={};e.effects.save(o,r),o.show(),s=e.effects.createWrapper(o).css({overflow:"hidden"}),n="IMG"===o[0].tagName?s:o,a=n[c](),l&&(n.css(c,0),n.css(p,a/2)),f[c]=l?a:0,f[p]=l?0:a/2,n.animate(f,{queue:!1,duration:t.duration,easing:t.easing,complete:function(){l||o.hide(),e.effects.restore(o,r),e.effects.removeWrapper(o),i()}})},e.effects.effect.drop=function(t,i){var s,n=e(this),a=["position","top","bottom","left","right","opacity","height","width"],o=e.effects.setMode(n,t.mode||"hide"),r="show"===o,h=t.direction||"left",l="up"===h||"down"===h?"top":"left",u="up"===h||"left"===h?"pos":"neg",d={opacity:r?1:0};e.effects.save(n,a),n.show(),e.effects.createWrapper(n),s=t.distance||n["top"===l?"outerHeight":"outerWidth"](!0)/2,r&&n.css("opacity",0).css(l,"pos"===u?-s:s),d[l]=(r?"pos"===u?"+=":"-=":"pos"===u?"-=":"+=")+s,n.animate(d,{queue:!1,duration:t.duration,easing:t.easing,complete:function(){"hide"===o&&n.hide(),e.effects.restore(n,a),e.effects.removeWrapper(n),i()}})},e.effects.effect.explode=function(t,i){function s(){b.push(this),b.length===d*c&&n()}function n(){p.css({visibility:"visible"}),e(b).remove(),m||p.hide(),i()}var a,o,r,h,l,u,d=t.pieces?Math.round(Math.sqrt(t.pieces)):3,c=d,p=e(this),f=e.effects.setMode(p,t.mode||"hide"),m="show"===f,g=p.show().css("visibility","hidden").offset(),v=Math.ceil(p.outerWidth()/c),y=Math.ceil(p.outerHeight()/d),b=[];for(a=0;d>a;a++)for(h=g.top+a*y,u=a-(d-1)/2,o=0;c>o;o++)r=g.left+o*v,l=o-(c-1)/2,p.clone().appendTo("body").wrap("<div></div>").css({position:"absolute",visibility:"visible",left:-o*v,top:-a*y}).parent().addClass("ui-effects-explode").css({position:"absolute",overflow:"hidden",width:v,height:y,left:r+(m?l*v:0),top:h+(m?u*y:0),opacity:m?0:1}).animate({left:r+(m?0:l*v),top:h+(m?0:u*y),opacity:m?1:0},t.duration||500,t.easing,s)},e.effects.effect.fade=function(t,i){var s=e(this),n=e.effects.setMode(s,t.mode||"toggle");s.animate({opacity:n},{queue:!1,duration:t.duration,easing:t.easing,complete:i})},e.effects.effect.fold=function(t,i){var s,n,a=e(this),o=["position","top","bottom","left","right","height","width"],r=e.effects.setMode(a,t.mode||"hide"),h="show"===r,l="hide"===r,u=t.size||15,d=/([0-9]+)%/.exec(u),c=!!t.horizFirst,p=h!==c,f=p?["width","height"]:["height","width"],m=t.duration/2,g={},v={};e.effects.save(a,o),a.show(),s=e.effects.createWrapper(a).css({overflow:"hidden"}),n=p?[s.width(),s.height()]:[s.height(),s.width()],d&&(u=parseInt(d[1],10)/100*n[l?0:1]),h&&s.css(c?{height:0,width:u}:{height:u,width:0}),g[f[0]]=h?n[0]:u,v[f[1]]=h?n[1]:0,s.animate(g,m,t.easing).animate(v,m,t.easing,function(){l&&a.hide(),e.effects.restore(a,o),e.effects.removeWrapper(a),i()})},e.effects.effect.highlight=function(t,i){var s=e(this),n=["backgroundImage","backgroundColor","opacity"],a=e.effects.setMode(s,t.mode||"show"),o={backgroundColor:s.css("backgroundColor")};"hide"===a&&(o.opacity=0),e.effects.save(s,n),s.show().css({backgroundImage:"none",backgroundColor:t.color||"#ffff99"}).animate(o,{queue:!1,duration:t.duration,easing:t.easing,complete:function(){"hide"===a&&s.hide(),e.effects.restore(s,n),i()}})},e.effects.effect.size=function(t,i){var s,n,a,o=e(this),r=["position","top","bottom","left","right","width","height","overflow","opacity"],h=["position","top","bottom","left","right","overflow","opacity"],l=["width","height","overflow"],u=["fontSize"],d=["borderTopWidth","borderBottomWidth","paddingTop","paddingBottom"],c=["borderLeftWidth","borderRightWidth","paddingLeft","paddingRight"],p=e.effects.setMode(o,t.mode||"effect"),f=t.restore||"effect"!==p,m=t.scale||"both",g=t.origin||["middle","center"],v=o.css("position"),y=f?r:h,b={height:0,width:0,outerHeight:0,outerWidth:0};"show"===p&&o.show(),s={height:o.height(),width:o.width(),outerHeight:o.outerHeight(),outerWidth:o.outerWidth()},"toggle"===t.mode&&"show"===p?(o.from=t.to||b,o.to=t.from||s):(o.from=t.from||("show"===p?b:s),o.to=t.to||("hide"===p?b:s)),a={from:{y:o.from.height/s.height,x:o.from.width/s.width},to:{y:o.to.height/s.height,x:o.to.width/s.width}},("box"===m||"both"===m)&&(a.from.y!==a.to.y&&(y=y.concat(d),o.from=e.effects.setTransition(o,d,a.from.y,o.from),o.to=e.effects.setTransition(o,d,a.to.y,o.to)),a.from.x!==a.to.x&&(y=y.concat(c),o.from=e.effects.setTransition(o,c,a.from.x,o.from),o.to=e.effects.setTransition(o,c,a.to.x,o.to))),("content"===m||"both"===m)&&a.from.y!==a.to.y&&(y=y.concat(u).concat(l),o.from=e.effects.setTransition(o,u,a.from.y,o.from),o.to=e.effects.setTransition(o,u,a.to.y,o.to)),e.effects.save(o,y),o.show(),e.effects.createWrapper(o),o.css("overflow","hidden").css(o.from),g&&(n=e.effects.getBaseline(g,s),o.from.top=(s.outerHeight-o.outerHeight())*n.y,o.from.left=(s.outerWidth-o.outerWidth())*n.x,o.to.top=(s.outerHeight-o.to.outerHeight)*n.y,o.to.left=(s.outerWidth-o.to.outerWidth)*n.x),o.css(o.from),("content"===m||"both"===m)&&(d=d.concat(["marginTop","marginBottom"]).concat(u),c=c.concat(["marginLeft","marginRight"]),l=r.concat(d).concat(c),o.find("*[width]").each(function(){var i=e(this),s={height:i.height(),width:i.width(),outerHeight:i.outerHeight(),outerWidth:i.outerWidth()}; - f&&e.effects.save(i,l),i.from={height:s.height*a.from.y,width:s.width*a.from.x,outerHeight:s.outerHeight*a.from.y,outerWidth:s.outerWidth*a.from.x},i.to={height:s.height*a.to.y,width:s.width*a.to.x,outerHeight:s.height*a.to.y,outerWidth:s.width*a.to.x},a.from.y!==a.to.y&&(i.from=e.effects.setTransition(i,d,a.from.y,i.from),i.to=e.effects.setTransition(i,d,a.to.y,i.to)),a.from.x!==a.to.x&&(i.from=e.effects.setTransition(i,c,a.from.x,i.from),i.to=e.effects.setTransition(i,c,a.to.x,i.to)),i.css(i.from),i.animate(i.to,t.duration,t.easing,function(){f&&e.effects.restore(i,l)})})),o.animate(o.to,{queue:!1,duration:t.duration,easing:t.easing,complete:function(){0===o.to.opacity&&o.css("opacity",o.from.opacity),"hide"===p&&o.hide(),e.effects.restore(o,y),f||("static"===v?o.css({position:"relative",top:o.to.top,left:o.to.left}):e.each(["top","left"],function(e,t){o.css(t,function(t,i){var s=parseInt(i,10),n=e?o.to.left:o.to.top;return"auto"===i?n+"px":s+n+"px"})})),e.effects.removeWrapper(o),i()}})},e.effects.effect.scale=function(t,i){var s=e(this),n=e.extend(!0,{},t),a=e.effects.setMode(s,t.mode||"effect"),o=parseInt(t.percent,10)||(0===parseInt(t.percent,10)?0:"hide"===a?0:100),r=t.direction||"both",h=t.origin,l={height:s.height(),width:s.width(),outerHeight:s.outerHeight(),outerWidth:s.outerWidth()},u={y:"horizontal"!==r?o/100:1,x:"vertical"!==r?o/100:1};n.effect="size",n.queue=!1,n.complete=i,"effect"!==a&&(n.origin=h||["middle","center"],n.restore=!0),n.from=t.from||("show"===a?{height:0,width:0,outerHeight:0,outerWidth:0}:l),n.to={height:l.height*u.y,width:l.width*u.x,outerHeight:l.outerHeight*u.y,outerWidth:l.outerWidth*u.x},n.fade&&("show"===a&&(n.from.opacity=0,n.to.opacity=1),"hide"===a&&(n.from.opacity=1,n.to.opacity=0)),s.effect(n)},e.effects.effect.puff=function(t,i){var s=e(this),n=e.effects.setMode(s,t.mode||"hide"),a="hide"===n,o=parseInt(t.percent,10)||150,r=o/100,h={height:s.height(),width:s.width(),outerHeight:s.outerHeight(),outerWidth:s.outerWidth()};e.extend(t,{effect:"scale",queue:!1,fade:!0,mode:n,complete:i,percent:a?o:100,from:a?h:{height:h.height*r,width:h.width*r,outerHeight:h.outerHeight*r,outerWidth:h.outerWidth*r}}),s.effect(t)},e.effects.effect.pulsate=function(t,i){var s,n=e(this),a=e.effects.setMode(n,t.mode||"show"),o="show"===a,r="hide"===a,h=o||"hide"===a,l=2*(t.times||5)+(h?1:0),u=t.duration/l,d=0,c=n.queue(),p=c.length;for((o||!n.is(":visible"))&&(n.css("opacity",0).show(),d=1),s=1;l>s;s++)n.animate({opacity:d},u,t.easing),d=1-d;n.animate({opacity:d},u,t.easing),n.queue(function(){r&&n.hide(),i()}),p>1&&c.splice.apply(c,[1,0].concat(c.splice(p,l+1))),n.dequeue()},e.effects.effect.shake=function(t,i){var s,n=e(this),a=["position","top","bottom","left","right","height","width"],o=e.effects.setMode(n,t.mode||"effect"),r=t.direction||"left",h=t.distance||20,l=t.times||3,u=2*l+1,d=Math.round(t.duration/u),c="up"===r||"down"===r?"top":"left",p="up"===r||"left"===r,f={},m={},g={},v=n.queue(),y=v.length;for(e.effects.save(n,a),n.show(),e.effects.createWrapper(n),f[c]=(p?"-=":"+=")+h,m[c]=(p?"+=":"-=")+2*h,g[c]=(p?"-=":"+=")+2*h,n.animate(f,d,t.easing),s=1;l>s;s++)n.animate(m,d,t.easing).animate(g,d,t.easing);n.animate(m,d,t.easing).animate(f,d/2,t.easing).queue(function(){"hide"===o&&n.hide(),e.effects.restore(n,a),e.effects.removeWrapper(n),i()}),y>1&&v.splice.apply(v,[1,0].concat(v.splice(y,u+1))),n.dequeue()},e.effects.effect.slide=function(t,i){var s,n=e(this),a=["position","top","bottom","left","right","width","height"],o=e.effects.setMode(n,t.mode||"show"),r="show"===o,h=t.direction||"left",l="up"===h||"down"===h?"top":"left",u="up"===h||"left"===h,d={};e.effects.save(n,a),n.show(),s=t.distance||n["top"===l?"outerHeight":"outerWidth"](!0),e.effects.createWrapper(n).css({overflow:"hidden"}),r&&n.css(l,u?isNaN(s)?"-"+s:-s:s),d[l]=(r?u?"+=":"-=":u?"-=":"+=")+s,n.animate(d,{queue:!1,duration:t.duration,easing:t.easing,complete:function(){"hide"===o&&n.hide(),e.effects.restore(n,a),e.effects.removeWrapper(n),i()}})},e.effects.effect.transfer=function(t,i){var s=e(this),n=e(t.to),a="fixed"===n.css("position"),o=e("body"),r=a?o.scrollTop():0,h=a?o.scrollLeft():0,l=n.offset(),u={top:l.top-r,left:l.left-h,height:n.innerHeight(),width:n.innerWidth()},d=s.offset(),c=e("<div class='ui-effects-transfer'></div>").appendTo(document.body).addClass(t.className).css({top:d.top-r,left:d.left-h,height:s.innerHeight(),width:s.innerWidth(),position:a?"fixed":"absolute"}).animate(u,t.duration,t.easing,function(){c.remove(),i()})},e.widget("ui.progressbar",{version:"1.11.2",options:{max:100,value:0,change:null,complete:null},min:0,_create:function(){this.oldValue=this.options.value=this._constrainedValue(),this.element.addClass("ui-progressbar ui-widget ui-widget-content ui-corner-all").attr({role:"progressbar","aria-valuemin":this.min}),this.valueDiv=e("<div class='ui-progressbar-value ui-widget-header ui-corner-left'></div>").appendTo(this.element),this._refreshValue()},_destroy:function(){this.element.removeClass("ui-progressbar ui-widget ui-widget-content ui-corner-all").removeAttr("role").removeAttr("aria-valuemin").removeAttr("aria-valuemax").removeAttr("aria-valuenow"),this.valueDiv.remove()},value:function(e){return void 0===e?this.options.value:(this.options.value=this._constrainedValue(e),this._refreshValue(),void 0)},_constrainedValue:function(e){return void 0===e&&(e=this.options.value),this.indeterminate=e===!1,"number"!=typeof e&&(e=0),this.indeterminate?!1:Math.min(this.options.max,Math.max(this.min,e))},_setOptions:function(e){var t=e.value;delete e.value,this._super(e),this.options.value=this._constrainedValue(t),this._refreshValue()},_setOption:function(e,t){"max"===e&&(t=Math.max(this.min,t)),"disabled"===e&&this.element.toggleClass("ui-state-disabled",!!t).attr("aria-disabled",t),this._super(e,t)},_percentage:function(){return this.indeterminate?100:100*(this.options.value-this.min)/(this.options.max-this.min)},_refreshValue:function(){var t=this.options.value,i=this._percentage();this.valueDiv.toggle(this.indeterminate||t>this.min).toggleClass("ui-corner-right",t===this.options.max).width(i.toFixed(0)+"%"),this.element.toggleClass("ui-progressbar-indeterminate",this.indeterminate),this.indeterminate?(this.element.removeAttr("aria-valuenow"),this.overlayDiv||(this.overlayDiv=e("<div class='ui-progressbar-overlay'></div>").appendTo(this.valueDiv))):(this.element.attr({"aria-valuemax":this.options.max,"aria-valuenow":t}),this.overlayDiv&&(this.overlayDiv.remove(),this.overlayDiv=null)),this.oldValue!==t&&(this.oldValue=t,this._trigger("change")),t===this.options.max&&this._trigger("complete")}}),e.widget("ui.selectable",e.ui.mouse,{version:"1.11.2",options:{appendTo:"body",autoRefresh:!0,distance:0,filter:"*",tolerance:"touch",selected:null,selecting:null,start:null,stop:null,unselected:null,unselecting:null},_create:function(){var t,i=this;this.element.addClass("ui-selectable"),this.dragged=!1,this.refresh=function(){t=e(i.options.filter,i.element[0]),t.addClass("ui-selectee"),t.each(function(){var t=e(this),i=t.offset();e.data(this,"selectable-item",{element:this,$element:t,left:i.left,top:i.top,right:i.left+t.outerWidth(),bottom:i.top+t.outerHeight(),startselected:!1,selected:t.hasClass("ui-selected"),selecting:t.hasClass("ui-selecting"),unselecting:t.hasClass("ui-unselecting")})})},this.refresh(),this.selectees=t.addClass("ui-selectee"),this._mouseInit(),this.helper=e("<div class='ui-selectable-helper'></div>")},_destroy:function(){this.selectees.removeClass("ui-selectee").removeData("selectable-item"),this.element.removeClass("ui-selectable ui-selectable-disabled"),this._mouseDestroy()},_mouseStart:function(t){var i=this,s=this.options;this.opos=[t.pageX,t.pageY],this.options.disabled||(this.selectees=e(s.filter,this.element[0]),this._trigger("start",t),e(s.appendTo).append(this.helper),this.helper.css({left:t.pageX,top:t.pageY,width:0,height:0}),s.autoRefresh&&this.refresh(),this.selectees.filter(".ui-selected").each(function(){var s=e.data(this,"selectable-item");s.startselected=!0,t.metaKey||t.ctrlKey||(s.$element.removeClass("ui-selected"),s.selected=!1,s.$element.addClass("ui-unselecting"),s.unselecting=!0,i._trigger("unselecting",t,{unselecting:s.element}))}),e(t.target).parents().addBack().each(function(){var s,n=e.data(this,"selectable-item");return n?(s=!t.metaKey&&!t.ctrlKey||!n.$element.hasClass("ui-selected"),n.$element.removeClass(s?"ui-unselecting":"ui-selected").addClass(s?"ui-selecting":"ui-unselecting"),n.unselecting=!s,n.selecting=s,n.selected=s,s?i._trigger("selecting",t,{selecting:n.element}):i._trigger("unselecting",t,{unselecting:n.element}),!1):void 0}))},_mouseDrag:function(t){if(this.dragged=!0,!this.options.disabled){var i,s=this,n=this.options,a=this.opos[0],o=this.opos[1],r=t.pageX,h=t.pageY;return a>r&&(i=r,r=a,a=i),o>h&&(i=h,h=o,o=i),this.helper.css({left:a,top:o,width:r-a,height:h-o}),this.selectees.each(function(){var i=e.data(this,"selectable-item"),l=!1;i&&i.element!==s.element[0]&&("touch"===n.tolerance?l=!(i.left>r||a>i.right||i.top>h||o>i.bottom):"fit"===n.tolerance&&(l=i.left>a&&r>i.right&&i.top>o&&h>i.bottom),l?(i.selected&&(i.$element.removeClass("ui-selected"),i.selected=!1),i.unselecting&&(i.$element.removeClass("ui-unselecting"),i.unselecting=!1),i.selecting||(i.$element.addClass("ui-selecting"),i.selecting=!0,s._trigger("selecting",t,{selecting:i.element}))):(i.selecting&&((t.metaKey||t.ctrlKey)&&i.startselected?(i.$element.removeClass("ui-selecting"),i.selecting=!1,i.$element.addClass("ui-selected"),i.selected=!0):(i.$element.removeClass("ui-selecting"),i.selecting=!1,i.startselected&&(i.$element.addClass("ui-unselecting"),i.unselecting=!0),s._trigger("unselecting",t,{unselecting:i.element}))),i.selected&&(t.metaKey||t.ctrlKey||i.startselected||(i.$element.removeClass("ui-selected"),i.selected=!1,i.$element.addClass("ui-unselecting"),i.unselecting=!0,s._trigger("unselecting",t,{unselecting:i.element})))))}),!1}},_mouseStop:function(t){var i=this;return this.dragged=!1,e(".ui-unselecting",this.element[0]).each(function(){var s=e.data(this,"selectable-item");s.$element.removeClass("ui-unselecting"),s.unselecting=!1,s.startselected=!1,i._trigger("unselected",t,{unselected:s.element})}),e(".ui-selecting",this.element[0]).each(function(){var s=e.data(this,"selectable-item");s.$element.removeClass("ui-selecting").addClass("ui-selected"),s.selecting=!1,s.selected=!0,s.startselected=!0,i._trigger("selected",t,{selected:s.element})}),this._trigger("stop",t),this.helper.remove(),!1}}),e.widget("ui.selectmenu",{version:"1.11.2",defaultElement:"<select>",options:{appendTo:null,disabled:null,icons:{button:"ui-icon-triangle-1-s"},position:{my:"left top",at:"left bottom",collision:"none"},width:null,change:null,close:null,focus:null,open:null,select:null},_create:function(){var e=this.element.uniqueId().attr("id");this.ids={element:e,button:e+"-button",menu:e+"-menu"},this._drawButton(),this._drawMenu(),this.options.disabled&&this.disable()},_drawButton:function(){var t=this,i=this.element.attr("tabindex");this.label=e("label[for='"+this.ids.element+"']").attr("for",this.ids.button),this._on(this.label,{click:function(e){this.button.focus(),e.preventDefault()}}),this.element.hide(),this.button=e("<span>",{"class":"ui-selectmenu-button ui-widget ui-state-default ui-corner-all",tabindex:i||this.options.disabled?-1:0,id:this.ids.button,role:"combobox","aria-expanded":"false","aria-autocomplete":"list","aria-owns":this.ids.menu,"aria-haspopup":"true"}).insertAfter(this.element),e("<span>",{"class":"ui-icon "+this.options.icons.button}).prependTo(this.button),this.buttonText=e("<span>",{"class":"ui-selectmenu-text"}).appendTo(this.button),this._setText(this.buttonText,this.element.find("option:selected").text()),this._resizeButton(),this._on(this.button,this._buttonEvents),this.button.one("focusin",function(){t.menuItems||t._refreshMenu()}),this._hoverable(this.button),this._focusable(this.button)},_drawMenu:function(){var t=this;this.menu=e("<ul>",{"aria-hidden":"true","aria-labelledby":this.ids.button,id:this.ids.menu}),this.menuWrap=e("<div>",{"class":"ui-selectmenu-menu ui-front"}).append(this.menu).appendTo(this._appendTo()),this.menuInstance=this.menu.menu({role:"listbox",select:function(e,i){e.preventDefault(),t._setSelection(),t._select(i.item.data("ui-selectmenu-item"),e)},focus:function(e,i){var s=i.item.data("ui-selectmenu-item");null!=t.focusIndex&&s.index!==t.focusIndex&&(t._trigger("focus",e,{item:s}),t.isOpen||t._select(s,e)),t.focusIndex=s.index,t.button.attr("aria-activedescendant",t.menuItems.eq(s.index).attr("id"))}}).menu("instance"),this.menu.addClass("ui-corner-bottom").removeClass("ui-corner-all"),this.menuInstance._off(this.menu,"mouseleave"),this.menuInstance._closeOnDocumentClick=function(){return!1},this.menuInstance._isDivider=function(){return!1}},refresh:function(){this._refreshMenu(),this._setText(this.buttonText,this._getSelectedItem().text()),this.options.width||this._resizeButton()},_refreshMenu:function(){this.menu.empty();var e,t=this.element.find("option");t.length&&(this._parseOptions(t),this._renderMenu(this.menu,this.items),this.menuInstance.refresh(),this.menuItems=this.menu.find("li").not(".ui-selectmenu-optgroup"),e=this._getSelectedItem(),this.menuInstance.focus(null,e),this._setAria(e.data("ui-selectmenu-item")),this._setOption("disabled",this.element.prop("disabled")))},open:function(e){this.options.disabled||(this.menuItems?(this.menu.find(".ui-state-focus").removeClass("ui-state-focus"),this.menuInstance.focus(null,this._getSelectedItem())):this._refreshMenu(),this.isOpen=!0,this._toggleAttr(),this._resizeMenu(),this._position(),this._on(this.document,this._documentClick),this._trigger("open",e))},_position:function(){this.menuWrap.position(e.extend({of:this.button},this.options.position))},close:function(e){this.isOpen&&(this.isOpen=!1,this._toggleAttr(),this.range=null,this._off(this.document),this._trigger("close",e))},widget:function(){return this.button},menuWidget:function(){return this.menu},_renderMenu:function(t,i){var s=this,n="";e.each(i,function(i,a){a.optgroup!==n&&(e("<li>",{"class":"ui-selectmenu-optgroup ui-menu-divider"+(a.element.parent("optgroup").prop("disabled")?" ui-state-disabled":""),text:a.optgroup}).appendTo(t),n=a.optgroup),s._renderItemData(t,a)})},_renderItemData:function(e,t){return this._renderItem(e,t).data("ui-selectmenu-item",t)},_renderItem:function(t,i){var s=e("<li>");return i.disabled&&s.addClass("ui-state-disabled"),this._setText(s,i.label),s.appendTo(t)},_setText:function(e,t){t?e.text(t):e.html("&#160;")},_move:function(e,t){var i,s,n=".ui-menu-item";this.isOpen?i=this.menuItems.eq(this.focusIndex):(i=this.menuItems.eq(this.element[0].selectedIndex),n+=":not(.ui-state-disabled)"),s="first"===e||"last"===e?i["first"===e?"prevAll":"nextAll"](n).eq(-1):i[e+"All"](n).eq(0),s.length&&this.menuInstance.focus(t,s)},_getSelectedItem:function(){return this.menuItems.eq(this.element[0].selectedIndex)},_toggle:function(e){this[this.isOpen?"close":"open"](e)},_setSelection:function(){var e;this.range&&(window.getSelection?(e=window.getSelection(),e.removeAllRanges(),e.addRange(this.range)):this.range.select(),this.button.focus())},_documentClick:{mousedown:function(t){this.isOpen&&(e(t.target).closest(".ui-selectmenu-menu, #"+this.ids.button).length||this.close(t))}},_buttonEvents:{mousedown:function(){var e;window.getSelection?(e=window.getSelection(),e.rangeCount&&(this.range=e.getRangeAt(0))):this.range=document.selection.createRange()},click:function(e){this._setSelection(),this._toggle(e)},keydown:function(t){var i=!0;switch(t.keyCode){case e.ui.keyCode.TAB:case e.ui.keyCode.ESCAPE:this.close(t),i=!1;break;case e.ui.keyCode.ENTER:this.isOpen&&this._selectFocusedItem(t);break;case e.ui.keyCode.UP:t.altKey?this._toggle(t):this._move("prev",t);break;case e.ui.keyCode.DOWN:t.altKey?this._toggle(t):this._move("next",t);break;case e.ui.keyCode.SPACE:this.isOpen?this._selectFocusedItem(t):this._toggle(t);break;case e.ui.keyCode.LEFT:this._move("prev",t);break;case e.ui.keyCode.RIGHT:this._move("next",t);break;case e.ui.keyCode.HOME:case e.ui.keyCode.PAGE_UP:this._move("first",t);break;case e.ui.keyCode.END:case e.ui.keyCode.PAGE_DOWN:this._move("last",t);break;default:this.menu.trigger(t),i=!1}i&&t.preventDefault()}},_selectFocusedItem:function(e){var t=this.menuItems.eq(this.focusIndex);t.hasClass("ui-state-disabled")||this._select(t.data("ui-selectmenu-item"),e)},_select:function(e,t){var i=this.element[0].selectedIndex;this.element[0].selectedIndex=e.index,this._setText(this.buttonText,e.label),this._setAria(e),this._trigger("select",t,{item:e}),e.index!==i&&this._trigger("change",t,{item:e}),this.close(t)},_setAria:function(e){var t=this.menuItems.eq(e.index).attr("id");this.button.attr({"aria-labelledby":t,"aria-activedescendant":t}),this.menu.attr("aria-activedescendant",t)},_setOption:function(e,t){"icons"===e&&this.button.find("span.ui-icon").removeClass(this.options.icons.button).addClass(t.button),this._super(e,t),"appendTo"===e&&this.menuWrap.appendTo(this._appendTo()),"disabled"===e&&(this.menuInstance.option("disabled",t),this.button.toggleClass("ui-state-disabled",t).attr("aria-disabled",t),this.element.prop("disabled",t),t?(this.button.attr("tabindex",-1),this.close()):this.button.attr("tabindex",0)),"width"===e&&this._resizeButton()},_appendTo:function(){var t=this.options.appendTo;return t&&(t=t.jquery||t.nodeType?e(t):this.document.find(t).eq(0)),t&&t[0]||(t=this.element.closest(".ui-front")),t.length||(t=this.document[0].body),t},_toggleAttr:function(){this.button.toggleClass("ui-corner-top",this.isOpen).toggleClass("ui-corner-all",!this.isOpen).attr("aria-expanded",this.isOpen),this.menuWrap.toggleClass("ui-selectmenu-open",this.isOpen),this.menu.attr("aria-hidden",!this.isOpen)},_resizeButton:function(){var e=this.options.width;e||(e=this.element.show().outerWidth(),this.element.hide()),this.button.outerWidth(e)},_resizeMenu:function(){this.menu.outerWidth(Math.max(this.button.outerWidth(),this.menu.width("").outerWidth()+1))},_getCreateOptions:function(){return{disabled:this.element.prop("disabled")}},_parseOptions:function(t){var i=[];t.each(function(t,s){var n=e(s),a=n.parent("optgroup");i.push({element:n,index:t,value:n.attr("value"),label:n.text(),optgroup:a.attr("label")||"",disabled:a.prop("disabled")||n.prop("disabled")})}),this.items=i},_destroy:function(){this.menuWrap.remove(),this.button.remove(),this.element.show(),this.element.removeUniqueId(),this.label.attr("for",this.ids.element)}}),e.widget("ui.slider",e.ui.mouse,{version:"1.11.2",widgetEventPrefix:"slide",options:{animate:!1,distance:0,max:100,min:0,orientation:"horizontal",range:!1,step:1,value:0,values:null,change:null,slide:null,start:null,stop:null},numPages:5,_create:function(){this._keySliding=!1,this._mouseSliding=!1,this._animateOff=!0,this._handleIndex=null,this._detectOrientation(),this._mouseInit(),this._calculateNewMax(),this.element.addClass("ui-slider ui-slider-"+this.orientation+" ui-widget"+" ui-widget-content"+" ui-corner-all"),this._refresh(),this._setOption("disabled",this.options.disabled),this._animateOff=!1},_refresh:function(){this._createRange(),this._createHandles(),this._setupEvents(),this._refreshValue()},_createHandles:function(){var t,i,s=this.options,n=this.element.find(".ui-slider-handle").addClass("ui-state-default ui-corner-all"),a="<span class='ui-slider-handle ui-state-default ui-corner-all' tabindex='0'></span>",o=[];for(i=s.values&&s.values.length||1,n.length>i&&(n.slice(i).remove(),n=n.slice(0,i)),t=n.length;i>t;t++)o.push(a);this.handles=n.add(e(o.join("")).appendTo(this.element)),this.handle=this.handles.eq(0),this.handles.each(function(t){e(this).data("ui-slider-handle-index",t)})},_createRange:function(){var t=this.options,i="";t.range?(t.range===!0&&(t.values?t.values.length&&2!==t.values.length?t.values=[t.values[0],t.values[0]]:e.isArray(t.values)&&(t.values=t.values.slice(0)):t.values=[this._valueMin(),this._valueMin()]),this.range&&this.range.length?this.range.removeClass("ui-slider-range-min ui-slider-range-max").css({left:"",bottom:""}):(this.range=e("<div></div>").appendTo(this.element),i="ui-slider-range ui-widget-header ui-corner-all"),this.range.addClass(i+("min"===t.range||"max"===t.range?" ui-slider-range-"+t.range:""))):(this.range&&this.range.remove(),this.range=null)},_setupEvents:function(){this._off(this.handles),this._on(this.handles,this._handleEvents),this._hoverable(this.handles),this._focusable(this.handles)},_destroy:function(){this.handles.remove(),this.range&&this.range.remove(),this.element.removeClass("ui-slider ui-slider-horizontal ui-slider-vertical ui-widget ui-widget-content ui-corner-all"),this._mouseDestroy()},_mouseCapture:function(t){var i,s,n,a,o,r,h,l,u=this,d=this.options;return d.disabled?!1:(this.elementSize={width:this.element.outerWidth(),height:this.element.outerHeight()},this.elementOffset=this.element.offset(),i={x:t.pageX,y:t.pageY},s=this._normValueFromMouse(i),n=this._valueMax()-this._valueMin()+1,this.handles.each(function(t){var i=Math.abs(s-u.values(t));(n>i||n===i&&(t===u._lastChangedValue||u.values(t)===d.min))&&(n=i,a=e(this),o=t)}),r=this._start(t,o),r===!1?!1:(this._mouseSliding=!0,this._handleIndex=o,a.addClass("ui-state-active").focus(),h=a.offset(),l=!e(t.target).parents().addBack().is(".ui-slider-handle"),this._clickOffset=l?{left:0,top:0}:{left:t.pageX-h.left-a.width()/2,top:t.pageY-h.top-a.height()/2-(parseInt(a.css("borderTopWidth"),10)||0)-(parseInt(a.css("borderBottomWidth"),10)||0)+(parseInt(a.css("marginTop"),10)||0)},this.handles.hasClass("ui-state-hover")||this._slide(t,o,s),this._animateOff=!0,!0))},_mouseStart:function(){return!0},_mouseDrag:function(e){var t={x:e.pageX,y:e.pageY},i=this._normValueFromMouse(t);return this._slide(e,this._handleIndex,i),!1},_mouseStop:function(e){return this.handles.removeClass("ui-state-active"),this._mouseSliding=!1,this._stop(e,this._handleIndex),this._change(e,this._handleIndex),this._handleIndex=null,this._clickOffset=null,this._animateOff=!1,!1},_detectOrientation:function(){this.orientation="vertical"===this.options.orientation?"vertical":"horizontal"},_normValueFromMouse:function(e){var t,i,s,n,a;return"horizontal"===this.orientation?(t=this.elementSize.width,i=e.x-this.elementOffset.left-(this._clickOffset?this._clickOffset.left:0)):(t=this.elementSize.height,i=e.y-this.elementOffset.top-(this._clickOffset?this._clickOffset.top:0)),s=i/t,s>1&&(s=1),0>s&&(s=0),"vertical"===this.orientation&&(s=1-s),n=this._valueMax()-this._valueMin(),a=this._valueMin()+s*n,this._trimAlignValue(a)},_start:function(e,t){var i={handle:this.handles[t],value:this.value()};return this.options.values&&this.options.values.length&&(i.value=this.values(t),i.values=this.values()),this._trigger("start",e,i)},_slide:function(e,t,i){var s,n,a;this.options.values&&this.options.values.length?(s=this.values(t?0:1),2===this.options.values.length&&this.options.range===!0&&(0===t&&i>s||1===t&&s>i)&&(i=s),i!==this.values(t)&&(n=this.values(),n[t]=i,a=this._trigger("slide",e,{handle:this.handles[t],value:i,values:n}),s=this.values(t?0:1),a!==!1&&this.values(t,i))):i!==this.value()&&(a=this._trigger("slide",e,{handle:this.handles[t],value:i}),a!==!1&&this.value(i))},_stop:function(e,t){var i={handle:this.handles[t],value:this.value()};this.options.values&&this.options.values.length&&(i.value=this.values(t),i.values=this.values()),this._trigger("stop",e,i)},_change:function(e,t){if(!this._keySliding&&!this._mouseSliding){var i={handle:this.handles[t],value:this.value()};this.options.values&&this.options.values.length&&(i.value=this.values(t),i.values=this.values()),this._lastChangedValue=t,this._trigger("change",e,i)}},value:function(e){return arguments.length?(this.options.value=this._trimAlignValue(e),this._refreshValue(),this._change(null,0),void 0):this._value()},values:function(t,i){var s,n,a;if(arguments.length>1)return this.options.values[t]=this._trimAlignValue(i),this._refreshValue(),this._change(null,t),void 0;if(!arguments.length)return this._values();if(!e.isArray(arguments[0]))return this.options.values&&this.options.values.length?this._values(t):this.value();for(s=this.options.values,n=arguments[0],a=0;s.length>a;a+=1)s[a]=this._trimAlignValue(n[a]),this._change(null,a);this._refreshValue()},_setOption:function(t,i){var s,n=0;switch("range"===t&&this.options.range===!0&&("min"===i?(this.options.value=this._values(0),this.options.values=null):"max"===i&&(this.options.value=this._values(this.options.values.length-1),this.options.values=null)),e.isArray(this.options.values)&&(n=this.options.values.length),"disabled"===t&&this.element.toggleClass("ui-state-disabled",!!i),this._super(t,i),t){case"orientation":this._detectOrientation(),this.element.removeClass("ui-slider-horizontal ui-slider-vertical").addClass("ui-slider-"+this.orientation),this._refreshValue(),this.handles.css("horizontal"===i?"bottom":"left","");break;case"value":this._animateOff=!0,this._refreshValue(),this._change(null,0),this._animateOff=!1;break;case"values":for(this._animateOff=!0,this._refreshValue(),s=0;n>s;s+=1)this._change(null,s);this._animateOff=!1;break;case"step":case"min":case"max":this._animateOff=!0,this._calculateNewMax(),this._refreshValue(),this._animateOff=!1;break;case"range":this._animateOff=!0,this._refresh(),this._animateOff=!1}},_value:function(){var e=this.options.value;return e=this._trimAlignValue(e)},_values:function(e){var t,i,s;if(arguments.length)return t=this.options.values[e],t=this._trimAlignValue(t);if(this.options.values&&this.options.values.length){for(i=this.options.values.slice(),s=0;i.length>s;s+=1)i[s]=this._trimAlignValue(i[s]);return i}return[]},_trimAlignValue:function(e){if(this._valueMin()>=e)return this._valueMin();if(e>=this._valueMax())return this._valueMax();var t=this.options.step>0?this.options.step:1,i=(e-this._valueMin())%t,s=e-i;return 2*Math.abs(i)>=t&&(s+=i>0?t:-t),parseFloat(s.toFixed(5))},_calculateNewMax:function(){var e=(this.options.max-this._valueMin())%this.options.step;this.max=this.options.max-e},_valueMin:function(){return this.options.min},_valueMax:function(){return this.max},_refreshValue:function(){var t,i,s,n,a,o=this.options.range,r=this.options,h=this,l=this._animateOff?!1:r.animate,u={};this.options.values&&this.options.values.length?this.handles.each(function(s){i=100*((h.values(s)-h._valueMin())/(h._valueMax()-h._valueMin())),u["horizontal"===h.orientation?"left":"bottom"]=i+"%",e(this).stop(1,1)[l?"animate":"css"](u,r.animate),h.options.range===!0&&("horizontal"===h.orientation?(0===s&&h.range.stop(1,1)[l?"animate":"css"]({left:i+"%"},r.animate),1===s&&h.range[l?"animate":"css"]({width:i-t+"%"},{queue:!1,duration:r.animate})):(0===s&&h.range.stop(1,1)[l?"animate":"css"]({bottom:i+"%"},r.animate),1===s&&h.range[l?"animate":"css"]({height:i-t+"%"},{queue:!1,duration:r.animate}))),t=i}):(s=this.value(),n=this._valueMin(),a=this._valueMax(),i=a!==n?100*((s-n)/(a-n)):0,u["horizontal"===this.orientation?"left":"bottom"]=i+"%",this.handle.stop(1,1)[l?"animate":"css"](u,r.animate),"min"===o&&"horizontal"===this.orientation&&this.range.stop(1,1)[l?"animate":"css"]({width:i+"%"},r.animate),"max"===o&&"horizontal"===this.orientation&&this.range[l?"animate":"css"]({width:100-i+"%"},{queue:!1,duration:r.animate}),"min"===o&&"vertical"===this.orientation&&this.range.stop(1,1)[l?"animate":"css"]({height:i+"%"},r.animate),"max"===o&&"vertical"===this.orientation&&this.range[l?"animate":"css"]({height:100-i+"%"},{queue:!1,duration:r.animate}))},_handleEvents:{keydown:function(t){var i,s,n,a,o=e(t.target).data("ui-slider-handle-index");switch(t.keyCode){case e.ui.keyCode.HOME:case e.ui.keyCode.END:case e.ui.keyCode.PAGE_UP:case e.ui.keyCode.PAGE_DOWN:case e.ui.keyCode.UP:case e.ui.keyCode.RIGHT:case e.ui.keyCode.DOWN:case e.ui.keyCode.LEFT:if(t.preventDefault(),!this._keySliding&&(this._keySliding=!0,e(t.target).addClass("ui-state-active"),i=this._start(t,o),i===!1))return}switch(a=this.options.step,s=n=this.options.values&&this.options.values.length?this.values(o):this.value(),t.keyCode){case e.ui.keyCode.HOME:n=this._valueMin();break;case e.ui.keyCode.END:n=this._valueMax();break;case e.ui.keyCode.PAGE_UP:n=this._trimAlignValue(s+(this._valueMax()-this._valueMin())/this.numPages);break;case e.ui.keyCode.PAGE_DOWN:n=this._trimAlignValue(s-(this._valueMax()-this._valueMin())/this.numPages);break;case e.ui.keyCode.UP:case e.ui.keyCode.RIGHT:if(s===this._valueMax())return;n=this._trimAlignValue(s+a);break;case e.ui.keyCode.DOWN:case e.ui.keyCode.LEFT:if(s===this._valueMin())return;n=this._trimAlignValue(s-a)}this._slide(t,o,n)},keyup:function(t){var i=e(t.target).data("ui-slider-handle-index");this._keySliding&&(this._keySliding=!1,this._stop(t,i),this._change(t,i),e(t.target).removeClass("ui-state-active"))}}}),e.widget("ui.sortable",e.ui.mouse,{version:"1.11.2",widgetEventPrefix:"sort",ready:!1,options:{appendTo:"parent",axis:!1,connectWith:!1,containment:!1,cursor:"auto",cursorAt:!1,dropOnEmpty:!0,forcePlaceholderSize:!1,forceHelperSize:!1,grid:!1,handle:!1,helper:"original",items:"> *",opacity:!1,placeholder:!1,revert:!1,scroll:!0,scrollSensitivity:20,scrollSpeed:20,scope:"default",tolerance:"intersect",zIndex:1e3,activate:null,beforeStop:null,change:null,deactivate:null,out:null,over:null,receive:null,remove:null,sort:null,start:null,stop:null,update:null},_isOverAxis:function(e,t,i){return e>=t&&t+i>e},_isFloating:function(e){return/left|right/.test(e.css("float"))||/inline|table-cell/.test(e.css("display"))},_create:function(){var e=this.options;this.containerCache={},this.element.addClass("ui-sortable"),this.refresh(),this.floating=this.items.length?"x"===e.axis||this._isFloating(this.items[0].item):!1,this.offset=this.element.offset(),this._mouseInit(),this._setHandleClassName(),this.ready=!0},_setOption:function(e,t){this._super(e,t),"handle"===e&&this._setHandleClassName()},_setHandleClassName:function(){this.element.find(".ui-sortable-handle").removeClass("ui-sortable-handle"),e.each(this.items,function(){(this.instance.options.handle?this.item.find(this.instance.options.handle):this.item).addClass("ui-sortable-handle")})},_destroy:function(){this.element.removeClass("ui-sortable ui-sortable-disabled").find(".ui-sortable-handle").removeClass("ui-sortable-handle"),this._mouseDestroy();for(var e=this.items.length-1;e>=0;e--)this.items[e].item.removeData(this.widgetName+"-item");return this},_mouseCapture:function(t,i){var s=null,n=!1,a=this;return this.reverting?!1:this.options.disabled||"static"===this.options.type?!1:(this._refreshItems(t),e(t.target).parents().each(function(){return e.data(this,a.widgetName+"-item")===a?(s=e(this),!1):void 0}),e.data(t.target,a.widgetName+"-item")===a&&(s=e(t.target)),s?!this.options.handle||i||(e(this.options.handle,s).find("*").addBack().each(function(){this===t.target&&(n=!0)}),n)?(this.currentItem=s,this._removeCurrentsFromItems(),!0):!1:!1)},_mouseStart:function(t,i,s){var n,a,o=this.options;if(this.currentContainer=this,this.refreshPositions(),this.helper=this._createHelper(t),this._cacheHelperProportions(),this._cacheMargins(),this.scrollParent=this.helper.scrollParent(),this.offset=this.currentItem.offset(),this.offset={top:this.offset.top-this.margins.top,left:this.offset.left-this.margins.left},e.extend(this.offset,{click:{left:t.pageX-this.offset.left,top:t.pageY-this.offset.top},parent:this._getParentOffset(),relative:this._getRelativeOffset()}),this.helper.css("position","absolute"),this.cssPosition=this.helper.css("position"),this.originalPosition=this._generatePosition(t),this.originalPageX=t.pageX,this.originalPageY=t.pageY,o.cursorAt&&this._adjustOffsetFromHelper(o.cursorAt),this.domPosition={prev:this.currentItem.prev()[0],parent:this.currentItem.parent()[0]},this.helper[0]!==this.currentItem[0]&&this.currentItem.hide(),this._createPlaceholder(),o.containment&&this._setContainment(),o.cursor&&"auto"!==o.cursor&&(a=this.document.find("body"),this.storedCursor=a.css("cursor"),a.css("cursor",o.cursor),this.storedStylesheet=e("<style>*{ cursor: "+o.cursor+" !important; }</style>").appendTo(a)),o.opacity&&(this.helper.css("opacity")&&(this._storedOpacity=this.helper.css("opacity")),this.helper.css("opacity",o.opacity)),o.zIndex&&(this.helper.css("zIndex")&&(this._storedZIndex=this.helper.css("zIndex")),this.helper.css("zIndex",o.zIndex)),this.scrollParent[0]!==document&&"HTML"!==this.scrollParent[0].tagName&&(this.overflowOffset=this.scrollParent.offset()),this._trigger("start",t,this._uiHash()),this._preserveHelperProportions||this._cacheHelperProportions(),!s)for(n=this.containers.length-1;n>=0;n--)this.containers[n]._trigger("activate",t,this._uiHash(this)); - return e.ui.ddmanager&&(e.ui.ddmanager.current=this),e.ui.ddmanager&&!o.dropBehaviour&&e.ui.ddmanager.prepareOffsets(this,t),this.dragging=!0,this.helper.addClass("ui-sortable-helper"),this._mouseDrag(t),!0},_mouseDrag:function(t){var i,s,n,a,o=this.options,r=!1;for(this.position=this._generatePosition(t),this.positionAbs=this._convertPositionTo("absolute"),this.lastPositionAbs||(this.lastPositionAbs=this.positionAbs),this.options.scroll&&(this.scrollParent[0]!==document&&"HTML"!==this.scrollParent[0].tagName?(this.overflowOffset.top+this.scrollParent[0].offsetHeight-t.pageY<o.scrollSensitivity?this.scrollParent[0].scrollTop=r=this.scrollParent[0].scrollTop+o.scrollSpeed:t.pageY-this.overflowOffset.top<o.scrollSensitivity&&(this.scrollParent[0].scrollTop=r=this.scrollParent[0].scrollTop-o.scrollSpeed),this.overflowOffset.left+this.scrollParent[0].offsetWidth-t.pageX<o.scrollSensitivity?this.scrollParent[0].scrollLeft=r=this.scrollParent[0].scrollLeft+o.scrollSpeed:t.pageX-this.overflowOffset.left<o.scrollSensitivity&&(this.scrollParent[0].scrollLeft=r=this.scrollParent[0].scrollLeft-o.scrollSpeed)):(t.pageY-e(document).scrollTop()<o.scrollSensitivity?r=e(document).scrollTop(e(document).scrollTop()-o.scrollSpeed):e(window).height()-(t.pageY-e(document).scrollTop())<o.scrollSensitivity&&(r=e(document).scrollTop(e(document).scrollTop()+o.scrollSpeed)),t.pageX-e(document).scrollLeft()<o.scrollSensitivity?r=e(document).scrollLeft(e(document).scrollLeft()-o.scrollSpeed):e(window).width()-(t.pageX-e(document).scrollLeft())<o.scrollSensitivity&&(r=e(document).scrollLeft(e(document).scrollLeft()+o.scrollSpeed))),r!==!1&&e.ui.ddmanager&&!o.dropBehaviour&&e.ui.ddmanager.prepareOffsets(this,t)),this.positionAbs=this._convertPositionTo("absolute"),this.options.axis&&"y"===this.options.axis||(this.helper[0].style.left=this.position.left+"px"),this.options.axis&&"x"===this.options.axis||(this.helper[0].style.top=this.position.top+"px"),i=this.items.length-1;i>=0;i--)if(s=this.items[i],n=s.item[0],a=this._intersectsWithPointer(s),a&&s.instance===this.currentContainer&&n!==this.currentItem[0]&&this.placeholder[1===a?"next":"prev"]()[0]!==n&&!e.contains(this.placeholder[0],n)&&("semi-dynamic"===this.options.type?!e.contains(this.element[0],n):!0)){if(this.direction=1===a?"down":"up","pointer"!==this.options.tolerance&&!this._intersectsWithSides(s))break;this._rearrange(t,s),this._trigger("change",t,this._uiHash());break}return this._contactContainers(t),e.ui.ddmanager&&e.ui.ddmanager.drag(this,t),this._trigger("sort",t,this._uiHash()),this.lastPositionAbs=this.positionAbs,!1},_mouseStop:function(t,i){if(t){if(e.ui.ddmanager&&!this.options.dropBehaviour&&e.ui.ddmanager.drop(this,t),this.options.revert){var s=this,n=this.placeholder.offset(),a=this.options.axis,o={};a&&"x"!==a||(o.left=n.left-this.offset.parent.left-this.margins.left+(this.offsetParent[0]===document.body?0:this.offsetParent[0].scrollLeft)),a&&"y"!==a||(o.top=n.top-this.offset.parent.top-this.margins.top+(this.offsetParent[0]===document.body?0:this.offsetParent[0].scrollTop)),this.reverting=!0,e(this.helper).animate(o,parseInt(this.options.revert,10)||500,function(){s._clear(t)})}else this._clear(t,i);return!1}},cancel:function(){if(this.dragging){this._mouseUp({target:null}),"original"===this.options.helper?this.currentItem.css(this._storedCSS).removeClass("ui-sortable-helper"):this.currentItem.show();for(var t=this.containers.length-1;t>=0;t--)this.containers[t]._trigger("deactivate",null,this._uiHash(this)),this.containers[t].containerCache.over&&(this.containers[t]._trigger("out",null,this._uiHash(this)),this.containers[t].containerCache.over=0)}return this.placeholder&&(this.placeholder[0].parentNode&&this.placeholder[0].parentNode.removeChild(this.placeholder[0]),"original"!==this.options.helper&&this.helper&&this.helper[0].parentNode&&this.helper.remove(),e.extend(this,{helper:null,dragging:!1,reverting:!1,_noFinalSort:null}),this.domPosition.prev?e(this.domPosition.prev).after(this.currentItem):e(this.domPosition.parent).prepend(this.currentItem)),this},serialize:function(t){var i=this._getItemsAsjQuery(t&&t.connected),s=[];return t=t||{},e(i).each(function(){var i=(e(t.item||this).attr(t.attribute||"id")||"").match(t.expression||/(.+)[\-=_](.+)/);i&&s.push((t.key||i[1]+"[]")+"="+(t.key&&t.expression?i[1]:i[2]))}),!s.length&&t.key&&s.push(t.key+"="),s.join("&")},toArray:function(t){var i=this._getItemsAsjQuery(t&&t.connected),s=[];return t=t||{},i.each(function(){s.push(e(t.item||this).attr(t.attribute||"id")||"")}),s},_intersectsWith:function(e){var t=this.positionAbs.left,i=t+this.helperProportions.width,s=this.positionAbs.top,n=s+this.helperProportions.height,a=e.left,o=a+e.width,r=e.top,h=r+e.height,l=this.offset.click.top,u=this.offset.click.left,d="x"===this.options.axis||s+l>r&&h>s+l,c="y"===this.options.axis||t+u>a&&o>t+u,p=d&&c;return"pointer"===this.options.tolerance||this.options.forcePointerForContainers||"pointer"!==this.options.tolerance&&this.helperProportions[this.floating?"width":"height"]>e[this.floating?"width":"height"]?p:t+this.helperProportions.width/2>a&&o>i-this.helperProportions.width/2&&s+this.helperProportions.height/2>r&&h>n-this.helperProportions.height/2},_intersectsWithPointer:function(e){var t="x"===this.options.axis||this._isOverAxis(this.positionAbs.top+this.offset.click.top,e.top,e.height),i="y"===this.options.axis||this._isOverAxis(this.positionAbs.left+this.offset.click.left,e.left,e.width),s=t&&i,n=this._getDragVerticalDirection(),a=this._getDragHorizontalDirection();return s?this.floating?a&&"right"===a||"down"===n?2:1:n&&("down"===n?2:1):!1},_intersectsWithSides:function(e){var t=this._isOverAxis(this.positionAbs.top+this.offset.click.top,e.top+e.height/2,e.height),i=this._isOverAxis(this.positionAbs.left+this.offset.click.left,e.left+e.width/2,e.width),s=this._getDragVerticalDirection(),n=this._getDragHorizontalDirection();return this.floating&&n?"right"===n&&i||"left"===n&&!i:s&&("down"===s&&t||"up"===s&&!t)},_getDragVerticalDirection:function(){var e=this.positionAbs.top-this.lastPositionAbs.top;return 0!==e&&(e>0?"down":"up")},_getDragHorizontalDirection:function(){var e=this.positionAbs.left-this.lastPositionAbs.left;return 0!==e&&(e>0?"right":"left")},refresh:function(e){return this._refreshItems(e),this._setHandleClassName(),this.refreshPositions(),this},_connectWith:function(){var e=this.options;return e.connectWith.constructor===String?[e.connectWith]:e.connectWith},_getItemsAsjQuery:function(t){function i(){r.push(this)}var s,n,a,o,r=[],h=[],l=this._connectWith();if(l&&t)for(s=l.length-1;s>=0;s--)for(a=e(l[s]),n=a.length-1;n>=0;n--)o=e.data(a[n],this.widgetFullName),o&&o!==this&&!o.options.disabled&&h.push([e.isFunction(o.options.items)?o.options.items.call(o.element):e(o.options.items,o.element).not(".ui-sortable-helper").not(".ui-sortable-placeholder"),o]);for(h.push([e.isFunction(this.options.items)?this.options.items.call(this.element,null,{options:this.options,item:this.currentItem}):e(this.options.items,this.element).not(".ui-sortable-helper").not(".ui-sortable-placeholder"),this]),s=h.length-1;s>=0;s--)h[s][0].each(i);return e(r)},_removeCurrentsFromItems:function(){var t=this.currentItem.find(":data("+this.widgetName+"-item)");this.items=e.grep(this.items,function(e){for(var i=0;t.length>i;i++)if(t[i]===e.item[0])return!1;return!0})},_refreshItems:function(t){this.items=[],this.containers=[this];var i,s,n,a,o,r,h,l,u=this.items,d=[[e.isFunction(this.options.items)?this.options.items.call(this.element[0],t,{item:this.currentItem}):e(this.options.items,this.element),this]],c=this._connectWith();if(c&&this.ready)for(i=c.length-1;i>=0;i--)for(n=e(c[i]),s=n.length-1;s>=0;s--)a=e.data(n[s],this.widgetFullName),a&&a!==this&&!a.options.disabled&&(d.push([e.isFunction(a.options.items)?a.options.items.call(a.element[0],t,{item:this.currentItem}):e(a.options.items,a.element),a]),this.containers.push(a));for(i=d.length-1;i>=0;i--)for(o=d[i][1],r=d[i][0],s=0,l=r.length;l>s;s++)h=e(r[s]),h.data(this.widgetName+"-item",o),u.push({item:h,instance:o,width:0,height:0,left:0,top:0})},refreshPositions:function(t){this.offsetParent&&this.helper&&(this.offset.parent=this._getParentOffset());var i,s,n,a;for(i=this.items.length-1;i>=0;i--)s=this.items[i],s.instance!==this.currentContainer&&this.currentContainer&&s.item[0]!==this.currentItem[0]||(n=this.options.toleranceElement?e(this.options.toleranceElement,s.item):s.item,t||(s.width=n.outerWidth(),s.height=n.outerHeight()),a=n.offset(),s.left=a.left,s.top=a.top);if(this.options.custom&&this.options.custom.refreshContainers)this.options.custom.refreshContainers.call(this);else for(i=this.containers.length-1;i>=0;i--)a=this.containers[i].element.offset(),this.containers[i].containerCache.left=a.left,this.containers[i].containerCache.top=a.top,this.containers[i].containerCache.width=this.containers[i].element.outerWidth(),this.containers[i].containerCache.height=this.containers[i].element.outerHeight();return this},_createPlaceholder:function(t){t=t||this;var i,s=t.options;s.placeholder&&s.placeholder.constructor!==String||(i=s.placeholder,s.placeholder={element:function(){var s=t.currentItem[0].nodeName.toLowerCase(),n=e("<"+s+">",t.document[0]).addClass(i||t.currentItem[0].className+" ui-sortable-placeholder").removeClass("ui-sortable-helper");return"tr"===s?t.currentItem.children().each(function(){e("<td>&#160;</td>",t.document[0]).attr("colspan",e(this).attr("colspan")||1).appendTo(n)}):"img"===s&&n.attr("src",t.currentItem.attr("src")),i||n.css("visibility","hidden"),n},update:function(e,n){(!i||s.forcePlaceholderSize)&&(n.height()||n.height(t.currentItem.innerHeight()-parseInt(t.currentItem.css("paddingTop")||0,10)-parseInt(t.currentItem.css("paddingBottom")||0,10)),n.width()||n.width(t.currentItem.innerWidth()-parseInt(t.currentItem.css("paddingLeft")||0,10)-parseInt(t.currentItem.css("paddingRight")||0,10)))}}),t.placeholder=e(s.placeholder.element.call(t.element,t.currentItem)),t.currentItem.after(t.placeholder),s.placeholder.update(t,t.placeholder)},_contactContainers:function(t){var i,s,n,a,o,r,h,l,u,d,c=null,p=null;for(i=this.containers.length-1;i>=0;i--)if(!e.contains(this.currentItem[0],this.containers[i].element[0]))if(this._intersectsWith(this.containers[i].containerCache)){if(c&&e.contains(this.containers[i].element[0],c.element[0]))continue;c=this.containers[i],p=i}else this.containers[i].containerCache.over&&(this.containers[i]._trigger("out",t,this._uiHash(this)),this.containers[i].containerCache.over=0);if(c)if(1===this.containers.length)this.containers[p].containerCache.over||(this.containers[p]._trigger("over",t,this._uiHash(this)),this.containers[p].containerCache.over=1);else{for(n=1e4,a=null,u=c.floating||this._isFloating(this.currentItem),o=u?"left":"top",r=u?"width":"height",d=u?"clientX":"clientY",s=this.items.length-1;s>=0;s--)e.contains(this.containers[p].element[0],this.items[s].item[0])&&this.items[s].item[0]!==this.currentItem[0]&&(h=this.items[s].item.offset()[o],l=!1,t[d]-h>this.items[s][r]/2&&(l=!0),n>Math.abs(t[d]-h)&&(n=Math.abs(t[d]-h),a=this.items[s],this.direction=l?"up":"down"));if(!a&&!this.options.dropOnEmpty)return;if(this.currentContainer===this.containers[p])return this.currentContainer.containerCache.over||(this.containers[p]._trigger("over",t,this._uiHash()),this.currentContainer.containerCache.over=1),void 0;a?this._rearrange(t,a,null,!0):this._rearrange(t,null,this.containers[p].element,!0),this._trigger("change",t,this._uiHash()),this.containers[p]._trigger("change",t,this._uiHash(this)),this.currentContainer=this.containers[p],this.options.placeholder.update(this.currentContainer,this.placeholder),this.containers[p]._trigger("over",t,this._uiHash(this)),this.containers[p].containerCache.over=1}},_createHelper:function(t){var i=this.options,s=e.isFunction(i.helper)?e(i.helper.apply(this.element[0],[t,this.currentItem])):"clone"===i.helper?this.currentItem.clone():this.currentItem;return s.parents("body").length||e("parent"!==i.appendTo?i.appendTo:this.currentItem[0].parentNode)[0].appendChild(s[0]),s[0]===this.currentItem[0]&&(this._storedCSS={width:this.currentItem[0].style.width,height:this.currentItem[0].style.height,position:this.currentItem.css("position"),top:this.currentItem.css("top"),left:this.currentItem.css("left")}),(!s[0].style.width||i.forceHelperSize)&&s.width(this.currentItem.width()),(!s[0].style.height||i.forceHelperSize)&&s.height(this.currentItem.height()),s},_adjustOffsetFromHelper:function(t){"string"==typeof t&&(t=t.split(" ")),e.isArray(t)&&(t={left:+t[0],top:+t[1]||0}),"left"in t&&(this.offset.click.left=t.left+this.margins.left),"right"in t&&(this.offset.click.left=this.helperProportions.width-t.right+this.margins.left),"top"in t&&(this.offset.click.top=t.top+this.margins.top),"bottom"in t&&(this.offset.click.top=this.helperProportions.height-t.bottom+this.margins.top)},_getParentOffset:function(){this.offsetParent=this.helper.offsetParent();var t=this.offsetParent.offset();return"absolute"===this.cssPosition&&this.scrollParent[0]!==document&&e.contains(this.scrollParent[0],this.offsetParent[0])&&(t.left+=this.scrollParent.scrollLeft(),t.top+=this.scrollParent.scrollTop()),(this.offsetParent[0]===document.body||this.offsetParent[0].tagName&&"html"===this.offsetParent[0].tagName.toLowerCase()&&e.ui.ie)&&(t={top:0,left:0}),{top:t.top+(parseInt(this.offsetParent.css("borderTopWidth"),10)||0),left:t.left+(parseInt(this.offsetParent.css("borderLeftWidth"),10)||0)}},_getRelativeOffset:function(){if("relative"===this.cssPosition){var e=this.currentItem.position();return{top:e.top-(parseInt(this.helper.css("top"),10)||0)+this.scrollParent.scrollTop(),left:e.left-(parseInt(this.helper.css("left"),10)||0)+this.scrollParent.scrollLeft()}}return{top:0,left:0}},_cacheMargins:function(){this.margins={left:parseInt(this.currentItem.css("marginLeft"),10)||0,top:parseInt(this.currentItem.css("marginTop"),10)||0}},_cacheHelperProportions:function(){this.helperProportions={width:this.helper.outerWidth(),height:this.helper.outerHeight()}},_setContainment:function(){var t,i,s,n=this.options;"parent"===n.containment&&(n.containment=this.helper[0].parentNode),("document"===n.containment||"window"===n.containment)&&(this.containment=[0-this.offset.relative.left-this.offset.parent.left,0-this.offset.relative.top-this.offset.parent.top,e("document"===n.containment?document:window).width()-this.helperProportions.width-this.margins.left,(e("document"===n.containment?document:window).height()||document.body.parentNode.scrollHeight)-this.helperProportions.height-this.margins.top]),/^(document|window|parent)$/.test(n.containment)||(t=e(n.containment)[0],i=e(n.containment).offset(),s="hidden"!==e(t).css("overflow"),this.containment=[i.left+(parseInt(e(t).css("borderLeftWidth"),10)||0)+(parseInt(e(t).css("paddingLeft"),10)||0)-this.margins.left,i.top+(parseInt(e(t).css("borderTopWidth"),10)||0)+(parseInt(e(t).css("paddingTop"),10)||0)-this.margins.top,i.left+(s?Math.max(t.scrollWidth,t.offsetWidth):t.offsetWidth)-(parseInt(e(t).css("borderLeftWidth"),10)||0)-(parseInt(e(t).css("paddingRight"),10)||0)-this.helperProportions.width-this.margins.left,i.top+(s?Math.max(t.scrollHeight,t.offsetHeight):t.offsetHeight)-(parseInt(e(t).css("borderTopWidth"),10)||0)-(parseInt(e(t).css("paddingBottom"),10)||0)-this.helperProportions.height-this.margins.top])},_convertPositionTo:function(t,i){i||(i=this.position);var s="absolute"===t?1:-1,n="absolute"!==this.cssPosition||this.scrollParent[0]!==document&&e.contains(this.scrollParent[0],this.offsetParent[0])?this.scrollParent:this.offsetParent,a=/(html|body)/i.test(n[0].tagName);return{top:i.top+this.offset.relative.top*s+this.offset.parent.top*s-("fixed"===this.cssPosition?-this.scrollParent.scrollTop():a?0:n.scrollTop())*s,left:i.left+this.offset.relative.left*s+this.offset.parent.left*s-("fixed"===this.cssPosition?-this.scrollParent.scrollLeft():a?0:n.scrollLeft())*s}},_generatePosition:function(t){var i,s,n=this.options,a=t.pageX,o=t.pageY,r="absolute"!==this.cssPosition||this.scrollParent[0]!==document&&e.contains(this.scrollParent[0],this.offsetParent[0])?this.scrollParent:this.offsetParent,h=/(html|body)/i.test(r[0].tagName);return"relative"!==this.cssPosition||this.scrollParent[0]!==document&&this.scrollParent[0]!==this.offsetParent[0]||(this.offset.relative=this._getRelativeOffset()),this.originalPosition&&(this.containment&&(t.pageX-this.offset.click.left<this.containment[0]&&(a=this.containment[0]+this.offset.click.left),t.pageY-this.offset.click.top<this.containment[1]&&(o=this.containment[1]+this.offset.click.top),t.pageX-this.offset.click.left>this.containment[2]&&(a=this.containment[2]+this.offset.click.left),t.pageY-this.offset.click.top>this.containment[3]&&(o=this.containment[3]+this.offset.click.top)),n.grid&&(i=this.originalPageY+Math.round((o-this.originalPageY)/n.grid[1])*n.grid[1],o=this.containment?i-this.offset.click.top>=this.containment[1]&&i-this.offset.click.top<=this.containment[3]?i:i-this.offset.click.top>=this.containment[1]?i-n.grid[1]:i+n.grid[1]:i,s=this.originalPageX+Math.round((a-this.originalPageX)/n.grid[0])*n.grid[0],a=this.containment?s-this.offset.click.left>=this.containment[0]&&s-this.offset.click.left<=this.containment[2]?s:s-this.offset.click.left>=this.containment[0]?s-n.grid[0]:s+n.grid[0]:s)),{top:o-this.offset.click.top-this.offset.relative.top-this.offset.parent.top+("fixed"===this.cssPosition?-this.scrollParent.scrollTop():h?0:r.scrollTop()),left:a-this.offset.click.left-this.offset.relative.left-this.offset.parent.left+("fixed"===this.cssPosition?-this.scrollParent.scrollLeft():h?0:r.scrollLeft())}},_rearrange:function(e,t,i,s){i?i[0].appendChild(this.placeholder[0]):t.item[0].parentNode.insertBefore(this.placeholder[0],"down"===this.direction?t.item[0]:t.item[0].nextSibling),this.counter=this.counter?++this.counter:1;var n=this.counter;this._delay(function(){n===this.counter&&this.refreshPositions(!s)})},_clear:function(e,t){function i(e,t,i){return function(s){i._trigger(e,s,t._uiHash(t))}}this.reverting=!1;var s,n=[];if(!this._noFinalSort&&this.currentItem.parent().length&&this.placeholder.before(this.currentItem),this._noFinalSort=null,this.helper[0]===this.currentItem[0]){for(s in this._storedCSS)("auto"===this._storedCSS[s]||"static"===this._storedCSS[s])&&(this._storedCSS[s]="");this.currentItem.css(this._storedCSS).removeClass("ui-sortable-helper")}else this.currentItem.show();for(this.fromOutside&&!t&&n.push(function(e){this._trigger("receive",e,this._uiHash(this.fromOutside))}),!this.fromOutside&&this.domPosition.prev===this.currentItem.prev().not(".ui-sortable-helper")[0]&&this.domPosition.parent===this.currentItem.parent()[0]||t||n.push(function(e){this._trigger("update",e,this._uiHash())}),this!==this.currentContainer&&(t||(n.push(function(e){this._trigger("remove",e,this._uiHash())}),n.push(function(e){return function(t){e._trigger("receive",t,this._uiHash(this))}}.call(this,this.currentContainer)),n.push(function(e){return function(t){e._trigger("update",t,this._uiHash(this))}}.call(this,this.currentContainer)))),s=this.containers.length-1;s>=0;s--)t||n.push(i("deactivate",this,this.containers[s])),this.containers[s].containerCache.over&&(n.push(i("out",this,this.containers[s])),this.containers[s].containerCache.over=0);if(this.storedCursor&&(this.document.find("body").css("cursor",this.storedCursor),this.storedStylesheet.remove()),this._storedOpacity&&this.helper.css("opacity",this._storedOpacity),this._storedZIndex&&this.helper.css("zIndex","auto"===this._storedZIndex?"":this._storedZIndex),this.dragging=!1,t||this._trigger("beforeStop",e,this._uiHash()),this.placeholder[0].parentNode.removeChild(this.placeholder[0]),this.cancelHelperRemoval||(this.helper[0]!==this.currentItem[0]&&this.helper.remove(),this.helper=null),!t){for(s=0;n.length>s;s++)n[s].call(this,e);this._trigger("stop",e,this._uiHash())}return this.fromOutside=!1,!this.cancelHelperRemoval},_trigger:function(){e.Widget.prototype._trigger.apply(this,arguments)===!1&&this.cancel()},_uiHash:function(t){var i=t||this;return{helper:i.helper,placeholder:i.placeholder||e([]),position:i.position,originalPosition:i.originalPosition,offset:i.positionAbs,item:i.currentItem,sender:t?t.element:null}}}),e.widget("ui.spinner",{version:"1.11.2",defaultElement:"<input>",widgetEventPrefix:"spin",options:{culture:null,icons:{down:"ui-icon-triangle-1-s",up:"ui-icon-triangle-1-n"},incremental:!0,max:null,min:null,numberFormat:null,page:10,step:1,change:null,spin:null,start:null,stop:null},_create:function(){this._setOption("max",this.options.max),this._setOption("min",this.options.min),this._setOption("step",this.options.step),""!==this.value()&&this._value(this.element.val(),!0),this._draw(),this._on(this._events),this._refresh(),this._on(this.window,{beforeunload:function(){this.element.removeAttr("autocomplete")}})},_getCreateOptions:function(){var t={},i=this.element;return e.each(["min","max","step"],function(e,s){var n=i.attr(s);void 0!==n&&n.length&&(t[s]=n)}),t},_events:{keydown:function(e){this._start(e)&&this._keydown(e)&&e.preventDefault()},keyup:"_stop",focus:function(){this.previous=this.element.val()},blur:function(e){return this.cancelBlur?(delete this.cancelBlur,void 0):(this._stop(),this._refresh(),this.previous!==this.element.val()&&this._trigger("change",e),void 0)},mousewheel:function(e,t){if(t){if(!this.spinning&&!this._start(e))return!1;this._spin((t>0?1:-1)*this.options.step,e),clearTimeout(this.mousewheelTimer),this.mousewheelTimer=this._delay(function(){this.spinning&&this._stop(e)},100),e.preventDefault()}},"mousedown .ui-spinner-button":function(t){function i(){var e=this.element[0]===this.document[0].activeElement;e||(this.element.focus(),this.previous=s,this._delay(function(){this.previous=s}))}var s;s=this.element[0]===this.document[0].activeElement?this.previous:this.element.val(),t.preventDefault(),i.call(this),this.cancelBlur=!0,this._delay(function(){delete this.cancelBlur,i.call(this)}),this._start(t)!==!1&&this._repeat(null,e(t.currentTarget).hasClass("ui-spinner-up")?1:-1,t)},"mouseup .ui-spinner-button":"_stop","mouseenter .ui-spinner-button":function(t){return e(t.currentTarget).hasClass("ui-state-active")?this._start(t)===!1?!1:(this._repeat(null,e(t.currentTarget).hasClass("ui-spinner-up")?1:-1,t),void 0):void 0},"mouseleave .ui-spinner-button":"_stop"},_draw:function(){var e=this.uiSpinner=this.element.addClass("ui-spinner-input").attr("autocomplete","off").wrap(this._uiSpinnerHtml()).parent().append(this._buttonHtml());this.element.attr("role","spinbutton"),this.buttons=e.find(".ui-spinner-button").attr("tabIndex",-1).button().removeClass("ui-corner-all"),this.buttons.height()>Math.ceil(.5*e.height())&&e.height()>0&&e.height(e.height()),this.options.disabled&&this.disable()},_keydown:function(t){var i=this.options,s=e.ui.keyCode;switch(t.keyCode){case s.UP:return this._repeat(null,1,t),!0;case s.DOWN:return this._repeat(null,-1,t),!0;case s.PAGE_UP:return this._repeat(null,i.page,t),!0;case s.PAGE_DOWN:return this._repeat(null,-i.page,t),!0}return!1},_uiSpinnerHtml:function(){return"<span class='ui-spinner ui-widget ui-widget-content ui-corner-all'></span>"},_buttonHtml:function(){return"<a class='ui-spinner-button ui-spinner-up ui-corner-tr'><span class='ui-icon "+this.options.icons.up+"'>&#9650;</span>"+"</a>"+"<a class='ui-spinner-button ui-spinner-down ui-corner-br'>"+"<span class='ui-icon "+this.options.icons.down+"'>&#9660;</span>"+"</a>"},_start:function(e){return this.spinning||this._trigger("start",e)!==!1?(this.counter||(this.counter=1),this.spinning=!0,!0):!1},_repeat:function(e,t,i){e=e||500,clearTimeout(this.timer),this.timer=this._delay(function(){this._repeat(40,t,i)},e),this._spin(t*this.options.step,i)},_spin:function(e,t){var i=this.value()||0;this.counter||(this.counter=1),i=this._adjustValue(i+e*this._increment(this.counter)),this.spinning&&this._trigger("spin",t,{value:i})===!1||(this._value(i),this.counter++)},_increment:function(t){var i=this.options.incremental;return i?e.isFunction(i)?i(t):Math.floor(t*t*t/5e4-t*t/500+17*t/200+1):1},_precision:function(){var e=this._precisionOf(this.options.step);return null!==this.options.min&&(e=Math.max(e,this._precisionOf(this.options.min))),e},_precisionOf:function(e){var t=""+e,i=t.indexOf(".");return-1===i?0:t.length-i-1},_adjustValue:function(e){var t,i,s=this.options;return t=null!==s.min?s.min:0,i=e-t,i=Math.round(i/s.step)*s.step,e=t+i,e=parseFloat(e.toFixed(this._precision())),null!==s.max&&e>s.max?s.max:null!==s.min&&s.min>e?s.min:e},_stop:function(e){this.spinning&&(clearTimeout(this.timer),clearTimeout(this.mousewheelTimer),this.counter=0,this.spinning=!1,this._trigger("stop",e))},_setOption:function(e,t){if("culture"===e||"numberFormat"===e){var i=this._parse(this.element.val());return this.options[e]=t,this.element.val(this._format(i)),void 0}("max"===e||"min"===e||"step"===e)&&"string"==typeof t&&(t=this._parse(t)),"icons"===e&&(this.buttons.first().find(".ui-icon").removeClass(this.options.icons.up).addClass(t.up),this.buttons.last().find(".ui-icon").removeClass(this.options.icons.down).addClass(t.down)),this._super(e,t),"disabled"===e&&(this.widget().toggleClass("ui-state-disabled",!!t),this.element.prop("disabled",!!t),this.buttons.button(t?"disable":"enable"))},_setOptions:h(function(e){this._super(e)}),_parse:function(e){return"string"==typeof e&&""!==e&&(e=window.Globalize&&this.options.numberFormat?Globalize.parseFloat(e,10,this.options.culture):+e),""===e||isNaN(e)?null:e},_format:function(e){return""===e?"":window.Globalize&&this.options.numberFormat?Globalize.format(e,this.options.numberFormat,this.options.culture):e},_refresh:function(){this.element.attr({"aria-valuemin":this.options.min,"aria-valuemax":this.options.max,"aria-valuenow":this._parse(this.element.val())})},isValid:function(){var e=this.value();return null===e?!1:e===this._adjustValue(e)},_value:function(e,t){var i;""!==e&&(i=this._parse(e),null!==i&&(t||(i=this._adjustValue(i)),e=this._format(i))),this.element.val(e),this._refresh()},_destroy:function(){this.element.removeClass("ui-spinner-input").prop("disabled",!1).removeAttr("autocomplete").removeAttr("role").removeAttr("aria-valuemin").removeAttr("aria-valuemax").removeAttr("aria-valuenow"),this.uiSpinner.replaceWith(this.element)},stepUp:h(function(e){this._stepUp(e)}),_stepUp:function(e){this._start()&&(this._spin((e||1)*this.options.step),this._stop())},stepDown:h(function(e){this._stepDown(e)}),_stepDown:function(e){this._start()&&(this._spin((e||1)*-this.options.step),this._stop())},pageUp:h(function(e){this._stepUp((e||1)*this.options.page)}),pageDown:h(function(e){this._stepDown((e||1)*this.options.page)}),value:function(e){return arguments.length?(h(this._value).call(this,e),void 0):this._parse(this.element.val())},widget:function(){return this.uiSpinner}}),e.widget("ui.tabs",{version:"1.11.2",delay:300,options:{active:null,collapsible:!1,event:"click",heightStyle:"content",hide:null,show:null,activate:null,beforeActivate:null,beforeLoad:null,load:null},_isLocal:function(){var e=/#.*$/;return function(t){var i,s;t=t.cloneNode(!1),i=t.href.replace(e,""),s=location.href.replace(e,"");try{i=decodeURIComponent(i)}catch(n){}try{s=decodeURIComponent(s)}catch(n){}return t.hash.length>1&&i===s}}(),_create:function(){var t=this,i=this.options;this.running=!1,this.element.addClass("ui-tabs ui-widget ui-widget-content ui-corner-all").toggleClass("ui-tabs-collapsible",i.collapsible),this._processTabs(),i.active=this._initialActive(),e.isArray(i.disabled)&&(i.disabled=e.unique(i.disabled.concat(e.map(this.tabs.filter(".ui-state-disabled"),function(e){return t.tabs.index(e)}))).sort()),this.active=this.options.active!==!1&&this.anchors.length?this._findActive(i.active):e(),this._refresh(),this.active.length&&this.load(i.active)},_initialActive:function(){var t=this.options.active,i=this.options.collapsible,s=location.hash.substring(1);return null===t&&(s&&this.tabs.each(function(i,n){return e(n).attr("aria-controls")===s?(t=i,!1):void 0}),null===t&&(t=this.tabs.index(this.tabs.filter(".ui-tabs-active"))),(null===t||-1===t)&&(t=this.tabs.length?0:!1)),t!==!1&&(t=this.tabs.index(this.tabs.eq(t)),-1===t&&(t=i?!1:0)),!i&&t===!1&&this.anchors.length&&(t=0),t},_getCreateEventData:function(){return{tab:this.active,panel:this.active.length?this._getPanelForTab(this.active):e()}},_tabKeydown:function(t){var i=e(this.document[0].activeElement).closest("li"),s=this.tabs.index(i),n=!0;if(!this._handlePageNav(t)){switch(t.keyCode){case e.ui.keyCode.RIGHT:case e.ui.keyCode.DOWN:s++;break;case e.ui.keyCode.UP:case e.ui.keyCode.LEFT:n=!1,s--;break;case e.ui.keyCode.END:s=this.anchors.length-1;break;case e.ui.keyCode.HOME:s=0;break;case e.ui.keyCode.SPACE:return t.preventDefault(),clearTimeout(this.activating),this._activate(s),void 0;case e.ui.keyCode.ENTER:return t.preventDefault(),clearTimeout(this.activating),this._activate(s===this.options.active?!1:s),void 0;default:return}t.preventDefault(),clearTimeout(this.activating),s=this._focusNextTab(s,n),t.ctrlKey||(i.attr("aria-selected","false"),this.tabs.eq(s).attr("aria-selected","true"),this.activating=this._delay(function(){this.option("active",s)},this.delay))}},_panelKeydown:function(t){this._handlePageNav(t)||t.ctrlKey&&t.keyCode===e.ui.keyCode.UP&&(t.preventDefault(),this.active.focus())},_handlePageNav:function(t){return t.altKey&&t.keyCode===e.ui.keyCode.PAGE_UP?(this._activate(this._focusNextTab(this.options.active-1,!1)),!0):t.altKey&&t.keyCode===e.ui.keyCode.PAGE_DOWN?(this._activate(this._focusNextTab(this.options.active+1,!0)),!0):void 0},_findNextTab:function(t,i){function s(){return t>n&&(t=0),0>t&&(t=n),t}for(var n=this.tabs.length-1;-1!==e.inArray(s(),this.options.disabled);)t=i?t+1:t-1;return t},_focusNextTab:function(e,t){return e=this._findNextTab(e,t),this.tabs.eq(e).focus(),e},_setOption:function(e,t){return"active"===e?(this._activate(t),void 0):"disabled"===e?(this._setupDisabled(t),void 0):(this._super(e,t),"collapsible"===e&&(this.element.toggleClass("ui-tabs-collapsible",t),t||this.options.active!==!1||this._activate(0)),"event"===e&&this._setupEvents(t),"heightStyle"===e&&this._setupHeightStyle(t),void 0)},_sanitizeSelector:function(e){return e?e.replace(/[!"$%&'()*+,.\/:;<=>?@\[\]\^`{|}~]/g,"\\$&"):""},refresh:function(){var t=this.options,i=this.tablist.children(":has(a[href])");t.disabled=e.map(i.filter(".ui-state-disabled"),function(e){return i.index(e)}),this._processTabs(),t.active!==!1&&this.anchors.length?this.active.length&&!e.contains(this.tablist[0],this.active[0])?this.tabs.length===t.disabled.length?(t.active=!1,this.active=e()):this._activate(this._findNextTab(Math.max(0,t.active-1),!1)):t.active=this.tabs.index(this.active):(t.active=!1,this.active=e()),this._refresh()},_refresh:function(){this._setupDisabled(this.options.disabled),this._setupEvents(this.options.event),this._setupHeightStyle(this.options.heightStyle),this.tabs.not(this.active).attr({"aria-selected":"false","aria-expanded":"false",tabIndex:-1}),this.panels.not(this._getPanelForTab(this.active)).hide().attr({"aria-hidden":"true"}),this.active.length?(this.active.addClass("ui-tabs-active ui-state-active").attr({"aria-selected":"true","aria-expanded":"true",tabIndex:0}),this._getPanelForTab(this.active).show().attr({"aria-hidden":"false"})):this.tabs.eq(0).attr("tabIndex",0)},_processTabs:function(){var t=this,i=this.tabs,s=this.anchors,n=this.panels;this.tablist=this._getList().addClass("ui-tabs-nav ui-helper-reset ui-helper-clearfix ui-widget-header ui-corner-all").attr("role","tablist").delegate("> li","mousedown"+this.eventNamespace,function(t){e(this).is(".ui-state-disabled")&&t.preventDefault()}).delegate(".ui-tabs-anchor","focus"+this.eventNamespace,function(){e(this).closest("li").is(".ui-state-disabled")&&this.blur()}),this.tabs=this.tablist.find("> li:has(a[href])").addClass("ui-state-default ui-corner-top").attr({role:"tab",tabIndex:-1}),this.anchors=this.tabs.map(function(){return e("a",this)[0] -}).addClass("ui-tabs-anchor").attr({role:"presentation",tabIndex:-1}),this.panels=e(),this.anchors.each(function(i,s){var n,a,o,r=e(s).uniqueId().attr("id"),h=e(s).closest("li"),l=h.attr("aria-controls");t._isLocal(s)?(n=s.hash,o=n.substring(1),a=t.element.find(t._sanitizeSelector(n))):(o=h.attr("aria-controls")||e({}).uniqueId()[0].id,n="#"+o,a=t.element.find(n),a.length||(a=t._createPanel(o),a.insertAfter(t.panels[i-1]||t.tablist)),a.attr("aria-live","polite")),a.length&&(t.panels=t.panels.add(a)),l&&h.data("ui-tabs-aria-controls",l),h.attr({"aria-controls":o,"aria-labelledby":r}),a.attr("aria-labelledby",r)}),this.panels.addClass("ui-tabs-panel ui-widget-content ui-corner-bottom").attr("role","tabpanel"),i&&(this._off(i.not(this.tabs)),this._off(s.not(this.anchors)),this._off(n.not(this.panels)))},_getList:function(){return this.tablist||this.element.find("ol,ul").eq(0)},_createPanel:function(t){return e("<div>").attr("id",t).addClass("ui-tabs-panel ui-widget-content ui-corner-bottom").data("ui-tabs-destroy",!0)},_setupDisabled:function(t){e.isArray(t)&&(t.length?t.length===this.anchors.length&&(t=!0):t=!1);for(var i,s=0;i=this.tabs[s];s++)t===!0||-1!==e.inArray(s,t)?e(i).addClass("ui-state-disabled").attr("aria-disabled","true"):e(i).removeClass("ui-state-disabled").removeAttr("aria-disabled");this.options.disabled=t},_setupEvents:function(t){var i={};t&&e.each(t.split(" "),function(e,t){i[t]="_eventHandler"}),this._off(this.anchors.add(this.tabs).add(this.panels)),this._on(!0,this.anchors,{click:function(e){e.preventDefault()}}),this._on(this.anchors,i),this._on(this.tabs,{keydown:"_tabKeydown"}),this._on(this.panels,{keydown:"_panelKeydown"}),this._focusable(this.tabs),this._hoverable(this.tabs)},_setupHeightStyle:function(t){var i,s=this.element.parent();"fill"===t?(i=s.height(),i-=this.element.outerHeight()-this.element.height(),this.element.siblings(":visible").each(function(){var t=e(this),s=t.css("position");"absolute"!==s&&"fixed"!==s&&(i-=t.outerHeight(!0))}),this.element.children().not(this.panels).each(function(){i-=e(this).outerHeight(!0)}),this.panels.each(function(){e(this).height(Math.max(0,i-e(this).innerHeight()+e(this).height()))}).css("overflow","auto")):"auto"===t&&(i=0,this.panels.each(function(){i=Math.max(i,e(this).height("").height())}).height(i))},_eventHandler:function(t){var i=this.options,s=this.active,n=e(t.currentTarget),a=n.closest("li"),o=a[0]===s[0],r=o&&i.collapsible,h=r?e():this._getPanelForTab(a),l=s.length?this._getPanelForTab(s):e(),u={oldTab:s,oldPanel:l,newTab:r?e():a,newPanel:h};t.preventDefault(),a.hasClass("ui-state-disabled")||a.hasClass("ui-tabs-loading")||this.running||o&&!i.collapsible||this._trigger("beforeActivate",t,u)===!1||(i.active=r?!1:this.tabs.index(a),this.active=o?e():a,this.xhr&&this.xhr.abort(),l.length||h.length||e.error("jQuery UI Tabs: Mismatching fragment identifier."),h.length&&this.load(this.tabs.index(a),t),this._toggle(t,u))},_toggle:function(t,i){function s(){a.running=!1,a._trigger("activate",t,i)}function n(){i.newTab.closest("li").addClass("ui-tabs-active ui-state-active"),o.length&&a.options.show?a._show(o,a.options.show,s):(o.show(),s())}var a=this,o=i.newPanel,r=i.oldPanel;this.running=!0,r.length&&this.options.hide?this._hide(r,this.options.hide,function(){i.oldTab.closest("li").removeClass("ui-tabs-active ui-state-active"),n()}):(i.oldTab.closest("li").removeClass("ui-tabs-active ui-state-active"),r.hide(),n()),r.attr("aria-hidden","true"),i.oldTab.attr({"aria-selected":"false","aria-expanded":"false"}),o.length&&r.length?i.oldTab.attr("tabIndex",-1):o.length&&this.tabs.filter(function(){return 0===e(this).attr("tabIndex")}).attr("tabIndex",-1),o.attr("aria-hidden","false"),i.newTab.attr({"aria-selected":"true","aria-expanded":"true",tabIndex:0})},_activate:function(t){var i,s=this._findActive(t);s[0]!==this.active[0]&&(s.length||(s=this.active),i=s.find(".ui-tabs-anchor")[0],this._eventHandler({target:i,currentTarget:i,preventDefault:e.noop}))},_findActive:function(t){return t===!1?e():this.tabs.eq(t)},_getIndex:function(e){return"string"==typeof e&&(e=this.anchors.index(this.anchors.filter("[href$='"+e+"']"))),e},_destroy:function(){this.xhr&&this.xhr.abort(),this.element.removeClass("ui-tabs ui-widget ui-widget-content ui-corner-all ui-tabs-collapsible"),this.tablist.removeClass("ui-tabs-nav ui-helper-reset ui-helper-clearfix ui-widget-header ui-corner-all").removeAttr("role"),this.anchors.removeClass("ui-tabs-anchor").removeAttr("role").removeAttr("tabIndex").removeUniqueId(),this.tablist.unbind(this.eventNamespace),this.tabs.add(this.panels).each(function(){e.data(this,"ui-tabs-destroy")?e(this).remove():e(this).removeClass("ui-state-default ui-state-active ui-state-disabled ui-corner-top ui-corner-bottom ui-widget-content ui-tabs-active ui-tabs-panel").removeAttr("tabIndex").removeAttr("aria-live").removeAttr("aria-busy").removeAttr("aria-selected").removeAttr("aria-labelledby").removeAttr("aria-hidden").removeAttr("aria-expanded").removeAttr("role")}),this.tabs.each(function(){var t=e(this),i=t.data("ui-tabs-aria-controls");i?t.attr("aria-controls",i).removeData("ui-tabs-aria-controls"):t.removeAttr("aria-controls")}),this.panels.show(),"content"!==this.options.heightStyle&&this.panels.css("height","")},enable:function(t){var i=this.options.disabled;i!==!1&&(void 0===t?i=!1:(t=this._getIndex(t),i=e.isArray(i)?e.map(i,function(e){return e!==t?e:null}):e.map(this.tabs,function(e,i){return i!==t?i:null})),this._setupDisabled(i))},disable:function(t){var i=this.options.disabled;if(i!==!0){if(void 0===t)i=!0;else{if(t=this._getIndex(t),-1!==e.inArray(t,i))return;i=e.isArray(i)?e.merge([t],i).sort():[t]}this._setupDisabled(i)}},load:function(t,i){t=this._getIndex(t);var s=this,n=this.tabs.eq(t),a=n.find(".ui-tabs-anchor"),o=this._getPanelForTab(n),r={tab:n,panel:o};this._isLocal(a[0])||(this.xhr=e.ajax(this._ajaxSettings(a,i,r)),this.xhr&&"canceled"!==this.xhr.statusText&&(n.addClass("ui-tabs-loading"),o.attr("aria-busy","true"),this.xhr.success(function(e){setTimeout(function(){o.html(e),s._trigger("load",i,r)},1)}).complete(function(e,t){setTimeout(function(){"abort"===t&&s.panels.stop(!1,!0),n.removeClass("ui-tabs-loading"),o.removeAttr("aria-busy"),e===s.xhr&&delete s.xhr},1)})))},_ajaxSettings:function(t,i,s){var n=this;return{url:t.attr("href"),beforeSend:function(t,a){return n._trigger("beforeLoad",i,e.extend({jqXHR:t,ajaxSettings:a},s))}}},_getPanelForTab:function(t){var i=e(t).attr("aria-controls");return this.element.find(this._sanitizeSelector("#"+i))}}),e.widget("ui.tooltip",{version:"1.11.2",options:{content:function(){var t=e(this).attr("title")||"";return e("<a>").text(t).html()},hide:!0,items:"[title]:not([disabled])",position:{my:"left top+15",at:"left bottom",collision:"flipfit flip"},show:!0,tooltipClass:null,track:!1,close:null,open:null},_addDescribedBy:function(t,i){var s=(t.attr("aria-describedby")||"").split(/\s+/);s.push(i),t.data("ui-tooltip-id",i).attr("aria-describedby",e.trim(s.join(" ")))},_removeDescribedBy:function(t){var i=t.data("ui-tooltip-id"),s=(t.attr("aria-describedby")||"").split(/\s+/),n=e.inArray(i,s);-1!==n&&s.splice(n,1),t.removeData("ui-tooltip-id"),s=e.trim(s.join(" ")),s?t.attr("aria-describedby",s):t.removeAttr("aria-describedby")},_create:function(){this._on({mouseover:"open",focusin:"open"}),this.tooltips={},this.parents={},this.options.disabled&&this._disable(),this.liveRegion=e("<div>").attr({role:"log","aria-live":"assertive","aria-relevant":"additions"}).addClass("ui-helper-hidden-accessible").appendTo(this.document[0].body)},_setOption:function(t,i){var s=this;return"disabled"===t?(this[i?"_disable":"_enable"](),this.options[t]=i,void 0):(this._super(t,i),"content"===t&&e.each(this.tooltips,function(e,t){s._updateContent(t.element)}),void 0)},_disable:function(){var t=this;e.each(this.tooltips,function(i,s){var n=e.Event("blur");n.target=n.currentTarget=s.element[0],t.close(n,!0)}),this.element.find(this.options.items).addBack().each(function(){var t=e(this);t.is("[title]")&&t.data("ui-tooltip-title",t.attr("title")).removeAttr("title")})},_enable:function(){this.element.find(this.options.items).addBack().each(function(){var t=e(this);t.data("ui-tooltip-title")&&t.attr("title",t.data("ui-tooltip-title"))})},open:function(t){var i=this,s=e(t?t.target:this.element).closest(this.options.items);s.length&&!s.data("ui-tooltip-id")&&(s.attr("title")&&s.data("ui-tooltip-title",s.attr("title")),s.data("ui-tooltip-open",!0),t&&"mouseover"===t.type&&s.parents().each(function(){var t,s=e(this);s.data("ui-tooltip-open")&&(t=e.Event("blur"),t.target=t.currentTarget=this,i.close(t,!0)),s.attr("title")&&(s.uniqueId(),i.parents[this.id]={element:this,title:s.attr("title")},s.attr("title",""))}),this._updateContent(s,t))},_updateContent:function(e,t){var i,s=this.options.content,n=this,a=t?t.type:null;return"string"==typeof s?this._open(t,e,s):(i=s.call(e[0],function(i){e.data("ui-tooltip-open")&&n._delay(function(){t&&(t.type=a),this._open(t,e,i)})}),i&&this._open(t,e,i),void 0)},_open:function(t,i,s){function n(e){u.of=e,o.is(":hidden")||o.position(u)}var a,o,r,h,l,u=e.extend({},this.options.position);if(s){if(a=this._find(i))return a.tooltip.find(".ui-tooltip-content").html(s),void 0;i.is("[title]")&&(t&&"mouseover"===t.type?i.attr("title",""):i.removeAttr("title")),a=this._tooltip(i),o=a.tooltip,this._addDescribedBy(i,o.attr("id")),o.find(".ui-tooltip-content").html(s),this.liveRegion.children().hide(),s.clone?(l=s.clone(),l.removeAttr("id").find("[id]").removeAttr("id")):l=s,e("<div>").html(l).appendTo(this.liveRegion),this.options.track&&t&&/^mouse/.test(t.type)?(this._on(this.document,{mousemove:n}),n(t)):o.position(e.extend({of:i},this.options.position)),o.hide(),this._show(o,this.options.show),this.options.show&&this.options.show.delay&&(h=this.delayedShow=setInterval(function(){o.is(":visible")&&(n(u.of),clearInterval(h))},e.fx.interval)),this._trigger("open",t,{tooltip:o}),r={keyup:function(t){if(t.keyCode===e.ui.keyCode.ESCAPE){var s=e.Event(t);s.currentTarget=i[0],this.close(s,!0)}}},i[0]!==this.element[0]&&(r.remove=function(){this._removeTooltip(o)}),t&&"mouseover"!==t.type||(r.mouseleave="close"),t&&"focusin"!==t.type||(r.focusout="close"),this._on(!0,i,r)}},close:function(t){var i,s=this,n=e(t?t.currentTarget:this.element),a=this._find(n);a&&(i=a.tooltip,a.closing||(clearInterval(this.delayedShow),n.data("ui-tooltip-title")&&!n.attr("title")&&n.attr("title",n.data("ui-tooltip-title")),this._removeDescribedBy(n),a.hiding=!0,i.stop(!0),this._hide(i,this.options.hide,function(){s._removeTooltip(e(this))}),n.removeData("ui-tooltip-open"),this._off(n,"mouseleave focusout keyup"),n[0]!==this.element[0]&&this._off(n,"remove"),this._off(this.document,"mousemove"),t&&"mouseleave"===t.type&&e.each(this.parents,function(t,i){e(i.element).attr("title",i.title),delete s.parents[t]}),a.closing=!0,this._trigger("close",t,{tooltip:i}),a.hiding||(a.closing=!1)))},_tooltip:function(t){var i=e("<div>").attr("role","tooltip").addClass("ui-tooltip ui-widget ui-corner-all ui-widget-content "+(this.options.tooltipClass||"")),s=i.uniqueId().attr("id");return e("<div>").addClass("ui-tooltip-content").appendTo(i),i.appendTo(this.document[0].body),this.tooltips[s]={element:t,tooltip:i}},_find:function(e){var t=e.data("ui-tooltip-id");return t?this.tooltips[t]:null},_removeTooltip:function(e){e.remove(),delete this.tooltips[e.attr("id")]},_destroy:function(){var t=this;e.each(this.tooltips,function(i,s){var n=e.Event("blur"),a=s.element;n.target=n.currentTarget=a[0],t.close(n,!0),e("#"+i).remove(),a.data("ui-tooltip-title")&&(a.attr("title")||a.attr("title",a.data("ui-tooltip-title")),a.removeData("ui-tooltip-title"))}),this.liveRegion.remove()}})}); \ No newline at end of file diff --git a/admin/media.php b/admin/media.php deleted file mode 100644 index 0240c3d..0000000 --- a/admin/media.php +++ /dev/null @@ -1,42 +0,0 @@ -<?php -$page_title = __('Media'); -$js = array('plugins/datatables/jquery.dataTables.js','plugins/datatables/fnReloadAjax.js','plugins/datatables/dataTables.bootstrap.js','js/jsall.js','js/media.js'); -$css = array('plugins/datatables/dataTables.bootstrap.css'); -$content = '<div class="box"> - <div class="box-header"><h3 class="box-title">' . __('Media') . '</h3></div> - <div class="box-body"> - <table id="data_table" class="table table-bordered table-hover"> - <thead> - <tr><th>#<br /><input type="text" id="idf" class="tableFilter form-control" size="2"></th><th>' . __('Filename') . '</th><th>' . __('Preview') . '</th><th>' . __('Actions') . '</th></tr> - </thead> - <tbody> - </tbody> - </table> - </div> - <button id="add" class="btn btn-primary">' . __('Add') . '</button> -</div> -<div id="ppEdit" class="modal dialog"> - <div class="modal-dialog"> - <div class="modal-content"> - <div class="modal-header"> - <button type="button" class="close" data-dismiss="modal" aria-label="' . __('Close') . '"> - <span aria-hidden="true">×</span> - </button> - <h4 class="modal-title">Media</h4> - </div> - <div class="modal-body" id="edtable"> - <form action="" method="post" id="imageUploadForm"> - <div class="form-group"> - <label for="edimage">' . __('Image') . '</label> - <input type="file" class="form-control" id="edimage" name="edimage" placeholder="' . __('Image') . '" /> - </div> - </form> - <img id="imagePreview" src="" /> - </div> - <div class="modal-footer"> - <button type="button" class="btn btn-default pull-left" data-dismiss="modal">' . __('Close') . '</button> - <button type="button" class="btn btn-primary" id="save">' . __('Save') . '</button> - </div> - </div> - </div> -</div>'; \ No newline at end of file diff --git a/admin/plugins/ckeditor/CHANGES.md b/admin/plugins/ckeditor/CHANGES.md deleted file mode 100644 index 55ef74d..0000000 --- a/admin/plugins/ckeditor/CHANGES.md +++ /dev/null @@ -1,1358 +0,0 @@ -CKEditor 4 Changelog -==================== - -## CKEditor 4.7.3 - -New Features: - -* [#568](https://github.com/ckeditor/ckeditor-dev/issues/568): Added possibility to adjust nested editables' filters using the [`CKEDITOR.filter.disallowedContent`](https://docs.ckeditor.com/#!/api/CKEDITOR.filter-property-disallowedContent) property. - -Fixed Issues: - -* [#554](https://github.com/ckeditor/ckeditor-dev/issues/554): Fixed: [`change`](https://docs.ckeditor.com/#!/api/CKEDITOR.editor-event-change) event not fired when typing the first character after pasting into the editor. Thanks to [Daniel Miller](https://github.com/millerdev)! -* [#566](https://github.com/ckeditor/ckeditor-dev/issues/566): Fixed: The CSS `border` shorthand property with zero width (`border: 0px solid #000;`) causes the table to have the border attribute set to 1. -* [#779](https://github.com/ckeditor/ckeditor-dev/issues/779): Fixed: The [Remove Format](https://ckeditor.com/addon/removeformat) plugin removes elements with language definition inserted by the [Language](https://ckeditor.com/addon/language) plugin. -* [#423](https://github.com/ckeditor/ckeditor-dev/issues/423): Fixed: The [Paste from Word](https://ckeditor.com/addon/pastefromword) plugin pastes paragraphs into the editor even if [`CKEDITOR.config.enterMode`](https://docs.ckeditor.com/#!/api/CKEDITOR.config-cfg-enterMode) is set to `CKEDITOR.ENTER_BR`. -* [#719](https://github.com/ckeditor/ckeditor-dev/issues/719): Fixed: Image inserted using the [Enhanced Image](https://ckeditor.com/addon/image2) plugin can be resized when the editor is in [read-only mode](https://docs.ckeditor.com/#!/guide/dev_readonly). -* [#577](https://github.com/ckeditor/ckeditor-dev/issues/577): Fixed: The "Delete Columns" command provided by the [Table Tools](https://ckeditor.com/addon/tabletools) plugin throws an error when trying to delete columns. -* [#867](https://github.com/ckeditor/ckeditor-dev/issues/867): Fixed: Typing into a selected table throws an error. -* [#817](https://github.com/ckeditor/ckeditor-dev/issues/817): Fixed: The [Save](https://ckeditor.com/addon/save) plugin does not work in [Source Mode](https://ckeditor.com/addon/sourcearea). - -Other Changes: - -* Updated the [WebSpellChecker](http://ckeditor.com/addon/wsc) plugin: - * [#40](https://github.com/WebSpellChecker/ckeditor-plugin-wsc/issues/40): Fixed: IE10 throws an error when spell checking is started. -* [#800](https://github.com/ckeditor/ckeditor-dev/issues/800): Added the [`CKEDITOR.dom.selection.isCollapsed`](https://docs.ckeditor.com/#!/api/CKEDITOR.dom.selection-method-isCollapsed) method which is a simpler way to check if the selection is collapsed. -* [#830](https://github.com/ckeditor/ckeditor-dev/issues/830): Added an option to define which dialog tab should be shown by default when creating [`CKEDITOR.dialogCommand`](https://docs.ckeditor.com/#!/api/CKEDITOR.dialogCommand). - -## CKEditor 4.7.2 - -New Features: - -* [#455](https://github.com/ckeditor/ckeditor-dev/issues/455): Added [Advanced Content Filter](https://docs.ckeditor.com/#!/guide/dev_acf) integration with the [Justify](http://ckeditor.com/addon/justify) plugin. - -Fixed Issues: - -* [#663](https://github.com/ckeditor/ckeditor-dev/issues/663): [Chrome] Fixed: Clicking the scrollbar throws an `Uncaught TypeError: element.is is not a function` error. -* [#694](https://github.com/ckeditor/ckeditor-dev/pull/694): Refactoring in the [Table Selection](http://ckeditor.com/addon/tableselection) plugin: - * [#520](https://github.com/ckeditor/ckeditor-dev/issues/520): Fixed: Widgets cannot be properly pasted into a table cell. - * [#460](https://github.com/ckeditor/ckeditor-dev/issues/460): Fixed: Editor gone after pasting into an editor within a table. -* [#579](https://github.com/ckeditor/ckeditor-dev/issues/579): Fixed: Internal `cke_table-faked-selection-table` class is visible in the Stylesheet Classes field of the [Table Properties](http://ckeditor.com/addon/table) dialog. -* [#545](https://github.com/ckeditor/ckeditor-dev/issues/545): [Edge] Fixed: Error thrown when pressing the [Select All](https://ckeditor.com/addon/selectall) button in [Source Mode](http://ckeditor.com/addon/sourcearea). -* [#582](https://github.com/ckeditor/ckeditor-dev/issues/582): Fixed: Double slash in the path to stylesheet needed by the [Table Selection](http://ckeditor.com/addon/tableselection) plugin. Thanks to [Marius Dumitru Florea](https://github.com/mflorea)! -* [#491](https://github.com/ckeditor/ckeditor-dev/issues/491): Fixed: Unnecessary dependency on the [Editor Toolbar](http://ckeditor.com/addon/toolbar) plugin inside the [Notification](http://ckeditor.com/addon/notification) plugin. -* [#646](https://github.com/ckeditor/ckeditor-dev/issues/646): Fixed: Error thrown into the browser console after opening the [Styles Combo](http://ckeditor.com/addon/stylescombo) plugin menu in the editor without any selection. -* [#501](https://github.com/ckeditor/ckeditor-dev/issues/501): Fixed: Double click does not open the dialog for modifying anchors inserted via the [Link](http://ckeditor.com/addon/link) plugin. -* [#9780](https://dev.ckeditor.com/ticket/9780): [IE8-9] Fixed: Clicking inside an empty [read-only](http://docs.ckeditor.com/#!/api/CKEDITOR.editor-property-readOnly) editor throws an error. -* [#16820](https://dev.ckeditor.com/ticket/16820): [IE10] Fixed: Clicking below a single horizontal rule throws an error. -* [#426](https://github.com/ckeditor/ckeditor-dev/issues/426): Fixed: The [`range.cloneContents`](http://docs.ckeditor.com/#!/api/CKEDITOR.dom.range-method-cloneContents) method selects the whole element when the selection starts at the beginning of that element. -* [#644](https://github.com/ckeditor/ckeditor-dev/issues/644): Fixed: The [`range.extractContents`](http://docs.ckeditor.com/#!/api/CKEDITOR.dom.range-method-extractContents) method returns an incorrect result when multiple nodes are selected. -* [#684](https://github.com/ckeditor/ckeditor-dev/issues/684): Fixed: The [`elementPath.contains`](http://docs.ckeditor.com/#!/api/CKEDITOR.dom.elementPath-method-contains) method incorrectly excludes the last element instead of root when the `fromTop` parameter is set to `true`. - -Other Changes: - -* Updated the [SCAYT](http://ckeditor.com/addon/scayt) (Spell Check As You Type) plugin: - * [#148](https://github.com/WebSpellChecker/ckeditor-plugin-scayt/issues/148): Fixed: SCAYT leaves underlined word after the CKEditor Replace dialog corrects it. -* [#751](https://github.com/ckeditor/ckeditor-dev/issues/751): Added the [`CKEDITOR.dom.nodeList.toArray`](https://docs.ckeditor.com/#!/api/CKEDITOR.dom.nodeList-method-toArray) method which returns an array representation of a [node list](https://docs.ckeditor.com/#!/api/CKEDITOR.dom.nodeList). - -## CKEditor 4.7.1 - -New Features: - -* Added a new Mexican Spanish localization. Thanks to [David Alexandro Rodriguez](https://www.transifex.com/user/profile/darsco16/)! -* [#413](https://github.com/ckeditor/ckeditor-dev/issues/413): Added Paste as Plain Text keyboard shortcut to the [Accessibility Help](http://ckeditor.com/addon/a11yhelp) instructions. - -Fixed Issues: - -* [#515](https://github.com/ckeditor/ckeditor-dev/issues/515): [Chrome] Fixed: Mouse actions on CKEditor scrollbar throw an exception when the [Table Selection](http://ckeditor.com/addon/tableselection) plugin is loaded. -* [#493](https://github.com/ckeditor/ckeditor-dev/issues/493): Fixed: Selection started from a nested table causes an error in the browser while scrolling down. -* [#415](https://github.com/ckeditor/ckeditor-dev/issues/415): [Firefox] Fixed: <kbd>Enter</kbd> key breaks the table structure when pressed in a table selection. -* [#457](https://github.com/ckeditor/ckeditor-dev/issues/457): Fixed: Error thrown when deleting content from the editor with no selection. -* [#478](https://github.com/ckeditor/ckeditor-dev/issues/478): [Chrome] Fixed: Error thrown by the [Enter Key](http://ckeditor.com/addon/enterkey) plugin when pressing <kbd>Enter</kbd> with no selection. -* [#424](https://github.com/ckeditor/ckeditor-dev/issues/424): Fixed: Error thrown by [Tab Key Handling](http://ckeditor.com/addon/tab) and [Indent List](http://ckeditor.com/addon/indentlist) plugins when pressing <kbd>Tab</kbd> with no selection in inline editor. -* [#476](https://github.com/ckeditor/ckeditor-dev/issues/476): Fixed: Anchors inserted with the [Link](http://ckeditor.com/addon/link) plugin on collapsed selection cannot be edited. -* [#417](https://github.com/ckeditor/ckeditor-dev/issues/417): Fixed: The [Table Resize](http://ckeditor.com/addon/tableresize) plugin throws an error when used with a table with only header or footer rows. -* [#523](https://github.com/ckeditor/ckeditor-dev/issues/523): Fixed: The [`editor.getCommandKeystroke`](http://docs.ckeditor.com/#!/api/CKEDITOR.editor-method-getCommandKeystroke) method does not obtain the correct keystroke. -* [#534](https://github.com/ckeditor/ckeditor-dev/issues/534): [IE] Fixed: [Paste from Word](http://ckeditor.com/addon/pastefromword) does not work in Quirks Mode. -* [#450](https://github.com/ckeditor/ckeditor-dev/issues/450): Fixed: [`CKEDITOR.filter`](http://docs.ckeditor.com/#!/api/CKEDITOR.filter) incorrectly transforms the `margin` CSS property. - -## CKEditor 4.7 - -**Important Notes:** - -* [#13793](http://dev.ckeditor.com/ticket/13793): The [`embed_provider`](http://docs.ckeditor.com/#!/api/CKEDITOR.config-cfg-embed_provider) configuration option for the [Media Embed](http://ckeditor.com/addon/embed) and [Semantic Media Embed](http://ckeditor.com/addon/embedsemantic) plugins is no longer preset by default. -* The [UI Color](http://ckeditor.com/addon/uicolor) plugin now uses a custom color picker instead of the `YUI 2.7.0` library which has some known vulnerabilities (it's a security precaution, there was no security issue in CKEditor due to the way it was used). - -New Features: - -* [#16755](http://dev.ckeditor.com/ticket/16755): Added the [Table Selection](http://ckeditor.com/addon/tableselection) plugin that lets you select and manipulate an arbitrary rectangular table fragment (a few cells, a row or a column). -* [#16961](http://dev.ckeditor.com/ticket/16961): Added support for pasting from Microsoft Excel. -* [#13381](http://dev.ckeditor.com/ticket/13381): Dynamic code evaluation call in [`CKEDITOR.template`](http://docs.ckeditor.com/#!/api/CKEDITOR.template) removed. CKEditor can now be used without the `unsafe-eval` Content Security Policy. Thanks to [Caridy Patiño](http://caridy.name)! -* [#16971](http://dev.ckeditor.com/ticket/16971): Added support for color in the `background` property containing also other styles for table cells in the [Table Tools](http://ckeditor.com/addon/tabletools) plugin. -* [#16847](http://dev.ckeditor.com/ticket/16847): Added support for parsing and inlining any formatting created using the Microsoft Word style system to the [Paste from Word](http://ckeditor.com/addon/pastefromword) plugin. -* [#16818](http://dev.ckeditor.com/ticket/16818): Added table cell height parsing in the [Paste from Word](http://ckeditor.com/addon/pastefromword) plugin. -* [#16850](http://dev.ckeditor.com/ticket/16850): Added a new [`config.enableContextMenu`](http://docs.ckeditor.com/#!/api/CKEDITOR.config-cfg-enableContextMenu) configuration option for enabling and disabling the [context menu](http://ckeditor.com/addon/contextmenu). -* [#16937](http://dev.ckeditor.com/ticket/16937): The `command` parameter in [CKEDITOR.editor.getCommandKeystroke](http://docs.ckeditor.dev/#!/api/CKEDITOR.editor-method-getCommandKeystroke) now also accepts a command name as an argument. -* [#17010](http://dev.ckeditor.com/ticket/17010): The [`CKEDITOR.dom.range.shrink`](http://docs.ckeditor.com/#!/api/CKEDITOR.dom.range-method-shrink) method now allows for skipping bogus `<br>` elements. - -Fixed Issues: - -* [#16935](http://dev.ckeditor.com/ticket/16935): [Chrome] Fixed: Blurring the editor in [Source Mode](http://ckeditor.com/addon/sourcearea) throws an error. -* [#16825](http://dev.ckeditor.com/ticket/16825): [Chrome] Fixed: Error thrown when destroying a focused inline editor. -* [#16857](http://dev.ckeditor.com/ticket/16857): Fixed: <kbd>Ctrl+Shift+V</kbd> blocked by [Copy Formatting](http://ckeditor.com/addon/copyformatting). -* [#16845](https://dev.ckeditor.com/ticket/16845): [IE] Fixed: Cursor jumps to the top of the scrolled editor after focusing it when the [Copy Formatting](http://ckeditor.com/addon/copyformatting) plugin is enabled. -* [#16786](http://dev.ckeditor.com/ticket/16786): Fixed: Added missing translations for the [Copy Formatting](http://ckeditor.com/addon/copyformatting) plugin. -* [#14714](http://dev.ckeditor.com/ticket/14714): [WebKit/Blink] Fixed: Exception thrown on refocusing a blurred inline editor. -* [#16913](http://dev.ckeditor.com/ticket/16913): [Firefox, IE] Fixed: [Paste as Plain Text](http://ckeditor.com/addon/pastetext) keystroke does not work. -* [#16968](http://dev.ckeditor.com/ticket/16968): Fixed: [Safari] [Paste as Plain Text](http://ckeditor.com/addon/pastetext) is not handled by the editor. -* [#16912](http://dev.ckeditor.com/ticket/16912): Fixed: Exception thrown when a single image is pasted using [Paste from Word](http://ckeditor.com/addon/pastefromword). -* [#16821](http://dev.ckeditor.com/ticket/16821): Fixed: Extraneous `<span>` elements with `height` style stacked when [pasting from Word](http://ckeditor.com/addon/pastefromword). -* [#16866](http://dev.ckeditor.com/ticket/16866): [IE, Edge] Fixed: Whitespaces not preserved when [pasting from Word](http://ckeditor.com/addon/pastefromword). -* [#16860](http://dev.ckeditor.com/ticket/16860): Fixed: Paragraphs which only look like lists incorrectly transformed into them when [pasting from Word](http://ckeditor.com/addon/pastefromword). -* [#16817](http://dev.ckeditor.com/ticket/16817): Fixed: When [pasting from Word](http://ckeditor.com/addon/pastefromword), paragraphs are transformed into lists with some corrupted data. -* [#16833](http://dev.ckeditor.com/ticket/16833): [IE11] Fixed: Malformed list with headers [pasted from Word](http://ckeditor.com/addon/pastefromword). -* [#16826](http://dev.ckeditor.com/ticket/16826): [IE] Fixed: Superfluous paragraphs within lists [pasted from Word](http://ckeditor.com/addon/pastefromword). -* [#12465](http://dev.ckeditor.com/ticket/12465): Fixed: Cannot change the state of checkboxes or radio buttons if the properties dialog was invoked with a double-click. -* [#13062](http://dev.ckeditor.com/ticket/13062): Fixed: Impossible to unlink when the caret is at the edge of the link. -* [#13585](http://dev.ckeditor.com/ticket/13585): Fixed: Error when wrapping two adjacent `<div>` elements with a `<div>`. -* [#16811](http://dev.ckeditor.com/ticket/16811): Fixed: Table alignment is not preserved by the [Paste from Word](http://ckeditor.com/addon/pastefromword) plugin. -* [#16810](http://dev.ckeditor.com/ticket/16810): Fixed: Vertical align in tables is not supported by the [Paste from Word](http://ckeditor.com/addon/pastefromword) plugin. -* [#11956](http://dev.ckeditor.com/ticket/11956): [Blink, IE] Fixed: [Link](http://ckeditor.com/addon/link) dialog does not open on a double click on the second word of the link with a background color or other styles. -* [#10472](http://dev.ckeditor.com/ticket/10472): Fixed: Unable to use [Table Resize](http://ckeditor.com/addon/tableresize) on table header and footer. -* [#14762](http://dev.ckeditor.com/ticket/14762): Fixed: Hovering over an empty table (without rows or cells) throws an error when the [Table Resize](http://ckeditor.com/addon/tableresize) plugin is active. -* [#16777](https://dev.ckeditor.com/ticket/16777): [Edge] Fixed: The [Clipboard](http://ckeditor.com/addon/clipboard) plugin does not allow to drop widgets into the editor. -* [#14894](https://dev.ckeditor.com/ticket/14894): [Chrome] Fixed: The editor scrolls to the top after focusing or when a dialog is opened. -* [#14769](https://dev.ckeditor.com/ticket/14769): Fixed: URLs with '-' in host are not detected by the [Auto Link](http://ckeditor.com/addon/autolink) plugin. -* [#16804](https://dev.ckeditor.com/ticket/16804): Fixed: Focus is not on the first menu item when the user opens a context menu or a drop-down list from the editor toolbar. -* [#14407](https://dev.ckeditor.com/ticket/14407): [IE] Fixed: Non-editable widgets can be edited. -* [#16927](https://dev.ckeditor.com/ticket/16927): Fixed: An error thrown if a bundle containing the [Color Button](http://ckeditor.com/addon/colorbutton) plugin is run in ES5 strict mode. Thanks to [Igor Rubinovich](https://github.com/IgorRubinovich)! -* [#16920](http://dev.ckeditor.com/ticket/16920): Fixed: Several plugins not using the [Dialog](http://ckeditor.com/addon/dialog) plugin as a direct dependency. -* [PR#336](https://github.com/ckeditor/ckeditor-dev/pull/336): Fixed: Typo in [`CKEDITOR.getCss`](http://docs.ckeditor.com/#!/api/CKEDITOR-method-getCss) API documentation. Thanks to [knusperpixel](https://github.com/knusperpixel)! -* [#17027](http://dev.ckeditor.com/ticket/17027): Fixed: Command event data should be initialized as an empty object. -* Fixed the behavior of HTML parser when parsing `src`/`srcdoc` attributes of the `<iframe>` element in a CKEditor setup with ACF turned off and without the [Iframe Dialog](http://ckeditor.com/addon/iframe) plugin. The issue was originally reported as a security issue by [Sriramk21](https://twitter.com/sriramk21) from Pegasystems and was later downgraded by the security team into a normal issue due to the requirement of having ACF turned off. Disabling [Advanced Content Filter](http://docs.ckeditor.com/#!/guide/dev_advanced_content_filter) is against [security best practices](http://docs.ckeditor.com/#!/guide/dev_best_practices-section-security), so the problem described above has not been considered a security issue as such. - -Other Changes: - -* Updated [SCAYT](http://ckeditor.com/addon/scayt) (Spell Check As You Type) and [WebSpellChecker](http://ckeditor.com/addon/wsc) plugins: - * Fixed: DOM Exception after clicking "Remove Language" on a selected word with enabled [Language](http://ckeditor.com/addon/language) plugin in SCAYT. -* [#16958](http://dev.ckeditor.com/ticket/16958): Switched the default MathJax CDN provider for the [Mathematical Formulas](http://ckeditor.com/addon/mathjax) plugin from `cdn.mathjax.org` to [cdnjs](https://cdnjs.com/), due to closing of `cdn.mathjax.org` scheduled for April 30, 2017. -* [#16954](http://dev.ckeditor.com/ticket/16954): Removed the paste dialog. -* [#16982](http://dev.ckeditor.com/ticket/16982): Latest Safari now supports enhanced Clipboard API introduced in CKEditor 4.5.0. -* [#17025](http://dev.ckeditor.com/ticket/17025): Updated [Bender.js](https://github.com/benderjs/benderjs) to 0.4.2. - -## CKEditor 4.6.2 - -New Features: - -* [#16733](http://dev.ckeditor.com/ticket/16733): Added a new pastel color palette for the [Color Button](http://ckeditor.com/addon/colorbutton) plugin and a new [`config.colorButton_colorsPerRow`](http://docs.ckeditor.com/#!/api/CKEDITOR.config-cfg-colorButton_colorsPerRow) configuration option for setting the number of rows in the color selector. -* [#16752](http://dev.ckeditor.com/ticket/16752): Added a new Azerbaijani localization. Thanks to the [Azerbaijani language team](https://www.transifex.com/ckeditor/teams/11143/az/)! -* [#13818](http://dev.ckeditor.com/ticket/13818): It is now possible to group [Widget](http://ckeditor.com/addon/widget) [style definitions](http://docs.ckeditor.com/#!/guide/dev_styles-section-widget-styles), so applying one style disables the other. - -Fixed Issues: - -* [#13446](http://dev.ckeditor.com/ticket/13446): [Chrome] Fixed: It is possible to type in an unfocused inline editor. -* [#14856](http://dev.ckeditor.com/ticket/14856): Fixed: [Font size and font family](http://ckeditor.com/addon/font) reset each other when modified at certain positions. -* [#16745](http://dev.ckeditor.com/ticket/16745): [Edge] Fixed: List items are lost when [pasted from Word](http://ckeditor.com/addon/pastefromword). -* [#16682](http://dev.ckeditor.com/ticket/16682): [Edge] Fixed: A list gets [pasted from Word](http://ckeditor.com/addon/pastefromword) as a set of paragraphs. Added the [`config.pasteFromWord_heuristicsEdgeList`](http://docs.ckeditor.com/#!/api/CKEDITOR.config-cfg-pasteFromWord_heuristicsEdgeList) configuration option. -* [#10373](http://dev.ckeditor.com/ticket/10373): Fixed: Context menu items can be dragged into the editor. -* [#16728](http://dev.ckeditor.com/ticket/16728): [IE] Fixed: [Copy Formatting](http://ckeditor.com/addon/copyformatting) breaks the editor in Quirks Mode. -* [#16795](http://dev.ckeditor.com/ticket/16795): [IE] Fixed: [Copy Formatting](http://ckeditor.com/addon/copyformatting) breaks the editor in Compatibility Mode. -* [#16675](http://dev.ckeditor.com/ticket/16675): Fixed: Styles applied with [Copy Formatting](http://ckeditor.com/addon/copyformatting) to a single table cell are applied to the whole table. -* [#16753](http://dev.ckeditor.com/ticket/16753): Fixed: [`element.setSize`](http://docs.ckeditor.com/#!/api/CKEDITOR.dom.element-method-setSize) sets incorrect editor dimensions if the border width is represented as a fraction of pixels. -* [#16705](http://dev.ckeditor.com/ticket/16705): [Firefox] Fixed: Unable to paste images as Base64 strings when using [Clipboard](http://ckeditor.com/addon/clipboard). -* [#14869](http://dev.ckeditor.com/ticket/14869): Fixed: JavaScript error is thrown when trying to use [Find](http://ckeditor.com/addon/find) in a [`<div>`-based editor](http://ckeditor.com/addon/divarea). - -## CKEditor 4.6.1 - -New Features: - -* [#16639](http://dev.ckeditor.com/ticket/16639): The `callback` parameter in the [CKEDITOR.ajax.post](http://docs.ckeditor.com/#!/api/CKEDITOR.ajax-method-post) method became optional. - -Fixed Issues: - -* [#11064](http://dev.ckeditor.com/ticket/11064): [Blink, WebKit] Fixed: Cannot select all editor content when a widget or a non-editable element is the first or last element of the content. Also fixes this issue in the [Select All](http://ckeditor.com/addon/selectall) plugin. -* [#14755](http://dev.ckeditor.com/ticket/14755): [Blink, WebKit, IE8] Fixed: Browser hangs when a table is inserted in the place of a selected list with an empty last item. -* [#16624](http://dev.ckeditor.com/ticket/16624): Fixed: Improved the [Color Button](http://ckeditor.com/addon/colorbutton) plugin which will now normalize the CSS `background` property if it only contains a color value. This fixes missing background colors when using [Paste from Word](http://ckeditor.com/addon/pastefromword). -* [#16600](http://dev.ckeditor.com/ticket/16600): [Blink, WebKit] Fixed: Error thrown occasionally by an uninitialized editable for multiple CKEditor instances on the same page. - -## CKEditor 4.6 - -New Features: - -* [#14569](http://dev.ckeditor.com/ticket/14569): Added a new, flat, default CKEditor skin called [Moono-Lisa](http://ckeditor.com/addon/moono-lisa). Refreshed default colors available in the [Color Button](http://ckeditor.com/addon/colorbutton) plugin ([Text Color and Background Color](http://docs.ckeditor.com/#!/guide/dev_colorbutton) feature). -* [#14707](http://dev.ckeditor.com/ticket/14707): Added a new [Copy Formatting](http://ckeditor.com/addon/copyformatting) feature to enable easy copying of styles between your document parts. -* Introduced the completely rewritten [Paste from Word](http://ckeditor.com/addon/pastefromword) plugin: - * Backward incompatibility: The [`config.pasteFromWordRemoveFontStyles`](http://docs.ckeditor.com/#!/api/CKEDITOR.config-cfg-pasteFromWordRemoveFontStyles) option now defaults to `false`. This option will be deprecated in the future. Use [Advanced Content Filter](http://docs.ckeditor.com/#!/guide/dev_acf) to replicate the effect of setting it to `true`. - * Backward incompatibility: The [`config.pasteFromWordNumberedHeadingToList`](http://docs.ckeditor.com/#!/api/CKEDITOR.config-cfg-pasteFromWordNumberedHeadingToList) and [`config.pasteFromWordRemoveStyles`](http://docs.ckeditor.com/#!/api/CKEDITOR.config-cfg-pasteFromWordRemoveStyles) options were dropped and no longer have any effect on pasted content. - * Major improvements in preservation of list numbering, styling and indentation (nested lists with multiple levels). - * Major improvements in document structure parsing that fix plenty of issues with distorted or missing content after paste. -* Added new translation: Occitan. Thanks to [Cédric Valmary](https://totenoc.eu/)! -* [#10015](http://dev.ckeditor.com/ticket/10015): Keyboard shortcuts (relevant to the operating system in use) will now be displayed in tooltips and context menus. -* [#13794](http://dev.ckeditor.com/ticket/13794): The [Upload Image](http://ckeditor.com/addon/uploadimage) feature now uses `uploaded.width/height` if set. -* [#12541](http://dev.ckeditor.com/ticket/12541): Added the [Upload File](http://ckeditor.com/addon/uploadfile) plugin that lets you upload a file by drag&amp;dropping it into the editor content. -* [#14449](http://dev.ckeditor.com/ticket/14449): Introduced the [Balloon Panel](http://ckeditor.com/addon/balloonpanel) plugin that lets you create stylish floating UI elements for the editor. -* [#12077](https://dev.ckeditor.com/ticket/12077): Added support for the HTML5 `download` attribute in link (`<a>`) elements. Selecting the "Force Download" checkbox in the [Link](http://ckeditor.com/addon/link) dialog will cause the linked file to be downloaded automatically. Thanks to [sbusse](https://github.com/sbusse)! -* [#13518](http://dev.ckeditor.com/ticket/13518): Introduced the [`additionalRequestParameters`](http://docs.ckeditor.com/#!/api/CKEDITOR.fileTools.uploadWidgetDefinition-property-additionalRequestParameters) property for file uploads to make it possible to send additional information about the uploaded file to the server. -* [#14889](http://dev.ckeditor.com/ticket/14889): Added the [`config.image2_altRequired`](http://docs.ckeditor.com/#!/api/CKEDITOR.config-cfg-image2_altRequired) option for the [Enhanced Image](http://ckeditor.com/addon/image2) plugin to allow making alternative text a mandatory field. Thanks to [Andrey Fedoseev](https://github.com/andreyfedoseev)! - -Fixed Issues: - -* [#9991](http://dev.ckeditor.com/ticket/9991): Fixed: [Paste from Word](http://ckeditor.com/addon/pastefromword) should only normalize input data. -* [#7209](http://dev.ckeditor.com/ticket/7209): Fixed: Lists with 3 levels not [pasted from Word](http://ckeditor.com/addon/pastefromword) correctly. -* [#14335](http://dev.ckeditor.com/ticket/14335): Fixed: Pasting a numbered list starting with a value different from "1" from Microsoft Word does not work correctly. -* [#14542](http://dev.ckeditor.com/ticket/14542): Fixed: Copying a numbered list from Microsoft Word does not preserve list formatting. -* [#14544](http://dev.ckeditor.com/ticket/14544): Fixed: Copying a nested list from Microsoft Word results in an empty list. -* [#14660](http://dev.ckeditor.com/ticket/14660): Fixed: [Pasting text from Word](http://ckeditor.com/addon/pastefromword) breaks the styling in some cases. -* [#14867](http://dev.ckeditor.com/ticket/14867): [Firefox] Fixed: Text gets stripped when [pasting content from Word](http://ckeditor.com/addon/pastefromword). -* [#2507](http://dev.ckeditor.com/ticket/2507): Fixed: [Paste from Word](http://ckeditor.com/addon/pastefromword) does not detect pasting a part of a paragraph. -* [#3336](http://dev.ckeditor.com/ticket/3336): Fixed: Extra blank row added on top of the content [pasted from Word](http://ckeditor.com/addon/pastefromword). -* [#6115](http://dev.ckeditor.com/ticket/6115): Fixed: When Right-to-Left text direction is applied to a table [pasted from Word](http://ckeditor.com/addon/pastefromword), borders are missing on one side. -* [#6342](http://dev.ckeditor.com/ticket/6342): Fixed: [Paste from Word](http://ckeditor.com/addon/pastefromword) filters out a basic text style when it is [configured to use attributes](http://docs.ckeditor.com/#!/guide/dev_basicstyles-section-custom-basic-text-style-definition). -* [#6457](http://dev.ckeditor.com/ticket/6457): [IE] Fixed: [Pasting from Word](http://ckeditor.com/addon/pastefromword) is extremely slow. -* [#6789](http://dev.ckeditor.com/ticket/6789): Fixed: The `mso-list: ignore` style is not handled properly when [pasting from Word](http://ckeditor.com/addon/pastefromword). -* [#7262](http://dev.ckeditor.com/ticket/7262): Fixed: Lists in preformatted body disappear when [pasting from Word](http://ckeditor.com/addon/pastefromword). -* [#7662](http://dev.ckeditor.com/ticket/7662): [Opera] Fixed: Extra empty number/bullet shown in the editor body when editing a multi-level list [pasted from Word](http://ckeditor.com/addon/pastefromword). -* [#7807](http://dev.ckeditor.com/ticket/7807): Fixed: Last item in a list not converted to a `<li>` element after [pasting from Word](http://ckeditor.com/addon/pastefromword). -* [#7950](http://dev.ckeditor.com/ticket/7950): [IE] Fixed: Content [from Word pasted](http://ckeditor.com/addon/pastefromword) differently than in other browsers. -* [#7982](http://dev.ckeditor.com/ticket/7982): Fixed: Multi-level lists get split into smaller ones when [pasting from Word](http://ckeditor.com/addon/pastefromword). -* [#8231](http://dev.ckeditor.com/ticket/8231): [WebKit, Opera] Fixed: [Paste from Word](http://ckeditor.com/addon/pastefromword) inserts empty paragraphs. -* [#8266](http://dev.ckeditor.com/ticket/8266): Fixed: [Paste from Word](http://ckeditor.com/addon/pastefromword) inserts a blank line at the top. -* [#8341](http://dev.ckeditor.com/ticket/8341), [#7646](http://dev.ckeditor.com/ticket/7646): Fixed: Faulty removal of empty `<span>` elements in [Paste from Word](http://ckeditor.com/addon/pastefromword) content cleanup breaking content formatting. -* [#8754](http://dev.ckeditor.com/ticket/8754): [Firefox] Fixed: Incorrect pasting of multiple nested lists in [Paste from Word](http://ckeditor.com/addon/pastefromword). -* [#8983](http://dev.ckeditor.com/ticket/8983): Fixed: Alignment lost when [pasting from Word](http://ckeditor.com/addon/pastefromword) with [`config.enterMode`](http://docs.ckeditor.com/#!/api/CKEDITOR.config-cfg-enterMode) set to [`CKEDITOR.ENTER_BR`](http://docs.ckeditor.com/#!/api/CKEDITOR-property-ENTER_BR). -* [#9331](http://dev.ckeditor.com/ticket/9331): [IE] Fixed: [Pasting text from Word](http://ckeditor.com/addon/pastefromword) creates a simple Caesar cipher. -* [#9422](http://dev.ckeditor.com/ticket/9422): Fixed: [Paste from Word](http://ckeditor.com/addon/pastefromword) leaves an unwanted `color:windowtext` style. -* [#10011](http://dev.ckeditor.com/ticket/10011): [IE9-10] Fixed: [`config.pasteFromWordRemoveFontStyles`](http://docs.ckeditor.com/#!/api/CKEDITOR.config-cfg-pasteFromWordRemoveFontStyles) is ignored under certain conditions. -* [#10643](http://dev.ckeditor.com/ticket/10643): Fixed: Differences between using <kbd>Ctrl+V</kbd> and pasting from the [Paste from Word](http://ckeditor.com/addon/pastefromword) dialog. -* [#10784](http://dev.ckeditor.com/ticket/10784): Fixed: Lines missing when [pasting from Word](http://ckeditor.com/addon/pastefromword). -* [#11294](http://dev.ckeditor.com/ticket/11294): [IE10] Fixed: Font size is not preserved when [pasting from Word](http://ckeditor.com/addon/pastefromword). -* [#11627](http://dev.ckeditor.com/ticket/11627): Fixed: Missing words when [pasting from Word](http://ckeditor.com/addon/pastefromword). -* [#12784](http://dev.ckeditor.com/ticket/12784): Fixed: Bulleted list with custom bullets gets changed to a numbered list when [pasting from Word](http://ckeditor.com/addon/pastefromword). -* [#13174](http://dev.ckeditor.com/ticket/13174): Fixed: Data loss after [pasting from Word](http://ckeditor.com/addon/pastefromword). -* [#13828](http://dev.ckeditor.com/ticket/13828): Fixed: Widget classes should be added to the wrapper rather than the widget element. -* [#13829](http://dev.ckeditor.com/ticket/13829): Fixed: No class in [Widget](http://ckeditor.com/addon/widget) wrapper to identify the widget type. -* [#13519](http://dev.ckeditor.com/ticket/13519): Server response received when uploading files should be more flexible. - -Other Changes: - -* Updated [SCAYT](http://ckeditor.com/addon/scayt) (Spell Check As You Type) and [WebSpellChecker](http://ckeditor.com/addon/wsc) plugins: - * Support for the new default Moono-Lisa skin. - * [#121](https://github.com/WebSpellChecker/ckeditor-plugin-scayt/issues/121): Fixed: [Basic Styles](http://ckeditor.com/addon/basicstyles) do not work when SCAYT is enabled. - * [#125](https://github.com/WebSpellChecker/ckeditor-plugin-scayt/issues/125): Fixed: Inline styles are not continued when writing multiple lines of styled text with SCAYT enabled. - * [#127](https://github.com/WebSpellChecker/ckeditor-plugin-scayt/issues/127): Fixed: Uncaught TypeError after enabling SCAYT in the CKEditor `<div>` element. - * [#128](https://github.com/WebSpellChecker/ckeditor-plugin-scayt/issues/128): Fixed: Error thrown after enabling SCAYT caused by conflicts with RequireJS. - -## CKEditor 4.5.11 - -**Security Updates:** - -* [Severity: minor] Fixed the `target="_blank"` vulnerability reported by James Gaskell. - - Issue summary: If a victim had access to a spoofed version of ckeditor.com via HTTP (e.g. due to DNS spoofing, using a hacked public network or mailicious hotspot), then when using a link to the ckeditor.com website it was possible for the attacker to change the current URL of the opening page, even if the opening page was protected with SSL. - - An upgrade is recommended. - -New Features: - -* [#14747](http://dev.ckeditor.com/ticket/14747): The [Enhanced Image](http://ckeditor.com/addon/image2) caption now supports the link `target` attribute. -* [#7154](http://dev.ckeditor.com/ticket/7154): Added support for the "Display Text" field to the [Link](http://ckeditor.com/addon/link) dialog. Thanks to [Ryan Guill](https://github.com/ryanguill)! - -Fixed Issues: - -* [#13362](http://dev.ckeditor.com/ticket/13362): [Blink, WebKit] Fixed: Active widget element is not cached when it is losing focus and it is inside an editable element. -* [#13755](http://dev.ckeditor.com/ticket/13755): [Edge] Fixed: Pasting images does not work. -* [#13548](http://dev.ckeditor.com/ticket/13548): [IE] Fixed: Clicking the [elements path](http://ckeditor.com/addon/elementspath) disables Cut and Copy icons. -* [#13812](http://dev.ckeditor.com/ticket/13812): Fixed: When aborting file upload the placeholder for image is left. -* [#14659](http://dev.ckeditor.com/ticket/14659): [Blink] Fixed: Content scrolled to the top after closing the dialog in a [`<div>`-based editor](http://ckeditor.com/addon/divarea). -* [#14825](http://dev.ckeditor.com/ticket/14825): [Edge] Fixed: Focusing the editor causes unwanted scrolling due to dropped support for the `setActive` method. - -## CKEditor 4.5.10 - -Fixed Issues: - -* [#10750](http://dev.ckeditor.com/ticket/10750): Fixed: The editor does not escape the `font-style` family property correctly, removing quotes and whitespace from font names. -* [#14413](http://dev.ckeditor.com/ticket/14413): Fixed: The [Auto Grow](http://ckeditor.com/addon/autogrow) plugin with the [`config.autoGrow_onStartup`](http://docs.ckeditor.com/#!/api/CKEDITOR.config-cfg-autoGrow_onStartup) option set to `true` does not work properly for an editor that is not visible. -* [#14451](http://dev.ckeditor.com/ticket/14451): Fixed: Numeric element ID not escaped properly. Thanks to [Jakub Chalupa](https://github.com/chaluja7)! -* [#14590](http://dev.ckeditor.com/ticket/14590): Fixed: Additional line break appearing after inline elements when switching modes. Thanks to [dpidcock](https://github.com/dpidcock)! -* [#14539](https://dev.ckeditor.com/ticket/14539): Fixed: JAWS reads "selected Blank" instead of "selected <widget name>" when selecting a widget. -* [#14701](http://dev.ckeditor.com/ticket/14701): Fixed: More precise labels for [Enhanced Image](http://ckeditor.com/addon/image2) and [Placeholder](http://ckeditor.com/addon/placeholder) widgets. -* [#14667](http://dev.ckeditor.com/ticket/14667): [IE] Fixed: Removing background color from selected text removes background color from the whole paragraph. -* [#14252](http://dev.ckeditor.com/ticket/14252): [IE] Fixed: Styles drop-down list does not always reflect the current style of the text line. -* [#14275](http://dev.ckeditor.com/ticket/14275): [IE9+] Fixed: `onerror` and `onload` events are not used in browsers it could have been used when loading scripts dynamically. - -## CKEditor 4.5.9 - -Fixed Issues: - -* [#10685](http://dev.ckeditor.com/ticket/10685): Fixed: Unreadable toolbar icons after updating to the new editor version. Fixed with [6876179](https://github.com/ckeditor/ckeditor-dev/commit/6876179db4ee97e786b07b8fd72e6b4120732185) in [ckeditor-dev](https://github.com/ckeditor/ckeditor-dev) and [6c9189f4](https://github.com/ckeditor/ckeditor-presets/commit/6c9189f46392d2c126854fe8889b820b8c76d291) in [ckeditor-presets](https://github.com/ckeditor/ckeditor-presets). -* [#14573](https://dev.ckeditor.com/ticket/14573): Fixed: Missing [Widget](http://ckeditor.com/addon/widget) drag handler CSS when there are multiple editor instances. -* [#14620](https://dev.ckeditor.com/ticket/14620): Fixed: Setting both the `min-height` style for the `<body>` element and the `height` style for the `<html>` element breaks the [Auto Grow](http://ckeditor.com/addon/autogrow) plugin. -* [#14538](http://dev.ckeditor.com/ticket/14538): Fixed: Keyboard focus goes into an embedded `<iframe>` element. -* [#14602](http://dev.ckeditor.com/ticket/14602): Fixed: The [`dom.element.removeAttribute()`](http://docs.ckeditor.com/#!/api/CKEDITOR.dom.element-method-removeAttribute) method does not remove all attributes if no parameter is given. -* [#8679](http://dev.ckeditor.com/ticket/8679): Fixed: Better focus indication and ability to style the selected color in the [color picker dialog](http://ckeditor.com/addon/colordialog). -* [#11697](http://dev.ckeditor.com/ticket/11697): Fixed: Content is replaced ignoring the letter case setting in the [Find and Replace](http://ckeditor.com/addon/find) dialog window. -* [#13886](http://dev.ckeditor.com/ticket/13886): Fixed: Invalid handling of the [`CKEDITOR.style`](http://docs.ckeditor.com/#!/api/CKEDITOR.style) instance with the `styles` property by [`CKEDITOR.filter`](http://docs.ckeditor.com/#!/api/CKEDITOR.filter). -* [#14535](http://dev.ckeditor.com/ticket/14535): Fixed: CSS syntax corrections. Thanks to [mdjdenormandie](https://github.com/mdjdenormandie)! - -## CKEditor 4.5.8 - -New Features: - -* [#12440](http://dev.ckeditor.com/ticket/12440): Added the [`config.colorButton_enableAutomatic`](http://docs.ckeditor.com/#!/api/CKEDITOR.config-cfg-colorButton_enableAutomatic) option to allow hiding the "Automatic" option in the [color picker](http://ckeditor.com/addon/colorbutton). - -Fixed Issues: - -* [#10448](http://dev.ckeditor.com/ticket/10448): Fixed: Lack of scrollbar in the [right-to-left text direction](http://ckeditor.com/addon/bidi). -* [#12707](http://dev.ckeditor.com/ticket/12707): Fixed: The order of table elements does not comply with the HTML specification. -* [#13756](http://dev.ckeditor.com/ticket/13756): [Edge] Fixed: Context menus are cut-off. - -## CKEditor 4.5.7 - -New Features: - -* [#14327](http://dev.ckeditor.com/ticket/14327): Added Swiss German localization. Thanks to [Miro Grenda](https://twitter.com/mirogrenda)! - -Fixed Issues: - -* [#13816](http://dev.ckeditor.com/ticket/13816): Introduced a new strategy for Filling Character handling to avoid changes in DOM. This fixes the following issues: - * [#12727](http://dev.ckeditor.com/ticket/12727): [Blink] `IndexSizeError` when using the [Div Editing Area](http://ckeditor.com/addon/divarea) and [Content Templates](http://ckeditor.com/addon/templates) plugins. - * [#13377](http://dev.ckeditor.com/ticket/13377): [Widget](http://ckeditor.com/addon/widget) plugin issue when typing in Korean. - * [#13389](http://dev.ckeditor.com/ticket/13389): [Blink] [`editor.getData()`](http://docs.ckeditor.com/#!/api/CKEDITOR.editor-method-getData) fails when the cursor is next to an `<hr>` tag. - * [#13513](http://dev.ckeditor.com/ticket/13513): [Blink, WebKit] [Div Editing Area](http://ckeditor.com/addon/divarea) and [`editor.getData()`](http://docs.ckeditor.com/#!/api/CKEDITOR.editor-method-getData) throw an error when an image is the only data in the editor. -* [#13884](http://dev.ckeditor.com/ticket/13884): [Firefox] Fixed: Copying and pasting a table results in just the first cell being pasted. -* [#14234](http://dev.ckeditor.com/ticket/14234): Fixed: URL input field is not marked as required in the [Media Embed](http://ckeditor.com/addon/embed) dialog. - -## CKEditor 4.5.6 - -New Features: - -* Introduced the [`CKEDITOR.tools.getCookie()`](http://docs.ckeditor.com/#!/api/CKEDITOR.tools-method-getCookie) and [`CKEDITOR.tools.setCookie()`](http://docs.ckeditor.com/#!/api/CKEDITOR.tools-method-setCookie) methods for accessing cookies. -* Introduced the [`CKEDITOR.tools.getCsrfToken()`](http://docs.ckeditor.com/#!/api/CKEDITOR.tools-method-getCsrfToken) method. The CSRF token is now automatically sent by the [File Browser](http://ckeditor.com/addon/filebrowser) and [File Tools](http://ckeditor.com/addon/filetools) plugins during file uploads. The server-side upload handlers may check it and use it to additionally secure the communication. - -Other Changes: - -* Updated [SCAYT](http://ckeditor.com/addon/scayt) (Spell Check As You Type): - - New features: - - CKEditor [Language](http://ckeditor.com/addon/language) plugin support. - - CKEditor [Placeholder](http://ckeditor.com/addon/placeholder) plugin support. - - [Drag&Drop](http://sdk.ckeditor.com/samples/fileupload.html) support. - - **Experimental** [GRAYT](http://docs.ckeditor.com/#!/api/CKEDITOR.config-cfg-grayt_autoStartup) (Grammar As You Type) functionality. - - Fixed issues: - * [#98](https://github.com/WebSpellChecker/ckeditor-plugin-scayt/issues/98): SCAYT affects dialog double-click. Fixed in SCAYT core. - * [#102](https://github.com/WebSpellChecker/ckeditor-plugin-scayt/issues/102): SCAYT core performance enhancements. - * [#104](https://github.com/WebSpellChecker/ckeditor-plugin-scayt/issues/104): SCAYT's spans leak into the clipboard and after pasting. - * [#105](https://github.com/WebSpellChecker/ckeditor-plugin-scayt/issues/105): A JavaScript error fired in case of multiple instances of CKEditor on one page. - * [#107](https://github.com/WebSpellChecker/ckeditor-plugin-scayt/issues/107): SCAYT should not check non-editable parts of content. - * [#108](https://github.com/WebSpellChecker/ckeditor-plugin-scayt/issues/108): Latest SCAYT copies the ID of the editor element to the iframe. - * SCAYT stops working when CKEditor [Undo plugin](http://ckeditor.com/addon/undo) not enabled. - * Issue with pasting SCAYT markup in CKEditor. - * SCAYT stops working after pressing the *Cancel* button in the WSC dialog. - -## CKEditor 4.5.5 - -Fixed Issues: - -* [#13887](https://dev.ckeditor.com/ticket/13887): Fixed: [Link](http://ckeditor.com/addon/link) plugin alters the `target` attribute value. Thanks to [SamZiemer](https://github.com/SamZiemer)! -* [#12189](http://dev.ckeditor.com/ticket/12189): Fixed: The [Link](http://ckeditor.com/addon/link) plugin dialog does not display the subject of email links if the subject parameter is not lowercase. -* [#9192](http://dev.ckeditor.com/ticket/9192): Fixed: An `undefined` string is appended to an email address added with the [Link](http://ckeditor.com/addon/link) plugin if subject and email body are empty and [`config.emailProtection`](http://docs.ckeditor.com/#!/api/CKEDITOR.config-cfg-emailProtection) is set to `encode`. -* [#13790](https://dev.ckeditor.com/ticket/13790): Fixed: It is not possible to destroy the editor `<iframe>` after the editor was detached from DOM. Thanks to [Stefan Rijnhart](https://github.com/StefanRijnhart)! -* [#13803](https://dev.ckeditor.com/ticket/13803): Fixed: The editor cannot be destroyed before being fully initialized. Thanks to [Cyril Fluck](https://github.com/cyril-sf)! -* [#13867](http://dev.ckeditor.com/ticket/13867): Fixed: CKEditor does not work when the `classList` polyfill is used. -* [#13885](http://dev.ckeditor.com/ticket/13885): Fixed: [Enhanced Image](http://ckeditor.com/addon/image2) requires the [Link](http://ckeditor.com/addon/link) plugin to link an image. -* [#13883](http://dev.ckeditor.com/ticket/13883): Fixed: Copying a table using the context menu strips off styles. -* [#13872](http://dev.ckeditor.com/ticket/13872): Fixed: Cutting is possible in the [read-only](http://docs.ckeditor.com/#!/api/CKEDITOR.editor-property-readOnly) mode. -* [#12848](http://dev.ckeditor.com/ticket/12848): [Blink] Fixed: Opening the [Find and Replace](http://ckeditor.com/addon/find) dialog window in the [read-only](http://docs.ckeditor.com/#!/api/CKEDITOR.editor-property-readOnly) mode throws an exception. -* [#13879](http://dev.ckeditor.com/ticket/13879): Fixed: It is not possible to prevent the [`editor.drop`](http://docs.ckeditor.com/#!/api/CKEDITOR.editor-event-drop) event. -* [#13361](http://dev.ckeditor.com/ticket/13361): Fixed: Skin images fail when the site path includes parentheses because the `background-image` path needs single quotes around the URL value. -* [#13771](http://dev.ckeditor.com/ticket/13771): Fixed: The `contents.css` style is not used if the [IFrame Editing Area](http://ckeditor.com/addon/wysiwygarea) plugin is missing. -* [#13782](http://dev.ckeditor.com/ticket/13782): Fixed: Unclear log messages. -* [#13919](http://dev.ckeditor.com/ticket/13919): [Edge] Fixed: Browser window crashes when accessing the `isContentEditable` property of an `<input>` DOM element. - -Other Changes: - -* [#13859](http://dev.ckeditor.com/ticket/13859): Test cases created with `bender.tools.createTestsForEditors` will also receive editor bot as a second parameter. - -## CKEditor 4.5.4 - -New Features: - -* [#13632](http://dev.ckeditor.com/ticket/13632): Introduce error logging mechanism. -* [#13730](http://dev.ckeditor.com/ticket/13730): Switch to the new error logging mechanism. - -Fixed Issues: - -* [#9856](http://dev.ckeditor.com/ticket/9856): Fixed: Cannot use the native context menu together with the [Div Editing Area](http://ckeditor.com/addon/divarea) plugin. Thanks to [Mark Wade](https://github.com/mark-wade)! -* [#12733](http://dev.ckeditor.com/ticket/12733): [IE9+] Fixed: Radio button `onChange` does not work. Thanks to [Iliya Kostadinov](https://github.com/iliyakostadinov)! -* [#13142](http://dev.ckeditor.com/ticket/13142): [Edge] Fixed: *Ctrl+A* and then *Backspace* result in an empty `<div>` element. -* [#13599](http://dev.ckeditor.com/ticket/13599): Fixed: Cross-editor drag and drop of an inline widget results in error/artifacts. -* [#13640](http://dev.ckeditor.com/ticket/13640): [IE] Fixed: Dropping a widget outside the `<body>` element is not handled correctly. -* [#13533](http://dev.ckeditor.com/ticket/13533): Fixed: No progress during upload. -* [#13680](http://dev.ckeditor.com/ticket/13680): Fixed: The parser should allow the `<h1-6>` element to be a child of the `<summary>` element. -* [#11724](http://dev.ckeditor.com/ticket/11724): [Touch devices] Fixed: Drop-downs often hide right after opening them. -* [#13690](http://dev.ckeditor.com/ticket/13690): Fixed: Copying content from IE to Chrome adds an extra paragraph. -* [#13284](http://dev.ckeditor.com/ticket/13284): Fixed: Cannot drag and drop a widget if the text caret is placed just after the widget instance. -* [#13516](http://dev.ckeditor.com/ticket/13516): Fixed: CKEditor removes empty HTML5 anchors without the `name` attribute. -* [#13765](http://dev.ckeditor.com/ticket/13765): [Safari 9] Fixed: Problems with rendering samples. - -Other Changes: - -* [#11725](http://dev.ckeditor.com/ticket/11725): Marked [`CKEDITOR.env.mobile`](http://docs.ckeditor.com/#!/api/CKEDITOR.env-property-mobile) as deprecated. The reason is that it is no longer clear what "mobile" means. -* [#13737](http://dev.ckeditor.com/ticket/13737): Upgraded [Bender.js](https://github.com/benderjs/benderjs) to 0.4.1. - -## CKEditor 4.5.3 - -New Features: - -* [#13501](http://dev.ckeditor.com/ticket/13501): Added the [`config.fileTools_defaultFileName`](http://docs.ckeditor.com/#!/api/CKEDITOR.config-cfg-fileTools_defaultFileName) option to allow setting a default file name for paste uploads. -* [#13603](http://dev.ckeditor.com/ticket/13603): Added support for uploading dropped BMP images. - -Fixed Issues: - -* [#13590](http://dev.ckeditor.com/ticket/13590): Fixed: Various issues related to the [Paste from Word](http://ckeditor.com/addon/pastefromword) feature. Fixes also: - * [#11215](http://dev.ckeditor.com/ticket/11215), - * [#8780](http://dev.ckeditor.com/ticket/8780), - * [#12762](http://dev.ckeditor.com/ticket/12762). -* [#13386](http://dev.ckeditor.com/ticket/13386): [Edge] Fixed: Issues with selecting and editing images. -* [#13568](http://dev.ckeditor.com/ticket/13568): Fixed: The [`editor.getSelectedHtml()`](http://docs.ckeditor.com/#!/api/CKEDITOR.editor-method-getSelectedHtml) method returns invalid results for entire content selection. -* [#13453](http://dev.ckeditor.com/ticket/13453): Fixed: Drag&drop of entire editor content throws an error. -* [#13465](http://dev.ckeditor.com/ticket/13465): Fixed: Error is thrown and the widget is lost on drag&drop if it is the only content of the editor. -* [#13414](http://dev.ckeditor.com/ticket/13414): Fixed: Content auto paragraphing in a nested editable despite editor configuration. -* [#13429](http://dev.ckeditor.com/ticket/13429): Fixed: Incorrect selection after content insertion by the [Auto Embed](http://ckeditor.com/addon/autoembed) plugin. -* [#13388](http://dev.ckeditor.com/ticket/13388): Fixed: [Table Resize](http://ckeditor.com/addon/tableresize) integration with [Undo](http://ckeditor.com/addon/undo) is broken. - -Other Changes: - -* [#13637](https://dev.ckeditor.com/ticket/13637): Several icons were refactored. -* Updated [Bender.js](https://github.com/benderjs/benderjs) to 0.3.0 and introduced the ability to run tests via HTTPs ([#13265](https://dev.ckeditor.com/ticket/13265)). - -## CKEditor 4.5.2 - -Fixed Issues: - -* [#13609](http://dev.ckeditor.com/ticket/13609): [Edge] Fixed: The browser crashes when switching to the source mode. Thanks to [Andrew Williams and Mark Smeed](http://webxsolution.com/)! -* [PR#201](https://github.com/ckeditor/ckeditor-dev/pull/201): Fixed: Buttons in the toolbar configurator cause form submission. Thanks to [colemanw](https://github.com/colemanw)! -* [#13422](http://dev.ckeditor.com/ticket/13422): Fixed: A monospaced font should be used in the `<textarea>` element storing editor configuration in the toolbar configurator. -* [#13494](http://dev.ckeditor.com/ticket/13494): Fixed: Error thrown in the toolbar configurator if plugin requirements are not met. -* [#13409](http://dev.ckeditor.com/ticket/13409): Fixed: List elements incorrectly merged when pressing *Backspace* or *Delete*. -* [#13434](http://dev.ckeditor.com/ticket/13434): Fixed: Dialog state indicator broken in Right–To–Left environments. -* [#13460](http://dev.ckeditor.com/ticket/13460): [IE8] Fixed: Copying inline widgets is broken when [Advanced Content Filter](http://docs.ckeditor.com/#!/guide/dev_acf) is disabled. -* [#13495](http://dev.ckeditor.com/ticket/13495): [Firefox, IE] Fixed: Text is not word-wrapped in the Paste dialog window. -* [#13528](http://dev.ckeditor.com/ticket/13528): [Firefox@Windows] Fixed: Content copied from Microsoft Word and other external applications is pasted as a plain text. Removed the `CKEDITOR.plugins.clipboard.isHtmlInExternalDataTransfer` property as the check must be dynamic. -* [#13583](http://dev.ckeditor.com/ticket/13583): Fixed: [`DataTransfer.getData()`](http://docs.ckeditor.com/#!/api/CKEDITOR.plugins.clipboard.dataTransfer-method-getData) should work consistently in all browsers and should not strip valuable content. Fixed pasting tables from Microsoft Excel on Chrome. -* [#13468](http://dev.ckeditor.com/ticket/13468): [IE] Fixed: Binding drag&drop `dataTransfer` does not work if `text` data was set in the meantime. -* [#13451](http://dev.ckeditor.com/ticket/13451): [IE8-9] Fixed: One drag&drop operation may affect following ones. -* [#13184](http://dev.ckeditor.com/ticket/13184): Fixed: Web page reloaded after a drop on editor UI. -* [#13129](http://dev.ckeditor.com/ticket/13129) Fixed: Block widget blurred after a drop followed by an undo. -* [#13397](http://dev.ckeditor.com/ticket/13397): Fixed: Drag&drop of a widget inside its nested widget crashes the editor. -* [#13385](http://dev.ckeditor.com/ticket/13385): Fixed: [`editor.getSnapshot()`](http://docs.ckeditor.com/#!/api/CKEDITOR.editor-method-getSnapshot) may return a non-string value. -* [#13419](http://dev.ckeditor.com/ticket/13419): Fixed: The [Auto Link](http://ckeditor.com/addon/autolink) plugin does not encode double quotes in URLs. -* [#13420](http://dev.ckeditor.com/ticket/13420): Fixed: The [Auto Embed](http://ckeditor.com/addon/autoembed) plugin ignores encoded characters in URL parameters. -* [#13410](http://dev.ckeditor.com/ticket/13410): Fixed: Error thrown in the [Auto Embed](http://ckeditor.com/addon/autoembed) plugin when undoing right after pasting a link. -* [#13566](http://dev.ckeditor.com/ticket/13566): Fixed: Suppressed notifications in the [Media Embed Base](http://ckeditor.com/addon/embedbase) plugin. -* [#11616](http://dev.ckeditor.com/ticket/11616): [Chrome] Fixed: Resizing the editor while it is not displayed breaks the editable. Fixes also [#9160](http://dev.ckeditor.com/ticket/9160) and [#9715](http://dev.ckeditor.com/ticket/9715). -* [#11376](http://dev.ckeditor.com/ticket/11376): [IE11] Fixed: Loss of text when pasting bulleted lists from Microsoft Word. -* [#13143](http://dev.ckeditor.com/ticket/13143): [Edge] Fixed: Focus lost when opening the panel. -* [#13387](http://dev.ckeditor.com/ticket/13387): [Edge] Fixed: "Permission denied" error thrown when loading the editor with developer tools open. -* [#13574](http://dev.ckeditor.com/ticket/13574): [Edge] Fixed: "Permission denied" error thrown when opening editor dialog windows. -* [#13441](http://dev.ckeditor.com/ticket/13441): [Edge] Fixed: The [Clipboard](http://ckeditor.com/addon/clipboard) plugin breaks the state of [Undo](http://ckeditor.com/addon/undo) commands after a paste. -* [#13554](http://dev.ckeditor.com/ticket/13554): [Edge] Fixed: Paste dialog's iframe does not receive focus on show. -* [#13440](http://dev.ckeditor.com/ticket/13440): [Edge] Fixed: Unable to paste a widget. - -Other Changes: - -* [#13421](http://dev.ckeditor.com/ticket/13421): UX improvements to notifications in the [Auto Embed](http://ckeditor.com/addon/autoembed) plugin. - -## CKEditor 4.5.1 - -Fixed Issues: - -* [#13486](http://dev.ckeditor.com/ticket/13486): Fixed: The [Upload Image](http://ckeditor.com/addon/uploadimage) plugin should log an error, not throw an error when upload URL is not set. - -## CKEditor 4.5 - -New Features: - -* [#13304](http://dev.ckeditor.com/ticket/13304): Added support for passing DOM elements to [`config.sharedSpaces`](http://docs.ckeditor.com/#!/api/CKEDITOR.config-cfg-sharedSpaces). Thanks to [Undergrounder](https://github.com/Undergrounder)! -* [#13215](http://dev.ckeditor.com/ticket/13215): Added ability to cancel fetching a resource by the Embed plugins. -* [#13213](http://dev.ckeditor.com/ticket/13213): Added the [`dialog#setState()`](http://docs.ckeditor.com/#!/api/CKEDITOR.dialog-method-setState) method and used it in the [Embed](http://ckeditor.com/addon/embed) dialog to indicate that a resource is being loaded. -* [#13337](http://dev.ckeditor.com/ticket/13337): Added the [`repository.onWidget()`](http://docs.ckeditor.com/#!/api/CKEDITOR.plugins.widget.repository-method-onWidget) method &mdash; a convenient way to listen to [widget](http://docs.ckeditor.com/#!/api/CKEDITOR.plugins.widget) events through the [repository](http://docs.ckeditor.com/#!/api/CKEDITOR.plugins.widget.repository). -* [#13214](http://dev.ckeditor.com/ticket/13214): Added support for pasting links that convert into embeddable resources on the fly. - -Fixed Issues: - -* [#13334](http://dev.ckeditor.com/ticket/13334): Fixed: Error after nesting widgets and playing with undo/redo. -* [#13118](http://dev.ckeditor.com/ticket/13118): Fixed: The [`editor.getSelectedHtml()`](http://docs.ckeditor.com/#!/api/CKEDITOR.editor-method-getSelectedHtml) method throws an error when called in the source mode. -* [#13158](http://dev.ckeditor.com/ticket/13158): Fixed: Error after canceling a dialog when creating a widget. -* [#13197](http://dev.ckeditor.com/ticket/13197): Fixed: Linked inline [Enhanced Image](http://ckeditor.com/addon/image2) alignment class is not transferred to the widget wrapper. -* [#13199](http://dev.ckeditor.com/ticket/13199): Fixed: [Semantic Embed](http://ckeditor.com/addon/embedsemantic) does not support widget classes. -* [#13003](http://dev.ckeditor.com/ticket/13003): Fixed: Anchors are uploaded when moving them by drag and drop. -* [#13032](http://dev.ckeditor.com/ticket/13032): Fixed: When upload is done, notification update should be marked as important. -* [#13300](http://dev.ckeditor.com/ticket/13300): Fixed: The `internalCommit` argument in the [Image](http://ckeditor.com/addon/image) dialog seems to be never used. -* [#13036](http://dev.ckeditor.com/ticket/13036): Fixed: Notifications are moved 10px to the right. -* [#13280](http://dev.ckeditor.com/ticket/13280): [IE8] Fixed: Undo after inline widget drag&drop throws an error. -* [#13186](http://dev.ckeditor.com/ticket/13186): Fixed: Content dropped into a nested editable is not filtered by [Advanced Content Filter](http://docs.ckeditor.com/#!/guide/dev_acf). -* [#13140](http://dev.ckeditor.com/ticket/13140): Fixed: Error thrown when dropping a block widget right after itself. -* [#13176](http://dev.ckeditor.com/ticket/13176): [IE8] Fixed: Errors on drag&drop of embed widgets. -* [#13015](http://dev.ckeditor.com/ticket/13015): Fixed: Dropping an image file on [Enhanced Image](http://ckeditor.com/addon/image2) causes a page reload. -* [#13080](http://dev.ckeditor.com/ticket/13080): Fixed: Ugly notification shown when the response contains HTML content. -* [#13011](http://dev.ckeditor.com/ticket/13011): [IE8] Fixed: Anchors are duplicated on drag&drop in specific locations. -* [#13105](http://dev.ckeditor.com/ticket/13105): Fixed: Various issues related to [`CKEDITOR.tools.htmlEncode()`](http://docs.ckeditor.com/#!/api/CKEDITOR.tools-method-htmlEncode) and [`CKEDITOR.tools.htmlDecode()`](http://docs.ckeditor.com/#!/api/CKEDITOR.tools-method-htmlDecode) methods. -* [#11976](http://dev.ckeditor.com/ticket/11976): [Chrome] Fixed: Copy&paste and drag&drop lists from Microsoft Word. -* [#13128](http://dev.ckeditor.com/ticket/13128): Fixed: Various issues with cloning element IDs: - * Fixed the default behavior of [`range.cloneContents()`](http://docs.ckeditor.com/#!/api/CKEDITOR.dom.range-method-cloneContents) and [`range.extractContents()`](http://docs.ckeditor.com/#!/api/CKEDITOR.dom.range-method-extractContents) methods which now clone IDs similarly to their native counterparts. - * Added `cloneId` arguments to the above methods, [`range.splitBlock()`](http://docs.ckeditor.com/#!/api/CKEDITOR.dom.range-method-splitBlock) and [`element.breakParent()`](http://docs.ckeditor.com/#!/api/CKEDITOR.dom.element-method-breakParent). Mind the default values and special behavior in the `extractContents()` method! - * Fixed issues where IDs were lost on copy&paste and drag&drop. -* Toolbar configurators: - * [#13185](http://dev.ckeditor.com/ticket/13185): Fixed: Wrong position of the suggestion box if there is not enough space below the caret. - * [#13138](http://dev.ckeditor.com/ticket/13138): Fixed: The "Toggle empty elements" button label is unclear. - * [#13136](http://dev.ckeditor.com/ticket/13136): Fixed: Autocompleter is far too intrusive. - * [#13133](http://dev.ckeditor.com/ticket/13133): Fixed: Tab leaves the editor. - * [#13173](http://dev.ckeditor.com/ticket/13173): Fixed: [`config.removeButtons`](http://docs.ckeditor.com/#!/api/CKEDITOR.config-cfg-removeButtons) is ignored by the advanced toolbar configurator. - -Other Changes: - -* [#13119](http://dev.ckeditor.com/ticket/13119): Improved compatibility of editor skins ([Moono](http://ckeditor.com/addon/moono) and [Kama](http://ckeditor.com/addon/kama)) with external web page style sheets. -* Toolbar configurators: - * [#13147](http://dev.ckeditor.com/ticket/13147): Added buttons to the sticky toolbar. - * [#13207](http://dev.ckeditor.com/ticket/13207): Used modal window to display toolbar configurator help. -* [#13316](http://dev.ckeditor.com/ticket/13316): Made [`CKEDITOR.env.isCompatible`](http://docs.ckeditor.com/#!/api/CKEDITOR.env-property-isCompatible) a blacklist rather than a whitelist. More about the change in the [Browser Compatibility](http://docs.ckeditor.com/#!/guide/dev_browsers) guide. -* [#13398](http://dev.ckeditor.com/ticket/13398): Renamed `CKEDITOR.fileTools.UploadsRepository` to [`CKEDITOR.fileTools.UploadRepository`](http://docs.ckeditor.com/#!/api/CKEDITOR.fileTools.uploadRepository) and changed all related properties. -* [#13279](http://dev.ckeditor.com/ticket/13279): Reviewed CSS vendor prefixes. -* [#13454](http://dev.ckeditor.com/ticket/13454): Removed unused `lang.image.alertUrl` token from the [Image](http://ckeditor.com/addon/image) plugin. - -## CKEditor 4.5 Beta - -New Features: - -* Clipboard (copy&paste, drag&drop) and file uploading features and improvements ([#11437](http://dev.ckeditor.com/ticket/11437)). - - * Major features: - * Support for dropping and pasting files into the editor was introduced. Through a set of new facades for native APIs it is now possible to easily intercept and process inserted files. - * [File upload tools](http://docs.ckeditor.com/#!/api/CKEDITOR.fileTools) were introduced in order to simplify controlling the loading, uploading and handling server response, properly handle [new upload configuration](http://docs.ckeditor.com/#!/api/CKEDITOR.config-cfg-uploadUrl) options, etc. - * [Upload Image](http://ckeditor.com/addon/uploadimage) widget was introduced to upload dropped images. A base class for the [upload widget](http://docs.ckeditor.com/#!/api/CKEDITOR.fileTools.uploadWidgetDefinition) was exposed, too, to make it simple to create new types of upload widgets which can handle any type of dropped file, show the upload progress and update the content when the process is done. It also handles editing and undo/redo operations when a file is being uploaded and integrates with the [notification aggregator](http://docs.ckeditor.com/#!/api/CKEDITOR.plugins.notificationAggregator) to show progress and success or error. - * All drag and drop operations were integrated with the editor. All dropped content is passed through the [`editor#paste`](http://docs.ckeditor.com/#!/api/CKEDITOR.editor-event-paste) event and a set of new editor events was introduced &mdash; [`dragstart`](http://docs.ckeditor.com/#!/api/CKEDITOR.editor-event-dragstart), [`drop`](http://docs.ckeditor.com/#!/api/CKEDITOR.editor-event-drop), [`dragend`](http://docs.ckeditor.com/#!/api/CKEDITOR.editor-event-dragend). - * The [Data Transfer](http://docs.ckeditor.com/#!/api/CKEDITOR.plugins.clipboard.dataTransfer) facade was introduced to unify access to data in various types and files. [Data Transfer](http://docs.ckeditor.com/#!/api/CKEDITOR.plugins.clipboard.dataTransfer) is now always available in the [`editor#paste`](http://docs.ckeditor.com/#!/api/CKEDITOR.editor-event-paste) event. - * Switched from the pastebin to using the native clipboard access whenever possible. This solved many issues related to pastebin such as unnecessary scrolling or data loss. Additionally, on copy and cut from the editor the clipboard data is set. Therefore, on paste the editor has access to clean data, undisturbed by the browsers. - * Drag and drop of inline and block widgets was integrated with the standard clipboard APIs. By listening to drag events you will thus be notified about widgets, too. This opens a possibility to filter pasted and dropped widgets. - * The [`editor#paste`](http://docs.ckeditor.com/#!/api/CKEDITOR.editor-event-paste) event can have the `range` parameter so it is possible to change the paste position in the listener or paste in the not selectable position. Also the [`editor.insertHtml()`](http://docs.ckeditor.com/#!/api/CKEDITOR.editor-method-insertHtml) method now accepts `range` as an additional parameter. - * [#11621](http://dev.ckeditor.com/ticket/11621): A configurable [paste filter](http://docs.ckeditor.com/#!/api/CKEDITOR.config-cfg-pasteFilter) was introduced. The filter is by default turned to `'semantic-content'` on Webkit and Blink for all pasted content coming from external sources because of the low quality of HTML that these engines put into the clipboard. Internal and cross-editor paste is safe due to the change explained in the previous point. - - * Other changes and related fixes: - * [#12095](http://dev.ckeditor.com/ticket/12095): On drag and copy of widgets [the same method](http://docs.ckeditor.com/#!/api/CKEDITOR.editor-method-getSelectedHtml) is used to get selected HTML as in the normal case. Thanks to that styles applied to inline widgets are not lost. - * [#11219](http://dev.ckeditor.com/ticket/11219): Fixed: Dragging a [captioned image](http://ckeditor.com/addon/image2) does not fire the [`editor#paste`](http://docs.ckeditor.com/#!/api/CKEDITOR.editor-event-paste) event. - * [#9554](http://dev.ckeditor.com/ticket/9554): [Webkit Mac] Fixed: Editor scrolls on paste. - * [#9898](http://dev.ckeditor.com/ticket/9898): [Webkit&Divarea] Fixed: Pasting causes undesirable scrolling. - * [#11993](http://dev.ckeditor.com/ticket/11993): [Chrome] Fixed: Pasting content scrolls the document. - * [#12613](http://dev.ckeditor.com/ticket/12613): Show the user that they can not drop on editor UI (toolbar, bottom bar). - * [#12851](http://dev.ckeditor.com/ticket/12851): [Blink/Webkit] Fixed: Formatting disappears when pasting content into cells. - * [#12914](http://dev.ckeditor.com/ticket/12914): Fixed: Copy/Paste of table broken in `div`-based editor. - - * Browser support.<br>Browser support for related features varies significantly (see http://caniuse.com/clipboard). - * File APIs needed to operate and file upload is not supported in Internet Explorer 9 and below. - * Only Chrome and Safari on Mac OS support setting custom data items in the clipboard, so currently it is possible to recognize the origin of the copied content in these browsers only. All drag and drop operations can be identified thanks to the new Data Transfer facade. - * No Internet Explorer browser supports the standard clipboard API which results in small glitches like where only plain text can be dropped from outside the editor. Thanks to the new Data Transfer facade, internal and cross-editor drag and drop supports the full range of data. - * Direct access to clipboard could only be implemented in Chrome, Safari on Mac OS, Opera and Firefox. In other browsers the pastebin must still be used. - -* [#12875](http://dev.ckeditor.com/ticket/12875): Samples and toolbar configuration tools. - * The old set of samples shipped with every CKEditor package was replaced with a shiny new single-page sample. This change concluded a long term plan which started from introducing the [CKEditor SDK](http://sdk.ckeditor.com/) and [CKEditor Functionality Overview](http://docs.ckeditor.com/#!/guide/dev_features) section in the documentation which essentially redefined the old samples. - * Toolbar configurators with live previews were introduced. They will be shipped with every CKEditor package and are meant to help in configuring toolbar layouts. - -* [#10925](http://dev.ckeditor.com/ticket/10925): The [Media Embed](http://ckeditor.com/addon/embed) and [Semantic Media Embed](http://ckeditor.com/addon/embedsemantic) plugins were introduced. Read more about the new features in the [Embedding Content](http://docs.ckeditor.com/#!/guide/dev_media_embed) article. -* [#10931](http://dev.ckeditor.com/ticket/10931): Added support for nesting widgets. It is now possible to insert one widget into another widget's nested editable. Note that unless nested editable's [allowed content](http://docs.ckeditor.com/#!/api/CKEDITOR.plugins.widget.nestedEditable.definition-property-allowedContent) is defined precisely, starting from CKEditor 4.5 some widget buttons may become enabled. This feature is not supported in IE8. Included issues: - * [#12018](http://dev.ckeditor.com/ticket/12018): Fixed and reviewed: Nested widgets garbage collection. - * [#12024](http://dev.ckeditor.com/ticket/12024): [Firefox] Fixed: Outline is extended to the left by unpositioned drag handlers. - * [#12006](http://dev.ckeditor.com/ticket/12006): Fixed: Drag and drop of nested block widgets. - * [#12008](http://dev.ckeditor.com/ticket/12008): Fixed various cases of inserting a single non-editable element using the [`editor.insertHtml()`](http://docs.ckeditor.com/#!/api/CKEDITOR.editor-method-insertHtml) method. Fixes pasting a widget with a nested editable inside another widget's nested editable. - -* Notification system: - * [#11580](http://dev.ckeditor.com/ticket/11580): Introduced the [notification system](http://docs.ckeditor.com/#!/api/CKEDITOR.plugins.notification). - * [#12810](http://dev.ckeditor.com/ticket/12810): Introduced a [notification aggregator](http://docs.ckeditor.com/#!/api/CKEDITOR.plugins.notificationAggregator) for the [notification system](http://docs.ckeditor.com/#!/api/CKEDITOR.plugins.notification) which simplifies displaying progress of many concurrent tasks. -* [#11636](http://dev.ckeditor.com/ticket/11636): Introduced new, UX-focused, methods for getting selected HTML and deleting it &mdash; [`editor.getSelectedHtml()`](http://docs.ckeditor.com/#!/api/CKEDITOR.editor-method-getSelectedHtml) and [`editor.extractSelectedHtml()`](http://docs.ckeditor.com/#!/api/CKEDITOR.editor-method-extractSelectedHtml). -* [#12416](http://dev.ckeditor.com/ticket/12416): Added the [`widget.definition.upcastPriority`](http://docs.ckeditor.com/#!/api/CKEDITOR.plugins.widget.definition-property-upcastPriority) property which gives more control over widget upcasting order to the widget author. -* [#12036](http://dev.ckeditor.com/ticket/12036): Initialize the editor in [read-only](http://docs.ckeditor.com/#!/api/CKEDITOR.editor-property-readOnly) mode when the `<textarea>` element has a `readonly` attribute. -* [#11905](http://dev.ckeditor.com/ticket/11905): The [`resize` event](http://docs.ckeditor.com/#!/api/CKEDITOR.editor-event-resize) passes the current dimensions in its data. -* [#12126](http://dev.ckeditor.com/ticket/12126): Introduced [`config.image_prefillDimensions`](http://docs.ckeditor.com/#!/api/CKEDITOR.config-cfg-image_prefillDimensions) and [`config.image2_prefillDimensions`](http://docs.ckeditor.com/#!/api/CKEDITOR.config-cfg-image2_prefillDimensions) to make pre-filling `width` and `height` configurable for the [Enhanced Image](http://ckeditor.com/addon/image2). -* [#12746](http://dev.ckeditor.com/ticket/12746): Added a new configuration option to hide the [Enhanced Image](http://ckeditor.com/addon/image2) resizer. -* [#12150](http://dev.ckeditor.com/ticket/12150): Exposed the [`getNestedEditable()`](http://docs.ckeditor.com/#!/api/CKEDITOR.plugins.widget-static-method-getNestedEditable) and `is*` [widget helper](http://docs.ckeditor.com/#!/api/CKEDITOR.plugins.widget) functions (see the static methods). -* [#12448](http://dev.ckeditor.com/ticket/12448): Introduced the [`editable.insertHtmlIntoRange`](http://docs.ckeditor.com/#!/api/CKEDITOR.editable-method-insertHtmlIntoRange) method. -* [#12143](http://dev.ckeditor.com/ticket/12143): Added the [`config.floatSpacePreferRight`](http://docs.ckeditor.com/#!/api/CKEDITOR.config-cfg-floatSpacePreferRight) configuration option that switches the alignment of the floating toolbar. Thanks to [InvisibleBacon](http://github.com/InvisibleBacon)! -* [#10986](http://dev.ckeditor.com/ticket/10986): Added support for changing dialog input and textarea text directions by using the *Shift+Alt+Home/End* keystrokes. The direction is stored in the value of the input by prepending the [`\u202A`](http://unicode.org/cldr/utility/character.jsp?a=202A) or [`\u202B`](http://unicode.org/cldr/utility/character.jsp?a=202B) marker to it. Read more in the [documentation](http://docs.ckeditor.com/#!/api/CKEDITOR.dialog.definition.textInput-property-bidi). Thanks to [edithkk](https://github.com/edithkk)! -* [#12770](http://dev.ckeditor.com/ticket/12770): Added support for passing [widget](http://docs.ckeditor.com/#!/api/CKEDITOR.plugins.widget)'s startup data as a widget command's argument. Thanks to [Rebrov Boris](https://github.com/zipp3r) and [Tieme van Veen](https://github.com/tiemevanveen)! -* [#11583](http://dev.ckeditor.com/ticket/11583): Added support for the HTML5 `required` attribute in various form elements. Thanks to [Steven Busse](https://github.com/sbusse)! - -Changes: - -* [#12858](http://dev.ckeditor.com/ticket/12858): Basic [Spartan](http://blogs.windows.com/bloggingwindows/2015/03/30/introducing-project-spartan-the-new-browser-built-for-windows-10/) browser compatibility. Full compatibility will be introduced later, because at the moment Spartan is still too unstable to be used for tests and we see many changes from version to version. -* [#12948](http://dev.ckeditor.com/ticket/12948): The [`config.mathJaxLibrary`](http://docs.ckeditor.com/#!/api/CKEDITOR.config-cfg-mathJaxLib) option does not default to the MathJax CDN any more. It needs to be configured to enable the [Mathematical Formulas](http://ckeditor.com/addon/mathjax) plugin now. -* [#13069](http://dev.ckeditor.com/ticket/13069): Fixed inconsistencies between [`editable.insertHtml()`](http://docs.ckeditor.com/#!/api/CKEDITOR.editable-method-insertElement) and [`editable.insertElement()`](http://docs.ckeditor.com/#!/api/CKEDITOR.editable-method-insertElement) when the `range` parameter is used. Now, the `editor.insertElement()` method works on a higher level, which means that it saves undo snapshots and sets the selection after insertion. Use the [`editable.insertElementIntoRange()`](http://docs.ckeditor.com/#!/api/CKEDITOR.editable-method-insertElementIntoRange) method directly for the pre 4.5 behavior of `editable.insertElement()`. -* [#12870](http://dev.ckeditor.com/ticket/12870): Use [`editor.showNotification()`](http://docs.ckeditor.com/#!/api/CKEDITOR.editor-method-showNotification) instead of `alert()` directly whenever possible. When the [Notification plugin](http://ckeditor.com/addon/notification) is loaded, the notification system is used automatically. Otherwise, the native `alert()` is displayed. -* [#8024](http://dev.ckeditor.com/ticket/8024): Swapped behavior of the Split Cell Vertically and Horizontally features of the [Table Tools](http://ckeditor.com/addon/tabletools) plugin to be more intuitive. Thanks to [kevinisagit](https://github.com/kevinisagit)! -* [#10903](http://dev.ckeditor.com/ticket/10903): Performance improvements for the [`dom.element.addClass()`](http://docs.ckeditor.com/#!/api/CKEDITOR.dom.element-method-addClass), [`dom.element.removeClass()`](http://docs.ckeditor.com/#!/api/CKEDITOR.dom.element-method-removeClass) and [`dom.element.hasClass()`](http://docs.ckeditor.com/#!/api/CKEDITOR.dom.element-method-hasClass) methods. Note: The previous implementation allowed passing multiple classes to `addClass()` although it was only a side effect of that implementation. The new implementation does not allow this. -* [#11856](http://dev.ckeditor.com/ticket/11856): The jQuery adapter throws a meaningful error if CKEditor or jQuery are not loaded. - -Fixed issues: - -* [#11586](http://dev.ckeditor.com/ticket/11586): Fixed: [`range.cloneContents()`](http://docs.ckeditor.com/#!/api/CKEDITOR.dom.range-method-cloneContents) should not change the DOM in order not to affect selection. -* [#12148](http://dev.ckeditor.com/ticket/12148): Fixed: [`dom.element.getChild()`](http://docs.ckeditor.com/#!/api/CKEDITOR.dom.element-method-getChild) should not modify a passed array. -* [#12503](http://dev.ckeditor.com/ticket/12503): [Blink/Webkit] Fixed: Incorrect result of Select All and *Backspace* or *Delete*. -* [#13001](http://dev.ckeditor.com/ticket/13001): [Firefox] Fixed: The `<br />` filler is placed in the wrong position by the [`range.fixBlock()`](http://docs.ckeditor.com/#!/api/CKEDITOR.dom.range-method-fixBlock) method due to quirky Firefox behavior. -* [#13101](http://dev.ckeditor.com/ticket/13101): [IE8] Fixed: Colons are prepended to HTML5 element names when cloning them. - -## CKEditor 4.4.8 - -**Security Updates:** - -* Fixed XSS vulnerability in the HTML parser reported by [Dheeraj Joshi](https://twitter.com/dheerajhere) and [Prem Kumar](https://twitter.com/iAmPr3m). - - Issue summary: It was possible to execute XSS inside CKEditor after persuading the victim to: (i) switch CKEditor to source mode, then (ii) paste a specially crafted HTML code, prepared by the attacker, into the opened CKEditor source area, and (iii) switch back to WYSIWYG mode. - -**An upgrade is highly recommended!** - -Fixed Issues: - -* [#12899](http://dev.ckeditor.com/ticket/12899): Fixed: Corrected wrong tag ending for horizontal box definition in the [Dialog User Interface](http://ckeditor.com/addon/dialogui) plugin. Thanks to [mizafish](https://github.com/mizafish)! -* [#13254](http://dev.ckeditor.com/ticket/13254): Fixed: Cannot outdent block after indent when using the [Div Editing Area](http://ckeditor.com/addon/divarea) plugin. Thanks to [Jonathan Cottrill](https://github.com/jcttrll)! -* [#13268](http://dev.ckeditor.com/ticket/13268): Fixed: Documentation for [`CKEDITOR.dom.text`](http://docs.ckeditor.com/#!/api/CKEDITOR.dom.text) is incorrect. Thanks to [Ben Kiefer](https://github.com/benkiefer)! -* [#12739](http://dev.ckeditor.com/ticket/12739): Fixed: Link loses inline styles when edited without the [Advanced Tab for Dialogs](http://ckeditor.com/addon/dialogadvtab) plugin. Thanks to [Віталій Крутько](https://github.com/asmforce)! -* [#13292](http://dev.ckeditor.com/ticket/13292): Fixed: Protection pattern does not work in attribute in self-closing elements with no space before `/>`. Thanks to [Віталій Крутько](https://github.com/asmforce)! -* [PR#192](https://github.com/ckeditor/ckeditor-dev/pull/192): Fixed: Variable name typo in the [Dialog User Interface](http://ckeditor.com/addon/dialogui) plugin which caused [`CKEDITOR.ui.dialog.radio`](http://docs.ckeditor.com/#!/api/CKEDITOR.ui.dialog.radio) validation to not work. Thanks to [Florian Ludwig](https://github.com/FlorianLudwig)! -* [#13232](http://dev.ckeditor.com/ticket/13232): [Safari] Fixed: The [`element.appendText()`](http://docs.ckeditor.com/#!/api/CKEDITOR.dom.element-method-appendText) method does not work properly for empty elements. -* [#13233](http://dev.ckeditor.com/ticket/13233): Fixed: [HTMLDataProcessor](http://docs.ckeditor.com/#!/api/CKEDITOR.htmlDataProcessor) can process `foo:href` attributes. -* [#12796](http://dev.ckeditor.com/ticket/12796): Fixed: The [Indent List](http://ckeditor.com/addon/indentlist) plugin unwraps parent `<li>` elements. Thanks to [Andrew Stucki](https://github.com/andrewstucki)! -* [#12885](http://dev.ckeditor.com/ticket/12885): Added missing [`editor.getData()`](http://docs.ckeditor.com/#!/api/CKEDITOR.editor-method-getData) parameter documentation. -* [#11982](http://dev.ckeditor.com/ticket/11982): Fixed: Bullet added in a wrong position after the *Enter* key is pressed in a nested list. -* [#13027](http://dev.ckeditor.com/ticket/13027): Fixed: Keyboard navigation in dialog windows with multiple tabs not following IBM CI 162 instructions or [ARIA Authoring Practices](http://www.w3.org/TR/2013/WD-wai-aria-practices-20130307/#tabpanel). -* [#12256](http://dev.ckeditor.com/ticket/12256): Fixed: Basic styles classes are lost when pasting from Microsoft Word if [basic styles](http://ckeditor.com/addon/basicstyles) were configured to use classes. -* [#12729](http://dev.ckeditor.com/ticket/12729): Fixed: Incorrect structure created when merging a block into a list item on *Backspace* and *Delete*. -* [#13031](http://dev.ckeditor.com/ticket/13031): [Firefox] Fixed: No more line breaks in source view since Firefox 36. -* [#13131](http://dev.ckeditor.com/ticket/13131): Fixed: The [Code Snippet](http://ckeditor.com/addon/codesnippet) plugin cannot be used without the [IFrame Editing Area](http://ckeditor.com/addon/wysiwygarea) plugin. -* [#9086](http://dev.ckeditor.com/ticket/9086): Fixed: Invalid ARIA property used on paste area `<iframe>`. -* [#13164](http://dev.ckeditor.com/ticket/13164): Fixed: Error when inserting a hidden field. -* [#13155](http://dev.ckeditor.com/ticket/13155): Fixed: Incorrect [Line Utilities](http://ckeditor.com/addon/lineutils) positioning when `<body>` has a margin. -* [#13351](http://dev.ckeditor.com/ticket/13351): Fixed: Link lost when editing a linked image with the Link tab disabled. This also fixed a bug when inserting an image into a fully selected link would throw an error ([#12847](https://dev.ckeditor.com/ticket/12847)). -* [#13344](http://dev.ckeditor.com/ticket/13344): [WebKit/Blink] Fixed: It is possible to remove or change editor content in [read-only mode](http://docs.ckeditor.com/#!/guide/dev_readonly). - -Other Changes: - -* [#12844](http://dev.ckeditor.com/ticket/12844) and [#13103](http://dev.ckeditor.com/ticket/13103): Upgraded the [testing environment](http://docs.ckeditor.com/#!/guide/dev_tests) to [Bender.js](https://github.com/benderjs/benderjs) `0.2.3`. -* [#12930](http://dev.ckeditor.com/ticket/12930): Because of licensing issues, `truncated-mathjax/` is now removed from the `tests/` directory. Now `bender.config.mathJaxLibPath` must be configured manually in order to run [Mathematical Formulas](http://ckeditor.com/addon/mathjax) plugin tests. -* [#13266](http://dev.ckeditor.com/ticket/13266): Added more shades of gray in the [Color Dialog](http://ckeditor.com/addon/colordialog) window. Thanks to [mizafish](https://github.com/mizafish)! - - -## CKEditor 4.4.7 - -Fixed Issues: - -* [#12825](http://dev.ckeditor.com/ticket/12825): Fixed: Preventing the [Table Resize](http://ckeditor.com/addon/tableresize) plugin from operating on elements outside the editor. Thanks to [Paul Martin](https://github.com/Paul-Martin)! -* [#12157](http://dev.ckeditor.com/ticket/12157): Fixed: Lost text formatting on pressing *Tab* when the [`config.tabSpaces`](http://docs.ckeditor.com/#!/api/CKEDITOR.config-cfg-tabSpaces) configuration option value was greater than zero. -* [#12777](http://dev.ckeditor.com/ticket/12777): Fixed: The `table-layout` CSS property should be reset by skins. Thanks to [vita10gy](https://github.com/vita10gy)! -* [#12812](http://dev.ckeditor.com/ticket/12812): Fixed: An uncaught security exception is thrown when [Line Utilities](http://ckeditor.com/addon/lineutils) are used in an inline editor loaded in a cross-domain `iframe`. Thanks to [Vitaliy Zurian](https://github.com/thecatontheflat)! -* [#12735](http://dev.ckeditor.com/ticket/12735): Fixed: [`config.fillEmptyBlocks`](http://docs.ckeditor.com/#!/api/CKEDITOR.config-cfg-fillEmptyBlocks) should only apply when outputting data. -* [#10032](http://dev.ckeditor.com/ticket/10032): Fixed: [Paste from Word](http://ckeditor.com/addon/pastefromword) filter is executed for every paste after using the button. -* [#12597](http://dev.ckeditor.com/ticket/12597): [Blink/WebKit] Fixed: Multi-byte Japanese characters entry not working properly after *Shift+Enter*. -* [#12387](http://dev.ckeditor.com/ticket/12387): Fixed: An error is thrown if a skin does not have the [`chameleon`](http://docs.ckeditor.com/#!/api/CKEDITOR.skin-method-chameleon) property defined and [`config.uiColor`](http://docs.ckeditor.com/#!/api/CKEDITOR.config-cfg-uiColor) is defined. -* [#12747](http://dev.ckeditor.com/ticket/12747): [IE8-10] Fixed: Opening a drop-down for a specific selection when the editor is maximized results in incorrect drop-down panel position. -* [#12850](http://dev.ckeditor.com/ticket/12850): [IEQM] Fixed: An error is thrown after focusing the editor. - -## CKEditor 4.4.6 - -**Security Updates:** - -* Fixed XSS vulnerability in the HTML parser reported by [Maco Cortes](https://www.facebook.com/Maaacoooo). - - Issue summary: It was possible to execute XSS inside CKEditor after persuading the victim to: (i) switch CKEditor to source mode, then (ii) paste a specially crafted HTML code, prepared by the attacker, into the opened CKEditor source area, and (iii) switch back to WYSIWYG mode. - -**An upgrade is highly recommended!** - -New Features: - -* [#12501](http://dev.ckeditor.com/ticket/12501): Allowed dashes in element names in the [string format of allowed content rules](http://docs.ckeditor.com/#!/guide/dev_allowed_content_rules-section-string-format). -* [#12550](http://dev.ckeditor.com/ticket/12550): Added the `<main>` element to the [`CKEDITOR.dtd`](http://docs.ckeditor.com/#!/api/CKEDITOR.dtd). - -Fixed Issues: - -* [#12506](http://dev.ckeditor.com/ticket/12506): [Safari] Fixed: Cannot paste into inline editor if the page has `user-select: none` style. Thanks to [shaohua](https://github.com/shaohua)! -* [#12683](http://dev.ckeditor.com/ticket/12683): Fixed: [Filter](http://docs.ckeditor.com/#!/guide/dev_acf) fails to remove custom tags. Thanks to [timselier](https://github.com/timselier)! -* [#12489](http://dev.ckeditor.com/ticket/12489) and [#12491](http://dev.ckeditor.com/ticket/12491): Fixed: Various issues related to restoring the selection after performing operations on filler character. See the [fixed cases](http://dev.ckeditor.com/ticket/12491#comment:4). -* [#12621](http://dev.ckeditor.com/ticket/12621): Fixed: Cannot remove inline styles (bold, italic, etc.) in empty lines. -* [#12630](http://dev.ckeditor.com/ticket/12630): [Chrome] Fixed: Selection is placed outside the paragraph when the [New Page](http://ckeditor.com/addon/newpage) button is clicked. This patch significantly simplified the way how the initial selection (a selection after the content of the editable is overwritten) is being fixed. That might have fixed many related scenarios in all browsers. -* [#11647](http://dev.ckeditor.com/ticket/11647): Fixed: The [`editor.blur`](http://docs.ckeditor.com/#!/api/CKEDITOR.editor-event-blur) event is not fired on first blur after initializing the inline editor on an already focused element. -* [#12601](http://dev.ckeditor.com/ticket/12601): Fixed: [Strikethrough](http://ckeditor.com/addon/basicstyles) button tooltip spelling. -* [#12546](http://dev.ckeditor.com/ticket/12546): Fixed: The Preview tab in the [Document Properties](http://ckeditor.com/addon/docprops) dialog window is always disabled. -* [#12300](http://dev.ckeditor.com/ticket/12300): Fixed: The [`editor.change`](http://docs.ckeditor.com/#!/api/CKEDITOR.editor-event-change) event fired on first navigation key press after typing. -* [#12141](http://dev.ckeditor.com/ticket/12141): Fixed: List items are lost when indenting a list item with content wrapped with a block element. -* [#12515](http://dev.ckeditor.com/ticket/12515): Fixed: Cursor is in the wrong position when undoing after adding an image and typing some text. -* [#12484](http://dev.ckeditor.com/ticket/12484): [Blink/WebKit] Fixed: DOM is changed outside the editor area in a certain case. -* [#12688](http://dev.ckeditor.com/ticket/12688): Improved the tests of the [styles system](http://docs.ckeditor.com/#!/api/CKEDITOR.style) and fixed two minor issues. -* [#12403](http://dev.ckeditor.com/ticket/12403): Fixed: Changing the [font](http://ckeditor.com/addon/font) style should not lead to nesting it in the previous style element. -* [#12609](http://dev.ckeditor.com/ticket/12609): Fixed: Incorrect `config.magicline_putEverywhere` name used for a [Magic Line](http://ckeditor.com/addon/magicline) all-encompassing [`config.magicline_everywhere`](http://docs.ckeditor.com/#!/api/CKEDITOR.config-cfg-magicline_everywhere) configuration option. - - -## CKEditor 4.4.5 - -New Features: - -* [#12279](http://dev.ckeditor.com/ticket/12279): Added a possibility to pass a custom evaluator to [`node.getAscendant()`](http://docs.ckeditor.com/#!/api/CKEDITOR.dom.node-method-getAscendant). - -Fixed Issues: - -* [#12423](http://dev.ckeditor.com/ticket/12423): [Safari7.1+] Fixed: *Enter* key moved cursor to a strange position. -* [#12381](http://dev.ckeditor.com/ticket/12381): [iOS] Fixed: Selection issue. Thanks to [Remiremi](https://github.com/Remiremi)! -* [#10804](http://dev.ckeditor.com/ticket/10804): Fixed: `CKEDITOR_GETURL` is not used with some plugins where it should be used. Thanks to [Thomas Andraschko](https://github.com/tandraschko)! -* [#9137](http://dev.ckeditor.com/ticket/9137): Fixed: The `<base>` tag is not created when `<head>` has an attribute. Thanks to [naoki.fujikawa](https://github.com/naoki-fujikawa)! -* [#12377](http://dev.ckeditor.com/ticket/12377): Fixed: Errors thrown in the [Image](http://ckeditor.com/addon/image) plugin when removing preview from the dialog window definition. Thanks to [Axinet](https://github.com/Axinet)! -* [#12162](http://dev.ckeditor.com/ticket/12162): Fixed: Auto paragraphing and *Enter* key in nested editables. -* [#12315](http://dev.ckeditor.com/ticket/12315): Fixed: Marked [`config.autoParagraph`](http://docs.ckeditor.com/#!/api/CKEDITOR.config-cfg-autoParagraph) as deprecated. -* [#12113](http://dev.ckeditor.com/ticket/12113): Fixed: A [code snippet](http://ckeditor.com/addon/codesnippet) should be presented in the [elements path](http://ckeditor.com/addon/elementspath) as "code snippet" (translatable). -* [#12311](http://dev.ckeditor.com/ticket/12311): Fixed: [Remove Format](http://ckeditor.com/addon/removeformat) should also remove `<cite>` elements. -* [#12261](http://dev.ckeditor.com/ticket/12261): Fixed: Filter has to be destroyed and removed from [`CKEDITOR.filter.instances`](http://docs.ckeditor.com/#!/api/CKEDITOR.filter-static-property-instances) on editor destroy. -* [#12398](http://dev.ckeditor.com/ticket/12398): Fixed: [Maximize](http://ckeditor.com/addon/maximize) does not work on an instance without a [title](http://docs.ckeditor.com/#!/api/CKEDITOR.config-cfg-title). -* [#12097](http://dev.ckeditor.com/ticket/12097): Fixed: JAWS not reading the number of options correctly in the [Text Color and Background Color](http://ckeditor.com/addon/colorbutton) button menu. -* [#12411](http://dev.ckeditor.com/ticket/12411): Fixed: [Page Break](http://ckeditor.com/addon/pagebreak) used directly in the editable breaks the editor. -* [#12354](http://dev.ckeditor.com/ticket/12354): Fixed: Various issues in undo manager when holding keys. -* [#12324](http://dev.ckeditor.com/ticket/12324): [IE8] Fixed: Undo steps are not recorded when changing the caret position by clicking below the body. -* [#12332](http://dev.ckeditor.com/ticket/12332): Fixed: Lowered DOM events listeners' priorities in undo manager in order to avoid ambiguity. -* [#12402](http://dev.ckeditor.com/ticket/12402): [Blink] Fixed: Workaround for Blink bug with `document.title` which breaks updating title in the full HTML mode. -* [#12338](http://dev.ckeditor.com/ticket/12338): Fixed: The CKEditor package contains unoptimized images. - - -## CKEditor 4.4.4 - -Fixed Issues: - -* [#12268](http://dev.ckeditor.com/ticket/12268): Cleanup of [UI Color](http://ckeditor.com/addon/uicolor) YUI styles. Thanks to [CasherWest](https://github.com/CasherWest)! -* [#12263](http://dev.ckeditor.com/ticket/12263): Fixed: [Paste from Word](http://ckeditor.com/addon/pastefromword) filter does not properly normalize semicolons style text. Thanks to [Alin Purcaru](https://github.com/mesmerizero)! -* [#12243](http://dev.ckeditor.com/ticket/12243): Fixed: Text formatting lost when pasting from Word. Thanks to [Alin Purcaru](https://github.com/mesmerizero)! -* [#111739](http://dev.ckeditor.com/ticket/11739): Fixed: `keypress` listeners should not be used in the undo manager. A complete rewrite of keyboard handling in the undo manager was made. Numerous smaller issues were fixed, among others: - * [#10926](http://dev.ckeditor.com/ticket/10926): [Chrome@Android] Fixed: Typing does not record snapshots and does not fire the [`editor.change`](http://docs.ckeditor.com/#!/api/CKEDITOR.editor-event-change) event. - * [#11611](http://dev.ckeditor.com/ticket/11611): [Firefox] Fixed: The [`editor.change`](http://docs.ckeditor.com/#!/api/CKEDITOR.editor-event-change) event is fired when pressing Arrow keys. - * [#12219](http://dev.ckeditor.com/ticket/12219): [Safari] Fixed: Some modifications of the [`UndoManager.locked`](http://docs.ckeditor.com/#!/api/CKEDITOR.plugins.undo.UndoManager-property-locked) property violate strict mode in the [Undo](http://ckeditor.com/addon/undo) plugin. -* [#10916](http://dev.ckeditor.com/ticket/10916): Fixed: [Magic Line](http://ckeditor.com/addon/magicline) icon in Right-To-Left environments. -* [#11970](http://dev.ckeditor.com/ticket/11970): [IE] Fixed: CKEditor `paste` event is not fired when pasting with *Shift+Ins*. -* [#12111](http://dev.ckeditor.com/ticket/12111): Fixed: Linked image attributes are not read when opening the image dialog window by doubleclicking. -* [#10030](http://dev.ckeditor.com/ticket/10030): [IE] Fixed: Prevented "Unspecified Error" thrown in various cases when IE8-9 does not allow access to `document.activeElement`. -* [#12273](http://dev.ckeditor.com/ticket/12273): Fixed: Applying block style in a description list breaks it. -* [#12218](http://dev.ckeditor.com/ticket/12218): Fixed: Minor syntax issue in CSS files. -* [#12178](http://dev.ckeditor.com/ticket/12178): [Blink/WebKit] Fixed: Iterator does not return the block if the selection is located at the end of it. -* [#12185](http://dev.ckeditor.com/ticket/12185): [IE9QM] Fixed: Error thrown when moving the mouse over focused editor's scrollbar. -* [#12215](http://dev.ckeditor.com/ticket/12215): Fixed: Basepath resolution does not recognize semicolon as a query separator. -* [#12135](http://dev.ckeditor.com/ticket/12135): Fixed: [Remove Format](http://ckeditor.com/addon/removeformat) does not work on widgets. -* [#12298](http://dev.ckeditor.com/ticket/12298): [IE11] Fixed: Clicking below `<body>` in Compatibility Mode will no longer reset selection to the first line. -* [#12204](http://dev.ckeditor.com/ticket/12204): Fixed: Editor's voice label is not affected by [`config.title`](http://docs.ckeditor.com/#!/api/CKEDITOR.config-cfg-title). -* [#11915](http://dev.ckeditor.com/ticket/11915): Fixed: With [SCAYT](http://ckeditor.com/addon/scayt) enabled, cursor moves to the beginning of the first highlighted, misspelled word after typing or pasting into the editor. -* [SCAYT](https://github.com/WebSpellChecker/ckeditor-plugin-scayt/issues/69): Fixed: Error thrown in the console after enabling [SCAYT](http://ckeditor.com/addon/scayt) and trying to add a new image. - - -Other Changes: - -* [#12296](http://dev.ckeditor.com/ticket/12296): Merged `benderjs-ckeditor` into the main CKEditor repository. - -## CKEditor 4.4.3 - -**Security Updates:** - -* Fixed XSS vulnerability in the Preview plugin reported by Mario Heiderich of [Cure53](https://cure53.de/). - -**An upgrade is highly recommended!** - -New Features: - -* [#12164](http://dev.ckeditor.com/ticket/12164): Added the "Justify" option to the "Horizontal Alignment" drop-down in the Table Cell Properties dialog window. - -Fixed Issues: - -* [#12110](http://dev.ckeditor.com/ticket/12110): Fixed: Editor crash after deleting a table. Thanks to [Alin Purcaru](https://github.com/mesmerizero)! -* [#11897](http://dev.ckeditor.com/ticket/11897): Fixed: *Enter* key used in an empty list item creates a new line instead of breaking the list. Thanks to [noam-si](https://github.com/noam-si)! -* [#12140](http://dev.ckeditor.com/ticket/12140): Fixed: Double-clicking linked widgets opens two dialog windows. -* [#12132](http://dev.ckeditor.com/ticket/12132): Fixed: Image is inserted with `width` and `height` styles even when they are not allowed. -* [#9317](http://dev.ckeditor.com/ticket/9317): [IE] Fixed: [`config.disableObjectResizing`](http://docs.ckeditor.com/#!/api/CKEDITOR.config-cfg-disableObjectResizing) does not work on IE. **Note**: We were not able to fix this issue on IE11+ because necessary events stopped working. See a [last resort workaround](http://dev.ckeditor.com/ticket/9317#comment:16) and make sure to [support our complaint to Microsoft](https://connect.microsoft.com/IE/feedback/details/742593/please-respect-execcommand-enableobjectresizing-in-contenteditable-elements). -* [#9638](http://dev.ckeditor.com/ticket/9638): Fixed: There should be no information about accessibility help available under the *Alt+0* keyboard shortcut if the [Accessibility Help](http://ckeditor.com/addon/a11yhelp) plugin is not available. -* [#8117](http://dev.ckeditor.com/ticket/8117) and [#9186](http://dev.ckeditor.com/ticket/9186): Fixed: In HTML5 `<meta>` tags should be allowed everywhere, including inside the `<body>` element. -* [#10422](http://dev.ckeditor.com/ticket/10422): Fixed: [`config.fillEmptyBlocks`](http://docs.ckeditor.com/#!/api/CKEDITOR.config-cfg-fillEmptyBlocks) not working properly if a function is specified. - -## CKEditor 4.4.2 - -Important Notes: - -* The CKEditor testing environment is now publicly available. Read more about how to set up the environment and execute tests in the [CKEditor Testing Environment](http://docs.ckeditor.com/#!/guide/dev_tests) guide. - Please note that the [`tests/`](https://github.com/ckeditor/ckeditor-dev/tree/master/tests) directory which contains editor tests is not available in release packages. It can only be found in the development version of CKEditor on [GitHub](https://github.com/ckeditor/ckeditor-dev/). - -New Features: - -* [#11909](http://dev.ckeditor.com/ticket/11909): Introduced a parameter to prevent the [`editor.setData()`](http://docs.ckeditor.com/#!/api/CKEDITOR.editor-method-setData) method from recording undo snapshots. - -Fixed Issues: - -* [#11757](http://dev.ckeditor.com/ticket/11757): Fixed: Imperfections in the [Moono](http://ckeditor.com/addon/moono) skin. Thanks to [danyaPostfactum](https://github.com/danyaPostfactum)! -* [#10091](http://dev.ckeditor.com/ticket/10091): Blockquote should be treated like an object by the styles system. Thanks to [dan-james-deeson](https://github.com/dan-james-deeson)! -* [#11478](http://dev.ckeditor.com/ticket/11478): Fixed: Issue with passing jQuery objects to [adapter](http://docs.ckeditor.com/#!/guide/dev_jquery) configuration. -* [#10867](http://dev.ckeditor.com/ticket/10867): Fixed: Issue with setting encoded URI as image link. -* [#11983](http://dev.ckeditor.com/ticket/11983): Fixed: Clicking a nested widget does not focus it. Additionally, performance of the [`widget.repository.getByElement()`](http://docs.ckeditor.com/#!/api/CKEDITOR.plugins.widget.repository-method-getByElement) method was improved. -* [#12000](http://dev.ckeditor.com/ticket/12000): Fixed: Nested widgets should be initialized on [`editor.setData()`](http://docs.ckeditor.com/#!/api/CKEDITOR.editor-method-setData) and [`nestedEditable.setData()`](http://docs.ckeditor.com/#!/api/CKEDITOR.plugins.widget.nestedEditable-method-setData). -* [#12022](http://dev.ckeditor.com/ticket/12022): Fixed: Outer widget's drag handler is not created at all if it has any nested widgets inside. -* [#11960](http://dev.ckeditor.com/ticket/11960): [Blink/WebKit] Fixed: The caret should be scrolled into view on *Backspace* and *Delete* (covers only the merging blocks case). -* [#11306](http://dev.ckeditor.com/ticket/11306): [OSX][Blink/WebKit] Fixed: No widget entries in the context menu on widget right-click. -* [#11957](http://dev.ckeditor.com/ticket/11957): Fixed: Alignment labels in the [Enhanced Image](http://ckeditor.com/addon/image2) dialog window are not translated. -* [#11980](http://dev.ckeditor.com/ticket/11980): [Blink/WebKit] Fixed: `<span>` elements created when joining adjacent elements (non-collapsed selection). -* [#12009](http://dev.ckeditor.com/ticket/12009): [Nested widgets] Integration with the [Magic Line](http://ckeditor.com/addon/magicline) plugin. -* [#11387](http://dev.ckeditor.com/ticket/11387): Fixed: `role="radiogroup"` should be applied only to radio inputs' container. -* [#7975](http://dev.ckeditor.com/ticket/7975): [IE8] Fixed: Errors when trying to select an empty table cell. -* [#11947](http://dev.ckeditor.com/ticket/11947): [Firefox+IE11] Fixed: *Shift+Enter* in lists produces two line breaks. -* [#11972](http://dev.ckeditor.com/ticket/11972): Fixed: Feature detection in the [`element.setText()`](http://docs.ckeditor.com/#!/api/CKEDITOR.dom.element-method-setText) method should not trigger the layout engine. -* [#7634](http://dev.ckeditor.com/ticket/7634): Fixed: The [Flash Dialog](http://ckeditor.com/addon/flash) plugin omits the `allowFullScreen` parameter in the editor data if set to `true`. -* [#11910](http://dev.ckeditor.com/ticket/11910): Fixed: [Enhanced Image](http://ckeditor.com/addon/image2) does not take [`config.baseHref`](http://docs.ckeditor.com/#!/api/CKEDITOR.config-cfg-baseHref) into account when updating image dimensions. -* [#11753](http://dev.ckeditor.com/ticket/11753): Fixed: Wrong [`checkDirty()`](http://docs.ckeditor.com/#!/api/CKEDITOR.editor-method-checkDirty) method value after focusing or blurring a widget. -* [#11830](http://dev.ckeditor.com/ticket/11830): Fixed: Impossible to pass some arguments to [CKBuilder](https://github.com/ckeditor/ckbuilder) when using the `/dev/builder/build.sh` script. -* [#11945](http://dev.ckeditor.com/ticket/11945): Fixed: [Form Elements](http://ckeditor.com/addon/forms) plugin should not change a core method. -* [#11384](http://dev.ckeditor.com/ticket/11384): [IE9+] Fixed: `IndexSizeError` thrown when pasting into a non-empty selection anchored in one text node. - -## CKEditor 4.4.1 - -New Features: - -* [#9661](http://dev.ckeditor.com/ticket/9661): Added the option to [configure](http://docs.ckeditor.com/#!/api/CKEDITOR.config-cfg-linkJavaScriptLinksAllowed) anchor tags with JavaScript code in the `href` attribute. - -Fixed Issues: - -* [#11861](http://dev.ckeditor.com/ticket/11861): [WebKit/Blink] Fixed: Span elements created while joining adjacent elements. **Note:** This patch only covers cases when *Backspace* or *Delete* is pressed on a collapsed (empty) selection. The remaining case, with a non-empty selection, will be fixed in the next release. -* [#10714](http://dev.ckeditor.com/ticket/10714): [iOS] Fixed: Selection and drop-downs are broken if a touch event listener is used due to a [WebKit bug](https://bugs.webkit.org/show_bug.cgi?id=128924). Thanks to [Arty Gus](https://github.com/artygus)! -* [#11911](http://dev.ckeditor.com/ticket/11911): Fixed setting the `dir` attribute for a preloaded language in [CKEDITOR.lang](http://docs.ckeditor.com/#!/api/CKEDITOR.lang). Thanks to [Akash Mohapatra](https://github.com/akashmohapatra)! -* [#11926](http://dev.ckeditor.com/ticket/11926): Fixed: [Code Snippet](http://ckeditor.com/addon/codesnippet) does not decode HTML entities when loading code from the `<code>` element. -* [#11223](http://dev.ckeditor.com/ticket/11223): Fixed: Issue when [Protected Source](http://docs.ckeditor.com/#!/api/CKEDITOR.config-cfg-protectedSource) was not working in the `<title>` element. -* [#11859](http://dev.ckeditor.com/ticket/11859): Fixed: Removed the [Source Dialog](http://ckeditor.com/addon/sourcedialog) plugin dependency from the [Code Snippet](http://ckeditor.com/addon/codesnippet) sample. -* [#11754](http://dev.ckeditor.com/ticket/11754): [Chrome] Fixed: Infinite loop when content includes not closed attributes. -* [#11848](http://dev.ckeditor.com/ticket/11848): [IE] Fixed: [`editor.insertElement()`](http://docs.ckeditor.com/#!/api/CKEDITOR.editor-method-insertElement) throwing an exception when there was no selection in the editor. -* [#11801](http://dev.ckeditor.com/ticket/11801): Fixed: Editor anchors unavailable when linking the [Enhanced Image](http://ckeditor.com/addon/image2) widget. -* [#11626](http://dev.ckeditor.com/ticket/11626): Fixed: [Table Resize](http://ckeditor.com/addon/tableresize) sets invalid column width. -* [#11872](http://dev.ckeditor.com/ticket/11872): Made [`element.addClass()`](http://docs.ckeditor.com/#!/api/CKEDITOR.dom.element-method-addClass) chainable symmetrically to [`element.removeClass()`](http://docs.ckeditor.com/#!/api/CKEDITOR.dom.element-method-removeClass). -* [#11813](http://dev.ckeditor.com/ticket/11813): Fixed: Link lost while pasting a captioned image and restoring an undo snapshot ([Enhanced Image](http://ckeditor.com/addon/image2)). -* [#11814](http://dev.ckeditor.com/ticket/11814): Fixed: _Link_ and _Unlink_ entries persistently displayed in the [Enhanced Image](http://ckeditor.com/addon/image2) context menu. -* [#11839](http://dev.ckeditor.com/ticket/11839): [IE9] Fixed: The caret jumps out of the editable area when resizing the editor in the source mode. -* [#11822](http://dev.ckeditor.com/ticket/11822): [WebKit] Fixed: Editing anchors by double-click is broken in some cases. -* [#11823](http://dev.ckeditor.com/ticket/11823): [IE8] Fixed: [Table Resize](http://ckeditor.com/addon/tableresize) throws an error over scrollbar. -* [#11788](http://dev.ckeditor.com/ticket/11788): Fixed: It is not possible to change the language back to _Not set_ in the [Code Snippet](http://ckeditor.com/addon/codesnippet) dialog window. -* [#11788](http://dev.ckeditor.com/ticket/11788): Fixed: [Filter](http://docs.ckeditor.com/#!/api/CKEDITOR.htmlParser.filter) rules are not applied inside elements with the `contenteditable` attribute set to `true`. -* [#11798](http://dev.ckeditor.com/ticket/11798): Fixed: Inserting a non-editable element inside a table cell breaks the table. -* [#11793](http://dev.ckeditor.com/ticket/11793): Fixed: Drop-down is not "on" when clicking it while the editor is blurred. -* [#11850](http://dev.ckeditor.com/ticket/11850): Fixed: Fake objects with the `contenteditable` attribute set to `false` are not downcasted properly. -* [#11811](http://dev.ckeditor.com/ticket/11811): Fixed: Widget's data is not encoded correctly when passed to an attribute. -* [#11777](http://dev.ckeditor.com/ticket/11777): Fixed encoding ampersand in the [Mathematical Formulas](http://ckeditor.com/addon/mathjax) plugin. -* [#11880](http://dev.ckeditor.com/ticket/11880): [IE8-9] Fixed: Linked image has a default thick border. - -Other Changes: - -* [#11807](http://dev.ckeditor.com/ticket/11807): Updated jQuery version used in the sample to 1.11.0 and tested CKEditor jQuery Adapter with version 1.11.0 and 2.1.0. -* [#9504](http://dev.ckeditor.com/ticket/9504): Stopped using deprecated `attribute.specified` in all browsers except Internet Explorer. -* [#11809](http://dev.ckeditor.com/ticket/11809): Changed tab size in `<pre>` to 4 spaces. - -## CKEditor 4.4 - -**Important Notes:** - -* Marked the [`editor.beforePaste`](http://docs.ckeditor.com/#!/api/CKEDITOR.editor-event-beforePaste) event as deprecated. -* The default class of captioned images has changed to `image` (was: `caption`). Please note that once edited in CKEditor 4.4+, all existing images of the `caption` class (`<figure class="caption">`) will be [filtered out](http://docs.ckeditor.com/#!/guide/dev_advanced_content_filter) unless the [`config.image2_captionedClass`](http://docs.ckeditor.com/#!/api/CKEDITOR.config-cfg-image2_captionedClass) option is set to `caption`. For backward compatibility (i.e. when upgrading), it is highly recommended to use this setting, which also helps prevent CSS conflicts, etc. This does not apply to new CKEditor integrations. -* Widgets without defined buttons are no longer registered automatically to the [Advanced Content Filter](http://docs.ckeditor.com/#!/guide/dev_advanced_content_filter). Before CKEditor 4.4 widgets were registered to the ACF which was an incorrect behavior ([#11567](http://dev.ckeditor.com/ticket/11567)). This change should not have any impact on standard scenarios, but if your button does not execute the widget command, you need to set [`allowedContent`](http://docs.ckeditor.com/#!/api/CKEDITOR.feature-property-allowedContent) and [`requiredContent`](http://docs.ckeditor.com/#!/api/CKEDITOR.feature-property-requiredContent) properties for it manually, because the editor will not be able to find them. -* The [Show Borders](http://ckeditor.com/addon/showborders) plugin was added to the Standard installation package in order to ensure that unstyled tables are still visible for the user ([#11665](http://dev.ckeditor.com/ticket/11665)). -* Since CKEditor 4.4 the editor instance should be passed to [`CKEDITOR.style`](http://docs.ckeditor.com/#!/api/CKEDITOR.style) methods to ensure full compatibility with other features (e.g. applying styles to widgets requires that). We ensured backward compatibility though, so the [`CKEDITOR.style`](http://docs.ckeditor.com/#!/api/CKEDITOR.style) will work even when the editor instance is not provided. - -New Features: - -* [#11297](http://dev.ckeditor.com/ticket/11297): Styles can now be applied to widgets. The definition of a style which can be applied to a specific widget must contain two additional properties &mdash; `type` and `widget`. Read more in the [Widget Styles](http://docs.ckeditor.com/#!/guide/dev_styles-section-widget-styles) section of the "Syles Drop-down" guide. Note that by default, widgets support only classes and no other attributes or styles. Related changes and features: - * Introduced the [`CKEDITOR.style.addCustomHandler()`](http://docs.ckeditor.com/#!/api/CKEDITOR.style-static-method-addCustomHandler) method for registering custom style handlers. - * The [`CKEDITOR.style.apply()`](http://docs.ckeditor.com/#!/api/CKEDITOR.style-method-apply) and [`CKEDITOR.style.remove()`](http://docs.ckeditor.com/#!/api/CKEDITOR.style-method-remove) methods are now called with an editor instance instead of the document so they can be reused by the [`CKEDITOR.editor.applyStyle()`](http://docs.ckeditor.com/#!/api/CKEDITOR.editor-method-applyStyle) and [`CKEDITOR.editor.removeStyle()`](http://docs.ckeditor.com/#!/api/CKEDITOR.editor-method-removeStyle) methods. Backward compatibility was preserved, but from CKEditor 4.4 it is highly recommended to pass an editor instead of a document to these methods. - * Many new methods and properties were introduced in the [Widget API](http://docs.ckeditor.com/#!/api/CKEDITOR.plugins.widget) to make the handling of styles by widgets fully customizable. See: [`widget.definition.styleableElements`](http://docs.ckeditor.com/#!/api/CKEDITOR.plugins.widget.definition-property-styleableElements), [`widget.definition.styleToAllowedContentRule`](http://docs.ckeditor.com/#!/api/CKEDITOR.plugins.widget.definition-property-styleToAllowedContentRules), [`widget.addClass()`](http://docs.ckeditor.com/#!/api/CKEDITOR.plugins.widget-method-addClass), [`widget.removeClass()`](http://docs.ckeditor.com/#!/api/CKEDITOR.plugins.widget-method-removeClass), [`widget.getClasses()`](http://docs.ckeditor.com/#!/api/CKEDITOR.plugins.widget-method-getClasses), [`widget.hasClass()`](http://docs.ckeditor.com/#!/api/CKEDITOR.plugins.widget-method-hasClass), [`widget.applyStyle()`](http://docs.ckeditor.com/#!/api/CKEDITOR.plugins.widget-method-applyStyle), [`widget.removeStyle()`](http://docs.ckeditor.com/#!/api/CKEDITOR.plugins.widget-method-removeStyle), [`widget.checkStyleActive()`](http://docs.ckeditor.com/#!/api/CKEDITOR.plugins.widget-method-checkStyleActive). - * Integration with the [Allowed Content Filter](http://docs.ckeditor.com/#!/guide/dev_advanced_content_filter) required an introduction of the [`CKEDITOR.style.toAllowedContent()`](http://docs.ckeditor.com/#!/api/CKEDITOR.style-method-toAllowedContentRules) method which can be implemented by the custom style handler and if exists, it is used by the [`CKEDITOR.filter`](http://docs.ckeditor.com/#!/api/CKEDITOR.filter) to translate a style to [allowed content rules](http://docs.ckeditor.com/#!/api/CKEDITOR.filter.allowedContentRules). -* [#11300](http://dev.ckeditor.com/ticket/11300): Various changes in the [Enhanced Image](http://ckeditor.com/addon/image2) plugin: - * Introduced the [`config.image2_captionedClass`](http://docs.ckeditor.com/#!/api/CKEDITOR.config-cfg-image2_captionedClass) option to configure the class of captioned images. - * Introduced the [`config.image2_alignClasses`](http://docs.ckeditor.com/#!/api/CKEDITOR.config-cfg-image2_alignClasses) option to configure the way images are aligned with CSS classes. - If this setting is defined, the editor produces classes instead of inline styles for aligned images. - * Default image caption can be translated (customized) with the `editor.lang.image2.captionPlaceholder` string. -* [#11341](http://dev.ckeditor.com/ticket/11341): [Enhanced Image](http://ckeditor.com/addon/image2) plugin: It is now possible to add a link to any image type. -* [#10202](http://dev.ckeditor.com/ticket/10202): Introduced wildcard support in the [Allowed Content Rules](http://docs.ckeditor.com/#!/guide/dev_allowed_content_rules) format. -* [#10276](http://dev.ckeditor.com/ticket/10276): Introduced blacklisting in the [Allowed Content Filter](http://docs.ckeditor.com/#!/guide/dev_advanced_content_filter). -* [#10480](http://dev.ckeditor.com/ticket/10480): Introduced code snippets with code highlighting. There are two versions available so far &mdash; the default [Code Snippet](http://ckeditor.com/addon/codesnippet) which uses the [highlight.js](http://highlightjs.org) library and the [Code Snippet GeSHi](http://ckeditor.com/addon/codesnippetgeshi) which uses the [GeSHi](http://qbnz.com/highlighter/) library. -* [#11737](http://dev.ckeditor.com/ticket/11737): Introduced an option to prevent [filtering](http://docs.ckeditor.com/#!/guide/dev_advanced_content_filter) of an element that matches custom criteria (see [`filter.addElementCallback()`](http://docs.ckeditor.com/#!/api/CKEDITOR.filter-method-addElementCallback)). -* [#11532](http://dev.ckeditor.com/ticket/11532): Introduced the [`editor.addContentsCss()`](http://docs.ckeditor.com/#!/api/CKEDITOR.editor-method-addContentsCss) method that can be used for [adding custom CSS files](http://docs.ckeditor.com/#!/guide/plugin_sdk_styles). -* [#11536](http://dev.ckeditor.com/ticket/11536): Added the [`CKEDITOR.tools.htmlDecode()`](http://docs.ckeditor.com/#!/api/CKEDITOR.tools-method-htmlDecode) method for decoding HTML entities. -* [#11225](http://dev.ckeditor.com/ticket/11225): Introduced the [`CKEDITOR.tools.transparentImageData`](http://docs.ckeditor.com/#!/api/CKEDITOR.tools-property-transparentImageData) property which contains transparent image data to be used in CSS or as image source. - -Other Changes: - -* [#11377](http://dev.ckeditor.com/ticket/11377): Unified internal representation of empty anchors using the [fake objects](http://ckeditor.com/addon/fakeobjects). -* [#11422](http://dev.ckeditor.com/ticket/11422): Removed Firefox 3.x, Internet Explorer 6 and Opera 12.x leftovers in code. -* [#5217](http://dev.ckeditor.com/ticket/5217): Setting data (including switching between modes) creates a new undo snapshot. Besides that: - * Introduced the [`editable.status`](http://docs.ckeditor.com/#!/api/CKEDITOR.editable-property-status) property. - * Introduced a new `forceUpdate` option for the [`editor.lockSnapshot`](http://docs.ckeditor.com/#!/api/CKEDITOR.editor-event-lockSnapshot) event. - * Fixed: Selection not being unlocked in inline editor after setting data ([#11500](http://dev.ckeditor.com/ticket/11500)). -* The [WebSpellChecker](http://ckeditor.com/addon/wsc) plugin was updated to the latest version. - -Fixed Issues: - -* [#10190](http://dev.ckeditor.com/ticket/10190): Fixed: Removing block style with [`editor.removeStyle()`](http://docs.ckeditor.com/#!/api/CKEDITOR.editor-method-removeStyle) should result in a paragraph and not a div. -* [#11727](http://dev.ckeditor.com/ticket/11727): Fixed: The editor tries to select a non-editable image which was clicked. - -## CKEditor 4.3.5 - -New Features: - -* Added new translation: Tatar. - -Fixed Issues: - -* [#11677](http://dev.ckeditor.com/ticket/11677): Fixed: Undo/Redo keystrokes are blocked in the source mode. -* [#11717](http://dev.ckeditor.com/ticket/11717): [Document Properties](http://ckeditor.com/addon/docprops) plugin requires the [Color Dialog](http://ckeditor.com/addon/colordialog) plugin to work. - -## CKEditor 4.3.4 - -Fixed Issues: - -* [#11597](http://dev.ckeditor.com/ticket/11597): [IE11] Fixed: Error thrown when trying to open the [preview](http://ckeditor.com/addon/preview) using the keyboard. -* [#11544](http://dev.ckeditor.com/ticket/11544): [Placeholders](http://ckeditor.com/addon/placeholder) will no longer be upcasted in parents not accepting `<span>` elements. -* [#8663](http://dev.ckeditor.com/ticket/8663): Fixed [`element.renameNode()`](http://docs.ckeditor.com/#!/api/CKEDITOR.dom.element-method-renameNode) not clearing the [`element.getName()`](http://docs.ckeditor.com/#!/api/CKEDITOR.dom.element-method-getName) cache. -* [#11574](http://dev.ckeditor.com/ticket/11574): Fixed: *Backspace* destroying the DOM structure if an inline editable is placed in a list item. -* [#11603](http://dev.ckeditor.com/ticket/11603): Fixed: [Table Resize](http://ckeditor.com/addon/tableresize) attaches to tables outside the editable. -* [#9205](http://dev.ckeditor.com/ticket/9205), [#7805](http://dev.ckeditor.com/ticket/7805), [#8216](http://dev.ckeditor.com/ticket/8216): Fixed: `{cke_protected_1}` appearing in data in various cases where HTML comments are placed next to `"` or `'`. -* [#11635](http://dev.ckeditor.com/ticket/11635): Fixed: Some attributes are not protected before the content is passed through the fix bin. -* [#11660](http://dev.ckeditor.com/ticket/11660): [IE] Fixed: Table content is lost when some extra markup is inside the table. -* [#11641](http://dev.ckeditor.com/ticket/11641): Fixed: Switching between modes in the classic editor removes content styles for the inline editor. -* [#11568](http://dev.ckeditor.com/ticket/11568): Fixed: [Styles](http://ckeditor.com/addon/stylescombo) drop-down list is not enabled on selection change. - -## CKEditor 4.3.3 - -Fixed Issues: - -* [#11500](http://dev.ckeditor.com/ticket/11500): [WebKit/Blink] Fixed: Selection lost when setting data in another inline editor. Additionally, [`selection.removeAllRanges()`](http://docs.ckeditor.com/#!/api/CKEDITOR.dom.selection-method-removeAllRanges) is now scoped to selection's [root](http://docs.ckeditor.com/#!/api/CKEDITOR.dom.selection-property-root). -* [#11104](http://dev.ckeditor.com/ticket/11104): [IE] Fixed: Various issues with scrolling and selection when focusing widgets. -* [#11487](http://dev.ckeditor.com/ticket/11487): Moving mouse over the [Enhanced Image](http://ckeditor.com/addon/image2) widget will no longer change the value returned by the [`editor.checkDirty()`](http://docs.ckeditor.com/#!/api/CKEDITOR.editor-method-checkDirty) method. -* [#8673](http://dev.ckeditor.com/ticket/8673): [WebKit] Fixed: Cannot select and remove the [Page Break](http://ckeditor.com/addon/pagebreak). -* [#11413](http://dev.ckeditor.com/ticket/11413): Fixed: Incorrect [`editor.execCommand()`](http://docs.ckeditor.com/#!/api/CKEDITOR.editor-method-execCommand) behavior. -* [#11438](http://dev.ckeditor.com/ticket/11438): Splitting table cells vertically is no longer changing table structure. -* [#8899](http://dev.ckeditor.com/ticket/8899): Fixed: Links in the [About CKEditor](http://ckeditor.com/addon/about) dialog window now open in a new browser window or tab. -* [#11490](http://dev.ckeditor.com/ticket/11490): Fixed: [Menu button](http://ckeditor.com/addon/menubutton) panel not showing in the source mode. -* [#11417](http://dev.ckeditor.com/ticket/11417): The [`widget.doubleclick`](http://docs.ckeditor.com/#!/api/CKEDITOR.plugins.widget-event-doubleclick) event is not canceled anymore after editing was triggered. -* [#11253](http://dev.ckeditor.com/ticket/11253): [IE] Fixed: Clipped upload button in the [Enhanced Image](http://ckeditor.com/addon/image2) dialog window. -* [#11359](http://dev.ckeditor.com/ticket/11359): Standardized the way anchors are discovered by the [Link](http://ckeditor.com/addon/link) plugin. -* [#11058](http://dev.ckeditor.com/ticket/11058): [IE8] Fixed: Error when deleting a table row. -* [#11508](http://dev.ckeditor.com/ticket/11508): Fixed: [`htmlDataProcessor`](http://docs.ckeditor.com/#!/api/CKEDITOR.htmlDataProcessor) discovering protected attributes within other attributes' values. -* [#11533](http://dev.ckeditor.com/ticket/11533): Widgets: Avoid recurring upcasts if the DOM structure was modified during an upcast. -* [#11400](http://dev.ckeditor.com/ticket/11400): Fixed: The [`domObject.removeAllListeners()`](http://docs.ckeditor.com/#!/api/CKEDITOR.dom.domObject-method-removeAllListeners) method does not remove custom listeners completely. -* [#11493](http://dev.ckeditor.com/ticket/11493): Fixed: The [`selection.getRanges()`](http://docs.ckeditor.com/#!/api/CKEDITOR.dom.selection-method-getRanges) method does not override cached ranges when used with the `onlyEditables` argument. -* [#11390](http://dev.ckeditor.com/ticket/11390): [IE] All [XML](http://ckeditor.com/addon/xml) plugin [methods](http://docs.ckeditor.com/#!/api/CKEDITOR.xml) now work in IE10+. -* [#11542](http://dev.ckeditor.com/ticket/11542): [IE11] Fixed: Blurry toolbar icons when Right-to-Left UI language is set. -* [#11504](http://dev.ckeditor.com/ticket/11504): Fixed: When [`config.fullPage`](http://docs.ckeditor.com/#!/api/CKEDITOR.config-cfg-fullPage) is set to `true`, entities are not encoded in editor output. -* [#11004](http://dev.ckeditor.com/ticket/11004): Integrated [Enhanced Image](http://ckeditor.com/addon/image2) dialog window with [Advanced Content Filter](http://docs.ckeditor.com/#!/guide/dev_advanced_content_filter). -* [#11439](http://dev.ckeditor.com/ticket/11439): Fixed: Properties get cloned in the Cell Properties dialog window if multiple cells are selected. - -## CKEditor 4.3.2 - -Fixed Issues: - -* [#11331](http://dev.ckeditor.com/ticket/11331): A menu button will have a changed label when selected instead of using the `aria-pressed` attribute. -* [#11177](http://dev.ckeditor.com/ticket/11177): Widget drag handler improvements: - * [#11176](http://dev.ckeditor.com/ticket/11176): Fixed: Initial position is not updated when the widget data object is empty. - * [#11001](http://dev.ckeditor.com/ticket/11001): Fixed: Multiple synchronous layout recalculations are caused by initial drag handler positioning causing performance issues. - * [#11161](http://dev.ckeditor.com/ticket/11161): Fixed: Drag handler is not repositioned in various situations. - * [#11281](http://dev.ckeditor.com/ticket/11281): Fixed: Drag handler and mask are duplicated after widget reinitialization. -* [#11207](http://dev.ckeditor.com/ticket/11207): [Firefox] Fixed: Misplaced [Enhanced Image](http://ckeditor.com/addon/image2) resizer in the inline editor. -* [#11102](http://dev.ckeditor.com/ticket/11102): `CKEDITOR.template` improvements: - * [#11102](http://dev.ckeditor.com/ticket/11102): Added newline character support. - * [#11216](http://dev.ckeditor.com/ticket/11216): Added "\\'" substring support. -* [#11121](http://dev.ckeditor.com/ticket/11121): [Firefox] Fixed: High Contrast mode is enabled when the editor is loaded in a hidden iframe. -* [#11350](http://dev.ckeditor.com/ticket/11350): The default value of [`config.contentsCss`](http://docs.ckeditor.com/#!/api/CKEDITOR.config-cfg-contentsCss) is affected by [`CKEDITOR.getUrl()`](http://docs.ckeditor.com/#!/api/CKEDITOR-method-getUrl). -* [#11097](http://dev.ckeditor.com/ticket/11097): Improved the [Autogrow](http://ckeditor.com/addon/autogrow) plugin performance when dealing with very big tables. -* [#11290](http://dev.ckeditor.com/ticket/11290): Removed redundant code in the [Source Dialog](http://ckeditor.com/addon/sourcedialog) plugin. -* [#11133](http://dev.ckeditor.com/ticket/11133): [Page Break](http://ckeditor.com/addon/pagebreak) becomes editable if pasted. -* [#11126](http://dev.ckeditor.com/ticket/11126): Fixed: Native Undo executed once the bottom of the snapshot stack is reached. -* [#11131](http://dev.ckeditor.com/ticket/11131): [Div Editing Area](http://ckeditor.com/addon/divarea): Fixed: Error thrown when switching to source mode if the selection was in widget's nested editable. -* [#11139](http://dev.ckeditor.com/ticket/11139): [Div Editing Area](http://ckeditor.com/addon/divarea): Fixed: Elements Path is not cleared after switching to source mode. -* [#10778](http://dev.ckeditor.com/ticket/10778): Fixed a bug with range enlargement. The range no longer expands to visible whitespace. -* [#11146](http://dev.ckeditor.com/ticket/11146): [IE] Fixed: Preview window switches Internet Explorer to Quirks Mode. -* [#10762](http://dev.ckeditor.com/ticket/10762): [IE] Fixed: JavaScript code displayed in preview window's URL bar. -* [#11186](http://dev.ckeditor.com/ticket/11186): Introduced the [`widgets.repository.addUpcastCallback()`](http://docs.ckeditor.com/#!/api/CKEDITOR.plugins.widget.repository-method-addUpcastCallback) method that allows to block upcasting given element to a widget. -* [#11307](http://dev.ckeditor.com/ticket/11307): Fixed: Paste as Plain Text conflict with the [MooTools](http://mootools.net) library. -* [#11140](http://dev.ckeditor.com/ticket/11140): [IE11] Fixed: Anchors are not draggable. -* [#11379](http://dev.ckeditor.com/ticket/11379): Changed default contents `line-height` to unitless values to avoid huge text overlapping (like in [#9696](http://dev.ckeditor.com/ticket/9696)). -* [#10787](http://dev.ckeditor.com/ticket/10787): [Firefox] Fixed: Broken replacement of text while pasting into `div`-based editor. -* [#10884](http://dev.ckeditor.com/ticket/10884): Widgets integration with the [Show Blocks](http://ckeditor.com/addon/showblocks) plugin. -* [#11021](http://dev.ckeditor.com/ticket/11021): Fixed: An error thrown when selecting entire editable contents while fake selection is on. -* [#11086](http://dev.ckeditor.com/ticket/11086): [IE8] Re-enable inline widgets drag&drop in Internet Explorer 8. -* [#11372](http://dev.ckeditor.com/ticket/11372): Widgets: Special characters encoded twice in nested editables. -* [#10068](http://dev.ckeditor.com/ticket/10068): Fixed: Support for protocol-relative URLs. -* [#11283](http://dev.ckeditor.com/ticket/11283): [Enhanced Image](http://ckeditor.com/addon/image2): A `<div>` element with `text-align: center` and an image inside is not recognised correctly. -* [#11196](http://dev.ckeditor.com/ticket/11196): [Accessibility Instructions](http://ckeditor.com/addon/a11yhelp): Allowed additional keyboard button labels to be translated in the dialog window. - -## CKEditor 4.3.1 - -**Important Notes:** - -* To match the naming convention, the `language` button is now `Language` ([#11201](http://dev.ckeditor.com/ticket/11201)). -* [Enhanced Image](http://ckeditor.com/addon/image2) button, context menu, command, and icon names match those of the [Image](http://ckeditor.com/addon/image) plugin ([#11222](http://dev.ckeditor.com/ticket/11222)). - -Fixed Issues: - -* [#11244](http://dev.ckeditor.com/ticket/11244): Changed: The [`widget.repository.checkWidgets()`](http://docs.ckeditor.com/#!/api/CKEDITOR.plugins.widget.repository-method-checkWidgets) method now fires the [`widget.repository.checkWidgets`](http://docs.ckeditor.com/#!/api/CKEDITOR.plugins.widget.repository-event-checkWidgets) event, so from CKEditor 4.3.1 it is preferred to use the method rather than fire the event. -* [#11171](http://dev.ckeditor.com/ticket/11171): Fixed: [`editor.insertElement()`](http://docs.ckeditor.com/#!/api/CKEDITOR.editor-method-insertElement) and [`editor.insertText()`](http://docs.ckeditor.com/#!/api/CKEDITOR.editor-method-insertText) methods do not call the [`widget.repository.checkWidgets()`](http://docs.ckeditor.com/#!/api/CKEDITOR.plugins.widget.repository-method-checkWidgets) method. -* [#11085](http://dev.ckeditor.com/ticket/11085): [IE8] Replaced preview generated by the [Mathematical Formulas](http://ckeditor.com/addon/mathjax) widget with a placeholder. -* [#11044](http://dev.ckeditor.com/ticket/11044): Enhanced WAI-ARIA support for the [Language](http://ckeditor.com/addon/language) plugin drop-down menu. -* [#11075](http://dev.ckeditor.com/ticket/11075): With drop-down menu button focused, pressing the *Down Arrow* key will now open the menu and focus its first option. -* [#11165](http://dev.ckeditor.com/ticket/11165): Fixed: The [File Browser](http://ckeditor.com/addon/filebrowser) plugin cannot be removed from the editor. -* [#11159](http://dev.ckeditor.com/ticket/11159): [IE9-10] [Enhanced Image](http://ckeditor.com/addon/image2): Fixed buggy discovery of image dimensions. -* [#11101](http://dev.ckeditor.com/ticket/11101): Drop-down lists no longer break when given double quotes. -* [#11077](http://dev.ckeditor.com/ticket/11077): [Enhanced Image](http://ckeditor.com/addon/image2): Empty undo step recorded when resizing the image. -* [#10853](http://dev.ckeditor.com/ticket/10853): [Enhanced Image](http://ckeditor.com/addon/image2): Widget has paragraph wrapper when de-captioning unaligned image. -* [#11198](http://dev.ckeditor.com/ticket/11198): Widgets: Drag handler is not fully visible when an inline widget is in a heading. -* [#11132](http://dev.ckeditor.com/ticket/11132): [Firefox] Fixed: Caret is lost after drag and drop of an inline widget. -* [#11182](http://dev.ckeditor.com/ticket/11182): [IE10-11] Fixed: Editor crashes (IE11) or works with minor issues (IE10) if a page is loaded in Quirks Mode. See [`env.quirks`](http://docs.ckeditor.com/#!/api/CKEDITOR.env-property-quirks) for more details. -* [#11204](http://dev.ckeditor.com/ticket/11204): Added `figure` and `figcaption` styles to the `contents.css` file so [Enhanced Image](http://ckeditor.com/addon/image2) looks nicer. -* [#11202](http://dev.ckeditor.com/ticket/11202): Fixed: No newline in [BBCode](http://ckeditor.com/addon/bbcode) mode. -* [#10890](http://dev.ckeditor.com/ticket/10890): Fixed: Error thrown when pressing the *Delete* key in a list item. -* [#10055](http://dev.ckeditor.com/ticket/10055): [IE8-10] Fixed: *Delete* pressed on a selected image causes the browser to go back. -* [#11183](http://dev.ckeditor.com/ticket/11183): Fixed: Inserting a horizontal rule or a table in multiple row selection causes a browser crash. Additionally, the [`editor.insertElement()`](http://docs.ckeditor.com/#!/api/CKEDITOR.editor-method-insertElement) method does not insert the element into every range of a selection any more. -* [#11042](http://dev.ckeditor.com/ticket/11042): Fixed: Selection made on an element containing a non-editable element was not auto faked. -* [#11125](http://dev.ckeditor.com/ticket/11125): Fixed: Keyboard navigation through menu and drop-down items will now cycle. -* [#11011](http://dev.ckeditor.com/ticket/11011): Fixed: The [`editor.applyStyle()`](http://docs.ckeditor.com/#!/api/CKEDITOR.editor-method-applyStyle) method removes attributes from nested elements. -* [#11179](http://dev.ckeditor.com/ticket/11179): Fixed: [`editor.destroy()`](http://docs.ckeditor.com/#!/api/CKEDITOR.editor-method-destroy) does not cleanup content generated by the [Table Resize](http://ckeditor.com/addon/tableresize) plugin for inline editors. -* [#11237](http://dev.ckeditor.com/ticket/11237): Fixed: Table border attribute value is deleted when pasting content from Microsoft Word. -* [#11250](http://dev.ckeditor.com/ticket/11250): Fixed: HTML entities inside the `<textarea>` element are not encoded. -* [#11260](http://dev.ckeditor.com/ticket/11260): Fixed: Initially disabled buttons are not read by JAWS as disabled. -* [#11200](http://dev.ckeditor.com/ticket/11200): Added [Clipboard](http://ckeditor.com/addon/clipboard) plugin as a dependency for [Widget](http://ckeditor.com/addon/widget) to fix drag and drop. - -## CKEditor 4.3 - -New Features: - -* [#10612](http://dev.ckeditor.com/ticket/10612): Internet Explorer 11 support. -* [#10869](http://dev.ckeditor.com/ticket/10869): Widgets: Added better integration with the [Elements Path](http://ckeditor.com/addon/elementspath) plugin. -* [#10886](http://dev.ckeditor.com/ticket/10886): Widgets: Added tooltip to the drag handle. -* [#10933](http://dev.ckeditor.com/ticket/10933): Widgets: Introduced drag and drop of block widgets with the [Line Utilities](http://ckeditor.com/addon/lineutils) plugin. -* [#10936](http://dev.ckeditor.com/ticket/10936): Widget System changes for easier integration with other dialog systems. -* [#10895](http://dev.ckeditor.com/ticket/10895): [Enhanced Image](http://ckeditor.com/addon/image2): Added file browser integration. -* [#11002](http://dev.ckeditor.com/ticket/11002): Added the [`draggable`](http://docs.ckeditor.com/#!/api/CKEDITOR.plugins.widget.definition-property-draggable) option to disable drag and drop support for widgets. -* [#10937](http://dev.ckeditor.com/ticket/10937): [Mathematical Formulas](http://ckeditor.com/addon/mathjax) widget improvements: - * loading indicator ([#10948](http://dev.ckeditor.com/ticket/10948)), - * applying paragraph changes (like font color change) to iframe ([#10841](http://dev.ckeditor.com/ticket/10841)), - * Firefox and IE9 clipboard fixes ([#10857](http://dev.ckeditor.com/ticket/10857)), - * fixing same origin policy issue ([#10840](http://dev.ckeditor.com/ticket/10840)), - * fixing undo bugs ([#10842](http://dev.ckeditor.com/ticket/10842), [#10930](http://dev.ckeditor.com/ticket/10930)), - * fixing other minor bugs. -* [#10862](http://dev.ckeditor.com/ticket/10862): [Placeholder](http://ckeditor.com/addon/placeholder) plugin was rewritten as a widget. -* [#10822](http://dev.ckeditor.com/ticket/10822): Added styles system integration with non-editable elements (for example widgets) and their nested editables. Styles cannot change non-editable content and are applied in nested editable only if allowed by its type and content filter. -* [#10856](http://dev.ckeditor.com/ticket/10856): Menu buttons will now toggle the visibility of their panels when clicked multiple times. [Language](http://ckeditor.com/addon/language) plugin fixes: Added active language highlighting, added an option to remove the language. -* [#10028](http://dev.ckeditor.com/ticket/10028): New [`config.dialog_noConfirmCancel`](http://docs.ckeditor.com/#!/api/CKEDITOR.config-cfg-dialog_noConfirmCancel) configuration option that eliminates the need to confirm closing of a dialog window when the user changed any of its fields. -* [#10848](http://dev.ckeditor.com/ticket/10848): Integrate remaining plugins ([Styles](http://ckeditor.com/addon/stylescombo), [Format](http://ckeditor.com/addon/format), [Font](http://ckeditor.com/addon/font), [Color Button](http://ckeditor.com/addon/colorbutton), [Language](http://ckeditor.com/addon/language) and [Indent](http://ckeditor.com/addon/indent)) with [active filter](http://docs.ckeditor.com/#!/api/CKEDITOR.editor-property-activeFilter). -* [#10855](http://dev.ckeditor.com/ticket/10855): Change the extension of emoticons in the [BBCode](http://ckeditor.com/addon/bbcode) sample from GIF to PNG. - -Fixed Issues: - -* [#10831](http://dev.ckeditor.com/ticket/10831): [Enhanced Image](http://ckeditor.com/addon/image2): Merged `image2inline` and `image2block` into one `image2` widget. -* [#10835](http://dev.ckeditor.com/ticket/10835): [Enhanced Image](http://ckeditor.com/addon/image2): Improved visibility of the resize handle. -* [#10836](http://dev.ckeditor.com/ticket/10836): [Enhanced Image](http://ckeditor.com/addon/image2): Preserve custom mouse cursor while resizing the image. -* [#10939](http://dev.ckeditor.com/ticket/10939): [Firefox] [Enhanced Image](http://ckeditor.com/addon/image2): hovering the image causes it to change. -* [#10866](http://dev.ckeditor.com/ticket/10866): Fixed: Broken *Tab* key navigation in the [Enhanced Image](http://ckeditor.com/addon/image2) dialog window. -* [#10833](http://dev.ckeditor.com/ticket/10833): Fixed: *Lock ratio* option should be on by default in the [Enhanced Image](http://ckeditor.com/addon/image2) dialog window. -* [#10881](http://dev.ckeditor.com/ticket/10881): Various improvements to *Enter* key behavior in nested editables. -* [#10879](http://dev.ckeditor.com/ticket/10879): [Remove Format](http://ckeditor.com/addon/removeformat) should not leak from a nested editable. -* [#10877](http://dev.ckeditor.com/ticket/10877): Fixed: [WebSpellChecker](http://ckeditor.com/addon/wsc) fails to apply changes if a nested editable was focused. -* [#10877](http://dev.ckeditor.com/ticket/10877): Fixed: [SCAYT](http://ckeditor.com/addon/wsc) blocks typing in nested editables. -* [#11079](http://dev.ckeditor.com/ticket/11079): Add button icons to the [Placeholder](http://ckeditor.com/addon/placeholder) sample. -* [#10870](http://dev.ckeditor.com/ticket/10870): The `paste` command is no longer being disabled when the clipboard is empty. -* [#10854](http://dev.ckeditor.com/ticket/10854): Fixed: Firefox prepends `<br>` to `<body>`, so it is stripped by the HTML data processor. -* [#10823](http://dev.ckeditor.com/ticket/10823): Fixed: [Link](http://ckeditor.com/addon/link) plugin does not work with non-editable content. -* [#10828](http://dev.ckeditor.com/ticket/10828): [Magic Line](http://ckeditor.com/addon/magicline) integration with the Widget System. -* [#10865](http://dev.ckeditor.com/ticket/10865): Improved hiding copybin, so copying widgets works smoothly. -* [#11066](http://dev.ckeditor.com/ticket/11066): Widget's private parts use CSS reset. -* [#11027](http://dev.ckeditor.com/ticket/11027): Fixed: Block commands break on widgets; added the [`contentDomInvalidated`](http://docs.ckeditor.com/#!/api/CKEDITOR.editor-event-contentDomInvalidated) event. -* [#10430](http://dev.ckeditor.com/ticket/10430): Resolve dependence of the [Image](http://ckeditor.com/addon/image) plugin on the [Form Elements](http://ckeditor.com/addon/forms) plugin. -* [#10911](http://dev.ckeditor.com/ticket/10911): Fixed: Browser *Alt* hotkeys will no longer be blocked while a widget is focused. -* [#11082](http://dev.ckeditor.com/ticket/11082): Fixed: Selected widget is not copied or cut when using toolbar buttons or context menu. -* [#11083](http://dev.ckeditor.com/ticket/11083): Fixed list and div element application to block widgets. -* [#10887](http://dev.ckeditor.com/ticket/10887): Internet Explorer 8 compatibility issues related to the Widget System. -* [#11074](http://dev.ckeditor.com/ticket/11074): Temporarily disabled inline widget drag and drop, because of seriously buggy native `range#moveToPoint` method. -* [#11098](http://dev.ckeditor.com/ticket/11098): Fixed: Wrong selection position after undoing widget drag and drop. -* [#11110](http://dev.ckeditor.com/ticket/11110): Fixed: IFrame and Flash objects are being incorrectly pasted in certain conditions. -* [#11129](http://dev.ckeditor.com/ticket/11129): Page break is lost when loading data. -* [#11123](http://dev.ckeditor.com/ticket/11123): [Firefox] Widget is destroyed after being dragged outside of `<body>`. -* [#11124](http://dev.ckeditor.com/ticket/11124): Fixed the [Elements Path](http://ckeditor.com/addon/elementspath) in an editor using the [Div Editing Area](http://ckeditor.com/addon/divarea). - -## CKEditor 4.3 Beta - -New Features: - -* [#9764](http://dev.ckeditor.com/ticket/9764): Widget System. - * [Widget plugin](http://ckeditor.com/addon/widget) introducing the [Widget API](http://docs.ckeditor.com/#!/api/CKEDITOR.plugins.widget). - * New [`editor.enterMode`](http://docs.ckeditor.com/#!/api/CKEDITOR.editor-property-enterMode) and [`editor.shiftEnterMode`](http://docs.ckeditor.com/#!/api/CKEDITOR.editor-property-shiftEnterMode) properties &ndash; normalized versions of [`config.enterMode`](http://docs.ckeditor.com/#!/api/CKEDITOR.config-cfg-enterMode) and [`config.shiftEnterMode`](http://docs.ckeditor.com/#!/api/CKEDITOR.config-cfg-shiftEnterMode). - * Dynamic editor settings. Starting from CKEditor 4.3 Beta, *Enter* mode values and [content filter](http://docs.ckeditor.com/#!/guide/dev_advanced_content_filter) instances may be changed dynamically (for example when the caret was placed in an element in which editor features should be adjusted). When you are implementing a new editor feature, you should base its behavior on [dynamic](http://docs.ckeditor.com/#!/api/CKEDITOR.editor-property-activeEnterMode) or [static](http://docs.ckeditor.com/#!/api/CKEDITOR.editor-property-enterMode) *Enter* mode values depending on whether this feature works in selection context or globally on editor content. - * Dynamic *Enter* mode values &ndash; [`editor.setActiveEnterMode()`](http://docs.ckeditor.com/#!/api/CKEDITOR.editor-method-setActiveEnterMode) method, [`editor.activeEnterModeChange`](http://docs.ckeditor.com/#!/api/CKEDITOR.editor-event-activeEnterModeChange) event, and two properties: [`editor.activeEnterMode`](http://docs.ckeditor.com/#!/api/CKEDITOR.editor-property-activeEnterMode) and [`editor.activeShiftEnterMode`](http://docs.ckeditor.com/#!/api/CKEDITOR.editor-property-activeShiftEnterMode). - * Dynamic content filter instances &ndash; [`editor.setActiveFilter()`](http://docs.ckeditor.com/#!/api/CKEDITOR.editor-method-setActiveFilter) method, [`editor.activeFilterChange`](http://docs.ckeditor.com/#!/api/CKEDITOR.editor-event-activeFilterChange) event, and [`editor.activeFilter`](http://docs.ckeditor.com/#!/api/CKEDITOR.editor-property-activeFilter) property. - * "Fake" selection was introduced. It makes it possible to virtually select any element when the real selection remains hidden. See the [`selection.fake()`](http://docs.ckeditor.com/#!/api/CKEDITOR.dom.selection-method-fake) method. - * Default [`htmlParser.filter`](http://docs.ckeditor.com/#!/api/CKEDITOR.htmlParser.filter) rules are not applied to non-editable elements (elements with `contenteditable` attribute set to `false` and their descendants) anymore. To add a rule which will be applied to all elements you need to pass an additional argument to the [`filter.addRules()`](http://docs.ckeditor.com/#!/api/CKEDITOR.htmlParser.filter-method-addRules) method. - * Dozens of new methods were introduced &ndash; most interesting ones: - * [`document.find()`](http://docs.ckeditor.com/#!/api/CKEDITOR.dom.document-method-find), - * [`document.findOne()`](http://docs.ckeditor.com/#!/api/CKEDITOR.dom.document-method-findOne), - * [`editable.insertElementIntoRange()`](http://docs.ckeditor.com/#!/api/CKEDITOR.editable-method-insertElementIntoRange), - * [`range.moveToClosestEditablePosition()`](http://docs.ckeditor.com/#!/api/CKEDITOR.dom.range-method-moveToClosestEditablePosition), - * New methods for [`htmlParser.node`](http://docs.ckeditor.com/#!/api/CKEDITOR.htmlParser.node) and [`htmlParser.element`](http://docs.ckeditor.com/#!/api/CKEDITOR.htmlParser.element). -* [#10659](http://dev.ckeditor.com/ticket/10659): New [Enhanced Image](http://ckeditor.com/addon/image2) plugin that introduces a widget with integrated image captions, an option to center images, and dynamic "click and drag" resizing. -* [#10664](http://dev.ckeditor.com/ticket/10664): New [Mathematical Formulas](http://ckeditor.com/addon/mathjax) plugin that introduces the MathJax widget. -* [#7987](https://dev.ckeditor.com/ticket/7987): New [Language](http://ckeditor.com/addon/language) plugin that implements Language toolbar button to support [WCAG 3.1.2 Language of Parts](http://www.w3.org/TR/UNDERSTANDING-WCAG20/meaning-other-lang-id.html). -* [#10708](http://dev.ckeditor.com/ticket/10708): New [smileys](http://ckeditor.com/addon/smiley). - -## CKEditor 4.2.3 - -Fixed Issues: - -* [#10994](http://dev.ckeditor.com/ticket/10994): Fixed: Loading external jQuery library when opening the [jQuery Adapter](http://docs.ckeditor.com/#!/guide/dev_jquery) sample directly from file. -* [#10975](http://dev.ckeditor.com/ticket/10975): [IE] Fixed: Error thrown while opening the color palette. -* [#9929](http://dev.ckeditor.com/ticket/9929): [Blink/WebKit] Fixed: A non-breaking space is created once a character is deleted and a regular space is typed. -* [#10963](http://dev.ckeditor.com/ticket/10963): Fixed: JAWS issue with the keyboard shortcut for [Magic Line](http://ckeditor.com/addon/magicline). -* [#11096](http://dev.ckeditor.com/ticket/11096): Fixed: TypeError: Object has no method 'is'. - -## CKEditor 4.2.2 - -Fixed Issues: - -* [#9314](http://dev.ckeditor.com/ticket/9314): Fixed: Incorrect error message on closing a dialog window without saving changs. -* [#10308](http://dev.ckeditor.com/ticket/10308): [IE10] Fixed: Unspecified error when deleting a row. -* [#10945](http://dev.ckeditor.com/ticket/10945): [Chrome] Fixed: Clicking with a mouse inside the editor does not show the caret. -* [#10912](http://dev.ckeditor.com/ticket/10912): Prevent default action when content of a non-editable link is clicked. -* [#10913](http://dev.ckeditor.com/ticket/10913): Fixed [`CKEDITOR.plugins.addExternal()`](http://docs.ckeditor.com/#!/api/CKEDITOR.resourceManager-method-addExternal) not handling paths including file name specified. -* [#10666](http://dev.ckeditor.com/ticket/10666): Fixed [`CKEDITOR.tools.isArray()`](http://docs.ckeditor.com/#!/api/CKEDITOR.tools-method-isArray) not working cross frame. -* [#10910](http://dev.ckeditor.com/ticket/10910): [IE9] Fixed JavaScript error thrown in Compatibility Mode when clicking and/or typing in the editing area. -* [#10868](http://dev.ckeditor.com/ticket/10868): [IE8] Prevent the browser from crashing when applying the Inline Quotation style. -* [#10915](http://dev.ckeditor.com/ticket/10915): Fixed: Invalid CSS filter in the Kama skin. -* [#10914](http://dev.ckeditor.com/ticket/10914): Plugins [Indent List](http://ckeditor.com/addon/indentlist) and [Indent Block](http://ckeditor.com/addon/indentblock) are now included in the build configuration. -* [#10812](http://dev.ckeditor.com/ticket/10812): Fixed [`range.createBookmark2()`](http://docs.ckeditor.com/#!/api/CKEDITOR.dom.range-method-createBookmark2) incorrectly normalizing offsets. This bug was causing many issues: [#10850](http://dev.ckeditor.com/ticket/10850), [#10842](http://dev.ckeditor.com/ticket/10842). -* [#10951](http://dev.ckeditor.com/ticket/10951): Reviewed and optimized focus handling on panels (combo, menu buttons, color buttons, and context menu) to enhance accessibility. Fixed [#10705](http://dev.ckeditor.com/ticket/10705), [#10706](http://dev.ckeditor.com/ticket/10706) and [#10707](http://dev.ckeditor.com/ticket/10707). -* [#10704](http://dev.ckeditor.com/ticket/10704): Fixed a JAWS issue with the Select Color dialog window title not being announced. -* [#10753](http://dev.ckeditor.com/ticket/10753): The floating toolbar in inline instances now has a dedicated accessibility label. - -## CKEditor 4.2.1 - -Fixed Issues: - -* [#10301](http://dev.ckeditor.com/ticket/10301): [IE9-10] Undo fails after 3+ consecutive paste actions with a JavaScript error. -* [#10689](http://dev.ckeditor.com/ticket/10689): Save toolbar button saves only the first editor instance. -* [#10368](http://dev.ckeditor.com/ticket/10368): Move language reading direction definition (`dir`) from main language file to core. -* [#9330](http://dev.ckeditor.com/ticket/9330): Fixed pasting anchors from MS Word. -* [#8103](http://dev.ckeditor.com/ticket/8103): Fixed pasting nested lists from MS Word. -* [#9958](http://dev.ckeditor.com/ticket/9958): [IE9] Pressing the "OK" button will trigger the `onbeforeunload` event in the popup dialog. -* [#10662](http://dev.ckeditor.com/ticket/10662): Fixed styles from the Styles drop-down list not registering to the ACF in case when the [Shared Spaces plugin](http://ckeditor.com/addon/sharedspace) is used. -* [#9654](http://dev.ckeditor.com/ticket/9654): Problems with Internet Explorer 10 Quirks Mode. -* [#9816](http://dev.ckeditor.com/ticket/9816): Floating toolbar does not reposition vertically in several cases. -* [#10646](http://dev.ckeditor.com/ticket/10646): Removing a selected sublist or nested table with *Backspace/Delete* removes the parent element. -* [#10623](http://dev.ckeditor.com/ticket/10623): [WebKit] Page is scrolled when opening a drop-down list. -* [#10004](http://dev.ckeditor.com/ticket/10004): [ChromeVox] Button names are not announced. -* [#10731](http://dev.ckeditor.com/ticket/10731): [WebSpellChecker](http://ckeditor.com/addon/wsc) plugin breaks cloning of editor configuration. -* It is now possible to set per instance [WebSpellChecker](http://ckeditor.com/addon/wsc) plugin configuration instead of setting the configuration globally. - -## CKEditor 4.2 - -**Important Notes:** - -* Dropped compatibility support for Internet Explorer 7 and Firefox 3.6. - -* Both the Basic and the Standard distribution packages will not contain the new [Indent Block](http://ckeditor.com/addon/indentblock) plugin. Because of this the [Advanced Content Filter](http://docs.ckeditor.com/#!/guide/dev_advanced_content_filter) might remove block indentations from existing contents. If you want to prevent this, either [add an appropriate ACF rule to your filter](http://docs.ckeditor.com/#!/guide/dev_allowed_content_rules) or create a custom build based on the Basic/Standard package and add the Indent Block plugin in [CKBuilder](http://ckeditor.com/builder). - -New Features: - -* [#10027](http://dev.ckeditor.com/ticket/10027): Separated list and block indentation into two plugins: [Indent List](http://ckeditor.com/addon/indentlist) and [Indent Block](http://ckeditor.com/addon/indentblock). -* [#8244](http://dev.ckeditor.com/ticket/8244): Use *(Shift+)Tab* to indent and outdent lists. -* [#10281](http://dev.ckeditor.com/ticket/10281): The [jQuery Adapter](http://docs.ckeditor.com/#!/guide/dev_jquery) is now available. Several jQuery-related issues fixed: [#8261](http://dev.ckeditor.com/ticket/8261), [#9077](http://dev.ckeditor.com/ticket/9077), [#8710](http://dev.ckeditor.com/ticket/8710), [#8530](http://dev.ckeditor.com/ticket/8530), [#9019](http://dev.ckeditor.com/ticket/9019), [#6181](http://dev.ckeditor.com/ticket/6181), [#7876](http://dev.ckeditor.com/ticket/7876), [#6906](http://dev.ckeditor.com/ticket/6906). -* [#10042](http://dev.ckeditor.com/ticket/10042): Introduced [`config.title`](http://docs.ckeditor.com/#!/api/CKEDITOR.config-cfg-title) setting to change the human-readable title of the editor. -* [#9794](http://dev.ckeditor.com/ticket/9794): Added [`editor.change`](http://docs.ckeditor.com/#!/api/CKEDITOR.editor-event-change) event. -* [#9923](http://dev.ckeditor.com/ticket/9923): HiDPI support in the editor UI. HiDPI icons for [Moono skin](http://ckeditor.com/addon/moono) added. -* [#8031](http://dev.ckeditor.com/ticket/8031): Handle `required` attributes on `<textarea>` elements &mdash; introduced [`editor.required`](http://docs.ckeditor.com/#!/api/CKEDITOR.editor-event-required) event. -* [#10280](http://dev.ckeditor.com/ticket/10280): Ability to replace `<textarea>` elements with the inline editor. - -Fixed Issues: - -* [#10599](http://dev.ckeditor.com/ticket/10599): [Indent](http://ckeditor.com/addon/indent) plugin is no longer required by the [List](http://ckeditor.com/addon/list) plugin. -* [#10370](http://dev.ckeditor.com/ticket/10370): Inconsistency in data events between framed and inline editors. -* [#10438](http://dev.ckeditor.com/ticket/10438): [FF, IE] No selection is done on an editable element on executing [`editor.setData()`](http://docs.ckeditor.com/#!/api/CKEDITOR.editor-method-setData). - -## CKEditor 4.1.3 - -New Features: - -* Added new translation: Indonesian. - -Fixed Issues: - -* [#10644](http://dev.ckeditor.com/ticket/10644): Fixed a critical bug when pasting plain text in Blink-based browsers. -* [#5189](http://dev.ckeditor.com/ticket/5189): [Find/Replace](http://ckeditor.com/addon/find) dialog window: rename "Cancel" button to "Close". -* [#10562](http://dev.ckeditor.com/ticket/10562): [Housekeeping] Unified CSS gradient filter formats in the [Moono](http://ckeditor.com/addon/moono) skin. -* [#10537](http://dev.ckeditor.com/ticket/10537): Advanced Content Filter should register a default rule for [`config.shiftEnterMode`](http://docs.ckeditor.com/#!/api/CKEDITOR.config-cfg-shiftEnterMode). -* [#10610](http://dev.ckeditor.com/ticket/10610): [`CKEDITOR.dialog.addIframe()`](http://docs.ckeditor.com/#!/api/CKEDITOR.dialog-static-method-addIframe) incorrectly sets the iframe size in dialog windows. - -## CKEditor 4.1.2 - -New Features: - -* Added new translation: Sinhala. - -Fixed Issues: - -* [#10339](http://dev.ckeditor.com/ticket/10339): Fixed: Error thrown when inserted data was totally stripped out after filtering and processing. -* [#10298](http://dev.ckeditor.com/ticket/10298): Fixed: Data processor breaks attributes containing protected parts. -* [#10367](http://dev.ckeditor.com/ticket/10367): Fixed: [`editable.insertText()`](http://docs.ckeditor.com/#!/api/CKEDITOR.editable-method-insertText) loses characters when `RegExp` replace controls are being inserted. -* [#10165](http://dev.ckeditor.com/ticket/10165): [IE] Access denied error when `document.domain` has been altered. -* [#9761](http://dev.ckeditor.com/ticket/9761): Update the *Backspace* key state in [`keystrokeHandler.blockedKeystrokes`](http://docs.ckeditor.com/#!/api/CKEDITOR.keystrokeHandler-property-blockedKeystrokes) when calling [`editor.setReadOnly()`](http://docs.ckeditor.com/#!/api/CKEDITOR.editor-method-setReadOnly). -* [#6504](http://dev.ckeditor.com/ticket/6504): Fixed: Race condition while loading several [`config.customConfig`](http://docs.ckeditor.com/#!/api/CKEDITOR.config-cfg-customConfig) files. -* [#10146](http://dev.ckeditor.com/ticket/10146): [Firefox] Empty lines are being removed while [`config.enterMode`](http://docs.ckeditor.com/#!/api/CKEDITOR.config-cfg-enterMode) is [`CKEDITOR.ENTER_BR`](http://docs.ckeditor.com/#!/api/CKEDITOR-property-ENTER_BR). -* [#10360](http://dev.ckeditor.com/ticket/10360): Fixed: ARIA `role="application"` should not be used for dialog windows. -* [#10361](http://dev.ckeditor.com/ticket/10361): Fixed: ARIA `role="application"` should not be used for floating panels. -* [#10510](http://dev.ckeditor.com/ticket/10510): Introduced unique voice labels to differentiate between different editor instances. -* [#9945](http://dev.ckeditor.com/ticket/9945): [iOS] Scrolling not possible on iPad. -* [#10389](http://dev.ckeditor.com/ticket/10389): Fixed: Invalid HTML in the "Text and Table" template. -* [WebSpellChecker](http://ckeditor.com/addon/wsc) plugin user interface was changed to match CKEditor 4 style. - -## CKEditor 4.1.1 - -New Features: - -* Added new translation: Albanian. - -Fixed Issues: - -* [#10172](http://dev.ckeditor.com/ticket/10172): Pressing *Delete* or *Backspace* in an empty table cell moves the cursor to the next/previous cell. -* [#10219](http://dev.ckeditor.com/ticket/10219): Error thrown when destroying an editor instance in parallel with a `mouseup` event. -* [#10265](http://dev.ckeditor.com/ticket/10265): Wrong loop type in the [File Browser](http://ckeditor.com/addon/filebrowser) plugin. -* [#10249](http://dev.ckeditor.com/ticket/10249): Wrong undo/redo states at start. -* [#10268](http://dev.ckeditor.com/ticket/10268): [Show Blocks](http://ckeditor.com/addon/showblocks) does not recover after switching to Source view. -* [#9995](http://dev.ckeditor.com/ticket/9995): HTML code in the `<textarea>` should not be modified by the [`htmlDataProcessor`](http://docs.ckeditor.com/#!/api/CKEDITOR.htmlDataProcessor). -* [#10320](http://dev.ckeditor.com/ticket/10320): [Justify](http://ckeditor.com/addon/justify) plugin should add elements to Advanced Content Filter based on current [Enter mode](http://docs.ckeditor.com/#!/api/CKEDITOR.config-cfg-enterMode). -* [#10260](http://dev.ckeditor.com/ticket/10260): Fixed: Advanced Content Filter blocks [`tabSpaces`](http://docs.ckeditor.com/#!/api/CKEDITOR.config-cfg-tabSpaces). Unified `data-cke-*` attributes filtering. -* [#10315](http://dev.ckeditor.com/ticket/10315): [WebKit] [Undo manager](http://docs.ckeditor.com/#!/api/CKEDITOR.plugins.undo.UndoManager) should not record snapshots after a filling character was added/removed. -* [#10291](http://dev.ckeditor.com/ticket/10291): [WebKit] Space after a filling character should be secured. -* [#10330](http://dev.ckeditor.com/ticket/10330): [WebKit] The filling character is not removed on `keydown` in specific cases. -* [#10285](http://dev.ckeditor.com/ticket/10285): Fixed: Styled text pasted from MS Word causes an infinite loop. -* [#10131](http://dev.ckeditor.com/ticket/10131): Fixed: [`undoManager.update()`](http://docs.ckeditor.com/#!/api/CKEDITOR.plugins.undo.UndoManager-method-update) does not refresh the command state. -* [#10337](http://dev.ckeditor.com/ticket/10337): Fixed: Unable to remove `<s>` using [Remove Format](http://ckeditor.com/addon/removeformat). - -## CKEditor 4.1 - -Fixed Issues: - -* [#10192](http://dev.ckeditor.com/ticket/10192): Closing lists with the *Enter* key does not work with [Advanced Content Filter](http://docs.ckeditor.com/#!/guide/dev_advanced_content_filter) in several cases. -* [#10191](http://dev.ckeditor.com/ticket/10191): Fixed allowed content rules unification, so the [`filter.allowedContent`](http://docs.ckeditor.com/#!/api/CKEDITOR.filter-property-allowedContent) property always contains rules in the same format. -* [#10224](http://dev.ckeditor.com/ticket/10224): Advanced Content Filter does not remove non-empty `<a>` elements anymore. -* Minor issues in plugin integration with Advanced Content Filter: - * [#10166](http://dev.ckeditor.com/ticket/10166): Added transformation from the `align` attribute to `float` style to preserve backward compatibility after the introduction of Advanced Content Filter. - * [#10195](http://dev.ckeditor.com/ticket/10195): [Image](http://ckeditor.com/addon/image) plugin no longer registers rules for links to Advanced Content Filter. - * [#10213](http://dev.ckeditor.com/ticket/10213): [Justify](http://ckeditor.com/addon/justify) plugin is now correctly registering rules to Advanced Content Filter when [`config.justifyClasses`](http://docs.ckeditor.com/#!/api/CKEDITOR.config-cfg-justifyClasses) is defined. - -## CKEditor 4.1 RC - -New Features: - -* [#9829](http://dev.ckeditor.com/ticket/9829): Advanced Content Filter - data and features activation based on editor configuration. - - Brand new data filtering system that works in 2 modes: - - * Based on loaded features (toolbar items, plugins) - the data will be filtered according to what the editor in its - current configuration can handle. - * Based on [`config.allowedContent`](http://docs.ckeditor.com/#!/api/CKEDITOR.config-cfg-allowedContent) rules - the data - will be filtered and the editor features (toolbar items, commands, keystrokes) will be enabled if they are allowed. - - See the `datafiltering.html` sample, [guides](http://docs.ckeditor.com/#!/guide/dev_advanced_content_filter) and [`CKEDITOR.filter` API documentation](http://docs.ckeditor.com/#!/api/CKEDITOR.filter). -* [#9387](http://dev.ckeditor.com/ticket/9387): Reintroduced [Shared Spaces](http://ckeditor.com/addon/sharedspace) - the ability to display toolbar and bottom editor space in selected locations and to share them by different editor instances. -* [#9907](http://dev.ckeditor.com/ticket/9907): Added the [`contentPreview`](http://docs.ckeditor.com/#!/api/CKEDITOR-event-contentPreview) event for preview data manipulation. -* [#9713](http://dev.ckeditor.com/ticket/9713): Introduced the [Source Dialog](http://ckeditor.com/addon/sourcedialog) plugin that brings raw HTML editing for inline editor instances. -* Included in [#9829](http://dev.ckeditor.com/ticket/9829): Introduced new events, [`toHtml`](http://docs.ckeditor.com/#!/api/CKEDITOR.editor-event-toHtml) and [`toDataFormat`](http://docs.ckeditor.com/#!/api/CKEDITOR.editor-event-toDataFormat), allowing for better integration with data processing. -* [#9981](http://dev.ckeditor.com/ticket/9981): Added ability to filter [`htmlParser.fragment`](http://docs.ckeditor.com/#!/api/CKEDITOR.htmlParser.fragment), [`htmlParser.element`](http://docs.ckeditor.com/#!/api/CKEDITOR.htmlParser.element) etc. by many [`htmlParser.filter`](http://docs.ckeditor.com/#!/api/CKEDITOR.htmlParser.filter)s before writing structure to an HTML string. -* Included in [#10103](http://dev.ckeditor.com/ticket/10103): - * Introduced the [`editor.status`](http://docs.ckeditor.com/#!/api/CKEDITOR.editor-property-status) property to make it easier to check the current status of the editor. - * Default [`command`](http://docs.ckeditor.com/#!/api/CKEDITOR.command) state is now [`CKEDITOR.TRISTATE_DISABLE`](http://docs.ckeditor.com/#!/api/CKEDITOR-property-TRISTATE_DISABLED). It will be activated on [`editor.instanceReady`](http://docs.ckeditor.com/#!/api/CKEDITOR-event-instanceReady) or immediately after being added if the editor is already initialized. -* [#9796](http://dev.ckeditor.com/ticket/9796): Introduced `<s>` as a default tag for strikethrough, which replaces obsolete `<strike>` in HTML5. - -## CKEditor 4.0.3 - -Fixed Issues: - -* [#10196](http://dev.ckeditor.com/ticket/10196): Fixed context menus not opening with keyboard shortcuts when [Autogrow](http://ckeditor.com/addon/autogrow) is enabled. -* [#10212](http://dev.ckeditor.com/ticket/10212): [IE7-10] Undo command throws errors after multiple switches between Source and WYSIWYG view. -* [#10219](http://dev.ckeditor.com/ticket/10219): [Inline editor] Error thrown after calling [`editor.destroy()`](http://docs.ckeditor.com/#!/api/CKEDITOR.editor-method-destroy). - -## CKEditor 4.0.2 - -Fixed Issues: - -* [#9779](http://dev.ckeditor.com/ticket/9779): Fixed overriding [`CKEDITOR.getUrl()`](http://docs.ckeditor.com/#!/api/CKEDITOR-method-getUrl) with `CKEDITOR_GETURL`. -* [#9772](http://dev.ckeditor.com/ticket/9772): Custom buttons in the dialog window footer have different look and size ([Moono](http://ckeditor.com/addon/moono), [Kama](http://ckeditor.com/addon/kama) skins). -* [#9029](http://dev.ckeditor.com/ticket/9029): Custom styles added with the [`stylesSet.add()`](http://docs.ckeditor.com/#!/api/CKEDITOR.stylesSet-method-add) are displayed in the wrong order. -* [#9887](http://dev.ckeditor.com/ticket/9887): Disable [Magic Line](http://ckeditor.com/addon/magicline) when [`editor.readOnly`](http://docs.ckeditor.com/#!/api/CKEDITOR.editor-property-readOnly) is set. -* [#9882](http://dev.ckeditor.com/ticket/9882): Fixed empty document title on [`editor.getData()`](http://docs.ckeditor.com/#!/api/CKEDITOR.editor-method-getData) if set via the Document Properties dialog window. -* [#9773](http://dev.ckeditor.com/ticket/9773): Fixed rendering problems with selection fields in the Kama skin. -* [#9851](http://dev.ckeditor.com/ticket/9851): The [`selectionChange`](http://docs.ckeditor.com/#!/api/CKEDITOR.editor-event-selectionChange) event is not fired when mouse selection ended outside editable. -* [#9903](http://dev.ckeditor.com/ticket/9903): [Inline editor] Bad positioning of floating space with page horizontal scroll. -* [#9872](http://dev.ckeditor.com/ticket/9872): [`editor.checkDirty()`](http://docs.ckeditor.com/#!/api/CKEDITOR.editor-method-checkDirty) returns `true` when called onload. Removed the obsolete `editor.mayBeDirty` flag. -* [#9893](http://dev.ckeditor.com/ticket/9893): [IE] Fixed broken toolbar when editing mixed direction content in Quirks mode. -* [#9845](http://dev.ckeditor.com/ticket/9845): Fixed TAB navigation in the [Link](http://ckeditor.com/addon/link) dialog window when the Anchor option is used and no anchors are available. -* [#9883](http://dev.ckeditor.com/ticket/9883): Maximizing was making the entire page editable with [divarea](http://ckeditor.com/addon/divarea)-based editors. -* [#9940](http://dev.ckeditor.com/ticket/9940): [Firefox] Navigating back to a page with the editor was making the entire page editable. -* [#9966](http://dev.ckeditor.com/ticket/9966): Fixed: Unable to type square brackets with French keyboard layout. Changed [Magic Line](http://ckeditor.com/addon/magicline) keystrokes. -* [#9507](http://dev.ckeditor.com/ticket/9507): [Firefox] Selection is moved before editable position when the editor is focused for the first time. -* [#9947](http://dev.ckeditor.com/ticket/9947): [WebKit] Editor overflows parent container in some edge cases. -* [#10105](http://dev.ckeditor.com/ticket/10105): Fixed: Broken [sourcearea](http://ckeditor.com/addon/sourcearea) view when an RTL language is set. -* [#10123](http://dev.ckeditor.com/ticket/10123): [WebKit] Fixed: Several dialog windows have broken layout since the latest WebKit release. -* [#10152](http://dev.ckeditor.com/ticket/10152): Fixed: Invalid ARIA property used on menu items. - -## CKEditor 4.0.1.1 - -Fixed Issues: - -* Security update: Added protection against XSS attack and possible path disclosure in the PHP sample. - -## CKEditor 4.0.1 - -Fixed Issues: - -* [#9655](http://dev.ckeditor.com/ticket/9655): Support for IE Quirks Mode in the new [Moono skin](http://ckeditor.com/addon/moono). -* Accessibility issues (mainly in inline editor): [#9364](http://dev.ckeditor.com/ticket/9364), [#9368](http://dev.ckeditor.com/ticket/9368), [#9369](http://dev.ckeditor.com/ticket/9369), [#9370](http://dev.ckeditor.com/ticket/9370), [#9541](http://dev.ckeditor.com/ticket/9541), [#9543](http://dev.ckeditor.com/ticket/9543), [#9841](http://dev.ckeditor.com/ticket/9841), [#9844](http://dev.ckeditor.com/ticket/9844). -* [Magic Line](http://ckeditor.com/addon/magicline) plugin: - * [#9481](http://dev.ckeditor.com/ticket/9481): Added accessibility support for Magic Line. - * [#9509](http://dev.ckeditor.com/ticket/9509): Added Magic Line support for forms. - * [#9573](http://dev.ckeditor.com/ticket/9573): Magic Line does not disappear on `mouseout` in a specific case. -* [#9754](http://dev.ckeditor.com/ticket/9754): [WebKit] Cutting & pasting simple unformatted text generates an inline wrapper in WebKit browsers. -* [#9456](http://dev.ckeditor.com/ticket/9456): [Chrome] Properly paste bullet list style from MS Word. -* [#9699](http://dev.ckeditor.com/ticket/9699), [#9758](http://dev.ckeditor.com/ticket/9758): Improved selection locking when selecting by dragging. -* Context menu: - * [#9712](http://dev.ckeditor.com/ticket/9712): Opening the context menu destroys editor focus. - * [#9366](http://dev.ckeditor.com/ticket/9366): Context menu should be displayed over the floating toolbar. - * [#9706](http://dev.ckeditor.com/ticket/9706): Context menu generates a JavaScript error in inline mode when the editor is attached to a header element. -* [#9800](http://dev.ckeditor.com/ticket/9800): Hide float panel when resizing the window. -* [#9721](http://dev.ckeditor.com/ticket/9721): Padding in content of div-based editor puts the editing area under the bottom UI space. -* [#9528](http://dev.ckeditor.com/ticket/9528): Host page `box-sizing` style should not influence the editor UI elements. -* [#9503](http://dev.ckeditor.com/ticket/9503): [Form Elements](http://ckeditor.com/addon/forms) plugin adds context menu listeners only on supported input types. Added support for `tel`, `email`, `search` and `url` input types. -* [#9769](http://dev.ckeditor.com/ticket/9769): Improved floating toolbar positioning in a narrow window. -* [#9875](http://dev.ckeditor.com/ticket/9875): Table dialog window does not populate width correctly. -* [#8675](http://dev.ckeditor.com/ticket/8675): Deleting cells in a nested table removes the outer table cell. -* [#9815](http://dev.ckeditor.com/ticket/9815): Cannot edit dialog window fields in an editor initialized in the jQuery UI modal dialog. -* [#8888](http://dev.ckeditor.com/ticket/8888): CKEditor dialog windows do not show completely in a small window. -* [#9360](http://dev.ckeditor.com/ticket/9360): [Inline editor] Blocks shown for a `<div>` element stay permanently even after the user exits editing the `<div>`. -* [#9531](http://dev.ckeditor.com/ticket/9531): [Firefox & Inline editor] Toolbar is lost when closing the Format drop-down list by clicking its button. -* [#9553](http://dev.ckeditor.com/ticket/9553): Table width incorrectly set when the `border-width` style is specified. -* [#9594](http://dev.ckeditor.com/ticket/9594): Cannot tab past CKEditor when it is in read-only mode. -* [#9658](http://dev.ckeditor.com/ticket/9658): [IE9] Justify not working on selected images. -* [#9686](http://dev.ckeditor.com/ticket/9686): Added missing contents styles for `<pre>` elements. -* [#9709](http://dev.ckeditor.com/ticket/9709): [Paste from Word](http://ckeditor.com/addon/pastefromword) should not depend on configuration from other styles. -* [#9726](http://dev.ckeditor.com/ticket/9726): Removed [Color Dialog](http://ckeditor.com/addon/colordialog) plugin dependency from [Table Tools](http://ckeditor.com/addon/tabletools). -* [#9765](http://dev.ckeditor.com/ticket/9765): Toolbar Collapse command documented incorrectly in the [Accessibility Instructions](http://ckeditor.com/addon/a11yhelp) dialog window. -* [#9771](http://dev.ckeditor.com/ticket/9771): [WebKit & Opera] Fixed scrolling issues when pasting. -* [#9787](http://dev.ckeditor.com/ticket/9787): [IE9] `onChange` is not fired for checkboxes in dialogs. -* [#9842](http://dev.ckeditor.com/ticket/9842): [Firefox 17] When opening a toolbar menu for the first time and pressing the *Down Arrow* key, focus goes to the next toolbar button instead of the menu options. -* [#9847](http://dev.ckeditor.com/ticket/9847): [Elements Path](http://ckeditor.com/addon/elementspath) should not be initialized in the inline editor. -* [#9853](http://dev.ckeditor.com/ticket/9853): [`editor.addRemoveFormatFilter()`](http://docs.ckeditor.com/#!/api/CKEDITOR.editor-method-addRemoveFormatFilter) is exposed before it really works. -* [#8893](http://dev.ckeditor.com/ticket/8893): Value of the [`pasteFromWordCleanupFile`](http://docs.ckeditor.com/#!/api/CKEDITOR.config-cfg-pasteFromWordCleanupFile) configuration option is now taken from the instance configuration. -* [#9693](http://dev.ckeditor.com/ticket/9693): Removed "Live Preview" checkbox from UI color picker. - - -## CKEditor 4.0 - -The first stable release of the new CKEditor 4 code line. - -The CKEditor JavaScript API has been kept compatible with CKEditor 4, whenever -possible. The list of relevant changes can be found in the [API Changes page of -the CKEditor 4 documentation][1]. - -[1]: http://docs.ckeditor.com/#!/guide/dev_api_changes "API Changes" diff --git a/admin/plugins/ckeditor/LICENSE.md b/admin/plugins/ckeditor/LICENSE.md deleted file mode 100644 index d6f58ca..0000000 --- a/admin/plugins/ckeditor/LICENSE.md +++ /dev/null @@ -1,1420 +0,0 @@ -Software License Agreement -========================== - -CKEditor - The text editor for Internet - http://ckeditor.com -Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. - -Licensed under the terms of any of the following licenses at your -choice: - - - GNU General Public License Version 2 or later (the "GPL") - http://www.gnu.org/licenses/gpl.html - (See Appendix A) - - - GNU Lesser General Public License Version 2.1 or later (the "LGPL") - http://www.gnu.org/licenses/lgpl.html - (See Appendix B) - - - Mozilla Public License Version 1.1 or later (the "MPL") - http://www.mozilla.org/MPL/MPL-1.1.html - (See Appendix C) - -You are not required to, but if you want to explicitly declare the -license you have chosen to be bound to when using, reproducing, -modifying and distributing this software, just include a text file -titled "legal.txt" in your version of this software, indicating your -license choice. In any case, your choice will not restrict any -recipient of your version of this software to use, reproduce, modify -and distribute this software under any of the above licenses. - -Sources of Intellectual Property Included in CKEditor ------------------------------------------------------ - -Where not otherwise indicated, all CKEditor content is authored by -CKSource engineers and consists of CKSource-owned intellectual -property. In some specific instances, CKEditor will incorporate work -done by developers outside of CKSource with their express permission. - -The following libraries are included in CKEditor under the MIT license (see Appendix D): - -* CKSource Samples Framework (included in the samples) - Copyright (c) 2014-2017, CKSource - Frederico Knabben. -* PicoModal (included in `samples/js/sf.js`) - Copyright (c) 2012 James Frasca. -* CodeMirror (included in the samples) - Copyright (C) 2014 by Marijn Haverbeke <marijnh@gmail.com> and others. - -Parts of code taken from the following libraries are included in CKEditor under the MIT license (see Appendix D): - -* jQuery (inspired the domReady function, ckeditor_base.js) - Copyright (c) 2011 John Resig, http://jquery.com/ - -The following libraries are included in CKEditor under the SIL Open Font License, Version 1.1 (see Appendix E): - -* Font Awesome (included in the toolbar configurator) - Copyright (C) 2012 by Dave Gandy. - -The following libraries are included in CKEditor under the BSD-3 License (see Appendix F): - -* highlight.js (included in the `codesnippet` plugin) - Copyright (c) 2006, Ivan Sagalaev. -* YUI Library (included in the `uicolor` plugin) - Copyright (c) 2009, Yahoo! Inc. - - -Trademarks ----------- - -CKEditor is a trademark of CKSource - Frederico Knabben. All other brand -and product names are trademarks, registered trademarks or service -marks of their respective holders. - ---- - -Appendix A: The GPL License ---------------------------- - -``` -GNU GENERAL PUBLIC LICENSE -Version 2, June 1991 - - Copyright (C) 1989, 1991 Free Software Foundation, Inc., - 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - Everyone is permitted to copy and distribute verbatim copies - of this license document, but changing it is not allowed. - -Preamble - - The licenses for most software are designed to take away your -freedom to share and change it. By contrast, the GNU General Public -License is intended to guarantee your freedom to share and change free -software-to make sure the software is free for all its users. This -General Public License applies to most of the Free Software -Foundation's software and to any other program whose authors commit to -using it. (Some other Free Software Foundation software is covered by -the GNU Lesser General Public License instead.) You can apply it to -your programs, too. - - When we speak of free software, we are referring to freedom, not -price. Our General Public Licenses are designed to make sure that you -have the freedom to distribute copies of free software (and charge for -this service if you wish), that you receive source code or can get it -if you want it, that you can change the software or use pieces of it -in new free programs; and that you know you can do these things. - - To protect your rights, we need to make restrictions that forbid -anyone to deny you these rights or to ask you to surrender the rights. -These restrictions translate to certain responsibilities for you if you -distribute copies of the software, or if you modify it. - - For example, if you distribute copies of such a program, whether -gratis or for a fee, you must give the recipients all the rights that -you have. You must make sure that they, too, receive or can get the -source code. And you must show them these terms so they know their -rights. - - We protect your rights with two steps: (1) copyright the software, and -(2) offer you this license which gives you legal permission to copy, -distribute and/or modify the software. - - Also, for each author's protection and ours, we want to make certain -that everyone understands that there is no warranty for this free -software. If the software is modified by someone else and passed on, we -want its recipients to know that what they have is not the original, so -that any problems introduced by others will not reflect on the original -authors' reputations. - - Finally, any free program is threatened constantly by software -patents. We wish to avoid the danger that redistributors of a free -program will individually obtain patent licenses, in effect making the -program proprietary. To prevent this, we have made it clear that any -patent must be licensed for everyone's free use or not licensed at all. - - The precise terms and conditions for copying, distribution and -modification follow. - -GNU GENERAL PUBLIC LICENSE -TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION - - 0. This License applies to any program or other work which contains -a notice placed by the copyright holder saying it may be distributed -under the terms of this General Public License. The "Program", below, -refers to any such program or work, and a "work based on the Program" -means either the Program or any derivative work under copyright law: -that is to say, a work containing the Program or a portion of it, -either verbatim or with modifications and/or translated into another -language. (Hereinafter, translation is included without limitation in -the term "modification".) Each licensee is addressed as "you". - -Activities other than copying, distribution and modification are not -covered by this License; they are outside its scope. The act of -running the Program is not restricted, and the output from the Program -is covered only if its contents constitute a work based on the -Program (independent of having been made by running the Program). -Whether that is true depends on what the Program does. - - 1. You may copy and distribute verbatim copies of the Program's -source code as you receive it, in any medium, provided that you -conspicuously and appropriately publish on each copy an appropriate -copyright notice and disclaimer of warranty; keep intact all the -notices that refer to this License and to the absence of any warranty; -and give any other recipients of the Program a copy of this License -along with the Program. - -You may charge a fee for the physical act of transferring a copy, and -you may at your option offer warranty protection in exchange for a fee. - - 2. You may modify your copy or copies of the Program or any portion -of it, thus forming a work based on the Program, and copy and -distribute such modifications or work under the terms of Section 1 -above, provided that you also meet all of these conditions: - - a) You must cause the modified files to carry prominent notices - stating that you changed the files and the date of any change. - - b) You must cause any work that you distribute or publish, that in - whole or in part contains or is derived from the Program or any - part thereof, to be licensed as a whole at no charge to all third - parties under the terms of this License. - - c) If the modified program normally reads commands interactively - when run, you must cause it, when started running for such - interactive use in the most ordinary way, to print or display an - announcement including an appropriate copyright notice and a - notice that there is no warranty (or else, saying that you provide - a warranty) and that users may redistribute the program under - these conditions, and telling the user how to view a copy of this - License. (Exception: if the Program itself is interactive but - does not normally print such an announcement, your work based on - the Program is not required to print an announcement.) - -These requirements apply to the modified work as a whole. If -identifiable sections of that work are not derived from the Program, -and can be reasonably considered independent and separate works in -themselves, then this License, and its terms, do not apply to those -sections when you distribute them as separate works. But when you -distribute the same sections as part of a whole which is a work based -on the Program, the distribution of the whole must be on the terms of -this License, whose permissions for other licensees extend to the -entire whole, and thus to each and every part regardless of who wrote it. - -Thus, it is not the intent of this section to claim rights or contest -your rights to work written entirely by you; rather, the intent is to -exercise the right to control the distribution of derivative or -collective works based on the Program. - -In addition, mere aggregation of another work not based on the Program -with the Program (or with a work based on the Program) on a volume of -a storage or distribution medium does not bring the other work under -the scope of this License. - - 3. You may copy and distribute the Program (or a work based on it, -under Section 2) in object code or executable form under the terms of -Sections 1 and 2 above provided that you also do one of the following: - - a) Accompany it with the complete corresponding machine-readable - source code, which must be distributed under the terms of Sections - 1 and 2 above on a medium customarily used for software interchange; or, - - b) Accompany it with a written offer, valid for at least three - years, to give any third party, for a charge no more than your - cost of physically performing source distribution, a complete - machine-readable copy of the corresponding source code, to be - distributed under the terms of Sections 1 and 2 above on a medium - customarily used for software interchange; or, - - c) Accompany it with the information you received as to the offer - to distribute corresponding source code. (This alternative is - allowed only for noncommercial distribution and only if you - received the program in object code or executable form with such - an offer, in accord with Subsection b above.) - -The source code for a work means the preferred form of the work for -making modifications to it. For an executable work, complete source -code means all the source code for all modules it contains, plus any -associated interface definition files, plus the scripts used to -control compilation and installation of the executable. However, as a -special exception, the source code distributed need not include -anything that is normally distributed (in either source or binary -form) with the major components (compiler, kernel, and so on) of the -operating system on which the executable runs, unless that component -itself accompanies the executable. - -If distribution of executable or object code is made by offering -access to copy from a designated place, then offering equivalent -access to copy the source code from the same place counts as -distribution of the source code, even though third parties are not -compelled to copy the source along with the object code. - - 4. You may not copy, modify, sublicense, or distribute the Program -except as expressly provided under this License. Any attempt -otherwise to copy, modify, sublicense or distribute the Program is -void, and will automatically terminate your rights under this License. -However, parties who have received copies, or rights, from you under -this License will not have their licenses terminated so long as such -parties remain in full compliance. - - 5. You are not required to accept this License, since you have not -signed it. However, nothing else grants you permission to modify or -distribute the Program or its derivative works. These actions are -prohibited by law if you do not accept this License. Therefore, by -modifying or distributing the Program (or any work based on the -Program), you indicate your acceptance of this License to do so, and -all its terms and conditions for copying, distributing or modifying -the Program or works based on it. - - 6. Each time you redistribute the Program (or any work based on the -Program), the recipient automatically receives a license from the -original licensor to copy, distribute or modify the Program subject to -these terms and conditions. You may not impose any further -restrictions on the recipients' exercise of the rights granted herein. -You are not responsible for enforcing compliance by third parties to -this License. - - 7. If, as a consequence of a court judgment or allegation of patent -infringement or for any other reason (not limited to patent issues), -conditions are imposed on you (whether by court order, agreement or -otherwise) that contradict the conditions of this License, they do not -excuse you from the conditions of this License. If you cannot -distribute so as to satisfy simultaneously your obligations under this -License and any other pertinent obligations, then as a consequence you -may not distribute the Program at all. For example, if a patent -license would not permit royalty-free redistribution of the Program by -all those who receive copies directly or indirectly through you, then -the only way you could satisfy both it and this License would be to -refrain entirely from distribution of the Program. - -If any portion of this section is held invalid or unenforceable under -any particular circumstance, the balance of the section is intended to -apply and the section as a whole is intended to apply in other -circumstances. - -It is not the purpose of this section to induce you to infringe any -patents or other property right claims or to contest validity of any -such claims; this section has the sole purpose of protecting the -integrity of the free software distribution system, which is -implemented by public license practices. Many people have made -generous contributions to the wide range of software distributed -through that system in reliance on consistent application of that -system; it is up to the author/donor to decide if he or she is willing -to distribute software through any other system and a licensee cannot -impose that choice. - -This section is intended to make thoroughly clear what is believed to -be a consequence of the rest of this License. - - 8. If the distribution and/or use of the Program is restricted in -certain countries either by patents or by copyrighted interfaces, the -original copyright holder who places the Program under this License -may add an explicit geographical distribution limitation excluding -those countries, so that distribution is permitted only in or among -countries not thus excluded. In such case, this License incorporates -the limitation as if written in the body of this License. - - 9. The Free Software Foundation may publish revised and/or new versions -of the General Public License from time to time. Such new versions will -be similar in spirit to the present version, but may differ in detail to -address new problems or concerns. - -Each version is given a distinguishing version number. If the Program -specifies a version number of this License which applies to it and "any -later version", you have the option of following the terms and conditions -either of that version or of any later version published by the Free -Software Foundation. If the Program does not specify a version number of -this License, you may choose any version ever published by the Free Software -Foundation. - - 10. If you wish to incorporate parts of the Program into other free -programs whose distribution conditions are different, write to the author -to ask for permission. For software which is copyrighted by the Free -Software Foundation, write to the Free Software Foundation; we sometimes -make exceptions for this. Our decision will be guided by the two goals -of preserving the free status of all derivatives of our free software and -of promoting the sharing and reuse of software generally. - -NO WARRANTY - - 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY -FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN -OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES -PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED -OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF -MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS -TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE -PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, -REPAIR OR CORRECTION. - - 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING -WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR -REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, -INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING -OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED -TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY -YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER -PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE -POSSIBILITY OF SUCH DAMAGES. - -END OF TERMS AND CONDITIONS -``` - -Appendix B: The LGPL License ----------------------------- - -``` -GNU LESSER GENERAL PUBLIC LICENSE -Version 2.1, February 1999 - - Copyright (C) 1991, 1999 Free Software Foundation, Inc. - 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - Everyone is permitted to copy and distribute verbatim copies - of this license document, but changing it is not allowed. - -[This is the first released version of the Lesser GPL. It also counts - as the successor of the GNU Library Public License, version 2, hence - the version number 2.1.] - -Preamble - - The licenses for most software are designed to take away your -freedom to share and change it. By contrast, the GNU General Public -Licenses are intended to guarantee your freedom to share and change -free software-to make sure the software is free for all its users. - - This license, the Lesser General Public License, applies to some -specially designated software packages-typically libraries-of the -Free Software Foundation and other authors who decide to use it. You -can use it too, but we suggest you first think carefully about whether -this license or the ordinary General Public License is the better -strategy to use in any particular case, based on the explanations below. - - When we speak of free software, we are referring to freedom of use, -not price. Our General Public Licenses are designed to make sure that -you have the freedom to distribute copies of free software (and charge -for this service if you wish); that you receive source code or can get -it if you want it; that you can change the software and use pieces of -it in new free programs; and that you are informed that you can do -these things. - - To protect your rights, we need to make restrictions that forbid -distributors to deny you these rights or to ask you to surrender these -rights. These restrictions translate to certain responsibilities for -you if you distribute copies of the library or if you modify it. - - For example, if you distribute copies of the library, whether gratis -or for a fee, you must give the recipients all the rights that we gave -you. You must make sure that they, too, receive or can get the source -code. If you link other code with the library, you must provide -complete object files to the recipients, so that they can relink them -with the library after making changes to the library and recompiling -it. And you must show them these terms so they know their rights. - - We protect your rights with a two-step method: (1) we copyright the -library, and (2) we offer you this license, which gives you legal -permission to copy, distribute and/or modify the library. - - To protect each distributor, we want to make it very clear that -there is no warranty for the free library. Also, if the library is -modified by someone else and passed on, the recipients should know -that what they have is not the original version, so that the original -author's reputation will not be affected by problems that might be -introduced by others. - - Finally, software patents pose a constant threat to the existence of -any free program. We wish to make sure that a company cannot -effectively restrict the users of a free program by obtaining a -restrictive license from a patent holder. Therefore, we insist that -any patent license obtained for a version of the library must be -consistent with the full freedom of use specified in this license. - - Most GNU software, including some libraries, is covered by the -ordinary GNU General Public License. This license, the GNU Lesser -General Public License, applies to certain designated libraries, and -is quite different from the ordinary General Public License. We use -this license for certain libraries in order to permit linking those -libraries into non-free programs. - - When a program is linked with a library, whether statically or using -a shared library, the combination of the two is legally speaking a -combined work, a derivative of the original library. The ordinary -General Public License therefore permits such linking only if the -entire combination fits its criteria of freedom. The Lesser General -Public License permits more lax criteria for linking other code with -the library. - - We call this license the "Lesser" General Public License because it -does Less to protect the user's freedom than the ordinary General -Public License. It also provides other free software developers Less -of an advantage over competing non-free programs. These disadvantages -are the reason we use the ordinary General Public License for many -libraries. However, the Lesser license provides advantages in certain -special circumstances. - - For example, on rare occasions, there may be a special need to -encourage the widest possible use of a certain library, so that it becomes -a de-facto standard. To achieve this, non-free programs must be -allowed to use the library. A more frequent case is that a free -library does the same job as widely used non-free libraries. In this -case, there is little to gain by limiting the free library to free -software only, so we use the Lesser General Public License. - - In other cases, permission to use a particular library in non-free -programs enables a greater number of people to use a large body of -free software. For example, permission to use the GNU C Library in -non-free programs enables many more people to use the whole GNU -operating system, as well as its variant, the GNU/Linux operating -system. - - Although the Lesser General Public License is Less protective of the -users' freedom, it does ensure that the user of a program that is -linked with the Library has the freedom and the wherewithal to run -that program using a modified version of the Library. - - The precise terms and conditions for copying, distribution and -modification follow. Pay close attention to the difference between a -"work based on the library" and a "work that uses the library". The -former contains code derived from the library, whereas the latter must -be combined with the library in order to run. - -GNU LESSER GENERAL PUBLIC LICENSE -TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION - - 0. This License Agreement applies to any software library or other -program which contains a notice placed by the copyright holder or -other authorized party saying it may be distributed under the terms of -this Lesser General Public License (also called "this License"). -Each licensee is addressed as "you". - - A "library" means a collection of software functions and/or data -prepared so as to be conveniently linked with application programs -(which use some of those functions and data) to form executables. - - The "Library", below, refers to any such software library or work -which has been distributed under these terms. A "work based on the -Library" means either the Library or any derivative work under -copyright law: that is to say, a work containing the Library or a -portion of it, either verbatim or with modifications and/or translated -straightforwardly into another language. (Hereinafter, translation is -included without limitation in the term "modification".) - - "Source code" for a work means the preferred form of the work for -making modifications to it. For a library, complete source code means -all the source code for all modules it contains, plus any associated -interface definition files, plus the scripts used to control compilation -and installation of the library. - - Activities other than copying, distribution and modification are not -covered by this License; they are outside its scope. The act of -running a program using the Library is not restricted, and output from -such a program is covered only if its contents constitute a work based -on the Library (independent of the use of the Library in a tool for -writing it). Whether that is true depends on what the Library does -and what the program that uses the Library does. - - 1. You may copy and distribute verbatim copies of the Library's -complete source code as you receive it, in any medium, provided that -you conspicuously and appropriately publish on each copy an -appropriate copyright notice and disclaimer of warranty; keep intact -all the notices that refer to this License and to the absence of any -warranty; and distribute a copy of this License along with the -Library. - - You may charge a fee for the physical act of transferring a copy, -and you may at your option offer warranty protection in exchange for a -fee. - - 2. You may modify your copy or copies of the Library or any portion -of it, thus forming a work based on the Library, and copy and -distribute such modifications or work under the terms of Section 1 -above, provided that you also meet all of these conditions: - - a) The modified work must itself be a software library. - - b) You must cause the files modified to carry prominent notices - stating that you changed the files and the date of any change. - - c) You must cause the whole of the work to be licensed at no - charge to all third parties under the terms of this License. - - d) If a facility in the modified Library refers to a function or a - table of data to be supplied by an application program that uses - the facility, other than as an argument passed when the facility - is invoked, then you must make a good faith effort to ensure that, - in the event an application does not supply such function or - table, the facility still operates, and performs whatever part of - its purpose remains meaningful. - - (For example, a function in a library to compute square roots has - a purpose that is entirely well-defined independent of the - application. Therefore, Subsection 2d requires that any - application-supplied function or table used by this function must - be optional: if the application does not supply it, the square - root function must still compute square roots.) - -These requirements apply to the modified work as a whole. If -identifiable sections of that work are not derived from the Library, -and can be reasonably considered independent and separate works in -themselves, then this License, and its terms, do not apply to those -sections when you distribute them as separate works. But when you -distribute the same sections as part of a whole which is a work based -on the Library, the distribution of the whole must be on the terms of -this License, whose permissions for other licensees extend to the -entire whole, and thus to each and every part regardless of who wrote -it. - -Thus, it is not the intent of this section to claim rights or contest -your rights to work written entirely by you; rather, the intent is to -exercise the right to control the distribution of derivative or -collective works based on the Library. - -In addition, mere aggregation of another work not based on the Library -with the Library (or with a work based on the Library) on a volume of -a storage or distribution medium does not bring the other work under -the scope of this License. - - 3. You may opt to apply the terms of the ordinary GNU General Public -License instead of this License to a given copy of the Library. To do -this, you must alter all the notices that refer to this License, so -that they refer to the ordinary GNU General Public License, version 2, -instead of to this License. (If a newer version than version 2 of the -ordinary GNU General Public License has appeared, then you can specify -that version instead if you wish.) Do not make any other change in -these notices. - - Once this change is made in a given copy, it is irreversible for -that copy, so the ordinary GNU General Public License applies to all -subsequent copies and derivative works made from that copy. - - This option is useful when you wish to copy part of the code of -the Library into a program that is not a library. - - 4. You may copy and distribute the Library (or a portion or -derivative of it, under Section 2) in object code or executable form -under the terms of Sections 1 and 2 above provided that you accompany -it with the complete corresponding machine-readable source code, which -must be distributed under the terms of Sections 1 and 2 above on a -medium customarily used for software interchange. - - If distribution of object code is made by offering access to copy -from a designated place, then offering equivalent access to copy the -source code from the same place satisfies the requirement to -distribute the source code, even though third parties are not -compelled to copy the source along with the object code. - - 5. A program that contains no derivative of any portion of the -Library, but is designed to work with the Library by being compiled or -linked with it, is called a "work that uses the Library". Such a -work, in isolation, is not a derivative work of the Library, and -therefore falls outside the scope of this License. - - However, linking a "work that uses the Library" with the Library -creates an executable that is a derivative of the Library (because it -contains portions of the Library), rather than a "work that uses the -library". The executable is therefore covered by this License. -Section 6 states terms for distribution of such executables. - - When a "work that uses the Library" uses material from a header file -that is part of the Library, the object code for the work may be a -derivative work of the Library even though the source code is not. -Whether this is true is especially significant if the work can be -linked without the Library, or if the work is itself a library. The -threshold for this to be true is not precisely defined by law. - - If such an object file uses only numerical parameters, data -structure layouts and accessors, and small macros and small inline -functions (ten lines or less in length), then the use of the object -file is unrestricted, regardless of whether it is legally a derivative -work. (Executables containing this object code plus portions of the -Library will still fall under Section 6.) - - Otherwise, if the work is a derivative of the Library, you may -distribute the object code for the work under the terms of Section 6. -Any executables containing that work also fall under Section 6, -whether or not they are linked directly with the Library itself. - - 6. As an exception to the Sections above, you may also combine or -link a "work that uses the Library" with the Library to produce a -work containing portions of the Library, and distribute that work -under terms of your choice, provided that the terms permit -modification of the work for the customer's own use and reverse -engineering for debugging such modifications. - - You must give prominent notice with each copy of the work that the -Library is used in it and that the Library and its use are covered by -this License. You must supply a copy of this License. If the work -during execution displays copyright notices, you must include the -copyright notice for the Library among them, as well as a reference -directing the user to the copy of this License. Also, you must do one -of these things: - - a) Accompany the work with the complete corresponding - machine-readable source code for the Library including whatever - changes were used in the work (which must be distributed under - Sections 1 and 2 above); and, if the work is an executable linked - with the Library, with the complete machine-readable "work that - uses the Library", as object code and/or source code, so that the - user can modify the Library and then relink to produce a modified - executable containing the modified Library. (It is understood - that the user who changes the contents of definitions files in the - Library will not necessarily be able to recompile the application - to use the modified definitions.) - - b) Use a suitable shared library mechanism for linking with the - Library. A suitable mechanism is one that (1) uses at run time a - copy of the library already present on the user's computer system, - rather than copying library functions into the executable, and (2) - will operate properly with a modified version of the library, if - the user installs one, as long as the modified version is - interface-compatible with the version that the work was made with. - - c) Accompany the work with a written offer, valid for at - least three years, to give the same user the materials - specified in Subsection 6a, above, for a charge no more - than the cost of performing this distribution. - - d) If distribution of the work is made by offering access to copy - from a designated place, offer equivalent access to copy the above - specified materials from the same place. - - e) Verify that the user has already received a copy of these - materials or that you have already sent this user a copy. - - For an executable, the required form of the "work that uses the -Library" must include any data and utility programs needed for -reproducing the executable from it. However, as a special exception, -the materials to be distributed need not include anything that is -normally distributed (in either source or binary form) with the major -components (compiler, kernel, and so on) of the operating system on -which the executable runs, unless that component itself accompanies -the executable. - - It may happen that this requirement contradicts the license -restrictions of other proprietary libraries that do not normally -accompany the operating system. Such a contradiction means you cannot -use both them and the Library together in an executable that you -distribute. - - 7. You may place library facilities that are a work based on the -Library side-by-side in a single library together with other library -facilities not covered by this License, and distribute such a combined -library, provided that the separate distribution of the work based on -the Library and of the other library facilities is otherwise -permitted, and provided that you do these two things: - - a) Accompany the combined library with a copy of the same work - based on the Library, uncombined with any other library - facilities. This must be distributed under the terms of the - Sections above. - - b) Give prominent notice with the combined library of the fact - that part of it is a work based on the Library, and explaining - where to find the accompanying uncombined form of the same work. - - 8. You may not copy, modify, sublicense, link with, or distribute -the Library except as expressly provided under this License. Any -attempt otherwise to copy, modify, sublicense, link with, or -distribute the Library is void, and will automatically terminate your -rights under this License. However, parties who have received copies, -or rights, from you under this License will not have their licenses -terminated so long as such parties remain in full compliance. - - 9. You are not required to accept this License, since you have not -signed it. However, nothing else grants you permission to modify or -distribute the Library or its derivative works. These actions are -prohibited by law if you do not accept this License. Therefore, by -modifying or distributing the Library (or any work based on the -Library), you indicate your acceptance of this License to do so, and -all its terms and conditions for copying, distributing or modifying -the Library or works based on it. - - 10. Each time you redistribute the Library (or any work based on the -Library), the recipient automatically receives a license from the -original licensor to copy, distribute, link with or modify the Library -subject to these terms and conditions. You may not impose any further -restrictions on the recipients' exercise of the rights granted herein. -You are not responsible for enforcing compliance by third parties with -this License. - - 11. If, as a consequence of a court judgment or allegation of patent -infringement or for any other reason (not limited to patent issues), -conditions are imposed on you (whether by court order, agreement or -otherwise) that contradict the conditions of this License, they do not -excuse you from the conditions of this License. If you cannot -distribute so as to satisfy simultaneously your obligations under this -License and any other pertinent obligations, then as a consequence you -may not distribute the Library at all. For example, if a patent -license would not permit royalty-free redistribution of the Library by -all those who receive copies directly or indirectly through you, then -the only way you could satisfy both it and this License would be to -refrain entirely from distribution of the Library. - -If any portion of this section is held invalid or unenforceable under any -particular circumstance, the balance of the section is intended to apply, -and the section as a whole is intended to apply in other circumstances. - -It is not the purpose of this section to induce you to infringe any -patents or other property right claims or to contest validity of any -such claims; this section has the sole purpose of protecting the -integrity of the free software distribution system which is -implemented by public license practices. Many people have made -generous contributions to the wide range of software distributed -through that system in reliance on consistent application of that -system; it is up to the author/donor to decide if he or she is willing -to distribute software through any other system and a licensee cannot -impose that choice. - -This section is intended to make thoroughly clear what is believed to -be a consequence of the rest of this License. - - 12. If the distribution and/or use of the Library is restricted in -certain countries either by patents or by copyrighted interfaces, the -original copyright holder who places the Library under this License may add -an explicit geographical distribution limitation excluding those countries, -so that distribution is permitted only in or among countries not thus -excluded. In such case, this License incorporates the limitation as if -written in the body of this License. - - 13. The Free Software Foundation may publish revised and/or new -versions of the Lesser General Public License from time to time. -Such new versions will be similar in spirit to the present version, -but may differ in detail to address new problems or concerns. - -Each version is given a distinguishing version number. If the Library -specifies a version number of this License which applies to it and -"any later version", you have the option of following the terms and -conditions either of that version or of any later version published by -the Free Software Foundation. If the Library does not specify a -license version number, you may choose any version ever published by -the Free Software Foundation. - - 14. If you wish to incorporate parts of the Library into other free -programs whose distribution conditions are incompatible with these, -write to the author to ask for permission. For software which is -copyrighted by the Free Software Foundation, write to the Free -Software Foundation; we sometimes make exceptions for this. Our -decision will be guided by the two goals of preserving the free status -of all derivatives of our free software and of promoting the sharing -and reuse of software generally. - -NO WARRANTY - - 15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO -WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW. -EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR -OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY -KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE -IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE -LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME -THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. - - 16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN -WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY -AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU -FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR -CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE -LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING -RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A -FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF -SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH -DAMAGES. - -END OF TERMS AND CONDITIONS -``` - -Appendix C: The MPL License ---------------------------- - -``` -MOZILLA PUBLIC LICENSE -Version 1.1 - -1. Definitions. - - 1.0.1. "Commercial Use" means distribution or otherwise making the - Covered Code available to a third party. - - 1.1. "Contributor" means each entity that creates or contributes to - the creation of Modifications. - - 1.2. "Contributor Version" means the combination of the Original - Code, prior Modifications used by a Contributor, and the Modifications - made by that particular Contributor. - - 1.3. "Covered Code" means the Original Code or Modifications or the - combination of the Original Code and Modifications, in each case - including portions thereof. - - 1.4. "Electronic Distribution Mechanism" means a mechanism generally - accepted in the software development community for the electronic - transfer of data. - - 1.5. "Executable" means Covered Code in any form other than Source - Code. - - 1.6. "Initial Developer" means the individual or entity identified - as the Initial Developer in the Source Code notice required by Exhibit - A. - - 1.7. "Larger Work" means a work which combines Covered Code or - portions thereof with code not governed by the terms of this License. - - 1.8. "License" means this document. - - 1.8.1. "Licensable" means having the right to grant, to the maximum - extent possible, whether at the time of the initial grant or - subsequently acquired, any and all of the rights conveyed herein. - - 1.9. "Modifications" means any addition to or deletion from the - substance or structure of either the Original Code or any previous - Modifications. When Covered Code is released as a series of files, a - Modification is: - A. Any addition to or deletion from the contents of a file - containing Original Code or previous Modifications. - - B. Any new file that contains any part of the Original Code or - previous Modifications. - - 1.10. "Original Code" means Source Code of computer software code - which is described in the Source Code notice required by Exhibit A as - Original Code, and which, at the time of its release under this - License is not already Covered Code governed by this License. - - 1.10.1. "Patent Claims" means any patent claim(s), now owned or - hereafter acquired, including without limitation, method, process, - and apparatus claims, in any patent Licensable by grantor. - - 1.11. "Source Code" means the preferred form of the Covered Code for - making modifications to it, including all modules it contains, plus - any associated interface definition files, scripts used to control - compilation and installation of an Executable, or source code - differential comparisons against either the Original Code or another - well known, available Covered Code of the Contributor's choice. The - Source Code can be in a compressed or archival form, provided the - appropriate decompression or de-archiving software is widely available - for no charge. - - 1.12. "You" (or "Your") means an individual or a legal entity - exercising rights under, and complying with all of the terms of, this - License or a future version of this License issued under Section 6.1. - For legal entities, "You" includes any entity which controls, is - controlled by, or is under common control with You. For purposes of - this definition, "control" means (a) the power, direct or indirect, - to cause the direction or management of such entity, whether by - contract or otherwise, or (b) ownership of more than fifty percent - (50%) of the outstanding shares or beneficial ownership of such - entity. - -2. Source Code License. - - 2.1. The Initial Developer Grant. - The Initial Developer hereby grants You a world-wide, royalty-free, - non-exclusive license, subject to third party intellectual property - claims: - (a) under intellectual property rights (other than patent or - trademark) Licensable by Initial Developer to use, reproduce, - modify, display, perform, sublicense and distribute the Original - Code (or portions thereof) with or without Modifications, and/or - as part of a Larger Work; and - - (b) under Patents Claims infringed by the making, using or - selling of Original Code, to make, have made, use, practice, - sell, and offer for sale, and/or otherwise dispose of the - Original Code (or portions thereof). - - (c) the licenses granted in this Section 2.1(a) and (b) are - effective on the date Initial Developer first distributes - Original Code under the terms of this License. - - (d) Notwithstanding Section 2.1(b) above, no patent license is - granted: 1) for code that You delete from the Original Code; 2) - separate from the Original Code; or 3) for infringements caused - by: i) the modification of the Original Code or ii) the - combination of the Original Code with other software or devices. - - 2.2. Contributor Grant. - Subject to third party intellectual property claims, each Contributor - hereby grants You a world-wide, royalty-free, non-exclusive license - - (a) under intellectual property rights (other than patent or - trademark) Licensable by Contributor, to use, reproduce, modify, - display, perform, sublicense and distribute the Modifications - created by such Contributor (or portions thereof) either on an - unmodified basis, with other Modifications, as Covered Code - and/or as part of a Larger Work; and - - (b) under Patent Claims infringed by the making, using, or - selling of Modifications made by that Contributor either alone - and/or in combination with its Contributor Version (or portions - of such combination), to make, use, sell, offer for sale, have - made, and/or otherwise dispose of: 1) Modifications made by that - Contributor (or portions thereof); and 2) the combination of - Modifications made by that Contributor with its Contributor - Version (or portions of such combination). - - (c) the licenses granted in Sections 2.2(a) and 2.2(b) are - effective on the date Contributor first makes Commercial Use of - the Covered Code. - - (d) Notwithstanding Section 2.2(b) above, no patent license is - granted: 1) for any code that Contributor has deleted from the - Contributor Version; 2) separate from the Contributor Version; - 3) for infringements caused by: i) third party modifications of - Contributor Version or ii) the combination of Modifications made - by that Contributor with other software (except as part of the - Contributor Version) or other devices; or 4) under Patent Claims - infringed by Covered Code in the absence of Modifications made by - that Contributor. - -3. Distribution Obligations. - - 3.1. Application of License. - The Modifications which You create or to which You contribute are - governed by the terms of this License, including without limitation - Section 2.2. The Source Code version of Covered Code may be - distributed only under the terms of this License or a future version - of this License released under Section 6.1, and You must include a - copy of this License with every copy of the Source Code You - distribute. You may not offer or impose any terms on any Source Code - version that alters or restricts the applicable version of this - License or the recipients' rights hereunder. However, You may include - an additional document offering the additional rights described in - Section 3.5. - - 3.2. Availability of Source Code. - Any Modification which You create or to which You contribute must be - made available in Source Code form under the terms of this License - either on the same media as an Executable version or via an accepted - Electronic Distribution Mechanism to anyone to whom you made an - Executable version available; and if made available via Electronic - Distribution Mechanism, must remain available for at least twelve (12) - months after the date it initially became available, or at least six - (6) months after a subsequent version of that particular Modification - has been made available to such recipients. You are responsible for - ensuring that the Source Code version remains available even if the - Electronic Distribution Mechanism is maintained by a third party. - - 3.3. Description of Modifications. - You must cause all Covered Code to which You contribute to contain a - file documenting the changes You made to create that Covered Code and - the date of any change. You must include a prominent statement that - the Modification is derived, directly or indirectly, from Original - Code provided by the Initial Developer and including the name of the - Initial Developer in (a) the Source Code, and (b) in any notice in an - Executable version or related documentation in which You describe the - origin or ownership of the Covered Code. - - 3.4. Intellectual Property Matters - (a) Third Party Claims. - If Contributor has knowledge that a license under a third party's - intellectual property rights is required to exercise the rights - granted by such Contributor under Sections 2.1 or 2.2, - Contributor must include a text file with the Source Code - distribution titled "LEGAL" which describes the claim and the - party making the claim in sufficient detail that a recipient will - know whom to contact. If Contributor obtains such knowledge after - the Modification is made available as described in Section 3.2, - Contributor shall promptly modify the LEGAL file in all copies - Contributor makes available thereafter and shall take other steps - (such as notifying appropriate mailing lists or newsgroups) - reasonably calculated to inform those who received the Covered - Code that new knowledge has been obtained. - - (b) Contributor APIs. - If Contributor's Modifications include an application programming - interface and Contributor has knowledge of patent licenses which - are reasonably necessary to implement that API, Contributor must - also include this information in the LEGAL file. - - (c) Representations. - Contributor represents that, except as disclosed pursuant to - Section 3.4(a) above, Contributor believes that Contributor's - Modifications are Contributor's original creation(s) and/or - Contributor has sufficient rights to grant the rights conveyed by - this License. - - 3.5. Required Notices. - You must duplicate the notice in Exhibit A in each file of the Source - Code. If it is not possible to put such notice in a particular Source - Code file due to its structure, then You must include such notice in a - location (such as a relevant directory) where a user would be likely - to look for such a notice. If You created one or more Modification(s) - You may add your name as a Contributor to the notice described in - Exhibit A. You must also duplicate this License in any documentation - for the Source Code where You describe recipients' rights or ownership - rights relating to Covered Code. You may choose to offer, and to - charge a fee for, warranty, support, indemnity or liability - obligations to one or more recipients of Covered Code. However, You - may do so only on Your own behalf, and not on behalf of the Initial - Developer or any Contributor. You must make it absolutely clear than - any such warranty, support, indemnity or liability obligation is - offered by You alone, and You hereby agree to indemnify the Initial - Developer and every Contributor for any liability incurred by the - Initial Developer or such Contributor as a result of warranty, - support, indemnity or liability terms You offer. - - 3.6. Distribution of Executable Versions. - You may distribute Covered Code in Executable form only if the - requirements of Section 3.1-3.5 have been met for that Covered Code, - and if You include a notice stating that the Source Code version of - the Covered Code is available under the terms of this License, - including a description of how and where You have fulfilled the - obligations of Section 3.2. The notice must be conspicuously included - in any notice in an Executable version, related documentation or - collateral in which You describe recipients' rights relating to the - Covered Code. You may distribute the Executable version of Covered - Code or ownership rights under a license of Your choice, which may - contain terms different from this License, provided that You are in - compliance with the terms of this License and that the license for the - Executable version does not attempt to limit or alter the recipient's - rights in the Source Code version from the rights set forth in this - License. If You distribute the Executable version under a different - license You must make it absolutely clear that any terms which differ - from this License are offered by You alone, not by the Initial - Developer or any Contributor. You hereby agree to indemnify the - Initial Developer and every Contributor for any liability incurred by - the Initial Developer or such Contributor as a result of any such - terms You offer. - - 3.7. Larger Works. - You may create a Larger Work by combining Covered Code with other code - not governed by the terms of this License and distribute the Larger - Work as a single product. In such a case, You must make sure the - requirements of this License are fulfilled for the Covered Code. - -4. Inability to Comply Due to Statute or Regulation. - - If it is impossible for You to comply with any of the terms of this - License with respect to some or all of the Covered Code due to - statute, judicial order, or regulation then You must: (a) comply with - the terms of this License to the maximum extent possible; and (b) - describe the limitations and the code they affect. Such description - must be included in the LEGAL file described in Section 3.4 and must - be included with all distributions of the Source Code. Except to the - extent prohibited by statute or regulation, such description must be - sufficiently detailed for a recipient of ordinary skill to be able to - understand it. - -5. Application of this License. - - This License applies to code to which the Initial Developer has - attached the notice in Exhibit A and to related Covered Code. - -6. Versions of the License. - - 6.1. New Versions. - Netscape Communications Corporation ("Netscape") may publish revised - and/or new versions of the License from time to time. Each version - will be given a distinguishing version number. - - 6.2. Effect of New Versions. - Once Covered Code has been published under a particular version of the - License, You may always continue to use it under the terms of that - version. You may also choose to use such Covered Code under the terms - of any subsequent version of the License published by Netscape. No one - other than Netscape has the right to modify the terms applicable to - Covered Code created under this License. - - 6.3. Derivative Works. - If You create or use a modified version of this License (which you may - only do in order to apply it to code which is not already Covered Code - governed by this License), You must (a) rename Your license so that - the phrases "Mozilla", "MOZILLAPL", "MOZPL", "Netscape", - "MPL", "NPL" or any confusingly similar phrase do not appear in your - license (except to note that your license differs from this License) - and (b) otherwise make it clear that Your version of the license - contains terms which differ from the Mozilla Public License and - Netscape Public License. (Filling in the name of the Initial - Developer, Original Code or Contributor in the notice described in - Exhibit A shall not of themselves be deemed to be modifications of - this License.) - -7. DISCLAIMER OF WARRANTY. - - COVERED CODE IS PROVIDED UNDER THIS LICENSE ON AN "AS IS" BASIS, - WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, - WITHOUT LIMITATION, WARRANTIES THAT THE COVERED CODE IS FREE OF - DEFECTS, MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE OR NON-INFRINGING. - THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE COVERED CODE - IS WITH YOU. SHOULD ANY COVERED CODE PROVE DEFECTIVE IN ANY RESPECT, - YOU (NOT THE INITIAL DEVELOPER OR ANY OTHER CONTRIBUTOR) ASSUME THE - COST OF ANY NECESSARY SERVICING, REPAIR OR CORRECTION. THIS DISCLAIMER - OF WARRANTY CONSTITUTES AN ESSENTIAL PART OF THIS LICENSE. NO USE OF - ANY COVERED CODE IS AUTHORIZED HEREUNDER EXCEPT UNDER THIS DISCLAIMER. - -8. TERMINATION. - - 8.1. This License and the rights granted hereunder will terminate - automatically if You fail to comply with terms herein and fail to cure - such breach within 30 days of becoming aware of the breach. All - sublicenses to the Covered Code which are properly granted shall - survive any termination of this License. Provisions which, by their - nature, must remain in effect beyond the termination of this License - shall survive. - - 8.2. If You initiate litigation by asserting a patent infringement - claim (excluding declatory judgment actions) against Initial Developer - or a Contributor (the Initial Developer or Contributor against whom - You file such action is referred to as "Participant") alleging that: - - (a) such Participant's Contributor Version directly or indirectly - infringes any patent, then any and all rights granted by such - Participant to You under Sections 2.1 and/or 2.2 of this License - shall, upon 60 days notice from Participant terminate prospectively, - unless if within 60 days after receipt of notice You either: (i) - agree in writing to pay Participant a mutually agreeable reasonable - royalty for Your past and future use of Modifications made by such - Participant, or (ii) withdraw Your litigation claim with respect to - the Contributor Version against such Participant. If within 60 days - of notice, a reasonable royalty and payment arrangement are not - mutually agreed upon in writing by the parties or the litigation claim - is not withdrawn, the rights granted by Participant to You under - Sections 2.1 and/or 2.2 automatically terminate at the expiration of - the 60 day notice period specified above. - - (b) any software, hardware, or device, other than such Participant's - Contributor Version, directly or indirectly infringes any patent, then - any rights granted to You by such Participant under Sections 2.1(b) - and 2.2(b) are revoked effective as of the date You first made, used, - sold, distributed, or had made, Modifications made by that - Participant. - - 8.3. If You assert a patent infringement claim against Participant - alleging that such Participant's Contributor Version directly or - indirectly infringes any patent where such claim is resolved (such as - by license or settlement) prior to the initiation of patent - infringement litigation, then the reasonable value of the licenses - granted by such Participant under Sections 2.1 or 2.2 shall be taken - into account in determining the amount or value of any payment or - license. - - 8.4. In the event of termination under Sections 8.1 or 8.2 above, - all end user license agreements (excluding distributors and resellers) - which have been validly granted by You or any distributor hereunder - prior to termination shall survive termination. - -9. LIMITATION OF LIABILITY. - - UNDER NO CIRCUMSTANCES AND UNDER NO LEGAL THEORY, WHETHER TORT - (INCLUDING NEGLIGENCE), CONTRACT, OR OTHERWISE, SHALL YOU, THE INITIAL - DEVELOPER, ANY OTHER CONTRIBUTOR, OR ANY DISTRIBUTOR OF COVERED CODE, - OR ANY SUPPLIER OF ANY OF SUCH PARTIES, BE LIABLE TO ANY PERSON FOR - ANY INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES OF ANY - CHARACTER INCLUDING, WITHOUT LIMITATION, DAMAGES FOR LOSS OF GOODWILL, - WORK STOPPAGE, COMPUTER FAILURE OR MALFUNCTION, OR ANY AND ALL OTHER - COMMERCIAL DAMAGES OR LOSSES, EVEN IF SUCH PARTY SHALL HAVE BEEN - INFORMED OF THE POSSIBILITY OF SUCH DAMAGES. THIS LIMITATION OF - LIABILITY SHALL NOT APPLY TO LIABILITY FOR DEATH OR PERSONAL INJURY - RESULTING FROM SUCH PARTY'S NEGLIGENCE TO THE EXTENT APPLICABLE LAW - PROHIBITS SUCH LIMITATION. SOME JURISDICTIONS DO NOT ALLOW THE - EXCLUSION OR LIMITATION OF INCIDENTAL OR CONSEQUENTIAL DAMAGES, SO - THIS EXCLUSION AND LIMITATION MAY NOT APPLY TO YOU. - -10. U.S. GOVERNMENT END USERS. - - The Covered Code is a "commercial item," as that term is defined in - 48 C.F.R. 2.101 (Oct. 1995), consisting of "commercial computer - software" and "commercial computer software documentation," as such - terms are used in 48 C.F.R. 12.212 (Sept. 1995). Consistent with 48 - C.F.R. 12.212 and 48 C.F.R. 227.7202-1 through 227.7202-4 (June 1995), - all U.S. Government End Users acquire Covered Code with only those - rights set forth herein. - -11. MISCELLANEOUS. - - This License represents the complete agreement concerning subject - matter hereof. If any provision of this License is held to be - unenforceable, such provision shall be reformed only to the extent - necessary to make it enforceable. This License shall be governed by - California law provisions (except to the extent applicable law, if - any, provides otherwise), excluding its conflict-of-law provisions. - With respect to disputes in which at least one party is a citizen of, - or an entity chartered or registered to do business in the United - States of America, any litigation relating to this License shall be - subject to the jurisdiction of the Federal Courts of the Northern - District of California, with venue lying in Santa Clara County, - California, with the losing party responsible for costs, including - without limitation, court costs and reasonable attorneys' fees and - expenses. The application of the United Nations Convention on - Contracts for the International Sale of Goods is expressly excluded. - Any law or regulation which provides that the language of a contract - shall be construed against the drafter shall not apply to this - License. - -12. RESPONSIBILITY FOR CLAIMS. - - As between Initial Developer and the Contributors, each party is - responsible for claims and damages arising, directly or indirectly, - out of its utilization of rights under this License and You agree to - work with Initial Developer and Contributors to distribute such - responsibility on an equitable basis. Nothing herein is intended or - shall be deemed to constitute any admission of liability. - -13. MULTIPLE-LICENSED CODE. - - Initial Developer may designate portions of the Covered Code as - "Multiple-Licensed". "Multiple-Licensed" means that the Initial - Developer permits you to utilize portions of the Covered Code under - Your choice of the NPL or the alternative licenses, if any, specified - by the Initial Developer in the file described in Exhibit A. - -EXHIBIT A -Mozilla Public License. - - ``The contents of this file are subject to the Mozilla Public License - Version 1.1 (the "License"); you may not use this file except in - compliance with the License. You may obtain a copy of the License at - http://www.mozilla.org/MPL/ - - Software distributed under the License is distributed on an "AS IS" - basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the - License for the specific language governing rights and limitations - under the License. - - The Original Code is ______________________________________. - - The Initial Developer of the Original Code is ________________________. - Portions created by ______________________ are Copyright (C) ______ - _______________________. All Rights Reserved. - - Contributor(s): ______________________________________. - - Alternatively, the contents of this file may be used under the terms - of the _____ license (the "[___] License"), in which case the - provisions of [______] License are applicable instead of those - above. If you wish to allow use of your version of this file only - under the terms of the [____] License and not to allow others to use - your version of this file under the MPL, indicate your decision by - deleting the provisions above and replace them with the notice and - other provisions required by the [___] License. If you do not delete - the provisions above, a recipient may use your version of this file - under either the MPL or the [___] License." - - [NOTE: The text of this Exhibit A may differ slightly from the text of - the notices in the Source Code files of the Original Code. You should - use the text of this Exhibit A rather than the text found in the - Original Code Source Code for Your Modifications.] -``` - -Appendix D: The MIT License ---------------------------- - -``` -The MIT License (MIT) - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -THE SOFTWARE. -``` - -Appendix E: The SIL Open Font License Version 1.1 ---------------------------------------------- - -``` -SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007 ------------------------------------------------------------ - -PREAMBLE -The goals of the Open Font License (OFL) are to stimulate worldwide -development of collaborative font projects, to support the font creation -efforts of academic and linguistic communities, and to provide a free and -open framework in which fonts may be shared and improved in partnership -with others. - -The OFL allows the licensed fonts to be used, studied, modified and -redistributed freely as long as they are not sold by themselves. The -fonts, including any derivative works, can be bundled, embedded, -redistributed and/or sold with any software provided that any reserved -names are not used by derivative works. The fonts and derivatives, -however, cannot be released under any other type of license. The -requirement for fonts to remain under this license does not apply -to any document created using the fonts or their derivatives. - -DEFINITIONS -"Font Software" refers to the set of files released by the Copyright -Holder(s) under this license and clearly marked as such. This may -include source files, build scripts and documentation. - -"Reserved Font Name" refers to any names specified as such after the -copyright statement(s). - -"Original Version" refers to the collection of Font Software components as -distributed by the Copyright Holder(s). - -"Modified Version" refers to any derivative made by adding to, deleting, -or substituting -- in part or in whole -- any of the components of the -Original Version, by changing formats or by porting the Font Software to a -new environment. - -"Author" refers to any designer, engineer, programmer, technical -writer or other person who contributed to the Font Software. - -PERMISSION & CONDITIONS -Permission is hereby granted, free of charge, to any person obtaining -a copy of the Font Software, to use, study, copy, merge, embed, modify, -redistribute, and sell modified and unmodified copies of the Font -Software, subject to the following conditions: - -1) Neither the Font Software nor any of its individual components, -in Original or Modified Versions, may be sold by itself. - -2) Original or Modified Versions of the Font Software may be bundled, -redistributed and/or sold with any software, provided that each copy -contains the above copyright notice and this license. These can be -included either as stand-alone text files, human-readable headers or -in the appropriate machine-readable metadata fields within text or -binary files as long as those fields can be easily viewed by the user. - -3) No Modified Version of the Font Software may use the Reserved Font -Name(s) unless explicit written permission is granted by the corresponding -Copyright Holder. This restriction only applies to the primary font name as -presented to the users. - -4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font -Software shall not be used to promote, endorse or advertise any -Modified Version, except to acknowledge the contribution(s) of the -Copyright Holder(s) and the Author(s) or with their explicit written -permission. - -5) The Font Software, modified or unmodified, in part or in whole, -must be distributed entirely under this license, and must not be -distributed under any other license. The requirement for fonts to -remain under this license does not apply to any document created -using the Font Software. - -TERMINATION -This license becomes null and void if any of the above conditions are -not met. - -DISCLAIMER -THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, -EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF -MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT -OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE -COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, -INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL -DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING -FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM -OTHER DEALINGS IN THE FONT SOFTWARE. -``` - -Appendix F: The BSD-3 License ------------------------------ - -``` -Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: - -1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. - -2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. - -3. Neither the name of the copyright holder nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -``` - diff --git a/admin/plugins/ckeditor/README.md b/admin/plugins/ckeditor/README.md deleted file mode 100644 index d18d4a1..0000000 --- a/admin/plugins/ckeditor/README.md +++ /dev/null @@ -1,39 +0,0 @@ -CKEditor 4 -========== - -Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. -http://ckeditor.com - See LICENSE.md for license information. - -CKEditor is a text editor to be used inside web pages. It's not a replacement -for desktop text editors like Word or OpenOffice, but a component to be used as -part of web applications and websites. - -## Documentation - -The full editor documentation is available online at the following address: -http://docs.ckeditor.com - -## Installation - -Installing CKEditor is an easy task. Just follow these simple steps: - - 1. **Download** the latest version from the CKEditor website: - http://ckeditor.com. You should have already completed this step, but be - sure you have the very latest version. - 2. **Extract** (decompress) the downloaded file into the root of your website. - -**Note:** CKEditor is by default installed in the `ckeditor` folder. You can -place the files in whichever you want though. - -## Checking Your Installation - -The editor comes with a few sample pages that can be used to verify that -installation proceeded properly. Take a look at the `samples` directory. - -To test your installation, just call the following page at your website: - - http://<your site>/<CKEditor installation path>/samples/index.html - -For example: - - http://www.example.com/ckeditor/samples/index.html diff --git a/admin/plugins/ckeditor/adapters/jquery.js b/admin/plugins/ckeditor/adapters/jquery.js deleted file mode 100644 index 86cb458..0000000 --- a/admin/plugins/ckeditor/adapters/jquery.js +++ /dev/null @@ -1,10 +0,0 @@ -/* - Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. - For licensing, see LICENSE.md or http://ckeditor.com/license -*/ -(function(a){if("undefined"==typeof a)throw Error("jQuery should be loaded before CKEditor jQuery adapter.");if("undefined"==typeof CKEDITOR)throw Error("CKEditor should be loaded before CKEditor jQuery adapter.");CKEDITOR.config.jqueryOverrideVal="undefined"==typeof CKEDITOR.config.jqueryOverrideVal?!0:CKEDITOR.config.jqueryOverrideVal;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 m=d;d=g;g=m}var k=[];d=d||{};this.each(function(){var b=a(this),c=b.data("ckeditorInstance"),f=b.data("_ckeditorInstanceLock"),h=this,l=new a.Deferred;k.push(l.promise());if(c&&!f)g&&g.apply(c,[this]),l.resolve();else if(f)c.once("instanceReady",function(){setTimeout(function(){c.element?(c.element.$==h&&g&&g.apply(c,[h]),l.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]);l.resolve()}else setTimeout(arguments.callee,100)},0)},null,null,9999)}});var f=new a.Deferred;this.promise=f.promise();a.when.apply(this,k).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 m= -this,k=[],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()});k.push(f.promise());return!0}return g.call(b,d)});if(k.length){var b=new a.Deferred;a.when.apply(this,k).done(function(){b.resolveWith(m)});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); \ No newline at end of file diff --git a/admin/plugins/ckeditor/build-config.js b/admin/plugins/ckeditor/build-config.js deleted file mode 100644 index 64c1f97..0000000 --- a/admin/plugins/ckeditor/build-config.js +++ /dev/null @@ -1,164 +0,0 @@ -/** - * @license Copyright (c) 2003-2017, 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/3f95a5ecef134abe92feb6c0fadc2533 - * Visit online builder to build CKEditor, starting with the same setup as before. - * - * (3) http://ckeditor.com/builder/download/3f95a5ecef134abe92feb6c0fadc2533 - * 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-lisa', - preset: 'standard', - ignore: [ - '.DS_Store', - '.bender', - '.editorconfig', - '.gitattributes', - '.gitignore', - '.idea', - '.jscsrc', - '.jshintignore', - '.jshintrc', - '.mailmap', - '.travis.yml', - 'bender-err.log', - 'bender-out.log', - 'bender.ci.js', - 'bender.js', - 'dev', - 'gruntfile.js', - 'less', - 'node_modules', - 'package.json', - 'tests' - ], - plugins : { - 'a11yhelp' : 1, - 'about' : 1, - 'basicstyles' : 1, - 'blockquote' : 1, - 'clipboard' : 1, - 'contextmenu' : 1, - 'elementspath' : 1, - 'enterkey' : 1, - 'entities' : 1, - 'filebrowser' : 1, - 'floatingspace' : 1, - 'format' : 1, - 'horizontalrule' : 1, - 'htmlwriter' : 1, - 'image' : 1, - 'indentlist' : 1, - 'link' : 1, - 'list' : 1, - 'magicline' : 1, - 'maximize' : 1, - 'pastefromword' : 1, - 'pastetext' : 1, - 'removeformat' : 1, - 'resize' : 1, - 'scayt' : 1, - 'showborders' : 1, - 'sourcearea' : 1, - 'specialchar' : 1, - 'stylescombo' : 1, - 'tab' : 1, - 'table' : 1, - 'tableselection' : 1, - 'tabletools' : 1, - 'toolbar' : 1, - 'undo' : 1, - 'wsc' : 1, - 'wysiwygarea' : 1 - }, - languages : { - 'af' : 1, - 'ar' : 1, - 'az' : 1, - 'bg' : 1, - 'bn' : 1, - 'bs' : 1, - 'ca' : 1, - 'cs' : 1, - 'cy' : 1, - 'da' : 1, - 'de' : 1, - 'de-ch' : 1, - 'el' : 1, - 'en' : 1, - 'en-au' : 1, - 'en-ca' : 1, - 'en-gb' : 1, - 'eo' : 1, - 'es' : 1, - 'es-mx' : 1, - 'et' : 1, - 'eu' : 1, - 'fa' : 1, - 'fi' : 1, - 'fo' : 1, - 'fr' : 1, - 'fr-ca' : 1, - 'gl' : 1, - 'gu' : 1, - 'he' : 1, - 'hi' : 1, - 'hr' : 1, - 'hu' : 1, - 'id' : 1, - 'is' : 1, - 'it' : 1, - 'ja' : 1, - 'ka' : 1, - 'km' : 1, - 'ko' : 1, - 'ku' : 1, - 'lt' : 1, - 'lv' : 1, - 'mk' : 1, - 'mn' : 1, - 'ms' : 1, - 'nb' : 1, - 'nl' : 1, - 'no' : 1, - 'oc' : 1, - 'pl' : 1, - 'pt' : 1, - 'pt-br' : 1, - 'ro' : 1, - 'ru' : 1, - 'si' : 1, - 'sk' : 1, - 'sl' : 1, - 'sq' : 1, - 'sr' : 1, - 'sr-latn' : 1, - 'sv' : 1, - 'th' : 1, - 'tr' : 1, - 'tt' : 1, - 'ug' : 1, - 'uk' : 1, - 'vi' : 1, - 'zh' : 1, - 'zh-cn' : 1 - } -}; \ No newline at end of file diff --git a/admin/plugins/ckeditor/ckeditor.js b/admin/plugins/ckeditor/ckeditor.js deleted file mode 100644 index e2793f5..0000000 --- a/admin/plugins/ckeditor/ckeditor.js +++ /dev/null @@ -1,1091 +0,0 @@ -/* -Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. -For licensing, see LICENSE.md or http://ckeditor.com/license -*/ -(function(){if(window.CKEDITOR&&window.CKEDITOR.dom)return;window.CKEDITOR||(window.CKEDITOR=function(){var a=/(^|.*[\\\/])ckeditor\.js(?:\?.*|;.*)?$/i,d={timestamp:"H8DA",version:"4.7.3",revision:"dee99e2",rnd:Math.floor(900*Math.random())+100,_:{pending:[],basePathSrcPattern:a},status:"unloaded",basePath:function(){var b=window.CKEDITOR_BASEPATH||"";if(!b)for(var c=document.getElementsByTagName("script"),d=0;d<c.length;d++){var k=c[d].src.match(a);if(k){b=k[1];break}}-1==b.indexOf(":/")&&"//"!=b.slice(0,2)&&(b=0===b.indexOf("/")?location.href.match(/^.*?:\/\/[^\/]*/)[0]+ -b:location.href.match(/^[^\?]*\/(?:)/)[0]+b);if(!b)throw'The CKEditor installation path could not be automatically detected. Please set the global variable "CKEDITOR_BASEPATH" before creating editor instances.';return b}(),getUrl:function(a){-1==a.indexOf(":/")&&0!==a.indexOf("/")&&(a=this.basePath+a);this.timestamp&&"/"!=a.charAt(a.length-1)&&!/[&?]t=/.test(a)&&(a+=(0<=a.indexOf("?")?"\x26":"?")+"t\x3d"+this.timestamp);return a},domReady:function(){function a(){try{document.addEventListener?(document.removeEventListener("DOMContentLoaded", -a,!1),b()):document.attachEvent&&"complete"===document.readyState&&(document.detachEvent("onreadystatechange",a),b())}catch(c){}}function b(){for(var a;a=c.shift();)a()}var c=[];return function(b){function n(){try{document.documentElement.doScroll("left")}catch(f){setTimeout(n,1);return}a()}c.push(b);"complete"===document.readyState&&setTimeout(a,1);if(1==c.length)if(document.addEventListener)document.addEventListener("DOMContentLoaded",a,!1),window.addEventListener("load",a,!1);else if(document.attachEvent){document.attachEvent("onreadystatechange", -a);window.attachEvent("onload",a);b=!1;try{b=!window.frameElement}catch(q){}document.documentElement.doScroll&&b&&n()}}}()},b=window.CKEDITOR_GETURL;if(b){var c=d.getUrl;d.getUrl=function(a){return b.call(d,a)||c.call(d,a)}}return d}()); -CKEDITOR.event||(CKEDITOR.event=function(){},CKEDITOR.event.implementOn=function(a){var d=CKEDITOR.event.prototype,b;for(b in d)null==a[b]&&(a[b]=d[b])},CKEDITOR.event.prototype=function(){function a(a){var e=d(this);return e[a]||(e[a]=new b(a))}var d=function(a){a=a.getPrivate&&a.getPrivate()||a._||(a._={});return a.events||(a.events={})},b=function(a){this.name=a;this.listeners=[]};b.prototype={getListenerIndex:function(a){for(var b=0,d=this.listeners;b<d.length;b++)if(d[b].fn==a)return b;return-1}}; -return{define:function(b,d){var g=a.call(this,b);CKEDITOR.tools.extend(g,d,!0)},on:function(b,d,g,h,k){function n(a,f,D,k){a={name:b,sender:this,editor:a,data:f,listenerData:h,stop:D,cancel:k,removeListener:q};return!1===d.call(g,a)?!1:a.data}function q(){D.removeListener(b,d)}var f=a.call(this,b);if(0>f.getListenerIndex(d)){f=f.listeners;g||(g=this);isNaN(k)&&(k=10);var D=this;n.fn=d;n.priority=k;for(var w=f.length-1;0<=w;w--)if(f[w].priority<=k)return f.splice(w+1,0,n),{removeListener:q};f.unshift(n)}return{removeListener:q}}, -once:function(){var a=Array.prototype.slice.call(arguments),b=a[1];a[1]=function(a){a.removeListener();return b.apply(this,arguments)};return this.on.apply(this,a)},capture:function(){CKEDITOR.event.useCapture=1;var a=this.on.apply(this,arguments);CKEDITOR.event.useCapture=0;return a},fire:function(){var a=0,b=function(){a=1},g=0,h=function(){g=1};return function(k,n,q){var f=d(this)[k];k=a;var D=g;a=g=0;if(f){var w=f.listeners;if(w.length)for(var w=w.slice(0),A,G=0;G<w.length;G++){if(f.errorProof)try{A= -w[G].call(this,q,n,b,h)}catch(x){}else A=w[G].call(this,q,n,b,h);!1===A?g=1:"undefined"!=typeof A&&(n=A);if(a||g)break}}n=g?!1:"undefined"==typeof n?!0:n;a=k;g=D;return n}}(),fireOnce:function(a,b,g){b=this.fire(a,b,g);delete d(this)[a];return b},removeListener:function(a,b){var g=d(this)[a];if(g){var h=g.getListenerIndex(b);0<=h&&g.listeners.splice(h,1)}},removeAllListeners:function(){var a=d(this),b;for(b in a)delete a[b]},hasListeners:function(a){return(a=d(this)[a])&&0<a.listeners.length}}}()); -CKEDITOR.editor||(CKEDITOR.editor=function(){CKEDITOR._.pending.push([this,arguments]);CKEDITOR.event.call(this)},CKEDITOR.editor.prototype.fire=function(a,d){a in{instanceReady:1,loaded:1}&&(this[a]=!0);return CKEDITOR.event.prototype.fire.call(this,a,d,this)},CKEDITOR.editor.prototype.fireOnce=function(a,d){a in{instanceReady:1,loaded:1}&&(this[a]=!0);return CKEDITOR.event.prototype.fireOnce.call(this,a,d,this)},CKEDITOR.event.implementOn(CKEDITOR.editor.prototype)); -CKEDITOR.env||(CKEDITOR.env=function(){var a=navigator.userAgent.toLowerCase(),d=a.match(/edge[ \/](\d+.?\d*)/),b=-1<a.indexOf("trident/"),b=!(!d&&!b),b={ie:b,edge:!!d,webkit:!b&&-1<a.indexOf(" applewebkit/"),air:-1<a.indexOf(" adobeair/"),mac:-1<a.indexOf("macintosh"),quirks:"BackCompat"==document.compatMode&&(!document.documentMode||10>document.documentMode),mobile:-1<a.indexOf("mobile"),iOS:/(ipad|iphone|ipod)/.test(a),isCustomDomain:function(){if(!this.ie)return!1;var a=document.domain,b=window.location.hostname; -return a!=b&&a!="["+b+"]"},secure:"https:"==location.protocol};b.gecko="Gecko"==navigator.product&&!b.webkit&&!b.ie;b.webkit&&(-1<a.indexOf("chrome")?b.chrome=!0:b.safari=!0);var c=0;b.ie&&(c=d?parseFloat(d[1]):b.quirks||!document.documentMode?parseFloat(a.match(/msie (\d+)/)[1]):document.documentMode,b.ie9Compat=9==c,b.ie8Compat=8==c,b.ie7Compat=7==c,b.ie6Compat=7>c||b.quirks);b.gecko&&(d=a.match(/rv:([\d\.]+)/))&&(d=d[1].split("."),c=1E4*d[0]+100*(d[1]||0)+1*(d[2]||0));b.air&&(c=parseFloat(a.match(/ adobeair\/(\d+)/)[1])); -b.webkit&&(c=parseFloat(a.match(/ applewebkit\/(\d+)/)[1]));b.version=c;b.isCompatible=!(b.ie&&7>c)&&!(b.gecko&&4E4>c)&&!(b.webkit&&534>c);b.hidpi=2<=window.devicePixelRatio;b.needsBrFiller=b.gecko||b.webkit||b.ie&&10<c;b.needsNbspFiller=b.ie&&11>c;b.cssClass="cke_browser_"+(b.ie?"ie":b.gecko?"gecko":b.webkit?"webkit":"unknown");b.quirks&&(b.cssClass+=" cke_browser_quirks");b.ie&&(b.cssClass+=" cke_browser_ie"+(b.quirks?"6 cke_browser_iequirks":b.version));b.air&&(b.cssClass+=" cke_browser_air"); -b.iOS&&(b.cssClass+=" cke_browser_ios");b.hidpi&&(b.cssClass+=" cke_hidpi");return b}()); -"unloaded"==CKEDITOR.status&&function(){CKEDITOR.event.implementOn(CKEDITOR);CKEDITOR.loadFullCore=function(){if("basic_ready"!=CKEDITOR.status)CKEDITOR.loadFullCore._load=1;else{delete CKEDITOR.loadFullCore;var a=document.createElement("script");a.type="text/javascript";a.src=CKEDITOR.basePath+"ckeditor.js";document.getElementsByTagName("head")[0].appendChild(a)}};CKEDITOR.loadFullCoreTimeout=0;CKEDITOR.add=function(a){(this._.pending||(this._.pending=[])).push(a)};(function(){CKEDITOR.domReady(function(){var a= -CKEDITOR.loadFullCore,d=CKEDITOR.loadFullCoreTimeout;a&&(CKEDITOR.status="basic_ready",a&&a._load?a():d&&setTimeout(function(){CKEDITOR.loadFullCore&&CKEDITOR.loadFullCore()},1E3*d))})})();CKEDITOR.status="basic_loaded"}();"use strict";CKEDITOR.VERBOSITY_WARN=1;CKEDITOR.VERBOSITY_ERROR=2;CKEDITOR.verbosity=CKEDITOR.VERBOSITY_WARN|CKEDITOR.VERBOSITY_ERROR;CKEDITOR.warn=function(a,d){CKEDITOR.verbosity&CKEDITOR.VERBOSITY_WARN&&CKEDITOR.fire("log",{type:"warn",errorCode:a,additionalData:d})}; -CKEDITOR.error=function(a,d){CKEDITOR.verbosity&CKEDITOR.VERBOSITY_ERROR&&CKEDITOR.fire("log",{type:"error",errorCode:a,additionalData:d})}; -CKEDITOR.on("log",function(a){if(window.console&&window.console.log){var d=console[a.data.type]?a.data.type:"log",b=a.data.errorCode;if(a=a.data.additionalData)console[d]("[CKEDITOR] Error code: "+b+".",a);else console[d]("[CKEDITOR] Error code: "+b+".");console[d]("[CKEDITOR] For more information about this error go to http://docs.ckeditor.com/#!/guide/dev_errors-section-"+b)}},null,null,999);CKEDITOR.dom={}; -(function(){var a=[],d=CKEDITOR.env.gecko?"-moz-":CKEDITOR.env.webkit?"-webkit-":CKEDITOR.env.ie?"-ms-":"",b=/&/g,c=/>/g,e=/</g,g=/"/g,h=/&(lt|gt|amp|quot|nbsp|shy|#\d{1,5});/g,k={lt:"\x3c",gt:"\x3e",amp:"\x26",quot:'"',nbsp:" ",shy:"­"},n=function(a,f){return"#"==f[0]?String.fromCharCode(parseInt(f.slice(1),10)):k[f]};CKEDITOR.on("reset",function(){a=[]});CKEDITOR.tools={arrayCompare:function(a,f){if(!a&&!f)return!0;if(!a||!f||a.length!=f.length)return!1;for(var b=0;b<a.length;b++)if(a[b]!=f[b])return!1; -return!0},getIndex:function(a,f){for(var b=0;b<a.length;++b)if(f(a[b]))return b;return-1},clone:function(a){var f;if(a&&a instanceof Array){f=[];for(var b=0;b<a.length;b++)f[b]=CKEDITOR.tools.clone(a[b]);return f}if(null===a||"object"!=typeof a||a instanceof String||a instanceof Number||a instanceof Boolean||a instanceof Date||a instanceof RegExp||a.nodeType||a.window===a)return a;f=new a.constructor;for(b in a)f[b]=CKEDITOR.tools.clone(a[b]);return f},capitalize:function(a,f){return a.charAt(0).toUpperCase()+ -(f?a.slice(1):a.slice(1).toLowerCase())},extend:function(a){var f=arguments.length,b,c;"boolean"==typeof(b=arguments[f-1])?f--:"boolean"==typeof(b=arguments[f-2])&&(c=arguments[f-1],f-=2);for(var k=1;k<f;k++){var d=arguments[k],n;for(n in d)if(!0===b||null==a[n])if(!c||n in c)a[n]=d[n]}return a},prototypedCopy:function(a){var f=function(){};f.prototype=a;return new f},copy:function(a){var f={},b;for(b in a)f[b]=a[b];return f},isArray:function(a){return"[object Array]"==Object.prototype.toString.call(a)}, -isEmpty:function(a){for(var f in a)if(a.hasOwnProperty(f))return!1;return!0},cssVendorPrefix:function(a,f,b){if(b)return d+a+":"+f+";"+a+":"+f;b={};b[a]=f;b[d+a]=f;return b},cssStyleToDomStyle:function(){var a=document.createElement("div").style,f="undefined"!=typeof a.cssFloat?"cssFloat":"undefined"!=typeof a.styleFloat?"styleFloat":"float";return function(a){return"float"==a?f:a.replace(/-./g,function(a){return a.substr(1).toUpperCase()})}}(),buildStyleHtml:function(a){a=[].concat(a);for(var f, -b=[],c=0;c<a.length;c++)if(f=a[c])/@import|[{}]/.test(f)?b.push("\x3cstyle\x3e"+f+"\x3c/style\x3e"):b.push('\x3clink type\x3d"text/css" rel\x3dstylesheet href\x3d"'+f+'"\x3e');return b.join("")},htmlEncode:function(a){return void 0===a||null===a?"":String(a).replace(b,"\x26amp;").replace(c,"\x26gt;").replace(e,"\x26lt;")},htmlDecode:function(a){return a.replace(h,n)},htmlEncodeAttr:function(a){return CKEDITOR.tools.htmlEncode(a).replace(g,"\x26quot;")},htmlDecodeAttr:function(a){return CKEDITOR.tools.htmlDecode(a)}, -transformPlainTextToHtml:function(a,f){var b=f==CKEDITOR.ENTER_BR,c=this.htmlEncode(a.replace(/\r\n/g,"\n")),c=c.replace(/\t/g,"\x26nbsp;\x26nbsp; \x26nbsp;"),k=f==CKEDITOR.ENTER_P?"p":"div";if(!b){var d=/\n{2}/g;if(d.test(c))var n="\x3c"+k+"\x3e",m="\x3c/"+k+"\x3e",c=n+c.replace(d,function(){return m+n})+m}c=c.replace(/\n/g,"\x3cbr\x3e");b||(c=c.replace(new RegExp("\x3cbr\x3e(?\x3d\x3c/"+k+"\x3e)"),function(a){return CKEDITOR.tools.repeat(a,2)}));c=c.replace(/^ | $/g,"\x26nbsp;");return c=c.replace(/(>|\s) /g, -function(a,f){return f+"\x26nbsp;"}).replace(/ (?=<)/g,"\x26nbsp;")},getNextNumber:function(){var a=0;return function(){return++a}}(),getNextId:function(){return"cke_"+this.getNextNumber()},getUniqueId:function(){for(var a="e",f=0;8>f;f++)a+=Math.floor(65536*(1+Math.random())).toString(16).substring(1);return a},override:function(a,f){var b=f(a);b.prototype=a.prototype;return b},setTimeout:function(a,f,b,c,k){k||(k=window);b||(b=k);return k.setTimeout(function(){c?a.apply(b,[].concat(c)):a.apply(b)}, -f||0)},trim:function(){var a=/(?:^[ \t\n\r]+)|(?:[ \t\n\r]+$)/g;return function(f){return f.replace(a,"")}}(),ltrim:function(){var a=/^[ \t\n\r]+/g;return function(f){return f.replace(a,"")}}(),rtrim:function(){var a=/[ \t\n\r]+$/g;return function(f){return f.replace(a,"")}}(),indexOf:function(a,f){if("function"==typeof f)for(var b=0,c=a.length;b<c;b++){if(f(a[b]))return b}else{if(a.indexOf)return a.indexOf(f);b=0;for(c=a.length;b<c;b++)if(a[b]===f)return b}return-1},search:function(a,f){var b=CKEDITOR.tools.indexOf(a, -f);return 0<=b?a[b]:null},bind:function(a,f){return function(){return a.apply(f,arguments)}},createClass:function(a){var f=a.$,b=a.base,c=a.privates||a._,k=a.proto;a=a.statics;!f&&(f=function(){b&&this.base.apply(this,arguments)});if(c)var d=f,f=function(){var a=this._||(this._={}),f;for(f in c){var b=c[f];a[f]="function"==typeof b?CKEDITOR.tools.bind(b,this):b}d.apply(this,arguments)};b&&(f.prototype=this.prototypedCopy(b.prototype),f.prototype.constructor=f,f.base=b,f.baseProto=b.prototype,f.prototype.base= -function(){this.base=b.prototype.base;b.apply(this,arguments);this.base=arguments.callee});k&&this.extend(f.prototype,k,!0);a&&this.extend(f,a,!0);return f},addFunction:function(b,f){return a.push(function(){return b.apply(f||this,arguments)})-1},removeFunction:function(b){a[b]=null},callFunction:function(b){var f=a[b];return f&&f.apply(window,Array.prototype.slice.call(arguments,1))},cssLength:function(){var a=/^-?\d+\.?\d*px$/,f;return function(b){f=CKEDITOR.tools.trim(b+"")+"px";return a.test(f)? -f:b||""}}(),convertToPx:function(){var a;return function(f){a||(a=CKEDITOR.dom.element.createFromHtml('\x3cdiv style\x3d"position:absolute;left:-9999px;top:-9999px;margin:0px;padding:0px;border:0px;"\x3e\x3c/div\x3e',CKEDITOR.document),CKEDITOR.document.getBody().append(a));return/%$/.test(f)?f:(a.setStyle("width",f),a.$.clientWidth)}}(),repeat:function(a,f){return Array(f+1).join(a)},tryThese:function(){for(var a,f=0,b=arguments.length;f<b;f++){var c=arguments[f];try{a=c();break}catch(k){}}return a}, -genKey:function(){return Array.prototype.slice.call(arguments).join("-")},defer:function(a){return function(){var f=arguments,b=this;window.setTimeout(function(){a.apply(b,f)},0)}},normalizeCssText:function(a,f){var b=[],c,k=CKEDITOR.tools.parseCssText(a,!0,f);for(c in k)b.push(c+":"+k[c]);b.sort();return b.length?b.join(";")+";":""},convertRgbToHex:function(a){return a.replace(/(?:rgb\(\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*\))/gi,function(a,b,c,k){a=[b,c,k];for(b=0;3>b;b++)a[b]=("0"+parseInt(a[b],10).toString(16)).slice(-2); -return"#"+a.join("")})},normalizeHex:function(a){return a.replace(/#(([0-9a-f]{3}){1,2})($|;|\s+)/gi,function(a,b,c,k){a=b.toLowerCase();3==a.length&&(a=a.split(""),a=[a[0],a[0],a[1],a[1],a[2],a[2]].join(""));return"#"+a+k})},parseCssText:function(a,f,b){var c={};b&&(a=(new CKEDITOR.dom.element("span")).setAttribute("style",a).getAttribute("style")||"");a&&(a=CKEDITOR.tools.normalizeHex(CKEDITOR.tools.convertRgbToHex(a)));if(!a||";"==a)return c;a.replace(/&quot;/g,'"').replace(/\s*([^:;\s]+)\s*:\s*([^;]+)\s*(?=;|$)/g, -function(a,b,k){f&&(b=b.toLowerCase(),"font-family"==b&&(k=k.replace(/\s*,\s*/g,",")),k=CKEDITOR.tools.trim(k));c[b]=k});return c},writeCssText:function(a,f){var b,c=[];for(b in a)c.push(b+":"+a[b]);f&&c.sort();return c.join("; ")},objectCompare:function(a,f,b){var c;if(!a&&!f)return!0;if(!a||!f)return!1;for(c in a)if(a[c]!=f[c])return!1;if(!b)for(c in f)if(a[c]!=f[c])return!1;return!0},objectKeys:function(a){var f=[],b;for(b in a)f.push(b);return f},convertArrayToObject:function(a,f){var b={};1== -arguments.length&&(f=!0);for(var c=0,k=a.length;c<k;++c)b[a[c]]=f;return b},fixDomain:function(){for(var a;;)try{a=window.parent.document.domain;break}catch(f){a=a?a.replace(/.+?(?:\.|$)/,""):document.domain;if(!a)break;document.domain=a}return!!a},eventsBuffer:function(a,f,b){function c(){d=(new Date).getTime();k=!1;b?f.call(b):f()}var k,d=0;return{input:function(){if(!k){var f=(new Date).getTime()-d;f<a?k=setTimeout(c,a-f):c()}},reset:function(){k&&clearTimeout(k);k=d=0}}},enableHtml5Elements:function(a, -f){for(var b="abbr article aside audio bdi canvas data datalist details figcaption figure footer header hgroup main mark meter nav output progress section summary time video".split(" "),c=b.length,k;c--;)k=a.createElement(b[c]),f&&a.appendChild(k)},checkIfAnyArrayItemMatches:function(a,f){for(var b=0,c=a.length;b<c;++b)if(a[b].match(f))return!0;return!1},checkIfAnyObjectPropertyMatches:function(a,f){for(var b in a)if(b.match(f))return!0;return!1},keystrokeToString:function(a,b){var c=b&16711680,k= -b&65535,d=CKEDITOR.env.mac,n=[],e=[];c&CKEDITOR.CTRL&&(n.push(d?"⌘":a[17]),e.push(d?a[224]:a[17]));c&CKEDITOR.ALT&&(n.push(d?"⌥":a[18]),e.push(a[18]));c&CKEDITOR.SHIFT&&(n.push(d?"⇧":a[16]),e.push(a[16]));k&&(a[k]?(n.push(a[k]),e.push(a[k])):(n.push(String.fromCharCode(k)),e.push(String.fromCharCode(k))));return{display:n.join("+"),aria:e.join("+")}},transparentImageData:"data:image/gif;base64,R0lGODlhAQABAPABAP///wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw\x3d\x3d",getCookie:function(a){a=a.toLowerCase(); -for(var b=document.cookie.split(";"),c,k,d=0;d<b.length;d++)if(c=b[d].split("\x3d"),k=decodeURIComponent(CKEDITOR.tools.trim(c[0]).toLowerCase()),k===a)return decodeURIComponent(1<c.length?c[1]:"");return null},setCookie:function(a,b){document.cookie=encodeURIComponent(a)+"\x3d"+encodeURIComponent(b)+";path\x3d/"},getCsrfToken:function(){var a=CKEDITOR.tools.getCookie("ckCsrfToken");if(!a||40!=a.length){var a=[],b="";if(window.crypto&&window.crypto.getRandomValues)a=new Uint8Array(40),window.crypto.getRandomValues(a); -else for(var c=0;40>c;c++)a.push(Math.floor(256*Math.random()));for(c=0;c<a.length;c++)var k="abcdefghijklmnopqrstuvwxyz0123456789".charAt(a[c]%36),b=b+(.5<Math.random()?k.toUpperCase():k);a=b;CKEDITOR.tools.setCookie("ckCsrfToken",a)}return a},escapeCss:function(a){return a?window.CSS&&CSS.escape?CSS.escape(a):isNaN(parseInt(a.charAt(0),10))?a:"\\3"+a.charAt(0)+" "+a.substring(1,a.length):""},getMouseButton:function(a){var b=(a=a.data)&&a.$;return a&&b?CKEDITOR.env.ie&&9>CKEDITOR.env.version?4=== -b.button?CKEDITOR.MOUSE_BUTTON_MIDDLE:1===b.button?CKEDITOR.MOUSE_BUTTON_LEFT:CKEDITOR.MOUSE_BUTTON_RIGHT:b.button:!1},style:{parse:{_colors:{aliceblue:"#F0F8FF",antiquewhite:"#FAEBD7",aqua:"#00FFFF",aquamarine:"#7FFFD4",azure:"#F0FFFF",beige:"#F5F5DC",bisque:"#FFE4C4",black:"#000000",blanchedalmond:"#FFEBCD",blue:"#0000FF",blueviolet:"#8A2BE2",brown:"#A52A2A",burlywood:"#DEB887",cadetblue:"#5F9EA0",chartreuse:"#7FFF00",chocolate:"#D2691E",coral:"#FF7F50",cornflowerblue:"#6495ED",cornsilk:"#FFF8DC", -crimson:"#DC143C",cyan:"#00FFFF",darkblue:"#00008B",darkcyan:"#008B8B",darkgoldenrod:"#B8860B",darkgray:"#A9A9A9",darkgreen:"#006400",darkgrey:"#A9A9A9",darkkhaki:"#BDB76B",darkmagenta:"#8B008B",darkolivegreen:"#556B2F",darkorange:"#FF8C00",darkorchid:"#9932CC",darkred:"#8B0000",darksalmon:"#E9967A",darkseagreen:"#8FBC8F",darkslateblue:"#483D8B",darkslategray:"#2F4F4F",darkslategrey:"#2F4F4F",darkturquoise:"#00CED1",darkviolet:"#9400D3",deeppink:"#FF1493",deepskyblue:"#00BFFF",dimgray:"#696969",dimgrey:"#696969", -dodgerblue:"#1E90FF",firebrick:"#B22222",floralwhite:"#FFFAF0",forestgreen:"#228B22",fuchsia:"#FF00FF",gainsboro:"#DCDCDC",ghostwhite:"#F8F8FF",gold:"#FFD700",goldenrod:"#DAA520",gray:"#808080",green:"#008000",greenyellow:"#ADFF2F",grey:"#808080",honeydew:"#F0FFF0",hotpink:"#FF69B4",indianred:"#CD5C5C",indigo:"#4B0082",ivory:"#FFFFF0",khaki:"#F0E68C",lavender:"#E6E6FA",lavenderblush:"#FFF0F5",lawngreen:"#7CFC00",lemonchiffon:"#FFFACD",lightblue:"#ADD8E6",lightcoral:"#F08080",lightcyan:"#E0FFFF",lightgoldenrodyellow:"#FAFAD2", -lightgray:"#D3D3D3",lightgreen:"#90EE90",lightgrey:"#D3D3D3",lightpink:"#FFB6C1",lightsalmon:"#FFA07A",lightseagreen:"#20B2AA",lightskyblue:"#87CEFA",lightslategray:"#778899",lightslategrey:"#778899",lightsteelblue:"#B0C4DE",lightyellow:"#FFFFE0",lime:"#00FF00",limegreen:"#32CD32",linen:"#FAF0E6",magenta:"#FF00FF",maroon:"#800000",mediumaquamarine:"#66CDAA",mediumblue:"#0000CD",mediumorchid:"#BA55D3",mediumpurple:"#9370DB",mediumseagreen:"#3CB371",mediumslateblue:"#7B68EE",mediumspringgreen:"#00FA9A", -mediumturquoise:"#48D1CC",mediumvioletred:"#C71585",midnightblue:"#191970",mintcream:"#F5FFFA",mistyrose:"#FFE4E1",moccasin:"#FFE4B5",navajowhite:"#FFDEAD",navy:"#000080",oldlace:"#FDF5E6",olive:"#808000",olivedrab:"#6B8E23",orange:"#FFA500",orangered:"#FF4500",orchid:"#DA70D6",palegoldenrod:"#EEE8AA",palegreen:"#98FB98",paleturquoise:"#AFEEEE",palevioletred:"#DB7093",papayawhip:"#FFEFD5",peachpuff:"#FFDAB9",peru:"#CD853F",pink:"#FFC0CB",plum:"#DDA0DD",powderblue:"#B0E0E6",purple:"#800080",rebeccapurple:"#663399", -red:"#FF0000",rosybrown:"#BC8F8F",royalblue:"#4169E1",saddlebrown:"#8B4513",salmon:"#FA8072",sandybrown:"#F4A460",seagreen:"#2E8B57",seashell:"#FFF5EE",sienna:"#A0522D",silver:"#C0C0C0",skyblue:"#87CEEB",slateblue:"#6A5ACD",slategray:"#708090",slategrey:"#708090",snow:"#FFFAFA",springgreen:"#00FF7F",steelblue:"#4682B4",tan:"#D2B48C",teal:"#008080",thistle:"#D8BFD8",tomato:"#FF6347",turquoise:"#40E0D0",violet:"#EE82EE",wheat:"#F5DEB3",white:"#FFFFFF",whitesmoke:"#F5F5F5",yellow:"#FFFF00",yellowgreen:"#9ACD32"}, -_borderStyle:"none hidden dotted dashed solid double groove ridge inset outset".split(" "),_widthRegExp:/^(thin|medium|thick|[\+-]?\d+(\.\d+)?[a-z%]+|[\+-]?0+(\.0+)?|\.\d+[a-z%]+)$/,_rgbaRegExp:/rgba?\(\s*\d+%?\s*,\s*\d+%?\s*,\s*\d+%?\s*(?:,\s*[0-9.]+\s*)?\)/gi,_hslaRegExp:/hsla?\(\s*[0-9.]+\s*,\s*\d+%\s*,\s*\d+%\s*(?:,\s*[0-9.]+\s*)?\)/gi,background:function(a){var b={},c=this._findColor(a);c.length&&(b.color=c[0],CKEDITOR.tools.array.forEach(c,function(b){a=a.replace(b,"")}));if(a=CKEDITOR.tools.trim(a))b.unprocessed= -a;return b},margin:function(a){function b(a){c.top=k[a[0]];c.right=k[a[1]];c.bottom=k[a[2]];c.left=k[a[3]]}var c={},k=a.match(/(?:\-?[\.\d]+(?:%|\w*)|auto|inherit|initial|unset)/g)||["0px"];switch(k.length){case 1:b([0,0,0,0]);break;case 2:b([0,1,0,1]);break;case 3:b([0,1,2,1]);break;case 4:b([0,1,2,3])}return c},border:function(a){var b={};a=a.split(/\s+/);CKEDITOR.tools.array.forEach(a,function(a){if(!b.color){var c=CKEDITOR.tools.style.parse._findColor(a);if(c.length){b.color=c[0];return}}b.style|| --1===CKEDITOR.tools.indexOf(CKEDITOR.tools.style.parse._borderStyle,a)?!b.width&&CKEDITOR.tools.style.parse._widthRegExp.test(a)&&(b.width=a):b.style=a});return b},_findColor:function(a){var b=[],c=CKEDITOR.tools.array,b=b.concat(a.match(this._rgbaRegExp)||[]),b=b.concat(a.match(this._hslaRegExp)||[]);return b=b.concat(c.filter(a.split(/\s+/),function(a){return a.match(/^\#[a-f0-9]{3}(?:[a-f0-9]{3})?$/gi)?!0:a.toLowerCase()in CKEDITOR.tools.style.parse._colors}))}}},array:{filter:function(a,b,c){var k= -[];this.forEach(a,function(d,n){b.call(c,d,n,a)&&k.push(d)});return k},forEach:function(a,b,c){var k=a.length,d;for(d=0;d<k;d++)b.call(c,a[d],d,a)},map:function(a,b,c){for(var k=[],d=0;d<a.length;d++)k.push(b.call(c,a[d],d,a));return k},reduce:function(a,b,c,k){for(var d=0;d<a.length;d++)c=b.call(k,c,a[d],d,a);return c}},object:{findKey:function(a,b){if("object"!==typeof a)return null;for(var c in a)if(a[c]===b)return c;return null}}};CKEDITOR.tools.array.indexOf=CKEDITOR.tools.indexOf;CKEDITOR.tools.array.isArray= -CKEDITOR.tools.isArray;CKEDITOR.MOUSE_BUTTON_LEFT=0;CKEDITOR.MOUSE_BUTTON_MIDDLE=1;CKEDITOR.MOUSE_BUTTON_RIGHT=2})(); -CKEDITOR.dtd=function(){var a=CKEDITOR.tools.extend,d=function(a,b){for(var c=CKEDITOR.tools.clone(a),k=1;k<arguments.length;k++){b=arguments[k];for(var d in b)delete c[d]}return c},b={},c={},e={address:1,article:1,aside:1,blockquote:1,details:1,div:1,dl:1,fieldset:1,figure:1,footer:1,form:1,h1:1,h2:1,h3:1,h4:1,h5:1,h6:1,header:1,hgroup:1,hr:1,main:1,menu:1,nav:1,ol:1,p:1,pre:1,section:1,table:1,ul:1},g={command:1,link:1,meta:1,noscript:1,script:1,style:1},h={},k={"#":1},n={center:1,dir:1,noframes:1}; -a(b,{a:1,abbr:1,area:1,audio:1,b:1,bdi:1,bdo:1,br:1,button:1,canvas:1,cite:1,code:1,command:1,datalist:1,del:1,dfn:1,em:1,embed:1,i:1,iframe:1,img:1,input:1,ins:1,kbd:1,keygen:1,label:1,map:1,mark:1,meter:1,noscript:1,object:1,output:1,progress:1,q:1,ruby:1,s:1,samp:1,script:1,select:1,small:1,span:1,strong:1,sub:1,sup:1,textarea:1,time:1,u:1,"var":1,video:1,wbr:1},k,{acronym:1,applet:1,basefont:1,big:1,font:1,isindex:1,strike:1,style:1,tt:1});a(c,e,b,n);d={a:d(b,{a:1,button:1}),abbr:b,address:c, -area:h,article:c,aside:c,audio:a({source:1,track:1},c),b:b,base:h,bdi:b,bdo:b,blockquote:c,body:c,br:h,button:d(b,{a:1,button:1}),canvas:b,caption:c,cite:b,code:b,col:h,colgroup:{col:1},command:h,datalist:a({option:1},b),dd:c,del:b,details:a({summary:1},c),dfn:b,div:c,dl:{dt:1,dd:1},dt:c,em:b,embed:h,fieldset:a({legend:1},c),figcaption:c,figure:a({figcaption:1},c),footer:c,form:c,h1:b,h2:b,h3:b,h4:b,h5:b,h6:b,head:a({title:1,base:1},g),header:c,hgroup:{h1:1,h2:1,h3:1,h4:1,h5:1,h6:1},hr:h,html:a({head:1, -body:1},c,g),i:b,iframe:k,img:h,input:h,ins:b,kbd:b,keygen:h,label:b,legend:b,li:c,link:h,main:c,map:c,mark:b,menu:a({li:1},c),meta:h,meter:d(b,{meter:1}),nav:c,noscript:a({link:1,meta:1,style:1},b),object:a({param:1},b),ol:{li:1},optgroup:{option:1},option:k,output:b,p:b,param:h,pre:b,progress:d(b,{progress:1}),q:b,rp:b,rt:b,ruby:a({rp:1,rt:1},b),s:b,samp:b,script:k,section:c,select:{optgroup:1,option:1},small:b,source:h,span:b,strong:b,style:k,sub:b,summary:a({h1:1,h2:1,h3:1,h4:1,h5:1,h6:1},b), -sup:b,table:{caption:1,colgroup:1,thead:1,tfoot:1,tbody:1,tr:1},tbody:{tr:1},td:c,textarea:k,tfoot:{tr:1},th:c,thead:{tr:1},time:d(b,{time:1}),title:k,tr:{th:1,td:1},track:h,u:b,ul:{li:1},"var":b,video:a({source:1,track:1},c),wbr:h,acronym:b,applet:a({param:1},c),basefont:h,big:b,center:c,dialog:h,dir:{li:1},font:b,isindex:h,noframes:c,strike:b,tt:b};a(d,{$block:a({audio:1,dd:1,dt:1,figcaption:1,li:1,video:1},e,n),$blockLimit:{article:1,aside:1,audio:1,body:1,caption:1,details:1,dir:1,div:1,dl:1, -fieldset:1,figcaption:1,figure:1,footer:1,form:1,header:1,hgroup:1,main:1,menu:1,nav:1,ol:1,section:1,table:1,td:1,th:1,tr:1,ul:1,video:1},$cdata:{script:1,style:1},$editable:{address:1,article:1,aside:1,blockquote:1,body:1,details:1,div:1,fieldset:1,figcaption:1,footer:1,form:1,h1:1,h2:1,h3:1,h4:1,h5:1,h6:1,header:1,hgroup:1,main:1,nav:1,p:1,pre:1,section:1},$empty:{area:1,base:1,basefont:1,br:1,col:1,command:1,dialog:1,embed:1,hr:1,img:1,input:1,isindex:1,keygen:1,link:1,meta:1,param:1,source:1, -track:1,wbr:1},$inline:b,$list:{dl:1,ol:1,ul:1},$listItem:{dd:1,dt:1,li:1},$nonBodyContent:a({body:1,head:1,html:1},d.head),$nonEditable:{applet:1,audio:1,button:1,embed:1,iframe:1,map:1,object:1,option:1,param:1,script:1,textarea:1,video:1},$object:{applet:1,audio:1,button:1,hr:1,iframe:1,img:1,input:1,object:1,select:1,table:1,textarea:1,video:1},$removeEmpty:{abbr:1,acronym:1,b:1,bdi:1,bdo:1,big:1,cite:1,code:1,del:1,dfn:1,em:1,font:1,i:1,ins:1,label:1,kbd:1,mark:1,meter:1,output:1,q:1,ruby:1, -s:1,samp:1,small:1,span:1,strike:1,strong:1,sub:1,sup:1,time:1,tt:1,u:1,"var":1},$tabIndex:{a:1,area:1,button:1,input:1,object:1,select:1,textarea:1},$tableContent:{caption:1,col:1,colgroup:1,tbody:1,td:1,tfoot:1,th:1,thead:1,tr:1},$transparent:{a:1,audio:1,canvas:1,del:1,ins:1,map:1,noscript:1,object:1,video:1},$intermediate:{caption:1,colgroup:1,dd:1,dt:1,figcaption:1,legend:1,li:1,optgroup:1,option:1,rp:1,rt:1,summary:1,tbody:1,td:1,tfoot:1,th:1,thead:1,tr:1}});return d}(); -CKEDITOR.dom.event=function(a){this.$=a}; -CKEDITOR.dom.event.prototype={getKey:function(){return this.$.keyCode||this.$.which},getKeystroke:function(){var a=this.getKey();if(this.$.ctrlKey||this.$.metaKey)a+=CKEDITOR.CTRL;this.$.shiftKey&&(a+=CKEDITOR.SHIFT);this.$.altKey&&(a+=CKEDITOR.ALT);return a},preventDefault:function(a){var d=this.$;d.preventDefault?d.preventDefault():d.returnValue=!1;a&&this.stopPropagation()},stopPropagation:function(){var a=this.$;a.stopPropagation?a.stopPropagation():a.cancelBubble=!0},getTarget:function(){var a= -this.$.target||this.$.srcElement;return a?new CKEDITOR.dom.node(a):null},getPhase:function(){return this.$.eventPhase||2},getPageOffset:function(){var a=this.getTarget().getDocument().$;return{x:this.$.pageX||this.$.clientX+(a.documentElement.scrollLeft||a.body.scrollLeft),y:this.$.pageY||this.$.clientY+(a.documentElement.scrollTop||a.body.scrollTop)}}};CKEDITOR.CTRL=1114112;CKEDITOR.SHIFT=2228224;CKEDITOR.ALT=4456448;CKEDITOR.EVENT_PHASE_CAPTURING=1;CKEDITOR.EVENT_PHASE_AT_TARGET=2; -CKEDITOR.EVENT_PHASE_BUBBLING=3;CKEDITOR.dom.domObject=function(a){a&&(this.$=a)}; -CKEDITOR.dom.domObject.prototype=function(){var a=function(a,b){return function(c){"undefined"!=typeof CKEDITOR&&a.fire(b,new CKEDITOR.dom.event(c))}};return{getPrivate:function(){var a;(a=this.getCustomData("_"))||this.setCustomData("_",a={});return a},on:function(d){var b=this.getCustomData("_cke_nativeListeners");b||(b={},this.setCustomData("_cke_nativeListeners",b));b[d]||(b=b[d]=a(this,d),this.$.addEventListener?this.$.addEventListener(d,b,!!CKEDITOR.event.useCapture):this.$.attachEvent&&this.$.attachEvent("on"+ -d,b));return CKEDITOR.event.prototype.on.apply(this,arguments)},removeListener:function(a){CKEDITOR.event.prototype.removeListener.apply(this,arguments);if(!this.hasListeners(a)){var b=this.getCustomData("_cke_nativeListeners"),c=b&&b[a];c&&(this.$.removeEventListener?this.$.removeEventListener(a,c,!1):this.$.detachEvent&&this.$.detachEvent("on"+a,c),delete b[a])}},removeAllListeners:function(){var a=this.getCustomData("_cke_nativeListeners"),b;for(b in a){var c=a[b];this.$.detachEvent?this.$.detachEvent("on"+ -b,c):this.$.removeEventListener&&this.$.removeEventListener(b,c,!1);delete a[b]}CKEDITOR.event.prototype.removeAllListeners.call(this)}}}(); -(function(a){var d={};CKEDITOR.on("reset",function(){d={}});a.equals=function(a){try{return a&&a.$===this.$}catch(c){return!1}};a.setCustomData=function(a,c){var e=this.getUniqueId();(d[e]||(d[e]={}))[a]=c;return this};a.getCustomData=function(a){var c=this.$["data-cke-expando"];return(c=c&&d[c])&&a in c?c[a]:null};a.removeCustomData=function(a){var c=this.$["data-cke-expando"],c=c&&d[c],e,g;c&&(e=c[a],g=a in c,delete c[a]);return g?e:null};a.clearCustomData=function(){this.removeAllListeners();var a= -this.$["data-cke-expando"];a&&delete d[a]};a.getUniqueId=function(){return this.$["data-cke-expando"]||(this.$["data-cke-expando"]=CKEDITOR.tools.getNextNumber())};CKEDITOR.event.implementOn(a)})(CKEDITOR.dom.domObject.prototype); -CKEDITOR.dom.node=function(a){return a?new CKEDITOR.dom[a.nodeType==CKEDITOR.NODE_DOCUMENT?"document":a.nodeType==CKEDITOR.NODE_ELEMENT?"element":a.nodeType==CKEDITOR.NODE_TEXT?"text":a.nodeType==CKEDITOR.NODE_COMMENT?"comment":a.nodeType==CKEDITOR.NODE_DOCUMENT_FRAGMENT?"documentFragment":"domObject"](a):this};CKEDITOR.dom.node.prototype=new CKEDITOR.dom.domObject;CKEDITOR.NODE_ELEMENT=1;CKEDITOR.NODE_DOCUMENT=9;CKEDITOR.NODE_TEXT=3;CKEDITOR.NODE_COMMENT=8;CKEDITOR.NODE_DOCUMENT_FRAGMENT=11; -CKEDITOR.POSITION_IDENTICAL=0;CKEDITOR.POSITION_DISCONNECTED=1;CKEDITOR.POSITION_FOLLOWING=2;CKEDITOR.POSITION_PRECEDING=4;CKEDITOR.POSITION_IS_CONTAINED=8;CKEDITOR.POSITION_CONTAINS=16; -CKEDITOR.tools.extend(CKEDITOR.dom.node.prototype,{appendTo:function(a,d){a.append(this,d);return a},clone:function(a,d){function b(c){c["data-cke-expando"]&&(c["data-cke-expando"]=!1);if(c.nodeType==CKEDITOR.NODE_ELEMENT||c.nodeType==CKEDITOR.NODE_DOCUMENT_FRAGMENT)if(d||c.nodeType!=CKEDITOR.NODE_ELEMENT||c.removeAttribute("id",!1),a){c=c.childNodes;for(var e=0;e<c.length;e++)b(c[e])}}function c(b){if(b.type==CKEDITOR.NODE_ELEMENT||b.type==CKEDITOR.NODE_DOCUMENT_FRAGMENT){if(b.type!=CKEDITOR.NODE_DOCUMENT_FRAGMENT){var d= -b.getName();":"==d[0]&&b.renameNode(d.substring(1))}if(a)for(d=0;d<b.getChildCount();d++)c(b.getChild(d))}}var e=this.$.cloneNode(a);b(e);e=new CKEDITOR.dom.node(e);CKEDITOR.env.ie&&9>CKEDITOR.env.version&&(this.type==CKEDITOR.NODE_ELEMENT||this.type==CKEDITOR.NODE_DOCUMENT_FRAGMENT)&&c(e);return e},hasPrevious:function(){return!!this.$.previousSibling},hasNext:function(){return!!this.$.nextSibling},insertAfter:function(a){a.$.parentNode.insertBefore(this.$,a.$.nextSibling);return a},insertBefore:function(a){a.$.parentNode.insertBefore(this.$, -a.$);return a},insertBeforeMe:function(a){this.$.parentNode.insertBefore(a.$,this.$);return a},getAddress:function(a){for(var d=[],b=this.getDocument().$.documentElement,c=this.$;c&&c!=b;){var e=c.parentNode;e&&d.unshift(this.getIndex.call({$:c},a));c=e}return d},getDocument:function(){return new CKEDITOR.dom.document(this.$.ownerDocument||this.$.parentNode.ownerDocument)},getIndex:function(a){function d(a,c){var n=c?a.nextSibling:a.previousSibling;return n&&n.nodeType==CKEDITOR.NODE_TEXT?b(n)?d(n, -c):n:null}function b(a){return!a.nodeValue||a.nodeValue==CKEDITOR.dom.selection.FILLING_CHAR_SEQUENCE}var c=this.$,e=-1,g;if(!this.$.parentNode||a&&c.nodeType==CKEDITOR.NODE_TEXT&&b(c)&&!d(c)&&!d(c,!0))return-1;do a&&c!=this.$&&c.nodeType==CKEDITOR.NODE_TEXT&&(g||b(c))||(e++,g=c.nodeType==CKEDITOR.NODE_TEXT);while(c=c.previousSibling);return e},getNextSourceNode:function(a,d,b){if(b&&!b.call){var c=b;b=function(a){return!a.equals(c)}}a=!a&&this.getFirst&&this.getFirst();var e;if(!a){if(this.type== -CKEDITOR.NODE_ELEMENT&&b&&!1===b(this,!0))return null;a=this.getNext()}for(;!a&&(e=(e||this).getParent());){if(b&&!1===b(e,!0))return null;a=e.getNext()}return!a||b&&!1===b(a)?null:d&&d!=a.type?a.getNextSourceNode(!1,d,b):a},getPreviousSourceNode:function(a,d,b){if(b&&!b.call){var c=b;b=function(a){return!a.equals(c)}}a=!a&&this.getLast&&this.getLast();var e;if(!a){if(this.type==CKEDITOR.NODE_ELEMENT&&b&&!1===b(this,!0))return null;a=this.getPrevious()}for(;!a&&(e=(e||this).getParent());){if(b&&!1=== -b(e,!0))return null;a=e.getPrevious()}return!a||b&&!1===b(a)?null:d&&a.type!=d?a.getPreviousSourceNode(!1,d,b):a},getPrevious:function(a){var d=this.$,b;do b=(d=d.previousSibling)&&10!=d.nodeType&&new CKEDITOR.dom.node(d);while(b&&a&&!a(b));return b},getNext:function(a){var d=this.$,b;do b=(d=d.nextSibling)&&new CKEDITOR.dom.node(d);while(b&&a&&!a(b));return b},getParent:function(a){var d=this.$.parentNode;return d&&(d.nodeType==CKEDITOR.NODE_ELEMENT||a&&d.nodeType==CKEDITOR.NODE_DOCUMENT_FRAGMENT)? -new CKEDITOR.dom.node(d):null},getParents:function(a){var d=this,b=[];do b[a?"push":"unshift"](d);while(d=d.getParent());return b},getCommonAncestor:function(a){if(a.equals(this))return this;if(a.contains&&a.contains(this))return a;var d=this.contains?this:this.getParent();do if(d.contains(a))return d;while(d=d.getParent());return null},getPosition:function(a){var d=this.$,b=a.$;if(d.compareDocumentPosition)return d.compareDocumentPosition(b);if(d==b)return CKEDITOR.POSITION_IDENTICAL;if(this.type== -CKEDITOR.NODE_ELEMENT&&a.type==CKEDITOR.NODE_ELEMENT){if(d.contains){if(d.contains(b))return CKEDITOR.POSITION_CONTAINS+CKEDITOR.POSITION_PRECEDING;if(b.contains(d))return CKEDITOR.POSITION_IS_CONTAINED+CKEDITOR.POSITION_FOLLOWING}if("sourceIndex"in d)return 0>d.sourceIndex||0>b.sourceIndex?CKEDITOR.POSITION_DISCONNECTED:d.sourceIndex<b.sourceIndex?CKEDITOR.POSITION_PRECEDING:CKEDITOR.POSITION_FOLLOWING}d=this.getAddress();a=a.getAddress();for(var b=Math.min(d.length,a.length),c=0;c<b;c++)if(d[c]!= -a[c])return d[c]<a[c]?CKEDITOR.POSITION_PRECEDING:CKEDITOR.POSITION_FOLLOWING;return d.length<a.length?CKEDITOR.POSITION_CONTAINS+CKEDITOR.POSITION_PRECEDING:CKEDITOR.POSITION_IS_CONTAINED+CKEDITOR.POSITION_FOLLOWING},getAscendant:function(a,d){var b=this.$,c,e;d||(b=b.parentNode);"function"==typeof a?(e=!0,c=a):(e=!1,c=function(b){b="string"==typeof b.nodeName?b.nodeName.toLowerCase():"";return"string"==typeof a?b==a:b in a});for(;b;){if(c(e?new CKEDITOR.dom.node(b):b))return new CKEDITOR.dom.node(b); -try{b=b.parentNode}catch(g){b=null}}return null},hasAscendant:function(a,d){var b=this.$;d||(b=b.parentNode);for(;b;){if(b.nodeName&&b.nodeName.toLowerCase()==a)return!0;b=b.parentNode}return!1},move:function(a,d){a.append(this.remove(),d)},remove:function(a){var d=this.$,b=d.parentNode;if(b){if(a)for(;a=d.firstChild;)b.insertBefore(d.removeChild(a),d);b.removeChild(d)}return this},replace:function(a){this.insertBefore(a);a.remove()},trim:function(){this.ltrim();this.rtrim()},ltrim:function(){for(var a;this.getFirst&& -(a=this.getFirst());){if(a.type==CKEDITOR.NODE_TEXT){var d=CKEDITOR.tools.ltrim(a.getText()),b=a.getLength();if(d)d.length<b&&(a.split(b-d.length),this.$.removeChild(this.$.firstChild));else{a.remove();continue}}break}},rtrim:function(){for(var a;this.getLast&&(a=this.getLast());){if(a.type==CKEDITOR.NODE_TEXT){var d=CKEDITOR.tools.rtrim(a.getText()),b=a.getLength();if(d)d.length<b&&(a.split(d.length),this.$.lastChild.parentNode.removeChild(this.$.lastChild));else{a.remove();continue}}break}CKEDITOR.env.needsBrFiller&& -(a=this.$.lastChild)&&1==a.type&&"br"==a.nodeName.toLowerCase()&&a.parentNode.removeChild(a)},isReadOnly:function(a){var d=this;this.type!=CKEDITOR.NODE_ELEMENT&&(d=this.getParent());CKEDITOR.env.edge&&d&&d.is("textarea","input")&&(a=!0);if(!a&&d&&"undefined"!=typeof d.$.isContentEditable)return!(d.$.isContentEditable||d.data("cke-editable"));for(;d;){if(d.data("cke-editable"))return!1;if(d.hasAttribute("contenteditable"))return"false"==d.getAttribute("contenteditable");d=d.getParent()}return!0}}); -CKEDITOR.dom.window=function(a){CKEDITOR.dom.domObject.call(this,a)};CKEDITOR.dom.window.prototype=new CKEDITOR.dom.domObject; -CKEDITOR.tools.extend(CKEDITOR.dom.window.prototype,{focus:function(){this.$.focus()},getViewPaneSize:function(){var a=this.$.document,d="CSS1Compat"==a.compatMode;return{width:(d?a.documentElement.clientWidth:a.body.clientWidth)||0,height:(d?a.documentElement.clientHeight:a.body.clientHeight)||0}},getScrollPosition:function(){var a=this.$;if("pageXOffset"in a)return{x:a.pageXOffset||0,y:a.pageYOffset||0};a=a.document;return{x:a.documentElement.scrollLeft||a.body.scrollLeft||0,y:a.documentElement.scrollTop|| -a.body.scrollTop||0}},getFrame:function(){var a=this.$.frameElement;return a?new CKEDITOR.dom.element.get(a):null}});CKEDITOR.dom.document=function(a){CKEDITOR.dom.domObject.call(this,a)};CKEDITOR.dom.document.prototype=new CKEDITOR.dom.domObject; -CKEDITOR.tools.extend(CKEDITOR.dom.document.prototype,{type:CKEDITOR.NODE_DOCUMENT,appendStyleSheet:function(a){if(this.$.createStyleSheet)this.$.createStyleSheet(a);else{var d=new CKEDITOR.dom.element("link");d.setAttributes({rel:"stylesheet",type:"text/css",href:a});this.getHead().append(d)}},appendStyleText:function(a){if(this.$.createStyleSheet){var d=this.$.createStyleSheet("");d.cssText=a}else{var b=new CKEDITOR.dom.element("style",this);b.append(new CKEDITOR.dom.text(a,this));this.getHead().append(b)}return d|| -b.$.sheet},createElement:function(a,d){var b=new CKEDITOR.dom.element(a,this);d&&(d.attributes&&b.setAttributes(d.attributes),d.styles&&b.setStyles(d.styles));return b},createText:function(a){return new CKEDITOR.dom.text(a,this)},focus:function(){this.getWindow().focus()},getActive:function(){var a;try{a=this.$.activeElement}catch(d){return null}return new CKEDITOR.dom.element(a)},getById:function(a){return(a=this.$.getElementById(a))?new CKEDITOR.dom.element(a):null},getByAddress:function(a,d){for(var b= -this.$.documentElement,c=0;b&&c<a.length;c++){var e=a[c];if(d)for(var g=-1,h=0;h<b.childNodes.length;h++){var k=b.childNodes[h];if(!0!==d||3!=k.nodeType||!k.previousSibling||3!=k.previousSibling.nodeType)if(g++,g==e){b=k;break}}else b=b.childNodes[e]}return b?new CKEDITOR.dom.node(b):null},getElementsByTag:function(a,d){CKEDITOR.env.ie&&8>=document.documentMode||!d||(a=d+":"+a);return new CKEDITOR.dom.nodeList(this.$.getElementsByTagName(a))},getHead:function(){var a=this.$.getElementsByTagName("head")[0]; -return a=a?new CKEDITOR.dom.element(a):this.getDocumentElement().append(new CKEDITOR.dom.element("head"),!0)},getBody:function(){return new CKEDITOR.dom.element(this.$.body)},getDocumentElement:function(){return new CKEDITOR.dom.element(this.$.documentElement)},getWindow:function(){return new CKEDITOR.dom.window(this.$.parentWindow||this.$.defaultView)},write:function(a){this.$.open("text/html","replace");CKEDITOR.env.ie&&(a=a.replace(/(?:^\s*<!DOCTYPE[^>]*?>)|^/i,'$\x26\n\x3cscript data-cke-temp\x3d"1"\x3e('+ -CKEDITOR.tools.fixDomain+")();\x3c/script\x3e"));this.$.write(a);this.$.close()},find:function(a){return new CKEDITOR.dom.nodeList(this.$.querySelectorAll(a))},findOne:function(a){return(a=this.$.querySelector(a))?new CKEDITOR.dom.element(a):null},_getHtml5ShivFrag:function(){var a=this.getCustomData("html5ShivFrag");a||(a=this.$.createDocumentFragment(),CKEDITOR.tools.enableHtml5Elements(a,!0),this.setCustomData("html5ShivFrag",a));return a}});CKEDITOR.dom.nodeList=function(a){this.$=a}; -CKEDITOR.dom.nodeList.prototype={count:function(){return this.$.length},getItem:function(a){return 0>a||a>=this.$.length?null:(a=this.$[a])?new CKEDITOR.dom.node(a):null},toArray:function(){return CKEDITOR.tools.array.map(this.$,function(a){return new CKEDITOR.dom.node(a)})}};CKEDITOR.dom.element=function(a,d){"string"==typeof a&&(a=(d?d.$:document).createElement(a));CKEDITOR.dom.domObject.call(this,a)}; -CKEDITOR.dom.element.get=function(a){return(a="string"==typeof a?document.getElementById(a)||document.getElementsByName(a)[0]:a)&&(a.$?a:new CKEDITOR.dom.element(a))};CKEDITOR.dom.element.prototype=new CKEDITOR.dom.node;CKEDITOR.dom.element.createFromHtml=function(a,d){var b=new CKEDITOR.dom.element("div",d);b.setHtml(a);return b.getFirst().remove()}; -CKEDITOR.dom.element.setMarker=function(a,d,b,c){var e=d.getCustomData("list_marker_id")||d.setCustomData("list_marker_id",CKEDITOR.tools.getNextNumber()).getCustomData("list_marker_id"),g=d.getCustomData("list_marker_names")||d.setCustomData("list_marker_names",{}).getCustomData("list_marker_names");a[e]=d;g[b]=1;return d.setCustomData(b,c)};CKEDITOR.dom.element.clearAllMarkers=function(a){for(var d in a)CKEDITOR.dom.element.clearMarkers(a,a[d],1)}; -CKEDITOR.dom.element.clearMarkers=function(a,d,b){var c=d.getCustomData("list_marker_names"),e=d.getCustomData("list_marker_id"),g;for(g in c)d.removeCustomData(g);d.removeCustomData("list_marker_names");b&&(d.removeCustomData("list_marker_id"),delete a[e])}; -(function(){function a(a,b){return-1<(" "+a+" ").replace(g," ").indexOf(" "+b+" ")}function d(a){var b=!0;a.$.id||(a.$.id="cke_tmp_"+CKEDITOR.tools.getNextNumber(),b=!1);return function(){b||a.removeAttribute("id")}}function b(a,b){var c=CKEDITOR.tools.escapeCss(a.$.id);return"#"+c+" "+b.split(/,\s*/).join(", #"+c+" ")}function c(a){for(var b=0,c=0,f=h[a].length;c<f;c++)b+=parseFloat(this.getComputedStyle(h[a][c])||0,10)||0;return b}var e=document.createElement("_").classList,e="undefined"!==typeof e&& -null!==String(e.add).match(/\[Native code\]/gi),g=/[\n\t\r]/g;CKEDITOR.tools.extend(CKEDITOR.dom.element.prototype,{type:CKEDITOR.NODE_ELEMENT,addClass:e?function(a){this.$.classList.add(a);return this}:function(b){var c=this.$.className;c&&(a(c,b)||(c+=" "+b));this.$.className=c||b;return this},removeClass:e?function(a){var b=this.$;b.classList.remove(a);b.className||b.removeAttribute("class");return this}:function(b){var c=this.getAttribute("class");c&&a(c,b)&&((c=c.replace(new RegExp("(?:^|\\s+)"+ -b+"(?\x3d\\s|$)"),"").replace(/^\s+/,""))?this.setAttribute("class",c):this.removeAttribute("class"));return this},hasClass:function(b){return a(this.$.className,b)},append:function(a,b){"string"==typeof a&&(a=this.getDocument().createElement(a));b?this.$.insertBefore(a.$,this.$.firstChild):this.$.appendChild(a.$);return a},appendHtml:function(a){if(this.$.childNodes.length){var b=new CKEDITOR.dom.element("div",this.getDocument());b.setHtml(a);b.moveChildren(this)}else this.setHtml(a)},appendText:function(a){null!= -this.$.text&&CKEDITOR.env.ie&&9>CKEDITOR.env.version?this.$.text+=a:this.append(new CKEDITOR.dom.text(a))},appendBogus:function(a){if(a||CKEDITOR.env.needsBrFiller){for(a=this.getLast();a&&a.type==CKEDITOR.NODE_TEXT&&!CKEDITOR.tools.rtrim(a.getText());)a=a.getPrevious();a&&a.is&&a.is("br")||(a=this.getDocument().createElement("br"),CKEDITOR.env.gecko&&a.setAttribute("type","_moz"),this.append(a))}},breakParent:function(a,b){var c=new CKEDITOR.dom.range(this.getDocument());c.setStartAfter(this);c.setEndAfter(a); -var f=c.extractContents(!1,b||!1),d;c.insertNode(this.remove());if(CKEDITOR.env.ie&&!CKEDITOR.env.edge){for(c=new CKEDITOR.dom.element("div");d=f.getFirst();)d.$.style.backgroundColor&&(d.$.style.backgroundColor=d.$.style.backgroundColor),c.append(d);c.insertAfter(this);c.remove(!0)}else f.insertAfterNode(this)},contains:document.compareDocumentPosition?function(a){return!!(this.$.compareDocumentPosition(a.$)&16)}:function(a){var b=this.$;return a.type!=CKEDITOR.NODE_ELEMENT?b.contains(a.getParent().$): -b!=a.$&&b.contains(a.$)},focus:function(){function a(){try{this.$.focus()}catch(b){}}return function(b){b?CKEDITOR.tools.setTimeout(a,100,this):a.call(this)}}(),getHtml:function(){var a=this.$.innerHTML;return CKEDITOR.env.ie?a.replace(/<\?[^>]*>/g,""):a},getOuterHtml:function(){if(this.$.outerHTML)return this.$.outerHTML.replace(/<\?[^>]*>/,"");var a=this.$.ownerDocument.createElement("div");a.appendChild(this.$.cloneNode(!0));return a.innerHTML},getClientRect:function(){var a=CKEDITOR.tools.extend({}, -this.$.getBoundingClientRect());!a.width&&(a.width=a.right-a.left);!a.height&&(a.height=a.bottom-a.top);return a},setHtml:CKEDITOR.env.ie&&9>CKEDITOR.env.version?function(a){try{var b=this.$;if(this.getParent())return b.innerHTML=a;var c=this.getDocument()._getHtml5ShivFrag();c.appendChild(b);b.innerHTML=a;c.removeChild(b);return a}catch(f){this.$.innerHTML="";b=new CKEDITOR.dom.element("body",this.getDocument());b.$.innerHTML=a;for(b=b.getChildren();b.count();)this.append(b.getItem(0));return a}}: -function(a){return this.$.innerHTML=a},setText:function(){var a=document.createElement("p");a.innerHTML="x";a=a.textContent;return function(b){this.$[a?"textContent":"innerText"]=b}}(),getAttribute:function(){var a=function(a){return this.$.getAttribute(a,2)};return CKEDITOR.env.ie&&(CKEDITOR.env.ie7Compat||CKEDITOR.env.quirks)?function(a){switch(a){case "class":a="className";break;case "http-equiv":a="httpEquiv";break;case "name":return this.$.name;case "tabindex":return a=this.$.getAttribute(a, -2),0!==a&&0===this.$.tabIndex&&(a=null),a;case "checked":return a=this.$.attributes.getNamedItem(a),(a.specified?a.nodeValue:this.$.checked)?"checked":null;case "hspace":case "value":return this.$[a];case "style":return this.$.style.cssText;case "contenteditable":case "contentEditable":return this.$.attributes.getNamedItem("contentEditable").specified?this.$.getAttribute("contentEditable"):null}return this.$.getAttribute(a,2)}:a}(),getAttributes:function(a){var b={},c=this.$.attributes,f;a=CKEDITOR.tools.isArray(a)? -a:[];for(f=0;f<c.length;f++)-1===CKEDITOR.tools.indexOf(a,c[f].name)&&(b[c[f].name]=c[f].value);return b},getChildren:function(){return new CKEDITOR.dom.nodeList(this.$.childNodes)},getComputedStyle:document.defaultView&&document.defaultView.getComputedStyle?function(a){var b=this.getWindow().$.getComputedStyle(this.$,null);return b?b.getPropertyValue(a):""}:function(a){return this.$.currentStyle[CKEDITOR.tools.cssStyleToDomStyle(a)]},getDtd:function(){var a=CKEDITOR.dtd[this.getName()];this.getDtd= -function(){return a};return a},getElementsByTag:CKEDITOR.dom.document.prototype.getElementsByTag,getTabIndex:function(){var a=this.$.tabIndex;return 0!==a||CKEDITOR.dtd.$tabIndex[this.getName()]||0===parseInt(this.getAttribute("tabindex"),10)?a:-1},getText:function(){return this.$.textContent||this.$.innerText||""},getWindow:function(){return this.getDocument().getWindow()},getId:function(){return this.$.id||null},getNameAtt:function(){return this.$.name||null},getName:function(){var a=this.$.nodeName.toLowerCase(); -if(CKEDITOR.env.ie&&8>=document.documentMode){var b=this.$.scopeName;"HTML"!=b&&(a=b.toLowerCase()+":"+a)}this.getName=function(){return a};return this.getName()},getValue:function(){return this.$.value},getFirst:function(a){var b=this.$.firstChild;(b=b&&new CKEDITOR.dom.node(b))&&a&&!a(b)&&(b=b.getNext(a));return b},getLast:function(a){var b=this.$.lastChild;(b=b&&new CKEDITOR.dom.node(b))&&a&&!a(b)&&(b=b.getPrevious(a));return b},getStyle:function(a){return this.$.style[CKEDITOR.tools.cssStyleToDomStyle(a)]}, -is:function(){var a=this.getName();if("object"==typeof arguments[0])return!!arguments[0][a];for(var b=0;b<arguments.length;b++)if(arguments[b]==a)return!0;return!1},isEditable:function(a){var b=this.getName();return this.isReadOnly()||"none"==this.getComputedStyle("display")||"hidden"==this.getComputedStyle("visibility")||CKEDITOR.dtd.$nonEditable[b]||CKEDITOR.dtd.$empty[b]||this.is("a")&&(this.data("cke-saved-name")||this.hasAttribute("name"))&&!this.getChildCount()?!1:!1!==a?(a=CKEDITOR.dtd[b]|| -CKEDITOR.dtd.span,!(!a||!a["#"])):!0},isIdentical:function(a){var b=this.clone(0,1);a=a.clone(0,1);b.removeAttributes(["_moz_dirty","data-cke-expando","data-cke-saved-href","data-cke-saved-name"]);a.removeAttributes(["_moz_dirty","data-cke-expando","data-cke-saved-href","data-cke-saved-name"]);if(b.$.isEqualNode)return b.$.style.cssText=CKEDITOR.tools.normalizeCssText(b.$.style.cssText),a.$.style.cssText=CKEDITOR.tools.normalizeCssText(a.$.style.cssText),b.$.isEqualNode(a.$);b=b.getOuterHtml();a= -a.getOuterHtml();if(CKEDITOR.env.ie&&9>CKEDITOR.env.version&&this.is("a")){var c=this.getParent();c.type==CKEDITOR.NODE_ELEMENT&&(c=c.clone(),c.setHtml(b),b=c.getHtml(),c.setHtml(a),a=c.getHtml())}return b==a},isVisible:function(){var a=(this.$.offsetHeight||this.$.offsetWidth)&&"hidden"!=this.getComputedStyle("visibility"),b,c;a&&CKEDITOR.env.webkit&&(b=this.getWindow(),!b.equals(CKEDITOR.document.getWindow())&&(c=b.$.frameElement)&&(a=(new CKEDITOR.dom.element(c)).isVisible()));return!!a},isEmptyInlineRemoveable:function(){if(!CKEDITOR.dtd.$removeEmpty[this.getName()])return!1; -for(var a=this.getChildren(),b=0,c=a.count();b<c;b++){var f=a.getItem(b);if(f.type!=CKEDITOR.NODE_ELEMENT||!f.data("cke-bookmark"))if(f.type==CKEDITOR.NODE_ELEMENT&&!f.isEmptyInlineRemoveable()||f.type==CKEDITOR.NODE_TEXT&&CKEDITOR.tools.trim(f.getText()))return!1}return!0},hasAttributes:CKEDITOR.env.ie&&(CKEDITOR.env.ie7Compat||CKEDITOR.env.quirks)?function(){for(var a=this.$.attributes,b=0;b<a.length;b++){var c=a[b];switch(c.nodeName){case "class":if(this.getAttribute("class"))return!0;case "data-cke-expando":continue; -default:if(c.specified)return!0}}return!1}:function(){var a=this.$.attributes,b=a.length,c={"data-cke-expando":1,_moz_dirty:1};return 0<b&&(2<b||!c[a[0].nodeName]||2==b&&!c[a[1].nodeName])},hasAttribute:function(){function a(b){var c=this.$.attributes.getNamedItem(b);if("input"==this.getName())switch(b){case "class":return 0<this.$.className.length;case "checked":return!!this.$.checked;case "value":return b=this.getAttribute("type"),"checkbox"==b||"radio"==b?"on"!=this.$.value:!!this.$.value}return c? -c.specified:!1}return CKEDITOR.env.ie?8>CKEDITOR.env.version?function(b){return"name"==b?!!this.$.name:a.call(this,b)}:a:function(a){return!!this.$.attributes.getNamedItem(a)}}(),hide:function(){this.setStyle("display","none")},moveChildren:function(a,b){var c=this.$;a=a.$;if(c!=a){var f;if(b)for(;f=c.lastChild;)a.insertBefore(c.removeChild(f),a.firstChild);else for(;f=c.firstChild;)a.appendChild(c.removeChild(f))}},mergeSiblings:function(){function a(b,c,f){if(c&&c.type==CKEDITOR.NODE_ELEMENT){for(var d= -[];c.data("cke-bookmark")||c.isEmptyInlineRemoveable();)if(d.push(c),c=f?c.getNext():c.getPrevious(),!c||c.type!=CKEDITOR.NODE_ELEMENT)return;if(b.isIdentical(c)){for(var k=f?b.getLast():b.getFirst();d.length;)d.shift().move(b,!f);c.moveChildren(b,!f);c.remove();k&&k.type==CKEDITOR.NODE_ELEMENT&&k.mergeSiblings()}}}return function(b){if(!1===b||CKEDITOR.dtd.$removeEmpty[this.getName()]||this.is("a"))a(this,this.getNext(),!0),a(this,this.getPrevious())}}(),show:function(){this.setStyles({display:"", -visibility:""})},setAttribute:function(){var a=function(a,b){this.$.setAttribute(a,b);return this};return CKEDITOR.env.ie&&(CKEDITOR.env.ie7Compat||CKEDITOR.env.quirks)?function(b,c){"class"==b?this.$.className=c:"style"==b?this.$.style.cssText=c:"tabindex"==b?this.$.tabIndex=c:"checked"==b?this.$.checked=c:"contenteditable"==b?a.call(this,"contentEditable",c):a.apply(this,arguments);return this}:CKEDITOR.env.ie8Compat&&CKEDITOR.env.secure?function(b,c){if("src"==b&&c.match(/^http:\/\//))try{a.apply(this, -arguments)}catch(f){}else a.apply(this,arguments);return this}:a}(),setAttributes:function(a){for(var b in a)this.setAttribute(b,a[b]);return this},setValue:function(a){this.$.value=a;return this},removeAttribute:function(){var a=function(a){this.$.removeAttribute(a)};return CKEDITOR.env.ie&&(CKEDITOR.env.ie7Compat||CKEDITOR.env.quirks)?function(a){"class"==a?a="className":"tabindex"==a?a="tabIndex":"contenteditable"==a&&(a="contentEditable");this.$.removeAttribute(a)}:a}(),removeAttributes:function(a){if(CKEDITOR.tools.isArray(a))for(var b= -0;b<a.length;b++)this.removeAttribute(a[b]);else for(b in a=a||this.getAttributes(),a)a.hasOwnProperty(b)&&this.removeAttribute(b)},removeStyle:function(a){var b=this.$.style;if(b.removeProperty||"border"!=a&&"margin"!=a&&"padding"!=a)b.removeProperty?b.removeProperty(a):b.removeAttribute(CKEDITOR.tools.cssStyleToDomStyle(a)),this.$.style.cssText||this.removeAttribute("style");else{var c=["top","left","right","bottom"],f;"border"==a&&(f=["color","style","width"]);for(var b=[],d=0;d<c.length;d++)if(f)for(var w= -0;w<f.length;w++)b.push([a,c[d],f[w]].join("-"));else b.push([a,c[d]].join("-"));for(a=0;a<b.length;a++)this.removeStyle(b[a])}},setStyle:function(a,b){this.$.style[CKEDITOR.tools.cssStyleToDomStyle(a)]=b;return this},setStyles:function(a){for(var b in a)this.setStyle(b,a[b]);return this},setOpacity:function(a){CKEDITOR.env.ie&&9>CKEDITOR.env.version?(a=Math.round(100*a),this.setStyle("filter",100<=a?"":"progid:DXImageTransform.Microsoft.Alpha(opacity\x3d"+a+")")):this.setStyle("opacity",a)},unselectable:function(){this.setStyles(CKEDITOR.tools.cssVendorPrefix("user-select", -"none"));if(CKEDITOR.env.ie){this.setAttribute("unselectable","on");for(var a,b=this.getElementsByTag("*"),c=0,f=b.count();c<f;c++)a=b.getItem(c),a.setAttribute("unselectable","on")}},getPositionedAncestor:function(){for(var a=this;"html"!=a.getName();){if("static"!=a.getComputedStyle("position"))return a;a=a.getParent()}return null},getDocumentPosition:function(a){var b=0,c=0,f=this.getDocument(),d=f.getBody(),w="BackCompat"==f.$.compatMode;if(document.documentElement.getBoundingClientRect&&(CKEDITOR.env.ie? -8!==CKEDITOR.env.version:1)){var e=this.$.getBoundingClientRect(),g=f.$.documentElement,x=g.clientTop||d.$.clientTop||0,m=g.clientLeft||d.$.clientLeft||0,h=!0;CKEDITOR.env.ie&&(h=f.getDocumentElement().contains(this),f=f.getBody().contains(this),h=w&&f||!w&&h);h&&(CKEDITOR.env.webkit||CKEDITOR.env.ie&&12<=CKEDITOR.env.version?(b=d.$.scrollLeft||g.scrollLeft,c=d.$.scrollTop||g.scrollTop):(c=w?d.$:g,b=c.scrollLeft,c=c.scrollTop),b=e.left+b-m,c=e.top+c-x)}else for(x=this,m=null;x&&"body"!=x.getName()&& -"html"!=x.getName();){b+=x.$.offsetLeft-x.$.scrollLeft;c+=x.$.offsetTop-x.$.scrollTop;x.equals(this)||(b+=x.$.clientLeft||0,c+=x.$.clientTop||0);for(;m&&!m.equals(x);)b-=m.$.scrollLeft,c-=m.$.scrollTop,m=m.getParent();m=x;x=(e=x.$.offsetParent)?new CKEDITOR.dom.element(e):null}a&&(e=this.getWindow(),x=a.getWindow(),!e.equals(x)&&e.$.frameElement&&(a=(new CKEDITOR.dom.element(e.$.frameElement)).getDocumentPosition(a),b+=a.x,c+=a.y));document.documentElement.getBoundingClientRect||!CKEDITOR.env.gecko|| -w||(b+=this.$.clientLeft?1:0,c+=this.$.clientTop?1:0);return{x:b,y:c}},scrollIntoView:function(a){var b=this.getParent();if(b){do if((b.$.clientWidth&&b.$.clientWidth<b.$.scrollWidth||b.$.clientHeight&&b.$.clientHeight<b.$.scrollHeight)&&!b.is("body")&&this.scrollIntoParent(b,a,1),b.is("html")){var c=b.getWindow();try{var f=c.$.frameElement;f&&(b=new CKEDITOR.dom.element(f))}catch(d){}}while(b=b.getParent())}},scrollIntoParent:function(a,b,c){var f,d,w,e;function g(b,c){/body|html/.test(a.getName())? -a.getWindow().$.scrollBy(b,c):(a.$.scrollLeft+=b,a.$.scrollTop+=c)}function x(a,b){var c={x:0,y:0};if(!a.is(h?"body":"html")){var f=a.$.getBoundingClientRect();c.x=f.left;c.y=f.top}f=a.getWindow();f.equals(b)||(f=x(CKEDITOR.dom.element.get(f.$.frameElement),b),c.x+=f.x,c.y+=f.y);return c}function m(a,b){return parseInt(a.getComputedStyle("margin-"+b)||0,10)||0}!a&&(a=this.getWindow());w=a.getDocument();var h="BackCompat"==w.$.compatMode;a instanceof CKEDITOR.dom.window&&(a=h?w.getBody():w.getDocumentElement()); -CKEDITOR.env.webkit&&(w=this.getEditor(!1))&&(w._.previousScrollTop=null);w=a.getWindow();d=x(this,w);var z=x(a,w),I=this.$.offsetHeight;f=this.$.offsetWidth;var l=a.$.clientHeight,r=a.$.clientWidth;w=d.x-m(this,"left")-z.x||0;e=d.y-m(this,"top")-z.y||0;f=d.x+f+m(this,"right")-(z.x+r)||0;d=d.y+I+m(this,"bottom")-(z.y+l)||0;(0>e||0<d)&&g(0,!0===b?e:!1===b?d:0>e?e:d);c&&(0>w||0<f)&&g(0>w?w:f,0)},setState:function(a,b,c){b=b||"cke";switch(a){case CKEDITOR.TRISTATE_ON:this.addClass(b+"_on");this.removeClass(b+ -"_off");this.removeClass(b+"_disabled");c&&this.setAttribute("aria-pressed",!0);c&&this.removeAttribute("aria-disabled");break;case CKEDITOR.TRISTATE_DISABLED:this.addClass(b+"_disabled");this.removeClass(b+"_off");this.removeClass(b+"_on");c&&this.setAttribute("aria-disabled",!0);c&&this.removeAttribute("aria-pressed");break;default:this.addClass(b+"_off"),this.removeClass(b+"_on"),this.removeClass(b+"_disabled"),c&&this.removeAttribute("aria-pressed"),c&&this.removeAttribute("aria-disabled")}}, -getFrameDocument:function(){var a=this.$;try{a.contentWindow.document}catch(b){a.src=a.src}return a&&new CKEDITOR.dom.document(a.contentWindow.document)},copyAttributes:function(a,b){var c=this.$.attributes;b=b||{};for(var f=0;f<c.length;f++){var d=c[f],w=d.nodeName.toLowerCase(),e;if(!(w in b))if("checked"==w&&(e=this.getAttribute(w)))a.setAttribute(w,e);else if(!CKEDITOR.env.ie||this.hasAttribute(w))e=this.getAttribute(w),null===e&&(e=d.nodeValue),a.setAttribute(w,e)}""!==this.$.style.cssText&& -(a.$.style.cssText=this.$.style.cssText)},renameNode:function(a){if(this.getName()!=a){var b=this.getDocument();a=new CKEDITOR.dom.element(a,b);this.copyAttributes(a);this.moveChildren(a);this.getParent(!0)&&this.$.parentNode.replaceChild(a.$,this.$);a.$["data-cke-expando"]=this.$["data-cke-expando"];this.$=a.$;delete this.getName}},getChild:function(){function a(b,c){var f=b.childNodes;if(0<=c&&c<f.length)return f[c]}return function(b){var c=this.$;if(b.slice)for(b=b.slice();0<b.length&&c;)c=a(c, -b.shift());else c=a(c,b);return c?new CKEDITOR.dom.node(c):null}}(),getChildCount:function(){return this.$.childNodes.length},disableContextMenu:function(){function a(b){return b.type==CKEDITOR.NODE_ELEMENT&&b.hasClass("cke_enable_context_menu")}this.on("contextmenu",function(b){b.data.getTarget().getAscendant(a,!0)||b.data.preventDefault()})},getDirection:function(a){return a?this.getComputedStyle("direction")||this.getDirection()||this.getParent()&&this.getParent().getDirection(1)||this.getDocument().$.dir|| -"ltr":this.getStyle("direction")||this.getAttribute("dir")},data:function(a,b){a="data-"+a;if(void 0===b)return this.getAttribute(a);!1===b?this.removeAttribute(a):this.setAttribute(a,b);return null},getEditor:function(a){var b=CKEDITOR.instances,c,f,d;a=a||void 0===a;for(c in b)if(f=b[c],f.element.equals(this)&&f.elementMode!=CKEDITOR.ELEMENT_MODE_APPENDTO||!a&&(d=f.editable())&&(d.equals(this)||d.contains(this)))return f;return null},find:function(a){var c=d(this);a=new CKEDITOR.dom.nodeList(this.$.querySelectorAll(b(this, -a)));c();return a},findOne:function(a){var c=d(this);a=this.$.querySelector(b(this,a));c();return a?new CKEDITOR.dom.element(a):null},forEach:function(a,b,c){if(!(c||b&&this.type!=b))var f=a(this);if(!1!==f){c=this.getChildren();for(var d=0;d<c.count();d++)f=c.getItem(d),f.type==CKEDITOR.NODE_ELEMENT?f.forEach(a,b):b&&f.type!=b||a(f)}}});var h={width:["border-left-width","border-right-width","padding-left","padding-right"],height:["border-top-width","border-bottom-width","padding-top","padding-bottom"]}; -CKEDITOR.dom.element.prototype.setSize=function(a,b,d){"number"==typeof b&&(!d||CKEDITOR.env.ie&&CKEDITOR.env.quirks||(b-=c.call(this,a)),this.setStyle(a,b+"px"))};CKEDITOR.dom.element.prototype.getSize=function(a,b){var d=Math.max(this.$["offset"+CKEDITOR.tools.capitalize(a)],this.$["client"+CKEDITOR.tools.capitalize(a)])||0;b&&(d-=c.call(this,a));return d}})();CKEDITOR.dom.documentFragment=function(a){a=a||CKEDITOR.document;this.$=a.type==CKEDITOR.NODE_DOCUMENT?a.$.createDocumentFragment():a}; -CKEDITOR.tools.extend(CKEDITOR.dom.documentFragment.prototype,CKEDITOR.dom.element.prototype,{type:CKEDITOR.NODE_DOCUMENT_FRAGMENT,insertAfterNode:function(a){a=a.$;a.parentNode.insertBefore(this.$,a.nextSibling)},getHtml:function(){var a=new CKEDITOR.dom.element("div");this.clone(1,1).appendTo(a);return a.getHtml().replace(/\s*data-cke-expando=".*?"/g,"")}},!0,{append:1,appendBogus:1,clone:1,getFirst:1,getHtml:1,getLast:1,getParent:1,getNext:1,getPrevious:1,appendTo:1,moveChildren:1,insertBefore:1, -insertAfterNode:1,replace:1,trim:1,type:1,ltrim:1,rtrim:1,getDocument:1,getChildCount:1,getChild:1,getChildren:1}); -(function(){function a(a,b){var c=this.range;if(this._.end)return null;if(!this._.start){this._.start=1;if(c.collapsed)return this.end(),null;c.optimize()}var f,d=c.startContainer;f=c.endContainer;var e=c.startOffset,D=c.endOffset,g,l=this.guard,r=this.type,J=a?"getPreviousSourceNode":"getNextSourceNode";if(!a&&!this._.guardLTR){var H=f.type==CKEDITOR.NODE_ELEMENT?f:f.getParent(),k=f.type==CKEDITOR.NODE_ELEMENT?f.getChild(D):f.getNext();this._.guardLTR=function(a,b){return(!b||!H.equals(a))&&(!k|| -!a.equals(k))&&(a.type!=CKEDITOR.NODE_ELEMENT||!b||!a.equals(c.root))}}if(a&&!this._.guardRTL){var u=d.type==CKEDITOR.NODE_ELEMENT?d:d.getParent(),y=d.type==CKEDITOR.NODE_ELEMENT?e?d.getChild(e-1):null:d.getPrevious();this._.guardRTL=function(a,b){return(!b||!u.equals(a))&&(!y||!a.equals(y))&&(a.type!=CKEDITOR.NODE_ELEMENT||!b||!a.equals(c.root))}}var v=a?this._.guardRTL:this._.guardLTR;g=l?function(a,b){return!1===v(a,b)?!1:l(a,b)}:v;this.current?f=this.current[J](!1,r,g):(a?f.type==CKEDITOR.NODE_ELEMENT&& -(f=0<D?f.getChild(D-1):!1===g(f,!0)?null:f.getPreviousSourceNode(!0,r,g)):(f=d,f.type==CKEDITOR.NODE_ELEMENT&&((f=f.getChild(e))||(f=!1===g(d,!0)?null:d.getNextSourceNode(!0,r,g)))),f&&!1===g(f)&&(f=null));for(;f&&!this._.end;){this.current=f;if(!this.evaluator||!1!==this.evaluator(f)){if(!b)return f}else if(b&&this.evaluator)return!1;f=f[J](!1,r,g)}this.end();return this.current=null}function d(b){for(var c,f=null;c=a.call(this,b);)f=c;return f}CKEDITOR.dom.walker=CKEDITOR.tools.createClass({$:function(a){this.range= -a;this._={}},proto:{end:function(){this._.end=1},next:function(){return a.call(this)},previous:function(){return a.call(this,1)},checkForward:function(){return!1!==a.call(this,0,1)},checkBackward:function(){return!1!==a.call(this,1,1)},lastForward:function(){return d.call(this)},lastBackward:function(){return d.call(this,1)},reset:function(){delete this.current;this._={}}}});var b={block:1,"list-item":1,table:1,"table-row-group":1,"table-header-group":1,"table-footer-group":1,"table-row":1,"table-column-group":1, -"table-column":1,"table-cell":1,"table-caption":1},c={absolute:1,fixed:1};CKEDITOR.dom.element.prototype.isBlockBoundary=function(a){return"none"!=this.getComputedStyle("float")||this.getComputedStyle("position")in c||!b[this.getComputedStyle("display")]?!!(this.is(CKEDITOR.dtd.$block)||a&&this.is(a)):!0};CKEDITOR.dom.walker.blockBoundary=function(a){return function(b){return!(b.type==CKEDITOR.NODE_ELEMENT&&b.isBlockBoundary(a))}};CKEDITOR.dom.walker.listItemBoundary=function(){return this.blockBoundary({br:1})}; -CKEDITOR.dom.walker.bookmark=function(a,b){function c(a){return a&&a.getName&&"span"==a.getName()&&a.data("cke-bookmark")}return function(f){var d,e;d=f&&f.type!=CKEDITOR.NODE_ELEMENT&&(e=f.getParent())&&c(e);d=a?d:d||c(f);return!!(b^d)}};CKEDITOR.dom.walker.whitespaces=function(a){return function(b){var c;b&&b.type==CKEDITOR.NODE_TEXT&&(c=!CKEDITOR.tools.trim(b.getText())||CKEDITOR.env.webkit&&b.getText()==CKEDITOR.dom.selection.FILLING_CHAR_SEQUENCE);return!!(a^c)}};CKEDITOR.dom.walker.invisible= -function(a){var b=CKEDITOR.dom.walker.whitespaces(),c=CKEDITOR.env.webkit?1:0;return function(f){b(f)?f=1:(f.type==CKEDITOR.NODE_TEXT&&(f=f.getParent()),f=f.$.offsetWidth<=c);return!!(a^f)}};CKEDITOR.dom.walker.nodeType=function(a,b){return function(c){return!!(b^c.type==a)}};CKEDITOR.dom.walker.bogus=function(a){function b(a){return!g(a)&&!h(a)}return function(c){var f=CKEDITOR.env.needsBrFiller?c.is&&c.is("br"):c.getText&&e.test(c.getText());f&&(f=c.getParent(),c=c.getNext(b),f=f.isBlockBoundary()&& -(!c||c.type==CKEDITOR.NODE_ELEMENT&&c.isBlockBoundary()));return!!(a^f)}};CKEDITOR.dom.walker.temp=function(a){return function(b){b.type!=CKEDITOR.NODE_ELEMENT&&(b=b.getParent());b=b&&b.hasAttribute("data-cke-temp");return!!(a^b)}};var e=/^[\t\r\n ]*(?:&nbsp;|\xa0)$/,g=CKEDITOR.dom.walker.whitespaces(),h=CKEDITOR.dom.walker.bookmark(),k=CKEDITOR.dom.walker.temp(),n=function(a){return h(a)||g(a)||a.type==CKEDITOR.NODE_ELEMENT&&a.is(CKEDITOR.dtd.$inline)&&!a.is(CKEDITOR.dtd.$empty)};CKEDITOR.dom.walker.ignored= -function(a){return function(b){b=g(b)||h(b)||k(b);return!!(a^b)}};var q=CKEDITOR.dom.walker.ignored();CKEDITOR.dom.walker.empty=function(a){return function(b){for(var c=0,f=b.getChildCount();c<f;++c)if(!q(b.getChild(c)))return!!a;return!a}};var f=CKEDITOR.dom.walker.empty(),D=CKEDITOR.dom.walker.validEmptyBlockContainers=CKEDITOR.tools.extend(function(a){var b={},c;for(c in a)CKEDITOR.dtd[c]["#"]&&(b[c]=1);return b}(CKEDITOR.dtd.$block),{caption:1,td:1,th:1});CKEDITOR.dom.walker.editable=function(a){return function(b){b= -q(b)?!1:b.type==CKEDITOR.NODE_TEXT||b.type==CKEDITOR.NODE_ELEMENT&&(b.is(CKEDITOR.dtd.$inline)||b.is("hr")||"false"==b.getAttribute("contenteditable")||!CKEDITOR.env.needsBrFiller&&b.is(D)&&f(b))?!0:!1;return!!(a^b)}};CKEDITOR.dom.element.prototype.getBogus=function(){var a=this;do a=a.getPreviousSourceNode();while(n(a));return a&&(CKEDITOR.env.needsBrFiller?a.is&&a.is("br"):a.getText&&e.test(a.getText()))?a:!1}})(); -CKEDITOR.dom.range=function(a){this.endOffset=this.endContainer=this.startOffset=this.startContainer=null;this.collapsed=!0;var d=a instanceof CKEDITOR.dom.document;this.document=d?a:a.getDocument();this.root=d?a.getBody():a}; -(function(){function a(a){a.collapsed=a.startContainer&&a.endContainer&&a.startContainer.equals(a.endContainer)&&a.startOffset==a.endOffset}function d(a,b,c,d,e){function g(a,b,c,f){var X=c?a.getPrevious():a.getNext();if(f&&h)return X;l||f?b.append(a.clone(!0,e),c):(a.remove(),q&&b.append(a,c));return X}function m(){var a,b,c,f=Math.min(O.length,p.length);for(a=0;a<f;a++)if(b=O[a],c=p[a],!b.equals(c))return a;return a-1}function k(){var b=C-1,c=v&&B&&!r.equals(J);b<t-1||b<F-1||c?(c?a.moveToPosition(J, -CKEDITOR.POSITION_BEFORE_START):F==b+1&&y?a.moveToPosition(p[b],CKEDITOR.POSITION_BEFORE_END):a.moveToPosition(p[b+1],CKEDITOR.POSITION_BEFORE_START),d&&(b=O[b+1])&&b.type==CKEDITOR.NODE_ELEMENT&&(c=CKEDITOR.dom.element.createFromHtml('\x3cspan data-cke-bookmark\x3d"1" style\x3d"display:none"\x3e\x26nbsp;\x3c/span\x3e',a.document),c.insertAfter(b),b.mergeSiblings(!1),a.moveToBookmark({startNode:c}))):a.collapse(!0)}a.optimizeBookmark();var h=0===b,q=1==b,l=2==b;b=l||q;var r=a.startContainer,J=a.endContainer, -H=a.startOffset,E=a.endOffset,u,y,v,B,L,n;if(l&&J.type==CKEDITOR.NODE_TEXT&&(r.equals(J)||r.type===CKEDITOR.NODE_ELEMENT&&r.getFirst().equals(J)))c.append(a.document.createText(J.substring(H,E)));else{J.type==CKEDITOR.NODE_TEXT?l?n=!0:J=J.split(E):0<J.getChildCount()?E>=J.getChildCount()?(J=J.getChild(E-1),y=!0):J=J.getChild(E):B=y=!0;r.type==CKEDITOR.NODE_TEXT?l?L=!0:r.split(H):0<r.getChildCount()?0===H?(r=r.getChild(H),u=!0):r=r.getChild(H-1):v=u=!0;for(var O=r.getParents(),p=J.getParents(),C=m(), -t=O.length-1,F=p.length-1,N=c,X,Y,U,ea=-1,P=C;P<=t;P++){Y=O[P];U=Y.getNext();for(P!=t||Y.equals(p[P])&&t<F?b&&(X=N.append(Y.clone(0,e))):u?g(Y,N,!1,v):L&&N.append(a.document.createText(Y.substring(H)));U;){if(U.equals(p[P])){ea=P;break}U=g(U,N)}N=X}N=c;for(P=C;P<=F;P++)if(c=p[P],U=c.getPrevious(),c.equals(O[P]))b&&(N=N.getChild(0));else{P!=F||c.equals(O[P])&&F<t?b&&(X=N.append(c.clone(0,e))):y?g(c,N,!1,B):n&&N.append(a.document.createText(c.substring(0,E)));if(P>ea)for(;U;)U=g(U,N,!0);N=X}l||k()}} -function b(){var a=!1,b=CKEDITOR.dom.walker.whitespaces(),c=CKEDITOR.dom.walker.bookmark(!0),d=CKEDITOR.dom.walker.bogus();return function(e){return c(e)||b(e)?!0:d(e)&&!a?a=!0:e.type==CKEDITOR.NODE_TEXT&&(e.hasAscendant("pre")||CKEDITOR.tools.trim(e.getText()).length)||e.type==CKEDITOR.NODE_ELEMENT&&!e.is(g)?!1:!0}}function c(a){var b=CKEDITOR.dom.walker.whitespaces(),c=CKEDITOR.dom.walker.bookmark(1);return function(d){return c(d)||b(d)?!0:!a&&h(d)||d.type==CKEDITOR.NODE_ELEMENT&&d.is(CKEDITOR.dtd.$removeEmpty)}} -function e(a){return function(){var b;return this[a?"getPreviousNode":"getNextNode"](function(a){!b&&q(a)&&(b=a);return n(a)&&!(h(a)&&a.equals(b))})}}var g={abbr:1,acronym:1,b:1,bdo:1,big:1,cite:1,code:1,del:1,dfn:1,em:1,font:1,i:1,ins:1,label:1,kbd:1,q:1,samp:1,small:1,span:1,strike:1,strong:1,sub:1,sup:1,tt:1,u:1,"var":1},h=CKEDITOR.dom.walker.bogus(),k=/^[\t\r\n ]*(?:&nbsp;|\xa0)$/,n=CKEDITOR.dom.walker.editable(),q=CKEDITOR.dom.walker.ignored(!0);CKEDITOR.dom.range.prototype={clone:function(){var a= -new CKEDITOR.dom.range(this.root);a._setStartContainer(this.startContainer);a.startOffset=this.startOffset;a._setEndContainer(this.endContainer);a.endOffset=this.endOffset;a.collapsed=this.collapsed;return a},collapse:function(a){a?(this._setEndContainer(this.startContainer),this.endOffset=this.startOffset):(this._setStartContainer(this.endContainer),this.startOffset=this.endOffset);this.collapsed=!0},cloneContents:function(a){var b=new CKEDITOR.dom.documentFragment(this.document);this.collapsed|| -d(this,2,b,!1,"undefined"==typeof a?!0:a);return b},deleteContents:function(a){this.collapsed||d(this,0,null,a)},extractContents:function(a,b){var c=new CKEDITOR.dom.documentFragment(this.document);this.collapsed||d(this,1,c,a,"undefined"==typeof b?!0:b);return c},createBookmark:function(a){var b,c,d,e,g=this.collapsed;b=this.document.createElement("span");b.data("cke-bookmark",1);b.setStyle("display","none");b.setHtml("\x26nbsp;");a&&(d="cke_bm_"+CKEDITOR.tools.getNextNumber(),b.setAttribute("id", -d+(g?"C":"S")));g||(c=b.clone(),c.setHtml("\x26nbsp;"),a&&c.setAttribute("id",d+"E"),e=this.clone(),e.collapse(),e.insertNode(c));e=this.clone();e.collapse(!0);e.insertNode(b);c?(this.setStartAfter(b),this.setEndBefore(c)):this.moveToPosition(b,CKEDITOR.POSITION_AFTER_END);return{startNode:a?d+(g?"C":"S"):b,endNode:a?d+"E":c,serializable:a,collapsed:g}},createBookmark2:function(){function a(b){var f=b.container,d=b.offset,e;e=f;var g=d;e=e.type!=CKEDITOR.NODE_ELEMENT||0===g||g==e.getChildCount()? -0:e.getChild(g-1).type==CKEDITOR.NODE_TEXT&&e.getChild(g).type==CKEDITOR.NODE_TEXT;e&&(f=f.getChild(d-1),d=f.getLength());if(f.type==CKEDITOR.NODE_ELEMENT&&0<d){a:{for(e=f;d--;)if(g=e.getChild(d).getIndex(!0),0<=g){d=g;break a}d=-1}d+=1}if(f.type==CKEDITOR.NODE_TEXT){e=f;for(g=0;(e=e.getPrevious())&&e.type==CKEDITOR.NODE_TEXT;)g+=e.getText().replace(CKEDITOR.dom.selection.FILLING_CHAR_SEQUENCE,"").length;e=g;f.getText()?d+=e:(g=f.getPrevious(c),e?(d=e,f=g?g.getNext():f.getParent().getFirst()):(f= -f.getParent(),d=g?g.getIndex(!0)+1:0))}b.container=f;b.offset=d}function b(a,c){var f=c.getCustomData("cke-fillingChar");if(f){var d=a.container;f.equals(d)&&(a.offset-=CKEDITOR.dom.selection.FILLING_CHAR_SEQUENCE.length,0>=a.offset&&(a.offset=d.getIndex(),a.container=d.getParent()))}}var c=CKEDITOR.dom.walker.nodeType(CKEDITOR.NODE_TEXT,!0);return function(c){var d=this.collapsed,e={container:this.startContainer,offset:this.startOffset},m={container:this.endContainer,offset:this.endOffset};c&&(a(e), -b(e,this.root),d||(a(m),b(m,this.root)));return{start:e.container.getAddress(c),end:d?null:m.container.getAddress(c),startOffset:e.offset,endOffset:m.offset,normalized:c,collapsed:d,is2:!0}}}(),moveToBookmark:function(a){if(a.is2){var b=this.document.getByAddress(a.start,a.normalized),c=a.startOffset,d=a.end&&this.document.getByAddress(a.end,a.normalized);a=a.endOffset;this.setStart(b,c);d?this.setEnd(d,a):this.collapse(!0)}else b=(c=a.serializable)?this.document.getById(a.startNode):a.startNode, -a=c?this.document.getById(a.endNode):a.endNode,this.setStartBefore(b),b.remove(),a?(this.setEndBefore(a),a.remove()):this.collapse(!0)},getBoundaryNodes:function(){var a=this.startContainer,b=this.endContainer,c=this.startOffset,d=this.endOffset,e;if(a.type==CKEDITOR.NODE_ELEMENT)if(e=a.getChildCount(),e>c)a=a.getChild(c);else if(1>e)a=a.getPreviousSourceNode();else{for(a=a.$;a.lastChild;)a=a.lastChild;a=new CKEDITOR.dom.node(a);a=a.getNextSourceNode()||a}if(b.type==CKEDITOR.NODE_ELEMENT)if(e=b.getChildCount(), -e>d)b=b.getChild(d).getPreviousSourceNode(!0);else if(1>e)b=b.getPreviousSourceNode();else{for(b=b.$;b.lastChild;)b=b.lastChild;b=new CKEDITOR.dom.node(b)}a.getPosition(b)&CKEDITOR.POSITION_FOLLOWING&&(a=b);return{startNode:a,endNode:b}},getCommonAncestor:function(a,b){var c=this.startContainer,d=this.endContainer,c=c.equals(d)?a&&c.type==CKEDITOR.NODE_ELEMENT&&this.startOffset==this.endOffset-1?c.getChild(this.startOffset):c:c.getCommonAncestor(d);return b&&!c.is?c.getParent():c},optimize:function(){var a= -this.startContainer,b=this.startOffset;a.type!=CKEDITOR.NODE_ELEMENT&&(b?b>=a.getLength()&&this.setStartAfter(a):this.setStartBefore(a));a=this.endContainer;b=this.endOffset;a.type!=CKEDITOR.NODE_ELEMENT&&(b?b>=a.getLength()&&this.setEndAfter(a):this.setEndBefore(a))},optimizeBookmark:function(){var a=this.startContainer,b=this.endContainer;a.is&&a.is("span")&&a.data("cke-bookmark")&&this.setStartAt(a,CKEDITOR.POSITION_BEFORE_START);b&&b.is&&b.is("span")&&b.data("cke-bookmark")&&this.setEndAt(b,CKEDITOR.POSITION_AFTER_END)}, -trim:function(a,b){var c=this.startContainer,d=this.startOffset,e=this.collapsed;if((!a||e)&&c&&c.type==CKEDITOR.NODE_TEXT){if(d)if(d>=c.getLength())d=c.getIndex()+1,c=c.getParent();else{var g=c.split(d),d=c.getIndex()+1,c=c.getParent();this.startContainer.equals(this.endContainer)?this.setEnd(g,this.endOffset-this.startOffset):c.equals(this.endContainer)&&(this.endOffset+=1)}else d=c.getIndex(),c=c.getParent();this.setStart(c,d);if(e){this.collapse(!0);return}}c=this.endContainer;d=this.endOffset; -b||e||!c||c.type!=CKEDITOR.NODE_TEXT||(d?(d>=c.getLength()||c.split(d),d=c.getIndex()+1):d=c.getIndex(),c=c.getParent(),this.setEnd(c,d))},enlarge:function(a,b){function c(a){return a&&a.type==CKEDITOR.NODE_ELEMENT&&a.hasAttribute("contenteditable")?null:a}var d=new RegExp(/[^\s\ufeff]/);switch(a){case CKEDITOR.ENLARGE_INLINE:var e=1;case CKEDITOR.ENLARGE_ELEMENT:var g=function(a,b){var c=new CKEDITOR.dom.range(k);c.setStart(a,b);c.setEndAt(k,CKEDITOR.POSITION_BEFORE_END);var c=new CKEDITOR.dom.walker(c), -f;for(c.guard=function(a){return!(a.type==CKEDITOR.NODE_ELEMENT&&a.isBlockBoundary())};f=c.next();){if(f.type!=CKEDITOR.NODE_TEXT)return!1;u=f!=a?f.getText():f.substring(b);if(d.test(u))return!1}return!0};if(this.collapsed)break;var m=this.getCommonAncestor(),k=this.root,h,q,l,r,J,H=!1,E,u;E=this.startContainer;var y=this.startOffset;E.type==CKEDITOR.NODE_TEXT?(y&&(E=!CKEDITOR.tools.trim(E.substring(0,y)).length&&E,H=!!E),E&&((r=E.getPrevious())||(l=E.getParent()))):(y&&(r=E.getChild(y-1)||E.getLast()), -r||(l=E));for(l=c(l);l||r;){if(l&&!r){!J&&l.equals(m)&&(J=!0);if(e?l.isBlockBoundary():!k.contains(l))break;H&&"inline"==l.getComputedStyle("display")||(H=!1,J?h=l:this.setStartBefore(l));r=l.getPrevious()}for(;r;)if(E=!1,r.type==CKEDITOR.NODE_COMMENT)r=r.getPrevious();else{if(r.type==CKEDITOR.NODE_TEXT)u=r.getText(),d.test(u)&&(r=null),E=/[\s\ufeff]$/.test(u);else if((r.$.offsetWidth>(CKEDITOR.env.webkit?1:0)||b&&r.is("br"))&&!r.data("cke-bookmark"))if(H&&CKEDITOR.dtd.$removeEmpty[r.getName()]){u= -r.getText();if(d.test(u))r=null;else for(var y=r.$.getElementsByTagName("*"),v=0,B;B=y[v++];)if(!CKEDITOR.dtd.$removeEmpty[B.nodeName.toLowerCase()]){r=null;break}r&&(E=!!u.length)}else r=null;E&&(H?J?h=l:l&&this.setStartBefore(l):H=!0);if(r){E=r.getPrevious();if(!l&&!E){l=r;r=null;break}r=E}else l=null}l&&(l=c(l.getParent()))}E=this.endContainer;y=this.endOffset;l=r=null;J=H=!1;E.type==CKEDITOR.NODE_TEXT?CKEDITOR.tools.trim(E.substring(y)).length?H=!0:(H=!E.getLength(),y==E.getLength()?(r=E.getNext())|| -(l=E.getParent()):g(E,y)&&(l=E.getParent())):(r=E.getChild(y))||(l=E);for(;l||r;){if(l&&!r){!J&&l.equals(m)&&(J=!0);if(e?l.isBlockBoundary():!k.contains(l))break;H&&"inline"==l.getComputedStyle("display")||(H=!1,J?q=l:l&&this.setEndAfter(l));r=l.getNext()}for(;r;){E=!1;if(r.type==CKEDITOR.NODE_TEXT)u=r.getText(),g(r,0)||(r=null),E=/^[\s\ufeff]/.test(u);else if(r.type==CKEDITOR.NODE_ELEMENT){if((0<r.$.offsetWidth||b&&r.is("br"))&&!r.data("cke-bookmark"))if(H&&CKEDITOR.dtd.$removeEmpty[r.getName()]){u= -r.getText();if(d.test(u))r=null;else for(y=r.$.getElementsByTagName("*"),v=0;B=y[v++];)if(!CKEDITOR.dtd.$removeEmpty[B.nodeName.toLowerCase()]){r=null;break}r&&(E=!!u.length)}else r=null}else E=1;E&&H&&(J?q=l:this.setEndAfter(l));if(r){E=r.getNext();if(!l&&!E){l=r;r=null;break}r=E}else l=null}l&&(l=c(l.getParent()))}h&&q&&(m=h.contains(q)?q:h,this.setStartBefore(m),this.setEndAfter(m));break;case CKEDITOR.ENLARGE_BLOCK_CONTENTS:case CKEDITOR.ENLARGE_LIST_ITEM_CONTENTS:l=new CKEDITOR.dom.range(this.root); -k=this.root;l.setStartAt(k,CKEDITOR.POSITION_AFTER_START);l.setEnd(this.startContainer,this.startOffset);l=new CKEDITOR.dom.walker(l);var L,n,O=CKEDITOR.dom.walker.blockBoundary(a==CKEDITOR.ENLARGE_LIST_ITEM_CONTENTS?{br:1}:null),p=null,C=function(a){if(a.type==CKEDITOR.NODE_ELEMENT&&"false"==a.getAttribute("contenteditable"))if(p){if(p.equals(a)){p=null;return}}else p=a;else if(p)return;var b=O(a);b||(L=a);return b},e=function(a){var b=C(a);!b&&a.is&&a.is("br")&&(n=a);return b};l.guard=C;l=l.lastBackward(); -L=L||k;this.setStartAt(L,!L.is("br")&&(!l&&this.checkStartOfBlock()||l&&L.contains(l))?CKEDITOR.POSITION_AFTER_START:CKEDITOR.POSITION_AFTER_END);if(a==CKEDITOR.ENLARGE_LIST_ITEM_CONTENTS){l=this.clone();l=new CKEDITOR.dom.walker(l);var t=CKEDITOR.dom.walker.whitespaces(),F=CKEDITOR.dom.walker.bookmark();l.evaluator=function(a){return!t(a)&&!F(a)};if((l=l.previous())&&l.type==CKEDITOR.NODE_ELEMENT&&l.is("br"))break}l=this.clone();l.collapse();l.setEndAt(k,CKEDITOR.POSITION_BEFORE_END);l=new CKEDITOR.dom.walker(l); -l.guard=a==CKEDITOR.ENLARGE_LIST_ITEM_CONTENTS?e:C;L=p=n=null;l=l.lastForward();L=L||k;this.setEndAt(L,!l&&this.checkEndOfBlock()||l&&L.contains(l)?CKEDITOR.POSITION_BEFORE_END:CKEDITOR.POSITION_BEFORE_START);n&&this.setEndAfter(n)}},shrink:function(a,b,c){var d="boolean"===typeof c?c:c&&"boolean"===typeof c.shrinkOnBlockBoundary?c.shrinkOnBlockBoundary:!0,e=c&&c.skipBogus;if(!this.collapsed){a=a||CKEDITOR.SHRINK_TEXT;var g=this.clone(),m=this.startContainer,k=this.endContainer,h=this.startOffset, -q=this.endOffset,l=c=1;m&&m.type==CKEDITOR.NODE_TEXT&&(h?h>=m.getLength()?g.setStartAfter(m):(g.setStartBefore(m),c=0):g.setStartBefore(m));k&&k.type==CKEDITOR.NODE_TEXT&&(q?q>=k.getLength()?g.setEndAfter(k):(g.setEndAfter(k),l=0):g.setEndBefore(k));var g=new CKEDITOR.dom.walker(g),r=CKEDITOR.dom.walker.bookmark(),J=CKEDITOR.dom.walker.bogus();g.evaluator=function(b){return b.type==(a==CKEDITOR.SHRINK_ELEMENT?CKEDITOR.NODE_ELEMENT:CKEDITOR.NODE_TEXT)};var H;g.guard=function(b,c){if(e&&J(b)||r(b))return!0; -if(a==CKEDITOR.SHRINK_ELEMENT&&b.type==CKEDITOR.NODE_TEXT||c&&b.equals(H)||!1===d&&b.type==CKEDITOR.NODE_ELEMENT&&b.isBlockBoundary()||b.type==CKEDITOR.NODE_ELEMENT&&b.hasAttribute("contenteditable"))return!1;c||b.type!=CKEDITOR.NODE_ELEMENT||(H=b);return!0};c&&(m=g[a==CKEDITOR.SHRINK_ELEMENT?"lastForward":"next"]())&&this.setStartAt(m,b?CKEDITOR.POSITION_AFTER_START:CKEDITOR.POSITION_BEFORE_START);l&&(g.reset(),(g=g[a==CKEDITOR.SHRINK_ELEMENT?"lastBackward":"previous"]())&&this.setEndAt(g,b?CKEDITOR.POSITION_BEFORE_END: -CKEDITOR.POSITION_AFTER_END));return!(!c&&!l)}},insertNode:function(a){this.optimizeBookmark();this.trim(!1,!0);var b=this.startContainer,c=b.getChild(this.startOffset);c?a.insertBefore(c):b.append(a);a.getParent()&&a.getParent().equals(this.endContainer)&&this.endOffset++;this.setStartBefore(a)},moveToPosition:function(a,b){this.setStartAt(a,b);this.collapse(!0)},moveToRange:function(a){this.setStart(a.startContainer,a.startOffset);this.setEnd(a.endContainer,a.endOffset)},selectNodeContents:function(a){this.setStart(a, -0);this.setEnd(a,a.type==CKEDITOR.NODE_TEXT?a.getLength():a.getChildCount())},setStart:function(b,c){b.type==CKEDITOR.NODE_ELEMENT&&CKEDITOR.dtd.$empty[b.getName()]&&(c=b.getIndex(),b=b.getParent());this._setStartContainer(b);this.startOffset=c;this.endContainer||(this._setEndContainer(b),this.endOffset=c);a(this)},setEnd:function(b,c){b.type==CKEDITOR.NODE_ELEMENT&&CKEDITOR.dtd.$empty[b.getName()]&&(c=b.getIndex()+1,b=b.getParent());this._setEndContainer(b);this.endOffset=c;this.startContainer|| -(this._setStartContainer(b),this.startOffset=c);a(this)},setStartAfter:function(a){this.setStart(a.getParent(),a.getIndex()+1)},setStartBefore:function(a){this.setStart(a.getParent(),a.getIndex())},setEndAfter:function(a){this.setEnd(a.getParent(),a.getIndex()+1)},setEndBefore:function(a){this.setEnd(a.getParent(),a.getIndex())},setStartAt:function(b,c){switch(c){case CKEDITOR.POSITION_AFTER_START:this.setStart(b,0);break;case CKEDITOR.POSITION_BEFORE_END:b.type==CKEDITOR.NODE_TEXT?this.setStart(b, -b.getLength()):this.setStart(b,b.getChildCount());break;case CKEDITOR.POSITION_BEFORE_START:this.setStartBefore(b);break;case CKEDITOR.POSITION_AFTER_END:this.setStartAfter(b)}a(this)},setEndAt:function(b,c){switch(c){case CKEDITOR.POSITION_AFTER_START:this.setEnd(b,0);break;case CKEDITOR.POSITION_BEFORE_END:b.type==CKEDITOR.NODE_TEXT?this.setEnd(b,b.getLength()):this.setEnd(b,b.getChildCount());break;case CKEDITOR.POSITION_BEFORE_START:this.setEndBefore(b);break;case CKEDITOR.POSITION_AFTER_END:this.setEndAfter(b)}a(this)}, -fixBlock:function(a,b){var c=this.createBookmark(),d=this.document.createElement(b);this.collapse(a);this.enlarge(CKEDITOR.ENLARGE_BLOCK_CONTENTS);this.extractContents().appendTo(d);d.trim();this.insertNode(d);var e=d.getBogus();e&&e.remove();d.appendBogus();this.moveToBookmark(c);return d},splitBlock:function(a,b){var c=new CKEDITOR.dom.elementPath(this.startContainer,this.root),d=new CKEDITOR.dom.elementPath(this.endContainer,this.root),e=c.block,g=d.block,m=null;if(!c.blockLimit.equals(d.blockLimit))return null; -"br"!=a&&(e||(e=this.fixBlock(!0,a),g=(new CKEDITOR.dom.elementPath(this.endContainer,this.root)).block),g||(g=this.fixBlock(!1,a)));c=e&&this.checkStartOfBlock();d=g&&this.checkEndOfBlock();this.deleteContents();e&&e.equals(g)&&(d?(m=new CKEDITOR.dom.elementPath(this.startContainer,this.root),this.moveToPosition(g,CKEDITOR.POSITION_AFTER_END),g=null):c?(m=new CKEDITOR.dom.elementPath(this.startContainer,this.root),this.moveToPosition(e,CKEDITOR.POSITION_BEFORE_START),e=null):(g=this.splitElement(e, -b||!1),e.is("ul","ol")||e.appendBogus()));return{previousBlock:e,nextBlock:g,wasStartOfBlock:c,wasEndOfBlock:d,elementPath:m}},splitElement:function(a,b){if(!this.collapsed)return null;this.setEndAt(a,CKEDITOR.POSITION_BEFORE_END);var c=this.extractContents(!1,b||!1),d=a.clone(!1,b||!1);c.appendTo(d);d.insertAfter(a);this.moveToPosition(a,CKEDITOR.POSITION_AFTER_END);return d},removeEmptyBlocksAtEnd:function(){function a(d){return function(a){return b(a)||c(a)||a.type==CKEDITOR.NODE_ELEMENT&&a.isEmptyInlineRemoveable()|| -d.is("table")&&a.is("caption")?!1:!0}}var b=CKEDITOR.dom.walker.whitespaces(),c=CKEDITOR.dom.walker.bookmark(!1);return function(b){for(var c=this.createBookmark(),d=this[b?"endPath":"startPath"](),e=d.block||d.blockLimit,g;e&&!e.equals(d.root)&&!e.getFirst(a(e));)g=e.getParent(),this[b?"setEndAt":"setStartAt"](e,CKEDITOR.POSITION_AFTER_END),e.remove(1),e=g;this.moveToBookmark(c)}}(),startPath:function(){return new CKEDITOR.dom.elementPath(this.startContainer,this.root)},endPath:function(){return new CKEDITOR.dom.elementPath(this.endContainer, -this.root)},checkBoundaryOfElement:function(a,b){var d=b==CKEDITOR.START,e=this.clone();e.collapse(d);e[d?"setStartAt":"setEndAt"](a,d?CKEDITOR.POSITION_AFTER_START:CKEDITOR.POSITION_BEFORE_END);e=new CKEDITOR.dom.walker(e);e.evaluator=c(d);return e[d?"checkBackward":"checkForward"]()},checkStartOfBlock:function(){var a=this.startContainer,c=this.startOffset;CKEDITOR.env.ie&&c&&a.type==CKEDITOR.NODE_TEXT&&(a=CKEDITOR.tools.ltrim(a.substring(0,c)),k.test(a)&&this.trim(0,1));this.trim();a=new CKEDITOR.dom.elementPath(this.startContainer, -this.root);c=this.clone();c.collapse(!0);c.setStartAt(a.block||a.blockLimit,CKEDITOR.POSITION_AFTER_START);a=new CKEDITOR.dom.walker(c);a.evaluator=b();return a.checkBackward()},checkEndOfBlock:function(){var a=this.endContainer,c=this.endOffset;CKEDITOR.env.ie&&a.type==CKEDITOR.NODE_TEXT&&(a=CKEDITOR.tools.rtrim(a.substring(c)),k.test(a)&&this.trim(1,0));this.trim();a=new CKEDITOR.dom.elementPath(this.endContainer,this.root);c=this.clone();c.collapse(!1);c.setEndAt(a.block||a.blockLimit,CKEDITOR.POSITION_BEFORE_END); -a=new CKEDITOR.dom.walker(c);a.evaluator=b();return a.checkForward()},getPreviousNode:function(a,b,c){var d=this.clone();d.collapse(1);d.setStartAt(c||this.root,CKEDITOR.POSITION_AFTER_START);c=new CKEDITOR.dom.walker(d);c.evaluator=a;c.guard=b;return c.previous()},getNextNode:function(a,b,c){var d=this.clone();d.collapse();d.setEndAt(c||this.root,CKEDITOR.POSITION_BEFORE_END);c=new CKEDITOR.dom.walker(d);c.evaluator=a;c.guard=b;return c.next()},checkReadOnly:function(){function a(b,c){for(;b;){if(b.type== -CKEDITOR.NODE_ELEMENT){if("false"==b.getAttribute("contentEditable")&&!b.data("cke-editable"))return 0;if(b.is("html")||"true"==b.getAttribute("contentEditable")&&(b.contains(c)||b.equals(c)))break}b=b.getParent()}return 1}return function(){var b=this.startContainer,c=this.endContainer;return!(a(b,c)&&a(c,b))}}(),moveToElementEditablePosition:function(a,b){if(a.type==CKEDITOR.NODE_ELEMENT&&!a.isEditable(!1))return this.moveToPosition(a,b?CKEDITOR.POSITION_AFTER_END:CKEDITOR.POSITION_BEFORE_START), -!0;for(var c=0;a;){if(a.type==CKEDITOR.NODE_TEXT){b&&this.endContainer&&this.checkEndOfBlock()&&k.test(a.getText())?this.moveToPosition(a,CKEDITOR.POSITION_BEFORE_START):this.moveToPosition(a,b?CKEDITOR.POSITION_AFTER_END:CKEDITOR.POSITION_BEFORE_START);c=1;break}if(a.type==CKEDITOR.NODE_ELEMENT)if(a.isEditable())this.moveToPosition(a,b?CKEDITOR.POSITION_BEFORE_END:CKEDITOR.POSITION_AFTER_START),c=1;else if(b&&a.is("br")&&this.endContainer&&this.checkEndOfBlock())this.moveToPosition(a,CKEDITOR.POSITION_BEFORE_START); -else if("false"==a.getAttribute("contenteditable")&&a.is(CKEDITOR.dtd.$block))return this.setStartBefore(a),this.setEndAfter(a),!0;var d=a,e=c,g=void 0;d.type==CKEDITOR.NODE_ELEMENT&&d.isEditable(!1)&&(g=d[b?"getLast":"getFirst"](q));e||g||(g=d[b?"getPrevious":"getNext"](q));a=g}return!!c},moveToClosestEditablePosition:function(a,b){var c,d=0,e,g,m=[CKEDITOR.POSITION_AFTER_END,CKEDITOR.POSITION_BEFORE_START];a?(c=new CKEDITOR.dom.range(this.root),c.moveToPosition(a,m[b?0:1])):c=this.clone();if(a&& -!a.is(CKEDITOR.dtd.$block))d=1;else if(e=c[b?"getNextEditableNode":"getPreviousEditableNode"]())d=1,(g=e.type==CKEDITOR.NODE_ELEMENT)&&e.is(CKEDITOR.dtd.$block)&&"false"==e.getAttribute("contenteditable")?(c.setStartAt(e,CKEDITOR.POSITION_BEFORE_START),c.setEndAt(e,CKEDITOR.POSITION_AFTER_END)):!CKEDITOR.env.needsBrFiller&&g&&e.is(CKEDITOR.dom.walker.validEmptyBlockContainers)?(c.setEnd(e,0),c.collapse()):c.moveToPosition(e,m[b?1:0]);d&&this.moveToRange(c);return!!d},moveToElementEditStart:function(a){return this.moveToElementEditablePosition(a)}, -moveToElementEditEnd:function(a){return this.moveToElementEditablePosition(a,!0)},getEnclosedNode:function(){var a=this.clone();a.optimize();if(a.startContainer.type!=CKEDITOR.NODE_ELEMENT||a.endContainer.type!=CKEDITOR.NODE_ELEMENT)return null;var a=new CKEDITOR.dom.walker(a),b=CKEDITOR.dom.walker.bookmark(!1,!0),c=CKEDITOR.dom.walker.whitespaces(!0);a.evaluator=function(a){return c(a)&&b(a)};var d=a.next();a.reset();return d&&d.equals(a.previous())?d:null},getTouchedStartNode:function(){var a=this.startContainer; -return this.collapsed||a.type!=CKEDITOR.NODE_ELEMENT?a:a.getChild(this.startOffset)||a},getTouchedEndNode:function(){var a=this.endContainer;return this.collapsed||a.type!=CKEDITOR.NODE_ELEMENT?a:a.getChild(this.endOffset-1)||a},getNextEditableNode:e(),getPreviousEditableNode:e(1),_getTableElement:function(a){a=a||{td:1,th:1,tr:1,tbody:1,thead:1,tfoot:1,table:1};var b=this.startContainer,c=this.endContainer,d=b.getAscendant("table",!0),e=c.getAscendant("table",!0);return CKEDITOR.env.safari&&d&&c.equals(this.root)? -b.getAscendant(a,!0):this.getEnclosedNode()?this.getEnclosedNode().getAscendant(a,!0):d&&e&&(d.equals(e)||d.contains(e)||e.contains(d))?b.getAscendant(a,!0):null},scrollIntoView:function(){var a=new CKEDITOR.dom.element.createFromHtml("\x3cspan\x3e\x26nbsp;\x3c/span\x3e",this.document),b,c,d,e=this.clone();e.optimize();(d=e.startContainer.type==CKEDITOR.NODE_TEXT)?(c=e.startContainer.getText(),b=e.startContainer.split(e.startOffset),a.insertAfter(e.startContainer)):e.insertNode(a);a.scrollIntoView(); -d&&(e.startContainer.setText(c),b.remove());a.remove()},_setStartContainer:function(a){this.startContainer=a},_setEndContainer:function(a){this.endContainer=a},_find:function(a,b){var c=this.getCommonAncestor(),d=this.getBoundaryNodes(),e=[],g,m,k,h;if(c&&c.find)for(m=c.find(a),g=0;g<m.count();g++)if(c=m.getItem(g),b||!c.isReadOnly())k=c.getPosition(d.startNode)&CKEDITOR.POSITION_FOLLOWING||d.startNode.equals(c),h=c.getPosition(d.endNode)&CKEDITOR.POSITION_PRECEDING+CKEDITOR.POSITION_IS_CONTAINED|| -d.endNode.equals(c),k&&h&&e.push(c);return e}};CKEDITOR.dom.range.mergeRanges=function(a){return CKEDITOR.tools.array.reduce(a,function(a,b){var c=a[a.length-1],d=!1;b=b.clone();b.enlarge(CKEDITOR.ENLARGE_ELEMENT);if(c){var e=new CKEDITOR.dom.range(b.root),d=new CKEDITOR.dom.walker(e),f=CKEDITOR.dom.walker.whitespaces();e.setStart(c.endContainer,c.endOffset);e.setEnd(b.startContainer,b.startOffset);for(e=d.next();f(e)||b.endContainer.equals(e);)e=d.next();d=!e}d?c.setEnd(b.endContainer,b.endOffset): -a.push(b);return a},[])}})();CKEDITOR.POSITION_AFTER_START=1;CKEDITOR.POSITION_BEFORE_END=2;CKEDITOR.POSITION_BEFORE_START=3;CKEDITOR.POSITION_AFTER_END=4;CKEDITOR.ENLARGE_ELEMENT=1;CKEDITOR.ENLARGE_BLOCK_CONTENTS=2;CKEDITOR.ENLARGE_LIST_ITEM_CONTENTS=3;CKEDITOR.ENLARGE_INLINE=4;CKEDITOR.START=1;CKEDITOR.END=2;CKEDITOR.SHRINK_ELEMENT=1;CKEDITOR.SHRINK_TEXT=2;"use strict"; -(function(){function a(a){1>arguments.length||(this.range=a,this.forceBrBreak=0,this.enlargeBr=1,this.enforceRealBlocks=0,this._||(this._={}))}function d(a){var b=[];a.forEach(function(a){if("true"==a.getAttribute("contenteditable"))return b.push(a),!1},CKEDITOR.NODE_ELEMENT,!0);return b}function b(a,c,e,g){a:{null==g&&(g=d(e));for(var k;k=g.shift();)if(k.getDtd().p){g={element:k,remaining:g};break a}g=null}if(!g)return 0;if((k=CKEDITOR.filter.instances[g.element.data("cke-filter")])&&!k.check(c))return b(a, -c,e,g.remaining);c=new CKEDITOR.dom.range(g.element);c.selectNodeContents(g.element);c=c.createIterator();c.enlargeBr=a.enlargeBr;c.enforceRealBlocks=a.enforceRealBlocks;c.activeFilter=c.filter=k;a._.nestedEditable={element:g.element,container:e,remaining:g.remaining,iterator:c};return 1}function c(a,b,c){if(!b)return!1;a=a.clone();a.collapse(!c);return a.checkBoundaryOfElement(b,c?CKEDITOR.START:CKEDITOR.END)}var e=/^[\r\n\t ]+$/,g=CKEDITOR.dom.walker.bookmark(!1,!0),h=CKEDITOR.dom.walker.whitespaces(!0), -k=function(a){return g(a)&&h(a)},n={dd:1,dt:1,li:1};a.prototype={getNextParagraph:function(a){var d,h,w,A,G;a=a||"p";if(this._.nestedEditable){if(d=this._.nestedEditable.iterator.getNextParagraph(a))return this.activeFilter=this._.nestedEditable.iterator.activeFilter,d;this.activeFilter=this.filter;if(b(this,a,this._.nestedEditable.container,this._.nestedEditable.remaining))return this.activeFilter=this._.nestedEditable.iterator.activeFilter,this._.nestedEditable.iterator.getNextParagraph(a);this._.nestedEditable= -null}if(!this.range.root.getDtd()[a])return null;if(!this._.started){var x=this.range.clone();h=x.startPath();var m=x.endPath(),K=!x.collapsed&&c(x,h.block),z=!x.collapsed&&c(x,m.block,1);x.shrink(CKEDITOR.SHRINK_ELEMENT,!0);K&&x.setStartAt(h.block,CKEDITOR.POSITION_BEFORE_END);z&&x.setEndAt(m.block,CKEDITOR.POSITION_AFTER_START);h=x.endContainer.hasAscendant("pre",!0)||x.startContainer.hasAscendant("pre",!0);x.enlarge(this.forceBrBreak&&!h||!this.enlargeBr?CKEDITOR.ENLARGE_LIST_ITEM_CONTENTS:CKEDITOR.ENLARGE_BLOCK_CONTENTS); -x.collapsed||(h=new CKEDITOR.dom.walker(x.clone()),m=CKEDITOR.dom.walker.bookmark(!0,!0),h.evaluator=m,this._.nextNode=h.next(),h=new CKEDITOR.dom.walker(x.clone()),h.evaluator=m,h=h.previous(),this._.lastNode=h.getNextSourceNode(!0,null,x.root),this._.lastNode&&this._.lastNode.type==CKEDITOR.NODE_TEXT&&!CKEDITOR.tools.trim(this._.lastNode.getText())&&this._.lastNode.getParent().isBlockBoundary()&&(m=this.range.clone(),m.moveToPosition(this._.lastNode,CKEDITOR.POSITION_AFTER_END),m.checkEndOfBlock()&& -(m=new CKEDITOR.dom.elementPath(m.endContainer,m.root),this._.lastNode=(m.block||m.blockLimit).getNextSourceNode(!0))),this._.lastNode&&x.root.contains(this._.lastNode)||(this._.lastNode=this._.docEndMarker=x.document.createText(""),this._.lastNode.insertAfter(h)),x=null);this._.started=1;h=x}m=this._.nextNode;x=this._.lastNode;for(this._.nextNode=null;m;){var K=0,z=m.hasAscendant("pre"),I=m.type!=CKEDITOR.NODE_ELEMENT,l=0;if(I)m.type==CKEDITOR.NODE_TEXT&&e.test(m.getText())&&(I=0);else{var r=m.getName(); -if(CKEDITOR.dtd.$block[r]&&"false"==m.getAttribute("contenteditable")){d=m;b(this,a,d);break}else if(m.isBlockBoundary(this.forceBrBreak&&!z&&{br:1})){if("br"==r)I=1;else if(!h&&!m.getChildCount()&&"hr"!=r){d=m;w=m.equals(x);break}h&&(h.setEndAt(m,CKEDITOR.POSITION_BEFORE_START),"br"!=r&&(this._.nextNode=m));K=1}else{if(m.getFirst()){h||(h=this.range.clone(),h.setStartAt(m,CKEDITOR.POSITION_BEFORE_START));m=m.getFirst();continue}I=1}}I&&!h&&(h=this.range.clone(),h.setStartAt(m,CKEDITOR.POSITION_BEFORE_START)); -w=(!K||I)&&m.equals(x);if(h&&!K)for(;!m.getNext(k)&&!w;){r=m.getParent();if(r.isBlockBoundary(this.forceBrBreak&&!z&&{br:1})){K=1;I=0;w||r.equals(x);h.setEndAt(r,CKEDITOR.POSITION_BEFORE_END);break}m=r;I=1;w=m.equals(x);l=1}I&&h.setEndAt(m,CKEDITOR.POSITION_AFTER_END);m=this._getNextSourceNode(m,l,x);if((w=!m)||K&&h)break}if(!d){if(!h)return this._.docEndMarker&&this._.docEndMarker.remove(),this._.nextNode=null;d=new CKEDITOR.dom.elementPath(h.startContainer,h.root);m=d.blockLimit;K={div:1,th:1,td:1}; -d=d.block;!d&&m&&!this.enforceRealBlocks&&K[m.getName()]&&h.checkStartOfBlock()&&h.checkEndOfBlock()&&!m.equals(h.root)?d=m:!d||this.enforceRealBlocks&&d.is(n)?(d=this.range.document.createElement(a),h.extractContents().appendTo(d),d.trim(),h.insertNode(d),A=G=!0):"li"!=d.getName()?h.checkStartOfBlock()&&h.checkEndOfBlock()||(d=d.clone(!1),h.extractContents().appendTo(d),d.trim(),G=h.splitBlock(),A=!G.wasStartOfBlock,G=!G.wasEndOfBlock,h.insertNode(d)):w||(this._.nextNode=d.equals(x)?null:this._getNextSourceNode(h.getBoundaryNodes().endNode, -1,x))}A&&(A=d.getPrevious())&&A.type==CKEDITOR.NODE_ELEMENT&&("br"==A.getName()?A.remove():A.getLast()&&"br"==A.getLast().$.nodeName.toLowerCase()&&A.getLast().remove());G&&(A=d.getLast())&&A.type==CKEDITOR.NODE_ELEMENT&&"br"==A.getName()&&(!CKEDITOR.env.needsBrFiller||A.getPrevious(g)||A.getNext(g))&&A.remove();this._.nextNode||(this._.nextNode=w||d.equals(x)||!x?null:this._getNextSourceNode(d,1,x));return d},_getNextSourceNode:function(a,b,c){function d(a){return!(a.equals(c)||a.equals(e))}var e= -this.range.root;for(a=a.getNextSourceNode(b,null,d);!g(a);)a=a.getNextSourceNode(b,null,d);return a}};CKEDITOR.dom.range.prototype.createIterator=function(){return new a(this)}})(); -CKEDITOR.command=function(a,d){this.uiItems=[];this.exec=function(b){if(this.state==CKEDITOR.TRISTATE_DISABLED||!this.checkAllowed())return!1;this.editorFocus&&a.focus();return!1===this.fire("exec")?!0:!1!==d.exec.call(this,a,b)};this.refresh=function(a,b){if(!this.readOnly&&a.readOnly)return!0;if(this.context&&!b.isContextFor(this.context)||!this.checkAllowed(!0))return this.disable(),!0;this.startDisabled||this.enable();this.modes&&!this.modes[a.mode]&&this.disable();return!1===this.fire("refresh", -{editor:a,path:b})?!0:d.refresh&&!1!==d.refresh.apply(this,arguments)};var b;this.checkAllowed=function(c){return c||"boolean"!=typeof b?b=a.activeFilter.checkFeature(this):b};CKEDITOR.tools.extend(this,d,{modes:{wysiwyg:1},editorFocus:1,contextSensitive:!!d.context,state:CKEDITOR.TRISTATE_DISABLED});CKEDITOR.event.call(this)}; -CKEDITOR.command.prototype={enable:function(){this.state==CKEDITOR.TRISTATE_DISABLED&&this.checkAllowed()&&this.setState(this.preserveState&&"undefined"!=typeof this.previousState?this.previousState:CKEDITOR.TRISTATE_OFF)},disable:function(){this.setState(CKEDITOR.TRISTATE_DISABLED)},setState:function(a){if(this.state==a||a!=CKEDITOR.TRISTATE_DISABLED&&!this.checkAllowed())return!1;this.previousState=this.state;this.state=a;this.fire("state");return!0},toggleState:function(){this.state==CKEDITOR.TRISTATE_OFF? -this.setState(CKEDITOR.TRISTATE_ON):this.state==CKEDITOR.TRISTATE_ON&&this.setState(CKEDITOR.TRISTATE_OFF)}};CKEDITOR.event.implementOn(CKEDITOR.command.prototype);CKEDITOR.ENTER_P=1;CKEDITOR.ENTER_BR=2;CKEDITOR.ENTER_DIV=3; -CKEDITOR.config={customConfig:"config.js",autoUpdateElement:!0,language:"",defaultLanguage:"en",contentsLangDirection:"",enterMode:CKEDITOR.ENTER_P,forceEnterMode:!1,shiftEnterMode:CKEDITOR.ENTER_BR,docType:"\x3c!DOCTYPE html\x3e",bodyId:"",bodyClass:"",fullPage:!1,height:200,contentsCss:CKEDITOR.getUrl("contents.css"),extraPlugins:"",removePlugins:"",protectedSource:[],tabIndex:0,width:"",baseFloatZIndex:1E4,blockedKeystrokes:[CKEDITOR.CTRL+66,CKEDITOR.CTRL+73,CKEDITOR.CTRL+85]}; -(function(){function a(a,b,c,d,e){var f,l;a=[];for(f in b){l=b[f];l="boolean"==typeof l?{}:"function"==typeof l?{match:l}:v(l);"$"!=f.charAt(0)&&(l.elements=f);c&&(l.featureName=c.toLowerCase());var t=l;t.elements=h(t.elements,/\s+/)||null;t.propertiesOnly=t.propertiesOnly||!0===t.elements;var u=/\s*,\s*/,g=void 0;for(g in V){t[g]=h(t[g],u)||null;var p=t,r=O[g],m=h(t[O[g]],u),F=t[g],y=[],B=!0,C=void 0;m?B=!1:m={};for(C in F)"!"==C.charAt(0)&&(C=C.slice(1),y.push(C),m[C]=!0,B=!1);for(;C=y.pop();)F[C]= -F["!"+C],delete F["!"+C];p[r]=(B?!1:m)||null}t.match=t.match||null;d.push(l);a.push(l)}b=e.elements;e=e.generic;var k;c=0;for(d=a.length;c<d;++c){f=v(a[c]);l=!0===f.classes||!0===f.styles||!0===f.attributes;t=f;g=r=u=void 0;for(u in V)t[u]=K(t[u]);p=!0;for(g in O){u=O[g];r=t[u];m=[];F=void 0;for(F in r)-1<F.indexOf("*")?m.push(new RegExp("^"+F.replace(/\*/g,".*")+"$")):m.push(F);r=m;r.length&&(t[u]=r,p=!1)}t.nothingRequired=p;t.noProperties=!(t.attributes||t.classes||t.styles);if(!0===f.elements|| -null===f.elements)e[l?"unshift":"push"](f);else for(k in t=f.elements,delete f.elements,t)if(b[k])b[k][l?"unshift":"push"](f);else b[k]=[f]}}function d(a,c,d,e){if(!a.match||a.match(c))if(e||k(a,c))if(a.propertiesOnly||(d.valid=!0),d.allAttributes||(d.allAttributes=b(a.attributes,c.attributes,d.validAttributes)),d.allStyles||(d.allStyles=b(a.styles,c.styles,d.validStyles)),!d.allClasses){a=a.classes;c=c.classes;e=d.validClasses;if(a)if(!0===a)a=!0;else{for(var f=0,l=c.length,t;f<l;++f)t=c[f],e[t]|| -(e[t]=a(t));a=!1}else a=!1;d.allClasses=a}}function b(a,b,c){if(!a)return!1;if(!0===a)return!0;for(var d in b)c[d]||(c[d]=a(d));return!1}function c(a,b,c){if(!a.match||a.match(b)){if(a.noProperties)return!1;c.hadInvalidAttribute=e(a.attributes,b.attributes)||c.hadInvalidAttribute;c.hadInvalidStyle=e(a.styles,b.styles)||c.hadInvalidStyle;a=a.classes;b=b.classes;if(a){for(var d=!1,f=!0===a,t=b.length;t--;)if(f||a(b[t]))b.splice(t,1),d=!0;a=d}else a=!1;c.hadInvalidClass=a||c.hadInvalidClass}}function e(a, -b){if(!a)return!1;var c=!1,d=!0===a,e;for(e in b)if(d||a(e))delete b[e],c=!0;return c}function g(a,b,c){if(a.disabled||a.customConfig&&!c||!b)return!1;a._.cachedChecks={};return!0}function h(a,b){if(!a)return!1;if(!0===a)return a;if("string"==typeof a)return a=B(a),"*"==a?!0:CKEDITOR.tools.convertArrayToObject(a.split(b));if(CKEDITOR.tools.isArray(a))return a.length?CKEDITOR.tools.convertArrayToObject(a):!1;var c={},d=0,e;for(e in a)c[e]=a[e],d++;return d?c:!1}function k(a,b){if(a.nothingRequired)return!0; -var c,d,e,f;if(e=a.requiredClasses)for(f=b.classes,c=0;c<e.length;++c)if(d=e[c],"string"==typeof d){if(-1==CKEDITOR.tools.indexOf(f,d))return!1}else if(!CKEDITOR.tools.checkIfAnyArrayItemMatches(f,d))return!1;return n(b.styles,a.requiredStyles)&&n(b.attributes,a.requiredAttributes)}function n(a,b){if(!b)return!0;for(var c=0,d;c<b.length;++c)if(d=b[c],"string"==typeof d){if(!(d in a))return!1}else if(!CKEDITOR.tools.checkIfAnyObjectPropertyMatches(a,d))return!1;return!0}function q(a){if(!a)return{}; -a=a.split(/\s*,\s*/).sort();for(var b={};a.length;)b[a.shift()]="cke-test";return b}function f(a){var b,c,d,e,f={},t=1;for(a=B(a);b=a.match(p);)(c=b[2])?(d=D(c,"styles"),e=D(c,"attrs"),c=D(c,"classes")):d=e=c=null,f["$"+t++]={elements:b[1],classes:c,styles:d,attributes:e},a=a.slice(b[0].length);return f}function D(a,b){var c=a.match(C[b]);return c?B(c[1]):null}function w(a){var b=a.styleBackup=a.attributes.style,c=a.classBackup=a.attributes["class"];a.styles||(a.styles=CKEDITOR.tools.parseCssText(b|| -"",1));a.classes||(a.classes=c?c.split(/\s+/):[])}function A(a,b,e,f){var l=0,u;f.toHtml&&(b.name=b.name.replace(t,"$1"));if(f.doCallbacks&&a.elementCallbacks){a:{u=a.elementCallbacks;for(var v=0,g=u.length,p;v<g;++v)if(p=u[v](b)){u=p;break a}u=void 0}if(u)return u}if(f.doTransform&&(u=a._.transformations[b.name])){w(b);for(v=0;v<u.length;++v)r(a,b,u[v]);x(b)}if(f.doFilter){a:{v=b.name;g=a._;a=g.allowedRules.elements[v];u=g.allowedRules.generic;v=g.disallowedRules.elements[v];g=g.disallowedRules.generic; -p=f.skipRequired;var y={valid:!1,validAttributes:{},validClasses:{},validStyles:{},allAttributes:!1,allClasses:!1,allStyles:!1,hadInvalidAttribute:!1,hadInvalidClass:!1,hadInvalidStyle:!1},B,C;if(a||u){w(b);if(v)for(B=0,C=v.length;B<C;++B)if(!1===c(v[B],b,y)){a=null;break a}if(g)for(B=0,C=g.length;B<C;++B)c(g[B],b,y);if(a)for(B=0,C=a.length;B<C;++B)d(a[B],b,y,p);if(u)for(B=0,C=u.length;B<C;++B)d(u[B],b,y,p);a=y}else a=null}if(!a||!a.valid)return e.push(b),1;C=a.validAttributes;var h=a.validStyles; -u=a.validClasses;var v=b.attributes,k=b.styles,g=b.classes;p=b.classBackup;var J=b.styleBackup,H,N,E=[],y=[],O=/^data-cke-/;B=!1;delete v.style;delete v["class"];delete b.classBackup;delete b.styleBackup;if(!a.allAttributes)for(H in v)C[H]||(O.test(H)?H==(N=H.replace(/^data-cke-saved-/,""))||C[N]||(delete v[H],B=!0):(delete v[H],B=!0));if(!a.allStyles||a.hadInvalidStyle){for(H in k)a.allStyles||h[H]?E.push(H+":"+k[H]):B=!0;E.length&&(v.style=E.sort().join("; "))}else J&&(v.style=J);if(!a.allClasses|| -a.hadInvalidClass){for(H=0;H<g.length;++H)(a.allClasses||u[g[H]])&&y.push(g[H]);y.length&&(v["class"]=y.sort().join(" "));p&&y.length<p.split(/\s+/).length&&(B=!0)}else p&&(v["class"]=p);B&&(l=1);if(!f.skipFinalValidation&&!m(b))return e.push(b),1}f.toHtml&&(b.name=b.name.replace(F,"cke:$1"));return l}function G(a){var b=[],c;for(c in a)-1<c.indexOf("*")&&b.push(c.replace(/\*/g,".*"));return b.length?new RegExp("^(?:"+b.join("|")+")$"):null}function x(a){var b=a.attributes,c;delete b.style;delete b["class"]; -if(c=CKEDITOR.tools.writeCssText(a.styles,!0))b.style=c;a.classes.length&&(b["class"]=a.classes.sort().join(" "))}function m(a){switch(a.name){case "a":if(!(a.children.length||a.attributes.name||a.attributes.id))return!1;break;case "img":if(!a.attributes.src)return!1}return!0}function K(a){if(!a)return!1;if(!0===a)return!0;var b=G(a);return function(c){return c in a||b&&c.match(b)}}function z(){return new CKEDITOR.htmlParser.element("br")}function I(a){return a.type==CKEDITOR.NODE_ELEMENT&&("br"== -a.name||y.$block[a.name])}function l(a,b,c){var d=a.name;if(y.$empty[d]||!a.children.length)"hr"==d&&"br"==b?a.replaceWith(z()):(a.parent&&c.push({check:"it",el:a.parent}),a.remove());else if(y.$block[d]||"tr"==d)if("br"==b)a.previous&&!I(a.previous)&&(b=z(),b.insertBefore(a)),a.next&&!I(a.next)&&(b=z(),b.insertAfter(a)),a.replaceWithChildren();else{var d=a.children,e;b:{e=y[b];for(var f=0,t=d.length,l;f<t;++f)if(l=d[f],l.type==CKEDITOR.NODE_ELEMENT&&!e[l.name]){e=!1;break b}e=!0}if(e)a.name=b,a.attributes= -{},c.push({check:"parent-down",el:a});else{e=a.parent;for(var f=e.type==CKEDITOR.NODE_DOCUMENT_FRAGMENT||"body"==e.name,v,u,t=d.length;0<t;)l=d[--t],f&&(l.type==CKEDITOR.NODE_TEXT||l.type==CKEDITOR.NODE_ELEMENT&&y.$inline[l.name])?(v||(v=new CKEDITOR.htmlParser.element(b),v.insertAfter(a),c.push({check:"parent-down",el:v})),v.add(l,0)):(v=null,u=y[e.name]||y.span,l.insertAfter(a),e.type==CKEDITOR.NODE_DOCUMENT_FRAGMENT||l.type!=CKEDITOR.NODE_ELEMENT||u[l.name]||c.push({check:"el-up",el:l}));a.remove()}}else d in -{style:1,script:1}?a.remove():(a.parent&&c.push({check:"it",el:a.parent}),a.replaceWithChildren())}function r(a,b,c){var d,e;for(d=0;d<c.length;++d)if(e=c[d],!(e.check&&!a.check(e.check,!1)||e.left&&!e.left(b))){e.right(b,N);break}}function J(a,b){var c=b.getDefinition(),d=c.attributes,e=c.styles,f,l,t,v;if(a.name!=c.element)return!1;for(f in d)if("class"==f)for(c=d[f].split(/\s+/),t=a.classes.join("|");v=c.pop();){if(-1==t.indexOf(v))return!1}else if(a.attributes[f]!=d[f])return!1;for(l in e)if(a.styles[l]!= -e[l])return!1;return!0}function H(a,b){var c,d;"string"==typeof a?c=a:a instanceof CKEDITOR.style?d=a:(c=a[0],d=a[1]);return[{element:c,left:d,right:function(a,c){c.transform(a,b)}}]}function E(a){return function(b){return J(b,a)}}function u(a){return function(b,c){c[a](b)}}var y=CKEDITOR.dtd,v=CKEDITOR.tools.copy,B=CKEDITOR.tools.trim,L=["","p","br","div"];CKEDITOR.FILTER_SKIP_TREE=2;CKEDITOR.filter=function(a){this.allowedContent=[];this.disallowedContent=[];this.elementCallbacks=null;this.disabled= -!1;this.editor=null;this.id=CKEDITOR.tools.getNextNumber();this._={allowedRules:{elements:{},generic:[]},disallowedRules:{elements:{},generic:[]},transformations:{},cachedTests:{},cachedChecks:{}};CKEDITOR.filter.instances[this.id]=this;if(a instanceof CKEDITOR.editor){a=this.editor=a;this.customConfig=!0;var b=a.config.allowedContent;!0===b?this.disabled=!0:(b||(this.customConfig=!1),this.allow(b,"config",1),this.allow(a.config.extraAllowedContent,"extra",1),this.allow(L[a.enterMode]+" "+L[a.shiftEnterMode], -"default",1),this.disallow(a.config.disallowedContent))}else this.customConfig=!1,this.allow(a,"default",1)};CKEDITOR.filter.instances={};CKEDITOR.filter.prototype={allow:function(b,c,d){if(!g(this,b,d))return!1;var e,l;if("string"==typeof b)b=f(b);else if(b instanceof CKEDITOR.style){if(b.toAllowedContentRules)return this.allow(b.toAllowedContentRules(this.editor),c,d);e=b.getDefinition();b={};d=e.attributes;b[e.element]=e={styles:e.styles,requiredStyles:e.styles&&CKEDITOR.tools.objectKeys(e.styles)}; -d&&(d=v(d),e.classes=d["class"]?d["class"].split(/\s+/):null,e.requiredClasses=e.classes,delete d["class"],e.attributes=d,e.requiredAttributes=d&&CKEDITOR.tools.objectKeys(d))}else if(CKEDITOR.tools.isArray(b)){for(e=0;e<b.length;++e)l=this.allow(b[e],c,d);return l}a(this,b,c,this.allowedContent,this._.allowedRules);return!0},applyTo:function(a,b,c,d){if(this.disabled)return!1;var e=this,f=[],t=this.editor&&this.editor.config.protectedSource,v,u=!1,g={doFilter:!c,doTransform:!0,doCallbacks:!0,toHtml:b}; -a.forEach(function(a){if(a.type==CKEDITOR.NODE_ELEMENT){if("off"==a.attributes["data-cke-filter"])return!1;if(!b||"span"!=a.name||!~CKEDITOR.tools.objectKeys(a.attributes).join("|").indexOf("data-cke-"))if(v=A(e,a,f,g),v&1)u=!0;else if(v&2)return!1}else if(a.type==CKEDITOR.NODE_COMMENT&&a.value.match(/^\{cke_protected\}(?!\{C\})/)){var c;a:{var d=decodeURIComponent(a.value.replace(/^\{cke_protected\}/,""));c=[];var l,p,r;if(t)for(p=0;p<t.length;++p)if((r=d.match(t[p]))&&r[0].length==d.length){c=!0; -break a}d=CKEDITOR.htmlParser.fragment.fromHtml(d);1==d.children.length&&(l=d.children[0]).type==CKEDITOR.NODE_ELEMENT&&A(e,l,c,g);c=!c.length}c||f.push(a)}},null,!0);f.length&&(u=!0);var p;a=[];d=L[d||(this.editor?this.editor.enterMode:CKEDITOR.ENTER_P)];for(var r;c=f.pop();)c.type==CKEDITOR.NODE_ELEMENT?l(c,d,a):c.remove();for(;p=a.pop();)if(c=p.el,c.parent)switch(r=y[c.parent.name]||y.span,p.check){case "it":y.$removeEmpty[c.name]&&!c.children.length?l(c,d,a):m(c)||l(c,d,a);break;case "el-up":c.parent.type== -CKEDITOR.NODE_DOCUMENT_FRAGMENT||r[c.name]||l(c,d,a);break;case "parent-down":c.parent.type==CKEDITOR.NODE_DOCUMENT_FRAGMENT||r[c.name]||l(c.parent,d,a)}return u},checkFeature:function(a){if(this.disabled||!a)return!0;a.toFeature&&(a=a.toFeature(this.editor));return!a.requiredContent||this.check(a.requiredContent)},disable:function(){this.disabled=!0},disallow:function(b){if(!g(this,b,!0))return!1;"string"==typeof b&&(b=f(b));a(this,b,null,this.disallowedContent,this._.disallowedRules);return!0}, -addContentForms:function(a){if(!this.disabled&&a){var b,c,d=[],e;for(b=0;b<a.length&&!e;++b)c=a[b],("string"==typeof c||c instanceof CKEDITOR.style)&&this.check(c)&&(e=c);if(e){for(b=0;b<a.length;++b)d.push(H(a[b],e));this.addTransformations(d)}}},addElementCallback:function(a){this.elementCallbacks||(this.elementCallbacks=[]);this.elementCallbacks.push(a)},addFeature:function(a){if(this.disabled||!a)return!0;a.toFeature&&(a=a.toFeature(this.editor));this.allow(a.allowedContent,a.name);this.addTransformations(a.contentTransformations); -this.addContentForms(a.contentForms);return a.requiredContent&&(this.customConfig||this.disallowedContent.length)?this.check(a.requiredContent):!0},addTransformations:function(a){var b,c;if(!this.disabled&&a){var d=this._.transformations,e;for(e=0;e<a.length;++e){b=a[e];var f=void 0,l=void 0,t=void 0,v=void 0,g=void 0,p=void 0;c=[];for(l=0;l<b.length;++l)t=b[l],"string"==typeof t?(t=t.split(/\s*:\s*/),v=t[0],g=null,p=t[1]):(v=t.check,g=t.left,p=t.right),f||(f=t,f=f.element?f.element:v?v.match(/^([a-z0-9]+)/i)[0]: -f.left.getDefinition().element),g instanceof CKEDITOR.style&&(g=E(g)),c.push({check:v==f?null:v,left:g,right:"string"==typeof p?u(p):p});b=f;d[b]||(d[b]=[]);d[b].push(c)}}},check:function(a,b,c){if(this.disabled)return!0;if(CKEDITOR.tools.isArray(a)){for(var d=a.length;d--;)if(this.check(a[d],b,c))return!0;return!1}var e,l;if("string"==typeof a){l=a+"\x3c"+(!1===b?"0":"1")+(c?"1":"0")+"\x3e";if(l in this._.cachedChecks)return this._.cachedChecks[l];d=f(a).$1;e=d.styles;var t=d.classes;d.name=d.elements; -d.classes=t=t?t.split(/\s*,\s*/):[];d.styles=q(e);d.attributes=q(d.attributes);d.children=[];t.length&&(d.attributes["class"]=t.join(" "));e&&(d.attributes.style=CKEDITOR.tools.writeCssText(d.styles));e=d}else d=a.getDefinition(),e=d.styles,t=d.attributes||{},e&&!CKEDITOR.tools.isEmpty(e)?(e=v(e),t.style=CKEDITOR.tools.writeCssText(e,!0)):e={},e={name:d.element,attributes:t,classes:t["class"]?t["class"].split(/\s+/):[],styles:e,children:[]};var t=CKEDITOR.tools.clone(e),u=[],g;if(!1!==b&&(g=this._.transformations[e.name])){for(d= -0;d<g.length;++d)r(this,e,g[d]);x(e)}A(this,t,u,{doFilter:!0,doTransform:!1!==b,skipRequired:!c,skipFinalValidation:!c});b=0<u.length?!1:CKEDITOR.tools.objectCompare(e.attributes,t.attributes,!0)?!0:!1;"string"==typeof a&&(this._.cachedChecks[l]=b);return b},getAllowedEnterMode:function(){var a=["p","div","br"],b={p:CKEDITOR.ENTER_P,div:CKEDITOR.ENTER_DIV,br:CKEDITOR.ENTER_BR};return function(c,d){var e=a.slice(),f;if(this.check(L[c]))return c;for(d||(e=e.reverse());f=e.pop();)if(this.check(f))return b[f]; -return CKEDITOR.ENTER_BR}}(),clone:function(){var a=new CKEDITOR.filter,b=CKEDITOR.tools.clone;a.allowedContent=b(this.allowedContent);a._.allowedRules=b(this._.allowedRules);a.disallowedContent=b(this.disallowedContent);a._.disallowedRules=b(this._.disallowedRules);a._.transformations=b(this._.transformations);a.disabled=this.disabled;a.editor=this.editor;return a},destroy:function(){delete CKEDITOR.filter.instances[this.id];delete this._;delete this.allowedContent;delete this.disallowedContent}}; -var V={styles:1,attributes:1,classes:1},O={styles:"requiredStyles",attributes:"requiredAttributes",classes:"requiredClasses"},p=/^([a-z0-9\-*\s]+)((?:\s*\{[!\w\-,\s\*]+\}\s*|\s*\[[!\w\-,\s\*]+\]\s*|\s*\([!\w\-,\s\*]+\)\s*){0,3})(?:;\s*|$)/i,C={styles:/{([^}]+)}/,attrs:/\[([^\]]+)\]/,classes:/\(([^\)]+)\)/},t=/^cke:(object|embed|param)$/,F=/^(object|embed|param)$/,N;N=CKEDITOR.filter.transformationsTools={sizeToStyle:function(a){this.lengthToStyle(a,"width");this.lengthToStyle(a,"height")},sizeToAttribute:function(a){this.lengthToAttribute(a, -"width");this.lengthToAttribute(a,"height")},lengthToStyle:function(a,b,c){c=c||b;if(!(c in a.styles)){var d=a.attributes[b];d&&(/^\d+$/.test(d)&&(d+="px"),a.styles[c]=d)}delete a.attributes[b]},lengthToAttribute:function(a,b,c){c=c||b;if(!(c in a.attributes)){var d=a.styles[b],e=d&&d.match(/^(\d+)(?:\.\d*)?px$/);e?a.attributes[c]=e[1]:"cke-test"==d&&(a.attributes[c]="cke-test")}delete a.styles[b]},alignmentToStyle:function(a){if(!("float"in a.styles)){var b=a.attributes.align;if("left"==b||"right"== -b)a.styles["float"]=b}delete a.attributes.align},alignmentToAttribute:function(a){if(!("align"in a.attributes)){var b=a.styles["float"];if("left"==b||"right"==b)a.attributes.align=b}delete a.styles["float"]},splitBorderShorthand:function(a){function b(d){a.styles["border-top-width"]=c[d[0]];a.styles["border-right-width"]=c[d[1]];a.styles["border-bottom-width"]=c[d[2]];a.styles["border-left-width"]=c[d[3]]}if(a.styles.border){var c=a.styles.border.match(/([\.\d]+\w+)/g)||["0px"];switch(c.length){case 1:a.styles["border-width"]= -c[0];break;case 2:b([0,1,0,1]);break;case 3:b([0,1,2,1]);break;case 4:b([0,1,2,3])}a.styles["border-style"]=a.styles["border-style"]||(a.styles.border.match(/(none|hidden|dotted|dashed|solid|double|groove|ridge|inset|outset|initial|inherit)/)||[])[0];a.styles["border-style"]||delete a.styles["border-style"];delete a.styles.border}},listTypeToStyle:function(a){if(a.attributes.type)switch(a.attributes.type){case "a":a.styles["list-style-type"]="lower-alpha";break;case "A":a.styles["list-style-type"]= -"upper-alpha";break;case "i":a.styles["list-style-type"]="lower-roman";break;case "I":a.styles["list-style-type"]="upper-roman";break;case "1":a.styles["list-style-type"]="decimal";break;default:a.styles["list-style-type"]=a.attributes.type}},splitMarginShorthand:function(a){function b(d){a.styles["margin-top"]=c[d[0]];a.styles["margin-right"]=c[d[1]];a.styles["margin-bottom"]=c[d[2]];a.styles["margin-left"]=c[d[3]]}if(a.styles.margin){var c=a.styles.margin.match(/(\-?[\.\d]+\w+)/g)||["0px"];switch(c.length){case 1:b([0, -0,0,0]);break;case 2:b([0,1,0,1]);break;case 3:b([0,1,2,1]);break;case 4:b([0,1,2,3])}delete a.styles.margin}},matchesStyle:J,transform:function(a,b){if("string"==typeof b)a.name=b;else{var c=b.getDefinition(),d=c.styles,e=c.attributes,f,t,l,v;a.name=c.element;for(f in e)if("class"==f)for(c=a.classes.join("|"),l=e[f].split(/\s+/);v=l.pop();)-1==c.indexOf(v)&&a.classes.push(v);else a.attributes[f]=e[f];for(t in d)a.styles[t]=d[t]}}}})(); -(function(){CKEDITOR.focusManager=function(a){if(a.focusManager)return a.focusManager;this.hasFocus=!1;this.currentActive=null;this._={editor:a};return this};CKEDITOR.focusManager._={blurDelay:200};CKEDITOR.focusManager.prototype={focus:function(a){this._.timer&&clearTimeout(this._.timer);a&&(this.currentActive=a);this.hasFocus||this._.locked||((a=CKEDITOR.currentInstance)&&a.focusManager.blur(1),this.hasFocus=!0,(a=this._.editor.container)&&a.addClass("cke_focus"),this._.editor.fire("focus"))},lock:function(){this._.locked= -1},unlock:function(){delete this._.locked},blur:function(a){function d(){if(this.hasFocus){this.hasFocus=!1;var a=this._.editor.container;a&&a.removeClass("cke_focus");this._.editor.fire("blur")}}if(!this._.locked){this._.timer&&clearTimeout(this._.timer);var b=CKEDITOR.focusManager._.blurDelay;a||!b?d.call(this):this._.timer=CKEDITOR.tools.setTimeout(function(){delete this._.timer;d.call(this)},b,this)}},add:function(a,d){var b=a.getCustomData("focusmanager");if(!b||b!=this){b&&b.remove(a);var b= -"focus",c="blur";d&&(CKEDITOR.env.ie?(b="focusin",c="focusout"):CKEDITOR.event.useCapture=1);var e={blur:function(){a.equals(this.currentActive)&&this.blur()},focus:function(){this.focus(a)}};a.on(b,e.focus,this);a.on(c,e.blur,this);d&&(CKEDITOR.event.useCapture=0);a.setCustomData("focusmanager",this);a.setCustomData("focusmanager_handlers",e)}},remove:function(a){a.removeCustomData("focusmanager");var d=a.removeCustomData("focusmanager_handlers");a.removeListener("blur",d.blur);a.removeListener("focus", -d.focus)}}})();CKEDITOR.keystrokeHandler=function(a){if(a.keystrokeHandler)return a.keystrokeHandler;this.keystrokes={};this.blockedKeystrokes={};this._={editor:a};return this}; -(function(){var a,d=function(b){b=b.data;var d=b.getKeystroke(),g=this.keystrokes[d],h=this._.editor;a=!1===h.fire("key",{keyCode:d,domEvent:b});a||(g&&(a=!1!==h.execCommand(g,{from:"keystrokeHandler"})),a||(a=!!this.blockedKeystrokes[d]));a&&b.preventDefault(!0);return!a},b=function(b){a&&(a=!1,b.data.preventDefault(!0))};CKEDITOR.keystrokeHandler.prototype={attach:function(a){a.on("keydown",d,this);if(CKEDITOR.env.gecko&&CKEDITOR.env.mac)a.on("keypress",b,this)}}})(); -(function(){CKEDITOR.lang={languages:{af:1,ar:1,az:1,bg:1,bn:1,bs:1,ca:1,cs:1,cy:1,da:1,de:1,"de-ch":1,el:1,"en-au":1,"en-ca":1,"en-gb":1,en:1,eo:1,es:1,"es-mx":1,et:1,eu:1,fa:1,fi:1,fo:1,"fr-ca":1,fr:1,gl:1,gu:1,he:1,hi:1,hr:1,hu:1,id:1,is:1,it:1,ja:1,ka:1,km:1,ko:1,ku:1,lt:1,lv:1,mk:1,mn:1,ms:1,nb:1,nl:1,no:1,oc:1,pl:1,"pt-br":1,pt:1,ro:1,ru:1,si:1,sk:1,sl:1,sq:1,"sr-latn":1,sr:1,sv:1,th:1,tr:1,tt:1,ug:1,uk:1,vi:1,"zh-cn":1,zh:1},rtl:{ar:1,fa:1,he:1,ku:1,ug:1},load:function(a,d,b){a&&CKEDITOR.lang.languages[a]|| -(a=this.detect(d,a));var c=this;d=function(){c[a].dir=c.rtl[a]?"rtl":"ltr";b(a,c[a])};this[a]?d():CKEDITOR.scriptLoader.load(CKEDITOR.getUrl("lang/"+a+".js"),d,this)},detect:function(a,d){var b=this.languages;d=d||navigator.userLanguage||navigator.language||a;var c=d.toLowerCase().match(/([a-z]+)(?:-([a-z]+))?/),e=c[1],c=c[2];b[e+"-"+c]?e=e+"-"+c:b[e]||(e=null);CKEDITOR.lang.detect=e?function(){return e}:function(a){return a};return e||a}}})(); -CKEDITOR.scriptLoader=function(){var a={},d={};return{load:function(b,c,e,g){var h="string"==typeof b;h&&(b=[b]);e||(e=CKEDITOR);var k=b.length,n=[],q=[],f=function(a){c&&(h?c.call(e,a):c.call(e,n,q))};if(0===k)f(!0);else{var D=function(a,b){(b?n:q).push(a);0>=--k&&(g&&CKEDITOR.document.getDocumentElement().removeStyle("cursor"),f(b))},w=function(b,c){a[b]=1;var e=d[b];delete d[b];for(var f=0;f<e.length;f++)e[f](b,c)},A=function(b){if(a[b])D(b,!0);else{var e=d[b]||(d[b]=[]);e.push(D);if(!(1<e.length)){var f= -new CKEDITOR.dom.element("script");f.setAttributes({type:"text/javascript",src:b});c&&(CKEDITOR.env.ie&&(8>=CKEDITOR.env.version||CKEDITOR.env.ie9Compat)?f.$.onreadystatechange=function(){if("loaded"==f.$.readyState||"complete"==f.$.readyState)f.$.onreadystatechange=null,w(b,!0)}:(f.$.onload=function(){setTimeout(function(){w(b,!0)},0)},f.$.onerror=function(){w(b,!1)}));f.appendTo(CKEDITOR.document.getHead())}}};g&&CKEDITOR.document.getDocumentElement().setStyle("cursor","wait");for(var G=0;G<k;G++)A(b[G])}}, -queue:function(){function a(){var b;(b=c[0])&&this.load(b.scriptUrl,b.callback,CKEDITOR,0)}var c=[];return function(d,g){var h=this;c.push({scriptUrl:d,callback:function(){g&&g.apply(this,arguments);c.shift();a.call(h)}});1==c.length&&a.call(this)}}()}}();CKEDITOR.resourceManager=function(a,d){this.basePath=a;this.fileName=d;this.registered={};this.loaded={};this.externals={};this._={waitingList:{}}}; -CKEDITOR.resourceManager.prototype={add:function(a,d){if(this.registered[a])throw Error('[CKEDITOR.resourceManager.add] The resource name "'+a+'" is already registered.');var b=this.registered[a]=d||{};b.name=a;b.path=this.getPath(a);CKEDITOR.fire(a+CKEDITOR.tools.capitalize(this.fileName)+"Ready",b);return this.get(a)},get:function(a){return this.registered[a]||null},getPath:function(a){var d=this.externals[a];return CKEDITOR.getUrl(d&&d.dir||this.basePath+a+"/")},getFilePath:function(a){var d=this.externals[a]; -return CKEDITOR.getUrl(this.getPath(a)+(d?d.file:this.fileName+".js"))},addExternal:function(a,d,b){a=a.split(",");for(var c=0;c<a.length;c++){var e=a[c];b||(d=d.replace(/[^\/]+$/,function(a){b=a;return""}));this.externals[e]={dir:d,file:b||this.fileName+".js"}}},load:function(a,d,b){CKEDITOR.tools.isArray(a)||(a=a?[a]:[]);for(var c=this.loaded,e=this.registered,g=[],h={},k={},n=0;n<a.length;n++){var q=a[n];if(q)if(c[q]||e[q])k[q]=this.get(q);else{var f=this.getFilePath(q);g.push(f);f in h||(h[f]= -[]);h[f].push(q)}}CKEDITOR.scriptLoader.load(g,function(a,e){if(e.length)throw Error('[CKEDITOR.resourceManager.load] Resource name "'+h[e[0]].join(",")+'" was not found at "'+e[0]+'".');for(var f=0;f<a.length;f++)for(var g=h[a[f]],n=0;n<g.length;n++){var m=g[n];k[m]=this.get(m);c[m]=1}d.call(b,k)},this)}};CKEDITOR.plugins=new CKEDITOR.resourceManager("plugins/","plugin"); -CKEDITOR.plugins.load=CKEDITOR.tools.override(CKEDITOR.plugins.load,function(a){var d={};return function(b,c,e){var g={},h=function(b){a.call(this,b,function(a){CKEDITOR.tools.extend(g,a);var b=[],f;for(f in a){var k=a[f],w=k&&k.requires;if(!d[f]){if(k.icons)for(var A=k.icons.split(","),G=A.length;G--;)CKEDITOR.skin.addIcon(A[G],k.path+"icons/"+(CKEDITOR.env.hidpi&&k.hidpi?"hidpi/":"")+A[G]+".png");d[f]=1}if(w)for(w.split&&(w=w.split(",")),k=0;k<w.length;k++)g[w[k]]||b.push(w[k])}if(b.length)h.call(this, -b);else{for(f in g)k=g[f],k.onLoad&&!k.onLoad._called&&(!1===k.onLoad()&&delete g[f],k.onLoad._called=1);c&&c.call(e||window,g)}},this)};h.call(this,b)}});CKEDITOR.plugins.setLang=function(a,d,b){var c=this.get(a);a=c.langEntries||(c.langEntries={});c=c.lang||(c.lang=[]);c.split&&(c=c.split(","));-1==CKEDITOR.tools.indexOf(c,d)&&c.push(d);a[d]=b};CKEDITOR.ui=function(a){if(a.ui)return a.ui;this.items={};this.instances={};this.editor=a;this._={handlers:{}};return this}; -CKEDITOR.ui.prototype={add:function(a,d,b){b.name=a.toLowerCase();var c=this.items[a]={type:d,command:b.command||null,args:Array.prototype.slice.call(arguments,2)};CKEDITOR.tools.extend(c,b)},get:function(a){return this.instances[a]},create:function(a){var d=this.items[a],b=d&&this._.handlers[d.type],c=d&&d.command&&this.editor.getCommand(d.command),b=b&&b.create.apply(this,d.args);this.instances[a]=b;c&&c.uiItems.push(b);b&&!b.type&&(b.type=d.type);return b},addHandler:function(a,d){this._.handlers[a]= -d},space:function(a){return CKEDITOR.document.getById(this.spaceId(a))},spaceId:function(a){return this.editor.id+"_"+a}};CKEDITOR.event.implementOn(CKEDITOR.ui); -(function(){function a(a,e,f){CKEDITOR.event.call(this);a=a&&CKEDITOR.tools.clone(a);if(void 0!==e){if(!(e instanceof CKEDITOR.dom.element))throw Error("Expect element of type CKEDITOR.dom.element.");if(!f)throw Error("One of the element modes must be specified.");if(CKEDITOR.env.ie&&CKEDITOR.env.quirks&&f==CKEDITOR.ELEMENT_MODE_INLINE)throw Error("Inline element mode is not supported on IE quirks.");if(!b(e,f))throw Error('The specified element mode is not supported on element: "'+e.getName()+'".'); -this.element=e;this.elementMode=f;this.name=this.elementMode!=CKEDITOR.ELEMENT_MODE_APPENDTO&&(e.getId()||e.getNameAtt())}else this.elementMode=CKEDITOR.ELEMENT_MODE_NONE;this._={};this.commands={};this.templates={};this.name=this.name||d();this.id=CKEDITOR.tools.getNextId();this.status="unloaded";this.config=CKEDITOR.tools.prototypedCopy(CKEDITOR.config);this.ui=new CKEDITOR.ui(this);this.focusManager=new CKEDITOR.focusManager(this);this.keystrokeHandler=new CKEDITOR.keystrokeHandler(this);this.on("readOnly", -c);this.on("selectionChange",function(a){g(this,a.data.path)});this.on("activeFilterChange",function(){g(this,this.elementPath(),!0)});this.on("mode",c);this.on("instanceReady",function(){this.config.startupFocus&&this.focus()});CKEDITOR.fire("instanceCreated",null,this);CKEDITOR.add(this);CKEDITOR.tools.setTimeout(function(){"destroyed"!==this.status?k(this,a):CKEDITOR.warn("editor-incorrect-destroy")},0,this)}function d(){do var a="editor"+ ++G;while(CKEDITOR.instances[a]);return a}function b(a, -b){return b==CKEDITOR.ELEMENT_MODE_INLINE?a.is(CKEDITOR.dtd.$editable)||a.is("textarea"):b==CKEDITOR.ELEMENT_MODE_REPLACE?!a.is(CKEDITOR.dtd.$nonBodyContent):1}function c(){var a=this.commands,b;for(b in a)e(this,a[b])}function e(a,b){b[b.startDisabled?"disable":a.readOnly&&!b.readOnly?"disable":b.modes[a.mode]?"enable":"disable"]()}function g(a,b,c){if(b){var d,e,f=a.commands;for(e in f)d=f[e],(c||d.contextSensitive)&&d.refresh(a,b)}}function h(a){var b=a.config.customConfig;if(!b)return!1;var b= -CKEDITOR.getUrl(b),c=x[b]||(x[b]={});c.fn?(c.fn.call(a,a.config),CKEDITOR.getUrl(a.config.customConfig)!=b&&h(a)||a.fireOnce("customConfigLoaded")):CKEDITOR.scriptLoader.queue(b,function(){c.fn=CKEDITOR.editorConfig?CKEDITOR.editorConfig:function(){};h(a)});return!0}function k(a,b){a.on("customConfigLoaded",function(){if(b){if(b.on)for(var c in b.on)a.on(c,b.on[c]);CKEDITOR.tools.extend(a.config,b,!0);delete a.config.on}c=a.config;a.readOnly=c.readOnly?!0:a.elementMode==CKEDITOR.ELEMENT_MODE_INLINE? -a.element.is("textarea")?a.element.hasAttribute("disabled")||a.element.hasAttribute("readonly"):a.element.isReadOnly():a.elementMode==CKEDITOR.ELEMENT_MODE_REPLACE?a.element.hasAttribute("disabled")||a.element.hasAttribute("readonly"):!1;a.blockless=a.elementMode==CKEDITOR.ELEMENT_MODE_INLINE?!(a.element.is("textarea")||CKEDITOR.dtd[a.element.getName()].p):!1;a.tabIndex=c.tabIndex||a.element&&a.element.getAttribute("tabindex")||0;a.activeEnterMode=a.enterMode=a.blockless?CKEDITOR.ENTER_BR:c.enterMode; -a.activeShiftEnterMode=a.shiftEnterMode=a.blockless?CKEDITOR.ENTER_BR:c.shiftEnterMode;c.skin&&(CKEDITOR.skinName=c.skin);a.fireOnce("configLoaded");a.dataProcessor=new CKEDITOR.htmlDataProcessor(a);a.filter=a.activeFilter=new CKEDITOR.filter(a);n(a)});b&&null!=b.customConfig&&(a.config.customConfig=b.customConfig);h(a)||a.fireOnce("customConfigLoaded")}function n(a){CKEDITOR.skin.loadPart("editor",function(){q(a)})}function q(a){CKEDITOR.lang.load(a.config.language,a.config.defaultLanguage,function(b, -c){var d=a.config.title;a.langCode=b;a.lang=CKEDITOR.tools.prototypedCopy(c);a.title="string"==typeof d||!1===d?d:[a.lang.editor,a.name].join(", ");a.config.contentsLangDirection||(a.config.contentsLangDirection=a.elementMode==CKEDITOR.ELEMENT_MODE_INLINE?a.element.getDirection(1):a.lang.dir);a.fire("langLoaded");f(a)})}function f(a){a.getStylesSet(function(b){a.once("loaded",function(){a.fire("stylesSet",{styles:b})},null,null,1);D(a)})}function D(a){var b=a.config,c=b.plugins,d=b.extraPlugins,e= -b.removePlugins;if(d)var f=new RegExp("(?:^|,)(?:"+d.replace(/\s*,\s*/g,"|")+")(?\x3d,|$)","g"),c=c.replace(f,""),c=c+(","+d);if(e)var g=new RegExp("(?:^|,)(?:"+e.replace(/\s*,\s*/g,"|")+")(?\x3d,|$)","g"),c=c.replace(g,"");CKEDITOR.env.air&&(c+=",adobeair");CKEDITOR.plugins.load(c.split(","),function(c){var d=[],e=[],f=[];a.plugins=c;for(var l in c){var r=c[l],k=r.lang,h=null,O=r.requires,p;CKEDITOR.tools.isArray(O)&&(O=O.join(","));if(O&&(p=O.match(g)))for(;O=p.pop();)CKEDITOR.error("editor-plugin-required", -{plugin:O.replace(",",""),requiredBy:l});k&&!a.lang[l]&&(k.split&&(k=k.split(",")),0<=CKEDITOR.tools.indexOf(k,a.langCode)?h=a.langCode:(h=a.langCode.replace(/-.*/,""),h=h!=a.langCode&&0<=CKEDITOR.tools.indexOf(k,h)?h:0<=CKEDITOR.tools.indexOf(k,"en")?"en":k[0]),r.langEntries&&r.langEntries[h]?(a.lang[l]=r.langEntries[h],h=null):f.push(CKEDITOR.getUrl(r.path+"lang/"+h+".js")));e.push(h);d.push(r)}CKEDITOR.scriptLoader.load(f,function(){for(var c=["beforeInit","init","afterInit"],f=0;f<c.length;f++)for(var l= -0;l<d.length;l++){var v=d[l];0===f&&e[l]&&v.lang&&v.langEntries&&(a.lang[v.name]=v.langEntries[e[l]]);if(v[c[f]])v[c[f]](a)}a.fireOnce("pluginsLoaded");b.keystrokes&&a.setKeystroke(a.config.keystrokes);for(l=0;l<a.config.blockedKeystrokes.length;l++)a.keystrokeHandler.blockedKeystrokes[a.config.blockedKeystrokes[l]]=1;a.status="loaded";a.fireOnce("loaded");CKEDITOR.fire("instanceLoaded",null,a)})})}function w(){var a=this.element;if(a&&this.elementMode!=CKEDITOR.ELEMENT_MODE_APPENDTO){var b=this.getData(); -this.config.htmlEncodeOutput&&(b=CKEDITOR.tools.htmlEncode(b));a.is("textarea")?a.setValue(b):a.setHtml(b);return!0}return!1}function A(a,b){function c(a){var b=a.startContainer,d=a.endContainer;return b.is&&(b.is("tr")||b.is("td")&&b.equals(d)&&a.endOffset===b.getChildCount())?!0:!1}function d(a){var b=a.startContainer;return b.is("tr")?a.cloneContents():b.clone(!0)}for(var e=new CKEDITOR.dom.documentFragment,f,g,k,h=0;h<a.length;h++){var u=a[h],y=u.startContainer.getAscendant("tr",!0);c(u)?(f|| -(f=y.getAscendant("table").clone(),f.append(y.getAscendant({thead:1,tbody:1,tfoot:1}).clone()),e.append(f),f=f.findOne("thead, tbody, tfoot")),g&&g.equals(y)||(g=y,k=y.clone(),f.append(k)),k.append(d(u))):e.append(u.cloneContents())}return f?e:b.getHtmlFromRange(a[0])}a.prototype=CKEDITOR.editor.prototype;CKEDITOR.editor=a;var G=0,x={};CKEDITOR.tools.extend(CKEDITOR.editor.prototype,{addCommand:function(a,b){b.name=a.toLowerCase();var c=new CKEDITOR.command(this,b);this.mode&&e(this,c);return this.commands[a]= -c},_attachToForm:function(){function a(b){c.updateElement();c._.required&&!d.getValue()&&!1===c.fire("required")&&b.data.preventDefault()}function b(a){return!!(a&&a.call&&a.apply)}var c=this,d=c.element,e=new CKEDITOR.dom.element(d.$.form);d.is("textarea")&&e&&(e.on("submit",a),b(e.$.submit)&&(e.$.submit=CKEDITOR.tools.override(e.$.submit,function(b){return function(){a();b.apply?b.apply(this):b()}})),c.on("destroy",function(){e.removeListener("submit",a)}))},destroy:function(a){this.fire("beforeDestroy"); -!a&&w.call(this);this.editable(null);this.filter&&(this.filter.destroy(),delete this.filter);delete this.activeFilter;this.status="destroyed";this.fire("destroy");this.removeAllListeners();CKEDITOR.remove(this);CKEDITOR.fire("instanceDestroyed",null,this)},elementPath:function(a){if(!a){a=this.getSelection();if(!a)return null;a=a.getStartElement()}return a?new CKEDITOR.dom.elementPath(a,this.editable()):null},createRange:function(){var a=this.editable();return a?new CKEDITOR.dom.range(a):null},execCommand:function(a, -b){var c=this.getCommand(a),d={name:a,commandData:b||{},command:c};return c&&c.state!=CKEDITOR.TRISTATE_DISABLED&&!1!==this.fire("beforeCommandExec",d)&&(d.returnValue=c.exec(d.commandData),!c.async&&!1!==this.fire("afterCommandExec",d))?d.returnValue:!1},getCommand:function(a){return this.commands[a]},getData:function(a){!a&&this.fire("beforeGetData");var b=this._.data;"string"!=typeof b&&(b=(b=this.element)&&this.elementMode==CKEDITOR.ELEMENT_MODE_REPLACE?b.is("textarea")?b.getValue():b.getHtml(): -"");b={dataValue:b};!a&&this.fire("getData",b);return b.dataValue},getSnapshot:function(){var a=this.fire("getSnapshot");"string"!=typeof a&&(a=(a=this.element)&&this.elementMode==CKEDITOR.ELEMENT_MODE_REPLACE?a.is("textarea")?a.getValue():a.getHtml():"");return a},loadSnapshot:function(a){this.fire("loadSnapshot",a)},setData:function(a,b,c){var d=!0,e=b;b&&"object"==typeof b&&(c=b.internal,e=b.callback,d=!b.noSnapshot);!c&&d&&this.fire("saveSnapshot");if(e||!c)this.once("dataReady",function(a){!c&& -d&&this.fire("saveSnapshot");e&&e.call(a.editor)});a={dataValue:a};!c&&this.fire("setData",a);this._.data=a.dataValue;!c&&this.fire("afterSetData",a)},setReadOnly:function(a){a=null==a||a;this.readOnly!=a&&(this.readOnly=a,this.keystrokeHandler.blockedKeystrokes[8]=+a,this.editable().setReadOnly(a),this.fire("readOnly"))},insertHtml:function(a,b,c){this.fire("insertHtml",{dataValue:a,mode:b,range:c})},insertText:function(a){this.fire("insertText",a)},insertElement:function(a){this.fire("insertElement", -a)},getSelectedHtml:function(a){var b=this.editable(),c=this.getSelection(),c=c&&c.getRanges();if(!b||!c||0===c.length)return null;b=A(c,b);return a?b.getHtml():b},extractSelectedHtml:function(a,b){var c=this.editable(),d=this.getSelection().getRanges(),e=new CKEDITOR.dom.documentFragment,f;if(!c||0===d.length)return null;for(f=0;f<d.length;f++)e.append(c.extractHtmlFromRange(d[f],b));b||this.getSelection().selectRanges([d[0]]);return a?e.getHtml():e},focus:function(){this.fire("beforeFocus")},checkDirty:function(){return"ready"== -this.status&&this._.previousValue!==this.getSnapshot()},resetDirty:function(){this._.previousValue=this.getSnapshot()},updateElement:function(){return w.call(this)},setKeystroke:function(){for(var a=this.keystrokeHandler.keystrokes,b=CKEDITOR.tools.isArray(arguments[0])?arguments[0]:[[].slice.call(arguments,0)],c,d,e=b.length;e--;)c=b[e],d=0,CKEDITOR.tools.isArray(c)&&(d=c[1],c=c[0]),d?a[c]=d:delete a[c]},getCommandKeystroke:function(a){if(a="string"===typeof a?this.getCommand(a):a){var b=CKEDITOR.tools.object.findKey(this.commands, -a),c=this.keystrokeHandler.keystrokes,d;if(a.fakeKeystroke)return a.fakeKeystroke;for(d in c)if(c.hasOwnProperty(d)&&c[d]==b)return d}return null},addFeature:function(a){return this.filter.addFeature(a)},setActiveFilter:function(a){a||(a=this.filter);this.activeFilter!==a&&(this.activeFilter=a,this.fire("activeFilterChange"),a===this.filter?this.setActiveEnterMode(null,null):this.setActiveEnterMode(a.getAllowedEnterMode(this.enterMode),a.getAllowedEnterMode(this.shiftEnterMode,!0)))},setActiveEnterMode:function(a, -b){a=a?this.blockless?CKEDITOR.ENTER_BR:a:this.enterMode;b=b?this.blockless?CKEDITOR.ENTER_BR:b:this.shiftEnterMode;if(this.activeEnterMode!=a||this.activeShiftEnterMode!=b)this.activeEnterMode=a,this.activeShiftEnterMode=b,this.fire("activeEnterModeChange")},showNotification:function(a){alert(a)}})})();CKEDITOR.ELEMENT_MODE_NONE=0;CKEDITOR.ELEMENT_MODE_REPLACE=1;CKEDITOR.ELEMENT_MODE_APPENDTO=2;CKEDITOR.ELEMENT_MODE_INLINE=3;CKEDITOR.htmlParser=function(){this._={htmlPartsRegex:/<(?:(?:\/([^>]+)>)|(?:!--([\S|\s]*?)--\x3e)|(?:([^\/\s>]+)((?:\s+[\w\-:.]+(?:\s*=\s*?(?:(?:"[^"]*")|(?:'[^']*')|[^\s"'\/>]+))?)*)[\S\s]*?(\/?)>))/g}}; -(function(){var a=/([\w\-:.]+)(?:(?:\s*=\s*(?:(?:"([^"]*)")|(?:'([^']*)')|([^\s>]+)))|(?=\s|$))/g,d={checked:1,compact:1,declare:1,defer:1,disabled:1,ismap:1,multiple:1,nohref:1,noresize:1,noshade:1,nowrap:1,readonly:1,selected:1};CKEDITOR.htmlParser.prototype={onTagOpen:function(){},onTagClose:function(){},onText:function(){},onCDATA:function(){},onComment:function(){},parse:function(b){for(var c,e,g=0,h;c=this._.htmlPartsRegex.exec(b);){e=c.index;if(e>g)if(g=b.substring(g,e),h)h.push(g);else this.onText(g); -g=this._.htmlPartsRegex.lastIndex;if(e=c[1])if(e=e.toLowerCase(),h&&CKEDITOR.dtd.$cdata[e]&&(this.onCDATA(h.join("")),h=null),!h){this.onTagClose(e);continue}if(h)h.push(c[0]);else if(e=c[3]){if(e=e.toLowerCase(),!/="/.test(e)){var k={},n,q=c[4];c=!!c[5];if(q)for(;n=a.exec(q);){var f=n[1].toLowerCase();n=n[2]||n[3]||n[4]||"";k[f]=!n&&d[f]?f:CKEDITOR.tools.htmlDecodeAttr(n)}this.onTagOpen(e,k,c);!h&&CKEDITOR.dtd.$cdata[e]&&(h=[])}}else if(e=c[2])this.onComment(e)}if(b.length>g)this.onText(b.substring(g, -b.length))}}})(); -CKEDITOR.htmlParser.basicWriter=CKEDITOR.tools.createClass({$:function(){this._={output:[]}},proto:{openTag:function(a){this._.output.push("\x3c",a)},openTagClose:function(a,d){d?this._.output.push(" /\x3e"):this._.output.push("\x3e")},attribute:function(a,d){"string"==typeof d&&(d=CKEDITOR.tools.htmlEncodeAttr(d));this._.output.push(" ",a,'\x3d"',d,'"')},closeTag:function(a){this._.output.push("\x3c/",a,"\x3e")},text:function(a){this._.output.push(a)},comment:function(a){this._.output.push("\x3c!--",a, -"--\x3e")},write:function(a){this._.output.push(a)},reset:function(){this._.output=[];this._.indent=!1},getHtml:function(a){var d=this._.output.join("");a&&this.reset();return d}}});"use strict"; -(function(){CKEDITOR.htmlParser.node=function(){};CKEDITOR.htmlParser.node.prototype={remove:function(){var a=this.parent.children,d=CKEDITOR.tools.indexOf(a,this),b=this.previous,c=this.next;b&&(b.next=c);c&&(c.previous=b);a.splice(d,1);this.parent=null},replaceWith:function(a){var d=this.parent.children,b=CKEDITOR.tools.indexOf(d,this),c=a.previous=this.previous,e=a.next=this.next;c&&(c.next=a);e&&(e.previous=a);d[b]=a;a.parent=this.parent;this.parent=null},insertAfter:function(a){var d=a.parent.children, -b=CKEDITOR.tools.indexOf(d,a),c=a.next;d.splice(b+1,0,this);this.next=a.next;this.previous=a;a.next=this;c&&(c.previous=this);this.parent=a.parent},insertBefore:function(a){var d=a.parent.children,b=CKEDITOR.tools.indexOf(d,a);d.splice(b,0,this);this.next=a;(this.previous=a.previous)&&(a.previous.next=this);a.previous=this;this.parent=a.parent},getAscendant:function(a){var d="function"==typeof a?a:"string"==typeof a?function(b){return b.name==a}:function(b){return b.name in a},b=this.parent;for(;b&& -b.type==CKEDITOR.NODE_ELEMENT;){if(d(b))return b;b=b.parent}return null},wrapWith:function(a){this.replaceWith(a);a.add(this);return a},getIndex:function(){return CKEDITOR.tools.indexOf(this.parent.children,this)},getFilterContext:function(a){return a||{}}}})();"use strict";CKEDITOR.htmlParser.comment=function(a){this.value=a;this._={isBlockLike:!1}}; -CKEDITOR.htmlParser.comment.prototype=CKEDITOR.tools.extend(new CKEDITOR.htmlParser.node,{type:CKEDITOR.NODE_COMMENT,filter:function(a,d){var b=this.value;if(!(b=a.onComment(d,b,this)))return this.remove(),!1;if("string"!=typeof b)return this.replaceWith(b),!1;this.value=b;return!0},writeHtml:function(a,d){d&&this.filter(d);a.comment(this.value)}});"use strict"; -(function(){CKEDITOR.htmlParser.text=function(a){this.value=a;this._={isBlockLike:!1}};CKEDITOR.htmlParser.text.prototype=CKEDITOR.tools.extend(new CKEDITOR.htmlParser.node,{type:CKEDITOR.NODE_TEXT,filter:function(a,d){if(!(this.value=a.onText(d,this.value,this)))return this.remove(),!1},writeHtml:function(a,d){d&&this.filter(d);a.text(this.value)}})})();"use strict"; -(function(){CKEDITOR.htmlParser.cdata=function(a){this.value=a};CKEDITOR.htmlParser.cdata.prototype=CKEDITOR.tools.extend(new CKEDITOR.htmlParser.node,{type:CKEDITOR.NODE_TEXT,filter:function(){},writeHtml:function(a){a.write(this.value)}})})();"use strict";CKEDITOR.htmlParser.fragment=function(){this.children=[];this.parent=null;this._={isBlockLike:!0,hasInlineStarted:!1}}; -(function(){function a(a){return a.attributes["data-cke-survive"]?!1:"a"==a.name&&a.attributes.href||CKEDITOR.dtd.$removeEmpty[a.name]}var d=CKEDITOR.tools.extend({table:1,ul:1,ol:1,dl:1},CKEDITOR.dtd.table,CKEDITOR.dtd.ul,CKEDITOR.dtd.ol,CKEDITOR.dtd.dl),b={ol:1,ul:1},c=CKEDITOR.tools.extend({},{html:1},CKEDITOR.dtd.html,CKEDITOR.dtd.body,CKEDITOR.dtd.head,{style:1,script:1}),e={ul:"li",ol:"li",dl:"dd",table:"tbody",tbody:"tr",thead:"tr",tfoot:"tr",tr:"td"};CKEDITOR.htmlParser.fragment.fromHtml= -function(g,h,k){function n(a){var b;if(0<m.length)for(var c=0;c<m.length;c++){var d=m[c],e=d.name,f=CKEDITOR.dtd[e],l=z.name&&CKEDITOR.dtd[z.name];l&&!l[e]||a&&f&&!f[a]&&CKEDITOR.dtd[a]?e==z.name&&(D(z,z.parent,1),c--):(b||(q(),b=1),d=d.clone(),d.parent=z,z=d,m.splice(c,1),c--)}}function q(){for(;K.length;)D(K.shift(),z)}function f(a){if(a._.isBlockLike&&"pre"!=a.name&&"textarea"!=a.name){var b=a.children.length,c=a.children[b-1],d;c&&c.type==CKEDITOR.NODE_TEXT&&((d=CKEDITOR.tools.rtrim(c.value))? -c.value=d:a.children.length=b-1)}}function D(b,c,d){c=c||z||x;var e=z;void 0===b.previous&&(w(c,b)&&(z=c,G.onTagOpen(k,{}),b.returnPoint=c=z),f(b),a(b)&&!b.children.length||c.add(b),"pre"==b.name&&(l=!1),"textarea"==b.name&&(I=!1));b.returnPoint?(z=b.returnPoint,delete b.returnPoint):z=d?c:e}function w(a,b){if((a==x||"body"==a.name)&&k&&(!a.name||CKEDITOR.dtd[a.name][k])){var c,d;return(c=b.attributes&&(d=b.attributes["data-cke-real-element-type"])?d:b.name)&&c in CKEDITOR.dtd.$inline&&!(c in CKEDITOR.dtd.head)&& -!b.isOrphan||b.type==CKEDITOR.NODE_TEXT}}function A(a,b){return a in CKEDITOR.dtd.$listItem||a in CKEDITOR.dtd.$tableContent?a==b||"dt"==a&&"dd"==b||"dd"==a&&"dt"==b:!1}var G=new CKEDITOR.htmlParser,x=h instanceof CKEDITOR.htmlParser.element?h:"string"==typeof h?new CKEDITOR.htmlParser.element(h):new CKEDITOR.htmlParser.fragment,m=[],K=[],z=x,I="textarea"==x.name,l="pre"==x.name;G.onTagOpen=function(e,f,g,k){f=new CKEDITOR.htmlParser.element(e,f);f.isUnknown&&g&&(f.isEmpty=!0);f.isOptionalClose=k; -if(a(f))m.push(f);else{if("pre"==e)l=!0;else{if("br"==e&&l){z.add(new CKEDITOR.htmlParser.text("\n"));return}"textarea"==e&&(I=!0)}if("br"==e)K.push(f);else{for(;!(k=(g=z.name)?CKEDITOR.dtd[g]||(z._.isBlockLike?CKEDITOR.dtd.div:CKEDITOR.dtd.span):c,f.isUnknown||z.isUnknown||k[e]);)if(z.isOptionalClose)G.onTagClose(g);else if(e in b&&g in b)g=z.children,(g=g[g.length-1])&&"li"==g.name||D(g=new CKEDITOR.htmlParser.element("li"),z),!f.returnPoint&&(f.returnPoint=z),z=g;else if(e in CKEDITOR.dtd.$listItem&& -!A(e,g))G.onTagOpen("li"==e?"ul":"dl",{},0,1);else if(g in d&&!A(e,g))!f.returnPoint&&(f.returnPoint=z),z=z.parent;else if(g in CKEDITOR.dtd.$inline&&m.unshift(z),z.parent)D(z,z.parent,1);else{f.isOrphan=1;break}n(e);q();f.parent=z;f.isEmpty?D(f):z=f}}};G.onTagClose=function(a){for(var b=m.length-1;0<=b;b--)if(a==m[b].name){m.splice(b,1);return}for(var c=[],d=[],e=z;e!=x&&e.name!=a;)e._.isBlockLike||d.unshift(e),c.push(e),e=e.returnPoint||e.parent;if(e!=x){for(b=0;b<c.length;b++){var f=c[b];D(f,f.parent)}z= -e;e._.isBlockLike&&q();D(e,e.parent);e==z&&(z=z.parent);m=m.concat(d)}"body"==a&&(k=!1)};G.onText=function(a){if(!(z._.hasInlineStarted&&!K.length||l||I)&&(a=CKEDITOR.tools.ltrim(a),0===a.length))return;var b=z.name,f=b?CKEDITOR.dtd[b]||(z._.isBlockLike?CKEDITOR.dtd.div:CKEDITOR.dtd.span):c;if(!I&&!f["#"]&&b in d)G.onTagOpen(e[b]||""),G.onText(a);else{q();n();l||I||(a=a.replace(/[\t\r\n ]{2,}|[\t\r\n]/g," "));a=new CKEDITOR.htmlParser.text(a);if(w(z,a))this.onTagOpen(k,{},0,1);z.add(a)}};G.onCDATA= -function(a){z.add(new CKEDITOR.htmlParser.cdata(a))};G.onComment=function(a){q();n();z.add(new CKEDITOR.htmlParser.comment(a))};G.parse(g);for(q();z!=x;)D(z,z.parent,1);f(x);return x};CKEDITOR.htmlParser.fragment.prototype={type:CKEDITOR.NODE_DOCUMENT_FRAGMENT,add:function(a,b){isNaN(b)&&(b=this.children.length);var c=0<b?this.children[b-1]:null;if(c){if(a._.isBlockLike&&c.type==CKEDITOR.NODE_TEXT&&(c.value=CKEDITOR.tools.rtrim(c.value),0===c.value.length)){this.children.pop();this.add(a);return}c.next= -a}a.previous=c;a.parent=this;this.children.splice(b,0,a);this._.hasInlineStarted||(this._.hasInlineStarted=a.type==CKEDITOR.NODE_TEXT||a.type==CKEDITOR.NODE_ELEMENT&&!a._.isBlockLike)},filter:function(a,b){b=this.getFilterContext(b);a.onRoot(b,this);this.filterChildren(a,!1,b)},filterChildren:function(a,b,c){if(this.childrenFilteredBy!=a.id){c=this.getFilterContext(c);if(b&&!this.parent)a.onRoot(c,this);this.childrenFilteredBy=a.id;for(b=0;b<this.children.length;b++)!1===this.children[b].filter(a, -c)&&b--}},writeHtml:function(a,b){b&&this.filter(b);this.writeChildrenHtml(a)},writeChildrenHtml:function(a,b,c){var d=this.getFilterContext();if(c&&!this.parent&&b)b.onRoot(d,this);b&&this.filterChildren(b,!1,d);b=0;c=this.children;for(d=c.length;b<d;b++)c[b].writeHtml(a)},forEach:function(a,b,c){if(!(c||b&&this.type!=b))var d=a(this);if(!1!==d){c=this.children;for(var e=0;e<c.length;e++)d=c[e],d.type==CKEDITOR.NODE_ELEMENT?d.forEach(a,b):b&&d.type!=b||a(d)}},getFilterContext:function(a){return a|| -{}}}})();"use strict"; -(function(){function a(){this.rules=[]}function d(b,c,d,g){var h,k;for(h in c)(k=b[h])||(k=b[h]=new a),k.add(c[h],d,g)}CKEDITOR.htmlParser.filter=CKEDITOR.tools.createClass({$:function(b){this.id=CKEDITOR.tools.getNextNumber();this.elementNameRules=new a;this.attributeNameRules=new a;this.elementsRules={};this.attributesRules={};this.textRules=new a;this.commentRules=new a;this.rootRules=new a;b&&this.addRules(b,10)},proto:{addRules:function(a,c){var e;"number"==typeof c?e=c:c&&"priority"in c&&(e= -c.priority);"number"!=typeof e&&(e=10);"object"!=typeof c&&(c={});a.elementNames&&this.elementNameRules.addMany(a.elementNames,e,c);a.attributeNames&&this.attributeNameRules.addMany(a.attributeNames,e,c);a.elements&&d(this.elementsRules,a.elements,e,c);a.attributes&&d(this.attributesRules,a.attributes,e,c);a.text&&this.textRules.add(a.text,e,c);a.comment&&this.commentRules.add(a.comment,e,c);a.root&&this.rootRules.add(a.root,e,c)},applyTo:function(a){a.filter(this)},onElementName:function(a,c){return this.elementNameRules.execOnName(a, -c)},onAttributeName:function(a,c){return this.attributeNameRules.execOnName(a,c)},onText:function(a,c,d){return this.textRules.exec(a,c,d)},onComment:function(a,c,d){return this.commentRules.exec(a,c,d)},onRoot:function(a,c){return this.rootRules.exec(a,c)},onElement:function(a,c){for(var d=[this.elementsRules["^"],this.elementsRules[c.name],this.elementsRules.$],g,h=0;3>h;h++)if(g=d[h]){g=g.exec(a,c,this);if(!1===g)return null;if(g&&g!=c)return this.onNode(a,g);if(c.parent&&!c.name)break}return c}, -onNode:function(a,c){var d=c.type;return d==CKEDITOR.NODE_ELEMENT?this.onElement(a,c):d==CKEDITOR.NODE_TEXT?new CKEDITOR.htmlParser.text(this.onText(a,c.value)):d==CKEDITOR.NODE_COMMENT?new CKEDITOR.htmlParser.comment(this.onComment(a,c.value)):null},onAttribute:function(a,c,d,g){return(d=this.attributesRules[d])?d.exec(a,g,c,this):g}}});CKEDITOR.htmlParser.filterRulesGroup=a;a.prototype={add:function(a,c,d){this.rules.splice(this.findIndex(c),0,{value:a,priority:c,options:d})},addMany:function(a, -c,d){for(var g=[this.findIndex(c),0],h=0,k=a.length;h<k;h++)g.push({value:a[h],priority:c,options:d});this.rules.splice.apply(this.rules,g)},findIndex:function(a){for(var c=this.rules,d=c.length-1;0<=d&&a<c[d].priority;)d--;return d+1},exec:function(a,c){var d=c instanceof CKEDITOR.htmlParser.node||c instanceof CKEDITOR.htmlParser.fragment,g=Array.prototype.slice.call(arguments,1),h=this.rules,k=h.length,n,q,f,D;for(D=0;D<k;D++)if(d&&(n=c.type,q=c.name),f=h[D],!(a.nonEditable&&!f.options.applyToAll|| -a.nestedEditable&&f.options.excludeNestedEditable)){f=f.value.apply(null,g);if(!1===f||d&&f&&(f.name!=q||f.type!=n))return f;null!=f&&(g[0]=c=f)}return c},execOnName:function(a,c){for(var d=0,g=this.rules,h=g.length,k;c&&d<h;d++)k=g[d],a.nonEditable&&!k.options.applyToAll||a.nestedEditable&&k.options.excludeNestedEditable||(c=c.replace(k.value[0],k.value[1]));return c}}})(); -(function(){function a(a,d){function f(a){return a||CKEDITOR.env.needsNbspFiller?new CKEDITOR.htmlParser.text(" "):new CKEDITOR.htmlParser.element("br",{"data-cke-bogus":1})}function v(a,d){return function(e){if(e.type!=CKEDITOR.NODE_DOCUMENT_FRAGMENT){var t=[],l=b(e),v,p;if(l)for(u(l,1)&&t.push(l);l;)g(l)&&(v=c(l))&&u(v)&&((p=c(v))&&!g(p)?t.push(v):(f(y).insertAfter(v),v.remove())),l=l.previous;for(l=0;l<t.length;l++)t[l].remove();if(t=!a||!1!==("function"==typeof d?d(e):d))y||CKEDITOR.env.needsBrFiller|| -e.type!=CKEDITOR.NODE_DOCUMENT_FRAGMENT?y||CKEDITOR.env.needsBrFiller||!(7<document.documentMode||e.name in CKEDITOR.dtd.tr||e.name in CKEDITOR.dtd.$listItem)?(t=b(e),t=!t||"form"==e.name&&"input"==t.name):t=!1:t=!1;t&&e.add(f(a))}}}function u(a,b){if((!y||CKEDITOR.env.needsBrFiller)&&a.type==CKEDITOR.NODE_ELEMENT&&"br"==a.name&&!a.attributes["data-cke-eol"])return!0;var c;return a.type==CKEDITOR.NODE_TEXT&&(c=a.value.match(m))&&(c.index&&((new CKEDITOR.htmlParser.text(a.value.substring(0,c.index))).insertBefore(a), -a.value=c[0]),!CKEDITOR.env.needsBrFiller&&y&&(!b||a.parent.name in B)||!y&&((c=a.previous)&&"br"==c.name||!c||g(c)))?!0:!1}var p={elements:{}},y="html"==d,B=CKEDITOR.tools.extend({},l),C;for(C in B)"#"in z[C]||delete B[C];for(C in B)p.elements[C]=v(y,a.config.fillEmptyBlocks);p.root=v(y,!1);p.elements.br=function(a){return function(b){if(b.parent.type!=CKEDITOR.NODE_DOCUMENT_FRAGMENT){var d=b.attributes;if("data-cke-bogus"in d||"data-cke-eol"in d)delete d["data-cke-bogus"];else{for(d=b.next;d&&e(d);)d= -d.next;var t=c(b);!d&&g(b.parent)?h(b.parent,f(a)):g(d)&&t&&!g(t)&&f(a).insertBefore(d)}}}}(y);return p}function d(a,b){return a!=CKEDITOR.ENTER_BR&&!1!==b?a==CKEDITOR.ENTER_DIV?"div":"p":!1}function b(a){for(a=a.children[a.children.length-1];a&&e(a);)a=a.previous;return a}function c(a){for(a=a.previous;a&&e(a);)a=a.previous;return a}function e(a){return a.type==CKEDITOR.NODE_TEXT&&!CKEDITOR.tools.trim(a.value)||a.type==CKEDITOR.NODE_ELEMENT&&a.attributes["data-cke-bookmark"]}function g(a){return a&& -(a.type==CKEDITOR.NODE_ELEMENT&&a.name in l||a.type==CKEDITOR.NODE_DOCUMENT_FRAGMENT)}function h(a,b){var c=a.children[a.children.length-1];a.children.push(b);b.parent=a;c&&(c.next=b,b.previous=c)}function k(a){a=a.attributes;"false"!=a.contenteditable&&(a["data-cke-editable"]=a.contenteditable?"true":1);a.contenteditable="false"}function n(a){a=a.attributes;switch(a["data-cke-editable"]){case "true":a.contenteditable="true";break;case "1":delete a.contenteditable}}function q(a){return a.replace(u, -function(a,b,c){return"\x3c"+b+c.replace(y,function(a,b){return v.test(b)&&-1==c.indexOf("data-cke-saved-"+b)?" data-cke-saved-"+a+" data-cke-"+CKEDITOR.rnd+"-"+a:a})+"\x3e"})}function f(a,b){return a.replace(b,function(a,b,c){0===a.indexOf("\x3ctextarea")&&(a=b+A(c).replace(/</g,"\x26lt;").replace(/>/g,"\x26gt;")+"\x3c/textarea\x3e");return"\x3ccke:encoded\x3e"+encodeURIComponent(a)+"\x3c/cke:encoded\x3e"})}function D(a){return a.replace(V,function(a,b){return decodeURIComponent(b)})}function w(a){return a.replace(/\x3c!--(?!{cke_protected})[\s\S]+?--\x3e/g, -function(a){return"\x3c!--"+K+"{C}"+encodeURIComponent(a).replace(/--/g,"%2D%2D")+"--\x3e"})}function A(a){return a.replace(/\x3c!--\{cke_protected\}\{C\}([\s\S]+?)--\x3e/g,function(a,b){return decodeURIComponent(b)})}function G(a,b){var c=b._.dataStore;return a.replace(/\x3c!--\{cke_protected\}([\s\S]+?)--\x3e/g,function(a,b){return decodeURIComponent(b)}).replace(/\{cke_protected_(\d+)\}/g,function(a,b){return c&&c[b]||""})}function x(a,b){var c=[],d=b.config.protectedSource,e=b._.dataStore||(b._.dataStore= -{id:1}),f=/<\!--\{cke_temp(comment)?\}(\d*?)--\x3e/g,d=[/<script[\s\S]*?(<\/script>|$)/gi,/<noscript[\s\S]*?<\/noscript>/gi,/<meta[\s\S]*?\/?>/gi].concat(d);a=a.replace(/\x3c!--[\s\S]*?--\x3e/g,function(a){return"\x3c!--{cke_tempcomment}"+(c.push(a)-1)+"--\x3e"});for(var l=0;l<d.length;l++)a=a.replace(d[l],function(a){a=a.replace(f,function(a,b,d){return c[d]});return/cke_temp(comment)?/.test(a)?a:"\x3c!--{cke_temp}"+(c.push(a)-1)+"--\x3e"});a=a.replace(f,function(a,b,d){return"\x3c!--"+K+(b?"{C}": -"")+encodeURIComponent(c[d]).replace(/--/g,"%2D%2D")+"--\x3e"});a=a.replace(/<\w+(?:\s+(?:(?:[^\s=>]+\s*=\s*(?:[^'"\s>]+|'[^']*'|"[^"]*"))|[^\s=\/>]+))+\s*\/?>/g,function(a){return a.replace(/\x3c!--\{cke_protected\}([^>]*)--\x3e/g,function(a,b){e[e.id]=decodeURIComponent(b);return"{cke_protected_"+e.id++ +"}"})});return a=a.replace(/<(title|iframe|textarea)([^>]*)>([\s\S]*?)<\/\1>/g,function(a,c,d,e){return"\x3c"+c+d+"\x3e"+G(A(e),b)+"\x3c/"+c+"\x3e"})}CKEDITOR.htmlDataProcessor=function(b){var c, -e,l=this;this.editor=b;this.dataFilter=c=new CKEDITOR.htmlParser.filter;this.htmlFilter=e=new CKEDITOR.htmlParser.filter;this.writer=new CKEDITOR.htmlParser.basicWriter;c.addRules(r);c.addRules(J,{applyToAll:!0});c.addRules(a(b,"data"),{applyToAll:!0});e.addRules(H);e.addRules(E,{applyToAll:!0});e.addRules(a(b,"html"),{applyToAll:!0});b.on("toHtml",function(a){a=a.data;var c=a.dataValue,e,c=x(c,b),c=f(c,L),c=q(c),c=f(c,B),c=c.replace(O,"$1cke:$2"),c=c.replace(C,"\x3ccke:$1$2\x3e\x3c/cke:$1\x3e"), -c=c.replace(/(<pre\b[^>]*>)(\r\n|\n)/g,"$1$2$2"),c=c.replace(/([^a-z0-9<\-])(on\w{3,})(?!>)/gi,"$1data-cke-"+CKEDITOR.rnd+"-$2");e=a.context||b.editable().getName();var l;CKEDITOR.env.ie&&9>CKEDITOR.env.version&&"pre"==e&&(e="div",c="\x3cpre\x3e"+c+"\x3c/pre\x3e",l=1);e=b.document.createElement(e);e.setHtml("a"+c);c=e.getHtml().substr(1);c=c.replace(new RegExp("data-cke-"+CKEDITOR.rnd+"-","ig"),"");l&&(c=c.replace(/^<pre>|<\/pre>$/gi,""));c=c.replace(p,"$1$2");c=D(c);c=A(c);e=!1===a.fixForBody?!1: -d(a.enterMode,b.config.autoParagraph);c=CKEDITOR.htmlParser.fragment.fromHtml(c,a.context,e);e&&(l=c,!l.children.length&&CKEDITOR.dtd[l.name][e]&&(e=new CKEDITOR.htmlParser.element(e),l.add(e)));a.dataValue=c},null,null,5);b.on("toHtml",function(a){a.data.filter.applyTo(a.data.dataValue,!0,a.data.dontFilter,a.data.enterMode)&&b.fire("dataFiltered")},null,null,6);b.on("toHtml",function(a){a.data.dataValue.filterChildren(l.dataFilter,!0)},null,null,10);b.on("toHtml",function(a){a=a.data;var b=a.dataValue, -c=new CKEDITOR.htmlParser.basicWriter;b.writeChildrenHtml(c);b=c.getHtml(!0);a.dataValue=w(b)},null,null,15);b.on("toDataFormat",function(a){var c=a.data.dataValue;a.data.enterMode!=CKEDITOR.ENTER_BR&&(c=c.replace(/^<br *\/?>/i,""));a.data.dataValue=CKEDITOR.htmlParser.fragment.fromHtml(c,a.data.context,d(a.data.enterMode,b.config.autoParagraph))},null,null,5);b.on("toDataFormat",function(a){a.data.dataValue.filterChildren(l.htmlFilter,!0)},null,null,10);b.on("toDataFormat",function(a){a.data.filter.applyTo(a.data.dataValue, -!1,!0)},null,null,11);b.on("toDataFormat",function(a){var c=a.data.dataValue,d=l.writer;d.reset();c.writeChildrenHtml(d);c=d.getHtml(!0);c=A(c);c=G(c,b);a.data.dataValue=c},null,null,15)};CKEDITOR.htmlDataProcessor.prototype={toHtml:function(a,b,c,d){var e=this.editor,f,l,v,g;b&&"object"==typeof b?(f=b.context,c=b.fixForBody,d=b.dontFilter,l=b.filter,v=b.enterMode,g=b.protectedWhitespaces):f=b;f||null===f||(f=e.editable().getName());return e.fire("toHtml",{dataValue:a,context:f,fixForBody:c,dontFilter:d, -filter:l||e.filter,enterMode:v||e.enterMode,protectedWhitespaces:g}).dataValue},toDataFormat:function(a,b){var c,d,e;b&&(c=b.context,d=b.filter,e=b.enterMode);c||null===c||(c=this.editor.editable().getName());return this.editor.fire("toDataFormat",{dataValue:a,filter:d||this.editor.filter,context:c,enterMode:e||this.editor.enterMode}).dataValue}};var m=/(?:&nbsp;|\xa0)$/,K="{cke_protected}",z=CKEDITOR.dtd,I="caption colgroup col thead tfoot tbody".split(" "),l=CKEDITOR.tools.extend({},z.$blockLimit, -z.$block),r={elements:{input:k,textarea:k}},J={attributeNames:[[/^on/,"data-cke-pa-on"],[/^srcdoc/,"data-cke-pa-srcdoc"],[/^data-cke-expando$/,""]],elements:{iframe:function(a){if(a.attributes&&a.attributes.src){var b=a.attributes.src.toLowerCase().replace(/[^a-z]/gi,"");if(0===b.indexOf("javascript")||0===b.indexOf("data"))a.attributes["data-cke-pa-src"]=a.attributes.src,delete a.attributes.src}}}},H={elements:{embed:function(a){var b=a.parent;if(b&&"object"==b.name){var c=b.attributes.width,b=b.attributes.height; -c&&(a.attributes.width=c);b&&(a.attributes.height=b)}},a:function(a){var b=a.attributes;if(!(a.children.length||b.name||b.id||a.attributes["data-cke-saved-name"]))return!1}}},E={elementNames:[[/^cke:/,""],[/^\?xml:namespace$/,""]],attributeNames:[[/^data-cke-(saved|pa)-/,""],[/^data-cke-.*/,""],["hidefocus",""]],elements:{$:function(a){var b=a.attributes;if(b){if(b["data-cke-temp"])return!1;for(var c=["name","href","src"],d,e=0;e<c.length;e++)d="data-cke-saved-"+c[e],d in b&&delete b[c[e]]}return a}, -table:function(a){a.children.slice(0).sort(function(a,b){var c,d;a.type==CKEDITOR.NODE_ELEMENT&&b.type==a.type&&(c=CKEDITOR.tools.indexOf(I,a.name),d=CKEDITOR.tools.indexOf(I,b.name));-1<c&&-1<d&&c!=d||(c=a.parent?a.getIndex():-1,d=b.parent?b.getIndex():-1);return c>d?1:-1})},param:function(a){a.children=[];a.isEmpty=!0;return a},span:function(a){"Apple-style-span"==a.attributes["class"]&&delete a.name},html:function(a){delete a.attributes.contenteditable;delete a.attributes["class"]},body:function(a){delete a.attributes.spellcheck; -delete a.attributes.contenteditable},style:function(a){var b=a.children[0];b&&b.value&&(b.value=CKEDITOR.tools.trim(b.value));a.attributes.type||(a.attributes.type="text/css")},title:function(a){var b=a.children[0];!b&&h(a,b=new CKEDITOR.htmlParser.text);b.value=a.attributes["data-cke-title"]||""},input:n,textarea:n},attributes:{"class":function(a){return CKEDITOR.tools.ltrim(a.replace(/(?:^|\s+)cke_[^\s]*/g,""))||!1}}};CKEDITOR.env.ie&&(E.attributes.style=function(a){return a.replace(/(^|;)([^\:]+)/g, -function(a){return a.toLowerCase()})});var u=/<(a|area|img|input|source)\b([^>]*)>/gi,y=/([\w-:]+)\s*=\s*(?:(?:"[^"]*")|(?:'[^']*')|(?:[^ "'>]+))/gi,v=/^(href|src|name)$/i,B=/(?:<style(?=[ >])[^>]*>[\s\S]*?<\/style>)|(?:<(:?link|meta|base)[^>]*>)/gi,L=/(<textarea(?=[ >])[^>]*>)([\s\S]*?)(?:<\/textarea>)/gi,V=/<cke:encoded>([^<]*)<\/cke:encoded>/gi,O=/(<\/?)((?:object|embed|param|html|body|head|title)[^>]*>)/gi,p=/(<\/?)cke:((?:html|body|head|title)[^>]*>)/gi,C=/<cke:(param|embed)([^>]*?)\/?>(?!\s*<\/cke:\1)/gi})(); -"use strict";CKEDITOR.htmlParser.element=function(a,d){this.name=a;this.attributes=d||{};this.children=[];var b=a||"",c=b.match(/^cke:(.*)/);c&&(b=c[1]);b=!!(CKEDITOR.dtd.$nonBodyContent[b]||CKEDITOR.dtd.$block[b]||CKEDITOR.dtd.$listItem[b]||CKEDITOR.dtd.$tableContent[b]||CKEDITOR.dtd.$nonEditable[b]||"br"==b);this.isEmpty=!!CKEDITOR.dtd.$empty[a];this.isUnknown=!CKEDITOR.dtd[a];this._={isBlockLike:b,hasInlineStarted:this.isEmpty||!b}}; -CKEDITOR.htmlParser.cssStyle=function(a){var d={};((a instanceof CKEDITOR.htmlParser.element?a.attributes.style:a)||"").replace(/&quot;/g,'"').replace(/\s*([^ :;]+)\s*:\s*([^;]+)\s*(?=;|$)/g,function(a,c,e){"font-family"==c&&(e=e.replace(/["']/g,""));d[c.toLowerCase()]=e});return{rules:d,populate:function(a){var c=this.toString();c&&(a instanceof CKEDITOR.dom.element?a.setAttribute("style",c):a instanceof CKEDITOR.htmlParser.element?a.attributes.style=c:a.style=c)},toString:function(){var a=[],c; -for(c in d)d[c]&&a.push(c,":",d[c],";");return a.join("")}}}; -(function(){function a(a){return function(b){return b.type==CKEDITOR.NODE_ELEMENT&&("string"==typeof a?b.name==a:b.name in a)}}var d=function(a,b){a=a[0];b=b[0];return a<b?-1:a>b?1:0},b=CKEDITOR.htmlParser.fragment.prototype;CKEDITOR.htmlParser.element.prototype=CKEDITOR.tools.extend(new CKEDITOR.htmlParser.node,{type:CKEDITOR.NODE_ELEMENT,add:b.add,clone:function(){return new CKEDITOR.htmlParser.element(this.name,this.attributes)},filter:function(a,b){var d=this,h,k;b=d.getFilterContext(b);if(b.off)return!0; -if(!d.parent)a.onRoot(b,d);for(;;){h=d.name;if(!(k=a.onElementName(b,h)))return this.remove(),!1;d.name=k;if(!(d=a.onElement(b,d)))return this.remove(),!1;if(d!==this)return this.replaceWith(d),!1;if(d.name==h)break;if(d.type!=CKEDITOR.NODE_ELEMENT)return this.replaceWith(d),!1;if(!d.name)return this.replaceWithChildren(),!1}h=d.attributes;var n,q;for(n in h){for(k=h[n];;)if(q=a.onAttributeName(b,n))if(q!=n)delete h[n],n=q;else break;else{delete h[n];break}q&&(!1===(k=a.onAttribute(b,d,q,k))?delete h[q]: -h[q]=k)}d.isEmpty||this.filterChildren(a,!1,b);return!0},filterChildren:b.filterChildren,writeHtml:function(a,b){b&&this.filter(b);var g=this.name,h=[],k=this.attributes,n,q;a.openTag(g,k);for(n in k)h.push([n,k[n]]);a.sortAttributes&&h.sort(d);n=0;for(q=h.length;n<q;n++)k=h[n],a.attribute(k[0],k[1]);a.openTagClose(g,this.isEmpty);this.writeChildrenHtml(a);this.isEmpty||a.closeTag(g)},writeChildrenHtml:b.writeChildrenHtml,replaceWithChildren:function(){for(var a=this.children,b=a.length;b;)a[--b].insertAfter(this); -this.remove()},forEach:b.forEach,getFirst:function(b){if(!b)return this.children.length?this.children[0]:null;"function"!=typeof b&&(b=a(b));for(var d=0,g=this.children.length;d<g;++d)if(b(this.children[d]))return this.children[d];return null},getHtml:function(){var a=new CKEDITOR.htmlParser.basicWriter;this.writeChildrenHtml(a);return a.getHtml()},setHtml:function(a){a=this.children=CKEDITOR.htmlParser.fragment.fromHtml(a).children;for(var b=0,d=a.length;b<d;++b)a[b].parent=this},getOuterHtml:function(){var a= -new CKEDITOR.htmlParser.basicWriter;this.writeHtml(a);return a.getHtml()},split:function(a){for(var b=this.children.splice(a,this.children.length-a),d=this.clone(),h=0;h<b.length;++h)b[h].parent=d;d.children=b;b[0]&&(b[0].previous=null);0<a&&(this.children[a-1].next=null);this.parent.add(d,this.getIndex()+1);return d},find:function(a,b){void 0===b&&(b=!1);var d=[],h;for(h=0;h<this.children.length;h++){var k=this.children[h];"function"==typeof a&&a(k)?d.push(k):"string"==typeof a&&k.name===a&&d.push(k); -b&&k.find&&(d=d.concat(k.find(a,b)))}return d},addClass:function(a){if(!this.hasClass(a)){var b=this.attributes["class"]||"";this.attributes["class"]=b+(b?" ":"")+a}},removeClass:function(a){var b=this.attributes["class"];b&&((b=CKEDITOR.tools.trim(b.replace(new RegExp("(?:\\s+|^)"+a+"(?:\\s+|$)")," ")))?this.attributes["class"]=b:delete this.attributes["class"])},hasClass:function(a){var b=this.attributes["class"];return b?(new RegExp("(?:^|\\s)"+a+"(?\x3d\\s|$)")).test(b):!1},getFilterContext:function(a){var b= -[];a||(a={off:!1,nonEditable:!1,nestedEditable:!1});a.off||"off"!=this.attributes["data-cke-processor"]||b.push("off",!0);a.nonEditable||"false"!=this.attributes.contenteditable?a.nonEditable&&!a.nestedEditable&&"true"==this.attributes.contenteditable&&b.push("nestedEditable",!0):b.push("nonEditable",!0);if(b.length){a=CKEDITOR.tools.copy(a);for(var d=0;d<b.length;d+=2)a[b[d]]=b[d+1]}return a}},!0)})(); -(function(){var a=/{([^}]+)}/g;CKEDITOR.template=function(a){this.source=String(a)};CKEDITOR.template.prototype.output=function(d,b){var c=this.source.replace(a,function(a,b){return void 0!==d[b]?d[b]:a});return b?b.push(c):c}})();delete CKEDITOR.loadFullCore;CKEDITOR.instances={};CKEDITOR.document=new CKEDITOR.dom.document(document); -CKEDITOR.add=function(a){CKEDITOR.instances[a.name]=a;a.on("focus",function(){CKEDITOR.currentInstance!=a&&(CKEDITOR.currentInstance=a,CKEDITOR.fire("currentInstance"))});a.on("blur",function(){CKEDITOR.currentInstance==a&&(CKEDITOR.currentInstance=null,CKEDITOR.fire("currentInstance"))});CKEDITOR.fire("instance",null,a)};CKEDITOR.remove=function(a){delete CKEDITOR.instances[a.name]}; -(function(){var a={};CKEDITOR.addTemplate=function(d,b){var c=a[d];if(c)return c;c={name:d,source:b};CKEDITOR.fire("template",c);return a[d]=new CKEDITOR.template(c.source)};CKEDITOR.getTemplate=function(d){return a[d]}})();(function(){var a=[];CKEDITOR.addCss=function(d){a.push(d)};CKEDITOR.getCss=function(){return a.join("\n")}})();CKEDITOR.on("instanceDestroyed",function(){CKEDITOR.tools.isEmpty(this.instances)&&CKEDITOR.fire("reset")});CKEDITOR.TRISTATE_ON=1;CKEDITOR.TRISTATE_OFF=2; -CKEDITOR.TRISTATE_DISABLED=0; -(function(){CKEDITOR.inline=function(a,d){if(!CKEDITOR.env.isCompatible)return null;a=CKEDITOR.dom.element.get(a);if(a.getEditor())throw'The editor instance "'+a.getEditor().name+'" is already attached to the provided element.';var b=new CKEDITOR.editor(d,a,CKEDITOR.ELEMENT_MODE_INLINE),c=a.is("textarea")?a:null;c?(b.setData(c.getValue(),null,!0),a=CKEDITOR.dom.element.createFromHtml('\x3cdiv contenteditable\x3d"'+!!b.readOnly+'" class\x3d"cke_textarea_inline"\x3e'+c.getValue()+"\x3c/div\x3e",CKEDITOR.document), -a.insertAfter(c),c.hide(),c.$.form&&b._attachToForm()):b.setData(a.getHtml(),null,!0);b.on("loaded",function(){b.fire("uiReady");b.editable(a);b.container=a;b.ui.contentsElement=a;b.setData(b.getData(1));b.resetDirty();b.fire("contentDom");b.mode="wysiwyg";b.fire("mode");b.status="ready";b.fireOnce("instanceReady");CKEDITOR.fire("instanceReady",null,b)},null,null,1E4);b.on("destroy",function(){c&&(b.container.clearCustomData(),b.container.remove(),c.show());b.element.clearCustomData();delete b.element}); -return b};CKEDITOR.inlineAll=function(){var a,d,b;for(b in CKEDITOR.dtd.$editable)for(var c=CKEDITOR.document.getElementsByTag(b),e=0,g=c.count();e<g;e++)a=c.getItem(e),"true"==a.getAttribute("contenteditable")&&(d={element:a,config:{}},!1!==CKEDITOR.fire("inline",d)&&CKEDITOR.inline(a,d.config))};CKEDITOR.domReady(function(){!CKEDITOR.disableAutoInline&&CKEDITOR.inlineAll()})})();CKEDITOR.replaceClass="ckeditor"; -(function(){function a(a,e,g,h){if(!CKEDITOR.env.isCompatible)return null;a=CKEDITOR.dom.element.get(a);if(a.getEditor())throw'The editor instance "'+a.getEditor().name+'" is already attached to the provided element.';var k=new CKEDITOR.editor(e,a,h);h==CKEDITOR.ELEMENT_MODE_REPLACE&&(a.setStyle("visibility","hidden"),k._.required=a.hasAttribute("required"),a.removeAttribute("required"));g&&k.setData(g,null,!0);k.on("loaded",function(){b(k);h==CKEDITOR.ELEMENT_MODE_REPLACE&&k.config.autoUpdateElement&& -a.$.form&&k._attachToForm();k.setMode(k.config.startupMode,function(){k.resetDirty();k.status="ready";k.fireOnce("instanceReady");CKEDITOR.fire("instanceReady",null,k)})});k.on("destroy",d);return k}function d(){var a=this.container,b=this.element;a&&(a.clearCustomData(),a.remove());b&&(b.clearCustomData(),this.elementMode==CKEDITOR.ELEMENT_MODE_REPLACE&&(b.show(),this._.required&&b.setAttribute("required","required")),delete this.element)}function b(a){var b=a.name,d=a.element,h=a.elementMode,k= -a.fire("uiSpace",{space:"top",html:""}).html,n=a.fire("uiSpace",{space:"bottom",html:""}).html,q=new CKEDITOR.template('\x3c{outerEl} id\x3d"cke_{name}" class\x3d"{id} cke cke_reset cke_chrome cke_editor_{name} cke_{langDir} '+CKEDITOR.env.cssClass+'" dir\x3d"{langDir}" lang\x3d"{langCode}" role\x3d"application"'+(a.title?' aria-labelledby\x3d"cke_{name}_arialbl"':"")+"\x3e"+(a.title?'\x3cspan id\x3d"cke_{name}_arialbl" class\x3d"cke_voice_label"\x3e{voiceLabel}\x3c/span\x3e':"")+'\x3c{outerEl} class\x3d"cke_inner cke_reset" role\x3d"presentation"\x3e{topHtml}\x3c{outerEl} id\x3d"{contentId}" class\x3d"cke_contents cke_reset" role\x3d"presentation"\x3e\x3c/{outerEl}\x3e{bottomHtml}\x3c/{outerEl}\x3e\x3c/{outerEl}\x3e'), -b=CKEDITOR.dom.element.createFromHtml(q.output({id:a.id,name:b,langDir:a.lang.dir,langCode:a.langCode,voiceLabel:a.title,topHtml:k?'\x3cspan id\x3d"'+a.ui.spaceId("top")+'" class\x3d"cke_top cke_reset_all" role\x3d"presentation" style\x3d"height:auto"\x3e'+k+"\x3c/span\x3e":"",contentId:a.ui.spaceId("contents"),bottomHtml:n?'\x3cspan id\x3d"'+a.ui.spaceId("bottom")+'" class\x3d"cke_bottom cke_reset_all" role\x3d"presentation"\x3e'+n+"\x3c/span\x3e":"",outerEl:CKEDITOR.env.ie?"span":"div"}));h==CKEDITOR.ELEMENT_MODE_REPLACE? -(d.hide(),b.insertAfter(d)):d.append(b);a.container=b;a.ui.contentsElement=a.ui.space("contents");k&&a.ui.space("top").unselectable();n&&a.ui.space("bottom").unselectable();d=a.config.width;h=a.config.height;d&&b.setStyle("width",CKEDITOR.tools.cssLength(d));h&&a.ui.space("contents").setStyle("height",CKEDITOR.tools.cssLength(h));b.disableContextMenu();CKEDITOR.env.webkit&&b.on("focus",function(){a.focus()});a.fireOnce("uiReady")}CKEDITOR.replace=function(b,d){return a(b,d,null,CKEDITOR.ELEMENT_MODE_REPLACE)}; -CKEDITOR.appendTo=function(b,d,g){return a(b,d,g,CKEDITOR.ELEMENT_MODE_APPENDTO)};CKEDITOR.replaceAll=function(){for(var a=document.getElementsByTagName("textarea"),b=0;b<a.length;b++){var d=null,h=a[b];if(h.name||h.id){if("string"==typeof arguments[0]){if(!(new RegExp("(?:^|\\s)"+arguments[0]+"(?:$|\\s)")).test(h.className))continue}else if("function"==typeof arguments[0]&&(d={},!1===arguments[0](h,d)))continue;this.replace(h,d)}}};CKEDITOR.editor.prototype.addMode=function(a,b){(this._.modes||(this._.modes= -{}))[a]=b};CKEDITOR.editor.prototype.setMode=function(a,b){var d=this,h=this._.modes;if(a!=d.mode&&h&&h[a]){d.fire("beforeSetMode",a);if(d.mode){var k=d.checkDirty(),h=d._.previousModeData,n,q=0;d.fire("beforeModeUnload");d.editable(0);d._.previousMode=d.mode;d._.previousModeData=n=d.getData(1);"source"==d.mode&&h==n&&(d.fire("lockSnapshot",{forceUpdate:!0}),q=1);d.ui.space("contents").setHtml("");d.mode=""}else d._.previousModeData=d.getData(1);this._.modes[a](function(){d.mode=a;void 0!==k&&!k&& -d.resetDirty();q?d.fire("unlockSnapshot"):"wysiwyg"==a&&d.fire("saveSnapshot");setTimeout(function(){d.fire("mode");b&&b.call(d)},0)})}};CKEDITOR.editor.prototype.resize=function(a,b,d,h){var k=this.container,n=this.ui.space("contents"),q=CKEDITOR.env.webkit&&this.document&&this.document.getWindow().$.frameElement;h=h?this.container.getFirst(function(a){return a.type==CKEDITOR.NODE_ELEMENT&&a.hasClass("cke_inner")}):k;h.setSize("width",a,!0);q&&(q.style.width="1%");var f=(h.$.offsetHeight||0)-(n.$.clientHeight|| -0),k=Math.max(b-(d?0:f),0);b=d?b+f:b;n.setStyle("height",k+"px");q&&(q.style.width="100%");this.fire("resize",{outerHeight:b,contentsHeight:k,outerWidth:a||h.getSize("width")})};CKEDITOR.editor.prototype.getResizable=function(a){return a?this.ui.space("contents"):this.container};CKEDITOR.domReady(function(){CKEDITOR.replaceClass&&CKEDITOR.replaceAll(CKEDITOR.replaceClass)})})();CKEDITOR.config.startupMode="wysiwyg"; -(function(){function a(a){var b=a.editor,e=a.data.path,f=e.blockLimit,g=a.data.selection,u=g.getRanges()[0],y;if(CKEDITOR.env.gecko||CKEDITOR.env.ie&&CKEDITOR.env.needsBrFiller)if(g=d(g,e))g.appendBogus(),y=CKEDITOR.env.ie;h(b,e.block,f)&&u.collapsed&&!u.getCommonAncestor().isReadOnly()&&(e=u.clone(),e.enlarge(CKEDITOR.ENLARGE_BLOCK_CONTENTS),f=new CKEDITOR.dom.walker(e),f.guard=function(a){return!c(a)||a.type==CKEDITOR.NODE_COMMENT||a.isReadOnly()},!f.checkForward()||e.checkStartOfBlock()&&e.checkEndOfBlock())&& -(b=u.fixBlock(!0,b.activeEnterMode==CKEDITOR.ENTER_DIV?"div":"p"),CKEDITOR.env.needsBrFiller||(b=b.getFirst(c))&&b.type==CKEDITOR.NODE_TEXT&&CKEDITOR.tools.trim(b.getText()).match(/^(?:&nbsp;|\xa0)$/)&&b.remove(),y=1,a.cancel());y&&u.select()}function d(a,b){if(a.isFake)return 0;var d=b.block||b.blockLimit,e=d&&d.getLast(c);if(!(!d||!d.isBlockBoundary()||e&&e.type==CKEDITOR.NODE_ELEMENT&&e.isBlockBoundary()||d.is("pre")||d.getBogus()))return d}function b(a){var b=a.data.getTarget();b.is("input")&& -(b=b.getAttribute("type"),"submit"!=b&&"reset"!=b||a.data.preventDefault())}function c(a){return f(a)&&D(a)}function e(a,b){return function(c){var d=c.data.$.toElement||c.data.$.fromElement||c.data.$.relatedTarget;(d=d&&d.nodeType==CKEDITOR.NODE_ELEMENT?new CKEDITOR.dom.element(d):null)&&(b.equals(d)||b.contains(d))||a.call(this,c)}}function g(a){function b(a){return function(b,e){e&&b.type==CKEDITOR.NODE_ELEMENT&&b.is(f)&&(d=b);if(!(e||!c(b)||a&&A(b)))return!1}}var d,e=a.getRanges()[0];a=a.root; -var f={table:1,ul:1,ol:1,dl:1};if(e.startPath().contains(f)){var u=e.clone();u.collapse(1);u.setStartAt(a,CKEDITOR.POSITION_AFTER_START);a=new CKEDITOR.dom.walker(u);a.guard=b();a.checkBackward();if(d)return u=e.clone(),u.collapse(),u.setEndAt(d,CKEDITOR.POSITION_AFTER_END),a=new CKEDITOR.dom.walker(u),a.guard=b(!0),d=!1,a.checkForward(),d}return null}function h(a,b,c){return!1!==a.config.autoParagraph&&a.activeEnterMode!=CKEDITOR.ENTER_BR&&(a.editable().equals(c)&&!b||b&&"true"==b.getAttribute("contenteditable"))} -function k(a){return a.activeEnterMode!=CKEDITOR.ENTER_BR&&!1!==a.config.autoParagraph?a.activeEnterMode==CKEDITOR.ENTER_DIV?"div":"p":!1}function n(a){var b=a.editor;b.getSelection().scrollIntoView();setTimeout(function(){b.fire("saveSnapshot")},0)}function q(a,b,c){var d=a.getCommonAncestor(b);for(b=a=c?b:a;(a=a.getParent())&&!d.equals(a)&&1==a.getChildCount();)b=a;b.remove()}var f,D,w,A,G,x,m,K,z,I;CKEDITOR.editable=CKEDITOR.tools.createClass({base:CKEDITOR.dom.element,$:function(a,b){this.base(b.$|| -b);this.editor=a;this.status="unloaded";this.hasFocus=!1;this.setup()},proto:{focus:function(){var a;if(CKEDITOR.env.webkit&&!this.hasFocus&&(a=this.editor._.previousActive||this.getDocument().getActive(),this.contains(a))){a.focus();return}CKEDITOR.env.edge&&14<CKEDITOR.env.version&&!this.hasFocus&&this.getDocument().equals(CKEDITOR.document)&&(this.editor._.previousScrollTop=this.$.scrollTop);try{if(!CKEDITOR.env.ie||CKEDITOR.env.edge&&14<CKEDITOR.env.version||!this.getDocument().equals(CKEDITOR.document))if(CKEDITOR.env.chrome){var b= -this.$.scrollTop;this.$.focus();this.$.scrollTop=b}else this.$.focus();else this.$.setActive()}catch(c){if(!CKEDITOR.env.ie)throw c;}CKEDITOR.env.safari&&!this.isInline()&&(a=CKEDITOR.document.getActive(),a.equals(this.getWindow().getFrame())||this.getWindow().focus())},on:function(a,b){var c=Array.prototype.slice.call(arguments,0);CKEDITOR.env.ie&&/^focus|blur$/.exec(a)&&(a="focus"==a?"focusin":"focusout",b=e(b,this),c[0]=a,c[1]=b);return CKEDITOR.dom.element.prototype.on.apply(this,c)},attachListener:function(a){!this._.listeners&& -(this._.listeners=[]);var b=Array.prototype.slice.call(arguments,1),b=a.on.apply(a,b);this._.listeners.push(b);return b},clearListeners:function(){var a=this._.listeners;try{for(;a.length;)a.pop().removeListener()}catch(b){}},restoreAttrs:function(){var a=this._.attrChanges,b,c;for(c in a)a.hasOwnProperty(c)&&(b=a[c],null!==b?this.setAttribute(c,b):this.removeAttribute(c))},attachClass:function(a){var b=this.getCustomData("classes");this.hasClass(a)||(!b&&(b=[]),b.push(a),this.setCustomData("classes", -b),this.addClass(a))},changeAttr:function(a,b){var c=this.getAttribute(a);b!==c&&(!this._.attrChanges&&(this._.attrChanges={}),a in this._.attrChanges||(this._.attrChanges[a]=c),this.setAttribute(a,b))},insertText:function(a){this.editor.focus();this.insertHtml(this.transformPlainTextToHtml(a),"text")},transformPlainTextToHtml:function(a){var b=this.editor.getSelection().getStartElement().hasAscendant("pre",!0)?CKEDITOR.ENTER_BR:this.editor.activeEnterMode;return CKEDITOR.tools.transformPlainTextToHtml(a, -b)},insertHtml:function(a,b,c){var d=this.editor;d.focus();d.fire("saveSnapshot");c||(c=d.getSelection().getRanges()[0]);x(this,b||"html",a,c);c.select();n(this);this.editor.fire("afterInsertHtml",{})},insertHtmlIntoRange:function(a,b,c){x(this,c||"html",a,b);this.editor.fire("afterInsertHtml",{intoRange:b})},insertElement:function(a,b){var d=this.editor;d.focus();d.fire("saveSnapshot");var e=d.activeEnterMode,d=d.getSelection(),f=a.getName(),f=CKEDITOR.dtd.$block[f];b||(b=d.getRanges()[0]);this.insertElementIntoRange(a, -b)&&(b.moveToPosition(a,CKEDITOR.POSITION_AFTER_END),f&&((f=a.getNext(function(a){return c(a)&&!A(a)}))&&f.type==CKEDITOR.NODE_ELEMENT&&f.is(CKEDITOR.dtd.$block)?f.getDtd()["#"]?b.moveToElementEditStart(f):b.moveToElementEditEnd(a):f||e==CKEDITOR.ENTER_BR||(f=b.fixBlock(!0,e==CKEDITOR.ENTER_DIV?"div":"p"),b.moveToElementEditStart(f))));d.selectRanges([b]);n(this)},insertElementIntoSelection:function(a){this.insertElement(a)},insertElementIntoRange:function(a,b){var c=this.editor,d=c.config.enterMode, -e=a.getName(),f=CKEDITOR.dtd.$block[e];if(b.checkReadOnly())return!1;b.deleteContents(1);b.startContainer.type==CKEDITOR.NODE_ELEMENT&&(b.startContainer.is({tr:1,table:1,tbody:1,thead:1,tfoot:1})?m(b):b.startContainer.is(CKEDITOR.dtd.$list)&&K(b));var g,v;if(f)for(;(g=b.getCommonAncestor(0,1))&&(v=CKEDITOR.dtd[g.getName()])&&(!v||!v[e]);)g.getName()in CKEDITOR.dtd.span?b.splitElement(g):b.checkStartOfBlock()&&b.checkEndOfBlock()?(b.setStartBefore(g),b.collapse(!0),g.remove()):b.splitBlock(d==CKEDITOR.ENTER_DIV? -"div":"p",c.editable());b.insertNode(a);return!0},setData:function(a,b){b||(a=this.editor.dataProcessor.toHtml(a));this.setHtml(a);this.fixInitialSelection();"unloaded"==this.status&&(this.status="ready");this.editor.fire("dataReady")},getData:function(a){var b=this.getHtml();a||(b=this.editor.dataProcessor.toDataFormat(b));return b},setReadOnly:function(a){this.setAttribute("contenteditable",!a)},detach:function(){this.removeClass("cke_editable");this.status="detached";var a=this.editor;this._.detach(); -delete a.document;delete a.window},isInline:function(){return this.getDocument().equals(CKEDITOR.document)},fixInitialSelection:function(){function a(){var b=c.getDocument().$,d=b.getSelection(),e;a:if(d.anchorNode&&d.anchorNode==c.$)e=!0;else{if(CKEDITOR.env.webkit&&(e=c.getDocument().getActive())&&e.equals(c)&&!d.anchorNode){e=!0;break a}e=void 0}e&&(e=new CKEDITOR.dom.range(c),e.moveToElementEditStart(c),b=b.createRange(),b.setStart(e.startContainer.$,e.startOffset),b.collapse(!0),d.removeAllRanges(), -d.addRange(b))}function b(){var a=c.getDocument().$,d=a.selection,e=c.getDocument().getActive();"None"==d.type&&e.equals(c)&&(d=new CKEDITOR.dom.range(c),a=a.body.createTextRange(),d.moveToElementEditStart(c),d=d.startContainer,d.type!=CKEDITOR.NODE_ELEMENT&&(d=d.getParent()),a.moveToElementText(d.$),a.collapse(!0),a.select())}var c=this;if(CKEDITOR.env.ie&&(9>CKEDITOR.env.version||CKEDITOR.env.quirks))this.hasFocus&&(this.focus(),b());else if(this.hasFocus)this.focus(),a();else this.once("focus", -function(){a()},null,null,-999)},getHtmlFromRange:function(a){if(a.collapsed)return new CKEDITOR.dom.documentFragment(a.document);a={doc:this.getDocument(),range:a.clone()};z.eol.detect(a,this);z.bogus.exclude(a);z.cell.shrink(a);a.fragment=a.range.cloneContents();z.tree.rebuild(a,this);z.eol.fix(a,this);return new CKEDITOR.dom.documentFragment(a.fragment.$)},extractHtmlFromRange:function(a,b){var c=I,d={range:a,doc:a.document},e=this.getHtmlFromRange(a);if(a.collapsed)return a.optimize(),e;a.enlarge(CKEDITOR.ENLARGE_INLINE, -1);c.table.detectPurge(d);d.bookmark=a.createBookmark();delete d.range;var f=this.editor.createRange();f.moveToPosition(d.bookmark.startNode,CKEDITOR.POSITION_BEFORE_START);d.targetBookmark=f.createBookmark();c.list.detectMerge(d,this);c.table.detectRanges(d,this);c.block.detectMerge(d,this);d.tableContentsRanges?(c.table.deleteRanges(d),a.moveToBookmark(d.bookmark),d.range=a):(a.moveToBookmark(d.bookmark),d.range=a,a.extractContents(c.detectExtractMerge(d)));a.moveToBookmark(d.targetBookmark);a.optimize(); -c.fixUneditableRangePosition(a);c.list.merge(d,this);c.table.purge(d,this);c.block.merge(d,this);if(b){c=a.startPath();if(d=a.checkStartOfBlock()&&a.checkEndOfBlock()&&c.block&&!a.root.equals(c.block)){a:{var d=c.block.getElementsByTag("span"),f=0,g;if(d)for(;g=d.getItem(f++);)if(!D(g)){d=!0;break a}d=!1}d=!d}d&&(a.moveToPosition(c.block,CKEDITOR.POSITION_BEFORE_START),c.block.remove())}else c.autoParagraph(this.editor,a),w(a.startContainer)&&a.startContainer.appendBogus();a.startContainer.mergeSiblings(); -return e},setup:function(){var a=this.editor;this.attachListener(a,"beforeGetData",function(){var b=this.getData();this.is("textarea")||!1!==a.config.ignoreEmptyParagraph&&(b=b.replace(G,function(a,b){return b}));a.setData(b,null,1)},this);this.attachListener(a,"getSnapshot",function(a){a.data=this.getData(1)},this);this.attachListener(a,"afterSetData",function(){this.setData(a.getData(1))},this);this.attachListener(a,"loadSnapshot",function(a){this.setData(a.data,1)},this);this.attachListener(a, -"beforeFocus",function(){var b=a.getSelection();(b=b&&b.getNative())&&"Control"==b.type||this.focus()},this);this.attachListener(a,"insertHtml",function(a){this.insertHtml(a.data.dataValue,a.data.mode,a.data.range)},this);this.attachListener(a,"insertElement",function(a){this.insertElement(a.data)},this);this.attachListener(a,"insertText",function(a){this.insertText(a.data)},this);this.setReadOnly(a.readOnly);this.attachClass("cke_editable");a.elementMode==CKEDITOR.ELEMENT_MODE_INLINE?this.attachClass("cke_editable_inline"): -a.elementMode!=CKEDITOR.ELEMENT_MODE_REPLACE&&a.elementMode!=CKEDITOR.ELEMENT_MODE_APPENDTO||this.attachClass("cke_editable_themed");this.attachClass("cke_contents_"+a.config.contentsLangDirection);a.keystrokeHandler.blockedKeystrokes[8]=+a.readOnly;a.keystrokeHandler.attach(this);this.on("blur",function(){this.hasFocus=!1},null,null,-1);this.on("focus",function(){this.hasFocus=!0},null,null,-1);if(CKEDITOR.env.webkit)this.on("scroll",function(){a._.previousScrollTop=a.editable().$.scrollTop},null, -null,-1);if(CKEDITOR.env.edge&&14<CKEDITOR.env.version){var d=function(){var b=a.editable();null!=a._.previousScrollTop&&b.getDocument().equals(CKEDITOR.document)&&(b.$.scrollTop=a._.previousScrollTop,a._.previousScrollTop=null,this.removeListener("scroll",d))};this.on("scroll",d)}a.focusManager.add(this);this.equals(CKEDITOR.document.getActive())&&(this.hasFocus=!0,a.once("contentDom",function(){a.focusManager.focus(this)},this));this.isInline()&&this.changeAttr("tabindex",a.tabIndex);if(!this.is("textarea")){a.document= -this.getDocument();a.window=this.getWindow();var e=a.document;this.changeAttr("spellcheck",!a.config.disableNativeSpellChecker);var k=a.config.contentsLangDirection;this.getDirection(1)!=k&&this.changeAttr("dir",k);var h=CKEDITOR.getCss();if(h){var k=e.getHead(),u=k.getCustomData("stylesheet");u?h!=u.getText()&&(CKEDITOR.env.ie&&9>CKEDITOR.env.version?u.$.styleSheet.cssText=h:u.setText(h)):(h=e.appendStyleText(h),h=new CKEDITOR.dom.element(h.ownerNode||h.owningElement),k.setCustomData("stylesheet", -h),h.data("cke-temp",1))}k=e.getCustomData("stylesheet_ref")||0;e.setCustomData("stylesheet_ref",k+1);this.setCustomData("cke_includeReadonly",!a.config.disableReadonlyStyling);this.attachListener(this,"click",function(a){a=a.data;var b=(new CKEDITOR.dom.elementPath(a.getTarget(),this)).contains("a");b&&2!=a.$.button&&b.isReadOnly()&&a.preventDefault()});var y={8:1,46:1};this.attachListener(a,"key",function(b){if(a.readOnly)return!0;var c=b.data.domEvent.getKey(),d;b=a.getSelection();if(0!==b.getRanges().length){if(c in -y){var e,u=b.getRanges()[0],p=u.startPath(),C,t,k,c=8==c;CKEDITOR.env.ie&&11>CKEDITOR.env.version&&(e=b.getSelectedElement())||(e=g(b))?(a.fire("saveSnapshot"),u.moveToPosition(e,CKEDITOR.POSITION_BEFORE_START),e.remove(),u.select(),a.fire("saveSnapshot"),d=1):u.collapsed&&((C=p.block)&&(k=C[c?"getPrevious":"getNext"](f))&&k.type==CKEDITOR.NODE_ELEMENT&&k.is("table")&&u[c?"checkStartOfBlock":"checkEndOfBlock"]()?(a.fire("saveSnapshot"),u[c?"checkEndOfBlock":"checkStartOfBlock"]()&&C.remove(),u["moveToElementEdit"+ -(c?"End":"Start")](k),u.select(),a.fire("saveSnapshot"),d=1):p.blockLimit&&p.blockLimit.is("td")&&(t=p.blockLimit.getAscendant("table"))&&u.checkBoundaryOfElement(t,c?CKEDITOR.START:CKEDITOR.END)&&(k=t[c?"getPrevious":"getNext"](f))?(a.fire("saveSnapshot"),u["moveToElementEdit"+(c?"End":"Start")](k),u.checkStartOfBlock()&&u.checkEndOfBlock()?k.remove():u.select(),a.fire("saveSnapshot"),d=1):(t=p.contains(["td","th","caption"]))&&u.checkBoundaryOfElement(t,c?CKEDITOR.START:CKEDITOR.END)&&(d=1))}return!d}}); -a.blockless&&CKEDITOR.env.ie&&CKEDITOR.env.needsBrFiller&&this.attachListener(this,"keyup",function(b){b.data.getKeystroke()in y&&!this.getFirst(c)&&(this.appendBogus(),b=a.createRange(),b.moveToPosition(this,CKEDITOR.POSITION_AFTER_START),b.select())});this.attachListener(this,"dblclick",function(b){if(a.readOnly)return!1;b={element:b.data.getTarget()};a.fire("doubleclick",b)});CKEDITOR.env.ie&&this.attachListener(this,"click",b);CKEDITOR.env.ie&&!CKEDITOR.env.edge||this.attachListener(this,"mousedown", -function(b){var c=b.data.getTarget();c.is("img","hr","input","textarea","select")&&!c.isReadOnly()&&(a.getSelection().selectElement(c),c.is("input","textarea","select")&&b.data.preventDefault())});CKEDITOR.env.edge&&this.attachListener(this,"mouseup",function(b){(b=b.data.getTarget())&&b.is("img")&&a.getSelection().selectElement(b)});CKEDITOR.env.gecko&&this.attachListener(this,"mouseup",function(b){if(2==b.data.$.button&&(b=b.data.getTarget(),!b.getOuterHtml().replace(G,""))){var c=a.createRange(); -c.moveToElementEditStart(b);c.select(!0)}});CKEDITOR.env.webkit&&(this.attachListener(this,"click",function(a){a.data.getTarget().is("input","select")&&a.data.preventDefault()}),this.attachListener(this,"mouseup",function(a){a.data.getTarget().is("input","textarea")&&a.data.preventDefault()}));CKEDITOR.env.webkit&&this.attachListener(a,"key",function(b){if(a.readOnly)return!0;var c=b.data.domEvent.getKey();if(c in y&&(b=a.getSelection(),0!==b.getRanges().length)){var c=8==c,d=b.getRanges()[0];b=d.startPath(); -if(d.collapsed)a:{var e=b.block;if(e&&d[c?"checkStartOfBlock":"checkEndOfBlock"]()&&d.moveToClosestEditablePosition(e,!c)&&d.collapsed){if(d.startContainer.type==CKEDITOR.NODE_ELEMENT){var f=d.startContainer.getChild(d.startOffset-(c?1:0));if(f&&f.type==CKEDITOR.NODE_ELEMENT&&f.is("hr")){a.fire("saveSnapshot");f.remove();b=!0;break a}}d=d.startPath().block;if(!d||d&&d.contains(e))b=void 0;else{a.fire("saveSnapshot");var p;(p=(c?d:e).getBogus())&&p.remove();p=a.getSelection();f=p.createBookmarks(); -(c?e:d).moveChildren(c?d:e,!1);b.lastElement.mergeSiblings();q(e,d,!c);p.selectBookmarks(f);b=!0}}else b=!1}else c=d,p=b.block,d=c.endPath().block,p&&d&&!p.equals(d)?(a.fire("saveSnapshot"),(e=p.getBogus())&&e.remove(),c.enlarge(CKEDITOR.ENLARGE_INLINE),c.deleteContents(),d.getParent()&&(d.moveChildren(p,!1),b.lastElement.mergeSiblings(),q(p,d,!0)),c=a.getSelection().getRanges()[0],c.collapse(1),c.optimize(),""===c.startContainer.getHtml()&&c.startContainer.appendBogus(),c.select(),b=!0):b=!1;if(!b)return; -a.getSelection().scrollIntoView();a.fire("saveSnapshot");return!1}},this,null,100)}}},_:{detach:function(){this.editor.setData(this.editor.getData(),0,1);this.clearListeners();this.restoreAttrs();var a;if(a=this.removeCustomData("classes"))for(;a.length;)this.removeClass(a.pop());if(!this.is("textarea")){a=this.getDocument();var b=a.getHead();if(b.getCustomData("stylesheet")){var c=a.getCustomData("stylesheet_ref");--c?a.setCustomData("stylesheet_ref",c):(a.removeCustomData("stylesheet_ref"),b.removeCustomData("stylesheet").remove())}}this.editor.fire("contentDomUnload"); -delete this.editor}}});CKEDITOR.editor.prototype.editable=function(a){var b=this._.editable;if(b&&a)return 0;arguments.length&&(b=this._.editable=a?a instanceof CKEDITOR.editable?a:new CKEDITOR.editable(this,a):(b&&b.detach(),null));return b};CKEDITOR.on("instanceLoaded",function(b){var c=b.editor;c.on("insertElement",function(a){a=a.data;a.type==CKEDITOR.NODE_ELEMENT&&(a.is("input")||a.is("textarea"))&&("false"!=a.getAttribute("contentEditable")&&a.data("cke-editable",a.hasAttribute("contenteditable")? -"true":"1"),a.setAttribute("contentEditable",!1))});c.on("selectionChange",function(b){if(!c.readOnly){var d=c.getSelection();d&&!d.isLocked&&(d=c.checkDirty(),c.fire("lockSnapshot"),a(b),c.fire("unlockSnapshot"),!d&&c.resetDirty())}})});CKEDITOR.on("instanceCreated",function(a){var b=a.editor;b.on("mode",function(){var a=b.editable();if(a&&a.isInline()){var c=b.title;a.changeAttr("role","textbox");a.changeAttr("aria-label",c);c&&a.changeAttr("title",c);var d=b.fire("ariaEditorHelpLabel",{}).label; -if(d&&(c=this.ui.space(this.elementMode==CKEDITOR.ELEMENT_MODE_INLINE?"top":"contents"))){var e=CKEDITOR.tools.getNextId(),d=CKEDITOR.dom.element.createFromHtml('\x3cspan id\x3d"'+e+'" class\x3d"cke_voice_label"\x3e'+d+"\x3c/span\x3e");c.append(d);a.changeAttr("aria-describedby",e)}}})});CKEDITOR.addCss(".cke_editable{cursor:text}.cke_editable img,.cke_editable input,.cke_editable textarea{cursor:default}");f=CKEDITOR.dom.walker.whitespaces(!0);D=CKEDITOR.dom.walker.bookmark(!1,!0);w=CKEDITOR.dom.walker.empty(); -A=CKEDITOR.dom.walker.bogus();G=/(^|<body\b[^>]*>)\s*<(p|div|address|h\d|center|pre)[^>]*>\s*(?:<br[^>]*>|&nbsp;|\u00A0|&#160;)?\s*(:?<\/\2>)?\s*(?=$|<\/body>)/gi;x=function(){function a(b){return b.type==CKEDITOR.NODE_ELEMENT}function b(c,d){var e,f,u,g,y=[],k=d.range.startContainer;e=d.range.startPath();for(var k=v[k.getName()],h=0,B=c.getChildren(),n=B.count(),L=-1,q=-1,E=0,H=e.contains(v.$list);h<n;++h)e=B.getItem(h),a(e)?(u=e.getName(),H&&u in CKEDITOR.dtd.$list?y=y.concat(b(e,d)):(g=!!k[u], -"br"!=u||!e.data("cke-eol")||h&&h!=n-1||(E=(f=h?y[h-1].node:B.getItem(h+1))&&(!a(f)||!f.is("br")),f=f&&a(f)&&v.$block[f.getName()]),-1!=L||g||(L=h),g||(q=h),y.push({isElement:1,isLineBreak:E,isBlock:e.isBlockBoundary(),hasBlockSibling:f,node:e,name:u,allowed:g}),f=E=0)):y.push({isElement:0,node:e,allowed:1});-1<L&&(y[L].firstNotAllowed=1);-1<q&&(y[q].lastNotAllowed=1);return y}function d(b,c){var e=[],f=b.getChildren(),u=f.count(),g,y=0,k=v[c],h=!b.is(v.$inline)||b.is("br");for(h&&e.push(" ");y<u;y++)g= -f.getItem(y),a(g)&&!g.is(k)?e=e.concat(d(g,c)):e.push(g);h&&e.push(" ");return e}function e(b){return a(b.startContainer)&&b.startContainer.getChild(b.startOffset-1)}function f(b){return b&&a(b)&&(b.is(v.$removeEmpty)||b.is("a")&&!b.isBlockBoundary())}function u(b,c,d,e){var f=b.clone(),g,v;f.setEndAt(c,CKEDITOR.POSITION_BEFORE_END);(g=(new CKEDITOR.dom.walker(f)).next())&&a(g)&&B[g.getName()]&&(v=g.getPrevious())&&a(v)&&!v.getParent().equals(b.startContainer)&&d.contains(v)&&e.contains(g)&&g.isIdentical(v)&& -(g.moveChildren(v),g.remove(),u(b,c,d,e))}function g(b,c){function d(b,c){if(c.isBlock&&c.isElement&&!c.node.is("br")&&a(b)&&b.is("br"))return b.remove(),1}var e=c.endContainer.getChild(c.endOffset),f=c.endContainer.getChild(c.endOffset-1);e&&d(e,b[b.length-1]);f&&d(f,b[0])&&(c.setEnd(c.endContainer,c.endOffset-1),c.collapse())}var v=CKEDITOR.dtd,B={p:1,div:1,h1:1,h2:1,h3:1,h4:1,h5:1,h6:1,ul:1,ol:1,li:1,pre:1,dl:1,blockquote:1},L={p:1,div:1,h1:1,h2:1,h3:1,h4:1,h5:1,h6:1},n=CKEDITOR.tools.extend({}, -v.$inline);delete n.br;return function(B,p,C,t){var F=B.editor,N=!1;"unfiltered_html"==p&&(p="html",N=!0);if(!t.checkReadOnly()){var q=(new CKEDITOR.dom.elementPath(t.startContainer,t.root)).blockLimit||t.root;B={type:p,dontFilter:N,editable:B,editor:F,range:t,blockLimit:q,mergeCandidates:[],zombies:[]};p=B.range;t=B.mergeCandidates;var m,w;"text"==B.type&&p.shrink(CKEDITOR.SHRINK_ELEMENT,!0,!1)&&(m=CKEDITOR.dom.element.createFromHtml("\x3cspan\x3e\x26nbsp;\x3c/span\x3e",p.document),p.insertNode(m), -p.setStartAfter(m));N=new CKEDITOR.dom.elementPath(p.startContainer);B.endPath=q=new CKEDITOR.dom.elementPath(p.endContainer);if(!p.collapsed){var F=q.block||q.blockLimit,x=p.getCommonAncestor();F&&!F.equals(x)&&!F.contains(x)&&p.checkEndOfBlock()&&B.zombies.push(F);p.deleteContents()}for(;(w=e(p))&&a(w)&&w.isBlockBoundary()&&N.contains(w);)p.moveToPosition(w,CKEDITOR.POSITION_BEFORE_END);u(p,B.blockLimit,N,q);m&&(p.setEndBefore(m),p.collapse(),m.remove());m=p.startPath();if(F=m.contains(f,!1,1))p.splitElement(F), -B.inlineStylesRoot=F,B.inlineStylesPeak=m.lastElement;m=p.createBookmark();(F=m.startNode.getPrevious(c))&&a(F)&&f(F)&&t.push(F);(F=m.startNode.getNext(c))&&a(F)&&f(F)&&t.push(F);for(F=m.startNode;(F=F.getParent())&&f(F);)t.push(F);p.moveToBookmark(m);if(m=C){m=B.range;if("text"==B.type&&B.inlineStylesRoot){w=B.inlineStylesPeak;p=w.getDocument().createText("{cke-peak}");for(t=B.inlineStylesRoot.getParent();!w.equals(t);)p=p.appendTo(w.clone()),w=w.getParent();C=p.getOuterHtml().split("{cke-peak}").join(C)}w= -B.blockLimit.getName();if(/^\s+|\s+$/.test(C)&&"span"in CKEDITOR.dtd[w]){var D='\x3cspan data-cke-marker\x3d"1"\x3e\x26nbsp;\x3c/span\x3e';C=D+C+D}C=B.editor.dataProcessor.toHtml(C,{context:null,fixForBody:!1,protectedWhitespaces:!!D,dontFilter:B.dontFilter,filter:B.editor.activeFilter,enterMode:B.editor.activeEnterMode});w=m.document.createElement("body");w.setHtml(C);D&&(w.getFirst().remove(),w.getLast().remove());if((D=m.startPath().block)&&(1!=D.getChildCount()||!D.getBogus()))a:{var A;if(1== -w.getChildCount()&&a(A=w.getFirst())&&A.is(L)&&!A.hasAttribute("contenteditable")){D=A.getElementsByTag("*");m=0;for(t=D.count();m<t;m++)if(p=D.getItem(m),!p.is(n))break a;A.moveChildren(A.getParent(1));A.remove()}}B.dataWrapper=w;m=C}if(m){A=B.range;m=A.document;var M;w=B.blockLimit;t=0;var z,D=[],G,S;C=F=0;var I,K;p=A.startContainer;var N=B.endPath.elements[0],W,q=N.getPosition(p),x=!!N.getCommonAncestor(p)&&q!=CKEDITOR.POSITION_IDENTICAL&&!(q&CKEDITOR.POSITION_CONTAINS+CKEDITOR.POSITION_IS_CONTAINED); -p=b(B.dataWrapper,B);for(g(p,A);t<p.length;t++){q=p[t];if(M=q.isLineBreak){M=A;I=w;var R=void 0,Z=void 0;q.hasBlockSibling?M=1:(R=M.startContainer.getAscendant(v.$block,1))&&R.is({div:1,p:1})?(Z=R.getPosition(I),Z==CKEDITOR.POSITION_IDENTICAL||Z==CKEDITOR.POSITION_CONTAINS?M=0:(I=M.splitElement(R),M.moveToPosition(I,CKEDITOR.POSITION_AFTER_START),M=1)):M=0}if(M)C=0<t;else{M=A.startPath();!q.isBlock&&h(B.editor,M.block,M.blockLimit)&&(S=k(B.editor))&&(S=m.createElement(S),S.appendBogus(),A.insertNode(S), -CKEDITOR.env.needsBrFiller&&(z=S.getBogus())&&z.remove(),A.moveToPosition(S,CKEDITOR.POSITION_BEFORE_END));if((M=A.startPath().block)&&!M.equals(G)){if(z=M.getBogus())z.remove(),D.push(M);G=M}q.firstNotAllowed&&(F=1);if(F&&q.isElement){M=A.startContainer;for(I=null;M&&!v[M.getName()][q.name];){if(M.equals(w)){M=null;break}I=M;M=M.getParent()}if(M)I&&(K=A.splitElement(I),B.zombies.push(K),B.zombies.push(I));else{I=w.getName();W=!t;M=t==p.length-1;I=d(q.node,I);for(var R=[],Z=I.length,aa=0,ca=void 0, -da=0,T=-1;aa<Z;aa++)ca=I[aa]," "==ca?(da||W&&!aa||(R.push(new CKEDITOR.dom.text(" ")),T=R.length),da=1):(R.push(ca),da=0);M&&T==R.length&&R.pop();W=R}}if(W){for(;M=W.pop();)A.insertNode(M);W=0}else A.insertNode(q.node);q.lastNotAllowed&&t<p.length-1&&((K=x?N:K)&&A.setEndAt(K,CKEDITOR.POSITION_AFTER_START),F=0);A.collapse()}}1!=p.length?z=!1:(z=p[0],z=z.isElement&&"false"==z.node.getAttribute("contenteditable"));z&&(C=!0,M=p[0].node,A.setStartAt(M,CKEDITOR.POSITION_BEFORE_START),A.setEndAt(M,CKEDITOR.POSITION_AFTER_END)); -B.dontMoveCaret=C;B.bogusNeededBlocks=D}z=B.range;var Q;K=B.bogusNeededBlocks;for(W=z.createBookmark();G=B.zombies.pop();)G.getParent()&&(S=z.clone(),S.moveToElementEditStart(G),S.removeEmptyBlocksAtEnd());if(K)for(;G=K.pop();)CKEDITOR.env.needsBrFiller?G.appendBogus():G.append(z.document.createText(" "));for(;G=B.mergeCandidates.pop();)G.mergeSiblings();z.moveToBookmark(W);if(!B.dontMoveCaret){for(G=e(z);G&&a(G)&&!G.is(v.$empty);){if(G.isBlockBoundary())z.moveToPosition(G,CKEDITOR.POSITION_BEFORE_END); -else{if(f(G)&&G.getHtml().match(/(\s|&nbsp;)$/g)){Q=null;break}Q=z.clone();Q.moveToPosition(G,CKEDITOR.POSITION_BEFORE_END)}G=G.getLast(c)}Q&&z.moveToRange(Q)}}}}();m=function(){function a(b){b=new CKEDITOR.dom.walker(b);b.guard=function(a,b){if(b)return!1;if(a.type==CKEDITOR.NODE_ELEMENT)return a.is(CKEDITOR.dtd.$tableContent)};b.evaluator=function(a){return a.type==CKEDITOR.NODE_ELEMENT};return b}function b(a,c,d){c=a.getDocument().createElement(c);a.append(c,d);return c}function c(a){var b=a.count(), -d;for(b;0<b--;)d=a.getItem(b),CKEDITOR.tools.trim(d.getHtml())||(d.appendBogus(),CKEDITOR.env.ie&&9>CKEDITOR.env.version&&d.getChildCount()&&d.getFirst().remove())}return function(d){var e=d.startContainer,f=e.getAscendant("table",1),g=!1;c(f.getElementsByTag("td"));c(f.getElementsByTag("th"));f=d.clone();f.setStart(e,0);f=a(f).lastBackward();f||(f=d.clone(),f.setEndAt(e,CKEDITOR.POSITION_BEFORE_END),f=a(f).lastForward(),g=!0);f||(f=e);f.is("table")?(d.setStartAt(f,CKEDITOR.POSITION_BEFORE_START), -d.collapse(!0),f.remove()):(f.is({tbody:1,thead:1,tfoot:1})&&(f=b(f,"tr",g)),f.is("tr")&&(f=b(f,f.getParent().is("thead")?"th":"td",g)),(e=f.getBogus())&&e.remove(),d.moveToPosition(f,g?CKEDITOR.POSITION_AFTER_START:CKEDITOR.POSITION_BEFORE_END))}}();K=function(){function a(b){b=new CKEDITOR.dom.walker(b);b.guard=function(a,b){if(b)return!1;if(a.type==CKEDITOR.NODE_ELEMENT)return a.is(CKEDITOR.dtd.$list)||a.is(CKEDITOR.dtd.$listItem)};b.evaluator=function(a){return a.type==CKEDITOR.NODE_ELEMENT&& -a.is(CKEDITOR.dtd.$listItem)};return b}return function(b){var c=b.startContainer,d=!1,e;e=b.clone();e.setStart(c,0);e=a(e).lastBackward();e||(e=b.clone(),e.setEndAt(c,CKEDITOR.POSITION_BEFORE_END),e=a(e).lastForward(),d=!0);e||(e=c);e.is(CKEDITOR.dtd.$list)?(b.setStartAt(e,CKEDITOR.POSITION_BEFORE_START),b.collapse(!0),e.remove()):((c=e.getBogus())&&c.remove(),b.moveToPosition(e,d?CKEDITOR.POSITION_AFTER_START:CKEDITOR.POSITION_BEFORE_END),b.select())}}();z={eol:{detect:function(a,b){var c=a.range, -d=c.clone(),e=c.clone(),f=new CKEDITOR.dom.elementPath(c.startContainer,b),g=new CKEDITOR.dom.elementPath(c.endContainer,b);d.collapse(1);e.collapse();f.block&&d.checkBoundaryOfElement(f.block,CKEDITOR.END)&&(c.setStartAfter(f.block),a.prependEolBr=1);g.block&&e.checkBoundaryOfElement(g.block,CKEDITOR.START)&&(c.setEndBefore(g.block),a.appendEolBr=1)},fix:function(a,b){var c=b.getDocument(),d;a.appendEolBr&&(d=this.createEolBr(c),a.fragment.append(d));!a.prependEolBr||d&&!d.getPrevious()||a.fragment.append(this.createEolBr(c), -1)},createEolBr:function(a){return a.createElement("br",{attributes:{"data-cke-eol":1}})}},bogus:{exclude:function(a){var b=a.range.getBoundaryNodes(),c=b.startNode,b=b.endNode;!b||!A(b)||c&&c.equals(b)||a.range.setEndBefore(b)}},tree:{rebuild:function(a,b){var c=a.range,d=c.getCommonAncestor(),e=new CKEDITOR.dom.elementPath(d,b),f=new CKEDITOR.dom.elementPath(c.startContainer,b),c=new CKEDITOR.dom.elementPath(c.endContainer,b),g;d.type==CKEDITOR.NODE_TEXT&&(d=d.getParent());if(e.blockLimit.is({tr:1, -table:1})){var v=e.contains("table").getParent();g=function(a){return!a.equals(v)}}else if(e.block&&e.block.is(CKEDITOR.dtd.$listItem)&&(f=f.contains(CKEDITOR.dtd.$list),c=c.contains(CKEDITOR.dtd.$list),!f.equals(c))){var k=e.contains(CKEDITOR.dtd.$list).getParent();g=function(a){return!a.equals(k)}}g||(g=function(a){return!a.equals(e.block)&&!a.equals(e.blockLimit)});this.rebuildFragment(a,b,d,g)},rebuildFragment:function(a,b,c,d){for(var e;c&&!c.equals(b)&&d(c);)e=c.clone(0,1),a.fragment.appendTo(e), -a.fragment=e,c=c.getParent()}},cell:{shrink:function(a){a=a.range;var b=a.startContainer,c=a.endContainer,d=a.startOffset,e=a.endOffset;b.type==CKEDITOR.NODE_ELEMENT&&b.equals(c)&&b.is("tr")&&++d==e&&a.shrink(CKEDITOR.SHRINK_TEXT)}}};I=function(){function a(b,c){var d=b.getParent();if(d.is(CKEDITOR.dtd.$inline))b[c?"insertBefore":"insertAfter"](d)}function b(c,d,e){a(d);a(e,1);for(var f;f=e.getNext();)f.insertAfter(d),d=f;w(c)&&c.remove()}function c(a,b){var d=new CKEDITOR.dom.range(a);d.setStartAfter(b.startNode); -d.setEndBefore(b.endNode);return d}return{list:{detectMerge:function(a,b){var d=c(b,a.bookmark),e=d.startPath(),f=d.endPath(),g=e.contains(CKEDITOR.dtd.$list),k=f.contains(CKEDITOR.dtd.$list);a.mergeList=g&&k&&g.getParent().equals(k.getParent())&&!g.equals(k);a.mergeListItems=e.block&&f.block&&e.block.is(CKEDITOR.dtd.$listItem)&&f.block.is(CKEDITOR.dtd.$listItem);if(a.mergeList||a.mergeListItems)d=d.clone(),d.setStartBefore(a.bookmark.startNode),d.setEndAfter(a.bookmark.endNode),a.mergeListBookmark= -d.createBookmark()},merge:function(a,c){if(a.mergeListBookmark){var d=a.mergeListBookmark.startNode,e=a.mergeListBookmark.endNode,f=new CKEDITOR.dom.elementPath(d,c),g=new CKEDITOR.dom.elementPath(e,c);if(a.mergeList){var k=f.contains(CKEDITOR.dtd.$list),h=g.contains(CKEDITOR.dtd.$list);k.equals(h)||(h.moveChildren(k),h.remove())}a.mergeListItems&&(f=f.contains(CKEDITOR.dtd.$listItem),g=g.contains(CKEDITOR.dtd.$listItem),f.equals(g)||b(g,d,e));d.remove();e.remove()}}},block:{detectMerge:function(a, -b){if(!a.tableContentsRanges&&!a.mergeListBookmark){var c=new CKEDITOR.dom.range(b);c.setStartBefore(a.bookmark.startNode);c.setEndAfter(a.bookmark.endNode);a.mergeBlockBookmark=c.createBookmark()}},merge:function(a,c){if(a.mergeBlockBookmark&&!a.purgeTableBookmark){var d=a.mergeBlockBookmark.startNode,e=a.mergeBlockBookmark.endNode,f=new CKEDITOR.dom.elementPath(d,c),g=new CKEDITOR.dom.elementPath(e,c),f=f.block,g=g.block;f&&g&&!f.equals(g)&&b(g,d,e);d.remove();e.remove()}}},table:function(){function a(c){var e= -[],f,g=new CKEDITOR.dom.walker(c),k=c.startPath().contains(d),h=c.endPath().contains(d),p={};g.guard=function(a,g){if(a.type==CKEDITOR.NODE_ELEMENT){var F="visited_"+(g?"out":"in");if(a.getCustomData(F))return;CKEDITOR.dom.element.setMarker(p,a,F,1)}if(g&&k&&a.equals(k))f=c.clone(),f.setEndAt(k,CKEDITOR.POSITION_BEFORE_END),e.push(f);else if(!g&&h&&a.equals(h))f=c.clone(),f.setStartAt(h,CKEDITOR.POSITION_AFTER_START),e.push(f);else{if(F=!g)F=a.type==CKEDITOR.NODE_ELEMENT&&a.is(d)&&(!k||b(a,k))&&(!h|| -b(a,h));F&&(f=c.clone(),f.selectNodeContents(a),e.push(f))}};g.lastForward();CKEDITOR.dom.element.clearAllMarkers(p);return e}function b(a,c){var d=CKEDITOR.POSITION_CONTAINS+CKEDITOR.POSITION_IS_CONTAINED,e=a.getPosition(c);return e===CKEDITOR.POSITION_IDENTICAL?!1:0===(e&d)}var d={td:1,th:1,caption:1};return{detectPurge:function(a){var b=a.range,c=b.clone();c.enlarge(CKEDITOR.ENLARGE_ELEMENT);var c=new CKEDITOR.dom.walker(c),e=0;c.evaluator=function(a){a.type==CKEDITOR.NODE_ELEMENT&&a.is(d)&&++e}; -c.checkForward();if(1<e){var c=b.startPath().contains("table"),f=b.endPath().contains("table");c&&f&&b.checkBoundaryOfElement(c,CKEDITOR.START)&&b.checkBoundaryOfElement(f,CKEDITOR.END)&&(b=a.range.clone(),b.setStartBefore(c),b.setEndAfter(f),a.purgeTableBookmark=b.createBookmark())}},detectRanges:function(e,f){var g=c(f,e.bookmark),k=g.clone(),h,l,p=g.getCommonAncestor();p.is(CKEDITOR.dtd.$tableContent)&&!p.is(d)&&(p=p.getAscendant("table",!0));l=p;p=new CKEDITOR.dom.elementPath(g.startContainer, -l);l=new CKEDITOR.dom.elementPath(g.endContainer,l);p=p.contains("table");l=l.contains("table");if(p||l)p&&l&&b(p,l)?(e.tableSurroundingRange=k,k.setStartAt(p,CKEDITOR.POSITION_AFTER_END),k.setEndAt(l,CKEDITOR.POSITION_BEFORE_START),k=g.clone(),k.setEndAt(p,CKEDITOR.POSITION_AFTER_END),h=g.clone(),h.setStartAt(l,CKEDITOR.POSITION_BEFORE_START),h=a(k).concat(a(h))):p?l||(e.tableSurroundingRange=k,k.setStartAt(p,CKEDITOR.POSITION_AFTER_END),g.setEndAt(p,CKEDITOR.POSITION_AFTER_END)):(e.tableSurroundingRange= -k,k.setEndAt(l,CKEDITOR.POSITION_BEFORE_START),g.setStartAt(l,CKEDITOR.POSITION_AFTER_START)),e.tableContentsRanges=h?h:a(g)},deleteRanges:function(a){for(var b;b=a.tableContentsRanges.pop();)b.extractContents(),w(b.startContainer)&&b.startContainer.appendBogus();a.tableSurroundingRange&&a.tableSurroundingRange.extractContents()},purge:function(a){if(a.purgeTableBookmark){var b=a.doc,c=a.range.clone(),b=b.createElement("p");b.insertBefore(a.purgeTableBookmark.startNode);c.moveToBookmark(a.purgeTableBookmark); -c.deleteContents();a.range.moveToPosition(b,CKEDITOR.POSITION_AFTER_START)}}}}(),detectExtractMerge:function(a){return!(a.range.startPath().contains(CKEDITOR.dtd.$listItem)&&a.range.endPath().contains(CKEDITOR.dtd.$listItem))},fixUneditableRangePosition:function(a){a.startContainer.getDtd()["#"]||a.moveToClosestEditablePosition(null,!0)},autoParagraph:function(a,b){var c=b.startPath(),d;h(a,c.block,c.blockLimit)&&(d=k(a))&&(d=b.document.createElement(d),d.appendBogus(),b.insertNode(d),b.moveToPosition(d, -CKEDITOR.POSITION_AFTER_START))}}}()})(); -(function(){function a(a,b){if(0===a.length)return!1;var c,d;if((c=!b&&1===a.length)&&!(c=a[0].collapsed)){var e=a[0];c=e.startContainer.getAscendant({td:1,th:1},!0);var f=e.endContainer.getAscendant({td:1,th:1},!0);d=CKEDITOR.tools.trim;c&&c.equals(f)&&!c.findOne("td, th, tr, tbody, table")?(e=e.cloneContents(),c=e.getFirst()?d(e.getFirst().getText())!==d(c.getText()):!0):c=!1}if(c)return!1;for(d=0;d<a.length;d++)if(c=a[d]._getTableElement(),!c)return!1;return!0}function d(a){function b(a){a=a.find("td, th"); -var c=[],d;for(d=0;d<a.count();d++)c.push(a.getItem(d));return c}var c=[],d,e;for(e=0;e<a.length;e++)d=a[e]._getTableElement(),d.is&&d.is({td:1,th:1})?c.push(d):c=c.concat(b(d));return c}function b(a){a=d(a);var b="",c=[],e,f;for(f=0;f<a.length;f++)e&&!e.equals(a[f].getAscendant("tr"))?(b+=c.join("\t")+"\n",e=a[f].getAscendant("tr"),c=[]):0===f&&(e=a[f].getAscendant("tr")),c.push(a[f].getText());return b+=c.join("\t")}function c(a){var c=this.root.editor,d=c.getSelection(1);this.reset();I=!0;d.root.once("selectionchange", -function(a){a.cancel()},null,null,0);d.selectRanges([a[0]]);d=this._.cache;d.ranges=new CKEDITOR.dom.rangeList(a);d.type=CKEDITOR.SELECTION_TEXT;d.selectedElement=a[0]._getTableElement();d.selectedText=b(a);d.nativeSel=null;this.isFake=1;this.rev=m++;c._.fakeSelection=this;I=!1;this.root.fire("selectionchange")}function e(){var b=this._.fakeSelection,c;if(b){c=this.getSelection(1);var d;if(!(d=!c)&&(d=!c.isHidden())){d=b;var e=c.getRanges(),f=d.getRanges(),g=e.length&&e[0]._getTableElement()&&e[0]._getTableElement().getAscendant("table", -!0),k=f.length&&f[0]._getTableElement()&&f[0]._getTableElement().getAscendant("table",!0),p=1===e.length&&e[0]._getTableElement()&&e[0]._getTableElement().is("table"),h=1===f.length&&f[0]._getTableElement()&&f[0]._getTableElement().is("table"),t=1===e.length&&e[0].collapsed,f=a(e,!!CKEDITOR.env.webkit)&&a(f);g=g&&k?g.equals(k)||k.contains(g):!1;g&&(t||f)?(p&&!h&&d.selectRanges(e),d=!0):d=!1;d=!d}d&&(b.reset(),b=0)}if(!b&&(b=c||this.getSelection(1),!b||b.getType()==CKEDITOR.SELECTION_NONE))return; -this.fire("selectionCheck",b);c=this.elementPath();c.compare(this._.selectionPreviousPath)||(d=this._.selectionPreviousPath&&this._.selectionPreviousPath.blockLimit.equals(c.blockLimit),CKEDITOR.env.webkit&&!d&&(this._.previousActive=this.document.getActive()),this._.selectionPreviousPath=c,this.fire("selectionChange",{selection:b,path:c}))}function g(){r=!0;l||(h.call(this),l=CKEDITOR.tools.setTimeout(h,200,this))}function h(){l=null;r&&(CKEDITOR.tools.setTimeout(e,0,this),r=!1)}function k(a){return J(a)|| -a.type==CKEDITOR.NODE_ELEMENT&&!a.is(CKEDITOR.dtd.$empty)?!0:!1}function n(a){function b(c,d){return c&&c.type!=CKEDITOR.NODE_TEXT?a.clone()["moveToElementEdit"+(d?"End":"Start")](c):!1}if(!(a.root instanceof CKEDITOR.editable))return!1;var c=a.startContainer,d=a.getPreviousNode(k,null,c),e=a.getNextNode(k,null,c);return b(d)||b(e,1)||!(d||e||c.type==CKEDITOR.NODE_ELEMENT&&c.isBlockBoundary()&&c.getBogus())?!0:!1}function q(a){f(a,!1);var b=a.getDocument().createText(K);a.setCustomData("cke-fillingChar", -b);return b}function f(a,b){var c=a&&a.removeCustomData("cke-fillingChar");if(c){if(!1!==b){var d=a.getDocument().getSelection().getNative(),e=d&&"None"!=d.type&&d.getRangeAt(0),f=K.length;if(c.getLength()>f&&e&&e.intersectsNode(c.$)){var g=[{node:d.anchorNode,offset:d.anchorOffset},{node:d.focusNode,offset:d.focusOffset}];d.anchorNode==c.$&&d.anchorOffset>f&&(g[0].offset-=f);d.focusNode==c.$&&d.focusOffset>f&&(g[1].offset-=f)}}c.setText(D(c.getText(),1));g&&(c=a.getDocument().$,d=c.getSelection(), -c=c.createRange(),c.setStart(g[0].node,g[0].offset),c.collapse(!0),d.removeAllRanges(),d.addRange(c),d.extend(g[1].node,g[1].offset))}}function D(a,b){return b?a.replace(z,function(a,b){return b?" ":""}):a.replace(K,"")}function w(a,b){var c=CKEDITOR.dom.element.createFromHtml('\x3cdiv data-cke-hidden-sel\x3d"1" data-cke-temp\x3d"1" style\x3d"'+(CKEDITOR.env.ie&&14>CKEDITOR.env.version?"display:none":"position:fixed;top:0;left:-1000px")+'"\x3e'+(b||"\x26nbsp;")+"\x3c/div\x3e",a.document);a.fire("lockSnapshot"); -a.editable().append(c);var d=a.getSelection(1),e=a.createRange(),f=d.root.on("selectionchange",function(a){a.cancel()},null,null,0);e.setStartAt(c,CKEDITOR.POSITION_AFTER_START);e.setEndAt(c,CKEDITOR.POSITION_BEFORE_END);d.selectRanges([e]);f.removeListener();a.fire("unlockSnapshot");a._.hiddenSelectionContainer=c}function A(a){var b={37:1,39:1,8:1,46:1};return function(c){var d=c.data.getKeystroke();if(b[d]){var e=a.getSelection().getRanges(),f=e[0];1==e.length&&f.collapsed&&(d=f[38>d?"getPreviousEditableNode": -"getNextEditableNode"]())&&d.type==CKEDITOR.NODE_ELEMENT&&"false"==d.getAttribute("contenteditable")&&(a.getSelection().fake(d),c.data.preventDefault(),c.cancel())}}}function G(a){for(var b=0;b<a.length;b++){var c=a[b];c.getCommonAncestor().isReadOnly()&&a.splice(b,1);if(!c.collapsed){if(c.startContainer.isReadOnly())for(var d=c.startContainer,e;d&&!((e=d.type==CKEDITOR.NODE_ELEMENT)&&d.is("body")||!d.isReadOnly());)e&&"false"==d.getAttribute("contentEditable")&&c.setStartAfter(d),d=d.getParent(); -d=c.startContainer;e=c.endContainer;var f=c.startOffset,g=c.endOffset,p=c.clone();d&&d.type==CKEDITOR.NODE_TEXT&&(f>=d.getLength()?p.setStartAfter(d):p.setStartBefore(d));e&&e.type==CKEDITOR.NODE_TEXT&&(g?p.setEndAfter(e):p.setEndBefore(e));d=new CKEDITOR.dom.walker(p);d.evaluator=function(d){if(d.type==CKEDITOR.NODE_ELEMENT&&d.isReadOnly()){var e=c.clone();c.setEndBefore(d);c.collapsed&&a.splice(b--,1);d.getPosition(p.endContainer)&CKEDITOR.POSITION_CONTAINS||(e.setStartAfter(d),e.collapsed||a.splice(b+ -1,0,e));return!0}return!1};d.next()}}return a}var x="function"!=typeof window.getSelection,m=1,K=CKEDITOR.tools.repeat("​",7),z=new RegExp(K+"( )?","g"),I,l,r,J=CKEDITOR.dom.walker.invisible(1),H=function(){function a(b){return function(a){var c=a.editor.createRange();c.moveToClosestEditablePosition(a.selected,b)&&a.editor.getSelection().selectRanges([c]);return!1}}function b(a){return function(b){var c=b.editor,d=c.createRange(),e;(e=d.moveToClosestEditablePosition(b.selected,a))||(e=d.moveToClosestEditablePosition(b.selected, -!a));e&&c.getSelection().selectRanges([d]);c.fire("saveSnapshot");b.selected.remove();e||(d.moveToElementEditablePosition(c.editable()),c.getSelection().selectRanges([d]));c.fire("saveSnapshot");return!1}}var c=a(),d=a(1);return{37:c,38:c,39:d,40:d,8:b(),46:b(1)}}();CKEDITOR.on("instanceCreated",function(a){function b(){var a=c.getSelection();a&&a.removeAllRanges()}var c=a.editor;c.on("contentDom",function(){function a(){q=new CKEDITOR.dom.selection(c.getSelection());q.lock()}function b(){p.removeListener("mouseup", -b);u.removeListener("mouseup",b);var a=CKEDITOR.document.$.selection,c=a.createRange();"None"!=a.type&&c.parentElement()&&c.parentElement().ownerDocument==k.$&&c.select()}function d(a){if(CKEDITOR.env.ie){var b=(a=a.getRanges()[0])?a.startContainer.getAscendant(function(a){return a.type==CKEDITOR.NODE_ELEMENT&&("false"==a.getAttribute("contenteditable")||"true"==a.getAttribute("contenteditable"))},!0):null;return a&&"false"==b.getAttribute("contenteditable")&&b}}var k=c.document,p=CKEDITOR.document, -h=c.editable(),t=k.getBody(),u=k.getDocumentElement(),l=h.isInline(),y,q;CKEDITOR.env.gecko&&h.attachListener(h,"focus",function(a){a.removeListener();0!==y&&(a=c.getSelection().getNative())&&a.isCollapsed&&a.anchorNode==h.$&&(a=c.createRange(),a.moveToElementEditStart(h),a.select())},null,null,-2);h.attachListener(h,CKEDITOR.env.webkit?"DOMFocusIn":"focus",function(){y&&CKEDITOR.env.webkit&&(y=c._.previousActive&&c._.previousActive.equals(k.getActive()))&&null!=c._.previousScrollTop&&c._.previousScrollTop!= -h.$.scrollTop&&(h.$.scrollTop=c._.previousScrollTop);c.unlockSelection(y);y=0},null,null,-1);h.attachListener(h,"mousedown",function(){y=0});if(CKEDITOR.env.ie||l)x?h.attachListener(h,"beforedeactivate",a,null,null,-1):h.attachListener(c,"selectionCheck",a,null,null,-1),h.attachListener(h,CKEDITOR.env.webkit?"DOMFocusOut":"blur",function(){c.lockSelection(q);y=1},null,null,-1),h.attachListener(h,"mousedown",function(){y=0});if(CKEDITOR.env.ie&&!l){var n;h.attachListener(h,"mousedown",function(a){2== -a.data.$.button&&((a=c.document.getSelection())&&a.getType()!=CKEDITOR.SELECTION_NONE||(n=c.window.getScrollPosition()))});h.attachListener(h,"mouseup",function(a){2==a.data.$.button&&n&&(c.document.$.documentElement.scrollLeft=n.x,c.document.$.documentElement.scrollTop=n.y);n=null});if("BackCompat"!=k.$.compatMode){if(CKEDITOR.env.ie7Compat||CKEDITOR.env.ie6Compat){var m,w;u.on("mousedown",function(a){function b(a){a=a.data.$;if(m){var c=t.$.createTextRange();try{c.moveToPoint(a.clientX,a.clientY)}catch(d){}m.setEndPoint(0> -w.compareEndPoints("StartToStart",c)?"EndToEnd":"StartToStart",c);m.select()}}function c(){u.removeListener("mousemove",b);p.removeListener("mouseup",c);u.removeListener("mouseup",c);m.select()}a=a.data;if(a.getTarget().is("html")&&a.$.y<u.$.clientHeight&&a.$.x<u.$.clientWidth){m=t.$.createTextRange();try{m.moveToPoint(a.$.clientX,a.$.clientY)}catch(d){}w=m.duplicate();u.on("mousemove",b);p.on("mouseup",c);u.on("mouseup",c)}})}if(7<CKEDITOR.env.version&&11>CKEDITOR.env.version)u.on("mousedown",function(a){a.data.getTarget().is("html")&& -(p.on("mouseup",b),u.on("mouseup",b))})}}h.attachListener(h,"selectionchange",e,c);h.attachListener(h,"keyup",g,c);h.attachListener(h,"keydown",function(a){var b=this.getSelection(1);d(b)&&(b.selectElement(d(b)),a.data.preventDefault())},c);h.attachListener(h,CKEDITOR.env.webkit?"DOMFocusIn":"focus",function(){c.forceNextSelectionCheck();c.selectionChange(1)});if(l&&(CKEDITOR.env.webkit||CKEDITOR.env.gecko)){var r;h.attachListener(h,"mousedown",function(){r=1});h.attachListener(k.getDocumentElement(), -"mouseup",function(){r&&g.call(c);r=0})}else h.attachListener(CKEDITOR.env.ie?h:k.getDocumentElement(),"mouseup",g,c);CKEDITOR.env.webkit&&h.attachListener(k,"keydown",function(a){switch(a.data.getKey()){case 13:case 33:case 34:case 35:case 36:case 37:case 39:case 8:case 45:case 46:h.hasFocus&&f(h)}},null,null,-1);h.attachListener(h,"keydown",A(c),null,null,-1)});c.on("setData",function(){c.unlockSelection();CKEDITOR.env.webkit&&b()});c.on("contentDomUnload",function(){c.unlockSelection()});if(CKEDITOR.env.ie9Compat)c.on("beforeDestroy", -b,null,null,9);c.on("dataReady",function(){delete c._.fakeSelection;delete c._.hiddenSelectionContainer;c.selectionChange(1)});c.on("loadSnapshot",function(){var a=CKEDITOR.dom.walker.nodeType(CKEDITOR.NODE_ELEMENT),b=c.editable().getLast(a);b&&b.hasAttribute("data-cke-hidden-sel")&&(b.remove(),CKEDITOR.env.gecko&&(a=c.editable().getFirst(a))&&a.is("br")&&a.getAttribute("_moz_editor_bogus_node")&&a.remove())},null,null,100);c.on("key",function(a){if("wysiwyg"==c.mode){var b=c.getSelection();if(b.isFake){var d= -H[a.data.keyCode];if(d)return d({editor:c,selected:b.getSelectedElement(),selection:b,keyEvent:a})}}})});if(CKEDITOR.env.webkit)CKEDITOR.on("instanceReady",function(a){var b=a.editor;b.on("selectionChange",function(){var a=b.editable(),c=a.getCustomData("cke-fillingChar");c&&(c.getCustomData("ready")?(f(a),a.editor.fire("selectionCheck")):c.setCustomData("ready",1))},null,null,-1);b.on("beforeSetMode",function(){f(b.editable())},null,null,-1);b.on("getSnapshot",function(a){a.data&&(a.data=D(a.data))}, -b,null,20);b.on("toDataFormat",function(a){a.data.dataValue=D(a.data.dataValue)},null,null,0)});CKEDITOR.editor.prototype.selectionChange=function(a){(a?e:g).call(this)};CKEDITOR.editor.prototype.getSelection=function(a){return!this._.savedSelection&&!this._.fakeSelection||a?(a=this.editable())&&"wysiwyg"==this.mode?new CKEDITOR.dom.selection(a):null:this._.savedSelection||this._.fakeSelection};CKEDITOR.editor.prototype.lockSelection=function(a){a=a||this.getSelection(1);return a.getType()!=CKEDITOR.SELECTION_NONE? -(!a.isLocked&&a.lock(),this._.savedSelection=a,!0):!1};CKEDITOR.editor.prototype.unlockSelection=function(a){var b=this._.savedSelection;return b?(b.unlock(a),delete this._.savedSelection,!0):!1};CKEDITOR.editor.prototype.forceNextSelectionCheck=function(){delete this._.selectionPreviousPath};CKEDITOR.dom.document.prototype.getSelection=function(){return new CKEDITOR.dom.selection(this)};CKEDITOR.dom.range.prototype.select=function(){var a=this.root instanceof CKEDITOR.editable?this.root.editor.getSelection(): -new CKEDITOR.dom.selection(this.root);a.selectRanges([this]);return a};CKEDITOR.SELECTION_NONE=1;CKEDITOR.SELECTION_TEXT=2;CKEDITOR.SELECTION_ELEMENT=3;CKEDITOR.dom.selection=function(a){if(a instanceof CKEDITOR.dom.selection){var b=a;a=a.root}var c=a instanceof CKEDITOR.dom.element;this.rev=b?b.rev:m++;this.document=a instanceof CKEDITOR.dom.document?a:a.getDocument();this.root=c?a:this.document.getBody();this.isLocked=0;this._={cache:{}};if(b)return CKEDITOR.tools.extend(this._.cache,b._.cache), -this.isFake=b.isFake,this.isLocked=b.isLocked,this;a=this.getNative();var d,e;if(a)if(a.getRangeAt)d=(e=a.rangeCount&&a.getRangeAt(0))&&new CKEDITOR.dom.node(e.commonAncestorContainer);else{try{e=a.createRange()}catch(f){}d=e&&CKEDITOR.dom.element.get(e.item&&e.item(0)||e.parentElement())}if(!d||d.type!=CKEDITOR.NODE_ELEMENT&&d.type!=CKEDITOR.NODE_TEXT||!this.root.equals(d)&&!this.root.contains(d))this._.cache.type=CKEDITOR.SELECTION_NONE,this._.cache.startElement=null,this._.cache.selectedElement= -null,this._.cache.selectedText="",this._.cache.ranges=new CKEDITOR.dom.rangeList;return this};var E={img:1,hr:1,li:1,table:1,tr:1,td:1,th:1,embed:1,object:1,ol:1,ul:1,a:1,input:1,form:1,select:1,textarea:1,button:1,fieldset:1,thead:1,tfoot:1};CKEDITOR.tools.extend(CKEDITOR.dom.selection,{_removeFillingCharSequenceString:D,_createFillingCharSequenceNode:q,FILLING_CHAR_SEQUENCE:K});CKEDITOR.dom.selection.prototype={getNative:function(){return void 0!==this._.cache.nativeSel?this._.cache.nativeSel:this._.cache.nativeSel= -x?this.document.$.selection:this.document.getWindow().$.getSelection()},getType:x?function(){var a=this._.cache;if(a.type)return a.type;var b=CKEDITOR.SELECTION_NONE;try{var c=this.getNative(),d=c.type;"Text"==d&&(b=CKEDITOR.SELECTION_TEXT);"Control"==d&&(b=CKEDITOR.SELECTION_ELEMENT);c.createRange().parentElement()&&(b=CKEDITOR.SELECTION_TEXT)}catch(e){}return a.type=b}:function(){var a=this._.cache;if(a.type)return a.type;var b=CKEDITOR.SELECTION_TEXT,c=this.getNative();if(!c||!c.rangeCount)b=CKEDITOR.SELECTION_NONE; -else if(1==c.rangeCount){var c=c.getRangeAt(0),d=c.startContainer;d==c.endContainer&&1==d.nodeType&&1==c.endOffset-c.startOffset&&E[d.childNodes[c.startOffset].nodeName.toLowerCase()]&&(b=CKEDITOR.SELECTION_ELEMENT)}return a.type=b},getRanges:function(){var a=x?function(){function a(b){return(new CKEDITOR.dom.node(b)).getIndex()}var b=function(b,c){b=b.duplicate();b.collapse(c);var d=b.parentElement();if(!d.hasChildNodes())return{container:d,offset:0};for(var e=d.children,f,g,h=b.duplicate(),k=0, -l=e.length-1,u=-1,q,n;k<=l;)if(u=Math.floor((k+l)/2),f=e[u],h.moveToElementText(f),q=h.compareEndPoints("StartToStart",b),0<q)l=u-1;else if(0>q)k=u+1;else return{container:d,offset:a(f)};if(-1==u||u==e.length-1&&0>q){h.moveToElementText(d);h.setEndPoint("StartToStart",b);h=h.text.replace(/(\r\n|\r)/g,"\n").length;e=d.childNodes;if(!h)return f=e[e.length-1],f.nodeType!=CKEDITOR.NODE_TEXT?{container:d,offset:e.length}:{container:f,offset:f.nodeValue.length};for(d=e.length;0<h&&0<d;)g=e[--d],g.nodeType== -CKEDITOR.NODE_TEXT&&(n=g,h-=g.nodeValue.length);return{container:n,offset:-h}}h.collapse(0<q?!0:!1);h.setEndPoint(0<q?"StartToStart":"EndToStart",b);h=h.text.replace(/(\r\n|\r)/g,"\n").length;if(!h)return{container:d,offset:a(f)+(0<q?0:1)};for(;0<h;)try{g=f[0<q?"previousSibling":"nextSibling"],g.nodeType==CKEDITOR.NODE_TEXT&&(h-=g.nodeValue.length,n=g),f=g}catch(m){return{container:d,offset:a(f)}}return{container:n,offset:0<q?-h:n.nodeValue.length+h}};return function(){var a=this.getNative(),c=a&& -a.createRange(),d=this.getType();if(!a)return[];if(d==CKEDITOR.SELECTION_TEXT)return a=new CKEDITOR.dom.range(this.root),d=b(c,!0),a.setStart(new CKEDITOR.dom.node(d.container),d.offset),d=b(c),a.setEnd(new CKEDITOR.dom.node(d.container),d.offset),a.endContainer.getPosition(a.startContainer)&CKEDITOR.POSITION_PRECEDING&&a.endOffset<=a.startContainer.getIndex()&&a.collapse(),[a];if(d==CKEDITOR.SELECTION_ELEMENT){for(var d=[],e=0;e<c.length;e++){for(var f=c.item(e),g=f.parentNode,h=0,a=new CKEDITOR.dom.range(this.root);h< -g.childNodes.length&&g.childNodes[h]!=f;h++);a.setStart(new CKEDITOR.dom.node(g),h);a.setEnd(new CKEDITOR.dom.node(g),h+1);d.push(a)}return d}return[]}}():function(){var a=[],b,c=this.getNative();if(!c)return a;for(var d=0;d<c.rangeCount;d++){var e=c.getRangeAt(d);b=new CKEDITOR.dom.range(this.root);b.setStart(new CKEDITOR.dom.node(e.startContainer),e.startOffset);b.setEnd(new CKEDITOR.dom.node(e.endContainer),e.endOffset);a.push(b)}return a};return function(b){var c=this._.cache,d=c.ranges;d||(c.ranges= -d=new CKEDITOR.dom.rangeList(a.call(this)));return b?G(new CKEDITOR.dom.rangeList(d.slice())):d}}(),getStartElement:function(){var a=this._.cache;if(void 0!==a.startElement)return a.startElement;var b;switch(this.getType()){case CKEDITOR.SELECTION_ELEMENT:return this.getSelectedElement();case CKEDITOR.SELECTION_TEXT:var c=this.getRanges()[0];if(c){if(c.collapsed)b=c.startContainer,b.type!=CKEDITOR.NODE_ELEMENT&&(b=b.getParent());else{for(c.optimize();b=c.startContainer,c.startOffset==(b.getChildCount? -b.getChildCount():b.getLength())&&!b.isBlockBoundary();)c.setStartAfter(b);b=c.startContainer;if(b.type!=CKEDITOR.NODE_ELEMENT)return b.getParent();if((b=b.getChild(c.startOffset))&&b.type==CKEDITOR.NODE_ELEMENT)for(c=b.getFirst();c&&c.type==CKEDITOR.NODE_ELEMENT;)b=c,c=c.getFirst();else b=c.startContainer}b=b.$}}return a.startElement=b?new CKEDITOR.dom.element(b):null},getSelectedElement:function(){var a=this._.cache;if(void 0!==a.selectedElement)return a.selectedElement;var b=this,c=CKEDITOR.tools.tryThese(function(){return b.getNative().createRange().item(0)}, -function(){for(var a=b.getRanges()[0].clone(),c,d,e=2;e&&!((c=a.getEnclosedNode())&&c.type==CKEDITOR.NODE_ELEMENT&&E[c.getName()]&&(d=c));e--)a.shrink(CKEDITOR.SHRINK_ELEMENT);return d&&d.$});return a.selectedElement=c?new CKEDITOR.dom.element(c):null},getSelectedText:function(){var a=this._.cache;if(void 0!==a.selectedText)return a.selectedText;var b=this.getNative(),b=x?"Control"==b.type?"":b.createRange().text:b.toString();return a.selectedText=b},lock:function(){this.getRanges();this.getStartElement(); -this.getSelectedElement();this.getSelectedText();this._.cache.nativeSel=null;this.isLocked=1},unlock:function(b){if(this.isLocked){if(b)var d=this.getSelectedElement(),e=this.getRanges(),f=this.isFake;this.isLocked=0;this.reset();b&&(b=d||e[0]&&e[0].getCommonAncestor())&&b.getAscendant("body",1)&&(a(e)?c.call(this,e):f?this.fake(d):d?this.selectElement(d):this.selectRanges(e))}},reset:function(){this._.cache={};this.isFake=0;var a=this.root.editor;if(a&&a._.fakeSelection)if(this.rev==a._.fakeSelection.rev){delete a._.fakeSelection; -var b=a._.hiddenSelectionContainer;if(b){var c=a.checkDirty();a.fire("lockSnapshot");b.remove();a.fire("unlockSnapshot");!c&&a.resetDirty()}delete a._.hiddenSelectionContainer}else CKEDITOR.warn("selection-fake-reset");this.rev=m++},selectElement:function(a){var b=new CKEDITOR.dom.range(this.root);b.setStartBefore(a);b.setEndAfter(a);this.selectRanges([b])},selectRanges:function(b){var d=this.root.editor,e=d&&d._.hiddenSelectionContainer;this.reset();if(e)for(var e=this.root,g,h=0;h<b.length;++h)g= -b[h],g.endContainer.equals(e)&&(g.endOffset=Math.min(g.endOffset,e.getChildCount()));if(b.length)if(this.isLocked){var k=CKEDITOR.document.getActive();this.unlock();this.selectRanges(b);this.lock();k&&!k.equals(this.root)&&k.focus()}else{var l;a:{var p,C;if(1==b.length&&!(C=b[0]).collapsed&&(l=C.getEnclosedNode())&&l.type==CKEDITOR.NODE_ELEMENT&&(C=C.clone(),C.shrink(CKEDITOR.SHRINK_ELEMENT,!0),(p=C.getEnclosedNode())&&p.type==CKEDITOR.NODE_ELEMENT&&(l=p),"false"==l.getAttribute("contenteditable")))break a; -l=void 0}if(l)this.fake(l);else if(d&&d.plugins.tableselection&&CKEDITOR.plugins.tableselection.isSupportedEnvironment&&a(b)&&!I)c.call(this,b);else{if(x){p=CKEDITOR.dom.walker.whitespaces(!0);l=/\ufeff|\u00a0/;C={table:1,tbody:1,tr:1};1<b.length&&(d=b[b.length-1],b[0].setEnd(d.endContainer,d.endOffset));d=b[0];b=d.collapsed;var t,F,m;if((e=d.getEnclosedNode())&&e.type==CKEDITOR.NODE_ELEMENT&&e.getName()in E&&(!e.is("a")||!e.getText()))try{m=e.$.createControlRange();m.addElement(e.$);m.select();return}catch(w){}if(d.startContainer.type== -CKEDITOR.NODE_ELEMENT&&d.startContainer.getName()in C||d.endContainer.type==CKEDITOR.NODE_ELEMENT&&d.endContainer.getName()in C)d.shrink(CKEDITOR.NODE_ELEMENT,!0),b=d.collapsed;m=d.createBookmark();C=m.startNode;b||(k=m.endNode);m=d.document.$.body.createTextRange();m.moveToElementText(C.$);m.moveStart("character",1);k?(l=d.document.$.body.createTextRange(),l.moveToElementText(k.$),m.setEndPoint("EndToEnd",l),m.moveEnd("character",-1)):(t=C.getNext(p),F=C.hasAscendant("pre"),t=!(t&&t.getText&&t.getText().match(l))&& -(F||!C.hasPrevious()||C.getPrevious().is&&C.getPrevious().is("br")),F=d.document.createElement("span"),F.setHtml("\x26#65279;"),F.insertBefore(C),t&&d.document.createText("").insertBefore(C));d.setStartBefore(C);C.remove();b?(t?(m.moveStart("character",-1),m.select(),d.document.$.selection.clear()):m.select(),d.moveToPosition(F,CKEDITOR.POSITION_BEFORE_START),F.remove()):(d.setEndBefore(k),k.remove(),m.select())}else{k=this.getNative();if(!k)return;this.removeAllRanges();for(m=0;m<b.length;m++){if(m< -b.length-1&&(t=b[m],F=b[m+1],l=t.clone(),l.setStart(t.endContainer,t.endOffset),l.setEnd(F.startContainer,F.startOffset),!l.collapsed&&(l.shrink(CKEDITOR.NODE_ELEMENT,!0),d=l.getCommonAncestor(),l=l.getEnclosedNode(),d.isReadOnly()||l&&l.isReadOnly()))){F.setStart(t.startContainer,t.startOffset);b.splice(m--,1);continue}d=b[m];F=this.document.$.createRange();d.collapsed&&CKEDITOR.env.webkit&&n(d)&&(l=q(this.root),d.insertNode(l),(t=l.getNext())&&!l.getPrevious()&&t.type==CKEDITOR.NODE_ELEMENT&&"br"== -t.getName()?(f(this.root),d.moveToPosition(t,CKEDITOR.POSITION_BEFORE_START)):d.moveToPosition(l,CKEDITOR.POSITION_AFTER_END));F.setStart(d.startContainer.$,d.startOffset);try{F.setEnd(d.endContainer.$,d.endOffset)}catch(r){if(0<=r.toString().indexOf("NS_ERROR_ILLEGAL_VALUE"))d.collapse(1),F.setEnd(d.endContainer.$,d.endOffset);else throw r;}k.addRange(F)}}this.reset();this.root.fire("selectionchange")}}},fake:function(a,b){var c=this.root.editor;void 0===b&&a.hasAttribute("aria-label")&&(b=a.getAttribute("aria-label")); -this.reset();w(c,b);var d=this._.cache,e=new CKEDITOR.dom.range(this.root);e.setStartBefore(a);e.setEndAfter(a);d.ranges=new CKEDITOR.dom.rangeList(e);d.selectedElement=d.startElement=a;d.type=CKEDITOR.SELECTION_ELEMENT;d.selectedText=d.nativeSel=null;this.isFake=1;this.rev=m++;c._.fakeSelection=this;this.root.fire("selectionchange")},isHidden:function(){var a=this.getCommonAncestor();a&&a.type==CKEDITOR.NODE_TEXT&&(a=a.getParent());return!(!a||!a.data("cke-hidden-sel"))},isInTable:function(b){return a(this.getRanges(), -b)},isCollapsed:function(){var a=this.getRanges();return 1===a.length&&a[0].collapsed},createBookmarks:function(a){a=this.getRanges().createBookmarks(a);this.isFake&&(a.isFake=1);return a},createBookmarks2:function(a){a=this.getRanges().createBookmarks2(a);this.isFake&&(a.isFake=1);return a},selectBookmarks:function(b){for(var c=[],d,e=0;e<b.length;e++){var f=new CKEDITOR.dom.range(this.root);f.moveToBookmark(b[e]);c.push(f)}b.isFake&&(d=a(c)?c[0]._getTableElement():c[0].getEnclosedNode(),d&&d.type== -CKEDITOR.NODE_ELEMENT||(CKEDITOR.warn("selection-not-fake"),b.isFake=0));b.isFake&&!a(c)?this.fake(d):this.selectRanges(c);return this},getCommonAncestor:function(){var a=this.getRanges();return a.length?a[0].startContainer.getCommonAncestor(a[a.length-1].endContainer):null},scrollIntoView:function(){this.type!=CKEDITOR.SELECTION_NONE&&this.getRanges()[0].scrollIntoView()},removeAllRanges:function(){if(this.getType()!=CKEDITOR.SELECTION_NONE){var a=this.getNative();try{a&&a[x?"empty":"removeAllRanges"]()}catch(b){}this.reset()}}}})(); -"use strict";CKEDITOR.STYLE_BLOCK=1;CKEDITOR.STYLE_INLINE=2;CKEDITOR.STYLE_OBJECT=3; -(function(){function a(a,b){for(var c,d;(a=a.getParent())&&!a.equals(b);)if(a.getAttribute("data-nostyle"))c=a;else if(!d){var e=a.getAttribute("contentEditable");"false"==e?c=a:"true"==e&&(d=1)}return c}function d(a,b,c,d){return(a.getPosition(b)|d)==d&&(!c.childRule||c.childRule(a))}function b(c){var f=c.document;if(c.collapsed)f=K(this,f),c.insertNode(f),c.moveToPosition(f,CKEDITOR.POSITION_BEFORE_END);else{var g=this.element,h=this._.definition,k,l=h.ignoreReadonly,m=l||h.includeReadonly;null== -m&&(m=c.root.getCustomData("cke_includeReadonly"));var q=CKEDITOR.dtd[g];q||(k=!0,q=CKEDITOR.dtd.span);c.enlarge(CKEDITOR.ENLARGE_INLINE,1);c.trim();var n=c.createBookmark(),w=n.startNode,u=n.endNode,r=w,v;if(!l){var x=c.getCommonAncestor(),l=a(w,x),x=a(u,x);l&&(r=l.getNextSourceNode(!0));x&&(u=x)}for(r.getPosition(u)==CKEDITOR.POSITION_FOLLOWING&&(r=0);r;){l=!1;if(r.equals(u))r=null,l=!0;else{var A=r.type==CKEDITOR.NODE_ELEMENT?r.getName():null,x=A&&"false"==r.getAttribute("contentEditable"),D=A&& -r.getAttribute("data-nostyle");if(A&&r.data("cke-bookmark")){r=r.getNextSourceNode(!0);continue}if(x&&m&&CKEDITOR.dtd.$block[A])for(var z=r,y=e(z),E=void 0,H=y.length,I=0,z=H&&new CKEDITOR.dom.range(z.getDocument());I<H;++I){var E=y[I],J=CKEDITOR.filter.instances[E.data("cke-filter")];if(J?J.check(this):1)z.selectNodeContents(E),b.call(this,z)}y=A?!q[A]||D?0:x&&!m?0:d(r,u,h,V):1;if(y)if(E=r.getParent(),y=h,H=g,I=k,!E||!(E.getDtd()||CKEDITOR.dtd.span)[H]&&!I||y.parentRule&&!y.parentRule(E))l=!0;else{if(v|| -A&&CKEDITOR.dtd.$removeEmpty[A]&&(r.getPosition(u)|V)!=V||(v=c.clone(),v.setStartBefore(r)),A=r.type,A==CKEDITOR.NODE_TEXT||x||A==CKEDITOR.NODE_ELEMENT&&!r.getChildCount()){for(var A=r,L;(l=!A.getNext(B))&&(L=A.getParent(),q[L.getName()])&&d(L,w,h,O);)A=L;v.setEndAfter(A)}}else l=!0;r=r.getNextSourceNode(D||x)}if(l&&v&&!v.collapsed){for(var l=K(this,f),x=l.hasAttributes(),D=v.getCommonAncestor(),A={},y={},E={},H={},T,Q,ba;l&&D;){if(D.getName()==g){for(T in h.attributes)!H[T]&&(ba=D.getAttribute(Q))&& -(l.getAttribute(T)==ba?y[T]=1:H[T]=1);for(Q in h.styles)!E[Q]&&(ba=D.getStyle(Q))&&(l.getStyle(Q)==ba?A[Q]=1:E[Q]=1)}D=D.getParent()}for(T in y)l.removeAttribute(T);for(Q in A)l.removeStyle(Q);x&&!l.hasAttributes()&&(l=null);l?(v.extractContents().appendTo(l),v.insertNode(l),G.call(this,l),l.mergeSiblings(),CKEDITOR.env.ie||l.$.normalize()):(l=new CKEDITOR.dom.element("span"),v.extractContents().appendTo(l),v.insertNode(l),G.call(this,l),l.remove(!0));v=null}}c.moveToBookmark(n);c.shrink(CKEDITOR.SHRINK_TEXT); -c.shrink(CKEDITOR.NODE_ELEMENT,!0)}}function c(a){function b(){for(var a=new CKEDITOR.dom.elementPath(d.getParent()),c=new CKEDITOR.dom.elementPath(q.getParent()),e=null,f=null,g=0;g<a.elements.length;g++){var h=a.elements[g];if(h==a.block||h==a.blockLimit)break;n.checkElementRemovable(h,!0)&&(e=h)}for(g=0;g<c.elements.length;g++){h=c.elements[g];if(h==c.block||h==c.blockLimit)break;n.checkElementRemovable(h,!0)&&(f=h)}f&&q.breakParent(f);e&&d.breakParent(e)}a.enlarge(CKEDITOR.ENLARGE_INLINE,1);var c= -a.createBookmark(),d=c.startNode,e=this._.definition.alwaysRemoveElement;if(a.collapsed){for(var f=new CKEDITOR.dom.elementPath(d.getParent(),a.root),g,h=0,k;h<f.elements.length&&(k=f.elements[h])&&k!=f.block&&k!=f.blockLimit;h++)if(this.checkElementRemovable(k)){var m;!e&&a.collapsed&&(a.checkBoundaryOfElement(k,CKEDITOR.END)||(m=a.checkBoundaryOfElement(k,CKEDITOR.START)))?(g=k,g.match=m?"start":"end"):(k.mergeSiblings(),k.is(this.element)?A.call(this,k):x(k,l(this)[k.getName()]))}if(g){e=d;for(h= -0;;h++){k=f.elements[h];if(k.equals(g))break;else if(k.match)continue;else k=k.clone();k.append(e);e=k}e["start"==g.match?"insertBefore":"insertAfter"](g)}}else{var q=c.endNode,n=this;b();for(f=d;!f.equals(q);)g=f.getNextSourceNode(),f.type==CKEDITOR.NODE_ELEMENT&&this.checkElementRemovable(f)&&(f.getName()==this.element?A.call(this,f):x(f,l(this)[f.getName()]),g.type==CKEDITOR.NODE_ELEMENT&&g.contains(d)&&(b(),g=d.getNext())),f=g}a.moveToBookmark(c);a.shrink(CKEDITOR.NODE_ELEMENT,!0)}function e(a){var b= -[];a.forEach(function(a){if("true"==a.getAttribute("contenteditable"))return b.push(a),!1},CKEDITOR.NODE_ELEMENT,!0);return b}function g(a){var b=a.getEnclosedNode()||a.getCommonAncestor(!1,!0);(a=(new CKEDITOR.dom.elementPath(b,a.root)).contains(this.element,1))&&!a.isReadOnly()&&z(a,this)}function h(a){var b=a.getCommonAncestor(!0,!0);if(a=(new CKEDITOR.dom.elementPath(b,a.root)).contains(this.element,1)){var b=this._.definition,c=b.attributes;if(c)for(var d in c)a.removeAttribute(d,c[d]);if(b.styles)for(var e in b.styles)b.styles.hasOwnProperty(e)&& -a.removeStyle(e)}}function k(a){var b=a.createBookmark(!0),c=a.createIterator();c.enforceRealBlocks=!0;this._.enterMode&&(c.enlargeBr=this._.enterMode!=CKEDITOR.ENTER_BR);for(var d,e=a.document,f;d=c.getNextParagraph();)!d.isReadOnly()&&(c.activeFilter?c.activeFilter.check(this):1)&&(f=K(this,e,d),q(d,f));a.moveToBookmark(b)}function n(a){var b=a.createBookmark(1),c=a.createIterator();c.enforceRealBlocks=!0;c.enlargeBr=this._.enterMode!=CKEDITOR.ENTER_BR;for(var d,e;d=c.getNextParagraph();)this.checkElementRemovable(d)&& -(d.is("pre")?((e=this._.enterMode==CKEDITOR.ENTER_BR?null:a.document.createElement(this._.enterMode==CKEDITOR.ENTER_P?"p":"div"))&&d.copyAttributes(e),q(d,e)):A.call(this,d));a.moveToBookmark(b)}function q(a,b){var c=!b;c&&(b=a.getDocument().createElement("div"),a.copyAttributes(b));var d=b&&b.is("pre"),e=a.is("pre"),g=!d&&e;if(d&&!e){e=b;(g=a.getBogus())&&g.remove();g=a.getHtml();g=D(g,/(?:^[ \t\n\r]+)|(?:[ \t\n\r]+$)/g,"");g=g.replace(/[ \t\r\n]*(<br[^>]*>)[ \t\r\n]*/gi,"$1");g=g.replace(/([ \t\n\r]+|&nbsp;)/g, -" ");g=g.replace(/<br\b[^>]*>/gi,"\n");if(CKEDITOR.env.ie){var h=a.getDocument().createElement("div");h.append(e);e.$.outerHTML="\x3cpre\x3e"+g+"\x3c/pre\x3e";e.copyAttributes(h.getFirst());e=h.getFirst().remove()}else e.setHtml(g);b=e}else g?b=w(c?[a.getHtml()]:f(a),b):a.moveChildren(b);b.replace(a);if(d){var c=b,k;(k=c.getPrevious(L))&&k.type==CKEDITOR.NODE_ELEMENT&&k.is("pre")&&(d=D(k.getHtml(),/\n$/,"")+"\n\n"+D(c.getHtml(),/^\n/,""),CKEDITOR.env.ie?c.$.outerHTML="\x3cpre\x3e"+d+"\x3c/pre\x3e": -c.setHtml(d),k.remove())}else c&&m(b)}function f(a){var b=[];D(a.getOuterHtml(),/(\S\s*)\n(?:\s|(<span[^>]+data-cke-bookmark.*?\/span>))*\n(?!$)/gi,function(a,b,c){return b+"\x3c/pre\x3e"+c+"\x3cpre\x3e"}).replace(/<pre\b.*?>([\s\S]*?)<\/pre>/gi,function(a,c){b.push(c)});return b}function D(a,b,c){var d="",e="";a=a.replace(/(^<span[^>]+data-cke-bookmark.*?\/span>)|(<span[^>]+data-cke-bookmark.*?\/span>$)/gi,function(a,b,c){b&&(d=b);c&&(e=c);return""});return d+a.replace(b,c)+e}function w(a,b){var c; -1<a.length&&(c=new CKEDITOR.dom.documentFragment(b.getDocument()));for(var d=0;d<a.length;d++){var e=a[d],e=e.replace(/(\r\n|\r)/g,"\n"),e=D(e,/^[ \t]*\n/,""),e=D(e,/\n$/,""),e=D(e,/^[ \t]+|[ \t]+$/g,function(a,b){return 1==a.length?"\x26nbsp;":b?" "+CKEDITOR.tools.repeat("\x26nbsp;",a.length-1):CKEDITOR.tools.repeat("\x26nbsp;",a.length-1)+" "}),e=e.replace(/\n/g,"\x3cbr\x3e"),e=e.replace(/[ \t]{2,}/g,function(a){return CKEDITOR.tools.repeat("\x26nbsp;",a.length-1)+" "});if(c){var f=b.clone();f.setHtml(e); -c.append(f)}else b.setHtml(e)}return c||b}function A(a,b){var c=this._.definition,d=c.attributes,c=c.styles,e=l(this)[a.getName()],f=CKEDITOR.tools.isEmpty(d)&&CKEDITOR.tools.isEmpty(c),g;for(g in d)if("class"!=g&&!this._.definition.fullMatch||a.getAttribute(g)==r(g,d[g]))b&&"data-"==g.slice(0,5)||(f=a.hasAttribute(g),a.removeAttribute(g));for(var h in c)this._.definition.fullMatch&&a.getStyle(h)!=r(h,c[h],!0)||(f=f||!!a.getStyle(h),a.removeStyle(h));x(a,e,E[a.getName()]);f&&(this._.definition.alwaysRemoveElement? -m(a,1):!CKEDITOR.dtd.$block[a.getName()]||this._.enterMode==CKEDITOR.ENTER_BR&&!a.hasAttributes()?m(a):a.renameNode(this._.enterMode==CKEDITOR.ENTER_P?"p":"div"))}function G(a){for(var b=l(this),c=a.getElementsByTag(this.element),d,e=c.count();0<=--e;)d=c.getItem(e),d.isReadOnly()||A.call(this,d,!0);for(var f in b)if(f!=this.element)for(c=a.getElementsByTag(f),e=c.count()-1;0<=e;e--)d=c.getItem(e),d.isReadOnly()||x(d,b[f])}function x(a,b,c){if(b=b&&b.attributes)for(var d=0;d<b.length;d++){var e=b[d][0], -f;if(f=a.getAttribute(e)){var g=b[d][1];(null===g||g.test&&g.test(f)||"string"==typeof g&&f==g)&&a.removeAttribute(e)}}c||m(a)}function m(a,b){if(!a.hasAttributes()||b)if(CKEDITOR.dtd.$block[a.getName()]){var c=a.getPrevious(L),d=a.getNext(L);!c||c.type!=CKEDITOR.NODE_TEXT&&c.isBlockBoundary({br:1})||a.append("br",1);!d||d.type!=CKEDITOR.NODE_TEXT&&d.isBlockBoundary({br:1})||a.append("br");a.remove(!0)}else c=a.getFirst(),d=a.getLast(),a.remove(!0),c&&(c.type==CKEDITOR.NODE_ELEMENT&&c.mergeSiblings(), -d&&!c.equals(d)&&d.type==CKEDITOR.NODE_ELEMENT&&d.mergeSiblings())}function K(a,b,c){var d;d=a.element;"*"==d&&(d="span");d=new CKEDITOR.dom.element(d,b);c&&c.copyAttributes(d);d=z(d,a);b.getCustomData("doc_processing_style")&&d.hasAttribute("id")?d.removeAttribute("id"):b.setCustomData("doc_processing_style",1);return d}function z(a,b){var c=b._.definition,d=c.attributes,c=CKEDITOR.style.getStyleText(c);if(d)for(var e in d)a.setAttribute(e,d[e]);c&&a.setAttribute("style",c);return a}function I(a, -b){for(var c in a)a[c]=a[c].replace(v,function(a,c){return b[c]})}function l(a){if(a._.overrides)return a._.overrides;var b=a._.overrides={},c=a._.definition.overrides;if(c){CKEDITOR.tools.isArray(c)||(c=[c]);for(var d=0;d<c.length;d++){var e=c[d],f,g;"string"==typeof e?f=e.toLowerCase():(f=e.element?e.element.toLowerCase():a.element,g=e.attributes);e=b[f]||(b[f]={});if(g){var e=e.attributes=e.attributes||[],h;for(h in g)e.push([h.toLowerCase(),g[h]])}}}return b}function r(a,b,c){var d=new CKEDITOR.dom.element("span"); -d[c?"setStyle":"setAttribute"](a,b);return d[c?"getStyle":"getAttribute"](a)}function J(a,b){function c(a,b){return"font-family"==b.toLowerCase()?a.replace(/["']/g,""):a}"string"==typeof a&&(a=CKEDITOR.tools.parseCssText(a));"string"==typeof b&&(b=CKEDITOR.tools.parseCssText(b,!0));for(var d in a)if(!(d in b)||c(b[d],d)!=c(a[d],d)&&"inherit"!=a[d]&&"inherit"!=b[d])return!1;return!0}function H(a,b,c){var d=a.document,e=a.getRanges();b=b?this.removeFromRange:this.applyToRange;var f,g;if(a.isFake&&a.isInTable())for(f= -[],g=0;g<e.length;g++)f.push(e[g].clone());for(var h=e.createIterator();g=h.getNextRange();)b.call(this,g,c);a.selectRanges(f||e);d.removeCustomData("doc_processing_style")}var E={address:1,div:1,h1:1,h2:1,h3:1,h4:1,h5:1,h6:1,p:1,pre:1,section:1,header:1,footer:1,nav:1,article:1,aside:1,figure:1,dialog:1,hgroup:1,time:1,meter:1,menu:1,command:1,keygen:1,output:1,progress:1,details:1,datagrid:1,datalist:1},u={a:1,blockquote:1,embed:1,hr:1,img:1,li:1,object:1,ol:1,table:1,td:1,tr:1,th:1,ul:1,dl:1,dt:1, -dd:1,form:1,audio:1,video:1},y=/\s*(?:;\s*|$)/,v=/#\((.+?)\)/g,B=CKEDITOR.dom.walker.bookmark(0,1),L=CKEDITOR.dom.walker.whitespaces(1);CKEDITOR.style=function(a,b){if("string"==typeof a.type)return new CKEDITOR.style.customHandlers[a.type](a);var c=a.attributes;c&&c.style&&(a.styles=CKEDITOR.tools.extend({},a.styles,CKEDITOR.tools.parseCssText(c.style)),delete c.style);b&&(a=CKEDITOR.tools.clone(a),I(a.attributes,b),I(a.styles,b));c=this.element=a.element?"string"==typeof a.element?a.element.toLowerCase(): -a.element:"*";this.type=a.type||(E[c]?CKEDITOR.STYLE_BLOCK:u[c]?CKEDITOR.STYLE_OBJECT:CKEDITOR.STYLE_INLINE);"object"==typeof this.element&&(this.type=CKEDITOR.STYLE_OBJECT);this._={definition:a}};CKEDITOR.style.prototype={apply:function(a){if(a instanceof CKEDITOR.dom.document)return H.call(this,a.getSelection());if(this.checkApplicable(a.elementPath(),a)){var b=this._.enterMode;b||(this._.enterMode=a.activeEnterMode);H.call(this,a.getSelection(),0,a);this._.enterMode=b}},remove:function(a){if(a instanceof -CKEDITOR.dom.document)return H.call(this,a.getSelection(),1);if(this.checkApplicable(a.elementPath(),a)){var b=this._.enterMode;b||(this._.enterMode=a.activeEnterMode);H.call(this,a.getSelection(),1,a);this._.enterMode=b}},applyToRange:function(a){this.applyToRange=this.type==CKEDITOR.STYLE_INLINE?b:this.type==CKEDITOR.STYLE_BLOCK?k:this.type==CKEDITOR.STYLE_OBJECT?g:null;return this.applyToRange(a)},removeFromRange:function(a){this.removeFromRange=this.type==CKEDITOR.STYLE_INLINE?c:this.type==CKEDITOR.STYLE_BLOCK? -n:this.type==CKEDITOR.STYLE_OBJECT?h:null;return this.removeFromRange(a)},applyToObject:function(a){z(a,this)},checkActive:function(a,b){switch(this.type){case CKEDITOR.STYLE_BLOCK:return this.checkElementRemovable(a.block||a.blockLimit,!0,b);case CKEDITOR.STYLE_OBJECT:case CKEDITOR.STYLE_INLINE:for(var c=a.elements,d=0,e;d<c.length;d++)if(e=c[d],this.type!=CKEDITOR.STYLE_INLINE||e!=a.block&&e!=a.blockLimit){if(this.type==CKEDITOR.STYLE_OBJECT){var f=e.getName();if(!("string"==typeof this.element? -f==this.element:f in this.element))continue}if(this.checkElementRemovable(e,!0,b))return!0}}return!1},checkApplicable:function(a,b,c){b&&b instanceof CKEDITOR.filter&&(c=b);if(c&&!c.check(this))return!1;switch(this.type){case CKEDITOR.STYLE_OBJECT:return!!a.contains(this.element);case CKEDITOR.STYLE_BLOCK:return!!a.blockLimit.getDtd()[this.element]}return!0},checkElementMatch:function(a,b){var c=this._.definition;if(!a||!c.ignoreReadonly&&a.isReadOnly())return!1;var d=a.getName();if("string"==typeof this.element? -d==this.element:d in this.element){if(!b&&!a.hasAttributes())return!0;if(d=c._AC)c=d;else{var d={},e=0,f=c.attributes;if(f)for(var g in f)e++,d[g]=f[g];if(g=CKEDITOR.style.getStyleText(c))d.style||e++,d.style=g;d._length=e;c=c._AC=d}if(c._length){for(var h in c)if("_length"!=h)if(d=a.getAttribute(h)||"","style"==h?J(c[h],d):c[h]==d){if(!b)return!0}else if(b)return!1;if(b)return!0}else return!0}return!1},checkElementRemovable:function(a,b,c){if(this.checkElementMatch(a,b,c))return!0;if(b=l(this)[a.getName()]){var d; -if(!(b=b.attributes))return!0;for(c=0;c<b.length;c++)if(d=b[c][0],d=a.getAttribute(d)){var e=b[c][1];if(null===e)return!0;if("string"==typeof e){if(d==e)return!0}else if(e.test(d))return!0}}return!1},buildPreview:function(a){var b=this._.definition,c=[],d=b.element;"bdo"==d&&(d="span");var c=["\x3c",d],e=b.attributes;if(e)for(var f in e)c.push(" ",f,'\x3d"',e[f],'"');(e=CKEDITOR.style.getStyleText(b))&&c.push(' style\x3d"',e,'"');c.push("\x3e",a||b.name,"\x3c/",d,"\x3e");return c.join("")},getDefinition:function(){return this._.definition}}; -CKEDITOR.style.getStyleText=function(a){var b=a._ST;if(b)return b;var b=a.styles,c=a.attributes&&a.attributes.style||"",d="";c.length&&(c=c.replace(y,";"));for(var e in b){var f=b[e],g=(e+":"+f).replace(y,";");"inherit"==f?d+=g:c+=g}c.length&&(c=CKEDITOR.tools.normalizeCssText(c,!0));return a._ST=c+d};CKEDITOR.style.customHandlers={};CKEDITOR.style.addCustomHandler=function(a){var b=function(a){this._={definition:a};this.setup&&this.setup(a)};b.prototype=CKEDITOR.tools.extend(CKEDITOR.tools.prototypedCopy(CKEDITOR.style.prototype), -{assignedTo:CKEDITOR.STYLE_OBJECT},a,!0);return this.customHandlers[a.type]=b};var V=CKEDITOR.POSITION_PRECEDING|CKEDITOR.POSITION_IDENTICAL|CKEDITOR.POSITION_IS_CONTAINED,O=CKEDITOR.POSITION_FOLLOWING|CKEDITOR.POSITION_IDENTICAL|CKEDITOR.POSITION_IS_CONTAINED})();CKEDITOR.styleCommand=function(a,d){this.requiredContent=this.allowedContent=this.style=a;CKEDITOR.tools.extend(this,d,!0)}; -CKEDITOR.styleCommand.prototype.exec=function(a){a.focus();this.state==CKEDITOR.TRISTATE_OFF?a.applyStyle(this.style):this.state==CKEDITOR.TRISTATE_ON&&a.removeStyle(this.style)};CKEDITOR.stylesSet=new CKEDITOR.resourceManager("","stylesSet");CKEDITOR.addStylesSet=CKEDITOR.tools.bind(CKEDITOR.stylesSet.add,CKEDITOR.stylesSet);CKEDITOR.loadStylesSet=function(a,d,b){CKEDITOR.stylesSet.addExternal(a,d,"");CKEDITOR.stylesSet.load(a,b)}; -CKEDITOR.tools.extend(CKEDITOR.editor.prototype,{attachStyleStateChange:function(a,d){var b=this._.styleStateChangeCallbacks;b||(b=this._.styleStateChangeCallbacks=[],this.on("selectionChange",function(a){for(var d=0;d<b.length;d++){var g=b[d],h=g.style.checkActive(a.data.path,this)?CKEDITOR.TRISTATE_ON:CKEDITOR.TRISTATE_OFF;g.fn.call(this,h)}}));b.push({style:a,fn:d})},applyStyle:function(a){a.apply(this)},removeStyle:function(a){a.remove(this)},getStylesSet:function(a){if(this._.stylesDefinitions)a(this._.stylesDefinitions); -else{var d=this,b=d.config.stylesCombo_stylesSet||d.config.stylesSet;if(!1===b)a(null);else if(b instanceof Array)d._.stylesDefinitions=b,a(b);else{b||(b="default");var b=b.split(":"),c=b[0];CKEDITOR.stylesSet.addExternal(c,b[1]?b.slice(1).join(":"):CKEDITOR.getUrl("styles.js"),"");CKEDITOR.stylesSet.load(c,function(b){d._.stylesDefinitions=b[c];a(d._.stylesDefinitions)})}}}}); -CKEDITOR.dom.comment=function(a,d){"string"==typeof a&&(a=(d?d.$:document).createComment(a));CKEDITOR.dom.domObject.call(this,a)};CKEDITOR.dom.comment.prototype=new CKEDITOR.dom.node;CKEDITOR.tools.extend(CKEDITOR.dom.comment.prototype,{type:CKEDITOR.NODE_COMMENT,getOuterHtml:function(){return"\x3c!--"+this.$.nodeValue+"--\x3e"}});"use strict"; -(function(){var a={},d={},b;for(b in CKEDITOR.dtd.$blockLimit)b in CKEDITOR.dtd.$list||(a[b]=1);for(b in CKEDITOR.dtd.$block)b in CKEDITOR.dtd.$blockLimit||b in CKEDITOR.dtd.$empty||(d[b]=1);CKEDITOR.dom.elementPath=function(b,e){var g=null,h=null,k=[],n=b,q;e=e||b.getDocument().getBody();n||(n=e);do if(n.type==CKEDITOR.NODE_ELEMENT){k.push(n);if(!this.lastElement&&(this.lastElement=n,n.is(CKEDITOR.dtd.$object)||"false"==n.getAttribute("contenteditable")))continue;if(n.equals(e))break;if(!h&&(q=n.getName(), -"true"==n.getAttribute("contenteditable")?h=n:!g&&d[q]&&(g=n),a[q])){if(q=!g&&"div"==q){a:{q=n.getChildren();for(var f=0,D=q.count();f<D;f++){var w=q.getItem(f);if(w.type==CKEDITOR.NODE_ELEMENT&&CKEDITOR.dtd.$block[w.getName()]){q=!0;break a}}q=!1}q=!q}q?g=n:h=n}}while(n=n.getParent());h||(h=e);this.block=g;this.blockLimit=h;this.root=e;this.elements=k}})(); -CKEDITOR.dom.elementPath.prototype={compare:function(a){var d=this.elements;a=a&&a.elements;if(!a||d.length!=a.length)return!1;for(var b=0;b<d.length;b++)if(!d[b].equals(a[b]))return!1;return!0},contains:function(a,d,b){var c=0,e;"string"==typeof a&&(e=function(b){return b.getName()==a});a instanceof CKEDITOR.dom.element?e=function(b){return b.equals(a)}:CKEDITOR.tools.isArray(a)?e=function(b){return-1<CKEDITOR.tools.indexOf(a,b.getName())}:"function"==typeof a?e=a:"object"==typeof a&&(e=function(b){return b.getName()in -a});var g=this.elements,h=g.length;d&&(b?c+=1:--h);b&&(g=Array.prototype.slice.call(g,0),g.reverse());for(;c<h;c++)if(e(g[c]))return g[c];return null},isContextFor:function(a){var d;return a in CKEDITOR.dtd.$block?(d=this.contains(CKEDITOR.dtd.$intermediate)||this.root.equals(this.block)&&this.block||this.blockLimit,!!d.getDtd()[a]):!0},direction:function(){return(this.block||this.blockLimit||this.root).getDirection(1)}}; -CKEDITOR.dom.text=function(a,d){"string"==typeof a&&(a=(d?d.$:document).createTextNode(a));this.$=a};CKEDITOR.dom.text.prototype=new CKEDITOR.dom.node; -CKEDITOR.tools.extend(CKEDITOR.dom.text.prototype,{type:CKEDITOR.NODE_TEXT,getLength:function(){return this.$.nodeValue.length},getText:function(){return this.$.nodeValue},setText:function(a){this.$.nodeValue=a},split:function(a){var d=this.$.parentNode,b=d.childNodes.length,c=this.getLength(),e=this.getDocument(),g=new CKEDITOR.dom.text(this.$.splitText(a),e);d.childNodes.length==b&&(a>=c?(g=e.createText(""),g.insertAfter(this)):(a=e.createText(""),a.insertAfter(g),a.remove()));return g},substring:function(a, -d){return"number"!=typeof d?this.$.nodeValue.substr(a):this.$.nodeValue.substring(a,d)}}); -(function(){function a(a,c,d){var g=a.serializable,h=c[d?"endContainer":"startContainer"],k=d?"endOffset":"startOffset",n=g?c.document.getById(a.startNode):a.startNode;a=g?c.document.getById(a.endNode):a.endNode;h.equals(n.getPrevious())?(c.startOffset=c.startOffset-h.getLength()-a.getPrevious().getLength(),h=a.getNext()):h.equals(a.getPrevious())&&(c.startOffset-=h.getLength(),h=a.getNext());h.equals(n.getParent())&&c[k]++;h.equals(a.getParent())&&c[k]++;c[d?"endContainer":"startContainer"]=h;return c} -CKEDITOR.dom.rangeList=function(a){if(a instanceof CKEDITOR.dom.rangeList)return a;a?a instanceof CKEDITOR.dom.range&&(a=[a]):a=[];return CKEDITOR.tools.extend(a,d)};var d={createIterator:function(){var a=this,c=CKEDITOR.dom.walker.bookmark(),d=[],g;return{getNextRange:function(h){g=void 0===g?0:g+1;var k=a[g];if(k&&1<a.length){if(!g)for(var n=a.length-1;0<=n;n--)d.unshift(a[n].createBookmark(!0));if(h)for(var q=0;a[g+q+1];){var f=k.document;h=0;n=f.getById(d[q].endNode);for(f=f.getById(d[q+1].startNode);;){n= -n.getNextSourceNode(!1);if(f.equals(n))h=1;else if(c(n)||n.type==CKEDITOR.NODE_ELEMENT&&n.isBlockBoundary())continue;break}if(!h)break;q++}for(k.moveToBookmark(d.shift());q--;)n=a[++g],n.moveToBookmark(d.shift()),k.setEnd(n.endContainer,n.endOffset)}return k}}},createBookmarks:function(b){for(var c=[],d,g=0;g<this.length;g++){c.push(d=this[g].createBookmark(b,!0));for(var h=g+1;h<this.length;h++)this[h]=a(d,this[h]),this[h]=a(d,this[h],!0)}return c},createBookmarks2:function(a){for(var c=[],d=0;d< -this.length;d++)c.push(this[d].createBookmark2(a));return c},moveToBookmarks:function(a){for(var c=0;c<this.length;c++)this[c].moveToBookmark(a[c])}}})(); -(function(){function a(){return CKEDITOR.getUrl(CKEDITOR.skinName.split(",")[1]||"skins/"+CKEDITOR.skinName.split(",")[0]+"/")}function d(b){var c=CKEDITOR.skin["ua_"+b],d=CKEDITOR.env;if(c)for(var c=c.split(",").sort(function(a,b){return a>b?-1:1}),e=0,g;e<c.length;e++)if(g=c[e],d.ie&&(g.replace(/^ie/,"")==d.version||d.quirks&&"iequirks"==g)&&(g="ie"),d[g]){b+="_"+c[e];break}return CKEDITOR.getUrl(a()+b+".css")}function b(a,b){g[a]||(CKEDITOR.document.appendStyleSheet(d(a)),g[a]=1);b&&b()}function c(a){var b= -a.getById(h);b||(b=a.getHead().append("style"),b.setAttribute("id",h),b.setAttribute("type","text/css"));return b}function e(a,b,c){var d,e,g;if(CKEDITOR.env.webkit)for(b=b.split("}").slice(0,-1),e=0;e<b.length;e++)b[e]=b[e].split("{");for(var h=0;h<a.length;h++)if(CKEDITOR.env.webkit)for(e=0;e<b.length;e++){g=b[e][1];for(d=0;d<c.length;d++)g=g.replace(c[d][0],c[d][1]);a[h].$.sheet.addRule(b[e][0],g)}else{g=b;for(d=0;d<c.length;d++)g=g.replace(c[d][0],c[d][1]);CKEDITOR.env.ie&&11>CKEDITOR.env.version? -a[h].$.styleSheet.cssText+=g:a[h].$.innerHTML+=g}}var g={};CKEDITOR.skin={path:a,loadPart:function(c,d){CKEDITOR.skin.name!=CKEDITOR.skinName.split(",")[0]?CKEDITOR.scriptLoader.load(CKEDITOR.getUrl(a()+"skin.js"),function(){b(c,d)}):b(c,d)},getPath:function(a){return CKEDITOR.getUrl(d(a))},icons:{},addIcon:function(a,b,c,d){a=a.toLowerCase();this.icons[a]||(this.icons[a]={path:b,offset:c||0,bgsize:d||"16px"})},getIconStyle:function(a,b,c,d,e){var g;a&&(a=a.toLowerCase(),b&&(g=this.icons[a+"-rtl"]), -g||(g=this.icons[a]));a=c||g&&g.path||"";d=d||g&&g.offset;e=e||g&&g.bgsize||"16px";a&&(a=a.replace(/'/g,"\\'"));return a&&"background-image:url('"+CKEDITOR.getUrl(a)+"');background-position:0 "+d+"px;background-size:"+e+";"}};CKEDITOR.tools.extend(CKEDITOR.editor.prototype,{getUiColor:function(){return this.uiColor},setUiColor:function(a){var b=c(CKEDITOR.document);return(this.setUiColor=function(a){this.uiColor=a;var c=CKEDITOR.skin.chameleon,d="",g="";"function"==typeof c&&(d=c(this,"editor"),g= -c(this,"panel"));a=[[n,a]];e([b],d,a);e(k,g,a)}).call(this,a)}});var h="cke_ui_color",k=[],n=/\$color/g;CKEDITOR.on("instanceLoaded",function(a){if(!CKEDITOR.env.ie||!CKEDITOR.env.quirks){var b=a.editor;a=function(a){a=(a.data[0]||a.data).element.getElementsByTag("iframe").getItem(0).getFrameDocument();if(!a.getById("cke_ui_color")){a=c(a);k.push(a);var d=b.getUiColor();d&&e([a],CKEDITOR.skin.chameleon(b,"panel"),[[n,d]])}};b.on("panelShow",a);b.on("menuShow",a);b.config.uiColor&&b.setUiColor(b.config.uiColor)}})})(); -(function(){if(CKEDITOR.env.webkit)CKEDITOR.env.hc=!1;else{var a=CKEDITOR.dom.element.createFromHtml('\x3cdiv style\x3d"width:0;height:0;position:absolute;left:-10000px;border:1px solid;border-color:red blue"\x3e\x3c/div\x3e',CKEDITOR.document);a.appendTo(CKEDITOR.document.getHead());try{var d=a.getComputedStyle("border-top-color"),b=a.getComputedStyle("border-right-color");CKEDITOR.env.hc=!(!d||d!=b)}catch(c){CKEDITOR.env.hc=!1}a.remove()}CKEDITOR.env.hc&&(CKEDITOR.env.cssClass+=" cke_hc");CKEDITOR.document.appendStyleText(".cke{visibility:hidden;}"); -CKEDITOR.status="loaded";CKEDITOR.fireOnce("loaded");if(a=CKEDITOR._.pending)for(delete CKEDITOR._.pending,d=0;d<a.length;d++)CKEDITOR.editor.prototype.constructor.apply(a[d][0],a[d][1]),CKEDITOR.add(a[d][0])})();/* - Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. - For licensing, see LICENSE.md or http://ckeditor.com/license -*/ -CKEDITOR.skin.name="moono-lisa";CKEDITOR.skin.ua_editor="ie,iequirks,ie8,gecko";CKEDITOR.skin.ua_dialog="ie,iequirks,ie8"; -CKEDITOR.skin.chameleon=function(){var b=function(){return function(b,d){for(var a=b.match(/[^#]./g),e=0;3>e;e++){var f=e,c;c=parseInt(a[e],16);c=("0"+(0>d?0|c*(1+d):0|c+(255-c)*d).toString(16)).slice(-2);a[f]=c}return"#"+a.join("")}}(),f={editor:new CKEDITOR.template("{id}.cke_chrome [border-color:{defaultBorder};] {id} .cke_top [ background-color:{defaultBackground};border-bottom-color:{defaultBorder};] {id} .cke_bottom [background-color:{defaultBackground};border-top-color:{defaultBorder};] {id} .cke_resizer [border-right-color:{ckeResizer}] {id} .cke_dialog_title [background-color:{defaultBackground};border-bottom-color:{defaultBorder};] {id} .cke_dialog_footer [background-color:{defaultBackground};outline-color:{defaultBorder};] {id} .cke_dialog_tab [background-color:{dialogTab};border-color:{defaultBorder};] {id} .cke_dialog_tab:hover [background-color:{lightBackground};] {id} .cke_dialog_contents [border-top-color:{defaultBorder};] {id} .cke_dialog_tab_selected, {id} .cke_dialog_tab_selected:hover [background:{dialogTabSelected};border-bottom-color:{dialogTabSelectedBorder};] {id} .cke_dialog_body [background:{dialogBody};border-color:{defaultBorder};] {id} a.cke_button_off:hover,{id} a.cke_button_off:focus,{id} a.cke_button_off:active [background-color:{darkBackground};border-color:{toolbarElementsBorder};] {id} .cke_button_on [background-color:{ckeButtonOn};border-color:{toolbarElementsBorder};] {id} .cke_toolbar_separator,{id} .cke_toolgroup a.cke_button:last-child:after,{id} .cke_toolgroup a.cke_button.cke_button_disabled:hover:last-child:after [background-color: {toolbarElementsBorder};border-color: {toolbarElementsBorder};] {id} a.cke_combo_button:hover,{id} a.cke_combo_button:focus,{id} .cke_combo_on a.cke_combo_button [border-color:{toolbarElementsBorder};background-color:{darkBackground};] {id} .cke_combo:after [border-color:{toolbarElementsBorder};] {id} .cke_path_item [color:{elementsPathColor};] {id} a.cke_path_item:hover,{id} a.cke_path_item:focus,{id} a.cke_path_item:active [background-color:{darkBackground};] {id}.cke_panel [border-color:{defaultBorder};] "),panel:new CKEDITOR.template(".cke_panel_grouptitle [background-color:{lightBackground};border-color:{defaultBorder};] .cke_menubutton_icon [background-color:{menubuttonIcon};] .cke_menubutton:hover,.cke_menubutton:focus,.cke_menubutton:active [background-color:{menubuttonHover};] .cke_menubutton:hover .cke_menubutton_icon, .cke_menubutton:focus .cke_menubutton_icon, .cke_menubutton:active .cke_menubutton_icon [background-color:{menubuttonIconHover};] .cke_menubutton_disabled:hover .cke_menubutton_icon,.cke_menubutton_disabled:focus .cke_menubutton_icon,.cke_menubutton_disabled:active .cke_menubutton_icon [background-color:{menubuttonIcon};] .cke_menuseparator [background-color:{menubuttonIcon};] a:hover.cke_colorbox, a:active.cke_colorbox [border-color:{defaultBorder};] a:hover.cke_colorauto, a:hover.cke_colormore, a:active.cke_colorauto, a:active.cke_colormore [background-color:{ckeColorauto};border-color:{defaultBorder};] ")}; -return function(g,d){var a=b(g.uiColor,.4),a={id:"."+g.id,defaultBorder:b(a,-.2),toolbarElementsBorder:b(a,-.25),defaultBackground:a,lightBackground:b(a,.8),darkBackground:b(a,-.15),ckeButtonOn:b(a,.4),ckeResizer:b(a,-.4),ckeColorauto:b(a,.8),dialogBody:b(a,.7),dialogTab:b(a,.65),dialogTabSelected:"#FFF",dialogTabSelectedBorder:"#FFF",elementsPathColor:b(a,-.6),menubuttonHover:b(a,.1),menubuttonIcon:b(a,.5),menubuttonIconHover:b(a,.3)};return f[d].output(a).replace(/\[/g,"{").replace(/\]/g,"}")}}();CKEDITOR.plugins.add("dialogui",{onLoad:function(){var h=function(b){this._||(this._={});this._["default"]=this._.initValue=b["default"]||"";this._.required=b.required||!1;for(var a=[this._],d=1;d<arguments.length;d++)a.push(arguments[d]);a.push(!0);CKEDITOR.tools.extend.apply(CKEDITOR.tools,a);return this._},v={build:function(b,a,d){return new CKEDITOR.ui.dialog.textInput(b,a,d)}},n={build:function(b,a,d){return new CKEDITOR.ui.dialog[a.type](b,a,d)}},q={isChanged:function(){return this.getValue()!= -this.getInitValue()},reset:function(b){this.setValue(this.getInitValue(),b)},setInitValue:function(){this._.initValue=this.getValue()},resetInitValue:function(){this._.initValue=this._["default"]},getInitValue:function(){return this._.initValue}},r=CKEDITOR.tools.extend({},CKEDITOR.ui.dialog.uiElement.prototype.eventProcessors,{onChange:function(b,a){this._.domOnChangeRegistered||(b.on("load",function(){this.getInputElement().on("change",function(){b.parts.dialog.isVisible()&&this.fire("change",{value:this.getValue()})}, -this)},this),this._.domOnChangeRegistered=!0);this.on("change",a)}},!0),x=/^on([A-Z]\w+)/,t=function(b){for(var a in b)(x.test(a)||"title"==a||"type"==a)&&delete b[a];return b},w=function(b){b=b.data.getKeystroke();b==CKEDITOR.SHIFT+CKEDITOR.ALT+36?this.setDirectionMarker("ltr"):b==CKEDITOR.SHIFT+CKEDITOR.ALT+35&&this.setDirectionMarker("rtl")};CKEDITOR.tools.extend(CKEDITOR.ui.dialog,{labeledElement:function(b,a,d,f){if(!(4>arguments.length)){var c=h.call(this,a);c.labelId=CKEDITOR.tools.getNextId()+ -"_label";this._.children=[];var e={role:a.role||"presentation"};a.includeLabel&&(e["aria-labelledby"]=c.labelId);CKEDITOR.ui.dialog.uiElement.call(this,b,a,d,"div",null,e,function(){var e=[],g=a.required?" cke_required":"";"horizontal"!=a.labelLayout?e.push('\x3clabel class\x3d"cke_dialog_ui_labeled_label'+g+'" ',' id\x3d"'+c.labelId+'"',c.inputId?' for\x3d"'+c.inputId+'"':"",(a.labelStyle?' style\x3d"'+a.labelStyle+'"':"")+"\x3e",a.label,"\x3c/label\x3e",'\x3cdiv class\x3d"cke_dialog_ui_labeled_content"', -a.controlStyle?' style\x3d"'+a.controlStyle+'"':"",' role\x3d"presentation"\x3e',f.call(this,b,a),"\x3c/div\x3e"):(g={type:"hbox",widths:a.widths,padding:0,children:[{type:"html",html:'\x3clabel class\x3d"cke_dialog_ui_labeled_label'+g+'" id\x3d"'+c.labelId+'" for\x3d"'+c.inputId+'"'+(a.labelStyle?' style\x3d"'+a.labelStyle+'"':"")+"\x3e"+CKEDITOR.tools.htmlEncode(a.label)+"\x3c/label\x3e"},{type:"html",html:'\x3cspan class\x3d"cke_dialog_ui_labeled_content"'+(a.controlStyle?' style\x3d"'+a.controlStyle+ -'"':"")+"\x3e"+f.call(this,b,a)+"\x3c/span\x3e"}]},CKEDITOR.dialog._.uiElementBuilders.hbox.build(b,g,e));return e.join("")})}},textInput:function(b,a,d){if(!(3>arguments.length)){h.call(this,a);var f=this._.inputId=CKEDITOR.tools.getNextId()+"_textInput",c={"class":"cke_dialog_ui_input_"+a.type,id:f,type:a.type};a.validate&&(this.validate=a.validate);a.maxLength&&(c.maxlength=a.maxLength);a.size&&(c.size=a.size);a.inputStyle&&(c.style=a.inputStyle);var e=this,m=!1;b.on("load",function(){e.getInputElement().on("keydown", -function(a){13==a.data.getKeystroke()&&(m=!0)});e.getInputElement().on("keyup",function(a){13==a.data.getKeystroke()&&m&&(b.getButton("ok")&&setTimeout(function(){b.getButton("ok").click()},0),m=!1);e.bidi&&w.call(e,a)},null,null,1E3)});CKEDITOR.ui.dialog.labeledElement.call(this,b,a,d,function(){var b=['\x3cdiv class\x3d"cke_dialog_ui_input_',a.type,'" role\x3d"presentation"'];a.width&&b.push('style\x3d"width:'+a.width+'" ');b.push("\x3e\x3cinput ");c["aria-labelledby"]=this._.labelId;this._.required&& -(c["aria-required"]=this._.required);for(var e in c)b.push(e+'\x3d"'+c[e]+'" ');b.push(" /\x3e\x3c/div\x3e");return b.join("")})}},textarea:function(b,a,d){if(!(3>arguments.length)){h.call(this,a);var f=this,c=this._.inputId=CKEDITOR.tools.getNextId()+"_textarea",e={};a.validate&&(this.validate=a.validate);e.rows=a.rows||5;e.cols=a.cols||20;e["class"]="cke_dialog_ui_input_textarea "+(a["class"]||"");"undefined"!=typeof a.inputStyle&&(e.style=a.inputStyle);a.dir&&(e.dir=a.dir);if(f.bidi)b.on("load", -function(){f.getInputElement().on("keyup",w)},f);CKEDITOR.ui.dialog.labeledElement.call(this,b,a,d,function(){e["aria-labelledby"]=this._.labelId;this._.required&&(e["aria-required"]=this._.required);var a=['\x3cdiv class\x3d"cke_dialog_ui_input_textarea" role\x3d"presentation"\x3e\x3ctextarea id\x3d"',c,'" '],b;for(b in e)a.push(b+'\x3d"'+CKEDITOR.tools.htmlEncode(e[b])+'" ');a.push("\x3e",CKEDITOR.tools.htmlEncode(f._["default"]),"\x3c/textarea\x3e\x3c/div\x3e");return a.join("")})}},checkbox:function(b, -a,d){if(!(3>arguments.length)){var f=h.call(this,a,{"default":!!a["default"]});a.validate&&(this.validate=a.validate);CKEDITOR.ui.dialog.uiElement.call(this,b,a,d,"span",null,null,function(){var c=CKEDITOR.tools.extend({},a,{id:a.id?a.id+"_checkbox":CKEDITOR.tools.getNextId()+"_checkbox"},!0),e=[],d=CKEDITOR.tools.getNextId()+"_label",g={"class":"cke_dialog_ui_checkbox_input",type:"checkbox","aria-labelledby":d};t(c);a["default"]&&(g.checked="checked");"undefined"!=typeof c.inputStyle&&(c.style=c.inputStyle); -f.checkbox=new CKEDITOR.ui.dialog.uiElement(b,c,e,"input",null,g);e.push(' \x3clabel id\x3d"',d,'" for\x3d"',g.id,'"'+(a.labelStyle?' style\x3d"'+a.labelStyle+'"':"")+"\x3e",CKEDITOR.tools.htmlEncode(a.label),"\x3c/label\x3e");return e.join("")})}},radio:function(b,a,d){if(!(3>arguments.length)){h.call(this,a);this._["default"]||(this._["default"]=this._.initValue=a.items[0][1]);a.validate&&(this.validate=a.validate);var f=[],c=this;a.role="radiogroup";a.includeLabel=!0;CKEDITOR.ui.dialog.labeledElement.call(this, -b,a,d,function(){for(var e=[],d=[],g=(a.id?a.id:CKEDITOR.tools.getNextId())+"_radio",k=0;k<a.items.length;k++){var l=a.items[k],h=void 0!==l[2]?l[2]:l[0],n=void 0!==l[1]?l[1]:l[0],p=CKEDITOR.tools.getNextId()+"_radio_input",q=p+"_label",p=CKEDITOR.tools.extend({},a,{id:p,title:null,type:null},!0),h=CKEDITOR.tools.extend({},p,{title:h},!0),r={type:"radio","class":"cke_dialog_ui_radio_input",name:g,value:n,"aria-labelledby":q},u=[];c._["default"]==n&&(r.checked="checked");t(p);t(h);"undefined"!=typeof p.inputStyle&& -(p.style=p.inputStyle);p.keyboardFocusable=!0;f.push(new CKEDITOR.ui.dialog.uiElement(b,p,u,"input",null,r));u.push(" ");new CKEDITOR.ui.dialog.uiElement(b,h,u,"label",null,{id:q,"for":r.id},l[0]);e.push(u.join(""))}new CKEDITOR.ui.dialog.hbox(b,f,e,d);return d.join("")});this._.children=f}},button:function(b,a,d){if(arguments.length){"function"==typeof a&&(a=a(b.getParentEditor()));h.call(this,a,{disabled:a.disabled||!1});CKEDITOR.event.implementOn(this);var f=this;b.on("load",function(){var a=this.getElement(); -(function(){a.on("click",function(a){f.click();a.data.preventDefault()});a.on("keydown",function(a){a.data.getKeystroke()in{32:1}&&(f.click(),a.data.preventDefault())})})();a.unselectable()},this);var c=CKEDITOR.tools.extend({},a);delete c.style;var e=CKEDITOR.tools.getNextId()+"_label";CKEDITOR.ui.dialog.uiElement.call(this,b,c,d,"a",null,{style:a.style,href:"javascript:void(0)",title:a.label,hidefocus:"true","class":a["class"],role:"button","aria-labelledby":e},'\x3cspan id\x3d"'+e+'" class\x3d"cke_dialog_ui_button"\x3e'+ -CKEDITOR.tools.htmlEncode(a.label)+"\x3c/span\x3e")}},select:function(b,a,d){if(!(3>arguments.length)){var f=h.call(this,a);a.validate&&(this.validate=a.validate);f.inputId=CKEDITOR.tools.getNextId()+"_select";CKEDITOR.ui.dialog.labeledElement.call(this,b,a,d,function(){var c=CKEDITOR.tools.extend({},a,{id:a.id?a.id+"_select":CKEDITOR.tools.getNextId()+"_select"},!0),e=[],d=[],g={id:f.inputId,"class":"cke_dialog_ui_input_select","aria-labelledby":this._.labelId};e.push('\x3cdiv class\x3d"cke_dialog_ui_input_', -a.type,'" role\x3d"presentation"');a.width&&e.push('style\x3d"width:'+a.width+'" ');e.push("\x3e");void 0!==a.size&&(g.size=a.size);void 0!==a.multiple&&(g.multiple=a.multiple);t(c);for(var k=0,l;k<a.items.length&&(l=a.items[k]);k++)d.push('\x3coption value\x3d"',CKEDITOR.tools.htmlEncode(void 0!==l[1]?l[1]:l[0]).replace(/"/g,"\x26quot;"),'" /\x3e ',CKEDITOR.tools.htmlEncode(l[0]));"undefined"!=typeof c.inputStyle&&(c.style=c.inputStyle);f.select=new CKEDITOR.ui.dialog.uiElement(b,c,e,"select",null, -g,d.join(""));e.push("\x3c/div\x3e");return e.join("")})}},file:function(b,a,d){if(!(3>arguments.length)){void 0===a["default"]&&(a["default"]="");var f=CKEDITOR.tools.extend(h.call(this,a),{definition:a,buttons:[]});a.validate&&(this.validate=a.validate);b.on("load",function(){CKEDITOR.document.getById(f.frameId).getParent().addClass("cke_dialog_ui_input_file")});CKEDITOR.ui.dialog.labeledElement.call(this,b,a,d,function(){f.frameId=CKEDITOR.tools.getNextId()+"_fileInput";var b=['\x3ciframe frameborder\x3d"0" allowtransparency\x3d"0" class\x3d"cke_dialog_ui_input_file" role\x3d"presentation" id\x3d"', -f.frameId,'" title\x3d"',a.label,'" src\x3d"javascript:void('];b.push(CKEDITOR.env.ie?"(function(){"+encodeURIComponent("document.open();("+CKEDITOR.tools.fixDomain+")();document.close();")+"})()":"0");b.push(')"\x3e\x3c/iframe\x3e');return b.join("")})}},fileButton:function(b,a,d){var f=this;if(!(3>arguments.length)){h.call(this,a);a.validate&&(this.validate=a.validate);var c=CKEDITOR.tools.extend({},a),e=c.onClick;c.className=(c.className?c.className+" ":"")+"cke_dialog_ui_button";c.onClick=function(c){var d= -a["for"];e&&!1===e.call(this,c)||(b.getContentElement(d[0],d[1]).submit(),this.disable())};b.on("load",function(){b.getContentElement(a["for"][0],a["for"][1])._.buttons.push(f)});CKEDITOR.ui.dialog.button.call(this,b,c,d)}},html:function(){var b=/^\s*<[\w:]+\s+([^>]*)?>/,a=/^(\s*<[\w:]+(?:\s+[^>]*)?)((?:.|\r|\n)+)$/,d=/\/$/;return function(f,c,e){if(!(3>arguments.length)){var m=[],g=c.html;"\x3c"!=g.charAt(0)&&(g="\x3cspan\x3e"+g+"\x3c/span\x3e");var k=c.focus;if(k){var l=this.focus;this.focus=function(){("function"== -typeof k?k:l).call(this);this.fire("focus")};c.isFocusable&&(this.isFocusable=this.isFocusable);this.keyboardFocusable=!0}CKEDITOR.ui.dialog.uiElement.call(this,f,c,m,"span",null,null,"");m=m.join("").match(b);g=g.match(a)||["","",""];d.test(g[1])&&(g[1]=g[1].slice(0,-1),g[2]="/"+g[2]);e.push([g[1]," ",m[1]||"",g[2]].join(""))}}}(),fieldset:function(b,a,d,f,c){var e=c.label;this._={children:a};CKEDITOR.ui.dialog.uiElement.call(this,b,c,f,"fieldset",null,null,function(){var a=[];e&&a.push("\x3clegend"+ -(c.labelStyle?' style\x3d"'+c.labelStyle+'"':"")+"\x3e"+e+"\x3c/legend\x3e");for(var b=0;b<d.length;b++)a.push(d[b]);return a.join("")})}},!0);CKEDITOR.ui.dialog.html.prototype=new CKEDITOR.ui.dialog.uiElement;CKEDITOR.ui.dialog.labeledElement.prototype=CKEDITOR.tools.extend(new CKEDITOR.ui.dialog.uiElement,{setLabel:function(b){var a=CKEDITOR.document.getById(this._.labelId);1>a.getChildCount()?(new CKEDITOR.dom.text(b,CKEDITOR.document)).appendTo(a):a.getChild(0).$.nodeValue=b;return this},getLabel:function(){var b= -CKEDITOR.document.getById(this._.labelId);return!b||1>b.getChildCount()?"":b.getChild(0).getText()},eventProcessors:r},!0);CKEDITOR.ui.dialog.button.prototype=CKEDITOR.tools.extend(new CKEDITOR.ui.dialog.uiElement,{click:function(){return this._.disabled?!1:this.fire("click",{dialog:this._.dialog})},enable:function(){this._.disabled=!1;var b=this.getElement();b&&b.removeClass("cke_disabled")},disable:function(){this._.disabled=!0;this.getElement().addClass("cke_disabled")},isVisible:function(){return this.getElement().getFirst().isVisible()}, -isEnabled:function(){return!this._.disabled},eventProcessors:CKEDITOR.tools.extend({},CKEDITOR.ui.dialog.uiElement.prototype.eventProcessors,{onClick:function(b,a){this.on("click",function(){a.apply(this,arguments)})}},!0),accessKeyUp:function(){this.click()},accessKeyDown:function(){this.focus()},keyboardFocusable:!0},!0);CKEDITOR.ui.dialog.textInput.prototype=CKEDITOR.tools.extend(new CKEDITOR.ui.dialog.labeledElement,{getInputElement:function(){return CKEDITOR.document.getById(this._.inputId)}, -focus:function(){var b=this.selectParentTab();setTimeout(function(){var a=b.getInputElement();a&&a.$.focus()},0)},select:function(){var b=this.selectParentTab();setTimeout(function(){var a=b.getInputElement();a&&(a.$.focus(),a.$.select())},0)},accessKeyUp:function(){this.select()},setValue:function(b){if(this.bidi){var a=b&&b.charAt(0);(a="‪"==a?"ltr":"‫"==a?"rtl":null)&&(b=b.slice(1));this.setDirectionMarker(a)}b||(b="");return CKEDITOR.ui.dialog.uiElement.prototype.setValue.apply(this,arguments)}, -getValue:function(){var b=CKEDITOR.ui.dialog.uiElement.prototype.getValue.call(this);if(this.bidi&&b){var a=this.getDirectionMarker();a&&(b=("ltr"==a?"‪":"‫")+b)}return b},setDirectionMarker:function(b){var a=this.getInputElement();b?a.setAttributes({dir:b,"data-cke-dir-marker":b}):this.getDirectionMarker()&&a.removeAttributes(["dir","data-cke-dir-marker"])},getDirectionMarker:function(){return this.getInputElement().data("cke-dir-marker")},keyboardFocusable:!0},q,!0);CKEDITOR.ui.dialog.textarea.prototype= -new CKEDITOR.ui.dialog.textInput;CKEDITOR.ui.dialog.select.prototype=CKEDITOR.tools.extend(new CKEDITOR.ui.dialog.labeledElement,{getInputElement:function(){return this._.select.getElement()},add:function(b,a,d){var f=new CKEDITOR.dom.element("option",this.getDialog().getParentEditor().document),c=this.getInputElement().$;f.$.text=b;f.$.value=void 0===a||null===a?b:a;void 0===d||null===d?CKEDITOR.env.ie?c.add(f.$):c.add(f.$,null):c.add(f.$,d);return this},remove:function(b){this.getInputElement().$.remove(b); -return this},clear:function(){for(var b=this.getInputElement().$;0<b.length;)b.remove(0);return this},keyboardFocusable:!0},q,!0);CKEDITOR.ui.dialog.checkbox.prototype=CKEDITOR.tools.extend(new CKEDITOR.ui.dialog.uiElement,{getInputElement:function(){return this._.checkbox.getElement()},setValue:function(b,a){this.getInputElement().$.checked=b;!a&&this.fire("change",{value:b})},getValue:function(){return this.getInputElement().$.checked},accessKeyUp:function(){this.setValue(!this.getValue())},eventProcessors:{onChange:function(b, -a){if(!CKEDITOR.env.ie||8<CKEDITOR.env.version)return r.onChange.apply(this,arguments);b.on("load",function(){var a=this._.checkbox.getElement();a.on("propertychange",function(b){b=b.data.$;"checked"==b.propertyName&&this.fire("change",{value:a.$.checked})},this)},this);this.on("change",a);return null}},keyboardFocusable:!0},q,!0);CKEDITOR.ui.dialog.radio.prototype=CKEDITOR.tools.extend(new CKEDITOR.ui.dialog.uiElement,{setValue:function(b,a){for(var d=this._.children,f,c=0;c<d.length&&(f=d[c]);c++)f.getElement().$.checked= -f.getValue()==b;!a&&this.fire("change",{value:b})},getValue:function(){for(var b=this._.children,a=0;a<b.length;a++)if(b[a].getElement().$.checked)return b[a].getValue();return null},accessKeyUp:function(){var b=this._.children,a;for(a=0;a<b.length;a++)if(b[a].getElement().$.checked){b[a].getElement().focus();return}b[0].getElement().focus()},eventProcessors:{onChange:function(b,a){if(!CKEDITOR.env.ie||8<CKEDITOR.env.version)return r.onChange.apply(this,arguments);b.on("load",function(){for(var a= -this._.children,b=this,c=0;c<a.length;c++)a[c].getElement().on("propertychange",function(a){a=a.data.$;"checked"==a.propertyName&&this.$.checked&&b.fire("change",{value:this.getAttribute("value")})})},this);this.on("change",a);return null}}},q,!0);CKEDITOR.ui.dialog.file.prototype=CKEDITOR.tools.extend(new CKEDITOR.ui.dialog.labeledElement,q,{getInputElement:function(){var b=CKEDITOR.document.getById(this._.frameId).getFrameDocument();return 0<b.$.forms.length?new CKEDITOR.dom.element(b.$.forms[0].elements[0]): -this.getElement()},submit:function(){this.getInputElement().getParent().$.submit();return this},getAction:function(){return this.getInputElement().getParent().$.action},registerEvents:function(b){var a=/^on([A-Z]\w+)/,d,f=function(a,b,c,d){a.on("formLoaded",function(){a.getInputElement().on(c,d,a)})},c;for(c in b)if(d=c.match(a))this.eventProcessors[c]?this.eventProcessors[c].call(this,this._.dialog,b[c]):f(this,this._.dialog,d[1].toLowerCase(),b[c]);return this},reset:function(){function b(){d.$.open(); -var b="";f.size&&(b=f.size-(CKEDITOR.env.ie?7:0));var h=a.frameId+"_input";d.$.write(['\x3chtml dir\x3d"'+g+'" lang\x3d"'+k+'"\x3e\x3chead\x3e\x3ctitle\x3e\x3c/title\x3e\x3c/head\x3e\x3cbody style\x3d"margin: 0; overflow: hidden; background: transparent;"\x3e','\x3cform enctype\x3d"multipart/form-data" method\x3d"POST" dir\x3d"'+g+'" lang\x3d"'+k+'" action\x3d"',CKEDITOR.tools.htmlEncode(f.action),'"\x3e\x3clabel id\x3d"',a.labelId,'" for\x3d"',h,'" style\x3d"display:none"\x3e',CKEDITOR.tools.htmlEncode(f.label), -'\x3c/label\x3e\x3cinput style\x3d"width:100%" id\x3d"',h,'" aria-labelledby\x3d"',a.labelId,'" type\x3d"file" name\x3d"',CKEDITOR.tools.htmlEncode(f.id||"cke_upload"),'" size\x3d"',CKEDITOR.tools.htmlEncode(0<b?b:""),'" /\x3e\x3c/form\x3e\x3c/body\x3e\x3c/html\x3e\x3cscript\x3e',CKEDITOR.env.ie?"("+CKEDITOR.tools.fixDomain+")();":"","window.parent.CKEDITOR.tools.callFunction("+e+");","window.onbeforeunload \x3d function() {window.parent.CKEDITOR.tools.callFunction("+m+")}","\x3c/script\x3e"].join("")); -d.$.close();for(b=0;b<c.length;b++)c[b].enable()}var a=this._,d=CKEDITOR.document.getById(a.frameId).getFrameDocument(),f=a.definition,c=a.buttons,e=this.formLoadedNumber,m=this.formUnloadNumber,g=a.dialog._.editor.lang.dir,k=a.dialog._.editor.langCode;e||(e=this.formLoadedNumber=CKEDITOR.tools.addFunction(function(){this.fire("formLoaded")},this),m=this.formUnloadNumber=CKEDITOR.tools.addFunction(function(){this.getInputElement().clearCustomData()},this),this.getDialog()._.editor.on("destroy",function(){CKEDITOR.tools.removeFunction(e); -CKEDITOR.tools.removeFunction(m)}));CKEDITOR.env.gecko?setTimeout(b,500):b()},getValue:function(){return this.getInputElement().$.value||""},setInitValue:function(){this._.initValue=""},eventProcessors:{onChange:function(b,a){this._.domOnChangeRegistered||(this.on("formLoaded",function(){this.getInputElement().on("change",function(){this.fire("change",{value:this.getValue()})},this)},this),this._.domOnChangeRegistered=!0);this.on("change",a)}},keyboardFocusable:!0},!0);CKEDITOR.ui.dialog.fileButton.prototype= -new CKEDITOR.ui.dialog.button;CKEDITOR.ui.dialog.fieldset.prototype=CKEDITOR.tools.clone(CKEDITOR.ui.dialog.hbox.prototype);CKEDITOR.dialog.addUIElement("text",v);CKEDITOR.dialog.addUIElement("password",v);CKEDITOR.dialog.addUIElement("textarea",n);CKEDITOR.dialog.addUIElement("checkbox",n);CKEDITOR.dialog.addUIElement("radio",n);CKEDITOR.dialog.addUIElement("button",n);CKEDITOR.dialog.addUIElement("select",n);CKEDITOR.dialog.addUIElement("file",n);CKEDITOR.dialog.addUIElement("fileButton",n);CKEDITOR.dialog.addUIElement("html", -n);CKEDITOR.dialog.addUIElement("fieldset",{build:function(b,a,d){for(var f=a.children,c,e=[],h=[],g=0;g<f.length&&(c=f[g]);g++){var k=[];e.push(k);h.push(CKEDITOR.dialog._.uiElementBuilders[c.type].build(b,c,k))}return new CKEDITOR.ui.dialog[a.type](b,h,e,d,a)}})}});CKEDITOR.DIALOG_RESIZE_NONE=0;CKEDITOR.DIALOG_RESIZE_WIDTH=1;CKEDITOR.DIALOG_RESIZE_HEIGHT=2;CKEDITOR.DIALOG_RESIZE_BOTH=3;CKEDITOR.DIALOG_STATE_IDLE=1;CKEDITOR.DIALOG_STATE_BUSY=2; -(function(){function x(){for(var a=this._.tabIdList.length,b=CKEDITOR.tools.indexOf(this._.tabIdList,this._.currentTabId)+a,c=b-1;c>b-a;c--)if(this._.tabs[this._.tabIdList[c%a]][0].$.offsetHeight)return this._.tabIdList[c%a];return null}function A(){for(var a=this._.tabIdList.length,b=CKEDITOR.tools.indexOf(this._.tabIdList,this._.currentTabId),c=b+1;c<b+a;c++)if(this._.tabs[this._.tabIdList[c%a]][0].$.offsetHeight)return this._.tabIdList[c%a];return null}function K(a,b){for(var c=a.$.getElementsByTagName("input"), -e=0,d=c.length;e<d;e++){var f=new CKEDITOR.dom.element(c[e]);"text"==f.getAttribute("type").toLowerCase()&&(b?(f.setAttribute("value",f.getCustomData("fake_value")||""),f.removeCustomData("fake_value")):(f.setCustomData("fake_value",f.getAttribute("value")),f.setAttribute("value","")))}}function T(a,b){var c=this.getInputElement();c&&(a?c.removeAttribute("aria-invalid"):c.setAttribute("aria-invalid",!0));a||(this.select?this.select():this.focus());b&&alert(b);this.fire("validated",{valid:a,msg:b})} -function U(){var a=this.getInputElement();a&&a.removeAttribute("aria-invalid")}function V(a){var b=CKEDITOR.dom.element.createFromHtml(CKEDITOR.addTemplate("dialog",W).output({id:CKEDITOR.tools.getNextNumber(),editorId:a.id,langDir:a.lang.dir,langCode:a.langCode,editorDialogClass:"cke_editor_"+a.name.replace(/\./g,"\\.")+"_dialog",closeTitle:a.lang.common.close,hidpi:CKEDITOR.env.hidpi?"cke_hidpi":""})),c=b.getChild([0,0,0,0,0]),e=c.getChild(0),d=c.getChild(1);a.plugins.clipboard&&CKEDITOR.plugins.clipboard.preventDefaultDropOnElement(c); -!CKEDITOR.env.ie||CKEDITOR.env.quirks||CKEDITOR.env.edge||(a="javascript:void(function(){"+encodeURIComponent("document.open();("+CKEDITOR.tools.fixDomain+")();document.close();")+"}())",CKEDITOR.dom.element.createFromHtml('\x3ciframe frameBorder\x3d"0" class\x3d"cke_iframe_shim" src\x3d"'+a+'" tabIndex\x3d"-1"\x3e\x3c/iframe\x3e').appendTo(c.getParent()));e.unselectable();d.unselectable();return{element:b,parts:{dialog:b.getChild(0),title:e,close:d,tabs:c.getChild(2),contents:c.getChild([3,0,0,0]), -footer:c.getChild([3,0,1,0])}}}function L(a,b,c){this.element=b;this.focusIndex=c;this.tabIndex=0;this.isFocusable=function(){return!b.getAttribute("disabled")&&b.isVisible()};this.focus=function(){a._.currentFocusIndex=this.focusIndex;this.element.focus()};b.on("keydown",function(a){a.data.getKeystroke()in{32:1,13:1}&&this.fire("click")});b.on("focus",function(){this.fire("mouseover")});b.on("blur",function(){this.fire("mouseout")})}function X(a){function b(){a.layout()}var c=CKEDITOR.document.getWindow(); -c.on("resize",b);a.on("hide",function(){c.removeListener("resize",b)})}function M(a,b){this._={dialog:a};CKEDITOR.tools.extend(this,b)}function Y(a){function b(b){var c=a.getSize(),k=CKEDITOR.document.getWindow().getViewPaneSize(),q=b.data.$.screenX,n=b.data.$.screenY,r=q-e.x,l=n-e.y;e={x:q,y:n};d.x+=r;d.y+=l;a.move(d.x+h[3]<g?-h[3]:d.x-h[1]>k.width-c.width-g?k.width-c.width+("rtl"==f.lang.dir?0:h[1]):d.x,d.y+h[0]<g?-h[0]:d.y-h[2]>k.height-c.height-g?k.height-c.height+h[2]:d.y,1);b.data.preventDefault()} -function c(){CKEDITOR.document.removeListener("mousemove",b);CKEDITOR.document.removeListener("mouseup",c);if(CKEDITOR.env.ie6Compat){var a=u.getChild(0).getFrameDocument();a.removeListener("mousemove",b);a.removeListener("mouseup",c)}}var e=null,d=null,f=a.getParentEditor(),g=f.config.dialog_magnetDistance,h=CKEDITOR.skin.margins||[0,0,0,0];"undefined"==typeof g&&(g=20);a.parts.title.on("mousedown",function(g){e={x:g.data.$.screenX,y:g.data.$.screenY};CKEDITOR.document.on("mousemove",b);CKEDITOR.document.on("mouseup", -c);d=a.getPosition();if(CKEDITOR.env.ie6Compat){var f=u.getChild(0).getFrameDocument();f.on("mousemove",b);f.on("mouseup",c)}g.data.preventDefault()},a)}function Z(a){function b(b){var c="rtl"==f.lang.dir,n=k.width,q=k.height,G=n+(b.data.$.screenX-m.x)*(c?-1:1)*(a._.moved?1:2),H=q+(b.data.$.screenY-m.y)*(a._.moved?1:2),B=a._.element.getFirst(),B=c&&B.getComputedStyle("right"),C=a.getPosition();C.y+H>p.height&&(H=p.height-C.y);(c?B:C.x)+G>p.width&&(G=p.width-(c?B:C.x));if(d==CKEDITOR.DIALOG_RESIZE_WIDTH|| -d==CKEDITOR.DIALOG_RESIZE_BOTH)n=Math.max(e.minWidth||0,G-g);if(d==CKEDITOR.DIALOG_RESIZE_HEIGHT||d==CKEDITOR.DIALOG_RESIZE_BOTH)q=Math.max(e.minHeight||0,H-h);a.resize(n,q);a._.moved||a.layout();b.data.preventDefault()}function c(){CKEDITOR.document.removeListener("mouseup",c);CKEDITOR.document.removeListener("mousemove",b);q&&(q.remove(),q=null);if(CKEDITOR.env.ie6Compat){var a=u.getChild(0).getFrameDocument();a.removeListener("mouseup",c);a.removeListener("mousemove",b)}}var e=a.definition,d=e.resizable; -if(d!=CKEDITOR.DIALOG_RESIZE_NONE){var f=a.getParentEditor(),g,h,p,m,k,q,n=CKEDITOR.tools.addFunction(function(d){k=a.getSize();var e=a.parts.contents;e.$.getElementsByTagName("iframe").length&&(q=CKEDITOR.dom.element.createFromHtml('\x3cdiv class\x3d"cke_dialog_resize_cover" style\x3d"height: 100%; position: absolute; width: 100%;"\x3e\x3c/div\x3e'),e.append(q));h=k.height-a.parts.contents.getSize("height",!(CKEDITOR.env.gecko||CKEDITOR.env.ie&&CKEDITOR.env.quirks));g=k.width-a.parts.contents.getSize("width", -1);m={x:d.screenX,y:d.screenY};p=CKEDITOR.document.getWindow().getViewPaneSize();CKEDITOR.document.on("mousemove",b);CKEDITOR.document.on("mouseup",c);CKEDITOR.env.ie6Compat&&(e=u.getChild(0).getFrameDocument(),e.on("mousemove",b),e.on("mouseup",c));d.preventDefault&&d.preventDefault()});a.on("load",function(){var b="";d==CKEDITOR.DIALOG_RESIZE_WIDTH?b=" cke_resizer_horizontal":d==CKEDITOR.DIALOG_RESIZE_HEIGHT&&(b=" cke_resizer_vertical");b=CKEDITOR.dom.element.createFromHtml('\x3cdiv class\x3d"cke_resizer'+ -b+" cke_resizer_"+f.lang.dir+'" title\x3d"'+CKEDITOR.tools.htmlEncode(f.lang.common.resize)+'" onmousedown\x3d"CKEDITOR.tools.callFunction('+n+', event )"\x3e'+("ltr"==f.lang.dir?"◢":"◣")+"\x3c/div\x3e");a.parts.footer.append(b,1)});f.on("destroy",function(){CKEDITOR.tools.removeFunction(n)})}}function I(a){a.data.preventDefault(1)}function N(a){var b=CKEDITOR.document.getWindow(),c=a.config,e=CKEDITOR.skinName||a.config.skin,d=c.dialog_backgroundCoverColor||("moono-lisa"==e?"black":"white"),e=c.dialog_backgroundCoverOpacity, -f=c.baseFloatZIndex,c=CKEDITOR.tools.genKey(d,e,f),g=z[c];g?g.show():(f=['\x3cdiv tabIndex\x3d"-1" style\x3d"position: ',CKEDITOR.env.ie6Compat?"absolute":"fixed","; z-index: ",f,"; top: 0px; left: 0px; ",CKEDITOR.env.ie6Compat?"":"background-color: "+d,'" class\x3d"cke_dialog_background_cover"\x3e'],CKEDITOR.env.ie6Compat&&(d="\x3chtml\x3e\x3cbody style\x3d\\'background-color:"+d+";\\'\x3e\x3c/body\x3e\x3c/html\x3e",f.push('\x3ciframe hidefocus\x3d"true" frameborder\x3d"0" id\x3d"cke_dialog_background_iframe" src\x3d"javascript:'), -f.push("void((function(){"+encodeURIComponent("document.open();("+CKEDITOR.tools.fixDomain+")();document.write( '"+d+"' );document.close();")+"})())"),f.push('" style\x3d"position:absolute;left:0;top:0;width:100%;height: 100%;filter: progid:DXImageTransform.Microsoft.Alpha(opacity\x3d0)"\x3e\x3c/iframe\x3e')),f.push("\x3c/div\x3e"),g=CKEDITOR.dom.element.createFromHtml(f.join("")),g.setOpacity(void 0!==e?e:.5),g.on("keydown",I),g.on("keypress",I),g.on("keyup",I),g.appendTo(CKEDITOR.document.getBody()), -z[c]=g);a.focusManager.add(g);u=g;a=function(){var a=b.getViewPaneSize();g.setStyles({width:a.width+"px",height:a.height+"px"})};var h=function(){var a=b.getScrollPosition(),c=CKEDITOR.dialog._.currentTop;g.setStyles({left:a.x+"px",top:a.y+"px"});if(c){do a=c.getPosition(),c.move(a.x,a.y);while(c=c._.parentDialog)}};J=a;b.on("resize",a);a();CKEDITOR.env.mac&&CKEDITOR.env.webkit||g.focus();if(CKEDITOR.env.ie6Compat){var p=function(){h();arguments.callee.prevScrollHandler.apply(this,arguments)};b.$.setTimeout(function(){p.prevScrollHandler= -window.onscroll||function(){};window.onscroll=p},0);h()}}function O(a){u&&(a.focusManager.remove(u),a=CKEDITOR.document.getWindow(),u.hide(),a.removeListener("resize",J),CKEDITOR.env.ie6Compat&&a.$.setTimeout(function(){window.onscroll=window.onscroll&&window.onscroll.prevScrollHandler||null},0),J=null)}var v=CKEDITOR.tools.cssLength,W='\x3cdiv class\x3d"cke_reset_all {editorId} {editorDialogClass} {hidpi}" dir\x3d"{langDir}" lang\x3d"{langCode}" role\x3d"dialog" aria-labelledby\x3d"cke_dialog_title_{id}"\x3e\x3ctable class\x3d"cke_dialog '+ -CKEDITOR.env.cssClass+' cke_{langDir}" style\x3d"position:absolute" role\x3d"presentation"\x3e\x3ctr\x3e\x3ctd role\x3d"presentation"\x3e\x3cdiv class\x3d"cke_dialog_body" role\x3d"presentation"\x3e\x3cdiv id\x3d"cke_dialog_title_{id}" class\x3d"cke_dialog_title" role\x3d"presentation"\x3e\x3c/div\x3e\x3ca id\x3d"cke_dialog_close_button_{id}" class\x3d"cke_dialog_close_button" href\x3d"javascript:void(0)" title\x3d"{closeTitle}" role\x3d"button"\x3e\x3cspan class\x3d"cke_label"\x3eX\x3c/span\x3e\x3c/a\x3e\x3cdiv id\x3d"cke_dialog_tabs_{id}" class\x3d"cke_dialog_tabs" role\x3d"tablist"\x3e\x3c/div\x3e\x3ctable class\x3d"cke_dialog_contents" role\x3d"presentation"\x3e\x3ctr\x3e\x3ctd id\x3d"cke_dialog_contents_{id}" class\x3d"cke_dialog_contents_body" role\x3d"presentation"\x3e\x3c/td\x3e\x3c/tr\x3e\x3ctr\x3e\x3ctd id\x3d"cke_dialog_footer_{id}" class\x3d"cke_dialog_footer" role\x3d"presentation"\x3e\x3c/td\x3e\x3c/tr\x3e\x3c/table\x3e\x3c/div\x3e\x3c/td\x3e\x3c/tr\x3e\x3c/table\x3e\x3c/div\x3e'; -CKEDITOR.dialog=function(a,b){function c(){var a=l._.focusList;a.sort(function(a,b){return a.tabIndex!=b.tabIndex?b.tabIndex-a.tabIndex:a.focusIndex-b.focusIndex});for(var b=a.length,c=0;c<b;c++)a[c].focusIndex=c}function e(a){var b=l._.focusList;a=a||0;if(!(1>b.length)){var c=l._.currentFocusIndex;l._.tabBarMode&&0>a&&(c=0);try{b[c].getInputElement().$.blur()}catch(d){}var e=c,g=1<l._.pageCount;do{e+=a;if(g&&!l._.tabBarMode&&(e==b.length||-1==e)){l._.tabBarMode=!0;l._.tabs[l._.currentTabId][0].focus(); -l._.currentFocusIndex=-1;return}e=(e+b.length)%b.length;if(e==c)break}while(a&&!b[e].isFocusable());b[e].focus();"text"==b[e].type&&b[e].select()}}function d(b){if(l==CKEDITOR.dialog._.currentTop){var c=b.data.getKeystroke(),d="rtl"==a.lang.dir,g=[37,38,39,40];q=n=0;if(9==c||c==CKEDITOR.SHIFT+9)e(c==CKEDITOR.SHIFT+9?-1:1),q=1;else if(c==CKEDITOR.ALT+121&&!l._.tabBarMode&&1<l.getPageCount())l._.tabBarMode=!0,l._.tabs[l._.currentTabId][0].focus(),l._.currentFocusIndex=-1,q=1;else if(-1!=CKEDITOR.tools.indexOf(g, -c)&&l._.tabBarMode)c=-1!=CKEDITOR.tools.indexOf([d?39:37,38],c)?x.call(l):A.call(l),l.selectPage(c),l._.tabs[c][0].focus(),q=1;else if(13!=c&&32!=c||!l._.tabBarMode)if(13==c)c=b.data.getTarget(),c.is("a","button","select","textarea")||c.is("input")&&"button"==c.$.type||((c=this.getButton("ok"))&&CKEDITOR.tools.setTimeout(c.click,0,c),q=1),n=1;else if(27==c)(c=this.getButton("cancel"))?CKEDITOR.tools.setTimeout(c.click,0,c):!1!==this.fire("cancel",{hide:!0}).hide&&this.hide(),n=1;else return;else this.selectPage(this._.currentTabId), -this._.tabBarMode=!1,this._.currentFocusIndex=-1,e(1),q=1;f(b)}}function f(a){q?a.data.preventDefault(1):n&&a.data.stopPropagation()}var g=CKEDITOR.dialog._.dialogDefinitions[b],h=CKEDITOR.tools.clone(aa),p=a.config.dialog_buttonsOrder||"OS",m=a.lang.dir,k={},q,n;("OS"==p&&CKEDITOR.env.mac||"rtl"==p&&"ltr"==m||"ltr"==p&&"rtl"==m)&&h.buttons.reverse();g=CKEDITOR.tools.extend(g(a),h);g=CKEDITOR.tools.clone(g);g=new P(this,g);h=V(a);this._={editor:a,element:h.element,name:b,contentSize:{width:0,height:0}, -size:{width:0,height:0},contents:{},buttons:{},accessKeyMap:{},tabs:{},tabIdList:[],currentTabId:null,currentTabIndex:null,pageCount:0,lastTab:null,tabBarMode:!1,focusList:[],currentFocusIndex:0,hasFocus:!1};this.parts=h.parts;CKEDITOR.tools.setTimeout(function(){a.fire("ariaWidget",this.parts.contents)},0,this);h={position:CKEDITOR.env.ie6Compat?"absolute":"fixed",top:0,visibility:"hidden"};h["rtl"==m?"right":"left"]=0;this.parts.dialog.setStyles(h);CKEDITOR.event.call(this);this.definition=g=CKEDITOR.fire("dialogDefinition", -{name:b,definition:g},a).definition;if(!("removeDialogTabs"in a._)&&a.config.removeDialogTabs){h=a.config.removeDialogTabs.split(";");for(m=0;m<h.length;m++)if(p=h[m].split(":"),2==p.length){var r=p[0];k[r]||(k[r]=[]);k[r].push(p[1])}a._.removeDialogTabs=k}if(a._.removeDialogTabs&&(k=a._.removeDialogTabs[b]))for(m=0;m<k.length;m++)g.removeContents(k[m]);if(g.onLoad)this.on("load",g.onLoad);if(g.onShow)this.on("show",g.onShow);if(g.onHide)this.on("hide",g.onHide);if(g.onOk)this.on("ok",function(b){a.fire("saveSnapshot"); -setTimeout(function(){a.fire("saveSnapshot")},0);!1===g.onOk.call(this,b)&&(b.data.hide=!1)});this.state=CKEDITOR.DIALOG_STATE_IDLE;if(g.onCancel)this.on("cancel",function(a){!1===g.onCancel.call(this,a)&&(a.data.hide=!1)});var l=this,t=function(a){var b=l._.contents,c=!1,d;for(d in b)for(var e in b[d])if(c=a.call(this,b[d][e]))return};this.on("ok",function(a){t(function(b){if(b.validate){var c=b.validate(this),d="string"==typeof c||!1===c;d&&(a.data.hide=!1,a.stop());T.call(b,!d,"string"==typeof c? -c:void 0);return d}})},this,null,0);this.on("cancel",function(b){t(function(c){if(c.isChanged())return a.config.dialog_noConfirmCancel||confirm(a.lang.common.confirmCancel)||(b.data.hide=!1),!0})},this,null,0);this.parts.close.on("click",function(a){!1!==this.fire("cancel",{hide:!0}).hide&&this.hide();a.data.preventDefault()},this);this.changeFocus=e;var y=this._.element;a.focusManager.add(y,1);this.on("show",function(){y.on("keydown",d,this);if(CKEDITOR.env.gecko)y.on("keypress",f,this)});this.on("hide", -function(){y.removeListener("keydown",d);CKEDITOR.env.gecko&&y.removeListener("keypress",f);t(function(a){U.apply(a)})});this.on("iframeAdded",function(a){(new CKEDITOR.dom.document(a.data.iframe.$.contentWindow.document)).on("keydown",d,this,null,0)});this.on("show",function(){c();var b=1<l._.pageCount;a.config.dialog_startupFocusTab&&b?(l._.tabBarMode=!0,l._.tabs[l._.currentTabId][0].focus(),l._.currentFocusIndex=-1):this._.hasFocus||(this._.currentFocusIndex=b?-1:this._.focusList.length-1,g.onFocus? -(b=g.onFocus.call(this))&&b.focus():e(1))},this,null,4294967295);if(CKEDITOR.env.ie6Compat)this.on("load",function(){var a=this.getElement(),b=a.getFirst();b.remove();b.appendTo(a)},this);Y(this);Z(this);(new CKEDITOR.dom.text(g.title,CKEDITOR.document)).appendTo(this.parts.title);for(m=0;m<g.contents.length;m++)(k=g.contents[m])&&this.addPage(k);this.parts.tabs.on("click",function(a){var b=a.data.getTarget();b.hasClass("cke_dialog_tab")&&(b=b.$.id,this.selectPage(b.substring(4,b.lastIndexOf("_"))), -this._.tabBarMode&&(this._.tabBarMode=!1,this._.currentFocusIndex=-1,e(1)),a.data.preventDefault())},this);m=[];k=CKEDITOR.dialog._.uiElementBuilders.hbox.build(this,{type:"hbox",className:"cke_dialog_footer_buttons",widths:[],children:g.buttons},m).getChild();this.parts.footer.setHtml(m.join(""));for(m=0;m<k.length;m++)this._.buttons[k[m].id]=k[m]};CKEDITOR.dialog.prototype={destroy:function(){this.hide();this._.element.remove()},resize:function(){return function(a,b){this._.contentSize&&this._.contentSize.width== -a&&this._.contentSize.height==b||(CKEDITOR.dialog.fire("resize",{dialog:this,width:a,height:b},this._.editor),this.fire("resize",{width:a,height:b},this._.editor),this.parts.contents.setStyles({width:a+"px",height:b+"px"}),"rtl"==this._.editor.lang.dir&&this._.position&&(this._.position.x=CKEDITOR.document.getWindow().getViewPaneSize().width-this._.contentSize.width-parseInt(this._.element.getFirst().getStyle("right"),10)),this._.contentSize={width:a,height:b})}}(),getSize:function(){var a=this._.element.getFirst(); -return{width:a.$.offsetWidth||0,height:a.$.offsetHeight||0}},move:function(a,b,c){var e=this._.element.getFirst(),d="rtl"==this._.editor.lang.dir,f="fixed"==e.getComputedStyle("position");CKEDITOR.env.ie&&e.setStyle("zoom","100%");f&&this._.position&&this._.position.x==a&&this._.position.y==b||(this._.position={x:a,y:b},f||(f=CKEDITOR.document.getWindow().getScrollPosition(),a+=f.x,b+=f.y),d&&(f=this.getSize(),a=CKEDITOR.document.getWindow().getViewPaneSize().width-f.width-a),b={top:(0<b?b:0)+"px"}, -b[d?"right":"left"]=(0<a?a:0)+"px",e.setStyles(b),c&&(this._.moved=1))},getPosition:function(){return CKEDITOR.tools.extend({},this._.position)},show:function(){var a=this._.element,b=this.definition;a.getParent()&&a.getParent().equals(CKEDITOR.document.getBody())?a.setStyle("display","block"):a.appendTo(CKEDITOR.document.getBody());this.resize(this._.contentSize&&this._.contentSize.width||b.width||b.minWidth,this._.contentSize&&this._.contentSize.height||b.height||b.minHeight);this.reset();null=== -this._.currentTabId&&this.selectPage(this.definition.contents[0].id);null===CKEDITOR.dialog._.currentZIndex&&(CKEDITOR.dialog._.currentZIndex=this._.editor.config.baseFloatZIndex);this._.element.getFirst().setStyle("z-index",CKEDITOR.dialog._.currentZIndex+=10);null===CKEDITOR.dialog._.currentTop?(CKEDITOR.dialog._.currentTop=this,this._.parentDialog=null,N(this._.editor)):(this._.parentDialog=CKEDITOR.dialog._.currentTop,this._.parentDialog.getElement().getFirst().$.style.zIndex-=Math.floor(this._.editor.config.baseFloatZIndex/ -2),CKEDITOR.dialog._.currentTop=this);a.on("keydown",Q);a.on("keyup",R);this._.hasFocus=!1;for(var c in b.contents)if(b.contents[c]){var a=b.contents[c],e=this._.tabs[a.id],d=a.requiredContent,f=0;if(e){for(var g in this._.contents[a.id]){var h=this._.contents[a.id][g];"hbox"!=h.type&&"vbox"!=h.type&&h.getInputElement()&&(h.requiredContent&&!this._.editor.activeFilter.check(h.requiredContent)?h.disable():(h.enable(),f++))}!f||d&&!this._.editor.activeFilter.check(d)?e[0].addClass("cke_dialog_tab_disabled"): -e[0].removeClass("cke_dialog_tab_disabled")}}CKEDITOR.tools.setTimeout(function(){this.layout();X(this);this.parts.dialog.setStyle("visibility","");this.fireOnce("load",{});CKEDITOR.ui.fire("ready",this);this.fire("show",{});this._.editor.fire("dialogShow",this);this._.parentDialog||this._.editor.focusManager.lock();this.foreach(function(a){a.setInitValue&&a.setInitValue()})},100,this)},layout:function(){var a=this.parts.dialog,b=this.getSize(),c=CKEDITOR.document.getWindow().getViewPaneSize(),e= -(c.width-b.width)/2,d=(c.height-b.height)/2;CKEDITOR.env.ie6Compat||(b.height+(0<d?d:0)>c.height||b.width+(0<e?e:0)>c.width?a.setStyle("position","absolute"):a.setStyle("position","fixed"));this.move(this._.moved?this._.position.x:e,this._.moved?this._.position.y:d)},foreach:function(a){for(var b in this._.contents)for(var c in this._.contents[b])a.call(this,this._.contents[b][c]);return this},reset:function(){var a=function(a){a.reset&&a.reset(1)};return function(){this.foreach(a);return this}}(), -setupContent:function(){var a=arguments;this.foreach(function(b){b.setup&&b.setup.apply(b,a)})},commitContent:function(){var a=arguments;this.foreach(function(b){CKEDITOR.env.ie&&this._.currentFocusIndex==b.focusIndex&&b.getInputElement().$.blur();b.commit&&b.commit.apply(b,a)})},hide:function(){if(this.parts.dialog.isVisible()){this.fire("hide",{});this._.editor.fire("dialogHide",this);this.selectPage(this._.tabIdList[0]);var a=this._.element;a.setStyle("display","none");this.parts.dialog.setStyle("visibility", -"hidden");for(ba(this);CKEDITOR.dialog._.currentTop!=this;)CKEDITOR.dialog._.currentTop.hide();if(this._.parentDialog){var b=this._.parentDialog.getElement().getFirst();b.setStyle("z-index",parseInt(b.$.style.zIndex,10)+Math.floor(this._.editor.config.baseFloatZIndex/2))}else O(this._.editor);if(CKEDITOR.dialog._.currentTop=this._.parentDialog)CKEDITOR.dialog._.currentZIndex-=10;else{CKEDITOR.dialog._.currentZIndex=null;a.removeListener("keydown",Q);a.removeListener("keyup",R);var c=this._.editor; -c.focus();setTimeout(function(){c.focusManager.unlock();CKEDITOR.env.iOS&&c.window.focus()},0)}delete this._.parentDialog;this.foreach(function(a){a.resetInitValue&&a.resetInitValue()});this.setState(CKEDITOR.DIALOG_STATE_IDLE)}},addPage:function(a){if(!a.requiredContent||this._.editor.filter.check(a.requiredContent)){for(var b=[],c=a.label?' title\x3d"'+CKEDITOR.tools.htmlEncode(a.label)+'"':"",e=CKEDITOR.dialog._.uiElementBuilders.vbox.build(this,{type:"vbox",className:"cke_dialog_page_contents", -children:a.elements,expand:!!a.expand,padding:a.padding,style:a.style||"width: 100%;"},b),d=this._.contents[a.id]={},f=e.getChild(),g=0;e=f.shift();)e.notAllowed||"hbox"==e.type||"vbox"==e.type||g++,d[e.id]=e,"function"==typeof e.getChild&&f.push.apply(f,e.getChild());g||(a.hidden=!0);b=CKEDITOR.dom.element.createFromHtml(b.join(""));b.setAttribute("role","tabpanel");e=CKEDITOR.env;d="cke_"+a.id+"_"+CKEDITOR.tools.getNextNumber();c=CKEDITOR.dom.element.createFromHtml(['\x3ca class\x3d"cke_dialog_tab"', -0<this._.pageCount?" cke_last":"cke_first",c,a.hidden?' style\x3d"display:none"':"",' id\x3d"',d,'"',e.gecko&&!e.hc?"":' href\x3d"javascript:void(0)"',' tabIndex\x3d"-1" hidefocus\x3d"true" role\x3d"tab"\x3e',a.label,"\x3c/a\x3e"].join(""));b.setAttribute("aria-labelledby",d);this._.tabs[a.id]=[c,b];this._.tabIdList.push(a.id);!a.hidden&&this._.pageCount++;this._.lastTab=c;this.updateStyle();b.setAttribute("name",a.id);b.appendTo(this.parts.contents);c.unselectable();this.parts.tabs.append(c);a.accessKey&& -(S(this,this,"CTRL+"+a.accessKey,ca,da),this._.accessKeyMap["CTRL+"+a.accessKey]=a.id)}},selectPage:function(a){if(this._.currentTabId!=a&&!this._.tabs[a][0].hasClass("cke_dialog_tab_disabled")&&!1!==this.fire("selectPage",{page:a,currentPage:this._.currentTabId})){for(var b in this._.tabs){var c=this._.tabs[b][0],e=this._.tabs[b][1];b!=a&&(c.removeClass("cke_dialog_tab_selected"),e.hide());e.setAttribute("aria-hidden",b!=a)}var d=this._.tabs[a];d[0].addClass("cke_dialog_tab_selected");CKEDITOR.env.ie6Compat|| -CKEDITOR.env.ie7Compat?(K(d[1]),d[1].show(),setTimeout(function(){K(d[1],1)},0)):d[1].show();this._.currentTabId=a;this._.currentTabIndex=CKEDITOR.tools.indexOf(this._.tabIdList,a)}},updateStyle:function(){this.parts.dialog[(1===this._.pageCount?"add":"remove")+"Class"]("cke_single_page")},hidePage:function(a){var b=this._.tabs[a]&&this._.tabs[a][0];b&&1!=this._.pageCount&&b.isVisible()&&(a==this._.currentTabId&&this.selectPage(x.call(this)),b.hide(),this._.pageCount--,this.updateStyle())},showPage:function(a){if(a= -this._.tabs[a]&&this._.tabs[a][0])a.show(),this._.pageCount++,this.updateStyle()},getElement:function(){return this._.element},getName:function(){return this._.name},getContentElement:function(a,b){var c=this._.contents[a];return c&&c[b]},getValueOf:function(a,b){return this.getContentElement(a,b).getValue()},setValueOf:function(a,b,c){return this.getContentElement(a,b).setValue(c)},getButton:function(a){return this._.buttons[a]},click:function(a){return this._.buttons[a].click()},disableButton:function(a){return this._.buttons[a].disable()}, -enableButton:function(a){return this._.buttons[a].enable()},getPageCount:function(){return this._.pageCount},getParentEditor:function(){return this._.editor},getSelectedElement:function(){return this.getParentEditor().getSelection().getSelectedElement()},addFocusable:function(a,b){if("undefined"==typeof b)b=this._.focusList.length,this._.focusList.push(new L(this,a,b));else{this._.focusList.splice(b,0,new L(this,a,b));for(var c=b+1;c<this._.focusList.length;c++)this._.focusList[c].focusIndex++}}, -setState:function(a){if(this.state!=a){this.state=a;if(a==CKEDITOR.DIALOG_STATE_BUSY){if(!this.parts.spinner){var b=this.getParentEditor().lang.dir,c={attributes:{"class":"cke_dialog_spinner"},styles:{"float":"rtl"==b?"right":"left"}};c.styles["margin-"+("rtl"==b?"left":"right")]="8px";this.parts.spinner=CKEDITOR.document.createElement("div",c);this.parts.spinner.setHtml("\x26#8987;");this.parts.spinner.appendTo(this.parts.title,1)}this.parts.spinner.show();this.getButton("ok").disable()}else a== -CKEDITOR.DIALOG_STATE_IDLE&&(this.parts.spinner&&this.parts.spinner.hide(),this.getButton("ok").enable());this.fire("state",a)}}};CKEDITOR.tools.extend(CKEDITOR.dialog,{add:function(a,b){this._.dialogDefinitions[a]&&"function"!=typeof b||(this._.dialogDefinitions[a]=b)},exists:function(a){return!!this._.dialogDefinitions[a]},getCurrent:function(){return CKEDITOR.dialog._.currentTop},isTabEnabled:function(a,b,c){a=a.config.removeDialogTabs;return!(a&&a.match(new RegExp("(?:^|;)"+b+":"+c+"(?:$|;)", -"i")))},okButton:function(){var a=function(a,c){c=c||{};return CKEDITOR.tools.extend({id:"ok",type:"button",label:a.lang.common.ok,"class":"cke_dialog_ui_button_ok",onClick:function(a){a=a.data.dialog;!1!==a.fire("ok",{hide:!0}).hide&&a.hide()}},c,!0)};a.type="button";a.override=function(b){return CKEDITOR.tools.extend(function(c){return a(c,b)},{type:"button"},!0)};return a}(),cancelButton:function(){var a=function(a,c){c=c||{};return CKEDITOR.tools.extend({id:"cancel",type:"button",label:a.lang.common.cancel, -"class":"cke_dialog_ui_button_cancel",onClick:function(a){a=a.data.dialog;!1!==a.fire("cancel",{hide:!0}).hide&&a.hide()}},c,!0)};a.type="button";a.override=function(b){return CKEDITOR.tools.extend(function(c){return a(c,b)},{type:"button"},!0)};return a}(),addUIElement:function(a,b){this._.uiElementBuilders[a]=b}});CKEDITOR.dialog._={uiElementBuilders:{},dialogDefinitions:{},currentTop:null,currentZIndex:null};CKEDITOR.event.implementOn(CKEDITOR.dialog);CKEDITOR.event.implementOn(CKEDITOR.dialog.prototype); -var aa={resizable:CKEDITOR.DIALOG_RESIZE_BOTH,minWidth:600,minHeight:400,buttons:[CKEDITOR.dialog.okButton,CKEDITOR.dialog.cancelButton]},D=function(a,b,c){for(var e=0,d;d=a[e];e++)if(d.id==b||c&&d[c]&&(d=D(d[c],b,c)))return d;return null},E=function(a,b,c,e,d){if(c){for(var f=0,g;g=a[f];f++){if(g.id==c)return a.splice(f,0,b),b;if(e&&g[e]&&(g=E(g[e],b,c,e,!0)))return g}if(d)return null}a.push(b);return b},F=function(a,b,c){for(var e=0,d;d=a[e];e++){if(d.id==b)return a.splice(e,1);if(c&&d[c]&&(d=F(d[c], -b,c)))return d}return null},P=function(a,b){this.dialog=a;for(var c=b.contents,e=0,d;d=c[e];e++)c[e]=d&&new M(a,d);CKEDITOR.tools.extend(this,b)};P.prototype={getContents:function(a){return D(this.contents,a)},getButton:function(a){return D(this.buttons,a)},addContents:function(a,b){return E(this.contents,a,b)},addButton:function(a,b){return E(this.buttons,a,b)},removeContents:function(a){F(this.contents,a)},removeButton:function(a){F(this.buttons,a)}};M.prototype={get:function(a){return D(this.elements, -a,"children")},add:function(a,b){return E(this.elements,a,b,"children")},remove:function(a){F(this.elements,a,"children")}};var J,z={},u,w={},Q=function(a){var b=a.data.$.ctrlKey||a.data.$.metaKey,c=a.data.$.altKey,e=a.data.$.shiftKey,d=String.fromCharCode(a.data.$.keyCode);(b=w[(b?"CTRL+":"")+(c?"ALT+":"")+(e?"SHIFT+":"")+d])&&b.length&&(b=b[b.length-1],b.keydown&&b.keydown.call(b.uiElement,b.dialog,b.key),a.data.preventDefault())},R=function(a){var b=a.data.$.ctrlKey||a.data.$.metaKey,c=a.data.$.altKey, -e=a.data.$.shiftKey,d=String.fromCharCode(a.data.$.keyCode);(b=w[(b?"CTRL+":"")+(c?"ALT+":"")+(e?"SHIFT+":"")+d])&&b.length&&(b=b[b.length-1],b.keyup&&(b.keyup.call(b.uiElement,b.dialog,b.key),a.data.preventDefault()))},S=function(a,b,c,e,d){(w[c]||(w[c]=[])).push({uiElement:a,dialog:b,key:c,keyup:d||a.accessKeyUp,keydown:e||a.accessKeyDown})},ba=function(a){for(var b in w){for(var c=w[b],e=c.length-1;0<=e;e--)c[e].dialog!=a&&c[e].uiElement!=a||c.splice(e,1);0===c.length&&delete w[b]}},da=function(a, -b){a._.accessKeyMap[b]&&a.selectPage(a._.accessKeyMap[b])},ca=function(){};(function(){CKEDITOR.ui.dialog={uiElement:function(a,b,c,e,d,f,g){if(!(4>arguments.length)){var h=(e.call?e(b):e)||"div",p=["\x3c",h," "],m=(d&&d.call?d(b):d)||{},k=(f&&f.call?f(b):f)||{},q=(g&&g.call?g.call(this,a,b):g)||"",n=this.domId=k.id||CKEDITOR.tools.getNextId()+"_uiElement";b.requiredContent&&!a.getParentEditor().filter.check(b.requiredContent)&&(m.display="none",this.notAllowed=!0);k.id=n;var r={};b.type&&(r["cke_dialog_ui_"+ -b.type]=1);b.className&&(r[b.className]=1);b.disabled&&(r.cke_disabled=1);for(var l=k["class"]&&k["class"].split?k["class"].split(" "):[],n=0;n<l.length;n++)l[n]&&(r[l[n]]=1);l=[];for(n in r)l.push(n);k["class"]=l.join(" ");b.title&&(k.title=b.title);r=(b.style||"").split(";");b.align&&(l=b.align,m["margin-left"]="left"==l?0:"auto",m["margin-right"]="right"==l?0:"auto");for(n in m)r.push(n+":"+m[n]);b.hidden&&r.push("display:none");for(n=r.length-1;0<=n;n--)""===r[n]&&r.splice(n,1);0<r.length&&(k.style= -(k.style?k.style+"; ":"")+r.join("; "));for(n in k)p.push(n+'\x3d"'+CKEDITOR.tools.htmlEncode(k[n])+'" ');p.push("\x3e",q,"\x3c/",h,"\x3e");c.push(p.join(""));(this._||(this._={})).dialog=a;"boolean"==typeof b.isChanged&&(this.isChanged=function(){return b.isChanged});"function"==typeof b.isChanged&&(this.isChanged=b.isChanged);"function"==typeof b.setValue&&(this.setValue=CKEDITOR.tools.override(this.setValue,function(a){return function(c){a.call(this,b.setValue.call(this,c))}}));"function"==typeof b.getValue&& -(this.getValue=CKEDITOR.tools.override(this.getValue,function(a){return function(){return b.getValue.call(this,a.call(this))}}));CKEDITOR.event.implementOn(this);this.registerEvents(b);this.accessKeyUp&&this.accessKeyDown&&b.accessKey&&S(this,a,"CTRL+"+b.accessKey);var t=this;a.on("load",function(){var b=t.getInputElement();if(b){var c=t.type in{checkbox:1,ratio:1}&&CKEDITOR.env.ie&&8>CKEDITOR.env.version?"cke_dialog_ui_focused":"";b.on("focus",function(){a._.tabBarMode=!1;a._.hasFocus=!0;t.fire("focus"); -c&&this.addClass(c)});b.on("blur",function(){t.fire("blur");c&&this.removeClass(c)})}});CKEDITOR.tools.extend(this,b);this.keyboardFocusable&&(this.tabIndex=b.tabIndex||0,this.focusIndex=a._.focusList.push(this)-1,this.on("focus",function(){a._.currentFocusIndex=t.focusIndex}))}},hbox:function(a,b,c,e,d){if(!(4>arguments.length)){this._||(this._={});var f=this._.children=b,g=d&&d.widths||null,h=d&&d.height||null,p,m={role:"presentation"};d&&d.align&&(m.align=d.align);CKEDITOR.ui.dialog.uiElement.call(this, -a,d||{type:"hbox"},e,"table",{},m,function(){var a=['\x3ctbody\x3e\x3ctr class\x3d"cke_dialog_ui_hbox"\x3e'];for(p=0;p<c.length;p++){var b="cke_dialog_ui_hbox_child",e=[];0===p&&(b="cke_dialog_ui_hbox_first");p==c.length-1&&(b="cke_dialog_ui_hbox_last");a.push('\x3ctd class\x3d"',b,'" role\x3d"presentation" ');g?g[p]&&e.push("width:"+v(g[p])):e.push("width:"+Math.floor(100/c.length)+"%");h&&e.push("height:"+v(h));d&&void 0!==d.padding&&e.push("padding:"+v(d.padding));CKEDITOR.env.ie&&CKEDITOR.env.quirks&& -f[p].align&&e.push("text-align:"+f[p].align);0<e.length&&a.push('style\x3d"'+e.join("; ")+'" ');a.push("\x3e",c[p],"\x3c/td\x3e")}a.push("\x3c/tr\x3e\x3c/tbody\x3e");return a.join("")})}},vbox:function(a,b,c,e,d){if(!(3>arguments.length)){this._||(this._={});var f=this._.children=b,g=d&&d.width||null,h=d&&d.heights||null;CKEDITOR.ui.dialog.uiElement.call(this,a,d||{type:"vbox"},e,"div",null,{role:"presentation"},function(){var b=['\x3ctable role\x3d"presentation" cellspacing\x3d"0" border\x3d"0" ']; -b.push('style\x3d"');d&&d.expand&&b.push("height:100%;");b.push("width:"+v(g||"100%"),";");CKEDITOR.env.webkit&&b.push("float:none;");b.push('"');b.push('align\x3d"',CKEDITOR.tools.htmlEncode(d&&d.align||("ltr"==a.getParentEditor().lang.dir?"left":"right")),'" ');b.push("\x3e\x3ctbody\x3e");for(var e=0;e<c.length;e++){var k=[];b.push('\x3ctr\x3e\x3ctd role\x3d"presentation" ');g&&k.push("width:"+v(g||"100%"));h?k.push("height:"+v(h[e])):d&&d.expand&&k.push("height:"+Math.floor(100/c.length)+"%"); -d&&void 0!==d.padding&&k.push("padding:"+v(d.padding));CKEDITOR.env.ie&&CKEDITOR.env.quirks&&f[e].align&&k.push("text-align:"+f[e].align);0<k.length&&b.push('style\x3d"',k.join("; "),'" ');b.push(' class\x3d"cke_dialog_ui_vbox_child"\x3e',c[e],"\x3c/td\x3e\x3c/tr\x3e")}b.push("\x3c/tbody\x3e\x3c/table\x3e");return b.join("")})}}}})();CKEDITOR.ui.dialog.uiElement.prototype={getElement:function(){return CKEDITOR.document.getById(this.domId)},getInputElement:function(){return this.getElement()},getDialog:function(){return this._.dialog}, -setValue:function(a,b){this.getInputElement().setValue(a);!b&&this.fire("change",{value:a});return this},getValue:function(){return this.getInputElement().getValue()},isChanged:function(){return!1},selectParentTab:function(){for(var a=this.getInputElement();(a=a.getParent())&&-1==a.$.className.search("cke_dialog_page_contents"););if(!a)return this;a=a.getAttribute("name");this._.dialog._.currentTabId!=a&&this._.dialog.selectPage(a);return this},focus:function(){this.selectParentTab().getInputElement().focus(); -return this},registerEvents:function(a){var b=/^on([A-Z]\w+)/,c,e=function(a,b,c,d){b.on("load",function(){a.getInputElement().on(c,d,a)})},d;for(d in a)if(c=d.match(b))this.eventProcessors[d]?this.eventProcessors[d].call(this,this._.dialog,a[d]):e(this,this._.dialog,c[1].toLowerCase(),a[d]);return this},eventProcessors:{onLoad:function(a,b){a.on("load",b,this)},onShow:function(a,b){a.on("show",b,this)},onHide:function(a,b){a.on("hide",b,this)}},accessKeyDown:function(){this.focus()},accessKeyUp:function(){}, -disable:function(){var a=this.getElement();this.getInputElement().setAttribute("disabled","true");a.addClass("cke_disabled")},enable:function(){var a=this.getElement();this.getInputElement().removeAttribute("disabled");a.removeClass("cke_disabled")},isEnabled:function(){return!this.getElement().hasClass("cke_disabled")},isVisible:function(){return this.getInputElement().isVisible()},isFocusable:function(){return this.isEnabled()&&this.isVisible()?!0:!1}};CKEDITOR.ui.dialog.hbox.prototype=CKEDITOR.tools.extend(new CKEDITOR.ui.dialog.uiElement, -{getChild:function(a){if(1>arguments.length)return this._.children.concat();a.splice||(a=[a]);return 2>a.length?this._.children[a[0]]:this._.children[a[0]]&&this._.children[a[0]].getChild?this._.children[a[0]].getChild(a.slice(1,a.length)):null}},!0);CKEDITOR.ui.dialog.vbox.prototype=new CKEDITOR.ui.dialog.hbox;(function(){var a={build:function(a,c,e){for(var d=c.children,f,g=[],h=[],p=0;p<d.length&&(f=d[p]);p++){var m=[];g.push(m);h.push(CKEDITOR.dialog._.uiElementBuilders[f.type].build(a,f,m))}return new CKEDITOR.ui.dialog[c.type](a, -h,g,e,c)}};CKEDITOR.dialog.addUIElement("hbox",a);CKEDITOR.dialog.addUIElement("vbox",a)})();CKEDITOR.dialogCommand=function(a,b){this.dialogName=a;CKEDITOR.tools.extend(this,b,!0)};CKEDITOR.dialogCommand.prototype={exec:function(a){var b=this.tabId;a.openDialog(this.dialogName,function(a){b&&a.selectPage(b)})},canUndo:!1,editorFocus:1};(function(){var a=/^([a]|[^a])+$/,b=/^\d*$/,c=/^\d*(?:\.\d+)?$/,e=/^(((\d*(\.\d+))|(\d*))(px|\%)?)?$/,d=/^(((\d*(\.\d+))|(\d*))(px|em|ex|in|cm|mm|pt|pc|\%)?)?$/i, -f=/^(\s*[\w-]+\s*:\s*[^:;]+(?:;|$))*$/;CKEDITOR.VALIDATE_OR=1;CKEDITOR.VALIDATE_AND=2;CKEDITOR.dialog.validate={functions:function(){var a=arguments;return function(){var b=this&&this.getValue?this.getValue():a[0],c,d=CKEDITOR.VALIDATE_AND,e=[],f;for(f=0;f<a.length;f++)if("function"==typeof a[f])e.push(a[f]);else break;f<a.length&&"string"==typeof a[f]&&(c=a[f],f++);f<a.length&&"number"==typeof a[f]&&(d=a[f]);var n=d==CKEDITOR.VALIDATE_AND?!0:!1;for(f=0;f<e.length;f++)n=d==CKEDITOR.VALIDATE_AND?n&& -e[f](b):n||e[f](b);return n?!0:c}},regex:function(a,b){return function(c){c=this&&this.getValue?this.getValue():c;return a.test(c)?!0:b}},notEmpty:function(b){return this.regex(a,b)},integer:function(a){return this.regex(b,a)},number:function(a){return this.regex(c,a)},cssLength:function(a){return this.functions(function(a){return d.test(CKEDITOR.tools.trim(a))},a)},htmlLength:function(a){return this.functions(function(a){return e.test(CKEDITOR.tools.trim(a))},a)},inlineStyle:function(a){return this.functions(function(a){return f.test(CKEDITOR.tools.trim(a))}, -a)},equals:function(a,b){return this.functions(function(b){return b==a},b)},notEqual:function(a,b){return this.functions(function(b){return b!=a},b)}};CKEDITOR.on("instanceDestroyed",function(a){if(CKEDITOR.tools.isEmpty(CKEDITOR.instances)){for(var b;b=CKEDITOR.dialog._.currentTop;)b.hide();for(var c in z)z[c].remove();z={}}a=a.editor._.storedDialogs;for(var d in a)a[d].destroy()})})();CKEDITOR.tools.extend(CKEDITOR.editor.prototype,{openDialog:function(a,b){var c=null,e=CKEDITOR.dialog._.dialogDefinitions[a]; -null===CKEDITOR.dialog._.currentTop&&N(this);if("function"==typeof e)c=this._.storedDialogs||(this._.storedDialogs={}),c=c[a]||(c[a]=new CKEDITOR.dialog(this,a)),b&&b.call(c,c),c.show();else{if("failed"==e)throw O(this),Error('[CKEDITOR.dialog.openDialog] Dialog "'+a+'" failed when loading definition.');"string"==typeof e&&CKEDITOR.scriptLoader.load(CKEDITOR.getUrl(e),function(){"function"!=typeof CKEDITOR.dialog._.dialogDefinitions[a]&&(CKEDITOR.dialog._.dialogDefinitions[a]="failed");this.openDialog(a, -b)},this,0,1)}CKEDITOR.skin.loadPart("dialog");return c}})})();CKEDITOR.plugins.add("dialog",{requires:"dialogui",init:function(x){x.on("doubleclick",function(A){A.data.dialog&&x.openDialog(A.data.dialog)},null,null,999)}});CKEDITOR.plugins.add("about",{requires:"dialog",init:function(a){var b=a.addCommand("about",new CKEDITOR.dialogCommand("about"));b.modes={wysiwyg:1,source:1};b.canUndo=!1;b.readOnly=1;a.ui.addButton&&a.ui.addButton("About",{label:a.lang.about.title,command:"about",toolbar:"about"});CKEDITOR.dialog.add("about",this.path+"dialogs/about.js")}});(function(){CKEDITOR.plugins.add("a11yhelp",{requires:"dialog",availableLangs:{af:1,ar:1,az:1,bg:1,ca:1,cs:1,cy:1,da:1,de:1,"de-ch":1,el:1,en:1,"en-gb":1,eo:1,es:1,"es-mx":1,et:1,eu:1,fa:1,fi:1,fo:1,fr:1,"fr-ca":1,gl:1,gu:1,he:1,hi:1,hr:1,hu:1,id:1,it:1,ja:1,km:1,ko:1,ku:1,lt:1,lv:1,mk:1,mn:1,nb:1,nl:1,no:1,oc:1,pl:1,pt:1,"pt-br":1,ro:1,ru:1,si:1,sk:1,sl:1,sq:1,sr:1,"sr-latn":1,sv:1,th:1,tr:1,tt:1,ug:1,uk:1,vi:1,zh:1,"zh-cn":1},init:function(b){var c=this;b.addCommand("a11yHelp",{exec:function(){var a= -b.langCode,a=c.availableLangs[a]?a:c.availableLangs[a.replace(/-.*/,"")]?a.replace(/-.*/,""):"en";CKEDITOR.scriptLoader.load(CKEDITOR.getUrl(c.path+"dialogs/lang/"+a+".js"),function(){b.lang.a11yhelp=c.langEntries[a];b.openDialog("a11yHelp")})},modes:{wysiwyg:1,source:1},readOnly:1,canUndo:!1});b.setKeystroke(CKEDITOR.ALT+48,"a11yHelp");CKEDITOR.dialog.add("a11yHelp",this.path+"dialogs/a11yhelp.js");b.on("ariaEditorHelpLabel",function(a){a.data.label=b.lang.common.editorHelp})}})})();CKEDITOR.plugins.add("basicstyles",{init:function(c){var e=0,d=function(g,d,b,a){if(a){a=new CKEDITOR.style(a);var f=h[b];f.unshift(a);c.attachStyleStateChange(a,function(a){!c.readOnly&&c.getCommand(b).setState(a)});c.addCommand(b,new CKEDITOR.styleCommand(a,{contentForms:f}));c.ui.addButton&&c.ui.addButton(g,{label:d,command:b,toolbar:"basicstyles,"+(e+=10)})}},h={bold:["strong","b",["span",function(a){a=a.styles["font-weight"];return"bold"==a||700<=+a}]],italic:["em","i",["span",function(a){return"italic"== -a.styles["font-style"]}]],underline:["u",["span",function(a){return"underline"==a.styles["text-decoration"]}]],strike:["s","strike",["span",function(a){return"line-through"==a.styles["text-decoration"]}]],subscript:["sub"],superscript:["sup"]},b=c.config,a=c.lang.basicstyles;d("Bold",a.bold,"bold",b.coreStyles_bold);d("Italic",a.italic,"italic",b.coreStyles_italic);d("Underline",a.underline,"underline",b.coreStyles_underline);d("Strike",a.strike,"strike",b.coreStyles_strike);d("Subscript",a.subscript, -"subscript",b.coreStyles_subscript);d("Superscript",a.superscript,"superscript",b.coreStyles_superscript);c.setKeystroke([[CKEDITOR.CTRL+66,"bold"],[CKEDITOR.CTRL+73,"italic"],[CKEDITOR.CTRL+85,"underline"]])}});CKEDITOR.config.coreStyles_bold={element:"strong",overrides:"b"};CKEDITOR.config.coreStyles_italic={element:"em",overrides:"i"};CKEDITOR.config.coreStyles_underline={element:"u"};CKEDITOR.config.coreStyles_strike={element:"s",overrides:"strike"};CKEDITOR.config.coreStyles_subscript={element:"sub"}; -CKEDITOR.config.coreStyles_superscript={element:"sup"};(function(){var m={exec:function(g){var a=g.getCommand("blockquote").state,k=g.getSelection(),c=k&&k.getRanges()[0];if(c){var h=k.createBookmarks();if(CKEDITOR.env.ie){var e=h[0].startNode,b=h[0].endNode,d;if(e&&"blockquote"==e.getParent().getName())for(d=e;d=d.getNext();)if(d.type==CKEDITOR.NODE_ELEMENT&&d.isBlockBoundary()){e.move(d,!0);break}if(b&&"blockquote"==b.getParent().getName())for(d=b;d=d.getPrevious();)if(d.type==CKEDITOR.NODE_ELEMENT&&d.isBlockBoundary()){b.move(d);break}}var f=c.createIterator(); -f.enlargeBr=g.config.enterMode!=CKEDITOR.ENTER_BR;if(a==CKEDITOR.TRISTATE_OFF){for(e=[];a=f.getNextParagraph();)e.push(a);1>e.length&&(a=g.document.createElement(g.config.enterMode==CKEDITOR.ENTER_P?"p":"div"),b=h.shift(),c.insertNode(a),a.append(new CKEDITOR.dom.text("",g.document)),c.moveToBookmark(b),c.selectNodeContents(a),c.collapse(!0),b=c.createBookmark(),e.push(a),h.unshift(b));d=e[0].getParent();c=[];for(b=0;b<e.length;b++)a=e[b],d=d.getCommonAncestor(a.getParent());for(a={table:1,tbody:1, -tr:1,ol:1,ul:1};a[d.getName()];)d=d.getParent();for(b=null;0<e.length;){for(a=e.shift();!a.getParent().equals(d);)a=a.getParent();a.equals(b)||c.push(a);b=a}for(;0<c.length;)if(a=c.shift(),"blockquote"==a.getName()){for(b=new CKEDITOR.dom.documentFragment(g.document);a.getFirst();)b.append(a.getFirst().remove()),e.push(b.getLast());b.replace(a)}else e.push(a);c=g.document.createElement("blockquote");for(c.insertBefore(e[0]);0<e.length;)a=e.shift(),c.append(a)}else if(a==CKEDITOR.TRISTATE_ON){b=[]; -for(d={};a=f.getNextParagraph();){for(e=c=null;a.getParent();){if("blockquote"==a.getParent().getName()){c=a.getParent();e=a;break}a=a.getParent()}c&&e&&!e.getCustomData("blockquote_moveout")&&(b.push(e),CKEDITOR.dom.element.setMarker(d,e,"blockquote_moveout",!0))}CKEDITOR.dom.element.clearAllMarkers(d);a=[];e=[];for(d={};0<b.length;)f=b.shift(),c=f.getParent(),f.getPrevious()?f.getNext()?(f.breakParent(f.getParent()),e.push(f.getNext())):f.remove().insertAfter(c):f.remove().insertBefore(c),c.getCustomData("blockquote_processed")|| -(e.push(c),CKEDITOR.dom.element.setMarker(d,c,"blockquote_processed",!0)),a.push(f);CKEDITOR.dom.element.clearAllMarkers(d);for(b=e.length-1;0<=b;b--){c=e[b];a:{d=c;for(var f=0,m=d.getChildCount(),l=void 0;f<m&&(l=d.getChild(f));f++)if(l.type==CKEDITOR.NODE_ELEMENT&&l.isBlockBoundary()){d=!1;break a}d=!0}d&&c.remove()}if(g.config.enterMode==CKEDITOR.ENTER_BR)for(c=!0;a.length;)if(f=a.shift(),"div"==f.getName()){b=new CKEDITOR.dom.documentFragment(g.document);!c||!f.getPrevious()||f.getPrevious().type== -CKEDITOR.NODE_ELEMENT&&f.getPrevious().isBlockBoundary()||b.append(g.document.createElement("br"));for(c=f.getNext()&&!(f.getNext().type==CKEDITOR.NODE_ELEMENT&&f.getNext().isBlockBoundary());f.getFirst();)f.getFirst().remove().appendTo(b);c&&b.append(g.document.createElement("br"));b.replace(f);c=!1}}k.selectBookmarks(h);g.focus()}},refresh:function(g,a){this.setState(g.elementPath(a.block||a.blockLimit).contains("blockquote",1)?CKEDITOR.TRISTATE_ON:CKEDITOR.TRISTATE_OFF)},context:"blockquote",allowedContent:"blockquote", -requiredContent:"blockquote"};CKEDITOR.plugins.add("blockquote",{init:function(g){g.blockless||(g.addCommand("blockquote",m),g.ui.addButton&&g.ui.addButton("Blockquote",{label:g.lang.blockquote.toolbar,command:"blockquote",toolbar:"blocks,10"}))}})})();CKEDITOR.plugins.add("notification",{init:function(b){function a(b){var a=new CKEDITOR.dom.element("div");a.setStyles({position:"fixed","margin-left":"-9999px"});a.setAttributes({"aria-live":"assertive","aria-atomic":"true"});a.setText(b);CKEDITOR.document.getBody().append(a);setTimeout(function(){a.remove()},100)}b._.notificationArea=new Area(b);b.showNotification=function(a,d,e){var f,l;"progress"==d?f=e:l=e;a=new CKEDITOR.plugins.notification(b,{message:a,type:d,progress:f,duration:l});a.show(); -return a};b.on("key",function(c){if(27==c.data.keyCode){var d=b._.notificationArea.notifications;d.length&&(a(b.lang.notification.closed),d[d.length-1].hide(),c.cancel())}})}});function Notification(b,a){CKEDITOR.tools.extend(this,a,{editor:b,id:"cke-"+CKEDITOR.tools.getUniqueId(),area:b._.notificationArea});a.type||(this.type="info");this.element=this._createElement();b.plugins.clipboard&&CKEDITOR.plugins.clipboard.preventDefaultDropOnElement(this.element)} -Notification.prototype={show:function(){!1!==this.editor.fire("notificationShow",{notification:this})&&(this.area.add(this),this._hideAfterTimeout())},update:function(b){var a=!0;!1===this.editor.fire("notificationUpdate",{notification:this,options:b})&&(a=!1);var c=this.element,d=c.findOne(".cke_notification_message"),e=c.findOne(".cke_notification_progress"),f=b.type;c.removeAttribute("role");b.progress&&"progress"!=this.type&&(f="progress");f&&(c.removeClass(this._getClass()),c.removeAttribute("aria-label"), -this.type=f,c.addClass(this._getClass()),c.setAttribute("aria-label",this.type),"progress"!=this.type||e?"progress"!=this.type&&e&&e.remove():(e=this._createProgressElement(),e.insertBefore(d)));void 0!==b.message&&(this.message=b.message,d.setHtml(this.message));void 0!==b.progress&&(this.progress=b.progress,e&&e.setStyle("width",this._getPercentageProgress()));a&&b.important&&(c.setAttribute("role","alert"),this.isVisible()||this.area.add(this));this.duration=b.duration;this._hideAfterTimeout()}, -hide:function(){!1!==this.editor.fire("notificationHide",{notification:this})&&this.area.remove(this)},isVisible:function(){return 0<=CKEDITOR.tools.indexOf(this.area.notifications,this)},_createElement:function(){var b=this,a,c,d=this.editor.lang.common.close;a=new CKEDITOR.dom.element("div");a.addClass("cke_notification");a.addClass(this._getClass());a.setAttributes({id:this.id,role:"alert","aria-label":this.type});"progress"==this.type&&a.append(this._createProgressElement());c=new CKEDITOR.dom.element("p"); -c.addClass("cke_notification_message");c.setHtml(this.message);a.append(c);c=CKEDITOR.dom.element.createFromHtml('\x3ca class\x3d"cke_notification_close" href\x3d"javascript:void(0)" title\x3d"'+d+'" role\x3d"button" tabindex\x3d"-1"\x3e\x3cspan class\x3d"cke_label"\x3eX\x3c/span\x3e\x3c/a\x3e');a.append(c);c.on("click",function(){b.editor.focus();b.hide()});return a},_getClass:function(){return"progress"==this.type?"cke_notification_info":"cke_notification_"+this.type},_createProgressElement:function(){var b= -new CKEDITOR.dom.element("span");b.addClass("cke_notification_progress");b.setStyle("width",this._getPercentageProgress());return b},_getPercentageProgress:function(){return Math.round(100*(this.progress||0))+"%"},_hideAfterTimeout:function(){var b=this,a;this._hideTimeoutId&&clearTimeout(this._hideTimeoutId);if("number"==typeof this.duration)a=this.duration;else if("info"==this.type||"success"==this.type)a="number"==typeof this.editor.config.notification_duration?this.editor.config.notification_duration: -5E3;a&&(b._hideTimeoutId=setTimeout(function(){b.hide()},a))}};function Area(b){var a=this;this.editor=b;this.notifications=[];this.element=this._createElement();this._uiBuffer=CKEDITOR.tools.eventsBuffer(10,this._layout,this);this._changeBuffer=CKEDITOR.tools.eventsBuffer(500,this._layout,this);b.on("destroy",function(){a._removeListeners();a.element.remove()})} -Area.prototype={add:function(b){this.notifications.push(b);this.element.append(b.element);1==this.element.getChildCount()&&(CKEDITOR.document.getBody().append(this.element),this._attachListeners());this._layout()},remove:function(b){var a=CKEDITOR.tools.indexOf(this.notifications,b);0>a||(this.notifications.splice(a,1),b.element.remove(),this.element.getChildCount()||(this._removeListeners(),this.element.remove()))},_createElement:function(){var b=this.editor,a=b.config,c=new CKEDITOR.dom.element("div"); -c.addClass("cke_notifications_area");c.setAttribute("id","cke_notifications_area_"+b.name);c.setStyle("z-index",a.baseFloatZIndex-2);return c},_attachListeners:function(){var b=CKEDITOR.document.getWindow(),a=this.editor;b.on("scroll",this._uiBuffer.input);b.on("resize",this._uiBuffer.input);a.on("change",this._changeBuffer.input);a.on("floatingSpaceLayout",this._layout,this,null,20);a.on("blur",this._layout,this,null,20)},_removeListeners:function(){var b=CKEDITOR.document.getWindow(),a=this.editor; -b.removeListener("scroll",this._uiBuffer.input);b.removeListener("resize",this._uiBuffer.input);a.removeListener("change",this._changeBuffer.input);a.removeListener("floatingSpaceLayout",this._layout);a.removeListener("blur",this._layout)},_layout:function(){function b(){a.setStyle("left",k(n+d.width-g-h))}var a=this.element,c=this.editor,d=c.ui.contentsElement.getClientRect(),e=c.ui.contentsElement.getDocumentPosition(),f,l,r=a.getClientRect(),m,g=this._notificationWidth,h=this._notificationMargin; -m=CKEDITOR.document.getWindow();var p=m.getScrollPosition(),q=m.getViewPaneSize(),t=CKEDITOR.document.getBody(),u=t.getDocumentPosition(),k=CKEDITOR.tools.cssLength;g&&h||(m=this.element.getChild(0),g=this._notificationWidth=m.getClientRect().width,h=this._notificationMargin=parseInt(m.getComputedStyle("margin-left"),10)+parseInt(m.getComputedStyle("margin-right"),10));c.toolbar&&(f=c.ui.space("top"),l=f.getClientRect());f&&f.isVisible()&&l.bottom>d.top&&l.bottom<d.bottom-r.height?a.setStyles({position:"fixed", -top:k(l.bottom)}):0<d.top?a.setStyles({position:"absolute",top:k(e.y)}):e.y+d.height-r.height>p.y?a.setStyles({position:"fixed",top:0}):a.setStyles({position:"absolute",top:k(e.y+d.height-r.height)});var n="fixed"==a.getStyle("position")?d.left:"static"!=t.getComputedStyle("position")?e.x-u.x:e.x;d.width<g+h?e.x+g+h>p.x+q.width?b():a.setStyle("left",k(n)):e.x+g+h>p.x+q.width?a.setStyle("left",k(n)):e.x+d.width/2+g/2+h>p.x+q.width?a.setStyle("left",k(n-e.x+p.x+q.width-g-h)):0>d.left+d.width-g-h?b(): -0>d.left+d.width/2-g/2?a.setStyle("left",k(n-e.x+p.x)):a.setStyle("left",k(n+d.width/2-g/2-h/2))}};CKEDITOR.plugins.notification=Notification;(function(){var c='\x3ca id\x3d"{id}" class\x3d"cke_button cke_button__{name} cke_button_{state} {cls}"'+(CKEDITOR.env.gecko&&!CKEDITOR.env.hc?"":" href\x3d\"javascript:void('{titleJs}')\"")+' title\x3d"{title}" tabindex\x3d"-1" hidefocus\x3d"true" role\x3d"button" aria-labelledby\x3d"{id}_label" aria-describedby\x3d"{id}_description" aria-haspopup\x3d"{hasArrow}" aria-disabled\x3d"{ariaDisabled}"';CKEDITOR.env.gecko&&CKEDITOR.env.mac&&(c+=' onkeypress\x3d"return false;"');CKEDITOR.env.gecko&&(c+= -' onblur\x3d"this.style.cssText \x3d this.style.cssText;"');var c=c+(' onkeydown\x3d"return CKEDITOR.tools.callFunction({keydownFn},event);" onfocus\x3d"return CKEDITOR.tools.callFunction({focusFn},event);" '+(CKEDITOR.env.ie?'onclick\x3d"return false;" onmouseup':"onclick")+'\x3d"CKEDITOR.tools.callFunction({clickFn},this);return false;"\x3e\x3cspan class\x3d"cke_button_icon cke_button__{iconName}_icon" style\x3d"{style}"'),c=c+'\x3e\x26nbsp;\x3c/span\x3e\x3cspan id\x3d"{id}_label" class\x3d"cke_button_label cke_button__{name}_label" aria-hidden\x3d"false"\x3e{label}\x3c/span\x3e\x3cspan id\x3d"{id}_description" class\x3d"cke_button_label" aria-hidden\x3d"false"\x3e{ariaShortcut}\x3c/span\x3e{arrowHtml}\x3c/a\x3e', -t=CKEDITOR.addTemplate("buttonArrow",'\x3cspan class\x3d"cke_button_arrow"\x3e'+(CKEDITOR.env.hc?"\x26#9660;":"")+"\x3c/span\x3e"),u=CKEDITOR.addTemplate("button",c);CKEDITOR.plugins.add("button",{beforeInit:function(a){a.ui.addHandler(CKEDITOR.UI_BUTTON,CKEDITOR.ui.button.handler)}});CKEDITOR.UI_BUTTON="button";CKEDITOR.ui.button=function(a){CKEDITOR.tools.extend(this,a,{title:a.label,click:a.click||function(b){b.execCommand(a.command)}});this._={}};CKEDITOR.ui.button.handler={create:function(a){return new CKEDITOR.ui.button(a)}}; -CKEDITOR.ui.button.prototype={render:function(a,b){function c(){var f=a.mode;f&&(f=this.modes[f]?void 0!==m[f]?m[f]:CKEDITOR.TRISTATE_OFF:CKEDITOR.TRISTATE_DISABLED,f=a.readOnly&&!this.readOnly?CKEDITOR.TRISTATE_DISABLED:f,this.setState(f),this.refresh&&this.refresh())}var n=CKEDITOR.env,p=this._.id=CKEDITOR.tools.getNextId(),g="",d=this.command,q,k,h;this._.editor=a;var e={id:p,button:this,editor:a,focus:function(){CKEDITOR.document.getById(p).focus()},execute:function(){this.button.click(a)},attach:function(a){this.button.attach(a)}}, -v=CKEDITOR.tools.addFunction(function(a){if(e.onkey)return a=new CKEDITOR.dom.event(a),!1!==e.onkey(e,a.getKeystroke())}),w=CKEDITOR.tools.addFunction(function(a){var b;e.onfocus&&(b=!1!==e.onfocus(e,new CKEDITOR.dom.event(a)));return b}),r=0;e.clickFn=q=CKEDITOR.tools.addFunction(function(){r&&(a.unlockSelection(1),r=0);e.execute();n.iOS&&a.focus()});if(this.modes){var m={};a.on("beforeModeUnload",function(){a.mode&&this._.state!=CKEDITOR.TRISTATE_DISABLED&&(m[a.mode]=this._.state)},this);a.on("activeFilterChange", -c,this);a.on("mode",c,this);!this.readOnly&&a.on("readOnly",c,this)}else d&&(d=a.getCommand(d))&&(d.on("state",function(){this.setState(d.state)},this),g+=d.state==CKEDITOR.TRISTATE_ON?"on":d.state==CKEDITOR.TRISTATE_DISABLED?"disabled":"off");if(this.directional)a.on("contentDirChanged",function(b){var c=CKEDITOR.document.getById(this._.id),d=c.getFirst();b=b.data;b!=a.lang.dir?c.addClass("cke_"+b):c.removeClass("cke_ltr").removeClass("cke_rtl");d.setAttribute("style",CKEDITOR.skin.getIconStyle(l, -"rtl"==b,this.icon,this.iconOffset))},this);d?(k=a.getCommandKeystroke(d))&&(h=CKEDITOR.tools.keystrokeToString(a.lang.common.keyboard,k)):g+="off";var l=k=this.name||this.command;this.icon&&!/\./.test(this.icon)&&(l=this.icon,this.icon=null);g={id:p,name:k,iconName:l,label:this.label,cls:this.className||"",state:g,ariaDisabled:"disabled"==g?"true":"false",title:this.title+(h?" ("+h.display+")":""),ariaShortcut:h?a.lang.common.keyboardShortcut+" "+h.aria:"",titleJs:n.gecko&&!n.hc?"":(this.title|| -"").replace("'",""),hasArrow:this.hasArrow?"true":"false",keydownFn:v,focusFn:w,clickFn:q,style:CKEDITOR.skin.getIconStyle(l,"rtl"==a.lang.dir,this.icon,this.iconOffset),arrowHtml:this.hasArrow?t.output():""};u.output(g,b);if(this.onRender)this.onRender();return e},setState:function(a){if(this._.state==a)return!1;this._.state=a;var b=CKEDITOR.document.getById(this._.id);return b?(b.setState(a,"cke_button"),a==CKEDITOR.TRISTATE_DISABLED?b.setAttribute("aria-disabled",!0):b.removeAttribute("aria-disabled"), -this.hasArrow?(a=a==CKEDITOR.TRISTATE_ON?this._.editor.lang.button.selectedLabel.replace(/%1/g,this.label):this.label,CKEDITOR.document.getById(this._.id+"_label").setText(a)):a==CKEDITOR.TRISTATE_ON?b.setAttribute("aria-pressed",!0):b.removeAttribute("aria-pressed"),!0):!1},getState:function(){return this._.state},toFeature:function(a){if(this._.feature)return this._.feature;var b=this;this.allowedContent||this.requiredContent||!this.command||(b=a.getCommand(this.command)||b);return this._.feature= -b}};CKEDITOR.ui.prototype.addButton=function(a,b){this.add(a,CKEDITOR.UI_BUTTON,b)}})();(function(){function D(a){function d(){for(var b=f(),e=CKEDITOR.tools.clone(a.config.toolbarGroups)||v(a),n=0;n<e.length;n++){var g=e[n];if("/"!=g){"string"==typeof g&&(g=e[n]={name:g});var l,d=g.groups;if(d)for(var h=0;h<d.length;h++)l=d[h],(l=b[l])&&c(g,l);(l=b[g.name])&&c(g,l)}}return e}function f(){var b={},c,e,g;for(c in a.ui.items)e=a.ui.items[c],g=e.toolbar||"others",g=g.split(","),e=g[0],g=parseInt(g[1]||-1,10),b[e]||(b[e]=[]),b[e].push({name:c,order:g});for(e in b)b[e]=b[e].sort(function(b, -a){return b.order==a.order?0:0>a.order?-1:0>b.order?1:b.order<a.order?-1:1});return b}function c(c,e){if(e.length){c.items?c.items.push(a.ui.create("-")):c.items=[];for(var d;d=e.shift();)d="string"==typeof d?d:d.name,b&&-1!=CKEDITOR.tools.indexOf(b,d)||(d=a.ui.create(d))&&a.addFeature(d)&&c.items.push(d)}}function h(b){var a=[],e,d,h;for(e=0;e<b.length;++e)d=b[e],h={},"/"==d?a.push(d):CKEDITOR.tools.isArray(d)?(c(h,CKEDITOR.tools.clone(d)),a.push(h)):d.items&&(c(h,CKEDITOR.tools.clone(d.items)), -h.name=d.name,a.push(h));return a}var b=a.config.removeButtons,b=b&&b.split(","),e=a.config.toolbar;"string"==typeof e&&(e=a.config["toolbar_"+e]);return a.toolbar=e?h(e):d()}function v(a){return a._.toolbarGroups||(a._.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"}])}var z=function(){this.toolbars=[];this.focusCommandExecuted=!1};z.prototype.focus=function(){for(var a=0,d;d=this.toolbars[a++];)for(var f=0,c;c=d.items[f++];)if(c.focus){c.focus();return}};var E={modes:{wysiwyg:1,source:1},readOnly:1,exec:function(a){a.toolbox&&(a.toolbox.focusCommandExecuted=!0,CKEDITOR.env.ie||CKEDITOR.env.air?setTimeout(function(){a.toolbox.focus()}, -100):a.toolbox.focus())}};CKEDITOR.plugins.add("toolbar",{requires:"button",init:function(a){var d,f=function(c,h){var b,e="rtl"==a.lang.dir,k=a.config.toolbarGroupCycling,q=e?37:39,e=e?39:37,k=void 0===k||k;switch(h){case 9:case CKEDITOR.SHIFT+9:for(;!b||!b.items.length;)if(b=9==h?(b?b.next:c.toolbar.next)||a.toolbox.toolbars[0]:(b?b.previous:c.toolbar.previous)||a.toolbox.toolbars[a.toolbox.toolbars.length-1],b.items.length)for(c=b.items[d?b.items.length-1:0];c&&!c.focus;)(c=d?c.previous:c.next)|| -(b=0);c&&c.focus();return!1;case q:b=c;do b=b.next,!b&&k&&(b=c.toolbar.items[0]);while(b&&!b.focus);b?b.focus():f(c,9);return!1;case 40:return c.button&&c.button.hasArrow?c.execute():f(c,40==h?q:e),!1;case e:case 38:b=c;do b=b.previous,!b&&k&&(b=c.toolbar.items[c.toolbar.items.length-1]);while(b&&!b.focus);b?b.focus():(d=1,f(c,CKEDITOR.SHIFT+9),d=0);return!1;case 27:return a.focus(),!1;case 13:case 32:return c.execute(),!1}return!0};a.on("uiSpace",function(c){if(c.data.space==a.config.toolbarLocation){c.removeListener(); -a.toolbox=new z;var d=CKEDITOR.tools.getNextId(),b=['\x3cspan id\x3d"',d,'" class\x3d"cke_voice_label"\x3e',a.lang.toolbar.toolbars,"\x3c/span\x3e",'\x3cspan id\x3d"'+a.ui.spaceId("toolbox")+'" class\x3d"cke_toolbox" role\x3d"group" aria-labelledby\x3d"',d,'" onmousedown\x3d"return false;"\x3e'],d=!1!==a.config.toolbarStartupExpanded,e,k;a.config.toolbarCanCollapse&&a.elementMode!=CKEDITOR.ELEMENT_MODE_INLINE&&b.push('\x3cspan class\x3d"cke_toolbox_main"'+(d?"\x3e":' style\x3d"display:none"\x3e')); -for(var q=a.toolbox.toolbars,n=D(a),g=n.length,l=0;l<g;l++){var r,m=0,w,p=n[l],v="/"!==p&&("/"===n[l+1]||l==g-1),x;if(p)if(e&&(b.push("\x3c/span\x3e"),k=e=0),"/"===p)b.push('\x3cspan class\x3d"cke_toolbar_break"\x3e\x3c/span\x3e');else{x=p.items||p;for(var y=0;y<x.length;y++){var t=x[y],A;if(t){var B=function(c){c=c.render(a,b);u=m.items.push(c)-1;0<u&&(c.previous=m.items[u-1],c.previous.next=c);c.toolbar=m;c.onkey=f;c.onfocus=function(){a.toolbox.focusCommandExecuted||a.focus()}};if(t.type==CKEDITOR.UI_SEPARATOR)k= -e&&t;else{A=!1!==t.canGroup;if(!m){r=CKEDITOR.tools.getNextId();m={id:r,items:[]};w=p.name&&(a.lang.toolbar.toolbarGroups[p.name]||p.name);b.push('\x3cspan id\x3d"',r,'" class\x3d"cke_toolbar'+(v?' cke_toolbar_last"':'"'),w?' aria-labelledby\x3d"'+r+'_label"':"",' role\x3d"toolbar"\x3e');w&&b.push('\x3cspan id\x3d"',r,'_label" class\x3d"cke_voice_label"\x3e',w,"\x3c/span\x3e");b.push('\x3cspan class\x3d"cke_toolbar_start"\x3e\x3c/span\x3e');var u=q.push(m)-1;0<u&&(m.previous=q[u-1],m.previous.next= -m)}A?e||(b.push('\x3cspan class\x3d"cke_toolgroup" role\x3d"presentation"\x3e'),e=1):e&&(b.push("\x3c/span\x3e"),e=0);k&&(B(k),k=0);B(t)}}}e&&(b.push("\x3c/span\x3e"),k=e=0);m&&b.push('\x3cspan class\x3d"cke_toolbar_end"\x3e\x3c/span\x3e\x3c/span\x3e')}}a.config.toolbarCanCollapse&&b.push("\x3c/span\x3e");if(a.config.toolbarCanCollapse&&a.elementMode!=CKEDITOR.ELEMENT_MODE_INLINE){var C=CKEDITOR.tools.addFunction(function(){a.execCommand("toolbarCollapse")});a.on("destroy",function(){CKEDITOR.tools.removeFunction(C)}); -a.addCommand("toolbarCollapse",{readOnly:1,exec:function(b){var a=b.ui.space("toolbar_collapser"),c=a.getPrevious(),d=b.ui.space("contents"),e=c.getParent(),h=parseInt(d.$.style.height,10),g=e.$.offsetHeight,f=a.hasClass("cke_toolbox_collapser_min");f?(c.show(),a.removeClass("cke_toolbox_collapser_min"),a.setAttribute("title",b.lang.toolbar.toolbarCollapse)):(c.hide(),a.addClass("cke_toolbox_collapser_min"),a.setAttribute("title",b.lang.toolbar.toolbarExpand));a.getFirst().setText(f?"▲":"◀");d.setStyle("height", -h-(e.$.offsetHeight-g)+"px");b.fire("resize",{outerHeight:b.container.$.offsetHeight,contentsHeight:d.$.offsetHeight,outerWidth:b.container.$.offsetWidth})},modes:{wysiwyg:1,source:1}});a.setKeystroke(CKEDITOR.ALT+(CKEDITOR.env.ie||CKEDITOR.env.webkit?189:109),"toolbarCollapse");b.push('\x3ca title\x3d"'+(d?a.lang.toolbar.toolbarCollapse:a.lang.toolbar.toolbarExpand)+'" id\x3d"'+a.ui.spaceId("toolbar_collapser")+'" tabIndex\x3d"-1" class\x3d"cke_toolbox_collapser');d||b.push(" cke_toolbox_collapser_min"); -b.push('" onclick\x3d"CKEDITOR.tools.callFunction('+C+')"\x3e','\x3cspan class\x3d"cke_arrow"\x3e\x26#9650;\x3c/span\x3e',"\x3c/a\x3e")}b.push("\x3c/span\x3e");c.data.html+=b.join("")}});a.on("destroy",function(){if(this.toolbox){var a,d=0,b,e,f;for(a=this.toolbox.toolbars;d<a.length;d++)for(e=a[d].items,b=0;b<e.length;b++)f=e[b],f.clickFn&&CKEDITOR.tools.removeFunction(f.clickFn),f.keyDownFn&&CKEDITOR.tools.removeFunction(f.keyDownFn)}});a.on("uiReady",function(){var c=a.ui.space("toolbox");c&&a.focusManager.add(c, -1)});a.addCommand("toolbarFocus",E);a.setKeystroke(CKEDITOR.ALT+121,"toolbarFocus");a.ui.add("-",CKEDITOR.UI_SEPARATOR,{});a.ui.addHandler(CKEDITOR.UI_SEPARATOR,{create:function(){return{render:function(a,d){d.push('\x3cspan class\x3d"cke_toolbar_separator" role\x3d"separator"\x3e\x3c/span\x3e');return{}}}}})}});CKEDITOR.ui.prototype.addToolbarGroup=function(a,d,f){var c=v(this.editor),h=0===d,b={name:a};if(f){if(f=CKEDITOR.tools.search(c,function(a){return a.name==f})){!f.groups&&(f.groups=[]);if(d&& -(d=CKEDITOR.tools.indexOf(f.groups,d),0<=d)){f.groups.splice(d+1,0,a);return}h?f.groups.splice(0,0,a):f.groups.push(a);return}d=null}d&&(d=CKEDITOR.tools.indexOf(c,function(a){return a.name==d}));h?c.splice(0,0,a):"number"==typeof d?c.splice(d+1,0,b):c.push(a)}})();CKEDITOR.UI_SEPARATOR="separator";CKEDITOR.config.toolbarLocation="top";(function(){function q(b,a,c){a.type||(a.type="auto");if(c&&!1===b.fire("beforePaste",a)||!a.dataValue&&a.dataTransfer.isEmpty())return!1;a.dataValue||(a.dataValue="");if(CKEDITOR.env.gecko&&"drop"==a.method&&b.toolbox)b.once("afterPaste",function(){b.toolbox.focus()});return b.fire("paste",a)}function y(b){function a(){var a=b.editable();if(CKEDITOR.plugins.clipboard.isCustomCopyCutSupported){var c=function(a){b.readOnly&&"cut"==a.name||m.initPasteDataTransfer(a,b);a.data.preventDefault()};a.on("copy", -c);a.on("cut",c);a.on("cut",function(){b.readOnly||b.extractSelectedHtml()},null,null,999)}a.on(m.mainPasteEvent,function(b){"beforepaste"==m.mainPasteEvent&&n||t(b)});"beforepaste"==m.mainPasteEvent&&(a.on("paste",function(b){u||(f(),b.data.preventDefault(),t(b),e("paste"))}),a.on("contextmenu",g,null,null,0),a.on("beforepaste",function(b){!b.data||b.data.$.ctrlKey||b.data.$.shiftKey||g()},null,null,0));a.on("beforecut",function(){!n&&h(b)});var d;a.attachListener(CKEDITOR.env.ie?a:b.document.getDocumentElement(), -"mouseup",function(){d=setTimeout(function(){r()},0)});b.on("destroy",function(){clearTimeout(d)});a.on("keyup",r)}function c(a){return{type:a,canUndo:"cut"==a,startDisabled:!0,fakeKeystroke:"cut"==a?CKEDITOR.CTRL+88:CKEDITOR.CTRL+67,exec:function(){"cut"==this.type&&h();var a;var c=this.type;if(CKEDITOR.env.ie)a=e(c);else try{a=b.document.$.execCommand(c,!1,null)}catch(d){a=!1}a||b.showNotification(b.lang.clipboard[this.type+"Error"]);return a}}}function d(){return{canUndo:!1,async:!0,fakeKeystroke:CKEDITOR.CTRL+ -86,exec:function(b,a){function c(a,g){g="undefined"!==typeof g?g:!0;a?(a.method="paste",a.dataTransfer||(a.dataTransfer=m.initPasteDataTransfer()),q(b,a,g)):d&&b.showNotification(l,"info",b.config.clipboard_notificationDuration);b.fire("afterCommandExec",{name:"paste",command:e,returnValue:!!a})}a="undefined"!==typeof a&&null!==a?a:{};var e=this,d="undefined"!==typeof a.notification?a.notification:!0,g=a.type,h=CKEDITOR.tools.keystrokeToString(b.lang.common.keyboard,b.getCommandKeystroke(this)),l= -"string"===typeof d?d:b.lang.clipboard.pasteNotification.replace(/%1/,'\x3ckbd aria-label\x3d"'+h.aria+'"\x3e'+h.display+"\x3c/kbd\x3e"),h="string"===typeof a?a:a.dataValue;g?b._.nextPasteType=g:delete b._.nextPasteType;"string"===typeof h?c({dataValue:h}):b.getClipboardData(c)}}}function f(){u=1;setTimeout(function(){u=0},100)}function g(){n=1;setTimeout(function(){n=0},10)}function e(a){var c=b.document,d=c.getBody(),e=!1,g=function(){e=!0};d.on(a,g);7<CKEDITOR.env.version?c.$.execCommand(a):c.$.selection.createRange().execCommand(a); -d.removeListener(a,g);return e}function h(){if(CKEDITOR.env.ie&&!CKEDITOR.env.quirks){var a=b.getSelection(),c,d,e;a.getType()==CKEDITOR.SELECTION_ELEMENT&&(c=a.getSelectedElement())&&(d=a.getRanges()[0],e=b.document.createText(""),e.insertBefore(c),d.setStartBefore(e),d.setEndAfter(c),a.selectRanges([d]),setTimeout(function(){c.getParent()&&(e.remove(),a.selectElement(c))},0))}}function k(a,c){var d=b.document,e=b.editable(),g=function(b){b.cancel()},h;if(!d.getById("cke_pastebin")){var l=b.getSelection(), -t=l.createBookmarks();CKEDITOR.env.ie&&l.root.fire("selectionchange");var f=new CKEDITOR.dom.element(!CKEDITOR.env.webkit&&!e.is("body")||CKEDITOR.env.ie?"div":"body",d);f.setAttributes({id:"cke_pastebin","data-cke-temp":"1"});var k=0,d=d.getWindow();CKEDITOR.env.webkit?(e.append(f),f.addClass("cke_editable"),e.is("body")||(k="static"!=e.getComputedStyle("position")?e:CKEDITOR.dom.element.get(e.$.offsetParent),k=k.getDocumentPosition().y)):e.getAscendant(CKEDITOR.env.ie?"body":"html",1).append(f); -f.setStyles({position:"absolute",top:d.getScrollPosition().y-k+10+"px",width:"1px",height:Math.max(1,d.getViewPaneSize().height-20)+"px",overflow:"hidden",margin:0,padding:0});CKEDITOR.env.safari&&f.setStyles(CKEDITOR.tools.cssVendorPrefix("user-select","text"));(k=f.getParent().isReadOnly())?(f.setOpacity(0),f.setAttribute("contenteditable",!0)):f.setStyle("ltr"==b.config.contentsLangDirection?"left":"right","-10000px");b.on("selectionChange",g,null,null,0);if(CKEDITOR.env.webkit||CKEDITOR.env.gecko)h= -e.once("blur",g,null,null,-100);k&&f.focus();k=new CKEDITOR.dom.range(f);k.selectNodeContents(f);var r=k.select();CKEDITOR.env.ie&&(h=e.once("blur",function(){b.lockSelection(r)}));var p=CKEDITOR.document.getWindow().getScrollPosition().y;setTimeout(function(){CKEDITOR.env.webkit&&(CKEDITOR.document.getBody().$.scrollTop=p);h&&h.removeListener();CKEDITOR.env.ie&&e.focus();l.selectBookmarks(t);f.remove();var a;CKEDITOR.env.webkit&&(a=f.getFirst())&&a.is&&a.hasClass("Apple-style-span")&&(f=a);b.removeListener("selectionChange", -g);c(f.getHtml())},0)}}function v(){if("paste"==m.mainPasteEvent)return b.fire("beforePaste",{type:"auto",method:"paste"}),!1;b.focus();f();var a=b.focusManager;a.lock();if(b.editable().fire(m.mainPasteEvent)&&!e("paste"))return a.unlock(),!1;a.unlock();return!0}function l(a){if("wysiwyg"==b.mode)switch(a.data.keyCode){case CKEDITOR.CTRL+86:case CKEDITOR.SHIFT+45:a=b.editable();f();"paste"==m.mainPasteEvent&&a.fire("beforepaste");break;case CKEDITOR.CTRL+88:case CKEDITOR.SHIFT+46:b.fire("saveSnapshot"), -setTimeout(function(){b.fire("saveSnapshot")},50)}}function t(a){var c={type:"auto",method:"paste",dataTransfer:m.initPasteDataTransfer(a)};c.dataTransfer.cacheData();var e=!1!==b.fire("beforePaste",c);e&&m.canClipboardApiBeTrusted(c.dataTransfer,b)?(a.data.preventDefault(),setTimeout(function(){q(b,c)},0)):k(a,function(a){c.dataValue=a.replace(/<span[^>]+data-cke-bookmark[^<]*?<\/span>/ig,"");e&&q(b,c)})}function r(){if("wysiwyg"==b.mode){var a=p("paste");b.getCommand("cut").setState(p("cut"));b.getCommand("copy").setState(p("copy")); -b.getCommand("paste").setState(a);b.fire("pasteState",a)}}function p(a){if(w&&a in{paste:1,cut:1})return CKEDITOR.TRISTATE_DISABLED;if("paste"==a)return CKEDITOR.TRISTATE_OFF;a=b.getSelection();var c=a.getRanges();return a.getType()==CKEDITOR.SELECTION_NONE||1==c.length&&c[0].collapsed?CKEDITOR.TRISTATE_DISABLED:CKEDITOR.TRISTATE_OFF}var m=CKEDITOR.plugins.clipboard,n=0,u=0,w=0;(function(){b.on("key",l);b.on("contentDom",a);b.on("selectionChange",function(b){w=b.data.selection.getRanges()[0].checkReadOnly(); -r()});b.contextMenu&&b.contextMenu.addListener(function(b,a){w=a.getRanges()[0].checkReadOnly();return{cut:p("cut"),copy:p("copy"),paste:p("paste")}})})();(function(){function a(c,e,d,g,h){var l=b.lang.clipboard[e];b.addCommand(e,d);b.ui.addButton&&b.ui.addButton(c,{label:l,command:e,toolbar:"clipboard,"+g});b.addMenuItems&&b.addMenuItem(e,{label:l,command:e,group:"clipboard",order:h})}a("Cut","cut",c("cut"),10,1);a("Copy","copy",c("copy"),20,4);a("Paste","paste",d(),30,8)})();b.getClipboardData= -function(a,c){function e(b){b.removeListener();b.cancel();c(b.data)}c||(c=a,a=null);b.on("paste",e,null,null,0);!1===v()&&(b.removeListener("paste",e),c(null))}}function z(b){if(CKEDITOR.env.webkit){if(!b.match(/^[^<]*$/g)&&!b.match(/^(<div><br( ?\/)?><\/div>|<div>[^<]*<\/div>)*$/gi))return"html"}else if(CKEDITOR.env.ie){if(!b.match(/^([^<]|<br( ?\/)?>)*$/gi)&&!b.match(/^(<p>([^<]|<br( ?\/)?>)*<\/p>|(\r\n))*$/gi))return"html"}else if(CKEDITOR.env.gecko){if(!b.match(/^([^<]|<br( ?\/)?>)*$/gi))return"html"}else return"html"; -return"htmlifiedtext"}function A(b,a){function c(b){return CKEDITOR.tools.repeat("\x3c/p\x3e\x3cp\x3e",~~(b/2))+(1==b%2?"\x3cbr\x3e":"")}a=a.replace(/\s+/g," ").replace(/> +</g,"\x3e\x3c").replace(/<br ?\/>/gi,"\x3cbr\x3e");a=a.replace(/<\/?[A-Z]+>/g,function(b){return b.toLowerCase()});if(a.match(/^[^<]$/))return a;CKEDITOR.env.webkit&&-1<a.indexOf("\x3cdiv\x3e")&&(a=a.replace(/^(<div>(<br>|)<\/div>)(?!$|(<div>(<br>|)<\/div>))/g,"\x3cbr\x3e").replace(/^(<div>(<br>|)<\/div>){2}(?!$)/g,"\x3cdiv\x3e\x3c/div\x3e"), -a.match(/<div>(<br>|)<\/div>/)&&(a="\x3cp\x3e"+a.replace(/(<div>(<br>|)<\/div>)+/g,function(b){return c(b.split("\x3c/div\x3e\x3cdiv\x3e").length+1)})+"\x3c/p\x3e"),a=a.replace(/<\/div><div>/g,"\x3cbr\x3e"),a=a.replace(/<\/?div>/g,""));CKEDITOR.env.gecko&&b.enterMode!=CKEDITOR.ENTER_BR&&(CKEDITOR.env.gecko&&(a=a.replace(/^<br><br>$/,"\x3cbr\x3e")),-1<a.indexOf("\x3cbr\x3e\x3cbr\x3e")&&(a="\x3cp\x3e"+a.replace(/(<br>){2,}/g,function(b){return c(b.length/4)})+"\x3c/p\x3e"));return B(b,a)}function C(){function b(){var b= -{},a;for(a in CKEDITOR.dtd)"$"!=a.charAt(0)&&"div"!=a&&"span"!=a&&(b[a]=1);return b}var a={};return{get:function(c){return"plain-text"==c?a.plainText||(a.plainText=new CKEDITOR.filter("br")):"semantic-content"==c?((c=a.semanticContent)||(c=new CKEDITOR.filter,c.allow({$1:{elements:b(),attributes:!0,styles:!1,classes:!1}}),c=a.semanticContent=c),c):c?new CKEDITOR.filter(c):null}}}function x(b,a,c){a=CKEDITOR.htmlParser.fragment.fromHtml(a);var d=new CKEDITOR.htmlParser.basicWriter;c.applyTo(a,!0,!1, -b.activeEnterMode);a.writeHtml(d);return d.getHtml()}function B(b,a){b.enterMode==CKEDITOR.ENTER_BR?a=a.replace(/(<\/p><p>)+/g,function(b){return CKEDITOR.tools.repeat("\x3cbr\x3e",b.length/7*2)}).replace(/<\/?p>/g,""):b.enterMode==CKEDITOR.ENTER_DIV&&(a=a.replace(/<(\/)?p>/g,"\x3c$1div\x3e"));return a}function D(b){b.data.preventDefault();b.data.$.dataTransfer.dropEffect="none"}function E(b){var a=CKEDITOR.plugins.clipboard;b.on("contentDom",function(){function c(a,c,e){c.select();q(b,{dataTransfer:e, -method:"drop"},1);e.sourceEditor.fire("saveSnapshot");e.sourceEditor.editable().extractHtmlFromRange(a);e.sourceEditor.getSelection().selectRanges([a]);e.sourceEditor.fire("saveSnapshot")}function d(c,e){c.select();q(b,{dataTransfer:e,method:"drop"},1);a.resetDragDataTransfer()}function f(a,c,e){var g={$:a.data.$,target:a.data.getTarget()};c&&(g.dragRange=c);e&&(g.dropRange=e);!1===b.fire(a.name,g)&&a.data.preventDefault()}function g(b){b.type!=CKEDITOR.NODE_ELEMENT&&(b=b.getParent());return b.getChildCount()} -var e=b.editable(),h=CKEDITOR.plugins.clipboard.getDropTarget(b),k=b.ui.space("top"),v=b.ui.space("bottom");a.preventDefaultDropOnElement(k);a.preventDefaultDropOnElement(v);e.attachListener(h,"dragstart",f);e.attachListener(b,"dragstart",a.resetDragDataTransfer,a,null,1);e.attachListener(b,"dragstart",function(c){a.initDragDataTransfer(c,b)},null,null,2);e.attachListener(b,"dragstart",function(){var c=a.dragRange=b.getSelection().getRanges()[0];CKEDITOR.env.ie&&10>CKEDITOR.env.version&&(a.dragStartContainerChildCount= -c?g(c.startContainer):null,a.dragEndContainerChildCount=c?g(c.endContainer):null)},null,null,100);e.attachListener(h,"dragend",f);e.attachListener(b,"dragend",a.initDragDataTransfer,a,null,1);e.attachListener(b,"dragend",a.resetDragDataTransfer,a,null,100);e.attachListener(h,"dragover",function(b){if(CKEDITOR.env.edge)b.data.preventDefault();else{var a=b.data.getTarget();a&&a.is&&a.is("html")?b.data.preventDefault():CKEDITOR.env.ie&&CKEDITOR.plugins.clipboard.isFileApiSupported&&b.data.$.dataTransfer.types.contains("Files")&& -b.data.preventDefault()}});e.attachListener(h,"drop",function(c){if(!c.data.$.defaultPrevented){c.data.preventDefault();var e=c.data.getTarget();if(!e.isReadOnly()||e.type==CKEDITOR.NODE_ELEMENT&&e.is("html")){var e=a.getRangeAtDropPosition(c,b),g=a.dragRange;e&&f(c,g,e)}}},null,null,9999);e.attachListener(b,"drop",a.initDragDataTransfer,a,null,1);e.attachListener(b,"drop",function(e){if(e=e.data){var g=e.dropRange,h=e.dragRange,f=e.dataTransfer;f.getTransferType(b)==CKEDITOR.DATA_TRANSFER_INTERNAL? -setTimeout(function(){a.internalDrop(h,g,f,b)},0):f.getTransferType(b)==CKEDITOR.DATA_TRANSFER_CROSS_EDITORS?c(h,g,f):d(g,f)}},null,null,9999)})}CKEDITOR.plugins.add("clipboard",{requires:"notification,toolbar",init:function(b){var a,c=C();b.config.forcePasteAsPlainText?a="plain-text":b.config.pasteFilter?a=b.config.pasteFilter:!CKEDITOR.env.webkit||"pasteFilter"in b.config||(a="semantic-content");b.pasteFilter=c.get(a);y(b);E(b);if(CKEDITOR.env.gecko){var d=["image/png","image/jpeg","image/gif"], -f;b.on("paste",function(a){var c=a.data,h=c.dataTransfer;if(!c.dataValue&&"paste"==c.method&&h&&1==h.getFilesCount()&&f!=h.id&&(h=h.getFile(0),-1!=CKEDITOR.tools.indexOf(d,h.type))){var k=new FileReader;k.addEventListener("load",function(){a.data.dataValue='\x3cimg src\x3d"'+k.result+'" /\x3e';b.fire("paste",a.data)},!1);k.addEventListener("abort",function(){b.fire("paste",a.data)},!1);k.addEventListener("error",function(){b.fire("paste",a.data)},!1);k.readAsDataURL(h);f=c.dataTransfer.id;a.stop()}}, -null,null,1)}b.on("paste",function(a){a.data.dataTransfer||(a.data.dataTransfer=new CKEDITOR.plugins.clipboard.dataTransfer);if(!a.data.dataValue){var c=a.data.dataTransfer,d=c.getData("text/html");if(d)a.data.dataValue=d,a.data.type="html";else if(d=c.getData("text/plain"))a.data.dataValue=b.editable().transformPlainTextToHtml(d),a.data.type="text"}},null,null,1);b.on("paste",function(b){var a=b.data.dataValue,c=CKEDITOR.dtd.$block;-1<a.indexOf("Apple-")&&(a=a.replace(/<span class="Apple-converted-space">&nbsp;<\/span>/gi, -" "),"html"!=b.data.type&&(a=a.replace(/<span class="Apple-tab-span"[^>]*>([^<]*)<\/span>/gi,function(a,b){return b.replace(/\t/g,"\x26nbsp;\x26nbsp; \x26nbsp;")})),-1<a.indexOf('\x3cbr class\x3d"Apple-interchange-newline"\x3e')&&(b.data.startsWithEOL=1,b.data.preSniffing="html",a=a.replace(/<br class="Apple-interchange-newline">/,"")),a=a.replace(/(<[^>]+) class="Apple-[^"]*"/gi,"$1"));if(a.match(/^<[^<]+cke_(editable|contents)/i)){var d,f,l=new CKEDITOR.dom.element("div");for(l.setHtml(a);1==l.getChildCount()&& -(d=l.getFirst())&&d.type==CKEDITOR.NODE_ELEMENT&&(d.hasClass("cke_editable")||d.hasClass("cke_contents"));)l=f=d;f&&(a=f.getHtml().replace(/<br>$/i,""))}CKEDITOR.env.ie?a=a.replace(/^&nbsp;(?: |\r\n)?<(\w+)/g,function(a,e){return e.toLowerCase()in c?(b.data.preSniffing="html","\x3c"+e):a}):CKEDITOR.env.webkit?a=a.replace(/<\/(\w+)><div><br><\/div>$/,function(a,e){return e in c?(b.data.endsWithEOL=1,"\x3c/"+e+"\x3e"):a}):CKEDITOR.env.gecko&&(a=a.replace(/(\s)<br>$/,"$1"));b.data.dataValue=a},null, -null,3);b.on("paste",function(a){a=a.data;var e=b._.nextPasteType||a.type,d=a.dataValue,f,n=b.config.clipboard_defaultContentType||"html",l=a.dataTransfer.getTransferType(b);f="html"==e||"html"==a.preSniffing?"html":z(d);delete b._.nextPasteType;"htmlifiedtext"==f&&(d=A(b.config,d));"text"==e&&"html"==f?d=x(b,d,c.get("plain-text")):l==CKEDITOR.DATA_TRANSFER_EXTERNAL&&b.pasteFilter&&!a.dontFilter&&(d=x(b,d,b.pasteFilter));a.startsWithEOL&&(d='\x3cbr data-cke-eol\x3d"1"\x3e'+d);a.endsWithEOL&&(d+='\x3cbr data-cke-eol\x3d"1"\x3e'); -"auto"==e&&(e="html"==f||"html"==n?"html":"text");a.type=e;a.dataValue=d;delete a.preSniffing;delete a.startsWithEOL;delete a.endsWithEOL},null,null,6);b.on("paste",function(a){a=a.data;a.dataValue&&(b.insertHtml(a.dataValue,a.type,a.range),setTimeout(function(){b.fire("afterPaste")},0))},null,null,1E3)}});CKEDITOR.plugins.clipboard={isCustomCopyCutSupported:!CKEDITOR.env.ie&&!CKEDITOR.env.iOS,isCustomDataTypesSupported:!CKEDITOR.env.ie,isFileApiSupported:!CKEDITOR.env.ie||9<CKEDITOR.env.version, -mainPasteEvent:CKEDITOR.env.ie&&!CKEDITOR.env.edge?"beforepaste":"paste",canClipboardApiBeTrusted:function(b,a){return b.getTransferType(a)!=CKEDITOR.DATA_TRANSFER_EXTERNAL||CKEDITOR.env.chrome&&!b.isEmpty()||CKEDITOR.env.gecko&&(b.getData("text/html")||b.getFilesCount())||CKEDITOR.env.safari&&603<=CKEDITOR.env.version&&!CKEDITOR.env.iOS?!0:!1},getDropTarget:function(b){var a=b.editable();return CKEDITOR.env.ie&&9>CKEDITOR.env.version||a.isInline()?a:b.document},fixSplitNodesAfterDrop:function(b, -a,c,d){function f(b,c,d){var f=b;f.type==CKEDITOR.NODE_TEXT&&(f=b.getParent());if(f.equals(c)&&d!=c.getChildCount())return b=a.startContainer.getChild(a.startOffset-1),c=a.startContainer.getChild(a.startOffset),b&&b.type==CKEDITOR.NODE_TEXT&&c&&c.type==CKEDITOR.NODE_TEXT&&(d=b.getLength(),b.setText(b.getText()+c.getText()),c.remove(),a.setStart(b,d),a.collapse(!0)),!0}var g=a.startContainer;"number"==typeof d&&"number"==typeof c&&g.type==CKEDITOR.NODE_ELEMENT&&(f(b.startContainer,g,c)||f(b.endContainer, -g,d))},isDropRangeAffectedByDragRange:function(b,a){var c=a.startContainer,d=a.endOffset;return b.endContainer.equals(c)&&b.endOffset<=d||b.startContainer.getParent().equals(c)&&b.startContainer.getIndex()<d||b.endContainer.getParent().equals(c)&&b.endContainer.getIndex()<d?!0:!1},internalDrop:function(b,a,c,d){var f=CKEDITOR.plugins.clipboard,g=d.editable(),e,h;d.fire("saveSnapshot");d.fire("lockSnapshot",{dontUpdate:1});CKEDITOR.env.ie&&10>CKEDITOR.env.version&&this.fixSplitNodesAfterDrop(b,a,f.dragStartContainerChildCount, -f.dragEndContainerChildCount);(h=this.isDropRangeAffectedByDragRange(b,a))||(e=b.createBookmark(!1));f=a.clone().createBookmark(!1);h&&(e=b.createBookmark(!1));b=e.startNode;a=e.endNode;h=f.startNode;a&&b.getPosition(h)&CKEDITOR.POSITION_PRECEDING&&a.getPosition(h)&CKEDITOR.POSITION_FOLLOWING&&h.insertBefore(b);b=d.createRange();b.moveToBookmark(e);g.extractHtmlFromRange(b,1);a=d.createRange();a.moveToBookmark(f);q(d,{dataTransfer:c,method:"drop",range:a},1);d.fire("unlockSnapshot")},getRangeAtDropPosition:function(b, -a){var c=b.data.$,d=c.clientX,f=c.clientY,g=a.getSelection(!0).getRanges()[0],e=a.createRange();if(b.data.testRange)return b.data.testRange;if(document.caretRangeFromPoint&&a.document.$.caretRangeFromPoint(d,f))c=a.document.$.caretRangeFromPoint(d,f),e.setStart(CKEDITOR.dom.node(c.startContainer),c.startOffset),e.collapse(!0);else if(c.rangeParent)e.setStart(CKEDITOR.dom.node(c.rangeParent),c.rangeOffset),e.collapse(!0);else{if(CKEDITOR.env.ie&&8<CKEDITOR.env.version&&g&&a.editable().hasFocus)return g; -if(document.body.createTextRange){a.focus();c=a.document.getBody().$.createTextRange();try{for(var h=!1,k=0;20>k&&!h;k++){if(!h)try{c.moveToPoint(d,f-k),h=!0}catch(n){}if(!h)try{c.moveToPoint(d,f+k),h=!0}catch(l){}}if(h){var t="cke-temp-"+(new Date).getTime();c.pasteHTML('\x3cspan id\x3d"'+t+'"\x3e​\x3c/span\x3e');var r=a.document.getById(t);e.moveToPosition(r,CKEDITOR.POSITION_BEFORE_START);r.remove()}else{var p=a.document.$.elementFromPoint(d,f),m=new CKEDITOR.dom.element(p),q;if(m.equals(a.editable())|| -"html"==m.getName())return g&&g.startContainer&&!g.startContainer.equals(a.editable())?g:null;q=m.getClientRect();d<q.left?e.setStartAt(m,CKEDITOR.POSITION_AFTER_START):e.setStartAt(m,CKEDITOR.POSITION_BEFORE_END);e.collapse(!0)}}catch(u){return null}}else return null}return e},initDragDataTransfer:function(b,a){var c=b.data.$?b.data.$.dataTransfer:null,d=new this.dataTransfer(c,a);c?this.dragData&&d.id==this.dragData.id?d=this.dragData:this.dragData=d:this.dragData?d=this.dragData:this.dragData= -d;b.data.dataTransfer=d},resetDragDataTransfer:function(){this.dragData=null},initPasteDataTransfer:function(b,a){if(this.isCustomCopyCutSupported){if(b&&b.data&&b.data.$){var c=new this.dataTransfer(b.data.$.clipboardData,a);this.copyCutData&&c.id==this.copyCutData.id?(c=this.copyCutData,c.$=b.data.$.clipboardData):this.copyCutData=c;return c}return new this.dataTransfer(null,a)}return new this.dataTransfer(CKEDITOR.env.edge&&b&&b.data.$&&b.data.$.clipboardData||null,a)},preventDefaultDropOnElement:function(b){b&& -b.on("dragover",D)}};var n=CKEDITOR.plugins.clipboard.isCustomDataTypesSupported?"cke/id":"Text";CKEDITOR.plugins.clipboard.dataTransfer=function(b,a){b&&(this.$=b);this._={metaRegExp:/^<meta.*?>/i,bodyRegExp:/<body(?:[\s\S]*?)>([\s\S]*)<\/body>/i,fragmentRegExp:/\x3c!--(?:Start|End)Fragment--\x3e/g,data:{},files:[],normalizeType:function(a){a=a.toLowerCase();return"text"==a||"text/plain"==a?"Text":"url"==a?"URL":a}};this.id=this.getData(n);this.id||(this.id="Text"==n?"":"cke-"+CKEDITOR.tools.getUniqueId()); -if("Text"!=n)try{this.$.setData(n,this.id)}catch(c){}a&&(this.sourceEditor=a,this.setData("text/html",a.getSelectedHtml(1)),"Text"==n||this.getData("text/plain")||this.setData("text/plain",a.getSelection().getSelectedText()))};CKEDITOR.DATA_TRANSFER_INTERNAL=1;CKEDITOR.DATA_TRANSFER_CROSS_EDITORS=2;CKEDITOR.DATA_TRANSFER_EXTERNAL=3;CKEDITOR.plugins.clipboard.dataTransfer.prototype={getData:function(b,a){b=this._.normalizeType(b);var c=this._.data[b],d;if(void 0===c||null===c||""===c)try{c=this.$.getData(b)}catch(f){}if(void 0=== -c||null===c||""===c)c="";"text/html"!=b||a?"Text"==b&&CKEDITOR.env.gecko&&this.getFilesCount()&&"file://"==c.substring(0,7)&&(c=""):(c=c.replace(this._.metaRegExp,""),(d=this._.bodyRegExp.exec(c))&&d.length&&(c=d[1],c=c.replace(this._.fragmentRegExp,"")));"string"===typeof c&&(d=c.indexOf("\x3c/html\x3e"),c=-1!==d?c.substring(0,d+7):c);return c},setData:function(b,a){b=this._.normalizeType(b);this._.data[b]=a;if(CKEDITOR.plugins.clipboard.isCustomDataTypesSupported||"URL"==b||"Text"==b){"Text"==n&& -"Text"==b&&(this.id=a);try{this.$.setData(b,a)}catch(c){}}},getTransferType:function(b){return this.sourceEditor?this.sourceEditor==b?CKEDITOR.DATA_TRANSFER_INTERNAL:CKEDITOR.DATA_TRANSFER_CROSS_EDITORS:CKEDITOR.DATA_TRANSFER_EXTERNAL},cacheData:function(){function b(b){b=a._.normalizeType(b);var c=a.getData(b,!0);c&&(a._.data[b]=c)}if(this.$){var a=this,c,d;if(CKEDITOR.plugins.clipboard.isCustomDataTypesSupported){if(this.$.types)for(c=0;c<this.$.types.length;c++)b(this.$.types[c])}else b("Text"), -b("URL");d=this._getImageFromClipboard();if(this.$&&this.$.files||d){this._.files=[];if(this.$.files&&this.$.files.length)for(c=0;c<this.$.files.length;c++)this._.files.push(this.$.files[c]);0===this._.files.length&&d&&this._.files.push(d)}}},getFilesCount:function(){return this._.files.length?this._.files.length:this.$&&this.$.files&&this.$.files.length?this.$.files.length:this._getImageFromClipboard()?1:0},getFile:function(b){return this._.files.length?this._.files[b]:this.$&&this.$.files&&this.$.files.length? -this.$.files[b]:0===b?this._getImageFromClipboard():void 0},isEmpty:function(){var b={},a;if(this.getFilesCount())return!1;for(a in this._.data)b[a]=1;if(this.$)if(CKEDITOR.plugins.clipboard.isCustomDataTypesSupported){if(this.$.types)for(var c=0;c<this.$.types.length;c++)b[this.$.types[c]]=1}else b.Text=1,b.URL=1;"Text"!=n&&(b[n]=0);for(a in b)if(b[a]&&""!==this.getData(a))return!1;return!0},_getImageFromClipboard:function(){var b;if(this.$&&this.$.items&&this.$.items[0])try{if((b=this.$.items[0].getAsFile())&& -b.type)return b}catch(a){}}}})();CKEDITOR.config.clipboard_notificationDuration=1E4;(function(){CKEDITOR.plugins.add("panel",{beforeInit:function(a){a.ui.addHandler(CKEDITOR.UI_PANEL,CKEDITOR.ui.panel.handler)}});CKEDITOR.UI_PANEL="panel";CKEDITOR.ui.panel=function(a,b){b&&CKEDITOR.tools.extend(this,b);CKEDITOR.tools.extend(this,{className:"",css:[]});this.id=CKEDITOR.tools.getNextId();this.document=a;this.isFramed=this.forceIFrame||this.css.length;this._={blocks:{}}};CKEDITOR.ui.panel.handler={create:function(a){return new CKEDITOR.ui.panel(a)}};var g=CKEDITOR.addTemplate("panel", -'\x3cdiv lang\x3d"{langCode}" id\x3d"{id}" dir\x3d{dir} class\x3d"cke cke_reset_all {editorId} cke_panel cke_panel {cls} cke_{dir}" style\x3d"z-index:{z-index}" role\x3d"presentation"\x3e{frame}\x3c/div\x3e'),h=CKEDITOR.addTemplate("panel-frame",'\x3ciframe id\x3d"{id}" class\x3d"cke_panel_frame" role\x3d"presentation" frameborder\x3d"0" src\x3d"{src}"\x3e\x3c/iframe\x3e'),k=CKEDITOR.addTemplate("panel-frame-inner",'\x3c!DOCTYPE html\x3e\x3chtml class\x3d"cke_panel_container {env}" dir\x3d"{dir}" lang\x3d"{langCode}"\x3e\x3chead\x3e{css}\x3c/head\x3e\x3cbody class\x3d"cke_{dir}" style\x3d"margin:0;padding:0" onload\x3d"{onload}"\x3e\x3c/body\x3e\x3c/html\x3e'); -CKEDITOR.ui.panel.prototype={render:function(a,b){this.getHolderElement=function(){var a=this._.holder;if(!a){if(this.isFramed){var a=this.document.getById(this.id+"_frame"),b=a.getParent(),a=a.getFrameDocument();CKEDITOR.env.iOS&&b.setStyles({overflow:"scroll","-webkit-overflow-scrolling":"touch"});b=CKEDITOR.tools.addFunction(CKEDITOR.tools.bind(function(){this.isLoaded=!0;if(this.onLoad)this.onLoad()},this));a.write(k.output(CKEDITOR.tools.extend({css:CKEDITOR.tools.buildStyleHtml(this.css),onload:"window.parent.CKEDITOR.tools.callFunction("+ -b+");"},e)));a.getWindow().$.CKEDITOR=CKEDITOR;a.on("keydown",function(a){var b=a.data.getKeystroke(),c=this.document.getById(this.id).getAttribute("dir");this._.onKeyDown&&!1===this._.onKeyDown(b)?a.data.preventDefault():(27==b||b==("rtl"==c?39:37))&&this.onEscape&&!1===this.onEscape(b)&&a.data.preventDefault()},this);a=a.getBody();a.unselectable();CKEDITOR.env.air&&CKEDITOR.tools.callFunction(b)}else a=this.document.getById(this.id);this._.holder=a}return a};var e={editorId:a.id,id:this.id,langCode:a.langCode, -dir:a.lang.dir,cls:this.className,frame:"",env:CKEDITOR.env.cssClass,"z-index":a.config.baseFloatZIndex+1};if(this.isFramed){var d=CKEDITOR.env.air?"javascript:void(0)":CKEDITOR.env.ie?"javascript:void(function(){"+encodeURIComponent("document.open();("+CKEDITOR.tools.fixDomain+")();document.close();")+"}())":"";e.frame=h.output({id:this.id+"_frame",src:d})}d=g.output(e);b&&b.push(d);return d},addBlock:function(a,b){b=this._.blocks[a]=b instanceof CKEDITOR.ui.panel.block?b:new CKEDITOR.ui.panel.block(this.getHolderElement(), -b);this._.currentBlock||this.showBlock(a);return b},getBlock:function(a){return this._.blocks[a]},showBlock:function(a){a=this._.blocks[a];var b=this._.currentBlock,e=!this.forceIFrame||CKEDITOR.env.ie?this._.holder:this.document.getById(this.id+"_frame");b&&b.hide();this._.currentBlock=a;CKEDITOR.fire("ariaWidget",e);a._.focusIndex=-1;this._.onKeyDown=a.onKeyDown&&CKEDITOR.tools.bind(a.onKeyDown,a);a.show();return a},destroy:function(){this.element&&this.element.remove()}};CKEDITOR.ui.panel.block= -CKEDITOR.tools.createClass({$:function(a,b){this.element=a.append(a.getDocument().createElement("div",{attributes:{tabindex:-1,"class":"cke_panel_block"},styles:{display:"none"}}));b&&CKEDITOR.tools.extend(this,b);this.element.setAttributes({role:this.attributes.role||"presentation","aria-label":this.attributes["aria-label"],title:this.attributes.title||this.attributes["aria-label"]});this.keys={};this._.focusIndex=-1;this.element.disableContextMenu()},_:{markItem:function(a){-1!=a&&(a=this.element.getElementsByTag("a").getItem(this._.focusIndex= -a),CKEDITOR.env.webkit&&a.getDocument().getWindow().focus(),a.focus(),this.onMark&&this.onMark(a))},markFirstDisplayed:function(a){for(var b=function(a){return a.type==CKEDITOR.NODE_ELEMENT&&"none"==a.getStyle("display")},e=this._.getItems(),d,c,f=e.count()-1;0<=f;f--)if(d=e.getItem(f),d.getAscendant(b)||(c=d,this._.focusIndex=f),"true"==d.getAttribute("aria-selected")){c=d;this._.focusIndex=f;break}c&&(a&&a(),CKEDITOR.env.webkit&&c.getDocument().getWindow().focus(),c.focus(),this.onMark&&this.onMark(c))}, -getItems:function(){return this.element.getElementsByTag("a")}},proto:{show:function(){this.element.setStyle("display","")},hide:function(){this.onHide&&!0===this.onHide.call(this)||this.element.setStyle("display","none")},onKeyDown:function(a,b){var e=this.keys[a];switch(e){case "next":for(var d=this._.focusIndex,e=this.element.getElementsByTag("a"),c;c=e.getItem(++d);)if(c.getAttribute("_cke_focus")&&c.$.offsetWidth){this._.focusIndex=d;c.focus();break}return c||b?!1:(this._.focusIndex=-1,this.onKeyDown(a, -1));case "prev":d=this._.focusIndex;for(e=this.element.getElementsByTag("a");0<d&&(c=e.getItem(--d));){if(c.getAttribute("_cke_focus")&&c.$.offsetWidth){this._.focusIndex=d;c.focus();break}c=null}return c||b?!1:(this._.focusIndex=e.count(),this.onKeyDown(a,1));case "click":case "mouseup":return d=this._.focusIndex,(c=0<=d&&this.element.getElementsByTag("a").getItem(d))&&(c.$[e]?c.$[e]():c.$["on"+e]()),!1}return!0}}})})();CKEDITOR.plugins.add("floatpanel",{requires:"panel"}); -(function(){function v(a,b,c,m,h){h=CKEDITOR.tools.genKey(b.getUniqueId(),c.getUniqueId(),a.lang.dir,a.uiColor||"",m.css||"",h||"");var g=f[h];g||(g=f[h]=new CKEDITOR.ui.panel(b,m),g.element=c.append(CKEDITOR.dom.element.createFromHtml(g.render(a),b)),g.element.setStyles({display:"none",position:"absolute"}));return g}var f={};CKEDITOR.ui.floatPanel=CKEDITOR.tools.createClass({$:function(a,b,c,m){function h(){e.hide()}c.forceIFrame=1;c.toolbarRelated&&a.elementMode==CKEDITOR.ELEMENT_MODE_INLINE&& -(b=CKEDITOR.document.getById("cke_"+a.name));var g=b.getDocument();m=v(a,g,b,c,m||0);var n=m.element,k=n.getFirst(),e=this;n.disableContextMenu();this.element=n;this._={editor:a,panel:m,parentElement:b,definition:c,document:g,iframe:k,children:[],dir:a.lang.dir,showBlockParams:null};a.on("mode",h);a.on("resize",h);g.getWindow().on("resize",function(){this.reposition()},this)},proto:{addBlock:function(a,b){return this._.panel.addBlock(a,b)},addListBlock:function(a,b){return this._.panel.addListBlock(a, -b)},getBlock:function(a){return this._.panel.getBlock(a)},showBlock:function(a,b,c,m,h,g){var n=this._.panel,k=n.showBlock(a);this._.showBlockParams=[].slice.call(arguments);this.allowBlur(!1);var e=this._.editor.editable();this._.returnFocus=e.hasFocus?e:new CKEDITOR.dom.element(CKEDITOR.document.$.activeElement);this._.hideTimeout=0;var l=this.element,e=this._.iframe,e=CKEDITOR.env.ie&&!CKEDITOR.env.edge?e:new CKEDITOR.dom.window(e.$.contentWindow),f=l.getDocument(),r=this._.parentElement.getPositionedAncestor(), -t=b.getDocumentPosition(f),f=r?r.getDocumentPosition(f):{x:0,y:0},q="rtl"==this._.dir,d=t.x+(m||0)-f.x,p=t.y+(h||0)-f.y;!q||1!=c&&4!=c?q||2!=c&&3!=c||(d+=b.$.offsetWidth-1):d+=b.$.offsetWidth;if(3==c||4==c)p+=b.$.offsetHeight-1;this._.panel._.offsetParentId=b.getId();l.setStyles({top:p+"px",left:0,display:""});l.setOpacity(0);l.getFirst().removeStyle("width");this._.editor.focusManager.add(e);this._.blurSet||(CKEDITOR.event.useCapture=!0,e.on("blur",function(a){function u(){delete this._.returnFocus; -this.hide()}this.allowBlur()&&a.data.getPhase()==CKEDITOR.EVENT_PHASE_AT_TARGET&&this.visible&&!this._.activeChild&&(CKEDITOR.env.iOS?this._.hideTimeout||(this._.hideTimeout=CKEDITOR.tools.setTimeout(u,0,this)):u.call(this))},this),e.on("focus",function(){this._.focused=!0;this.hideChild();this.allowBlur(!0)},this),CKEDITOR.env.iOS&&(e.on("touchstart",function(){clearTimeout(this._.hideTimeout)},this),e.on("touchend",function(){this._.hideTimeout=0;this.focus()},this)),CKEDITOR.event.useCapture=!1, -this._.blurSet=1);n.onEscape=CKEDITOR.tools.bind(function(a){if(this.onEscape&&!1===this.onEscape(a))return!1},this);CKEDITOR.tools.setTimeout(function(){var a=CKEDITOR.tools.bind(function(){var a=l;a.removeStyle("width");if(k.autoSize){var b=k.element.getDocument(),b=(CKEDITOR.env.webkit||CKEDITOR.env.edge?k.element:b.getBody()).$.scrollWidth;CKEDITOR.env.ie&&CKEDITOR.env.quirks&&0<b&&(b+=(a.$.offsetWidth||0)-(a.$.clientWidth||0)+3);a.setStyle("width",b+10+"px");b=k.element.$.scrollHeight;CKEDITOR.env.ie&& -CKEDITOR.env.quirks&&0<b&&(b+=(a.$.offsetHeight||0)-(a.$.clientHeight||0)+3);a.setStyle("height",b+"px");n._.currentBlock.element.setStyle("display","none").removeStyle("display")}else a.removeStyle("height");q&&(d-=l.$.offsetWidth);l.setStyle("left",d+"px");var b=n.element.getWindow(),a=l.$.getBoundingClientRect(),b=b.getViewPaneSize(),c=a.width||a.right-a.left,e=a.height||a.bottom-a.top,m=q?a.right:b.width-a.left,h=q?b.width-a.right:a.left;q?m<c&&(d=h>c?d+c:b.width>c?d-a.left:d-a.right+b.width): -m<c&&(d=h>c?d-c:b.width>c?d-a.right+b.width:d-a.left);c=a.top;b.height-a.top<e&&(p=c>e?p-e:b.height>e?p-a.bottom+b.height:p-a.top);CKEDITOR.env.ie&&(b=a=new CKEDITOR.dom.element(l.$.offsetParent),"html"==b.getName()&&(b=b.getDocument().getBody()),"rtl"==b.getComputedStyle("direction")&&(d=CKEDITOR.env.ie8Compat?d-2*l.getDocument().getDocumentElement().$.scrollLeft:d-(a.$.scrollWidth-a.$.clientWidth)));var a=l.getFirst(),f;(f=a.getCustomData("activePanel"))&&f.onHide&&f.onHide.call(this,1);a.setCustomData("activePanel", -this);l.setStyles({top:p+"px",left:d+"px"});l.setOpacity(1);g&&g()},this);n.isLoaded?a():n.onLoad=a;CKEDITOR.tools.setTimeout(function(){var a=CKEDITOR.env.webkit&&CKEDITOR.document.getWindow().getScrollPosition().y;this.focus();k.element.focus();CKEDITOR.env.webkit&&(CKEDITOR.document.getBody().$.scrollTop=a);this.allowBlur(!0);CKEDITOR.env.ie?CKEDITOR.tools.setTimeout(function(){k.markFirstDisplayed?k.markFirstDisplayed():k._.markFirstDisplayed()},0):k.markFirstDisplayed?k.markFirstDisplayed(): -k._.markFirstDisplayed();this._.editor.fire("panelShow",this)},0,this)},CKEDITOR.env.air?200:0,this);this.visible=1;this.onShow&&this.onShow.call(this)},reposition:function(){var a=this._.showBlockParams;this.visible&&this._.showBlockParams&&(this.hide(),this.showBlock.apply(this,a))},focus:function(){if(CKEDITOR.env.webkit){var a=CKEDITOR.document.getActive();a&&!a.equals(this._.iframe)&&a.$.blur()}(this._.lastFocused||this._.iframe.getFrameDocument().getWindow()).focus()},blur:function(){var a= -this._.iframe.getFrameDocument().getActive();a&&a.is("a")&&(this._.lastFocused=a)},hide:function(a){if(this.visible&&(!this.onHide||!0!==this.onHide.call(this))){this.hideChild();CKEDITOR.env.gecko&&this._.iframe.getFrameDocument().$.activeElement.blur();this.element.setStyle("display","none");this.visible=0;this.element.getFirst().removeCustomData("activePanel");if(a=a&&this._.returnFocus)CKEDITOR.env.webkit&&a.type&&a.getWindow().$.focus(),a.focus();delete this._.lastFocused;this._.showBlockParams= -null;this._.editor.fire("panelHide",this)}},allowBlur:function(a){var b=this._.panel;void 0!==a&&(b.allowBlur=a);return b.allowBlur},showAsChild:function(a,b,c,f,h,g){if(this._.activeChild!=a||a._.panel._.offsetParentId!=c.getId())this.hideChild(),a.onHide=CKEDITOR.tools.bind(function(){CKEDITOR.tools.setTimeout(function(){this._.focused||this.hide()},0,this)},this),this._.activeChild=a,this._.focused=!1,a.showBlock(b,c,f,h,g),this.blur(),(CKEDITOR.env.ie7Compat||CKEDITOR.env.ie6Compat)&&setTimeout(function(){a.element.getChild(0).$.style.cssText+= -""},100)},hideChild:function(a){var b=this._.activeChild;b&&(delete b.onHide,delete this._.activeChild,b.hide(),a&&this.focus())}}});CKEDITOR.on("instanceDestroyed",function(){var a=CKEDITOR.tools.isEmpty(CKEDITOR.instances),b;for(b in f){var c=f[b];a?c.destroy():c.element.hide()}a&&(f={})})})();CKEDITOR.plugins.add("menu",{requires:"floatpanel",beforeInit:function(l){for(var h=l.config.menu_groups.split(","),r=l._.menuGroups={},t=l._.menuItems={},n=0;n<h.length;n++)r[h[n]]=n+1;l.addMenuGroup=function(a,b){r[a]=b||100};l.addMenuItem=function(a,b){r[b.group]&&(t[a]=new CKEDITOR.menuItem(this,a,b))};l.addMenuItems=function(a){for(var b in a)this.addMenuItem(b,a[b])};l.getMenuItem=function(a){return t[a]};l.removeMenuItem=function(a){delete t[a]}}}); -(function(){function l(a){a.sort(function(a,d){return a.group<d.group?-1:a.group>d.group?1:a.order<d.order?-1:a.order>d.order?1:0})}var h='\x3cspan class\x3d"cke_menuitem"\x3e\x3ca id\x3d"{id}" class\x3d"cke_menubutton cke_menubutton__{name} cke_menubutton_{state} {cls}" href\x3d"{href}" title\x3d"{title}" tabindex\x3d"-1" _cke_focus\x3d1 hidefocus\x3d"true" role\x3d"{role}" aria-label\x3d"{label}" aria-describedby\x3d"{id}_description" aria-haspopup\x3d"{hasPopup}" aria-disabled\x3d"{disabled}" {ariaChecked} draggable\x3d"false"'; -CKEDITOR.env.gecko&&CKEDITOR.env.mac&&(h+=' onkeypress\x3d"return false;"');CKEDITOR.env.gecko&&(h+=' onblur\x3d"this.style.cssText \x3d this.style.cssText;" ondragstart\x3d"return false;"');var h=h+(' onmouseover\x3d"CKEDITOR.tools.callFunction({hoverFn},{index});" onmouseout\x3d"CKEDITOR.tools.callFunction({moveOutFn},{index});" '+(CKEDITOR.env.ie?'onclick\x3d"return false;" onmouseup':"onclick")+'\x3d"CKEDITOR.tools.callFunction({clickFn},{index}); return false;"\x3e'),r=CKEDITOR.addTemplate("menuItem", -h+'\x3cspan class\x3d"cke_menubutton_inner"\x3e\x3cspan class\x3d"cke_menubutton_icon"\x3e\x3cspan class\x3d"cke_button_icon cke_button__{iconName}_icon" style\x3d"{iconStyle}"\x3e\x3c/span\x3e\x3c/span\x3e\x3cspan class\x3d"cke_menubutton_label"\x3e{label}\x3c/span\x3e{shortcutHtml}{arrowHtml}\x3c/span\x3e\x3c/a\x3e\x3cspan id\x3d"{id}_description" class\x3d"cke_voice_label" aria-hidden\x3d"false"\x3e{ariaShortcut}\x3c/span\x3e\x3c/span\x3e'),t=CKEDITOR.addTemplate("menuArrow",'\x3cspan class\x3d"cke_menuarrow"\x3e\x3cspan\x3e{label}\x3c/span\x3e\x3c/span\x3e'), -n=CKEDITOR.addTemplate("menuShortcut",'\x3cspan class\x3d"cke_menubutton_label cke_menubutton_shortcut"\x3e{shortcut}\x3c/span\x3e');CKEDITOR.menu=CKEDITOR.tools.createClass({$:function(a,b){b=this._.definition=b||{};this.id=CKEDITOR.tools.getNextId();this.editor=a;this.items=[];this._.listeners=[];this._.level=b.level||1;var d=CKEDITOR.tools.extend({},b.panel,{css:[CKEDITOR.skin.getPath("editor")],level:this._.level-1,block:{}}),m=d.block.attributes=d.attributes||{};!m.role&&(m.role="menu");this._.panelDefinition= -d},_:{onShow:function(){var a=this.editor.getSelection(),b=a&&a.getStartElement(),d=this.editor.elementPath(),m=this._.listeners;this.removeAll();for(var g=0;g<m.length;g++){var k=m[g](b,a,d);if(k)for(var e in k){var f=this.editor.getMenuItem(e);!f||f.command&&!this.editor.getCommand(f.command).state||(f.state=k[e],this.add(f))}}},onClick:function(a){this.hide();if(a.onClick)a.onClick();else a.command&&this.editor.execCommand(a.command)},onEscape:function(a){var b=this.parent;b?b._.panel.hideChild(1): -27==a&&this.hide(1);return!1},onHide:function(){this.onHide&&this.onHide()},showSubMenu:function(a){var b=this._.subMenu,d=this.items[a];if(d=d.getItems&&d.getItems()){b?b.removeAll():(b=this._.subMenu=new CKEDITOR.menu(this.editor,CKEDITOR.tools.extend({},this._.definition,{level:this._.level+1},!0)),b.parent=this,b._.onClick=CKEDITOR.tools.bind(this._.onClick,this));for(var m in d){var g=this.editor.getMenuItem(m);g&&(g.state=d[m],b.add(g))}var k=this._.panel.getBlock(this.id).element.getDocument().getById(this.id+ -String(a));setTimeout(function(){b.show(k,2)},0)}else this._.panel.hideChild(1)}},proto:{add:function(a){a.order||(a.order=this.items.length);this.items.push(a)},removeAll:function(){this.items=[]},show:function(a,b,d,m){if(!this.parent&&(this._.onShow(),!this.items.length))return;b=b||("rtl"==this.editor.lang.dir?2:1);var g=this.items,k=this.editor,e=this._.panel,f=this._.element;if(!e){e=this._.panel=new CKEDITOR.ui.floatPanel(this.editor,CKEDITOR.document.getBody(),this._.panelDefinition,this._.level); -e.onEscape=CKEDITOR.tools.bind(function(a){if(!1===this._.onEscape(a))return!1},this);e.onShow=function(){e._.panel.getHolderElement().getParent().addClass("cke").addClass("cke_reset_all")};e.onHide=CKEDITOR.tools.bind(function(){this._.onHide&&this._.onHide()},this);f=e.addBlock(this.id,this._.panelDefinition.block);f.autoSize=!0;var c=f.keys;c[40]="next";c[9]="next";c[38]="prev";c[CKEDITOR.SHIFT+9]="prev";c["rtl"==k.lang.dir?37:39]=CKEDITOR.env.ie?"mouseup":"click";c[32]=CKEDITOR.env.ie?"mouseup": -"click";CKEDITOR.env.ie&&(c[13]="mouseup");f=this._.element=f.element;c=f.getDocument();c.getBody().setStyle("overflow","hidden");c.getElementsByTag("html").getItem(0).setStyle("overflow","hidden");this._.itemOverFn=CKEDITOR.tools.addFunction(function(a){clearTimeout(this._.showSubTimeout);this._.showSubTimeout=CKEDITOR.tools.setTimeout(this._.showSubMenu,k.config.menu_subMenuDelay||400,this,[a])},this);this._.itemOutFn=CKEDITOR.tools.addFunction(function(){clearTimeout(this._.showSubTimeout)},this); -this._.itemClickFn=CKEDITOR.tools.addFunction(function(a){var b=this.items[a];if(b.state==CKEDITOR.TRISTATE_DISABLED)this.hide(1);else if(b.getItems)this._.showSubMenu(a);else this._.onClick(b)},this)}l(g);for(var c=k.elementPath(),c=['\x3cdiv class\x3d"cke_menu'+(c&&c.direction()!=k.lang.dir?" cke_mixed_dir_content":"")+'" role\x3d"presentation"\x3e'],h=g.length,n=h&&g[0].group,q=0;q<h;q++){var p=g[q];n!=p.group&&(c.push('\x3cdiv class\x3d"cke_menuseparator" role\x3d"separator"\x3e\x3c/div\x3e'), -n=p.group);p.render(this,q,c)}c.push("\x3c/div\x3e");f.setHtml(c.join(""));CKEDITOR.ui.fire("ready",this);this.parent?this.parent._.panel.showAsChild(e,this.id,a,b,d,m):e.showBlock(this.id,a,b,d,m);k.fire("menuShow",[e])},addListener:function(a){this._.listeners.push(a)},hide:function(a){this._.onHide&&this._.onHide();this._.panel&&this._.panel.hide(a)}}});CKEDITOR.menuItem=CKEDITOR.tools.createClass({$:function(a,b,d){CKEDITOR.tools.extend(this,d,{order:0,className:"cke_menubutton__"+b});this.group= -a._.menuGroups[this.group];this.editor=a;this.name=b},proto:{render:function(a,b,d){var h=a.id+String(b),g="undefined"==typeof this.state?CKEDITOR.TRISTATE_OFF:this.state,k="",e=this.editor,f,c,l=g==CKEDITOR.TRISTATE_ON?"on":g==CKEDITOR.TRISTATE_DISABLED?"disabled":"off";this.role in{menuitemcheckbox:1,menuitemradio:1}&&(k=' aria-checked\x3d"'+(g==CKEDITOR.TRISTATE_ON?"true":"false")+'"');var u=this.getItems,q="\x26#"+("rtl"==this.editor.lang.dir?"9668":"9658")+";",p=this.name;this.icon&&!/\./.test(this.icon)&& -(p=this.icon);this.command&&(f=e.getCommand(this.command),(f=e.getCommandKeystroke(f))&&(c=CKEDITOR.tools.keystrokeToString(e.lang.common.keyboard,f)));a={id:h,name:this.name,iconName:p,label:this.label,cls:this.className||"",state:l,hasPopup:u?"true":"false",disabled:g==CKEDITOR.TRISTATE_DISABLED,title:this.label+(c?" ("+c.display+")":""),ariaShortcut:c?e.lang.common.keyboardShortcut+" "+c.aria:"",href:"javascript:void('"+(this.label||"").replace("'")+"')",hoverFn:a._.itemOverFn,moveOutFn:a._.itemOutFn, -clickFn:a._.itemClickFn,index:b,iconStyle:CKEDITOR.skin.getIconStyle(p,"rtl"==this.editor.lang.dir,p==this.icon?null:this.icon,this.iconOffset),shortcutHtml:c?n.output({shortcut:c.display}):"",arrowHtml:u?t.output({label:q}):"",role:this.role?this.role:"menuitem",ariaChecked:k};r.output(a,d)}}})})();CKEDITOR.config.menu_groups="clipboard,form,tablecell,tablecellproperties,tablerow,tablecolumn,table,anchor,link,image,flash,checkbox,radio,textfield,hiddenfield,imagebutton,button,select,textarea,div";CKEDITOR.plugins.add("contextmenu",{requires:"menu",onLoad:function(){CKEDITOR.plugins.contextMenu=CKEDITOR.tools.createClass({base:CKEDITOR.menu,$:function(a){this.base.call(this,a,{panel:{className:"cke_menu_panel",attributes:{"aria-label":a.lang.contextmenu.options}}})},proto:{addTarget:function(a,e){a.on("contextmenu",function(a){a=a.data;var c=CKEDITOR.env.webkit?f:CKEDITOR.env.mac?a.$.metaKey:a.$.ctrlKey;if(!e||!c){a.preventDefault();if(CKEDITOR.env.mac&&CKEDITOR.env.webkit){var c=this.editor, -b=(new CKEDITOR.dom.elementPath(a.getTarget(),c.editable())).contains(function(a){return a.hasAttribute("contenteditable")},!0);b&&"false"==b.getAttribute("contenteditable")&&c.getSelection().fake(b)}var b=a.getTarget().getDocument(),d=a.getTarget().getDocument().getDocumentElement(),c=!b.equals(CKEDITOR.document),b=b.getWindow().getScrollPosition(),g=c?a.$.clientX:a.$.pageX||b.x+a.$.clientX,h=c?a.$.clientY:a.$.pageY||b.y+a.$.clientY;CKEDITOR.tools.setTimeout(function(){this.open(d,null,g,h)},CKEDITOR.env.ie? -200:0,this)}},this);if(CKEDITOR.env.webkit){var f,d=function(){f=0};a.on("keydown",function(a){f=CKEDITOR.env.mac?a.data.$.metaKey:a.data.$.ctrlKey});a.on("keyup",d);a.on("contextmenu",d)}},open:function(a,e,f,d){!1!==this.editor.config.enableContextMenu&&(this.editor.focus(),a=a||CKEDITOR.document.getDocumentElement(),this.editor.selectionChange(1),this.show(a,e,f,d))}}})},beforeInit:function(a){var e=a.contextMenu=new CKEDITOR.plugins.contextMenu(a);a.on("contentDom",function(){e.addTarget(a.editable(), -!1!==a.config.browserContextMenuOnCtrl)});a.addCommand("contextMenu",{exec:function(){a.contextMenu.open(a.document.getBody())}});a.setKeystroke(CKEDITOR.SHIFT+121,"contextMenu");a.setKeystroke(CKEDITOR.CTRL+CKEDITOR.SHIFT+121,"contextMenu")}});CKEDITOR.plugins.add("resize",{init:function(b){function f(d){var e=c.width,m=c.height,f=e+(d.data.$.screenX-n.x)*("rtl"==g?-1:1);d=m+(d.data.$.screenY-n.y);h&&(e=Math.max(a.resize_minWidth,Math.min(f,a.resize_maxWidth)));p&&(m=Math.max(a.resize_minHeight,Math.min(d,a.resize_maxHeight)));b.resize(h?e:null,m)}function k(){CKEDITOR.document.removeListener("mousemove",f);CKEDITOR.document.removeListener("mouseup",k);b.document&&(b.document.removeListener("mousemove",f),b.document.removeListener("mouseup", -k))}var a=b.config,r=b.ui.spaceId("resizer"),g=b.element?b.element.getDirection(1):"ltr";!a.resize_dir&&(a.resize_dir="vertical");void 0===a.resize_maxWidth&&(a.resize_maxWidth=3E3);void 0===a.resize_maxHeight&&(a.resize_maxHeight=3E3);void 0===a.resize_minWidth&&(a.resize_minWidth=750);void 0===a.resize_minHeight&&(a.resize_minHeight=250);if(!1!==a.resize_enabled){var l=null,n,c,h=("both"==a.resize_dir||"horizontal"==a.resize_dir)&&a.resize_minWidth!=a.resize_maxWidth,p=("both"==a.resize_dir||"vertical"== -a.resize_dir)&&a.resize_minHeight!=a.resize_maxHeight,q=CKEDITOR.tools.addFunction(function(d){l||(l=b.getResizable());c={width:l.$.offsetWidth||0,height:l.$.offsetHeight||0};n={x:d.screenX,y:d.screenY};a.resize_minWidth>c.width&&(a.resize_minWidth=c.width);a.resize_minHeight>c.height&&(a.resize_minHeight=c.height);CKEDITOR.document.on("mousemove",f);CKEDITOR.document.on("mouseup",k);b.document&&(b.document.on("mousemove",f),b.document.on("mouseup",k));d.preventDefault&&d.preventDefault()});b.on("destroy", -function(){CKEDITOR.tools.removeFunction(q)});b.on("uiSpace",function(a){if("bottom"==a.data.space){var e="";h&&!p&&(e=" cke_resizer_horizontal");!h&&p&&(e=" cke_resizer_vertical");var c='\x3cspan id\x3d"'+r+'" class\x3d"cke_resizer'+e+" cke_resizer_"+g+'" title\x3d"'+CKEDITOR.tools.htmlEncode(b.lang.common.resize)+'" onmousedown\x3d"CKEDITOR.tools.callFunction('+q+', event)"\x3e'+("ltr"==g?"◢":"◣")+"\x3c/span\x3e";"ltr"==g&&"ltr"==e?a.data.html+=c:a.data.html=c+a.data.html}},b,null,100);b.on("maximize", -function(a){b.ui.space("resizer")[a.data==CKEDITOR.TRISTATE_ON?"hide":"show"]()})}}});(function(){function q(a,e){function l(c){c=k.list[c];var d;c.equals(a.editable())||"true"==c.getAttribute("contenteditable")?(d=a.createRange(),d.selectNodeContents(c),d=d.select()):(d=a.getSelection(),d.selectElement(c));CKEDITOR.env.ie&&a.fire("selectionChange",{selection:d,path:new CKEDITOR.dom.elementPath(c)});a.focus()}function m(){n&&n.setHtml('\x3cspan class\x3d"cke_path_empty"\x3e\x26nbsp;\x3c/span\x3e');delete k.list}var p=a.ui.spaceId("path"),n,k=a._.elementsPath,q=k.idBase;e.html+='\x3cspan id\x3d"'+ -p+'_label" class\x3d"cke_voice_label"\x3e'+a.lang.elementspath.eleLabel+'\x3c/span\x3e\x3cspan id\x3d"'+p+'" class\x3d"cke_path" role\x3d"group" aria-labelledby\x3d"'+p+'_label"\x3e\x3cspan class\x3d"cke_path_empty"\x3e\x26nbsp;\x3c/span\x3e\x3c/span\x3e';a.on("uiReady",function(){var c=a.ui.space("path");c&&a.focusManager.add(c,1)});k.onClick=l;var v=CKEDITOR.tools.addFunction(l),w=CKEDITOR.tools.addFunction(function(c,d){var g=k.idBase,b;d=new CKEDITOR.dom.event(d);b="rtl"==a.lang.dir;switch(d.getKeystroke()){case b? -39:37:case 9:return(b=CKEDITOR.document.getById(g+(c+1)))||(b=CKEDITOR.document.getById(g+"0")),b.focus(),!1;case b?37:39:case CKEDITOR.SHIFT+9:return(b=CKEDITOR.document.getById(g+(c-1)))||(b=CKEDITOR.document.getById(g+(k.list.length-1))),b.focus(),!1;case 27:return a.focus(),!1;case 13:case 32:return l(c),!1}return!0});a.on("selectionChange",function(){for(var c=[],d=k.list=[],g=[],b=k.filters,e=!0,l=a.elementPath().elements,f,u=l.length;u--;){var h=l[u],r=0;f=h.data("cke-display-name")?h.data("cke-display-name"): -h.data("cke-real-element-type")?h.data("cke-real-element-type"):h.getName();(e=h.hasAttribute("contenteditable")?"true"==h.getAttribute("contenteditable"):e)||h.hasAttribute("contenteditable")||(r=1);for(var t=0;t<b.length;t++){var m=b[t](h,f);if(!1===m){r=1;break}f=m||f}r||(d.unshift(h),g.unshift(f))}d=d.length;for(b=0;b<d;b++)f=g[b],e=a.lang.elementspath.eleTitle.replace(/%1/,f),f=x.output({id:q+b,label:e,text:f,jsTitle:"javascript:void('"+f+"')",index:b,keyDownFn:w,clickFn:v}),c.unshift(f);n|| -(n=CKEDITOR.document.getById(p));g=n;g.setHtml(c.join("")+'\x3cspan class\x3d"cke_path_empty"\x3e\x26nbsp;\x3c/span\x3e');a.fire("elementsPathUpdate",{space:g})});a.on("readOnly",m);a.on("contentDomUnload",m);a.addCommand("elementsPathFocus",y.toolbarFocus);a.setKeystroke(CKEDITOR.ALT+122,"elementsPathFocus")}var y={toolbarFocus:{editorFocus:!1,readOnly:1,exec:function(a){(a=CKEDITOR.document.getById(a._.elementsPath.idBase+"0"))&&a.focus(CKEDITOR.env.ie||CKEDITOR.env.air)}}},e="";CKEDITOR.env.gecko&& -CKEDITOR.env.mac&&(e+=' onkeypress\x3d"return false;"');CKEDITOR.env.gecko&&(e+=' onblur\x3d"this.style.cssText \x3d this.style.cssText;"');var x=CKEDITOR.addTemplate("pathItem",'\x3ca id\x3d"{id}" href\x3d"{jsTitle}" tabindex\x3d"-1" class\x3d"cke_path_item" title\x3d"{label}"'+e+' hidefocus\x3d"true" onkeydown\x3d"return CKEDITOR.tools.callFunction({keyDownFn},{index}, event );" onclick\x3d"CKEDITOR.tools.callFunction({clickFn},{index}); return false;" role\x3d"button" aria-label\x3d"{label}"\x3e{text}\x3c/a\x3e'); -CKEDITOR.plugins.add("elementspath",{init:function(a){a._.elementsPath={idBase:"cke_elementspath_"+CKEDITOR.tools.getNextNumber()+"_",filters:[]};a.on("uiSpace",function(e){"bottom"==e.data.space&&q(a,e.data)})}})})();(function(){function q(b,d,a){a=b.config.forceEnterMode||a;if("wysiwyg"==b.mode){d||(d=b.activeEnterMode);var h=b.elementPath();h&&!h.isContextFor("p")&&(d=CKEDITOR.ENTER_BR,a=1);b.fire("saveSnapshot");d==CKEDITOR.ENTER_BR?t(b,d,null,a):u(b,d,null,a);b.fire("saveSnapshot")}}function v(b){b=b.getSelection().getRanges(!0);for(var d=b.length-1;0<d;d--)b[d].deleteContents();return b[0]}function y(b){var d=b.startContainer.getAscendant(function(a){return a.type==CKEDITOR.NODE_ELEMENT&&"true"==a.getAttribute("contenteditable")}, -!0);if(b.root.equals(d))return b;d=new CKEDITOR.dom.range(d);d.moveToRange(b);return d}CKEDITOR.plugins.add("enterkey",{init:function(b){b.addCommand("enter",{modes:{wysiwyg:1},editorFocus:!1,exec:function(b){q(b)}});b.addCommand("shiftEnter",{modes:{wysiwyg:1},editorFocus:!1,exec:function(b){q(b,b.activeShiftEnterMode,1)}});b.setKeystroke([[13,"enter"],[CKEDITOR.SHIFT+13,"shiftEnter"]])}});var z=CKEDITOR.dom.walker.whitespaces(),A=CKEDITOR.dom.walker.bookmark();CKEDITOR.plugins.enterkey={enterBlock:function(b, -d,a,h){if(a=a||v(b)){a=y(a);var f=a.document,k=a.checkStartOfBlock(),m=a.checkEndOfBlock(),l=b.elementPath(a.startContainer),c=l.block,n=d==CKEDITOR.ENTER_DIV?"div":"p",e;if(k&&m){if(c&&(c.is("li")||c.getParent().is("li"))){c.is("li")||(c=c.getParent());a=c.getParent();e=a.getParent();h=!c.hasPrevious();var p=!c.hasNext(),n=b.getSelection(),g=n.createBookmarks(),k=c.getDirection(1),m=c.getAttribute("class"),r=c.getAttribute("style"),q=e.getDirection(1)!=k;b=b.enterMode!=CKEDITOR.ENTER_BR||q||r||m; -if(e.is("li"))h||p?(h&&p&&a.remove(),c[p?"insertAfter":"insertBefore"](e)):c.breakParent(e);else{if(b)if(l.block.is("li")?(e=f.createElement(d==CKEDITOR.ENTER_P?"p":"div"),q&&e.setAttribute("dir",k),r&&e.setAttribute("style",r),m&&e.setAttribute("class",m),c.moveChildren(e)):e=l.block,h||p)e[h?"insertBefore":"insertAfter"](a);else c.breakParent(a),e.insertAfter(a);else if(c.appendBogus(!0),h||p)for(;f=c[h?"getFirst":"getLast"]();)f[h?"insertBefore":"insertAfter"](a);else for(c.breakParent(a);f=c.getLast();)f.insertAfter(a); -c.remove()}n.selectBookmarks(g);return}if(c&&c.getParent().is("blockquote")){c.breakParent(c.getParent());c.getPrevious().getFirst(CKEDITOR.dom.walker.invisible(1))||c.getPrevious().remove();c.getNext().getFirst(CKEDITOR.dom.walker.invisible(1))||c.getNext().remove();a.moveToElementEditStart(c);a.select();return}}else if(c&&c.is("pre")&&!m){t(b,d,a,h);return}if(k=a.splitBlock(n)){d=k.previousBlock;c=k.nextBlock;l=k.wasStartOfBlock;b=k.wasEndOfBlock;c?(g=c.getParent(),g.is("li")&&(c.breakParent(g), -c.move(c.getNext(),1))):d&&(g=d.getParent())&&g.is("li")&&(d.breakParent(g),g=d.getNext(),a.moveToElementEditStart(g),d.move(d.getPrevious()));if(l||b){if(d){if(d.is("li")||!w.test(d.getName())&&!d.is("pre"))e=d.clone()}else c&&(e=c.clone());e?h&&!e.is("li")&&e.renameNode(n):g&&g.is("li")?e=g:(e=f.createElement(n),d&&(p=d.getDirection())&&e.setAttribute("dir",p));if(f=k.elementPath)for(h=0,n=f.elements.length;h<n;h++){g=f.elements[h];if(g.equals(f.block)||g.equals(f.blockLimit))break;CKEDITOR.dtd.$removeEmpty[g.getName()]&& -(g=g.clone(),e.moveChildren(g),e.append(g))}e.appendBogus();e.getParent()||a.insertNode(e);e.is("li")&&e.removeAttribute("value");!CKEDITOR.env.ie||!l||b&&d.getChildCount()||(a.moveToElementEditStart(b?d:e),a.select());a.moveToElementEditStart(l&&!b?c:e)}else c.is("li")&&(e=a.clone(),e.selectNodeContents(c),e=new CKEDITOR.dom.walker(e),e.evaluator=function(a){return!(A(a)||z(a)||a.type==CKEDITOR.NODE_ELEMENT&&a.getName()in CKEDITOR.dtd.$inline&&!(a.getName()in CKEDITOR.dtd.$empty))},(g=e.next())&& -g.type==CKEDITOR.NODE_ELEMENT&&g.is("ul","ol")&&(CKEDITOR.env.needsBrFiller?f.createElement("br"):f.createText(" ")).insertBefore(g)),c&&a.moveToElementEditStart(c);a.select();a.scrollIntoView()}}},enterBr:function(b,d,a,h){if(a=a||v(b)){var f=a.document,k=a.checkEndOfBlock(),m=new CKEDITOR.dom.elementPath(b.getSelection().getStartElement()),l=m.block,c=l&&m.block.getName();h||"li"!=c?(!h&&k&&w.test(c)?(k=l.getDirection())?(f=f.createElement("div"),f.setAttribute("dir",k),f.insertAfter(l),a.setStart(f, -0)):(f.createElement("br").insertAfter(l),CKEDITOR.env.gecko&&f.createText("").insertAfter(l),a.setStartAt(l.getNext(),CKEDITOR.env.ie?CKEDITOR.POSITION_BEFORE_START:CKEDITOR.POSITION_AFTER_START)):(b="pre"==c&&CKEDITOR.env.ie&&8>CKEDITOR.env.version?f.createText("\r"):f.createElement("br"),a.deleteContents(),a.insertNode(b),CKEDITOR.env.needsBrFiller?(f.createText("").insertAfter(b),k&&(l||m.blockLimit).appendBogus(),b.getNext().$.nodeValue="",a.setStartAt(b.getNext(),CKEDITOR.POSITION_AFTER_START)): -a.setStartAt(b,CKEDITOR.POSITION_AFTER_END)),a.collapse(!0),a.select(),a.scrollIntoView()):u(b,d,a,h)}}};var x=CKEDITOR.plugins.enterkey,t=x.enterBr,u=x.enterBlock,w=/^h[1-6]$/})();(function(){function k(b,f){var g={},c=[],e={nbsp:" ",shy:"­",gt:"\x3e",lt:"\x3c",amp:"\x26",apos:"'",quot:'"'};b=b.replace(/\b(nbsp|shy|gt|lt|amp|apos|quot)(?:,|$)/g,function(b,a){var d=f?"\x26"+a+";":e[a];g[d]=f?e[a]:"\x26"+a+";";c.push(d);return""});if(!f&&b){b=b.split(",");var a=document.createElement("div"),d;a.innerHTML="\x26"+b.join(";\x26")+";";d=a.innerHTML;a=null;for(a=0;a<d.length;a++){var h=d.charAt(a);g[h]="\x26"+b[a]+";";c.push(h)}}g.regex=c.join(f?"|":"");return g}CKEDITOR.plugins.add("entities", -{afterInit:function(b){function f(a){return h[a]}function g(b){return"force"!=c.entities_processNumerical&&a[b]?a[b]:"\x26#"+b.charCodeAt(0)+";"}var c=b.config;if(b=(b=b.dataProcessor)&&b.htmlFilter){var e=[];!1!==c.basicEntities&&e.push("nbsp,gt,lt,amp");c.entities&&(e.length&&e.push("quot,iexcl,cent,pound,curren,yen,brvbar,sect,uml,copy,ordf,laquo,not,shy,reg,macr,deg,plusmn,sup2,sup3,acute,micro,para,middot,cedil,sup1,ordm,raquo,frac14,frac12,frac34,iquest,times,divide,fnof,bull,hellip,prime,Prime,oline,frasl,weierp,image,real,trade,alefsym,larr,uarr,rarr,darr,harr,crarr,lArr,uArr,rArr,dArr,hArr,forall,part,exist,empty,nabla,isin,notin,ni,prod,sum,minus,lowast,radic,prop,infin,ang,and,or,cap,cup,int,there4,sim,cong,asymp,ne,equiv,le,ge,sub,sup,nsub,sube,supe,oplus,otimes,perp,sdot,lceil,rceil,lfloor,rfloor,lang,rang,loz,spades,clubs,hearts,diams,circ,tilde,ensp,emsp,thinsp,zwnj,zwj,lrm,rlm,ndash,mdash,lsquo,rsquo,sbquo,ldquo,rdquo,bdquo,dagger,Dagger,permil,lsaquo,rsaquo,euro"), -c.entities_latin&&e.push("Agrave,Aacute,Acirc,Atilde,Auml,Aring,AElig,Ccedil,Egrave,Eacute,Ecirc,Euml,Igrave,Iacute,Icirc,Iuml,ETH,Ntilde,Ograve,Oacute,Ocirc,Otilde,Ouml,Oslash,Ugrave,Uacute,Ucirc,Uuml,Yacute,THORN,szlig,agrave,aacute,acirc,atilde,auml,aring,aelig,ccedil,egrave,eacute,ecirc,euml,igrave,iacute,icirc,iuml,eth,ntilde,ograve,oacute,ocirc,otilde,ouml,oslash,ugrave,uacute,ucirc,uuml,yacute,thorn,yuml,OElig,oelig,Scaron,scaron,Yuml"),c.entities_greek&&e.push("Alpha,Beta,Gamma,Delta,Epsilon,Zeta,Eta,Theta,Iota,Kappa,Lambda,Mu,Nu,Xi,Omicron,Pi,Rho,Sigma,Tau,Upsilon,Phi,Chi,Psi,Omega,alpha,beta,gamma,delta,epsilon,zeta,eta,theta,iota,kappa,lambda,mu,nu,xi,omicron,pi,rho,sigmaf,sigma,tau,upsilon,phi,chi,psi,omega,thetasym,upsih,piv"), -c.entities_additional&&e.push(c.entities_additional));var a=k(e.join(",")),d=a.regex?"["+a.regex+"]":"a^";delete a.regex;c.entities&&c.entities_processNumerical&&(d="[^ -~]|"+d);var d=new RegExp(d,"g"),h=k("nbsp,gt,lt,amp,shy",!0),l=new RegExp(h.regex,"g");b.addRules({text:function(a){return a.replace(l,f).replace(d,g)}},{applyToAll:!0,excludeNestedEditable:!0})}}})})();CKEDITOR.config.basicEntities=!0;CKEDITOR.config.entities=!0;CKEDITOR.config.entities_latin=!0;CKEDITOR.config.entities_greek=!0; -CKEDITOR.config.entities_additional="#39";CKEDITOR.plugins.add("popup"); -CKEDITOR.tools.extend(CKEDITOR.editor.prototype,{popup:function(e,a,b,d){a=a||"80%";b=b||"70%";"string"==typeof a&&1<a.length&&"%"==a.substr(a.length-1,1)&&(a=parseInt(window.screen.width*parseInt(a,10)/100,10));"string"==typeof b&&1<b.length&&"%"==b.substr(b.length-1,1)&&(b=parseInt(window.screen.height*parseInt(b,10)/100,10));640>a&&(a=640);420>b&&(b=420);var f=parseInt((window.screen.height-b)/2,10),g=parseInt((window.screen.width-a)/2,10);d=(d||"location\x3dno,menubar\x3dno,toolbar\x3dno,dependent\x3dyes,minimizable\x3dno,modal\x3dyes,alwaysRaised\x3dyes,resizable\x3dyes,scrollbars\x3dyes")+",width\x3d"+ -a+",height\x3d"+b+",top\x3d"+f+",left\x3d"+g;var c=window.open("",null,d,!0);if(!c)return!1;try{-1==navigator.userAgent.toLowerCase().indexOf(" chrome/")&&(c.moveTo(g,f),c.resizeTo(a,b)),c.focus(),c.location.href=e}catch(h){window.open(e,null,d,!0)}return!0}});(function(){function g(a,c){var d=[];if(c)for(var b in c)d.push(b+"\x3d"+encodeURIComponent(c[b]));else return a;return a+(-1!=a.indexOf("?")?"\x26":"?")+d.join("\x26")}function k(a){a+="";return a.charAt(0).toUpperCase()+a.substr(1)}function m(){var a=this.getDialog(),c=a.getParentEditor();c._.filebrowserSe=this;var d=c.config["filebrowser"+k(a.getName())+"WindowWidth"]||c.config.filebrowserWindowWidth||"80%",a=c.config["filebrowser"+k(a.getName())+"WindowHeight"]||c.config.filebrowserWindowHeight|| -"70%",b=this.filebrowser.params||{};b.CKEditor=c.name;b.CKEditorFuncNum=c._.filebrowserFn;b.langCode||(b.langCode=c.langCode);b=g(this.filebrowser.url,b);c.popup(b,d,a,c.config.filebrowserWindowFeatures||c.config.fileBrowserWindowFeatures)}function n(){var a=this.getDialog();a.getParentEditor()._.filebrowserSe=this;return a.getContentElement(this["for"][0],this["for"][1]).getInputElement().$.value&&a.getContentElement(this["for"][0],this["for"][1]).getAction()?!0:!1}function p(a,c,d){var b=d.params|| -{};b.CKEditor=a.name;b.CKEditorFuncNum=a._.filebrowserFn;b.langCode||(b.langCode=a.langCode);c.action=g(d.url,b);c.filebrowser=d}function l(a,c,d,b){if(b&&b.length)for(var e,g=b.length;g--;)if(e=b[g],"hbox"!=e.type&&"vbox"!=e.type&&"fieldset"!=e.type||l(a,c,d,e.children),e.filebrowser)if("string"==typeof e.filebrowser&&(e.filebrowser={action:"fileButton"==e.type?"QuickUpload":"Browse",target:e.filebrowser}),"Browse"==e.filebrowser.action){var f=e.filebrowser.url;void 0===f&&(f=a.config["filebrowser"+ -k(c)+"BrowseUrl"],void 0===f&&(f=a.config.filebrowserBrowseUrl));f&&(e.onClick=m,e.filebrowser.url=f,e.hidden=!1)}else if("QuickUpload"==e.filebrowser.action&&e["for"]&&(f=e.filebrowser.url,void 0===f&&(f=a.config["filebrowser"+k(c)+"UploadUrl"],void 0===f&&(f=a.config.filebrowserUploadUrl)),f)){var h=e.onClick;e.onClick=function(a){var b=a.sender;if(h&&!1===h.call(b,a))return!1;if(n.call(b,a)){a=b.getDialog().getContentElement(this["for"][0],this["for"][1]).getInputElement();if(b=new CKEDITOR.dom.element(a.$.form))(a= -b.$.elements.ckCsrfToken)?a=new CKEDITOR.dom.element(a):(a=new CKEDITOR.dom.element("input"),a.setAttributes({name:"ckCsrfToken",type:"hidden"}),b.append(a)),a.setAttribute("value",CKEDITOR.tools.getCsrfToken());return!0}return!1};e.filebrowser.url=f;e.hidden=!1;p(a,d.getContents(e["for"][0]).get(e["for"][1]),e.filebrowser)}}function h(a,c,d){if(-1!==d.indexOf(";")){d=d.split(";");for(var b=0;b<d.length;b++)if(h(a,c,d[b]))return!0;return!1}return(a=a.getContents(c).get(d).filebrowser)&&a.url}function q(a, -c){var d=this._.filebrowserSe.getDialog(),b=this._.filebrowserSe["for"],e=this._.filebrowserSe.filebrowser.onSelect;b&&d.getContentElement(b[0],b[1]).reset();if("function"!=typeof c||!1!==c.call(this._.filebrowserSe))if(!e||!1!==e.call(this._.filebrowserSe,a,c))if("string"==typeof c&&c&&alert(c),a&&(b=this._.filebrowserSe,d=b.getDialog(),b=b.filebrowser.target||null))if(b=b.split(":"),e=d.getContentElement(b[0],b[1]))e.setValue(a),d.selectPage(b[0])}CKEDITOR.plugins.add("filebrowser",{requires:"popup", -init:function(a){a._.filebrowserFn=CKEDITOR.tools.addFunction(q,a);a.on("destroy",function(){CKEDITOR.tools.removeFunction(this._.filebrowserFn)})}});CKEDITOR.on("dialogDefinition",function(a){if(a.editor.plugins.filebrowser)for(var c=a.data.definition,d,b=0;b<c.contents.length;++b)if(d=c.contents[b])l(a.editor,a.data.name,c,d.elements),d.hidden&&d.filebrowser&&(d.hidden=!h(c,d.id,d.filebrowser))})})();(function(){function k(a){var l=a.config,p=a.fire("uiSpace",{space:"top",html:""}).html,t=function(){function f(a,c,e){b.setStyle(c,w(e));b.setStyle("position",a)}function e(a){var b=k.getDocumentPosition();switch(a){case "top":f("absolute","top",b.y-q-r);break;case "pin":f("fixed","top",x);break;case "bottom":f("absolute","top",b.y+(c.height||c.bottom-c.top)+r)}m=a}var m,k,n,c,h,q,v,p=l.floatSpaceDockedOffsetX||0,r=l.floatSpaceDockedOffsetY||0,u=l.floatSpacePinnedOffsetX||0,x=l.floatSpacePinnedOffsetY|| -0;return function(d){if(k=a.editable()){var f=d&&"focus"==d.name;f&&b.show();a.fire("floatingSpaceLayout",{show:f});b.removeStyle("left");b.removeStyle("right");n=b.getClientRect();c=k.getClientRect();h=g.getViewPaneSize();q=n.height;v="pageXOffset"in g.$?g.$.pageXOffset:CKEDITOR.document.$.documentElement.scrollLeft;m?(q+r<=c.top?e("top"):q+r>h.height-c.bottom?e("pin"):e("bottom"),d=h.width/2,d=l.floatSpacePreferRight?"right":0<c.left&&c.right<h.width&&c.width>n.width?"rtl"==l.contentsLangDirection? -"right":"left":d-c.left>c.right-d?"left":"right",n.width>h.width?(d="left",f=0):(f="left"==d?0<c.left?c.left:0:c.right<h.width?h.width-c.right:0,f+n.width>h.width&&(d="left"==d?"right":"left",f=0)),b.setStyle(d,w(("pin"==m?u:p)+f+("pin"==m?0:"left"==d?v:-v)))):(m="pin",e("pin"),t(d))}}}();if(p){var k=new CKEDITOR.template('\x3cdiv id\x3d"cke_{name}" class\x3d"cke {id} cke_reset_all cke_chrome cke_editor_{name} cke_float cke_{langDir} '+CKEDITOR.env.cssClass+'" dir\x3d"{langDir}" title\x3d"'+(CKEDITOR.env.gecko? -" ":"")+'" lang\x3d"{langCode}" role\x3d"application" style\x3d"{style}"'+(a.title?' aria-labelledby\x3d"cke_{name}_arialbl"':" ")+"\x3e"+(a.title?'\x3cspan id\x3d"cke_{name}_arialbl" class\x3d"cke_voice_label"\x3e{voiceLabel}\x3c/span\x3e':" ")+'\x3cdiv class\x3d"cke_inner"\x3e\x3cdiv id\x3d"{topId}" class\x3d"cke_top" role\x3d"presentation"\x3e{content}\x3c/div\x3e\x3c/div\x3e\x3c/div\x3e'),b=CKEDITOR.document.getBody().append(CKEDITOR.dom.element.createFromHtml(k.output({content:p,id:a.id,langDir:a.lang.dir, -langCode:a.langCode,name:a.name,style:"display:none;z-index:"+(l.baseFloatZIndex-1),topId:a.ui.spaceId("top"),voiceLabel:a.title}))),u=CKEDITOR.tools.eventsBuffer(500,t),e=CKEDITOR.tools.eventsBuffer(100,t);b.unselectable();b.on("mousedown",function(a){a=a.data;a.getTarget().hasAscendant("a",1)||a.preventDefault()});a.on("focus",function(b){t(b);a.on("change",u.input);g.on("scroll",e.input);g.on("resize",e.input)});a.on("blur",function(){b.hide();a.removeListener("change",u.input);g.removeListener("scroll", -e.input);g.removeListener("resize",e.input)});a.on("destroy",function(){g.removeListener("scroll",e.input);g.removeListener("resize",e.input);b.clearCustomData();b.remove()});a.focusManager.hasFocus&&b.show();a.focusManager.add(b,1)}}var g=CKEDITOR.document.getWindow(),w=CKEDITOR.tools.cssLength;CKEDITOR.plugins.add("floatingspace",{init:function(a){a.on("loaded",function(){k(this)},null,null,20)}})})();CKEDITOR.plugins.add("listblock",{requires:"panel",onLoad:function(){var f=CKEDITOR.addTemplate("panel-list",'\x3cul role\x3d"presentation" class\x3d"cke_panel_list"\x3e{items}\x3c/ul\x3e'),g=CKEDITOR.addTemplate("panel-list-item",'\x3cli id\x3d"{id}" class\x3d"cke_panel_listItem" role\x3dpresentation\x3e\x3ca id\x3d"{id}_option" _cke_focus\x3d1 hidefocus\x3dtrue title\x3d"{title}" href\x3d"javascript:void(\'{val}\')" {onclick}\x3d"CKEDITOR.tools.callFunction({clickFn},\'{val}\'); return false;" role\x3d"option"\x3e{text}\x3c/a\x3e\x3c/li\x3e'), -h=CKEDITOR.addTemplate("panel-list-group",'\x3ch1 id\x3d"{id}" class\x3d"cke_panel_grouptitle" role\x3d"presentation" \x3e{label}\x3c/h1\x3e'),k=/\'/g;CKEDITOR.ui.panel.prototype.addListBlock=function(a,b){return this.addBlock(a,new CKEDITOR.ui.listBlock(this.getHolderElement(),b))};CKEDITOR.ui.listBlock=CKEDITOR.tools.createClass({base:CKEDITOR.ui.panel.block,$:function(a,b){b=b||{};var c=b.attributes||(b.attributes={});(this.multiSelect=!!b.multiSelect)&&(c["aria-multiselectable"]=!0);!c.role&& -(c.role="listbox");this.base.apply(this,arguments);this.element.setAttribute("role",c.role);c=this.keys;c[40]="next";c[9]="next";c[38]="prev";c[CKEDITOR.SHIFT+9]="prev";c[32]=CKEDITOR.env.ie?"mouseup":"click";CKEDITOR.env.ie&&(c[13]="mouseup");this._.pendingHtml=[];this._.pendingList=[];this._.items={};this._.groups={}},_:{close:function(){if(this._.started){var a=f.output({items:this._.pendingList.join("")});this._.pendingList=[];this._.pendingHtml.push(a);delete this._.started}},getClick:function(){this._.click|| -(this._.click=CKEDITOR.tools.addFunction(function(a){var b=this.toggle(a);if(this.onClick)this.onClick(a,b)},this));return this._.click}},proto:{add:function(a,b,c){var d=CKEDITOR.tools.getNextId();this._.started||(this._.started=1,this._.size=this._.size||0);this._.items[a]=d;var e;e=CKEDITOR.tools.htmlEncodeAttr(a).replace(k,"\\'");a={id:d,val:e,onclick:CKEDITOR.env.ie?'onclick\x3d"return false;" onmouseup':"onclick",clickFn:this._.getClick(),title:CKEDITOR.tools.htmlEncodeAttr(c||a),text:b||a}; -this._.pendingList.push(g.output(a))},startGroup:function(a){this._.close();var b=CKEDITOR.tools.getNextId();this._.groups[a]=b;this._.pendingHtml.push(h.output({id:b,label:a}))},commit:function(){this._.close();this.element.appendHtml(this._.pendingHtml.join(""));delete this._.size;this._.pendingHtml=[]},toggle:function(a){var b=this.isMarked(a);b?this.unmark(a):this.mark(a);return!b},hideGroup:function(a){var b=(a=this.element.getDocument().getById(this._.groups[a]))&&a.getNext();a&&(a.setStyle("display", -"none"),b&&"ul"==b.getName()&&b.setStyle("display","none"))},hideItem:function(a){this.element.getDocument().getById(this._.items[a]).setStyle("display","none")},showAll:function(){var a=this._.items,b=this._.groups,c=this.element.getDocument(),d;for(d in a)c.getById(a[d]).setStyle("display","");for(var e in b)a=c.getById(b[e]),d=a.getNext(),a.setStyle("display",""),d&&"ul"==d.getName()&&d.setStyle("display","")},mark:function(a){this.multiSelect||this.unmarkAll();a=this._.items[a];var b=this.element.getDocument().getById(a); -b.addClass("cke_selected");this.element.getDocument().getById(a+"_option").setAttribute("aria-selected",!0);this.onMark&&this.onMark(b)},markFirstDisplayed:function(){var a=this;this._.markFirstDisplayed(function(){a.multiSelect||a.unmarkAll()})},unmark:function(a){var b=this.element.getDocument();a=this._.items[a];var c=b.getById(a);c.removeClass("cke_selected");b.getById(a+"_option").removeAttribute("aria-selected");this.onUnmark&&this.onUnmark(c)},unmarkAll:function(){var a=this._.items,b=this.element.getDocument(), -c;for(c in a){var d=a[c];b.getById(d).removeClass("cke_selected");b.getById(d+"_option").removeAttribute("aria-selected")}this.onUnmark&&this.onUnmark()},isMarked:function(a){return this.element.getDocument().getById(this._.items[a]).hasClass("cke_selected")},focus:function(a){this._.focusIndex=-1;var b=this.element.getElementsByTag("a"),c,d=-1;if(a)for(c=this.element.getDocument().getById(this._.items[a]).getFirst();a=b.getItem(++d);){if(a.equals(c)){this._.focusIndex=d;break}}else this.element.focus(); -c&&setTimeout(function(){c.focus()},0)}}})}});CKEDITOR.plugins.add("richcombo",{requires:"floatpanel,listblock,button",beforeInit:function(c){c.ui.addHandler(CKEDITOR.UI_RICHCOMBO,CKEDITOR.ui.richCombo.handler)}}); -(function(){var c='\x3cspan id\x3d"{id}" class\x3d"cke_combo cke_combo__{name} {cls}" role\x3d"presentation"\x3e\x3cspan id\x3d"{id}_label" class\x3d"cke_combo_label"\x3e{label}\x3c/span\x3e\x3ca class\x3d"cke_combo_button" title\x3d"{title}" tabindex\x3d"-1"'+(CKEDITOR.env.gecko&&!CKEDITOR.env.hc?"":" href\x3d\"javascript:void('{titleJs}')\"")+' hidefocus\x3d"true" role\x3d"button" aria-labelledby\x3d"{id}_label" aria-haspopup\x3d"true"';CKEDITOR.env.gecko&&CKEDITOR.env.mac&&(c+=' onkeypress\x3d"return false;"'); -CKEDITOR.env.gecko&&(c+=' onblur\x3d"this.style.cssText \x3d this.style.cssText;"');var c=c+(' onkeydown\x3d"return CKEDITOR.tools.callFunction({keydownFn},event,this);" onfocus\x3d"return CKEDITOR.tools.callFunction({focusFn},event);" '+(CKEDITOR.env.ie?'onclick\x3d"return false;" onmouseup':"onclick")+'\x3d"CKEDITOR.tools.callFunction({clickFn},this);return false;"\x3e\x3cspan id\x3d"{id}_text" class\x3d"cke_combo_text cke_combo_inlinelabel"\x3e{label}\x3c/span\x3e\x3cspan class\x3d"cke_combo_open"\x3e\x3cspan class\x3d"cke_combo_arrow"\x3e'+ -(CKEDITOR.env.hc?"\x26#9660;":CKEDITOR.env.air?"\x26nbsp;":"")+"\x3c/span\x3e\x3c/span\x3e\x3c/a\x3e\x3c/span\x3e"),k=CKEDITOR.addTemplate("combo",c);CKEDITOR.UI_RICHCOMBO="richcombo";CKEDITOR.ui.richCombo=CKEDITOR.tools.createClass({$:function(a){CKEDITOR.tools.extend(this,a,{canGroup:!1,title:a.label,modes:{wysiwyg:1},editorFocus:1});a=this.panel||{};delete this.panel;this.id=CKEDITOR.tools.getNextNumber();this.document=a.parent&&a.parent.getDocument()||CKEDITOR.document;a.className="cke_combopanel"; -a.block={multiSelect:a.multiSelect,attributes:a.attributes};a.toolbarRelated=!0;this._={panelDefinition:a,items:{}}},proto:{renderHtml:function(a){var b=[];this.render(a,b);return b.join("")},render:function(a,b){function f(){if(this.getState()!=CKEDITOR.TRISTATE_ON){var b=this.modes[a.mode]?CKEDITOR.TRISTATE_OFF:CKEDITOR.TRISTATE_DISABLED;a.readOnly&&!this.readOnly&&(b=CKEDITOR.TRISTATE_DISABLED);this.setState(b);this.setValue("");b!=CKEDITOR.TRISTATE_DISABLED&&this.refresh&&this.refresh()}}var c= -CKEDITOR.env,h="cke_"+this.id,e=CKEDITOR.tools.addFunction(function(b){l&&(a.unlockSelection(1),l=0);g.execute(b)},this),d=this,g={id:h,combo:this,focus:function(){CKEDITOR.document.getById(h).getChild(1).focus()},execute:function(b){var c=d._;if(c.state!=CKEDITOR.TRISTATE_DISABLED)if(d.createPanel(a),c.on)c.panel.hide();else{d.commit();var f=d.getValue();f?c.list.mark(f):c.list.unmarkAll();c.panel.showBlock(d.id,new CKEDITOR.dom.element(b),4)}},clickFn:e};a.on("activeFilterChange",f,this);a.on("mode", -f,this);a.on("selectionChange",f,this);!this.readOnly&&a.on("readOnly",f,this);var m=CKEDITOR.tools.addFunction(function(a,b){a=new CKEDITOR.dom.event(a);var d=a.getKeystroke();switch(d){case 13:case 32:case 40:CKEDITOR.tools.callFunction(e,b);break;default:g.onkey(g,d)}a.preventDefault()}),n=CKEDITOR.tools.addFunction(function(){g.onfocus&&g.onfocus()}),l=0;g.keyDownFn=m;c={id:h,name:this.name||this.command,label:this.label,title:this.title,cls:this.className||"",titleJs:c.gecko&&!c.hc?"":(this.title|| -"").replace("'",""),keydownFn:m,focusFn:n,clickFn:e};k.output(c,b);if(this.onRender)this.onRender();return g},createPanel:function(a){if(!this._.panel){var b=this._.panelDefinition,c=this._.panelDefinition.block,k=b.parent||CKEDITOR.document.getBody(),h="cke_combopanel__"+this.name,e=new CKEDITOR.ui.floatPanel(a,k,b),b=e.addListBlock(this.id,c),d=this;e.onShow=function(){this.element.addClass(h);d.setState(CKEDITOR.TRISTATE_ON);d._.on=1;d.editorFocus&&!a.focusManager.hasFocus&&a.focus();if(d.onOpen)d.onOpen()}; -e.onHide=function(b){this.element.removeClass(h);d.setState(d.modes&&d.modes[a.mode]?CKEDITOR.TRISTATE_OFF:CKEDITOR.TRISTATE_DISABLED);d._.on=0;if(!b&&d.onClose)d.onClose()};e.onEscape=function(){e.hide(1)};b.onClick=function(a,b){d.onClick&&d.onClick.call(d,a,b);e.hide()};this._.panel=e;this._.list=b;e.getBlock(this.id).onHide=function(){d._.on=0;d.setState(CKEDITOR.TRISTATE_OFF)};this.init&&this.init()}},setValue:function(a,b){this._.value=a;var c=this.document.getById("cke_"+this.id+"_text");c&& -(a||b?c.removeClass("cke_combo_inlinelabel"):(b=this.label,c.addClass("cke_combo_inlinelabel")),c.setText("undefined"!=typeof b?b:a))},getValue:function(){return this._.value||""},unmarkAll:function(){this._.list.unmarkAll()},mark:function(a){this._.list.mark(a)},hideItem:function(a){this._.list.hideItem(a)},hideGroup:function(a){this._.list.hideGroup(a)},showAll:function(){this._.list.showAll()},add:function(a,b,c){this._.items[a]=c||a;this._.list.add(a,b,c)},startGroup:function(a){this._.list.startGroup(a)}, -commit:function(){this._.committed||(this._.list.commit(),this._.committed=1,CKEDITOR.ui.fire("ready",this));this._.committed=1},setState:function(a){if(this._.state!=a){var b=this.document.getById("cke_"+this.id);b.setState(a,"cke_combo");a==CKEDITOR.TRISTATE_DISABLED?b.setAttribute("aria-disabled",!0):b.removeAttribute("aria-disabled");this._.state=a}},getState:function(){return this._.state},enable:function(){this._.state==CKEDITOR.TRISTATE_DISABLED&&this.setState(this._.lastState)},disable:function(){this._.state!= -CKEDITOR.TRISTATE_DISABLED&&(this._.lastState=this._.state,this.setState(CKEDITOR.TRISTATE_DISABLED))}},statics:{handler:{create:function(a){return new CKEDITOR.ui.richCombo(a)}}}});CKEDITOR.ui.prototype.addRichCombo=function(a,b){this.add(a,CKEDITOR.UI_RICHCOMBO,b)}})();CKEDITOR.plugins.add("format",{requires:"richcombo",init:function(a){if(!a.blockless){for(var f=a.config,c=a.lang.format,l=f.format_tags.split(";"),d={},m=0,n=[],g=0;g<l.length;g++){var h=l[g],k=new CKEDITOR.style(f["format_"+h]);if(!a.filter.customConfig||a.filter.check(k))m++,d[h]=k,d[h]._.enterMode=a.config.enterMode,n.push(k)}0!==m&&a.ui.addRichCombo("Format",{label:c.label,title:c.panelTitle,toolbar:"styles,20",allowedContent:n,panel:{css:[CKEDITOR.skin.getPath("editor")].concat(f.contentsCss), -multiSelect:!1,attributes:{"aria-label":c.panelTitle}},init:function(){this.startGroup(c.panelTitle);for(var a in d){var e=c["tag_"+a];this.add(a,d[a].buildPreview(e),e)}},onClick:function(b){a.focus();a.fire("saveSnapshot");b=d[b];var e=a.elementPath();a[b.checkActive(e,a)?"removeStyle":"applyStyle"](b);setTimeout(function(){a.fire("saveSnapshot")},0)},onRender:function(){a.on("selectionChange",function(b){var e=this.getValue();b=b.data.path;this.refresh();for(var c in d)if(d[c].checkActive(b,a)){c!= -e&&this.setValue(c,a.lang.format["tag_"+c]);return}this.setValue("")},this)},onOpen:function(){this.showAll();for(var b in d)a.activeFilter.check(d[b])||this.hideItem(b)},refresh:function(){var b=a.elementPath();if(b){if(b.isContextFor("p"))for(var c in d)if(a.activeFilter.check(d[c]))return;this.setState(CKEDITOR.TRISTATE_DISABLED)}}})}}});CKEDITOR.config.format_tags="p;h1;h2;h3;h4;h5;h6;pre;address;div";CKEDITOR.config.format_p={element:"p"};CKEDITOR.config.format_div={element:"div"}; -CKEDITOR.config.format_pre={element:"pre"};CKEDITOR.config.format_address={element:"address"};CKEDITOR.config.format_h1={element:"h1"};CKEDITOR.config.format_h2={element:"h2"};CKEDITOR.config.format_h3={element:"h3"};CKEDITOR.config.format_h4={element:"h4"};CKEDITOR.config.format_h5={element:"h5"};CKEDITOR.config.format_h6={element:"h6"};(function(){var b={canUndo:!1,exec:function(a){var b=a.document.createElement("hr");a.insertElement(b)},allowedContent:"hr",requiredContent:"hr"};CKEDITOR.plugins.add("horizontalrule",{init:function(a){a.blockless||(a.addCommand("horizontalrule",b),a.ui.addButton&&a.ui.addButton("HorizontalRule",{label:a.lang.horizontalrule.toolbar,command:"horizontalrule",toolbar:"insert,40"}))}})})();CKEDITOR.plugins.add("htmlwriter",{init:function(b){var a=new CKEDITOR.htmlWriter;a.forceSimpleAmpersand=b.config.forceSimpleAmpersand;a.indentationChars=b.config.dataIndentationChars||"\t";b.dataProcessor.writer=a}}); -CKEDITOR.htmlWriter=CKEDITOR.tools.createClass({base:CKEDITOR.htmlParser.basicWriter,$:function(){this.base();this.indentationChars="\t";this.selfClosingEnd=" /\x3e";this.lineBreakChars="\n";this.sortAttributes=1;this._.indent=0;this._.indentation="";this._.inPre=0;this._.rules={};var b=CKEDITOR.dtd,a;for(a in CKEDITOR.tools.extend({},b.$nonBodyContent,b.$block,b.$listItem,b.$tableContent))this.setRules(a,{indent:!b[a]["#"],breakBeforeOpen:1,breakBeforeClose:!b[a]["#"],breakAfterClose:1,needsSpace:a in -b.$block&&!(a in{li:1,dt:1,dd:1})});this.setRules("br",{breakAfterOpen:1});this.setRules("title",{indent:0,breakAfterOpen:0});this.setRules("style",{indent:0,breakBeforeClose:1});this.setRules("pre",{breakAfterOpen:1,indent:0})},proto:{openTag:function(b){var a=this._.rules[b];this._.afterCloser&&a&&a.needsSpace&&this._.needsSpace&&this._.output.push("\n");this._.indent?this.indentation():a&&a.breakBeforeOpen&&(this.lineBreak(),this.indentation());this._.output.push("\x3c",b);this._.afterCloser=0}, -openTagClose:function(b,a){var c=this._.rules[b];a?(this._.output.push(this.selfClosingEnd),c&&c.breakAfterClose&&(this._.needsSpace=c.needsSpace)):(this._.output.push("\x3e"),c&&c.indent&&(this._.indentation+=this.indentationChars));c&&c.breakAfterOpen&&this.lineBreak();"pre"==b&&(this._.inPre=1)},attribute:function(b,a){"string"==typeof a&&(this.forceSimpleAmpersand&&(a=a.replace(/&amp;/g,"\x26")),a=CKEDITOR.tools.htmlEncodeAttr(a));this._.output.push(" ",b,'\x3d"',a,'"')},closeTag:function(b){var a= -this._.rules[b];a&&a.indent&&(this._.indentation=this._.indentation.substr(this.indentationChars.length));this._.indent?this.indentation():a&&a.breakBeforeClose&&(this.lineBreak(),this.indentation());this._.output.push("\x3c/",b,"\x3e");"pre"==b&&(this._.inPre=0);a&&a.breakAfterClose&&(this.lineBreak(),this._.needsSpace=a.needsSpace);this._.afterCloser=1},text:function(b){this._.indent&&(this.indentation(),!this._.inPre&&(b=CKEDITOR.tools.ltrim(b)));this._.output.push(b)},comment:function(b){this._.indent&& -this.indentation();this._.output.push("\x3c!--",b,"--\x3e")},lineBreak:function(){!this._.inPre&&0<this._.output.length&&this._.output.push(this.lineBreakChars);this._.indent=1},indentation:function(){!this._.inPre&&this._.indentation&&this._.output.push(this._.indentation);this._.indent=0},reset:function(){this._.output=[];this._.indent=0;this._.indentation="";this._.afterCloser=0;this._.inPre=0;this._.needsSpace=0},setRules:function(b,a){var c=this._.rules[b];c?CKEDITOR.tools.extend(c,a,!0):this._.rules[b]= -a}}});(function(){function m(a){function f(a){var b=!1;g.attachListener(g,"keydown",function(){var d=c.getBody().getElementsByTag(a);if(!b){for(var e=0;e<d.count();e++)d.getItem(e).setCustomData("retain",!0);b=!0}},null,null,1);g.attachListener(g,"keyup",function(){var d=c.getElementsByTag(a);b&&(1!=d.count()||d.getItem(0).getCustomData("retain")||d.getItem(0).hasAttribute("data-cke-temp")||d.getItem(0).remove(1),b=!1)})}var b=this.editor,c=a.document,d=c.body,e=c.getElementById("cke_actscrpt");e&&e.parentNode.removeChild(e); -(e=c.getElementById("cke_shimscrpt"))&&e.parentNode.removeChild(e);(e=c.getElementById("cke_basetagscrpt"))&&e.parentNode.removeChild(e);d.contentEditable=!0;CKEDITOR.env.ie&&(d.hideFocus=!0,d.disabled=!0,d.removeAttribute("disabled"));delete this._.isLoadingData;this.$=d;c=new CKEDITOR.dom.document(c);this.setup();this.fixInitialSelection();var g=this;CKEDITOR.env.ie&&!CKEDITOR.env.edge&&c.getDocumentElement().addClass(c.$.compatMode);CKEDITOR.env.ie&&!CKEDITOR.env.edge&&b.enterMode!=CKEDITOR.ENTER_P? -f("p"):CKEDITOR.env.edge&&b.enterMode!=CKEDITOR.ENTER_DIV&&f("div");if(CKEDITOR.env.webkit||CKEDITOR.env.ie&&10<CKEDITOR.env.version)c.getDocumentElement().on("mousedown",function(a){a.data.getTarget().is("html")&&setTimeout(function(){b.editable().focus()})});n(b);try{b.document.$.execCommand("2D-position",!1,!0)}catch(h){}(CKEDITOR.env.gecko||CKEDITOR.env.ie&&"CSS1Compat"==b.document.$.compatMode)&&this.attachListener(this,"keydown",function(a){var c=a.data.getKeystroke();if(33==c||34==c)if(CKEDITOR.env.ie)setTimeout(function(){b.getSelection().scrollIntoView()}, -0);else if(b.window.$.innerHeight>this.$.offsetHeight){var d=b.createRange();d[33==c?"moveToElementEditStart":"moveToElementEditEnd"](this);d.select();a.data.preventDefault()}});CKEDITOR.env.ie&&this.attachListener(c,"blur",function(){try{c.$.selection.empty()}catch(a){}});CKEDITOR.env.iOS&&this.attachListener(c,"touchend",function(){a.focus()});d=b.document.getElementsByTag("title").getItem(0);d.data("cke-title",d.getText());CKEDITOR.env.ie&&(b.document.$.title=this._.docTitle);CKEDITOR.tools.setTimeout(function(){"unloaded"== -this.status&&(this.status="ready");b.fire("contentDom");this._.isPendingFocus&&(b.focus(),this._.isPendingFocus=!1);setTimeout(function(){b.fire("dataReady")},0)},0,this)}function n(a){function f(){var c;a.editable().attachListener(a,"selectionChange",function(){var d=a.getSelection().getSelectedElement();d&&(c&&(c.detachEvent("onresizestart",b),c=null),d.$.attachEvent("onresizestart",b),c=d.$)})}function b(a){a.returnValue=!1}if(CKEDITOR.env.gecko)try{var c=a.document.$;c.execCommand("enableObjectResizing", -!1,!a.config.disableObjectResizing);c.execCommand("enableInlineTableEditing",!1,!a.config.disableNativeTableHandles)}catch(d){}else CKEDITOR.env.ie&&11>CKEDITOR.env.version&&a.config.disableObjectResizing&&f(a)}function p(){var a=[];if(8<=CKEDITOR.document.$.documentMode){a.push("html.CSS1Compat [contenteditable\x3dfalse]{min-height:0 !important}");var f=[],b;for(b in CKEDITOR.dtd.$removeEmpty)f.push("html.CSS1Compat "+b+"[contenteditable\x3dfalse]");a.push(f.join(",")+"{display:inline-block}")}else CKEDITOR.env.gecko&& -(a.push("html{height:100% !important}"),a.push("img:-moz-broken{-moz-force-broken-image-icon:1;min-width:24px;min-height:24px}"));a.push("html{cursor:text;*cursor:auto}");a.push("img,input,textarea{cursor:default}");return a.join("\n")}var l;CKEDITOR.plugins.add("wysiwygarea",{init:function(a){a.config.fullPage&&a.addFeature({allowedContent:"html head title; style [media,type]; body (*)[id]; meta link [*]",requiredContent:"body"});a.addMode("wysiwyg",function(f){function b(b){b&&b.removeListener(); -a.editable(new l(a,d.$.contentWindow.document.body));a.setData(a.getData(1),f)}var c="document.open();"+(CKEDITOR.env.ie?"("+CKEDITOR.tools.fixDomain+")();":"")+"document.close();",c=CKEDITOR.env.air?"javascript:void(0)":CKEDITOR.env.ie&&!CKEDITOR.env.edge?"javascript:void(function(){"+encodeURIComponent(c)+"}())":"",d=CKEDITOR.dom.element.createFromHtml('\x3ciframe src\x3d"'+c+'" frameBorder\x3d"0"\x3e\x3c/iframe\x3e');d.setStyles({width:"100%",height:"100%"});d.addClass("cke_wysiwyg_frame").addClass("cke_reset"); -c=a.ui.space("contents");c.append(d);var e=CKEDITOR.env.ie&&!CKEDITOR.env.edge||CKEDITOR.env.gecko;if(e)d.on("load",b);var g=a.title,h=a.fire("ariaEditorHelpLabel",{}).label;g&&(CKEDITOR.env.ie&&h&&(g+=", "+h),d.setAttribute("title",g));if(h){var g=CKEDITOR.tools.getNextId(),k=CKEDITOR.dom.element.createFromHtml('\x3cspan id\x3d"'+g+'" class\x3d"cke_voice_label"\x3e'+h+"\x3c/span\x3e");c.append(k,1);d.setAttribute("aria-describedby",g)}a.on("beforeModeUnload",function(a){a.removeListener();k&&k.remove()}); -d.setAttributes({tabIndex:a.tabIndex,allowTransparency:"true"});!e&&b();a.fire("ariaWidget",d)})}});CKEDITOR.editor.prototype.addContentsCss=function(a){var f=this.config,b=f.contentsCss;CKEDITOR.tools.isArray(b)||(f.contentsCss=b?[b]:[]);f.contentsCss.push(a)};l=CKEDITOR.tools.createClass({$:function(){this.base.apply(this,arguments);this._.frameLoadedHandler=CKEDITOR.tools.addFunction(function(a){CKEDITOR.tools.setTimeout(m,0,this,a)},this);this._.docTitle=this.getWindow().getFrame().getAttribute("title")}, -base:CKEDITOR.editable,proto:{setData:function(a,f){var b=this.editor;if(f)this.setHtml(a),this.fixInitialSelection(),b.fire("dataReady");else{this._.isLoadingData=!0;b._.dataStore={id:1};var c=b.config,d=c.fullPage,e=c.docType,g=CKEDITOR.tools.buildStyleHtml(p()).replace(/<style>/,'\x3cstyle data-cke-temp\x3d"1"\x3e');d||(g+=CKEDITOR.tools.buildStyleHtml(b.config.contentsCss));var h=c.baseHref?'\x3cbase href\x3d"'+c.baseHref+'" data-cke-temp\x3d"1" /\x3e':"";d&&(a=a.replace(/<!DOCTYPE[^>]*>/i,function(a){b.docType= -e=a;return""}).replace(/<\?xml\s[^\?]*\?>/i,function(a){b.xmlDeclaration=a;return""}));a=b.dataProcessor.toHtml(a);d?(/<body[\s|>]/.test(a)||(a="\x3cbody\x3e"+a),/<html[\s|>]/.test(a)||(a="\x3chtml\x3e"+a+"\x3c/html\x3e"),/<head[\s|>]/.test(a)?/<title[\s|>]/.test(a)||(a=a.replace(/<head[^>]*>/,"$\x26\x3ctitle\x3e\x3c/title\x3e")):a=a.replace(/<html[^>]*>/,"$\x26\x3chead\x3e\x3ctitle\x3e\x3c/title\x3e\x3c/head\x3e"),h&&(a=a.replace(/<head[^>]*?>/,"$\x26"+h)),a=a.replace(/<\/head\s*>/,g+"$\x26"),a= -e+a):a=c.docType+'\x3chtml dir\x3d"'+c.contentsLangDirection+'" lang\x3d"'+(c.contentsLanguage||b.langCode)+'"\x3e\x3chead\x3e\x3ctitle\x3e'+this._.docTitle+"\x3c/title\x3e"+h+g+"\x3c/head\x3e\x3cbody"+(c.bodyId?' id\x3d"'+c.bodyId+'"':"")+(c.bodyClass?' class\x3d"'+c.bodyClass+'"':"")+"\x3e"+a+"\x3c/body\x3e\x3c/html\x3e";CKEDITOR.env.gecko&&(a=a.replace(/<body/,'\x3cbody contenteditable\x3d"true" '),2E4>CKEDITOR.env.version&&(a=a.replace(/<body[^>]*>/,"$\x26\x3c!-- cke-content-start --\x3e"))); -c='\x3cscript id\x3d"cke_actscrpt" type\x3d"text/javascript"'+(CKEDITOR.env.ie?' defer\x3d"defer" ':"")+"\x3evar wasLoaded\x3d0;function onload(){if(!wasLoaded)window.parent.CKEDITOR.tools.callFunction("+this._.frameLoadedHandler+",window);wasLoaded\x3d1;}"+(CKEDITOR.env.ie?"onload();":'document.addEventListener("DOMContentLoaded", onload, false );')+"\x3c/script\x3e";CKEDITOR.env.ie&&9>CKEDITOR.env.version&&(c+='\x3cscript id\x3d"cke_shimscrpt"\x3ewindow.parent.CKEDITOR.tools.enableHtml5Elements(document)\x3c/script\x3e'); -h&&CKEDITOR.env.ie&&10>CKEDITOR.env.version&&(c+='\x3cscript id\x3d"cke_basetagscrpt"\x3evar baseTag \x3d document.querySelector( "base" );baseTag.href \x3d baseTag.href;\x3c/script\x3e');a=a.replace(/(?=\s*<\/(:?head)>)/,c);this.clearCustomData();this.clearListeners();b.fire("contentDomUnload");var k=this.getDocument();try{k.write(a)}catch(l){setTimeout(function(){k.write(a)},0)}}},getData:function(a){if(a)return this.getHtml();a=this.editor;var f=a.config,b=f.fullPage,c=b&&a.docType,d=b&&a.xmlDeclaration, -e=this.getDocument(),b=b?e.getDocumentElement().getOuterHtml():e.getBody().getHtml();CKEDITOR.env.gecko&&f.enterMode!=CKEDITOR.ENTER_BR&&(b=b.replace(/<br>(?=\s*(:?$|<\/body>))/,""));b=a.dataProcessor.toDataFormat(b);d&&(b=d+"\n"+b);c&&(b=c+"\n"+b);return b},focus:function(){this._.isLoadingData?this._.isPendingFocus=!0:l.baseProto.focus.call(this)},detach:function(){var a=this.editor,f=a.document,b;try{b=a.window.getFrame()}catch(c){}l.baseProto.detach.call(this);this.clearCustomData();f.getDocumentElement().clearCustomData(); -CKEDITOR.tools.removeFunction(this._.frameLoadedHandler);b&&b.getParent()?(b.clearCustomData(),(a=b.removeCustomData("onResize"))&&a.removeListener(),b.remove()):CKEDITOR.warn("editor-destroy-iframe")}}})})();CKEDITOR.config.disableObjectResizing=!1;CKEDITOR.config.disableNativeTableHandles=!0;CKEDITOR.config.disableNativeSpellChecker=!0;(function(){function e(b,a){a||(a=b.getSelection().getSelectedElement());if(a&&a.is("img")&&!a.data("cke-realelement")&&!a.isReadOnly())return a}function f(b){var a=b.getStyle("float");if("inherit"==a||"none"==a)a=0;a||(a=b.getAttribute("align"));return a}CKEDITOR.plugins.add("image",{requires:"dialog",init:function(b){if(!b.plugins.image2){CKEDITOR.dialog.add("image",this.path+"dialogs/image.js");var a="img[alt,!src]{border-style,border-width,float,height,margin,margin-bottom,margin-left,margin-right,margin-top,width}"; -CKEDITOR.dialog.isTabEnabled(b,"image","advanced")&&(a="img[alt,dir,id,lang,longdesc,!src,title]{*}(*)");b.addCommand("image",new CKEDITOR.dialogCommand("image",{allowedContent:a,requiredContent:"img[alt,src]",contentTransformations:[["img{width}: sizeToStyle","img[width]: sizeToAttribute"],["img{float}: alignmentToStyle","img[align]: alignmentToAttribute"]]}));b.ui.addButton&&b.ui.addButton("Image",{label:b.lang.common.image,command:"image",toolbar:"insert,10"});b.on("doubleclick",function(b){var a= -b.data.element;!a.is("img")||a.data("cke-realelement")||a.isReadOnly()||(b.data.dialog="image")});b.addMenuItems&&b.addMenuItems({image:{label:b.lang.image.menu,command:"image",group:"image"}});b.contextMenu&&b.contextMenu.addListener(function(a){if(e(b,a))return{image:CKEDITOR.TRISTATE_OFF}})}},afterInit:function(b){function a(a){var d=b.getCommand("justify"+a);if(d){if("left"==a||"right"==a)d.on("exec",function(d){var c=e(b),g;c&&(g=f(c),g==a?(c.removeStyle("float"),a==f(c)&&c.removeAttribute("align")): -c.setStyle("float",a),d.cancel())});d.on("refresh",function(d){var c=e(b);c&&(c=f(c),this.setState(c==a?CKEDITOR.TRISTATE_ON:"right"==a||"left"==a?CKEDITOR.TRISTATE_OFF:CKEDITOR.TRISTATE_DISABLED),d.cancel())})}}b.plugins.image2||(a("left"),a("right"),a("center"),a("block"))}})})();CKEDITOR.config.image_removeLinkByEmptyURL=!0;(function(){function m(a,b){var e,f;b.on("refresh",function(a){var b=[k],c;for(c in a.data.states)b.push(a.data.states[c]);this.setState(CKEDITOR.tools.search(b,p)?p:k)},b,null,100);b.on("exec",function(b){e=a.getSelection();f=e.createBookmarks(1);b.data||(b.data={});b.data.done=!1},b,null,0);b.on("exec",function(){a.forceNextSelectionCheck();e.selectBookmarks(f)},b,null,100)}var k=CKEDITOR.TRISTATE_DISABLED,p=CKEDITOR.TRISTATE_OFF;CKEDITOR.plugins.add("indent",{init:function(a){var b=CKEDITOR.plugins.indent.genericDefinition; -m(a,a.addCommand("indent",new b(!0)));m(a,a.addCommand("outdent",new b));a.ui.addButton&&(a.ui.addButton("Indent",{label:a.lang.indent.indent,command:"indent",directional:!0,toolbar:"indent,20"}),a.ui.addButton("Outdent",{label:a.lang.indent.outdent,command:"outdent",directional:!0,toolbar:"indent,10"}));a.on("dirChanged",function(b){var f=a.createRange(),l=b.data.node;f.setStartBefore(l);f.setEndAfter(l);for(var n=new CKEDITOR.dom.walker(f),c;c=n.next();)if(c.type==CKEDITOR.NODE_ELEMENT)if(!c.equals(l)&& -c.getDirection())f.setStartAfter(c),n=new CKEDITOR.dom.walker(f);else{var d=a.config.indentClasses;if(d)for(var g="ltr"==b.data.dir?["_rtl",""]:["","_rtl"],h=0;h<d.length;h++)c.hasClass(d[h]+g[0])&&(c.removeClass(d[h]+g[0]),c.addClass(d[h]+g[1]));d=c.getStyle("margin-right");g=c.getStyle("margin-left");d?c.setStyle("margin-left",d):c.removeStyle("margin-left");g?c.setStyle("margin-right",g):c.removeStyle("margin-right")}})}});CKEDITOR.plugins.indent={genericDefinition:function(a){this.isIndent=!!a; -this.startDisabled=!this.isIndent},specificDefinition:function(a,b,e){this.name=b;this.editor=a;this.jobs={};this.enterBr=a.config.enterMode==CKEDITOR.ENTER_BR;this.isIndent=!!e;this.relatedGlobal=e?"indent":"outdent";this.indentKey=e?9:CKEDITOR.SHIFT+9;this.database={}},registerCommands:function(a,b){a.on("pluginsLoaded",function(){for(var a in b)(function(a,b){var e=a.getCommand(b.relatedGlobal),c;for(c in b.jobs)e.on("exec",function(d){d.data.done||(a.fire("lockSnapshot"),b.execJob(a,c)&&(d.data.done= -!0),a.fire("unlockSnapshot"),CKEDITOR.dom.element.clearAllMarkers(b.database))},this,null,c),e.on("refresh",function(d){d.data.states||(d.data.states={});d.data.states[b.name+"@"+c]=b.refreshJob(a,c,d.data.path)},this,null,c);a.addFeature(b)})(this,b[a])})}};CKEDITOR.plugins.indent.genericDefinition.prototype={context:"p",exec:function(){}};CKEDITOR.plugins.indent.specificDefinition.prototype={execJob:function(a,b){var e=this.jobs[b];if(e.state!=k)return e.exec.call(this,a)},refreshJob:function(a, -b,e){b=this.jobs[b];a.activeFilter.checkFeature(this)?b.state=b.refresh.call(this,a,e):b.state=k;return b.state},getContext:function(a){return a.contains(this.context)}}})();(function(){function w(d){function f(b){for(var e=c.startContainer,a=c.endContainer;e&&!e.getParent().equals(b);)e=e.getParent();for(;a&&!a.getParent().equals(b);)a=a.getParent();if(!e||!a)return!1;for(var g=e,e=[],k=!1;!k;)g.equals(a)&&(k=!0),e.push(g),g=g.getNext();if(1>e.length)return!1;g=b.getParents(!0);for(a=0;a<g.length;a++)if(g[a].getName&&p[g[a].getName()]){b=g[a];break}for(var g=l.isIndent?1:-1,a=e[0],e=e[e.length-1],k=CKEDITOR.plugins.list.listToArray(b,q),h=k[e.getCustomData("listarray_index")].indent, -a=a.getCustomData("listarray_index");a<=e.getCustomData("listarray_index");a++)if(k[a].indent+=g,0<g){var n=k[a].parent;k[a].parent=new CKEDITOR.dom.element(n.getName(),n.getDocument())}for(a=e.getCustomData("listarray_index")+1;a<k.length&&k[a].indent>h;a++)k[a].indent+=g;e=CKEDITOR.plugins.list.arrayToList(k,q,null,d.config.enterMode,b.getDirection());if(!l.isIndent){var f;if((f=b.getParent())&&f.is("li"))for(var g=e.listNode.getChildren(),r=[],m,a=g.count()-1;0<=a;a--)(m=g.getItem(a))&&m.is&&m.is("li")&& -r.push(m)}e&&e.listNode.replace(b);if(r&&r.length)for(a=0;a<r.length;a++){for(m=b=r[a];(m=m.getNext())&&m.is&&m.getName()in p;)CKEDITOR.env.needsNbspFiller&&!b.getFirst(x)&&b.append(c.document.createText(" ")),b.append(m);b.insertAfter(f)}e&&d.fire("contentDomInvalidated");return!0}for(var l=this,q=this.database,p=this.context,c,n=d.getSelection(),n=(n&&n.getRanges()).createIterator();c=n.getNextRange();){for(var b=c.getCommonAncestor();b&&(b.type!=CKEDITOR.NODE_ELEMENT||!p[b.getName()]);){if(d.editable().equals(b)){b= -!1;break}b=b.getParent()}b||(b=c.startPath().contains(p))&&c.setEndAt(b,CKEDITOR.POSITION_BEFORE_END);if(!b){var h=c.getEnclosedNode();h&&h.type==CKEDITOR.NODE_ELEMENT&&h.getName()in p&&(c.setStartAt(h,CKEDITOR.POSITION_AFTER_START),c.setEndAt(h,CKEDITOR.POSITION_BEFORE_END),b=h)}b&&c.startContainer.type==CKEDITOR.NODE_ELEMENT&&c.startContainer.getName()in p&&(h=new CKEDITOR.dom.walker(c),h.evaluator=t,c.startContainer=h.next());b&&c.endContainer.type==CKEDITOR.NODE_ELEMENT&&c.endContainer.getName()in -p&&(h=new CKEDITOR.dom.walker(c),h.evaluator=t,c.endContainer=h.previous());if(b)return f(b)}return 0}function t(d){return d.type==CKEDITOR.NODE_ELEMENT&&d.is("li")}function x(d){return y(d)&&z(d)}var y=CKEDITOR.dom.walker.whitespaces(!0),z=CKEDITOR.dom.walker.bookmark(!1,!0),u=CKEDITOR.TRISTATE_DISABLED,v=CKEDITOR.TRISTATE_OFF;CKEDITOR.plugins.add("indentlist",{requires:"indent",init:function(d){function f(d){l.specificDefinition.apply(this,arguments);this.requiredContent=["ul","ol"];d.on("key", -function(f){var c=d.elementPath();if("wysiwyg"==d.mode&&f.data.keyCode==this.indentKey&&c){var n=this.getContext(c);!n||this.isIndent&&CKEDITOR.plugins.indentList.firstItemInPath(this.context,c,n)||(d.execCommand(this.relatedGlobal),f.cancel())}},this);this.jobs[this.isIndent?10:30]={refresh:this.isIndent?function(d,c){var f=this.getContext(c),b=CKEDITOR.plugins.indentList.firstItemInPath(this.context,c,f);return f&&this.isIndent&&!b?v:u}:function(d,c){return!this.getContext(c)||this.isIndent?u:v}, -exec:CKEDITOR.tools.bind(w,this)}}var l=CKEDITOR.plugins.indent;l.registerCommands(d,{indentlist:new f(d,"indentlist",!0),outdentlist:new f(d,"outdentlist")});CKEDITOR.tools.extend(f.prototype,l.specificDefinition.prototype,{context:{ol:1,ul:1}})}});CKEDITOR.plugins.indentList={};CKEDITOR.plugins.indentList.firstItemInPath=function(d,f,l){var q=f.contains(t);l||(l=f.contains(d));return l&&q&&q.equals(l.getFirst(t))}})();(function(){function g(a,b){var c=l.exec(a),d=l.exec(b);if(c){if(!c[2]&&"px"==d[2])return d[1];if("px"==c[2]&&!d[2])return d[1]+"px"}return b}var k=CKEDITOR.htmlParser.cssStyle,h=CKEDITOR.tools.cssLength,l=/^((?:\d*(?:\.\d+))|(?:\d+))(.*)?$/i,m={elements:{$:function(a){var b=a.attributes;if((b=(b=(b=b&&b["data-cke-realelement"])&&new CKEDITOR.htmlParser.fragment.fromHtml(decodeURIComponent(b)))&&b.children[0])&&a.attributes["data-cke-resizable"]){var c=(new k(a)).rules;a=b.attributes;var d=c.width, -c=c.height;d&&(a.width=g(a.width,d));c&&(a.height=g(a.height,c))}return b}}};CKEDITOR.plugins.add("fakeobjects",{init:function(a){a.filter.allow("img[!data-cke-realelement,src,alt,title](*){*}","fakeobjects")},afterInit:function(a){(a=(a=a.dataProcessor)&&a.htmlFilter)&&a.addRules(m,{applyToAll:!0})}});CKEDITOR.editor.prototype.createFakeElement=function(a,b,c,d){var e=this.lang.fakeobjects,e=e[c]||e.unknown;b={"class":b,"data-cke-realelement":encodeURIComponent(a.getOuterHtml()),"data-cke-real-node-type":a.type, -alt:e,title:e,align:a.getAttribute("align")||""};CKEDITOR.env.hc||(b.src=CKEDITOR.tools.transparentImageData);c&&(b["data-cke-real-element-type"]=c);d&&(b["data-cke-resizable"]=d,c=new k,d=a.getAttribute("width"),a=a.getAttribute("height"),d&&(c.rules.width=h(d)),a&&(c.rules.height=h(a)),c.populate(b));return this.document.createElement("img",{attributes:b})};CKEDITOR.editor.prototype.createFakeParserElement=function(a,b,c,d){var e=this.lang.fakeobjects,e=e[c]||e.unknown,f;f=new CKEDITOR.htmlParser.basicWriter; -a.writeHtml(f);f=f.getHtml();b={"class":b,"data-cke-realelement":encodeURIComponent(f),"data-cke-real-node-type":a.type,alt:e,title:e,align:a.attributes.align||""};CKEDITOR.env.hc||(b.src=CKEDITOR.tools.transparentImageData);c&&(b["data-cke-real-element-type"]=c);d&&(b["data-cke-resizable"]=d,d=a.attributes,a=new k,c=d.width,d=d.height,void 0!==c&&(a.rules.width=h(c)),void 0!==d&&(a.rules.height=h(d)),a.populate(b));return new CKEDITOR.htmlParser.element("img",b)};CKEDITOR.editor.prototype.restoreRealElement= -function(a){if(a.data("cke-real-node-type")!=CKEDITOR.NODE_ELEMENT)return null;var b=CKEDITOR.dom.element.createFromHtml(decodeURIComponent(a.data("cke-realelement")),this.document);if(a.data("cke-resizable")){var c=a.getStyle("width");a=a.getStyle("height");c&&b.setAttribute("width",g(b.getAttribute("width"),c));a&&b.setAttribute("height",g(b.getAttribute("height"),a))}return b}})();(function(){function p(c){return c.replace(/'/g,"\\$\x26")}function q(c){for(var b,a=c.length,d=[],f=0;f<a;f++)b=c.charCodeAt(f),d.push(b);return"String.fromCharCode("+d.join(",")+")"}function r(c,b){var a=c.plugins.link,d=a.compiledProtectionFunction.params,f,e;e=[a.compiledProtectionFunction.name,"("];for(var g=0;g<d.length;g++)a=d[g].toLowerCase(),f=b[a],0<g&&e.push(","),e.push("'",f?p(encodeURIComponent(b[a])):"","'");e.push(")");return e.join("")}function n(c){c=c.config.emailProtection||""; -var b;c&&"encode"!=c&&(b={},c.replace(/^([^(]+)\(([^)]+)\)$/,function(a,c,f){b.name=c;b.params=[];f.replace(/[^,\s]+/g,function(a){b.params.push(a)})}));return b}CKEDITOR.plugins.add("link",{requires:"dialog,fakeobjects",onLoad:function(){function c(b){return a.replace(/%1/g,"rtl"==b?"right":"left").replace(/%2/g,"cke_contents_"+b)}var b="background:url("+CKEDITOR.getUrl(this.path+"images"+(CKEDITOR.env.hidpi?"/hidpi":"")+"/anchor.png")+") no-repeat %1 center;border:1px dotted #00f;background-size:16px;", -a=".%2 a.cke_anchor,.%2 a.cke_anchor_empty,.cke_editable.%2 a[name],.cke_editable.%2 a[data-cke-saved-name]{"+b+"padding-%1:18px;cursor:auto;}.%2 img.cke_anchor{"+b+"width:16px;min-height:15px;height:1.15em;vertical-align:text-bottom;}";CKEDITOR.addCss(c("ltr")+c("rtl"))},init:function(c){var b="a[!href]";CKEDITOR.dialog.isTabEnabled(c,"link","advanced")&&(b=b.replace("]",",accesskey,charset,dir,id,lang,name,rel,tabindex,title,type,download]{*}(*)"));CKEDITOR.dialog.isTabEnabled(c,"link","target")&& -(b=b.replace("]",",target,onclick]"));c.addCommand("link",new CKEDITOR.dialogCommand("link",{allowedContent:b,requiredContent:"a[href]"}));c.addCommand("anchor",new CKEDITOR.dialogCommand("anchor",{allowedContent:"a[!name,id]",requiredContent:"a[name]"}));c.addCommand("unlink",new CKEDITOR.unlinkCommand);c.addCommand("removeAnchor",new CKEDITOR.removeAnchorCommand);c.setKeystroke(CKEDITOR.CTRL+76,"link");c.ui.addButton&&(c.ui.addButton("Link",{label:c.lang.link.toolbar,command:"link",toolbar:"links,10"}), -c.ui.addButton("Unlink",{label:c.lang.link.unlink,command:"unlink",toolbar:"links,20"}),c.ui.addButton("Anchor",{label:c.lang.link.anchor.toolbar,command:"anchor",toolbar:"links,30"}));CKEDITOR.dialog.add("link",this.path+"dialogs/link.js");CKEDITOR.dialog.add("anchor",this.path+"dialogs/anchor.js");c.on("doubleclick",function(a){var b=a.data.element.getAscendant({a:1,img:1},!0);b&&!b.isReadOnly()&&(b.is("a")?(a.data.dialog=!b.getAttribute("name")||b.getAttribute("href")&&b.getChildCount()?"link": -"anchor",a.data.link=b):CKEDITOR.plugins.link.tryRestoreFakeAnchor(c,b)&&(a.data.dialog="anchor"))},null,null,0);c.on("doubleclick",function(a){a.data.dialog in{link:1,anchor:1}&&a.data.link&&c.getSelection().selectElement(a.data.link)},null,null,20);c.addMenuItems&&c.addMenuItems({anchor:{label:c.lang.link.anchor.menu,command:"anchor",group:"anchor",order:1},removeAnchor:{label:c.lang.link.anchor.remove,command:"removeAnchor",group:"anchor",order:5},link:{label:c.lang.link.menu,command:"link",group:"link", -order:1},unlink:{label:c.lang.link.unlink,command:"unlink",group:"link",order:5}});c.contextMenu&&c.contextMenu.addListener(function(a){if(!a||a.isReadOnly())return null;a=CKEDITOR.plugins.link.tryRestoreFakeAnchor(c,a);if(!a&&!(a=CKEDITOR.plugins.link.getSelectedLink(c)))return null;var b={};a.getAttribute("href")&&a.getChildCount()&&(b={link:CKEDITOR.TRISTATE_OFF,unlink:CKEDITOR.TRISTATE_OFF});a&&a.hasAttribute("name")&&(b.anchor=b.removeAnchor=CKEDITOR.TRISTATE_OFF);return b});this.compiledProtectionFunction= -n(c)},afterInit:function(c){c.dataProcessor.dataFilter.addRules({elements:{a:function(a){return a.attributes.name?a.children.length?null:c.createFakeParserElement(a,"cke_anchor","anchor"):null}}});var b=c._.elementsPath&&c._.elementsPath.filters;b&&b.push(function(a,b){if("a"==b&&(CKEDITOR.plugins.link.tryRestoreFakeAnchor(c,a)||a.getAttribute("name")&&(!a.getAttribute("href")||!a.getChildCount())))return"anchor"})}});var t=/^javascript:/,u=/^mailto:([^?]+)(?:\?(.+))?$/,v=/subject=([^;?:@&=$,\/]*)/i, -w=/body=([^;?:@&=$,\/]*)/i,x=/^#(.*)$/,y=/^((?:http|https|ftp|news):\/\/)?(.*)$/,z=/^(_(?:self|top|parent|blank))$/,A=/^javascript:void\(location\.href='mailto:'\+String\.fromCharCode\(([^)]+)\)(?:\+'(.*)')?\)$/,B=/^javascript:([^(]+)\(([^)]+)\)$/,C=/\s*window.open\(\s*this\.href\s*,\s*(?:'([^']*)'|null)\s*,\s*'([^']*)'\s*\)\s*;\s*return\s*false;*\s*/,D=/(?:^|,)([^=]+)=(\d+|yes|no)/gi,m={id:"advId",dir:"advLangDir",accessKey:"advAccessKey",name:"advName",lang:"advLangCode",tabindex:"advTabIndex", -title:"advTitle",type:"advContentType","class":"advCSSClasses",charset:"advCharset",style:"advStyles",rel:"advRel"};CKEDITOR.plugins.link={getSelectedLink:function(c,b){var a=c.getSelection(),d=a.getSelectedElement(),f=a.getRanges(),e=[],g;if(!b&&d&&d.is("a"))return d;for(d=0;d<f.length;d++)if(g=a.getRanges()[d],g.shrink(CKEDITOR.SHRINK_TEXT,!1,{skipBogus:!0}),(g=c.elementPath(g.getCommonAncestor()).contains("a",1))&&b)e.push(g);else if(g)return g;return b?e:null},getEditorAnchors:function(c){for(var b= -c.editable(),a=b.isInline()&&!c.plugins.divarea?c.document:b,b=a.getElementsByTag("a"),a=a.getElementsByTag("img"),d=[],f=0,e;e=b.getItem(f++);)(e.data("cke-saved-name")||e.hasAttribute("name"))&&d.push({name:e.data("cke-saved-name")||e.getAttribute("name"),id:e.getAttribute("id")});for(f=0;e=a.getItem(f++);)(e=this.tryRestoreFakeAnchor(c,e))&&d.push({name:e.getAttribute("name"),id:e.getAttribute("id")});return d},fakeAnchor:!0,tryRestoreFakeAnchor:function(c,b){if(b&&b.data("cke-real-element-type")&& -"anchor"==b.data("cke-real-element-type")){var a=c.restoreRealElement(b);if(a.data("cke-saved-name"))return a}},parseLinkAttributes:function(c,b){var a=b&&(b.data("cke-saved-href")||b.getAttribute("href"))||"",d=c.plugins.link.compiledProtectionFunction,f=c.config.emailProtection,e,g={};a.match(t)&&("encode"==f?a=a.replace(A,function(a,b,c){c=c||"";return"mailto:"+String.fromCharCode.apply(String,b.split(","))+c.replace(/\\'/g,"'")}):f&&a.replace(B,function(a,b,c){if(b==d.name){g.type="email";a=g.email= -{};b=/(^')|('$)/g;c=c.match(/[^,\s]+/g);for(var e=c.length,f,h,k=0;k<e;k++)f=decodeURIComponent,h=c[k].replace(b,"").replace(/\\'/g,"'"),h=f(h),f=d.params[k].toLowerCase(),a[f]=h;a.address=[a.name,a.domain].join("@")}}));if(!g.type)if(f=a.match(x))g.type="anchor",g.anchor={},g.anchor.name=g.anchor.id=f[1];else if(f=a.match(u)){e=a.match(v);a=a.match(w);g.type="email";var k=g.email={};k.address=f[1];e&&(k.subject=decodeURIComponent(e[1]));a&&(k.body=decodeURIComponent(a[1]))}else a&&(e=a.match(y))&& -(g.type="url",g.url={},g.url.protocol=e[1],g.url.url=e[2]);if(b){if(a=b.getAttribute("target"))g.target={type:a.match(z)?a:"frame",name:a};else if(a=(a=b.data("cke-pa-onclick")||b.getAttribute("onclick"))&&a.match(C))for(g.target={type:"popup",name:a[1]};f=D.exec(a[2]);)"yes"!=f[2]&&"1"!=f[2]||f[1]in{height:1,width:1,top:1,left:1}?isFinite(f[2])&&(g.target[f[1]]=f[2]):g.target[f[1]]=!0;null!==b.getAttribute("download")&&(g.download=!0);var a={},h;for(h in m)(f=b.getAttribute(h))&&(a[m[h]]=f);if(h= -b.data("cke-saved-name")||a.advName)a.advName=h;CKEDITOR.tools.isEmpty(a)||(g.advanced=a)}return g},getLinkAttributes:function(c,b){var a=c.config.emailProtection||"",d={};switch(b.type){case "url":var a=b.url&&void 0!==b.url.protocol?b.url.protocol:"http://",f=b.url&&CKEDITOR.tools.trim(b.url.url)||"";d["data-cke-saved-href"]=0===f.indexOf("/")?f:a+f;break;case "anchor":a=b.anchor&&b.anchor.id;d["data-cke-saved-href"]="#"+(b.anchor&&b.anchor.name||a||"");break;case "email":var e=b.email,f=e.address; -switch(a){case "":case "encode":var g=encodeURIComponent(e.subject||""),k=encodeURIComponent(e.body||""),e=[];g&&e.push("subject\x3d"+g);k&&e.push("body\x3d"+k);e=e.length?"?"+e.join("\x26"):"";"encode"==a?(a=["javascript:void(location.href\x3d'mailto:'+",q(f)],e&&a.push("+'",p(e),"'"),a.push(")")):a=["mailto:",f,e];break;default:a=f.split("@",2),e.name=a[0],e.domain=a[1],a=["javascript:",r(c,e)]}d["data-cke-saved-href"]=a.join("")}if(b.target)if("popup"==b.target.type){for(var a=["window.open(this.href, '", -b.target.name||"","', '"],h="resizable status location toolbar menubar fullscreen scrollbars dependent".split(" "),f=h.length,g=function(a){b.target[a]&&h.push(a+"\x3d"+b.target[a])},e=0;e<f;e++)h[e]+=b.target[h[e]]?"\x3dyes":"\x3dno";g("width");g("left");g("height");g("top");a.push(h.join(","),"'); return false;");d["data-cke-pa-onclick"]=a.join("")}else"notSet"!=b.target.type&&b.target.name&&(d.target=b.target.name);b.download&&(d.download="");if(b.advanced){for(var l in m)(a=b.advanced[m[l]])&& -(d[l]=a);d.name&&(d["data-cke-saved-name"]=d.name)}d["data-cke-saved-href"]&&(d.href=d["data-cke-saved-href"]);l={target:1,onclick:1,"data-cke-pa-onclick":1,"data-cke-saved-name":1,download:1};b.advanced&&CKEDITOR.tools.extend(l,m);for(var n in d)delete l[n];return{set:d,removed:CKEDITOR.tools.objectKeys(l)}},showDisplayTextForElement:function(c,b){var a={img:1,table:1,tbody:1,thead:1,tfoot:1,input:1,select:1,textarea:1},d=b.getSelection();return b.widgets&&b.widgets.focused||d&&1<d.getRanges().length? -!1:!c||!c.getName||!c.is(a)}};CKEDITOR.unlinkCommand=function(){};CKEDITOR.unlinkCommand.prototype={exec:function(c){if(CKEDITOR.env.ie){var b=c.getSelection().getRanges()[0],a=b.getPreviousEditableNode()&&b.getPreviousEditableNode().getAscendant("a",!0)||b.getNextEditableNode()&&b.getNextEditableNode().getAscendant("a",!0),d;b.collapsed&&a&&(d=b.createBookmark(),b.selectNodeContents(a),b.select())}a=new CKEDITOR.style({element:"a",type:CKEDITOR.STYLE_INLINE,alwaysRemoveElement:1});c.removeStyle(a); -d&&(b.moveToBookmark(d),b.select())},refresh:function(c,b){var a=b.lastElement&&b.lastElement.getAscendant("a",!0);a&&"a"==a.getName()&&a.getAttribute("href")&&a.getChildCount()?this.setState(CKEDITOR.TRISTATE_OFF):this.setState(CKEDITOR.TRISTATE_DISABLED)},contextSensitive:1,startDisabled:1,requiredContent:"a[href]",editorFocus:1};CKEDITOR.removeAnchorCommand=function(){};CKEDITOR.removeAnchorCommand.prototype={exec:function(c){var b=c.getSelection(),a=b.createBookmarks(),d;if(b&&(d=b.getSelectedElement())&& -(d.getChildCount()?d.is("a"):CKEDITOR.plugins.link.tryRestoreFakeAnchor(c,d)))d.remove(1);else if(d=CKEDITOR.plugins.link.getSelectedLink(c))d.hasAttribute("href")?(d.removeAttributes({name:1,"data-cke-saved-name":1}),d.removeClass("cke_anchor")):d.remove(1);b.selectBookmarks(a)},requiredContent:"a[name]"};CKEDITOR.tools.extend(CKEDITOR.config,{linkShowAdvancedTab:!0,linkShowTargetTab:!0})})();(function(){function I(b,m,e){function c(c){if(!(!(a=d[c?"getFirst":"getLast"]())||a.is&&a.isBlockBoundary()||!(p=m.root[c?"getPrevious":"getNext"](CKEDITOR.dom.walker.invisible(!0)))||p.is&&p.isBlockBoundary({br:1})))b.document.createElement("br")[c?"insertBefore":"insertAfter"](a)}for(var f=CKEDITOR.plugins.list.listToArray(m.root,e),g=[],k=0;k<m.contents.length;k++){var h=m.contents[k];(h=h.getAscendant("li",!0))&&!h.getCustomData("list_item_processed")&&(g.push(h),CKEDITOR.dom.element.setMarker(e, -h,"list_item_processed",!0))}h=null;for(k=0;k<g.length;k++)h=g[k].getCustomData("listarray_index"),f[h].indent=-1;for(k=h+1;k<f.length;k++)if(f[k].indent>f[k-1].indent+1){g=f[k-1].indent+1-f[k].indent;for(h=f[k].indent;f[k]&&f[k].indent>=h;)f[k].indent+=g,k++;k--}var d=CKEDITOR.plugins.list.arrayToList(f,e,null,b.config.enterMode,m.root.getAttribute("dir")).listNode,a,p;c(!0);c();d.replace(m.root);b.fire("contentDomInvalidated")}function B(b,m){this.name=b;this.context=this.type=m;this.allowedContent= -m+" li";this.requiredContent=m}function E(b,m,e,c){for(var f,g;f=b[c?"getLast":"getFirst"](J);)(g=f.getDirection(1))!==m.getDirection(1)&&f.setAttribute("dir",g),f.remove(),e?f[c?"insertBefore":"insertAfter"](e):m.append(f,c)}function F(b){function m(e){var c=b[e?"getPrevious":"getNext"](u);c&&c.type==CKEDITOR.NODE_ELEMENT&&c.is(b.getName())&&(E(b,c,null,!e),b.remove(),b=c)}m();m(1)}function G(b){return b.type==CKEDITOR.NODE_ELEMENT&&(b.getName()in CKEDITOR.dtd.$block||b.getName()in CKEDITOR.dtd.$listItem)&& -CKEDITOR.dtd[b.getName()]["#"]}function C(b,m,e){b.fire("saveSnapshot");e.enlarge(CKEDITOR.ENLARGE_LIST_ITEM_CONTENTS);var c=e.extractContents();m.trim(!1,!0);var f=m.createBookmark(),g=new CKEDITOR.dom.elementPath(m.startContainer),k=g.block,g=g.lastElement.getAscendant("li",1)||k,h=new CKEDITOR.dom.elementPath(e.startContainer),d=h.contains(CKEDITOR.dtd.$listItem),h=h.contains(CKEDITOR.dtd.$list);k?(k=k.getBogus())&&k.remove():h&&(k=h.getPrevious(u))&&z(k)&&k.remove();(k=c.getLast())&&k.type==CKEDITOR.NODE_ELEMENT&& -k.is("br")&&k.remove();(k=m.startContainer.getChild(m.startOffset))?c.insertBefore(k):m.startContainer.append(c);d&&(c=A(d))&&(g.contains(d)?(E(c,d.getParent(),d),c.remove()):g.append(c));for(;e.checkStartOfBlock()&&e.checkEndOfBlock();){h=e.startPath();c=h.block;if(!c)break;c.is("li")&&(g=c.getParent(),c.equals(g.getLast(u))&&c.equals(g.getFirst(u))&&(c=g));e.moveToPosition(c,CKEDITOR.POSITION_BEFORE_START);c.remove()}e=e.clone();c=b.editable();e.setEndAt(c,CKEDITOR.POSITION_BEFORE_END);e=new CKEDITOR.dom.walker(e); -e.evaluator=function(a){return u(a)&&!z(a)};(e=e.next())&&e.type==CKEDITOR.NODE_ELEMENT&&e.getName()in CKEDITOR.dtd.$list&&F(e);m.moveToBookmark(f);m.select();b.fire("saveSnapshot")}function A(b){return(b=b.getLast(u))&&b.type==CKEDITOR.NODE_ELEMENT&&b.getName()in v?b:null}var v={ol:1,ul:1},K=CKEDITOR.dom.walker.whitespaces(),H=CKEDITOR.dom.walker.bookmark(),u=function(b){return!(K(b)||H(b))},z=CKEDITOR.dom.walker.bogus();CKEDITOR.plugins.list={listToArray:function(b,m,e,c,f){if(!v[b.getName()])return[]; -c||(c=0);e||(e=[]);for(var g=0,k=b.getChildCount();g<k;g++){var h=b.getChild(g);h.type==CKEDITOR.NODE_ELEMENT&&h.getName()in CKEDITOR.dtd.$list&&CKEDITOR.plugins.list.listToArray(h,m,e,c+1);if("li"==h.$.nodeName.toLowerCase()){var d={parent:b,indent:c,element:h,contents:[]};f?d.grandparent=f:(d.grandparent=b.getParent(),d.grandparent&&"li"==d.grandparent.$.nodeName.toLowerCase()&&(d.grandparent=d.grandparent.getParent()));m&&CKEDITOR.dom.element.setMarker(m,h,"listarray_index",e.length);e.push(d); -for(var a=0,p=h.getChildCount(),l;a<p;a++)l=h.getChild(a),l.type==CKEDITOR.NODE_ELEMENT&&v[l.getName()]?CKEDITOR.plugins.list.listToArray(l,m,e,c+1,d.grandparent):d.contents.push(l)}}return e},arrayToList:function(b,m,e,c,f){e||(e=0);if(!b||b.length<e+1)return null;for(var g,k=b[e].parent.getDocument(),h=new CKEDITOR.dom.documentFragment(k),d=null,a=e,p=Math.max(b[e].indent,0),l=null,q,n,t=c==CKEDITOR.ENTER_P?"p":"div";;){var r=b[a];g=r.grandparent;q=r.element.getDirection(1);if(r.indent==p){d&&b[a].parent.getName()== -d.getName()||(d=b[a].parent.clone(!1,1),f&&d.setAttribute("dir",f),h.append(d));l=d.append(r.element.clone(0,1));q!=d.getDirection(1)&&l.setAttribute("dir",q);for(g=0;g<r.contents.length;g++)l.append(r.contents[g].clone(1,1));a++}else if(r.indent==Math.max(p,0)+1)r=b[a-1].element.getDirection(1),a=CKEDITOR.plugins.list.arrayToList(b,null,a,c,r!=q?q:null),!l.getChildCount()&&CKEDITOR.env.needsNbspFiller&&7>=k.$.documentMode&&l.append(k.createText(" ")),l.append(a.listNode),a=a.nextIndex;else if(-1== -r.indent&&!e&&g){v[g.getName()]?(l=r.element.clone(!1,!0),q!=g.getDirection(1)&&l.setAttribute("dir",q)):l=new CKEDITOR.dom.documentFragment(k);var d=g.getDirection(1)!=q,y=r.element,D=y.getAttribute("class"),z=y.getAttribute("style"),A=l.type==CKEDITOR.NODE_DOCUMENT_FRAGMENT&&(c!=CKEDITOR.ENTER_BR||d||z||D),w,B=r.contents.length,x;for(g=0;g<B;g++)if(w=r.contents[g],H(w)&&1<B)A?x=w.clone(1,1):l.append(w.clone(1,1));else if(w.type==CKEDITOR.NODE_ELEMENT&&w.isBlockBoundary()){d&&!w.getDirection()&& -w.setAttribute("dir",q);n=w;var C=y.getAttribute("style");C&&n.setAttribute("style",C.replace(/([^;])$/,"$1;")+(n.getAttribute("style")||""));D&&w.addClass(D);n=null;x&&(l.append(x),x=null);l.append(w.clone(1,1))}else A?(n||(n=k.createElement(t),l.append(n),d&&n.setAttribute("dir",q)),z&&n.setAttribute("style",z),D&&n.setAttribute("class",D),x&&(n.append(x),x=null),n.append(w.clone(1,1))):l.append(w.clone(1,1));x&&((n||l).append(x),x=null);l.type==CKEDITOR.NODE_DOCUMENT_FRAGMENT&&a!=b.length-1&&(CKEDITOR.env.needsBrFiller&& -(q=l.getLast())&&q.type==CKEDITOR.NODE_ELEMENT&&q.is("br")&&q.remove(),(q=l.getLast(u))&&q.type==CKEDITOR.NODE_ELEMENT&&q.is(CKEDITOR.dtd.$block)||l.append(k.createElement("br")));q=l.$.nodeName.toLowerCase();"div"!=q&&"p"!=q||l.appendBogus();h.append(l);d=null;a++}else return null;n=null;if(b.length<=a||Math.max(b[a].indent,0)<p)break}if(m)for(b=h.getFirst();b;){if(b.type==CKEDITOR.NODE_ELEMENT&&(CKEDITOR.dom.element.clearMarkers(m,b),b.getName()in CKEDITOR.dtd.$listItem&&(e=b,k=f=c=void 0,c=e.getDirection()))){for(f= -e.getParent();f&&!(k=f.getDirection());)f=f.getParent();c==k&&e.removeAttribute("dir")}b=b.getNextSourceNode()}return{listNode:h,nextIndex:a}}};var L=/^h[1-6]$/,J=CKEDITOR.dom.walker.nodeType(CKEDITOR.NODE_ELEMENT);B.prototype={exec:function(b){this.refresh(b,b.elementPath());var m=b.config,e=b.getSelection(),c=e&&e.getRanges();if(this.state==CKEDITOR.TRISTATE_OFF){var f=b.editable();if(f.getFirst(u)){var g=1==c.length&&c[0];(m=g&&g.getEnclosedNode())&&m.is&&this.type==m.getName()&&this.setState(CKEDITOR.TRISTATE_ON)}else m.enterMode== -CKEDITOR.ENTER_BR?f.appendBogus():c[0].fixBlock(1,m.enterMode==CKEDITOR.ENTER_P?"p":"div"),e.selectRanges(c)}for(var m=e.createBookmarks(!0),f=[],k={},c=c.createIterator(),h=0;(g=c.getNextRange())&&++h;){var d=g.getBoundaryNodes(),a=d.startNode,p=d.endNode;a.type==CKEDITOR.NODE_ELEMENT&&"td"==a.getName()&&g.setStartAt(d.startNode,CKEDITOR.POSITION_AFTER_START);p.type==CKEDITOR.NODE_ELEMENT&&"td"==p.getName()&&g.setEndAt(d.endNode,CKEDITOR.POSITION_BEFORE_END);g=g.createIterator();for(g.forceBrBreak= -this.state==CKEDITOR.TRISTATE_OFF;d=g.getNextParagraph();)if(!d.getCustomData("list_block")){CKEDITOR.dom.element.setMarker(k,d,"list_block",1);for(var l=b.elementPath(d),a=l.elements,p=0,l=l.blockLimit,q,n=a.length-1;0<=n&&(q=a[n]);n--)if(v[q.getName()]&&l.contains(q)){l.removeCustomData("list_group_object_"+h);(a=q.getCustomData("list_group_object"))?a.contents.push(d):(a={root:q,contents:[d]},f.push(a),CKEDITOR.dom.element.setMarker(k,q,"list_group_object",a));p=1;break}p||(p=l,p.getCustomData("list_group_object_"+ -h)?p.getCustomData("list_group_object_"+h).contents.push(d):(a={root:p,contents:[d]},CKEDITOR.dom.element.setMarker(k,p,"list_group_object_"+h,a),f.push(a)))}}for(q=[];0<f.length;)if(a=f.shift(),this.state==CKEDITOR.TRISTATE_OFF)if(v[a.root.getName()]){c=b;h=a;a=k;g=q;p=CKEDITOR.plugins.list.listToArray(h.root,a);l=[];for(d=0;d<h.contents.length;d++)n=h.contents[d],(n=n.getAscendant("li",!0))&&!n.getCustomData("list_item_processed")&&(l.push(n),CKEDITOR.dom.element.setMarker(a,n,"list_item_processed", -!0));for(var n=h.root.getDocument(),t=void 0,r=void 0,d=0;d<l.length;d++){var y=l[d].getCustomData("listarray_index"),t=p[y].parent;t.is(this.type)||(r=n.createElement(this.type),t.copyAttributes(r,{start:1,type:1}),r.removeStyle("list-style-type"),p[y].parent=r)}a=CKEDITOR.plugins.list.arrayToList(p,a,null,c.config.enterMode);p=void 0;l=a.listNode.getChildCount();for(d=0;d<l&&(p=a.listNode.getChild(d));d++)p.getName()==this.type&&g.push(p);a.listNode.replace(h.root);c.fire("contentDomInvalidated")}else{p= -b;g=a;d=q;l=g.contents;c=g.root.getDocument();h=[];1==l.length&&l[0].equals(g.root)&&(a=c.createElement("div"),l[0].moveChildren&&l[0].moveChildren(a),l[0].append(a),l[0]=a);g=g.contents[0].getParent();for(n=0;n<l.length;n++)g=g.getCommonAncestor(l[n].getParent());t=p.config.useComputedState;p=a=void 0;t=void 0===t||t;for(n=0;n<l.length;n++)for(r=l[n];y=r.getParent();){if(y.equals(g)){h.push(r);!p&&r.getDirection()&&(p=1);r=r.getDirection(t);null!==a&&(a=a&&a!=r?null:r);break}r=y}if(!(1>h.length)){l= -h[h.length-1].getNext();n=c.createElement(this.type);d.push(n);for(t=d=void 0;h.length;)d=h.shift(),t=c.createElement("li"),r=d,r.is("pre")||L.test(r.getName())||"false"==r.getAttribute("contenteditable")?d.appendTo(t):(d.copyAttributes(t),a&&d.getDirection()&&(t.removeStyle("direction"),t.removeAttribute("dir")),d.moveChildren(t),d.remove()),t.appendTo(n);a&&p&&n.setAttribute("dir",a);l?n.insertBefore(l):n.appendTo(g)}}else this.state==CKEDITOR.TRISTATE_ON&&v[a.root.getName()]&&I.call(this,b,a,k); -for(n=0;n<q.length;n++)F(q[n]);CKEDITOR.dom.element.clearAllMarkers(k);e.selectBookmarks(m);b.focus()},refresh:function(b,m){var e=m.contains(v,1),c=m.blockLimit||m.root;e&&c.contains(e)?this.setState(e.is(this.type)?CKEDITOR.TRISTATE_ON:CKEDITOR.TRISTATE_OFF):this.setState(CKEDITOR.TRISTATE_OFF)}};CKEDITOR.plugins.add("list",{requires:"indentlist",init:function(b){b.blockless||(b.addCommand("numberedlist",new B("numberedlist","ol")),b.addCommand("bulletedlist",new B("bulletedlist","ul")),b.ui.addButton&& -(b.ui.addButton("NumberedList",{label:b.lang.list.numberedlist,command:"numberedlist",directional:!0,toolbar:"list,10"}),b.ui.addButton("BulletedList",{label:b.lang.list.bulletedlist,command:"bulletedlist",directional:!0,toolbar:"list,20"})),b.on("key",function(m){var e=m.data.domEvent.getKey(),c;if("wysiwyg"==b.mode&&e in{8:1,46:1}){var f=b.getSelection().getRanges()[0],g=f&&f.startPath();if(f&&f.collapsed){var k=8==e,h=b.editable(),d=new CKEDITOR.dom.walker(f.clone());d.evaluator=function(a){return u(a)&& -!z(a)};d.guard=function(a,b){return!(b&&a.type==CKEDITOR.NODE_ELEMENT&&a.is("table"))};e=f.clone();if(k){var a;(a=g.contains(v))&&f.checkBoundaryOfElement(a,CKEDITOR.START)&&(a=a.getParent())&&a.is("li")&&(a=A(a))?(c=a,a=a.getPrevious(u),e.moveToPosition(a&&z(a)?a:c,CKEDITOR.POSITION_BEFORE_START)):(d.range.setStartAt(h,CKEDITOR.POSITION_AFTER_START),d.range.setEnd(f.startContainer,f.startOffset),(a=d.previous())&&a.type==CKEDITOR.NODE_ELEMENT&&(a.getName()in v||a.is("li"))&&(a.is("li")||(d.range.selectNodeContents(a), -d.reset(),d.evaluator=G,a=d.previous()),c=a,e.moveToElementEditEnd(c),e.moveToPosition(e.endPath().block,CKEDITOR.POSITION_BEFORE_END)));if(c)C(b,e,f),m.cancel();else{var p=g.contains(v);p&&f.checkBoundaryOfElement(p,CKEDITOR.START)&&(c=p.getFirst(u),f.checkBoundaryOfElement(c,CKEDITOR.START)&&(a=p.getPrevious(u),A(c)?a&&(f.moveToElementEditEnd(a),f.select()):b.execCommand("outdent"),m.cancel()))}}else if(c=g.contains("li")){if(d.range.setEndAt(h,CKEDITOR.POSITION_BEFORE_END),k=(h=c.getLast(u))&& -G(h)?h:c,g=0,(a=d.next())&&a.type==CKEDITOR.NODE_ELEMENT&&a.getName()in v&&a.equals(h)?(g=1,a=d.next()):f.checkBoundaryOfElement(k,CKEDITOR.END)&&(g=2),g&&a){f=f.clone();f.moveToElementEditStart(a);if(1==g&&(e.optimize(),!e.startContainer.equals(c))){for(c=e.startContainer;c.is(CKEDITOR.dtd.$inline);)p=c,c=c.getParent();p&&e.moveToPosition(p,CKEDITOR.POSITION_AFTER_END)}2==g&&(e.moveToPosition(e.endPath().block,CKEDITOR.POSITION_BEFORE_END),f.endPath().block&&f.moveToPosition(f.endPath().block,CKEDITOR.POSITION_AFTER_START)); -C(b,e,f);m.cancel()}}else d.range.setEndAt(h,CKEDITOR.POSITION_BEFORE_END),(a=d.next())&&a.type==CKEDITOR.NODE_ELEMENT&&a.is(v)&&(a=a.getFirst(u),g.block&&f.checkStartOfBlock()&&f.checkEndOfBlock()?(g.block.remove(),f.moveToElementEditStart(a),f.select()):A(a)?(f.moveToElementEditStart(a),f.select()):(f=f.clone(),f.moveToElementEditStart(a),C(b,e,f)),m.cancel());setTimeout(function(){b.selectionChange(1)})}}}))}})})();(function(){function V(a,c,d){return n(c)&&n(d)&&d.equals(c.getNext(function(a){return!(E(a)||F(a)||u(a))}))}function z(a){this.upper=a[0];this.lower=a[1];this.set.apply(this,a.slice(2))}function O(a){var c=a.element;if(c&&n(c)&&(c=c.getAscendant(a.triggers,!0))&&a.editable.contains(c)){var d=P(c);if("true"==d.getAttribute("contenteditable"))return c;if(d.is(a.triggers))return d}return null}function ka(a,c,d){r(a,c);r(a,d);a=c.size.bottom;d=d.size.top;return a&&d?0|(a+d)/2:a||d}function w(a,c,d){return c= -c[d?"getPrevious":"getNext"](function(b){return b&&b.type==CKEDITOR.NODE_TEXT&&!E(b)||n(b)&&!u(b)&&!A(a,b)})}function q(a,c,d){return a>c&&a<d}function P(a,c){if(a.data("cke-editable"))return null;for(c||(a=a.getParent());a&&!a.data("cke-editable");){if(a.hasAttribute("contenteditable"))return a;a=a.getParent()}return null}function la(a){var c=a.doc,d=G('\x3cspan contenteditable\x3d"false" style\x3d"'+Q+"position:absolute;border-top:1px dashed "+a.boxColor+'"\x3e\x3c/span\x3e',c),b=CKEDITOR.getUrl(this.path+ -"images/"+(t.hidpi?"hidpi/":"")+"icon"+(a.rtl?"-rtl":"")+".png");v(d,{attach:function(){this.wrap.getParent()||this.wrap.appendTo(a.editable,!0);return this},lineChildren:[v(G('\x3cspan title\x3d"'+a.editor.lang.magicline.title+'" contenteditable\x3d"false"\x3e\x26#8629;\x3c/span\x3e',c),{base:Q+"height:17px;width:17px;"+(a.rtl?"left":"right")+":17px;background:url("+b+") center no-repeat "+a.boxColor+";cursor:pointer;"+(t.hc?"font-size: 15px;line-height:14px;border:1px solid #fff;text-align:center;": -"")+(t.hidpi?"background-size: 9px 10px;":""),looks:["top:-8px; border-radius: 2px;","top:-17px; border-radius: 2px 2px 0px 0px;","top:-1px; border-radius: 0px 0px 2px 2px;"]}),v(G(W,c),{base:X+"left:0px;border-left-color:"+a.boxColor+";",looks:["border-width:8px 0 8px 8px;top:-8px","border-width:8px 0 0 8px;top:-8px","border-width:0 0 8px 8px;top:0px"]}),v(G(W,c),{base:X+"right:0px;border-right-color:"+a.boxColor+";",looks:["border-width:8px 8px 8px 0;top:-8px","border-width:8px 8px 0 0;top:-8px", -"border-width:0 8px 8px 0;top:0px"]})],detach:function(){this.wrap.getParent()&&this.wrap.remove();return this},mouseNear:function(){r(a,this);var b=a.holdDistance,c=this.size;return c&&q(a.mouse.y,c.top-b,c.bottom+b)&&q(a.mouse.x,c.left-b,c.right+b)?!0:!1},place:function(){var b=a.view,c=a.editable,d=a.trigger,h=d.upper,g=d.lower,l=h||g,p=l.getParent(),m={};this.trigger=d;h&&r(a,h,!0);g&&r(a,g,!0);r(a,p,!0);a.inInlineMode&&H(a,!0);p.equals(c)?(m.left=b.scroll.x,m.right=-b.scroll.x,m.width=""):(m.left= -l.size.left-l.size.margin.left+b.scroll.x-(a.inInlineMode?b.editable.left+b.editable.border.left:0),m.width=l.size.outerWidth+l.size.margin.left+l.size.margin.right+b.scroll.x,m.right="");h&&g?m.top=h.size.margin.bottom===g.size.margin.top?0|h.size.bottom+h.size.margin.bottom/2:h.size.margin.bottom<g.size.margin.top?h.size.bottom+h.size.margin.bottom:h.size.bottom+h.size.margin.bottom-g.size.margin.top:h?g||(m.top=h.size.bottom+h.size.margin.bottom):m.top=g.size.top-g.size.margin.top;d.is(C)||q(m.top, -b.scroll.y-15,b.scroll.y+5)?(m.top=a.inInlineMode?0:b.scroll.y,this.look(C)):d.is(D)||q(m.top,b.pane.bottom-5,b.pane.bottom+15)?(m.top=a.inInlineMode?b.editable.height+b.editable.padding.top+b.editable.padding.bottom:b.pane.bottom-1,this.look(D)):(a.inInlineMode&&(m.top-=b.editable.top+b.editable.border.top),this.look(x));a.inInlineMode&&(m.top--,m.top+=b.editable.scroll.top,m.left+=b.editable.scroll.left);for(var n in m)m[n]=CKEDITOR.tools.cssLength(m[n]);this.setStyles(m)},look:function(a){if(this.oldLook!= -a){for(var b=this.lineChildren.length,c;b--;)(c=this.lineChildren[b]).setAttribute("style",c.base+c.looks[0|a/2]);this.oldLook=a}},wrap:new R("span",a.doc)});for(c=d.lineChildren.length;c--;)d.lineChildren[c].appendTo(d);d.look(x);d.appendTo(d.wrap);d.unselectable();d.lineChildren[0].on("mouseup",function(b){d.detach();S(a,function(b){var c=a.line.trigger;b[c.is(I)?"insertBefore":"insertAfter"](c.is(I)?c.lower:c.upper)},!0);a.editor.focus();t.ie||a.enterMode==CKEDITOR.ENTER_BR||a.hotNode.scrollIntoView(); -b.data.preventDefault(!0)});d.on("mousedown",function(a){a.data.preventDefault(!0)});a.line=d}function S(a,c,d){var b=new CKEDITOR.dom.range(a.doc),e=a.editor,f;t.ie&&a.enterMode==CKEDITOR.ENTER_BR?f=a.doc.createText(J):(f=(f=P(a.element,!0))&&f.data("cke-enter-mode")||a.enterMode,f=new R(K[f],a.doc),f.is("br")||a.doc.createText(J).appendTo(f));d&&e.fire("saveSnapshot");c(f);b.moveToPosition(f,CKEDITOR.POSITION_AFTER_START);e.getSelection().selectRanges([b]);a.hotNode=f;d&&e.fire("saveSnapshot")} -function Y(a,c){return{canUndo:!0,modes:{wysiwyg:1},exec:function(){function d(b){var d=t.ie&&9>t.version?" ":J,f=a.hotNode&&a.hotNode.getText()==d&&a.element.equals(a.hotNode)&&a.lastCmdDirection===!!c;S(a,function(d){f&&a.hotNode&&a.hotNode.remove();d[c?"insertAfter":"insertBefore"](b);d.setAttributes({"data-cke-magicline-hot":1,"data-cke-magicline-dir":!!c});a.lastCmdDirection=!!c});t.ie||a.enterMode==CKEDITOR.ENTER_BR||a.hotNode.scrollIntoView();a.line.detach()}return function(b){b=b.getSelection().getStartElement(); -var e;b=b.getAscendant(Z,1);if(!aa(a,b)&&b&&!b.equals(a.editable)&&!b.contains(a.editable)){(e=P(b))&&"false"==e.getAttribute("contenteditable")&&(b=e);a.element=b;e=w(a,b,!c);var f;n(e)&&e.is(a.triggers)&&e.is(ma)&&(!w(a,e,!c)||(f=w(a,e,!c))&&n(f)&&f.is(a.triggers))?d(e):(f=O(a,b),n(f)&&(w(a,f,!c)?(b=w(a,f,!c))&&n(b)&&b.is(a.triggers)&&d(f):d(f)))}}}()}}function A(a,c){if(!c||c.type!=CKEDITOR.NODE_ELEMENT||!c.$)return!1;var d=a.line;return d.wrap.equals(c)||d.wrap.contains(c)}function n(a){return a&& -a.type==CKEDITOR.NODE_ELEMENT&&a.$}function u(a){if(!n(a))return!1;var c;(c=ba(a))||(n(a)?(c={left:1,right:1,center:1},c=!(!c[a.getComputedStyle("float")]&&!c[a.getAttribute("align")])):c=!1);return c}function ba(a){return!!{absolute:1,fixed:1}[a.getComputedStyle("position")]}function L(a,c){return n(c)?c.is(a.triggers):null}function aa(a,c){if(!c)return!1;for(var d=c.getParents(1),b=d.length;b--;)for(var e=a.tabuList.length;e--;)if(d[b].hasAttribute(a.tabuList[e]))return!0;return!1}function na(a, -c,d){c=c[d?"getLast":"getFirst"](function(b){return a.isRelevant(b)&&!b.is(oa)});if(!c)return!1;r(a,c);return d?c.size.top>a.mouse.y:c.size.bottom<a.mouse.y}function ca(a){var c=a.editable,d=a.mouse,b=a.view,e=a.triggerOffset;H(a);var f=d.y>(a.inInlineMode?b.editable.top+b.editable.height/2:Math.min(b.editable.height,b.pane.height)/2),c=c[f?"getLast":"getFirst"](function(a){return!(E(a)||F(a))});if(!c)return null;A(a,c)&&(c=a.line.wrap[f?"getPrevious":"getNext"](function(a){return!(E(a)||F(a))})); -if(!n(c)||u(c)||!L(a,c))return null;r(a,c);return!f&&0<=c.size.top&&q(d.y,0,c.size.top+e)?(a=a.inInlineMode||0===b.scroll.y?C:x,new z([null,c,I,M,a])):f&&c.size.bottom<=b.pane.height&&q(d.y,c.size.bottom-e,b.pane.height)?(a=a.inInlineMode||q(c.size.bottom,b.pane.height-e,b.pane.height)?D:x,new z([c,null,da,M,a])):null}function ea(a){var c=a.mouse,d=a.view,b=a.triggerOffset,e=O(a);if(!e)return null;r(a,e);var b=Math.min(b,0|e.size.outerHeight/2),f=[],k,h;if(q(c.y,e.size.top-1,e.size.top+b))h=!1;else if(q(c.y, -e.size.bottom-b,e.size.bottom+1))h=!0;else return null;if(u(e)||na(a,e,h)||e.getParent().is(fa))return null;var g=w(a,e,!h);if(g){if(g&&g.type==CKEDITOR.NODE_TEXT)return null;if(n(g)){if(u(g)||!L(a,g)||g.getParent().is(fa))return null;f=[g,e][h?"reverse":"concat"]().concat([T,M])}}else e.equals(a.editable[h?"getLast":"getFirst"](a.isRelevant))?(H(a),h&&q(c.y,e.size.bottom-b,d.pane.height)&&q(e.size.bottom,d.pane.height-b,d.pane.height)?k=D:q(c.y,0,e.size.top+b)&&(k=C)):k=x,f=[null,e][h?"reverse": -"concat"]().concat([h?da:I,M,k,e.equals(a.editable[h?"getLast":"getFirst"](a.isRelevant))?h?D:C:x]);return 0 in f?new z(f):null}function U(a,c,d,b){for(var e=c.getDocumentPosition(),f={},k={},h={},g={},l=y.length;l--;)f[y[l]]=parseInt(c.getComputedStyle.call(c,"border-"+y[l]+"-width"),10)||0,h[y[l]]=parseInt(c.getComputedStyle.call(c,"padding-"+y[l]),10)||0,k[y[l]]=parseInt(c.getComputedStyle.call(c,"margin-"+y[l]),10)||0;d&&!b||N(a,b);g.top=e.y-(d?0:a.view.scroll.y);g.left=e.x-(d?0:a.view.scroll.x); -g.outerWidth=c.$.offsetWidth;g.outerHeight=c.$.offsetHeight;g.height=g.outerHeight-(h.top+h.bottom+f.top+f.bottom);g.width=g.outerWidth-(h.left+h.right+f.left+f.right);g.bottom=g.top+g.outerHeight;g.right=g.left+g.outerWidth;a.inInlineMode&&(g.scroll={top:c.$.scrollTop,left:c.$.scrollLeft});return v({border:f,padding:h,margin:k,ignoreScroll:d},g,!0)}function r(a,c,d){if(!n(c))return c.size=null;if(!c.size)c.size={};else if(c.size.ignoreScroll==d&&c.size.date>new Date-ga)return null;return v(c.size, -U(a,c,d),{date:+new Date},!0)}function H(a,c){a.view.editable=U(a,a.editable,c,!0)}function N(a,c){a.view||(a.view={});var d=a.view;if(!(!c&&d&&d.date>new Date-ga)){var b=a.win,d=b.getScrollPosition(),b=b.getViewPaneSize();v(a.view,{scroll:{x:d.x,y:d.y,width:a.doc.$.documentElement.scrollWidth-b.width,height:a.doc.$.documentElement.scrollHeight-b.height},pane:{width:b.width,height:b.height,bottom:b.height+d.y},date:+new Date},!0)}}function pa(a,c,d,b){for(var e=b,f=b,k=0,h=!1,g=!1,l=a.view.pane.height, -p=a.mouse;p.y+k<l&&0<p.y-k;){h||(h=c(e,b));g||(g=c(f,b));!h&&0<p.y-k&&(e=d(a,{x:p.x,y:p.y-k}));!g&&p.y+k<l&&(f=d(a,{x:p.x,y:p.y+k}));if(h&&g)break;k+=2}return new z([e,f,null,null])}CKEDITOR.plugins.add("magicline",{init:function(a){var c=a.config,d=c.magicline_triggerOffset||30,b={editor:a,enterMode:c.enterMode,triggerOffset:d,holdDistance:0|d*(c.magicline_holdDistance||.5),boxColor:c.magicline_color||"#ff0000",rtl:"rtl"==c.contentsLangDirection,tabuList:["data-cke-hidden-sel"].concat(c.magicline_tabuList|| -[]),triggers:c.magicline_everywhere?Z:{table:1,hr:1,div:1,ul:1,ol:1,dl:1,form:1,blockquote:1}},e,f,k;b.isRelevant=function(a){return n(a)&&!A(b,a)&&!u(a)};a.on("contentDom",function(){var d=a.editable(),g=a.document,l=a.window;v(b,{editable:d,inInlineMode:d.isInline(),doc:g,win:l,hotNode:null},!0);b.boundary=b.inInlineMode?b.editable:b.doc.getDocumentElement();d.is(B.$inline)||(b.inInlineMode&&!ba(d)&&d.setStyles({position:"relative",top:null,left:null}),la.call(this,b),N(b),d.attachListener(a,"beforeUndoImage", -function(){b.line.detach()}),d.attachListener(a,"beforeGetData",function(){b.line.wrap.getParent()&&(b.line.detach(),a.once("getData",function(){b.line.attach()},null,null,1E3))},null,null,0),d.attachListener(b.inInlineMode?g:g.getWindow().getFrame(),"mouseout",function(c){if("wysiwyg"==a.mode)if(b.inInlineMode){var d=c.data.$.clientX;c=c.data.$.clientY;N(b);H(b,!0);var e=b.view.editable,f=b.view.scroll;d>e.left-f.x&&d<e.right-f.x&&c>e.top-f.y&&c<e.bottom-f.y||(clearTimeout(k),k=null,b.line.detach())}else clearTimeout(k), -k=null,b.line.detach()}),d.attachListener(d,"keyup",function(){b.hiddenMode=0}),d.attachListener(d,"keydown",function(c){if("wysiwyg"==a.mode)switch(c.data.getKeystroke()){case 2228240:case 16:b.hiddenMode=1,b.line.detach()}}),d.attachListener(b.inInlineMode?d:g,"mousemove",function(c){f=!0;if("wysiwyg"==a.mode&&!a.readOnly&&!k){var d={x:c.data.$.clientX,y:c.data.$.clientY};k=setTimeout(function(){b.mouse=d;k=b.trigger=null;N(b);f&&!b.hiddenMode&&a.focusManager.hasFocus&&!b.line.mouseNear()&&(b.element= -ha(b,!0))&&((b.trigger=ca(b)||ea(b)||ia(b))&&!aa(b,b.trigger.upper||b.trigger.lower)?b.line.attach().place():(b.trigger=null,b.line.detach()),f=!1)},30)}}),d.attachListener(l,"scroll",function(){"wysiwyg"==a.mode&&(b.line.detach(),t.webkit&&(b.hiddenMode=1,clearTimeout(e),e=setTimeout(function(){b.mouseDown||(b.hiddenMode=0)},50)))}),d.attachListener(ja?g:l,"mousedown",function(){"wysiwyg"==a.mode&&(b.line.detach(),b.hiddenMode=1,b.mouseDown=1)}),d.attachListener(ja?g:l,"mouseup",function(){b.hiddenMode= -0;b.mouseDown=0}),a.addCommand("accessPreviousSpace",Y(b)),a.addCommand("accessNextSpace",Y(b,!0)),a.setKeystroke([[c.magicline_keystrokePrevious,"accessPreviousSpace"],[c.magicline_keystrokeNext,"accessNextSpace"]]),a.on("loadSnapshot",function(){var c,d,e,f;for(f in{p:1,br:1,div:1})for(c=a.document.getElementsByTag(f),e=c.count();e--;)if((d=c.getItem(e)).data("cke-magicline-hot")){b.hotNode=d;b.lastCmdDirection="true"===d.data("cke-magicline-dir")?!0:!1;return}}),this.backdoor={accessFocusSpace:S, -boxTrigger:z,isLine:A,getAscendantTrigger:O,getNonEmptyNeighbour:w,getSize:U,that:b,triggerEdge:ea,triggerEditable:ca,triggerExpand:ia})},this)}});var v=CKEDITOR.tools.extend,R=CKEDITOR.dom.element,G=R.createFromHtml,t=CKEDITOR.env,ja=CKEDITOR.env.ie&&9>CKEDITOR.env.version,B=CKEDITOR.dtd,K={},I=128,da=64,T=32,M=16,C=4,D=2,x=1,J=" ",fa=B.$listItem,oa=B.$tableContent,ma=v({},B.$nonEditable,B.$empty),Z=B.$block,ga=100,Q="width:0px;height:0px;padding:0px;margin:0px;display:block;z-index:9999;color:#fff;position:absolute;font-size: 0px;line-height:0px;", -X=Q+"border-color:transparent;display:block;border-style:solid;",W="\x3cspan\x3e"+J+"\x3c/span\x3e";K[CKEDITOR.ENTER_BR]="br";K[CKEDITOR.ENTER_P]="p";K[CKEDITOR.ENTER_DIV]="div";z.prototype={set:function(a,c,d){this.properties=a+c+(d||x);return this},is:function(a){return(this.properties&a)==a}};var ha=function(){function a(a,d){var b=a.$.elementFromPoint(d.x,d.y);return b&&b.nodeType?new CKEDITOR.dom.element(b):null}return function(c,d,b){if(!c.mouse)return null;var e=c.doc,f=c.line.wrap;b=b||c.mouse; -var k=a(e,b);d&&A(c,k)&&(f.hide(),k=a(e,b),f.show());return!k||k.type!=CKEDITOR.NODE_ELEMENT||!k.$||t.ie&&9>t.version&&!c.boundary.equals(k)&&!c.boundary.contains(k)?null:k}}(),E=CKEDITOR.dom.walker.whitespaces(),F=CKEDITOR.dom.walker.nodeType(CKEDITOR.NODE_COMMENT),ia=function(){function a(a){var b=a.element,e,f,k;if(!n(b)||b.contains(a.editable)||b.isReadOnly())return null;k=pa(a,function(a,b){return!b.equals(a)},function(a,b){return ha(a,!0,b)},b);e=k.upper;f=k.lower;if(V(a,e,f))return k.set(T, -8);if(e&&b.contains(e))for(;!e.getParent().equals(b);)e=e.getParent();else e=b.getFirst(function(b){return c(a,b)});if(f&&b.contains(f))for(;!f.getParent().equals(b);)f=f.getParent();else f=b.getLast(function(b){return c(a,b)});if(!e||!f)return null;r(a,e);r(a,f);if(!q(a.mouse.y,e.size.top,f.size.bottom))return null;for(var b=Number.MAX_VALUE,h,g,l,p;f&&!f.equals(e)&&(g=e.getNext(a.isRelevant));)h=Math.abs(ka(a,e,g)-a.mouse.y),h<b&&(b=h,l=e,p=g),e=g,r(a,e);if(!l||!p||!q(a.mouse.y,l.size.top,p.size.bottom))return null; -k.upper=l;k.lower=p;return k.set(T,8)}function c(a,b){return!(b&&b.type==CKEDITOR.NODE_TEXT||F(b)||u(b)||A(a,b)||b.type==CKEDITOR.NODE_ELEMENT&&b.$&&b.is("br"))}return function(c){var b=a(c),e;if(e=b){e=b.upper;var f=b.lower;e=!e||!f||u(f)||u(e)||f.equals(e)||e.equals(f)||f.contains(e)||e.contains(f)?!1:L(c,e)&&L(c,f)&&V(c,e,f)?!0:!1}return e?b:null}}(),y=["top","left","right","bottom"]})();CKEDITOR.config.magicline_keystrokePrevious=CKEDITOR.CTRL+CKEDITOR.SHIFT+51; -CKEDITOR.config.magicline_keystrokeNext=CKEDITOR.CTRL+CKEDITOR.SHIFT+52;(function(){function n(a){if(!a||a.type!=CKEDITOR.NODE_ELEMENT||"form"!=a.getName())return[];for(var e=[],f=["style","className"],b=0;b<f.length;b++){var c=a.$.elements.namedItem(f[b]);c&&(c=new CKEDITOR.dom.element(c),e.push([c,c.nextSibling]),c.remove())}return e}function t(a,e){if(a&&a.type==CKEDITOR.NODE_ELEMENT&&"form"==a.getName()&&0<e.length)for(var f=e.length-1;0<=f;f--){var b=e[f][0],c=e[f][1];c?b.insertBefore(c):b.appendTo(a)}}function r(a,e){var f=n(a),b={},c=a.$;e||(b["class"]=c.className|| -"",c.className="");b.inline=c.style.cssText||"";e||(c.style.cssText="position: static; overflow: visible");t(f);return b}function u(a,e){var f=n(a),b=a.$;"class"in e&&(b.className=e["class"]);"inline"in e&&(b.style.cssText=e.inline);t(f)}function v(a){if(!a.editable().isInline()){var e=CKEDITOR.instances,f;for(f in e){var b=e[f];"wysiwyg"!=b.mode||b.readOnly||(b=b.document.getBody(),b.setAttribute("contentEditable",!1),b.setAttribute("contentEditable",!0))}a.editable().hasFocus&&(a.toolbox.focus(), -a.focus())}}CKEDITOR.plugins.add("maximize",{init:function(a){function e(){var b=c.getViewPaneSize();a.resize(b.width,b.height,null,!0)}if(a.elementMode!=CKEDITOR.ELEMENT_MODE_INLINE){var f=a.lang,b=CKEDITOR.document,c=b.getWindow(),l,m,p,n=CKEDITOR.TRISTATE_OFF;a.addCommand("maximize",{modes:{wysiwyg:!CKEDITOR.env.iOS,source:!CKEDITOR.env.iOS},readOnly:1,editorFocus:!1,exec:function(){var h=a.container.getFirst(function(a){return a.type==CKEDITOR.NODE_ELEMENT&&a.hasClass("cke_inner")}),g=a.ui.space("contents"); -if("wysiwyg"==a.mode){var d=a.getSelection();l=d&&d.getRanges();m=c.getScrollPosition()}else{var k=a.editable().$;l=!CKEDITOR.env.ie&&[k.selectionStart,k.selectionEnd];m=[k.scrollLeft,k.scrollTop]}if(this.state==CKEDITOR.TRISTATE_OFF){c.on("resize",e);p=c.getScrollPosition();for(d=a.container;d=d.getParent();)d.setCustomData("maximize_saved_styles",r(d)),d.setStyle("z-index",a.config.baseFloatZIndex-5);g.setCustomData("maximize_saved_styles",r(g,!0));h.setCustomData("maximize_saved_styles",r(h,!0)); -g={overflow:CKEDITOR.env.webkit?"":"hidden",width:0,height:0};b.getDocumentElement().setStyles(g);!CKEDITOR.env.gecko&&b.getDocumentElement().setStyle("position","fixed");CKEDITOR.env.gecko&&CKEDITOR.env.quirks||b.getBody().setStyles(g);CKEDITOR.env.ie?setTimeout(function(){c.$.scrollTo(0,0)},0):c.$.scrollTo(0,0);h.setStyle("position",CKEDITOR.env.gecko&&CKEDITOR.env.quirks?"fixed":"absolute");h.$.offsetLeft;h.setStyles({"z-index":a.config.baseFloatZIndex-5,left:"0px",top:"0px"});h.addClass("cke_maximized"); -e();g=h.getDocumentPosition();h.setStyles({left:-1*g.x+"px",top:-1*g.y+"px"});CKEDITOR.env.gecko&&v(a)}else if(this.state==CKEDITOR.TRISTATE_ON){c.removeListener("resize",e);for(var d=[g,h],q=0;q<d.length;q++)u(d[q],d[q].getCustomData("maximize_saved_styles")),d[q].removeCustomData("maximize_saved_styles");for(d=a.container;d=d.getParent();)u(d,d.getCustomData("maximize_saved_styles")),d.removeCustomData("maximize_saved_styles");CKEDITOR.env.ie?setTimeout(function(){c.$.scrollTo(p.x,p.y)},0):c.$.scrollTo(p.x, -p.y);h.removeClass("cke_maximized");CKEDITOR.env.webkit&&(h.setStyle("display","inline"),setTimeout(function(){h.setStyle("display","block")},0));a.fire("resize",{outerHeight:a.container.$.offsetHeight,contentsHeight:g.$.offsetHeight,outerWidth:a.container.$.offsetWidth})}this.toggleState();if(d=this.uiItems[0])g=this.state==CKEDITOR.TRISTATE_OFF?f.maximize.maximize:f.maximize.minimize,d=CKEDITOR.document.getById(d._.id),d.getChild(1).setHtml(g),d.setAttribute("title",g),d.setAttribute("href",'javascript:void("'+ -g+'");');"wysiwyg"==a.mode?l?(CKEDITOR.env.gecko&&v(a),a.getSelection().selectRanges(l),(k=a.getSelection().getStartElement())&&k.scrollIntoView(!0)):c.$.scrollTo(m.x,m.y):(l&&(k.selectionStart=l[0],k.selectionEnd=l[1]),k.scrollLeft=m[0],k.scrollTop=m[1]);l=m=null;n=this.state;a.fire("maximize",this.state)},canUndo:!1});a.ui.addButton&&a.ui.addButton("Maximize",{label:f.maximize.maximize,command:"maximize",toolbar:"tools,10"});a.on("mode",function(){var b=a.getCommand("maximize");b.setState(b.state== -CKEDITOR.TRISTATE_DISABLED?CKEDITOR.TRISTATE_DISABLED:n)},null,null,100)}}})})();(function(){var f={canUndo:!1,async:!0,exec:function(a,b){var c=a.lang,e=CKEDITOR.tools.keystrokeToString(c.common.keyboard,a.getCommandKeystroke(CKEDITOR.env.ie?a.commands.paste:this)),d=b&&"undefined"!==typeof b.notification?b.notification:!b||!b.from||"keystrokeHandler"===b.from&&CKEDITOR.env.ie,c=d&&"string"===typeof d?d:c.pastetext.pasteNotification.replace(/%1/,'\x3ckbd aria-label\x3d"'+e.aria+'"\x3e'+e.display+"\x3c/kbd\x3e");a.execCommand("paste",{type:"text",notification:d?c:!1})}};CKEDITOR.plugins.add("pastetext", -{requires:"clipboard",init:function(a){var b=CKEDITOR.env.safari?CKEDITOR.CTRL+CKEDITOR.ALT+CKEDITOR.SHIFT+86:CKEDITOR.CTRL+CKEDITOR.SHIFT+86;a.addCommand("pastetext",f);a.setKeystroke(b,"pastetext");a.ui.addButton&&a.ui.addButton("PasteText",{label:a.lang.pastetext.button,command:"pastetext",toolbar:"clipboard,40"});if(a.config.forcePasteAsPlainText)a.on("beforePaste",function(a){"html"!=a.data.type&&(a.data.type="text")});a.on("pasteState",function(b){a.getCommand("pastetext").setState(b.data)})}})})();(function(){function l(a,c,f){var d=CKEDITOR.cleanWord;d?f():(a=CKEDITOR.getUrl(a.config.pasteFromWordCleanupFile||c+"filter/default.js"),CKEDITOR.scriptLoader.load(a,f,null,!0));return!d}CKEDITOR.plugins.add("pastefromword",{requires:"clipboard",init:function(a){var c=0,f=this.path;a.addCommand("pastefromword",{canUndo:!1,async:!0,exec:function(a,b){c=1;a.execCommand("paste",{type:"html",notification:b&&"undefined"!==typeof b.notification?b.notification:!0})}});a.ui.addButton&&a.ui.addButton("PasteFromWord", -{label:a.lang.pastefromword.toolbar,command:"pastefromword",toolbar:"clipboard,50"});a.on("paste",function(d){var b=d.data,g=(CKEDITOR.plugins.clipboard.isCustomDataTypesSupported?b.dataTransfer.getData("text/html",!0):null)||b.dataValue,e={dataValue:g},h=/(class=\"?Mso|style=(?:\"|\')[^\"]*?\bmso\-|w:WordDocument|<o:\w+>|<\/font>)/,h=/<meta\s*name=(?:\"|\')?generator(?:\"|\')?\s*content=(?:\"|\')?microsoft/gi.test(g)||h.test(g);if(g&&(c||h)&&(!1!==a.fire("pasteFromWord",e)||c)){b.dontFilter=!0;var k= -l(a,f,function(){if(k)a.fire("paste",b);else if(!a.config.pasteFromWordPromptCleanup||c||confirm(a.lang.pastefromword.confirmCleanup))e.dataValue=CKEDITOR.cleanWord(e.dataValue,a),a.fire("afterPasteFromWord",e),b.dataValue=e.dataValue;c=0});k&&d.cancel()}},null,null,3)}})})();CKEDITOR.plugins.add("removeformat",{init:function(a){a.addCommand("removeFormat",CKEDITOR.plugins.removeformat.commands.removeformat);a.ui.addButton&&a.ui.addButton("RemoveFormat",{label:a.lang.removeformat.toolbar,command:"removeFormat",toolbar:"cleanup,10"})}}); -CKEDITOR.plugins.removeformat={commands:{removeformat:{exec:function(a){for(var h=a._.removeFormatRegex||(a._.removeFormatRegex=new RegExp("^(?:"+a.config.removeFormatTags.replace(/,/g,"|")+")$","i")),e=a._.removeAttributes||(a._.removeAttributes=a.config.removeFormatAttributes.split(",")),f=CKEDITOR.plugins.removeformat.filter,m=a.getSelection().getRanges(),n=m.createIterator(),p=function(a){return a.type==CKEDITOR.NODE_ELEMENT},c;c=n.getNextRange();){c.collapsed||c.enlarge(CKEDITOR.ENLARGE_ELEMENT); -var l=c.createBookmark(),b=l.startNode,d=l.endNode,k=function(b){for(var c=a.elementPath(b),e=c.elements,d=1,g;(g=e[d])&&!g.equals(c.block)&&!g.equals(c.blockLimit);d++)h.test(g.getName())&&f(a,g)&&b.breakParent(g)};k(b);if(d)for(k(d),b=b.getNextSourceNode(!0,CKEDITOR.NODE_ELEMENT);b&&!b.equals(d);)if(b.isReadOnly()){if(b.getPosition(d)&CKEDITOR.POSITION_CONTAINS)break;b=b.getNext(p)}else k=b.getNextSourceNode(!1,CKEDITOR.NODE_ELEMENT),"img"==b.getName()&&b.data("cke-realelement")||!f(a,b)||(h.test(b.getName())? -b.remove(1):(b.removeAttributes(e),a.fire("removeFormatCleanup",b))),b=k;c.moveToBookmark(l)}a.forceNextSelectionCheck();a.getSelection().selectRanges(m)}}},filter:function(a,h){for(var e=a._.removeFormatFilters||[],f=0;f<e.length;f++)if(!1===e[f](h))return!1;return!0}};CKEDITOR.editor.prototype.addRemoveFormatFilter=function(a){this._.removeFormatFilters||(this._.removeFormatFilters=[]);this._.removeFormatFilters.push(a)};CKEDITOR.config.removeFormatTags="b,big,cite,code,del,dfn,em,font,i,ins,kbd,q,s,samp,small,span,strike,strong,sub,sup,tt,u,var"; -CKEDITOR.config.removeFormatAttributes="class,style,lang,width,height,align,hspace,valign";(function(){var f={preserveState:!0,editorFocus:!1,readOnly:1,exec:function(a){this.toggleState();this.refresh(a)},refresh:function(a){if(a.document){var b=this.state==CKEDITOR.TRISTATE_ON?"attachClass":"removeClass";a.editable()[b]("cke_show_borders")}}};CKEDITOR.plugins.add("showborders",{modes:{wysiwyg:1},onLoad:function(){var a;a=(CKEDITOR.env.ie6Compat?[".%1 table.%2,",".%1 table.%2 td, .%1 table.%2 th","{","border : #d3d3d3 1px dotted","}"]:".%1 table.%2,;.%1 table.%2 \x3e tr \x3e td, .%1 table.%2 \x3e tr \x3e th,;.%1 table.%2 \x3e tbody \x3e tr \x3e td, .%1 table.%2 \x3e tbody \x3e tr \x3e th,;.%1 table.%2 \x3e thead \x3e tr \x3e td, .%1 table.%2 \x3e thead \x3e tr \x3e th,;.%1 table.%2 \x3e tfoot \x3e tr \x3e td, .%1 table.%2 \x3e tfoot \x3e tr \x3e th;{;border : #d3d3d3 1px dotted;}".split(";")).join("").replace(/%2/g, -"cke_show_border").replace(/%1/g,"cke_show_borders ");CKEDITOR.addCss(a)},init:function(a){var b=a.addCommand("showborders",f);b.canUndo=!1;!1!==a.config.startupShowBorders&&b.setState(CKEDITOR.TRISTATE_ON);a.on("mode",function(){b.state!=CKEDITOR.TRISTATE_DISABLED&&b.refresh(a)},null,null,100);a.on("contentDom",function(){b.state!=CKEDITOR.TRISTATE_DISABLED&&b.refresh(a)});a.on("removeFormatCleanup",function(d){d=d.data;a.getCommand("showborders").state==CKEDITOR.TRISTATE_ON&&d.is("table")&&(!d.hasAttribute("border")|| -0>=parseInt(d.getAttribute("border"),10))&&d.addClass("cke_show_border")})},afterInit:function(a){var b=a.dataProcessor;a=b&&b.dataFilter;b=b&&b.htmlFilter;a&&a.addRules({elements:{table:function(a){a=a.attributes;var b=a["class"],c=parseInt(a.border,10);c&&!(0>=c)||b&&-1!=b.indexOf("cke_show_border")||(a["class"]=(b||"")+" cke_show_border")}}});b&&b.addRules({elements:{table:function(a){a=a.attributes;var b=a["class"];b&&(a["class"]=b.replace("cke_show_border","").replace(/\s{2}/," ").replace(/^\s+|\s+$/, -""))}}})}});CKEDITOR.on("dialogDefinition",function(a){var b=a.data.name;if("table"==b||"tableProperties"==b)if(a=a.data.definition,b=a.getContents("info").get("txtBorder"),b.commit=CKEDITOR.tools.override(b.commit,function(a){return function(b,c){a.apply(this,arguments);var e=parseInt(this.getValue(),10);c[!e||0>=e?"addClass":"removeClass"]("cke_show_border")}}),a=(a=a.getContents("advanced"))&&a.get("advCSSClasses"))a.setup=CKEDITOR.tools.override(a.setup,function(a){return function(){a.apply(this, -arguments);this.setValue(this.getValue().replace(/cke_show_border/,""))}}),a.commit=CKEDITOR.tools.override(a.commit,function(a){return function(b,c){a.apply(this,arguments);parseInt(c.getAttribute("border"),10)||c.addClass("cke_show_border")}})})})();(function(){CKEDITOR.plugins.add("sourcearea",{init:function(a){function d(){var a=e&&this.equals(CKEDITOR.document.getActive());this.hide();this.setStyle("height",this.getParent().$.clientHeight+"px");this.setStyle("width",this.getParent().$.clientWidth+"px");this.show();a&&this.focus()}if(a.elementMode!=CKEDITOR.ELEMENT_MODE_INLINE){var f=CKEDITOR.plugins.sourcearea;a.addMode("source",function(e){var b=a.ui.space("contents").getDocument().createElement("textarea");b.setStyles(CKEDITOR.tools.extend({width:CKEDITOR.env.ie7Compat? -"99%":"100%",height:"100%",resize:"none",outline:"none","text-align":"left"},CKEDITOR.tools.cssVendorPrefix("tab-size",a.config.sourceAreaTabSize||4)));b.setAttribute("dir","ltr");b.addClass("cke_source").addClass("cke_reset").addClass("cke_enable_context_menu");a.ui.space("contents").append(b);b=a.editable(new c(a,b));b.setData(a.getData(1));CKEDITOR.env.ie&&(b.attachListener(a,"resize",d,b),b.attachListener(CKEDITOR.document.getWindow(),"resize",d,b),CKEDITOR.tools.setTimeout(d,0,b));a.fire("ariaWidget", -this);e()});a.addCommand("source",f.commands.source);a.ui.addButton&&a.ui.addButton("Source",{label:a.lang.sourcearea.toolbar,command:"source",toolbar:"mode,10"});a.on("mode",function(){a.getCommand("source").setState("source"==a.mode?CKEDITOR.TRISTATE_ON:CKEDITOR.TRISTATE_OFF)});var e=CKEDITOR.env.ie&&9==CKEDITOR.env.version}}});var c=CKEDITOR.tools.createClass({base:CKEDITOR.editable,proto:{setData:function(a){this.setValue(a);this.status="ready";this.editor.fire("dataReady")},getData:function(){return this.getValue()}, -insertHtml:function(){},insertElement:function(){},insertText:function(){},setReadOnly:function(a){this[(a?"set":"remove")+"Attribute"]("readOnly","readonly")},detach:function(){c.baseProto.detach.call(this);this.clearCustomData();this.remove()}}})})(); -CKEDITOR.plugins.sourcearea={commands:{source:{modes:{wysiwyg:1,source:1},editorFocus:!1,readOnly:1,exec:function(c){"wysiwyg"==c.mode&&c.fire("saveSnapshot");c.getCommand("source").setState(CKEDITOR.TRISTATE_DISABLED);c.setMode("source"==c.mode?"wysiwyg":"source")},canUndo:!1}}};CKEDITOR.plugins.add("specialchar",{availableLangs:{af:1,ar:1,az:1,bg:1,ca:1,cs:1,cy:1,da:1,de:1,"de-ch":1,el:1,en:1,"en-au":1,"en-ca":1,"en-gb":1,eo:1,es:1,"es-mx":1,et:1,eu:1,fa:1,fi:1,fr:1,"fr-ca":1,gl:1,he:1,hr:1,hu:1,id:1,it:1,ja:1,km:1,ko:1,ku:1,lt:1,lv:1,nb:1,nl:1,no:1,oc:1,pl:1,pt:1,"pt-br":1,ru:1,si:1,sk:1,sl:1,sq:1,sv:1,th:1,tr:1,tt:1,ug:1,uk:1,vi:1,zh:1,"zh-cn":1},requires:"dialog",init:function(a){var c=this;CKEDITOR.dialog.add("specialchar",this.path+"dialogs/specialchar.js");a.addCommand("specialchar", -{exec:function(){var b=a.langCode,b=c.availableLangs[b]?b:c.availableLangs[b.replace(/-.*/,"")]?b.replace(/-.*/,""):"en";CKEDITOR.scriptLoader.load(CKEDITOR.getUrl(c.path+"dialogs/lang/"+b+".js"),function(){CKEDITOR.tools.extend(a.lang.specialchar,c.langEntries[b]);a.openDialog("specialchar")})},modes:{wysiwyg:1},canUndo:!1});a.ui.addButton&&a.ui.addButton("SpecialChar",{label:a.lang.specialchar.toolbar,command:"specialchar",toolbar:"insert,50"})}});CKEDITOR.config.specialChars="! \x26quot; # $ % \x26amp; ' ( ) * + - . / 0 1 2 3 4 5 6 7 8 9 : ; \x26lt; \x3d \x26gt; ? @ A B C D E F G H I J K L M N O P Q R S T U V W X Y Z [ ] ^ _ ` a b c d e f g h i j k l m n o p q r s t u v w x y z { | } ~ \x26euro; \x26lsquo; \x26rsquo; \x26ldquo; \x26rdquo; \x26ndash; \x26mdash; \x26iexcl; \x26cent; \x26pound; \x26curren; \x26yen; \x26brvbar; \x26sect; \x26uml; \x26copy; \x26ordf; \x26laquo; \x26not; \x26reg; \x26macr; \x26deg; \x26sup2; \x26sup3; \x26acute; \x26micro; \x26para; \x26middot; \x26cedil; \x26sup1; \x26ordm; \x26raquo; \x26frac14; \x26frac12; \x26frac34; \x26iquest; \x26Agrave; \x26Aacute; \x26Acirc; \x26Atilde; \x26Auml; \x26Aring; \x26AElig; \x26Ccedil; \x26Egrave; \x26Eacute; \x26Ecirc; \x26Euml; \x26Igrave; \x26Iacute; \x26Icirc; \x26Iuml; \x26ETH; \x26Ntilde; \x26Ograve; \x26Oacute; \x26Ocirc; \x26Otilde; \x26Ouml; \x26times; \x26Oslash; \x26Ugrave; \x26Uacute; \x26Ucirc; \x26Uuml; \x26Yacute; \x26THORN; \x26szlig; \x26agrave; \x26aacute; \x26acirc; \x26atilde; \x26auml; \x26aring; \x26aelig; \x26ccedil; \x26egrave; \x26eacute; \x26ecirc; \x26euml; \x26igrave; \x26iacute; \x26icirc; \x26iuml; \x26eth; \x26ntilde; \x26ograve; \x26oacute; \x26ocirc; \x26otilde; \x26ouml; \x26divide; \x26oslash; \x26ugrave; \x26uacute; \x26ucirc; \x26uuml; \x26yacute; \x26thorn; \x26yuml; \x26OElig; \x26oelig; \x26#372; \x26#374 \x26#373 \x26#375; \x26sbquo; \x26#8219; \x26bdquo; \x26hellip; \x26trade; \x26#9658; \x26bull; \x26rarr; \x26rArr; \x26hArr; \x26diams; \x26asymp;".split(" ");CKEDITOR.plugins.add("menubutton",{requires:"button,menu",onLoad:function(){var d=function(c){var a=this._,b=a.menu;a.state!==CKEDITOR.TRISTATE_DISABLED&&(a.on&&b?b.hide():(a.previousState=a.state,b||(b=a.menu=new CKEDITOR.menu(c,{panel:{className:"cke_menu_panel",attributes:{"aria-label":c.lang.common.options}}}),b.onHide=CKEDITOR.tools.bind(function(){var b=this.command?c.getCommand(this.command).modes:this.modes;this.setState(!b||b[c.mode]?a.previousState:CKEDITOR.TRISTATE_DISABLED);a.on=0},this), -this.onMenu&&b.addListener(this.onMenu)),this.setState(CKEDITOR.TRISTATE_ON),a.on=1,setTimeout(function(){b.show(CKEDITOR.document.getById(a.id),4)},0)))};CKEDITOR.ui.menuButton=CKEDITOR.tools.createClass({base:CKEDITOR.ui.button,$:function(c){delete c.panel;this.base(c);this.hasArrow=!0;this.click=d},statics:{handler:{create:function(c){return new CKEDITOR.ui.menuButton(c)}}}})},beforeInit:function(d){d.ui.addHandler(CKEDITOR.UI_MENUBUTTON,CKEDITOR.ui.menuButton.handler)}}); -CKEDITOR.UI_MENUBUTTON="menubutton";CKEDITOR.plugins.add("scayt",{requires:"menubutton,dialog",tabToOpen:null,dialogName:"scaytDialog",onLoad:function(a){CKEDITOR.plugins.scayt.onLoadTimestamp=(new Date).getTime();"moono-lisa"==(CKEDITOR.skinName||a.config.skin)&&CKEDITOR.document.appendStyleSheet(this.path+"skins/"+CKEDITOR.skin.name+"/scayt.css");CKEDITOR.document.appendStyleSheet(this.path+"dialogs/dialog.css")},init:function(a){var c=this,d=CKEDITOR.plugins.scayt;this.bindEvents(a);this.parseConfig(a);this.addRule(a);CKEDITOR.dialog.add(this.dialogName, -CKEDITOR.getUrl(this.path+"dialogs/options.js"));this.addMenuItems(a);var b=a.lang.scayt,e=CKEDITOR.env;a.ui.add("Scayt",CKEDITOR.UI_MENUBUTTON,{label:b.text_title,title:a.plugins.wsc?a.lang.wsc.title:b.text_title,modes:{wysiwyg:!(e.ie&&(8>e.version||e.quirks))},toolbar:"spellchecker,20",refresh:function(){var b=a.ui.instances.Scayt.getState();a.scayt&&(b=d.state.scayt[a.name]?CKEDITOR.TRISTATE_ON:CKEDITOR.TRISTATE_OFF);a.fire("scaytButtonState",b)},onRender:function(){var b=this;a.on("scaytButtonState", -function(a){void 0!==typeof a.data&&b.setState(a.data)})},onMenu:function(){var b=a.scayt;a.getMenuItem("scaytToggle").label=a.lang.scayt[b&&d.state.scayt[a.name]?"btn_disable":"btn_enable"];var c={scaytToggle:CKEDITOR.TRISTATE_OFF,scaytOptions:b?CKEDITOR.TRISTATE_OFF:CKEDITOR.TRISTATE_DISABLED,scaytLangs:b?CKEDITOR.TRISTATE_OFF:CKEDITOR.TRISTATE_DISABLED,scaytDict:b?CKEDITOR.TRISTATE_OFF:CKEDITOR.TRISTATE_DISABLED,scaytAbout:b?CKEDITOR.TRISTATE_OFF:CKEDITOR.TRISTATE_DISABLED,WSC:a.plugins.wsc?CKEDITOR.TRISTATE_OFF: -CKEDITOR.TRISTATE_DISABLED};a.config.scayt_uiTabs[0]||delete c.scaytOptions;a.config.scayt_uiTabs[1]||delete c.scaytLangs;a.config.scayt_uiTabs[2]||delete c.scaytDict;b&&!CKEDITOR.plugins.scayt.isNewUdSupported(b)&&(delete c.scaytDict,a.config.scayt_uiTabs[2]=0,CKEDITOR.plugins.scayt.alarmCompatibilityMessage());return c}});a.contextMenu&&a.addMenuItems&&(a.contextMenu.addListener(function(b,d){var h=a.scayt,k,e;h&&(e=h.getSelectionNode())&&(k=c.menuGenerator(a,e),h.showBanner("."+a.contextMenu._.definition.panel.className.split(" ").join(" ."))); -return k}),a.contextMenu._.onHide=CKEDITOR.tools.override(a.contextMenu._.onHide,function(b){return function(){var d=a.scayt;d&&d.hideBanner();return b.apply(this)}}))},addMenuItems:function(a){var c=this,d=CKEDITOR.plugins.scayt;a.addMenuGroup("scaytButton");for(var b=a.config.scayt_contextMenuItemsOrder.split("|"),e=0;e<b.length;e++)b[e]="scayt_"+b[e];if((b=["grayt_description","grayt_suggest","grayt_control"].concat(b))&&b.length)for(e=0;e<b.length;e++)a.addMenuGroup(b[e],e-10);a.addCommand("scaytToggle", -{exec:function(a){var b=a.scayt;d.state.scayt[a.name]=!d.state.scayt[a.name];!0===d.state.scayt[a.name]?b||d.createScayt(a):b&&d.destroy(a)}});a.addCommand("scaytAbout",{exec:function(a){a.scayt.tabToOpen="about";a.lockSelection();a.openDialog(c.dialogName)}});a.addCommand("scaytOptions",{exec:function(a){a.scayt.tabToOpen="options";a.lockSelection();a.openDialog(c.dialogName)}});a.addCommand("scaytLangs",{exec:function(a){a.scayt.tabToOpen="langs";a.lockSelection();a.openDialog(c.dialogName)}}); -a.addCommand("scaytDict",{exec:function(a){a.scayt.tabToOpen="dictionaries";a.lockSelection();a.openDialog(c.dialogName)}});b={scaytToggle:{label:a.lang.scayt.btn_enable,group:"scaytButton",command:"scaytToggle"},scaytAbout:{label:a.lang.scayt.btn_about,group:"scaytButton",command:"scaytAbout"},scaytOptions:{label:a.lang.scayt.btn_options,group:"scaytButton",command:"scaytOptions"},scaytLangs:{label:a.lang.scayt.btn_langs,group:"scaytButton",command:"scaytLangs"},scaytDict:{label:a.lang.scayt.btn_dictionaries, -group:"scaytButton",command:"scaytDict"}};a.plugins.wsc&&(b.WSC={label:a.lang.wsc.toolbar,group:"scaytButton",onClick:function(){var b=CKEDITOR.plugins.scayt,d=a.scayt,c=a.elementMode==CKEDITOR.ELEMENT_MODE_INLINE?a.container.getText():a.document.getBody().getText();(c=c.replace(/\s/g,""))?(d&&b.state.scayt[a.name]&&d.setMarkupPaused&&d.setMarkupPaused(!0),a.lockSelection(),a.execCommand("checkspell")):alert("Nothing to check!")}});a.addMenuItems(b)},bindEvents:function(a){var c=CKEDITOR.plugins.scayt, -d=a.elementMode==CKEDITOR.ELEMENT_MODE_INLINE,b=function(){c.destroy(a)},e=function(){!c.state.scayt[a.name]||a.readOnly||a.scayt||c.createScayt(a)},f=function(){var b=a.editable();b.attachListener(b,"focus",function(b){CKEDITOR.plugins.scayt&&!a.scayt&&setTimeout(e,0);b=CKEDITOR.plugins.scayt&&CKEDITOR.plugins.scayt.state.scayt[a.name]&&a.scayt;var c,h;if((d||b)&&a._.savedSelection){b=a._.savedSelection.getSelectedElement();b=!b&&a._.savedSelection.getRanges();for(var f=0;f<b.length;f++)h=b[f],"string"=== -typeof h.startContainer.$.nodeValue&&(c=h.startContainer.getText().length,(c<h.startOffset||c<h.endOffset)&&a.unlockSelection(!1))}},this,null,-10)},g=function(){d?a.config.scayt_inlineModeImmediateMarkup?e():(a.on("blur",function(){setTimeout(b,0)}),a.on("focus",e),a.focusManager.hasFocus&&e()):e();f();var c=a.editable();c.attachListener(c,"mousedown",function(b){b=b.data.getTarget();var d=a.widgets&&a.widgets.getByElement(b);d&&(d.wrapper=b.getAscendant(function(a){return a.hasAttribute("data-cke-widget-wrapper")}, -!0))},this,null,-10)};a.on("contentDom",g);a.on("beforeCommandExec",function(b){var d=a.scayt,e=!1,f=!1,g=!0;b.data.name in c.options.disablingCommandExec&&"wysiwyg"==a.mode?d&&(c.destroy(a),a.fire("scaytButtonState",CKEDITOR.TRISTATE_DISABLED)):"bold"!==b.data.name&&"italic"!==b.data.name&&"underline"!==b.data.name&&"strike"!==b.data.name&&"subscript"!==b.data.name&&"superscript"!==b.data.name&&"enter"!==b.data.name&&"cut"!==b.data.name&&"language"!==b.data.name||!d||("cut"===b.data.name&&(g=!1, -f=!0),"language"===b.data.name&&(f=e=!0),a.fire("reloadMarkupScayt",{removeOptions:{removeInside:g,forceBookmark:f,language:e},timeout:0}))});a.on("beforeSetMode",function(b){if("source"==b.data){if(b=a.scayt)c.destroy(a),a.fire("scaytButtonState",CKEDITOR.TRISTATE_DISABLED);a.document&&a.document.getBody().removeAttribute("_jquid")}});a.on("afterCommandExec",function(b){"wysiwyg"!=a.mode||"undo"!=b.data.name&&"redo"!=b.data.name||setTimeout(function(){c.reloadMarkup(a.scayt)},250)});a.on("readOnly", -function(b){var d;b&&(d=a.scayt,!0===b.editor.readOnly?d&&d.fire("removeMarkupInDocument",{}):d?c.reloadMarkup(d):"wysiwyg"==b.editor.mode&&!0===c.state.scayt[b.editor.name]&&(c.createScayt(a),b.editor.fire("scaytButtonState",CKEDITOR.TRISTATE_ON)))});a.on("beforeDestroy",b);a.on("setData",function(){b();(a.elementMode==CKEDITOR.ELEMENT_MODE_INLINE||a.plugins.divarea)&&g()},this,null,50);a.on("reloadMarkupScayt",function(b){var d=b.data&&b.data.removeOptions,e=b.data&&b.data.timeout,f=b.data&&b.data.language, -g=a.scayt;g&&setTimeout(function(){f&&(d.selectionNode=a.plugins.language.getCurrentLangElement(a),d.selectionNode=d.selectionNode&&d.selectionNode.$||null);g.removeMarkupInSelectionNode(d);c.reloadMarkup(g)},e||0)});a.on("insertElement",function(){a.fire("reloadMarkupScayt",{removeOptions:{forceBookmark:!0}})},this,null,50);a.on("insertHtml",function(){a.scayt&&a.scayt.setFocused&&a.scayt.setFocused(!0);a.fire("reloadMarkupScayt")},this,null,50);a.on("insertText",function(){a.scayt&&a.scayt.setFocused&& -a.scayt.setFocused(!0);a.fire("reloadMarkupScayt")},this,null,50);a.on("scaytDialogShown",function(b){b.data.selectPage(a.scayt.tabToOpen)})},parseConfig:function(a){var c=CKEDITOR.plugins.scayt;c.replaceOldOptionsNames(a.config);"boolean"!==typeof a.config.scayt_autoStartup&&(a.config.scayt_autoStartup=!1);c.state.scayt[a.name]=a.config.scayt_autoStartup;"boolean"!==typeof a.config.grayt_autoStartup&&(a.config.grayt_autoStartup=!1);"boolean"!==typeof a.config.scayt_inlineModeImmediateMarkup&&(a.config.scayt_inlineModeImmediateMarkup= -!1);c.state.grayt[a.name]=a.config.grayt_autoStartup;a.config.scayt_contextCommands||(a.config.scayt_contextCommands="ignoreall|add");a.config.scayt_contextMenuItemsOrder||(a.config.scayt_contextMenuItemsOrder="suggest|moresuggest|control");a.config.scayt_sLang||(a.config.scayt_sLang="en_US");if(void 0===a.config.scayt_maxSuggestions||"number"!=typeof a.config.scayt_maxSuggestions||0>a.config.scayt_maxSuggestions)a.config.scayt_maxSuggestions=5;if(void 0===a.config.scayt_minWordLength||"number"!= -typeof a.config.scayt_minWordLength||1>a.config.scayt_minWordLength)a.config.scayt_minWordLength=4;if(void 0===a.config.scayt_customDictionaryIds||"string"!==typeof a.config.scayt_customDictionaryIds)a.config.scayt_customDictionaryIds="";if(void 0===a.config.scayt_userDictionaryName||"string"!==typeof a.config.scayt_userDictionaryName)a.config.scayt_userDictionaryName=null;if("string"===typeof a.config.scayt_uiTabs&&3===a.config.scayt_uiTabs.split(",").length){var d=[],b=[];a.config.scayt_uiTabs= -a.config.scayt_uiTabs.split(",");CKEDITOR.tools.search(a.config.scayt_uiTabs,function(a){1===Number(a)||0===Number(a)?(b.push(!0),d.push(Number(a))):b.push(!1)});null===CKEDITOR.tools.search(b,!1)?a.config.scayt_uiTabs=d:a.config.scayt_uiTabs=[1,1,1]}else a.config.scayt_uiTabs=[1,1,1];"string"!=typeof a.config.scayt_serviceProtocol&&(a.config.scayt_serviceProtocol=null);"string"!=typeof a.config.scayt_serviceHost&&(a.config.scayt_serviceHost=null);"string"!=typeof a.config.scayt_servicePort&&(a.config.scayt_servicePort= -null);"string"!=typeof a.config.scayt_servicePath&&(a.config.scayt_servicePath=null);a.config.scayt_moreSuggestions||(a.config.scayt_moreSuggestions="on");"string"!==typeof a.config.scayt_customerId&&(a.config.scayt_customerId="1:WvF0D4-UtPqN1-43nkD4-NKvUm2-daQqk3-LmNiI-z7Ysb4-mwry24-T8YrS3-Q2tpq2");"string"!==typeof a.config.scayt_customPunctuation&&(a.config.scayt_customPunctuation="-");"string"!==typeof a.config.scayt_srcUrl&&(c=document.location.protocol,c=-1!=c.search(/https?:/)?c:"http:",a.config.scayt_srcUrl= -c+"//svc.webspellchecker.net/spellcheck31/lf/scayt3/ckscayt/ckscayt.js");"boolean"!==typeof CKEDITOR.config.scayt_handleCheckDirty&&(CKEDITOR.config.scayt_handleCheckDirty=!0);"boolean"!==typeof CKEDITOR.config.scayt_handleUndoRedo&&(CKEDITOR.config.scayt_handleUndoRedo=!0);CKEDITOR.config.scayt_handleUndoRedo=CKEDITOR.plugins.undo?CKEDITOR.config.scayt_handleUndoRedo:!1;"boolean"!==typeof a.config.scayt_multiLanguageMode&&(a.config.scayt_multiLanguageMode=!1);"object"!==typeof a.config.scayt_multiLanguageStyles&& -(a.config.scayt_multiLanguageStyles={});a.config.scayt_ignoreAllCapsWords&&"boolean"!==typeof a.config.scayt_ignoreAllCapsWords&&(a.config.scayt_ignoreAllCapsWords=!1);a.config.scayt_ignoreDomainNames&&"boolean"!==typeof a.config.scayt_ignoreDomainNames&&(a.config.scayt_ignoreDomainNames=!1);a.config.scayt_ignoreWordsWithMixedCases&&"boolean"!==typeof a.config.scayt_ignoreWordsWithMixedCases&&(a.config.scayt_ignoreWordsWithMixedCases=!1);a.config.scayt_ignoreWordsWithNumbers&&"boolean"!==typeof a.config.scayt_ignoreWordsWithNumbers&& -(a.config.scayt_ignoreWordsWithNumbers=!1);if(a.config.scayt_disableOptionsStorage){var c=CKEDITOR.tools.isArray(a.config.scayt_disableOptionsStorage)?a.config.scayt_disableOptionsStorage:"string"===typeof a.config.scayt_disableOptionsStorage?[a.config.scayt_disableOptionsStorage]:void 0,e="all options lang ignore-all-caps-words ignore-domain-names ignore-words-with-mixed-cases ignore-words-with-numbers".split(" "),f=["lang","ignore-all-caps-words","ignore-domain-names","ignore-words-with-mixed-cases", -"ignore-words-with-numbers"],g=CKEDITOR.tools.search,h=CKEDITOR.tools.indexOf;a.config.scayt_disableOptionsStorage=function(a){for(var b=[],d=0;d<a.length;d++){var c=a[d],n=!!g(a,"options");if(!g(e,c)||n&&g(f,function(a){if("lang"===a)return!1}))return;g(f,c)&&f.splice(h(f,c),1);if("all"===c||n&&g(a,"lang"))return[];"options"===c&&(f=["lang"])}return b=b.concat(f)}(c)}},addRule:function(a){var c=CKEDITOR.plugins.scayt,d=a.dataProcessor,b=d&&d.htmlFilter,e=a._.elementsPath&&a._.elementsPath.filters, -d=d&&d.dataFilter,f=a.addRemoveFormatFilter,g=function(b){if(a.scayt&&(b.hasAttribute(c.options.data_attribute_name)||b.hasAttribute(c.options.problem_grammar_data_attribute)))return!1},h=function(b){var d=!0;a.scayt&&(b.hasAttribute(c.options.data_attribute_name)||b.hasAttribute(c.options.problem_grammar_data_attribute))&&(d=!1);return d};e&&e.push(g);d&&d.addRules({elements:{span:function(a){var b=a.hasClass(c.options.misspelled_word_class)&&a.attributes[c.options.data_attribute_name],d=a.hasClass(c.options.problem_grammar_class)&& -a.attributes[c.options.problem_grammar_data_attribute];c&&(b||d)&&delete a.name;return a}}});b&&b.addRules({elements:{span:function(a){var b=a.hasClass(c.options.misspelled_word_class)&&a.attributes[c.options.data_attribute_name],d=a.hasClass(c.options.problem_grammar_class)&&a.attributes[c.options.problem_grammar_data_attribute];c&&(b||d)&&delete a.name;return a}}});f&&f.call(a,h)},scaytMenuDefinition:function(a){var c=this;a=a.scayt;return{scayt:{scayt_ignore:{label:a.getLocal("btn_ignore"),group:"scayt_control", -order:1,exec:function(a){a.scayt.ignoreWord()}},scayt_ignoreall:{label:a.getLocal("btn_ignoreAll"),group:"scayt_control",order:2,exec:function(a){a.scayt.ignoreAllWords()}},scayt_add:{label:a.getLocal("btn_addWord"),group:"scayt_control",order:3,exec:function(a){var b=a.scayt;setTimeout(function(){b.addWordToUserDictionary()},10)}},scayt_option:{label:a.getLocal("btn_options"),group:"scayt_control",order:4,exec:function(a){a.scayt.tabToOpen="options";a.lockSelection();a.openDialog(c.dialogName)}, -verification:function(a){return 1==a.config.scayt_uiTabs[0]?!0:!1}},scayt_language:{label:a.getLocal("btn_langs"),group:"scayt_control",order:5,exec:function(a){a.scayt.tabToOpen="langs";a.lockSelection();a.openDialog(c.dialogName)},verification:function(a){return 1==a.config.scayt_uiTabs[1]?!0:!1}},scayt_dictionary:{label:a.getLocal("btn_dictionaries"),group:"scayt_control",order:6,exec:function(a){a.scayt.tabToOpen="dictionaries";a.lockSelection();a.openDialog(c.dialogName)},verification:function(a){return 1== -a.config.scayt_uiTabs[2]?!0:!1}},scayt_about:{label:a.getLocal("btn_about"),group:"scayt_control",order:7,exec:function(a){a.scayt.tabToOpen="about";a.lockSelection();a.openDialog(c.dialogName)}}},grayt:{grayt_problemdescription:{label:"Grammar problem description",group:"grayt_description",order:1,state:CKEDITOR.TRISTATE_DISABLED,exec:function(a){}},grayt_ignore:{label:a.getLocal("btn_ignore"),group:"grayt_control",order:2,exec:function(a){a.scayt.ignorePhrase()}},grayt_ignoreall:{label:a.getLocal("btn_ignoreAll"), -group:"grayt_control",order:3,exec:function(a){a.scayt.ignoreAllPhrases()}}}}},buildSuggestionMenuItems:function(a,c,d){var b={},e={},f=d?"word":"phrase",g=d?"startGrammarCheck":"startSpellCheck",h=a.scayt;if(0<c.length&&"no_any_suggestions"!==c[0])if(d)for(d=0;d<c.length;d++){var k="scayt_suggest_"+CKEDITOR.plugins.scayt.suggestions[d].replace(" ","_");a.addCommand(k,this.createCommand(CKEDITOR.plugins.scayt.suggestions[d],f,g));d<a.config.scayt_maxSuggestions?(a.addMenuItem(k,{label:c[d],command:k, -group:"scayt_suggest",order:d+1}),b[k]=CKEDITOR.TRISTATE_OFF):(a.addMenuItem(k,{label:c[d],command:k,group:"scayt_moresuggest",order:d+1}),e[k]=CKEDITOR.TRISTATE_OFF,"on"===a.config.scayt_moreSuggestions&&(a.addMenuItem("scayt_moresuggest",{label:h.getLocal("btn_moreSuggestions"),group:"scayt_moresuggest",order:10,getItems:function(){return e}}),b.scayt_moresuggest=CKEDITOR.TRISTATE_OFF))}else for(d=0;d<c.length;d++)k="grayt_suggest_"+CKEDITOR.plugins.scayt.suggestions[d].replace(" ","_"),a.addCommand(k, -this.createCommand(CKEDITOR.plugins.scayt.suggestions[d],f,g)),a.addMenuItem(k,{label:c[d],command:k,group:"grayt_suggest",order:d+1}),b[k]=CKEDITOR.TRISTATE_OFF;else b.no_scayt_suggest=CKEDITOR.TRISTATE_DISABLED,a.addCommand("no_scayt_suggest",{exec:function(){}}),a.addMenuItem("no_scayt_suggest",{label:h.getLocal("btn_noSuggestions")||"no_scayt_suggest",command:"no_scayt_suggest",group:"scayt_suggest",order:0});return b},menuGenerator:function(a,c){var d=a.scayt,b=this.scaytMenuDefinition(a),e= -{},f=a.config.scayt_contextCommands.split("|"),g=c.getAttribute(d.getLangAttribute())||d.getLang(),h,k,m;h=d.isScaytNode(c);k=d.isGraytNode(c);h?(b=b.scayt,e=c.getAttribute(d.getScaytNodeAttributeName()),d.fire("getSuggestionsList",{lang:g,word:e}),e=this.buildSuggestionMenuItems(a,CKEDITOR.plugins.scayt.suggestions,h)):k&&(b=b.grayt,e=c.getAttribute(d.getGraytNodeAttributeName()),m=d.getProblemDescriptionText(e,g),b.grayt_problemdescription&&m&&(b.grayt_problemdescription.label=m),d.fire("getGrammarSuggestionsList", -{lang:g,phrase:e}),e=this.buildSuggestionMenuItems(a,CKEDITOR.plugins.scayt.suggestions,h));if(h&&"off"==a.config.scayt_contextCommands)return e;for(var l in b)h&&-1==CKEDITOR.tools.indexOf(f,l.replace("scayt_",""))&&"all"!=a.config.scayt_contextCommands||k&&"grayt_problemdescription"!==l&&-1==CKEDITOR.tools.indexOf(f,l.replace("grayt_",""))&&"all"!=a.config.scayt_contextCommands||(e[l]="undefined"!=typeof b[l].state?b[l].state:CKEDITOR.TRISTATE_OFF,"function"!==typeof b[l].verification||b[l].verification(a)|| -delete e[l],a.addCommand(l,{exec:b[l].exec}),a.addMenuItem(l,{label:a.lang.scayt[b[l].label]||b[l].label,command:l,group:b[l].group,order:b[l].order}));return e},createCommand:function(a,c,d){return{exec:function(b){b=b.scayt;var e={};e[c]=a;b.replaceSelectionNode(e);"startGrammarCheck"===d&&b.removeMarkupInSelectionNode({grammarOnly:!0});b.fire(d)}}}}); -CKEDITOR.plugins.scayt={charsToObserve:[{charName:"cke-fillingChar",charCode:function(){var a=CKEDITOR.version.match(/^\d(\.\d*)*/),a=a&&a[0],c;if(a){c="4.5.7";var d,a=a.replace(/\./g,"");c=c.replace(/\./g,"");d=a.length-c.length;d=0<=d?d:0;c=parseInt(a)>=parseInt(c)*Math.pow(10,d)}return c?Array(7).join(String.fromCharCode(8203)):String.fromCharCode(8203)}()}],onLoadTimestamp:"",state:{scayt:{},grayt:{}},warningCounter:0,suggestions:[],options:{disablingCommandExec:{source:!0,newpage:!0,templates:!0}, -data_attribute_name:"data-scayt-word",misspelled_word_class:"scayt-misspell-word",problem_grammar_data_attribute:"data-grayt-phrase",problem_grammar_class:"gramm-problem"},backCompatibilityMap:{scayt_service_protocol:"scayt_serviceProtocol",scayt_service_host:"scayt_serviceHost",scayt_service_port:"scayt_servicePort",scayt_service_path:"scayt_servicePath",scayt_customerid:"scayt_customerId"},alarmCompatibilityMessage:function(){5>this.warningCounter&&(console.warn("You are using the latest version of SCAYT plugin for CKEditor with the old application version. In order to have access to the newest features, it is recommended to upgrade the application version to latest one as well. Contact us for more details at support@webspellchecker.net."), -this.warningCounter+=1)},isNewUdSupported:function(a){return a.getUserDictionary?!0:!1},reloadMarkup:function(a){var c;a&&(c=a.getScaytLangList(),a.reloadMarkup?a.reloadMarkup():(this.alarmCompatibilityMessage(),c&&c.ltr&&c.rtl&&a.fire("startSpellCheck, startGrammarCheck")))},replaceOldOptionsNames:function(a){for(var c in a)c in this.backCompatibilityMap&&(a[this.backCompatibilityMap[c]]=a[c],delete a[c])},createScayt:function(a){var c=this,d=CKEDITOR.plugins.scayt;this.loadScaytLibrary(a,function(a){function e(a){return new SCAYT.CKSCAYT(a, -function(){},function(){})}var f=a.window&&a.window.getFrame()||a.editable();if(f){f={lang:a.config.scayt_sLang,container:f.$,customDictionary:a.config.scayt_customDictionaryIds,userDictionaryName:a.config.scayt_userDictionaryName,localization:a.langCode,customer_id:a.config.scayt_customerId,customPunctuation:a.config.scayt_customPunctuation,debug:a.config.scayt_debug,data_attribute_name:c.options.data_attribute_name,misspelled_word_class:c.options.misspelled_word_class,problem_grammar_data_attribute:c.options.problem_grammar_data_attribute, -problem_grammar_class:c.options.problem_grammar_class,"options-to-restore":a.config.scayt_disableOptionsStorage,focused:a.editable().hasFocus,ignoreElementsRegex:a.config.scayt_elementsToIgnore,ignoreGraytElementsRegex:a.config.grayt_elementsToIgnore,minWordLength:a.config.scayt_minWordLength,multiLanguageMode:a.config.scayt_multiLanguageMode,multiLanguageStyles:a.config.scayt_multiLanguageStyles,graytAutoStartup:a.config.grayt_autoStartup,charsToObserve:d.charsToObserve};a.config.scayt_serviceProtocol&& -(f.service_protocol=a.config.scayt_serviceProtocol);a.config.scayt_serviceHost&&(f.service_host=a.config.scayt_serviceHost);a.config.scayt_servicePort&&(f.service_port=a.config.scayt_servicePort);a.config.scayt_servicePath&&(f.service_path=a.config.scayt_servicePath);"boolean"===typeof a.config.scayt_ignoreAllCapsWords&&(f["ignore-all-caps-words"]=a.config.scayt_ignoreAllCapsWords);"boolean"===typeof a.config.scayt_ignoreDomainNames&&(f["ignore-domain-names"]=a.config.scayt_ignoreDomainNames);"boolean"=== -typeof a.config.scayt_ignoreWordsWithMixedCases&&(f["ignore-words-with-mixed-cases"]=a.config.scayt_ignoreWordsWithMixedCases);"boolean"===typeof a.config.scayt_ignoreWordsWithNumbers&&(f["ignore-words-with-numbers"]=a.config.scayt_ignoreWordsWithNumbers);var g;try{g=e(f)}catch(h){c.alarmCompatibilityMessage(),delete f.charsToObserve,g=e(f)}g.subscribe("suggestionListSend",function(a){for(var b={},d=[],c=0;c<a.suggestionList.length;c++)b["word_"+a.suggestionList[c]]||(b["word_"+a.suggestionList[c]]= -a.suggestionList[c],d.push(a.suggestionList[c]));CKEDITOR.plugins.scayt.suggestions=d});g.subscribe("selectionIsChanged",function(d){a.getSelection().isLocked&&a.lockSelection()});g.subscribe("graytStateChanged",function(c){d.state.grayt[a.name]=c.state});g.addMarkupHandler&&g.addMarkupHandler(function(d){var c=a.editable(),e=c.getCustomData(d.charName);e&&(e.$=d.node,c.setCustomData(d.charName,e))});a.scayt=g;a.fire("scaytButtonState",a.readOnly?CKEDITOR.TRISTATE_DISABLED:CKEDITOR.TRISTATE_ON)}else d.state.scayt[a.name]= -!1})},destroy:function(a){a.scayt&&a.scayt.destroy();delete a.scayt;a.fire("scaytButtonState",CKEDITOR.TRISTATE_OFF)},loadScaytLibrary:function(a,c){var d,b=function(){CKEDITOR.fireOnce("scaytReady");a.scayt||"function"===typeof c&&c(a)};"undefined"===typeof window.SCAYT||"function"!==typeof window.SCAYT.CKSCAYT?(d=a.config.scayt_srcUrl+"?"+this.onLoadTimestamp,CKEDITOR.scriptLoader.load(d,function(a){a&&b()})):window.SCAYT&&"function"===typeof window.SCAYT.CKSCAYT&&b()}}; -CKEDITOR.on("dialogDefinition",function(a){var c=a.data.name;a=a.data.definition.dialog;if("scaytDialog"===c)a.on("cancel",function(a){return!1},this,null,-1);if("checkspell"===c)a.on("cancel",function(a){a=a.sender&&a.sender.getParentEditor();var b=CKEDITOR.plugins.scayt,c=a.scayt;c&&b.state.scayt[a.name]&&c.setMarkupPaused&&c.setMarkupPaused(!1);a.unlockSelection()},this,null,-2);if("link"===c)a.on("ok",function(a){var b=a.sender&&a.sender.getParentEditor();b&&setTimeout(function(){b.fire("reloadMarkupScayt", -{removeOptions:{removeInside:!0,forceBookmark:!0},timeout:0})},0)});if("replace"===c)a.on("hide",function(a){a=a.sender&&a.sender.getParentEditor();var b=CKEDITOR.plugins.scayt,c=a.scayt;a&&setTimeout(function(){c&&(c.fire("removeMarkupInDocument",{}),b.reloadMarkup(c))},0)})}); -CKEDITOR.on("scaytReady",function(){if(!0===CKEDITOR.config.scayt_handleCheckDirty){var a=CKEDITOR.editor.prototype;a.checkDirty=CKEDITOR.tools.override(a.checkDirty,function(a){return function(){var b=null,c=this.scayt;if(CKEDITOR.plugins.scayt&&CKEDITOR.plugins.scayt.state.scayt[this.name]&&this.scayt){if(b="ready"==this.status)var f=c.removeMarkupFromString(this.getSnapshot()),c=c.removeMarkupFromString(this._.previousValue),b=b&&c!==f}else b=a.call(this);return b}});a.resetDirty=CKEDITOR.tools.override(a.resetDirty, -function(a){return function(){var b=this.scayt;CKEDITOR.plugins.scayt&&CKEDITOR.plugins.scayt.state.scayt[this.name]&&this.scayt?this._.previousValue=b.removeMarkupFromString(this.getSnapshot()):a.call(this)}})}if(!0===CKEDITOR.config.scayt_handleUndoRedo){var a=CKEDITOR.plugins.undo.Image.prototype,c="function"==typeof a.equalsContent?"equalsContent":"equals";a[c]=CKEDITOR.tools.override(a[c],function(a){return function(b){var c=b.editor.scayt,f=this.contents,g=b.contents,h=null;CKEDITOR.plugins.scayt&& -CKEDITOR.plugins.scayt.state.scayt[b.editor.name]&&b.editor.scayt&&(this.contents=c.removeMarkupFromString(f)||"",b.contents=c.removeMarkupFromString(g)||"");h=a.apply(this,arguments);this.contents=f;b.contents=g;return h}})}});(function(){CKEDITOR.plugins.add("stylescombo",{requires:"richcombo",init:function(c){var l=c.config,g=c.lang.stylescombo,f={},k=[],m=[];c.on("stylesSet",function(b){if(b=b.data.styles){for(var a,h,d,e=0,n=b.length;e<n;e++)(a=b[e],c.blockless&&a.element in CKEDITOR.dtd.$block||"string"==typeof a.type&&!CKEDITOR.style.customHandlers[a.type]||(h=a.name,a=new CKEDITOR.style(a),c.filter.customConfig&&!c.filter.check(a)))||(a._name=h,a._.enterMode=l.enterMode,a._.type=d=a.assignedTo||a.type,a._.weight= -e+1E3*(d==CKEDITOR.STYLE_OBJECT?1:d==CKEDITOR.STYLE_BLOCK?2:3),f[h]=a,k.push(a),m.push(a));k.sort(function(a,b){return a._.weight-b._.weight})}});c.ui.addRichCombo("Styles",{label:g.label,title:g.panelTitle,toolbar:"styles,10",allowedContent:m,panel:{css:[CKEDITOR.skin.getPath("editor")].concat(l.contentsCss),multiSelect:!0,attributes:{"aria-label":g.panelTitle}},init:function(){var b,a,c,d,e,f;e=0;for(f=k.length;e<f;e++)b=k[e],a=b._name,d=b._.type,d!=c&&(this.startGroup(g["panelTitle"+String(d)]), -c=d),this.add(a,b.type==CKEDITOR.STYLE_OBJECT?a:b.buildPreview(),a);this.commit()},onClick:function(b){c.focus();c.fire("saveSnapshot");b=f[b];var a=c.elementPath();if(b.group&&b.removeStylesFromSameGroup(c))c.applyStyle(b);else c[b.checkActive(a,c)?"removeStyle":"applyStyle"](b);c.fire("saveSnapshot")},onRender:function(){c.on("selectionChange",function(b){var a=this.getValue();b=b.data.path.elements;for(var h=0,d=b.length,e;h<d;h++){e=b[h];for(var g in f)if(f[g].checkElementRemovable(e,!0,c)){g!= -a&&this.setValue(g);return}}this.setValue("")},this)},onOpen:function(){var b=c.getSelection().getSelectedElement()||c.editable(),b=c.elementPath(b),a=[0,0,0,0];this.showAll();this.unmarkAll();for(var h in f){var d=f[h],e=d._.type;d.checkApplicable(b,c,c.activeFilter)?a[e]++:this.hideItem(h);d.checkActive(b,c)&&this.mark(h)}a[CKEDITOR.STYLE_BLOCK]||this.hideGroup(g["panelTitle"+String(CKEDITOR.STYLE_BLOCK)]);a[CKEDITOR.STYLE_INLINE]||this.hideGroup(g["panelTitle"+String(CKEDITOR.STYLE_INLINE)]);a[CKEDITOR.STYLE_OBJECT]|| -this.hideGroup(g["panelTitle"+String(CKEDITOR.STYLE_OBJECT)])},refresh:function(){var b=c.elementPath();if(b){for(var a in f)if(f[a].checkApplicable(b,c,c.activeFilter))return;this.setState(CKEDITOR.TRISTATE_DISABLED)}},reset:function(){f={};k=[]}})}})})();(function(){function k(c){return{editorFocus:!1,canUndo:!1,modes:{wysiwyg:1},exec:function(d){if(d.editable().hasFocus){var e=d.getSelection(),b;if(b=(new CKEDITOR.dom.elementPath(e.getCommonAncestor(),e.root)).contains({td:1,th:1},1)){var e=d.createRange(),a=CKEDITOR.tools.tryThese(function(){var a=b.getParent().$.cells[b.$.cellIndex+(c?-1:1)];a.parentNode.parentNode;return a},function(){var a=b.getParent(),a=a.getAscendant("table").$.rows[a.$.rowIndex+(c?-1:1)];return a.cells[c?a.cells.length-1: -0]});if(a||c)if(a)a=new CKEDITOR.dom.element(a),e.moveToElementEditStart(a),e.checkStartOfBlock()&&e.checkEndOfBlock()||e.selectNodeContents(a);else return!0;else{for(var f=b.getAscendant("table").$,a=b.getParent().$.cells,f=new CKEDITOR.dom.element(f.insertRow(-1),d.document),g=0,h=a.length;g<h;g++)f.append((new CKEDITOR.dom.element(a[g],d.document)).clone(!1,!1)).appendBogus();e.moveToElementEditStart(f)}e.select(!0);return!0}}return!1}}}var h={editorFocus:!1,modes:{wysiwyg:1,source:1}},g={exec:function(c){c.container.focusNext(!0, -c.tabIndex)}},f={exec:function(c){c.container.focusPrevious(!0,c.tabIndex)}};CKEDITOR.plugins.add("tab",{init:function(c){for(var d=!1!==c.config.enableTabKeyTools,e=c.config.tabSpaces||0,b="";e--;)b+=" ";if(b)c.on("key",function(a){9==a.data.keyCode&&(c.insertText(b),a.cancel())});if(d)c.on("key",function(a){(9==a.data.keyCode&&c.execCommand("selectNextCell")||a.data.keyCode==CKEDITOR.SHIFT+9&&c.execCommand("selectPreviousCell"))&&a.cancel()});c.addCommand("blur",CKEDITOR.tools.extend(g,h));c.addCommand("blurBack", -CKEDITOR.tools.extend(f,h));c.addCommand("selectNextCell",k());c.addCommand("selectPreviousCell",k(!0))}})})(); -CKEDITOR.dom.element.prototype.focusNext=function(k,h){var g=void 0===h?this.getTabIndex():h,f,c,d,e,b,a;if(0>=g)for(b=this.getNextSourceNode(k,CKEDITOR.NODE_ELEMENT);b;){if(b.isVisible()&&0===b.getTabIndex()){d=b;break}b=b.getNextSourceNode(!1,CKEDITOR.NODE_ELEMENT)}else for(b=this.getDocument().getBody().getFirst();b=b.getNextSourceNode(!1,CKEDITOR.NODE_ELEMENT);){if(!f)if(!c&&b.equals(this)){if(c=!0,k){if(!(b=b.getNextSourceNode(!0,CKEDITOR.NODE_ELEMENT)))break;f=1}}else c&&!this.contains(b)&& -(f=1);if(b.isVisible()&&!(0>(a=b.getTabIndex()))){if(f&&a==g){d=b;break}a>g&&(!d||!e||a<e)?(d=b,e=a):d||0!==a||(d=b,e=a)}}d&&d.focus()}; -CKEDITOR.dom.element.prototype.focusPrevious=function(k,h){for(var g=void 0===h?this.getTabIndex():h,f,c,d,e=0,b,a=this.getDocument().getBody().getLast();a=a.getPreviousSourceNode(!1,CKEDITOR.NODE_ELEMENT);){if(!f)if(!c&&a.equals(this)){if(c=!0,k){if(!(a=a.getPreviousSourceNode(!0,CKEDITOR.NODE_ELEMENT)))break;f=1}}else c&&!this.contains(a)&&(f=1);if(a.isVisible()&&!(0>(b=a.getTabIndex())))if(0>=g){if(f&&0===b){d=a;break}b>e&&(d=a,e=b)}else{if(f&&b==g){d=a;break}b<g&&(!d||b>e)&&(d=a,e=b)}}d&&d.focus()};CKEDITOR.plugins.add("table",{requires:"dialog",init:function(a){function f(c){return CKEDITOR.tools.extend(c||{},{contextSensitive:1,refresh:function(c,b){this.setState(b.contains("table",1)?CKEDITOR.TRISTATE_OFF:CKEDITOR.TRISTATE_DISABLED)}})}if(!a.blockless){var e=a.lang.table;a.addCommand("table",new CKEDITOR.dialogCommand("table",{context:"table",allowedContent:"table{width,height}[align,border,cellpadding,cellspacing,summary];caption tbody thead tfoot;th td tr[scope];"+(a.plugins.dialogadvtab? -"table"+a.plugins.dialogadvtab.allowedContent():""),requiredContent:"table",contentTransformations:[["table{width}: sizeToStyle","table[width]: sizeToAttribute"],["td: splitBorderShorthand"],[{element:"table",right:function(c){if(c.styles){var a;if(c.styles.border)a=CKEDITOR.tools.style.parse.border(c.styles.border);else if(CKEDITOR.env.ie&&8===CKEDITOR.env.version){var b=c.styles;b["border-left"]&&b["border-left"]===b["border-right"]&&b["border-right"]===b["border-top"]&&b["border-top"]===b["border-bottom"]&& -(a=CKEDITOR.tools.style.parse.border(b["border-top"]))}a&&a.style&&"solid"===a.style&&a.width&&0!==parseFloat(a.width)&&(c.attributes.border=1);"collapse"==c.styles["border-collapse"]&&(c.attributes.cellspacing=0)}}}]]}));a.addCommand("tableProperties",new CKEDITOR.dialogCommand("tableProperties",f()));a.addCommand("tableDelete",f({exec:function(a){var d=a.elementPath().contains("table",1);if(d){var b=d.getParent(),e=a.editable();1!=b.getChildCount()||b.is("td","th")||b.equals(e)||(d=b);a=a.createRange(); -a.moveToPosition(d,CKEDITOR.POSITION_BEFORE_START);d.remove();a.select()}}}));a.ui.addButton&&a.ui.addButton("Table",{label:e.toolbar,command:"table",toolbar:"insert,30"});CKEDITOR.dialog.add("table",this.path+"dialogs/table.js");CKEDITOR.dialog.add("tableProperties",this.path+"dialogs/table.js");a.addMenuItems&&a.addMenuItems({table:{label:e.menu,command:"tableProperties",group:"table",order:5},tabledelete:{label:e.deleteTable,command:"tableDelete",group:"table",order:1}});a.on("doubleclick",function(a){a.data.element.is("table")&& -(a.data.dialog="tableProperties")});a.contextMenu&&a.contextMenu.addListener(function(){return{tabledelete:CKEDITOR.TRISTATE_OFF,table:CKEDITOR.TRISTATE_OFF}})}}});(function(){function q(d,f){function b(a){return f?f.contains(a)&&a.getAscendant("table",!0).equals(f):!0}function c(b){0<e.length||b.type!=CKEDITOR.NODE_ELEMENT||!F.test(b.getName())||b.getCustomData("selected_cell")||(CKEDITOR.dom.element.setMarker(a,b,"selected_cell",!0),e.push(b))}var e=[],a={};if(!d)return e;for(var g=d.getRanges(),k=0;k<g.length;k++){var h=g[k];if(h.collapsed)(h=h.getCommonAncestor().getAscendant({td:1,th:1},!0))&&b(h)&&e.push(h);else{var h=new CKEDITOR.dom.walker(h),l;for(h.guard= -c;l=h.next();)l.type==CKEDITOR.NODE_ELEMENT&&l.is(CKEDITOR.dtd.table)||(l=l.getAscendant({td:1,th:1},!0))&&!l.getCustomData("selected_cell")&&b(l)&&(CKEDITOR.dom.element.setMarker(a,l,"selected_cell",!0),e.push(l))}}CKEDITOR.dom.element.clearAllMarkers(a);return e}function r(d,f){for(var b=D(d)?d:q(d),c=b[0],e=c.getAscendant("table"),c=c.getDocument(),a=b[0].getParent(),g=a.$.rowIndex,b=b[b.length-1],k=b.getParent().$.rowIndex+b.$.rowSpan-1,b=new CKEDITOR.dom.element(e.$.rows[k]),g=f?g:k,a=f?a:b, -b=CKEDITOR.tools.buildTableMap(e),e=b[g],g=f?b[g-1]:b[g+1],b=b[0].length,c=c.createElement("tr"),k=0;e[k]&&k<b;k++){var h;1<e[k].rowSpan&&g&&e[k]==g[k]?(h=e[k],h.rowSpan+=1):(h=(new CKEDITOR.dom.element(e[k])).clone(),h.removeAttribute("rowSpan"),h.appendBogus(),c.append(h),h=h.$);k+=h.colSpan-1}f?c.insertBefore(a):c.insertAfter(a);return c}function B(d){if(d instanceof CKEDITOR.dom.selection){var f=d.getRanges(),b=q(d),c=b[0].getAscendant("table"),e=CKEDITOR.tools.buildTableMap(c),a=b[0].getParent().$.rowIndex, -b=b[b.length-1],g=b.getParent().$.rowIndex+b.$.rowSpan-1,b=[];d.reset();for(d=a;d<=g;d++){for(var k=e[d],h=new CKEDITOR.dom.element(c.$.rows[d]),l=0;l<k.length;l++){var m=new CKEDITOR.dom.element(k[l]),n=m.getParent().$.rowIndex;1==m.$.rowSpan?m.remove():(--m.$.rowSpan,n==d&&(n=e[d+1],n[l-1]?m.insertAfter(new CKEDITOR.dom.element(n[l-1])):(new CKEDITOR.dom.element(c.$.rows[d+1])).append(m,1)));l+=m.$.colSpan-1}b.push(h)}e=c.$.rows;f[0].moveToPosition(c,CKEDITOR.POSITION_BEFORE_START);a=new CKEDITOR.dom.element(e[g+ -1]||(0<a?e[a-1]:null)||c.$.parentNode);for(d=b.length;0<=d;d--)B(b[d]);return c.$.parentNode?a:(f[0].select(),null)}d instanceof CKEDITOR.dom.element&&(c=d.getAscendant("table"),1==c.$.rows.length?c.remove():d.remove());return null}function v(d,f){for(var b=d.getParent().$.cells,c=0,e=0;e<b.length;e++){var a=b[e],c=c+(f?1:a.colSpan);if(a==d.$)break}return c-1}function w(d,f){for(var b=f?Infinity:0,c=0;c<d.length;c++){var e=v(d[c],f);if(f?e<b:e>b)b=e}return b}function u(d,f){for(var b=D(d)?d:q(d), -c=b[0].getAscendant("table"),e=w(b,1),b=w(b),a=f?e:b,g=CKEDITOR.tools.buildTableMap(c),c=[],e=[],b=[],k=g.length,h=0;h<k;h++)c.push(g[h][a]),e.push(f?g[h][a-1]:g[h][a+1]);for(h=0;h<k;h++)c[h]&&(1<c[h].colSpan&&e[h]==c[h]?(g=c[h],g.colSpan+=1):(a=new CKEDITOR.dom.element(c[h]),g=a.clone(),g.removeAttribute("colSpan"),g.appendBogus(),g[f?"insertBefore":"insertAfter"].call(g,a),b.push(g),g=g.$),h+=g.rowSpan-1);return b}function y(d){function f(a){var b,c,d;b=a.getRanges();if(1!==b.length)return a;b= -b[0];if(b.collapsed||0!==b.endOffset)return a;c=b.endContainer;d=c.getName().toLowerCase();if("td"!==d&&"th"!==d)return a;for((d=c.getPrevious())||(d=c.getParent().getPrevious().getLast());d.type!==CKEDITOR.NODE_TEXT&&"br"!==d.getName().toLowerCase();)if(d=d.getLast(),!d)return a;b.setEndAt(d,CKEDITOR.POSITION_BEFORE_END);return b.select()}CKEDITOR.env.webkit&&!d.isFake&&(d=f(d));var b=d.getRanges(),c=q(d),e=c[0],a=c[c.length-1],c=e.getAscendant("table"),g=CKEDITOR.tools.buildTableMap(c),k,h,l=[]; -d.reset();var m=0;for(d=g.length;m<d;m++)for(var n=0,p=g[m].length;n<p;n++)void 0===k&&g[m][n]==e.$&&(k=n),g[m][n]==a.$&&(h=n);for(m=k;m<=h;m++)for(n=0;n<g.length;n++)a=g[n],e=new CKEDITOR.dom.element(c.$.rows[n]),a=new CKEDITOR.dom.element(a[m]),a.$&&(1==a.$.colSpan?a.remove():--a.$.colSpan,n+=a.$.rowSpan-1,e.$.cells.length||l.push(e));k=g[0].length-1>h?new CKEDITOR.dom.element(g[0][h+1]):k&&-1!==g[0][k-1].cellIndex?new CKEDITOR.dom.element(g[0][k-1]):new CKEDITOR.dom.element(c.$.parentNode);l.length== -d&&(b[0].moveToPosition(c,CKEDITOR.POSITION_AFTER_END),b[0].select(),c.remove());return k}function t(d,f){var b=d.getStartElement().getAscendant({td:1,th:1},!0);if(b){var c=b.clone();c.appendBogus();f?c.insertBefore(b):c.insertAfter(b)}}function z(d){if(d instanceof CKEDITOR.dom.selection){var f=d.getRanges(),b=q(d),c=b[0]&&b[0].getAscendant("table"),e;a:{var a=0;e=b.length-1;for(var g={},k,h;k=b[a++];)CKEDITOR.dom.element.setMarker(g,k,"delete_cell",!0);for(a=0;k=b[a++];)if((h=k.getPrevious())&& -!h.getCustomData("delete_cell")||(h=k.getNext())&&!h.getCustomData("delete_cell")){CKEDITOR.dom.element.clearAllMarkers(g);e=h;break a}CKEDITOR.dom.element.clearAllMarkers(g);a=b[0].getParent();(a=a.getPrevious())?e=a.getLast():(a=b[e].getParent(),e=(a=a.getNext())?a.getChild(0):null)}d.reset();for(d=b.length-1;0<=d;d--)z(b[d]);e?p(e,!0):c&&(f[0].moveToPosition(c,CKEDITOR.POSITION_BEFORE_START),f[0].select(),c.remove())}else d instanceof CKEDITOR.dom.element&&(f=d.getParent(),1==f.getChildCount()? -f.remove():d.remove())}function p(d,f){var b=d.getDocument(),c=CKEDITOR.document;CKEDITOR.env.ie&&10==CKEDITOR.env.version&&(c.focus(),b.focus());b=new CKEDITOR.dom.range(b);b["moveToElementEdit"+(f?"End":"Start")](d)||(b.selectNodeContents(d),b.collapse(f?!1:!0));b.select(!0)}function A(d,f,b){d=d[f];if("undefined"==typeof b)return d;for(f=0;d&&f<d.length;f++){if(b.is&&d[f]==b.$)return f;if(f==b)return new CKEDITOR.dom.element(d[f])}return b.is?-1:null}function x(d,f,b){var c=q(d),e;if((f?1!=c.length: -2>c.length)||(e=d.getCommonAncestor())&&e.type==CKEDITOR.NODE_ELEMENT&&e.is("table"))return!1;var a;d=c[0];e=d.getAscendant("table");var g=CKEDITOR.tools.buildTableMap(e),k=g.length,h=g[0].length,l=d.getParent().$.rowIndex,m=A(g,l,d);if(f){var n;try{var p=parseInt(d.getAttribute("rowspan"),10)||1;a=parseInt(d.getAttribute("colspan"),10)||1;n=g["up"==f?l-p:"down"==f?l+p:l]["left"==f?m-a:"right"==f?m+a:m]}catch(x){return!1}if(!n||d.$==n)return!1;c["up"==f||"left"==f?"unshift":"push"](new CKEDITOR.dom.element(n))}f= -d.getDocument();var r=l,p=n=0,u=!b&&new CKEDITOR.dom.documentFragment(f),w=0;for(f=0;f<c.length;f++){a=c[f];var t=a.getParent(),y=a.getFirst(),v=a.$.colSpan,z=a.$.rowSpan,t=t.$.rowIndex,B=A(g,t,a),w=w+v*z,p=Math.max(p,B-m+v);n=Math.max(n,t-l+z);b||(v=a,(z=v.getBogus())&&z.remove(),v.trim(),a.getChildren().count()&&(t==r||!y||y.isBlockBoundary&&y.isBlockBoundary({br:1})||(r=u.getLast(CKEDITOR.dom.walker.whitespaces(!0)),!r||r.is&&r.is("br")||u.append("br")),a.moveChildren(u)),f?a.remove():a.setHtml("")); -r=t}if(b)return n*p==w;u.moveChildren(d);d.appendBogus();p>=h?d.removeAttribute("rowSpan"):d.$.rowSpan=n;n>=k?d.removeAttribute("colSpan"):d.$.colSpan=p;b=new CKEDITOR.dom.nodeList(e.$.rows);c=b.count();for(f=c-1;0<=f;f--)e=b.getItem(f),e.$.cells.length||(e.remove(),c++);return d}function C(d,f){var b=q(d);if(1<b.length)return!1;if(f)return!0;var b=b[0],c=b.getParent(),e=c.getAscendant("table"),a=CKEDITOR.tools.buildTableMap(e),g=c.$.rowIndex,k=A(a,g,b),h=b.$.rowSpan,l;if(1<h){l=Math.ceil(h/2);for(var h= -Math.floor(h/2),c=g+l,e=new CKEDITOR.dom.element(e.$.rows[c]),a=A(a,c),m,c=b.clone(),g=0;g<a.length;g++)if(m=a[g],m.parentNode==e.$&&g>k){c.insertBefore(new CKEDITOR.dom.element(m));break}else m=null;m||e.append(c)}else for(h=l=1,e=c.clone(),e.insertAfter(c),e.append(c=b.clone()),m=A(a,g),k=0;k<m.length;k++)m[k].rowSpan++;c.appendBogus();b.$.rowSpan=l;c.$.rowSpan=h;1==l&&b.removeAttribute("rowSpan");1==h&&c.removeAttribute("rowSpan");return c}function E(d,f){var b=q(d);if(1<b.length)return!1;if(f)return!0; -var b=b[0],c=b.getParent(),e=c.getAscendant("table"),e=CKEDITOR.tools.buildTableMap(e),a=A(e,c.$.rowIndex,b),g=b.$.colSpan;if(1<g)c=Math.ceil(g/2),g=Math.floor(g/2);else{for(var g=c=1,k=[],h=0;h<e.length;h++){var l=e[h];k.push(l[a]);1<l[a].rowSpan&&(h+=l[a].rowSpan-1)}for(e=0;e<k.length;e++)k[e].colSpan++}e=b.clone();e.insertAfter(b);e.appendBogus();b.$.colSpan=c;e.$.colSpan=g;1==c&&b.removeAttribute("colSpan");1==g&&e.removeAttribute("colSpan");return e}var F=/^(?:td|th)$/,D=CKEDITOR.tools.isArray; -CKEDITOR.plugins.tabletools={requires:"table,dialog,contextmenu",init:function(d){function f(a){return CKEDITOR.tools.extend(a||{},{contextSensitive:1,refresh:function(a,b){this.setState(b.contains({td:1,th:1},1)?CKEDITOR.TRISTATE_OFF:CKEDITOR.TRISTATE_DISABLED)}})}function b(a,b){var c=d.addCommand(a,b);d.addFeature(c)}var c=d.lang.table,e=CKEDITOR.tools.style.parse;b("cellProperties",new CKEDITOR.dialogCommand("cellProperties",f({allowedContent:"td th{width,height,border-color,background-color,white-space,vertical-align,text-align}[colspan,rowspan]", -requiredContent:"table",contentTransformations:[[{element:"td",left:function(a){return a.styles.background&&e.background(a.styles.background).color},right:function(a){a.styles["background-color"]=e.background(a.styles.background).color}},{element:"td",check:"td{vertical-align}",left:function(a){return a.attributes&&a.attributes.valign},right:function(a){a.styles["vertical-align"]=a.attributes.valign;delete a.attributes.valign}}],[{element:"tr",check:"td{height}",left:function(a){return a.styles&& -a.styles.height},right:function(a){CKEDITOR.tools.array.forEach(a.children,function(b){b.name in{td:1,th:1}&&(b.attributes["cke-row-height"]=a.styles.height)});delete a.styles.height}}],[{element:"td",check:"td{height}",left:function(a){return(a=a.attributes)&&a["cke-row-height"]},right:function(a){a.styles.height=a.attributes["cke-row-height"];delete a.attributes["cke-row-height"]}}]]})));CKEDITOR.dialog.add("cellProperties",this.path+"dialogs/tableCell.js");b("rowDelete",f({requiredContent:"table", -exec:function(a){a=a.getSelection();(a=B(a))&&p(a)}}));b("rowInsertBefore",f({requiredContent:"table",exec:function(a){a=a.getSelection();a=q(a);r(a,!0)}}));b("rowInsertAfter",f({requiredContent:"table",exec:function(a){a=a.getSelection();a=q(a);r(a)}}));b("columnDelete",f({requiredContent:"table",exec:function(a){a=a.getSelection();(a=y(a))&&p(a,!0)}}));b("columnInsertBefore",f({requiredContent:"table",exec:function(a){a=a.getSelection();a=q(a);u(a,!0)}}));b("columnInsertAfter",f({requiredContent:"table", -exec:function(a){a=a.getSelection();a=q(a);u(a)}}));b("cellDelete",f({requiredContent:"table",exec:function(a){a=a.getSelection();z(a)}}));b("cellMerge",f({allowedContent:"td[colspan,rowspan]",requiredContent:"td[colspan,rowspan]",exec:function(a,b){b.cell=x(a.getSelection());p(b.cell,!0)}}));b("cellMergeRight",f({allowedContent:"td[colspan]",requiredContent:"td[colspan]",exec:function(a,b){b.cell=x(a.getSelection(),"right");p(b.cell,!0)}}));b("cellMergeDown",f({allowedContent:"td[rowspan]",requiredContent:"td[rowspan]", -exec:function(a,b){b.cell=x(a.getSelection(),"down");p(b.cell,!0)}}));b("cellVerticalSplit",f({allowedContent:"td[rowspan]",requiredContent:"td[rowspan]",exec:function(a){p(E(a.getSelection()))}}));b("cellHorizontalSplit",f({allowedContent:"td[colspan]",requiredContent:"td[colspan]",exec:function(a){p(C(a.getSelection()))}}));b("cellInsertBefore",f({requiredContent:"table",exec:function(a){a=a.getSelection();t(a,!0)}}));b("cellInsertAfter",f({requiredContent:"table",exec:function(a){a=a.getSelection(); -t(a)}}));d.addMenuItems&&d.addMenuItems({tablecell:{label:c.cell.menu,group:"tablecell",order:1,getItems:function(){var a=d.getSelection(),b=q(a);return{tablecell_insertBefore:CKEDITOR.TRISTATE_OFF,tablecell_insertAfter:CKEDITOR.TRISTATE_OFF,tablecell_delete:CKEDITOR.TRISTATE_OFF,tablecell_merge:x(a,null,!0)?CKEDITOR.TRISTATE_OFF:CKEDITOR.TRISTATE_DISABLED,tablecell_merge_right:x(a,"right",!0)?CKEDITOR.TRISTATE_OFF:CKEDITOR.TRISTATE_DISABLED,tablecell_merge_down:x(a,"down",!0)?CKEDITOR.TRISTATE_OFF: -CKEDITOR.TRISTATE_DISABLED,tablecell_split_vertical:E(a,!0)?CKEDITOR.TRISTATE_OFF:CKEDITOR.TRISTATE_DISABLED,tablecell_split_horizontal:C(a,!0)?CKEDITOR.TRISTATE_OFF:CKEDITOR.TRISTATE_DISABLED,tablecell_properties:0<b.length?CKEDITOR.TRISTATE_OFF:CKEDITOR.TRISTATE_DISABLED}}},tablecell_insertBefore:{label:c.cell.insertBefore,group:"tablecell",command:"cellInsertBefore",order:5},tablecell_insertAfter:{label:c.cell.insertAfter,group:"tablecell",command:"cellInsertAfter",order:10},tablecell_delete:{label:c.cell.deleteCell, -group:"tablecell",command:"cellDelete",order:15},tablecell_merge:{label:c.cell.merge,group:"tablecell",command:"cellMerge",order:16},tablecell_merge_right:{label:c.cell.mergeRight,group:"tablecell",command:"cellMergeRight",order:17},tablecell_merge_down:{label:c.cell.mergeDown,group:"tablecell",command:"cellMergeDown",order:18},tablecell_split_horizontal:{label:c.cell.splitHorizontal,group:"tablecell",command:"cellHorizontalSplit",order:19},tablecell_split_vertical:{label:c.cell.splitVertical,group:"tablecell", -command:"cellVerticalSplit",order:20},tablecell_properties:{label:c.cell.title,group:"tablecellproperties",command:"cellProperties",order:21},tablerow:{label:c.row.menu,group:"tablerow",order:1,getItems:function(){return{tablerow_insertBefore:CKEDITOR.TRISTATE_OFF,tablerow_insertAfter:CKEDITOR.TRISTATE_OFF,tablerow_delete:CKEDITOR.TRISTATE_OFF}}},tablerow_insertBefore:{label:c.row.insertBefore,group:"tablerow",command:"rowInsertBefore",order:5},tablerow_insertAfter:{label:c.row.insertAfter,group:"tablerow", -command:"rowInsertAfter",order:10},tablerow_delete:{label:c.row.deleteRow,group:"tablerow",command:"rowDelete",order:15},tablecolumn:{label:c.column.menu,group:"tablecolumn",order:1,getItems:function(){return{tablecolumn_insertBefore:CKEDITOR.TRISTATE_OFF,tablecolumn_insertAfter:CKEDITOR.TRISTATE_OFF,tablecolumn_delete:CKEDITOR.TRISTATE_OFF}}},tablecolumn_insertBefore:{label:c.column.insertBefore,group:"tablecolumn",command:"columnInsertBefore",order:5},tablecolumn_insertAfter:{label:c.column.insertAfter, -group:"tablecolumn",command:"columnInsertAfter",order:10},tablecolumn_delete:{label:c.column.deleteColumn,group:"tablecolumn",command:"columnDelete",order:15}});d.contextMenu&&d.contextMenu.addListener(function(a,b,c){return(a=c.contains({td:1,th:1},1))&&!a.isReadOnly()?{tablecell:CKEDITOR.TRISTATE_OFF,tablerow:CKEDITOR.TRISTATE_OFF,tablecolumn:CKEDITOR.TRISTATE_OFF}:null})},getCellColIndex:v,insertRow:r,insertColumn:u,getSelectedCells:q};CKEDITOR.plugins.add("tabletools",CKEDITOR.plugins.tabletools)})(); -CKEDITOR.tools.buildTableMap=function(q,r,B,v,w){q=q.$.rows;B=B||0;v="number"===typeof v?v:q.length-1;w="number"===typeof w?w:-1;var u=-1,y=[];for(r=r||0;r<=v;r++){u++;!y[u]&&(y[u]=[]);for(var t=-1,z=B;z<=(-1===w?q[r].cells.length-1:w);z++){var p=q[r].cells[z];if(!p)break;for(t++;y[u][t];)t++;for(var A=isNaN(p.colSpan)?1:p.colSpan,p=isNaN(p.rowSpan)?1:p.rowSpan,x=0;x<p&&!(r+x>v);x++){y[u+x]||(y[u+x]=[]);for(var C=0;C<A;C++)y[u+x][t+C]=q[r].cells[z]}t+=A-1;if(-1!==w&&t>=w)break}}return y};(function(){function x(a,b){var c=a.getAscendant("table"),d=b.getAscendant("table"),e=CKEDITOR.tools.buildTableMap(c),h=n(a),m=n(b),l=[],k={},f,p;c.contains(d)&&(b=b.getAscendant({td:1,th:1}),m=n(b));h>m&&(c=h,h=m,m=c,c=a,a=b,b=c);for(c=0;c<e[h].length;c++)if(a.$===e[h][c]){f=c;break}for(c=0;c<e[m].length;c++)if(b.$===e[m][c]){p=c;break}f>p&&(c=f,f=p,p=c);for(c=h;c<=m;c++)for(h=f;h<=p;h++)d=new CKEDITOR.dom.element(e[c][h]),d.$&&!d.getCustomData("selected_cell")&&(l.push(d),CKEDITOR.dom.element.setMarker(k, -d,"selected_cell",!0));CKEDITOR.dom.element.clearAllMarkers(k);return l}function G(a){if(a)return a=a.clone(),a.enlarge(CKEDITOR.ENLARGE_ELEMENT),(a=a.getEnclosedNode())&&a.is&&a.is(CKEDITOR.dtd.$tableContent)}function H(a){return(a=a.editable().findOne(".cke_table-faked-selection"))&&a.getAscendant("table")}function y(a,b){var c=a.editable().find(".cke_table-faked-selection"),d;a.fire("lockSnapshot");a.editable().removeClass("cke_table-faked-selection-editor");for(d=0;d<c.count();d++)c.getItem(d).removeClass("cke_table-faked-selection"); -0<c.count()&&c.getItem(0).getAscendant("table").data("cke-table-faked-selection-table",!1);a.fire("unlockSnapshot");b&&(g={active:!1},a.getSelection().isInTable()&&a.getSelection().reset())}function t(a,b){var c=[],d,e;for(e=0;e<b.length;e++)d=a.createRange(),d.setStartBefore(b[e]),d.setEndAfter(b[e]),c.push(d);a.getSelection().selectRanges(c)}function I(a){var b=a.editable().find(".cke_table-faked-selection");1>b.count()||(b=x(b.getItem(0),b.getItem(b.count()-1)),t(a,b))}function J(a,b,c){var d= -u(a.getSelection(!0));b=b.is("table")?null:b;var e;(e=g.active&&!g.first)&&!(e=b)&&(e=a.getSelection().getRanges(),e=1<d.length||e[0]&&!e[0].collapsed?!0:!1);if(e)g.first=b||d[0],g.dirty=b?!1:1!==d.length;else if(g.active&&b&&g.first.getAscendant("table").equals(b.getAscendant("table"))){d=x(g.first,b);if(!g.dirty&&1===d.length)return y(a,"mouseup"===c.name);g.dirty=!0;g.last=b;t(a,d)}}function K(a){var b=(a=a.editor||a.sender.editor)&&a.getSelection(),c=b&&b.getRanges()||[],d;if(b&&(y(a),b.isInTable()&& -b.isFake)){1===c.length&&c[0]._getTableElement()&&c[0]._getTableElement().is("table")&&(d=c[0]._getTableElement());d=u(b,d);a.fire("lockSnapshot");for(b=0;b<d.length;b++)d[b].addClass("cke_table-faked-selection");0<d.length&&(a.editable().addClass("cke_table-faked-selection-editor"),d[0].getAscendant("table").data("cke-table-faked-selection-table",""));a.fire("unlockSnapshot")}}function n(a){return a.getAscendant("tr",!0).$.rowIndex}function v(a){function b(a,b){return a&&b?a.equals(b)||a.contains(b)|| -b.contains(a)||a.getCommonAncestor(b).is(f):!1}function c(a){return!a.getAscendant("table",!0)&&a.getDocument().equals(e.document)}function d(a,d,e,k){return("mousedown"!==a.name||CKEDITOR.tools.getMouseButton(a)!==CKEDITOR.MOUSE_BUTTON_LEFT&&k)&&("mouseup"!==a.name||c(a.data.getTarget())||b(e,k))?!1:!0}if(a.data.getTarget().getName){var e=a.editor||a.listenerData.editor,h=e.getSelection(1),m=H(e),l=a.data.getTarget(),k=l&&l.getAscendant({td:1,th:1},!0),l=l&&l.getAscendant("table",!0),f={table:1, -thead:1,tbody:1,tfoot:1,tr:1,td:1,th:1};d(a,h,m,l)&&y(e,!0);!g.active&&"mousedown"===a.name&&CKEDITOR.tools.getMouseButton(a)===CKEDITOR.MOUSE_BUTTON_LEFT&&l&&(g={active:!0},CKEDITOR.document.on("mouseup",v,null,{editor:e}));(k||l)&&J(e,k||l,a);"mouseup"===a.name&&(CKEDITOR.tools.getMouseButton(a)===CKEDITOR.MOUSE_BUTTON_LEFT&&(c(a.data.getTarget())||b(m,l))&&I(e),g={active:!1},CKEDITOR.document.removeListener("mouseup",v))}}function L(a){var b=a.data.getTarget().getAscendant({td:1,th:1},!0);b&&!b.hasClass("cke_table-faked-selection")&& -(a.cancel(),a.data.preventDefault())}function M(a,b){function c(a){a.cancel()}var d=a.getSelection(),e=d.createBookmarks(),h=a.document,m=a.createRange(),l=h.getDocumentElement().$,k=CKEDITOR.env.ie&&9>CKEDITOR.env.version,f=a.blockless||CKEDITOR.env.ie?"span":"div",p,r,B,g;h.getById("cke_table_copybin")||(p=h.createElement(f),r=h.createElement(f),r.setAttributes({id:"cke_table_copybin","data-cke-temp":"1"}),p.setStyles({position:"absolute",width:"1px",height:"1px",overflow:"hidden"}),p.setStyle("ltr"== -a.config.contentsLangDirection?"left":"right","-5000px"),p.setHtml(a.getSelectedHtml(!0)),a.fire("lockSnapshot"),r.append(p),a.editable().append(r),g=a.on("selectionChange",c,null,null,0),k&&(B=l.scrollTop),m.selectNodeContents(p),m.select(),k&&(l.scrollTop=B),setTimeout(function(){r.remove();d.selectBookmarks(e);g.removeListener();a.fire("unlockSnapshot");b&&(a.extractSelectedHtml(),a.fire("saveSnapshot"))},100))}function C(a){var b=a.editor||a.sender.editor;b.getSelection().isInTable()&&M(b,"cut"=== -a.name)}function q(a){this._reset();a&&this.setSelectedCells(a)}function z(a,b,c){a.on("beforeCommandExec",function(d){-1!==CKEDITOR.tools.array.indexOf(b,d.data.name)&&(d.data.selectedCells=u(a.getSelection()))});a.on("afterCommandExec",function(d){-1!==CKEDITOR.tools.array.indexOf(b,d.data.name)&&c(a,d.data)})}var g={active:!1},w,u,A,D,E;q.prototype={};q.prototype._reset=function(){this.cells={first:null,last:null,all:[]};this.rows={first:null,last:null}};q.prototype.setSelectedCells=function(a){this._reset(); -a=a.slice(0);this._arraySortByDOMOrder(a);this.cells.all=a;this.cells.first=a[0];this.cells.last=a[a.length-1];this.rows.first=a[0].getAscendant("tr");this.rows.last=this.cells.last.getAscendant("tr")};q.prototype.getTableMap=function(){var a=A(this.cells.first,!0),b;a:{b=this.cells.last;var c=b.getAscendant("table"),d=n(b),c=CKEDITOR.tools.buildTableMap(c),e;for(e=0;e<c[d].length;e++)if((new CKEDITOR.dom.element(c[d][e])).equals(b)){b=e;break a}b=void 0}return CKEDITOR.tools.buildTableMap(this._getTable(), -n(this.rows.first),a,n(this.rows.last),b)};q.prototype._getTable=function(){return this.rows.first.getAscendant("table")};q.prototype.insertRow=function(a,b,c){if("undefined"===typeof a)a=1;else if(0>=a)return;for(var d=this.cells.first.$.cellIndex,e=this.cells.last.$.cellIndex,h=c?[]:this.cells.all,m,l=0;l<a;l++)m=D(c?this.cells.all:h,b),m=CKEDITOR.tools.array.filter(m.find("td, th").toArray(),function(a){return c?!0:a.$.cellIndex>=d&&a.$.cellIndex<=e}),h=b?m.concat(h):h.concat(m);this.setSelectedCells(h)}; -q.prototype.insertColumn=function(a){function b(a){a=n(a);return a>=e&&a<=h}if("undefined"===typeof a)a=1;else if(0>=a)return;for(var c=this.cells,d=c.all,e=n(c.first),h=n(c.last),c=0;c<a;c++)d=d.concat(CKEDITOR.tools.array.filter(E(d),b));this.setSelectedCells(d)};q.prototype.emptyCells=function(a){a=a||this.cells.all;for(var b=0;b<a.length;b++)a[b].setHtml("")};q.prototype._arraySortByDOMOrder=function(a){a.sort(function(a,c){return a.getPosition(c)&CKEDITOR.POSITION_PRECEDING?-1:1})};var F={onPaste:function(a){function b(a){return Math.max.apply(null, -CKEDITOR.tools.array.map(a,function(a){return a.length},0))}function c(a){var b=d.createRange();b.selectNodeContents(a);b.select()}var d=a.editor,e=d.getSelection(),h=u(e),m=this.findTableInPastedContent(d,a.data.dataValue),l=e.isInTable(!0)&&this.isBoundarySelection(e),k,f;!h.length||1===h.length&&!G(e.getRanges()[0])&&!l||l&&!m||(h=h[0].getAscendant("table"),k=new q(u(e,h)),d.once("afterPaste",function(){var a;if(f){a=new CKEDITOR.dom.element(f[0][0]);var b=f[f.length-1];a=x(a,new CKEDITOR.dom.element(b[b.length- -1]))}else a=k.cells.all;t(d,a)}),m?(a.stop(),l?(k.insertRow(1,1===l,!0),e.selectElement(k.rows.first)):(k.emptyCells(),t(d,k.cells.all)),a=k.getTableMap(),f=CKEDITOR.tools.buildTableMap(m),k.insertRow(f.length-a.length),k.insertColumn(b(f)-b(a)),a=k.getTableMap(),this.pasteTable(k,a,f),d.fire("saveSnapshot"),setTimeout(function(){d.fire("afterPaste")},0)):(c(k.cells.first),d.once("afterPaste",function(){d.fire("lockSnapshot");k.emptyCells(k.cells.all.slice(1));t(d,k.cells.all);d.fire("unlockSnapshot")})))}, -isBoundarySelection:function(a){a=a.getRanges()[0];var b=a.endContainer.getAscendant("tr",!0);if(b&&a.collapsed){if(a.checkBoundaryOfElement(b,CKEDITOR.START))return 1;if(a.checkBoundaryOfElement(b,CKEDITOR.END))return 2}return 0},findTableInPastedContent:function(a,b){var c=a.dataProcessor,d=new CKEDITOR.dom.element("body");c||(c=new CKEDITOR.htmlDataProcessor(a));d.setHtml(c.toHtml(b),{fixForBody:!1});return 1<d.getChildCount()?null:d.findOne("table")},pasteTable:function(a,b,c){var d,e=A(a.cells.first, -!0),h=a._getTable(),m={},l,k,f,p;for(f=0;f<c.length;f++)for(l=new CKEDITOR.dom.element(h.$.rows[a.rows.first.$.rowIndex+f]),p=0;p<c[f].length;p++)if(k=new CKEDITOR.dom.element(c[f][p]),d=b[f]&&b[f][p]?new CKEDITOR.dom.element(b[f][p]):null,k&&!k.getCustomData("processed")){if(d&&d.getParent())k.replace(d);else if(0===p||c[f][p-1])(d=0!==p?new CKEDITOR.dom.element(c[f][p-1]):null)&&l.equals(d.getParent())?k.insertAfter(d):0<e?l.$.cells[e]?k.insertAfter(new CKEDITOR.dom.element(l.$.cells[e])):l.append(k): -l.append(k,!0);CKEDITOR.dom.element.setMarker(m,k,"processed",!0)}else k.getCustomData("processed")&&d&&d.remove();CKEDITOR.dom.element.clearAllMarkers(m)}};CKEDITOR.plugins.tableselection={getCellsBetween:x,keyboardIntegration:function(a){function b(a){var b=a.getEnclosedNode();b&&b.is({td:1,th:1})?a.getEnclosedNode().setText(""):a.deleteContents();CKEDITOR.tools.array.forEach(a._find("td"),function(a){a.appendBogus()})}var c=a.editable();c.attachListener(c,"keydown",function(a){function c(b,e){if(!e.length)return null; -var f=a.createRange(),h=CKEDITOR.dom.range.mergeRanges(e);CKEDITOR.tools.array.forEach(h,function(a){a.enlarge(CKEDITOR.ENLARGE_ELEMENT)});var r=h[0].getBoundaryNodes(),g=r.startNode,r=r.endNode;if(g&&g.is&&g.is(m)){for(var q=g.getAscendant("table",!0),n=g.getPreviousSourceNode(!1,CKEDITOR.NODE_ELEMENT,q),t=!1,u=function(a){return!g.contains(a)&&a.is&&a.is("td","th")};n&&!u(n);)n=n.getPreviousSourceNode(!1,CKEDITOR.NODE_ELEMENT,q);!n&&r&&r.is&&!r.is("table")&&r.getNext()&&(n=r.getNext().findOne("td, th"), -t=!0);if(n)f["moveToElementEdit"+(t?"Start":"End")](n);else f.setStartBefore(g.getAscendant("table",!0)),f.collapse(!0);h[0].deleteContents();return[f]}if(g)return f.moveToElementEditablePosition(g),[f]}var h={37:1,38:1,39:1,40:1,8:1,46:1},m=CKEDITOR.tools.extend({table:1},CKEDITOR.dtd.$tableContent);delete m.td;delete m.th;return function(l){var k=l.data.getKey(),f,m=37===k||38==k,g,n,q;if(h[k]&&(f=a.getSelection())&&f.isInTable()&&f.isFake)if(g=f.getRanges(),n=g[0]._getTableElement(),q=g[g.length- -1]._getTableElement(),l.data.preventDefault(),l.cancel(),8<k&&46>k)g[0].moveToElementEditablePosition(m?n:q,!m),f.selectRanges([g[0]]);else{for(l=0;l<g.length;l++)b(g[l]);(l=c(n,g))?g=l:g[0].moveToElementEditablePosition(n);f.selectRanges(g);a.fire("saveSnapshot")}}}(a),null,null,-1);c.attachListener(c,"keypress",function(d){var c=a.getSelection(),h=d.data.$.charCode||13===d.data.getKey(),g;if(c&&c.isInTable()&&c.isFake&&h&&!(d.data.getKeystroke()&CKEDITOR.CTRL)){d=c.getRanges();h=d[0].getEnclosedNode().getAscendant({td:1, -th:1},!0);for(g=0;g<d.length;g++)b(d[g]);h&&(d[0].moveToElementEditablePosition(h),c.selectRanges([d[0]]))}},null,null,-1)},isSupportedEnvironment:!(CKEDITOR.env.ie&&11>CKEDITOR.env.version)};CKEDITOR.plugins.add("tableselection",{requires:"clipboard,tabletools",onLoad:function(){w=CKEDITOR.plugins.tabletools;u=w.getSelectedCells;A=w.getCellColIndex;D=w.insertRow;E=w.insertColumn;CKEDITOR.document.appendStyleSheet(this.path+"styles/tableselection.css")},init:function(a){CKEDITOR.plugins.tableselection.isSupportedEnvironment&& -(a.addContentsCss&&a.addContentsCss(this.path+"styles/tableselection.css"),a.on("contentDom",function(){var b=a.editable(),c=b.isInline()?b:a.document,d={editor:a};b.attachListener(c,"mousedown",v,null,d);b.attachListener(c,"mousemove",v,null,d);b.attachListener(c,"mouseup",v,null,d);b.attachListener(b,"dragstart",L);b.attachListener(a,"selectionCheck",K);CKEDITOR.plugins.tableselection.keyboardIntegration(a);CKEDITOR.plugins.clipboard&&!CKEDITOR.plugins.clipboard.isCustomCopyCutSupported&&(b.attachListener(b, -"cut",C),b.attachListener(b,"copy",C))}),a.on("paste",F.onPaste,F),z(a,"rowInsertBefore rowInsertAfter columnInsertBefore columnInsertAfter cellInsertBefore cellInsertAfter".split(" "),function(a,c){t(a,c.selectedCells)}),z(a,["cellMerge","cellMergeRight","cellMergeDown"],function(a,c){t(a,[c.commandData.cell])}),z(a,["cellDelete"],function(a){y(a,!0)}))}})})();(function(){var g=[CKEDITOR.CTRL+90,CKEDITOR.CTRL+89,CKEDITOR.CTRL+CKEDITOR.SHIFT+90],n={8:1,46:1};CKEDITOR.plugins.add("undo",{init:function(a){function b(a){d.enabled&&!1!==a.data.command.canUndo&&d.save()}function c(){d.enabled=a.readOnly?!1:"wysiwyg"==a.mode;d.onChange()}var d=a.undoManager=new e(a),l=d.editingHandler=new k(d),f=a.addCommand("undo",{exec:function(){d.undo()&&(a.selectionChange(),this.fire("afterUndo"))},startDisabled:!0,canUndo:!1}),h=a.addCommand("redo",{exec:function(){d.redo()&& -(a.selectionChange(),this.fire("afterRedo"))},startDisabled:!0,canUndo:!1});a.setKeystroke([[g[0],"undo"],[g[1],"redo"],[g[2],"redo"]]);d.onChange=function(){f.setState(d.undoable()?CKEDITOR.TRISTATE_OFF:CKEDITOR.TRISTATE_DISABLED);h.setState(d.redoable()?CKEDITOR.TRISTATE_OFF:CKEDITOR.TRISTATE_DISABLED)};a.on("beforeCommandExec",b);a.on("afterCommandExec",b);a.on("saveSnapshot",function(a){d.save(a.data&&a.data.contentOnly)});a.on("contentDom",l.attachListeners,l);a.on("instanceReady",function(){a.fire("saveSnapshot")}); -a.on("beforeModeUnload",function(){"wysiwyg"==a.mode&&d.save(!0)});a.on("mode",c);a.on("readOnly",c);a.ui.addButton&&(a.ui.addButton("Undo",{label:a.lang.undo.undo,command:"undo",toolbar:"undo,10"}),a.ui.addButton("Redo",{label:a.lang.undo.redo,command:"redo",toolbar:"undo,20"}));a.resetUndo=function(){d.reset();a.fire("saveSnapshot")};a.on("updateSnapshot",function(){d.currentImage&&d.update()});a.on("lockSnapshot",function(a){a=a.data;d.lock(a&&a.dontUpdate,a&&a.forceUpdate)});a.on("unlockSnapshot", -d.unlock,d)}});CKEDITOR.plugins.undo={};var e=CKEDITOR.plugins.undo.UndoManager=function(a){this.strokesRecorded=[0,0];this.locked=null;this.previousKeyGroup=-1;this.limit=a.config.undoStackSize||20;this.strokesLimit=25;this.editor=a;this.reset()};e.prototype={type:function(a,b){var c=e.getKeyGroup(a),d=this.strokesRecorded[c]+1;b=b||d>=this.strokesLimit;this.typing||(this.hasUndo=this.typing=!0,this.hasRedo=!1,this.onChange());b?(d=0,this.editor.fire("saveSnapshot")):this.editor.fire("change");this.strokesRecorded[c]= -d;this.previousKeyGroup=c},keyGroupChanged:function(a){return e.getKeyGroup(a)!=this.previousKeyGroup},reset:function(){this.snapshots=[];this.index=-1;this.currentImage=null;this.hasRedo=this.hasUndo=!1;this.locked=null;this.resetType()},resetType:function(){this.strokesRecorded=[0,0];this.typing=!1;this.previousKeyGroup=-1},refreshState:function(){this.hasUndo=!!this.getNextImage(!0);this.hasRedo=!!this.getNextImage(!1);this.resetType();this.onChange()},save:function(a,b,c){var d=this.editor;if(this.locked|| -"ready"!=d.status||"wysiwyg"!=d.mode)return!1;var e=d.editable();if(!e||"ready"!=e.status)return!1;e=this.snapshots;b||(b=new f(d));if(!1===b.contents)return!1;if(this.currentImage)if(b.equalsContent(this.currentImage)){if(a||b.equalsSelection(this.currentImage))return!1}else!1!==c&&d.fire("change");e.splice(this.index+1,e.length-this.index-1);e.length==this.limit&&e.shift();this.index=e.push(b)-1;this.currentImage=b;!1!==c&&this.refreshState();return!0},restoreImage:function(a){var b=this.editor, -c;a.bookmarks&&(b.focus(),c=b.getSelection());this.locked={level:999};this.editor.loadSnapshot(a.contents);a.bookmarks?c.selectBookmarks(a.bookmarks):CKEDITOR.env.ie&&(c=this.editor.document.getBody().$.createTextRange(),c.collapse(!0),c.select());this.locked=null;this.index=a.index;this.currentImage=this.snapshots[this.index];this.update();this.refreshState();b.fire("change")},getNextImage:function(a){var b=this.snapshots,c=this.currentImage,d;if(c)if(a)for(d=this.index-1;0<=d;d--){if(a=b[d],!c.equalsContent(a))return a.index= -d,a}else for(d=this.index+1;d<b.length;d++)if(a=b[d],!c.equalsContent(a))return a.index=d,a;return null},redoable:function(){return this.enabled&&this.hasRedo},undoable:function(){return this.enabled&&this.hasUndo},undo:function(){if(this.undoable()){this.save(!0);var a=this.getNextImage(!0);if(a)return this.restoreImage(a),!0}return!1},redo:function(){if(this.redoable()&&(this.save(!0),this.redoable())){var a=this.getNextImage(!1);if(a)return this.restoreImage(a),!0}return!1},update:function(a){if(!this.locked){a|| -(a=new f(this.editor));for(var b=this.index,c=this.snapshots;0<b&&this.currentImage.equalsContent(c[b-1]);)--b;c.splice(b,this.index-b+1,a);this.index=b;this.currentImage=a}},updateSelection:function(a){if(!this.snapshots.length)return!1;var b=this.snapshots,c=b[b.length-1];return c.equalsContent(a)&&!c.equalsSelection(a)?(this.currentImage=b[b.length-1]=a,!0):!1},lock:function(a,b){if(this.locked)this.locked.level++;else if(a)this.locked={level:1};else{var c=null;if(b)c=!0;else{var d=new f(this.editor, -!0);this.currentImage&&this.currentImage.equalsContent(d)&&(c=d)}this.locked={update:c,level:1}}},unlock:function(){if(this.locked&&!--this.locked.level){var a=this.locked.update;this.locked=null;if(!0===a)this.update();else if(a){var b=new f(this.editor,!0);a.equalsContent(b)||this.update()}}}};e.navigationKeyCodes={37:1,38:1,39:1,40:1,36:1,35:1,33:1,34:1};e.keyGroups={PRINTABLE:0,FUNCTIONAL:1};e.isNavigationKey=function(a){return!!e.navigationKeyCodes[a]};e.getKeyGroup=function(a){var b=e.keyGroups; -return n[a]?b.FUNCTIONAL:b.PRINTABLE};e.getOppositeKeyGroup=function(a){var b=e.keyGroups;return a==b.FUNCTIONAL?b.PRINTABLE:b.FUNCTIONAL};e.ieFunctionalKeysBug=function(a){return CKEDITOR.env.ie&&e.getKeyGroup(a)==e.keyGroups.FUNCTIONAL};var f=CKEDITOR.plugins.undo.Image=function(a,b){this.editor=a;a.fire("beforeUndoImage");var c=a.getSnapshot();CKEDITOR.env.ie&&c&&(c=c.replace(/\s+data-cke-expando=".*?"/g,""));this.contents=c;b||(this.bookmarks=(c=c&&a.getSelection())&&c.createBookmarks2(!0));a.fire("afterUndoImage")}, -h=/\b(?:href|src|name)="[^"]*?"/gi;f.prototype={equalsContent:function(a){var b=this.contents;a=a.contents;CKEDITOR.env.ie&&(CKEDITOR.env.ie7Compat||CKEDITOR.env.quirks)&&(b=b.replace(h,""),a=a.replace(h,""));return b!=a?!1:!0},equalsSelection:function(a){var b=this.bookmarks;a=a.bookmarks;if(b||a){if(!b||!a||b.length!=a.length)return!1;for(var c=0;c<b.length;c++){var d=b[c],e=a[c];if(d.startOffset!=e.startOffset||d.endOffset!=e.endOffset||!CKEDITOR.tools.arrayCompare(d.start,e.start)||!CKEDITOR.tools.arrayCompare(d.end, -e.end))return!1}}return!0}};var k=CKEDITOR.plugins.undo.NativeEditingHandler=function(a){this.undoManager=a;this.ignoreInputEvent=!1;this.keyEventsStack=new m;this.lastKeydownImage=null};k.prototype={onKeydown:function(a){var b=a.data.getKey();if(229!==b)if(-1<CKEDITOR.tools.indexOf(g,a.data.getKeystroke()))a.data.preventDefault();else if(this.keyEventsStack.cleanUp(a),a=this.undoManager,this.keyEventsStack.getLast(b)||this.keyEventsStack.push(b),this.lastKeydownImage=new f(a.editor),e.isNavigationKey(b)|| -this.undoManager.keyGroupChanged(b))if(a.strokesRecorded[0]||a.strokesRecorded[1])a.save(!1,this.lastKeydownImage,!1),a.resetType()},onInput:function(){if(this.ignoreInputEvent)this.ignoreInputEvent=!1;else{var a=this.keyEventsStack.getLast();a||(a=this.keyEventsStack.push(0));this.keyEventsStack.increment(a.keyCode);this.keyEventsStack.getTotalInputs()>=this.undoManager.strokesLimit&&(this.undoManager.type(a.keyCode,!0),this.keyEventsStack.resetInputs())}},onKeyup:function(a){var b=this.undoManager; -a=a.data.getKey();var c=this.keyEventsStack.getTotalInputs();this.keyEventsStack.remove(a);if(!(e.ieFunctionalKeysBug(a)&&this.lastKeydownImage&&this.lastKeydownImage.equalsContent(new f(b.editor,!0))))if(0<c)b.type(a);else if(e.isNavigationKey(a))this.onNavigationKey(!0)},onNavigationKey:function(a){var b=this.undoManager;!a&&b.save(!0,null,!1)||b.updateSelection(new f(b.editor));b.resetType()},ignoreInputEventListener:function(){this.ignoreInputEvent=!0},activateInputEventListener:function(){this.ignoreInputEvent= -!1},attachListeners:function(){var a=this.undoManager.editor,b=a.editable(),c=this;b.attachListener(b,"keydown",function(a){c.onKeydown(a);if(e.ieFunctionalKeysBug(a.data.getKey()))c.onInput()},null,null,999);b.attachListener(b,CKEDITOR.env.ie?"keypress":"input",c.onInput,c,null,999);b.attachListener(b,"keyup",c.onKeyup,c,null,999);b.attachListener(b,"paste",c.ignoreInputEventListener,c,null,999);b.attachListener(b,"drop",c.ignoreInputEventListener,c,null,999);a.on("afterPaste",c.activateInputEventListener, -c,null,999);b.attachListener(b.isInline()?b:a.document.getDocumentElement(),"click",function(){c.onNavigationKey()},null,null,999);b.attachListener(this.undoManager.editor,"blur",function(){c.keyEventsStack.remove(9)},null,null,999)}};var m=CKEDITOR.plugins.undo.KeyEventsStack=function(){this.stack=[]};m.prototype={push:function(a){a=this.stack.push({keyCode:a,inputs:0});return this.stack[a-1]},getLastIndex:function(a){if("number"!=typeof a)return this.stack.length-1;for(var b=this.stack.length;b--;)if(this.stack[b].keyCode== -a)return b;return-1},getLast:function(a){a=this.getLastIndex(a);return-1!=a?this.stack[a]:null},increment:function(a){this.getLast(a).inputs++},remove:function(a){a=this.getLastIndex(a);-1!=a&&this.stack.splice(a,1)},resetInputs:function(a){if("number"==typeof a)this.getLast(a).inputs=0;else for(a=this.stack.length;a--;)this.stack[a].inputs=0},getTotalInputs:function(){for(var a=this.stack.length,b=0;a--;)b+=this.stack[a].inputs;return b},cleanUp:function(a){a=a.data.$;a.ctrlKey||a.metaKey||this.remove(17); -a.shiftKey||this.remove(16);a.altKey||this.remove(18)}}})();CKEDITOR.plugins.add("wsc",{requires:"dialog",parseApi:function(a){a.config.wsc_onFinish="function"===typeof a.config.wsc_onFinish?a.config.wsc_onFinish:function(){};a.config.wsc_onClose="function"===typeof a.config.wsc_onClose?a.config.wsc_onClose:function(){}},parseConfig:function(a){a.config.wsc_customerId=a.config.wsc_customerId||CKEDITOR.config.wsc_customerId||"1:ua3xw1-2XyGJ3-GWruD3-6OFNT1-oXcuB1-nR6Bp4-hgQHc-EcYng3-sdRXG3-NOfFk";a.config.wsc_customDictionaryIds=a.config.wsc_customDictionaryIds|| -CKEDITOR.config.wsc_customDictionaryIds||"";a.config.wsc_userDictionaryName=a.config.wsc_userDictionaryName||CKEDITOR.config.wsc_userDictionaryName||"";a.config.wsc_customLoaderScript=a.config.wsc_customLoaderScript||CKEDITOR.config.wsc_customLoaderScript;a.config.wsc_interfaceLang=a.config.wsc_interfaceLang;CKEDITOR.config.wsc_cmd=a.config.wsc_cmd||CKEDITOR.config.wsc_cmd||"spell";CKEDITOR.config.wsc_version="v4.3.0-master-d769233";CKEDITOR.config.wsc_removeGlobalVariable=!0},onLoad:function(a){"moono-lisa"== -(CKEDITOR.skinName||a.config.skin)&&CKEDITOR.document.appendStyleSheet(this.path+"skins/"+CKEDITOR.skin.name+"/wsc.css")},init:function(a){var b=CKEDITOR.env;this.parseConfig(a);this.parseApi(a);a.addCommand("checkspell",new CKEDITOR.dialogCommand("checkspell")).modes={wysiwyg:!CKEDITOR.env.opera&&!CKEDITOR.env.air&&document.domain==window.location.hostname&&!(b.ie&&(8>b.version||b.quirks))};"undefined"==typeof a.plugins.scayt&&a.ui.addButton&&a.ui.addButton("SpellChecker",{label:a.lang.wsc.toolbar, -click:function(a){var b=a.elementMode==CKEDITOR.ELEMENT_MODE_INLINE?a.container.getText():a.document.getBody().getText();(b=b.replace(/\s/g,""))?a.execCommand("checkspell"):alert("Nothing to check!")},toolbar:"spellchecker,10"});CKEDITOR.dialog.add("checkspell",this.path+(CKEDITOR.env.ie&&7>=CKEDITOR.env.version?"dialogs/wsc_ie.js":window.postMessage?"dialogs/wsc.js":"dialogs/wsc_ie.js"))}});CKEDITOR.config.plugins='dialogui,dialog,about,a11yhelp,basicstyles,blockquote,notification,button,toolbar,clipboard,panel,floatpanel,menu,contextmenu,resize,elementspath,enterkey,entities,popup,filebrowser,floatingspace,listblock,richcombo,format,horizontalrule,htmlwriter,wysiwygarea,image,indent,indentlist,fakeobjects,link,list,magicline,maximize,pastetext,pastefromword,removeformat,showborders,sourcearea,specialchar,menubutton,scayt,stylescombo,tab,table,tabletools,tableselection,undo,wsc';CKEDITOR.config.skin='moono-lisa';(function() {var setIcons = function(icons, strip) {var path = CKEDITOR.getUrl( 'plugins/' + strip );icons = icons.split( ',' );for ( var i = 0; i < icons.length; i++ )CKEDITOR.skin.icons[ icons[ i ] ] = { path: path, offset: -icons[ ++i ], bgsize : icons[ ++i ] };};if (CKEDITOR.env.hidpi) setIcons('about,0,,bold,24,,italic,48,,strike,72,,subscript,96,,superscript,120,,underline,144,,blockquote,168,,copy-rtl,192,,copy,216,,cut-rtl,240,,cut,264,,paste-rtl,288,,paste,312,,horizontalrule,336,,image,360,,indent-rtl,384,,indent,408,,outdent-rtl,432,,outdent,456,,anchor-rtl,480,,anchor,504,,link,528,,unlink,552,,bulletedlist-rtl,576,,bulletedlist,600,,numberedlist-rtl,624,,numberedlist,648,,maximize,672,,pastetext-rtl,696,,pastetext,720,,pastefromword-rtl,744,,pastefromword,768,,removeformat,792,,source-rtl,816,,source,840,,specialchar,864,,scayt,888,,table,912,,redo-rtl,936,,redo,960,,undo-rtl,984,,undo,1008,,spellchecker,1032,','icons_hidpi.png');else setIcons('about,0,auto,bold,24,auto,italic,48,auto,strike,72,auto,subscript,96,auto,superscript,120,auto,underline,144,auto,blockquote,168,auto,copy-rtl,192,auto,copy,216,auto,cut-rtl,240,auto,cut,264,auto,paste-rtl,288,auto,paste,312,auto,horizontalrule,336,auto,image,360,auto,indent-rtl,384,auto,indent,408,auto,outdent-rtl,432,auto,outdent,456,auto,anchor-rtl,480,auto,anchor,504,auto,link,528,auto,unlink,552,auto,bulletedlist-rtl,576,auto,bulletedlist,600,auto,numberedlist-rtl,624,auto,numberedlist,648,auto,maximize,672,auto,pastetext-rtl,696,auto,pastetext,720,auto,pastefromword-rtl,744,auto,pastefromword,768,auto,removeformat,792,auto,source-rtl,816,auto,source,840,auto,specialchar,864,auto,scayt,888,auto,table,912,auto,redo-rtl,936,auto,redo,960,auto,undo-rtl,984,auto,undo,1008,auto,spellchecker,1032,auto','icons.png');})();CKEDITOR.lang.languages={"af":1,"sq":1,"ar":1,"az":1,"eu":1,"bn":1,"bs":1,"bg":1,"ca":1,"zh-cn":1,"zh":1,"hr":1,"cs":1,"da":1,"nl":1,"en":1,"en-au":1,"en-ca":1,"en-gb":1,"eo":1,"et":1,"fo":1,"fi":1,"fr":1,"fr-ca":1,"gl":1,"ka":1,"de":1,"de-ch":1,"el":1,"gu":1,"he":1,"hi":1,"hu":1,"is":1,"id":1,"it":1,"ja":1,"km":1,"ko":1,"ku":1,"lv":1,"lt":1,"mk":1,"ms":1,"mn":1,"no":1,"nb":1,"oc":1,"fa":1,"pl":1,"pt-br":1,"pt":1,"ro":1,"ru":1,"sr":1,"sr-latn":1,"si":1,"sk":1,"sl":1,"es":1,"es-mx":1,"sv":1,"tt":1,"th":1,"tr":1,"ug":1,"uk":1,"vi":1,"cy":1};}()); \ No newline at end of file diff --git a/admin/plugins/ckeditor/config.js b/admin/plugins/ckeditor/config.js deleted file mode 100644 index 1386a10..0000000 --- a/admin/plugins/ckeditor/config.js +++ /dev/null @@ -1,38 +0,0 @@ -/** - * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. - * For licensing, see LICENSE.md 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 two toolbar rows. - config.toolbarGroups = [ - { name: 'clipboard', groups: [ 'clipboard', 'undo' ] }, - { name: 'editing', groups: [ 'find', 'selection', 'spellchecker' ] }, - { name: 'links' }, - { name: 'insert' }, - { name: 'forms' }, - { name: 'tools' }, - { name: 'document', groups: [ 'mode', 'document', 'doctools' ] }, - { name: 'others' }, - '/', - { name: 'basicstyles', groups: [ 'basicstyles', 'cleanup' ] }, - { name: 'paragraph', groups: [ 'list', 'indent', 'blocks', 'align', 'bidi' ] }, - { name: 'styles' }, - { name: 'colors' }, - { name: 'about' } - ]; - - // Remove some buttons provided by the standard plugins, which are - // not needed in the Standard(s) toolbar. - config.removeButtons = 'Underline,Subscript,Superscript'; - - // Set the most common block elements. - config.format_tags = 'p;h1;h2;h3;pre'; - - // Simplify the dialog windows. - config.removeDialogTabs = 'image:advanced;link:advanced'; -}; diff --git a/admin/plugins/ckeditor/contents.css b/admin/plugins/ckeditor/contents.css deleted file mode 100644 index 8571059..0000000 --- a/admin/plugins/ckeditor/contents.css +++ /dev/null @@ -1,208 +0,0 @@ -/* -Copyright (c) 2003-2017, 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; - - /* Fix for missing scrollbars with RTL texts. (#10488) */ - word-wrap: break-word; -} - -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; - 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; -} - -/* Widget Styles */ -.code-featured -{ - border: 5px solid red; -} - -.math-featured -{ - padding: 20px; - box-shadow: 0 0 2px rgba(200, 0, 0, 1); - background-color: rgba(255, 0, 0, 0.05); - margin: 10px; -} - -.image-clean -{ - border: 0; - background: none; - padding: 0; -} - -.image-clean > figcaption -{ - font-size: .9em; - text-align: right; -} - -.image-grayscale -{ - background-color: white; - color: #666; -} - -.image-grayscale img, img.image-grayscale -{ - filter: grayscale(100%); -} - -.embed-240p -{ - max-width: 426px; - max-height: 240px; - margin:0 auto; -} - -.embed-360p -{ - max-width: 640px; - max-height: 360px; - margin:0 auto; -} - -.embed-480p -{ - max-width: 854px; - max-height: 480px; - margin:0 auto; -} - -.embed-720p -{ - max-width: 1280px; - max-height: 720px; - margin:0 auto; -} - -.embed-1080p -{ - max-width: 1920px; - max-height: 1080px; - margin:0 auto; -} diff --git a/admin/plugins/ckeditor/lang/af.js b/admin/plugins/ckeditor/lang/af.js deleted file mode 100644 index aaba6db..0000000 --- a/admin/plugins/ckeditor/lang/af.js +++ /dev/null @@ -1,5 +0,0 @@ -/* -Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. -For licensing, see LICENSE.md or http://ckeditor.com/license -*/ -CKEDITOR.lang['af']={"editor":"Woordverwerker","editorPanel":"Woordverwerkerpaneel","common":{"editorHelp":"Druk op ALT 0 vir hulp","browseServer":"Blaai op bediener","url":"URL","protocol":"Protokol","upload":"Oplaai","uploadSubmit":"Stuur aan die bediener","image":"Beeld","flash":"Flash","form":"Vorm","checkbox":"Merkhokkie","radio":"Radioknoppie","textField":"Teksveld","textarea":"Teksarea","hiddenField":"Versteekteveld","button":"Knop","select":"Keuseveld","imageButton":"Beeldknop","notSet":"<geen instelling>","id":"Id","name":"Naam","langDir":"Skryfrigting","langDirLtr":"Links na regs (LTR)","langDirRtl":"Regs na links (RTL)","langCode":"Taalkode","longDescr":"Lang beskrywing URL","cssClass":"CSS klasse","advisoryTitle":"Aanbevole titel","cssStyle":"Styl","ok":"OK","cancel":"Kanselleer","close":"Sluit","preview":"Voorbeeld","resize":"Skalierung","generalTab":"Algemeen","advancedTab":"Gevorderd","validateNumberFailed":"Hierdie waarde is nie 'n nommer nie.","confirmNewPage":"Alle wysiginge sal verlore gaan. Is jy seker dat jy 'n nuwe bladsy wil laai?","confirmCancel":"Sommige opsies is gewysig. Is jy seker dat jy hierdie dialoogvenster wil sluit?","options":"Opsies","target":"Teiken","targetNew":"Nuwe venster (_blank)","targetTop":"Boonste venster (_top)","targetSelf":"Selfde venster (_self)","targetParent":"Oorspronklike venster (_parent)","langDirLTR":"Links na Regs (LTR)","langDirRTL":"Regs na Links (RTL)","styles":"Styl","cssClasses":"CSS klasse","width":"Breedte","height":"Hoogte","align":"Orienteerung","alignLeft":"Links","alignRight":"Regs","alignCenter":"Middel","alignJustify":"Eweredig","alignTop":"Bo","alignMiddle":"Middel","alignBottom":"Onder","alignNone":"Geen","invalidValue":"Ongeldige waarde","invalidHeight":"Hoogte moet 'n getal wees","invalidWidth":"Breedte moet 'n getal wees.","invalidCssLength":"Die waarde vir die \"%1\" veld moet 'n posetiewe getal wees met of sonder 'n geldige CSS eenheid (px, %, in, cm, mm, em, ex, pt, of pc).","invalidHtmlLength":"Die waarde vir die \"%1\" veld moet 'n posetiewe getal wees met of sonder 'n geldige HTML eenheid (px of %).","invalidInlineStyle":"Ongeldige CSS. Formaat is een of meer sleutel-wert paare, \"naam : wert\" met kommapunte gesky.","cssLengthTooltip":"Voeg 'n getal wert in pixel in, of 'n waarde met geldige CSS eenheid (px, %, in, cm, mm, em, ex, pt, of pc).","unavailable":"%1<span class=\"cke_accessibility\">, nie beskikbaar nie</span>","keyboard":{"8":"Backspace","13":"Enter","16":"Skuif","17":"Ctrl","18":"Alt","32":"Spasie","35":"Einde","36":"Tuis","46":"Verwyder","224":"Bevel"},"keyboardShortcut":"Sleutel kombenasie"},"about":{"copy":"Kopiereg &copy; $1. Alle regte voorbehou.","dlgTitle":"Meer oor CKEditor","help":"Slaan $1 na vir hulp.","moreInfo":"Vir lisensie-informasie, besoek asb. ons webwerf:","title":"Meer oor CKEditor","userGuide":"CKEditor Gebruikers gits"},"basicstyles":{"bold":"Vet","italic":"Skuins","strike":"Deurgestreep","subscript":"Onderskrif","superscript":"Bo-skrif","underline":"Onderstreep"},"blockquote":{"toolbar":"Sitaatblok"},"notification":{"closed":"Notification closed."},"button":{"selectedLabel":"%1 uitgekies"},"toolbar":{"toolbarCollapse":"Verklein werkbalk","toolbarExpand":"Vergroot werkbalk","toolbarGroups":{"document":"Dokument","clipboard":"Knipbord/Undo","editing":"Verander","forms":"Vorms","basicstyles":"Eenvoudige Styl","paragraph":"Paragraaf","links":"Skakels","insert":"Toevoeg","styles":"Style","colors":"Kleure","tools":"Gereedskap"},"toolbars":"Werkbalke"},"clipboard":{"copy":"Kopiëer","copyError":"U blaaier se sekuriteitsinstelling belet die kopiëringsaksie. Gebruik die sleutelbordkombinasie (Ctrl/Cmd+C).","cut":"Knip","cutError":"U blaaier se sekuriteitsinstelling belet die outomatiese knip-aksie. Gebruik die sleutelbordkombinasie (Ctrl/Cmd+X).","paste":"Plak","pasteNotification":"Your browser doesn't allow you to paste this way. Press %1 to paste."},"contextmenu":{"options":"Konteks Spyskaart-opsies"},"elementspath":{"eleLabel":"Elemente-pad","eleTitle":"%1 element"},"format":{"label":"Opmaak","panelTitle":"Opmaak","tag_address":"Adres","tag_div":"Normaal (DIV)","tag_h1":"Opskrif 1","tag_h2":"Opskrif 2","tag_h3":"Opskrif 3","tag_h4":"Opskrif 4","tag_h5":"Opskrif 5","tag_h6":"Opskrif 6","tag_p":"Normaal","tag_pre":"Opgemaak"},"horizontalrule":{"toolbar":"Horisontale lyn invoeg"},"image":{"alt":"Alternatiewe teks","border":"Rand","btnUpload":"Stuur na bediener","button2Img":"Wil u die geselekteerde afbeeldingsknop vervang met 'n eenvoudige afbeelding?","hSpace":"HSpasie","img2Button":"Wil u die geselekteerde afbeelding vervang met 'n afbeeldingsknop?","infoTab":"Afbeelding informasie","linkTab":"Skakel","lockRatio":"Vaste proporsie","menu":"Afbeelding eienskappe","resetSize":"Herstel grootte","title":"Afbeelding eienskappe","titleButton":"Afbeeldingsknop eienskappe","upload":"Oplaai","urlMissing":"Die URL na die afbeelding ontbreek.","vSpace":"VSpasie","validateBorder":"Rand moet 'n heelgetal wees.","validateHSpace":"HSpasie moet 'n heelgetal wees.","validateVSpace":"VSpasie moet 'n heelgetal wees."},"indent":{"indent":"Vergroot inspring","outdent":"Verklein inspring"},"fakeobjects":{"anchor":"Anker","flash":"Flash animasie","hiddenfield":"Verborge veld","iframe":"IFrame","unknown":"Onbekende objek"},"link":{"acccessKey":"Toegangsleutel","advanced":"Gevorderd","advisoryContentType":"Aanbevole inhoudstipe","advisoryTitle":"Aanbevole titel","anchor":{"toolbar":"Anker byvoeg/verander","menu":"Anker-eienskappe","title":"Anker-eienskappe","name":"Ankernaam","errorName":"Voltooi die ankernaam asseblief","remove":"Remove Anchor"},"anchorId":"Op element Id","anchorName":"Op ankernaam","charset":"Karakterstel van geskakelde bron","cssClasses":"CSS klasse","download":"Force Download","displayText":"Display Text","emailAddress":"E-posadres","emailBody":"Berig-inhoud","emailSubject":"Berig-onderwerp","id":"Id","info":"Skakel informasie","langCode":"Taalkode","langDir":"Skryfrigting","langDirLTR":"Links na regs (LTR)","langDirRTL":"Regs na links (RTL)","menu":"Wysig skakel","name":"Naam","noAnchors":"(Geen ankers beskikbaar in dokument)","noEmail":"Gee die e-posadres","noUrl":"Gee die skakel se URL","other":"<ander>","popupDependent":"Afhanklik (Netscape)","popupFeatures":"Eienskappe van opspringvenster","popupFullScreen":"Volskerm (IE)","popupLeft":"Posisie links","popupLocationBar":"Adresbalk","popupMenuBar":"Spyskaartbalk","popupResizable":"Herskaalbaar","popupScrollBars":"Skuifbalke","popupStatusBar":"Statusbalk","popupToolbar":"Werkbalk","popupTop":"Posisie bo","rel":"Relationship","selectAnchor":"Kies 'n anker","styles":"Styl","tabIndex":"Tab indeks","target":"Doel","targetFrame":"<raam>","targetFrameName":"Naam van doelraam","targetPopup":"<opspringvenster>","targetPopupName":"Naam van opspringvenster","title":"Skakel","toAnchor":"Anker in bladsy","toEmail":"E-pos","toUrl":"URL","toolbar":"Skakel invoeg/wysig","type":"Skakelsoort","unlink":"Verwyder skakel","upload":"Oplaai"},"list":{"bulletedlist":"Ongenommerde lys","numberedlist":"Genommerde lys"},"magicline":{"title":"Voeg paragraaf hier in"},"maximize":{"maximize":"Maksimaliseer","minimize":"Minimaliseer"},"pastetext":{"button":"Plak as eenvoudige teks","pasteNotification":"Your browser does not allow you to paste plain text this way. Press %1 to paste."},"pastefromword":{"confirmCleanup":"Die teks wat u wil plak lyk asof dit uit Word gekopiëer is. Wil u dit eers skoonmaak voordat dit geplak word?","error":"Die geplakte teks kon nie skoongemaak word nie, weens 'n interne fout","title":"Plak vanuit Word","toolbar":"Plak vanuit Word"},"removeformat":{"toolbar":"Verwyder opmaak"},"sourcearea":{"toolbar":"Bron"},"specialchar":{"options":"Spesiale karakter-opsies","title":"Kies spesiale karakter","toolbar":"Voeg spesiaale karakter in"},"scayt":{"btn_about":"SCAYT info","btn_dictionaries":"Woordeboeke","btn_disable":"SCAYT af","btn_enable":"SCAYT aan","btn_langs":"Tale","btn_options":"Opsies","text_title":"Speltoets terwyl u tik"},"stylescombo":{"label":"Styl","panelTitle":"Vormaat style","panelTitle1":"Blok style","panelTitle2":"Inlyn style","panelTitle3":"Objek style"},"table":{"border":"Randbreedte","caption":"Naam","cell":{"menu":"Sel","insertBefore":"Voeg sel in voor","insertAfter":"Voeg sel in na","deleteCell":"Verwyder sel","merge":"Voeg selle saam","mergeRight":"Voeg saam na regs","mergeDown":"Voeg saam ondertoe","splitHorizontal":"Splits sel horisontaal","splitVertical":"Splits sel vertikaal","title":"Sel eienskappe","cellType":"Sel tipe","rowSpan":"Omspan rye","colSpan":"Omspan kolomme","wordWrap":"Woord terugloop","hAlign":"Horisontale oplyning","vAlign":"Vertikale oplyning","alignBaseline":"Basislyn","bgColor":"Agtergrondkleur","borderColor":"Randkleur","data":"Inhoud","header":"Opskrif","yes":"Ja","no":"Nee","invalidWidth":"Selbreedte moet 'n getal wees.","invalidHeight":"Selhoogte moet 'n getal wees.","invalidRowSpan":"Omspan rye moet 'n heelgetal wees.","invalidColSpan":"Omspan kolomme moet 'n heelgetal wees.","chooseColor":"Kies"},"cellPad":"Sel-spasie","cellSpace":"Sel-afstand","column":{"menu":"Kolom","insertBefore":"Voeg kolom in voor","insertAfter":"Voeg kolom in na","deleteColumn":"Verwyder kolom"},"columns":"Kolomme","deleteTable":"Verwyder tabel","headers":"Opskrifte","headersBoth":"Beide ","headersColumn":"Eerste kolom","headersNone":"Geen","headersRow":"Eerste ry","invalidBorder":"Randbreedte moet 'n getal wees.","invalidCellPadding":"Sel-spasie moet 'n getal wees.","invalidCellSpacing":"Sel-afstand moet 'n getal wees.","invalidCols":"Aantal kolomme moet 'n getal groter as 0 wees.","invalidHeight":"Tabelhoogte moet 'n getal wees.","invalidRows":"Aantal rye moet 'n getal groter as 0 wees.","invalidWidth":"Tabelbreedte moet 'n getal wees.","menu":"Tabel eienskappe","row":{"menu":"Ry","insertBefore":"Voeg ry in voor","insertAfter":"Voeg ry in na","deleteRow":"Verwyder ry"},"rows":"Rye","summary":"Opsomming","title":"Tabel eienskappe","toolbar":"Tabel","widthPc":"persent","widthPx":"piksels","widthUnit":"breedte-eenheid"},"undo":{"redo":"Oordoen","undo":"Ontdoen"},"wsc":{"btnIgnore":"Ignoreer","btnIgnoreAll":"Ignoreer alles","btnReplace":"Vervang","btnReplaceAll":"vervang alles","btnUndo":"Ontdoen","changeTo":"Verander na","errorLoading":"Fout by inlaai van diens: %s.","ieSpellDownload":"Speltoetser is nie geïnstalleer nie. Wil u dit nou aflaai?","manyChanges":"Klaar met speltoets: %1 woorde verander","noChanges":"Klaar met speltoets: Geen woorde verander nie","noMispell":"Klaar met speltoets: Geen foute nie","noSuggestions":"- Geen voorstel -","notAvailable":"Jammer, hierdie diens is nie nou beskikbaar nie.","notInDic":"Nie in woordeboek nie","oneChange":"Klaar met speltoets: Een woord verander","progress":"Spelling word getoets...","title":"Speltoetser","toolbar":"Speltoets"}}; \ No newline at end of file diff --git a/admin/plugins/ckeditor/lang/ar.js b/admin/plugins/ckeditor/lang/ar.js deleted file mode 100644 index 35ac00b..0000000 --- a/admin/plugins/ckeditor/lang/ar.js +++ /dev/null @@ -1,5 +0,0 @@ -/* -Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. -For licensing, see LICENSE.md or http://ckeditor.com/license -*/ -CKEDITOR.lang['ar']={"editor":"محرر النص الغني","editorPanel":"لائحة محرر النص المنسق","common":{"editorHelp":"إضغط على ALT + 0 للحصول على المساعدة.","browseServer":"تصفح","url":"الرابط","protocol":"البروتوكول","upload":"رفع","uploadSubmit":"أرسل","image":"صورة","flash":"فلاش","form":"نموذج","checkbox":"خانة إختيار","radio":"زر اختيار","textField":"مربع نص","textarea":"مساحة نصية","hiddenField":"إدراج حقل خفي","button":"زر ضغط","select":"اختار","imageButton":"زر صورة","notSet":"<بدون تحديد>","id":"الرقم","name":"إسم","langDir":"إتجاه النص","langDirLtr":"اليسار لليمين (LTR)","langDirRtl":"اليمين لليسار (RTL)","langCode":"رمز اللغة","longDescr":"الوصف التفصيلى","cssClass":"فئات التنسيق","advisoryTitle":"عنوان التقرير","cssStyle":"نمط","ok":"موافق","cancel":"إلغاء الأمر","close":"أغلق","preview":"استعراض","resize":"تغيير الحجم","generalTab":"عام","advancedTab":"متقدم","validateNumberFailed":"لايوجد نتيجة","confirmNewPage":"ستفقد أي متغييرات اذا لم تقم بحفظها اولا. هل أنت متأكد أنك تريد صفحة جديدة؟","confirmCancel":"بعض الخيارات قد تغيرت. هل أنت متأكد من إغلاق مربع النص؟","options":"خيارات","target":"هدف الرابط","targetNew":"نافذة جديدة","targetTop":"النافذة الأعلى","targetSelf":"داخل النافذة","targetParent":"النافذة الأم","langDirLTR":"اليسار لليمين (LTR)","langDirRTL":"اليمين لليسار (RTL)","styles":"نمط","cssClasses":"فئات التنسيق","width":"العرض","height":"الإرتفاع","align":"محاذاة","alignLeft":"يسار","alignRight":"يمين","alignCenter":"وسط","alignJustify":"ضبط","alignTop":"أعلى","alignMiddle":"وسط","alignBottom":"أسفل","alignNone":"None","invalidValue":"قيمة غير مفبولة.","invalidHeight":"الارتفاع يجب أن يكون عدداً.","invalidWidth":"العرض يجب أن يكون عدداً.","invalidCssLength":"قيمة الخانة المخصصة لـ \"%1\" يجب أن تكون رقما موجبا، باستخدام أو من غير استخدام وحدة CSS قياس مقبولة (px, %, in, cm, mm, em, ex, pt, or pc).","invalidHtmlLength":"قيمة الخانة المخصصة لـ \"%1\" يجب أن تكون رقما موجبا، باستخدام أو من غير استخدام وحدة HTML قياس مقبولة (px or %).","invalidInlineStyle":"قيمة الخانة المخصصة لـ Inline Style يجب أن تختوي على مجموع واحد أو أكثر بالشكل التالي: \"name : value\", مفصولة بفاصلة منقزطة.","cssLengthTooltip":"أدخل رقما للقيمة بالبكسل أو رقما بوحدة CSS مقبولة (px, %, in, cm, mm, em, ex, pt, or pc).","unavailable":"%1<span class=\"cke_accessibility\">, غير متاح</span>","keyboard":{"8":"Backspace","13":"Enter","16":"Shift","17":"Ctrl","18":"Alt","32":"Space","35":"End","36":"Home","46":"Delete","224":"Command"},"keyboardShortcut":"Keyboard shortcut"},"about":{"copy":"حقوق النشر &copy; $1. جميع الحقوق محفوظة.","dlgTitle":"عن CKEditor","help":"راجع $1 من أجل المساعدة","moreInfo":"للحصول على معلومات الترخيص ، يرجى زيارة موقعنا:","title":"عن CKEditor","userGuide":"دليل مستخدم CKEditor."},"basicstyles":{"bold":"عريض","italic":"مائل","strike":"يتوسطه خط","subscript":"منخفض","superscript":"مرتفع","underline":"تسطير"},"blockquote":{"toolbar":"اقتباس"},"notification":{"closed":"Notification closed."},"button":{"selectedLabel":"%1 (محدد)"},"toolbar":{"toolbarCollapse":"تقليص شريط الأدوت","toolbarExpand":"تمديد شريط الأدوات","toolbarGroups":{"document":"مستند","clipboard":"الحافظة/الرجوع","editing":"تحرير","forms":"نماذج","basicstyles":"نمط بسيط","paragraph":"فقرة","links":"روابط","insert":"إدراج","styles":"أنماط","colors":"ألوان","tools":"أدوات"},"toolbars":"أشرطة أدوات المحرر"},"clipboard":{"copy":"نسخ","copyError":"الإعدادات الأمنية للمتصفح الذي تستخدمه تمنع عمليات النسخ التلقائي. فضلاً إستخدم لوحة المفاتيح لفعل ذلك (Ctrl/Cmd+C).","cut":"قص","cutError":"الإعدادات الأمنية للمتصفح الذي تستخدمه تمنع القص التلقائي. فضلاً إستخدم لوحة المفاتيح لفعل ذلك (Ctrl/Cmd+X).","paste":"لصق","pasteNotification":"Your browser doesn't allow you to paste this way. Press %1 to paste."},"contextmenu":{"options":"خصائص قائمة السياق"},"elementspath":{"eleLabel":"مسار العنصر","eleTitle":"عنصر 1%"},"format":{"label":"تنسيق","panelTitle":"تنسيق الفقرة","tag_address":"عنوان","tag_div":"عادي (DIV)","tag_h1":"العنوان 1","tag_h2":"العنوان 2","tag_h3":"العنوان 3","tag_h4":"العنوان 4","tag_h5":"العنوان 5","tag_h6":"العنوان 6","tag_p":"عادي","tag_pre":"منسّق"},"horizontalrule":{"toolbar":"خط فاصل"},"image":{"alt":"عنوان الصورة","border":"سمك الحدود","btnUpload":"أرسلها للخادم","button2Img":"هل تريد تحويل زر الصورة المختار إلى صورة بسيطة؟","hSpace":"تباعد أفقي","img2Button":"هل تريد تحويل الصورة المختارة إلى زر صورة؟","infoTab":"معلومات الصورة","linkTab":"الرابط","lockRatio":"تناسق الحجم","menu":"خصائص الصورة","resetSize":"إستعادة الحجم الأصلي","title":"خصائص الصورة","titleButton":"خصائص زر الصورة","upload":"رفع","urlMissing":"عنوان مصدر الصورة مفقود","vSpace":"تباعد عمودي","validateBorder":"الإطار يجب أن يكون عددا","validateHSpace":"HSpace يجب أن يكون عدداً.","validateVSpace":"VSpace يجب أن يكون عدداً."},"indent":{"indent":"زيادة المسافة البادئة","outdent":"إنقاص المسافة البادئة"},"fakeobjects":{"anchor":"إرساء","flash":"رسم متحرك بالفلاش","hiddenfield":"إدراج حقل خفي","iframe":"iframe","unknown":"عنصر غير معروف"},"link":{"acccessKey":"مفاتيح الإختصار","advanced":"متقدم","advisoryContentType":"نوع التقرير","advisoryTitle":"عنوان التقرير","anchor":{"toolbar":"إشارة مرجعية","menu":"تحرير الإشارة المرجعية","title":"خصائص الإشارة المرجعية","name":"اسم الإشارة المرجعية","errorName":"الرجاء كتابة اسم الإشارة المرجعية","remove":"إزالة الإشارة المرجعية"},"anchorId":"حسب رقم العنصر","anchorName":"حسب إسم الإشارة المرجعية","charset":"ترميز المادة المطلوبة","cssClasses":"فئات التنسيق","download":"Force Download","displayText":"Display Text","emailAddress":"البريد الإلكتروني","emailBody":"محتوى الرسالة","emailSubject":"موضوع الرسالة","id":"هوية","info":"معلومات الرابط","langCode":"رمز اللغة","langDir":"إتجاه نص اللغة","langDirLTR":"اليسار لليمين (LTR)","langDirRTL":"اليمين لليسار (RTL)","menu":"تحرير الرابط","name":"إسم","noAnchors":"(لا توجد علامات مرجعية في هذا المستند)","noEmail":"الرجاء كتابة الريد الإلكتروني","noUrl":"الرجاء كتابة رابط الموقع","other":"<أخرى>","popupDependent":"تابع (Netscape)","popupFeatures":"خصائص النافذة المنبثقة","popupFullScreen":"ملئ الشاشة (IE)","popupLeft":"التمركز لليسار","popupLocationBar":"شريط العنوان","popupMenuBar":"القوائم الرئيسية","popupResizable":"قابلة التشكيل","popupScrollBars":"أشرطة التمرير","popupStatusBar":"شريط الحالة","popupToolbar":"شريط الأدوات","popupTop":"التمركز للأعلى","rel":"العلاقة","selectAnchor":"اختر علامة مرجعية","styles":"نمط","tabIndex":"الترتيب","target":"هدف الرابط","targetFrame":"<إطار>","targetFrameName":"اسم الإطار المستهدف","targetPopup":"<نافذة منبثقة>","targetPopupName":"اسم النافذة المنبثقة","title":"رابط","toAnchor":"مكان في هذا المستند","toEmail":"بريد إلكتروني","toUrl":"الرابط","toolbar":"رابط","type":"نوع الربط","unlink":"إزالة رابط","upload":"رفع"},"list":{"bulletedlist":"ادخال/حذف تعداد نقطي","numberedlist":"ادخال/حذف تعداد رقمي"},"magicline":{"title":"إدراج فقرة هنا"},"maximize":{"maximize":"تكبير","minimize":"تصغير"},"pastetext":{"button":"لصق كنص بسيط","pasteNotification":"Your browser does not allow you to paste plain text this way. Press %1 to paste."},"pastefromword":{"confirmCleanup":"يبدو أن النص المراد لصقه منسوخ من برنامج وورد. هل تود تنظيفه قبل الشروع في عملية اللصق؟","error":"لم يتم مسح المعلومات الملصقة لخلل داخلي","title":"لصق من وورد","toolbar":"لصق من وورد"},"removeformat":{"toolbar":"إزالة التنسيقات"},"sourcearea":{"toolbar":"المصدر"},"specialchar":{"options":"خيارات الأحرف الخاصة","title":"اختر حرف خاص","toolbar":"إدراج حرف خاص"},"scayt":{"btn_about":"عن SCAYT","btn_dictionaries":"قواميس","btn_disable":"تعطيل SCAYT","btn_enable":"تفعيل SCAYT","btn_langs":"لغات","btn_options":"خيارات","text_title":"تدقيق إملائي أثناء الكتابة"},"stylescombo":{"label":"أنماط","panelTitle":"أنماط التنسيق","panelTitle1":"أنماط الفقرة","panelTitle2":"أنماط مضمنة","panelTitle3":"أنماط الكائن"},"table":{"border":"الحدود","caption":"الوصف","cell":{"menu":"خلية","insertBefore":"إدراج خلية قبل","insertAfter":"إدراج خلية بعد","deleteCell":"حذف خلية","merge":"دمج خلايا","mergeRight":"دمج لليمين","mergeDown":"دمج للأسفل","splitHorizontal":"تقسيم الخلية أفقياً","splitVertical":"تقسيم الخلية عمودياً","title":"خصائص الخلية","cellType":"نوع الخلية","rowSpan":"امتداد الصفوف","colSpan":"امتداد الأعمدة","wordWrap":"التفاف النص","hAlign":"محاذاة أفقية","vAlign":"محاذاة رأسية","alignBaseline":"خط القاعدة","bgColor":"لون الخلفية","borderColor":"لون الحدود","data":"بيانات","header":"عنوان","yes":"نعم","no":"لا","invalidWidth":"عرض الخلية يجب أن يكون عدداً.","invalidHeight":"ارتفاع الخلية يجب أن يكون عدداً.","invalidRowSpan":"امتداد الصفوف يجب أن يكون عدداً صحيحاً.","invalidColSpan":"امتداد الأعمدة يجب أن يكون عدداً صحيحاً.","chooseColor":"اختر"},"cellPad":"المسافة البادئة","cellSpace":"تباعد الخلايا","column":{"menu":"عمود","insertBefore":"إدراج عمود قبل","insertAfter":"إدراج عمود بعد","deleteColumn":"حذف أعمدة"},"columns":"أعمدة","deleteTable":"حذف الجدول","headers":"العناوين","headersBoth":"كلاهما","headersColumn":"العمود الأول","headersNone":"بدون","headersRow":"الصف الأول","invalidBorder":"حجم الحد يجب أن يكون عدداً.","invalidCellPadding":"المسافة البادئة يجب أن تكون عدداً","invalidCellSpacing":"المسافة بين الخلايا يجب أن تكون عدداً.","invalidCols":"عدد الأعمدة يجب أن يكون عدداً أكبر من صفر.","invalidHeight":"ارتفاع الجدول يجب أن يكون عدداً.","invalidRows":"عدد الصفوف يجب أن يكون عدداً أكبر من صفر.","invalidWidth":"عرض الجدول يجب أن يكون عدداً.","menu":"خصائص الجدول","row":{"menu":"صف","insertBefore":"إدراج صف قبل","insertAfter":"إدراج صف بعد","deleteRow":"حذف صفوف"},"rows":"صفوف","summary":"الخلاصة","title":"خصائص الجدول","toolbar":"جدول","widthPc":"بالمئة","widthPx":"بكسل","widthUnit":"وحدة العرض"},"undo":{"redo":"إعادة","undo":"تراجع"},"wsc":{"btnIgnore":"تجاهل","btnIgnoreAll":"تجاهل الكل","btnReplace":"تغيير","btnReplaceAll":"تغيير الكل","btnUndo":"تراجع","changeTo":"التغيير إلى","errorLoading":"خطأ في تحميل تطبيق خدمة الاستضافة: %s.","ieSpellDownload":"المدقق الإملائي (الإنجليزي) غير مثبّت. هل تود تحميله الآن؟","manyChanges":"تم إكمال التدقيق الإملائي: تم تغيير %1 من كلمات","noChanges":"تم التدقيق الإملائي: لم يتم تغيير أي كلمة","noMispell":"تم التدقيق الإملائي: لم يتم العثور على أي أخطاء إملائية","noSuggestions":"- لا توجد إقتراحات -","notAvailable":"عفواً، ولكن هذه الخدمة غير متاحة الان","notInDic":"ليست في القاموس","oneChange":"تم التدقيق الإملائي: تم تغيير كلمة واحدة فقط","progress":"جاري التدقيق الاملائى","title":"التدقيق الإملائي","toolbar":"تدقيق إملائي"}}; \ No newline at end of file diff --git a/admin/plugins/ckeditor/lang/az.js b/admin/plugins/ckeditor/lang/az.js deleted file mode 100644 index 713714f..0000000 --- a/admin/plugins/ckeditor/lang/az.js +++ /dev/null @@ -1,5 +0,0 @@ -/* -Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. -For licensing, see LICENSE.md or http://ckeditor.com/license -*/ -CKEDITOR.lang['az']={"editor":"Mətn Redaktoru","editorPanel":"Mətn Redaktorun Paneli","common":{"editorHelp":"Yardım üçün ALT 0 düymələrini basın","browseServer":"Fayların siyahı","url":"URL","protocol":"Protokol","upload":"Serverə yüklə","uploadSubmit":"Göndər","image":"Şəkil","flash":"Flash","form":"Forma","checkbox":"Çekboks","radio":"Radio düyməsi","textField":"Mətn xanası","textarea":"Mətn","hiddenField":"Gizli xana","button":"Düymə","select":"Opsiyaların seçilməsi","imageButton":"Şəkil tipli düymə","notSet":"<seçilməmiş>","id":"Id","name":"Ad","langDir":"Yaziların istiqaməti","langDirLtr":"Soldan sağa (LTR)","langDirRtl":"Sağdan sola (RTL)","langCode":"Dilin kodu","longDescr":"URL-ın ətraflı izahı","cssClass":"CSS klassları","advisoryTitle":"Başlıq","cssStyle":"CSS","ok":"Tədbiq et","cancel":"İmtina et","close":"Bağla","preview":"Baxış","resize":"Eni dəyiş","generalTab":"Əsas","advancedTab":"Əlavə","validateNumberFailed":"Rəqəm deyil.","confirmNewPage":"Yadda saxlanılmamış dəyişikliklər itiriləcək. Davam etmək istədiyinizə əminsinizmi?","confirmCancel":"Dəyişikliklər edilib. Pəncərəni bağlamaq istəyirsizə əminsinizmi?","options":"Seçimlər","target":"Hədəf çərçivə","targetNew":"Yeni pəncərə (_blank)","targetTop":"Əsas pəncərə (_top)","targetSelf":"Carı pəncərə (_self)","targetParent":"Ana pəncərə (_parent)","langDirLTR":"Soldan sağa (LTR)","langDirRTL":"Sağdan sola (RTL)","styles":"Üslub","cssClasses":"Üslub klası","width":"En","height":"Uzunluq","align":"Yerləşmə","alignLeft":"Sol","alignRight":"Sağ","alignCenter":"Mərkəz","alignJustify":"Eninə görə","alignTop":"Yuxarı","alignMiddle":"Orta","alignBottom":"Aşağı","alignNone":"Yoxdur","invalidValue":"Yanlışdır.","invalidHeight":"Hündürlük rəqəm olmalıdır.","invalidWidth":"En rəqəm olmalıdır.","invalidCssLength":"\"%1\" xanasında göstərilən məzmun tam və müsbət olmalıdır, CSS-də olan ölçü vahidlərin (px, %, in, cm, mm, em, ex, pt, or pc) istifadısinə icazə verilir.","invalidHtmlLength":"\"%1\" xanasında göstərilən məzmun tam və müsbət olmalıdır HTML-də olan ölçü vahidlərin (px və ya %) istifadısinə icazə verilir.","invalidInlineStyle":"Teq içində olan üslub \"ad : məzmun\" şəklidə, nöqtə-verqül işarəsi ilə bitməlidir","cssLengthTooltip":"Piksel sayı və ya digər CSS ölçü vahidləri (px, %, in, cm, mm, em, ex, pt, or pc) daxil edin.","unavailable":"%1<span class=\"cke_accessibility\">, mövcud deyil</span>","keyboard":{"8":"Backspace","13":"Enter","16":"Shift","17":"Ctrl","18":"Alt","32":"Boşluq","35":"Son","36":"Evə","46":"Sil","224":"Əmr"},"keyboardShortcut":"Qısayol düymələri"},"about":{"copy":"Copyright &copy; $1. Bütün hüquqlar qorunur.","dlgTitle":"CKEditor haqqında","help":"Kömək üçün $1 seçin","moreInfo":"Lisenziya informasiyası üçün zəhmət olmasa saytımızı ziyarət edin:","title":"CKEditor haqqında","userGuide":"CKEditor İstifadəçilər üçün kitabça"},"basicstyles":{"bold":"Qalın","italic":"Kursiv","strike":"Üstüxətli","subscript":"Aşağı indeks","superscript":"Yuxarı indeks","underline":"Altdan xətt"},"blockquote":{"toolbar":"Sitat bloku"},"notification":{"closed":"Xəbərdarlıq pəncərəsi bağlanıb"},"button":{"selectedLabel":"%1 (seçilib)"},"toolbar":{"toolbarCollapse":"Paneli gizlət","toolbarExpand":"Paneli göstər","toolbarGroups":{"document":"Mətn","clipboard":"Mübadilə buferi/İmtina et","editing":"Redaktə edilməsi","forms":"Formalar","basicstyles":"Əsas üslublar","paragraph":"Abzas","links":"Link","insert":"Əlavə et","styles":"Üslublar","colors":"Rənqlər","tools":"Alətləri"},"toolbars":"Redaktorun panelləri"},"clipboard":{"copy":"Köçür","copyError":"Avtomatik köçürülməsi mümkün deyil. Ctrl+C basın.","cut":"Kəs","cutError":"Avtomatik kəsmə mümkün deyil. Ctrl+X basın.","paste":"Əlavə et","pasteNotification":"Sizin İnternet bələdçisi bu cür mətnin köçürməsi dəstəklənmir. Əlavə etmək üçün %1 basın."},"contextmenu":{"options":"Əlavə əməliyyatlar"},"elementspath":{"eleLabel":"Elementin izləri","eleTitle":"%1 element"},"format":{"label":"Format","panelTitle":"Abzasın formatı","tag_address":"Ünvan","tag_div":"Normal (DIV)","tag_h1":"Başlıq 1","tag_h2":"Başlıq 2","tag_h3":"Başlıq 3","tag_h4":"Başlıq 4","tag_h5":"Başlıq 5","tag_h6":"Başlıq 6","tag_p":"Normal","tag_pre":"Formatı saxla"},"horizontalrule":{"toolbar":"Sərhəd xətti yarat"},"image":{"alt":"Alternativ mətn","border":"Sərhəd","btnUpload":"Serverə yüklə","button2Img":"Şəkil tipli düyməni şəklə çevirmək istədiyinizə əminsinizmi?","hSpace":"Üfüqi boşluq","img2Button":"Şəkli şəkil tipli düyməyə çevirmək istədiyinizə əminsinizmi?","infoTab":"Şəkil haqqında məlumat","linkTab":"Link","lockRatio":"Ölçülərin uyğunluğu saxla","menu":"Şəklin seçimləri","resetSize":"Ölçüləri qaytar","title":"Şəklin seçimləri","titleButton":"Şəkil tipli düyməsinin seçimləri","upload":"Serverə yüklə","urlMissing":"Şəklin ünvanı yanlışdır.","vSpace":"Şaquli boşluq","validateBorder":"Sərhədin eni rəqəm olmalıdır.","validateHSpace":"Üfüqi boşluq rəqəm olmalıdır.","validateVSpace":"Şaquli boşluq rəqəm olmalıdır."},"indent":{"indent":"Sol boşluqu artır","outdent":"Sol boşluqu azalt"},"fakeobjects":{"anchor":"Lövbər","flash":"Flash animasiya","hiddenfield":"Gizli xana","iframe":"IFrame","unknown":"Tanımamış obyekt"},"link":{"acccessKey":"Qısayol düyməsi","advanced":"Geniş seçimləri","advisoryContentType":"Məsləhətli məzmunun növü","advisoryTitle":"Məsləhətli başlıq","anchor":{"toolbar":"Xeş","menu":"Xeşi redaktə et","title":"Xeşin seçimləri","name":"Xeşin adı","errorName":"Xeşin adı yanlışdır","remove":"Xeşin adı sil"},"anchorId":"ID görə","anchorName":"Xeşin adına görə","charset":"Hədəfin kodlaşdırması","cssClasses":"Üslub klası","download":"Məcburi yükləmə","displayText":"Göstərilən mətn","emailAddress":"E-poçt ünvanı","emailBody":"Mesajın məzmunu","emailSubject":"Mesajın başlığı","id":"ID","info":"Linkin xüsusiyyətləri","langCode":"Dilin kodu","langDir":"Yaziların istiqaməti","langDirLTR":"Soldan sağa (LTR)","langDirRTL":"Sağdan sola (RTL)","menu":"Linki redaktə et","name":"Ad","noAnchors":"(heç bir xeş tapılmayıb)","noEmail":"E-poçt ünvanı daxil edin","noUrl":"Linkin URL-ı daxil edin","other":"<digər>","popupDependent":"Asılı (Netscape)","popupFeatures":"Pəncərənin xüsusiyyətləri","popupFullScreen":"Tam ekran rejimi (IE)","popupLeft":"Solda","popupLocationBar":"Ünvan paneli","popupMenuBar":"Menyu paneli","popupResizable":"Olçülər dəyişilir","popupScrollBars":"Sürüşdürmələr göstər","popupStatusBar":"Bildirişlərin paneli","popupToolbar":"Alətlərin paneli","popupTop":"Yuxarıda","rel":"Münasibət","selectAnchor":"Xeşi seçin","styles":"Üslub","tabIndex":"Tabın nömrəsi","target":"Hədəf çərçivə","targetFrame":"<freym>","targetFrameName":"Freymin adı","targetPopup":"<yeni pəncərə>","targetPopupName":"Pəncərənin adı","title":"Link","toAnchor":"Xeş","toEmail":"E-poçt","toUrl":"URL","toolbar":"Link","type":"Linkin növü","unlink":"Linki sil","upload":"Serverə yüklə"},"list":{"bulletedlist":"Markerlənmiş siyahını başlat/sil","numberedlist":"Nömrələnmiş siyahını başlat/sil"},"magicline":{"title":"Abzası burada əlavə et"},"maximize":{"maximize":"Aşkarla","minimize":"Gizlət"},"pastetext":{"button":"Yalnız mətni saxla","pasteNotification":"Sizin İnternet bələdçiniz bu cür mətnin köçürməsini dəstəklənmir. Əlavə etmək üçün %1 basın."},"pastefromword":{"confirmCleanup":"Əlavə edilən mətn Word-dan köçürülənə oxşayır. Təmizləmək istəyirsinizmi?","error":"Daxili səhvə görə əlavə edilən məlumatların təmizlənməsi mümkün deyil","title":"Word-dan əlavəetmə","toolbar":"Word-dan əlavəetmə"},"removeformat":{"toolbar":"Formatı sil"},"sourcearea":{"toolbar":"HTML mənbəyini göstər"},"specialchar":{"options":"Xüsusi simvolların seçimləri","title":"Xüsusi simvolu seç","toolbar":"Xüsusi simvolu daxil et"},"scayt":{"btn_about":"About SCAYT","btn_dictionaries":"Dictionaries","btn_disable":"Disable SCAYT","btn_enable":"Enable SCAYT","btn_langs":"Languages","btn_options":"Options","text_title":"Spell Check As You Type"},"stylescombo":{"label":"Üslub","panelTitle":"Format üslubları","panelTitle1":"Blokların üslubları","panelTitle2":"Sözlərin üslubları","panelTitle3":"Obyektlərin üslubları"},"table":{"border":"Sərhədlərin eni","caption":"Cədvəlin başlığı","cell":{"menu":"Xana","insertBefore":"Burdan əvvələ xanası çək","insertAfter":"Burdan sonra xanası çək","deleteCell":"Xanaları sil","merge":"Xanaları birləşdir","mergeRight":"Sağdan birləşdir","mergeDown":"Soldan birləşdir","splitHorizontal":"Üfüqi böl","splitVertical":"Şaquli böl","title":"Xanaların seçimləri","cellType":"Xana növü","rowSpan":"Sətirləri birləşdir","colSpan":"Sütunları birləşdir","wordWrap":"Sətirlərin sınması","hAlign":"Üfüqi düzləndirmə","vAlign":"Şaquli düzləndirmə","alignBaseline":"Mətn xətti","bgColor":"Doldurma rəngi","borderColor":"Sərhədin rəngi","data":"Məlumatlar","header":"Başlıq","yes":"Bəli","no":"Xeyr","invalidWidth":"Xanasın eni rəqəm olmalıdır.","invalidHeight":"Xanasın hündürlüyü rəqəm olmalıdır.","invalidRowSpan":"Birləşdirdiyiniz sütun xanaların sayı tam və müsbət rəqəm olmalıdır.","invalidColSpan":"Birləşdirdiyiniz sətir xanaların sayı tam və müsbət rəqəm olmalıdır.","chooseColor":"Seç"},"cellPad":"Xanalardakı kənar boşluqlar","cellSpace":"Xanalararası interval","column":{"menu":"Sütun","insertBefore":"Sola sütun əlavə et","insertAfter":"Sağa sütun əlavə et","deleteColumn":"Sütunları sil"},"columns":"Sütunlar","deleteTable":"Cədvəli sil","headers":"Başlıqlar","headersBoth":"Hər ikisi","headersColumn":"Birinci sütun","headersNone":"yox","headersRow":"Birinci sətir","invalidBorder":"Sərhədlərin eni müsbət rəqəm olmalıdır.","invalidCellPadding":"Xanalardakı kənar boşluqlar müsbət rəqəm olmalıdır.","invalidCellSpacing":"Xanalararası interval müsbət rəqəm olmalıdır.","invalidCols":"Sütunlarin sayı tam və müsbət olmalıdır.","invalidHeight":"Cədvəlin hündürlüyü rəqəm olmalıdır.","invalidRows":"Sətirlətin sayı tam və müsbət olmalıdır.","invalidWidth":"Cədvəlin eni rəqəm olmalıdır.","menu":"Cədvəl alətləri","row":{"menu":"Sətir","insertBefore":"Yuxarıya sətir əlavə et","insertAfter":"Aşağıya sətir əlavə et","deleteRow":"Sətirləri sil"},"rows":"Sətirlər","summary":"Xülasə","title":"Cədvəl alətləri","toolbar":"Cədvəl","widthPc":"faiz","widthPx":"piksel","widthUnit":"en vahidi"},"undo":{"redo":"Təkrar et","undo":"İmtina et"},"wsc":{"btnIgnore":"Ignore","btnIgnoreAll":"Ignore All","btnReplace":"Replace","btnReplaceAll":"Replace All","btnUndo":"Undo","changeTo":"Change to","errorLoading":"Error loading application service host: %s.","ieSpellDownload":"Spell checker not installed. Do you want to download it now?","manyChanges":"Spell check complete: %1 words changed","noChanges":"Spell check complete: No words changed","noMispell":"Spell check complete: No misspellings found","noSuggestions":"- No suggestions -","notAvailable":"Sorry, but service is unavailable now.","notInDic":"Not in dictionary","oneChange":"Spell check complete: One word changed","progress":"Spell check in progress...","title":"Spell Checker","toolbar":"Check Spelling"}}; \ No newline at end of file diff --git a/admin/plugins/ckeditor/lang/bg.js b/admin/plugins/ckeditor/lang/bg.js deleted file mode 100644 index df67341..0000000 --- a/admin/plugins/ckeditor/lang/bg.js +++ /dev/null @@ -1,5 +0,0 @@ -/* -Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. -For licensing, see LICENSE.md or http://ckeditor.com/license -*/ -CKEDITOR.lang['bg']={"editor":"Текстов редактор за форматиран текст","editorPanel":"Панел на текстовия редактор","common":{"editorHelp":"натиснете ALT 0 за помощ","browseServer":"Избор от сървъра","url":"URL","protocol":"Протокол","upload":"Качване","uploadSubmit":"Изпращане към сървъра","image":"Снимка","flash":"Флаш","form":"Форма","checkbox":"Поле за избор","radio":"Радио бутон","textField":"Текстово поле","textarea":"Текстова зона","hiddenField":"Скрито поле","button":"Бутон","select":"Поле за избор","imageButton":"Бутон за снимка","notSet":"<не е избрано>","id":"ID","name":"Име","langDir":"Посока на езика","langDirLtr":"Ляво на дясно (ЛнД)","langDirRtl":"Дясно на ляво (ДнЛ)","langCode":"Код на езика","longDescr":"Уеб адрес за дълго описание","cssClass":"Класове за CSS","advisoryTitle":"Препоръчително заглавие","cssStyle":"Стил","ok":"ОК","cancel":"Отказ","close":"Затвори","preview":"Преглед","resize":"Влачете за да оразмерите","generalTab":"Общи","advancedTab":"Разширено","validateNumberFailed":"Тази стойност не е число","confirmNewPage":"Всички незапазени промени ще бъдат изгубени. Сигурни ли сте, че желаете да заредите нова страница?","confirmCancel":"Някои от опциите са променени. Сигурни ли сте, че желаете да затворите прозореца?","options":"Опции","target":"Цел","targetNew":"Нов прозорец (_blank)","targetTop":"Горна позиция (_top)","targetSelf":"Текущия прозорец (_self)","targetParent":"Основен прозорец (_parent)","langDirLTR":"Ляво на дясно (ЛнД)","langDirRTL":"Дясно на ляво (ДнЛ)","styles":"Стил","cssClasses":"Класове за CSS","width":"Ширина","height":"Височина","align":"Подравняване","alignLeft":"Ляво","alignRight":"Дясно","alignCenter":"Център","alignJustify":"Двустранно подравняване","alignTop":"Горе","alignMiddle":"По средата","alignBottom":"Долу","alignNone":"Без подравняване","invalidValue":"Невалидна стойност.","invalidHeight":"Височината трябва да е число.","invalidWidth":"Ширина требе да е число.","invalidCssLength":"Стойността на полето \"%1\" трябва да бъде положително число с или без валидна CSS измервателна единица (px, %, in, cm, mm, em, ex, pt, или pc).","invalidHtmlLength":"Стойността на полето \"%1\" трябва да бъде положително число с или без валидна HTML измервателна единица (px или %).","invalidInlineStyle":"Стойността на стилa трябва да съдържат една или повече двойки във формат \"name : value\", разделени с двоеточие.","cssLengthTooltip":"Въведете числена стойност в пиксели или друга валидна CSS единица (px, %, in, cm, mm, em, ex, pt, или pc).","unavailable":"%1<span class=\"cke_accessibility\">, недостъпно</span>","keyboard":{"8":"Backspace","13":"Enter","16":"Shift","17":"Ctrl","18":"Alt","32":"Space","35":"End","36":"Home","46":"Delete","224":"Command"},"keyboardShortcut":"Keyboard shortcut"},"about":{"copy":"Copyright &copy; $1. All rights reserved.","dlgTitle":"Относно CKEditor","help":"Проверете $1 за помощ.","moreInfo":"За лицензионна информация моля посетете сайта ни:","title":"Относно CKEditor","userGuide":"CKEditor User's Guide"},"basicstyles":{"bold":"Удебелен","italic":"Наклонен","strike":"Зачертан текст","subscript":"Индексиран текст","superscript":"Суперскрипт","underline":"Подчертан"},"blockquote":{"toolbar":"Блок за цитат"},"notification":{"closed":"Notification closed."},"button":{"selectedLabel":"%1 (Избрано)"},"toolbar":{"toolbarCollapse":"Свиване на лентата с инструменти","toolbarExpand":"Разширяване на лентата с инструменти","toolbarGroups":{"document":"Документ","clipboard":"Клипборд/Отмяна","editing":"Промяна","forms":"Форми","basicstyles":"Базови стилове","paragraph":"Параграф","links":"Връзки","insert":"Вмъкване","styles":"Стилове","colors":"Цветове","tools":"Инструменти"},"toolbars":"Ленти с инструменти"},"clipboard":{"copy":"Копирай","copyError":"Настройките за сигурност на вашия бразуър не разрешават на редактора да изпълни запаметяването. За целта използвайте клавиатурата (Ctrl/Cmd+C).","cut":"Отрежи","cutError":"Настройките за сигурност на Вашия браузър не позволяват на редактора автоматично да изъплни действията за отрязване. Моля ползвайте клавиатурните команди за целта (ctrl+x).","paste":"Вмъкни","pasteNotification":"Your browser doesn't allow you to paste this way. Press %1 to paste."},"contextmenu":{"options":"Опции на контекстното меню"},"elementspath":{"eleLabel":"Път за елементите","eleTitle":"%1 елемент"},"format":{"label":"Формат","panelTitle":"Формат","tag_address":"Адрес","tag_div":"Параграф (DIV)","tag_h1":"Заглавие 1","tag_h2":"Заглавие 2","tag_h3":"Заглавие 3","tag_h4":"Заглавие 4","tag_h5":"Заглавие 5","tag_h6":"Заглавие 6","tag_p":"Нормален","tag_pre":"Форматиран"},"horizontalrule":{"toolbar":"Вмъкване на хоризонтална линия"},"image":{"alt":"Алтернативен текст","border":"Рамка","btnUpload":"Изпрати я на сървъра","button2Img":"Do you want to transform the selected image button on a simple image?","hSpace":"Хоризонтален отстъп","img2Button":"Do you want to transform the selected image on a image button?","infoTab":"Инфо за снимка","linkTab":"Връзка","lockRatio":"Заключване на съотношението","menu":"Настройки за снимка","resetSize":"Нулиране на размер","title":"Настройки за снимка","titleButton":"Настойки за бутон за снимка","upload":"Качване","urlMissing":"Image source URL is missing.","vSpace":"Вертикален отстъп","validateBorder":"Border must be a whole number.","validateHSpace":"HSpace must be a whole number.","validateVSpace":"VSpace must be a whole number."},"indent":{"indent":"Увеличаване на отстъпа","outdent":"Намаляване на отстъпа"},"fakeobjects":{"anchor":"Кука","flash":"Флаш анимация","hiddenfield":"Скрито поле","iframe":"IFrame","unknown":"Неизвестен обект"},"link":{"acccessKey":"Ключ за достъп","advanced":"Разширено","advisoryContentType":"Препоръчителен тип на съдържанието","advisoryTitle":"Препоръчително заглавие","anchor":{"toolbar":"Котва","menu":"Промяна на котва","title":"Настройки на котва","name":"Име на котва","errorName":"Моля въведете име на котвата","remove":"Премахване на котва"},"anchorId":"По ID на елемент","anchorName":"По име на котва","charset":"Тип на свързания ресурс","cssClasses":"Класове за CSS","download":"Force Download","displayText":"Display Text","emailAddress":"E-mail aдрес","emailBody":"Съдържание","emailSubject":"Тема","id":"ID","info":"Инфо за връзката","langCode":"Код за езика","langDir":"Посока на езика","langDirLTR":"Ляво на Дясно (ЛнД)","langDirRTL":"Дясно на Ляво (ДнЛ)","menu":"Промяна на връзка","name":"Име","noAnchors":"(Няма котви в текущия документ)","noEmail":"Моля въведете e-mail aдрес","noUrl":"Моля въведете URL адреса","other":"<друго>","popupDependent":"Зависимост (Netscape)","popupFeatures":"Функции на изкачащ прозорец","popupFullScreen":"Цял екран (IE)","popupLeft":"Лява позиция","popupLocationBar":"Лента с локацията","popupMenuBar":"Лента за меню","popupResizable":"Оразмеряем","popupScrollBars":"Скролери","popupStatusBar":"Статусна лента","popupToolbar":"Лента с инструменти","popupTop":"Горна позиция","rel":"Връзка","selectAnchor":"Изберете котва","styles":"Стил","tabIndex":"Ред на достъп","target":"Цел","targetFrame":"<frame>","targetFrameName":"Име на целевият прозорец","targetPopup":"<изкачащ прозорец>","targetPopupName":"Име на изкачащ прозорец","title":"Връзка","toAnchor":"Връзка към котва в текста","toEmail":"E-mail","toUrl":"Уеб адрес","toolbar":"Връзка","type":"Тип на връзката","unlink":"Премахни връзката","upload":"Качване"},"list":{"bulletedlist":"Вмъкване/Премахване на точков списък","numberedlist":"Вмъкване/Премахване на номериран списък"},"magicline":{"title":"Вмъкнете параграф тук"},"maximize":{"maximize":"Максимизиране","minimize":"Минимизиране"},"pastetext":{"button":"Вмъкни като чист текст","pasteNotification":"Your browser does not allow you to paste plain text this way. Press %1 to paste."},"pastefromword":{"confirmCleanup":"The text you want to paste seems to be copied from Word. Do you want to clean it before pasting?","error":"It was not possible to clean up the pasted data due to an internal error","title":"Вмъкни от MS Word","toolbar":"Вмъкни от MS Word"},"removeformat":{"toolbar":"Премахване на форматирането"},"sourcearea":{"toolbar":"Изходен код"},"specialchar":{"options":"Опции за специален знак","title":"Избор на специален знак","toolbar":"Вмъкване на специален знак"},"scayt":{"btn_about":"About SCAYT","btn_dictionaries":"Речници","btn_disable":"Disable SCAYT","btn_enable":"Enable SCAYT","btn_langs":"Languages","btn_options":"Options","text_title":"Spell Check As You Type"},"stylescombo":{"label":"Стилове","panelTitle":"Стилове за форматиране","panelTitle1":"Блокови стилове","panelTitle2":"Вътрешни стилове","panelTitle3":"Обектни стилове"},"table":{"border":"Размер на рамката","caption":"Заглавие","cell":{"menu":"Клетка","insertBefore":"Вмъкване на клетка преди","insertAfter":"Вмъкване на клетка след","deleteCell":"Изтриване на клетки","merge":"Сливане на клетки","mergeRight":"Сливане в дясно","mergeDown":"Merge Down","splitHorizontal":"Split Cell Horizontally","splitVertical":"Split Cell Vertically","title":"Настройки на клетката","cellType":"Тип на клетката","rowSpan":"Rows Span","colSpan":"Columns Span","wordWrap":"Авто. пренос","hAlign":"Хоризонтално подравняване","vAlign":"Вертикално подравняване","alignBaseline":"Базова линия","bgColor":"Фон","borderColor":"Цвят на рамката","data":"Данни","header":"Хедър","yes":"Да","no":"Не","invalidWidth":"Cell width must be a number.","invalidHeight":"Cell height must be a number.","invalidRowSpan":"Rows span must be a whole number.","invalidColSpan":"Columns span must be a whole number.","chooseColor":"Изберете"},"cellPad":"Отделяне на клетките","cellSpace":"Разтояние между клетките","column":{"menu":"Колона","insertBefore":"Вмъкване на колона преди","insertAfter":"Вмъкване на колона след","deleteColumn":"Изтриване на колони"},"columns":"Колони","deleteTable":"Изтриване на таблица","headers":"Хедъри","headersBoth":"Заедно","headersColumn":"Първа колона","headersNone":"Няма","headersRow":"Първи ред","invalidBorder":"Размерът на рамката трябва да е число.","invalidCellPadding":"Отстоянието на клетките трябва да е позитивно число.","invalidCellSpacing":"Интервала в клетките трябва да е позитивно число.","invalidCols":"Броят колони трябва да е по-голям от 0.","invalidHeight":"Височината на таблицата трябва да е число.","invalidRows":"Броят редове трябва да е по-голям от 0.","invalidWidth":"Ширината на таблицата трябва да е число.","menu":"Настройки на таблицата","row":{"menu":"Ред","insertBefore":"Вмъкване на ред преди","insertAfter":"Вмъкване на ред след","deleteRow":"Изтриване на редове"},"rows":"Редове","summary":"Обща информация","title":"Настройки на таблицата","toolbar":"Таблица","widthPc":"процент","widthPx":"пиксела","widthUnit":"единица за ширина"},"undo":{"redo":"Връщане на предишен статус","undo":"Възтанови"},"wsc":{"btnIgnore":"Игнорирай","btnIgnoreAll":"Игнорирай всичко","btnReplace":"Препокриване","btnReplaceAll":"Препокрий всичко","btnUndo":"Възтанови","changeTo":"Промени на","errorLoading":"Error loading application service host: %s.","ieSpellDownload":"Spell checker not installed. Do you want to download it now?","manyChanges":"Spell check complete: %1 words changed","noChanges":"Spell check complete: No words changed","noMispell":"Spell check complete: No misspellings found","noSuggestions":"- Няма препоръчани -","notAvailable":"Съжаляваме, но услугата не е достъпна за момента","notInDic":"Не е в речника","oneChange":"Spell check complete: One word changed","progress":"Проверява се правописа...","title":"Проверка на правопис","toolbar":"Проверка на правопис"}}; \ No newline at end of file diff --git a/admin/plugins/ckeditor/lang/bn.js b/admin/plugins/ckeditor/lang/bn.js deleted file mode 100644 index 424f01f..0000000 --- a/admin/plugins/ckeditor/lang/bn.js +++ /dev/null @@ -1,5 +0,0 @@ -/* -Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. -For licensing, see LICENSE.md or http://ckeditor.com/license -*/ -CKEDITOR.lang['bn']={"editor":"Rich Text Editor","editorPanel":"Rich Text Editor panel","common":{"editorHelp":"Press ALT 0 for help","browseServer":"ব্রাউজ সার্ভার","url":"URL","protocol":"প্রোটোকল","upload":"আপলোড","uploadSubmit":"ইহাকে সার্ভারে প্রেরন কর","image":"ছবির লেবেল যুক্ত কর","flash":"ফ্লাশ লেবেল যুক্ত কর","form":"ফর্ম","checkbox":"চেক বাক্স","radio":"রেডিও বাটন","textField":"টেক্সট ফীল্ড","textarea":"টেক্সট এরিয়া","hiddenField":"গুপ্ত ফীল্ড","button":"বাটন","select":"বাছাই ফীল্ড","imageButton":"ছবির বাটন","notSet":"<সেট নেই>","id":"আইডি","name":"নাম","langDir":"ভাষা লেখার দিক","langDirLtr":"বাম থেকে ডান (LTR)","langDirRtl":"ডান থেকে বাম (RTL)","langCode":"ভাষা কোড","longDescr":"URL এর লম্বা বর্ণনা","cssClass":"স্টাইল-শীট ক্লাস","advisoryTitle":"পরামর্শ শীর্ষক","cssStyle":"স্টাইল","ok":"ওকে","cancel":"বাতিল","close":"Close","preview":"প্রিভিউ","resize":"Resize","generalTab":"General","advancedTab":"এডভান্সড","validateNumberFailed":"This value is not a number.","confirmNewPage":"Any unsaved changes to this content will be lost. Are you sure you want to load new page?","confirmCancel":"You have changed some options. Are you sure you want to close the dialog window?","options":"Options","target":"টার্গেট","targetNew":"New Window (_blank)","targetTop":"Topmost Window (_top)","targetSelf":"Same Window (_self)","targetParent":"Parent Window (_parent)","langDirLTR":"বাম থেকে ডান (LTR)","langDirRTL":"ডান থেকে বাম (RTL)","styles":"স্টাইল","cssClasses":"স্টাইল-শীট ক্লাস","width":"প্রস্থ","height":"দৈর্ঘ্য","align":"এলাইন","alignLeft":"বামে","alignRight":"ডানে","alignCenter":"মাঝখানে","alignJustify":"ব্লক জাস্টিফাই","alignTop":"উপর","alignMiddle":"মধ্য","alignBottom":"নীচে","alignNone":"None","invalidValue":"Invalid value.","invalidHeight":"Height must be a number.","invalidWidth":"Width must be a number.","invalidCssLength":"Value specified for the \"%1\" field must be a positive number with or without a valid CSS measurement unit (px, %, in, cm, mm, em, ex, pt, or pc).","invalidHtmlLength":"Value specified for the \"%1\" field must be a positive number with or without a valid HTML measurement unit (px or %).","invalidInlineStyle":"Value specified for the inline style must consist of one or more tuples with the format of \"name : value\", separated by semi-colons.","cssLengthTooltip":"Enter a number for a value in pixels or a number with a valid CSS unit (px, %, in, cm, mm, em, ex, pt, or pc).","unavailable":"%1<span class=\"cke_accessibility\">, unavailable</span>","keyboard":{"8":"Backspace","13":"Enter","16":"Shift","17":"Ctrl","18":"Alt","32":"Space","35":"End","36":"Home","46":"Delete","224":"Command"},"keyboardShortcut":"Keyboard shortcut"},"about":{"copy":"Copyright &copy; $1. All rights reserved.","dlgTitle":"About CKEditor","help":"Check $1 for help.","moreInfo":"For licensing information please visit our web site:","title":"About CKEditor","userGuide":"CKEditor User's Guide"},"basicstyles":{"bold":"বোল্ড","italic":"বাঁকা","strike":"স্ট্রাইক থ্রু","subscript":"অধোলেখ","superscript":"অভিলেখ","underline":"আন্ডারলাইন"},"blockquote":{"toolbar":"Block Quote"},"notification":{"closed":"Notification closed."},"button":{"selectedLabel":"%1 (Selected)"},"toolbar":{"toolbarCollapse":"Collapse Toolbar","toolbarExpand":"Expand Toolbar","toolbarGroups":{"document":"Document","clipboard":"Clipboard/Undo","editing":"Editing","forms":"Forms","basicstyles":"Basic Styles","paragraph":"Paragraph","links":"Links","insert":"Insert","styles":"Styles","colors":"Colors","tools":"Tools"},"toolbars":"Editor toolbars"},"clipboard":{"copy":"কপি","copyError":"আপনার ব্রাউজারের নিরাপত্তা সেটিংসমূহ এডিটরকে স্বয়ংক্রিয়ভাবে কপি করার প্রক্রিয়া চালনা করার অনুমতি দেয় না। অনুগ্রহপূর্বক এই কাজের জন্য কিবোর্ড ব্যবহার করুন (Ctrl/Cmd+C)।","cut":"কাট","cutError":"আপনার ব্রাউজারের সুরক্ষা সেটিংস এডিটরকে অটোমেটিক কাট করার অনুমতি দেয়নি। দয়া করে এই কাজের জন্য কিবোর্ড ব্যবহার করুন (Ctrl/Cmd+X)।","paste":"পেস্ট","pasteNotification":"Your browser doesn't allow you to paste this way. Press %1 to paste."},"contextmenu":{"options":"Context Menu Options"},"elementspath":{"eleLabel":"Elements path","eleTitle":"%1 element"},"format":{"label":"ধরন-প্রকৃতি","panelTitle":"ফন্ট ফরমেট","tag_address":"ঠিকানা","tag_div":"শীর্ষক (DIV)","tag_h1":"শীর্ষক ১","tag_h2":"শীর্ষক ২","tag_h3":"শীর্ষক ৩","tag_h4":"শীর্ষক ৪","tag_h5":"শীর্ষক ৫","tag_h6":"শীর্ষক ৬","tag_p":"সাধারণ","tag_pre":"ফর্মেটেড"},"horizontalrule":{"toolbar":"অনুভূমিক লাইন যোগ করি"},"image":{"alt":"বিকল্প টেক্সট","border":"বর্ডার","btnUpload":"ইহাকে সার্ভারে প্রেরন কর","button2Img":"Do you want to transform the selected image button on a simple image?","hSpace":"হরাইজন্টাল স্পেস","img2Button":"Do you want to transform the selected image on a image button?","infoTab":"ছবির তথ্য","linkTab":"লিংক","lockRatio":"অনুপাত লক কর","menu":"ছবির প্রোপার্টি","resetSize":"সাইজ পূর্বাবস্থায় ফিরিয়ে দাও","title":"ছবির প্রোপার্টি","titleButton":"ছবির বাটন সম্বন্ধীয়","upload":"আপলোড","urlMissing":"Image source URL is missing.","vSpace":"ভার্টিকেল স্পেস","validateBorder":"Border must be a whole number.","validateHSpace":"HSpace must be a whole number.","validateVSpace":"VSpace must be a whole number."},"indent":{"indent":"ইনডেন্ট বাড়াই","outdent":"ইনডেন্ট কমাও"},"fakeobjects":{"anchor":"Anchor","flash":"Flash Animation","hiddenfield":"Hidden Field","iframe":"IFrame","unknown":"Unknown Object"},"link":{"acccessKey":"প্রবেশ কী","advanced":"এডভান্সড","advisoryContentType":"পরামর্শ কন্টেন্টের প্রকার","advisoryTitle":"পরামর্শ শীর্ষক","anchor":{"toolbar":"নোঙ্গর","menu":"নোঙর প্রোপার্টি","title":"নোঙর প্রোপার্টি","name":"নোঙরের নাম","errorName":"নোঙরের নাম টাইপ করুন","remove":"Remove Anchor"},"anchorId":"নোঙরের আইডি দিয়ে","anchorName":"নোঙরের নাম দিয়ে","charset":"লিংক রিসোর্স ক্যারেক্টর সেট","cssClasses":"স্টাইল-শীট ক্লাস","download":"Force Download","displayText":"Display Text","emailAddress":"ইমেইল ঠিকানা","emailBody":"মেসেজের দেহ","emailSubject":"মেসেজের বিষয়","id":"আইডি","info":"লিংক তথ্য","langCode":"ভাষা লেখার দিক","langDir":"ভাষা লেখার দিক","langDirLTR":"বাম থেকে ডান (LTR)","langDirRTL":"ডান থেকে বাম (RTL)","menu":"লিংক সম্পাদন","name":"নাম","noAnchors":"(No anchors available in the document)","noEmail":"অনুগ্রহ করে ইমেইল এড্রেস টাইপ করুন","noUrl":"অনুগ্রহ করে URL লিংক টাইপ করুন","other":"<other>","popupDependent":"ডিপেন্ডেন্ট (Netscape)","popupFeatures":"পপআপ উইন্ডো ফীচার সমূহ","popupFullScreen":"পূর্ণ পর্দা জুড়ে (IE)","popupLeft":"বামের পজিশন","popupLocationBar":"লোকেশন বার","popupMenuBar":"মেন্যু বার","popupResizable":"Resizable","popupScrollBars":"স্ক্রল বার","popupStatusBar":"স্ট্যাটাস বার","popupToolbar":"টুল বার","popupTop":"ডানের পজিশন","rel":"Relationship","selectAnchor":"নোঙর বাছাই","styles":"স্টাইল","tabIndex":"ট্যাব ইন্ডেক্স","target":"টার্গেট","targetFrame":"<ফ্রেম>","targetFrameName":"টার্গেট ফ্রেমের নাম","targetPopup":"<পপআপ উইন্ডো>","targetPopupName":"পপআপ উইন্ডোর নাম","title":"লিংক","toAnchor":"এই পেজে নোঙর কর","toEmail":"ইমেইল","toUrl":"URL","toolbar":"লিংক যুক্ত কর","type":"লিংক প্রকার","unlink":"লিংক সরাও","upload":"আপলোড"},"list":{"bulletedlist":"বুলেটেড তালিকা প্রবেশ/অপসারন করি","numberedlist":"সাংখ্যিক লিস্টের লেবেল"},"magicline":{"title":"Insert paragraph here"},"maximize":{"maximize":"Maximize","minimize":"Minimize"},"pastetext":{"button":"সাধারণ টেক্সট হিসেবে পেইস্ট করি","pasteNotification":"Your browser does not allow you to paste plain text this way. Press %1 to paste."},"pastefromword":{"confirmCleanup":"The text you want to paste seems to be copied from Word. Do you want to clean it before pasting?","error":"It was not possible to clean up the pasted data due to an internal error","title":"পেস্ট (শব্দ)","toolbar":"পেস্ট (শব্দ)"},"removeformat":{"toolbar":"ধরন-প্রকৃতি অপসারণ করি"},"sourcearea":{"toolbar":"উৎস"},"specialchar":{"options":"Special Character Options","title":"বিশেষ ক্যারেক্টার বাছাই কর","toolbar":"বিশেষ অক্ষর যুক্ত কর"},"scayt":{"btn_about":"About SCAYT","btn_dictionaries":"Dictionaries","btn_disable":"Disable SCAYT","btn_enable":"Enable SCAYT","btn_langs":"Languages","btn_options":"Options","text_title":"Spell Check As You Type"},"stylescombo":{"label":"ধরন","panelTitle":"Formatting Styles","panelTitle1":"Block Styles","panelTitle2":"Inline Styles","panelTitle3":"Object Styles"},"table":{"border":"বর্ডারের সাইজ","caption":"শীর্ষক","cell":{"menu":"সেল","insertBefore":"Insert Cell Before","insertAfter":"Insert Cell After","deleteCell":"সেল মুছে দাও","merge":"সেল জোড়া দাও","mergeRight":"Merge Right","mergeDown":"Merge Down","splitHorizontal":"Split Cell Horizontally","splitVertical":"Split Cell Vertically","title":"Cell Properties","cellType":"Cell Type","rowSpan":"Rows Span","colSpan":"Columns Span","wordWrap":"Word Wrap","hAlign":"Horizontal Alignment","vAlign":"Vertical Alignment","alignBaseline":"Baseline","bgColor":"পৃষ্ঠতলের রং","borderColor":"Border Color","data":"Data","header":"Header","yes":"Yes","no":"No","invalidWidth":"Cell width must be a number.","invalidHeight":"Cell height must be a number.","invalidRowSpan":"Rows span must be a whole number.","invalidColSpan":"Columns span must be a whole number.","chooseColor":"Choose"},"cellPad":"সেল প্যাডিং","cellSpace":"সেল স্পেস","column":{"menu":"কলাম","insertBefore":"Insert Column Before","insertAfter":"Insert Column After","deleteColumn":"কলাম মুছে দাও"},"columns":"কলাম","deleteTable":"টেবিল ডিলীট কর","headers":"Headers","headersBoth":"Both","headersColumn":"First column","headersNone":"None","headersRow":"First Row","invalidBorder":"Border size must be a number.","invalidCellPadding":"Cell padding must be a positive number.","invalidCellSpacing":"Cell spacing must be a positive number.","invalidCols":"Number of columns must be a number greater than 0.","invalidHeight":"Table height must be a number.","invalidRows":"Number of rows must be a number greater than 0.","invalidWidth":"Table width must be a number.","menu":"টেবিল প্রোপার্টি","row":{"menu":"রো","insertBefore":"Insert Row Before","insertAfter":"Insert Row After","deleteRow":"রো মুছে দাও"},"rows":"রো","summary":"সারাংশ","title":"টেবিল প্রোপার্টি","toolbar":"টেবিলের লেবেল যুক্ত কর","widthPc":"শতকরা","widthPx":"পিক্সেল","widthUnit":"width unit"},"undo":{"redo":"পুনরায় করি","undo":"আনডু"},"wsc":{"btnIgnore":"ইগনোর কর","btnIgnoreAll":"সব ইগনোর কর","btnReplace":"বদলে দাও","btnReplaceAll":"সব বদলে দাও","btnUndo":"আন্ডু","changeTo":"এতে বদলাও","errorLoading":"Error loading application service host: %s.","ieSpellDownload":"বানান পরীক্ষক ইনস্টল করা নেই। আপনি কি এখনই এটা ডাউনলোড করতে চান?","manyChanges":"বানান পরীক্ষা শেষ: %1 গুলো শব্দ বদলে গ্যাছে","noChanges":"বানান পরীক্ষা শেষ: কোন শব্দ পরিবর্তন করা হয়নি","noMispell":"বানান পরীক্ষা শেষ: কোন ভুল বানান পাওয়া যায়নি","noSuggestions":"- কোন সাজেশন নেই -","notAvailable":"Sorry, but service is unavailable now.","notInDic":"শব্দকোষে নেই","oneChange":"বানান পরীক্ষা শেষ: একটি মাত্র শব্দ পরিবর্তন করা হয়েছে","progress":"বানান পরীক্ষা চলছে...","title":"Spell Checker","toolbar":"বানান চেক"}}; \ No newline at end of file diff --git a/admin/plugins/ckeditor/lang/bs.js b/admin/plugins/ckeditor/lang/bs.js deleted file mode 100644 index 49ddf4b..0000000 --- a/admin/plugins/ckeditor/lang/bs.js +++ /dev/null @@ -1,5 +0,0 @@ -/* -Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. -For licensing, see LICENSE.md or http://ckeditor.com/license -*/ -CKEDITOR.lang['bs']={"editor":"Rich Text Editor","editorPanel":"Rich Text Editor panel","common":{"editorHelp":"Press ALT 0 for help","browseServer":"Browse Server","url":"URL","protocol":"Protokol","upload":"Šalji","uploadSubmit":"Šalji na server","image":"Slika","flash":"Flash","form":"Form","checkbox":"Checkbox","radio":"Radio Button","textField":"Text Field","textarea":"Textarea","hiddenField":"Hidden Field","button":"Button","select":"Selection Field","imageButton":"Image Button","notSet":"<nije podešeno>","id":"Id","name":"Naziv","langDir":"Smjer pisanja","langDirLtr":"S lijeva na desno (LTR)","langDirRtl":"S desna na lijevo (RTL)","langCode":"Jezièni kôd","longDescr":"Dugaèki opis URL-a","cssClass":"Klase CSS stilova","advisoryTitle":"Advisory title","cssStyle":"Stil","ok":"OK","cancel":"Odustani","close":"Close","preview":"Prikaži","resize":"Resize","generalTab":"General","advancedTab":"Naprednije","validateNumberFailed":"This value is not a number.","confirmNewPage":"Any unsaved changes to this content will be lost. Are you sure you want to load new page?","confirmCancel":"You have changed some options. Are you sure you want to close the dialog window?","options":"Options","target":"Prozor","targetNew":"New Window (_blank)","targetTop":"Topmost Window (_top)","targetSelf":"Same Window (_self)","targetParent":"Parent Window (_parent)","langDirLTR":"S lijeva na desno (LTR)","langDirRTL":"S desna na lijevo (RTL)","styles":"Stil","cssClasses":"Klase CSS stilova","width":"Širina","height":"Visina","align":"Poravnanje","alignLeft":"Lijevo","alignRight":"Desno","alignCenter":"Centar","alignJustify":"Puno poravnanje","alignTop":"Vrh","alignMiddle":"Sredina","alignBottom":"Dno","alignNone":"None","invalidValue":"Invalid value.","invalidHeight":"Height must be a number.","invalidWidth":"Width must be a number.","invalidCssLength":"Value specified for the \"%1\" field must be a positive number with or without a valid CSS measurement unit (px, %, in, cm, mm, em, ex, pt, or pc).","invalidHtmlLength":"Value specified for the \"%1\" field must be a positive number with or without a valid HTML measurement unit (px or %).","invalidInlineStyle":"Value specified for the inline style must consist of one or more tuples with the format of \"name : value\", separated by semi-colons.","cssLengthTooltip":"Enter a number for a value in pixels or a number with a valid CSS unit (px, %, in, cm, mm, em, ex, pt, or pc).","unavailable":"%1<span class=\"cke_accessibility\">, unavailable</span>","keyboard":{"8":"Backspace","13":"Enter","16":"Shift","17":"Ctrl","18":"Alt","32":"Space","35":"End","36":"Home","46":"Delete","224":"Command"},"keyboardShortcut":"Keyboard shortcut"},"about":{"copy":"Copyright &copy; $1. All rights reserved.","dlgTitle":"About CKEditor","help":"Check $1 for help.","moreInfo":"For licensing information please visit our web site:","title":"About CKEditor","userGuide":"CKEditor User's Guide"},"basicstyles":{"bold":"Boldiraj","italic":"Ukosi","strike":"Precrtaj","subscript":"Subscript","superscript":"Superscript","underline":"Podvuci"},"blockquote":{"toolbar":"Block Quote"},"notification":{"closed":"Notification closed."},"button":{"selectedLabel":"%1 (Selected)"},"toolbar":{"toolbarCollapse":"Collapse Toolbar","toolbarExpand":"Expand Toolbar","toolbarGroups":{"document":"Document","clipboard":"Clipboard/Undo","editing":"Editing","forms":"Forms","basicstyles":"Basic Styles","paragraph":"Paragraph","links":"Links","insert":"Insert","styles":"Styles","colors":"Colors","tools":"Tools"},"toolbars":"Editor toolbars"},"clipboard":{"copy":"Kopiraj","copyError":"Sigurnosne postavke Vašeg pretraživaèa ne dozvoljavaju operacije automatskog kopiranja. Molimo koristite kraticu na tastaturi (Ctrl/Cmd+C).","cut":"Izreži","cutError":"Sigurnosne postavke vašeg pretraživaèa ne dozvoljavaju operacije automatskog rezanja. Molimo koristite kraticu na tastaturi (Ctrl/Cmd+X).","paste":"Zalijepi","pasteNotification":"Your browser doesn't allow you to paste this way. Press %1 to paste."},"contextmenu":{"options":"Context Menu Options"},"elementspath":{"eleLabel":"Elements path","eleTitle":"%1 element"},"format":{"label":"Format","panelTitle":"Format","tag_address":"Address","tag_div":"Normal (DIV)","tag_h1":"Heading 1","tag_h2":"Heading 2","tag_h3":"Heading 3","tag_h4":"Heading 4","tag_h5":"Heading 5","tag_h6":"Heading 6","tag_p":"Normal","tag_pre":"Formatted"},"horizontalrule":{"toolbar":"Ubaci horizontalnu liniju"},"image":{"alt":"Tekst na slici","border":"Okvir","btnUpload":"Šalji na server","button2Img":"Do you want to transform the selected image button on a simple image?","hSpace":"HSpace","img2Button":"Do you want to transform the selected image on a image button?","infoTab":"Info slike","linkTab":"Link","lockRatio":"Zakljuèaj odnos","menu":"Svojstva slike","resetSize":"Resetuj dimenzije","title":"Svojstva slike","titleButton":"Image Button Properties","upload":"Šalji","urlMissing":"Image source URL is missing.","vSpace":"VSpace","validateBorder":"Border must be a whole number.","validateHSpace":"HSpace must be a whole number.","validateVSpace":"VSpace must be a whole number."},"indent":{"indent":"Poveæaj uvod","outdent":"Smanji uvod"},"fakeobjects":{"anchor":"Anchor","flash":"Flash Animation","hiddenfield":"Hidden Field","iframe":"IFrame","unknown":"Unknown Object"},"link":{"acccessKey":"Pristupna tipka","advanced":"Naprednije","advisoryContentType":"Advisory vrsta sadržaja","advisoryTitle":"Advisory title","anchor":{"toolbar":"Anchor","menu":"Edit Anchor","title":"Anchor Properties","name":"Anchor Name","errorName":"Please type the anchor name","remove":"Remove Anchor"},"anchorId":"Po Id-u elementa","anchorName":"Po nazivu sidra","charset":"Linked Resource Charset","cssClasses":"Klase CSS stilova","download":"Force Download","displayText":"Display Text","emailAddress":"E-Mail Adresa","emailBody":"Poruka","emailSubject":"Subjekt poruke","id":"Id","info":"Link info","langCode":"Smjer pisanja","langDir":"Smjer pisanja","langDirLTR":"S lijeva na desno (LTR)","langDirRTL":"S desna na lijevo (RTL)","menu":"Izmjeni link","name":"Naziv","noAnchors":"(Nema dostupnih sidra na stranici)","noEmail":"Molimo ukucajte e-mail adresu","noUrl":"Molimo ukucajte URL link","other":"<other>","popupDependent":"Ovisno (Netscape)","popupFeatures":"Moguænosti popup prozora","popupFullScreen":"Cijeli ekran (IE)","popupLeft":"Lijeva pozicija","popupLocationBar":"Traka za lokaciju","popupMenuBar":"Izborna traka","popupResizable":"Resizable","popupScrollBars":"Scroll traka","popupStatusBar":"Statusna traka","popupToolbar":"Traka sa alatima","popupTop":"Gornja pozicija","rel":"Relationship","selectAnchor":"Izaberi sidro","styles":"Stil","tabIndex":"Tab indeks","target":"Prozor","targetFrame":"<frejm>","targetFrameName":"Target Frame Name","targetPopup":"<popup prozor>","targetPopupName":"Naziv popup prozora","title":"Link","toAnchor":"Sidro na ovoj stranici","toEmail":"E-Mail","toUrl":"URL","toolbar":"Ubaci/Izmjeni link","type":"Tip linka","unlink":"Izbriši link","upload":"Šalji"},"list":{"bulletedlist":"Lista","numberedlist":"Numerisana lista"},"magicline":{"title":"Insert paragraph here"},"maximize":{"maximize":"Maximize","minimize":"Minimize"},"pastetext":{"button":"Zalijepi kao obièan tekst","pasteNotification":"Your browser does not allow you to paste plain text this way. Press %1 to paste."},"pastefromword":{"confirmCleanup":"The text you want to paste seems to be copied from Word. Do you want to clean it before pasting?","error":"It was not possible to clean up the pasted data due to an internal error","title":"Zalijepi iz Word-a","toolbar":"Zalijepi iz Word-a"},"removeformat":{"toolbar":"Poništi format"},"sourcearea":{"toolbar":"HTML kôd"},"specialchar":{"options":"Special Character Options","title":"Izaberi specijalni karakter","toolbar":"Ubaci specijalni karater"},"scayt":{"btn_about":"About SCAYT","btn_dictionaries":"Dictionaries","btn_disable":"Disable SCAYT","btn_enable":"Enable SCAYT","btn_langs":"Languages","btn_options":"Options","text_title":"Spell Check As You Type"},"stylescombo":{"label":"Stil","panelTitle":"Formatting Styles","panelTitle1":"Block Styles","panelTitle2":"Inline Styles","panelTitle3":"Object Styles"},"table":{"border":"Okvir","caption":"Naslov","cell":{"menu":"Cell","insertBefore":"Insert Cell Before","insertAfter":"Insert Cell After","deleteCell":"Briši æelije","merge":"Spoji æelije","mergeRight":"Merge Right","mergeDown":"Merge Down","splitHorizontal":"Split Cell Horizontally","splitVertical":"Split Cell Vertically","title":"Cell Properties","cellType":"Cell Type","rowSpan":"Rows Span","colSpan":"Columns Span","wordWrap":"Word Wrap","hAlign":"Horizontal Alignment","vAlign":"Vertical Alignment","alignBaseline":"Baseline","bgColor":"Background Color","borderColor":"Border Color","data":"Data","header":"Header","yes":"Yes","no":"No","invalidWidth":"Cell width must be a number.","invalidHeight":"Cell height must be a number.","invalidRowSpan":"Rows span must be a whole number.","invalidColSpan":"Columns span must be a whole number.","chooseColor":"Choose"},"cellPad":"Uvod æelija","cellSpace":"Razmak æelija","column":{"menu":"Column","insertBefore":"Insert Column Before","insertAfter":"Insert Column After","deleteColumn":"Briši kolone"},"columns":"Kolona","deleteTable":"Delete Table","headers":"Headers","headersBoth":"Both","headersColumn":"First column","headersNone":"None","headersRow":"First Row","invalidBorder":"Border size must be a number.","invalidCellPadding":"Cell padding must be a positive number.","invalidCellSpacing":"Cell spacing must be a positive number.","invalidCols":"Number of columns must be a number greater than 0.","invalidHeight":"Table height must be a number.","invalidRows":"Number of rows must be a number greater than 0.","invalidWidth":"Table width must be a number.","menu":"Svojstva tabele","row":{"menu":"Row","insertBefore":"Insert Row Before","insertAfter":"Insert Row After","deleteRow":"Briši redove"},"rows":"Redova","summary":"Summary","title":"Svojstva tabele","toolbar":"Tabela","widthPc":"posto","widthPx":"piksela","widthUnit":"width unit"},"undo":{"redo":"Ponovi","undo":"Vrati"},"wsc":{"btnIgnore":"Ignore","btnIgnoreAll":"Ignore All","btnReplace":"Replace","btnReplaceAll":"Replace All","btnUndo":"Undo","changeTo":"Change to","errorLoading":"Error loading application service host: %s.","ieSpellDownload":"Spell checker not installed. Do you want to download it now?","manyChanges":"Spell check complete: %1 words changed","noChanges":"Spell check complete: No words changed","noMispell":"Spell check complete: No misspellings found","noSuggestions":"- No suggestions -","notAvailable":"Sorry, but service is unavailable now.","notInDic":"Not in dictionary","oneChange":"Spell check complete: One word changed","progress":"Spell check in progress...","title":"Spell Checker","toolbar":"Check Spelling"}}; \ No newline at end of file diff --git a/admin/plugins/ckeditor/lang/ca.js b/admin/plugins/ckeditor/lang/ca.js deleted file mode 100644 index 9c23555..0000000 --- a/admin/plugins/ckeditor/lang/ca.js +++ /dev/null @@ -1,5 +0,0 @@ -/* -Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. -For licensing, see LICENSE.md or http://ckeditor.com/license -*/ -CKEDITOR.lang['ca']={"editor":"Editor de text enriquit","editorPanel":"Panell de l'editor de text enriquit","common":{"editorHelp":"Premeu ALT 0 per ajuda","browseServer":"Veure servidor","url":"URL","protocol":"Protocol","upload":"Puja","uploadSubmit":"Envia-la al servidor","image":"Imatge","flash":"Flash","form":"Formulari","checkbox":"Casella de verificació","radio":"Botó d'opció","textField":"Camp de text","textarea":"Àrea de text","hiddenField":"Camp ocult","button":"Botó","select":"Camp de selecció","imageButton":"Botó d'imatge","notSet":"<no definit>","id":"Id","name":"Nom","langDir":"Direcció de l'idioma","langDirLtr":"D'esquerra a dreta (LTR)","langDirRtl":"De dreta a esquerra (RTL)","langCode":"Codi d'idioma","longDescr":"Descripció llarga de la URL","cssClass":"Classes del full d'estil","advisoryTitle":"Títol consultiu","cssStyle":"Estil","ok":"D'acord","cancel":"Cancel·la","close":"Tanca","preview":"Previsualitza","resize":"Arrossegueu per redimensionar","generalTab":"General","advancedTab":"Avançat","validateNumberFailed":"Aquest valor no és un número.","confirmNewPage":"Els canvis en aquest contingut que no es desin es perdran. Esteu segur que voleu carregar una pàgina nova?","confirmCancel":"Algunes opcions s'han canviat. Esteu segur que voleu tancar el quadre de diàleg?","options":"Opcions","target":"Destí","targetNew":"Nova finestra (_blank)","targetTop":"Finestra superior (_top)","targetSelf":"Mateixa finestra (_self)","targetParent":"Finestra pare (_parent)","langDirLTR":"D'esquerra a dreta (LTR)","langDirRTL":"De dreta a esquerra (RTL)","styles":"Estil","cssClasses":"Classes del full d'estil","width":"Amplada","height":"Alçada","align":"Alineació","alignLeft":"Ajusta a l'esquerra","alignRight":"Ajusta a la dreta","alignCenter":"Centre","alignJustify":"Justificat","alignTop":"Superior","alignMiddle":"Centre","alignBottom":"Inferior","alignNone":"Cap","invalidValue":"Valor no vàlid.","invalidHeight":"L'alçada ha de ser un número.","invalidWidth":"L'amplada ha de ser un número.","invalidCssLength":"El valor especificat per als \"%1\" camps ha de ser un número positiu amb o sense unitat de mesura vàlida de CSS (px, %, in, cm, mm, em, ex, pt o pc).","invalidHtmlLength":"El valor especificat per als \"%1\" camps ha de ser un número positiu amb o sense unitat de mesura vàlida d'HTML (px o %).","invalidInlineStyle":"El valor especificat per l'estil en línia ha de constar d'una o més tuples amb el format \"name: value\", separats per punt i coma.","cssLengthTooltip":"Introduïu un número per un valor en píxels o un número amb una unitat vàlida de CSS (px, %, in, cm, mm, em, ex, pt o pc).","unavailable":"%1<span class=\"cke_accessibility\">, no disponible</span>","keyboard":{"8":"Retrocés","13":"Intro","16":"Majúscules","17":"Ctrl","18":"Alt","32":"Space","35":"Fi","36":"Inici","46":"Eliminar","224":"Command"},"keyboardShortcut":"Keyboard shortcut"},"about":{"copy":"Copyright &copy; $1. Tots els drets reservats.","dlgTitle":"Quant al CKEditor","help":"Premi $1 per obtenir ajuda.","moreInfo":"Per informació sobre llicències visiteu el nostre lloc web:","title":"Quant al CKEditor","userGuide":"Manual d'usuari de CKEditor"},"basicstyles":{"bold":"Negreta","italic":"Cursiva","strike":"Ratllat","subscript":"Subíndex","superscript":"Superíndex","underline":"Subratllat"},"blockquote":{"toolbar":"Bloc de cita"},"notification":{"closed":"Notificació tancada."},"button":{"selectedLabel":"%1 (Seleccionat)"},"toolbar":{"toolbarCollapse":"Redueix la barra d'eines","toolbarExpand":"Amplia la barra d'eines","toolbarGroups":{"document":"Document","clipboard":"Clipboard/Undo","editing":"Editing","forms":"Forms","basicstyles":"Basic Styles","paragraph":"Paragraph","links":"Links","insert":"Insert","styles":"Styles","colors":"Colors","tools":"Tools"},"toolbars":"Editor de barra d'eines"},"clipboard":{"copy":"Copiar","copyError":"La configuració de seguretat del vostre navegador no permet executar automàticament les operacions de copiar. Si us plau, utilitzeu el teclat (Ctrl/Cmd+C).","cut":"Retallar","cutError":"La configuració de seguretat del vostre navegador no permet executar automàticament les operacions de retallar. Si us plau, utilitzeu el teclat (Ctrl/Cmd+X).","paste":"Enganxar","pasteNotification":"Your browser doesn't allow you to paste this way. Press %1 to paste."},"contextmenu":{"options":"Opcions del menú contextual"},"elementspath":{"eleLabel":"Ruta dels elements","eleTitle":"%1 element"},"format":{"label":"Format","panelTitle":"Format","tag_address":"Adreça","tag_div":"Normal (DIV)","tag_h1":"Encapçalament 1","tag_h2":"Encapçalament 2","tag_h3":"Encapçalament 3","tag_h4":"Encapçalament 4","tag_h5":"Encapçalament 5","tag_h6":"Encapçalament 6","tag_p":"Normal","tag_pre":"Formatejat"},"horizontalrule":{"toolbar":"Insereix línia horitzontal"},"image":{"alt":"Text alternatiu","border":"Vora","btnUpload":"Envia-la al servidor","button2Img":"Voleu transformar el botó d'imatge seleccionat en una simple imatge?","hSpace":"Espaiat horit.","img2Button":"Voleu transformar la imatge seleccionada en un botó d'imatge?","infoTab":"Informació de la imatge","linkTab":"Enllaç","lockRatio":"Bloqueja les proporcions","menu":"Propietats de la imatge","resetSize":"Restaura la mida","title":"Propietats de la imatge","titleButton":"Propietats del botó d'imatge","upload":"Puja","urlMissing":"Falta la URL de la imatge.","vSpace":"Espaiat vert.","validateBorder":"La vora ha de ser un nombre enter.","validateHSpace":"HSpace ha de ser un nombre enter.","validateVSpace":"VSpace ha de ser un nombre enter."},"indent":{"indent":"Augmenta el sagnat","outdent":"Redueix el sagnat"},"fakeobjects":{"anchor":"Àncora","flash":"Animació Flash","hiddenfield":"Camp ocult","iframe":"IFrame","unknown":"Objecte desconegut"},"link":{"acccessKey":"Clau d'accés","advanced":"Avançat","advisoryContentType":"Tipus de contingut consultiu","advisoryTitle":"Títol consultiu","anchor":{"toolbar":"Insereix/Edita àncora","menu":"Propietats de l'àncora","title":"Propietats de l'àncora","name":"Nom de l'àncora","errorName":"Si us plau, escriviu el nom de l'ancora","remove":"Remove Anchor"},"anchorId":"Per Id d'element","anchorName":"Per nom d'àncora","charset":"Conjunt de caràcters font enllaçat","cssClasses":"Classes del full d'estil","download":"Force Download","displayText":"Text a mostrar","emailAddress":"Adreça de correu electrònic","emailBody":"Cos del missatge","emailSubject":"Assumpte del missatge","id":"Id","info":"Informació de l'enllaç","langCode":"Direcció de l'idioma","langDir":"Direcció de l'idioma","langDirLTR":"D'esquerra a dreta (LTR)","langDirRTL":"De dreta a esquerra (RTL)","menu":"Edita l'enllaç","name":"Nom","noAnchors":"(No hi ha àncores disponibles en aquest document)","noEmail":"Si us plau, escrigui l'adreça correu electrònic","noUrl":"Si us plau, escrigui l'enllaç URL","other":"<altre>","popupDependent":"Depenent (Netscape)","popupFeatures":"Característiques finestra popup","popupFullScreen":"Pantalla completa (IE)","popupLeft":"Posició esquerra","popupLocationBar":"Barra d'adreça","popupMenuBar":"Barra de menú","popupResizable":"Redimensionable","popupScrollBars":"Barres d'scroll","popupStatusBar":"Barra d'estat","popupToolbar":"Barra d'eines","popupTop":"Posició dalt","rel":"Relació","selectAnchor":"Selecciona una àncora","styles":"Estil","tabIndex":"Index de Tab","target":"Destí","targetFrame":"<marc>","targetFrameName":"Nom del marc de destí","targetPopup":"<finestra emergent>","targetPopupName":"Nom finestra popup","title":"Enllaç","toAnchor":"Àncora en aquesta pàgina","toEmail":"Correu electrònic","toUrl":"URL","toolbar":"Insereix/Edita enllaç","type":"Tipus d'enllaç","unlink":"Elimina l'enllaç","upload":"Puja"},"list":{"bulletedlist":"Llista de pics","numberedlist":"Llista numerada"},"magicline":{"title":"Insereix el paràgraf aquí"},"maximize":{"maximize":"Maximitza","minimize":"Minimitza"},"pastetext":{"button":"Enganxa com a text no formatat","pasteNotification":"Your browser does not allow you to paste plain text this way. Press %1 to paste."},"pastefromword":{"confirmCleanup":"El text que voleu enganxar sembla provenir de Word. Voleu netejar aquest text abans que sigui enganxat?","error":"No ha estat possible netejar les dades enganxades degut a un error intern","title":"Enganxa des del Word","toolbar":"Enganxa des del Word"},"removeformat":{"toolbar":"Elimina Format"},"sourcearea":{"toolbar":"Codi font"},"specialchar":{"options":"Opcions de caràcters especials","title":"Selecciona el caràcter especial","toolbar":"Insereix caràcter especial"},"scayt":{"btn_about":"Quant a l'SCAYT","btn_dictionaries":"Diccionaris","btn_disable":"Deshabilita SCAYT","btn_enable":"Habilitat l'SCAYT","btn_langs":"Idiomes","btn_options":"Opcions","text_title":"Spell Check As You Type"},"stylescombo":{"label":"Estil","panelTitle":"Estils de format","panelTitle1":"Estils de bloc","panelTitle2":"Estils incrustats","panelTitle3":"Estils d'objecte"},"table":{"border":"Mida vora","caption":"Títol","cell":{"menu":"Cel·la","insertBefore":"Insereix abans","insertAfter":"Insereix després","deleteCell":"Suprimeix","merge":"Fusiona","mergeRight":"Fusiona a la dreta","mergeDown":"Fusiona avall","splitHorizontal":"Divideix horitzontalment","splitVertical":"Divideix verticalment","title":"Propietats de la cel·la","cellType":"Tipus de cel·la","rowSpan":"Expansió de files","colSpan":"Expansió de columnes","wordWrap":"Ajustar al contingut","hAlign":"Alineació Horizontal","vAlign":"Alineació Vertical","alignBaseline":"A la línia base","bgColor":"Color de fons","borderColor":"Color de la vora","data":"Dades","header":"Capçalera","yes":"Sí","no":"No","invalidWidth":"L'amplada de cel·la ha de ser un nombre.","invalidHeight":"L'alçada de cel·la ha de ser un nombre.","invalidRowSpan":"L'expansió de files ha de ser un nombre enter.","invalidColSpan":"L'expansió de columnes ha de ser un nombre enter.","chooseColor":"Trieu"},"cellPad":"Encoixinament de cel·les","cellSpace":"Espaiat de cel·les","column":{"menu":"Columna","insertBefore":"Insereix columna abans de","insertAfter":"Insereix columna darrera","deleteColumn":"Suprimeix una columna"},"columns":"Columnes","deleteTable":"Suprimeix la taula","headers":"Capçaleres","headersBoth":"Ambdues","headersColumn":"Primera columna","headersNone":"Cap","headersRow":"Primera fila","invalidBorder":"El gruix de la vora ha de ser un nombre.","invalidCellPadding":"L'encoixinament de cel·la ha de ser un nombre.","invalidCellSpacing":"L'espaiat de cel·la ha de ser un nombre.","invalidCols":"El nombre de columnes ha de ser un nombre major que 0.","invalidHeight":"L'alçada de la taula ha de ser un nombre.","invalidRows":"El nombre de files ha de ser un nombre major que 0.","invalidWidth":"L'amplada de la taula ha de ser un nombre.","menu":"Propietats de la taula","row":{"menu":"Fila","insertBefore":"Insereix fila abans de","insertAfter":"Insereix fila darrera","deleteRow":"Suprimeix una fila"},"rows":"Files","summary":"Resum","title":"Propietats de la taula","toolbar":"Taula","widthPc":"percentatge","widthPx":"píxels","widthUnit":"unitat d'amplada"},"undo":{"redo":"Refés","undo":"Desfés"},"wsc":{"btnIgnore":"Ignora","btnIgnoreAll":"Ignora-les totes","btnReplace":"Canvia","btnReplaceAll":"Canvia-les totes","btnUndo":"Desfés","changeTo":"Reemplaça amb","errorLoading":"Error carregant el servidor: %s.","ieSpellDownload":"Verificació ortogràfica no instal·lada. Voleu descarregar-ho ara?","manyChanges":"Verificació ortogràfica: s'han canviat %1 paraules","noChanges":"Verificació ortogràfica: no s'ha canviat cap paraula","noMispell":"Verificació ortogràfica acabada: no hi ha cap paraula mal escrita","noSuggestions":"Cap suggeriment","notAvailable":"El servei no es troba disponible ara.","notInDic":"No és al diccionari","oneChange":"Verificació ortogràfica: s'ha canviat una paraula","progress":"Verificació ortogràfica en curs...","title":"Comprova l'ortografia","toolbar":"Revisa l'ortografia"}}; \ No newline at end of file diff --git a/admin/plugins/ckeditor/lang/cs.js b/admin/plugins/ckeditor/lang/cs.js deleted file mode 100644 index 20ab82b..0000000 --- a/admin/plugins/ckeditor/lang/cs.js +++ /dev/null @@ -1,5 +0,0 @@ -/* -Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. -For licensing, see LICENSE.md or http://ckeditor.com/license -*/ -CKEDITOR.lang['cs']={"editor":"Textový editor","editorPanel":"Panel textového editoru","common":{"editorHelp":"Stiskněte ALT 0 pro nápovědu","browseServer":"Vybrat na serveru","url":"URL","protocol":"Protokol","upload":"Odeslat","uploadSubmit":"Odeslat na server","image":"Obrázek","flash":"Flash","form":"Formulář","checkbox":"Zaškrtávací políčko","radio":"Přepínač","textField":"Textové pole","textarea":"Textová oblast","hiddenField":"Skryté pole","button":"Tlačítko","select":"Seznam","imageButton":"Obrázkové tlačítko","notSet":"<nenastaveno>","id":"Id","name":"Jméno","langDir":"Směr jazyka","langDirLtr":"Zleva doprava (LTR)","langDirRtl":"Zprava doleva (RTL)","langCode":"Kód jazyka","longDescr":"Dlouhý popis URL","cssClass":"Třída stylu","advisoryTitle":"Pomocný titulek","cssStyle":"Styl","ok":"OK","cancel":"Zrušit","close":"Zavřít","preview":"Náhled","resize":"Uchopit pro změnu velikosti","generalTab":"Obecné","advancedTab":"Rozšířené","validateNumberFailed":"Zadaná hodnota není číselná.","confirmNewPage":"Jakékoliv neuložené změny obsahu budou ztraceny. Skutečně chcete otevřít novou stránku?","confirmCancel":"Některá z nastavení byla změněna. Skutečně chcete zavřít dialogové okno?","options":"Nastavení","target":"Cíl","targetNew":"Nové okno (_blank)","targetTop":"Okno nejvyšší úrovně (_top)","targetSelf":"Stejné okno (_self)","targetParent":"Rodičovské okno (_parent)","langDirLTR":"Zleva doprava (LTR)","langDirRTL":"Zprava doleva (RTL)","styles":"Styly","cssClasses":"Třídy stylů","width":"Šířka","height":"Výška","align":"Zarovnání","alignLeft":"Vlevo","alignRight":"Vpravo","alignCenter":"Na střed","alignJustify":"Zarovnat do bloku","alignTop":"Nahoru","alignMiddle":"Na střed","alignBottom":"Dolů","alignNone":"Žádné","invalidValue":"Neplatná hodnota.","invalidHeight":"Zadaná výška musí být číslo.","invalidWidth":"Šířka musí být číslo.","invalidCssLength":"Hodnota určená pro pole \"%1\" musí být kladné číslo bez nebo s platnou jednotkou míry CSS (px, %, in, cm, mm, em, ex, pt, nebo pc).","invalidHtmlLength":"Hodnota určená pro pole \"%1\" musí být kladné číslo bez nebo s platnou jednotkou míry HTML (px nebo %).","invalidInlineStyle":"Hodnota určená pro řádkový styl se musí skládat z jedné nebo více n-tic ve formátu \"název : hodnota\", oddělené středníky","cssLengthTooltip":"Zadejte číslo jako hodnotu v pixelech nebo číslo s platnou jednotkou CSS (px, %, v cm, mm, em, ex, pt, nebo pc).","unavailable":"%1<span class=\"cke_accessibility\">, nedostupné</span>","keyboard":{"8":"Backspace","13":"Enter","16":"Shift","17":"Ctrl","18":"Alt","32":"Mezerník","35":"Konec","36":"Domů","46":"Smazat","224":"Command"},"keyboardShortcut":"Klávesová zkratka"},"about":{"copy":"Copyright &copy; $1. All rights reserved.","dlgTitle":"O aplikaci CKEditor","help":"Prohlédněte si $1 pro nápovědu.","moreInfo":"Pro informace o lincenci navštivte naši webovou stránku:","title":"O aplikaci CKEditor","userGuide":"Uživatelská příručka CKEditor"},"basicstyles":{"bold":"Tučné","italic":"Kurzíva","strike":"Přeškrtnuté","subscript":"Dolní index","superscript":"Horní index","underline":"Podtržené"},"blockquote":{"toolbar":"Citace"},"notification":{"closed":"Oznámení zavřeno."},"button":{"selectedLabel":"%1 (Vybráno)"},"toolbar":{"toolbarCollapse":"Skrýt panel nástrojů","toolbarExpand":"Zobrazit panel nástrojů","toolbarGroups":{"document":"Dokument","clipboard":"Schránka/Zpět","editing":"Úpravy","forms":"Formuláře","basicstyles":"Základní styly","paragraph":"Odstavec","links":"Odkazy","insert":"Vložit","styles":"Styly","colors":"Barvy","tools":"Nástroje"},"toolbars":"Panely nástrojů editoru"},"clipboard":{"copy":"Kopírovat","copyError":"Bezpečnostní nastavení vašeho prohlížeče nedovolují editoru spustit funkci pro kopírování zvoleného textu do schránky. Prosím zkopírujte zvolený text do schránky pomocí klávesnice (Ctrl/Cmd+C).","cut":"Vyjmout","cutError":"Bezpečnostní nastavení vašeho prohlížeče nedovolují editoru spustit funkci pro vyjmutí zvoleného textu do schránky. Prosím vyjměte zvolený text do schránky pomocí klávesnice (Ctrl/Cmd+X).","paste":"Vložit","pasteNotification":"Your browser doesn't allow you to paste this way. Press %1 to paste."},"contextmenu":{"options":"Nastavení kontextové nabídky"},"elementspath":{"eleLabel":"Cesta objektu","eleTitle":"%1 objekt"},"format":{"label":"Formát","panelTitle":"Formát","tag_address":"Adresa","tag_div":"Normální (DIV)","tag_h1":"Nadpis 1","tag_h2":"Nadpis 2","tag_h3":"Nadpis 3","tag_h4":"Nadpis 4","tag_h5":"Nadpis 5","tag_h6":"Nadpis 6","tag_p":"Normální","tag_pre":"Naformátováno"},"horizontalrule":{"toolbar":"Vložit vodorovnou linku"},"image":{"alt":"Alternativní text","border":"Okraje","btnUpload":"Odeslat na server","button2Img":"Skutečně chcete převést zvolené obrázkové tlačítko na obyčejný obrázek?","hSpace":"Horizontální mezera","img2Button":"Skutečně chcete převést zvolený obrázek na obrázkové tlačítko?","infoTab":"Informace o obrázku","linkTab":"Odkaz","lockRatio":"Zámek","menu":"Vlastnosti obrázku","resetSize":"Původní velikost","title":"Vlastnosti obrázku","titleButton":"Vlastností obrázkového tlačítka","upload":"Odeslat","urlMissing":"Zadané URL zdroje obrázku nebylo nalezeno.","vSpace":"Vertikální mezera","validateBorder":"Okraj musí být nastaven v celých číslech.","validateHSpace":"Horizontální mezera musí být nastavena v celých číslech.","validateVSpace":"Vertikální mezera musí být nastavena v celých číslech."},"indent":{"indent":"Zvětšit odsazení","outdent":"Zmenšit odsazení"},"fakeobjects":{"anchor":"Záložka","flash":"Flash animace","hiddenfield":"Skryté pole","iframe":"IFrame","unknown":"Neznámý objekt"},"link":{"acccessKey":"Přístupový klíč","advanced":"Rozšířené","advisoryContentType":"Pomocný typ obsahu","advisoryTitle":"Pomocný titulek","anchor":{"toolbar":"Záložka","menu":"Vlastnosti záložky","title":"Vlastnosti záložky","name":"Název záložky","errorName":"Zadejte prosím název záložky","remove":"Odstranit záložku"},"anchorId":"Podle Id objektu","anchorName":"Podle jména kotvy","charset":"Přiřazená znaková sada","cssClasses":"Třída stylu","download":"Force Download","displayText":"Zobrazit text","emailAddress":"E-mailová adresa","emailBody":"Tělo zprávy","emailSubject":"Předmět zprávy","id":"Id","info":"Informace o odkazu","langCode":"Kód jazyka","langDir":"Směr jazyka","langDirLTR":"Zleva doprava (LTR)","langDirRTL":"Zprava doleva (RTL)","menu":"Změnit odkaz","name":"Jméno","noAnchors":"(Ve stránce není definována žádná kotva!)","noEmail":"Zadejte prosím e-mailovou adresu","noUrl":"Zadejte prosím URL odkazu","other":"<jiný>","popupDependent":"Závislost (Netscape)","popupFeatures":"Vlastnosti vyskakovacího okna","popupFullScreen":"Celá obrazovka (IE)","popupLeft":"Levý okraj","popupLocationBar":"Panel umístění","popupMenuBar":"Panel nabídky","popupResizable":"Umožňující měnit velikost","popupScrollBars":"Posuvníky","popupStatusBar":"Stavový řádek","popupToolbar":"Panel nástrojů","popupTop":"Horní okraj","rel":"Vztah","selectAnchor":"Vybrat kotvu","styles":"Styl","tabIndex":"Pořadí prvku","target":"Cíl","targetFrame":"<rámec>","targetFrameName":"Název cílového rámu","targetPopup":"<vyskakovací okno>","targetPopupName":"Název vyskakovacího okna","title":"Odkaz","toAnchor":"Kotva v této stránce","toEmail":"E-mail","toUrl":"URL","toolbar":"Odkaz","type":"Typ odkazu","unlink":"Odstranit odkaz","upload":"Odeslat"},"list":{"bulletedlist":"Odrážky","numberedlist":"Číslování"},"magicline":{"title":"zde vložit odstavec"},"maximize":{"maximize":"Maximalizovat","minimize":"Minimalizovat"},"pastetext":{"button":"Vložit jako čistý text","pasteNotification":"Your browser does not allow you to paste plain text this way. Press %1 to paste."},"pastefromword":{"confirmCleanup":"Jak je vidět, vkládaný text je kopírován z Wordu. Chcete jej před vložením vyčistit?","error":"Z důvodu vnitřní chyby nebylo možné provést vyčištění vkládaného textu.","title":"Vložit z Wordu","toolbar":"Vložit z Wordu"},"removeformat":{"toolbar":"Odstranit formátování"},"sourcearea":{"toolbar":"Zdroj"},"specialchar":{"options":"Nastavení speciálních znaků","title":"Výběr speciálního znaku","toolbar":"Vložit speciální znaky"},"scayt":{"btn_about":"O aplikaci SCAYT","btn_dictionaries":"Slovníky","btn_disable":"Vypnout SCAYT","btn_enable":"Zapnout SCAYT","btn_langs":"Jazyky","btn_options":"Nastavení","text_title":"Kontrola pravopisu během psaní (SCAYT)"},"stylescombo":{"label":"Styl","panelTitle":"Formátovací styly","panelTitle1":"Blokové styly","panelTitle2":"Řádkové styly","panelTitle3":"Objektové styly"},"table":{"border":"Ohraničení","caption":"Popis","cell":{"menu":"Buňka","insertBefore":"Vložit buňku před","insertAfter":"Vložit buňku za","deleteCell":"Smazat buňky","merge":"Sloučit buňky","mergeRight":"Sloučit doprava","mergeDown":"Sloučit dolů","splitHorizontal":"Rozdělit buňky vodorovně","splitVertical":"Rozdělit buňky svisle","title":"Vlastnosti buňky","cellType":"Typ buňky","rowSpan":"Spojit řádky","colSpan":"Spojit sloupce","wordWrap":"Zalamování","hAlign":"Vodorovné zarovnání","vAlign":"Svislé zarovnání","alignBaseline":"Na účaří","bgColor":"Barva pozadí","borderColor":"Barva okraje","data":"Data","header":"Hlavička","yes":"Ano","no":"Ne","invalidWidth":"Šířka buňky musí být číslo.","invalidHeight":"Zadaná výška buňky musí být číslená.","invalidRowSpan":"Zadaný počet sloučených řádků musí být celé číslo.","invalidColSpan":"Zadaný počet sloučených sloupců musí být celé číslo.","chooseColor":"Výběr"},"cellPad":"Odsazení obsahu v buňce","cellSpace":"Vzdálenost buněk","column":{"menu":"Sloupec","insertBefore":"Vložit sloupec před","insertAfter":"Vložit sloupec za","deleteColumn":"Smazat sloupec"},"columns":"Sloupce","deleteTable":"Smazat tabulku","headers":"Záhlaví","headersBoth":"Obojí","headersColumn":"První sloupec","headersNone":"Žádné","headersRow":"První řádek","invalidBorder":"Zdaná velikost okraje musí být číselná.","invalidCellPadding":"Zadané odsazení obsahu v buňce musí být číselné.","invalidCellSpacing":"Zadaná vzdálenost buněk musí být číselná.","invalidCols":"Počet sloupců musí být číslo větší než 0.","invalidHeight":"Zadaná výška tabulky musí být číselná.","invalidRows":"Počet řádků musí být číslo větší než 0.","invalidWidth":"Šířka tabulky musí být číslo.","menu":"Vlastnosti tabulky","row":{"menu":"Řádek","insertBefore":"Vložit řádek před","insertAfter":"Vložit řádek za","deleteRow":"Smazat řádky"},"rows":"Řádky","summary":"Souhrn","title":"Vlastnosti tabulky","toolbar":"Tabulka","widthPc":"procent","widthPx":"bodů","widthUnit":"jednotka šířky"},"undo":{"redo":"Znovu","undo":"Zpět"},"wsc":{"btnIgnore":"Přeskočit","btnIgnoreAll":"Přeskakovat vše","btnReplace":"Zaměnit","btnReplaceAll":"Zaměňovat vše","btnUndo":"Zpět","changeTo":"Změnit na","errorLoading":"Chyba nahrávání služby aplikace z: %s.","ieSpellDownload":"Kontrola pravopisu není nainstalována. Chcete ji nyní stáhnout?","manyChanges":"Kontrola pravopisu dokončena: %1 slov změněno","noChanges":"Kontrola pravopisu dokončena: Beze změn","noMispell":"Kontrola pravopisu dokončena: Žádné pravopisné chyby nenalezeny","noSuggestions":"- žádné návrhy -","notAvailable":"Omlouváme se, ale služba nyní není dostupná.","notInDic":"Není ve slovníku","oneChange":"Kontrola pravopisu dokončena: Jedno slovo změněno","progress":"Probíhá kontrola pravopisu...","title":"Kontrola pravopisu","toolbar":"Zkontrolovat pravopis"}}; \ No newline at end of file diff --git a/admin/plugins/ckeditor/lang/cy.js b/admin/plugins/ckeditor/lang/cy.js deleted file mode 100644 index 514b537..0000000 --- a/admin/plugins/ckeditor/lang/cy.js +++ /dev/null @@ -1,5 +0,0 @@ -/* -Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. -For licensing, see LICENSE.md or http://ckeditor.com/license -*/ -CKEDITOR.lang['cy']={"editor":"Golygydd Testun Cyfoethog","editorPanel":"Panel Golygydd Testun Cyfoethog","common":{"editorHelp":"Gwasgwch ALT 0 am gymorth","browseServer":"Pori'r Gweinydd","url":"URL","protocol":"Protocol","upload":"Lanlwytho","uploadSubmit":"Anfon i'r Gweinydd","image":"Delwedd","flash":"Flash","form":"Ffurflen","checkbox":"Blwch ticio","radio":"Botwm Radio","textField":"Maes Testun","textarea":"Ardal Testun","hiddenField":"Maes Cudd","button":"Botwm","select":"Maes Dewis","imageButton":"Botwm Delwedd","notSet":"<heb osod>","id":"Id","name":"Name","langDir":"Cyfeiriad Iaith","langDirLtr":"Chwith i'r Dde (LTR)","langDirRtl":"Dde i'r Chwith (RTL)","langCode":"Cod Iaith","longDescr":"URL Disgrifiad Hir","cssClass":"Dosbarthiadau Dalen Arddull","advisoryTitle":"Teitl Cynghorol","cssStyle":"Arddull","ok":"Iawn","cancel":"Diddymu","close":"Cau","preview":"Rhagolwg","resize":"Ailfeintio","generalTab":"Cyffredinol","advancedTab":"Uwch","validateNumberFailed":"'Dyw'r gwerth hwn ddim yn rhif.","confirmNewPage":"Byddwch chi'n colli unrhyw newidiadau i'r cynnwys sydd heb eu cadw. Ydych am barhau i lwytho tudalen newydd?","confirmCancel":"Cafodd rhai o'r opsiynau eu newid. Ydych chi wir am gau'r deialog?","options":"Opsiynau","target":"Targed","targetNew":"Ffenest Newydd (_blank)","targetTop":"Ffenest ar y Brig (_top)","targetSelf":"Yr un Ffenest (_self)","targetParent":"Ffenest y Rhiant (_parent)","langDirLTR":"Chwith i'r Dde (LTR)","langDirRTL":"Dde i'r Chwith (RTL)","styles":"Arddull","cssClasses":"Dosbarthiadau Dalen Arddull","width":"Lled","height":"Uchder","align":"Alinio","alignLeft":"Chwith","alignRight":"Dde","alignCenter":"Canol","alignJustify":"Unioni","alignTop":"Brig","alignMiddle":"Canol","alignBottom":"Gwaelod","alignNone":"None","invalidValue":"Gwerth annilys.","invalidHeight":"Mae'n rhaid i'r uchder fod yn rhif.","invalidWidth":"Mae'n rhaid i'r lled fod yn rhif.","invalidCssLength":"Mae'n rhaid i'r gwerth ar gyfer maes \"%1\" fod yn rhif positif gyda neu heb uned fesuriad CSS dilys (px, %, in, cm, mm, em, ex, pt, neu pc).","invalidHtmlLength":"Mae'n rhaid i'r gwerth ar gyfer maes \"%1\" fod yn rhif positif gyda neu heb uned fesuriad HTML dilys (px neu %).","invalidInlineStyle":"Mae'n rhaid i'r gwerth ar gyfer arddull mewn-llinell gynnwys un set neu fwy ar y fformat \"enw : gwerth\", wedi'u gwahanu gyda hanner colon.","cssLengthTooltip":"Rhowch rif am werth mewn picsel neu rhif gydag uned CSS dilys (px, %, in, cm, mm, em, pt neu pc).","unavailable":"%1<span class=\"cke_accessibility\">, ddim ar gael</span>","keyboard":{"8":"Backspace","13":"Enter","16":"Shift","17":"Ctrl","18":"Alt","32":"Space","35":"End","36":"Home","46":"Delete","224":"Command"},"keyboardShortcut":"Keyboard shortcut"},"about":{"copy":"Hawlfraint &copy; $1. Cedwir pob hawl.","dlgTitle":"Ynghylch CKEditor","help":"Gwirio $1 am gymorth.","moreInfo":"Am wybodaeth ynghylch trwyddedau, ewch i'n gwefan:","title":"Ynghylch CKEditor","userGuide":"Canllawiau Defnyddiwr CKEditor"},"basicstyles":{"bold":"Bras","italic":"Italig","strike":"Llinell Trwyddo","subscript":"Is-sgript","superscript":"Uwchsgript","underline":"Tanlinellu"},"blockquote":{"toolbar":"Dyfyniad bloc"},"notification":{"closed":"Notification closed."},"button":{"selectedLabel":"%1 (Selected)"},"toolbar":{"toolbarCollapse":"Cyfangu'r Bar Offer","toolbarExpand":"Ehangu'r Bar Offer","toolbarGroups":{"document":"Dogfen","clipboard":"Clipfwrdd/Dadwneud","editing":"Golygu","forms":"Ffurflenni","basicstyles":"Arddulliau Sylfaenol","paragraph":"Paragraff","links":"Dolenni","insert":"Mewnosod","styles":"Arddulliau","colors":"Lliwiau","tools":"Offer"},"toolbars":"Bariau offer y golygydd"},"clipboard":{"copy":"Copïo","copyError":"'Dyw gosodiadau diogelwch eich porwr ddim yn caniatàu'r golygydd i gynnal 'gweithredoedd copïo' yn awtomatig. Defnyddiwch y bysellfwrdd (Ctrl/Cmd+C).","cut":"Torri","cutError":"Nid yw gosodiadau diogelwch eich porwr yn caniatàu'r golygydd i gynnal 'gweithredoedd torri' yn awtomatig. Defnyddiwch y bysellfwrdd (Ctrl/Cmd+X).","paste":"Gludo","pasteNotification":"Your browser doesn't allow you to paste this way. Press %1 to paste."},"contextmenu":{"options":"Opsiynau Dewislen Cyd-destun"},"elementspath":{"eleLabel":"Llwybr elfennau","eleTitle":"Elfen %1"},"format":{"label":"Fformat","panelTitle":"Fformat Paragraff","tag_address":"Cyfeiriad","tag_div":"Normal (DIV)","tag_h1":"Pennawd 1","tag_h2":"Pennawd 2","tag_h3":"Pennawd 3","tag_h4":"Pennawd 4","tag_h5":"Pennawd 5","tag_h6":"Pennawd 6","tag_p":"Normal","tag_pre":"Wedi'i Fformatio"},"horizontalrule":{"toolbar":"Mewnosod Llinell Lorweddol"},"image":{"alt":"Testun Amgen","border":"Ymyl","btnUpload":"Anfon i'r Gweinydd","button2Img":"Ydych am drawsffurfio'r botwm ddelwedd hwn ar ddelwedd syml?","hSpace":"BwlchLl","img2Button":"Ydych am drawsffurfio'r ddelwedd hon ar fotwm delwedd?","infoTab":"Gwyb Delwedd","linkTab":"Dolen","lockRatio":"Cloi Cymhareb","menu":"Priodweddau Delwedd","resetSize":"Ailosod Maint","title":"Priodweddau Delwedd","titleButton":"Priodweddau Botwm Delwedd","upload":"Lanlwytho","urlMissing":"URL gwreiddiol y ddelwedd ar goll.","vSpace":"BwlchF","validateBorder":"Rhaid i'r ymyl fod yn gyfanrif.","validateHSpace":"Rhaid i'r HSpace fod yn gyfanrif.","validateVSpace":"Rhaid i'r VSpace fod yn gyfanrif."},"indent":{"indent":"Cynyddu'r Mewnoliad","outdent":"Lleihau'r Mewnoliad"},"fakeobjects":{"anchor":"Angor","flash":"Animeiddiant Flash","hiddenfield":"Maes Cudd","iframe":"IFrame","unknown":"Gwrthrych Anhysbys"},"link":{"acccessKey":"Allwedd Mynediad","advanced":"Uwch","advisoryContentType":"Math y Cynnwys Cynghorol","advisoryTitle":"Teitl Cynghorol","anchor":{"toolbar":"Angor","menu":"Golygu'r Angor","title":"Priodweddau'r Angor","name":"Enw'r Angor","errorName":"Teipiwch enw'r angor","remove":"Tynnwch yr Angor"},"anchorId":"Gan Id yr Elfen","anchorName":"Gan Enw'r Angor","charset":"Set Nodau'r Adnodd Cysylltiedig","cssClasses":"Dosbarthiadau Dalen Arddull","download":"Force Download","displayText":"Display Text","emailAddress":"Cyfeiriad E-Bost","emailBody":"Corff y Neges","emailSubject":"Testun y Neges","id":"Id","info":"Gwyb y Ddolen","langCode":"Cod Iaith","langDir":"Cyfeiriad Iaith","langDirLTR":"Chwith i'r Dde (LTR)","langDirRTL":"Dde i'r Chwith (RTL)","menu":"Golygu Dolen","name":"Enw","noAnchors":"(Dim angorau ar gael yn y ddogfen)","noEmail":"Teipiwch gyfeiriad yr e-bost","noUrl":"Teipiwch URL y ddolen","other":"<eraill>","popupDependent":"Dibynnol (Netscape)","popupFeatures":"Nodweddion Ffenestr Bop","popupFullScreen":"Sgrin Llawn (IE)","popupLeft":"Safle Chwith","popupLocationBar":"Bar Safle","popupMenuBar":"Dewislen","popupResizable":"Ailfeintiol","popupScrollBars":"Barrau Sgrolio","popupStatusBar":"Bar Statws","popupToolbar":"Bar Offer","popupTop":"Safle Top","rel":"Perthynas","selectAnchor":"Dewiswch Angor","styles":"Arddull","tabIndex":"Indecs Tab","target":"Targed","targetFrame":"<ffrâm>","targetFrameName":"Enw Ffrâm y Targed","targetPopup":"<ffenestr bop>","targetPopupName":"Enw Ffenestr Bop","title":"Dolen","toAnchor":"Dolen at angor yn y testun","toEmail":"E-bost","toUrl":"URL","toolbar":"Dolen","type":"Math y Ddolen","unlink":"Datgysylltu","upload":"Lanlwytho"},"list":{"bulletedlist":"Mewnosod/Tynnu Rhestr Bwled","numberedlist":"Mewnosod/Tynnu Rhestr Rhifol"},"magicline":{"title":"Mewnosod paragraff yma"},"maximize":{"maximize":"Mwyhau","minimize":"Lleihau"},"pastetext":{"button":"Gludo fel testun plaen","pasteNotification":"Your browser does not allow you to paste plain text this way. Press %1 to paste."},"pastefromword":{"confirmCleanup":"Mae'r testun rydych chi am ludo wedi'i gopïo o Word. Ydych chi am ei lanhau cyn ei ludo?","error":"Doedd dim modd glanhau y data a ludwyd oherwydd gwall mewnol","title":"Gludo o Word","toolbar":"Gludo o Word"},"removeformat":{"toolbar":"Tynnu Fformat"},"sourcearea":{"toolbar":"HTML"},"specialchar":{"options":"Opsiynau Nodau Arbennig","title":"Dewis Nod Arbennig","toolbar":"Mewnosod Nod Arbennig"},"scayt":{"btn_about":"Ynghylch SCAYT","btn_dictionaries":"Geiriaduron","btn_disable":"Analluogi SCAYT","btn_enable":"Galluogi SCAYT","btn_langs":"Ieithoedd","btn_options":"Opsiynau","text_title":"Gwirio'r Sillafu Wrth Deipio"},"stylescombo":{"label":"Arddulliau","panelTitle":"Arddulliau Fformatio","panelTitle1":"Arddulliau Bloc","panelTitle2":"Arddulliau Mewnol","panelTitle3":"Arddulliau Gwrthrych"},"table":{"border":"Maint yr Ymyl","caption":"Pennawd","cell":{"menu":"Cell","insertBefore":"Mewnosod Cell Cyn","insertAfter":"Mewnosod Cell Ar Ôl","deleteCell":"Dileu Celloedd","merge":"Cyfuno Celloedd","mergeRight":"Cyfuno i'r Dde","mergeDown":"Cyfuno i Lawr","splitHorizontal":"Hollti'r Gell yn Lorweddol","splitVertical":"Hollti'r Gell yn Fertigol","title":"Priodweddau'r Gell","cellType":"Math y Gell","rowSpan":"Rhychwant Rhesi","colSpan":"Rhychwant Colofnau","wordWrap":"Lapio Geiriau","hAlign":"Aliniad Llorweddol","vAlign":"Aliniad Fertigol","alignBaseline":"Baslinell","bgColor":"Lliw Cefndir","borderColor":"Lliw Ymyl","data":"Data","header":"Pennyn","yes":"Ie","no":"Na","invalidWidth":"Mae'n rhaid i led y gell fod yn rhif.","invalidHeight":"Mae'n rhaid i uchder y gell fod yn rhif.","invalidRowSpan":"Mae'n rhaid i rychwant y rhesi fod yn gyfanrif.","invalidColSpan":"Mae'n rhaid i rychwant y colofnau fod yn gyfanrif.","chooseColor":"Dewis"},"cellPad":"Padio'r gell","cellSpace":"Bylchiad y gell","column":{"menu":"Colofn","insertBefore":"Mewnosod Colofn Cyn","insertAfter":"Mewnosod Colofn Ar Ôl","deleteColumn":"Dileu Colofnau"},"columns":"Colofnau","deleteTable":"Dileu Tabl","headers":"Penynnau","headersBoth":"Y Ddau","headersColumn":"Colofn gyntaf","headersNone":"Dim","headersRow":"Rhes gyntaf","invalidBorder":"Mae'n rhaid i faint yr ymyl fod yn rhif.","invalidCellPadding":"Mae'n rhaid i badiad y gell fod yn rhif positif.","invalidCellSpacing":"Mae'n rhaid i fylchiad y gell fod yn rhif positif.","invalidCols":"Mae'n rhaid cael o leiaf un golofn.","invalidHeight":"Mae'n rhaid i uchder y tabl fod yn rhif.","invalidRows":"Mae'n rhaid cael o leiaf un rhes.","invalidWidth":"Mae'n rhaid i led y tabl fod yn rhif.","menu":"Priodweddau'r Tabl","row":{"menu":"Rhes","insertBefore":"Mewnosod Rhes Cyn","insertAfter":"Mewnosod Rhes Ar Ôl","deleteRow":"Dileu Rhesi"},"rows":"Rhesi","summary":"Crynodeb","title":"Priodweddau'r Tabl","toolbar":"Tabl","widthPc":"y cant","widthPx":"picsel","widthUnit":"uned lled"},"undo":{"redo":"Ailwneud","undo":"Dadwneud"},"wsc":{"btnIgnore":"Anwybyddu Un","btnIgnoreAll":"Anwybyddu Pob","btnReplace":"Amnewid Un","btnReplaceAll":"Amnewid Pob","btnUndo":"Dadwneud","changeTo":"Newid i","errorLoading":"Error loading application service host: %s.","ieSpellDownload":"Gwirydd sillafu heb ei arsefydlu. A ydych am ei lawrlwytho nawr?","manyChanges":"Gwirio sillafu wedi gorffen: Newidiwyd %1 gair","noChanges":"Gwirio sillafu wedi gorffen: Dim newidiadau","noMispell":"Gwirio sillafu wedi gorffen: Dim camsillaf.","noSuggestions":"- Dim awgrymiadau -","notAvailable":"Nid yw'r gwasanaeth hwn ar gael yn bresennol.","notInDic":"Nid i'w gael yn y geiriadur","oneChange":"Gwirio sillafu wedi gorffen: Newidiwyd 1 gair","progress":"Gwirio sillafu yn ar y gweill...","title":"Gwirio Sillafu","toolbar":"Gwirio Sillafu"}}; \ No newline at end of file diff --git a/admin/plugins/ckeditor/lang/da.js b/admin/plugins/ckeditor/lang/da.js deleted file mode 100644 index 417570d..0000000 --- a/admin/plugins/ckeditor/lang/da.js +++ /dev/null @@ -1,5 +0,0 @@ -/* -Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. -For licensing, see LICENSE.md or http://ckeditor.com/license -*/ -CKEDITOR.lang['da']={"editor":"Rich Text Editor","editorPanel":"Rich Text Editor panel","common":{"editorHelp":"Tryk ALT 0 for hjælp","browseServer":"Gennemse...","url":"URL","protocol":"Protokol","upload":"Upload","uploadSubmit":"Upload","image":"Indsæt billede","flash":"Indsæt Flash","form":"Indsæt formular","checkbox":"Indsæt afkrydsningsfelt","radio":"Indsæt alternativknap","textField":"Indsæt tekstfelt","textarea":"Indsæt tekstboks","hiddenField":"Indsæt skjult felt","button":"Indsæt knap","select":"Indsæt liste","imageButton":"Indsæt billedknap","notSet":"<intet valgt>","id":"Id","name":"Navn","langDir":"Tekstretning","langDirLtr":"Fra venstre mod højre (LTR)","langDirRtl":"Fra højre mod venstre (RTL)","langCode":"Sprogkode","longDescr":"Udvidet beskrivelse","cssClass":"Typografiark (CSS)","advisoryTitle":"Titel","cssStyle":"Typografi (CSS)","ok":"OK","cancel":"Annullér","close":"Luk","preview":"Forhåndsvisning","resize":"Træk for at skalere","generalTab":"Generelt","advancedTab":"Avanceret","validateNumberFailed":"Værdien er ikke et tal.","confirmNewPage":"Alt indhold, der ikke er blevet gemt, vil gå tabt. Er du sikker på, at du vil indlæse en ny side?","confirmCancel":"Nogle af indstillingerne er blevet ændret. Er du sikker på, at du vil lukke vinduet?","options":"Vis muligheder","target":"Mål","targetNew":"Nyt vindue (_blank)","targetTop":"Øverste vindue (_top)","targetSelf":"Samme vindue (_self)","targetParent":"Samme vindue (_parent)","langDirLTR":"Venstre til højre (LTR)","langDirRTL":"Højre til venstre (RTL)","styles":"Style","cssClasses":"Stylesheetklasser","width":"Bredde","height":"Højde","align":"Justering","alignLeft":"Venstre","alignRight":"Højre","alignCenter":"Centreret","alignJustify":"Lige margener","alignTop":"Øverst","alignMiddle":"Centreret","alignBottom":"Nederst","alignNone":"Ingen","invalidValue":"Ugyldig værdi.","invalidHeight":"Højde skal være et tal.","invalidWidth":"Bredde skal være et tal.","invalidCssLength":"Værdien specificeret for \"%1\" feltet skal være et positivt nummer med eller uden en CSS måleenhed (px, %, in, cm, mm, em, ex, pt, eller pc).","invalidHtmlLength":"Værdien specificeret for \"%1\" feltet skal være et positivt nummer med eller uden en CSS måleenhed (px eller %).","invalidInlineStyle":"Værdien specificeret for inline style skal indeholde en eller flere elementer med et format som \"name:value\", separeret af semikoloner","cssLengthTooltip":"Indsæt en numerisk værdi i pixel eller nummer med en gyldig CSS værdi (px, %, in, cm, mm, em, ex, pt, eller pc).","unavailable":"%1<span class=\"cke_accessibility\">, ikke tilgængelig</span>","keyboard":{"8":"Backspace","13":"Retur","16":"Shift","17":"Ctrl","18":"Alt","32":"Mellemrum","35":"End","36":"Home","46":"Slet","224":"Command"},"keyboardShortcut":"Tastatur genvej"},"about":{"copy":"Copyright &copy; $1. Alle rettigheder forbeholdes.","dlgTitle":"Om CKEditor","help":"Se $1 for at få hjælp.","moreInfo":"For informationer omkring licens, se venligst vores hjemmeside (på engelsk):","title":"Om CKEditor","userGuide":"CKEditor-brugermanual"},"basicstyles":{"bold":"Fed","italic":"Kursiv","strike":"Gennemstreget","subscript":"Sænket skrift","superscript":"Hævet skrift","underline":"Understreget"},"blockquote":{"toolbar":"Blokcitat"},"notification":{"closed":"Notefikation lukket."},"button":{"selectedLabel":"%1 (Valgt)"},"toolbar":{"toolbarCollapse":"Sammenklap værktøjslinje","toolbarExpand":"Udvid værktøjslinje","toolbarGroups":{"document":"Dokument","clipboard":"Udklipsholder/Fortryd","editing":"Redigering","forms":"Formularer","basicstyles":"Basis styles","paragraph":"Paragraf","links":"Links","insert":"Indsæt","styles":"Typografier","colors":"Farver","tools":"Værktøjer"},"toolbars":"Editors værktøjslinjer"},"clipboard":{"copy":"Kopiér","copyError":"Din browsers sikkerhedsindstillinger tillader ikke editoren at få automatisk adgang til udklipsholderen.<br><br>Brug i stedet tastaturet til at kopiere teksten (Ctrl/Cmd+C).","cut":"Klip","cutError":"Din browsers sikkerhedsindstillinger tillader ikke editoren at få automatisk adgang til udklipsholderen.<br><br>Brug i stedet tastaturet til at klippe teksten (Ctrl/Cmd+X).","paste":"Indsæt","pasteNotification":"Your browser doesn't allow you to paste this way. Press %1 to paste."},"contextmenu":{"options":"Muligheder for hjælpemenu"},"elementspath":{"eleLabel":"Sti på element","eleTitle":"%1 element"},"format":{"label":"Formatering","panelTitle":"Formatering","tag_address":"Adresse","tag_div":"Normal (DIV)","tag_h1":"Overskrift 1","tag_h2":"Overskrift 2","tag_h3":"Overskrift 3","tag_h4":"Overskrift 4","tag_h5":"Overskrift 5","tag_h6":"Overskrift 6","tag_p":"Normal","tag_pre":"Formateret"},"horizontalrule":{"toolbar":"Indsæt vandret streg"},"image":{"alt":"Alternativ tekst","border":"Ramme","btnUpload":"Upload fil til serveren","button2Img":"Vil du lave billedknappen om til et almindeligt billede?","hSpace":"Vandret margen","img2Button":"Vil du lave billedet om til en billedknap?","infoTab":"Generelt","linkTab":"Hyperlink","lockRatio":"Lås størrelsesforhold","menu":"Egenskaber for billede","resetSize":"Nulstil størrelse","title":"Egenskaber for billede","titleButton":"Egenskaber for billedknap","upload":"Upload","urlMissing":"Kilde på billed-URL mangler","vSpace":"Lodret margen","validateBorder":"Kant skal være et helt nummer.","validateHSpace":"HSpace skal være et helt nummer.","validateVSpace":"VSpace skal være et helt nummer."},"indent":{"indent":"Forøg indrykning","outdent":"Formindsk indrykning"},"fakeobjects":{"anchor":"Anker","flash":"Flashanimation","hiddenfield":"Skjult felt","iframe":"Iframe","unknown":"Ukendt objekt"},"link":{"acccessKey":"Genvejstast","advanced":"Avanceret","advisoryContentType":"Indholdstype","advisoryTitle":"Titel","anchor":{"toolbar":"Indsæt/redigér bogmærke","menu":"Egenskaber for bogmærke","title":"Egenskaber for bogmærke","name":"Bogmærkenavn","errorName":"Indtast bogmærkenavn","remove":"Fjern bogmærke"},"anchorId":"Efter element-Id","anchorName":"Efter ankernavn","charset":"Tegnsæt","cssClasses":"Typografiark","download":"Force Download","displayText":"Display Text","emailAddress":"E-mailadresse","emailBody":"Besked","emailSubject":"Emne","id":"Id","info":"Generelt","langCode":"Tekstretning","langDir":"Tekstretning","langDirLTR":"Fra venstre mod højre (LTR)","langDirRTL":"Fra højre mod venstre (RTL)","menu":"Redigér hyperlink","name":"Navn","noAnchors":"(Ingen bogmærker i dokumentet)","noEmail":"Indtast e-mailadresse!","noUrl":"Indtast hyperlink-URL!","other":"<anden>","popupDependent":"Koblet/dependent (Netscape)","popupFeatures":"Egenskaber for popup","popupFullScreen":"Fuld skærm (IE)","popupLeft":"Position fra venstre","popupLocationBar":"Adresselinje","popupMenuBar":"Menulinje","popupResizable":"Justérbar","popupScrollBars":"Scrollbar","popupStatusBar":"Statuslinje","popupToolbar":"Værktøjslinje","popupTop":"Position fra toppen","rel":"Relation","selectAnchor":"Vælg et anker","styles":"Typografi","tabIndex":"Tabulatorindeks","target":"Mål","targetFrame":"<ramme>","targetFrameName":"Destinationsvinduets navn","targetPopup":"<popup vindue>","targetPopupName":"Popupvinduets navn","title":"Egenskaber for hyperlink","toAnchor":"Bogmærke på denne side","toEmail":"E-mail","toUrl":"URL","toolbar":"Indsæt/redigér hyperlink","type":"Type","unlink":"Fjern hyperlink","upload":"Upload"},"list":{"bulletedlist":"Punktopstilling","numberedlist":"Talopstilling"},"magicline":{"title":"Indsæt afsnit"},"maximize":{"maximize":"Maksimér","minimize":"Minimér"},"pastetext":{"button":"Indsæt som ikke-formateret tekst","pasteNotification":"Your browser does not allow you to paste plain text this way. Press %1 to paste."},"pastefromword":{"confirmCleanup":"Den tekst du forsøger at indsætte ser ud til at komme fra Word. Vil du rense teksten før den indsættes?","error":"Det var ikke muligt at fjerne formatteringen på den indsatte tekst grundet en intern fejl","title":"Indsæt fra Word","toolbar":"Indsæt fra Word"},"removeformat":{"toolbar":"Fjern formatering"},"sourcearea":{"toolbar":"Kilde"},"specialchar":{"options":"Muligheder for specialkarakterer","title":"Vælg symbol","toolbar":"Indsæt symbol"},"scayt":{"btn_about":"Om SCAYT","btn_dictionaries":"Ordbøger","btn_disable":"Deaktivér SCAYT","btn_enable":"Aktivér SCAYT","btn_langs":"Sprog","btn_options":"Indstillinger","text_title":"Stavekontrol mens du skriver"},"stylescombo":{"label":"Typografi","panelTitle":"Formattering på stylesheet","panelTitle1":"Block typografi","panelTitle2":"Inline typografi","panelTitle3":"Object typografi"},"table":{"border":"Rammebredde","caption":"Titel","cell":{"menu":"Celle","insertBefore":"Indsæt celle før","insertAfter":"Indsæt celle efter","deleteCell":"Slet celle","merge":"Flet celler","mergeRight":"Flet til højre","mergeDown":"Flet nedad","splitHorizontal":"Del celle vandret","splitVertical":"Del celle lodret","title":"Celleegenskaber","cellType":"Celletype","rowSpan":"Række span (rows span)","colSpan":"Kolonne span (columns span)","wordWrap":"Tekstombrydning","hAlign":"Vandret justering","vAlign":"Lodret justering","alignBaseline":"Grundlinje","bgColor":"Baggrundsfarve","borderColor":"Rammefarve","data":"Data","header":"Hoved","yes":"Ja","no":"Nej","invalidWidth":"Cellebredde skal være et tal.","invalidHeight":"Cellehøjde skal være et tal.","invalidRowSpan":"Række span skal være et heltal.","invalidColSpan":"Kolonne span skal være et heltal.","chooseColor":"Vælg"},"cellPad":"Cellemargen","cellSpace":"Celleafstand","column":{"menu":"Kolonne","insertBefore":"Indsæt kolonne før","insertAfter":"Indsæt kolonne efter","deleteColumn":"Slet kolonne"},"columns":"Kolonner","deleteTable":"Slet tabel","headers":"Hoved","headersBoth":"Begge","headersColumn":"Første kolonne","headersNone":"Ingen","headersRow":"Første række","invalidBorder":"Rammetykkelse skal være et tal.","invalidCellPadding":"Cellemargen skal være et tal.","invalidCellSpacing":"Celleafstand skal være et tal.","invalidCols":"Antallet af kolonner skal være større end 0.","invalidHeight":"Tabelhøjde skal være et tal.","invalidRows":"Antallet af rækker skal være større end 0.","invalidWidth":"Tabelbredde skal være et tal.","menu":"Egenskaber for tabel","row":{"menu":"Række","insertBefore":"Indsæt række før","insertAfter":"Indsæt række efter","deleteRow":"Slet række"},"rows":"Rækker","summary":"Resumé","title":"Egenskaber for tabel","toolbar":"Tabel","widthPc":"procent","widthPx":"pixels","widthUnit":"Bredde på enhed"},"undo":{"redo":"Annullér fortryd","undo":"Fortryd"},"wsc":{"btnIgnore":"Ignorér","btnIgnoreAll":"Ignorér alle","btnReplace":"Erstat","btnReplaceAll":"Erstat alle","btnUndo":"Tilbage","changeTo":"Forslag","errorLoading":"Fejl ved indlæsning af host: %s.","ieSpellDownload":"Stavekontrol ikke installeret. Vil du installere den nu?","manyChanges":"Stavekontrol færdig: %1 ord ændret","noChanges":"Stavekontrol færdig: Ingen ord ændret","noMispell":"Stavekontrol færdig: Ingen fejl fundet","noSuggestions":"(ingen forslag)","notAvailable":"Stavekontrol er desværre ikke tilgængelig.","notInDic":"Ikke i ordbogen","oneChange":"Stavekontrol færdig: Et ord ændret","progress":"Stavekontrollen arbejder...","title":"Stavekontrol","toolbar":"Stavekontrol"}}; \ No newline at end of file diff --git a/admin/plugins/ckeditor/lang/de-ch.js b/admin/plugins/ckeditor/lang/de-ch.js deleted file mode 100644 index f854ece..0000000 --- a/admin/plugins/ckeditor/lang/de-ch.js +++ /dev/null @@ -1,5 +0,0 @@ -/* -Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. -For licensing, see LICENSE.md or http://ckeditor.com/license -*/ -CKEDITOR.lang['de-ch']={"editor":"WYSIWYG-Editor","editorPanel":"WYSIWYG-Editor-Leiste","common":{"editorHelp":"Drücken Sie ALT 0 für Hilfe","browseServer":"Server durchsuchen","url":"URL","protocol":"Protokoll","upload":"Hochladen","uploadSubmit":"Zum Server senden","image":"Bild","flash":"Flash","form":"Formular","checkbox":"Kontrollbox","radio":"Optionsfeld","textField":"Textfeld","textarea":"Textfeld","hiddenField":"Verstecktes Feld","button":"Schaltfläche","select":"Auswahlfeld","imageButton":"Bildschaltfläche","notSet":"<nicht festgelegt>","id":"Kennung","name":"Name","langDir":"Schreibrichtung","langDirLtr":"Links nach Rechts (LTR)","langDirRtl":"Rechts nach Links (RTL)","langCode":"Sprachcode","longDescr":"Langbeschreibungs-URL","cssClass":"Formatvorlagenklassen","advisoryTitle":"Titel Beschreibung","cssStyle":"Stil","ok":"OK","cancel":"Abbrechen","close":"Schliessen","preview":"Vorschau","resize":"Grösse ändern","generalTab":"Allgemein","advancedTab":"Erweitert","validateNumberFailed":"Dieser Wert ist keine Nummer.","confirmNewPage":"Alle nicht gespeicherten Änderungen gehen verlohren. Sind Sie sicher die neue Seite zu laden?","confirmCancel":"Einige Optionen wurden geändert. Wollen Sie den Dialog dennoch schliessen?","options":"Optionen","target":"Zielseite","targetNew":"Neues Fenster (_blank)","targetTop":"Oberstes Fenster (_top)","targetSelf":"Gleiches Fenster (_self)","targetParent":"Oberes Fenster (_parent)","langDirLTR":"Links nach Rechts (LNR)","langDirRTL":"Rechts nach Links (RNL)","styles":"Style","cssClasses":"Stylesheet Klasse","width":"Breite","height":"Höhe","align":"Ausrichtung","alignLeft":"Links","alignRight":"Rechts","alignCenter":"Zentriert","alignJustify":"Blocksatz","alignTop":"Oben","alignMiddle":"Mitte","alignBottom":"Unten","alignNone":"Keine","invalidValue":"Ungültiger Wert.","invalidHeight":"Höhe muss eine Zahl sein.","invalidWidth":"Breite muss eine Zahl sein.","invalidCssLength":"Wert spezifiziert für \"%1\" Feld muss ein positiver numerischer Wert sein mit oder ohne korrekte CSS Messeinheit (px, %, in, cm, mm, em, ex, pt oder pc).","invalidHtmlLength":"Wert spezifiziert für \"%1\" Feld muss ein positiver numerischer Wert sein mit oder ohne korrekte HTML Messeinheit (px oder %).","invalidInlineStyle":"Wert spezifiziert für inline Stilart muss enthalten ein oder mehr Tupels mit dem Format \"Name : Wert\" getrennt mit Semikolons.","cssLengthTooltip":"Gebe eine Zahl ein für ein Wert in pixels oder eine Zahl mit einer korrekten CSS Messeinheit (px, %, in, cm, mm, em, ex, pt oder pc).","unavailable":"%1<span class=\"cke_accessibility\">, nicht verfügbar</span>","keyboard":{"8":"Rücktaste","13":"Eingabe","16":"Umschalt","17":"Strg","18":"Alt","32":"Space","35":"Ende","36":"Pos1","46":"Entfernen","224":"Command"},"keyboardShortcut":"Keyboard shortcut"},"about":{"copy":"Copyright &copy; $1. Alle Rechte vorbehalten.","dlgTitle":"Über CKEditor","help":"Prüfen Sie $1 für Hilfe.","moreInfo":"Für Informationen über unsere Lizenzbestimmungen besuchen sie bitte unsere Webseite:","title":"Über CKEditor","userGuide":"CKEditor Benutzerhandbuch"},"basicstyles":{"bold":"Fett","italic":"Kursiv","strike":"Durchgestrichen","subscript":"Tiefgestellt","superscript":"Hochgestellt","underline":"Unterstrichen"},"blockquote":{"toolbar":"Zitatblock"},"notification":{"closed":"Benachrichtigung geschlossen."},"button":{"selectedLabel":"%1 (Ausgewählt)"},"toolbar":{"toolbarCollapse":"Werkzeugleiste einklappen","toolbarExpand":"Werkzeugleiste ausklappen","toolbarGroups":{"document":"Dokument","clipboard":"Zwischenablage/Rückgängig","editing":"Editieren","forms":"Formulare","basicstyles":"Grundstile","paragraph":"Absatz","links":"Links","insert":"Einfügen","styles":"Stile","colors":"Farben","tools":"Werkzeuge"},"toolbars":"Editor Werkzeugleisten"},"clipboard":{"copy":"Kopieren","copyError":"Die Sicherheitseinstellungen Ihres Browsers lassen es nicht zu, den Text automatisch kopieren. Bitte benutzen Sie die System-Zwischenablage über STRG-C (kopieren).","cut":"Ausschneiden","cutError":"Die Sicherheitseinstellungen Ihres Browsers lassen es nicht zu, den Text automatisch auszuschneiden. Bitte benutzen Sie die System-Zwischenablage über STRG-X (ausschneiden) und STRG-V (einfügen).","paste":"Einfügen","pasteNotification":"Your browser doesn't allow you to paste this way. Press %1 to paste."},"contextmenu":{"options":"Kontextmenüoptionen"},"elementspath":{"eleLabel":"Elementepfad","eleTitle":"%1 Element"},"format":{"label":"Format","panelTitle":"Absatzformat","tag_address":"Adresse","tag_div":"Normal (DIV)","tag_h1":"Überschrift 1","tag_h2":"Überschrift 2","tag_h3":"Überschrift 3","tag_h4":"Überschrift 4","tag_h5":"Überschrift 5","tag_h6":"Überschrift 6","tag_p":"Normal","tag_pre":"Formatiert"},"horizontalrule":{"toolbar":"Horizontale Linie einfügen"},"image":{"alt":"Alternativer Text","border":"Rahmen","btnUpload":"Zum Server senden","button2Img":"Möchten Sie die ausgewählte Bildschaltfläche in ein einfaches Bild umwandeln?","hSpace":"Horizontal-Abstand","img2Button":"Möchten Sie das ausgewählte Bild in eine Bildschaltfläche umwandeln?","infoTab":"Bildinfo","linkTab":"Link","lockRatio":"Grössenverhältnis beibehalten","menu":"Bildeigenschaften","resetSize":"Grösse zurücksetzen","title":"Bildeigenschaften","titleButton":"Bildschaltflächeneigenschaften","upload":"Hochladen","urlMissing":"Bildquellen-URL fehlt.","vSpace":"Vertikal-Abstand","validateBorder":"Rahmen muss eine ganze Zahl sein.","validateHSpace":"Horizontal-Abstand muss eine ganze Zahl sein.","validateVSpace":"Vertikal-Abstand muss eine ganze Zahl sein."},"indent":{"indent":"Einzug erhöhen","outdent":"Einzug verringern"},"fakeobjects":{"anchor":"Anker","flash":"Flash-Animation","hiddenfield":"Verstecktes Feld","iframe":"IFrame","unknown":"Unbekanntes Objekt"},"link":{"acccessKey":"Zugriffstaste","advanced":"Erweitert","advisoryContentType":"Inhaltstyp","advisoryTitle":"Titel Beschreibung","anchor":{"toolbar":"Anker","menu":"Anker bearbeiten","title":"Ankereigenschaften","name":"Ankername","errorName":"Bitte geben Sie den Namen des Ankers ein","remove":"Anker entfernen"},"anchorId":"Nach Elementkennung","anchorName":"Nach Ankername","charset":"Verknüpfter Ressourcenzeichensatz","cssClasses":"Formatvorlagenklasse","download":"Force Download","displayText":"Display Text","emailAddress":"E-Mail-Adresse","emailBody":"Nachrichtentext","emailSubject":"Betreffzeile","id":"Kennung","info":"Linkinfo","langCode":"Sprachcode","langDir":"Schreibrichtung","langDirLTR":"Links nach Rechts (LTR)","langDirRTL":"Rechts nach Links (RTL)","menu":"Link bearbeiten","name":"Name","noAnchors":"(Keine Anker im Dokument vorhanden)","noEmail":"Bitte geben Sie E-Mail-Adresse an","noUrl":"Bitte geben Sie die Link-URL an","other":"<andere>","popupDependent":"Abhängig (Netscape)","popupFeatures":"Pop-up Fenstereigenschaften","popupFullScreen":"Vollbild (IE)","popupLeft":"Linke Position","popupLocationBar":"Adressleiste","popupMenuBar":"Menüleiste","popupResizable":"Grösse änderbar","popupScrollBars":"Rollbalken","popupStatusBar":"Statusleiste","popupToolbar":"Werkzeugleiste","popupTop":"Obere Position","rel":"Beziehung","selectAnchor":"Anker auswählen","styles":"Style","tabIndex":"Tab-Index","target":"Zielseite","targetFrame":"<Frame>","targetFrameName":"Ziel-Fenster-Name","targetPopup":"<Pop-up Fenster>","targetPopupName":"Pop-up Fenster-Name","title":"Link","toAnchor":"Anker in dieser Seite","toEmail":"E-Mail","toUrl":"URL","toolbar":"Link einfügen/editieren","type":"Link-Typ","unlink":"Link entfernen","upload":"Hochladen"},"list":{"bulletedlist":"Liste","numberedlist":"Nummerierte Liste einfügen/entfernen"},"magicline":{"title":"Absatz hier einfügen"},"maximize":{"maximize":"Maximieren","minimize":"Minimieren"},"pastetext":{"button":"Als Klartext einfügen","pasteNotification":"Your browser does not allow you to paste plain text this way. Press %1 to paste."},"pastefromword":{"confirmCleanup":"Der Text, den Sie einfügen möchten, scheint aus MS-Word kopiert zu sein. Möchten Sie ihn zuvor bereinigen lassen?","error":"Aufgrund eines internen Fehlers war es nicht möglich die eingefügten Daten zu bereinigen","title":"Aus Word einfügen","toolbar":"Aus Word einfügen"},"removeformat":{"toolbar":"Formatierung entfernen"},"sourcearea":{"toolbar":"Quellcode"},"specialchar":{"options":"Sonderzeichenoptionen","title":"Sonderzeichen auswählen","toolbar":"Sonderzeichen einfügen"},"scayt":{"btn_about":"About SCAYT","btn_dictionaries":"Dictionaries","btn_disable":"Disable SCAYT","btn_enable":"Enable SCAYT","btn_langs":"Languages","btn_options":"Options","text_title":"Spell Check As You Type"},"stylescombo":{"label":"Stil","panelTitle":"Formatierungsstile","panelTitle1":"Blockstile","panelTitle2":"Inline Stilart","panelTitle3":"Objektstile"},"table":{"border":"Rahmengrösse","caption":"Überschrift","cell":{"menu":"Zelle","insertBefore":"Zelle davor einfügen","insertAfter":"Zelle danach einfügen","deleteCell":"Zelle löschen","merge":"Zellen verbinden","mergeRight":"Nach rechts verbinden","mergeDown":"Nach unten verbinden","splitHorizontal":"Zelle horizontal teilen","splitVertical":"Zelle vertikal teilen","title":"Zelleneigenschaften","cellType":"Zellart","rowSpan":"Anzahl Zeilen verbinden","colSpan":"Anzahl Spalten verbinden","wordWrap":"Zeilenumbruch","hAlign":"Horizontale Ausrichtung","vAlign":"Vertikale Ausrichtung","alignBaseline":"Grundlinie","bgColor":"Hintergrundfarbe","borderColor":"Rahmenfarbe","data":"Daten","header":"Überschrift","yes":"Ja","no":"Nein","invalidWidth":"Zellenbreite muss eine Zahl sein.","invalidHeight":"Zellenhöhe muss eine Zahl sein.","invalidRowSpan":"\"Anzahl Zeilen verbinden\" muss eine Ganzzahl sein.","invalidColSpan":"\"Anzahl Spalten verbinden\" muss eine Ganzzahl sein.","chooseColor":"Wählen"},"cellPad":"Zellenabstand innen","cellSpace":"Zellenabstand aussen","column":{"menu":"Spalte","insertBefore":"Spalte links davor einfügen","insertAfter":"Spalte rechts danach einfügen","deleteColumn":"Spalte löschen"},"columns":"Spalte","deleteTable":"Tabelle löschen","headers":"Kopfzeile","headersBoth":"Beide","headersColumn":"Erste Spalte","headersNone":"Keine","headersRow":"Erste Zeile","invalidBorder":"Die Rahmenbreite muss eine Zahl sein.","invalidCellPadding":"Der Zellenabstand innen muss eine positive Zahl sein.","invalidCellSpacing":"Der Zellenabstand aussen muss eine positive Zahl sein.","invalidCols":"Die Anzahl der Spalten muß grösser als 0 sein..","invalidHeight":"Die Tabellenbreite muss eine Zahl sein.","invalidRows":"Die Anzahl der Zeilen muß grösser als 0 sein.","invalidWidth":"Die Tabellenbreite muss eine Zahl sein.","menu":"Tabellen-Eigenschaften","row":{"menu":"Zeile","insertBefore":"Zeile oberhalb einfügen","insertAfter":"Zeile unterhalb einfügen","deleteRow":"Zeile entfernen"},"rows":"Zeile","summary":"Inhaltsübersicht","title":"Tabellen-Eigenschaften","toolbar":"Tabelle","widthPc":"%","widthPx":"Pixel","widthUnit":"Breite Einheit"},"undo":{"redo":"Wiederherstellen","undo":"Rückgängig"},"wsc":{"btnIgnore":"Ignore","btnIgnoreAll":"Ignore All","btnReplace":"Replace","btnReplaceAll":"Replace All","btnUndo":"Undo","changeTo":"Change to","errorLoading":"Error loading application service host: %s.","ieSpellDownload":"Spell checker not installed. Do you want to download it now?","manyChanges":"Spell check complete: %1 words changed","noChanges":"Spell check complete: No words changed","noMispell":"Spell check complete: No misspellings found","noSuggestions":"- No suggestions -","notAvailable":"Sorry, but service is unavailable now.","notInDic":"Not in dictionary","oneChange":"Spell check complete: One word changed","progress":"Spell check in progress...","title":"Spell Checker","toolbar":"Check Spelling"}}; \ No newline at end of file diff --git a/admin/plugins/ckeditor/lang/de.js b/admin/plugins/ckeditor/lang/de.js deleted file mode 100644 index 5e349ff..0000000 --- a/admin/plugins/ckeditor/lang/de.js +++ /dev/null @@ -1,5 +0,0 @@ -/* -Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. -For licensing, see LICENSE.md or http://ckeditor.com/license -*/ -CKEDITOR.lang['de']={"editor":"WYSIWYG-Editor","editorPanel":"WYSIWYG-Editor-Leiste","common":{"editorHelp":"Drücken Sie ALT 0 für Hilfe","browseServer":"Server durchsuchen","url":"URL","protocol":"Protokoll","upload":"Hochladen","uploadSubmit":"Zum Server senden","image":"Bild","flash":"Flash","form":"Formular","checkbox":"Kontrollbox","radio":"Optionsfeld","textField":"Textfeld","textarea":"Textfeld","hiddenField":"Verstecktes Feld","button":"Schaltfläche","select":"Auswahlfeld","imageButton":"Bildschaltfläche","notSet":"<nicht festgelegt>","id":"Kennung","name":"Name","langDir":"Schreibrichtung","langDirLtr":"Links nach Rechts (LTR)","langDirRtl":"Rechts nach Links (RTL)","langCode":"Sprachcode","longDescr":"Langbeschreibungs-URL","cssClass":"Formatvorlagenklassen","advisoryTitle":"Titel Beschreibung","cssStyle":"Stil","ok":"OK","cancel":"Abbrechen","close":"Schließen","preview":"Vorschau","resize":"Größe ändern","generalTab":"Allgemein","advancedTab":"Erweitert","validateNumberFailed":"Dieser Wert ist keine Nummer.","confirmNewPage":"Alle nicht gespeicherten Änderungen gehen verloren. Sind Sie sicher die neue Seite zu laden?","confirmCancel":"Einige Optionen wurden geändert. Wollen Sie den Dialog dennoch schließen?","options":"Optionen","target":"Zielseite","targetNew":"Neues Fenster (_blank)","targetTop":"Oberstes Fenster (_top)","targetSelf":"Gleiches Fenster (_self)","targetParent":"Oberes Fenster (_parent)","langDirLTR":"Links nach Rechts (LNR)","langDirRTL":"Rechts nach Links (RNL)","styles":"Style","cssClasses":"Stylesheet Klasse","width":"Breite","height":"Höhe","align":"Ausrichtung","alignLeft":"Links","alignRight":"Rechts","alignCenter":"Zentriert","alignJustify":"Blocksatz","alignTop":"Oben","alignMiddle":"Mitte","alignBottom":"Unten","alignNone":"Keine","invalidValue":"Ungültiger Wert.","invalidHeight":"Höhe muss eine Zahl sein.","invalidWidth":"Breite muss eine Zahl sein.","invalidCssLength":"Wert spezifiziert für \"%1\" Feld muss ein positiver numerischer Wert sein mit oder ohne korrekte CSS Messeinheit (px, %, in, cm, mm, em, ex, pt oder pc).","invalidHtmlLength":"Wert spezifiziert für \"%1\" Feld muss ein positiver numerischer Wert sein mit oder ohne korrekte HTML Messeinheit (px oder %).","invalidInlineStyle":"Wert spezifiziert für inline Stilart muss enthalten ein oder mehr Tupels mit dem Format \"Name : Wert\" getrennt mit Semikolons.","cssLengthTooltip":"Gebe eine Zahl ein für ein Wert in pixels oder eine Zahl mit einer korrekten CSS Messeinheit (px, %, in, cm, mm, em, ex, pt oder pc).","unavailable":"%1<span class=\"cke_accessibility\">, nicht verfügbar</span>","keyboard":{"8":"Rücktaste","13":"Eingabe","16":"Umschalt","17":"Strg","18":"Alt","32":"Leer","35":"Ende","36":"Pos1","46":"Entfernen","224":"Befehl"},"keyboardShortcut":"Tastaturkürzel"},"about":{"copy":"Copyright &copy; $1. Alle Rechte vorbehalten.","dlgTitle":"Über CKEditor","help":"Prüfen Sie $1 für Hilfe.","moreInfo":"Für Informationen über unsere Lizenzbestimmungen besuchen sie bitte unsere Webseite:","title":"Über CKEditor","userGuide":"CKEditor Benutzerhandbuch"},"basicstyles":{"bold":"Fett","italic":"Kursiv","strike":"Durchgestrichen","subscript":"Tiefgestellt","superscript":"Hochgestellt","underline":"Unterstrichen"},"blockquote":{"toolbar":"Zitatblock"},"notification":{"closed":"Benachrichtigung geschlossen."},"button":{"selectedLabel":"%1 (Ausgewählt)"},"toolbar":{"toolbarCollapse":"Werkzeugleiste einklappen","toolbarExpand":"Werkzeugleiste ausklappen","toolbarGroups":{"document":"Dokument","clipboard":"Zwischenablage/Rückgängig","editing":"Editieren","forms":"Formulare","basicstyles":"Grundstile","paragraph":"Absatz","links":"Links","insert":"Einfügen","styles":"Stile","colors":"Farben","tools":"Werkzeuge"},"toolbars":"Editor Werkzeugleisten"},"clipboard":{"copy":"Kopieren","copyError":"Die Sicherheitseinstellungen Ihres Browsers lassen es nicht zu, den Text automatisch kopieren. Bitte benutzen Sie die System-Zwischenablage über STRG-C (kopieren).","cut":"Ausschneiden","cutError":"Die Sicherheitseinstellungen Ihres Browsers lassen es nicht zu, den Text automatisch auszuschneiden. Bitte benutzen Sie die System-Zwischenablage über STRG-X (ausschneiden) und STRG-V (einfügen).","paste":"Einfügen","pasteNotification":"Ihr Browser verhindert das Einfügen über diesen Weg. Zum einfügen drücken Sie %1."},"contextmenu":{"options":"Kontextmenüoptionen"},"elementspath":{"eleLabel":"Elementepfad","eleTitle":"%1 Element"},"format":{"label":"Format","panelTitle":"Absatzformat","tag_address":"Adresse","tag_div":"Normal (DIV)","tag_h1":"Überschrift 1","tag_h2":"Überschrift 2","tag_h3":"Überschrift 3","tag_h4":"Überschrift 4","tag_h5":"Überschrift 5","tag_h6":"Überschrift 6","tag_p":"Normal","tag_pre":"Formatiert"},"horizontalrule":{"toolbar":"Horizontale Linie einfügen"},"image":{"alt":"Alternativer Text","border":"Rahmen","btnUpload":"Zum Server senden","button2Img":"Möchten Sie die ausgewählte Bildschaltfläche in ein einfaches Bild umwandeln?","hSpace":"Horizontal-Abstand","img2Button":"Möchten Sie das ausgewählte Bild in eine Bildschaltfläche umwandeln?","infoTab":"Bildinfo","linkTab":"Link","lockRatio":"Größenverhältnis beibehalten","menu":"Bildeigenschaften","resetSize":"Größe zurücksetzen","title":"Bildeigenschaften","titleButton":"Bildschaltflächeneigenschaften","upload":"Hochladen","urlMissing":"Bildquellen-URL fehlt.","vSpace":"Vertikal-Abstand","validateBorder":"Rahmen muss eine ganze Zahl sein.","validateHSpace":"Horizontal-Abstand muss eine ganze Zahl sein.","validateVSpace":"Vertikal-Abstand muss eine ganze Zahl sein."},"indent":{"indent":"Einzug erhöhen","outdent":"Einzug verringern"},"fakeobjects":{"anchor":"Anker","flash":"Flash-Animation","hiddenfield":"Verstecktes Feld","iframe":"IFrame","unknown":"Unbekanntes Objekt"},"link":{"acccessKey":"Zugriffstaste","advanced":"Erweitert","advisoryContentType":"Inhaltstyp","advisoryTitle":"Titel Beschreibung","anchor":{"toolbar":"Anker","menu":"Anker bearbeiten","title":"Ankereigenschaften","name":"Ankername","errorName":"Bitte geben Sie den Namen des Ankers ein","remove":"Anker entfernen"},"anchorId":"Nach Elementkennung","anchorName":"Nach Ankername","charset":"Verknüpfter Ressourcenzeichensatz","cssClasses":"Formatvorlagenklasse","download":"Herunterladen erzwingen","displayText":"Anzeigetext","emailAddress":"E-Mail-Adresse","emailBody":"Nachrichtentext","emailSubject":"Betreffzeile","id":"Kennung","info":"Linkinfo","langCode":"Sprachcode","langDir":"Schreibrichtung","langDirLTR":"Links nach Rechts (LTR)","langDirRTL":"Rechts nach Links (RTL)","menu":"Link bearbeiten","name":"Name","noAnchors":"(Keine Anker im Dokument vorhanden)","noEmail":"Bitte geben Sie E-Mail-Adresse an","noUrl":"Bitte geben Sie die Link-URL an","other":"<andere>","popupDependent":"Abhängig (Netscape)","popupFeatures":"Pop-up Fenstereigenschaften","popupFullScreen":"Vollbild (IE)","popupLeft":"Linke Position","popupLocationBar":"Adressleiste","popupMenuBar":"Menüleiste","popupResizable":"Größe änderbar","popupScrollBars":"Rollbalken","popupStatusBar":"Statusleiste","popupToolbar":"Werkzeugleiste","popupTop":"Obere Position","rel":"Beziehung","selectAnchor":"Anker auswählen","styles":"Style","tabIndex":"Tab-Index","target":"Zielseite","targetFrame":"<Frame>","targetFrameName":"Ziel-Fenster-Name","targetPopup":"<Pop-up Fenster>","targetPopupName":"Pop-up Fenster-Name","title":"Link","toAnchor":"Anker in dieser Seite","toEmail":"E-Mail","toUrl":"URL","toolbar":"Link einfügen/editieren","type":"Link-Typ","unlink":"Link entfernen","upload":"Hochladen"},"list":{"bulletedlist":"Liste","numberedlist":"Nummerierte Liste einfügen/entfernen"},"magicline":{"title":"Absatz hier einfügen"},"maximize":{"maximize":"Maximieren","minimize":"Minimieren"},"pastetext":{"button":"Als Klartext einfügen","pasteNotification":"Ihr Browser verhindert das Einfügen von Text über diesen Weg. Zum einfügen drücken Sie %1."},"pastefromword":{"confirmCleanup":"Der Text, den Sie einfügen möchten, scheint aus MS-Word kopiert zu sein. Möchten Sie ihn zuvor bereinigen lassen?","error":"Aufgrund eines internen Fehlers war es nicht möglich die eingefügten Daten zu bereinigen","title":"Aus Word einfügen","toolbar":"Aus Word einfügen"},"removeformat":{"toolbar":"Formatierung entfernen"},"sourcearea":{"toolbar":"Quellcode"},"specialchar":{"options":"Sonderzeichenoptionen","title":"Sonderzeichen auswählen","toolbar":"Sonderzeichen einfügen"},"scayt":{"btn_about":"Über SCAYT","btn_dictionaries":"Wörterbücher","btn_disable":"SCAYT ausschalten","btn_enable":"SCAYT einschalten","btn_langs":"Sprachen","btn_options":"Optionen","text_title":"Rechtschreibprüfung während der Texteingabe (SCAYT)"},"stylescombo":{"label":"Stil","panelTitle":"Formatierungsstile","panelTitle1":"Blockstile","panelTitle2":"Inline Stilart","panelTitle3":"Objektstile"},"table":{"border":"Rahmengröße","caption":"Überschrift","cell":{"menu":"Zelle","insertBefore":"Zelle davor einfügen","insertAfter":"Zelle danach einfügen","deleteCell":"Zelle löschen","merge":"Zellen verbinden","mergeRight":"Nach rechts verbinden","mergeDown":"Nach unten verbinden","splitHorizontal":"Zelle horizontal teilen","splitVertical":"Zelle vertikal teilen","title":"Zelleneigenschaften","cellType":"Zellart","rowSpan":"Anzahl Zeilen verbinden","colSpan":"Anzahl Spalten verbinden","wordWrap":"Zeilenumbruch","hAlign":"Horizontale Ausrichtung","vAlign":"Vertikale Ausrichtung","alignBaseline":"Grundlinie","bgColor":"Hintergrundfarbe","borderColor":"Rahmenfarbe","data":"Daten","header":"Überschrift","yes":"Ja","no":"Nein","invalidWidth":"Zellenbreite muss eine Zahl sein.","invalidHeight":"Zellenhöhe muss eine Zahl sein.","invalidRowSpan":"\"Anzahl Zeilen verbinden\" muss eine Ganzzahl sein.","invalidColSpan":"\"Anzahl Spalten verbinden\" muss eine Ganzzahl sein.","chooseColor":"Wählen"},"cellPad":"Zellenabstand innen","cellSpace":"Zellenabstand außen","column":{"menu":"Spalte","insertBefore":"Spalte links davor einfügen","insertAfter":"Spalte rechts danach einfügen","deleteColumn":"Spalte löschen"},"columns":"Spalte","deleteTable":"Tabelle löschen","headers":"Kopfzeile","headersBoth":"Beide","headersColumn":"Erste Spalte","headersNone":"Keine","headersRow":"Erste Zeile","invalidBorder":"Die Rahmenbreite muß eine Zahl sein.","invalidCellPadding":"Der Zellenabstand innen muß eine positive Zahl sein.","invalidCellSpacing":"Der Zellenabstand außen muß eine positive Zahl sein.","invalidCols":"Die Anzahl der Spalten muß größer als 0 sein..","invalidHeight":"Die Tabellenbreite muß eine Zahl sein.","invalidRows":"Die Anzahl der Zeilen muß größer als 0 sein.","invalidWidth":"Die Tabellenbreite muss eine Zahl sein.","menu":"Tabellen-Eigenschaften","row":{"menu":"Zeile","insertBefore":"Zeile oberhalb einfügen","insertAfter":"Zeile unterhalb einfügen","deleteRow":"Zeile entfernen"},"rows":"Zeile","summary":"Inhaltsübersicht","title":"Tabellen-Eigenschaften","toolbar":"Tabelle","widthPc":"%","widthPx":"Pixel","widthUnit":"Breite Einheit"},"undo":{"redo":"Wiederherstellen","undo":"Rückgängig"},"wsc":{"btnIgnore":"Ignorieren","btnIgnoreAll":"Alle Ignorieren","btnReplace":"Ersetzen","btnReplaceAll":"Alle Ersetzen","btnUndo":"Rückgängig","changeTo":"Ändern in","errorLoading":"Fehler beim laden des Dienstanbieters: %s.","ieSpellDownload":"Rechtschreibprüfung nicht installiert. Möchten Sie sie jetzt herunterladen?","manyChanges":"Rechtschreibprüfung abgeschlossen - %1 Wörter geändert","noChanges":"Rechtschreibprüfung abgeschlossen - keine Worte geändert","noMispell":"Rechtschreibprüfung abgeschlossen - keine Fehler gefunden","noSuggestions":" - keine Vorschläge - ","notAvailable":"Entschuldigung, aber dieser Dienst steht im Moment nicht zur Verfügung.","notInDic":"Nicht im Wörterbuch","oneChange":"Rechtschreibprüfung abgeschlossen - ein Wort geändert","progress":"Rechtschreibprüfung läuft...","title":"Rechtschreibprüfung","toolbar":"Rechtschreibprüfung"}}; \ No newline at end of file diff --git a/admin/plugins/ckeditor/lang/el.js b/admin/plugins/ckeditor/lang/el.js deleted file mode 100644 index f4587de..0000000 --- a/admin/plugins/ckeditor/lang/el.js +++ /dev/null @@ -1,5 +0,0 @@ -/* -Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. -For licensing, see LICENSE.md or http://ckeditor.com/license -*/ -CKEDITOR.lang['el']={"editor":"Επεξεργαστής Πλούσιου Κειμένου","editorPanel":"Πίνακας Επεξεργαστή Πλούσιου Κειμένου","common":{"editorHelp":"Πατήστε το ALT 0 για βοήθεια","browseServer":"Εξερεύνηση Διακομιστή","url":"URL","protocol":"Πρωτόκολλο","upload":"Αποστολή","uploadSubmit":"Αποστολή στον Διακομιστή","image":"Εικόνα","flash":"Flash","form":"Φόρμα","checkbox":"Κουτί Επιλογής","radio":"Κουμπί Επιλογής","textField":"Πεδίο Κειμένου","textarea":"Περιοχή Κειμένου","hiddenField":"Κρυφό Πεδίο","button":"Κουμπί","select":"Πεδίο Επιλογής","imageButton":"Κουμπί Εικόνας","notSet":"<δεν έχει ρυθμιστεί>","id":"Id","name":"Όνομα","langDir":"Κατεύθυνση Κειμένου","langDirLtr":"Αριστερά προς Δεξιά (LTR)","langDirRtl":"Δεξιά προς Αριστερά (RTL)","langCode":"Κωδικός Γλώσσας","longDescr":"Αναλυτική Περιγραφή URL","cssClass":"Κλάσεις Φύλλων Στυλ","advisoryTitle":"Ενδεικτικός Τίτλος","cssStyle":"Μορφή Κειμένου","ok":"OK","cancel":"Ακύρωση","close":"Κλείσιμο","preview":"Προεπισκόπηση","resize":"Αλλαγή Μεγέθους","generalTab":"Γενικά","advancedTab":"Για Προχωρημένους","validateNumberFailed":"Αυτή η τιμή δεν είναι αριθμός.","confirmNewPage":"Οι όποιες αλλαγές στο περιεχόμενο θα χαθούν. Είσαστε σίγουροι ότι θέλετε να φορτώσετε μια νέα σελίδα;","confirmCancel":"Μερικές επιλογές έχουν αλλάξει. Είσαστε σίγουροι ότι θέλετε να κλείσετε το παράθυρο διαλόγου;","options":"Επιλογές","target":"Προορισμός","targetNew":"Νέο Παράθυρο (_blank)","targetTop":"Αρχική Περιοχή (_top)","targetSelf":"Ίδιο Παράθυρο (_self)","targetParent":"Γονεϊκό Παράθυρο (_parent)","langDirLTR":"Αριστερά προς Δεξιά (LTR)","langDirRTL":"Δεξιά προς Αριστερά (RTL)","styles":"Μορφή","cssClasses":"Κλάσεις Φύλλων Στυλ","width":"Πλάτος","height":"Ύψος","align":"Στοίχιση","alignLeft":"Αριστερά","alignRight":"Δεξιά","alignCenter":"Κέντρο","alignJustify":"Πλήρης Στοίχιση","alignTop":"Πάνω","alignMiddle":"Μέση","alignBottom":"Κάτω","alignNone":"Χωρίς","invalidValue":"Μη έγκυρη τιμή.","invalidHeight":"Το ύψος πρέπει να είναι ένας αριθμός.","invalidWidth":"Το πλάτος πρέπει να είναι ένας αριθμός.","invalidCssLength":"Η τιμή που ορίζεται για το πεδίο \"%1\" πρέπει να είναι ένας θετικός αριθμός με ή χωρίς μια έγκυρη μονάδα μέτρησης CSS (px, %, in, cm, mm, em, ex, pt, ή pc).","invalidHtmlLength":"Η τιμή που ορίζεται για το πεδίο \"%1\" πρέπει να είναι ένας θετικός αριθμός με ή χωρίς μια έγκυρη μονάδα μέτρησης HTML (px ή %).","invalidInlineStyle":"Η τιμή για το εν σειρά στυλ πρέπει να περιέχει ένα ή περισσότερα ζεύγη με την μορφή \"όνομα: τιμή\" διαχωρισμένα με Ελληνικό ερωτηματικό.","cssLengthTooltip":"Εισάγεται μια τιμή σε pixel ή έναν αριθμό μαζί με μια έγκυρη μονάδα μέτρησης CSS (px, %, in, cm, mm, em, ex, pt, ή pc).","unavailable":"%1<span class=\"cke_accessibility\">, δεν είναι διαθέσιμο</span>","keyboard":{"8":"Backspace","13":"Enter","16":"Shift","17":"Ctrl","18":"Alt","32":"Space","35":"End","36":"Home","46":"Delete","224":"Command"},"keyboardShortcut":"Συντόμευση πληκτρολογίου"},"about":{"copy":"Πνευματικά δικαιώματα &copy; $1 Με επιφύλαξη παντός δικαιώματος.","dlgTitle":"Περί του CKEditor","help":"Ελέγξτε τις $1 για βοήθεια.","moreInfo":"Για πληροφορίες σχετικές με την άδεια χρήσης, παρακαλούμε επισκεφθείτε την ιστοσελίδα μας:","title":"Περί του CKEditor","userGuide":"Οδηγίες Χρήστη CKEditor"},"basicstyles":{"bold":"Έντονη","italic":"Πλάγια","strike":"Διακριτή Διαγραφή","subscript":"Δείκτης","superscript":"Εκθέτης","underline":"Υπογράμμιση"},"blockquote":{"toolbar":"Περιοχή Παράθεσης"},"notification":{"closed":"Notification closed."},"button":{"selectedLabel":"%1 (Επιλεγμένο)"},"toolbar":{"toolbarCollapse":"Σύμπτυξη Εργαλειοθήκης","toolbarExpand":"Ανάπτυξη Εργαλειοθήκης","toolbarGroups":{"document":"Έγγραφο","clipboard":"Πρόχειρο/Αναίρεση","editing":"Επεξεργασία","forms":"Φόρμες","basicstyles":"Βασικά Στυλ","paragraph":"Παράγραφος","links":"Σύνδεσμοι","insert":"Εισαγωγή","styles":"Στυλ","colors":"Χρώματα","tools":"Εργαλεία"},"toolbars":"Εργαλειοθήκες επεξεργαστή"},"clipboard":{"copy":"Αντιγραφή","copyError":"Οι ρυθμίσεις ασφαλείας του περιηγητή σας δεν επιτρέπουν την επιλεγμένη εργασία αντιγραφής. Παρακαλώ χρησιμοποιείστε το πληκτρολόγιο (Ctrl/Cmd+C).","cut":"Αποκοπή","cutError":"Οι ρυθμίσεις ασφαλείας του περιηγητή σας δεν επιτρέπουν την επιλεγμένη εργασία αποκοπής. Παρακαλώ χρησιμοποιείστε το πληκτρολόγιο (Ctrl/Cmd+X).","paste":"Επικόλληση","pasteNotification":"Ο περιηγητής σας δεν σας επιτρέπει να επικολλήσετε με αυτόν τον τρόπο. Πατήστε %1 για επικόλληση."},"contextmenu":{"options":"Επιλογές Αναδυόμενου Μενού"},"elementspath":{"eleLabel":"Διαδρομή Στοιχείων","eleTitle":"Στοιχείο %1"},"format":{"label":"Μορφοποίηση","panelTitle":"Μορφοποίηση Παραγράφου","tag_address":"Διεύθυνση","tag_div":"Κανονική (DIV)","tag_h1":"Κεφαλίδα 1","tag_h2":"Κεφαλίδα 2","tag_h3":"Κεφαλίδα 3","tag_h4":"Κεφαλίδα 4","tag_h5":"Κεφαλίδα 5","tag_h6":"Κεφαλίδα 6","tag_p":"Κανονική","tag_pre":"Προ-μορφοποιημένη"},"horizontalrule":{"toolbar":"Εισαγωγή Οριζόντιας Γραμμής"},"image":{"alt":"Εναλλακτικό Κείμενο","border":"Περίγραμμα","btnUpload":"Αποστολή στον Διακομιστή","button2Img":"Θέλετε να μετατρέψετε το επιλεγμένο κουμπί εικόνας σε απλή εικόνα;","hSpace":"HSpace","img2Button":"Θέλετε να μεταμορφώσετε την επιλεγμένη εικόνα που είναι πάνω σε ένα κουμπί;","infoTab":"Πληροφορίες Εικόνας","linkTab":"Σύνδεσμος","lockRatio":"Κλείδωμα Αναλογίας","menu":"Ιδιότητες Εικόνας","resetSize":"Επαναφορά Αρχικού Μεγέθους","title":"Ιδιότητες Εικόνας","titleButton":"Ιδιότητες Κουμπιού Εικόνας","upload":"Αποστολή","urlMissing":"Το URL πηγής για την εικόνα λείπει.","vSpace":"VSpace","validateBorder":"Το περίγραμμα πρέπει να είναι ένας ακέραιος αριθμός.","validateHSpace":"Το HSpace πρέπει να είναι ένας ακέραιος αριθμός.","validateVSpace":"Το VSpace πρέπει να είναι ένας ακέραιος αριθμός."},"indent":{"indent":"Αύξηση Εσοχής","outdent":"Μείωση Εσοχής"},"fakeobjects":{"anchor":"Άγκυρα","flash":"Ταινία Flash","hiddenfield":"Κρυφό Πεδίο","iframe":"IFrame","unknown":"Άγνωστο Αντικείμενο"},"link":{"acccessKey":"Συντόμευση","advanced":"Για Προχωρημένους","advisoryContentType":"Ενδεικτικός Τύπος Περιεχομένου","advisoryTitle":"Ενδεικτικός Τίτλος","anchor":{"toolbar":"Εισαγωγή/επεξεργασία Άγκυρας","menu":"Ιδιότητες άγκυρας","title":"Ιδιότητες άγκυρας","name":"Όνομα άγκυρας","errorName":"Παρακαλούμε εισάγετε όνομα άγκυρας","remove":"Αφαίρεση Άγκυρας"},"anchorId":"Βάσει του Element Id","anchorName":"Βάσει του Ονόματος Άγκυρας","charset":"Κωδικοποίηση Χαρακτήρων Προσαρτημένης Πηγής","cssClasses":"Κλάσεις Φύλλων Στυλ","download":"Force Download","displayText":"Display Text","emailAddress":"Διεύθυνση E-mail","emailBody":"Κείμενο Μηνύματος","emailSubject":"Θέμα Μηνύματος","id":"Id","info":"Πληροφορίες Συνδέσμου","langCode":"Κατεύθυνση Κειμένου","langDir":"Κατεύθυνση Κειμένου","langDirLTR":"Αριστερά προς Δεξιά (LTR)","langDirRTL":"Δεξιά προς Αριστερά (RTL)","menu":"Επεξεργασία Συνδέσμου","name":"Όνομα","noAnchors":"(Δεν υπάρχουν άγκυρες στο κείμενο)","noEmail":"Εισάγετε τη διεύθυνση ηλεκτρονικού ταχυδρομείου","noUrl":"Εισάγετε την τοποθεσία (URL) του συνδέσμου","other":"<άλλο>","popupDependent":"Εξαρτημένο (Netscape)","popupFeatures":"Επιλογές Αναδυόμενου Παραθύρου","popupFullScreen":"Πλήρης Οθόνη (IE)","popupLeft":"Θέση Αριστερά","popupLocationBar":"Γραμμή Τοποθεσίας","popupMenuBar":"Γραμμή Επιλογών","popupResizable":"Προσαρμοζόμενο Μέγεθος","popupScrollBars":"Μπάρες Κύλισης","popupStatusBar":"Γραμμή Κατάστασης","popupToolbar":"Εργαλειοθήκη","popupTop":"Θέση Πάνω","rel":"Σχέση","selectAnchor":"Επιλέξτε μια Άγκυρα","styles":"Μορφή","tabIndex":"Σειρά Μεταπήδησης","target":"Παράθυρο Προορισμού","targetFrame":"<πλαίσιο>","targetFrameName":"Όνομα Πλαισίου Προορισμού","targetPopup":"<αναδυόμενο παράθυρο>","targetPopupName":"Όνομα Αναδυόμενου Παραθύρου","title":"Σύνδεσμος","toAnchor":"Άγκυρα σε αυτήν τη σελίδα","toEmail":"E-Mail","toUrl":"URL","toolbar":"Σύνδεσμος","type":"Τύπος Συνδέσμου","unlink":"Αφαίρεση Συνδέσμου","upload":"Αποστολή"},"list":{"bulletedlist":"Εισαγωγή/Απομάκρυνση Λίστας Κουκκίδων","numberedlist":"Εισαγωγή/Απομάκρυνση Αριθμημένης Λίστας"},"magicline":{"title":"Εισάγετε παράγραφο εδώ"},"maximize":{"maximize":"Μεγιστοποίηση","minimize":"Ελαχιστοποίηση"},"pastetext":{"button":"Επικόλληση ως απλό κείμενο","pasteNotification":"Your browser does not allow you to paste plain text this way. Press %1 to paste."},"pastefromword":{"confirmCleanup":"Το κείμενο που επικολλάται φαίνεται να είναι αντιγραμμένο από το Word. Μήπως θα θέλατε να καθαριστεί προτού επικολληθεί;","error":"Δεν ήταν δυνατό να καθαριστούν τα δεδομένα λόγω ενός εσωτερικού σφάλματος","title":"Επικόλληση από το Word","toolbar":"Επικόλληση από το Word"},"removeformat":{"toolbar":"Εκκαθάριση Μορφοποίησης"},"sourcearea":{"toolbar":"Κώδικας"},"specialchar":{"options":"Επιλογές Ειδικών Χαρακτήρων","title":"Επιλέξτε Έναν Ειδικό Χαρακτήρα","toolbar":"Εισαγωγή Ειδικού Χαρακτήρα"},"scayt":{"btn_about":"About SCAYT","btn_dictionaries":"Λεξικά","btn_disable":"Disable SCAYT","btn_enable":"Enable SCAYT","btn_langs":"Γλώσσες","btn_options":"Επιλογές","text_title":"Spell Check As You Type"},"stylescombo":{"label":"Μορφές","panelTitle":"Στυλ Μορφοποίησης","panelTitle1":"Στυλ Τμημάτων","panelTitle2":"Στυλ Εν Σειρά","panelTitle3":"Στυλ Αντικειμένων"},"table":{"border":"Πάχος Περιγράμματος","caption":"Λεζάντα","cell":{"menu":"Κελί","insertBefore":"Εισαγωγή Κελιού Πριν","insertAfter":"Εισαγωγή Κελιού Μετά","deleteCell":"Διαγραφή Κελιών","merge":"Ενοποίηση Κελιών","mergeRight":"Συγχώνευση Με Δεξιά","mergeDown":"Συγχώνευση Με Κάτω","splitHorizontal":"Οριζόντια Διαίρεση Κελιού","splitVertical":"Κατακόρυφη Διαίρεση Κελιού","title":"Ιδιότητες Κελιού","cellType":"Τύπος Κελιού","rowSpan":"Εύρος Γραμμών","colSpan":"Εύρος Στηλών","wordWrap":"Αναδίπλωση Λέξεων","hAlign":"Οριζόντια Στοίχιση","vAlign":"Κάθετη Στοίχιση","alignBaseline":"Γραμμή Βάσης","bgColor":"Χρώμα Φόντου","borderColor":"Χρώμα Περιγράμματος","data":"Δεδομένα","header":"Κεφαλίδα","yes":"Ναι","no":"Όχι","invalidWidth":"Το πλάτος του κελιού πρέπει να είναι αριθμός.","invalidHeight":"Το ύψος του κελιού πρέπει να είναι αριθμός.","invalidRowSpan":"Το εύρος των γραμμών πρέπει να είναι ακέραιος αριθμός.","invalidColSpan":"Το εύρος των στηλών πρέπει να είναι ακέραιος αριθμός.","chooseColor":"Επιλέξτε"},"cellPad":"Αναπλήρωση κελιών","cellSpace":"Απόσταση κελιών","column":{"menu":"Στήλη","insertBefore":"Εισαγωγή Στήλης Πριν","insertAfter":"Εισαγωγή Στήλης Μετά","deleteColumn":"Διαγραφή Στηλών"},"columns":"Στήλες","deleteTable":"Διαγραφή Πίνακα","headers":"Κεφαλίδες","headersBoth":"Και τα δύο","headersColumn":"Πρώτη στήλη","headersNone":"Κανένα","headersRow":"Πρώτη Γραμμή","invalidBorder":"Το πάχος του περιγράμματος πρέπει να είναι ένας αριθμός.","invalidCellPadding":"Η αναπλήρωση των κελιών πρέπει να είναι θετικός αριθμός.","invalidCellSpacing":"Η απόσταση μεταξύ των κελιών πρέπει να είναι ένας θετικός αριθμός.","invalidCols":"Ο αριθμός των στηλών πρέπει να είναι μεγαλύτερος από 0.","invalidHeight":"Το ύψος του πίνακα πρέπει να είναι αριθμός.","invalidRows":"Ο αριθμός των σειρών πρέπει να είναι μεγαλύτερος από 0.","invalidWidth":"Το πλάτος του πίνακα πρέπει να είναι ένας αριθμός.","menu":"Ιδιότητες Πίνακα","row":{"menu":"Γραμμή","insertBefore":"Εισαγωγή Γραμμής Πριν","insertAfter":"Εισαγωγή Γραμμής Μετά","deleteRow":"Διαγραφή Γραμμών"},"rows":"Γραμμές","summary":"Περίληψη","title":"Ιδιότητες Πίνακα","toolbar":"Πίνακας","widthPc":"τοις εκατό","widthPx":"pixel","widthUnit":"μονάδα πλάτους"},"undo":{"redo":"Επανάληψη","undo":"Αναίρεση"},"wsc":{"btnIgnore":"Αγνόηση","btnIgnoreAll":"Αγνόηση όλων","btnReplace":"Αντικατάσταση","btnReplaceAll":"Αντικατάσταση όλων","btnUndo":"Αναίρεση","changeTo":"Αλλαγή σε","errorLoading":"Error loading application service host: %s.","ieSpellDownload":"Δεν υπάρχει εγκατεστημένος ορθογράφος. Θέλετε να τον κατεβάσετε τώρα;","manyChanges":"Ο ορθογραφικός έλεγχος ολοκληρώθηκε: Άλλαξαν %1 λέξεις","noChanges":"Ο ορθογραφικός έλεγχος ολοκληρώθηκε: Δεν άλλαξαν λέξεις","noMispell":"Ο ορθογραφικός έλεγχος ολοκληρώθηκε: Δεν βρέθηκαν λάθη","noSuggestions":"- Δεν υπάρχουν προτάσεις -","notAvailable":"Η υπηρεσία δεν είναι διαθέσιμη αυτήν την στιγμή.","notInDic":"Δεν υπάρχει στο λεξικό","oneChange":"Ο ορθογραφικός έλεγχος ολοκληρώθηκε: Άλλαξε μια λέξη","progress":"Γίνεται ορθογραφικός έλεγχος...","title":"Ορθογραφικός Έλεγχος","toolbar":"Ορθογραφικός Έλεγχος"}}; \ No newline at end of file diff --git a/admin/plugins/ckeditor/lang/en-au.js b/admin/plugins/ckeditor/lang/en-au.js deleted file mode 100644 index b60e656..0000000 --- a/admin/plugins/ckeditor/lang/en-au.js +++ /dev/null @@ -1,5 +0,0 @@ -/* -Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. -For licensing, see LICENSE.md or http://ckeditor.com/license -*/ -CKEDITOR.lang['en-au']={"editor":"Rich Text Editor","editorPanel":"Rich Text Editor panel","common":{"editorHelp":"Press ALT 0 for help","browseServer":"Browse Server","url":"URL","protocol":"Protocol","upload":"Upload","uploadSubmit":"Send it to the Server","image":"Image","flash":"Flash","form":"Form","checkbox":"Checkbox","radio":"Radio Button","textField":"Text Field","textarea":"Textarea","hiddenField":"Hidden Field","button":"Button","select":"Selection Field","imageButton":"Image Button","notSet":"<not set>","id":"Id","name":"Name","langDir":"Language Direction","langDirLtr":"Left to Right (LTR)","langDirRtl":"Right to Left (RTL)","langCode":"Language Code","longDescr":"Long Description URL","cssClass":"Stylesheet Classes","advisoryTitle":"Advisory Title","cssStyle":"Style","ok":"OK","cancel":"Cancel","close":"Close","preview":"Preview","resize":"Resize","generalTab":"General","advancedTab":"Advanced","validateNumberFailed":"This value is not a number.","confirmNewPage":"Any unsaved changes to this content will be lost. Are you sure you want to load new page?","confirmCancel":"You have changed some options. Are you sure you want to close the dialog window?","options":"Options","target":"Target","targetNew":"New Window (_blank)","targetTop":"Topmost Window (_top)","targetSelf":"Same Window (_self)","targetParent":"Parent Window (_parent)","langDirLTR":"Left to Right (LTR)","langDirRTL":"Right to Left (RTL)","styles":"Style","cssClasses":"Stylesheet Classes","width":"Width","height":"Height","align":"Align","alignLeft":"Left","alignRight":"Right","alignCenter":"Centre","alignJustify":"Justify","alignTop":"Top","alignMiddle":"Middle","alignBottom":"Bottom","alignNone":"None","invalidValue":"Invalid value.","invalidHeight":"Height must be a number.","invalidWidth":"Width must be a number.","invalidCssLength":"Value specified for the \"%1\" field must be a positive number with or without a valid CSS measurement unit (px, %, in, cm, mm, em, ex, pt, or pc).","invalidHtmlLength":"Value specified for the \"%1\" field must be a positive number with or without a valid HTML measurement unit (px or %).","invalidInlineStyle":"Value specified for the inline style must consist of one or more tuples with the format of \"name : value\", separated by semi-colons.","cssLengthTooltip":"Enter a number for a value in pixels or a number with a valid CSS unit (px, %, in, cm, mm, em, ex, pt, or pc).","unavailable":"%1<span class=\"cke_accessibility\">, unavailable</span>","keyboard":{"8":"Backspace","13":"Enter","16":"Shift","17":"Ctrl","18":"Alt","32":"Space","35":"End","36":"Home","46":"Delete","224":"Command"},"keyboardShortcut":"Keyboard shortcut"},"about":{"copy":"Copyright &copy; $1. All rights reserved.","dlgTitle":"About CKEditor","help":"Check $1 for help.","moreInfo":"For licensing information please visit our web site:","title":"About CKEditor","userGuide":"CKEditor User's Guide"},"basicstyles":{"bold":"Bold","italic":"Italic","strike":"Strike Through","subscript":"Subscript","superscript":"Superscript","underline":"Underline"},"blockquote":{"toolbar":"Block Quote"},"notification":{"closed":"Notification closed."},"button":{"selectedLabel":"%1 (Selected)"},"toolbar":{"toolbarCollapse":"Collapse Toolbar","toolbarExpand":"Expand Toolbar","toolbarGroups":{"document":"Document","clipboard":"Clipboard/Undo","editing":"Editing","forms":"Forms","basicstyles":"Basic Styles","paragraph":"Paragraph","links":"Links","insert":"Insert","styles":"Styles","colors":"Colors","tools":"Tools"},"toolbars":"Editor toolbars"},"clipboard":{"copy":"Copy","copyError":"Your browser security settings don't permit the editor to automatically execute copying operations. Please use the keyboard for that (Ctrl/Cmd+C).","cut":"Cut","cutError":"Your browser security settings don't permit the editor to automatically execute cutting operations. Please use the keyboard for that (Ctrl/Cmd+X).","paste":"Paste","pasteNotification":"Your browser doesn't allow you to paste this way. Press %1 to paste."},"contextmenu":{"options":"Context Menu Options"},"elementspath":{"eleLabel":"Elements path","eleTitle":"%1 element"},"format":{"label":"Format","panelTitle":"Paragraph Format","tag_address":"Address","tag_div":"Normal (DIV)","tag_h1":"Heading 1","tag_h2":"Heading 2","tag_h3":"Heading 3","tag_h4":"Heading 4","tag_h5":"Heading 5","tag_h6":"Heading 6","tag_p":"Normal","tag_pre":"Formatted"},"horizontalrule":{"toolbar":"Insert Horizontal Line"},"image":{"alt":"Alternative Text","border":"Border","btnUpload":"Send it to the Server","button2Img":"Do you want to transform the selected image button on a simple image?","hSpace":"HSpace","img2Button":"Do you want to transform the selected image on a image button?","infoTab":"Image Info","linkTab":"Link","lockRatio":"Lock Ratio","menu":"Image Properties","resetSize":"Reset Size","title":"Image Properties","titleButton":"Image Button Properties","upload":"Upload","urlMissing":"Image source URL is missing.","vSpace":"VSpace","validateBorder":"Border must be a whole number.","validateHSpace":"HSpace must be a whole number.","validateVSpace":"VSpace must be a whole number."},"indent":{"indent":"Increase Indent","outdent":"Decrease Indent"},"fakeobjects":{"anchor":"Anchor","flash":"Flash Animation","hiddenfield":"Hidden Field","iframe":"IFrame","unknown":"Unknown Object"},"link":{"acccessKey":"Access Key","advanced":"Advanced","advisoryContentType":"Advisory Content Type","advisoryTitle":"Advisory Title","anchor":{"toolbar":"Anchor","menu":"Edit Anchor","title":"Anchor Properties","name":"Anchor Name","errorName":"Please type the anchor name","remove":"Remove Anchor"},"anchorId":"By Element Id","anchorName":"By Anchor Name","charset":"Linked Resource Charset","cssClasses":"Stylesheet Classes","download":"Force Download","displayText":"Display Text","emailAddress":"E-Mail Address","emailBody":"Message Body","emailSubject":"Message Subject","id":"Id","info":"Link Info","langCode":"Language Code","langDir":"Language Direction","langDirLTR":"Left to Right (LTR)","langDirRTL":"Right to Left (RTL)","menu":"Edit Link","name":"Name","noAnchors":"(No anchors available in the document)","noEmail":"Please type the e-mail address","noUrl":"Please type the link URL","other":"<other>","popupDependent":"Dependent (Netscape)","popupFeatures":"Popup Window Features","popupFullScreen":"Full Screen (IE)","popupLeft":"Left Position","popupLocationBar":"Location Bar","popupMenuBar":"Menu Bar","popupResizable":"Resizable","popupScrollBars":"Scroll Bars","popupStatusBar":"Status Bar","popupToolbar":"Toolbar","popupTop":"Top Position","rel":"Relationship","selectAnchor":"Select an Anchor","styles":"Style","tabIndex":"Tab Index","target":"Target","targetFrame":"<frame>","targetFrameName":"Target Frame Name","targetPopup":"<popup window>","targetPopupName":"Popup Window Name","title":"Link","toAnchor":"Link to anchor in the text","toEmail":"E-mail","toUrl":"URL","toolbar":"Link","type":"Link Type","unlink":"Unlink","upload":"Upload"},"list":{"bulletedlist":"Insert/Remove Bulleted List","numberedlist":"Insert/Remove Numbered List"},"magicline":{"title":"Insert paragraph here"},"maximize":{"maximize":"Maximize","minimize":"Minimize"},"pastetext":{"button":"Paste as plain text","pasteNotification":"Your browser does not allow you to paste plain text this way. Press %1 to paste."},"pastefromword":{"confirmCleanup":"The text you want to paste seems to be copied from Word. Do you want to clean it before pasting?","error":"It was not possible to clean up the pasted data due to an internal error","title":"Paste from Word","toolbar":"Paste from Word"},"removeformat":{"toolbar":"Remove Format"},"sourcearea":{"toolbar":"Source"},"specialchar":{"options":"Special Character Options","title":"Select Special Character","toolbar":"Insert Special Character"},"scayt":{"btn_about":"About SCAYT","btn_dictionaries":"Dictionaries","btn_disable":"Disable SCAYT","btn_enable":"Enable SCAYT","btn_langs":"Languages","btn_options":"Options","text_title":"Spell Check As You Type"},"stylescombo":{"label":"Styles","panelTitle":"Formatting Styles","panelTitle1":"Block Styles","panelTitle2":"Inline Styles","panelTitle3":"Object Styles"},"table":{"border":"Border size","caption":"Caption","cell":{"menu":"Cell","insertBefore":"Insert Cell Before","insertAfter":"Insert Cell After","deleteCell":"Delete Cells","merge":"Merge Cells","mergeRight":"Merge Right","mergeDown":"Merge Down","splitHorizontal":"Split Cell Horizontally","splitVertical":"Split Cell Vertically","title":"Cell Properties","cellType":"Cell Type","rowSpan":"Rows Span","colSpan":"Columns Span","wordWrap":"Word Wrap","hAlign":"Horizontal Alignment","vAlign":"Vertical Alignment","alignBaseline":"Baseline","bgColor":"Background Color","borderColor":"Border Color","data":"Data","header":"Header","yes":"Yes","no":"No","invalidWidth":"Cell width must be a number.","invalidHeight":"Cell height must be a number.","invalidRowSpan":"Rows span must be a whole number.","invalidColSpan":"Columns span must be a whole number.","chooseColor":"Choose"},"cellPad":"Cell padding","cellSpace":"Cell spacing","column":{"menu":"Column","insertBefore":"Insert Column Before","insertAfter":"Insert Column After","deleteColumn":"Delete Columns"},"columns":"Columns","deleteTable":"Delete Table","headers":"Headers","headersBoth":"Both","headersColumn":"First column","headersNone":"None","headersRow":"First Row","invalidBorder":"Border size must be a number.","invalidCellPadding":"Cell padding must be a number.","invalidCellSpacing":"Cell spacing must be a number.","invalidCols":"Number of columns must be a number greater than 0.","invalidHeight":"Table height must be a number.","invalidRows":"Number of rows must be a number greater than 0.","invalidWidth":"Table width must be a number.","menu":"Table Properties","row":{"menu":"Row","insertBefore":"Insert Row Before","insertAfter":"Insert Row After","deleteRow":"Delete Rows"},"rows":"Rows","summary":"Summary","title":"Table Properties","toolbar":"Table","widthPc":"percent","widthPx":"pixels","widthUnit":"width unit"},"undo":{"redo":"Redo","undo":"Undo"},"wsc":{"btnIgnore":"Ignore","btnIgnoreAll":"Ignore All","btnReplace":"Replace","btnReplaceAll":"Replace All","btnUndo":"Undo","changeTo":"Change to","errorLoading":"Error loading application service host: %s.","ieSpellDownload":"Spell checker not installed. Do you want to download it now?","manyChanges":"Spell check complete: %1 words changed","noChanges":"Spell check complete: No words changed","noMispell":"Spell check complete: No misspellings found","noSuggestions":"- No suggestions -","notAvailable":"Sorry, but service is unavailable now.","notInDic":"Not in dictionary","oneChange":"Spell check complete: One word changed","progress":"Spell check in progress...","title":"Spell Checker","toolbar":"Check Spelling"}}; \ No newline at end of file diff --git a/admin/plugins/ckeditor/lang/en-ca.js b/admin/plugins/ckeditor/lang/en-ca.js deleted file mode 100644 index 667a165..0000000 --- a/admin/plugins/ckeditor/lang/en-ca.js +++ /dev/null @@ -1,5 +0,0 @@ -/* -Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. -For licensing, see LICENSE.md or http://ckeditor.com/license -*/ -CKEDITOR.lang['en-ca']={"editor":"Rich Text Editor","editorPanel":"Rich Text Editor panel","common":{"editorHelp":"Press ALT 0 for help","browseServer":"Browse Server","url":"URL","protocol":"Protocol","upload":"Upload","uploadSubmit":"Send it to the Server","image":"Image","flash":"Flash","form":"Form","checkbox":"Checkbox","radio":"Radio Button","textField":"Text Field","textarea":"Textarea","hiddenField":"Hidden Field","button":"Button","select":"Selection Field","imageButton":"Image Button","notSet":"<not set>","id":"Id","name":"Name","langDir":"Language Direction","langDirLtr":"Left to Right (LTR)","langDirRtl":"Right to Left (RTL)","langCode":"Language Code","longDescr":"Long Description URL","cssClass":"Stylesheet Classes","advisoryTitle":"Advisory Title","cssStyle":"Style","ok":"OK","cancel":"Cancel","close":"Close","preview":"Preview","resize":"Resize","generalTab":"General","advancedTab":"Advanced","validateNumberFailed":"This value is not a number.","confirmNewPage":"Any unsaved changes to this content will be lost. Are you sure you want to load new page?","confirmCancel":"You have changed some options. Are you sure you want to close the dialog window?","options":"Options","target":"Target","targetNew":"New Window (_blank)","targetTop":"Topmost Window (_top)","targetSelf":"Same Window (_self)","targetParent":"Parent Window (_parent)","langDirLTR":"Left to Right (LTR)","langDirRTL":"Right to Left (RTL)","styles":"Style","cssClasses":"Stylesheet Classes","width":"Width","height":"Height","align":"Align","alignLeft":"Left","alignRight":"Right","alignCenter":"Centre","alignJustify":"Justify","alignTop":"Top","alignMiddle":"Middle","alignBottom":"Bottom","alignNone":"None","invalidValue":"Invalid value.","invalidHeight":"Height must be a number.","invalidWidth":"Width must be a number.","invalidCssLength":"Value specified for the \"%1\" field must be a positive number with or without a valid CSS measurement unit (px, %, in, cm, mm, em, ex, pt, or pc).","invalidHtmlLength":"Value specified for the \"%1\" field must be a positive number with or without a valid HTML measurement unit (px or %).","invalidInlineStyle":"Value specified for the inline style must consist of one or more tuples with the format of \"name : value\", separated by semi-colons.","cssLengthTooltip":"Enter a number for a value in pixels or a number with a valid CSS unit (px, %, in, cm, mm, em, ex, pt, or pc).","unavailable":"%1<span class=\"cke_accessibility\">, unavailable</span>","keyboard":{"8":"Backspace","13":"Enter","16":"Shift","17":"Ctrl","18":"Alt","32":"Space","35":"End","36":"Home","46":"Delete","224":"Command"},"keyboardShortcut":"Keyboard shortcut"},"about":{"copy":"Copyright &copy; $1. All rights reserved.","dlgTitle":"About CKEditor","help":"Check $1 for help.","moreInfo":"For licensing information please visit our web site:","title":"About CKEditor","userGuide":"CKEditor User's Guide"},"basicstyles":{"bold":"Bold","italic":"Italic","strike":"Strike Through","subscript":"Subscript","superscript":"Superscript","underline":"Underline"},"blockquote":{"toolbar":"Block Quote"},"notification":{"closed":"Notification closed."},"button":{"selectedLabel":"%1 (Selected)"},"toolbar":{"toolbarCollapse":"Collapse Toolbar","toolbarExpand":"Expand Toolbar","toolbarGroups":{"document":"Document","clipboard":"Clipboard/Undo","editing":"Editing","forms":"Forms","basicstyles":"Basic Styles","paragraph":"Paragraph","links":"Links","insert":"Insert","styles":"Styles","colors":"Colors","tools":"Tools"},"toolbars":"Editor toolbars"},"clipboard":{"copy":"Copy","copyError":"Your browser security settings don't permit the editor to automatically execute copying operations. Please use the keyboard for that (Ctrl/Cmd+C).","cut":"Cut","cutError":"Your browser security settings don't permit the editor to automatically execute cutting operations. Please use the keyboard for that (Ctrl/Cmd+X).","paste":"Paste","pasteNotification":"Your browser doesn't allow you to paste this way. Press %1 to paste."},"contextmenu":{"options":"Context Menu Options"},"elementspath":{"eleLabel":"Elements path","eleTitle":"%1 element"},"format":{"label":"Format","panelTitle":"Paragraph Format","tag_address":"Address","tag_div":"Normal (DIV)","tag_h1":"Heading 1","tag_h2":"Heading 2","tag_h3":"Heading 3","tag_h4":"Heading 4","tag_h5":"Heading 5","tag_h6":"Heading 6","tag_p":"Normal","tag_pre":"Formatted"},"horizontalrule":{"toolbar":"Insert Horizontal Line"},"image":{"alt":"Alternative Text","border":"Border","btnUpload":"Send it to the Server","button2Img":"Do you want to transform the selected image button on a simple image?","hSpace":"HSpace","img2Button":"Do you want to transform the selected image on a image button?","infoTab":"Image Info","linkTab":"Link","lockRatio":"Lock Ratio","menu":"Image Properties","resetSize":"Reset Size","title":"Image Properties","titleButton":"Image Button Properties","upload":"Upload","urlMissing":"Image source URL is missing.","vSpace":"VSpace","validateBorder":"Border must be a whole number.","validateHSpace":"HSpace must be a whole number.","validateVSpace":"VSpace must be a whole number."},"indent":{"indent":"Increase Indent","outdent":"Decrease Indent"},"fakeobjects":{"anchor":"Anchor","flash":"Flash Animation","hiddenfield":"Hidden Field","iframe":"IFrame","unknown":"Unknown Object"},"link":{"acccessKey":"Access Key","advanced":"Advanced","advisoryContentType":"Advisory Content Type","advisoryTitle":"Advisory Title","anchor":{"toolbar":"Anchor","menu":"Edit Anchor","title":"Anchor Properties","name":"Anchor Name","errorName":"Please type the anchor name","remove":"Remove Anchor"},"anchorId":"By Element Id","anchorName":"By Anchor Name","charset":"Linked Resource Charset","cssClasses":"Stylesheet Classes","download":"Force Download","displayText":"Display Text","emailAddress":"E-Mail Address","emailBody":"Message Body","emailSubject":"Message Subject","id":"Id","info":"Link Info","langCode":"Language Code","langDir":"Language Direction","langDirLTR":"Left to Right (LTR)","langDirRTL":"Right to Left (RTL)","menu":"Edit Link","name":"Name","noAnchors":"(No anchors available in the document)","noEmail":"Please type the e-mail address","noUrl":"Please type the link URL","other":"<other>","popupDependent":"Dependent (Netscape)","popupFeatures":"Popup Window Features","popupFullScreen":"Full Screen (IE)","popupLeft":"Left Position","popupLocationBar":"Location Bar","popupMenuBar":"Menu Bar","popupResizable":"Resizable","popupScrollBars":"Scroll Bars","popupStatusBar":"Status Bar","popupToolbar":"Toolbar","popupTop":"Top Position","rel":"Relationship","selectAnchor":"Select an Anchor","styles":"Style","tabIndex":"Tab Index","target":"Target","targetFrame":"<frame>","targetFrameName":"Target Frame Name","targetPopup":"<popup window>","targetPopupName":"Popup Window Name","title":"Link","toAnchor":"Link to anchor in the text","toEmail":"E-mail","toUrl":"URL","toolbar":"Link","type":"Link Type","unlink":"Unlink","upload":"Upload"},"list":{"bulletedlist":"Insert/Remove Bulleted List","numberedlist":"Insert/Remove Numbered List"},"magicline":{"title":"Insert paragraph here"},"maximize":{"maximize":"Maximize","minimize":"Minimize"},"pastetext":{"button":"Paste as plain text","pasteNotification":"Your browser does not allow you to paste plain text this way. Press %1 to paste."},"pastefromword":{"confirmCleanup":"The text you want to paste seems to be copied from Word. Do you want to clean it before pasting?","error":"It was not possible to clean up the pasted data due to an internal error","title":"Paste from Word","toolbar":"Paste from Word"},"removeformat":{"toolbar":"Remove Format"},"sourcearea":{"toolbar":"Source"},"specialchar":{"options":"Special Character Options","title":"Select Special Character","toolbar":"Insert Special Character"},"scayt":{"btn_about":"About SCAYT","btn_dictionaries":"Dictionaries","btn_disable":"Disable SCAYT","btn_enable":"Enable SCAYT","btn_langs":"Languages","btn_options":"Options","text_title":"Spell Check As You Type"},"stylescombo":{"label":"Styles","panelTitle":"Formatting Styles","panelTitle1":"Block Styles","panelTitle2":"Inline Styles","panelTitle3":"Object Styles"},"table":{"border":"Border size","caption":"Caption","cell":{"menu":"Cell","insertBefore":"Insert Cell Before","insertAfter":"Insert Cell After","deleteCell":"Delete Cells","merge":"Merge Cells","mergeRight":"Merge Right","mergeDown":"Merge Down","splitHorizontal":"Split Cell Horizontally","splitVertical":"Split Cell Vertically","title":"Cell Properties","cellType":"Cell Type","rowSpan":"Rows Span","colSpan":"Columns Span","wordWrap":"Word Wrap","hAlign":"Horizontal Alignment","vAlign":"Vertical Alignment","alignBaseline":"Baseline","bgColor":"Background Color","borderColor":"Border Color","data":"Data","header":"Header","yes":"Yes","no":"No","invalidWidth":"Cell width must be a number.","invalidHeight":"Cell height must be a number.","invalidRowSpan":"Rows span must be a whole number.","invalidColSpan":"Columns span must be a whole number.","chooseColor":"Choose"},"cellPad":"Cell padding","cellSpace":"Cell spacing","column":{"menu":"Column","insertBefore":"Insert Column Before","insertAfter":"Insert Column After","deleteColumn":"Delete Columns"},"columns":"Columns","deleteTable":"Delete Table","headers":"Headers","headersBoth":"Both","headersColumn":"First column","headersNone":"None","headersRow":"First Row","invalidBorder":"Border size must be a number.","invalidCellPadding":"Cell padding must be a number.","invalidCellSpacing":"Cell spacing must be a number.","invalidCols":"Number of columns must be a number greater than 0.","invalidHeight":"Table height must be a number.","invalidRows":"Number of rows must be a number greater than 0.","invalidWidth":"Table width must be a number.","menu":"Table Properties","row":{"menu":"Row","insertBefore":"Insert Row Before","insertAfter":"Insert Row After","deleteRow":"Delete Rows"},"rows":"Rows","summary":"Summary","title":"Table Properties","toolbar":"Table","widthPc":"percent","widthPx":"pixels","widthUnit":"width unit"},"undo":{"redo":"Redo","undo":"Undo"},"wsc":{"btnIgnore":"Ignore","btnIgnoreAll":"Ignore All","btnReplace":"Replace","btnReplaceAll":"Replace All","btnUndo":"Undo","changeTo":"Change to","errorLoading":"Error loading application service host: %s.","ieSpellDownload":"Spell checker not installed. Do you want to download it now?","manyChanges":"Spell check complete: %1 words changed","noChanges":"Spell check complete: No words changed","noMispell":"Spell check complete: No misspellings found","noSuggestions":"- No suggestions -","notAvailable":"Sorry, but service is unavailable now.","notInDic":"Not in dictionary","oneChange":"Spell check complete: One word changed","progress":"Spell check in progress...","title":"Spell Checker","toolbar":"Check Spelling"}}; \ No newline at end of file diff --git a/admin/plugins/ckeditor/lang/en-gb.js b/admin/plugins/ckeditor/lang/en-gb.js deleted file mode 100644 index 84f7020..0000000 --- a/admin/plugins/ckeditor/lang/en-gb.js +++ /dev/null @@ -1,5 +0,0 @@ -/* -Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. -For licensing, see LICENSE.md or http://ckeditor.com/license -*/ -CKEDITOR.lang['en-gb']={"editor":"Rich Text Editor","editorPanel":"Rich Text Editor panel","common":{"editorHelp":"Press ALT 0 for help","browseServer":"Browse Server","url":"URL","protocol":"Protocol","upload":"Upload","uploadSubmit":"Send it to the Server","image":"Image","flash":"Flash","form":"Form","checkbox":"Checkbox","radio":"Radio Button","textField":"Text Field","textarea":"Textarea","hiddenField":"Hidden Field","button":"Button","select":"Selection Field","imageButton":"Image Button","notSet":"<not set>","id":"Id","name":"Name","langDir":"Language Direction","langDirLtr":"Left to Right (LTR)","langDirRtl":"Right to Left (RTL)","langCode":"Language Code","longDescr":"Long Description URL","cssClass":"Stylesheet Classes","advisoryTitle":"Advisory Title","cssStyle":"Style","ok":"OK","cancel":"Cancel","close":"Close","preview":"Preview","resize":"Drag to resize","generalTab":"General","advancedTab":"Advanced","validateNumberFailed":"This value is not a number.","confirmNewPage":"Any unsaved changes to this content will be lost. Are you sure you want to load new page?","confirmCancel":"You have changed some options. Are you sure you want to close the dialogue window?","options":"Options","target":"Target","targetNew":"New Window (_blank)","targetTop":"Topmost Window (_top)","targetSelf":"Same Window (_self)","targetParent":"Parent Window (_parent)","langDirLTR":"Left to Right (LTR)","langDirRTL":"Right to Left (RTL)","styles":"Style","cssClasses":"Stylesheet Classes","width":"Width","height":"Height","align":"Align","alignLeft":"Left","alignRight":"Right","alignCenter":"Centre","alignJustify":"Justify","alignTop":"Top","alignMiddle":"Middle","alignBottom":"Bottom","alignNone":"None","invalidValue":"Invalid value.","invalidHeight":"Height must be a number.","invalidWidth":"Width must be a number.","invalidCssLength":"Value specified for the \"%1\" field must be a positive number with or without a valid CSS measurement unit (px, %, in, cm, mm, em, ex, pt, or pc).","invalidHtmlLength":"Value specified for the \"%1\" field must be a positive number with or without a valid HTML measurement unit (px or %).","invalidInlineStyle":"Value specified for the inline style must consist of one or more tuples with the format of \"name : value\", separated by semi-colons.","cssLengthTooltip":"Enter a number for a value in pixels or a number with a valid CSS unit (px, %, in, cm, mm, em, ex, pt, or pc).","unavailable":"%1<span class=\"cke_accessibility\">, unavailable</span>","keyboard":{"8":"Backspace","13":"Enter","16":"Shift","17":"Ctrl","18":"Alt","32":"Space","35":"End","36":"Home","46":"Delete","224":"Command"},"keyboardShortcut":"Keyboard shortcut"},"about":{"copy":"Copyright &copy; $1. All rights reserved.","dlgTitle":"About CKEditor","help":"Check $1 for help.","moreInfo":"For licensing information please visit our web site:","title":"About CKEditor","userGuide":"CKEditor User's Guide"},"basicstyles":{"bold":"Bold","italic":"Italic","strike":"Strike Through","subscript":"Subscript","superscript":"Superscript","underline":"Underline"},"blockquote":{"toolbar":"Block Quote"},"notification":{"closed":"Notification closed."},"button":{"selectedLabel":"%1 (Selected)"},"toolbar":{"toolbarCollapse":"Collapse Toolbar","toolbarExpand":"Expand Toolbar","toolbarGroups":{"document":"Document","clipboard":"Clipboard/Undo","editing":"Editing","forms":"Forms","basicstyles":"Basic Styles","paragraph":"Paragraph","links":"Links","insert":"Insert","styles":"Styles","colors":"Colors","tools":"Tools"},"toolbars":"Editor toolbars"},"clipboard":{"copy":"Copy","copyError":"Your browser security settings don't permit the editor to automatically execute copying operations. Please use the keyboard for that (Ctrl/Cmd+C).","cut":"Cut","cutError":"Your browser security settings don't permit the editor to automatically execute cutting operations. Please use the keyboard for that (Ctrl/Cmd+X).","paste":"Paste","pasteNotification":"Your browser doesn't allow you to paste this way. Press %1 to paste."},"contextmenu":{"options":"Context Menu Options"},"elementspath":{"eleLabel":"Elements path","eleTitle":"%1 element"},"format":{"label":"Format","panelTitle":"Paragraph Format","tag_address":"Address","tag_div":"Normal (DIV)","tag_h1":"Heading 1","tag_h2":"Heading 2","tag_h3":"Heading 3","tag_h4":"Heading 4","tag_h5":"Heading 5","tag_h6":"Heading 6","tag_p":"Normal","tag_pre":"Formatted"},"horizontalrule":{"toolbar":"Insert Horizontal Line"},"image":{"alt":"Alternative Text","border":"Border","btnUpload":"Send it to the Server","button2Img":"Do you want to transform the selected image button on a simple image?","hSpace":"HSpace","img2Button":"Do you want to transform the selected image on a image button?","infoTab":"Image Info","linkTab":"Link","lockRatio":"Lock Ratio","menu":"Image Properties","resetSize":"Reset Size","title":"Image Properties","titleButton":"Image Button Properties","upload":"Upload","urlMissing":"Image source URL is missing.","vSpace":"VSpace","validateBorder":"Border must be a whole number.","validateHSpace":"HSpace must be a whole number.","validateVSpace":"VSpace must be a whole number."},"indent":{"indent":"Increase Indent","outdent":"Decrease Indent"},"fakeobjects":{"anchor":"Anchor","flash":"Flash Animation","hiddenfield":"Hidden Field","iframe":"IFrame","unknown":"Unknown Object"},"link":{"acccessKey":"Access Key","advanced":"Advanced","advisoryContentType":"Advisory Content Type","advisoryTitle":"Advisory Title","anchor":{"toolbar":"Anchor","menu":"Edit Anchor","title":"Anchor Properties","name":"Anchor Name","errorName":"Please type the anchor name","remove":"Remove Anchor"},"anchorId":"By Element Id","anchorName":"By Anchor Name","charset":"Linked Resource Charset","cssClasses":"Stylesheet Classes","download":"Force Download","displayText":"Display Text","emailAddress":"E-Mail Address","emailBody":"Message Body","emailSubject":"Message Subject","id":"Id","info":"Link Info","langCode":"Language Code","langDir":"Language Direction","langDirLTR":"Left to Right (LTR)","langDirRTL":"Right to Left (RTL)","menu":"Edit Link","name":"Name","noAnchors":"(No anchors available in the document)","noEmail":"Please type the e-mail address","noUrl":"Please type the link URL","other":"<other>","popupDependent":"Dependent (Netscape)","popupFeatures":"Popup Window Features","popupFullScreen":"Full Screen (IE)","popupLeft":"Left Position","popupLocationBar":"Location Bar","popupMenuBar":"Menu Bar","popupResizable":"Resizable","popupScrollBars":"Scroll Bars","popupStatusBar":"Status Bar","popupToolbar":"Toolbar","popupTop":"Top Position","rel":"Relationship","selectAnchor":"Select an Anchor","styles":"Style","tabIndex":"Tab Index","target":"Target","targetFrame":"<frame>","targetFrameName":"Target Frame Name","targetPopup":"<popup window>","targetPopupName":"Popup Window Name","title":"Link","toAnchor":"Link to anchor in the text","toEmail":"E-mail","toUrl":"URL","toolbar":"Link","type":"Link Type","unlink":"Unlink","upload":"Upload"},"list":{"bulletedlist":"Insert/Remove Bulleted List","numberedlist":"Insert/Remove Numbered List"},"magicline":{"title":"Insert paragraph here"},"maximize":{"maximize":"Maximise","minimize":"Minimise"},"pastetext":{"button":"Paste as plain text","pasteNotification":"Your browser does not allow you to paste plain text this way. Press %1 to paste."},"pastefromword":{"confirmCleanup":"The text you want to paste seems to be copied from Word. Do you want to clean it before pasting?","error":"It was not possible to clean up the pasted data due to an internal error","title":"Paste from Word","toolbar":"Paste from Word"},"removeformat":{"toolbar":"Remove Format"},"sourcearea":{"toolbar":"Source"},"specialchar":{"options":"Special Character Options","title":"Select Special Character","toolbar":"Insert Special Character"},"scayt":{"btn_about":"About SCAYT","btn_dictionaries":"Dictionaries","btn_disable":"Disable SCAYT","btn_enable":"Enable SCAYT","btn_langs":"Languages","btn_options":"Options","text_title":"Spell Check As You Type"},"stylescombo":{"label":"Styles","panelTitle":"Formatting Styles","panelTitle1":"Block Styles","panelTitle2":"Inline Styles","panelTitle3":"Object Styles"},"table":{"border":"Border size","caption":"Caption","cell":{"menu":"Cell","insertBefore":"Insert Cell Before","insertAfter":"Insert Cell After","deleteCell":"Delete Cells","merge":"Merge Cells","mergeRight":"Merge Right","mergeDown":"Merge Down","splitHorizontal":"Split Cell Horizontally","splitVertical":"Split Cell Vertically","title":"Cell Properties","cellType":"Cell Type","rowSpan":"Rows Span","colSpan":"Columns Span","wordWrap":"Word Wrap","hAlign":"Horizontal Alignment","vAlign":"Vertical Alignment","alignBaseline":"Baseline","bgColor":"Background Color","borderColor":"Border Color","data":"Data","header":"Header","yes":"Yes","no":"No","invalidWidth":"Cell width must be a number.","invalidHeight":"Cell height must be a number.","invalidRowSpan":"Rows span must be a whole number.","invalidColSpan":"Columns span must be a whole number.","chooseColor":"Choose"},"cellPad":"Cell padding","cellSpace":"Cell spacing","column":{"menu":"Column","insertBefore":"Insert Column Before","insertAfter":"Insert Column After","deleteColumn":"Delete Columns"},"columns":"Columns","deleteTable":"Delete Table","headers":"Headers","headersBoth":"Both","headersColumn":"First column","headersNone":"None","headersRow":"First Row","invalidBorder":"Border size must be a number.","invalidCellPadding":"Cell padding must be a number.","invalidCellSpacing":"Cell spacing must be a number.","invalidCols":"Number of columns must be a number greater than 0.","invalidHeight":"Table height must be a number.","invalidRows":"Number of rows must be a number greater than 0.","invalidWidth":"Table width must be a number.","menu":"Table Properties","row":{"menu":"Row","insertBefore":"Insert Row Before","insertAfter":"Insert Row After","deleteRow":"Delete Rows"},"rows":"Rows","summary":"Summary","title":"Table Properties","toolbar":"Table","widthPc":"percent","widthPx":"pixels","widthUnit":"width unit"},"undo":{"redo":"Redo","undo":"Undo"},"wsc":{"btnIgnore":"Ignore","btnIgnoreAll":"Ignore All","btnReplace":"Replace","btnReplaceAll":"Replace All","btnUndo":"Undo","changeTo":"Change to","errorLoading":"Error loading application service host: %s.","ieSpellDownload":"Spell checker not installed. Do you want to download it now?","manyChanges":"Spell check complete: %1 words changed","noChanges":"Spell check complete: No words changed","noMispell":"Spell check complete: No misspellings found","noSuggestions":"- No suggestions -","notAvailable":"Sorry, but service is unavailable now.","notInDic":"Not in dictionary","oneChange":"Spell check complete: One word changed","progress":"Spell check in progress...","title":"Spell Checker","toolbar":"Check Spelling"}}; \ No newline at end of file diff --git a/admin/plugins/ckeditor/lang/en.js b/admin/plugins/ckeditor/lang/en.js deleted file mode 100644 index 5e5f447..0000000 --- a/admin/plugins/ckeditor/lang/en.js +++ /dev/null @@ -1,5 +0,0 @@ -/* -Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. -For licensing, see LICENSE.md or http://ckeditor.com/license -*/ -CKEDITOR.lang['en']={"editor":"Rich Text Editor","editorPanel":"Rich Text Editor panel","common":{"editorHelp":"Press ALT 0 for help","browseServer":"Browse Server","url":"URL","protocol":"Protocol","upload":"Upload","uploadSubmit":"Send it to the Server","image":"Image","flash":"Flash","form":"Form","checkbox":"Checkbox","radio":"Radio Button","textField":"Text Field","textarea":"Textarea","hiddenField":"Hidden Field","button":"Button","select":"Selection Field","imageButton":"Image Button","notSet":"<not set>","id":"Id","name":"Name","langDir":"Language Direction","langDirLtr":"Left to Right (LTR)","langDirRtl":"Right to Left (RTL)","langCode":"Language Code","longDescr":"Long Description URL","cssClass":"Stylesheet Classes","advisoryTitle":"Advisory Title","cssStyle":"Style","ok":"OK","cancel":"Cancel","close":"Close","preview":"Preview","resize":"Resize","generalTab":"General","advancedTab":"Advanced","validateNumberFailed":"This value is not a number.","confirmNewPage":"Any unsaved changes to this content will be lost. Are you sure you want to load new page?","confirmCancel":"You have changed some options. Are you sure you want to close the dialog window?","options":"Options","target":"Target","targetNew":"New Window (_blank)","targetTop":"Topmost Window (_top)","targetSelf":"Same Window (_self)","targetParent":"Parent Window (_parent)","langDirLTR":"Left to Right (LTR)","langDirRTL":"Right to Left (RTL)","styles":"Style","cssClasses":"Stylesheet Classes","width":"Width","height":"Height","align":"Alignment","alignLeft":"Left","alignRight":"Right","alignCenter":"Center","alignJustify":"Justify","alignTop":"Top","alignMiddle":"Middle","alignBottom":"Bottom","alignNone":"None","invalidValue":"Invalid value.","invalidHeight":"Height must be a number.","invalidWidth":"Width must be a number.","invalidCssLength":"Value specified for the \"%1\" field must be a positive number with or without a valid CSS measurement unit (px, %, in, cm, mm, em, ex, pt, or pc).","invalidHtmlLength":"Value specified for the \"%1\" field must be a positive number with or without a valid HTML measurement unit (px or %).","invalidInlineStyle":"Value specified for the inline style must consist of one or more tuples with the format of \"name : value\", separated by semi-colons.","cssLengthTooltip":"Enter a number for a value in pixels or a number with a valid CSS unit (px, %, in, cm, mm, em, ex, pt, or pc).","unavailable":"%1<span class=\"cke_accessibility\">, unavailable</span>","keyboard":{"8":"Backspace","13":"Enter","16":"Shift","17":"Ctrl","18":"Alt","32":"Space","35":"End","36":"Home","46":"Delete","224":"Command"},"keyboardShortcut":"Keyboard shortcut"},"about":{"copy":"Copyright &copy; $1. All rights reserved.","dlgTitle":"About CKEditor","help":"Check $1 for help.","moreInfo":"For licensing information please visit our web site:","title":"About CKEditor","userGuide":"CKEditor User's Guide"},"basicstyles":{"bold":"Bold","italic":"Italic","strike":"Strikethrough","subscript":"Subscript","superscript":"Superscript","underline":"Underline"},"blockquote":{"toolbar":"Block Quote"},"notification":{"closed":"Notification closed."},"button":{"selectedLabel":"%1 (Selected)"},"toolbar":{"toolbarCollapse":"Collapse Toolbar","toolbarExpand":"Expand Toolbar","toolbarGroups":{"document":"Document","clipboard":"Clipboard/Undo","editing":"Editing","forms":"Forms","basicstyles":"Basic Styles","paragraph":"Paragraph","links":"Links","insert":"Insert","styles":"Styles","colors":"Colors","tools":"Tools"},"toolbars":"Editor toolbars"},"clipboard":{"copy":"Copy","copyError":"Your browser security settings don't permit the editor to automatically execute copying operations. Please use the keyboard for that (Ctrl/Cmd+C).","cut":"Cut","cutError":"Your browser security settings don't permit the editor to automatically execute cutting operations. Please use the keyboard for that (Ctrl/Cmd+X).","paste":"Paste","pasteNotification":"Your browser doesn't allow you to paste this way. Press %1 to paste."},"contextmenu":{"options":"Context Menu Options"},"elementspath":{"eleLabel":"Elements path","eleTitle":"%1 element"},"format":{"label":"Format","panelTitle":"Paragraph Format","tag_address":"Address","tag_div":"Normal (DIV)","tag_h1":"Heading 1","tag_h2":"Heading 2","tag_h3":"Heading 3","tag_h4":"Heading 4","tag_h5":"Heading 5","tag_h6":"Heading 6","tag_p":"Normal","tag_pre":"Formatted"},"horizontalrule":{"toolbar":"Insert Horizontal Line"},"image":{"alt":"Alternative Text","border":"Border","btnUpload":"Send it to the Server","button2Img":"Do you want to transform the selected image button on a simple image?","hSpace":"HSpace","img2Button":"Do you want to transform the selected image on a image button?","infoTab":"Image Info","linkTab":"Link","lockRatio":"Lock Ratio","menu":"Image Properties","resetSize":"Reset Size","title":"Image Properties","titleButton":"Image Button Properties","upload":"Upload","urlMissing":"Image source URL is missing.","vSpace":"VSpace","validateBorder":"Border must be a whole number.","validateHSpace":"HSpace must be a whole number.","validateVSpace":"VSpace must be a whole number."},"indent":{"indent":"Increase Indent","outdent":"Decrease Indent"},"fakeobjects":{"anchor":"Anchor","flash":"Flash Animation","hiddenfield":"Hidden Field","iframe":"IFrame","unknown":"Unknown Object"},"link":{"acccessKey":"Access Key","advanced":"Advanced","advisoryContentType":"Advisory Content Type","advisoryTitle":"Advisory Title","anchor":{"toolbar":"Anchor","menu":"Edit Anchor","title":"Anchor Properties","name":"Anchor Name","errorName":"Please type the anchor name","remove":"Remove Anchor"},"anchorId":"By Element Id","anchorName":"By Anchor Name","charset":"Linked Resource Charset","cssClasses":"Stylesheet Classes","download":"Force Download","displayText":"Display Text","emailAddress":"E-Mail Address","emailBody":"Message Body","emailSubject":"Message Subject","id":"Id","info":"Link Info","langCode":"Language Code","langDir":"Language Direction","langDirLTR":"Left to Right (LTR)","langDirRTL":"Right to Left (RTL)","menu":"Edit Link","name":"Name","noAnchors":"(No anchors available in the document)","noEmail":"Please type the e-mail address","noUrl":"Please type the link URL","other":"<other>","popupDependent":"Dependent (Netscape)","popupFeatures":"Popup Window Features","popupFullScreen":"Full Screen (IE)","popupLeft":"Left Position","popupLocationBar":"Location Bar","popupMenuBar":"Menu Bar","popupResizable":"Resizable","popupScrollBars":"Scroll Bars","popupStatusBar":"Status Bar","popupToolbar":"Toolbar","popupTop":"Top Position","rel":"Relationship","selectAnchor":"Select an Anchor","styles":"Style","tabIndex":"Tab Index","target":"Target","targetFrame":"<frame>","targetFrameName":"Target Frame Name","targetPopup":"<popup window>","targetPopupName":"Popup Window Name","title":"Link","toAnchor":"Link to anchor in the text","toEmail":"E-mail","toUrl":"URL","toolbar":"Link","type":"Link Type","unlink":"Unlink","upload":"Upload"},"list":{"bulletedlist":"Insert/Remove Bulleted List","numberedlist":"Insert/Remove Numbered List"},"magicline":{"title":"Insert paragraph here"},"maximize":{"maximize":"Maximize","minimize":"Minimize"},"pastetext":{"button":"Paste as plain text","pasteNotification":"Your browser does not allow you to paste plain text this way. Press %1 to paste."},"pastefromword":{"confirmCleanup":"The text you want to paste seems to be copied from Word. Do you want to clean it before pasting?","error":"It was not possible to clean up the pasted data due to an internal error","title":"Paste from Word","toolbar":"Paste from Word"},"removeformat":{"toolbar":"Remove Format"},"sourcearea":{"toolbar":"Source"},"specialchar":{"options":"Special Character Options","title":"Select Special Character","toolbar":"Insert Special Character"},"scayt":{"btn_about":"About SCAYT","btn_dictionaries":"Dictionaries","btn_disable":"Disable SCAYT","btn_enable":"Enable SCAYT","btn_langs":"Languages","btn_options":"Options","text_title":"Spell Check As You Type"},"stylescombo":{"label":"Styles","panelTitle":"Formatting Styles","panelTitle1":"Block Styles","panelTitle2":"Inline Styles","panelTitle3":"Object Styles"},"table":{"border":"Border size","caption":"Caption","cell":{"menu":"Cell","insertBefore":"Insert Cell Before","insertAfter":"Insert Cell After","deleteCell":"Delete Cells","merge":"Merge Cells","mergeRight":"Merge Right","mergeDown":"Merge Down","splitHorizontal":"Split Cell Horizontally","splitVertical":"Split Cell Vertically","title":"Cell Properties","cellType":"Cell Type","rowSpan":"Rows Span","colSpan":"Columns Span","wordWrap":"Word Wrap","hAlign":"Horizontal Alignment","vAlign":"Vertical Alignment","alignBaseline":"Baseline","bgColor":"Background Color","borderColor":"Border Color","data":"Data","header":"Header","yes":"Yes","no":"No","invalidWidth":"Cell width must be a number.","invalidHeight":"Cell height must be a number.","invalidRowSpan":"Rows span must be a whole number.","invalidColSpan":"Columns span must be a whole number.","chooseColor":"Choose"},"cellPad":"Cell padding","cellSpace":"Cell spacing","column":{"menu":"Column","insertBefore":"Insert Column Before","insertAfter":"Insert Column After","deleteColumn":"Delete Columns"},"columns":"Columns","deleteTable":"Delete Table","headers":"Headers","headersBoth":"Both","headersColumn":"First column","headersNone":"None","headersRow":"First Row","invalidBorder":"Border size must be a number.","invalidCellPadding":"Cell padding must be a positive number.","invalidCellSpacing":"Cell spacing must be a positive number.","invalidCols":"Number of columns must be a number greater than 0.","invalidHeight":"Table height must be a number.","invalidRows":"Number of rows must be a number greater than 0.","invalidWidth":"Table width must be a number.","menu":"Table Properties","row":{"menu":"Row","insertBefore":"Insert Row Before","insertAfter":"Insert Row After","deleteRow":"Delete Rows"},"rows":"Rows","summary":"Summary","title":"Table Properties","toolbar":"Table","widthPc":"percent","widthPx":"pixels","widthUnit":"width unit"},"undo":{"redo":"Redo","undo":"Undo"},"wsc":{"btnIgnore":"Ignore","btnIgnoreAll":"Ignore All","btnReplace":"Replace","btnReplaceAll":"Replace All","btnUndo":"Undo","changeTo":"Change to","errorLoading":"Error loading application service host: %s.","ieSpellDownload":"Spell checker not installed. Do you want to download it now?","manyChanges":"Spell check complete: %1 words changed","noChanges":"Spell check complete: No words changed","noMispell":"Spell check complete: No misspellings found","noSuggestions":"- No suggestions -","notAvailable":"Sorry, but service is unavailable now.","notInDic":"Not in dictionary","oneChange":"Spell check complete: One word changed","progress":"Spell check in progress...","title":"Spell Checker","toolbar":"Check Spelling"}}; \ No newline at end of file diff --git a/admin/plugins/ckeditor/lang/eo.js b/admin/plugins/ckeditor/lang/eo.js deleted file mode 100644 index 22b59d3..0000000 --- a/admin/plugins/ckeditor/lang/eo.js +++ /dev/null @@ -1,5 +0,0 @@ -/* -Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. -For licensing, see LICENSE.md or http://ckeditor.com/license -*/ -CKEDITOR.lang['eo']={"editor":"RiĉTeksta Redaktilo","editorPanel":"Panelo de la RiĉTeksta Redaktilo","common":{"editorHelp":"Premu ALT 0 por helpilo","browseServer":"Foliumi en la Servilo","url":"URL","protocol":"Protokolo","upload":"Alŝuti","uploadSubmit":"Sendu al Servilo","image":"Bildo","flash":"Flaŝo","form":"Formularo","checkbox":"Markobutono","radio":"Radiobutono","textField":"Teksta kampo","textarea":"Teksta Areo","hiddenField":"Kaŝita Kampo","button":"Butono","select":"Elekta Kampo","imageButton":"Bildbutono","notSet":"<Defaŭlta>","id":"Id","name":"Nomo","langDir":"Skribdirekto","langDirLtr":"De maldekstro dekstren (LTR)","langDirRtl":"De dekstro maldekstren (RTL)","langCode":"Lingva Kodo","longDescr":"URL de Longa Priskribo","cssClass":"Klasoj de Stilfolioj","advisoryTitle":"Priskriba Titolo","cssStyle":"Stilo","ok":"Akcepti","cancel":"Rezigni","close":"Fermi","preview":"Vidigi Aspekton","resize":"Movigi por ŝanĝi la grandon","generalTab":"Ĝenerala","advancedTab":"Speciala","validateNumberFailed":"Tiu valoro ne estas nombro.","confirmNewPage":"La neregistritaj ŝanĝoj estas perdotaj. Ĉu vi certas, ke vi volas ŝargi novan paĝon?","confirmCancel":"Iuj opcioj esta ŝanĝitaj. Ĉu vi certas, ke vi volas fermi la dialogon?","options":"Opcioj","target":"Celo","targetNew":"Nova Fenestro (_blank)","targetTop":"Supra Fenestro (_top)","targetSelf":"Sama Fenestro (_self)","targetParent":"Patra Fenestro (_parent)","langDirLTR":"De maldekstro dekstren (LTR)","langDirRTL":"De dekstro maldekstren (RTL)","styles":"Stilo","cssClasses":"Stilfoliaj Klasoj","width":"Larĝo","height":"Alto","align":"Ĝisrandigo","alignLeft":"Maldekstre","alignRight":"Dekstre","alignCenter":"Centre","alignJustify":"Ĝisrandigi Ambaŭflanke","alignTop":"Supre","alignMiddle":"Centre","alignBottom":"Malsupre","alignNone":"Neniu","invalidValue":"Nevalida Valoro","invalidHeight":"Alto devas esti nombro.","invalidWidth":"Larĝo devas esti nombro.","invalidCssLength":"La valoro indikita por la \"%1\" kampo devas esti pozitiva nombro kun aŭ sen valida CSSmezurunuo (px, %, in, cm, mm, em, ex, pt, or pc).","invalidHtmlLength":"La valoro indikita por la \"%1\" kampo devas esti pozitiva nombro kun aŭ sen valida HTMLmezurunuo (px or %).","invalidInlineStyle":"La valoro indikita por la enlinia stilo devas konsisti el unu aŭ pluraj elementoj kun la formato de \"nomo : valoro\", apartigitaj per punktokomoj.","cssLengthTooltip":"Entajpu nombron por rastrumera valoro aŭ nombron kun valida CSSunuo (px, %, in, cm, mm, em, ex, pt, or pc).","unavailable":"%1<span class=\"cke_accessibility\">, nehavebla</span>","keyboard":{"8":"Retropaŝo","13":"Enigi","16":"Registrumo","17":"Stirklavo","18":"Alt-klavo","32":"Spaco","35":"Fino","36":"Hejmo","46":"Forigi","224":"Komando"},"keyboardShortcut":"Fulmoklavo"},"about":{"copy":"Copyright &copy; $1. Ĉiuj rajtoj rezervitaj.","dlgTitle":"Pri CKEditor","help":"Kontroli $1 por helpo.","moreInfo":"Por informoj pri licenco, bonvolu viziti nian retpaĝaron:","title":"Pri CKEditor","userGuide":"CKEditor Uzindikoj"},"basicstyles":{"bold":"Grasa","italic":"Kursiva","strike":"Trastreko","subscript":"Suba indico","superscript":"Supra indico","underline":"Substreko"},"blockquote":{"toolbar":"Citaĵo"},"notification":{"closed":"Sciigo fermita"},"button":{"selectedLabel":"%1 (Selektita)"},"toolbar":{"toolbarCollapse":"Faldi la ilbreton","toolbarExpand":"Malfaldi la ilbreton","toolbarGroups":{"document":"Dokumento","clipboard":"Poŝo/Malfari","editing":"Redaktado","forms":"Formularoj","basicstyles":"Bazaj stiloj","paragraph":"Paragrafo","links":"Ligiloj","insert":"Enmeti","styles":"Stiloj","colors":"Koloroj","tools":"Iloj"},"toolbars":"Ilobretoj de la redaktilo"},"clipboard":{"copy":"Kopii","copyError":"La sekurecagordo de via TTT-legilo ne permesas, ke la redaktilo faras kopiajn operaciojn. Bonvolu uzi la klavaron por tio (Ctrl/Cmd-C).","cut":"Eltondi","cutError":"La sekurecagordo de via TTT-legilo ne permesas, ke la redaktilo faras eltondajn operaciojn. Bonvolu uzi la klavaron por tio (Ctrl/Cmd-X).","paste":"Interglui","pasteNotification":"Your browser doesn't allow you to paste this way. Press %1 to paste."},"contextmenu":{"options":"Opcioj de Kunteksta Menuo"},"elementspath":{"eleLabel":"Vojo al Elementoj","eleTitle":"%1 elementoj"},"format":{"label":"Formato","panelTitle":"ParagrafFormato","tag_address":"Adreso","tag_div":"Normala (DIV)","tag_h1":"Titolo 1","tag_h2":"Titolo 2","tag_h3":"Titolo 3","tag_h4":"Titolo 4","tag_h5":"Titolo 5","tag_h6":"Titolo 6","tag_p":"Normala","tag_pre":"Formatita"},"horizontalrule":{"toolbar":"Enmeti Horizontalan Linion"},"image":{"alt":"Anstataŭiga Teksto","border":"Bordero","btnUpload":"Sendu al Servilo","button2Img":"Ĉu vi volas transformi la selektitan bildbutonon en simplan bildon?","hSpace":"Horizontala Spaco","img2Button":"Ĉu vi volas transformi la selektitan bildon en bildbutonon?","infoTab":"Informoj pri Bildo","linkTab":"Ligilo","lockRatio":"Konservi Proporcion","menu":"Atributoj de Bildo","resetSize":"Origina Grando","title":"Atributoj de Bildo","titleButton":"Bildbutonaj Atributoj","upload":"Alŝuti","urlMissing":"La fontretadreso de la bildo mankas.","vSpace":"Vertikala Spaco","validateBorder":"La bordero devas esti entjera nombro.","validateHSpace":"La horizontala spaco devas esti entjera nombro.","validateVSpace":"La vertikala spaco devas esti entjera nombro."},"indent":{"indent":"Pligrandigi Krommarĝenon","outdent":"Malpligrandigi Krommarĝenon"},"fakeobjects":{"anchor":"Ankro","flash":"FlaŝAnimacio","hiddenfield":"Kaŝita kampo","iframe":"Enlinia Kadro (IFrame)","unknown":"Nekonata objekto"},"link":{"acccessKey":"Fulmoklavo","advanced":"Speciala","advisoryContentType":"Enhavotipo","advisoryTitle":"Priskriba Titolo","anchor":{"toolbar":"Ankro","menu":"Enmeti/Ŝanĝi Ankron","title":"Ankraj Atributoj","name":"Ankra Nomo","errorName":"Bv entajpi la ankran nomon","remove":"Forigi Ankron"},"anchorId":"Per Elementidentigilo","anchorName":"Per Ankronomo","charset":"Signaro de la Ligita Rimedo","cssClasses":"Klasoj de Stilfolioj","download":"Altrudi Elŝuton","displayText":"Vidigi Tekston","emailAddress":"Retpoŝto","emailBody":"Mesaĝa korpo","emailSubject":"Mesaĝa Temo","id":"Id","info":"Informoj pri la Ligilo","langCode":"Lingva Kodo","langDir":"Skribdirekto","langDirLTR":"De maldekstro dekstren (LTR)","langDirRTL":"De dekstro maldekstren (RTL)","menu":"Ŝanĝi Ligilon","name":"Nomo","noAnchors":"<Ne disponeblas ankroj en la dokumento>","noEmail":"Bonvolu entajpi la retpoŝtadreson","noUrl":"Bonvolu entajpi la URL-on","other":"<alia>","popupDependent":"Dependa (Netscape)","popupFeatures":"Atributoj de la Ŝprucfenestro","popupFullScreen":"Tutekrane (IE)","popupLeft":"Maldekstra Pozicio","popupLocationBar":"Adresobreto","popupMenuBar":"Menubreto","popupResizable":"Dimensiŝanĝebla","popupScrollBars":"Rulumskaloj","popupStatusBar":"Statobreto","popupToolbar":"Ilobreto","popupTop":"Supra Pozicio","rel":"Rilato","selectAnchor":"Elekti Ankron","styles":"Stilo","tabIndex":"Taba Indekso","target":"Celo","targetFrame":"<kadro>","targetFrameName":"Nomo de CelKadro","targetPopup":"<ŝprucfenestro>","targetPopupName":"Nomo de Ŝprucfenestro","title":"Ligilo","toAnchor":"Ankri en tiu ĉi paĝo","toEmail":"Retpoŝto","toUrl":"URL","toolbar":"Enmeti/Ŝanĝi Ligilon","type":"Tipo de Ligilo","unlink":"Forigi Ligilon","upload":"Alŝuti"},"list":{"bulletedlist":"Bula Listo","numberedlist":"Numera Listo"},"magicline":{"title":"Enmeti paragrafon ĉi-tien"},"maximize":{"maximize":"Pligrandigi","minimize":"Malgrandigi"},"pastetext":{"button":"Interglui kiel platan tekston","pasteNotification":"Your browser does not allow you to paste plain text this way. Press %1 to paste."},"pastefromword":{"confirmCleanup":"La teksto, kiun vi volas interglui, ŝajnas esti kopiita el Word. Ĉu vi deziras purigi ĝin antaŭ intergluo?","error":"Ne eblis purigi la intergluitajn datenojn pro interna eraro","title":"Interglui el Word","toolbar":"Interglui el Word"},"removeformat":{"toolbar":"Forigi Formaton"},"sourcearea":{"toolbar":"Fonto"},"specialchar":{"options":"Opcioj pri Specialaj Signoj","title":"Selekti Specialan Signon","toolbar":"Enmeti Specialan Signon"},"scayt":{"btn_about":"Pri OKDVT","btn_dictionaries":"Vortaroj","btn_disable":"Malebligi OKDVT","btn_enable":"Ebligi OKDVT","btn_langs":"Lingvoj","btn_options":"Opcioj","text_title":"OrtografiKontrolado Dum Vi Tajpas (OKDVT)"},"stylescombo":{"label":"Stiloj","panelTitle":"Stiloj pri enpaĝigo","panelTitle1":"Stiloj de blokoj","panelTitle2":"Enliniaj Stiloj","panelTitle3":"Stiloj de objektoj"},"table":{"border":"Bordero","caption":"Tabeltitolo","cell":{"menu":"Ĉelo","insertBefore":"Enmeti Ĉelon Antaŭ","insertAfter":"Enmeti Ĉelon Post","deleteCell":"Forigi la Ĉelojn","merge":"Kunfandi la Ĉelojn","mergeRight":"Kunfandi dekstren","mergeDown":"Kunfandi malsupren ","splitHorizontal":"Horizontale dividi","splitVertical":"Vertikale dividi","title":"Ĉelatributoj","cellType":"Ĉeltipo","rowSpan":"Kunfando de linioj","colSpan":"Kunfando de kolumnoj","wordWrap":"Cezuro","hAlign":"Horizontala ĝisrandigo","vAlign":"Vertikala ĝisrandigo","alignBaseline":"Malsupro de la teksto","bgColor":"Fonkoloro","borderColor":"Borderkoloro","data":"Datenoj","header":"Supra paĝotitolo","yes":"Jes","no":"No","invalidWidth":"Ĉellarĝo devas esti nombro.","invalidHeight":"Ĉelalto devas esti nombro.","invalidRowSpan":"Kunfando de linioj devas esti entjera nombro.","invalidColSpan":"Kunfando de kolumnoj devas esti entjera nombro.","chooseColor":"Elektu"},"cellPad":"Interna Marĝeno de la ĉeloj","cellSpace":"Spaco inter la Ĉeloj","column":{"menu":"Kolumno","insertBefore":"Enmeti kolumnon antaŭ","insertAfter":"Enmeti kolumnon post","deleteColumn":"Forigi Kolumnojn"},"columns":"Kolumnoj","deleteTable":"Forigi Tabelon","headers":"Supraj Paĝotitoloj","headersBoth":"Ambaŭ","headersColumn":"Unua kolumno","headersNone":"Neniu","headersRow":"Unua linio","invalidBorder":"La bordergrando devas esti nombro.","invalidCellPadding":"La interna marĝeno en la ĉeloj devas esti pozitiva nombro.","invalidCellSpacing":"La spaco inter la ĉeloj devas esti pozitiva nombro.","invalidCols":"La nombro de la kolumnoj devas superi 0.","invalidHeight":"La tabelalto devas esti nombro.","invalidRows":"La nombro de la linioj devas superi 0.","invalidWidth":"La tabellarĝo devas esti nombro.","menu":"Atributoj de Tabelo","row":{"menu":"Linio","insertBefore":"Enmeti linion antaŭ","insertAfter":"Enmeti linion post","deleteRow":"Forigi Liniojn"},"rows":"Linioj","summary":"Resumo","title":"Atributoj de Tabelo","toolbar":"Tabelo","widthPc":"elcentoj","widthPx":"Rastrumeroj","widthUnit":"unuo de larĝo"},"undo":{"redo":"Refari","undo":"Malfari"},"wsc":{"btnIgnore":"Ignori","btnIgnoreAll":"Ignori Ĉion","btnReplace":"Anstataŭigi","btnReplaceAll":"Anstataŭigi Ĉion","btnUndo":"Malfari","changeTo":"Ŝanĝi al","errorLoading":"Eraro en la servoelŝuto el la gastiga komputiko: %s.","ieSpellDownload":"Ortografikontrolilo ne instalita. Ĉu vi volas elŝuti ĝin nun?","manyChanges":"Ortografikontrolado finita: %1 vortoj korektitaj","noChanges":"Ortografikontrolado finita: neniu vorto korektita","noMispell":"Ortografikontrolado finita: neniu eraro trovita","noSuggestions":"- Neniu propono -","notAvailable":"Bedaŭrinde la servo ne funkcias nuntempe.","notInDic":"Ne trovita en la vortaro","oneChange":"Ortografikontrolado finita: unu vorto korektita","progress":"La ortografio estas kontrolata...","title":"Kontroli la ortografion","toolbar":"Kontroli la ortografion"}}; \ No newline at end of file diff --git a/admin/plugins/ckeditor/lang/es-mx.js b/admin/plugins/ckeditor/lang/es-mx.js deleted file mode 100644 index 2da2ed1..0000000 --- a/admin/plugins/ckeditor/lang/es-mx.js +++ /dev/null @@ -1,5 +0,0 @@ -/* -Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. -For licensing, see LICENSE.md or http://ckeditor.com/license -*/ -CKEDITOR.lang['es-mx']={"editor":"Editor de texto enriquecido","editorPanel":"Panel del editor de texto","common":{"editorHelp":"Presiona ALT + 0 para ayuda","browseServer":"Examinar servidor","url":"URL","protocol":"Protocolo","upload":"Subir","uploadSubmit":"Enviar al servidor","image":"Imagen","flash":"Flash","form":"Formulario","checkbox":"Casilla de verificación","radio":"Botón de opción","textField":"Campo de texto","textarea":"Área de texto","hiddenField":"Campo oculto","button":"Botón","select":"Campo de selección","imageButton":"Botón de imagen","notSet":"<not set>","id":"Id","name":"Nombre","langDir":"Dirección de idiomas","langDirLtr":"Izquierda a derecha (LTR)","langDirRtl":"Derecha a izquierda (RTL)","langCode":"Código de lenguaje","longDescr":"URL descripción larga","cssClass":"Clases de hoja de estilo","advisoryTitle":"Título del anuncio","cssStyle":"Estilo","ok":"OK","cancel":"Cancelar","close":"Cerrar","preview":"Vista previa","resize":"Redimensionar","generalTab":"General","advancedTab":"Avanzada","validateNumberFailed":"Este valor no es un número.","confirmNewPage":"Se perderán todos los cambios no guardados en este contenido. ¿Seguro que quieres cargar nueva página?","confirmCancel":"Ha cambiado algunas opciones. ¿Está seguro de que desea cerrar la ventana de diálogo?","options":"Opciones","target":"Objetivo","targetNew":"Nueva ventana (_blank)","targetTop":"Ventana superior (_top)","targetSelf":"Misma ventana (_self)","targetParent":"Ventana principal (_parent)","langDirLTR":"Izquierda a Derecha (LTR)","langDirRTL":"Derecha a Izquierda (RTL)","styles":"Estilo","cssClasses":"Clases de hojas de estilo","width":"Ancho","height":"Alto","align":"Alineación","alignLeft":"Izquierda","alignRight":"Derecha","alignCenter":"Centrado","alignJustify":"Justificado","alignTop":"Arriba","alignMiddle":"En medio","alignBottom":"Abajo","alignNone":"Ninguno","invalidValue":"Valor inválido","invalidHeight":"La altura debe ser un número.","invalidWidth":"La anchura debe ser un número.","invalidCssLength":"El valor especificado para el campo \"% 1\" debe ser un número positivo con o sin una unidad de medida CSS válida (px, %, in, cm, mm, em, ex, pt, or pc).","invalidHtmlLength":"El valor especificado para el campo \"% 1\" debe ser un número positivo con o sin una unidad de medición HTML válida (px or %).","invalidInlineStyle":"El valor especificado para el estilo en línea debe constar de una o más tuplas con el formato de \"nombre: valor\", separados por punto y coma","cssLengthTooltip":"Introduzca un número para un valor en píxeles o un número con una unidad CSS válida (px, %, in, cm, mm, em, ex, pt, or pc).","unavailable":"%1<span class=\"cke_accessibility\">, no disponible</span>","keyboard":{"8":"Retroceso","13":"Intro","16":"Shift","17":"Ctrl","18":"Alt","32":"Espacio","35":"Fin","36":"Inicio","46":"Borrar","224":"Comando"},"keyboardShortcut":"Atajo de teclado"},"about":{"copy":"Derechos reservados &copy; $1. Todos los derechos reservados","dlgTitle":"Acerca de CKEditor","help":"Revisa $1 para ayuda.","moreInfo":"Para información sobre la licencia por favor visita nuestro sitio web:","title":"Acerca de CKEditor","userGuide":"Guía de Usuario CKEditor"},"basicstyles":{"bold":"Negrita","italic":"Cursiva","strike":"Tachado","subscript":"subíndice","superscript":"Sobrescrito","underline":"Subrayada"},"blockquote":{"toolbar":"Entrecomillado"},"notification":{"closed":"Notificación cerrada."},"button":{"selectedLabel":"%1 (Seleccionado)"},"toolbar":{"toolbarCollapse":"Colapsar barra de herramientas","toolbarExpand":"Expandir barra de herramientas","toolbarGroups":{"document":"Documento","clipboard":"Portapapeles/deshacer","editing":"Editando","forms":"Formularios","basicstyles":"Estilo básico","paragraph":"Párrafo","links":"Enlaces","insert":"Insertar","styles":"Estilos","colors":"Colores","tools":"Herramientas"},"toolbars":"Editor de barra de herramientas"},"clipboard":{"copy":"Copiar","copyError":"La configuración de seguridad de su navegador no permite al editor ejecutar automáticamente operaciones de copiado. Por favor, utilice el teclado para (Ctrl/Cmd+C).","cut":"Cortar","cutError":"La configuración de seguridad de su navegador no permite al editor ejecutar automáticamente operaciones de corte. Por favor, utilice el teclado para (Ctrl/Cmd+X).","paste":"Pegar","pasteNotification":"Tu navegador no permite pegar de esta manera. Presiona %1 para pegar."},"contextmenu":{"options":"Opciones del menú contextual"},"elementspath":{"eleLabel":"Ruta de los elementos","eleTitle":"%1 elemento"},"format":{"label":"Formato","panelTitle":"Formato de párrafo","tag_address":"Dirección","tag_div":"Normal (DIV)","tag_h1":"Encabezado 1","tag_h2":"Encabezado 2","tag_h3":"Encabezado 3","tag_h4":"Encabezado 4","tag_h5":"Encabezado 5","tag_h6":"Encabezado 6","tag_p":"Normal","tag_pre":"Formateado"},"horizontalrule":{"toolbar":"Insertar una línea horizontal"},"image":{"alt":"Texto alternativo","border":"Borde","btnUpload":"Enviar al servidor","button2Img":"¿Desea transformar el botón de imagen seleccionado en una imagen simple?","hSpace":"Espacio horizontal","img2Button":"¿Desea transformar la imagen seleccionada en un botón de imagen?","infoTab":"Información de imagen","linkTab":"Enlace","lockRatio":"Bloquear aspecto","menu":"Propiedades de la imagen","resetSize":"Reiniciar tamaño","title":"Propiedades de la imagen","titleButton":"Propiedades del botón de imagen","upload":"Cargar","urlMissing":"Falta la URL de origen de la imagen.","vSpace":"Espacio vertical","validateBorder":"El borde debe ser un número entero.","validateHSpace":"El espacio horizontal debe ser un número entero.","validateVSpace":"El espacio vertical debe ser un número entero."},"indent":{"indent":"Incrementar sangría","outdent":"Decrementar sangría"},"fakeobjects":{"anchor":"Ancla","flash":"Animación flash","hiddenfield":"Campo oculto","iframe":"IFrame","unknown":"Objeto desconocido"},"link":{"acccessKey":"Llave de acceso","advanced":"Avanzada","advisoryContentType":"Tipo de contenido consultivo","advisoryTitle":"Título asesor","anchor":{"toolbar":"Ancla","menu":"Editar ancla","title":"Propiedades del ancla","name":"Nombre del ancla","errorName":"Escriba el nombre del ancla","remove":"Remover ancla"},"anchorId":"Por Id del elemento","anchorName":"Por nombre del ancla","charset":"Recurso relacionado Charset","cssClasses":"Clases de estilo de hoja","download":"Forzar la descarga","displayText":"Mostrar texto","emailAddress":"Dirección de correo electrónico","emailBody":"Cuerpo del mensaje","emailSubject":"Asunto del mensaje","id":"Id","info":"Información del enlace","langCode":"Código del idioma","langDir":"Dirección del idioma","langDirLTR":"Izquierda a Derecha (LTR)","langDirRTL":"Derecha a Izquierda (RTL)","menu":"Editar enlace","name":"Nombre","noAnchors":"(No hay anclas disponibles en el documento)","noEmail":"Escriba la dirección de correo electrónico","noUrl":"Escriba la URL del enlace","other":"<other>","popupDependent":"Dependiente (Netscape)","popupFeatures":"Ventana emergente","popupFullScreen":"Pantalla completa (IE)","popupLeft":"Posición Izquierda","popupLocationBar":"Ubicación de la barra","popupMenuBar":"Barra de menú","popupResizable":"Redimensionable","popupScrollBars":"Barras de desplazamiento","popupStatusBar":"Barra de estado","popupToolbar":"Barra de herramienta","popupTop":"Posición superior","rel":"Relación","selectAnchor":"Selecciona un ancla","styles":"Estilo","tabIndex":"Indice de tabulación","target":"Objetivo","targetFrame":"<frame>","targetFrameName":"Nombre del marco de destino","targetPopup":"<popup window>","targetPopupName":"Nombre de ventana emergente","title":"Enlace","toAnchor":"Enlace al ancla en el texto","toEmail":"Correo electrónico","toUrl":"URL","toolbar":"Enlace","type":"Tipo de enlace","unlink":"Desconectar","upload":"Subir"},"list":{"bulletedlist":"Insertar/Remover Lista con viñetas","numberedlist":"Insertar/Remover Lista numerada"},"magicline":{"title":"Insertar un párrafo aquí"},"maximize":{"maximize":"Maximizar","minimize":"Minimizar"},"pastetext":{"button":"Pegar como texto plano","pasteNotification":"Su navegador no permite esta forma de pegar texto plano. Presiona %1 para pegar."},"pastefromword":{"confirmCleanup":"El texto que desea pegar parece estar copiado de Word. ¿Quieres limpiarlo antes de pegarlo?","error":"No fue posible limpiar los datos pegados debido a un error interno","title":"Pegar desde word","toolbar":"Pegar desde word"},"removeformat":{"toolbar":"Remover formato"},"sourcearea":{"toolbar":"Fuente"},"specialchar":{"options":"Opciones de carácteres especiales","title":"Seleccione un carácter especial","toolbar":"Inserta un carácter especial"},"scayt":{"btn_about":"About SCAYT","btn_dictionaries":"Dictionaries","btn_disable":"Disable SCAYT","btn_enable":"Enable SCAYT","btn_langs":"Languages","btn_options":"Options","text_title":"Spell Check As You Type"},"stylescombo":{"label":"Estilos","panelTitle":"Estilos de formatos","panelTitle1":"Estilos de bloques","panelTitle2":"Estilos de líneas","panelTitle3":"Estilo de objetos"},"table":{"border":"Tamaño del borde","caption":"Subtítulo","cell":{"menu":"Celda","insertBefore":"Insertar una celda antes","insertAfter":"Insertar una celda despues","deleteCell":"Borrar celdas","merge":"Unir celdas","mergeRight":"Unir a la derecha","mergeDown":"Unir abajo","splitHorizontal":"Dividir celda horizontalmente","splitVertical":"Dividir celda verticalmente","title":"Propiedades de la celda","cellType":"Tipo de celda","rowSpan":"Extensión de las filas","colSpan":"Extensión de las columnas","wordWrap":"Ajuste de línea","hAlign":"Alineación horizontal","vAlign":"Alineación vertical","alignBaseline":"Base","bgColor":"Color de fondo","borderColor":"Color de borde","data":"Datos","header":"Encabezado","yes":"Si","no":"No","invalidWidth":"El ancho de la celda debe ser un número entero.","invalidHeight":"El alto de la celda debe ser un número entero.","invalidRowSpan":"El intervalo de filas debe ser un número entero.","invalidColSpan":"El intervalo de columnas debe ser un número entero.","chooseColor":"Escoger"},"cellPad":"relleno de celda","cellSpace":"Espacio de celda","column":{"menu":"Columna","insertBefore":"Insertar columna antes","insertAfter":"Insertar columna después","deleteColumn":"Borrar columnas"},"columns":"Columnas","deleteTable":"Borrar tabla","headers":"Encabezados","headersBoth":"Ambos","headersColumn":"Primera columna","headersNone":"Ninguna","headersRow":"Primera fila","invalidBorder":"El tamaño del borde debe ser un número entero.","invalidCellPadding":"El relleno de la celda debe ser un número positivo.","invalidCellSpacing":"El espacio de la celda debe ser un número positivo.","invalidCols":"El número de columnas debe ser un número mayo que 0.","invalidHeight":"La altura de la tabla debe ser un número.","invalidRows":"El número de filas debe ser mayor a 0.","invalidWidth":"El ancho de la tabla debe ser un número.","menu":"Propiedades de la tabla","row":{"menu":"Fila","insertBefore":"Inserta una fila antes","insertAfter":"Inserta una fila después","deleteRow":"Borrar filas"},"rows":"Filas","summary":"Resumen","title":"Propiedades de la tabla","toolbar":"Tabla","widthPc":"porcentaje","widthPx":"pixeles","widthUnit":"Unidad de ancho"},"undo":{"redo":"Rehacer","undo":"Deshacer"},"wsc":{"btnIgnore":"Ignore","btnIgnoreAll":"Ignore All","btnReplace":"Replace","btnReplaceAll":"Replace All","btnUndo":"Undo","changeTo":"Change to","errorLoading":"Error loading application service host: %s.","ieSpellDownload":"Spell checker not installed. Do you want to download it now?","manyChanges":"Spell check complete: %1 words changed","noChanges":"Spell check complete: No words changed","noMispell":"Spell check complete: No misspellings found","noSuggestions":"- No suggestions -","notAvailable":"Sorry, but service is unavailable now.","notInDic":"Not in dictionary","oneChange":"Spell check complete: One word changed","progress":"Spell check in progress...","title":"Spell Checker","toolbar":"Check Spelling"}}; \ No newline at end of file diff --git a/admin/plugins/ckeditor/lang/es.js b/admin/plugins/ckeditor/lang/es.js deleted file mode 100644 index 9ff384b..0000000 --- a/admin/plugins/ckeditor/lang/es.js +++ /dev/null @@ -1,5 +0,0 @@ -/* -Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. -For licensing, see LICENSE.md or http://ckeditor.com/license -*/ -CKEDITOR.lang['es']={"editor":"Editor de texto enriquecido","editorPanel":"Panel del Editor de Texto Enriquecido","common":{"editorHelp":"Pulse ALT 0 para ayuda","browseServer":"Ver Servidor","url":"URL","protocol":"Protocolo","upload":"Cargar","uploadSubmit":"Enviar al Servidor","image":"Imagen","flash":"Flash","form":"Formulario","checkbox":"Casilla de Verificación","radio":"Botones de Radio","textField":"Campo de Texto","textarea":"Area de Texto","hiddenField":"Campo Oculto","button":"Botón","select":"Campo de Selección","imageButton":"Botón Imagen","notSet":"<No definido>","id":"Id","name":"Nombre","langDir":"Orientación","langDirLtr":"Izquierda a Derecha (LTR)","langDirRtl":"Derecha a Izquierda (RTL)","langCode":"Cód. de idioma","longDescr":"Descripción larga URL","cssClass":"Clases de hojas de estilo","advisoryTitle":"Título","cssStyle":"Estilo","ok":"Aceptar","cancel":"Cancelar","close":"Cerrar","preview":"Previsualización","resize":"Arrastre para redimensionar","generalTab":"General","advancedTab":"Avanzado","validateNumberFailed":"El valor no es un número.","confirmNewPage":"Cualquier cambio que no se haya guardado se perderá.\r\n¿Está seguro de querer crear una nueva página?","confirmCancel":"Algunas de las opciones se han cambiado.\r\n¿Está seguro de querer cerrar el diálogo?","options":"Opciones","target":"Destino","targetNew":"Nueva ventana (_blank)","targetTop":"Ventana principal (_top)","targetSelf":"Misma ventana (_self)","targetParent":"Ventana padre (_parent)","langDirLTR":"Izquierda a derecha (LTR)","langDirRTL":"Derecha a izquierda (RTL)","styles":"Estilos","cssClasses":"Clase de la hoja de estilos","width":"Anchura","height":"Altura","align":"Alineación","alignLeft":"Izquierda","alignRight":"Derecha","alignCenter":"Centrado","alignJustify":"Justificado","alignTop":"Tope","alignMiddle":"Centro","alignBottom":"Pie","alignNone":"Ninguno","invalidValue":"Valor no válido","invalidHeight":"Altura debe ser un número.","invalidWidth":"Anchura debe ser un número.","invalidCssLength":"El valor especificado para el campo \"%1\" debe ser un número positivo, incluyendo optionalmente una unidad de medida CSS válida (px, %, in, cm, mm, em, ex, pt, o pc).","invalidHtmlLength":"El valor especificado para el campo \"%1\" debe ser un número positivo, incluyendo optionalmente una unidad de medida HTML válida (px o %).","invalidInlineStyle":"El valor especificado para el estilo debe consistir en uno o más pares con el formato \"nombre: valor\", separados por punto y coma.","cssLengthTooltip":"Introduca un número para el valor en pixels o un número con una unidad de medida CSS válida (px, %, in, cm, mm, em, ex, pt, o pc).","unavailable":"%1<span class=\"cke_accessibility\">, no disponible</span>","keyboard":{"8":"Retroceso","13":"Ingresar","16":"Mayús.","17":"Ctrl","18":"Alt","32":"Space","35":"Fin","36":"Inicio","46":"Suprimir","224":"Command"},"keyboardShortcut":"Keyboard shortcut"},"about":{"copy":"Copyright &copy; $1. Todos los derechos reservados.","dlgTitle":"Acerca de CKEditor","help":"Lea la $1 para resolver sus dudas.","moreInfo":"Para información de licencia, por favor visite nuestro sitio web:","title":"Acerca de CKEditor","userGuide":"Guía de usuario de CKEditor"},"basicstyles":{"bold":"Negrita","italic":"Cursiva","strike":"Tachado","subscript":"Subíndice","superscript":"Superíndice","underline":"Subrayado"},"blockquote":{"toolbar":"Cita"},"notification":{"closed":"Notificación cerrada."},"button":{"selectedLabel":"%1 (Seleccionado)"},"toolbar":{"toolbarCollapse":"Contraer barra de herramientas","toolbarExpand":"Expandir barra de herramientas","toolbarGroups":{"document":"Documento","clipboard":"Portapapeles/Deshacer","editing":"Edición","forms":"Formularios","basicstyles":"Estilos básicos","paragraph":"Párrafo","links":"Enlaces","insert":"Insertar","styles":"Estilos","colors":"Colores","tools":"Herramientas"},"toolbars":"Barras de herramientas del editor"},"clipboard":{"copy":"Copiar","copyError":"La configuración de seguridad de este navegador no permite la ejecución automática de operaciones de copiado.\r\nPor favor use el teclado (Ctrl/Cmd+C).","cut":"Cortar","cutError":"La configuración de seguridad de este navegador no permite la ejecución automática de operaciones de cortado.\r\nPor favor use el teclado (Ctrl/Cmd+X).","paste":"Pegar","pasteNotification":"Your browser doesn't allow you to paste this way. Press %1 to paste."},"contextmenu":{"options":"Opciones del menú contextual"},"elementspath":{"eleLabel":"Ruta de los elementos","eleTitle":"%1 elemento"},"format":{"label":"Formato","panelTitle":"Formato","tag_address":"Dirección","tag_div":"Normal (DIV)","tag_h1":"Encabezado 1","tag_h2":"Encabezado 2","tag_h3":"Encabezado 3","tag_h4":"Encabezado 4","tag_h5":"Encabezado 5","tag_h6":"Encabezado 6","tag_p":"Normal","tag_pre":"Con formato"},"horizontalrule":{"toolbar":"Insertar Línea Horizontal"},"image":{"alt":"Texto Alternativo","border":"Borde","btnUpload":"Enviar al Servidor","button2Img":"¿Desea convertir el botón de imagen en una simple imagen?","hSpace":"Esp.Horiz","img2Button":"¿Desea convertir la imagen en un botón de imagen?","infoTab":"Información de Imagen","linkTab":"Vínculo","lockRatio":"Proporcional","menu":"Propiedades de Imagen","resetSize":"Tamaño Original","title":"Propiedades de Imagen","titleButton":"Propiedades de Botón de Imagen","upload":"Cargar","urlMissing":"Debe indicar la URL de la imagen.","vSpace":"Esp.Vert","validateBorder":"El borde debe ser un número.","validateHSpace":"El espaciado horizontal debe ser un número.","validateVSpace":"El espaciado vertical debe ser un número."},"indent":{"indent":"Aumentar Sangría","outdent":"Disminuir Sangría"},"fakeobjects":{"anchor":"Ancla","flash":"Animación flash","hiddenfield":"Campo oculto","iframe":"IFrame","unknown":"Objeto desconocido"},"link":{"acccessKey":"Tecla de Acceso","advanced":"Avanzado","advisoryContentType":"Tipo de Contenido","advisoryTitle":"Título","anchor":{"toolbar":"Referencia","menu":"Propiedades de Referencia","title":"Propiedades de Referencia","name":"Nombre de la Referencia","errorName":"Por favor, complete el nombre de la Referencia","remove":"Quitar Referencia"},"anchorId":"Por ID de elemento","anchorName":"Por Nombre de Referencia","charset":"Fuente de caracteres vinculado","cssClasses":"Clases de hojas de estilo","download":"Force Download","displayText":"Display Text","emailAddress":"Dirección de E-Mail","emailBody":"Cuerpo del Mensaje","emailSubject":"Título del Mensaje","id":"Id","info":"Información de Vínculo","langCode":"Código idioma","langDir":"Orientación","langDirLTR":"Izquierda a Derecha (LTR)","langDirRTL":"Derecha a Izquierda (RTL)","menu":"Editar Vínculo","name":"Nombre","noAnchors":"(No hay referencias disponibles en el documento)","noEmail":"Por favor escriba la dirección de e-mail","noUrl":"Por favor escriba el vínculo URL","other":"<otro>","popupDependent":"Dependiente (Netscape)","popupFeatures":"Características de Ventana Emergente","popupFullScreen":"Pantalla Completa (IE)","popupLeft":"Posición Izquierda","popupLocationBar":"Barra de ubicación","popupMenuBar":"Barra de Menú","popupResizable":"Redimensionable","popupScrollBars":"Barras de desplazamiento","popupStatusBar":"Barra de Estado","popupToolbar":"Barra de Herramientas","popupTop":"Posición Derecha","rel":"Relación","selectAnchor":"Seleccionar una referencia","styles":"Estilo","tabIndex":"Indice de tabulación","target":"Destino","targetFrame":"<marco>","targetFrameName":"Nombre del Marco Destino","targetPopup":"<ventana emergente>","targetPopupName":"Nombre de Ventana Emergente","title":"Vínculo","toAnchor":"Referencia en esta página","toEmail":"E-Mail","toUrl":"URL","toolbar":"Insertar/Editar Vínculo","type":"Tipo de vínculo","unlink":"Eliminar Vínculo","upload":"Cargar"},"list":{"bulletedlist":"Viñetas","numberedlist":"Numeración"},"magicline":{"title":"Insertar párrafo aquí"},"maximize":{"maximize":"Maximizar","minimize":"Minimizar"},"pastetext":{"button":"Pegar como Texto Plano","pasteNotification":"Your browser does not allow you to paste plain text this way. Press %1 to paste."},"pastefromword":{"confirmCleanup":"El texto que desea parece provenir de Word.\r\n¿Desea depurarlo antes de pegarlo?","error":"No ha sido posible limpiar los datos debido a un error interno","title":"Pegar desde Word","toolbar":"Pegar desde Word"},"removeformat":{"toolbar":"Eliminar Formato"},"sourcearea":{"toolbar":"Fuente HTML"},"specialchar":{"options":"Opciones de caracteres especiales","title":"Seleccione un caracter especial","toolbar":"Insertar Caracter Especial"},"scayt":{"btn_about":"Acerca de Corrector","btn_dictionaries":"Diccionarios","btn_disable":"Desactivar Corrector","btn_enable":"Activar Corrector","btn_langs":"Idiomas","btn_options":"Opciones","text_title":"Comprobar Ortografía Mientras Escribe"},"stylescombo":{"label":"Estilo","panelTitle":"Estilos para formatear","panelTitle1":"Estilos de párrafo","panelTitle2":"Estilos de carácter","panelTitle3":"Estilos de objeto"},"table":{"border":"Tamaño de Borde","caption":"Título","cell":{"menu":"Celda","insertBefore":"Insertar celda a la izquierda","insertAfter":"Insertar celda a la derecha","deleteCell":"Eliminar Celdas","merge":"Combinar Celdas","mergeRight":"Combinar a la derecha","mergeDown":"Combinar hacia abajo","splitHorizontal":"Dividir la celda horizontalmente","splitVertical":"Dividir la celda verticalmente","title":"Propiedades de celda","cellType":"Tipo de Celda","rowSpan":"Expandir filas","colSpan":"Expandir columnas","wordWrap":"Ajustar al contenido","hAlign":"Alineación Horizontal","vAlign":"Alineación Vertical","alignBaseline":"Linea de base","bgColor":"Color de fondo","borderColor":"Color de borde","data":"Datos","header":"Encabezado","yes":"Sí","no":"No","invalidWidth":"La anchura de celda debe ser un número.","invalidHeight":"La altura de celda debe ser un número.","invalidRowSpan":"La expansión de filas debe ser un número entero.","invalidColSpan":"La expansión de columnas debe ser un número entero.","chooseColor":"Elegir"},"cellPad":"Esp. interior","cellSpace":"Esp. e/celdas","column":{"menu":"Columna","insertBefore":"Insertar columna a la izquierda","insertAfter":"Insertar columna a la derecha","deleteColumn":"Eliminar Columnas"},"columns":"Columnas","deleteTable":"Eliminar Tabla","headers":"Encabezados","headersBoth":"Ambas","headersColumn":"Primera columna","headersNone":"Ninguno","headersRow":"Primera fila","invalidBorder":"El tamaño del borde debe ser un número.","invalidCellPadding":"El espaciado interior debe ser un número.","invalidCellSpacing":"El espaciado entre celdas debe ser un número.","invalidCols":"El número de columnas debe ser un número mayor que 0.","invalidHeight":"La altura de tabla debe ser un número.","invalidRows":"El número de filas debe ser un número mayor que 0.","invalidWidth":"La anchura de tabla debe ser un número.","menu":"Propiedades de Tabla","row":{"menu":"Fila","insertBefore":"Insertar fila en la parte superior","insertAfter":"Insertar fila en la parte inferior","deleteRow":"Eliminar Filas"},"rows":"Filas","summary":"Síntesis","title":"Propiedades de Tabla","toolbar":"Tabla","widthPc":"porcentaje","widthPx":"pixeles","widthUnit":"unidad de la anchura"},"undo":{"redo":"Rehacer","undo":"Deshacer"},"wsc":{"btnIgnore":"Ignorar","btnIgnoreAll":"Ignorar Todo","btnReplace":"Reemplazar","btnReplaceAll":"Reemplazar Todo","btnUndo":"Deshacer","changeTo":"Cambiar a","errorLoading":"Error cargando la aplicación del servidor: %s.","ieSpellDownload":"Módulo de Control de Ortografía no instalado.\r\n¿Desea descargarlo ahora?","manyChanges":"Control finalizado: se ha cambiado %1 palabras","noChanges":"Control finalizado: no se ha cambiado ninguna palabra","noMispell":"Control finalizado: no se encontraron errores","noSuggestions":"- No hay sugerencias -","notAvailable":"Lo sentimos pero el servicio no está disponible.","notInDic":"No se encuentra en el Diccionario","oneChange":"Control finalizado: se ha cambiado una palabra","progress":"Control de Ortografía en progreso...","title":"Comprobar ortografía","toolbar":"Ortografía"}}; \ No newline at end of file diff --git a/admin/plugins/ckeditor/lang/et.js b/admin/plugins/ckeditor/lang/et.js deleted file mode 100644 index 60856c7..0000000 --- a/admin/plugins/ckeditor/lang/et.js +++ /dev/null @@ -1,5 +0,0 @@ -/* -Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. -For licensing, see LICENSE.md or http://ckeditor.com/license -*/ -CKEDITOR.lang['et']={"editor":"Rikkalik tekstiredaktor","editorPanel":"Rikkaliku tekstiredaktori paneel","common":{"editorHelp":"Abi saamiseks vajuta ALT 0","browseServer":"Serveri sirvimine","url":"URL","protocol":"Protokoll","upload":"Laadi üles","uploadSubmit":"Saada serverisse","image":"Pilt","flash":"Flash","form":"Vorm","checkbox":"Märkeruut","radio":"Raadionupp","textField":"Tekstilahter","textarea":"Tekstiala","hiddenField":"Varjatud lahter","button":"Nupp","select":"Valiklahter","imageButton":"Piltnupp","notSet":"<määramata>","id":"ID","name":"Nimi","langDir":"Keele suund","langDirLtr":"Vasakult paremale (LTR)","langDirRtl":"Paremalt vasakule (RTL)","langCode":"Keele kood","longDescr":"Pikk kirjeldus URL","cssClass":"Stiilistiku klassid","advisoryTitle":"Soovituslik pealkiri","cssStyle":"Laad","ok":"Olgu","cancel":"Loobu","close":"Sulge","preview":"Eelvaade","resize":"Suuruse muutmiseks lohista","generalTab":"Üldine","advancedTab":"Täpsemalt","validateNumberFailed":"See väärtus pole number.","confirmNewPage":"Kõik salvestamata muudatused lähevad kaotsi. Kas oled kindel, et tahad laadida uue lehe?","confirmCancel":"Mõned valikud on muudetud. Kas oled kindel, et tahad dialoogi sulgeda?","options":"Valikud","target":"Sihtkoht","targetNew":"Uus aken (_blank)","targetTop":"Kõige ülemine aken (_top)","targetSelf":"Sama aken (_self)","targetParent":"Vanemaken (_parent)","langDirLTR":"Vasakult paremale (LTR)","langDirRTL":"Paremalt vasakule (RTL)","styles":"Stiili","cssClasses":"Stiililehe klassid","width":"Laius","height":"Kõrgus","align":"Joondus","alignLeft":"Vasak","alignRight":"Paremale","alignCenter":"Kesk","alignJustify":"Rööpjoondus","alignTop":"Üles","alignMiddle":"Keskele","alignBottom":"Alla","alignNone":"None","invalidValue":"Vigane väärtus.","invalidHeight":"Kõrgus peab olema number.","invalidWidth":"Laius peab olema number.","invalidCssLength":"\"%1\" välja jaoks määratud väärtus peab olema positiivne täisarv CSS ühikuga (px, %, in, cm, mm, em, ex, pt või pc) või ilma.","invalidHtmlLength":"\"%1\" välja jaoks määratud väärtus peab olema positiivne täisarv HTML ühikuga (px või %) või ilma.","invalidInlineStyle":"Reasisese stiili määrangud peavad koosnema paarisväärtustest (tuples), mis on semikoolonitega eraldatult järgnevas vormingus: \"nimi : väärtus\".","cssLengthTooltip":"Sisesta väärtus pikslites või number koos sobiva CSS-i ühikuga (px, %, in, cm, mm, em, ex, pt või pc).","unavailable":"%1<span class=\"cke_accessibility\">, pole saadaval</span>","keyboard":{"8":"Backspace","13":"Enter","16":"Shift","17":"Ctrl","18":"Alt","32":"Space","35":"End","36":"Home","46":"Delete","224":"Command"},"keyboardShortcut":"Keyboard shortcut"},"about":{"copy":"Copyright &copy; $1. Kõik õigused kaitstud.","dlgTitle":"CKEditorist","help":"Abi jaoks vaata $1.","moreInfo":"Litsentsi andmed leiab meie veebilehelt:","title":"CKEditorist","userGuide":"CKEditori kasutusjuhendit"},"basicstyles":{"bold":"Paks","italic":"Kursiiv","strike":"Läbijoonitud","subscript":"Allindeks","superscript":"Ülaindeks","underline":"Allajoonitud"},"blockquote":{"toolbar":"Blokktsitaat"},"notification":{"closed":"Notification closed."},"button":{"selectedLabel":"%1 (Selected)"},"toolbar":{"toolbarCollapse":"Tööriistariba peitmine","toolbarExpand":"Tööriistariba näitamine","toolbarGroups":{"document":"Dokument","clipboard":"Lõikelaud/tagasivõtmine","editing":"Muutmine","forms":"Vormid","basicstyles":"Põhistiilid","paragraph":"Lõik","links":"Lingid","insert":"Sisesta","styles":"Stiilid","colors":"Värvid","tools":"Tööriistad"},"toolbars":"Redaktori tööriistaribad"},"clipboard":{"copy":"Kopeeri","copyError":"Sinu veebisirvija turvaseaded ei luba redaktoril automaatselt kopeerida. Palun kasutage selleks klaviatuuri klahvikombinatsiooni (Ctrl/Cmd+C).","cut":"Lõika","cutError":"Sinu veebisirvija turvaseaded ei luba redaktoril automaatselt lõigata. Palun kasutage selleks klaviatuuri klahvikombinatsiooni (Ctrl/Cmd+X).","paste":"Aseta","pasteNotification":"Your browser doesn't allow you to paste this way. Press %1 to paste."},"contextmenu":{"options":"Kontekstimenüü valikud"},"elementspath":{"eleLabel":"Elementide asukoht","eleTitle":"%1 element"},"format":{"label":"Vorming","panelTitle":"Vorming","tag_address":"Aadress","tag_div":"Tavaline (DIV)","tag_h1":"Pealkiri 1","tag_h2":"Pealkiri 2","tag_h3":"Pealkiri 3","tag_h4":"Pealkiri 4","tag_h5":"Pealkiri 5","tag_h6":"Pealkiri 6","tag_p":"Tavaline","tag_pre":"Vormindatud"},"horizontalrule":{"toolbar":"Horisontaaljoone sisestamine"},"image":{"alt":"Alternatiivne tekst","border":"Joon","btnUpload":"Saada serverisse","button2Img":"Kas tahad teisendada valitud pildiga nupu tavaliseks pildiks?","hSpace":"H. vaheruum","img2Button":"Kas tahad teisendada valitud tavalise pildi pildiga nupuks?","infoTab":"Pildi info","linkTab":"Link","lockRatio":"Lukusta kuvasuhe","menu":"Pildi omadused","resetSize":"Lähtesta suurus","title":"Pildi omadused","titleButton":"Piltnupu omadused","upload":"Lae üles","urlMissing":"Pildi lähte-URL on puudu.","vSpace":"V. vaheruum","validateBorder":"Äärise laius peab olema täisarv.","validateHSpace":"Horisontaalne vaheruum peab olema täisarv.","validateVSpace":"Vertikaalne vaheruum peab olema täisarv."},"indent":{"indent":"Taande suurendamine","outdent":"Taande vähendamine"},"fakeobjects":{"anchor":"Ankur","flash":"Flashi animatsioon","hiddenfield":"Varjatud väli","iframe":"IFrame","unknown":"Tundmatu objekt"},"link":{"acccessKey":"Juurdepääsu võti","advanced":"Täpsemalt","advisoryContentType":"Juhendava sisu tüüp","advisoryTitle":"Juhendav tiitel","anchor":{"toolbar":"Ankru sisestamine/muutmine","menu":"Ankru omadused","title":"Ankru omadused","name":"Ankru nimi","errorName":"Palun sisesta ankru nimi","remove":"Eemalda ankur"},"anchorId":"Elemendi id järgi","anchorName":"Ankru nime järgi","charset":"Lingitud ressursi märgistik","cssClasses":"Stiilistiku klassid","download":"Force Download","displayText":"Display Text","emailAddress":"E-posti aadress","emailBody":"Sõnumi tekst","emailSubject":"Sõnumi teema","id":"ID","info":"Lingi info","langCode":"Keele suund","langDir":"Keele suund","langDirLTR":"Vasakult paremale (LTR)","langDirRTL":"Paremalt vasakule (RTL)","menu":"Muuda linki","name":"Nimi","noAnchors":"(Selles dokumendis pole ankruid)","noEmail":"Palun kirjuta e-posti aadress","noUrl":"Palun kirjuta lingi URL","other":"<muu>","popupDependent":"Sõltuv (Netscape)","popupFeatures":"Hüpikakna omadused","popupFullScreen":"Täisekraan (IE)","popupLeft":"Vasak asukoht","popupLocationBar":"Aadressiriba","popupMenuBar":"Menüüriba","popupResizable":"Suurust saab muuta","popupScrollBars":"Kerimisribad","popupStatusBar":"Olekuriba","popupToolbar":"Tööriistariba","popupTop":"Ülemine asukoht","rel":"Suhe","selectAnchor":"Vali ankur","styles":"Laad","tabIndex":"Tab indeks","target":"Sihtkoht","targetFrame":"<raam>","targetFrameName":"Sihtmärk raami nimi","targetPopup":"<hüpikaken>","targetPopupName":"Hüpikakna nimi","title":"Link","toAnchor":"Ankur sellel lehel","toEmail":"E-post","toUrl":"URL","toolbar":"Lingi lisamine/muutmine","type":"Lingi liik","unlink":"Lingi eemaldamine","upload":"Lae üles"},"list":{"bulletedlist":"Punktloend","numberedlist":"Numberloend"},"magicline":{"title":"Sisesta siia lõigu tekst"},"maximize":{"maximize":"Maksimeerimine","minimize":"Minimeerimine"},"pastetext":{"button":"Asetamine tavalise tekstina","pasteNotification":"Your browser does not allow you to paste plain text this way. Press %1 to paste."},"pastefromword":{"confirmCleanup":"Tekst, mida tahad asetada näib pärinevat Wordist. Kas tahad selle enne asetamist puhastada?","error":"Asetatud andmete puhastamine ei olnud sisemise vea tõttu võimalik","title":"Asetamine Wordist","toolbar":"Asetamine Wordist"},"removeformat":{"toolbar":"Vormingu eemaldamine"},"sourcearea":{"toolbar":"Lähtekood"},"specialchar":{"options":"Erimärkide valikud","title":"Erimärgi valimine","toolbar":"Erimärgi sisestamine"},"scayt":{"btn_about":"SCAYT-ist lähemalt","btn_dictionaries":"Sõnaraamatud","btn_disable":"SCAYT keelatud","btn_enable":"SCAYT lubatud","btn_langs":"Keeled","btn_options":"Valikud","text_title":"Õigekirjakontroll kirjutamise ajal"},"stylescombo":{"label":"Stiil","panelTitle":"Vormindusstiilid","panelTitle1":"Blokkstiilid","panelTitle2":"Reasisesed stiilid","panelTitle3":"Objektistiilid"},"table":{"border":"Joone suurus","caption":"Tabeli tiitel","cell":{"menu":"Lahter","insertBefore":"Sisesta lahter enne","insertAfter":"Sisesta lahter peale","deleteCell":"Eemalda lahtrid","merge":"Ühenda lahtrid","mergeRight":"Ühenda paremale","mergeDown":"Ühenda alla","splitHorizontal":"Poolita lahter horisontaalselt","splitVertical":"Poolita lahter vertikaalselt","title":"Lahtri omadused","cellType":"Lahtri liik","rowSpan":"Ridade vahe","colSpan":"Tulpade vahe","wordWrap":"Sõnade murdmine","hAlign":"Horisontaalne joondus","vAlign":"Vertikaalne joondus","alignBaseline":"Baasjoon","bgColor":"Tausta värv","borderColor":"Äärise värv","data":"Andmed","header":"Päis","yes":"Jah","no":"Ei","invalidWidth":"Lahtri laius peab olema number.","invalidHeight":"Lahtri kõrgus peab olema number.","invalidRowSpan":"Ridade vahe peab olema täisarv.","invalidColSpan":"Tulpade vahe peab olema täisarv.","chooseColor":"Vali"},"cellPad":"Lahtri täidis","cellSpace":"Lahtri vahe","column":{"menu":"Veerg","insertBefore":"Sisesta veerg enne","insertAfter":"Sisesta veerg peale","deleteColumn":"Eemalda veerud"},"columns":"Veerud","deleteTable":"Kustuta tabel","headers":"Päised","headersBoth":"Mõlemad","headersColumn":"Esimene tulp","headersNone":"Puudub","headersRow":"Esimene rida","invalidBorder":"Äärise suurus peab olema number.","invalidCellPadding":"Lahtrite polsterdus (padding) peab olema positiivne arv.","invalidCellSpacing":"Lahtrite vahe peab olema positiivne arv.","invalidCols":"Tulpade arv peab olema nullist suurem.","invalidHeight":"Tabeli kõrgus peab olema number.","invalidRows":"Ridade arv peab olema nullist suurem.","invalidWidth":"Tabeli laius peab olema number.","menu":"Tabeli omadused","row":{"menu":"Rida","insertBefore":"Sisesta rida enne","insertAfter":"Sisesta rida peale","deleteRow":"Eemalda read"},"rows":"Read","summary":"Kokkuvõte","title":"Tabeli omadused","toolbar":"Tabel","widthPc":"protsenti","widthPx":"pikslit","widthUnit":"laiuse ühik"},"undo":{"redo":"Toimingu kordamine","undo":"Tagasivõtmine"},"wsc":{"btnIgnore":"Ignoreeri","btnIgnoreAll":"Ignoreeri kõiki","btnReplace":"Asenda","btnReplaceAll":"Asenda kõik","btnUndo":"Võta tagasi","changeTo":"Muuda","errorLoading":"Viga rakenduse teenushosti laadimisel: %s.","ieSpellDownload":"Õigekirja kontrollija ei ole paigaldatud. Soovid sa selle alla laadida?","manyChanges":"Õigekirja kontroll sooritatud: %1 sõna muudetud","noChanges":"Õigekirja kontroll sooritatud: ühtegi sõna ei muudetud","noMispell":"Õigekirja kontroll sooritatud: õigekirjuvigu ei leitud","noSuggestions":"- Soovitused puuduvad -","notAvailable":"Kahjuks ei ole teenus praegu saadaval.","notInDic":"Puudub sõnastikust","oneChange":"Õigekirja kontroll sooritatud: üks sõna muudeti","progress":"Toimub õigekirja kontroll...","title":"Õigekirjakontroll","toolbar":"Õigekirjakontroll"}}; \ No newline at end of file diff --git a/admin/plugins/ckeditor/lang/eu.js b/admin/plugins/ckeditor/lang/eu.js deleted file mode 100644 index 019c1d2..0000000 --- a/admin/plugins/ckeditor/lang/eu.js +++ /dev/null @@ -1,5 +0,0 @@ -/* -Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. -For licensing, see LICENSE.md or http://ckeditor.com/license -*/ -CKEDITOR.lang['eu']={"editor":"Testu aberastuaren editorea","editorPanel":"Testu aberastuaren editorearen panela","common":{"editorHelp":"Sakatu ALT 0 laguntza jasotzeko","browseServer":"Arakatu zerbitzaria","url":"URLa","protocol":"Protokoloa","upload":"Kargatu","uploadSubmit":"Bidali zerbitzarira","image":"Irudia","flash":"Flash","form":"Formularioa","checkbox":"Kontrol-laukia","radio":"Aukera-botoia","textField":"Testu-eremua","textarea":"Testu-area","hiddenField":"Ezkutuko eremua","button":"Botoia","select":"Hautespen-eremua","imageButton":"Irudi-botoia","notSet":"<ezarri gabe>","id":"Id","name":"Izena","langDir":"Hizkuntzaren norabidea","langDirLtr":"Ezkerretik eskuinera (LTR)","langDirRtl":"Eskuinetik ezkerrera (RTL)","langCode":"Hizkuntzaren kodea","longDescr":"URLaren deskribapen luzea","cssClass":"Estilo-orriko klaseak","advisoryTitle":"Aholkatutako izenburua","cssStyle":"Estiloa","ok":"Ados","cancel":"Utzi","close":"Itxi","preview":"Aurrebista","resize":"Aldatu tamainaz","generalTab":"Orokorra","advancedTab":"Aurreratua","validateNumberFailed":"Balio hau ez da zenbaki bat.","confirmNewPage":"Eduki honetan gorde gabe dauden aldaketak galduko dira. Ziur zaude orri berri bat kargatu nahi duzula?","confirmCancel":"Aukera batzuk aldatu dituzu. Ziur zaude elkarrizketa-koadroa itxi nahi duzula?","options":"Aukerak","target":"Helburua","targetNew":"Leiho berria (_blank)","targetTop":"Goieneko leihoan (_top)","targetSelf":"Leiho berean (_self)","targetParent":"Leiho gurasoan (_parent)","langDirLTR":"Ezkerretik eskuinera (LTR)","langDirRTL":"Eskuinetik ezkerrera (RTL)","styles":"Estiloa","cssClasses":"Estilo-orriko klaseak","width":"Zabalera","height":"Altuera","align":"Lerrokatzea","alignLeft":"Ezkerrean","alignRight":"Eskuinean","alignCenter":"Erdian","alignJustify":"Justifikatu","alignTop":"Goian","alignMiddle":"Erdian","alignBottom":"Behean","alignNone":"Bat ere ez","invalidValue":"Balio desegokia.","invalidHeight":"Altuera zenbaki bat izan behar da.","invalidWidth":"Zabalera zenbaki bat izan behar da.","invalidCssLength":"\"%1\" eremurako zehaztutako balioak zenbaki positibo bat izan behar du, CSS neurri unitate batekin edo gabe (px, %, in, cm, mm, em, ex, pt edo pc).","invalidHtmlLength":"\"%1\" eremurako zehaztutako balioak zenbaki positibo bat izan behar du, HTML neurri unitate batekin edo gabe (px edo %).","invalidInlineStyle":"Lineako estiloan zehaztutako balioak \"izen : balio\" formatuko tupla bat edo gehiago izan behar dira, komaz bereiztuak.","cssLengthTooltip":"Sartu zenbaki bat edo zenbaki bat baliozko CSS unitate batekin (px, %, in, cm, mm, em, ex, pt, edo pc).","unavailable":"%1<span class=\"cke_accessibility\">, erabilezina</span>","keyboard":{"8":"Backspace","13":"Sartu","16":"Maius","17":"Ktrl","18":"Alt","32":"Space","35":"Buka","36":"Etxea","46":"Ezabatu","224":"Command"},"keyboardShortcut":"Keyboard shortcut"},"about":{"copy":"Copyright &copy; $1. Eskubide guztiak erreserbaturik.","dlgTitle":"CKEditor-i buruz","help":"Begiratu $1 laguntzarako.","moreInfo":"Lizentziari buruzko informazioa gure webgunean:","title":"CKEditor-i buruz","userGuide":"CKEditor-en erabiltzaile-gida"},"basicstyles":{"bold":"Lodia","italic":"Etzana","strike":"Marratua","subscript":"Azpi-indizea","superscript":"Goi-indizea","underline":"Azpimarratu"},"blockquote":{"toolbar":"Aipamen blokea"},"notification":{"closed":"Jakinarazpena itxita."},"button":{"selectedLabel":"%1 (hautatuta)"},"toolbar":{"toolbarCollapse":"Tolestu tresna-barra","toolbarExpand":"Zabaldu tresna-barra","toolbarGroups":{"document":"Dokumentua","clipboard":"Arbela/Desegin","editing":"Editatu","forms":"Formularioak","basicstyles":"Oinarrizko estiloak","paragraph":"Paragrafoa","links":"Estekak","insert":"Txertatu","styles":"Estiloak","colors":"Koloreak","tools":"Tresnak"},"toolbars":"Editorearen tresna-barrak"},"clipboard":{"copy":"Kopiatu","copyError":"Zure web nabigatzailearen segurtasun ezarpenek ez dute baimentzen testuak automatikoki kopiatzea. Mesedez teklatua erabil ezazu (Ctrl/Cmd+C).","cut":"Ebaki","cutError":"Zure web nabigatzailearen segurtasun ezarpenek ez dute baimentzen testuak automatikoki moztea. Mesedez teklatua erabil ezazu (Ctrl/Cmd+X).","paste":"Itsatsi","pasteNotification":"Your browser doesn't allow you to paste this way. Press %1 to paste."},"contextmenu":{"options":"Testuinguru-menuaren aukerak"},"elementspath":{"eleLabel":"Elementuen bidea","eleTitle":"%1 elementua"},"format":{"label":"Formatua","panelTitle":"Paragrafoaren formatua","tag_address":"Helbidea","tag_div":"Normala (DIV)","tag_h1":"Izenburua 1","tag_h2":"Izenburua 2","tag_h3":"Izenburua 3","tag_h4":"Izenburua 4","tag_h5":"Izenburua 5","tag_h6":"Izenburua 6","tag_p":"Normala","tag_pre":"Formatuduna"},"horizontalrule":{"toolbar":"Txertatu marra horizontala"},"image":{"alt":"Ordezko testua","border":"Ertza","btnUpload":"Bidali zerbitzarira","button2Img":"Hautatutako irudi-botoia irudi arrunt bihurtu nahi duzu?","hSpace":"HSpace","img2Button":"Hautatutako irudia irudi-botoi bihurtu nahi duzu?","infoTab":"Irudiaren informazioa","linkTab":"Esteka","lockRatio":"Blokeatu erlazioa","menu":"Irudiaren propietateak","resetSize":"Berrezarri tamaina","title":"Irudiaren propietateak","titleButton":"Irudi-botoiaren propietateak","upload":"Kargatu","urlMissing":"Irudiaren iturburuaren URLa falta da.","vSpace":"VSpace","validateBorder":"Ertza zenbaki oso bat izan behar da.","validateHSpace":"HSpace zenbaki oso bat izan behar da.","validateVSpace":"VSpace zenbaki oso bat izan behar da."},"indent":{"indent":"Handitu koska","outdent":"Txikitu koska"},"fakeobjects":{"anchor":"Aingura","flash":"Flash animazioa","hiddenfield":"Ezkutuko eremua","iframe":"IFrame-a","unknown":"Objektu ezezaguna"},"link":{"acccessKey":"Sarbide-tekla","advanced":"Aurreratua","advisoryContentType":"Aholkatutako eduki-mota","advisoryTitle":"Aholkatutako izenburua","anchor":{"toolbar":"Aingura","menu":"Editatu aingura","title":"Ainguraren propietateak","name":"Ainguraren izena","errorName":"Idatzi ainguraren izena","remove":"Kendu aingura"},"anchorId":"Elementuaren Id-aren arabera","anchorName":"Aingura-izenaren arabera","charset":"Estekatutako baliabide karaktere-jokoa","cssClasses":"Estilo-orriko klaseak","download":"Force Download","displayText":"Bistaratu testua","emailAddress":"E-posta helbidea","emailBody":"Mezuaren gorputza","emailSubject":"Mezuaren gaia","id":"Id","info":"Estekaren informazioa","langCode":"Hizkuntzaren kodea","langDir":"Hizkuntzaren norabidea","langDirLTR":"Ezkerretik eskuinera (LTR)","langDirRTL":"Eskuinetik ezkerrera (RTL)","menu":"Editatu esteka","name":"Izena","noAnchors":"(Ez dago aingurarik erabilgarri dokumentuan)","noEmail":"Mesedez idatzi e-posta helbidea","noUrl":"Mesedez idatzi estekaren URLa","other":"<bestelakoa>","popupDependent":"Menpekoa (Netscape)","popupFeatures":"Laster-leihoaren ezaugarriak","popupFullScreen":"Pantaila osoa (IE)","popupLeft":"Ezkerreko posizioa","popupLocationBar":"Kokaleku-barra","popupMenuBar":"Menu-barra","popupResizable":"Tamaina aldakorra","popupScrollBars":"Korritze-barrak","popupStatusBar":"Egoera-barra","popupToolbar":"Tresna-barra","popupTop":"Goiko posizioa","rel":"Erlazioa","selectAnchor":"Hautatu aingura","styles":"Estiloa","tabIndex":"Tabulazio indizea","target":"Helburua","targetFrame":"<frame>","targetFrameName":"Helburuko markoaren izena","targetPopup":"<laster-leihoa>","targetPopupName":"Laster-leihoaren izena","title":"Esteka","toAnchor":"Estekatu testuko aingurara","toEmail":"E-posta","toUrl":"URLa","toolbar":"Esteka","type":"Esteka-mota","unlink":"Kendu esteka","upload":"Kargatu"},"list":{"bulletedlist":"Buletdun Zerrenda","numberedlist":"Zenbakidun Zerrenda"},"magicline":{"title":"Txertatu paragrafoa hemen"},"maximize":{"maximize":"Maximizatu","minimize":"Minimizatu"},"pastetext":{"button":"Itsatsi testu arrunta bezala","pasteNotification":"Your browser does not allow you to paste plain text this way. Press %1 to paste."},"pastefromword":{"confirmCleanup":"Itsatsi nahi duzun testua Word-etik kopiatua dela dirudi. Itsatsi baino lehen garbitu nahi duzu?","error":"Barne-errore bat dela eta ezin izan da itsatsitako testua garbitu","title":"Itsatsi Word-etik","toolbar":"Itsatsi Word-etik"},"removeformat":{"toolbar":"Kendu formatua"},"sourcearea":{"toolbar":"Iturburua"},"specialchar":{"options":"Karaktere berezien aukerak","title":"Hautatu karaktere berezia","toolbar":"Txertatu karaktere berezia"},"scayt":{"btn_about":"SCAYTi buruz","btn_dictionaries":"Hiztegiak","btn_disable":"Desgaitu SCAYT","btn_enable":"Gaitu SCAYT","btn_langs":"Hizkuntzak","btn_options":"Aukerak","text_title":"Ortografia Zuzenketa Idatzi Ahala (SCAYT)"},"stylescombo":{"label":"Estiloak","panelTitle":"Formatu estiloak","panelTitle1":"Bloke estiloak","panelTitle2":"Lineako estiloak","panelTitle3":"Objektu estiloak"},"table":{"border":"Ertzaren zabalera","caption":"Epigrafea","cell":{"menu":"Gelaxka","insertBefore":"Txertatu gelaxka aurretik","insertAfter":"Txertatu gelaxka ondoren","deleteCell":"Ezabatu gelaxkak","merge":"Batu gelaxkak","mergeRight":"Batu eskuinetara","mergeDown":"Batu behera","splitHorizontal":"Banatu gelaxka horizontalki","splitVertical":"Banatu gelaxka bertikalki","title":"Gelaxkaren propietateak","cellType":"Gelaxka-mota","rowSpan":"Errenkaden hedadura","colSpan":"Zutabeen hedadura","wordWrap":"Itzulbira","hAlign":"Lerrokatze horizontala","vAlign":"Lerrokatze bertikala","alignBaseline":"Oinarri-lerroan","bgColor":"Atzeko planoaren kolorea","borderColor":"Ertzaren kolorea","data":"Data","header":"Goiburua","yes":"Bai","no":"Ez","invalidWidth":"Gelaxkaren zabalera zenbaki bat izan behar da.","invalidHeight":"Gelaxkaren altuera zenbaki bat izan behar da.","invalidRowSpan":"Errenkaden hedadura zenbaki osoa izan behar da.","invalidColSpan":"Zutabeen hedadura zenbaki osoa izan behar da.","chooseColor":"Aukeratu"},"cellPad":"Gelaxken betegarria","cellSpace":"Gelaxka arteko tartea","column":{"menu":"Zutabea","insertBefore":"Txertatu zutabea aurretik","insertAfter":"Txertatu zutabea ondoren","deleteColumn":"Ezabatu zutabeak"},"columns":"Zutabeak","deleteTable":"Ezabatu taula","headers":"Goiburuak","headersBoth":"Biak","headersColumn":"Lehen zutabea","headersNone":"Bat ere ez","headersRow":"Lehen errenkada","invalidBorder":"Ertzaren tamaina zenbaki bat izan behar da.","invalidCellPadding":"Gelaxken betegarria zenbaki bat izan behar da.","invalidCellSpacing":"Gelaxka arteko tartea zenbaki bat izan behar da.","invalidCols":"Zutabe kopurua 0 baino handiagoa den zenbakia izan behar da.","invalidHeight":"Taularen altuera zenbaki bat izan behar da.","invalidRows":"Errenkada kopurua 0 baino handiagoa den zenbakia izan behar da.","invalidWidth":"Taularen zabalera zenbaki bat izan behar da.","menu":"Taularen propietateak","row":{"menu":"Errenkada","insertBefore":"Txertatu errenkada aurretik","insertAfter":"Txertatu errenkada ondoren","deleteRow":"Ezabatu errenkadak"},"rows":"Errenkadak","summary":"Laburpena","title":"Taularen propietateak","toolbar":"Taula","widthPc":"ehuneko","widthPx":"pixel","widthUnit":"zabalera unitatea"},"undo":{"redo":"Berregin","undo":"Desegin"},"wsc":{"btnIgnore":"Ezikusi","btnIgnoreAll":"Denak Ezikusi","btnReplace":"Ordezkatu","btnReplaceAll":"Denak Ordezkatu","btnUndo":"Desegin","changeTo":"Honekin ordezkatu","errorLoading":"Errorea gertatu da aplikazioa zerbitzaritik kargatzean: %s.","ieSpellDownload":"Zuzentzaile ortografikoa ez dago instalatuta. Deskargatu nahi duzu?","manyChanges":"Zuzenketa ortografikoa bukatuta: %1 hitz aldatu dira","noChanges":"Zuzenketa ortografikoa bukatuta: Ez da ezer aldatu","noMispell":"Zuzenketa ortografikoa bukatuta: Akatsik ez","noSuggestions":"- Iradokizunik ez -","notAvailable":"Barkatu baina momentu honetan zerbitzua ez dago erabilgarri.","notInDic":"Ez dago hiztegian","oneChange":"Zuzenketa ortografikoa bukatuta: Hitz bat aldatu da","progress":"Zuzenketa ortografikoa martxan...","title":"Ortografia zuzenketa","toolbar":"Ortografia"}}; \ No newline at end of file diff --git a/admin/plugins/ckeditor/lang/fa.js b/admin/plugins/ckeditor/lang/fa.js deleted file mode 100644 index 1b71e07..0000000 --- a/admin/plugins/ckeditor/lang/fa.js +++ /dev/null @@ -1,5 +0,0 @@ -/* -Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. -For licensing, see LICENSE.md or http://ckeditor.com/license -*/ -CKEDITOR.lang['fa']={"editor":"ویرایش‌گر متن غنی","editorPanel":"پنل ویرایشگر متن غنی","common":{"editorHelp":"کلید Alt+0 را برای راهنمایی بفشارید","browseServer":"فهرست​نمایی سرور","url":"URL","protocol":"قرارداد","upload":"بالاگذاری","uploadSubmit":"به سرور بفرست","image":"تصویر","flash":"فلش","form":"فرم","checkbox":"چک‌باکس","radio":"دکمه‌ی رادیویی","textField":"فیلد متنی","textarea":"ناحیهٴ متنی","hiddenField":"فیلد پنهان","button":"دکمه","select":"فیلد انتخاب چند گزینه​ای","imageButton":"دکمه‌ی تصویری","notSet":"<تعیین‌نشده>","id":"شناسه","name":"نام","langDir":"جهت زبان","langDirLtr":"چپ به راست","langDirRtl":"راست به چپ","langCode":"کد زبان","longDescr":"URL توصیف طولانی","cssClass":"کلاس​های شیوه​نامه (Stylesheet)","advisoryTitle":"عنوان کمکی","cssStyle":"سبک","ok":"پذیرش","cancel":"انصراف","close":"بستن","preview":"پیش‌نمایش","resize":"تغییر اندازه","generalTab":"عمومی","advancedTab":"پیش‌رفته","validateNumberFailed":"این مقدار یک عدد نیست.","confirmNewPage":"هر تغییر ایجاد شده​ی ذخیره نشده از بین خواهد رفت. آیا اطمینان دارید که قصد بارگیری صفحه جدیدی را دارید؟","confirmCancel":"برخی از گزینه‌ها تغییر کرده‌اند. آیا واقعا قصد بستن این پنجره را دارید؟","options":"گزینه​ها","target":"مقصد","targetNew":"پنجره جدید","targetTop":"بالاترین پنجره","targetSelf":"همان پنجره","targetParent":"پنجره والد","langDirLTR":"چپ به راست","langDirRTL":"راست به چپ","styles":"سبک","cssClasses":"کلاس‌های سبک‌نامه","width":"عرض","height":"طول","align":"چینش","alignLeft":"چپ","alignRight":"راست","alignCenter":"وسط","alignJustify":"بلوک چین","alignTop":"بالا","alignMiddle":"میانه","alignBottom":"پائین","alignNone":"هیچ","invalidValue":"مقدار نامعتبر.","invalidHeight":"ارتفاع باید یک عدد باشد.","invalidWidth":"عرض باید یک عدد باشد.","invalidCssLength":"عدد تعیین شده برای فیلد \"%1\" باید یک عدد مثبت با یا بدون یک واحد اندازه گیری CSS معتبر باشد (px, %, in, cm, mm, em, ex, pt, or pc).","invalidHtmlLength":"عدد تعیین شده برای فیلد \"%1\" باید یک عدد مثبت با یا بدون یک واحد اندازه گیری HTML معتبر باشد (px or %).","invalidInlineStyle":"عدد تعیین شده برای سبک درون​خطی -Inline Style- باید دارای یک یا چند چندتایی با شکلی شبیه \"name : value\" که باید با یک \";\" از هم جدا شوند.","cssLengthTooltip":"یک عدد برای یک مقدار بر حسب پیکسل و یا یک عدد با یک واحد CSS معتبر وارد کنید (px, %, in, cm, mm, em, ex, pt, or pc).","unavailable":"%1<span class=\"cke_accessibility\">، غیر قابل دسترس</span>","keyboard":{"8":"عقبگرد","13":"ورود","16":"تعویض","17":"کنترل","18":"دگرساز","32":"Space","35":"پایان","36":"خانه","46":"حذف","224":"Command"},"keyboardShortcut":"Keyboard shortcut"},"about":{"copy":"حق نشر &copy; $1. کلیه حقوق محفوظ است.","dlgTitle":"درباره CKEditor","help":" برای راهنمایی $1 را ملاحظه کنید.","moreInfo":"برای کسب اطلاعات مجوز لطفا به وب سایت ما مراجعه کنید:","title":"درباره CKEditor","userGuide":"راهنمای کاربران CKEditor"},"basicstyles":{"bold":"درشت","italic":"خمیده","strike":"خط‌خورده","subscript":"زیرنویس","superscript":"بالانویس","underline":"زیرخط‌دار"},"blockquote":{"toolbar":"بلوک نقل قول"},"notification":{"closed":"Notification closed."},"button":{"selectedLabel":"%1 (انتخاب شده)"},"toolbar":{"toolbarCollapse":"بستن نوار ابزار","toolbarExpand":"بازکردن نوار ابزار","toolbarGroups":{"document":"سند","clipboard":"حافظه موقت/برگشت","editing":"در حال ویرایش","forms":"فرم​ها","basicstyles":"سبک‌های پایه","paragraph":"بند","links":"پیوندها","insert":"ورود","styles":"سبک‌ها","colors":"رنگ​ها","tools":"ابزارها"},"toolbars":"نوار ابزارهای ویرایش‌گر"},"clipboard":{"copy":"رونوشت","copyError":"تنظیمات امنیتی مرورگر شما اجازه نمیدهد که ویرایشگر به طور خودکار عملکردهای کپی کردن را انجام دهد. لطفا با دکمههای صفحه کلید این کار را انجام دهید (Ctrl/Cmd+C).","cut":"برش","cutError":"تنظیمات امنیتی مرورگر شما اجازه نمیدهد که ویرایشگر به طور خودکار عملکردهای برش را انجام دهد. لطفا با دکمههای صفحه کلید این کار را انجام دهید (Ctrl/Cmd+X).","paste":"چسباندن","pasteNotification":"Your browser doesn't allow you to paste this way. Press %1 to paste."},"contextmenu":{"options":"گزینه​های منوی زمینه"},"elementspath":{"eleLabel":"مسیر عناصر","eleTitle":"%1 عنصر"},"format":{"label":"قالب","panelTitle":"قالب بند","tag_address":"نشانی","tag_div":"بند","tag_h1":"سرنویس ۱","tag_h2":"سرنویس ۲","tag_h3":"سرنویس ۳","tag_h4":"سرنویس ۴","tag_h5":"سرنویس ۵","tag_h6":"سرنویس ۶","tag_p":"معمولی","tag_pre":"قالب‌دار"},"horizontalrule":{"toolbar":"گنجاندن خط افقی"},"image":{"alt":"متن جایگزین","border":"لبه","btnUpload":"به سرور بفرست","button2Img":"آیا مایلید از یک تصویر ساده روی دکمه تصویری انتخاب شده استفاده کنید؟","hSpace":"فاصلهٴ افقی","img2Button":"آیا مایلید از یک دکمه تصویری روی تصویر انتخاب شده استفاده کنید؟","infoTab":"اطلاعات تصویر","linkTab":"پیوند","lockRatio":"قفل کردن نسبت","menu":"ویژگی​های تصویر","resetSize":"بازنشانی اندازه","title":"ویژگی​های تصویر","titleButton":"ویژگی​های دکمهٴ تصویری","upload":"انتقال به سرور","urlMissing":"آدرس URL اصلی تصویر یافت نشد.","vSpace":"فاصلهٴ عمودی","validateBorder":"مقدار خطوط باید یک عدد باشد.","validateHSpace":"مقدار فاصله گذاری افقی باید یک عدد باشد.","validateVSpace":"مقدار فاصله گذاری عمودی باید یک عدد باشد."},"indent":{"indent":"افزایش تورفتگی","outdent":"کاهش تورفتگی"},"fakeobjects":{"anchor":"لنگر","flash":"انیمشن فلش","hiddenfield":"فیلد پنهان","iframe":"IFrame","unknown":"شیء ناشناخته"},"link":{"acccessKey":"کلید دستیابی","advanced":"پیشرفته","advisoryContentType":"نوع محتوای کمکی","advisoryTitle":"عنوان کمکی","anchor":{"toolbar":"گنجاندن/ویرایش لنگر","menu":"ویژگی​های لنگر","title":"ویژگی​های لنگر","name":"نام لنگر","errorName":"لطفا نام لنگر را بنویسید","remove":"حذف لنگر"},"anchorId":"با شناسهٴ المان","anchorName":"با نام لنگر","charset":"نویسه​گان منبع پیوند شده","cssClasses":"کلاس​های شیوه​نامه(Stylesheet)","download":"Force Download","displayText":"Display Text","emailAddress":"نشانی پست الکترونیکی","emailBody":"متن پیام","emailSubject":"موضوع پیام","id":"شناسه","info":"اطلاعات پیوند","langCode":"جهت​نمای زبان","langDir":"جهت​نمای زبان","langDirLTR":"چپ به راست (LTR)","langDirRTL":"راست به چپ (RTL)","menu":"ویرایش پیوند","name":"نام","noAnchors":"(در این سند لنگری دردسترس نیست)","noEmail":"لطفا نشانی پست الکترونیکی را بنویسید","noUrl":"لطفا URL پیوند را بنویسید","other":"<سایر>","popupDependent":"وابسته (Netscape)","popupFeatures":"ویژگی​های پنجرهٴ پاپاپ","popupFullScreen":"تمام صفحه (IE)","popupLeft":"موقعیت چپ","popupLocationBar":"نوار موقعیت","popupMenuBar":"نوار منو","popupResizable":"قابل تغییر اندازه","popupScrollBars":"میله​های پیمایش","popupStatusBar":"نوار وضعیت","popupToolbar":"نوار ابزار","popupTop":"موقعیت بالا","rel":"وابستگی","selectAnchor":"یک لنگر برگزینید","styles":"شیوه (style)","tabIndex":"نمایهٴ دسترسی با برگه","target":"مقصد","targetFrame":"<فریم>","targetFrameName":"نام فریم مقصد","targetPopup":"<پنجرهٴ پاپاپ>","targetPopupName":"نام پنجرهٴ پاپاپ","title":"پیوند","toAnchor":"لنگر در همین صفحه","toEmail":"پست الکترونیکی","toUrl":"URL","toolbar":"گنجاندن/ویرایش پیوند","type":"نوع پیوند","unlink":"برداشتن پیوند","upload":"انتقال به سرور"},"list":{"bulletedlist":"فهرست نقطه​ای","numberedlist":"فهرست شماره​دار"},"magicline":{"title":"قرار دادن بند در اینجا"},"maximize":{"maximize":"بیشنه کردن","minimize":"کمینه کردن"},"pastetext":{"button":"چسباندن به عنوان متن ساده","pasteNotification":"Your browser does not allow you to paste plain text this way. Press %1 to paste."},"pastefromword":{"confirmCleanup":"متنی که میخواهید بچسبانید به نظر میرسد که از Word کپی شده است. آیا میخواهید قبل از چسباندن آن را پاکسازی کنید؟","error":"به دلیل بروز خطای داخلی امکان پاکسازی اطلاعات بازنشانی شده وجود ندارد.","title":"چسباندن از Word","toolbar":"چسباندن از Word"},"removeformat":{"toolbar":"برداشتن فرمت"},"sourcearea":{"toolbar":"منبع"},"specialchar":{"options":"گزینه‌های نویسه‌های ویژه","title":"گزینش نویسه‌ی ویژه","toolbar":"گنجاندن نویسه‌ی ویژه"},"scayt":{"btn_about":"درباره SCAYT","btn_dictionaries":"دیکشنریها","btn_disable":"غیرفعالسازی SCAYT","btn_enable":"فعالسازی SCAYT","btn_langs":"زبانها","btn_options":"گزینهها","text_title":"بررسی املای تایپ شما"},"stylescombo":{"label":"سبک","panelTitle":"سبکهای قالببندی","panelTitle1":"سبکهای بلوک","panelTitle2":"سبکهای درونخطی","panelTitle3":"سبکهای شیء"},"table":{"border":"اندازهٴ لبه","caption":"عنوان","cell":{"menu":"سلول","insertBefore":"افزودن سلول قبل از","insertAfter":"افزودن سلول بعد از","deleteCell":"حذف سلولها","merge":"ادغام سلولها","mergeRight":"ادغام به راست","mergeDown":"ادغام به پایین","splitHorizontal":"جدا کردن افقی سلول","splitVertical":"جدا کردن عمودی سلول","title":"ویژگیهای سلول","cellType":"نوع سلول","rowSpan":"محدوده ردیفها","colSpan":"محدوده ستونها","wordWrap":"شکستن کلمه","hAlign":"چینش افقی","vAlign":"چینش عمودی","alignBaseline":"خط مبنا","bgColor":"رنگ زمینه","borderColor":"رنگ خطوط","data":"اطلاعات","header":"سرنویس","yes":"بله","no":"خیر","invalidWidth":"عرض سلول باید یک عدد باشد.","invalidHeight":"ارتفاع سلول باید عدد باشد.","invalidRowSpan":"مقدار محدوده ردیفها باید یک عدد باشد.","invalidColSpan":"مقدار محدوده ستونها باید یک عدد باشد.","chooseColor":"انتخاب"},"cellPad":"فاصلهٴ پرشده در سلول","cellSpace":"فاصلهٴ میان سلولها","column":{"menu":"ستون","insertBefore":"افزودن ستون قبل از","insertAfter":"افزودن ستون بعد از","deleteColumn":"حذف ستونها"},"columns":"ستونها","deleteTable":"پاک کردن جدول","headers":"سرنویسها","headersBoth":"هردو","headersColumn":"اولین ستون","headersNone":"هیچ","headersRow":"اولین ردیف","invalidBorder":"مقدار اندازه خطوط باید یک عدد باشد.","invalidCellPadding":"بالشتک سلول باید یک عدد باشد.","invalidCellSpacing":"مقدار فاصلهگذاری سلول باید یک عدد باشد.","invalidCols":"تعداد ستونها باید یک عدد بزرگتر از 0 باشد.","invalidHeight":"مقدار ارتفاع جدول باید یک عدد باشد.","invalidRows":"تعداد ردیفها باید یک عدد بزرگتر از 0 باشد.","invalidWidth":"مقدار پهنای جدول باید یک عدد باشد.","menu":"ویژگیهای جدول","row":{"menu":"سطر","insertBefore":"افزودن سطر قبل از","insertAfter":"افزودن سطر بعد از","deleteRow":"حذف سطرها"},"rows":"سطرها","summary":"خلاصه","title":"ویژگیهای جدول","toolbar":"جدول","widthPc":"درصد","widthPx":"پیکسل","widthUnit":"واحد پهنا"},"undo":{"redo":"بازچیدن","undo":"واچیدن"},"wsc":{"btnIgnore":"چشمپوشی","btnIgnoreAll":"چشمپوشی همه","btnReplace":"جایگزینی","btnReplaceAll":"جایگزینی همه","btnUndo":"واچینش","changeTo":"تغییر به","errorLoading":"خطا در بارگیری برنامه خدمات میزبان: %s.","ieSpellDownload":"بررسی کنندهٴ املا نصب نشده است. آیا میخواهید آن را هماکنون دریافت کنید؟","manyChanges":"بررسی املا انجام شد. %1 واژه تغییر یافت","noChanges":"بررسی املا انجام شد. هیچ واژهای تغییر نیافت","noMispell":"بررسی املا انجام شد. هیچ غلط املائی یافت نشد","noSuggestions":"- پیشنهادی نیست -","notAvailable":"با عرض پوزش خدمات الان در دسترس نیستند.","notInDic":"در واژه~نامه یافت نشد","oneChange":"بررسی املا انجام شد. یک واژه تغییر یافت","progress":"بررسی املا در حال انجام...","title":"بررسی املا","toolbar":"بررسی املا"}}; \ No newline at end of file diff --git a/admin/plugins/ckeditor/lang/fi.js b/admin/plugins/ckeditor/lang/fi.js deleted file mode 100644 index 066efba..0000000 --- a/admin/plugins/ckeditor/lang/fi.js +++ /dev/null @@ -1,5 +0,0 @@ -/* -Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. -For licensing, see LICENSE.md or http://ckeditor.com/license -*/ -CKEDITOR.lang['fi']={"editor":"Rikastekstieditori","editorPanel":"Rikastekstieditoripaneeli","common":{"editorHelp":"Paina ALT 0 nähdäksesi ohjeen","browseServer":"Selaa palvelinta","url":"Osoite","protocol":"Protokolla","upload":"Lisää tiedosto","uploadSubmit":"Lähetä palvelimelle","image":"Kuva","flash":"Flash-animaatio","form":"Lomake","checkbox":"Valintaruutu","radio":"Radiopainike","textField":"Tekstikenttä","textarea":"Tekstilaatikko","hiddenField":"Piilokenttä","button":"Painike","select":"Valintakenttä","imageButton":"Kuvapainike","notSet":"<ei asetettu>","id":"Tunniste","name":"Nimi","langDir":"Kielen suunta","langDirLtr":"Vasemmalta oikealle (LTR)","langDirRtl":"Oikealta vasemmalle (RTL)","langCode":"Kielikoodi","longDescr":"Pitkän kuvauksen URL","cssClass":"Tyyliluokat","advisoryTitle":"Avustava otsikko","cssStyle":"Tyyli","ok":"OK","cancel":"Peruuta","close":"Sulje","preview":"Esikatselu","resize":"Raahaa muuttaaksesi kokoa","generalTab":"Yleinen","advancedTab":"Lisäominaisuudet","validateNumberFailed":"Arvon pitää olla numero.","confirmNewPage":"Kaikki tallentamattomat muutokset tähän sisältöön menetetään. Oletko varma, että haluat ladata uuden sivun?","confirmCancel":"Jotkut asetuksista on muuttuneet. Oletko varma, että haluat sulkea valintaikkunan?","options":"Asetukset","target":"Kohde","targetNew":"Uusi ikkuna (_blank)","targetTop":"Päällimmäinen ikkuna (_top)","targetSelf":"Sama ikkuna (_self)","targetParent":"Ylemmän tason ikkuna (_parent)","langDirLTR":"Vasemmalta oikealle (LTR)","langDirRTL":"Oikealta vasemmalle (RTL)","styles":"Tyyli","cssClasses":"Tyylitiedoston luokat","width":"Leveys","height":"Korkeus","align":"Kohdistus","alignLeft":"Vasemmalle","alignRight":"Oikealle","alignCenter":"Keskelle","alignJustify":"Tasaa molemmat reunat","alignTop":"Ylös","alignMiddle":"Keskelle","alignBottom":"Alas","alignNone":"Ei asetettu","invalidValue":"Virheellinen arvo.","invalidHeight":"Korkeuden täytyy olla numero.","invalidWidth":"Leveyden täytyy olla numero.","invalidCssLength":"Kentän \"%1\" arvon täytyy olla positiivinen luku CSS mittayksikön (px, %, in, cm, mm, em, ex, pt tai pc) kanssa tai ilman.","invalidHtmlLength":"Kentän \"%1\" arvon täytyy olla positiivinen luku HTML mittayksikön (px tai %) kanssa tai ilman.","invalidInlineStyle":"Tyylille annetun arvon täytyy koostua yhdestä tai useammasta \"nimi : arvo\" parista, jotka ovat eroteltuna toisistaan puolipisteillä.","cssLengthTooltip":"Anna numeroarvo pikseleinä tai numeroarvo CSS mittayksikön kanssa (px, %, in, cm, mm, em, ex, pt, tai pc).","unavailable":"%1<span class=\"cke_accessibility\">, ei saatavissa</span>","keyboard":{"8":"Backspace","13":"Enter","16":"Shift","17":"Ctrl","18":"Alt","32":"Space","35":"End","36":"Home","46":"Delete","224":"Command"},"keyboardShortcut":"Keyboard shortcut"},"about":{"copy":"Copyright &copy; $1. Kaikki oikeuden pidätetään.","dlgTitle":"Tietoa CKEditorista","help":"Katso ohjeet: $1.","moreInfo":"Lisenssitiedot löytyvät kotisivuiltamme:","title":"Tietoa CKEditorista","userGuide":"CKEditorin käyttäjäopas"},"basicstyles":{"bold":"Lihavoitu","italic":"Kursivoitu","strike":"Yliviivattu","subscript":"Alaindeksi","superscript":"Yläindeksi","underline":"Alleviivattu"},"blockquote":{"toolbar":"Lainaus"},"notification":{"closed":"Notification closed."},"button":{"selectedLabel":"%1 (Valittu)"},"toolbar":{"toolbarCollapse":"Kutista työkalupalkki","toolbarExpand":"Laajenna työkalupalkki","toolbarGroups":{"document":"Dokumentti","clipboard":"Leikepöytä/Kumoa","editing":"Muokkaus","forms":"Lomakkeet","basicstyles":"Perustyylit","paragraph":"Kappale","links":"Linkit","insert":"Lisää","styles":"Tyylit","colors":"Värit","tools":"Työkalut"},"toolbars":"Editorin työkalupalkit"},"clipboard":{"copy":"Kopioi","copyError":"Selaimesi turva-asetukset eivät salli editorin toteuttaa kopioimista. Käytä näppäimistöä kopioimiseen (Ctrl+C).","cut":"Leikkaa","cutError":"Selaimesi turva-asetukset eivät salli editorin toteuttaa leikkaamista. Käytä näppäimistöä leikkaamiseen (Ctrl+X).","paste":"Liitä","pasteNotification":"Your browser doesn't allow you to paste this way. Press %1 to paste."},"contextmenu":{"options":"Pikavalikon ominaisuudet"},"elementspath":{"eleLabel":"Elementin polku","eleTitle":"%1 elementti"},"format":{"label":"Muotoilu","panelTitle":"Muotoilu","tag_address":"Osoite","tag_div":"Normaali (DIV)","tag_h1":"Otsikko 1","tag_h2":"Otsikko 2","tag_h3":"Otsikko 3","tag_h4":"Otsikko 4","tag_h5":"Otsikko 5","tag_h6":"Otsikko 6","tag_p":"Normaali","tag_pre":"Muotoiltu"},"horizontalrule":{"toolbar":"Lisää murtoviiva"},"image":{"alt":"Vaihtoehtoinen teksti","border":"Kehys","btnUpload":"Lähetä palvelimelle","button2Img":"Haluatko muuntaa valitun kuvanäppäimen kuvaksi?","hSpace":"Vaakatila","img2Button":"Haluatko muuntaa valitun kuvan kuvanäppäimeksi?","infoTab":"Kuvan tiedot","linkTab":"Linkki","lockRatio":"Lukitse suhteet","menu":"Kuvan ominaisuudet","resetSize":"Alkuperäinen koko","title":"Kuvan ominaisuudet","titleButton":"Kuvapainikkeen ominaisuudet","upload":"Lisää kuva","urlMissing":"Kuvan lähdeosoite puuttuu.","vSpace":"Pystytila","validateBorder":"Kehyksen täytyy olla kokonaisluku.","validateHSpace":"HSpace-määrityksen täytyy olla kokonaisluku.","validateVSpace":"VSpace-määrityksen täytyy olla kokonaisluku."},"indent":{"indent":"Suurenna sisennystä","outdent":"Pienennä sisennystä"},"fakeobjects":{"anchor":"Ankkuri","flash":"Flash animaatio","hiddenfield":"Piilokenttä","iframe":"IFrame-kehys","unknown":"Tuntematon objekti"},"link":{"acccessKey":"Pikanäppäin","advanced":"Lisäominaisuudet","advisoryContentType":"Avustava sisällön tyyppi","advisoryTitle":"Avustava otsikko","anchor":{"toolbar":"Lisää ankkuri/muokkaa ankkuria","menu":"Ankkurin ominaisuudet","title":"Ankkurin ominaisuudet","name":"Nimi","errorName":"Ankkurille on kirjoitettava nimi","remove":"Poista ankkuri"},"anchorId":"Ankkurin ID:n mukaan","anchorName":"Ankkurin nimen mukaan","charset":"Linkitetty kirjaimisto","cssClasses":"Tyyliluokat","download":"Force Download","displayText":"Display Text","emailAddress":"Sähköpostiosoite","emailBody":"Viesti","emailSubject":"Aihe","id":"Tunniste","info":"Linkin tiedot","langCode":"Kielen suunta","langDir":"Kielen suunta","langDirLTR":"Vasemmalta oikealle (LTR)","langDirRTL":"Oikealta vasemmalle (RTL)","menu":"Muokkaa linkkiä","name":"Nimi","noAnchors":"(Ei ankkureita tässä dokumentissa)","noEmail":"Kirjoita sähköpostiosoite","noUrl":"Linkille on kirjoitettava URL","other":"<muu>","popupDependent":"Riippuva (Netscape)","popupFeatures":"Popup ikkunan ominaisuudet","popupFullScreen":"Täysi ikkuna (IE)","popupLeft":"Vasemmalta (px)","popupLocationBar":"Osoiterivi","popupMenuBar":"Valikkorivi","popupResizable":"Venytettävä","popupScrollBars":"Vierityspalkit","popupStatusBar":"Tilarivi","popupToolbar":"Vakiopainikkeet","popupTop":"Ylhäältä (px)","rel":"Suhde","selectAnchor":"Valitse ankkuri","styles":"Tyyli","tabIndex":"Tabulaattori indeksi","target":"Kohde","targetFrame":"<kehys>","targetFrameName":"Kohdekehyksen nimi","targetPopup":"<popup ikkuna>","targetPopupName":"Popup ikkunan nimi","title":"Linkki","toAnchor":"Ankkuri tässä sivussa","toEmail":"Sähköposti","toUrl":"Osoite","toolbar":"Lisää linkki/muokkaa linkkiä","type":"Linkkityyppi","unlink":"Poista linkki","upload":"Lisää tiedosto"},"list":{"bulletedlist":"Luettelomerkit","numberedlist":"Numerointi"},"magicline":{"title":"Lisää kappale tähän."},"maximize":{"maximize":"Suurenna","minimize":"Pienennä"},"pastetext":{"button":"Liitä tekstinä","pasteNotification":"Your browser does not allow you to paste plain text this way. Press %1 to paste."},"pastefromword":{"confirmCleanup":"Liittämäsi teksti näyttäisi olevan Word-dokumentista. Haluatko siivota sen ennen liittämistä? (Suositus: Kyllä)","error":"Liitetyn tiedon siivoaminen ei onnistunut sisäisen virheen takia","title":"Liitä Word-dokumentista","toolbar":"Liitä Word-dokumentista"},"removeformat":{"toolbar":"Poista muotoilu"},"sourcearea":{"toolbar":"Koodi"},"specialchar":{"options":"Erikoismerkin ominaisuudet","title":"Valitse erikoismerkki","toolbar":"Lisää erikoismerkki"},"scayt":{"btn_about":"Tietoja oikoluvusta kirjoitetaessa","btn_dictionaries":"Sanakirjat","btn_disable":"Poista käytöstä oikoluku kirjoitetaessa","btn_enable":"Ota käyttöön oikoluku kirjoitettaessa","btn_langs":"Kielet","btn_options":"Asetukset","text_title":"Oikolue kirjoitettaessa"},"stylescombo":{"label":"Tyyli","panelTitle":"Muotoilujen tyylit","panelTitle1":"Lohkojen tyylit","panelTitle2":"Rivinsisäiset tyylit","panelTitle3":"Objektien tyylit"},"table":{"border":"Rajan paksuus","caption":"Otsikko","cell":{"menu":"Solu","insertBefore":"Lisää solu eteen","insertAfter":"Lisää solu perään","deleteCell":"Poista solut","merge":"Yhdistä solut","mergeRight":"Yhdistä oikealla olevan kanssa","mergeDown":"Yhdistä alla olevan kanssa","splitHorizontal":"Jaa solu vaakasuunnassa","splitVertical":"Jaa solu pystysuunnassa","title":"Solun ominaisuudet","cellType":"Solun tyyppi","rowSpan":"Rivin jatkuvuus","colSpan":"Solun jatkuvuus","wordWrap":"Rivitys","hAlign":"Horisontaali kohdistus","vAlign":"Vertikaali kohdistus","alignBaseline":"Alas (teksti)","bgColor":"Taustan väri","borderColor":"Reunan väri","data":"Data","header":"Ylätunniste","yes":"Kyllä","no":"Ei","invalidWidth":"Solun leveyden täytyy olla numero.","invalidHeight":"Solun korkeuden täytyy olla numero.","invalidRowSpan":"Rivin jatkuvuuden täytyy olla kokonaisluku.","invalidColSpan":"Solun jatkuvuuden täytyy olla kokonaisluku.","chooseColor":"Valitse"},"cellPad":"Solujen sisennys","cellSpace":"Solujen väli","column":{"menu":"Sarake","insertBefore":"Lisää sarake vasemmalle","insertAfter":"Lisää sarake oikealle","deleteColumn":"Poista sarakkeet"},"columns":"Sarakkeet","deleteTable":"Poista taulu","headers":"Ylätunnisteet","headersBoth":"Molemmat","headersColumn":"Ensimmäinen sarake","headersNone":"Ei","headersRow":"Ensimmäinen rivi","invalidBorder":"Reunan koon täytyy olla numero.","invalidCellPadding":"Solujen sisennyksen täytyy olla numero.","invalidCellSpacing":"Solujen välin täytyy olla numero.","invalidCols":"Sarakkeiden määrän täytyy olla suurempi kuin 0.","invalidHeight":"Taulun korkeuden täytyy olla numero.","invalidRows":"Rivien määrän täytyy olla suurempi kuin 0.","invalidWidth":"Taulun leveyden täytyy olla numero.","menu":"Taulun ominaisuudet","row":{"menu":"Rivi","insertBefore":"Lisää rivi yläpuolelle","insertAfter":"Lisää rivi alapuolelle","deleteRow":"Poista rivit"},"rows":"Rivit","summary":"Yhteenveto","title":"Taulun ominaisuudet","toolbar":"Taulu","widthPc":"prosenttia","widthPx":"pikseliä","widthUnit":"leveysyksikkö"},"undo":{"redo":"Toista","undo":"Kumoa"},"wsc":{"btnIgnore":"Jätä huomioimatta","btnIgnoreAll":"Jätä kaikki huomioimatta","btnReplace":"Korvaa","btnReplaceAll":"Korvaa kaikki","btnUndo":"Kumoa","changeTo":"Vaihda","errorLoading":"Virhe ladattaessa oikolukupalvelua isännältä: %s.","ieSpellDownload":"Oikeinkirjoituksen tarkistusta ei ole asennettu. Haluatko ladata sen nyt?","manyChanges":"Tarkistus valmis: %1 sanaa muutettiin","noChanges":"Tarkistus valmis: Yhtään sanaa ei muutettu","noMispell":"Tarkistus valmis: Ei virheitä","noSuggestions":"Ei ehdotuksia","notAvailable":"Valitettavasti oikoluku ei ole käytössä tällä hetkellä.","notInDic":"Ei sanakirjassa","oneChange":"Tarkistus valmis: Yksi sana muutettiin","progress":"Tarkistus käynnissä...","title":"Oikoluku","toolbar":"Tarkista oikeinkirjoitus"}}; \ No newline at end of file diff --git a/admin/plugins/ckeditor/lang/fo.js b/admin/plugins/ckeditor/lang/fo.js deleted file mode 100644 index 2fa5938..0000000 --- a/admin/plugins/ckeditor/lang/fo.js +++ /dev/null @@ -1,5 +0,0 @@ -/* -Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. -For licensing, see LICENSE.md or http://ckeditor.com/license -*/ -CKEDITOR.lang['fo']={"editor":"Rich Text Editor","editorPanel":"Rich Text Editor panel","common":{"editorHelp":"Trýst ALT og 0 fyri vegleiðing","browseServer":"Ambætarakagi","url":"URL","protocol":"Protokoll","upload":"Send til ambætaran","uploadSubmit":"Send til ambætaran","image":"Myndir","flash":"Flash","form":"Formur","checkbox":"Flugubein","radio":"Radioknøttur","textField":"Tekstteigur","textarea":"Tekstumráði","hiddenField":"Fjaldur teigur","button":"Knøttur","select":"Valskrá","imageButton":"Myndaknøttur","notSet":"<ikki sett>","id":"Id","name":"Navn","langDir":"Tekstkós","langDirLtr":"Frá vinstru til høgru (LTR)","langDirRtl":"Frá høgru til vinstru (RTL)","langCode":"Málkoda","longDescr":"Víðkað URL frágreiðing","cssClass":"Typografi klassar","advisoryTitle":"Vegleiðandi heiti","cssStyle":"Typografi","ok":"Góðkent","cancel":"Avlýs","close":"Lat aftur","preview":"Frumsýn","resize":"Drag fyri at broyta stødd","generalTab":"Generelt","advancedTab":"Fjølbroytt","validateNumberFailed":"Hetta er ikki eitt tal.","confirmNewPage":"Allar ikki goymdar broytingar í hesum innihaldið hvørva. Skal nýggj síða lesast kortini?","confirmCancel":"Nakrir valmøguleikar eru broyttir. Ert tú vísur í, at dialogurin skal latast aftur?","options":"Options","target":"Target","targetNew":"Nýtt vindeyga (_blank)","targetTop":"Vindeyga ovast (_top)","targetSelf":"Sama vindeyga (_self)","targetParent":"Upphavligt vindeyga (_parent)","langDirLTR":"Frá vinstru til høgru (LTR)","langDirRTL":"Frá høgru til vinstru (RTL)","styles":"Style","cssClasses":"Stylesheet Classes","width":"Breidd","height":"Hædd","align":"Justering","alignLeft":"Vinstra","alignRight":"Høgra","alignCenter":"Miðsett","alignJustify":"Javnir tekstkantar","alignTop":"Ovast","alignMiddle":"Miðja","alignBottom":"Botnur","alignNone":"Eingin","invalidValue":"Invalid value.","invalidHeight":"Hædd má vera eitt tal.","invalidWidth":"Breidd má vera eitt tal.","invalidCssLength":"Virðið sett í \"%1\" feltið má vera eitt positivt tal, við ella uttan gyldugum CSS mátieind (px, %, in, cm, mm, em, ex, pt, ella pc).","invalidHtmlLength":"Virðið sett í \"%1\" feltiðield má vera eitt positivt tal, við ella uttan gyldugum CSS mátieind (px ella %).","invalidInlineStyle":"Virði specifiserað fyri inline style má hava eitt ella fleiri pør (tuples) skrivað sum \"name : value\", hvørt parið sundurskilt við semi-colon.","cssLengthTooltip":"Skriva eitt tal fyri eitt virði í pixels ella eitt tal við gyldigum CSS eind (px, %, in, cm, mm, em, ex, pt, ella pc).","unavailable":"%1<span class=\"cke_accessibility\">, ikki tøkt</span>","keyboard":{"8":"Backspace","13":"Enter","16":"Shift","17":"Ctrl","18":"Alt","32":"Space","35":"End","36":"Home","46":"Delete","224":"Command"},"keyboardShortcut":"Keyboard shortcut"},"about":{"copy":"Copyright &copy; $1. All rights reserved.","dlgTitle":"Um CKEditor","help":"Kekka $1 fyri hjálp.","moreInfo":"Licens upplýsingar finnast á heimasíðu okkara:","title":"Um CKEditor","userGuide":"CKEditor Brúkaravegleiðing"},"basicstyles":{"bold":"Feit skrift","italic":"Skráskrift","strike":"Yvirstrikað","subscript":"Lækkað skrift","superscript":"Hækkað skrift","underline":"Undirstrikað"},"blockquote":{"toolbar":"Blockquote"},"notification":{"closed":"Notification closed."},"button":{"selectedLabel":"%1 (Selected)"},"toolbar":{"toolbarCollapse":"Lat Toolbar aftur","toolbarExpand":"Vís Toolbar","toolbarGroups":{"document":"Dokument","clipboard":"Clipboard/Undo","editing":"Editering","forms":"Formar","basicstyles":"Grundleggjandi Styles","paragraph":"Reglubrot","links":"Leinkjur","insert":"Set inn","styles":"Styles","colors":"Litir","tools":"Tól"},"toolbars":"Editor toolbars"},"clipboard":{"copy":"Avrita","copyError":"Trygdaruppseting alnótskagans forðar tekstviðgeranum í at avrita tekstin. Vinarliga nýt knappaborðið til at avrita tekstin (Ctrl/Cmd+C).","cut":"Kvett","cutError":"Trygdaruppseting alnótskagans forðar tekstviðgeranum í at kvetta tekstin. Vinarliga nýt knappaborðið til at kvetta tekstin (Ctrl/Cmd+X).","paste":"Innrita","pasteNotification":"Your browser doesn't allow you to paste this way. Press %1 to paste."},"contextmenu":{"options":"Context Menu Options"},"elementspath":{"eleLabel":"Slóð til elementir","eleTitle":"%1 element"},"format":{"label":"Skriftsnið","panelTitle":"Skriftsnið","tag_address":"Adressa","tag_div":"Vanligt (DIV)","tag_h1":"Yvirskrift 1","tag_h2":"Yvirskrift 2","tag_h3":"Yvirskrift 3","tag_h4":"Yvirskrift 4","tag_h5":"Yvirskrift 5","tag_h6":"Yvirskrift 6","tag_p":"Vanligt","tag_pre":"Sniðgivið"},"horizontalrule":{"toolbar":"Ger vatnrætta linju"},"image":{"alt":"Alternativur tekstur","border":"Bordi","btnUpload":"Send til ambætaran","button2Img":"Skal valdi myndaknøttur gerast til vanliga mynd?","hSpace":"Høgri breddi","img2Button":"Skal valda mynd gerast til myndaknøtt?","infoTab":"Myndaupplýsingar","linkTab":"Tilknýti","lockRatio":"Læs lutfallið","menu":"Myndaeginleikar","resetSize":"Upprunastødd","title":"Myndaeginleikar","titleButton":"Eginleikar fyri myndaknøtt","upload":"Send","urlMissing":"URL til mynd manglar.","vSpace":"Vinstri breddi","validateBorder":"Bordi má vera eitt heiltal.","validateHSpace":"HSpace má vera eitt heiltal.","validateVSpace":"VSpace má vera eitt heiltal."},"indent":{"indent":"Økja reglubrotarinntriv","outdent":"Minka reglubrotarinntriv"},"fakeobjects":{"anchor":"Anchor","flash":"Flash Animation","hiddenfield":"Fjaldur teigur","iframe":"IFrame","unknown":"Ókent Object"},"link":{"acccessKey":"Snarvegisknöttur","advanced":"Fjølbroytt","advisoryContentType":"Vegleiðandi innihaldsslag","advisoryTitle":"Vegleiðandi heiti","anchor":{"toolbar":"Ger/broyt marknastein","menu":"Eginleikar fyri marknastein","title":"Eginleikar fyri marknastein","name":"Heiti marknasteinsins","errorName":"Vinarliga rita marknasteinsins heiti","remove":"Strika marknastein"},"anchorId":"Eftir element Id","anchorName":"Eftir navni á marknasteini","charset":"Atknýtt teknsett","cssClasses":"Typografi klassar","download":"Force Download","displayText":"Display Text","emailAddress":"Teldupost-adressa","emailBody":"Breyðtekstur","emailSubject":"Evni","id":"Id","info":"Tilknýtis upplýsingar","langCode":"Tekstkós","langDir":"Tekstkós","langDirLTR":"Frá vinstru til høgru (LTR)","langDirRTL":"Frá høgru til vinstru (RTL)","menu":"Broyt tilknýti","name":"Navn","noAnchors":"(Eingir marknasteinar eru í hesum dokumentið)","noEmail":"Vinarliga skriva teldupost-adressu","noUrl":"Vinarliga skriva tilknýti (URL)","other":"<annað>","popupDependent":"Bundið (Netscape)","popupFeatures":"Popup vindeygans víðkaðu eginleikar","popupFullScreen":"Fullur skermur (IE)","popupLeft":"Frástøða frá vinstru","popupLocationBar":"Adressulinja","popupMenuBar":"Skrábjálki","popupResizable":"Stødd kann broytast","popupScrollBars":"Rullibjálki","popupStatusBar":"Støðufrágreiðingarbjálki","popupToolbar":"Amboðsbjálki","popupTop":"Frástøða frá íerva","rel":"Relatión","selectAnchor":"Vel ein marknastein","styles":"Typografi","tabIndex":"Tabulator indeks","target":"Target","targetFrame":"<ramma>","targetFrameName":"Vís navn vindeygans","targetPopup":"<popup vindeyga>","targetPopupName":"Popup vindeygans navn","title":"Tilknýti","toAnchor":"Tilknýti til marknastein í tekstinum","toEmail":"Teldupostur","toUrl":"URL","toolbar":"Ger/broyt tilknýti","type":"Tilknýtisslag","unlink":"Strika tilknýti","upload":"Send til ambætaran"},"list":{"bulletedlist":"Punktmerktur listi","numberedlist":"Talmerktur listi"},"magicline":{"title":"Insert paragraph here"},"maximize":{"maximize":"Maksimera","minimize":"Minimera"},"pastetext":{"button":"Innrita som reinan tekst","pasteNotification":"Your browser does not allow you to paste plain text this way. Press %1 to paste."},"pastefromword":{"confirmCleanup":"Teksturin, tú roynir at seta inn, sýnist at stava frá Word. Skal teksturin reinsast fyrst?","error":"Tað eydnaðist ikki at reinsa tekstin vegna ein internan feil","title":"Innrita frá Word","toolbar":"Innrita frá Word"},"removeformat":{"toolbar":"Strika sniðgeving"},"sourcearea":{"toolbar":"Kelda"},"specialchar":{"options":"Møguleikar við serteknum","title":"Vel sertekn","toolbar":"Set inn sertekn"},"scayt":{"btn_about":"Um SCAYT","btn_dictionaries":"Orðabøkur","btn_disable":"Nokta SCAYT","btn_enable":"Loyv SCAYT","btn_langs":"Tungumál","btn_options":"Uppseting","text_title":"Kanna stavseting, meðan tú skrivar"},"stylescombo":{"label":"Typografi","panelTitle":"Formatterings stílir","panelTitle1":"Blokk stílir","panelTitle2":"Inline stílir","panelTitle3":"Object stílir"},"table":{"border":"Bordabreidd","caption":"Tabellfrágreiðing","cell":{"menu":"Meski","insertBefore":"Set meska inn áðrenn","insertAfter":"Set meska inn aftaná","deleteCell":"Strika meskar","merge":"Flætta meskar","mergeRight":"Flætta meskar til høgru","mergeDown":"Flætta saman","splitHorizontal":"Kloyv meska vatnrætt","splitVertical":"Kloyv meska loddrætt","title":"Mesku eginleikar","cellType":"Mesku slag","rowSpan":"Ræð spenni","colSpan":"Kolonnu spenni","wordWrap":"Orðkloyving","hAlign":"Horisontal plasering","vAlign":"Loddrøtt plasering","alignBaseline":"Basislinja","bgColor":"Bakgrundslitur","borderColor":"Bordalitur","data":"Data","header":"Header","yes":"Ja","no":"Nei","invalidWidth":"Meskubreidd má vera eitt tal.","invalidHeight":"Meskuhædd má vera eitt tal.","invalidRowSpan":"Raðspennið má vera eitt heiltal.","invalidColSpan":"Kolonnuspennið má vera eitt heiltal.","chooseColor":"Vel"},"cellPad":"Meskubreddi","cellSpace":"Fjarstøða millum meskar","column":{"menu":"Kolonna","insertBefore":"Set kolonnu inn áðrenn","insertAfter":"Set kolonnu inn aftaná","deleteColumn":"Strika kolonnur"},"columns":"Kolonnur","deleteTable":"Strika tabell","headers":"Yvirskriftir","headersBoth":"Báðir","headersColumn":"Fyrsta kolonna","headersNone":"Eingin","headersRow":"Fyrsta rað","invalidBorder":"Borda-stødd má vera eitt tal.","invalidCellPadding":"Cell padding má vera eitt tal.","invalidCellSpacing":"Cell spacing má vera eitt tal.","invalidCols":"Talið av kolonnum má vera eitt tal størri enn 0.","invalidHeight":"Tabell-hædd má vera eitt tal.","invalidRows":"Talið av røðum má vera eitt tal størri enn 0.","invalidWidth":"Tabell-breidd má vera eitt tal.","menu":"Eginleikar fyri tabell","row":{"menu":"Rað","insertBefore":"Set rað inn áðrenn","insertAfter":"Set rað inn aftaná","deleteRow":"Strika røðir"},"rows":"Røðir","summary":"Samandráttur","title":"Eginleikar fyri tabell","toolbar":"Tabell","widthPc":"prosent","widthPx":"pixels","widthUnit":"breiddar unit"},"undo":{"redo":"Vend aftur","undo":"Angra"},"wsc":{"btnIgnore":"Forfjóna","btnIgnoreAll":"Forfjóna alt","btnReplace":"Yvirskriva","btnReplaceAll":"Yvirskriva alt","btnUndo":"Angra","changeTo":"Broyt til","errorLoading":"Feilur við innlesing av application service host: %s.","ieSpellDownload":"Rættstavarin er ikki tøkur í tekstviðgeranum. Vilt tú heinta hann nú?","manyChanges":"Rættstavarin liðugur: %1 orð broytt","noChanges":"Rættstavarin liðugur: Einki orð varð broytt","noMispell":"Rættstavarin liðugur: Eingin feilur funnin","noSuggestions":"- Einki uppskot -","notAvailable":"Tíverri, ikki tøkt í løtuni.","notInDic":"Finst ikki í orðabókini","oneChange":"Rættstavarin liðugur: Eitt orð er broytt","progress":"Rættstavarin arbeiðir...","title":"Kanna stavseting","toolbar":"Kanna stavseting"}}; \ No newline at end of file diff --git a/admin/plugins/ckeditor/lang/fr-ca.js b/admin/plugins/ckeditor/lang/fr-ca.js deleted file mode 100644 index 8978a20..0000000 --- a/admin/plugins/ckeditor/lang/fr-ca.js +++ /dev/null @@ -1,5 +0,0 @@ -/* -Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. -For licensing, see LICENSE.md or http://ckeditor.com/license -*/ -CKEDITOR.lang['fr-ca']={"editor":"Éditeur de texte enrichi","editorPanel":"Rich Text Editor panel","common":{"editorHelp":"Appuyez sur 0 pour de l'aide","browseServer":"Parcourir le serveur","url":"URL","protocol":"Protocole","upload":"Envoyer","uploadSubmit":"Envoyer au serveur","image":"Image","flash":"Animation Flash","form":"Formulaire","checkbox":"Case à cocher","radio":"Bouton radio","textField":"Champ texte","textarea":"Zone de texte","hiddenField":"Champ caché","button":"Bouton","select":"Liste déroulante","imageButton":"Bouton image","notSet":"<Par défaut>","id":"Id","name":"Nom","langDir":"Sens d'écriture","langDirLtr":"De gauche à droite (LTR)","langDirRtl":"De droite à gauche (RTL)","langCode":"Code langue","longDescr":"URL de description longue","cssClass":"Classes CSS","advisoryTitle":"Titre","cssStyle":"Style","ok":"OK","cancel":"Annuler","close":"Fermer","preview":"Aperçu","resize":"Redimensionner","generalTab":"Général","advancedTab":"Avancé","validateNumberFailed":"Cette valeur n'est pas un nombre.","confirmNewPage":"Les changements non sauvegardés seront perdus. Êtes-vous certain de vouloir charger une nouvelle page?","confirmCancel":"Certaines options ont été modifiées. Êtes-vous certain de vouloir fermer?","options":"Options","target":"Cible","targetNew":"Nouvelle fenêtre (_blank)","targetTop":"Fenêtre supérieur (_top)","targetSelf":"Cette fenêtre (_self)","targetParent":"Fenêtre parent (_parent)","langDirLTR":"De gauche à droite (LTR)","langDirRTL":"De droite à gauche (RTL)","styles":"Style","cssClasses":"Classe CSS","width":"Largeur","height":"Hauteur","align":"Alignement","alignLeft":"Gauche","alignRight":"Droite","alignCenter":"Centré","alignJustify":"Justifié","alignTop":"Haut","alignMiddle":"Milieu","alignBottom":"Bas","alignNone":"None","invalidValue":"Valeur invalide.","invalidHeight":"La hauteur doit être un nombre.","invalidWidth":"La largeur doit être un nombre.","invalidCssLength":"La valeur spécifiée pour le champ \"%1\" doit être un nombre positif avec ou sans unité de mesure CSS valide (px, %, in, cm, mm, em, ex, pt, ou pc).","invalidHtmlLength":"La valeur spécifiée pour le champ \"%1\" doit être un nombre positif avec ou sans unité de mesure HTML valide (px ou %).","invalidInlineStyle":"La valeur spécifiée pour le style intégré doit être composée d'un ou plusieurs couples de valeur au format \"nom : valeur\", separés par des points-virgules.","cssLengthTooltip":"Entrer un nombre pour la valeur en pixel ou un nombre avec une unité CSS valide (px, %, in, cm, mm, em, ex, pt, ou pc).","unavailable":"%1<span class=\"cke_accessibility\">, indisponible</span>","keyboard":{"8":"Backspace","13":"Enter","16":"Shift","17":"Ctrl","18":"Alt","32":"Space","35":"End","36":"Home","46":"Delete","224":"Command"},"keyboardShortcut":"Keyboard shortcut"},"about":{"copy":"Copyright &copy; $1. Tous droits réservés.","dlgTitle":"À propos de CKEditor","help":"Consulter $1 pour l'aide.","moreInfo":"Pour les informations de licence, consulter notre site internet:","title":"À propos de CKEditor","userGuide":"Guide utilisateur de CKEditor"},"basicstyles":{"bold":"Gras","italic":"Italique","strike":"Barré","subscript":"Indice","superscript":"Exposant","underline":"Souligné"},"blockquote":{"toolbar":"Citation"},"notification":{"closed":"Notification closed."},"button":{"selectedLabel":"%1 (Selected)"},"toolbar":{"toolbarCollapse":"Enrouler la barre d'outils","toolbarExpand":"Dérouler la barre d'outils","toolbarGroups":{"document":"Document","clipboard":"Presse papier/Annuler","editing":"Édition","forms":"Formulaires","basicstyles":"Styles de base","paragraph":"Paragraphe","links":"Liens","insert":"Insérer","styles":"Styles","colors":"Couleurs","tools":"Outils"},"toolbars":"Barre d'outils de l'éditeur"},"clipboard":{"copy":"Copier","copyError":"Les paramètres de sécurité de votre navigateur empêchent l'éditeur de copier automatiquement vos données. Veuillez utiliser les équivalents claviers (Ctrl/Cmd+C).","cut":"Couper","cutError":"Les paramètres de sécurité de votre navigateur empêchent l'éditeur de couper automatiquement vos données. Veuillez utiliser les équivalents claviers (Ctrl/Cmd+X).","paste":"Coller","pasteNotification":"Your browser doesn't allow you to paste this way. Press %1 to paste."},"contextmenu":{"options":"Options du menu contextuel"},"elementspath":{"eleLabel":"Chemin d'éléments","eleTitle":"element %1"},"format":{"label":"Format","panelTitle":"Format de paragraphe","tag_address":"Adresse","tag_div":"Normal (DIV)","tag_h1":"En-tête 1","tag_h2":"En-tête 2","tag_h3":"En-tête 3","tag_h4":"En-tête 4","tag_h5":"En-tête 5","tag_h6":"En-tête 6","tag_p":"Normal","tag_pre":"Formaté"},"horizontalrule":{"toolbar":"Insérer un séparateur horizontale"},"image":{"alt":"Texte alternatif","border":"Bordure","btnUpload":"Envoyer sur le serveur","button2Img":"Désirez-vous transformer l'image sélectionnée en image simple?","hSpace":"Espacement horizontal","img2Button":"Désirez-vous transformer l'image sélectionnée en bouton image?","infoTab":"Informations sur l'image","linkTab":"Lien","lockRatio":"Verrouiller les proportions","menu":"Propriétés de l'image","resetSize":"Taille originale","title":"Propriétés de l'image","titleButton":"Propriétés du bouton image","upload":"Téléverser","urlMissing":"L'URL de la source de l'image est manquant.","vSpace":"Espacement vertical","validateBorder":"La bordure doit être un entier.","validateHSpace":"L'espacement horizontal doit être un entier.","validateVSpace":"L'espacement vertical doit être un entier."},"indent":{"indent":"Augmenter le retrait","outdent":"Diminuer le retrait"},"fakeobjects":{"anchor":"Ancre","flash":"Animation Flash","hiddenfield":"Champ caché","iframe":"IFrame","unknown":"Objet inconnu"},"link":{"acccessKey":"Touche d'accessibilité","advanced":"Avancé","advisoryContentType":"Type de contenu","advisoryTitle":"Description","anchor":{"toolbar":"Ancre","menu":"Modifier l'ancre","title":"Propriétés de l'ancre","name":"Nom de l'ancre","errorName":"Veuillez saisir le nom de l'ancre","remove":"Supprimer l'ancre"},"anchorId":"Par ID","anchorName":"Par nom","charset":"Encodage de la cible","cssClasses":"Classes CSS","download":"Force Download","displayText":"Display Text","emailAddress":"Courriel","emailBody":"Corps du message","emailSubject":"Objet du message","id":"ID","info":"Informations sur le lien","langCode":"Code de langue","langDir":"Sens d'écriture","langDirLTR":"De gauche à droite (LTR)","langDirRTL":"De droite à gauche (RTL)","menu":"Modifier le lien","name":"Nom","noAnchors":"(Pas d'ancre disponible dans le document)","noEmail":"Veuillez saisir le courriel","noUrl":"Veuillez saisir l'URL","other":"<autre>","popupDependent":"Dépendante (Netscape)","popupFeatures":"Caractéristiques de la fenêtre popup","popupFullScreen":"Plein écran (IE)","popupLeft":"Position de la gauche","popupLocationBar":"Barre d'adresse","popupMenuBar":"Barre de menu","popupResizable":"Redimensionnable","popupScrollBars":"Barres de défilement","popupStatusBar":"Barre d'état","popupToolbar":"Barre d'outils","popupTop":"Position à partir du haut","rel":"Relation","selectAnchor":"Sélectionner une ancre","styles":"Style","tabIndex":"Ordre de tabulation","target":"Destination","targetFrame":"<Cadre>","targetFrameName":"Nom du cadre de destination","targetPopup":"<fenêtre popup>","targetPopupName":"Nom de la fenêtre popup","title":"Lien","toAnchor":"Ancre dans cette page","toEmail":"Courriel","toUrl":"URL","toolbar":"Lien","type":"Type de lien","unlink":"Supprimer le lien","upload":"Téléverser"},"list":{"bulletedlist":"Liste à puces","numberedlist":"Liste numérotée"},"magicline":{"title":"Insérer le paragraphe ici"},"maximize":{"maximize":"Maximizer","minimize":"Minimizer"},"pastetext":{"button":"Coller comme texte","pasteNotification":"Your browser does not allow you to paste plain text this way. Press %1 to paste."},"pastefromword":{"confirmCleanup":"Le texte que vous tentez de coller semble provenir de Word. Désirez vous le nettoyer avant de coller?","error":"Il n'a pas été possible de nettoyer les données collées du à une erreur interne","title":"Coller de Word","toolbar":"Coller de Word"},"removeformat":{"toolbar":"Supprimer le formatage"},"sourcearea":{"toolbar":"Source"},"specialchar":{"options":"Option des caractères spéciaux","title":"Sélectionner un caractère spécial","toolbar":"Insérer un caractère spécial"},"scayt":{"btn_about":"About SCAYT","btn_dictionaries":"Dictionaries","btn_disable":"Disable SCAYT","btn_enable":"Enable SCAYT","btn_langs":"Languages","btn_options":"Options","text_title":"Spell Check As You Type"},"stylescombo":{"label":"Styles","panelTitle":"Styles de formattage","panelTitle1":"Styles de block","panelTitle2":"Styles en ligne","panelTitle3":"Styles d'objet"},"table":{"border":"Taille de la bordure","caption":"Titre","cell":{"menu":"Cellule","insertBefore":"Insérer une cellule avant","insertAfter":"Insérer une cellule après","deleteCell":"Supprimer des cellules","merge":"Fusionner les cellules","mergeRight":"Fusionner à droite","mergeDown":"Fusionner en bas","splitHorizontal":"Scinder la cellule horizontalement","splitVertical":"Scinder la cellule verticalement","title":"Propriétés de la cellule","cellType":"Type de cellule","rowSpan":"Fusion de lignes","colSpan":"Fusion de colonnes","wordWrap":"Retour à la ligne","hAlign":"Alignement horizontal","vAlign":"Alignement vertical","alignBaseline":"Bas du texte","bgColor":"Couleur d'arrière plan","borderColor":"Couleur de bordure","data":"Données","header":"En-tête","yes":"Oui","no":"Non","invalidWidth":"La largeur de cellule doit être un nombre.","invalidHeight":"La hauteur de cellule doit être un nombre.","invalidRowSpan":"La fusion de lignes doit être un nombre entier.","invalidColSpan":"La fusion de colonnes doit être un nombre entier.","chooseColor":"Sélectionner"},"cellPad":"Marge interne des cellules","cellSpace":"Espacement des cellules","column":{"menu":"Colonne","insertBefore":"Insérer une colonne avant","insertAfter":"Insérer une colonne après","deleteColumn":"Supprimer des colonnes"},"columns":"Colonnes","deleteTable":"Supprimer le tableau","headers":"En-têtes","headersBoth":"Les deux.","headersColumn":"Première colonne","headersNone":"Aucun","headersRow":"Première ligne","invalidBorder":"La taille de bordure doit être un nombre.","invalidCellPadding":"La marge interne des cellules doit être un nombre positif.","invalidCellSpacing":"L'espacement des cellules doit être un nombre positif.","invalidCols":"Le nombre de colonnes doit être supérieur à 0.","invalidHeight":"La hauteur du tableau doit être un nombre.","invalidRows":"Le nombre de lignes doit être supérieur à 0.","invalidWidth":"La largeur du tableau doit être un nombre.","menu":"Propriétés du tableau","row":{"menu":"Ligne","insertBefore":"Insérer une ligne avant","insertAfter":"Insérer une ligne après","deleteRow":"Supprimer des lignes"},"rows":"Lignes","summary":"Résumé","title":"Propriétés du tableau","toolbar":"Tableau","widthPc":"pourcentage","widthPx":"pixels","widthUnit":"unité de largeur"},"undo":{"redo":"Refaire","undo":"Annuler"},"wsc":{"btnIgnore":"Ignorer","btnIgnoreAll":"Ignorer tout","btnReplace":"Remplacer","btnReplaceAll":"Remplacer tout","btnUndo":"Annuler","changeTo":"Changer en","errorLoading":"Error loading application service host: %s.","ieSpellDownload":"Le Correcteur d'orthographe n'est pas installé. Souhaitez-vous le télécharger maintenant?","manyChanges":"Vérification d'orthographe terminée: %1 mots modifiés","noChanges":"Vérification d'orthographe terminée: Pas de modifications","noMispell":"Vérification d'orthographe terminée: pas d'erreur trouvée","noSuggestions":"- Pas de suggestion -","notAvailable":"Sorry, but service is unavailable now.","notInDic":"Pas dans le dictionnaire","oneChange":"Vérification d'orthographe terminée: Un mot modifié","progress":"Vérification d'orthographe en cours...","title":"Spell Checker","toolbar":"Orthographe"}}; \ No newline at end of file diff --git a/admin/plugins/ckeditor/lang/fr.js b/admin/plugins/ckeditor/lang/fr.js deleted file mode 100644 index 2298e78..0000000 --- a/admin/plugins/ckeditor/lang/fr.js +++ /dev/null @@ -1,5 +0,0 @@ -/* -Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. -For licensing, see LICENSE.md or http://ckeditor.com/license -*/ -CKEDITOR.lang['fr']={"editor":"Éditeur de texte enrichi","editorPanel":"Tableau de bord de l'éditeur de texte enrichi","common":{"editorHelp":"Utilisez le raccourci Alt-0 pour obtenir de l'aide","browseServer":"Parcourir le serveur","url":"URL","protocol":"Protocole","upload":"Télécharger","uploadSubmit":"Envoyer sur le serveur","image":"Image","flash":"Flash","form":"Formulaire","checkbox":"Case à cocher","radio":"Bouton radio","textField":"Champ texte","textarea":"Zone de texte","hiddenField":"Champ invisible","button":"Bouton","select":"Liste déroulante","imageButton":"Bouton avec image","notSet":"<indéfini>","id":"ID","name":"Nom","langDir":"Sens d'écriture","langDirLtr":"Gauche à droite (LTR)","langDirRtl":"Droite à gauche (RTL)","langCode":"Code de langue","longDescr":"URL de description longue","cssClass":"Classes de style","advisoryTitle":"Infobulle","cssStyle":"Style","ok":"OK","cancel":"Annuler","close":"Fermer","preview":"Aperçu","resize":"Redimensionner","generalTab":"Général","advancedTab":"Avancé","validateNumberFailed":"Cette valeur n'est pas un nombre.","confirmNewPage":"Les changements non sauvegardés seront perdus. Êtes-vous sûr de vouloir charger une nouvelle page ?","confirmCancel":"Certaines options ont été modifiées. Êtes-vous sûr de vouloir fermer ?","options":"Options","target":"Cible","targetNew":"Nouvelle fenêtre (_blank)","targetTop":"Fenêtre supérieure (_top)","targetSelf":"Même fenêtre (_self)","targetParent":"Fenêtre parent (_parent)","langDirLTR":"Gauche à droite (LTR)","langDirRTL":"Droite à gauche (RTL)","styles":"Style","cssClasses":"Classes de style","width":"Largeur","height":"Hauteur","align":"Alignement","alignLeft":"Gauche","alignRight":"Droite","alignCenter":"Centrer","alignJustify":"Justifier","alignTop":"Haut","alignMiddle":"Milieu","alignBottom":"Bas","alignNone":"Aucun","invalidValue":"Valeur invalide.","invalidHeight":"La hauteur doit être un nombre.","invalidWidth":"La largeur doit être un nombre.","invalidCssLength":"La valeur spécifiée pour le champ « %1 » doit être un nombre positif avec ou sans unité de mesure CSS valide (px, %, in, cm, mm, em, ex, pt, ou pc).","invalidHtmlLength":"La valeur spécifiée pour le champ « %1 » doit être un nombre positif avec ou sans unité de mesure HTML valide (px ou %).","invalidInlineStyle":"La valeur spécifiée pour le style en ligne doit être composée d'un ou plusieurs couples au format « nom : valeur », séparés par des points-virgules.","cssLengthTooltip":"Entrer un nombre pour une valeur en pixels ou un nombre avec une unité de mesure CSS valide (px, %, in, cm, mm, em, ex, pt, ou pc).","unavailable":"%1<span class=\"cke_accessibility\">, indisponible</span>","keyboard":{"8":"Retour arrière","13":"Entrée","16":"Majuscule","17":"Ctrl","18":"Alt","32":"Espace","35":"Fin","36":"Origine","46":"Supprimer","224":"Commande"},"keyboardShortcut":"Raccourci clavier"},"about":{"copy":"Copyright &copy; $1. Tous droits réservés.","dlgTitle":"À propos de CKEditor","help":"Consulter $1 pour obtenir de l'aide.","moreInfo":"Pour les informations de licence, veuillez visiter notre site web :","title":"À propos de CKEditor","userGuide":"Guide de l'utilisateur CKEditor (en anglais)"},"basicstyles":{"bold":"Gras","italic":"Italique","strike":"Barré","subscript":"Indice","superscript":"Exposant","underline":"Souligné"},"blockquote":{"toolbar":"Citation"},"notification":{"closed":"Notification fermée."},"button":{"selectedLabel":"%1 (Sélectionné)"},"toolbar":{"toolbarCollapse":"Enrouler la barre d'outils","toolbarExpand":"Dérouler la barre d'outils","toolbarGroups":{"document":"Document","clipboard":"Presse-papier/Défaire","editing":"Édition","forms":"Formulaires","basicstyles":"Styles de base","paragraph":"Paragraphe","links":"Liens","insert":"Insérer","styles":"Styles","colors":"Couleurs","tools":"Outils"},"toolbars":"Barres d'outils de l'éditeur"},"clipboard":{"copy":"Copier","copyError":"Les paramètres de sécurité de votre navigateur n'autorisent pas l'éditeur à exécuter automatiquement l'opération « Copier ». Veuillez utiliser le raccourci clavier à cet effet (Ctrl/Cmd+C).","cut":"Couper","cutError":"Les paramètres de sécurité de votre navigateur n'autorisent pas l'éditeur à exécuter automatiquement l'opération « Couper ». Veuillez utiliser le raccourci clavier à cet effet (Ctrl/Cmd+X).","paste":"Coller","pasteNotification":"Your browser doesn't allow you to paste this way. Press %1 to paste."},"contextmenu":{"options":"Options du menu contextuel"},"elementspath":{"eleLabel":"Chemin des éléments","eleTitle":"Élément %1"},"format":{"label":"Format","panelTitle":"Format de paragraphe","tag_address":"Adresse","tag_div":"Division","tag_h1":"Titre 1","tag_h2":"Titre 2","tag_h3":"Titre 3","tag_h4":"Titre 4","tag_h5":"Titre 5","tag_h6":"Titre 6","tag_p":"Normal","tag_pre":"Préformaté"},"horizontalrule":{"toolbar":"Ligne horizontale"},"image":{"alt":"Texte alternatif","border":"Bordure","btnUpload":"Envoyer sur le serveur","button2Img":"Voulez-vous transformer le bouton avec image sélectionné en simple image ?","hSpace":"Espacement horizontal","img2Button":"Voulez-vous transformer l'image sélectionnée en bouton avec image ?","infoTab":"Informations sur l'image","linkTab":"Lien","lockRatio":"Conserver les proportions","menu":"Propriétés de l'image","resetSize":"Réinitialiser la taille","title":"Propriétés de l'image","titleButton":"Propriétés du bouton avec image","upload":"Téléverser","urlMissing":"L'URL source de l'image est manquante.","vSpace":"Espacement vertical","validateBorder":"La bordure doit être un nombre entier.","validateHSpace":"L'espacement horizontal doit être un nombre entier.","validateVSpace":"L'espacement vertical doit être un nombre entier."},"indent":{"indent":"Augmenter le retrait","outdent":"Diminuer le retrait"},"fakeobjects":{"anchor":"Ancre","flash":"Animation Flash","hiddenfield":"Champ invisible","iframe":"Cadre de contenu incorporé","unknown":"Objet inconnu"},"link":{"acccessKey":"Touche d'accessibilité","advanced":"Avancé","advisoryContentType":"Type de contenu (indicatif)","advisoryTitle":"Infobulle","anchor":{"toolbar":"Ancre","menu":"Modifier l'ancre","title":"Propriétés de l'ancre","name":"Nom de l'ancre","errorName":"Veuillez entrer le nom de l'ancre.","remove":"Supprimer l'ancre"},"anchorId":"Par ID d'élément","anchorName":"Par nom d'ancre","charset":"Encodage de la ressource liée","cssClasses":"Classes de style","download":"Forcer le téléchargement","displayText":"Afficher le texte","emailAddress":"Adresse électronique","emailBody":"Corps du message","emailSubject":"Sujet du message","id":"ID","info":"Informations sur le lien","langCode":"Code de langue","langDir":"Sens d'écriture","langDirLTR":"Gauche à droite","langDirRTL":"Droite à gauche (RTL)","menu":"Modifier le lien","name":"Nom","noAnchors":"(Aucune ancre disponible dans ce document)","noEmail":"Veuillez entrer l'adresse électronique","noUrl":"Veuillez entrer l'URL du lien","other":"<autre>","popupDependent":"Dépendante (Netscape)","popupFeatures":"Caractéristiques de la fenêtre surgissante","popupFullScreen":"Plein écran (IE)","popupLeft":"À gauche","popupLocationBar":"Barre d'adresse","popupMenuBar":"Barre de menu","popupResizable":"Redimensionnable","popupScrollBars":"Barres de défilement","popupStatusBar":"Barre d'état","popupToolbar":"Barre d'outils","popupTop":"En haut","rel":"Relation","selectAnchor":"Sélectionner une ancre","styles":"Style","tabIndex":"Indice de tabulation","target":"Cible","targetFrame":"<cadre>","targetFrameName":"Nom du cadre affecté","targetPopup":"<fenêtre surgissante>","targetPopupName":"Nom de la fenêtre surgissante","title":"Lien","toAnchor":"Ancre","toEmail":"Courriel","toUrl":"URL","toolbar":"Lien","type":"Type de lien","unlink":"Supprimer le lien","upload":"Téléverser"},"list":{"bulletedlist":"Insérer/Supprimer une liste à puces","numberedlist":"Insérer/Supprimer une liste numérotée"},"magicline":{"title":"Insérer un paragraphe ici"},"maximize":{"maximize":"Agrandir","minimize":"Réduire"},"pastetext":{"button":"Coller comme texte brut","pasteNotification":"Your browser does not allow you to paste plain text this way. Press %1 to paste."},"pastefromword":{"confirmCleanup":"Le texte à coller semble provenir de Word. Désirez-vous le nettoyer avant de coller ?","error":"Les données collées n'ont pas pu être nettoyées à cause d'une erreur interne","title":"Coller depuis Word","toolbar":"Coller depuis Word"},"removeformat":{"toolbar":"Supprimer la mise en forme"},"sourcearea":{"toolbar":"Source"},"specialchar":{"options":"Options des caractères spéciaux","title":"Sélectionner un caractère","toolbar":"Insérer un caractère spécial"},"scayt":{"btn_about":"A propos de SCAYT","btn_dictionaries":"Dictionnaires","btn_disable":"Désactiver SCAYT","btn_enable":"Activer SCAYT","btn_langs":"Langues","btn_options":"Options","text_title":"Vérification de l'Orthographe en Cours de Frappe (SCAYT)"},"stylescombo":{"label":"Styles","panelTitle":"Styles de mise en forme","panelTitle1":"Styles de bloc","panelTitle2":"Styles en ligne","panelTitle3":"Styles d'objet"},"table":{"border":"Taille de la bordure","caption":"Titre du tableau","cell":{"menu":"Cellule","insertBefore":"Insérer une cellule avant","insertAfter":"Insérer une cellule après","deleteCell":"Supprimer les cellules","merge":"Fusionner les cellules","mergeRight":"Fusionner vers la droite","mergeDown":"Fusionner vers le bas","splitHorizontal":"Scinder la cellule horizontalement","splitVertical":"Scinder la cellule verticalement","title":"Propriétés de la cellule","cellType":"Type de cellule","rowSpan":"Lignes occupées","colSpan":"Colonnes occupées","wordWrap":"Césure","hAlign":"Alignement horizontal","vAlign":"Alignement vertical","alignBaseline":"Ligne de base","bgColor":"Couleur d'arrière-plan","borderColor":"Couleur de bordure","data":"Données","header":"En-tête","yes":"Oui","no":"Non","invalidWidth":"La largeur de la cellule doit être un nombre.","invalidHeight":"La hauteur de la cellule doit être un nombre.","invalidRowSpan":"Le nombre de colonnes occupées doit être un nombre entier.","invalidColSpan":"Le nombre de colonnes occupées doit être un nombre entier.","chooseColor":"Choisir"},"cellPad":"Marge interne des cellules","cellSpace":"Espacement entre les cellules","column":{"menu":"Colonne","insertBefore":"Insérer une colonne avant","insertAfter":"Insérer une colonne après","deleteColumn":"Supprimer les colonnes"},"columns":"Colonnes","deleteTable":"Supprimer le tableau","headers":"En-têtes","headersBoth":"Les deux","headersColumn":"Première colonne","headersNone":"Aucun","headersRow":"Première ligne","invalidBorder":"La taille de la bordure doit être un nombre.","invalidCellPadding":"La marge interne des cellules doit être un nombre positif.","invalidCellSpacing":"L'espacement entre les cellules doit être un nombre positif.","invalidCols":"Le nombre de colonnes doit être supérieur à 0.","invalidHeight":"La hauteur du tableau doit être un nombre.","invalidRows":"Le nombre de lignes doit être supérieur à 0.","invalidWidth":"La largeur du tableau doit être un nombre.","menu":"Propriétés du tableau","row":{"menu":"Ligne","insertBefore":"Insérer une ligne avant","insertAfter":"Insérer une ligne après","deleteRow":"Supprimer les lignes"},"rows":"Lignes","summary":"Résumé (description)","title":"Propriétés du tableau","toolbar":"Tableau","widthPc":"pour cent","widthPx":"pixels","widthUnit":"unité de largeur"},"undo":{"redo":"Rétablir","undo":"Annuler"},"wsc":{"btnIgnore":"Ignorer","btnIgnoreAll":"Ignorer tout","btnReplace":"Remplacer","btnReplaceAll":"Remplacer tout","btnUndo":"Annuler","changeTo":"Modifier pour","errorLoading":"Erreur du chargement du service depuis l'hôte : %s.","ieSpellDownload":"La vérification d'orthographe n'est pas installée. Voulez-vous la télécharger maintenant?","manyChanges":"Vérification de l'orthographe terminée : %1 mots corrigés.","noChanges":"Vérification de l'orthographe terminée : Aucun mot corrigé.","noMispell":"Vérification de l'orthographe terminée : aucune erreur trouvée.","noSuggestions":"- Aucune suggestion -","notAvailable":"Désolé, le service est indisponible actuellement.","notInDic":"N'existe pas dans le dictionnaire.","oneChange":"Vérification de l'orthographe terminée : Un seul mot corrigé.","progress":"Vérification de l'orthographe en cours...","title":"Vérifier l'orthographe","toolbar":"Vérifier l'orthographe"}}; \ No newline at end of file diff --git a/admin/plugins/ckeditor/lang/gl.js b/admin/plugins/ckeditor/lang/gl.js deleted file mode 100644 index 648e1e8..0000000 --- a/admin/plugins/ckeditor/lang/gl.js +++ /dev/null @@ -1,5 +0,0 @@ -/* -Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. -For licensing, see LICENSE.md or http://ckeditor.com/license -*/ -CKEDITOR.lang['gl']={"editor":"Editor de texto mellorado","editorPanel":"Panel do editor de texto mellorado","common":{"editorHelp":"Prema ALT 0 para obter axuda","browseServer":"Examinar o servidor","url":"URL","protocol":"Protocolo","upload":"Enviar","uploadSubmit":"Enviar ao servidor","image":"Imaxe","flash":"Flash","form":"Formulario","checkbox":"Caixa de selección","radio":"Botón de opción","textField":"Campo de texto","textarea":"Área de texto","hiddenField":"Campo agochado","button":"Botón","select":"Campo de selección","imageButton":"Botón de imaxe","notSet":"<sen estabelecer>","id":"ID","name":"Nome","langDir":"Dirección de escritura do idioma","langDirLtr":"Esquerda a dereita (LTR)","langDirRtl":"Dereita a esquerda (RTL)","langCode":"Código do idioma","longDescr":"Descrición completa do URL","cssClass":"Clases da folla de estilos","advisoryTitle":"Título","cssStyle":"Estilo","ok":"Aceptar","cancel":"Cancelar","close":"Pechar","preview":"Vista previa","resize":"Redimensionar","generalTab":"Xeral","advancedTab":"Avanzado","validateNumberFailed":"Este valor non é un número.","confirmNewPage":"Calquera cambio que non gardara neste contido perderase.\r\nConfirma que quere cargar unha páxina nova?","confirmCancel":"Algunhas das opcións foron cambiadas.\r\nConfirma que quere pechar o diálogo?","options":"Opcións","target":"Destino","targetNew":"Nova xanela (_blank)","targetTop":"Xanela principal (_top)","targetSelf":"Mesma xanela (_self)","targetParent":"Xanela superior (_parent)","langDirLTR":"Esquerda a dereita (LTR)","langDirRTL":"Dereita a esquerda (RTL)","styles":"Estilo","cssClasses":"Clases da folla de estilos","width":"Largo","height":"Alto","align":"Aliñamento","alignLeft":"Esquerda","alignRight":"Dereita","alignCenter":"Centro","alignJustify":"Xustificado","alignTop":"Arriba","alignMiddle":"Centro","alignBottom":"Abaixo","alignNone":"Ningún","invalidValue":"Valor incorrecto.","invalidHeight":"O alto debe ser un número.","invalidWidth":"O largo debe ser un número.","invalidCssLength":"O valor especificado para o campo «%1» debe ser un número positivo con ou sen unha unidade de medida CSS correcta (px, %, in, cm, mm, em, ex, pt, ou pc).","invalidHtmlLength":"O valor especificado para o campo «%1» debe ser un número positivo con ou sen unha unidade de medida HTML correcta (px ou %).","invalidInlineStyle":"O valor especificado no estilo en liña debe consistir nunha ou máis tuplas co formato «nome : valor», separadas por punto e coma.","cssLengthTooltip":"Escriba un número para o valor en píxeles ou un número cunha unidade CSS correcta (px, %, in, cm, mm, em, ex, pt, ou pc).","unavailable":"%1<span class=\"cke_accessibility\">, non dispoñíbel</span>","keyboard":{"8":"Ir atrás","13":"Intro","16":"Maiús","17":"Ctrl","18":"Alt","32":"Espazo","35":"Fin","36":"Inicio","46":"Supr","224":"Orde"},"keyboardShortcut":"Atallo de teclado"},"about":{"copy":"Copyright &copy; $1. Todos os dereitos reservados.","dlgTitle":"Sobre o CKEditor","help":"Consulte $1 para obter axuda.","moreInfo":"Para obter información sobre a licenza, visite o noso sitio web:","title":"Sobre o CKEditor","userGuide":"Guía do usuario do CKEditor"},"basicstyles":{"bold":"Negra","italic":"Cursiva","strike":"Riscado","subscript":"Subíndice","superscript":"Superíndice","underline":"Subliñado"},"blockquote":{"toolbar":"Cita"},"notification":{"closed":"Notificación pechada."},"button":{"selectedLabel":"%1 (seleccionado)"},"toolbar":{"toolbarCollapse":"Contraer a barra de ferramentas","toolbarExpand":"Expandir a barra de ferramentas","toolbarGroups":{"document":"Documento","clipboard":"Portapapeis/desfacer","editing":"Edición","forms":"Formularios","basicstyles":"Estilos básicos","paragraph":"Paragrafo","links":"Ligazóns","insert":"Inserir","styles":"Estilos","colors":"Cores","tools":"Ferramentas"},"toolbars":"Barras de ferramentas do editor"},"clipboard":{"copy":"Copiar","copyError":"Os axustes de seguranza do seu navegador non permiten que o editor realice automaticamente as tarefas de copia. Use o teclado para iso (Ctrl/Cmd+C).","cut":"Cortar","cutError":"Os axustes de seguranza do seu navegador non permiten que o editor realice automaticamente as tarefas de corte. Use o teclado para iso (Ctrl/Cmd+X).","paste":"Pegar","pasteNotification":"O seu navegador non permite pegar deste xeito. Prema %1 para pegar."},"contextmenu":{"options":"Opcións do menú contextual"},"elementspath":{"eleLabel":"Ruta dos elementos","eleTitle":"Elemento %1"},"format":{"label":"Formato","panelTitle":"Formato do parágrafo","tag_address":"Enderezo","tag_div":"Normal (DIV)","tag_h1":"Enacabezado 1","tag_h2":"Encabezado 2","tag_h3":"Encabezado 3","tag_h4":"Encabezado 4","tag_h5":"Encabezado 5","tag_h6":"Encabezado 6","tag_p":"Normal","tag_pre":"Formatado"},"horizontalrule":{"toolbar":"Inserir unha liña horizontal"},"image":{"alt":"Texto alternativo","border":"Bordo","btnUpload":"Enviar ao servidor","button2Img":"Quere converter o botón da imaxe seleccionada nunha imaxe sinxela?","hSpace":"Esp.Horiz.","img2Button":"Quere converter a imaxe seleccionada nun botón de imaxe?","infoTab":"Información da imaxe","linkTab":"Ligazón","lockRatio":"Proporcional","menu":"Propiedades da imaxe","resetSize":"Tamaño orixinal","title":"Propiedades da imaxe","titleButton":"Propiedades do botón de imaxe","upload":"Cargar","urlMissing":"Non se atopa o URL da imaxe.","vSpace":"Esp.Vert.","validateBorder":"O bordo debe ser un número.","validateHSpace":"O espazado horizontal debe ser un número.","validateVSpace":"O espazado vertical debe ser un número."},"indent":{"indent":"Aumentar a sangría","outdent":"Reducir a sangría"},"fakeobjects":{"anchor":"Ancoraxe","flash":"Animación «Flash»","hiddenfield":"Campo agochado","iframe":"IFrame","unknown":"Obxecto descoñecido"},"link":{"acccessKey":"Chave de acceso","advanced":"Avanzado","advisoryContentType":"Tipo de contido informativo","advisoryTitle":"Título","anchor":{"toolbar":"Ancoraxe","menu":"Editar a ancoraxe","title":"Propiedades da ancoraxe","name":"Nome da ancoraxe","errorName":"Escriba o nome da ancoraxe","remove":"Retirar a ancoraxe"},"anchorId":"Polo ID do elemento","anchorName":"Polo nome da ancoraxe","charset":"Codificación do recurso ligado","cssClasses":"Clases da folla de estilos","download":"Forzar a descarga","displayText":"Amosar o texto","emailAddress":"Enderezo de correo","emailBody":"Corpo da mensaxe","emailSubject":"Asunto da mensaxe","id":"ID","info":"Información da ligazón","langCode":"Código do idioma","langDir":"Dirección de escritura do idioma","langDirLTR":"Esquerda a dereita (LTR)","langDirRTL":"Dereita a esquerda (RTL)","menu":"Editar a ligazón","name":"Nome","noAnchors":"(Non hai ancoraxes dispoñíbeis no documento)","noEmail":"Escriba o enderezo de correo","noUrl":"Escriba a ligazón URL","other":"<outro>","popupDependent":"Dependente (Netscape)","popupFeatures":"Características da xanela emerxente","popupFullScreen":"Pantalla completa (IE)","popupLeft":"Posición esquerda","popupLocationBar":"Barra de localización","popupMenuBar":"Barra do menú","popupResizable":"Redimensionábel","popupScrollBars":"Barras de desprazamento","popupStatusBar":"Barra de estado","popupToolbar":"Barra de ferramentas","popupTop":"Posición superior","rel":"Relación","selectAnchor":"Seleccionar unha ancoraxe","styles":"Estilo","tabIndex":"Índice de tabulación","target":"Destino","targetFrame":"<marco>","targetFrameName":"Nome do marco de destino","targetPopup":"<xanela emerxente>","targetPopupName":"Nome da xanela emerxente","title":"Ligazón","toAnchor":"Ligar coa ancoraxe no testo","toEmail":"Correo","toUrl":"URL","toolbar":"Ligazón","type":"Tipo de ligazón","unlink":"Eliminar a ligazón","upload":"Enviar"},"list":{"bulletedlist":"Inserir/retirar lista viñeteada","numberedlist":"Inserir/retirar lista numerada"},"magicline":{"title":"Inserir aquí o parágrafo"},"maximize":{"maximize":"Maximizar","minimize":"Minimizar"},"pastetext":{"button":"Pegar como texto simple","pasteNotification":"O seu navegador non permite pegar texto simple deste xeito. Prema %1 para pegar."},"pastefromword":{"confirmCleanup":"O texto que quere pegar semella ser copiado desde o Word. Quere depuralo antes de pegalo?","error":"Non foi posíbel depurar os datos pegados por mor dun erro interno","title":"Pegar desde Word","toolbar":"Pegar desde Word"},"removeformat":{"toolbar":"Retirar o formato"},"sourcearea":{"toolbar":"Orixe"},"specialchar":{"options":"Opcións de caracteres especiais","title":"Seleccione un carácter especial","toolbar":"Inserir un carácter especial"},"scayt":{"btn_about":"About SCAYT","btn_dictionaries":"Dictionaries","btn_disable":"Disable SCAYT","btn_enable":"Enable SCAYT","btn_langs":"Languages","btn_options":"Options","text_title":"Spell Check As You Type"},"stylescombo":{"label":"Estilos","panelTitle":"Estilos de formatando","panelTitle1":"Estilos de bloque","panelTitle2":"Estilos de liña","panelTitle3":"Estilos de obxecto"},"table":{"border":"Tamaño do bordo","caption":"Título","cell":{"menu":"Cela","insertBefore":"Inserir a cela á esquerda","insertAfter":"Inserir a cela á dereita","deleteCell":"Eliminar celas","merge":"Combinar celas","mergeRight":"Combinar á dereita","mergeDown":"Combinar cara abaixo","splitHorizontal":"Dividir a cela en horizontal","splitVertical":"Dividir a cela en vertical","title":"Propiedades da cela","cellType":"Tipo de cela","rowSpan":"Expandir filas","colSpan":"Expandir columnas","wordWrap":"Axustar ao contido","hAlign":"Aliñación horizontal","vAlign":"Aliñación vertical","alignBaseline":"Liña de base","bgColor":"Cor do fondo","borderColor":"Cor do bordo","data":"Datos","header":"Cabeceira","yes":"Si","no":"Non","invalidWidth":"O largo da cela debe ser un número.","invalidHeight":"O alto da cela debe ser un número.","invalidRowSpan":"A expansión de filas debe ser un número enteiro.","invalidColSpan":"A expansión de columnas debe ser un número enteiro.","chooseColor":"Escoller"},"cellPad":"Marxe interior da cela","cellSpace":"Marxe entre celas","column":{"menu":"Columna","insertBefore":"Inserir a columna á esquerda","insertAfter":"Inserir a columna á dereita","deleteColumn":"Borrar Columnas"},"columns":"Columnas","deleteTable":"Borrar Táboa","headers":"Cabeceiras","headersBoth":"Ambas","headersColumn":"Primeira columna","headersNone":"Ningún","headersRow":"Primeira fila","invalidBorder":"O tamaño do bordo debe ser un número.","invalidCellPadding":"A marxe interior debe ser un número positivo.","invalidCellSpacing":"A marxe entre celas debe ser un número positivo.","invalidCols":"O número de columnas debe ser un número maior que 0.","invalidHeight":"O alto da táboa debe ser un número.","invalidRows":"O número de filas debe ser un número maior que 0","invalidWidth":"O largo da táboa debe ser un número.","menu":"Propiedades da táboa","row":{"menu":"Fila","insertBefore":"Inserir a fila por riba","insertAfter":"Inserir a fila por baixo","deleteRow":"Eliminar filas"},"rows":"Filas","summary":"Resumo","title":"Propiedades da táboa","toolbar":"Taboa","widthPc":"porcentaxe","widthPx":"píxeles","widthUnit":"unidade do largo"},"undo":{"redo":"Refacer","undo":"Desfacer"},"wsc":{"btnIgnore":"Ignorar","btnIgnoreAll":"Ignorar Todas","btnReplace":"Substituir","btnReplaceAll":"Substituir Todas","btnUndo":"Desfacer","changeTo":"Cambiar a","errorLoading":"Error loading application service host: %s.","ieSpellDownload":"O corrector ortográfico non está instalado. ¿Quere descargalo agora?","manyChanges":"Corrección ortográfica rematada: %1 verbas substituidas","noChanges":"Corrección ortográfica rematada: Non se substituiu nengunha verba","noMispell":"Corrección ortográfica rematada: Non se atoparon erros","noSuggestions":"- Sen candidatos -","notAvailable":"Sorry, but service is unavailable now.","notInDic":"Non está no diccionario","oneChange":"Corrección ortográfica rematada: Unha verba substituida","progress":"Corrección ortográfica en progreso...","title":"Spell Checker","toolbar":"Corrección Ortográfica"}}; \ No newline at end of file diff --git a/admin/plugins/ckeditor/lang/gu.js b/admin/plugins/ckeditor/lang/gu.js deleted file mode 100644 index 79d49b2..0000000 --- a/admin/plugins/ckeditor/lang/gu.js +++ /dev/null @@ -1,5 +0,0 @@ -/* -Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. -For licensing, see LICENSE.md or http://ckeditor.com/license -*/ -CKEDITOR.lang['gu']={"editor":"રીચ ટેક્ષ્ત્ એડીટર","editorPanel":"Rich Text Editor panel","common":{"editorHelp":"પ્રેસ ALT 0 મદદ માટ","browseServer":"સર્વર બ્રાઉઝ કરો","url":"URL","protocol":"પ્રોટોકૉલ","upload":"અપલોડ","uploadSubmit":"આ સર્વરને મોકલવું","image":"ચિત્ર","flash":"ફ્લૅશ","form":"ફૉર્મ/પત્રક","checkbox":"ચેક બોક્સ","radio":"રેડિઓ બટન","textField":"ટેક્સ્ટ ફીલ્ડ, શબ્દ ક્ષેત્ર","textarea":"ટેક્સ્ટ એરિઆ, શબ્દ વિસ્તાર","hiddenField":"ગુપ્ત ક્ષેત્ર","button":"બટન","select":"પસંદગી ક્ષેત્ર","imageButton":"ચિત્ર બટન","notSet":"<સેટ નથી>","id":"Id","name":"નામ","langDir":"ભાષા લેખવાની પદ્ધતિ","langDirLtr":"ડાબે થી જમણે (LTR)","langDirRtl":"જમણે થી ડાબે (RTL)","langCode":"ભાષા કોડ","longDescr":"વધારે માહિતી માટે URL","cssClass":"સ્ટાઇલ-શીટ ક્લાસ","advisoryTitle":"મુખ્ય મથાળું","cssStyle":"સ્ટાઇલ","ok":"ઠીક છે","cancel":"રદ કરવું","close":"બંધ કરવું","preview":"જોવું","resize":"ખેંચી ને યોગ્ય કરવું","generalTab":"જનરલ","advancedTab":"અડ્વાન્સડ","validateNumberFailed":"આ રકમ આકડો નથી.","confirmNewPage":"સવે કાર્ય વગરનું ફકરો ખોવાઈ જશે. તમને ખાતરી છે કે તમને નવું પાનું ખોલવું છે?","confirmCancel":"ઘણા વિકલ્પો બદલાયા છે. તમારે આ બોક્ષ્ બંધ કરવું છે?","options":"વિકલ્પો","target":"લક્ષ્ય","targetNew":"નવી વિન્ડો (_blank)","targetTop":"ઉપરની વિન્ડો (_top)","targetSelf":"એજ વિન્ડો (_self)","targetParent":"પેરનટ વિન્ડો (_parent)","langDirLTR":"ડાબે થી જમણે (LTR)","langDirRTL":"જમણે થી ડાબે (RTL)","styles":"શૈલી","cssClasses":"શૈલી કલાસીસ","width":"પહોળાઈ","height":"ઊંચાઈ","align":"લાઇનદોરીમાં ગોઠવવું","alignLeft":"ડાબી બાજુ ગોઠવવું","alignRight":"જમણી","alignCenter":"મધ્ય સેન્ટર","alignJustify":"બ્લૉક, અંતરાય જસ્ટિફાઇ","alignTop":"ઉપર","alignMiddle":"વચ્ચે","alignBottom":"નીચે","alignNone":"None","invalidValue":"Invalid value.","invalidHeight":"ઉંચાઈ એક આંકડો હોવો જોઈએ.","invalidWidth":"પોહળ ઈ એક આંકડો હોવો જોઈએ.","invalidCssLength":"\"%1\" ની વેલ્યુ એક પોસીટીવ આંકડો હોવો જોઈએ અથવા CSS measurement unit (px, %, in, cm, mm, em, ex, pt, or pc) વગર.","invalidHtmlLength":"\"%1\" ની વેલ્યુ એક પોસીટીવ આંકડો હોવો જોઈએ અથવા HTML measurement unit (px or %) વગર.","invalidInlineStyle":"ઈનલાઈન સ્ટાઈલ ની વેલ્યુ \"name : value\" ના ફોર્મેટ માં હોવી જોઈએ, વચ્ચે સેમી-કોલોન જોઈએ.","cssLengthTooltip":"પિક્ષ્લ્ નો આંકડો CSS unit (px, %, in, cm, mm, em, ex, pt, or pc) માં નાખો.","unavailable":"%1<span class=\"cke_accessibility\">, નથી મળતું</span>","keyboard":{"8":"Backspace","13":"Enter","16":"Shift","17":"Ctrl","18":"Alt","32":"Space","35":"End","36":"Home","46":"Delete","224":"Command"},"keyboardShortcut":"Keyboard shortcut"},"about":{"copy":"કોપીરાઈટ &copy; $1. ઓલ રાઈટ્સ ","dlgTitle":"CKEditor વિષે","help":"મદદ માટે $1 તપાસો","moreInfo":"લાયસનસની માહિતી માટે અમારી વેબ સાઈટ","title":"CKEditor વિષે","userGuide":"CKEditor યુઝર્સ ગાઈડ"},"basicstyles":{"bold":"બોલ્ડ/સ્પષ્ટ","italic":"ઇટેલિક, ત્રાંસા","strike":"છેકી નાખવું","subscript":"એક ચિહ્નની નીચે કરેલું બીજું ચિહ્ન","superscript":"એક ચિહ્ન ઉપર કરેલું બીજું ચિહ્ન.","underline":"અન્ડર્લાઇન, નીચે લીટી"},"blockquote":{"toolbar":"બ્લૉક-કોટ, અવતરણચિહ્નો"},"notification":{"closed":"Notification closed."},"button":{"selectedLabel":"%1 (Selected)"},"toolbar":{"toolbarCollapse":"ટૂલબાર નાનું કરવું","toolbarExpand":"ટૂલબાર મોટું કરવું","toolbarGroups":{"document":"દસ્તાવેજ","clipboard":"ક્લિપબોર્ડ/અન","editing":"એડીટ કરવું","forms":"ફોર્મ","basicstyles":"બેસિક્ સ્ટાઇલ","paragraph":"ફકરો","links":"લીંક","insert":"ઉમેરવું","styles":"સ્ટાઇલ","colors":"રંગ","tools":"ટૂલ્સ"},"toolbars":"એડીટર ટૂલ બાર"},"clipboard":{"copy":"નકલ","copyError":"તમારા બ્રાઉઝર ની સુરક્ષિત સેટિંગસ કોપી કરવાની પરવાનગી નથી આપતી. (Ctrl/Cmd+C) का प्रयोग करें।","cut":"કાપવું","cutError":"તમારા બ્રાઉઝર ની સુરક્ષિત સેટિંગસ કટ કરવાની પરવાનગી નથી આપતી. (Ctrl/Cmd+X) નો ઉપયોગ કરો.","paste":"પેસ્ટ","pasteNotification":"Your browser doesn't allow you to paste this way. Press %1 to paste."},"contextmenu":{"options":"કોન્તેક્ષ્ત્ મેનુના વિકલ્પો"},"elementspath":{"eleLabel":"એલીમેન્ટ્સ નો ","eleTitle":"એલીમેન્ટ %1"},"format":{"label":"ફૉન્ટ ફૉર્મટ, રચનાની શૈલી","panelTitle":"ફૉન્ટ ફૉર્મટ, રચનાની શૈલી","tag_address":"સરનામું","tag_div":"શીર્ષક (DIV)","tag_h1":"શીર્ષક 1","tag_h2":"શીર્ષક 2","tag_h3":"શીર્ષક 3","tag_h4":"શીર્ષક 4","tag_h5":"શીર્ષક 5","tag_h6":"શીર્ષક 6","tag_p":"સામાન્ય","tag_pre":"ફૉર્મટેડ"},"horizontalrule":{"toolbar":"સમસ્તરીય રેખા ઇન્સર્ટ/દાખલ કરવી"},"image":{"alt":"ઑલ્ટર્નટ ટેક્સ્ટ","border":"બોર્ડર","btnUpload":"આ સર્વરને મોકલવું","button2Img":"તમારે ઈમેજ બટનને સાદી ઈમેજમાં બદલવું છે.","hSpace":"સમસ્તરીય જગ્યા","img2Button":"તમારે સાદી ઈમેજને ઈમેજ બટનમાં બદલવું છે.","infoTab":"ચિત્ર ની જાણકારી","linkTab":"લિંક","lockRatio":"લૉક ગુણોત્તર","menu":"ચિત્રના ગુણ","resetSize":"રીસેટ સાઇઝ","title":"ચિત્રના ગુણ","titleButton":"ચિત્ર બટનના ગુણ","upload":"અપલોડ","urlMissing":"ઈમેજની મૂળ URL છે નહી.","vSpace":"લંબરૂપ જગ્યા","validateBorder":"બોર્ડેર આંકડો હોવો જોઈએ.","validateHSpace":"HSpaceઆંકડો હોવો જોઈએ.","validateVSpace":"VSpace આંકડો હોવો જોઈએ. "},"indent":{"indent":"ઇન્ડેન્ટ, લીટીના આરંભમાં જગ્યા વધારવી","outdent":"ઇન્ડેન્ટ લીટીના આરંભમાં જગ્યા ઘટાડવી"},"fakeobjects":{"anchor":"અનકર","flash":"ફ્લેશ ","hiddenfield":"હિડન ","iframe":"IFrame","unknown":"અનનોન ઓબ્જેક્ટ"},"link":{"acccessKey":"ઍક્સેસ કી","advanced":"અડ્વાન્સડ","advisoryContentType":"મુખ્ય કન્ટેન્ટ પ્રકાર","advisoryTitle":"મુખ્ય મથાળું","anchor":{"toolbar":"ઍંકર ઇન્સર્ટ/દાખલ કરવી","menu":"ઍંકરના ગુણ","title":"ઍંકરના ગુણ","name":"ઍંકરનું નામ","errorName":"ઍંકરનું નામ ટાઈપ કરો","remove":"સ્થિર નકરવું"},"anchorId":"ઍંકર એલિમન્ટ Id થી પસંદ કરો","anchorName":"ઍંકર નામથી પસંદ કરો","charset":"લિંક રિસૉર્સ કૅરિક્ટર સેટ","cssClasses":"સ્ટાઇલ-શીટ ક્લાસ","download":"Force Download","displayText":"Display Text","emailAddress":"ઈ-મેલ સરનામું","emailBody":"સંદેશ","emailSubject":"ઈ-મેલ વિષય","id":"Id","info":"લિંક ઇન્ફૉ ટૅબ","langCode":"ભાષા લેખવાની પદ્ધતિ","langDir":"ભાષા લેખવાની પદ્ધતિ","langDirLTR":"ડાબે થી જમણે (LTR)","langDirRTL":"જમણે થી ડાબે (RTL)","menu":" લિંક એડિટ/માં ફેરફાર કરવો","name":"નામ","noAnchors":"(ડૉક્યુમન્ટમાં ઍંકરની સંખ્યા)","noEmail":"ઈ-મેલ સરનામું ટાઇપ કરો","noUrl":"લિંક URL ટાઇપ કરો","other":"<other> <અન્ય>","popupDependent":"ડિપેન્ડન્ટ (Netscape)","popupFeatures":"પૉપ-અપ વિન્ડો ફીચરસૅ","popupFullScreen":"ફુલ સ્ક્રીન (IE)","popupLeft":"ડાબી બાજુ","popupLocationBar":"લોકેશન બાર","popupMenuBar":"મેન્યૂ બાર","popupResizable":"રીસાઈઝએબલ","popupScrollBars":"સ્ક્રોલ બાર","popupStatusBar":"સ્ટૅટસ બાર","popupToolbar":"ટૂલ બાર","popupTop":"જમણી બાજુ","rel":"સંબંધની સ્થિતિ","selectAnchor":"ઍંકર પસંદ કરો","styles":"સ્ટાઇલ","tabIndex":"ટૅબ ઇન્ડેક્સ","target":"ટાર્ગેટ/લક્ષ્ય","targetFrame":"<ફ્રેમ>","targetFrameName":"ટાર્ગેટ ફ્રેમ નું નામ","targetPopup":"<પૉપ-અપ વિન્ડો>","targetPopupName":"પૉપ-અપ વિન્ડો નું નામ","title":"લિંક","toAnchor":"આ પેજનો ઍંકર","toEmail":"ઈ-મેલ","toUrl":"URL","toolbar":"લિંક ઇન્સર્ટ/દાખલ કરવી","type":"લિંક પ્રકાર","unlink":"લિંક કાઢવી","upload":"અપલોડ"},"list":{"bulletedlist":"બુલેટ સૂચિ","numberedlist":"સંખ્યાંકન સૂચિ"},"magicline":{"title":"Insert paragraph here"},"maximize":{"maximize":"મોટું કરવું","minimize":"નાનું કરવું"},"pastetext":{"button":"પેસ્ટ (ટેક્સ્ટ)","pasteNotification":"Your browser does not allow you to paste plain text this way. Press %1 to paste."},"pastefromword":{"confirmCleanup":"તમે જે ટેક્ષ્ત્ કોપી કરી રહ્યા છો ટે વર્ડ ની છે. કોપી કરતા પેહલા સાફ કરવી છે?","error":"પેસ્ટ કરેલો ડેટા ઇન્ટરનલ એરર ના લીથે સાફ કરી શકાયો નથી.","title":"પેસ્ટ (વડૅ ટેક્સ્ટ)","toolbar":"પેસ્ટ (વડૅ ટેક્સ્ટ)"},"removeformat":{"toolbar":"ફૉર્મટ કાઢવું"},"sourcearea":{"toolbar":"મૂળ કે પ્રાથમિક દસ્તાવેજ"},"specialchar":{"options":"સ્પેશિઅલ કરેક્ટરના વિકલ્પો","title":"સ્પેશિઅલ વિશિષ્ટ અક્ષર પસંદ કરો","toolbar":"વિશિષ્ટ અક્ષર ઇન્સર્ટ/દાખલ કરવું"},"scayt":{"btn_about":"SCAYT વિષે","btn_dictionaries":"શબ્દકોશ","btn_disable":"SCAYT ડિસેબલ કરવું","btn_enable":"SCAYT એનેબલ કરવું","btn_langs":"ભાષાઓ","btn_options":"વિકલ્પો","text_title":"ટાઈપ કરતા સ્પેલ તપાસો"},"stylescombo":{"label":"શૈલી/રીત","panelTitle":"ફોર્મેટ ","panelTitle1":"બ્લોક ","panelTitle2":"ઈનલાઈન ","panelTitle3":"ઓબ્જેક્ટ પદ્ધતિ"},"table":{"border":"કોઠાની બાજુ(બોર્ડર) સાઇઝ","caption":"મથાળું/કૅપ્શન ","cell":{"menu":"કોષના ખાના","insertBefore":"પહેલાં કોષ ઉમેરવો","insertAfter":"પછી કોષ ઉમેરવો","deleteCell":"કોષ ડિલીટ/કાઢી નાખવો","merge":"કોષ ભેગા કરવા","mergeRight":"જમણી બાજુ ભેગા કરવા","mergeDown":"નીચે ભેગા કરવા","splitHorizontal":"કોષને સમસ્તરીય વિભાજન કરવું","splitVertical":"કોષને સીધું ને ઊભું વિભાજન કરવું","title":"સેલના ગુણ","cellType":"સેલનો પ્રકાર","rowSpan":"આડી કટારની જગ્યા","colSpan":"ઊભી કતારની જગ્યા","wordWrap":"વર્ડ રેપ","hAlign":"સપાટ લાઈનદોરી","vAlign":"ઊભી લાઈનદોરી","alignBaseline":"બસે લાઈન","bgColor":"પાછાળનો રંગ","borderColor":"બોર્ડેર રંગ","data":"સ્વીકૃત માહિતી","header":"મથાળું","yes":"હા","no":"ના","invalidWidth":"સેલની પોહલાઈ આંકડો હોવો જોઈએ.","invalidHeight":"સેલની ઊંચાઈ આંકડો હોવો જોઈએ.","invalidRowSpan":"રો સ્પાન આંકડો હોવો જોઈએ.","invalidColSpan":"કોલમ સ્પાન આંકડો હોવો જોઈએ.","chooseColor":"પસંદ કરવું"},"cellPad":"સેલ પૅડિંગ","cellSpace":"સેલ અંતર","column":{"menu":"કૉલમ/ઊભી કટાર","insertBefore":"પહેલાં કૉલમ/ઊભી કટાર ઉમેરવી","insertAfter":"પછી કૉલમ/ઊભી કટાર ઉમેરવી","deleteColumn":"કૉલમ/ઊભી કટાર ડિલીટ/કાઢી નાખવી"},"columns":"કૉલમ/ઊભી કટાર","deleteTable":"કોઠો ડિલીટ/કાઢી નાખવું","headers":"મથાળા","headersBoth":"બેવું","headersColumn":"પહેલી ઊભી કટાર","headersNone":"નથી ","headersRow":"પહેલી કટાર","invalidBorder":"બોર્ડર એક આંકડો હોવો જોઈએ","invalidCellPadding":"સેલની અંદરની જગ્યા સુન્ય કરતા વધારે હોવી જોઈએ.","invalidCellSpacing":"સેલ વચ્ચેની જગ્યા સુન્ય કરતા વધારે હોવી જોઈએ.","invalidCols":"ઉભી કટાર, 0 કરતા વધારે હોવી જોઈએ.","invalidHeight":"ટેબલની ઊંચાઈ આંકડો હોવો જોઈએ.","invalidRows":"આડી કટાર, 0 કરતા વધારે હોવી જોઈએ.","invalidWidth":"ટેબલની પોહલાઈ આંકડો હોવો જોઈએ.","menu":"ટેબલ, કોઠાનું મથાળું","row":{"menu":"પંક્તિના ખાના","insertBefore":"પહેલાં પંક્તિ ઉમેરવી","insertAfter":"પછી પંક્તિ ઉમેરવી","deleteRow":"પંક્તિઓ ડિલીટ/કાઢી નાખવી"},"rows":"પંક્તિના ખાના","summary":"ટૂંકો એહેવાલ","title":"ટેબલ, કોઠાનું મથાળું","toolbar":"ટેબલ, કોઠો","widthPc":"પ્રતિશત","widthPx":"પિકસલ","widthUnit":"પોહાલાઈ એકમ"},"undo":{"redo":"રિડૂ; પછી હતી એવી સ્થિતિ પાછી લાવવી","undo":"રદ કરવું; પહેલાં હતી એવી સ્થિતિ પાછી લાવવી"},"wsc":{"btnIgnore":"ઇગ્નોર/અવગણના કરવી","btnIgnoreAll":"બધાની ઇગ્નોર/અવગણના કરવી","btnReplace":"બદલવું","btnReplaceAll":"બધા બદલી કરો","btnUndo":"અન્ડૂ","changeTo":"આનાથી બદલવું","errorLoading":"સર્વિસ એપ્લીકેશન લોડ નથી થ: %s.","ieSpellDownload":"સ્પેલ-ચેકર ઇન્સ્ટોલ નથી. શું તમે ડાઉનલોડ કરવા માંગો છો?","manyChanges":"શબ્દની જોડણી/સ્પેલ ચેક પૂર્ણ: %1 શબ્દ બદલયા છે","noChanges":"શબ્દની જોડણી/સ્પેલ ચેક પૂર્ણ: એકપણ શબ્દ બદલયો નથી","noMispell":"શબ્દની જોડણી/સ્પેલ ચેક પૂર્ણ: ખોટી જોડણી મળી નથી","noSuggestions":"- કઇ સજેશન નથી -","notAvailable":"માફ કરશો, આ સુવિધા ઉપલબ્ધ નથી","notInDic":"શબ્દકોશમાં નથી","oneChange":"શબ્દની જોડણી/સ્પેલ ચેક પૂર્ણ: એક શબ્દ બદલયો છે","progress":"શબ્દની જોડણી/સ્પેલ ચેક ચાલુ છે...","title":"સ્પેલ ","toolbar":"જોડણી (સ્પેલિંગ) તપાસવી"}}; \ No newline at end of file diff --git a/admin/plugins/ckeditor/lang/he.js b/admin/plugins/ckeditor/lang/he.js deleted file mode 100644 index 0d14fc8..0000000 --- a/admin/plugins/ckeditor/lang/he.js +++ /dev/null @@ -1,5 +0,0 @@ -/* -Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. -For licensing, see LICENSE.md or http://ckeditor.com/license -*/ -CKEDITOR.lang['he']={"editor":"עורך טקסט עשיר","editorPanel":"Rich Text Editor panel","common":{"editorHelp":"לחץ אלט ALT + 0 לעזרה","browseServer":"סייר השרת","url":"כתובת (URL)","protocol":"פרוטוקול","upload":"העלאה","uploadSubmit":"שליחה לשרת","image":"תמונה","flash":"פלאש","form":"טופס","checkbox":"תיבת סימון","radio":"לחצן אפשרויות","textField":"שדה טקסט","textarea":"איזור טקסט","hiddenField":"שדה חבוי","button":"כפתור","select":"שדה בחירה","imageButton":"כפתור תמונה","notSet":"<לא נקבע>","id":"זיהוי (ID)","name":"שם","langDir":"כיוון שפה","langDirLtr":"שמאל לימין (LTR)","langDirRtl":"ימין לשמאל (RTL)","langCode":"קוד שפה","longDescr":"קישור לתיאור מפורט","cssClass":"מחלקת עיצוב (CSS Class)","advisoryTitle":"כותרת מוצעת","cssStyle":"סגנון","ok":"אישור","cancel":"ביטול","close":"סגירה","preview":"תצוגה מקדימה","resize":"יש לגרור בכדי לשנות את הגודל","generalTab":"כללי","advancedTab":"אפשרויות מתקדמות","validateNumberFailed":"הערך חייב להיות מספרי.","confirmNewPage":"כל השינויים שלא נשמרו יאבדו. האם להעלות דף חדש?","confirmCancel":"חלק מהאפשרויות שונו, האם לסגור את הדיאלוג?","options":"אפשרויות","target":"מטרה","targetNew":"חלון חדש (_blank)","targetTop":"החלון העליון ביותר (_top)","targetSelf":"אותו חלון (_self)","targetParent":"חלון האב (_parent)","langDirLTR":"שמאל לימין (LTR)","langDirRTL":"ימין לשמאל (RTL)","styles":"סגנון","cssClasses":"מחלקות גליונות סגנון","width":"רוחב","height":"גובה","align":"יישור","alignLeft":"לשמאל","alignRight":"לימין","alignCenter":"מרכז","alignJustify":"יישור לשוליים","alignTop":"למעלה","alignMiddle":"לאמצע","alignBottom":"לתחתית","alignNone":"None","invalidValue":"ערך לא חוקי.","invalidHeight":"הגובה חייב להיות מספר.","invalidWidth":"הרוחב חייב להיות מספר.","invalidCssLength":"הערך שצוין לשדה \"%1\" חייב להיות מספר חיובי עם או ללא יחידת מידה חוקית של CSS (px, %, in, cm, mm, em, ex, pt, או pc).","invalidHtmlLength":"הערך שצוין לשדה \"%1\" חייב להיות מספר חיובי עם או ללא יחידת מידה חוקית של HTML (px או %).","invalidInlineStyle":"הערך שצויין לשדה הסגנון חייב להכיל זוג ערכים אחד או יותר בפורמט \"שם : ערך\", מופרדים על ידי נקודה-פסיק.","cssLengthTooltip":"יש להכניס מספר המייצג פיקסלים או מספר עם יחידת גליונות סגנון תקינה (px, %, in, cm, mm, em, ex, pt, או pc).","unavailable":"%1<span class=\"cke_accessibility\">, לא זמין</span>","keyboard":{"8":"Backspace","13":"Enter","16":"Shift","17":"Ctrl","18":"Alt","32":"Space","35":"End","36":"Home","46":"מחק","224":"Command"},"keyboardShortcut":"Keyboard shortcut"},"about":{"copy":"Copyright &copy; $1. כל הזכויות שמורות.","dlgTitle":"אודות CKEditor","help":"היכנסו ל$1 לעזרה.","moreInfo":"למידע נוסף בקרו באתרנו:","title":"אודות CKEditor","userGuide":"מדריך המשתמש של CKEditor"},"basicstyles":{"bold":"מודגש","italic":"נטוי","strike":"כתיב מחוק","subscript":"כתיב תחתון","superscript":"כתיב עליון","underline":"קו תחתון"},"blockquote":{"toolbar":"בלוק ציטוט"},"notification":{"closed":"Notification closed."},"button":{"selectedLabel":"1% (סומן)"},"toolbar":{"toolbarCollapse":"מזעור סרגל כלים","toolbarExpand":"הרחבת סרגל כלים","toolbarGroups":{"document":"מסמך","clipboard":"לוח הגזירים (Clipboard)/צעד אחרון","editing":"עריכה","forms":"טפסים","basicstyles":"עיצוב בסיסי","paragraph":"פסקה","links":"קישורים","insert":"הכנסה","styles":"עיצוב","colors":"צבעים","tools":"כלים"},"toolbars":"סרגלי כלים של העורך"},"clipboard":{"copy":"העתקה","copyError":"הגדרות האבטחה בדפדפן שלך לא מאפשרות לעורך לבצע פעולות העתקה אוטומטיות. יש להשתמש במקלדת לשם כך (Ctrl/Cmd+C).","cut":"גזירה","cutError":"הגדרות האבטחה בדפדפן שלך לא מאפשרות לעורך לבצע פעולות גזירה אוטומטיות. יש להשתמש במקלדת לשם כך (Ctrl/Cmd+X).","paste":"הדבקה","pasteNotification":"Your browser doesn't allow you to paste this way. Press %1 to paste."},"contextmenu":{"options":"אפשרויות תפריט ההקשר"},"elementspath":{"eleLabel":"עץ האלמנטים","eleTitle":"%1 אלמנט"},"format":{"label":"עיצוב","panelTitle":"עיצוב","tag_address":"כתובת","tag_div":"נורמלי (DIV)","tag_h1":"כותרת","tag_h2":"כותרת 2","tag_h3":"כותרת 3","tag_h4":"כותרת 4","tag_h5":"כותרת 5","tag_h6":"כותרת 6","tag_p":"נורמלי","tag_pre":"קוד"},"horizontalrule":{"toolbar":"הוספת קו אופקי"},"image":{"alt":"טקסט חלופי","border":"מסגרת","btnUpload":"שליחה לשרת","button2Img":"האם להפוך את תמונת הכפתור לתמונה פשוטה?","hSpace":"מרווח אופקי","img2Button":"האם להפוך את התמונה לכפתור תמונה?","infoTab":"מידע על התמונה","linkTab":"קישור","lockRatio":"נעילת היחס","menu":"תכונות התמונה","resetSize":"איפוס הגודל","title":"מאפייני התמונה","titleButton":"מאפיני כפתור תמונה","upload":"העלאה","urlMissing":"כתובת התמונה חסרה.","vSpace":"מרווח אנכי","validateBorder":"שדה המסגרת חייב להיות מספר שלם.","validateHSpace":"שדה המרווח האופקי חייב להיות מספר שלם.","validateVSpace":"שדה המרווח האנכי חייב להיות מספר שלם."},"indent":{"indent":"הגדלת הזחה","outdent":"הקטנת הזחה"},"fakeobjects":{"anchor":"עוגן","flash":"סרטון פלאש","hiddenfield":"שדה חבוי","iframe":"חלון פנימי (iframe)","unknown":"אובייקט לא ידוע"},"link":{"acccessKey":"מקש גישה","advanced":"אפשרויות מתקדמות","advisoryContentType":"Content Type מוצע","advisoryTitle":"כותרת מוצעת","anchor":{"toolbar":"הוספת/עריכת נקודת עיגון","menu":"מאפייני נקודת עיגון","title":"מאפייני נקודת עיגון","name":"שם לנקודת עיגון","errorName":"יש להקליד שם לנקודת עיגון","remove":"מחיקת נקודת עיגון"},"anchorId":"עפ\"י זיהוי (ID) האלמנט","anchorName":"עפ\"י שם העוגן","charset":"קידוד המשאב המקושר","cssClasses":"גיליונות עיצוב קבוצות","download":"Force Download","displayText":"Display Text","emailAddress":"כתובת הדוא\"ל","emailBody":"גוף ההודעה","emailSubject":"נושא ההודעה","id":"זיהוי (ID)","info":"מידע על הקישור","langCode":"קוד שפה","langDir":"כיוון שפה","langDirLTR":"שמאל לימין (LTR)","langDirRTL":"ימין לשמאל (RTL)","menu":"מאפייני קישור","name":"שם","noAnchors":"(אין עוגנים זמינים בדף)","noEmail":"יש להקליד את כתובת הדוא\"ל","noUrl":"יש להקליד את כתובת הקישור (URL)","other":"<אחר>","popupDependent":"תלוי (Netscape)","popupFeatures":"תכונות החלון הקופץ","popupFullScreen":"מסך מלא (IE)","popupLeft":"מיקום צד שמאל","popupLocationBar":"סרגל כתובת","popupMenuBar":"סרגל תפריט","popupResizable":"שינוי גודל","popupScrollBars":"ניתן לגלילה","popupStatusBar":"סרגל חיווי","popupToolbar":"סרגל הכלים","popupTop":"מיקום צד עליון","rel":"קשר גומלין","selectAnchor":"בחירת עוגן","styles":"סגנון","tabIndex":"מספר טאב","target":"מטרה","targetFrame":"<מסגרת>","targetFrameName":"שם מסגרת היעד","targetPopup":"<חלון קופץ>","targetPopupName":"שם החלון הקופץ","title":"קישור","toAnchor":"עוגן בעמוד זה","toEmail":"דוא\"ל","toUrl":"כתובת (URL)","toolbar":"הוספת/עריכת קישור","type":"סוג קישור","unlink":"הסרת הקישור","upload":"העלאה"},"list":{"bulletedlist":"רשימת נקודות","numberedlist":"רשימה ממוספרת"},"magicline":{"title":"הכנס פסקה כאן"},"maximize":{"maximize":"הגדלה למקסימום","minimize":"הקטנה למינימום"},"pastetext":{"button":"הדבקה כטקסט פשוט","pasteNotification":"Your browser does not allow you to paste plain text this way. Press %1 to paste."},"pastefromword":{"confirmCleanup":"נראה הטקסט שבכוונתך להדביק מקורו בקובץ וורד. האם ברצונך לנקות אותו טרם ההדבקה?","error":"לא ניתן היה לנקות את המידע בשל תקלה פנימית.","title":"הדבקה מ-Word","toolbar":"הדבקה מ-Word"},"removeformat":{"toolbar":"הסרת העיצוב"},"sourcearea":{"toolbar":"מקור"},"specialchar":{"options":"אפשרויות תווים מיוחדים","title":"בחירת תו מיוחד","toolbar":"הוספת תו מיוחד"},"scayt":{"btn_about":"אודות SCAYT","btn_dictionaries":"מילון","btn_disable":"בטל SCAYT","btn_enable":"אפשר SCAYT","btn_langs":"שפות","btn_options":"אפשרויות","text_title":"בדיקת איות בזמן כתיבה (SCAYT)"},"stylescombo":{"label":"סגנון","panelTitle":"סגנונות פורמט","panelTitle1":"סגנונות בלוק","panelTitle2":"סגנונות רצף","panelTitle3":"סגנונות אובייקט"},"table":{"border":"גודל מסגרת","caption":"כיתוב","cell":{"menu":"מאפייני תא","insertBefore":"הוספת תא לפני","insertAfter":"הוספת תא אחרי","deleteCell":"מחיקת תאים","merge":"מיזוג תאים","mergeRight":"מזג ימינה","mergeDown":"מזג למטה","splitHorizontal":"פיצול תא אופקית","splitVertical":"פיצול תא אנכית","title":"תכונות התא","cellType":"סוג התא","rowSpan":"מתיחת השורות","colSpan":"מתיחת התאים","wordWrap":"מניעת גלישת שורות","hAlign":"יישור אופקי","vAlign":"יישור אנכי","alignBaseline":"שורת בסיס","bgColor":"צבע רקע","borderColor":"צבע מסגרת","data":"מידע","header":"כותרת","yes":"כן","no":"לא","invalidWidth":"שדה רוחב התא חייב להיות מספר.","invalidHeight":"שדה גובה התא חייב להיות מספר.","invalidRowSpan":"שדה מתיחת השורות חייב להיות מספר שלם.","invalidColSpan":"שדה מתיחת העמודות חייב להיות מספר שלם.","chooseColor":"בחר"},"cellPad":"ריפוד תא","cellSpace":"מרווח תא","column":{"menu":"עמודה","insertBefore":"הוספת עמודה לפני","insertAfter":"הוספת עמודה אחרי","deleteColumn":"מחיקת עמודות"},"columns":"עמודות","deleteTable":"מחק טבלה","headers":"כותרות","headersBoth":"שניהם","headersColumn":"עמודה ראשונה","headersNone":"אין","headersRow":"שורה ראשונה","invalidBorder":"שדה גודל המסגרת חייב להיות מספר.","invalidCellPadding":"שדה ריפוד התאים חייב להיות מספר חיובי.","invalidCellSpacing":"שדה ריווח התאים חייב להיות מספר חיובי.","invalidCols":"שדה מספר העמודות חייב להיות מספר גדול מ 0.","invalidHeight":"שדה גובה הטבלה חייב להיות מספר.","invalidRows":"שדה מספר השורות חייב להיות מספר גדול מ 0.","invalidWidth":"שדה רוחב הטבלה חייב להיות מספר.","menu":"מאפייני טבלה","row":{"menu":"שורה","insertBefore":"הוספת שורה לפני","insertAfter":"הוספת שורה אחרי","deleteRow":"מחיקת שורות"},"rows":"שורות","summary":"תקציר","title":"מאפייני טבלה","toolbar":"טבלה","widthPc":"אחוז","widthPx":"פיקסלים","widthUnit":"יחידת רוחב"},"undo":{"redo":"חזרה על צעד אחרון","undo":"ביטול צעד אחרון"},"wsc":{"btnIgnore":"התעלמות","btnIgnoreAll":"התעלמות מהכל","btnReplace":"החלפה","btnReplaceAll":"החלפת הכל","btnUndo":"החזרה","changeTo":"שינוי ל","errorLoading":"שגיאה בהעלאת השירות: %s.","ieSpellDownload":"בודק האיות לא מותקן, האם להורידו?","manyChanges":"בדיקות איות הסתיימה: %1 מילים שונו","noChanges":"בדיקות איות הסתיימה: לא שונתה אף מילה","noMispell":"בדיקות איות הסתיימה: לא נמצאו שגיאות כתיב","noSuggestions":"- אין הצעות -","notAvailable":"לא נמצא שירות זמין.","notInDic":"לא נמצא במילון","oneChange":"בדיקות איות הסתיימה: שונתה מילה אחת","progress":"בודק האיות בתהליך בדיקה....","title":"בדיקת איות","toolbar":"בדיקת איות"}}; \ No newline at end of file diff --git a/admin/plugins/ckeditor/lang/hi.js b/admin/plugins/ckeditor/lang/hi.js deleted file mode 100644 index 128c9e7..0000000 --- a/admin/plugins/ckeditor/lang/hi.js +++ /dev/null @@ -1,5 +0,0 @@ -/* -Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. -For licensing, see LICENSE.md or http://ckeditor.com/license -*/ -CKEDITOR.lang['hi']={"editor":"रिच टेक्स्ट एडिटर","editorPanel":"Rich Text Editor panel","common":{"editorHelp":"मदद के लिये ALT 0 दबाए","browseServer":"सर्वर ब्राउज़ करें","url":"URL","protocol":"प्रोटोकॉल","upload":"अपलोड","uploadSubmit":"इसे सर्वर को भेजें","image":"तस्वीर","flash":"फ़्लैश","form":"फ़ॉर्म","checkbox":"चॅक बॉक्स","radio":"रेडिओ बटन","textField":"टेक्स्ट फ़ील्ड","textarea":"टेक्स्ट एरिया","hiddenField":"गुप्त फ़ील्ड","button":"बटन","select":"चुनाव फ़ील्ड","imageButton":"तस्वीर बटन","notSet":"<सॅट नहीं>","id":"Id","name":"नाम","langDir":"भाषा लिखने की दिशा","langDirLtr":"बायें से दायें (LTR)","langDirRtl":"दायें से बायें (RTL)","langCode":"भाषा कोड","longDescr":"अधिक विवरण के लिए URL","cssClass":"स्टाइल-शीट क्लास","advisoryTitle":"परामर्श शीर्शक","cssStyle":"स्टाइल","ok":"ठीक है","cancel":"रद्द करें","close":"Close","preview":"प्रीव्यू","resize":"Resize","generalTab":"सामान्य","advancedTab":"ऍड्वान्स्ड","validateNumberFailed":"This value is not a number.","confirmNewPage":"Any unsaved changes to this content will be lost. Are you sure you want to load new page?","confirmCancel":"You have changed some options. Are you sure you want to close the dialog window?","options":"Options","target":"टार्गेट","targetNew":"New Window (_blank)","targetTop":"Topmost Window (_top)","targetSelf":"Same Window (_self)","targetParent":"Parent Window (_parent)","langDirLTR":"बायें से दायें (LTR)","langDirRTL":"दायें से बायें (RTL)","styles":"स्टाइल","cssClasses":"स्टाइल-शीट क्लास","width":"चौड़ाई","height":"ऊँचाई","align":"ऍलाइन","alignLeft":"दायें","alignRight":"दायें","alignCenter":"बीच में","alignJustify":"ब्लॉक जस्टीफ़ाई","alignTop":"ऊपर","alignMiddle":"मध्य","alignBottom":"नीचे","alignNone":"None","invalidValue":"Invalid value.","invalidHeight":"Height must be a number.","invalidWidth":"Width must be a number.","invalidCssLength":"Value specified for the \"%1\" field must be a positive number with or without a valid CSS measurement unit (px, %, in, cm, mm, em, ex, pt, or pc).","invalidHtmlLength":"Value specified for the \"%1\" field must be a positive number with or without a valid HTML measurement unit (px or %).","invalidInlineStyle":"Value specified for the inline style must consist of one or more tuples with the format of \"name : value\", separated by semi-colons.","cssLengthTooltip":"Enter a number for a value in pixels or a number with a valid CSS unit (px, %, in, cm, mm, em, ex, pt, or pc).","unavailable":"%1<span class=\"cke_accessibility\">, unavailable</span>","keyboard":{"8":"Backspace","13":"Enter","16":"Shift","17":"Ctrl","18":"Alt","32":"Space","35":"End","36":"Home","46":"Delete","224":"Command"},"keyboardShortcut":"Keyboard shortcut"},"about":{"copy":"Copyright &copy; $1. All rights reserved.","dlgTitle":"About CKEditor","help":"Check $1 for help.","moreInfo":"For licensing information please visit our web site:","title":"About CKEditor","userGuide":"CKEditor User's Guide"},"basicstyles":{"bold":"बोल्ड","italic":"इटैलिक","strike":"स्ट्राइक थ्रू","subscript":"अधोलेख","superscript":"अभिलेख","underline":"रेखांकण"},"blockquote":{"toolbar":"ब्लॉक-कोट"},"notification":{"closed":"Notification closed."},"button":{"selectedLabel":"%1 (Selected)"},"toolbar":{"toolbarCollapse":"Collapse Toolbar","toolbarExpand":"Expand Toolbar","toolbarGroups":{"document":"Document","clipboard":"Clipboard/Undo","editing":"Editing","forms":"Forms","basicstyles":"Basic Styles","paragraph":"Paragraph","links":"Links","insert":"Insert","styles":"Styles","colors":"Colors","tools":"Tools"},"toolbars":"एडिटर टूलबार"},"clipboard":{"copy":"कॉपी","copyError":"आपके ब्राआउज़र की सुरक्षा सॅटिन्ग्स ने कॉपी करने की अनुमति नहीं प्रदान की है। (Ctrl/Cmd+C) का प्रयोग करें।","cut":"कट","cutError":"आपके ब्राउज़र की सुरक्षा सॅटिन्ग्स ने कट करने की अनुमति नहीं प्रदान की है। (Ctrl/Cmd+X) का प्रयोग करें।","paste":"पेस्ट","pasteNotification":"Your browser doesn't allow you to paste this way. Press %1 to paste."},"contextmenu":{"options":"Context Menu Options"},"elementspath":{"eleLabel":"Elements path","eleTitle":"%1 element"},"format":{"label":"फ़ॉर्मैट","panelTitle":"फ़ॉर्मैट","tag_address":"पता","tag_div":"शीर्षक (DIV)","tag_h1":"शीर्षक 1","tag_h2":"शीर्षक 2","tag_h3":"शीर्षक 3","tag_h4":"शीर्षक 4","tag_h5":"शीर्षक 5","tag_h6":"शीर्षक 6","tag_p":"साधारण","tag_pre":"फ़ॉर्मैटॅड"},"horizontalrule":{"toolbar":"हॉरिज़ॉन्टल रेखा इन्सर्ट करें"},"image":{"alt":"वैकल्पिक टेक्स्ट","border":"बॉर्डर","btnUpload":"इसे सर्वर को भेजें","button2Img":"Do you want to transform the selected image button on a simple image?","hSpace":"हॉरिज़ॉन्टल स्पेस","img2Button":"Do you want to transform the selected image on a image button?","infoTab":"तस्वीर की जानकारी","linkTab":"लिंक","lockRatio":"लॉक अनुपात","menu":"तस्वीर प्रॉपर्टीज़","resetSize":"रीसॅट साइज़","title":"तस्वीर प्रॉपर्टीज़","titleButton":"तस्वीर बटन प्रॉपर्टीज़","upload":"अपलोड","urlMissing":"Image source URL is missing.","vSpace":"वर्टिकल स्पेस","validateBorder":"Border must be a whole number.","validateHSpace":"HSpace must be a whole number.","validateVSpace":"VSpace must be a whole number."},"indent":{"indent":"इन्डॅन्ट बढ़ायें","outdent":"इन्डॅन्ट कम करें"},"fakeobjects":{"anchor":"ऐंकर इन्सर्ट/संपादन","flash":"Flash Animation","hiddenfield":"गुप्त फ़ील्ड","iframe":"IFrame","unknown":"Unknown Object"},"link":{"acccessKey":"ऍक्सॅस की","advanced":"ऍड्वान्स्ड","advisoryContentType":"परामर्श कन्टॅन्ट प्रकार","advisoryTitle":"परामर्श शीर्शक","anchor":{"toolbar":"ऐंकर इन्सर्ट/संपादन","menu":"ऐंकर प्रॉपर्टीज़","title":"ऐंकर प्रॉपर्टीज़","name":"ऐंकर का नाम","errorName":"ऐंकर का नाम टाइप करें","remove":"Remove Anchor"},"anchorId":"ऍलीमॅन्ट Id से","anchorName":"ऐंकर नाम से","charset":"लिंक रिसोर्स करॅक्टर सॅट","cssClasses":"स्टाइल-शीट क्लास","download":"Force Download","displayText":"Display Text","emailAddress":"ई-मेल पता","emailBody":"संदेश","emailSubject":"संदेश विषय","id":"Id","info":"लिंक ","langCode":"भाषा लिखने की दिशा","langDir":"भाषा लिखने की दिशा","langDirLTR":"बायें से दायें (LTR)","langDirRTL":"दायें से बायें (RTL)","menu":"लिंक संपादन","name":"नाम","noAnchors":"(डॉक्यूमॅन्ट में ऐंकर्स की संख्या)","noEmail":"ई-मेल पता टाइप करें","noUrl":"लिंक URL टाइप करें","other":"<अन्य>","popupDependent":"डिपेन्डॅन्ट (Netscape)","popupFeatures":"पॉप-अप विन्डो फ़ीचर्स","popupFullScreen":"फ़ुल स्क्रीन (IE)","popupLeft":"बायीं तरफ","popupLocationBar":"लोकेशन बार","popupMenuBar":"मॅन्यू बार","popupResizable":"आकार बदलने लायक","popupScrollBars":"स्क्रॉल बार","popupStatusBar":"स्टेटस बार","popupToolbar":"टूल बार","popupTop":"दायीं तरफ","rel":"संबंध","selectAnchor":"ऐंकर चुनें","styles":"स्टाइल","tabIndex":"टैब इन्डॅक्स","target":"टार्गेट","targetFrame":"<फ़्रेम>","targetFrameName":"टार्गेट फ़्रेम का नाम","targetPopup":"<पॉप-अप विन्डो>","targetPopupName":"पॉप-अप विन्डो का नाम","title":"लिंक","toAnchor":"इस पेज का ऐंकर","toEmail":"ई-मेल","toUrl":"URL","toolbar":"लिंक इन्सर्ट/संपादन","type":"लिंक प्रकार","unlink":"लिंक हटायें","upload":"अपलोड"},"list":{"bulletedlist":"बुलॅट सूची","numberedlist":"अंकीय सूची"},"magicline":{"title":"Insert paragraph here"},"maximize":{"maximize":"मेक्सिमाईज़","minimize":"मिनिमाईज़"},"pastetext":{"button":"पेस्ट (सादा टॅक्स्ट)","pasteNotification":"Your browser does not allow you to paste plain text this way. Press %1 to paste."},"pastefromword":{"confirmCleanup":"The text you want to paste seems to be copied from Word. Do you want to clean it before pasting?","error":"It was not possible to clean up the pasted data due to an internal error","title":"पेस्ट (वर्ड से)","toolbar":"पेस्ट (वर्ड से)"},"removeformat":{"toolbar":"फ़ॉर्मैट हटायें"},"sourcearea":{"toolbar":"सोर्स"},"specialchar":{"options":"विशेष चरित्र विकल्प","title":"विशेष करॅक्टर चुनें","toolbar":"विशेष करॅक्टर इन्सर्ट करें"},"scayt":{"btn_about":"About SCAYT","btn_dictionaries":"Dictionaries","btn_disable":"Disable SCAYT","btn_enable":"Enable SCAYT","btn_langs":"Languages","btn_options":"Options","text_title":"Spell Check As You Type"},"stylescombo":{"label":"स्टाइल","panelTitle":"Formatting Styles","panelTitle1":"Block Styles","panelTitle2":"Inline Styles","panelTitle3":"Object Styles"},"table":{"border":"बॉर्डर साइज़","caption":"शीर्षक","cell":{"menu":"खाना","insertBefore":"पहले सैल डालें","insertAfter":"बाद में सैल डालें","deleteCell":"सैल डिलीट करें","merge":"सैल मिलायें","mergeRight":"बाँया विलय","mergeDown":"नीचे विलय करें","splitHorizontal":"सैल को क्षैतिज स्थिति में विभाजित करें","splitVertical":"सैल को लम्बाकार में विभाजित करें","title":"Cell Properties","cellType":"Cell Type","rowSpan":"Rows Span","colSpan":"Columns Span","wordWrap":"Word Wrap","hAlign":"Horizontal Alignment","vAlign":"Vertical Alignment","alignBaseline":"Baseline","bgColor":"Background Color","borderColor":"Border Color","data":"Data","header":"Header","yes":"Yes","no":"No","invalidWidth":"Cell width must be a number.","invalidHeight":"Cell height must be a number.","invalidRowSpan":"Rows span must be a whole number.","invalidColSpan":"Columns span must be a whole number.","chooseColor":"Choose"},"cellPad":"सैल पैडिंग","cellSpace":"सैल अंतर","column":{"menu":"कालम","insertBefore":"पहले कालम डालें","insertAfter":"बाद में कालम डालें","deleteColumn":"कालम डिलीट करें"},"columns":"कालम","deleteTable":"टेबल डिलीट करें","headers":"Headers","headersBoth":"Both","headersColumn":"First column","headersNone":"None","headersRow":"First Row","invalidBorder":"Border size must be a number.","invalidCellPadding":"Cell padding must be a positive number.","invalidCellSpacing":"Cell spacing must be a positive number.","invalidCols":"Number of columns must be a number greater than 0.","invalidHeight":"Table height must be a number.","invalidRows":"Number of rows must be a number greater than 0.","invalidWidth":"Table width must be a number.","menu":"टेबल प्रॉपर्टीज़","row":{"menu":"पंक्ति","insertBefore":"पहले पंक्ति डालें","insertAfter":"बाद में पंक्ति डालें","deleteRow":"पंक्तियाँ डिलीट करें"},"rows":"पंक्तियाँ","summary":"सारांश","title":"टेबल प्रॉपर्टीज़","toolbar":"टेबल","widthPc":"प्रतिशत","widthPx":"पिक्सैल","widthUnit":"width unit"},"undo":{"redo":"रीडू","undo":"अन्डू"},"wsc":{"btnIgnore":"इग्नोर","btnIgnoreAll":"सभी इग्नोर करें","btnReplace":"रिप्लेस","btnReplaceAll":"सभी रिप्लेस करें","btnUndo":"अन्डू","changeTo":"इसमें बदलें","errorLoading":"Error loading application service host: %s.","ieSpellDownload":"स्पॅल-चॅकर इन्स्टाल नहीं किया गया है। क्या आप इसे डाउनलोड करना चाहेंगे?","manyChanges":"वर्तनी की जाँच : %1 शब्द बदले गये","noChanges":"वर्तनी की जाँच :कोई शब्द नहीं बदला गया","noMispell":"वर्तनी की जाँच : कोई गलत वर्तनी (स्पॅलिंग) नहीं पाई गई","noSuggestions":"- कोई सुझाव नहीं -","notAvailable":"Sorry, but service is unavailable now.","notInDic":"शब्दकोश में नहीं","oneChange":"वर्तनी की जाँच : एक शब्द बदला गया","progress":"वर्तनी की जाँच (स्पॅल-चॅक) जारी है...","title":"Spell Checker","toolbar":"वर्तनी (स्पेलिंग) जाँच"}}; \ No newline at end of file diff --git a/admin/plugins/ckeditor/lang/hr.js b/admin/plugins/ckeditor/lang/hr.js deleted file mode 100644 index ff1ad80..0000000 --- a/admin/plugins/ckeditor/lang/hr.js +++ /dev/null @@ -1,5 +0,0 @@ -/* -Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. -For licensing, see LICENSE.md or http://ckeditor.com/license -*/ -CKEDITOR.lang['hr']={"editor":"Bogati uređivač teksta, %1","editorPanel":"Ploča Bogatog Uređivača Teksta","common":{"editorHelp":"Pritisni ALT 0 za pomoć","browseServer":"Pretraži server","url":"URL","protocol":"Protokol","upload":"Pošalji","uploadSubmit":"Pošalji na server","image":"Slika","flash":"Flash","form":"Forma","checkbox":"Checkbox","radio":"Radio Button","textField":"Text Field","textarea":"Textarea","hiddenField":"Hidden Field","button":"Button","select":"Selection Field","imageButton":"Image Button","notSet":"<nije postavljeno>","id":"Id","name":"Naziv","langDir":"Smjer jezika","langDirLtr":"S lijeva na desno (LTR)","langDirRtl":"S desna na lijevo (RTL)","langCode":"Kôd jezika","longDescr":"Dugački opis URL","cssClass":"Klase stilova","advisoryTitle":"Advisory naslov","cssStyle":"Stil","ok":"OK","cancel":"Poništi","close":"Zatvori","preview":"Pregledaj","resize":"Povuci za promjenu veličine","generalTab":"Općenito","advancedTab":"Napredno","validateNumberFailed":"Ova vrijednost nije broj.","confirmNewPage":"Sve napravljene promjene će biti izgubljene ukoliko ih niste snimili. Sigurno želite učitati novu stranicu?","confirmCancel":"Neke od opcija su promjenjene. Sigurno želite zatvoriti ovaj prozor?","options":"Opcije","target":"Odredište","targetNew":"Novi prozor (_blank)","targetTop":"Vršni prozor (_top)","targetSelf":"Isti prozor (_self)","targetParent":"Roditeljski prozor (_parent)","langDirLTR":"S lijeva na desno (LTR)","langDirRTL":"S desna na lijevo (RTL)","styles":"Stil","cssClasses":"Klase stilova","width":"Širina","height":"Visina","align":"Poravnanje","alignLeft":"Lijevo","alignRight":"Desno","alignCenter":"Središnje","alignJustify":"Blok poravnanje","alignTop":"Vrh","alignMiddle":"Sredina","alignBottom":"Dolje","alignNone":"Bez poravnanja","invalidValue":"Neispravna vrijednost.","invalidHeight":"Visina mora biti broj.","invalidWidth":"Širina mora biti broj.","invalidCssLength":"Vrijednost određena za \"%1\" polje mora biti pozitivni broj sa ili bez važećih CSS mjernih jedinica (px, %, in, cm, mm, em, ex, pt ili pc).","invalidHtmlLength":"Vrijednost određena za \"%1\" polje mora biti pozitivni broj sa ili bez važećih HTML mjernih jedinica (px ili %).","invalidInlineStyle":"Vrijednost za linijski stil mora sadržavati jednu ili više definicija s formatom \"naziv:vrijednost\", odvojenih točka-zarezom.","cssLengthTooltip":"Unesite broj za vrijednost u pikselima ili broj s važećim CSS mjernim jedinicama (px, %, in, cm, mm, em, ex, pt ili pc).","unavailable":"%1<span class=\"cke_accessibility\">, nedostupno</span>","keyboard":{"8":"Backspace","13":"Enter","16":"Shift","17":"Ctrl","18":"Alt","32":"Space","35":"End","36":"Home","46":"Delete","224":"Command"},"keyboardShortcut":"Prečica na tipkovnici"},"about":{"copy":"Autorsko pravo &copy; $1. Sva prava pridržana.","dlgTitle":"O CKEditoru","help":"Provjeri $1 za pomoć.","moreInfo":"Za informacije o licencama posjetite našu web stranicu:","title":"O CKEditoru","userGuide":"Vodič za CKEditor korisnike"},"basicstyles":{"bold":"Podebljano","italic":"Ukošeno","strike":"Precrtano","subscript":"Subscript","superscript":"Superscript","underline":"Potcrtano"},"blockquote":{"toolbar":"Citat"},"notification":{"closed":"Obavijest zatvorena."},"button":{"selectedLabel":"%1 (Odabrano)"},"toolbar":{"toolbarCollapse":"Smanji alatnu traku","toolbarExpand":"Proširi alatnu traku","toolbarGroups":{"document":"Dokument","clipboard":"Međuspremnik/Poništi","editing":"Uređivanje","forms":"Forme","basicstyles":"Osnovni stilovi","paragraph":"Paragraf","links":"Veze","insert":"Umetni","styles":"Stilovi","colors":"Boje","tools":"Alatke"},"toolbars":"Alatne trake uređivača teksta"},"clipboard":{"copy":"Kopiraj","copyError":"Sigurnosne postavke Vašeg pretraživača ne dozvoljavaju operacije automatskog kopiranja. Molimo koristite kraticu na tipkovnici (Ctrl/Cmd+C).","cut":"Izreži","cutError":"Sigurnosne postavke Vašeg pretraživača ne dozvoljavaju operacije automatskog izrezivanja. Molimo koristite kraticu na tipkovnici (Ctrl/Cmd+X).","paste":"Zalijepi","pasteNotification":"Vaš preglednik Vam ne dozvoljava lijepljenje na ovaj način. Za lijepljenje, pritisnite %1."},"contextmenu":{"options":"Opcije izbornika"},"elementspath":{"eleLabel":"Putanje elemenata","eleTitle":"%1 element"},"format":{"label":"Format","panelTitle":"Format paragrafa","tag_address":"Adresa","tag_div":"Normalno (DIV)","tag_h1":"Naslov 1","tag_h2":"Naslov 2","tag_h3":"Naslov 3","tag_h4":"Naslov 4","tag_h5":"Naslov 5","tag_h6":"Naslov 6","tag_p":"Normalno","tag_pre":"Formatirano"},"horizontalrule":{"toolbar":"Ubaci vodoravnu liniju"},"image":{"alt":"Alternativni tekst","border":"Okvir","btnUpload":"Pošalji na server","button2Img":"Želite li promijeniti odabrani gumb u jednostavnu sliku?","hSpace":"HSpace","img2Button":"Želite li promijeniti odabranu sliku u gumb?","infoTab":"Info slike","linkTab":"Veza","lockRatio":"Zaključaj odnos","menu":"Svojstva slika","resetSize":"Obriši veličinu","title":"Svojstva slika","titleButton":"Image Button svojstva","upload":"Pošalji","urlMissing":"Nedostaje URL slike.","vSpace":"VSpace","validateBorder":"Okvir mora biti cijeli broj.","validateHSpace":"HSpace mora biti cijeli broj","validateVSpace":"VSpace mora biti cijeli broj."},"indent":{"indent":"Pomakni udesno","outdent":"Pomakni ulijevo"},"fakeobjects":{"anchor":"Sidro","flash":"Flash animacija","hiddenfield":"Sakriveno polje","iframe":"IFrame","unknown":"Nepoznati objekt"},"link":{"acccessKey":"Pristupna tipka","advanced":"Napredno","advisoryContentType":"Savjetodavna vrsta sadržaja","advisoryTitle":"Savjetodavni naslov","anchor":{"toolbar":"Ubaci/promijeni sidro","menu":"Svojstva sidra","title":"Svojstva sidra","name":"Ime sidra","errorName":"Molimo unesite ime sidra","remove":"Ukloni sidro"},"anchorId":"Po Id elementa","anchorName":"Po nazivu sidra","charset":"Kodna stranica povezanih resursa","cssClasses":"Stylesheet klase","download":"Preuzmi na silu","displayText":"Prikaži tekst","emailAddress":"E-Mail adresa","emailBody":"Sadržaj poruke","emailSubject":"Naslov","id":"Id","info":"Link Info","langCode":"Smjer jezika","langDir":"Smjer jezika","langDirLTR":"S lijeva na desno (LTR)","langDirRTL":"S desna na lijevo (RTL)","menu":"Promijeni link","name":"Naziv","noAnchors":"(Nema dostupnih sidra)","noEmail":"Molimo upišite e-mail adresu","noUrl":"Molimo upišite URL link","other":"<drugi>","popupDependent":"Ovisno (Netscape)","popupFeatures":"Mogućnosti popup prozora","popupFullScreen":"Cijeli ekran (IE)","popupLeft":"Lijeva pozicija","popupLocationBar":"Traka za lokaciju","popupMenuBar":"Izborna traka","popupResizable":"Promjenjiva veličina","popupScrollBars":"Scroll traka","popupStatusBar":"Statusna traka","popupToolbar":"Traka s alatima","popupTop":"Gornja pozicija","rel":"Veza","selectAnchor":"Odaberi sidro","styles":"Stil","tabIndex":"Tab Indeks","target":"Meta","targetFrame":"<okvir>","targetFrameName":"Ime ciljnog okvira","targetPopup":"<popup prozor>","targetPopupName":"Naziv popup prozora","title":"Veza","toAnchor":"Sidro na ovoj stranici","toEmail":"E-Mail","toUrl":"URL","toolbar":"Ubaci/promijeni vezu","type":"Vrsta veze","unlink":"Ukloni vezu","upload":"Pošalji"},"list":{"bulletedlist":"Obična lista","numberedlist":"Brojčana lista"},"magicline":{"title":"Ubaci paragraf ovdje"},"maximize":{"maximize":"Povećaj","minimize":"Smanji"},"pastetext":{"button":"Zalijepi kao čisti tekst","pasteNotification":"Vaš preglednik Vam ne dozvoljava lijepljenje običnog teksta na ovaj način. Za lijepljenje, pritisnite %1."},"pastefromword":{"confirmCleanup":"Tekst koji želite zalijepiti čini se da je kopiran iz Worda. Želite li prije očistiti tekst?","error":"Nije moguće očistiti podatke za ljepljenje zbog interne greške","title":"Zalijepi iz Worda","toolbar":"Zalijepi iz Worda"},"removeformat":{"toolbar":"Ukloni formatiranje"},"sourcearea":{"toolbar":"Kôd"},"specialchar":{"options":"Opcije specijalnih znakova","title":"Odaberite posebni karakter","toolbar":"Ubaci posebni znak"},"scayt":{"btn_about":"O SCAYT","btn_dictionaries":"Rječnici","btn_disable":"Onemogući SCAYT","btn_enable":"Omogući SCAYT","btn_langs":"Jezici","btn_options":"Opcije","text_title":"Provjeri pravopis tijekom tipkanja (SCAYT)"},"stylescombo":{"label":"Stil","panelTitle":"Stilovi formatiranja","panelTitle1":"Block stilovi","panelTitle2":"Inline stilovi","panelTitle3":"Object stilovi"},"table":{"border":"Veličina okvira","caption":"Naslov","cell":{"menu":"Ćelija","insertBefore":"Ubaci ćeliju prije","insertAfter":"Ubaci ćeliju poslije","deleteCell":"Izbriši ćelije","merge":"Spoji ćelije","mergeRight":"Spoji desno","mergeDown":"Spoji dolje","splitHorizontal":"Podijeli ćeliju vodoravno","splitVertical":"Podijeli ćeliju okomito","title":"Svojstva ćelije","cellType":"Vrsta ćelije","rowSpan":"Rows Span","colSpan":"Columns Span","wordWrap":"Prelazak u novi red","hAlign":"Vodoravno poravnanje","vAlign":"Okomito poravnanje","alignBaseline":"Osnovna linija","bgColor":"Boja pozadine","borderColor":"Boja ruba","data":"Podatak","header":"Zaglavlje","yes":"Da","no":"Ne","invalidWidth":"Širina ćelije mora biti broj.","invalidHeight":"Visina ćelije mora biti broj.","invalidRowSpan":"Rows span mora biti cijeli broj.","invalidColSpan":"Columns span mora biti cijeli broj.","chooseColor":"Odaberi"},"cellPad":"Razmak ćelija","cellSpace":"Prostornost ćelija","column":{"menu":"Kolona","insertBefore":"Ubaci kolonu prije","insertAfter":"Ubaci kolonu poslije","deleteColumn":"Izbriši kolone"},"columns":"Kolona","deleteTable":"Izbriši tablicu","headers":"Zaglavlje","headersBoth":"Oba","headersColumn":"Prva kolona","headersNone":"Ništa","headersRow":"Prvi red","invalidBorder":"Debljina ruba mora biti broj.","invalidCellPadding":"Razmak ćelija mora biti broj.","invalidCellSpacing":"Prostornost ćelija mora biti broj.","invalidCols":"Broj kolona mora biti broj veći od 0.","invalidHeight":"Visina tablice mora biti broj.","invalidRows":"Broj redova mora biti broj veći od 0.","invalidWidth":"Širina tablice mora biti broj.","menu":"Svojstva tablice","row":{"menu":"Red","insertBefore":"Ubaci red prije","insertAfter":"Ubaci red poslije","deleteRow":"Izbriši redove"},"rows":"Redova","summary":"Sažetak","title":"Svojstva tablice","toolbar":"Tablica","widthPc":"postotaka","widthPx":"piksela","widthUnit":"jedinica širine"},"undo":{"redo":"Ponovi","undo":"Poništi"},"wsc":{"btnIgnore":"Zanemari","btnIgnoreAll":"Zanemari sve","btnReplace":"Zamijeni","btnReplaceAll":"Zamijeni sve","btnUndo":"Vrati","changeTo":"Promijeni u","errorLoading":"Greška učitavanja aplikacije: %s.","ieSpellDownload":"Provjera pravopisa nije instalirana. Želite li skinuti provjeru pravopisa?","manyChanges":"Provjera završena: Promijenjeno %1 riječi","noChanges":"Provjera završena: Nije napravljena promjena","noMispell":"Provjera završena: Nema grešaka","noSuggestions":"-Nema preporuke-","notAvailable":"Žao nam je, ali usluga trenutno nije dostupna.","notInDic":"Nije u rječniku","oneChange":"Provjera završena: Jedna riječ promjenjena","progress":"Provjera u tijeku...","title":"Provjera pravopisa","toolbar":"Provjeri pravopis"}}; \ No newline at end of file diff --git a/admin/plugins/ckeditor/lang/hu.js b/admin/plugins/ckeditor/lang/hu.js deleted file mode 100644 index d358f5e..0000000 --- a/admin/plugins/ckeditor/lang/hu.js +++ /dev/null @@ -1,5 +0,0 @@ -/* -Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. -For licensing, see LICENSE.md or http://ckeditor.com/license -*/ -CKEDITOR.lang['hu']={"editor":"HTML szerkesztő","editorPanel":"Rich Text szerkesztő panel","common":{"editorHelp":"Segítségért nyomjon ALT 0","browseServer":"Böngészés a szerveren","url":"Hivatkozás","protocol":"Protokoll","upload":"Feltöltés","uploadSubmit":"Küldés a szerverre","image":"Kép","flash":"Flash","form":"Űrlap","checkbox":"Jelölőnégyzet","radio":"Választógomb","textField":"Szövegmező","textarea":"Szövegterület","hiddenField":"Rejtettmező","button":"Gomb","select":"Legördülő lista","imageButton":"Képgomb","notSet":"<nincs beállítva>","id":"Azonosító","name":"Név","langDir":"Írás iránya","langDirLtr":"Balról jobbra","langDirRtl":"Jobbról balra","langCode":"Nyelv kódja","longDescr":"Részletes leírás webcíme","cssClass":"Stíluskészlet","advisoryTitle":"Súgócimke","cssStyle":"Stílus","ok":"Rendben","cancel":"Mégsem","close":"Bezárás","preview":"Előnézet","resize":"Húzza az átméretezéshez","generalTab":"Általános","advancedTab":"További opciók","validateNumberFailed":"A mezőbe csak számokat írhat.","confirmNewPage":"Minden nem mentett változás el fog veszni! Biztosan be szeretné tölteni az oldalt?","confirmCancel":"Az űrlap tartalma megváltozott, ám a változásokat nem rögzítette. Biztosan be szeretné zárni az űrlapot?","options":"Beállítások","target":"Cél","targetNew":"Új ablak (_blank)","targetTop":"Legfelső ablak (_top)","targetSelf":"Aktuális ablakban (_self)","targetParent":"Szülő ablak (_parent)","langDirLTR":"Balról jobbra (LTR)","langDirRTL":"Jobbról balra (RTL)","styles":"Stílus","cssClasses":"Stíluslap osztály","width":"Szélesség","height":"Magasság","align":"Igazítás","alignLeft":"Bal","alignRight":"Jobbra","alignCenter":"Középre","alignJustify":"Sorkizárt","alignTop":"Tetejére","alignMiddle":"Középre","alignBottom":"Aljára","alignNone":"Semmi","invalidValue":"Érvénytelen érték.","invalidHeight":"A magasság mezőbe csak számokat írhat.","invalidWidth":"A szélesség mezőbe csak számokat írhat.","invalidCssLength":"\"%1\"-hez megadott érték csakis egy pozitív szám lehet, esetleg egy érvényes CSS egységgel megjelölve(px, %, in, cm, mm, em, ex, pt vagy pc).","invalidHtmlLength":"\"%1\"-hez megadott érték csakis egy pozitív szám lehet, esetleg egy érvényes HTML egységgel megjelölve(px vagy %).","invalidInlineStyle":"Az inline stílusnak megadott értéknek tartalmaznia kell egy vagy több rekordot a \"name : value\" formátumban, pontosvesszővel elválasztva.","cssLengthTooltip":"Adjon meg egy számot értéknek pixelekben vagy egy számot érvényes CSS mértékegységben (px, %, in, cm, mm, em, ex, pt, vagy pc).","unavailable":"%1<span class=\"cke_accessibility\">, nem elérhető</span>","keyboard":{"8":"Backspace","13":"Enter","16":"Shift","17":"Ctrl","18":"Alt","32":"Space","35":"End","36":"Home","46":"Delete","224":"Command"},"keyboardShortcut":"Gyorsbillentyű"},"about":{"copy":"Copyright &copy; $1. Minden jog fenntartva.","dlgTitle":"CKEditor névjegy","help":"Itt találsz segítséget: $1","moreInfo":"Licenszelési információkért kérjük látogassa meg weboldalunkat:","title":"CKEditor névjegy","userGuide":"CKEditor Felhasználói útmutató"},"basicstyles":{"bold":"Félkövér","italic":"Dőlt","strike":"Áthúzott","subscript":"Alsó index","superscript":"Felső index","underline":"Aláhúzott"},"blockquote":{"toolbar":"Idézet blokk"},"notification":{"closed":"Értesítés bezárva."},"button":{"selectedLabel":"%1 (Kiválasztva)"},"toolbar":{"toolbarCollapse":"Eszköztár összecsukása","toolbarExpand":"Eszköztár szétnyitása","toolbarGroups":{"document":"Dokumentum","clipboard":"Vágólap/Visszavonás","editing":"Szerkesztés","forms":"Űrlapok","basicstyles":"Alapstílusok","paragraph":"Bekezdés","links":"Hivatkozások","insert":"Beszúrás","styles":"Stílusok","colors":"Színek","tools":"Eszközök"},"toolbars":"Szerkesztő Eszköztár"},"clipboard":{"copy":"Másolás","copyError":"A böngésző biztonsági beállításai nem engedélyezik a szerkesztőnek, hogy végrehajtsa a másolás műveletet. Használja az alábbi billentyűkombinációt (Ctrl/Cmd+X).","cut":"Kivágás","cutError":"A böngésző biztonsági beállításai nem engedélyezik a szerkesztőnek, hogy végrehajtsa a kivágás műveletet. Használja az alábbi billentyűkombinációt (Ctrl/Cmd+X).","paste":"Beillesztés","pasteNotification":"Your browser doesn't allow you to paste this way. Press %1 to paste."},"contextmenu":{"options":"Helyi menü opciók"},"elementspath":{"eleLabel":"Elem utak","eleTitle":"%1 elem"},"format":{"label":"Formátum","panelTitle":"Formátum","tag_address":"Címsor","tag_div":"Bekezdés (DIV)","tag_h1":"Fejléc 1","tag_h2":"Fejléc 2","tag_h3":"Fejléc 3","tag_h4":"Fejléc 4","tag_h5":"Fejléc 5","tag_h6":"Fejléc 6","tag_p":"Normál","tag_pre":"Formázott"},"horizontalrule":{"toolbar":"Elválasztóvonal beillesztése"},"image":{"alt":"Alternatív szöveg","border":"Keret","btnUpload":"Küldés a szerverre","button2Img":"A kiválasztott képgombból sima képet szeretne csinálni?","hSpace":"Vízsz. táv","img2Button":"A kiválasztott képből képgombot szeretne csinálni?","infoTab":"Alaptulajdonságok","linkTab":"Hivatkozás","lockRatio":"Arány megtartása","menu":"Kép tulajdonságai","resetSize":"Eredeti méret","title":"Kép tulajdonságai","titleButton":"Képgomb tulajdonságai","upload":"Feltöltés","urlMissing":"Hiányzik a kép URL-je","vSpace":"Függ. táv","validateBorder":"A keret méretének egész számot kell beírni!","validateHSpace":"Vízszintes távolságnak egész számot kell beírni!","validateVSpace":"Függőleges távolságnak egész számot kell beírni!"},"indent":{"indent":"Behúzás növelése","outdent":"Behúzás csökkentése"},"fakeobjects":{"anchor":"Horgony","flash":"Flash animáció","hiddenfield":"Rejtett mezõ","iframe":"IFrame","unknown":"Ismeretlen objektum"},"link":{"acccessKey":"Billentyűkombináció","advanced":"További opciók","advisoryContentType":"Súgó tartalomtípusa","advisoryTitle":"Súgócimke","anchor":{"toolbar":"Horgony beillesztése/szerkesztése","menu":"Horgony tulajdonságai","title":"Horgony tulajdonságai","name":"Horgony neve","errorName":"Kérem adja meg a horgony nevét","remove":"Horgony eltávolítása"},"anchorId":"Azonosító szerint","anchorName":"Horgony név szerint","charset":"Hivatkozott tartalom kódlapja","cssClasses":"Stíluskészlet","download":"Kötelező letöltés","displayText":"Megjelenített szöveg","emailAddress":"E-Mail cím","emailBody":"Üzenet","emailSubject":"Üzenet tárgya","id":"Id","info":"Alaptulajdonságok","langCode":"Írás iránya","langDir":"Írás iránya","langDirLTR":"Balról jobbra","langDirRTL":"Jobbról balra","menu":"Hivatkozás módosítása","name":"Név","noAnchors":"(Nincs horgony a dokumentumban)","noEmail":"Adja meg az E-Mail címet","noUrl":"Adja meg a hivatkozás webcímét","other":"<más>","popupDependent":"Szülőhöz kapcsolt (csak Netscape)","popupFeatures":"Felugró ablak jellemzői","popupFullScreen":"Teljes képernyő (csak IE)","popupLeft":"Bal pozíció","popupLocationBar":"Címsor","popupMenuBar":"Menü sor","popupResizable":"Átméretezés","popupScrollBars":"Gördítősáv","popupStatusBar":"Állapotsor","popupToolbar":"Eszköztár","popupTop":"Felső pozíció","rel":"Kapcsolat típusa","selectAnchor":"Horgony választása","styles":"Stílus","tabIndex":"Tabulátor index","target":"Tartalom megjelenítése","targetFrame":"<keretben>","targetFrameName":"Keret neve","targetPopup":"<felugró ablakban>","targetPopupName":"Felugró ablak neve","title":"Hivatkozás tulajdonságai","toAnchor":"Horgony az oldalon","toEmail":"E-Mail","toUrl":"URL","toolbar":"Hivatkozás beillesztése/módosítása","type":"Hivatkozás típusa","unlink":"Hivatkozás törlése","upload":"Feltöltés"},"list":{"bulletedlist":"Felsorolás","numberedlist":"Számozás"},"magicline":{"title":"Szúrja be a bekezdést ide"},"maximize":{"maximize":"Teljes méret","minimize":"Kis méret"},"pastetext":{"button":"Beillesztés formázatlan szövegként","pasteNotification":"Your browser does not allow you to paste plain text this way. Press %1 to paste."},"pastefromword":{"confirmCleanup":"Úgy tűnik a beillesztett szöveget Word-ből másolt át. Meg szeretné tisztítani a szöveget? (ajánlott)","error":"Egy belső hiba miatt nem sikerült megtisztítani a szöveget","title":"Beillesztés Word-ből","toolbar":"Beillesztés Word-ből"},"removeformat":{"toolbar":"Formázás eltávolítása"},"sourcearea":{"toolbar":"Forráskód"},"specialchar":{"options":"Speciális karakter opciók","title":"Speciális karakter választása","toolbar":"Speciális karakter beillesztése"},"scayt":{"btn_about":"SCAYT névjegy","btn_dictionaries":"Szótár","btn_disable":"SCAYT letiltása","btn_enable":"SCAYT engedélyezése","btn_langs":"Nyelvek","btn_options":"Beállítások","text_title":"Helyesírás ellenőrzés gépelés közben"},"stylescombo":{"label":"Stílus","panelTitle":"Formázási stílusok","panelTitle1":"Blokk stílusok","panelTitle2":"Inline stílusok","panelTitle3":"Objektum stílusok"},"table":{"border":"Szegélyméret","caption":"Felirat","cell":{"menu":"Cella","insertBefore":"Beszúrás balra","insertAfter":"Beszúrás jobbra","deleteCell":"Cellák törlése","merge":"Cellák egyesítése","mergeRight":"Cellák egyesítése jobbra","mergeDown":"Cellák egyesítése lefelé","splitHorizontal":"Cellák szétválasztása vízszintesen","splitVertical":"Cellák szétválasztása függőlegesen","title":"Cella tulajdonságai","cellType":"Cella típusa","rowSpan":"Függőleges egyesítés","colSpan":"Vízszintes egyesítés","wordWrap":"Hosszú sorok törése","hAlign":"Vízszintes igazítás","vAlign":"Függőleges igazítás","alignBaseline":"Alapvonalra","bgColor":"Háttér színe","borderColor":"Keret színe","data":"Adat","header":"Fejléc","yes":"Igen","no":"Nem","invalidWidth":"A szélesség mezőbe csak számokat írhat.","invalidHeight":"A magasság mezőbe csak számokat írhat.","invalidRowSpan":"A függőleges egyesítés mezőbe csak számokat írhat.","invalidColSpan":"A vízszintes egyesítés mezőbe csak számokat írhat.","chooseColor":"Válasszon"},"cellPad":"Cella belső margó","cellSpace":"Cella térköz","column":{"menu":"Oszlop","insertBefore":"Beszúrás balra","insertAfter":"Beszúrás jobbra","deleteColumn":"Oszlopok törlése"},"columns":"Oszlopok","deleteTable":"Táblázat törlése","headers":"Fejlécek","headersBoth":"Mindkettő","headersColumn":"Első oszlop","headersNone":"Nincsenek","headersRow":"Első sor","invalidBorder":"A szegélyméret mezőbe csak számokat írhat.","invalidCellPadding":"A cella belső margó mezőbe csak számokat írhat.","invalidCellSpacing":"A cella térköz mezőbe csak számokat írhat.","invalidCols":"Az oszlopok számának nagyobbnak kell lenni mint 0.","invalidHeight":"A magasság mezőbe csak számokat írhat.","invalidRows":"A sorok számának nagyobbnak kell lenni mint 0.","invalidWidth":"A szélesség mezőbe csak számokat írhat.","menu":"Táblázat tulajdonságai","row":{"menu":"Sor","insertBefore":"Beszúrás fölé","insertAfter":"Beszúrás alá","deleteRow":"Sorok törlése"},"rows":"Sorok","summary":"Leírás","title":"Táblázat tulajdonságai","toolbar":"Táblázat","widthPc":"százalék","widthPx":"képpont","widthUnit":"Szélesség egység"},"undo":{"redo":"Ismétlés","undo":"Visszavonás"},"wsc":{"btnIgnore":"Kihagyja","btnIgnoreAll":"Mindet kihagyja","btnReplace":"Csere","btnReplaceAll":"Összes cseréje","btnUndo":"Visszavonás","changeTo":"Módosítás","errorLoading":"Hiba a szolgáltatás host betöltése közben: %s.","ieSpellDownload":"A helyesírás-ellenőrző nincs telepítve. Szeretné letölteni most?","manyChanges":"Helyesírás-ellenőrzés kész: %1 szó cserélve","noChanges":"Helyesírás-ellenőrzés kész: Nincs változtatott szó","noMispell":"Helyesírás-ellenőrzés kész: Nem találtam hibát","noSuggestions":"Nincs javaslat","notAvailable":"Sajnálom, de a szolgáltatás jelenleg nem elérhető.","notInDic":"Nincs a szótárban","oneChange":"Helyesírás-ellenőrzés kész: Egy szó cserélve","progress":"Helyesírás-ellenőrzés folyamatban...","title":"Helyesírás ellenörző","toolbar":"Helyesírás-ellenőrzés"}}; \ No newline at end of file diff --git a/admin/plugins/ckeditor/lang/id.js b/admin/plugins/ckeditor/lang/id.js deleted file mode 100644 index 35ffd08..0000000 --- a/admin/plugins/ckeditor/lang/id.js +++ /dev/null @@ -1,5 +0,0 @@ -/* -Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. -For licensing, see LICENSE.md or http://ckeditor.com/license -*/ -CKEDITOR.lang['id']={"editor":"Rich Text Editor","editorPanel":"Panel Rich Text Editor","common":{"editorHelp":"Tekan ALT 0 untuk bantuan.","browseServer":"Jelajah Server","url":"URL","protocol":"Protokol","upload":"Unggah","uploadSubmit":"Kirim ke Server","image":"Gambar","flash":"Flash","form":"Formulir","checkbox":"Kotak Cek","radio":"Tombol Radio","textField":"Kolom Teks","textarea":"Area Teks","hiddenField":"Kolom Tersembunyi","button":"Tombol","select":"Kolom Seleksi","imageButton":"Tombol Gambar","notSet":"<tidak diatur>","id":"Id","name":"Nama","langDir":"Arah Bahasa","langDirLtr":"Kiri ke Kanan (LTR)","langDirRtl":"Kanan ke Kiri","langCode":"Kode Bahasa","longDescr":"Deskripsi URL Panjang","cssClass":"Kelas Stylesheet","advisoryTitle":"Penasehat Judul","cssStyle":"Gaya","ok":"OK","cancel":"Batal","close":"Tutup","preview":"Pratinjau","resize":"Ubah ukuran","generalTab":"Umum","advancedTab":"Lebih Lanjut","validateNumberFailed":"Nilai ini tidak sebuah angka","confirmNewPage":"Semua perubahan yang tidak disimpan di konten ini akan hilang. Apakah anda yakin ingin memuat halaman baru?","confirmCancel":"Beberapa opsi telah berubah. Apakah anda yakin ingin menutup dialog?","options":"Opsi","target":"Sasaran","targetNew":"Jendela Baru (_blank)","targetTop":"Laman Atas (_top)","targetSelf":"Jendela yang Sama (_self)","targetParent":"Jendela Induk (_parent)","langDirLTR":"Kiri ke Kanan (LTR)","langDirRTL":"Kanan ke Kiri (RTL)","styles":"Gaya","cssClasses":"Kelas Stylesheet","width":"Lebar","height":"Tinggi","align":"Penjajaran","alignLeft":"Kiri","alignRight":"Kanan","alignCenter":"Tengah","alignJustify":"Rata kiri-kanan","alignTop":"Atas","alignMiddle":"Tengah","alignBottom":"Bawah","alignNone":"Tidak ada","invalidValue":"Nilai tidak sah.","invalidHeight":"Tinggi harus sebuah angka.","invalidWidth":"Lebar harus sebuah angka.","invalidCssLength":"Nilai untuk \"%1\" harus sebuah angkat positif dengan atau tanpa pengukuran unit CSS yang sah (px, %, in, cm, mm, em, ex, pt, or pc).","invalidHtmlLength":"Nilai yang dispesifikasian untuk kolom \"%1\" harus sebuah angka positif dengan atau tanpa sebuah unit pengukuran HTML (px atau %) yang valid.","invalidInlineStyle":"Nilai pada inline style merupakan pasangan nama dan nilai dengan format \"nama : nilai\", yang dipisahkan dengan titik dua.","cssLengthTooltip":"Masukkan sebuah angka untuk sebuah nilai dalam pixel atau sebuah angka dengan unit CSS yang sah (px, %, in, cm, mm, em, ex, pt, or pc).","unavailable":"%1<span class=\"cke_accessibility\">, tidak tersedia</span>","keyboard":{"8":"Backspace","13":"Enter","16":"Shift","17":"Ctrl","18":"Alt","32":"Spasi","35":"End","36":"Home","46":"Hapus","224":"Command"},"keyboardShortcut":"Pintasan Keyboard"},"about":{"copy":"Hak cipta &copy; $1. All rights reserved.","dlgTitle":"Tentang CKEditor","help":"Cel $1 untuk bantuan.","moreInfo":"Untuk informasi lisensi silahkan kunjungi web site kami:","title":"Tentang CKEditor","userGuide":"Petunjuk Pengguna CKEditor"},"basicstyles":{"bold":"Huruf Tebal","italic":"Huruf Miring","strike":"Strikethrough","subscript":"Subscript","superscript":"Superscript","underline":"Garis Bawah"},"blockquote":{"toolbar":"Kutipan Blok"},"notification":{"closed":"Pemberitahuan ditutup"},"button":{"selectedLabel":"%1(Dipilih)"},"toolbar":{"toolbarCollapse":"Ciutkan Toolbar","toolbarExpand":"Bentangkan Toolbar","toolbarGroups":{"document":"Dokumen","clipboard":"Papan klip / Kembalikan perlakuan","editing":"Sunting","forms":"Formulir","basicstyles":"Gaya Dasar","paragraph":"Paragraf","links":"Tautan","insert":"Sisip","styles":"Gaya","colors":"Warna","tools":"Alat"},"toolbars":"Toolbar Penyunting"},"clipboard":{"copy":"Salin","copyError":"Pengaturan keamanan peramban anda tidak mengizinkan editor untuk mengeksekusi operasi menyalin secara otomatis. Mohon gunakan papan tuts (Ctrl/Cmd+C)","cut":"Potong","cutError":"Your browser security settings don't permit the editor to automatically execute cutting operations. Please use the keyboard for that (Ctrl/Cmd+X).","paste":"Tempel","pasteNotification":"Your browser doesn't allow you to paste this way. Press %1 to paste."},"contextmenu":{"options":"Opsi Konteks Pilihan"},"elementspath":{"eleLabel":"Elements path","eleTitle":"%1 element"},"format":{"label":"Bentuk","panelTitle":"Bentuk Paragraf","tag_address":"Alamat","tag_div":"Normal (DIV)","tag_h1":"Heading 1","tag_h2":"Heading 2","tag_h3":"Heading 3","tag_h4":"Heading 4","tag_h5":"Heading 5","tag_h6":"Heading 6","tag_p":"Normal","tag_pre":"Membentuk"},"horizontalrule":{"toolbar":"Sisip Garis Horisontal"},"image":{"alt":"Teks alternatif","border":"Batas","btnUpload":"Kirim ke Server","button2Img":"Do you want to transform the selected image button on a simple image?","hSpace":"HSpace","img2Button":"Apakah anda ingin mengubah gambar yang dipilih pada tombol gambar?","infoTab":"Info Gambar","linkTab":"Tautan","lockRatio":"Lock Ratio","menu":"Image Properties","resetSize":"Atur Ulang Ukuran","title":"Image Properties","titleButton":"Image Button Properties","upload":"Unggah","urlMissing":"Image source URL is missing.","vSpace":"VSpace","validateBorder":"Border harus berupa angka","validateHSpace":"HSpace harus berupa angka","validateVSpace":"VSpace must be a whole number."},"indent":{"indent":"Tingkatkan Lekuk","outdent":"Kurangi Lekuk"},"fakeobjects":{"anchor":"Anchor","flash":"Animasi Flash","hiddenfield":"Kolom Tersembunyi","iframe":"IFrame","unknown":"Obyek Tak Dikenal"},"link":{"acccessKey":"Access Key","advanced":"Advanced","advisoryContentType":"Advisory Content Type","advisoryTitle":"Penasehat Judul","anchor":{"toolbar":"Anchor","menu":"Edit Anchor","title":"Anchor Properties","name":"Anchor Name","errorName":"Please type the anchor name","remove":"Remove Anchor"},"anchorId":"By Element Id","anchorName":"By Anchor Name","charset":"Linked Resource Charset","cssClasses":"Kelas Stylesheet","download":"Force Download","displayText":"Display Text","emailAddress":"Alamat E-mail","emailBody":"Message Body","emailSubject":"Judul Pesan","id":"Id","info":"Link Info","langCode":"Kode Bahasa","langDir":"Arah Bahasa","langDirLTR":"Kiri ke Kanan (LTR)","langDirRTL":"Kanan ke Kiri (RTL)","menu":"Sunting Tautan","name":"Nama","noAnchors":"(No anchors available in the document)","noEmail":"Silahkan ketikkan alamat e-mail","noUrl":"Silahkan ketik URL tautan","other":"<lainnya>","popupDependent":"Dependent (Netscape)","popupFeatures":"Popup Window Features","popupFullScreen":"Full Screen (IE)","popupLeft":"Left Position","popupLocationBar":"Location Bar","popupMenuBar":"Menu Bar","popupResizable":"Resizable","popupScrollBars":"Scroll Bars","popupStatusBar":"Status Bar","popupToolbar":"Toolbar","popupTop":"Top Position","rel":"Hubungan","selectAnchor":"Select an Anchor","styles":"Gaya","tabIndex":"Tab Index","target":"Sasaran","targetFrame":"<frame>","targetFrameName":"Target Frame Name","targetPopup":"<popup window>","targetPopupName":"Popup Window Name","title":"Tautan","toAnchor":"Link to anchor in the text","toEmail":"E-mail","toUrl":"URL","toolbar":"Tautan","type":"Link Type","unlink":"Unlink","upload":"Unggah"},"list":{"bulletedlist":"Sisip/Hapus Daftar Bullet","numberedlist":"Sisip/Hapus Daftar Bernomor"},"magicline":{"title":"Masukkan paragraf disini"},"maximize":{"maximize":"Memperbesar","minimize":"Memperkecil"},"pastetext":{"button":"Tempel sebagai teks polos","pasteNotification":"Your browser does not allow you to paste plain text this way. Press %1 to paste."},"pastefromword":{"confirmCleanup":"Teks yang ingin anda tempel sepertinya di salin dari Word. Apakah anda mau membersihkannya sebelum menempel?","error":"Tidak mungkin membersihkan data yang ditempel dikerenakan kesalahan internal","title":"Tempel dari Word","toolbar":"Tempel dari Word"},"removeformat":{"toolbar":"Hapus Format"},"sourcearea":{"toolbar":"Sumber"},"specialchar":{"options":"Opsi spesial karakter","title":"Pilih spesial karakter","toolbar":"Sisipkan spesial karakter"},"scayt":{"btn_about":"About SCAYT","btn_dictionaries":"Dictionaries","btn_disable":"Disable SCAYT","btn_enable":"Enable SCAYT","btn_langs":"Languages","btn_options":"Options","text_title":"Spell Check As You Type"},"stylescombo":{"label":"Gaya","panelTitle":"Formatting Styles","panelTitle1":"Block Styles","panelTitle2":"Inline Styles","panelTitle3":"Object Styles"},"table":{"border":"Ukuran batas","caption":"Judul halaman","cell":{"menu":"Sel","insertBefore":"Sisip Sel Sebelum","insertAfter":"Sisip Sel Setelah","deleteCell":"Hapus Sel","merge":"Gabungkan Sel","mergeRight":"Gabungkan ke Kanan","mergeDown":"Gabungkan ke Bawah","splitHorizontal":"Pisahkan Sel Secara Horisontal","splitVertical":"Pisahkan Sel Secara Vertikal","title":"Properti Sel","cellType":"Tipe Sel","rowSpan":"Rentang antar baris","colSpan":"Rentang antar kolom","wordWrap":"Word Wrap","hAlign":"Jajaran Horisontal","vAlign":"Jajaran Vertikal","alignBaseline":"Dasar","bgColor":"Warna Latar Belakang","borderColor":"Warna Batasan","data":"Data","header":"Header","yes":"Ya","no":"Tidak","invalidWidth":"Lebar sel harus sebuah angka.","invalidHeight":"Tinggi sel harus sebuah angka","invalidRowSpan":"Rentang antar baris harus angka seluruhnya.","invalidColSpan":"Rentang antar kolom harus angka seluruhnya","chooseColor":"Pilih"},"cellPad":"Sel spasi dalam","cellSpace":"Spasi antar sel","column":{"menu":"Kolom","insertBefore":"Sisip Kolom Sebelum","insertAfter":"Sisip Kolom Sesudah","deleteColumn":"Hapus Kolom"},"columns":"Kolom","deleteTable":"Hapus Tabel","headers":"Headers","headersBoth":"Keduanya","headersColumn":"Kolom pertama","headersNone":"Tidak ada","headersRow":"Baris Pertama","invalidBorder":"Ukuran batasan harus sebuah angka","invalidCellPadding":"'Spasi dalam' sel harus angka positif.","invalidCellSpacing":"Spasi antar sel harus angka positif.","invalidCols":"Jumlah kolom harus sebuah angka lebih besar dari 0","invalidHeight":"Tinggi tabel harus sebuah angka.","invalidRows":"Jumlah barus harus sebuah angka dan lebih besar dari 0.","invalidWidth":"Lebar tabel harus sebuah angka.","menu":"Properti Tabel","row":{"menu":"Baris","insertBefore":"Sisip Baris Sebelum","insertAfter":"Sisip Baris Sesudah","deleteRow":"Hapus Baris"},"rows":"Baris","summary":"Intisari","title":"Properti Tabel","toolbar":"Tabe","widthPc":"persen","widthPx":"piksel","widthUnit":"lebar satuan"},"undo":{"redo":"Kembali lakukan","undo":"Batalkan perlakuan"},"wsc":{"btnIgnore":"Ignore","btnIgnoreAll":"Ignore All","btnReplace":"Replace","btnReplaceAll":"Replace All","btnUndo":"Undo","changeTo":"Change to","errorLoading":"Error loading application service host: %s.","ieSpellDownload":"Spell checker not installed. Do you want to download it now?","manyChanges":"Spell check complete: %1 words changed","noChanges":"Spell check complete: No words changed","noMispell":"Spell check complete: No misspellings found","noSuggestions":"- No suggestions -","notAvailable":"Sorry, but service is unavailable now.","notInDic":"Not in dictionary","oneChange":"Spell check complete: One word changed","progress":"Spell check in progress...","title":"Spell Checker","toolbar":"Check Spelling"}}; \ No newline at end of file diff --git a/admin/plugins/ckeditor/lang/is.js b/admin/plugins/ckeditor/lang/is.js deleted file mode 100644 index 9ca76cf..0000000 --- a/admin/plugins/ckeditor/lang/is.js +++ /dev/null @@ -1,5 +0,0 @@ -/* -Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. -For licensing, see LICENSE.md or http://ckeditor.com/license -*/ -CKEDITOR.lang['is']={"editor":"Rich Text Editor","editorPanel":"Rich Text Editor panel","common":{"editorHelp":"Press ALT 0 for help","browseServer":"Fletta í skjalasafni","url":"Vefslóð","protocol":"Samskiptastaðall","upload":"Senda upp","uploadSubmit":"Hlaða upp","image":"Setja inn mynd","flash":"Flash","form":"Setja inn innsláttarform","checkbox":"Setja inn hökunarreit","radio":"Setja inn valhnapp","textField":"Setja inn textareit","textarea":"Setja inn textasvæði","hiddenField":"Setja inn falið svæði","button":"Setja inn hnapp","select":"Setja inn lista","imageButton":"Setja inn myndahnapp","notSet":"<ekkert valið>","id":"Auðkenni","name":"Nafn","langDir":"Lesstefna","langDirLtr":"Frá vinstri til hægri (LTR)","langDirRtl":"Frá hægri til vinstri (RTL)","langCode":"Tungumálakóði","longDescr":"Nánari lýsing","cssClass":"Stílsniðsflokkur","advisoryTitle":"Titill","cssStyle":"Stíll","ok":"Í lagi","cancel":"Hætta við","close":"Close","preview":"Forskoða","resize":"Resize","generalTab":"Almennt","advancedTab":"Tæknilegt","validateNumberFailed":"This value is not a number.","confirmNewPage":"Any unsaved changes to this content will be lost. Are you sure you want to load new page?","confirmCancel":"You have changed some options. Are you sure you want to close the dialog window?","options":"Options","target":"Mark","targetNew":"New Window (_blank)","targetTop":"Topmost Window (_top)","targetSelf":"Same Window (_self)","targetParent":"Parent Window (_parent)","langDirLTR":"Frá vinstri til hægri (LTR)","langDirRTL":"Frá hægri til vinstri (RTL)","styles":"Stíll","cssClasses":"Stílsniðsflokkur","width":"Breidd","height":"Hæð","align":"Jöfnun","alignLeft":"Vinstri","alignRight":"Hægri","alignCenter":"Miðjað","alignJustify":"Jafna báðum megin","alignTop":"Efst","alignMiddle":"Miðjuð","alignBottom":"Neðst","alignNone":"None","invalidValue":"Invalid value.","invalidHeight":"Height must be a number.","invalidWidth":"Width must be a number.","invalidCssLength":"Value specified for the \"%1\" field must be a positive number with or without a valid CSS measurement unit (px, %, in, cm, mm, em, ex, pt, or pc).","invalidHtmlLength":"Value specified for the \"%1\" field must be a positive number with or without a valid HTML measurement unit (px or %).","invalidInlineStyle":"Value specified for the inline style must consist of one or more tuples with the format of \"name : value\", separated by semi-colons.","cssLengthTooltip":"Enter a number for a value in pixels or a number with a valid CSS unit (px, %, in, cm, mm, em, ex, pt, or pc).","unavailable":"%1<span class=\"cke_accessibility\">, unavailable</span>","keyboard":{"8":"Backspace","13":"Enter","16":"Shift","17":"Ctrl","18":"Alt","32":"Space","35":"End","36":"Home","46":"Delete","224":"Command"},"keyboardShortcut":"Keyboard shortcut"},"about":{"copy":"Copyright &copy; $1. All rights reserved.","dlgTitle":"About CKEditor","help":"Check $1 for help.","moreInfo":"For licensing information please visit our web site:","title":"About CKEditor","userGuide":"CKEditor User's Guide"},"basicstyles":{"bold":"Feitletrað","italic":"Skáletrað","strike":"Yfirstrikað","subscript":"Niðurskrifað","superscript":"Uppskrifað","underline":"Undirstrikað"},"blockquote":{"toolbar":"Inndráttur"},"notification":{"closed":"Notification closed."},"button":{"selectedLabel":"%1 (Selected)"},"toolbar":{"toolbarCollapse":"Collapse Toolbar","toolbarExpand":"Expand Toolbar","toolbarGroups":{"document":"Document","clipboard":"Clipboard/Undo","editing":"Editing","forms":"Forms","basicstyles":"Basic Styles","paragraph":"Paragraph","links":"Links","insert":"Insert","styles":"Styles","colors":"Colors","tools":"Tools"},"toolbars":"Editor toolbars"},"clipboard":{"copy":"Afrita","copyError":"Öryggisstillingar vafrans þíns leyfa ekki afritun texta með músaraðgerð. Notaðu lyklaborðið í afrita (Ctrl/Cmd+C).","cut":"Klippa","cutError":"Öryggisstillingar vafrans þíns leyfa ekki klippingu texta með músaraðgerð. Notaðu lyklaborðið í klippa (Ctrl/Cmd+X).","paste":"Líma","pasteNotification":"Your browser doesn't allow you to paste this way. Press %1 to paste."},"contextmenu":{"options":"Context Menu Options"},"elementspath":{"eleLabel":"Elements path","eleTitle":"%1 element"},"format":{"label":"Stílsnið","panelTitle":"Stílsnið","tag_address":"Vistfang","tag_div":"Venjulegt (DIV)","tag_h1":"Fyrirsögn 1","tag_h2":"Fyrirsögn 2","tag_h3":"Fyrirsögn 3","tag_h4":"Fyrirsögn 4","tag_h5":"Fyrirsögn 5","tag_h6":"Fyrirsögn 6","tag_p":"Venjulegt letur","tag_pre":"Forsniðið"},"horizontalrule":{"toolbar":"Lóðrétt lína"},"image":{"alt":"Baklægur texti","border":"Rammi","btnUpload":"Hlaða upp","button2Img":"Do you want to transform the selected image button on a simple image?","hSpace":"Vinstri bil","img2Button":"Do you want to transform the selected image on a image button?","infoTab":"Almennt","linkTab":"Stikla","lockRatio":"Festa stærðarhlutfall","menu":"Eigindi myndar","resetSize":"Reikna stærð","title":"Eigindi myndar","titleButton":"Eigindi myndahnapps","upload":"Hlaða upp","urlMissing":"Image source URL is missing.","vSpace":"Hægri bil","validateBorder":"Border must be a whole number.","validateHSpace":"HSpace must be a whole number.","validateVSpace":"VSpace must be a whole number."},"indent":{"indent":"Minnka inndrátt","outdent":"Auka inndrátt"},"fakeobjects":{"anchor":"Anchor","flash":"Flash Animation","hiddenfield":"Hidden Field","iframe":"IFrame","unknown":"Unknown Object"},"link":{"acccessKey":"Skammvalshnappur","advanced":"Tæknilegt","advisoryContentType":"Tegund innihalds","advisoryTitle":"Titill","anchor":{"toolbar":"Stofna/breyta kaflamerki","menu":"Eigindi kaflamerkis","title":"Eigindi kaflamerkis","name":"Nafn bókamerkis","errorName":"Sláðu inn nafn bókamerkis!","remove":"Remove Anchor"},"anchorId":"Eftir auðkenni einingar","anchorName":"Eftir akkerisnafni","charset":"Táknróf","cssClasses":"Stílsniðsflokkur","download":"Force Download","displayText":"Display Text","emailAddress":"Netfang","emailBody":"Meginmál","emailSubject":"Efni","id":"Auðkenni","info":"Almennt","langCode":"Lesstefna","langDir":"Lesstefna","langDirLTR":"Frá vinstri til hægri (LTR)","langDirRTL":"Frá hægri til vinstri (RTL)","menu":"Breyta stiklu","name":"Nafn","noAnchors":"<Engin bókamerki á skrá>","noEmail":"Sláðu inn netfang!","noUrl":"Sláðu inn veffang stiklunnar!","other":"<annar>","popupDependent":"Háð venslum (Netscape)","popupFeatures":"Eigindi sprettiglugga","popupFullScreen":"Heilskjár (IE)","popupLeft":"Fjarlægð frá vinstri","popupLocationBar":"Fanglína","popupMenuBar":"Vallína","popupResizable":"Resizable","popupScrollBars":"Skrunstikur","popupStatusBar":"Stöðustika","popupToolbar":"Verkfærastika","popupTop":"Fjarlægð frá efri brún","rel":"Relationship","selectAnchor":"Veldu akkeri","styles":"Stíll","tabIndex":"Raðnúmer innsláttarreits","target":"Mark","targetFrame":"<rammi>","targetFrameName":"Nafn markglugga","targetPopup":"<sprettigluggi>","targetPopupName":"Nafn sprettiglugga","title":"Stikla","toAnchor":"Bókamerki á þessari síðu","toEmail":"Netfang","toUrl":"Vefslóð","toolbar":"Stofna/breyta stiklu","type":"Stikluflokkur","unlink":"Fjarlægja stiklu","upload":"Senda upp"},"list":{"bulletedlist":"Punktalisti","numberedlist":"Númeraður listi"},"magicline":{"title":"Insert paragraph here"},"maximize":{"maximize":"Maximize","minimize":"Minimize"},"pastetext":{"button":"Líma sem ósniðinn texta","pasteNotification":"Your browser does not allow you to paste plain text this way. Press %1 to paste."},"pastefromword":{"confirmCleanup":"The text you want to paste seems to be copied from Word. Do you want to clean it before pasting?","error":"It was not possible to clean up the pasted data due to an internal error","title":"Líma úr Word","toolbar":"Líma úr Word"},"removeformat":{"toolbar":"Fjarlægja snið"},"sourcearea":{"toolbar":"Kóði"},"specialchar":{"options":"Special Character Options","title":"Velja tákn","toolbar":"Setja inn merki"},"scayt":{"btn_about":"About SCAYT","btn_dictionaries":"Dictionaries","btn_disable":"Disable SCAYT","btn_enable":"Enable SCAYT","btn_langs":"Languages","btn_options":"Options","text_title":"Spell Check As You Type"},"stylescombo":{"label":"Stílflokkur","panelTitle":"Formatting Styles","panelTitle1":"Block Styles","panelTitle2":"Inline Styles","panelTitle3":"Object Styles"},"table":{"border":"Breidd ramma","caption":"Titill","cell":{"menu":"Reitur","insertBefore":"Skjóta inn reiti fyrir aftan","insertAfter":"Skjóta inn reiti fyrir framan","deleteCell":"Fella reit","merge":"Sameina reiti","mergeRight":"Sameina til hægri","mergeDown":"Sameina niður á við","splitHorizontal":"Kljúfa reit lárétt","splitVertical":"Kljúfa reit lóðrétt","title":"Cell Properties","cellType":"Cell Type","rowSpan":"Rows Span","colSpan":"Columns Span","wordWrap":"Word Wrap","hAlign":"Horizontal Alignment","vAlign":"Vertical Alignment","alignBaseline":"Baseline","bgColor":"Background Color","borderColor":"Border Color","data":"Data","header":"Header","yes":"Yes","no":"No","invalidWidth":"Cell width must be a number.","invalidHeight":"Cell height must be a number.","invalidRowSpan":"Rows span must be a whole number.","invalidColSpan":"Columns span must be a whole number.","chooseColor":"Choose"},"cellPad":"Reitaspássía","cellSpace":"Bil milli reita","column":{"menu":"Dálkur","insertBefore":"Skjóta inn dálki vinstra megin","insertAfter":"Skjóta inn dálki hægra megin","deleteColumn":"Fella dálk"},"columns":"Dálkar","deleteTable":"Fella töflu","headers":"Fyrirsagnir","headersBoth":"Hvort tveggja","headersColumn":"Fyrsti dálkur","headersNone":"Engar","headersRow":"Fyrsta röð","invalidBorder":"Border size must be a number.","invalidCellPadding":"Cell padding must be a positive number.","invalidCellSpacing":"Cell spacing must be a positive number.","invalidCols":"Number of columns must be a number greater than 0.","invalidHeight":"Table height must be a number.","invalidRows":"Number of rows must be a number greater than 0.","invalidWidth":"Table width must be a number.","menu":"Eigindi töflu","row":{"menu":"Röð","insertBefore":"Skjóta inn röð fyrir ofan","insertAfter":"Skjóta inn röð fyrir neðan","deleteRow":"Eyða röð"},"rows":"Raðir","summary":"Áfram","title":"Eigindi töflu","toolbar":"Tafla","widthPc":"prósent","widthPx":"myndeindir","widthUnit":"width unit"},"undo":{"redo":"Hætta við afturköllun","undo":"Afturkalla"},"wsc":{"btnIgnore":"Hunsa","btnIgnoreAll":"Hunsa allt","btnReplace":"Skipta","btnReplaceAll":"Skipta öllu","btnUndo":"Til baka","changeTo":"Tillaga","errorLoading":"Error loading application service host: %s.","ieSpellDownload":"Villuleit ekki sett upp.<br>Viltu setja hana upp?","manyChanges":"Villuleit lokið: %1 orðum breytt","noChanges":"Villuleit lokið: Engu orði breytt","noMispell":"Villuleit lokið: Engin villa fannst","noSuggestions":"- engar tillögur -","notAvailable":"Sorry, but service is unavailable now.","notInDic":"Ekki í orðabókinni","oneChange":"Villuleit lokið: Einu orði breytt","progress":"Villuleit í gangi...","title":"Spell Checker","toolbar":"Villuleit"}}; \ No newline at end of file diff --git a/admin/plugins/ckeditor/lang/it.js b/admin/plugins/ckeditor/lang/it.js deleted file mode 100644 index 747f0af..0000000 --- a/admin/plugins/ckeditor/lang/it.js +++ /dev/null @@ -1,5 +0,0 @@ -/* -Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. -For licensing, see LICENSE.md or http://ckeditor.com/license -*/ -CKEDITOR.lang['it']={"editor":"Rich Text Editor","editorPanel":"Pannello Rich Text Editor","common":{"editorHelp":"Premi ALT 0 per aiuto","browseServer":"Cerca sul server","url":"URL","protocol":"Protocollo","upload":"Carica","uploadSubmit":"Invia al server","image":"Immagine","flash":"Oggetto Flash","form":"Modulo","checkbox":"Checkbox","radio":"Radio Button","textField":"Campo di testo","textarea":"Area di testo","hiddenField":"Campo nascosto","button":"Bottone","select":"Menu di selezione","imageButton":"Bottone immagine","notSet":"<non impostato>","id":"Id","name":"Nome","langDir":"Direzione scrittura","langDirLtr":"Da Sinistra a Destra (LTR)","langDirRtl":"Da Destra a Sinistra (RTL)","langCode":"Codice Lingua","longDescr":"URL descrizione estesa","cssClass":"Nome classe CSS","advisoryTitle":"Titolo","cssStyle":"Stile","ok":"OK","cancel":"Annulla","close":"Chiudi","preview":"Anteprima","resize":"Trascina per ridimensionare","generalTab":"Generale","advancedTab":"Avanzate","validateNumberFailed":"Il valore inserito non è un numero.","confirmNewPage":"Ogni modifica non salvata sarà persa. Sei sicuro di voler caricare una nuova pagina?","confirmCancel":"Alcune delle opzioni sono state cambiate. Sei sicuro di voler chiudere la finestra di dialogo?","options":"Opzioni","target":"Destinazione","targetNew":"Nuova finestra (_blank)","targetTop":"Finestra in primo piano (_top)","targetSelf":"Stessa finestra (_self)","targetParent":"Finestra Padre (_parent)","langDirLTR":"Da sinistra a destra (LTR)","langDirRTL":"Da destra a sinistra (RTL)","styles":"Stile","cssClasses":"Classi di stile","width":"Larghezza","height":"Altezza","align":"Allineamento","alignLeft":"Sinistra","alignRight":"Destra","alignCenter":"Centrato","alignJustify":"Giustifica","alignTop":"In Alto","alignMiddle":"Centrato","alignBottom":"In Basso","alignNone":"Nessuno","invalidValue":"Valore non valido.","invalidHeight":"L'altezza dev'essere un numero","invalidWidth":"La Larghezza dev'essere un numero","invalidCssLength":"Il valore indicato per il campo \"%1\" deve essere un numero positivo con o senza indicazione di una valida unità di misura per le classi CSS (px, %, in, cm, mm, em, ex, pt, o pc).","invalidHtmlLength":"Il valore indicato per il campo \"%1\" deve essere un numero positivo con o senza indicazione di una valida unità di misura per le pagine HTML (px o %).","invalidInlineStyle":"Il valore specificato per lo stile inline deve consistere in una o più tuple con il formato di \"name : value\", separati da semicolonne.","cssLengthTooltip":"Inserisci un numero per il valore in pixel oppure un numero con una valida unità CSS (px, %, in, cm, mm, ex, pt, o pc).","unavailable":"%1<span class=\"cke_accessibility\">, non disponibile</span>","keyboard":{"8":"Backspace","13":"Invio","16":"Maiusc","17":"Ctrl","18":"Alt","32":"Spazio","35":"Fine","36":"Inizio","46":"Canc","224":"Comando"},"keyboardShortcut":"Scorciatoia da tastiera"},"about":{"copy":"Copyright &copy; $1. Tutti i diritti riservati.","dlgTitle":"Riguardo CKEditor","help":"Vedi $1 per l'aiuto.","moreInfo":"Per le informazioni sulla licenza si prega di visitare il nostro sito:","title":"Riguardo CKEditor","userGuide":"Guida Utente CKEditor"},"basicstyles":{"bold":"Grassetto","italic":"Corsivo","strike":"Barrato","subscript":"Pedice","superscript":"Apice","underline":"Sottolineato"},"blockquote":{"toolbar":"Citazione"},"notification":{"closed":"Notifica chiusa."},"button":{"selectedLabel":"%1 (selezionato)"},"toolbar":{"toolbarCollapse":"Minimizza Toolbar","toolbarExpand":"Espandi Toolbar","toolbarGroups":{"document":"Documento","clipboard":"Copia negli appunti/Annulla","editing":"Modifica","forms":"Form","basicstyles":"Stili di base","paragraph":"Paragrafo","links":"Link","insert":"Inserisci","styles":"Stili","colors":"Colori","tools":"Strumenti"},"toolbars":"Editor toolbar"},"clipboard":{"copy":"Copia","copyError":"Le impostazioni di sicurezza del browser non permettono di copiare automaticamente il testo. Usa la tastiera (Ctrl/Cmd+C).","cut":"Taglia","cutError":"Le impostazioni di sicurezza del browser non permettono di tagliare automaticamente il testo. Usa la tastiera (Ctrl/Cmd+X).","paste":"Incolla","pasteNotification":"Il browser non permette di incollare in questo modo. Premere %1 per incollare."},"contextmenu":{"options":"Opzioni del menù contestuale"},"elementspath":{"eleLabel":"Percorso degli elementi","eleTitle":"%1 elemento"},"format":{"label":"Formato","panelTitle":"Formato","tag_address":"Indirizzo","tag_div":"Paragrafo (DIV)","tag_h1":"Titolo 1","tag_h2":"Titolo 2","tag_h3":"Titolo 3","tag_h4":"Titolo 4","tag_h5":"Titolo 5","tag_h6":"Titolo 6","tag_p":"Normale","tag_pre":"Formattato"},"horizontalrule":{"toolbar":"Inserisci riga orizzontale"},"image":{"alt":"Testo alternativo","border":"Bordo","btnUpload":"Invia al server","button2Img":"Vuoi trasformare il bottone immagine selezionato in un'immagine semplice?","hSpace":"HSpace","img2Button":"Vuoi trasferomare l'immagine selezionata in un bottone immagine?","infoTab":"Informazioni immagine","linkTab":"Collegamento","lockRatio":"Blocca rapporto","menu":"Proprietà immagine","resetSize":"Reimposta dimensione","title":"Proprietà immagine","titleButton":"Proprietà bottone immagine","upload":"Carica","urlMissing":"Manca l'URL dell'immagine.","vSpace":"VSpace","validateBorder":"Il campo Bordo deve essere un numero intero.","validateHSpace":"Il campo HSpace deve essere un numero intero.","validateVSpace":"Il campo VSpace deve essere un numero intero."},"indent":{"indent":"Aumenta rientro","outdent":"Riduci rientro"},"fakeobjects":{"anchor":"Ancora","flash":"Animazione Flash","hiddenfield":"Campo Nascosto","iframe":"IFrame","unknown":"Oggetto sconosciuto"},"link":{"acccessKey":"Scorciatoia da tastiera","advanced":"Avanzate","advisoryContentType":"Tipo della risorsa collegata","advisoryTitle":"Titolo","anchor":{"toolbar":"Inserisci/Modifica Ancora","menu":"Proprietà ancora","title":"Proprietà ancora","name":"Nome ancora","errorName":"Inserici il nome dell'ancora","remove":"Rimuovi l'ancora"},"anchorId":"Per id elemento","anchorName":"Per Nome","charset":"Set di caretteri della risorsa collegata","cssClasses":"Nome classe CSS","download":"Forza scaricamento","displayText":"Mostra testo","emailAddress":"Indirizzo E-Mail","emailBody":"Corpo del messaggio","emailSubject":"Oggetto del messaggio","id":"Id","info":"Informazioni collegamento","langCode":"Direzione scrittura","langDir":"Direzione scrittura","langDirLTR":"Da Sinistra a Destra (LTR)","langDirRTL":"Da Destra a Sinistra (RTL)","menu":"Modifica collegamento","name":"Nome","noAnchors":"(Nessuna ancora disponibile nel documento)","noEmail":"Devi inserire un'indirizzo e-mail","noUrl":"Devi inserire l'URL del collegamento","other":"<altro>","popupDependent":"Dipendente (Netscape)","popupFeatures":"Caratteristiche finestra popup","popupFullScreen":"A tutto schermo (IE)","popupLeft":"Posizione da sinistra","popupLocationBar":"Barra degli indirizzi","popupMenuBar":"Barra del menu","popupResizable":"Ridimensionabile","popupScrollBars":"Barre di scorrimento","popupStatusBar":"Barra di stato","popupToolbar":"Barra degli strumenti","popupTop":"Posizione dall'alto","rel":"Relazioni","selectAnchor":"Scegli Ancora","styles":"Stile","tabIndex":"Ordine di tabulazione","target":"Destinazione","targetFrame":"<riquadro>","targetFrameName":"Nome del riquadro di destinazione","targetPopup":"<finestra popup>","targetPopupName":"Nome finestra popup","title":"Collegamento","toAnchor":"Ancora nel testo","toEmail":"E-Mail","toUrl":"URL","toolbar":"Collegamento","type":"Tipo di Collegamento","unlink":"Elimina collegamento","upload":"Carica"},"list":{"bulletedlist":"Inserisci/Rimuovi Elenco Puntato","numberedlist":"Inserisci/Rimuovi Elenco Numerato"},"magicline":{"title":"Inserisci paragrafo qui"},"maximize":{"maximize":"Massimizza","minimize":"Minimizza"},"pastetext":{"button":"Incolla come testo semplice","pasteNotification":"Il browser non permette di incollare il testo semplice in questo modo. Premere %1 per incollare."},"pastefromword":{"confirmCleanup":"Il testo da incollare sembra provenire da Word. Desideri pulirlo prima di incollare?","error":"Non è stato possibile eliminare il testo incollato a causa di un errore interno.","title":"Incolla da Word","toolbar":"Incolla da Word"},"removeformat":{"toolbar":"Elimina formattazione"},"sourcearea":{"toolbar":"Sorgente"},"specialchar":{"options":"Opzioni carattere speciale","title":"Seleziona carattere speciale","toolbar":"Inserisci carattere speciale"},"scayt":{"btn_about":"About COMS","btn_dictionaries":"Dizionari","btn_disable":"Disabilita COMS","btn_enable":"Abilita COMS","btn_langs":"Lingue","btn_options":"Opzioni","text_title":"Controllo Ortografico Mentre Scrivi"},"stylescombo":{"label":"Stili","panelTitle":"Stili di formattazione","panelTitle1":"Stili per blocchi","panelTitle2":"Stili in linea","panelTitle3":"Stili per oggetti"},"table":{"border":"Dimensione bordo","caption":"Intestazione","cell":{"menu":"Cella","insertBefore":"Inserisci Cella Prima","insertAfter":"Inserisci Cella Dopo","deleteCell":"Elimina celle","merge":"Unisce celle","mergeRight":"Unisci a Destra","mergeDown":"Unisci in Basso","splitHorizontal":"Dividi Cella Orizzontalmente","splitVertical":"Dividi Cella Verticalmente","title":"Proprietà della cella","cellType":"Tipo di cella","rowSpan":"Su più righe","colSpan":"Su più colonne","wordWrap":"Ritorno a capo","hAlign":"Allineamento orizzontale","vAlign":"Allineamento verticale","alignBaseline":"Linea Base","bgColor":"Colore di Sfondo","borderColor":"Colore del Bordo","data":"Dati","header":"Intestazione","yes":"Si","no":"No","invalidWidth":"La larghezza della cella dev'essere un numero.","invalidHeight":"L'altezza della cella dev'essere un numero.","invalidRowSpan":"Il numero di righe dev'essere un numero intero.","invalidColSpan":"Il numero di colonne dev'essere un numero intero.","chooseColor":"Scegli"},"cellPad":"Padding celle","cellSpace":"Spaziatura celle","column":{"menu":"Colonna","insertBefore":"Inserisci Colonna Prima","insertAfter":"Inserisci Colonna Dopo","deleteColumn":"Elimina colonne"},"columns":"Colonne","deleteTable":"Cancella Tabella","headers":"Intestazione","headersBoth":"Entrambe","headersColumn":"Prima Colonna","headersNone":"Nessuna","headersRow":"Prima Riga","invalidBorder":"La dimensione del bordo dev'essere un numero.","invalidCellPadding":"Il paging delle celle dev'essere un numero","invalidCellSpacing":"La spaziatura tra le celle dev'essere un numero.","invalidCols":"Il numero di colonne dev'essere un numero maggiore di 0.","invalidHeight":"L'altezza della tabella dev'essere un numero.","invalidRows":"Il numero di righe dev'essere un numero maggiore di 0.","invalidWidth":"La larghezza della tabella dev'essere un numero.","menu":"Proprietà tabella","row":{"menu":"Riga","insertBefore":"Inserisci Riga Prima","insertAfter":"Inserisci Riga Dopo","deleteRow":"Elimina righe"},"rows":"Righe","summary":"Indice","title":"Proprietà tabella","toolbar":"Tabella","widthPc":"percento","widthPx":"pixel","widthUnit":"unità larghezza"},"undo":{"redo":"Ripristina","undo":"Annulla"},"wsc":{"btnIgnore":"Ignora","btnIgnoreAll":"Ignora tutto","btnReplace":"Cambia","btnReplaceAll":"Cambia tutto","btnUndo":"Annulla","changeTo":"Cambia in","errorLoading":"Errore nel caricamento dell'host col servizio applicativo: %s.","ieSpellDownload":"Contollo ortografico non installato. Lo vuoi scaricare ora?","manyChanges":"Controllo ortografico completato: %1 parole cambiate","noChanges":"Controllo ortografico completato: nessuna parola cambiata","noMispell":"Controllo ortografico completato: nessun errore trovato","noSuggestions":"- Nessun suggerimento -","notAvailable":"Il servizio non è momentaneamente disponibile.","notInDic":"Non nel dizionario","oneChange":"Controllo ortografico completato: 1 parola cambiata","progress":"Controllo ortografico in corso","title":"Controllo ortografico","toolbar":"Correttore ortografico"}}; \ No newline at end of file diff --git a/admin/plugins/ckeditor/lang/ja.js b/admin/plugins/ckeditor/lang/ja.js deleted file mode 100644 index 5b0ac93..0000000 --- a/admin/plugins/ckeditor/lang/ja.js +++ /dev/null @@ -1,5 +0,0 @@ -/* -Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. -For licensing, see LICENSE.md or http://ckeditor.com/license -*/ -CKEDITOR.lang['ja']={"editor":"リッチテキストエディタ","editorPanel":"リッチテキストエディタパネル","common":{"editorHelp":"ヘルプは ALT 0 を押してください","browseServer":"サーバブラウザ","url":"URL","protocol":"プロトコル","upload":"アップロード","uploadSubmit":"サーバーに送信","image":"イメージ","flash":"Flash","form":"フォーム","checkbox":"チェックボックス","radio":"ラジオボタン","textField":"1行テキスト","textarea":"テキストエリア","hiddenField":"不可視フィールド","button":"ボタン","select":"選択フィールド","imageButton":"画像ボタン","notSet":"<なし>","id":"Id","name":"Name属性","langDir":"文字表記の方向","langDirLtr":"左から右 (LTR)","langDirRtl":"右から左 (RTL)","langCode":"言語コード","longDescr":"longdesc属性(長文説明)","cssClass":"スタイルシートクラス","advisoryTitle":"Title属性","cssStyle":"スタイルシート","ok":"OK","cancel":"キャンセル","close":"閉じる","preview":"プレビュー","resize":"ドラッグしてリサイズ","generalTab":"全般","advancedTab":"高度な設定","validateNumberFailed":"値が数値ではありません","confirmNewPage":"変更内容を保存せず、 新しいページを開いてもよろしいでしょうか?","confirmCancel":"オプション設定を変更しました。ダイアログを閉じてもよろしいでしょうか?","options":"オプション","target":"ターゲット","targetNew":"新しいウインドウ (_blank)","targetTop":"最上部ウィンドウ (_top)","targetSelf":"同じウィンドウ (_self)","targetParent":"親ウィンドウ (_parent)","langDirLTR":"左から右 (LTR)","langDirRTL":"右から左 (RTL)","styles":"スタイル","cssClasses":"スタイルシートクラス","width":"幅","height":"高さ","align":"行揃え","alignLeft":"左","alignRight":"右","alignCenter":"中央","alignJustify":"両端揃え","alignTop":"上","alignMiddle":"中央","alignBottom":"下","alignNone":"なし","invalidValue":"不正な値です。","invalidHeight":"高さは数値で入力してください。","invalidWidth":"幅は数値で入力してください。","invalidCssLength":"入力された \"%1\" 項目の値は、CSSの大きさ(px, %, in, cm, mm, em, ex, pt, または pc)が正しいものである/ないに関わらず、正の値である必要があります。","invalidHtmlLength":"入力された \"%1\" 項目の値は、HTMLの大きさ(px または %)が正しいものである/ないに関わらず、正の値である必要があります。","invalidInlineStyle":"入力されたインラインスタイルの値は、\"名前 : 値\" のフォーマットのセットで、複数の場合はセミコロンで区切られている形式である必要があります。","cssLengthTooltip":"ピクセル数もしくはCSSにセットできる数値を入力してください。(px,%,in,cm,mm,em,ex,pt,or pc)","unavailable":"%1<span class=\"cke_accessibility\">, 利用不可能</span>","keyboard":{"8":"Backspace","13":"Enter","16":"Shift","17":"Ctrl","18":"Alt","32":"Space","35":"End","36":"Home","46":"Delete","224":"Command"},"keyboardShortcut":"キーボードショートカット"},"about":{"copy":"Copyright &copy; $1. All rights reserved.","dlgTitle":"CKEditorについて","help":"$1 のヘルプを見てください。","moreInfo":"ライセンス情報の詳細はウェブサイトにて確認してください:","title":"CKEditorについて","userGuide":"CKEditor User's Guide"},"basicstyles":{"bold":"太字","italic":"斜体","strike":"打ち消し線","subscript":"下付き","superscript":"上付き","underline":"下線"},"blockquote":{"toolbar":"ブロック引用文"},"notification":{"closed":"通知を閉じました。"},"button":{"selectedLabel":"%1 (選択中)"},"toolbar":{"toolbarCollapse":"ツールバーを閉じる","toolbarExpand":"ツールバーを開く","toolbarGroups":{"document":"Document","clipboard":"Clipboard/Undo","editing":"Editing","forms":"Forms","basicstyles":"Basic Styles","paragraph":"Paragraph","links":"Links","insert":"Insert","styles":"Styles","colors":"Colors","tools":"Tools"},"toolbars":"編集ツールバー"},"clipboard":{"copy":"コピー","copyError":"ブラウザーのセキュリティ設定によりエディタのコピー操作を自動で実行することができません。実行するには手動でキーボードの(Ctrl/Cmd+C)を使用してください。","cut":"切り取り","cutError":"ブラウザーのセキュリティ設定によりエディタの切り取り操作を自動で実行することができません。実行するには手動でキーボードの(Ctrl/Cmd+X)を使用してください。","paste":"貼り付け","pasteNotification":"Your browser doesn't allow you to paste this way. Press %1 to paste."},"contextmenu":{"options":"コンテキストメニューオプション"},"elementspath":{"eleLabel":"要素パス","eleTitle":"%1 要素"},"format":{"label":"書式","panelTitle":"段落の書式","tag_address":"アドレス","tag_div":"標準 (DIV)","tag_h1":"見出し 1","tag_h2":"見出し 2","tag_h3":"見出し 3","tag_h4":"見出し 4","tag_h5":"見出し 5","tag_h6":"見出し 6","tag_p":"標準","tag_pre":"書式付き"},"horizontalrule":{"toolbar":"水平線"},"image":{"alt":"代替テキスト","border":"枠線の幅","btnUpload":"サーバーに送信","button2Img":"選択した画像ボタンを画像に変換しますか?","hSpace":"水平間隔","img2Button":"選択した画像を画像ボタンに変換しますか?","infoTab":"画像情報","linkTab":"リンク","lockRatio":"比率を固定","menu":"画像のプロパティ","resetSize":"サイズをリセット","title":"画像のプロパティ","titleButton":"画像ボタンのプロパティ","upload":"アップロード","urlMissing":"画像のURLを入力してください。","vSpace":"垂直間隔","validateBorder":"枠線の幅は数値で入力してください。","validateHSpace":"水平間隔は数値で入力してください。","validateVSpace":"垂直間隔は数値で入力してください。"},"indent":{"indent":"インデント","outdent":"インデント解除"},"fakeobjects":{"anchor":"アンカー","flash":"Flash Animation","hiddenfield":"不可視フィールド","iframe":"IFrame","unknown":"Unknown Object"},"link":{"acccessKey":"アクセスキー","advanced":"高度な設定","advisoryContentType":"Content Type属性","advisoryTitle":"Title属性","anchor":{"toolbar":"アンカー挿入/編集","menu":"アンカーの編集","title":"アンカーのプロパティ","name":"アンカー名","errorName":"アンカー名を入力してください。","remove":"アンカーを削除"},"anchorId":"エレメントID","anchorName":"アンカー名","charset":"リンク先のcharset","cssClasses":"スタイルシートクラス","download":"強制的にダウンロード","displayText":"表示文字","emailAddress":"E-Mail アドレス","emailBody":"本文","emailSubject":"件名","id":"Id","info":"ハイパーリンク情報","langCode":"言語コード","langDir":"文字表記の方向","langDirLTR":"左から右 (LTR)","langDirRTL":"右から左 (RTL)","menu":"リンクを編集","name":"Name属性","noAnchors":"(このドキュメント内にアンカーはありません)","noEmail":"メールアドレスを入力してください。","noUrl":"リンクURLを入力してください。","other":"<その他の>","popupDependent":"開いたウィンドウに連動して閉じる (Netscape)","popupFeatures":"ポップアップウィンドウ特徴","popupFullScreen":"全画面モード(IE)","popupLeft":"左端からの座標で指定","popupLocationBar":"ロケーションバー","popupMenuBar":"メニューバー","popupResizable":"サイズ可変","popupScrollBars":"スクロールバー","popupStatusBar":"ステータスバー","popupToolbar":"ツールバー","popupTop":"上端からの座標で指定","rel":"関連リンク","selectAnchor":"アンカーを選択","styles":"スタイルシート","tabIndex":"タブインデックス","target":"ターゲット","targetFrame":"<フレーム>","targetFrameName":"ターゲットのフレーム名","targetPopup":"<ポップアップウィンドウ>","targetPopupName":"ポップアップウィンドウ名","title":"ハイパーリンク","toAnchor":"ページ内のアンカー","toEmail":"E-Mail","toUrl":"URL","toolbar":"リンク挿入/編集","type":"リンクタイプ","unlink":"リンクを削除","upload":"アップロード"},"list":{"bulletedlist":"番号無しリスト","numberedlist":"番号付きリスト"},"magicline":{"title":"ここに段落を挿入"},"maximize":{"maximize":"最大化","minimize":"最小化"},"pastetext":{"button":"プレーンテキストとして貼り付け","pasteNotification":"Your browser does not allow you to paste plain text this way. Press %1 to paste."},"pastefromword":{"confirmCleanup":"貼り付けを行うテキストはワード文章からコピーされようとしています。貼り付ける前にクリーニングを行いますか?","error":"内部エラーにより貼り付けたデータをクリアできませんでした","title":"ワード文章から貼り付け","toolbar":"ワード文章から貼り付け"},"removeformat":{"toolbar":"書式を解除"},"sourcearea":{"toolbar":"ソース"},"specialchar":{"options":"特殊文字オプション","title":"特殊文字の選択","toolbar":"特殊文字を挿入"},"scayt":{"btn_about":"SCAYTバージョン","btn_dictionaries":"辞書","btn_disable":"SCAYT無効","btn_enable":"SCAYT有効","btn_langs":"言語","btn_options":"オプション","text_title":"スペルチェック設定(SCAYT)"},"stylescombo":{"label":"スタイル","panelTitle":"スタイル","panelTitle1":"ブロックスタイル","panelTitle2":"インラインスタイル","panelTitle3":"オブジェクトスタイル"},"table":{"border":"枠線の幅","caption":"キャプション","cell":{"menu":"セル","insertBefore":"セルを前に挿入","insertAfter":"セルを後に挿入","deleteCell":"セルを削除","merge":"セルを結合","mergeRight":"右に結合","mergeDown":"下に結合","splitHorizontal":"セルを水平方向に分割","splitVertical":"セルを垂直方向に分割","title":"セルのプロパティ","cellType":"セルの種類","rowSpan":"行の結合数","colSpan":"列の結合数","wordWrap":"単語の折り返し","hAlign":"水平方向の配置","vAlign":"垂直方向の配置","alignBaseline":"ベースライン","bgColor":"背景色","borderColor":"ボーダーカラー","data":"テーブルデータ (td)","header":"ヘッダ","yes":"はい","no":"いいえ","invalidWidth":"セル幅は数値で入力してください。","invalidHeight":"セル高さは数値で入力してください。","invalidRowSpan":"縦幅(行数)は数値で入力してください。","invalidColSpan":"横幅(列数)は数値で入力してください。","chooseColor":"色の選択"},"cellPad":"セル内間隔","cellSpace":"セル内余白","column":{"menu":"列","insertBefore":"列を左に挿入","insertAfter":"列を右に挿入","deleteColumn":"列を削除"},"columns":"列数","deleteTable":"表を削除","headers":"ヘッダ (th)","headersBoth":"両方","headersColumn":"最初の列のみ","headersNone":"なし","headersRow":"最初の行のみ","invalidBorder":"枠線の幅は数値で入力してください。","invalidCellPadding":"セル内余白は数値で入力してください。","invalidCellSpacing":"セル間余白は数値で入力してください。","invalidCols":"列数は0より大きな数値を入力してください。","invalidHeight":"高さは数値で入力してください。","invalidRows":"行数は0より大きな数値を入力してください。","invalidWidth":"幅は数値で入力してください。","menu":"表のプロパティ","row":{"menu":"行","insertBefore":"行を上に挿入","insertAfter":"行を下に挿入","deleteRow":"行を削除"},"rows":"行数","summary":"表の概要","title":"表のプロパティ","toolbar":"表","widthPc":"パーセント","widthPx":"ピクセル","widthUnit":"幅の単位"},"undo":{"redo":"やり直す","undo":"元に戻す"},"wsc":{"btnIgnore":"無視","btnIgnoreAll":"すべて無視","btnReplace":"置換","btnReplaceAll":"すべて置換","btnUndo":"やり直し","changeTo":"変更","errorLoading":"アプリケーションサービスホスト読込みエラー: %s.","ieSpellDownload":"スペルチェッカーがインストールされていません。今すぐダウンロードしますか?","manyChanges":"スペルチェック完了: %1 語句変更されました","noChanges":"スペルチェック完了: 語句は変更されませんでした","noMispell":"スペルチェック完了: スペルの誤りはありませんでした","noSuggestions":"- 該当なし -","notAvailable":"申し訳ありません、現在サービスを利用することができません","notInDic":"辞書にありません","oneChange":"スペルチェック完了: 1語句変更されました","progress":"スペルチェック処理中...","title":"スペルチェック","toolbar":"スペルチェック"}}; \ No newline at end of file diff --git a/admin/plugins/ckeditor/lang/ka.js b/admin/plugins/ckeditor/lang/ka.js deleted file mode 100644 index 5cf3040..0000000 --- a/admin/plugins/ckeditor/lang/ka.js +++ /dev/null @@ -1,5 +0,0 @@ -/* -Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. -For licensing, see LICENSE.md or http://ckeditor.com/license -*/ -CKEDITOR.lang['ka']={"editor":"ტექსტის რედაქტორი","editorPanel":"Rich Text Editor panel","common":{"editorHelp":"დააჭირეთ ALT 0-ს დახმარების მისაღებად","browseServer":"სერვერზე დათვალიერება","url":"URL","protocol":"პროტოკოლი","upload":"ატვირთვა","uploadSubmit":"სერვერზე გაგზავნა","image":"სურათი","flash":"Flash","form":"ფორმა","checkbox":"მონიშვნის ღილაკი","radio":"ამორჩევის ღილაკი","textField":"ტექსტური ველი","textarea":"ტექსტური არე","hiddenField":"მალული ველი","button":"ღილაკი","select":"არჩევის ველი","imageButton":"სურათიანი ღილაკი","notSet":"<არაფერი>","id":"Id","name":"სახელი","langDir":"ენის მიმართულება","langDirLtr":"მარცხნიდან მარჯვნივ (LTR)","langDirRtl":"მარჯვნიდან მარცხნივ (RTL)","langCode":"ენის კოდი","longDescr":"დიდი აღწერის URL","cssClass":"CSS კლასი","advisoryTitle":"სათაური","cssStyle":"CSS სტილი","ok":"დიახ","cancel":"გაუქმება","close":"დახურვა","preview":"გადახედვა","resize":"გაწიე ზომის შესაცვლელად","generalTab":"ინფორმაცია","advancedTab":"გაფართოებული","validateNumberFailed":"ეს მნიშვნელობა არაა რიცხვი.","confirmNewPage":"ამ დოკუმენტში ყველა ჩაუწერელი ცვლილება დაიკარგება. დარწმუნებული ხართ რომ ახალი გვერდის ჩატვირთვა გინდათ?","confirmCancel":"ზოგიერთი პარამეტრი შეცვლილია, დარწმუნებულილ ხართ რომ ფანჯრის დახურვა გსურთ?","options":"პარამეტრები","target":"გახსნის ადგილი","targetNew":"ახალი ფანჯარა (_blank)","targetTop":"ზედა ფანჯარა (_top)","targetSelf":"იგივე ფანჯარა (_self)","targetParent":"მშობელი ფანჯარა (_parent)","langDirLTR":"მარცხნიდან მარჯვნივ (LTR)","langDirRTL":"მარჯვნიდან მარცხნივ (RTL)","styles":"სტილი","cssClasses":"CSS კლასი","width":"სიგანე","height":"სიმაღლე","align":"სწორება","alignLeft":"მარცხენა","alignRight":"მარჯვენა","alignCenter":"შუა","alignJustify":"両端揃え","alignTop":"ზემოთა","alignMiddle":"შუა","alignBottom":"ქვემოთა","alignNone":"None","invalidValue":"Invalid value.","invalidHeight":"სიმაღლე რიცხვით უნდა იყოს წარმოდგენილი.","invalidWidth":"სიგანე რიცხვით უნდა იყოს წარმოდგენილი.","invalidCssLength":"Value specified for the \"%1\" field must be a positive number with or without a valid CSS measurement unit (px, %, in, cm, mm, em, ex, pt, or pc).","invalidHtmlLength":"Value specified for the \"%1\" field must be a positive number with or without a valid HTML measurement unit (px or %).","invalidInlineStyle":"Value specified for the inline style must consist of one or more tuples with the format of \"name : value\", separated by semi-colons.","cssLengthTooltip":"Enter a number for a value in pixels or a number with a valid CSS unit (px, %, in, cm, mm, em, ex, pt, or pc).","unavailable":"%1<span class=\"cke_accessibility\">, მიუწვდომელია</span>","keyboard":{"8":"Backspace","13":"Enter","16":"Shift","17":"Ctrl","18":"Alt","32":"Space","35":"End","36":"Home","46":"Delete","224":"Command"},"keyboardShortcut":"Keyboard shortcut"},"about":{"copy":"Copyright &copy; $1. ყველა უფლება დაცულია.","dlgTitle":"CKEditor-ის შესახებ","help":"დახმარებისთვის იხილეთ $1.","moreInfo":"ლიცენზიის ინფორმაციისთვის ეწვიეთ ჩვენს საიტს:","title":"CKEditor-ის შესახებ","userGuide":"CKEditor-ის მომხმარებლის სახელმძღვანელო"},"basicstyles":{"bold":"მსხვილი","italic":"დახრილი","strike":"გადახაზული","subscript":"ინდექსი","superscript":"ხარისხი","underline":"გახაზული"},"blockquote":{"toolbar":"ციტატა"},"notification":{"closed":"Notification closed."},"button":{"selectedLabel":"%1 (Selected)"},"toolbar":{"toolbarCollapse":"ხელსაწყოთა ზოლის შეწევა","toolbarExpand":"ხელსაწყოთა ზოლის გამოწევა","toolbarGroups":{"document":"დოკუმენტი","clipboard":"Clipboard/გაუქმება","editing":"რედაქტირება","forms":"ფორმები","basicstyles":"ძირითადი სტილები","paragraph":"აბზაცი","links":"ბმულები","insert":"ჩასმა","styles":"სტილები","colors":"ფერები","tools":"ხელსაწყოები"},"toolbars":"Editor toolbars"},"clipboard":{"copy":"ასლი","copyError":"თქვენი ბროუზერის უსაფრთხოების პარამეტრები არ იძლევა ასლის ოპერაციის ავტომატურად განხორციელების საშუალებას. გამოიყენეთ კლავიატურა ამისთვის (Ctrl/Cmd+C).","cut":"ამოჭრა","cutError":"თქვენი ბროუზერის უსაფრთხოების პარამეტრები არ იძლევა ამოჭრის ოპერაციის ავტომატურად განხორციელების საშუალებას. გამოიყენეთ კლავიატურა ამისთვის (Ctrl/Cmd+X).","paste":"ჩასმა","pasteNotification":"Your browser doesn't allow you to paste this way. Press %1 to paste."},"contextmenu":{"options":"კონტექსტური მენიუს პარამეტრები"},"elementspath":{"eleLabel":"ელემეტის გზა","eleTitle":"%1 ელემენტი"},"format":{"label":"ფიორმატირება","panelTitle":"ფორმატირება","tag_address":"მისამართი","tag_div":"ჩვეულებრივი (DIV)","tag_h1":"სათაური 1","tag_h2":"სათაური 2","tag_h3":"სათაური 3","tag_h4":"სათაური 4","tag_h5":"სათაური 5","tag_h6":"სათაური 6","tag_p":"ჩვეულებრივი","tag_pre":"ფორმატირებული"},"horizontalrule":{"toolbar":"ჰორიზონტალური ხაზის ჩასმა"},"image":{"alt":"სანაცვლო ტექსტი","border":"ჩარჩო","btnUpload":"სერვერისთვის გაგზავნა","button2Img":"გსურთ არჩეული სურათიანი ღილაკის გადაქცევა ჩვეულებრივ ღილაკად?","hSpace":"ჰორიზონტალური სივრცე","img2Button":"გსურთ არჩეული ჩვეულებრივი ღილაკის გადაქცევა სურათიან ღილაკად?","infoTab":"სურათის ინფორმცია","linkTab":"ბმული","lockRatio":"პროპორციის შენარჩუნება","menu":"სურათის პარამეტრები","resetSize":"ზომის დაბრუნება","title":"სურათის პარამეტრები","titleButton":"სურათიანი ღილაკის პარამეტრები","upload":"ატვირთვა","urlMissing":"სურათის URL არაა შევსებული.","vSpace":"ვერტიკალური სივრცე","validateBorder":"ჩარჩო მთელი რიცხვი უნდა იყოს.","validateHSpace":"ჰორიზონტალური სივრცე მთელი რიცხვი უნდა იყოს.","validateVSpace":"ვერტიკალური სივრცე მთელი რიცხვი უნდა იყოს."},"indent":{"indent":"მეტად შეწევა","outdent":"ნაკლებად შეწევა"},"fakeobjects":{"anchor":"ღუზა","flash":"Flash ანიმაცია","hiddenfield":"მალული ველი","iframe":"IFrame","unknown":"უცნობი ობიექტი"},"link":{"acccessKey":"წვდომის ღილაკი","advanced":"დაწვრილებით","advisoryContentType":"შიგთავსის ტიპი","advisoryTitle":"სათაური","anchor":{"toolbar":"ღუზა","menu":"ღუზის რედაქტირება","title":"ღუზის პარამეტრები","name":"ღუზუს სახელი","errorName":"აკრიფეთ ღუზის სახელი","remove":"Remove Anchor"},"anchorId":"ელემენტის Id-თ","anchorName":"ღუზის სახელით","charset":"კოდირება","cssClasses":"CSS კლასი","download":"Force Download","displayText":"Display Text","emailAddress":"ელფოსტის მისამართები","emailBody":"წერილის ტექსტი","emailSubject":"წერილის სათაური","id":"Id","info":"ბმულის ინფორმაცია","langCode":"ენის კოდი","langDir":"ენის მიმართულება","langDirLTR":"მარცხნიდან მარჯვნივ (LTR)","langDirRTL":"მარჯვნიდან მარცხნივ (RTL)","menu":"ბმულის რედაქტირება","name":"სახელი","noAnchors":"(ამ დოკუმენტში ღუზა არაა)","noEmail":"აკრიფეთ ელფოსტის მისამართი","noUrl":"აკრიფეთ ბმულის URL","other":"<სხვა>","popupDependent":"დამოკიდებული (Netscape)","popupFeatures":"Popup ფანჯრის პარამეტრები","popupFullScreen":"მთელი ეკრანი (IE)","popupLeft":"მარცხენა პოზიცია","popupLocationBar":"ნავიგაციის ზოლი","popupMenuBar":"მენიუს ზოლი","popupResizable":"ცვალებადი ზომით","popupScrollBars":"გადახვევის ზოლები","popupStatusBar":"სტატუსის ზოლი","popupToolbar":"ხელსაწყოთა ზოლი","popupTop":"ზედა პოზიცია","rel":"კავშირი","selectAnchor":"აირჩიეთ ღუზა","styles":"CSS სტილი","tabIndex":"Tab-ის ინდექსი","target":"გახსნის ადგილი","targetFrame":"<frame>","targetFrameName":"Frame-ის სახელი","targetPopup":"<popup ფანჯარა>","targetPopupName":"Popup ფანჯრის სახელი","title":"ბმული","toAnchor":"ბმული ტექსტში ღუზაზე","toEmail":"ელფოსტა","toUrl":"URL","toolbar":"ბმული","type":"ბმულის ტიპი","unlink":"ბმულის მოხსნა","upload":"აქაჩვა"},"list":{"bulletedlist":"ღილიანი სია","numberedlist":"გადანომრილი სია"},"magicline":{"title":"Insert paragraph here"},"maximize":{"maximize":"გადიდება","minimize":"დაპატარავება"},"pastetext":{"button":"მხოლოდ ტექსტის ჩასმა","pasteNotification":"Your browser does not allow you to paste plain text this way. Press %1 to paste."},"pastefromword":{"confirmCleanup":"ჩასასმელი ტექსტი ვორდიდან გადმოტანილს გავს - გინდათ მისი წინასწარ გაწმენდა?","error":"შიდა შეცდომის გამო ვერ მოხერხდა ტექსტის გაწმენდა","title":"ვორდიდან ჩასმა","toolbar":"ვორდიდან ჩასმა"},"removeformat":{"toolbar":"ფორმატირების მოხსნა"},"sourcearea":{"toolbar":"კოდები"},"specialchar":{"options":"სპეციალური სიმბოლოს პარამეტრები","title":"სპეციალური სიმბოლოს არჩევა","toolbar":"სპეციალური სიმბოლოს ჩასმა"},"scayt":{"btn_about":"SCAYT-ის შესახებ","btn_dictionaries":"ლექსიკონები","btn_disable":"SCAYT-ის გამორთვა","btn_enable":"SCAYT-ის ჩართვა","btn_langs":"ენები","btn_options":"პარამეტრები","text_title":"მართლწერის შემოწმება კრეფისას"},"stylescombo":{"label":"სტილები","panelTitle":"ფორმატირების სტილები","panelTitle1":"არის სტილები","panelTitle2":"თანდართული სტილები","panelTitle3":"ობიექტის სტილები"},"table":{"border":"ჩარჩოს ზომა","caption":"სათაური","cell":{"menu":"უჯრა","insertBefore":"უჯრის ჩასმა მანამდე","insertAfter":"უჯრის ჩასმა მერე","deleteCell":"უჯრების წაშლა","merge":"უჯრების შეერთება","mergeRight":"შეერთება მარჯვენასთან","mergeDown":"შეერთება ქვემოთასთან","splitHorizontal":"გაყოფა ჰორიზონტალურად","splitVertical":"გაყოფა ვერტიკალურად","title":"უჯრის პარამეტრები","cellType":"უჯრის ტიპი","rowSpan":"სტრიქონების ოდენობა","colSpan":"სვეტების ოდენობა","wordWrap":"სტრიქონის გადატანა (Word Wrap)","hAlign":"ჰორიზონტალური სწორება","vAlign":"ვერტიკალური სწორება","alignBaseline":"ძირითადი ხაზის გასწვრივ","bgColor":"ფონის ფერი","borderColor":"ჩარჩოს ფერი","data":"მონაცემები","header":"სათაური","yes":"დიახ","no":"არა","invalidWidth":"უჯრის სიგანე რიცხვით უნდა იყოს წარმოდგენილი.","invalidHeight":"უჯრის სიმაღლე რიცხვით უნდა იყოს წარმოდგენილი.","invalidRowSpan":"სტრიქონების რაოდენობა მთელი რიცხვი უნდა იყოს.","invalidColSpan":"სვეტების რაოდენობა მთელი რიცხვი უნდა იყოს.","chooseColor":"არჩევა"},"cellPad":"უჯრის კიდე (padding)","cellSpace":"უჯრის სივრცე (spacing)","column":{"menu":"სვეტი","insertBefore":"სვეტის ჩამატება წინ","insertAfter":"სვეტის ჩამატება მერე","deleteColumn":"სვეტების წაშლა"},"columns":"სვეტი","deleteTable":"ცხრილის წაშლა","headers":"სათაურები","headersBoth":"ორივე","headersColumn":"პირველი სვეტი","headersNone":"არაფერი","headersRow":"პირველი სტრიქონი","invalidBorder":"ჩარჩოს ზომა რიცხვით უდნა იყოს წარმოდგენილი.","invalidCellPadding":"უჯრის კიდე (padding) რიცხვით უნდა იყოს წარმოდგენილი.","invalidCellSpacing":"უჯრის სივრცე (spacing) რიცხვით უნდა იყოს წარმოდგენილი.","invalidCols":"სვეტების რაოდენობა დადებითი რიცხვი უნდა იყოს.","invalidHeight":"ცხრილის სიმაღლე რიცხვით უნდა იყოს წარმოდგენილი.","invalidRows":"სტრიქონების რაოდენობა დადებითი რიცხვი უნდა იყოს.","invalidWidth":"ცხრილის სიგანე რიცხვით უნდა იყოს წარმოდგენილი.","menu":"ცხრილის პარამეტრები","row":{"menu":"სტრიქონი","insertBefore":"სტრიქონის ჩამატება წინ","insertAfter":"სტრიქონის ჩამატება მერე","deleteRow":"სტრიქონების წაშლა"},"rows":"სტრიქონი","summary":"შეჯამება","title":"ცხრილის პარამეტრები","toolbar":"ცხრილი","widthPc":"პროცენტი","widthPx":"წერტილი","widthUnit":"საზომი ერთეული"},"undo":{"redo":"გამეორება","undo":"გაუქმება"},"wsc":{"btnIgnore":"უგულებელყოფა","btnIgnoreAll":"ყველას უგულებელყოფა","btnReplace":"შეცვლა","btnReplaceAll":"ყველას შეცვლა","btnUndo":"გაუქმება","changeTo":"შეცვლელი","errorLoading":"სერვისის გამოძახების შეცდომა: %s.","ieSpellDownload":"მართლწერის შემოწმება არაა დაინსტალირებული. ჩამოვქაჩოთ ინტერნეტიდან?","manyChanges":"მართლწერის შემოწმება: %1 სიტყვა შეიცვალა","noChanges":"მართლწერის შემოწმება: არაფერი შეცვლილა","noMispell":"მართლწერის შემოწმება: შეცდომა არ მოიძებნა","noSuggestions":"- არაა შემოთავაზება -","notAvailable":"უკაცრავად, ეს სერვისი ამჟამად მიუწვდომელია.","notInDic":"არაა ლექსიკონში","oneChange":"მართლწერის შემოწმება: ერთი სიტყვა შეიცვალა","progress":"მიმდინარეობს მართლწერის შემოწმება...","title":"მართლწერა","toolbar":"მართლწერა"}}; \ No newline at end of file diff --git a/admin/plugins/ckeditor/lang/km.js b/admin/plugins/ckeditor/lang/km.js deleted file mode 100644 index 2636dca..0000000 --- a/admin/plugins/ckeditor/lang/km.js +++ /dev/null @@ -1,5 +0,0 @@ -/* -Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. -For licensing, see LICENSE.md or http://ckeditor.com/license -*/ -CKEDITOR.lang['km']={"editor":"ឧបករណ៍​សរសេរ​អត្ថបទ​សម្បូរ​បែប","editorPanel":"ផ្ទាំង​ឧបករណ៍​សរសេរ​អត្ថបទ​សម្បូរ​បែប","common":{"editorHelp":"ចុច ALT 0 សម្រាប់​ជំនួយ","browseServer":"រក​មើល​ក្នុង​ម៉ាស៊ីន​បម្រើ","url":"URL","protocol":"ពិធីការ","upload":"ផ្ទុក​ឡើង","uploadSubmit":"បញ្ជូនទៅកាន់ម៉ាស៊ីន​បម្រើ","image":"រូបភាព","flash":"Flash","form":"បែបបទ","checkbox":"ប្រអប់​ធីក","radio":"ប៊ូតុង​មូល","textField":"វាល​អត្ថបទ","textarea":"Textarea","hiddenField":"វាល​កំបាំង","button":"ប៊ូតុង","select":"វាល​ជម្រើស","imageButton":"ប៊ូតុង​រូបភាព","notSet":"<មិនកំណត់>","id":"Id","name":"ឈ្មោះ","langDir":"ទិសដៅភាសា","langDirLtr":"ពីឆ្វេងទៅស្តាំ (LTR)","langDirRtl":"ពីស្តាំទៅឆ្វេង (RTL)","langCode":"លេខ​កូដ​ភាសា","longDescr":"URL អធិប្បាយ​វែង","cssClass":"Stylesheet Classes","advisoryTitle":"ចំណង​ជើង​ណែនាំ","cssStyle":"រចនាបថ","ok":"ព្រម","cancel":"បោះបង់","close":"បិទ","preview":"មើល​ជា​មុន","resize":"ប្ដូរ​ទំហំ","generalTab":"ទូទៅ","advancedTab":"កម្រិត​ខ្ពស់","validateNumberFailed":"តម្លៃ​នេះ​ពុំ​មែន​ជា​លេខ​ទេ។","confirmNewPage":"រាល់​បន្លាស់​ប្ដូរ​នានា​ដែល​មិន​ទាន់​រក្សា​ទុក​ក្នុង​មាតិកា​នេះ នឹង​ត្រូវ​បាត់​បង់។ តើ​អ្នក​ពិត​ជា​ចង់​ផ្ទុក​ទំព័រ​ថ្មី​មែនទេ?","confirmCancel":"ការ​កំណត់​មួយ​ចំនួន​ត្រូ​វ​បាន​ផ្លាស់​ប្ដូរ។ តើ​អ្នក​ពិត​ជា​ចង់​បិទ​ប្រអប់​នេះ​មែនទេ?","options":"ការ​កំណត់","target":"គោលដៅ","targetNew":"វីនដូ​ថ្មី (_blank)","targetTop":"វីនដូ​លើ​គេ (_top)","targetSelf":"វីនដូ​ដូច​គ្នា (_self)","targetParent":"វីនដូ​មេ (_parent)","langDirLTR":"ពីឆ្វេងទៅស្តាំ(LTR)","langDirRTL":"ពីស្តាំទៅឆ្វេង(RTL)","styles":"រចនាបថ","cssClasses":"Stylesheet Classes","width":"ទទឹង","height":"កំពស់","align":"កំណត់​ទីតាំង","alignLeft":"ខាងឆ្វង","alignRight":"ខាងស្តាំ","alignCenter":"កណ្តាល","alignJustify":"តំរឹមសងខាង","alignTop":"ខាងលើ","alignMiddle":"កណ្តាល","alignBottom":"ខាងក្រោម","alignNone":"គ្មាន","invalidValue":"តម្លៃ​មិន​ត្រឹម​ត្រូវ។","invalidHeight":"តម្លៃ​កំពស់​ត្រូវ​តែ​ជា​លេខ។","invalidWidth":"តម្លៃ​ទទឹង​ត្រូវ​តែ​ជា​លេខ។","invalidCssLength":"តម្លៃ​កំណត់​សម្រាប់​វាល \"%1\" ត្រូវ​តែ​ជា​លេខ​វិជ្ជមាន​ ដោយ​ភ្ជាប់ឬ​មិន​ភ្ជាប់​ជាមួយ​នឹង​ឯកតា​រង្វាស់​របស់ CSS (px, %, in, cm, mm, em, ex, pt ឬ pc) ។","invalidHtmlLength":"តម្លៃ​កំណត់​សម្រាប់​វាល \"%1\" ត្រូវ​តែ​ជា​លេខ​វិជ្ជមាន ដោយ​ភ្ជាប់​ឬ​មិន​ភ្ជាប់​ជាមួយ​នឹង​ឯកតា​រង្វាស់​របស់ HTML (px ឬ %) ។","invalidInlineStyle":"តម្លៃ​កំណត់​សម្រាប់​រចនាបថ​ក្នុង​តួ ត្រូវ​តែ​មាន​មួយ​ឬ​ធាតុ​ច្រើន​ដោយ​មាន​ទ្រង់ទ្រាយ​ជា \"ឈ្មោះ : តម្លៃ\" ហើយ​ញែក​ចេញ​ពី​គ្នា​ដោយ​ចុច​ក្បៀស។","cssLengthTooltip":"បញ្ចូល​លេខ​សម្រាប់​តម្លៃ​ជា​ភិចសែល ឬ​លេខ​ដែល​មាន​ឯកតា​ត្រឹមត្រូវ​របស់ CSS (px, %, in, cm, mm, em, ex, pt ឬ pc) ។","unavailable":"%1<span class=\"cke_accessibility\">, មិន​មាន</span>","keyboard":{"8":"លុបថយក្រោយ","13":"Enter","16":"Shift","17":"Ctrl","18":"Alt","32":"Space","35":"ចុង","36":"ផ្ទះ","46":"លុប","224":"Command"},"keyboardShortcut":"Keyboard shortcut"},"about":{"copy":"រក្សាសិទ្ធិ &copy; $1។ រក្សា​សិទ្ធិ​គ្រប់​បែប​យ៉ាង។","dlgTitle":"អំពី CKEditor","help":"ពិនិត្យ $1 សម្រាប់​ជំនួយ។","moreInfo":"សម្រាប់​ព័ត៌មាន​អំពី​អាជ្ញាបណញណ សូម​មើល​ក្នុង​គេហទំព័រ​របស់​យើង៖","title":"អំពី CKEditor","userGuide":"វិធី​ប្រើ​ប្រាស់ CKEditor"},"basicstyles":{"bold":"ដិត","italic":"ទ្រេត","strike":"គូស​បន្ទាត់​ចំ​កណ្ដាល","subscript":"អក្សរតូចក្រោម","superscript":"អក្សរតូចលើ","underline":"គូស​បន្ទាត់​ក្រោម"},"blockquote":{"toolbar":"ប្លក់​ពាក្យ​សម្រង់"},"notification":{"closed":"បាន​បិទ​ការ​ផ្ដល់​ដំណឹង។"},"button":{"selectedLabel":"%1 (បាន​ជ្រើស​រើស)"},"toolbar":{"toolbarCollapse":"បង្រួម​របារ​ឧបករណ៍","toolbarExpand":"ពង្រីក​របារ​ឧបករណ៍","toolbarGroups":{"document":"ឯកសារ","clipboard":"Clipboard/មិន​ធ្វើ​វិញ","editing":"ការ​កែ​សម្រួល","forms":"បែបបទ","basicstyles":"រចនាបថ​មូលដ្ឋាន","paragraph":"កថាខណ្ឌ","links":"តំណ","insert":"បញ្ចូល","styles":"រចនាបថ","colors":"ពណ៌","tools":"ឧបករណ៍"},"toolbars":"របារ​ឧបករណ៍​កែ​សម្រួល"},"clipboard":{"copy":"ចម្លង","copyError":"ការកំណត់សុវត្ថភាពរបស់កម្មវិធីរុករករបស់លោកអ្នក នេះ​មិនអាចធ្វើកម្មវិធីតាក់តែងអត្ថបទ ចំលងអត្ថបទយកដោយស្វ័យប្រវត្តបានឡើយ ។ សូមប្រើប្រាស់បន្សំ ឃីដូចនេះ (Ctrl/Cmd+C)។","cut":"កាត់យក","cutError":"ការកំណត់សុវត្ថភាពរបស់កម្មវិធីរុករករបស់លោកអ្នក នេះ​មិនអាចធ្វើកម្មវិធីតាក់តែងអត្ថបទ កាត់អត្ថបទយកដោយស្វ័យប្រវត្តបានឡើយ ។ សូមប្រើប្រាស់បន្សំ ឃីដូចនេះ (Ctrl/Cmd+X) ។","paste":"បិទ​ភ្ជាប់","pasteNotification":"Your browser doesn't allow you to paste this way. Press %1 to paste."},"contextmenu":{"options":"ជម្រើស​ម៉ឺនុយ​បរិបទ"},"elementspath":{"eleLabel":"ទីតាំង​ធាតុ","eleTitle":"ធាតុ %1"},"format":{"label":"ទម្រង់","panelTitle":"ទម្រង់​កថាខណ្ឌ","tag_address":"អាសយដ្ឋាន","tag_div":"ធម្មតា (DIV)","tag_h1":"ចំណង​ជើង 1","tag_h2":"ចំណង​ជើង 2","tag_h3":"ចំណង​ជើង 3","tag_h4":"ចំណង​ជើង 4","tag_h5":"ចំណង​ជើង 5","tag_h6":"ចំណង​ជើង 6","tag_p":"ធម្មតា","tag_pre":"Formatted"},"horizontalrule":{"toolbar":"បន្ថែមបន្ទាត់ផ្តេក"},"image":{"alt":"អត្ថបទជំនួស","border":"ស៊ុម","btnUpload":"ផ្ញើ​ទៅ​ម៉ាស៊ីន​បម្រើ","button2Img":"តើ​អ្នក​ចង់​ផ្លាស់​ប្ដូរ​ប៊ូតុង​រូបភាព​ដែល​បាន​ជ្រើស នៅ​លើ​រូបភាព​ធម្មតា​មួយ​មែនទេ?","hSpace":"គម្លាត​ផ្ដេក","img2Button":"តើ​អ្នក​ចង់​ផ្លាស់​ប្ដូរ​រូបភាព​ដែល​បាន​ជ្រើស នៅ​លើ​ប៊ូតុង​រូបភាព​មែនទេ?","infoTab":"ពត៌មានអំពីរូបភាព","linkTab":"តំណ","lockRatio":"ចាក់​សោ​ផល​ធៀប","menu":"លក្ខណៈ​រូបភាព","resetSize":"កំណត់ទំហំឡើងវិញ","title":"លក្ខណៈ​រូបភាព","titleButton":"លក្ខណៈ​ប៊ូតុង​រូបភាព","upload":"ផ្ទុកឡើង","urlMissing":"ខ្វះ URL ប្រភព​រូប​ភាព។","vSpace":"គម្លាត​បញ្ឈរ","validateBorder":"ស៊ុម​ត្រូវ​តែ​ជា​លេខ។","validateHSpace":"គម្លាត​ផ្ដេក​ត្រូវ​តែ​ជា​លេខ។","validateVSpace":"គម្លាត​បញ្ឈរ​ត្រូវ​តែ​ជា​លេខ។"},"indent":{"indent":"បន្ថែមការចូលបន្ទាត់","outdent":"បន្ថយការចូលបន្ទាត់"},"fakeobjects":{"anchor":"យុថ្កា","flash":"Flash មាន​ចលនា","hiddenfield":"វាល​កំបាំង","iframe":"IFrame","unknown":"វត្ថុ​មិន​ស្គាល់"},"link":{"acccessKey":"សោរ​ចូល","advanced":"កម្រិត​ខ្ពស់","advisoryContentType":"ប្រភេទអត្ថបទ​ប្រឹក្សា","advisoryTitle":"ចំណងជើង​ប្រឹក្សា","anchor":{"toolbar":"យុថ្កា","menu":"កែ​យុថ្កា","title":"លក្ខណៈ​យុថ្កា","name":"ឈ្មោះ​យុថ្កា","errorName":"សូម​បញ្ចូល​ឈ្មោះ​យុថ្កា","remove":"ដក​យុថ្កា​ចេញ"},"anchorId":"តាម ID ធាតុ","anchorName":"តាម​ឈ្មោះ​យុថ្កា","charset":"លេខកូតអក្សររបស់ឈ្នាប់","cssClasses":"Stylesheet Classes","download":"Force Download","displayText":"Display Text","emailAddress":"អាសយដ្ឋាន​អ៊ីមែល","emailBody":"តួ​អត្ថបទ","emailSubject":"ប្រធានបទ​សារ","id":"Id","info":"ព័ត៌មាន​ពី​តំណ","langCode":"កូដ​ភាសា","langDir":"ទិសដៅភាសា","langDirLTR":"ពីឆ្វេងទៅស្តាំ(LTR)","langDirRTL":"ពីស្តាំទៅឆ្វេង(RTL)","menu":"កែ​តំណ","name":"ឈ្មោះ","noAnchors":"(មិន​មាន​យុថ្កា​នៅ​ក្នុង​ឯកសារ​អត្ថថបទ​ទេ)","noEmail":"សូម​បញ្ចូល​អាសយដ្ឋាន​អ៊ីមែល","noUrl":"សូម​បញ្ចូល​តំណ URL","other":"<ផ្សេង​ទៀត>","popupDependent":"Dependent (Netscape)","popupFeatures":"មុខ​ងារ​ផុស​ផ្ទាំង​វីនដូ​ឡើង","popupFullScreen":"ពេញ​អេក្រង់ (IE)","popupLeft":"ទីតាំងខាងឆ្វេង","popupLocationBar":"របារ​ទីតាំង","popupMenuBar":"របារ​ម៉ឺនុយ","popupResizable":"អាច​ប្ដូរ​ទំហំ","popupScrollBars":"របារ​រំកិល","popupStatusBar":"របារ​ស្ថានភាព","popupToolbar":"របារ​ឧបករណ៍","popupTop":"ទីតាំង​កំពូល","rel":"សម្ពន្ធ​ភាព","selectAnchor":"រើស​យក​យុថ្កា​មួយ","styles":"ស្ទីល","tabIndex":"លេខ Tab","target":"គោលដៅ","targetFrame":"<ស៊ុម>","targetFrameName":"ឈ្មោះ​ស៊ុម​ជា​គោល​ដៅ","targetPopup":"<វីនដូ​ផុស​ឡើង>","targetPopupName":"ឈ្មោះ​វីនដូត​ផុស​ឡើង","title":"តំណ","toAnchor":"ត​ភ្ជាប់​ទៅ​យុថ្កា​ក្នុង​អត្ថបទ","toEmail":"អ៊ីមែល","toUrl":"URL","toolbar":"តំណ","type":"ប្រភេទ​តំណ","unlink":"ផ្ដាច់​តំណ","upload":"ផ្ទុក​ឡើង"},"list":{"bulletedlist":"បញ្ចូល / លុប​បញ្ជី​ជា​ចំណុច​មូល","numberedlist":"បញ្ចូល / លុប​បញ្ជី​ជា​លេខ"},"magicline":{"title":"បញ្ចូល​កថាខណ្ឌ​នៅ​ទីនេះ"},"maximize":{"maximize":"ពង្រីក​អតិបរមា","minimize":"បង្រួម​អប្បបរមា"},"pastetext":{"button":"បិទ​ភ្ជាប់​ជា​អត្ថបទ​ធម្មតា","pasteNotification":"Your browser does not allow you to paste plain text this way. Press %1 to paste."},"pastefromword":{"confirmCleanup":"អត្ថបទ​ដែល​អ្នក​ចង់​បិទ​ភ្ជាប់​នេះ ទំនង​ដូច​ជា​ចម្លង​មក​ពី Word។ តើ​អ្នក​ចង់​សម្អាត​វា​មុន​បិទ​ភ្ជាប់​ទេ?","error":"ដោយ​សារ​មាន​បញ្ហា​ផ្នែក​ក្នុង​ធ្វើ​ឲ្យ​មិន​អាច​សម្អាត​ទិន្នន័យ​ដែល​បាន​បិទ​ភ្ជាប់","title":"បិទ​ភ្ជាប់​ពី Word","toolbar":"បិទ​ភ្ជាប់​ពី Word"},"removeformat":{"toolbar":"ជម្រះ​ទ្រង់​ទ្រាយ"},"sourcearea":{"toolbar":"អក្សរ​កូដ"},"specialchar":{"options":"ជម្រើស​តួ​អក្សរ​ពិសេស","title":"រើស​តួអក្សរ​ពិសេស","toolbar":"បន្ថែមអក្សរពិសេស"},"scayt":{"btn_about":"About SCAYT","btn_dictionaries":"Dictionaries","btn_disable":"Disable SCAYT","btn_enable":"Enable SCAYT","btn_langs":"Languages","btn_options":"Options","text_title":"Spell Check As You Type"},"stylescombo":{"label":"រចនាបថ","panelTitle":"ទ្រង់ទ្រាយ​រចនាបថ","panelTitle1":"រចនាបថ​ប្លក់","panelTitle2":"រចនាបថ​ក្នុង​ជួរ","panelTitle3":"រចនាបថ​វត្ថុ"},"table":{"border":"ទំហំ​បន្ទាត់​ស៊ុម","caption":"ចំណងជើង","cell":{"menu":"ក្រឡា","insertBefore":"បញ្ចូល​ក្រឡា​ពីមុខ","insertAfter":"បញ្ចូល​ក្រឡា​ពី​ក្រោយ","deleteCell":"លុប​ក្រឡា","merge":"បញ្ចូល​ក្រឡា​ចូល​គ្នា","mergeRight":"បញ្ចូល​គ្នា​ខាង​ស្ដាំ","mergeDown":"បញ្ចូល​គ្នា​ចុះ​ក្រោម","splitHorizontal":"ពុះ​ក្រឡា​ផ្ដេក","splitVertical":"ពុះ​ក្រឡា​បញ្ឈរ","title":"លក្ខណៈ​ក្រឡា","cellType":"ប្រភេទ​ក្រឡា","rowSpan":"ចំនួន​ជួរ​ដេក​លាយ​ចូល​គ្នា","colSpan":"ចំនួន​ជួរ​ឈរ​លាយ​ចូល​គ្នា","wordWrap":"រុំ​ពាក្យ","hAlign":"ការ​តម្រឹម​ផ្ដេក","vAlign":"ការ​តម្រឹម​បញ្ឈរ","alignBaseline":"ខ្សែ​បន្ទាត់​គោល","bgColor":"ពណ៌​ផ្ទៃ​ក្រោយ","borderColor":"ពណ៌​បន្ទាត់​ស៊ុម","data":"ទិន្នន័យ","header":"ក្បាល","yes":"ព្រម","no":"ទេ","invalidWidth":"ទទឹង​ក្រឡា​ត្រូវ​តែ​ជា​លេខ។","invalidHeight":"កម្ពស់​ក្រឡា​ត្រូវ​តែ​ជា​លេខ។","invalidRowSpan":"ចំនួន​ជួរ​ដេក​លាយ​ចូល​គ្នា​ត្រូវ​តែ​ជា​លេខ​ទាំង​អស់។","invalidColSpan":"ចំនួន​ជួរ​ឈរ​លាយ​ចូល​គ្នា​ត្រូវ​តែ​ជា​លេខ​ទាំង​អស់។","chooseColor":"រើស"},"cellPad":"ចន្លោះ​ក្រឡា","cellSpace":"គម្លាត​ក្រឡា","column":{"menu":"ជួរ​ឈរ","insertBefore":"បញ្ចូល​ជួរ​ឈរ​ពីមុខ","insertAfter":"បញ្ចូល​ជួរ​ឈរ​ពី​ក្រោយ","deleteColumn":"លុប​ជួរ​ឈរ"},"columns":"ជួរឈរ","deleteTable":"លុប​តារាង","headers":"ក្បាល","headersBoth":"ទាំង​ពីរ","headersColumn":"ជួរ​ឈរ​ដំបូង","headersNone":"មិន​មាន","headersRow":"ជួរ​ដេក​ដំបូង","invalidBorder":"ទំហំ​បន្ទាត់​ស៊ុម​ត្រូវ​តែ​ជា​លេខ។","invalidCellPadding":"ចន្លោះ​ក្រឡា​ត្រូវ​តែជា​លេខ​វិជ្ជមាន។","invalidCellSpacing":"គម្លាត​ក្រឡា​ត្រូវ​តែ​ជា​លេខ​វិជ្ជមាន។","invalidCols":"ចំនួន​ជួរ​ឈរ​ត្រូវ​តែ​ជា​លេខ​ធំ​ជាង 0។","invalidHeight":"កម្ពស់​តារាង​ត្រូវ​តែ​ជា​លេខ","invalidRows":"ចំនួន​ជួរ​ដេក​ត្រូវ​តែ​ជា​លេខ​ធំ​ជាង 0។","invalidWidth":"ទទឹង​តារាង​ត្រូវ​តែ​ជា​លេខ។","menu":"លក្ខណៈ​តារាង","row":{"menu":"ជួរ​ដេក","insertBefore":"បញ្ចូល​ជួរ​ដេក​ពីមុខ","insertAfter":"បញ្ចូល​ជួរ​ដេក​ពី​ក្រោយ","deleteRow":"លុប​ជួរ​ដេក"},"rows":"ជួរ​ដេក","summary":"សេចក្តី​សង្ខេប","title":"លក្ខណៈ​តារាង","toolbar":"តារាង","widthPc":"ភាគរយ","widthPx":"ភីកសែល","widthUnit":"ឯកតា​ទទឹង"},"undo":{"redo":"ធ្វើ​ឡើង​វិញ","undo":"មិន​ធ្វើ​វិញ"},"wsc":{"btnIgnore":"មិនផ្លាស់ប្តូរ","btnIgnoreAll":"មិនផ្លាស់ប្តូរ ទាំងអស់","btnReplace":"ជំនួស","btnReplaceAll":"ជំនួសទាំងអស់","btnUndo":"សារឡើងវិញ","changeTo":"ផ្លាស់ប្តូរទៅ","errorLoading":"Error loading application service host: %s.","ieSpellDownload":"ពុំមានកម្មវិធីពិនិត្យអក្ខរាវិរុទ្ធ ។ តើចង់ទាញយកពីណា?","manyChanges":"ការពិនិត្យអក្ខរាវិរុទ្ធបានចប់: %1 ពាក្យបានផ្លាស់ប្តូរ","noChanges":"ការពិនិត្យអក្ខរាវិរុទ្ធបានចប់: ពុំមានផ្លាស់ប្តូរ","noMispell":"ការពិនិត្យអក្ខរាវិរុទ្ធបានចប់: គ្មានកំហុស","noSuggestions":"- គ្មានសំណើរ -","notAvailable":"Sorry, but service is unavailable now.","notInDic":"គ្មានក្នុងវចនានុក្រម","oneChange":"ការពិនិត្យអក្ខរាវិរុទ្ធបានចប់: ពាក្យមួយត្រូចបានផ្លាស់ប្តូរ","progress":"កំពុងពិនិត្យអក្ខរាវិរុទ្ធ...","title":"Spell Checker","toolbar":"ពិនិត្យអក្ខរាវិរុទ្ធ"}}; \ No newline at end of file diff --git a/admin/plugins/ckeditor/lang/ko.js b/admin/plugins/ckeditor/lang/ko.js deleted file mode 100644 index 1f05390..0000000 --- a/admin/plugins/ckeditor/lang/ko.js +++ /dev/null @@ -1,5 +0,0 @@ -/* -Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. -For licensing, see LICENSE.md or http://ckeditor.com/license -*/ -CKEDITOR.lang['ko']={"editor":"리치 텍스트 편집기","editorPanel":"리치 텍스트 편집기 패널","common":{"editorHelp":"도움이 필요하면 ALT 0 을 누르세요","browseServer":"서버 탐색","url":"URL","protocol":"프로토콜","upload":"업로드","uploadSubmit":"서버로 전송","image":"이미지","flash":"플래시","form":"폼","checkbox":"체크 박스","radio":"라디오 버튼","textField":"한 줄 입력 칸","textarea":"여러 줄 입력 칸","hiddenField":"숨은 입력 칸","button":"버튼","select":"선택 목록","imageButton":"이미지 버튼","notSet":"<설정 안 됨>","id":"ID","name":"이름","langDir":"언어 방향","langDirLtr":"왼쪽에서 오른쪽 (LTR)","langDirRtl":"오른쪽에서 왼쪽 (RTL)","langCode":"언어 코드","longDescr":"웹 주소 설명","cssClass":"스타일 시트 클래스","advisoryTitle":"보조 제목","cssStyle":"스타일","ok":"확인","cancel":"취소","close":"닫기","preview":"미리보기","resize":"크기 조절","generalTab":"일반","advancedTab":"자세히","validateNumberFailed":"이 값은 숫자가 아닙니다.","confirmNewPage":"저장하지 않은 모든 변경사항은 유실됩니다. 정말로 새로운 페이지를 부르겠습니까?","confirmCancel":"일부 옵션이 변경 되었습니다. 정말로 창을 닫겠습니까?","options":"옵션","target":"타겟","targetNew":"새 창 (_blank)","targetTop":"최상위 창 (_top)","targetSelf":"같은 창 (_self)","targetParent":"부모 창 (_parent)","langDirLTR":"왼쪽에서 오른쪽 (LTR)","langDirRTL":"오른쪽에서 왼쪽 (RTL)","styles":"스타일","cssClasses":"스타일 시트 클래스","width":"너비","height":"높이","align":"정렬","alignLeft":"왼쪽","alignRight":"오른쪽","alignCenter":"가운데","alignJustify":"양쪽 맞춤","alignTop":"위","alignMiddle":"중간","alignBottom":"아래","alignNone":"기본","invalidValue":"잘못된 값.","invalidHeight":"높이는 숫자여야 합니다.","invalidWidth":"넓이는 숫자여야 합니다.","invalidCssLength":"\"%1\" 값은 유효한 CSS 측정 단위(px, %, in, cm, mm, em, ex, pt, or pc)를 포함하거나 포함하지 않은 양수 여야 합니다.","invalidHtmlLength":"\"%1\" 값은 유효한 HTML 측정 단위(px or %)를 포함하거나 포함하지 않은 양수여야 합니다.","invalidInlineStyle":"인라인 스타일에 설정된 값은 \"name : value\" 형식을 가진 하나 이상의 투플(tuples)이 세미콜론(;)으로 구분되어 구성되어야 합니다.","cssLengthTooltip":"픽셀 단위의 숫자만 입력하시거나 유효한 CSS 단위(px, %, in, cm, mm, em, ex, pt, or pc)와 함께 숫자를 입력해주세요.","unavailable":"%1<span class=\"cke_accessibility\">, 사용불가</span>","keyboard":{"8":"백스페이스","13":"엔터","16":"시프트","17":"컨트롤","18":"알트","32":"간격","35":"엔드","36":"홈","46":"딜리트","224":"커맨드"},"keyboardShortcut":"키보드 단축키"},"about":{"copy":"저작권 &copy; $1 . 판권 소유.","dlgTitle":"CKEditor 에 대하여","help":"도움이 필요하시면 $1 를 확인하세요.","moreInfo":"라이선스에 대한 정보는 저희 웹 사이트를 참고하세요:","title":"CKEditor에 대하여","userGuide":"CKEditor 사용설명서"},"basicstyles":{"bold":"굵게","italic":"기울임꼴","strike":"취소선","subscript":"아래 첨자","superscript":"위 첨자","underline":"밑줄"},"blockquote":{"toolbar":"인용 단락"},"notification":{"closed":"알림이 닫힘."},"button":{"selectedLabel":"%1 (선택됨)"},"toolbar":{"toolbarCollapse":"툴바 줄이기","toolbarExpand":"툴바 확장","toolbarGroups":{"document":"문서","clipboard":"클립보드/실행 취소","editing":"편집","forms":"폼","basicstyles":"기본 스타일","paragraph":"단락","links":"링크","insert":"삽입","styles":"스타일","colors":"색상","tools":"도구"},"toolbars":"에디터 툴바"},"clipboard":{"copy":"복사","copyError":"브라우저의 보안설정 때문에 복사할 수 없습니다. 키보드(Ctrl/Cmd+C)를 이용해서 복사하십시오.","cut":"잘라내기","cutError":"브라우저의 보안설정 때문에 잘라내기 기능을 실행할 수 없습니다. 키보드(Ctrl/Cmd+X)를 이용해서 잘라내기 하십시오","paste":"붙여넣기","pasteNotification":"Your browser doesn't allow you to paste this way. Press %1 to paste."},"contextmenu":{"options":"컨텍스트 메뉴 옵션"},"elementspath":{"eleLabel":"요소 경로","eleTitle":"%1 요소"},"format":{"label":"문단","panelTitle":"문단 형식","tag_address":"글쓴이","tag_div":"기본 (DIV)","tag_h1":"제목 1","tag_h2":"제목 2","tag_h3":"제목 3","tag_h4":"제목 4","tag_h5":"제목 5","tag_h6":"제목 6","tag_p":"본문","tag_pre":"정형 문단"},"horizontalrule":{"toolbar":"가로 줄 삽입"},"image":{"alt":"대체 문자열","border":"테두리","btnUpload":"서버로 전송","button2Img":"단순 이미지에서 선택한 이미지 버튼을 변환하시겠습니까?","hSpace":"가로 여백","img2Button":"이미지 버튼에 선택한 이미지를 변환하시겠습니까?","infoTab":"이미지 정보","linkTab":"링크","lockRatio":"비율 유지","menu":"이미지 속성","resetSize":"원래 크기로","title":"이미지 속성","titleButton":"이미지 버튼 속성","upload":"업로드","urlMissing":"이미지 원본 주소(URL)가 없습니다.","vSpace":"세로 여백","validateBorder":"테두리 두께는 정수여야 합니다.","validateHSpace":"가로 길이는 정수여야 합니다.","validateVSpace":"세로 길이는 정수여야 합니다."},"indent":{"indent":"들여쓰기","outdent":"내어쓰기"},"fakeobjects":{"anchor":"책갈피","flash":"플래시 애니메이션","hiddenfield":"숨은 입력 칸","iframe":"아이프레임","unknown":"알 수 없는 객체"},"link":{"acccessKey":"액세스 키","advanced":"고급","advisoryContentType":"보조 콘텐츠 유형","advisoryTitle":"보조 제목","anchor":{"toolbar":"책갈피","menu":"책갈피 편집","title":"책갈피 속성","name":"책갈피 이름","errorName":"책갈피 이름을 입력하십시오","remove":"책갈피 제거"},"anchorId":"책갈피 ID","anchorName":"책갈피 이름","charset":"링크된 자료 문자열 인코딩","cssClasses":"스타일시트 클래스","download":"강제 다운로드","displayText":"보이는 글자","emailAddress":"이메일 주소","emailBody":"메시지 내용","emailSubject":"메시지 제목","id":"ID","info":"링크 정보","langCode":"언어 코드","langDir":"언어 방향","langDirLTR":"왼쪽에서 오른쪽 (LTR)","langDirRTL":"오른쪽에서 왼쪽 (RTL)","menu":"링크 수정","name":"이름","noAnchors":"(문서에 책갈피가 없습니다.)","noEmail":"이메일 주소를 입력하십시오","noUrl":"링크 주소(URL)를 입력하십시오","other":"<기타>","popupDependent":"Dependent (Netscape)","popupFeatures":"팝업창 속성","popupFullScreen":"전체화면 (IE)","popupLeft":"왼쪽 위치","popupLocationBar":"주소 표시줄","popupMenuBar":"메뉴 바","popupResizable":"크기 조절 가능","popupScrollBars":"스크롤 바","popupStatusBar":"상태 바","popupToolbar":"툴바","popupTop":"위쪽 위치","rel":"관계","selectAnchor":"책갈피 선택","styles":"스타일","tabIndex":"탭 순서","target":"타겟","targetFrame":"<프레임>","targetFrameName":"타겟 프레임 이름","targetPopup":"<팝업 창>","targetPopupName":"팝업 창 이름","title":"링크","toAnchor":"책갈피","toEmail":"이메일","toUrl":"주소(URL)","toolbar":"링크 삽입/변경","type":"링크 종류","unlink":"링크 지우기","upload":"업로드"},"list":{"bulletedlist":"순서 없는 목록","numberedlist":"순서 있는 목록"},"magicline":{"title":"여기에 단락 삽입"},"maximize":{"maximize":"최대화","minimize":"최소화"},"pastetext":{"button":"텍스트로 붙여넣기","pasteNotification":"Your browser does not allow you to paste plain text this way. Press %1 to paste."},"pastefromword":{"confirmCleanup":"붙여 넣을 내용은 MS Word에서 복사 한 것입니다. 붙여 넣기 전에 정리 하시겠습니까?","error":"내부 오류로 붙여 넣은 데이터를 정리 할 수 없습니다.","title":"MS Word 에서 붙여넣기","toolbar":"MS Word 에서 붙여넣기"},"removeformat":{"toolbar":"형식 지우기"},"sourcearea":{"toolbar":"소스"},"specialchar":{"options":"특수문자 옵션","title":"특수문자 선택","toolbar":"특수문자 삽입"},"scayt":{"btn_about":"About SCAYT","btn_dictionaries":"Dictionaries","btn_disable":"Disable SCAYT","btn_enable":"Enable SCAYT","btn_langs":"Languages","btn_options":"Options","text_title":"Spell Check As You Type"},"stylescombo":{"label":"스타일","panelTitle":"전체 구성 스타일","panelTitle1":"블록 스타일","panelTitle2":"인라인 스타일","panelTitle3":"객체 스타일"},"table":{"border":"테두리 두께","caption":"주석","cell":{"menu":"셀","insertBefore":"앞에 셀 삽입","insertAfter":"뒤에 셀 삽입","deleteCell":"셀 삭제","merge":"셀 합치기","mergeRight":"오른쪽 합치기","mergeDown":"왼쪽 합치기","splitHorizontal":"수평 나누기","splitVertical":"수직 나누기","title":"셀 속성","cellType":"셀 종류","rowSpan":"행 간격","colSpan":"열 간격","wordWrap":"줄 끝 단어 줄 바꿈","hAlign":"가로 정렬","vAlign":"세로 정렬","alignBaseline":"영문 글꼴 기준선","bgColor":"배경색","borderColor":"테두리 색","data":"자료","header":"머릿칸","yes":"예","no":"아니오","invalidWidth":"셀 너비는 숫자여야 합니다.","invalidHeight":"셀 높이는 숫자여야 합니다.","invalidRowSpan":"행 간격은 정수여야 합니다.","invalidColSpan":"열 간격은 정수여야 합니다.","chooseColor":"선택"},"cellPad":"셀 여백","cellSpace":"셀 간격","column":{"menu":"열","insertBefore":"왼쪽에 열 삽입","insertAfter":"오른쪽에 열 삽입","deleteColumn":"열 삭제"},"columns":"열","deleteTable":"표 삭제","headers":"머릿칸","headersBoth":"모두","headersColumn":"첫 열","headersNone":"없음","headersRow":"첫 행","invalidBorder":"테두리 두께는 숫자여야 합니다.","invalidCellPadding":"셀 여백은 0 이상이어야 합니다.","invalidCellSpacing":"셀 간격은 0 이상이어야 합니다.","invalidCols":"열 번호는 0보다 커야 합니다.","invalidHeight":"표 높이는 숫자여야 합니다.","invalidRows":"행 번호는 0보다 커야 합니다.","invalidWidth":"표의 너비는 숫자여야 합니다.","menu":"표 속성","row":{"menu":"행","insertBefore":"위에 행 삽입","insertAfter":"아래에 행 삽입","deleteRow":"행 삭제"},"rows":"행","summary":"요약","title":"표 속성","toolbar":"표","widthPc":"백분율","widthPx":"픽셀","widthUnit":"너비 단위"},"undo":{"redo":"다시 실행","undo":"실행 취소"},"wsc":{"btnIgnore":"건너뜀","btnIgnoreAll":"모두 건너뜀","btnReplace":"변경","btnReplaceAll":"모두 변경","btnUndo":"취소","changeTo":"변경할 단어","errorLoading":"Error loading application service host: %s.","ieSpellDownload":"철자 검사기가 철치되지 않았습니다. 지금 다운로드하시겠습니까?","manyChanges":"철자검사 완료: %1 단어가 변경되었습니다.","noChanges":"철자검사 완료: 변경된 단어가 없습니다.","noMispell":"철자검사 완료: 잘못된 철자가 없습니다.","noSuggestions":"- 추천단어 없음 -","notAvailable":"Sorry, but service is unavailable now.","notInDic":"사전에 없는 단어","oneChange":"철자검사 완료: 단어가 변경되었습니다.","progress":"철자검사를 진행중입니다...","title":"Spell Check","toolbar":"철자검사"}}; \ No newline at end of file diff --git a/admin/plugins/ckeditor/lang/ku.js b/admin/plugins/ckeditor/lang/ku.js deleted file mode 100644 index 7456d0b..0000000 --- a/admin/plugins/ckeditor/lang/ku.js +++ /dev/null @@ -1,5 +0,0 @@ -/* -Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. -For licensing, see LICENSE.md or http://ckeditor.com/license -*/ -CKEDITOR.lang['ku']={"editor":"سەرنووسەی دەقی تەواو","editorPanel":"بڕگەی سەرنووسەی دەقی تەواو","common":{"editorHelp":"کلیکی ALT لەگەڵ 0 بکه‌ بۆ یارمەتی","browseServer":"هێنانی ڕاژە","url":"ناونیشانی بەستەر","protocol":"پڕۆتۆکۆڵ","upload":"بارکردن","uploadSubmit":"ناردنی بۆ ڕاژە","image":"وێنە","flash":"فلاش","form":"داڕشتە","checkbox":"خانەی نیشانکردن","radio":"جێگرەوەی دوگمە","textField":"خانەی دەق","textarea":"ڕووبەری دەق","hiddenField":"شاردنەوی خانە","button":"دوگمە","select":"هەڵبژاردەی خانە","imageButton":"دوگمەی وێنە","notSet":"<هیچ دانەدراوە>","id":"ناسنامە","name":"ناو","langDir":"ئاراستەی زمان","langDirLtr":"چەپ بۆ ڕاست (LTR)","langDirRtl":"ڕاست بۆ چەپ (RTL)","langCode":"هێمای زمان","longDescr":"پێناسەی درێژی بەستەر","cssClass":"شێوازی چینی په‌ڕە","advisoryTitle":"ڕاوێژکاری سەردێڕ","cssStyle":"شێواز","ok":"باشە","cancel":"پاشگەزبوونەوە","close":"داخستن","preview":"پێشبینین","resize":"گۆڕینی ئەندازە","generalTab":"گشتی","advancedTab":"پەرەسەندوو","validateNumberFailed":"ئەم نرخە ژمارە نیە، تکایە نرخێکی ژمارە بنووسە.","confirmNewPage":"سەرجەم گۆڕانکاریەکان و پێکهاتەکانی ناووەوە لەدەست دەدەی گەر بێتوو پاشکەوتی نەکەی یەکەم جار، تۆ هەر دڵنیایی لەکردنەوەی پەنجەرەکی نوێ؟","confirmCancel":"هەندێك هەڵبژاردە گۆڕدراوە. تۆ دڵنیایی لە داخستنی ئەم دیالۆگە؟","options":"هەڵبژاردەکان","target":"ئامانج","targetNew":"پەنجەرەیەکی نوێ (_blank)","targetTop":"لووتکەی پەنجەرە (_top)","targetSelf":"لەهەمان پەنجەرە (_self)","targetParent":"پەنجەرەی باوان (_parent)","langDirLTR":"چەپ بۆ ڕاست (LTR)","langDirRTL":"ڕاست بۆ چەپ (RTL)","styles":"شێواز","cssClasses":"شێوازی چینی پەڕە","width":"پانی","height":"درێژی","align":"ڕێککەرەوە","alignLeft":"چەپ","alignRight":"ڕاست","alignCenter":"ناوەڕاست","alignJustify":"هاوستوونی","alignTop":"سەرەوە","alignMiddle":"ناوەند","alignBottom":"ژێرەوە","alignNone":"هیچ","invalidValue":"نرخێکی نادرووست.","invalidHeight":"درێژی دەبێت ژمارە بێت.","invalidWidth":"پانی دەبێت ژمارە بێت.","invalidCssLength":"ئەم نرخەی دراوە بۆ خانەی \"%1\" دەبێت ژمارەکی درووست بێت یان بێ ناونیشانی ئامرازی (px, %, in, cm, mm, em, ex, pt, یان pc).","invalidHtmlLength":"ئەم نرخەی دراوە بۆ خانەی \"%1\" دەبێت ژمارەکی درووست بێت یان بێ ناونیشانی ئامرازی HTML (px یان %).","invalidInlineStyle":"دانەی نرخی شێوازی ناوهێڵ دەبێت پێکهاتبێت لەیەك یان زیاتری داڕشتە \"ناو : نرخ\", جیاکردنەوەی بە فاریزە و خاڵ","cssLengthTooltip":"ژمارەیەك بنووسه‌ بۆ نرخی piksel یان ئامرازێکی درووستی CSS (px, %, in, cm, mm, em, ex, pt, یان pc).","unavailable":"%1<span class=\"cke_accessibility\">, ئامادە نیە</span>","keyboard":{"8":"Backspace","13":"Enter","16":"Shift","17":"Ctrl","18":"Alt","32":"Space","35":"End","36":"Home","46":"Delete","224":"فەرمان"},"keyboardShortcut":"کورتبڕی تەختەکلیل"},"about":{"copy":"مافی لەبەرگەرتنەوەی &copy; $1. گشتی پارێزراوه. ورگێڕانی بۆ کوردی لەلایەن هۆژە کۆیی.","dlgTitle":"دەربارەی CKEditor","help":"سەیری $1 بکه بۆ یارمەتی.","moreInfo":"بۆ زانیاری زیاتر دەربارەی مۆڵەتی بەکارهێنان، تکایه سەردانی ماڵپەڕەکەمان بکه:","title":"دەربارەی CKEditor","userGuide":"ڕێپیشاندەری CKEditors"},"basicstyles":{"bold":"قەڵەو","italic":"لار","strike":"لێدان","subscript":"ژێرنووس","superscript":"سەرنووس","underline":"ژێرهێڵ"},"blockquote":{"toolbar":"بەربەستکردنی ووتەی وەرگیراو"},"notification":{"closed":"ئاگادارکەرەوەکە داخرا."},"button":{"selectedLabel":"%1 (هەڵبژێردراو)"},"toolbar":{"toolbarCollapse":"شاردنەوی هێڵی تووڵامراز","toolbarExpand":"نیشاندانی هێڵی تووڵامراز","toolbarGroups":{"document":"پەڕه","clipboard":"بڕین/پووچکردنەوە","editing":"چاکسازی","forms":"داڕشتە","basicstyles":"شێوازی بنچینەیی","paragraph":"بڕگە","links":"بەستەر","insert":"خستنە ناو","styles":"شێواز","colors":"ڕەنگەکان","tools":"ئامرازەکان"},"toolbars":"تووڵامرازی دەسکاریکەر"},"clipboard":{"copy":"لەبەرگرتنەوە","copyError":"پارێزی وێبگەڕەکەت ڕێگەنادات بەسەرنووسەکە لە لکاندنی دەقی خۆکارارنە. تکایە لەبری ئەمە ئەم فەرمانە بەکاربهێنە بەداگرتنی کلیلی (Ctrl/Cmd+C).","cut":"بڕین","cutError":"پارێزی وێبگەڕەکەت ڕێگەنادات بە سەرنووسەکە لەبڕینی خۆکارانە. تکایە لەبری ئەمە ئەم فەرمانە بەکاربهێنە بەداگرتنی کلیلی (Ctrl/Cmd+X).","paste":"لکاندن","pasteNotification":"Your browser doesn't allow you to paste this way. Press %1 to paste."},"contextmenu":{"options":"هەڵبژاردەی لیستەی کلیکی دەستی ڕاست"},"elementspath":{"eleLabel":"ڕێڕەوی توخمەکان","eleTitle":"%1 توخم"},"format":{"label":"ڕازاندنەوە","panelTitle":"بەشی ڕازاندنەوه","tag_address":"ناونیشان","tag_div":"(DIV)-ی ئاسایی","tag_h1":"سەرنووسەی ١","tag_h2":"سەرنووسەی ٢","tag_h3":"سەرنووسەی ٣","tag_h4":"سەرنووسەی ٤","tag_h5":"سەرنووسەی ٥","tag_h6":"سەرنووسەی ٦","tag_p":"ئاسایی","tag_pre":"شێوازکراو"},"horizontalrule":{"toolbar":"دانانی هێلی ئاسۆیی"},"image":{"alt":"جێگرەوەی دەق","border":"پەراوێز","btnUpload":"ناردنی بۆ ڕاژه","button2Img":"تۆ دەتەوێت دوگمەی وێنەی دیاریکراو بگۆڕیت بۆ وێنەیەکی ئاسایی؟","hSpace":"بۆشایی ئاسۆیی","img2Button":"تۆ دەتەوێت وێنەی دیاریکراو بگۆڕیت بۆ دوگمەی وێنه؟","infoTab":"زانیاری وێنه","linkTab":"بەستەر","lockRatio":"داخستنی ڕێژه","menu":"خاسیەتی وێنه","resetSize":"ڕێکخستنەوەی قەباره","title":"خاسیەتی وێنه","titleButton":"خاسیەتی دوگمەی وێنه","upload":"بارکردن","urlMissing":"سەرچاوەی بەستەری وێنه بزره","vSpace":"بۆشایی ئەستونی","validateBorder":"پەراوێز دەبێت بەتەواوی تەنها ژماره بێت.","validateHSpace":"بۆشایی ئاسۆیی دەبێت بەتەواوی تەنها ژمارە بێت.","validateVSpace":"بۆشایی ئەستونی دەبێت بەتەواوی تەنها ژماره بێت."},"indent":{"indent":"زیادکردنی بۆشایی","outdent":"کەمکردنەوەی بۆشایی"},"fakeobjects":{"anchor":"لەنگەر","flash":"فلاش","hiddenfield":"شاردنەوەی خانه","iframe":"لەچوارچێوە","unknown":"بەرکارێکی نەناسراو"},"link":{"acccessKey":"کلیلی دەستپێگەیشتن","advanced":"پێشکەوتوو","advisoryContentType":"جۆری ناوەڕۆکی ڕاویژکار","advisoryTitle":"ڕاوێژکاری سەردێڕ","anchor":{"toolbar":"دانان/چاکسازی لەنگەر","menu":"چاکسازی لەنگەر","title":"خاسیەتی لەنگەر","name":"ناوی لەنگەر","errorName":"تکایه ناوی لەنگەر بنووسه","remove":"لابردنی لەنگەر"},"anchorId":"بەپێی ناسنامەی توخم","anchorName":"بەپێی ناوی لەنگەر","charset":"بەستەری سەرچاوەی نووسە","cssClasses":"شێوازی چینی پەڕه","download":"داگرتنی بەهێز","displayText":"پیشاندانی دەق","emailAddress":"ناونیشانی ئیمەیل","emailBody":"ناوەڕۆکی نامە","emailSubject":"بابەتی نامە","id":"ناسنامە","info":"زانیاری بەستەر","langCode":"هێمای زمان","langDir":"ئاراستەی زمان","langDirLTR":"چەپ بۆ ڕاست (LTR)","langDirRTL":"ڕاست بۆ چەپ (RTL)","menu":"چاکسازی بەستەر","name":"ناو","noAnchors":"(هیچ جۆرێکی لەنگەر ئامادە نیە لەم پەڕەیه)","noEmail":"تکایە ناونیشانی ئیمەیل بنووسە","noUrl":"تکایە ناونیشانی بەستەر بنووسە","other":"<هیتر>","popupDependent":"پێوەبەستراو (Netscape)","popupFeatures":"خاسیەتی پەنجەرەی سەرهەڵدەر","popupFullScreen":"پڕ بەپڕی شاشە (IE)","popupLeft":"جێگای چەپ","popupLocationBar":"هێڵی ناونیشانی بەستەر","popupMenuBar":"هێڵی لیسته","popupResizable":"توانای گۆڕینی قەباره","popupScrollBars":"هێڵی هاتووچۆپێکردن","popupStatusBar":"هێڵی دۆخ","popupToolbar":"هێڵی تووڵامراز","popupTop":"جێگای سەرەوە","rel":"پەیوەندی","selectAnchor":"هەڵبژاردنی لەنگەرێك","styles":"شێواز","tabIndex":"بازدەری تابی ئیندێکس","target":"ئامانج","targetFrame":"<چووارچێوە>","targetFrameName":"ناوی ئامانجی چووارچێوە","targetPopup":"<پەنجەرەی سەرهەڵدەر>","targetPopupName":"ناوی پەنجەرەی سەرهەڵدەر","title":"بەستەر","toAnchor":"بەستەر بۆ لەنگەر له دەق","toEmail":"ئیمەیل","toUrl":"ناونیشانی بەستەر","toolbar":"دانان/ڕێکخستنی بەستەر","type":"جۆری بەستەر","unlink":"لابردنی بەستەر","upload":"بارکردن"},"list":{"bulletedlist":"دانان/لابردنی خاڵی لیست","numberedlist":"دانان/لابردنی ژمارەی لیست"},"magicline":{"title":"بڕگە لێرە دابنێ"},"maximize":{"maximize":"ئەوپەڕی گەورەیی","minimize":"ئەوپەڕی بچووکی"},"pastetext":{"button":"لکاندنی وەك دەقی ڕوون","pasteNotification":"Your browser does not allow you to paste plain text this way. Press %1 to paste."},"pastefromword":{"confirmCleanup":"ئەم دەقەی بەتەمای بیلکێنی پێدەچێت له word هێنرابێت. دەتەوێت پاکی بکەیوه پێش ئەوەی بیلکێنی؟","error":"هیچ ڕێگەیەك نەبوو لەلکاندنی دەقەکه بەهۆی هەڵەیەکی ناوەخۆیی","title":"لکاندنی لەلایەن Word","toolbar":"لکاندنی لەڕێی Word"},"removeformat":{"toolbar":"لابردنی داڕشتەکە"},"sourcearea":{"toolbar":"سەرچاوە"},"specialchar":{"options":"هەڵبژاردەی نووسەی تایبەتی","title":"هەڵبژاردنی نووسەی تایبەتی","toolbar":"دانانی نووسەی تایبەتی"},"scayt":{"btn_about":"دهربارهی SCAYT","btn_dictionaries":"فهرههنگهکان","btn_disable":"ناچالاککردنی SCAYT","btn_enable":"چالاککردنی SCAYT","btn_langs":"زمانهکان","btn_options":"ههڵبژارده","text_title":"پشکنینی نووسه لهکاتی نووسین"},"stylescombo":{"label":"شێواز","panelTitle":"شێوازی ڕازاندنەوە","panelTitle1":"شێوازی خشت","panelTitle2":"شێوازی ناوهێڵ","panelTitle3":"شێوازی بەرکار"},"table":{"border":"گەورەیی پەراوێز","caption":"سەردێڕ","cell":{"menu":"خانه","insertBefore":"دانانی خانه لەپێش","insertAfter":"دانانی خانه لەپاش","deleteCell":"سڕینەوەی خانه","merge":"تێکەڵکردنی خانە","mergeRight":"تێکەڵکردنی لەگەڵ ڕاست","mergeDown":"تێکەڵکردنی لەگەڵ خوارەوە","splitHorizontal":"دابەشکردنی خانەی ئاسۆیی","splitVertical":"دابەشکردنی خانەی ئەستونی","title":"خاسیەتی خانه","cellType":"جۆری خانه","rowSpan":"ماوەی نێوان ڕیز","colSpan":"بستی ئەستونی","wordWrap":"پێچانەوەی وشە","hAlign":"ڕیزکردنی ئاسۆیی","vAlign":"ڕیزکردنی ئەستونی","alignBaseline":"هێڵەبنەڕەت","bgColor":"ڕەنگی پاشبنەما","borderColor":"ڕەنگی پەراوێز","data":"داتا","header":"سەرپەڕه","yes":"بەڵێ","no":"نەخێر","invalidWidth":"پانی خانه دەبێت بەتەواوی ژماره بێت.","invalidHeight":"درێژی خانه بەتەواوی دەبێت ژمارە بێت.","invalidRowSpan":"ماوەی نێوان ڕیز بەتەواوی دەبێت ژمارە بێت.","invalidColSpan":"ماوەی نێوان ئەستونی بەتەواوی دەبێت ژمارە بێت.","chooseColor":"هەڵبژێرە"},"cellPad":"بۆشایی ناوپۆش","cellSpace":"بۆشایی خانه","column":{"menu":"ئەستون","insertBefore":"دانانی ئەستون لەپێش","insertAfter":"دانانی ئەستوون لەپاش","deleteColumn":"سڕینەوەی ئەستوون"},"columns":"ستوونەکان","deleteTable":"سڕینەوەی خشتە","headers":"سەرپەڕه","headersBoth":"هەردووك","headersColumn":"یەکەم ئەستوون","headersNone":"هیچ","headersRow":"یەکەم ڕیز","invalidBorder":"ژمارەی پەراوێز دەبێت تەنها ژماره بێت.","invalidCellPadding":"ناوپۆشی خانه دەبێت ژمارەکی درووست بێت.","invalidCellSpacing":"بۆشایی خانه دەبێت ژمارەکی درووست بێت.","invalidCols":"ژمارەی ئەستوونی دەبێت گەورەتر بێت لەژمارەی 0.","invalidHeight":"درێژی خشته دهبێت تهنها ژماره بێت.","invalidRows":"ژمارەی ڕیز دەبێت گەورەتر بێت لەژمارەی 0.","invalidWidth":"پانی خشته دەبێت تەنها ژماره بێت.","menu":"خاسیەتی خشتە","row":{"menu":"ڕیز","insertBefore":"دانانی ڕیز لەپێش","insertAfter":"دانانی ڕیز لەپاش","deleteRow":"سڕینەوەی ڕیز"},"rows":"ڕیز","summary":"کورتە","title":"خاسیەتی خشتە","toolbar":"خشتە","widthPc":"لەسەدا","widthPx":"وێنەخاڵ - پیکسل","widthUnit":"پانی یەکە"},"undo":{"redo":"هەڵگەڕاندنەوە","undo":"پووچکردنەوە"},"wsc":{"btnIgnore":"پشتگوێ کردن","btnIgnoreAll":"پشتگوێکردنی ههمووی","btnReplace":"لهبریدانن","btnReplaceAll":"لهبریدانانی ههمووی","btnUndo":"پووچکردنهوه","changeTo":"گۆڕینی بۆ","errorLoading":"ههڵه لههێنانی داخوازینامهی خانهخۆێی ڕاژه: %s.","ieSpellDownload":"پشکنینی ڕێنووس دانهمزراوه. دهتهوێت ئێستا دایبگریت?","manyChanges":"پشکنینی ڕێنووس کۆتای هات: لهسهدا %1 ی وشهکان گۆڕدرا","noChanges":"پشکنینی ڕێنووس کۆتای هات: هیچ وشهیهك نۆگۆڕدرا","noMispell":"پشکنینی ڕێنووس کۆتای هات: هیچ ههڵهیهکی ڕێنووس نهدۆزراوه","noSuggestions":"- هیچ پێشنیارێك -","notAvailable":"ببووره، لهمکاتهدا ڕاژهکه لهبهردهستا نیه.","notInDic":"لهفهرههنگ دانیه","oneChange":"پشکنینی ڕێنووس کۆتای هات: یهك وشه گۆڕدرا","progress":"پشکنینی ڕێنووس لهبهردهوامبوون دایه...","title":"پشکنینی ڕێنووس","toolbar":"پشکنینی ڕێنووس"}}; \ No newline at end of file diff --git a/admin/plugins/ckeditor/lang/lt.js b/admin/plugins/ckeditor/lang/lt.js deleted file mode 100644 index f8cb4b9..0000000 --- a/admin/plugins/ckeditor/lang/lt.js +++ /dev/null @@ -1,5 +0,0 @@ -/* -Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. -For licensing, see LICENSE.md or http://ckeditor.com/license -*/ -CKEDITOR.lang['lt']={"editor":"Pilnas redaktorius","editorPanel":"Pilno redagtoriaus skydelis","common":{"editorHelp":"Spauskite ALT 0 dėl pagalbos","browseServer":"Naršyti po serverį","url":"URL","protocol":"Protokolas","upload":"Siųsti","uploadSubmit":"Siųsti į serverį","image":"Vaizdas","flash":"Flash","form":"Forma","checkbox":"Žymimasis langelis","radio":"Žymimoji akutė","textField":"Teksto laukas","textarea":"Teksto sritis","hiddenField":"Nerodomas laukas","button":"Mygtukas","select":"Atrankos laukas","imageButton":"Vaizdinis mygtukas","notSet":"<nėra nustatyta>","id":"Id","name":"Vardas","langDir":"Teksto kryptis","langDirLtr":"Iš kairės į dešinę (LTR)","langDirRtl":"Iš dešinės į kairę (RTL)","langCode":"Kalbos kodas","longDescr":"Ilgas aprašymas URL","cssClass":"Stilių lentelės klasės","advisoryTitle":"Konsultacinė antraštė","cssStyle":"Stilius","ok":"OK","cancel":"Nutraukti","close":"Uždaryti","preview":"Peržiūrėti","resize":"Pavilkite, kad pakeistumėte dydį","generalTab":"Bendros savybės","advancedTab":"Papildomas","validateNumberFailed":"Ši reikšmė nėra skaičius.","confirmNewPage":"Visas neišsaugotas turinys bus prarastas. Ar tikrai norite įkrauti naują puslapį?","confirmCancel":"Kai kurie parametrai pasikeitė. Ar tikrai norite užverti langą?","options":"Parametrai","target":"Tikslinė nuoroda","targetNew":"Naujas langas (_blank)","targetTop":"Viršutinis langas (_top)","targetSelf":"Esamas langas (_self)","targetParent":"Paskutinis langas (_parent)","langDirLTR":"Iš kairės į dešinę (LTR)","langDirRTL":"Iš dešinės į kairę (RTL)","styles":"Stilius","cssClasses":"Stilių klasės","width":"Plotis","height":"Aukštis","align":"Lygiuoti","alignLeft":"Kairę","alignRight":"Dešinę","alignCenter":"Centrą","alignJustify":"Lygiuoti abi puses","alignTop":"Viršūnę","alignMiddle":"Vidurį","alignBottom":"Apačią","alignNone":"Niekas","invalidValue":"Neteisinga reikšmė.","invalidHeight":"Aukštis turi būti nurodytas skaičiais.","invalidWidth":"Plotis turi būti nurodytas skaičiais.","invalidCssLength":"Reikšmė nurodyta \"%1\" laukui, turi būti teigiamas skaičius su arba be tinkamo CSS matavimo vieneto (px, %, in, cm, mm, em, ex, pt arba pc).","invalidHtmlLength":"Reikšmė nurodyta \"%1\" laukui, turi būti teigiamas skaičius su arba be tinkamo HTML matavimo vieneto (px arba %).","invalidInlineStyle":"Reikšmė nurodyta vidiniame stiliuje turi būti sudaryta iš vieno šių reikšmių \"vardas : reikšmė\", atskirta kabliataškiais.","cssLengthTooltip":"Įveskite reikšmę pikseliais arba skaičiais su tinkamu CSS vienetu (px, %, in, cm, mm, em, ex, pt arba pc).","unavailable":"%1<span class=\"cke_accessibility\">, netinkamas</span>","keyboard":{"8":"Backspace","13":"Enter","16":"Shift","17":"Ctrl","18":"Alt","32":"Space","35":"End","36":"Home","46":"Delete","224":"Command"},"keyboardShortcut":"Keyboard shortcut"},"about":{"copy":"Copyright &copy; $1. Visos teiss saugomos.","dlgTitle":"Apie CKEditor","help":"Patikrinkite $1 dėl pagalbos.","moreInfo":"Dėl licencijavimo apsilankykite mūsų svetainėje:","title":"Apie CKEditor","userGuide":"CKEditor Vartotojo Gidas"},"basicstyles":{"bold":"Pusjuodis","italic":"Kursyvas","strike":"Perbrauktas","subscript":"Apatinis indeksas","superscript":"Viršutinis indeksas","underline":"Pabrauktas"},"blockquote":{"toolbar":"Citata"},"notification":{"closed":"Notification closed."},"button":{"selectedLabel":"%1 (Pasirinkta)"},"toolbar":{"toolbarCollapse":"Apjungti įrankių juostą","toolbarExpand":"Išplėsti įrankių juostą","toolbarGroups":{"document":"Dokumentas","clipboard":"Atmintinė/Atgal","editing":"Redagavimas","forms":"Formos","basicstyles":"Pagrindiniai stiliai","paragraph":"Paragrafas","links":"Nuorodos","insert":"Įterpti","styles":"Stiliai","colors":"Spalvos","tools":"Įrankiai"},"toolbars":"Redaktoriaus įrankiai"},"clipboard":{"copy":"Kopijuoti","copyError":"Jūsų naršyklės saugumo nustatymai neleidžia redaktoriui automatiškai įvykdyti kopijavimo operacijų. Tam prašome naudoti klaviatūrą (Ctrl/Cmd+C).","cut":"Iškirpti","cutError":"Jūsų naršyklės saugumo nustatymai neleidžia redaktoriui automatiškai įvykdyti iškirpimo operacijų. Tam prašome naudoti klaviatūrą (Ctrl/Cmd+X).","paste":"Įdėti","pasteNotification":"Your browser doesn't allow you to paste this way. Press %1 to paste."},"contextmenu":{"options":"Kontekstinio meniu parametrai"},"elementspath":{"eleLabel":"Elemento kelias","eleTitle":"%1 elementas"},"format":{"label":"Šrifto formatas","panelTitle":"Šrifto formatas","tag_address":"Kreipinio","tag_div":"Normalus (DIV)","tag_h1":"Antraštinis 1","tag_h2":"Antraštinis 2","tag_h3":"Antraštinis 3","tag_h4":"Antraštinis 4","tag_h5":"Antraštinis 5","tag_h6":"Antraštinis 6","tag_p":"Normalus","tag_pre":"Formuotas"},"horizontalrule":{"toolbar":"Įterpti horizontalią liniją"},"image":{"alt":"Alternatyvus Tekstas","border":"Rėmelis","btnUpload":"Siųsti į serverį","button2Img":"Ar norite mygtuką paversti paprastu paveiksliuku?","hSpace":"Hor.Erdvė","img2Button":"Ar norite paveiksliuką paversti mygtuku?","infoTab":"Vaizdo informacija","linkTab":"Nuoroda","lockRatio":"Išlaikyti proporciją","menu":"Vaizdo savybės","resetSize":"Atstatyti dydį","title":"Vaizdo savybės","titleButton":"Vaizdinio mygtuko savybės","upload":"Nusiųsti","urlMissing":"Paveiksliuko nuorodos nėra.","vSpace":"Vert.Erdvė","validateBorder":"Reikšmė turi būti sveikas skaičius.","validateHSpace":"Reikšmė turi būti sveikas skaičius.","validateVSpace":"Reikšmė turi būti sveikas skaičius."},"indent":{"indent":"Padidinti įtrauką","outdent":"Sumažinti įtrauką"},"fakeobjects":{"anchor":"Žymė","flash":"Flash animacija","hiddenfield":"Paslėptas laukas","iframe":"IFrame","unknown":"Nežinomas objektas"},"link":{"acccessKey":"Prieigos raktas","advanced":"Papildomas","advisoryContentType":"Konsultacinio turinio tipas","advisoryTitle":"Konsultacinė antraštė","anchor":{"toolbar":"Įterpti/modifikuoti žymę","menu":"Žymės savybės","title":"Žymės savybės","name":"Žymės vardas","errorName":"Prašome įvesti žymės vardą","remove":"Pašalinti žymę"},"anchorId":"Pagal žymės Id","anchorName":"Pagal žymės vardą","charset":"Susietų išteklių simbolių lentelė","cssClasses":"Stilių lentelės klasės","download":"Force Download","displayText":"Display Text","emailAddress":"El.pašto adresas","emailBody":"Žinutės turinys","emailSubject":"Žinutės tema","id":"Id","info":"Nuorodos informacija","langCode":"Teksto kryptis","langDir":"Teksto kryptis","langDirLTR":"Iš kairės į dešinę (LTR)","langDirRTL":"Iš dešinės į kairę (RTL)","menu":"Taisyti nuorodą","name":"Vardas","noAnchors":"(Šiame dokumente žymių nėra)","noEmail":"Prašome įvesti el.pašto adresą","noUrl":"Prašome įvesti nuorodos URL","other":"<kitas>","popupDependent":"Priklausomas (Netscape)","popupFeatures":"Išskleidžiamo lango savybės","popupFullScreen":"Visas ekranas (IE)","popupLeft":"Kairė pozicija","popupLocationBar":"Adreso juosta","popupMenuBar":"Meniu juosta","popupResizable":"Kintamas dydis","popupScrollBars":"Slinkties juostos","popupStatusBar":"Būsenos juosta","popupToolbar":"Mygtukų juosta","popupTop":"Viršutinė pozicija","rel":"Sąsajos","selectAnchor":"Pasirinkite žymę","styles":"Stilius","tabIndex":"Tabuliavimo indeksas","target":"Paskirties vieta","targetFrame":"<kadras>","targetFrameName":"Paskirties kadro vardas","targetPopup":"<išskleidžiamas langas>","targetPopupName":"Paskirties lango vardas","title":"Nuoroda","toAnchor":"Žymė šiame puslapyje","toEmail":"El.paštas","toUrl":"Nuoroda","toolbar":"Įterpti/taisyti nuorodą","type":"Nuorodos tipas","unlink":"Panaikinti nuorodą","upload":"Siųsti"},"list":{"bulletedlist":"Suženklintas sąrašas","numberedlist":"Numeruotas sąrašas"},"magicline":{"title":"Insert paragraph here"},"maximize":{"maximize":"Išdidinti","minimize":"Sumažinti"},"pastetext":{"button":"Įdėti kaip gryną tekstą","pasteNotification":"Your browser does not allow you to paste plain text this way. Press %1 to paste."},"pastefromword":{"confirmCleanup":"Tekstas, kurį įkeliate yra kopijuojamas iš Word. Ar norite jį išvalyti prieš įkeliant?","error":"Dėl vidinių sutrikimų, nepavyko išvalyti įkeliamo teksto","title":"Įdėti iš Word","toolbar":"Įdėti iš Word"},"removeformat":{"toolbar":"Panaikinti formatą"},"sourcearea":{"toolbar":"Šaltinis"},"specialchar":{"options":"Specialaus simbolio nustatymai","title":"Pasirinkite specialų simbolį","toolbar":"Įterpti specialų simbolį"},"scayt":{"btn_about":"Apie SCAYT","btn_dictionaries":"Žodynai","btn_disable":"Išjungti SCAYT","btn_enable":"Įjungti SCAYT","btn_langs":"Kalbos","btn_options":"Parametrai","text_title":"Tikrinti klaidas kai rašoma"},"stylescombo":{"label":"Stilius","panelTitle":"Stilių formatavimas","panelTitle1":"Blokų stiliai","panelTitle2":"Vidiniai stiliai","panelTitle3":"Objektų stiliai"},"table":{"border":"Rėmelio dydis","caption":"Antraštė","cell":{"menu":"Langelis","insertBefore":"Įterpti langelį prieš","insertAfter":"Įterpti langelį po","deleteCell":"Šalinti langelius","merge":"Sujungti langelius","mergeRight":"Sujungti su dešine","mergeDown":"Sujungti su apačia","splitHorizontal":"Skaidyti langelį horizontaliai","splitVertical":"Skaidyti langelį vertikaliai","title":"Cell nustatymai","cellType":"Cell rūšis","rowSpan":"Eilučių Span","colSpan":"Stulpelių Span","wordWrap":"Sutraukti raides","hAlign":"Horizontalus lygiavimas","vAlign":"Vertikalus lygiavimas","alignBaseline":"Apatinė linija","bgColor":"Fono spalva","borderColor":"Rėmelio spalva","data":"Data","header":"Antraštė","yes":"Taip","no":"Ne","invalidWidth":"Reikšmė turi būti skaičius.","invalidHeight":"Reikšmė turi būti skaičius.","invalidRowSpan":"Reikšmė turi būti skaičius.","invalidColSpan":"Reikšmė turi būti skaičius.","chooseColor":"Pasirinkite"},"cellPad":"Tarpas nuo langelio rėmo iki teksto","cellSpace":"Tarpas tarp langelių","column":{"menu":"Stulpelis","insertBefore":"Įterpti stulpelį prieš","insertAfter":"Įterpti stulpelį po","deleteColumn":"Šalinti stulpelius"},"columns":"Stulpeliai","deleteTable":"Šalinti lentelę","headers":"Antraštės","headersBoth":"Abu","headersColumn":"Pirmas stulpelis","headersNone":"Nėra","headersRow":"Pirma eilutė","invalidBorder":"Reikšmė turi būti nurodyta skaičiumi.","invalidCellPadding":"Reikšmė turi būti nurodyta skaičiumi.","invalidCellSpacing":"Reikšmė turi būti nurodyta skaičiumi.","invalidCols":"Skaičius turi būti didesnis nei 0.","invalidHeight":"Reikšmė turi būti nurodyta skaičiumi.","invalidRows":"Skaičius turi būti didesnis nei 0.","invalidWidth":"Reikšmė turi būti nurodyta skaičiumi.","menu":"Lentelės savybės","row":{"menu":"Eilutė","insertBefore":"Įterpti eilutę prieš","insertAfter":"Įterpti eilutę po","deleteRow":"Šalinti eilutes"},"rows":"Eilutės","summary":"Santrauka","title":"Lentelės savybės","toolbar":"Lentelė","widthPc":"procentais","widthPx":"taškais","widthUnit":"pločio vienetas"},"undo":{"redo":"Atstatyti","undo":"Atšaukti"},"wsc":{"btnIgnore":"Ignoruoti","btnIgnoreAll":"Ignoruoti visus","btnReplace":"Pakeisti","btnReplaceAll":"Pakeisti visus","btnUndo":"Atšaukti","changeTo":"Pakeisti į","errorLoading":"Klaida įkraunant servisą: %s.","ieSpellDownload":"Rašybos tikrinimas neinstaliuotas. Ar Jūs norite jį dabar atsisiųsti?","manyChanges":"Rašybos tikrinimas baigtas: Pakeista %1 žodžių","noChanges":"Rašybos tikrinimas baigtas: Nėra pakeistų žodžių","noMispell":"Rašybos tikrinimas baigtas: Nerasta rašybos klaidų","noSuggestions":"- Nėra pasiūlymų -","notAvailable":"Atleiskite, šiuo metu servisas neprieinamas.","notInDic":"Žodyne nerastas","oneChange":"Rašybos tikrinimas baigtas: Vienas žodis pakeistas","progress":"Vyksta rašybos tikrinimas...","title":"Tikrinti klaidas","toolbar":"Rašybos tikrinimas"}}; \ No newline at end of file diff --git a/admin/plugins/ckeditor/lang/lv.js b/admin/plugins/ckeditor/lang/lv.js deleted file mode 100644 index 8760492..0000000 --- a/admin/plugins/ckeditor/lang/lv.js +++ /dev/null @@ -1,5 +0,0 @@ -/* -Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. -For licensing, see LICENSE.md or http://ckeditor.com/license -*/ -CKEDITOR.lang['lv']={"editor":"Bagātinātā teksta redaktors","editorPanel":"Bagātinātā teksta redaktora panelis","common":{"editorHelp":"Palīdzībai, nospiediet ALT 0 ","browseServer":"Skatīt servera saturu","url":"URL","protocol":"Protokols","upload":"Augšupielādēt","uploadSubmit":"Nosūtīt serverim","image":"Attēls","flash":"Flash","form":"Forma","checkbox":"Atzīmēšanas kastīte","radio":"Izvēles poga","textField":"Teksta rinda","textarea":"Teksta laukums","hiddenField":"Paslēpta teksta rinda","button":"Poga","select":"Iezīmēšanas lauks","imageButton":"Attēlpoga","notSet":"<nav iestatīts>","id":"Id","name":"Nosaukums","langDir":"Valodas lasīšanas virziens","langDirLtr":"No kreisās uz labo (LTR)","langDirRtl":"No labās uz kreiso (RTL)","langCode":"Valodas kods","longDescr":"Gara apraksta Hipersaite","cssClass":"Stilu saraksta klases","advisoryTitle":"Konsultatīvs virsraksts","cssStyle":"Stils","ok":"Darīts!","cancel":"Atcelt","close":"Aizvērt","preview":"Priekšskatījums","resize":"Mērogot","generalTab":"Vispārīgi","advancedTab":"Izvērstais","validateNumberFailed":"Šī vērtība nav skaitlis","confirmNewPage":"Jebkuras nesaglabātās izmaiņas tiks zaudētas. Vai tiešām vēlaties atvērt jaunu lapu?","confirmCancel":"Daži no uzstādījumiem ir mainīti. Vai tiešām vēlaties aizvērt šo dialogu?","options":"Uzstādījumi","target":"Mērķis","targetNew":"Jauns logs (_blank)","targetTop":"Virsējais logs (_top)","targetSelf":"Tas pats logs (_self)","targetParent":"Avota logs (_parent)","langDirLTR":"Kreisais uz Labo (LTR)","langDirRTL":"Labais uz Kreiso (RTL)","styles":"Stils","cssClasses":"Stilu klases","width":"Platums","height":"Augstums","align":"Nolīdzināt","alignLeft":"Pa kreisi","alignRight":"Pa labi","alignCenter":"Centrēti","alignJustify":"Izlīdzināt malas","alignTop":"Augšā","alignMiddle":"Vertikāli centrēts","alignBottom":"Apakšā","alignNone":"Nekas","invalidValue":"Nekorekta vērtība","invalidHeight":"Augstumam jābūt skaitlim.","invalidWidth":"Platumam jābūt skaitlim","invalidCssLength":"Laukam \"%1\" norādītajai vērtībai jābūt pozitīvam skaitlim ar vai bez korektām CSS mērvienībām (px, %, in, cm, mm, em, ex, pt, vai pc).","invalidHtmlLength":"Laukam \"%1\" norādītajai vērtībai jābūt pozitīvam skaitlim ar vai bez korektām HTML mērvienībām (px vai %).","invalidInlineStyle":"Iekļautajā stilā norādītajai vērtībai jāsastāv no viena vai vairākiem pāriem pēc forma'ta \"nosaukums: vērtība\", atdalītiem ar semikolu.","cssLengthTooltip":"Ievadiet vērtību pikseļos vai skaitli ar derīgu CSS mērvienību (px, %, in, cm, mm, em, ex, pt, vai pc).","unavailable":"%1<span class=\"cke_accessibility\">, nav pieejams</span>","keyboard":{"8":"Backspace","13":"Enter","16":"Shift","17":"Ctrl","18":"Alt","32":"Space","35":"End","36":"Home","46":"Delete","224":"Command"},"keyboardShortcut":"Keyboard shortcut"},"about":{"copy":"Kopēšanas tiesības &copy; $1. Visas tiesības rezervētas.","dlgTitle":"Par CKEditor","help":"Pārbaudiet $1 palīdzībai.","moreInfo":"Informācijai par licenzēšanu apmeklējiet mūsu mājas lapu:","title":"Par CKEditor","userGuide":"CKEditor Lietotāja pamācība"},"basicstyles":{"bold":"Treknināts","italic":"Kursīvs","strike":"Pārsvītrots","subscript":"Apakšrakstā","superscript":"Augšrakstā","underline":"Pasvītrots"},"blockquote":{"toolbar":"Bloka citāts"},"notification":{"closed":"Notification closed."},"button":{"selectedLabel":"%1 (Selected)"},"toolbar":{"toolbarCollapse":"Aizvērt rīkjoslu","toolbarExpand":"Atvērt rīkjoslu","toolbarGroups":{"document":"Dokuments","clipboard":"Starpliktuve/Atcelt","editing":"Labošana","forms":"Formas","basicstyles":"Pamata stili","paragraph":"Paragrāfs","links":"Saites","insert":"Ievietot","styles":"Stili","colors":"Krāsas","tools":"Rīki"},"toolbars":"Redaktora rīkjoslas"},"clipboard":{"copy":"Kopēt","copyError":"Jūsu pārlūkprogrammas drošības iestatījumi nepieļauj redaktoram automātiski veikt kopēšanas darbību. Lūdzu, izmantojiet (Ctrl/Cmd+C), lai veiktu šo darbību.","cut":"Izgriezt","cutError":"Jūsu pārlūkprogrammas drošības iestatījumi nepieļauj redaktoram automātiski veikt izgriezšanas darbību. Lūdzu, izmantojiet (Ctrl/Cmd+X), lai veiktu šo darbību.","paste":"Ielīmēt","pasteNotification":"Your browser doesn't allow you to paste this way. Press %1 to paste."},"contextmenu":{"options":"Uznirstošās izvēlnes uzstādījumi"},"elementspath":{"eleLabel":"Elementa ceļš","eleTitle":"%1 elements"},"format":{"label":"Formāts","panelTitle":"Formāts","tag_address":"Adrese","tag_div":"Rindkopa (DIV)","tag_h1":"Virsraksts 1","tag_h2":"Virsraksts 2","tag_h3":"Virsraksts 3","tag_h4":"Virsraksts 4","tag_h5":"Virsraksts 5","tag_h6":"Virsraksts 6","tag_p":"Normāls teksts","tag_pre":"Formatēts teksts"},"horizontalrule":{"toolbar":"Ievietot horizontālu Atdalītājsvītru"},"image":{"alt":"Alternatīvais teksts","border":"Rāmis","btnUpload":"Nosūtīt serverim","button2Img":"Vai vēlaties pārveidot izvēlēto attēla pogu uz attēla?","hSpace":"Horizontālā telpa","img2Button":"Vai vēlaties pārveidot izvēlēto attēlu uz attēla pogas?","infoTab":"Informācija par attēlu","linkTab":"Hipersaite","lockRatio":"Nemainīga Augstuma/Platuma attiecība","menu":"Attēla īpašības","resetSize":"Atjaunot sākotnējo izmēru","title":"Attēla īpašības","titleButton":"Attēlpogas īpašības","upload":"Augšupielādēt","urlMissing":"Trūkst attēla atrašanās adrese.","vSpace":"Vertikālā telpa","validateBorder":"Apmalei jābūt veselam skaitlim","validateHSpace":"HSpace jābūt veselam skaitlim","validateVSpace":"VSpace jābūt veselam skaitlim"},"indent":{"indent":"Palielināt atkāpi","outdent":"Samazināt atkāpi"},"fakeobjects":{"anchor":"Iezīme","flash":"Flash animācija","hiddenfield":"Slēpts lauks","iframe":"Iframe","unknown":"Nezināms objekts"},"link":{"acccessKey":"Pieejas taustiņš","advanced":"Izvērstais","advisoryContentType":"Konsultatīvs satura tips","advisoryTitle":"Konsultatīvs virsraksts","anchor":{"toolbar":"Ievietot/Labot iezīmi","menu":"Labot iezīmi","title":"Iezīmes uzstādījumi","name":"Iezīmes nosaukums","errorName":"Lūdzu norādiet iezīmes nosaukumu","remove":"Noņemt iezīmi"},"anchorId":"Pēc elementa ID","anchorName":"Pēc iezīmes nosaukuma","charset":"Pievienotā resursa kodējums","cssClasses":"Stilu saraksta klases","download":"Force Download","displayText":"Display Text","emailAddress":"E-pasta adrese","emailBody":"Ziņas saturs","emailSubject":"Ziņas tēma","id":"ID","info":"Hipersaites informācija","langCode":"Valodas kods","langDir":"Valodas lasīšanas virziens","langDirLTR":"No kreisās uz labo (LTR)","langDirRTL":"No labās uz kreiso (RTL)","menu":"Labot hipersaiti","name":"Nosaukums","noAnchors":"(Šajā dokumentā nav iezīmju)","noEmail":"Lūdzu norādi e-pasta adresi","noUrl":"Lūdzu norādi hipersaiti","other":"<cits>","popupDependent":"Atkarīgs (Netscape)","popupFeatures":"Uznirstošā loga nosaukums īpašības","popupFullScreen":"Pilnā ekrānā (IE)","popupLeft":"Kreisā koordināte","popupLocationBar":"Atrašanās vietas josla","popupMenuBar":"Izvēlnes josla","popupResizable":"Mērogojams","popupScrollBars":"Ritjoslas","popupStatusBar":"Statusa josla","popupToolbar":"Rīku josla","popupTop":"Augšējā koordināte","rel":"Relācija","selectAnchor":"Izvēlēties iezīmi","styles":"Stils","tabIndex":"Ciļņu indekss","target":"Mērķis","targetFrame":"<ietvars>","targetFrameName":"Mērķa ietvara nosaukums","targetPopup":"<uznirstošā logā>","targetPopupName":"Uznirstošā loga nosaukums","title":"Hipersaite","toAnchor":"Iezīme šajā lapā","toEmail":"E-pasts","toUrl":"Adrese","toolbar":"Ievietot/Labot hipersaiti","type":"Hipersaites tips","unlink":"Noņemt hipersaiti","upload":"Augšupielādēt"},"list":{"bulletedlist":"Pievienot/Noņemt vienkāršu sarakstu","numberedlist":"Numurēts saraksts"},"magicline":{"title":"Ievietot šeit rindkopu"},"maximize":{"maximize":"Maksimizēt","minimize":"Minimizēt"},"pastetext":{"button":"Ievietot kā vienkāršu tekstu","pasteNotification":"Your browser does not allow you to paste plain text this way. Press %1 to paste."},"pastefromword":{"confirmCleanup":"Teksts, kuru vēlaties ielīmēt, izskatās ir nokopēts no Word. Vai vēlaties to iztīrīt pirms ielīmēšanas?","error":"Iekšējas kļūdas dēļ, neizdevās iztīrīt ielīmētos datus.","title":"Ievietot no Worda","toolbar":"Ievietot no Worda"},"removeformat":{"toolbar":"Noņemt stilus"},"sourcearea":{"toolbar":"HTML kods"},"specialchar":{"options":"Speciālo simbolu uzstādījumi","title":"Ievietot īpašu simbolu","toolbar":"Ievietot speciālo simbolu"},"scayt":{"btn_about":"Par SCAYT","btn_dictionaries":"Vārdnīcas","btn_disable":"Atslēgt SCAYT","btn_enable":"Ieslēgt SCAYT","btn_langs":"Valodas","btn_options":"Uzstādījumi","text_title":"Pārbaudīt gramatiku rakstot"},"stylescombo":{"label":"Stils","panelTitle":"Formatēšanas stili","panelTitle1":"Bloka stili","panelTitle2":"iekļautie stili","panelTitle3":"Objekta stili"},"table":{"border":"Rāmja izmērs","caption":"Leģenda","cell":{"menu":"Šūna","insertBefore":"Pievienot šūnu pirms","insertAfter":"Pievienot šūnu pēc","deleteCell":"Dzēst rūtiņas","merge":"Apvienot rūtiņas","mergeRight":"Apvieno pa labi","mergeDown":"Apvienot uz leju","splitHorizontal":"Sadalīt šūnu horizontāli","splitVertical":"Sadalīt šūnu vertikāli","title":"Šūnas uzstādījumi","cellType":"Šūnas tips","rowSpan":"Apvienotas rindas","colSpan":"Apvienotas kolonas","wordWrap":"Vārdu pārnese","hAlign":"Horizontālais novietojums","vAlign":"Vertikālais novietojums","alignBaseline":"Pamatrinda","bgColor":"Fona krāsa","borderColor":"Rāmja krāsa","data":"Dati","header":"Virsraksts","yes":"Jā","no":"Nē","invalidWidth":"Šūnas platumam jābūt skaitlim","invalidHeight":"Šūnas augstumam jābūt skaitlim","invalidRowSpan":"Apvienojamo rindu skaitam jābūt veselam skaitlim","invalidColSpan":"Apvienojamo kolonu skaitam jābūt veselam skaitlim","chooseColor":"Izvēlēties"},"cellPad":"Rūtiņu nobīde","cellSpace":"Rūtiņu atstatums","column":{"menu":"Kolonna","insertBefore":"Ievietot kolonu pirms","insertAfter":"Ievieto kolonu pēc","deleteColumn":"Dzēst kolonnas"},"columns":"Kolonnas","deleteTable":"Dzēst tabulu","headers":"Virsraksti","headersBoth":"Abi","headersColumn":"Pirmā kolona","headersNone":"Nekas","headersRow":"Pirmā rinda","invalidBorder":"Rāmju izmēram jābūt skaitlim","invalidCellPadding":"Šūnu atkāpēm jābūt pozitīvam skaitlim","invalidCellSpacing":"Šūnu atstarpēm jābūt pozitīvam skaitlim","invalidCols":"Kolonu skaitam jābūt lielākam par 0","invalidHeight":"Tabulas augstumam jābūt skaitlim","invalidRows":"Rindu skaitam jābūt lielākam par 0","invalidWidth":"Tabulas platumam jābūt skaitlim","menu":"Tabulas īpašības","row":{"menu":"Rinda","insertBefore":"Ievietot rindu pirms","insertAfter":"Ievietot rindu pēc","deleteRow":"Dzēst rindas"},"rows":"Rindas","summary":"Anotācija","title":"Tabulas īpašības","toolbar":"Tabula","widthPc":"procentuāli","widthPx":"pikseļos","widthUnit":"platuma mērvienība"},"undo":{"redo":"Atkārtot","undo":"Atcelt"},"wsc":{"btnIgnore":"Ignorēt","btnIgnoreAll":"Ignorēt visu","btnReplace":"Aizvietot","btnReplaceAll":"Aizvietot visu","btnUndo":"Atcelt","changeTo":"Nomainīt uz","errorLoading":"Kļūda ielādējot aplikācijas servisa adresi: %s.","ieSpellDownload":"Pareizrakstības pārbaudītājs nav pievienots. Vai vēlaties to lejupielādēt tagad?","manyChanges":"Pareizrakstības pārbaude pabeigta: %1 vārdi tika mainīti","noChanges":"Pareizrakstības pārbaude pabeigta: nekas netika labots","noMispell":"Pareizrakstības pārbaude pabeigta: kļūdas netika atrastas","noSuggestions":"- Nav ieteikumu -","notAvailable":"Atvainojiet, bet serviss šobrīd nav pieejams.","notInDic":"Netika atrasts vārdnīcā","oneChange":"Pareizrakstības pārbaude pabeigta: 1 vārds izmainīts","progress":"Notiek pareizrakstības pārbaude...","title":"Pārbaudīt gramatiku","toolbar":"Pareizrakstības pārbaude"}}; \ No newline at end of file diff --git a/admin/plugins/ckeditor/lang/mk.js b/admin/plugins/ckeditor/lang/mk.js deleted file mode 100644 index 01f61ac..0000000 --- a/admin/plugins/ckeditor/lang/mk.js +++ /dev/null @@ -1,5 +0,0 @@ -/* -Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. -For licensing, see LICENSE.md or http://ckeditor.com/license -*/ -CKEDITOR.lang['mk']={"editor":"Rich Text Editor","editorPanel":"Rich Text Editor panel","common":{"editorHelp":"Притисни ALT 0 за помош","browseServer":"Пребарај низ серверот","url":"URL","protocol":"Протокол","upload":"Прикачи","uploadSubmit":"Прикачи на сервер","image":"Слика","flash":"Flash","form":"Form","checkbox":"Checkbox","radio":"Radio Button","textField":"Поле за текст","textarea":"Големо поле за текст","hiddenField":"Скриено поле","button":"Button","select":"Selection Field","imageButton":"Копче-слика","notSet":"<not set>","id":"Id","name":"Name","langDir":"Насока на јазик","langDirLtr":"Лево кон десно","langDirRtl":"Десно кон лево","langCode":"Код на јазик","longDescr":"Long Description URL","cssClass":"Stylesheet Classes","advisoryTitle":"Advisory Title","cssStyle":"Стил","ok":"OK","cancel":"Cancel","close":"Close","preview":"Preview","resize":"Resize","generalTab":"Општо","advancedTab":"Advanced","validateNumberFailed":"This value is not a number.","confirmNewPage":"Any unsaved changes to this content will be lost. Are you sure you want to load new page?","confirmCancel":"You have changed some options. Are you sure you want to close the dialog window?","options":"Опции","target":"Target","targetNew":"Нов прозорец (_blank)","targetTop":"Најгорниот прозорец (_top)","targetSelf":"Истиот прозорец (_self)","targetParent":"Прозорец-родител (_parent)","langDirLTR":"Лево кон десно","langDirRTL":"Десно кон лево","styles":"Стил","cssClasses":"Stylesheet Classes","width":"Широчина","height":"Височина","align":"Alignment","alignLeft":"Лево","alignRight":"Десно","alignCenter":"Во средина","alignJustify":"Justify","alignTop":"Горе","alignMiddle":"Средина","alignBottom":"Доле","alignNone":"Никое","invalidValue":"Невалидна вредност","invalidHeight":"Височината мора да биде број.","invalidWidth":"Широчината мора да биде број.","invalidCssLength":"Value specified for the \"%1\" field must be a positive number with or without a valid CSS measurement unit (px, %, in, cm, mm, em, ex, pt, or pc).","invalidHtmlLength":"Value specified for the \"%1\" field must be a positive number with or without a valid HTML measurement unit (px or %).","invalidInlineStyle":"Value specified for the inline style must consist of one or more tuples with the format of \"name : value\", separated by semi-colons.","cssLengthTooltip":"Enter a number for a value in pixels or a number with a valid CSS unit (px, %, in, cm, mm, em, ex, pt, or pc).","unavailable":"%1<span class=\"cke_accessibility\">, unavailable</span>","keyboard":{"8":"Backspace","13":"Enter","16":"Shift","17":"Ctrl","18":"Alt","32":"Space","35":"End","36":"Home","46":"Delete","224":"Command"},"keyboardShortcut":"Keyboard shortcut"},"about":{"copy":"Авторски права &copy; $1. Сите права се задржани.","dlgTitle":"За CKEditor","help":"Отворете $1 за помош.","moreInfo":"За информации околу лиценцата, ве молиме посетете го нашиот веб-сајт: ","title":"За CKEditor","userGuide":"CKEditor упатство за корисници"},"basicstyles":{"bold":"Здебелено","italic":"Накривено","strike":"Прецртано","subscript":"Долен индекс","superscript":"Горен индекс","underline":"Подвлечено"},"blockquote":{"toolbar":"Одвоен цитат"},"notification":{"closed":"Notification closed."},"button":{"selectedLabel":"%1 (Selected)"},"toolbar":{"toolbarCollapse":"Collapse Toolbar","toolbarExpand":"Expand Toolbar","toolbarGroups":{"document":"Document","clipboard":"Clipboard/Undo","editing":"Editing","forms":"Forms","basicstyles":"Basic Styles","paragraph":"Paragraph","links":"Links","insert":"Insert","styles":"Styles","colors":"Colors","tools":"Tools"},"toolbars":"Editor toolbars"},"clipboard":{"copy":"Копирај (Copy)","copyError":"Опциите за безбедност на вашиот прелистувач не дозволуваат уредувачот автоматски да изврши копирање. Ве молиме употребете ја тастатурата. (Ctrl/Cmd+C)","cut":"Исечи (Cut)","cutError":"Опциите за безбедност на вашиот прелистувач не дозволуваат уредувачот автоматски да изврши сечење. Ве молиме употребете ја тастатурата. (Ctrl/Cmd+C)","paste":"Залепи (Paste)","pasteNotification":"Your browser doesn't allow you to paste this way. Press %1 to paste."},"contextmenu":{"options":"Контекст-мени опции"},"elementspath":{"eleLabel":"Elements path","eleTitle":"%1 element"},"format":{"label":"Format","panelTitle":"Paragraph Format","tag_address":"Address","tag_div":"Normal (DIV)","tag_h1":"Heading 1","tag_h2":"Heading 2","tag_h3":"Heading 3","tag_h4":"Heading 4","tag_h5":"Heading 5","tag_h6":"Heading 6","tag_p":"Normal","tag_pre":"Formatted"},"horizontalrule":{"toolbar":"Insert Horizontal Line"},"image":{"alt":"Алтернативен текст","border":"Раб","btnUpload":"Прикачи на сервер","button2Img":"Дали сакате да направите сликата-копче да биде само слика?","hSpace":"Хоризонтален простор","img2Button":"Дали сакате да ја претворите сликата во слика-копче?","infoTab":"Информации за сликата","linkTab":"Врска","lockRatio":"Зачувај пропорција","menu":"Својства на сликата","resetSize":"Ресетирај големина","title":"Својства на сликата","titleButton":"Својства на копче-сликата","upload":"Прикачи","urlMissing":"Недостасува URL-то на сликата.","vSpace":"Вертикален простор","validateBorder":"Работ мора да биде цел број.","validateHSpace":"Хор. простор мора да биде цел број.","validateVSpace":"Верт. простор мора да биде цел број."},"indent":{"indent":"Increase Indent","outdent":"Decrease Indent"},"fakeobjects":{"anchor":"Anchor","flash":"Flash Animation","hiddenfield":"Скриено поле","iframe":"IFrame","unknown":"Unknown Object"},"link":{"acccessKey":"Access Key","advanced":"Advanced","advisoryContentType":"Advisory Content Type","advisoryTitle":"Advisory Title","anchor":{"toolbar":"Anchor","menu":"Edit Anchor","title":"Anchor Properties","name":"Anchor Name","errorName":"Please type the anchor name","remove":"Remove Anchor"},"anchorId":"By Element Id","anchorName":"By Anchor Name","charset":"Linked Resource Charset","cssClasses":"Stylesheet Classes","download":"Force Download","displayText":"Display Text","emailAddress":"E-Mail Address","emailBody":"Message Body","emailSubject":"Message Subject","id":"Id","info":"Link Info","langCode":"Код на јазик","langDir":"Насока на јазик","langDirLTR":"Лево кон десно","langDirRTL":"Десно кон лево","menu":"Edit Link","name":"Name","noAnchors":"(No anchors available in the document)","noEmail":"Please type the e-mail address","noUrl":"Please type the link URL","other":"<other>","popupDependent":"Dependent (Netscape)","popupFeatures":"Popup Window Features","popupFullScreen":"Full Screen (IE)","popupLeft":"Left Position","popupLocationBar":"Location Bar","popupMenuBar":"Menu Bar","popupResizable":"Resizable","popupScrollBars":"Scroll Bars","popupStatusBar":"Status Bar","popupToolbar":"Toolbar","popupTop":"Top Position","rel":"Relationship","selectAnchor":"Select an Anchor","styles":"Стил","tabIndex":"Tab Index","target":"Target","targetFrame":"<frame>","targetFrameName":"Target Frame Name","targetPopup":"<popup window>","targetPopupName":"Popup Window Name","title":"Врска","toAnchor":"Link to anchor in the text","toEmail":"E-mail","toUrl":"URL","toolbar":"Врска","type":"Link Type","unlink":"Unlink","upload":"Прикачи"},"list":{"bulletedlist":"Insert/Remove Bulleted List","numberedlist":"Insert/Remove Numbered List"},"magicline":{"title":"Insert paragraph here"},"maximize":{"maximize":"Maximize","minimize":"Minimize"},"pastetext":{"button":"Paste as plain text","pasteNotification":"Your browser does not allow you to paste plain text this way. Press %1 to paste."},"pastefromword":{"confirmCleanup":"The text you want to paste seems to be copied from Word. Do you want to clean it before pasting?","error":"It was not possible to clean up the pasted data due to an internal error","title":"Paste from Word","toolbar":"Paste from Word"},"removeformat":{"toolbar":"Remove Format"},"sourcearea":{"toolbar":"Source"},"specialchar":{"options":"Special Character Options","title":"Select Special Character","toolbar":"Insert Special Character"},"scayt":{"btn_about":"About SCAYT","btn_dictionaries":"Dictionaries","btn_disable":"Disable SCAYT","btn_enable":"Enable SCAYT","btn_langs":"Languages","btn_options":"Options","text_title":"Spell Check As You Type"},"stylescombo":{"label":"Styles","panelTitle":"Formatting Styles","panelTitle1":"Block Styles","panelTitle2":"Inline Styles","panelTitle3":"Object Styles"},"table":{"border":"Border size","caption":"Caption","cell":{"menu":"Cell","insertBefore":"Insert Cell Before","insertAfter":"Insert Cell After","deleteCell":"Delete Cells","merge":"Merge Cells","mergeRight":"Merge Right","mergeDown":"Merge Down","splitHorizontal":"Split Cell Horizontally","splitVertical":"Split Cell Vertically","title":"Cell Properties","cellType":"Cell Type","rowSpan":"Rows Span","colSpan":"Columns Span","wordWrap":"Word Wrap","hAlign":"Horizontal Alignment","vAlign":"Vertical Alignment","alignBaseline":"Baseline","bgColor":"Background Color","borderColor":"Border Color","data":"Data","header":"Header","yes":"Yes","no":"No","invalidWidth":"Cell width must be a number.","invalidHeight":"Cell height must be a number.","invalidRowSpan":"Rows span must be a whole number.","invalidColSpan":"Columns span must be a whole number.","chooseColor":"Choose"},"cellPad":"Cell padding","cellSpace":"Cell spacing","column":{"menu":"Column","insertBefore":"Insert Column Before","insertAfter":"Insert Column After","deleteColumn":"Delete Columns"},"columns":"Columns","deleteTable":"Delete Table","headers":"Headers","headersBoth":"Both","headersColumn":"First column","headersNone":"None","headersRow":"First Row","invalidBorder":"Border size must be a number.","invalidCellPadding":"Cell padding must be a positive number.","invalidCellSpacing":"Cell spacing must be a positive number.","invalidCols":"Number of columns must be a number greater than 0.","invalidHeight":"Table height must be a number.","invalidRows":"Number of rows must be a number greater than 0.","invalidWidth":"Table width must be a number.","menu":"Table Properties","row":{"menu":"Row","insertBefore":"Insert Row Before","insertAfter":"Insert Row After","deleteRow":"Delete Rows"},"rows":"Rows","summary":"Summary","title":"Table Properties","toolbar":"Table","widthPc":"percent","widthPx":"pixels","widthUnit":"width unit"},"undo":{"redo":"Redo","undo":"Undo"},"wsc":{"btnIgnore":"Ignore","btnIgnoreAll":"Ignore All","btnReplace":"Replace","btnReplaceAll":"Replace All","btnUndo":"Undo","changeTo":"Change to","errorLoading":"Error loading application service host: %s.","ieSpellDownload":"Spell checker not installed. Do you want to download it now?","manyChanges":"Spell check complete: %1 words changed","noChanges":"Spell check complete: No words changed","noMispell":"Spell check complete: No misspellings found","noSuggestions":"- No suggestions -","notAvailable":"Sorry, but service is unavailable now.","notInDic":"Not in dictionary","oneChange":"Spell check complete: One word changed","progress":"Spell check in progress...","title":"Spell Checker","toolbar":"Check Spelling"}}; \ No newline at end of file diff --git a/admin/plugins/ckeditor/lang/mn.js b/admin/plugins/ckeditor/lang/mn.js deleted file mode 100644 index 54466f5..0000000 --- a/admin/plugins/ckeditor/lang/mn.js +++ /dev/null @@ -1,5 +0,0 @@ -/* -Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. -For licensing, see LICENSE.md or http://ckeditor.com/license -*/ -CKEDITOR.lang['mn']={"editor":"Хэлбэрт бичвэр боловсруулагч","editorPanel":"Rich Text Editor panel","common":{"editorHelp":"Press ALT 0 for help","browseServer":"Үйлчлэгч тооцоолуур (сервэр)-ийг үзэх","url":"цахим хуудасны хаяг (URL)","protocol":"Протокол","upload":"Илгээж ачаалах","uploadSubmit":"Үүнийг үйлчлэгч тооцоолуур (сервер) лүү илгээх","image":"Зураг","flash":"Флаш хөдөлгөөнтэй зураг","form":"Маягт","checkbox":"Тэмдэглээний нүд","radio":"Радио товчлуур","textField":"Бичвэрийн талбар","textarea":"Бичвэрийн зай","hiddenField":"Далд талбар","button":"Товчлуур","select":"Сонголтын талбар","imageButton":"Зургий товчуур","notSet":"<тохируулаагүй>","id":"Id (техникийн нэр)","name":"Нэр","langDir":"Хэлний чиглэл","langDirLtr":"Зүүнээс баруун (LTR)","langDirRtl":"Баруунаас зүүн (RTL)","langCode":"Хэлний код","longDescr":"Урт тайлбарын вэб хаяг","cssClass":"Хэлбэрийн хуудасны ангиуд","advisoryTitle":"Зөвлөх гарчиг","cssStyle":"Загвар","ok":"За","cancel":"Болих","close":"Хаах","preview":"Урьдчилан харах","resize":"Resize","generalTab":"Ерөнхий","advancedTab":"Гүнзгий","validateNumberFailed":"This value is not a number.","confirmNewPage":"Any unsaved changes to this content will be lost. Are you sure you want to load new page?","confirmCancel":"You have changed some options. Are you sure you want to close the dialog window?","options":"Сонголт","target":"Бай","targetNew":"New Window (_blank)","targetTop":"Topmost Window (_top)","targetSelf":"Same Window (_self)","targetParent":"Parent Window (_parent)","langDirLTR":"Зүүн талаас баруун тийшээ (LTR)","langDirRTL":"Баруун талаас зүүн тийшээ (RTL)","styles":"Загвар","cssClasses":"Хэлбэрийн хуудасны ангиуд","width":"Өргөн","height":"Өндөр","align":"Эгнээ","alignLeft":"Зүүн","alignRight":"Баруун","alignCenter":"Төвд","alignJustify":"Тэгшлэх","alignTop":"Дээд талд","alignMiddle":"Дунд","alignBottom":"Доод талд","alignNone":"None","invalidValue":"Invalid value.","invalidHeight":"Өндөр нь тоо байх ёстой.","invalidWidth":"Өргөн нь тоо байх ёстой.","invalidCssLength":"Value specified for the \"%1\" field must be a positive number with or without a valid CSS measurement unit (px, %, in, cm, mm, em, ex, pt, or pc).","invalidHtmlLength":"Value specified for the \"%1\" field must be a positive number with or without a valid HTML measurement unit (px or %).","invalidInlineStyle":"Value specified for the inline style must consist of one or more tuples with the format of \"name : value\", separated by semi-colons.","cssLengthTooltip":"Enter a number for a value in pixels or a number with a valid CSS unit (px, %, in, cm, mm, em, ex, pt, or pc).","unavailable":"%1<span class=\"cke_accessibility\">, unavailable</span>","keyboard":{"8":"Backspace","13":"Enter","16":"Shift","17":"Ctrl","18":"Alt","32":"Space","35":"End","36":"Home","46":"Delete","224":"Command"},"keyboardShortcut":"Keyboard shortcut"},"about":{"copy":"Copyright &copy; $1. All rights reserved.","dlgTitle":"About CKEditor","help":"Check $1 for help.","moreInfo":"For licensing information please visit our web site:","title":"About CKEditor","userGuide":"CKEditor User's Guide"},"basicstyles":{"bold":"Тод бүдүүн","italic":"Налуу","strike":"Дундуур нь зураастай болгох","subscript":"Суурь болгох","superscript":"Зэрэг болгох","underline":"Доогуур нь зураастай болгох"},"blockquote":{"toolbar":"Ишлэл хэсэг"},"notification":{"closed":"Notification closed."},"button":{"selectedLabel":"%1 (Selected)"},"toolbar":{"toolbarCollapse":"Collapse Toolbar","toolbarExpand":"Expand Toolbar","toolbarGroups":{"document":"Document","clipboard":"Clipboard/Undo","editing":"Editing","forms":"Forms","basicstyles":"Basic Styles","paragraph":"Paragraph","links":"Холбоосууд","insert":"Оруулах","styles":"Загварууд","colors":"Онгөнүүд","tools":"Хэрэгслүүд"},"toolbars":"Болосруулагчийн хэрэгслийн самбар"},"clipboard":{"copy":"Хуулах","copyError":"Таны browser-ын хамгаалалтын тохиргоо editor-д автоматаар хуулах үйлдэлийг зөвшөөрөхгүй байна. (Ctrl/Cmd+C) товчны хослолыг ашиглана уу.","cut":"Хайчлах","cutError":"Таны browser-ын хамгаалалтын тохиргоо editor-д автоматаар хайчлах үйлдэлийг зөвшөөрөхгүй байна. (Ctrl/Cmd+X) товчны хослолыг ашиглана уу.","paste":"Буулгах","pasteNotification":"Your browser doesn't allow you to paste this way. Press %1 to paste."},"contextmenu":{"options":"Context Menu Options"},"elementspath":{"eleLabel":"Elements path","eleTitle":"%1 element"},"format":{"label":"Параргафын загвар","panelTitle":"Параргафын загвар","tag_address":"Хаяг","tag_div":"Paragraph (DIV)","tag_h1":"Гарчиг 1","tag_h2":"Гарчиг 2","tag_h3":"Гарчиг 3","tag_h4":"Гарчиг 4","tag_h5":"Гарчиг 5","tag_h6":"Гарчиг 6","tag_p":"Хэвийн","tag_pre":"Formatted"},"horizontalrule":{"toolbar":"Хөндлөн зураас оруулах"},"image":{"alt":"Зургийг орлох бичвэр","border":"Хүрээ","btnUpload":"Үүнийг сервэррүү илгээ","button2Img":"Do you want to transform the selected image button on a simple image?","hSpace":"Хөндлөн зай","img2Button":"Do you want to transform the selected image on a image button?","infoTab":"Зурагны мэдээлэл","linkTab":"Холбоос","lockRatio":"Радио түгжих","menu":"Зураг","resetSize":"хэмжээ дахин оноох","title":"Зураг","titleButton":"Зурган товчны шинж чанар","upload":"Хуулах","urlMissing":"Зургийн эх сурвалжийн хаяг (URL) байхгүй байна.","vSpace":"Босоо зай","validateBorder":"Border must be a whole number.","validateHSpace":"HSpace must be a whole number.","validateVSpace":"VSpace must be a whole number."},"indent":{"indent":"Догол мөр хасах","outdent":"Догол мөр нэмэх"},"fakeobjects":{"anchor":"Зангуу","flash":"Flash Animation","hiddenfield":"Нууц талбар","iframe":"IFrame","unknown":"Unknown Object"},"link":{"acccessKey":"Холбох түлхүүр","advanced":"Нэмэлт","advisoryContentType":"Зөвлөлдөх төрлийн агуулга","advisoryTitle":"Зөвлөлдөх гарчиг","anchor":{"toolbar":"Зангуу","menu":"Зангууг болосруулах","title":"Зангуугийн шинж чанар","name":"Зангуугийн нэр","errorName":"Зангуугийн нэрийг оруулна уу","remove":"Зангууг устгах"},"anchorId":"Элемэнтйн Id нэрээр","anchorName":"Зангуугийн нэрээр","charset":"Тэмдэгт оноох нөөцөд холбогдсон","cssClasses":"Stylesheet классууд","download":"Force Download","displayText":"Display Text","emailAddress":"Э-шуудангийн хаяг","emailBody":"Зурвасны их бие","emailSubject":"Зурвасны гарчиг","id":"Id","info":"Холбоосын тухай мэдээлэл","langCode":"Хэлний код","langDir":"Хэлний чиглэл","langDirLTR":"Зүүнээс баруун (LTR)","langDirRTL":"Баруунаас зүүн (RTL)","menu":"Холбоос засварлах","name":"Нэр","noAnchors":"(Баримт бичиг зангуугүй байна)","noEmail":"Э-шуудангий хаягаа шивнэ үү","noUrl":"Холбоосны URL хаягийг шивнэ үү","other":"<other>","popupDependent":"Хамаатай (Netscape)","popupFeatures":"Popup цонхны онцлог","popupFullScreen":"Цонх дүүргэх (Internet Explorer)","popupLeft":"Зүүн байрлал","popupLocationBar":"Location хэсэг","popupMenuBar":"Цэсний самбар","popupResizable":"Resizable","popupScrollBars":"Скрол хэсэгүүд","popupStatusBar":"Статус хэсэг","popupToolbar":"Багажны самбар","popupTop":"Дээд байрлал","rel":"Relationship","selectAnchor":"Нэг зангууг сонгоно уу","styles":"Загвар","tabIndex":"Tab индекс","target":"Байрлал","targetFrame":"<Агуулах хүрээ>","targetFrameName":"Очих фремын нэр","targetPopup":"<popup цонх>","targetPopupName":"Popup цонхны нэр","title":"Холбоос","toAnchor":"Энэ бичвэр дэх зангуу руу очих холбоос","toEmail":"Э-захиа","toUrl":"цахим хуудасны хаяг (URL)","toolbar":"Холбоос","type":"Линкийн төрөл","unlink":"Холбоос авч хаях","upload":"Хуулах"},"list":{"bulletedlist":"Цэгтэй жагсаалт","numberedlist":"Дугаарлагдсан жагсаалт"},"magicline":{"title":"Insert paragraph here"},"maximize":{"maximize":"Дэлгэц дүүргэх","minimize":"Цонхыг багсгаж харуулах"},"pastetext":{"button":"Энгийн бичвэрээр буулгах","pasteNotification":"Your browser does not allow you to paste plain text this way. Press %1 to paste."},"pastefromword":{"confirmCleanup":"The text you want to paste seems to be copied from Word. Do you want to clean it before pasting?","error":"It was not possible to clean up the pasted data due to an internal error","title":"Word-оос буулгах","toolbar":"Word-оос буулгах"},"removeformat":{"toolbar":"Параргафын загварыг авч хаях"},"sourcearea":{"toolbar":"Код"},"specialchar":{"options":"Special Character Options","title":"Онцгой тэмдэгт сонгох","toolbar":"Онцгой тэмдэгт оруулах"},"scayt":{"btn_about":"About SCAYT","btn_dictionaries":"Толь бичгүүд","btn_disable":"Disable SCAYT","btn_enable":"Enable SCAYT","btn_langs":"Хэлүүд","btn_options":"Сонголт","text_title":"Spell Check As You Type"},"stylescombo":{"label":"Загвар","panelTitle":"Загвар хэлбэржүүлэх","panelTitle1":"Block Styles","panelTitle2":"Inline Styles","panelTitle3":"Object Styles"},"table":{"border":"Хүрээний хэмжээ","caption":"Тайлбар","cell":{"menu":"Нүх/зай","insertBefore":"Нүх/зай өмнө нь оруулах","insertAfter":"Нүх/зай дараа нь оруулах","deleteCell":"Нүх устгах","merge":"Нүх нэгтэх","mergeRight":"Баруун тийш нэгтгэх","mergeDown":"Доош нэгтгэх","splitHorizontal":"Нүх/зайг босоогоор нь тусгаарлах","splitVertical":"Нүх/зайг хөндлөнгөөр нь тусгаарлах","title":"Cell Properties","cellType":"Cell Type","rowSpan":"Rows Span","colSpan":"Columns Span","wordWrap":"Word Wrap","hAlign":"Хэвтээд тэгшлэх арга","vAlign":"Босоод тэгшлэх арга","alignBaseline":"Baseline","bgColor":"Дэвсгэр өнгө","borderColor":"Хүрээний өнгө","data":"Data","header":"Header","yes":"Тийм","no":"Үгүй","invalidWidth":"Нүдний өргөн нь тоо байх ёстой.","invalidHeight":"Cell height must be a number.","invalidRowSpan":"Rows span must be a whole number.","invalidColSpan":"Columns span must be a whole number.","chooseColor":"Сонгох"},"cellPad":"Нүх доторлох(padding)","cellSpace":"Нүх хоорондын зай (spacing)","column":{"menu":"Багана","insertBefore":"Багана өмнө нь оруулах","insertAfter":"Багана дараа нь оруулах","deleteColumn":"Багана устгах"},"columns":"Багана","deleteTable":"Хүснэгт устгах","headers":"Headers","headersBoth":"Both","headersColumn":"First column","headersNone":"None","headersRow":"First Row","invalidBorder":"Border size must be a number.","invalidCellPadding":"Cell padding must be a positive number.","invalidCellSpacing":"Cell spacing must be a positive number.","invalidCols":"Number of columns must be a number greater than 0.","invalidHeight":"Table height must be a number.","invalidRows":"Number of rows must be a number greater than 0.","invalidWidth":"Хүснэгтийн өргөн нь тоо байх ёстой.","menu":"Хүснэгт","row":{"menu":"Мөр","insertBefore":"Мөр өмнө нь оруулах","insertAfter":"Мөр дараа нь оруулах","deleteRow":"Мөр устгах"},"rows":"Мөр","summary":"Тайлбар","title":"Хүснэгт","toolbar":"Хүснэгт","widthPc":"хувь","widthPx":"цэг","widthUnit":"өргөний нэгж"},"undo":{"redo":"Өмнөх үйлдлээ сэргээх","undo":"Хүчингүй болгох"},"wsc":{"btnIgnore":"Зөвшөөрөх","btnIgnoreAll":"Бүгдийг зөвшөөрөх","btnReplace":"Солих","btnReplaceAll":"Бүгдийг Дарж бичих","btnUndo":"Буцаах","changeTo":"Өөрчлөх","errorLoading":"Error loading application service host: %s.","ieSpellDownload":"Дүрэм шалгагч суугаагүй байна. Татаж авахыг хүсч байна уу?","manyChanges":"Дүрэм шалгаад дууссан: %1 үг өөрчлөгдсөн","noChanges":"Дүрэм шалгаад дууссан: үг өөрчлөгдөөгүй","noMispell":"Дүрэм шалгаад дууссан: Алдаа олдсонгүй","noSuggestions":"- Тайлбаргүй -","notAvailable":"Sorry, but service is unavailable now.","notInDic":"Толь бичиггүй","oneChange":"Дүрэм шалгаад дууссан: 1 үг өөрчлөгдсөн","progress":"Дүрэм шалгаж байгаа үйл явц...","title":"Spell Checker","toolbar":"Үгийн дүрэх шалгах"}}; \ No newline at end of file diff --git a/admin/plugins/ckeditor/lang/ms.js b/admin/plugins/ckeditor/lang/ms.js deleted file mode 100644 index 22039fd..0000000 --- a/admin/plugins/ckeditor/lang/ms.js +++ /dev/null @@ -1,5 +0,0 @@ -/* -Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. -For licensing, see LICENSE.md or http://ckeditor.com/license -*/ -CKEDITOR.lang['ms']={"editor":"Rich Text Editor","editorPanel":"Rich Text Editor panel","common":{"editorHelp":"Press ALT 0 for help","browseServer":"Browse Server","url":"URL","protocol":"Protokol","upload":"Muat Naik","uploadSubmit":"Hantar ke Server","image":"Gambar","flash":"Flash","form":"Borang","checkbox":"Checkbox","radio":"Butang Radio","textField":"Text Field","textarea":"Textarea","hiddenField":"Field Tersembunyi","button":"Butang","select":"Field Pilihan","imageButton":"Butang Bergambar","notSet":"<tidak di set>","id":"Id","name":"Nama","langDir":"Arah Tulisan","langDirLtr":"Kiri ke Kanan (LTR)","langDirRtl":"Kanan ke Kiri (RTL)","langCode":"Kod Bahasa","longDescr":"Butiran Panjang URL","cssClass":"Kelas-kelas Stylesheet","advisoryTitle":"Tajuk Makluman","cssStyle":"Stail","ok":"OK","cancel":"Batal","close":"Tutup","preview":"Prebiu","resize":"Resize","generalTab":"Umum","advancedTab":"Advanced","validateNumberFailed":"This value is not a number.","confirmNewPage":"Any unsaved changes to this content will be lost. Are you sure you want to load new page?","confirmCancel":"You have changed some options. Are you sure you want to close the dialog window?","options":"Options","target":"Sasaran","targetNew":"New Window (_blank)","targetTop":"Topmost Window (_top)","targetSelf":"Same Window (_self)","targetParent":"Parent Window (_parent)","langDirLTR":"Kiri ke Kanan (LTR)","langDirRTL":"Kanan ke Kiri (RTL)","styles":"Stail","cssClasses":"Kelas-kelas Stylesheet","width":"Lebar","height":"Tinggi","align":"Jajaran","alignLeft":"Kiri","alignRight":"Kanan","alignCenter":"Tengah","alignJustify":"Jajaran Blok","alignTop":"Atas","alignMiddle":"Pertengahan","alignBottom":"Bawah","alignNone":"None","invalidValue":"Nilai tidak sah.","invalidHeight":"Height must be a number.","invalidWidth":"Width must be a number.","invalidCssLength":"Value specified for the \"%1\" field must be a positive number with or without a valid CSS measurement unit (px, %, in, cm, mm, em, ex, pt, or pc).","invalidHtmlLength":"Value specified for the \"%1\" field must be a positive number with or without a valid HTML measurement unit (px or %).","invalidInlineStyle":"Value specified for the inline style must consist of one or more tuples with the format of \"name : value\", separated by semi-colons.","cssLengthTooltip":"Enter a number for a value in pixels or a number with a valid CSS unit (px, %, in, cm, mm, em, ex, pt, or pc).","unavailable":"%1<span class=\"cke_accessibility\">, unavailable</span>","keyboard":{"8":"Backspace","13":"Enter","16":"Shift","17":"Ctrl","18":"Alt","32":"Space","35":"End","36":"Home","46":"Delete","224":"Command"},"keyboardShortcut":"Keyboard shortcut"},"about":{"copy":"Copyright &copy; $1. All rights reserved.","dlgTitle":"About CKEditor","help":"Check $1 for help.","moreInfo":"For licensing information please visit our web site:","title":"About CKEditor","userGuide":"CKEditor User's Guide"},"basicstyles":{"bold":"Bold","italic":"Italic","strike":"Strike Through","subscript":"Subscript","superscript":"Superscript","underline":"Underline"},"blockquote":{"toolbar":"Block Quote"},"notification":{"closed":"Notification closed."},"button":{"selectedLabel":"%1 (Selected)"},"toolbar":{"toolbarCollapse":"Collapse Toolbar","toolbarExpand":"Expand Toolbar","toolbarGroups":{"document":"Document","clipboard":"Clipboard/Undo","editing":"Editing","forms":"Forms","basicstyles":"Basic Styles","paragraph":"Paragraph","links":"Links","insert":"Insert","styles":"Styles","colors":"Colors","tools":"Tools"},"toolbars":"Editor toolbars"},"clipboard":{"copy":"Salin","copyError":"Keselamatan perisian browser anda tidak membenarkan operasi salinan text/imej. Sila gunakan papan kekunci (Ctrl/Cmd+C).","cut":"Potong","cutError":"Keselamatan perisian browser anda tidak membenarkan operasi suntingan text/imej. Sila gunakan papan kekunci (Ctrl/Cmd+X).","paste":"Tampal","pasteNotification":"Your browser doesn't allow you to paste this way. Press %1 to paste."},"contextmenu":{"options":"Context Menu Options"},"elementspath":{"eleLabel":"Elements path","eleTitle":"%1 element"},"format":{"label":"Format","panelTitle":"Format","tag_address":"Alamat","tag_div":"Perenggan (DIV)","tag_h1":"Heading 1","tag_h2":"Heading 2","tag_h3":"Heading 3","tag_h4":"Heading 4","tag_h5":"Heading 5","tag_h6":"Heading 6","tag_p":"Normal","tag_pre":"Telah Diformat"},"horizontalrule":{"toolbar":"Masukkan Garisan Membujur"},"image":{"alt":"Text Alternatif","border":"Border","btnUpload":"Hantar ke Server","button2Img":"Do you want to transform the selected image button on a simple image?","hSpace":"Ruang Melintang","img2Button":"Do you want to transform the selected image on a image button?","infoTab":"Info Imej","linkTab":"Sambungan","lockRatio":"Tetapkan Nisbah","menu":"Ciri-ciri Imej","resetSize":"Saiz Set Semula","title":"Ciri-ciri Imej","titleButton":"Ciri-ciri Butang Bergambar","upload":"Muat Naik","urlMissing":"Image source URL is missing.","vSpace":"Ruang Menegak","validateBorder":"Border must be a whole number.","validateHSpace":"HSpace must be a whole number.","validateVSpace":"VSpace must be a whole number."},"indent":{"indent":"Tambahkan Inden","outdent":"Kurangkan Inden"},"fakeobjects":{"anchor":"Anchor","flash":"Flash Animation","hiddenfield":"Hidden Field","iframe":"IFrame","unknown":"Unknown Object"},"link":{"acccessKey":"Kunci Akses","advanced":"Advanced","advisoryContentType":"Jenis Kandungan Makluman","advisoryTitle":"Tajuk Makluman","anchor":{"toolbar":"Masukkan/Sunting Pautan","menu":"Ciri-ciri Pautan","title":"Ciri-ciri Pautan","name":"Nama Pautan","errorName":"Sila taip nama pautan","remove":"Remove Anchor"},"anchorId":"dengan menggunakan ID elemen","anchorName":"dengan menggunakan nama pautan","charset":"Linked Resource Charset","cssClasses":"Kelas-kelas Stylesheet","download":"Force Download","displayText":"Display Text","emailAddress":"Alamat E-Mail","emailBody":"Isi Kandungan Mesej","emailSubject":"Subjek Mesej","id":"Id","info":"Butiran Sambungan","langCode":"Arah Tulisan","langDir":"Arah Tulisan","langDirLTR":"Kiri ke Kanan (LTR)","langDirRTL":"Kanan ke Kiri (RTL)","menu":"Sunting Sambungan","name":"Nama","noAnchors":"(Tiada pautan terdapat dalam dokumen ini)","noEmail":"Sila taip alamat e-mail","noUrl":"Sila taip sambungan URL","other":"<lain>","popupDependent":"Bergantungan (Netscape)","popupFeatures":"Ciri Tetingkap Popup","popupFullScreen":"Skrin Penuh (IE)","popupLeft":"Posisi Kiri","popupLocationBar":"Bar Lokasi","popupMenuBar":"Bar Menu","popupResizable":"Resizable","popupScrollBars":"Bar-bar skrol","popupStatusBar":"Bar Status","popupToolbar":"Toolbar","popupTop":"Posisi Atas","rel":"Relationship","selectAnchor":"Sila pilih pautan","styles":"Stail","tabIndex":"Indeks Tab ","target":"Sasaran","targetFrame":"<bingkai>","targetFrameName":"Nama Bingkai Sasaran","targetPopup":"<tetingkap popup>","targetPopupName":"Nama Tetingkap Popup","title":"Sambungan","toAnchor":"Pautan dalam muka surat ini","toEmail":"E-Mail","toUrl":"URL","toolbar":"Masukkan/Sunting Sambungan","type":"Jenis Sambungan","unlink":"Buang Sambungan","upload":"Muat Naik"},"list":{"bulletedlist":"Senarai tidak bernombor","numberedlist":"Senarai bernombor"},"magicline":{"title":"Insert paragraph here"},"maximize":{"maximize":"Maximize","minimize":"Minimize"},"pastetext":{"button":"Tampal sebagai text biasa","pasteNotification":"Your browser does not allow you to paste plain text this way. Press %1 to paste."},"pastefromword":{"confirmCleanup":"The text you want to paste seems to be copied from Word. Do you want to clean it before pasting?","error":"It was not possible to clean up the pasted data due to an internal error","title":"Tampal dari Word","toolbar":"Tampal dari Word"},"removeformat":{"toolbar":"Buang Format"},"sourcearea":{"toolbar":"Sumber"},"specialchar":{"options":"Special Character Options","title":"Sila pilih huruf istimewa","toolbar":"Masukkan Huruf Istimewa"},"scayt":{"btn_about":"About SCAYT","btn_dictionaries":"Dictionaries","btn_disable":"Disable SCAYT","btn_enable":"Enable SCAYT","btn_langs":"Languages","btn_options":"Options","text_title":"Spell Check As You Type"},"stylescombo":{"label":"Stail","panelTitle":"Formatting Styles","panelTitle1":"Block Styles","panelTitle2":"Inline Styles","panelTitle3":"Object Styles"},"table":{"border":"Saiz Border","caption":"Keterangan","cell":{"menu":"Cell","insertBefore":"Insert Cell Before","insertAfter":"Insert Cell After","deleteCell":"Buangkan Sel-sel","merge":"Cantumkan Sel-sel","mergeRight":"Merge Right","mergeDown":"Merge Down","splitHorizontal":"Split Cell Horizontally","splitVertical":"Split Cell Vertically","title":"Cell Properties","cellType":"Cell Type","rowSpan":"Rows Span","colSpan":"Columns Span","wordWrap":"Word Wrap","hAlign":"Horizontal Alignment","vAlign":"Vertical Alignment","alignBaseline":"Baseline","bgColor":"Background Color","borderColor":"Border Color","data":"Data","header":"Header","yes":"Yes","no":"No","invalidWidth":"Cell width must be a number.","invalidHeight":"Cell height must be a number.","invalidRowSpan":"Rows span must be a whole number.","invalidColSpan":"Columns span must be a whole number.","chooseColor":"Choose"},"cellPad":"Tambahan Ruang Sel","cellSpace":"Ruangan Antara Sel","column":{"menu":"Column","insertBefore":"Insert Column Before","insertAfter":"Insert Column After","deleteColumn":"Buangkan Lajur"},"columns":"Jaluran","deleteTable":"Delete Table","headers":"Headers","headersBoth":"Both","headersColumn":"First column","headersNone":"None","headersRow":"First Row","invalidBorder":"Border size must be a number.","invalidCellPadding":"Cell padding must be a positive number.","invalidCellSpacing":"Cell spacing must be a positive number.","invalidCols":"Number of columns must be a number greater than 0.","invalidHeight":"Table height must be a number.","invalidRows":"Number of rows must be a number greater than 0.","invalidWidth":"Table width must be a number.","menu":"Ciri-ciri Jadual","row":{"menu":"Row","insertBefore":"Insert Row Before","insertAfter":"Insert Row After","deleteRow":"Buangkan Baris"},"rows":"Barisan","summary":"Summary","title":"Ciri-ciri Jadual","toolbar":"Jadual","widthPc":"peratus","widthPx":"piksel-piksel","widthUnit":"width unit"},"undo":{"redo":"Ulangkan","undo":"Batalkan"},"wsc":{"btnIgnore":"Biar","btnIgnoreAll":"Biarkan semua","btnReplace":"Ganti","btnReplaceAll":"Gantikan Semua","btnUndo":"Batalkan","changeTo":"Tukarkan kepada","errorLoading":"Error loading application service host: %s.","ieSpellDownload":"Pemeriksa ejaan tidak dipasang. Adakah anda mahu muat turun sekarang?","manyChanges":"Pemeriksaan ejaan siap: %1 perkataan diubah","noChanges":"Pemeriksaan ejaan siap: Tiada perkataan diubah","noMispell":"Pemeriksaan ejaan siap: Tiada salah ejaan","noSuggestions":"- Tiada cadangan -","notAvailable":"Sorry, but service is unavailable now.","notInDic":"Tidak terdapat didalam kamus","oneChange":"Pemeriksaan ejaan siap: Satu perkataan telah diubah","progress":"Pemeriksaan ejaan sedang diproses...","title":"Spell Checker","toolbar":"Semak Ejaan"}}; \ No newline at end of file diff --git a/admin/plugins/ckeditor/lang/nb.js b/admin/plugins/ckeditor/lang/nb.js deleted file mode 100644 index 8db6891..0000000 --- a/admin/plugins/ckeditor/lang/nb.js +++ /dev/null @@ -1,5 +0,0 @@ -/* -Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. -For licensing, see LICENSE.md or http://ckeditor.com/license -*/ -CKEDITOR.lang['nb']={"editor":"Rikteksteditor","editorPanel":"Panel for rikteksteditor","common":{"editorHelp":"Trykk ALT 0 for hjelp","browseServer":"Bla gjennom tjener","url":"URL","protocol":"Protokoll","upload":"Last opp","uploadSubmit":"Send det til serveren","image":"Bilde","flash":"Flash","form":"Skjema","checkbox":"Avmerkingsboks","radio":"Alternativknapp","textField":"Tekstboks","textarea":"Tekstområde","hiddenField":"Skjult felt","button":"Knapp","select":"Rullegardinliste","imageButton":"Bildeknapp","notSet":"<ikke satt>","id":"Id","name":"Navn","langDir":"Språkretning","langDirLtr":"Venstre til høyre (LTR)","langDirRtl":"Høyre til venstre (RTL)","langCode":"Språkkode","longDescr":"Utvidet beskrivelse","cssClass":"Stilarkklasser","advisoryTitle":"Tittel","cssStyle":"Stil","ok":"OK","cancel":"Avbryt","close":"Lukk","preview":"Forhåndsvis","resize":"Dra for å skalere","generalTab":"Generelt","advancedTab":"Avansert","validateNumberFailed":"Denne verdien er ikke et tall.","confirmNewPage":"Alle ulagrede endringer som er gjort i dette innholdet vil gå tapt. Er du sikker på at du vil laste en ny side?","confirmCancel":"Du har endret noen alternativer. Er du sikker på at du vil lukke dialogvinduet?","options":"Valg","target":"Mål","targetNew":"Nytt vindu (_blank)","targetTop":"Hele vinduet (_top)","targetSelf":"Samme vindu (_self)","targetParent":"Foreldrevindu (_parent)","langDirLTR":"Venstre til høyre (VTH)","langDirRTL":"Høyre til venstre (HTV)","styles":"Stil","cssClasses":"Stilarkklasser","width":"Bredde","height":"Høyde","align":"Juster","alignLeft":"Venstre","alignRight":"Høyre","alignCenter":"Midtjuster","alignJustify":"Blokkjuster","alignTop":"Topp","alignMiddle":"Midten","alignBottom":"Bunn","alignNone":"Ingen","invalidValue":"Ugyldig verdi.","invalidHeight":"Høyde må være et tall.","invalidWidth":"Bredde må være et tall.","invalidCssLength":"Den angitte verdien for feltet \"%1\" må være et positivt tall med eller uten en gyldig CSS-målingsenhet (px, %, in, cm, mm, em, ex, pt, eller pc).","invalidHtmlLength":"Den angitte verdien for feltet \"%1\" må være et positivt tall med eller uten en gyldig HTML-målingsenhet (px eller %).","invalidInlineStyle":"Verdi angitt for inline stil må bestå av en eller flere sett med formatet \"navn : verdi\", separert med semikolon","cssLengthTooltip":"Skriv inn et tall for en piksel-verdi eller et tall med en gyldig CSS-enhet (px, %, in, cm, mm, em, ex, pt, eller pc).","unavailable":"%1<span class=\"cke_accessibility\">, utilgjenglig</span>","keyboard":{"8":"Backspace","13":"Enter","16":"Shift","17":"Ctrl","18":"Alt","32":"Mellomrom","35":"End","36":"Home","46":"Delete","224":"Command"},"keyboardShortcut":"Tastatursnarvei"},"about":{"copy":"Copyright &copy; $1. Alle rettigheter reservert.","dlgTitle":"Om CKEditor","help":"Se $1 for hjelp.","moreInfo":"For lisensieringsinformasjon, vennligst besøk vårt nettsted:","title":"Om CKEditor","userGuide":"CKEditors brukerveiledning"},"basicstyles":{"bold":"Fet","italic":"Kursiv","strike":"Gjennomstreking","subscript":"Senket skrift","superscript":"Hevet skrift","underline":"Understreking"},"blockquote":{"toolbar":"Blokksitat"},"notification":{"closed":"Varsling lukket."},"button":{"selectedLabel":"%1 (Valgt)"},"toolbar":{"toolbarCollapse":"Skjul verktøylinje","toolbarExpand":"Vis verktøylinje","toolbarGroups":{"document":"Dokument","clipboard":"Utklippstavle/Angre","editing":"Redigering","forms":"Skjema","basicstyles":"Basisstiler","paragraph":"Avsnitt","links":"Lenker","insert":"Innsetting","styles":"Stiler","colors":"Farger","tools":"Verktøy"},"toolbars":"Verktøylinjer for editor"},"clipboard":{"copy":"Kopier","copyError":"Din nettlesers sikkerhetsinstillinger tillater ikke automatisk kopiering av tekst. Vennligst bruk tastatursnarveien (Ctrl/Cmd+C).","cut":"Klipp ut","cutError":"Din nettlesers sikkerhetsinstillinger tillater ikke automatisk utklipping av tekst. Vennligst bruk tastatursnarveien (Ctrl/Cmd+X).","paste":"Lim inn","pasteNotification":"Nettleseren din lar deg ikke lime inn på denne måten. Trykk %1 for å lime inn."},"contextmenu":{"options":"Alternativer for høyreklikkmeny"},"elementspath":{"eleLabel":"Element-sti","eleTitle":"%1 element"},"format":{"label":"Format","panelTitle":"Avsnittsformat","tag_address":"Adresse","tag_div":"Normal (DIV)","tag_h1":"Overskrift 1","tag_h2":"Overskrift 2","tag_h3":"Overskrift 3","tag_h4":"Overskrift 4","tag_h5":"Overskrift 5","tag_h6":"Overskrift 6","tag_p":"Normal","tag_pre":"Formatert"},"horizontalrule":{"toolbar":"Sett inn horisontal linje"},"image":{"alt":"Alternativ tekst","border":"Ramme","btnUpload":"Send det til serveren","button2Img":"Vil du endre den valgte bildeknappen til et vanlig bilde?","hSpace":"HMarg","img2Button":"Vil du endre det valgte bildet til en bildeknapp?","infoTab":"Bildeinformasjon","linkTab":"Lenke","lockRatio":"Lås forhold","menu":"Bildeegenskaper","resetSize":"Tilbakestill størrelse","title":"Bildeegenskaper","titleButton":"Egenskaper for bildeknapp","upload":"Last opp","urlMissing":"Bildets adresse mangler.","vSpace":"VMarg","validateBorder":"Ramme må være et heltall.","validateHSpace":"HMarg må være et heltall.","validateVSpace":"VMarg må være et heltall."},"indent":{"indent":"Øk innrykk","outdent":"Reduser innrykk"},"fakeobjects":{"anchor":"Anker","flash":"Flash-animasjon","hiddenfield":"Skjult felt","iframe":"IFrame","unknown":"Ukjent objekt"},"link":{"acccessKey":"Aksessknapp","advanced":"Avansert","advisoryContentType":"Type","advisoryTitle":"Tittel","anchor":{"toolbar":"Anker","menu":"Rediger anker","title":"Egenskaper for anker","name":"Ankernavn","errorName":"Vennligst skriv inn ankernavnet","remove":"Fjern anker"},"anchorId":"Element etter ID","anchorName":"Anker etter navn","charset":"Lenket tegnsett","cssClasses":"Stilarkklasser","download":"Tving nedlasting","displayText":"Tekst som skal vises","emailAddress":"E-postadresse","emailBody":"Melding","emailSubject":"Meldingsemne","id":"Id","info":"Lenkeinfo","langCode":"Språkkode","langDir":"Språkretning","langDirLTR":"Venstre til høyre (LTR)","langDirRTL":"Høyre til venstre (RTL)","menu":"Rediger lenke","name":"Navn","noAnchors":"(Ingen anker i dokumentet)","noEmail":"Vennligst skriv inn e-postadressen","noUrl":"Vennligst skriv inn lenkens URL","other":"<annen>","popupDependent":"Avhenging (Netscape)","popupFeatures":"Egenskaper for popup-vindu","popupFullScreen":"Fullskjerm (IE)","popupLeft":"Venstre posisjon","popupLocationBar":"Adresselinje","popupMenuBar":"Menylinje","popupResizable":"Skalerbar","popupScrollBars":"Scrollbar","popupStatusBar":"Statuslinje","popupToolbar":"Verktøylinje","popupTop":"Topp-posisjon","rel":"Relasjon (rel)","selectAnchor":"Velg et anker","styles":"Stil","tabIndex":"Tabindeks","target":"Mål","targetFrame":"<ramme>","targetFrameName":"Målramme","targetPopup":"<popup-vindu>","targetPopupName":"Navn på popup-vindu","title":"Lenke","toAnchor":"Lenke til anker i teksten","toEmail":"E-post","toUrl":"URL","toolbar":"Lenke","type":"Lenketype","unlink":"Fjern lenke","upload":"Last opp"},"list":{"bulletedlist":"Legg til / fjern punktliste","numberedlist":"Legg til / fjern nummerert liste"},"magicline":{"title":"Sett inn nytt avsnitt her"},"maximize":{"maximize":"Maksimer","minimize":"Minimer"},"pastetext":{"button":"Lim inn som ren tekst","pasteNotification":"Nettleseren din lar deg ikke lime inn ren tekst på denne måten. Trykk %1 for å lime inn."},"pastefromword":{"confirmCleanup":"Teksten du limer inn ser ut til å være kopiert fra Word. Vil du renske den før du limer den inn?","error":"Det var ikke mulig å renske den innlimte teksten på grunn av en intern feil","title":"Lim inn fra Word","toolbar":"Lim inn fra Word"},"removeformat":{"toolbar":"Fjern formatering"},"sourcearea":{"toolbar":"Kilde"},"specialchar":{"options":"Alternativer for spesialtegn","title":"Velg spesialtegn","toolbar":"Sett inn spesialtegn"},"scayt":{"btn_about":"Om SCAYT","btn_dictionaries":"Ordbøker","btn_disable":"Slå av SCAYT","btn_enable":"Slå på SCAYT","btn_langs":"Språk","btn_options":"Valg","text_title":"Stavekontroll mens du skriver"},"stylescombo":{"label":"Stil","panelTitle":"Stilformater","panelTitle1":"Blokkstiler","panelTitle2":"Inlinestiler","panelTitle3":"Objektstiler"},"table":{"border":"Rammestørrelse","caption":"Tittel","cell":{"menu":"Celle","insertBefore":"Sett inn celle før","insertAfter":"Sett inn celle etter","deleteCell":"Slett celler","merge":"Slå sammen celler","mergeRight":"Slå sammen høyre","mergeDown":"Slå sammen ned","splitHorizontal":"Del celle horisontalt","splitVertical":"Del celle vertikalt","title":"Celleegenskaper","cellType":"Celletype","rowSpan":"Radspenn","colSpan":"Kolonnespenn","wordWrap":"Tekstbrytning","hAlign":"Horisontal justering","vAlign":"Vertikal justering","alignBaseline":"Grunnlinje","bgColor":"Bakgrunnsfarge","borderColor":"Rammefarge","data":"Data","header":"Overskrift","yes":"Ja","no":"Nei","invalidWidth":"Cellebredde må være et tall.","invalidHeight":"Cellehøyde må være et tall.","invalidRowSpan":"Radspenn må være et heltall.","invalidColSpan":"Kolonnespenn må være et heltall.","chooseColor":"Velg"},"cellPad":"Cellepolstring","cellSpace":"Cellemarg","column":{"menu":"Kolonne","insertBefore":"Sett inn kolonne før","insertAfter":"Sett inn kolonne etter","deleteColumn":"Slett kolonner"},"columns":"Kolonner","deleteTable":"Slett tabell","headers":"Overskrifter","headersBoth":"Begge","headersColumn":"Første kolonne","headersNone":"Ingen","headersRow":"Første rad","invalidBorder":"Rammestørrelse må være et tall.","invalidCellPadding":"Cellepolstring må være et positivt tall.","invalidCellSpacing":"Cellemarg må være et positivt tall.","invalidCols":"Antall kolonner må være et tall større enn 0.","invalidHeight":"Tabellhøyde må være et tall.","invalidRows":"Antall rader må være et tall større enn 0.","invalidWidth":"Tabellbredde må være et tall.","menu":"Egenskaper for tabell","row":{"menu":"Rader","insertBefore":"Sett inn rad før","insertAfter":"Sett inn rad etter","deleteRow":"Slett rader"},"rows":"Rader","summary":"Sammendrag","title":"Egenskaper for tabell","toolbar":"Tabell","widthPc":"prosent","widthPx":"piksler","widthUnit":"Bredde-enhet"},"undo":{"redo":"Gjør om","undo":"Angre"},"wsc":{"btnIgnore":"Ignorer","btnIgnoreAll":"Ignorer alle","btnReplace":"Erstatt","btnReplaceAll":"Erstatt alle","btnUndo":"Angre","changeTo":"Endre til","errorLoading":"Feil under lasting av applikasjonstjenestetjener: %s.","ieSpellDownload":"Stavekontroll er ikke installert. Vil du laste den ned nå?","manyChanges":"Stavekontroll fullført: %1 ord endret","noChanges":"Stavekontroll fullført: ingen ord endret","noMispell":"Stavekontroll fullført: ingen feilstavinger funnet","noSuggestions":"- Ingen forslag -","notAvailable":"Beklager, tjenesten er utilgjenglig nå.","notInDic":"Ikke i ordboken","oneChange":"Stavekontroll fullført: Ett ord endret","progress":"Stavekontroll pågår...","title":"Stavekontroll","toolbar":"Stavekontroll"}}; \ No newline at end of file diff --git a/admin/plugins/ckeditor/lang/nl.js b/admin/plugins/ckeditor/lang/nl.js deleted file mode 100644 index 2271b9c..0000000 --- a/admin/plugins/ckeditor/lang/nl.js +++ /dev/null @@ -1,5 +0,0 @@ -/* -Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. -For licensing, see LICENSE.md or http://ckeditor.com/license -*/ -CKEDITOR.lang['nl']={"editor":"Tekstverwerker","editorPanel":"Tekstverwerker beheerpaneel","common":{"editorHelp":"Druk ALT 0 voor hulp","browseServer":"Bladeren op server","url":"URL","protocol":"Protocol","upload":"Upload","uploadSubmit":"Naar server verzenden","image":"Afbeelding","flash":"Flash","form":"Formulier","checkbox":"Selectievinkje","radio":"Keuzerondje","textField":"Tekstveld","textarea":"Tekstvak","hiddenField":"Verborgen veld","button":"Knop","select":"Selectieveld","imageButton":"Afbeeldingsknop","notSet":"<niet ingevuld>","id":"Id","name":"Naam","langDir":"Schrijfrichting","langDirLtr":"Links naar rechts (LTR)","langDirRtl":"Rechts naar links (RTL)","langCode":"Taalcode","longDescr":"Lange URL-omschrijving","cssClass":"Stylesheet-klassen","advisoryTitle":"Adviserende titel","cssStyle":"Stijl","ok":"OK","cancel":"Annuleren","close":"Sluiten","preview":"Voorbeeld","resize":"Sleep om te herschalen","generalTab":"Algemeen","advancedTab":"Geavanceerd","validateNumberFailed":"Deze waarde is geen geldig getal.","confirmNewPage":"Alle aangebrachte wijzigingen gaan verloren. Weet u zeker dat u een nieuwe pagina wilt openen?","confirmCancel":"Enkele opties zijn gewijzigd. Weet u zeker dat u dit dialoogvenster wilt sluiten?","options":"Opties","target":"Doelvenster","targetNew":"Nieuw venster (_blank)","targetTop":"Hele venster (_top)","targetSelf":"Zelfde venster (_self)","targetParent":"Origineel venster (_parent)","langDirLTR":"Links naar rechts (LTR)","langDirRTL":"Rechts naar links (RTL)","styles":"Stijl","cssClasses":"Stylesheet-klassen","width":"Breedte","height":"Hoogte","align":"Uitlijning","alignLeft":"Links","alignRight":"Rechts","alignCenter":"Centreren","alignJustify":"Uitvullen","alignTop":"Boven","alignMiddle":"Midden","alignBottom":"Onder","alignNone":"Geen","invalidValue":"Ongeldige waarde.","invalidHeight":"De hoogte moet een getal zijn.","invalidWidth":"De breedte moet een getal zijn.","invalidCssLength":"Waarde in veld \"%1\" moet een positief nummer zijn, met of zonder een geldige CSS meeteenheid (px, %, in, cm, mm, em, ex, pt of pc).","invalidHtmlLength":"Waarde in veld \"%1\" moet een positief nummer zijn, met of zonder een geldige HTML meeteenheid (px of %).","invalidInlineStyle":"Waarde voor de online stijl moet bestaan uit een of meerdere tupels met het formaat \"naam : waarde\", gescheiden door puntkomma's.","cssLengthTooltip":"Geef een nummer in voor een waarde in pixels of geef een nummer in met een geldige CSS eenheid (px, %, in, cm, mm, em, ex, pt, of pc).","unavailable":"%1<span class=\"cke_accessibility\">, niet beschikbaar</span>","keyboard":{"8":"Backspace","13":"Enter","16":"Shift","17":"Ctrl","18":"Alt","32":"Spatie","35":"End","36":"Home","46":"Verwijderen","224":"Command"},"keyboardShortcut":"Sneltoets"},"about":{"copy":"Copyright &copy; $1. Alle rechten voorbehouden.","dlgTitle":"Over CKEditor","help":"Bekijk de $1 voor hulp.","moreInfo":"Bezoek onze website voor licentieinformatie:","title":"Over CKEditor","userGuide":"CKEditor gebruiksaanwijzing"},"basicstyles":{"bold":"Vet","italic":"Cursief","strike":"Doorhalen","subscript":"Subscript","superscript":"Superscript","underline":"Onderstrepen"},"blockquote":{"toolbar":"Citaatblok"},"notification":{"closed":"Melding gesloten."},"button":{"selectedLabel":"%1 (Geselecteerd)"},"toolbar":{"toolbarCollapse":"Werkbalk inklappen","toolbarExpand":"Werkbalk uitklappen","toolbarGroups":{"document":"Document","clipboard":"Klembord/Ongedaan maken","editing":"Bewerken","forms":"Formulieren","basicstyles":"Basisstijlen","paragraph":"Paragraaf","links":"Links","insert":"Invoegen","styles":"Stijlen","colors":"Kleuren","tools":"Toepassingen"},"toolbars":"Werkbalken"},"clipboard":{"copy":"Kopiëren","copyError":"De beveiligingsinstelling van de browser verhinderen het automatisch kopiëren. Gebruik de sneltoets Ctrl/Cmd+C van het toetsenbord.","cut":"Knippen","cutError":"De beveiligingsinstelling van de browser verhinderen het automatisch knippen. Gebruik de sneltoets Ctrl/Cmd+X van het toetsenbord.","paste":"Plakken","pasteNotification":"Your browser doesn't allow you to paste this way. Press %1 to paste."},"contextmenu":{"options":"Contextmenu opties"},"elementspath":{"eleLabel":"Elementenpad","eleTitle":"%1 element"},"format":{"label":"Opmaak","panelTitle":"Opmaak","tag_address":"Adres","tag_div":"Normaal (DIV)","tag_h1":"Kop 1","tag_h2":"Kop 2","tag_h3":"Kop 3","tag_h4":"Kop 4","tag_h5":"Kop 5","tag_h6":"Kop 6","tag_p":"Normaal","tag_pre":"Met opmaak"},"horizontalrule":{"toolbar":"Horizontale lijn invoegen"},"image":{"alt":"Alternatieve tekst","border":"Rand","btnUpload":"Naar server verzenden","button2Img":"Wilt u de geselecteerde afbeeldingsknop vervangen door een eenvoudige afbeelding?","hSpace":"HSpace","img2Button":"Wilt u de geselecteerde afbeelding vervangen door een afbeeldingsknop?","infoTab":"Informatie afbeelding","linkTab":"Link","lockRatio":"Afmetingen vergrendelen","menu":"Eigenschappen afbeelding","resetSize":"Afmetingen resetten","title":"Eigenschappen afbeelding","titleButton":"Eigenschappen afbeeldingsknop","upload":"Upload","urlMissing":"De URL naar de afbeelding ontbreekt.","vSpace":"VSpace","validateBorder":"Rand moet een heel nummer zijn.","validateHSpace":"HSpace moet een heel nummer zijn.","validateVSpace":"VSpace moet een heel nummer zijn."},"indent":{"indent":"Inspringing vergroten","outdent":"Inspringing verkleinen"},"fakeobjects":{"anchor":"Interne link","flash":"Flash animatie","hiddenfield":"Verborgen veld","iframe":"IFrame","unknown":"Onbekend object"},"link":{"acccessKey":"Toegangstoets","advanced":"Geavanceerd","advisoryContentType":"Aanbevolen content-type","advisoryTitle":"Adviserende titel","anchor":{"toolbar":"Interne link","menu":"Eigenschappen interne link","title":"Eigenschappen interne link","name":"Naam interne link","errorName":"Geef de naam van de interne link op","remove":"Interne link verwijderen"},"anchorId":"Op kenmerk interne link","anchorName":"Op naam interne link","charset":"Karakterset van gelinkte bron","cssClasses":"Stylesheet-klassen","download":"Download forceren","displayText":"Weergavetekst","emailAddress":"E-mailadres","emailBody":"Inhoud bericht","emailSubject":"Onderwerp bericht","id":"Id","info":"Linkomschrijving","langCode":"Taalcode","langDir":"Schrijfrichting","langDirLTR":"Links naar rechts (LTR)","langDirRTL":"Rechts naar links (RTL)","menu":"Link wijzigen","name":"Naam","noAnchors":"(Geen interne links in document gevonden)","noEmail":"Geef een e-mailadres","noUrl":"Geef de link van de URL","other":"<ander>","popupDependent":"Afhankelijk (Netscape)","popupFeatures":"Instellingen popupvenster","popupFullScreen":"Volledig scherm (IE)","popupLeft":"Positie links","popupLocationBar":"Locatiemenu","popupMenuBar":"Menubalk","popupResizable":"Herschaalbaar","popupScrollBars":"Schuifbalken","popupStatusBar":"Statusbalk","popupToolbar":"Werkbalk","popupTop":"Positie boven","rel":"Relatie","selectAnchor":"Kies een interne link","styles":"Stijl","tabIndex":"Tabvolgorde","target":"Doelvenster","targetFrame":"<frame>","targetFrameName":"Naam doelframe","targetPopup":"<popupvenster>","targetPopupName":"Naam popupvenster","title":"Link","toAnchor":"Interne link in pagina","toEmail":"E-mail","toUrl":"URL","toolbar":"Link invoegen/wijzigen","type":"Linktype","unlink":"Link verwijderen","upload":"Upload"},"list":{"bulletedlist":"Opsomming invoegen","numberedlist":"Genummerde lijst invoegen"},"magicline":{"title":"Hier paragraaf invoeren"},"maximize":{"maximize":"Maximaliseren","minimize":"Minimaliseren"},"pastetext":{"button":"Plakken als platte tekst","pasteNotification":"Your browser does not allow you to paste plain text this way. Press %1 to paste."},"pastefromword":{"confirmCleanup":"De tekst die u wilt plakken lijkt gekopieerd te zijn vanuit Word. Wilt u de tekst opschonen voordat deze geplakt wordt?","error":"Het was niet mogelijk om de geplakte tekst op te schonen door een interne fout","title":"Plakken vanuit Word","toolbar":"Plakken vanuit Word"},"removeformat":{"toolbar":"Opmaak verwijderen"},"sourcearea":{"toolbar":"Broncode"},"specialchar":{"options":"Speciale tekens opties","title":"Selecteer speciaal teken","toolbar":"Speciaal teken invoegen"},"scayt":{"btn_about":"Over SCAYT","btn_dictionaries":"Woordenboeken","btn_disable":"SCAYT uitschakelen","btn_enable":"SCAYT inschakelen","btn_langs":"Talen","btn_options":"Opties","text_title":"Controleer de spelling tijdens het typen"},"stylescombo":{"label":"Stijl","panelTitle":"Opmaakstijlen","panelTitle1":"Blok stijlen","panelTitle2":"Inline stijlen","panelTitle3":"Object stijlen"},"table":{"border":"Randdikte","caption":"Titel","cell":{"menu":"Cel","insertBefore":"Voeg cel in voor","insertAfter":"Voeg cel in na","deleteCell":"Cellen verwijderen","merge":"Cellen samenvoegen","mergeRight":"Voeg samen naar rechts","mergeDown":"Voeg samen naar beneden","splitHorizontal":"Splits cel horizontaal","splitVertical":"Splits cel vertikaal","title":"Celeigenschappen","cellType":"Celtype","rowSpan":"Rijen samenvoegen","colSpan":"Kolommen samenvoegen","wordWrap":"Automatische terugloop","hAlign":"Horizontale uitlijning","vAlign":"Verticale uitlijning","alignBaseline":"Tekstregel","bgColor":"Achtergrondkleur","borderColor":"Randkleur","data":"Gegevens","header":"Kop","yes":"Ja","no":"Nee","invalidWidth":"De celbreedte moet een getal zijn.","invalidHeight":"De celhoogte moet een getal zijn.","invalidRowSpan":"Rijen samenvoegen moet een heel getal zijn.","invalidColSpan":"Kolommen samenvoegen moet een heel getal zijn.","chooseColor":"Kies"},"cellPad":"Celopvulling","cellSpace":"Celafstand","column":{"menu":"Kolom","insertBefore":"Voeg kolom in voor","insertAfter":"Voeg kolom in na","deleteColumn":"Kolommen verwijderen"},"columns":"Kolommen","deleteTable":"Tabel verwijderen","headers":"Koppen","headersBoth":"Beide","headersColumn":"Eerste kolom","headersNone":"Geen","headersRow":"Eerste rij","invalidBorder":"De randdikte moet een getal zijn.","invalidCellPadding":"Celopvulling moet een getal zijn.","invalidCellSpacing":"Celafstand moet een getal zijn.","invalidCols":"Het aantal kolommen moet een getal zijn groter dan 0.","invalidHeight":"De tabelhoogte moet een getal zijn.","invalidRows":"Het aantal rijen moet een getal zijn groter dan 0.","invalidWidth":"De tabelbreedte moet een getal zijn.","menu":"Tabeleigenschappen","row":{"menu":"Rij","insertBefore":"Voeg rij in voor","insertAfter":"Voeg rij in na","deleteRow":"Rijen verwijderen"},"rows":"Rijen","summary":"Samenvatting","title":"Tabeleigenschappen","toolbar":"Tabel","widthPc":"procent","widthPx":"pixels","widthUnit":"eenheid breedte"},"undo":{"redo":"Opnieuw uitvoeren","undo":"Ongedaan maken"},"wsc":{"btnIgnore":"Negeren","btnIgnoreAll":"Alles negeren","btnReplace":"Vervangen","btnReplaceAll":"Alles vervangen","btnUndo":"Ongedaan maken","changeTo":"Wijzig in","errorLoading":"Er is een fout opgetreden bij het laden van de dienst: %s.","ieSpellDownload":"De spellingscontrole is niet geïnstalleerd. Wilt u deze nu downloaden?","manyChanges":"Klaar met spellingscontrole: %1 woorden aangepast","noChanges":"Klaar met spellingscontrole: geen woorden aangepast","noMispell":"Klaar met spellingscontrole: geen fouten gevonden","noSuggestions":"- Geen suggesties -","notAvailable":"Excuses, deze dienst is momenteel niet beschikbaar.","notInDic":"Niet in het woordenboek","oneChange":"Klaar met spellingscontrole: één woord aangepast","progress":"Bezig met spellingscontrole...","title":"Spellingscontrole","toolbar":"Spellingscontrole"}}; \ No newline at end of file diff --git a/admin/plugins/ckeditor/lang/no.js b/admin/plugins/ckeditor/lang/no.js deleted file mode 100644 index 0dd5e94..0000000 --- a/admin/plugins/ckeditor/lang/no.js +++ /dev/null @@ -1,5 +0,0 @@ -/* -Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. -For licensing, see LICENSE.md or http://ckeditor.com/license -*/ -CKEDITOR.lang['no']={"editor":"Rikteksteditor","editorPanel":"Panel for rikteksteditor","common":{"editorHelp":"Trykk ALT 0 for hjelp","browseServer":"Bla igjennom server","url":"URL","protocol":"Protokoll","upload":"Last opp","uploadSubmit":"Send det til serveren","image":"Bilde","flash":"Flash","form":"Skjema","checkbox":"Avmerkingsboks","radio":"Alternativknapp","textField":"Tekstboks","textarea":"Tekstområde","hiddenField":"Skjult felt","button":"Knapp","select":"Rullegardinliste","imageButton":"Bildeknapp","notSet":"<ikke satt>","id":"Id","name":"Navn","langDir":"Språkretning","langDirLtr":"Venstre til høyre (VTH)","langDirRtl":"Høyre til venstre (HTV)","langCode":"Språkkode","longDescr":"Utvidet beskrivelse","cssClass":"Stilarkklasser","advisoryTitle":"Tittel","cssStyle":"Stil","ok":"OK","cancel":"Avbryt","close":"Lukk","preview":"Forhåndsvis","resize":"Dra for å skalere","generalTab":"Generelt","advancedTab":"Avansert","validateNumberFailed":"Denne verdien er ikke et tall.","confirmNewPage":"Alle ulagrede endringer som er gjort i dette innholdet vil bli tapt. Er du sikker på at du vil laste en ny side?","confirmCancel":"Noen av valgene har blitt endret. Er du sikker på at du vil lukke dialogen?","options":"Valg","target":"Mål","targetNew":"Nytt vindu (_blank)","targetTop":"Hele vindu (_top)","targetSelf":"Samme vindu (_self)","targetParent":"Foreldrevindu (_parent)","langDirLTR":"Venstre til høyre (VTH)","langDirRTL":"Høyre til venstre (HTV)","styles":"Stil","cssClasses":"Stilarkklasser","width":"Bredde","height":"Høyde","align":"Juster","alignLeft":"Venstre","alignRight":"Høyre","alignCenter":"Midtjuster","alignJustify":"Blokkjuster","alignTop":"Topp","alignMiddle":"Midten","alignBottom":"Bunn","alignNone":"Ingen","invalidValue":"Ugyldig verdi.","invalidHeight":"Høyde må være et tall.","invalidWidth":"Bredde må være et tall.","invalidCssLength":"Den angitte verdien for feltet \"%1\" må være et positivt tall med eller uten en gyldig CSS-målingsenhet (px, %, in, cm, mm, em, ex, pt, eller pc).","invalidHtmlLength":"Den angitte verdien for feltet \"%1\" må være et positivt tall med eller uten en gyldig HTML-målingsenhet (px eller %).","invalidInlineStyle":"Verdi angitt for inline stil må bestå av en eller flere sett med formatet \"navn : verdi\", separert med semikolon","cssLengthTooltip":"Skriv inn et tall for en piksel-verdi eller et tall med en gyldig CSS-enhet (px, %, in, cm, mm, em, ex, pt, eller pc).","unavailable":"%1<span class=\"cke_accessibility\">, utilgjenglig</span>","keyboard":{"8":"Backspace","13":"Enter","16":"Shift","17":"Ctrl","18":"Alt","32":"Space","35":"End","36":"Home","46":"Delete","224":"Command"},"keyboardShortcut":"Keyboard shortcut"},"about":{"copy":"Copyright &copy; $1. Alle rettigheter reservert.","dlgTitle":"Om CKEditor","help":"Se $1 for hjelp.","moreInfo":"For lisensieringsinformasjon, vennligst besøk vårt nettsted:","title":"Om CKEditor","userGuide":"CKEditors brukerveiledning"},"basicstyles":{"bold":"Fet","italic":"Kursiv","strike":"Gjennomstreking","subscript":"Senket skrift","superscript":"Hevet skrift","underline":"Understreking"},"blockquote":{"toolbar":"Blokksitat"},"notification":{"closed":"Notification closed."},"button":{"selectedLabel":"%1 (Valgt)"},"toolbar":{"toolbarCollapse":"Skjul verktøylinje","toolbarExpand":"Vis verktøylinje","toolbarGroups":{"document":"Dokument","clipboard":"Utklippstavle/Angre","editing":"Redigering","forms":"Skjema","basicstyles":"Basisstiler","paragraph":"Avsnitt","links":"Lenker","insert":"Innsetting","styles":"Stiler","colors":"Farger","tools":"Verktøy"},"toolbars":"Verktøylinjer for editor"},"clipboard":{"copy":"Kopier","copyError":"Din nettlesers sikkerhetsinstillinger tillater ikke automatisk kopiering av tekst. Vennligst bruk snarveien (Ctrl/Cmd+C).","cut":"Klipp ut","cutError":"Din nettlesers sikkerhetsinstillinger tillater ikke automatisk utklipping av tekst. Vennligst bruk snarveien (Ctrl/Cmd+X).","paste":"Lim inn","pasteNotification":"Your browser doesn't allow you to paste this way. Press %1 to paste."},"contextmenu":{"options":"Alternativer for høyreklikkmeny"},"elementspath":{"eleLabel":"Element-sti","eleTitle":"%1 element"},"format":{"label":"Format","panelTitle":"Avsnittsformat","tag_address":"Adresse","tag_div":"Normal (DIV)","tag_h1":"Overskrift 1","tag_h2":"Overskrift 2","tag_h3":"Overskrift 3","tag_h4":"Overskrift 4","tag_h5":"Overskrift 5","tag_h6":"Overskrift 6","tag_p":"Normal","tag_pre":"Formatert"},"horizontalrule":{"toolbar":"Sett inn horisontal linje"},"image":{"alt":"Alternativ tekst","border":"Ramme","btnUpload":"Send det til serveren","button2Img":"Vil du endre den valgte bildeknappen til et vanlig bilde?","hSpace":"HMarg","img2Button":"Vil du endre det valgte bildet til en bildeknapp?","infoTab":"Bildeinformasjon","linkTab":"Lenke","lockRatio":"Lås forhold","menu":"Bildeegenskaper","resetSize":"Tilbakestill størrelse","title":"Bildeegenskaper","titleButton":"Egenskaper for bildeknapp","upload":"Last opp","urlMissing":"Bildets adresse mangler.","vSpace":"VMarg","validateBorder":"Ramme må være et heltall.","validateHSpace":"HMarg må være et heltall.","validateVSpace":"VMarg må være et heltall."},"indent":{"indent":"Øk innrykk","outdent":"Reduser innrykk"},"fakeobjects":{"anchor":"Anker","flash":"Flash-animasjon","hiddenfield":"Skjult felt","iframe":"IFrame","unknown":"Ukjent objekt"},"link":{"acccessKey":"Aksessknapp","advanced":"Avansert","advisoryContentType":"Type","advisoryTitle":"Tittel","anchor":{"toolbar":"Sett inn/Rediger anker","menu":"Egenskaper for anker","title":"Egenskaper for anker","name":"Ankernavn","errorName":"Vennligst skriv inn ankernavnet","remove":"Fjern anker"},"anchorId":"Element etter ID","anchorName":"Anker etter navn","charset":"Lenket tegnsett","cssClasses":"Stilarkklasser","download":"Force Download","displayText":"Tekst som skal vises","emailAddress":"E-postadresse","emailBody":"Melding","emailSubject":"Meldingsemne","id":"Id","info":"Lenkeinfo","langCode":"Språkkode","langDir":"Språkretning","langDirLTR":"Venstre til høyre (VTH)","langDirRTL":"Høyre til venstre (HTV)","menu":"Rediger lenke","name":"Navn","noAnchors":"(Ingen anker i dokumentet)","noEmail":"Vennligst skriv inn e-postadressen","noUrl":"Vennligst skriv inn lenkens URL","other":"<annen>","popupDependent":"Avhenging (Netscape)","popupFeatures":"Egenskaper for popup-vindu","popupFullScreen":"Fullskjerm (IE)","popupLeft":"Venstre posisjon","popupLocationBar":"Adresselinje","popupMenuBar":"Menylinje","popupResizable":"Skalerbar","popupScrollBars":"Scrollbar","popupStatusBar":"Statuslinje","popupToolbar":"Verktøylinje","popupTop":"Topp-posisjon","rel":"Relasjon (rel)","selectAnchor":"Velg et anker","styles":"Stil","tabIndex":"Tabindeks","target":"Mål","targetFrame":"<ramme>","targetFrameName":"Målramme","targetPopup":"<popup-vindu>","targetPopupName":"Navn på popup-vindu","title":"Lenke","toAnchor":"Lenke til anker i teksten","toEmail":"E-post","toUrl":"URL","toolbar":"Sett inn/Rediger lenke","type":"Lenketype","unlink":"Fjern lenke","upload":"Last opp"},"list":{"bulletedlist":"Legg til/Fjern punktmerket liste","numberedlist":"Legg til/Fjern nummerert liste"},"magicline":{"title":"Sett inn nytt avsnitt her"},"maximize":{"maximize":"Maksimer","minimize":"Minimer"},"pastetext":{"button":"Lim inn som ren tekst","pasteNotification":"Your browser does not allow you to paste plain text this way. Press %1 to paste."},"pastefromword":{"confirmCleanup":"Teksten du limer inn ser ut til å være kopiert fra Word. Vil du renske den før du limer den inn?","error":"Det var ikke mulig å renske den innlimte teksten på grunn av en intern feil","title":"Lim inn fra Word","toolbar":"Lim inn fra Word"},"removeformat":{"toolbar":"Fjern formatering"},"sourcearea":{"toolbar":"Kilde"},"specialchar":{"options":"Alternativer for spesialtegn","title":"Velg spesialtegn","toolbar":"Sett inn spesialtegn"},"scayt":{"btn_about":"Om SCAYT","btn_dictionaries":"Ordbøker","btn_disable":"Slå av SCAYT","btn_enable":"Slå på SCAYT","btn_langs":"Språk","btn_options":"Valg","text_title":"Stavekontroll mens du skriver"},"stylescombo":{"label":"Stil","panelTitle":"Stilformater","panelTitle1":"Blokkstiler","panelTitle2":"Inlinestiler","panelTitle3":"Objektstiler"},"table":{"border":"Rammestørrelse","caption":"Tittel","cell":{"menu":"Celle","insertBefore":"Sett inn celle før","insertAfter":"Sett inn celle etter","deleteCell":"Slett celler","merge":"Slå sammen celler","mergeRight":"Slå sammen høyre","mergeDown":"Slå sammen ned","splitHorizontal":"Del celle horisontalt","splitVertical":"Del celle vertikalt","title":"Celleegenskaper","cellType":"Celletype","rowSpan":"Radspenn","colSpan":"Kolonnespenn","wordWrap":"Tekstbrytning","hAlign":"Horisontal justering","vAlign":"Vertikal justering","alignBaseline":"Grunnlinje","bgColor":"Bakgrunnsfarge","borderColor":"Rammefarge","data":"Data","header":"Overskrift","yes":"Ja","no":"Nei","invalidWidth":"Cellebredde må være et tall.","invalidHeight":"Cellehøyde må være et tall.","invalidRowSpan":"Radspenn må være et heltall.","invalidColSpan":"Kolonnespenn må være et heltall.","chooseColor":"Velg"},"cellPad":"Cellepolstring","cellSpace":"Cellemarg","column":{"menu":"Kolonne","insertBefore":"Sett inn kolonne før","insertAfter":"Sett inn kolonne etter","deleteColumn":"Slett kolonner"},"columns":"Kolonner","deleteTable":"Slett tabell","headers":"Overskrifter","headersBoth":"Begge","headersColumn":"Første kolonne","headersNone":"Ingen","headersRow":"Første rad","invalidBorder":"Rammestørrelse må være et tall.","invalidCellPadding":"Cellepolstring må være et positivt tall.","invalidCellSpacing":"Cellemarg må være et positivt tall.","invalidCols":"Antall kolonner må være et tall større enn 0.","invalidHeight":"Tabellhøyde må være et tall.","invalidRows":"Antall rader må være et tall større enn 0.","invalidWidth":"Tabellbredde må være et tall.","menu":"Egenskaper for tabell","row":{"menu":"Rader","insertBefore":"Sett inn rad før","insertAfter":"Sett inn rad etter","deleteRow":"Slett rader"},"rows":"Rader","summary":"Sammendrag","title":"Egenskaper for tabell","toolbar":"Tabell","widthPc":"prosent","widthPx":"piksler","widthUnit":"Bredde-enhet"},"undo":{"redo":"Gjør om","undo":"Angre"},"wsc":{"btnIgnore":"Ignorer","btnIgnoreAll":"Ignorer alle","btnReplace":"Erstatt","btnReplaceAll":"Erstatt alle","btnUndo":"Angre","changeTo":"Endre til","errorLoading":"Feil under lasting av applikasjonstjenestetjener: %s.","ieSpellDownload":"Stavekontroll er ikke installert. Vil du laste den ned nå?","manyChanges":"Stavekontroll fullført: %1 ord endret","noChanges":"Stavekontroll fullført: ingen ord endret","noMispell":"Stavekontroll fullført: ingen feilstavinger funnet","noSuggestions":"- Ingen forslag -","notAvailable":"Beklager, tjenesten er utilgjenglig nå.","notInDic":"Ikke i ordboken","oneChange":"Stavekontroll fullført: Ett ord endret","progress":"Stavekontroll pågår...","title":"Stavekontroll","toolbar":"Stavekontroll"}}; \ No newline at end of file diff --git a/admin/plugins/ckeditor/lang/oc.js b/admin/plugins/ckeditor/lang/oc.js deleted file mode 100644 index ffd01e2..0000000 --- a/admin/plugins/ckeditor/lang/oc.js +++ /dev/null @@ -1,5 +0,0 @@ -/* -Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. -For licensing, see LICENSE.md or http://ckeditor.com/license -*/ -CKEDITOR.lang['oc']={"editor":"Editor de tèxte enriquit","editorPanel":"Tablèu de bòrd de l'editor de tèxte enriquit","common":{"editorHelp":"Utilisatz l'acorchi Alt-0 per obténer d'ajuda","browseServer":"Percórrer lo servidor","url":"URL","protocol":"Protocòl","upload":"Mandar","uploadSubmit":"Mandar sul servidor","image":"Imatge","flash":"Flash","form":"Formulari","checkbox":"Casa de marcar","radio":"Boton ràdio","textField":"Camp tèxte","textarea":"Zòna de tèxte","hiddenField":"Camp invisible","button":"Boton","select":"Lista desenrotlanta","imageButton":"Boton amb imatge","notSet":"<indefinit>","id":"Id","name":"Nom","langDir":"Sens d'escritura","langDirLtr":"Esquèrra a dreita (LTR)","langDirRtl":"Dreita a esquèrra (RTL)","langCode":"Còdi de lenga","longDescr":"URL de descripcion longa","cssClass":"Classas d'estil","advisoryTitle":"Infobulla","cssStyle":"Estil","ok":"D'acòrdi","cancel":"Anullar","close":"Tampar","preview":"Previsualizar","resize":"Redimensionar","generalTab":"General","advancedTab":"Avançat","validateNumberFailed":"Aquesta valor es pas un nombre.","confirmNewPage":"Los cambiaments pas salvats seràn perduts. Sètz segur que volètz cargar una novèla pagina ?","confirmCancel":"Certanas opcions son estadas modificadas. Sètz segur que volètz tampar ?","options":"Opcions","target":"Cibla","targetNew":"Novèla fenèstra (_blank)","targetTop":"Fenèstra superiora (_top)","targetSelf":"Meteissa fenèstra (_self)","targetParent":"Fenèstra parent (_parent)","langDirLTR":"Esquèrra a dreita (LTR)","langDirRTL":"Dreita a esquèrra (RTL)","styles":"Estil","cssClasses":"Classas d'estil","width":"Largor","height":"Nautor","align":"Alinhament","alignLeft":"Esquèrra","alignRight":"Dreita","alignCenter":"Centrar","alignJustify":"Justificar","alignTop":"Naut","alignMiddle":"Mitan","alignBottom":"Bas","alignNone":"Pas cap","invalidValue":"Valor invalida.","invalidHeight":"La nautor deu èsser un nombre.","invalidWidth":"La largor deu èsser un nombre.","invalidCssLength":"La valor especificada pel camp « %1 » deu èsser un nombre positiu amb o sens unitat de mesura CSS valid (px, %, in, cm, mm, em, ex, pt, o pc).","invalidHtmlLength":"La valor especificada pel camp « %1 » deu èsser un nombre positiu amb o sens unitat de mesura HTML valid (px o %).","invalidInlineStyle":"La valor especificada per l'estil en linha deu èsser compausada d'un o mantun parelh al format « nom : valor », separats per de punts-virgulas.","cssLengthTooltip":"Entrar un nombre per una valor en pixèls o un nombre amb una unitat de mesura CSS valida (px, %, in, cm, mm, em, ex, pt, o pc).","unavailable":"%1<span class=\"cke_accessibility\">, indisponible</span>","keyboard":{"8":"Retorn","13":"Entrada","16":"Majuscula","17":"Ctrl","18":"Alt","32":"Espaci","35":"Fin","36":"Origina","46":"Suprimir","224":"Comanda"},"keyboardShortcut":"Acorchi de clavièr"},"about":{"copy":"Copyright &copy; $1. Totes los dreits reservats.","dlgTitle":"A prepaus de CKEditor","help":"Consultar $1 per obténer d'ajuda.","moreInfo":"Per las informacions de licéncia, visitatz nòstre site web :","title":"A prepaus de CKEditor","userGuide":"Guida de l'utilizaire CKEditor (en anglés)"},"basicstyles":{"bold":"Gras","italic":"Italica","strike":"Raiat","subscript":"Indici","superscript":"Exponent","underline":"Solinhat"},"blockquote":{"toolbar":"Citacion"},"notification":{"closed":"Notificacion tampada."},"button":{"selectedLabel":"%1 (Seleccionat)"},"toolbar":{"toolbarCollapse":"Enrotlar la barra d'aisinas","toolbarExpand":"Desenrotlar la barra d'aisinas","toolbarGroups":{"document":"Document","clipboard":"Quichapapièr/Desfar","editing":"Edicion","forms":"Formularis","basicstyles":"Estils de basa","paragraph":"Paragraf","links":"Ligams","insert":"Inserir","styles":"Estils","colors":"Colors","tools":"Aisinas"},"toolbars":"Barras d'aisinas de l'editor"},"clipboard":{"copy":"Copiar","copyError":"Los paramètres de seguretat de vòstre navigador autorizan pas l'editor a executar automaticament l'operacion « Copiar ». Utilizatz l'acorchi de clavièr a aqueste efièit (Ctrl/Cmd+C).","cut":"Talhar","cutError":"Los paramètres de seguretat de vòstre navigador autorizan pas l'editor a executar automaticament l'operacion « Talhar ». Utilizatz l'acorchi de clavièr a aqueste efièit (Ctrl/Cmd+X).","paste":"Pegar","pasteNotification":"Your browser doesn't allow you to paste this way. Press %1 to paste."},"contextmenu":{"options":"Opcions del menú contextual"},"elementspath":{"eleLabel":"Camin dels elements","eleTitle":"Element %1"},"format":{"label":"Format","panelTitle":"Format de paragraf","tag_address":"Adreça","tag_div":"Division (DIV)","tag_h1":"Títol 1","tag_h2":"Títol 2","tag_h3":"Títol 3","tag_h4":"Títol 4","tag_h5":"Títol 5","tag_h6":"Títol 6","tag_p":"Normal","tag_pre":"Preformatat"},"horizontalrule":{"toolbar":"Inserir una linha orizontala"},"image":{"alt":"Tèxte alternatiu","border":"Bordadura","btnUpload":"Mandar sul servidor","button2Img":"Volètz transformar lo boton amb imatge seleccionat en imatge simple ?","hSpace":"Espaçament orizontal","img2Button":"Volètz transformar l'imatge seleccionat en boton amb imatge ?","infoTab":"Informacions sus l'imatge","linkTab":"Ligam","lockRatio":"Conservar las proporcions","menu":"Proprietats de l'imatge","resetSize":"Reïnicializar la talha","title":"Proprietats de l'imatge","titleButton":"Proprietats del boton amb imatge","upload":"Mandar","urlMissing":"L'URL font de l'imatge es mancanta.","vSpace":"Espaçament vertical","validateBorder":"La bordadura deu èsser un nombre entièr.","validateHSpace":"L'espaçament orizontal deu èsser un nombre entièr.","validateVSpace":"L'espaçament vertical deu èsser un nombre entièr."},"indent":{"indent":"Aumentar l'alinèa","outdent":"Dmesir l'alinèa"},"fakeobjects":{"anchor":"Ancòra","flash":"Animacion Flash","hiddenfield":"Camp invisible","iframe":"Quadre de contengut incorporat","unknown":"Objècte desconegut"},"link":{"acccessKey":"Tòca d'accessibilitat","advanced":"Avançat","advisoryContentType":"Tipe de contengut (indicatiu)","advisoryTitle":"Infobulla","anchor":{"toolbar":"Ancòra","menu":"Modificar l'ancòra","title":"Proprietats de l'ancòra","name":"Nom de l'ancòra","errorName":"Entratz lo nom de l'ancòra","remove":"Suprimir l'ancòra"},"anchorId":"Per ID d'element","anchorName":"Per nom d'ancòra","charset":"Encodatge de la ressorsa ligada","cssClasses":"Classas d'estil","download":"Forçar lo telecargament","displayText":"Afichar lo tèxte","emailAddress":"Adreça electronica","emailBody":"Còs del messatge","emailSubject":"Subjècte del messatge","id":"Id","info":"Informacions sul ligam","langCode":"Còdi de lenga","langDir":"Sens d'escritura","langDirLTR":"Esquèrra a dreita (LTR)","langDirRTL":"Dreita a esquèrra (RTL)","menu":"Modificar lo ligam","name":"Nom","noAnchors":"(Cap d'ancòra pas disponibla dins aqueste document)","noEmail":"Entratz l'adreça electronica","noUrl":"Entratz l'URL del ligam","other":"<autre>","popupDependent":"Dependenta (Netscape)","popupFeatures":"Caracteristicas de la fenèstra sorgissenta","popupFullScreen":"Ecran complet (IE)","popupLeft":"A esquèrra","popupLocationBar":"Barra d'adreça","popupMenuBar":"Barra de menú","popupResizable":"Redimensionable","popupScrollBars":"Barras de desfilament","popupStatusBar":"Barra d'estat","popupToolbar":"Barra d'aisinas","popupTop":"Amont","rel":"Relacion","selectAnchor":"Seleccionar una ancòra","styles":"Estil","tabIndex":"Indici de tabulacion","target":"Cibla","targetFrame":"<quadre>","targetFrameName":"Nom del quadre afectat","targetPopup":"<fenèstra sorgissenta>","targetPopupName":"Nom de la fenèstra sorgissenta","title":"Ligam","toAnchor":"Ancòra","toEmail":"Corrièl","toUrl":"URL","toolbar":"Ligam","type":"Tipe de ligam","unlink":"Suprimir lo ligam","upload":"Mandar"},"list":{"bulletedlist":"Inserir/Suprimir una lista amb de piuses","numberedlist":"Inserir/Suprimir una lista numerotada"},"magicline":{"title":"Inserir un paragraf aicí"},"maximize":{"maximize":"Maximizar","minimize":"Minimizar"},"pastetext":{"button":"Pegar coma tèxte brut","pasteNotification":"Your browser does not allow you to paste plain text this way. Press %1 to paste."},"pastefromword":{"confirmCleanup":"Sembla que lo tèxte de pegar proven de Word. Lo volètz netejar abans de lo pegar ?","error":"Las donadas pegadas an pas pogut èsser netejadas a causa d'una error intèrna","title":"Pegar dempuèi Word","toolbar":"Pegar dempuèi Word"},"removeformat":{"toolbar":"Suprimir la mesa en forma"},"sourcearea":{"toolbar":"Font"},"specialchar":{"options":"Opcions dels caractèrs especials","title":"Seleccionar un caractèr","toolbar":"Inserir un caractèr especial"},"scayt":{"btn_about":"About SCAYT","btn_dictionaries":"Dictionaries","btn_disable":"Disable SCAYT","btn_enable":"Enable SCAYT","btn_langs":"Languages","btn_options":"Options","text_title":"Spell Check As You Type"},"stylescombo":{"label":"Estils","panelTitle":"Estils de mesa en pagina","panelTitle1":"Estils de blòt","panelTitle2":"Estils en linha","panelTitle3":"Estils d'objècte"},"table":{"border":"Talha de la bordadura","caption":"Títol del tablèu","cell":{"menu":"Cellula","insertBefore":"Inserir una cellula abans","insertAfter":"Inserir una cellula aprèp","deleteCell":"Suprimir las cellulas","merge":"Fusionar las cellulas","mergeRight":"Fusionar cap a dreita","mergeDown":"Fusionar cap aval","splitHorizontal":"Separar la cellula orizontalament","splitVertical":"Separar la cellula verticalament","title":"Proprietats de la cellula","cellType":"Tipe de cellula","rowSpan":"Linhas ocupadas","colSpan":"Colomnas ocupadas","wordWrap":"Cesura","hAlign":"Alinhament orizontal","vAlign":"Alinhament vertical","alignBaseline":"Linha de basa","bgColor":"Color de rèireplan","borderColor":"Color de bordadura","data":"Donadas","header":"Entèsta","yes":"Òc","no":"Non","invalidWidth":"La largor de la cellula deu èsser un nombre.","invalidHeight":"La nautor de la cellula deu èsser un nombre.","invalidRowSpan":"Lo nombre de linhas ocupadas deu èsser un nombre entièr.","invalidColSpan":"Lo nombre de colomnas ocupadas deu èsser un nombre entièr.","chooseColor":"Causir"},"cellPad":"Marge intèrne de las cellulas","cellSpace":"Espaçament entre las cellulas","column":{"menu":"Colomna","insertBefore":"Inserir una colomna abans","insertAfter":"Inserir una colomna aprèp","deleteColumn":"Suprimir las colomnas"},"columns":"Colomnas","deleteTable":"Suprimir lo tablèu","headers":"Entèstas","headersBoth":"Los dos","headersColumn":"Primièra colomna","headersNone":"Pas cap","headersRow":"Primièra linha","invalidBorder":"La talha de la bordadura deu èsser un nombre.","invalidCellPadding":"Lo marge intèrne de las cellulas deu èsser un nombre positiu.","invalidCellSpacing":"L'espaçament entre las cellulas deu èsser un nombre positiu.","invalidCols":"Lo nombre de colomnas deu èsser superior a 0.","invalidHeight":"La nautor del tablèu deu èsser un nombre.","invalidRows":"Lo nombre de linhas deu èsser superior a 0.","invalidWidth":"La largor del tablèu deu èsser un nombre.","menu":"Proprietats del tablèu","row":{"menu":"Linha","insertBefore":"Inserir una linha abans","insertAfter":"Inserir una linha aprèp","deleteRow":"Suprimir las linhas"},"rows":"Linhas","summary":"Resumit (descripcion)","title":"Proprietats del tablèu","toolbar":"Tablèu","widthPc":"per cent","widthPx":"pixèls","widthUnit":"unitat de largor"},"undo":{"redo":"Refar","undo":"Restablir"},"wsc":{"btnIgnore":"Ignore","btnIgnoreAll":"Ignore All","btnReplace":"Replace","btnReplaceAll":"Replace All","btnUndo":"Undo","changeTo":"Change to","errorLoading":"Error loading application service host: %s.","ieSpellDownload":"Spell checker not installed. Do you want to download it now?","manyChanges":"Spell check complete: %1 words changed","noChanges":"Spell check complete: No words changed","noMispell":"Spell check complete: No misspellings found","noSuggestions":"- No suggestions -","notAvailable":"Sorry, but service is unavailable now.","notInDic":"Not in dictionary","oneChange":"Spell check complete: One word changed","progress":"Spell check in progress...","title":"Spell Checker","toolbar":"Check Spelling"}}; \ No newline at end of file diff --git a/admin/plugins/ckeditor/lang/pl.js b/admin/plugins/ckeditor/lang/pl.js deleted file mode 100644 index 9d4a5f4..0000000 --- a/admin/plugins/ckeditor/lang/pl.js +++ /dev/null @@ -1,5 +0,0 @@ -/* -Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. -For licensing, see LICENSE.md or http://ckeditor.com/license -*/ -CKEDITOR.lang['pl']={"editor":"Edytor tekstu sformatowanego","editorPanel":"Panel edytora tekstu sformatowanego","common":{"editorHelp":"W celu uzyskania pomocy naciśnij ALT 0","browseServer":"Przeglądaj","url":"Adres URL","protocol":"Protokół","upload":"Wyślij","uploadSubmit":"Wyślij","image":"Obrazek","flash":"Flash","form":"Formularz","checkbox":"Pole wyboru (checkbox)","radio":"Przycisk opcji (radio)","textField":"Pole tekstowe","textarea":"Obszar tekstowy","hiddenField":"Pole ukryte","button":"Przycisk","select":"Lista wyboru","imageButton":"Przycisk graficzny","notSet":"<nie ustawiono>","id":"Id","name":"Nazwa","langDir":"Kierunek tekstu","langDirLtr":"Od lewej do prawej (LTR)","langDirRtl":"Od prawej do lewej (RTL)","langCode":"Kod języka","longDescr":"Adres URL długiego opisu","cssClass":"Nazwa klasy CSS","advisoryTitle":"Opis obiektu docelowego","cssStyle":"Styl","ok":"OK","cancel":"Anuluj","close":"Zamknij","preview":"Podgląd","resize":"Przeciągnij, aby zmienić rozmiar","generalTab":"Ogólne","advancedTab":"Zaawansowane","validateNumberFailed":"Ta wartość nie jest liczbą.","confirmNewPage":"Wszystkie niezapisane zmiany zostaną utracone. Czy na pewno wczytać nową stronę?","confirmCancel":"Pewne opcje zostały zmienione. Czy na pewno zamknąć okno dialogowe?","options":"Opcje","target":"Obiekt docelowy","targetNew":"Nowe okno (_blank)","targetTop":"Okno najwyżej w hierarchii (_top)","targetSelf":"To samo okno (_self)","targetParent":"Okno nadrzędne (_parent)","langDirLTR":"Od lewej do prawej (LTR)","langDirRTL":"Od prawej do lewej (RTL)","styles":"Style","cssClasses":"Klasy arkusza stylów","width":"Szerokość","height":"Wysokość","align":"Wyrównaj","alignLeft":"Do lewej","alignRight":"Do prawej","alignCenter":"Do środka","alignJustify":"Wyjustuj","alignTop":"Do góry","alignMiddle":"Do środka","alignBottom":"Do dołu","alignNone":"Brak","invalidValue":"Nieprawidłowa wartość.","invalidHeight":"Wysokość musi być liczbą.","invalidWidth":"Szerokość musi być liczbą.","invalidCssLength":"Wartość podana dla pola \"%1\" musi być liczbą dodatnią bez jednostki lub z poprawną jednostką długości zgodną z CSS (px, %, in, cm, mm, em, ex, pt lub pc).","invalidHtmlLength":"Wartość podana dla pola \"%1\" musi być liczbą dodatnią bez jednostki lub z poprawną jednostką długości zgodną z HTML (px lub %).","invalidInlineStyle":"Wartość podana dla stylu musi składać się z jednej lub większej liczby krotek w formacie \"nazwa : wartość\", rozdzielonych średnikami.","cssLengthTooltip":"Wpisz liczbę dla wartości w pikselach lub liczbę wraz z jednostką długości zgodną z CSS (px, %, in, cm, mm, em, ex, pt lub pc).","unavailable":"%1<span class=\"cke_accessibility\">, niedostępne</span>","keyboard":{"8":"Backspace","13":"Enter","16":"Shift","17":"Ctrl","18":"Alt","32":"spacja","35":"End","36":"Home","46":"Delete","224":"Command"},"keyboardShortcut":"Skrót klawiszowy"},"about":{"copy":"Copyright &copy; $1. Wszelkie prawa zastrzeżone.","dlgTitle":"Informacje o programie CKEditor","help":"Pomoc znajdziesz w $1.","moreInfo":"Informacje na temat licencji można znaleźć na naszej stronie:","title":"Informacje o programie CKEditor","userGuide":"podręczniku użytkownika programu CKEditor"},"basicstyles":{"bold":"Pogrubienie","italic":"Kursywa","strike":"Przekreślenie","subscript":"Indeks dolny","superscript":"Indeks górny","underline":"Podkreślenie"},"blockquote":{"toolbar":"Cytat"},"notification":{"closed":"Powiadomienie zostało zamknięte."},"button":{"selectedLabel":"%1 (Wybrany)"},"toolbar":{"toolbarCollapse":"Zwiń pasek narzędzi","toolbarExpand":"Rozwiń pasek narzędzi","toolbarGroups":{"document":"Dokument","clipboard":"Schowek/Wstecz","editing":"Edycja","forms":"Formularze","basicstyles":"Style podstawowe","paragraph":"Akapit","links":"Hiperłącza","insert":"Wstawianie","styles":"Style","colors":"Kolory","tools":"Narzędzia"},"toolbars":"Paski narzędzi edytora"},"clipboard":{"copy":"Kopiuj","copyError":"Ustawienia bezpieczeństwa Twojej przeglądarki nie pozwalają na automatyczne kopiowanie tekstu. Użyj skrótu klawiszowego Ctrl/Cmd+C.","cut":"Wytnij","cutError":"Ustawienia bezpieczeństwa Twojej przeglądarki nie pozwalają na automatyczne wycinanie tekstu. Użyj skrótu klawiszowego Ctrl/Cmd+X.","paste":"Wklej","pasteNotification":"Twoja przeglądarka nie pozwala na wklejanie treści w ten sposób. Naciśnij %1 by wkleić tekst."},"contextmenu":{"options":"Opcje menu kontekstowego"},"elementspath":{"eleLabel":"Ścieżka elementów","eleTitle":"element %1"},"format":{"label":"Format","panelTitle":"Format","tag_address":"Adres","tag_div":"Normalny (DIV)","tag_h1":"Nagłówek 1","tag_h2":"Nagłówek 2","tag_h3":"Nagłówek 3","tag_h4":"Nagłówek 4","tag_h5":"Nagłówek 5","tag_h6":"Nagłówek 6","tag_p":"Normalny","tag_pre":"Tekst sformatowany"},"horizontalrule":{"toolbar":"Wstaw poziomą linię"},"image":{"alt":"Tekst zastępczy","border":"Obramowanie","btnUpload":"Wyślij","button2Img":"Czy chcesz przekonwertować zaznaczony przycisk graficzny do zwykłego obrazka?","hSpace":"Odstęp poziomy","img2Button":"Czy chcesz przekonwertować zaznaczony obrazek do przycisku graficznego?","infoTab":"Informacje o obrazku","linkTab":"Hiperłącze","lockRatio":"Zablokuj proporcje","menu":"Właściwości obrazka","resetSize":"Przywróć rozmiar","title":"Właściwości obrazka","titleButton":"Właściwości przycisku graficznego","upload":"Wyślij","urlMissing":"Podaj adres URL obrazka.","vSpace":"Odstęp pionowy","validateBorder":"Wartość obramowania musi być liczbą całkowitą.","validateHSpace":"Wartość odstępu poziomego musi być liczbą całkowitą.","validateVSpace":"Wartość odstępu pionowego musi być liczbą całkowitą."},"indent":{"indent":"Zwiększ wcięcie","outdent":"Zmniejsz wcięcie"},"fakeobjects":{"anchor":"Kotwica","flash":"Animacja Flash","hiddenfield":"Pole ukryte","iframe":"IFrame","unknown":"Nieznany obiekt"},"link":{"acccessKey":"Klawisz dostępu","advanced":"Zaawansowane","advisoryContentType":"Typ MIME obiektu docelowego","advisoryTitle":"Opis obiektu docelowego","anchor":{"toolbar":"Wstaw/edytuj kotwicę","menu":"Właściwości kotwicy","title":"Właściwości kotwicy","name":"Nazwa kotwicy","errorName":"Wpisz nazwę kotwicy","remove":"Usuń kotwicę"},"anchorId":"Wg identyfikatora","anchorName":"Wg nazwy","charset":"Kodowanie znaków obiektu docelowego","cssClasses":"Nazwa klasy CSS","download":"Wymuś pobieranie","displayText":"Wyświetlany tekst","emailAddress":"Adres e-mail","emailBody":"Treść","emailSubject":"Temat","id":"Id","info":"Informacje ","langCode":"Kod języka","langDir":"Kierunek tekstu","langDirLTR":"Od lewej do prawej (LTR)","langDirRTL":"Od prawej do lewej (RTL)","menu":"Edytuj odnośnik","name":"Nazwa","noAnchors":"(W dokumencie nie zdefiniowano żadnych kotwic)","noEmail":"Podaj adres e-mail","noUrl":"Podaj adres URL","other":"<inny>","popupDependent":"Okno zależne (Netscape)","popupFeatures":"Właściwości wyskakującego okna","popupFullScreen":"Pełny ekran (IE)","popupLeft":"Pozycja w poziomie","popupLocationBar":"Pasek adresu","popupMenuBar":"Pasek menu","popupResizable":"Skalowalny","popupScrollBars":"Paski przewijania","popupStatusBar":"Pasek statusu","popupToolbar":"Pasek narzędzi","popupTop":"Pozycja w pionie","rel":"Relacja","selectAnchor":"Wybierz kotwicę","styles":"Styl","tabIndex":"Indeks kolejności","target":"Obiekt docelowy","targetFrame":"<ramka>","targetFrameName":"Nazwa ramki docelowej","targetPopup":"<wyskakujące okno>","targetPopupName":"Nazwa wyskakującego okna","title":"Odnośnik","toAnchor":"Odnośnik wewnątrz strony (kotwica)","toEmail":"Adres e-mail","toUrl":"Adres URL","toolbar":"Wstaw/edytuj odnośnik","type":"Typ odnośnika","unlink":"Usuń odnośnik","upload":"Wyślij"},"list":{"bulletedlist":"Lista wypunktowana","numberedlist":"Lista numerowana"},"magicline":{"title":"Wstaw nowy akapit"},"maximize":{"maximize":"Maksymalizuj","minimize":"Minimalizuj"},"pastetext":{"button":"Wklej jako czysty tekst","pasteNotification":"Twoja przeglądarka nie pozwala na wklejanie treści w ten sposób. Naciśnij %1 by wkleić tekst."},"pastefromword":{"confirmCleanup":"Tekst, który chcesz wkleić, prawdopodobnie pochodzi z programu Microsoft Word. Czy chcesz go wyczyścić przed wklejeniem?","error":"Wyczyszczenie wklejonych danych nie było możliwe z powodu wystąpienia błędu.","title":"Wklej z programu MS Word","toolbar":"Wklej z programu MS Word"},"removeformat":{"toolbar":"Usuń formatowanie"},"sourcearea":{"toolbar":"Źródło dokumentu"},"specialchar":{"options":"Opcje znaków specjalnych","title":"Wybierz znak specjalny","toolbar":"Wstaw znak specjalny"},"scayt":{"btn_about":"Informacje o SCAYT","btn_dictionaries":"Słowniki","btn_disable":"Wyłącz SCAYT","btn_enable":"Włącz SCAYT","btn_langs":"Języki","btn_options":"Opcje","text_title":"Sprawdź pisownię podczas pisania (SCAYT)"},"stylescombo":{"label":"Styl","panelTitle":"Style formatujące","panelTitle1":"Style blokowe","panelTitle2":"Style liniowe","panelTitle3":"Style obiektowe"},"table":{"border":"Grubość obramowania","caption":"Tytuł","cell":{"menu":"Komórka","insertBefore":"Wstaw komórkę z lewej","insertAfter":"Wstaw komórkę z prawej","deleteCell":"Usuń komórki","merge":"Połącz komórki","mergeRight":"Połącz z komórką z prawej","mergeDown":"Połącz z komórką poniżej","splitHorizontal":"Podziel komórkę poziomo","splitVertical":"Podziel komórkę pionowo","title":"Właściwości komórki","cellType":"Typ komórki","rowSpan":"Scalenie wierszy","colSpan":"Scalenie komórek","wordWrap":"Zawijanie słów","hAlign":"Wyrównanie poziome","vAlign":"Wyrównanie pionowe","alignBaseline":"Linia bazowa","bgColor":"Kolor tła","borderColor":"Kolor obramowania","data":"Dane","header":"Nagłówek","yes":"Tak","no":"Nie","invalidWidth":"Szerokość komórki musi być liczbą.","invalidHeight":"Wysokość komórki musi być liczbą.","invalidRowSpan":"Scalenie wierszy musi być liczbą całkowitą.","invalidColSpan":"Scalenie komórek musi być liczbą całkowitą.","chooseColor":"Wybierz"},"cellPad":"Dopełnienie komórek","cellSpace":"Odstęp pomiędzy komórkami","column":{"menu":"Kolumna","insertBefore":"Wstaw kolumnę z lewej","insertAfter":"Wstaw kolumnę z prawej","deleteColumn":"Usuń kolumny"},"columns":"Liczba kolumn","deleteTable":"Usuń tabelę","headers":"Nagłówki","headersBoth":"Oba","headersColumn":"Pierwsza kolumna","headersNone":"Brak","headersRow":"Pierwszy wiersz","invalidBorder":"Wartość obramowania musi być liczbą.","invalidCellPadding":"Dopełnienie komórek musi być liczbą dodatnią.","invalidCellSpacing":"Odstęp pomiędzy komórkami musi być liczbą dodatnią.","invalidCols":"Liczba kolumn musi być większa niż 0.","invalidHeight":"Wysokość tabeli musi być liczbą.","invalidRows":"Liczba wierszy musi być większa niż 0.","invalidWidth":"Szerokość tabeli musi być liczbą.","menu":"Właściwości tabeli","row":{"menu":"Wiersz","insertBefore":"Wstaw wiersz powyżej","insertAfter":"Wstaw wiersz poniżej","deleteRow":"Usuń wiersze"},"rows":"Liczba wierszy","summary":"Podsumowanie","title":"Właściwości tabeli","toolbar":"Tabela","widthPc":"%","widthPx":"piksele","widthUnit":"jednostka szerokości"},"undo":{"redo":"Ponów","undo":"Cofnij"},"wsc":{"btnIgnore":"Ignoruj","btnIgnoreAll":"Ignoruj wszystkie","btnReplace":"Zmień","btnReplaceAll":"Zmień wszystkie","btnUndo":"Cofnij","changeTo":"Zmień na","errorLoading":"Błąd wczytywania hosta aplikacji usługi: %s.","ieSpellDownload":"Słownik nie jest zainstalowany. Czy chcesz go pobrać?","manyChanges":"Sprawdzanie zakończone: zmieniono %l słów","noChanges":"Sprawdzanie zakończone: nie zmieniono żadnego słowa","noMispell":"Sprawdzanie zakończone: nie znaleziono błędów","noSuggestions":"- Brak sugestii -","notAvailable":"Przepraszamy, ale usługa jest obecnie niedostępna.","notInDic":"Słowa nie ma w słowniku","oneChange":"Sprawdzanie zakończone: zmieniono jedno słowo","progress":"Trwa sprawdzanie...","title":"Sprawdź pisownię","toolbar":"Sprawdź pisownię"}}; \ No newline at end of file diff --git a/admin/plugins/ckeditor/lang/pt-br.js b/admin/plugins/ckeditor/lang/pt-br.js deleted file mode 100644 index f05f4e4..0000000 --- a/admin/plugins/ckeditor/lang/pt-br.js +++ /dev/null @@ -1,5 +0,0 @@ -/* -Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. -For licensing, see LICENSE.md or http://ckeditor.com/license -*/ -CKEDITOR.lang['pt-br']={"editor":"Editor de Rich Text","editorPanel":"Painel do editor de Rich Text","common":{"editorHelp":"Pressione ALT+0 para ajuda","browseServer":"Localizar no Servidor","url":"URL","protocol":"Protocolo","upload":"Enviar ao Servidor","uploadSubmit":"Enviar para o Servidor","image":"Imagem","flash":"Flash","form":"Formulário","checkbox":"Caixa de Seleção","radio":"Botão de Opção","textField":"Caixa de Texto","textarea":"Área de Texto","hiddenField":"Campo Oculto","button":"Botão","select":"Caixa de Listagem","imageButton":"Botão de Imagem","notSet":"<não ajustado>","id":"Id","name":"Nome","langDir":"Direção do idioma","langDirLtr":"Esquerda para Direita (LTR)","langDirRtl":"Direita para Esquerda (RTL)","langCode":"Idioma","longDescr":"Descrição da URL","cssClass":"Classe de CSS","advisoryTitle":"Título","cssStyle":"Estilos","ok":"OK","cancel":"Cancelar","close":"Fechar","preview":"Visualizar","resize":"Arraste para redimensionar","generalTab":"Geral","advancedTab":"Avançado","validateNumberFailed":"Este valor não é um número.","confirmNewPage":"Todas as mudanças não salvas serão perdidas. Tem certeza de que quer abrir uma nova página?","confirmCancel":"Algumas opções foram alteradas. Tem certeza de que quer fechar a caixa de diálogo?","options":"Opções","target":"Destino","targetNew":"Nova Janela (_blank)","targetTop":"Janela de Cima (_top)","targetSelf":"Mesma Janela (_self)","targetParent":"Janela Pai (_parent)","langDirLTR":"Esquerda para Direita (LTR)","langDirRTL":"Direita para Esquerda (RTL)","styles":"Estilo","cssClasses":"Classes","width":"Largura","height":"Altura","align":"Alinhamento","alignLeft":"Esquerda","alignRight":"Direita","alignCenter":"Centralizado","alignJustify":"Justificar","alignTop":"Superior","alignMiddle":"Centralizado","alignBottom":"Inferior","alignNone":"Nenhum","invalidValue":"Valor inválido.","invalidHeight":"A altura tem que ser um número","invalidWidth":"A largura tem que ser um número.","invalidCssLength":"O valor do campo \"%1\" deve ser um número positivo opcionalmente seguido por uma válida unidade de medida de CSS (px, %, in, cm, mm, em, ex, pt ou pc).","invalidHtmlLength":"O valor do campo \"%1\" deve ser um número positivo opcionalmente seguido por uma válida unidade de medida de HTML (px ou %).","invalidInlineStyle":"O valor válido para estilo deve conter uma ou mais tuplas no formato \"nome : valor\", separados por ponto e vírgula.","cssLengthTooltip":"Insira um número para valor em pixels ou um número seguido de uma válida unidade de medida de CSS (px, %, in, cm, mm, em, ex, pt ou pc).","unavailable":"%1<span class=\"cke_accessibility\">, indisponível</span>","keyboard":{"8":"Tecla Retroceder","13":"Enter","16":"Shift","17":"Ctrl","18":"Alt","32":"Tecla Espaço","35":"End","36":"Home","46":"Delete","224":"Comando"},"keyboardShortcut":"Atalho do teclado"},"about":{"copy":"Copyright &copy; $1. Todos os direitos reservados.","dlgTitle":"Sobre o CKEditor","help":"Verifique o $1 para obter ajuda.","moreInfo":"Para informações sobre a licença por favor visite o nosso site:","title":"Sobre o CKEditor","userGuide":"Guia do Usuário do CKEditor"},"basicstyles":{"bold":"Negrito","italic":"Itálico","strike":"Tachado","subscript":"Subscrito","superscript":"Sobrescrito","underline":"Sublinhado"},"blockquote":{"toolbar":"Citação"},"notification":{"closed":"Notificação fechada."},"button":{"selectedLabel":"%1 (Selecionado)"},"toolbar":{"toolbarCollapse":"Diminuir Barra de Ferramentas","toolbarExpand":"Aumentar Barra de Ferramentas","toolbarGroups":{"document":"Documento","clipboard":"Clipboard/Desfazer","editing":"Edição","forms":"Formulários","basicstyles":"Estilos Básicos","paragraph":"Paragrafo","links":"Links","insert":"Inserir","styles":"Estilos","colors":"Cores","tools":"Ferramentas"},"toolbars":"Barra de Ferramentas do Editor"},"clipboard":{"copy":"Copiar","copyError":"As configurações de segurança do seu navegador não permitem que o editor execute operações de copiar automaticamente. Por favor, utilize o teclado para copiar (Ctrl/Cmd+C).","cut":"Recortar","cutError":"As configurações de segurança do seu navegador não permitem que o editor execute operações de recortar automaticamente. Por favor, utilize o teclado para recortar (Ctrl/Cmd+X).","paste":"Colar","pasteNotification":"Your browser doesn't allow you to paste this way. Press %1 to paste."},"contextmenu":{"options":"Opções Menu de Contexto"},"elementspath":{"eleLabel":"Caminho dos Elementos","eleTitle":"Elemento %1"},"format":{"label":"Formatação","panelTitle":"Formatação","tag_address":"Endereço","tag_div":"Normal (DIV)","tag_h1":"Título 1","tag_h2":"Título 2","tag_h3":"Título 3","tag_h4":"Título 4","tag_h5":"Título 5","tag_h6":"Título 6","tag_p":"Normal","tag_pre":"Formatado"},"horizontalrule":{"toolbar":"Inserir Linha Horizontal"},"image":{"alt":"Texto Alternativo","border":"Borda","btnUpload":"Enviar para o Servidor","button2Img":"Deseja transformar o botão de imagem em uma imagem comum?","hSpace":"HSpace","img2Button":"Deseja transformar a imagem em um botão de imagem?","infoTab":"Informações da Imagem","linkTab":"Link","lockRatio":"Travar Proporções","menu":"Formatar Imagem","resetSize":"Redefinir para o Tamanho Original","title":"Formatar Imagem","titleButton":"Formatar Botão de Imagem","upload":"Enviar","urlMissing":"URL da imagem está faltando.","vSpace":"VSpace","validateBorder":"A borda deve ser um número inteiro.","validateHSpace":"O HSpace deve ser um número inteiro.","validateVSpace":"O VSpace deve ser um número inteiro."},"indent":{"indent":"Aumentar Recuo","outdent":"Diminuir Recuo"},"fakeobjects":{"anchor":"Âncora","flash":"Animação em Flash","hiddenfield":"Campo Oculto","iframe":"IFrame","unknown":"Objeto desconhecido"},"link":{"acccessKey":"Chave de Acesso","advanced":"Avançado","advisoryContentType":"Tipo de Conteúdo","advisoryTitle":"Título","anchor":{"toolbar":"Inserir/Editar Âncora","menu":"Formatar Âncora","title":"Formatar Âncora","name":"Nome da Âncora","errorName":"Por favor, digite o nome da âncora","remove":"Remover Âncora"},"anchorId":"Id da âncora","anchorName":"Nome da âncora","charset":"Charset do Link","cssClasses":"Classe de CSS","download":"Forçar Download","displayText":"Exibir Texto","emailAddress":"Endereço E-Mail","emailBody":"Corpo da Mensagem","emailSubject":"Assunto da Mensagem","id":"Id","info":"Informações","langCode":"Direção do idioma","langDir":"Direção do idioma","langDirLTR":"Esquerda para Direita (LTR)","langDirRTL":"Direita para Esquerda (RTL)","menu":"Editar Link","name":"Nome","noAnchors":"(Não há âncoras no documento)","noEmail":"Por favor, digite o endereço de e-mail","noUrl":"Por favor, digite o endereço do Link","other":"<outro>","popupDependent":"Dependente (Netscape)","popupFeatures":"Propriedades da Janela Pop-up","popupFullScreen":"Modo Tela Cheia (IE)","popupLeft":"Esquerda","popupLocationBar":"Barra de Endereços","popupMenuBar":"Barra de Menus","popupResizable":"Redimensionável","popupScrollBars":"Barras de Rolagem","popupStatusBar":"Barra de Status","popupToolbar":"Barra de Ferramentas","popupTop":"Topo","rel":"Tipo de Relação","selectAnchor":"Selecione uma âncora","styles":"Estilos","tabIndex":"Índice de Tabulação","target":"Destino","targetFrame":"<frame>","targetFrameName":"Nome do Frame de Destino","targetPopup":"<janela popup>","targetPopupName":"Nome da Janela Pop-up","title":"Editar Link","toAnchor":"Âncora nesta página","toEmail":"E-Mail","toUrl":"URL","toolbar":"Inserir/Editar Link","type":"Tipo de hiperlink","unlink":"Remover Link","upload":"Enviar ao Servidor"},"list":{"bulletedlist":"Lista sem números","numberedlist":"Lista numerada"},"magicline":{"title":"Insera um parágrafo aqui"},"maximize":{"maximize":"Maximizar","minimize":"Minimize"},"pastetext":{"button":"Colar como Texto sem Formatação","pasteNotification":"Your browser does not allow you to paste plain text this way. Press %1 to paste."},"pastefromword":{"confirmCleanup":"O texto que você deseja colar parece ter sido copiado do Word. Você gostaria de remover a formatação antes de colar?","error":"Não foi possível limpar os dados colados devido a um erro interno","title":"Colar do Word","toolbar":"Colar do Word"},"removeformat":{"toolbar":"Remover Formatação"},"sourcearea":{"toolbar":"Código-Fonte"},"specialchar":{"options":"Opções de Caractere Especial","title":"Selecione um Caractere Especial","toolbar":"Inserir Caractere Especial"},"scayt":{"btn_about":"Sobre a correção ortográfica durante a digitação","btn_dictionaries":"Dicionários","btn_disable":"Desabilitar correção ortográfica durante a digitação","btn_enable":"Habilitar correção ortográfica durante a digitação","btn_langs":"Idiomas","btn_options":"Opções","text_title":"Correção ortográfica durante a digitação"},"stylescombo":{"label":"Estilo","panelTitle":"Estilos de Formatação","panelTitle1":"Estilos de bloco","panelTitle2":"Estilos de texto corrido","panelTitle3":"Estilos de objeto"},"table":{"border":"Borda","caption":"Legenda","cell":{"menu":"Célula","insertBefore":"Inserir célula a esquerda","insertAfter":"Inserir célula a direita","deleteCell":"Remover Células","merge":"Mesclar Células","mergeRight":"Mesclar com célula a direita","mergeDown":"Mesclar com célula abaixo","splitHorizontal":"Dividir célula horizontalmente","splitVertical":"Dividir célula verticalmente","title":"Propriedades da célula","cellType":"Tipo de célula","rowSpan":"Linhas cobertas","colSpan":"Colunas cobertas","wordWrap":"Quebra de palavra","hAlign":"Alinhamento horizontal","vAlign":"Alinhamento vertical","alignBaseline":"Patamar de alinhamento","bgColor":"Cor de fundo","borderColor":"Cor das bordas","data":"Dados","header":"Cabeçalho","yes":"Sim","no":"Não","invalidWidth":"A largura da célula tem que ser um número.","invalidHeight":"A altura da célula tem que ser um número.","invalidRowSpan":"Linhas cobertas tem que ser um número inteiro.","invalidColSpan":"Colunas cobertas tem que ser um número inteiro.","chooseColor":"Escolher"},"cellPad":"Margem interna","cellSpace":"Espaçamento","column":{"menu":"Coluna","insertBefore":"Inserir coluna a esquerda","insertAfter":"Inserir coluna a direita","deleteColumn":"Remover Colunas"},"columns":"Colunas","deleteTable":"Apagar Tabela","headers":"Cabeçalho","headersBoth":"Ambos","headersColumn":"Primeira coluna","headersNone":"Nenhum","headersRow":"Primeira linha","invalidBorder":"O tamanho da borda tem que ser um número.","invalidCellPadding":"A margem interna das células tem que ser um número.","invalidCellSpacing":"O espaçamento das células tem que ser um número.","invalidCols":"O número de colunas tem que ser um número maior que 0.","invalidHeight":"A altura da tabela tem que ser um número.","invalidRows":"O número de linhas tem que ser um número maior que 0.","invalidWidth":"A largura da tabela tem que ser um número.","menu":"Formatar Tabela","row":{"menu":"Linha","insertBefore":"Inserir linha acima","insertAfter":"Inserir linha abaixo","deleteRow":"Remover Linhas"},"rows":"Linhas","summary":"Resumo","title":"Formatar Tabela","toolbar":"Tabela","widthPc":"%","widthPx":"pixels","widthUnit":"unidade largura"},"undo":{"redo":"Refazer","undo":"Desfazer"},"wsc":{"btnIgnore":"Ignorar uma vez","btnIgnoreAll":"Ignorar Todas","btnReplace":"Alterar","btnReplaceAll":"Alterar Todas","btnUndo":"Desfazer","changeTo":"Alterar para","errorLoading":"Erro carregando servidor de aplicação: %s.","ieSpellDownload":"A verificação ortográfica não foi instalada. Você gostaria de realizar o download agora?","manyChanges":"Verificação ortográfica encerrada: %1 palavras foram alteradas","noChanges":"Verificação ortográfica encerrada: Não houve alterações","noMispell":"Verificação encerrada: Não foram encontrados erros de ortografia","noSuggestions":"-sem sugestões de ortografia-","notAvailable":"Desculpe, o serviço não está disponível no momento.","notInDic":"Não encontrada","oneChange":"Verificação ortográfica encerrada: Uma palavra foi alterada","progress":"Verificação ortográfica em andamento...","title":"Corretor Ortográfico","toolbar":"Verificar Ortografia"}}; \ No newline at end of file diff --git a/admin/plugins/ckeditor/lang/pt.js b/admin/plugins/ckeditor/lang/pt.js deleted file mode 100644 index fb1a21f..0000000 --- a/admin/plugins/ckeditor/lang/pt.js +++ /dev/null @@ -1,5 +0,0 @@ -/* -Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. -For licensing, see LICENSE.md or http://ckeditor.com/license -*/ -CKEDITOR.lang['pt']={"editor":"Editor de texto enriquecido","editorPanel":"Painel do editor de texto enriquecido","common":{"editorHelp":"Pressione ALT+0 para ajuda","browseServer":"Navegar no servidor","url":"URL","protocol":"Protocolo","upload":"Carregar","uploadSubmit":"Enviar para o servidor","image":"Imagem","flash":"Flash","form":"Formulário","checkbox":"Caixa de verificação","radio":"Botão","textField":"Campo de texto","textarea":"Área de texto","hiddenField":"Campo oculto","button":"Botão","select":"Campo de seleção","imageButton":"Botão da imagem","notSet":"<Não definido>","id":"ID","name":"Nome","langDir":"Direção do idioma","langDirLtr":"Esquerda para a Direita (EPD)","langDirRtl":"Direita para a Esquerda (DPE)","langCode":"Código do idioma","longDescr":"Descrição completa do URL","cssClass":"Classes de estilo das folhas","advisoryTitle":"Título consultivo","cssStyle":"Estilo","ok":"CONFIRMAR","cancel":"Cancelar","close":"Fechar","preview":"Pré-visualização","resize":"Redimensionar","generalTab":"Geral","advancedTab":"Avançado","validateNumberFailed":"Este valor não é um numero.","confirmNewPage":"Irão ser perdidas quaisquer alterações não guardadas. Tem a certeza que deseja carregar a nova página?","confirmCancel":"Foram alteradas algumas das opções. Tem a certeza que deseja fechar a janela?","options":"Opções","target":"Destino","targetNew":"Nova janela (_blank)","targetTop":"Janela superior (_top)","targetSelf":"Mesma janela (_self)","targetParent":"Janela dependente (_parent)","langDirLTR":"Esquerda para a Direita (EPD)","langDirRTL":"Direita para a Esquerda (DPE)","styles":"Estilo","cssClasses":"Classes de folhas de estilo","width":"Largura","height":"Altura","align":"Alinhamento","alignLeft":"Esquerda","alignRight":"Direita","alignCenter":"Centrado","alignJustify":"Justificado","alignTop":"Topo","alignMiddle":"Centro","alignBottom":"Base","alignNone":"Nenhum","invalidValue":"Valor inválido.","invalidHeight":"A altura deve ser um número.","invalidWidth":"A largura deve ser um número. ","invalidCssLength":"O valor especificado para o campo \"1%\" deve ser um número positivo, com ou sem uma unidade de medida CSS válida (px, %, in, cm, mm, em, ex, pt, ou pc).","invalidHtmlLength":"O valor especificado para o campo \"1%\" deve ser um número positivo, com ou sem uma unidade de medida HTML válida (px ou %).","invalidInlineStyle":"O valor especificado para o estilo em linha deve constituir um ou mais conjuntos de valores com o formato de \"nome : valor\", separados por ponto e vírgula.","cssLengthTooltip":"Insira um número para um valor em pontos ou um número com uma unidade CSS válida (px, %, in, cm, mm, em, ex, pt, ou pc).","unavailable":"%1<span class=\"cke_accessibility\">, indisponível</span>","keyboard":{"8":"Backspace","13":"Enter","16":"Shift","17":"Ctrl","18":"Alt","32":"Espaço","35":"Fim","36":"Entrada","46":"Eliminar","224":"Comando"},"keyboardShortcut":"Keyboard shortcut"},"about":{"copy":"Direitos de Autor &copy; $1. Todos os direitos reservados.","dlgTitle":"Sobre o CKEditor","help":"Doar $1 para ajudar.","moreInfo":"Para informação sobre licenciamento visite o nosso sítio web:","title":"Sobre o CKEditor","userGuide":"CKEditor - Guia do utilizador"},"basicstyles":{"bold":"Negrito","italic":"Itálico","strike":"Rasurado","subscript":"Superior à linha","superscript":"Superior à linha","underline":"Sublinhado"},"blockquote":{"toolbar":"Bloco de citação"},"notification":{"closed":"Notificação encerrada."},"button":{"selectedLabel":"%1 (Selecionado)"},"toolbar":{"toolbarCollapse":"Ocultar barra de ferramentas","toolbarExpand":"Expandir barra de ferramentas","toolbarGroups":{"document":"Documento","clipboard":"Área de transferência/Anular","editing":"Edição","forms":"Formulários","basicstyles":"Estilos básicos","paragraph":"Parágrafo","links":"Hiperligações","insert":"Inserir","styles":"Estilos","colors":"Cores","tools":"Ferramentas"},"toolbars":"Editor de barras de ferramentas"},"clipboard":{"copy":"Copiar","copyError":"A configuração de segurança do navegador não permite a execução automática de operações de copiar. Por favor use o teclado (Ctrl/Cmd+C).","cut":"Cortar","cutError":"A configuração de segurança do navegador não permite a execução automática de operações de cortar. Por favor use o teclado (Ctrl/Cmd+X).","paste":"Colar","pasteNotification":"Your browser doesn't allow you to paste this way. Press %1 to paste."},"contextmenu":{"options":"Menu de opções de contexto"},"elementspath":{"eleLabel":"Caminho dos elementos","eleTitle":"Elemento %1"},"format":{"label":"Formatar","panelTitle":"Formatar Parágrafo","tag_address":"Endereço","tag_div":"Normal (DIV)","tag_h1":"Título 1","tag_h2":"Título 2","tag_h3":"Título 3","tag_h4":"Título 4","tag_h5":"Título 5","tag_h6":"Título 6","tag_p":"Normal","tag_pre":"Formatado"},"horizontalrule":{"toolbar":"Inserir linha horizontal"},"image":{"alt":"Texto alternativo","border":"Limite","btnUpload":"Enviar para o servidor","button2Img":"Deseja transformar o botão com imagem selecionado numa imagem simples?","hSpace":"Esp. Horiz","img2Button":"Deseja transformar a imagem selecionada num botão com imagem?","infoTab":"Informação da imagem","linkTab":"Hiperligação","lockRatio":"Proporcional","menu":"Propriedades da Imagem","resetSize":"Tamanho original","title":"Propriedades da imagem","titleButton":"Propriedades do botão de imagem","upload":"Carregar","urlMissing":"O URL de origem da imagem está em falta.","vSpace":"Esp. Vert","validateBorder":"A borda tem de ser um número inteiro.","validateHSpace":"HSpace tem de ser um numero.","validateVSpace":"VSpace tem de ser um numero."},"indent":{"indent":"Aumentar avanço","outdent":"Diminuir avanço"},"fakeobjects":{"anchor":" Inserir/Editar âncora","flash":"Animação Flash","hiddenfield":"Campo oculto","iframe":"IFrame","unknown":"Objeto desconhecido"},"link":{"acccessKey":"Chave de acesso","advanced":"Avançado","advisoryContentType":"Tipo de conteúdo","advisoryTitle":"Título","anchor":{"toolbar":" Inserir/Editar âncora","menu":"Propriedades da âncora","title":"Propriedades da âncora","name":"Nome da âncora","errorName":"Por favor, introduza o nome da âncora","remove":"Remover âncora"},"anchorId":"Por ID do elemento","anchorName":"Por Nome de Referência","charset":"Fonte de caracteres vinculado","cssClasses":"Classes de Estilo","download":"Force Download","displayText":"Mostrar texto","emailAddress":"Endereço de email","emailBody":"Corpo da mensagem","emailSubject":"Título de mensagem","id":"ID","info":"Informação da hiperligação","langCode":"Código de idioma","langDir":"Orientação de idioma","langDirLTR":"Esquerda para a Direita (EPD)","langDirRTL":"Direita para a Esquerda (DPE)","menu":"Editar hiperligação","name":"Nome","noAnchors":"(Não existem âncoras no documento)","noEmail":"Por favor, escreva o endereço de email","noUrl":"Por favor, introduza o endereço URL","other":"<outro>","popupDependent":"Dependente (Netscape)","popupFeatures":"Características de janela flutuante","popupFullScreen":"Janela completa (IE)","popupLeft":"Posição esquerda","popupLocationBar":"Barra de localização","popupMenuBar":"Barra de menu","popupResizable":"Redimensionável","popupScrollBars":"Barras de deslocamento","popupStatusBar":"Barra de estado","popupToolbar":"Barra de ferramentas","popupTop":"Posição topo","rel":"Relação","selectAnchor":"Selecionar âncora","styles":"Estilo","tabIndex":"Índice de tabulação","target":"Alvo","targetFrame":"<frame>","targetFrameName":"Nome da janela de destino","targetPopup":"<janela de popup>","targetPopupName":"Nome da janela flutuante","title":"Hiperligação","toAnchor":"Ligar a âncora no texto","toEmail":"Email","toUrl":"URL","toolbar":"Hiperligação","type":"Tipo de hiperligação","unlink":"Eliminar hiperligação","upload":"Carregar"},"list":{"bulletedlist":"Marcas","numberedlist":"Numeração"},"magicline":{"title":"Inserir parágrafo aqui"},"maximize":{"maximize":"Maximizar","minimize":"Minimizar"},"pastetext":{"button":"Colar como texto simples","pasteNotification":"Your browser does not allow you to paste plain text this way. Press %1 to paste."},"pastefromword":{"confirmCleanup":"O texto que pretende colar parece ter sido copiado do Word. Deseja limpar o código antes de o colar?","error":"Não foi possível limpar a informação colada devido a um erro interno.","title":"Colar do Word","toolbar":"Colar do Word"},"removeformat":{"toolbar":"Limpar formatação"},"sourcearea":{"toolbar":"Fonte"},"specialchar":{"options":"Opções de caracteres especiais","title":"Selecione um caracter especial","toolbar":"Inserir carácter especial"},"scayt":{"btn_about":"About SCAYT","btn_dictionaries":"Dictionaries","btn_disable":"Disable SCAYT","btn_enable":"Enable SCAYT","btn_langs":"Languages","btn_options":"Options","text_title":"Spell Check As You Type"},"stylescombo":{"label":"Estilos","panelTitle":"Estilos de formatação","panelTitle1":"Estilos de bloco","panelTitle2":"Estilos nas etiquetas","panelTitle3":"Estilos em objeto"},"table":{"border":"Tamanho do contorno","caption":"Legenda","cell":{"menu":"Célula","insertBefore":"Inserir célula antes","insertAfter":"Inserir célula depois","deleteCell":"Apagar células","merge":"Unir células","mergeRight":"Unir à direita","mergeDown":"Fundir abaixo","splitHorizontal":"Dividir célula horizontalmente","splitVertical":"Dividir célula verticalmente","title":"Propriedades da célula","cellType":"Tipo de célula","rowSpan":"Linhas na célula","colSpan":"Colunas na célula","wordWrap":"Moldar texto","hAlign":"Alinhamento horizontal","vAlign":"Alinhamento vertical","alignBaseline":"Linha base","bgColor":"Cor de fundo","borderColor":"Cor da margem","data":"Dados","header":"Cabeçalho","yes":"Sim","no":"Não","invalidWidth":"A largura da célula deve ser um número.","invalidHeight":"A altura da célula deve ser um número.","invalidRowSpan":"As linhas da célula devem ser um número inteiro.","invalidColSpan":"As colunas da célula devem ter um número inteiro.","chooseColor":"Escolher"},"cellPad":"Espaço interior","cellSpace":"Espaçamento de célula","column":{"menu":"Coluna","insertBefore":"Inserir coluna antes","insertAfter":"Inserir coluna depois","deleteColumn":"Apagar colunas"},"columns":"Colunas","deleteTable":"Apagar tabela","headers":"Cabeçalhos","headersBoth":"Ambos","headersColumn":"Primeira coluna","headersNone":"Nenhum","headersRow":"Primeira linha","invalidBorder":"O tamanho da margem tem de ser um número.","invalidCellPadding":"A criação do espaço na célula deve ser um número positivo.","invalidCellSpacing":"O espaçamento da célula deve ser um número positivo.","invalidCols":"O número de colunas tem de ser um número maior que 0.","invalidHeight":"A altura da tabela tem de ser um número.","invalidRows":"O número de linhas tem de ser maior que 0.","invalidWidth":"A largura da tabela tem de ser um número.","menu":"Propriedades da tabela","row":{"menu":"Linha","insertBefore":"Inserir linha antes","insertAfter":"Inserir linha depois","deleteRow":"Apagar linhas"},"rows":"Linhas","summary":"Resumo","title":"Propriedades da tabela","toolbar":"Tabela","widthPc":"percentagem","widthPx":"pixéis","widthUnit":"unidade da largura"},"undo":{"redo":"Refazer","undo":"Anular"},"wsc":{"btnIgnore":"Ignorar","btnIgnoreAll":"Ignorar Tudo","btnReplace":"Substituir","btnReplaceAll":"Substituir Tudo","btnUndo":"Anular","changeTo":"Mudar para","errorLoading":"Error loading application service host: %s.","ieSpellDownload":" Verificação ortográfica não instalada. Quer descarregar agora?","manyChanges":"Verificação ortográfica completa: %1 palavras alteradas","noChanges":"Verificação ortográfica completa: não houve alteração de palavras","noMispell":"Verificação ortográfica completa: não foram encontrados erros","noSuggestions":"- Sem sugestões -","notAvailable":"Sorry, but service is unavailable now.","notInDic":"Não está num directório","oneChange":"Verificação ortográfica completa: uma palavra alterada","progress":"Verificação ortográfica em progresso…","title":"Spell Checker","toolbar":"Verificação Ortográfica"}}; \ No newline at end of file diff --git a/admin/plugins/ckeditor/lang/ro.js b/admin/plugins/ckeditor/lang/ro.js deleted file mode 100644 index 93ae425..0000000 --- a/admin/plugins/ckeditor/lang/ro.js +++ /dev/null @@ -1,5 +0,0 @@ -/* -Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. -For licensing, see LICENSE.md or http://ckeditor.com/license -*/ -CKEDITOR.lang['ro']={"editor":"Rich Text Editor","editorPanel":"Rich Text Editor panel","common":{"editorHelp":"Apasă ALT 0 pentru ajutor","browseServer":"Răsfoieşte server","url":"URL","protocol":"Protocol","upload":"Încarcă","uploadSubmit":"Trimite la server","image":"Imagine","flash":"Flash","form":"Formular (Form)","checkbox":"Bifă (Checkbox)","radio":"Buton radio (RadioButton)","textField":"Câmp text (TextField)","textarea":"Suprafaţă text (Textarea)","hiddenField":"Câmp ascuns (HiddenField)","button":"Buton","select":"Câmp selecţie (SelectionField)","imageButton":"Buton imagine (ImageButton)","notSet":"<nesetat>","id":"Id","name":"Nume","langDir":"Direcţia cuvintelor","langDirLtr":"stânga-dreapta (LTR)","langDirRtl":"dreapta-stânga (RTL)","langCode":"Codul limbii","longDescr":"Descrierea lungă URL","cssClass":"Clasele cu stilul paginii (CSS)","advisoryTitle":"Titlul consultativ","cssStyle":"Stil","ok":"OK","cancel":"Anulare","close":"Închide","preview":"Previzualizare","resize":"Trage pentru a redimensiona","generalTab":"General","advancedTab":"Avansat","validateNumberFailed":"Această valoare nu este un număr.","confirmNewPage":"Orice modificări nesalvate ale acestui conținut, vor fi pierdute. Sigur doriți încărcarea unei noi pagini?","confirmCancel":"Câteva opțiuni au fost schimbate. Sigur doriți să închideți dialogul?","options":"Opțiuni","target":"Țintă","targetNew":"Fereastră nouă (_blank)","targetTop":"Topmost Window (_top)","targetSelf":"În aceeași fereastră (_self)","targetParent":"Parent Window (_parent)","langDirLTR":"Stânga spre Dreapta (LTR)","langDirRTL":"Dreapta spre Stânga (RTL)","styles":"Stil","cssClasses":"Stylesheet Classes","width":"Lăţime","height":"Înălţime","align":"Aliniere","alignLeft":"Mărește Bara","alignRight":"Dreapta","alignCenter":"Centru","alignJustify":"Aliniere în bloc (Block Justify)","alignTop":"Sus","alignMiddle":"Mijloc","alignBottom":"Jos","alignNone":"None","invalidValue":"Valoare invalidă","invalidHeight":"Înălțimea trebuie să fie un număr.","invalidWidth":"Lățimea trebuie să fie un număr.","invalidCssLength":"Valoarea specificată pentru câmpul \"%1\" trebuie să fie un număr pozitiv cu sau fără o unitate de măsură CSS (px, %, in, cm, mm, em, ex, pt, sau pc).","invalidHtmlLength":"Valoarea specificată pentru câmpul \"%1\" trebuie să fie un număr pozitiv cu sau fără o unitate de măsură HTML (px sau %).","invalidInlineStyle":"Valoarea specificată pentru stil trebuie să conțină una sau mai multe construcții de tipul \"name : value\", separate prin punct și virgulă.","cssLengthTooltip":"Introduceți un număr în pixeli sau un număr cu o unitate de măsură CSS (px, %, in, cm, mm, em, ex, pt, sau pc).","unavailable":"%1<span class=\"cke_accessibility\">, nu este disponibil</span>","keyboard":{"8":"Backspace","13":"Enter","16":"Shift","17":"Ctrl","18":"Alt","32":"Space","35":"End","36":"Home","46":"Delete","224":"Command"},"keyboardShortcut":"Keyboard shortcut"},"about":{"copy":"Copyright &copy; $1. Toate drepturile rezervate.","dlgTitle":"Despre CKEeditor","help":"Citește $1 pentru ajutor.","moreInfo":"Pentru informații despre licență, vă rugăm vizitați web site-ul nostru:","title":"Despre CKEditor","userGuide":"CKEditor Ghid Utilizator"},"basicstyles":{"bold":"Îngroşat (bold)","italic":"Înclinat (italic)","strike":"Tăiat (strike through)","subscript":"Indice (subscript)","superscript":"Putere (superscript)","underline":"Subliniat (underline)"},"blockquote":{"toolbar":"Citat"},"notification":{"closed":"Notification closed."},"button":{"selectedLabel":"%1 (Selectat)"},"toolbar":{"toolbarCollapse":"Micșorează Bara","toolbarExpand":"Mărește Bara","toolbarGroups":{"document":"Document","clipboard":"Clipboard/Undo","editing":"Editing","forms":"Forms","basicstyles":"Basic Styles","paragraph":"Paragraph","links":"Links","insert":"Insert","styles":"Styles","colors":"Colors","tools":"Tools"},"toolbars":"Editează bara de unelte"},"clipboard":{"copy":"Copiază","copyError":"Setările de securitate ale navigatorului (browser) pe care îl folosiţi nu permit editorului să execute automat operaţiunea de copiere. Vă rugăm folosiţi tastatura (Ctrl/Cmd+C).","cut":"Taie","cutError":"Setările de securitate ale navigatorului (browser) pe care îl folosiţi nu permit editorului să execute automat operaţiunea de tăiere. Vă rugăm folosiţi tastatura (Ctrl/Cmd+X).","paste":"Adaugă","pasteNotification":"Your browser doesn't allow you to paste this way. Press %1 to paste."},"contextmenu":{"options":"Opțiuni Meniu Contextual"},"elementspath":{"eleLabel":"Calea elementelor","eleTitle":"%1 element"},"format":{"label":"Formatare","panelTitle":"Formatare","tag_address":"Adresă","tag_div":"Normal (DIV)","tag_h1":"Heading 1","tag_h2":"Heading 2","tag_h3":"Heading 3","tag_h4":"Heading 4","tag_h5":"Heading 5","tag_h6":"Heading 6","tag_p":"Normal","tag_pre":"Formatat"},"horizontalrule":{"toolbar":"Inserează linie orizontală"},"image":{"alt":"Text alternativ","border":"Margine","btnUpload":"Trimite la server","button2Img":"Do you want to transform the selected image button on a simple image?","hSpace":"HSpace","img2Button":"Do you want to transform the selected image on a image button?","infoTab":"Informaţii despre imagine","linkTab":"Link (Legătură web)","lockRatio":"Păstrează proporţiile","menu":"Proprietăţile imaginii","resetSize":"Resetează mărimea","title":"Proprietăţile imaginii","titleButton":"Proprietăţi buton imagine (Image Button)","upload":"Încarcă","urlMissing":"Sursa URL a imaginii lipsește.","vSpace":"VSpace","validateBorder":"Bordura trebuie să fie un număr întreg.","validateHSpace":"Hspace trebuie să fie un număr întreg.","validateVSpace":"Vspace trebuie să fie un număr întreg."},"indent":{"indent":"Creşte indentarea","outdent":"Scade indentarea"},"fakeobjects":{"anchor":"Inserează/Editează ancoră","flash":"Flash Animation","hiddenfield":"Câmp ascuns (HiddenField)","iframe":"IFrame","unknown":"Unknown Object"},"link":{"acccessKey":"Tasta de acces","advanced":"Avansat","advisoryContentType":"Tipul consultativ al titlului","advisoryTitle":"Titlul consultativ","anchor":{"toolbar":"Inserează/Editează ancoră","menu":"Proprietăţi ancoră","title":"Proprietăţi ancoră","name":"Numele ancorei","errorName":"Vă rugăm scrieţi numele ancorei","remove":"Elimină ancora"},"anchorId":"după Id-ul elementului","anchorName":"după numele ancorei","charset":"Setul de caractere al resursei legate","cssClasses":"Clasele cu stilul paginii (CSS)","download":"Force Download","displayText":"Display Text","emailAddress":"Adresă de e-mail","emailBody":"Opțiuni Meniu Contextual","emailSubject":"Subiectul mesajului","id":"Id","info":"Informaţii despre link (Legătură web)","langCode":"Direcţia cuvintelor","langDir":"Direcţia cuvintelor","langDirLTR":"stânga-dreapta (LTR)","langDirRTL":"dreapta-stânga (RTL)","menu":"Editează Link","name":"Nume","noAnchors":"(Nicio ancoră disponibilă în document)","noEmail":"Vă rugăm să scrieţi adresa de e-mail","noUrl":"Vă rugăm să scrieţi URL-ul","other":"<alt>","popupDependent":"Dependent (Netscape)","popupFeatures":"Proprietăţile ferestrei popup","popupFullScreen":"Tot ecranul (Full Screen)(IE)","popupLeft":"Poziţia la stânga","popupLocationBar":"Bara de locaţie","popupMenuBar":"Bara de meniu","popupResizable":"Redimensionabil","popupScrollBars":"Bare de derulare","popupStatusBar":"Bara de status","popupToolbar":"Bara de opţiuni","popupTop":"Poziţia la dreapta","rel":"Relație","selectAnchor":"Selectaţi o ancoră","styles":"Stil","tabIndex":"Indexul tabului","target":"Ţintă (Target)","targetFrame":"<frame>","targetFrameName":"Numele frameului ţintă","targetPopup":"<fereastra popup>","targetPopupName":"Numele ferestrei popup","title":"Link (Legătură web)","toAnchor":"Ancoră în această pagină","toEmail":"E-Mail","toUrl":"URL","toolbar":"Inserează/Editează link (legătură web)","type":"Tipul link-ului (al legăturii web)","unlink":"Înlătură link (legătură web)","upload":"Încarcă"},"list":{"bulletedlist":"Inserează / Elimină Listă cu puncte","numberedlist":"Inserează / Elimină Listă numerotată"},"magicline":{"title":"Insert paragraph here"},"maximize":{"maximize":"Mărește","minimize":"Micșorează"},"pastetext":{"button":"Adaugă ca text simplu (Plain Text)","pasteNotification":"Your browser does not allow you to paste plain text this way. Press %1 to paste."},"pastefromword":{"confirmCleanup":"Textul pe care doriți să-l lipiți este din Word. Doriți curățarea textului înante de a-l adăuga?","error":"Nu a fost posibilă curățarea datelor adăugate datorită unei erori interne","title":"Adaugă din Word","toolbar":"Adaugă din Word"},"removeformat":{"toolbar":"Înlătură formatarea"},"sourcearea":{"toolbar":"Sursa"},"specialchar":{"options":"Opțiuni caractere speciale","title":"Selectează caracter special","toolbar":"Inserează caracter special"},"scayt":{"btn_about":"About SCAYT","btn_dictionaries":"Dictionaries","btn_disable":"Disable SCAYT","btn_enable":"Enable SCAYT","btn_langs":"Languages","btn_options":"Options","text_title":"Spell Check As You Type"},"stylescombo":{"label":"Stil","panelTitle":"Formatarea stilurilor","panelTitle1":"Block Styles","panelTitle2":"Inline Styles","panelTitle3":"Object Styles"},"table":{"border":"Mărimea marginii","caption":"Titlu (Caption)","cell":{"menu":"Celulă","insertBefore":"Inserează celulă înainte","insertAfter":"Inserează celulă după","deleteCell":"Şterge celule","merge":"Uneşte celule","mergeRight":"Uneşte la dreapta","mergeDown":"Uneşte jos","splitHorizontal":"Împarte celula pe orizontală","splitVertical":"Împarte celula pe verticală","title":"Proprietăți celulă","cellType":"Tipul celulei","rowSpan":"Rows Span","colSpan":"Columns Span","wordWrap":"Word Wrap","hAlign":"Aliniament orizontal","vAlign":"Aliniament vertical","alignBaseline":"Baseline","bgColor":"Culoare fundal","borderColor":"Culoare bordură","data":"Data","header":"Antet","yes":"Da","no":"Nu","invalidWidth":"Lățimea celulei trebuie să fie un număr.","invalidHeight":"Înălțimea celulei trebuie să fie un număr.","invalidRowSpan":"Rows span must be a whole number.","invalidColSpan":"Columns span must be a whole number.","chooseColor":"Alege"},"cellPad":"Spaţiu în cadrul celulei","cellSpace":"Spaţiu între celule","column":{"menu":"Coloană","insertBefore":"Inserează coloană înainte","insertAfter":"Inserează coloană după","deleteColumn":"Şterge celule"},"columns":"Coloane","deleteTable":"Şterge tabel","headers":"Antente","headersBoth":"Ambele","headersColumn":"Prima coloană","headersNone":"Nimic","headersRow":"Primul rând","invalidBorder":"Dimensiunea bordurii trebuie să aibe un număr.","invalidCellPadding":"Spațierea celulei trebuie sa fie un număr pozitiv","invalidCellSpacing":"Spațierea celului trebuie să fie un număr pozitiv.","invalidCols":"Numărul coloanelor trebuie să fie mai mare decât 0.","invalidHeight":"Inaltimea celulei trebuie sa fie un numar.","invalidRows":"Numărul rândurilor trebuie să fie mai mare decât 0.","invalidWidth":"Lățimea tabelului trebuie să fie un număr.","menu":"Proprietăţile tabelului","row":{"menu":"Rând","insertBefore":"Inserează rând înainte","insertAfter":"Inserează rând după","deleteRow":"Şterge rânduri"},"rows":"Rânduri","summary":"Rezumat","title":"Proprietăţile tabelului","toolbar":"Tabel","widthPc":"procente","widthPx":"pixeli","widthUnit":"unitate lățime"},"undo":{"redo":"Starea ulterioară (redo)","undo":"Starea anterioară (undo)"},"wsc":{"btnIgnore":"Ignoră","btnIgnoreAll":"Ignoră toate","btnReplace":"Înlocuieşte","btnReplaceAll":"Înlocuieşte tot","btnUndo":"Starea anterioară (undo)","changeTo":"Schimbă în","errorLoading":"Eroare în lansarea aplicației service host %s.","ieSpellDownload":"Unealta pentru verificat textul (Spell checker) neinstalată. Doriţi să o descărcaţi acum?","manyChanges":"Verificarea textului terminată: 1% cuvinte modificate","noChanges":"Verificarea textului terminată: Niciun cuvânt modificat","noMispell":"Verificarea textului terminată: Nicio greşeală găsită","noSuggestions":"- Fără sugestii -","notAvailable":"Scuzați, dar serviciul nu este disponibil momentan.","notInDic":"Nu e în dicţionar","oneChange":"Verificarea textului terminată: Un cuvânt modificat","progress":"Verificarea textului în desfăşurare...","title":"Spell Checker","toolbar":"Verifică scrierea textului"}}; \ No newline at end of file diff --git a/admin/plugins/ckeditor/lang/ru.js b/admin/plugins/ckeditor/lang/ru.js deleted file mode 100644 index f7b5f32..0000000 --- a/admin/plugins/ckeditor/lang/ru.js +++ /dev/null @@ -1,5 +0,0 @@ -/* -Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. -For licensing, see LICENSE.md or http://ckeditor.com/license -*/ -CKEDITOR.lang['ru']={"editor":"Визуальный текстовый редактор","editorPanel":"Визуальный редактор текста","common":{"editorHelp":"Нажмите ALT-0 для открытия справки","browseServer":"Выбор на сервере","url":"Ссылка","protocol":"Протокол","upload":"Загрузка файла","uploadSubmit":"Загрузить на сервер","image":"Изображение","flash":"Flash","form":"Форма","checkbox":"Чекбокс","radio":"Радиокнопка","textField":"Текстовое поле","textarea":"Многострочное текстовое поле","hiddenField":"Скрытое поле","button":"Кнопка","select":"Выпадающий список","imageButton":"Кнопка-изображение","notSet":"<не указано>","id":"Идентификатор","name":"Имя","langDir":"Направление текста","langDirLtr":"Слева направо (LTR)","langDirRtl":"Справа налево (RTL)","langCode":"Код языка","longDescr":"Длинное описание ссылки","cssClass":"Класс CSS","advisoryTitle":"Заголовок","cssStyle":"Стиль","ok":"ОК","cancel":"Отмена","close":"Закрыть","preview":"Предпросмотр","resize":"Перетащите для изменения размера","generalTab":"Основное","advancedTab":"Дополнительно","validateNumberFailed":"Это значение не является числом.","confirmNewPage":"Несохранённые изменения будут потеряны! Вы действительно желаете перейти на другую страницу?","confirmCancel":"Некоторые параметры были изменены. Вы уверены, что желаете закрыть без сохранения?","options":"Параметры","target":"Цель","targetNew":"Новое окно (_blank)","targetTop":"Главное окно (_top)","targetSelf":"Текущее окно (_self)","targetParent":"Родительское окно (_parent)","langDirLTR":"Слева направо (LTR)","langDirRTL":"Справа налево (RTL)","styles":"Стиль","cssClasses":"CSS классы","width":"Ширина","height":"Высота","align":"Выравнивание","alignLeft":"По левому краю","alignRight":"По правому краю","alignCenter":"По центру","alignJustify":"По ширине","alignTop":"Поверху","alignMiddle":"Посередине","alignBottom":"Понизу","alignNone":"Нет","invalidValue":"Недопустимое значение.","invalidHeight":"Высота задается числом.","invalidWidth":"Ширина задается числом.","invalidCssLength":"Значение, указанное в поле \"%1\", должно быть положительным целым числом. Допускается указание единиц меры CSS (px, %, in, cm, mm, em, ex, pt или pc).","invalidHtmlLength":"Значение, указанное в поле \"%1\", должно быть положительным целым числом. Допускается указание единиц меры HTML (px или %).","invalidInlineStyle":"Значение, указанное для стиля элемента, должно состоять из одной или нескольких пар данных в формате \"параметр : значение\", разделённых точкой с запятой.","cssLengthTooltip":"Введите значение в пикселях, либо число с корректной единицей меры CSS (px, %, in, cm, mm, em, ex, pt или pc).","unavailable":"%1<span class=\"cke_accessibility\">, недоступно</span>","keyboard":{"8":"Backspace","13":"Enter","16":"Shift","17":"Ctrl","18":"Alt","32":"Пробел","35":"End","36":"Home","46":"Delete","224":"Command"},"keyboardShortcut":"Комбинация клавиш"},"about":{"copy":"Copyright &copy; $1. Все права защищены.","dlgTitle":"О CKEditor","help":"$1 содержит подробную справку по использованию.","moreInfo":"Для получения информации о лицензии, пожалуйста, перейдите на наш сайт:","title":"О CKEditor","userGuide":"Руководство пользователя CKEditor"},"basicstyles":{"bold":"Полужирный","italic":"Курсив","strike":"Зачеркнутый","subscript":"Подстрочный индекс","superscript":"Надстрочный индекс","underline":"Подчеркнутый"},"blockquote":{"toolbar":"Цитата"},"notification":{"closed":"Уведомление закрыто"},"button":{"selectedLabel":"%1 (Выбрано)"},"toolbar":{"toolbarCollapse":"Свернуть панель инструментов","toolbarExpand":"Развернуть панель инструментов","toolbarGroups":{"document":"Документ","clipboard":"Буфер обмена / Отмена действий","editing":"Корректировка","forms":"Формы","basicstyles":"Простые стили","paragraph":"Абзац","links":"Ссылки","insert":"Вставка","styles":"Стили","colors":"Цвета","tools":"Инструменты"},"toolbars":"Панели инструментов редактора"},"clipboard":{"copy":"Копировать","copyError":"Настройки безопасности вашего браузера не разрешают редактору выполнять операции по копированию текста. Пожалуйста, используйте для этого клавиатуру (Ctrl/Cmd+C).","cut":"Вырезать","cutError":"Настройки безопасности вашего браузера не разрешают редактору выполнять операции по вырезке текста. Пожалуйста, используйте для этого клавиатуру (Ctrl/Cmd+X).","paste":"Вставить","pasteNotification":"Ваш браузер не поддерживает данный метод вставки. Для вставки нажмите %1"},"contextmenu":{"options":"Параметры контекстного меню"},"elementspath":{"eleLabel":"Путь элементов","eleTitle":"Элемент %1"},"format":{"label":"Форматирование","panelTitle":"Форматирование","tag_address":"Адрес","tag_div":"Обычное (div)","tag_h1":"Заголовок 1","tag_h2":"Заголовок 2","tag_h3":"Заголовок 3","tag_h4":"Заголовок 4","tag_h5":"Заголовок 5","tag_h6":"Заголовок 6","tag_p":"Обычное","tag_pre":"Моноширинное"},"horizontalrule":{"toolbar":"Вставить горизонтальную линию"},"image":{"alt":"Альтернативный текст","border":"Граница","btnUpload":"Загрузить на сервер","button2Img":"Вы желаете преобразовать это изображение-кнопку в обычное изображение?","hSpace":"Гориз. отступ","img2Button":"Вы желаете преобразовать это обычное изображение в изображение-кнопку?","infoTab":"Данные об изображении","linkTab":"Ссылка","lockRatio":"Сохранять пропорции","menu":"Свойства изображения","resetSize":"Вернуть обычные размеры","title":"Свойства изображения","titleButton":"Свойства изображения-кнопки","upload":"Загрузить","urlMissing":"Не указана ссылка на изображение.","vSpace":"Вертик. отступ","validateBorder":"Размер границ должен быть задан числом.","validateHSpace":"Горизонтальный отступ должен быть задан числом.","validateVSpace":"Вертикальный отступ должен быть задан числом."},"indent":{"indent":"Увеличить отступ","outdent":"Уменьшить отступ"},"fakeobjects":{"anchor":"Якорь","flash":"Flash анимация","hiddenfield":"Скрытое поле","iframe":"iFrame","unknown":"Неизвестный объект"},"link":{"acccessKey":"Клавиша доступа","advanced":"Дополнительно","advisoryContentType":"Тип содержимого","advisoryTitle":"Заголовок","anchor":{"toolbar":"Вставить / редактировать якорь","menu":"Изменить якорь","title":"Свойства якоря","name":"Имя якоря","errorName":"Пожалуйста, введите имя якоря","remove":"Удалить якорь"},"anchorId":"По идентификатору","anchorName":"По имени","charset":"Кодировка ресурса","cssClasses":"Классы CSS","download":"Скачать как файл","displayText":"Отображаемый текст","emailAddress":"Email адрес","emailBody":"Текст сообщения","emailSubject":"Тема сообщения","id":"Идентификатор","info":"Информация о ссылке","langCode":"Код языка","langDir":"Направление текста","langDirLTR":"Слева направо (LTR)","langDirRTL":"Справа налево (RTL)","menu":"Редактировать ссылку","name":"Имя","noAnchors":"(В документе нет ни одного якоря)","noEmail":"Пожалуйста, введите email адрес","noUrl":"Пожалуйста, введите ссылку","other":"<другой>","popupDependent":"Зависимое (Netscape)","popupFeatures":"Параметры всплывающего окна","popupFullScreen":"Полноэкранное (IE)","popupLeft":"Отступ слева","popupLocationBar":"Панель адреса","popupMenuBar":"Панель меню","popupResizable":"Изменяемый размер","popupScrollBars":"Полосы прокрутки","popupStatusBar":"Строка состояния","popupToolbar":"Панель инструментов","popupTop":"Отступ сверху","rel":"Отношение","selectAnchor":"Выберите якорь","styles":"Стиль","tabIndex":"Последовательность перехода","target":"Цель","targetFrame":"<фрейм>","targetFrameName":"Имя целевого фрейма","targetPopup":"<всплывающее окно>","targetPopupName":"Имя всплывающего окна","title":"Ссылка","toAnchor":"Ссылка на якорь в тексте","toEmail":"Email","toUrl":"Ссылка","toolbar":"Вставить/Редактировать ссылку","type":"Тип ссылки","unlink":"Убрать ссылку","upload":"Загрузка"},"list":{"bulletedlist":"Вставить / удалить маркированный список","numberedlist":"Вставить / удалить нумерованный список"},"magicline":{"title":"Вставить здесь параграф"},"maximize":{"maximize":"Развернуть","minimize":"Свернуть"},"pastetext":{"button":"Вставить только текст","pasteNotification":"Ваш браузер не поддерживает данный метод вставки. Для вставки нажмите %1"},"pastefromword":{"confirmCleanup":"Текст, который вы желаете вставить, по всей видимости, был скопирован из Word. Следует ли очистить его перед вставкой?","error":"Невозможно очистить вставленные данные из-за внутренней ошибки","title":"Вставить из Word","toolbar":"Вставить из Word"},"removeformat":{"toolbar":"Убрать форматирование"},"sourcearea":{"toolbar":"Источник"},"specialchar":{"options":"Выбор специального символа","title":"Выберите специальный символ","toolbar":"Вставить специальный символ"},"scayt":{"btn_about":"О SCAYT","btn_dictionaries":"Словари","btn_disable":"Отключить SCAYT","btn_enable":"Включить SCAYT","btn_langs":"Языки","btn_options":"Настройки","text_title":"Проверка орфографии по мере ввода (SCAYT)"},"stylescombo":{"label":"Стили","panelTitle":"Стили форматирования","panelTitle1":"Стили блока","panelTitle2":"Стили элемента","panelTitle3":"Стили объекта"},"table":{"border":"Размер границ","caption":"Заголовок","cell":{"menu":"Ячейка","insertBefore":"Вставить ячейку слева","insertAfter":"Вставить ячейку справа","deleteCell":"Удалить ячейки","merge":"Объединить ячейки","mergeRight":"Объединить с правой","mergeDown":"Объединить с нижней","splitHorizontal":"Разделить ячейку по вертикали","splitVertical":"Разделить ячейку по горизонтали","title":"Свойства ячейки","cellType":"Тип ячейки","rowSpan":"Объединяет строк","colSpan":"Объединяет колонок","wordWrap":"Перенос по словам","hAlign":"Горизонтальное выравнивание","vAlign":"Вертикальное выравнивание","alignBaseline":"По базовой линии","bgColor":"Цвет фона","borderColor":"Цвет границ","data":"Данные","header":"Заголовок","yes":"Да","no":"Нет","invalidWidth":"Ширина ячейки должна быть числом.","invalidHeight":"Высота ячейки должна быть числом.","invalidRowSpan":"Количество объединяемых строк должно быть задано числом.","invalidColSpan":"Количество объединяемых колонок должно быть задано числом.","chooseColor":"Выберите"},"cellPad":"Внутренний отступ ячеек","cellSpace":"Внешний отступ ячеек","column":{"menu":"Колонка","insertBefore":"Вставить колонку слева","insertAfter":"Вставить колонку справа","deleteColumn":"Удалить колонки"},"columns":"Колонки","deleteTable":"Удалить таблицу","headers":"Заголовки","headersBoth":"Сверху и слева","headersColumn":"Левая колонка","headersNone":"Без заголовков","headersRow":"Верхняя строка","invalidBorder":"Размер границ должен быть числом.","invalidCellPadding":"Внутренний отступ ячеек (cellpadding) должен быть числом.","invalidCellSpacing":"Внешний отступ ячеек (cellspacing) должен быть числом.","invalidCols":"Количество столбцов должно быть больше 0.","invalidHeight":"Высота таблицы должна быть числом.","invalidRows":"Количество строк должно быть больше 0.","invalidWidth":"Ширина таблицы должна быть числом.","menu":"Свойства таблицы","row":{"menu":"Строка","insertBefore":"Вставить строку сверху","insertAfter":"Вставить строку снизу","deleteRow":"Удалить строки"},"rows":"Строки","summary":"Итоги","title":"Свойства таблицы","toolbar":"Таблица","widthPc":"процентов","widthPx":"пикселей","widthUnit":"единица измерения"},"undo":{"redo":"Повторить","undo":"Отменить"},"wsc":{"btnIgnore":"Пропустить","btnIgnoreAll":"Пропустить всё","btnReplace":"Заменить","btnReplaceAll":"Заменить всё","btnUndo":"Отменить","changeTo":"Изменить на","errorLoading":"Произошла ошибка при подключении к серверу проверки орфографии: %s.","ieSpellDownload":"Модуль проверки орфографии не установлен. Хотите скачать его?","manyChanges":"Проверка орфографии завершена. Изменено слов: %1","noChanges":"Проверка орфографии завершена. Не изменено ни одного слова","noMispell":"Проверка орфографии завершена. Ошибок не найдено","noSuggestions":"- Варианты отсутствуют -","notAvailable":"Извините, но в данный момент сервис недоступен.","notInDic":"Отсутствует в словаре","oneChange":"Проверка орфографии завершена. Изменено одно слово","progress":"Орфография проверяется...","title":"Проверка орфографии","toolbar":"Проверить орфографию"}}; \ No newline at end of file diff --git a/admin/plugins/ckeditor/lang/si.js b/admin/plugins/ckeditor/lang/si.js deleted file mode 100644 index 924f14b..0000000 --- a/admin/plugins/ckeditor/lang/si.js +++ /dev/null @@ -1,5 +0,0 @@ -/* -Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. -For licensing, see LICENSE.md or http://ckeditor.com/license -*/ -CKEDITOR.lang['si']={"editor":"පොහොසත් වචන සංස්කරණ","editorPanel":"Rich Text Editor panel","common":{"editorHelp":"උදව් ලබා ගැනීමට ALT බොත්තම ඔබන්න","browseServer":"සෙවුම් සේවාදායකය","url":"URL","protocol":"මුලාපත්‍රය","upload":"උඩුගතකිරීම","uploadSubmit":"සේවාදායකය වෙත යොමුකිරිම","image":"රුපය","flash":"දීප්තිය","form":"පෝරමය","checkbox":"ලකුණුකිරීමේ කොටුව","radio":"තේරීම් ","textField":"ලියන ප්‍රදේශය","textarea":"අකුරු ","hiddenField":"සැඟවුණු ප්‍රදේශය","button":"බොත්තම","select":"තෝරන්න ","imageButton":"රුප ","notSet":"<යොදා >","id":"අංකය","name":"නම","langDir":"භාෂා දිශාව","langDirLtr":"වමේසිට දකුණුට","langDirRtl":"දකුණේ සිට වමට","langCode":"භාෂා කේතය","longDescr":"සම්පුර්න පැහැදිලි කිරීම","cssClass":"විලාශ පත්‍ර පන්තිය","advisoryTitle":"උපදෙස් ","cssStyle":"විලාසය","ok":"නිරදි","cancel":"අවලංගු කිරීම","close":"වැසීම","preview":"නැවත ","resize":"විශාලත්වය නැවත වෙනස් කිරීම","generalTab":"පොදු කරුණු.","advancedTab":"දීය","validateNumberFailed":"මෙම වටිනාකම අංකයක් නොවේ","confirmNewPage":"ආරක්ෂා නොකළ සියලුම දත්තයන් මැකියනුලැබේ. ඔබට නව පිටුවක් ලබා ගැනීමට අවශ්‍යද?","confirmCancel":"ඇතම් විකල්පයන් වෙනස් කර ඇත. ඔබට මින් නික්මීමට අවශ්‍යද?","options":" විකල්ප","target":"අරමුණ","targetNew":"නව කව්ළුව","targetTop":"වැදගත් කව්ළුව","targetSelf":"එම කව්ළුව(_තම\\\\)","targetParent":"මව් කව්ළුව(_)","langDirLTR":"වමේසිට දකුණුට","langDirRTL":"දකුණේ සිට වමට","styles":"විලාසය","cssClasses":"විලාසපත්‍ර පන්තිය","width":"පළල","height":"උස","align":"ගැලපුම","alignLeft":"වම","alignRight":"දකුණ","alignCenter":"මධ්‍ය","alignJustify":"Justify","alignTop":"ඉ","alignMiddle":"මැද","alignBottom":"පහල","alignNone":"None","invalidValue":"වැරදී වටිනාකමකි","invalidHeight":"උස අංකයක් විය යුතුය","invalidWidth":"පළල අංකයක් විය යුතුය","invalidCssLength":"වටිනාකමක් නිරූපණය කිරීම \"%1\" ප්‍රදේශය ධන සංක්‍යාත්මක වටිනාකමක් හෝ නිවරදි නොවන CSS මිනුම් එකක(px, %, in, cm, mm, em, ex, pt, pc)","invalidHtmlLength":"වටිනාකමක් නිරූපණය කිරීම \"%1\" ප්‍රදේශය ධන සංක්‍යාත්මක වටිනාකමක් හෝ නිවරදි නොවන HTML මිනුම් එකක (px හෝ %).","invalidInlineStyle":"වටිනාකමක් නිරූපණය කිරීම පේළි විලාසයයට ආකෘතිය අනතර්ග විය යුතය \"නම : වටිනාකම\", තිත් කොමාවකින් වෙන් වෙන ලද.","cssLengthTooltip":"සංක්‍යා ඇතුලත් කිරීමේදී වටිනාකම තිත් ප්‍රමාණය නිවරදි CSS ඒකක(තිත්, %, අඟල්,සෙමි, mm, em, ex, pt, pc)","unavailable":"%1<span පන්තිය=\"ළඟා වියහැකි ද බලන්න\">, නොමැතිනම්</span>","keyboard":{"8":"Backspace","13":"Enter","16":"Shift","17":"Ctrl","18":"Alt","32":"Space","35":"End","36":"Home","46":"Delete","224":"Command"},"keyboardShortcut":"Keyboard shortcut"},"about":{"copy":"පිටපත් අයිතිය සහ පිටපත් කිරීම;$1 .සියලුම හිමිකම් ඇවිරිණි.","dlgTitle":"CKEditor ගැන විස්තර","help":"උදව් සඳහා $1 ","moreInfo":"බලපත්‍ර තොරතුරු සදහා කරුණාකර අපගේ විද්‍යුත් ලිපිනයට පිවිසෙන්න:","title":"CKEditor ගැන විස්තර","userGuide":"CKEditor භාවිතා කිරීම පිළිබඳ "},"basicstyles":{"bold":"තද අකුරින් ලියනලද","italic":"බැධීඅකුරින් ලියන ලද","strike":"Strikethrough","subscript":"Subscript","superscript":"Superscript","underline":"යටින් ඉරි අදින ලද"},"blockquote":{"toolbar":"උද්ධෘත කොටස"},"notification":{"closed":"Notification closed."},"button":{"selectedLabel":"%1 (Selected)"},"toolbar":{"toolbarCollapse":"මෙවලම් තීරුව හැකුලුම.","toolbarExpand":"මෙවලම් තීරුව දීගහැරුම","toolbarGroups":{"document":"ලිපිය","clipboard":"ඇමිණුම වෙනස් කිරීම","editing":"සංස්කරණය","forms":"පෝරමය","basicstyles":"මුලික විලාසය","paragraph":"චේදය","links":"සබැඳිය","insert":"ඇතුලත් කිරීම","styles":"විලාසය","colors":"වර්ණය","tools":"මෙවලම්"},"toolbars":"සංස්කරණ මෙවලම් තීරුව"},"clipboard":{"copy":"පිටපත් කරන්න","copyError":"Your browser security settings don't permit the editor to automatically execute copying operations. Please use the keyboard for that (Ctrl/Cmd+C).","cut":"කපාගන්න","cutError":"Your browser security settings don't permit the editor to automatically execute cutting operations. Please use the keyboard for that (Ctrl/Cmd+X).","paste":"අලවන්න","pasteNotification":"Your browser doesn't allow you to paste this way. Press %1 to paste."},"contextmenu":{"options":"අනතර්ග ලේඛණ විකල්ප"},"elementspath":{"eleLabel":"මුලද්‍රව්‍ය මාර්ගය","eleTitle":"%1 මුල"},"format":{"label":"ආකෘතිය","panelTitle":"චේදයේ ","tag_address":"ලිපිනය","tag_div":"සාමාන්‍ය(DIV)","tag_h1":"ශීර්ෂය 1","tag_h2":"ශීර්ෂය 2","tag_h3":"ශීර්ෂය 3","tag_h4":"ශීර්ෂය 4","tag_h5":"ශීර්ෂය 5","tag_h6":"ශීර්ෂය 6","tag_p":"සාමාන්‍ය","tag_pre":"ආකෘතියන්"},"horizontalrule":{"toolbar":"තිරස් රේඛාවක් ඇතුලත් කරන්න"},"image":{"alt":"විකල්ප ","border":"සීමාවවල ","btnUpload":"සේවාදායකය වෙත යොමුකිරිම","button2Img":"ඔබට තෝරන ලද රුපය පරිවර්තනය කිරීමට අවශ්‍යද?","hSpace":"HSpace","img2Button":"ඔබට තෝරන ලද රුපය පරිවර්තනය කිරීමට අවශ්‍යද?","infoTab":"රුපයේ තොරතුරු","linkTab":"සබැඳිය","lockRatio":"නවතන අනුපාතය ","menu":"රුපයේ ගුණ","resetSize":"නැවතත් විශාලත්වය වෙනස් කිරීම","title":"රුපයේ ","titleButton":"රුප බොත්තමේ ගුණ","upload":"උඩුගතකිරීම","urlMissing":"රුප මුලාශ්‍ර URL නැත.","vSpace":"VSpace","validateBorder":"මාඉම් සම්පුර්ණ සංක්‍යාවක් විය යුතුය.","validateHSpace":"HSpace සම්පුර්ණ සංක්‍යාවක් විය යුතුය","validateVSpace":"VSpace සම්පුර්ණ සංක්‍යාවක් විය යුතුය."},"indent":{"indent":"අතර පරතරය වැඩිකරන්න","outdent":"අතර පරතරය අඩුකරන්න"},"fakeobjects":{"anchor":"ආධාරය","flash":"Flash Animation","hiddenfield":"සැඟවුණු ප්‍රදේශය","iframe":"IFrame","unknown":"Unknown Object"},"link":{"acccessKey":"ප්‍රවේශ යතුර","advanced":"දීය","advisoryContentType":"උපදේශාත්මක අන්තර්ගත ආකාරය","advisoryTitle":"උපදේශාත්මක නාමය","anchor":{"toolbar":"ආධාරය","menu":"ආධාරය වෙනස් කිරීම","title":"ආධාරක ","name":"ආධාරකයේ නාමය","errorName":"කරුණාකර ආධාරකයේ නාමය ඇතුල් කරන්න","remove":"ආධාරකය ඉවත් කිරීම"},"anchorId":"By Element Id","anchorName":"By Anchor Name","charset":"Linked Resource Charset","cssClasses":"විලාසපත්‍ර පන්තිය","download":"Force Download","displayText":"Display Text","emailAddress":"E-Mail Address","emailBody":"Message Body","emailSubject":"Message Subject","id":"අංකය","info":"Link Info","langCode":"භාෂා කේතය","langDir":"භාෂා දිශාව","langDirLTR":"වමේසිට දකුණුට","langDirRTL":"දකුණේ සිට වමට","menu":"Edit Link","name":"නම","noAnchors":"(No anchors available in the document)","noEmail":"Please type the e-mail address","noUrl":"Please type the link URL","other":"<other>","popupDependent":"Dependent (Netscape)","popupFeatures":"Popup Window Features","popupFullScreen":"Full Screen (IE)","popupLeft":"Left Position","popupLocationBar":"Location Bar","popupMenuBar":"Menu Bar","popupResizable":"Resizable","popupScrollBars":"Scroll Bars","popupStatusBar":"Status Bar","popupToolbar":"Toolbar","popupTop":"Top Position","rel":"Relationship","selectAnchor":"Select an Anchor","styles":"විලාසය","tabIndex":"Tab Index","target":"අරමුණ","targetFrame":"<frame>","targetFrameName":"Target Frame Name","targetPopup":"<popup window>","targetPopupName":"Popup Window Name","title":"සබැඳිය","toAnchor":"Link to anchor in the text","toEmail":"E-mail","toUrl":"URL","toolbar":"සබැඳිය","type":"Link Type","unlink":"Unlink","upload":"උඩුගතකිරීම"},"list":{"bulletedlist":"ඇතුලත් / ඉවත් කිරීම ලඉස්තුව","numberedlist":"ඇතුලත් / ඉවත් කිරීම අන්න්කිත ලඉස්තුව"},"magicline":{"title":"චේදය ඇතුලත් කරන්න"},"maximize":{"maximize":"විශාල කිරීම","minimize":"කුඩා කිරීම"},"pastetext":{"button":"සාමාන්‍ය අක්ෂර ලෙස අලවන්න","pasteNotification":"Your browser does not allow you to paste plain text this way. Press %1 to paste."},"pastefromword":{"confirmCleanup":"The text you want to paste seems to be copied from Word. Do you want to clean it before pasting?","error":"It was not possible to clean up the pasted data due to an internal error","title":"වචන වලින් අලවන්න","toolbar":"වචන වලින් අලවන්න"},"removeformat":{"toolbar":"සැකසීම වෙනස් කරන්න"},"sourcearea":{"toolbar":"මුලාශ්‍රය"},"specialchar":{"options":"විශේෂ ගුණාංග වීකල්ප","title":"විශේෂ ගුණාංග ","toolbar":"විශේෂ ගුණාංග ඇතුලත් "},"scayt":{"btn_about":"About SCAYT","btn_dictionaries":"Dictionaries","btn_disable":"Disable SCAYT","btn_enable":"Enable SCAYT","btn_langs":"Languages","btn_options":"Options","text_title":"Spell Check As You Type"},"stylescombo":{"label":"විලාසය","panelTitle":"Formatting Styles","panelTitle1":"Block Styles","panelTitle2":"Inline Styles","panelTitle3":"Object Styles"},"table":{"border":"සීමාවවල විශාලත්වය","caption":"Caption","cell":{"menu":"කොටුව","insertBefore":"පෙර කොටුවක් ඇතුල්කිරිම","insertAfter":"පසුව කොටුවක් ඇතුලත් ","deleteCell":"කොටුව මැකීම","merge":"කොටු එකට යාකිරිම","mergeRight":"දකුණට ","mergeDown":"පහලට ","splitHorizontal":"තිරස්ව කොටු පැතිරීම","splitVertical":"සිරස්ව කොටු පැතිරීම","title":"කොටු ","cellType":"කොටු වර්ගය","rowSpan":"පේළි පළල","colSpan":"සිරස් පළල","wordWrap":"වචන ගැලපුම","hAlign":"තිරස්ව ","vAlign":"සිරස්ව ","alignBaseline":"පාද රේඛාව","bgColor":"පසුබිම් වර්ණය","borderColor":"මායිම් ","data":"Data","header":"ශීර්ෂක","yes":"ඔව්","no":"නැත","invalidWidth":"කොටු පළල සංඛ්‍ය්ත්මක වටිනාකමක් විය යුතුය","invalidHeight":"කොටු උස සංඛ්‍ය්ත්මක වටිනාකමක් විය යුතුය","invalidRowSpan":"Rows span must be a whole number.","invalidColSpan":"Columns span must be a whole number.","chooseColor":"තෝරන්න"},"cellPad":"Cell padding","cellSpace":"Cell spacing","column":{"menu":"Column","insertBefore":"Insert Column Before","insertAfter":"Insert Column After","deleteColumn":"Delete Columns"},"columns":"සිරස් ","deleteTable":"වගුව මකන්න","headers":"ශීර්ෂක","headersBoth":"දෙකම","headersColumn":"පළමූ සිරස් තීරුව","headersNone":"කිසිවක්ම නොවේ","headersRow":"පළමූ පේළිය","invalidBorder":"Border size must be a number.","invalidCellPadding":"Cell padding must be a positive number.","invalidCellSpacing":"Cell spacing must be a positive number.","invalidCols":"Number of columns must be a number greater than 0.","invalidHeight":"Table height must be a number.","invalidRows":"Number of rows must be a number greater than 0.","invalidWidth":"Table width must be a number.","menu":"Table Properties","row":{"menu":"Row","insertBefore":"Insert Row Before","insertAfter":"Insert Row After","deleteRow":"Delete Rows"},"rows":"Rows","summary":"Summary","title":"Table Properties","toolbar":"Table","widthPc":"percent","widthPx":"pixels","widthUnit":"width unit"},"undo":{"redo":"නැවත කිරීම","undo":"වෙනස් කිරීම"},"wsc":{"btnIgnore":"Ignore","btnIgnoreAll":"Ignore All","btnReplace":"Replace","btnReplaceAll":"Replace All","btnUndo":"Undo","changeTo":"Change to","errorLoading":"Error loading application service host: %s.","ieSpellDownload":"Spell checker not installed. Do you want to download it now?","manyChanges":"Spell check complete: %1 words changed","noChanges":"Spell check complete: No words changed","noMispell":"Spell check complete: No misspellings found","noSuggestions":"- No suggestions -","notAvailable":"Sorry, but service is unavailable now.","notInDic":"Not in dictionary","oneChange":"Spell check complete: One word changed","progress":"Spell check in progress...","title":"Spell Checker","toolbar":"Check Spelling"}}; \ No newline at end of file diff --git a/admin/plugins/ckeditor/lang/sk.js b/admin/plugins/ckeditor/lang/sk.js deleted file mode 100644 index 4e6d4ac..0000000 --- a/admin/plugins/ckeditor/lang/sk.js +++ /dev/null @@ -1,5 +0,0 @@ -/* -Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. -For licensing, see LICENSE.md or http://ckeditor.com/license -*/ -CKEDITOR.lang['sk']={"editor":"Editor formátovaného textu","editorPanel":"Panel editora formátovaného textu","common":{"editorHelp":"Stlačením ALT 0 spustiť pomocníka","browseServer":"Prehliadať server","url":"URL","protocol":"Protokol","upload":"Odoslať","uploadSubmit":"Odoslať na server","image":"Obrázok","flash":"Flash","form":"Formulár","checkbox":"Zaškrtávacie pole","radio":"Prepínač","textField":"Textové pole","textarea":"Textová oblasť","hiddenField":"Skryté pole","button":"Tlačidlo","select":"Rozbaľovací zoznam","imageButton":"Obrázkové tlačidlo","notSet":"<nenastavené>","id":"Id","name":"Meno","langDir":"Orientácia jazyka","langDirLtr":"Zľava doprava (LTR)","langDirRtl":"Sprava doľava (RTL)","langCode":"Kód jazyka","longDescr":"Dlhý popis URL","cssClass":"Trieda štýlu","advisoryTitle":"Pomocný titulok","cssStyle":"Štýl","ok":"OK","cancel":"Zrušiť","close":"Zatvorit","preview":"Náhľad","resize":"Zmeniť veľkosť","generalTab":"Hlavné","advancedTab":"Rozšírené","validateNumberFailed":"Hodnota nie je číslo.","confirmNewPage":"Prajete si načítat novú stránku? Všetky neuložené zmeny budú stratené. ","confirmCancel":"Niektore možnosti boli zmenené. Naozaj chcete zavrieť okno?","options":"Možnosti","target":"Cieľ","targetNew":"Nové okno (_blank)","targetTop":"Najvrchnejšie okno (_top)","targetSelf":"To isté okno (_self)","targetParent":"Rodičovské okno (_parent)","langDirLTR":"Zľava doprava (LTR)","langDirRTL":"Sprava doľava (RTL)","styles":"Štýl","cssClasses":"Triedy štýlu","width":"Šírka","height":"Výška","align":"Zarovnanie","alignLeft":"Vľavo","alignRight":"Vpravo","alignCenter":"Na stred","alignJustify":"Zarovnať do bloku","alignTop":"Nahor","alignMiddle":"Na stred","alignBottom":"Dole","alignNone":"Žiadne","invalidValue":"Neplatná hodnota.","invalidHeight":"Výška musí byť číslo.","invalidWidth":"Šírka musí byť číslo.","invalidCssLength":"Špecifikovaná hodnota pre pole \"%1\" musí byť kladné číslo s alebo bez platnej CSS mernej jednotky (px, %, in, cm, mm, em, ex, pt alebo pc).","invalidHtmlLength":"Špecifikovaná hodnota pre pole \"%1\" musí byť kladné číslo s alebo bez platnej HTML mernej jednotky (px alebo %).","invalidInlineStyle":"Zadaná hodnota pre inline štýl musí pozostávať s jedného, alebo viac dvojíc formátu \"názov: hodnota\", oddelených bodkočiarkou.","cssLengthTooltip":"Vložte číslo pre hodnotu v pixeloch alebo číslo so správnou CSS jednotou (px, %, in, cm, mm, em, ex, pt alebo pc).","unavailable":"%1<span class=\"cke_accessibility\">, nedostupný</span>","keyboard":{"8":"Backspace","13":"Enter","16":"Shift","17":"Ctrl","18":"Alt","32":"Medzerník","35":"End","36":"Home","46":"Delete","224":"Command"},"keyboardShortcut":"Klávesová skratka"},"about":{"copy":"Copyright &copy; $1. Všetky práva vyhradené.","dlgTitle":"O CKEditor-e","help":"Zaškrtnite $1 pre pomoc.","moreInfo":"Pre informácie o licenciách, prosíme, navštívte našu web stránku:","title":"O CKEditor-e","userGuide":"Používateľská príručka KCEditor-a"},"basicstyles":{"bold":"Tučné","italic":"Kurzíva","strike":"Prečiarknuté","subscript":"Dolný index","superscript":"Horný index","underline":"Podčiarknuté"},"blockquote":{"toolbar":"Citácia"},"notification":{"closed":"Notifikácia zatvorená."},"button":{"selectedLabel":"%1 (Vybrané)"},"toolbar":{"toolbarCollapse":"Zbaliť lištu nástrojov","toolbarExpand":"Rozbaliť lištu nástrojov","toolbarGroups":{"document":"Dokument","clipboard":"Schránka pre kopírovanie/Späť","editing":"Upravovanie","forms":"Formuláre","basicstyles":"Základné štýly","paragraph":"Odsek","links":"Odkazy","insert":"Vložiť","styles":"Štýly","colors":"Farby","tools":"Nástroje"},"toolbars":"Lišty nástrojov editora"},"clipboard":{"copy":"Kopírovať","copyError":"Bezpečnostné nastavenia vášho prehliadača nedovoľujú editoru automaticky spustiť operáciu kopírovania. Použite na to klávesnicu (Ctrl/Cmd+C).","cut":"Vystrihnúť","cutError":"Bezpečnostné nastavenia vášho prehliadača nedovoľujú editoru automaticky spustiť operáciu vystrihnutia. Použite na to klávesnicu (Ctrl/Cmd+X).","paste":"Vložiť","pasteNotification":"Váš prehliadač nepovoľuje prilepiť text takýmto spôsobom. Pre prilepenie stlačte %1."},"contextmenu":{"options":"Možnosti kontextového menu"},"elementspath":{"eleLabel":"Cesta prvkov","eleTitle":"%1 prvok"},"format":{"label":"Formát","panelTitle":"Odsek","tag_address":"Adresa","tag_div":"Normálny (DIV)","tag_h1":"Nadpis 1","tag_h2":"Nadpis 2","tag_h3":"Nadpis 3","tag_h4":"Nadpis 4","tag_h5":"Nadpis 5","tag_h6":"Nadpis 6","tag_p":"Normálny","tag_pre":"Formátovaný"},"horizontalrule":{"toolbar":"Vložiť vodorovnú čiaru"},"image":{"alt":"Alternatívny text","border":"Rám (border)","btnUpload":"Odoslať to na server","button2Img":"Chcete zmeniť vybrané obrázkové tlačidlo na jednoduchý obrázok?","hSpace":"H-medzera","img2Button":"Chcete zmeniť vybraný obrázok na obrázkové tlačidlo?","infoTab":"Informácie o obrázku","linkTab":"Odkaz","lockRatio":"Pomer zámky","menu":"Vlastnosti obrázka","resetSize":"Pôvodná veľkosť","title":"Vlastnosti obrázka","titleButton":"Vlastnosti obrázkového tlačidla","upload":"Nahrať","urlMissing":"Chýba URL zdroja obrázka.","vSpace":"V-medzera","validateBorder":"Rám (border) musí byť celé číslo.","validateHSpace":"H-medzera musí byť celé číslo.","validateVSpace":"V-medzera musí byť celé číslo."},"indent":{"indent":"Zväčšiť odsadenie","outdent":"Zmenšiť odsadenie"},"fakeobjects":{"anchor":"Kotva","flash":"Flash animácia","hiddenfield":"Skryté pole","iframe":"IFrame","unknown":"Neznámy objekt"},"link":{"acccessKey":"Prístupový kľúč","advanced":"Rozšírené","advisoryContentType":"Pomocný typ obsahu","advisoryTitle":"Pomocný titulok","anchor":{"toolbar":"Kotva","menu":"Upraviť kotvu","title":"Vlastnosti kotvy","name":"Názov kotvy","errorName":"Zadajte prosím názov kotvy","remove":"Odstrániť kotvu"},"anchorId":"Podľa Id objektu","anchorName":"Podľa mena kotvy","charset":"Priradená znaková sada","cssClasses":"Triedy štýlu","download":"Vynútené sťahovanie.","displayText":"Zobraziť text","emailAddress":"E-Mailová adresa","emailBody":"Telo správy","emailSubject":"Predmet správy","id":"Id","info":"Informácie o odkaze","langCode":"Orientácia jazyka","langDir":"Orientácia jazyka","langDirLTR":"Zľava doprava (LTR)","langDirRTL":"Sprava doľava (RTL)","menu":"Upraviť odkaz","name":"Názov","noAnchors":"(V dokumente nie sú dostupné žiadne kotvy)","noEmail":"Zadajte prosím e-mailovú adresu","noUrl":"Zadajte prosím URL odkazu","other":"<iný>","popupDependent":"Závislosť (Netscape)","popupFeatures":"Vlastnosti vyskakovacieho okna","popupFullScreen":"Celá obrazovka (IE)","popupLeft":"Ľavý okraj","popupLocationBar":"Panel umiestnenia (location bar)","popupMenuBar":"Panel ponuky (menu bar)","popupResizable":"Meniteľná veľkosť (resizable)","popupScrollBars":"Posuvníky (scroll bars)","popupStatusBar":"Stavový riadok (status bar)","popupToolbar":"Panel nástrojov (toolbar)","popupTop":"Horný okraj","rel":"Vzťah (rel)","selectAnchor":"Vybrať kotvu","styles":"Štýl","tabIndex":"Poradie prvku (tab index)","target":"Cieľ","targetFrame":"<rámec>","targetFrameName":"Názov rámu cieľa","targetPopup":"<vyskakovacie okno>","targetPopupName":"Názov vyskakovacieho okna","title":"Odkaz","toAnchor":"Odkaz na kotvu v texte","toEmail":"E-mail","toUrl":"URL","toolbar":"Odkaz","type":"Typ odkazu","unlink":"Odstrániť odkaz","upload":"Nahrať"},"list":{"bulletedlist":"Vložiť/odstrániť zoznam s odrážkami","numberedlist":"Vložiť/odstrániť číslovaný zoznam"},"magicline":{"title":"Odsek vložiť sem"},"maximize":{"maximize":"Maximalizovať","minimize":"Minimalizovať"},"pastetext":{"button":"Vložiť ako čistý text","pasteNotification":"Your browser does not allow you to paste plain text this way. Press %1 to paste."},"pastefromword":{"confirmCleanup":"Zdá sa, že vkladaný text pochádza z programu MS Word. Chcete ho pred vkladaním automaticky vyčistiť?","error":"Kvôli internej chybe nebolo možné vložené dáta vyčistiť","title":"Vložiť z Wordu","toolbar":"Vložiť z Wordu"},"removeformat":{"toolbar":"Odstrániť formátovanie"},"sourcearea":{"toolbar":"Zdroj"},"specialchar":{"options":"Možnosti špeciálneho znaku","title":"Výber špeciálneho znaku","toolbar":"Vložiť špeciálny znak"},"scayt":{"btn_about":"O KPPP (Kontrola pravopisu počas písania)","btn_dictionaries":"Slovníky","btn_disable":"Zakázať KPPP (Kontrola pravopisu počas písania)","btn_enable":"Povoliť KPPP (Kontrola pravopisu počas písania)","btn_langs":"Jazyky","btn_options":"Možnosti","text_title":"Kontrola pravopisu počas písania"},"stylescombo":{"label":"Štýly","panelTitle":"Formátovanie štýlov","panelTitle1":"Štýly bloku","panelTitle2":"Vnútroriadkové (inline) štýly","panelTitle3":"Štýly objeku"},"table":{"border":"Šírka orámovania","caption":"Popis","cell":{"menu":"Bunka","insertBefore":"Vložiť bunku pred","insertAfter":"Vložiť bunku za","deleteCell":"Vymazať bunky","merge":"Zlúčiť bunky","mergeRight":"Zlúčiť doprava","mergeDown":"Zlúčiť dole","splitHorizontal":"Rozdeliť bunky horizontálne","splitVertical":"Rozdeliť bunky vertikálne","title":"Vlastnosti bunky","cellType":"Typ bunky","rowSpan":"Rozsah riadkov","colSpan":"Rozsah stĺpcov","wordWrap":"Zalamovanie riadkov","hAlign":"Horizontálne zarovnanie","vAlign":"Vertikálne zarovnanie","alignBaseline":"Základná čiara (baseline)","bgColor":"Farba pozadia","borderColor":"Farba orámovania","data":"Dáta","header":"Hlavička","yes":"Áno","no":"Nie","invalidWidth":"Šírka bunky musí byť číslo.","invalidHeight":"Výška bunky musí byť číslo.","invalidRowSpan":"Rozsah riadkov musí byť celé číslo.","invalidColSpan":"Rozsah stĺpcov musí byť celé číslo.","chooseColor":"Vybrať"},"cellPad":"Odsadenie obsahu (cell padding)","cellSpace":"Vzdialenosť buniek (cell spacing)","column":{"menu":"Stĺpec","insertBefore":"Vložiť stĺpec pred","insertAfter":"Vložiť stĺpec po","deleteColumn":"Zmazať stĺpce"},"columns":"Stĺpce","deleteTable":"Vymazať tabuľku","headers":"Hlavička","headersBoth":"Obe","headersColumn":"Prvý stĺpec","headersNone":"Žiadne","headersRow":"Prvý riadok","invalidBorder":"Šírka orámovania musí byť číslo.","invalidCellPadding":"Odsadenie v bunkách (cell padding) musí byť kladné číslo.","invalidCellSpacing":"Medzera mädzi bunkami (cell spacing) musí byť kladné číslo.","invalidCols":"Počet stĺpcov musí byť číslo väčšie ako 0.","invalidHeight":"Výška tabuľky musí byť číslo.","invalidRows":"Počet riadkov musí byť číslo väčšie ako 0.","invalidWidth":"Širka tabuľky musí byť číslo.","menu":"Vlastnosti tabuľky","row":{"menu":"Riadok","insertBefore":"Vložiť riadok pred","insertAfter":"Vložiť riadok po","deleteRow":"Vymazať riadky"},"rows":"Riadky","summary":"Prehľad","title":"Vlastnosti tabuľky","toolbar":"Tabuľka","widthPc":"percent","widthPx":"pixelov","widthUnit":"jednotka šírky"},"undo":{"redo":"Znovu","undo":"Späť"},"wsc":{"btnIgnore":"Ignorovať","btnIgnoreAll":"Ignorovať všetko","btnReplace":"Prepísat","btnReplaceAll":"Prepísat všetko","btnUndo":"Späť","changeTo":"Zmeniť na","errorLoading":"Chyba pri načítaní slovníka z adresy: %s.","ieSpellDownload":"Kontrola pravopisu nie je naištalovaná. Chcete ju teraz stiahnuť?","manyChanges":"Kontrola pravopisu dokončená: Bolo zmenených %1 slov","noChanges":"Kontrola pravopisu dokončená: Neboli zmenené žiadne slová","noMispell":"Kontrola pravopisu dokončená: Neboli nájdené žiadne chyby pravopisu","noSuggestions":"- Žiadny návrh -","notAvailable":"Prepáčte, ale služba je momentálne nedostupná.","notInDic":"Nie je v slovníku","oneChange":"Kontrola pravopisu dokončená: Bolo zmenené jedno slovo","progress":"Prebieha kontrola pravopisu...","title":"Skontrolovať pravopis","toolbar":"Kontrola pravopisu"}}; \ No newline at end of file diff --git a/admin/plugins/ckeditor/lang/sl.js b/admin/plugins/ckeditor/lang/sl.js deleted file mode 100644 index 49451e5..0000000 --- a/admin/plugins/ckeditor/lang/sl.js +++ /dev/null @@ -1,5 +0,0 @@ -/* -Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. -For licensing, see LICENSE.md or http://ckeditor.com/license -*/ -CKEDITOR.lang['sl']={"editor":"Urejevalnik obogatenega besedila","editorPanel":"Plošča urejevalnika obogatenega besedila","common":{"editorHelp":"Pritisnite ALT 0 za pomoč","browseServer":"Prebrskaj na strežniku","url":"URL","protocol":"Protokol","upload":"Naloži","uploadSubmit":"Pošlji na strežnik","image":"Slika","flash":"Flash","form":"Obrazec","checkbox":"Potrditveno polje","radio":"Izbirno polje","textField":"Besedilno polje","textarea":"Besedilno območje","hiddenField":"Skrito polje","button":"Gumb","select":"Spustno polje","imageButton":"Slikovni gumb","notSet":"<ni določen>","id":"Id","name":"Ime","langDir":"Smer jezika","langDirLtr":"Od leve proti desni (LTR)","langDirRtl":"Od desne proti levi (RTL)","langCode":"Koda jezika","longDescr":"Dolg opis URL-ja","cssClass":"Razredi slogovne predloge","advisoryTitle":"Predlagani naslov","cssStyle":"Slog","ok":"V redu","cancel":"Prekliči","close":"Zapri","preview":"Predogled","resize":"Potegni za spremembo velikosti","generalTab":"Splošno","advancedTab":"Napredno","validateNumberFailed":"Vrednost ni število.","confirmNewPage":"Vse neshranjene spremembe vsebine bodo izgubljene. Ali res želite naložiti novo stran?","confirmCancel":"Spremenili ste nekaj možnosti. Ali res želite zapreti okno?","options":"Možnosti","target":"Cilj","targetNew":"Novo okno (_blank)","targetTop":"Vrhovno okno (_top)","targetSelf":"Isto okno (_self)","targetParent":"Starševsko okno (_parent)","langDirLTR":"Od leve proti desni (LTR)","langDirRTL":"Od desne proti levi (RTL)","styles":"Slog","cssClasses":"Razredi slogovne predloge","width":"Širina","height":"Višina","align":"Poravnava","alignLeft":"Levo","alignRight":"Desno","alignCenter":"Sredinsko","alignJustify":"Obojestranska poravnava","alignTop":"Na vrh","alignMiddle":"V sredino","alignBottom":"Na dno","alignNone":"Brez poravnave","invalidValue":"Neveljavna vrednost.","invalidHeight":"Višina mora biti število.","invalidWidth":"Širina mora biti število.","invalidCssLength":"Vrednost, določena za polje »%1«, mora biti pozitivno število z ali brez veljavne CSS-enote za merjenje (px, %, in, cm, mm, em, ex, pt ali pc).","invalidHtmlLength":"Vrednost, določena za polje »%1«, mora biti pozitivno število z ali brez veljavne HTML-enote za merjenje (px ali %).","invalidInlineStyle":"Vrednost, določena za slog v vrstici, mora biti sestavljena iz ene ali več dvojic oblike »ime : vrednost«, ločenih s podpičji.","cssLengthTooltip":"Vnesite število za vrednost v slikovnih pikah ali število z veljavno CSS-enoto (px, %, in, cm, mm, em, ex, pt ali pc).","unavailable":"%1<span class=\"cke_accessibility\">, nedosegljiv</span>","keyboard":{"8":"Backspace","13":"Enter","16":"Shift","17":"Ctrl","18":"Alt","32":"Space","35":"End","36":"Home","46":"Delete","224":"Command"},"keyboardShortcut":"Keyboard shortcut"},"about":{"copy":"Copyright &copy; $1. Vse pravice pridržane.","dlgTitle":"O programu CKEditor","help":"Oglejte si $1 za pomoč.","moreInfo":"Za informacije o licenciranju prosimo obiščite našo spletno stran:","title":"O programu CKEditor","userGuide":"Uporabniški vodnik CKEditor"},"basicstyles":{"bold":"Krepko","italic":"Ležeče","strike":"Prečrtano","subscript":"Podpisano","superscript":"Nadpisano","underline":"Podčrtano"},"blockquote":{"toolbar":"Citat"},"notification":{"closed":"Notification closed."},"button":{"selectedLabel":"%1 (Izbrano)"},"toolbar":{"toolbarCollapse":"Skrči orodno vrstico","toolbarExpand":"Razširi orodno vrstico","toolbarGroups":{"document":"Dokument","clipboard":"Odložišče/Razveljavi","editing":"Urejanje","forms":"Obrazci","basicstyles":"Osnovni slogi","paragraph":"Odstavek","links":"Povezave","insert":"Vstavi","styles":"Slogi","colors":"Barve","tools":"Orodja"},"toolbars":"Orodne vrstice urejevalnika"},"clipboard":{"copy":"Kopiraj","copyError":"Varnostne nastavitve brskalnika ne dopuščajo samodejnega kopiranja. Uporabite kombinacijo tipk na tipkovnici (Ctrl/Cmd+C).","cut":"Izreži","cutError":"Varnostne nastavitve brskalnika ne dopuščajo samodejnega izrezovanja. Uporabite kombinacijo tipk na tipkovnici (Ctrl/Cmd+X).","paste":"Prilepi","pasteNotification":"Your browser doesn't allow you to paste this way. Press %1 to paste."},"contextmenu":{"options":"Možnosti kontekstnega menija"},"elementspath":{"eleLabel":"Pot elementov","eleTitle":"Element %1"},"format":{"label":"Oblika","panelTitle":"Oblika odstavka","tag_address":"Napis","tag_div":"Navaden (DIV)","tag_h1":"Naslov 1","tag_h2":"Naslov 2","tag_h3":"Naslov 3","tag_h4":"Naslov 4","tag_h5":"Naslov 5","tag_h6":"Naslov 6","tag_p":"Navaden","tag_pre":"Oblikovan"},"horizontalrule":{"toolbar":"Vstavi vodoravno črto"},"image":{"alt":"Nadomestno besedilo","border":"Obroba","btnUpload":"Pošlji na strežnik","button2Img":"Želite pretvoriti izbrani gumb s sliko v preprosto sliko?","hSpace":"Vodoravni odmik","img2Button":"Želite pretvoriti izbrano sliko v gumb s sliko?","infoTab":"Podatki o sliki","linkTab":"Povezava","lockRatio":"Zakleni razmerje","menu":"Lastnosti slike","resetSize":"Ponastavi velikost","title":"Lastnosti slike","titleButton":"Lastnosti gumba s sliko","upload":"Naloži","urlMissing":"Manjka URL vira slike.","vSpace":"Navpični odmik","validateBorder":"Meja mora biti celo število.","validateHSpace":"Vodoravni odmik mora biti celo število.","validateVSpace":"VSpace mora biti celo število."},"indent":{"indent":"Povečaj zamik","outdent":"Zmanjšaj zamik"},"fakeobjects":{"anchor":"Sidro","flash":"Animacija flash","hiddenfield":"Skrito polje","iframe":"IFrame","unknown":"Neznan objekt"},"link":{"acccessKey":"Tipka za dostop","advanced":"Napredno","advisoryContentType":"Predlagana vrsta vsebine","advisoryTitle":"Predlagani naslov","anchor":{"toolbar":"Sidro","menu":"Uredi sidro","title":"Lastnosti sidra","name":"Ime sidra","errorName":"Prosimo, vnesite ime sidra","remove":"Odstrani sidro"},"anchorId":"Po ID-ju elementa","anchorName":"Po imenu sidra","charset":"Nabor znakov povezanega vira","cssClasses":"Razredi slogovne predloge","download":"Force Download","displayText":"Display Text","emailAddress":"E-poštni naslov","emailBody":"Telo sporočila","emailSubject":"Zadeva sporočila","id":"Id","info":"Podatki o povezavi","langCode":"Koda jezika","langDir":"Smer jezika","langDirLTR":"Od leve proti desni (LTR)","langDirRTL":"Od desne proti levi (RTL)","menu":"Uredi povezavo","name":"Ime","noAnchors":"(V tem dokumentu ni sider)","noEmail":"Vnesite e-poštni naslov","noUrl":"Vnesite URL povezave","other":"<drugo>","popupDependent":"Podokno (Netscape)","popupFeatures":"Značilnosti pojavnega okna","popupFullScreen":"Celozaslonsko (IE)","popupLeft":"Lega levo","popupLocationBar":"Naslovna vrstica","popupMenuBar":"Menijska vrstica","popupResizable":"Spremenljive velikosti","popupScrollBars":"Drsniki","popupStatusBar":"Vrstica stanja","popupToolbar":"Orodna vrstica","popupTop":"Lega na vrhu","rel":"Odnos","selectAnchor":"Izberite sidro","styles":"Slog","tabIndex":"Številka tabulatorja","target":"Cilj","targetFrame":"<okvir>","targetFrameName":"Ime ciljnega okvirja","targetPopup":"<pojavno okno>","targetPopupName":"Ime pojavnega okna","title":"Povezava","toAnchor":"Sidro na tej strani","toEmail":"E-pošta","toUrl":"URL","toolbar":"Vstavi/uredi povezavo","type":"Vrsta povezave","unlink":"Odstrani povezavo","upload":"Naloži"},"list":{"bulletedlist":"Vstavi/odstrani neoštevilčen seznam","numberedlist":"Vstavi/odstrani oštevilčen seznam"},"magicline":{"title":"Vstavite odstavek tukaj"},"maximize":{"maximize":"Maksimiraj","minimize":"Minimiraj"},"pastetext":{"button":"Prilepi kot golo besedilo","pasteNotification":"Your browser does not allow you to paste plain text this way. Press %1 to paste."},"pastefromword":{"confirmCleanup":"Besedilo, ki ga želite prilepiti, je kopirano iz Worda. Ali ga želite očistiti, preden ga prilepite?","error":"Ni bilo mogoče očistiti prilepljenih podatkov zaradi notranje napake","title":"Prilepi iz Worda","toolbar":"Prilepi iz Worda"},"removeformat":{"toolbar":"Odstrani oblikovanje"},"sourcearea":{"toolbar":"Izvorna koda"},"specialchar":{"options":"Možnosti posebnih znakov","title":"Izberi posebni znak","toolbar":"Vstavi posebni znak"},"scayt":{"btn_about":"O storitvi SCAYT","btn_dictionaries":"Slovarji","btn_disable":"Onemogoči SCAYT","btn_enable":"Omogoči SCAYT","btn_langs":"Jeziki","btn_options":"Možnosti","text_title":"Črkovanje med tipkanjem"},"stylescombo":{"label":"Slog","panelTitle":"Oblikovalni Stili","panelTitle1":"Slogi odstavkov","panelTitle2":"Slogi besedila","panelTitle3":"Slogi objektov"},"table":{"border":"Velikost obrobe","caption":"Napis","cell":{"menu":"Celica","insertBefore":"Vstavi celico pred","insertAfter":"Vstavi celico za","deleteCell":"Izbriši celice","merge":"Združi celice","mergeRight":"Združi desno","mergeDown":"Združi navzdol","splitHorizontal":"Razdeli celico vodoravno","splitVertical":"Razdeli celico navpično","title":"Lastnosti celice","cellType":"Vrsta celice","rowSpan":"Razpon vrstic","colSpan":"Razpon stolpcev","wordWrap":"Prelom besedila","hAlign":"Vodoravna poravnava","vAlign":"Navpična poravnava","alignBaseline":"Osnovnica","bgColor":"Barva ozadja","borderColor":"Barva obrobe","data":"Podatki","header":"Glava","yes":"Da","no":"Ne","invalidWidth":"Širina celice mora biti število.","invalidHeight":"Višina celice mora biti število.","invalidRowSpan":"Razpon vrstic mora biti celo število.","invalidColSpan":"Razpon stolpcev mora biti celo število.","chooseColor":"Izberi"},"cellPad":"Odmik znotraj celic","cellSpace":"Razmik med celicami","column":{"menu":"Stolpec","insertBefore":"Vstavi stolpec pred","insertAfter":"Vstavi stolpec za","deleteColumn":"Izbriši stolpce"},"columns":"Stolpci","deleteTable":"Izbriši tabelo","headers":"Glave","headersBoth":"Oboje","headersColumn":"Prvi stolpec","headersNone":"Brez","headersRow":"Prva vrstica","invalidBorder":"Širina obrobe mora biti število.","invalidCellPadding":"Odmik znotraj celic mora biti pozitivno število.","invalidCellSpacing":"Razmik med celicami mora biti pozitivno število.","invalidCols":"Število stolpcev mora biti večje od 0.","invalidHeight":"Višina tabele mora biti število.","invalidRows":"Število vrstic mora biti večje od 0.","invalidWidth":"Širina tabele mora biti število.","menu":"Lastnosti tabele","row":{"menu":"Vrstica","insertBefore":"Vstavi vrstico pred","insertAfter":"Vstavi vrstico za","deleteRow":"Izbriši vrstice"},"rows":"Vrstice","summary":"Povzetek","title":"Lastnosti tabele","toolbar":"Tabela","widthPc":"odstotkov","widthPx":"pik","widthUnit":"enota širine"},"undo":{"redo":"Uveljavi","undo":"Razveljavi"},"wsc":{"btnIgnore":"Prezri","btnIgnoreAll":"Prezri vse","btnReplace":"Zamenjaj","btnReplaceAll":"Zamenjaj vse","btnUndo":"Razveljavi","changeTo":"Spremeni v","errorLoading":"Napaka pri nalaganju storitve programa na naslovu %s.","ieSpellDownload":"Črkovalnik ni nameščen. Ali ga želite prenesti sedaj?","manyChanges":"Črkovanje je končano: Spremenjenih je bilo %1 besed","noChanges":"Črkovanje je končano: Nobena beseda ni bila spremenjena","noMispell":"Črkovanje je končano: Brez napak","noSuggestions":"- Ni predlogov -","notAvailable":"Oprostite, storitev trenutno ni dosegljiva.","notInDic":"Ni v slovarju","oneChange":"Črkovanje je končano: Spremenjena je bila ena beseda","progress":"Preverjanje črkovanja se izvaja...","title":"Črkovalnik","toolbar":"Preveri črkovanje"}}; \ No newline at end of file diff --git a/admin/plugins/ckeditor/lang/sq.js b/admin/plugins/ckeditor/lang/sq.js deleted file mode 100644 index ad748ad..0000000 --- a/admin/plugins/ckeditor/lang/sq.js +++ /dev/null @@ -1,5 +0,0 @@ -/* -Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. -For licensing, see LICENSE.md or http://ckeditor.com/license -*/ -CKEDITOR.lang['sq']={"editor":"Redaktues i Pasur Teksti","editorPanel":"Paneli i redaktuesit të tekstit të plotë","common":{"editorHelp":"Shtyp ALT 0 për ndihmë","browseServer":"Shfleto në Server","url":"URL","protocol":"Protokolli","upload":"Ngarko","uploadSubmit":"Dërgo në server","image":"Imazh","flash":"Objekt flash","form":"Formular","checkbox":"Checkbox","radio":"Buton radio","textField":"Fushë tekst","textarea":"Hapësirë tekst","hiddenField":"Fushë e fshehur","button":"Buton","select":"Menu zgjedhjeje","imageButton":"Buton imazhi","notSet":"<e pazgjedhur>","id":"Id","name":"Emër","langDir":"Kod gjuhe","langDirLtr":"Nga e majta në të djathtë (LTR)","langDirRtl":"Nga e djathta në të majtë (RTL)","langCode":"Kod gjuhe","longDescr":"Përshkrim i hollësishëm","cssClass":"Klasa stili CSS","advisoryTitle":"Titull","cssStyle":"Stil","ok":"OK","cancel":"Anulo","close":"Mbyll","preview":"Parashiko","resize":"Ripërmaso","generalTab":"Të përgjithshme","advancedTab":"Të përparuara","validateNumberFailed":"Vlera e futur nuk është një numër","confirmNewPage":"Çdo ndryshim që nuk është ruajtur do humbasë. Je i sigurtë që dëshiron të krijosh një faqe të re?","confirmCancel":"Disa opsione kanë ndryshuar. Je i sigurtë që dëshiron ta mbyllësh dritaren?","options":"Opsione","target":"Objektivi","targetNew":"Dritare e re (_blank)","targetTop":"Dritare në plan të parë (_top)","targetSelf":"E njëjta dritare (_self)","targetParent":"Dritarja prind (_parent)","langDirLTR":"Nga e majta në të djathë (LTR)","langDirRTL":"Nga e djathta në të majtë (RTL)","styles":"Stil","cssClasses":"Klasa Stili CSS","width":"Gjerësi","height":"Lartësi","align":"Rreshtim","alignLeft":"Majtas","alignRight":"Djathtas","alignCenter":"Qendër","alignJustify":"Zgjero","alignTop":"Lart","alignMiddle":"Në mes","alignBottom":"Poshtë","alignNone":"Asnjë","invalidValue":"Vlerë e pavlefshme","invalidHeight":"Lartësia duhet të jetë një numër","invalidWidth":"Gjerësia duhet të jetë një numër","invalidCssLength":"Vlera e fushës \"%1\" duhet të jetë një numër pozitiv me apo pa njësi matëse të vlefshme CSS (px, %, in, cm, mm, em, ex, pt ose pc).","invalidHtmlLength":"Vlera e fushës \"%1\" duhet të jetë një numër pozitiv me apo pa njësi matëse të vlefshme HTML (px ose %)","invalidInlineStyle":"Stili inline duhet të jetë një apo disa vlera të formatit \"emër: vlerë\", ndarë nga pikëpresje.","cssLengthTooltip":"Fut një numër për vlerën në pixel apo një numër me një njësi të vlefshme CSS (px, %, in, cm, mm, ex, pt, ose pc).","unavailable":"%1<span class=\"cke_accessibility\">, i padisponueshëm</span>","keyboard":{"8":"Prapa","13":"Enter","16":"Shift","17":"Ctrl","18":"Alt","32":"Space","35":"End","36":"Home","46":"Grise","224":"Command"},"keyboardShortcut":"Keyboard shortcut"},"about":{"copy":"Të drejtat e kopjimit &copy; $1. Të gjitha të drejtat e rezervuara.","dlgTitle":"Rreth CKEditor","help":"Kontrollo $1 për ndihmë.","moreInfo":"Për informacione rreth licencave shih faqen tonë:","title":"Rreth CKEditor","userGuide":"Udhëzuesi i Shfrytëzuesit të CKEditor"},"basicstyles":{"bold":"Trash","italic":"Pjerrët","strike":"Nëpërmes","subscript":"Nën-skriptë","superscript":"Super-skriptë","underline":"Nënvijëzuar"},"blockquote":{"toolbar":"Citatet"},"notification":{"closed":"Notification closed."},"button":{"selectedLabel":"%1 (Përzgjedhur)"},"toolbar":{"toolbarCollapse":"Zvogëlo Shiritin","toolbarExpand":"Zgjero Shiritin","toolbarGroups":{"document":"Dokument","clipboard":"Tabela Punës/Ribëje","editing":"Duke Redaktuar","forms":"Formular","basicstyles":"Stili Bazë","paragraph":"Paragraf","links":"Nyjet","insert":"Shto","styles":"Stil","colors":"Ngjyrat","tools":"Mjetet"},"toolbars":"Shiritet e Redaktuesit"},"clipboard":{"copy":"Kopjo","copyError":"Të dhënat e sigurisë së shfletuesit tuaj nuk lejojnë që redaktuesi automatikisht të kryej veprimin e kopjimit. Ju lutemi shfrytëzoni tastierën për këtë veprim (Ctrl/Cmd+C).","cut":"Preje","cutError":"Të dhënat e sigurisë së shfletuesit tuaj nuk lejojnë që redaktuesi automatikisht të kryej veprimin e prerjes. Ju lutemi shfrytëzoni tastierën për këtë veprim (Ctrl/Cmd+X).","paste":"Hidhe","pasteNotification":"Your browser doesn't allow you to paste this way. Press %1 to paste."},"contextmenu":{"options":"Mundësitë e Menysë së Kontekstit"},"elementspath":{"eleLabel":"Rruga e elementeve","eleTitle":"%1 element"},"format":{"label":"Formati","panelTitle":"Formati i Paragrafit","tag_address":"Adresa","tag_div":"Normal (DIV)","tag_h1":"Titulli 1","tag_h2":"Titulli 2","tag_h3":"Titulli 3","tag_h4":"Titulli 4","tag_h5":"Titulli 5","tag_h6":"Titulli 6","tag_p":"Normal","tag_pre":"Formatuar"},"horizontalrule":{"toolbar":"Vendos Vijë Horizontale"},"image":{"alt":"Tekst Alternativ","border":"Korniza","btnUpload":"Dërgo në server","button2Img":"Dëshironi të e ndërroni pullën e fotos së selektuar në një foto të thjeshtë?","hSpace":"HSpace","img2Button":"Dëshironi të ndryshoni foton e përzgjedhur në pullë?","infoTab":"Informacione mbi Fotografinë","linkTab":"Nyja","lockRatio":"Mbyll Racionin","menu":"Karakteristikat e Fotografisë","resetSize":"Rikthe Madhësinë","title":"Karakteristikat e Fotografisë","titleButton":"Karakteristikat e Pullës së Fotografisë","upload":"Ngarko","urlMissing":"Mungon URL e burimit të fotografisë.","vSpace":"Hapësira Vertikale","validateBorder":"Korniza duhet të jetë numër i plotë.","validateHSpace":"Hapësira horizontale duhet të jetë numër i plotë.","validateVSpace":"Hapësira vertikale duhet të jetë numër i plotë."},"indent":{"indent":"Rrite Identin","outdent":"Zvogëlo Identin"},"fakeobjects":{"anchor":"Spirancë","flash":"Objekt flash","hiddenfield":"Fushë e fshehur","iframe":"IFrame","unknown":"Objekt i Panjohur"},"link":{"acccessKey":"Sipas ID-së së Elementit","advanced":"Të përparuara","advisoryContentType":"Lloji i Përmbajtjes Këshillimore","advisoryTitle":"Titull","anchor":{"toolbar":"Spirancë","menu":"Redakto Spirancën","title":"Anchor Properties","name":"Emri i Spirancës","errorName":"Ju lutemi shkruani emrin e spirancës","remove":"Largo Spirancën"},"anchorId":"Sipas ID-së së Elementit","anchorName":"Sipas Emrit të Spirancës","charset":"Seti i Karaktereve të Burimeve të Nëdlidhura","cssClasses":"Klasa stili CSS","download":"Force Download","displayText":"Display Text","emailAddress":"Posta Elektronike","emailBody":"Trupi i Porosisë","emailSubject":"Titulli i Porosisë","id":"Id","info":"Informacione të Nyjes","langCode":"Kod gjuhe","langDir":"Drejtim teksti","langDirLTR":"Nga e majta në të djathë (LTR)","langDirRTL":"Nga e djathta në të majtë (RTL)","menu":"Redakto Nyjen","name":"Emër","noAnchors":"(Nuk ka asnjë spirancë në dokument)","noEmail":"Ju lutemi shkruani postën elektronike","noUrl":"Ju lutemi shkruani URL-në e nyjes","other":"<tjetër>","popupDependent":"E Varur (Netscape)","popupFeatures":"Karakteristikat e Dritares së Dialogut","popupFullScreen":"Ekran i Plotë (IE)","popupLeft":"Pozita Majtas","popupLocationBar":"Shiriti i Lokacionit","popupMenuBar":"Shiriti i Menysë","popupResizable":"I ndryshueshëm","popupScrollBars":"Shiritat zvarritës","popupStatusBar":"Shiriti i Statutit","popupToolbar":"Shiriti i Mejteve","popupTop":"Top Pozita","rel":"Marrëdhëniet","selectAnchor":"Përzgjidh një Spirancë","styles":"Stil","tabIndex":"Indeksi i fletave","target":"Objektivi","targetFrame":"<frame>","targetFrameName":"Emri i Kornizës së Synuar","targetPopup":"<popup window>","targetPopupName":"Emri i Dritares së Dialogut","title":"Nyja","toAnchor":"Lidhu me spirancën në tekst","toEmail":"Posta Elektronike","toUrl":"URL","toolbar":"Nyja","type":"Lloji i Nyjes","unlink":"Largo Nyjen","upload":"Ngarko"},"list":{"bulletedlist":"Vendos/Largo Listën me Pika","numberedlist":"Vendos/Largo Listën me Numra"},"magicline":{"title":"Vendos paragraf këtu"},"maximize":{"maximize":"Zmadho","minimize":"Zvogëlo"},"pastetext":{"button":"Hidhe si tekst të thjeshtë","pasteNotification":"Your browser does not allow you to paste plain text this way. Press %1 to paste."},"pastefromword":{"confirmCleanup":"Teksti që dëshironi të e hidhni siç duket është kopjuar nga Word-i. Dëshironi të e pastroni para se të e hidhni?","error":"Nuk ishte e mundur të fshiheshin të dhënat e hedhura për shkak të një gabimi të brendshëm","title":"Hidhe nga Word-i","toolbar":"Hidhe nga Word-i"},"removeformat":{"toolbar":"Largo Formatin"},"sourcearea":{"toolbar":"Burimi"},"specialchar":{"options":"Mundësitë për Karaktere Speciale","title":"Përzgjidh Karakter Special","toolbar":"Vendos Karakter Special"},"scayt":{"btn_about":"About SCAYT","btn_dictionaries":"Dictionaries","btn_disable":"Disable SCAYT","btn_enable":"Enable SCAYT","btn_langs":"Languages","btn_options":"Options","text_title":"Spell Check As You Type"},"stylescombo":{"label":"Stil","panelTitle":"Stilet e Formatimit","panelTitle1":"Stilet e Bllokut","panelTitle2":"Stili i Brendshëm","panelTitle3":"Stilet e Objektit"},"table":{"border":"Madhësia e kornizave","caption":"Titull","cell":{"menu":"Qeli","insertBefore":"Shto Qeli Para","insertAfter":"Shto Qeli Prapa","deleteCell":"Gris Qelitë","merge":"Bashko Qelitë","mergeRight":"Bashko Djathtas","mergeDown":"Bashko Poshtë","splitHorizontal":"Ndaj Qelinë Horizontalisht","splitVertical":"Ndaj Qelinë Vertikalisht","title":"Rekuizitat e Qelisë","cellType":"Lloji i Qelisë","rowSpan":"Bashko Rreshtat","colSpan":"Bashko Kolonat","wordWrap":"Fund i Fjalës","hAlign":"Bashkimi Horizontal","vAlign":"Bashkimi Vertikal","alignBaseline":"Baza","bgColor":"Ngjyra e Prapavijës","borderColor":"Ngjyra e Kornizave","data":"Të dhënat","header":"Koka","yes":"Po","no":"Jo","invalidWidth":"Gjerësia e qelisë duhet të jetë numër.","invalidHeight":"Lartësia e qelisë duhet të jetë numër.","invalidRowSpan":"Hapësira e rreshtave duhet të jetë numër i plotë.","invalidColSpan":"Hapësira e kolonave duhet të jetë numër i plotë.","chooseColor":"Përzgjidh"},"cellPad":"Mbushja e qelisë","cellSpace":"Hapësira e qelisë","column":{"menu":"Kolona","insertBefore":"Vendos Kolonë Para","insertAfter":"Vendos Kolonë Pas","deleteColumn":"Gris Kolonat"},"columns":"Kolonat","deleteTable":"Gris Tabelën","headers":"Kokat","headersBoth":"Së bashku","headersColumn":"Kolona e parë","headersNone":"Asnjë","headersRow":"Rreshti i Parë","invalidBorder":"Madhësia e kufinjve duhet të jetë numër.","invalidCellPadding":"Mbushja e qelisë duhet të jetë numër pozitiv.","invalidCellSpacing":"Hapësira e qelisë duhet të jetë numër pozitiv.","invalidCols":"Numri i kolonave duhet të jetë numër më i madh se 0.","invalidHeight":"Lartësia e tabelës duhet të jetë numër.","invalidRows":"Numri i rreshtave duhet të jetë numër më i madh se 0.","invalidWidth":"Gjerësia e tabelës duhet të jetë numër.","menu":"Karakteristikat e Tabelës","row":{"menu":"Rreshti","insertBefore":"Shto Rresht Para","insertAfter":"Shto Rresht Prapa","deleteRow":"Gris Rreshtat"},"rows":"Rreshtat","summary":"Përmbledhje","title":"Karakteristikat e Tabelës","toolbar":"Tabela","widthPc":"përqind","widthPx":"piksell","widthUnit":"njësia e gjerësisë"},"undo":{"redo":"Ribëje","undo":"Rizhbëje"},"wsc":{"btnIgnore":"Ignore","btnIgnoreAll":"Ignore All","btnReplace":"Replace","btnReplaceAll":"Replace All","btnUndo":"Undo","changeTo":"Change to","errorLoading":"Error loading application service host: %s.","ieSpellDownload":"Spell checker not installed. Do you want to download it now?","manyChanges":"Spell check complete: %1 words changed","noChanges":"Spell check complete: No words changed","noMispell":"Spell check complete: No misspellings found","noSuggestions":"- No suggestions -","notAvailable":"Sorry, but service is unavailable now.","notInDic":"Not in dictionary","oneChange":"Spell check complete: One word changed","progress":"Spell check in progress...","title":"Spell Checker","toolbar":"Check Spelling"}}; \ No newline at end of file diff --git a/admin/plugins/ckeditor/lang/sr-latn.js b/admin/plugins/ckeditor/lang/sr-latn.js deleted file mode 100644 index eed875e..0000000 --- a/admin/plugins/ckeditor/lang/sr-latn.js +++ /dev/null @@ -1,5 +0,0 @@ -/* -Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. -For licensing, see LICENSE.md or http://ckeditor.com/license -*/ -CKEDITOR.lang['sr-latn']={"editor":"Bogati uređivač teksta","editorPanel":"Rich Text Editor panel","common":{"editorHelp":"Press ALT 0 for help","browseServer":"Pretraži server","url":"URL","protocol":"Protokol","upload":"Pošalji","uploadSubmit":"Pošalji na server","image":"Slika","flash":"Fleš","form":"Forma","checkbox":"Polje za potvrdu","radio":"Radio-dugme","textField":"Tekstualno polje","textarea":"Zona teksta","hiddenField":"Skriveno polje","button":"Dugme","select":"Izborno polje","imageButton":"Dugme sa slikom","notSet":"<nije postavljeno>","id":"Id","name":"Naziv","langDir":"Smer jezika","langDirLtr":"S leva na desno (LTR)","langDirRtl":"S desna na levo (RTL)","langCode":"Kôd jezika","longDescr":"Pun opis URL","cssClass":"Stylesheet klase","advisoryTitle":"Advisory naslov","cssStyle":"Stil","ok":"OK","cancel":"Otkaži","close":"Zatvori","preview":"Izgled stranice","resize":"Resize","generalTab":"Opšte","advancedTab":"Napredni tagovi","validateNumberFailed":"Ova vrednost nije broj.","confirmNewPage":"Nesačuvane promene ovog sadržaja će biti izgubljene. Jeste li sigurni da želita da učitate novu stranu?","confirmCancel":"You have changed some options. Are you sure you want to close the dialog window?","options":"Opcije","target":"Meta","targetNew":"Novi prozor (_blank)","targetTop":"Topmost Window (_top)","targetSelf":"Isti prozor (_self)","targetParent":"Parent Window (_parent)","langDirLTR":"S leva na desno (LTR)","langDirRTL":"S desna na levo (RTL)","styles":"Stil","cssClasses":"Stylesheet klase","width":"Širina","height":"Visina","align":"Ravnanje","alignLeft":"Levo","alignRight":"Desno","alignCenter":"Sredina","alignJustify":"Obostrano ravnanje","alignTop":"Vrh","alignMiddle":"Sredina","alignBottom":"Dole","alignNone":"None","invalidValue":"Invalid value.","invalidHeight":"Visina mora biti broj.","invalidWidth":"Širina mora biti broj.","invalidCssLength":"Value specified for the \"%1\" field must be a positive number with or without a valid CSS measurement unit (px, %, in, cm, mm, em, ex, pt, or pc).","invalidHtmlLength":"Value specified for the \"%1\" field must be a positive number with or without a valid HTML measurement unit (px or %).","invalidInlineStyle":"Value specified for the inline style must consist of one or more tuples with the format of \"name : value\", separated by semi-colons.","cssLengthTooltip":"Enter a number for a value in pixels or a number with a valid CSS unit (px, %, in, cm, mm, em, ex, pt, or pc).","unavailable":"%1<span class=\"cke_accessibility\">, unavailable</span>","keyboard":{"8":"Backspace","13":"Enter","16":"Shift","17":"Ctrl","18":"Alt","32":"Space","35":"End","36":"Home","46":"Delete","224":"Command"},"keyboardShortcut":"Keyboard shortcut"},"about":{"copy":"Copyright &copy; $1. All rights reserved.","dlgTitle":"About CKEditor","help":"Check $1 for help.","moreInfo":"For licensing information please visit our web site:","title":"About CKEditor","userGuide":"CKEditor User's Guide"},"basicstyles":{"bold":"Podebljano","italic":"Kurziv","strike":"Precrtano","subscript":"Indeks","superscript":"Stepen","underline":"Podvučeno"},"blockquote":{"toolbar":"Block Quote"},"notification":{"closed":"Notification closed."},"button":{"selectedLabel":"%1 (Selected)"},"toolbar":{"toolbarCollapse":"Suzi alatnu traku","toolbarExpand":"Proširi alatnu traku","toolbarGroups":{"document":"Document","clipboard":"Clipboard/Undo","editing":"Editing","forms":"Forms","basicstyles":"Basic Styles","paragraph":"Paragraph","links":"Links","insert":"Insert","styles":"Styles","colors":"Colors","tools":"Tools"},"toolbars":"Alatne trake"},"clipboard":{"copy":"Kopiraj","copyError":"Sigurnosna podešavanja Vašeg pretraživača ne dozvoljavaju operacije automatskog kopiranja teksta. Molimo Vas da koristite prečicu sa tastature (Ctrl/Cmd+C).","cut":"Iseci","cutError":"Sigurnosna podešavanja Vašeg pretraživača ne dozvoljavaju operacije automatskog isecanja teksta. Molimo Vas da koristite prečicu sa tastature (Ctrl/Cmd+X).","paste":"Zalepi","pasteNotification":"Your browser doesn't allow you to paste this way. Press %1 to paste."},"contextmenu":{"options":"Context Menu Options"},"elementspath":{"eleLabel":"Elements path","eleTitle":"%1 element"},"format":{"label":"Format","panelTitle":"Format","tag_address":"Adresa","tag_div":"Normalno (DIV)","tag_h1":"Naslov 1","tag_h2":"Naslov 2","tag_h3":"Naslov 3","tag_h4":"Naslov 4","tag_h5":"Naslov 5","tag_h6":"Naslov 6","tag_p":"Normal","tag_pre":"Formatirano"},"horizontalrule":{"toolbar":"Unesi horizontalnu liniju"},"image":{"alt":"Alternativni tekst","border":"Okvir","btnUpload":"Pošalji na server","button2Img":"Do you want to transform the selected image button on a simple image?","hSpace":"HSpace","img2Button":"Do you want to transform the selected image on a image button?","infoTab":"Info slike","linkTab":"Link","lockRatio":"Zaključaj odnos","menu":"Osobine slika","resetSize":"Resetuj veličinu","title":"Osobine slika","titleButton":"Osobine dugmeta sa slikom","upload":"Pošalji","urlMissing":"Image source URL is missing.","vSpace":"VSpace","validateBorder":"Border must be a whole number.","validateHSpace":"HSpace must be a whole number.","validateVSpace":"VSpace must be a whole number."},"indent":{"indent":"Uvećaj levu marginu","outdent":"Smanji levu marginu"},"fakeobjects":{"anchor":"Unesi/izmeni sidro","flash":"Flash Animation","hiddenfield":"Skriveno polje","iframe":"IFrame","unknown":"Unknown Object"},"link":{"acccessKey":"Pristupni taster","advanced":"Napredni tagovi","advisoryContentType":"Advisory vrsta sadržaja","advisoryTitle":"Advisory naslov","anchor":{"toolbar":"Unesi/izmeni sidro","menu":"Osobine sidra","title":"Osobine sidra","name":"Naziv sidra","errorName":"Unesite naziv sidra","remove":"Ukloni sidro"},"anchorId":"Po Id-u elementa","anchorName":"Po nazivu sidra","charset":"Linked Resource Charset","cssClasses":"Stylesheet klase","download":"Force Download","displayText":"Display Text","emailAddress":"E-Mail adresa","emailBody":"Sadržaj poruke","emailSubject":"Naslov","id":"Id","info":"Link Info","langCode":"Smer jezika","langDir":"Smer jezika","langDirLTR":"S leva na desno (LTR)","langDirRTL":"S desna na levo (RTL)","menu":"Izmeni link","name":"Naziv","noAnchors":"(Nema dostupnih sidra)","noEmail":"Otkucajte adresu elektronske pote","noUrl":"Unesite URL linka","other":"<остало>","popupDependent":"Zavisno (Netscape)","popupFeatures":"Mogućnosti popup prozora","popupFullScreen":"Prikaz preko celog ekrana (IE)","popupLeft":"Od leve ivice ekrana (px)","popupLocationBar":"Lokacija","popupMenuBar":"Kontekstni meni","popupResizable":"Promenljive veličine","popupScrollBars":"Scroll bar","popupStatusBar":"Statusna linija","popupToolbar":"Toolbar","popupTop":"Od vrha ekrana (px)","rel":"Odnos","selectAnchor":"Odaberi sidro","styles":"Stil","tabIndex":"Tab indeks","target":"Meta","targetFrame":"<okvir>","targetFrameName":"Naziv odredišnog frejma","targetPopup":"<popup prozor>","targetPopupName":"Naziv popup prozora","title":"Link","toAnchor":"Sidro na ovoj stranici","toEmail":"E-Mail","toUrl":"URL","toolbar":"Unesi/izmeni link","type":"Vrsta linka","unlink":"Ukloni link","upload":"Pošalji"},"list":{"bulletedlist":"Nenabrojiva lista","numberedlist":"Nabrojiva lista"},"magicline":{"title":"Insert paragraph here"},"maximize":{"maximize":"Maximize","minimize":"Minimize"},"pastetext":{"button":"Zalepi kao čist tekst","pasteNotification":"Your browser does not allow you to paste plain text this way. Press %1 to paste."},"pastefromword":{"confirmCleanup":"The text you want to paste seems to be copied from Word. Do you want to clean it before pasting?","error":"It was not possible to clean up the pasted data due to an internal error","title":"Zalepi iz Worda","toolbar":"Zalepi iz Worda"},"removeformat":{"toolbar":"Ukloni formatiranje"},"sourcearea":{"toolbar":"Kôd"},"specialchar":{"options":"Special Character Options","title":"Odaberite specijalni karakter","toolbar":"Unesi specijalni karakter"},"scayt":{"btn_about":"About SCAYT","btn_dictionaries":"Dictionaries","btn_disable":"Disable SCAYT","btn_enable":"Enable SCAYT","btn_langs":"Languages","btn_options":"Options","text_title":"Spell Check As You Type"},"stylescombo":{"label":"Stil","panelTitle":"Formatting Styles","panelTitle1":"Block Styles","panelTitle2":"Inline Styles","panelTitle3":"Object Styles"},"table":{"border":"Veličina okvira","caption":"Naslov tabele","cell":{"menu":"Cell","insertBefore":"Insert Cell Before","insertAfter":"Insert Cell After","deleteCell":"Obriši ćelije","merge":"Spoj celije","mergeRight":"Merge Right","mergeDown":"Merge Down","splitHorizontal":"Split Cell Horizontally","splitVertical":"Split Cell Vertically","title":"Cell Properties","cellType":"Cell Type","rowSpan":"Rows Span","colSpan":"Columns Span","wordWrap":"Word Wrap","hAlign":"Horizontal Alignment","vAlign":"Vertical Alignment","alignBaseline":"Baseline","bgColor":"Background Color","borderColor":"Border Color","data":"Data","header":"Header","yes":"Yes","no":"No","invalidWidth":"Cell width must be a number.","invalidHeight":"Cell height must be a number.","invalidRowSpan":"Rows span must be a whole number.","invalidColSpan":"Columns span must be a whole number.","chooseColor":"Choose"},"cellPad":"Razmak ćelija","cellSpace":"Ćelijski prostor","column":{"menu":"Column","insertBefore":"Insert Column Before","insertAfter":"Insert Column After","deleteColumn":"Obriši kolone"},"columns":"Kolona","deleteTable":"Izbriši tabelu","headers":"Zaglavlja","headersBoth":"Oba","headersColumn":"Prva kolona","headersNone":"None","headersRow":"Prvi red","invalidBorder":"Veličina okvira mora biti broj.","invalidCellPadding":"Padding polja mora biti pozitivan broj.","invalidCellSpacing":"Razmak između ćelija mora biti pozitivan broj.","invalidCols":"Broj kolona mora biti broj veći od 0.","invalidHeight":"Visina tabele mora biti broj.","invalidRows":"Broj redova mora biti veći od 0.","invalidWidth":"Širina tabele mora biti broj.","menu":"Osobine tabele","row":{"menu":"Row","insertBefore":"Insert Row Before","insertAfter":"Insert Row After","deleteRow":"Obriši redove"},"rows":"Redova","summary":"Sažetak","title":"Osobine tabele","toolbar":"Tabela","widthPc":"procenata","widthPx":"piksela","widthUnit":"jedinica za širinu"},"undo":{"redo":"Ponovi akciju","undo":"Poni�ti akciju"},"wsc":{"btnIgnore":"Ignoriši","btnIgnoreAll":"Ignoriši sve","btnReplace":"Zameni","btnReplaceAll":"Zameni sve","btnUndo":"Vrati akciju","changeTo":"Izmeni","errorLoading":"Error loading application service host: %s.","ieSpellDownload":"Provera spelovanja nije instalirana. Da li želite da je skinete sa Interneta?","manyChanges":"Provera spelovanja završena: %1 reč(i) je izmenjeno","noChanges":"Provera spelovanja završena: Nije izmenjena nijedna rec","noMispell":"Provera spelovanja završena: greške nisu pronadene","noSuggestions":"- Bez sugestija -","notAvailable":"Sorry, but service is unavailable now.","notInDic":"Nije u rečniku","oneChange":"Provera spelovanja završena: Izmenjena je jedna reč","progress":"Provera spelovanja u toku...","title":"Spell Checker","toolbar":"Proveri spelovanje"}}; \ No newline at end of file diff --git a/admin/plugins/ckeditor/lang/sr.js b/admin/plugins/ckeditor/lang/sr.js deleted file mode 100644 index f2349be..0000000 --- a/admin/plugins/ckeditor/lang/sr.js +++ /dev/null @@ -1,5 +0,0 @@ -/* -Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. -For licensing, see LICENSE.md or http://ckeditor.com/license -*/ -CKEDITOR.lang['sr']={"editor":"Rich Text Editor","editorPanel":"Rich Text Editor panel","common":{"editorHelp":"Press ALT 0 for help","browseServer":"Претражи сервер","url":"УРЛ","protocol":"Протокол","upload":"Пошаљи","uploadSubmit":"Пошаљи на сервер","image":"Слика","flash":"Флеш елемент","form":"Форма","checkbox":"Поље за потврду","radio":"Радио-дугме","textField":"Текстуално поље","textarea":"Зона текста","hiddenField":"Скривено поље","button":"Дугме","select":"Изборно поље","imageButton":"Дугме са сликом","notSet":"<није постављено>","id":"Ид","name":"Назив","langDir":"Смер језика","langDirLtr":"С лева на десно (LTR)","langDirRtl":"С десна на лево (RTL)","langCode":"Kôд језика","longDescr":"Пун опис УРЛ","cssClass":"Stylesheet класе","advisoryTitle":"Advisory наслов","cssStyle":"Стил","ok":"OK","cancel":"Oткажи","close":"Затвори","preview":"Изглед странице","resize":"Resize","generalTab":"Опште","advancedTab":"Напредни тагови","validateNumberFailed":"Ова вредност није цигра.","confirmNewPage":"Any unsaved changes to this content will be lost. Are you sure you want to load new page?","confirmCancel":"You have changed some options. Are you sure you want to close the dialog window?","options":"Опције","target":"Meтa","targetNew":"New Window (_blank)","targetTop":"Topmost Window (_top)","targetSelf":"Same Window (_self)","targetParent":"Parent Window (_parent)","langDirLTR":"С лева на десно (LTR)","langDirRTL":"С десна на лево (RTL)","styles":"Стил","cssClasses":"Stylesheet класе","width":"Ширина","height":"Висина","align":"Равнање","alignLeft":"Лево","alignRight":"Десно","alignCenter":"Средина","alignJustify":"Обострано равнање","alignTop":"Врх","alignMiddle":"Средина","alignBottom":"Доле","alignNone":"None","invalidValue":"Invalid value.","invalidHeight":"Height must be a number.","invalidWidth":"Width must be a number.","invalidCssLength":"Value specified for the \"%1\" field must be a positive number with or without a valid CSS measurement unit (px, %, in, cm, mm, em, ex, pt, or pc).","invalidHtmlLength":"Value specified for the \"%1\" field must be a positive number with or without a valid HTML measurement unit (px or %).","invalidInlineStyle":"Value specified for the inline style must consist of one or more tuples with the format of \"name : value\", separated by semi-colons.","cssLengthTooltip":"Enter a number for a value in pixels or a number with a valid CSS unit (px, %, in, cm, mm, em, ex, pt, or pc).","unavailable":"%1<span class=\"cke_accessibility\">, unavailable</span>","keyboard":{"8":"Backspace","13":"Enter","16":"Shift","17":"Ctrl","18":"Alt","32":"Space","35":"End","36":"Home","46":"Delete","224":"Command"},"keyboardShortcut":"Keyboard shortcut"},"about":{"copy":"Copyright &copy; $1. All rights reserved.","dlgTitle":"About CKEditor","help":"Check $1 for help.","moreInfo":"For licensing information please visit our web site:","title":"About CKEditor","userGuide":"CKEditor User's Guide"},"basicstyles":{"bold":"Подебљано","italic":"Курзив","strike":"Прецртано","subscript":"Индекс","superscript":"Степен","underline":"Подвучено"},"blockquote":{"toolbar":"Block Quote"},"notification":{"closed":"Notification closed."},"button":{"selectedLabel":"%1 (Selected)"},"toolbar":{"toolbarCollapse":"Склопи алатну траку","toolbarExpand":"Прошири алатну траку","toolbarGroups":{"document":"Document","clipboard":"Clipboard/Undo","editing":"Editing","forms":"Forms","basicstyles":"Basic Styles","paragraph":"Paragraph","links":"Links","insert":"Insert","styles":"Styles","colors":"Colors","tools":"Tools"},"toolbars":"Едитор алатне траке"},"clipboard":{"copy":"Копирај","copyError":"Сигурносна подешавања Вашег претраживача не дозвољавају операције аутоматског копирања текста. Молимо Вас да користите пречицу са тастатуре (Ctrl/Cmd+C).","cut":"Исеци","cutError":"Сигурносна подешавања Вашег претраживача не дозвољавају операције аутоматског исецања текста. Молимо Вас да користите пречицу са тастатуре (Ctrl/Cmd+X).","paste":"Залепи","pasteNotification":"Your browser doesn't allow you to paste this way. Press %1 to paste."},"contextmenu":{"options":"Context Menu Options"},"elementspath":{"eleLabel":"Elements path","eleTitle":"%1 element"},"format":{"label":"Формат","panelTitle":"Формат","tag_address":"Adresa","tag_div":"Нормално (DIV)","tag_h1":"Heading 1","tag_h2":"Heading 2","tag_h3":"Heading 3","tag_h4":"Heading 4","tag_h5":"Heading 5","tag_h6":"Heading 6","tag_p":"Normal","tag_pre":"Formatirano"},"horizontalrule":{"toolbar":"Унеси хоризонталну линију"},"image":{"alt":"Алтернативни текст","border":"Оквир","btnUpload":"Пошаљи на сервер","button2Img":"Да ли желите да промените одабрану слику дугмета као једноставну слику?","hSpace":"HSpace","img2Button":"Да ли желите да промените одабрану слику у слику дугмета?","infoTab":"Инфо слике","linkTab":"Линк","lockRatio":"Закључај однос","menu":"Особине слика","resetSize":"Ресетуј величину","title":"Особине слика","titleButton":"Особине дугмета са сликом","upload":"Пошаљи","urlMissing":"Недостаје УРЛ слике.","vSpace":"VSpace","validateBorder":"Ивица треба да буде цифра.","validateHSpace":"HSpace треба да буде цифра.","validateVSpace":"VSpace треба да буде цифра."},"indent":{"indent":"Увећај леву маргину","outdent":"Смањи леву маргину"},"fakeobjects":{"anchor":"Anchor","flash":"Flash Animation","hiddenfield":"Hidden Field","iframe":"IFrame","unknown":"Unknown Object"},"link":{"acccessKey":"Приступни тастер","advanced":"Напредни тагови","advisoryContentType":"Advisory врста садржаја","advisoryTitle":"Advisory наслов","anchor":{"toolbar":"Унеси/измени сидро","menu":"Особине сидра","title":"Особине сидра","name":"Име сидра","errorName":"Молимо Вас да унесете име сидра","remove":"Remove Anchor"},"anchorId":"Пo Ид-jу елемента","anchorName":"По називу сидра","charset":"Linked Resource Charset","cssClasses":"Stylesheet класе","download":"Force Download","displayText":"Display Text","emailAddress":"Адреса електронске поште","emailBody":"Садржај поруке","emailSubject":"Наслов","id":"Ид","info":"Линк инфо","langCode":"Смер језика","langDir":"Смер језика","langDirLTR":"С лева на десно (LTR)","langDirRTL":"С десна на лево (RTL)","menu":"Промени линк","name":"Назив","noAnchors":"(Нема доступних сидра)","noEmail":"Откуцајте адресу електронске поште","noUrl":"Унесите УРЛ линка","other":"<друго>","popupDependent":"Зависно (Netscape)","popupFeatures":"Могућности искачућег прозора","popupFullScreen":"Приказ преко целог екрана (ИE)","popupLeft":"Од леве ивице екрана (пиксела)","popupLocationBar":"Локација","popupMenuBar":"Контекстни мени","popupResizable":"Величина се мења","popupScrollBars":"Скрол бар","popupStatusBar":"Статусна линија","popupToolbar":"Toolbar","popupTop":"Од врха екрана (пиксела)","rel":"Однос","selectAnchor":"Одабери сидро","styles":"Стил","tabIndex":"Таб индекс","target":"Meтa","targetFrame":"<оквир>","targetFrameName":"Назив одредишног фрејма","targetPopup":"<искачући прозор>","targetPopupName":"Назив искачућег прозора","title":"Линк","toAnchor":"Сидро на овој страници","toEmail":"Eлектронска пошта","toUrl":"УРЛ","toolbar":"Унеси/измени линк","type":"Врста линка","unlink":"Уклони линк","upload":"Пошаљи"},"list":{"bulletedlist":"Ненабројива листа","numberedlist":"Набројиву листу"},"magicline":{"title":"Insert paragraph here"},"maximize":{"maximize":"Maximize","minimize":"Minimize"},"pastetext":{"button":"Залепи као чист текст","pasteNotification":"Your browser does not allow you to paste plain text this way. Press %1 to paste."},"pastefromword":{"confirmCleanup":"The text you want to paste seems to be copied from Word. Do you want to clean it before pasting?","error":"It was not possible to clean up the pasted data due to an internal error","title":"Залепи из Worda","toolbar":"Залепи из Worda"},"removeformat":{"toolbar":"Уклони форматирање"},"sourcearea":{"toolbar":"Kôд"},"specialchar":{"options":"Опције специјалног карактера","title":"Одаберите специјални карактер","toolbar":"Унеси специјални карактер"},"scayt":{"btn_about":"About SCAYT","btn_dictionaries":"Dictionaries","btn_disable":"Disable SCAYT","btn_enable":"Enable SCAYT","btn_langs":"Languages","btn_options":"Options","text_title":"Spell Check As You Type"},"stylescombo":{"label":"Стил","panelTitle":"Formatting Styles","panelTitle1":"Block Styles","panelTitle2":"Inline Styles","panelTitle3":"Object Styles"},"table":{"border":"Величина оквира","caption":"Наслов табеле","cell":{"menu":"Cell","insertBefore":"Insert Cell Before","insertAfter":"Insert Cell After","deleteCell":"Обриши ћелије","merge":"Спој ћелије","mergeRight":"Merge Right","mergeDown":"Merge Down","splitHorizontal":"Split Cell Horizontally","splitVertical":"Split Cell Vertically","title":"Cell Properties","cellType":"Cell Type","rowSpan":"Rows Span","colSpan":"Columns Span","wordWrap":"Word Wrap","hAlign":"Horizontal Alignment","vAlign":"Vertical Alignment","alignBaseline":"Baseline","bgColor":"Background Color","borderColor":"Border Color","data":"Data","header":"Header","yes":"Yes","no":"No","invalidWidth":"Cell width must be a number.","invalidHeight":"Cell height must be a number.","invalidRowSpan":"Rows span must be a whole number.","invalidColSpan":"Columns span must be a whole number.","chooseColor":"Choose"},"cellPad":"Размак ћелија","cellSpace":"Ћелијски простор","column":{"menu":"Column","insertBefore":"Insert Column Before","insertAfter":"Insert Column After","deleteColumn":"Обриши колоне"},"columns":"Kолона","deleteTable":"Обриши таблу","headers":"Поглавља","headersBoth":"Оба","headersColumn":"Прва колона","headersNone":"None","headersRow":"Први ред","invalidBorder":"Величина ивице треба да буде цифра.","invalidCellPadding":"Пуњење ћелије треба да буде позитивна цифра.","invalidCellSpacing":"Размак ћелије треба да буде позитивна цифра.","invalidCols":"Број колона треба да буде цифра већа од 0.","invalidHeight":"Висина табеле треба да буде цифра.","invalidRows":"Број реда треба да буде цифра већа од 0.","invalidWidth":"Ширина табеле треба да буде цифра.","menu":"Особине табеле","row":{"menu":"Row","insertBefore":"Insert Row Before","insertAfter":"Insert Row After","deleteRow":"Обриши редове"},"rows":"Редова","summary":"Резиме","title":"Особине табеле","toolbar":"Табела","widthPc":"процената","widthPx":"пиксела","widthUnit":"јединица ширине"},"undo":{"redo":"Понови акцију","undo":"Поништи акцију"},"wsc":{"btnIgnore":"Игнориши","btnIgnoreAll":"Игнориши све","btnReplace":"Замени","btnReplaceAll":"Замени све","btnUndo":"Врати акцију","changeTo":"Измени","errorLoading":"Error loading application service host: %s.","ieSpellDownload":"Провера спеловања није инсталирана. Да ли желите да је скинете са Интернета?","manyChanges":"Провера спеловања завршена: %1 реч(и) је измењено","noChanges":"Провера спеловања завршена: Није измењена ниједна реч","noMispell":"Провера спеловања завршена: грешке нису пронађене","noSuggestions":"- Без сугестија -","notAvailable":"Sorry, but service is unavailable now.","notInDic":"Није у речнику","oneChange":"Провера спеловања завршена: Измењена је једна реч","progress":"Провера спеловања у току...","title":"Spell Checker","toolbar":"Провери спеловање"}}; \ No newline at end of file diff --git a/admin/plugins/ckeditor/lang/sv.js b/admin/plugins/ckeditor/lang/sv.js deleted file mode 100644 index da2c125..0000000 --- a/admin/plugins/ckeditor/lang/sv.js +++ /dev/null @@ -1,5 +0,0 @@ -/* -Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. -For licensing, see LICENSE.md or http://ckeditor.com/license -*/ -CKEDITOR.lang['sv']={"editor":"Rich Text-editor","editorPanel":"Panel till Rich Text-editor","common":{"editorHelp":"Tryck ALT 0 för hjälp","browseServer":"Bläddra på server","url":"URL","protocol":"Protokoll","upload":"Ladda upp","uploadSubmit":"Skicka till server","image":"Bild","flash":"Flash","form":"Formulär","checkbox":"Kryssruta","radio":"Alternativknapp","textField":"Textfält","textarea":"Textruta","hiddenField":"Dolt fält","button":"Knapp","select":"Flervalslista","imageButton":"Bildknapp","notSet":"<ej angivet>","id":"Id","name":"Namn","langDir":"Språkriktning","langDirLtr":"Vänster till Höger (VTH)","langDirRtl":"Höger till Vänster (HTV)","langCode":"Språkkod","longDescr":"URL-beskrivning","cssClass":"Stilmall","advisoryTitle":"Titel","cssStyle":"Stilmall","ok":"OK","cancel":"Avbryt","close":"Stäng","preview":"Förhandsgranska","resize":"Dra för att ändra storlek","generalTab":"Allmänt","advancedTab":"Avancerad","validateNumberFailed":"Värdet är inte ett nummer.","confirmNewPage":"Alla ändringar i innehållet kommer att förloras. Är du säker på att du vill ladda en ny sida?","confirmCancel":"Några av alternativen har ändrats. Är du säker på att du vill stänga dialogrutan?","options":"Alternativ","target":"Mål","targetNew":"Nytt fönster (_blank)","targetTop":"Översta fönstret (_top)","targetSelf":"Samma fönster (_self)","targetParent":"Föregående fönster (_parent)","langDirLTR":"Vänster till höger (LTR)","langDirRTL":"Höger till vänster (RTL)","styles":"Stil","cssClasses":"Stilmallar","width":"Bredd","height":"Höjd","align":"Justering","alignLeft":"Vänster","alignRight":"Höger","alignCenter":"Centrerad","alignJustify":"Justera till marginaler","alignTop":"Överkant","alignMiddle":"Mitten","alignBottom":"Nederkant","alignNone":"Ingen","invalidValue":"Felaktigt värde.","invalidHeight":"Höjd måste vara ett nummer.","invalidWidth":"Bredd måste vara ett nummer.","invalidCssLength":"Värdet för fältet \"%1\" måste vara ett positivt nummer med eller utan CSS-mätenheter (px, %, in, cm, mm, em, ex, pt, eller pc).","invalidHtmlLength":"Värdet för fältet \"%1\" måste vara ett positivt nummer med eller utan godkända HTML-mätenheter (px eller %).","invalidInlineStyle":"Det angivna värdet för style måste innehålla en eller flera tupler separerade med semikolon i följande format: \"name : value\"","cssLengthTooltip":"Ange ett nummer i pixlar eller ett nummer men godkänd CSS-mätenhet (px, %, in, cm, mm, em, ex, pt, eller pc).","unavailable":"%1<span class=\"cke_accessibility\">, Ej tillgänglig</span>","keyboard":{"8":"Backsteg","13":"Retur","16":"Skift","17":"Ctrl","18":"Alt","32":"Mellanslag","35":"Slut","36":"Hem","46":"Radera","224":"Kommando"},"keyboardShortcut":"Kortkommando"},"about":{"copy":"Copyright &copy; $1. Alla rättigheter reserverade.","dlgTitle":"Om CKEditor","help":"Se $1 för hjälp.","moreInfo":"För information om licensiering besök vår hemsida:","title":"Om CKEditor","userGuide":"CKEditor användarmanual"},"basicstyles":{"bold":"Fet","italic":"Kursiv","strike":"Genomstruken","subscript":"Nedsänkta tecken","superscript":"Upphöjda tecken","underline":"Understruken"},"blockquote":{"toolbar":"Blockcitat"},"notification":{"closed":"Notifiering stängd."},"button":{"selectedLabel":"%1 (Vald)"},"toolbar":{"toolbarCollapse":"Dölj verktygsfält","toolbarExpand":"Visa verktygsfält","toolbarGroups":{"document":"Dokument","clipboard":"Urklipp/ångra","editing":"Redigering","forms":"Formulär","basicstyles":"Basstilar","paragraph":"Paragraf","links":"Länkar","insert":"Infoga","styles":"Stilar","colors":"Färger","tools":"Verktyg"},"toolbars":"Editorns verktygsfält"},"clipboard":{"copy":"Kopiera","copyError":"Säkerhetsinställningar i din webbläsare tillåter inte åtgärden kopiera. Använd (Ctrl/Cmd+C) istället.","cut":"Klipp ut","cutError":"Säkerhetsinställningar i din webbläsare tillåter inte åtgärden klipp ut. Använd (Ctrl/Cmd+X) istället.","paste":"Klistra in","pasteNotification":"Din webbläsare tillåter dig inte att klistra in på detta vis. Tryck på %1 för att klistra in."},"contextmenu":{"options":"Context Menu Options"},"elementspath":{"eleLabel":"Elementets sökväg","eleTitle":"%1 element"},"format":{"label":"Teckenformat","panelTitle":"Teckenformat","tag_address":"Adress","tag_div":"Normal (DIV)","tag_h1":"Rubrik 1","tag_h2":"Rubrik 2","tag_h3":"Rubrik 3","tag_h4":"Rubrik 4","tag_h5":"Rubrik 5","tag_h6":"Rubrik 6","tag_p":"Normal","tag_pre":"Formaterad"},"horizontalrule":{"toolbar":"Infoga horisontal linje"},"image":{"alt":"Alternativ text","border":"Kant","btnUpload":"Skicka till server","button2Img":"Vill du omvandla den valda bildknappen på en enkel bild?","hSpace":"Horis. marginal","img2Button":"Vill du omvandla den valda bildknappen på en enkel bild?","infoTab":"Bildinformation","linkTab":"Länk","lockRatio":"Lås höjd/bredd förhållanden","menu":"Bildegenskaper","resetSize":"Återställ storlek","title":"Bildegenskaper","titleButton":"Egenskaper för bildknapp","upload":"Ladda upp","urlMissing":"Bildkällans URL saknas.","vSpace":"Vert. marginal","validateBorder":"Kantlinje måste vara ett heltal.","validateHSpace":"HSpace måste vara ett heltal.","validateVSpace":"VSpace måste vara ett heltal."},"indent":{"indent":"Öka indrag","outdent":"Minska indrag"},"fakeobjects":{"anchor":"Ankare","flash":"Flashanimation","hiddenfield":"Gömt fält","iframe":"iFrame","unknown":"Okänt objekt"},"link":{"acccessKey":"Behörighetsnyckel","advanced":"Avancerad","advisoryContentType":"Innehållstyp","advisoryTitle":"Titel","anchor":{"toolbar":"Infoga/Redigera ankarlänk","menu":"Egenskaper för ankarlänk","title":"Egenskaper för ankarlänk","name":"Ankarnamn","errorName":"Var god ange ett ankarnamn","remove":"Radera ankare"},"anchorId":"Efter element-id","anchorName":"Efter ankarnamn","charset":"Teckenuppställning","cssClasses":"Stilmall","download":"Tvinga nerladdning","displayText":"Visningstext","emailAddress":"E-postadress","emailBody":"Innehåll","emailSubject":"Ämne","id":"Id","info":"Länkinformation","langCode":"Språkkod","langDir":"Språkriktning","langDirLTR":"Vänster till höger (VTH)","langDirRTL":"Höger till vänster (HTV)","menu":"Redigera länk","name":"Namn","noAnchors":"(Inga ankare kunde hittas)","noEmail":"Var god ange e-postadress","noUrl":"Var god ange länkens URL","other":"<annan>","popupDependent":"Beroende (endast Netscape)","popupFeatures":"Popup-fönstrets egenskaper","popupFullScreen":"Helskärm (endast IE)","popupLeft":"Position från vänster","popupLocationBar":"Adressfält","popupMenuBar":"Menyfält","popupResizable":"Skalbart","popupScrollBars":"Scrolllista","popupStatusBar":"Statusfält","popupToolbar":"Verktygsfält","popupTop":"Position från sidans topp","rel":"Förhållande","selectAnchor":"Välj ett ankare","styles":"Stilmall","tabIndex":"Tabindex","target":"Mål","targetFrame":"<ram>","targetFrameName":"Målets ramnamn","targetPopup":"<popup-fönster>","targetPopupName":"Popup-fönstrets namn","title":"Länk","toAnchor":"Länk till ankare i texten","toEmail":"E-post","toUrl":"URL","toolbar":"Infoga/Redigera länk","type":"Länktyp","unlink":"Radera länk","upload":"Ladda upp"},"list":{"bulletedlist":"Infoga/ta bort punktlista","numberedlist":"Infoga/ta bort numrerad lista"},"magicline":{"title":"Infoga paragraf här"},"maximize":{"maximize":"Maximera","minimize":"Minimera"},"pastetext":{"button":"Klistra in som vanlig text","pasteNotification":"Din webbläsare tillåter dig inte att klistra in vanlig text på detta vis. Tryck på %1 för att klistra in."},"pastefromword":{"confirmCleanup":"Texten du vill klistra in verkar vara kopierad från Word. Vill du rensa den innan du klistrar in den?","error":"Det var inte möjligt att städa upp den inklistrade data på grund av ett internt fel","title":"Klistra in från Word","toolbar":"Klistra in från Word"},"removeformat":{"toolbar":"Radera formatering"},"sourcearea":{"toolbar":"Källa"},"specialchar":{"options":"Alternativ för utökade tecken","title":"Välj utökat tecken","toolbar":"Klistra in utökat tecken"},"scayt":{"btn_about":"Om SCAYT","btn_dictionaries":"Ordlistor","btn_disable":"Inaktivera SCAYT","btn_enable":"Aktivera SCAYT","btn_langs":"Språk","btn_options":"Inställningar","text_title":"Stavningskontroll medan du skriver"},"stylescombo":{"label":"Stilar","panelTitle":"Formateringsstilar","panelTitle1":"Blockstilar","panelTitle2":"Inbäddade stilar","panelTitle3":"Objektstilar"},"table":{"border":"Kantstorlek","caption":"Rubrik","cell":{"menu":"Cell","insertBefore":"Lägg till cell före","insertAfter":"Lägg till cell efter","deleteCell":"Radera celler","merge":"Sammanfoga celler","mergeRight":"Sammanfoga höger","mergeDown":"Sammanfoga ner","splitHorizontal":"Dela cell horisontellt","splitVertical":"Dela cell vertikalt","title":"Egenskaper för cell","cellType":"Celltyp","rowSpan":"Rad spann","colSpan":"Kolumnen spann","wordWrap":"Radbrytning","hAlign":"Horisontell justering","vAlign":"Vertikal justering","alignBaseline":"Baslinje","bgColor":"Bakgrundsfärg","borderColor":"Ramfärg","data":"Data","header":"Rubrik","yes":"Ja","no":"Nej","invalidWidth":"Cellens bredd måste vara ett nummer.","invalidHeight":"Cellens höjd måste vara ett nummer.","invalidRowSpan":"Radutvidgning måste vara ett heltal.","invalidColSpan":"Kolumn måste vara ett heltal.","chooseColor":"Välj"},"cellPad":"Cellutfyllnad","cellSpace":"Cellavstånd","column":{"menu":"Kolumn","insertBefore":"Lägg till kolumn före","insertAfter":"Lägg till kolumn efter","deleteColumn":"Radera kolumn"},"columns":"Kolumner","deleteTable":"Radera tabell","headers":"Rubriker","headersBoth":"Båda","headersColumn":"Första kolumnen","headersNone":"Ingen","headersRow":"Första raden","invalidBorder":"Ram måste vara ett nummer.","invalidCellPadding":"Luft i cell måste vara ett nummer.","invalidCellSpacing":"Luft i cell måste vara ett nummer.","invalidCols":"Antal kolumner måste vara ett nummer större än 0.","invalidHeight":"Tabellens höjd måste vara ett nummer.","invalidRows":"Antal rader måste vara större än 0.","invalidWidth":"Tabell måste vara ett nummer.","menu":"Tabellegenskaper","row":{"menu":"Rad","insertBefore":"Lägg till rad före","insertAfter":"Lägg till rad efter","deleteRow":"Radera rad"},"rows":"Rader","summary":"Sammanfattning","title":"Tabellegenskaper","toolbar":"Tabell","widthPc":"procent","widthPx":"pixlar","widthUnit":"enhet bredd"},"undo":{"redo":"Gör om","undo":"Ångra"},"wsc":{"btnIgnore":"Ignorera","btnIgnoreAll":"Ignorera alla","btnReplace":"Ersätt","btnReplaceAll":"Ersätt alla","btnUndo":"Ångra","changeTo":"Ändra till","errorLoading":"Tjänsten är ej tillgänglig: %s.","ieSpellDownload":"Stavningskontrollen är ej installerad. Vill du göra det nu?","manyChanges":"Stavningskontroll slutförd: %1 ord rättades.","noChanges":"Stavningskontroll slutförd: Inga ord rättades.","noMispell":"Stavningskontroll slutförd: Inga stavfel påträffades.","noSuggestions":"- Förslag saknas -","notAvailable":"Tyvärr är tjänsten ej tillgänglig nu","notInDic":"Saknas i ordlistan","oneChange":"Stavningskontroll slutförd: Ett ord rättades.","progress":"Stavningskontroll pågår...","title":"Kontrollera stavning","toolbar":"Stavningskontroll"}}; \ No newline at end of file diff --git a/admin/plugins/ckeditor/lang/th.js b/admin/plugins/ckeditor/lang/th.js deleted file mode 100644 index 77e5ef8..0000000 --- a/admin/plugins/ckeditor/lang/th.js +++ /dev/null @@ -1,5 +0,0 @@ -/* -Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. -For licensing, see LICENSE.md or http://ckeditor.com/license -*/ -CKEDITOR.lang['th']={"editor":"Rich Text Editor","editorPanel":"Rich Text Editor panel","common":{"editorHelp":"กด ALT 0 หากต้องการความช่วยเหลือ","browseServer":"เปิดหน้าต่างจัดการไฟล์อัพโหลด","url":"ที่อยู่อ้างอิง URL","protocol":"โปรโตคอล","upload":"อัพโหลดไฟล์","uploadSubmit":"อัพโหลดไฟล์ไปเก็บไว้ที่เครื่องแม่ข่าย (เซิร์ฟเวอร์)","image":"รูปภาพ","flash":"ไฟล์ Flash","form":"แบบฟอร์ม","checkbox":"เช็คบ๊อก","radio":"เรดิโอบัตตอน","textField":"เท็กซ์ฟิลด์","textarea":"เท็กซ์แอเรีย","hiddenField":"ฮิดเดนฟิลด์","button":"ปุ่ม","select":"แถบตัวเลือก","imageButton":"ปุ่มแบบรูปภาพ","notSet":"<ไม่ระบุ>","id":"ไอดี","name":"ชื่อ","langDir":"การเขียน-อ่านภาษา","langDirLtr":"จากซ้ายไปขวา (LTR)","langDirRtl":"จากขวามาซ้าย (RTL)","langCode":"รหัสภาษา","longDescr":"คำอธิบายประกอบ URL","cssClass":"คลาสของไฟล์กำหนดลักษณะการแสดงผล","advisoryTitle":"คำเกริ่นนำ","cssStyle":"ลักษณะการแสดงผล","ok":"ตกลง","cancel":"ยกเลิก","close":"ปิด","preview":"ดูหน้าเอกสารตัวอย่าง","resize":"ปรับขนาด","generalTab":"ทั่วไป","advancedTab":"ขั้นสูง","validateNumberFailed":"ค่านี้ไม่ใช่ตัวเลข","confirmNewPage":"การเปลี่ยนแปลงใดๆ ในเนื้อหานี้ ที่ไม่ได้ถูกบันทึกไว้ จะสูญหายทั้งหมด คุณแน่ใจว่าจะเรียกหน้าใหม่?","confirmCancel":"ตัวเลือกบางตัวมีการเปลี่ยนแปลง คุณแน่ใจว่าจะปิดกล่องโต้ตอบนี้?","options":"ตัวเลือก","target":"การเปิดหน้าลิงค์","targetNew":"หน้าต่างใหม่ (_blank)","targetTop":"Topmost Window (_top)","targetSelf":"หน้าต่างเดียวกัน (_self)","targetParent":"Parent Window (_parent)","langDirLTR":"จากซ้ายไปขวา (LTR)","langDirRTL":"จากขวามาซ้าย (RTL)","styles":"ลักษณะการแสดงผล","cssClasses":"คลาสของไฟล์กำหนดลักษณะการแสดงผล","width":"ความกว้าง","height":"ความสูง","align":"การจัดวาง","alignLeft":"ชิดซ้าย","alignRight":"ชิดขวา","alignCenter":"กึ่งกลาง","alignJustify":"நியாயப்படுத்தவும்","alignTop":"บนสุด","alignMiddle":"กึ่งกลางแนวตั้ง","alignBottom":"ชิดด้านล่าง","alignNone":"None","invalidValue":"ค่าไม่ถูกต้อง","invalidHeight":"ความสูงต้องเป็นตัวเลข","invalidWidth":"ความกว้างต้องเป็นตัวเลข","invalidCssLength":"Value specified for the \"%1\" field must be a positive number with or without a valid CSS measurement unit (px, %, in, cm, mm, em, ex, pt, or pc).","invalidHtmlLength":"Value specified for the \"%1\" field must be a positive number with or without a valid HTML measurement unit (px or %).","invalidInlineStyle":"Value specified for the inline style must consist of one or more tuples with the format of \"name : value\", separated by semi-colons.","cssLengthTooltip":"Enter a number for a value in pixels or a number with a valid CSS unit (px, %, in, cm, mm, em, ex, pt, or pc).","unavailable":"%1<span class=\"cke_accessibility\">, unavailable</span>","keyboard":{"8":"Backspace","13":"Enter","16":"Shift","17":"Ctrl","18":"Alt","32":"Space","35":"End","36":"Home","46":"Delete","224":"Command"},"keyboardShortcut":"Keyboard shortcut"},"about":{"copy":"Copyright &copy; $1. All rights reserved.","dlgTitle":"About CKEditor","help":"Check $1 for help.","moreInfo":"For licensing information please visit our web site:","title":"About CKEditor","userGuide":"CKEditor User's Guide"},"basicstyles":{"bold":"ตัวหนา","italic":"ตัวเอียง","strike":"ตัวขีดเส้นทับ","subscript":"ตัวห้อย","superscript":"ตัวยก","underline":"ตัวขีดเส้นใต้"},"blockquote":{"toolbar":"Block Quote"},"notification":{"closed":"Notification closed."},"button":{"selectedLabel":"%1 (Selected)"},"toolbar":{"toolbarCollapse":"ซ่อนแถบเครื่องมือ","toolbarExpand":"เปิดแถบเครื่องมือ","toolbarGroups":{"document":"Document","clipboard":"Clipboard/Undo","editing":"Editing","forms":"Forms","basicstyles":"Basic Styles","paragraph":"Paragraph","links":"Links","insert":"Insert","styles":"Styles","colors":"Colors","tools":"Tools"},"toolbars":"แถบเครื่องมือช่วยพิมพ์ข้อความ"},"clipboard":{"copy":"สำเนา","copyError":"ไม่สามารถสำเนาข้อความที่เลือกไว้ได้เนื่องจากการกำหนดค่าระดับความปลอดภัย. กรุณาใช้ปุ่มลัดเพื่อวางข้อความแทน (กดปุ่ม Ctrl/Cmd และตัว C พร้อมกัน).","cut":"ตัด","cutError":"ไม่สามารถตัดข้อความที่เลือกไว้ได้เนื่องจากการกำหนดค่าระดับความปลอดภัย. กรุณาใช้ปุ่มลัดเพื่อวางข้อความแทน (กดปุ่ม Ctrl/Cmd และตัว X พร้อมกัน).","paste":"วาง","pasteNotification":"Your browser doesn't allow you to paste this way. Press %1 to paste."},"contextmenu":{"options":"Context Menu Options"},"elementspath":{"eleLabel":"Elements path","eleTitle":"%1 element"},"format":{"label":"รูปแบบ","panelTitle":"รูปแบบ","tag_address":"Address","tag_div":"Paragraph (DIV)","tag_h1":"Heading 1","tag_h2":"Heading 2","tag_h3":"Heading 3","tag_h4":"Heading 4","tag_h5":"Heading 5","tag_h6":"Heading 6","tag_p":"Normal","tag_pre":"Formatted"},"horizontalrule":{"toolbar":"แทรกเส้นคั่นบรรทัด"},"image":{"alt":"คำประกอบรูปภาพ","border":"ขนาดขอบรูป","btnUpload":"อัพโหลดไฟล์ไปเก็บไว้ที่เครื่องแม่ข่าย (เซิร์ฟเวอร์)","button2Img":"Do you want to transform the selected image button on a simple image?","hSpace":"ระยะแนวนอน","img2Button":"Do you want to transform the selected image on a image button?","infoTab":"ข้อมูลของรูปภาพ","linkTab":"ลิ้งค์","lockRatio":"กำหนดอัตราส่วน กว้าง-สูง แบบคงที่","menu":"คุณสมบัติของ รูปภาพ","resetSize":"กำหนดรูปเท่าขนาดจริง","title":"คุณสมบัติของ รูปภาพ","titleButton":"คุณสมบัติของ ปุ่มแบบรูปภาพ","upload":"อัพโหลดไฟล์","urlMissing":"Image source URL is missing.","vSpace":"ระยะแนวตั้ง","validateBorder":"Border must be a whole number.","validateHSpace":"HSpace must be a whole number.","validateVSpace":"VSpace must be a whole number."},"indent":{"indent":"เพิ่มระยะย่อหน้า","outdent":"ลดระยะย่อหน้า"},"fakeobjects":{"anchor":"แทรก/แก้ไข Anchor","flash":"ภาพอนิเมชั่นแฟลช","hiddenfield":"ฮิดเดนฟิลด์","iframe":"IFrame","unknown":"วัตถุไม่ทราบชนิด"},"link":{"acccessKey":"แอคเซส คีย์","advanced":"ขั้นสูง","advisoryContentType":"ชนิดของคำเกริ่นนำ","advisoryTitle":"คำเกริ่นนำ","anchor":{"toolbar":"แทรก/แก้ไข Anchor","menu":"รายละเอียด Anchor","title":"รายละเอียด Anchor","name":"ชื่อ Anchor","errorName":"กรุณาระบุชื่อของ Anchor","remove":"Remove Anchor"},"anchorId":"ไอดี","anchorName":"ชื่อ","charset":"ลิงค์เชื่อมโยงไปยังชุดตัวอักษร","cssClasses":"คลาสของไฟล์กำหนดลักษณะการแสดงผล","download":"Force Download","displayText":"Display Text","emailAddress":"อีเมล์ (E-Mail)","emailBody":"ข้อความ","emailSubject":"หัวเรื่อง","id":"ไอดี","info":"รายละเอียด","langCode":"การเขียน-อ่านภาษา","langDir":"การเขียน-อ่านภาษา","langDirLTR":"จากซ้ายไปขวา (LTR)","langDirRTL":"จากขวามาซ้าย (RTL)","menu":"แก้ไข ลิงค์","name":"ชื่อ","noAnchors":"(ยังไม่มีจุดเชื่อมโยงภายในหน้าเอกสารนี้)","noEmail":"กรุณาระบุอีเมล์ (E-mail)","noUrl":"กรุณาระบุที่อยู่อ้างอิงออนไลน์ (URL)","other":"<อื่น ๆ>","popupDependent":"แสดงเต็มหน้าจอ (Netscape)","popupFeatures":"คุณสมบัติของหน้าจอเล็ก (Pop-up)","popupFullScreen":"แสดงเต็มหน้าจอ (IE5.5++ เท่านั้น)","popupLeft":"พิกัดซ้าย (Left Position)","popupLocationBar":"แสดงที่อยู่ของไฟล์","popupMenuBar":"แสดงแถบเมนู","popupResizable":"สามารถปรับขนาดได้","popupScrollBars":"แสดงแถบเลื่อน","popupStatusBar":"แสดงแถบสถานะ","popupToolbar":"แสดงแถบเครื่องมือ","popupTop":"พิกัดบน (Top Position)","rel":"ความสัมพันธ์","selectAnchor":"ระบุข้อมูลของจุดเชื่อมโยง (Anchor)","styles":"ลักษณะการแสดงผล","tabIndex":"ลำดับของ แท็บ","target":"การเปิดหน้าลิงค์","targetFrame":"<เปิดในเฟรม>","targetFrameName":"ชื่อทาร์เก็ตเฟรม","targetPopup":"<เปิดหน้าจอเล็ก (Pop-up)>","targetPopupName":"ระบุชื่อหน้าจอเล็ก (Pop-up)","title":"ลิงค์เชื่อมโยงเว็บ อีเมล์ รูปภาพ หรือไฟล์อื่นๆ","toAnchor":"จุดเชื่อมโยง (Anchor)","toEmail":"ส่งอีเมล์ (E-Mail)","toUrl":"ที่อยู่อ้างอิง URL","toolbar":"แทรก/แก้ไข ลิงค์","type":"ประเภทของลิงค์","unlink":"ลบ ลิงค์","upload":"อัพโหลดไฟล์"},"list":{"bulletedlist":"ลำดับรายการแบบสัญลักษณ์","numberedlist":"ลำดับรายการแบบตัวเลข"},"magicline":{"title":"Insert paragraph here"},"maximize":{"maximize":"ขยายใหญ่","minimize":"ย่อขนาด"},"pastetext":{"button":"วางแบบตัวอักษรธรรมดา","pasteNotification":"Your browser does not allow you to paste plain text this way. Press %1 to paste."},"pastefromword":{"confirmCleanup":"ข้อความที่คุณต้องการวางลงไปเป็นข้อความที่คัดลอกมาจากโปรแกรมไมโครซอฟท์เวิร์ด คุณต้องการล้างค่าข้อความดังกล่าวก่อนวางลงไปหรือไม่?","error":"ไม่สามารถล้างข้อมูลที่ต้องการวางได้เนื่องจากเกิดข้อผิดพลาดภายในระบบ","title":"วางสำเนาจากตัวอักษรเวิร์ด","toolbar":"วางสำเนาจากตัวอักษรเวิร์ด"},"removeformat":{"toolbar":"ล้างรูปแบบ"},"sourcearea":{"toolbar":"ดูรหัส HTML"},"specialchar":{"options":"Special Character Options","title":"แทรกตัวอักษรพิเศษ","toolbar":"แทรกตัวอักษรพิเศษ"},"scayt":{"btn_about":"About SCAYT","btn_dictionaries":"Dictionaries","btn_disable":"Disable SCAYT","btn_enable":"Enable SCAYT","btn_langs":"Languages","btn_options":"Options","text_title":"Spell Check As You Type"},"stylescombo":{"label":"ลักษณะ","panelTitle":"Formatting Styles","panelTitle1":"Block Styles","panelTitle2":"Inline Styles","panelTitle3":"Object Styles"},"table":{"border":"ขนาดเส้นขอบ","caption":"หัวเรื่องของตาราง","cell":{"menu":"ช่องตาราง","insertBefore":"Insert Cell Before","insertAfter":"Insert Cell After","deleteCell":"ลบช่อง","merge":"ผสานช่อง","mergeRight":"Merge Right","mergeDown":"Merge Down","splitHorizontal":"Split Cell Horizontally","splitVertical":"Split Cell Vertically","title":"Cell Properties","cellType":"Cell Type","rowSpan":"Rows Span","colSpan":"Columns Span","wordWrap":"Word Wrap","hAlign":"Horizontal Alignment","vAlign":"Vertical Alignment","alignBaseline":"Baseline","bgColor":"Background Color","borderColor":"Border Color","data":"Data","header":"Header","yes":"Yes","no":"No","invalidWidth":"Cell width must be a number.","invalidHeight":"Cell height must be a number.","invalidRowSpan":"Rows span must be a whole number.","invalidColSpan":"Columns span must be a whole number.","chooseColor":"Choose"},"cellPad":"ระยะแนวตั้ง","cellSpace":"ระยะแนวนอนน","column":{"menu":"คอลัมน์","insertBefore":"Insert Column Before","insertAfter":"Insert Column After","deleteColumn":"ลบสดมน์"},"columns":"สดมน์","deleteTable":"ลบตาราง","headers":"ส่วนหัว","headersBoth":"ทั้งสองอย่าง","headersColumn":"คอลัมน์แรก","headersNone":"None","headersRow":"แถวแรก","invalidBorder":"ขนาดเส้นกรอบต้องเป็นจำนวนตัวเลข","invalidCellPadding":"ช่องว่างภายในเซลล์ต้องเลขจำนวนบวก","invalidCellSpacing":"ช่องว่างภายในเซลล์ต้องเป็นเลขจำนวนบวก","invalidCols":"จำนวนคอลัมน์ต้องเป็นจำนวนมากกว่า 0","invalidHeight":"ส่วนสูงของตารางต้องเป็นตัวเลข","invalidRows":"จำนวนของแถวต้องเป็นจำนวนมากกว่า 0","invalidWidth":"ความกว้างตารางต้องเป็นตัวเลข","menu":"คุณสมบัติของ ตาราง","row":{"menu":"แถว","insertBefore":"Insert Row Before","insertAfter":"Insert Row After","deleteRow":"ลบแถว"},"rows":"แถว","summary":"สรุปความ","title":"คุณสมบัติของ ตาราง","toolbar":"ตาราง","widthPc":"เปอร์เซ็น","widthPx":"จุดสี","widthUnit":"หน่วยความกว้าง"},"undo":{"redo":"ทำซ้ำคำสั่ง","undo":"ยกเลิกคำสั่ง"},"wsc":{"btnIgnore":"ยกเว้น","btnIgnoreAll":"ยกเว้นทั้งหมด","btnReplace":"แทนที่","btnReplaceAll":"แทนที่ทั้งหมด","btnUndo":"ยกเลิก","changeTo":"แก้ไขเป็น","errorLoading":"Error loading application service host: %s.","ieSpellDownload":"ไม่ได้ติดตั้งระบบตรวจสอบคำสะกด. ต้องการติดตั้งไหมครับ?","manyChanges":"ตรวจสอบคำสะกดเสร็จสิ้น:: แก้ไข %1 คำ","noChanges":"ตรวจสอบคำสะกดเสร็จสิ้น: ไม่มีการแก้คำใดๆ","noMispell":"ตรวจสอบคำสะกดเสร็จสิ้น: ไม่พบคำสะกดผิด","noSuggestions":"- ไม่มีคำแนะนำใดๆ -","notAvailable":"Sorry, but service is unavailable now.","notInDic":"ไม่พบในดิกชันนารี","oneChange":"ตรวจสอบคำสะกดเสร็จสิ้น: แก้ไข1คำ","progress":"กำลังตรวจสอบคำสะกด...","title":"Spell Checker","toolbar":"ตรวจการสะกดคำ"}}; \ No newline at end of file diff --git a/admin/plugins/ckeditor/lang/tr.js b/admin/plugins/ckeditor/lang/tr.js deleted file mode 100644 index 7209e0f..0000000 --- a/admin/plugins/ckeditor/lang/tr.js +++ /dev/null @@ -1,5 +0,0 @@ -/* -Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. -For licensing, see LICENSE.md or http://ckeditor.com/license -*/ -CKEDITOR.lang['tr']={"editor":"Zengin Metin Editörü","editorPanel":"Zengin Metin Editör Paneli","common":{"editorHelp":"Yardım için ALT 0 tuşlarına basın","browseServer":"Sunucuya Gözat","url":"URL","protocol":"Protokol","upload":"Karşıya Yükle","uploadSubmit":"Sunucuya Gönder","image":"Resim","flash":"Flash","form":"Form","checkbox":"Onay Kutusu","radio":"Seçenek Düğmesi","textField":"Metin Kutusu","textarea":"Metin Alanı","hiddenField":"Gizli Alan","button":"Düğme","select":"Seçme Alanı","imageButton":"Resim Düğmesi","notSet":"<tanımlanmamış>","id":"Kimlik","name":"İsim","langDir":"Dil Yönü","langDirLtr":"Soldan Sağa (LTR)","langDirRtl":"Sağdan Sola (RTL)","langCode":"Dil Kodlaması","longDescr":"Uzun Tanımlı URL","cssClass":"Biçem Sayfası Sınıfları","advisoryTitle":"Öneri Başlığı","cssStyle":"Biçem","ok":"Tamam","cancel":"İptal","close":"Kapat","preview":"Önizleme","resize":"Yeniden Boyutlandır","generalTab":"Genel","advancedTab":"Gelişmiş","validateNumberFailed":"Bu değer bir sayı değildir.","confirmNewPage":"Bu içerikle ilgili kaydedilmemiş tüm bilgiler kaybolacaktır. Yeni bir sayfa yüklemek istediğinizden emin misiniz?","confirmCancel":"Bazı seçenekleri değiştirdiniz. İletişim penceresini kapatmak istediğinizden emin misiniz?","options":"Seçenekler","target":"Hedef","targetNew":"Yeni Pencere (_blank)","targetTop":"En Üstteki Pencere (_top)","targetSelf":"Aynı Pencere (_self)","targetParent":"Üst Pencere (_parent)","langDirLTR":"Soldan Sağa (LTR)","langDirRTL":"Sağdan Sola (RTL)","styles":"Biçem","cssClasses":"Biçem Sayfası Sınıfları","width":"Genişlik","height":"Yükseklik","align":"Hizalama","alignLeft":"Sol","alignRight":"Sağ","alignCenter":"Ortala","alignJustify":"İki Kenara Yaslanmış","alignTop":"Üst","alignMiddle":"Orta","alignBottom":"Alt","alignNone":"Hiçbiri","invalidValue":"Geçersiz değer.","invalidHeight":"Yükseklik değeri bir sayı olmalıdır.","invalidWidth":"Genişlik değeri bir sayı olmalıdır.","invalidCssLength":"\"%1\" alanı için verilen değer, geçerli bir CSS ölçü birimi (px, %, in, cm, mm, em, ex, pt, veya pc) içeren veya içermeyen pozitif bir sayı olmalıdır.","invalidHtmlLength":"Belirttiğiniz sayı \"%1\" alanı için pozitif bir sayı HTML birim değeri olmalıdır (px veya %).","invalidInlineStyle":"Satıriçi biçem için verilen değer, \"isim : değer\" biçiminde birbirinden noktalı virgüllerle ayrılan bir veya daha fazla değişkenler grubundan oluşmalıdır.","cssLengthTooltip":"Piksel türünde bir sayı veya geçerli bir CSS ölçü birimi (px, %, in, cm, mm, em, ex, pt veya pc) içeren bir sayı girin.","unavailable":"%1<span class=\"cke_accessibility\">, kullanılamaz</span>","keyboard":{"8":"Silme Tuşu","13":"Giriş Tuşu","16":"Üst Karater Tuşu","17":"Kontrol Tuşu","18":"Alt Tuşu","32":"Boşluk Tuşu","35":"En Sona Tuşu","36":"En Başa Tuşu","46":"Silme Tuşu","224":"Komut Tuşu"},"keyboardShortcut":"Klavye Kısayolu"},"about":{"copy":"Copyright &copy; $1. Tüm hakları saklıdır.","dlgTitle":"CKEditor Hakkında","help":"Yardım için $1 kontrol edin.","moreInfo":"Lisanslama hakkında daha fazla bilgi almak için lütfen sitemizi ziyaret edin:","title":"CKEditor Hakkında","userGuide":"CKEditor Kullanıcı Kılavuzu"},"basicstyles":{"bold":"Kalın","italic":"İtalik","strike":"Üstü Çizgili","subscript":"Alt Simge","superscript":"Üst Simge","underline":"Altı Çizgili"},"blockquote":{"toolbar":"Blok Oluştur"},"notification":{"closed":"Uyarılar kapatıldı."},"button":{"selectedLabel":"%1 (Seçilmiş)"},"toolbar":{"toolbarCollapse":"Araç çubuklarını topla","toolbarExpand":"Araç çubuklarını aç","toolbarGroups":{"document":"Belge","clipboard":"Pano/Geri al","editing":"Düzenleme","forms":"Formlar","basicstyles":"Temel Stiller","paragraph":"Paragraf","links":"Bağlantılar","insert":"Ekle","styles":"Stiller","colors":"Renkler","tools":"Araçlar"},"toolbars":"Araç çubukları Editörü"},"clipboard":{"copy":"Kopyala","copyError":"Gezgin yazılımınızın güvenlik ayarları düzenleyicinin otomatik kopyalama işlemine izin vermiyor. İşlem için (Ctrl/Cmd+C) tuşlarını kullanın.","cut":"Kes","cutError":"Gezgin yazılımınızın güvenlik ayarları düzenleyicinin otomatik kesme işlemine izin vermiyor. İşlem için (Ctrl/Cmd+X) tuşlarını kullanın.","paste":"Yapıştır","pasteNotification":"Your browser doesn't allow you to paste this way. Press %1 to paste."},"contextmenu":{"options":"İçerik Menüsü Seçenekleri"},"elementspath":{"eleLabel":"Elementlerin yolu","eleTitle":"%1 elementi"},"format":{"label":"Biçim","panelTitle":"Biçim","tag_address":"Adres","tag_div":"Paragraf (DIV)","tag_h1":"Başlık 1","tag_h2":"Başlık 2","tag_h3":"Başlık 3","tag_h4":"Başlık 4","tag_h5":"Başlık 5","tag_h6":"Başlık 6","tag_p":"Normal","tag_pre":"Biçimli"},"horizontalrule":{"toolbar":"Yatay Satır Ekle"},"image":{"alt":"Alternatif Yazı","border":"Kenar","btnUpload":"Sunucuya Yolla","button2Img":"Seçili resim butonunu basit resime çevirmek istermisiniz?","hSpace":"Yatay Boşluk","img2Button":"Seçili olan resimi, resimli butona çevirmek istermisiniz?","infoTab":"Resim Bilgisi","linkTab":"Köprü","lockRatio":"Oranı Kilitle","menu":"Resim Özellikleri","resetSize":"Boyutu Başa Döndür","title":"Resim Özellikleri","titleButton":"Resimli Düğme Özellikleri","upload":"Karşıya Yükle","urlMissing":"Resmin URL kaynağı eksiktir.","vSpace":"Dikey Boşluk","validateBorder":"Çerçeve tam sayı olmalıdır.","validateHSpace":"HSpace tam sayı olmalıdır.","validateVSpace":"VSpace tam sayı olmalıdır."},"indent":{"indent":"Sekme Arttır","outdent":"Sekme Azalt"},"fakeobjects":{"anchor":"Bağlantı","flash":"Flash Animasyonu","hiddenfield":"Gizli Alan","iframe":"IFrame","unknown":"Bilinmeyen Nesne"},"link":{"acccessKey":"Erişim Tuşu","advanced":"Gelişmiş","advisoryContentType":"Danışma İçerik Türü","advisoryTitle":"Danışma Başlığı","anchor":{"toolbar":"Bağlantı Ekle/Düzenle","menu":"Bağlantı Özellikleri","title":"Bağlantı Özellikleri","name":"Bağlantı Adı","errorName":"Lütfen bağlantı için ad giriniz","remove":"Bağlantıyı Kaldır"},"anchorId":"Eleman Kimlik Numarası ile","anchorName":"Bağlantı Adı ile","charset":"Bağlı Kaynak Karakter Gurubu","cssClasses":"Biçem Sayfası Sınıfları","download":"İndirmeye Zorla","displayText":"Gösterim Metni","emailAddress":"E-Posta Adresi","emailBody":"İleti Gövdesi","emailSubject":"İleti Konusu","id":"Id","info":"Link Bilgisi","langCode":"Dil Yönü","langDir":"Dil Yönü","langDirLTR":"Soldan Sağa (LTR)","langDirRTL":"Sağdan Sola (RTL)","menu":"Link Düzenle","name":"Ad","noAnchors":"(Bu belgede hiç çapa yok)","noEmail":"Lütfen E-posta adresini yazın","noUrl":"Lütfen Link URL'sini yazın","other":"<diğer>","popupDependent":"Bağımlı (Netscape)","popupFeatures":"Yeni Açılan Pencere Özellikleri","popupFullScreen":"Tam Ekran (IE)","popupLeft":"Sola Göre Konum","popupLocationBar":"Yer Çubuğu","popupMenuBar":"Menü Çubuğu","popupResizable":"Resizable","popupScrollBars":"Kaydırma Çubukları","popupStatusBar":"Durum Çubuğu","popupToolbar":"Araç Çubuğu","popupTop":"Yukarıya Göre Konum","rel":"İlişki","selectAnchor":"Bağlantı Seç","styles":"Biçem","tabIndex":"Sekme İndeksi","target":"Hedef","targetFrame":"<çerçeve>","targetFrameName":"Hedef Çerçeve Adı","targetPopup":"<yeni açılan pencere>","targetPopupName":"Yeni Açılan Pencere Adı","title":"Link","toAnchor":"Bu sayfada çapa","toEmail":"E-Posta","toUrl":"URL","toolbar":"Link Ekle/Düzenle","type":"Link Türü","unlink":"Köprü Kaldır","upload":"Karşıya Yükle"},"list":{"bulletedlist":"Simgeli Liste","numberedlist":"Numaralı Liste"},"magicline":{"title":"Parağrafı buraya ekle"},"maximize":{"maximize":"Büyült","minimize":"Küçült"},"pastetext":{"button":"Düz Metin Olarak Yapıştır","pasteNotification":"Web tarayıcınız bu şekilde düz metni yapıştırmanıza izin vermiyor. Yapıştırmak için %1 basınız."},"pastefromword":{"confirmCleanup":"Yapıştırmaya çalıştığınız metin Word'den kopyalanmıştır. Yapıştırmadan önce silmek istermisiniz?","error":"Yapıştırmadaki veri bilgisi hata düzelene kadar silinmeyecektir","title":"Word'den Yapıştır","toolbar":"Word'den Yapıştır"},"removeformat":{"toolbar":"Biçimi Kaldır"},"sourcearea":{"toolbar":"Kaynak"},"specialchar":{"options":"Özel Karakter Seçenekleri","title":"Özel Karakter Seç","toolbar":"Özel Karakter Ekle"},"scayt":{"btn_about":"SCAYT'ı hakkında","btn_dictionaries":"Sözlükler","btn_disable":"SCAYT'ı pasifleştir","btn_enable":"SCAYT'ı etkinleştir","btn_langs":"Diller","btn_options":"Seçenekler","text_title":"Girmiş olduğunuz kelime denetimi"},"stylescombo":{"label":"Biçem","panelTitle":"Stilleri Düzenliyor","panelTitle1":"Blok Stilleri","panelTitle2":"Inline Stilleri","panelTitle3":"Nesne Stilleri"},"table":{"border":"Kenar Kalınlığı","caption":"Başlık","cell":{"menu":"Hücre","insertBefore":"Hücre Ekle - Önce","insertAfter":"Hücre Ekle - Sonra","deleteCell":"Hücre Sil","merge":"Hücreleri Birleştir","mergeRight":"Birleştir - Sağdaki İle ","mergeDown":"Birleştir - Aşağıdaki İle ","splitHorizontal":"Hücreyi Yatay Böl","splitVertical":"Hücreyi Dikey Böl","title":"Hücre Özellikleri","cellType":"Hücre Tipi","rowSpan":"Satırlar Mesafesi (Span)","colSpan":"Sütünlar Mesafesi (Span)","wordWrap":"Kelime Kaydırma","hAlign":"Düşey Hizalama","vAlign":"Yataş Hizalama","alignBaseline":"Tabana","bgColor":"Arkaplan Rengi","borderColor":"Çerçeve Rengi","data":"Veri","header":"Başlık","yes":"Evet","no":"Hayır","invalidWidth":"Hücre genişliği sayı olmalıdır.","invalidHeight":"Hücre yüksekliği sayı olmalıdır.","invalidRowSpan":"Satırların mesafesi tam sayı olmalıdır.","invalidColSpan":"Sütünların mesafesi tam sayı olmalıdır.","chooseColor":"Seçiniz"},"cellPad":"Izgara yazı arası","cellSpace":"Izgara kalınlığı","column":{"menu":"Sütun","insertBefore":"Kolon Ekle - Önce","insertAfter":"Kolon Ekle - Sonra","deleteColumn":"Sütun Sil"},"columns":"Sütunlar","deleteTable":"Tabloyu Sil","headers":"Başlıklar","headersBoth":"Her İkisi","headersColumn":"İlk Sütun","headersNone":"Yok","headersRow":"İlk Satır","invalidBorder":"Çerceve büyüklüklüğü sayı olmalıdır.","invalidCellPadding":"Hücre aralığı (padding) sayı olmalıdır.","invalidCellSpacing":"Hücre boşluğu (spacing) sayı olmalıdır.","invalidCols":"Sütün sayısı 0 sayısından büyük olmalıdır.","invalidHeight":"Tablo yüksekliği sayı olmalıdır.","invalidRows":"Satır sayısı 0 sayısından büyük olmalıdır.","invalidWidth":"Tablo genişliği sayı olmalıdır.","menu":"Tablo Özellikleri","row":{"menu":"Satır","insertBefore":"Satır Ekle - Önce","insertAfter":"Satır Ekle - Sonra","deleteRow":"Satır Sil"},"rows":"Satırlar","summary":"Özet","title":"Tablo Özellikleri","toolbar":"Tablo","widthPc":"yüzde","widthPx":"piksel","widthUnit":"genişlik birimi"},"undo":{"redo":"Tekrarla","undo":"Geri Al"},"wsc":{"btnIgnore":"Yoksay","btnIgnoreAll":"Tümünü Yoksay","btnReplace":"Değiştir","btnReplaceAll":"Tümünü Değiştir","btnUndo":"Geri Al","changeTo":"Şuna değiştir:","errorLoading":"Uygulamada yüklerken hata oluştu: %s.","ieSpellDownload":"Yazım denetimi yüklenmemiş. Şimdi yüklemek ister misiniz?","manyChanges":"Yazım denetimi tamamlandı: %1 kelime değiştirildi","noChanges":"Yazım denetimi tamamlandı: Hiçbir kelime değiştirilmedi","noMispell":"Yazım denetimi tamamlandı: Yanlış yazıma rastlanmadı","noSuggestions":"- Öneri Yok -","notAvailable":"Üzügünüz, bu servis şuanda hizmet dışıdır.","notInDic":"Sözlükte Yok","oneChange":"Yazım denetimi tamamlandı: Bir kelime değiştirildi","progress":"Yazım denetimi işlemde...","title":"Yazımı Denetle","toolbar":"Yazım Denetimi"}}; \ No newline at end of file diff --git a/admin/plugins/ckeditor/lang/tt.js b/admin/plugins/ckeditor/lang/tt.js deleted file mode 100644 index 117e706..0000000 --- a/admin/plugins/ckeditor/lang/tt.js +++ /dev/null @@ -1,5 +0,0 @@ -/* -Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. -For licensing, see LICENSE.md or http://ckeditor.com/license -*/ -CKEDITOR.lang['tt']={"editor":"Форматлаулы текст өлкәсе","editorPanel":"Rich Text Editor panel","common":{"editorHelp":"Ярдәм өчен ALT 0 басыгыз","browseServer":"Сервер карап чыгу","url":"Сылталама","protocol":"Протокол","upload":"Йөкләү","uploadSubmit":"Серверга җибәрү","image":"Рәсем","flash":"Флеш","form":"Форма","checkbox":"Чекбокс","radio":"Радио төймә","textField":"Текст кыры","textarea":"Текст мәйданы","hiddenField":"Яшерен кыр","button":"Төймə","select":"Сайлау кыры","imageButton":"Рәсемле төймə","notSet":"<билгеләнмәгән>","id":"Id","name":"Исем","langDir":"Язылыш юнəлеше","langDirLtr":"Сулдан уңга язылыш (LTR)","langDirRtl":"Уңнан сулга язылыш (RTL)","langCode":"Тел коды","longDescr":"Җентекле тасвирламага сылталама","cssClass":"Стильләр класслары","advisoryTitle":"Киңәш исем","cssStyle":"Стиль","ok":"Тәмам","cancel":"Баш тарту","close":"Чыгу","preview":"Карап алу","resize":"Зурлыкны үзгәртү","generalTab":"Төп","advancedTab":"Киңәйтелгән көйләүләр","validateNumberFailed":"Әлеге кыйммәт сан түгел.","confirmNewPage":"Any unsaved changes to this content will be lost. Are you sure you want to load new page?","confirmCancel":"You have changed some options. Are you sure you want to close the dialog window?","options":"Үзлекләр","target":"Максат","targetNew":"Яңа тәрәзә (_blank)","targetTop":"Өске тәрәзә (_top)","targetSelf":"Шул үк тәрәзә (_self)","targetParent":"Ана тәрәзә (_parent)","langDirLTR":"Сулдан уңга язылыш (LTR)","langDirRTL":"Уңнан сулга язылыш (RTL)","styles":"Стиль","cssClasses":"Стильләр класслары","width":"Киңлек","height":"Биеклек","align":"Тигезләү","alignLeft":"Сул якка","alignRight":"Уң якка","alignCenter":"Үзәккә","alignJustify":"Киңлеккә карап тигезләү","alignTop":"Өскә","alignMiddle":"Уртага","alignBottom":"Аска","alignNone":"Һичбер","invalidValue":"Дөрес булмаган кыйммәт.","invalidHeight":"Биеклек сан булырга тиеш.","invalidWidth":"Киңлек сан булырга тиеш.","invalidCssLength":"Value specified for the \"%1\" field must be a positive number with or without a valid CSS measurement unit (px, %, in, cm, mm, em, ex, pt, or pc).","invalidHtmlLength":"Value specified for the \"%1\" field must be a positive number with or without a valid HTML measurement unit (px or %).","invalidInlineStyle":"Value specified for the inline style must consist of one or more tuples with the format of \"name : value\", separated by semi-colons.","cssLengthTooltip":"Enter a number for a value in pixels or a number with a valid CSS unit (px, %, in, cm, mm, em, ex, pt, or pc).","unavailable":"%1<span class=\"cke_accessibility\">, unavailable</span>","keyboard":{"8":"Кайтару","13":"Enter","16":"Shift","17":"Ctrl","18":"Alt","32":"Space","35":"End","36":"Home","46":"Бетерү","224":"Command"},"keyboardShortcut":"Keyboard shortcut"},"about":{"copy":"Copyright &copy; $1. Бар хокуклар сакланган","dlgTitle":"CKEditor турында","help":"Ярдәм өчен $1 тикшереп карагыз.","moreInfo":"For licensing information please visit our web site:","title":"CKEditor турында","userGuide":"CKEditor кулланмасы"},"basicstyles":{"bold":"Калын","italic":"Курсив","strike":"Сызылган","subscript":"Аскы индекс","superscript":"Өске индекс","underline":"Астына сызылган"},"blockquote":{"toolbar":"Өземтә блогы"},"notification":{"closed":"Notification closed."},"button":{"selectedLabel":"%1 (Сайланган)"},"toolbar":{"toolbarCollapse":"Collapse Toolbar","toolbarExpand":"Expand Toolbar","toolbarGroups":{"document":"Документ","clipboard":"Алмашу буферы/Кайтару","editing":"Төзәтү","forms":"Формалар","basicstyles":"Төп стильләр","paragraph":"Параграф","links":"Сылталамалар","insert":"Өстәү","styles":"Стильләр","colors":"Төсләр","tools":"Кораллар"},"toolbars":"Editor toolbars"},"clipboard":{"copy":"Күчермәләү","copyError":"Браузерыгызның иминлек үзлекләре автоматик рәвештә күчермәләү үтәүне тыя. Тиз төймәләрне (Ctrl/Cmd+C) кулланыгыз.","cut":"Кисеп алу","cutError":"Браузерыгызның иминлек үзлекләре автоматик рәвештә күчермәләү үтәүне тыя. Тиз төймәләрне (Ctrl/Cmd+C) кулланыгыз.","paste":"Өстәү","pasteNotification":"Your browser doesn't allow you to paste this way. Press %1 to paste."},"contextmenu":{"options":"Контекст меню үзлекләре"},"elementspath":{"eleLabel":"Elements path","eleTitle":"%1 элемент"},"format":{"label":"Форматлау","panelTitle":"Параграф форматлавы","tag_address":"Адрес","tag_div":"Гади (DIV)","tag_h1":"Башлам 1","tag_h2":"Башлам 2","tag_h3":"Башлам 3","tag_h4":"Башлам 4","tag_h5":"Башлам 5","tag_h6":"Башлам 6","tag_p":"Гади","tag_pre":"Форматлаулы"},"horizontalrule":{"toolbar":"Ятма сызык өстәү"},"image":{"alt":"Альтернатив текст","border":"Чик","btnUpload":"Серверга җибәрү","button2Img":"Do you want to transform the selected image button on a simple image?","hSpace":"Горизонталь ара","img2Button":"Do you want to transform the selected image on a image button?","infoTab":"Рәсем тасвирламасы","linkTab":"Сылталама","lockRatio":"Lock Ratio","menu":"Рәсем үзлекләре","resetSize":"Баштагы зурлык","title":"Рәсем үзлекләре","titleButton":"Рәсемле төймə үзлекләре","upload":"Йөкләү","urlMissing":"Image source URL is missing.","vSpace":"Вертикаль ара","validateBorder":"Чик киңлеге сан булырга тиеш.","validateHSpace":"Горизонталь ара бөтен сан булырга тиеш.","validateVSpace":"Вертикаль ара бөтен сан булырга тиеш."},"indent":{"indent":"Отступны арттыру","outdent":"Отступны кечерәйтү"},"fakeobjects":{"anchor":"Якорь","flash":"Флеш анимациясы","hiddenfield":"Яшерен кыр","iframe":"IFrame","unknown":"Танылмаган объект"},"link":{"acccessKey":"Access Key","advanced":"Киңәйтелгән көйләүләр","advisoryContentType":"Advisory Content Type","advisoryTitle":"Киңәш исем","anchor":{"toolbar":"Якорь","menu":"Якорьне үзгәртү","title":"Якорь үзлекләре","name":"Якорь исеме","errorName":"Якорьнең исемен языгыз","remove":"Якорьне бетерү"},"anchorId":"Элемент идентификаторы буенча","anchorName":"Якорь исеме буенча","charset":"Linked Resource Charset","cssClasses":"Стильләр класслары","download":"Force Download","displayText":"Display Text","emailAddress":"Электрон почта адресы","emailBody":"Хат эчтәлеге","emailSubject":"Хат темасы","id":"Идентификатор","info":"Сылталама тасвирламасы","langCode":"Тел коды","langDir":"Язылыш юнəлеше","langDirLTR":"Сулдан уңга язылыш (LTR)","langDirRTL":"Уңнан сулга язылыш (RTL)","menu":"Сылталамаyны үзгәртү","name":"Исем","noAnchors":"(Әлеге документта якорьләр табылмады)","noEmail":"Электрон почта адресын языгыз","noUrl":"Сылталаманы языгыз","other":"<бүтән>","popupDependent":"Бәйле (Netscape)","popupFeatures":"Popup Window Features","popupFullScreen":"Тулы экран (IE)","popupLeft":"Left Position","popupLocationBar":"Location Bar","popupMenuBar":"Menu Bar","popupResizable":"Resizable","popupScrollBars":"Scroll Bars","popupStatusBar":"Status Bar","popupToolbar":"Toolbar","popupTop":"Top Position","rel":"Бәйләнеш","selectAnchor":"Якорьне сайлау","styles":"Стиль","tabIndex":"Tab Index","target":"Максат","targetFrame":"<frame>","targetFrameName":"Target Frame Name","targetPopup":"<popup window>","targetPopupName":"Попап тәрәзәсе исеме","title":"Сылталама","toAnchor":"Якорьне текст белән бәйләү","toEmail":"Электрон почта","toUrl":"Сылталама","toolbar":"Сылталама","type":"Сылталама төре","unlink":"Сылталаманы бетерү","upload":"Йөкләү"},"list":{"bulletedlist":"Маркерлы тезмә өстәү/бетерү","numberedlist":" Номерланган тезмә өстәү/бетерү"},"magicline":{"title":"Бирегә параграф өстәү"},"maximize":{"maximize":"Зурайту","minimize":"Кечерәйтү"},"pastetext":{"button":"Форматлаусыз текст өстәү","pasteNotification":"Your browser does not allow you to paste plain text this way. Press %1 to paste."},"pastefromword":{"confirmCleanup":"The text you want to paste seems to be copied from Word. Do you want to clean it before pasting?","error":"It was not possible to clean up the pasted data due to an internal error","title":"Word'тан өстәү","toolbar":"Word'тан өстәү"},"removeformat":{"toolbar":"Форматлауны бетерү"},"sourcearea":{"toolbar":"Чыганак"},"specialchar":{"options":"Махсус символ үзлекләре","title":"Махсус символ сайлау","toolbar":"Махсус символ өстәү"},"scayt":{"btn_about":"About SCAYT","btn_dictionaries":"Dictionaries","btn_disable":"Disable SCAYT","btn_enable":"Enable SCAYT","btn_langs":"Languages","btn_options":"Options","text_title":"Spell Check As You Type"},"stylescombo":{"label":"Стильләр","panelTitle":"Форматлау стильләре","panelTitle1":"Блоклар стильләре","panelTitle2":"Эчке стильләр","panelTitle3":"Объектлар стильләре"},"table":{"border":"Чик калынлыгы","caption":"Исем","cell":{"menu":"Күзәнәк","insertBefore":"Алдына күзәнәк өстәү","insertAfter":"Артына күзәнәк өстәү","deleteCell":"Күзәнәкләрне бетерү","merge":"Күзәнәкләрне берләштерү","mergeRight":"Уң яктагы белән берләштерү","mergeDown":"Астагы белән берләштерү","splitHorizontal":"Күзәнәкне юлларга бүлү","splitVertical":"Күзәнәкне баганаларга бүлү","title":"Күзәнәк үзлекләре","cellType":"Күзәнәк төре","rowSpan":"Юлларны берләштерү","colSpan":"Баганаларны берләштерү","wordWrap":"Текстны күчерү","hAlign":"Ятма тигезләү","vAlign":"Асма тигезләү","alignBaseline":"Таяныч сызыгы","bgColor":"Фон төсе","borderColor":"Чик төсе","data":"Мәгълүмат","header":"Башлык","yes":"Әйе","no":"Юк","invalidWidth":"Cell width must be a number.","invalidHeight":"Cell height must be a number.","invalidRowSpan":"Rows span must be a whole number.","invalidColSpan":"Columns span must be a whole number.","chooseColor":"Сайлау"},"cellPad":"Cell padding","cellSpace":"Cell spacing","column":{"menu":"Багана","insertBefore":"Сулдан баганалар өстәү","insertAfter":"Уңнан баганалар өстәү","deleteColumn":"Баганаларны бетерү"},"columns":"Баганалар","deleteTable":"Таблицаны бетерү","headers":"Башлыклар","headersBoth":"Икесе дә","headersColumn":"Беренче багана","headersNone":"Һичбер","headersRow":"Беренче юл","invalidBorder":"Чик киңлеге сан булырга тиеш.","invalidCellPadding":"Cell padding must be a positive number.","invalidCellSpacing":"Күзәнәкләр аралары уңай сан булырга тиеш.","invalidCols":"Number of columns must be a number greater than 0.","invalidHeight":"Таблица биеклеге сан булырга тиеш.","invalidRows":"Number of rows must be a number greater than 0.","invalidWidth":"Таблица киңлеге сан булырга тиеш","menu":"Таблица үзлекләре","row":{"menu":"Юл","insertBefore":"Өстән юллар өстәү","insertAfter":"Астан юллар өстәү","deleteRow":"Юлларны бетерү"},"rows":"Юллар","summary":"Йомгаклау","title":"Таблица үзлекләре","toolbar":"Таблица","widthPc":"процент","widthPx":"Нокталар","widthUnit":"киңлек берәмлеге"},"undo":{"redo":"Кабатлау","undo":"Кайтару"},"wsc":{"btnIgnore":"Ignore","btnIgnoreAll":"Ignore All","btnReplace":"Replace","btnReplaceAll":"Replace All","btnUndo":"Undo","changeTo":"Change to","errorLoading":"Error loading application service host: %s.","ieSpellDownload":"Spell checker not installed. Do you want to download it now?","manyChanges":"Spell check complete: %1 words changed","noChanges":"Spell check complete: No words changed","noMispell":"Spell check complete: No misspellings found","noSuggestions":"- No suggestions -","notAvailable":"Sorry, but service is unavailable now.","notInDic":"Not in dictionary","oneChange":"Spell check complete: One word changed","progress":"Spell check in progress...","title":"Spell Checker","toolbar":"Check Spelling"}}; \ No newline at end of file diff --git a/admin/plugins/ckeditor/lang/ug.js b/admin/plugins/ckeditor/lang/ug.js deleted file mode 100644 index 538350a..0000000 --- a/admin/plugins/ckeditor/lang/ug.js +++ /dev/null @@ -1,5 +0,0 @@ -/* -Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. -For licensing, see LICENSE.md or http://ckeditor.com/license -*/ -CKEDITOR.lang['ug']={"editor":"تەھرىرلىگۈچ","editorPanel":"مول تېكست تەھرىرلىگۈچ تاختىسى","common":{"editorHelp":"ALT+0 نى بېسىپ ياردەمنى كۆرۈڭ","browseServer":"كۆرسىتىش مۇلازىمېتىر","url":"ئەسلى ھۆججەت","protocol":"كېلىشىم","upload":"يۈكلە","uploadSubmit":"مۇلازىمېتىرغا يۈكلە","image":"سۈرەت","flash":"Flash","form":"جەدۋەل","checkbox":"كۆپ تاللاش رامكىسى","radio":"يەككە تاللاش توپچىسى","textField":"يەككە قۇر تېكىست","textarea":"كۆپ قۇر تېكىست","hiddenField":"يوشۇرۇن دائىرە","button":"توپچا","select":"تىزىم/تىزىملىك","imageButton":"سۈرەت دائىرە","notSet":"‹تەڭشەلمىگەن›","id":"ID","name":"ئات","langDir":"تىل يۆنىلىشى","langDirLtr":"سولدىن ئوڭغا (LTR)","langDirRtl":"ئوڭدىن سولغا (RTL)","langCode":"تىل كودى","longDescr":"تەپسىلىي چۈشەندۈرۈش ئادرېسى","cssClass":"ئۇسلۇب خىلىنىڭ ئاتى","advisoryTitle":"ماۋزۇ","cssStyle":"قۇر ئىچىدىكى ئۇسلۇبى","ok":"جەزملە","cancel":"ۋاز كەچ","close":"تاقا","preview":"ئالدىن كۆزەت","resize":"چوڭلۇقىنى ئۆزگەرت","generalTab":"ئادەتتىكى","advancedTab":"ئالىي","validateNumberFailed":"سان پىچىمىدا كىرگۈزۈش زۆرۈر","confirmNewPage":"نۆۋەتتىكى پۈتۈك مەزمۇنى ساقلانمىدى، يېڭى پۈتۈك قۇرامسىز؟","confirmCancel":"قىسمەن ئۆزگەرتىش ساقلانمىدى، بۇ سۆزلەشكۈنى تاقامسىز؟","options":"تاللانما","target":"نىشان كۆزنەك","targetNew":"يېڭى كۆزنەك (_blank)","targetTop":"پۈتۈن بەت (_top)","targetSelf":"مەزكۇر كۆزنەك (_self)","targetParent":"ئاتا كۆزنەك (_parent)","langDirLTR":"سولدىن ئوڭغا (LTR)","langDirRTL":"ئوڭدىن سولغا (RTL)","styles":"ئۇسلۇبلار","cssClasses":"ئۇسلۇب خىللىرى","width":"كەڭلىك","height":"ئېگىزلىك","align":"توغرىلىنىشى","alignLeft":"سول","alignRight":"ئوڭ","alignCenter":"ئوتتۇرا","alignJustify":"ئىككى تەرەپتىن توغرىلا","alignTop":"ئۈستى","alignMiddle":"ئوتتۇرا","alignBottom":"ئاستى","alignNone":"يوق","invalidValue":"ئىناۋەتسىز قىممەت.","invalidHeight":"ئېگىزلىك چوقۇم رەقەم پىچىمىدا بولۇشى زۆرۈر","invalidWidth":"كەڭلىك چوقۇم رەقەم پىچىمىدا بولۇشى زۆرۈر","invalidCssLength":"بۇ سۆز بۆلىكى چوقۇم مۇۋاپىق بولغان CSS ئۇزۇنلۇق قىممىتى بولۇشى زۆرۈر، بىرلىكى (px, %, in, cm, mm, em, ex, pt ياكى pc)","invalidHtmlLength":"بۇ سۆز بۆلىكى چوقۇم بىرىكمە HTML ئۇزۇنلۇق قىممىتى بولۇشى كېرەك. ئۆز ئىچىگە ئالىدىغان بىرلىك (px ياكى %)","invalidInlineStyle":"ئىچكى باغلانما ئۇسلۇبى چوقۇم چېكىتلىك پەش بىلەن ئايرىلغان بىر ياكى كۆپ «خاسلىق ئاتى:خاسلىق قىممىتى» پىچىمىدا بولۇشى لازىم","cssLengthTooltip":"بۇ سۆز بۆلىكى بىرىكمە CSS ئۇزۇنلۇق قىممىتى بولۇشى كېرەك. ئۆز ئىچىگە ئالىدىغان بىرلىك (px, %, in, cm, mm, em, ex, pt ياكى pc)","unavailable":"%1<span class=\\\\\"cke_accessibility\\\\\">، ئىشلەتكىلى بولمايدۇ</span>","keyboard":{"8":"Backspace","13":"Enter","16":"Shift","17":"Ctrl","18":"Alt","32":"Space","35":"End","36":"Home","46":"ئۆچۈر","224":"Command"},"keyboardShortcut":"Keyboard shortcut"},"about":{"copy":"Copyright &copy; $1. نەشر ھوقۇقىغا ئىگە","dlgTitle":"CKEditor ھەققىدە","help":"$1 نى زىيارەت قىلىپ ياردەمگە ئېرىشىڭ","moreInfo":"تور تۇرايىمىزنى زىيارەت قىلىپ كېلىشىمگە ئائىت تېخىمۇ كۆپ ئۇچۇرغا ئېرىشىڭ","title":"CKEditor ھەققىدە","userGuide":"CKEditor ئىشلەتكۈچى قوللانمىسى"},"basicstyles":{"bold":"توم","italic":"يانتۇ","strike":"ئۆچۈرۈش سىزىقى","subscript":"تۆۋەن ئىندېكس","superscript":"يۇقىرى ئىندېكس","underline":"ئاستى سىزىق"},"blockquote":{"toolbar":"بۆلەك نەقىل"},"notification":{"closed":"ئوقتۇرۇش تاقالدى."},"button":{"selectedLabel":"%1 (تاللاندى)"},"toolbar":{"toolbarCollapse":"قورال بالداقنى قاتلا","toolbarExpand":"قورال بالداقنى ياي","toolbarGroups":{"document":"پۈتۈك","clipboard":"چاپلاش تاختىسى/يېنىۋال","editing":"تەھرىر","forms":"جەدۋەل","basicstyles":"ئاساسىي ئۇسلۇب","paragraph":"ئابزاس","links":"ئۇلانما","insert":"قىستۇر","styles":"ئۇسلۇب","colors":"رەڭ","tools":"قورال"},"toolbars":"قورال بالداق"},"clipboard":{"copy":"كۆچۈر","copyError":"تور كۆرگۈڭىزنىڭ بىخەتەرلىك تەڭشىكى تەھرىرلىگۈچنىڭ كۆچۈر مەشغۇلاتىنى ئۆزلۈكىدىن ئىجرا قىلىشىغا يول قويمايدۇ، ھەرپتاختا تېز كۇنۇپكا (Ctrl/Cmd+C) ئارقىلىق تاماملاڭ","cut":"كەس","cutError":"تور كۆرگۈڭىزنىڭ بىخەتەرلىك تەڭشىكى تەھرىرلىگۈچنىڭ كەس مەشغۇلاتىنى ئۆزلۈكىدىن ئىجرا قىلىشىغا يول قويمايدۇ، ھەرپتاختا تېز كۇنۇپكا (Ctrl/Cmd+X) ئارقىلىق تاماملاڭ","paste":"چاپلا","pasteNotification":"Your browser doesn't allow you to paste this way. Press %1 to paste."},"contextmenu":{"options":"قىسقا يول تىزىملىك تاللانمىسى"},"elementspath":{"eleLabel":"ئېلېمېنت يولى","eleTitle":"%1 ئېلېمېنت"},"format":{"label":"پىچىم","panelTitle":"پىچىم","tag_address":"ئادرېس","tag_div":"ئابزاس (DIV)","tag_h1":"ماۋزۇ 1","tag_h2":"ماۋزۇ 2","tag_h3":"ماۋزۇ 3","tag_h4":"ماۋزۇ 4","tag_h5":"ماۋزۇ 5","tag_h6":"ماۋزۇ 6","tag_p":"ئادەتتىكى","tag_pre":"تىزىلغان پىچىم"},"horizontalrule":{"toolbar":"توغرا سىزىق قىستۇر"},"image":{"alt":"تېكىست ئالماشتۇر","border":"گىرۋەك چوڭلۇقى","btnUpload":"مۇلازىمېتىرغا يۈكلە","button2Img":"نۆۋەتتىكى توپچىنى سۈرەتكە ئۆزگەرتەمسىز؟","hSpace":"توغرىسىغا ئارىلىقى","img2Button":"نۆۋەتتىكى سۈرەتنى توپچىغا ئۆزگەرتەمسىز؟","infoTab":"سۈرەت","linkTab":"ئۇلانما","lockRatio":"نىسبەتنى قۇلۇپلا","menu":"سۈرەت خاسلىقى","resetSize":"ئەسلى چوڭلۇق","title":"سۈرەت خاسلىقى","titleButton":"سۈرەت دائىرە خاسلىقى","upload":"يۈكلە","urlMissing":"سۈرەتنىڭ ئەسلى ھۆججەت ئادرېسى كەم","vSpace":"بويىغا ئارىلىقى","validateBorder":"گىرۋەك چوڭلۇقى چوقۇم سان بولىدۇ","validateHSpace":"توغرىسىغا ئارىلىق چوقۇم پۈتۈن سان بولىدۇ","validateVSpace":"بويىغا ئارىلىق چوقۇم پۈتۈن سان بولىدۇ"},"indent":{"indent":"تارايت","outdent":"كەڭەيت"},"fakeobjects":{"anchor":"لەڭگەرلىك نۇقتا","flash":"Flash جانلاندۇرۇم","hiddenfield":"يوشۇرۇن دائىرە","iframe":"IFrame","unknown":"يوچۇن نەڭ"},"link":{"acccessKey":"زىيارەت كۇنۇپكا","advanced":"ئالىي","advisoryContentType":"مەزمۇن تىپى","advisoryTitle":"ماۋزۇ","anchor":{"toolbar":"لەڭگەرلىك نۇقتا ئۇلانمىسى قىستۇر/تەھرىرلە","menu":"لەڭگەرلىك نۇقتا ئۇلانما خاسلىقى","title":"لەڭگەرلىك نۇقتا ئۇلانما خاسلىقى","name":"لەڭگەرلىك نۇقتا ئاتى","errorName":"لەڭگەرلىك نۇقتا ئاتىنى كىرگۈزۈڭ","remove":"لەڭگەرلىك نۇقتا ئۆچۈر"},"anchorId":"لەڭگەرلىك نۇقتا ID سى بويىچە","anchorName":"لەڭگەرلىك نۇقتا ئاتى بويىچە","charset":"ھەرپ كودلىنىشى","cssClasses":"ئۇسلۇب خىلى ئاتى","download":"Force Download","displayText":"Display Text","emailAddress":"ئادرېس","emailBody":"مەزمۇن","emailSubject":"ماۋزۇ","id":"ID","info":"ئۇلانما ئۇچۇرى","langCode":"تىل كودى","langDir":"تىل يۆنىلىشى","langDirLTR":"سولدىن ئوڭغا (LTR)","langDirRTL":"ئوڭدىن سولغا (RTL)","menu":"ئۇلانما تەھرىر","name":"ئات","noAnchors":"(بۇ پۈتۈكتە ئىشلەتكىلى بولىدىغان لەڭگەرلىك نۇقتا يوق)","noEmail":"ئېلخەت ئادرېسىنى كىرگۈزۈڭ","noUrl":"ئۇلانما ئادرېسىنى كىرگۈزۈڭ","other":"‹باشقا›","popupDependent":"تەۋە (NS)","popupFeatures":"قاڭقىش كۆزنەك خاسلىقى","popupFullScreen":"پۈتۈن ئېكران (IE)","popupLeft":"سول","popupLocationBar":"ئادرېس بالداق","popupMenuBar":"تىزىملىك بالداق","popupResizable":"چوڭلۇقى ئۆزگەرتىشچان","popupScrollBars":"دومىلىما سۈرگۈچ","popupStatusBar":"ھالەت بالداق","popupToolbar":"قورال بالداق","popupTop":"ئوڭ","rel":"باغلىنىش","selectAnchor":"بىر لەڭگەرلىك نۇقتا تاللاڭ","styles":"قۇر ئىچىدىكى ئۇسلۇبى","tabIndex":"Tab تەرتىپى","target":"نىشان","targetFrame":"‹كاندۇك›","targetFrameName":"نىشان كاندۇك ئاتى","targetPopup":"‹قاڭقىش كۆزنەك›","targetPopupName":"قاڭقىش كۆزنەك ئاتى","title":"ئۇلانما","toAnchor":"بەت ئىچىدىكى لەڭگەرلىك نۇقتا ئۇلانمىسى","toEmail":"ئېلخەت","toUrl":"ئادرېس","toolbar":"ئۇلانما قىستۇر/تەھرىرلە","type":"ئۇلانما تىپى","unlink":"ئۇلانما بىكار قىل","upload":"يۈكلە"},"list":{"bulletedlist":"تۈر بەلگە تىزىمى","numberedlist":"تەرتىپ نومۇر تىزىمى"},"magicline":{"title":"بۇ جايغا ئابزاس قىستۇر"},"maximize":{"maximize":"چوڭايت","minimize":"كىچىكلەت"},"pastetext":{"button":"پىچىمى يوق تېكىست سۈپىتىدە چاپلا","pasteNotification":"Your browser does not allow you to paste plain text this way. Press %1 to paste."},"pastefromword":{"confirmCleanup":"سىز چاپلىماقچى بولغان مەزمۇن MS Word تىن كەلگەندەك قىلىدۇ، MS Word پىچىمىنى تازىلىۋەتكەندىن كېيىن ئاندىن چاپلامدۇ؟","error":"ئىچكى خاتالىق سەۋەبىدىن چاپلايدىغان سانلىق مەلۇماتنى تازىلىيالمايدۇ","title":"MS Word تىن چاپلا","toolbar":"MS Word تىن چاپلا"},"removeformat":{"toolbar":"پىچىمنى چىقىرىۋەت"},"sourcearea":{"toolbar":"مەنبە"},"specialchar":{"options":"ئالاھىدە ھەرپ تاللانمىسى","title":"ئالاھىدە ھەرپ تاللاڭ","toolbar":"ئالاھىدە ھەرپ قىستۇر"},"scayt":{"btn_about":"شۇئان ئىملا تەكشۈرۈش ھەققىدە","btn_dictionaries":"لۇغەت","btn_disable":"شۇئان ئىملا تەكشۈرۈشنى چەكلە","btn_enable":"شۇئان ئىملا تەكشۈرۈشنى قوزغات","btn_langs":"تىل","btn_options":"تاللانما","text_title":"شۇئان ئىملا تەكشۈر"},"stylescombo":{"label":"ئۇسلۇب","panelTitle":"ئۇسلۇب","panelTitle1":"بۆلەك دەرىجىسىدىكى ئېلېمېنت ئۇسلۇبى","panelTitle2":"ئىچكى باغلانما ئېلېمېنت ئۇسلۇبى","panelTitle3":"نەڭ (Object) ئېلېمېنت ئۇسلۇبى"},"table":{"border":"گىرۋەك","caption":"ماۋزۇ","cell":{"menu":"كاتەكچە","insertBefore":"سولغا كاتەكچە قىستۇر","insertAfter":"ئوڭغا كاتەكچە قىستۇر","deleteCell":"كەتەكچە ئۆچۈر","merge":"كاتەكچە بىرلەشتۈر","mergeRight":"كاتەكچىنى ئوڭغا بىرلەشتۈر","mergeDown":"كاتەكچىنى ئاستىغا بىرلەشتۈر","splitHorizontal":"كاتەكچىنى توغرىسىغا بىرلەشتۈر","splitVertical":"كاتەكچىنى بويىغا بىرلەشتۈر","title":"كاتەكچە خاسلىقى","cellType":"كاتەكچە تىپى","rowSpan":"بويىغا چات ئارىسى قۇر سانى","colSpan":"توغرىسىغا چات ئارىسى ئىستون سانى","wordWrap":"ئۆزلۈكىدىن قۇر قاتلا","hAlign":"توغرىسىغا توغرىلا","vAlign":"بويىغا توغرىلا","alignBaseline":"ئاساسىي سىزىق","bgColor":"تەگلىك رەڭگى","borderColor":"گىرۋەك رەڭگى","data":"سانلىق مەلۇمات","header":"جەدۋەل باشى","yes":"ھەئە","no":"ياق","invalidWidth":"كاتەكچە كەڭلىكى چوقۇم سان بولىدۇ","invalidHeight":"كاتەكچە ئېگىزلىكى چوقۇم سان بولىدۇ","invalidRowSpan":"قۇر چات ئارىسى چوقۇم پۈتۈن سان بولىدۇ ","invalidColSpan":"ئىستون چات ئارىسى چوقۇم پۈتۈن سان بولىدۇ","chooseColor":"تاللاڭ"},"cellPad":"يان ئارىلىق","cellSpace":"ئارىلىق","column":{"menu":"ئىستون","insertBefore":"سولغا ئىستون قىستۇر","insertAfter":"ئوڭغا ئىستون قىستۇر","deleteColumn":"ئىستون ئۆچۈر"},"columns":"ئىستون سانى","deleteTable":"جەدۋەل ئۆچۈر","headers":"ماۋزۇ كاتەكچە","headersBoth":"بىرىنچى ئىستون ۋە بىرىنچى قۇر","headersColumn":"بىرىنچى ئىستون","headersNone":"يوق","headersRow":"بىرىنچى قۇر","invalidBorder":"گىرۋەك توملۇقى چوقۇم سان بولىدۇ","invalidCellPadding":"كاتەكچىگە چوقۇم سان تولدۇرۇلىدۇ","invalidCellSpacing":"كاتەكچە ئارىلىقى چوقۇم سان بولىدۇ","invalidCols":"بەلگىلەنگەن قۇر سانى چوقۇم نۆلدىن چوڭ بولىدۇ","invalidHeight":"جەدۋەل ئېگىزلىكى چوقۇم سان بولىدۇ","invalidRows":"بەلگىلەنگەن ئىستون سانى چوقۇم نۆلدىن چوڭ بولىدۇ","invalidWidth":"جەدۋەل كەڭلىكى چوقۇم سان بولىدۇ","menu":"جەدۋەل خاسلىقى","row":{"menu":"قۇر","insertBefore":"ئۈستىگە قۇر قىستۇر","insertAfter":"ئاستىغا قۇر قىستۇر","deleteRow":"قۇر ئۆچۈر"},"rows":"قۇر سانى","summary":"ئۈزۈندە","title":"جەدۋەل خاسلىقى","toolbar":"جەدۋەل","widthPc":"پىرسەنت","widthPx":"پىكسېل","widthUnit":"كەڭلىك بىرلىكى"},"undo":{"redo":"قايتىلا ","undo":"يېنىۋال"},"wsc":{"btnIgnore":"پەرۋا قىلما","btnIgnoreAll":"ھەممىگە پەرۋا قىلما","btnReplace":"ئالماشتۇر","btnReplaceAll":"ھەممىنى ئالماشتۇر","btnUndo":"يېنىۋال","changeTo":"ئۆزگەرت","errorLoading":"لازىملىق مۇلازىمېتىرنى يۈكلىگەندە خاتالىق كۆرۈلدى: %s.","ieSpellDownload":"ئىملا تەكشۈرۈش قىستۇرمىسى تېخى ئورنىتىلمىغان، ھازىرلا چۈشۈرەمسىز؟","manyChanges":"ئىملا تەكشۈرۈش تامام: %1 سۆزنى ئۆزگەرتتى","noChanges":"ئىملا تەكشۈرۈش تامام: ھېچقانداق سۆزنى ئۆزگەرتمىدى","noMispell":"ئىملا تەكشۈرۈش تامام: ئىملا خاتالىقى بايقالمىدى","noSuggestions":"-تەكلىپ يوق-","notAvailable":"كەچۈرۈڭ، مۇلازىمېتىرنى ۋاقتىنچە ئىشلەتكىلى بولمايدۇ","notInDic":"لۇغەتتە يوق","oneChange":"ئىملا تەكشۈرۈش تامام: بىر سۆزنى ئۆزگەرتتى","progress":"ئىملا تەكشۈرۈۋاتىدۇ…","title":"ئىملا تەكشۈر","toolbar":"ئىملا تەكشۈر"}}; \ No newline at end of file diff --git a/admin/plugins/ckeditor/lang/uk.js b/admin/plugins/ckeditor/lang/uk.js deleted file mode 100644 index 389eb82..0000000 --- a/admin/plugins/ckeditor/lang/uk.js +++ /dev/null @@ -1,5 +0,0 @@ -/* -Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. -For licensing, see LICENSE.md or http://ckeditor.com/license -*/ -CKEDITOR.lang['uk']={"editor":"Текстовий редактор","editorPanel":"Панель розширеного текстового редактора","common":{"editorHelp":"натисніть ALT 0 для довідки","browseServer":"Огляд Сервера","url":"URL","protocol":"Протокол","upload":"Надіслати","uploadSubmit":"Надіслати на сервер","image":"Зображення","flash":"Flash","form":"Форма","checkbox":"Галочка","radio":"Кнопка вибору","textField":"Текстове поле","textarea":"Текстова область","hiddenField":"Приховане поле","button":"Кнопка","select":"Список","imageButton":"Кнопка із зображенням","notSet":"<не визначено>","id":"Ідентифікатор","name":"Ім'я","langDir":"Напрямок мови","langDirLtr":"Зліва направо (LTR)","langDirRtl":"Справа наліво (RTL)","langCode":"Код мови","longDescr":"Довгий опис URL","cssClass":"Клас CSS","advisoryTitle":"Заголовок","cssStyle":"Стиль CSS","ok":"ОК","cancel":"Скасувати","close":"Закрити","preview":"Попередній перегляд","resize":"Потягніть для зміни розмірів","generalTab":"Основне","advancedTab":"Додаткове","validateNumberFailed":"Значення не є цілим числом.","confirmNewPage":"Всі незбережені зміни будуть втрачені. Ви впевнені, що хочете завантажити нову сторінку?","confirmCancel":"Деякі опції змінено. Закрити вікно без збереження змін?","options":"Опції","target":"Ціль","targetNew":"Нове вікно (_blank)","targetTop":"Поточне вікно (_top)","targetSelf":"Поточний фрейм/вікно (_self)","targetParent":"Батьківський фрейм/вікно (_parent)","langDirLTR":"Зліва направо (LTR)","langDirRTL":"Справа наліво (RTL)","styles":"Стиль CSS","cssClasses":"Клас CSS","width":"Ширина","height":"Висота","align":"Вирівнювання","alignLeft":"По лівому краю","alignRight":"По правому краю","alignCenter":"По центру","alignJustify":"По ширині","alignTop":"По верхньому краю","alignMiddle":"По середині","alignBottom":"По нижньому краю","alignNone":"Нема","invalidValue":"Невірне значення.","invalidHeight":"Висота повинна бути цілим числом.","invalidWidth":"Ширина повинна бути цілим числом.","invalidCssLength":"Значення, вказане для \"%1\" в полі повинно бути позитивним числом або без дійсного виміру CSS блоку (px, %, in, cm, mm, em, ex, pt або pc).","invalidHtmlLength":"Значення, вказане для \"%1\" в полі повинно бути позитивним числом або без дійсного виміру HTML блоку (px або %).","invalidInlineStyle":"Значення, вказане для вбудованого стилю повинне складатися з одного чи кількох кортежів у форматі \"ім'я : значення\", розділених крапкою з комою.","cssLengthTooltip":"Введіть номер значення в пікселях або число з дійсною одиниці CSS (px, %, in, cm, mm, em, ex, pt або pc).","unavailable":"%1<span class=\"cke_accessibility\">, не доступне</span>","keyboard":{"8":"Backspace","13":"Enter","16":"Shift","17":"Ctrl","18":"Alt","32":"Space","35":"End","36":"Home","46":"Видалити","224":"Command"},"keyboardShortcut":"Keyboard shortcut"},"about":{"copy":"Copyright &copy; $1. Всі права застережено.","dlgTitle":"Про CKEditor","help":"Перевірте $1 для допомоги.","moreInfo":"Щодо інформації з ліцензування завітайте на наш сайт:","title":"Про CKEditor","userGuide":"Інструкція Користувача для CKEditor"},"basicstyles":{"bold":"Жирний","italic":"Курсив","strike":"Закреслений","subscript":"Нижній індекс","superscript":"Верхній індекс","underline":"Підкреслений"},"blockquote":{"toolbar":"Цитата"},"notification":{"closed":"Сповіщення закрито."},"button":{"selectedLabel":"%1 (Вибрано)"},"toolbar":{"toolbarCollapse":"Згорнути панель інструментів","toolbarExpand":"Розгорнути панель інструментів","toolbarGroups":{"document":"Документ","clipboard":"Буфер обміну / Скасувати","editing":"Редагування","forms":"Форми","basicstyles":"Основний Стиль","paragraph":"Параграф","links":"Посилання","insert":"Вставити","styles":"Стилі","colors":"Кольори","tools":"Інструменти"},"toolbars":"Панель інструментів редактора"},"clipboard":{"copy":"Копіювати","copyError":"Налаштування безпеки Вашого браузера не дозволяють редактору автоматично виконувати операції копіювання. Будь ласка, використовуйте клавіатуру для цього (Ctrl/Cmd+C).","cut":"Вирізати","cutError":"Налаштування безпеки Вашого браузера не дозволяють редактору автоматично виконувати операції вирізування. Будь ласка, використовуйте клавіатуру для цього (Ctrl/Cmd+X)","paste":"Вставити","pasteNotification":"Your browser doesn't allow you to paste this way. Press %1 to paste."},"contextmenu":{"options":"Опції контекстного меню"},"elementspath":{"eleLabel":"Шлях","eleTitle":"%1 елемент"},"format":{"label":"Форматування","panelTitle":"Форматування параграфа","tag_address":"Адреса","tag_div":"Нормальний (div)","tag_h1":"Заголовок 1","tag_h2":"Заголовок 2","tag_h3":"Заголовок 3","tag_h4":"Заголовок 4","tag_h5":"Заголовок 5","tag_h6":"Заголовок 6","tag_p":"Нормальний","tag_pre":"Форматований"},"horizontalrule":{"toolbar":"Горизонтальна лінія"},"image":{"alt":"Альтернативний текст","border":"Рамка","btnUpload":"Надіслати на сервер","button2Img":"Бажаєте перетворити обрану кнопку-зображення на просте зображення?","hSpace":"Гориз. відступ","img2Button":"Бажаєте перетворити обране зображення на кнопку-зображення?","infoTab":"Інформація про зображення","linkTab":"Посилання","lockRatio":"Зберегти пропорції","menu":"Властивості зображення","resetSize":"Очистити поля розмірів","title":"Властивості зображення","titleButton":"Властивості кнопки із зображенням","upload":"Надіслати","urlMissing":"Вкажіть URL зображення.","vSpace":"Верт. відступ","validateBorder":"Ширина рамки повинна бути цілим числом.","validateHSpace":"Гориз. відступ повинен бути цілим числом.","validateVSpace":"Верт. відступ повинен бути цілим числом."},"indent":{"indent":"Збільшити відступ","outdent":"Зменшити відступ"},"fakeobjects":{"anchor":"Якір","flash":"Flash-анімація","hiddenfield":"Приховані Поля","iframe":"IFrame","unknown":"Невідомий об'єкт"},"link":{"acccessKey":"Гаряча клавіша","advanced":"Додаткове","advisoryContentType":"Тип вмісту","advisoryTitle":"Заголовок","anchor":{"toolbar":"Вставити/Редагувати якір","menu":"Властивості якоря","title":"Властивості якоря","name":"Ім'я якоря","errorName":"Будь ласка, вкажіть ім'я якоря","remove":"Прибрати якір"},"anchorId":"За ідентифікатором елементу","anchorName":"За ім'ям елементу","charset":"Кодування","cssClasses":"Клас CSS","download":"Force Download","displayText":"Display Text","emailAddress":"Адреса ел. пошти","emailBody":"Тіло повідомлення","emailSubject":"Тема листа","id":"Ідентифікатор","info":"Інформація посилання","langCode":"Код мови","langDir":"Напрямок мови","langDirLTR":"Зліва направо (LTR)","langDirRTL":"Справа наліво (RTL)","menu":"Вставити посилання","name":"Ім'я","noAnchors":"(В цьому документі немає якорів)","noEmail":"Будь ласка, вкажіть адрес ел. пошти","noUrl":"Будь ласка, вкажіть URL посилання","other":"<інший>","popupDependent":"Залежний (Netscape)","popupFeatures":"Властивості випливаючого вікна","popupFullScreen":"Повний екран (IE)","popupLeft":"Позиція зліва","popupLocationBar":"Панель локації","popupMenuBar":"Панель меню","popupResizable":"Масштабоване","popupScrollBars":"Стрічки прокрутки","popupStatusBar":"Рядок статусу","popupToolbar":"Панель інструментів","popupTop":"Позиція зверху","rel":"Зв'язок","selectAnchor":"Оберіть якір","styles":"Стиль CSS","tabIndex":"Послідовність переходу","target":"Ціль","targetFrame":"<фрейм>","targetFrameName":"Ім'я цільового фрейму","targetPopup":"<випливаюче вікно>","targetPopupName":"Ім'я випливаючого вікна","title":"Посилання","toAnchor":"Якір на цю сторінку","toEmail":"Ел. пошта","toUrl":"URL","toolbar":"Вставити/Редагувати посилання","type":"Тип посилання","unlink":"Видалити посилання","upload":"Надіслати"},"list":{"bulletedlist":"Маркірований список","numberedlist":"Нумерований список"},"magicline":{"title":"Вставити абзац"},"maximize":{"maximize":"Максимізувати","minimize":"Мінімізувати"},"pastetext":{"button":"Вставити тільки текст","pasteNotification":"Your browser does not allow you to paste plain text this way. Press %1 to paste."},"pastefromword":{"confirmCleanup":"Текст, що Ви намагаєтесь вставити, схожий на скопійований з Word. Бажаєте очистити його форматування перед вставлянням?","error":"Неможливо очистити форматування через внутрішню помилку.","title":"Вставити з Word","toolbar":"Вставити з Word"},"removeformat":{"toolbar":"Видалити форматування"},"sourcearea":{"toolbar":"Джерело"},"specialchar":{"options":"Опції","title":"Оберіть спеціальний символ","toolbar":"Спеціальний символ"},"scayt":{"btn_about":"Про SCAYT","btn_dictionaries":"Словники","btn_disable":"Вимкнути SCAYT","btn_enable":"Ввімкнути SCAYT","btn_langs":"Мови","btn_options":"Опції","text_title":"Перефірка орфографії по мірі набору"},"stylescombo":{"label":"Стиль","panelTitle":"Стилі форматування","panelTitle1":"Блочні стилі","panelTitle2":"Рядкові стилі","panelTitle3":"Об'єктні стилі"},"table":{"border":"Розмір рамки","caption":"Заголовок таблиці","cell":{"menu":"Комірки","insertBefore":"Вставити комірку перед","insertAfter":"Вставити комірку після","deleteCell":"Видалити комірки","merge":"Об'єднати комірки","mergeRight":"Об'єднати справа","mergeDown":"Об'єднати донизу","splitHorizontal":"Розділити комірку по горизонталі","splitVertical":"Розділити комірку по вертикалі","title":"Властивості комірки","cellType":"Тип комірки","rowSpan":"Об'єднання рядків","colSpan":"Об'єднання стовпців","wordWrap":"Автоперенесення тексту","hAlign":"Гориз. вирівнювання","vAlign":"Верт. вирівнювання","alignBaseline":"По базовій лінії","bgColor":"Колір фону","borderColor":"Колір рамки","data":"Дані","header":"Заголовок","yes":"Так","no":"Ні","invalidWidth":"Ширина комірки повинна бути цілим числом.","invalidHeight":"Висота комірки повинна бути цілим числом.","invalidRowSpan":"Кількість об'єднуваних рядків повинна бути цілим числом.","invalidColSpan":"Кількість об'єднуваних стовбців повинна бути цілим числом.","chooseColor":"Обрати"},"cellPad":"Внутр. відступ","cellSpace":"Проміжок","column":{"menu":"Стовбці","insertBefore":"Вставити стовбець перед","insertAfter":"Вставити стовбець після","deleteColumn":"Видалити стовбці"},"columns":"Стовбці","deleteTable":"Видалити таблицю","headers":"Заголовки стовбців/рядків","headersBoth":"Стовбці і рядки","headersColumn":"Стовбці","headersNone":"Без заголовків","headersRow":"Рядки","invalidBorder":"Розмір рамки повинен бути цілим числом.","invalidCellPadding":"Внутр. відступ комірки повинен бути цілим числом.","invalidCellSpacing":"Проміжок між комірками повинен бути цілим числом.","invalidCols":"Кількість стовбців повинна бути більшою 0.","invalidHeight":"Висота таблиці повинна бути цілим числом.","invalidRows":"Кількість рядків повинна бути більшою 0.","invalidWidth":"Ширина таблиці повинна бути цілим числом.","menu":"Властивості таблиці","row":{"menu":"Рядки","insertBefore":"Вставити рядок перед","insertAfter":"Вставити рядок після","deleteRow":"Видалити рядки"},"rows":"Рядки","summary":"Детальний опис заголовку таблиці","title":"Властивості таблиці","toolbar":"Таблиця","widthPc":"відсотків","widthPx":"пікселів","widthUnit":"Одиниці вимір."},"undo":{"redo":"Повторити","undo":"Повернути"},"wsc":{"btnIgnore":"Пропустити","btnIgnoreAll":"Пропустити все","btnReplace":"Замінити","btnReplaceAll":"Замінити все","btnUndo":"Назад","changeTo":"Замінити на","errorLoading":"Помилка завантаження : %s.","ieSpellDownload":"Модуль перевірки орфографії не встановлено. Бажаєте завантажити його зараз?","manyChanges":"Перевірку орфографії завершено: 1% слів(ова) змінено","noChanges":"Перевірку орфографії завершено: жодне слово не змінено","noMispell":"Перевірку орфографії завершено: помилок не знайдено","noSuggestions":"- немає варіантів -","notAvailable":"Вибачте, але сервіс наразі недоступний.","notInDic":"Немає в словнику","oneChange":"Перевірку орфографії завершено: змінено одне слово","progress":"Виконується перевірка орфографії...","title":"Перевірка орфографії","toolbar":"Перевірити орфографію"}}; \ No newline at end of file diff --git a/admin/plugins/ckeditor/lang/vi.js b/admin/plugins/ckeditor/lang/vi.js deleted file mode 100644 index 591a422..0000000 --- a/admin/plugins/ckeditor/lang/vi.js +++ /dev/null @@ -1,5 +0,0 @@ -/* -Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. -For licensing, see LICENSE.md or http://ckeditor.com/license -*/ -CKEDITOR.lang['vi']={"editor":"Bộ soạn thảo văn bản có định dạng","editorPanel":"Bảng điều khiển Rich Text Editor","common":{"editorHelp":"Nhấn ALT + 0 để được giúp đỡ","browseServer":"Duyệt máy chủ","url":"URL","protocol":"Giao thức","upload":"Tải lên","uploadSubmit":"Tải lên máy chủ","image":"Hình ảnh","flash":"Flash","form":"Biểu mẫu","checkbox":"Nút kiểm","radio":"Nút chọn","textField":"Trường văn bản","textarea":"Vùng văn bản","hiddenField":"Trường ẩn","button":"Nút","select":"Ô chọn","imageButton":"Nút hình ảnh","notSet":"<không thiết lập>","id":"Định danh","name":"Tên","langDir":"Hướng ngôn ngữ","langDirLtr":"Trái sang phải (LTR)","langDirRtl":"Phải sang trái (RTL)","langCode":"Mã ngôn ngữ","longDescr":"Mô tả URL","cssClass":"Lớp Stylesheet","advisoryTitle":"Nhan đề hướng dẫn","cssStyle":"Kiểu ","ok":"Đồng ý","cancel":"Bỏ qua","close":"Đóng","preview":"Xem trước","resize":"Kéo rê để thay đổi kích cỡ","generalTab":"Tab chung","advancedTab":"Tab mở rộng","validateNumberFailed":"Giá trị này không phải là số.","confirmNewPage":"Mọi thay đổi không được lưu lại, nội dung này sẽ bị mất. Bạn có chắc chắn muốn tải một trang mới?","confirmCancel":"Một vài tùy chọn đã bị thay đổi. Bạn có chắc chắn muốn đóng hộp thoại?","options":"Tùy chọn","target":"Đích đến","targetNew":"Cửa sổ mới (_blank)","targetTop":"Cửa sổ trên cùng (_top)","targetSelf":"Tại trang (_self)","targetParent":"Cửa sổ cha (_parent)","langDirLTR":"Trái sang phải (LTR)","langDirRTL":"Phải sang trái (RTL)","styles":"Kiểu","cssClasses":"Lớp CSS","width":"Chiều rộng","height":"Chiều cao","align":"Vị trí","alignLeft":"Trái","alignRight":"Phải","alignCenter":"Giữa","alignJustify":"Sắp chữ","alignTop":"Trên","alignMiddle":"Giữa","alignBottom":"Dưới","alignNone":"Không","invalidValue":"Giá trị không hợp lệ.","invalidHeight":"Chiều cao phải là số nguyên.","invalidWidth":"Chiều rộng phải là số nguyên.","invalidCssLength":"Giá trị quy định cho trường \"%1\" phải là một số dương có hoặc không có một đơn vị đo CSS hợp lệ (px, %, in, cm, mm, em, ex, pt, hoặc pc).","invalidHtmlLength":"Giá trị quy định cho trường \"%1\" phải là một số dương có hoặc không có một đơn vị đo HTML hợp lệ (px hoặc %).","invalidInlineStyle":"Giá trị quy định cho kiểu nội tuyến phải bao gồm một hoặc nhiều dữ liệu với định dạng \"tên:giá trị\", cách nhau bằng dấu chấm phẩy.","cssLengthTooltip":"Nhập một giá trị theo pixel hoặc một số với một đơn vị CSS hợp lệ (px, %, in, cm, mm, em, ex, pt, hoặc pc).","unavailable":"%1<span class=\"cke_accessibility\">, không có</span>","keyboard":{"8":"Phím Backspace","13":"Enter","16":"Shift","17":"Ctrl","18":"Alt","32":"Space","35":"End","36":"Home","46":"Xóa","224":"Command"},"keyboardShortcut":"Keyboard shortcut"},"about":{"copy":"Bản quyền &copy; $1. Giữ toàn quyền.","dlgTitle":"Thông tin về CKEditor","help":"Kiểm tra $1 để được giúp đỡ.","moreInfo":"Vui lòng ghé thăm trang web của chúng tôi để có thông tin về giấy phép:","title":"Thông tin về CKEditor","userGuide":"Hướng dẫn sử dụng CKEditor"},"basicstyles":{"bold":"Đậm","italic":"Nghiêng","strike":"Gạch xuyên ngang","subscript":"Chỉ số dưới","superscript":"Chỉ số trên","underline":"Gạch chân"},"blockquote":{"toolbar":"Khối trích dẫn"},"notification":{"closed":"Notification closed."},"button":{"selectedLabel":"%1 (Đã chọn)"},"toolbar":{"toolbarCollapse":"Thu gọn thanh công cụ","toolbarExpand":"Mở rộng thnah công cụ","toolbarGroups":{"document":"Tài liệu","clipboard":"Clipboard/Undo","editing":"Chỉnh sửa","forms":"Bảng biểu","basicstyles":"Kiểu cơ bản","paragraph":"Đoạn","links":"Liên kết","insert":"Chèn","styles":"Kiểu","colors":"Màu sắc","tools":"Công cụ"},"toolbars":"Thanh công cụ"},"clipboard":{"copy":"Sao chép","copyError":"Các thiết lập bảo mật của trình duyệt không cho phép trình biên tập tự động thực thi lệnh sao chép. Hãy sử dụng bàn phím cho lệnh này (Ctrl/Cmd+C).","cut":"Cắt","cutError":"Các thiết lập bảo mật của trình duyệt không cho phép trình biên tập tự động thực thi lệnh cắt. Hãy sử dụng bàn phím cho lệnh này (Ctrl/Cmd+X).","paste":"Dán","pasteNotification":"Your browser doesn't allow you to paste this way. Press %1 to paste."},"contextmenu":{"options":"Tùy chọn menu bổ xung"},"elementspath":{"eleLabel":"Nhãn thành phần","eleTitle":"%1 thành phần"},"format":{"label":"Định dạng","panelTitle":"Định dạng","tag_address":"Address","tag_div":"Bình thường (DIV)","tag_h1":"Heading 1","tag_h2":"Heading 2","tag_h3":"Heading 3","tag_h4":"Heading 4","tag_h5":"Heading 5","tag_h6":"Heading 6","tag_p":"Bình thường (P)","tag_pre":"Đã thiết lập"},"horizontalrule":{"toolbar":"Chèn đường phân cách ngang"},"image":{"alt":"Chú thích ảnh","border":"Đường viền","btnUpload":"Tải lên máy chủ","button2Img":"Bạn có muốn chuyển nút bấm bằng ảnh được chọn thành ảnh?","hSpace":"Khoảng đệm ngang","img2Button":"Bạn có muốn chuyển đổi ảnh được chọn thành nút bấm bằng ảnh?","infoTab":"Thông tin của ảnh","linkTab":"Tab liên kết","lockRatio":"Giữ nguyên tỷ lệ","menu":"Thuộc tính của ảnh","resetSize":"Kích thước gốc","title":"Thuộc tính của ảnh","titleButton":"Thuộc tính nút của ảnh","upload":"Tải lên","urlMissing":"Thiếu đường dẫn hình ảnh","vSpace":"Khoảng đệm dọc","validateBorder":"Chiều rộng của đường viền phải là một số nguyên dương","validateHSpace":"Khoảng đệm ngang phải là một số nguyên dương","validateVSpace":"Khoảng đệm dọc phải là một số nguyên dương"},"indent":{"indent":"Dịch vào trong","outdent":"Dịch ra ngoài"},"fakeobjects":{"anchor":"Điểm neo","flash":"Flash","hiddenfield":"Trường ẩn","iframe":"IFrame","unknown":"Đối tượng không rõ ràng"},"link":{"acccessKey":"Phím hỗ trợ truy cập","advanced":"Mở rộng","advisoryContentType":"Nội dung hướng dẫn","advisoryTitle":"Nhan đề hướng dẫn","anchor":{"toolbar":"Chèn/Sửa điểm neo","menu":"Thuộc tính điểm neo","title":"Thuộc tính điểm neo","name":"Tên của điểm neo","errorName":"Hãy nhập vào tên của điểm neo","remove":"Xóa neo"},"anchorId":"Theo định danh thành phần","anchorName":"Theo tên điểm neo","charset":"Bảng mã của tài nguyên được liên kết đến","cssClasses":"Lớp Stylesheet","download":"Force Download","displayText":"Display Text","emailAddress":"Thư điện tử","emailBody":"Nội dung thông điệp","emailSubject":"Tiêu đề thông điệp","id":"Định danh","info":"Thông tin liên kết","langCode":"Mã ngôn ngữ","langDir":"Hướng ngôn ngữ","langDirLTR":"Trái sang phải (LTR)","langDirRTL":"Phải sang trái (RTL)","menu":"Sửa liên kết","name":"Tên","noAnchors":"(Không có điểm neo nào trong tài liệu)","noEmail":"Hãy đưa vào địa chỉ thư điện tử","noUrl":"Hãy đưa vào đường dẫn liên kết (URL)","other":"<khác>","popupDependent":"Phụ thuộc (Netscape)","popupFeatures":"Đặc điểm của cửa sổ Popup","popupFullScreen":"Toàn màn hình (IE)","popupLeft":"Vị trí bên trái","popupLocationBar":"Thanh vị trí","popupMenuBar":"Thanh Menu","popupResizable":"Có thể thay đổi kích cỡ","popupScrollBars":"Thanh cuộn","popupStatusBar":"Thanh trạng thái","popupToolbar":"Thanh công cụ","popupTop":"Vị trí phía trên","rel":"Quan hệ","selectAnchor":"Chọn một điểm neo","styles":"Kiểu (style)","tabIndex":"Chỉ số của Tab","target":"Đích","targetFrame":"<khung>","targetFrameName":"Tên khung đích","targetPopup":"<cửa sổ popup>","targetPopupName":"Tên cửa sổ Popup","title":"Liên kết","toAnchor":"Neo trong trang này","toEmail":"Thư điện tử","toUrl":"URL","toolbar":"Chèn/Sửa liên kết","type":"Kiểu liên kết","unlink":"Xoá liên kết","upload":"Tải lên"},"list":{"bulletedlist":"Chèn/Xoá Danh sách không thứ tự","numberedlist":"Chèn/Xoá Danh sách có thứ tự"},"magicline":{"title":"Chèn đoạn vào đây"},"maximize":{"maximize":"Phóng to tối đa","minimize":"Thu nhỏ"},"pastetext":{"button":"Dán theo định dạng văn bản thuần","pasteNotification":"Your browser does not allow you to paste plain text this way. Press %1 to paste."},"pastefromword":{"confirmCleanup":"Văn bản bạn muốn dán có kèm định dạng của Word. Bạn có muốn loại bỏ định dạng Word trước khi dán?","error":"Không thể để làm sạch các dữ liệu dán do một lỗi nội bộ","title":"Dán với định dạng Word","toolbar":"Dán với định dạng Word"},"removeformat":{"toolbar":"Xoá định dạng"},"sourcearea":{"toolbar":"Mã HTML"},"specialchar":{"options":"Tùy chọn các ký tự đặc biệt","title":"Hãy chọn ký tự đặc biệt","toolbar":"Chèn ký tự đặc biệt"},"scayt":{"btn_about":"Thông tin về SCAYT","btn_dictionaries":"Từ điển","btn_disable":"Tắt SCAYT","btn_enable":"Bật SCAYT","btn_langs":"Ngôn ngữ","btn_options":"Tùy chọn","text_title":"Kiểm tra chính tả ngay khi gõ chữ (SCAYT)"},"stylescombo":{"label":"Kiểu","panelTitle":"Phong cách định dạng","panelTitle1":"Kiểu khối","panelTitle2":"Kiểu trực tiếp","panelTitle3":"Kiểu đối tượng"},"table":{"border":"Kích thước đường viền","caption":"Đầu đề","cell":{"menu":"Ô","insertBefore":"Chèn ô Phía trước","insertAfter":"Chèn ô Phía sau","deleteCell":"Xoá ô","merge":"Kết hợp ô","mergeRight":"Kết hợp sang phải","mergeDown":"Kết hợp xuống dưới","splitHorizontal":"Phân tách ô theo chiều ngang","splitVertical":"Phân tách ô theo chiều dọc","title":"Thuộc tính của ô","cellType":"Kiểu của ô","rowSpan":"Kết hợp hàng","colSpan":"Kết hợp cột","wordWrap":"Chữ liền hàng","hAlign":"Canh lề ngang","vAlign":"Canh lề dọc","alignBaseline":"Đường cơ sở","bgColor":"Màu nền","borderColor":"Màu viền","data":"Dữ liệu","header":"Đầu đề","yes":"Có","no":"Không","invalidWidth":"Chiều rộng của ô phải là một số nguyên.","invalidHeight":"Chiều cao của ô phải là một số nguyên.","invalidRowSpan":"Số hàng kết hợp phải là một số nguyên.","invalidColSpan":"Số cột kết hợp phải là một số nguyên.","chooseColor":"Chọn màu"},"cellPad":"Khoảng đệm giữ ô và nội dung","cellSpace":"Khoảng cách giữa các ô","column":{"menu":"Cột","insertBefore":"Chèn cột phía trước","insertAfter":"Chèn cột phía sau","deleteColumn":"Xoá cột"},"columns":"Số cột","deleteTable":"Xóa bảng","headers":"Đầu đề","headersBoth":"Cả hai","headersColumn":"Cột đầu tiên","headersNone":"Không có","headersRow":"Hàng đầu tiên","invalidBorder":"Kích cỡ của đường biên phải là một số nguyên.","invalidCellPadding":"Khoảng đệm giữa ô và nội dung phải là một số nguyên.","invalidCellSpacing":"Khoảng cách giữa các ô phải là một số nguyên.","invalidCols":"Số lượng cột phải là một số lớn hơn 0.","invalidHeight":"Chiều cao của bảng phải là một số nguyên.","invalidRows":"Số lượng hàng phải là một số lớn hơn 0.","invalidWidth":"Chiều rộng của bảng phải là một số nguyên.","menu":"Thuộc tính bảng","row":{"menu":"Hàng","insertBefore":"Chèn hàng phía trước","insertAfter":"Chèn hàng phía sau","deleteRow":"Xoá hàng"},"rows":"Số hàng","summary":"Tóm lược","title":"Thuộc tính bảng","toolbar":"Bảng","widthPc":"Phần trăm (%)","widthPx":"Điểm ảnh (px)","widthUnit":"Đơn vị"},"undo":{"redo":"Làm lại thao tác","undo":"Khôi phục thao tác"},"wsc":{"btnIgnore":"Bỏ qua","btnIgnoreAll":"Bỏ qua tất cả","btnReplace":"Thay thế","btnReplaceAll":"Thay thế tất cả","btnUndo":"Phục hồi lại","changeTo":"Chuyển thành","errorLoading":"Lỗi khi đang nạp dịch vụ ứng dụng: %s.","ieSpellDownload":"Chức năng kiểm tra chính tả chưa được cài đặt. Bạn có muốn tải về ngay bây giờ?","manyChanges":"Hoàn tất kiểm tra chính tả: %1 từ đã được thay đổi","noChanges":"Hoàn tất kiểm tra chính tả: Không có từ nào được thay đổi","noMispell":"Hoàn tất kiểm tra chính tả: Không có lỗi chính tả","noSuggestions":"- Không đưa ra gợi ý về từ -","notAvailable":"Xin lỗi, dịch vụ này hiện tại không có.","notInDic":"Không có trong từ điển","oneChange":"Hoàn tất kiểm tra chính tả: Một từ đã được thay đổi","progress":"Đang tiến hành kiểm tra chính tả...","title":"Kiểm tra chính tả","toolbar":"Kiểm tra chính tả"}}; \ No newline at end of file diff --git a/admin/plugins/ckeditor/lang/zh-cn.js b/admin/plugins/ckeditor/lang/zh-cn.js deleted file mode 100644 index 9413f28..0000000 --- a/admin/plugins/ckeditor/lang/zh-cn.js +++ /dev/null @@ -1,5 +0,0 @@ -/* -Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. -For licensing, see LICENSE.md or http://ckeditor.com/license -*/ -CKEDITOR.lang['zh-cn']={"editor":"所见即所得编辑器","editorPanel":"所见即所得编辑器面板","common":{"editorHelp":"按 ALT+0 获得帮助","browseServer":"浏览服务器","url":"URL","protocol":"协议","upload":"上传","uploadSubmit":"上传到服务器","image":"图像","flash":"Flash","form":"表单","checkbox":"复选框","radio":"单选按钮","textField":"单行文本","textarea":"多行文本","hiddenField":"隐藏域","button":"按钮","select":"列表/菜单","imageButton":"图像按钮","notSet":"<没有设置>","id":"ID","name":"名称","langDir":"语言方向","langDirLtr":"从左到右 (LTR)","langDirRtl":"从右到左 (RTL)","langCode":"语言代码","longDescr":"详细说明 URL","cssClass":"样式类名称","advisoryTitle":"标题","cssStyle":"行内样式","ok":"确定","cancel":"取消","close":"关闭","preview":"预览","resize":"拖拽以改变大小","generalTab":"常规","advancedTab":"高级","validateNumberFailed":"需要输入数字格式","confirmNewPage":"当前文档内容未保存,是否确认新建文档?","confirmCancel":"部分修改尚未保存,是否确认关闭对话框?","options":"选项","target":"目标窗口","targetNew":"新窗口 (_blank)","targetTop":"整页 (_top)","targetSelf":"本窗口 (_self)","targetParent":"父窗口 (_parent)","langDirLTR":"从左到右 (LTR)","langDirRTL":"从右到左 (RTL)","styles":"样式","cssClasses":"样式类","width":"宽度","height":"高度","align":"对齐方式","alignLeft":"左对齐","alignRight":"右对齐","alignCenter":"居中","alignJustify":"两端对齐","alignTop":"顶端","alignMiddle":"居中","alignBottom":"底部","alignNone":"无","invalidValue":"无效的值。","invalidHeight":"高度必须为数字格式","invalidWidth":"宽度必须为数字格式","invalidCssLength":"此“%1”字段的值必须为正数,可以包含或不包含一个有效的 CSS 长度单位(px, %, in, cm, mm, em, ex, pt 或 pc)","invalidHtmlLength":"此“%1”字段的值必须为正数,可以包含或不包含一个有效的 HTML 长度单位(px 或 %)","invalidInlineStyle":"内联样式必须为格式是以分号分隔的一个或多个“属性名 : 属性值”。","cssLengthTooltip":"输入一个表示像素值的数字,或加上一个有效的 CSS 长度单位(px, %, in, cm, mm, em, ex, pt 或 pc)。","unavailable":"%1<span class=\"cke_accessibility\">,不可用</span>","keyboard":{"8":"退格键","13":"回车键","16":"Shift","17":"Ctrl","18":"Alt","32":"空格键","35":"行尾键","36":"行首键","46":"删除键","224":"Command"},"keyboardShortcut":"快捷键"},"about":{"copy":"版权所有 &copy; $1。<br />保留所有权利。","dlgTitle":"关于 CKEditor","help":"访问 $1 以获取帮助。","moreInfo":"相关授权许可信息请访问我们的网站:","title":"关于 CKEditor","userGuide":"CKEditor 用户向导"},"basicstyles":{"bold":"加粗","italic":"倾斜","strike":"删除线","subscript":"下标","superscript":"上标","underline":"下划线"},"blockquote":{"toolbar":"块引用"},"notification":{"closed":"通知已关闭"},"button":{"selectedLabel":"已选中 %1 项"},"toolbar":{"toolbarCollapse":"折叠工具栏","toolbarExpand":"展开工具栏","toolbarGroups":{"document":"文档","clipboard":"剪贴板/撤销","editing":"编辑","forms":"表单","basicstyles":"基本格式","paragraph":"段落","links":"链接","insert":"插入","styles":"样式","colors":"颜色","tools":"工具"},"toolbars":"工具栏"},"clipboard":{"copy":"复制","copyError":"您的浏览器安全设置不允许编辑器自动执行复制操作,请使用键盘快捷键(Ctrl/Cmd+C)来完成。","cut":"剪切","cutError":"您的浏览器安全设置不允许编辑器自动执行剪切操作,请使用键盘快捷键(Ctrl/Cmd+X)来完成。","paste":"粘贴","pasteNotification":"您的浏览器不允许用此方式粘贴,要粘贴请按 %1。"},"contextmenu":{"options":"快捷菜单选项"},"elementspath":{"eleLabel":"元素路径","eleTitle":"%1 元素"},"format":{"label":"格式","panelTitle":"格式","tag_address":"地址","tag_div":"段落(DIV)","tag_h1":"标题 1","tag_h2":"标题 2","tag_h3":"标题 3","tag_h4":"标题 4","tag_h5":"标题 5","tag_h6":"标题 6","tag_p":"普通","tag_pre":"已编排格式"},"horizontalrule":{"toolbar":"插入水平线"},"image":{"alt":"替换文本","border":"边框大小","btnUpload":"上传到服务器","button2Img":"确定要把当前图像按钮转换为普通图像吗?","hSpace":"水平间距","img2Button":"确定要把当前图像改变为图像按钮吗?","infoTab":"图像信息","linkTab":"链接","lockRatio":"锁定比例","menu":"图像属性","resetSize":"原始尺寸","title":"图像属性","titleButton":"图像域属性","upload":"上传","urlMissing":"缺少图像源文件地址","vSpace":"垂直间距","validateBorder":"边框大小必须为整数格式","validateHSpace":"水平间距必须为整数格式","validateVSpace":"垂直间距必须为整数格式"},"indent":{"indent":"增加缩进量","outdent":"减少缩进量"},"fakeobjects":{"anchor":"锚点","flash":"Flash 动画","hiddenfield":"隐藏域","iframe":"IFrame","unknown":"未知对象"},"link":{"acccessKey":"访问键","advanced":"高级","advisoryContentType":"内容类型","advisoryTitle":"标题","anchor":{"toolbar":"插入/编辑锚点链接","menu":"锚点链接属性","title":"锚点链接属性","name":"锚点名称","errorName":"请输入锚点名称","remove":"删除锚点"},"anchorId":"按锚点 ID","anchorName":"按锚点名称","charset":"字符编码","cssClasses":"样式类名称","download":"强制下载","displayText":"显示文本","emailAddress":"地址","emailBody":"内容","emailSubject":"主题","id":"ID","info":"超链接信息","langCode":"语言代码","langDir":"语言方向","langDirLTR":"从左到右 (LTR)","langDirRTL":"从右到左 (RTL)","menu":"编辑超链接","name":"名称","noAnchors":"(此文档没有可用的锚点)","noEmail":"请输入电子邮件地址","noUrl":"请输入超链接地址","other":"<其他>","popupDependent":"依附 (NS)","popupFeatures":"弹出窗口属性","popupFullScreen":"全屏 (IE)","popupLeft":"左","popupLocationBar":"地址栏","popupMenuBar":"菜单栏","popupResizable":"可缩放","popupScrollBars":"滚动条","popupStatusBar":"状态栏","popupToolbar":"工具栏","popupTop":"右","rel":"关联","selectAnchor":"选择一个锚点","styles":"行内样式","tabIndex":"Tab 键次序","target":"目标","targetFrame":"<框架>","targetFrameName":"目标框架名称","targetPopup":"<弹出窗口>","targetPopupName":"弹出窗口名称","title":"超链接","toAnchor":"页内锚点链接","toEmail":"电子邮件","toUrl":"地址","toolbar":"插入/编辑超链接","type":"超链接类型","unlink":"取消超链接","upload":"上传"},"list":{"bulletedlist":"项目列表","numberedlist":"编号列表"},"magicline":{"title":"在这插入段落"},"maximize":{"maximize":"全屏","minimize":"最小化"},"pastetext":{"button":"粘贴为无格式文本","pasteNotification":"您的浏览器不允许用此方式粘贴成纯文本,要粘贴请按 %1。"},"pastefromword":{"confirmCleanup":"您要粘贴的内容好像是来自 MS Word,是否要清除 MS Word 格式后再粘贴?","error":"由于内部错误无法清理要粘贴的数据","title":"从 MS Word 粘贴","toolbar":"从 MS Word 粘贴"},"removeformat":{"toolbar":"清除格式"},"sourcearea":{"toolbar":"源码"},"specialchar":{"options":"特殊符号选项","title":"选择特殊符号","toolbar":"插入特殊符号"},"scayt":{"btn_about":"关于即时拼写检查","btn_dictionaries":"字典","btn_disable":"禁用即时拼写检查","btn_enable":"启用即时拼写检查","btn_langs":"语言","btn_options":"选项","text_title":"即时拼写检查"},"stylescombo":{"label":"样式","panelTitle":"样式","panelTitle1":"块级元素样式","panelTitle2":"内联元素样式","panelTitle3":"对象元素样式"},"table":{"border":"边框","caption":"标题","cell":{"menu":"单元格","insertBefore":"在左侧插入单元格","insertAfter":"在右侧插入单元格","deleteCell":"删除单元格","merge":"合并单元格","mergeRight":"向右合并单元格","mergeDown":"向下合并单元格","splitHorizontal":"水平拆分单元格","splitVertical":"垂直拆分单元格","title":"单元格属性","cellType":"单元格类型","rowSpan":"纵跨行数","colSpan":"横跨列数","wordWrap":"自动换行","hAlign":"水平对齐","vAlign":"垂直对齐","alignBaseline":"基线","bgColor":"背景颜色","borderColor":"边框颜色","data":"数据","header":"表头","yes":"是","no":"否","invalidWidth":"单元格宽度必须为数字格式","invalidHeight":"单元格高度必须为数字格式","invalidRowSpan":"行跨度必须为整数格式","invalidColSpan":"列跨度必须为整数格式","chooseColor":"选择"},"cellPad":"边距","cellSpace":"间距","column":{"menu":"列","insertBefore":"在左侧插入列","insertAfter":"在右侧插入列","deleteColumn":"删除列"},"columns":"列数","deleteTable":"删除表格","headers":"标题单元格","headersBoth":"第一列和第一行","headersColumn":"第一列","headersNone":"无","headersRow":"第一行","invalidBorder":"边框粗细必须为数字格式","invalidCellPadding":"单元格填充必须为数字格式","invalidCellSpacing":"单元格间距必须为数字格式","invalidCols":"指定的行数必须大于零","invalidHeight":"表格高度必须为数字格式","invalidRows":"指定的列数必须大于零","invalidWidth":"表格宽度必须为数字格式","menu":"表格属性","row":{"menu":"行","insertBefore":"在上方插入行","insertAfter":"在下方插入行","deleteRow":"删除行"},"rows":"行数","summary":"摘要","title":"表格属性","toolbar":"表格","widthPc":"百分比","widthPx":"像素","widthUnit":"宽度单位"},"undo":{"redo":"重做","undo":"撤消"},"wsc":{"btnIgnore":"忽略","btnIgnoreAll":"全部忽略","btnReplace":"替换","btnReplaceAll":"全部替换","btnUndo":"撤消","changeTo":"更改为","errorLoading":"加载应该服务主机时出错: %s.","ieSpellDownload":"拼写检查插件还没安装, 您是否想现在就下载?","manyChanges":"拼写检查完成: 更改了 %1 个单词","noChanges":"拼写检查完成: 没有更改任何单词","noMispell":"拼写检查完成: 没有发现拼写错误","noSuggestions":"- 没有建议 -","notAvailable":"抱歉, 服务目前暂不可用","notInDic":"没有在字典里","oneChange":"拼写检查完成: 更改了一个单词","progress":"正在进行拼写检查...","title":"拼写检查","toolbar":"拼写检查"}}; \ No newline at end of file diff --git a/admin/plugins/ckeditor/lang/zh.js b/admin/plugins/ckeditor/lang/zh.js deleted file mode 100644 index 5741c5b..0000000 --- a/admin/plugins/ckeditor/lang/zh.js +++ /dev/null @@ -1,5 +0,0 @@ -/* -Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. -For licensing, see LICENSE.md or http://ckeditor.com/license -*/ -CKEDITOR.lang['zh']={"editor":"RTF 編輯器","editorPanel":"RTF 編輯器面板","common":{"editorHelp":"按下 ALT 0 取得說明。","browseServer":"瀏覽伺服器","url":"URL","protocol":"通訊協定","upload":"上傳","uploadSubmit":"傳送至伺服器","image":"圖像","flash":"Flash","form":"表格","checkbox":"核取方塊","radio":"選項按鈕","textField":"文字欄位","textarea":"文字區域","hiddenField":"隱藏欄位","button":"按鈕","select":"選取欄位","imageButton":"影像按鈕","notSet":"<未設定>","id":"ID","name":"名稱","langDir":"語言方向","langDirLtr":"由左至右 (LTR)","langDirRtl":"由右至左 (RTL)","langCode":"語言代碼","longDescr":"完整描述 URL","cssClass":"樣式表類別","advisoryTitle":"標題","cssStyle":"樣式","ok":"確定","cancel":"取消","close":"關閉","preview":"預覽","resize":"調整大小","generalTab":"一般","advancedTab":"進階","validateNumberFailed":"此值不是數值。","confirmNewPage":"現存的修改尚未儲存,要開新檔案?","confirmCancel":"部份選項尚未儲存,要關閉對話框?","options":"選項","target":"目標","targetNew":"開新視窗 (_blank)","targetTop":"最上層視窗 (_top)","targetSelf":"相同視窗 (_self)","targetParent":"父視窗 (_parent)","langDirLTR":"由左至右 (LTR)","langDirRTL":"由右至左 (RTL)","styles":"樣式","cssClasses":"樣式表類別","width":"寬度","height":"高度","align":"對齊方式","alignLeft":"靠左對齊","alignRight":"靠右對齊","alignCenter":"置中對齊","alignJustify":"左右對齊","alignTop":"頂端","alignMiddle":"中間對齊","alignBottom":"底端","alignNone":"無","invalidValue":"無效值。","invalidHeight":"高度必須為數字。","invalidWidth":"寬度必須為數字。","invalidCssLength":"「%1」的值應為正數,並可包含有效的 CSS 單位 (px, %, in, cm, mm, em, ex, pt, 或 pc)。","invalidHtmlLength":"「%1」的值應為正數,並可包含有效的 HTML 單位 (px 或 %)。","invalidInlineStyle":"行內樣式的值應包含一個以上的變數值組,其格式如「名稱:值」,並以分號區隔之。","cssLengthTooltip":"請輸入數值,單位是像素或有效的 CSS 單位 (px, %, in, cm, mm, em, ex, pt, 或 pc)。","unavailable":"%1<span class=\"cke_accessibility\">,無法使用</span>","keyboard":{"8":"退格鍵","13":"Enter","16":"Shift","17":"Ctrl","18":"Alt","32":"空白鍵","35":"End","36":"Home","46":"刪除","224":"Command 鍵"},"keyboardShortcut":"鍵盤快捷鍵"},"about":{"copy":"Copyright &copy; $1. All rights reserved.","dlgTitle":"關於 CKEditor","help":"檢閱 $1 尋求幫助。","moreInfo":"關於授權資訊,請參閱我們的網站:","title":"關於 CKEditor","userGuide":"CKEditor 使用者手冊"},"basicstyles":{"bold":"粗體","italic":"斜體","strike":"刪除線","subscript":"下標","superscript":"上標","underline":"底線"},"blockquote":{"toolbar":"引用段落"},"notification":{"closed":"通知已關閉。"},"button":{"selectedLabel":"%1 (已選取)"},"toolbar":{"toolbarCollapse":"摺疊工具列","toolbarExpand":"展開工具列","toolbarGroups":{"document":"文件","clipboard":"剪貼簿/復原","editing":"編輯選項","forms":"格式","basicstyles":"基本樣式","paragraph":"段落","links":"連結","insert":"插入","styles":"樣式","colors":"顏色","tools":"工具"},"toolbars":"編輯器工具列"},"clipboard":{"copy":"複製","copyError":"瀏覽器的安全性設定不允許編輯器自動執行複製動作。請使用鍵盤快捷鍵 (Ctrl/Cmd+C) 複製。","cut":"剪下","cutError":"瀏覽器的安全性設定不允許編輯器自動執行剪下動作。請使用鏐盤快捷鍵 (Ctrl/Cmd+X) 剪下。","paste":"貼上","pasteNotification":"Your browser doesn't allow you to paste this way. Press %1 to paste."},"contextmenu":{"options":"內容功能表選項"},"elementspath":{"eleLabel":"元件路徑","eleTitle":"%1 個元件"},"format":{"label":"格式","panelTitle":"段落格式","tag_address":"地址","tag_div":"標準 (DIV)","tag_h1":"標題 1","tag_h2":"標題 2","tag_h3":"標題 3","tag_h4":"標題 4","tag_h5":"標題 5","tag_h6":"標題 6","tag_p":"標準","tag_pre":"格式設定"},"horizontalrule":{"toolbar":"插入水平線"},"image":{"alt":"替代文字","border":"框線","btnUpload":"傳送到伺服器","button2Img":"請問您確定要將「圖片按鈕」轉換成「圖片」嗎?","hSpace":"HSpace","img2Button":"請問您確定要將「圖片」轉換成「圖片按鈕」嗎?","infoTab":"影像資訊","linkTab":"連結","lockRatio":"固定比例","menu":"影像屬性","resetSize":"重設大小","title":"影像屬性","titleButton":"影像按鈕屬性","upload":"上傳","urlMissing":"遺失圖片來源之 URL ","vSpace":"VSpace","validateBorder":"框線必須是整數。","validateHSpace":"HSpace 必須是整數。","validateVSpace":"VSpace 必須是整數。"},"indent":{"indent":"增加縮排","outdent":"減少縮排"},"fakeobjects":{"anchor":"錨點","flash":"Flash 動畫","hiddenfield":"隱藏欄位","iframe":"IFrame","unknown":"無法辨識的物件"},"link":{"acccessKey":"便捷鍵","advanced":"進階","advisoryContentType":"建議內容類型","advisoryTitle":"標題","anchor":{"toolbar":"錨點","menu":"編輯錨點","title":"錨點內容","name":"錨點名稱","errorName":"請輸入錨點名稱","remove":"移除錨點"},"anchorId":"依元件編號","anchorName":"依錨點名稱","charset":"連結資源的字元集","cssClasses":"樣式表類別","download":"強制下載","displayText":"顯示文字","emailAddress":"電子郵件地址","emailBody":"郵件本文","emailSubject":"郵件主旨","id":"ID","info":"連結資訊","langCode":"語言碼","langDir":"語言方向","langDirLTR":"由左至右 (LTR)","langDirRTL":"由右至左 (RTL)","menu":"編輯連結","name":"名稱","noAnchors":"(本文件中無可用之錨點)","noEmail":"請輸入電子郵件","noUrl":"請輸入連結 URL","other":"<其他>","popupDependent":"獨立 (Netscape)","popupFeatures":"快顯視窗功能","popupFullScreen":"全螢幕 (IE)","popupLeft":"左側位置","popupLocationBar":"位置列","popupMenuBar":"功能表列","popupResizable":"可調大小","popupScrollBars":"捲軸","popupStatusBar":"狀態列","popupToolbar":"工具列","popupTop":"頂端位置","rel":"關係","selectAnchor":"選取一個錨點","styles":"樣式","tabIndex":"定位順序","target":"目標","targetFrame":"<框架>","targetFrameName":"目標框架名稱","targetPopup":"<快顯視窗>","targetPopupName":"快顯視窗名稱","title":"連結","toAnchor":"文字中的錨點連結","toEmail":"電子郵件","toUrl":"網址","toolbar":"連結","type":"連結類型","unlink":"取消連結","upload":"上傳"},"list":{"bulletedlist":"插入/移除項目符號清單","numberedlist":"插入/移除編號清單清單"},"magicline":{"title":"在此插入段落"},"maximize":{"maximize":"最大化","minimize":"最小化"},"pastetext":{"button":"貼成純文字","pasteNotification":"Your browser does not allow you to paste plain text this way. Press %1 to paste."},"pastefromword":{"confirmCleanup":"您想貼上的文字似乎是自 Word 複製而來,請問您是否要先清除 Word 的格式後再行貼上?","error":"由於發生內部錯誤,無法清除清除 Word 的格式。","title":"自 Word 貼上","toolbar":"自 Word 貼上"},"removeformat":{"toolbar":"移除格式"},"sourcearea":{"toolbar":"原始碼"},"specialchar":{"options":"特殊字元選項","title":"選取特殊字元","toolbar":"插入特殊字元"},"scayt":{"btn_about":"關於即時拼寫檢查","btn_dictionaries":"字典","btn_disable":"關閉即時拼寫檢查","btn_enable":"啟用即時拼寫檢查","btn_langs":"語言","btn_options":"選項","text_title":"即時拼寫檢查"},"stylescombo":{"label":"樣式","panelTitle":"格式化樣式","panelTitle1":"區塊樣式","panelTitle2":"內嵌樣式","panelTitle3":"物件樣式"},"table":{"border":"框線大小","caption":"標題","cell":{"menu":"儲存格","insertBefore":"前方插入儲存格","insertAfter":"後方插入儲存格","deleteCell":"刪除儲存格","merge":"合併儲存格","mergeRight":"向右合併","mergeDown":"向下合併","splitHorizontal":"水平分割儲存格","splitVertical":"垂直分割儲存格","title":"儲存格屬性","cellType":"儲存格類型","rowSpan":"列全長","colSpan":"行全長","wordWrap":"自動斷行","hAlign":"水平對齊","vAlign":"垂直對齊","alignBaseline":"基準線","bgColor":"背景顏色","borderColor":"框線顏色","data":"資料","header":"頁首","yes":"是","no":"否","invalidWidth":"儲存格寬度必須為數字。","invalidHeight":"儲存格高度必須為數字。","invalidRowSpan":"列全長必須是整數。","invalidColSpan":"行全長必須是整數。","chooseColor":"選擇"},"cellPad":"儲存格邊距","cellSpace":"儲存格間距","column":{"menu":"行","insertBefore":"左方插入行","insertAfter":"右方插入行","deleteColumn":"刪除行"},"columns":"行","deleteTable":"刪除表格","headers":"頁首","headersBoth":"同時","headersColumn":"第一行","headersNone":"無","headersRow":"第一列","invalidBorder":"框線大小必須是整數。","invalidCellPadding":"儲存格邊距必須為正數。","invalidCellSpacing":"儲存格間距必須為正數。","invalidCols":"行數須為大於 0 的正整數。","invalidHeight":"表格高度必須為數字。","invalidRows":"列數須為大於 0 的正整數。","invalidWidth":"表格寬度必須為數字。","menu":"表格屬性","row":{"menu":"列","insertBefore":"上方插入列","insertAfter":"下方插入列","deleteRow":"刪除列"},"rows":"列","summary":"總結","title":"表格屬性","toolbar":"表格","widthPc":"百分比","widthPx":"像素","widthUnit":"寬度單位"},"undo":{"redo":"取消復原","undo":"復原"},"wsc":{"btnIgnore":"忽略","btnIgnoreAll":"全部忽略","btnReplace":"取代","btnReplaceAll":"全部取代","btnUndo":"復原","changeTo":"更改為","errorLoading":"無法聯系侍服器: %s.","ieSpellDownload":"尚未安裝拼字檢查元件。您是否想要現在下載?","manyChanges":"拼字檢查完成:更改了 %1 個單字","noChanges":"拼字檢查完成:未更改任何單字","noMispell":"拼字檢查完成:未發現拼字錯誤","noSuggestions":"- 無建議值 -","notAvailable":"抱歉,服務目前暫不可用","notInDic":"不在字典中","oneChange":"拼字檢查完成:更改了 1 個單字","progress":"進行拼字檢查中…","title":"拼字檢查","toolbar":"拼字檢查"}}; \ No newline at end of file diff --git a/admin/plugins/ckeditor/plugins/a11yhelp/dialogs/a11yhelp.js b/admin/plugins/ckeditor/plugins/a11yhelp/dialogs/a11yhelp.js deleted file mode 100644 index 0b2c0f1..0000000 --- a/admin/plugins/ckeditor/plugins/a11yhelp/dialogs/a11yhelp.js +++ /dev/null @@ -1,10 +0,0 @@ -/* - Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. - For licensing, see LICENSE.md or http://ckeditor.com/license -*/ -CKEDITOR.dialog.add("a11yHelp",function(e){var a=e.lang.a11yhelp,b=e.lang.common.keyboard,q=CKEDITOR.tools.getNextId(),d={8:b[8],9:a.tab,13:b[13],16:b[16],17:b[17],18:b[18],19:a.pause,20:a.capslock,27:a.escape,33:a.pageUp,34:a.pageDown,35:b[35],36:b[36],37:a.leftArrow,38:a.upArrow,39:a.rightArrow,40:a.downArrow,45:a.insert,46:b[46],91:a.leftWindowKey,92:a.rightWindowKey,93:a.selectKey,96:a.numpad0,97:a.numpad1,98:a.numpad2,99:a.numpad3,100:a.numpad4,101:a.numpad5,102:a.numpad6,103:a.numpad7,104:a.numpad8, -105:a.numpad9,106:a.multiply,107:a.add,109:a.subtract,110:a.decimalPoint,111:a.divide,112:a.f1,113:a.f2,114:a.f3,115:a.f4,116:a.f5,117:a.f6,118:a.f7,119:a.f8,120:a.f9,121:a.f10,122:a.f11,123:a.f12,144:a.numLock,145:a.scrollLock,186:a.semiColon,187:a.equalSign,188:a.comma,189:a.dash,190:a.period,191:a.forwardSlash,192:a.graveAccent,219:a.openBracket,220:a.backSlash,221:a.closeBracket,222:a.singleQuote};d[CKEDITOR.ALT]=b[18];d[CKEDITOR.SHIFT]=b[16];d[CKEDITOR.CTRL]=CKEDITOR.env.mac?b[224]:b[17];var k= -[CKEDITOR.ALT,CKEDITOR.SHIFT,CKEDITOR.CTRL],r=/\$\{(.*?)\}/g,t=function(a,b){var c=e.getCommandKeystroke(b);if(c){for(var l,f,h=[],g=0;g<k.length;g++)f=k[g],l=c/k[g],1<l&&2>=l&&(c-=f,h.push(d[f]));h.push(d[c]||String.fromCharCode(c));c=h.join("+")}else c=a;return c};return{title:a.title,minWidth:600,minHeight:400,contents:[{id:"info",label:e.lang.common.generalTab,expand:!0,elements:[{type:"html",id:"legends",style:"white-space:normal;",focus:function(){this.getElement().focus()},html:function(){for(var b= -'\x3cdiv class\x3d"cke_accessibility_legend" role\x3d"document" aria-labelledby\x3d"'+q+'_arialbl" tabIndex\x3d"-1"\x3e%1\x3c/div\x3e\x3cspan id\x3d"'+q+'_arialbl" class\x3d"cke_voice_label"\x3e'+a.contents+" \x3c/span\x3e",d=[],c=a.legend,l=c.length,f=0;f<l;f++){for(var h=c[f],g=[],e=h.items,k=e.length,p=0;p<k;p++){var m=e[p],n=CKEDITOR.env.edge&&m.legendEdge?m.legendEdge:m.legend,n=n.replace(r,t);n.match(r)||g.push("\x3cdt\x3e%1\x3c/dt\x3e\x3cdd\x3e%2\x3c/dd\x3e".replace("%1",m.name).replace("%2", -n))}d.push("\x3ch1\x3e%1\x3c/h1\x3e\x3cdl\x3e%2\x3c/dl\x3e".replace("%1",h.name).replace("%2",g.join("")))}return b.replace("%1",d.join(""))}()+'\x3cstyle type\x3d"text/css"\x3e.cke_accessibility_legend{width:600px;height:400px;padding-right:5px;overflow-y:auto;overflow-x:hidden;}.cke_browser_quirks .cke_accessibility_legend,{height:390px}.cke_accessibility_legend *{white-space:normal;}.cke_accessibility_legend h1{font-size: 20px;border-bottom: 1px solid #AAA;margin: 5px 0px 15px;}.cke_accessibility_legend dl{margin-left: 5px;}.cke_accessibility_legend dt{font-size: 13px;font-weight: bold;}.cke_accessibility_legend dd{margin:10px}\x3c/style\x3e'}]}], -buttons:[CKEDITOR.dialog.cancelButton]}}); \ No newline at end of file diff --git a/admin/plugins/ckeditor/plugins/a11yhelp/dialogs/lang/_translationstatus.txt b/admin/plugins/ckeditor/plugins/a11yhelp/dialogs/lang/_translationstatus.txt deleted file mode 100644 index 58f07c3..0000000 --- a/admin/plugins/ckeditor/plugins/a11yhelp/dialogs/lang/_translationstatus.txt +++ /dev/null @@ -1,25 +0,0 @@ -Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. -For licensing, see LICENSE.md or http://ckeditor.com/license - -cs.js Found: 30 Missing: 0 -cy.js Found: 30 Missing: 0 -da.js Found: 12 Missing: 18 -de.js Found: 30 Missing: 0 -el.js Found: 25 Missing: 5 -eo.js Found: 30 Missing: 0 -fa.js Found: 30 Missing: 0 -fi.js Found: 30 Missing: 0 -fr.js Found: 30 Missing: 0 -gu.js Found: 12 Missing: 18 -he.js Found: 30 Missing: 0 -it.js Found: 30 Missing: 0 -mk.js Found: 5 Missing: 25 -nb.js Found: 30 Missing: 0 -nl.js Found: 30 Missing: 0 -no.js Found: 30 Missing: 0 -pt-br.js Found: 30 Missing: 0 -ro.js Found: 6 Missing: 24 -tr.js Found: 30 Missing: 0 -ug.js Found: 27 Missing: 3 -vi.js Found: 6 Missing: 24 -zh-cn.js Found: 30 Missing: 0 diff --git a/admin/plugins/ckeditor/plugins/a11yhelp/dialogs/lang/af.js b/admin/plugins/ckeditor/plugins/a11yhelp/dialogs/lang/af.js deleted file mode 100644 index a56a5cb..0000000 --- a/admin/plugins/ckeditor/plugins/a11yhelp/dialogs/lang/af.js +++ /dev/null @@ -1,11 +0,0 @@ -/* - Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. - For licensing, see LICENSE.md or http://ckeditor.com/license -*/ -CKEDITOR.plugins.setLang("a11yhelp","af",{title:"Toeganglikheid instruksies",contents:"Hulp inhoud. Druk ESC om toe te maak.",legend:[{name:"Algemeen",items:[{name:"Bewerker balk",legend:"Druk ${toolbarFocus} om op die werkbalk te land. Beweeg na die volgende en voorige wekrbalkgroep met TAB and SHIFT+TAB. Beweeg na die volgende en voorige werkbalkknop met die regter of linker pyl. Druk SPASIE of ENTER om die knop te bevestig."},{name:"Bewerker dialoog",legend:"Inside a dialog, press TAB to navigate to the next dialog element, press SHIFT+TAB to move to the previous dialog element, press ENTER to submit the dialog, press ESC to cancel the dialog. When a dialog has multiple tabs, the tab list can be reached either with ALT+F10 or with TAB as part of the dialog tabbing order. With tab list focused, move to the next and previous tab with RIGHT and LEFT ARROW, respectively."}, -{name:"Bewerkerinhoudmenu",legend:"Press ${contextMenu} or APPLICATION KEY to open context-menu. Then move to next menu option with TAB or DOWN ARROW. Move to previous option with SHIFT+TAB or UP ARROW. Press SPACE or ENTER to select the menu option. Open sub-menu of current option with SPACE or ENTER or RIGHT ARROW. Go back to parent menu item with ESC or LEFT ARROW. Close context menu with ESC."},{name:"Editor List Box",legend:"Inside a list-box, move to next list item with TAB OR DOWN ARROW. Move to previous list item with SHIFT+TAB or UP ARROW. Press SPACE or ENTER to select the list option. Press ESC to close the list-box."}, -{name:"Editor Element Path Bar",legend:"Press ${elementsPathFocus} to navigate to the elements path bar. Move to next element button with TAB or RIGHT ARROW. Move to previous button with SHIFT+TAB or LEFT ARROW. Press SPACE or ENTER to select the element in editor."}]},{name:"Commands",items:[{name:" Undo command",legend:"Press ${undo}"},{name:" Redo command",legend:"Press ${redo}"},{name:" Bold command",legend:"Press ${bold}"},{name:" Italic command",legend:"Press ${italic}"},{name:" Underline command", -legend:"Press ${underline}"},{name:" Link command",legend:"Press ${link}"},{name:" Toolbar Collapse command",legend:"Press ${toolbarCollapse}"},{name:" Access previous focus space command",legend:"Press ${accessPreviousSpace} to access the closest unreachable focus space before the caret, for example: two adjacent HR elements. Repeat the key combination to reach distant focus spaces."},{name:" Access next focus space command",legend:"Press ${accessNextSpace} to access the closest unreachable focus space after the caret, for example: two adjacent HR elements. Repeat the key combination to reach distant focus spaces."}, -{name:" Accessibility Help",legend:"Press ${a11yHelp}"},{name:" Paste as plain text",legend:"Press ${pastetext}",legendEdge:"Press ${pastetext}, followed by ${paste}"}]}],tab:"Tab",pause:"Pouse",capslock:"Hoofletterslot",escape:"Ontsnap",pageUp:"Blaaiop",pageDown:"Blaaiaf",leftArrow:"Linkspyl",upArrow:"Oppyl",rightArrow:"Regterpyl",downArrow:"Afpyl",insert:"Toevoeg",leftWindowKey:"Left Windows key",rightWindowKey:"Right Windows key",selectKey:"Select key",numpad0:"Nommerblok 0",numpad1:"Nommerblok 1", -numpad2:"Nommerblok 2",numpad3:"Nommerblok 3",numpad4:"Nommerblok 4",numpad5:"Nommerblok 5",numpad6:"Nommerblok 6",numpad7:"Nommerblok 7",numpad8:"Nommerblok 8",numpad9:"Nommerblok 9",multiply:"Maal",add:"Plus",subtract:"Minus",decimalPoint:"Desimaalepunt",divide:"Gedeeldeur",f1:"F1",f2:"F2",f3:"F3",f4:"F4",f5:"F5",f6:"F6",f7:"F7",f8:"F8",f9:"F9",f10:"F10",f11:"F11",f12:"F12",numLock:"Nommervergrendel",scrollLock:"Rolvergrendel",semiColon:"Kommapunt",equalSign:"Isgelykaan",comma:"Komma",dash:"Koppelteken", -period:"Punt",forwardSlash:"Skuinsstreep",graveAccent:"Aksentteken",openBracket:"Oopblokhakkie",backSlash:"Trustreep",closeBracket:"Toeblokhakkie",singleQuote:"Enkelaanhaalingsteken"}); \ No newline at end of file diff --git a/admin/plugins/ckeditor/plugins/a11yhelp/dialogs/lang/ar.js b/admin/plugins/ckeditor/plugins/a11yhelp/dialogs/lang/ar.js deleted file mode 100644 index 7326021..0000000 --- a/admin/plugins/ckeditor/plugins/a11yhelp/dialogs/lang/ar.js +++ /dev/null @@ -1,11 +0,0 @@ -/* - Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. - For licensing, see LICENSE.md or http://ckeditor.com/license -*/ -CKEDITOR.plugins.setLang("a11yhelp","ar",{title:"Accessibility Instructions",contents:"Help Contents. To close this dialog press ESC.",legend:[{name:"عام",items:[{name:"Editor Toolbar",legend:"Press ${toolbarFocus} to navigate to the toolbar. Move to the next and previous toolbar group with TAB and SHIFT+TAB. Move to the next and previous toolbar button with RIGHT ARROW or LEFT ARROW. Press SPACE or ENTER to activate the toolbar button."},{name:"Editor Dialog",legend:"Inside a dialog, press TAB to navigate to the next dialog element, press SHIFT+TAB to move to the previous dialog element, press ENTER to submit the dialog, press ESC to cancel the dialog. When a dialog has multiple tabs, the tab list can be reached either with ALT+F10 or with TAB as part of the dialog tabbing order. With tab list focused, move to the next and previous tab with RIGHT and LEFT ARROW, respectively."}, -{name:"Editor Context Menu",legend:"Press ${contextMenu} or APPLICATION KEY to open context-menu. Then move to next menu option with TAB or DOWN ARROW. Move to previous option with SHIFT+TAB or UP ARROW. Press SPACE or ENTER to select the menu option. Open sub-menu of current option with SPACE or ENTER or RIGHT ARROW. Go back to parent menu item with ESC or LEFT ARROW. Close context menu with ESC."},{name:"Editor List Box",legend:"Inside a list-box, move to next list item with TAB OR DOWN ARROW. Move to previous list item with SHIFT+TAB or UP ARROW. Press SPACE or ENTER to select the list option. Press ESC to close the list-box."}, -{name:"Editor Element Path Bar",legend:"Press ${elementsPathFocus} to navigate to the elements path bar. Move to next element button with TAB or RIGHT ARROW. Move to previous button with SHIFT+TAB or LEFT ARROW. Press SPACE or ENTER to select the element in editor."}]},{name:"Commands",items:[{name:" Undo command",legend:"Press ${undo}"},{name:" Redo command",legend:"Press ${redo}"},{name:" Bold command",legend:"Press ${bold}"},{name:" Italic command",legend:"Press ${italic}"},{name:" Underline command", -legend:"Press ${underline}"},{name:" Link command",legend:"Press ${link}"},{name:" Toolbar Collapse command",legend:"Press ${toolbarCollapse}"},{name:" Access previous focus space command",legend:"Press ${accessPreviousSpace} to access the closest unreachable focus space before the caret, for example: two adjacent HR elements. Repeat the key combination to reach distant focus spaces."},{name:" Access next focus space command",legend:"Press ${accessNextSpace} to access the closest unreachable focus space after the caret, for example: two adjacent HR elements. Repeat the key combination to reach distant focus spaces."}, -{name:" Accessibility Help",legend:"Press ${a11yHelp}"},{name:" Paste as plain text",legend:"Press ${pastetext}",legendEdge:"Press ${pastetext}, followed by ${paste}"}]}],tab:"Tab",pause:"Pause",capslock:"Caps Lock",escape:"Escape",pageUp:"Page Up",pageDown:"Page Down",leftArrow:"Left Arrow",upArrow:"Up Arrow",rightArrow:"Right Arrow",downArrow:"Down Arrow",insert:"Insert",leftWindowKey:"Left Windows key",rightWindowKey:"Right Windows key",selectKey:"Select key",numpad0:"Numpad 0",numpad1:"Numpad 1", -numpad2:"Numpad 2",numpad3:"Numpad 3",numpad4:"Numpad 4",numpad5:"Numpad 5",numpad6:"Numpad 6",numpad7:"Numpad 7",numpad8:"Numpad 8",numpad9:"Numpad 9",multiply:"Multiply",add:"إضافة",subtract:"Subtract",decimalPoint:"Decimal Point",divide:"تقسيم",f1:"F1",f2:"F2",f3:"F3",f4:"F4",f5:"F5",f6:"F6",f7:"F7",f8:"F8",f9:"F9",f10:"F10",f11:"F11",f12:"F12",numLock:"Num Lock",scrollLock:"Scroll Lock",semiColon:"Semicolon",equalSign:"Equal Sign",comma:"فاصلة",dash:"Dash",period:"نقطة",forwardSlash:"Forward Slash", -graveAccent:"Grave Accent",openBracket:"Open Bracket",backSlash:"Backslash",closeBracket:"Close Bracket",singleQuote:"Single Quote"}); \ No newline at end of file diff --git a/admin/plugins/ckeditor/plugins/a11yhelp/dialogs/lang/az.js b/admin/plugins/ckeditor/plugins/a11yhelp/dialogs/lang/az.js deleted file mode 100644 index 3298732..0000000 --- a/admin/plugins/ckeditor/plugins/a11yhelp/dialogs/lang/az.js +++ /dev/null @@ -1,11 +0,0 @@ -/* - Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. - For licensing, see LICENSE.md or http://ckeditor.com/license -*/ -CKEDITOR.plugins.setLang("a11yhelp","az",{title:"Əlillərə dəstək üzrə təlimat",contents:"Kömək. Pəncərəni bağlamaq üçün ESC basın.",legend:[{name:"Əsas",items:[{name:"Düzəliş edənin alətlər çubuğu",legend:"Panelə keçmək üçün ${toolbarFocus} basın. Növbəti panelə TAB, əvvəlki panelə isə SHIFT+TAB düyməsi vasitəsi ilə keçə bilərsiz. Paneldəki düymələr arasında sol və sağ ox düyməsi ilə keçid edə bilərsiz. Seçilmiş düyməsi SPACE və ya ENTER ilə işlədə bilərsiniz."},{name:"Redaktorun pəncərəsi",legend:"Pəncərə içində növbəti element seçmək üçün TAB düyməni basın, əvvəlki isə - SHIFT+TAB. Təsdiq edilməsi üçün ENTER, imtina edilməsi isə ESC diymələri istifadə edin. Pəncərədə bir neçə vərəq olanda olnarın siyahı ALT+F10 ilə aça bilərsiz. Vərəqlərin siyahı fokus altında olanda ox düymələr vasitəsi ilə onların arasında keçid edə bilərsiz."}, -{name:"Redaktorun seçimlərin menyusu",legend:"Seçimləri redaktə etmək üçün ${contextMenu} ya da APPLICATION KEY basın. Növbəti seçimə keçmək üçün TAB ya AŞAĞI OX düyməsini basın, əvvəlki isə - SHIFT+TAB ya YUXARI OX. Seçimi arımaq SPACE ya ENTER düymələri istifadə edin. Alt menyunu açmaq üçün SPACE, ENTER ya SAĞA OX basın. ESC ya SOLA OX ilə geriyə qayıda bilərsiz. Bütün menyunu ESC ilə bağlıyın."},{name:"Düzəliş edənin siyahı qutusu",legend:"Siyahı qutusu içində növbəti bənd seçmək üçün TAB ya AŞAĞI OX, əvvəlki isə SHIFT+TAB ya YUXARI OX basın. Seçimi arımaq SPACE ya ENTER düymələri istifadə edin. Siyahı qutusu ESC ilə bağlıyın."}, -{name:"Redaktor elementin cığır paneli",legend:"Elementin cığır paneli seçmək üçün ${elementsPathFocus} basın. Növbəti element seçmək üçün TAB ya SAĞA OX, əvvəlki isə SHIFT+TAB ya SOLA OX istifadə edin. Elementi arımaq SPACE ya ENTER düymələri mövcuddur."}]},{name:"Əmrlər",items:[{name:"Əmri geri qaytar",legend:"${undo} basın"},{name:"Geri əmri",legend:"${redo} basın"},{name:"Qalın əmri",legend:"${bold} basın"},{name:"Kursiv əmri",legend:"${italic} basın"},{name:"Altdan xətt əmri",legend:"${underline} basın"}, -{name:"Link əmri",legend:"${link} basın"},{name:"Paneli gizlət əmri",legend:"${toolbarCollapse} basın"},{name:"Əvvəlki fokus sahəsi seç əmrı",legend:"Kursordan əvvəl ən yaxın əlçatmaz yerə dəymək üçün ${accessPreviousSpace} basın, misal üçün: iki dal-badal HR teg. Uzaq yerlərə dəymək üçün bir neçə dəfə basın."},{name:"Növbəti fokus sahəsi seç əmrı",legend:"Kursordan sonra ən yaxın əlçatmaz yerə dəymək üçün ${accessNextSpace} basın, misal üçün: iki dal-badal HR teg. Uzaq yerlərə dəymək üçün bir neçə dəfə basın."}, -{name:"Hərtərəfli Kömək",legend:"${a11yHelp} basın"},{name:" Paste as plain text",legend:"Press ${pastetext}",legendEdge:"Press ${pastetext}, followed by ${paste}"}]}],tab:"Tab",pause:"Pause",capslock:"Caps Lock",escape:"Escape",pageUp:"Page Up",pageDown:"Page Down",leftArrow:"Sola ox işarəsi",upArrow:"Yuxarı ox işarəsi",rightArrow:"Sağa ox işarəsi",downArrow:"Aşağı ox işarəsi",insert:"Insert",leftWindowKey:"Soldaki Windows düyməsi",rightWindowKey:"Sağdaki Windows düyməsi",selectKey:"Düyməni seçin", -numpad0:"Numpad 0",numpad1:"Numpad 1",numpad2:"Numpad 2",numpad3:"Numpad 3",numpad4:"Numpad 4",numpad5:"Numpad 5",numpad6:"Numpad 6",numpad7:"Numpad 7",numpad8:"Numpad 8",numpad9:"Numpad 9",multiply:"Vurma",add:"Əlavə et",subtract:"Çıxma",decimalPoint:"Onluq kəsri tam ədəddən ayıran nöqtə",divide:"Bölüşdürmə",f1:"F1",f2:"F2",f3:"F3",f4:"F4",f5:"F5",f6:"F6",f7:"F7",f8:"F8",f9:"F9",f10:"F10",f11:"F11",f12:"F12",numLock:"Num Lock",scrollLock:"Scroll Lock",semiColon:"Nöqtəli verqül",equalSign:"Barəbərlik işarəsi", -comma:"Vergül",dash:"Defis",period:"Nöqtə",forwardSlash:"Çəp xətt",graveAccent:"Vurğu işarəsi",openBracket:"Açılan mötərizə",backSlash:"Tərs çəpəki xətt",closeBracket:"Bağlanan mötərizə",singleQuote:"Tək dırnaq"}); \ No newline at end of file diff --git a/admin/plugins/ckeditor/plugins/a11yhelp/dialogs/lang/bg.js b/admin/plugins/ckeditor/plugins/a11yhelp/dialogs/lang/bg.js deleted file mode 100644 index 6f5d044..0000000 --- a/admin/plugins/ckeditor/plugins/a11yhelp/dialogs/lang/bg.js +++ /dev/null @@ -1,11 +0,0 @@ -/* - Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. - For licensing, see LICENSE.md or http://ckeditor.com/license -*/ -CKEDITOR.plugins.setLang("a11yhelp","bg",{title:"Accessibility Instructions",contents:"Help Contents. To close this dialog press ESC.",legend:[{name:"Общо",items:[{name:"Editor Toolbar",legend:"Press ${toolbarFocus} to navigate to the toolbar. Move to the next and previous toolbar group with TAB and SHIFT+TAB. Move to the next and previous toolbar button with RIGHT ARROW or LEFT ARROW. Press SPACE or ENTER to activate the toolbar button."},{name:"Editor Dialog",legend:"Inside a dialog, press TAB to navigate to the next dialog element, press SHIFT+TAB to move to the previous dialog element, press ENTER to submit the dialog, press ESC to cancel the dialog. When a dialog has multiple tabs, the tab list can be reached either with ALT+F10 or with TAB as part of the dialog tabbing order. With tab list focused, move to the next and previous tab with RIGHT and LEFT ARROW, respectively."}, -{name:"Editor Context Menu",legend:"Press ${contextMenu} or APPLICATION KEY to open context-menu. Then move to next menu option with TAB or DOWN ARROW. Move to previous option with SHIFT+TAB or UP ARROW. Press SPACE or ENTER to select the menu option. Open sub-menu of current option with SPACE or ENTER or RIGHT ARROW. Go back to parent menu item with ESC or LEFT ARROW. Close context menu with ESC."},{name:"Editor List Box",legend:"Inside a list-box, move to next list item with TAB OR DOWN ARROW. Move to previous list item with SHIFT+TAB or UP ARROW. Press SPACE or ENTER to select the list option. Press ESC to close the list-box."}, -{name:"Editor Element Path Bar",legend:"Press ${elementsPathFocus} to navigate to the elements path bar. Move to next element button with TAB or RIGHT ARROW. Move to previous button with SHIFT+TAB or LEFT ARROW. Press SPACE or ENTER to select the element in editor."}]},{name:"Commands",items:[{name:" Undo command",legend:"Press ${undo}"},{name:" Redo command",legend:"Press ${redo}"},{name:" Bold command",legend:"Press ${bold}"},{name:" Italic command",legend:"Press ${italic}"},{name:" Underline command", -legend:"Press ${underline}"},{name:" Link command",legend:"Press ${link}"},{name:" Toolbar Collapse command",legend:"Press ${toolbarCollapse}"},{name:" Access previous focus space command",legend:"Press ${accessPreviousSpace} to access the closest unreachable focus space before the caret, for example: two adjacent HR elements. Repeat the key combination to reach distant focus spaces."},{name:" Access next focus space command",legend:"Press ${accessNextSpace} to access the closest unreachable focus space after the caret, for example: two adjacent HR elements. Repeat the key combination to reach distant focus spaces."}, -{name:" Accessibility Help",legend:"Press ${a11yHelp}"},{name:" Paste as plain text",legend:"Press ${pastetext}",legendEdge:"Press ${pastetext}, followed by ${paste}"}]}],tab:"Tab",pause:"Pause",capslock:"Caps Lock",escape:"Escape",pageUp:"Page Up",pageDown:"Page Down",leftArrow:"Left Arrow",upArrow:"Up Arrow",rightArrow:"Right Arrow",downArrow:"Down Arrow",insert:"Insert",leftWindowKey:"Left Windows key",rightWindowKey:"Right Windows key",selectKey:"Select key",numpad0:"Numpad 0",numpad1:"Numpad 1", -numpad2:"Numpad 2",numpad3:"Numpad 3",numpad4:"Numpad 4",numpad5:"Numpad 5",numpad6:"Numpad 6",numpad7:"Numpad 7",numpad8:"Numpad 8",numpad9:"Numpad 9",multiply:"Multiply",add:"Add",subtract:"Subtract",decimalPoint:"Decimal Point",divide:"Divide",f1:"F1",f2:"F2",f3:"F3",f4:"F4",f5:"F5",f6:"F6",f7:"F7",f8:"F8",f9:"F9",f10:"F10",f11:"F11",f12:"F12",numLock:"Num Lock",scrollLock:"Scroll Lock",semiColon:"Semicolon",equalSign:"Equal Sign",comma:"Comma",dash:"Dash",period:"Period",forwardSlash:"Forward Slash", -graveAccent:"Grave Accent",openBracket:"Open Bracket",backSlash:"Backslash",closeBracket:"Close Bracket",singleQuote:"Single Quote"}); \ No newline at end of file diff --git a/admin/plugins/ckeditor/plugins/a11yhelp/dialogs/lang/ca.js b/admin/plugins/ckeditor/plugins/a11yhelp/dialogs/lang/ca.js deleted file mode 100644 index d48552a..0000000 --- a/admin/plugins/ckeditor/plugins/a11yhelp/dialogs/lang/ca.js +++ /dev/null @@ -1,13 +0,0 @@ -/* - Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. - For licensing, see LICENSE.md or http://ckeditor.com/license -*/ -CKEDITOR.plugins.setLang("a11yhelp","ca",{title:"Instruccions d'Accessibilitat",contents:"Continguts de l'Ajuda. Per tancar aquest quadre de diàleg premi ESC.",legend:[{name:"General",items:[{name:"Editor de barra d'eines",legend:"Premi ${toolbarFocus} per desplaçar-se per la barra d'eines. Vagi en el següent i anterior grup de barra d'eines amb TAB i SHIFT+TAB. Vagi en el següent i anterior botó de la barra d'eines amb RIGHT ARROW i LEFT ARROW. Premi SPACE o ENTER per activar el botó de la barra d'eines."}, -{name:"Editor de quadre de diàleg",legend:"Dins d'un quadre de diàleg, premi la tecla TAB per desplaçar-se fins al següent element del quadre de diàleg, premi la tecla Shift + TAB per desplaçar-se a l'anterior element del quadre de diàleg, premi la tecla ENTER per confirmar el quadre de diàleg, premi la tecla ESC per cancel·lar el quadre de diàleg. Quan un quadre de diàleg té diverses pestanyes, la llista de pestanyes pot ser assolit ja sigui amb ALT + F10 o TAB, com a part de l'ordre de tabulació del quadre de diàleg. Amb la llista de pestanyes seleccionada, pot anar a la fitxa següent i anterior amb la tecla FLETXA DRETA i ESQUERRA, respectivament."}, -{name:"Editor de menú contextual",legend:"Premi ${contextMenu} o APPLICATION KEY per obrir el menú contextual. Després desplacis a la següent opció del menú amb TAB o DOWN ARROW. Desplacis a l'anterior opció amb SHIFT+TAB o UP ARROW. Premi SPACE o ENTER per seleccionar l'opció del menú. Obri el submenú de l'actual opció utilitzant SPACE o ENTER o RIGHT ARROW. Pot tornar a l'opció del menú pare amb ESC o LEFT ARROW. Tanqui el menú contextual amb ESC."},{name:"Editor de caixa de llista",legend:"Dins d'un quadre de llista, desplacis al següent element de la llista amb TAB o DOWN ARROW. Desplacis a l'anterior element de la llista amb SHIFT+TAB o UP ARROW. Premi SPACE o ENTER per seleccionar l'opció de la llista. Premi ESC per tancar el quadre de llista."}, -{name:"Editor de barra de ruta de l'element",legend:"Premi ${elementsPathFocus} per anar als elements de la barra de ruta. Desplacis al botó de l'element següent amb TAB o RIGHT ARROW. Desplacis a l'anterior botó amb SHIFT+TAB o LEFT ARROW. Premi SPACE o ENTER per seleccionar l'element a l'editor."}]},{name:"Ordres",items:[{name:"Desfer ordre",legend:"Premi ${undo}"},{name:"Refer ordre",legend:"Premi ${redo}"},{name:"Ordre negreta",legend:"Premi ${bold}"},{name:"Ordre cursiva",legend:"Premi ${italic}"}, -{name:"Ordre subratllat",legend:"Premi ${underline}"},{name:"Ordre enllaç",legend:"Premi ${link}"},{name:"Ordre amagar barra d'eines",legend:"Premi ${toolbarCollapse}"},{name:"Ordre per accedir a l'anterior espai enfocat",legend:"Premi ${accessPreviousSpace} per accedir a l'enfocament d'espai més proper inabastable abans del símbol d'intercalació, per exemple: dos elements HR adjacents. Repetiu la combinació de tecles per arribar a enfocaments d'espais distants."},{name:"Ordre per accedir al següent espai enfocat", -legend:"Premi ${accessNextSpace} per accedir a l'enfocament d'espai més proper inabastable després del símbol d'intercalació, per exemple: dos elements HR adjacents. Repetiu la combinació de tecles per arribar a enfocaments d'espais distants."},{name:"Ajuda d'accessibilitat",legend:"Premi ${a11yHelp}"},{name:" Paste as plain text",legend:"Press ${pastetext}",legendEdge:"Press ${pastetext}, followed by ${paste}"}]}],tab:"Tabulació",pause:"Pausa",capslock:"Bloqueig de majúscules",escape:"Escape",pageUp:"Pàgina Amunt", -pageDown:"Pàgina Avall",leftArrow:"Fletxa Esquerra",upArrow:"Fletxa Amunt",rightArrow:"Fletxa Dreta",downArrow:"Fletxa Avall",insert:"Inserir",leftWindowKey:"Tecla Windows Esquerra",rightWindowKey:"Tecla Windows Dreta",selectKey:"Tecla Seleccionar",numpad0:"Teclat Numèric 0",numpad1:"Teclat Numèric 1",numpad2:"Teclat Numèric 2",numpad3:"Teclat Numèric 3",numpad4:"Teclat Numèric 4",numpad5:"Teclat Numèric 5",numpad6:"Teclat Numèric 6",numpad7:"Teclat Numèric 7",numpad8:"Teclat Numèric 8",numpad9:"Teclat Numèric 9", -multiply:"Multiplicació",add:"Suma",subtract:"Resta",decimalPoint:"Punt Decimal",divide:"Divisió",f1:"F1",f2:"F2",f3:"F3",f4:"F4",f5:"F5",f6:"F6",f7:"F7",f8:"F8",f9:"F9",f10:"F10",f11:"F11",f12:"F12",numLock:"Bloqueig Teclat Numèric",scrollLock:"Bloqueig de Desplaçament",semiColon:"Punt i Coma",equalSign:"Símbol Igual",comma:"Coma",dash:"Guió",period:"Punt",forwardSlash:"Barra Diagonal",graveAccent:"Accent Obert",openBracket:"Claudàtor Obert",backSlash:"Barra Invertida",closeBracket:"Claudàtor Tancat", -singleQuote:"Cometa Simple"}); \ No newline at end of file diff --git a/admin/plugins/ckeditor/plugins/a11yhelp/dialogs/lang/cs.js b/admin/plugins/ckeditor/plugins/a11yhelp/dialogs/lang/cs.js deleted file mode 100644 index 3c4e595..0000000 --- a/admin/plugins/ckeditor/plugins/a11yhelp/dialogs/lang/cs.js +++ /dev/null @@ -1,12 +0,0 @@ -/* - Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. - For licensing, see LICENSE.md or http://ckeditor.com/license -*/ -CKEDITOR.plugins.setLang("a11yhelp","cs",{title:"Instrukce pro přístupnost",contents:"Obsah nápovědy. Pro uzavření tohoto dialogu stiskněte klávesu ESC.",legend:[{name:"Obecné",items:[{name:"Panel nástrojů editoru",legend:"Stiskněte${toolbarFocus} k procházení panelu nástrojů. Přejděte na další a předchozí skupiny pomocí TAB a SHIFT+TAB. Přechod na další a předchozí tlačítko panelu nástrojů je pomocí ŠIPKA VPRAVO nebo ŠIPKA VLEVO. Stisknutím mezerníku nebo klávesy ENTER tlačítko aktivujete."},{name:"Dialogové okno editoru", -legend:"Uvnitř dialogového okna stiskněte TAB pro přesunutí na další prvek okna, stiskněte SHIFT+TAB pro přesun na předchozí prvek okna, stiskněte ENTER pro odeslání dialogu, stiskněte ESC pro jeho zrušení. Pro dialogová okna, která mají mnoho karet stiskněte ALT+F10 pro zaměření seznamu karet, nebo TAB, pro posun podle pořadí karet.Při zaměření seznamu karet se můžete jimi posouvat pomocí ŠIPKY VPRAVO a VLEVO."},{name:"Kontextové menu editoru",legend:"Stiskněte ${contextMenu} nebo klávesu APPLICATION k otevření kontextového menu. Pak se přesuňte na další možnost menu pomocí TAB nebo ŠIPKY DOLŮ. Přesuňte se na předchozí možnost pomocí SHIFT+TAB nebo ŠIPKY NAHORU. Stiskněte MEZERNÍK nebo ENTER pro zvolení možnosti menu. Podmenu současné možnosti otevřete pomocí MEZERNÍKU nebo ENTER či ŠIPKY DOLEVA. Kontextové menu uzavřete stiskem ESC."}, -{name:"Rámeček seznamu editoru",legend:"Uvnitř rámečku seznamu se přesunete na další položku menu pomocí TAB nebo ŠIPKA DOLŮ. Na předchozí položku se přesunete SHIFT+TAB nebo ŠIPKA NAHORU. Stiskněte MEZERNÍK nebo ENTER pro zvolení možnosti seznamu. Stiskněte ESC pro uzavření seznamu."},{name:"Lišta cesty prvku v editoru",legend:"Stiskněte ${elementsPathFocus} pro procházení lišty cesty prvku. Na další tlačítko prvku se přesunete pomocí TAB nebo ŠIPKA VPRAVO. Na předchozí tlačítko se přesunete pomocí SHIFT+TAB nebo ŠIPKA VLEVO. Stiskněte MEZERNÍK nebo ENTER pro vybrání prvku v editoru."}]}, -{name:"Příkazy",items:[{name:" Příkaz Zpět",legend:"Stiskněte ${undo}"},{name:" Příkaz Znovu",legend:"Stiskněte ${redo}"},{name:" Příkaz Tučné",legend:"Stiskněte ${bold}"},{name:" Příkaz Kurzíva",legend:"Stiskněte ${italic}"},{name:" Příkaz Podtržení",legend:"Stiskněte ${underline}"},{name:" Příkaz Odkaz",legend:"Stiskněte ${link}"},{name:" Příkaz Skrýt panel nástrojů",legend:"Stiskněte ${toolbarCollapse}"},{name:"Příkaz pro přístup k předchozímu prostoru zaměření",legend:"Stiskněte ${accessPreviousSpace} pro přístup k nejbližšímu nedosažitelnému prostoru zaměření před stříškou, například: dva přilehlé prvky HR. Pro dosažení vzdálených prostorů zaměření tuto kombinaci kláves opakujte."}, -{name:"Příkaz pro přístup k dalšímu prostoru zaměření",legend:"Stiskněte ${accessNextSpace} pro přístup k nejbližšímu nedosažitelnému prostoru zaměření po stříšce, například: dva přilehlé prvky HR. Pro dosažení vzdálených prostorů zaměření tuto kombinaci kláves opakujte."},{name:" Nápověda přístupnosti",legend:"Stiskněte ${a11yHelp}"},{name:" Paste as plain text",legend:"Press ${pastetext}",legendEdge:"Press ${pastetext}, followed by ${paste}"}]}],tab:"Tabulátor",pause:"Pauza",capslock:"Caps lock", -escape:"Escape",pageUp:"Stránka nahoru",pageDown:"Stránka dolů",leftArrow:"Šipka vlevo",upArrow:"Šipka nahoru",rightArrow:"Šipka vpravo",downArrow:"Šipka dolů",insert:"Vložit",leftWindowKey:"Levá klávesa Windows",rightWindowKey:"Pravá klávesa Windows",selectKey:"Vyberte klávesu",numpad0:"Numerická klávesa 0",numpad1:"Numerická klávesa 1",numpad2:"Numerická klávesa 2",numpad3:"Numerická klávesa 3",numpad4:"Numerická klávesa 4",numpad5:"Numerická klávesa 5",numpad6:"Numerická klávesa 6",numpad7:"Numerická klávesa 7", -numpad8:"Numerická klávesa 8",numpad9:"Numerická klávesa 9",multiply:"Numerická klávesa násobení",add:"Přidat",subtract:"Numerická klávesa odečítání",decimalPoint:"Desetinná tečka",divide:"Numerická klávesa dělení",f1:"F1",f2:"F2",f3:"F3",f4:"F4",f5:"F5",f6:"F6",f7:"F7",f8:"F8",f9:"F9",f10:"F10",f11:"F11",f12:"F12",numLock:"Num lock",scrollLock:"Scroll lock",semiColon:"Středník",equalSign:"Rovnítko",comma:"Čárka",dash:"Pomlčka",period:"Tečka",forwardSlash:"Lomítko",graveAccent:"Přízvuk",openBracket:"Otevřená hranatá závorka", -backSlash:"Obrácené lomítko",closeBracket:"Uzavřená hranatá závorka",singleQuote:"Jednoduchá uvozovka"}); \ No newline at end of file diff --git a/admin/plugins/ckeditor/plugins/a11yhelp/dialogs/lang/cy.js b/admin/plugins/ckeditor/plugins/a11yhelp/dialogs/lang/cy.js deleted file mode 100644 index e89739a..0000000 --- a/admin/plugins/ckeditor/plugins/a11yhelp/dialogs/lang/cy.js +++ /dev/null @@ -1,11 +0,0 @@ -/* - Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. - For licensing, see LICENSE.md or http://ckeditor.com/license -*/ -CKEDITOR.plugins.setLang("a11yhelp","cy",{title:"Canllawiau Hygyrchedd",contents:"Cynnwys Cymorth. I gau y deialog hwn, pwyswch ESC.",legend:[{name:"Cyffredinol",items:[{name:"Bar Offer y Golygydd",legend:"Pwyswch $ {toolbarFocus} i fynd at y bar offer. Symudwch i'r grŵp bar offer nesaf a blaenorol gyda TAB a SHIFT+TAB. Symudwch i'r botwm bar offer nesaf a blaenorol gyda SAETH DDE neu SAETH CHWITH. Pwyswch SPACE neu ENTER i wneud botwm y bar offer yn weithredol."},{name:"Deialog y Golygydd",legend:"Inside a dialog, press TAB to navigate to the next dialog element, press SHIFT+TAB to move to the previous dialog element, press ENTER to submit the dialog, press ESC to cancel the dialog. When a dialog has multiple tabs, the tab list can be reached either with ALT+F10 or with TAB as part of the dialog tabbing order. With tab list focused, move to the next and previous tab with RIGHT and LEFT ARROW, respectively."}, -{name:"Dewislen Cyd-destun y Golygydd",legend:"Pwyswch $ {contextMenu} neu'r ALLWEDD 'APPLICATION' i agor y ddewislen cyd-destun. Yna symudwch i'r opsiwn ddewislen nesaf gyda'r TAB neu'r SAETH I LAWR. Symudwch i'r opsiwn blaenorol gyda SHIFT+TAB neu'r SAETH I FYNY. Pwyswch SPACE neu ENTER i ddewis yr opsiwn ddewislen. Agorwch is-dewislen yr opsiwn cyfredol gyda SPACE neu ENTER neu SAETH DDE. Ewch yn ôl i'r eitem ar y ddewislen uwch gydag ESC neu SAETH CHWITH. Ceuwch y ddewislen cyd-destun gydag ESC."}, -{name:"Blwch Rhestr y Golygydd",legend:"Tu mewn y blwch rhestr, ewch i'r eitem rhestr nesaf gyda TAB neu'r SAETH I LAWR. Symudwch i restr eitem flaenorol gyda SHIFT+TAB neu SAETH I FYNY. Pwyswch SPACE neu ENTER i ddewis yr opsiwn o'r rhestr. Pwyswch ESC i gau'r rhestr."},{name:"Bar Llwybr Elfen y Golygydd",legend:"Pwyswch ${elementsPathFocus} i fynd i'r bar llwybr elfennau. Symudwch i fotwm yr elfen nesaf gyda TAB neu SAETH DDE. Symudwch i fotwm blaenorol gyda SHIFT+TAB neu SAETH CHWITH. Pwyswch SPACE neu ENTER i ddewis yr elfen yn y golygydd."}]}, -{name:"Gorchmynion",items:[{name:"Gorchymyn dadwneud",legend:"Pwyswch ${undo}"},{name:"Gorchymyn ailadrodd",legend:"Pwyswch ${redo}"},{name:"Gorchymyn Bras",legend:"Pwyswch ${bold}"},{name:"Gorchymyn italig",legend:"Pwyswch ${italig}"},{name:"Gorchymyn tanlinellu",legend:"Pwyso ${underline}"},{name:"Gorchymyn dolen",legend:"Pwyswch ${link}"},{name:"Gorchymyn Cwympo'r Dewislen",legend:"Pwyswch ${toolbarCollapse}"},{name:"Myned i orchymyn bwlch ffocws blaenorol",legend:"Pwyswch ${accessPreviousSpace} i fyned i'r \"blwch ffocws sydd methu ei gyrraedd\" cyn y caret, er enghraifft: dwy elfen HR drws nesaf i'w gilydd. AIladroddwch y cyfuniad allwedd i gyrraedd bylchau ffocws pell."}, -{name:"Ewch i'r gorchymyn blwch ffocws nesaf",legend:"Pwyswch ${accessNextSpace} i fyned i'r blwch ffocws agosaf nad oes modd ei gyrraedd ar ôl y caret, er enghraifft: dwy elfen HR drws nesaf i'w gilydd. Ailadroddwch y cyfuniad allwedd i gyrraedd blychau ffocws pell."},{name:"Cymorth Hygyrchedd",legend:"Pwyswch ${a11yHelp}"},{name:" Paste as plain text",legend:"Press ${pastetext}",legendEdge:"Press ${pastetext}, followed by ${paste}"}]}],tab:"Tab",pause:"Pause",capslock:"Caps Lock",escape:"Escape", -pageUp:"Page Up",pageDown:"Page Down",leftArrow:"Left Arrow",upArrow:"Up Arrow",rightArrow:"Right Arrow",downArrow:"Down Arrow",insert:"Insert",leftWindowKey:"Left Windows key",rightWindowKey:"Right Windows key",selectKey:"Select key",numpad0:"Numpad 0",numpad1:"Numpad 1",numpad2:"Numpad 2",numpad3:"Numpad 3",numpad4:"Numpad 4",numpad5:"Numpad 5",numpad6:"Numpad 6",numpad7:"Numpad 7",numpad8:"Numpad 8",numpad9:"Numpad 9",multiply:"Multiply",add:"Add",subtract:"Subtract",decimalPoint:"Decimal Point", -divide:"Divide",f1:"F1",f2:"F2",f3:"F3",f4:"F4",f5:"F5",f6:"F6",f7:"F7",f8:"F8",f9:"F9",f10:"F10",f11:"F11",f12:"F12",numLock:"Num Lock",scrollLock:"Scroll Lock",semiColon:"Semicolon",equalSign:"Equal Sign",comma:"Comma",dash:"Dash",period:"Period",forwardSlash:"Forward Slash",graveAccent:"Grave Accent",openBracket:"Open Bracket",backSlash:"Backslash",closeBracket:"Close Bracket",singleQuote:"Single Quote"}); \ No newline at end of file diff --git a/admin/plugins/ckeditor/plugins/a11yhelp/dialogs/lang/da.js b/admin/plugins/ckeditor/plugins/a11yhelp/dialogs/lang/da.js deleted file mode 100644 index 6b5107b..0000000 --- a/admin/plugins/ckeditor/plugins/a11yhelp/dialogs/lang/da.js +++ /dev/null @@ -1,11 +0,0 @@ -/* - Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. - For licensing, see LICENSE.md or http://ckeditor.com/license -*/ -CKEDITOR.plugins.setLang("a11yhelp","da",{title:"Tilgængelighedsinstrukser",contents:"Onlinehjælp. For at lukke dette vindue klik ESC",legend:[{name:"Generelt",items:[{name:"Editor værktøjslinje",legend:"Tryk ${toolbarFocus} for at navigere til værktøjslinjen. Flyt til næste eller forrige værktøjsline gruppe ved hjælp af TAB eller SHIFT+TAB. Flyt til næste eller forrige værktøjslinje knap med venstre- eller højre piltast. Tryk på SPACE eller ENTER for at aktivere værktøjslinje knappen."},{name:"Editor dialogboks", -legend:"Inde i en dialogboks kan du, trykke på TAB for at navigere til næste element, trykke på SHIFT+TAB for at navigere til forrige element, trykke på ENTER for at afsende eller trykke på ESC for at lukke dialogboksen.\r\nNår en dialogboks har flere faner, fanelisten kan tilgås med ALT+F10 eller med TAB. Hvis fanelisten er i fokus kan du skifte til næste eller forrige tab, med højre- og venstre piltast."},{name:"Redaktør kontekstmenu",legend:"Tryk ${contextMenu} eller APPLICATION KEY for at åbne kontekstmenuen. Flyt derefter til næste menuvalg med TAB eller PIL NED. Flyt til forrige valg med SHIFT+TAB eller PIL OP. Tryk MELLEMRUM eller RETUR for at vælge menu-muligheder. Åben under-menu af aktuelle valg med MELLEMRUM eller RETUR eller HØJRE PIL. Gå tilbage til overliggende menu-emne med ESC eller VENSTRE PIL. Luk kontekstmenu med ESC."}, -{name:"Redaktør listeboks",legend:"Flyt til næste emne med TAB eller PIL NED inde i en listeboks. Flyt til forrige listeemne med SHIFT+TAB eller PIL OP. Tryk MELLEMRUM eller RETUR for at vælge liste-muligheder. Tryk ESC for at lukke liste-boksen."},{name:"Redaktør elementsti-bar",legend:"Tryk ${elementsPathFocus} for at navigere til elementernes sti-bar. Flyt til næste element-knap med TAB eller HØJRE PIL. Flyt til forrige knap med SHIFT+TAB eller VENSTRE PIL. Klik MELLEMRUM eller RETUR for at vælge element i editoren."}]}, -{name:"Kommandoer",items:[{name:"Fortryd kommando",legend:"Klik på ${undo}"},{name:"Gentag kommando",legend:"Klik ${redo}"},{name:"Fed kommando",legend:"Klik ${bold}"},{name:"Kursiv kommando",legend:"Klik ${italic}"},{name:"Understregnings kommando",legend:"Klik ${underline}"},{name:"Link kommando",legend:"Klik ${link}"},{name:"Klap værktøjslinje sammen kommando ",legend:"Klik ${toolbarCollapse}"},{name:"Adgang til forrige fokusområde kommando",legend:"Press ${accessPreviousSpace} to access the closest unreachable focus space before the caret, for example: two adjacent HR elements. Repeat the key combination to reach distant focus spaces."}, -{name:" Access next focus space command",legend:"Press ${accessNextSpace} to access the closest unreachable focus space after the caret, for example: two adjacent HR elements. Repeat the key combination to reach distant focus spaces."},{name:"Tilgængelighedshjælp",legend:"Kilk ${a11yHelp}"},{name:" Paste as plain text",legend:"Press ${pastetext}",legendEdge:"Press ${pastetext}, followed by ${paste}"}]}],tab:"Tab",pause:"Pause",capslock:"Caps Lock",escape:"Escape",pageUp:"Page Up",pageDown:"Page Down", -leftArrow:"Venstre pil",upArrow:"Pil op",rightArrow:"Højre pil",downArrow:"Pil ned",insert:"Insert",leftWindowKey:"Venstre Windows tast",rightWindowKey:"Højre Windows tast",selectKey:"Select-knap",numpad0:"Numpad 0",numpad1:"Numpad 1",numpad2:"Numpad 2",numpad3:"Numpad 3",numpad4:"Numpad 4",numpad5:"Numpad 5",numpad6:"Numpad 6",numpad7:"Numpad 7",numpad8:"Numpad 8",numpad9:"Numpad 9",multiply:"Gange",add:"Plus",subtract:"Minus",decimalPoint:"Komma",divide:"Divider",f1:"F1",f2:"F2",f3:"F3",f4:"F4", -f5:"F5",f6:"F6",f7:"F7",f8:"F8",f9:"F9",f10:"F10",f11:"F11",f12:"F12",numLock:"Num Lock",scrollLock:"Scroll Lock",semiColon:"Semikolon",equalSign:"Lighedstegn",comma:"Komma",dash:"Bindestreg",period:"Punktum",forwardSlash:"Skråstreg",graveAccent:"Accent grave",openBracket:"Start klamme",backSlash:"Omvendt skråstreg",closeBracket:"Slut klamme",singleQuote:"Enkelt citationstegn"}); \ No newline at end of file diff --git a/admin/plugins/ckeditor/plugins/a11yhelp/dialogs/lang/de-ch.js b/admin/plugins/ckeditor/plugins/a11yhelp/dialogs/lang/de-ch.js deleted file mode 100644 index d4f5e49..0000000 --- a/admin/plugins/ckeditor/plugins/a11yhelp/dialogs/lang/de-ch.js +++ /dev/null @@ -1,12 +0,0 @@ -/* - Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. - For licensing, see LICENSE.md or http://ckeditor.com/license -*/ -CKEDITOR.plugins.setLang("a11yhelp","de-ch",{title:"Barrierefreiheitinformationen",contents:"Hilfeinhalt. Um den Dialog zu schliessen die Taste ESC drücken.",legend:[{name:"Allgemein",items:[{name:"Editorwerkzeugleiste",legend:"Drücken Sie ${toolbarFocus} auf der Symbolleiste. Gehen Sie zur nächsten oder vorherigen Symbolleistengruppe mit TAB und SHIFT+TAB. Gehen Sie zur nächsten oder vorherigen Symbolleiste auf die Schaltfläche mit dem RECHTS- oder LINKS-Pfeil. Drücken Sie die Leertaste oder Eingabetaste, um die Schaltfläche in der Symbolleiste aktivieren."}, -{name:"Editordialog",legend:"Inside a dialog, press TAB to navigate to the next dialog element, press SHIFT+TAB to move to the previous dialog element, press ENTER to submit the dialog, press ESC to cancel the dialog. When a dialog has multiple tabs, the tab list can be reached either with ALT+F10 or with TAB as part of the dialog tabbing order. With tab list focused, move to the next and previous tab with RIGHT and LEFT ARROW, respectively."},{name:"Editor-Kontextmenü",legend:"Dürcken Sie ${contextMenu} oder die Anwendungstaste um das Kontextmenü zu öffnen. Man kann die Pfeiltasten zum Wechsel benutzen. Mit der Leertaste oder der Enter-Taste kann man den Menüpunkt aufrufen. Schliessen Sie das Kontextmenü mit der ESC-Taste."}, -{name:"Editor-Listenbox",legend:"Innerhalb einer Listenbox kann man mit der TAB-Taste oder den Pfeilrunter-Taste den nächsten Menüeintrag wählen. Mit der SHIFT+TAB Tastenkombination oder der Pfeilhoch-Taste gelangt man zum vorherigen Menüpunkt. Mit der Leertaste oder Enter kann man den Menüpunkt auswählen. Drücken Sie ESC zum Verlassen des Menüs."},{name:"Editor-Elementpfadleiste",legend:"Drücken Sie ${elementsPathFocus} um sich durch die Pfadleiste zu bewegen. Um zum nächsten Element zu gelangen drücken Sie TAB oder die Pfeilrechts-Taste. Zum vorherigen Element gelangen Sie mit der SHIFT+TAB oder der Pfeillinks-Taste. Drücken Sie die Leertaste oder Enter um das Element auszuwählen."}]}, -{name:"Befehle",items:[{name:"Rückgängig-Befehl",legend:"Drücken Sie ${undo}"},{name:"Wiederherstellen-Befehl",legend:"Drücken Sie ${redo}"},{name:"Fettschrift-Befehl",legend:"Drücken Sie ${bold}"},{name:"Kursiv-Befehl",legend:"Drücken Sie ${italic}"},{name:"Unterstreichen-Befehl",legend:"Drücken Sie ${underline}"},{name:"Link-Befehl",legend:"Drücken Sie ${link}"},{name:"Werkzeugleiste einklappen-Befehl",legend:"Drücken Sie ${toolbarCollapse}"},{name:"Zugang bisheriger Fokussierung Raumbefehl ",legend:"Drücken Sie ${accessPreviousSpace} auf den am nächsten nicht erreichbar Fokus-Abstand vor die Einfügemarke zugreifen: zwei benachbarte HR-Elemente. Wiederholen Sie die Tastenkombination um entfernte Fokusräume zu erreichen. "}, -{name:"Zugang nächster Schwerpunkt Raumbefehl ",legend:"Drücken Sie $ { accessNextSpace }, um den nächsten unerreichbar Fokus Leerzeichen nach dem Cursor zum Beispiel auf: zwei benachbarten HR Elemente. Wiederholen Sie die Tastenkombination zum fernen Fokus Bereiche zu erreichen. "},{name:"Eingabehilfen",legend:"Drücken Sie ${a11yHelp}"},{name:" Paste as plain text",legend:"Press ${pastetext}",legendEdge:"Press ${pastetext}, followed by ${paste}"}]}],tab:"Tab",pause:"Pause",capslock:"Feststell",escape:"Escape", -pageUp:"Bild auf",pageDown:"Bild ab",leftArrow:"Linke Pfeiltaste",upArrow:"Obere Pfeiltaste",rightArrow:"Rechte Pfeiltaste",downArrow:"Untere Pfeiltaste",insert:"Einfügen",leftWindowKey:"Linke Windowstaste",rightWindowKey:"Rechte Windowstaste",selectKey:"Taste auswählen",numpad0:"Ziffernblock 0",numpad1:"Ziffernblock 1",numpad2:"Ziffernblock 2",numpad3:"Ziffernblock 3",numpad4:"Ziffernblock 4",numpad5:"Ziffernblock 5",numpad6:"Ziffernblock 6",numpad7:"Ziffernblock 7",numpad8:"Ziffernblock 8",numpad9:"Ziffernblock 9", -multiply:"Multiplizieren",add:"Addieren",subtract:"Subtrahieren",decimalPoint:"Punkt",divide:"Dividieren",f1:"F1",f2:"F2",f3:"F3",f4:"F4",f5:"F5",f6:"F6",f7:"F7",f8:"F8",f9:"F9",f10:"F10",f11:"F11",f12:"F12",numLock:"Ziffernblock feststellen",scrollLock:"Rollen",semiColon:"Semikolon",equalSign:"Gleichheitszeichen",comma:"Komma",dash:"Bindestrich",period:"Punkt",forwardSlash:"Schrägstrich",graveAccent:"Gravis",openBracket:"Öffnende eckige Klammer",backSlash:"Rückwärtsgewandter Schrägstrich",closeBracket:"Schliessende eckige Klammer", -singleQuote:"Einfaches Anführungszeichen"}); \ No newline at end of file diff --git a/admin/plugins/ckeditor/plugins/a11yhelp/dialogs/lang/de.js b/admin/plugins/ckeditor/plugins/a11yhelp/dialogs/lang/de.js deleted file mode 100644 index 66891fc..0000000 --- a/admin/plugins/ckeditor/plugins/a11yhelp/dialogs/lang/de.js +++ /dev/null @@ -1,13 +0,0 @@ -/* - Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. - For licensing, see LICENSE.md or http://ckeditor.com/license -*/ -CKEDITOR.plugins.setLang("a11yhelp","de",{title:"Barrierefreiheitinformationen",contents:"Hilfeinhalt. Um den Dialog zu schliessen die Taste ESC drücken.",legend:[{name:"Allgemein",items:[{name:"Editorwerkzeugleiste",legend:"Drücken Sie ${toolbarFocus} auf der Symbolleiste. Gehen Sie zur nächsten oder vorherigen Symbolleistengruppe mit TAB und SHIFT+TAB. Gehen Sie zur nächsten oder vorherigen Symbolleiste auf die Schaltfläche mit dem RECHTS- oder LINKS-Pfeil. Drücken Sie die Leertaste oder Eingabetaste, um die Schaltfläche in der Symbolleiste aktivieren."}, -{name:"Editordialog",legend:"Drücke innerhalb eines Dialogs TAB, um zum nächsten Element zu springen. Drücke SHIFT+TAB, um zum vorigen Element zu springen, drücke ENTER um das Formular im Dialog abzusenden, drücke ESC, um den Dialog zu schließen. Hat der Dialog mehrere Tabs, dann kannst du durch ALT+F10 die Tab-Liste aufrufen or mittels TAB als Teil der Dialog-Tab-Reihenfolge. Ist die Tab-Liste fokussiert, dann mithilfe der Pfeiltasten (LINKS und RECHTS) zwischen den Tabs gewechselt werden."},{name:"Editor-Kontextmenü", -legend:"Dürcken Sie ${contextMenu} oder die Anwendungstaste um das Kontextmenü zu öffnen. Man kann die Pfeiltasten zum Wechsel benutzen. Mit der Leertaste oder der Enter-Taste kann man den Menüpunkt aufrufen. Schliessen Sie das Kontextmenü mit der ESC-Taste."},{name:"Editor-Listenbox",legend:"Innerhalb einer Listenbox kann man mit der TAB-Taste oder den Pfeilrunter-Taste den nächsten Menüeintrag wählen. Mit der SHIFT+TAB Tastenkombination oder der Pfeilhoch-Taste gelangt man zum vorherigen Menüpunkt. Mit der Leertaste oder Enter kann man den Menüpunkt auswählen. Drücken Sie ESC zum Verlassen des Menüs."}, -{name:"Editor-Elementpfadleiste",legend:"Drücken Sie ${elementsPathFocus} um sich durch die Pfadleiste zu bewegen. Um zum nächsten Element zu gelangen drücken Sie TAB oder die Pfeilrechts-Taste. Zum vorherigen Element gelangen Sie mit der SHIFT+TAB oder der Pfeillinks-Taste. Drücken Sie die Leertaste oder Enter um das Element auszuwählen."}]},{name:"Befehle",items:[{name:"Rückgängig-Befehl",legend:"Drücken Sie ${undo}"},{name:"Wiederherstellen-Befehl",legend:"Drücken Sie ${redo}"},{name:"Fettschrift-Befehl", -legend:"Drücken Sie ${bold}"},{name:"Kursiv-Befehl",legend:"Drücken Sie ${italic}"},{name:"Unterstreichen-Befehl",legend:"Drücken Sie ${underline}"},{name:"Link-Befehl",legend:"Drücken Sie ${link}"},{name:"Werkzeugleiste einklappen-Befehl",legend:"Drücken Sie ${toolbarCollapse}"},{name:"Zugang bisheriger Fokussierung Raumbefehl ",legend:"Drücken Sie ${accessPreviousSpace} auf den am nächsten nicht erreichbar Fokus-Abstand vor die Einfügemarke zugreifen: zwei benachbarte HR-Elemente. Wiederholen Sie die Tastenkombination um entfernte Fokusräume zu erreichen. "}, -{name:"Zugang nächster Schwerpunkt Raumbefehl ",legend:"Drücken Sie $ { accessNextSpace }, um den nächsten unerreichbar Fokus Leerzeichen nach dem Cursor zum Beispiel auf: zwei benachbarten HR Elemente. Wiederholen Sie die Tastenkombination zum fernen Fokus Bereiche zu erreichen. "},{name:"Eingabehilfen",legend:"Drücken Sie ${a11yHelp}"},{name:"Einfügen als unformatierter Text. ",legend:"Drücke ${pastetext}",legendEdge:"Drücke ${pastetext} und anschließend ${paste}"}]}],tab:"Tab",pause:"Pause",capslock:"Feststell", -escape:"Escape",pageUp:"Bild auf",pageDown:"Bild ab",leftArrow:"Linke Pfeiltaste",upArrow:"Obere Pfeiltaste",rightArrow:"Rechte Pfeiltaste",downArrow:"Untere Pfeiltaste",insert:"Einfügen",leftWindowKey:"Linke Windowstaste",rightWindowKey:"Rechte Windowstaste",selectKey:"Taste auswählen",numpad0:"Ziffernblock 0",numpad1:"Ziffernblock 1",numpad2:"Ziffernblock 2",numpad3:"Ziffernblock 3",numpad4:"Ziffernblock 4",numpad5:"Ziffernblock 5",numpad6:"Ziffernblock 6",numpad7:"Ziffernblock 7",numpad8:"Ziffernblock 8", -numpad9:"Ziffernblock 9",multiply:"Multiplizieren",add:"Addieren",subtract:"Subtrahieren",decimalPoint:"Punkt",divide:"Dividieren",f1:"F1",f2:"F2",f3:"F3",f4:"F4",f5:"F5",f6:"F6",f7:"F7",f8:"F8",f9:"F9",f10:"F10",f11:"F11",f12:"F12",numLock:"Ziffernblock feststellen",scrollLock:"Rollen",semiColon:"Semikolon",equalSign:"Gleichheitszeichen",comma:"Komma",dash:"Bindestrich",period:"Punkt",forwardSlash:"Schrägstrich",graveAccent:"Gravis",openBracket:"Öffnende eckige Klammer",backSlash:"Rückwärtsgewandter Schrägstrich", -closeBracket:"Schließende eckige Klammer",singleQuote:"Einfaches Anführungszeichen"}); \ No newline at end of file diff --git a/admin/plugins/ckeditor/plugins/a11yhelp/dialogs/lang/el.js b/admin/plugins/ckeditor/plugins/a11yhelp/dialogs/lang/el.js deleted file mode 100644 index 9eeb0b6..0000000 --- a/admin/plugins/ckeditor/plugins/a11yhelp/dialogs/lang/el.js +++ /dev/null @@ -1,12 +0,0 @@ -/* - Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. - For licensing, see LICENSE.md or http://ckeditor.com/license -*/ -CKEDITOR.plugins.setLang("a11yhelp","el",{title:"Οδηγίες Προσβασιμότητας",contents:"Περιεχόμενα Βοήθειας. Πατήστε ESC για κλείσιμο.",legend:[{name:"Γενικά",items:[{name:"Εργαλειοθήκη Επεξεργαστή",legend:"Πατήστε ${toolbarFocus} για να περιηγηθείτε στην γραμμή εργαλείων. Μετακινηθείτε ανάμεσα στις ομάδες της γραμμής εργαλείων με TAB και SHIFT+TAB. Μετακινηθείτε ανάμεσα στα κουμπιά εργαλείων με το ΔΕΞΙ ή ΑΡΙΣΤΕΡΟ ΒΕΛΑΚΙ. Πατήστε ΔΙΑΣΤΗΜΑ ή ENTER για να ενεργοποιήσετε το ενεργό κουμπί εργαλείου."},{name:"Παράθυρο Διαλόγου Επεξεργαστή", -legend:"Inside a dialog, press TAB to navigate to the next dialog element, press SHIFT+TAB to move to the previous dialog element, press ENTER to submit the dialog, press ESC to cancel the dialog. When a dialog has multiple tabs, the tab list can be reached either with ALT+F10 or with TAB as part of the dialog tabbing order. With tab list focused, move to the next and previous tab with RIGHT and LEFT ARROW, respectively."},{name:"Αναδυόμενο Μενού Επεξεργαστή",legend:"Πατήστε ${contextMenu} ή APPLICATION KEY για να ανοίξετε το αναδυόμενο μενού. Μετά μετακινηθείτε στην επόμενη επιλογή του μενού με TAB ή ΚΑΤΩ ΒΕΛΑΚΙ. Μετακινηθείτε στην προηγούμενη επιλογή με SHIFT+TAB ή το ΠΑΝΩ ΒΕΛΑΚΙ. Πατήστε ΔΙΑΣΤΗΜΑ ή ENTER για να επιλέξτε το τρέχων στοιχείο. Ανοίξτε το αναδυόμενο μενού της τρέχουσας επιλογής με ΔΙΑΣΤΗΜΑ ή ENTER ή το ΔΕΞΙ ΒΕΛΑΚΙ. Μεταβείτε πίσω στο αρχικό στοιχείο μενού με το ESC ή το ΑΡΙΣΤΕΡΟ ΒΕΛΑΚΙ. Κλείστε το αναδυόμενο μενού με ESC."}, -{name:"Κουτί Λίστας Επεξεργαστών",legend:"Μέσα σε ένα κουτί λίστας, μετακινηθείτε στο επόμενο στοιχείο με TAB ή ΚΑΤΩ ΒΕΛΑΚΙ. Μετακινηθείτε στο προηγούμενο στοιχείο με SHIFT+TAB ή το ΠΑΝΩ ΒΕΛΑΚΙ. Πατήστε ΔΙΑΣΤΗΜΑ ή ENTER για να επιλέξετε ένα στοιχείο. Πατήστε ESC για να κλείσετε το κουτί της λίστας."},{name:"Μπάρα Διαδρομών Στοιχείων Επεξεργαστή",legend:"Πατήστε ${elementsPathFocus} για να περιηγηθείτε στην μπάρα διαδρομών στοιχείων του επεξεργαστή. Μετακινηθείτε στο κουμπί του επόμενου στοιχείου με το TAB ή το ΔΕΞΙ ΒΕΛΑΚΙ. Μετακινηθείτε στο κουμπί του προηγούμενου στοιχείου με το SHIFT+TAB ή το ΑΡΙΣΤΕΡΟ ΒΕΛΑΚΙ. Πατήστε ΔΙΑΣΤΗΜΑ ή ENTER για να επιλέξετε το στοιχείο στον επεξεργαστή."}]}, -{name:"Εντολές",items:[{name:"Εντολή αναίρεσης",legend:"Πατήστε ${undo}"},{name:"Εντολή επανάληψης",legend:"Πατήστε ${redo}"},{name:"Εντολή έντονης γραφής",legend:"Πατήστε ${bold}"},{name:"Εντολή πλάγιας γραφής",legend:"Πατήστε ${italic}"},{name:"Εντολή υπογράμμισης",legend:"Πατήστε ${underline}"},{name:"Εντολή συνδέσμου",legend:"Πατήστε ${link}"},{name:"Εντολή Σύμπτηξης Εργαλειοθήκης",legend:"Πατήστε ${toolbarCollapse}"},{name:"Πρόσβαση στην προηγούμενη εντολή του χώρου εστίασης ",legend:"Πατήστε ${accessPreviousSpace} για να έχετε πρόσβαση στον πιο κοντινό χώρο εστίασης πριν το δρομέα, για παράδειγμα: δύο παρακείμενα στοιχεία ΥΕ. Επαναλάβετε το συνδυασμό πλήκτρων για να φθάσετε στους χώρους μακρινής εστίασης. "}, -{name:"Πρόσβαση στην επόμενη εντολή του χώρου εστίασης",legend:"Πατήστε ${accessNextSpace} για να έχετε πρόσβαση στον πιο κοντινό χώρο εστίασης μετά το δρομέα, για παράδειγμα: δύο παρακείμενα στοιχεία ΥΕ. Επαναλάβετε το συνδυασμό πλήκτρων για τους χώρους μακρινής εστίασης. "},{name:"Βοήθεια Προσβασιμότητας",legend:"Πατήστε ${a11yHelp}"},{name:" Paste as plain text",legend:"Press ${pastetext}",legendEdge:"Press ${pastetext}, followed by ${paste}"}]}],tab:"Tab",pause:"Pause",capslock:"Caps Lock",escape:"Escape", -pageUp:"Page Up",pageDown:"Page Down",leftArrow:"Αριστερό Βέλος",upArrow:"Πάνω Βέλος",rightArrow:"Δεξί Βέλος",downArrow:"Κάτω Βέλος",insert:"Insert ",leftWindowKey:"Αριστερό Πλήκτρο Windows",rightWindowKey:"Δεξί Πλήκτρο Windows",selectKey:"Πλήκτρο Select",numpad0:"Αριθμητικό πληκτρολόγιο 0",numpad1:"Αριθμητικό Πληκτρολόγιο 1",numpad2:"Αριθμητικό πληκτρολόγιο 2",numpad3:"Αριθμητικό πληκτρολόγιο 3",numpad4:"Αριθμητικό πληκτρολόγιο 4",numpad5:"Αριθμητικό πληκτρολόγιο 5",numpad6:"Αριθμητικό πληκτρολόγιο 6", -numpad7:"Αριθμητικό πληκτρολόγιο 7",numpad8:"Αριθμητικό πληκτρολόγιο 8",numpad9:"Αριθμητικό πληκτρολόγιο 9",multiply:"Πολλαπλασιασμός",add:"Πρόσθεση",subtract:"Αφαίρεση",decimalPoint:"Υποδιαστολή",divide:"Διαίρεση",f1:"F1",f2:"F2",f3:"F3",f4:"F4",f5:"F5",f6:"6",f7:"7",f8:"F8",f9:"F9",f10:"F10",f11:"F11",f12:"F12",numLock:"Num Lock",scrollLock:"Scroll Lock",semiColon:"Ερωτηματικό",equalSign:"Σύμβολο Ισότητας",comma:"Κόμμα",dash:"Παύλα",period:"Τελεία",forwardSlash:"Κάθετος",graveAccent:"Βαρεία",openBracket:"Άνοιγμα Παρένθεσης", -backSlash:"Ανάστροφη Κάθετος",closeBracket:"Κλείσιμο Παρένθεσης",singleQuote:"Απόστροφος"}); \ No newline at end of file diff --git a/admin/plugins/ckeditor/plugins/a11yhelp/dialogs/lang/en-gb.js b/admin/plugins/ckeditor/plugins/a11yhelp/dialogs/lang/en-gb.js deleted file mode 100644 index 9b0b32d..0000000 --- a/admin/plugins/ckeditor/plugins/a11yhelp/dialogs/lang/en-gb.js +++ /dev/null @@ -1,11 +0,0 @@ -/* - Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. - For licensing, see LICENSE.md or http://ckeditor.com/license -*/ -CKEDITOR.plugins.setLang("a11yhelp","en-gb",{title:"Accessibility Instructions",contents:"Help Contents. To close this dialog press ESC.",legend:[{name:"General",items:[{name:"Editor Toolbar",legend:"Press ${toolbarFocus} to navigate to the toolbar. Move to the next and previous toolbar group with TAB and SHIFT+TAB. Move to the next and previous toolbar button with RIGHT ARROW or LEFT ARROW. Press SPACE or ENTER to activate the toolbar button."},{name:"Editor Dialog",legend:"Inside a dialog, press TAB to navigate to the next dialog element, press SHIFT+TAB to move to the previous dialog element, press ENTER to submit the dialog, press ESC to cancel the dialog. When a dialog has multiple tabs, the tab list can be reached either with ALT+F10 or with TAB as part of the dialog tabbing order. With tab list focused, move to the next and previous tab with RIGHT and LEFT ARROW, respectively."}, -{name:"Editor Context Menu",legend:"Press ${contextMenu} or APPLICATION KEY to open context-menu. Then move to next menu option with TAB or DOWN ARROW. Move to previous option with SHIFT+TAB or UP ARROW. Press SPACE or ENTER to select the menu option. Open sub-menu of current option with SPACE or ENTER or RIGHT ARROW. Go back to parent menu item with ESC or LEFT ARROW. Close context menu with ESC."},{name:"Editor List Box",legend:"Inside a list-box, move to next list item with TAB OR DOWN ARROW. Move to previous list item with SHIFT+TAB or UP ARROW. Press SPACE or ENTER to select the list option. Press ESC to close the list-box."}, -{name:"Editor Element Path Bar",legend:"Press ${elementsPathFocus} to navigate to the elements path bar. Move to next element button with TAB or RIGHT ARROW. Move to previous button with SHIFT+TAB or LEFT ARROW. Press SPACE or ENTER to select the element in editor."}]},{name:"Commands",items:[{name:" Undo command",legend:"Press ${undo}"},{name:" Redo command",legend:"Press ${redo}"},{name:" Bold command",legend:"Press ${bold}"},{name:" Italic command",legend:"Press ${italic}"},{name:" Underline command", -legend:"Press ${underline}"},{name:" Link command",legend:"Press ${link}"},{name:" Toolbar Collapse command",legend:"Press ${toolbarCollapse}"},{name:" Access previous focus space command",legend:"Press ${accessPreviousSpace} to access the closest unreachable focus space before the caret, for example: two adjacent HR elements. Repeat the key combination to reach distant focus spaces."},{name:" Access next focus space command",legend:"Press ${accessNextSpace} to access the closest unreachable focus space after the caret, for example: two adjacent HR elements. Repeat the key combination to reach distant focus spaces."}, -{name:" Accessibility Help",legend:"Press ${a11yHelp}"},{name:" Paste as plain text",legend:"Press ${pastetext}",legendEdge:"Press ${pastetext}, followed by ${paste}"}]}],tab:"Tab",pause:"Pause",capslock:"Caps Lock",escape:"Escape",pageUp:"Page Up",pageDown:"Page Down",leftArrow:"Left Arrow",upArrow:"Up Arrow",rightArrow:"Right Arrow",downArrow:"Down Arrow",insert:"Insert",leftWindowKey:"Left Windows key",rightWindowKey:"Right Windows key",selectKey:"Select key",numpad0:"Numpad 0",numpad1:"Numpad 1", -numpad2:"Numpad 2",numpad3:"Numpad 3",numpad4:"Numpad 4",numpad5:"Numpad 5",numpad6:"Numpad 6",numpad7:"Numpad 7",numpad8:"Numpad 8",numpad9:"Numpad 9",multiply:"Multiply",add:"Add",subtract:"Subtract",decimalPoint:"Decimal Point",divide:"Divide",f1:"F1",f2:"F2",f3:"F3",f4:"F4",f5:"F5",f6:"F6",f7:"F7",f8:"F8",f9:"F9",f10:"F10",f11:"F11",f12:"F12",numLock:"Num Lock",scrollLock:"Scroll Lock",semiColon:"Semicolon",equalSign:"Equal Sign",comma:"Comma",dash:"Dash",period:"Period",forwardSlash:"Forward Slash", -graveAccent:"Grave Accent",openBracket:"Open Bracket",backSlash:"Backslash",closeBracket:"Close Bracket",singleQuote:"Single Quote"}); \ No newline at end of file diff --git a/admin/plugins/ckeditor/plugins/a11yhelp/dialogs/lang/en.js b/admin/plugins/ckeditor/plugins/a11yhelp/dialogs/lang/en.js deleted file mode 100644 index 7b10baf..0000000 --- a/admin/plugins/ckeditor/plugins/a11yhelp/dialogs/lang/en.js +++ /dev/null @@ -1,11 +0,0 @@ -/* - Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. - For licensing, see LICENSE.md or http://ckeditor.com/license -*/ -CKEDITOR.plugins.setLang("a11yhelp","en",{title:"Accessibility Instructions",contents:"Help Contents. To close this dialog press ESC.",legend:[{name:"General",items:[{name:"Editor Toolbar",legend:"Press ${toolbarFocus} to navigate to the toolbar. Move to the next and previous toolbar group with TAB and SHIFT+TAB. Move to the next and previous toolbar button with RIGHT ARROW or LEFT ARROW. Press SPACE or ENTER to activate the toolbar button."},{name:"Editor Dialog",legend:"Inside a dialog, press TAB to navigate to the next dialog element, press SHIFT+TAB to move to the previous dialog element, press ENTER to submit the dialog, press ESC to cancel the dialog. When a dialog has multiple tabs, the tab list can be reached either with ALT+F10 or with TAB as part of the dialog tabbing order. With tab list focused, move to the next and previous tab with RIGHT and LEFT ARROW, respectively."}, -{name:"Editor Context Menu",legend:"Press ${contextMenu} or APPLICATION KEY to open context-menu. Then move to next menu option with TAB or DOWN ARROW. Move to previous option with SHIFT+TAB or UP ARROW. Press SPACE or ENTER to select the menu option. Open sub-menu of current option with SPACE or ENTER or RIGHT ARROW. Go back to parent menu item with ESC or LEFT ARROW. Close context menu with ESC."},{name:"Editor List Box",legend:"Inside a list-box, move to next list item with TAB OR DOWN ARROW. Move to previous list item with SHIFT+TAB or UP ARROW. Press SPACE or ENTER to select the list option. Press ESC to close the list-box."}, -{name:"Editor Element Path Bar",legend:"Press ${elementsPathFocus} to navigate to the elements path bar. Move to next element button with TAB or RIGHT ARROW. Move to previous button with SHIFT+TAB or LEFT ARROW. Press SPACE or ENTER to select the element in editor."}]},{name:"Commands",items:[{name:" Undo command",legend:"Press ${undo}"},{name:" Redo command",legend:"Press ${redo}"},{name:" Bold command",legend:"Press ${bold}"},{name:" Italic command",legend:"Press ${italic}"},{name:" Underline command", -legend:"Press ${underline}"},{name:" Link command",legend:"Press ${link}"},{name:" Toolbar Collapse command",legend:"Press ${toolbarCollapse}"},{name:" Access previous focus space command",legend:"Press ${accessPreviousSpace} to access the closest unreachable focus space before the caret, for example: two adjacent HR elements. Repeat the key combination to reach distant focus spaces."},{name:" Access next focus space command",legend:"Press ${accessNextSpace} to access the closest unreachable focus space after the caret, for example: two adjacent HR elements. Repeat the key combination to reach distant focus spaces."}, -{name:" Accessibility Help",legend:"Press ${a11yHelp}"},{name:" Paste as plain text",legend:"Press ${pastetext}",legendEdge:"Press ${pastetext}, followed by ${paste}"}]}],tab:"Tab",pause:"Pause",capslock:"Caps Lock",escape:"Escape",pageUp:"Page Up",pageDown:"Page Down",leftArrow:"Left Arrow",upArrow:"Up Arrow",rightArrow:"Right Arrow",downArrow:"Down Arrow",insert:"Insert",leftWindowKey:"Left Windows key",rightWindowKey:"Right Windows key",selectKey:"Select key",numpad0:"Numpad 0",numpad1:"Numpad 1", -numpad2:"Numpad 2",numpad3:"Numpad 3",numpad4:"Numpad 4",numpad5:"Numpad 5",numpad6:"Numpad 6",numpad7:"Numpad 7",numpad8:"Numpad 8",numpad9:"Numpad 9",multiply:"Multiply",add:"Add",subtract:"Subtract",decimalPoint:"Decimal Point",divide:"Divide",f1:"F1",f2:"F2",f3:"F3",f4:"F4",f5:"F5",f6:"F6",f7:"F7",f8:"F8",f9:"F9",f10:"F10",f11:"F11",f12:"F12",numLock:"Num Lock",scrollLock:"Scroll Lock",semiColon:"Semicolon",equalSign:"Equal Sign",comma:"Comma",dash:"Dash",period:"Period",forwardSlash:"Forward Slash", -graveAccent:"Grave Accent",openBracket:"Open Bracket",backSlash:"Backslash",closeBracket:"Close Bracket",singleQuote:"Single Quote"}); \ No newline at end of file diff --git a/admin/plugins/ckeditor/plugins/a11yhelp/dialogs/lang/eo.js b/admin/plugins/ckeditor/plugins/a11yhelp/dialogs/lang/eo.js deleted file mode 100644 index 426be40..0000000 --- a/admin/plugins/ckeditor/plugins/a11yhelp/dialogs/lang/eo.js +++ /dev/null @@ -1,12 +0,0 @@ -/* - Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. - For licensing, see LICENSE.md or http://ckeditor.com/license -*/ -CKEDITOR.plugins.setLang("a11yhelp","eo",{title:"Uzindikoj pri atingeblo",contents:"Helpilenhavo. Por fermi tiun dialogon, premu la ESKAPAN klavon.",legend:[{name:"Ĝeneralaĵoj",items:[{name:"Ilbreto de la redaktilo",legend:"Premu ${toolbarFocus} por atingi la ilbreton. Moviĝu al la sekva aŭ antaŭa grupoj de la ilbreto per la klavoj TABA kaj MAJUSKLIGA+TABA. Moviĝu al la sekva aŭ antaŭa butonoj de la ilbreto per la klavoj SAGO DEKSTREN kaj SAGO MALDEKSTREN. Premu la SPACETklavon aŭ la ENENklavon por aktivigi la ilbretbutonon."}, -{name:"Redaktildialogo",legend:"En dialogo, premu la TABAN klavon por navigi al la sekva dialogelemento, premu la MAJUSKLIGAN+TABAN klavon por iri al la antaŭa dialogelemento, premu la ENEN klavon por sendi la dialogon, premu la ESKAPAN klavon por nuligi la dialogon. Kiam dialogo havas multajn langetojn, eblas atingi la langetliston aŭ per ALT+F10 aŭ per la TABA klavo kiel parton de la dialoga taba ordo. En langetlisto, moviĝu al la sekva kaj antaŭa langeto per la klavoj SAGO DEKSTREN KAJ MALDEKSTREN respektive."}, -{name:"Kunteksta menuo de la redaktilo",legend:"Premu ${contextMenu} aŭ entajpu la KLAVKOMBINAĴON por malfermi la kuntekstan menuon. Poste moviĝu al la sekva opcio de la menuo per la klavoj TABA aŭ SAGO SUBEN. Moviĝu al la antaŭa opcio per la klavoj MAJUSKLGA + TABA aŭ SAGO SUPREN. Premu la SPACETklavon aŭ ENENklavon por selekti la menuopcion. Malfermu la submenuon de la kuranta opcio per la SPACETklavo aŭ la ENENklavo aŭ la SAGO DEKSTREN. Revenu al la elemento de la patra menuo per la klavoj ESKAPA aŭ SAGO MALDEKSTREN. Fermu la kuntekstan menuon per la ESKAPA klavo."}, -{name:"Fallisto de la redaktilo",legend:"En fallisto, moviĝu al la sekva listelemento per la klavoj TABA aŭ SAGO SUBEN. Moviĝu al la antaŭa listelemento per la klavoj MAJUSKLIGA+TABA aŭ SAGO SUPREN. Premu la SPACETklavon aŭ ENENklavon por selekti la opcion en la listo. Premu la ESKAPAN klavon por fermi la falmenuon."},{name:"Breto indikanta la vojon al la redaktilelementoj",legend:"Premu ${elementsPathFocus} por navigi al la breto indikanta la vojon al la redaktilelementoj. Moviĝu al la butono de la sekva elemento per la klavoj TABA aŭ SAGO DEKSTREN. Moviĝu al la butono de la antaŭa elemento per la klavoj MAJUSKLIGA+TABA aŭ SAGO MALDEKSTREN. Premu la SPACETklavon aŭ ENENklavon por selekti la elementon en la redaktilo."}]}, -{name:"Komandoj",items:[{name:"Komando malfari",legend:"Premu ${undo}"},{name:"Komando refari",legend:"Premu ${redo}"},{name:"Komando grasa",legend:"Premu ${bold}"},{name:"Komando kursiva",legend:"Premu ${italic}"},{name:"Komando substreki",legend:"Premu ${underline}"},{name:"Komando ligilo",legend:"Premu ${link}"},{name:"Komando faldi la ilbreton",legend:"Premu ${toolbarCollapse}"},{name:"Komando por atingi la antaŭan fokusan spacon",legend:"Press ${accessPreviousSpace} por atingi la plej proksiman neatingeblan fokusan spacon antaŭ la kursoro, ekzemple : du kuntuŝiĝajn HR elementojn. Ripetu la klavkombinaĵon por atingi malproksimajn fokusajn spacojn."}, -{name:"Komando por atingi la sekvan fokusan spacon",legend:"Press ${accessNextSpace} por atingi la plej proksiman neatingeblan fokusan spacon post la kursoro, ekzemple : du kuntuŝiĝajn HR elementojn. Ripetu la klavkombinajôn por atingi malproksimajn fokusajn spacojn"},{name:"Helpilo pri atingeblo",legend:"Premu ${a11yHelp}"},{name:" Paste as plain text",legend:"Press ${pastetext}",legendEdge:"Press ${pastetext}, followed by ${paste}"}]}],tab:"Tabo",pause:"Paŭzo",capslock:"Majuskla baskulo",escape:"Eskapa klavo", -pageUp:"Antaŭa Paĝo",pageDown:"Sekva Paĝo",leftArrow:"Sago Maldekstren",upArrow:"Sago Supren",rightArrow:"Sago Dekstren",downArrow:"Sago Suben",insert:"Enmeti",leftWindowKey:"Maldekstra Windows-klavo",rightWindowKey:"Dekstra Windows-klavo",selectKey:"Selektklavo",numpad0:"Nombra Klavaro 0",numpad1:"Nombra Klavaro 1",numpad2:"Nombra Klavaro 2",numpad3:"Nombra Klavaro 3",numpad4:"Nombra Klavaro 4",numpad5:"Nombra Klavaro 5",numpad6:"Nombra Klavaro 6",numpad7:"Nombra Klavaro 7",numpad8:"Nombra Klavaro 8", -numpad9:"Nombra Klavaro 9",multiply:"Obligi",add:"Almeti",subtract:"Subtrahi",decimalPoint:"Dekuma Punkto",divide:"Dividi",f1:"F1",f2:"F2",f3:"F3",f4:"F4",f5:"F5",f6:"F6",f7:"F7",f8:"F8",f9:"F9",f10:"F10",f11:"F11",f12:"F12",numLock:"Nombra Baskulo",scrollLock:"Ruluma Baskulo",semiColon:"Punktokomo",equalSign:"Egalsigno",comma:"Komo",dash:"Haltostreko",period:"Punkto",forwardSlash:"Oblikvo",graveAccent:"Malakuto",openBracket:"Malferma Krampo",backSlash:"Retroklino",closeBracket:"Ferma Krampo",singleQuote:"Citilo"}); \ No newline at end of file diff --git a/admin/plugins/ckeditor/plugins/a11yhelp/dialogs/lang/es-mx.js b/admin/plugins/ckeditor/plugins/a11yhelp/dialogs/lang/es-mx.js deleted file mode 100644 index 784f0e0..0000000 --- a/admin/plugins/ckeditor/plugins/a11yhelp/dialogs/lang/es-mx.js +++ /dev/null @@ -1,13 +0,0 @@ -/* - Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. - For licensing, see LICENSE.md or http://ckeditor.com/license -*/ -CKEDITOR.plugins.setLang("a11yhelp","es-mx",{title:"Instrucciones de accesibilidad",contents:"Contenidos de ayuda. Para cerrar este cuadro de diálogo presione ESC.",legend:[{name:"General",items:[{name:"Barra de herramientas del editor",legend:"Presione ${toolbarFocus} para navegar a la barra de herramientas. Desplácese al grupo de barras de herramientas siguiente y anterior con SHIFT + TAB. Desplácese al botón siguiente y anterior de la barra de herramientas con FLECHA DERECHA o FLECHA IZQUIERDA. Presione SPACE o ENTER para activar el botón de la barra de herramientas."}, -{name:"Editor de diálogo",legend:"Dentro de un cuadro de diálogo, pulse TAB para desplazarse hasta el siguiente elemento de diálogo, pulse MAYÚS + TAB para desplazarse al elemento de diálogo anterior, pulse ENTER para enviar el diálogo, pulse ESC para cancelar el diálogo. Cuando un cuadro de diálogo tiene varias pestañas, se puede acceder a la lista de pestañas con ALT + F10 o con TAB como parte del orden de tabulación del diálogo. Con la lista de tabuladores enfocada, mueva a la pestaña siguiente y anterior con las flechas DERECHA y IZQUIERDA, respectivamente."}, -{name:"Menú contextual del editor",legend:"Presione ${contextMenu} o CLAVE DE APLICACIÓN para abrir el menú contextual. A continuación, vaya a la siguiente opción del menú con TAB o DOWN ARROW. Desplácese a la opción anterior con SHIFT + TAB o FLECHA ARRIBA. Presione SPACE o ENTER para seleccionar la opción del menú. Abra el submenú de la opción actual con ESPACIO o ENTER o FLECHA DERECHA. Vuelva al elemento de menú principal con ESC o FLECHA IZQUIERDA. Cerrar el menú contextual con ESC."},{name:"Editor de cuadro de lista", -legend:"Dentro de un cuadro de lista, mueva al siguiente elemento de lista con TAB O FLECHA ABAJO. Mueva al elemento anterior de la lista con MAYÚS + TAB o FLECHA ARRIBA. Presione SPACE o ENTER para seleccionar la opción de lista. Presione ESC para cerrar el cuadro de lista."},{name:"Barra de ruta del elemento del editor",legend:"Presione ${elementsPathFocus} para navegar a la barra de ruta de elementos. Desplácese al siguiente botón de elemento con TAB o FLECHA DERECHA. Desplácese al botón anterior con SHIFT + TAB o FLECHA IZQUIERDA. Presione SPACE o ENTER para seleccionar el elemento en el editor."}]}, -{name:"Comandos",items:[{name:"Comando deshacer",legend:"Presiona ${undo}"},{name:"Comando rehacer",legend:"Presiona ${redo}"},{name:"Comando negrita",legend:"Presiona ${bold}"},{name:"Comando cursiva",legend:"Presiona {italic}"},{name:"Comando subrayado",legend:"Presiona ${underline}"},{name:"Comando enlace",legend:"Presiona ${link}"},{name:"Comando colapsar barra de herramientas",legend:"Presiona ${toolbarCollapse}"},{name:"Acceda al comando de espacio de enfoque anterior",legend:"Presione ${accessPreviousSpace} para acceder al espacio de enfoque inaccesible más cercano antes del cursor, por ejemplo: dos elementos HR adyacentes. Repita la combinación de teclas para alcanzar los espacios de enfoque distantes."}, -{name:"Acceder al siguiente comando de espacio de enfoque",legend:"Pulse ${accessNextSpace} para acceder al espacio de enfoque más cercano inaccesible después del cursor, por ejemplo: dos elementos HR adyacentes. Repita la combinación de teclas para alcanzar los espacios de enfoque distantes."},{name:"Ayuda de accesibilidad",legend:"Presiona ${a11yHelp}"},{name:" Paste as plain text",legend:"Press ${pastetext}",legendEdge:"Press ${pastetext}, followed by ${paste}"}]}],tab:"Tabulador",pause:"Pausa", -capslock:"Mayúsculas",escape:"Escape",pageUp:"Página arriba",pageDown:"Página abajo",leftArrow:"Flecha izquierda",upArrow:"Flecha arriba",rightArrow:"Flecha derecha",downArrow:"Flecha abajo",insert:"Insertar",leftWindowKey:"Tecla izquierda de Windows",rightWindowKey:"Tecla derecha de Windows",selectKey:"Tecla de selección",numpad0:"Teclado numérico 0",numpad1:"Teclado numérico 1",numpad2:"Teclado numérico 2",numpad3:"Teclado numérico 3",numpad4:"Teclado numérico 4",numpad5:"Teclado numérico 5",numpad6:"Teclado numérico 6", -numpad7:"Teclado numérico 7",numpad8:"Teclado numérico 8",numpad9:"Teclado numérico 9",multiply:"Multiplicar",add:"Sumar",subtract:"Restar",decimalPoint:"Punto decimal",divide:"Dividir",f1:"F1",f2:"F2",f3:"F3",f4:"F4",f5:"F5",f6:"F6",f7:"F7",f8:"F8",f9:"F9",f10:"F10",f11:"F11",f12:"F12",numLock:"Números",scrollLock:"Bloqueo de desplazamiento",semiColon:"punto y coma",equalSign:"Signo igual",comma:"Coma",dash:"Guión",period:"Espacio",forwardSlash:"Diagonal",graveAccent:"Acento grave",openBracket:"Abrir paréntesis", -backSlash:"Diagonal invertida",closeBracket:"Cerrar paréntesis",singleQuote:"Comillas simple"}); \ No newline at end of file diff --git a/admin/plugins/ckeditor/plugins/a11yhelp/dialogs/lang/es.js b/admin/plugins/ckeditor/plugins/a11yhelp/dialogs/lang/es.js deleted file mode 100644 index b4708ba..0000000 --- a/admin/plugins/ckeditor/plugins/a11yhelp/dialogs/lang/es.js +++ /dev/null @@ -1,13 +0,0 @@ -/* - Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. - For licensing, see LICENSE.md or http://ckeditor.com/license -*/ -CKEDITOR.plugins.setLang("a11yhelp","es",{title:"Instrucciones de accesibilidad",contents:"Ayuda. Para cerrar presione ESC.",legend:[{name:"General",items:[{name:"Barra de herramientas del editor",legend:'Presiona ${toolbarFocus} para navegar por la barra de herramientas. Para moverse por los distintos grupos de herramientas usa las teclas TAB y MAY+TAB. Para moverse por las distintas herramientas usa FLECHA DERECHA o FECHA IZQUIERDA. Presiona "espacio" o "intro" para activar la herramienta.'},{name:"Editor de diálogo", -legend:"Dentro del diálogo, presione TAB para navegar a los siguientes elementos de diálogo, presione SHIFT+TAB para moverse a los anteriores elementos de diálogo, presione ENTER para enviar el diálogo, presiona ESC para cancelar el diálogo. Cuando el diálogo tiene multiples pestañas, la lista de pestañas puede ser abarcada con ALT + F10 or con TAB como parte del orden de pestañas del diálogo. ECon la pestaña enfocada, puede moverse a la siguiente o anterior pestaña con las FLECHAS IZQUIRDA y DERECHA respectivamente."}, -{name:"Editor del menú contextual",legend:"Presiona ${contextMenu} o TECLA MENÚ para abrir el menú contextual. Entonces muévete a la siguiente opción del menú con TAB o FLECHA ABAJO. Muévete a la opción previa con SHIFT + TAB o FLECHA ARRIBA. Presiona ESPACIO o ENTER para seleccionar la opción del menú. Abre el submenú de la opción actual con ESPACIO o ENTER o FLECHA DERECHA. Regresa al elemento padre del menú con ESC o FLECHA IZQUIERDA. Cierra el menú contextual con ESC."},{name:"Lista del Editor", -legend:"Dentro de una lista, te mueves al siguiente elemento de la lista con TAB o FLECHA ABAJO. Te mueves al elemento previo de la lista con SHIFT+TAB o FLECHA ARRIBA. Presiona ESPACIO o ENTER para elegir la opción de la lista. Presiona ESC para cerrar la lista."},{name:"Barra de Ruta del Elemento en el Editor",legend:"Presiona ${elementsPathFocus} para navegar a los elementos de la barra de ruta. Te mueves al siguiente elemento botón con TAB o FLECHA DERECHA. Te mueves al botón previo con SHIFT+TAB o FLECHA IZQUIERDA. Presiona ESPACIO o ENTER para seleccionar el elemento en el editor."}]}, -{name:"Comandos",items:[{name:"Comando deshacer",legend:"Presiona ${undo}"},{name:"Comando rehacer",legend:"Presiona ${redo}"},{name:"Comando negrita",legend:"Presiona ${bold}"},{name:"Comando itálica",legend:"Presiona ${italic}"},{name:"Comando subrayar",legend:"Presiona ${underline}"},{name:"Comando liga",legend:"Presiona ${liga}"},{name:"Comando colapsar barra de herramientas",legend:"Presiona ${toolbarCollapse}"},{name:"Comando accesar el anterior espacio de foco",legend:"Presiona ${accessPreviousSpace} para accesar el espacio de foco no disponible más cercano anterior al cursor, por ejemplo: dos elementos HR adyacentes. Repite la combinación de teclas para alcanzar espacios de foco distantes."}, -{name:"Comando accesar el siguiente spacio de foco",legend:"Presiona ${accessNextSpace} para accesar el espacio de foco no disponible más cercano después del cursor, por ejemplo: dos elementos HR adyacentes. Repite la combinación de teclas para alcanzar espacios de foco distantes."},{name:"Ayuda de Accesibilidad",legend:"Presiona ${a11yHelp}"},{name:" Paste as plain text",legend:"Press ${pastetext}",legendEdge:"Press ${pastetext}, followed by ${paste}"}]}],tab:"Tabulador",pause:"Pausa",capslock:"Bloq. Mayús.", -escape:"Escape",pageUp:"Regresar Página",pageDown:"Avanzar Página",leftArrow:"Flecha Izquierda",upArrow:"Flecha Arriba",rightArrow:"Flecha Derecha",downArrow:"Flecha Abajo",insert:"Insertar",leftWindowKey:"Tecla Windows Izquierda",rightWindowKey:"Tecla Windows Derecha",selectKey:"Tecla de Selección",numpad0:"Tecla 0 del teclado numérico",numpad1:"Tecla 1 del teclado numérico",numpad2:"Tecla 2 del teclado numérico",numpad3:"Tecla 3 del teclado numérico",numpad4:"Tecla 4 del teclado numérico",numpad5:"Tecla 5 del teclado numérico", -numpad6:"Tecla 6 del teclado numérico",numpad7:"Tecla 7 del teclado numérico",numpad8:"Tecla 8 del teclado numérico",numpad9:"Tecla 9 del teclado numérico",multiply:"Multiplicar",add:"Sumar",subtract:"Restar",decimalPoint:"Punto Decimal",divide:"Dividir",f1:"F1",f2:"F2",f3:"F3",f4:"F4",f5:"F5",f6:"F6",f7:"F7",f8:"F8",f9:"F9",f10:"F10",f11:"F11",f12:"F12",numLock:"Num Lock",scrollLock:"Scroll Lock",semiColon:"Punto y coma",equalSign:"Signo de Igual",comma:"Coma",dash:"Guión",period:"Punto",forwardSlash:"Diagonal", -graveAccent:"Acento Grave",openBracket:"Abrir llave",backSlash:"Diagonal Invertida",closeBracket:"Cerrar llave",singleQuote:"Comillas simples"}); \ No newline at end of file diff --git a/admin/plugins/ckeditor/plugins/a11yhelp/dialogs/lang/et.js b/admin/plugins/ckeditor/plugins/a11yhelp/dialogs/lang/et.js deleted file mode 100644 index aa2c791..0000000 --- a/admin/plugins/ckeditor/plugins/a11yhelp/dialogs/lang/et.js +++ /dev/null @@ -1,11 +0,0 @@ -/* - Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. - For licensing, see LICENSE.md or http://ckeditor.com/license -*/ -CKEDITOR.plugins.setLang("a11yhelp","et",{title:"Accessibility Instructions",contents:"Abi sisu. Selle dialoogi sulgemiseks vajuta ESC klahvi.",legend:[{name:"Üldine",items:[{name:"Editor Toolbar",legend:"Press ${toolbarFocus} to navigate to the toolbar. Move to the next and previous toolbar group with TAB and SHIFT+TAB. Move to the next and previous toolbar button with RIGHT ARROW or LEFT ARROW. Press SPACE or ENTER to activate the toolbar button."},{name:"Editor Dialog",legend:"Inside a dialog, press TAB to navigate to the next dialog element, press SHIFT+TAB to move to the previous dialog element, press ENTER to submit the dialog, press ESC to cancel the dialog. When a dialog has multiple tabs, the tab list can be reached either with ALT+F10 or with TAB as part of the dialog tabbing order. With tab list focused, move to the next and previous tab with RIGHT and LEFT ARROW, respectively."}, -{name:"Editor Context Menu",legend:"Press ${contextMenu} or APPLICATION KEY to open context-menu. Then move to next menu option with TAB or DOWN ARROW. Move to previous option with SHIFT+TAB or UP ARROW. Press SPACE or ENTER to select the menu option. Open sub-menu of current option with SPACE or ENTER or RIGHT ARROW. Go back to parent menu item with ESC or LEFT ARROW. Close context menu with ESC."},{name:"Editor List Box",legend:"Inside a list-box, move to next list item with TAB OR DOWN ARROW. Move to previous list item with SHIFT+TAB or UP ARROW. Press SPACE or ENTER to select the list option. Press ESC to close the list-box."}, -{name:"Editor Element Path Bar",legend:"Press ${elementsPathFocus} to navigate to the elements path bar. Move to next element button with TAB or RIGHT ARROW. Move to previous button with SHIFT+TAB or LEFT ARROW. Press SPACE or ENTER to select the element in editor."}]},{name:"Commands",items:[{name:" Undo command",legend:"Press ${undo}"},{name:" Redo command",legend:"Press ${redo}"},{name:" Bold command",legend:"Press ${bold}"},{name:" Italic command",legend:"Press ${italic}"},{name:" Underline command", -legend:"Press ${underline}"},{name:" Link command",legend:"Press ${link}"},{name:" Toolbar Collapse command",legend:"Press ${toolbarCollapse}"},{name:" Access previous focus space command",legend:"Press ${accessPreviousSpace} to access the closest unreachable focus space before the caret, for example: two adjacent HR elements. Repeat the key combination to reach distant focus spaces."},{name:" Access next focus space command",legend:"Press ${accessNextSpace} to access the closest unreachable focus space after the caret, for example: two adjacent HR elements. Repeat the key combination to reach distant focus spaces."}, -{name:" Accessibility Help",legend:"Press ${a11yHelp}"},{name:" Paste as plain text",legend:"Press ${pastetext}",legendEdge:"Press ${pastetext}, followed by ${paste}"}]}],tab:"Tab",pause:"Pause",capslock:"Caps Lock",escape:"Escape",pageUp:"Page Up",pageDown:"Page Down",leftArrow:"Left Arrow",upArrow:"Up Arrow",rightArrow:"Right Arrow",downArrow:"Down Arrow",insert:"Insert",leftWindowKey:"Left Windows key",rightWindowKey:"Right Windows key",selectKey:"Select key",numpad0:"Numpad 0",numpad1:"Numpad 1", -numpad2:"Numpad 2",numpad3:"Numpad 3",numpad4:"Numpad 4",numpad5:"Numpad 5",numpad6:"Numpad 6",numpad7:"Numpad 7",numpad8:"Numpad 8",numpad9:"Numpad 9",multiply:"Multiply",add:"Add",subtract:"Subtract",decimalPoint:"Decimal Point",divide:"Divide",f1:"F1",f2:"F2",f3:"F3",f4:"F4",f5:"F5",f6:"F6",f7:"F7",f8:"F8",f9:"F9",f10:"F10",f11:"F11",f12:"F12",numLock:"Num Lock",scrollLock:"Scroll Lock",semiColon:"Semicolon",equalSign:"Equal Sign",comma:"Comma",dash:"Dash",period:"Period",forwardSlash:"Forward Slash", -graveAccent:"Grave Accent",openBracket:"Open Bracket",backSlash:"Backslash",closeBracket:"Close Bracket",singleQuote:"Single Quote"}); \ No newline at end of file diff --git a/admin/plugins/ckeditor/plugins/a11yhelp/dialogs/lang/eu.js b/admin/plugins/ckeditor/plugins/a11yhelp/dialogs/lang/eu.js deleted file mode 100644 index e80d8da..0000000 --- a/admin/plugins/ckeditor/plugins/a11yhelp/dialogs/lang/eu.js +++ /dev/null @@ -1,12 +0,0 @@ -/* - Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. - For licensing, see LICENSE.md or http://ckeditor.com/license -*/ -CKEDITOR.plugins.setLang("a11yhelp","eu",{title:"Erabilerraztasunaren argibideak",contents:"Laguntzaren edukiak. Elkarrizketa-koadro hau ixteko sakatu ESC.",legend:[{name:"Orokorra",items:[{name:"Editorearen tresna-barra",legend:"Sakatu ${toolbarFocus} tresna-barrara nabigatzeko. Tresna-barrako aurreko eta hurrengo taldera joateko erabili TAB eta MAIUS+TAB. Tresna-barrako aurreko eta hurrengo botoira joateko erabili ESKUIN-GEZIA eta EZKER-GEZIA. Sakatu ZURIUNEA edo SARTU tresna-barrako botoia aktibatzeko."}, -{name:"Editorearen elkarrizketa-koadroa",legend:"Elkarrizketa-koadro baten barruan sakatu TAB hurrengo elementura nabigatzeko, sakatu MAIUS+TAB aurreko elementura joateko, sakatu SARTU elkarrizketa-koadroa bidaltzeko eta sakatu ESC uzteko. Elkarrizketa-koadro batek hainbat fitxa dituenean, ALT+F10 erabiliz irits daiteke fitxen zerrendara, edo TAB erabiliz. Fokoa fitxen zerrendak duenean, aurreko eta hurrengo fitxetara joateko erabili EZKER-GEZIA eta ESKUIN-GEZIA."},{name:"Editorearen testuinguru-menua", -legend:"Sakatu ${contextMenu} edo APLIKAZIO TEKLA testuinguru-menua irekitzeko. Menuko hurrengo aukerara joateko erabili TAB edo BEHERA GEZIA. Aurreko aukerara nabigatzeko erabili MAIUS+TAB edo GORA GEZIA. Sakatu ZURIUNEA edo SARTU menuko aukera hautatzeko. Ireki uneko aukeraren azpi-menua ZURIUNEA edo SARTU edo ESKUIN-GEZIA erabiliz. Menuko aukera gurasora itzultzeko erabili ESC edo EZKER-GEZIA. Testuinguru-menua ixteko sakatu ESC."},{name:"Editorearen zerrenda-koadroa",legend:"Zerrenda-koadro baten barruan, zerrendako hurrengo elementura joateko erabili TAB edo BEHERA GEZIA. Zerrendako aurreko elementura nabigatzeko MAIUS+TAB edo GORA GEZIA. Sakatu ZURIUNEA edo SARTU zerrendako aukera hautatzeko. Sakatu ESC zerrenda-koadroa ixteko."}, -{name:"Editorearen elementuaren bide-barra",legend:"Sakatu ${elementsPathFocus} elementuaren bide-barrara nabigatzeko. Hurrengo elementuaren botoira joateko erabili TAB edo ESKUIN-GEZIA. Aurreko botoira joateko aldiz erabili MAIUS+TAB edo EZKER-GEZIA. Elementua editorean hautatzeko sakatu ZURIUNEA edo SARTU."}]},{name:"Komandoak",items:[{name:"Desegin komandoa",legend:"Sakatu ${undo}"},{name:"Berregin komandoa",legend:"Sakatu ${redo}"},{name:"Lodia komandoa",legend:"Sakatu ${bold}"},{name:"Etzana komandoa", -legend:"Sakatu ${italic}"},{name:"Azpimarratu komandoa",legend:"Sakatu ${underline}"},{name:"Esteka komandoa",legend:"Sakatu ${link}"},{name:"Tolestu tresna-barra komandoa",legend:"Sakatu ${toolbarCollapse}"},{name:" Access previous focus space command",legend:"Press ${accessPreviousSpace} to access the closest unreachable focus space before the caret, for example: two adjacent HR elements. Repeat the key combination to reach distant focus spaces."},{name:" Access next focus space command",legend:"Press ${accessNextSpace} to access the closest unreachable focus space after the caret, for example: two adjacent HR elements. Repeat the key combination to reach distant focus spaces."}, -{name:"Erabilerraztasunaren laguntza",legend:"Sakatu ${a11yHelp}"},{name:" Paste as plain text",legend:"Press ${pastetext}",legendEdge:"Press ${pastetext}, followed by ${paste}"}]}],tab:"Tabuladorea",pause:"Pausatu",capslock:"Blok Maius",escape:"Ihes",pageUp:"Page Up",pageDown:"Page Down",leftArrow:"Ezker-gezia",upArrow:"Gora gezia",rightArrow:"Eskuin-gezia",downArrow:"Behera gezia",insert:"Txertatu",leftWindowKey:"Ezkerreko Windows tekla",rightWindowKey:"Eskuineko Windows tekla",selectKey:"Hautatu tekla", -numpad0:"Zenbakizko teklatua 0",numpad1:"Zenbakizko teklatua 1",numpad2:"Zenbakizko teklatua 2",numpad3:"Zenbakizko teklatua 3",numpad4:"Zenbakizko teklatua 4",numpad5:"Zenbakizko teklatua 5",numpad6:"Zenbakizko teklatua 6",numpad7:"Zenbakizko teklatua 7",numpad8:"Zenbakizko teklatua 8",numpad9:"Zenbakizko teklatua 9",multiply:"Biderkatu",add:"Gehitu",subtract:"Kendu",decimalPoint:"Koma hamartarra",divide:"Zatitu",f1:"F1",f2:"F2",f3:"F3",f4:"F4",f5:"F5",f6:"F6",f7:"F7",f8:"F8",f9:"F9",f10:"F10",f11:"F11", -f12:"F12",numLock:"Blok Zenb",scrollLock:"Blok Korr",semiColon:"Puntu eta koma",equalSign:"Berdin zeinua",comma:"Koma",dash:"Marratxoa",period:"Puntua",forwardSlash:"Barra",graveAccent:"Azentu kamutsa",openBracket:"Parentesia ireki",backSlash:"Alderantzizko barra",closeBracket:"Itxi parentesia",singleQuote:"Komatxo bakuna"}); \ No newline at end of file diff --git a/admin/plugins/ckeditor/plugins/a11yhelp/dialogs/lang/fa.js b/admin/plugins/ckeditor/plugins/a11yhelp/dialogs/lang/fa.js deleted file mode 100644 index 7280326..0000000 --- a/admin/plugins/ckeditor/plugins/a11yhelp/dialogs/lang/fa.js +++ /dev/null @@ -1,11 +0,0 @@ -/* - Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. - For licensing, see LICENSE.md or http://ckeditor.com/license -*/ -CKEDITOR.plugins.setLang("a11yhelp","fa",{title:"دستورالعمل‌های دسترسی",contents:"راهنمای فهرست مطالب. برای بستن این کادر محاوره‌ای ESC را فشار دهید.",legend:[{name:"عمومی",items:[{name:"نوار ابزار ویرایشگر",legend:"${toolbarFocus} را برای باز کردن نوار ابزار بفشارید. با کلید Tab و Shift+Tab در مجموعه نوار ابزار بعدی و قبلی حرکت کنید. برای حرکت در کلید نوار ابزار قبلی و بعدی با کلید جهت‌نمای راست و چپ جابجا شوید. کلید Space یا Enter را برای فعال کردن کلید نوار ابزار بفشارید."},{name:"پنجره محاورهای ویرایشگر", -legend:"Inside a dialog, press TAB to navigate to the next dialog element, press SHIFT+TAB to move to the previous dialog element, press ENTER to submit the dialog, press ESC to cancel the dialog. When a dialog has multiple tabs, the tab list can be reached either with ALT+F10 or with TAB as part of the dialog tabbing order. With tab list focused, move to the next and previous tab with RIGHT and LEFT ARROW, respectively."},{name:"منوی متنی ویرایشگر",legend:"${contextMenu} یا کلید برنامههای کاربردی را برای باز کردن منوی متن را بفشارید. سپس میتوانید برای حرکت به گزینه بعدی منو با کلید Tab و یا کلید جهتنمای پایین جابجا شوید. حرکت به گزینه قبلی با Shift+Tab یا کلید جهتنمای بالا. فشردن Space یا Enter برای انتخاب یک گزینه از منو. باز کردن زیر شاخه گزینه منو جاری با کلید Space یا Enter و یا کلید جهتنمای راست و چپ. بازگشت به منوی والد با کلید Esc یا کلید جهتنمای چپ. بستن منوی متن با Esc."}, -{name:"جعبه فهرست ویرایشگر",legend:"در داخل جعبه لیست، قلم دوم از اقلام لیست بعدی را با TAB و یا Arrow Down حرکت دهید. انتقال به قلم دوم از اقلام لیست قبلی را با SHIFT + TAB یا UP ARROW. کلید Space یا ENTER را برای انتخاب گزینه لیست بفشارید. کلید ESC را برای بستن جعبه لیست بفشارید."},{name:"ویرایشگر عنصر نوار راه",legend:"برای رفتن به مسیر عناصر ${elementsPathFocus} را بفشارید. حرکت به کلید عنصر بعدی با کلید Tab یا کلید جهت‌نمای راست. برگشت به کلید قبلی با Shift+Tab یا کلید جهت‌نمای چپ. فشردن Space یا Enter برای انتخاب یک عنصر در ویرایشگر."}]}, -{name:"فرمان‌ها",items:[{name:"بازگشت به آخرین فرمان",legend:"فشردن ${undo}"},{name:"انجام مجدد فرمان",legend:"فشردن ${redo}"},{name:"فرمان درشت کردن متن",legend:"فشردن ${bold}"},{name:"فرمان کج کردن متن",legend:"فشردن ${italic}"},{name:"فرمان زیرخطدار کردن متن",legend:"فشردن ${underline}"},{name:"فرمان پیوند دادن",legend:"فشردن ${link}"},{name:"بستن نوار ابزار فرمان",legend:"فشردن ${toolbarCollapse}"},{name:"دسترسی به فرمان محل تمرکز قبلی",legend:"فشردن ${accessPreviousSpace} برای دسترسی به نزدیک‌ترین فضای قابل دسترسی تمرکز قبل از هشتک، برای مثال: دو عنصر مجاور HR -خط افقی-. تکرار کلید ترکیبی برای رسیدن به فضاهای تمرکز از راه دور."}, -{name:"دسترسی به فضای دستور بعدی",legend:"برای دسترسی به نزدیک‌ترین فضای تمرکز غیر قابل دسترس، ${accessNextSpace} را پس از علامت هشتک بفشارید، برای مثال: دو عنصر مجاور HR -خط افقی-. کلید ترکیبی را برای رسیدن به فضای تمرکز تکرار کنید."},{name:"راهنمای دسترسی",legend:"فشردن ${a11yHelp}"},{name:" Paste as plain text",legend:"Press ${pastetext}",legendEdge:"Press ${pastetext}, followed by ${paste}"}]}],tab:"برگه",pause:"توقف",capslock:"Caps Lock",escape:"گریز",pageUp:"صفحه به بالا",pageDown:"صفحه به پایین", -leftArrow:"پیکان چپ",upArrow:"پیکان بالا",rightArrow:"پیکان راست",downArrow:"پیکان پایین",insert:"ورود",leftWindowKey:"کلید چپ ویندوز",rightWindowKey:"کلید راست ویندوز",selectKey:"انتخاب کلید",numpad0:"کلید شماره 0",numpad1:"کلید شماره 1",numpad2:"کلید شماره 2",numpad3:"کلید شماره 3",numpad4:"کلید شماره 4",numpad5:"کلید شماره 5",numpad6:"کلید شماره 6",numpad7:"کلید شماره 7",numpad8:"کلید شماره 8",numpad9:"کلید شماره 9",multiply:"ضرب",add:"افزودن",subtract:"تفریق",decimalPoint:"نقطه‌ی اعشار",divide:"جدا کردن", -f1:"F1",f2:"F2",f3:"F3",f4:"F4",f5:"F5",f6:"F6",f7:"F7",f8:"F8",f9:"F9",f10:"F10",f11:"F11",f12:"F12",numLock:"Num Lock",scrollLock:"Scroll Lock",semiColon:"Semicolon",equalSign:"علامت تساوی",comma:"کاما",dash:"خط تیره",period:"دوره",forwardSlash:"Forward Slash",graveAccent:"Grave Accent",openBracket:"Open Bracket",backSlash:"Backslash",closeBracket:"Close Bracket",singleQuote:"Single Quote"}); \ No newline at end of file diff --git a/admin/plugins/ckeditor/plugins/a11yhelp/dialogs/lang/fi.js b/admin/plugins/ckeditor/plugins/a11yhelp/dialogs/lang/fi.js deleted file mode 100644 index a307eb8..0000000 --- a/admin/plugins/ckeditor/plugins/a11yhelp/dialogs/lang/fi.js +++ /dev/null @@ -1,11 +0,0 @@ -/* - Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. - For licensing, see LICENSE.md or http://ckeditor.com/license -*/ -CKEDITOR.plugins.setLang("a11yhelp","fi",{title:"Saavutettavuus ohjeet",contents:"Ohjeen sisällöt. Sulkeaksesi tämän dialogin paina ESC.",legend:[{name:"Yleinen",items:[{name:"Editorin työkalupalkki",legend:"Paina ${toolbarFocus} siirtyäksesi työkalupalkkiin. Siirry seuraavaan ja edelliseen työkalupalkin ryhmään TAB ja SHIFT+TAB näppäimillä. Siirry seuraavaan ja edelliseen työkalupainikkeeseen käyttämällä NUOLI OIKEALLE tai NUOLI VASEMMALLE näppäimillä. Paina VÄLILYÖNTI tai ENTER näppäintä aktivoidaksesi työkalupainikkeen."}, -{name:"Editorin dialogi",legend:"Inside a dialog, press TAB to navigate to the next dialog element, press SHIFT+TAB to move to the previous dialog element, press ENTER to submit the dialog, press ESC to cancel the dialog. When a dialog has multiple tabs, the tab list can be reached either with ALT+F10 or with TAB as part of the dialog tabbing order. With tab list focused, move to the next and previous tab with RIGHT and LEFT ARROW, respectively."},{name:"Editorin oheisvalikko",legend:"Paina ${contextMenu} tai SOVELLUSPAINIKETTA avataksesi oheisvalikon. Liiku seuraavaan valikon vaihtoehtoon TAB tai NUOLI ALAS näppäimillä. Siirry edelliseen vaihtoehtoon SHIFT+TAB tai NUOLI YLÖS näppäimillä. Paina VÄLILYÖNTI tai ENTER valitaksesi valikon kohdan. Avataksesi nykyisen kohdan alivalikon paina VÄLILYÖNTI tai ENTER tai NUOLI OIKEALLE painiketta. Siirtyäksesi takaisin valikon ylemmälle tasolle paina ESC tai NUOLI vasemmalle. Oheisvalikko suljetaan ESC painikkeella."}, -{name:"Editorin listalaatikko",legend:"Listalaatikon sisällä siirry seuraavaan listan kohtaan TAB tai NUOLI ALAS painikkeilla. Siirry edelliseen listan kohtaan SHIFT+TAB tai NUOLI YLÖS painikkeilla. Paina VÄLILYÖNTI tai ENTER valitaksesi listan vaihtoehdon. Paina ESC sulkeaksesi listalaatikon."},{name:"Editorin elementtipolun palkki",legend:"Paina ${elementsPathFocus} siirtyäksesi elementtipolun palkkiin. Siirry seuraavaan elementtipainikkeeseen TAB tai NUOLI OIKEALLE painikkeilla. Siirry aiempaan painikkeeseen SHIFT+TAB tai NUOLI VASEMMALLE painikkeilla. Paina VÄLILYÖNTI tai ENTER valitaksesi elementin editorissa."}]}, -{name:"Komennot",items:[{name:"Peruuta komento",legend:"Paina ${undo}"},{name:"Tee uudelleen komento",legend:"Paina ${redo}"},{name:"Lihavoi komento",legend:"Paina ${bold}"},{name:"Kursivoi komento",legend:"Paina ${italic}"},{name:"Alleviivaa komento",legend:"Paina ${underline}"},{name:"Linkki komento",legend:"Paina ${link}"},{name:"Pienennä työkalupalkki komento",legend:"Paina ${toolbarCollapse}"},{name:"Siirry aiempaan fokustilaan komento",legend:"Paina ${accessPreviousSpace} siiryäksesi lähimpään kursorin edellä olevaan saavuttamattomaan fokustilaan, esimerkiksi: kaksi vierekkäistä HR elementtiä. Toista näppäinyhdistelmää päästäksesi kauempana oleviin fokustiloihin."}, -{name:"Siirry seuraavaan fokustilaan komento",legend:"Paina ${accessPreviousSpace} siiryäksesi lähimpään kursorin jälkeen olevaan saavuttamattomaan fokustilaan, esimerkiksi: kaksi vierekkäistä HR elementtiä. Toista näppäinyhdistelmää päästäksesi kauempana oleviin fokustiloihin."},{name:"Saavutettavuus ohjeet",legend:"Paina ${a11yHelp}"},{name:" Paste as plain text",legend:"Press ${pastetext}",legendEdge:"Press ${pastetext}, followed by ${paste}"}]}],tab:"Tab",pause:"Pause",capslock:"Caps Lock",escape:"Escape", -pageUp:"Page Up",pageDown:"Page Down",leftArrow:"Left Arrow",upArrow:"Up Arrow",rightArrow:"Right Arrow",downArrow:"Down Arrow",insert:"Insert",leftWindowKey:"Left Windows key",rightWindowKey:"Right Windows key",selectKey:"Select key",numpad0:"Numeronäppäimistö 0",numpad1:"Numeronäppäimistö 1",numpad2:"Numeronäppäimistö 2",numpad3:"Numeronäppäimistö 3",numpad4:"Numeronäppäimistö 4",numpad5:"Numeronäppäimistö 5",numpad6:"Numeronäppäimistö 6",numpad7:"Numeronäppäimistö 7",numpad8:"Numeronäppäimistö 8", -numpad9:"Numeronäppäimistö 9",multiply:"Multiply",add:"Add",subtract:"Subtract",decimalPoint:"Decimal Point",divide:"Divide",f1:"F1",f2:"F2",f3:"F3",f4:"F4",f5:"F5",f6:"F6",f7:"F7",f8:"F8",f9:"F9",f10:"F10",f11:"F11",f12:"F12",numLock:"Num Lock",scrollLock:"Scroll Lock",semiColon:"Puolipiste",equalSign:"Equal Sign",comma:"Pilkku",dash:"Dash",period:"Piste",forwardSlash:"Forward Slash",graveAccent:"Grave Accent",openBracket:"Open Bracket",backSlash:"Backslash",closeBracket:"Close Bracket",singleQuote:"Single Quote"}); \ No newline at end of file diff --git a/admin/plugins/ckeditor/plugins/a11yhelp/dialogs/lang/fo.js b/admin/plugins/ckeditor/plugins/a11yhelp/dialogs/lang/fo.js deleted file mode 100644 index 564a8b2..0000000 --- a/admin/plugins/ckeditor/plugins/a11yhelp/dialogs/lang/fo.js +++ /dev/null @@ -1,11 +0,0 @@ -/* - Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. - For licensing, see LICENSE.md or http://ckeditor.com/license -*/ -CKEDITOR.plugins.setLang("a11yhelp","fo",{title:"Accessibility Instructions",contents:"Help Contents. To close this dialog press ESC.",legend:[{name:"General",items:[{name:"Editor Toolbar",legend:"Press ${toolbarFocus} to navigate to the toolbar. Move to the next and previous toolbar group with TAB and SHIFT+TAB. Move to the next and previous toolbar button with RIGHT ARROW or LEFT ARROW. Press SPACE or ENTER to activate the toolbar button."},{name:"Editor Dialog",legend:"Inside a dialog, press TAB to navigate to the next dialog element, press SHIFT+TAB to move to the previous dialog element, press ENTER to submit the dialog, press ESC to cancel the dialog. When a dialog has multiple tabs, the tab list can be reached either with ALT+F10 or with TAB as part of the dialog tabbing order. With tab list focused, move to the next and previous tab with RIGHT and LEFT ARROW, respectively."}, -{name:"Editor Context Menu",legend:"Press ${contextMenu} or APPLICATION KEY to open context-menu. Then move to next menu option with TAB or DOWN ARROW. Move to previous option with SHIFT+TAB or UP ARROW. Press SPACE or ENTER to select the menu option. Open sub-menu of current option with SPACE or ENTER or RIGHT ARROW. Go back to parent menu item with ESC or LEFT ARROW. Close context menu with ESC."},{name:"Editor List Box",legend:"Inside a list-box, move to next list item with TAB OR DOWN ARROW. Move to previous list item with SHIFT+TAB or UP ARROW. Press SPACE or ENTER to select the list option. Press ESC to close the list-box."}, -{name:"Editor Element Path Bar",legend:"Press ${elementsPathFocus} to navigate to the elements path bar. Move to next element button with TAB or RIGHT ARROW. Move to previous button with SHIFT+TAB or LEFT ARROW. Press SPACE or ENTER to select the element in editor."}]},{name:"Commands",items:[{name:" Undo command",legend:"Press ${undo}"},{name:" Redo command",legend:"Press ${redo}"},{name:" Bold command",legend:"Press ${bold}"},{name:" Italic command",legend:"Press ${italic}"},{name:" Underline command", -legend:"Press ${underline}"},{name:" Link command",legend:"Press ${link}"},{name:" Toolbar Collapse command",legend:"Press ${toolbarCollapse}"},{name:" Access previous focus space command",legend:"Press ${accessPreviousSpace} to access the closest unreachable focus space before the caret, for example: two adjacent HR elements. Repeat the key combination to reach distant focus spaces."},{name:" Access next focus space command",legend:"Press ${accessNextSpace} to access the closest unreachable focus space after the caret, for example: two adjacent HR elements. Repeat the key combination to reach distant focus spaces."}, -{name:" Accessibility Help",legend:"Press ${a11yHelp}"},{name:" Paste as plain text",legend:"Press ${pastetext}",legendEdge:"Press ${pastetext}, followed by ${paste}"}]}],tab:"Tab",pause:"Pause",capslock:"Caps Lock",escape:"Escape",pageUp:"Page Up",pageDown:"Page Down",leftArrow:"Left Arrow",upArrow:"Up Arrow",rightArrow:"Right Arrow",downArrow:"Down Arrow",insert:"Insert",leftWindowKey:"Left Windows key",rightWindowKey:"Right Windows key",selectKey:"Select key",numpad0:"Numpad 0",numpad1:"Numpad 1", -numpad2:"Numpad 2",numpad3:"Numpad 3",numpad4:"Numpad 4",numpad5:"Numpad 5",numpad6:"Numpad 6",numpad7:"Numpad 7",numpad8:"Numpad 8",numpad9:"Numpad 9",multiply:"Falda",add:"Pluss",subtract:"Frádráttar",decimalPoint:"Decimal Point",divide:"Býta",f1:"F1",f2:"F2",f3:"F3",f4:"F4",f5:"F5",f6:"F6",f7:"F7",f8:"F8",f9:"F9",f10:"F10",f11:"F11",f12:"F12",numLock:"Num Lock",scrollLock:"Scroll Lock",semiColon:"Semikolon",equalSign:"Javnatekn",comma:"Komma",dash:"Dash",period:"Punktum",forwardSlash:"Forward Slash", -graveAccent:"Grave Accent",openBracket:"Open Bracket",backSlash:"Backslash",closeBracket:"Close Bracket",singleQuote:"Single Quote"}); \ No newline at end of file diff --git a/admin/plugins/ckeditor/plugins/a11yhelp/dialogs/lang/fr-ca.js b/admin/plugins/ckeditor/plugins/a11yhelp/dialogs/lang/fr-ca.js deleted file mode 100644 index 4f25ec3..0000000 --- a/admin/plugins/ckeditor/plugins/a11yhelp/dialogs/lang/fr-ca.js +++ /dev/null @@ -1,11 +0,0 @@ -/* - Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. - For licensing, see LICENSE.md or http://ckeditor.com/license -*/ -CKEDITOR.plugins.setLang("a11yhelp","fr-ca",{title:"Instructions d'accessibilité",contents:"Contenu de l'aide. Pour fermer cette fenêtre, appuyez sur ESC.",legend:[{name:"Général",items:[{name:"Barre d'outil de l'éditeur",legend:"Appuyer sur ${toolbarFocus} pour accéder à la barre d'outils. Se déplacer vers les groupes suivant ou précédent de la barre d'outil avec les touches TAB et SHIFT+TAB. Se déplacer vers les boutons suivant ou précédent de la barre d'outils avec les touches FLECHE DROITE et FLECHE GAUCHE. Appuyer sur la barre d'espace ou la touche ENTRER pour activer le bouton de barre d'outils."}, -{name:"Dialogue de l'éditeur",legend:"Inside a dialog, press TAB to navigate to the next dialog element, press SHIFT+TAB to move to the previous dialog element, press ENTER to submit the dialog, press ESC to cancel the dialog. When a dialog has multiple tabs, the tab list can be reached either with ALT+F10 or with TAB as part of the dialog tabbing order. With tab list focused, move to the next and previous tab with RIGHT and LEFT ARROW, respectively."},{name:"Menu contextuel de l'éditeur",legend:"Appuyer sur ${contextMenu} ou entrer le RACCOURCI CLAVIER pour ouvrir le menu contextuel. Puis se déplacer vers l'option suivante du menu avec les touches TAB ou FLECHE BAS. Se déplacer vers l'option précédente avec les touches SHIFT+TAB ou FLECHE HAUT. appuyer sur la BARRE D'ESPACE ou la touche ENTREE pour sélectionner l'option du menu. Oovrir le sous-menu de l'option courante avec la BARRE D'ESPACE ou les touches ENTREE ou FLECHE DROITE. Revenir à l'élément de menu parent avec les touches ESC ou FLECHE GAUCHE. Fermer le menu contextuel avec ESC."}, -{name:"Menu déroulant de l'éditeur",legend:"A l'intérieur d'une liste en menu déroulant, se déplacer vers l'élément suivant de la liste avec les touches TAB ou FLECHE BAS. Se déplacer vers l'élément précédent de la liste avec les touches SHIFT+TAB ou FLECHE HAUT. Appuyer sur la BARRE D'ESPACE ou sur ENTREE pour sélectionner l'option dans la liste. Appuyer sur ESC pour fermer le menu déroulant."},{name:"Barre d'emplacement des éléments de l'éditeur",legend:"Appuyer sur ${elementsPathFocus} pour naviguer vers la barre d'emplacement des éléments de léditeur. Se déplacer vers le bouton d'élément suivant avec les touches TAB ou FLECHE DROITE. Se déplacer vers le bouton d'élément précédent avec les touches SHIFT+TAB ou FLECHE GAUCHE. Appuyer sur la BARRE D'ESPACE ou sur ENTREE pour sélectionner l'élément dans l'éditeur."}]}, -{name:"Commandes",items:[{name:"Annuler",legend:"Appuyer sur ${undo}"},{name:"Refaire",legend:"Appuyer sur ${redo}"},{name:"Gras",legend:"Appuyer sur ${bold}"},{name:"Italique",legend:"Appuyer sur ${italic}"},{name:"Souligné",legend:"Appuyer sur ${underline}"},{name:"Lien",legend:"Appuyer sur ${link}"},{name:"Enrouler la barre d'outils",legend:"Appuyer sur ${toolbarCollapse}"},{name:"Accéder à l'objet de focus précédent",legend:"Appuyer ${accessPreviousSpace} pour accéder au prochain espace disponible avant le curseur, par exemple: deux éléments HR adjacents. Répéter la combinaison pour joindre les éléments d'espaces distantes."}, -{name:"Accéder au prochain objet de focus",legend:"Appuyer ${accessNextSpace} pour accéder au prochain espace disponible après le curseur, par exemple: deux éléments HR adjacents. Répéter la combinaison pour joindre les éléments d'espaces distantes."},{name:"Aide d'accessibilité",legend:"Appuyer sur ${a11yHelp}"},{name:" Paste as plain text",legend:"Press ${pastetext}",legendEdge:"Press ${pastetext}, followed by ${paste}"}]}],tab:"Tab",pause:"Pause",capslock:"Caps Lock",escape:"Escape",pageUp:"Page Up", -pageDown:"Page Down",leftArrow:"Left Arrow",upArrow:"Up Arrow",rightArrow:"Right Arrow",downArrow:"Down Arrow",insert:"Insert",leftWindowKey:"Left Windows key",rightWindowKey:"Right Windows key",selectKey:"Select key",numpad0:"Numpad 0",numpad1:"Numpad 1",numpad2:"Numpad 2",numpad3:"Numpad 3",numpad4:"Numpad 4",numpad5:"Numpad 5",numpad6:"Numpad 6",numpad7:"Numpad 7",numpad8:"Numpad 8",numpad9:"Numpad 9",multiply:"Multiply",add:"Add",subtract:"Subtract",decimalPoint:"Decimal Point",divide:"Divide", -f1:"F1",f2:"F2",f3:"F3",f4:"F4",f5:"F5",f6:"F6",f7:"F7",f8:"F8",f9:"F9",f10:"F10",f11:"F11",f12:"F12",numLock:"Num Lock",scrollLock:"Scroll Lock",semiColon:"Semicolon",equalSign:"Equal Sign",comma:"Comma",dash:"Dash",period:"Period",forwardSlash:"Forward Slash",graveAccent:"Grave Accent",openBracket:"Open Bracket",backSlash:"Backslash",closeBracket:"Close Bracket",singleQuote:"Single Quote"}); \ No newline at end of file diff --git a/admin/plugins/ckeditor/plugins/a11yhelp/dialogs/lang/fr.js b/admin/plugins/ckeditor/plugins/a11yhelp/dialogs/lang/fr.js deleted file mode 100644 index b56e5b1..0000000 --- a/admin/plugins/ckeditor/plugins/a11yhelp/dialogs/lang/fr.js +++ /dev/null @@ -1,13 +0,0 @@ -/* - Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. - For licensing, see LICENSE.md or http://ckeditor.com/license -*/ -CKEDITOR.plugins.setLang("a11yhelp","fr",{title:"Instructions d'accessibilité",contents:"Contenu de l'aide. Pour fermer cette fenêtre, appuyez sur la touche Échap.",legend:[{name:"Général",items:[{name:"Barre d'outils de l'éditeur",legend:"Appuyer sur ${toolbarFocus} pour accéder à la barre d'outils. Se déplacer vers le groupe suivant ou précédent de la barre d'outils avec les touches Tab et Maj+Tab. Se déplacer vers le bouton suivant ou précédent de la barre d'outils avec les touches Flèche droite et Flèche gauche. Appuyer sur la barre d'espace ou la touche Entrée pour activer le bouton de barre d'outils."}, -{name:"Fenêtre de l'éditeur",legend:"Dans une boîte de dialogue, appuyer sur Tab pour passer à l'élément suivant, appuyer sur Maj+Tab pour passer à l'élément précédent, appuyer sur Entrée pour valider, appuyer sur Échap pour annuler. Quand une boîte de dialogue possède des onglets, la liste peut être atteinte avec Alt+F10 ou avec Tab. Dans la liste des onglets, se déplacer vers le suivant et le précédent avec les touches Flèche droite et Flèche gauche respectivement."},{name:"Menu contextuel de l'éditeur", -legend:"Appuyer sur ${contextMenu} ou sur la touche Menu pour ouvrir le menu contextuel. Se déplacer ensuite vers l'option suivante du menu avec les touches Tab ou Flèche bas. Se déplacer vers l'option précédente avec les touches Maj+Tab ou Flèche haut. Appuyer sur la barre d'espace ou la touche Entrée pour sélectionner l'option du menu. Appuyer sur la barre d'espace, la touche Entrée ou Flèche droite pour ouvrir le sous-menu de l'option sélectionnée. Revenir à l'élément de menu parent avec la touche Échap ou Flèche gauche. Fermer le menu contextuel avec Échap."}, -{name:"Zone de liste de l'éditeur",legend:"Dans une liste en menu déroulant, se déplacer vers l'élément suivant de la liste avec les touches Tab ou Flèche bas. Se déplacer vers l'élément précédent de la liste avec les touches Maj+Tab ou Flèche haut. Appuyer sur la barre d'espace ou sur Entrée pour sélectionner l'option dans la liste. Appuyer sur Échap pour fermer le menu déroulant."},{name:"Barre du chemin d'éléments de l'éditeur",legend:"Appuyer sur ${elementsPathFocus} pour naviguer vers la barre du fil d'Ariane des éléments. Se déplacer vers le bouton de l'élément suivant avec les touches Tab ou Flèche droite. Se déplacer vers le bouton précédent avec les touches Maj+Tab ou Flèche gauche. Appuyer sur la barre d'espace ou sur Entrée pour sélectionner l'élément dans l'éditeur."}]}, -{name:"Commandes",items:[{name:" Annuler la commande",legend:"Appuyer sur ${undo}"},{name:"Commande restaurer",legend:"Appuyer sur ${redo}"},{name:" Commande gras",legend:"Appuyer sur ${bold}"},{name:" Commande italique",legend:"Appuyer sur ${italic}"},{name:" Commande souligné",legend:"Appuyer sur ${underline}"},{name:" Commande lien",legend:"Appuyer sur ${link}"},{name:" Commande enrouler la barre d'outils",legend:"Appuyer sur ${toolbarCollapse}"},{name:"Commande d'accès à l'élément sélectionnable précédent", -legend:"Appuyer sur ${accessNextSpace} pour accéder à l'élément sélectionnable inatteignable le plus proche avant le curseur, par exemple : deux lignes horizontales adjacentes. Répéter la combinaison de touches pour atteindre les éléments sélectionnables précédents."},{name:"Commande d'accès à l'élément sélectionnable suivant",legend:"Appuyer sur ${accessNextSpace} pour accéder à l'élément sélectionnable inatteignable le plus proche après le curseur, par exemple : deux lignes horizontales adjacentes. Répéter la combinaison de touches pour atteindre les éléments sélectionnables suivants."}, -{name:" Aide sur l'accessibilité",legend:"Appuyer sur ${a11yHelp}"},{name:"Coller comme texte sans mise en forme",legend:"Appuyer sur ${pastetext}",legendEdge:"Press ${pastetext}, followed by ${paste}"}]}],tab:"Tabulation",pause:"Pause",capslock:"Verr. Maj.",escape:"Échap",pageUp:"Page supérieure",pageDown:"Page suivante",leftArrow:"Flèche gauche",upArrow:"Flèche haut",rightArrow:"Flèche droite",downArrow:"Flèche basse",insert:"Inser",leftWindowKey:"Touche Windows gauche",rightWindowKey:"Touche Windows droite", -selectKey:"Touche Sélectionner",numpad0:"0 du pavé numérique",numpad1:"1 du pavé numérique",numpad2:"2 du pavé numérique",numpad3:"3 du pavé numérique",numpad4:"4 du pavé numérique",numpad5:"5 du pavé numérique",numpad6:"6 du pavé numérique",numpad7:"7 du pavé numérique",numpad8:"Pavé numérique 8",numpad9:"9 du pavé numérique",multiply:"Multiplier",add:"Plus",subtract:"Moins",decimalPoint:"Point décimal",divide:"Diviser",f1:"F1",f2:"F2",f3:"F3",f4:"F4",f5:"F5",f6:"F6",f7:"F7",f8:"F8",f9:"F9",f10:"F10", -f11:"F11",f12:"F12",numLock:"Verr. Num.",scrollLock:"Arrêt défil.",semiColon:"Point-virgule",equalSign:"Signe égal",comma:"Virgule",dash:"Tiret",period:"Point",forwardSlash:"Barre oblique",graveAccent:"Accent grave",openBracket:"Parenthèse ouvrante",backSlash:"Barre oblique inverse",closeBracket:"Parenthèse fermante",singleQuote:"Apostrophe"}); \ No newline at end of file diff --git a/admin/plugins/ckeditor/plugins/a11yhelp/dialogs/lang/gl.js b/admin/plugins/ckeditor/plugins/a11yhelp/dialogs/lang/gl.js deleted file mode 100644 index 8d1084b..0000000 --- a/admin/plugins/ckeditor/plugins/a11yhelp/dialogs/lang/gl.js +++ /dev/null @@ -1,12 +0,0 @@ -/* - Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. - For licensing, see LICENSE.md or http://ckeditor.com/license -*/ -CKEDITOR.plugins.setLang("a11yhelp","gl",{title:"Instrucións de accesibilidade",contents:"Axuda. Para pechar este diálogo prema ESC.",legend:[{name:"Xeral",items:[{name:"Barra de ferramentas do editor",legend:"Prema ${toolbarFocus} para navegar pola barra de ferramentas. Para moverse polos distintos grupos de ferramentas use as teclas TAB e MAIÚS+TAB. Para moverse polas distintas ferramentas use FRECHA DEREITA ou FRECHA ESQUERDA. Prema ESPAZO ou INTRO para activar o botón da barra de ferramentas."}, -{name:"Editor de diálogo",legend:"Dentro do diálogo, prema TAB para navegar cara os seguintes elementos de diálogo, prema MAIÚS+TAB para moverse cara os anteriores elementos de diálogo, prema INTRO para enviar o diálogo, prema ESC para cancelar o diálogo. Cando o diálogo ten múltiples lapelas, a lista de lapelas pode cinguirse con ALT+F10 ou con TAB como parte da orde de lapelas do diálogo. Coa lapela en foco, pode moverse cara a seguinte ou a anterior lapela coas FRECHAS ESQUERDA e DEREICHA respectivamente."}, -{name:"Editor do menú contextual",legend:"Prema ${contextMenu} ou a TECLA MENÚ para abrir o menú contextual. A seguir móvase á seguinte opción do menú con TAB ou FRECHA ABAIXO. Móvase á opción anterior con MAIÚS + TAB ou FRECHA ARRIBA. Prema ESPAZO ou INTRO para seleccionar a opción do menú. Abra o submenú da opción actual con ESPAZO ou INTRO ou FRECHA DEREITA. Regrese ao elemento principal do menú con ESC ou FRECHA ESQUERDA. Peche o menú contextual con ESC."},{name:"Lista do editor",legend:"Dentro dunha lista, móvase ao seguinte elemento da lista con TAB ou FRECHA ABAIXO. Móvase ao elemento anterior da lista con MAIÚS+TAB ou FRECHA ARRIBA. Prema ESPAZO ou INTRO para escoller a opción da lista. Prema ESC para pechar a lista."}, -{name:"Barra da ruta ao elemento no editor",legend:"Prema ${elementsPathFocus} para navegar ata os elementos da barra de ruta. Móvase ao seguinte elemento botón con TAB ou FRECHA DEREITA. Móvase ao botón anterior con MAIÚS+TAB ou FRECHA ESQUERDA. Prema ESPAZO ou INTRO para seleccionar o elemento no editor."}]},{name:"Ordes",items:[{name:"Orde «desfacer»",legend:"Prema ${undo}"},{name:"Orde «refacer»",legend:"Prema ${redo}"},{name:"Orde «negra»",legend:"Prema ${bold}"},{name:"Orde «cursiva»",legend:"Prema ${italic}"}, -{name:"Orde «subliñar»",legend:"Prema ${underline}"},{name:"Orde «ligazón»",legend:"Prema ${link}"},{name:"Orde «contraer a barra de ferramentas»",legend:"Prema ${toolbarCollapse}"},{name:"Orde «acceder ao anterior espazo en foco»",legend:"Prema ${accessPreviousSpace} para acceder ao espazo máis próximo de foco inalcanzábel anterior ao cursor, por exemplo: dous elementos HR adxacentes. Repita a combinación de teclas para chegar a espazos de foco distantes."},{name:"Orde «acceder ao seguinte espazo en foco»", -legend:"Prema ${accessNextSpace} para acceder ao espazo máis próximo de foco inalcanzábel posterior ao cursor, por exemplo: dous elementos HR adxacentes. Repita a combinación de teclas para chegar a espazos de foco distantes."},{name:"Axuda da accesibilidade",legend:"Prema ${a11yHelp}"},{name:"Pegar como texto simple",legend:"Prema ${pastetext}",legendEdge:"Prema ${pastetext}, seguido de ${paste}"}]}],tab:"Tabulador",pause:"Pausa",capslock:"Bloq. Maiús",escape:"Escape",pageUp:"Páxina arriba",pageDown:"Páxina abaixo", -leftArrow:"Frecha esquerda",upArrow:"Frecha arriba",rightArrow:"Frecha dereita",downArrow:"Frecha abaixo",insert:"Inserir",leftWindowKey:"Tecla Windows esquerda",rightWindowKey:"Tecla Windows dereita",selectKey:"Escolla a tecla",numpad0:"Tec. numérico 0",numpad1:"Tec. numérico 1",numpad2:"Tec. numérico 2",numpad3:"Tec. numérico 3",numpad4:"Tec. numérico 4",numpad5:"Tec. numérico 5",numpad6:"Tec. numérico 6",numpad7:"Tec. numérico 7",numpad8:"Tec. numérico 8",numpad9:"Tec. numérico 9",multiply:"Multiplicar", -add:"Sumar",subtract:"Restar",decimalPoint:"Punto decimal",divide:"Dividir",f1:"F1",f2:"F2",f3:"F3",f4:"F4",f5:"F5",f6:"F6",f7:"F7",f8:"F8",f9:"F9",f10:"F10",f11:"F11",f12:"F12",numLock:"Bloq. num.",scrollLock:"Bloq. despraz.",semiColon:"Punto e coma",equalSign:"Signo igual",comma:"Coma",dash:"Guión",period:"Punto",forwardSlash:"Barra inclinada",graveAccent:"Acento grave",openBracket:"Abrir corchete",backSlash:"Barra invertida",closeBracket:"Pechar corchete",singleQuote:"Comiña simple"}); \ No newline at end of file diff --git a/admin/plugins/ckeditor/plugins/a11yhelp/dialogs/lang/gu.js b/admin/plugins/ckeditor/plugins/a11yhelp/dialogs/lang/gu.js deleted file mode 100644 index aa203e3..0000000 --- a/admin/plugins/ckeditor/plugins/a11yhelp/dialogs/lang/gu.js +++ /dev/null @@ -1,11 +0,0 @@ -/* - Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. - For licensing, see LICENSE.md or http://ckeditor.com/license -*/ -CKEDITOR.plugins.setLang("a11yhelp","gu",{title:"એક્ક્ષેબિલિટી ની વિગતો",contents:"હેલ્પ. આ બંધ કરવા ESC દબાવો.",legend:[{name:"જનરલ",items:[{name:"એડિટર ટૂલબાર",legend:"Press ${toolbarFocus} to navigate to the toolbar. Move to the next and previous toolbar group with TAB and SHIFT+TAB. Move to the next and previous toolbar button with RIGHT ARROW or LEFT ARROW. Press SPACE or ENTER to activate the toolbar button."},{name:"એડિટર ડાયલોગ",legend:"Inside a dialog, press TAB to navigate to the next dialog element, press SHIFT+TAB to move to the previous dialog element, press ENTER to submit the dialog, press ESC to cancel the dialog. When a dialog has multiple tabs, the tab list can be reached either with ALT+F10 or with TAB as part of the dialog tabbing order. With tab list focused, move to the next and previous tab with RIGHT and LEFT ARROW, respectively."}, -{name:"Editor Context Menu",legend:"Press ${contextMenu} or APPLICATION KEY to open context-menu. Then move to next menu option with TAB or DOWN ARROW. Move to previous option with SHIFT+TAB or UP ARROW. Press SPACE or ENTER to select the menu option. Open sub-menu of current option with SPACE or ENTER or RIGHT ARROW. Go back to parent menu item with ESC or LEFT ARROW. Close context menu with ESC."},{name:"Editor List Box",legend:"Inside a list-box, move to next list item with TAB OR DOWN ARROW. Move to previous list item with SHIFT+TAB or UP ARROW. Press SPACE or ENTER to select the list option. Press ESC to close the list-box."}, -{name:"Editor Element Path Bar",legend:"Press ${elementsPathFocus} to navigate to the elements path bar. Move to next element button with TAB or RIGHT ARROW. Move to previous button with SHIFT+TAB or LEFT ARROW. Press SPACE or ENTER to select the element in editor."}]},{name:"કમાંડસ",items:[{name:"અન્ડું કમાંડ",legend:"$ દબાવો {undo}"},{name:"ફરી કરો કમાંડ",legend:"$ દબાવો {redo}"},{name:"બોલ્દનો કમાંડ",legend:"$ દબાવો {bold}"},{name:" Italic command",legend:"Press ${italic}"},{name:" Underline command", -legend:"Press ${underline}"},{name:" Link command",legend:"Press ${link}"},{name:" Toolbar Collapse command",legend:"Press ${toolbarCollapse}"},{name:" Access previous focus space command",legend:"Press ${accessPreviousSpace} to access the closest unreachable focus space before the caret, for example: two adjacent HR elements. Repeat the key combination to reach distant focus spaces."},{name:" Access next focus space command",legend:"Press ${accessNextSpace} to access the closest unreachable focus space after the caret, for example: two adjacent HR elements. Repeat the key combination to reach distant focus spaces."}, -{name:" Accessibility Help",legend:"Press ${a11yHelp}"},{name:" Paste as plain text",legend:"Press ${pastetext}",legendEdge:"Press ${pastetext}, followed by ${paste}"}]}],tab:"Tab",pause:"Pause",capslock:"Caps Lock",escape:"Escape",pageUp:"Page Up",pageDown:"Page Down",leftArrow:"Left Arrow",upArrow:"Up Arrow",rightArrow:"Right Arrow",downArrow:"Down Arrow",insert:"Insert",leftWindowKey:"Left Windows key",rightWindowKey:"Right Windows key",selectKey:"Select key",numpad0:"Numpad 0",numpad1:"Numpad 1", -numpad2:"Numpad 2",numpad3:"Numpad 3",numpad4:"Numpad 4",numpad5:"Numpad 5",numpad6:"Numpad 6",numpad7:"Numpad 7",numpad8:"Numpad 8",numpad9:"Numpad 9",multiply:"Multiply",add:"Add",subtract:"Subtract",decimalPoint:"Decimal Point",divide:"Divide",f1:"F1",f2:"F2",f3:"F3",f4:"F4",f5:"F5",f6:"F6",f7:"F7",f8:"F8",f9:"F9",f10:"F10",f11:"F11",f12:"F12",numLock:"Num Lock",scrollLock:"Scroll Lock",semiColon:"Semicolon",equalSign:"Equal Sign",comma:"Comma",dash:"Dash",period:"Period",forwardSlash:"Forward Slash", -graveAccent:"Grave Accent",openBracket:"Open Bracket",backSlash:"Backslash",closeBracket:"Close Bracket",singleQuote:"Single Quote"}); \ No newline at end of file diff --git a/admin/plugins/ckeditor/plugins/a11yhelp/dialogs/lang/he.js b/admin/plugins/ckeditor/plugins/a11yhelp/dialogs/lang/he.js deleted file mode 100644 index 576584f..0000000 --- a/admin/plugins/ckeditor/plugins/a11yhelp/dialogs/lang/he.js +++ /dev/null @@ -1,11 +0,0 @@ -/* - Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. - For licensing, see LICENSE.md or http://ckeditor.com/license -*/ -CKEDITOR.plugins.setLang("a11yhelp","he",{title:"הוראות נגישות",contents:"הוראות נגישות. לסגירה לחץ אסקייפ (ESC).",legend:[{name:"כללי",items:[{name:"סרגל הכלים",legend:"לחץ על ${toolbarFocus} כדי לנווט לסרגל הכלים. עבור לכפתור הבא עם מקש הטאב (TAB) או חץ שמאלי. עבור לכפתור הקודם עם מקש השיפט (SHIFT) + טאב (TAB) או חץ ימני. לחץ רווח או אנטר (ENTER) כדי להפעיל את הכפתור הנבחר."},{name:"דיאלוגים (חלונות תשאול)",legend:"Inside a dialog, press TAB to navigate to the next dialog element, press SHIFT+TAB to move to the previous dialog element, press ENTER to submit the dialog, press ESC to cancel the dialog. When a dialog has multiple tabs, the tab list can be reached either with ALT+F10 or with TAB as part of the dialog tabbing order. With tab list focused, move to the next and previous tab with RIGHT and LEFT ARROW, respectively."}, -{name:"תפריט ההקשר (Context Menu)",legend:"לחץ ${contextMenu} או APPLICATION KEYכדי לפתוח את תפריט ההקשר. עבור לאפשרות הבאה עם טאב (TAB) או חץ למטה. עבור לאפשרות הקודמת עם שיפט (SHIFT) + טאב (TAB) או חץ למעלה. לחץ רווח או אנטר (ENTER) כדי לבחור את האפשרות. פתח את תת התפריט (Sub-menu) של האפשרות הנוכחית עם רווח או אנטר (ENTER) או חץ שמאלי. חזור לתפריט האב עם אסקייפ (ESC) או חץ שמאלי. סגור את תפריט ההקשר עם אסקייפ (ESC)."},{name:"תפריטים צפים (List boxes)",legend:"Inside a list-box, move to next list item with TAB OR DOWN ARROW. Move to previous list item with SHIFT+TAB or UP ARROW. Press SPACE or ENTER to select the list option. Press ESC to close the list-box."}, -{name:"עץ אלמנטים (Elements Path)",legend:"לחץ ${elementsPathFocus} כדי לנווט לעץ האלמנטים. עבור לפריט הבא עם טאב (TAB) או חץ ימני. עבור לפריט הקודם עם שיפט (SHIFT) + טאב (TAB) או חץ שמאלי. לחץ רווח או אנטר (ENTER) כדי לבחור את האלמנט בעורך."}]},{name:"פקודות",items:[{name:" ביטול צעד אחרון",legend:"לחץ ${undo}"},{name:" חזרה על צעד אחרון",legend:"לחץ ${redo}"},{name:" הדגשה",legend:"לחץ ${bold}"},{name:" הטייה",legend:"לחץ ${italic}"},{name:" הוספת קו תחתון",legend:"לחץ ${underline}"},{name:" הוספת לינק", -legend:"לחץ ${link}"},{name:" כיווץ סרגל הכלים",legend:"לחץ ${toolbarCollapse}"},{name:"גישה למיקום המיקוד הקודם",legend:"לחץ ${accessPreviousSpace} כדי לגשת למיקום המיקוד הלא-נגיש הקרוב לפני הסמן, למשל בין שני אלמנטים סמוכים מסוג HR. חזור על צירוף מקשים זה כדי להגיע למקומות מיקוד רחוקים יותר."},{name:"גישה למיקום המיקוד הבא",legend:"לחץ ${accessNextSpace} כדי לגשת למיקום המיקוד הלא-נגיש הקרוב אחרי הסמן, למשל בין שני אלמנטים סמוכים מסוג HR. חזור על צירוף מקשים זה כדי להגיע למקומות מיקוד רחוקים יותר."}, -{name:" הוראות נגישות",legend:"לחץ ${a11yHelp}"},{name:" Paste as plain text",legend:"Press ${pastetext}",legendEdge:"Press ${pastetext}, followed by ${paste}"}]}],tab:"Tab",pause:"Pause",capslock:"Caps Lock",escape:"Escape",pageUp:"Page Up",pageDown:"Page Down",leftArrow:"חץ שמאלה",upArrow:"חץ למעלה",rightArrow:"חץ ימינה",downArrow:"חץ למטה",insert:"הכנס",leftWindowKey:"Left Windows key",rightWindowKey:"Right Windows key",selectKey:"בחר מקש",numpad0:"Numpad 0",numpad1:"Numpad 1",numpad2:"Numpad 2", -numpad3:"Numpad 3",numpad4:"Numpad 4",numpad5:"Numpad 5",numpad6:"Numpad 6",numpad7:"Numpad 7",numpad8:"Numpad 8",numpad9:"Numpad 9",multiply:"Multiply",add:"הוסף",subtract:"Subtract",decimalPoint:"Decimal Point",divide:"Divide",f1:"F1",f2:"F2",f3:"F3",f4:"F4",f5:"F5",f6:"F6",f7:"F7",f8:"F8",f9:"F9",f10:"F10",f11:"F11",f12:"F12",numLock:"Num Lock",scrollLock:"Scroll Lock",semiColon:"Semicolon",equalSign:"Equal Sign",comma:"Comma",dash:"Dash",period:"Period",forwardSlash:"סלאש",graveAccent:"Grave Accent", -openBracket:"Open Bracket",backSlash:"סלאש הפוך",closeBracket:"Close Bracket",singleQuote:"ציטוט יחיד"}); \ No newline at end of file diff --git a/admin/plugins/ckeditor/plugins/a11yhelp/dialogs/lang/hi.js b/admin/plugins/ckeditor/plugins/a11yhelp/dialogs/lang/hi.js deleted file mode 100644 index a5aafeb..0000000 --- a/admin/plugins/ckeditor/plugins/a11yhelp/dialogs/lang/hi.js +++ /dev/null @@ -1,11 +0,0 @@ -/* - Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. - For licensing, see LICENSE.md or http://ckeditor.com/license -*/ -CKEDITOR.plugins.setLang("a11yhelp","hi",{title:"Accessibility Instructions",contents:"Help Contents. To close this dialog press ESC.",legend:[{name:"सामान्य",items:[{name:"Editor Toolbar",legend:"Press ${toolbarFocus} to navigate to the toolbar. Move to the next and previous toolbar group with TAB and SHIFT+TAB. Move to the next and previous toolbar button with RIGHT ARROW or LEFT ARROW. Press SPACE or ENTER to activate the toolbar button."},{name:"Editor Dialog",legend:"Inside a dialog, press TAB to navigate to the next dialog element, press SHIFT+TAB to move to the previous dialog element, press ENTER to submit the dialog, press ESC to cancel the dialog. When a dialog has multiple tabs, the tab list can be reached either with ALT+F10 or with TAB as part of the dialog tabbing order. With tab list focused, move to the next and previous tab with RIGHT and LEFT ARROW, respectively."}, -{name:"Editor Context Menu",legend:"Press ${contextMenu} or APPLICATION KEY to open context-menu. Then move to next menu option with TAB or DOWN ARROW. Move to previous option with SHIFT+TAB or UP ARROW. Press SPACE or ENTER to select the menu option. Open sub-menu of current option with SPACE or ENTER or RIGHT ARROW. Go back to parent menu item with ESC or LEFT ARROW. Close context menu with ESC."},{name:"Editor List Box",legend:"Inside a list-box, move to next list item with TAB OR DOWN ARROW. Move to previous list item with SHIFT+TAB or UP ARROW. Press SPACE or ENTER to select the list option. Press ESC to close the list-box."}, -{name:"Editor Element Path Bar",legend:"Press ${elementsPathFocus} to navigate to the elements path bar. Move to next element button with TAB or RIGHT ARROW. Move to previous button with SHIFT+TAB or LEFT ARROW. Press SPACE or ENTER to select the element in editor."}]},{name:"Commands",items:[{name:" Undo command",legend:"Press ${undo}"},{name:" Redo command",legend:"Press ${redo}"},{name:" Bold command",legend:"Press ${bold}"},{name:" Italic command",legend:"Press ${italic}"},{name:" Underline command", -legend:"Press ${underline}"},{name:" Link command",legend:"Press ${link}"},{name:" Toolbar Collapse command",legend:"Press ${toolbarCollapse}"},{name:" Access previous focus space command",legend:"Press ${accessPreviousSpace} to access the closest unreachable focus space before the caret, for example: two adjacent HR elements. Repeat the key combination to reach distant focus spaces."},{name:" Access next focus space command",legend:"Press ${accessNextSpace} to access the closest unreachable focus space after the caret, for example: two adjacent HR elements. Repeat the key combination to reach distant focus spaces."}, -{name:" Accessibility Help",legend:"Press ${a11yHelp}"},{name:" Paste as plain text",legend:"Press ${pastetext}",legendEdge:"Press ${pastetext}, followed by ${paste}"}]}],tab:"Tab",pause:"Pause",capslock:"Caps Lock",escape:"Escape",pageUp:"Page Up",pageDown:"Page Down",leftArrow:"Left Arrow",upArrow:"Up Arrow",rightArrow:"Right Arrow",downArrow:"Down Arrow",insert:"Insert",leftWindowKey:"Left Windows key",rightWindowKey:"Right Windows key",selectKey:"Select key",numpad0:"Numpad 0",numpad1:"Numpad 1", -numpad2:"Numpad 2",numpad3:"Numpad 3",numpad4:"Numpad 4",numpad5:"Numpad 5",numpad6:"Numpad 6",numpad7:"Numpad 7",numpad8:"Numpad 8",numpad9:"Numpad 9",multiply:"Multiply",add:"Add",subtract:"Subtract",decimalPoint:"Decimal Point",divide:"Divide",f1:"F1",f2:"F2",f3:"F3",f4:"F4",f5:"F5",f6:"F6",f7:"F7",f8:"F8",f9:"F9",f10:"F10",f11:"F11",f12:"F12",numLock:"Num Lock",scrollLock:"Scroll Lock",semiColon:"Semicolon",equalSign:"Equal Sign",comma:"Comma",dash:"Dash",period:"Period",forwardSlash:"Forward Slash", -graveAccent:"Grave Accent",openBracket:"Open Bracket",backSlash:"Backslash",closeBracket:"Close Bracket",singleQuote:"Single Quote"}); \ No newline at end of file diff --git a/admin/plugins/ckeditor/plugins/a11yhelp/dialogs/lang/hr.js b/admin/plugins/ckeditor/plugins/a11yhelp/dialogs/lang/hr.js deleted file mode 100644 index e71fbda..0000000 --- a/admin/plugins/ckeditor/plugins/a11yhelp/dialogs/lang/hr.js +++ /dev/null @@ -1,11 +0,0 @@ -/* - Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. - For licensing, see LICENSE.md or http://ckeditor.com/license -*/ -CKEDITOR.plugins.setLang("a11yhelp","hr",{title:"Upute dostupnosti",contents:"Sadržaj pomoći. Za zatvaranje pritisnite ESC.",legend:[{name:"Općenito",items:[{name:"Alatna traka",legend:"Pritisni ${toolbarFocus} za navigaciju do alatne trake. Pomicanje do prethodne ili sljedeće alatne grupe vrši se pomoću SHIFT+TAB i TAB. Pomicanje do prethodnog ili sljedećeg gumba u alatnoj traci vrši se pomoću lijeve i desne strelice kursora. Pritisnite SPACE ili ENTER za aktivaciju alatne trake."},{name:"Dijalog", -legend:"Unutar dijaloga, pritisnite TAB kako bi navigirali do sljedećeg elementa dijaloga, pritisnite SHIFT+TAB kako bi se pomaknuli do prethodnog elementa, pritisnite ENTER kako bi poslali dijalog, pritisnite ESC za gašenje dijaloga. Kada dijalog ima više kartica, listi kartica se može pristupiti pomoću ALT+F10 ili sa TAB. Kada je fokusirana lista kartica, pomaknite se naprijed ili nazad pomoću strelica LIJEVO ili DESNO."},{name:"Kontekstni izbornik",legend:"Pritisnite ${contextMenu} ili APPLICATION tipku za otvaranje kontekstnog izbornika. Pomicanje se vrši TAB ili strelicom kursora prema dolje ili SHIFT+TAB ili strelica kursora prema gore. SPACE ili ENTER odabiru opciju izbornika. Otvorite podizbornik trenutne opcije sa SPACE, ENTER ili desna strelica kursora. Povratak na prethodni izbornik vrši se sa ESC ili lijevom strelicom kursora. Zatvaranje se vrši pritiskom na tipku ESC."}, -{name:"Lista",legend:"Unutar list-boxa, pomicanje na sljedeću stavku vrši se sa TAB ili strelica kursora prema dolje. Na prethodnu sa SHIFT+TAB ili strelica prema gore. Pritiskom na SPACE ili ENTER odabire se stavka ili ESC za zatvaranje."},{name:"Traka putanje elemenata",legend:"Pritisnite ${elementsPathFocus} za navigaciju po putanji elemenata. Pritisnite TAB ili desnu strelicu kursora za pomicanje na sljedeći element ili SHIFT+TAB ili lijeva strelica kursora za pomicanje na prethodni element. Pritiskom na SPACE ili ENTER vrši se odabir elementa."}]}, -{name:"Naredbe",items:[{name:"Vrati naredbu",legend:"Pritisni ${undo}"},{name:"Ponovi naredbu",legend:"Pritisni ${redo}"},{name:"Bold naredba",legend:"Pritisni ${bold}"},{name:"Italic naredba",legend:"Pritisni ${italic}"},{name:"Underline naredba",legend:"Pritisni ${underline}"},{name:"Link naredba",legend:"Pritisni ${link}"},{name:"Smanji alatnu traku naredba",legend:"Pritisni ${toolbarCollapse}"},{name:"Naredba za pristupi prethodnom prostoru fokusa",legend:"Pritisni ${accessPreviousSpace} za pristup najbližem nedostupnom razmaku prije kursora, npr.: dva spojena HR elementa. Ponovnim pritiskom dohvatiti će se sljedeći nedostupni razmak."}, -{name:"Naredba za pristup sljedećem prostoru fokusa",legend:"Pritisni ${accessNextSpace} za pristup najbližem nedostupnom razmaku nakon kursora, npr.: dva spojena HR elementa. Ponovnim pritiskom dohvatiti će se sljedeći nedostupni razmak."},{name:"Pomoć za dostupnost",legend:"Pritisni ${a11yHelp}"},{name:" Paste as plain text",legend:"Press ${pastetext}",legendEdge:"Press ${pastetext}, followed by ${paste}"}]}],tab:"Tab",pause:"Pause",capslock:"Caps Lock",escape:"Escape",pageUp:"Page Up",pageDown:"Page Down", -leftArrow:"Lijev strelica",upArrow:"Strelica gore",rightArrow:"Desna strelica",downArrow:"Strelica dolje",insert:"Insert",leftWindowKey:"Lijeva Windows tipka",rightWindowKey:"Desna Windows tipka",selectKey:"Tipka Select",numpad0:"Numpad 0",numpad1:"Numpad 1",numpad2:"Numpad 2",numpad3:"Numpad 3",numpad4:"Numpad 4",numpad5:"Numpad 5",numpad6:"Numpad 6",numpad7:"Numpad 7",numpad8:"umpad 8",numpad9:"Numpad 9",multiply:"Množenje",add:"Zbrajanje",subtract:"Oduzimanje",decimalPoint:"Decimalna točka",divide:"Dijeljenje", -f1:"F1",f2:"F2",f3:"F3",f4:"F4",f5:"F5",f6:"F6",f7:"F7",f8:"F8",f9:"F9",f10:"F10",f11:"F11",f12:"F12",numLock:"Num Lock",scrollLock:"Scroll Lock",semiColon:"Točka zarez",equalSign:"Jednako",comma:"Zarez",dash:"Crtica",period:"Točka",forwardSlash:"Kosa crta",graveAccent:"Akcent",openBracket:"Otvorena uglata zagrada",backSlash:"Obrnuta kosa crta",closeBracket:"Zatvorena uglata zagrada",singleQuote:"Jednostruki navodnik"}); \ No newline at end of file diff --git a/admin/plugins/ckeditor/plugins/a11yhelp/dialogs/lang/hu.js b/admin/plugins/ckeditor/plugins/a11yhelp/dialogs/lang/hu.js deleted file mode 100644 index fbbba98..0000000 --- a/admin/plugins/ckeditor/plugins/a11yhelp/dialogs/lang/hu.js +++ /dev/null @@ -1,12 +0,0 @@ -/* - Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. - For licensing, see LICENSE.md or http://ckeditor.com/license -*/ -CKEDITOR.plugins.setLang("a11yhelp","hu",{title:"Kisegítő utasítások",contents:"Súgó tartalmak. A párbeszédablak bezárásához nyomjon ESC-et.",legend:[{name:"Általános",items:[{name:"Szerkesztő Eszköztár",legend:"Nyomjon ${toolbarFocus} hogy kijelölje az eszköztárat. A következő és előző eszköztár csoporthoz a TAB és SHIFT+TAB-al juthat el. A következő és előző eszköztár gombhoz a BAL NYÍL vagy JOBB NYÍL gombbal juthat el. Nyomjon SPACE-t vagy ENTER-t hogy aktiválja az eszköztár gombot."},{name:"Szerkesző párbeszéd ablak", -legend:"Párbeszédablakban nyomjon TAB-ot a következő párbeszédmezőhöz ugráshoz, nyomjon SHIFT + TAB-ot az előző mezőhöz ugráshoz, nyomjon ENTER-t a párbeszédablak elfogadásához, nyomjon ESC-et a párbeszédablak elvetéséhez. Azokhoz a párbeszédablakokhoz, amik több fület tartalmaznak, nyomjon ALT + F10-et vagy TAB-ot hogy a fülekre ugorjon. Ezután a TAB-al vagy a JOBB NYÍLLAL a következő fülre ugorhat."},{name:"Szerkesztő helyi menü",legend:"Nyomjon ${contextMenu}-t vagy ALKALMAZÁS BILLENTYŰT a helyi menü megnyitásához. Ezután a következő menüpontra léphet a TAB vagy LEFELÉ NYÍLLAL. Az előző opciót a SHIFT+TAB vagy FELFELÉ NYÍLLAL érheti el. Nyomjon SPACE-t vagy ENTER-t a menüpont kiválasztásához. A jelenlegi menüpont almenüjének megnyitásához nyomjon SPACE-t vagy ENTER-t, vagy JOBB NYILAT. A főmenühöz való visszatéréshez nyomjon ESC-et vagy BAL NYILAT. A helyi menü bezárása az ESC billentyűvel lehetséges."}, -{name:"Szerkesztő lista",legend:"A listán belül a következő elemre a TAB vagy LEFELÉ NYÍLLAL mozoghat. Az előző elem kiválasztásához nyomjon SHIFT+TAB-ot vagy FELFELÉ NYILAT. Nyomjon SPACE-t vagy ENTER-t az elem kiválasztásához. Az ESC billentyű megnyomásával bezárhatja a listát."},{name:"Szerkesztő elem utak sáv",legend:"Nyomj ${elementsPathFocus} hogy kijelöld a elemek út sávját. A következő elem gombhoz a TAB-al vagy a JOBB NYÍLLAL juthatsz el. Az előző gombhoz a SHIFT+TAB vagy BAL NYÍLLAL mehetsz. A SPACE vagy ENTER billentyűvel kiválaszthatod az elemet a szerkesztőben."}]}, -{name:"Parancsok",items:[{name:"Parancs visszavonása",legend:"Nyomj ${undo}"},{name:"Parancs megismétlése",legend:"Nyomjon ${redo}"},{name:"Félkövér parancs",legend:"Nyomjon ${bold}"},{name:"Dőlt parancs",legend:"Nyomjon ${italic}"},{name:"Aláhúzott parancs",legend:"Nyomjon ${underline}"},{name:"Link parancs",legend:"Nyomjon ${link}"},{name:"Szerkesztősáv összecsukása parancs",legend:"Nyomjon ${toolbarCollapse}"},{name:"Hozzáférés az előző fókusz helyhez parancs",legend:"Nyomj ${accessNextSpace} hogy hozzáférj a legközelebbi elérhetetlen fókusz helyhez a hiányjel előtt, például: két szomszédos HR elemhez. Ismételd meg a billentyűkombinációt hogy megtaláld a távolabbi fókusz helyeket."}, -{name:"Hozzáférés a következő fókusz helyhez parancs",legend:"Nyomj ${accessNextSpace} hogy hozzáférj a legközelebbi elérhetetlen fókusz helyhez a hiányjel után, például: két szomszédos HR elemhez. Ismételd meg a billentyűkombinációt hogy megtaláld a távolabbi fókusz helyeket."},{name:"Kisegítő súgó",legend:"Nyomjon ${a11yHelp}"},{name:" Paste as plain text",legend:"Press ${pastetext}",legendEdge:"Press ${pastetext}, followed by ${paste}"}]}],tab:"Tab",pause:"Pause",capslock:"Caps Lock",escape:"Escape", -pageUp:"Page Up",pageDown:"Page Down",leftArrow:"balra nyíl",upArrow:"felfelé nyíl",rightArrow:"jobbra nyíl",downArrow:"lefelé nyíl",insert:"Insert",leftWindowKey:"bal Windows-billentyű",rightWindowKey:"jobb Windows-billentyű",selectKey:"Billentyű választása",numpad0:"Számbillentyűk 0",numpad1:"Számbillentyűk 1",numpad2:"Számbillentyűk 2",numpad3:"Számbillentyűk 3",numpad4:"Számbillentyűk 4",numpad5:"Számbillentyűk 5",numpad6:"Számbillentyűk 6",numpad7:"Számbillentyűk 7",numpad8:"Számbillentyűk 8", -numpad9:"Számbillentyűk 9",multiply:"Szorzás",add:"Hozzáadás",subtract:"Kivonás",decimalPoint:"Tizedespont",divide:"Osztás",f1:"F1",f2:"F2",f3:"F3",f4:"F4",f5:"F5",f6:"F6",f7:"F7",f8:"F8",f9:"F9",f10:"F10",f11:"F11",f12:"F12",numLock:"Num Lock",scrollLock:"Scroll Lock",semiColon:"Pontosvessző",equalSign:"Egyenlőségjel",comma:"Vessző",dash:"Kötőjel",period:"Pont",forwardSlash:"Perjel",graveAccent:"Visszafelé dőlő ékezet",openBracket:"Nyitó szögletes zárójel",backSlash:"fordított perjel",closeBracket:"Záró szögletes zárójel", -singleQuote:"szimpla idézőjel"}); \ No newline at end of file diff --git a/admin/plugins/ckeditor/plugins/a11yhelp/dialogs/lang/id.js b/admin/plugins/ckeditor/plugins/a11yhelp/dialogs/lang/id.js deleted file mode 100644 index ca157b0..0000000 --- a/admin/plugins/ckeditor/plugins/a11yhelp/dialogs/lang/id.js +++ /dev/null @@ -1,11 +0,0 @@ -/* - Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. - For licensing, see LICENSE.md or http://ckeditor.com/license -*/ -CKEDITOR.plugins.setLang("a11yhelp","id",{title:"Instruksi Accessibility",contents:"Bantuan. Tekan ESC untuk menutup dialog ini.",legend:[{name:"Umum",items:[{name:"Toolbar Editor",legend:"Tekan ${toolbarFocus} untuk berpindah ke toolbar. Untuk berpindah ke group toolbar selanjutnya dan sebelumnya gunakan TAB dan SHIFT+TAB. Untuk berpindah ke tombol toolbar selanjutnya dan sebelumnya gunakan RIGHT ARROW atau LEFT ARROW. Tekan SPASI atau ENTER untuk mengaktifkan tombol toolbar."},{name:"Dialog Editor", -legend:"Pada jendela dialog, tekan TAB untuk berpindah pada elemen dialog selanjutnya, tekan SHIFT+TAB untuk berpindah pada elemen dialog sebelumnya, tekan ENTER untuk submit dialog, tekan ESC untuk membatalkan dialog. Pada dialog dengan multi tab, daftar tab dapat diakses dengan ALT+F10 ataupun dengan tombol TAB sesuai urutan tab pada dialog. Jika daftar tab aktif terpilih, untuk berpindah tab dapat menggunakan RIGHT dan LEFT ARROW."},{name:"Context Menu Editor",legend:"Press ${contextMenu} or APPLICATION KEY to open context-menu. Then move to next menu option with TAB or DOWN ARROW. Move to previous option with SHIFT+TAB or UP ARROW. Press SPACE or ENTER to select the menu option. Open sub-menu of current option with SPACE or ENTER or RIGHT ARROW. Go back to parent menu item with ESC or LEFT ARROW. Close context menu with ESC."}, -{name:"List Box Editor",legend:"Inside a list-box, move to next list item with TAB OR DOWN ARROW. Move to previous list item with SHIFT+TAB or UP ARROW. Press SPACE or ENTER to select the list option. Press ESC to close the list-box."},{name:"Editor Element Path Bar",legend:"Press ${elementsPathFocus} to navigate to the elements path bar. Move to next element button with TAB or RIGHT ARROW. Move to previous button with SHIFT+TAB or LEFT ARROW. Press SPACE or ENTER to select the element in editor."}]}, -{name:"Commands",items:[{name:" Undo command",legend:"Press ${undo}"},{name:" Redo command",legend:"Press ${redo}"},{name:" Bold command",legend:"Press ${bold}"},{name:" Italic command",legend:"Press ${italic}"},{name:" Underline command",legend:"Press ${underline}"},{name:" Link command",legend:"Press ${link}"},{name:" Toolbar Collapse command",legend:"Press ${toolbarCollapse}"},{name:" Access previous focus space command",legend:"Press ${accessPreviousSpace} to access the closest unreachable focus space before the caret, for example: two adjacent HR elements. Repeat the key combination to reach distant focus spaces."}, -{name:" Access next focus space command",legend:"Press ${accessNextSpace} to access the closest unreachable focus space after the caret, for example: two adjacent HR elements. Repeat the key combination to reach distant focus spaces."},{name:" Accessibility Help",legend:"Press ${a11yHelp}"},{name:" Paste as plain text",legend:"Press ${pastetext}",legendEdge:"Press ${pastetext}, followed by ${paste}"}]}],tab:"Tab",pause:"Pause",capslock:"Caps Lock",escape:"Escape",pageUp:"Page Up",pageDown:"Page Down", -leftArrow:"Left Arrow",upArrow:"Up Arrow",rightArrow:"Right Arrow",downArrow:"Down Arrow",insert:"Insert",leftWindowKey:"Left Windows key",rightWindowKey:"Right Windows key",selectKey:"Select key",numpad0:"Numpad 0",numpad1:"Numpad 1",numpad2:"Numpad 2",numpad3:"Numpad 3",numpad4:"Numpad 4",numpad5:"Numpad 5",numpad6:"Numpad 6",numpad7:"Numpad 7",numpad8:"Numpad 8",numpad9:"Numpad 9",multiply:"Multiply",add:"Add",subtract:"Subtract",decimalPoint:"Decimal Point",divide:"Divide",f1:"F1",f2:"F2",f3:"F3", -f4:"F4",f5:"F5",f6:"F6",f7:"F7",f8:"F8",f9:"F9",f10:"F10",f11:"F11",f12:"F12",numLock:"Num Lock",scrollLock:"Scroll Lock",semiColon:"Semicolon",equalSign:"Equal Sign",comma:"Comma",dash:"Dash",period:"Period",forwardSlash:"Forward Slash",graveAccent:"Grave Accent",openBracket:"Open Bracket",backSlash:"Backslash",closeBracket:"Close Bracket",singleQuote:"Single Quote"}); \ No newline at end of file diff --git a/admin/plugins/ckeditor/plugins/a11yhelp/dialogs/lang/it.js b/admin/plugins/ckeditor/plugins/a11yhelp/dialogs/lang/it.js deleted file mode 100644 index 4887edb..0000000 --- a/admin/plugins/ckeditor/plugins/a11yhelp/dialogs/lang/it.js +++ /dev/null @@ -1,13 +0,0 @@ -/* - Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. - For licensing, see LICENSE.md or http://ckeditor.com/license -*/ -CKEDITOR.plugins.setLang("a11yhelp","it",{title:"Istruzioni di Accessibilità",contents:"Contenuti di Aiuto. Per chiudere questa finestra premi ESC.",legend:[{name:"Generale",items:[{name:"Barra degli strumenti Editor",legend:"Premere ${toolbarFocus} per passare alla barra degli strumenti. Usare TAB per spostarsi al gruppo successivo, MAIUSC+TAB per spostarsi a quello precedente. Usare FRECCIA DESTRA per spostarsi al pulsante successivo, FRECCIA SINISTRA per spostarsi a quello precedente. Premere SPAZIO o INVIO per attivare il pulsante della barra degli strumenti."}, -{name:"Finestra Editor",legend:"All'interno di una finestra di dialogo è possibile premere TAB per passare all'elemento successivo della finestra, MAIUSC+TAB per passare a quello precedente; premere INVIO per inviare i dati della finestra, oppure ESC per annullare l'operazione. Quando una finestra di dialogo ha più schede, è possibile passare all'elenco delle schede sia con ALT+F10 che con TAB, in base all'ordine delle tabulazioni della finestra. Quando l'elenco delle schede è attivo, premere la FRECCIA DESTRA o la FRECCIA SINISTRA per passare rispettivamente alla scheda successiva o a quella precedente."}, -{name:"Menù contestuale Editor",legend:"Premi ${contextMenu} o TASTO APPLICAZIONE per aprire il menu contestuale. Dunque muoviti all'opzione successiva del menu con il tasto TAB o con la Freccia Sotto. Muoviti all'opzione precedente con MAIUSC+TAB o con Freccia Sopra. Premi SPAZIO o INVIO per scegliere l'opzione di menu. Apri il sottomenu dell'opzione corrente con SPAZIO o INVIO oppure con la Freccia Destra. Torna indietro al menu superiore con ESC oppure Freccia Sinistra. Chiudi il menu contestuale con ESC."}, -{name:"Box Lista Editor",legend:"All'interno di un elenco di opzioni, per spostarsi all'elemento successivo premere TAB oppure FRECCIA GIÙ. Per spostarsi all'elemento precedente usare SHIFT+TAB oppure FRECCIA SU. Premere SPAZIO o INVIO per selezionare l'elemento della lista. Premere ESC per chiudere l'elenco di opzioni."},{name:"Barra percorso elementi editor",legend:"Premere ${elementsPathFocus} per passare agli elementi della barra del percorso. Usare TAB o FRECCIA DESTRA per passare al pulsante successivo. Per passare al pulsante precedente premere MAIUSC+TAB o FRECCIA SINISTRA. Premere SPAZIO o INVIO per selezionare l'elemento nell'editor."}]}, -{name:"Comandi",items:[{name:" Annulla comando",legend:"Premi ${undo}"},{name:" Ripeti comando",legend:"Premi ${redo}"},{name:" Comando Grassetto",legend:"Premi ${bold}"},{name:" Comando Corsivo",legend:"Premi ${italic}"},{name:" Comando Sottolineato",legend:"Premi ${underline}"},{name:" Comando Link",legend:"Premi ${link}"},{name:" Comando riduci barra degli strumenti",legend:"Premi ${toolbarCollapse}"},{name:"Comando di accesso al precedente spazio di focus",legend:"Premi ${accessPreviousSpace} per accedere il più vicino spazio di focus non raggiungibile prima del simbolo caret, per esempio due elementi HR adiacenti. Ripeti la combinazione di tasti per raggiungere spazi di focus distanti."}, -{name:"Comando di accesso al prossimo spazio di focus",legend:"Premi ${accessNextSpace} per accedere il più vicino spazio di focus non raggiungibile dopo il simbolo caret, per esempio due elementi HR adiacenti. Ripeti la combinazione di tasti per raggiungere spazi di focus distanti."},{name:" Aiuto Accessibilità",legend:"Premi ${a11yHelp}"},{name:"Incolla come testo semplice",legend:"Premi ${pastetext}",legendEdge:"Premi ${pastetext}, seguito da ${paste}"}]}],tab:"Tab",pause:"Pausa",capslock:"Bloc Maiusc", -escape:"Esc",pageUp:"Pagina sù",pageDown:"Pagina giù",leftArrow:"Freccia sinistra",upArrow:"Freccia su",rightArrow:"Freccia destra",downArrow:"Freccia giù",insert:"Ins",leftWindowKey:"Tasto di Windows sinistro",rightWindowKey:"Tasto di Windows destro",selectKey:"Tasto di selezione",numpad0:"0 sul tastierino numerico",numpad1:"1 sul tastierino numerico",numpad2:"2 sul tastierino numerico",numpad3:"3 sul tastierino numerico",numpad4:"4 sul tastierino numerico",numpad5:"5 sul tastierino numerico",numpad6:"6 sul tastierino numerico", -numpad7:"7 sul tastierino numerico",numpad8:"8 sul tastierino numerico",numpad9:"9 sul tastierino numerico",multiply:"Moltiplicazione",add:"Più",subtract:"Sottrazione",decimalPoint:"Punto decimale",divide:"Divisione",f1:"F1",f2:"F2",f3:"F3",f4:"F4",f5:"F5",f6:"F6",f7:"F7",f8:"F8",f9:"F9",f10:"F10",f11:"F11",f12:"F12",numLock:"Bloc Num",scrollLock:"Bloc Scorr",semiColon:"Punto-e-virgola",equalSign:"Segno di uguale",comma:"Virgola",dash:"Trattino",period:"Punto",forwardSlash:"Barra",graveAccent:"Accento grave", -openBracket:"Parentesi quadra aperta",backSlash:"Barra rovesciata",closeBracket:"Parentesi quadra chiusa",singleQuote:"Apostrofo"}); \ No newline at end of file diff --git a/admin/plugins/ckeditor/plugins/a11yhelp/dialogs/lang/ja.js b/admin/plugins/ckeditor/plugins/a11yhelp/dialogs/lang/ja.js deleted file mode 100644 index 892dca0..0000000 --- a/admin/plugins/ckeditor/plugins/a11yhelp/dialogs/lang/ja.js +++ /dev/null @@ -1,9 +0,0 @@ -/* - Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. - For licensing, see LICENSE.md or http://ckeditor.com/license -*/ -CKEDITOR.plugins.setLang("a11yhelp","ja",{title:"ユーザー補助の説明",contents:"ヘルプ このダイアログを閉じるには ESCを押してください。",legend:[{name:"全般",items:[{name:"エディターツールバー",legend:"${toolbarFocus} を押すとツールバーのオン/オフ操作ができます。カーソルをツールバーのグループで移動させるにはTabかSHIFT+Tabを押します。グループ内でカーソルを移動させるには、右カーソルか左カーソルを押します。スペースキーやエンターを押すとボタンを有効/無効にすることができます。"},{name:"編集ダイアログ",legend:"Inside a dialog, press TAB to navigate to the next dialog element, press SHIFT+TAB to move to the previous dialog element, press ENTER to submit the dialog, press ESC to cancel the dialog. When a dialog has multiple tabs, the tab list can be reached either with ALT+F10 or with TAB as part of the dialog tabbing order. With tab list focused, move to the next and previous tab with RIGHT and LEFT ARROW, respectively."}, -{name:"エディターのメニュー",legend:"${contextMenu} キーかAPPLICATION KEYを押すとコンテキストメニューが開きます。Tabか下カーソルでメニューのオプション選択が下に移動します。戻るには、SHIFT+Tabか上カーソルです。スペースもしくはENTERキーでメニューオプションを決定できます。現在選んでいるオプションのサブメニューを開くには、スペース、もしくは右カーソルを押します。サブメニューから親メニューに戻るには、ESCか左カーソルを押してください。ESCでコンテキストメニュー自体をキャンセルできます。"},{name:"エディターリストボックス",legend:"リストボックス内で移動するには、Tabか下カーソルで次のアイテムへ移動します。SHIFT+Tabで前のアイテムに戻ります。リストのオプションを選択するには、スペースもしくは、ENTERを押してください。リストボックスを閉じるには、ESCを押してください。"},{name:"エディター要素パスバー",legend:"${elementsPathFocus} を押すとエレメントパスバーを操作出来ます。Tabか右カーソルで次のエレメントを選択できます。前のエレメントを選択するには、SHIFT+Tabか左カーソルです。スペースもしくは、ENTERでエディタ内の対象エレメントを選択出来ます。"}]}, -{name:"コマンド",items:[{name:"元に戻す",legend:"${undo} をクリック"},{name:"やり直し",legend:"${redo} をクリック"},{name:"太字",legend:"${bold} をクリック"},{name:"斜体 ",legend:"${italic} をクリック"},{name:"下線",legend:"${underline} をクリック"},{name:"リンク",legend:"${link} をクリック"},{name:"ツールバーをたたむ",legend:"${toolbarCollapse} をクリック"},{name:"前のカーソル移動のできないポイントへ",legend:"${accessPreviousSpace} を押すとカーソルより前にあるカーソルキーで入り込めないスペースへ移動できます。例えば、HRエレメントが2つ接している場合などです。離れた場所へは、複数回キーを押します。"},{name:"次のカーソルポイントへ移動する",legend:"${accessNextSpace} を押すとカーソルより後ろにあるカーソルキーで入り込めないスペースへ移動できます。例えば、HRエレメントが2つ接している場合などです。離れた場所へは、複数回キーを押します。"}, -{name:"ユーザー補助ヘルプ",legend:"${a11yHelp} をクリック"},{name:" Paste as plain text",legend:"Press ${pastetext}",legendEdge:"Press ${pastetext}, followed by ${paste}"}]}],tab:"Tab",pause:"Pause",capslock:"Caps Lock",escape:"Escape",pageUp:"Page Up",pageDown:"Page Down",leftArrow:"左矢印",upArrow:"上矢印",rightArrow:"右矢印",downArrow:"下矢印",insert:"Insert",leftWindowKey:"左Windowキー",rightWindowKey:"右のWindowキー",selectKey:"Select",numpad0:"Num 0",numpad1:"Num 1",numpad2:"Num 2",numpad3:"Num 3",numpad4:"Num 4",numpad5:"Num 5", -numpad6:"Num 6",numpad7:"Num 7",numpad8:"Num 8",numpad9:"Num 9",multiply:"掛ける",add:"足す",subtract:"引く",decimalPoint:"小数点",divide:"割る",f1:"F1",f2:"F2",f3:"F3",f4:"F4",f5:"F5",f6:"F6",f7:"F7",f8:"F8",f9:"F9",f10:"F10",f11:"F11",f12:"F12",numLock:"Num Lock",scrollLock:"Scroll Lock",semiColon:"セミコロン",equalSign:"イコール記号",comma:"カンマ",dash:"ダッシュ",period:"ピリオド",forwardSlash:"フォワードスラッシュ",graveAccent:"グレイヴアクセント",openBracket:"開きカッコ",backSlash:"バックスラッシュ",closeBracket:"閉じカッコ",singleQuote:"シングルクォート"}); \ No newline at end of file diff --git a/admin/plugins/ckeditor/plugins/a11yhelp/dialogs/lang/km.js b/admin/plugins/ckeditor/plugins/a11yhelp/dialogs/lang/km.js deleted file mode 100644 index 7d28f05..0000000 --- a/admin/plugins/ckeditor/plugins/a11yhelp/dialogs/lang/km.js +++ /dev/null @@ -1,11 +0,0 @@ -/* - Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. - For licensing, see LICENSE.md or http://ckeditor.com/license -*/ -CKEDITOR.plugins.setLang("a11yhelp","km",{title:"Accessibility Instructions",contents:"មាតិកា​ជំនួយ។ ដើម្បី​បិទ​ផ្ទាំង​នេះ សូម​ចុច ESC ។",legend:[{name:"ទូទៅ",items:[{name:"របារ​ឧបករណ៍​កម្មវិធី​និពន្ធ",legend:"Press ${toolbarFocus} to navigate to the toolbar. Move to the next and previous toolbar group with TAB and SHIFT+TAB. Move to the next and previous toolbar button with RIGHT ARROW or LEFT ARROW. Press SPACE or ENTER to activate the toolbar button."},{name:"ផ្ទាំង​កម្មវិធីនិពន្ធ",legend:"Inside a dialog, press TAB to navigate to the next dialog element, press SHIFT+TAB to move to the previous dialog element, press ENTER to submit the dialog, press ESC to cancel the dialog. When a dialog has multiple tabs, the tab list can be reached either with ALT+F10 or with TAB as part of the dialog tabbing order. With tab list focused, move to the next and previous tab with RIGHT and LEFT ARROW, respectively."}, -{name:"ម៉ីនុយបរិបទអ្នកកែសម្រួល",legend:"Press ${contextMenu} or APPLICATION KEY to open context-menu. Then move to next menu option with TAB or DOWN ARROW. Move to previous option with SHIFT+TAB or UP ARROW. Press SPACE or ENTER to select the menu option. Open sub-menu of current option with SPACE or ENTER or RIGHT ARROW. Go back to parent menu item with ESC or LEFT ARROW. Close context menu with ESC."},{name:"ប្រអប់បញ្ជីអ្នកកែសម្រួល",legend:"Inside a list-box, move to next list item with TAB OR DOWN ARROW. Move to previous list item with SHIFT+TAB or UP ARROW. Press SPACE or ENTER to select the list option. Press ESC to close the list-box."}, -{name:"Editor Element Path Bar",legend:"Press ${elementsPathFocus} to navigate to the elements path bar. Move to next element button with TAB or RIGHT ARROW. Move to previous button with SHIFT+TAB or LEFT ARROW. Press SPACE or ENTER to select the element in editor."}]},{name:"ពាក្យបញ្ជា",items:[{name:"ការ​បញ្ជា​មិនធ្វើវិញ",legend:"ចុច ${undo}"},{name:"ការបញ្ជា​ធ្វើវិញ",legend:"ចុច ${redo}"},{name:"ការបញ្ជា​អក្សរ​ដិត",legend:"ចុច ${bold}"},{name:"ការបញ្ជា​អក្សរ​ទ្រេត",legend:"ចុច ${italic}"},{name:"ពាក្យបញ្ជា​បន្ទាត់​ពីក្រោម", -legend:"ចុច ${underline}"},{name:"ពាក្យបញ្ជា​តំណ",legend:"ចុច ${link}"},{name:" Toolbar Collapse command",legend:"Press ${toolbarCollapse}"},{name:" Access previous focus space command",legend:"Press ${accessPreviousSpace} to access the closest unreachable focus space before the caret, for example: two adjacent HR elements. Repeat the key combination to reach distant focus spaces."},{name:" Access next focus space command",legend:"Press ${accessNextSpace} to access the closest unreachable focus space after the caret, for example: two adjacent HR elements. Repeat the key combination to reach distant focus spaces."}, -{name:"ជំនួយ​ពី​ភាព​ងាយស្រួល",legend:"ជួយ ${a11yHelp}"},{name:" Paste as plain text",legend:"Press ${pastetext}",legendEdge:"Press ${pastetext}, followed by ${paste}"}]}],tab:"Tab",pause:"ផ្អាក",capslock:"Caps Lock",escape:"ចាកចេញ",pageUp:"ទំព័រ​លើ",pageDown:"ទំព័រ​ក្រោម",leftArrow:"ព្រួញ​ឆ្វេង",upArrow:"ព្រួញ​លើ",rightArrow:"ព្រួញ​ស្ដាំ",downArrow:"ព្រួញ​ក្រោម",insert:"បញ្ចូល",leftWindowKey:"Left Windows key",rightWindowKey:"Right Windows key",selectKey:"ជ្រើស​គ្រាប់​ចុច",numpad0:"Numpad 0",numpad1:"Numpad 1", -numpad2:"Numpad 2",numpad3:"Numpad 3",numpad4:"Numpad 4",numpad5:"Numpad 5",numpad6:"Numpad 6",numpad7:"Numpad 7",numpad8:"Numpad 8",numpad9:"Numpad 9",multiply:"គុណ",add:"បន្ថែម",subtract:"ដក",decimalPoint:"ចំណុចទសភាគ",divide:"ចែក",f1:"F1",f2:"F2",f3:"F3",f4:"F4",f5:"F5",f6:"F6",f7:"F7",f8:"F8",f9:"F9",f10:"F10",f11:"F11",f12:"F12",numLock:"Num Lock",scrollLock:"បិទ​រំកិល",semiColon:"ចុច​ក្បៀស",equalSign:"សញ្ញា​អឺរ៉ូ",comma:"ក្បៀស",dash:"Dash",period:"ចុច",forwardSlash:"Forward Slash",graveAccent:"Grave Accent", -openBracket:"តង្កៀប​បើក",backSlash:"Backslash",closeBracket:"តង្កៀប​បិទ",singleQuote:"បន្តក់​មួយ"}); \ No newline at end of file diff --git a/admin/plugins/ckeditor/plugins/a11yhelp/dialogs/lang/ko.js b/admin/plugins/ckeditor/plugins/a11yhelp/dialogs/lang/ko.js deleted file mode 100644 index e76eabf..0000000 --- a/admin/plugins/ckeditor/plugins/a11yhelp/dialogs/lang/ko.js +++ /dev/null @@ -1,10 +0,0 @@ -/* - Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. - For licensing, see LICENSE.md or http://ckeditor.com/license -*/ -CKEDITOR.plugins.setLang("a11yhelp","ko",{title:"접근성 설명",contents:"도움말. 이 창을 닫으시려면 ESC 를 누르세요.",legend:[{name:"일반",items:[{name:"편집기 툴바",legend:"툴바를 탐색하시려면 ${toolbarFocus} 를 투르세요. 이전/다음 툴바 그룹으로 이동하시려면 TAB 키 또는 SHIFT+TAB 키를 누르세요. 이전/다음 툴바 버튼으로 이동하시려면 오른쪽 화살표 키 또는 왼쪽 화살표 키를 누르세요. 툴바 버튼을 활성화 하려면 SPACE 키 또는 ENTER 키를 누르세요."},{name:"편집기 다이얼로그",legend:"TAB 키를 누르면 다음 대화상자로 이동하고, SHIFT+TAB 키를 누르면 이전 대화상자로 이동합니다. 대화상자를 제출하려면 ENTER 키를 누르고, ESC 키를 누르면 대화상자를 취소합니다. 대화상자에 탭이 여러개 있을 때, ALT+F10 키 또는 TAB 키를 누르면 순서에 따라 탭 목록에 도달할 수 있습니다. 탭 목록에 초점이 맞을 때, 오른쪽과 왼쪽 화살표 키를 이용하면 각각 다음과 이전 탭으로 이동할 수 있습니다."}, -{name:"편집기 환경 메뉴",legend:"${contextMenu} 또는 어플리케이션 키를 누르면 환경-메뉴를 열 수 있습니다. 환경-메뉴에서 TAB 키 또는 아래 화살표 키를 누르면 다음 메뉴 옵션으로 이동할 수 있습니다. 이전 옵션으로 이동은 SHIFT+TAB 키 또는 위 화살표 키를 눌러서 할 수 있습니다. 스페이스 키 또는 ENTER 키를 눌러서 메뉴 옵션을 선택할 수 있습니다. 스페이스 키 또는 ENTER 키 또는 오른쪽 화살표 키를 눌러서 하위 메뉴를 열 수 있습니다. 부모 메뉴 항목으로 돌아가려면 ESC 키 또는 왼쪽 화살표 키를 누릅니다. ESC 키를 눌러서 환경-메뉴를 닫습니다."},{name:"편집기 목록 박스",legend:"리스트-박스 내에서, 목록의 다음 항목으로 이동하려면 TAB 키 또는 아래쪽 화살표 키를 누릅니다. 목록의 이전 항목으로 이동하려면 SHIFT+TAB 키 또는 위쪽 화살표 키를 누릅니다. 스페이스 키 또는 ENTER 키를 누르면 목록의 해당 옵션을 선택합니다. ESC 키를 눌러서 리스트-박스를 닫을 수 있습니다."}, -{name:"편집기 요소 경로 막대",legend:"${elementsPathFocus}를 눌러서 요소 경로 막대를 탐색할 수 있습니다. 다음 요소로 이동하려면 TAB 키 또는 오른쪽 화살표 키를 누릅니다. SHIFT+TAB 키 또는 왼쪽 화살표 키를 누르면 이전 버튼으로 이동할 수 있습니다. 스페이스 키나 ENTER 키를 누르면 편집기의 해당 항목을 선택합니다."}]},{name:"명령",items:[{name:" 명령 실행 취소",legend:"${undo} 누르시오"},{name:" 명령 다시 실행",legend:"${redo} 누르시오"},{name:" 굵게 명령",legend:"${bold} 누르시오"},{name:" 기울임 꼴 명령",legend:"${italic} 누르시오"},{name:" 밑줄 명령",legend:"${underline} 누르시오"},{name:" 링크 명령",legend:"${link} 누르시오"},{name:" 툴바 줄이기 명령",legend:"${toolbarCollapse} 누르시오"}, -{name:" 이전 포커스 공간 접근 명령",legend:"탈자 기호(^) 이전에 ${accessPreviousSpace} 를 누르면, 접근 불가능하면서 가장 가까운 포커스 영역에 접근합니다. 예를 들면, 두 인접한 HR 요소가 있습니다. 키 조합을 반복해서 멀리있는 포커스 영역들에 도달할 수 있습니다."},{name:"다음 포커스 공간 접근 명령",legend:"탈자 기호(^) 다음에 ${accessNextSpace} 를 누르면, 접근 불가능하면서 가장 가까운 포커스 영역에 접근합니다. 예를 들면, 두 인접한 HR 요소가 있습니다. 키 조합을 반복해서 멀리있는 포커스 영역들에 도달할 수 있습니다. "},{name:" 접근성 도움말",legend:"${a11yHelp} 누르시오"},{name:" Paste as plain text",legend:"Press ${pastetext}",legendEdge:"Press ${pastetext}, followed by ${paste}"}]}], -tab:"탭 키",pause:"일시정지 키",capslock:"캡스 록 키",escape:"이스케이프 키",pageUp:"페이지 업 키",pageDown:"페이지 다운 키",leftArrow:"왼쪽 화살표 키",upArrow:"위쪽 화살표 키",rightArrow:"오른쪽 화살표 키",downArrow:"아래쪽 화살표 키",insert:"인서트 키",leftWindowKey:"왼쪽 윈도우 키",rightWindowKey:"오른쪽 윈도우 키",selectKey:"셀렉트 키",numpad0:"숫자 패드 0 키",numpad1:"숫자 패드 1 키",numpad2:"숫자 패드 2 키",numpad3:"숫자 패드 3 키",numpad4:"숫자 패드 4 키",numpad5:"숫자 패드 5 키",numpad6:"숫자 패드 6 키",numpad7:"숫자 패드 7 키",numpad8:"숫자 패드 8 키",numpad9:"숫자 패드 9 키",multiply:"곱셈(*) 키",add:"덧셈(+) 키",subtract:"뺄셈(-) 키", -decimalPoint:"온점(.) 키",divide:"나눗셈(/) 키",f1:"F1 키",f2:"F2 키",f3:"F3 키",f4:"F4 키",f5:"F5 키",f6:"F6 키",f7:"F7 키",f8:"F8 키",f9:"F9 키",f10:"F10 키",f11:"F11 키",f12:"F12 키",numLock:"Num Lock 키",scrollLock:"Scroll Lock 키",semiColon:"세미콜론(;) 키",equalSign:"등호(\x3d) 키",comma:"쉼표(,) 키",dash:"대시(-) 키",period:"온점(.) 키",forwardSlash:"슬래시(/) 키",graveAccent:"억음 악센트(`) 키",openBracket:"브라켓 열기([) 키",backSlash:"역슬래시(\\\\) 키",closeBracket:"브라켓 닫기(]) 키",singleQuote:"외 따옴표(') 키"}); \ No newline at end of file diff --git a/admin/plugins/ckeditor/plugins/a11yhelp/dialogs/lang/ku.js b/admin/plugins/ckeditor/plugins/a11yhelp/dialogs/lang/ku.js deleted file mode 100644 index d0689e1..0000000 --- a/admin/plugins/ckeditor/plugins/a11yhelp/dialogs/lang/ku.js +++ /dev/null @@ -1,11 +0,0 @@ -/* - Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. - For licensing, see LICENSE.md or http://ckeditor.com/license -*/ -CKEDITOR.plugins.setLang("a11yhelp","ku",{title:"ڕێنمای لەبەردەستدابوون",contents:"پێکهاتەی یارمەتی. کلیك ESC بۆ داخستنی ئەم دیالۆگه.",legend:[{name:"گشتی",items:[{name:"تووڵامرازی دەستكاریكەر",legend:"کلیك ${toolbarFocus} بۆ ڕابەری تووڵامراز. بۆ گواستنەوەی پێشوو داهاتووی گرووپی تووڵامرازی داگرتنی کلیلی TAB لەگەڵ‌ SHIFT+TAB. بۆ گواستنەوەی پێشوو داهاتووی دووگمەی تووڵامرازی لەڕێی کلیلی تیری دەستی ڕاست یان کلیلی تیری دەستی چەپ. کلیکی کلیلی SPACE یان ENTER بۆ چالاککردنی دووگمەی تووڵامراز."},{name:"دیالۆگی دەستكاریكەر", -legend:"Inside a dialog, press TAB to navigate to the next dialog element, press SHIFT+TAB to move to the previous dialog element, press ENTER to submit the dialog, press ESC to cancel the dialog. When a dialog has multiple tabs, the tab list can be reached either with ALT+F10 or with TAB as part of the dialog tabbing order. With tab list focused, move to the next and previous tab with RIGHT and LEFT ARROW, respectively."},{name:"پێڕستی سەرنووسەر",legend:"کلیك ${contextMenu} یان دوگمەی لیسته‌(Menu) بۆ کردنەوەی لیستەی دەق. بۆ چوونە هەڵبژاردەیەکی تر له‌ لیسته‌ کلیکی کلیلی TAB یان کلیلی تیری ڕوو لەخوارەوه‌ بۆ چوون بۆ هەڵبژاردەی پێشوو کلیکی کلیلی SHIFT+TAB یان کلیلی تیری ڕوو له‌ سەرەوە. داگرتنی کلیلی SPACE یان ENTER بۆ هەڵبژاردنی هەڵبژاردەی لیسته‌. بۆ کردنەوەی لقی ژێر لیسته‌ لەهەڵبژاردەی لیستە کلیکی کلیلی SPACE یان ENTER یان کلیلی تیری دەستی ڕاست. بۆ گەڕانەوه بۆ سەرەوەی لیسته‌ کلیکی کلیلی ESC یان کلیلی تیری دەستی چەپ. بۆ داخستنی لیستە کلیكی کلیلی ESC بکە."}, -{name:"لیستی سنووقی سەرنووسەر",legend:"لەناو سنوقی لیست, چۆن بۆ هەڵنبژاردەی لیستێکی تر کلیکی کلیلی TAB یان کلیلی تیری ڕوو لەخوار. چوون بۆ هەڵبژاردەی لیستی پێشوو کلیکی کلیلی SHIFT+TAB یان کلیلی تیری ڕوو لەسەرەوه‌. کلیکی کلیلی SPACE یان ENTER بۆ دیاریکردنی ‌هەڵبژاردەی لیست. کلیکی کلیلی ESC بۆ داخستنی سنوقی لیست."},{name:"تووڵامرازی توخم",legend:"کلیك ${elementsPathFocus} بۆ ڕابەری تووڵامرازی توخمەکان. چوون بۆ دوگمەی توخمێکی تر کلیکی کلیلی TAB یان کلیلی تیری دەستی ڕاست. چوون بۆ دوگمەی توخمی پێشوو کلیلی SHIFT+TAB یان کلیکی کلیلی تیری دەستی چەپ. داگرتنی کلیلی SPACE یان ENTER بۆ دیاریکردنی توخمەکه‌ لەسەرنووسه."}]}, -{name:"فەرمانەکان",items:[{name:"پووچکردنەوەی فەرمان",legend:"کلیك ${undo}"},{name:"هەڵگەڕانەوەی فەرمان",legend:"کلیك ${redo}"},{name:"فەرمانی دەقی قەڵەو",legend:"کلیك ${bold}"},{name:"فەرمانی دەقی لار",legend:"کلیك ${italic}"},{name:"فەرمانی ژێرهێڵ",legend:"کلیك ${underline}"},{name:"فەرمانی به‌ستەر",legend:"کلیك ${link}"},{name:"شاردەنەوەی تووڵامراز",legend:"کلیك ${toolbarCollapse}"},{name:"چوونەناو سەرنجدانی پێشوی فەرمانی بۆشایی",legend:"کلیک ${accessPreviousSpace} to access the closest unreachable focus space before the caret, for example: two adjacent HR elements. Repeat the key combination to reach distant focus spaces."}, -{name:"چوونەناو سەرنجدانی داهاتووی فەرمانی بۆشایی",legend:"کلیک ${accessNextSpace} to access the closest unreachable focus space after the caret, for example: two adjacent HR elements. Repeat the key combination to reach distant focus spaces."},{name:"دەستپێگەیشتنی یارمەتی",legend:"کلیك ${a11yHelp}"},{name:" Paste as plain text",legend:"Press ${pastetext}",legendEdge:"Press ${pastetext}, followed by ${paste}"}]}],tab:"Tab",pause:"Pause",capslock:"Caps Lock",escape:"Escape",pageUp:"Page Up",pageDown:"Page Down", -leftArrow:"Left Arrow",upArrow:"Up Arrow",rightArrow:"Right Arrow",downArrow:"Down Arrow",insert:"Insert",leftWindowKey:"پەنجەرەی چەپ",rightWindowKey:"پەنجەرەی ڕاست",selectKey:"Select",numpad0:"Numpad 0",numpad1:"1",numpad2:"2",numpad3:"3",numpad4:"4",numpad5:"5",numpad6:"6",numpad7:"7",numpad8:"8",numpad9:"9",multiply:"*",add:"+",subtract:"-",decimalPoint:".",divide:"/",f1:"F1",f2:"F2",f3:"F3",f4:"F4",f5:"F5",f6:"F6",f7:"F7",f8:"F8",f9:"F9",f10:"F10",f11:"F11",f12:"F12",numLock:"Num Lock",scrollLock:"Scroll Lock", -semiColon:";",equalSign:"\x3d",comma:",",dash:"-",period:".",forwardSlash:"/",graveAccent:"`",openBracket:"[",backSlash:"\\\\",closeBracket:"}",singleQuote:"'"}); \ No newline at end of file diff --git a/admin/plugins/ckeditor/plugins/a11yhelp/dialogs/lang/lt.js b/admin/plugins/ckeditor/plugins/a11yhelp/dialogs/lang/lt.js deleted file mode 100644 index 89c90bc..0000000 --- a/admin/plugins/ckeditor/plugins/a11yhelp/dialogs/lang/lt.js +++ /dev/null @@ -1,11 +0,0 @@ -/* - Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. - For licensing, see LICENSE.md or http://ckeditor.com/license -*/ -CKEDITOR.plugins.setLang("a11yhelp","lt",{title:"Accessibility Instructions",contents:"Help Contents. To close this dialog press ESC.",legend:[{name:"Bendros savybės",items:[{name:"Editor Toolbar",legend:"Press ${toolbarFocus} to navigate to the toolbar. Move to the next and previous toolbar group with TAB and SHIFT+TAB. Move to the next and previous toolbar button with RIGHT ARROW or LEFT ARROW. Press SPACE or ENTER to activate the toolbar button."},{name:"Editor Dialog",legend:"Inside a dialog, press TAB to navigate to the next dialog element, press SHIFT+TAB to move to the previous dialog element, press ENTER to submit the dialog, press ESC to cancel the dialog. When a dialog has multiple tabs, the tab list can be reached either with ALT+F10 or with TAB as part of the dialog tabbing order. With tab list focused, move to the next and previous tab with RIGHT and LEFT ARROW, respectively."}, -{name:"Editor Context Menu",legend:"Press ${contextMenu} or APPLICATION KEY to open context-menu. Then move to next menu option with TAB or DOWN ARROW. Move to previous option with SHIFT+TAB or UP ARROW. Press SPACE or ENTER to select the menu option. Open sub-menu of current option with SPACE or ENTER or RIGHT ARROW. Go back to parent menu item with ESC or LEFT ARROW. Close context menu with ESC."},{name:"Editor List Box",legend:"Inside a list-box, move to next list item with TAB OR DOWN ARROW. Move to previous list item with SHIFT+TAB or UP ARROW. Press SPACE or ENTER to select the list option. Press ESC to close the list-box."}, -{name:"Editor Element Path Bar",legend:"Press ${elementsPathFocus} to navigate to the elements path bar. Move to next element button with TAB or RIGHT ARROW. Move to previous button with SHIFT+TAB or LEFT ARROW. Press SPACE or ENTER to select the element in editor."}]},{name:"Commands",items:[{name:" Undo command",legend:"Press ${undo}"},{name:" Redo command",legend:"Press ${redo}"},{name:" Bold command",legend:"Press ${bold}"},{name:" Italic command",legend:"Press ${italic}"},{name:" Underline command", -legend:"Press ${underline}"},{name:" Link command",legend:"Press ${link}"},{name:" Toolbar Collapse command",legend:"Press ${toolbarCollapse}"},{name:" Access previous focus space command",legend:"Press ${accessPreviousSpace} to access the closest unreachable focus space before the caret, for example: two adjacent HR elements. Repeat the key combination to reach distant focus spaces."},{name:" Access next focus space command",legend:"Press ${accessNextSpace} to access the closest unreachable focus space after the caret, for example: two adjacent HR elements. Repeat the key combination to reach distant focus spaces."}, -{name:" Accessibility Help",legend:"Press ${a11yHelp}"},{name:" Paste as plain text",legend:"Press ${pastetext}",legendEdge:"Press ${pastetext}, followed by ${paste}"}]}],tab:"Tab",pause:"Pause",capslock:"Caps Lock",escape:"Escape",pageUp:"Page Up",pageDown:"Page Down",leftArrow:"Left Arrow",upArrow:"Up Arrow",rightArrow:"Right Arrow",downArrow:"Down Arrow",insert:"Insert",leftWindowKey:"Left Windows key",rightWindowKey:"Right Windows key",selectKey:"Select key",numpad0:"Numpad 0",numpad1:"Numpad 1", -numpad2:"Numpad 2",numpad3:"Numpad 3",numpad4:"Numpad 4",numpad5:"Numpad 5",numpad6:"Numpad 6",numpad7:"Numpad 7",numpad8:"Numpad 8",numpad9:"Numpad 9",multiply:"Multiply",add:"Add",subtract:"Subtract",decimalPoint:"Decimal Point",divide:"Divide",f1:"F1",f2:"F2",f3:"F3",f4:"F4",f5:"F5",f6:"F6",f7:"F7",f8:"F8",f9:"F9",f10:"F10",f11:"F11",f12:"F12",numLock:"Num Lock",scrollLock:"Scroll Lock",semiColon:"Semicolon",equalSign:"Equal Sign",comma:"Comma",dash:"Dash",period:"Period",forwardSlash:"Forward Slash", -graveAccent:"Grave Accent",openBracket:"Open Bracket",backSlash:"Backslash",closeBracket:"Close Bracket",singleQuote:"Single Quote"}); \ No newline at end of file diff --git a/admin/plugins/ckeditor/plugins/a11yhelp/dialogs/lang/lv.js b/admin/plugins/ckeditor/plugins/a11yhelp/dialogs/lang/lv.js deleted file mode 100644 index 24e6007..0000000 --- a/admin/plugins/ckeditor/plugins/a11yhelp/dialogs/lang/lv.js +++ /dev/null @@ -1,12 +0,0 @@ -/* - Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. - For licensing, see LICENSE.md or http://ckeditor.com/license -*/ -CKEDITOR.plugins.setLang("a11yhelp","lv",{title:"Pieejamības instrukcija",contents:"Palīdzības saturs. Lai aizvērtu ciet šo dialogu nospiediet ESC.",legend:[{name:"Galvenais",items:[{name:"Redaktora rīkjosla",legend:"Nospiediet ${toolbarFocus} lai pārvietotos uz rīkjoslu. Lai pārvietotos uz nākošo vai iepriekšējo rīkjoslas grupu izmantojiet pogu TAB un SHIFT+TAB. Lai pārvietotos uz nākošo vai iepriekšējo rīkjoslas pogu izmantojiet Kreiso vai Labo bultiņu. Nospiediet Atstarpi vai ENTER lai aktivizētu rīkjosla pogu."}, -{name:"Redaktora dialoga logs",legend:"Inside a dialog, press TAB to navigate to the next dialog element, press SHIFT+TAB to move to the previous dialog element, press ENTER to submit the dialog, press ESC to cancel the dialog. When a dialog has multiple tabs, the tab list can be reached either with ALT+F10 or with TAB as part of the dialog tabbing order. With tab list focused, move to the next and previous tab with RIGHT and LEFT ARROW, respectively."},{name:"Redaktora satura izvēle",legend:"Nospiediet ${contextMenu} vai APPLICATION KEY lai atvērtu satura izvēlni. Lai pārvietotos uz nākošo izvēlnes opciju izmantojiet pogu TAB vai pogu Bultiņu uz leju. Lai pārvietotos uz iepriekšējo opciju izmantojiet SHIFT+TAB vai pogu Bultiņa uz augšu. Nospiediet SPACE vai ENTER lai izvelētos izvēlnes opciju. Atveriet tekošajā opcija apakšizvēlni ar SAPCE vai ENTER ka ari to var izdarīt ar Labo bultiņu. Lai atgrieztos atpakaļ uz sakuma izvēlni nospiediet ESC vai Kreiso bultiņu. Lai aizvērtu ciet izvēlnes saturu nospiediet ESC."}, -{name:"Redaktora saraksta lauks",legend:"Saraksta laukā, lai pārvietotos uz nākošo saraksta elementu nospiediet TAB vai pogu Bultiņa uz leju. Lai pārvietotos uz iepriekšējo saraksta elementu nospiediet SHIFT+TAB vai pogu Bultiņa uz augšu. Nospiediet SPACE vai ENTER lai izvēlētos saraksta opcijas. Nospiediet ESC lai aizvērtu saraksta lauku."},{name:"Redaktora elementa ceļa josla",legend:"Nospiediet ${elementsPathFocus} lai pārvietotos uz elementa ceļa joslu. Lai pārvietotos uz nākošo elementa pogu izmantojiet TAB vai Labo bultiņu. Lai pārvietotos uz iepriekšējo elementa pogu izmantojiet SHIFT+TAB vai Kreiso bultiņu. Nospiediet SPACE vai ENTER lai izvēlētos elementu redaktorā."}]}, -{name:"Komandas",items:[{name:"Komanda atcelt darbību",legend:"Nospiediet ${undo}"},{name:"Komanda atkārtot darbību",legend:"Nospiediet ${redo}"},{name:"Treknraksta komanda",legend:"Nospiediet ${bold}"},{name:"Kursīva komanda",legend:"Nospiediet ${italic}"},{name:"Apakšsvītras komanda ",legend:"Nospiediet ${underline}"},{name:"Hipersaites komanda",legend:"Nospiediet ${link}"},{name:"Rīkjoslas aizvēršanas komanda",legend:"Nospiediet ${toolbarCollapse}"},{name:"Piekļūt iepriekšējai fokusa vietas komandai", -legend:"Nospiediet ${accessPreviousSpace} lai piekļūtu tuvākajai nepieejamajai fokusa vietai pirms kursora. Piemēram: diviem blakus esošiem līnijas HR elementiem. Atkārtojiet taustiņu kombināciju lai piekļūtu pie tālākām vietām."},{name:"Piekļūt nākošā fokusa apgabala komandai",legend:"Nospiediet ${accessNextSpace} lai piekļūtu tuvākajai nepieejamajai fokusa vietai pēc kursora. Piemēram: diviem blakus esošiem līnijas HR elementiem. Atkārtojiet taustiņu kombināciju lai piekļūtu pie tālākām vietām."}, -{name:"Pieejamības palīdzība",legend:"Nospiediet ${a11yHelp}"},{name:" Paste as plain text",legend:"Press ${pastetext}",legendEdge:"Press ${pastetext}, followed by ${paste}"}]}],tab:"Tab",pause:"Pause",capslock:"Caps Lock",escape:"Escape",pageUp:"Page Up",pageDown:"Page Down",leftArrow:"Left Arrow",upArrow:"Up Arrow",rightArrow:"Right Arrow",downArrow:"Down Arrow",insert:"Insert",leftWindowKey:"Left Windows key",rightWindowKey:"Right Windows key",selectKey:"Select key",numpad0:"Numpad 0",numpad1:"Numpad 1", -numpad2:"Numpad 2",numpad3:"Numpad 3",numpad4:"Numpad 4",numpad5:"Numpad 5",numpad6:"Numpad 6",numpad7:"Numpad 7",numpad8:"Numpad 8",numpad9:"Numpad 9",multiply:"Multiply",add:"Add",subtract:"Subtract",decimalPoint:"Decimal Point",divide:"Divide",f1:"F1",f2:"F2",f3:"F3",f4:"F4",f5:"F5",f6:"F6",f7:"F7",f8:"F8",f9:"F9",f10:"F10",f11:"F11",f12:"F12",numLock:"Num Lock",scrollLock:"Scroll Lock",semiColon:"Semicolon",equalSign:"Equal Sign",comma:"Comma",dash:"Dash",period:"Period",forwardSlash:"Forward Slash", -graveAccent:"Grave Accent",openBracket:"Open Bracket",backSlash:"Backslash",closeBracket:"Close Bracket",singleQuote:"Single Quote"}); \ No newline at end of file diff --git a/admin/plugins/ckeditor/plugins/a11yhelp/dialogs/lang/mk.js b/admin/plugins/ckeditor/plugins/a11yhelp/dialogs/lang/mk.js deleted file mode 100644 index ec2bdc6..0000000 --- a/admin/plugins/ckeditor/plugins/a11yhelp/dialogs/lang/mk.js +++ /dev/null @@ -1,11 +0,0 @@ -/* - Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. - For licensing, see LICENSE.md or http://ckeditor.com/license -*/ -CKEDITOR.plugins.setLang("a11yhelp","mk",{title:"Инструкции за пристапност",contents:"Содржина на делот за помош. За да го затворите овој дијалог притиснете ESC.",legend:[{name:"Општо",items:[{name:"Мени за уредувачот",legend:"Press ${toolbarFocus} to navigate to the toolbar. Move to the next and previous toolbar group with TAB and SHIFT+TAB. Move to the next and previous toolbar button with RIGHT ARROW or LEFT ARROW. Press SPACE or ENTER to activate the toolbar button."},{name:"Дијалот за едиторот", -legend:"Inside a dialog, press TAB to navigate to the next dialog element, press SHIFT+TAB to move to the previous dialog element, press ENTER to submit the dialog, press ESC to cancel the dialog. When a dialog has multiple tabs, the tab list can be reached either with ALT+F10 or with TAB as part of the dialog tabbing order. With tab list focused, move to the next and previous tab with RIGHT and LEFT ARROW, respectively."},{name:"Контекст-мени на уредувачот",legend:"Press ${contextMenu} or APPLICATION KEY to open context-menu. Then move to next menu option with TAB or DOWN ARROW. Move to previous option with SHIFT+TAB or UP ARROW. Press SPACE or ENTER to select the menu option. Open sub-menu of current option with SPACE or ENTER or RIGHT ARROW. Go back to parent menu item with ESC or LEFT ARROW. Close context menu with ESC."}, -{name:"Editor List Box",legend:"Inside a list-box, move to next list item with TAB OR DOWN ARROW. Move to previous list item with SHIFT+TAB or UP ARROW. Press SPACE or ENTER to select the list option. Press ESC to close the list-box."},{name:"Editor Element Path Bar",legend:"Press ${elementsPathFocus} to navigate to the elements path bar. Move to next element button with TAB or RIGHT ARROW. Move to previous button with SHIFT+TAB or LEFT ARROW. Press SPACE or ENTER to select the element in editor."}]}, -{name:"Наредби",items:[{name:" Undo command",legend:"Press ${undo}"},{name:" Redo command",legend:"Press ${redo}"},{name:" Bold command",legend:"Press ${bold}"},{name:" Italic command",legend:"Press ${italic}"},{name:" Underline command",legend:"Press ${underline}"},{name:" Link command",legend:"Press ${link}"},{name:" Toolbar Collapse command",legend:"Press ${toolbarCollapse}"},{name:" Access previous focus space command",legend:"Press ${accessPreviousSpace} to access the closest unreachable focus space before the caret, for example: two adjacent HR elements. Repeat the key combination to reach distant focus spaces."}, -{name:" Access next focus space command",legend:"Press ${accessNextSpace} to access the closest unreachable focus space after the caret, for example: two adjacent HR elements. Repeat the key combination to reach distant focus spaces."},{name:" Accessibility Help",legend:"Press ${a11yHelp}"},{name:" Paste as plain text",legend:"Press ${pastetext}",legendEdge:"Press ${pastetext}, followed by ${paste}"}]}],tab:"Tab",pause:"Пауза",capslock:"Caps Lock",escape:"Escape",pageUp:"Page Up",pageDown:"Page Up", -leftArrow:"Стрелка лево",upArrow:"Стрелка горе",rightArrow:"Стрелка десно",downArrow:"Стрелка доле",insert:"Insert",leftWindowKey:"Лево Windows копче",rightWindowKey:"Десно Windows копче",selectKey:"Select копче",numpad0:"Нум. таст. 0",numpad1:"Нум. таст. 1",numpad2:"Нум. таст. 2",numpad3:"Нум. таст. 3",numpad4:"Нум. таст. 4",numpad5:"Нум. таст. 5",numpad6:"Нум. таст. 6",numpad7:"Нум. таст. 7",numpad8:"Нум. таст. 8",numpad9:"Нум. таст. 9",multiply:"Multiply",add:"Add",subtract:"Subtract",decimalPoint:"Decimal Point", -divide:"Divide",f1:"F1",f2:"F2",f3:"F3",f4:"F4",f5:"F5",f6:"F6",f7:"F7",f8:"F8",f9:"F9",f10:"F10",f11:"F11",f12:"F12",numLock:"Num Lock",scrollLock:"Scroll Lock",semiColon:"Semicolon",equalSign:"Equal Sign",comma:"Comma",dash:"Dash",period:"Period",forwardSlash:"Forward Slash",graveAccent:"Grave Accent",openBracket:"Open Bracket",backSlash:"Backslash",closeBracket:"Close Bracket",singleQuote:"Single Quote"}); \ No newline at end of file diff --git a/admin/plugins/ckeditor/plugins/a11yhelp/dialogs/lang/mn.js b/admin/plugins/ckeditor/plugins/a11yhelp/dialogs/lang/mn.js deleted file mode 100644 index 09c4bd2..0000000 --- a/admin/plugins/ckeditor/plugins/a11yhelp/dialogs/lang/mn.js +++ /dev/null @@ -1,11 +0,0 @@ -/* - Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. - For licensing, see LICENSE.md or http://ckeditor.com/license -*/ -CKEDITOR.plugins.setLang("a11yhelp","mn",{title:"Accessibility Instructions",contents:"Help Contents. To close this dialog press ESC.",legend:[{name:"Ерөнхий",items:[{name:"Editor Toolbar",legend:"Press ${toolbarFocus} to navigate to the toolbar. Move to the next and previous toolbar group with TAB and SHIFT+TAB. Move to the next and previous toolbar button with RIGHT ARROW or LEFT ARROW. Press SPACE or ENTER to activate the toolbar button."},{name:"Editor Dialog",legend:"Inside a dialog, press TAB to navigate to the next dialog element, press SHIFT+TAB to move to the previous dialog element, press ENTER to submit the dialog, press ESC to cancel the dialog. When a dialog has multiple tabs, the tab list can be reached either with ALT+F10 or with TAB as part of the dialog tabbing order. With tab list focused, move to the next and previous tab with RIGHT and LEFT ARROW, respectively."}, -{name:"Editor Context Menu",legend:"Press ${contextMenu} or APPLICATION KEY to open context-menu. Then move to next menu option with TAB or DOWN ARROW. Move to previous option with SHIFT+TAB or UP ARROW. Press SPACE or ENTER to select the menu option. Open sub-menu of current option with SPACE or ENTER or RIGHT ARROW. Go back to parent menu item with ESC or LEFT ARROW. Close context menu with ESC."},{name:"Editor List Box",legend:"Inside a list-box, move to next list item with TAB OR DOWN ARROW. Move to previous list item with SHIFT+TAB or UP ARROW. Press SPACE or ENTER to select the list option. Press ESC to close the list-box."}, -{name:"Editor Element Path Bar",legend:"Press ${elementsPathFocus} to navigate to the elements path bar. Move to next element button with TAB or RIGHT ARROW. Move to previous button with SHIFT+TAB or LEFT ARROW. Press SPACE or ENTER to select the element in editor."}]},{name:"Commands",items:[{name:" Undo command",legend:"Press ${undo}"},{name:" Redo command",legend:"Press ${redo}"},{name:" Bold command",legend:"Press ${bold}"},{name:" Italic command",legend:"Press ${italic}"},{name:" Underline command", -legend:"Press ${underline}"},{name:" Link command",legend:"Press ${link}"},{name:" Toolbar Collapse command",legend:"Press ${toolbarCollapse}"},{name:" Access previous focus space command",legend:"Press ${accessPreviousSpace} to access the closest unreachable focus space before the caret, for example: two adjacent HR elements. Repeat the key combination to reach distant focus spaces."},{name:" Access next focus space command",legend:"Press ${accessNextSpace} to access the closest unreachable focus space after the caret, for example: two adjacent HR elements. Repeat the key combination to reach distant focus spaces."}, -{name:" Accessibility Help",legend:"Press ${a11yHelp}"},{name:" Paste as plain text",legend:"Press ${pastetext}",legendEdge:"Press ${pastetext}, followed by ${paste}"}]}],tab:"Tab",pause:"Pause",capslock:"Caps Lock",escape:"Escape",pageUp:"Page Up",pageDown:"Page Down",leftArrow:"Left Arrow",upArrow:"Up Arrow",rightArrow:"Right Arrow",downArrow:"Down Arrow",insert:"Insert",leftWindowKey:"Left Windows key",rightWindowKey:"Right Windows key",selectKey:"Select key",numpad0:"Numpad 0",numpad1:"Numpad 1", -numpad2:"Numpad 2",numpad3:"Numpad 3",numpad4:"Numpad 4",numpad5:"Numpad 5",numpad6:"Numpad 6",numpad7:"Numpad 7",numpad8:"Numpad 8",numpad9:"Numpad 9",multiply:"Multiply",add:"Add",subtract:"Subtract",decimalPoint:"Decimal Point",divide:"Divide",f1:"F1",f2:"F2",f3:"F3",f4:"F4",f5:"F5",f6:"F6",f7:"F7",f8:"F8",f9:"F9",f10:"F10",f11:"F11",f12:"F12",numLock:"Num Lock",scrollLock:"Scroll Lock",semiColon:"Semicolon",equalSign:"Equal Sign",comma:"Comma",dash:"Dash",period:"Period",forwardSlash:"Forward Slash", -graveAccent:"Grave Accent",openBracket:"Open Bracket",backSlash:"Backslash",closeBracket:"Close Bracket",singleQuote:"Single Quote"}); \ No newline at end of file diff --git a/admin/plugins/ckeditor/plugins/a11yhelp/dialogs/lang/nb.js b/admin/plugins/ckeditor/plugins/a11yhelp/dialogs/lang/nb.js deleted file mode 100644 index e8a2a80..0000000 --- a/admin/plugins/ckeditor/plugins/a11yhelp/dialogs/lang/nb.js +++ /dev/null @@ -1,12 +0,0 @@ -/* - Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. - For licensing, see LICENSE.md or http://ckeditor.com/license -*/ -CKEDITOR.plugins.setLang("a11yhelp","nb",{title:"Instruksjoner for tilgjengelighet",contents:"Innhold for hjelp. Trykk ESC for å lukke denne dialogen.",legend:[{name:"Generelt",items:[{name:"Verktøylinje for editor",legend:"Trykk ${toolbarFocus} for å navigere til verktøylinjen. Flytt til neste og forrige verktøylinjegruppe med TAB og SHIFT+TAB. Flytt til neste og forrige verktøylinjeknapp med HØYRE PILTAST og VENSTRE PILTAST. Trykk MELLOMROM eller ENTER for å aktivere verktøylinjeknappen."},{name:"Dialog for editor", -legend:"Mens du er i en dialog, trykk TAB for å navigere til neste dialogelement, trykk SHIFT+TAB for å flytte til forrige dialogelement, trykk ENTER for å akseptere dialogen, trykk ESC for å avbryte dialogen. Når en dialog har flere faner, kan fanelisten nås med enten ALT+F10 eller med TAB. Når fanelisten er fokusert, går man til neste og forrige fane med henholdsvis HØYRE og VENSTRE PILTAST."},{name:"Kontekstmeny for editor",legend:"Trykk ${contextMenu} eller MENYKNAPP for å åpne kontekstmeny. Gå til neste alternativ i menyen med TAB eller PILTAST NED. Gå til forrige alternativ med SHIFT+TAB eller PILTAST OPP. Trykk MELLOMROM eller ENTER for å velge menyalternativet. Åpne undermenyen på valgt alternativ med MELLOMROM eller ENTER eller HØYRE PILTAST. Gå tilbake til overordnet menyelement med ESC eller VENSTRE PILTAST. Lukk kontekstmenyen med ESC."}, -{name:"Listeboks for editor",legend:"I en listeboks, gå til neste alternativ i listen med TAB eller PILTAST NED. Gå til forrige alternativ i listen med SHIFT+TAB eller PILTAST OPP. Trykk MELLOMROM eller ENTER for å velge alternativet i listen. Trykk ESC for å lukke listeboksen."},{name:"Verktøylinje for elementsti",legend:"Trykk ${elementsPathFocus} for å navigere til verktøylinjen som viser elementsti. Gå til neste elementknapp med TAB eller HØYRE PILTAST. Gå til forrige elementknapp med SHIFT+TAB eller VENSTRE PILTAST. Trykk MELLOMROM eller ENTER for å velge elementet i editoren."}]}, -{name:"Hurtigtaster",items:[{name:"Angre",legend:"Trykk ${undo}"},{name:"Gjør om",legend:"Trykk ${redo}"},{name:"Fet tekst",legend:"Trykk ${bold}"},{name:"Kursiv tekst",legend:"Trykk ${italic}"},{name:"Understreking",legend:"Trykk ${underline}"},{name:"Lenke",legend:"Trykk ${link}"},{name:"Skjul verktøylinje",legend:"Trykk ${toolbarCollapse}"},{name:"Gå til forrige fokusområde",legend:"Trykk ${accessPreviousSpace} for å komme til nærmeste fokusområde før skrivemarkøren som ikke kan nås på vanlig måte, for eksempel to tilstøtende HR-elementer. Gjenta tastekombinasjonen for å komme til fokusområder lenger unna i dokumentet."}, -{name:"Gå til neste fokusområde",legend:"Trykk ${accessNextSpace} for å komme til nærmeste fokusområde etter skrivemarkøren som ikke kan nås på vanlig måte, for eksempel to tilstøtende HR-elementer. Gjenta tastekombinasjonen for å komme til fokusområder lenger unna i dokumentet."},{name:"Hjelp for tilgjengelighet",legend:"Trykk ${a11yHelp}"},{name:"Lim inn som ren tekst",legend:"Trykk ${pastetext}",legendEdge:"Trykk ${pastetext}, etterfulgt av ${past}"}]}],tab:"Tabulator",pause:"Pause",capslock:"Caps Lock", -escape:"Escape",pageUp:"Page Up",pageDown:"Page Down",leftArrow:"Venstre piltast",upArrow:"Opp-piltast",rightArrow:"Høyre piltast",downArrow:"Ned-piltast",insert:"Insert",leftWindowKey:"Venstre Windows-tast",rightWindowKey:"Høyre Windows-tast",selectKey:"Velg nøkkel",numpad0:"Numerisk tastatur 0",numpad1:"Numerisk tastatur 1",numpad2:"Numerisk tastatur 2",numpad3:"Numerisk tastatur 3",numpad4:"Numerisk tastatur 4",numpad5:"Numerisk tastatur 5",numpad6:"Numerisk tastatur 6",numpad7:"Numerisk tastatur 7", -numpad8:"Numerisk tastatur 8",numpad9:"Numerisk tastatur 9",multiply:"Multipliser",add:"Legg til",subtract:"Trekk fra",decimalPoint:"Desimaltegn",divide:"Divider",f1:"F1",f2:"F2",f3:"F3",f4:"F4",f5:"F5",f6:"F6",f7:"F7",f8:"F8",f9:"F9",f10:"F10",f11:"F11",f12:"F12",numLock:"Num Lock",scrollLock:"Scroll Lock",semiColon:"Semikolon",equalSign:"Likhetstegn",comma:"Komma",dash:"Bindestrek",period:"Punktum",forwardSlash:"Forover skråstrek",graveAccent:"Grav aksent",openBracket:"Åpne parentes",backSlash:"Bakover skråstrek", -closeBracket:"Lukk parentes",singleQuote:"Enkelt sitattegn"}); \ No newline at end of file diff --git a/admin/plugins/ckeditor/plugins/a11yhelp/dialogs/lang/nl.js b/admin/plugins/ckeditor/plugins/a11yhelp/dialogs/lang/nl.js deleted file mode 100644 index 0f35b3e..0000000 --- a/admin/plugins/ckeditor/plugins/a11yhelp/dialogs/lang/nl.js +++ /dev/null @@ -1,12 +0,0 @@ -/* - Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. - For licensing, see LICENSE.md or http://ckeditor.com/license -*/ -CKEDITOR.plugins.setLang("a11yhelp","nl",{title:"Toegankelijkheidsinstructies",contents:"Help-inhoud. Druk op ESC om dit dialoog te sluiten.",legend:[{name:"Algemeen",items:[{name:"Werkbalk tekstverwerker",legend:"Druk op ${toolbarFocus} om naar de werkbalk te navigeren. Om te schakelen naar de volgende en vorige werkbalkgroep, gebruik TAB en SHIFT+TAB. Om te schakelen naar de volgende en vorige werkbalkknop, gebruik de PIJL RECHTS en PIJL LINKS. Druk op SPATIE of ENTER om een werkbalkknop te activeren."}, -{name:"Dialoog tekstverwerker",legend:"In een dialoogvenster, druk op TAB om te navigeren naar het volgende veld. Druk op SHIFT+TAB om naar het vorige veld te navigeren. Druk op ENTER om het dialoogvenster te verzenden. Druk op ESC om het dialoogvenster te sluiten. Bij dialoogvensters met meerdere tabbladen kan de tabset bereikt worden met ALT+F10 of met TAB als onderdeel van de tabvolgorde in het dialoogvenster. Als de tabset focus heeft, kun je schakalen naar het volgende en vorige tabblad met respectievelijk PIJL RECHTS en PIJL LINKS."}, -{name:"Contextmenu tekstverwerker",legend:"Druk op ${contextMenu} of APPLICATION KEY om het contextmenu te openen. Schakel naar de volgende menuoptie met TAB of PIJL OMLAAG. Schakel naar de vorige menuoptie met SHIFT+TAB of PIJL OMHOOG. Druk op SPATIE of ENTER om een menuoptie te selecteren. Op een submenu van de huidige optie met SPATIE, ENTER of PIJL RECHTS. Ga terug naar de bovenliggende menuoptie met ESC of PIJL LINKS. Sluit het contextmenu met ESC."},{name:"Keuzelijst tekstverwerker",legend:"In een keuzelijst, schakel naar het volgende item met TAB of PIJL OMLAAG. Schakel naar het vorige item met SHIFT+TAB of PIJL OMHOOG. Druk op SPATIE of ENTER om het item te selecteren. Druk op ESC om de keuzelijst te sluiten."}, -{name:"Elementenpad werkbalk tekstverwerker",legend:"Druk op ${elementsPathFocus} om naar het elementenpad te navigeren. Om te schakelen naar het volgende element, gebruik TAB of PIJL RECHTS. Om te schakelen naar het vorige element, gebruik SHIFT+TAB or PIJL LINKS. Druk op SPATIE of ENTER om een element te selecteren in de tekstverwerker."}]},{name:"Opdrachten",items:[{name:"Ongedaan maken opdracht",legend:"Druk op ${undo}"},{name:"Opnieuw uitvoeren opdracht",legend:"Druk op ${redo}"},{name:"Vetgedrukt opdracht", -legend:"Druk op ${bold}"},{name:"Cursief opdracht",legend:"Druk op ${italic}"},{name:"Onderstrepen opdracht",legend:"Druk op ${underline}"},{name:"Link opdracht",legend:"Druk op ${link}"},{name:"Werkbalk inklappen opdracht",legend:"Druk op ${toolbarCollapse}"},{name:"Ga naar vorige focus spatie commando",legend:"Druk ${accessPreviousSpace} om toegang te verkrijgen tot de dichtstbijzijnde onbereikbare focus spatie voor de caret, bijvoorbeeld: twee aangrenzende HR elementen. Herhaal de toetscombinatie om de verste focus spatie te bereiken."}, -{name:"Ga naar volgende focus spatie commando",legend:"Druk ${accessNextSpace} om toegang te verkrijgen tot de dichtstbijzijnde onbereikbare focus spatie na de caret, bijvoorbeeld: twee aangrenzende HR elementen. Herhaal de toetscombinatie om de verste focus spatie te bereiken."},{name:"Toegankelijkheidshulp",legend:"Druk op ${a11yHelp}"},{name:" Paste as plain text",legend:"Press ${pastetext}",legendEdge:"Press ${pastetext}, followed by ${paste}"}]}],tab:"Tab",pause:"Pause",capslock:"Caps Lock", -escape:"Escape",pageUp:"Page Up",pageDown:"Page Down",leftArrow:"Pijl naar links",upArrow:"Pijl omhoog",rightArrow:"Pijl naar rechts",downArrow:"Pijl naar beneden",insert:"Invoegen",leftWindowKey:"Linker Windows-toets",rightWindowKey:"Rechter Windows-toets",selectKey:"Selecteer toets",numpad0:"Numpad 0",numpad1:"Numpad 1",numpad2:"Numpad 2",numpad3:"Numpad 3",numpad4:"Numpad 4",numpad5:"Numpad 5",numpad6:"Numpad 6",numpad7:"Numpad 7",numpad8:"Numpad 8",numpad9:"Numpad 9",multiply:"Vermenigvuldigen", -add:"Toevoegen",subtract:"Aftrekken",decimalPoint:"Decimaalteken",divide:"Delen",f1:"F1",f2:"F2",f3:"F3",f4:"F4",f5:"F5",f6:"F6",f7:"F7",f8:"F8",f9:"F9",f10:"F10",f11:"F11",f12:"F12",numLock:"Num Lock",scrollLock:"Scroll Lock",semiColon:"Puntkomma",equalSign:"Is gelijk-teken",comma:"Komma",dash:"Koppelteken",period:"Punt",forwardSlash:"Slash",graveAccent:"Accent grave",openBracket:"Vierkant haakje openen",backSlash:"Backslash",closeBracket:"Vierkant haakje sluiten",singleQuote:"Apostrof"}); \ No newline at end of file diff --git a/admin/plugins/ckeditor/plugins/a11yhelp/dialogs/lang/no.js b/admin/plugins/ckeditor/plugins/a11yhelp/dialogs/lang/no.js deleted file mode 100644 index b1e01d4..0000000 --- a/admin/plugins/ckeditor/plugins/a11yhelp/dialogs/lang/no.js +++ /dev/null @@ -1,11 +0,0 @@ -/* - Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. - For licensing, see LICENSE.md or http://ckeditor.com/license -*/ -CKEDITOR.plugins.setLang("a11yhelp","no",{title:"Instruksjoner for tilgjengelighet",contents:"Innhold for hjelp. Trykk ESC for å lukke denne dialogen.",legend:[{name:"Generelt",items:[{name:"Verktøylinje for editor",legend:"Trykk ${toolbarFocus} for å navigere til verktøylinjen. Flytt til neste og forrige verktøylinjegruppe med TAB og SHIFT+TAB. Flytt til neste og forrige verktøylinjeknapp med HØYRE PILTAST og VENSTRE PILTAST. Trykk MELLOMROM eller ENTER for å aktivere verktøylinjeknappen."},{name:"Dialog for editor", -legend:"Inside a dialog, press TAB to navigate to the next dialog element, press SHIFT+TAB to move to the previous dialog element, press ENTER to submit the dialog, press ESC to cancel the dialog. When a dialog has multiple tabs, the tab list can be reached either with ALT+F10 or with TAB as part of the dialog tabbing order. With tab list focused, move to the next and previous tab with RIGHT and LEFT ARROW, respectively."},{name:"Kontekstmeny for editor",legend:"Trykk ${contextMenu} eller MENYKNAPP for å åpne kontekstmeny. Gå til neste alternativ i menyen med TAB eller PILTAST NED. Gå til forrige alternativ med SHIFT+TAB eller PILTAST OPP. Trykk MELLOMROM eller ENTER for å velge menyalternativet. Åpne undermenyen på valgt alternativ med MELLOMROM eller ENTER eller HØYRE PILTAST. Gå tilbake til overordnet menyelement med ESC eller VENSTRE PILTAST. Lukk kontekstmenyen med ESC."}, -{name:"Listeboks for editor",legend:"I en listeboks, gå til neste alternativ i listen med TAB eller PILTAST NED. Gå til forrige alternativ i listen med SHIFT+TAB eller PILTAST OPP. Trykk MELLOMROM eller ENTER for å velge alternativet i listen. Trykk ESC for å lukke listeboksen."},{name:"Verktøylinje for elementsti",legend:"Trykk ${elementsPathFocus} for å navigere til verktøylinjen som viser elementsti. Gå til neste elementknapp med TAB eller HØYRE PILTAST. Gå til forrige elementknapp med SHIFT+TAB eller VENSTRE PILTAST. Trykk MELLOMROM eller ENTER for å velge elementet i editoren."}]}, -{name:"Kommandoer",items:[{name:"Angre",legend:"Trykk ${undo}"},{name:"Gjør om",legend:"Trykk ${redo}"},{name:"Fet tekst",legend:"Trykk ${bold}"},{name:"Kursiv tekst",legend:"Trykk ${italic}"},{name:"Understreking",legend:"Trykk ${underline}"},{name:"Link",legend:"Trykk ${link}"},{name:"Skjul verktøylinje",legend:"Trykk ${toolbarCollapse}"},{name:"Gå til forrige fokusområde",legend:"Trykk ${accessPreviousSpace} for å komme til nærmeste fokusområde før skrivemarkøren som ikke kan nås på vanlig måte, for eksempel to tilstøtende HR-elementer. Gjenta tastekombinasjonen for å komme til fokusområder lenger unna i dokumentet."}, -{name:"Gå til neste fokusområde",legend:"Trykk ${accessNextSpace} for å komme til nærmeste fokusområde etter skrivemarkøren som ikke kan nås på vanlig måte, for eksempel to tilstøtende HR-elementer. Gjenta tastekombinasjonen for å komme til fokusområder lenger unna i dokumentet."},{name:"Hjelp for tilgjengelighet",legend:"Trykk ${a11yHelp}"},{name:" Paste as plain text",legend:"Press ${pastetext}",legendEdge:"Press ${pastetext}, followed by ${paste}"}]}],tab:"Tab",pause:"Pause",capslock:"Caps Lock", -escape:"Escape",pageUp:"Page Up",pageDown:"Page Down",leftArrow:"Left Arrow",upArrow:"Up Arrow",rightArrow:"Right Arrow",downArrow:"Down Arrow",insert:"Insert",leftWindowKey:"Left Windows key",rightWindowKey:"Right Windows key",selectKey:"Select key",numpad0:"Numpad 0",numpad1:"Numpad 1",numpad2:"Numpad 2",numpad3:"Numpad 3",numpad4:"Numpad 4",numpad5:"Numpad 5",numpad6:"Numpad 6",numpad7:"Numpad 7",numpad8:"Numpad 8",numpad9:"Numpad 9",multiply:"Multiply",add:"Add",subtract:"Subtract",decimalPoint:"Decimal Point", -divide:"Divide",f1:"F1",f2:"F2",f3:"F3",f4:"F4",f5:"F5",f6:"F6",f7:"F7",f8:"F8",f9:"F9",f10:"F10",f11:"F11",f12:"F12",numLock:"Num Lock",scrollLock:"Scroll Lock",semiColon:"Semicolon",equalSign:"Equal Sign",comma:"Comma",dash:"Dash",period:"Period",forwardSlash:"Forward Slash",graveAccent:"Grave Accent",openBracket:"Open Bracket",backSlash:"Backslash",closeBracket:"Close Bracket",singleQuote:"Single Quote"}); \ No newline at end of file diff --git a/admin/plugins/ckeditor/plugins/a11yhelp/dialogs/lang/oc.js b/admin/plugins/ckeditor/plugins/a11yhelp/dialogs/lang/oc.js deleted file mode 100644 index abab681..0000000 --- a/admin/plugins/ckeditor/plugins/a11yhelp/dialogs/lang/oc.js +++ /dev/null @@ -1,12 +0,0 @@ -/* - Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. - For licensing, see LICENSE.md or http://ckeditor.com/license -*/ -CKEDITOR.plugins.setLang("a11yhelp","oc",{title:"Instruccions d'accessibilitat",contents:"Contengut de l'ajuda. Per tampar aquesta fenèstra, quichatz sus la tòca Escap.",legend:[{name:"General",items:[{name:"Barra d'aisinas de l'editor",legend:"Quichar sus ${toolbarFocus} per accedir a la barra d'aisinas. Se desplaçar cap al groupe seguent o precedent de la barra d'aisinas amb las tòcas Tab e Maj+Tab. Se desplaçar cap al boton seguent o precedent de la barra d'aisinas amb las tòcas Sageta dreita e Sageta esquèrra. Quichar sus la barra d'espaci o la tòca Entrada per activer lo boton de barra d'aisinas."}, -{name:"Fenèstra de l'editor",legend:"Dins una bóstia de dialòg, quichar sus Tab per passar a l'element seguent, quichar sus Maj+Tab per passar a l'element precedent, quichar sus Entrada per validar, quichar sus Escap per anullar. Quand una bóstia de dialòg possedís des onglets, la lista pòt èsser atenta amb Alt+F10 o amb Tab. Dins la lista dels onglets, se desplaçar cap al seguent e lo precedent amb las tòcas Sageta dreita e Sageta esquèrra respectivament."},{name:"Menú contextual de l'editor",legend:"Quichar sus ${contextMenu} o sus la tòca Menú per dobrir lo menú contextual. Se desplaçar ensuite cap a l'opcion seguenta del menú amb las tòcas Tab o Sageta bas. Se desplaçar cap a l'opcion precedenta amb las tòcas Maj+Tab o Sageta naut. Quichar sus la barra d'espaci o la tòca Entrada per seleccionar l'opcion del menu. Quichar sus la barra d'espaci, la tòca Entrada o Sageta dreita per dobrir lo sosmenú de l'opcion seleccionada. Tornar a l'element de menú parent amb la tòca Escap o Sageta esquèrra. Tampar lo menú contextual amb Escap."}, -{name:"Zòna de lista de l'editor",legend:"Dins una lista en menú desenrotlant, se desplaçar cap a l'element seguent de la lista amb las tòcas Tab o Sageta bas. Se desplaçar cap a l'element precedent de la lista amb las tòcas Maj+Tab o Sageta naut. Quichar sus la barra d'espaci o sus Entrada per seleccionar l'opcion dins la lista. Quichar sus Escap per tampar lo menú desenrotlant."},{name:"Barra del camin d'elements de l'editor",legend:"Quichar sus ${elementsPathFocus} per naviguer cap a la barra del fial d'Ariana dels elements. Se desplaçar cap al boton de l'element seguent amb las tòcas Tab o Sageta dreita. Se desplaçar cap al boton precedent amb las tòcas Maj+Tab o Sageta esquèrra. Quichar sus la barra d'espaci o sus Entrada per seleccionar l'element dins l'editor."}]}, -{name:"Comandas",items:[{name:"Anullar la comanda",legend:"Quichar sus ${undo}"},{name:"Comanda restablir",legend:"Quichar sus ${redo}"},{name:" Comanda gras",legend:"Quichar sus ${bold}"},{name:" Comanda italica",legend:"Quichar sus ${italic}"},{name:" Comanda solinhat",legend:"Quichar sus ${underline}"},{name:" Comanda ligam",legend:"Quichar sus ${link}"},{name:"Comanda enrotlar la barra d'aisinas",legend:"Quichar sus ${toolbarCollapse}"},{name:"Comanda d'accès a l'element seleccionable precedent", -legend:"Quichar sus ${accessNextSpace} per accedir a l'element seleccionable inategnible lo mai pròche abans lo cursor, per exemple : doas linhas orizontalas adjacentas. Repetir la combinason de tòcas per aténher los elements seleccionables precedents."},{name:"Comanda d'accès a l'element seleccionable seguent",legend:"Quichar sus ${accessNextSpace} per accedir a l'element seleccionable inatenhible lo mai pròche aprèp lo cursor, per exemple : doas linhas orizontalas adjacentas. Repetir la combinason de tòcas per aténher los elements seleccionables seguents."}, -{name:" Ajuda sus l'accessibilitat",legend:"Quichar sus ${a11yHelp}"},{name:" Paste as plain text",legend:"Press ${pastetext}",legendEdge:"Press ${pastetext}, followed by ${paste}"}]}],tab:"Tabulacion",pause:"Pausa",capslock:"Verr. Maj.",escape:"Escap",pageUp:"Pagina superiora",pageDown:"Pagina seguenta",leftArrow:"Sageta esquèrra",upArrow:"Sageta naut",rightArrow:"Sageta dreita",downArrow:"Sageta bassa",insert:"Inser",leftWindowKey:"Tòca Windows esquèrra",rightWindowKey:"Tòca Windows dreita",selectKey:"Tòca Seleccionar", -numpad0:"0 del pavat numeric",numpad1:"1 del pavat numeric",numpad2:"2 del pavat numeric",numpad3:"3 del pavat numeric",numpad4:"4 del pavat numeric",numpad5:"5 del pavat numeric",numpad6:"6 del pavat numeric",numpad7:"7 del pavat numeric",numpad8:"Pavat numeric 8",numpad9:"9 del pavat numeric",multiply:"Multiplicar",add:"Plus",subtract:"Mens",decimalPoint:"Punt decimal",divide:"Devesir",f1:"F1",f2:"F2",f3:"F3",f4:"F4",f5:"F5",f6:"F6",f7:"F7",f8:"F8",f9:"F9",f10:"F10",f11:"F11",f12:"F12",numLock:"Verr. Num.", -scrollLock:"Arrèst desfil.",semiColon:"Punt-virgula",equalSign:"Signe egal",comma:"Virgula",dash:"Jonhent",period:"Punt",forwardSlash:"Barra oblica",graveAccent:"Accent grèu",openBracket:"Parentèsi dobèrta",backSlash:"Barra oblica invèrsa",closeBracket:"Parentèsi tampanta",singleQuote:"Apostròfa"}); \ No newline at end of file diff --git a/admin/plugins/ckeditor/plugins/a11yhelp/dialogs/lang/pl.js b/admin/plugins/ckeditor/plugins/a11yhelp/dialogs/lang/pl.js deleted file mode 100644 index 0c59c91..0000000 --- a/admin/plugins/ckeditor/plugins/a11yhelp/dialogs/lang/pl.js +++ /dev/null @@ -1,13 +0,0 @@ -/* - Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. - For licensing, see LICENSE.md or http://ckeditor.com/license -*/ -CKEDITOR.plugins.setLang("a11yhelp","pl",{title:"Instrukcje dotyczące dostępności",contents:"Zawartość pomocy. Wciśnij ESC, aby zamknąć to okno.",legend:[{name:"Informacje ogólne",items:[{name:"Pasek narzędzi edytora",legend:"Naciśnij ${toolbarFocus}, by przejść do paska narzędzi. Przejdź do następnej i poprzedniej grupy narzędzi używając TAB oraz SHIFT+TAB. Przejdź do następnego i poprzedniego przycisku paska narzędzi za pomocą STRZAŁKI W PRAWO lub STRZAŁKI W LEWO. Naciśnij SPACJĘ lub ENTER by aktywować przycisk paska narzędzi."}, -{name:"Okno dialogowe edytora",legend:"Wewnątrz okna dialogowego naciśnij TAB, by przejść do kolejnego elementu tego okna lub SHIFT+TAB, by przejść do poprzedniego elementu okna. Naciśnij ENTER w celu zatwierdzenia opcji okna dialogowego lub ESC w celu anulowania zmian. Jeśli okno dialogowe ma kilka zakładek, do listy zakładek można przejść za pomocą ALT+F10 lub TAB. Gdy lista zakładek jest aktywna, możesz przejść do kolejnej i poprzedniej zakładki za pomocą STRZAŁKI W PRAWO i STRZAŁKI W LEWO."}, -{name:"Menu kontekstowe edytora",legend:"Wciśnij ${contextMenu} lub PRZYCISK APLIKACJI aby otworzyć menu kontekstowe. Przejdź do następnej pozycji menu wciskając TAB lub STRZAŁKĘ W DÓŁ. Przejdź do poprzedniej pozycji menu wciskając SHIFT + TAB lub STRZAŁKĘ W GÓRĘ. Wciśnij SPACJĘ lub ENTER aby wygrać pozycję menu. Otwórz pod-menu obecnej pozycji wciskając SPACJĘ lub ENTER lub STRZAŁKĘ W PRAWO. Wróć do pozycji nadrzędnego menu wciskając ESC lub STRZAŁKĘ W LEWO. Zamknij menu wciskając ESC."},{name:"Lista w edytorze", -legend:"Wewnątrz listy przejdź do kolejnego elementu listy za pomocą przycisku TAB lub STRZAŁKI W DÓŁ. Przejdź do poprzedniego elementu listy za pomocą SHIFT+TAB lub STRZAŁKI W GÓRĘ. Naciśnij SPACJĘ lub ENTER w celu wybrania opcji z listy. Naciśnij ESC, by zamknąć listę."},{name:"Pasek ścieżki elementów edytora",legend:"Naciśnij ${elementsPathFocus} w celu przejścia do paska ścieżki elementów edytora. W celu przejścia do kolejnego elementu naciśnij klawisz TAB lub STRZAŁKI W PRAWO. W celu przejścia do poprzedniego elementu naciśnij klawisze SHIFT+TAB lub STRZAŁKI W LEWO. By wybrać element w edytorze, użyj klawisza SPACJI lub ENTER."}]}, -{name:"Polecenia",items:[{name:"Polecenie Cofnij",legend:"Naciśnij ${undo}"},{name:"Polecenie Ponów",legend:"Naciśnij ${redo}"},{name:"Polecenie Pogrubienie",legend:"Naciśnij ${bold}"},{name:"Polecenie Kursywa",legend:"Naciśnij ${italic}"},{name:"Polecenie Podkreślenie",legend:"Naciśnij ${underline}"},{name:"Polecenie Wstaw/ edytuj odnośnik",legend:"Naciśnij ${link}"},{name:"Polecenie schowaj pasek narzędzi",legend:"Naciśnij ${toolbarCollapse}"},{name:"Przejdź do poprzedniego miejsca, w którym można ustawić focus", -legend:"Naciśnij ${accessPreviousSpace}, aby przejść do najbliższego niedostępnego miejsca przed kursorem, w którym można ustawić focus. Przykład: dwa przylegające elementy HR. Powtórz ten skrót klawiaturowy, by dotrzeć do kolejnych takich miejsc."},{name:"Przejdź do następnego miejsca, w którym można ustawić focus",legend:"Naciśnij ${accessNextSpace}, aby przejść do najbliższego niedostępnego miejsca po kursorze, w którym można ustawić focus. Przykład: dwa przylegające elementy HR. Powtórz ten skrót klawiaturowy, by dotrzeć do kolejnych takich miejsc."}, -{name:"Pomoc dotycząca dostępności",legend:"Naciśnij ${a11yHelp}"},{name:"Wklej jako tekst",legend:"Naciśnij ${pastetext}",legendEdge:"Naciśnij ${pastetext}, a następnie ${paste}"}]}],tab:"Tab",pause:"Pause",capslock:"Caps Lock",escape:"Escape",pageUp:"Page Up",pageDown:"Page Down",leftArrow:"Strzałka w lewo",upArrow:"Strzałka w górę",rightArrow:"Strzałka w prawo",downArrow:"Strzałka w dół",insert:"Insert",leftWindowKey:"Lewy klawisz Windows",rightWindowKey:"Prawy klawisz Windows",selectKey:"Klawisz wyboru", -numpad0:"Klawisz 0 na klawiaturze numerycznej",numpad1:"Klawisz 1 na klawiaturze numerycznej",numpad2:"Klawisz 2 na klawiaturze numerycznej",numpad3:"Klawisz 3 na klawiaturze numerycznej",numpad4:"Klawisz 4 na klawiaturze numerycznej",numpad5:"Klawisz 5 na klawiaturze numerycznej",numpad6:"Klawisz 6 na klawiaturze numerycznej",numpad7:"Klawisz 7 na klawiaturze numerycznej",numpad8:"Klawisz 8 na klawiaturze numerycznej",numpad9:"Klawisz 9 na klawiaturze numerycznej",multiply:"Przemnóż",add:"Plus", -subtract:"Minus",decimalPoint:"Separator dziesiętny",divide:"Podziel",f1:"F1",f2:"F2",f3:"F3",f4:"F4",f5:"F5",f6:"F6",f7:"F7",f8:"F8",f9:"F9",f10:"F10",f11:"F11",f12:"F12",numLock:"Num Lock",scrollLock:"Scroll Lock",semiColon:"Średnik",equalSign:"Znak równości",comma:"Przecinek",dash:"Pauza",period:"Kropka",forwardSlash:"Ukośnik prawy",graveAccent:"Akcent słaby",openBracket:"Nawias kwadratowy otwierający",backSlash:"Ukośnik lewy",closeBracket:"Nawias kwadratowy zamykający",singleQuote:"Apostrof"}); \ No newline at end of file diff --git a/admin/plugins/ckeditor/plugins/a11yhelp/dialogs/lang/pt-br.js b/admin/plugins/ckeditor/plugins/a11yhelp/dialogs/lang/pt-br.js deleted file mode 100644 index 317e571..0000000 --- a/admin/plugins/ckeditor/plugins/a11yhelp/dialogs/lang/pt-br.js +++ /dev/null @@ -1,13 +0,0 @@ -/* - Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. - For licensing, see LICENSE.md or http://ckeditor.com/license -*/ -CKEDITOR.plugins.setLang("a11yhelp","pt-br",{title:"Instruções de Acessibilidade",contents:"Conteúdo da Ajuda. Para fechar este diálogo pressione ESC.",legend:[{name:"Geral",items:[{name:"Barra de Ferramentas do Editor",legend:"Pressione ${toolbarFocus} para navegar para a barra de ferramentas. Mova para o anterior ou próximo grupo de ferramentas com TAB e SHIFT+TAB. Mova para o anterior ou próximo botão com SETA PARA DIREITA or SETA PARA ESQUERDA. Pressione ESPAÇO ou ENTER para ativar o botão da barra de ferramentas."}, -{name:"Diálogo do Editor",legend:"Dentro de um diálogo, pressione TAB para navegar para o próximo elemento. Pressione SHIFT+TAB para mover para o elemento anterior. Pressione ENTER ara enviar o diálogo. pressione ESC para cancelar o diálogo. Quando um diálogo tem múltiplas abas, a lista de abas pode ser acessada com ALT+F10 ou TAB, como parte da ordem de tabulação do diálogo. Com a lista de abas em foco, mova para a próxima aba e para a aba anterior com a SETA DIREITA ou SETA ESQUERDA, respectivamente."}, -{name:"Menu de Contexto do Editor",legend:"Pressione ${contextMenu} ou TECLA DE MENU para abrir o menu de contexto, então mova para a próxima opção com TAB ou SETA PARA BAIXO. Mova para a anterior com SHIFT+TAB ou SETA PARA CIMA. Pressione ESPAÇO ou ENTER para selecionar a opção do menu. Abra o submenu da opção atual com ESPAÇO ou ENTER ou SETA PARA DIREITA. Volte para o menu pai com ESC ou SETA PARA ESQUERDA. Feche o menu de contexto com ESC."},{name:"Caixa de Lista do Editor",legend:"Dentro de uma caixa de lista, mova para o próximo item com TAB ou SETA PARA BAIXO. Mova para o item anterior com SHIFT+TAB ou SETA PARA CIMA. Pressione ESPAÇO ou ENTER para selecionar uma opção na lista. Pressione ESC para fechar a caixa de lista."}, -{name:"Barra de Caminho do Elementos do Editor",legend:"Pressione ${elementsPathFocus} para a barra de caminho dos elementos. Mova para o próximo botão de elemento com TAB ou SETA PARA DIREITA. Mova para o botão anterior com SHIFT+TAB ou SETA PARA ESQUERDA. Pressione ESPAÇO ou ENTER para selecionar o elemento no editor."}]},{name:"Comandos",items:[{name:" Comando Desfazer",legend:"Pressione ${undo}"},{name:" Comando Refazer",legend:"Pressione ${redo}"},{name:" Comando Negrito",legend:"Pressione ${bold}"}, -{name:" Comando Itálico",legend:"Pressione ${italic}"},{name:" Comando Sublinhado",legend:"Pressione ${underline}"},{name:" Comando Link",legend:"Pressione ${link}"},{name:" Comando Fechar Barra de Ferramentas",legend:"Pressione ${toolbarCollapse}"},{name:"Acessar o comando anterior de spaço de foco",legend:"Pressione ${accessNextSpace} para acessar o espaço de foco não alcançável mais próximo antes do cursor, por exemplo: dois elementos HR adjacentes. Repita a combinação de teclas para alcançar espaços de foco distantes."}, -{name:"Acessar próximo fomando de spaço de foco",legend:"Pressione ${accessNextSpace} para acessar o espaço de foco não alcançável mais próximo após o cursor, por exemplo: dois elementos HR adjacentes. Repita a combinação de teclas para alcançar espaços de foco distantes."},{name:" Ajuda de Acessibilidade",legend:"Pressione ${a11yHelp}"},{name:" Paste as plain text",legend:"Press ${pastetext}",legendEdge:"Press ${pastetext}, followed by ${paste}"}]}],tab:"Tecla Tab",pause:"Pause",capslock:"Caps Lock", -escape:"Escape",pageUp:"Page Up",pageDown:"Page Down",leftArrow:"Seta à Esquerda",upArrow:"Seta à Cima",rightArrow:"Seta à Direita",downArrow:"Seta à Baixo",insert:"Insert",leftWindowKey:"Tecla do Windows Esquerda",rightWindowKey:"Tecla do Windows Direita",selectKey:"Tecla Selecionar",numpad0:"0 do Teclado Numérico",numpad1:"1 do Teclado Numérico",numpad2:"2 do Teclado Numérico",numpad3:"3 do Teclado Numérico",numpad4:"4 do Teclado Numérico",numpad5:"5 do Teclado Numérico",numpad6:"6 do Teclado Numérico", -numpad7:"7 do Teclado Numérico",numpad8:"8 do Teclado Numérico",numpad9:"9 do Teclado Numérico",multiply:"Multiplicar",add:"Mais",subtract:"Subtrair",decimalPoint:"Ponto",divide:"Dividir",f1:"F1",f2:"F2",f3:"F3",f4:"F4",f5:"F5",f6:"F6",f7:"F7",f8:"F8",f9:"F9",f10:"F10",f11:"F11",f12:"F12",numLock:"Num Lock",scrollLock:"Scroll Lock",semiColon:"Ponto-e-vírgula",equalSign:"Igual",comma:"Vírgula",dash:"Hífen",period:"Ponto",forwardSlash:"Barra",graveAccent:"Acento Grave",openBracket:"Abrir Conchetes", -backSlash:"Contra-barra",closeBracket:"Fechar Colchetes",singleQuote:"Aspas Simples"}); \ No newline at end of file diff --git a/admin/plugins/ckeditor/plugins/a11yhelp/dialogs/lang/pt.js b/admin/plugins/ckeditor/plugins/a11yhelp/dialogs/lang/pt.js deleted file mode 100644 index a8c788d..0000000 --- a/admin/plugins/ckeditor/plugins/a11yhelp/dialogs/lang/pt.js +++ /dev/null @@ -1,12 +0,0 @@ -/* - Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. - For licensing, see LICENSE.md or http://ckeditor.com/license -*/ -CKEDITOR.plugins.setLang("a11yhelp","pt",{title:"Instruções de acessibilidade",contents:"Conteúdo de ajuda. Use a tecla ESC para fechar esta janela.",legend:[{name:"Geral",items:[{name:"Barra de ferramentas do editor",legend:"Clique em ${toolbarFocus} para navegar na barra de ferramentas. Para navegar entre o grupo da barra de ferramentas anterior e seguinte use TAB e SHIFT+TAB. Para navegar entre o botão da barra de ferramentas seguinte e anterior use a SETA DIREITA ou SETA ESQUERDA. Carregue em ESPAÇO ou ENTER para ativar o botão da barra de ferramentas."}, -{name:"Janela do editor",legend:"Inside a dialog, press TAB to navigate to the next dialog element, press SHIFT+TAB to move to the previous dialog element, press ENTER to submit the dialog, press ESC to cancel the dialog. When a dialog has multiple tabs, the tab list can be reached either with ALT+F10 or with TAB as part of the dialog tabbing order. With tab list focused, move to the next and previous tab with RIGHT and LEFT ARROW, respectively."},{name:"Menu de contexto do editor",legend:"Clique em ${contextMenu} ou TECLA APLICAÇÃO para abrir o menu de contexto. Depois vá para a opção do menu seguinte com TAB ou SETA PARA BAIXO. Vá para a opção anterior com SHIFT+TAB ou SETA PARA CIMA. Pressione ESPAÇO ou ENTER para selecionar a opção do menu. Abra o submenu da opção atual com ESPAÇO, ENTER ou SETA DIREITA. Vá para o item do menu contentor com ESC ou SETA ESQUERDA. Feche o menu de contexto com ESC."}, -{name:"Editor de caixa em lista",legend:"Dentro de uma lista, para navegar para o item seguinte da lista use TAB ou SETA PARA BAIXO. Para o item anterior da lista use SHIFT+TAB ou SETA PARA BAIXO. Carregue em ESPAÇO ou ENTER para selecionar a opção lista. Carregue em ESC para fechar a caixa da lista."},{name:"Editor da barra de caminho dos elementos",legend:"Clique em ${elementsPathFocus} para navegar na barra de caminho dos elementos. Para o botão do elemento seguinte use TAB ou SETA DIREITA. para o botão anterior use SHIFT+TAB ou SETA ESQUERDA. Carregue em ESPAÇO ou ENTER para selecionar o elemento no editor."}]}, -{name:"Comandos",items:[{name:"Comando de anular",legend:"Carregar ${undo}"},{name:"Comando de refazer",legend:"Clique ${redo}"},{name:"Comando de negrito",legend:"Pressione ${bold}"},{name:"Comando de itálico",legend:"Pressione ${italic}"},{name:"Comando de sublinhado",legend:"Pressione ${underline}"},{name:"Comando de hiperligação",legend:"Pressione ${link}"},{name:"Comando de ocultar barra de ferramentas",legend:"Pressione ${toolbarCollapse}"},{name:"Aceder ao comando espaço de foco anterior", -legend:"Clique em ${accessPreviousSpace} para aceder ao espaço do focos inalcançável mais perto antes do sinal de omissão, por exemplo: dois elementos HR adjacentes. Repetir a combinação da chave para alcançar os espaços dos focos distantes."},{name:"Acesso comando do espaço focus seguinte",legend:"Pressione ${accessNextSpace} para aceder ao espaço do focos inalcançável mais perto depois do sinal de omissão, por exemplo: dois elementos HR adjacentes. Repetir a combinação da chave para alcançar os espaços dos focos distantes."}, -{name:"Ajuda a acessibilidade",legend:"Pressione ${a11yHelp}"},{name:" Paste as plain text",legend:"Press ${pastetext}",legendEdge:"Press ${pastetext}, followed by ${paste}"}]}],tab:"Separador",pause:"Pausa",capslock:"Maiúsculas",escape:"Esc",pageUp:"Subir página",pageDown:"Descer página",leftArrow:"Seta esquerda",upArrow:"Seta para cima",rightArrow:"Seta direita",downArrow:"Seta para baixo",insert:"Inserir",leftWindowKey:"Tecla esquerda Windows",rightWindowKey:"Tecla direita Windows",selectKey:"Selecionar tecla", -numpad0:"Numpad 0",numpad1:"Numpad 1",numpad2:"Numpad 2",numpad3:"Numpad 3",numpad4:"Numpad 4",numpad5:"Numpad 5",numpad6:"Numpad 6",numpad7:"Numpad 7",numpad8:"Numpad 8",numpad9:"Numpad 9",multiply:"Multiplicar",add:"Adicionar",subtract:"Subtrair",decimalPoint:"Ponto decimal",divide:"Separar",f1:"F1",f2:"F2",f3:"F3",f4:"F4",f5:"F5",f6:"F6",f7:"F7",f8:"F8",f9:"F9",f10:"F10",f11:"F11",f12:"F12",numLock:"Num Lock",scrollLock:"Scroll Lock",semiColon:"Ponto e vírgula",equalSign:"Sinald e igual",comma:"Vírgula", -dash:"Cardinal",period:"Ponto",forwardSlash:"Forward Slash",graveAccent:"Acento grave",openBracket:"Open Bracket",backSlash:"Backslash",closeBracket:"Close Bracket",singleQuote:"Plica"}); \ No newline at end of file diff --git a/admin/plugins/ckeditor/plugins/a11yhelp/dialogs/lang/ro.js b/admin/plugins/ckeditor/plugins/a11yhelp/dialogs/lang/ro.js deleted file mode 100644 index 72f91d4..0000000 --- a/admin/plugins/ckeditor/plugins/a11yhelp/dialogs/lang/ro.js +++ /dev/null @@ -1,11 +0,0 @@ -/* - Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. - For licensing, see LICENSE.md or http://ckeditor.com/license -*/ -CKEDITOR.plugins.setLang("a11yhelp","ro",{title:"Instrucțiuni de accesibilitate",contents:"Cuprins. Pentru a închide acest dialog, apăsați tasta ESC.",legend:[{name:"General",items:[{name:"Editează bara instrumente.",legend:"Apasă ${toolbarFocus} pentru a naviga prin bara de instrumente. Pentru a te mișca prin grupurile de instrumente folosește tastele TAB și SHIFT+TAB. Pentru a te mișca intre diverse instrumente folosește tastele SĂGEATĂ DREAPTA sau SĂGEATĂ STÂNGA. Apasă butonul SPAȚIU sau ENTER pentru activarea instrumentului."}, -{name:"Dialog editor",legend:"Inside a dialog, press TAB to navigate to the next dialog element, press SHIFT+TAB to move to the previous dialog element, press ENTER to submit the dialog, press ESC to cancel the dialog. When a dialog has multiple tabs, the tab list can be reached either with ALT+F10 or with TAB as part of the dialog tabbing order. With tab list focused, move to the next and previous tab with RIGHT and LEFT ARROW, respectively."},{name:"Editor meniu contextual",legend:"Apasă ${contextMenu} sau TASTA MENIU pentru a deschide meniul contextual. Treci la următoarea opțiune din meniu cu TAB sau SĂGEATĂ JOS. Treci la opțiunea anterioară cu SHIFT+TAB sau SĂGEATĂ SUS. Apasă SPAȚIU sau ENTER pentru a selecta opțiunea din meniu. Deschide sub-meniul opțiunii curente cu SPAȚIU sau ENTER sau SĂGEATĂ DREAPTA. Revino la elementul din meniul părinte cu ESC sau SĂGEATĂ STÂNGA. Închide meniul de context cu ESC."}, -{name:"Editor Casetă Listă",legend:"În interiorul unei liste, treci la următorull element cu TAB sau SĂGEATĂ JOS. Treci la elementul anterior din listă cu SHIFT+TAB sau SĂGEATĂ SUS. Apasă SPAȚIU sau ENTER pentru a selecta opțiunea din listă. Apasă ESC pentru a închide lista."},{name:"Editor Element Path Bar",legend:"Press ${elementsPathFocus} to navigate to the elements path bar. Move to next element button with TAB or RIGHT ARROW. Move to previous button with SHIFT+TAB or LEFT ARROW. Press SPACE or ENTER to select the element in editor."}]}, -{name:"Comenzi",items:[{name:" Undo command",legend:"Apasă ${undo}"},{name:"Comanda precedentă",legend:"Apasă ${redo}"},{name:"Comanda Îngroșat",legend:"Apasă ${bold}"},{name:"Comanda Inclinat",legend:"Apasă ${italic}"},{name:"Comanda Subliniere",legend:"Apasă ${underline}"},{name:"Comanda Legatură",legend:"Apasă ${link}"},{name:" Toolbar Collapse command",legend:"Press ${toolbarCollapse}"},{name:" Access previous focus space command",legend:"Press ${accessPreviousSpace} to access the closest unreachable focus space before the caret, for example: two adjacent HR elements. Repeat the key combination to reach distant focus spaces."}, -{name:" Access next focus space command",legend:"Press ${accessNextSpace} to access the closest unreachable focus space after the caret, for example: two adjacent HR elements. Repeat the key combination to reach distant focus spaces."},{name:" Accessibility Help",legend:"Press ${a11yHelp}"},{name:" Paste as plain text",legend:"Press ${pastetext}",legendEdge:"Press ${pastetext}, followed by ${paste}"}]}],tab:"Tab",pause:"Pause",capslock:"Caps Lock",escape:"Escape",pageUp:"Page Up",pageDown:"Page Down", -leftArrow:"Left Arrow",upArrow:"Up Arrow",rightArrow:"Right Arrow",downArrow:"Down Arrow",insert:"Insert",leftWindowKey:"Left Windows key",rightWindowKey:"Right Windows key",selectKey:"Select key",numpad0:"Numpad 0",numpad1:"Numpad 1",numpad2:"Numpad 2",numpad3:"Numpad 3",numpad4:"Numpad 4",numpad5:"Numpad 5",numpad6:"Numpad 6",numpad7:"Numpad 7",numpad8:"Numpad 8",numpad9:"Numpad 9",multiply:"Multiply",add:"Add",subtract:"Subtract",decimalPoint:"Decimal Point",divide:"Divide",f1:"F1",f2:"F2",f3:"F3", -f4:"F4",f5:"F5",f6:"F6",f7:"F7",f8:"F8",f9:"F9",f10:"F10",f11:"F11",f12:"F12",numLock:"Num Lock",scrollLock:"Scroll Lock",semiColon:"Semicolon",equalSign:"Equal Sign",comma:"Comma",dash:"Dash",period:"Period",forwardSlash:"Forward Slash",graveAccent:"Grave Accent",openBracket:"Open Bracket",backSlash:"Backslash",closeBracket:"Close Bracket",singleQuote:"Single Quote"}); \ No newline at end of file diff --git a/admin/plugins/ckeditor/plugins/a11yhelp/dialogs/lang/ru.js b/admin/plugins/ckeditor/plugins/a11yhelp/dialogs/lang/ru.js deleted file mode 100644 index 6381aae..0000000 --- a/admin/plugins/ckeditor/plugins/a11yhelp/dialogs/lang/ru.js +++ /dev/null @@ -1,11 +0,0 @@ -/* - Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. - For licensing, see LICENSE.md or http://ckeditor.com/license -*/ -CKEDITOR.plugins.setLang("a11yhelp","ru",{title:"Горячие клавиши",contents:"Помощь. Для закрытия этого окна нажмите ESC.",legend:[{name:"Основное",items:[{name:"Панель инструментов",legend:"Нажмите ${toolbarFocus} для перехода к панели инструментов. Для перемещения между группами панели инструментов используйте TAB и SHIFT+TAB. Для перемещения между кнопками панели иструментов используйте кнопки ВПРАВО или ВЛЕВО. Нажмите ПРОБЕЛ или ENTER для запуска кнопки панели инструментов."},{name:"Диалоги",legend:'Внутри диалога, нажмите TAB чтобы перейти к следующему элементу диалога, нажмите SHIFT+TAB чтобы перейти к предыдущему элементу диалога, нажмите ENTER чтобы отправить диалог, нажмите ESC чтобы отменить диалог. Когда диалоговое окно имеет несколько вкладок, получить доступ к панели вкладок как части диалога можно нажатием или сочетания ALT+F10 или TAB, при этом активные элементы диалога будут перебираться с учетом порядка табуляции. При активной панели вкладок, переход к следующей или предыдущей вкладке осуществляется нажатием стрелки "ВПРАВО" или стрелки "ВЛЕВО" соответственно.'}, -{name:"Контекстное меню",legend:'Нажмите ${contextMenu} или клавишу APPLICATION, чтобы открыть контекстное меню. Затем перейдите к следующему пункту меню с помощью TAB или стрелкой "ВНИЗ". Переход к предыдущей опции - SHIFT+TAB или стрелкой "ВВЕРХ". Нажмите SPACE, или ENTER, чтобы задействовать опцию меню. Открыть подменю текущей опции - SPACE или ENTER или стрелкой "ВПРАВО". Возврат к родительскому пункту меню - ESC или стрелкой "ВЛЕВО". Закрытие контекстного меню - ESC.'},{name:"Редактор списка", -legend:'Внутри окна списка, переход к следующему пункту списка - TAB или стрелкой "ВНИЗ". Переход к предыдущему пункту списка - SHIFT+TAB или стрелкой "ВВЕРХ". Нажмите SPACE, или ENTER, чтобы задействовать опцию списка. Нажмите ESC, чтобы закрыть окно списка.'},{name:"Путь к элементу",legend:'Нажмите ${elementsPathFocus}, чтобы перейти к панели пути элементов. Переход к следующей кнопке элемента - TAB или стрелкой "ВПРАВО". Переход к предыдущей кнопку - SHIFT+TAB или стрелкой "ВЛЕВО". Нажмите SPACE, или ENTER, чтобы выбрать элемент в редакторе.'}]}, -{name:"Команды",items:[{name:"Отменить",legend:"Нажмите ${undo}"},{name:"Повторить",legend:"Нажмите ${redo}"},{name:"Полужирный",legend:"Нажмите ${bold}"},{name:"Курсив",legend:"Нажмите ${italic}"},{name:"Подчеркнутый",legend:"Нажмите ${underline}"},{name:"Гиперссылка",legend:"Нажмите ${link}"},{name:"Свернуть панель инструментов",legend:"Нажмите ${toolbarCollapse}"},{name:"Команды доступа к предыдущему фокусному пространству",legend:'Нажмите ${accessPreviousSpace}, чтобы обратиться к ближайшему недостижимому фокусному пространству перед символом "^", например: два смежных HR элемента. Повторите комбинацию клавиш, чтобы достичь отдаленных фокусных пространств.'}, -{name:"Команды доступа к следующему фокусному пространству",legend:"Press ${accessNextSpace} to access the closest unreachable focus space after the caret, for example: two adjacent HR elements. Repeat the key combination to reach distant focus spaces."},{name:"Справка по горячим клавишам",legend:"Нажмите ${a11yHelp}"},{name:"Вставить только текст",legend:"Нажмите ${pastetext}",legendEdge:"Press ${pastetext}, followed by ${paste}"}]}],tab:"Tab",pause:"Pause",capslock:"Caps Lock",escape:"Esc",pageUp:"Page Up", -pageDown:"Page Down",leftArrow:"Стрелка влево",upArrow:"Стрелка вверх",rightArrow:"Стрелка вправо",downArrow:"Стрелка вниз",insert:"Insert",leftWindowKey:"Левая клавиша Windows",rightWindowKey:"Правая клавиша Windows",selectKey:"Выбрать",numpad0:"Цифра 0",numpad1:"Цифра 1",numpad2:"Цифра 2",numpad3:"Цифра 3",numpad4:"Цифра 4",numpad5:"Цифра 5",numpad6:"Цифра 6",numpad7:"Цифра 7",numpad8:"Цифра 8",numpad9:"Цифра 9",multiply:"Умножить",add:"Плюс",subtract:"Вычесть",decimalPoint:"Десятичная точка",divide:"Делить", -f1:"F1",f2:"F2",f3:"F3",f4:"F4",f5:"F5",f6:"F6",f7:"F7",f8:"F8",f9:"F9",f10:"F10",f11:"F11",f12:"F12",numLock:"Num Lock",scrollLock:"Scroll Lock",semiColon:"Точка с запятой",equalSign:"Равно",comma:"Запятая",dash:"Тире",period:"Точка",forwardSlash:"Наклонная черта",graveAccent:"Апостроф",openBracket:"Открыть скобку",backSlash:"Обратная наклонная черта",closeBracket:"Закрыть скобку",singleQuote:"Одинарная кавычка"}); \ No newline at end of file diff --git a/admin/plugins/ckeditor/plugins/a11yhelp/dialogs/lang/si.js b/admin/plugins/ckeditor/plugins/a11yhelp/dialogs/lang/si.js deleted file mode 100644 index 0f21a5f..0000000 --- a/admin/plugins/ckeditor/plugins/a11yhelp/dialogs/lang/si.js +++ /dev/null @@ -1,10 +0,0 @@ -/* - Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. - For licensing, see LICENSE.md or http://ckeditor.com/license -*/ -CKEDITOR.plugins.setLang("a11yhelp","si",{title:"ළඟා වියහැකි ",contents:"උදව් සඳහා අන්තර්ගතය.නික්මයෙමට ESC බොත්තම ඔබන්න",legend:[{name:"පොදු කරුණු",items:[{name:"සංස්කරණ මෙවලම් ",legend:"ඔබන්න ${මෙවලම් තීරු අවධානය} මෙවලම් තීරුවේ එහා මෙහා යෑමට.ඉදිරියට යෑමට හා ආපසු යෑමට මෙවලම් තීරුකාණ්ඩය හා TAB හා SHIFT+TAB .ඉදිරියට යෑමට හා ආපසු යෑමට මෙවලම් තීරු බොත්තම සමග RIGHT ARROW හෝ LEFT ARROW.මෙවලම් තීරු බොත්තම සක්‍රිය කර ගැනීමට SPACE හෝ ENTER බොත්තම ඔබන්න."},{name:"සංස්කරණ ",legend:"Inside a dialog, press TAB to navigate to the next dialog element, press SHIFT+TAB to move to the previous dialog element, press ENTER to submit the dialog, press ESC to cancel the dialog. When a dialog has multiple tabs, the tab list can be reached either with ALT+F10 or with TAB as part of the dialog tabbing order. With tab list focused, move to the next and previous tab with RIGHT and LEFT ARROW, respectively."}, -{name:"සංස්කරණ අඩංගුවට ",legend:"ඔබන්න ${අන්තර්ගත මෙනුව} හෝ APPLICATION KEY අන්තර්ගත-මෙනුව විවුරතකිරීමට. ඊළඟ මෙනුව-ව්කල්පයන්ට යෑමට TAB හෝ DOWN ARROW බොත්තම ද, පෙර විකල්පයන්ටයෑමට SHIFT+TAB හෝ UP ARROW බොත්තම ද, මෙනුව-ව්කල්පයන් තේරීමට SPACE හෝ ENTER බොත්තම ද, දැනට විවුර්තව ඇති උප-මෙනුවක වීකල්ප තේරීමට SPACE හෝ ENTER හෝ RIGHT ARROW ද, නැවත පෙර ප්‍රධාන මෙනුවට යෑමට ESC හෝ LEFT ARROW බොත්තම ද. අන්තර්ගත-මෙනුව වැසීමට ESC බොත්තම ද ඔබන්න."},{name:"සංස්කරණ තේරුම් ",legend:"තේරුම් කොටුව තුළ , ඊළඟ අයිතමයට යෑමට TAB හෝ DOWN ARROW , පෙර අයිතමයට යෑමට SHIFT+TAB හෝ UP ARROW . අයිතම විකල්පයන් තේරීමට SPACE හෝ ENTER ,තේරුම් කොටුව වැසීමට ESC බොත්තම් ද ඔබන්න."}, -{name:"සංස්කරණ අංග සහිත ",legend:"ඔබන්න ${මෙවලම් තීරු අවධානය} මෙවලම් තීරුවේ එහා මෙහා යෑමට.ඉදිරියට යෑමට හා ආපසු යෑමට මෙවලම් තීරුකාණ්ඩය හා TAB හා SHIFT+TAB .ඉදිරියට යෑමට හා ආපසු යෑමට මෙවලම් තීරු බොත්තම සමග RIGHT ARROW හෝ LEFT ARROW.මෙවලම් තීරු බොත්තම සක්‍රිය කර ගැනීමට SPACE හෝ ENTER බොත්තම ඔබන්න."}]},{name:"විධාන",items:[{name:"විධානය වෙනස් ",legend:"ඔබන්න ${වෙනස් කිරීම}"},{name:"විධාන නැවත් පෙර පරිදිම වෙනස්කර ගැනීම.",legend:"ඔබන්න ${නැවත් පෙර පරිදිම වෙනස්කර ගැනීම}"},{name:"තද අකුරින් විධාන",legend:"ඔබන්න ${තද }"}, -{name:"බැධී අකුරු විධාන",legend:"ඔබන්න ${බැධී අකුරු }"},{name:"යටින් ඉරි ඇද ඇති විධාන.",legend:"ඔබන්න ${යටින් ඉරි ඇද ඇති}"},{name:"සම්බන්ධිත විධාන",legend:"ඔබන්න ${සම්බන්ධ }"},{name:"මෙවලම් තීරු හැකුලුම් විධාන",legend:"ඔබන්න ${මෙවලම් තීරු හැකුලුම් }"},{name:"යොමුවීමට පෙර වැදගත් විධාන",legend:"ඔබන්න ${යොමුවීමට ඊළඟ }"},{name:"යොමුවීමට ඊළග වැදගත් විධාන",legend:"ඔබන්න ${යොමුවීමට ඊළඟ }"},{name:"ප්‍රවේශ ",legend:"ඔබන්න ${a11y }"},{name:" Paste as plain text",legend:"Press ${pastetext}",legendEdge:"Press ${pastetext}, followed by ${paste}"}]}], -tab:"Tab",pause:"Pause",capslock:"Caps Lock",escape:"Escape",pageUp:"Page Up",pageDown:"Page Down",leftArrow:"Left Arrow",upArrow:"Up Arrow",rightArrow:"Right Arrow",downArrow:"Down Arrow",insert:"Insert",leftWindowKey:"Left Windows key",rightWindowKey:"Right Windows key",selectKey:"Select key",numpad0:"Numpad 0",numpad1:"Numpad 1",numpad2:"Numpad 2",numpad3:"Numpad 3",numpad4:"Numpad 4",numpad5:"Numpad 5",numpad6:"Numpad 6",numpad7:"Numpad 7",numpad8:"Numpad 8",numpad9:"Numpad 9",multiply:"Multiply", -add:"Add",subtract:"Subtract",decimalPoint:"Decimal Point",divide:"Divide",f1:"F1",f2:"F2",f3:"F3",f4:"F4",f5:"F5",f6:"F6",f7:"F7",f8:"F8",f9:"F9",f10:"F10",f11:"F11",f12:"F12",numLock:"Num Lock",scrollLock:"Scroll Lock",semiColon:"Semicolon",equalSign:"Equal Sign",comma:"Comma",dash:"Dash",period:"Period",forwardSlash:"Forward Slash",graveAccent:"Grave Accent",openBracket:"Open Bracket",backSlash:"Backslash",closeBracket:"Close Bracket",singleQuote:"Single Quote"}); \ No newline at end of file diff --git a/admin/plugins/ckeditor/plugins/a11yhelp/dialogs/lang/sk.js b/admin/plugins/ckeditor/plugins/a11yhelp/dialogs/lang/sk.js deleted file mode 100644 index dc59887..0000000 --- a/admin/plugins/ckeditor/plugins/a11yhelp/dialogs/lang/sk.js +++ /dev/null @@ -1,11 +0,0 @@ -/* - Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. - For licensing, see LICENSE.md or http://ckeditor.com/license -*/ -CKEDITOR.plugins.setLang("a11yhelp","sk",{title:"Inštrukcie prístupnosti",contents:"Pomocný obsah. Pre zatvorenie tohto okna, stlačte ESC.",legend:[{name:"Všeobecne",items:[{name:"Lišta nástrojov editora",legend:"Stlačte ${toolbarFocus} pre navigáciu na lištu nástrojov. Medzi ďalšou a predchádzajúcou lištou nástrojov sa pohybujete s TAB a SHIFT+TAB. Medzi ďalším a predchádzajúcim tlačidlom na lište nástrojov sa pohybujete s pravou šípkou a ľavou šípkou. Stlačte medzerník alebo ENTER pre aktiváciu tlačidla lišty nástrojov."}, -{name:"Editorový dialóg",legend:"V dialógovom okne stlačte TAB pre presun na ďalší prvok, SHIFT+TAB pre presun na predchádzajúci prvok, ENTER pre odoslanie, ESC pre zrušenie. Keď má dialógové okno viacero kariet, zoznam kariet dosiahnete buď stlačením ALT+F10 alebo s TAB v príslušnom poradí kariet. So zameraným zoznamom kariet sa pohybujte k ďalšej alebo predchádzajúcej karte cez PRAVÚ a ĽAVÚ ŠÍPKU."},{name:"Editorové kontextové menu",legend:"Stlačte ${contextMenu} alebo APPLICATION KEY pre otvorenie kontextového menu. Potom sa presúvajte na ďalšie možnosti menu s TAB alebo dolnou šípkou. Presunte sa k predchádzajúcej možnosti s SHIFT+TAB alebo hornou šípkou. Stlačte medzerník alebo ENTER pre výber možnosti menu. Otvorte pod-menu danej možnosti s medzerníkom, alebo ENTER, alebo pravou šípkou. Vráťte sa späť do položky rodičovského menu s ESC alebo ľavou šípkou. Zatvorte kontextové menu s ESC."}, -{name:"Editorov box zoznamu",legend:"V boxe zoznamu, presuňte sa na ďalšiu položku v zozname s TAB alebo dolnou šípkou. Presuňte sa k predchádzajúcej položke v zozname so SHIFT+TAB alebo hornou šípkou. Stlačte medzerník alebo ENTER pre výber možnosti zoznamu. Stlačte ESC pre zatvorenie boxu zoznamu."},{name:"Editorove pásmo cesty prvku",legend:"Stlačte ${elementsPathFocus} pre navigovanie na pásmo cesty elementu. Presuňte sa na tlačidlo ďalšieho prvku s TAB alebo pravou šípkou. Presuňte sa k predchádzajúcemu tlačidlu s SHIFT+TAB alebo ľavou šípkou. Stlačte medzerník alebo ENTER pre výber prvku v editore."}]}, -{name:"Príkazy",items:[{name:"Vrátiť príkazy",legend:"Stlačte ${undo}"},{name:"Nanovo vrátiť príkaz",legend:"Stlačte ${redo}"},{name:"Príkaz na stučnenie",legend:"Stlačte ${bold}"},{name:"Príkaz na kurzívu",legend:"Stlačte ${italic}"},{name:"Príkaz na podčiarknutie",legend:"Stlačte ${underline}"},{name:"Príkaz na odkaz",legend:"Stlačte ${link}"},{name:"Príkaz na zbalenie lišty nástrojov",legend:"Stlačte ${toolbarCollapse}"},{name:"Prejsť na predchádzajúcu zamerateľnú medzeru príkazu",legend:"Stlačte ${accessPreviousSpace} pre prístup na najbližšie nedosiahnuteľné zamerateľné medzery pred vsuvkuo. Napríklad: dve za sebou idúce horizontálne čiary. Opakujte kombináciu klávesov pre dosiahnutie vzdialených zamerateľných medzier."}, -{name:"Prejsť na ďalší ",legend:"Stlačte ${accessNextSpace} pre prístup na najbližšie nedosiahnuteľné zamerateľné medzery po vsuvke. Napríklad: dve za sebou idúce horizontálne čiary. Opakujte kombináciu klávesov pre dosiahnutie vzdialených zamerateľných medzier."},{name:"Pomoc prístupnosti",legend:"Stlačte ${a11yHelp}"},{name:" Paste as plain text",legend:"Press ${pastetext}",legendEdge:"Press ${pastetext}, followed by ${paste}"}]}],tab:"Tab",pause:"Pause",capslock:"Caps Lock",escape:"Escape",pageUp:"Stránka hore", -pageDown:"Stránka dole",leftArrow:"Šípka naľavo",upArrow:"Šípka hore",rightArrow:"Šípka napravo",downArrow:"Šípka dole",insert:"Insert",leftWindowKey:"Ľavé Windows tlačidlo",rightWindowKey:"Pravé Windows tlačidlo",selectKey:"Tlačidlo Select",numpad0:"Numpad 0",numpad1:"Numpad 1",numpad2:"Numpad 2",numpad3:"Numpad 3",numpad4:"Numpad 4",numpad5:"Numpad 5",numpad6:"Numpad 6",numpad7:"Numpad 7",numpad8:"Numpad 8",numpad9:"Numpad 9",multiply:"Násobenie",add:"Sčítanie",subtract:"Odčítanie",decimalPoint:"Desatinná čiarka", -divide:"Delenie",f1:"F1",f2:"F2",f3:"F3",f4:"F4",f5:"F5",f6:"F6",f7:"F7",f8:"F8",f9:"F9",f10:"F10",f11:"F11",f12:"F12",numLock:"Num Lock",scrollLock:"Scroll Lock",semiColon:"Bodkočiarka",equalSign:"Rovná sa",comma:"Čiarka",dash:"Pomĺčka",period:"Bodka",forwardSlash:"Lomítko",graveAccent:"Zdôrazňovanie prízvuku",openBracket:"Hranatá zátvorka otváracia",backSlash:"Backslash",closeBracket:"Hranatá zátvorka zatváracia",singleQuote:"Jednoduché úvodzovky"}); \ No newline at end of file diff --git a/admin/plugins/ckeditor/plugins/a11yhelp/dialogs/lang/sl.js b/admin/plugins/ckeditor/plugins/a11yhelp/dialogs/lang/sl.js deleted file mode 100644 index 2df296a..0000000 --- a/admin/plugins/ckeditor/plugins/a11yhelp/dialogs/lang/sl.js +++ /dev/null @@ -1,11 +0,0 @@ -/* - Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. - For licensing, see LICENSE.md or http://ckeditor.com/license -*/ -CKEDITOR.plugins.setLang("a11yhelp","sl",{title:"Navodila za dostopnost",contents:"Vsebina pomoči. Če želite zapreti pogovorno okno, pritisnite ESC.",legend:[{name:"Splošno",items:[{name:"Orodna vrstica urejevalnika",legend:"Pritisnite ${toolbarFocus} za pomik v orodno vrstico. Z TAB in SHIFT+TAB se pomikate na naslednjo in prejšnjo skupino orodne vrstice. Z DESNO PUŠČICO ali LEVO PUŠČICO se pomikate na naslednji in prejšnji gumb orodne vrstice. Pritisnite SPACE ali ENTER, da aktivirate gumb orodne vrstice."}, -{name:"Urejevalno Pogovorno Okno",legend:"Inside a dialog, press TAB to navigate to the next dialog element, press SHIFT+TAB to move to the previous dialog element, press ENTER to submit the dialog, press ESC to cancel the dialog. When a dialog has multiple tabs, the tab list can be reached either with ALT+F10 or with TAB as part of the dialog tabbing order. With tab list focused, move to the next and previous tab with RIGHT and LEFT ARROW, respectively."},{name:"Kontekstni meni urejevalnika",legend:"Pritisnite ${contextMenu} ali APPLICATION KEY, da odprete kontekstni meni. Nato se premaknite na naslednjo možnost menija s tipko TAB ali PUŠČICA DOL. Premakniti se na prejšnjo možnost z SHIFT + TAB ali PUŠČICA GOR. Pritisnite SPACE ali ENTER za izbiro možnosti menija. Odprite podmeni trenutne možnosti menija s tipko SPACE ali ENTER ali DESNA PUŠČICA. Vrnite se na matični element menija s tipko ESC ali LEVA PUŠČICA. Zaprite kontekstni meni z ESC."}, -{name:"Urejevalno Seznamsko Polje",legend:"Znotraj seznama, se premaknete na naslednji element seznama s tipko TAB ali PUŠČICO DOL. Z SHIFT+TAB ali PUŠČICO GOR se premaknete na prejšnji element seznama. Pritisnite tipko SPACE ali ENTER za izbiro elementa. Pritisnite tipko ESC, da zaprete seznam."},{name:"Urejevalna vrstica poti elementa",legend:"Pritisnite ${elementsPathFocus} za pomikanje po vrstici elementnih poti. S TAB ali DESNA PUŠČICA se premaknete na naslednji gumb elementa. Z SHIFT+TAB ali LEVO PUŠČICO se premaknete na prejšnji gumb elementa. Pritisnite SPACE ali ENTER za izbiro elementa v urejevalniku."}]}, -{name:"Ukazi",items:[{name:"Razveljavi ukaz",legend:"Pritisnite ${undo}"},{name:"Ponovi ukaz",legend:"Pritisnite ${redo}"},{name:"Krepki ukaz",legend:"Pritisnite ${bold}"},{name:"Ležeči ukaz",legend:"Pritisnite ${italic}"},{name:"Poudarni ukaz",legend:"Pritisnite ${underline}"},{name:"Ukaz povezave",legend:"Pritisnite ${link}"},{name:"Skrči Orodno Vrstico Ukaz",legend:"Pritisnite ${toolbarCollapse}"},{name:"Dostop do prejšnjega ukaza ostrenja",legend:"Pritisnite ${accessPreviousSpace} za dostop do najbližjega nedosegljivega osredotočenega prostora pred strešico, npr.: dva sosednja HR elementa. Ponovite kombinacijo tipk, da dosežete oddaljene osredotočene prostore."}, -{name:"Dostop do naslednjega ukaza ostrenja",legend:"Pritisnite ${accessNextSpace} za dostop do najbližjega nedosegljivega osredotočenega prostora po strešici, npr.: dva sosednja HR elementa. Ponovite kombinacijo tipk, da dosežete oddaljene osredotočene prostore."},{name:"Pomoč dostopnosti",legend:"Pritisnite ${a11yHelp}"},{name:" Paste as plain text",legend:"Press ${pastetext}",legendEdge:"Press ${pastetext}, followed by ${paste}"}]}],tab:"Tab",pause:"Pause",capslock:"Caps Lock",escape:"Escape", -pageUp:"Page Up",pageDown:"Page Down",leftArrow:"Puščica levo",upArrow:"Puščica gor",rightArrow:"Puščica desno",downArrow:"Puščica dol",insert:"Insert",leftWindowKey:"Leva tipka Windows",rightWindowKey:"Desna tipka Windows",selectKey:"Select tipka",numpad0:"Numpad 0",numpad1:"Numpad 1",numpad2:"Numpad 2",numpad3:"Numpad 3",numpad4:"Numpad 4",numpad5:"Numpad 5",numpad6:"Numpad 6",numpad7:"Numpad 7",numpad8:"Numpad 8",numpad9:"Numpad 9",multiply:"Zmnoži",add:"Dodaj",subtract:"Odštej",decimalPoint:"Decimalna vejica", -divide:"Deli",f1:"F1",f2:"F2",f3:"F3",f4:"F4",f5:"F5",f6:"F6",f7:"F7",f8:"F8",f9:"F9",f10:"F10",f11:"F11",f12:"F12",numLock:"Num Lock",scrollLock:"Scroll Lock",semiColon:"Podpičje",equalSign:"Enačaj",comma:"Vejica",dash:"Vezaj",period:"Pika",forwardSlash:"Desna poševnica",graveAccent:"Krativec",openBracket:"Oklepaj",backSlash:"Leva poševnica",closeBracket:"Zaklepaj",singleQuote:"Opuščaj"}); \ No newline at end of file diff --git a/admin/plugins/ckeditor/plugins/a11yhelp/dialogs/lang/sq.js b/admin/plugins/ckeditor/plugins/a11yhelp/dialogs/lang/sq.js deleted file mode 100644 index 77db830..0000000 --- a/admin/plugins/ckeditor/plugins/a11yhelp/dialogs/lang/sq.js +++ /dev/null @@ -1,11 +0,0 @@ -/* - Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. - For licensing, see LICENSE.md or http://ckeditor.com/license -*/ -CKEDITOR.plugins.setLang("a11yhelp","sq",{title:"Udhëzimet e Qasjes",contents:"Përmbajtja ndihmëse. Për ta mbyllur dialogun shtyp ESC.",legend:[{name:"Të përgjithshme",items:[{name:"Shiriti i Redaktuesit",legend:"Press ${toolbarFocus} to navigate to the toolbar. Move to the next and previous toolbar group with TAB and SHIFT+TAB. Move to the next and previous toolbar button with RIGHT ARROW or LEFT ARROW. Press SPACE or ENTER to activate the toolbar button."},{name:"Dialogu i Redaktuesit",legend:"Inside a dialog, press TAB to navigate to the next dialog element, press SHIFT+TAB to move to the previous dialog element, press ENTER to submit the dialog, press ESC to cancel the dialog. When a dialog has multiple tabs, the tab list can be reached either with ALT+F10 or with TAB as part of the dialog tabbing order. With tab list focused, move to the next and previous tab with RIGHT and LEFT ARROW, respectively."}, -{name:"Editor Context Menu",legend:"Press ${contextMenu} or APPLICATION KEY to open context-menu. Then move to next menu option with TAB or DOWN ARROW. Move to previous option with SHIFT+TAB or UP ARROW. Press SPACE or ENTER to select the menu option. Open sub-menu of current option with SPACE or ENTER or RIGHT ARROW. Go back to parent menu item with ESC or LEFT ARROW. Close context menu with ESC."},{name:"Editor List Box",legend:"Inside a list-box, move to next list item with TAB OR DOWN ARROW. Move to previous list item with SHIFT+TAB or UP ARROW. Press SPACE or ENTER to select the list option. Press ESC to close the list-box."}, -{name:"Editor Element Path Bar",legend:"Press ${elementsPathFocus} to navigate to the elements path bar. Move to next element button with TAB or RIGHT ARROW. Move to previous button with SHIFT+TAB or LEFT ARROW. Press SPACE or ENTER to select the element in editor."}]},{name:"Komandat",items:[{name:"Rikthe komandën",legend:"Shtyp ${undo}"},{name:"Ribëj komandën",legend:"Shtyp ${redo}"},{name:"Komanda e trashjes së tekstit",legend:"Shtyp ${bold}"},{name:"Komanda kursive",legend:"Shtyp ${italic}"}, -{name:"Komanda e nënvijëzimit",legend:"Shtyp ${underline}"},{name:"Komanda e Nyjes",legend:"Shtyp ${link}"},{name:" Toolbar Collapse command",legend:"Shtyp ${toolbarCollapse}"},{name:" Access previous focus space command",legend:"Press ${accessPreviousSpace} to access the closest unreachable focus space before the caret, for example: two adjacent HR elements. Repeat the key combination to reach distant focus spaces."},{name:" Access next focus space command",legend:"Press ${accessNextSpace} to access the closest unreachable focus space after the caret, for example: two adjacent HR elements. Repeat the key combination to reach distant focus spaces."}, -{name:"Ndihmë Qasjeje",legend:"Shtyp ${a11yHelp}"},{name:" Paste as plain text",legend:"Press ${pastetext}",legendEdge:"Press ${pastetext}, followed by ${paste}"}]}],tab:"Fletë",pause:"Pause",capslock:"Caps Lock",escape:"Escape",pageUp:"Page Up",pageDown:"Page Down",leftArrow:"Shenja majtas",upArrow:"Shenja sipër",rightArrow:"Shenja djathtas",downArrow:"Shenja poshtë",insert:"Shto",leftWindowKey:"Left Windows key",rightWindowKey:"Right Windows key",selectKey:"Select key",numpad0:"Numpad 0",numpad1:"Numpad 1", -numpad2:"Numpad 2",numpad3:"Numpad 3",numpad4:"Numpad 4",numpad5:"Numpad 5",numpad6:"Numpad 6",numpad7:"Numpad 7",numpad8:"Numpad 8",numpad9:"Numpad 9",multiply:"Multiply",add:"Shto",subtract:"Subtract",decimalPoint:"Decimal Point",divide:"Divide",f1:"F1",f2:"F2",f3:"F3",f4:"F4",f5:"F5",f6:"F6",f7:"F7",f8:"F8",f9:"F9",f10:"F10",f11:"F11",f12:"F12",numLock:"Num Lock",scrollLock:"Scroll Lock",semiColon:"Semicolon",equalSign:"Equal Sign",comma:"Presje",dash:"vizë",period:"Pikë",forwardSlash:"Forward Slash", -graveAccent:"Grave Accent",openBracket:"Hape kllapën",backSlash:"Backslash",closeBracket:"Mbylle kllapën",singleQuote:"Single Quote"}); \ No newline at end of file diff --git a/admin/plugins/ckeditor/plugins/a11yhelp/dialogs/lang/sr-latn.js b/admin/plugins/ckeditor/plugins/a11yhelp/dialogs/lang/sr-latn.js deleted file mode 100644 index da9a17f..0000000 --- a/admin/plugins/ckeditor/plugins/a11yhelp/dialogs/lang/sr-latn.js +++ /dev/null @@ -1,11 +0,0 @@ -/* - Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. - For licensing, see LICENSE.md or http://ckeditor.com/license -*/ -CKEDITOR.plugins.setLang("a11yhelp","sr-latn",{title:"Accessibility Instructions",contents:"Help Contents. To close this dialog press ESC.",legend:[{name:"Opšte",items:[{name:"Editor Toolbar",legend:"Press ${toolbarFocus} to navigate to the toolbar. Move to the next and previous toolbar group with TAB and SHIFT+TAB. Move to the next and previous toolbar button with RIGHT ARROW or LEFT ARROW. Press SPACE or ENTER to activate the toolbar button."},{name:"Editor Dialog",legend:"Inside a dialog, press TAB to navigate to the next dialog element, press SHIFT+TAB to move to the previous dialog element, press ENTER to submit the dialog, press ESC to cancel the dialog. When a dialog has multiple tabs, the tab list can be reached either with ALT+F10 or with TAB as part of the dialog tabbing order. With tab list focused, move to the next and previous tab with RIGHT and LEFT ARROW, respectively."}, -{name:"Editor Context Menu",legend:"Press ${contextMenu} or APPLICATION KEY to open context-menu. Then move to next menu option with TAB or DOWN ARROW. Move to previous option with SHIFT+TAB or UP ARROW. Press SPACE or ENTER to select the menu option. Open sub-menu of current option with SPACE or ENTER or RIGHT ARROW. Go back to parent menu item with ESC or LEFT ARROW. Close context menu with ESC."},{name:"Editor List Box",legend:"Inside a list-box, move to next list item with TAB OR DOWN ARROW. Move to previous list item with SHIFT+TAB or UP ARROW. Press SPACE or ENTER to select the list option. Press ESC to close the list-box."}, -{name:"Editor Element Path Bar",legend:"Press ${elementsPathFocus} to navigate to the elements path bar. Move to next element button with TAB or RIGHT ARROW. Move to previous button with SHIFT+TAB or LEFT ARROW. Press SPACE or ENTER to select the element in editor."}]},{name:"Commands",items:[{name:" Undo command",legend:"Press ${undo}"},{name:" Redo command",legend:"Press ${redo}"},{name:" Bold command",legend:"Press ${bold}"},{name:" Italic command",legend:"Press ${italic}"},{name:" Underline command", -legend:"Press ${underline}"},{name:" Link command",legend:"Press ${link}"},{name:" Toolbar Collapse command",legend:"Press ${toolbarCollapse}"},{name:" Access previous focus space command",legend:"Press ${accessPreviousSpace} to access the closest unreachable focus space before the caret, for example: two adjacent HR elements. Repeat the key combination to reach distant focus spaces."},{name:" Access next focus space command",legend:"Press ${accessNextSpace} to access the closest unreachable focus space after the caret, for example: two adjacent HR elements. Repeat the key combination to reach distant focus spaces."}, -{name:" Accessibility Help",legend:"Press ${a11yHelp}"},{name:" Paste as plain text",legend:"Press ${pastetext}",legendEdge:"Press ${pastetext}, followed by ${paste}"}]}],tab:"Tab",pause:"Pause",capslock:"Caps Lock",escape:"Escape",pageUp:"Page Up",pageDown:"Page Down",leftArrow:"Left Arrow",upArrow:"Up Arrow",rightArrow:"Right Arrow",downArrow:"Down Arrow",insert:"Insert",leftWindowKey:"Left Windows key",rightWindowKey:"Right Windows key",selectKey:"Select key",numpad0:"Numpad 0",numpad1:"Numpad 1", -numpad2:"Numpad 2",numpad3:"Numpad 3",numpad4:"Numpad 4",numpad5:"Numpad 5",numpad6:"Numpad 6",numpad7:"Numpad 7",numpad8:"Numpad 8",numpad9:"Numpad 9",multiply:"Multiply",add:"Add",subtract:"Subtract",decimalPoint:"Decimal Point",divide:"Divide",f1:"F1",f2:"F2",f3:"F3",f4:"F4",f5:"F5",f6:"F6",f7:"F7",f8:"F8",f9:"F9",f10:"F10",f11:"F11",f12:"F12",numLock:"Num Lock",scrollLock:"Scroll Lock",semiColon:"Semicolon",equalSign:"Equal Sign",comma:"Comma",dash:"Dash",period:"Period",forwardSlash:"Forward Slash", -graveAccent:"Grave Accent",openBracket:"Open Bracket",backSlash:"Backslash",closeBracket:"Close Bracket",singleQuote:"Single Quote"}); \ No newline at end of file diff --git a/admin/plugins/ckeditor/plugins/a11yhelp/dialogs/lang/sr.js b/admin/plugins/ckeditor/plugins/a11yhelp/dialogs/lang/sr.js deleted file mode 100644 index 7d7c87d..0000000 --- a/admin/plugins/ckeditor/plugins/a11yhelp/dialogs/lang/sr.js +++ /dev/null @@ -1,11 +0,0 @@ -/* - Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. - For licensing, see LICENSE.md or http://ckeditor.com/license -*/ -CKEDITOR.plugins.setLang("a11yhelp","sr",{title:"Accessibility Instructions",contents:"Help Contents. To close this dialog press ESC.",legend:[{name:"Опште",items:[{name:"Editor Toolbar",legend:"Press ${toolbarFocus} to navigate to the toolbar. Move to the next and previous toolbar group with TAB and SHIFT+TAB. Move to the next and previous toolbar button with RIGHT ARROW or LEFT ARROW. Press SPACE or ENTER to activate the toolbar button."},{name:"Editor Dialog",legend:"Inside a dialog, press TAB to navigate to the next dialog element, press SHIFT+TAB to move to the previous dialog element, press ENTER to submit the dialog, press ESC to cancel the dialog. When a dialog has multiple tabs, the tab list can be reached either with ALT+F10 or with TAB as part of the dialog tabbing order. With tab list focused, move to the next and previous tab with RIGHT and LEFT ARROW, respectively."}, -{name:"Editor Context Menu",legend:"Press ${contextMenu} or APPLICATION KEY to open context-menu. Then move to next menu option with TAB or DOWN ARROW. Move to previous option with SHIFT+TAB or UP ARROW. Press SPACE or ENTER to select the menu option. Open sub-menu of current option with SPACE or ENTER or RIGHT ARROW. Go back to parent menu item with ESC or LEFT ARROW. Close context menu with ESC."},{name:"Editor List Box",legend:"Inside a list-box, move to next list item with TAB OR DOWN ARROW. Move to previous list item with SHIFT+TAB or UP ARROW. Press SPACE or ENTER to select the list option. Press ESC to close the list-box."}, -{name:"Editor Element Path Bar",legend:"Press ${elementsPathFocus} to navigate to the elements path bar. Move to next element button with TAB or RIGHT ARROW. Move to previous button with SHIFT+TAB or LEFT ARROW. Press SPACE or ENTER to select the element in editor."}]},{name:"Commands",items:[{name:" Undo command",legend:"Press ${undo}"},{name:" Redo command",legend:"Press ${redo}"},{name:" Bold command",legend:"Press ${bold}"},{name:" Italic command",legend:"Press ${italic}"},{name:" Underline command", -legend:"Press ${underline}"},{name:" Link command",legend:"Press ${link}"},{name:" Toolbar Collapse command",legend:"Press ${toolbarCollapse}"},{name:" Access previous focus space command",legend:"Press ${accessPreviousSpace} to access the closest unreachable focus space before the caret, for example: two adjacent HR elements. Repeat the key combination to reach distant focus spaces."},{name:" Access next focus space command",legend:"Press ${accessNextSpace} to access the closest unreachable focus space after the caret, for example: two adjacent HR elements. Repeat the key combination to reach distant focus spaces."}, -{name:" Accessibility Help",legend:"Press ${a11yHelp}"},{name:" Paste as plain text",legend:"Press ${pastetext}",legendEdge:"Press ${pastetext}, followed by ${paste}"}]}],tab:"Tab",pause:"Pause",capslock:"Caps Lock",escape:"Escape",pageUp:"Page Up",pageDown:"Page Down",leftArrow:"Left Arrow",upArrow:"Up Arrow",rightArrow:"Right Arrow",downArrow:"Down Arrow",insert:"Insert",leftWindowKey:"Left Windows key",rightWindowKey:"Right Windows key",selectKey:"Select key",numpad0:"Numpad 0",numpad1:"Numpad 1", -numpad2:"Numpad 2",numpad3:"Numpad 3",numpad4:"Numpad 4",numpad5:"Numpad 5",numpad6:"Numpad 6",numpad7:"Numpad 7",numpad8:"Numpad 8",numpad9:"Numpad 9",multiply:"Multiply",add:"Add",subtract:"Subtract",decimalPoint:"Decimal Point",divide:"Divide",f1:"F1",f2:"F2",f3:"F3",f4:"F4",f5:"F5",f6:"F6",f7:"F7",f8:"F8",f9:"F9",f10:"F10",f11:"F11",f12:"F12",numLock:"Num Lock",scrollLock:"Scroll Lock",semiColon:"Semicolon",equalSign:"Equal Sign",comma:"Comma",dash:"Dash",period:"Period",forwardSlash:"Forward Slash", -graveAccent:"Grave Accent",openBracket:"Open Bracket",backSlash:"Backslash",closeBracket:"Close Bracket",singleQuote:"Single Quote"}); \ No newline at end of file diff --git a/admin/plugins/ckeditor/plugins/a11yhelp/dialogs/lang/sv.js b/admin/plugins/ckeditor/plugins/a11yhelp/dialogs/lang/sv.js deleted file mode 100644 index 8180336..0000000 --- a/admin/plugins/ckeditor/plugins/a11yhelp/dialogs/lang/sv.js +++ /dev/null @@ -1,11 +0,0 @@ -/* - Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. - For licensing, see LICENSE.md or http://ckeditor.com/license -*/ -CKEDITOR.plugins.setLang("a11yhelp","sv",{title:"Hjälpmedelsinstruktioner",contents:"Hjälpinnehåll. För att stänga denna dialogruta trycker du på ESC.",legend:[{name:"Allmänt",items:[{name:"Editor verktygsfält",legend:"Tryck på ${toolbarFocus} för att navigera till verktygsfältet. Flytta till nästa och föregående verktygsfältsgrupp med TAB och SHIFT+TAB. Flytta till nästa och föregående knapp i verktygsfältet med HÖGERPIL eller VÄNSTERPIL. Tryck SPACE eller ENTER för att aktivera knappen i verktygsfältet."}, -{name:"Dialogeditor",legend:"Inuti en dialogruta, tryck TAB för att navigera till nästa fält i dialogrutan, tryck SKIFT+TAB för att flytta till föregående fält, tryck ENTER för att skicka. Du avbryter och stänger dialogen med ESC. För dialogrutor som har flera flikar, tryck ALT+F10 eller TAB för att navigera till fliklistan. med fliklistan vald flytta till nästa och föregående flik med HÖGER- eller VÄNSTERPIL."},{name:"Editor för innehållsmeny",legend:"Tryck på $ {contextMenu} eller PROGRAMTANGENTEN för att öppna snabbmenyn. Flytta sedan till nästa menyalternativ med TAB eller NEDPIL. Flytta till föregående alternativ med SHIFT + TABB eller UPPIL. Tryck Space eller ENTER för att välja menyalternativ. Öppna undermeny av nuvarande alternativ med SPACE eller ENTER eller HÖGERPIL. Gå tillbaka till överordnade menyalternativ med ESC eller VÄNSTERPIL. Stäng snabbmenyn med ESC."}, -{name:"Editor för list-box",legend:"Inuti en list-box, gå till nästa listobjekt med TAB eller NEDPIL. Flytta till föregående listobjekt med SHIFT+TAB eller UPPIL. Tryck SPACE eller ENTER för att välja listan alternativet. Tryck ESC för att stänga list-boxen."},{name:"Editor för elementens sökväg",legend:"Tryck på ${elementsPathFocus} för att navigera till verktygsfältet för elementens sökvägar. Flytta till nästa elementknapp med TAB eller HÖGERPIL. Flytta till föregående knapp med SKIFT+TAB eller VÄNSTERPIL. Tryck SPACE eller ENTER för att välja element i redigeraren."}]}, -{name:"Kommandon",items:[{name:"Ångra kommando",legend:"Tryck på ${undo}"},{name:"Gör om kommando",legend:"Tryck på ${redo}"},{name:"Kommandot fet stil",legend:"Tryck på ${bold}"},{name:"Kommandot kursiv",legend:"Tryck på ${italic}"},{name:"Kommandot understruken",legend:"Tryck på ${underline}"},{name:"Kommandot länk",legend:"Tryck på ${link}"},{name:"Verktygsfält Dölj kommandot",legend:"Tryck på ${toolbarCollapse}"},{name:"Gå till föregående fokus plats",legend:"Tryck på ${accessPreviousSpace} för att gå till närmast onåbara utrymme före markören, exempel: två intilliggande HR element. Repetera tangentkombinationen för att gå till nästa."}, -{name:"Tillgå nästa fokuskommandots utrymme",legend:"Tryck ${accessNextSpace} på för att komma åt den närmaste onåbar fokus utrymme efter cirkumflex, till exempel: två intilliggande HR element. Upprepa tangentkombinationen för att nå avlägsna fokus utrymmen."},{name:"Hjälp om tillgänglighet",legend:"Tryck ${a11yHelp}"},{name:"Klistra in som vanlig text",legend:"Tryck ${pastetext}",legendEdge:"Tryck ${pastetext}, följt av ${paste}"}]}],tab:"Tab",pause:"Paus",capslock:"Caps lock",escape:"Escape",pageUp:"Sida Up", -pageDown:"Sida Ned",leftArrow:"Vänsterpil",upArrow:"Uppil",rightArrow:"Högerpil",downArrow:"Nedåtpil",insert:"Infoga",leftWindowKey:"Vänster Windowstangent",rightWindowKey:"Höger Windowstangent",selectKey:"Välj tangent",numpad0:"Nummer 0",numpad1:"Nummer 1",numpad2:"Nummer 2",numpad3:"Nummer 3",numpad4:"Nummer 4",numpad5:"Nummer 5",numpad6:"Nummer 6",numpad7:"Nummer 7",numpad8:"Nummer 8",numpad9:"Nummer 9",multiply:"Multiplicera",add:"Addera",subtract:"Minus",decimalPoint:"Decimalpunkt",divide:"Dividera", -f1:"F1",f2:"F2",f3:"F3",f4:"F4",f5:"F5",f6:"F6",f7:"F7",f8:"F8",f9:"F9",f10:"F10",f11:"F11",f12:"F12",numLock:"Num Lock",scrollLock:"Scroll Lock",semiColon:"Semikolon",equalSign:"Lika med tecken",comma:"Komma",dash:"Minus",period:"Punkt",forwardSlash:"Snedstreck framåt",graveAccent:"Accent",openBracket:"Öppningsparentes",backSlash:"Snedstreck bakåt",closeBracket:"Slutparentes",singleQuote:"Enkelt Citattecken"}); \ No newline at end of file diff --git a/admin/plugins/ckeditor/plugins/a11yhelp/dialogs/lang/th.js b/admin/plugins/ckeditor/plugins/a11yhelp/dialogs/lang/th.js deleted file mode 100644 index c2df8db..0000000 --- a/admin/plugins/ckeditor/plugins/a11yhelp/dialogs/lang/th.js +++ /dev/null @@ -1,11 +0,0 @@ -/* - Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. - For licensing, see LICENSE.md or http://ckeditor.com/license -*/ -CKEDITOR.plugins.setLang("a11yhelp","th",{title:"Accessibility Instructions",contents:"Help Contents. To close this dialog press ESC.",legend:[{name:"ทั่วไป",items:[{name:"แถบเครื่องมือสำหรับเครื่องมือช่วยพิมพ์",legend:"Press ${toolbarFocus} to navigate to the toolbar. Move to the next and previous toolbar group with TAB and SHIFT+TAB. Move to the next and previous toolbar button with RIGHT ARROW or LEFT ARROW. Press SPACE or ENTER to activate the toolbar button."},{name:"Editor Dialog",legend:"Inside a dialog, press TAB to navigate to the next dialog element, press SHIFT+TAB to move to the previous dialog element, press ENTER to submit the dialog, press ESC to cancel the dialog. When a dialog has multiple tabs, the tab list can be reached either with ALT+F10 or with TAB as part of the dialog tabbing order. With tab list focused, move to the next and previous tab with RIGHT and LEFT ARROW, respectively."}, -{name:"Editor Context Menu",legend:"Press ${contextMenu} or APPLICATION KEY to open context-menu. Then move to next menu option with TAB or DOWN ARROW. Move to previous option with SHIFT+TAB or UP ARROW. Press SPACE or ENTER to select the menu option. Open sub-menu of current option with SPACE or ENTER or RIGHT ARROW. Go back to parent menu item with ESC or LEFT ARROW. Close context menu with ESC."},{name:"Editor List Box",legend:"Inside a list-box, move to next list item with TAB OR DOWN ARROW. Move to previous list item with SHIFT+TAB or UP ARROW. Press SPACE or ENTER to select the list option. Press ESC to close the list-box."}, -{name:"Editor Element Path Bar",legend:"Press ${elementsPathFocus} to navigate to the elements path bar. Move to next element button with TAB or RIGHT ARROW. Move to previous button with SHIFT+TAB or LEFT ARROW. Press SPACE or ENTER to select the element in editor."}]},{name:"คำสั่ง",items:[{name:"เลิกทำคำสั่ง",legend:"วาง ${undo}"},{name:"คำสั่งสำหรับทำซ้ำ",legend:"วาง ${redo}"},{name:"คำสั่งสำหรับตัวหนา",legend:"วาง ${bold}"},{name:"คำสั่งสำหรับตัวเอียง",legend:"วาง ${italic}"},{name:"คำสั่งสำหรับขีดเส้นใต้", -legend:"วาง ${underline}"},{name:"คำสั่งสำหรับลิงก์",legend:"วาง ${link}"},{name:" Toolbar Collapse command",legend:"Press ${toolbarCollapse}"},{name:" Access previous focus space command",legend:"Press ${accessPreviousSpace} to access the closest unreachable focus space before the caret, for example: two adjacent HR elements. Repeat the key combination to reach distant focus spaces."},{name:" Access next focus space command",legend:"Press ${accessNextSpace} to access the closest unreachable focus space after the caret, for example: two adjacent HR elements. Repeat the key combination to reach distant focus spaces."}, -{name:" Accessibility Help",legend:"Press ${a11yHelp}"},{name:" Paste as plain text",legend:"Press ${pastetext}",legendEdge:"Press ${pastetext}, followed by ${paste}"}]}],tab:"Tab",pause:"Pause",capslock:"Caps Lock",escape:"Escape",pageUp:"Page Up",pageDown:"Page Down",leftArrow:"Left Arrow",upArrow:"Up Arrow",rightArrow:"Right Arrow",downArrow:"Down Arrow",insert:"Insert",leftWindowKey:"Left Windows key",rightWindowKey:"Right Windows key",selectKey:"Select key",numpad0:"Numpad 0",numpad1:"Numpad 1", -numpad2:"Numpad 2",numpad3:"Numpad 3",numpad4:"Numpad 4",numpad5:"Numpad 5",numpad6:"Numpad 6",numpad7:"Numpad 7",numpad8:"Numpad 8",numpad9:"Numpad 9",multiply:"Multiply",add:"Add",subtract:"Subtract",decimalPoint:"Decimal Point",divide:"Divide",f1:"F1",f2:"F2",f3:"F3",f4:"F4",f5:"F5",f6:"F6",f7:"F7",f8:"F8",f9:"F9",f10:"F10",f11:"F11",f12:"F12",numLock:"Num Lock",scrollLock:"Scroll Lock",semiColon:"Semicolon",equalSign:"Equal Sign",comma:"Comma",dash:"Dash",period:"Period",forwardSlash:"Forward Slash", -graveAccent:"Grave Accent",openBracket:"Open Bracket",backSlash:"Backslash",closeBracket:"Close Bracket",singleQuote:"Single Quote"}); \ No newline at end of file diff --git a/admin/plugins/ckeditor/plugins/a11yhelp/dialogs/lang/tr.js b/admin/plugins/ckeditor/plugins/a11yhelp/dialogs/lang/tr.js deleted file mode 100644 index 699f0db..0000000 --- a/admin/plugins/ckeditor/plugins/a11yhelp/dialogs/lang/tr.js +++ /dev/null @@ -1,12 +0,0 @@ -/* - Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. - For licensing, see LICENSE.md or http://ckeditor.com/license -*/ -CKEDITOR.plugins.setLang("a11yhelp","tr",{title:"Erişilebilirlik Talimatları",contents:"Yardım içeriği. Bu pencereyi kapatmak için ESC tuşuna basın.",legend:[{name:"Genel",items:[{name:"Düzenleyici Araç Çubuğu",legend:"Araç çubuğunda gezinmek için ${toolbarFocus} basın. TAB ve SHIFT+TAB ile önceki ve sonraki araç çubuğu grubuna taşıyın. SAĞ OK veya SOL OK ile önceki ve sonraki bir araç çubuğu düğmesini hareket ettirin. SPACE tuşuna basın veya araç çubuğu düğmesini etkinleştirmek için ENTER tuşna basın."}, -{name:"Diyalog Düzenleyici",legend:"Dialog penceresi içinde, sonraki iletişim alanına gitmek için SEKME tuşuna basın, önceki alana geçmek için SHIFT + TAB tuşuna basın, pencereyi göndermek için ENTER tuşuna basın, dialog penceresini iptal etmek için ESC tuşuna basın. Birden çok sekme sayfaları olan diyalogların, sekme listesine gitmek için ALT + F10 tuşlarına basın. Sonra TAB veya SAĞ OK sonraki sekmeye taşıyın. SHIFT + TAB veya SOL OK ile önceki sekmeye geçin. Sekme sayfayı seçmek için SPACE veya ENTER tuşuna basın."}, -{name:"İçerik Menü Editörü",legend:"İçerik menüsünü açmak için ${contextMenu} veya UYGULAMA TUŞU'na basın. Daha sonra SEKME veya AŞAĞI OK ile bir sonraki menü seçeneği taşıyın. SHIFT + TAB veya YUKARI OK ile önceki seçeneğe gider. Menü seçeneğini seçmek için SPACE veya ENTER tuşuna basın. Seçili seçeneğin alt menüsünü SPACE ya da ENTER veya SAĞ OK açın. Üst menü öğesini geçmek için ESC veya SOL OK ile geri dönün. ESC ile bağlam menüsünü kapatın."},{name:"Liste Kutusu Editörü",legend:"Liste kutusu içinde, bir sonraki liste öğesine SEKME VEYA AŞAĞI OK ile taşıyın. SHIFT+TAB veya YUKARI önceki liste öğesi taşıyın. Liste seçeneği seçmek için SPACE veya ENTER tuşuna basın. Liste kutusunu kapatmak için ESC tuşuna basın."}, -{name:"Element Yol Çubuğu Editörü",legend:"Elementlerin yol çubuğunda gezinmek için ${ElementsPathFocus} basın. SEKME veya SAĞ OK ile sonraki element düğmesine taşıyın. SHIFT+TAB veya SOL OK önceki düğmeye hareket ettirin. Editör içindeki elementi seçmek için ENTER veya SPACE tuşuna basın."}]},{name:"Komutlar",items:[{name:"Komutu geri al",legend:"$(undo)'ya basın"},{name:"Komutu geri al",legend:"${redo} basın"},{name:" Kalın komut",legend:"${bold} basın"},{name:" İtalik komutu",legend:"${italic} basın"}, -{name:" Alttan çizgi komutu",legend:"${underline} basın"},{name:" Bağlantı komutu",legend:"${link} basın"},{name:" Araç çubuğu Toplama komutu",legend:"${toolbarCollapse} basın"},{name:"Önceki komut alanına odaklan",legend:"Düzeltme imleçinden önce, en yakın uzaktaki alana erişmek için ${accessPreviousSpace} basın, örneğin: iki birleşik HR elementleri. Aynı tuş kombinasyonu tekrarıyla diğer alanlarada ulaşın."},{name:"Sonraki komut alanına odaklan",legend:"Düzeltme imleçinden sonra, en yakın uzaktaki alana erişmek için ${accessNextSpace} basın, örneğin: iki birleşik HR elementleri. Aynı tuş kombinasyonu tekrarıyla diğer alanlarada ulaşın."}, -{name:"Erişilebilirlik Yardımı",legend:"${a11yHelp}'e basın"},{name:"Düz Metin Olarak Yapıştır",legend:"${pastetext} basın",legendEdge:"Önce ${pastetext} ardından${paste} basın"}]}],tab:"Sekme tuşu",pause:"Durdurma tuşu",capslock:"Büyük harf tuşu",escape:"Vazgeç tuşu",pageUp:"Sayfa Yukarı",pageDown:"Sayfa Aşağı",leftArrow:"Sol ok",upArrow:"Yukarı ok",rightArrow:"Sağ ok",downArrow:"Aşağı ok",insert:"Araya gir",leftWindowKey:"Sol windows tuşu",rightWindowKey:"Sağ windows tuşu",selectKey:"Seçme tuşu", -numpad0:"Nümerik 0",numpad1:"Nümerik 1",numpad2:"Nümerik 2",numpad3:"Nümerik 3",numpad4:"Nümerik 4",numpad5:"Nümerik 5",numpad6:"Nümerik 6",numpad7:"Nümerik 7",numpad8:"Nümerik 8",numpad9:"Nümerik 9",multiply:"Çarpma",add:"Toplama",subtract:"Çıkarma",decimalPoint:"Ondalık işareti",divide:"Bölme",f1:"F1",f2:"F2",f3:"F3",f4:"F4",f5:"F5",f6:"F6",f7:"F7",f8:"F8",f9:"F9",f10:"F10",f11:"F11",f12:"F12",numLock:"Num Lk",scrollLock:"Scr Lk",semiColon:"Noktalı virgül",equalSign:"Eşittir",comma:"Virgül",dash:"Eksi", -period:"Nokta",forwardSlash:"İleri eğik çizgi",graveAccent:"Üst tırnak",openBracket:"Parantez aç",backSlash:"Ters eğik çizgi",closeBracket:"Parantez kapa",singleQuote:"Tek tırnak"}); \ No newline at end of file diff --git a/admin/plugins/ckeditor/plugins/a11yhelp/dialogs/lang/tt.js b/admin/plugins/ckeditor/plugins/a11yhelp/dialogs/lang/tt.js deleted file mode 100644 index ff239fd..0000000 --- a/admin/plugins/ckeditor/plugins/a11yhelp/dialogs/lang/tt.js +++ /dev/null @@ -1,11 +0,0 @@ -/* - Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. - For licensing, see LICENSE.md or http://ckeditor.com/license -*/ -CKEDITOR.plugins.setLang("a11yhelp","tt",{title:"Accessibility Instructions",contents:"Help Contents. To close this dialog press ESC.",legend:[{name:"Гомуми",items:[{name:"Editor Toolbar",legend:"Press ${toolbarFocus} to navigate to the toolbar. Move to the next and previous toolbar group with TAB and SHIFT+TAB. Move to the next and previous toolbar button with RIGHT ARROW or LEFT ARROW. Press SPACE or ENTER to activate the toolbar button."},{name:"Editor Dialog",legend:"Inside a dialog, press TAB to navigate to the next dialog element, press SHIFT+TAB to move to the previous dialog element, press ENTER to submit the dialog, press ESC to cancel the dialog. When a dialog has multiple tabs, the tab list can be reached either with ALT+F10 or with TAB as part of the dialog tabbing order. With tab list focused, move to the next and previous tab with RIGHT and LEFT ARROW, respectively."}, -{name:"Editor Context Menu",legend:"Press ${contextMenu} or APPLICATION KEY to open context-menu. Then move to next menu option with TAB or DOWN ARROW. Move to previous option with SHIFT+TAB or UP ARROW. Press SPACE or ENTER to select the menu option. Open sub-menu of current option with SPACE or ENTER or RIGHT ARROW. Go back to parent menu item with ESC or LEFT ARROW. Close context menu with ESC."},{name:"Editor List Box",legend:"Inside a list-box, move to next list item with TAB OR DOWN ARROW. Move to previous list item with SHIFT+TAB or UP ARROW. Press SPACE or ENTER to select the list option. Press ESC to close the list-box."}, -{name:"Editor Element Path Bar",legend:"Press ${elementsPathFocus} to navigate to the elements path bar. Move to next element button with TAB or RIGHT ARROW. Move to previous button with SHIFT+TAB or LEFT ARROW. Press SPACE or ENTER to select the element in editor."}]},{name:"Командалар",items:[{name:"Кайтару",legend:"${undo} басыгыз"},{name:"Кабатлау",legend:"${redo} басыгыз"},{name:"Калын",legend:"${bold} басыгыз"},{name:"Курсив",legend:"${italic} басыгыз"},{name:"Астына сызылган",legend:"${underline} басыгыз"}, -{name:"Сылталама",legend:"${link} басыгыз"},{name:" Toolbar Collapse command",legend:"${toolbarCollapse} басыгыз"},{name:" Access previous focus space command",legend:"Press ${accessPreviousSpace} to access the closest unreachable focus space before the caret, for example: two adjacent HR elements. Repeat the key combination to reach distant focus spaces."},{name:" Access next focus space command",legend:"Press ${accessNextSpace} to access the closest unreachable focus space after the caret, for example: two adjacent HR elements. Repeat the key combination to reach distant focus spaces."}, -{name:" Accessibility Help",legend:"${a11yHelp} басыгыз"},{name:" Paste as plain text",legend:"Press ${pastetext}",legendEdge:"Press ${pastetext}, followed by ${paste}"}]}],tab:"Tab",pause:"Тыныш",capslock:"Caps Lock",escape:"Escape",pageUp:"Page Up",pageDown:"Page Down",leftArrow:"Сул якка ук",upArrow:"Өскә таба ук",rightArrow:"Уң якка ук",downArrow:"Аска таба ук",insert:"Өстәү",leftWindowKey:"Сул Windows төймəсе",rightWindowKey:"Уң Windows төймəсе",selectKey:"Select төймəсе",numpad0:"Numpad 0", -numpad1:"Numpad 1",numpad2:"Numpad 2",numpad3:"Numpad 3",numpad4:"Numpad 4",numpad5:"Numpad 5",numpad6:"Numpad 6",numpad7:"Numpad 7",numpad8:"Numpad 8",numpad9:"Numpad 9",multiply:"Тапкырлау",add:"Кушу",subtract:"Алу",decimalPoint:"Унарлы нокта",divide:"Бүлү",f1:"F1",f2:"F2",f3:"F3",f4:"F4",f5:"F5",f6:"F6",f7:"F7",f8:"F8",f9:"F9",f10:"F10",f11:"F11",f12:"F12",numLock:"Num Lock",scrollLock:"Scroll Lock",semiColon:"Нокталы өтер",equalSign:"Тигезлек билгесе",comma:"Өтер",dash:"Сызык",period:"Дәрәҗә", -forwardSlash:"Кыек сызык",graveAccent:"Гравис",openBracket:"Җәя ачу",backSlash:"Кире кыек сызык",closeBracket:"Җәя ябу",singleQuote:"Бер иңле куштырнаклар"}); \ No newline at end of file diff --git a/admin/plugins/ckeditor/plugins/a11yhelp/dialogs/lang/ug.js b/admin/plugins/ckeditor/plugins/a11yhelp/dialogs/lang/ug.js deleted file mode 100644 index cf81a70..0000000 --- a/admin/plugins/ckeditor/plugins/a11yhelp/dialogs/lang/ug.js +++ /dev/null @@ -1,12 +0,0 @@ -/* - Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. - For licensing, see LICENSE.md or http://ckeditor.com/license -*/ -CKEDITOR.plugins.setLang("a11yhelp","ug",{title:"قوشۇمچە چۈشەندۈرۈش",contents:"ياردەم مەزمۇنى. بۇ سۆزلەشكۈنى ياپماقچى بولسىڭىز ESC نى بېسىڭ.",legend:[{name:"ئادەتتىكى",items:[{name:"قورال بالداق تەھرىر",legend:"${toolbarFocus} بېسىلسا قورال بالداققا يېتەكلەيدۇ، TAB ياكى SHIFT+TAB ئارقىلىق قورال بالداق گۇرۇپپىسى تاللىنىدۇ، ئوڭ سول يا ئوقتا توپچا تاللىنىدۇ، بوشلۇق ياكى Enter كۇنۇپكىسىدا تاللانغان توپچىنى قوللىنىدۇ."},{name:"تەھرىرلىگۈچ سۆزلەشكۈسى",legend:"سۆزلەشكۈدە TAB كۇنۇپكىسىدا كېيىنكى سۆز بۆلىكىگە يۆتكىلىدۇ، SHIFT+TAB بىرىكمە كۇنۇپكىسىدا ئالدىنقى سۆز بۆلىكىگە يۆتكىلىدۇ، ENTER كۇنۇپكىسىدا سۆزلەشكۈنى تاپشۇرىدۇ، ESC كۇنۇپكىسى سۆزلەشكۈدىن ۋاز كېچىدۇ. كۆپ بەتكۈچلۈك سۆزلەشكۈگە نىسبەتەن، ALT+F10 دا بەتكۈچ تىزىمىغا يۆتكەيدۇ. ئاندىن TAB كۇنۇپكىسى ياكى ئوڭ يا ئوق كۇنۇپكىسى كېيىنكى بەتكۈچكە يۆتكەيدۇ؛SHIFT+ TAB كۇنۇپكىسى ياكى سول يا ئوق كۇنۇپكىسى ئالدىنقى بەتكۈچكە يۆتكەيدۇ. بوشلۇق كۇنۇپكىسى ياكى ENTER كۇنۇپكىسى بەتكۈچنى تاللايدۇ."}, -{name:"تەھرىرلىگۈچ تىل مۇھىت تىزىملىكى",legend:"${contextMenu} ياكى ئەپ كۇنۇپكىسىدا تىل مۇھىت تىزىملىكىنى ئاچىدۇ. ئاندىن TAB ياكى ئاستى يا ئوق كۇنۇپكىسىدا كېيىنكى تىزىملىك تۈرىگە يۆتكەيدۇ؛ SHIFT+TAB ياكى ئۈستى يا ئوق كۇنۇپكىسىدا ئالدىنقى تىزىملىك تۈرىگە يۆتكەيدۇ. بوشلۇق ياكى ENTER كۇنۇپكىسىدا تىزىملىك تۈرىنى تاللايدۇ. بوشلۇق، ENTER ياكى ئوڭ يا ئوق كۇنۇپكىسىدا تارماق تىزىملىكنى ئاچىدۇ. قايتىش تىزىملىكىگە ESC ياكى سول يا ئوق كۇنۇپكىسى ئىشلىتىلىدۇ. ESC كۇنۇپكىسىدا تىل مۇھىت تىزىملىكى تاقىلىدۇ."},{name:"تەھرىرلىگۈچ تىزىمى", -legend:"تىزىم قۇتىسىدا، كېيىنكى تىزىم تۈرىگە يۆتكەشتە TAB ياكى ئاستى يا ئوق كۇنۇپكىسى ئىشلىتىلىدۇ. ئالدىنقى تىزىم تۈرىگە يۆتكەشتە SHIFT+TAB ياكى ئۈستى يا ئوق كۇنۇپكىسى ئىشلىتىلىدۇ. بوشلۇق ياكى ENTER كۇنۇپكىسىدا تىزىم تۈرىنى تاللايدۇ.ESC كۇنۇپكىسىدا تىزىم قۇتىسىنى يىغىدۇ."},{name:"تەھرىرلىگۈچ ئېلېمېنت يول بالداق",legend:"${elementsPathFocus} بېسىلسا ئېلېمېنت يول بالداققا يېتەكلەيدۇ، TAB ياكى ئوڭ يا ئوقتا كېيىنكى ئېلېمېنت تاللىنىدۇ، SHIFT+TAB ياكى سول يا ئوقتا ئالدىنقى ئېلېمېنت تاللىنىدۇ، بوشلۇق ياكى Enter كۇنۇپكىسىدا تەھرىرلىگۈچتىكى ئېلېمېنت تاللىنىدۇ."}]}, -{name:"بۇيرۇق",items:[{name:"بۇيرۇقتىن يېنىۋال",legend:"${undo} نى بېسىڭ"},{name:"قايتىلاش بۇيرۇقى",legend:"${redo} نى بېسىڭ"},{name:"توملىتىش بۇيرۇقى",legend:"${bold} نى بېسىڭ"},{name:"يانتۇ بۇيرۇقى",legend:"${italic} نى بېسىڭ"},{name:"ئاستى سىزىق بۇيرۇقى",legend:"${underline} نى بېسىڭ"},{name:"ئۇلانما بۇيرۇقى",legend:"${link} نى بېسىڭ"},{name:"قورال بالداق قاتلاش بۇيرۇقى",legend:"${toolbarCollapse} نى بېسىڭ"},{name:"ئالدىنقى فوكۇس نۇقتىسىنى زىيارەت قىلىدىغان بۇيرۇق",legend:"${accessPreviousSpace} بېسىپ ^ بەلگىسىگە ئەڭ يېقىن زىيارەت قىلغىلى بولمايدىغان فوكۇس نۇقتا رايونىنىڭ ئالدىنى زىيارەت قىلىدۇ، مەسىلەن: ئۆز ئارا قوشنا ئىككى HR ئېلېمېنت. بۇ بىرىكمە كۇنۇپكا تەكرارلانسا يىراقتىكى فوكۇس نۇقتا رايونىغا يەتكىلى بولىدۇ."}, -{name:"كېيىنكى فوكۇس نۇقتىسىنى زىيارەت قىلىدىغان بۇيرۇق",legend:"${accessNextSpace} بېسىپ ^ بەلگىسىگە ئەڭ يېقىن زىيارەت قىلغىلى بولمايدىغان فوكۇس نۇقتا رايونىنىڭ كەينىنى زىيارەت قىلىدۇ، مەسىلەن: ئۆز ئارا قوشنا ئىككى HR ئېلېمېنت. بۇ بىرىكمە كۇنۇپكا تەكرارلانسا يىراقتىكى فوكۇس نۇقتا رايونىغا يەتكىلى بولىدۇ."},{name:"توسالغۇسىز لايىھە چۈشەندۈرۈشى",legend:"${a11yHelp} نى بېسىڭ"},{name:" Paste as plain text",legend:"Press ${pastetext}",legendEdge:"Press ${pastetext}, followed by ${paste}"}]}],tab:"Tab", -pause:"Pause",capslock:"Caps Lock",escape:"Escape",pageUp:"Page Up",pageDown:"Page Down",leftArrow:"سول يا ئوق",upArrow:"ئۈستى يا ئوق",rightArrow:"ئوڭ يا ئوق",downArrow:"ئاستى يا ئوق",insert:"قىستۇر",leftWindowKey:"سول Windows كۇنۇپكىسى",rightWindowKey:"ئوڭ Windows كۇنۇپكىسى",selectKey:"تاللاش كۇنۇپكىسى",numpad0:"سان تاختا 0",numpad1:"سان تاختا 1",numpad2:"سان تاختا 2",numpad3:"سان تاختا 3",numpad4:"سان تاختا 4",numpad5:"سان تاختا 5",numpad6:"سان تاختا 6",numpad7:"سان تاختا 7",numpad8:"سان تاختا 8", -numpad9:"سان تاختا 9",multiply:"يۇلتۇز كۇنۇپكىسى",add:"قوشۇش",subtract:"ئېلىش",decimalPoint:"كەسىر چېكىت",divide:"بۆلۈش",f1:"F1",f2:"F2",f3:"F3",f4:"F4",f5:"F5",f6:"F6",f7:"F7",f8:"F8",f9:"F9",f10:"F10",f11:"F11",f12:"F12",numLock:"سان قۇلۇپ كۇنۇپكىسى",scrollLock:"سۈرگۈچ قۇلۇپ كۇنۇپكىسى",semiColon:"چېكىتلىك پەش",equalSign:"تەڭلىك بەلگىسى",comma:"پەش",dash:"سىزىقچە",period:"چېكىت",forwardSlash:"سولغا يانتۇ سىزىق",graveAccent:"ئۇرغۇ بەلگىسى",openBracket:"ئېچىلغان تىرناق",backSlash:"ئوڭغا يانتۇ سىزىق", -closeBracket:"يېپىلغان تىرناق",singleQuote:"يالاڭ پەش"}); \ No newline at end of file diff --git a/admin/plugins/ckeditor/plugins/a11yhelp/dialogs/lang/uk.js b/admin/plugins/ckeditor/plugins/a11yhelp/dialogs/lang/uk.js deleted file mode 100644 index 1bed30b..0000000 --- a/admin/plugins/ckeditor/plugins/a11yhelp/dialogs/lang/uk.js +++ /dev/null @@ -1,12 +0,0 @@ -/* - Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. - For licensing, see LICENSE.md or http://ckeditor.com/license -*/ -CKEDITOR.plugins.setLang("a11yhelp","uk",{title:"Спеціальні Інструкції",contents:"Довідка. Натисніть ESC і вона зникне.",legend:[{name:"Основне",items:[{name:"Панель Редактора",legend:"Натисніть ${toolbarFocus} для переходу до панелі інструментів. Для переміщення між групами панелі інструментів використовуйте TAB і SHIFT+TAB. Для переміщення між кнопками панелі іструментів використовуйте кнопки СТРІЛКА ВПРАВО або ВЛІВО. Натисніть ПРОПУСК або ENTER для запуску кнопки панелі інструментів."},{name:"Діалог Редактора", -legend:'Усередині діалогу, натисніть TAB щоб перейти до наступного елементу діалогу, натисніть SHIFT+TAB щоб перейти до попереднього елемента діалогу, натисніть ENTER щоб відправити діалог, натисніть ESC щоб скасувати діалог. Коли діалогове вікно має декілька вкладок, отримати доступ до панелі вкладок як частині діалогу можна натисканням або поєднання ALT+F10 або TAB, при цьому активні елементи діалогу будуть перебиратися з урахуванням порядку табуляції. При активній панелі вкладок, перехід до наступної або попередньої вкладці здійснюється натисканням стрілки "ВПРАВО" або стрілки "ВЛЕВО" відповідно.'}, -{name:"Контекстне Меню Редактора",legend:"Press ${contextMenu} or APPLICATION KEY to open context-menu. Потім перейдіть до наступного пункту меню за допомогою TAB або СТРІЛКИ ВНИЗ. Натисніть ПРОПУСК або ENTER для вибору параметру меню. Відкрийте підменю поточного параметру, натиснувши ПРОПУСК або ENTER або СТРІЛКУ ВПРАВО. Перейдіть до батьківського елемента меню, натиснувши ESC або СТРІЛКУ ВЛІВО. Закрийте контекстне меню, натиснувши ESC."},{name:"Скринька Списків Редактора",legend:"Усередині списку, перехід до наступного пункту списку виконується клавішею TAB або СТРІЛКА ВНИЗ. Перехід до попереднього елемента списку клавішею SHIFT+TAB або СТРІЛКА ВГОРУ. Натисніть ПРОПУСК або ENTER, щоб вибрати параметр списку. Натисніть клавішу ESC, щоб закрити список."}, -{name:"Шлях до елемента редактора",legend:"Натисніть ${elementsPathFocus} для навігації між елементами панелі. Перейдіть до наступного елемента кнопкою TAB або СТРІЛКА ВПРАВО. Перейдіть до попереднього елемента кнопкою SHIFT+TAB або СТРІЛКА ВЛІВО. Натисніть ПРОПУСК або ENTER для вибору елемента в редакторі."}]},{name:"Команди",items:[{name:"Відмінити команду",legend:"Натисніть ${undo}"},{name:"Повторити",legend:"Натисніть ${redo}"},{name:"Жирний",legend:"Натисніть ${bold}"},{name:"Курсив",legend:"Натисніть ${italic}"}, -{name:"Підкреслений",legend:"Натисніть ${underline}"},{name:"Посилання",legend:"Натисніть ${link}"},{name:"Згорнути панель інструментів",legend:"Натисніть ${toolbarCollapse}"},{name:"Доступ до попереднього місця фокусування",legend:"Натисніть ${accessNextSpace} для доступу до найближчої недосяжної області фокусування перед кареткою, наприклад: два сусідні елементи HR. Повторіть комбінацію клавіш для досягнення віддалених областей фокусування."},{name:"Доступ до наступного місця фокусування",legend:"Натисніть ${accessNextSpace} для доступу до найближчої недосяжної області фокусування після каретки, наприклад: два сусідні елементи HR. Повторіть комбінацію клавіш для досягнення віддалених областей фокусування."}, -{name:"Допомога з доступності",legend:"Натисніть ${a11yHelp}"},{name:" Paste as plain text",legend:"Press ${pastetext}",legendEdge:"Press ${pastetext}, followed by ${paste}"}]}],tab:"Tab",pause:"Pause",capslock:"Caps Lock",escape:"Esc",pageUp:"Page Up",pageDown:"Page Down",leftArrow:"Ліва стрілка",upArrow:"Стрілка вгору",rightArrow:"Права стрілка",downArrow:"Стрілка вниз",insert:"Вставити",leftWindowKey:"Ліва клавіша Windows",rightWindowKey:"Права клавіша Windows",selectKey:"Виберіть клавішу",numpad0:"Numpad 0", -numpad1:"Numpad 1",numpad2:"Numpad 2",numpad3:"Numpad 3",numpad4:"Numpad 4",numpad5:"Numpad 5",numpad6:"Numpad 6",numpad7:"Numpad 7",numpad8:"Numpad 8",numpad9:"Numpad 9",multiply:"Множення",add:"Додати",subtract:"Віднімання",decimalPoint:"Десяткова кома",divide:"Ділення",f1:"F1",f2:"F2",f3:"F3",f4:"F4",f5:"F5",f6:"F6",f7:"F7",f8:"F8",f9:"F9",f10:"F10",f11:"F11",f12:"F12",numLock:"Num Lock",scrollLock:"Scroll Lock",semiColon:"Крапка з комою",equalSign:"Знак рівності",comma:"Кома",dash:"Тире",period:"Період", -forwardSlash:"Коса риска",graveAccent:"Гравіс",openBracket:"Відкрити дужку",backSlash:"Зворотна коса риска",closeBracket:"Закрити дужку",singleQuote:"Одинарні лапки"}); \ No newline at end of file diff --git a/admin/plugins/ckeditor/plugins/a11yhelp/dialogs/lang/vi.js b/admin/plugins/ckeditor/plugins/a11yhelp/dialogs/lang/vi.js deleted file mode 100644 index de18861..0000000 --- a/admin/plugins/ckeditor/plugins/a11yhelp/dialogs/lang/vi.js +++ /dev/null @@ -1,11 +0,0 @@ -/* - Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. - For licensing, see LICENSE.md or http://ckeditor.com/license -*/ -CKEDITOR.plugins.setLang("a11yhelp","vi",{title:"Hướng dẫn trợ năng",contents:"Nội dung Hỗ trợ. Nhấn ESC để đóng hộp thoại.",legend:[{name:"Chung",items:[{name:"Thanh công cụ soạn thảo",legend:"Nhấn ${toolbarFocus} để điều hướng đến thanh công cụ. Nhấn TAB và SHIFT+TAB để chuyển đến nhóm thanh công cụ khác. Nhấn MŨI TÊN PHẢI hoặc MŨI TÊN TRÁI để chuyển sang nút khác trên thanh công cụ. Nhấn PHÍM CÁCH hoặc ENTER để kích hoạt nút trên thanh công cụ."},{name:"Hộp thoại Biên t",legend:"Inside a dialog, press TAB to navigate to the next dialog element, press SHIFT+TAB to move to the previous dialog element, press ENTER to submit the dialog, press ESC to cancel the dialog. When a dialog has multiple tabs, the tab list can be reached either with ALT+F10 or with TAB as part of the dialog tabbing order. With tab list focused, move to the next and previous tab with RIGHT and LEFT ARROW, respectively."}, -{name:"Trình đơn Ngữ cảnh cBộ soạn thảo",legend:"Nhấn ${contextMenu} hoặc PHÍM ỨNG DỤNG để mở thực đơn ngữ cảnh. Sau đó nhấn TAB hoặc MŨI TÊN XUỐNG để di chuyển đến tuỳ chọn tiếp theo của thực đơn. Nhấn SHIFT+TAB hoặc MŨI TÊN LÊN để quay lại tuỳ chọn trước. Nhấn DẤU CÁCH hoặc ENTER để chọn tuỳ chọn của thực đơn. Nhấn DẤU CÁCH hoặc ENTER hoặc MŨI TÊN SANG PHẢI để mở thực đơn con của tuỳ chọn hiện tại. Nhấn ESC hoặc MŨI TÊN SANG TRÁI để quay trở lại thực đơn gốc. Nhấn ESC để đóng thực đơn ngữ cảnh."}, -{name:"Hộp danh sách trình biên tập",legend:"Trong một danh sách chọn, di chuyển đối tượng tiếp theo với phím TAB hoặc phím mũi tên hướng xuống. Di chuyển đến đối tượng trước đó bằng cách nhấn tổ hợp phím SHIFT+TAB hoặc mũi tên hướng lên. Phím khoảng cách hoặc phím ENTER để chọn các tùy chọn trong danh sách. Nhấn phím ESC để đóng lại danh sách chọn."},{name:"Thanh đường dẫn các đối tượng",legend:"Nhấn ${elementsPathFocus} để điều hướng các đối tượng trong thanh đường dẫn. Di chuyển đến đối tượng tiếp theo bằng phím TAB hoặc phím mũi tên bên phải. Di chuyển đến đối tượng trước đó bằng tổ hợp phím SHIFT+TAB hoặc phím mũi tên bên trái. Nhấn phím khoảng cách hoặc ENTER để chọn đối tượng trong trình soạn thảo."}]}, -{name:"Lệnh",items:[{name:"Làm lại lện",legend:"Ấn ${undo}"},{name:"Làm lại lệnh",legend:"Ấn ${redo}"},{name:"Lệnh in đậm",legend:"Ấn ${bold}"},{name:"Lệnh in nghiêng",legend:"Ấn ${italic}"},{name:"Lệnh gạch dưới",legend:"Ấn ${underline}"},{name:"Lệnh liên kết",legend:"Nhấn ${link}"},{name:"Lệnh hiển thị thanh công cụ",legend:"Nhấn${toolbarCollapse}"},{name:"Truy cập đến lệnh tập trung vào khoảng cách trước đó",legend:"Ấn ${accessPreviousSpace} để truy cập đến phần tập trung khoảng cách sau phần còn sót lại của khoảng cách gần nhất vốn không tác động đến được , thí dụ: hai yếu tố điều chỉnh HR. Lặp lại các phím kết họep này để vươn đến phần khoảng cách."}, -{name:"Truy cập phần đối tượng lệnh khoảng trống",legend:"Ấn ${accessNextSpace} để truy cập đến phần tập trung khoảng cách sau phần còn sót lại của khoảng cách gần nhất vốn không tác động đến được , thí dụ: hai yếu tố điều chỉnh HR. Lặp lại các phím kết họep này để vươn đến phần khoảng cách."},{name:"Trợ giúp liên quan",legend:"Nhấn ${a11yHelp}"},{name:" Paste as plain text",legend:"Press ${pastetext}",legendEdge:"Press ${pastetext}, followed by ${paste}"}]}],tab:"Phím Tab",pause:"Phím Pause",capslock:"Phím Caps Lock", -escape:"Phím Escape",pageUp:"Phím Page Up",pageDown:"Phím Page Down",leftArrow:"Phím Left Arrow",upArrow:"Phím Up Arrow",rightArrow:"Phím Right Arrow",downArrow:"Phím Down Arrow",insert:"Chèn",leftWindowKey:"Phím Left Windows",rightWindowKey:"Phím Right Windows ",selectKey:"Chọn phím",numpad0:"Phím 0",numpad1:"Phím 1",numpad2:"Phím 2",numpad3:"Phím 3",numpad4:"Phím 4",numpad5:"Phím 5",numpad6:"Phím 6",numpad7:"Phím 7",numpad8:"Phím 8",numpad9:"Phím 9",multiply:"Nhân",add:"Thêm",subtract:"Trừ",decimalPoint:"Điểm số thập phân", -divide:"Chia",f1:"F1",f2:"F2",f3:"F3",f4:"F4",f5:"F5",f6:"F6",f7:"F7",f8:"F8",f9:"F9",f10:"F10",f11:"F11",f12:"F12",numLock:"Num Lock",scrollLock:"Scroll Lock",semiColon:"Dấu chấm phẩy",equalSign:"Đăng nhập bằng",comma:"Dấu phẩy",dash:"Dấu gạch ngang",period:"Phím .",forwardSlash:"Phím /",graveAccent:"Phím `",openBracket:"Open Bracket",backSlash:"Dấu gạch chéo ngược",closeBracket:"Gần giá đỡ",singleQuote:"Trích dẫn"}); \ No newline at end of file diff --git a/admin/plugins/ckeditor/plugins/a11yhelp/dialogs/lang/zh-cn.js b/admin/plugins/ckeditor/plugins/a11yhelp/dialogs/lang/zh-cn.js deleted file mode 100644 index 5c78983..0000000 --- a/admin/plugins/ckeditor/plugins/a11yhelp/dialogs/lang/zh-cn.js +++ /dev/null @@ -1,9 +0,0 @@ -/* - Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. - For licensing, see LICENSE.md or http://ckeditor.com/license -*/ -CKEDITOR.plugins.setLang("a11yhelp","zh-cn",{title:"辅助功能说明",contents:"帮助内容。要关闭此对话框请按 ESC 键。",legend:[{name:"常规",items:[{name:"编辑器工具栏",legend:"按 ${toolbarFocus} 切换到工具栏,使用 TAB 键和 SHIFT+TAB 组合键移动到上一个和下一个工具栏组。使用左右箭头键移动到上一个或下一个工具栏按钮。按空格键或回车键以选中工具栏按钮。"},{name:"编辑器对话框",legend:"在对话框内,按 TAB 键移动到下一个字段,按 SHIFT + TAB 组合键移动到上一个字段,按 ENTER 键提交对话框,按 ESC 键取消对话框。对于有多选项卡的对话框,可以按 ALT + F10 直接切换到或者按 TAB 键逐步移到选项卡列表,当焦点移到选项卡列表时可以用左右箭头键来移动到前后的选项卡。"},{name:"编辑器上下文菜单",legend:"用 ${contextMenu} 或者“应用程序键”打开上下文菜单。然后用 TAB 键或者下箭头键来移动到下一个菜单项;SHIFT + TAB 组合键或者上箭头键移动到上一个菜单项。用 SPACE 键或者 ENTER 键选择菜单项。用 SPACE 键,ENTER 键或者右箭头键打开子菜单。返回菜单用 ESC 键或者左箭头键。用 ESC 键关闭上下文菜单。"}, -{name:"编辑器列表框",legend:"在列表框中,移到下一列表项用 TAB 键或者下箭头键。移到上一列表项用SHIFT+TAB 组合键或者上箭头键,用 SPACE 键或者 ENTER 键选择列表项。用 ESC 键收起列表框。"},{name:"编辑器元素路径栏",legend:"按 ${elementsPathFocus} 以导航到元素路径栏,使用 TAB 键或右箭头键选择下一个元素,使用 SHIFT+TAB 组合键或左箭头键选择上一个元素,按空格键或回车键以选定编辑器里的元素。"}]},{name:"命令",items:[{name:" 撤消命令",legend:"按 ${undo}"},{name:" 重做命令",legend:"按 ${redo}"},{name:" 加粗命令",legend:"按 ${bold}"},{name:" 倾斜命令",legend:"按 ${italic}"},{name:" 下划线命令",legend:"按 ${underline}"},{name:" 链接命令",legend:"按 ${link}"},{name:" 工具栏折叠命令",legend:"按 ${toolbarCollapse}"}, -{name:"访问前一个焦点区域的命令",legend:"按 ${accessPreviousSpace} 访问^符号前最近的不可访问的焦点区域,例如:两个相邻的 HR 元素。重复此组合按键可以到达远处的焦点区域。"},{name:"访问下一个焦点区域命令",legend:"按 ${accessNextSpace} 以访问^符号后最近的不可访问的焦点区域。例如:两个相邻的 HR 元素。重复此组合按键可以到达远处的焦点区域。"},{name:"辅助功能帮助",legend:"按 ${a11yHelp}"},{name:"粘贴为纯文本",legend:"按 ${pastetext}",legendEdge:"按 ${pastetext},然后再按 ${paste}"}]}],tab:"Tab 键",pause:"暂停键",capslock:"大写锁定键",escape:"Esc 键",pageUp:"上翻页键",pageDown:"下翻页键",leftArrow:"向左箭头键",upArrow:"向上箭头键",rightArrow:"向右箭头键",downArrow:"向下箭头键",insert:"插入键", -leftWindowKey:"左 WIN 键",rightWindowKey:"右 WIN 键",selectKey:"选择键",numpad0:"小键盘 0 键",numpad1:"小键盘 1 键",numpad2:"小键盘 2 键",numpad3:"小键盘 3 键",numpad4:"小键盘 4 键",numpad5:"小键盘 5 键",numpad6:"小键盘 6 键",numpad7:"小键盘 7 键",numpad8:"小键盘 8 键",numpad9:"小键盘 9 键",multiply:"星号键",add:"加号键",subtract:"减号键",decimalPoint:"小数点键",divide:"除号键",f1:"F1 键",f2:"F2 键",f3:"F3 键",f4:"F4 键",f5:"F5 键",f6:"F6 键",f7:"F7 键",f8:"F8 键",f9:"F9 键",f10:"F10 键",f11:"F11 键",f12:"F12 键",numLock:"数字锁定键",scrollLock:"滚动锁定键",semiColon:"分号键",equalSign:"等号键", -comma:"逗号键",dash:"短划线键",period:"句号键",forwardSlash:"斜杠键",graveAccent:"重音符键",openBracket:"左中括号键",backSlash:"反斜杠键",closeBracket:"右中括号键",singleQuote:"单引号键"}); \ No newline at end of file diff --git a/admin/plugins/ckeditor/plugins/a11yhelp/dialogs/lang/zh.js b/admin/plugins/ckeditor/plugins/a11yhelp/dialogs/lang/zh.js deleted file mode 100644 index 10bf41c..0000000 --- a/admin/plugins/ckeditor/plugins/a11yhelp/dialogs/lang/zh.js +++ /dev/null @@ -1,9 +0,0 @@ -/* - Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. - For licensing, see LICENSE.md or http://ckeditor.com/license -*/ -CKEDITOR.plugins.setLang("a11yhelp","zh",{title:"輔助工具指南",contents:"說明內容。若要關閉此對話框請按「ESC」。",legend:[{name:"一般",items:[{name:"編輯器工具列",legend:"請按 ${toolbarFocus} 以導覽到工具列。利用 TAB 或 SHIFT+TAB 以便移動到下一個及前一個工具列群組。利用右方向鍵或左方向鍵以便移動到下一個及上一個工具列按鈕。按下空白鍵或 ENTER 鍵啟用工具列按鈕。"},{name:"編輯器對話方塊",legend:"在對話框中,按下 TAB 鍵以導覽到下一個對話框元素,按下 SHIFT+TAB 以移動到上一個對話框元素,按下 ENTER 以遞交對話框,按下 ESC 以取消對話框。當對話框有多個分頁時,可以使用 ALT+F10 或是在對話框分頁順序中的一部份按下 TAB 以使用分頁列表。焦點在分頁列表上時,分別使用右方向鍵及左方向鍵移動到下一個及上一個分頁。"},{name:"編輯器內容功能表",legend:"請按下「${contextMenu}」或是「應用程式鍵」以開啟內容選單。以「TAB」或是「↓」鍵移動到下一個選單選項。以「SHIFT + TAB」或是「↑」鍵移動到上一個選單選項。按下「空白鍵」或是「ENTER」鍵以選取選單選項。以「空白鍵」或「ENTER」或「→」開啟目前選項之子選單。以「ESC」或「←」回到父選單。以「ESC」鍵關閉內容選單」。"}, -{name:"編輯器清單方塊",legend:"在清單方塊中,使用 TAB 或下方向鍵移動到下一個列表項目。使用 SHIFT+TAB 或上方向鍵移動到上一個列表項目。按下空白鍵或 ENTER 以選取列表選項。按下 ESC 以關閉清單方塊。"},{name:"編輯器元件路徑工具列",legend:"請按 ${elementsPathFocus} 以瀏覽元素路徑列。利用 TAB 或右方向鍵以便移動到下一個元素按鈕。利用 SHIFT 或左方向鍵以便移動到上一個按鈕。按下空白鍵或 ENTER 鍵來選取在編輯器中的元素。"}]},{name:"命令",items:[{name:"復原命令",legend:"請按下「${undo}」"},{name:"重複命令",legend:"請按下「 ${redo}」"},{name:"粗體命令",legend:"請按下「${bold}」"},{name:"斜體",legend:"請按下「${italic}」"},{name:"底線命令",legend:"請按下「${underline}」"},{name:"連結",legend:"請按下「${link}」"}, -{name:"隱藏工具列",legend:"請按下「${toolbarCollapse}」"},{name:"存取前一個焦點空間命令",legend:"請按下 ${accessPreviousSpace} 以存取最近但無法靠近之插字符號前的焦點空間。舉例:二個相鄰的 HR 元素。\r\n重複按鍵以存取較遠的焦點空間。"},{name:"存取下一個焦點空間命令",legend:"請按下 ${accessNextSpace} 以存取最近但無法靠近之插字符號後的焦點空間。舉例:二個相鄰的 HR 元素。\r\n重複按鍵以存取較遠的焦點空間。"},{name:"協助工具說明",legend:"請按下「${a11yHelp}」"},{name:" Paste as plain text",legend:"Press ${pastetext}",legendEdge:"Press ${pastetext}, followed by ${paste}"}]}],tab:"Tab",pause:"Pause",capslock:"Caps Lock",escape:"Esc",pageUp:"Page Up", -pageDown:"Page Down",leftArrow:"向左箭號",upArrow:"向上鍵號",rightArrow:"向右鍵號",downArrow:"向下鍵號",insert:"插入",leftWindowKey:"左方 Windows 鍵",rightWindowKey:"右方 Windows 鍵",selectKey:"選擇鍵",numpad0:"Numpad 0",numpad1:"Numpad 1",numpad2:"Numpad 2",numpad3:"Numpad 3",numpad4:"Numpad 4",numpad5:"Numpad 5",numpad6:"Numpad 6",numpad7:"Numpad 7",numpad8:"Numpad 8",numpad9:"Numpad 9",multiply:"乘號",add:"新增",subtract:"減號",decimalPoint:"小數點",divide:"除號",f1:"F1",f2:"F2",f3:"F3",f4:"F4",f5:"F5",f6:"F6",f7:"F7",f8:"F8",f9:"F9", -f10:"F10",f11:"F11",f12:"F12",numLock:"Num Lock",scrollLock:"Scroll Lock",semiColon:"分號",equalSign:"等號",comma:"逗號",dash:"虛線",period:"句點",forwardSlash:"斜線",graveAccent:"抑音符號",openBracket:"左方括號",backSlash:"反斜線",closeBracket:"右方括號",singleQuote:"單引號"}); \ No newline at end of file diff --git a/admin/plugins/ckeditor/plugins/about/dialogs/about.js b/admin/plugins/ckeditor/plugins/about/dialogs/about.js deleted file mode 100644 index 14eba69..0000000 --- a/admin/plugins/ckeditor/plugins/about/dialogs/about.js +++ /dev/null @@ -1,8 +0,0 @@ -/* - Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. - For licensing, see LICENSE.md or http://ckeditor.com/license -*/ -CKEDITOR.dialog.add("about",function(a){a=a.lang.about;var b=CKEDITOR.getUrl(CKEDITOR.plugins.get("about").path+"dialogs/"+(CKEDITOR.env.hidpi?"hidpi/":"")+"logo_ckeditor.png");return{title:CKEDITOR.env.ie?a.dlgTitle:a.title,minWidth:390,minHeight:230,contents:[{id:"tab1",label:"",title:"",expand:!0,padding:0,elements:[{type:"html",html:'\x3cstyle type\x3d"text/css"\x3e.cke_about_container{color:#000 !important;padding:10px 10px 0;margin-top:5px}.cke_about_container p{margin: 0 0 10px;}.cke_about_container .cke_about_logo{height:81px;background-color:#fff;background-image:url('+ -b+");"+(CKEDITOR.env.hidpi?"background-size:163px 58px;":"")+'background-position:center; background-repeat:no-repeat;margin-bottom:10px;}.cke_about_container a{cursor:pointer !important;color:#00B2CE !important;text-decoration:underline !important;}\x3c/style\x3e\x3cdiv class\x3d"cke_about_container"\x3e\x3cdiv class\x3d"cke_about_logo"\x3e\x3c/div\x3e\x3cp\x3eCKEditor '+CKEDITOR.version+" (revision "+CKEDITOR.revision+')\x3cbr\x3e\x3ca target\x3d"_blank" rel\x3d"noopener noreferrer" href\x3d"http://ckeditor.com/"\x3ehttp://ckeditor.com\x3c/a\x3e\x3c/p\x3e\x3cp\x3e'+ -a.help.replace("$1",'\x3ca target\x3d"_blank" rel\x3d"noopener noreferrer" href\x3d"http://docs.ckeditor.com/user"\x3e'+a.userGuide+"\x3c/a\x3e")+"\x3c/p\x3e\x3cp\x3e"+a.moreInfo+'\x3cbr\x3e\x3ca target\x3d"_blank" rel\x3d"noopener noreferrer" href\x3d"http://ckeditor.com/about/license"\x3ehttp://ckeditor.com/about/license\x3c/a\x3e\x3c/p\x3e\x3cp\x3e'+a.copy.replace("$1",'\x3ca target\x3d"_blank" rel\x3d"noopener noreferrer" href\x3d"http://cksource.com/"\x3eCKSource\x3c/a\x3e - Frederico Knabben')+ -"\x3c/p\x3e\x3c/div\x3e"}]}],buttons:[CKEDITOR.dialog.cancelButton]}}); \ No newline at end of file diff --git a/admin/plugins/ckeditor/plugins/about/dialogs/hidpi/logo_ckeditor.png b/admin/plugins/ckeditor/plugins/about/dialogs/hidpi/logo_ckeditor.png deleted file mode 100644 index 10cc736..0000000 Binary files a/admin/plugins/ckeditor/plugins/about/dialogs/hidpi/logo_ckeditor.png and /dev/null differ diff --git a/admin/plugins/ckeditor/plugins/about/dialogs/logo_ckeditor.png b/admin/plugins/ckeditor/plugins/about/dialogs/logo_ckeditor.png deleted file mode 100644 index f186eb8..0000000 Binary files a/admin/plugins/ckeditor/plugins/about/dialogs/logo_ckeditor.png and /dev/null differ diff --git a/admin/plugins/ckeditor/plugins/clipboard/dev/clipboard.html b/admin/plugins/ckeditor/plugins/clipboard/dev/clipboard.html deleted file mode 100644 index aa2598b..0000000 --- a/admin/plugins/ckeditor/plugins/clipboard/dev/clipboard.html +++ /dev/null @@ -1,190 +0,0 @@ -<!DOCTYPE html> -<!-- -Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. -For licensing, see LICENSE.md or http://ckeditor.com/license ---> -<html> -<head> - <meta charset="utf-8"> - <title>Clipboard playground &ndash; CKEditor Sample</title> - <script src="../../../ckeditor.js"></script> - <link href="../../../samples/old/sample.css" rel="stylesheet"> - <style> -body { - margin: 0; -} - -#editables, #console -{ - width: 48%; -} -#editable { - padding: 5px 10px; -} - -#console { - position: fixed; - top: 10px; - right: 30px; - height: 500px; - border: solid 3px #555; - overflow: auto; -} -#console > p { - border-bottom: solid 1px #555; - margin: 0; - padding: 0 5px; - background: rgba(0, 0, 0, 0.25); - transition: background-color 1s; -} -#console > p.old { - background: rgba(0, 0, 0, 0); -} -#console time, #console .prompt { - padding: 0 5px; - display: inline-block; -} -#console time { - background: #999; - background: rgba(0, 0, 0, 0.5 ); - color: #FFF; - margin-left: -5px; -} -#console .prompt { - background: #DDD; - background: rgba(0, 0, 0, 0.1 ); - min-width: 200px; -} -.someClass { - color: blue; -} -.specChar { - color: #777; - background-color: #EEE; - background-color: rgba(0, 0, 0, 0.1); - font-size: 0.8em; - border-radius: 2px; - padding: 1px; -} - </style> -</head> -<body> - <h1 class="samples"> - CKEditor Sample &mdash; clipboard plugin playground - </h1> - <div id="editables"> - <p> - <label for="editor1"> - Editor 1:</label> - <textarea cols="80" id="editor1" name="editor1" rows="10">&lt;p&gt;This is some &lt;strong&gt;sample text&lt;/strong&gt;. You are using &lt;a href="http://ckeditor.com/"&gt;CKEditor&lt;/a&gt;.&lt;/p&gt;</textarea> - </p> - <p> - <label for="editor2"> - Editor 2:</label> - <textarea cols="80" id="editor2" name="editor2" rows="10">&lt;p&gt;This is more &lt;strong class="MsoNormal"&gt;sample text&lt;/strong&gt;.&lt;/p&gt;</textarea> - </p> - <p> - <label for="editor3"> - Editor 3:</label> - <textarea cols="80" id="editor3" name="editor3" rows="10">&lt;p&gt;This editor &lt;strong&gt;forces pasting in text mode&lt;/strong&gt; by listening for "beforePaste" event.&lt;/p&gt;</textarea> - </p> - <p> - <label for="editor4"> - Editor 4:</label> - <textarea cols="80" id="editor4" name="editor4" rows="10">&lt;p&gt;This editor &lt;strong&gt;forces pasting in text mode&lt;/strong&gt; by "forcePasteAsPlainText" config option.&lt;/p&gt;</textarea> - </p> - <p> - <label for="editor5"> - Editor 5:</label> - <textarea cols="80" id="editor5" name="editor5" rows="10">Editor with autoParagraphing set to off.</textarea> - </p> - <div id="editor6" contenteditable="true" style="font-family: Georgia; font-size: 14px"> - <h1>Editor 6</h1> - <p>Content content content.</p> - <p class="someClass">Styled by <code>.someClass</code>.</p> - </div> - </div> - <div id="console"> - </div> - <script> -( function() -{ - 'use strict'; - - var log = window.__log = function( title, msg ) { - var msgEl = new CKEDITOR.dom.element( 'p' ), - consoleEl = CKEDITOR.document.getById( 'console' ), - time = new Date().toString().match( /\d\d:\d\d:\d\d/ )[ 0 ], - format = function( tpl ) { - return tpl.replace( /{time}/g, time ).replace( '{title}', title ).replace( '{msg}', msg || '' ); - }; - - window.console && console.log && console.log( format( '[{time}] {title}: {msg}' ) ); - - msg = ( msg || '' ).replace( /\r/g, '{\\r}' ).replace( /\n/g, '{\\n}' ).replace( /\t/g, '{\\t}' ); - msg = CKEDITOR.tools.htmlEncode( msg ); - msg = msg.replace( /\{(\\\w)\}/g, '<code class="specChar">$1</code>' ); - - msgEl.setHtml( format( '<time datetime="{time}">{time}</time><span class="prompt">{title}</span> {msg}' ) ); - consoleEl.append( msgEl ); - consoleEl.$.scrollTop = consoleEl.$.scrollHeight; - setTimeout( function() { msgEl.addClass( 'old' ); }, 250 ); - }; - - var observe = function( editor, num ) { - var p = 'EDITOR ' + num + ' > '; - - editor.on( 'paste', function( event ) { - log( p + 'paste(prior:-1)', event.data.type + ' - "' + event.data.dataValue + '"' ); - }, null, null, -1 ); - editor.on( 'paste', function( event ) { - log( p + 'paste(prior:10)', event.data.type + ' - "' + event.data.dataValue + '"' ); - } ); - editor.on( 'paste', function( event ) { - log( p + 'paste(prior:999)', event.data.type + ' - "' + event.data.dataValue + '"' ); - }, null, null, 999 ); - editor.on( 'beforePaste', function( event ) { - log( p + 'beforePaste', event.data.type ); - } ); - editor.on( 'beforePaste', function( event ) { - log( p + 'beforePaste(prior:999)', event.data.type ); - }, null, null, 999 ); - editor.on( 'afterPaste', function( event ) { - log( p + 'afterPaste' ); - } ); - editor.on( 'copy', function( event ) { - log( p + 'copy' ); - } ); - editor.on( 'cut', function( event ) { - log( p + 'cut' ); - } ); - }; - - CKEDITOR.disableAutoInline = true; - var config = { - height: 120, - toolbar: [ [ 'Source' ] ], - allowedContent: true - }, - editor1 = CKEDITOR.replace( 'editor1', config ), - editor2 = CKEDITOR.replace( 'editor2', config ), - editor3 = CKEDITOR.replace( 'editor3', config ), - editor4 = CKEDITOR.replace( 'editor4', CKEDITOR.tools.extend( { forcePasteAsPlainText: true }, config ) ), - editor5 = CKEDITOR.replace( 'editor5', CKEDITOR.tools.extend( { autoParagraph: false }, config ) ), - editor6 = CKEDITOR.inline( document.getElementById( 'editor6' ), config ); - - editor3.on( 'beforePaste', function( evt ) { - evt.data.type = 'text'; - } ); - - observe( editor1, 1 ); - observe( editor2, 2 ); - observe( editor3, 3 ); - observe( editor4, 4 ); - observe( editor5, 5 ); - observe( editor6, 6 ); - -})(); - </script> -</body> -</html> diff --git a/admin/plugins/ckeditor/plugins/clipboard/dev/console.js b/admin/plugins/ckeditor/plugins/clipboard/dev/console.js deleted file mode 100644 index 6889bb0..0000000 --- a/admin/plugins/ckeditor/plugins/clipboard/dev/console.js +++ /dev/null @@ -1,49 +0,0 @@ -/** - * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. - * For licensing, see LICENSE.md or http://ckeditor.com/license - */ - -/* global CKCONSOLE */ - -'use strict'; - -( function() { - var pasteType, pasteValue; - - CKCONSOLE.add( 'paste', { - panels: [ - { - type: 'box', - content: - '<ul class="ckconsole_list">' + - '<li>type: <span class="ckconsole_value" data-value="type"></span></li>' + - '<li>value: <span class="ckconsole_value" data-value="value"></span></li>' + - '</ul>', - - refresh: function() { - return { - header: 'Paste', - type: pasteType, - value: pasteValue - }; - }, - - refreshOn: function( editor, refresh ) { - editor.on( 'paste', function( evt ) { - pasteType = evt.data.type; - pasteValue = CKEDITOR.tools.htmlEncode( evt.data.dataValue ); - refresh(); - } ); - } - }, - { - type: 'log', - on: function( editor, log, logFn ) { - editor.on( 'paste', function( evt ) { - logFn( 'paste; type:' + evt.data.type )(); - } ); - } - } - ] - } ); -} )(); diff --git a/admin/plugins/ckeditor/plugins/clipboard/dev/dnd.html b/admin/plugins/ckeditor/plugins/clipboard/dev/dnd.html deleted file mode 100644 index 281c032..0000000 --- a/admin/plugins/ckeditor/plugins/clipboard/dev/dnd.html +++ /dev/null @@ -1,185 +0,0 @@ -<!DOCTYPE html> -<!-- -Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. -For licensing, see LICENSE.md or http://ckeditor.com/license ---> -<html> -<head> - <meta charset="utf-8"> - <title>Manual test for http://dev.ckeditor.com/ticket/11460</title> - <script src="../../../ckeditor.js"></script> - <script src="../../../dev/console/console.js"></script> - <script src="../../../plugins/clipboard/dev/console.js"></script> - <link rel="stylesheet" href="../../../samples/old/sample.css"> - <style type="text/css"> - h2 { - margin: 10px 0px 4px 0px; - padding: 0; - font-size: 14px; - } - h3 { - margin: 5px 0px 2px 0px; - padding: 0; - font-size: 12px; - } - </style> -</head> -<body> - <h1 class="samples"> - Manual test for #11460 - </h1> - <h2>Description (<a href="javascript:hideshow('description');">hide/show</a>)</h2> - <div id="description" class="description"> - <p>Test internal D&amp;D in the editor, dropping content from an external source (helpers, MS Word) and D&amp;D between editors. Keep in mind that internal D&amp;D is the most complex operation because editor have to handle two ranges at the same time.</p> - <h3>Expected behavior:</h3> - <ul> - <li>proper drop position,</li> - <li>in the internal and cross editor D&amp;D: dragged content should be removed,</li> - <li>dropped content should be (more less) the same as dragged content,</li> - <li>paste event should be fired,</li> - <li>undo should work properly (one undo operation for one D&amp;D),</li> - <li>no crashes, nor errors,</li> - </ul> - <h3>Drag scenarios:</h3> - <ul> - <li>drag simple text,</li> - <li>drag table cell/cells,</li> - <li>drag link,</li> - <li>drag helpers textarea content,</li> - <li>drag helpers html content,</li> - <li>drag content from MS Word.</li> - </ul> - <h3>Drop scenarios:</h3> - <ul> - <li>drop in the different paragraph (before and after),</li> - <li>drop in the same paragraph (before and after),</li> - <li>drop in the same text node (before and after),</li> - <li>drop between text lines,</li> - <li>drop on the whitespace next to the header,</li> - <li>drop on the whitespace on the left side from the quote,</li> - <li>drop into a cell.</li> - </ul> - <h3>Known issues (not part of this ticket):</h3> - <ul> - <li>because of <a href="http://dev.ckeditor.com/ticket/11636">#11636</a> dragged content is not correct in some cases (e.g. when you drag part of the link),</li> - <li>drag position needs clean up after D&amp;D (e.g. remove empty paragraphs, fix table),</li> - <li>drop position needs clean up after D&amp;D (e.g. add spaces before/after dropped content, apply parents styles, break paragraph when one paragraph is dropped at the end to the other paragraph),</li> - <li>in the external D&amp;D: Chrome add plenty of addition tags.</li> - </ul> - </div> - <div> - <h2>Helpers (<a href="javascript:hideshow('helpers');">hide/show</a>)</h2> - <div id="helpers"> - <textarea style="width:49%; height:50px; float: left;">Lorem ipsum dolor sit amet, consectetur adipiscing elit. In commodo vulputate tempor. Sed <b>at</b> elit.</textarea> - <div style="width:49%; height:50px; float: right;"> - Lorem ipsum <b>dolor</b> sit <i>amet</i>, consectetur adipiscing elit. In commodo vulputate tempor. Sed &lt;b&gt;at elit&lt;/b&gt; vel ligula mollis aliquet a ac odio. - <pre> -Aenean cursus egestas ipsum. - </pre> - </div> - <div style="clear:both;"></div> - </div> - </div> - <div> - <h2>Classic editor (<a href="javascript:hideshow('classic-editor');">hide/show</a>)</h2> - <div id="classic-editor"> - <textarea cols="80" id="classic" name="classic" rows="10"> - &lt;h1&gt;&lt;img alt=&quot;Saturn V carrying Apollo 11&quot; class=&quot;right&quot; src=&quot;../../../samples/assets/sample.jpg&quot;/&gt; Apollo 11&lt;/h1&gt; &lt;p&gt;&lt;b&gt;Apollo 11&lt;/b&gt; was the spaceflight that landed the first humans, Americans &lt;a href=&quot;http://en.wikipedia.org/wiki/Neil_Armstrong&quot; title=&quot;Neil Armstrong&quot;&gt;Neil Armstrong&lt;/a&gt; and &lt;a href=&quot;http://en.wikipedia.org/wiki/Buzz_Aldrin&quot; title=&quot;Buzz Aldrin&quot;&gt;Buzz Aldrin&lt;/a&gt;, on the Moon on July 20, 1969, at 20:18 UTC. Armstrong became the first to step onto the lunar surface 6 hours later on July 21 at 02:56 UTC.&lt;/p&gt; &lt;p&gt;Armstrong spent about &lt;s&gt;three and a half&lt;/s&gt; two and a half hours outside the spacecraft, Aldrin slightly less; and together they collected 47.5 pounds (21.5&amp;nbsp;kg) of lunar material for return to Earth. A third member of the mission, &lt;a href=&quot;http://en.wikipedia.org/wiki/Michael_Collins_(astronaut)&quot; title=&quot;Michael Collins (astronaut)&quot;&gt;Michael Collins&lt;/a&gt;, piloted the &lt;a href=&quot;http://en.wikipedia.org/wiki/Apollo_Command/Service_Module&quot; title=&quot;Apollo Command/Service Module&quot;&gt;command&lt;/a&gt; spacecraft alone in lunar orbit until Armstrong and Aldrin returned to it for the trip back to Earth.&lt;/p&gt; &lt;h2&gt;Broadcasting and &lt;em&gt;quotes&lt;/em&gt; &lt;a id=&quot;quotes&quot; name=&quot;quotes&quot;&gt;&lt;/a&gt;&lt;/h2&gt; &lt;p&gt;Broadcast on live TV to a world-wide audience, Armstrong stepped onto the lunar surface and described the event as:&lt;/p&gt; &lt;blockquote&gt;&lt;p&gt;One small step for [a] man, one giant leap for mankind.&lt;/p&gt;&lt;/blockquote&gt; &lt;p&gt;Apollo 11 effectively ended the &lt;a href=&quot;http://en.wikipedia.org/wiki/Space_Race&quot; title=&quot;Space Race&quot;&gt;Space Race&lt;/a&gt; and fulfilled a national goal proposed in 1961 by the late U.S. President &lt;a href=&quot;http://en.wikipedia.org/wiki/John_F._Kennedy&quot; title=&quot;John F. Kennedy&quot;&gt;John F. Kennedy&lt;/a&gt; in a speech before the United States Congress:&lt;/p&gt; &lt;blockquote&gt;&lt;p&gt;[...] before this decade is out, of landing a man on the Moon and returning him safely to the Earth.&lt;/p&gt;&lt;/blockquote&gt; &lt;h2&gt;Technical details &lt;a id=&quot;tech-details&quot; name=&quot;tech-details&quot;&gt;&lt;/a&gt;&lt;/h2&gt; &lt;table align=&quot;right&quot; border=&quot;1&quot; bordercolor=&quot;#ccc&quot; cellpadding=&quot;5&quot; cellspacing=&quot;0&quot; style=&quot;border-collapse:collapse;margin:10px 0 10px 15px;&quot;&gt; &lt;caption&gt;&lt;strong&gt;Mission crew&lt;/strong&gt;&lt;/caption&gt; &lt;thead&gt; &lt;tr&gt; &lt;th scope=&quot;col&quot;&gt;Position&lt;/th&gt; &lt;th scope=&quot;col&quot;&gt;Astronaut&lt;/th&gt; &lt;/tr&gt; &lt;/thead&gt; &lt;tbody&gt; &lt;tr&gt; &lt;td&gt;Commander&lt;/td&gt; &lt;td&gt;Neil A. Armstrong&lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td&gt;Command Module Pilot&lt;/td&gt; &lt;td&gt;Michael Collins&lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td&gt;Lunar Module Pilot&lt;/td&gt; &lt;td&gt;Edwin &amp;quot;Buzz&amp;quot; E. Aldrin, Jr.&lt;/td&gt; &lt;/tr&gt; &lt;/tbody&gt; &lt;/table&gt; &lt;p&gt;Launched by a &lt;strong&gt;Saturn V&lt;/strong&gt; rocket from &lt;a href=&quot;http://en.wikipedia.org/wiki/Kennedy_Space_Center&quot; title=&quot;Kennedy Space Center&quot;&gt;Kennedy Space Center&lt;/a&gt; in Merritt Island, Florida on July 16, Apollo 11 was the fifth manned mission of &lt;a href=&quot;http://en.wikipedia.org/wiki/NASA&quot; title=&quot;NASA&quot;&gt;NASA&lt;/a&gt;&amp;#39;s Apollo program. The Apollo spacecraft had three parts:&lt;/p&gt; &lt;ol&gt; &lt;li&gt;&lt;strong&gt;Command Module&lt;/strong&gt; with a cabin for the three astronauts which was the only part which landed back on Earth&lt;/li&gt; &lt;li&gt;&lt;strong&gt;Service Module&lt;/strong&gt; which supported the Command Module with propulsion, electrical power, oxygen and water&lt;/li&gt; &lt;li&gt;&lt;strong&gt;Lunar Module&lt;/strong&gt; for landing on the Moon.&lt;/li&gt; &lt;/ol&gt; &lt;p&gt;After being sent to the Moon by the Saturn V&amp;#39;s upper stage, the astronauts separated the spacecraft from it and travelled for three days until they entered into lunar orbit. Armstrong and Aldrin then moved into the Lunar Module and landed in the &lt;a href=&quot;http://en.wikipedia.org/wiki/Mare_Tranquillitatis&quot; title=&quot;Mare Tranquillitatis&quot;&gt;Sea of Tranquility&lt;/a&gt;. They stayed a total of about 21 and a half hours on the lunar surface. After lifting off in the upper part of the Lunar Module and rejoining Collins in the Command Module, they returned to Earth and landed in the &lt;a href=&quot;http://en.wikipedia.org/wiki/Pacific_Ocean&quot; title=&quot;Pacific Ocean&quot;&gt;Pacific Ocean&lt;/a&gt; on July 24.&lt;/p&gt; &lt;hr/&gt; &lt;p style=&quot;text-align: right;&quot;&gt;&lt;small&gt;Source: &lt;a href=&quot;http://en.wikipedia.org/wiki/Apollo_11&quot;&gt;Wikipedia.org&lt;/a&gt;&lt;/small&gt;&lt;/p&gt; - </textarea> - </div> - </div> - <div> - <h2>Inline editor (<a href="javascript:hideshow('inline');">hide/show</a>)</h2> - <div id="inline" contenteditable="true"> - <h1><img alt="Saturn V carrying Apollo 11" class="right" src="../../../samples/assets/sample.jpg" /> Apollo 11</h1> - - <p><b>Apollo 11</b> was the spaceflight that landed the first humans, Americans <a href="http://en.wikipedia.org/wiki/Neil_Armstrong" title="Neil Armstrong">Neil Armstrong</a> and <a href="http://en.wikipedia.org/wiki/Buzz_Aldrin" title="Buzz Aldrin">Buzz Aldrin</a>, on the Moon on July 20, 1969, at 20:18 UTC. Armstrong became the first to step onto the lunar surface 6 hours later on July 21 at 02:56 UTC.</p> - - <p>Armstrong spent about <s>three and a half</s> two and a half hours outside the spacecraft, Aldrin slightly less; and together they collected 47.5 pounds (21.5&nbsp;kg) of lunar material for return to Earth. A third member of the mission, <a href="http://en.wikipedia.org/wiki/Michael_Collins_(astronaut)" title="Michael Collins (astronaut)">Michael Collins</a>, piloted the <a href="http://en.wikipedia.org/wiki/Apollo_Command/Service_Module" title="Apollo Command/Service Module">command</a> spacecraft alone in lunar orbit until Armstrong and Aldrin returned to it for the trip back to Earth.</p> - - <h2>Broadcasting and <em>quotes</em> <a id="quotes" name="quotes"></a></h2> - - <p>Broadcast on live TV to a world-wide audience, Armstrong stepped onto the lunar surface and described the event as:</p> - - <blockquote> - <p>One small step for [a] man, one giant leap for mankind.</p> - </blockquote> - - <p>Apollo 11 effectively ended the <a href="http://en.wikipedia.org/wiki/Space_Race" title="Space Race">Space Race</a> and fulfilled a national goal proposed in 1961 by the late U.S. President <a href="http://en.wikipedia.org/wiki/John_F._Kennedy" title="John F. Kennedy">John F. Kennedy</a> in a speech before the United States Congress:</p> - - <blockquote> - <p>[...] before this decade is out, of landing a man on the Moon and returning him safely to the Earth.</p> - </blockquote> - - <h2>Technical details <a id="tech-details" name="tech-details"></a></h2> - - <table align="right" border="1" bordercolor="#ccc" cellpadding="5" cellspacing="0" style="border-collapse:collapse;margin:10px 0 10px 15px;"> - <caption><strong>Mission crew</strong></caption> - <thead> - <tr> - <th scope="col">Position</th> - <th scope="col">Astronaut</th> - </tr> - </thead> - <tbody> - <tr> - <td>Commander</td> - <td>Neil A. Armstrong</td> - </tr> - <tr> - <td>Command Module Pilot</td> - <td>Michael Collins</td> - </tr> - <tr> - <td>Lunar Module Pilot</td> - <td>Edwin &quot;Buzz&quot; E. Aldrin, Jr.</td> - </tr> - </tbody> - </table> - - <p>Launched by a <strong>Saturn V</strong> rocket from <a href="http://en.wikipedia.org/wiki/Kennedy_Space_Center" title="Kennedy Space Center">Kennedy Space Center</a> in Merritt Island, Florida on July 16, Apollo 11 was the fifth manned mission of <a href="http://en.wikipedia.org/wiki/NASA" title="NASA">NASA</a>&#39;s Apollo program. The Apollo spacecraft had three parts:</p> - - <ol> - <li><strong>Command Module</strong> with a cabin for the three astronauts which was the only part which landed back on Earth</li> - <li><strong>Service Module</strong> which supported the Command Module with propulsion, electrical power, oxygen and water</li> - <li><strong>Lunar Module</strong> for landing on the Moon.</li> - </ol> - - <p>After being sent to the Moon by the Saturn V&#39;s upper stage, the astronauts separated the spacecraft from it and travelled for three days until they entered into lunar orbit. Armstrong and Aldrin then moved into the Lunar Module and landed in the <a href="http://en.wikipedia.org/wiki/Mare_Tranquillitatis" title="Mare Tranquillitatis">Sea of Tranquility</a>. They stayed a total of about 21 and a half hours on the lunar surface. After lifting off in the upper part of the Lunar Module and rejoining Collins in the Command Module, they returned to Earth and landed in the <a href="http://en.wikipedia.org/wiki/Pacific_Ocean" title="Pacific Ocean">Pacific Ocean</a> on July 24.</p> - - <hr /> - <p style="text-align: right;"><small>Source: <a href="http://en.wikipedia.org/wiki/Apollo_11">Wikipedia.org</a></small></p> - </div> - </div> - <script type="text/javascript"> - CKEDITOR.disableAutoInline = true; - - function hideshow( id ) { - var element = CKEDITOR.document.getById( id ); - - if( element.getStyle( 'display' ) == 'none' ) - element.show(); - else - element.hide(); - } - - CKEDITOR.replace( 'classic' ); - CKEDITOR.inline( 'inline' ); - - CKCONSOLE.addEventPanel( 'dragstart', [ '$', 'target', 'dataTransfer' ] ); - CKCONSOLE.addEventPanel( 'dragend', [ '$', 'target', 'dataTransfer' ] ); - CKCONSOLE.addEventPanel( 'drop', - [ '$', 'target', 'dataTransfer', 'dragRange', 'dropRange' ] ); - - CKCONSOLE.create( 'dragstart', { editor: 'classic' } ); - CKCONSOLE.create( 'drop', { editor: 'classic' } ); - CKCONSOLE.create( 'paste', { editor: 'classic' } ); - CKCONSOLE.create( 'dragend', { editor: 'classic' } ); - - CKCONSOLE.create( 'dragstart', { editor: 'inline' } ); - CKCONSOLE.create( 'drop', { editor: 'inline' } ); - CKCONSOLE.create( 'paste', { editor: 'inline' } ); - CKCONSOLE.create( 'dragend', { editor: 'inline' } ); - </script> -</body> -</html> diff --git a/admin/plugins/ckeditor/plugins/clipboard/icons/copy-rtl.png b/admin/plugins/ckeditor/plugins/clipboard/icons/copy-rtl.png deleted file mode 100644 index ce94fc0..0000000 Binary files a/admin/plugins/ckeditor/plugins/clipboard/icons/copy-rtl.png and /dev/null differ diff --git a/admin/plugins/ckeditor/plugins/clipboard/icons/copy.png b/admin/plugins/ckeditor/plugins/clipboard/icons/copy.png deleted file mode 100644 index ce94fc0..0000000 Binary files a/admin/plugins/ckeditor/plugins/clipboard/icons/copy.png and /dev/null differ diff --git a/admin/plugins/ckeditor/plugins/clipboard/icons/cut-rtl.png b/admin/plugins/ckeditor/plugins/clipboard/icons/cut-rtl.png deleted file mode 100644 index 8ae48d9..0000000 Binary files a/admin/plugins/ckeditor/plugins/clipboard/icons/cut-rtl.png and /dev/null differ diff --git a/admin/plugins/ckeditor/plugins/clipboard/icons/cut.png b/admin/plugins/ckeditor/plugins/clipboard/icons/cut.png deleted file mode 100644 index 8ae48d9..0000000 Binary files a/admin/plugins/ckeditor/plugins/clipboard/icons/cut.png and /dev/null differ diff --git a/admin/plugins/ckeditor/plugins/clipboard/icons/hidpi/copy-rtl.png b/admin/plugins/ckeditor/plugins/clipboard/icons/hidpi/copy-rtl.png deleted file mode 100644 index 74c6765..0000000 Binary files a/admin/plugins/ckeditor/plugins/clipboard/icons/hidpi/copy-rtl.png and /dev/null differ diff --git a/admin/plugins/ckeditor/plugins/clipboard/icons/hidpi/copy.png b/admin/plugins/ckeditor/plugins/clipboard/icons/hidpi/copy.png deleted file mode 100644 index 74c6765..0000000 Binary files a/admin/plugins/ckeditor/plugins/clipboard/icons/hidpi/copy.png and /dev/null differ diff --git a/admin/plugins/ckeditor/plugins/clipboard/icons/hidpi/cut-rtl.png b/admin/plugins/ckeditor/plugins/clipboard/icons/hidpi/cut-rtl.png deleted file mode 100644 index f5a9b0d..0000000 Binary files a/admin/plugins/ckeditor/plugins/clipboard/icons/hidpi/cut-rtl.png and /dev/null differ diff --git a/admin/plugins/ckeditor/plugins/clipboard/icons/hidpi/cut.png b/admin/plugins/ckeditor/plugins/clipboard/icons/hidpi/cut.png deleted file mode 100644 index f5a9b0d..0000000 Binary files a/admin/plugins/ckeditor/plugins/clipboard/icons/hidpi/cut.png and /dev/null differ diff --git a/admin/plugins/ckeditor/plugins/clipboard/icons/hidpi/paste-rtl.png b/admin/plugins/ckeditor/plugins/clipboard/icons/hidpi/paste-rtl.png deleted file mode 100644 index 12cac92..0000000 Binary files a/admin/plugins/ckeditor/plugins/clipboard/icons/hidpi/paste-rtl.png and /dev/null differ diff --git a/admin/plugins/ckeditor/plugins/clipboard/icons/hidpi/paste.png b/admin/plugins/ckeditor/plugins/clipboard/icons/hidpi/paste.png deleted file mode 100644 index 12cac92..0000000 Binary files a/admin/plugins/ckeditor/plugins/clipboard/icons/hidpi/paste.png and /dev/null differ diff --git a/admin/plugins/ckeditor/plugins/clipboard/icons/paste-rtl.png b/admin/plugins/ckeditor/plugins/clipboard/icons/paste-rtl.png deleted file mode 100644 index 7039251..0000000 Binary files a/admin/plugins/ckeditor/plugins/clipboard/icons/paste-rtl.png and /dev/null differ diff --git a/admin/plugins/ckeditor/plugins/clipboard/icons/paste.png b/admin/plugins/ckeditor/plugins/clipboard/icons/paste.png deleted file mode 100644 index 7039251..0000000 Binary files a/admin/plugins/ckeditor/plugins/clipboard/icons/paste.png and /dev/null differ diff --git a/admin/plugins/ckeditor/plugins/clipboard/lang/af.js b/admin/plugins/ckeditor/plugins/clipboard/lang/af.js deleted file mode 100644 index f163930..0000000 --- a/admin/plugins/ckeditor/plugins/clipboard/lang/af.js +++ /dev/null @@ -1,12 +0,0 @@ -/* -Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. -For licensing, see LICENSE.md or http://ckeditor.com/license -*/ -CKEDITOR.plugins.setLang( 'clipboard', 'af', { - copy: 'Kopiëer', - copyError: 'U blaaier se sekuriteitsinstelling belet die kopiëringsaksie. Gebruik die sleutelbordkombinasie (Ctrl/Cmd+C).', - cut: 'Knip', - cutError: 'U blaaier se sekuriteitsinstelling belet die outomatiese knip-aksie. Gebruik die sleutelbordkombinasie (Ctrl/Cmd+X).', - paste: 'Plak', - pasteNotification: 'Your browser doesn\'t allow you to paste this way. Press %1 to paste.' // MISSING -} ); diff --git a/admin/plugins/ckeditor/plugins/clipboard/lang/ar.js b/admin/plugins/ckeditor/plugins/clipboard/lang/ar.js deleted file mode 100644 index 711e3da..0000000 --- a/admin/plugins/ckeditor/plugins/clipboard/lang/ar.js +++ /dev/null @@ -1,12 +0,0 @@ -/* -Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. -For licensing, see LICENSE.md or http://ckeditor.com/license -*/ -CKEDITOR.plugins.setLang( 'clipboard', 'ar', { - copy: 'نسخ', - copyError: 'الإعدادات الأمنية للمتصفح الذي تستخدمه تمنع عمليات النسخ التلقائي. فضلاً إستخدم لوحة المفاتيح لفعل ذلك (Ctrl/Cmd+C).', - cut: 'قص', - cutError: 'الإعدادات الأمنية للمتصفح الذي تستخدمه تمنع القص التلقائي. فضلاً إستخدم لوحة المفاتيح لفعل ذلك (Ctrl/Cmd+X).', - paste: 'لصق', - pasteNotification: 'Your browser doesn\'t allow you to paste this way. Press %1 to paste.' // MISSING -} ); diff --git a/admin/plugins/ckeditor/plugins/clipboard/lang/az.js b/admin/plugins/ckeditor/plugins/clipboard/lang/az.js deleted file mode 100644 index 42c713f..0000000 --- a/admin/plugins/ckeditor/plugins/clipboard/lang/az.js +++ /dev/null @@ -1,12 +0,0 @@ -/* -Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. -For licensing, see LICENSE.md or http://ckeditor.com/license -*/ -CKEDITOR.plugins.setLang( 'clipboard', 'az', { - copy: 'Köçür', - copyError: 'Avtomatik köçürülməsi mümkün deyil. Ctrl+C basın.', - cut: 'Kəs', - cutError: 'Avtomatik kəsmə mümkün deyil. Ctrl+X basın.', - paste: 'Əlavə et', - pasteNotification: 'Sizin İnternet bələdçisi bu cür mətnin köçürməsi dəstəklənmir. Əlavə etmək üçün %1 basın.' -} ); diff --git a/admin/plugins/ckeditor/plugins/clipboard/lang/bg.js b/admin/plugins/ckeditor/plugins/clipboard/lang/bg.js deleted file mode 100644 index cbf1cbf..0000000 --- a/admin/plugins/ckeditor/plugins/clipboard/lang/bg.js +++ /dev/null @@ -1,12 +0,0 @@ -/* -Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. -For licensing, see LICENSE.md or http://ckeditor.com/license -*/ -CKEDITOR.plugins.setLang( 'clipboard', 'bg', { - copy: 'Копирай', - copyError: 'Настройките за сигурност на вашия бразуър не разрешават на редактора да изпълни запаметяването. За целта използвайте клавиатурата (Ctrl/Cmd+C).', - cut: 'Отрежи', - cutError: 'Настройките за сигурност на Вашия браузър не позволяват на редактора автоматично да изъплни действията за отрязване. Моля ползвайте клавиатурните команди за целта (ctrl+x).', - paste: 'Вмъкни', - pasteNotification: 'Your browser doesn\'t allow you to paste this way. Press %1 to paste.' // MISSING -} ); diff --git a/admin/plugins/ckeditor/plugins/clipboard/lang/bn.js b/admin/plugins/ckeditor/plugins/clipboard/lang/bn.js deleted file mode 100644 index 746bfb0..0000000 --- a/admin/plugins/ckeditor/plugins/clipboard/lang/bn.js +++ /dev/null @@ -1,12 +0,0 @@ -/* -Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. -For licensing, see LICENSE.md or http://ckeditor.com/license -*/ -CKEDITOR.plugins.setLang( 'clipboard', 'bn', { - copy: 'কপি', - copyError: 'আপনার ব্রাউজারের নিরাপত্তা সেটিংসমূহ এডিটরকে স্বয়ংক্রিয়ভাবে কপি করার প্রক্রিয়া চালনা করার অনুমতি দেয় না। অনুগ্রহপূর্বক এই কাজের জন্য কিবোর্ড ব্যবহার করুন (Ctrl/Cmd+C)।', - cut: 'কাট', - cutError: 'আপনার ব্রাউজারের সুরক্ষা সেটিংস এডিটরকে অটোমেটিক কাট করার অনুমতি দেয়নি। দয়া করে এই কাজের জন্য কিবোর্ড ব্যবহার করুন (Ctrl/Cmd+X)।', - paste: 'পেস্ট', - pasteNotification: 'Your browser doesn\'t allow you to paste this way. Press %1 to paste.' // MISSING -} ); diff --git a/admin/plugins/ckeditor/plugins/clipboard/lang/bs.js b/admin/plugins/ckeditor/plugins/clipboard/lang/bs.js deleted file mode 100644 index 020ea2b..0000000 --- a/admin/plugins/ckeditor/plugins/clipboard/lang/bs.js +++ /dev/null @@ -1,12 +0,0 @@ -/* -Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. -For licensing, see LICENSE.md or http://ckeditor.com/license -*/ -CKEDITOR.plugins.setLang( 'clipboard', 'bs', { - copy: 'Kopiraj', - copyError: 'Sigurnosne postavke Vašeg pretraživaèa ne dozvoljavaju operacije automatskog kopiranja. Molimo koristite kraticu na tastaturi (Ctrl/Cmd+C).', - cut: 'Izreži', - cutError: 'Sigurnosne postavke vašeg pretraživaèa ne dozvoljavaju operacije automatskog rezanja. Molimo koristite kraticu na tastaturi (Ctrl/Cmd+X).', - paste: 'Zalijepi', - pasteNotification: 'Your browser doesn\'t allow you to paste this way. Press %1 to paste.' // MISSING -} ); diff --git a/admin/plugins/ckeditor/plugins/clipboard/lang/ca.js b/admin/plugins/ckeditor/plugins/clipboard/lang/ca.js deleted file mode 100644 index 37c4b41..0000000 --- a/admin/plugins/ckeditor/plugins/clipboard/lang/ca.js +++ /dev/null @@ -1,12 +0,0 @@ -/* -Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. -For licensing, see LICENSE.md or http://ckeditor.com/license -*/ -CKEDITOR.plugins.setLang( 'clipboard', 'ca', { - copy: 'Copiar', - copyError: 'La configuració de seguretat del vostre navegador no permet executar automàticament les operacions de copiar. Si us plau, utilitzeu el teclat (Ctrl/Cmd+C).', - cut: 'Retallar', - cutError: 'La configuració de seguretat del vostre navegador no permet executar automàticament les operacions de retallar. Si us plau, utilitzeu el teclat (Ctrl/Cmd+X).', - paste: 'Enganxar', - pasteNotification: 'Your browser doesn\'t allow you to paste this way. Press %1 to paste.' // MISSING -} ); diff --git a/admin/plugins/ckeditor/plugins/clipboard/lang/cs.js b/admin/plugins/ckeditor/plugins/clipboard/lang/cs.js deleted file mode 100644 index c44976c..0000000 --- a/admin/plugins/ckeditor/plugins/clipboard/lang/cs.js +++ /dev/null @@ -1,12 +0,0 @@ -/* -Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. -For licensing, see LICENSE.md or http://ckeditor.com/license -*/ -CKEDITOR.plugins.setLang( 'clipboard', 'cs', { - copy: 'Kopírovat', - copyError: 'Bezpečnostní nastavení vašeho prohlížeče nedovolují editoru spustit funkci pro kopírování zvoleného textu do schránky. Prosím zkopírujte zvolený text do schránky pomocí klávesnice (Ctrl/Cmd+C).', - cut: 'Vyjmout', - cutError: 'Bezpečnostní nastavení vašeho prohlížeče nedovolují editoru spustit funkci pro vyjmutí zvoleného textu do schránky. Prosím vyjměte zvolený text do schránky pomocí klávesnice (Ctrl/Cmd+X).', - paste: 'Vložit', - pasteNotification: 'Your browser doesn\'t allow you to paste this way. Press %1 to paste.' // MISSING -} ); diff --git a/admin/plugins/ckeditor/plugins/clipboard/lang/cy.js b/admin/plugins/ckeditor/plugins/clipboard/lang/cy.js deleted file mode 100644 index 2d5cb66..0000000 --- a/admin/plugins/ckeditor/plugins/clipboard/lang/cy.js +++ /dev/null @@ -1,12 +0,0 @@ -/* -Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. -For licensing, see LICENSE.md or http://ckeditor.com/license -*/ -CKEDITOR.plugins.setLang( 'clipboard', 'cy', { - copy: 'Copïo', - copyError: '\'Dyw gosodiadau diogelwch eich porwr ddim yn caniatàu\'r golygydd i gynnal \'gweithredoedd copïo\' yn awtomatig. Defnyddiwch y bysellfwrdd (Ctrl/Cmd+C).', - cut: 'Torri', - cutError: 'Nid yw gosodiadau diogelwch eich porwr yn caniatàu\'r golygydd i gynnal \'gweithredoedd torri\' yn awtomatig. Defnyddiwch y bysellfwrdd (Ctrl/Cmd+X).', - paste: 'Gludo', - pasteNotification: 'Your browser doesn\'t allow you to paste this way. Press %1 to paste.' // MISSING -} ); diff --git a/admin/plugins/ckeditor/plugins/clipboard/lang/da.js b/admin/plugins/ckeditor/plugins/clipboard/lang/da.js deleted file mode 100644 index 9d91557..0000000 --- a/admin/plugins/ckeditor/plugins/clipboard/lang/da.js +++ /dev/null @@ -1,12 +0,0 @@ -/* -Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. -For licensing, see LICENSE.md or http://ckeditor.com/license -*/ -CKEDITOR.plugins.setLang( 'clipboard', 'da', { - copy: 'Kopiér', - copyError: 'Din browsers sikkerhedsindstillinger tillader ikke editoren at få automatisk adgang til udklipsholderen.<br><br>Brug i stedet tastaturet til at kopiere teksten (Ctrl/Cmd+C).', - cut: 'Klip', - cutError: 'Din browsers sikkerhedsindstillinger tillader ikke editoren at få automatisk adgang til udklipsholderen.<br><br>Brug i stedet tastaturet til at klippe teksten (Ctrl/Cmd+X).', - paste: 'Indsæt', - pasteNotification: 'Your browser doesn\'t allow you to paste this way. Press %1 to paste.' // MISSING -} ); diff --git a/admin/plugins/ckeditor/plugins/clipboard/lang/de-ch.js b/admin/plugins/ckeditor/plugins/clipboard/lang/de-ch.js deleted file mode 100644 index 67d51e0..0000000 --- a/admin/plugins/ckeditor/plugins/clipboard/lang/de-ch.js +++ /dev/null @@ -1,12 +0,0 @@ -/* -Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. -For licensing, see LICENSE.md or http://ckeditor.com/license -*/ -CKEDITOR.plugins.setLang( 'clipboard', 'de-ch', { - copy: 'Kopieren', - copyError: 'Die Sicherheitseinstellungen Ihres Browsers lassen es nicht zu, den Text automatisch kopieren. Bitte benutzen Sie die System-Zwischenablage über STRG-C (kopieren).', - cut: 'Ausschneiden', - cutError: 'Die Sicherheitseinstellungen Ihres Browsers lassen es nicht zu, den Text automatisch auszuschneiden. Bitte benutzen Sie die System-Zwischenablage über STRG-X (ausschneiden) und STRG-V (einfügen).', - paste: 'Einfügen', - pasteNotification: 'Your browser doesn\'t allow you to paste this way. Press %1 to paste.' // MISSING -} ); diff --git a/admin/plugins/ckeditor/plugins/clipboard/lang/de.js b/admin/plugins/ckeditor/plugins/clipboard/lang/de.js deleted file mode 100644 index 9bdd147..0000000 --- a/admin/plugins/ckeditor/plugins/clipboard/lang/de.js +++ /dev/null @@ -1,12 +0,0 @@ -/* -Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. -For licensing, see LICENSE.md or http://ckeditor.com/license -*/ -CKEDITOR.plugins.setLang( 'clipboard', 'de', { - copy: 'Kopieren', - copyError: 'Die Sicherheitseinstellungen Ihres Browsers lassen es nicht zu, den Text automatisch kopieren. Bitte benutzen Sie die System-Zwischenablage über STRG-C (kopieren).', - cut: 'Ausschneiden', - cutError: 'Die Sicherheitseinstellungen Ihres Browsers lassen es nicht zu, den Text automatisch auszuschneiden. Bitte benutzen Sie die System-Zwischenablage über STRG-X (ausschneiden) und STRG-V (einfügen).', - paste: 'Einfügen', - pasteNotification: 'Ihr Browser verhindert das Einfügen über diesen Weg. Zum einfügen drücken Sie %1.' -} ); diff --git a/admin/plugins/ckeditor/plugins/clipboard/lang/el.js b/admin/plugins/ckeditor/plugins/clipboard/lang/el.js deleted file mode 100644 index f49ee89..0000000 --- a/admin/plugins/ckeditor/plugins/clipboard/lang/el.js +++ /dev/null @@ -1,12 +0,0 @@ -/* -Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. -For licensing, see LICENSE.md or http://ckeditor.com/license -*/ -CKEDITOR.plugins.setLang( 'clipboard', 'el', { - copy: 'Αντιγραφή', - copyError: 'Οι ρυθμίσεις ασφαλείας του περιηγητή σας δεν επιτρέπουν την επιλεγμένη εργασία αντιγραφής. Παρακαλώ χρησιμοποιείστε το πληκτρολόγιο (Ctrl/Cmd+C).', - cut: 'Αποκοπή', - cutError: 'Οι ρυθμίσεις ασφαλείας του περιηγητή σας δεν επιτρέπουν την επιλεγμένη εργασία αποκοπής. Παρακαλώ χρησιμοποιείστε το πληκτρολόγιο (Ctrl/Cmd+X).', - paste: 'Επικόλληση', - pasteNotification: 'Ο περιηγητής σας δεν σας επιτρέπει να επικολλήσετε με αυτόν τον τρόπο. Πατήστε %1 για επικόλληση.' -} ); diff --git a/admin/plugins/ckeditor/plugins/clipboard/lang/en-au.js b/admin/plugins/ckeditor/plugins/clipboard/lang/en-au.js deleted file mode 100644 index 4212ec9..0000000 --- a/admin/plugins/ckeditor/plugins/clipboard/lang/en-au.js +++ /dev/null @@ -1,12 +0,0 @@ -/* -Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. -For licensing, see LICENSE.md or http://ckeditor.com/license -*/ -CKEDITOR.plugins.setLang( 'clipboard', 'en-au', { - copy: 'Copy', - copyError: 'Your browser security settings don\'t permit the editor to automatically execute copying operations. Please use the keyboard for that (Ctrl/Cmd+C).', - cut: 'Cut', - cutError: 'Your browser security settings don\'t permit the editor to automatically execute cutting operations. Please use the keyboard for that (Ctrl/Cmd+X).', - paste: 'Paste', - pasteNotification: 'Your browser doesn\'t allow you to paste this way. Press %1 to paste.' // MISSING -} ); diff --git a/admin/plugins/ckeditor/plugins/clipboard/lang/en-ca.js b/admin/plugins/ckeditor/plugins/clipboard/lang/en-ca.js deleted file mode 100644 index f47aae3..0000000 --- a/admin/plugins/ckeditor/plugins/clipboard/lang/en-ca.js +++ /dev/null @@ -1,12 +0,0 @@ -/* -Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. -For licensing, see LICENSE.md or http://ckeditor.com/license -*/ -CKEDITOR.plugins.setLang( 'clipboard', 'en-ca', { - copy: 'Copy', - copyError: 'Your browser security settings don\'t permit the editor to automatically execute copying operations. Please use the keyboard for that (Ctrl/Cmd+C).', - cut: 'Cut', - cutError: 'Your browser security settings don\'t permit the editor to automatically execute cutting operations. Please use the keyboard for that (Ctrl/Cmd+X).', - paste: 'Paste', - pasteNotification: 'Your browser doesn\'t allow you to paste this way. Press %1 to paste.' // MISSING -} ); diff --git a/admin/plugins/ckeditor/plugins/clipboard/lang/en-gb.js b/admin/plugins/ckeditor/plugins/clipboard/lang/en-gb.js deleted file mode 100644 index 958a070..0000000 --- a/admin/plugins/ckeditor/plugins/clipboard/lang/en-gb.js +++ /dev/null @@ -1,12 +0,0 @@ -/* -Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. -For licensing, see LICENSE.md or http://ckeditor.com/license -*/ -CKEDITOR.plugins.setLang( 'clipboard', 'en-gb', { - copy: 'Copy', - copyError: 'Your browser security settings don\'t permit the editor to automatically execute copying operations. Please use the keyboard for that (Ctrl/Cmd+C).', - cut: 'Cut', - cutError: 'Your browser security settings don\'t permit the editor to automatically execute cutting operations. Please use the keyboard for that (Ctrl/Cmd+X).', - paste: 'Paste', - pasteNotification: 'Your browser doesn\'t allow you to paste this way. Press %1 to paste.' // MISSING -} ); diff --git a/admin/plugins/ckeditor/plugins/clipboard/lang/en.js b/admin/plugins/ckeditor/plugins/clipboard/lang/en.js deleted file mode 100644 index 9ea48a4..0000000 --- a/admin/plugins/ckeditor/plugins/clipboard/lang/en.js +++ /dev/null @@ -1,12 +0,0 @@ -/* -Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. -For licensing, see LICENSE.md or http://ckeditor.com/license -*/ -CKEDITOR.plugins.setLang( 'clipboard', 'en', { - copy: 'Copy', - copyError: 'Your browser security settings don\'t permit the editor to automatically execute copying operations. Please use the keyboard for that (Ctrl/Cmd+C).', - cut: 'Cut', - cutError: 'Your browser security settings don\'t permit the editor to automatically execute cutting operations. Please use the keyboard for that (Ctrl/Cmd+X).', - paste: 'Paste', - pasteNotification: 'Your browser doesn\'t allow you to paste this way. Press %1 to paste.' -} ); diff --git a/admin/plugins/ckeditor/plugins/clipboard/lang/eo.js b/admin/plugins/ckeditor/plugins/clipboard/lang/eo.js deleted file mode 100644 index 27c5108..0000000 --- a/admin/plugins/ckeditor/plugins/clipboard/lang/eo.js +++ /dev/null @@ -1,12 +0,0 @@ -/* -Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. -For licensing, see LICENSE.md or http://ckeditor.com/license -*/ -CKEDITOR.plugins.setLang( 'clipboard', 'eo', { - copy: 'Kopii', - copyError: 'La sekurecagordo de via TTT-legilo ne permesas, ke la redaktilo faras kopiajn operaciojn. Bonvolu uzi la klavaron por tio (Ctrl/Cmd-C).', - cut: 'Eltondi', - cutError: 'La sekurecagordo de via TTT-legilo ne permesas, ke la redaktilo faras eltondajn operaciojn. Bonvolu uzi la klavaron por tio (Ctrl/Cmd-X).', - paste: 'Interglui', - pasteNotification: 'Your browser doesn\'t allow you to paste this way. Press %1 to paste.' // MISSING -} ); diff --git a/admin/plugins/ckeditor/plugins/clipboard/lang/es-mx.js b/admin/plugins/ckeditor/plugins/clipboard/lang/es-mx.js deleted file mode 100644 index c8f6033..0000000 --- a/admin/plugins/ckeditor/plugins/clipboard/lang/es-mx.js +++ /dev/null @@ -1,12 +0,0 @@ -/* -Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. -For licensing, see LICENSE.md or http://ckeditor.com/license -*/ -CKEDITOR.plugins.setLang( 'clipboard', 'es-mx', { - copy: 'Copiar', - copyError: 'La configuración de seguridad de su navegador no permite al editor ejecutar automáticamente operaciones de copiado. Por favor, utilice el teclado para (Ctrl/Cmd+C).', - cut: 'Cortar', - cutError: 'La configuración de seguridad de su navegador no permite al editor ejecutar automáticamente operaciones de corte. Por favor, utilice el teclado para (Ctrl/Cmd+X).', - paste: 'Pegar', - pasteNotification: 'Tu navegador no permite pegar de esta manera. Presiona %1 para pegar.' -} ); diff --git a/admin/plugins/ckeditor/plugins/clipboard/lang/es.js b/admin/plugins/ckeditor/plugins/clipboard/lang/es.js deleted file mode 100644 index e2dbf4e..0000000 --- a/admin/plugins/ckeditor/plugins/clipboard/lang/es.js +++ /dev/null @@ -1,12 +0,0 @@ -/* -Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. -For licensing, see LICENSE.md or http://ckeditor.com/license -*/ -CKEDITOR.plugins.setLang( 'clipboard', 'es', { - copy: 'Copiar', - copyError: 'La configuración de seguridad de este navegador no permite la ejecución automática de operaciones de copiado.\r\nPor favor use el teclado (Ctrl/Cmd+C).', - cut: 'Cortar', - cutError: 'La configuración de seguridad de este navegador no permite la ejecución automática de operaciones de cortado.\r\nPor favor use el teclado (Ctrl/Cmd+X).', - paste: 'Pegar', - pasteNotification: 'Your browser doesn\'t allow you to paste this way. Press %1 to paste.' // MISSING -} ); diff --git a/admin/plugins/ckeditor/plugins/clipboard/lang/et.js b/admin/plugins/ckeditor/plugins/clipboard/lang/et.js deleted file mode 100644 index 242a7cd..0000000 --- a/admin/plugins/ckeditor/plugins/clipboard/lang/et.js +++ /dev/null @@ -1,12 +0,0 @@ -/* -Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. -For licensing, see LICENSE.md or http://ckeditor.com/license -*/ -CKEDITOR.plugins.setLang( 'clipboard', 'et', { - copy: 'Kopeeri', - copyError: 'Sinu veebisirvija turvaseaded ei luba redaktoril automaatselt kopeerida. Palun kasutage selleks klaviatuuri klahvikombinatsiooni (Ctrl/Cmd+C).', - cut: 'Lõika', - cutError: 'Sinu veebisirvija turvaseaded ei luba redaktoril automaatselt lõigata. Palun kasutage selleks klaviatuuri klahvikombinatsiooni (Ctrl/Cmd+X).', - paste: 'Aseta', - pasteNotification: 'Your browser doesn\'t allow you to paste this way. Press %1 to paste.' // MISSING -} ); diff --git a/admin/plugins/ckeditor/plugins/clipboard/lang/eu.js b/admin/plugins/ckeditor/plugins/clipboard/lang/eu.js deleted file mode 100644 index 1e233af..0000000 --- a/admin/plugins/ckeditor/plugins/clipboard/lang/eu.js +++ /dev/null @@ -1,12 +0,0 @@ -/* -Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. -For licensing, see LICENSE.md or http://ckeditor.com/license -*/ -CKEDITOR.plugins.setLang( 'clipboard', 'eu', { - copy: 'Kopiatu', - copyError: 'Zure web nabigatzailearen segurtasun ezarpenek ez dute baimentzen testuak automatikoki kopiatzea. Mesedez teklatua erabil ezazu (Ctrl/Cmd+C).', - cut: 'Ebaki', - cutError: 'Zure web nabigatzailearen segurtasun ezarpenek ez dute baimentzen testuak automatikoki moztea. Mesedez teklatua erabil ezazu (Ctrl/Cmd+X).', - paste: 'Itsatsi', - pasteNotification: 'Your browser doesn\'t allow you to paste this way. Press %1 to paste.' // MISSING -} ); diff --git a/admin/plugins/ckeditor/plugins/clipboard/lang/fa.js b/admin/plugins/ckeditor/plugins/clipboard/lang/fa.js deleted file mode 100644 index e0e01c3..0000000 --- a/admin/plugins/ckeditor/plugins/clipboard/lang/fa.js +++ /dev/null @@ -1,12 +0,0 @@ -/* -Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. -For licensing, see LICENSE.md or http://ckeditor.com/license -*/ -CKEDITOR.plugins.setLang( 'clipboard', 'fa', { - copy: 'رونوشت', - copyError: 'تنظیمات امنیتی مرورگر شما اجازه نمیدهد که ویرایشگر به طور خودکار عملکردهای کپی کردن را انجام دهد. لطفا با دکمههای صفحه کلید این کار را انجام دهید (Ctrl/Cmd+C).', - cut: 'برش', - cutError: 'تنظیمات امنیتی مرورگر شما اجازه نمیدهد که ویرایشگر به طور خودکار عملکردهای برش را انجام دهد. لطفا با دکمههای صفحه کلید این کار را انجام دهید (Ctrl/Cmd+X).', - paste: 'چسباندن', - pasteNotification: 'Your browser doesn\'t allow you to paste this way. Press %1 to paste.' // MISSING -} ); diff --git a/admin/plugins/ckeditor/plugins/clipboard/lang/fi.js b/admin/plugins/ckeditor/plugins/clipboard/lang/fi.js deleted file mode 100644 index ba0fed2..0000000 --- a/admin/plugins/ckeditor/plugins/clipboard/lang/fi.js +++ /dev/null @@ -1,12 +0,0 @@ -/* -Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. -For licensing, see LICENSE.md or http://ckeditor.com/license -*/ -CKEDITOR.plugins.setLang( 'clipboard', 'fi', { - copy: 'Kopioi', - copyError: 'Selaimesi turva-asetukset eivät salli editorin toteuttaa kopioimista. Käytä näppäimistöä kopioimiseen (Ctrl+C).', - cut: 'Leikkaa', - cutError: 'Selaimesi turva-asetukset eivät salli editorin toteuttaa leikkaamista. Käytä näppäimistöä leikkaamiseen (Ctrl+X).', - paste: 'Liitä', - pasteNotification: 'Your browser doesn\'t allow you to paste this way. Press %1 to paste.' // MISSING -} ); diff --git a/admin/plugins/ckeditor/plugins/clipboard/lang/fo.js b/admin/plugins/ckeditor/plugins/clipboard/lang/fo.js deleted file mode 100644 index 9c4408e..0000000 --- a/admin/plugins/ckeditor/plugins/clipboard/lang/fo.js +++ /dev/null @@ -1,12 +0,0 @@ -/* -Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. -For licensing, see LICENSE.md or http://ckeditor.com/license -*/ -CKEDITOR.plugins.setLang( 'clipboard', 'fo', { - copy: 'Avrita', - copyError: 'Trygdaruppseting alnótskagans forðar tekstviðgeranum í at avrita tekstin. Vinarliga nýt knappaborðið til at avrita tekstin (Ctrl/Cmd+C).', - cut: 'Kvett', - cutError: 'Trygdaruppseting alnótskagans forðar tekstviðgeranum í at kvetta tekstin. Vinarliga nýt knappaborðið til at kvetta tekstin (Ctrl/Cmd+X).', - paste: 'Innrita', - pasteNotification: 'Your browser doesn\'t allow you to paste this way. Press %1 to paste.' // MISSING -} ); diff --git a/admin/plugins/ckeditor/plugins/clipboard/lang/fr-ca.js b/admin/plugins/ckeditor/plugins/clipboard/lang/fr-ca.js deleted file mode 100644 index 0f77bdb..0000000 --- a/admin/plugins/ckeditor/plugins/clipboard/lang/fr-ca.js +++ /dev/null @@ -1,12 +0,0 @@ -/* -Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. -For licensing, see LICENSE.md or http://ckeditor.com/license -*/ -CKEDITOR.plugins.setLang( 'clipboard', 'fr-ca', { - copy: 'Copier', - copyError: 'Les paramètres de sécurité de votre navigateur empêchent l\'éditeur de copier automatiquement vos données. Veuillez utiliser les équivalents claviers (Ctrl/Cmd+C).', - cut: 'Couper', - cutError: 'Les paramètres de sécurité de votre navigateur empêchent l\'éditeur de couper automatiquement vos données. Veuillez utiliser les équivalents claviers (Ctrl/Cmd+X).', - paste: 'Coller', - pasteNotification: 'Your browser doesn\'t allow you to paste this way. Press %1 to paste.' // MISSING -} ); diff --git a/admin/plugins/ckeditor/plugins/clipboard/lang/fr.js b/admin/plugins/ckeditor/plugins/clipboard/lang/fr.js deleted file mode 100644 index 49d58dc..0000000 --- a/admin/plugins/ckeditor/plugins/clipboard/lang/fr.js +++ /dev/null @@ -1,12 +0,0 @@ -/* -Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. -For licensing, see LICENSE.md or http://ckeditor.com/license -*/ -CKEDITOR.plugins.setLang( 'clipboard', 'fr', { - copy: 'Copier', - copyError: 'Les paramètres de sécurité de votre navigateur n\'autorisent pas l\'éditeur à exécuter automatiquement l\'opération « Copier ». Veuillez utiliser le raccourci clavier à cet effet (Ctrl/Cmd+C).', - cut: 'Couper', - cutError: 'Les paramètres de sécurité de votre navigateur n\'autorisent pas l\'éditeur à exécuter automatiquement l\'opération « Couper ». Veuillez utiliser le raccourci clavier à cet effet (Ctrl/Cmd+X).', - paste: 'Coller', - pasteNotification: 'Your browser doesn\'t allow you to paste this way. Press %1 to paste.' // MISSING -} ); diff --git a/admin/plugins/ckeditor/plugins/clipboard/lang/gl.js b/admin/plugins/ckeditor/plugins/clipboard/lang/gl.js deleted file mode 100644 index 9b9b5a4..0000000 --- a/admin/plugins/ckeditor/plugins/clipboard/lang/gl.js +++ /dev/null @@ -1,12 +0,0 @@ -/* -Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. -For licensing, see LICENSE.md or http://ckeditor.com/license -*/ -CKEDITOR.plugins.setLang( 'clipboard', 'gl', { - copy: 'Copiar', - copyError: 'Os axustes de seguranza do seu navegador non permiten que o editor realice automaticamente as tarefas de copia. Use o teclado para iso (Ctrl/Cmd+C).', - cut: 'Cortar', - cutError: 'Os axustes de seguranza do seu navegador non permiten que o editor realice automaticamente as tarefas de corte. Use o teclado para iso (Ctrl/Cmd+X).', - paste: 'Pegar', - pasteNotification: 'O seu navegador non permite pegar deste xeito. Prema %1 para pegar.' -} ); diff --git a/admin/plugins/ckeditor/plugins/clipboard/lang/gu.js b/admin/plugins/ckeditor/plugins/clipboard/lang/gu.js deleted file mode 100644 index 9f05c7b..0000000 --- a/admin/plugins/ckeditor/plugins/clipboard/lang/gu.js +++ /dev/null @@ -1,12 +0,0 @@ -/* -Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. -For licensing, see LICENSE.md or http://ckeditor.com/license -*/ -CKEDITOR.plugins.setLang( 'clipboard', 'gu', { - copy: 'નકલ', - copyError: 'તમારા બ્રાઉઝર ની સુરક્ષિત સેટિંગસ કોપી કરવાની પરવાનગી નથી આપતી. (Ctrl/Cmd+C) का प्रयोग करें।', - cut: 'કાપવું', - cutError: 'તમારા બ્રાઉઝર ની સુરક્ષિત સેટિંગસ કટ કરવાની પરવાનગી નથી આપતી. (Ctrl/Cmd+X) નો ઉપયોગ કરો.', - paste: 'પેસ્ટ', - pasteNotification: 'Your browser doesn\'t allow you to paste this way. Press %1 to paste.' // MISSING -} ); diff --git a/admin/plugins/ckeditor/plugins/clipboard/lang/he.js b/admin/plugins/ckeditor/plugins/clipboard/lang/he.js deleted file mode 100644 index 35b45d0..0000000 --- a/admin/plugins/ckeditor/plugins/clipboard/lang/he.js +++ /dev/null @@ -1,12 +0,0 @@ -/* -Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. -For licensing, see LICENSE.md or http://ckeditor.com/license -*/ -CKEDITOR.plugins.setLang( 'clipboard', 'he', { - copy: 'העתקה', - copyError: 'הגדרות האבטחה בדפדפן שלך לא מאפשרות לעורך לבצע פעולות העתקה אוטומטיות. יש להשתמש במקלדת לשם כך (Ctrl/Cmd+C).', - cut: 'גזירה', - cutError: 'הגדרות האבטחה בדפדפן שלך לא מאפשרות לעורך לבצע פעולות גזירה אוטומטיות. יש להשתמש במקלדת לשם כך (Ctrl/Cmd+X).', - paste: 'הדבקה', - pasteNotification: 'Your browser doesn\'t allow you to paste this way. Press %1 to paste.' // MISSING -} ); diff --git a/admin/plugins/ckeditor/plugins/clipboard/lang/hi.js b/admin/plugins/ckeditor/plugins/clipboard/lang/hi.js deleted file mode 100644 index 95ff3cf..0000000 --- a/admin/plugins/ckeditor/plugins/clipboard/lang/hi.js +++ /dev/null @@ -1,12 +0,0 @@ -/* -Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. -For licensing, see LICENSE.md or http://ckeditor.com/license -*/ -CKEDITOR.plugins.setLang( 'clipboard', 'hi', { - copy: 'कॉपी', - copyError: 'आपके ब्राआउज़र की सुरक्षा सॅटिन्ग्स ने कॉपी करने की अनुमति नहीं प्रदान की है। (Ctrl/Cmd+C) का प्रयोग करें।', - cut: 'कट', - cutError: 'आपके ब्राउज़र की सुरक्षा सॅटिन्ग्स ने कट करने की अनुमति नहीं प्रदान की है। (Ctrl/Cmd+X) का प्रयोग करें।', - paste: 'पेस्ट', - pasteNotification: 'Your browser doesn\'t allow you to paste this way. Press %1 to paste.' // MISSING -} ); diff --git a/admin/plugins/ckeditor/plugins/clipboard/lang/hr.js b/admin/plugins/ckeditor/plugins/clipboard/lang/hr.js deleted file mode 100644 index 9f45289..0000000 --- a/admin/plugins/ckeditor/plugins/clipboard/lang/hr.js +++ /dev/null @@ -1,12 +0,0 @@ -/* -Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. -For licensing, see LICENSE.md or http://ckeditor.com/license -*/ -CKEDITOR.plugins.setLang( 'clipboard', 'hr', { - copy: 'Kopiraj', - copyError: 'Sigurnosne postavke Vašeg pretraživača ne dozvoljavaju operacije automatskog kopiranja. Molimo koristite kraticu na tipkovnici (Ctrl/Cmd+C).', - cut: 'Izreži', - cutError: 'Sigurnosne postavke Vašeg pretraživača ne dozvoljavaju operacije automatskog izrezivanja. Molimo koristite kraticu na tipkovnici (Ctrl/Cmd+X).', - paste: 'Zalijepi', - pasteNotification: 'Vaš preglednik Vam ne dozvoljava lijepljenje na ovaj način. Za lijepljenje, pritisnite %1.' -} ); diff --git a/admin/plugins/ckeditor/plugins/clipboard/lang/hu.js b/admin/plugins/ckeditor/plugins/clipboard/lang/hu.js deleted file mode 100644 index a5fa627..0000000 --- a/admin/plugins/ckeditor/plugins/clipboard/lang/hu.js +++ /dev/null @@ -1,12 +0,0 @@ -/* -Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. -For licensing, see LICENSE.md or http://ckeditor.com/license -*/ -CKEDITOR.plugins.setLang( 'clipboard', 'hu', { - copy: 'Másolás', - copyError: 'A böngésző biztonsági beállításai nem engedélyezik a szerkesztőnek, hogy végrehajtsa a másolás műveletet. Használja az alábbi billentyűkombinációt (Ctrl/Cmd+X).', - cut: 'Kivágás', - cutError: 'A böngésző biztonsági beállításai nem engedélyezik a szerkesztőnek, hogy végrehajtsa a kivágás műveletet. Használja az alábbi billentyűkombinációt (Ctrl/Cmd+X).', - paste: 'Beillesztés', - pasteNotification: 'Your browser doesn\'t allow you to paste this way. Press %1 to paste.' // MISSING -} ); diff --git a/admin/plugins/ckeditor/plugins/clipboard/lang/id.js b/admin/plugins/ckeditor/plugins/clipboard/lang/id.js deleted file mode 100644 index 226e0ef..0000000 --- a/admin/plugins/ckeditor/plugins/clipboard/lang/id.js +++ /dev/null @@ -1,12 +0,0 @@ -/* -Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. -For licensing, see LICENSE.md or http://ckeditor.com/license -*/ -CKEDITOR.plugins.setLang( 'clipboard', 'id', { - copy: 'Salin', - copyError: 'Pengaturan keamanan peramban anda tidak mengizinkan editor untuk mengeksekusi operasi menyalin secara otomatis. Mohon gunakan papan tuts (Ctrl/Cmd+C)', - cut: 'Potong', - cutError: 'Your browser security settings don\'t permit the editor to automatically execute cutting operations. Please use the keyboard for that (Ctrl/Cmd+X).', // MISSING - paste: 'Tempel', - pasteNotification: 'Your browser doesn\'t allow you to paste this way. Press %1 to paste.' // MISSING -} ); diff --git a/admin/plugins/ckeditor/plugins/clipboard/lang/is.js b/admin/plugins/ckeditor/plugins/clipboard/lang/is.js deleted file mode 100644 index 7daa195..0000000 --- a/admin/plugins/ckeditor/plugins/clipboard/lang/is.js +++ /dev/null @@ -1,12 +0,0 @@ -/* -Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. -For licensing, see LICENSE.md or http://ckeditor.com/license -*/ -CKEDITOR.plugins.setLang( 'clipboard', 'is', { - copy: 'Afrita', - copyError: 'Öryggisstillingar vafrans þíns leyfa ekki afritun texta með músaraðgerð. Notaðu lyklaborðið í afrita (Ctrl/Cmd+C).', - cut: 'Klippa', - cutError: 'Öryggisstillingar vafrans þíns leyfa ekki klippingu texta með músaraðgerð. Notaðu lyklaborðið í klippa (Ctrl/Cmd+X).', - paste: 'Líma', - pasteNotification: 'Your browser doesn\'t allow you to paste this way. Press %1 to paste.' // MISSING -} ); diff --git a/admin/plugins/ckeditor/plugins/clipboard/lang/it.js b/admin/plugins/ckeditor/plugins/clipboard/lang/it.js deleted file mode 100644 index f8fde39..0000000 --- a/admin/plugins/ckeditor/plugins/clipboard/lang/it.js +++ /dev/null @@ -1,12 +0,0 @@ -/* -Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. -For licensing, see LICENSE.md or http://ckeditor.com/license -*/ -CKEDITOR.plugins.setLang( 'clipboard', 'it', { - copy: 'Copia', - copyError: 'Le impostazioni di sicurezza del browser non permettono di copiare automaticamente il testo. Usa la tastiera (Ctrl/Cmd+C).', - cut: 'Taglia', - cutError: 'Le impostazioni di sicurezza del browser non permettono di tagliare automaticamente il testo. Usa la tastiera (Ctrl/Cmd+X).', - paste: 'Incolla', - pasteNotification: 'Il browser non permette di incollare in questo modo. Premere %1 per incollare.' -} ); diff --git a/admin/plugins/ckeditor/plugins/clipboard/lang/ja.js b/admin/plugins/ckeditor/plugins/clipboard/lang/ja.js deleted file mode 100644 index a2a0845..0000000 --- a/admin/plugins/ckeditor/plugins/clipboard/lang/ja.js +++ /dev/null @@ -1,12 +0,0 @@ -/* -Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. -For licensing, see LICENSE.md or http://ckeditor.com/license -*/ -CKEDITOR.plugins.setLang( 'clipboard', 'ja', { - copy: 'コピー', - copyError: 'ブラウザーのセキュリティ設定によりエディタのコピー操作を自動で実行することができません。実行するには手動でキーボードの(Ctrl/Cmd+C)を使用してください。', - cut: '切り取り', - cutError: 'ブラウザーのセキュリティ設定によりエディタの切り取り操作を自動で実行することができません。実行するには手動でキーボードの(Ctrl/Cmd+X)を使用してください。', - paste: '貼り付け', - pasteNotification: 'Your browser doesn\'t allow you to paste this way. Press %1 to paste.' // MISSING -} ); diff --git a/admin/plugins/ckeditor/plugins/clipboard/lang/ka.js b/admin/plugins/ckeditor/plugins/clipboard/lang/ka.js deleted file mode 100644 index d96557c..0000000 --- a/admin/plugins/ckeditor/plugins/clipboard/lang/ka.js +++ /dev/null @@ -1,12 +0,0 @@ -/* -Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. -For licensing, see LICENSE.md or http://ckeditor.com/license -*/ -CKEDITOR.plugins.setLang( 'clipboard', 'ka', { - copy: 'ასლი', - copyError: 'თქვენი ბროუზერის უსაფრთხოების პარამეტრები არ იძლევა ასლის ოპერაციის ავტომატურად განხორციელების საშუალებას. გამოიყენეთ კლავიატურა ამისთვის (Ctrl/Cmd+C).', - cut: 'ამოჭრა', - cutError: 'თქვენი ბროუზერის უსაფრთხოების პარამეტრები არ იძლევა ამოჭრის ოპერაციის ავტომატურად განხორციელების საშუალებას. გამოიყენეთ კლავიატურა ამისთვის (Ctrl/Cmd+X).', - paste: 'ჩასმა', - pasteNotification: 'Your browser doesn\'t allow you to paste this way. Press %1 to paste.' // MISSING -} ); diff --git a/admin/plugins/ckeditor/plugins/clipboard/lang/km.js b/admin/plugins/ckeditor/plugins/clipboard/lang/km.js deleted file mode 100644 index 5ce57f9..0000000 --- a/admin/plugins/ckeditor/plugins/clipboard/lang/km.js +++ /dev/null @@ -1,12 +0,0 @@ -/* -Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. -For licensing, see LICENSE.md or http://ckeditor.com/license -*/ -CKEDITOR.plugins.setLang( 'clipboard', 'km', { - copy: 'ចម្លង', - copyError: 'ការកំណត់សុវត្ថភាពរបស់កម្មវិធីរុករករបស់លោកអ្នក នេះ​មិនអាចធ្វើកម្មវិធីតាក់តែងអត្ថបទ ចំលងអត្ថបទយកដោយស្វ័យប្រវត្តបានឡើយ ។ សូមប្រើប្រាស់បន្សំ ឃីដូចនេះ (Ctrl/Cmd+C)។', - cut: 'កាត់យក', - cutError: 'ការកំណត់សុវត្ថភាពរបស់កម្មវិធីរុករករបស់លោកអ្នក នេះ​មិនអាចធ្វើកម្មវិធីតាក់តែងអត្ថបទ កាត់អត្ថបទយកដោយស្វ័យប្រវត្តបានឡើយ ។ សូមប្រើប្រាស់បន្សំ ឃីដូចនេះ (Ctrl/Cmd+X) ។', - paste: 'បិទ​ភ្ជាប់', - pasteNotification: 'Your browser doesn\'t allow you to paste this way. Press %1 to paste.' // MISSING -} ); diff --git a/admin/plugins/ckeditor/plugins/clipboard/lang/ko.js b/admin/plugins/ckeditor/plugins/clipboard/lang/ko.js deleted file mode 100644 index fff7d11..0000000 --- a/admin/plugins/ckeditor/plugins/clipboard/lang/ko.js +++ /dev/null @@ -1,12 +0,0 @@ -/* -Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. -For licensing, see LICENSE.md or http://ckeditor.com/license -*/ -CKEDITOR.plugins.setLang( 'clipboard', 'ko', { - copy: '복사', - copyError: '브라우저의 보안설정 때문에 복사할 수 없습니다. 키보드(Ctrl/Cmd+C)를 이용해서 복사하십시오.', - cut: '잘라내기', - cutError: '브라우저의 보안설정 때문에 잘라내기 기능을 실행할 수 없습니다. 키보드(Ctrl/Cmd+X)를 이용해서 잘라내기 하십시오', - paste: '붙여넣기', - pasteNotification: 'Your browser doesn\'t allow you to paste this way. Press %1 to paste.' // MISSING -} ); diff --git a/admin/plugins/ckeditor/plugins/clipboard/lang/ku.js b/admin/plugins/ckeditor/plugins/clipboard/lang/ku.js deleted file mode 100644 index 76942d5..0000000 --- a/admin/plugins/ckeditor/plugins/clipboard/lang/ku.js +++ /dev/null @@ -1,12 +0,0 @@ -/* -Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. -For licensing, see LICENSE.md or http://ckeditor.com/license -*/ -CKEDITOR.plugins.setLang( 'clipboard', 'ku', { - copy: 'لەبەرگرتنەوە', - copyError: 'پارێزی وێبگەڕەکەت ڕێگەنادات بەسەرنووسەکە لە لکاندنی دەقی خۆکارارنە. تکایە لەبری ئەمە ئەم فەرمانە بەکاربهێنە بەداگرتنی کلیلی (Ctrl/Cmd+C).', - cut: 'بڕین', - cutError: 'پارێزی وێبگەڕەکەت ڕێگەنادات بە سەرنووسەکە لەبڕینی خۆکارانە. تکایە لەبری ئەمە ئەم فەرمانە بەکاربهێنە بەداگرتنی کلیلی (Ctrl/Cmd+X).', - paste: 'لکاندن', - pasteNotification: 'Your browser doesn\'t allow you to paste this way. Press %1 to paste.' // MISSING -} ); diff --git a/admin/plugins/ckeditor/plugins/clipboard/lang/lt.js b/admin/plugins/ckeditor/plugins/clipboard/lang/lt.js deleted file mode 100644 index 37069ef..0000000 --- a/admin/plugins/ckeditor/plugins/clipboard/lang/lt.js +++ /dev/null @@ -1,12 +0,0 @@ -/* -Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. -For licensing, see LICENSE.md or http://ckeditor.com/license -*/ -CKEDITOR.plugins.setLang( 'clipboard', 'lt', { - copy: 'Kopijuoti', - copyError: 'Jūsų naršyklės saugumo nustatymai neleidžia redaktoriui automatiškai įvykdyti kopijavimo operacijų. Tam prašome naudoti klaviatūrą (Ctrl/Cmd+C).', - cut: 'Iškirpti', - cutError: 'Jūsų naršyklės saugumo nustatymai neleidžia redaktoriui automatiškai įvykdyti iškirpimo operacijų. Tam prašome naudoti klaviatūrą (Ctrl/Cmd+X).', - paste: 'Įdėti', - pasteNotification: 'Your browser doesn\'t allow you to paste this way. Press %1 to paste.' // MISSING -} ); diff --git a/admin/plugins/ckeditor/plugins/clipboard/lang/lv.js b/admin/plugins/ckeditor/plugins/clipboard/lang/lv.js deleted file mode 100644 index bc21dd6..0000000 --- a/admin/plugins/ckeditor/plugins/clipboard/lang/lv.js +++ /dev/null @@ -1,12 +0,0 @@ -/* -Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. -For licensing, see LICENSE.md or http://ckeditor.com/license -*/ -CKEDITOR.plugins.setLang( 'clipboard', 'lv', { - copy: 'Kopēt', - copyError: 'Jūsu pārlūkprogrammas drošības iestatījumi nepieļauj redaktoram automātiski veikt kopēšanas darbību. Lūdzu, izmantojiet (Ctrl/Cmd+C), lai veiktu šo darbību.', - cut: 'Izgriezt', - cutError: 'Jūsu pārlūkprogrammas drošības iestatījumi nepieļauj redaktoram automātiski veikt izgriezšanas darbību. Lūdzu, izmantojiet (Ctrl/Cmd+X), lai veiktu šo darbību.', - paste: 'Ielīmēt', - pasteNotification: 'Your browser doesn\'t allow you to paste this way. Press %1 to paste.' // MISSING -} ); diff --git a/admin/plugins/ckeditor/plugins/clipboard/lang/mk.js b/admin/plugins/ckeditor/plugins/clipboard/lang/mk.js deleted file mode 100644 index 626d6be..0000000 --- a/admin/plugins/ckeditor/plugins/clipboard/lang/mk.js +++ /dev/null @@ -1,12 +0,0 @@ -/* -Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. -For licensing, see LICENSE.md or http://ckeditor.com/license -*/ -CKEDITOR.plugins.setLang( 'clipboard', 'mk', { - copy: 'Копирај (Copy)', - copyError: 'Опциите за безбедност на вашиот прелистувач не дозволуваат уредувачот автоматски да изврши копирање. Ве молиме употребете ја тастатурата. (Ctrl/Cmd+C)', - cut: 'Исечи (Cut)', - cutError: 'Опциите за безбедност на вашиот прелистувач не дозволуваат уредувачот автоматски да изврши сечење. Ве молиме употребете ја тастатурата. (Ctrl/Cmd+C)', - paste: 'Залепи (Paste)', - pasteNotification: 'Your browser doesn\'t allow you to paste this way. Press %1 to paste.' // MISSING -} ); diff --git a/admin/plugins/ckeditor/plugins/clipboard/lang/mn.js b/admin/plugins/ckeditor/plugins/clipboard/lang/mn.js deleted file mode 100644 index cc7fe92..0000000 --- a/admin/plugins/ckeditor/plugins/clipboard/lang/mn.js +++ /dev/null @@ -1,12 +0,0 @@ -/* -Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. -For licensing, see LICENSE.md or http://ckeditor.com/license -*/ -CKEDITOR.plugins.setLang( 'clipboard', 'mn', { - copy: 'Хуулах', - copyError: 'Таны browser-ын хамгаалалтын тохиргоо editor-д автоматаар хуулах үйлдэлийг зөвшөөрөхгүй байна. (Ctrl/Cmd+C) товчны хослолыг ашиглана уу.', - cut: 'Хайчлах', - cutError: 'Таны browser-ын хамгаалалтын тохиргоо editor-д автоматаар хайчлах үйлдэлийг зөвшөөрөхгүй байна. (Ctrl/Cmd+X) товчны хослолыг ашиглана уу.', - paste: 'Буулгах', - pasteNotification: 'Your browser doesn\'t allow you to paste this way. Press %1 to paste.' // MISSING -} ); diff --git a/admin/plugins/ckeditor/plugins/clipboard/lang/ms.js b/admin/plugins/ckeditor/plugins/clipboard/lang/ms.js deleted file mode 100644 index 94faeb8..0000000 --- a/admin/plugins/ckeditor/plugins/clipboard/lang/ms.js +++ /dev/null @@ -1,12 +0,0 @@ -/* -Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. -For licensing, see LICENSE.md or http://ckeditor.com/license -*/ -CKEDITOR.plugins.setLang( 'clipboard', 'ms', { - copy: 'Salin', - copyError: 'Keselamatan perisian browser anda tidak membenarkan operasi salinan text/imej. Sila gunakan papan kekunci (Ctrl/Cmd+C).', - cut: 'Potong', - cutError: 'Keselamatan perisian browser anda tidak membenarkan operasi suntingan text/imej. Sila gunakan papan kekunci (Ctrl/Cmd+X).', - paste: 'Tampal', - pasteNotification: 'Your browser doesn\'t allow you to paste this way. Press %1 to paste.' // MISSING -} ); diff --git a/admin/plugins/ckeditor/plugins/clipboard/lang/nb.js b/admin/plugins/ckeditor/plugins/clipboard/lang/nb.js deleted file mode 100644 index 88d6e29..0000000 --- a/admin/plugins/ckeditor/plugins/clipboard/lang/nb.js +++ /dev/null @@ -1,12 +0,0 @@ -/* -Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. -For licensing, see LICENSE.md or http://ckeditor.com/license -*/ -CKEDITOR.plugins.setLang( 'clipboard', 'nb', { - copy: 'Kopier', - copyError: 'Din nettlesers sikkerhetsinstillinger tillater ikke automatisk kopiering av tekst. Vennligst bruk tastatursnarveien (Ctrl/Cmd+C).', - cut: 'Klipp ut', - cutError: 'Din nettlesers sikkerhetsinstillinger tillater ikke automatisk utklipping av tekst. Vennligst bruk tastatursnarveien (Ctrl/Cmd+X).', - paste: 'Lim inn', - pasteNotification: 'Nettleseren din lar deg ikke lime inn på denne måten. Trykk %1 for å lime inn.' -} ); diff --git a/admin/plugins/ckeditor/plugins/clipboard/lang/nl.js b/admin/plugins/ckeditor/plugins/clipboard/lang/nl.js deleted file mode 100644 index c365e0d..0000000 --- a/admin/plugins/ckeditor/plugins/clipboard/lang/nl.js +++ /dev/null @@ -1,12 +0,0 @@ -/* -Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. -For licensing, see LICENSE.md or http://ckeditor.com/license -*/ -CKEDITOR.plugins.setLang( 'clipboard', 'nl', { - copy: 'Kopiëren', - copyError: 'De beveiligingsinstelling van de browser verhinderen het automatisch kopiëren. Gebruik de sneltoets Ctrl/Cmd+C van het toetsenbord.', - cut: 'Knippen', - cutError: 'De beveiligingsinstelling van de browser verhinderen het automatisch knippen. Gebruik de sneltoets Ctrl/Cmd+X van het toetsenbord.', - paste: 'Plakken', - pasteNotification: 'Your browser doesn\'t allow you to paste this way. Press %1 to paste.' // MISSING -} ); diff --git a/admin/plugins/ckeditor/plugins/clipboard/lang/no.js b/admin/plugins/ckeditor/plugins/clipboard/lang/no.js deleted file mode 100644 index bd5bb36..0000000 --- a/admin/plugins/ckeditor/plugins/clipboard/lang/no.js +++ /dev/null @@ -1,12 +0,0 @@ -/* -Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. -For licensing, see LICENSE.md or http://ckeditor.com/license -*/ -CKEDITOR.plugins.setLang( 'clipboard', 'no', { - copy: 'Kopier', - copyError: 'Din nettlesers sikkerhetsinstillinger tillater ikke automatisk kopiering av tekst. Vennligst bruk snarveien (Ctrl/Cmd+C).', - cut: 'Klipp ut', - cutError: 'Din nettlesers sikkerhetsinstillinger tillater ikke automatisk utklipping av tekst. Vennligst bruk snarveien (Ctrl/Cmd+X).', - paste: 'Lim inn', - pasteNotification: 'Your browser doesn\'t allow you to paste this way. Press %1 to paste.' // MISSING -} ); diff --git a/admin/plugins/ckeditor/plugins/clipboard/lang/oc.js b/admin/plugins/ckeditor/plugins/clipboard/lang/oc.js deleted file mode 100644 index 1eb36f9..0000000 --- a/admin/plugins/ckeditor/plugins/clipboard/lang/oc.js +++ /dev/null @@ -1,12 +0,0 @@ -/* -Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. -For licensing, see LICENSE.md or http://ckeditor.com/license -*/ -CKEDITOR.plugins.setLang( 'clipboard', 'oc', { - copy: 'Copiar', - copyError: 'Los paramètres de seguretat de vòstre navigador autorizan pas l\'editor a executar automaticament l\'operacion « Copiar ». Utilizatz l\'acorchi de clavièr a aqueste efièit (Ctrl/Cmd+C).', - cut: 'Talhar', - cutError: 'Los paramètres de seguretat de vòstre navigador autorizan pas l\'editor a executar automaticament l\'operacion « Talhar ». Utilizatz l\'acorchi de clavièr a aqueste efièit (Ctrl/Cmd+X).', - paste: 'Pegar', - pasteNotification: 'Your browser doesn\'t allow you to paste this way. Press %1 to paste.' // MISSING -} ); diff --git a/admin/plugins/ckeditor/plugins/clipboard/lang/pl.js b/admin/plugins/ckeditor/plugins/clipboard/lang/pl.js deleted file mode 100644 index 27b24d6..0000000 --- a/admin/plugins/ckeditor/plugins/clipboard/lang/pl.js +++ /dev/null @@ -1,12 +0,0 @@ -/* -Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. -For licensing, see LICENSE.md or http://ckeditor.com/license -*/ -CKEDITOR.plugins.setLang( 'clipboard', 'pl', { - copy: 'Kopiuj', - copyError: 'Ustawienia bezpieczeństwa Twojej przeglądarki nie pozwalają na automatyczne kopiowanie tekstu. Użyj skrótu klawiszowego Ctrl/Cmd+C.', - cut: 'Wytnij', - cutError: 'Ustawienia bezpieczeństwa Twojej przeglądarki nie pozwalają na automatyczne wycinanie tekstu. Użyj skrótu klawiszowego Ctrl/Cmd+X.', - paste: 'Wklej', - pasteNotification: 'Twoja przeglądarka nie pozwala na wklejanie treści w ten sposób. Naciśnij %1 by wkleić tekst.' -} ); diff --git a/admin/plugins/ckeditor/plugins/clipboard/lang/pt-br.js b/admin/plugins/ckeditor/plugins/clipboard/lang/pt-br.js deleted file mode 100644 index 66d9021..0000000 --- a/admin/plugins/ckeditor/plugins/clipboard/lang/pt-br.js +++ /dev/null @@ -1,12 +0,0 @@ -/* -Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. -For licensing, see LICENSE.md or http://ckeditor.com/license -*/ -CKEDITOR.plugins.setLang( 'clipboard', 'pt-br', { - copy: 'Copiar', - copyError: 'As configurações de segurança do seu navegador não permitem que o editor execute operações de copiar automaticamente. Por favor, utilize o teclado para copiar (Ctrl/Cmd+C).', - cut: 'Recortar', - cutError: 'As configurações de segurança do seu navegador não permitem que o editor execute operações de recortar automaticamente. Por favor, utilize o teclado para recortar (Ctrl/Cmd+X).', - paste: 'Colar', - pasteNotification: 'Your browser doesn\'t allow you to paste this way. Press %1 to paste.' // MISSING -} ); diff --git a/admin/plugins/ckeditor/plugins/clipboard/lang/pt.js b/admin/plugins/ckeditor/plugins/clipboard/lang/pt.js deleted file mode 100644 index ac419df..0000000 --- a/admin/plugins/ckeditor/plugins/clipboard/lang/pt.js +++ /dev/null @@ -1,12 +0,0 @@ -/* -Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. -For licensing, see LICENSE.md or http://ckeditor.com/license -*/ -CKEDITOR.plugins.setLang( 'clipboard', 'pt', { - copy: 'Copiar', - copyError: 'A configuração de segurança do navegador não permite a execução automática de operações de copiar. Por favor use o teclado (Ctrl/Cmd+C).', - cut: 'Cortar', - cutError: 'A configuração de segurança do navegador não permite a execução automática de operações de cortar. Por favor use o teclado (Ctrl/Cmd+X).', - paste: 'Colar', - pasteNotification: 'Your browser doesn\'t allow you to paste this way. Press %1 to paste.' // MISSING -} ); diff --git a/admin/plugins/ckeditor/plugins/clipboard/lang/ro.js b/admin/plugins/ckeditor/plugins/clipboard/lang/ro.js deleted file mode 100644 index 0f7f745..0000000 --- a/admin/plugins/ckeditor/plugins/clipboard/lang/ro.js +++ /dev/null @@ -1,12 +0,0 @@ -/* -Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. -For licensing, see LICENSE.md or http://ckeditor.com/license -*/ -CKEDITOR.plugins.setLang( 'clipboard', 'ro', { - copy: 'Copiază', - copyError: 'Setările de securitate ale navigatorului (browser) pe care îl folosiţi nu permit editorului să execute automat operaţiunea de copiere. Vă rugăm folosiţi tastatura (Ctrl/Cmd+C).', - cut: 'Taie', - cutError: 'Setările de securitate ale navigatorului (browser) pe care îl folosiţi nu permit editorului să execute automat operaţiunea de tăiere. Vă rugăm folosiţi tastatura (Ctrl/Cmd+X).', - paste: 'Adaugă', - pasteNotification: 'Your browser doesn\'t allow you to paste this way. Press %1 to paste.' // MISSING -} ); diff --git a/admin/plugins/ckeditor/plugins/clipboard/lang/ru.js b/admin/plugins/ckeditor/plugins/clipboard/lang/ru.js deleted file mode 100644 index 0c3ddb5..0000000 --- a/admin/plugins/ckeditor/plugins/clipboard/lang/ru.js +++ /dev/null @@ -1,12 +0,0 @@ -/* -Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. -For licensing, see LICENSE.md or http://ckeditor.com/license -*/ -CKEDITOR.plugins.setLang( 'clipboard', 'ru', { - copy: 'Копировать', - copyError: 'Настройки безопасности вашего браузера не разрешают редактору выполнять операции по копированию текста. Пожалуйста, используйте для этого клавиатуру (Ctrl/Cmd+C).', - cut: 'Вырезать', - cutError: 'Настройки безопасности вашего браузера не разрешают редактору выполнять операции по вырезке текста. Пожалуйста, используйте для этого клавиатуру (Ctrl/Cmd+X).', - paste: 'Вставить', - pasteNotification: 'Ваш браузер не поддерживает данный метод вставки. Для вставки нажмите %1' -} ); diff --git a/admin/plugins/ckeditor/plugins/clipboard/lang/si.js b/admin/plugins/ckeditor/plugins/clipboard/lang/si.js deleted file mode 100644 index e20f484..0000000 --- a/admin/plugins/ckeditor/plugins/clipboard/lang/si.js +++ /dev/null @@ -1,12 +0,0 @@ -/* -Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. -For licensing, see LICENSE.md or http://ckeditor.com/license -*/ -CKEDITOR.plugins.setLang( 'clipboard', 'si', { - copy: 'පිටපත් කරන්න', - copyError: 'Your browser security settings don\'t permit the editor to automatically execute copying operations. Please use the keyboard for that (Ctrl/Cmd+C).', // MISSING - cut: 'කපාගන්න', - cutError: 'Your browser security settings don\'t permit the editor to automatically execute cutting operations. Please use the keyboard for that (Ctrl/Cmd+X).', // MISSING - paste: 'අලවන්න', - pasteNotification: 'Your browser doesn\'t allow you to paste this way. Press %1 to paste.' // MISSING -} ); diff --git a/admin/plugins/ckeditor/plugins/clipboard/lang/sk.js b/admin/plugins/ckeditor/plugins/clipboard/lang/sk.js deleted file mode 100644 index f9d165e..0000000 --- a/admin/plugins/ckeditor/plugins/clipboard/lang/sk.js +++ /dev/null @@ -1,12 +0,0 @@ -/* -Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. -For licensing, see LICENSE.md or http://ckeditor.com/license -*/ -CKEDITOR.plugins.setLang( 'clipboard', 'sk', { - copy: 'Kopírovať', - copyError: 'Bezpečnostné nastavenia vášho prehliadača nedovoľujú editoru automaticky spustiť operáciu kopírovania. Použite na to klávesnicu (Ctrl/Cmd+C).', - cut: 'Vystrihnúť', - cutError: 'Bezpečnostné nastavenia vášho prehliadača nedovoľujú editoru automaticky spustiť operáciu vystrihnutia. Použite na to klávesnicu (Ctrl/Cmd+X).', - paste: 'Vložiť', - pasteNotification: 'Váš prehliadač nepovoľuje prilepiť text takýmto spôsobom. Pre prilepenie stlačte %1.' -} ); diff --git a/admin/plugins/ckeditor/plugins/clipboard/lang/sl.js b/admin/plugins/ckeditor/plugins/clipboard/lang/sl.js deleted file mode 100644 index 20c820b..0000000 --- a/admin/plugins/ckeditor/plugins/clipboard/lang/sl.js +++ /dev/null @@ -1,12 +0,0 @@ -/* -Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. -For licensing, see LICENSE.md or http://ckeditor.com/license -*/ -CKEDITOR.plugins.setLang( 'clipboard', 'sl', { - copy: 'Kopiraj', - copyError: 'Varnostne nastavitve brskalnika ne dopuščajo samodejnega kopiranja. Uporabite kombinacijo tipk na tipkovnici (Ctrl/Cmd+C).', - cut: 'Izreži', - cutError: 'Varnostne nastavitve brskalnika ne dopuščajo samodejnega izrezovanja. Uporabite kombinacijo tipk na tipkovnici (Ctrl/Cmd+X).', - paste: 'Prilepi', - pasteNotification: 'Your browser doesn\'t allow you to paste this way. Press %1 to paste.' // MISSING -} ); diff --git a/admin/plugins/ckeditor/plugins/clipboard/lang/sq.js b/admin/plugins/ckeditor/plugins/clipboard/lang/sq.js deleted file mode 100644 index c5ca1f7..0000000 --- a/admin/plugins/ckeditor/plugins/clipboard/lang/sq.js +++ /dev/null @@ -1,12 +0,0 @@ -/* -Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. -For licensing, see LICENSE.md or http://ckeditor.com/license -*/ -CKEDITOR.plugins.setLang( 'clipboard', 'sq', { - copy: 'Kopjo', - copyError: 'Të dhënat e sigurisë së shfletuesit tuaj nuk lejojnë që redaktuesi automatikisht të kryej veprimin e kopjimit. Ju lutemi shfrytëzoni tastierën për këtë veprim (Ctrl/Cmd+C).', - cut: 'Preje', - cutError: 'Të dhënat e sigurisë së shfletuesit tuaj nuk lejojnë që redaktuesi automatikisht të kryej veprimin e prerjes. Ju lutemi shfrytëzoni tastierën për këtë veprim (Ctrl/Cmd+X).', - paste: 'Hidhe', - pasteNotification: 'Your browser doesn\'t allow you to paste this way. Press %1 to paste.' // MISSING -} ); diff --git a/admin/plugins/ckeditor/plugins/clipboard/lang/sr-latn.js b/admin/plugins/ckeditor/plugins/clipboard/lang/sr-latn.js deleted file mode 100644 index e205c76..0000000 --- a/admin/plugins/ckeditor/plugins/clipboard/lang/sr-latn.js +++ /dev/null @@ -1,12 +0,0 @@ -/* -Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. -For licensing, see LICENSE.md or http://ckeditor.com/license -*/ -CKEDITOR.plugins.setLang( 'clipboard', 'sr-latn', { - copy: 'Kopiraj', - copyError: 'Sigurnosna podešavanja Vašeg pretraživača ne dozvoljavaju operacije automatskog kopiranja teksta. Molimo Vas da koristite prečicu sa tastature (Ctrl/Cmd+C).', - cut: 'Iseci', - cutError: 'Sigurnosna podešavanja Vašeg pretraživača ne dozvoljavaju operacije automatskog isecanja teksta. Molimo Vas da koristite prečicu sa tastature (Ctrl/Cmd+X).', - paste: 'Zalepi', - pasteNotification: 'Your browser doesn\'t allow you to paste this way. Press %1 to paste.' // MISSING -} ); diff --git a/admin/plugins/ckeditor/plugins/clipboard/lang/sr.js b/admin/plugins/ckeditor/plugins/clipboard/lang/sr.js deleted file mode 100644 index 7544455..0000000 --- a/admin/plugins/ckeditor/plugins/clipboard/lang/sr.js +++ /dev/null @@ -1,12 +0,0 @@ -/* -Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. -For licensing, see LICENSE.md or http://ckeditor.com/license -*/ -CKEDITOR.plugins.setLang( 'clipboard', 'sr', { - copy: 'Копирај', - copyError: 'Сигурносна подешавања Вашег претраживача не дозвољавају операције аутоматског копирања текста. Молимо Вас да користите пречицу са тастатуре (Ctrl/Cmd+C).', - cut: 'Исеци', - cutError: 'Сигурносна подешавања Вашег претраживача не дозвољавају операције аутоматског исецања текста. Молимо Вас да користите пречицу са тастатуре (Ctrl/Cmd+X).', - paste: 'Залепи', - pasteNotification: 'Your browser doesn\'t allow you to paste this way. Press %1 to paste.' // MISSING -} ); diff --git a/admin/plugins/ckeditor/plugins/clipboard/lang/sv.js b/admin/plugins/ckeditor/plugins/clipboard/lang/sv.js deleted file mode 100644 index cbcbe4f..0000000 --- a/admin/plugins/ckeditor/plugins/clipboard/lang/sv.js +++ /dev/null @@ -1,12 +0,0 @@ -/* -Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. -For licensing, see LICENSE.md or http://ckeditor.com/license -*/ -CKEDITOR.plugins.setLang( 'clipboard', 'sv', { - copy: 'Kopiera', - copyError: 'Säkerhetsinställningar i din webbläsare tillåter inte åtgärden kopiera. Använd (Ctrl/Cmd+C) istället.', - cut: 'Klipp ut', - cutError: 'Säkerhetsinställningar i din webbläsare tillåter inte åtgärden klipp ut. Använd (Ctrl/Cmd+X) istället.', - paste: 'Klistra in', - pasteNotification: 'Din webbläsare tillåter dig inte att klistra in på detta vis. Tryck på %1 för att klistra in.' -} ); diff --git a/admin/plugins/ckeditor/plugins/clipboard/lang/th.js b/admin/plugins/ckeditor/plugins/clipboard/lang/th.js deleted file mode 100644 index 639fc19..0000000 --- a/admin/plugins/ckeditor/plugins/clipboard/lang/th.js +++ /dev/null @@ -1,12 +0,0 @@ -/* -Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. -For licensing, see LICENSE.md or http://ckeditor.com/license -*/ -CKEDITOR.plugins.setLang( 'clipboard', 'th', { - copy: 'สำเนา', - copyError: 'ไม่สามารถสำเนาข้อความที่เลือกไว้ได้เนื่องจากการกำหนดค่าระดับความปลอดภัย. กรุณาใช้ปุ่มลัดเพื่อวางข้อความแทน (กดปุ่ม Ctrl/Cmd และตัว C พร้อมกัน).', - cut: 'ตัด', - cutError: 'ไม่สามารถตัดข้อความที่เลือกไว้ได้เนื่องจากการกำหนดค่าระดับความปลอดภัย. กรุณาใช้ปุ่มลัดเพื่อวางข้อความแทน (กดปุ่ม Ctrl/Cmd และตัว X พร้อมกัน).', - paste: 'วาง', - pasteNotification: 'Your browser doesn\'t allow you to paste this way. Press %1 to paste.' // MISSING -} ); diff --git a/admin/plugins/ckeditor/plugins/clipboard/lang/tr.js b/admin/plugins/ckeditor/plugins/clipboard/lang/tr.js deleted file mode 100644 index c0f91c6..0000000 --- a/admin/plugins/ckeditor/plugins/clipboard/lang/tr.js +++ /dev/null @@ -1,12 +0,0 @@ -/* -Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. -For licensing, see LICENSE.md or http://ckeditor.com/license -*/ -CKEDITOR.plugins.setLang( 'clipboard', 'tr', { - copy: 'Kopyala', - copyError: 'Gezgin yazılımınızın güvenlik ayarları düzenleyicinin otomatik kopyalama işlemine izin vermiyor. İşlem için (Ctrl/Cmd+C) tuşlarını kullanın.', - cut: 'Kes', - cutError: 'Gezgin yazılımınızın güvenlik ayarları düzenleyicinin otomatik kesme işlemine izin vermiyor. İşlem için (Ctrl/Cmd+X) tuşlarını kullanın.', - paste: 'Yapıştır', - pasteNotification: 'Your browser doesn\'t allow you to paste this way. Press %1 to paste.' // MISSING -} ); diff --git a/admin/plugins/ckeditor/plugins/clipboard/lang/tt.js b/admin/plugins/ckeditor/plugins/clipboard/lang/tt.js deleted file mode 100644 index 111bf7a..0000000 --- a/admin/plugins/ckeditor/plugins/clipboard/lang/tt.js +++ /dev/null @@ -1,12 +0,0 @@ -/* -Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. -For licensing, see LICENSE.md or http://ckeditor.com/license -*/ -CKEDITOR.plugins.setLang( 'clipboard', 'tt', { - copy: 'Күчермәләү', - copyError: 'Браузерыгызның иминлек үзлекләре автоматик рәвештә күчермәләү үтәүне тыя. Тиз төймәләрне (Ctrl/Cmd+C) кулланыгыз.', - cut: 'Кисеп алу', - cutError: 'Браузерыгызның иминлек үзлекләре автоматик рәвештә күчермәләү үтәүне тыя. Тиз төймәләрне (Ctrl/Cmd+C) кулланыгыз.', - paste: 'Өстәү', - pasteNotification: 'Your browser doesn\'t allow you to paste this way. Press %1 to paste.' // MISSING -} ); diff --git a/admin/plugins/ckeditor/plugins/clipboard/lang/ug.js b/admin/plugins/ckeditor/plugins/clipboard/lang/ug.js deleted file mode 100644 index 7b77ded..0000000 --- a/admin/plugins/ckeditor/plugins/clipboard/lang/ug.js +++ /dev/null @@ -1,12 +0,0 @@ -/* -Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. -For licensing, see LICENSE.md or http://ckeditor.com/license -*/ -CKEDITOR.plugins.setLang( 'clipboard', 'ug', { - copy: 'كۆچۈر', - copyError: 'تور كۆرگۈڭىزنىڭ بىخەتەرلىك تەڭشىكى تەھرىرلىگۈچنىڭ كۆچۈر مەشغۇلاتىنى ئۆزلۈكىدىن ئىجرا قىلىشىغا يول قويمايدۇ، ھەرپتاختا تېز كۇنۇپكا (Ctrl/Cmd+C) ئارقىلىق تاماملاڭ', - cut: 'كەس', - cutError: 'تور كۆرگۈڭىزنىڭ بىخەتەرلىك تەڭشىكى تەھرىرلىگۈچنىڭ كەس مەشغۇلاتىنى ئۆزلۈكىدىن ئىجرا قىلىشىغا يول قويمايدۇ، ھەرپتاختا تېز كۇنۇپكا (Ctrl/Cmd+X) ئارقىلىق تاماملاڭ', - paste: 'چاپلا', - pasteNotification: 'Your browser doesn\'t allow you to paste this way. Press %1 to paste.' // MISSING -} ); diff --git a/admin/plugins/ckeditor/plugins/clipboard/lang/uk.js b/admin/plugins/ckeditor/plugins/clipboard/lang/uk.js deleted file mode 100644 index a2737b4..0000000 --- a/admin/plugins/ckeditor/plugins/clipboard/lang/uk.js +++ /dev/null @@ -1,12 +0,0 @@ -/* -Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. -For licensing, see LICENSE.md or http://ckeditor.com/license -*/ -CKEDITOR.plugins.setLang( 'clipboard', 'uk', { - copy: 'Копіювати', - copyError: 'Налаштування безпеки Вашого браузера не дозволяють редактору автоматично виконувати операції копіювання. Будь ласка, використовуйте клавіатуру для цього (Ctrl/Cmd+C).', - cut: 'Вирізати', - cutError: 'Налаштування безпеки Вашого браузера не дозволяють редактору автоматично виконувати операції вирізування. Будь ласка, використовуйте клавіатуру для цього (Ctrl/Cmd+X)', - paste: 'Вставити', - pasteNotification: 'Your browser doesn\'t allow you to paste this way. Press %1 to paste.' // MISSING -} ); diff --git a/admin/plugins/ckeditor/plugins/clipboard/lang/vi.js b/admin/plugins/ckeditor/plugins/clipboard/lang/vi.js deleted file mode 100644 index a1902eb..0000000 --- a/admin/plugins/ckeditor/plugins/clipboard/lang/vi.js +++ /dev/null @@ -1,12 +0,0 @@ -/* -Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. -For licensing, see LICENSE.md or http://ckeditor.com/license -*/ -CKEDITOR.plugins.setLang( 'clipboard', 'vi', { - copy: 'Sao chép', - copyError: 'Các thiết lập bảo mật của trình duyệt không cho phép trình biên tập tự động thực thi lệnh sao chép. Hãy sử dụng bàn phím cho lệnh này (Ctrl/Cmd+C).', - cut: 'Cắt', - cutError: 'Các thiết lập bảo mật của trình duyệt không cho phép trình biên tập tự động thực thi lệnh cắt. Hãy sử dụng bàn phím cho lệnh này (Ctrl/Cmd+X).', - paste: 'Dán', - pasteNotification: 'Your browser doesn\'t allow you to paste this way. Press %1 to paste.' // MISSING -} ); diff --git a/admin/plugins/ckeditor/plugins/clipboard/lang/zh-cn.js b/admin/plugins/ckeditor/plugins/clipboard/lang/zh-cn.js deleted file mode 100644 index 432ad45..0000000 --- a/admin/plugins/ckeditor/plugins/clipboard/lang/zh-cn.js +++ /dev/null @@ -1,12 +0,0 @@ -/* -Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. -For licensing, see LICENSE.md or http://ckeditor.com/license -*/ -CKEDITOR.plugins.setLang( 'clipboard', 'zh-cn', { - copy: '复制', - copyError: '您的浏览器安全设置不允许编辑器自动执行复制操作,请使用键盘快捷键(Ctrl/Cmd+C)来完成。', - cut: '剪切', - cutError: '您的浏览器安全设置不允许编辑器自动执行剪切操作,请使用键盘快捷键(Ctrl/Cmd+X)来完成。', - paste: '粘贴', - pasteNotification: '您的浏览器不允许用此方式粘贴,要粘贴请按 %1。' -} ); diff --git a/admin/plugins/ckeditor/plugins/clipboard/lang/zh.js b/admin/plugins/ckeditor/plugins/clipboard/lang/zh.js deleted file mode 100644 index 150c15e..0000000 --- a/admin/plugins/ckeditor/plugins/clipboard/lang/zh.js +++ /dev/null @@ -1,12 +0,0 @@ -/* -Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. -For licensing, see LICENSE.md or http://ckeditor.com/license -*/ -CKEDITOR.plugins.setLang( 'clipboard', 'zh', { - copy: '複製', - copyError: '瀏覽器的安全性設定不允許編輯器自動執行複製動作。請使用鍵盤快捷鍵 (Ctrl/Cmd+C) 複製。', - cut: '剪下', - cutError: '瀏覽器的安全性設定不允許編輯器自動執行剪下動作。請使用鏐盤快捷鍵 (Ctrl/Cmd+X) 剪下。', - paste: '貼上', - pasteNotification: 'Your browser doesn\'t allow you to paste this way. Press %1 to paste.' // MISSING -} ); diff --git a/admin/plugins/ckeditor/plugins/clipboard/plugin.js b/admin/plugins/ckeditor/plugins/clipboard/plugin.js deleted file mode 100644 index 42191cf..0000000 --- a/admin/plugins/ckeditor/plugins/clipboard/plugin.js +++ /dev/null @@ -1,2780 +0,0 @@ -/** - * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. - * For licensing, see LICENSE.md or http://ckeditor.com/license - */ - -/** - * @ignore - * File overview: Clipboard support. - */ - -// -// COPY & PASTE EXECUTION FLOWS: -// -- CTRL+C -// * if ( isCustomCopyCutSupported ) -// * dataTransfer.setData( 'text/html', getSelectedHtml ) -// * else -// * browser's default behavior -// -- CTRL+X -// * listen onKey (onkeydown) -// * fire 'saveSnapshot' on editor -// * if ( isCustomCopyCutSupported ) -// * dataTransfer.setData( 'text/html', getSelectedHtml ) -// * extractSelectedHtml // remove selected contents -// * else -// * browser's default behavior -// * deferred second 'saveSnapshot' event -// -- CTRL+V -// * listen onKey (onkeydown) -// * simulate 'beforepaste' for non-IEs on editable -// * listen 'onpaste' on editable ('onbeforepaste' for IE) -// * fire 'beforePaste' on editor -// * if ( !canceled && ( htmlInDataTransfer || !external paste) && dataTransfer is not empty ) getClipboardDataByPastebin -// * fire 'paste' on editor -// * !canceled && fire 'afterPaste' on editor -// -- Copy command -// * tryToCutCopy -// * execCommand -// * !success && notification -// -- Cut command -// * fixCut -// * tryToCutCopy -// * execCommand -// * !success && notification -// -- Paste command -// * fire 'paste' on editable ('beforepaste' for IE) -// * !canceled && execCommand 'paste' -// -- Paste from native context menu & menubar -// (Fx & Webkits are handled in 'paste' default listener. -// Opera cannot be handled at all because it doesn't fire any events -// Special treatment is needed for IE, for which is this part of doc) -// * listen 'onpaste' -// * cancel native event -// * fire 'beforePaste' on editor -// * if ( !canceled && ( htmlInDataTransfer || !external paste) && dataTransfer is not empty ) getClipboardDataByPastebin -// * execIECommand( 'paste' ) -> this fires another 'paste' event, so cancel it -// * fire 'paste' on editor -// * !canceled && fire 'afterPaste' on editor -// -// -// PASTE EVENT - PREPROCESSING: -// -- Possible dataValue types: auto, text, html. -// -- Possible dataValue contents: -// * text (possible \n\r) -// * htmlified text (text + br,div,p - no presentational markup & attrs - depends on browser) -// * html -// -- Possible flags: -// * htmlified - if true then content is a HTML even if no markup inside. This flag is set -// for content from editable pastebins, because they 'htmlify' pasted content. -// -// -- Type: auto: -// * content: htmlified text -> filter, unify text markup (brs, ps, divs), set type: text -// * content: html -> filter, set type: html -// -- Type: text: -// * content: htmlified text -> filter, unify text markup -// * content: html -> filter, strip presentational markup, unify text markup -// -- Type: html: -// * content: htmlified text -> filter, unify text markup -// * content: html -> filter -// -// -- Phases: -// * if dataValue is empty copy data from dataTransfer to dataValue (priority 1) -// * filtering (priorities 3-5) - e.g. pastefromword filters -// * content type sniffing (priority 6) -// * markup transformations for text (priority 6) -// -// DRAG & DROP EXECUTION FLOWS: -// -- Drag -// * save to the global object: -// * drag timestamp (with 'cke-' prefix), -// * selected html, -// * drag range, -// * editor instance. -// * put drag timestamp into event.dataTransfer.text -// -- Drop -// * if events text == saved timestamp && editor == saved editor -// internal drag & drop occurred -// * getRangeAtDropPosition -// * create bookmarks for drag and drop ranges starting from the end of the document -// * dragRange.deleteContents() -// * fire 'paste' with saved html and drop range -// * if events text == saved timestamp && editor != saved editor -// cross editor drag & drop occurred -// * getRangeAtDropPosition -// * fire 'paste' with saved html -// * dragRange.deleteContents() -// * FF: refreshCursor on afterPaste -// * if events text != saved timestamp -// drop form external source occurred -// * getRangeAtDropPosition -// * if event contains html data then fire 'paste' with html -// * else if event contains text data then fire 'paste' with encoded text -// * FF: refreshCursor on afterPaste - -'use strict'; - -( function() { - // Register the plugin. - CKEDITOR.plugins.add( 'clipboard', { - requires: 'notification,toolbar', - // jscs:disable maximumLineLength - lang: 'af,ar,az,bg,bn,bs,ca,cs,cy,da,de,de-ch,el,en,en-au,en-ca,en-gb,eo,es,es-mx,et,eu,fa,fi,fo,fr,fr-ca,gl,gu,he,hi,hr,hu,id,is,it,ja,ka,km,ko,ku,lt,lv,mk,mn,ms,nb,nl,no,oc,pl,pt,pt-br,ro,ru,si,sk,sl,sq,sr,sr-latn,sv,th,tr,tt,ug,uk,vi,zh,zh-cn', // %REMOVE_LINE_CORE% - // jscs:enable maximumLineLength - icons: 'copy,copy-rtl,cut,cut-rtl,paste,paste-rtl', // %REMOVE_LINE_CORE% - hidpi: true, // %REMOVE_LINE_CORE% - init: function( editor ) { - var filterType, - filtersFactory = filtersFactoryFactory(); - - if ( editor.config.forcePasteAsPlainText ) { - filterType = 'plain-text'; - } else if ( editor.config.pasteFilter ) { - filterType = editor.config.pasteFilter; - } - // On Webkit the pasteFilter defaults 'semantic-content' because pasted data is so terrible - // that it must be always filtered. - else if ( CKEDITOR.env.webkit && !( 'pasteFilter' in editor.config ) ) { - filterType = 'semantic-content'; - } - - editor.pasteFilter = filtersFactory.get( filterType ); - - initPasteClipboard( editor ); - initDragDrop( editor ); - - // Convert image file (if present) to base64 string for Firefox. Do it as the first - // step as the conversion is asynchronous and should hold all further paste processing. - if ( CKEDITOR.env.gecko ) { - var supportedImageTypes = [ 'image/png', 'image/jpeg', 'image/gif' ], - latestId; - - editor.on( 'paste', function( evt ) { - var dataObj = evt.data, - data = dataObj.dataValue, - dataTransfer = dataObj.dataTransfer; - - // If data empty check for image content inside data transfer. http://dev.ckeditor.com/ticket/16705 - if ( !data && dataObj.method == 'paste' && dataTransfer && dataTransfer.getFilesCount() == 1 && latestId != dataTransfer.id ) { - var file = dataTransfer.getFile( 0 ); - - if ( CKEDITOR.tools.indexOf( supportedImageTypes, file.type ) != -1 ) { - var fileReader = new FileReader(); - - // Convert image file to img tag with base64 image. - fileReader.addEventListener( 'load', function() { - evt.data.dataValue = '<img src="' + fileReader.result + '" />'; - editor.fire( 'paste', evt.data ); - }, false ); - - // Proceed with normal flow if reading file was aborted. - fileReader.addEventListener( 'abort', function() { - editor.fire( 'paste', evt.data ); - }, false ); - - // Proceed with normal flow if reading file failed. - fileReader.addEventListener( 'error', function() { - editor.fire( 'paste', evt.data ); - }, false ); - - fileReader.readAsDataURL( file ); - - latestId = dataObj.dataTransfer.id; - - evt.stop(); - } - } - }, null, null, 1 ); - } - - editor.on( 'paste', function( evt ) { - // Init `dataTransfer` if `paste` event was fired without it, so it will be always available. - if ( !evt.data.dataTransfer ) { - evt.data.dataTransfer = new CKEDITOR.plugins.clipboard.dataTransfer(); - } - - // If dataValue is already set (manually or by paste bin), so do not override it. - if ( evt.data.dataValue ) { - return; - } - - var dataTransfer = evt.data.dataTransfer, - // IE support only text data and throws exception if we try to get html data. - // This html data object may also be empty if we drag content of the textarea. - value = dataTransfer.getData( 'text/html' ); - - if ( value ) { - evt.data.dataValue = value; - evt.data.type = 'html'; - } else { - // Try to get text data otherwise. - value = dataTransfer.getData( 'text/plain' ); - - if ( value ) { - evt.data.dataValue = editor.editable().transformPlainTextToHtml( value ); - evt.data.type = 'text'; - } - } - }, null, null, 1 ); - - editor.on( 'paste', function( evt ) { - var data = evt.data.dataValue, - blockElements = CKEDITOR.dtd.$block; - - // Filter webkit garbage. - if ( data.indexOf( 'Apple-' ) > -1 ) { - // Replace special webkit's &nbsp; with simple space, because webkit - // produces them even for normal spaces. - data = data.replace( /<span class="Apple-converted-space">&nbsp;<\/span>/gi, ' ' ); - - // Strip <span> around white-spaces when not in forced 'html' content type. - // This spans are created only when pasting plain text into Webkit, - // but for safety reasons remove them always. - if ( evt.data.type != 'html' ) { - data = data.replace( /<span class="Apple-tab-span"[^>]*>([^<]*)<\/span>/gi, function( all, spaces ) { - // Replace tabs with 4 spaces like Fx does. - return spaces.replace( /\t/g, '&nbsp;&nbsp; &nbsp;' ); - } ); - } - - // This br is produced only when copying & pasting HTML content. - if ( data.indexOf( '<br class="Apple-interchange-newline">' ) > -1 ) { - evt.data.startsWithEOL = 1; - evt.data.preSniffing = 'html'; // Mark as not text. - data = data.replace( /<br class="Apple-interchange-newline">/, '' ); - } - - // Remove all other classes. - data = data.replace( /(<[^>]+) class="Apple-[^"]*"/gi, '$1' ); - } - - // Strip editable that was copied from inside. (http://dev.ckeditor.com/ticket/9534) - if ( data.match( /^<[^<]+cke_(editable|contents)/i ) ) { - var tmp, - editable_wrapper, - wrapper = new CKEDITOR.dom.element( 'div' ); - - wrapper.setHtml( data ); - // Verify for sure and check for nested editor UI parts. (http://dev.ckeditor.com/ticket/9675) - while ( wrapper.getChildCount() == 1 && - ( tmp = wrapper.getFirst() ) && - tmp.type == CKEDITOR.NODE_ELEMENT && // Make sure first-child is element. - ( tmp.hasClass( 'cke_editable' ) || tmp.hasClass( 'cke_contents' ) ) ) { - wrapper = editable_wrapper = tmp; - } - - // If editable wrapper was found strip it and bogus <br> (added on FF). - if ( editable_wrapper ) - data = editable_wrapper.getHtml().replace( /<br>$/i, '' ); - } - - if ( CKEDITOR.env.ie ) { - // &nbsp; <p> -> <p> (br.cke-pasted-remove will be removed later) - data = data.replace( /^&nbsp;(?: |\r\n)?<(\w+)/g, function( match, elementName ) { - if ( elementName.toLowerCase() in blockElements ) { - evt.data.preSniffing = 'html'; // Mark as not a text. - return '<' + elementName; - } - return match; - } ); - } else if ( CKEDITOR.env.webkit ) { - // </p><div><br></div> -> </p><br> - // We don't mark br, because this situation can happen for htmlified text too. - data = data.replace( /<\/(\w+)><div><br><\/div>$/, function( match, elementName ) { - if ( elementName in blockElements ) { - evt.data.endsWithEOL = 1; - return '</' + elementName + '>'; - } - return match; - } ); - } else if ( CKEDITOR.env.gecko ) { - // Firefox adds bogus <br> when user pasted text followed by space(s). - data = data.replace( /(\s)<br>$/, '$1' ); - } - - evt.data.dataValue = data; - }, null, null, 3 ); - - editor.on( 'paste', function( evt ) { - var dataObj = evt.data, - type = editor._.nextPasteType || dataObj.type, - data = dataObj.dataValue, - trueType, - // Default is 'html'. - defaultType = editor.config.clipboard_defaultContentType || 'html', - transferType = dataObj.dataTransfer.getTransferType( editor ); - - // If forced type is 'html' we don't need to know true data type. - if ( type == 'html' || dataObj.preSniffing == 'html' ) { - trueType = 'html'; - } else { - trueType = recogniseContentType( data ); - } - - delete editor._.nextPasteType; - - // Unify text markup. - if ( trueType == 'htmlifiedtext' ) { - data = htmlifiedTextHtmlification( editor.config, data ); - } - - // Strip presentational markup & unify text markup. - // Forced plain text. - // Note: we do not check dontFilter option in this case, because forcePAPT was implemented - // before pasteFilter and pasteFilter is automatically used on Webkit&Blink since 4.5, so - // forcePAPT should have priority as it had before 4.5. - if ( type == 'text' && trueType == 'html' ) { - data = filterContent( editor, data, filtersFactory.get( 'plain-text' ) ); - } - // External paste and pasteFilter exists and filtering isn't disabled. - else if ( transferType == CKEDITOR.DATA_TRANSFER_EXTERNAL && editor.pasteFilter && !dataObj.dontFilter ) { - data = filterContent( editor, data, editor.pasteFilter ); - } - - if ( dataObj.startsWithEOL ) { - data = '<br data-cke-eol="1">' + data; - } - if ( dataObj.endsWithEOL ) { - data += '<br data-cke-eol="1">'; - } - - if ( type == 'auto' ) { - type = ( trueType == 'html' || defaultType == 'html' ) ? 'html' : 'text'; - } - - dataObj.type = type; - dataObj.dataValue = data; - delete dataObj.preSniffing; - delete dataObj.startsWithEOL; - delete dataObj.endsWithEOL; - }, null, null, 6 ); - - // Inserts processed data into the editor at the end of the - // events chain. - editor.on( 'paste', function( evt ) { - var data = evt.data; - - if ( data.dataValue ) { - editor.insertHtml( data.dataValue, data.type, data.range ); - - // Defer 'afterPaste' so all other listeners for 'paste' will be fired first. - // Fire afterPaste only if paste inserted some HTML. - setTimeout( function() { - editor.fire( 'afterPaste' ); - }, 0 ); - } - }, null, null, 1000 ); - } - } ); - - function firePasteEvents( editor, data, withBeforePaste ) { - if ( !data.type ) { - data.type = 'auto'; - } - - if ( withBeforePaste ) { - // Fire 'beforePaste' event so clipboard flavor get customized - // by other plugins. - if ( editor.fire( 'beforePaste', data ) === false ) - return false; // Event canceled - } - - // Do not fire paste if there is no data (dataValue and dataTranfser are empty). - // This check should be done after firing 'beforePaste' because for native paste - // 'beforePaste' is by default fired even for empty clipboard. - if ( !data.dataValue && data.dataTransfer.isEmpty() ) { - return false; - } - - if ( !data.dataValue ) { - data.dataValue = ''; - } - - // Because of FF bug we need to use this hack, otherwise cursor is hidden - // or it is not possible to move it (http://dev.ckeditor.com/ticket/12420). - // Also, check that editor.toolbox exists, because the toolbar plugin might not be loaded (http://dev.ckeditor.com/ticket/13305). - if ( CKEDITOR.env.gecko && data.method == 'drop' && editor.toolbox ) { - editor.once( 'afterPaste', function() { - editor.toolbox.focus(); - } ); - } - - return editor.fire( 'paste', data ); - } - - function initPasteClipboard( editor ) { - var clipboard = CKEDITOR.plugins.clipboard, - preventBeforePasteEvent = 0, - preventPasteEvent = 0, - inReadOnly = 0; - - addListeners(); - addButtonsCommands(); - - /** - * Gets clipboard data by directly accessing the clipboard (IE only). - * - * editor.getClipboardData( function( data ) { - * if ( data ) - * alert( data.type + ' ' + data.dataValue ); - * } ); - * - * @member CKEDITOR.editor - * @param {Function/Object} callbackOrOptions For function, see the `callback` parameter documentation. The object was used before 4.7.0 with the `title` property, to set the paste dialog's title. - * @param {Function} callback A function that will be executed with the `data` property of the - * {@link CKEDITOR.editor#event-paste paste event} or `null` if none of the capturing methods succeeded. - * Since 4.7.0 the `callback` should be provided as a first argument, just like in the example above. This parameter will be removed in - * an upcoming major release. - */ - editor.getClipboardData = function( callbackOrOptions, callback ) { - // Options are optional - args shift. - if ( !callback ) { - callback = callbackOrOptions; - callbackOrOptions = null; - } - - // Listen with maximum priority to handle content before everyone else. - // This callback will handle paste event that will be fired if direct - // access to the clipboard succeed in IE. - editor.on( 'paste', onPaste, null, null, 0 ); - - // If command didn't succeed (only IE allows to access clipboard and only if - // user agrees) invoke callback with null, meaning that paste is not blocked. - if ( getClipboardDataDirectly() === false ) { - // Direct access to the clipboard wasn't successful so remove listener. - editor.removeListener( 'paste', onPaste ); - - callback( null ); - } - - function onPaste( evt ) { - evt.removeListener(); - evt.cancel(); - callback( evt.data ); - } - }; - - function addButtonsCommands() { - addButtonCommand( 'Cut', 'cut', createCutCopyCmd( 'cut' ), 10, 1 ); - addButtonCommand( 'Copy', 'copy', createCutCopyCmd( 'copy' ), 20, 4 ); - addButtonCommand( 'Paste', 'paste', createPasteCmd(), 30, 8 ); - - function addButtonCommand( buttonName, commandName, command, toolbarOrder, ctxMenuOrder ) { - var lang = editor.lang.clipboard[ commandName ]; - - editor.addCommand( commandName, command ); - editor.ui.addButton && editor.ui.addButton( buttonName, { - label: lang, - command: commandName, - toolbar: 'clipboard,' + toolbarOrder - } ); - - // If the "menu" plugin is loaded, register the menu item. - if ( editor.addMenuItems ) { - editor.addMenuItem( commandName, { - label: lang, - command: commandName, - group: 'clipboard', - order: ctxMenuOrder - } ); - } - } - } - - function addListeners() { - editor.on( 'key', onKey ); - editor.on( 'contentDom', addPasteListenersToEditable ); - - // For improved performance, we're checking the readOnly state on selectionChange instead of hooking a key event for that. - editor.on( 'selectionChange', function( evt ) { - inReadOnly = evt.data.selection.getRanges()[ 0 ].checkReadOnly(); - setToolbarStates(); - } ); - - // If the "contextmenu" plugin is loaded, register the listeners. - if ( editor.contextMenu ) { - editor.contextMenu.addListener( function( element, selection ) { - inReadOnly = selection.getRanges()[ 0 ].checkReadOnly(); - return { - cut: stateFromNamedCommand( 'cut' ), - copy: stateFromNamedCommand( 'copy' ), - paste: stateFromNamedCommand( 'paste' ) - }; - } ); - } - } - - // Add events listeners to editable. - function addPasteListenersToEditable() { - var editable = editor.editable(); - - if ( CKEDITOR.plugins.clipboard.isCustomCopyCutSupported ) { - var initOnCopyCut = function( evt ) { - // If user tries to cut in read-only editor, we must prevent default action. (http://dev.ckeditor.com/ticket/13872) - if ( !editor.readOnly || evt.name != 'cut' ) { - clipboard.initPasteDataTransfer( evt, editor ); - } - evt.data.preventDefault(); - }; - - editable.on( 'copy', initOnCopyCut ); - editable.on( 'cut', initOnCopyCut ); - - // Delete content with the low priority so one can overwrite cut data. - editable.on( 'cut', function() { - // If user tries to cut in read-only editor, we must prevent default action. (http://dev.ckeditor.com/ticket/13872) - if ( !editor.readOnly ) { - editor.extractSelectedHtml(); - } - }, null, null, 999 ); - } - - // We'll be catching all pasted content in one line, regardless of whether - // it's introduced by a document command execution (e.g. toolbar buttons) or - // user paste behaviors (e.g. CTRL+V). - editable.on( clipboard.mainPasteEvent, function( evt ) { - if ( clipboard.mainPasteEvent == 'beforepaste' && preventBeforePasteEvent ) { - return; - } - - // If you've just asked yourself why preventPasteEventNow() is not here, but - // in listener for CTRL+V and exec method of 'paste' command - // you've asked the same question we did. - // - // THE ANSWER: - // - // First thing to notice - this answer makes sense only for IE, - // because other browsers don't listen for 'paste' event. - // - // What would happen if we move preventPasteEventNow() here? - // For: - // * CTRL+V - IE fires 'beforepaste', so we prevent 'paste' and pasteDataFromClipboard(). OK. - // * editor.execCommand( 'paste' ) - we fire 'beforepaste', so we prevent - // 'paste' and pasteDataFromClipboard() and doc.execCommand( 'Paste' ). OK. - // * native context menu - IE fires 'beforepaste', so we prevent 'paste', but unfortunately - // on IE we fail with pasteDataFromClipboard() here, because of... we don't know why, but - // we just fail, so... we paste nothing. FAIL. - // * native menu bar - the same as for native context menu. - // - // But don't you know any way to distinguish first two cases from last two? - // Only one - special flag set in CTRL+V handler and exec method of 'paste' - // command. And that's what we did using preventPasteEventNow(). - - pasteDataFromClipboard( evt ); - } ); - - // It's not possible to clearly handle all four paste methods (ctrl+v, native menu bar - // native context menu, editor's command) in one 'paste/beforepaste' event in IE. - // - // For ctrl+v & editor's command it's easy to handle pasting in 'beforepaste' listener, - // so we do this. For another two methods it's better to use 'paste' event. - // - // 'paste' is always being fired after 'beforepaste' (except of weird one on opening native - // context menu), so for two methods handled in 'beforepaste' we're canceling 'paste' - // using preventPasteEvent state. - // - // 'paste' event in IE is being fired before getClipboardDataByPastebin executes its callback. - // - // QUESTION: Why didn't you handle all 4 paste methods in handler for 'paste'? - // Wouldn't this just be simpler? - // ANSWER: Then we would have to evt.data.preventDefault() only for native - // context menu and menu bar pastes. The same with execIECommand(). - // That would force us to mark CTRL+V and editor's paste command with - // special flag, other than preventPasteEvent. But we still would have to - // have preventPasteEvent for the second event fired by execIECommand. - // Code would be longer and not cleaner. - if ( clipboard.mainPasteEvent == 'beforepaste' ) { - editable.on( 'paste', function( evt ) { - if ( preventPasteEvent ) { - return; - } - - // Cancel next 'paste' event fired by execIECommand( 'paste' ) - // at the end of this callback. - preventPasteEventNow(); - - // Prevent native paste. - evt.data.preventDefault(); - - pasteDataFromClipboard( evt ); - - // Force IE to paste content into pastebin so pasteDataFromClipboard will work. - execIECommand( 'paste' ); - } ); - - // If mainPasteEvent is 'beforePaste' (IE before Edge), - // dismiss the (wrong) 'beforepaste' event fired on context/toolbar menu open. (http://dev.ckeditor.com/ticket/7953) - editable.on( 'contextmenu', preventBeforePasteEventNow, null, null, 0 ); - - editable.on( 'beforepaste', function( evt ) { - // Do not prevent event on CTRL+V and SHIFT+INS because it blocks paste (http://dev.ckeditor.com/ticket/11970). - if ( evt.data && !evt.data.$.ctrlKey && !evt.data.$.shiftKey ) - preventBeforePasteEventNow(); - }, null, null, 0 ); - } - - editable.on( 'beforecut', function() { - !preventBeforePasteEvent && fixCut( editor ); - } ); - - var mouseupTimeout; - - // Use editor.document instead of editable in non-IEs for observing mouseup - // since editable won't fire the event if selection process started within - // iframe and ended out of the editor (http://dev.ckeditor.com/ticket/9851). - editable.attachListener( CKEDITOR.env.ie ? editable : editor.document.getDocumentElement(), 'mouseup', function() { - mouseupTimeout = setTimeout( function() { - setToolbarStates(); - }, 0 ); - } ); - - // Make sure that deferred mouseup callback isn't executed after editor instance - // had been destroyed. This may happen when editor.destroy() is called in parallel - // with mouseup event (i.e. a button with onclick callback) (http://dev.ckeditor.com/ticket/10219). - editor.on( 'destroy', function() { - clearTimeout( mouseupTimeout ); - } ); - - editable.on( 'keyup', setToolbarStates ); - } - - // Create object representing Cut or Copy commands. - function createCutCopyCmd( type ) { - return { - type: type, - canUndo: type == 'cut', // We can't undo copy to clipboard. - startDisabled: true, - fakeKeystroke: type == 'cut' ? CKEDITOR.CTRL + 88 /*X*/ : CKEDITOR.CTRL + 67 /*C*/, - exec: function() { - // Attempts to execute the Cut and Copy operations. - function tryToCutCopy( type ) { - if ( CKEDITOR.env.ie ) - return execIECommand( type ); - - // non-IEs part - try { - // Other browsers throw an error if the command is disabled. - return editor.document.$.execCommand( type, false, null ); - } catch ( e ) { - return false; - } - } - - this.type == 'cut' && fixCut(); - - var success = tryToCutCopy( this.type ); - - if ( !success ) { - // Show cutError or copyError. - editor.showNotification( editor.lang.clipboard[ this.type + 'Error' ] ); // jshint ignore:line - } - - return success; - } - }; - } - - function createPasteCmd() { - return { - // Snapshots are done manually by editable.insertXXX methods. - canUndo: false, - async: true, - fakeKeystroke: CKEDITOR.CTRL + 86 /*V*/, - - /** - * The default implementation of the paste command. - * - * @private - * @param {CKEDITOR.editor} editor An instance of the editor where the command is being executed. - * @param {Object/String} data If `data` is a string, then it is considered content that is being pasted. - * Otherwise it is treated as an object with options. - * @param {Boolean/String} [data.notification=true] Content for a notification shown after an unsuccessful - * paste attempt. If `false`, the notification will not be displayed. This parameter was added in 4.7.0. - * @param {String} [data.type='html'] The type of pasted content. There are two allowed values: - * * 'html' - * * 'text' - * @param {String/Object} data.dataValue Content being pasted. If this parameter is an object, it - * is supposed to be a `data` property of the {@link CKEDITOR.editor#paste} event. - * @param {CKEDITOR.plugins.clipboard.dataTransfer} data.dataTransfer Data transfer instance connected - * with the current paste action. - * @member CKEDITOR.editor.commands.paste - */ - exec: function( editor, data ) { - data = typeof data !== 'undefined' && data !== null ? data : {}; - - var cmd = this, - notification = typeof data.notification !== 'undefined' ? data.notification : true, - forcedType = data.type, - keystroke = CKEDITOR.tools.keystrokeToString( editor.lang.common.keyboard, - editor.getCommandKeystroke( this ) ), - msg = typeof notification === 'string' ? notification : editor.lang.clipboard.pasteNotification - .replace( /%1/, '<kbd aria-label="' + keystroke.aria + '">' + keystroke.display + '</kbd>' ), - pastedContent = typeof data === 'string' ? data : data.dataValue; - - function callback( data, withBeforePaste ) { - withBeforePaste = typeof withBeforePaste !== 'undefined' ? withBeforePaste : true; - - if ( data ) { - data.method = 'paste'; - - if ( !data.dataTransfer ) { - data.dataTransfer = clipboard.initPasteDataTransfer(); - } - - firePasteEvents( editor, data, withBeforePaste ); - } else if ( notification ) { - editor.showNotification( msg, 'info', editor.config.clipboard_notificationDuration ); - } - - editor.fire( 'afterCommandExec', { - name: 'paste', - command: cmd, - returnValue: !!data - } ); - } - - // Force type for the next paste. - if ( forcedType ) { - editor._.nextPasteType = forcedType; - } else { - delete editor._.nextPasteType; - } - - if ( typeof pastedContent === 'string' ) { - callback( { - dataValue: pastedContent - } ); - } else { - editor.getClipboardData( callback ); - } - } - }; - } - - function preventPasteEventNow() { - preventPasteEvent = 1; - // For safety reason we should wait longer than 0/1ms. - // We don't know how long execution of quite complex getClipboardData will take - // and in for example 'paste' listener execCommand() (which fires 'paste') is called - // after getClipboardData finishes. - // Luckily, it's impossible to immediately fire another 'paste' event we want to handle, - // because we only handle there native context menu and menu bar. - setTimeout( function() { - preventPasteEvent = 0; - }, 100 ); - } - - function preventBeforePasteEventNow() { - preventBeforePasteEvent = 1; - setTimeout( function() { - preventBeforePasteEvent = 0; - }, 10 ); - } - - // Tries to execute any of the paste, cut or copy commands in IE. Returns a - // boolean indicating that the operation succeeded. - // @param {String} command *LOWER CASED* name of command ('paste', 'cut', 'copy'). - function execIECommand( command ) { - var doc = editor.document, - body = doc.getBody(), - enabled = false, - onExec = function() { - enabled = true; - }; - - // The following seems to be the only reliable way to detect that - // clipboard commands are enabled in IE. It will fire the - // onpaste/oncut/oncopy events only if the security settings allowed - // the command to execute. - body.on( command, onExec ); - - // IE7: document.execCommand has problem to paste into positioned element. - if ( CKEDITOR.env.version > 7 ) { - doc.$.execCommand( command ); - } else { - doc.$.selection.createRange().execCommand( command ); - } - - body.removeListener( command, onExec ); - - return enabled; - } - - // Cutting off control type element in IE standards breaks the selection entirely. (http://dev.ckeditor.com/ticket/4881) - function fixCut() { - if ( !CKEDITOR.env.ie || CKEDITOR.env.quirks ) - return; - - var sel = editor.getSelection(), - control, range, dummy; - - if ( ( sel.getType() == CKEDITOR.SELECTION_ELEMENT ) && ( control = sel.getSelectedElement() ) ) { - range = sel.getRanges()[ 0 ]; - dummy = editor.document.createText( '' ); - dummy.insertBefore( control ); - range.setStartBefore( dummy ); - range.setEndAfter( control ); - sel.selectRanges( [ range ] ); - - // Clear up the fix if the paste wasn't succeeded. - setTimeout( function() { - // Element still online? - if ( control.getParent() ) { - dummy.remove(); - sel.selectElement( control ); - } - }, 0 ); - } - } - - // Allow to peek clipboard content by redirecting the - // pasting content into a temporary bin and grab the content of it. - function getClipboardDataByPastebin( evt, callback ) { - var doc = editor.document, - editable = editor.editable(), - cancel = function( evt ) { - evt.cancel(); - }, - blurListener; - - // Avoid recursions on 'paste' event or consequent paste too fast. (http://dev.ckeditor.com/ticket/5730) - if ( doc.getById( 'cke_pastebin' ) ) - return; - - var sel = editor.getSelection(); - var bms = sel.createBookmarks(); - - // http://dev.ckeditor.com/ticket/11384. On IE9+ we use native selectionchange (i.e. editor#selectionCheck) to cache the most - // recent selection which we then lock on editable blur. See selection.js for more info. - // selectionchange fired before getClipboardDataByPastebin() cached selection - // before creating bookmark (cached selection will be invalid, because bookmarks modified the DOM), - // so we need to fire selectionchange one more time, to store current seleciton. - // Selection will be locked when we focus pastebin. - if ( CKEDITOR.env.ie ) - sel.root.fire( 'selectionchange' ); - - // Create container to paste into. - // For rich content we prefer to use "body" since it holds - // the least possibility to be splitted by pasted content, while this may - // breaks the text selection on a frame-less editable, "div" would be - // the best one in that case. - // In another case on old IEs moving the selection into a "body" paste bin causes error panic. - // Body can't be also used for Opera which fills it with <br> - // what is indistinguishable from pasted <br> (copying <br> in Opera isn't possible, - // but it can be copied from other browser). - var pastebin = new CKEDITOR.dom.element( - ( CKEDITOR.env.webkit || editable.is( 'body' ) ) && !CKEDITOR.env.ie ? 'body' : 'div', doc ); - - pastebin.setAttributes( { - id: 'cke_pastebin', - 'data-cke-temp': '1' - } ); - - var containerOffset = 0, - offsetParent, - win = doc.getWindow(); - - if ( CKEDITOR.env.webkit ) { - // It's better to paste close to the real paste destination, so inherited styles - // (which Webkits will try to compensate by styling span) differs less from the destination's one. - editable.append( pastebin ); - // Style pastebin like .cke_editable, to minimize differences between origin and destination. (http://dev.ckeditor.com/ticket/9754) - pastebin.addClass( 'cke_editable' ); - - // Compensate position of offsetParent. - if ( !editable.is( 'body' ) ) { - // We're not able to get offsetParent from pastebin (body element), so check whether - // its parent (editable) is positioned. - if ( editable.getComputedStyle( 'position' ) != 'static' ) - offsetParent = editable; - // And if not - safely get offsetParent from editable. - else - offsetParent = CKEDITOR.dom.element.get( editable.$.offsetParent ); - - containerOffset = offsetParent.getDocumentPosition().y; - } - } else { - // Opera and IE doesn't allow to append to html element. - editable.getAscendant( CKEDITOR.env.ie ? 'body' : 'html', 1 ).append( pastebin ); - } - - pastebin.setStyles( { - position: 'absolute', - // Position the bin at the top (+10 for safety) of viewport to avoid any subsequent document scroll. - top: ( win.getScrollPosition().y - containerOffset + 10 ) + 'px', - width: '1px', - // Caret has to fit in that height, otherwise browsers like Chrome & Opera will scroll window to show it. - // Set height equal to viewport's height - 20px (safety gaps), minimum 1px. - height: Math.max( 1, win.getViewPaneSize().height - 20 ) + 'px', - overflow: 'hidden', - // Reset styles that can mess up pastebin position. - margin: 0, - padding: 0 - } ); - - // Paste fails in Safari when the body tag has 'user-select: none'. (http://dev.ckeditor.com/ticket/12506) - if ( CKEDITOR.env.safari ) - pastebin.setStyles( CKEDITOR.tools.cssVendorPrefix( 'user-select', 'text' ) ); - - // Check if the paste bin now establishes new editing host. - var isEditingHost = pastebin.getParent().isReadOnly(); - - if ( isEditingHost ) { - // Hide the paste bin. - pastebin.setOpacity( 0 ); - // And make it editable. - pastebin.setAttribute( 'contenteditable', true ); - } - // Transparency is not enough since positioned non-editing host always shows - // resize handler, pull it off the screen instead. - else { - pastebin.setStyle( editor.config.contentsLangDirection == 'ltr' ? 'left' : 'right', '-10000px' ); - } - - editor.on( 'selectionChange', cancel, null, null, 0 ); - - // Webkit fill fire blur on editable when moving selection to - // pastebin (if body is used). Cancel it because it causes incorrect - // selection lock in case of inline editor (http://dev.ckeditor.com/ticket/10644). - // The same seems to apply to Firefox (http://dev.ckeditor.com/ticket/10787). - if ( CKEDITOR.env.webkit || CKEDITOR.env.gecko ) - blurListener = editable.once( 'blur', cancel, null, null, -100 ); - - // Temporarily move selection to the pastebin. - isEditingHost && pastebin.focus(); - var range = new CKEDITOR.dom.range( pastebin ); - range.selectNodeContents( pastebin ); - var selPastebin = range.select(); - - // If non-native paste is executed, IE will open security alert and blur editable. - // Editable will then lock selection inside itself and after accepting security alert - // this selection will be restored. We overwrite stored selection, so it's restored - // in pastebin. (http://dev.ckeditor.com/ticket/9552) - if ( CKEDITOR.env.ie ) { - blurListener = editable.once( 'blur', function() { - editor.lockSelection( selPastebin ); - } ); - } - - var scrollTop = CKEDITOR.document.getWindow().getScrollPosition().y; - - // Wait a while and grab the pasted contents. - setTimeout( function() { - // Restore main window's scroll position which could have been changed - // by browser in cases described in http://dev.ckeditor.com/ticket/9771. - if ( CKEDITOR.env.webkit ) - CKEDITOR.document.getBody().$.scrollTop = scrollTop; - - // Blur will be fired only on non-native paste. In other case manually remove listener. - blurListener && blurListener.removeListener(); - - // Restore properly the document focus. (http://dev.ckeditor.com/ticket/8849) - if ( CKEDITOR.env.ie ) - editable.focus(); - - // IE7: selection must go before removing pastebin. (http://dev.ckeditor.com/ticket/8691) - sel.selectBookmarks( bms ); - pastebin.remove(); - - // Grab the HTML contents. - // We need to look for a apple style wrapper on webkit it also adds - // a div wrapper if you copy/paste the body of the editor. - // Remove hidden div and restore selection. - var bogusSpan; - if ( CKEDITOR.env.webkit && ( bogusSpan = pastebin.getFirst() ) && ( bogusSpan.is && bogusSpan.hasClass( 'Apple-style-span' ) ) ) - pastebin = bogusSpan; - - editor.removeListener( 'selectionChange', cancel ); - callback( pastebin.getHtml() ); - }, 0 ); - } - - // Try to get content directly on IE from clipboard, without native event - // being fired before. In other words - synthetically get clipboard data, if it's possible. - // mainPasteEvent will be fired, so if forced native paste: - // * worked, getClipboardDataByPastebin will grab it, - // * didn't work, dataValue and dataTransfer will be empty and editor#paste won't be fired. - // Clipboard data can be accessed directly only on IEs older than Edge. - // On other browsers we should fire beforePaste event and return false. - function getClipboardDataDirectly() { - if ( clipboard.mainPasteEvent == 'paste' ) { - editor.fire( 'beforePaste', { type: 'auto', method: 'paste' } ); - return false; - } - - // Prevent IE from pasting at the begining of the document. - editor.focus(); - - // Command will be handled by 'beforepaste', but as - // execIECommand( 'paste' ) will fire also 'paste' event - // we're canceling it. - preventPasteEventNow(); - - // http://dev.ckeditor.com/ticket/9247: Lock focus to prevent IE from hiding toolbar for inline editor. - var focusManager = editor.focusManager; - focusManager.lock(); - - if ( editor.editable().fire( clipboard.mainPasteEvent ) && !execIECommand( 'paste' ) ) { - focusManager.unlock(); - return false; - } - focusManager.unlock(); - - return true; - } - - // Listens for some clipboard related keystrokes, so they get customized. - // Needs to be bind to keydown event. - function onKey( event ) { - if ( editor.mode != 'wysiwyg' ) - return; - - switch ( event.data.keyCode ) { - // Paste - case CKEDITOR.CTRL + 86: // CTRL+V - case CKEDITOR.SHIFT + 45: // SHIFT+INS - var editable = editor.editable(); - - // Cancel 'paste' event because ctrl+v is for IE handled - // by 'beforepaste'. - preventPasteEventNow(); - - // Simulate 'beforepaste' event for all browsers using 'paste' as main event. - if ( clipboard.mainPasteEvent == 'paste' ) { - editable.fire( 'beforepaste' ); - } - - return; - - // Cut - case CKEDITOR.CTRL + 88: // CTRL+X - case CKEDITOR.SHIFT + 46: // SHIFT+DEL - // Save Undo snapshot. - editor.fire( 'saveSnapshot' ); // Save before cut - setTimeout( function() { - editor.fire( 'saveSnapshot' ); // Save after cut - }, 50 ); // OSX is slow (http://dev.ckeditor.com/ticket/11416). - } - } - - function pasteDataFromClipboard( evt ) { - // Default type is 'auto', but can be changed by beforePaste listeners. - var eventData = { - type: 'auto', - method: 'paste', - dataTransfer: clipboard.initPasteDataTransfer( evt ) - }; - - eventData.dataTransfer.cacheData(); - - // Fire 'beforePaste' event so clipboard flavor get customized by other plugins. - // If 'beforePaste' is canceled continue executing getClipboardDataByPastebin and then do nothing - // (do not fire 'paste', 'afterPaste' events). This way we can grab all - synthetically - // and natively pasted content and prevent its insertion into editor - // after canceling 'beforePaste' event. - var beforePasteNotCanceled = editor.fire( 'beforePaste', eventData ) !== false; - - // Do not use paste bin if the browser let us get HTML or files from dataTranfer. - if ( beforePasteNotCanceled && clipboard.canClipboardApiBeTrusted( eventData.dataTransfer, editor ) ) { - evt.data.preventDefault(); - setTimeout( function() { - firePasteEvents( editor, eventData ); - }, 0 ); - } else { - getClipboardDataByPastebin( evt, function( data ) { - // Clean up. - eventData.dataValue = data.replace( /<span[^>]+data-cke-bookmark[^<]*?<\/span>/ig, '' ); - - // Fire remaining events (without beforePaste) - beforePasteNotCanceled && firePasteEvents( editor, eventData ); - } ); - } - } - - function setToolbarStates() { - if ( editor.mode != 'wysiwyg' ) - return; - - var pasteState = stateFromNamedCommand( 'paste' ); - - editor.getCommand( 'cut' ).setState( stateFromNamedCommand( 'cut' ) ); - editor.getCommand( 'copy' ).setState( stateFromNamedCommand( 'copy' ) ); - editor.getCommand( 'paste' ).setState( pasteState ); - editor.fire( 'pasteState', pasteState ); - } - - function stateFromNamedCommand( command ) { - if ( inReadOnly && command in { paste: 1, cut: 1 } ) - return CKEDITOR.TRISTATE_DISABLED; - - if ( command == 'paste' ) - return CKEDITOR.TRISTATE_OFF; - - // Cut, copy - check if the selection is not empty. - var sel = editor.getSelection(), - ranges = sel.getRanges(), - selectionIsEmpty = sel.getType() == CKEDITOR.SELECTION_NONE || ( ranges.length == 1 && ranges[ 0 ].collapsed ); - - return selectionIsEmpty ? CKEDITOR.TRISTATE_DISABLED : CKEDITOR.TRISTATE_OFF; - } - } - - // Returns: - // * 'htmlifiedtext' if content looks like transformed by browser from plain text. - // See clipboard/paste.html TCs for more info. - // * 'html' if it is not 'htmlifiedtext'. - function recogniseContentType( data ) { - if ( CKEDITOR.env.webkit ) { - // Plain text or ( <div><br></div> and text inside <div> ). - if ( !data.match( /^[^<]*$/g ) && !data.match( /^(<div><br( ?\/)?><\/div>|<div>[^<]*<\/div>)*$/gi ) ) - return 'html'; - } else if ( CKEDITOR.env.ie ) { - // Text and <br> or ( text and <br> in <p> - paragraphs can be separated by new \r\n ). - if ( !data.match( /^([^<]|<br( ?\/)?>)*$/gi ) && !data.match( /^(<p>([^<]|<br( ?\/)?>)*<\/p>|(\r\n))*$/gi ) ) - return 'html'; - } else if ( CKEDITOR.env.gecko ) { - // Text or <br>. - if ( !data.match( /^([^<]|<br( ?\/)?>)*$/gi ) ) - return 'html'; - } else { - return 'html'; - } - - return 'htmlifiedtext'; - } - - // This function transforms what browsers produce when - // pasting plain text into editable element (see clipboard/paste.html TCs - // for more info) into correct HTML (similar to that produced by text2Html). - function htmlifiedTextHtmlification( config, data ) { - function repeatParagraphs( repeats ) { - // Repeat blocks floor((n+1)/2) times. - // Even number of repeats - add <br> at the beginning of last <p>. - return CKEDITOR.tools.repeat( '</p><p>', ~~( repeats / 2 ) ) + ( repeats % 2 == 1 ? '<br>' : '' ); - } - - // Replace adjacent white-spaces (EOLs too - Fx sometimes keeps them) with one space. - data = data.replace( /\s+/g, ' ' ) - // Remove spaces from between tags. - .replace( /> +</g, '><' ) - // Normalize XHTML syntax and upper cased <br> tags. - .replace( /<br ?\/>/gi, '<br>' ); - - // IE - lower cased tags. - data = data.replace( /<\/?[A-Z]+>/g, function( match ) { - return match.toLowerCase(); - } ); - - // Don't touch single lines (no <br|p|div>) - nothing to do here. - if ( data.match( /^[^<]$/ ) ) - return data; - - // Webkit. - if ( CKEDITOR.env.webkit && data.indexOf( '<div>' ) > -1 ) { - // One line break at the beginning - insert <br> - data = data.replace( /^(<div>(<br>|)<\/div>)(?!$|(<div>(<br>|)<\/div>))/g, '<br>' ) - // Two or more - reduce number of new lines by one. - .replace( /^(<div>(<br>|)<\/div>){2}(?!$)/g, '<div></div>' ); - - // Two line breaks create one paragraph in Webkit. - if ( data.match( /<div>(<br>|)<\/div>/ ) ) { - data = '<p>' + data.replace( /(<div>(<br>|)<\/div>)+/g, function( match ) { - return repeatParagraphs( match.split( '</div><div>' ).length + 1 ); - } ) + '</p>'; - } - - // One line break create br. - data = data.replace( /<\/div><div>/g, '<br>' ); - - // Remove remaining divs. - data = data.replace( /<\/?div>/g, '' ); - } - - // Opera and Firefox and enterMode != BR. - if ( CKEDITOR.env.gecko && config.enterMode != CKEDITOR.ENTER_BR ) { - // Remove bogus <br> - Fx generates two <brs> for one line break. - // For two line breaks it still produces two <brs>, but it's better to ignore this case than the first one. - if ( CKEDITOR.env.gecko ) - data = data.replace( /^<br><br>$/, '<br>' ); - - // This line satisfy edge case when for Opera we have two line breaks - //data = data.replace( /) - - if ( data.indexOf( '<br><br>' ) > -1 ) { - // Two line breaks create one paragraph, three - 2, four - 3, etc. - data = '<p>' + data.replace( /(<br>){2,}/g, function( match ) { - return repeatParagraphs( match.length / 4 ); - } ) + '</p>'; - } - } - - return switchEnterMode( config, data ); - } - - function filtersFactoryFactory() { - var filters = {}; - - function setUpTags() { - var tags = {}; - - for ( var tag in CKEDITOR.dtd ) { - if ( tag.charAt( 0 ) != '$' && tag != 'div' && tag != 'span' ) { - tags[ tag ] = 1; - } - } - - return tags; - } - - function createSemanticContentFilter() { - var filter = new CKEDITOR.filter(); - - filter.allow( { - $1: { - elements: setUpTags(), - attributes: true, - styles: false, - classes: false - } - } ); - - return filter; - } - - return { - get: function( type ) { - if ( type == 'plain-text' ) { - // Does this look confusing to you? Did we forget about enter mode? - // It is a trick that let's us creating one filter for edidtor, regardless of its - // activeEnterMode (which as the name indicates can change during runtime). - // - // How does it work? - // The active enter mode is passed to the filter.applyTo method. - // The filter first marks all elements except <br> as disallowed and then tries to remove - // them. However, it cannot remove e.g. a <p> element completely, because it's a basic structural element, - // so it tries to replace it with an element created based on the active enter mode, eventually doing nothing. - // - // Now you can sleep well. - return filters.plainText || ( filters.plainText = new CKEDITOR.filter( 'br' ) ); - } else if ( type == 'semantic-content' ) { - return filters.semanticContent || ( filters.semanticContent = createSemanticContentFilter() ); - } else if ( type ) { - // Create filter based on rules (string or object). - return new CKEDITOR.filter( type ); - } - - return null; - } - }; - } - - function filterContent( editor, data, filter ) { - var fragment = CKEDITOR.htmlParser.fragment.fromHtml( data ), - writer = new CKEDITOR.htmlParser.basicWriter(); - - filter.applyTo( fragment, true, false, editor.activeEnterMode ); - fragment.writeHtml( writer ); - - return writer.getHtml(); - } - - function switchEnterMode( config, data ) { - if ( config.enterMode == CKEDITOR.ENTER_BR ) { - data = data.replace( /(<\/p><p>)+/g, function( match ) { - return CKEDITOR.tools.repeat( '<br>', match.length / 7 * 2 ); - } ).replace( /<\/?p>/g, '' ); - } else if ( config.enterMode == CKEDITOR.ENTER_DIV ) { - data = data.replace( /<(\/)?p>/g, '<$1div>' ); - } - - return data; - } - - function preventDefaultSetDropEffectToNone( evt ) { - evt.data.preventDefault(); - evt.data.$.dataTransfer.dropEffect = 'none'; - } - - function initDragDrop( editor ) { - var clipboard = CKEDITOR.plugins.clipboard; - - editor.on( 'contentDom', function() { - var editable = editor.editable(), - dropTarget = CKEDITOR.plugins.clipboard.getDropTarget( editor ), - top = editor.ui.space( 'top' ), - bottom = editor.ui.space( 'bottom' ); - - // -------------- DRAGOVER TOP & BOTTOM -------------- - - // Not allowing dragging on toolbar and bottom (http://dev.ckeditor.com/ticket/12613). - clipboard.preventDefaultDropOnElement( top ); - clipboard.preventDefaultDropOnElement( bottom ); - - // -------------- DRAGSTART -------------- - // Listed on dragstart to mark internal and cross-editor drag & drop - // and save range and selected HTML. - - editable.attachListener( dropTarget, 'dragstart', fireDragEvent ); - - // Make sure to reset data transfer (in case dragend was not called or was canceled). - editable.attachListener( editor, 'dragstart', clipboard.resetDragDataTransfer, clipboard, null, 1 ); - - // Create a dataTransfer object and save it globally. - editable.attachListener( editor, 'dragstart', function( evt ) { - clipboard.initDragDataTransfer( evt, editor ); - }, null, null, 2 ); - - editable.attachListener( editor, 'dragstart', function() { - // Save drag range globally for cross editor D&D. - var dragRange = clipboard.dragRange = editor.getSelection().getRanges()[ 0 ]; - - // Store number of children, so we can later tell if any text node was split on drop. (http://dev.ckeditor.com/ticket/13011, http://dev.ckeditor.com/ticket/13447) - if ( CKEDITOR.env.ie && CKEDITOR.env.version < 10 ) { - clipboard.dragStartContainerChildCount = dragRange ? getContainerChildCount( dragRange.startContainer ) : null; - clipboard.dragEndContainerChildCount = dragRange ? getContainerChildCount( dragRange.endContainer ) : null; - } - }, null, null, 100 ); - - // -------------- DRAGEND -------------- - // Clean up on dragend. - - editable.attachListener( dropTarget, 'dragend', fireDragEvent ); - - // Init data transfer if someone wants to use it in dragend. - editable.attachListener( editor, 'dragend', clipboard.initDragDataTransfer, clipboard, null, 1 ); - - // When drag & drop is done we need to reset dataTransfer so the future - // external drop will be not recognize as internal. - editable.attachListener( editor, 'dragend', clipboard.resetDragDataTransfer, clipboard, null, 100 ); - - // -------------- DRAGOVER -------------- - // We need to call preventDefault on dragover because otherwise if - // we drop image it will overwrite document. - - editable.attachListener( dropTarget, 'dragover', function( evt ) { - // Edge requires this handler to have `preventDefault()` regardless of the situation. - if ( CKEDITOR.env.edge ) { - evt.data.preventDefault(); - return; - } - - var target = evt.data.getTarget(); - - // Prevent reloading page when dragging image on empty document (http://dev.ckeditor.com/ticket/12619). - if ( target && target.is && target.is( 'html' ) ) { - evt.data.preventDefault(); - return; - } - - // If we do not prevent default dragover on IE the file path - // will be loaded and we will lose content. On the other hand - // if we prevent it the cursor will not we shown, so we prevent - // dragover only on IE, on versions which support file API and only - // if the event contains files. - if ( CKEDITOR.env.ie && - CKEDITOR.plugins.clipboard.isFileApiSupported && - evt.data.$.dataTransfer.types.contains( 'Files' ) ) { - evt.data.preventDefault(); - } - } ); - - // -------------- DROP -------------- - - editable.attachListener( dropTarget, 'drop', function( evt ) { - // Do nothing if event was already prevented. (http://dev.ckeditor.com/ticket/13879) - if ( evt.data.$.defaultPrevented ) { - return; - } - - // Cancel native drop. - evt.data.preventDefault(); - - var target = evt.data.getTarget(), - readOnly = target.isReadOnly(); - - // Do nothing if drop on non editable element (http://dev.ckeditor.com/ticket/13015). - // The <html> tag isn't editable (body is), but we want to allow drop on it - // (so it is possible to drop below editor contents). - if ( readOnly && !( target.type == CKEDITOR.NODE_ELEMENT && target.is( 'html' ) ) ) { - return; - } - - // Getting drop position is one of the most complex parts. - var dropRange = clipboard.getRangeAtDropPosition( evt, editor ), - dragRange = clipboard.dragRange; - - // Do nothing if it was not possible to get drop range. - if ( !dropRange ) { - return; - } - - // Fire drop. - fireDragEvent( evt, dragRange, dropRange ); - }, null, null, 9999 ); - - // Create dataTransfer or get it, if it was created before. - editable.attachListener( editor, 'drop', clipboard.initDragDataTransfer, clipboard, null, 1 ); - - // Execute drop action, fire paste. - editable.attachListener( editor, 'drop', function( evt ) { - var data = evt.data; - - if ( !data ) { - return; - } - - // Let user modify drag and drop range. - var dropRange = data.dropRange, - dragRange = data.dragRange, - dataTransfer = data.dataTransfer; - - if ( dataTransfer.getTransferType( editor ) == CKEDITOR.DATA_TRANSFER_INTERNAL ) { - // Execute drop with a timeout because otherwise selection, after drop, - // on IE is in the drag position, instead of drop position. - setTimeout( function() { - clipboard.internalDrop( dragRange, dropRange, dataTransfer, editor ); - }, 0 ); - } else if ( dataTransfer.getTransferType( editor ) == CKEDITOR.DATA_TRANSFER_CROSS_EDITORS ) { - crossEditorDrop( dragRange, dropRange, dataTransfer ); - } else { - externalDrop( dropRange, dataTransfer ); - } - }, null, null, 9999 ); - - // Cross editor drag and drop (drag in one Editor and drop in the other). - function crossEditorDrop( dragRange, dropRange, dataTransfer ) { - // Paste event should be fired before delete contents because otherwise - // Chrome have a problem with drop range (Chrome split the drop - // range container so the offset is bigger then container length). - dropRange.select(); - firePasteEvents( editor, { dataTransfer: dataTransfer, method: 'drop' }, 1 ); - - // Remove dragged content and make a snapshot. - dataTransfer.sourceEditor.fire( 'saveSnapshot' ); - - dataTransfer.sourceEditor.editable().extractHtmlFromRange( dragRange ); - - // Make some selection before saving snapshot, otherwise error will be thrown, because - // there will be no valid selection after content is removed. - dataTransfer.sourceEditor.getSelection().selectRanges( [ dragRange ] ); - dataTransfer.sourceEditor.fire( 'saveSnapshot' ); - } - - // Drop from external source. - function externalDrop( dropRange, dataTransfer ) { - // Paste content into the drop position. - dropRange.select(); - - firePasteEvents( editor, { dataTransfer: dataTransfer, method: 'drop' }, 1 ); - - // Usually we reset DataTranfer on dragend, - // but dragend is called on the same element as dragstart - // so it will not be called on on external drop. - clipboard.resetDragDataTransfer(); - } - - // Fire drag/drop events (dragstart, dragend, drop). - function fireDragEvent( evt, dragRange, dropRange ) { - var eventData = { - $: evt.data.$, - target: evt.data.getTarget() - }; - - if ( dragRange ) { - eventData.dragRange = dragRange; - } - if ( dropRange ) { - eventData.dropRange = dropRange; - } - - if ( editor.fire( evt.name, eventData ) === false ) { - evt.data.preventDefault(); - } - } - - function getContainerChildCount( container ) { - if ( container.type != CKEDITOR.NODE_ELEMENT ) { - container = container.getParent(); - } - - return container.getChildCount(); - } - } ); - } - - /** - * @singleton - * @class CKEDITOR.plugins.clipboard - */ - CKEDITOR.plugins.clipboard = { - /** - * True if the environment allows to set data on copy or cut manually. This value is false in IE, because this browser - * shows the security dialog window when the script tries to set clipboard data and on iOS, because custom data is - * not saved to clipboard there. - * - * @since 4.5 - * @readonly - * @property {Boolean} - */ - isCustomCopyCutSupported: !CKEDITOR.env.ie && !CKEDITOR.env.iOS, - - /** - * True if the environment supports MIME types and custom data types in dataTransfer/cliboardData getData/setData methods. - * - * @since 4.5 - * @readonly - * @property {Boolean} - */ - isCustomDataTypesSupported: !CKEDITOR.env.ie, - - /** - * True if the environment supports File API. - * - * @since 4.5 - * @readonly - * @property {Boolean} - */ - isFileApiSupported: !CKEDITOR.env.ie || CKEDITOR.env.version > 9, - - /** - * Main native paste event editable should listen to. - * - * **Note:** Safari does not like the {@link CKEDITOR.editor#beforePaste} event &mdash; it sometimes does not - * handle <kbd>Ctrl+C</kbd> properly. This is probably caused by some race condition between events. - * Chrome, Firefox and Edge work well with both events, so it is better to use {@link CKEDITOR.editor#paste} - * which will handle pasting from e.g. browsers' menu bars. - * IE7/8 does not like the {@link CKEDITOR.editor#paste} event for which it is throwing random errors. - * - * @since 4.5 - * @readonly - * @property {String} - */ - mainPasteEvent: ( CKEDITOR.env.ie && !CKEDITOR.env.edge ) ? 'beforepaste' : 'paste', - - /** - * Returns `true` if it is expected that a browser provides HTML data through the Clipboard API. - * If not, this method returns `false` and as a result CKEditor will use the paste bin. Read more in - * the [Clipboard Integration](http://docs.ckeditor.com/#!/guide/dev_clipboard-section-clipboard-api) guide. - * - * @since 4.5.2 - * @returns {Boolean} - */ - canClipboardApiBeTrusted: function( dataTransfer, editor ) { - // If it's an internal or cross-editor data transfer, then it means that custom cut/copy/paste support works - // and that the data were put manually on the data transfer so we can be sure that it's available. - if ( dataTransfer.getTransferType( editor ) != CKEDITOR.DATA_TRANSFER_EXTERNAL ) { - return true; - } - - // In Chrome we can trust Clipboard API, with the exception of Chrome on Android (in both - mobile and desktop modes), where - // clipboard API is not available so we need to check it (http://dev.ckeditor.com/ticket/13187). - if ( CKEDITOR.env.chrome && !dataTransfer.isEmpty() ) { - return true; - } - - // Because of a Firefox bug HTML data are not available in some cases (e.g. paste from Word), in such cases we - // need to use the pastebin (http://dev.ckeditor.com/ticket/13528, https://bugzilla.mozilla.org/show_bug.cgi?id=1183686). - if ( CKEDITOR.env.gecko && ( dataTransfer.getData( 'text/html' ) || dataTransfer.getFilesCount() ) ) { - return true; - } - - // Safari fixed clipboard in 10.1 (https://bugs.webkit.org/show_bug.cgi?id=19893) (http://dev.ckeditor.com/ticket/16982). - // However iOS version still doesn't work well enough (https://bugs.webkit.org/show_bug.cgi?id=19893#c34). - if ( CKEDITOR.env.safari && CKEDITOR.env.version >= 603 && !CKEDITOR.env.iOS ) { - return true; - } - - // In older Safari and IE HTML data is not available though the Clipboard API. - // In Edge things are a bit messy at the moment - - // https://connect.microsoft.com/IE/feedback/details/1572456/edge-clipboard-api-text-html-content-messed-up-in-event-clipboarddata - // It is safer to use the paste bin in unknown cases. - return false; - }, - - /** - * Returns the element that should be used as the target for the drop event. - * - * @since 4.5 - * @param {CKEDITOR.editor} editor The editor instance. - * @returns {CKEDITOR.dom.domObject} the element that should be used as the target for the drop event. - */ - getDropTarget: function( editor ) { - var editable = editor.editable(); - - // http://dev.ckeditor.com/ticket/11123 Firefox needs to listen on document, because otherwise event won't be fired. - // http://dev.ckeditor.com/ticket/11086 IE8 cannot listen on document. - if ( ( CKEDITOR.env.ie && CKEDITOR.env.version < 9 ) || editable.isInline() ) { - return editable; - } else { - return editor.document; - } - }, - - /** - * IE 8 & 9 split text node on drop so the first node contains the - * text before the drop position and the second contains the rest. If you - * drag the content from the same node you will be not be able to get - * it (the range becomes invalid), so you need to join them back. - * - * Note that the first node in IE 8 & 9 is the original node object - * but with shortened content. - * - * Before: - * --- Text Node A ---------------------------------- - * /\ - * Drag position - * - * After (IE 8 & 9): - * --- Text Node A ----- --- Text Node B ----------- - * /\ /\ - * Drop position Drag position - * (invalid) - * - * After (other browsers): - * --- Text Node A ---------------------------------- - * /\ /\ - * Drop position Drag position - * - * **Note:** This function is in the public scope for tests usage only. - * - * @since 4.5 - * @private - * @param {CKEDITOR.dom.range} dragRange The drag range. - * @param {CKEDITOR.dom.range} dropRange The drop range. - * @param {Number} preDragStartContainerChildCount The number of children of the drag range start container before the drop. - * @param {Number} preDragEndContainerChildCount The number of children of the drag range end container before the drop. - */ - fixSplitNodesAfterDrop: function( dragRange, dropRange, preDragStartContainerChildCount, preDragEndContainerChildCount ) { - var dropContainer = dropRange.startContainer; - - if ( - typeof preDragEndContainerChildCount != 'number' || - typeof preDragStartContainerChildCount != 'number' - ) { - return; - } - - // We are only concerned about ranges anchored in elements. - if ( dropContainer.type != CKEDITOR.NODE_ELEMENT ) { - return; - } - - if ( handleContainer( dragRange.startContainer, dropContainer, preDragStartContainerChildCount ) ) { - return; - } - - if ( handleContainer( dragRange.endContainer, dropContainer, preDragEndContainerChildCount ) ) { - return; - } - - function handleContainer( dragContainer, dropContainer, preChildCount ) { - var dragElement = dragContainer; - if ( dragElement.type == CKEDITOR.NODE_TEXT ) { - dragElement = dragContainer.getParent(); - } - - if ( dragElement.equals( dropContainer ) && preChildCount != dropContainer.getChildCount() ) { - applyFix( dropRange ); - return true; - } - } - - function applyFix( dropRange ) { - var nodeBefore = dropRange.startContainer.getChild( dropRange.startOffset - 1 ), - nodeAfter = dropRange.startContainer.getChild( dropRange.startOffset ); - - if ( - nodeBefore && nodeBefore.type == CKEDITOR.NODE_TEXT && - nodeAfter && nodeAfter.type == CKEDITOR.NODE_TEXT - ) { - var offset = nodeBefore.getLength(); - - nodeBefore.setText( nodeBefore.getText() + nodeAfter.getText() ); - nodeAfter.remove(); - - dropRange.setStart( nodeBefore, offset ); - dropRange.collapse( true ); - } - } - }, - - /** - * Checks whether turning the drag range into bookmarks will invalidate the drop range. - * This usually happens when the drop range shares the container with the drag range and is - * located after the drag range, but there are countless edge cases. - * - * This function is stricly related to {@link #internalDrop} which toggles - * order in which it creates bookmarks for both ranges based on a value returned - * by this method. In some cases this method returns a value which is not necessarily - * true in terms of what it was meant to check, but it is convenient, because - * we know how it is interpreted in {@link #internalDrop}, so the correct - * behavior of the entire algorithm is assured. - * - * **Note:** This function is in the public scope for tests usage only. - * - * @since 4.5 - * @private - * @param {CKEDITOR.dom.range} dragRange The first range to compare. - * @param {CKEDITOR.dom.range} dropRange The second range to compare. - * @returns {Boolean} `true` if the first range is before the second range. - */ - isDropRangeAffectedByDragRange: function( dragRange, dropRange ) { - var dropContainer = dropRange.startContainer, - dropOffset = dropRange.endOffset; - - // Both containers are the same and drop offset is at the same position or later. - // " A L] A " " M A " - // ^ ^ - if ( dragRange.endContainer.equals( dropContainer ) && dragRange.endOffset <= dropOffset ) { - return true; - } - - // Bookmark for drag start container will mess up with offsets. - // " O [L A " " M A " - // ^ ^ - if ( - dragRange.startContainer.getParent().equals( dropContainer ) && - dragRange.startContainer.getIndex() < dropOffset - ) { - return true; - } - - // Bookmark for drag end container will mess up with offsets. - // " O] L A " " M A " - // ^ ^ - if ( - dragRange.endContainer.getParent().equals( dropContainer ) && - dragRange.endContainer.getIndex() < dropOffset - ) { - return true; - } - - return false; - }, - - /** - * Internal drag and drop (drag and drop in the same editor instance). - * - * **Note:** This function is in the public scope for tests usage only. - * - * @since 4.5 - * @private - * @param {CKEDITOR.dom.range} dragRange The first range to compare. - * @param {CKEDITOR.dom.range} dropRange The second range to compare. - * @param {CKEDITOR.plugins.clipboard.dataTransfer} dataTransfer - * @param {CKEDITOR.editor} editor - */ - internalDrop: function( dragRange, dropRange, dataTransfer, editor ) { - var clipboard = CKEDITOR.plugins.clipboard, - editable = editor.editable(), - dragBookmark, dropBookmark, isDropRangeAffected; - - // Save and lock snapshot so there will be only - // one snapshot for both remove and insert content. - editor.fire( 'saveSnapshot' ); - editor.fire( 'lockSnapshot', { dontUpdate: 1 } ); - - if ( CKEDITOR.env.ie && CKEDITOR.env.version < 10 ) { - this.fixSplitNodesAfterDrop( - dragRange, - dropRange, - clipboard.dragStartContainerChildCount, - clipboard.dragEndContainerChildCount - ); - } - - // Because we manipulate multiple ranges we need to do it carefully, - // changing one range (event creating a bookmark) may make other invalid. - // We need to change ranges into bookmarks so we can manipulate them easily in the future. - // We can change the range which is later in the text before we change the preceding range. - // We call isDropRangeAffectedByDragRange to test the order of ranges. - isDropRangeAffected = this.isDropRangeAffectedByDragRange( dragRange, dropRange ); - if ( !isDropRangeAffected ) { - dragBookmark = dragRange.createBookmark( false ); - } - dropBookmark = dropRange.clone().createBookmark( false ); - if ( isDropRangeAffected ) { - dragBookmark = dragRange.createBookmark( false ); - } - - // Check if drop range is inside range. - // This is an edge case when we drop something on editable's margin/padding. - // That space is not treated as a part of the range we drag, so it is possible to drop there. - // When we drop, browser tries to find closest drop position and it finds it inside drag range. (http://dev.ckeditor.com/ticket/13453) - var startNode = dragBookmark.startNode, - endNode = dragBookmark.endNode, - dropNode = dropBookmark.startNode, - dropInsideDragRange = - // Must check endNode because dragRange could be collapsed in some edge cases (simulated DnD). - endNode && - ( startNode.getPosition( dropNode ) & CKEDITOR.POSITION_PRECEDING ) && - ( endNode.getPosition( dropNode ) & CKEDITOR.POSITION_FOLLOWING ); - - // If the drop range happens to be inside drag range change it's position to the beginning of the drag range. - if ( dropInsideDragRange ) { - // We only change position of bookmark span that is connected with dropBookmark. - // dropRange will be overwritten and set to the dropBookmark later. - dropNode.insertBefore( startNode ); - } - - // No we can safely delete content for the drag range... - dragRange = editor.createRange(); - dragRange.moveToBookmark( dragBookmark ); - editable.extractHtmlFromRange( dragRange, 1 ); - - // ...and paste content into the drop position. - dropRange = editor.createRange(); - dropRange.moveToBookmark( dropBookmark ); - - // We do not select drop range, because of may be in the place we can not set the selection - // (e.g. between blocks, in case of block widget D&D). We put range to the paste event instead. - firePasteEvents( editor, { dataTransfer: dataTransfer, method: 'drop', range: dropRange }, 1 ); - - editor.fire( 'unlockSnapshot' ); - }, - - /** - * Gets the range from the `drop` event. - * - * @since 4.5 - * @param {Object} domEvent A native DOM drop event object. - * @param {CKEDITOR.editor} editor The source editor instance. - * @returns {CKEDITOR.dom.range} range at drop position. - */ - getRangeAtDropPosition: function( dropEvt, editor ) { - var $evt = dropEvt.data.$, - x = $evt.clientX, - y = $evt.clientY, - $range, - defaultRange = editor.getSelection( true ).getRanges()[ 0 ], - range = editor.createRange(); - - // Make testing possible. - if ( dropEvt.data.testRange ) - return dropEvt.data.testRange; - - // Webkits. - if ( document.caretRangeFromPoint && editor.document.$.caretRangeFromPoint( x, y ) ) { - $range = editor.document.$.caretRangeFromPoint( x, y ); - range.setStart( CKEDITOR.dom.node( $range.startContainer ), $range.startOffset ); - range.collapse( true ); - } - // FF. - else if ( $evt.rangeParent ) { - range.setStart( CKEDITOR.dom.node( $evt.rangeParent ), $evt.rangeOffset ); - range.collapse( true ); - } - // IEs 9+. - // We check if editable is focused to make sure that it's an internal DnD. External DnD must use the second - // mechanism because of http://dev.ckeditor.com/ticket/13472#comment:6. - else if ( CKEDITOR.env.ie && CKEDITOR.env.version > 8 && defaultRange && editor.editable().hasFocus ) { - // On IE 9+ range by default is where we expected it. - // defaultRange may be undefined if dragover was canceled (file drop). - return defaultRange; - } - // IE 8 and all IEs if !defaultRange or external DnD. - else if ( document.body.createTextRange ) { - // To use this method we need a focus (which may be somewhere else in case of external drop). - editor.focus(); - - $range = editor.document.getBody().$.createTextRange(); - try { - var sucess = false; - - // If user drop between text line IEs moveToPoint throws exception: - // - // Lorem ipsum pulvinar purus et euismod - // - // dolor sit amet,| consectetur adipiscing - // * - // vestibulum tincidunt augue eget tempus. - // - // * - drop position - // | - expected cursor position - // - // So we try to call moveToPoint with +-1px up to +-20px above or - // below original drop position to find nearest good drop position. - for ( var i = 0; i < 20 && !sucess; i++ ) { - if ( !sucess ) { - try { - $range.moveToPoint( x, y - i ); - sucess = true; - } catch ( err ) { - } - } - if ( !sucess ) { - try { - $range.moveToPoint( x, y + i ); - sucess = true; - } catch ( err ) { - } - } - } - - if ( sucess ) { - var id = 'cke-temp-' + ( new Date() ).getTime(); - $range.pasteHTML( '<span id="' + id + '">\u200b</span>' ); - - var span = editor.document.getById( id ); - range.moveToPosition( span, CKEDITOR.POSITION_BEFORE_START ); - span.remove(); - } else { - // If the fist method does not succeed we might be next to - // the short element (like header): - // - // Lorem ipsum pulvinar purus et euismod. - // - // - // SOME HEADER| * - // - // - // vestibulum tincidunt augue eget tempus. - // - // * - drop position - // | - expected cursor position - // - // In such situation elementFromPoint returns proper element. Using getClientRect - // it is possible to check if the cursor should be at the beginning or at the end - // of paragraph. - var $element = editor.document.$.elementFromPoint( x, y ), - element = new CKEDITOR.dom.element( $element ), - rect; - - if ( !element.equals( editor.editable() ) && element.getName() != 'html' ) { - rect = element.getClientRect(); - - if ( x < rect.left ) { - range.setStartAt( element, CKEDITOR.POSITION_AFTER_START ); - range.collapse( true ); - } else { - range.setStartAt( element, CKEDITOR.POSITION_BEFORE_END ); - range.collapse( true ); - } - } - // If drop happens on no element elementFromPoint returns html or body. - // - // * |Lorem ipsum pulvinar purus et euismod. - // - // vestibulum tincidunt augue eget tempus. - // - // * - drop position - // | - expected cursor position - // - // In such case we can try to use default selection. If startContainer is not - // 'editable' element it is probably proper selection. - else if ( defaultRange && defaultRange.startContainer && - !defaultRange.startContainer.equals( editor.editable() ) ) { - return defaultRange; - - // Otherwise we can not find any drop position and we have to return null - // and cancel drop event. - } else { - return null; - } - - } - } catch ( err ) { - return null; - } - } else { - return null; - } - - return range; - }, - - /** - * This function tries to link the `evt.data.dataTransfer` property of the {@link CKEDITOR.editor#dragstart}, - * {@link CKEDITOR.editor#dragend} and {@link CKEDITOR.editor#drop} events to a single - * {@link CKEDITOR.plugins.clipboard.dataTransfer} object. - * - * This method is automatically used by the core of the drag and drop functionality and - * usually does not have to be called manually when using the drag and drop events. - * - * This method behaves differently depending on whether the drag and drop events were fired - * artificially (to represent a non-native drag and drop) or whether they were caused by the native drag and drop. - * - * If the native event is not available, then it will create a new {@link CKEDITOR.plugins.clipboard.dataTransfer} - * instance (if it does not exist already) and will link it to this and all following event objects until - * the {@link #resetDragDataTransfer} method is called. It means that all three drag and drop events must be fired - * in order to ensure that the data transfer is bound correctly. - * - * If the native event is available, then the {@link CKEDITOR.plugins.clipboard.dataTransfer} is identified - * by its ID and a new instance is assigned to the `evt.data.dataTransfer` only if the ID changed or - * the {@link #resetDragDataTransfer} method was called. - * - * @since 4.5 - * @param {CKEDITOR.dom.event} [evt] A drop event object. - * @param {CKEDITOR.editor} [sourceEditor] The source editor instance. - */ - initDragDataTransfer: function( evt, sourceEditor ) { - // Create a new dataTransfer object based on the drop event. - // If this event was used on dragstart to create dataTransfer - // both dataTransfer objects will have the same id. - var nativeDataTransfer = evt.data.$ ? evt.data.$.dataTransfer : null, - dataTransfer = new this.dataTransfer( nativeDataTransfer, sourceEditor ); - - if ( !nativeDataTransfer ) { - // No native event. - if ( this.dragData ) { - dataTransfer = this.dragData; - } else { - this.dragData = dataTransfer; - } - } else { - // Native event. If there is the same id we will replace dataTransfer with the one - // created on drag, because it contains drag editor, drag content and so on. - // Otherwise (in case of drag from external source) we save new object to - // the global clipboard.dragData. - if ( this.dragData && dataTransfer.id == this.dragData.id ) { - dataTransfer = this.dragData; - } else { - this.dragData = dataTransfer; - } - } - - evt.data.dataTransfer = dataTransfer; - }, - - /** - * Removes the global {@link #dragData} so the next call to {@link #initDragDataTransfer} - * always creates a new instance of {@link CKEDITOR.plugins.clipboard.dataTransfer}. - * - * @since 4.5 - */ - resetDragDataTransfer: function() { - this.dragData = null; - }, - - /** - * Global object storing the data transfer of the current drag and drop operation. - * Do not use it directly, use {@link #initDragDataTransfer} and {@link #resetDragDataTransfer}. - * - * Note: This object is global (meaning that it is not related to a single editor instance) - * in order to handle drag and drop from one editor into another. - * - * @since 4.5 - * @private - * @property {CKEDITOR.plugins.clipboard.dataTransfer} dragData - */ - - /** - * Range object to save the drag range and remove its content after the drop. - * - * @since 4.5 - * @private - * @property {CKEDITOR.dom.range} dragRange - */ - - /** - * Initializes and links data transfer objects based on the paste event. If the data - * transfer object was already initialized on this event, the function will - * return that object. In IE it is not possible to link copy/cut and paste events - * so the method always returns a new object. The same happens if there is no paste event - * passed to the method. - * - * @since 4.5 - * @param {CKEDITOR.dom.event} [evt] A paste event object. - * @param {CKEDITOR.editor} [sourceEditor] The source editor instance. - * @returns {CKEDITOR.plugins.clipboard.dataTransfer} The data transfer object. - */ - initPasteDataTransfer: function( evt, sourceEditor ) { - if ( !this.isCustomCopyCutSupported ) { - // Edge does not support custom copy/cut, but it have some useful data in the clipboardData (http://dev.ckeditor.com/ticket/13755). - return new this.dataTransfer( ( CKEDITOR.env.edge && evt && evt.data.$ && evt.data.$.clipboardData ) || null, sourceEditor ); - } else if ( evt && evt.data && evt.data.$ ) { - var dataTransfer = new this.dataTransfer( evt.data.$.clipboardData, sourceEditor ); - - if ( this.copyCutData && dataTransfer.id == this.copyCutData.id ) { - dataTransfer = this.copyCutData; - dataTransfer.$ = evt.data.$.clipboardData; - } else { - this.copyCutData = dataTransfer; - } - - return dataTransfer; - } else { - return new this.dataTransfer( null, sourceEditor ); - } - }, - - /** - * Prevents dropping on the specified element. - * - * @since 4.5 - * @param {CKEDITOR.dom.element} element The element on which dropping should be disabled. - */ - preventDefaultDropOnElement: function( element ) { - element && element.on( 'dragover', preventDefaultSetDropEffectToNone ); - } - }; - - // Data type used to link drag and drop events. - // - // In IE URL data type is buggie and there is no way to mark drag & drop without - // modifying text data (which would be displayed if user drop content to the textarea) - // so we just read dragged text. - // - // In Chrome and Firefox we can use custom data types. - var clipboardIdDataType = CKEDITOR.plugins.clipboard.isCustomDataTypesSupported ? 'cke/id' : 'Text'; - /** - * Facade for the native `dataTransfer`/`clipboadData` object to hide all differences - * between browsers. - * - * @since 4.5 - * @class CKEDITOR.plugins.clipboard.dataTransfer - * @constructor Creates a class instance. - * @param {Object} [nativeDataTransfer] A native data transfer object. - * @param {CKEDITOR.editor} [editor] The source editor instance. If the editor is defined, dataValue will - * be created based on the editor content and the type will be 'html'. - */ - CKEDITOR.plugins.clipboard.dataTransfer = function( nativeDataTransfer, editor ) { - if ( nativeDataTransfer ) { - this.$ = nativeDataTransfer; - } - - this._ = { - metaRegExp: /^<meta.*?>/i, - bodyRegExp: /<body(?:[\s\S]*?)>([\s\S]*)<\/body>/i, - fragmentRegExp: /<!--(?:Start|End)Fragment-->/g, - - data: {}, - files: [], - - normalizeType: function( type ) { - type = type.toLowerCase(); - - if ( type == 'text' || type == 'text/plain' ) { - return 'Text'; // IE support only Text and URL; - } else if ( type == 'url' ) { - return 'URL'; // IE support only Text and URL; - } else { - return type; - } - } - }; - - // Check if ID is already created. - this.id = this.getData( clipboardIdDataType ); - - // If there is no ID we need to create it. Different browsers needs different ID. - if ( !this.id ) { - if ( clipboardIdDataType == 'Text' ) { - // For IE10+ only Text data type is supported and we have to compare dragged - // and dropped text. If the ID is not set it means that empty string was dragged - // (ex. image with no alt). We change null to empty string. - this.id = ''; - } else { - // String for custom data type. - this.id = 'cke-' + CKEDITOR.tools.getUniqueId(); - } - } - - // In IE10+ we can not use any data type besides text, so we do not call setData. - if ( clipboardIdDataType != 'Text' ) { - // Try to set ID so it will be passed from the drag to the drop event. - // On some browsers with some event it is not possible to setData so we - // need to catch exceptions. - try { - this.$.setData( clipboardIdDataType, this.id ); - } catch ( err ) {} - } - - if ( editor ) { - this.sourceEditor = editor; - - this.setData( 'text/html', editor.getSelectedHtml( 1 ) ); - - // Without setData( 'text', ... ) on dragstart there is no drop event in Safari. - // Also 'text' data is empty as drop to the textarea does not work if we do not put there text. - if ( clipboardIdDataType != 'Text' && !this.getData( 'text/plain' ) ) { - this.setData( 'text/plain', editor.getSelection().getSelectedText() ); - } - } - - /** - * Data transfer ID used to bind all dataTransfer - * objects based on the same event (e.g. in drag and drop events). - * - * @readonly - * @property {String} id - */ - - /** - * A native DOM event object. - * - * @readonly - * @property {Object} $ - */ - - /** - * Source editor &mdash; the editor where the drag starts. - * Might be undefined if the drag starts outside the editor (e.g. when dropping files to the editor). - * - * @readonly - * @property {CKEDITOR.editor} sourceEditor - */ - - /** - * Private properties and methods. - * - * @private - * @property {Object} _ - */ - }; - - /** - * Data transfer operation (drag and drop or copy and paste) started and ended in the same - * editor instance. - * - * @since 4.5 - * @readonly - * @property {Number} [=1] - * @member CKEDITOR - */ - CKEDITOR.DATA_TRANSFER_INTERNAL = 1; - - /** - * Data transfer operation (drag and drop or copy and paste) started in one editor - * instance and ended in another. - * - * @since 4.5 - * @readonly - * @property {Number} [=2] - * @member CKEDITOR - */ - CKEDITOR.DATA_TRANSFER_CROSS_EDITORS = 2; - - /** - * Data transfer operation (drag and drop or copy and paste) started outside of the editor. - * The source of the data may be a textarea, HTML, another application, etc. - * - * @since 4.5 - * @readonly - * @property {Number} [=3] - * @member CKEDITOR - */ - CKEDITOR.DATA_TRANSFER_EXTERNAL = 3; - - CKEDITOR.plugins.clipboard.dataTransfer.prototype = { - /** - * Facade for the native `getData` method. - * - * @param {String} type The type of data to retrieve. - * @param {Boolean} [getNative=false] Indicates if the whole, original content of the dataTransfer should be returned. - * Introduced in CKEditor 4.7.0. - * @returns {String} type Stored data for the given type or an empty string if the data for that type does not exist. - */ - getData: function( type, getNative ) { - function isEmpty( data ) { - return data === undefined || data === null || data === ''; - } - - function filterUnwantedCharacters( data ) { - if ( typeof data !== 'string' ) { - return data; - } - - var htmlEnd = data.indexOf( '</html>' ); - - if ( htmlEnd !== -1 ) { - // Just cut everything after `</html>`, so everything after htmlEnd index + length of `</html>`. - // Required to workaround bug: https://bugs.chromium.org/p/chromium/issues/detail?id=696978 - return data.substring( 0, htmlEnd + 7 ); - } - - return data; - } - - type = this._.normalizeType( type ); - - var data = this._.data[ type ], - result; - - if ( isEmpty( data ) ) { - try { - data = this.$.getData( type ); - } catch ( e ) {} - } - - if ( isEmpty( data ) ) { - data = ''; - } - - // Some browsers add <meta http-equiv="content-type" content="text/html; charset=utf-8"> at the begging of the HTML data - // or surround it with <html><head>...</head><body>(some content)<!--StartFragment--> and <!--EndFragment-->(some content)</body></html> - // This code removes meta tags and returns only the contents of the <body> element if found. Note that - // some significant content may be placed outside Start/EndFragment comments so it's kept. - // - // See http://dev.ckeditor.com/ticket/13583 for more details. - // Additionally http://dev.ckeditor.com/ticket/16847 adds a flag allowing to get the whole, original content. - if ( type == 'text/html' && !getNative ) { - data = data.replace( this._.metaRegExp, '' ); - - // Keep only contents of the <body> element - result = this._.bodyRegExp.exec( data ); - if ( result && result.length ) { - data = result[ 1 ]; - - // Remove also comments. - data = data.replace( this._.fragmentRegExp, '' ); - } - } - // Firefox on Linux put files paths as a text/plain data if there are files - // in the dataTransfer object. We need to hide it, because files should be - // handled on paste only if dataValue is empty. - else if ( type == 'Text' && CKEDITOR.env.gecko && this.getFilesCount() && - data.substring( 0, 7 ) == 'file://' ) { - data = ''; - } - - return filterUnwantedCharacters( data ); - }, - - /** - * Facade for the native `setData` method. - * - * @param {String} type The type of data to retrieve. - * @param {String} value The data to add. - */ - setData: function( type, value ) { - type = this._.normalizeType( type ); - - this._.data[ type ] = value; - - // There is "Unexpected call to method or property access." error if you try - // to set data of unsupported type on IE. - if ( !CKEDITOR.plugins.clipboard.isCustomDataTypesSupported && type != 'URL' && type != 'Text' ) { - return; - } - - // If we use the text type to bind the ID, then if someone tries to set the text, we must also - // update ID accordingly. http://dev.ckeditor.com/ticket/13468. - if ( clipboardIdDataType == 'Text' && type == 'Text' ) { - this.id = value; - } - - try { - this.$.setData( type, value ); - } catch ( e ) {} - }, - - /** - * Gets the data transfer type. - * - * @param {CKEDITOR.editor} targetEditor The drop/paste target editor instance. - * @returns {Number} Possible values: {@link CKEDITOR#DATA_TRANSFER_INTERNAL}, - * {@link CKEDITOR#DATA_TRANSFER_CROSS_EDITORS}, {@link CKEDITOR#DATA_TRANSFER_EXTERNAL}. - */ - getTransferType: function( targetEditor ) { - if ( !this.sourceEditor ) { - return CKEDITOR.DATA_TRANSFER_EXTERNAL; - } else if ( this.sourceEditor == targetEditor ) { - return CKEDITOR.DATA_TRANSFER_INTERNAL; - } else { - return CKEDITOR.DATA_TRANSFER_CROSS_EDITORS; - } - }, - - /** - * Copies the data from the native data transfer to a private cache. - * This function is needed because the data from the native data transfer - * is available only synchronously to the event listener. It is not possible - * to get the data asynchronously, after a timeout, and the {@link CKEDITOR.editor#paste} - * event is fired asynchronously &mdash; hence the need for caching the data. - */ - cacheData: function() { - if ( !this.$ ) { - return; - } - - var that = this, - i, file; - - function getAndSetData( type ) { - type = that._.normalizeType( type ); - - var data = that.getData( type, true ); - if ( data ) { - that._.data[ type ] = data; - } - } - - // Copy data. - if ( CKEDITOR.plugins.clipboard.isCustomDataTypesSupported ) { - if ( this.$.types ) { - for ( i = 0; i < this.$.types.length; i++ ) { - getAndSetData( this.$.types[ i ] ); - } - } - } else { - getAndSetData( 'Text' ); - getAndSetData( 'URL' ); - } - - // Copy files references. - file = this._getImageFromClipboard(); - if ( ( this.$ && this.$.files ) || file ) { - this._.files = []; - - // Edge have empty files property with no length (http://dev.ckeditor.com/ticket/13755). - if ( this.$.files && this.$.files.length ) { - for ( i = 0; i < this.$.files.length; i++ ) { - this._.files.push( this.$.files[ i ] ); - } - } - - // Don't include $.items if both $.files and $.items contains files, because, - // according to spec and browsers behavior, they contain the same files. - if ( this._.files.length === 0 && file ) { - this._.files.push( file ); - } - } - }, - - /** - * Gets the number of files in the dataTransfer object. - * - * @returns {Number} The number of files. - */ - getFilesCount: function() { - if ( this._.files.length ) { - return this._.files.length; - } - - if ( this.$ && this.$.files && this.$.files.length ) { - return this.$.files.length; - } - - return this._getImageFromClipboard() ? 1 : 0; - }, - - /** - * Gets the file at the index given. - * - * @param {Number} i Index. - * @returns {File} File instance. - */ - getFile: function( i ) { - if ( this._.files.length ) { - return this._.files[ i ]; - } - - if ( this.$ && this.$.files && this.$.files.length ) { - return this.$.files[ i ]; - } - - // File or null if the file was not found. - return i === 0 ? this._getImageFromClipboard() : undefined; - }, - - /** - * Checks if the data transfer contains any data. - * - * @returns {Boolean} `true` if the object contains no data. - */ - isEmpty: function() { - var typesToCheck = {}, - type; - - // If dataTransfer contains files it is not empty. - if ( this.getFilesCount() ) { - return false; - } - - // Add custom types. - for ( type in this._.data ) { - typesToCheck[ type ] = 1; - } - - // Add native types. - if ( this.$ ) { - if ( CKEDITOR.plugins.clipboard.isCustomDataTypesSupported ) { - if ( this.$.types ) { - for ( var i = 0; i < this.$.types.length; i++ ) { - typesToCheck[ this.$.types[ i ] ] = 1; - } - } - } else { - typesToCheck.Text = 1; - typesToCheck.URL = 1; - } - } - - // Remove ID. - if ( clipboardIdDataType != 'Text' ) { - typesToCheck[ clipboardIdDataType ] = 0; - } - - for ( type in typesToCheck ) { - if ( typesToCheck[ type ] && this.getData( type ) !== '' ) { - return false; - } - } - - return true; - }, - - /** - * When the content of the clipboard is pasted in Chrome, the clipboard data object has an empty `files` property, - * but it is possible to get the file as `items[0].getAsFile();` (http://dev.ckeditor.com/ticket/12961). - * - * @private - * @returns {File} File instance or `null` if not found. - */ - _getImageFromClipboard: function() { - var file; - - if ( this.$ && this.$.items && this.$.items[ 0 ] ) { - try { - file = this.$.items[ 0 ].getAsFile(); - // Duck typing - if ( file && file.type ) { - return file; - } - } catch ( err ) { - // noop - } - } - - return undefined; - } - }; -} )(); - -/** - * The default content type that is used when pasted data cannot be clearly recognized as HTML or text. - * - * For example: `'foo'` may come from a plain text editor or a website. It is not possible to recognize the content - * type in this case, so the default type will be used. At the same time it is clear that `'<b>example</b> text'` is - * HTML and its origin is a web page, email or another rich text editor. - * - * **Note:** If content type is text, then styles of the paste context are preserved. - * - * CKEDITOR.config.clipboard_defaultContentType = 'text'; - * - * See also the {@link CKEDITOR.editor#paste} event and read more about the integration with clipboard - * in the [Clipboard Deep Dive guide](#!/guide/dev_clipboard). - * - * @since 4.0 - * @cfg {'html'/'text'} [clipboard_defaultContentType='html'] - * @member CKEDITOR.config - */ - -/** - * Fired after the user initiated a paste action, but before the data is inserted into the editor. - * The listeners to this event are able to process the content before its insertion into the document. - * - * Read more about the integration with clipboard in the [Clipboard Deep Dive guide](#!/guide/dev_clipboard). - * - * See also: - * - * * the {@link CKEDITOR.config#pasteFilter} option, - * * the {@link CKEDITOR.editor#drop} event, - * * the {@link CKEDITOR.plugins.clipboard.dataTransfer} class. - * - * @since 3.1 - * @event paste - * @member CKEDITOR.editor - * @param {CKEDITOR.editor} editor This editor instance. - * @param data - * @param {String} data.type The type of data in `data.dataValue`. Usually `'html'` or `'text'`, but for listeners - * with a priority smaller than `6` it may also be `'auto'` which means that the content type has not been recognised yet - * (this will be done by the content type sniffer that listens with priority `6`). - * @param {String} data.dataValue HTML to be pasted. - * @param {String} data.method Indicates the data transfer method. It could be drag and drop or copy and paste. - * Possible values: `'drop'`, `'paste'`. Introduced in CKEditor 4.5. - * @param {CKEDITOR.plugins.clipboard.dataTransfer} data.dataTransfer Facade for the native dataTransfer object - * which provides access to various data types and files, and passes some data between linked events - * (like drag and drop). Introduced in CKEditor 4.5. - * @param {Boolean} [data.dontFilter=false] Whether the {@link CKEDITOR.editor#pasteFilter paste filter} should not - * be applied to data. This option has no effect when `data.type` equals `'text'` which means that for instance - * {@link CKEDITOR.config#forcePasteAsPlainText} has a higher priority. Introduced in CKEditor 4.5. - */ - -/** - * Fired before the {@link #paste} event. Allows to preset data type. - * - * **Note:** This event is deprecated. Add a `0` priority listener for the - * {@link #paste} event instead. - * - * @deprecated - * @event beforePaste - * @member CKEDITOR.editor - */ - -/** - * Fired after the {@link #paste} event if content was modified. Note that if the paste - * event does not insert any data, the `afterPaste` event will not be fired. - * - * @event afterPaste - * @member CKEDITOR.editor - */ - -/** - * Facade for the native `drop` event. Fired when the native `drop` event occurs. - * - * **Note:** To manipulate dropped data, use the {@link CKEDITOR.editor#paste} event. - * Use the `drop` event only to control drag and drop operations (e.g. to prevent the ability to drop some content). - * - * Read more about integration with drag and drop in the [Clipboard Deep Dive guide](#!/guide/dev_clipboard). - * - * See also: - * - * * The {@link CKEDITOR.editor#paste} event, - * * The {@link CKEDITOR.editor#dragstart} and {@link CKEDITOR.editor#dragend} events, - * * The {@link CKEDITOR.plugins.clipboard.dataTransfer} class. - * - * @since 4.5 - * @event drop - * @member CKEDITOR.editor - * @param {CKEDITOR.editor} editor This editor instance. - * @param data - * @param {Object} data.$ Native drop event. - * @param {CKEDITOR.dom.node} data.target Drop target. - * @param {CKEDITOR.plugins.clipboard.dataTransfer} data.dataTransfer DataTransfer facade. - * @param {CKEDITOR.dom.range} data.dragRange Drag range, lets you manipulate the drag range. - * Note that dragged HTML is saved as `text/html` data on `dragstart` so if you change the drag range - * on drop, dropped HTML will not change. You need to change it manually using - * {@link CKEDITOR.plugins.clipboard.dataTransfer#setData dataTransfer.setData}. - * @param {CKEDITOR.dom.range} data.dropRange Drop range, lets you manipulate the drop range. - */ - -/** - * Facade for the native `dragstart` event. Fired when the native `dragstart` event occurs. - * - * This event can be canceled in order to block the drag start operation. It can also be fired to mimic the start of the drag and drop - * operation. For instance, the `widget` plugin uses this option to integrate its custom block widget drag and drop with - * the entire system. - * - * Read more about integration with drag and drop in the [Clipboard Deep Dive guide](#!/guide/dev_clipboard). - * - * See also: - * - * * The {@link CKEDITOR.editor#paste} event, - * * The {@link CKEDITOR.editor#drop} and {@link CKEDITOR.editor#dragend} events, - * * The {@link CKEDITOR.plugins.clipboard.dataTransfer} class. - * - * @since 4.5 - * @event dragstart - * @member CKEDITOR.editor - * @param {CKEDITOR.editor} editor This editor instance. - * @param data - * @param {Object} data.$ Native dragstart event. - * @param {CKEDITOR.dom.node} data.target Drag target. - * @param {CKEDITOR.plugins.clipboard.dataTransfer} data.dataTransfer DataTransfer facade. - */ - -/** - * Facade for the native `dragend` event. Fired when the native `dragend` event occurs. - * - * Read more about integration with drag and drop in the [Clipboard Deep Dive guide](#!/guide/dev_clipboard). - * - * See also: - * - * * The {@link CKEDITOR.editor#paste} event, - * * The {@link CKEDITOR.editor#drop} and {@link CKEDITOR.editor#dragend} events, - * * The {@link CKEDITOR.plugins.clipboard.dataTransfer} class. - * - * @since 4.5 - * @event dragend - * @member CKEDITOR.editor - * @param {CKEDITOR.editor} editor This editor instance. - * @param data - * @param {Object} data.$ Native dragend event. - * @param {CKEDITOR.dom.node} data.target Drag target. - * @param {CKEDITOR.plugins.clipboard.dataTransfer} data.dataTransfer DataTransfer facade. - */ - -/** - * Defines a filter which is applied to external data pasted or dropped into the editor. Possible values are: - * - * * `'plain-text'` &ndash; Content will be pasted as a plain text. - * * `'semantic-content'` &ndash; Known tags (except `div`, `span`) with all attributes (except - * `style` and `class`) will be kept. - * * `'h1 h2 p div'` &ndash; Custom rules compatible with {@link CKEDITOR.filter}. - * * `null` &ndash; Content will not be filtered by the paste filter (but it still may be filtered - * by [Advanced Content Filter](#!/guide/dev_advanced_content_filter)). This value can be used to - * disable the paste filter in Chrome and Safari, where this option defaults to `'semantic-content'`. - * - * Example: - * - * config.pasteFilter = 'plain-text'; - * - * Custom setting: - * - * config.pasteFilter = 'h1 h2 p ul ol li; img[!src, alt]; a[!href]'; - * - * Based on this configuration option, a proper {@link CKEDITOR.filter} instance will be defined and assigned to the editor - * as a {@link CKEDITOR.editor#pasteFilter}. You can tweak the paste filter settings on the fly on this object - * as well as delete or replace it. - * - * var editor = CKEDITOR.replace( 'editor', { - * pasteFilter: 'semantic-content' - * } ); - * - * editor.on( 'instanceReady', function() { - * // The result of this will be that all semantic content will be preserved - * // except tables. - * editor.pasteFilter.disallow( 'table' ); - * } ); - * - * Note that the paste filter is applied only to **external** data. There are three data sources: - * - * * copied and pasted in the same editor (internal), - * * copied from one editor and pasted into another (cross-editor), - * * coming from all other sources like websites, MS Word, etc. (external). - * - * If {@link CKEDITOR.config#allowedContent Advanced Content Filter} is not disabled, then - * it will also be applied to pasted and dropped data. The paste filter job is to "normalize" - * external data which often needs to be handled differently than content produced by the editor. - * - * This setting defaults to `'semantic-content'` in Chrome, Opera and Safari (all Blink and Webkit based browsers) - * due to messy HTML which these browsers keep in the clipboard. In other browsers it defaults to `null`. - * - * @since 4.5 - * @cfg {String} [pasteFilter='semantic-content' in Chrome and Safari and `null` in other browsers] - * @member CKEDITOR.config - */ - -/** - * {@link CKEDITOR.filter Content filter} which is used when external data is pasted or dropped into the editor - * or a forced paste as plain text occurs. - * - * This object might be used on the fly to define rules for pasted external content. - * This object is available and used if the {@link CKEDITOR.plugins.clipboard clipboard} plugin is enabled and - * {@link CKEDITOR.config#pasteFilter} or {@link CKEDITOR.config#forcePasteAsPlainText} was defined. - * - * To enable the filter: - * - * var editor = CKEDITOR.replace( 'editor', { - * pasteFilter: 'plain-text' - * } ); - * - * You can also modify the filter on the fly later on: - * - * editor.pasteFilter = new CKEDITOR.filter( 'p h1 h2; a[!href]' ); - * - * Note that the paste filter is only applied to **external** data. There are three data sources: - * - * * copied and pasted in the same editor (internal), - * * copied from one editor and pasted into another (cross-editor), - * * coming from all other sources like websites, MS Word, etc. (external). - * - * If {@link CKEDITOR.config#allowedContent Advanced Content Filter} is not disabled, then - * it will also be applied to pasted and dropped data. The paste filter job is to "normalize" - * external data which often needs to be handled differently than content produced by the editor. - * - * @since 4.5 - * @readonly - * @property {CKEDITOR.filter} [pasteFilter] - * @member CKEDITOR.editor - */ - -/** - * Duration of the notification displayed after pasting was blocked by the browser. - * - * @since 4.7.0 - * @cfg {Number} [clipboard_notificationDuration=10000] - * @member CKEDITOR.config - */ -CKEDITOR.config.clipboard_notificationDuration = 10000; diff --git a/admin/plugins/ckeditor/plugins/dialog/dialogDefinition.js b/admin/plugins/ckeditor/plugins/dialog/dialogDefinition.js deleted file mode 100644 index 5c35976..0000000 --- a/admin/plugins/ckeditor/plugins/dialog/dialogDefinition.js +++ /dev/null @@ -1,4 +0,0 @@ -/* - Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. - For licensing, see LICENSE.md or http://ckeditor.com/license -*/ diff --git a/admin/plugins/ckeditor/plugins/icons.png b/admin/plugins/ckeditor/plugins/icons.png deleted file mode 100644 index 5cdb2db..0000000 Binary files a/admin/plugins/ckeditor/plugins/icons.png and /dev/null differ diff --git a/admin/plugins/ckeditor/plugins/icons_hidpi.png b/admin/plugins/ckeditor/plugins/icons_hidpi.png deleted file mode 100644 index 3ddfb1d..0000000 Binary files a/admin/plugins/ckeditor/plugins/icons_hidpi.png and /dev/null differ diff --git a/admin/plugins/ckeditor/plugins/image/dialogs/image.js b/admin/plugins/ckeditor/plugins/image/dialogs/image.js deleted file mode 100644 index ad47e6b..0000000 --- a/admin/plugins/ckeditor/plugins/image/dialogs/image.js +++ /dev/null @@ -1,44 +0,0 @@ -/* - Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. - For licensing, see LICENSE.md or http://ckeditor.com/license -*/ -(function(){var v=function(d,l){function v(){var a=arguments,b=this.getContentElement("advanced","txtdlgGenStyle");b&&b.commit.apply(b,a);this.foreach(function(b){b.commit&&"txtdlgGenStyle"!=b.id&&b.commit.apply(b,a)})}function k(a){if(!w){w=1;var b=this.getDialog(),c=b.imageElement;if(c){this.commit(1,c);a=[].concat(a);for(var d=a.length,f,g=0;g<d;g++)(f=b.getContentElement.apply(b,a[g].split(":")))&&f.setup(1,c)}w=0}}var m=/^\s*(\d+)((px)|\%)?\s*$/i,z=/(^\s*(\d+)((px)|\%)?\s*$)|^$/i,r=/^\d+px$/, -A=function(){var a=this.getValue(),b=this.getDialog(),c=a.match(m);c&&("%"==c[2]&&n(b,!1),a=c[1]);b.lockRatio&&(c=b.originalElement,"true"==c.getCustomData("isReady")&&("txtHeight"==this.id?(a&&"0"!=a&&(a=Math.round(a/c.$.height*c.$.width)),isNaN(a)||b.setValueOf("info","txtWidth",a)):(a&&"0"!=a&&(a=Math.round(a/c.$.width*c.$.height)),isNaN(a)||b.setValueOf("info","txtHeight",a))));e(b)},e=function(a){if(!a.originalElement||!a.preview)return 1;a.commitContent(4,a.preview);return 0},w,n=function(a, -b){if(!a.getContentElement("info","ratioLock"))return null;var c=a.originalElement;if(!c)return null;if("check"==b){if(!a.userlockRatio&&"true"==c.getCustomData("isReady")){var d=a.getValueOf("info","txtWidth"),f=a.getValueOf("info","txtHeight"),c=1E3*c.$.width/c.$.height,g=1E3*d/f;a.lockRatio=!1;d||f?isNaN(c)||isNaN(g)||Math.round(c)!=Math.round(g)||(a.lockRatio=!0):a.lockRatio=!0}}else void 0!==b?a.lockRatio=b:(a.userlockRatio=1,a.lockRatio=!a.lockRatio);d=CKEDITOR.document.getById(t);a.lockRatio? -d.removeClass("cke_btn_unlocked"):d.addClass("cke_btn_unlocked");d.setAttribute("aria-checked",a.lockRatio);CKEDITOR.env.hc&&d.getChild(0).setHtml(a.lockRatio?CKEDITOR.env.ie?"■":"▣":CKEDITOR.env.ie?"□":"▢");return a.lockRatio},B=function(a,b){var c=a.originalElement;if("true"==c.getCustomData("isReady")){var d=a.getContentElement("info","txtWidth"),f=a.getContentElement("info","txtHeight"),g;b?c=g=0:(g=c.$.width,c=c.$.height);d&&d.setValue(g);f&&f.setValue(c)}e(a)},C=function(a,b){function c(a,b){var c= -a.match(m);return c?("%"==c[2]&&(c[1]+="%",n(d,!1)),c[1]):b}if(1==a){var d=this.getDialog(),f="",g="txtWidth"==this.id?"width":"height",e=b.getAttribute(g);e&&(f=c(e,f));f=c(b.getStyle(g),f);this.setValue(f)}},x,u=function(){var a=this.originalElement,b=CKEDITOR.document.getById(p);a.setCustomData("isReady","true");a.removeListener("load",u);a.removeListener("error",h);a.removeListener("abort",h);b&&b.setStyle("display","none");this.dontResetSize||B(this,!1===d.config.image_prefillDimensions);this.firstLoad&& -CKEDITOR.tools.setTimeout(function(){n(this,"check")},0,this);this.dontResetSize=this.firstLoad=!1;e(this)},h=function(){var a=this.originalElement,b=CKEDITOR.document.getById(p);a.removeListener("load",u);a.removeListener("error",h);a.removeListener("abort",h);a=CKEDITOR.getUrl(CKEDITOR.plugins.get("image").path+"images/noimage.png");this.preview&&this.preview.setAttribute("src",a);b&&b.setStyle("display","none");n(this,!1)},q=function(a){return CKEDITOR.tools.getNextId()+"_"+a},t=q("btnLockSizes"), -y=q("btnResetSize"),p=q("ImagePreviewLoader"),E=q("previewLink"),D=q("previewImage");return{title:d.lang.image["image"==l?"title":"titleButton"],minWidth:"moono-lisa"==(CKEDITOR.skinName||d.config.skin)?500:420,minHeight:360,onShow:function(){this.linkEditMode=this.imageEditMode=this.linkElement=this.imageElement=!1;this.lockRatio=!0;this.userlockRatio=0;this.dontResetSize=!1;this.firstLoad=!0;this.addLink=!1;var a=this.getParentEditor(),b=a.getSelection(),c=(b=b&&b.getSelectedElement())&&a.elementPath(b).contains("a", -1),d=CKEDITOR.document.getById(p);d&&d.setStyle("display","none");x=new CKEDITOR.dom.element("img",a.document);this.preview=CKEDITOR.document.getById(D);this.originalElement=a.document.createElement("img");this.originalElement.setAttribute("alt","");this.originalElement.setCustomData("isReady","false");c&&(this.linkElement=c,this.addLink=this.linkEditMode=!0,a=c.getChildren(),1==a.count()&&(d=a.getItem(0),d.type==CKEDITOR.NODE_ELEMENT&&(d.is("img")||d.is("input"))&&(this.imageElement=a.getItem(0), -this.imageElement.is("img")?this.imageEditMode="img":this.imageElement.is("input")&&(this.imageEditMode="input"))),"image"==l&&this.setupContent(2,c));if(this.customImageElement)this.imageEditMode="img",this.imageElement=this.customImageElement,delete this.customImageElement;else if(b&&"img"==b.getName()&&!b.data("cke-realelement")||b&&"input"==b.getName()&&"image"==b.getAttribute("type"))this.imageEditMode=b.getName(),this.imageElement=b;this.imageEditMode&&(this.cleanImageElement=this.imageElement, -this.imageElement=this.cleanImageElement.clone(!0,!0),this.setupContent(1,this.imageElement));n(this,!0);CKEDITOR.tools.trim(this.getValueOf("info","txtUrl"))||(this.preview.removeAttribute("src"),this.preview.setStyle("display","none"))},onOk:function(){if(this.imageEditMode){var a=this.imageEditMode;"image"==l&&"input"==a&&confirm(d.lang.image.button2Img)?(this.imageElement=d.document.createElement("img"),this.imageElement.setAttribute("alt",""),d.insertElement(this.imageElement)):"image"!=l&&"img"== -a&&confirm(d.lang.image.img2Button)?(this.imageElement=d.document.createElement("input"),this.imageElement.setAttributes({type:"image",alt:""}),d.insertElement(this.imageElement)):(this.imageElement=this.cleanImageElement,delete this.cleanImageElement)}else"image"==l?this.imageElement=d.document.createElement("img"):(this.imageElement=d.document.createElement("input"),this.imageElement.setAttribute("type","image")),this.imageElement.setAttribute("alt","");this.linkEditMode||(this.linkElement=d.document.createElement("a")); -this.commitContent(1,this.imageElement);this.commitContent(2,this.linkElement);this.imageElement.getAttribute("style")||this.imageElement.removeAttribute("style");this.imageEditMode?!this.linkEditMode&&this.addLink?(d.insertElement(this.linkElement),this.imageElement.appendTo(this.linkElement)):this.linkEditMode&&!this.addLink&&(d.getSelection().selectElement(this.linkElement),d.insertElement(this.imageElement)):this.addLink?this.linkEditMode?this.linkElement.equals(d.getSelection().getSelectedElement())? -(this.linkElement.setHtml(""),this.linkElement.append(this.imageElement,!1)):d.insertElement(this.imageElement):(d.insertElement(this.linkElement),this.linkElement.append(this.imageElement,!1)):d.insertElement(this.imageElement)},onLoad:function(){"image"!=l&&this.hidePage("Link");var a=this._.element.getDocument();this.getContentElement("info","ratioLock")&&(this.addFocusable(a.getById(y),5),this.addFocusable(a.getById(t),5));this.commitContent=v},onHide:function(){this.preview&&this.commitContent(8, -this.preview);this.originalElement&&(this.originalElement.removeListener("load",u),this.originalElement.removeListener("error",h),this.originalElement.removeListener("abort",h),this.originalElement.remove(),this.originalElement=!1);delete this.imageElement},contents:[{id:"info",label:d.lang.image.infoTab,accessKey:"I",elements:[{type:"vbox",padding:0,children:[{type:"hbox",widths:["280px","110px"],align:"right",className:"cke_dialog_image_url",children:[{id:"txtUrl",type:"text",label:d.lang.common.url, -required:!0,onChange:function(){var a=this.getDialog(),b=this.getValue();if(0<b.length){var a=this.getDialog(),c=a.originalElement;a.preview&&a.preview.removeStyle("display");c.setCustomData("isReady","false");var d=CKEDITOR.document.getById(p);d&&d.setStyle("display","");c.on("load",u,a);c.on("error",h,a);c.on("abort",h,a);c.setAttribute("src",b);a.preview&&(x.setAttribute("src",b),a.preview.setAttribute("src",x.$.src),e(a))}else a.preview&&(a.preview.removeAttribute("src"),a.preview.setStyle("display", -"none"))},setup:function(a,b){if(1==a){var c=b.data("cke-saved-src")||b.getAttribute("src");this.getDialog().dontResetSize=!0;this.setValue(c);this.setInitValue()}},commit:function(a,b){1==a&&(this.getValue()||this.isChanged())?(b.data("cke-saved-src",this.getValue()),b.setAttribute("src",this.getValue())):8==a&&(b.setAttribute("src",""),b.removeAttribute("src"))},validate:CKEDITOR.dialog.validate.notEmpty(d.lang.image.urlMissing)},{type:"button",id:"browse",style:"display:inline-block;margin-top:14px;", -align:"center",label:d.lang.common.browseServer,hidden:!0,filebrowser:"info:txtUrl"}]}]},{id:"txtAlt",type:"text",label:d.lang.image.alt,accessKey:"T","default":"",onChange:function(){e(this.getDialog())},setup:function(a,b){1==a&&this.setValue(b.getAttribute("alt"))},commit:function(a,b){1==a?(this.getValue()||this.isChanged())&&b.setAttribute("alt",this.getValue()):4==a?b.setAttribute("alt",this.getValue()):8==a&&b.removeAttribute("alt")}},{type:"hbox",children:[{id:"basic",type:"vbox",children:[{type:"hbox", -requiredContent:"img{width,height}",widths:["50%","50%"],children:[{type:"vbox",padding:1,children:[{type:"text",width:"45px",id:"txtWidth",label:d.lang.common.width,onKeyUp:A,onChange:function(){k.call(this,"advanced:txtdlgGenStyle")},validate:function(){var a=this.getValue().match(z);(a=!(!a||0===parseInt(a[1],10)))||alert(d.lang.common.invalidWidth);return a},setup:C,commit:function(a,b){var c=this.getValue();1==a?(c&&d.activeFilter.check("img{width,height}")?b.setStyle("width",CKEDITOR.tools.cssLength(c)): -b.removeStyle("width"),b.removeAttribute("width")):4==a?c.match(m)?b.setStyle("width",CKEDITOR.tools.cssLength(c)):(c=this.getDialog().originalElement,"true"==c.getCustomData("isReady")&&b.setStyle("width",c.$.width+"px")):8==a&&(b.removeAttribute("width"),b.removeStyle("width"))}},{type:"text",id:"txtHeight",width:"45px",label:d.lang.common.height,onKeyUp:A,onChange:function(){k.call(this,"advanced:txtdlgGenStyle")},validate:function(){var a=this.getValue().match(z);(a=!(!a||0===parseInt(a[1],10)))|| -alert(d.lang.common.invalidHeight);return a},setup:C,commit:function(a,b){var c=this.getValue();1==a?(c&&d.activeFilter.check("img{width,height}")?b.setStyle("height",CKEDITOR.tools.cssLength(c)):b.removeStyle("height"),b.removeAttribute("height")):4==a?c.match(m)?b.setStyle("height",CKEDITOR.tools.cssLength(c)):(c=this.getDialog().originalElement,"true"==c.getCustomData("isReady")&&b.setStyle("height",c.$.height+"px")):8==a&&(b.removeAttribute("height"),b.removeStyle("height"))}}]},{id:"ratioLock", -type:"html",className:"cke_dialog_image_ratiolock",style:"margin-top:30px;width:40px;height:40px;",onLoad:function(){var a=CKEDITOR.document.getById(y),b=CKEDITOR.document.getById(t);a&&(a.on("click",function(a){B(this);a.data&&a.data.preventDefault()},this.getDialog()),a.on("mouseover",function(){this.addClass("cke_btn_over")},a),a.on("mouseout",function(){this.removeClass("cke_btn_over")},a));b&&(b.on("click",function(a){n(this);var b=this.originalElement,d=this.getValueOf("info","txtWidth");"true"== -b.getCustomData("isReady")&&d&&(b=b.$.height/b.$.width*d,isNaN(b)||(this.setValueOf("info","txtHeight",Math.round(b)),e(this)));a.data&&a.data.preventDefault()},this.getDialog()),b.on("mouseover",function(){this.addClass("cke_btn_over")},b),b.on("mouseout",function(){this.removeClass("cke_btn_over")},b))},html:'\x3cdiv\x3e\x3ca href\x3d"javascript:void(0)" tabindex\x3d"-1" title\x3d"'+d.lang.image.lockRatio+'" class\x3d"cke_btn_locked" id\x3d"'+t+'" role\x3d"checkbox"\x3e\x3cspan class\x3d"cke_icon"\x3e\x3c/span\x3e\x3cspan class\x3d"cke_label"\x3e'+ -d.lang.image.lockRatio+'\x3c/span\x3e\x3c/a\x3e\x3ca href\x3d"javascript:void(0)" tabindex\x3d"-1" title\x3d"'+d.lang.image.resetSize+'" class\x3d"cke_btn_reset" id\x3d"'+y+'" role\x3d"button"\x3e\x3cspan class\x3d"cke_label"\x3e'+d.lang.image.resetSize+"\x3c/span\x3e\x3c/a\x3e\x3c/div\x3e"}]},{type:"vbox",padding:1,children:[{type:"text",id:"txtBorder",requiredContent:"img{border-width}",width:"60px",label:d.lang.image.border,"default":"",onKeyUp:function(){e(this.getDialog())},onChange:function(){k.call(this, -"advanced:txtdlgGenStyle")},validate:CKEDITOR.dialog.validate.integer(d.lang.image.validateBorder),setup:function(a,b){if(1==a){var c;c=(c=(c=b.getStyle("border-width"))&&c.match(/^(\d+px)(?: \1 \1 \1)?$/))&&parseInt(c[1],10);isNaN(parseInt(c,10))&&(c=b.getAttribute("border"));this.setValue(c)}},commit:function(a,b){var c=parseInt(this.getValue(),10);1==a||4==a?(isNaN(c)?!c&&this.isChanged()&&b.removeStyle("border"):(b.setStyle("border-width",CKEDITOR.tools.cssLength(c)),b.setStyle("border-style", -"solid")),1==a&&b.removeAttribute("border")):8==a&&(b.removeAttribute("border"),b.removeStyle("border-width"),b.removeStyle("border-style"),b.removeStyle("border-color"))}},{type:"text",id:"txtHSpace",requiredContent:"img{margin-left,margin-right}",width:"60px",label:d.lang.image.hSpace,"default":"",onKeyUp:function(){e(this.getDialog())},onChange:function(){k.call(this,"advanced:txtdlgGenStyle")},validate:CKEDITOR.dialog.validate.integer(d.lang.image.validateHSpace),setup:function(a,b){if(1==a){var c, -d;c=b.getStyle("margin-left");d=b.getStyle("margin-right");c=c&&c.match(r);d=d&&d.match(r);c=parseInt(c,10);d=parseInt(d,10);c=c==d&&c;isNaN(parseInt(c,10))&&(c=b.getAttribute("hspace"));this.setValue(c)}},commit:function(a,b){var c=parseInt(this.getValue(),10);1==a||4==a?(isNaN(c)?!c&&this.isChanged()&&(b.removeStyle("margin-left"),b.removeStyle("margin-right")):(b.setStyle("margin-left",CKEDITOR.tools.cssLength(c)),b.setStyle("margin-right",CKEDITOR.tools.cssLength(c))),1==a&&b.removeAttribute("hspace")): -8==a&&(b.removeAttribute("hspace"),b.removeStyle("margin-left"),b.removeStyle("margin-right"))}},{type:"text",id:"txtVSpace",requiredContent:"img{margin-top,margin-bottom}",width:"60px",label:d.lang.image.vSpace,"default":"",onKeyUp:function(){e(this.getDialog())},onChange:function(){k.call(this,"advanced:txtdlgGenStyle")},validate:CKEDITOR.dialog.validate.integer(d.lang.image.validateVSpace),setup:function(a,b){if(1==a){var c,d;c=b.getStyle("margin-top");d=b.getStyle("margin-bottom");c=c&&c.match(r); -d=d&&d.match(r);c=parseInt(c,10);d=parseInt(d,10);c=c==d&&c;isNaN(parseInt(c,10))&&(c=b.getAttribute("vspace"));this.setValue(c)}},commit:function(a,b){var c=parseInt(this.getValue(),10);1==a||4==a?(isNaN(c)?!c&&this.isChanged()&&(b.removeStyle("margin-top"),b.removeStyle("margin-bottom")):(b.setStyle("margin-top",CKEDITOR.tools.cssLength(c)),b.setStyle("margin-bottom",CKEDITOR.tools.cssLength(c))),1==a&&b.removeAttribute("vspace")):8==a&&(b.removeAttribute("vspace"),b.removeStyle("margin-top"),b.removeStyle("margin-bottom"))}}, -{id:"cmbAlign",requiredContent:"img{float}",type:"select",widths:["35%","65%"],style:"width:90px",label:d.lang.common.align,"default":"",items:[[d.lang.common.notSet,""],[d.lang.common.alignLeft,"left"],[d.lang.common.alignRight,"right"]],onChange:function(){e(this.getDialog());k.call(this,"advanced:txtdlgGenStyle")},setup:function(a,b){if(1==a){var c=b.getStyle("float");switch(c){case "inherit":case "none":c=""}!c&&(c=(b.getAttribute("align")||"").toLowerCase());this.setValue(c)}},commit:function(a, -b){var c=this.getValue();if(1==a||4==a){if(c?b.setStyle("float",c):b.removeStyle("float"),1==a)switch(c=(b.getAttribute("align")||"").toLowerCase(),c){case "left":case "right":b.removeAttribute("align")}}else 8==a&&b.removeStyle("float")}}]}]},{type:"vbox",height:"250px",children:[{type:"html",id:"htmlPreview",style:"width:95%;",html:"\x3cdiv\x3e"+CKEDITOR.tools.htmlEncode(d.lang.common.preview)+'\x3cbr\x3e\x3cdiv id\x3d"'+p+'" class\x3d"ImagePreviewLoader" style\x3d"display:none"\x3e\x3cdiv class\x3d"loading"\x3e\x26nbsp;\x3c/div\x3e\x3c/div\x3e\x3cdiv class\x3d"ImagePreviewBox"\x3e\x3ctable\x3e\x3ctr\x3e\x3ctd\x3e\x3ca href\x3d"javascript:void(0)" target\x3d"_blank" onclick\x3d"return false;" id\x3d"'+ -E+'"\x3e\x3cimg id\x3d"'+D+'" alt\x3d"" /\x3e\x3c/a\x3e'+(d.config.image_previewText||"Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Maecenas feugiat consequat diam. Maecenas metus. Vivamus diam purus, cursus a, commodo non, facilisis vitae, nulla. Aenean dictum lacinia tortor. Nunc iaculis, nibh non iaculis aliquam, orci felis euismod neque, sed ornare massa mauris sed velit. Nulla pretium mi et risus. Fusce mi pede, tempor id, cursus ac, ullamcorper nec, enim. Sed tortor. Curabitur molestie. Duis velit augue, condimentum at, ultrices a, luctus ut, orci. Donec pellentesque egestas eros. Integer cursus, augue in cursus faucibus, eros pede bibendum sem, in tempus tellus justo quis ligula. Etiam eget tortor. Vestibulum rutrum, est ut placerat elementum, lectus nisl aliquam velit, tempor aliquam eros nunc nonummy metus. In eros metus, gravida a, gravida sed, lobortis id, turpis. Ut ultrices, ipsum at venenatis fringilla, sem nulla lacinia tellus, eget aliquet turpis mauris non enim. Nam turpis. Suspendisse lacinia. Curabitur ac tortor ut ipsum egestas elementum. Nunc imperdiet gravida mauris.")+ -"\x3c/td\x3e\x3c/tr\x3e\x3c/table\x3e\x3c/div\x3e\x3c/div\x3e"}]}]}]},{id:"Link",requiredContent:"a[href]",label:d.lang.image.linkTab,padding:0,elements:[{id:"txtUrl",type:"text",label:d.lang.common.url,style:"width: 100%","default":"",setup:function(a,b){if(2==a){var c=b.data("cke-saved-href");c||(c=b.getAttribute("href"));this.setValue(c)}},commit:function(a,b){if(2==a&&(this.getValue()||this.isChanged())){var c=this.getValue();b.data("cke-saved-href",c);b.setAttribute("href",c);this.getValue()|| -!d.config.image_removeLinkByEmptyURL?this.getDialog().addLink=!0:this.getDialog().addLink=!1}}},{type:"button",id:"browse",className:"cke_dialog_image_browse",filebrowser:{action:"Browse",target:"Link:txtUrl",url:d.config.filebrowserImageBrowseLinkUrl},style:"float:right",hidden:!0,label:d.lang.common.browseServer},{id:"cmbTarget",type:"select",requiredContent:"a[target]",label:d.lang.common.target,"default":"",items:[[d.lang.common.notSet,""],[d.lang.common.targetNew,"_blank"],[d.lang.common.targetTop, -"_top"],[d.lang.common.targetSelf,"_self"],[d.lang.common.targetParent,"_parent"]],setup:function(a,b){2==a&&this.setValue(b.getAttribute("target")||"")},commit:function(a,b){2==a&&(this.getValue()||this.isChanged())&&b.setAttribute("target",this.getValue())}}]},{id:"Upload",hidden:!0,filebrowser:"uploadButton",label:d.lang.image.upload,elements:[{type:"file",id:"upload",label:d.lang.image.btnUpload,style:"height:40px",size:38},{type:"fileButton",id:"uploadButton",filebrowser:"info:txtUrl",label:d.lang.image.btnUpload, -"for":["Upload","upload"]}]},{id:"advanced",label:d.lang.common.advancedTab,elements:[{type:"hbox",widths:["50%","25%","25%"],children:[{type:"text",id:"linkId",requiredContent:"img[id]",label:d.lang.common.id,setup:function(a,b){1==a&&this.setValue(b.getAttribute("id"))},commit:function(a,b){1==a&&(this.getValue()||this.isChanged())&&b.setAttribute("id",this.getValue())}},{id:"cmbLangDir",type:"select",requiredContent:"img[dir]",style:"width : 100px;",label:d.lang.common.langDir,"default":"",items:[[d.lang.common.notSet, -""],[d.lang.common.langDirLtr,"ltr"],[d.lang.common.langDirRtl,"rtl"]],setup:function(a,b){1==a&&this.setValue(b.getAttribute("dir"))},commit:function(a,b){1==a&&(this.getValue()||this.isChanged())&&b.setAttribute("dir",this.getValue())}},{type:"text",id:"txtLangCode",requiredContent:"img[lang]",label:d.lang.common.langCode,"default":"",setup:function(a,b){1==a&&this.setValue(b.getAttribute("lang"))},commit:function(a,b){1==a&&(this.getValue()||this.isChanged())&&b.setAttribute("lang",this.getValue())}}]}, -{type:"text",id:"txtGenLongDescr",requiredContent:"img[longdesc]",label:d.lang.common.longDescr,setup:function(a,b){1==a&&this.setValue(b.getAttribute("longDesc"))},commit:function(a,b){1==a&&(this.getValue()||this.isChanged())&&b.setAttribute("longDesc",this.getValue())}},{type:"hbox",widths:["50%","50%"],children:[{type:"text",id:"txtGenClass",requiredContent:"img(cke-xyz)",label:d.lang.common.cssClass,"default":"",setup:function(a,b){1==a&&this.setValue(b.getAttribute("class"))},commit:function(a, -b){1==a&&(this.getValue()||this.isChanged())&&b.setAttribute("class",this.getValue())}},{type:"text",id:"txtGenTitle",requiredContent:"img[title]",label:d.lang.common.advisoryTitle,"default":"",onChange:function(){e(this.getDialog())},setup:function(a,b){1==a&&this.setValue(b.getAttribute("title"))},commit:function(a,b){1==a?(this.getValue()||this.isChanged())&&b.setAttribute("title",this.getValue()):4==a?b.setAttribute("title",this.getValue()):8==a&&b.removeAttribute("title")}}]},{type:"text",id:"txtdlgGenStyle", -requiredContent:"img{cke-xyz}",label:d.lang.common.cssStyle,validate:CKEDITOR.dialog.validate.inlineStyle(d.lang.common.invalidInlineStyle),"default":"",setup:function(a,b){if(1==a){var c=b.getAttribute("style");!c&&b.$.style.cssText&&(c=b.$.style.cssText);this.setValue(c);var d=b.$.style.height,c=b.$.style.width,d=(d?d:"").match(m),c=(c?c:"").match(m);this.attributesInStyle={height:!!d,width:!!c}}},onChange:function(){k.call(this,"info:cmbFloat info:cmbAlign info:txtVSpace info:txtHSpace info:txtBorder info:txtWidth info:txtHeight".split(" ")); -e(this)},commit:function(a,b){1==a&&(this.getValue()||this.isChanged())&&b.setAttribute("style",this.getValue())}}]}]}};CKEDITOR.dialog.add("image",function(d){return v(d,"image")});CKEDITOR.dialog.add("imagebutton",function(d){return v(d,"imagebutton")})})(); \ No newline at end of file diff --git a/admin/plugins/ckeditor/plugins/image/images/noimage.png b/admin/plugins/ckeditor/plugins/image/images/noimage.png deleted file mode 100644 index 74c6ee9..0000000 Binary files a/admin/plugins/ckeditor/plugins/image/images/noimage.png and /dev/null differ diff --git a/admin/plugins/ckeditor/plugins/imageuploader/img/cd-icon-logout.png b/admin/plugins/ckeditor/plugins/imageuploader/img/cd-icon-logout.png deleted file mode 100644 index 4aa53ac..0000000 Binary files a/admin/plugins/ckeditor/plugins/imageuploader/img/cd-icon-logout.png and /dev/null differ diff --git a/admin/plugins/ckeditor/plugins/imageuploader/imgbrowser.php b/admin/plugins/ckeditor/plugins/imageuploader/imgbrowser.php deleted file mode 100644 index 13b9c36..0000000 --- a/admin/plugins/ckeditor/plugins/imageuploader/imgbrowser.php +++ /dev/null @@ -1,210 +0,0 @@ -<?php -require_once(dirname(dirname(dirname(dirname(dirname(dirname(__FILE__)))))) . '/Utils/functions.php'); - -// Don't remove the following two rows -$link = "http://$_SERVER[HTTP_HOST]$_SERVER[REQUEST_URI]"; -$root = "http://$_SERVER[HTTP_HOST]"; - -// checking lang value -if(isset($_COOKIE['sy_lang'])) { - $load_lang_code = $_COOKIE['sy_lang']; -} else { - $load_lang_code = "en"; -} - -// including lang files -switch ($load_lang_code) { - case "en": - require(__DIR__ . '/lang/en.php'); - break; -} - -// Including the plugin config file, don't delete the following row! -require(__DIR__ . '/pluginconfig.php'); -// Including the functions file, don't delete the following row! -require(__DIR__ . '/function.php'); -// Including the check_permission file, don't delete the following row! -require(__DIR__ . '/check_permission.php'); - -$adminController = new \Controller\AdminController(); -if($adminController->checkPermission('Edit pages')) -?> - -<!DOCTYPE html> -<html lang="en" - ondragover="toggleDropzone('show')" - ondragleave="toggleDropzone('hide')"> -<head> - - <meta charset="utf-8"> - <meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=no"> - <title><?php echo $imagebrowser1; ?> :: Fujana Solutions</title> - <meta name="author" content="Moritz Maleck"> - <link rel="icon" href="img/cd-ico-browser.ico"> - - <link rel="stylesheet" href="styles.css"> - - <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js"></script> - <script src="http://www.maleck.org/imageuploader/plugininfo.js"></script> - <script src="dist/jquery.lazyload.min.js"></script> - <script src="dist/js.cookie-2.0.3.min.js"></script> - - <script src="dist/sweetalert.min.js"></script> - <link rel="stylesheet" type="text/css" href="dist/sweetalert.css"> - - <script src="function.js"></script> - - <script> - // Plugin version - var currentpluginver = "<?php echo $currentpluginver; ?>"; - // ajax request to register the plugin for better support - $.ajax({ - method: "POST", - url: "http://ibm.bplaced.com/imageuploader/register.php", - data: { root: "<?php echo $root; ?>", link: "<?php echo $link; ?>", ver: ""+ currentpluginver +"" } - }) - </script> - -</head> -<body ontouchstart=""> - -<div id="header"> - <a class="" href="http://imageuploaderforckeditor.altervista.org/" target="_blank"><img src="img/cd-icon-image.png" class="headerIconLogo"></a> - <img onclick="Cookies.remove('qEditMode');window.close();" src="img/cd-icon-close-grey.png" class="headerIconRight iconHover"> - <img onclick="reloadImages();" src="img/cd-icon-refresh.png" class="headerIconRight iconHover"> - <img onclick="uploadImg();" src="img/cd-icon-upload-grey.png" class="headerIconCenter iconHover"> - <?php if($show_settings): ?> - <img onclick="pluginSettings();" src="img/cd-icon-settings.png" class="headerIconRight iconHover"> - <?php endif; ?> -</div> - -<div id="editbar"> - <div id="editbarView" onclick="#" class="editbarDiv"><img src="img/cd-icon-images.png" class="editbarIcon editbarIconLeft"><p class="editbarText"><?php echo $buttons1; ?></p></div> - <a href="#" id="editbarDownload" download><div class="editbarDiv"><img src="img/cd-icon-download.png" class="editbarIcon editbarIconLeft"><p class="editbarText"><?php echo $buttons2; ?></p></div></a> - <div id="editbarUse" onclick="#" class="editbarDiv"><img src="img/cd-icon-use.png" class="editbarIcon editbarIconLeft"><p class="editbarText"><?php echo $buttons3; ?></p></div> - <div id="editbarDelete" onclick="#" class="editbarDiv"><img src="img/cd-icon-qtrash.png" class="editbarIcon editbarIconLeft"><p class="editbarText"><?php echo $buttons4; ?></p></div> - <img onclick="hideEditBar();" src="img/cd-icon-close-black.png" class="editbarIcon editbarIconRight"> -</div> - -<div id="updates" class="popout"></div> - -<div id="dropzone" class="dropzone" - ondragenter="return false;" - ondragover="return false;" - ondrop="drop(event)"> - <p> - <img src="img/cd-icon-upload-big.png"><br> - <?php echo $imagebrowser4; ?> - </p> -</div> - -<p class="folderInfo"><?php echo $imagebrowser2; ?> <span id="finalcount"></span> <?php echo $imagebrowser3; ?> - <span id="finalsize"></span> - <?php if($file_style == "block") { ?> - <img title="List" src="img/cd-icon-list.png" class="headerIcon floatRight" onclick="window.location.href = 'pluginconfig.php?file_style=list';"> - <?php } elseif($file_style == "list") { ?> - <img title="Block" src="img/cd-icon-block.png" class="headerIcon floatRight" onclick="window.location.href = 'pluginconfig.php?file_style=block';"> - <img title="Quick Edit" id="qEditBtnOpen" src="img/cd-icon-qedit.png" class="headerIcon floatRight" onclick="toogleQEditMode();"> - <img title="Quick Edit" id="qEditBtnDone" src="img/cd-icon-done.png" class="headerIcon floatRight" onclick="toogleQEditMode();"> - <?php } ?> -</p> - -<div id="files"> - <?php - loadImages(); - ?> -</div> - - -<?php if($file_style == "block") { ?> - <div class="fileDiv" onclick="window.location.href = 'http://imageuploaderforckeditor.altervista.org';"> - <div class="imgDiv">Image Uploader for CKEditor</div> - <p class="fileDescription">&copy; 2016 by Moritz Maleck</p> - <p class="fileTime">imageuploaderforckeditor.altervista.org</p> - <p class="fileTime">180 KB</p> - </div> -<?php } elseif($file_style == "list") { ?> - <div class="fullWidthFileDiv" onclick="window.location.href = 'http://imageuploaderforckeditor.altervista.org';"> - <div class="fullWidthimgDiv"><img class="fullWidthfileImg lazy" data-original="img/cd-icon-credits.png"></div> - <p class="fullWidthfileDescription">Image Uploader for CKEditor</p> - <p class="fullWidthfileTime fullWidthfileMime">png</p> - <p class="fullWidthfileTime">180 KB</p> - <p class="fullWidthfileTime fullWidth30percent">imageuploaderforckeditor.altervista.org</p> - </div> -<?php } ?> - -<div id="imageFullSreen" class="lightbox popout"> - <div class="buttonBar"> - <button id="imageFullSreenClose" class="headerBtn" onclick="$('#imageFullSreen').hide(); $('#background').slideUp(250, 'swing');"><img src="img/cd-icon-close.png" class="headerIcon"></button> - <a href="#" id="imgActionDownload" download><button class="headerBtn"><img src="img/cd-icon-download.png" class="headerIcon"></button></a> - <button class="headerBtn greenBtn" id="imgActionUse" onclick="#" class="imgActionP"><img src="img/cd-icon-use.png" class="headerIcon"> <?php echo $buttons3; ?></button> - </div><br><br> - <img id="imageFSimg" src="#" style="#"><br> -</div> - -<div id="uploadImgDiv" class="lightbox popout"> - <div class="buttonBar"> - <button class="headerBtn" onclick="$('#uploadImgDiv').hide(); $('#background2').slideUp(250, 'swing');"><img src="img/cd-icon-close.png" class="headerIcon"></button> - <button class="headerBtn greenBtn" name="submit" onclick="$('#uploadImgForm').submit();"><img src="img/cd-icon-upload.png" class="headerIcon"> <?php echo $buttons7; ?></button> - </div><br><br><br> - <form action="imgupload.php" method="post" enctype="multipart/form-data" id="uploadImgForm" onsubmit="return checkUpload();"> - <p class="uploadP"><img src="img/cd-icon-select.png" class="headerIcon"> <?php echo $uploadpanel1; ?></p> - <input type="file" name="upload" id="upload"> - <br><h3 class="settingsh3" style="font-size:12px;font-weight:lighter;"><?php echo $uploadpanel2; ?><br><span style="font-weight:bolder;">"<?php echo $useruploadfolder; ?>"</span> (<?php echo $uploadpanel3; ?>)</h3> - <br> - </form> -</div> - -<?php if($show_settings) { ?> - <div id="settingsDiv" class="lightbox popout"> - <div class="buttonBar"> - <button class="headerBtn" onclick="$('#settingsDiv').hide(); $('#background3').slideUp(250, 'swing');"><img src="img/cd-icon-close.png" class="headerIcon"></button> - </div><br><br><br> - - <h3 class="settingsh3"><?php echo $panelsettings1; ?></h3> - <!--choose existing folder text--> - <p class="settingsh3 saveUploadPathP"><?php echo $panelsettings2; ?></p> - <!--editable upload path--> - <p class="uploadP editable" id="uploadpathEditable"><?php echo $useruploadfolder; ?></p> - <!--path history--> - <p class="settingsh3 saveUploadPathP"><?php echo $panelsettings3; ?></p> - <?php - pathHistory(); - ?> - <!--cancel btn--> - <button class="headerBtn greyBtn saveUploadPathA" id="pathCancel"><?php echo $buttons5; ?></button> - <!--save btn--> - <button class="headerBtn saveUploadPathA" onclick="updateImagePath();"><?php echo $buttons6; ?></button><br class="saveUploadPathA"> - - <br><h3 class="settingsh3"><?php echo $panelsettings4; ?></h3> - <!--Hide/show news section--> - <?php if($news_sction == "yes"){ ?> - <p class="uploadP" onclick="disableNews()"><img src="http://www.maleck.org/imageuploader/img/hide.png" class="headerIcon"> <?php echo $panelsettings21; ?></p> - <?php } elseif($news_sction == "no") { ?> - <p class="uploadP" onclick="enableNews()"><img src="http://www.maleck.org/imageuploader/img/show.png" class="headerIcon"> <?php echo $panelsettings22; ?></p> - <?php } ?> - <!--Hide/show file extension--> - <?php if($file_extens == "yes"){ ?> - <p class="uploadP" onclick="extensionSettings('no');"><img src="img/cd-icon-hideext.png" class="headerIcon"> <?php echo $panelsettings5; ?></p> - <?php } elseif($file_extens == "no") { ?> - <p class="uploadP" onclick="extensionSettings('yes');"><img src="img/cd-icon-showext.png" class="headerIcon"> <?php echo $panelsettings6; ?></p> - <?php } ?> - <!--change language--> - <p class="uploadP" onclick="openLangPanel();"><img src="img/cd-icon-translate.png" class="headerIcon"> <?php echo $panelsettings20; ?></p> - </div> -<?php } ?> - -<div id="background" class="background" onclick="$('#imageFullSreenClose').trigger('click');"></div> -<div id="background2" class="background" onclick="$('#uploadImgDiv').hide(); $('#background2').slideUp(250, 'swing');"></div> -<div id="background3" class="background" onclick="$('#settingsDiv').hide(); $('#background3').slideUp(250, 'swing');"></div> -<div id="background4" class="background" onclick="$('#setLangDiv').hide(); $('#background4').slideUp(250, 'swing');"></div> - -<!--Noscript part if js is disabled--> -<noscript> <div class="noscript"> <div id="folderError" class="noscriptContainer popout"> <b><?php echo $alerts1; ?></b><br><br><?php echo $alerts5; ?> <a href="http://www.enable-javascript.com/" target="_blank"><?php echo $alerts6; ?></a><br><br><?php echo $alerts4; ?> </div></div></noscript> - -<?php -// Including the language file, don't delete the following row! -require(__DIR__ . '/lang/lang.php'); -?> - -</body> -</html> \ No newline at end of file diff --git a/admin/plugins/ckeditor/plugins/imageuploader/imgdelete.php b/admin/plugins/ckeditor/plugins/imageuploader/imgdelete.php deleted file mode 100644 index 20c24ef..0000000 --- a/admin/plugins/ckeditor/plugins/imageuploader/imgdelete.php +++ /dev/null @@ -1,144 +0,0 @@ -<?php -session_start(); - -// checking lang value -if(isset($_COOKIE['sy_lang'])) { - $load_lang_code = $_COOKIE['sy_lang']; -} else { - $load_lang_code = "en"; -} - -// including lang files -switch ($load_lang_code) { - case "en": - require(__DIR__ . '/lang/en.php'); - break; - case "pl": - require(__DIR__ . '/lang/pl.php'); - break; -} - -// Including the plugin config file, don't delete the following row! -require(__DIR__ . '/pluginconfig.php'); - -?> - -<!DOCTYPE html> -<html lang="de"> -<head> - <meta charset="utf-8"> - <title><?php echo $imagebrowser1; ?> :: Delete</title> - <script src="dist/sweetalert.min.js"></script> - <link rel="stylesheet" type="text/css" href="dist/sweetalert.css"> -</head> -<body> - -<?php - -if(isset($_SESSION['admin'])){ - - $imgName = filter_input(INPUT_GET, 'img', FILTER_SANITIZE_STRING); - $imgSrc = $useruploadpath.$imgName; - - // ckeck if file exists - if(file_exists($imgSrc)){ - // check if file is available to delete - if (is_writable($imgSrc)) { - // check if file is a sytem file - $imgBasepath = pathinfo($imgSrc); - $imgBasename = $imgBasepath['basename']; - if(!in_array($imgBasename, $sy_icons)){ - // check if the selected file is in the upload folder - $imgDirname = $imgBasepath['dirname']; - $preExamplePath = "$useruploadpath/test.txt"; - $tmpUserUPath = pathinfo($preExamplePath); - $useruploadpathDirname = $tmpUserUPath['dirname']; - if($imgDirname == $useruploadpathDirname){ - // check if file is an image - $a = getimagesize($imgSrc); - $image_type = $a[2]; - if(in_array($image_type , array(IMAGETYPE_GIF , IMAGETYPE_JPEG , IMAGETYPE_PNG , IMAGETYPE_ICO))) { - unlink($imgSrc); - header('Location: ' . $_SERVER['HTTP_REFERER']); - } else { - echo ' - <script> - swal({ - title: "'.$dltimageerrors1.'", - text: "'.$dltimageerrors2.'", - type: "error", - closeOnConfirm: false - }, - function(){ - history.back(); - }); - </script> - '; - } - } else { - echo ' - <script> - swal({ - title: "'.$dltimageerrors1.'", - text: "'.$dltimageerrors3.'", - type: "error", - closeOnConfirm: false - }, - function(){ - history.back(); - }); - </script> - '; - } - } else { - echo ' - <script> - swal({ - title: "'.$dltimageerrors1.'", - text: "'.$dltimageerrors4.'", - type: "error", - closeOnConfirm: false - }, - function(){ - history.back(); - }); - </script> - '; - } - } else { - echo ' - <script> - swal({ - title: "'.$dltimageerrors1.'", - text: "'.$dltimageerrors5.'", - type: "error", - closeOnConfirm: false - }, - function(){ - history.back(); - }); - </script> - '; - } - } else { - echo ' - <script> - swal({ - title: "'.$dltimageerrors1.'", - text: "'.$dltimageerrors6.'", - type: "error", - closeOnConfirm: false - }, - function(){ - history.back(); - }); - </script> - '; - } - -} - -?> - -</body> -</html> diff --git a/admin/plugins/ckeditor/plugins/imageuploader/imgupload.php b/admin/plugins/ckeditor/plugins/imageuploader/imgupload.php deleted file mode 100644 index a157a45..0000000 --- a/admin/plugins/ckeditor/plugins/imageuploader/imgupload.php +++ /dev/null @@ -1,78 +0,0 @@ -<?php -require_once(dirname(dirname(dirname(dirname(dirname(dirname(__FILE__)))))) . '/Utils/functions.php'); -$adminController = new \Controller\AdminController(); -if(!$adminController->checkPermission('Edit pages')) exit; - -// checking lang value -if(isset($_COOKIE['sy_lang'])) { - $load_lang_code = $_COOKIE['sy_lang']; -} else { - $load_lang_code = "en"; -} - -// including lang files -switch ($load_lang_code) { - case "en": - require(__DIR__ . '/lang/en.php'); - break; - case "pl": - require(__DIR__ . '/lang/pl.php'); - break; -} - -// Including the plugin config file, don't delete the following row! -require(__DIR__ . '/pluginconfig.php'); - -$info = pathinfo($_FILES["upload"]["name"]); -$ext = $info['extension']; -$target_dir = $useruploadpath; -$ckpath = "ckeditor/plugins/imageuploader/$useruploadpath"; -$randomLetters = $rand = substr(md5(microtime()),rand(0,26),6); -$imgnumber = count(scandir($target_dir)); -$filename = "$imgnumber$randomLetters.$ext"; -$target_file = $target_dir . $filename; -$ckfile = $ckpath . $filename; -$uploadOk = 1; -$imageFileType = pathinfo($target_file,PATHINFO_EXTENSION); -// Check if image file is a actual image or fake image -$check = getimagesize($_FILES["upload"]["tmp_name"]); -if($check !== false) { - $uploadOk = 1; -} else { - echo "<script>alert('".$uploadimgerrors1."');</script>"; - $uploadOk = 0; -} -// Check if file already exists -if (file_exists($target_file)) { - echo "<script>alert('".$uploadimgerrors2."');</script>"; - $uploadOk = 0; -} -// Check file size -if ($_FILES["upload"]["size"] > 1024000) { - echo "<script>alert('".$uploadimgerrors3."');</script>"; - $uploadOk = 0; -} -// Allow certain file formats -if($imageFileType != "jpg" && $imageFileType != "png" && $imageFileType != "jpeg" -&& $imageFileType != "gif" && $imageFileType != "ico" ) { - echo "<script>alert('".$uploadimgerrors4."');</script>"; - $uploadOk = 0; -} -// Check if $uploadOk is set to 0 by an error -if ($uploadOk == 0) { - echo "<script>alert('".$uploadimgerrors5."');</script>"; -// if everything is ok, try to upload file -} else { - if (move_uploaded_file($_FILES["upload"]["tmp_name"], $target_file)) { - if(isset($_GET['CKEditorFuncNum'])){ - $CKEditorFuncNum = $_GET['CKEditorFuncNum']; - echo "<script type='text/javascript'>window.parent.CKEDITOR.tools.callFunction($CKEditorFuncNum, '$ckfile', '');</script>"; - } - } else { - echo "<script>alert('".$uploadimgerrors6." ".$target_file." ".$uploadimgerrors7."');</script>"; - } -} -//Back to previous site -if(!isset($_GET['CKEditorFuncNum'])){ - echo '<script>history.back();</script>'; -} \ No newline at end of file diff --git a/admin/plugins/ckeditor/plugins/imageuploader/logout.php b/admin/plugins/ckeditor/plugins/imageuploader/logout.php deleted file mode 100644 index 61379a2..0000000 --- a/admin/plugins/ckeditor/plugins/imageuploader/logout.php +++ /dev/null @@ -1,8 +0,0 @@ -<?php -session_start(); -if(!isset($_SESSION['admin'])) { - exit; -} - -session_destroy(); -header("Location: imgbrowser.php"); diff --git a/admin/plugins/ckeditor/plugins/imageuploader/pluginconfig.php b/admin/plugins/ckeditor/plugins/imageuploader/pluginconfig.php deleted file mode 100644 index 1027c75..0000000 --- a/admin/plugins/ckeditor/plugins/imageuploader/pluginconfig.php +++ /dev/null @@ -1,157 +0,0 @@ -<?php - -// checking lang value -if(isset($_COOKIE['sy_lang'])) { - $load_lang_code = $_COOKIE['sy_lang']; -} else { - $load_lang_code = "en"; -} - -// including lang files -switch ($load_lang_code) { - case "en": - require(__DIR__ . '/lang/en.php'); - break; - case "pl": - require(__DIR__ . '/lang/pl.php'); - break; -} - -if(isset($_POST["newpath"]) or isset($_POST["extension"]) or isset($_GET["file_style"])){ - session_start(); -} - -if(isset($_SESSION['admin'])){ - - if(isset($_POST["newpath"])){ - $newpath = filter_input(INPUT_POST, 'newpath', FILTER_SANITIZE_STRING); - $root = $_SERVER['DOCUMENT_ROOT']; - $data = ' - $useruploadfolder = "'.$newpath.'"; - $useruploadpath = "' . realpath(dirname(dirname(dirname(dirname(dirname(dirname(__FILE__))))))) . '/img/uploads/" . $useruploadfolder; - $foldershistory[] = "'.$newpath.'"; - '.PHP_EOL; - $fp = fopen(__DIR__ . '/pluginconfig.php', 'a'); - fwrite($fp, $data); - } - - if(isset($_POST["extension"])){ - $extension_setting = filter_input(INPUT_POST, 'extension', FILTER_SANITIZE_STRING); - if($extension_setting == "no" or $extension_setting == "yes"){ - setcookie( - "file_extens", - $extension_setting, - time() + (10 * 365 * 24 * 60 * 60) - ); - } else { - echo ' - <script> - alert("'.$dltimageerrors1.'\r\n\r\n'.$configerrors1.'"); - history.back(); - </script> - '; - } - } - if(isset($_GET["file_style"])){ - $file_style = filter_input(INPUT_GET, 'file_style', FILTER_SANITIZE_STRING); - if($file_style == "block" or $file_style == "list"){ - setcookie( - "file_style", - $file_style, - time() + (10 * 365 * 24 * 60 * 60) - ); - header('Location: ' . $_SERVER['HTTP_REFERER']); - } else { - echo ' - <script> - alert("'.$dltimageerrors1.'\r\n\r\n'.$configerrors2.'"); - history.back(); - </script> - '; - } - } - -} - -// Version of the plugin -$currentpluginver = "4.1.8"; - -// Show/Hide the settings button -$show_settings = true; - -// username and password -$username = "user"; -$password = "pass"; - -// ststem icons -$sy_icons = array( - "cd-ico-browser.ico", - "cd-icon-block.png", - "cd-icon-browser.png", - "cd-icon-bug.png", - "cd-icon-close-black.png", - "cd-icon-close-grey.png", - "cd-icon-close.png", - "cd-icon-coffee.png", - "cd-icon-credits.png", - "cd-icon-delete.png", - "cd-icon-disable.png", - "cd-icon-done.png", - "cd-icon-download.png", - "cd-icon-edit.png", - "cd-icon-english.png", - "cd-icon-faq.png", - "cd-icon-german.png", - "cd-icon-hideext.png", - "cd-icon-image.png", - "cd-icon-images.png", - "cd-icon-list.png", - "cd-icon-logout.png", - "cd-icon-password.png", - "cd-icon-polish.png", - "cd-icon-qedit.png", - "cd-icon-qtrash.png", - "cd-icon-refresh.png", - "cd-icon-select.png", - "cd-icon-settings.png", - "cd-icon-showext.png", - "cd-icon-translate.png", - "cd-icon-updates.png", - "cd-icon-upload-big.png", - "cd-icon-upload-grey.png", - "cd-icon-upload.png", - "cd-icon-use.png", - "cd-icon-version.png", - "cd-icon-warning.png", -); - -// show/hide file extension -if(!isset($_COOKIE["file_extens"])){ - $file_extens = "no"; -} else { - $file_extens = $_COOKIE["file_extens"]; -} - -// show/hide news section -if(!isset($_COOKIE["show_news"])){ - $news_sction = "yes"; -} else { - $news_sction = "no"; -} - -// file_style -if(!isset($_COOKIE["file_style"])){ - $file_style = "block"; -} else { - $file_style = $_COOKIE["file_style"]; -} - -// Path to the upload folder, please set the path using the Image Browser Settings menu. - -$foldershistory = array(); -$usersiteroot = _APP_DIR_; - -$useruploadfolder = "uploads"; -$useruploadpath = $usersiteroot."$useruploadfolder/"; -$foldershistory[] = $useruploadfolder; - diff --git a/admin/plugins/ckeditor/plugins/justify/icons/hidpi/justifyblock.png b/admin/plugins/ckeditor/plugins/justify/icons/hidpi/justifyblock.png deleted file mode 100644 index 5c0cf43..0000000 Binary files a/admin/plugins/ckeditor/plugins/justify/icons/hidpi/justifyblock.png and /dev/null differ diff --git a/admin/plugins/ckeditor/plugins/justify/icons/hidpi/justifycenter.png b/admin/plugins/ckeditor/plugins/justify/icons/hidpi/justifycenter.png deleted file mode 100644 index fd751be..0000000 Binary files a/admin/plugins/ckeditor/plugins/justify/icons/hidpi/justifycenter.png and /dev/null differ diff --git a/admin/plugins/ckeditor/plugins/justify/icons/hidpi/justifyleft.png b/admin/plugins/ckeditor/plugins/justify/icons/hidpi/justifyleft.png deleted file mode 100644 index a109ad3..0000000 Binary files a/admin/plugins/ckeditor/plugins/justify/icons/hidpi/justifyleft.png and /dev/null differ diff --git a/admin/plugins/ckeditor/plugins/justify/icons/hidpi/justifyright.png b/admin/plugins/ckeditor/plugins/justify/icons/hidpi/justifyright.png deleted file mode 100644 index 5125d56..0000000 Binary files a/admin/plugins/ckeditor/plugins/justify/icons/hidpi/justifyright.png and /dev/null differ diff --git a/admin/plugins/ckeditor/plugins/justify/icons/justifyblock.png b/admin/plugins/ckeditor/plugins/justify/icons/justifyblock.png deleted file mode 100644 index ffe0620..0000000 Binary files a/admin/plugins/ckeditor/plugins/justify/icons/justifyblock.png and /dev/null differ diff --git a/admin/plugins/ckeditor/plugins/justify/icons/justifycenter.png b/admin/plugins/ckeditor/plugins/justify/icons/justifycenter.png deleted file mode 100644 index 8b5b40f..0000000 Binary files a/admin/plugins/ckeditor/plugins/justify/icons/justifycenter.png and /dev/null differ diff --git a/admin/plugins/ckeditor/plugins/justify/icons/justifyleft.png b/admin/plugins/ckeditor/plugins/justify/icons/justifyleft.png deleted file mode 100644 index a60d079..0000000 Binary files a/admin/plugins/ckeditor/plugins/justify/icons/justifyleft.png and /dev/null differ diff --git a/admin/plugins/ckeditor/plugins/justify/icons/justifyright.png b/admin/plugins/ckeditor/plugins/justify/icons/justifyright.png deleted file mode 100644 index 21de814..0000000 Binary files a/admin/plugins/ckeditor/plugins/justify/icons/justifyright.png and /dev/null differ diff --git a/admin/plugins/ckeditor/plugins/justify/lang/af.js b/admin/plugins/ckeditor/plugins/justify/lang/af.js deleted file mode 100644 index ea4332e..0000000 --- a/admin/plugins/ckeditor/plugins/justify/lang/af.js +++ /dev/null @@ -1,10 +0,0 @@ -/* -Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. -For licensing, see LICENSE.md or http://ckeditor.com/license -*/ -CKEDITOR.plugins.setLang( 'justify', 'af', { - block: 'Uitvul', - center: 'Sentreer', - left: 'Links oplyn', - right: 'Regs oplyn' -} ); diff --git a/admin/plugins/ckeditor/plugins/justify/lang/ar.js b/admin/plugins/ckeditor/plugins/justify/lang/ar.js deleted file mode 100644 index ac60948..0000000 --- a/admin/plugins/ckeditor/plugins/justify/lang/ar.js +++ /dev/null @@ -1,10 +0,0 @@ -/* -Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. -For licensing, see LICENSE.md or http://ckeditor.com/license -*/ -CKEDITOR.plugins.setLang( 'justify', 'ar', { - block: 'ضبط', - center: 'توسيط', - left: 'محاذاة إلى اليسار', - right: 'محاذاة إلى اليمين' -} ); diff --git a/admin/plugins/ckeditor/plugins/justify/lang/az.js b/admin/plugins/ckeditor/plugins/justify/lang/az.js deleted file mode 100644 index 6feeccf..0000000 --- a/admin/plugins/ckeditor/plugins/justify/lang/az.js +++ /dev/null @@ -1,10 +0,0 @@ -/* -Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. -For licensing, see LICENSE.md or http://ckeditor.com/license -*/ -CKEDITOR.plugins.setLang( 'justify', 'az', { - block: 'Eninə görə', - center: 'Mərkəz', - left: 'Soldan düzləndir', - right: 'Sağdan düzləndir' -} ); diff --git a/admin/plugins/ckeditor/plugins/justify/lang/bg.js b/admin/plugins/ckeditor/plugins/justify/lang/bg.js deleted file mode 100644 index 0e857f2..0000000 --- a/admin/plugins/ckeditor/plugins/justify/lang/bg.js +++ /dev/null @@ -1,10 +0,0 @@ -/* -Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. -For licensing, see LICENSE.md or http://ckeditor.com/license -*/ -CKEDITOR.plugins.setLang( 'justify', 'bg', { - block: 'Двустранно подравняване', - center: 'Център', - left: 'Подравни в ляво', - right: 'Подравни в дясно' -} ); diff --git a/admin/plugins/ckeditor/plugins/justify/lang/bn.js b/admin/plugins/ckeditor/plugins/justify/lang/bn.js deleted file mode 100644 index 9ea26d0..0000000 --- a/admin/plugins/ckeditor/plugins/justify/lang/bn.js +++ /dev/null @@ -1,10 +0,0 @@ -/* -Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. -For licensing, see LICENSE.md or http://ckeditor.com/license -*/ -CKEDITOR.plugins.setLang( 'justify', 'bn', { - block: 'যাচাই করি', - center: 'মাঝ বরাবর ঘেষা', - left: 'বা দিকে ঘেঁষা', - right: 'ডান দিকে ঘেঁষা' -} ); diff --git a/admin/plugins/ckeditor/plugins/justify/lang/bs.js b/admin/plugins/ckeditor/plugins/justify/lang/bs.js deleted file mode 100644 index b562d81..0000000 --- a/admin/plugins/ckeditor/plugins/justify/lang/bs.js +++ /dev/null @@ -1,10 +0,0 @@ -/* -Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. -For licensing, see LICENSE.md or http://ckeditor.com/license -*/ -CKEDITOR.plugins.setLang( 'justify', 'bs', { - block: 'Puno poravnanje', - center: 'Centralno poravnanje', - left: 'Lijevo poravnanje', - right: 'Desno poravnanje' -} ); diff --git a/admin/plugins/ckeditor/plugins/justify/lang/ca.js b/admin/plugins/ckeditor/plugins/justify/lang/ca.js deleted file mode 100644 index 0ac6222..0000000 --- a/admin/plugins/ckeditor/plugins/justify/lang/ca.js +++ /dev/null @@ -1,10 +0,0 @@ -/* -Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. -For licensing, see LICENSE.md or http://ckeditor.com/license -*/ -CKEDITOR.plugins.setLang( 'justify', 'ca', { - block: 'Justificat', - center: 'Centrat', - left: 'Alinea a l\'esquerra', - right: 'Alinea a la dreta' -} ); diff --git a/admin/plugins/ckeditor/plugins/justify/lang/cs.js b/admin/plugins/ckeditor/plugins/justify/lang/cs.js deleted file mode 100644 index 3b61920..0000000 --- a/admin/plugins/ckeditor/plugins/justify/lang/cs.js +++ /dev/null @@ -1,10 +0,0 @@ -/* -Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. -For licensing, see LICENSE.md or http://ckeditor.com/license -*/ -CKEDITOR.plugins.setLang( 'justify', 'cs', { - block: 'Zarovnat do bloku', - center: 'Zarovnat na střed', - left: 'Zarovnat vlevo', - right: 'Zarovnat vpravo' -} ); diff --git a/admin/plugins/ckeditor/plugins/justify/lang/cy.js b/admin/plugins/ckeditor/plugins/justify/lang/cy.js deleted file mode 100644 index 8b15273..0000000 --- a/admin/plugins/ckeditor/plugins/justify/lang/cy.js +++ /dev/null @@ -1,10 +0,0 @@ -/* -Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. -For licensing, see LICENSE.md or http://ckeditor.com/license -*/ -CKEDITOR.plugins.setLang( 'justify', 'cy', { - block: 'Unioni', - center: 'Alinio i\'r Canol', - left: 'Alinio i\'r Chwith', - right: 'Alinio i\'r Dde' -} ); diff --git a/admin/plugins/ckeditor/plugins/justify/lang/da.js b/admin/plugins/ckeditor/plugins/justify/lang/da.js deleted file mode 100644 index 40e446c..0000000 --- a/admin/plugins/ckeditor/plugins/justify/lang/da.js +++ /dev/null @@ -1,10 +0,0 @@ -/* -Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. -For licensing, see LICENSE.md or http://ckeditor.com/license -*/ -CKEDITOR.plugins.setLang( 'justify', 'da', { - block: 'Lige margener', - center: 'Centreret', - left: 'Venstrestillet', - right: 'Højrestillet' -} ); diff --git a/admin/plugins/ckeditor/plugins/justify/lang/de-ch.js b/admin/plugins/ckeditor/plugins/justify/lang/de-ch.js deleted file mode 100644 index c8c782f..0000000 --- a/admin/plugins/ckeditor/plugins/justify/lang/de-ch.js +++ /dev/null @@ -1,10 +0,0 @@ -/* -Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. -For licensing, see LICENSE.md or http://ckeditor.com/license -*/ -CKEDITOR.plugins.setLang( 'justify', 'de-ch', { - block: 'Blocksatz', - center: 'Zentriert', - left: 'Linksbündig', - right: 'Rechtsbündig' -} ); diff --git a/admin/plugins/ckeditor/plugins/justify/lang/de.js b/admin/plugins/ckeditor/plugins/justify/lang/de.js deleted file mode 100644 index 86dca8e..0000000 --- a/admin/plugins/ckeditor/plugins/justify/lang/de.js +++ /dev/null @@ -1,10 +0,0 @@ -/* -Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. -For licensing, see LICENSE.md or http://ckeditor.com/license -*/ -CKEDITOR.plugins.setLang( 'justify', 'de', { - block: 'Blocksatz', - center: 'Zentriert', - left: 'Linksbündig', - right: 'Rechtsbündig' -} ); diff --git a/admin/plugins/ckeditor/plugins/justify/lang/el.js b/admin/plugins/ckeditor/plugins/justify/lang/el.js deleted file mode 100644 index 4013bf6..0000000 --- a/admin/plugins/ckeditor/plugins/justify/lang/el.js +++ /dev/null @@ -1,10 +0,0 @@ -/* -Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. -For licensing, see LICENSE.md or http://ckeditor.com/license -*/ -CKEDITOR.plugins.setLang( 'justify', 'el', { - block: 'Πλήρης Στοίχιση', - center: 'Στο Κέντρο', - left: 'Στοίχιση Αριστερά', - right: 'Στοίχιση Δεξιά' -} ); diff --git a/admin/plugins/ckeditor/plugins/justify/lang/en-au.js b/admin/plugins/ckeditor/plugins/justify/lang/en-au.js deleted file mode 100644 index 78980b6..0000000 --- a/admin/plugins/ckeditor/plugins/justify/lang/en-au.js +++ /dev/null @@ -1,10 +0,0 @@ -/* -Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. -For licensing, see LICENSE.md or http://ckeditor.com/license -*/ -CKEDITOR.plugins.setLang( 'justify', 'en-au', { - block: 'Justify', - center: 'Centre', - left: 'Align Left', - right: 'Align Right' -} ); diff --git a/admin/plugins/ckeditor/plugins/justify/lang/en-ca.js b/admin/plugins/ckeditor/plugins/justify/lang/en-ca.js deleted file mode 100644 index 6ad5ae8..0000000 --- a/admin/plugins/ckeditor/plugins/justify/lang/en-ca.js +++ /dev/null @@ -1,10 +0,0 @@ -/* -Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. -For licensing, see LICENSE.md or http://ckeditor.com/license -*/ -CKEDITOR.plugins.setLang( 'justify', 'en-ca', { - block: 'Justify', - center: 'Centre', - left: 'Align Left', - right: 'Align Right' -} ); diff --git a/admin/plugins/ckeditor/plugins/justify/lang/en-gb.js b/admin/plugins/ckeditor/plugins/justify/lang/en-gb.js deleted file mode 100644 index 8b4ece6..0000000 --- a/admin/plugins/ckeditor/plugins/justify/lang/en-gb.js +++ /dev/null @@ -1,10 +0,0 @@ -/* -Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. -For licensing, see LICENSE.md or http://ckeditor.com/license -*/ -CKEDITOR.plugins.setLang( 'justify', 'en-gb', { - block: 'Justify', - center: 'Centre', - left: 'Align Left', - right: 'Align Right' -} ); diff --git a/admin/plugins/ckeditor/plugins/justify/lang/en.js b/admin/plugins/ckeditor/plugins/justify/lang/en.js deleted file mode 100644 index 3bfa94b..0000000 --- a/admin/plugins/ckeditor/plugins/justify/lang/en.js +++ /dev/null @@ -1,10 +0,0 @@ -/* -Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. -For licensing, see LICENSE.md or http://ckeditor.com/license -*/ -CKEDITOR.plugins.setLang( 'justify', 'en', { - block: 'Justify', - center: 'Center', - left: 'Align Left', - right: 'Align Right' -} ); diff --git a/admin/plugins/ckeditor/plugins/justify/lang/eo.js b/admin/plugins/ckeditor/plugins/justify/lang/eo.js deleted file mode 100644 index 4fcdc19..0000000 --- a/admin/plugins/ckeditor/plugins/justify/lang/eo.js +++ /dev/null @@ -1,10 +0,0 @@ -/* -Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. -For licensing, see LICENSE.md or http://ckeditor.com/license -*/ -CKEDITOR.plugins.setLang( 'justify', 'eo', { - block: 'Ĝisrandigi Ambaŭflanke', - center: 'Centrigi', - left: 'Ĝisrandigi maldekstren', - right: 'Ĝisrandigi dekstren' -} ); diff --git a/admin/plugins/ckeditor/plugins/justify/lang/es-mx.js b/admin/plugins/ckeditor/plugins/justify/lang/es-mx.js deleted file mode 100644 index 9225e9d..0000000 --- a/admin/plugins/ckeditor/plugins/justify/lang/es-mx.js +++ /dev/null @@ -1,10 +0,0 @@ -/* -Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. -For licensing, see LICENSE.md or http://ckeditor.com/license -*/ -CKEDITOR.plugins.setLang( 'justify', 'es-mx', { - block: 'Justificar', - center: 'Centrar', - left: 'Alinear a la izquierda', - right: 'Alinear a la derecha' -} ); diff --git a/admin/plugins/ckeditor/plugins/justify/lang/es.js b/admin/plugins/ckeditor/plugins/justify/lang/es.js deleted file mode 100644 index 006b741..0000000 --- a/admin/plugins/ckeditor/plugins/justify/lang/es.js +++ /dev/null @@ -1,10 +0,0 @@ -/* -Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. -For licensing, see LICENSE.md or http://ckeditor.com/license -*/ -CKEDITOR.plugins.setLang( 'justify', 'es', { - block: 'Justificado', - center: 'Centrar', - left: 'Alinear a Izquierda', - right: 'Alinear a Derecha' -} ); diff --git a/admin/plugins/ckeditor/plugins/justify/lang/et.js b/admin/plugins/ckeditor/plugins/justify/lang/et.js deleted file mode 100644 index 727c58b..0000000 --- a/admin/plugins/ckeditor/plugins/justify/lang/et.js +++ /dev/null @@ -1,10 +0,0 @@ -/* -Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. -For licensing, see LICENSE.md or http://ckeditor.com/license -*/ -CKEDITOR.plugins.setLang( 'justify', 'et', { - block: 'Rööpjoondus', - center: 'Keskjoondus', - left: 'Vasakjoondus', - right: 'Paremjoondus' -} ); diff --git a/admin/plugins/ckeditor/plugins/justify/lang/eu.js b/admin/plugins/ckeditor/plugins/justify/lang/eu.js deleted file mode 100644 index e2d792c..0000000 --- a/admin/plugins/ckeditor/plugins/justify/lang/eu.js +++ /dev/null @@ -1,10 +0,0 @@ -/* -Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. -For licensing, see LICENSE.md or http://ckeditor.com/license -*/ -CKEDITOR.plugins.setLang( 'justify', 'eu', { - block: 'Justifikatu', - center: 'Erdian', - left: 'Lerrokatu ezkerrean', - right: 'Lerrokatu eskuinean' -} ); diff --git a/admin/plugins/ckeditor/plugins/justify/lang/fa.js b/admin/plugins/ckeditor/plugins/justify/lang/fa.js deleted file mode 100644 index c3d1144..0000000 --- a/admin/plugins/ckeditor/plugins/justify/lang/fa.js +++ /dev/null @@ -1,10 +0,0 @@ -/* -Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. -For licensing, see LICENSE.md or http://ckeditor.com/license -*/ -CKEDITOR.plugins.setLang( 'justify', 'fa', { - block: 'بلوک چین', - center: 'میان چین', - left: 'چپ چین', - right: 'راست چین' -} ); diff --git a/admin/plugins/ckeditor/plugins/justify/lang/fi.js b/admin/plugins/ckeditor/plugins/justify/lang/fi.js deleted file mode 100644 index f5ea8e9..0000000 --- a/admin/plugins/ckeditor/plugins/justify/lang/fi.js +++ /dev/null @@ -1,10 +0,0 @@ -/* -Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. -For licensing, see LICENSE.md or http://ckeditor.com/license -*/ -CKEDITOR.plugins.setLang( 'justify', 'fi', { - block: 'Tasaa molemmat reunat', - center: 'Keskitä', - left: 'Tasaa vasemmat reunat', - right: 'Tasaa oikeat reunat' -} ); diff --git a/admin/plugins/ckeditor/plugins/justify/lang/fo.js b/admin/plugins/ckeditor/plugins/justify/lang/fo.js deleted file mode 100644 index d027aaf..0000000 --- a/admin/plugins/ckeditor/plugins/justify/lang/fo.js +++ /dev/null @@ -1,10 +0,0 @@ -/* -Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. -For licensing, see LICENSE.md or http://ckeditor.com/license -*/ -CKEDITOR.plugins.setLang( 'justify', 'fo', { - block: 'Javnir tekstkantar', - center: 'Miðsett', - left: 'Vinstrasett', - right: 'Høgrasett' -} ); diff --git a/admin/plugins/ckeditor/plugins/justify/lang/fr-ca.js b/admin/plugins/ckeditor/plugins/justify/lang/fr-ca.js deleted file mode 100644 index 5c2137c..0000000 --- a/admin/plugins/ckeditor/plugins/justify/lang/fr-ca.js +++ /dev/null @@ -1,10 +0,0 @@ -/* -Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. -For licensing, see LICENSE.md or http://ckeditor.com/license -*/ -CKEDITOR.plugins.setLang( 'justify', 'fr-ca', { - block: 'Justifié', - center: 'Centré', - left: 'Aligner à gauche', - right: 'Aligner à Droite' -} ); diff --git a/admin/plugins/ckeditor/plugins/justify/lang/fr.js b/admin/plugins/ckeditor/plugins/justify/lang/fr.js deleted file mode 100644 index 820a499..0000000 --- a/admin/plugins/ckeditor/plugins/justify/lang/fr.js +++ /dev/null @@ -1,10 +0,0 @@ -/* -Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. -For licensing, see LICENSE.md or http://ckeditor.com/license -*/ -CKEDITOR.plugins.setLang( 'justify', 'fr', { - block: 'Justifier', - center: 'Centrer', - left: 'Aligner à gauche', - right: 'Aligner à droite' -} ); diff --git a/admin/plugins/ckeditor/plugins/justify/lang/gl.js b/admin/plugins/ckeditor/plugins/justify/lang/gl.js deleted file mode 100644 index f9acb26..0000000 --- a/admin/plugins/ckeditor/plugins/justify/lang/gl.js +++ /dev/null @@ -1,10 +0,0 @@ -/* -Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. -For licensing, see LICENSE.md or http://ckeditor.com/license -*/ -CKEDITOR.plugins.setLang( 'justify', 'gl', { - block: 'Xustificado', - center: 'Centrado', - left: 'Aliñar á esquerda', - right: 'Aliñar á dereita' -} ); diff --git a/admin/plugins/ckeditor/plugins/justify/lang/gu.js b/admin/plugins/ckeditor/plugins/justify/lang/gu.js deleted file mode 100644 index e396e0e..0000000 --- a/admin/plugins/ckeditor/plugins/justify/lang/gu.js +++ /dev/null @@ -1,10 +0,0 @@ -/* -Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. -For licensing, see LICENSE.md or http://ckeditor.com/license -*/ -CKEDITOR.plugins.setLang( 'justify', 'gu', { - block: 'બ્લૉક, અંતરાય જસ્ટિફાઇ', - center: 'સંકેંદ્રણ/સેંટરિંગ', - left: 'ડાબી બાજુએ/બાજુ તરફ', - right: 'જમણી બાજુએ/બાજુ તરફ' -} ); diff --git a/admin/plugins/ckeditor/plugins/justify/lang/he.js b/admin/plugins/ckeditor/plugins/justify/lang/he.js deleted file mode 100644 index e731039..0000000 --- a/admin/plugins/ckeditor/plugins/justify/lang/he.js +++ /dev/null @@ -1,10 +0,0 @@ -/* -Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. -For licensing, see LICENSE.md or http://ckeditor.com/license -*/ -CKEDITOR.plugins.setLang( 'justify', 'he', { - block: 'יישור לשוליים', - center: 'מרכוז', - left: 'יישור לשמאל', - right: 'יישור לימין' -} ); diff --git a/admin/plugins/ckeditor/plugins/justify/lang/hi.js b/admin/plugins/ckeditor/plugins/justify/lang/hi.js deleted file mode 100644 index 95fdc3b..0000000 --- a/admin/plugins/ckeditor/plugins/justify/lang/hi.js +++ /dev/null @@ -1,10 +0,0 @@ -/* -Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. -For licensing, see LICENSE.md or http://ckeditor.com/license -*/ -CKEDITOR.plugins.setLang( 'justify', 'hi', { - block: 'ब्लॉक जस्टीफ़ाई', - center: 'बीच में', - left: 'बायीं तरफ', - right: 'दायीं तरफ' -} ); diff --git a/admin/plugins/ckeditor/plugins/justify/lang/hr.js b/admin/plugins/ckeditor/plugins/justify/lang/hr.js deleted file mode 100644 index 9a32204..0000000 --- a/admin/plugins/ckeditor/plugins/justify/lang/hr.js +++ /dev/null @@ -1,10 +0,0 @@ -/* -Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. -For licensing, see LICENSE.md or http://ckeditor.com/license -*/ -CKEDITOR.plugins.setLang( 'justify', 'hr', { - block: 'Blok poravnanje', - center: 'Središnje poravnanje', - left: 'Lijevo poravnanje', - right: 'Desno poravnanje' -} ); diff --git a/admin/plugins/ckeditor/plugins/justify/lang/hu.js b/admin/plugins/ckeditor/plugins/justify/lang/hu.js deleted file mode 100644 index 02b3503..0000000 --- a/admin/plugins/ckeditor/plugins/justify/lang/hu.js +++ /dev/null @@ -1,10 +0,0 @@ -/* -Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. -For licensing, see LICENSE.md or http://ckeditor.com/license -*/ -CKEDITOR.plugins.setLang( 'justify', 'hu', { - block: 'Sorkizárt', - center: 'Középre', - left: 'Balra', - right: 'Jobbra' -} ); diff --git a/admin/plugins/ckeditor/plugins/justify/lang/id.js b/admin/plugins/ckeditor/plugins/justify/lang/id.js deleted file mode 100644 index 57d2e6f..0000000 --- a/admin/plugins/ckeditor/plugins/justify/lang/id.js +++ /dev/null @@ -1,10 +0,0 @@ -/* -Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. -For licensing, see LICENSE.md or http://ckeditor.com/license -*/ -CKEDITOR.plugins.setLang( 'justify', 'id', { - block: 'Rata kiri-kanan', - center: 'Pusat', - left: 'Align Left', // MISSING - right: 'Align Right' // MISSING -} ); diff --git a/admin/plugins/ckeditor/plugins/justify/lang/is.js b/admin/plugins/ckeditor/plugins/justify/lang/is.js deleted file mode 100644 index 0d1cec3..0000000 --- a/admin/plugins/ckeditor/plugins/justify/lang/is.js +++ /dev/null @@ -1,10 +0,0 @@ -/* -Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. -For licensing, see LICENSE.md or http://ckeditor.com/license -*/ -CKEDITOR.plugins.setLang( 'justify', 'is', { - block: 'Jafna báðum megin', - center: 'Miðja texta', - left: 'Vinstrijöfnun', - right: 'Hægrijöfnun' -} ); diff --git a/admin/plugins/ckeditor/plugins/justify/lang/it.js b/admin/plugins/ckeditor/plugins/justify/lang/it.js deleted file mode 100644 index 8abc45f..0000000 --- a/admin/plugins/ckeditor/plugins/justify/lang/it.js +++ /dev/null @@ -1,10 +0,0 @@ -/* -Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. -For licensing, see LICENSE.md or http://ckeditor.com/license -*/ -CKEDITOR.plugins.setLang( 'justify', 'it', { - block: 'Giustifica', - center: 'Centra', - left: 'Allinea a sinistra', - right: 'Allinea a destra' -} ); diff --git a/admin/plugins/ckeditor/plugins/justify/lang/ja.js b/admin/plugins/ckeditor/plugins/justify/lang/ja.js deleted file mode 100644 index 37a68e4..0000000 --- a/admin/plugins/ckeditor/plugins/justify/lang/ja.js +++ /dev/null @@ -1,10 +0,0 @@ -/* -Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. -For licensing, see LICENSE.md or http://ckeditor.com/license -*/ -CKEDITOR.plugins.setLang( 'justify', 'ja', { - block: '両端揃え', - center: '中央揃え', - left: '左揃え', - right: '右揃え' -} ); diff --git a/admin/plugins/ckeditor/plugins/justify/lang/ka.js b/admin/plugins/ckeditor/plugins/justify/lang/ka.js deleted file mode 100644 index a7a157d..0000000 --- a/admin/plugins/ckeditor/plugins/justify/lang/ka.js +++ /dev/null @@ -1,10 +0,0 @@ -/* -Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. -For licensing, see LICENSE.md or http://ckeditor.com/license -*/ -CKEDITOR.plugins.setLang( 'justify', 'ka', { - block: 'გადასწორება', - center: 'შუაში სწორება', - left: 'მარცხნივ სწორება', - right: 'მარჯვნივ სწორება' -} ); diff --git a/admin/plugins/ckeditor/plugins/justify/lang/km.js b/admin/plugins/ckeditor/plugins/justify/lang/km.js deleted file mode 100644 index 17b6cb0..0000000 --- a/admin/plugins/ckeditor/plugins/justify/lang/km.js +++ /dev/null @@ -1,10 +0,0 @@ -/* -Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. -For licensing, see LICENSE.md or http://ckeditor.com/license -*/ -CKEDITOR.plugins.setLang( 'justify', 'km', { - block: 'តម្រឹម​ពេញ', - center: 'កណ្ដាល', - left: 'តម្រឹម​ឆ្វេង', - right: 'តម្រឹម​ស្ដាំ' -} ); diff --git a/admin/plugins/ckeditor/plugins/justify/lang/ko.js b/admin/plugins/ckeditor/plugins/justify/lang/ko.js deleted file mode 100644 index d3a072b..0000000 --- a/admin/plugins/ckeditor/plugins/justify/lang/ko.js +++ /dev/null @@ -1,10 +0,0 @@ -/* -Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. -For licensing, see LICENSE.md or http://ckeditor.com/license -*/ -CKEDITOR.plugins.setLang( 'justify', 'ko', { - block: '양쪽 맞춤', - center: '가운데 정렬', - left: '왼쪽 정렬', - right: '오른쪽 정렬' -} ); diff --git a/admin/plugins/ckeditor/plugins/justify/lang/ku.js b/admin/plugins/ckeditor/plugins/justify/lang/ku.js deleted file mode 100644 index 8022c14..0000000 --- a/admin/plugins/ckeditor/plugins/justify/lang/ku.js +++ /dev/null @@ -1,10 +0,0 @@ -/* -Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. -For licensing, see LICENSE.md or http://ckeditor.com/license -*/ -CKEDITOR.plugins.setLang( 'justify', 'ku', { - block: 'هاوستوونی', - center: 'ناوەڕاست', - left: 'بەهێڵ کردنی چەپ', - right: 'بەهێڵ کردنی ڕاست' -} ); diff --git a/admin/plugins/ckeditor/plugins/justify/lang/lt.js b/admin/plugins/ckeditor/plugins/justify/lang/lt.js deleted file mode 100644 index 2942013..0000000 --- a/admin/plugins/ckeditor/plugins/justify/lang/lt.js +++ /dev/null @@ -1,10 +0,0 @@ -/* -Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. -For licensing, see LICENSE.md or http://ckeditor.com/license -*/ -CKEDITOR.plugins.setLang( 'justify', 'lt', { - block: 'Lygiuoti abi puses', - center: 'Centruoti', - left: 'Lygiuoti kairę', - right: 'Lygiuoti dešinę' -} ); diff --git a/admin/plugins/ckeditor/plugins/justify/lang/lv.js b/admin/plugins/ckeditor/plugins/justify/lang/lv.js deleted file mode 100644 index 6f80ea8..0000000 --- a/admin/plugins/ckeditor/plugins/justify/lang/lv.js +++ /dev/null @@ -1,10 +0,0 @@ -/* -Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. -For licensing, see LICENSE.md or http://ckeditor.com/license -*/ -CKEDITOR.plugins.setLang( 'justify', 'lv', { - block: 'Izlīdzināt malas', - center: 'Izlīdzināt pret centru', - left: 'Izlīdzināt pa kreisi', - right: 'Izlīdzināt pa labi' -} ); diff --git a/admin/plugins/ckeditor/plugins/justify/lang/mk.js b/admin/plugins/ckeditor/plugins/justify/lang/mk.js deleted file mode 100644 index d4e580a..0000000 --- a/admin/plugins/ckeditor/plugins/justify/lang/mk.js +++ /dev/null @@ -1,10 +0,0 @@ -/* -Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. -For licensing, see LICENSE.md or http://ckeditor.com/license -*/ -CKEDITOR.plugins.setLang( 'justify', 'mk', { - block: 'Justify', // MISSING - center: 'Во средина', - left: 'Align Left', // MISSING - right: 'Align Right' // MISSING -} ); diff --git a/admin/plugins/ckeditor/plugins/justify/lang/mn.js b/admin/plugins/ckeditor/plugins/justify/lang/mn.js deleted file mode 100644 index e4c3a59..0000000 --- a/admin/plugins/ckeditor/plugins/justify/lang/mn.js +++ /dev/null @@ -1,10 +0,0 @@ -/* -Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. -For licensing, see LICENSE.md or http://ckeditor.com/license -*/ -CKEDITOR.plugins.setLang( 'justify', 'mn', { - block: 'Тэгшлэх', - center: 'Голлуулах', - left: 'Зүүн талд тулгах', - right: 'Баруун талд тулгах' -} ); diff --git a/admin/plugins/ckeditor/plugins/justify/lang/ms.js b/admin/plugins/ckeditor/plugins/justify/lang/ms.js deleted file mode 100644 index c86e955..0000000 --- a/admin/plugins/ckeditor/plugins/justify/lang/ms.js +++ /dev/null @@ -1,10 +0,0 @@ -/* -Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. -For licensing, see LICENSE.md or http://ckeditor.com/license -*/ -CKEDITOR.plugins.setLang( 'justify', 'ms', { - block: 'Jajaran Blok', - center: 'Jajaran Tengah', - left: 'Jajaran Kiri', - right: 'Jajaran Kanan' -} ); diff --git a/admin/plugins/ckeditor/plugins/justify/lang/nb.js b/admin/plugins/ckeditor/plugins/justify/lang/nb.js deleted file mode 100644 index dde3a58..0000000 --- a/admin/plugins/ckeditor/plugins/justify/lang/nb.js +++ /dev/null @@ -1,10 +0,0 @@ -/* -Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. -For licensing, see LICENSE.md or http://ckeditor.com/license -*/ -CKEDITOR.plugins.setLang( 'justify', 'nb', { - block: 'Blokkjuster', - center: 'Midtstill', - left: 'Venstrejuster', - right: 'Høyrejuster' -} ); diff --git a/admin/plugins/ckeditor/plugins/justify/lang/nl.js b/admin/plugins/ckeditor/plugins/justify/lang/nl.js deleted file mode 100644 index 12af0bc..0000000 --- a/admin/plugins/ckeditor/plugins/justify/lang/nl.js +++ /dev/null @@ -1,10 +0,0 @@ -/* -Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. -For licensing, see LICENSE.md or http://ckeditor.com/license -*/ -CKEDITOR.plugins.setLang( 'justify', 'nl', { - block: 'Uitvullen', - center: 'Centreren', - left: 'Links uitlijnen', - right: 'Rechts uitlijnen' -} ); diff --git a/admin/plugins/ckeditor/plugins/justify/lang/no.js b/admin/plugins/ckeditor/plugins/justify/lang/no.js deleted file mode 100644 index dbed4af..0000000 --- a/admin/plugins/ckeditor/plugins/justify/lang/no.js +++ /dev/null @@ -1,10 +0,0 @@ -/* -Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. -For licensing, see LICENSE.md or http://ckeditor.com/license -*/ -CKEDITOR.plugins.setLang( 'justify', 'no', { - block: 'Blokkjuster', - center: 'Midtstill', - left: 'Venstrejuster', - right: 'Høyrejuster' -} ); diff --git a/admin/plugins/ckeditor/plugins/justify/lang/oc.js b/admin/plugins/ckeditor/plugins/justify/lang/oc.js deleted file mode 100644 index 85a1319..0000000 --- a/admin/plugins/ckeditor/plugins/justify/lang/oc.js +++ /dev/null @@ -1,10 +0,0 @@ -/* -Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. -For licensing, see LICENSE.md or http://ckeditor.com/license -*/ -CKEDITOR.plugins.setLang( 'justify', 'oc', { - block: 'Justificar', - center: 'Centrar', - left: 'Alinhar a esquèrra', - right: 'Alinhar a dreita' -} ); diff --git a/admin/plugins/ckeditor/plugins/justify/lang/pl.js b/admin/plugins/ckeditor/plugins/justify/lang/pl.js deleted file mode 100644 index 43e5de3..0000000 --- a/admin/plugins/ckeditor/plugins/justify/lang/pl.js +++ /dev/null @@ -1,10 +0,0 @@ -/* -Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. -For licensing, see LICENSE.md or http://ckeditor.com/license -*/ -CKEDITOR.plugins.setLang( 'justify', 'pl', { - block: 'Wyjustuj', - center: 'Wyśrodkuj', - left: 'Wyrównaj do lewej', - right: 'Wyrównaj do prawej' -} ); diff --git a/admin/plugins/ckeditor/plugins/justify/lang/pt-br.js b/admin/plugins/ckeditor/plugins/justify/lang/pt-br.js deleted file mode 100644 index 37072a9..0000000 --- a/admin/plugins/ckeditor/plugins/justify/lang/pt-br.js +++ /dev/null @@ -1,10 +0,0 @@ -/* -Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. -For licensing, see LICENSE.md or http://ckeditor.com/license -*/ -CKEDITOR.plugins.setLang( 'justify', 'pt-br', { - block: 'Justificado', - center: 'Centralizar', - left: 'Alinhar Esquerda', - right: 'Alinhar Direita' -} ); diff --git a/admin/plugins/ckeditor/plugins/justify/lang/pt.js b/admin/plugins/ckeditor/plugins/justify/lang/pt.js deleted file mode 100644 index 4f4cf6b..0000000 --- a/admin/plugins/ckeditor/plugins/justify/lang/pt.js +++ /dev/null @@ -1,10 +0,0 @@ -/* -Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. -For licensing, see LICENSE.md or http://ckeditor.com/license -*/ -CKEDITOR.plugins.setLang( 'justify', 'pt', { - block: 'Justificado', - center: 'Alinhar ao centro', - left: 'Alinhar à esquerda', - right: 'Alinhar à direita' -} ); diff --git a/admin/plugins/ckeditor/plugins/justify/lang/ro.js b/admin/plugins/ckeditor/plugins/justify/lang/ro.js deleted file mode 100644 index 819565b..0000000 --- a/admin/plugins/ckeditor/plugins/justify/lang/ro.js +++ /dev/null @@ -1,10 +0,0 @@ -/* -Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. -For licensing, see LICENSE.md or http://ckeditor.com/license -*/ -CKEDITOR.plugins.setLang( 'justify', 'ro', { - block: 'Aliniere în bloc (Block Justify)', - center: 'Aliniere centrală', - left: 'Aliniere la stânga', - right: 'Aliniere la dreapta' -} ); diff --git a/admin/plugins/ckeditor/plugins/justify/lang/ru.js b/admin/plugins/ckeditor/plugins/justify/lang/ru.js deleted file mode 100644 index 3a629be..0000000 --- a/admin/plugins/ckeditor/plugins/justify/lang/ru.js +++ /dev/null @@ -1,10 +0,0 @@ -/* -Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. -For licensing, see LICENSE.md or http://ckeditor.com/license -*/ -CKEDITOR.plugins.setLang( 'justify', 'ru', { - block: 'По ширине', - center: 'По центру', - left: 'По левому краю', - right: 'По правому краю' -} ); diff --git a/admin/plugins/ckeditor/plugins/justify/lang/si.js b/admin/plugins/ckeditor/plugins/justify/lang/si.js deleted file mode 100644 index cc34c6f..0000000 --- a/admin/plugins/ckeditor/plugins/justify/lang/si.js +++ /dev/null @@ -1,10 +0,0 @@ -/* -Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. -For licensing, see LICENSE.md or http://ckeditor.com/license -*/ -CKEDITOR.plugins.setLang( 'justify', 'si', { - block: 'Justify', // MISSING - center: 'මධ්‍ය', - left: 'Align Left', // MISSING - right: 'Align Right' // MISSING -} ); diff --git a/admin/plugins/ckeditor/plugins/justify/lang/sk.js b/admin/plugins/ckeditor/plugins/justify/lang/sk.js deleted file mode 100644 index f42eda4..0000000 --- a/admin/plugins/ckeditor/plugins/justify/lang/sk.js +++ /dev/null @@ -1,10 +0,0 @@ -/* -Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. -For licensing, see LICENSE.md or http://ckeditor.com/license -*/ -CKEDITOR.plugins.setLang( 'justify', 'sk', { - block: 'Zarovnať do bloku', - center: 'Zarovnať na stred', - left: 'Zarovnať vľavo', - right: 'Zarovnať vpravo' -} ); diff --git a/admin/plugins/ckeditor/plugins/justify/lang/sl.js b/admin/plugins/ckeditor/plugins/justify/lang/sl.js deleted file mode 100644 index 3075163..0000000 --- a/admin/plugins/ckeditor/plugins/justify/lang/sl.js +++ /dev/null @@ -1,10 +0,0 @@ -/* -Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. -For licensing, see LICENSE.md or http://ckeditor.com/license -*/ -CKEDITOR.plugins.setLang( 'justify', 'sl', { - block: 'Obojestranska poravnava', - center: 'Sredinska poravnava', - left: 'Leva poravnava', - right: 'Desna poravnava' -} ); diff --git a/admin/plugins/ckeditor/plugins/justify/lang/sq.js b/admin/plugins/ckeditor/plugins/justify/lang/sq.js deleted file mode 100644 index cef71d0..0000000 --- a/admin/plugins/ckeditor/plugins/justify/lang/sq.js +++ /dev/null @@ -1,10 +0,0 @@ -/* -Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. -For licensing, see LICENSE.md or http://ckeditor.com/license -*/ -CKEDITOR.plugins.setLang( 'justify', 'sq', { - block: 'Zgjero', - center: 'Qendër', - left: 'Rreshto majtas', - right: 'Rreshto Djathtas' -} ); diff --git a/admin/plugins/ckeditor/plugins/justify/lang/sr-latn.js b/admin/plugins/ckeditor/plugins/justify/lang/sr-latn.js deleted file mode 100644 index 548deae..0000000 --- a/admin/plugins/ckeditor/plugins/justify/lang/sr-latn.js +++ /dev/null @@ -1,10 +0,0 @@ -/* -Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. -For licensing, see LICENSE.md or http://ckeditor.com/license -*/ -CKEDITOR.plugins.setLang( 'justify', 'sr-latn', { - block: 'Obostrano ravnanje', - center: 'Centriran tekst', - left: 'Levo ravnanje', - right: 'Desno ravnanje' -} ); diff --git a/admin/plugins/ckeditor/plugins/justify/lang/sr.js b/admin/plugins/ckeditor/plugins/justify/lang/sr.js deleted file mode 100644 index b2d3150..0000000 --- a/admin/plugins/ckeditor/plugins/justify/lang/sr.js +++ /dev/null @@ -1,10 +0,0 @@ -/* -Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. -For licensing, see LICENSE.md or http://ckeditor.com/license -*/ -CKEDITOR.plugins.setLang( 'justify', 'sr', { - block: 'Обострано равнање', - center: 'Центриран текст', - left: 'Лево равнање', - right: 'Десно равнање' -} ); diff --git a/admin/plugins/ckeditor/plugins/justify/lang/sv.js b/admin/plugins/ckeditor/plugins/justify/lang/sv.js deleted file mode 100644 index 0aadd40..0000000 --- a/admin/plugins/ckeditor/plugins/justify/lang/sv.js +++ /dev/null @@ -1,10 +0,0 @@ -/* -Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. -For licensing, see LICENSE.md or http://ckeditor.com/license -*/ -CKEDITOR.plugins.setLang( 'justify', 'sv', { - block: 'Justera till marginaler', - center: 'Centrera', - left: 'Vänsterjustera', - right: 'Högerjustera' -} ); diff --git a/admin/plugins/ckeditor/plugins/justify/lang/th.js b/admin/plugins/ckeditor/plugins/justify/lang/th.js deleted file mode 100644 index 98ba089..0000000 --- a/admin/plugins/ckeditor/plugins/justify/lang/th.js +++ /dev/null @@ -1,10 +0,0 @@ -/* -Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. -For licensing, see LICENSE.md or http://ckeditor.com/license -*/ -CKEDITOR.plugins.setLang( 'justify', 'th', { - block: 'จัดพอดีหน้ากระดาษ', - center: 'จัดกึ่งกลาง', - left: 'จัดชิดซ้าย', - right: 'จัดชิดขวา' -} ); diff --git a/admin/plugins/ckeditor/plugins/justify/lang/tr.js b/admin/plugins/ckeditor/plugins/justify/lang/tr.js deleted file mode 100644 index e086acc..0000000 --- a/admin/plugins/ckeditor/plugins/justify/lang/tr.js +++ /dev/null @@ -1,10 +0,0 @@ -/* -Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. -For licensing, see LICENSE.md or http://ckeditor.com/license -*/ -CKEDITOR.plugins.setLang( 'justify', 'tr', { - block: 'İki Kenara Yaslanmış', - center: 'Ortalanmış', - left: 'Sola Dayalı', - right: 'Sağa Dayalı' -} ); diff --git a/admin/plugins/ckeditor/plugins/justify/lang/tt.js b/admin/plugins/ckeditor/plugins/justify/lang/tt.js deleted file mode 100644 index 43d3474..0000000 --- a/admin/plugins/ckeditor/plugins/justify/lang/tt.js +++ /dev/null @@ -1,10 +0,0 @@ -/* -Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. -For licensing, see LICENSE.md or http://ckeditor.com/license -*/ -CKEDITOR.plugins.setLang( 'justify', 'tt', { - block: 'Киңлеккә карап тигезләү', - center: 'Үзәккә тигезләү', - left: 'Сул як кырыйдан тигезләү', - right: 'Уң як кырыйдан тигезләү' -} ); diff --git a/admin/plugins/ckeditor/plugins/justify/lang/ug.js b/admin/plugins/ckeditor/plugins/justify/lang/ug.js deleted file mode 100644 index d8c271c..0000000 --- a/admin/plugins/ckeditor/plugins/justify/lang/ug.js +++ /dev/null @@ -1,10 +0,0 @@ -/* -Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. -For licensing, see LICENSE.md or http://ckeditor.com/license -*/ -CKEDITOR.plugins.setLang( 'justify', 'ug', { - block: 'ئىككى تەرەپتىن توغرىلا', - center: 'ئوتتۇرىغا توغرىلا', - left: 'سولغا توغرىلا', - right: 'ئوڭغا توغرىلا' -} ); diff --git a/admin/plugins/ckeditor/plugins/justify/lang/uk.js b/admin/plugins/ckeditor/plugins/justify/lang/uk.js deleted file mode 100644 index aa3dd13..0000000 --- a/admin/plugins/ckeditor/plugins/justify/lang/uk.js +++ /dev/null @@ -1,10 +0,0 @@ -/* -Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. -For licensing, see LICENSE.md or http://ckeditor.com/license -*/ -CKEDITOR.plugins.setLang( 'justify', 'uk', { - block: 'По ширині', - center: 'По центру', - left: 'По лівому краю', - right: 'По правому краю' -} ); diff --git a/admin/plugins/ckeditor/plugins/justify/lang/vi.js b/admin/plugins/ckeditor/plugins/justify/lang/vi.js deleted file mode 100644 index 823dda6..0000000 --- a/admin/plugins/ckeditor/plugins/justify/lang/vi.js +++ /dev/null @@ -1,10 +0,0 @@ -/* -Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. -For licensing, see LICENSE.md or http://ckeditor.com/license -*/ -CKEDITOR.plugins.setLang( 'justify', 'vi', { - block: 'Canh đều', - center: 'Canh giữa', - left: 'Canh trái', - right: 'Canh phải' -} ); diff --git a/admin/plugins/ckeditor/plugins/justify/lang/zh-cn.js b/admin/plugins/ckeditor/plugins/justify/lang/zh-cn.js deleted file mode 100644 index 60afe49..0000000 --- a/admin/plugins/ckeditor/plugins/justify/lang/zh-cn.js +++ /dev/null @@ -1,10 +0,0 @@ -/* -Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. -For licensing, see LICENSE.md or http://ckeditor.com/license -*/ -CKEDITOR.plugins.setLang( 'justify', 'zh-cn', { - block: '两端对齐', - center: '居中', - left: '左对齐', - right: '右对齐' -} ); diff --git a/admin/plugins/ckeditor/plugins/justify/lang/zh.js b/admin/plugins/ckeditor/plugins/justify/lang/zh.js deleted file mode 100644 index a2eeb22..0000000 --- a/admin/plugins/ckeditor/plugins/justify/lang/zh.js +++ /dev/null @@ -1,10 +0,0 @@ -/* -Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. -For licensing, see LICENSE.md or http://ckeditor.com/license -*/ -CKEDITOR.plugins.setLang( 'justify', 'zh', { - block: '左右對齊', - center: '置中', - left: '靠左對齊', - right: '靠右對齊' -} ); diff --git a/admin/plugins/ckeditor/plugins/justify/plugin.js b/admin/plugins/ckeditor/plugins/justify/plugin.js deleted file mode 100644 index a351fdb..0000000 --- a/admin/plugins/ckeditor/plugins/justify/plugin.js +++ /dev/null @@ -1,270 +0,0 @@ -/** - * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. - * For licensing, see LICENSE.md or http://ckeditor.com/license - */ - -/** - * @fileOverview Justify commands. - */ - -( function() { - function getAlignment( element, useComputedState ) { - useComputedState = useComputedState === undefined || useComputedState; - - var align; - if ( useComputedState ) - align = element.getComputedStyle( 'text-align' ); - else { - while ( !element.hasAttribute || !( element.hasAttribute( 'align' ) || element.getStyle( 'text-align' ) ) ) { - var parent = element.getParent(); - if ( !parent ) - break; - element = parent; - } - align = element.getStyle( 'text-align' ) || element.getAttribute( 'align' ) || ''; - } - - // Sometimes computed values doesn't tell. - align && ( align = align.replace( /(?:-(?:moz|webkit)-)?(?:start|auto)/i, '' ) ); - - !align && useComputedState && ( align = element.getComputedStyle( 'direction' ) == 'rtl' ? 'right' : 'left' ); - - return align; - } - - function justifyCommand( editor, name, value ) { - this.editor = editor; - this.name = name; - this.value = value; - this.context = 'p'; - var classes = editor.config.justifyClasses, - blockTag = editor.config.enterMode == CKEDITOR.ENTER_P ? 'p' : 'div'; - - if ( classes ) { - switch ( value ) { - case 'left': - this.cssClassName = classes[ 0 ]; - break; - case 'center': - this.cssClassName = classes[ 1 ]; - break; - case 'right': - this.cssClassName = classes[ 2 ]; - break; - case 'justify': - this.cssClassName = classes[ 3 ]; - break; - } - - this.cssClassRegex = new RegExp( '(?:^|\\s+)(?:' + classes.join( '|' ) + ')(?=$|\\s)' ); - this.requiredContent = blockTag + '(' + this.cssClassName + ')'; - } - else { - this.requiredContent = blockTag + '{text-align}'; - } - - this.allowedContent = { - 'caption div h1 h2 h3 h4 h5 h6 p pre td th li': { - // Do not add elements, but only text-align style if element is validated by other rule. - propertiesOnly: true, - styles: this.cssClassName ? null : 'text-align', - classes: this.cssClassName || null - } - }; - - // In enter mode BR we need to allow here for div, because when non other - // feature allows div justify is the only plugin that uses it. - if ( editor.config.enterMode == CKEDITOR.ENTER_BR ) - this.allowedContent.div = true; - } - - function onDirChanged( e ) { - var editor = e.editor; - - var range = editor.createRange(); - range.setStartBefore( e.data.node ); - range.setEndAfter( e.data.node ); - - var walker = new CKEDITOR.dom.walker( range ), - node; - - while ( ( node = walker.next() ) ) { - if ( node.type == CKEDITOR.NODE_ELEMENT ) { - // A child with the defined dir is to be ignored. - if ( !node.equals( e.data.node ) && node.getDirection() ) { - range.setStartAfter( node ); - walker = new CKEDITOR.dom.walker( range ); - continue; - } - - // Switch the alignment. - var classes = editor.config.justifyClasses; - if ( classes ) { - // The left align class. - if ( node.hasClass( classes[ 0 ] ) ) { - node.removeClass( classes[ 0 ] ); - node.addClass( classes[ 2 ] ); - } - // The right align class. - else if ( node.hasClass( classes[ 2 ] ) ) { - node.removeClass( classes[ 2 ] ); - node.addClass( classes[ 0 ] ); - } - } - - // Always switch CSS margins. - var style = 'text-align'; - var align = node.getStyle( style ); - - if ( align == 'left' ) - node.setStyle( style, 'right' ); - else if ( align == 'right' ) - node.setStyle( style, 'left' ); - } - } - } - - justifyCommand.prototype = { - exec: function( editor ) { - var selection = editor.getSelection(), - enterMode = editor.config.enterMode; - - if ( !selection ) - return; - - var bookmarks = selection.createBookmarks(), - ranges = selection.getRanges(); - - var cssClassName = this.cssClassName, - iterator, block; - - var useComputedState = editor.config.useComputedState; - useComputedState = useComputedState === undefined || useComputedState; - - for ( var i = ranges.length - 1; i >= 0; i-- ) { - iterator = ranges[ i ].createIterator(); - iterator.enlargeBr = enterMode != CKEDITOR.ENTER_BR; - - while ( ( block = iterator.getNextParagraph( enterMode == CKEDITOR.ENTER_P ? 'p' : 'div' ) ) ) { - if ( block.isReadOnly() ) - continue; - - // Check if style or class might be applied to currently processed element (#455). - var tag = block.getName(), - isAllowedTextAlign, isAllowedCssClass; - - isAllowedTextAlign = editor.activeFilter.check( tag + '{text-align}' ); - isAllowedCssClass = editor.activeFilter.check( tag + '(' + cssClassName + ')' ); - - if ( !isAllowedCssClass && !isAllowedTextAlign ) { - continue; - } - - block.removeAttribute( 'align' ); - block.removeStyle( 'text-align' ); - - // Remove any of the alignment classes from the className. - var className = cssClassName && ( block.$.className = CKEDITOR.tools.ltrim( block.$.className.replace( this.cssClassRegex, '' ) ) ); - - var apply = ( this.state == CKEDITOR.TRISTATE_OFF ) && ( !useComputedState || ( getAlignment( block, true ) != this.value ) ); - - if ( cssClassName && isAllowedCssClass ) { - // Append the desired class name. - if ( apply ) - block.addClass( cssClassName ); - else if ( !className ) - block.removeAttribute( 'class' ); - } else if ( apply && isAllowedTextAlign ) { - block.setStyle( 'text-align', this.value ); - } - } - - } - - editor.focus(); - editor.forceNextSelectionCheck(); - selection.selectBookmarks( bookmarks ); - }, - - refresh: function( editor, path ) { - var firstBlock = path.block || path.blockLimit, - name = firstBlock.getName(), - isEditable = firstBlock.equals( editor.editable() ), - isStylable = this.cssClassName ? editor.activeFilter.check( name + '(' + this.cssClassName + ')' ) : - editor.activeFilter.check( name + '{text-align}' ); - - // #455 - // 1. Check if we are directly in editbale. Justification should be always allowed, and not highlighted. - // Checking path.elements.length is required to filter out situation `body > ul` where ul is selected and path.blockLimit returns editable. - // 2. Check if current element can have applied specific class. - // 3. Check if current element can have applied text-align style. - if ( isEditable && path.elements.length === 1 ) { - this.setState( CKEDITOR.TRISTATE_OFF ); - } else if ( !isEditable && isStylable ) { - // 2 & 3 in one condition. - this.setState( getAlignment( firstBlock, this.editor.config.useComputedState ) == this.value ? CKEDITOR.TRISTATE_ON : CKEDITOR.TRISTATE_OFF ); - } else { - this.setState( CKEDITOR.TRISTATE_DISABLED ); - } - } - }; - - CKEDITOR.plugins.add( 'justify', { - // jscs:disable maximumLineLength - lang: 'af,ar,az,bg,bn,bs,ca,cs,cy,da,de,de-ch,el,en,en-au,en-ca,en-gb,eo,es,es-mx,et,eu,fa,fi,fo,fr,fr-ca,gl,gu,he,hi,hr,hu,id,is,it,ja,ka,km,ko,ku,lt,lv,mk,mn,ms,nb,nl,no,oc,pl,pt,pt-br,ro,ru,si,sk,sl,sq,sr,sr-latn,sv,th,tr,tt,ug,uk,vi,zh,zh-cn', // %REMOVE_LINE_CORE% - // jscs:enable maximumLineLength - icons: 'justifyblock,justifycenter,justifyleft,justifyright', // %REMOVE_LINE_CORE% - hidpi: true, // %REMOVE_LINE_CORE% - init: function( editor ) { - if ( editor.blockless ) - return; - - var left = new justifyCommand( editor, 'justifyleft', 'left' ), - center = new justifyCommand( editor, 'justifycenter', 'center' ), - right = new justifyCommand( editor, 'justifyright', 'right' ), - justify = new justifyCommand( editor, 'justifyblock', 'justify' ); - - editor.addCommand( 'justifyleft', left ); - editor.addCommand( 'justifycenter', center ); - editor.addCommand( 'justifyright', right ); - editor.addCommand( 'justifyblock', justify ); - - if ( editor.ui.addButton ) { - editor.ui.addButton( 'JustifyLeft', { - label: editor.lang.justify.left, - command: 'justifyleft', - toolbar: 'align,10' - } ); - editor.ui.addButton( 'JustifyCenter', { - label: editor.lang.justify.center, - command: 'justifycenter', - toolbar: 'align,20' - } ); - editor.ui.addButton( 'JustifyRight', { - label: editor.lang.justify.right, - command: 'justifyright', - toolbar: 'align,30' - } ); - editor.ui.addButton( 'JustifyBlock', { - label: editor.lang.justify.block, - command: 'justifyblock', - toolbar: 'align,40' - } ); - } - editor.on( 'dirChanged', onDirChanged ); - } - } ); -} )(); - -/** - * List of classes to use for aligning the contents. If it's `null`, no classes will be used - * and instead the corresponding CSS values will be used. - * - * The array should contain 4 members, in the following order: left, center, right, justify. - * - * // Use the classes 'AlignLeft', 'AlignCenter', 'AlignRight', 'AlignJustify' - * config.justifyClasses = [ 'AlignLeft', 'AlignCenter', 'AlignRight', 'AlignJustify' ]; - * - * @cfg {Array} [justifyClasses=null] - * @member CKEDITOR.config - */ diff --git a/admin/plugins/ckeditor/plugins/lineutils/dev/dnd.html b/admin/plugins/ckeditor/plugins/lineutils/dev/dnd.html deleted file mode 100644 index 971d9cd..0000000 --- a/admin/plugins/ckeditor/plugins/lineutils/dev/dnd.html +++ /dev/null @@ -1,172 +0,0 @@ -<!DOCTYPE html> -<!-- -Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. -For licensing, see LICENSE.md or http://ckeditor.com/license ---> -<html> -<head> - <meta charset="utf-8"> - <title>Widget Drag &amp; Drop with Lineutils &mdash; CKEditor Sample</title> - <script src="../../../ckeditor.js"></script> - <script> - if ( CKEDITOR.env.ie && CKEDITOR.env.version < 9 ) - CKEDITOR.tools.enableHtml5Elements( document ); - </script> - <link href="../../../samples/old/sample.css" rel="stylesheet"> - <link href="../../image2/samples/contents.css" rel="stylesheet"> -</head> -<body> - <h1 class="samples"> - <a href="../../../samples/old/index.html">CKEditor Samples</a> &raquo; Widget Drag &amp; Drop with Lineutils - </h1> - - <h3>Classic (iframe-based) Editor</h3> - - <textarea id="editor1" cols="10" rows="10"> - <h1>Apollo 11</h1> - - <figure class="caption" style="float:right"><img alt="Saturn V" src="../../image2/samples/assets/image1.jpg" width="200" /> - <figcaption>Roll out of Saturn V on launch pad</figcaption> - </figure> - - <p><strong>Apollo 11</strong> was the spaceflight that landed the first humans, Americans <a href="http://en.wikipedia.org/wiki/Neil_Armstrong" title="Neil Armstrong">Neil Armstrong</a> and <a href="http://en.wikipedia.org/wiki/Buzz_Aldrin" title="Buzz Aldrin">Buzz Aldrin</a>, on the Moon on July 20, 1969, at 20:18 UTC. Armstrong became the first to step onto the lunar surface 6 hours later on July 21 at 02:56 UTC.</p> - - <p>Armstrong spent about <s>three and a half</s> two and a half hours outside the spacecraft, Aldrin slightly less; and together they collected 47.5 pounds (21.5&nbsp;kg) of lunar material for return to Earth. A third member of the mission, <a href="http://en.wikipedia.org/wiki/Michael_Collins_(astronaut)" title="Michael Collins (astronaut)">Michael Collins</a>, piloted the <a href="http://en.wikipedia.org/wiki/Apollo_Command/Service_Module" title="Apollo Command/Service Module">command</a> spacecraft alone in lunar orbit until Armstrong and Aldrin returned to it for the trip back to Earth.</p> - - <h2>Broadcasting and <em>quotes</em> <a id="quotes" name="quotes"></a></h2> - - <p>Broadcast on live TV to a world-wide audience, Armstrong stepped onto the lunar surface and described the event as:</p> - - <blockquote> - <p>One small step for [a] man, one giant leap for mankind.</p> - </blockquote> - - <p>Apollo 11 effectively ended the <a href="http://en.wikipedia.org/wiki/Space_Race" title="Space Race">Space Race</a> and fulfilled a national goal proposed in 1961 by the late U.S. President <a href="http://en.wikipedia.org/wiki/John_F._Kennedy" title="John F. Kennedy">John F. Kennedy</a> in a speech before the United States Congress:</p> - - <div style="text-align:center"> - <figure class="caption" style="display:inline-block"><img alt="The Eagle" height="123" src="../../image2/samples/assets/image2.jpg" width="136" /> - <figcaption>The Eagle in lunar orbit</figcaption> - </figure> - </div> - - <blockquote> - <p>[...] before this decade is out, of landing a man on the Moon and returning him safely to the Earth.</p> - </blockquote> - - <figure class="caption" style="float:right"><img alt="The Eagle" src="../../image2/samples/assets/image2.jpg" width="200" /> - <figcaption>The Eagle in lunar orbit</figcaption> - </figure> - - <h2>Technical details <a id="tech-details" name="tech-details"></a></h2> - - <p>Launched by a <strong>Saturn V</strong> rocket from <a href="http://en.wikipedia.org/wiki/Kennedy_Space_Center" title="Kennedy Space Center">Kennedy Space Center</a> in Merritt Island, Florida on July 16, Apollo 11 was the fifth manned mission of <a href="http://en.wikipedia.org/wiki/NASA" title="NASA">NASA</a>&#39;s Apollo program. The Apollo spacecraft had three parts:</p> - - <ol> - <li><strong>Command Module</strong> with a cabin for the three astronauts which was the only part which landed back on Earth</li> - <li><strong>Service Module</strong> which supported the Command Module with propulsion, electrical power, oxygen and water</li> - <li><strong>Lunar Module</strong> for landing on the Moon.</li> - </ol> - - <p>After being sent to the Moon by the Saturn V&#39;s upper stage, the astronauts separated the spacecraft from it and travelled for three days until they entered into lunar orbit. Armstrong and Aldrin then moved into the Lunar Module and landed in the <a href="http://en.wikipedia.org/wiki/Mare_Tranquillitatis" title="Mare Tranquillitatis">Sea of Tranquility</a>. They stayed a total of about 21 and a half hours on the lunar surface. After lifting off in the upper part of the Lunar Module and rejoining Collins in the Command Module, they returned to Earth and landed in the <a href="http://en.wikipedia.org/wiki/Pacific_Ocean" title="Pacific Ocean">Pacific Ocean</a> on July 24.</p> - - <figure class="caption"><img alt="Saturn V" height="129" src="../../image2/samples/assets/image1.jpg" width="101" /> - <figcaption>Roll out of Saturn V on launch pad</figcaption> - </figure> - - <hr /> - <p style="text-align:right"><small>Source: <a href="http://en.wikipedia.org/wiki/Apollo_11">Wikipedia.org</a></small></p> - - </textarea> - - <h3>Inline Editor</h3> - - <div id="editor2" contenteditable="true" style="outline: 2px solid #ccc"> - <table border="0" cellpadding="1" cellspacing="1" style="width: 100%; "> - <tbody> - <tr> - <td>This table</td> - <td>is the</td> - <td>very first</td> - <td>element of the document.</td> - </tr> - <tr> - <td>We are still</td> - <td>able to acces</td> - <td>the space before it.</td> - <td style="padding: 25px"> - <table border="0" cellpadding="1" cellspacing="1" style="width: 100%; "> - <tbody> - <tr> - <td>This table is inside of a cell of another table.</td> - </tr> - <tr> - <td>We can type&nbsp;either before or after it though.</td> - </tr> - </tbody> - </table> - </td> - </tr> - </tbody> - </table> - - <hr /> - <hr /> - <ol style="width: 300px"> - <li>This numbered list...</li> - <li>...is a neighbour of a horizontal line...</li> - <li style="padding: 20px;"> - <ol> - <li>Nested list!</li> - </ol> - </li> - </ol> - - <figure class="caption"><img alt="Saturn V" src="../../image2/samples/assets/image1.jpg" width="100" /> - <figcaption>Roll out of Saturn V on launch pad</figcaption> - </figure> - - <ul style="width: 450px"> - <li>We can type between the lists...</li> - <li>...thanks to <strong>Magicline</strong>.</li> - </ul> - - <p>Lorem ipsum dolor sit amet dui. Morbi vel turpis. Nullam et leo. Etiam rutrum, urna tellus dui vel tincidunt mattis egestas, justo fringilla vel, massa. Phasellus.</p> - - <p>Quisque iaculis, dui lectus varius vitae, tortor. Proin lacus. Pellentesque ac lacus. Aenean nonummy commodo nec, pede. Etiam blandit risus elit.</p> - - <p>Ut pretium. Vestibulum rutrum in, adipiscing elit. Sed in quam in purus sem vitae pede. Pellentesque bibendum, urna sem vel risus. Vivamus posuere metus. Aliquam gravida iaculis nisl. Nam enim. Aliquam erat ac lacus tellus ac felis.</p> - - <div id="last" style="padding: 10px; text-align: center;"> - <p>This text is wrapped in a&nbsp;<tt>DIV</tt>&nbsp;element. We can type after this element though.</p> - </div> - </div> - - <script> - - CKEDITOR.replace( 'editor1', { - extraPlugins: 'image2', - height: 450, - removePlugins: 'image,forms', - contentsCss: [ '../../../contents.css', '../../image2/samples/contents.css' ] - } ); - - CKEDITOR.inline( 'editor2', { - extraPlugins: 'image2', - height: 450, - removePlugins: 'image,forms' - } ); - - </script> - - <div id="footer"> - <hr> - <p> - CKEditor - The text editor for the Internet - <a class="samples" href="http://ckeditor.com/">http://ckeditor.com</a> - </p> - <p id="copy"> - Copyright &copy; 2003-2017, <a class="samples" href="http://cksource.com/">CKSource</a> - Frederico - Knabben. All rights reserved. - </p> - </div> -</body> -</html> diff --git a/admin/plugins/ckeditor/plugins/lineutils/dev/magicfinger.html b/admin/plugins/ckeditor/plugins/lineutils/dev/magicfinger.html deleted file mode 100644 index 7f2b632..0000000 --- a/admin/plugins/ckeditor/plugins/lineutils/dev/magicfinger.html +++ /dev/null @@ -1,285 +0,0 @@ -<!DOCTYPE html> -<!-- -Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. -For licensing, see LICENSE.md or http://ckeditor.com/license ---> -<html> -<head> - <meta charset="utf-8"> - <title>Lineutils &mdash; CKEditor Sample</title> - <script src="../../../ckeditor.js"></script> - <link href="../../../samples/old/sample.css" rel="stylesheet"> -</head> -<body> - <h1 class="samples"> - <a href="../../../samples/old/index.html">CKEditor Samples</a> &raquo; Lineutils - </h1> - - <h3>Classic (iframe-based) Editor</h3> - - <textarea id="editor1" cols="10" rows="10"> - <table border="0" cellpadding="1" cellspacing="1" style="width: 100%; "> - <tbody> - <tr> - <td>This table</td> - <td>is the</td> - <td>very first</td> - <td>element of the document.</td> - </tr> - <tr> - <td>We are still</td> - <td>able to acces</td> - <td>the space before it.</td> - <td style="padding: 25px"> - <table border="0" cellpadding="1" cellspacing="1" style="width: 100%; "> - <tbody> - <tr> - <td>This table is inside of a cell of another table.</td> - </tr> - <tr> - <td>We can type&nbsp;either before or after it though.</td> - </tr> - </tbody> - </table> - </td> - </tr> - </tbody> - </table> - - <p>Two succesive horizontal lines (<tt>HR</tt> tags). We can access the space in between:</p> - - <hr /> - <hr /> - <ol style="width: 300px"> - <li>This numbered list...</li> - <li>...is a neighbour of a horizontal line...</li> - <li style="padding: 20px;"> - <ol> - <li>Nested list!</li> - </ol> - </li> - </ol> - - <ul style="width: 450px"> - <li>We can type between the lists...</li> - <li>...thanks to <strong>Magicline</strong>.</li> - </ul> - - <p>Lorem ipsum dolor sit amet dui. Morbi vel turpis. Nullam et leo. Etiam rutrum, urna tellus dui vel tincidunt mattis egestas, justo fringilla vel, massa. Phasellus.</p> - - <p>Quisque iaculis, dui lectus varius vitae, tortor. Proin lacus. Pellentesque ac lacus. Aenean nonummy commodo nec, pede. Etiam blandit risus elit.</p> - - <p>Ut pretium. Vestibulum rutrum in, adipiscing elit. Sed in quam in purus sem vitae pede. Pellentesque bibendum, urna sem vel risus. Vivamus posuere metus. Aliquam gravida iaculis nisl. Nam enim. Aliquam erat ac lacus tellus ac felis.</p> - - <div id="last" style="padding: 10px; text-align: center;"> - <p>This text is wrapped in a&nbsp;<tt>DIV</tt>&nbsp;element. We can type after this element though.</p> - </div> - </textarea> - - <h3>Inline Editor</h3> - - <div id="editor2" contenteditable="true" style="outline: 2px solid #ccc"> - <table border="0" cellpadding="1" cellspacing="1" style="width: 100%; "> - <tbody> - <tr> - <td>This table</td> - <td>is the</td> - <td>very first</td> - <td>element of the document.</td> - </tr> - <tr> - <td>We are still</td> - <td>able to acces</td> - <td>the space before it.</td> - <td style="padding: 25px"> - <table border="0" cellpadding="1" cellspacing="1" style="width: 100%; "> - <tbody> - <tr> - <td>This table is inside of a cell of another table.</td> - </tr> - <tr> - <td>We can type&nbsp;either before or after it though.</td> - </tr> - </tbody> - </table> - </td> - </tr> - </tbody> - </table> - - <p>Two succesive horizontal lines (<tt>HR</tt> tags). We can access the space in between:</p> - - <hr /> - <hr /> - <ol style="width: 300px"> - <li>This numbered list...</li> - <li>...is a neighbour of a horizontal line...</li> - <li style="padding: 20px;"> - <ol> - <li>Nested list!</li> - </ol> - </li> - </ol> - - <ul style="width: 450px"> - <li>We can type between the lists...</li> - <li>...thanks to <strong>Magicline</strong>.</li> - </ul> - - <p>Lorem ipsum dolor sit amet dui. Morbi vel turpis. Nullam et leo. Etiam rutrum, urna tellus dui vel tincidunt mattis egestas, justo fringilla vel, massa. Phasellus.</p> - - <p>Quisque iaculis, dui lectus varius vitae, tortor. Proin lacus. Pellentesque ac lacus. Aenean nonummy commodo nec, pede. Etiam blandit risus elit.</p> - - <p>Ut pretium. Vestibulum rutrum in, adipiscing elit. Sed in quam in purus sem vitae pede. Pellentesque bibendum, urna sem vel risus. Vivamus posuere metus. Aliquam gravida iaculis nisl. Nam enim. Aliquam erat ac lacus tellus ac felis.</p> - - <div id="last" style="padding: 10px; text-align: center;"> - <p>This text is wrapped in a&nbsp;<tt>DIV</tt>&nbsp;element. We can type after this element though.</p> - </div> - </div> - - <h3>Extreme inline</h3> - - <div id="editor3" contenteditable="true" style="left: 123px; outline: 1px solid red; border: 15px solid green; position: relative; top: 30; left: 30px;"> - <div style="padding: 20px; background: gray; width: 300px" class="1">Lorem ipsum dolor sit amet enim. Etiam ullamcorper. Suspendisse a pellentesque dui, non felis. Maecenas malesuada elit lectus felis, malesuada ultricies. Curabitur et ligula. Ut molestie a, ultricies porta urna. Vestibulum commodo volutpat a, convallis ac, laoreet enim.</div> - <div style="background: violet; padding: 30px;" class="static"> - Position static - <div style="background: green; padding: 30px; border: 14px solid orange">foo</div> - </div> - <dl class="2"> - <dt>Key</dt><dd>Value</dd> - </dl> - <div>Whatever</div> - <hr id="hr"> - <p>Lorem ipsum dolor sit amet enim. Etiam ullamcorper. Suspendisse a pellentesque dui, non felis. Maecenas malesuada elit lectus felis, malesuada ultricies</p> - <hr> - <hr> - <p>Lorem ipsum dolor sit amet enim. Etiam ullamcorper. Suspendisse a pellentesque dui, non felis. Maecenas malesuada elit lectus felis, malesuada ultricies</p> - <div style="background: green; padding: 30px; width: 200px">foo</div> - </div> - - <h3>Classic (iframe-based) Editor, H-scroll</h3> - - <textarea id="editor4" cols="10" rows="10"> - <hr /> - <hr /> - <ol style="width: 1500px"> - <li>This numbered list...</li> - <li>...is a neighbour of a horizontal line...</li> - <li style="padding: 20px;"> - <ol> - <li>Nested list!</li> - </ol> - </li> - </ol> - - <ul style="width: 450px"> - <li>We can type between the lists...</li> - <li>...thanks to <strong>Magicline</strong>.</li> - </ul> - - <p>Lorem ipsum dolor sit amet dui. Morbi vel turpis. Nullam et leo. Etiam rutrum, urna tellus dui vel tincidunt mattis egestas, justo fringilla vel, massa. Phasellus.</p> - - <p>Quisque iaculis, dui lectus varius vitae, tortor. Proin lacus. Pellentesque ac lacus. Aenean nonummy commodo nec, pede. Etiam blandit risus elit.</p> - - <p>Ut pretium. Vestibulum rutrum in, adipiscing elit. Sed in quam in purus sem vitae pede. Pellentesque bibendum, urna sem vel risus. Vivamus posuere metus. Aliquam gravida iaculis nisl. Nam enim. Aliquam erat ac lacus tellus ac felis.</p> - - <div id="last" style="padding: 10px; text-align: center;"> - <p>This text is wrapped in a&nbsp;<tt>DIV</tt>&nbsp;element. We can type after this element though.</p> - </div> - </textarea> - - <script> - - CKEDITOR.addCss( - '.cke_editable * { outline: 1px solid #BCEBFF }' - ); - - function callback() { - var helpers = CKEDITOR.plugins.lineutils; - var liner = new helpers.liner( this ); - var locator = new helpers.locator( this ); - var finder = new helpers.finder( this, { - lookups: { - 'is block and first child': function( el ) { - if ( el.is( CKEDITOR.dtd.$listItem ) ) - return; - - if ( el.is( CKEDITOR.dtd.$block ) ) - return CKEDITOR.LINEUTILS_BEFORE | CKEDITOR.LINEUTILS_AFTER; - } - } - } ).start( function( relations, x, y ) { - locator.locate( relations ); - - var locations = locator.locations, - uid, type; - - liner.prepare( relations, locations ); - - for ( uid in locations ) { - for ( type in locations[ uid ] ) - liner.placeLine( { uid: uid, type: type } ); - } - - liner.cleanup(); - } ); - } - - CKEDITOR.disableAutoInline = true; - - CKEDITOR.replace( 'editor1', { - extraPlugins: 'lineutils', - height: 450, - removePlugins: 'magicline', - allowedContent: true, - contentsCss: [ '../../../contents.css' ], - on: { - contentDom: callback - } - } ); - - CKEDITOR.inline( 'editor2', { - extraPlugins: 'lineutils', - removePlugins: 'magicline', - allowedContent: true, - contentsCss: [ '../../../contents.css' ], - on: { - contentDom: callback - } - } ); - - CKEDITOR.inline( 'editor3', { - extraPlugins: 'lineutils', - removePlugins: 'magicline', - allowedContent: true, - contentsCss: [ '../../../contents.css' ], - on: { - contentDom: callback - } - } ); - - CKEDITOR.replace( 'editor4', { - extraPlugins: 'lineutils', - removePlugins: 'magicline', - allowedContent: true, - contentsCss: [ '../../../contents.css' ], - on: { - contentDom: callback - } - } ); - - - </script> - - <div id="footer"> - <hr> - <p> - CKEditor - The text editor for the Internet - <a class="samples" href="http://ckeditor.com/">http://ckeditor.com</a> - </p> - <p id="copy"> - Copyright &copy; 2003-2017, <a class="samples" href="http://cksource.com/">CKSource</a> - Frederico - Knabben. All rights reserved. - </p> - </div> -</body> -</html> diff --git a/admin/plugins/ckeditor/plugins/lineutils/plugin.js b/admin/plugins/ckeditor/plugins/lineutils/plugin.js deleted file mode 100644 index 75d0da8..0000000 --- a/admin/plugins/ckeditor/plugins/lineutils/plugin.js +++ /dev/null @@ -1,1018 +0,0 @@ -/** - * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. - * For licensing, see LICENSE.md or http://ckeditor.com/license - */ - - /** - * @fileOverview A set of utilities to find and create horizontal spaces in edited content. - */ - -'use strict'; - -( function() { - - CKEDITOR.plugins.add( 'lineutils' ); - - /** - * Determines a position relative to an element in DOM (before). - * - * @readonly - * @property {Number} [=0] - * @member CKEDITOR - */ - CKEDITOR.LINEUTILS_BEFORE = 1; - - /** - * Determines a position relative to an element in DOM (after). - * - * @readonly - * @property {Number} [=2] - * @member CKEDITOR - */ - CKEDITOR.LINEUTILS_AFTER = 2; - - /** - * Determines a position relative to an element in DOM (inside). - * - * @readonly - * @property {Number} [=4] - * @member CKEDITOR - */ - CKEDITOR.LINEUTILS_INSIDE = 4; - - /** - * A utility that traverses the DOM tree and discovers elements - * (relations) matching user-defined lookups. - * - * @private - * @class CKEDITOR.plugins.lineutils.finder - * @constructor Creates a Finder class instance. - * @param {CKEDITOR.editor} editor Editor instance that the Finder belongs to. - * @param {Object} def Finder's definition. - * @since 4.3 - */ - function Finder( editor, def ) { - CKEDITOR.tools.extend( this, { - editor: editor, - editable: editor.editable(), - doc: editor.document, - win: editor.window - }, def, true ); - - this.inline = this.editable.isInline(); - - if ( !this.inline ) { - this.frame = this.win.getFrame(); - } - - this.target = this[ this.inline ? 'editable' : 'doc' ]; - } - - Finder.prototype = { - /** - * Initializes searching for elements with every mousemove event fired. - * To stop searching use {@link #stop}. - * - * @param {Function} [callback] Function executed on every iteration. - */ - start: function( callback ) { - var that = this, - editor = this.editor, - doc = this.doc, - el, elfp, x, y; - - var moveBuffer = CKEDITOR.tools.eventsBuffer( 50, function() { - if ( editor.readOnly || editor.mode != 'wysiwyg' ) - return; - - that.relations = {}; - - // Sometimes it happens that elementFromPoint returns null (especially on IE). - // Any further traversal makes no sense if there's no start point. Abort. - // Note: In IE8 elementFromPoint may return zombie nodes of undefined nodeType, - // so rejecting those as well. - if ( !( elfp = doc.$.elementFromPoint( x, y ) ) || !elfp.nodeType ) { - return; - } - - el = new CKEDITOR.dom.element( elfp ); - - that.traverseSearch( el ); - - if ( !isNaN( x + y ) ) { - that.pixelSearch( el, x, y ); - } - - callback && callback( that.relations, x, y ); - } ); - - // Searching starting from element from point on mousemove. - this.listener = this.editable.attachListener( this.target, 'mousemove', function( evt ) { - x = evt.data.$.clientX; - y = evt.data.$.clientY; - - moveBuffer.input(); - } ); - - this.editable.attachListener( this.inline ? this.editable : this.frame, 'mouseout', function() { - moveBuffer.reset(); - } ); - }, - - /** - * Stops observing mouse events attached by {@link #start}. - */ - stop: function() { - if ( this.listener ) { - this.listener.removeListener(); - } - }, - - /** - * Returns a range representing the relation, according to its element - * and type. - * - * @param {Object} location Location containing a unique identifier and type. - * @returns {CKEDITOR.dom.range} Range representing the relation. - */ - getRange: ( function() { - var where = {}; - - where[ CKEDITOR.LINEUTILS_BEFORE ] = CKEDITOR.POSITION_BEFORE_START; - where[ CKEDITOR.LINEUTILS_AFTER ] = CKEDITOR.POSITION_AFTER_END; - where[ CKEDITOR.LINEUTILS_INSIDE ] = CKEDITOR.POSITION_AFTER_START; - - return function( location ) { - var range = this.editor.createRange(); - - range.moveToPosition( this.relations[ location.uid ].element, where[ location.type ] ); - - return range; - }; - } )(), - - /** - * Stores given relation in a {@link #relations} object. Processes the relation - * to normalize and avoid duplicates. - * - * @param {CKEDITOR.dom.element} el Element of the relation. - * @param {Number} type Relation, one of `CKEDITOR.LINEUTILS_AFTER`, `CKEDITOR.LINEUTILS_BEFORE`, `CKEDITOR.LINEUTILS_INSIDE`. - */ - store: ( function() { - function merge( el, type, relations ) { - var uid = el.getUniqueId(); - - if ( uid in relations ) { - relations[ uid ].type |= type; - } else { - relations[ uid ] = { element: el, type: type }; - } - } - - return function( el, type ) { - var alt; - - // Normalization to avoid duplicates: - // CKEDITOR.LINEUTILS_AFTER becomes CKEDITOR.LINEUTILS_BEFORE of el.getNext(). - if ( is( type, CKEDITOR.LINEUTILS_AFTER ) && isStatic( alt = el.getNext() ) && alt.isVisible() ) { - merge( alt, CKEDITOR.LINEUTILS_BEFORE, this.relations ); - type ^= CKEDITOR.LINEUTILS_AFTER; - } - - // Normalization to avoid duplicates: - // CKEDITOR.LINEUTILS_INSIDE becomes CKEDITOR.LINEUTILS_BEFORE of el.getFirst(). - if ( is( type, CKEDITOR.LINEUTILS_INSIDE ) && isStatic( alt = el.getFirst() ) && alt.isVisible() ) { - merge( alt, CKEDITOR.LINEUTILS_BEFORE, this.relations ); - type ^= CKEDITOR.LINEUTILS_INSIDE; - } - - merge( el, type, this.relations ); - }; - } )(), - - /** - * Traverses the DOM tree towards root, checking all ancestors - * with lookup rules, avoiding duplicates. Stores positive relations - * in the {@link #relations} object. - * - * @param {CKEDITOR.dom.element} el Element which is the starting point. - */ - traverseSearch: function( el ) { - var l, type, uid; - - // Go down DOM towards root (or limit). - do { - uid = el.$[ 'data-cke-expando' ]; - - // This element was already visited and checked. - if ( uid && uid in this.relations ) { - continue; - } - - if ( el.equals( this.editable ) ) { - return; - } - - if ( isStatic( el ) ) { - // Collect all addresses yielded by lookups for that element. - for ( l in this.lookups ) { - - if ( ( type = this.lookups[ l ]( el ) ) ) { - this.store( el, type ); - } - } - } - } while ( !isLimit( el ) && ( el = el.getParent() ) ); - }, - - /** - * Iterates vertically pixel-by-pixel within a given element starting - * from given coordinates, searching for elements in the neighborhood. - * Once an element is found it is processed by {@link #traverseSearch}. - * - * @param {CKEDITOR.dom.element} el Element which is the starting point. - * @param {Number} [x] Horizontal mouse coordinate relative to the viewport. - * @param {Number} [y] Vertical mouse coordinate relative to the viewport. - */ - pixelSearch: ( function() { - var contains = CKEDITOR.env.ie || CKEDITOR.env.webkit ? - function( el, found ) { - return el.contains( found ); - } : function( el, found ) { - return !!( el.compareDocumentPosition( found ) & 16 ); - }; - - // Iterates pixel-by-pixel from starting coordinates, moving by defined - // step and getting elementFromPoint in every iteration. Iteration stops when: - // * A valid element is found. - // * Condition function returns `false` (i.e. reached boundaries of viewport). - // * No element is found (i.e. coordinates out of viewport). - // * Element found is ascendant of starting element. - // - // @param {Object} doc Native DOM document. - // @param {Object} el Native DOM element. - // @param {Number} xStart Horizontal starting coordinate to use. - // @param {Number} yStart Vertical starting coordinate to use. - // @param {Number} step Step of the algorithm. - // @param {Function} condition A condition relative to current vertical coordinate. - function iterate( el, xStart, yStart, step, condition ) { - var y = yStart, - tryouts = 0, - found; - - while ( condition( y ) ) { - y += step; - - // If we try and we try, and still nothing's found, let's end - // that party. - if ( ++tryouts == 25 ) { - return; - } - - found = this.doc.$.elementFromPoint( xStart, y ); - - // Nothing found. This is crazy... but... - // It might be that a line, which is in different document, - // covers that pixel (elementFromPoint is doc-sensitive). - // Better let's have another try. - if ( !found ) { - continue; - } - - // Still in the same element. - else if ( found == el ) { - tryouts = 0; - continue; - } - - // Reached the edge of an element and found an ancestor or... - // A line, that covers that pixel. Better let's have another try. - else if ( !contains( el, found ) ) { - continue; - } - - tryouts = 0; - - // Found a valid element. Stop iterating. - if ( isStatic( ( found = new CKEDITOR.dom.element( found ) ) ) ) { - return found; - } - } - } - - return function( el, x, y ) { - var paneHeight = this.win.getViewPaneSize().height, - - // Try to find an element iterating *up* from the starting point. - neg = iterate.call( this, el.$, x, y, -1, function( y ) { - return y > 0; - } ), - - // Try to find an element iterating *down* from the starting point. - pos = iterate.call( this, el.$, x, y, 1, function( y ) { - return y < paneHeight; - } ); - - if ( neg ) { - this.traverseSearch( neg ); - - // Iterate towards DOM root until neg is a direct child of el. - while ( !neg.getParent().equals( el ) ) { - neg = neg.getParent(); - } - } - - if ( pos ) { - this.traverseSearch( pos ); - - // Iterate towards DOM root until pos is a direct child of el. - while ( !pos.getParent().equals( el ) ) { - pos = pos.getParent(); - } - } - - // Iterate forwards starting from neg and backwards from - // pos to harvest all children of el between those elements. - // Stop when neg and pos meet each other or there's none of them. - // TODO (?) reduce number of hops forwards/backwards. - while ( neg || pos ) { - if ( neg ) { - neg = neg.getNext( isStatic ); - } - - if ( !neg || neg.equals( pos ) ) { - break; - } - - this.traverseSearch( neg ); - - if ( pos ) { - pos = pos.getPrevious( isStatic ); - } - - if ( !pos || pos.equals( neg ) ) { - break; - } - - this.traverseSearch( pos ); - } - }; - } )(), - - /** - * Unlike {@link #traverseSearch}, it collects **all** elements from editable's DOM tree - * and runs lookups for every one of them, collecting relations. - * - * @returns {Object} {@link #relations}. - */ - greedySearch: function() { - this.relations = {}; - - var all = this.editable.getElementsByTag( '*' ), - i = 0, - el, type, l; - - while ( ( el = all.getItem( i++ ) ) ) { - // Don't consider editable, as it might be inline, - // and i.e. checking it's siblings is pointless. - if ( el.equals( this.editable ) ) { - continue; - } - - // On IE8 element.getElementsByTagName returns comments... sic! (http://dev.ckeditor.com/ticket/13176) - if ( el.type != CKEDITOR.NODE_ELEMENT ) { - continue; - } - - // Don't visit non-editable internals, for example widget's - // guts (above wrapper, below nested). Still check editable limits, - // as they are siblings with editable contents. - if ( !el.hasAttribute( 'contenteditable' ) && el.isReadOnly() ) { - continue; - } - - if ( isStatic( el ) && el.isVisible() ) { - // Collect all addresses yielded by lookups for that element. - for ( l in this.lookups ) { - if ( ( type = this.lookups[ l ]( el ) ) ) { - this.store( el, type ); - } - } - } - } - - return this.relations; - } - - /** - * Relations express elements in DOM that match user-defined {@link #lookups}. - * Every relation has its own `type` that determines whether - * it refers to the space before, after or inside the `element`. - * This object stores relations found by {@link #traverseSearch} or {@link #greedySearch}, structured - * in the following way: - * - * relations: { - * // Unique identifier of the element. - * Number: { - * // Element of this relation. - * element: {@link CKEDITOR.dom.element} - * // Conjunction of CKEDITOR.LINEUTILS_BEFORE, CKEDITOR.LINEUTILS_AFTER and CKEDITOR.LINEUTILS_INSIDE. - * type: Number - * }, - * ... - * } - * - * @property {Object} relations - * @readonly - */ - - /** - * A set of user-defined functions used by Finder to check if an element - * is a valid relation, belonging to {@link #relations}. - * When the criterion is met, lookup returns a logical conjunction of `CKEDITOR.LINEUTILS_BEFORE`, - * `CKEDITOR.LINEUTILS_AFTER` or `CKEDITOR.LINEUTILS_INSIDE`. - * - * Lookups are passed along with Finder's definition. - * - * lookups: { - * 'some lookup': function( el ) { - * if ( someCondition ) - * return CKEDITOR.LINEUTILS_BEFORE; - * }, - * ... - * } - * - * @property {Object} lookups - */ - }; - - - /** - * A utility that analyses relations found by - * CKEDITOR.plugins.lineutils.finder and locates them - * in the viewport as horizontal lines of specific coordinates. - * - * @private - * @class CKEDITOR.plugins.lineutils.locator - * @constructor Creates a Locator class instance. - * @param {CKEDITOR.editor} editor Editor instance that Locator belongs to. - * @since 4.3 - */ - function Locator( editor, def ) { - CKEDITOR.tools.extend( this, def, { - editor: editor - }, true ); - } - - Locator.prototype = { - /** - * Locates the Y coordinate for all types of every single relation and stores - * them in an object. - * - * @param {Object} relations {@link CKEDITOR.plugins.lineutils.finder#relations}. - * @returns {Object} {@link #locations}. - */ - locate: ( function() { - function locateSibling( rel, type ) { - var sib = rel.element[ type === CKEDITOR.LINEUTILS_BEFORE ? 'getPrevious' : 'getNext' ](); - - // Return the middle point between siblings. - if ( sib && isStatic( sib ) ) { - rel.siblingRect = sib.getClientRect(); - - if ( type == CKEDITOR.LINEUTILS_BEFORE ) { - return ( rel.siblingRect.bottom + rel.elementRect.top ) / 2; - } else { - return ( rel.elementRect.bottom + rel.siblingRect.top ) / 2; - } - } - - // If there's no sibling, use the edge of an element. - else { - if ( type == CKEDITOR.LINEUTILS_BEFORE ) { - return rel.elementRect.top; - } else { - return rel.elementRect.bottom; - } - } - } - - return function( relations ) { - var rel; - - this.locations = {}; - - for ( var uid in relations ) { - rel = relations[ uid ]; - rel.elementRect = rel.element.getClientRect(); - - if ( is( rel.type, CKEDITOR.LINEUTILS_BEFORE ) ) { - this.store( uid, CKEDITOR.LINEUTILS_BEFORE, locateSibling( rel, CKEDITOR.LINEUTILS_BEFORE ) ); - } - - if ( is( rel.type, CKEDITOR.LINEUTILS_AFTER ) ) { - this.store( uid, CKEDITOR.LINEUTILS_AFTER, locateSibling( rel, CKEDITOR.LINEUTILS_AFTER ) ); - } - - // The middle point of the element. - if ( is( rel.type, CKEDITOR.LINEUTILS_INSIDE ) ) { - this.store( uid, CKEDITOR.LINEUTILS_INSIDE, ( rel.elementRect.top + rel.elementRect.bottom ) / 2 ); - } - } - - return this.locations; - }; - } )(), - - /** - * Calculates distances from every location to given vertical coordinate - * and sorts locations according to that distance. - * - * @param {Number} y The vertical coordinate used for sorting, used as a reference. - * @param {Number} [howMany] Determines the number of "closest locations" to be returned. - * @returns {Array} Sorted, array representation of {@link #locations}. - */ - sort: ( function() { - var locations, sorted, - dist, i; - - function distance( y, uid, type ) { - return Math.abs( y - locations[ uid ][ type ] ); - } - - return function( y, howMany ) { - locations = this.locations; - sorted = []; - - for ( var uid in locations ) { - for ( var type in locations[ uid ] ) { - dist = distance( y, uid, type ); - - // An array is empty. - if ( !sorted.length ) { - sorted.push( { uid: +uid, type: type, dist: dist } ); - } else { - // Sort the array on fly when it's populated. - for ( i = 0; i < sorted.length; i++ ) { - if ( dist < sorted[ i ].dist ) { - sorted.splice( i, 0, { uid: +uid, type: type, dist: dist } ); - break; - } - } - - // Nothing was inserted, so the distance is bigger than - // any of already calculated: push to the end. - if ( i == sorted.length ) { - sorted.push( { uid: +uid, type: type, dist: dist } ); - } - } - } - } - - if ( typeof howMany != 'undefined' ) { - return sorted.slice( 0, howMany ); - } else { - return sorted; - } - }; - } )(), - - /** - * Stores the location in a collection. - * - * @param {Number} uid Unique identifier of the relation. - * @param {Number} type One of `CKEDITOR.LINEUTILS_BEFORE`, `CKEDITOR.LINEUTILS_AFTER` and `CKEDITOR.LINEUTILS_INSIDE`. - * @param {Number} y Vertical position of the relation. - */ - store: function( uid, type, y ) { - if ( !this.locations[ uid ] ) { - this.locations[ uid ] = {}; - } - - this.locations[ uid ][ type ] = y; - } - - /** - * @readonly - * @property {Object} locations - */ - }; - - var tipCss = { - display: 'block', - width: '0px', - height: '0px', - 'border-color': 'transparent', - 'border-style': 'solid', - position: 'absolute', - top: '-6px' - }, - - lineStyle = { - height: '0px', - 'border-top': '1px dashed red', - position: 'absolute', - 'z-index': 9999 - }, - - lineTpl = - '<div data-cke-lineutils-line="1" class="cke_reset_all" style="{lineStyle}">' + - '<span style="{tipLeftStyle}">&nbsp;</span>' + - '<span style="{tipRightStyle}">&nbsp;</span>' + - '</div>'; - - /** - * A utility that draws horizontal lines in DOM according to locations - * returned by CKEDITOR.plugins.lineutils.locator. - * - * @private - * @class CKEDITOR.plugins.lineutils.liner - * @constructor Creates a Liner class instance. - * @param {CKEDITOR.editor} editor Editor instance that Liner belongs to. - * @param {Object} def Liner's definition. - * @since 4.3 - */ - function Liner( editor, def ) { - var editable = editor.editable(); - - CKEDITOR.tools.extend( this, { - editor: editor, - editable: editable, - inline: editable.isInline(), - doc: editor.document, - win: editor.window, - container: CKEDITOR.document.getBody(), - winTop: CKEDITOR.document.getWindow() - }, def, true ); - - this.hidden = {}; - this.visible = {}; - - if ( !this.inline ) { - this.frame = this.win.getFrame(); - } - - this.queryViewport(); - - // Callbacks must be wrapped. Otherwise they're not attached - // to global DOM objects (i.e. topmost window) for every editor - // because they're treated as duplicates. They belong to the - // same prototype shared among Liner instances. - var queryViewport = CKEDITOR.tools.bind( this.queryViewport, this ), - hideVisible = CKEDITOR.tools.bind( this.hideVisible, this ), - removeAll = CKEDITOR.tools.bind( this.removeAll, this ); - - editable.attachListener( this.winTop, 'resize', queryViewport ); - editable.attachListener( this.winTop, 'scroll', queryViewport ); - - editable.attachListener( this.winTop, 'resize', hideVisible ); - editable.attachListener( this.win, 'scroll', hideVisible ); - - editable.attachListener( this.inline ? editable : this.frame, 'mouseout', function( evt ) { - var x = evt.data.$.clientX, - y = evt.data.$.clientY; - - this.queryViewport(); - - // Check if mouse is out of the element (iframe/editable). - if ( x <= this.rect.left || x >= this.rect.right || y <= this.rect.top || y >= this.rect.bottom ) { - this.hideVisible(); - } - - // Check if mouse is out of the top-window vieport. - if ( x <= 0 || x >= this.winTopPane.width || y <= 0 || y >= this.winTopPane.height ) { - this.hideVisible(); - } - }, this ); - - editable.attachListener( editor, 'resize', queryViewport ); - editable.attachListener( editor, 'mode', removeAll ); - editor.on( 'destroy', removeAll ); - - this.lineTpl = new CKEDITOR.template( lineTpl ).output( { - lineStyle: CKEDITOR.tools.writeCssText( - CKEDITOR.tools.extend( {}, lineStyle, this.lineStyle, true ) - ), - tipLeftStyle: CKEDITOR.tools.writeCssText( - CKEDITOR.tools.extend( {}, tipCss, { - left: '0px', - 'border-left-color': 'red', - 'border-width': '6px 0 6px 6px' - }, this.tipCss, this.tipLeftStyle, true ) - ), - tipRightStyle: CKEDITOR.tools.writeCssText( - CKEDITOR.tools.extend( {}, tipCss, { - right: '0px', - 'border-right-color': 'red', - 'border-width': '6px 6px 6px 0' - }, this.tipCss, this.tipRightStyle, true ) - ) - } ); - } - - Liner.prototype = { - /** - * Permanently removes all lines (both hidden and visible) from DOM. - */ - removeAll: function() { - var l; - - for ( l in this.hidden ) { - this.hidden[ l ].remove(); - delete this.hidden[ l ]; - } - - for ( l in this.visible ) { - this.visible[ l ].remove(); - delete this.visible[ l ]; - } - }, - - /** - * Hides a given line. - * - * @param {CKEDITOR.dom.element} line The line to be hidden. - */ - hideLine: function( line ) { - var uid = line.getUniqueId(); - - line.hide(); - - this.hidden[ uid ] = line; - delete this.visible[ uid ]; - }, - - /** - * Shows a given line. - * - * @param {CKEDITOR.dom.element} line The line to be shown. - */ - showLine: function( line ) { - var uid = line.getUniqueId(); - - line.show(); - - this.visible[ uid ] = line; - delete this.hidden[ uid ]; - }, - - /** - * Hides all visible lines. - */ - hideVisible: function() { - for ( var l in this.visible ) { - this.hideLine( this.visible[ l ] ); - } - }, - - /** - * Shows a line at given location. - * - * @param {Object} location Location object containing the unique identifier of the relation - * and its type. Usually returned by {@link CKEDITOR.plugins.lineutils.locator#sort}. - * @param {Function} [callback] A callback to be called once the line is shown. - */ - placeLine: function( location, callback ) { - var styles, line, l; - - // No style means that line would be out of viewport. - if ( !( styles = this.getStyle( location.uid, location.type ) ) ) { - return; - } - - // Search for any visible line of a different hash first. - // It's faster to re-position visible line than to show it. - for ( l in this.visible ) { - if ( this.visible[ l ].getCustomData( 'hash' ) !== this.hash ) { - line = this.visible[ l ]; - break; - } - } - - // Search for any hidden line of a different hash. - if ( !line ) { - for ( l in this.hidden ) { - if ( this.hidden[ l ].getCustomData( 'hash' ) !== this.hash ) { - this.showLine( ( line = this.hidden[ l ] ) ); - break; - } - } - } - - // If no line available, add the new one. - if ( !line ) { - this.showLine( ( line = this.addLine() ) ); - } - - // Mark the line with current hash. - line.setCustomData( 'hash', this.hash ); - - // Mark the line as visible. - this.visible[ line.getUniqueId() ] = line; - - line.setStyles( styles ); - - callback && callback( line ); - }, - - /** - * Creates a style set to be used by the line, representing a particular - * relation (location). - * - * @param {Number} uid Unique identifier of the relation. - * @param {Number} type Type of the relation. - * @returns {Object} An object containing styles. - */ - getStyle: function( uid, type ) { - var rel = this.relations[ uid ], - loc = this.locations[ uid ][ type ], - styles = {}, - hdiff; - - // Line should be between two elements. - if ( rel.siblingRect ) { - styles.width = Math.max( rel.siblingRect.width, rel.elementRect.width ); - } - // Line is relative to a single element. - else { - styles.width = rel.elementRect.width; - } - - // Let's calculate the vertical position of the line. - if ( this.inline ) { - // (http://dev.ckeditor.com/ticket/13155) - styles.top = loc + this.winTopScroll.y - this.rect.relativeY; - } else { - styles.top = this.rect.top + this.winTopScroll.y + loc; - } - - // Check if line would be vertically out of the viewport. - if ( styles.top - this.winTopScroll.y < this.rect.top || styles.top - this.winTopScroll.y > this.rect.bottom ) { - return false; - } - - // Now let's calculate the horizontal alignment (left and width). - if ( this.inline ) { - // (http://dev.ckeditor.com/ticket/13155) - styles.left = rel.elementRect.left - this.rect.relativeX; - } else { - if ( rel.elementRect.left > 0 ) - styles.left = this.rect.left + rel.elementRect.left; - - // H-scroll case. Left edge of element may be out of viewport. - else { - styles.width += rel.elementRect.left; - styles.left = this.rect.left; - } - - // H-scroll case. Right edge of element may be out of viewport. - if ( ( hdiff = styles.left + styles.width - ( this.rect.left + this.winPane.width ) ) > 0 ) { - styles.width -= hdiff; - } - } - - // Finally include horizontal scroll of the global window. - styles.left += this.winTopScroll.x; - - // Append 'px' to style values. - for ( var style in styles ) { - styles[ style ] = CKEDITOR.tools.cssLength( styles[ style ] ); - } - - return styles; - }, - - /** - * Adds a new line to DOM. - * - * @returns {CKEDITOR.dom.element} A brand-new line. - */ - addLine: function() { - var line = CKEDITOR.dom.element.createFromHtml( this.lineTpl ); - - line.appendTo( this.container ); - - return line; - }, - - /** - * Assigns a unique hash to the instance that is later used - * to tell unwanted lines from new ones. This method **must** be called - * before a new set of relations is to be visualized so {@link #cleanup} - * eventually hides obsolete lines. This is because lines - * are re-used between {@link #placeLine} calls and the number of - * necessary ones may vary depending on the number of relations. - * - * @param {Object} relations {@link CKEDITOR.plugins.lineutils.finder#relations}. - * @param {Object} locations {@link CKEDITOR.plugins.lineutils.locator#locations}. - */ - prepare: function( relations, locations ) { - this.relations = relations; - this.locations = locations; - this.hash = Math.random(); - }, - - /** - * Hides all visible lines that do not belong to current hash - * and no longer represent relations (locations). - * - * See also: {@link #prepare}. - */ - cleanup: function() { - var line; - - for ( var l in this.visible ) { - line = this.visible[ l ]; - - if ( line.getCustomData( 'hash' ) !== this.hash ) { - this.hideLine( line ); - } - } - }, - - /** - * Queries dimensions of the viewport, editable, frame etc. - * that are used for correct positioning of the line. - */ - queryViewport: function() { - this.winPane = this.win.getViewPaneSize(); - this.winTopScroll = this.winTop.getScrollPosition(); - this.winTopPane = this.winTop.getViewPaneSize(); - - // (http://dev.ckeditor.com/ticket/13155) - this.rect = this.getClientRect( this.inline ? this.editable : this.frame ); - }, - - /** - * Returns `boundingClientRect` of an element, shifted by the position - * of `container` when the container is not `static` (http://dev.ckeditor.com/ticket/13155). - * - * See also: {@link CKEDITOR.dom.element#getClientRect}. - * - * @param {CKEDITOR.dom.element} el A DOM element. - * @returns {Object} A shifted rect, extended by `relativeY` and `relativeX` properties. - */ - getClientRect: function( el ) { - var rect = el.getClientRect(), - relativeContainerDocPosition = this.container.getDocumentPosition(), - relativeContainerComputedPosition = this.container.getComputedStyle( 'position' ); - - // Static or not, those values are used to offset the position of the line so they cannot be undefined. - rect.relativeX = rect.relativeY = 0; - - if ( relativeContainerComputedPosition != 'static' ) { - // Remember the offset used to shift the clientRect. - rect.relativeY = relativeContainerDocPosition.y; - rect.relativeX = relativeContainerDocPosition.x; - - rect.top -= rect.relativeY; - rect.bottom -= rect.relativeY; - rect.left -= rect.relativeX; - rect.right -= rect.relativeX; - } - - return rect; - } - }; - - function is( type, flag ) { - return type & flag; - } - - var floats = { left: 1, right: 1, center: 1 }, - positions = { absolute: 1, fixed: 1 }; - - function isElement( node ) { - return node && node.type == CKEDITOR.NODE_ELEMENT; - } - - function isFloated( el ) { - return !!( floats[ el.getComputedStyle( 'float' ) ] || floats[ el.getAttribute( 'align' ) ] ); - } - - function isPositioned( el ) { - return !!positions[ el.getComputedStyle( 'position' ) ]; - } - - function isLimit( node ) { - return isElement( node ) && node.getAttribute( 'contenteditable' ) == 'true'; - } - - function isStatic( node ) { - return isElement( node ) && !isFloated( node ) && !isPositioned( node ); - } - - /** - * Global namespace storing definitions and global helpers for the Line Utilities plugin. - * - * @private - * @class - * @singleton - * @since 4.3 - */ - CKEDITOR.plugins.lineutils = { - finder: Finder, - locator: Locator, - liner: Liner - }; -} )(); diff --git a/admin/plugins/ckeditor/plugins/link/dialogs/anchor.js b/admin/plugins/ckeditor/plugins/link/dialogs/anchor.js deleted file mode 100644 index 50677e1..0000000 --- a/admin/plugins/ckeditor/plugins/link/dialogs/anchor.js +++ /dev/null @@ -1,8 +0,0 @@ -/* - Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. - For licensing, see LICENSE.md or http://ckeditor.com/license -*/ -CKEDITOR.dialog.add("anchor",function(c){function e(b,a){return b.createFakeElement(b.document.createElement("a",{attributes:a}),"cke_anchor","anchor")}return{title:c.lang.link.anchor.title,minWidth:300,minHeight:60,onOk:function(){var b=CKEDITOR.tools.trim(this.getValueOf("info","txtName")),a={id:b,name:b,"data-cke-saved-name":b};this._.selectedElement?this._.selectedElement.data("cke-realelement")?(b=e(c,a),b.replace(this._.selectedElement),CKEDITOR.env.ie&&c.getSelection().selectElement(b)):this._.selectedElement.setAttributes(a): -(b=(b=c.getSelection())&&b.getRanges()[0],b.collapsed?(a=e(c,a),b.insertNode(a)):(CKEDITOR.env.ie&&9>CKEDITOR.env.version&&(a["class"]="cke_anchor"),a=new CKEDITOR.style({element:"a",attributes:a}),a.type=CKEDITOR.STYLE_INLINE,a.applyToRange(b)))},onHide:function(){delete this._.selectedElement},onShow:function(){var b=c.getSelection(),a;a=b.getRanges()[0];var d=b.getSelectedElement();a.shrink(CKEDITOR.SHRINK_ELEMENT);a=(d=a.getEnclosedNode())&&d.type===CKEDITOR.NODE_ELEMENT&&("anchor"===d.data("cke-real-element-type")|| -d.is("a"))?d:void 0;var f=(d=a&&a.data("cke-realelement"))?CKEDITOR.plugins.link.tryRestoreFakeAnchor(c,a):CKEDITOR.plugins.link.getSelectedLink(c);if(f){this._.selectedElement=f;var e=f.data("cke-saved-name");this.setValueOf("info","txtName",e||"");!d&&b.selectElement(f);a&&(this._.selectedElement=a)}this.getContentElement("info","txtName").focus()},contents:[{id:"info",label:c.lang.link.anchor.title,accessKey:"I",elements:[{type:"text",id:"txtName",label:c.lang.link.anchor.name,required:!0,validate:function(){return this.getValue()? -!0:(alert(c.lang.link.anchor.errorName),!1)}}]}]}}); \ No newline at end of file diff --git a/admin/plugins/ckeditor/plugins/link/dialogs/link.js b/admin/plugins/ckeditor/plugins/link/dialogs/link.js deleted file mode 100644 index e8581a7..0000000 --- a/admin/plugins/ckeditor/plugins/link/dialogs/link.js +++ /dev/null @@ -1,28 +0,0 @@ -/* - Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. - For licensing, see LICENSE.md or http://ckeditor.com/license -*/ -(function(){CKEDITOR.dialog.add("link",function(c){function t(a,b){var c=a.createRange();c.setStartBefore(b);c.setEndAfter(b);return c}var n=CKEDITOR.plugins.link,q,r=function(){var a=this.getDialog(),b=a.getContentElement("target","popupFeatures"),a=a.getContentElement("target","linkTargetName"),p=this.getValue();if(b&&a)switch(b=b.getElement(),b.hide(),a.setValue(""),p){case "frame":a.setLabel(c.lang.link.targetFrameName);a.getElement().show();break;case "popup":b.show();a.setLabel(c.lang.link.targetPopupName); -a.getElement().show();break;default:a.setValue(p),a.getElement().hide()}},l=function(a){a.target&&this.setValue(a.target[this.id]||"")},e=function(a){a.advanced&&this.setValue(a.advanced[this.id]||"")},k=function(a){a.target||(a.target={});a.target[this.id]=this.getValue()||""},m=function(a){a.advanced||(a.advanced={});a.advanced[this.id]=this.getValue()||""},g=c.lang.common,b=c.lang.link,d;return{title:b.title,minWidth:"moono-lisa"==(CKEDITOR.skinName||c.config.skin)?450:350,minHeight:240,contents:[{id:"info", -label:b.info,title:b.info,elements:[{type:"text",id:"linkDisplayText",label:b.displayText,setup:function(){this.enable();this.setValue(c.getSelection().getSelectedText());q=this.getValue()},commit:function(a){a.linkText=this.isEnabled()?this.getValue():""}},{id:"linkType",type:"select",label:b.type,"default":"url",items:[[b.toUrl,"url"],[b.toAnchor,"anchor"],[b.toEmail,"email"]],onChange:function(){var a=this.getDialog(),b=["urlOptions","anchorOptions","emailOptions"],p=this.getValue(),f=a.definition.getContents("upload"), -f=f&&f.hidden;"url"==p?(c.config.linkShowTargetTab&&a.showPage("target"),f||a.showPage("upload")):(a.hidePage("target"),f||a.hidePage("upload"));for(f=0;f<b.length;f++){var h=a.getContentElement("info",b[f]);h&&(h=h.getElement().getParent().getParent(),b[f]==p+"Options"?h.show():h.hide())}a.layout()},setup:function(a){this.setValue(a.type||"url")},commit:function(a){a.type=this.getValue()}},{type:"vbox",id:"urlOptions",children:[{type:"hbox",widths:["25%","75%"],children:[{id:"protocol",type:"select", -label:g.protocol,"default":"http://",items:[["http://‎","http://"],["https://‎","https://"],["ftp://‎","ftp://"],["news://‎","news://"],[b.other,""]],setup:function(a){a.url&&this.setValue(a.url.protocol||"")},commit:function(a){a.url||(a.url={});a.url.protocol=this.getValue()}},{type:"text",id:"url",label:g.url,required:!0,onLoad:function(){this.allowOnChange=!0},onKeyUp:function(){this.allowOnChange=!1;var a=this.getDialog().getContentElement("info","protocol"),b=this.getValue(),c=/^((javascript:)|[#\/\.\?])/i, -f=/^(http|https|ftp|news):\/\/(?=.)/i.exec(b);f?(this.setValue(b.substr(f[0].length)),a.setValue(f[0].toLowerCase())):c.test(b)&&a.setValue("");this.allowOnChange=!0},onChange:function(){if(this.allowOnChange)this.onKeyUp()},validate:function(){var a=this.getDialog();return a.getContentElement("info","linkType")&&"url"!=a.getValueOf("info","linkType")?!0:!c.config.linkJavaScriptLinksAllowed&&/javascript\:/.test(this.getValue())?(alert(g.invalidValue),!1):this.getDialog().fakeObj?!0:CKEDITOR.dialog.validate.notEmpty(b.noUrl).apply(this)}, -setup:function(a){this.allowOnChange=!1;a.url&&this.setValue(a.url.url);this.allowOnChange=!0},commit:function(a){this.onChange();a.url||(a.url={});a.url.url=this.getValue();this.allowOnChange=!1}}],setup:function(){this.getDialog().getContentElement("info","linkType")||this.getElement().show()}},{type:"button",id:"browse",hidden:"true",filebrowser:"info:url",label:g.browseServer}]},{type:"vbox",id:"anchorOptions",width:260,align:"center",padding:0,children:[{type:"fieldset",id:"selectAnchorText", -label:b.selectAnchor,setup:function(){d=n.getEditorAnchors(c);this.getElement()[d&&d.length?"show":"hide"]()},children:[{type:"hbox",id:"selectAnchor",children:[{type:"select",id:"anchorName","default":"",label:b.anchorName,style:"width: 100%;",items:[[""]],setup:function(a){this.clear();this.add("");if(d)for(var b=0;b<d.length;b++)d[b].name&&this.add(d[b].name);a.anchor&&this.setValue(a.anchor.name);(a=this.getDialog().getContentElement("info","linkType"))&&"email"==a.getValue()&&this.focus()},commit:function(a){a.anchor|| -(a.anchor={});a.anchor.name=this.getValue()}},{type:"select",id:"anchorId","default":"",label:b.anchorId,style:"width: 100%;",items:[[""]],setup:function(a){this.clear();this.add("");if(d)for(var b=0;b<d.length;b++)d[b].id&&this.add(d[b].id);a.anchor&&this.setValue(a.anchor.id)},commit:function(a){a.anchor||(a.anchor={});a.anchor.id=this.getValue()}}],setup:function(){this.getElement()[d&&d.length?"show":"hide"]()}}]},{type:"html",id:"noAnchors",style:"text-align: center;",html:'\x3cdiv role\x3d"note" tabIndex\x3d"-1"\x3e'+ -CKEDITOR.tools.htmlEncode(b.noAnchors)+"\x3c/div\x3e",focus:!0,setup:function(){this.getElement()[d&&d.length?"hide":"show"]()}}],setup:function(){this.getDialog().getContentElement("info","linkType")||this.getElement().hide()}},{type:"vbox",id:"emailOptions",padding:1,children:[{type:"text",id:"emailAddress",label:b.emailAddress,required:!0,validate:function(){var a=this.getDialog();return a.getContentElement("info","linkType")&&"email"==a.getValueOf("info","linkType")?CKEDITOR.dialog.validate.notEmpty(b.noEmail).apply(this): -!0},setup:function(a){a.email&&this.setValue(a.email.address);(a=this.getDialog().getContentElement("info","linkType"))&&"email"==a.getValue()&&this.select()},commit:function(a){a.email||(a.email={});a.email.address=this.getValue()}},{type:"text",id:"emailSubject",label:b.emailSubject,setup:function(a){a.email&&this.setValue(a.email.subject)},commit:function(a){a.email||(a.email={});a.email.subject=this.getValue()}},{type:"textarea",id:"emailBody",label:b.emailBody,rows:3,"default":"",setup:function(a){a.email&& -this.setValue(a.email.body)},commit:function(a){a.email||(a.email={});a.email.body=this.getValue()}}],setup:function(){this.getDialog().getContentElement("info","linkType")||this.getElement().hide()}}]},{id:"target",requiredContent:"a[target]",label:b.target,title:b.target,elements:[{type:"hbox",widths:["50%","50%"],children:[{type:"select",id:"linkTargetType",label:g.target,"default":"notSet",style:"width : 100%;",items:[[g.notSet,"notSet"],[b.targetFrame,"frame"],[b.targetPopup,"popup"],[g.targetNew, -"_blank"],[g.targetTop,"_top"],[g.targetSelf,"_self"],[g.targetParent,"_parent"]],onChange:r,setup:function(a){a.target&&this.setValue(a.target.type||"notSet");r.call(this)},commit:function(a){a.target||(a.target={});a.target.type=this.getValue()}},{type:"text",id:"linkTargetName",label:b.targetFrameName,"default":"",setup:function(a){a.target&&this.setValue(a.target.name)},commit:function(a){a.target||(a.target={});a.target.name=this.getValue().replace(/([^\x00-\x7F]|\s)/gi,"")}}]},{type:"vbox", -width:"100%",align:"center",padding:2,id:"popupFeatures",children:[{type:"fieldset",label:b.popupFeatures,children:[{type:"hbox",children:[{type:"checkbox",id:"resizable",label:b.popupResizable,setup:l,commit:k},{type:"checkbox",id:"status",label:b.popupStatusBar,setup:l,commit:k}]},{type:"hbox",children:[{type:"checkbox",id:"location",label:b.popupLocationBar,setup:l,commit:k},{type:"checkbox",id:"toolbar",label:b.popupToolbar,setup:l,commit:k}]},{type:"hbox",children:[{type:"checkbox",id:"menubar", -label:b.popupMenuBar,setup:l,commit:k},{type:"checkbox",id:"fullscreen",label:b.popupFullScreen,setup:l,commit:k}]},{type:"hbox",children:[{type:"checkbox",id:"scrollbars",label:b.popupScrollBars,setup:l,commit:k},{type:"checkbox",id:"dependent",label:b.popupDependent,setup:l,commit:k}]},{type:"hbox",children:[{type:"text",widths:["50%","50%"],labelLayout:"horizontal",label:g.width,id:"width",setup:l,commit:k},{type:"text",labelLayout:"horizontal",widths:["50%","50%"],label:b.popupLeft,id:"left", -setup:l,commit:k}]},{type:"hbox",children:[{type:"text",labelLayout:"horizontal",widths:["50%","50%"],label:g.height,id:"height",setup:l,commit:k},{type:"text",labelLayout:"horizontal",label:b.popupTop,widths:["50%","50%"],id:"top",setup:l,commit:k}]}]}]}]},{id:"upload",label:b.upload,title:b.upload,hidden:!0,filebrowser:"uploadButton",elements:[{type:"file",id:"upload",label:g.upload,style:"height:40px",size:29},{type:"fileButton",id:"uploadButton",label:g.uploadSubmit,filebrowser:"info:url","for":["upload", -"upload"]}]},{id:"advanced",label:b.advanced,title:b.advanced,elements:[{type:"vbox",padding:1,children:[{type:"hbox",widths:["45%","35%","20%"],children:[{type:"text",id:"advId",requiredContent:"a[id]",label:b.id,setup:e,commit:m},{type:"select",id:"advLangDir",requiredContent:"a[dir]",label:b.langDir,"default":"",style:"width:110px",items:[[g.notSet,""],[b.langDirLTR,"ltr"],[b.langDirRTL,"rtl"]],setup:e,commit:m},{type:"text",id:"advAccessKey",requiredContent:"a[accesskey]",width:"80px",label:b.acccessKey, -maxLength:1,setup:e,commit:m}]},{type:"hbox",widths:["45%","35%","20%"],children:[{type:"text",label:b.name,id:"advName",requiredContent:"a[name]",setup:e,commit:m},{type:"text",label:b.langCode,id:"advLangCode",requiredContent:"a[lang]",width:"110px","default":"",setup:e,commit:m},{type:"text",label:b.tabIndex,id:"advTabIndex",requiredContent:"a[tabindex]",width:"80px",maxLength:5,setup:e,commit:m}]}]},{type:"vbox",padding:1,children:[{type:"hbox",widths:["45%","55%"],children:[{type:"text",label:b.advisoryTitle, -requiredContent:"a[title]","default":"",id:"advTitle",setup:e,commit:m},{type:"text",label:b.advisoryContentType,requiredContent:"a[type]","default":"",id:"advContentType",setup:e,commit:m}]},{type:"hbox",widths:["45%","55%"],children:[{type:"text",label:b.cssClasses,requiredContent:"a(cke-xyz)","default":"",id:"advCSSClasses",setup:e,commit:m},{type:"text",label:b.charset,requiredContent:"a[charset]","default":"",id:"advCharset",setup:e,commit:m}]},{type:"hbox",widths:["45%","55%"],children:[{type:"text", -label:b.rel,requiredContent:"a[rel]","default":"",id:"advRel",setup:e,commit:m},{type:"text",label:b.styles,requiredContent:"a{cke-xyz}","default":"",id:"advStyles",validate:CKEDITOR.dialog.validate.inlineStyle(c.lang.common.invalidInlineStyle),setup:e,commit:m}]},{type:"hbox",widths:["45%","55%"],children:[{type:"checkbox",id:"download",requiredContent:"a[download]",label:b.download,setup:function(a){void 0!==a.download&&this.setValue("checked","checked")},commit:function(a){this.getValue()&&(a.download= -this.getValue())}}]}]}]}],onShow:function(){var a=this.getParentEditor(),b=a.getSelection(),c=this.getContentElement("info","linkDisplayText").getElement().getParent().getParent(),f=n.getSelectedLink(a,!0),h=f[0]||null;h&&h.hasAttribute("href")&&(b.getSelectedElement()||b.isInTable()||b.selectElement(h));b=n.parseLinkAttributes(a,h);1>=f.length&&n.showDisplayTextForElement(h,a)?c.show():c.hide();this._.selectedElements=f;this.setupContent(b)},onOk:function(){var a={};this.commitContent(a);if(this._.selectedElements.length){var b= -this._.selectedElements,g=n.getLinkAttributes(c,a),f=[],h,d,l,e,k;for(k=0;k<b.length;k++){h=b[k];d=h.data("cke-saved-href");l=h.getHtml();h.setAttributes(g.set);h.removeAttributes(g.removed);if(a.linkText&&q!=a.linkText)e=a.linkText;else if(d==l||"email"==a.type&&-1!=l.indexOf("@"))e="email"==a.type?a.email.address:g.set["data-cke-saved-href"];e&&h.setText(e);f.push(t(c,h))}c.getSelection().selectRanges(f);delete this._.selectedElements}else{b=n.getLinkAttributes(c,a);g=c.getSelection().getRanges(); -f=new CKEDITOR.style({element:"a",attributes:b.set});h=[];f.type=CKEDITOR.STYLE_INLINE;for(l=0;l<g.length;l++){d=g[l];d.collapsed?(e=new CKEDITOR.dom.text(a.linkText||("email"==a.type?a.email.address:b.set["data-cke-saved-href"]),c.document),d.insertNode(e),d.selectNodeContents(e)):q!==a.linkText&&(e=new CKEDITOR.dom.text(a.linkText,c.document),d.shrink(CKEDITOR.SHRINK_TEXT),c.editable().extractHtmlFromRange(d),d.insertNode(e));e=d._find("a");for(k=0;k<e.length;k++)e[k].remove(!0);f.applyToRange(d, -c);h.push(d)}c.getSelection().selectRanges(h)}},onLoad:function(){c.config.linkShowAdvancedTab||this.hidePage("advanced");c.config.linkShowTargetTab||this.hidePage("target")},onFocus:function(){var a=this.getContentElement("info","linkType");a&&"url"==a.getValue()&&(a=this.getContentElement("info","url"),a.select())}}})})(); \ No newline at end of file diff --git a/admin/plugins/ckeditor/plugins/link/images/anchor.png b/admin/plugins/ckeditor/plugins/link/images/anchor.png deleted file mode 100644 index d94adb4..0000000 Binary files a/admin/plugins/ckeditor/plugins/link/images/anchor.png and /dev/null differ diff --git a/admin/plugins/ckeditor/plugins/link/images/hidpi/anchor.png b/admin/plugins/ckeditor/plugins/link/images/hidpi/anchor.png deleted file mode 100644 index 186c3e9..0000000 Binary files a/admin/plugins/ckeditor/plugins/link/images/hidpi/anchor.png and /dev/null differ diff --git a/admin/plugins/ckeditor/plugins/magicline/images/hidpi/icon-rtl.png b/admin/plugins/ckeditor/plugins/magicline/images/hidpi/icon-rtl.png deleted file mode 100644 index 4a8d2bf..0000000 Binary files a/admin/plugins/ckeditor/plugins/magicline/images/hidpi/icon-rtl.png and /dev/null differ diff --git a/admin/plugins/ckeditor/plugins/magicline/images/hidpi/icon.png b/admin/plugins/ckeditor/plugins/magicline/images/hidpi/icon.png deleted file mode 100644 index b981bb5..0000000 Binary files a/admin/plugins/ckeditor/plugins/magicline/images/hidpi/icon.png and /dev/null differ diff --git a/admin/plugins/ckeditor/plugins/magicline/images/icon-rtl.png b/admin/plugins/ckeditor/plugins/magicline/images/icon-rtl.png deleted file mode 100644 index 55b5b5f..0000000 Binary files a/admin/plugins/ckeditor/plugins/magicline/images/icon-rtl.png and /dev/null differ diff --git a/admin/plugins/ckeditor/plugins/magicline/images/icon.png b/admin/plugins/ckeditor/plugins/magicline/images/icon.png deleted file mode 100644 index e063433..0000000 Binary files a/admin/plugins/ckeditor/plugins/magicline/images/icon.png and /dev/null differ diff --git a/admin/plugins/ckeditor/plugins/pastefromword/filter/default.js b/admin/plugins/ckeditor/plugins/pastefromword/filter/default.js deleted file mode 100644 index 659328e..0000000 --- a/admin/plugins/ckeditor/plugins/pastefromword/filter/default.js +++ /dev/null @@ -1,53 +0,0 @@ -/* - Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. - For licensing, see LICENSE.md or http://ckeditor.com/license -*/ -(function(){function u(){return!1}function x(a,b){var c,d=[];a.filterChildren(b);for(c=a.children.length-1;0<=c;c--)d.unshift(a.children[c]),a.children[c].remove();c=a.attributes;var f=a,e=!0,h;for(h in c)if(e)e=!1;else{var l=new CKEDITOR.htmlParser.element(a.name);l.attributes[h]=c[h];f.add(l);f=l;delete c[h]}for(c=0;c<d.length;c++)f.add(d[c])}var g,k,t,q,n=CKEDITOR.tools,y=["o:p","xml","script","meta","link"],w={},v=0;CKEDITOR.plugins.pastefromword={};CKEDITOR.cleanWord=function(a,b){var c=Boolean(a.match(/mso-list:\s*l\d+\s+level\d+\s+lfo\d+/)); -CKEDITOR.plugins.clipboard.isCustomDataTypesSupported&&(a=CKEDITOR.plugins.pastefromword.styles.inliner.inline(a).getBody().getHtml());a=a.replace(/<!\[/g,"\x3c!--[").replace(/\]>/g,"]--\x3e");var d=CKEDITOR.htmlParser.fragment.fromHtml(a);q=new CKEDITOR.htmlParser.filter({root:function(e){e.filterChildren(q);CKEDITOR.plugins.pastefromword.lists.cleanup(g.createLists(e))},elementNames:[[/^\?xml:namespace$/,""],[/^v:shapetype/,""],[new RegExp(y.join("|")),""]],elements:{a:function(e){if(e.attributes.name){if("_GoBack"== -e.attributes.name){delete e.name;return}if(e.attributes.name.match(/^OLE_LINK\d+$/)){delete e.name;return}}if(e.attributes.href&&e.attributes.href.match(/#.+$/)){var a=e.attributes.href.match(/#(.+)$/)[1];w[a]=e}e.attributes.name&&w[e.attributes.name]&&(e=w[e.attributes.name],e.attributes.href=e.attributes.href.replace(/.*#(.*)$/,"#$1"))},div:function(e){k.createStyleStack(e,q,b)},img:function(e){if(e.parent&&e.parent.attributes){var a=e.parent.attributes;(a=a.style||a.STYLE)&&a.match(/mso\-list:\s?Ignore/)&& -(e.attributes["cke-ignored"]=!0)}k.mapStyles(e,{width:function(a){k.setStyle(e,"width",a+"px")},height:function(a){k.setStyle(e,"height",a+"px")}});e.attributes.src&&e.attributes.src.match(/^file:\/\//)&&e.attributes.alt&&e.attributes.alt.match(/^https?:\/\//)&&(e.attributes.src=e.attributes.alt)},p:function(a){a.filterChildren(q);if(a.attributes.style&&a.attributes.style.match(/display:\s*none/i))return!1;if(g.thisIsAListItem(b,a))t.isEdgeListItem(b,a)&&t.cleanupEdgeListItem(a),g.convertToFakeListItem(b, -a),n.array.reduce(a.children,function(a,b){"p"===b.name&&(0<a&&(new CKEDITOR.htmlParser.element("br")).insertBefore(b),b.replaceWithChildren(),a+=1);return a},0);else{var c=a.getAscendant(function(a){return"ul"==a.name||"ol"==a.name}),d=n.parseCssText(a.attributes.style);c&&!c.attributes["cke-list-level"]&&d["mso-list"]&&d["mso-list"].match(/level/)&&(c.attributes["cke-list-level"]=d["mso-list"].match(/level(\d+)/)[1]);b.config.enterMode==CKEDITOR.ENTER_BR&&(delete a.name,a.add(new CKEDITOR.htmlParser.element("br")))}k.createStyleStack(a, -q,b)},pre:function(a){g.thisIsAListItem(b,a)&&g.convertToFakeListItem(b,a);k.createStyleStack(a,q,b)},h1:function(a){g.thisIsAListItem(b,a)&&g.convertToFakeListItem(b,a);k.createStyleStack(a,q,b)},h2:function(a){g.thisIsAListItem(b,a)&&g.convertToFakeListItem(b,a);k.createStyleStack(a,q,b)},h3:function(a){g.thisIsAListItem(b,a)&&g.convertToFakeListItem(b,a);k.createStyleStack(a,q,b)},h4:function(a){g.thisIsAListItem(b,a)&&g.convertToFakeListItem(b,a);k.createStyleStack(a,q,b)},h5:function(a){g.thisIsAListItem(b, -a)&&g.convertToFakeListItem(b,a);k.createStyleStack(a,q,b)},h6:function(a){g.thisIsAListItem(b,a)&&g.convertToFakeListItem(b,a);k.createStyleStack(a,q,b)},font:function(a){if(a.getHtml().match(/^\s*$/))return(new CKEDITOR.htmlParser.text(" ")).insertAfter(a),!1;b&&!0===b.config.pasteFromWordRemoveFontStyles&&a.attributes.size&&delete a.attributes.size;CKEDITOR.dtd.tr[a.parent.name]&&CKEDITOR.tools.arrayCompare(CKEDITOR.tools.objectKeys(a.attributes),["class","style"])?k.createStyleStack(a,q,b):x(a, -q)},ul:function(a){if(c)return"li"==a.parent.name&&0===n.indexOf(a.parent.children,a)&&k.setStyle(a.parent,"list-style-type","none"),g.dissolveList(a),!1},li:function(a){t.correctLevelShift(a);c&&(a.attributes.style=k.normalizedStyles(a,b),k.pushStylesLower(a))},ol:function(a){if(c)return"li"==a.parent.name&&0===n.indexOf(a.parent.children,a)&&k.setStyle(a.parent,"list-style-type","none"),g.dissolveList(a),!1},span:function(a){a.filterChildren(q);a.attributes.style=k.normalizedStyles(a,b);if(!a.attributes.style|| -a.attributes.style.match(/^mso\-bookmark:OLE_LINK\d+$/)||a.getHtml().match(/^(\s|&nbsp;)+$/)){for(var c=a.children.length-1;0<=c;c--)a.children[c].insertAfter(a);return!1}a.attributes.style.match(/FONT-FAMILY:\s*Symbol/i)&&a.forEach(function(a){a.value=a.value.replace(/&nbsp;/g,"")},CKEDITOR.NODE_TEXT,!0);k.createStyleStack(a,q,b)},table:function(a){a._tdBorders={};a.filterChildren(q);var b,c=0,d;for(d in a._tdBorders)a._tdBorders[d]>c&&(c=a._tdBorders[d],b=d);k.setStyle(a,"border",b);c=(b=a.parent)&& -b.parent;if(b.name&&"div"===b.name&&b.attributes.align&&1===n.objectKeys(b.attributes).length&&1===b.children.length){a.attributes.align=b.attributes.align;d=b.children.splice(0);a.remove();for(a=d.length-1;0<=a;a--)c.add(d[a],b.getIndex());b.remove()}},td:function(a){var c=a.getAscendant("table"),d=c._tdBorders,f=["border","border-top","border-right","border-bottom","border-left"],c=n.parseCssText(c.attributes.style),m=c.background||c.BACKGROUND;m&&k.setStyle(a,"background",m,!0);(c=c["background-color"]|| -c["BACKGROUND-COLOR"])&&k.setStyle(a,"background-color",c,!0);var c=n.parseCssText(a.attributes.style),p;for(p in c)m=c[p],delete c[p],c[p.toLowerCase()]=m;for(p=0;p<f.length;p++)c[f[p]]&&(m=c[f[p]],d[m]=d[m]?d[m]+1:1);k.createStyleStack(a,q,b,/margin|text\-align|padding|list\-style\-type|width|height|border|white\-space|vertical\-align|background/i)},"v:imagedata":u,"v:shape":function(a){var b=!1;a.parent.getFirst(function(c){"img"==c.name&&c.attributes&&c.attributes["v:shapes"]==a.attributes.id&& -(b=!0)});if(b)return!1;var c="";a.forEach(function(a){a.attributes&&a.attributes.src&&(c=a.attributes.src)},CKEDITOR.NODE_ELEMENT,!0);a.filterChildren(q);a.name="img";a.attributes.src=a.attributes.src||c;delete a.attributes.type},style:function(){return!1},object:function(a){return!(!a.attributes||!a.attributes.data)}},attributes:{style:function(a,c){return k.normalizedStyles(c,b)||!1},"class":function(a){a=a.replace(/(el\d+)|(font\d+)|msonormal|msolistparagraph\w*/ig,"");return""===a?!1:a},cellspacing:u, -cellpadding:u,border:u,"v:shapes":u,"o:spid":u},comment:function(a){a.match(/\[if.* supportFields.*\]/)&&v++;"[endif]"==a&&(v=0<v?v-1:0);return!1},text:function(a,b){if(v)return"";var c=b.parent&&b.parent.parent;return c&&c.attributes&&c.attributes.style&&c.attributes.style.match(/mso-list:\s*ignore/i)?a.replace(/&nbsp;/g," "):a}});var f=new CKEDITOR.htmlParser.basicWriter;q.applyTo(d);d.writeHtml(f);return f.getHtml()};CKEDITOR.plugins.pastefromword.styles={setStyle:function(a,b,c,d){var f=n.parseCssText(a.attributes.style); -d&&f[b]||(""===c?delete f[b]:f[b]=c,a.attributes.style=CKEDITOR.tools.writeCssText(f))},mapStyles:function(a,b){for(var c in b)if(a.attributes[c]){if("function"===typeof b[c])b[c](a.attributes[c]);else k.setStyle(a,b[c],a.attributes[c]);delete a.attributes[c]}},normalizedStyles:function(a,b){var c="background-color:transparent border-image:none color:windowtext direction:ltr mso- text-indent visibility:visible div:border:none".split(" "),d="font-family font font-size color background-color line-height text-decoration".split(" "), -f=function(){for(var a=[],b=0;b<arguments.length;b++)arguments[b]&&a.push(arguments[b]);return-1!==n.indexOf(c,a.join(":"))},e=b&&!0===b.config.pasteFromWordRemoveFontStyles,h=n.parseCssText(a.attributes.style);"cke:li"==a.name&&h["TEXT-INDENT"]&&h.MARGIN&&(a.attributes["cke-indentation"]=g.getElementIndentation(a),h.MARGIN=h.MARGIN.replace(/(([\w\.]+ ){3,3})[\d\.]+(\w+$)/,"$10$3"));for(var l=n.objectKeys(h),r=0;r<l.length;r++){var m=l[r].toLowerCase(),p=h[l[r]],k=CKEDITOR.tools.indexOf;(e&&-1!== -k(d,m.toLowerCase())||f(null,m,p)||f(null,m.replace(/\-.*$/,"-"))||f(null,m)||f(a.name,m,p)||f(a.name,m.replace(/\-.*$/,"-"))||f(a.name,m)||f(p))&&delete h[l[r]]}return CKEDITOR.tools.writeCssText(h)},createStyleStack:function(a,b,c,d){var f=[];a.filterChildren(b);for(b=a.children.length-1;0<=b;b--)f.unshift(a.children[b]),a.children[b].remove();k.sortStyles(a);b=n.parseCssText(k.normalizedStyles(a,c));c=a;var e="span"===a.name,h;for(h in b)if(!h.match(d||/margin|text\-align|width|border|padding/i))if(e)e= -!1;else{var l=new CKEDITOR.htmlParser.element("span");l.attributes.style=h+":"+b[h];c.add(l);c=l;delete b[h]}CKEDITOR.tools.isEmpty(b)?delete a.attributes.style:a.attributes.style=CKEDITOR.tools.writeCssText(b);for(b=0;b<f.length;b++)c.add(f[b])},sortStyles:function(a){for(var b=["border","border-bottom","font-size","background"],c=n.parseCssText(a.attributes.style),d=n.objectKeys(c),f=[],e=[],h=0;h<d.length;h++)-1!==n.indexOf(b,d[h].toLowerCase())?f.push(d[h]):e.push(d[h]);f.sort(function(a,c){var d= -n.indexOf(b,a.toLowerCase()),f=n.indexOf(b,c.toLowerCase());return d-f});d=[].concat(f,e);f={};for(h=0;h<d.length;h++)f[d[h]]=c[d[h]];a.attributes.style=CKEDITOR.tools.writeCssText(f)},pushStylesLower:function(a,b,c){if(!a.attributes.style||0===a.children.length)return!1;b=b||{};var d={"list-style-type":!0,width:!0,height:!0,border:!0,"border-":!0},f=n.parseCssText(a.attributes.style),e;for(e in f)if(!(e.toLowerCase()in d||d[e.toLowerCase().replace(/\-.*$/,"-")]||e.toLowerCase()in b)){for(var h=!1, -l=0;l<a.children.length;l++){var g=a.children[l];if(g.type===CKEDITOR.NODE_TEXT&&c){var m=new CKEDITOR.htmlParser.element("span");m.setHtml(g.value);g.replaceWith(m);g=m}g.type===CKEDITOR.NODE_ELEMENT&&(h=!0,k.setStyle(g,e,f[e]))}h&&delete f[e]}a.attributes.style=CKEDITOR.tools.writeCssText(f);return!0},inliner:{filtered:"break-before break-after break-inside page-break page-break-before page-break-after page-break-inside".split(" "),parse:function(a){function b(a){var b=new CKEDITOR.dom.element("style"), -c=new CKEDITOR.dom.element("iframe");c.hide();CKEDITOR.document.getBody().append(c);c.$.contentDocument.documentElement.appendChild(b.$);b.$.textContent=a;c.remove();return b.$.sheet}function c(a){var b=a.indexOf("{"),c=a.indexOf("}");return d(a.substring(b+1,c),!0)}var d=CKEDITOR.tools.parseCssText,f=CKEDITOR.plugins.pastefromword.styles.inliner.filter,e=a.is?a.$.sheet:b(a);a=[];var h;if(e)for(e=e.cssRules,h=0;h<e.length;h++)e[h].type===window.CSSRule.STYLE_RULE&&a.push({selector:e[h].selectorText, -styles:f(c(e[h].cssText))});return a},filter:function(a){var b=CKEDITOR.plugins.pastefromword.styles.inliner.filtered,c=n.array.indexOf,d={},f;for(f in a)-1===c(b,f)&&(d[f]=a[f]);return d},sort:function(a){return a.sort(function(a){var c=CKEDITOR.tools.array.map(a,function(a){return a.selector});return function(a,b){var e=-1!==(""+a.selector).indexOf(".")?1:0,e=(-1!==(""+b.selector).indexOf(".")?1:0)-e;return 0!==e?e:c.indexOf(b.selector)-c.indexOf(a.selector)}}(a))},inline:function(a){var b=CKEDITOR.plugins.pastefromword.styles.inliner.parse, -c=CKEDITOR.plugins.pastefromword.styles.inliner.sort,d=function(a){a=(new DOMParser).parseFromString(a,"text/html");return new CKEDITOR.dom.document(a)}(a);a=d.find("style");c=c(function(a){var c=[],d;for(d=0;d<a.count();d++)c=c.concat(b(a.getItem(d)));return c}(a));CKEDITOR.tools.array.forEach(c,function(a){var b=a.styles;a=d.find(a.selector);var c,g,r;for(r=0;r<a.count();r++)c=a.getItem(r),g=CKEDITOR.tools.parseCssText(c.getAttribute("style")),g=CKEDITOR.tools.extend({},g,b),c.setAttribute("style", -CKEDITOR.tools.writeCssText(g))});return d}}};k=CKEDITOR.plugins.pastefromword.styles;CKEDITOR.plugins.pastefromword.lists={thisIsAListItem:function(a,b){return t.isEdgeListItem(a,b)||b.attributes.style&&b.attributes.style.match(/mso\-list:\s?l\d/)&&"li"!==b.parent.name||b.attributes["cke-dissolved"]||b.getHtml().match(/<!\-\-\[if !supportLists]\-\->/)?!0:!1},convertToFakeListItem:function(a,b){t.isDegenerateListItem(a,b)&&t.assignListLevels(a,b);this.getListItemInfo(b);if(!b.attributes["cke-dissolved"]){var c; -b.forEach(function(a){!c&&"img"==a.name&&a.attributes["cke-ignored"]&&"*"==a.attributes.alt&&(c="·",a.remove())},CKEDITOR.NODE_ELEMENT);b.forEach(function(a){c||a.value.match(/^ /)||(c=a.value)},CKEDITOR.NODE_TEXT);if("undefined"==typeof c)return;b.attributes["cke-symbol"]=c.replace(/(?: |&nbsp;).*$/,"");g.removeSymbolText(b)}if(b.attributes.style){var d=n.parseCssText(b.attributes.style);d["margin-left"]&&(delete d["margin-left"],b.attributes.style=CKEDITOR.tools.writeCssText(d))}b.name="cke:li"}, -convertToRealListItems:function(a){var b=[];a.forEach(function(a){"cke:li"==a.name&&(a.name="li",b.push(a))},CKEDITOR.NODE_ELEMENT,!1);return b},removeSymbolText:function(a){var b,c=a.attributes["cke-symbol"];a.forEach(function(d){!b&&d.value.match(c.replace(")","\\)").replace("(",""))&&(d.value=d.value.replace(c,""),d.parent.getHtml().match(/^(\s|&nbsp;)*$/)&&(b=d.parent!==a?d.parent:null))},CKEDITOR.NODE_TEXT);b&&b.remove()},setListSymbol:function(a,b,c){c=c||1;var d=n.parseCssText(a.attributes.style); -if("ol"==a.name){if(a.attributes.type||d["list-style-type"])return;var f={"[ivx]":"lower-roman","[IVX]":"upper-roman","[a-z]":"lower-alpha","[A-Z]":"upper-alpha","\\d":"decimal"},e;for(e in f)if(g.getSubsectionSymbol(b).match(new RegExp(e))){d["list-style-type"]=f[e];break}a.attributes["cke-list-style-type"]=d["list-style-type"]}else f={"·":"disc",o:"circle","§":"square"},!d["list-style-type"]&&f[b]&&(d["list-style-type"]=f[b]);g.setListSymbol.removeRedundancies(d,c);(a.attributes.style=CKEDITOR.tools.writeCssText(d))|| -delete a.attributes.style},setListStart:function(a){for(var b=[],c=0,d=0;d<a.children.length;d++)b.push(a.children[d].attributes["cke-symbol"]||"");b[0]||c++;switch(a.attributes["cke-list-style-type"]){case "lower-roman":case "upper-roman":a.attributes.start=g.toArabic(g.getSubsectionSymbol(b[c]))-c;break;case "lower-alpha":case "upper-alpha":a.attributes.start=g.getSubsectionSymbol(b[c]).replace(/\W/g,"").toLowerCase().charCodeAt(0)-96-c;break;case "decimal":a.attributes.start=parseInt(g.getSubsectionSymbol(b[c]), -10)-c||1}"1"==a.attributes.start&&delete a.attributes.start;delete a.attributes["cke-list-style-type"]},numbering:{toNumber:function(a,b){function c(a){a=a.toUpperCase();for(var b=1,c=1;0<a.length;c*=26)b+="ABCDEFGHIJKLMNOPQRSTUVWXYZ".indexOf(a.charAt(a.length-1))*c,a=a.substr(0,a.length-1);return b}function d(a){var b=[[1E3,"M"],[900,"CM"],[500,"D"],[400,"CD"],[100,"C"],[90,"XC"],[50,"L"],[40,"XL"],[10,"X"],[9,"IX"],[5,"V"],[4,"IV"],[1,"I"]];a=a.toUpperCase();for(var c=b.length,d=0,g=0;g<c;++g)for(var m= -b[g],p=m[1].length;a.substr(0,p)==m[1];a=a.substr(p))d+=m[0];return d}return"decimal"==b?Number(a):"upper-roman"==b||"lower-roman"==b?d(a.toUpperCase()):"lower-alpha"==b||"upper-alpha"==b?c(a):1},getStyle:function(a){a=a.slice(0,1);var b={i:"lower-roman",v:"lower-roman",x:"lower-roman",l:"lower-roman",m:"lower-roman",I:"upper-roman",V:"upper-roman",X:"upper-roman",L:"upper-roman",M:"upper-roman"}[a];b||(b="decimal",a.match(/[a-z]/)&&(b="lower-alpha"),a.match(/[A-Z]/)&&(b="upper-alpha"));return b}}, -getSubsectionSymbol:function(a){return(a.match(/([\da-zA-Z]+).?$/)||["placeholder","1"])[1]},setListDir:function(a){var b=0,c=0;a.forEach(function(a){"li"==a.name&&("rtl"==(a.attributes.dir||a.attributes.DIR||"").toLowerCase()?c++:b++)},CKEDITOR.ELEMENT_NODE);c>b&&(a.attributes.dir="rtl")},createList:function(a){return(a.attributes["cke-symbol"].match(/([\da-np-zA-NP-Z]).?/)||[])[1]?new CKEDITOR.htmlParser.element("ol"):new CKEDITOR.htmlParser.element("ul")},createLists:function(a){var b,c,d,f=g.convertToRealListItems(a); -if(0===f.length)return[];var e=g.groupLists(f);for(a=0;a<e.length;a++){var h=e[a],l=h[0];for(d=0;d<h.length;d++)if(1==h[d].attributes["cke-list-level"]){l=h[d];break}var l=[g.createList(l)],k=l[0],m=[l[0]];k.insertBefore(h[0]);for(d=0;d<h.length;d++){b=h[d];for(c=b.attributes["cke-list-level"];c>l.length;){var p=g.createList(b),n=k.children;0<n.length?n[n.length-1].add(p):(n=new CKEDITOR.htmlParser.element("li",{style:"list-style-type:none"}),n.add(p),k.add(n));l.push(p);m.push(p);k=p;c==l.length&& -g.setListSymbol(p,b.attributes["cke-symbol"],c)}for(;c<l.length;)l.pop(),k=l[l.length-1],c==l.length&&g.setListSymbol(k,b.attributes["cke-symbol"],c);b.remove();k.add(b)}l[0].children.length&&(d=l[0].children[0].attributes["cke-symbol"],!d&&1<l[0].children.length&&(d=l[0].children[1].attributes["cke-symbol"]),d&&g.setListSymbol(l[0],d));for(d=0;d<m.length;d++)g.setListStart(m[d]);for(d=0;d<h.length;d++)this.determineListItemValue(h[d])}return f},cleanup:function(a){var b=["cke-list-level","cke-symbol", -"cke-list-id","cke-indentation","cke-dissolved"],c,d;for(c=0;c<a.length;c++)for(d=0;d<b.length;d++)delete a[c].attributes[b[d]]},determineListItemValue:function(a){if("ol"===a.parent.name){var b=this.calculateValue(a),c=a.attributes["cke-symbol"].match(/[a-z0-9]+/gi),d;c&&(c=c[c.length-1],d=a.parent.attributes["cke-list-style-type"]||this.numbering.getStyle(c),c=this.numbering.toNumber(c,d),c!==b&&(a.attributes.value=c))}},calculateValue:function(a){if(!a.parent)return 1;var b=a.parent;a=a.getIndex(); -var c=null,d,f,e;for(e=a;0<=e&&null===c;e--)f=b.children[e],f.attributes&&void 0!==f.attributes.value&&(d=e,c=parseInt(f.attributes.value,10));null===c&&(c=void 0!==b.attributes.start?parseInt(b.attributes.start,10):1,d=0);return c+(a-d)},dissolveList:function(a){function b(a){return 50<=a?"l"+b(a-50):40<=a?"xl"+b(a-40):10<=a?"x"+b(a-10):9==a?"ix":5<=a?"v"+b(a-5):4==a?"iv":1<=a?"i"+b(a-1):""}function c(a,b){function c(b,d){return b&&b.parent?a(b.parent)?c(b.parent,d+1):c(b.parent,d):d}return c(b, -0)}var d=function(a){return function(b){return b.name==a}},f=function(a){return d("ul")(a)||d("ol")(a)},e=CKEDITOR.tools.array,g=[],l,r;a.forEach(function(a){g.push(a)},CKEDITOR.NODE_ELEMENT,!1);l=e.filter(g,d("li"));var m=e.filter(g,f);e.forEach(m,function(a){var g=a.attributes.type,h=parseInt(a.attributes.start,10)||1,m=c(f,a)+1;g||(g=n.parseCssText(a.attributes.style)["list-style-type"]);e.forEach(e.filter(a.children,d("li")),function(c,d){var e;switch(g){case "disc":e="·";break;case "circle":e= -"o";break;case "square":e="§";break;case "1":case "decimal":e=h+d+".";break;case "a":case "lower-alpha":e=String.fromCharCode(97+h-1+d)+".";break;case "A":case "upper-alpha":e=String.fromCharCode(65+h-1+d)+".";break;case "i":case "lower-roman":e=b(h+d)+".";break;case "I":case "upper-roman":e=b(h+d).toUpperCase()+".";break;default:e="ul"==a.name?"·":h+d+"."}c.attributes["cke-symbol"]=e;c.attributes["cke-list-level"]=m})});l=e.reduce(l,function(a,b){var c=b.children[0];if(c&&c.name&&c.attributes.style&& -c.attributes.style.match(/mso-list:/i)){k.pushStylesLower(b,{"list-style-type":!0,display:!0});var d=n.parseCssText(c.attributes.style,!0);k.setStyle(b,"mso-list",d["mso-list"],!0);k.setStyle(c,"mso-list","");delete b["cke-list-level"];(c=d.display?"display":d.DISPLAY?"DISPLAY":"")&&k.setStyle(b,"display",d[c],!0)}if(1===b.children.length&&f(b.children[0]))return a;b.name="p";b.attributes["cke-dissolved"]=!0;a.push(b);return a},[]);for(r=l.length-1;0<=r;r--)l[r].insertAfter(a);for(r=m.length-1;0<= -r;r--)delete m[r].name},groupLists:function(a){var b,c,d=[[a[0]]],f=d[0];c=a[0];c.attributes["cke-indentation"]=c.attributes["cke-indentation"]||g.getElementIndentation(c);for(b=1;b<a.length;b++){c=a[b];var e=a[b-1];c.attributes["cke-indentation"]=c.attributes["cke-indentation"]||g.getElementIndentation(c);c.previous!==e&&(g.chopDiscontinuousLists(f,d),d.push(f=[]));f.push(c)}g.chopDiscontinuousLists(f,d);return d},chopDiscontinuousLists:function(a,b){for(var c={},d=[[]],f,e=0;e<a.length;e++){var h= -c[a[e].attributes["cke-list-level"]],l=this.getListItemInfo(a[e]),k,m;h?(m=h.type.match(/alpha/)&&7==h.index?"alpha":m,m="o"==a[e].attributes["cke-symbol"]&&14==h.index?"alpha":m,k=g.getSymbolInfo(a[e].attributes["cke-symbol"],m),l=this.getListItemInfo(a[e]),(h.type!=k.type||f&&l.id!=f.id&&!this.isAListContinuation(a[e]))&&d.push([])):k=g.getSymbolInfo(a[e].attributes["cke-symbol"]);for(f=parseInt(a[e].attributes["cke-list-level"],10)+1;20>f;f++)c[f]&&delete c[f];c[a[e].attributes["cke-list-level"]]= -k;d[d.length-1].push(a[e]);f=l}[].splice.apply(b,[].concat([n.indexOf(b,a),1],d))},isAListContinuation:function(a){var b=a;do if((b=b.previous)&&b.type===CKEDITOR.NODE_ELEMENT){if(void 0===b.attributes["cke-list-level"])break;if(b.attributes["cke-list-level"]===a.attributes["cke-list-level"])return b.attributes["cke-list-id"]===a.attributes["cke-list-id"]}while(b);return!1},getElementIndentation:function(a){a=n.parseCssText(a.attributes.style);if(a.margin||a.MARGIN){a.margin=a.margin||a.MARGIN;var b= -{styles:{margin:a.margin}};CKEDITOR.filter.transformationsTools.splitMarginShorthand(b);a["margin-left"]=b.styles["margin-left"]}return parseInt(n.convertToPx(a["margin-left"]||"0px"),10)},toArabic:function(a){return a.match(/[ivxl]/i)?a.match(/^l/i)?50+g.toArabic(a.slice(1)):a.match(/^lx/i)?40+g.toArabic(a.slice(1)):a.match(/^x/i)?10+g.toArabic(a.slice(1)):a.match(/^ix/i)?9+g.toArabic(a.slice(2)):a.match(/^v/i)?5+g.toArabic(a.slice(1)):a.match(/^iv/i)?4+g.toArabic(a.slice(2)):a.match(/^i/i)?1+g.toArabic(a.slice(1)): -g.toArabic(a.slice(1)):0},getSymbolInfo:function(a,b){var c=a.toUpperCase()==a?"upper-":"lower-",d={"·":["disc",-1],o:["circle",-2],"§":["square",-3]};if(a in d||b&&b.match(/(disc|circle|square)/))return{index:d[a][1],type:d[a][0]};if(a.match(/\d/))return{index:a?parseInt(g.getSubsectionSymbol(a),10):0,type:"decimal"};a=a.replace(/\W/g,"").toLowerCase();return!b&&a.match(/[ivxl]+/i)||b&&"alpha"!=b||"roman"==b?{index:g.toArabic(a),type:c+"roman"}:a.match(/[a-z]/i)?{index:a.charCodeAt(0)-97,type:c+ -"alpha"}:{index:-1,type:"disc"}},getListItemInfo:function(a){if(void 0!==a.attributes["cke-list-id"])return{id:a.attributes["cke-list-id"],level:a.attributes["cke-list-level"]};var b=n.parseCssText(a.attributes.style)["mso-list"],c={id:"0",level:"1"};b&&(b+=" ",c.level=b.match(/level(.+?)\s+/)[1],c.id=b.match(/l(\d+?)\s+/)[1]);a.attributes["cke-list-level"]=void 0!==a.attributes["cke-list-level"]?a.attributes["cke-list-level"]:c.level;a.attributes["cke-list-id"]=c.id;return c}};g=CKEDITOR.plugins.pastefromword.lists; -CKEDITOR.plugins.pastefromword.heuristics={isEdgeListItem:function(a,b){if(!CKEDITOR.env.edge||!a.config.pasteFromWord_heuristicsEdgeList)return!1;var c="";b.forEach&&b.forEach(function(a){c+=a.value},CKEDITOR.NODE_TEXT);return c.match(/^(?: |&nbsp;)*\(?[a-zA-Z0-9]+?[\.\)](?: |&nbsp;){2,}/)?!0:t.isDegenerateListItem(a,b)},cleanupEdgeListItem:function(a){var b=!1;a.forEach(function(a){b||(a.value=a.value.replace(/^(?:&nbsp;|[\s])+/,""),a.value.length&&(b=!0))},CKEDITOR.NODE_TEXT)},isDegenerateListItem:function(a, -b){return!!b.attributes["cke-list-level"]||b.attributes.style&&!b.attributes.style.match(/mso\-list/)&&!!b.find(function(a){if(a.type==CKEDITOR.NODE_ELEMENT&&b.name.match(/h\d/i)&&a.getHtml().match(/^[a-zA-Z0-9]+?[\.\)]$/))return!0;var d=n.parseCssText(a.attributes&&a.attributes.style,!0);if(!d)return!1;var f=d["font-family"]||"";return(d.font||d["font-size"]||"").match(/7pt/i)&&!!a.previous||f.match(/symbol/i)},!0).length},assignListLevels:function(a,b){if(!b.attributes||void 0===b.attributes["cke-list-level"]){for(var c= -[g.getElementIndentation(b)],d=[b],f=[],e=CKEDITOR.tools.array,h=e.map;b.next&&b.next.attributes&&!b.next.attributes["cke-list-level"]&&t.isDegenerateListItem(a,b.next);)b=b.next,c.push(g.getElementIndentation(b)),d.push(b);var k=h(c,function(a,b){return 0===b?0:a-c[b-1]}),n=this.guessIndentationStep(e.filter(c,function(a){return 0!==a})),f=h(c,function(a){return Math.round(a/n)});-1!==e.indexOf(f,0)&&(f=h(f,function(a){return a+1}));e.forEach(d,function(a,b){a.attributes["cke-list-level"]=f[b]}); -return{indents:c,levels:f,diffs:k}}},guessIndentationStep:function(a){return a.length?Math.min.apply(null,a):null},correctLevelShift:function(a){if(this.isShifted(a)){var b=CKEDITOR.tools.array.filter(a.children,function(a){return"ul"==a.name||"ol"==a.name}),c=CKEDITOR.tools.array.reduce(b,function(a,b){return(b.children&&1==b.children.length&&t.isShifted(b.children[0])?[b]:b.children).concat(a)},[]);CKEDITOR.tools.array.forEach(b,function(a){a.remove()});CKEDITOR.tools.array.forEach(c,function(b){a.add(b, -0)});delete a.name}},isShifted:function(a){return"li"!==a.name?!1:0===CKEDITOR.tools.array.filter(a.children,function(a){return a.name&&("ul"==a.name||"ol"==a.name||"p"==a.name&&0===a.children.length)?!1:!0}).length}};t=CKEDITOR.plugins.pastefromword.heuristics;g.setListSymbol.removeRedundancies=function(a,b){(1===b&&"disc"===a["list-style-type"]||"decimal"===a["list-style-type"])&&delete a["list-style-type"]};CKEDITOR.plugins.pastefromword.createAttributeStack=x;CKEDITOR.config.pasteFromWord_heuristicsEdgeList= -!0})(); \ No newline at end of file diff --git a/admin/plugins/ckeditor/plugins/scayt/CHANGELOG.md b/admin/plugins/ckeditor/plugins/scayt/CHANGELOG.md deleted file mode 100644 index 05cf2dd..0000000 --- a/admin/plugins/ckeditor/plugins/scayt/CHANGELOG.md +++ /dev/null @@ -1,20 +0,0 @@ -SCAYT plugin for CKEditor 4 Changelog -==================== -### CKEditor 4.5.6 - -New Features: -* CKEditor [language addon](http://ckeditor.com/addon/language) support -* CKEditor [placeholder addon](http://ckeditor.com/addon/placeholder) support -* Drag and Drop support -* *Experimental* GRAYT functionality http://www.webspellchecker.net/samples/scayt-ckeditor-plugin.html#25 - -Fixed issues: -* [#98](https://github.com/WebSpellChecker/ckeditor-plugin-scayt/issues/98) SCAYT Affects Dialog Double Click. Fixed in SCAYT Core. -* [#102](https://github.com/WebSpellChecker/ckeditor-plugin-scayt/issues/102) SCAYT Core performance enhancements -* [#104](https://github.com/WebSpellChecker/ckeditor-plugin-scayt/issues/104) SCAYT's spans leak into the clipboard and after pasting -* [#105](https://github.com/WebSpellChecker/ckeditor-plugin-scayt/issues/105) Javascript error fired in case of multiple instances of CKEditor in one page -* [#107](https://github.com/WebSpellChecker/ckeditor-plugin-scayt/issues/107) SCAYT should not check non-editable parts of content -* [#108](https://github.com/WebSpellChecker/ckeditor-plugin-scayt/issues/108) Latest SCAYT copies id of editor element to the iframe -* SCAYT stops working when CKEditor Undo plug-in not enabled -* Issue with pasting SCAYT markup in CKEditor -* [#32](https://github.com/WebSpellChecker/ckeditor-plugin-wsc/issues/32) SCAYT stops working after pressing Cancel button in WSC dialog diff --git a/admin/plugins/ckeditor/plugins/scayt/LICENSE.md b/admin/plugins/ckeditor/plugins/scayt/LICENSE.md deleted file mode 100644 index 610c807..0000000 --- a/admin/plugins/ckeditor/plugins/scayt/LICENSE.md +++ /dev/null @@ -1,28 +0,0 @@ -Software License Agreement -========================== - -**CKEditor SCAYT Plugin** -Copyright &copy; 2012, [CKSource](http://cksource.com) - Frederico Knabben. All rights reserved. - -Licensed under the terms of any of the following licenses at your choice: - -* GNU General Public License Version 2 or later (the "GPL"): - http://www.gnu.org/licenses/gpl.html - -* GNU Lesser General Public License Version 2.1 or later (the "LGPL"): - http://www.gnu.org/licenses/lgpl.html - -* Mozilla Public License Version 1.1 or later (the "MPL"): - http://www.mozilla.org/MPL/MPL-1.1.html - -You are not required to, but if you want to explicitly declare the license you have chosen to be bound to when using, reproducing, modifying and distributing this software, just include a text file titled "legal.txt" in your version of this software, indicating your license choice. - -Sources of Intellectual Property Included in this plugin --------------------------------------------------------- - -Where not otherwise indicated, all plugin content is authored by CKSource engineers and consists of CKSource-owned intellectual property. In some specific instances, the plugin will incorporate work done by developers outside of CKSource with their express permission. - -Trademarks ----------- - -CKEditor is a trademark of CKSource - Frederico Knabben. All other brand and product names are trademarks, registered trademarks or service marks of their respective holders. diff --git a/admin/plugins/ckeditor/plugins/scayt/README.md b/admin/plugins/ckeditor/plugins/scayt/README.md deleted file mode 100644 index 1b3de25..0000000 --- a/admin/plugins/ckeditor/plugins/scayt/README.md +++ /dev/null @@ -1,25 +0,0 @@ -CKEditor SCAYT Plugin -===================== - -This plugin brings Spell Check As You Type (SCAYT) into up to CKEditor 4+. - -SCAYT is a "installation-less", using the web-services of [WebSpellChecker.net](http://www.webspellchecker.net/). It's an out of the box solution. - -Installation ------------- - -1. Clone/copy this repository contents in a new "plugins/scayt" folder in your CKEditor installation. -2. Enable the "scayt" plugin in the CKEditor configuration file (config.js): - - config.extraPlugins = 'scayt'; - -That's all. SCAYT will appear on the editor toolbar and will be ready to use. - -License -------- - -Licensed under the terms of any of the following licenses at your choice: [GPL](http://www.gnu.org/licenses/gpl.html), [LGPL](http://www.gnu.org/licenses/lgpl.html) and [MPL](http://www.mozilla.org/MPL/MPL-1.1.html). - -See LICENSE.md for more information. - -Developed in cooperation with [WebSpellChecker.net](http://www.webspellchecker.net/). diff --git a/admin/plugins/ckeditor/plugins/scayt/dialogs/dialog.css b/admin/plugins/ckeditor/plugins/scayt/dialogs/dialog.css deleted file mode 100644 index 427c4b4..0000000 --- a/admin/plugins/ckeditor/plugins/scayt/dialogs/dialog.css +++ /dev/null @@ -1,23 +0,0 @@ -div.cke_dialog_ui_scaytItemList { - border: 1px solid #c9cccf; -} - -.cke_scaytItemList-child { - position: relative; - padding: 6px 30px 6px 5px; - overflow: hidden; - text-overflow: ellipsis; - white-space: nowrap; -} - -.cke_scaytItemList-child:hover { - background: #ebebeb; -} - -.cke_scaytItemList-child .cke_scaytItemList_remove { - position: absolute; - top: 0; - right: 5px; - width: 26px; - height: 26px; -} diff --git a/admin/plugins/ckeditor/plugins/scayt/dialogs/options.js b/admin/plugins/ckeditor/plugins/scayt/dialogs/options.js deleted file mode 100644 index 22f3a58..0000000 --- a/admin/plugins/ckeditor/plugins/scayt/dialogs/options.js +++ /dev/null @@ -1,33 +0,0 @@ -CKEDITOR.dialog.add("scaytDialog",function(c){var d=c.scayt,k='\x3cp\x3e\x3cimg src\x3d"'+d.getLogo()+'" /\x3e\x3c/p\x3e\x3cp\x3e'+d.getLocal("version")+d.getVersion()+"\x3c/p\x3e\x3cp\x3e"+d.getLocal("text_copyrights")+"\x3c/p\x3e",n=CKEDITOR.document,p={isChanged:function(){return null===this.newLang||this.currentLang===this.newLang?!1:!0},currentLang:d.getLang(),newLang:null,reset:function(){this.currentLang=d.getLang();this.newLang=null},id:"lang"},k=[{id:"options",label:d.getLocal("tab_options"), -onShow:function(){},elements:[{type:"vbox",id:"scaytOptions",children:function(){var b=d.getApplicationConfig(),a=[],c={"ignore-all-caps-words":"label_allCaps","ignore-domain-names":"label_ignoreDomainNames","ignore-words-with-mixed-cases":"label_mixedCase","ignore-words-with-numbers":"label_mixedWithDigits"},f;for(f in b)b={type:"checkbox"},b.id=f,b.label=d.getLocal(c[f]),a.push(b);return a}(),onShow:function(){this.getChild();for(var b=c.scayt,a=0;a<this.getChild().length;a++)this.getChild()[a].setValue(b.getApplicationConfig()[this.getChild()[a].id])}}]}, -{id:"langs",label:d.getLocal("tab_languages"),elements:[{id:"leftLangColumn",type:"vbox",align:"left",widths:["100"],children:[{type:"html",id:"langBox",style:"overflow: hidden; white-space: normal;margin-bottom:15px;",html:'\x3cdiv\x3e\x3cdiv style\x3d"float:left;width:45%;margin-left:5px;" id\x3d"left-col-'+c.name+'" class\x3d"scayt-lang-list"\x3e\x3c/div\x3e\x3cdiv style\x3d"float:left;width:45%;margin-left:15px;" id\x3d"right-col-'+c.name+'" class\x3d"scayt-lang-list"\x3e\x3c/div\x3e\x3c/div\x3e', -onShow:function(){var b=c.scayt.getLang();n.getById("scaytLang_"+c.name+"_"+b).$.checked=!0}},{type:"html",id:"graytLanguagesHint",html:'\x3cdiv style\x3d"margin:5px auto; width:95%;white-space:normal;" id\x3d"'+c.name+'graytLanguagesHint"\x3e\x3cspan style\x3d"width:10px;height:10px;display: inline-block; background:#02b620;vertical-align:top;margin-top:2px;"\x3e\x3c/span\x3e - This languages are supported by Grammar As You Type(GRAYT).\x3c/div\x3e',onShow:function(){var b=n.getById(c.name+"graytLanguagesHint"); -c.config.grayt_autoStartup||(b.$.style.display="none")}}]}]},{id:"dictionaries",label:d.getLocal("tab_dictionaries"),elements:[{type:"vbox",id:"rightCol_col__left",children:[{type:"html",id:"dictionaryNote",html:""},{type:"text",id:"dictionaryName",label:d.getLocal("label_fieldNameDic")||"Dictionary name",onShow:function(b){var a=b.sender,h=c.scayt;b=SCAYT.prototype.UILib;var f=a.getContentElement("dictionaries","dictionaryName").getInputElement().$;h.isLicensed()||(f.disabled=!0,b.css(f,{cursor:"not-allowed"})); -setTimeout(function(){a.getContentElement("dictionaries","dictionaryNote").getElement().setText("");null!=h.getUserDictionaryName()&&""!=h.getUserDictionaryName()&&a.getContentElement("dictionaries","dictionaryName").setValue(h.getUserDictionaryName())},0)}},{type:"hbox",id:"udButtonsHolder",align:"left",widths:["auto"],style:"width:auto;",children:[{type:"button",id:"createDic",label:d.getLocal("btn_createDic"),title:d.getLocal("btn_createDic"),onLoad:function(){this.getDialog();var b=c.scayt,a= -SCAYT.prototype.UILib,h=this.getElement().$,f=this.getElement().getChild(0).$;b.isLicensed()||(a.css(h,{cursor:"not-allowed"}),a.css(f,{cursor:"not-allowed"}))},onClick:function(){var b=this.getDialog(),a=g,h=c.scayt,f=b.getContentElement("dictionaries","dictionaryName").getValue();h.isLicensed()&&h.createUserDictionary(f,function(e){e.error||a.toggleDictionaryState.call(b,"dictionaryState");e.dialog=b;e.command="create";e.name=f;c.fire("scaytUserDictionaryAction",e)},function(a){a.dialog=b;a.command= -"create";a.name=f;c.fire("scaytUserDictionaryActionError",a)})}},{type:"button",id:"restoreDic",label:d.getLocal("btn_connectDic"),title:d.getLocal("btn_connectDic"),onLoad:function(){this.getDialog();var b=c.scayt,a=SCAYT.prototype.UILib,h=this.getElement().$,f=this.getElement().getChild(0).$;b.isLicensed()||(a.css(h,{cursor:"not-allowed"}),a.css(f,{cursor:"not-allowed"}))},onClick:function(){var b=this.getDialog(),a=c.scayt,h=g,f=b.getContentElement("dictionaries","dictionaryName").getValue();a.isLicensed()&& -a.restoreUserDictionary(f,function(a){a.dialog=b;a.error||h.toggleDictionaryState.call(b,"dictionaryState");a.command="restore";a.name=f;c.fire("scaytUserDictionaryAction",a)},function(a){a.dialog=b;a.command="restore";a.name=f;c.fire("scaytUserDictionaryActionError",a)})}},{type:"button",id:"disconnectDic",label:d.getLocal("btn_disconnectDic"),title:d.getLocal("btn_disconnectDic"),onClick:function(){var b=this.getDialog(),a=c.scayt,h=g,f=b.getContentElement("dictionaries","dictionaryName"),e=f.getValue(); -a.isLicensed()&&(a.disconnectFromUserDictionary({}),f.setValue(""),h.toggleDictionaryState.call(b,"initialState"),c.fire("scaytUserDictionaryAction",{dialog:b,command:"disconnect",name:e}))}},{type:"button",id:"removeDic",label:d.getLocal("btn_deleteDic"),title:d.getLocal("btn_deleteDic"),onClick:function(){var b=this.getDialog(),a=c.scayt,h=g,f=b.getContentElement("dictionaries","dictionaryName"),e=f.getValue();a.isLicensed()&&a.removeUserDictionary(e,function(a){f.setValue("");a.error||h.toggleDictionaryState.call(b, -"initialState");a.dialog=b;a.command="remove";a.name=e;c.fire("scaytUserDictionaryAction",a)},function(a){a.dialog=b;a.command="remove";a.name=e;c.fire("scaytUserDictionaryActionError",a)})}},{type:"button",id:"renameDic",label:d.getLocal("btn_renameDic"),title:d.getLocal("btn_renameDic"),onClick:function(){var b=this.getDialog(),a=c.scayt,h=b.getContentElement("dictionaries","dictionaryName").getValue();a.isLicensed()&&a.renameUserDictionary(h,function(a){a.dialog=b;a.command="rename";a.name=h;c.fire("scaytUserDictionaryAction", -a)},function(a){a.dialog=b;a.command="rename";a.name=h;c.fire("scaytUserDictionaryActionError",a)})}},{type:"button",id:"editDic",label:d.getLocal("btn_goToDic"),title:d.getLocal("btn_goToDic"),onLoad:function(){this.getDialog()},onClick:function(){var b=this.getDialog(),a=b.getContentElement("dictionaries","addWordField");g.clearWordList.call(b);a.setValue("");g.getUserDictionary.call(b);g.toggleDictionaryState.call(b,"wordsState")}}]},{type:"hbox",id:"dicInfo",align:"left",children:[{type:"html", -id:"dicInfoHtml",html:'\x3cdiv id\x3d"dic_info_editor1" style\x3d"margin:5px auto; width:95%;white-space:normal;"\x3e'+(c.scayt.isLicensed&&c.scayt.isLicensed()?d.getLocal("text_descriptionDicForPaid"):d.getLocal("text_descriptionDicForFree"))+"\x3c/div\x3e"}]},{id:"addWordAction",type:"hbox",style:"width: 100%; margin-bottom: 0;",widths:["40%","60%"],children:[{id:"addWord",type:"vbox",style:"min-width: 150px;",children:[{type:"text",id:"addWordField",label:"Add word",maxLength:"64"}]},{id:"addWordButtons", -type:"vbox",style:"margin-top: 20px;",children:[{type:"hbox",id:"addWordButton",align:"left",children:[{type:"button",id:"addWord",label:d.getLocal("btn_addWord"),title:d.getLocal("btn_addWord"),onClick:function(){var b=this.getDialog(),a=c.scayt,h=b.getContentElement("dictionaries","itemList"),f=b.getContentElement("dictionaries","addWordField"),e=f.getValue(),d=a.getOption("wordBoundaryRegex"),g=this;e&&(-1!==e.search(d)?c.fire("scaytUserDictionaryAction",{dialog:b,command:"wordWithBannedSymbols", -name:e,error:!0}):h.inChildren(e)?(f.setValue(""),c.fire("scaytUserDictionaryAction",{dialog:b,command:"wordAlreadyAdded",name:e})):(this.disable(),a.addWordToUserDictionary(e,function(a){a.error||(f.setValue(""),h.addChild(e,!0));a.dialog=b;a.command="addWord";a.name=e;g.enable();c.fire("scaytUserDictionaryAction",a)},function(a){a.dialog=b;a.command="addWord";a.name=e;g.enable();c.fire("scaytUserDictionaryActionError",a)})))}},{type:"button",id:"backToDic",label:d.getLocal("btn_dictionaryPreferences"), -title:d.getLocal("btn_dictionaryPreferences"),align:"right",onClick:function(){var b=this.getDialog(),a=c.scayt;null!=a.getUserDictionaryName()&&""!=a.getUserDictionaryName()?g.toggleDictionaryState.call(b,"dictionaryState"):g.toggleDictionaryState.call(b,"initialState")}}]}]}]},{id:"wordsHolder",type:"hbox",style:"width: 100%; height: 170px; margin-bottom: 0;",children:[{type:"scaytItemList",id:"itemList",align:"left",style:"width: 100%; height: 170px; overflow: auto",onClick:function(b){b=b.data.$; -var a=c.scayt,h=SCAYT.prototype.UILib,f=h.parent(b.target)[0],e=h.attr(f,"data-cke-scayt-ud-word"),d=this.getDialog(),g=d.getContentElement("dictionaries","itemList"),m=this;h.hasClass(b.target,"cke_scaytItemList_remove")&&!this.isBlocked()&&(this.block(),a.deleteWordFromUserDictionary(e,function(a){a.error||g.removeChild(f,e);m.unblock();a.dialog=d;a.command="deleteWord";a.name=e;c.fire("scaytUserDictionaryAction",a)},function(a){m.unblock();a.dialog=d;a.command="deleteWord";a.name=e;c.fire("scaytUserDictionaryActionError", -a)}))}}]}]}]},{id:"about",label:d.getLocal("tab_about"),elements:[{type:"html",id:"about",style:"margin: 5px 5px;",html:'\x3cdiv\x3e\x3cdiv id\x3d"scayt_about_"\x3e'+k+"\x3c/div\x3e\x3c/div\x3e"}]}];c.on("scaytUserDictionaryAction",function(b){var a=SCAYT.prototype.UILib,c=b.data.dialog,f=c.getContentElement("dictionaries","dictionaryNote").getElement(),e=b.editor.scayt,d;void 0===b.data.error?(d=e.getLocal("message_success_"+b.data.command+"Dic"),d=d.replace("%s",b.data.name),f.setText(d),a.css(f.$, -{color:"blue"})):(""===b.data.name?f.setText(e.getLocal("message_info_emptyDic")):(d=e.getLocal("message_error_"+b.data.command+"Dic"),d=d.replace("%s",b.data.name),f.setText(d)),a.css(f.$,{color:"red"}),null!=e.getUserDictionaryName()&&""!=e.getUserDictionaryName()?c.getContentElement("dictionaries","dictionaryName").setValue(e.getUserDictionaryName()):c.getContentElement("dictionaries","dictionaryName").setValue(""))});c.on("scaytUserDictionaryActionError",function(b){var a=SCAYT.prototype.UILib, -c=b.data.dialog,d=c.getContentElement("dictionaries","dictionaryNote").getElement(),e=b.editor.scayt,g;""===b.data.name?d.setText(e.getLocal("message_info_emptyDic")):(g=e.getLocal("message_error_"+b.data.command+"Dic"),g=g.replace("%s",b.data.name),d.setText(g));a.css(d.$,{color:"red"});null!=e.getUserDictionaryName()&&""!=e.getUserDictionaryName()?c.getContentElement("dictionaries","dictionaryName").setValue(e.getUserDictionaryName()):c.getContentElement("dictionaries","dictionaryName").setValue("")}); -var g={title:d.getLocal("text_title"),resizable:CKEDITOR.DIALOG_RESIZE_BOTH,minWidth:"moono-lisa"==(CKEDITOR.skinName||c.config.skin)?450:340,minHeight:300,onLoad:function(){if(0!=c.config.scayt_uiTabs[1]){var b=g,a=b.getLangBoxes.call(this);this.getContentElement("dictionaries","addWordField");a.getParent().setStyle("white-space","normal");b.renderLangList(a);this.definition.minWidth=this.getSize().width;this.resize(this.definition.minWidth,this.definition.minHeight)}},onCancel:function(){p.reset()}, -onHide:function(){c.unlockSelection()},onShow:function(){c.fire("scaytDialogShown",this);if(0!=c.config.scayt_uiTabs[2]){var b=this.getContentElement("dictionaries","addWordField");g.clearWordList.call(this);b.setValue("");g.getUserDictionary.call(this);g.toggleDictionaryState.call(this,"wordsState")}},onOk:function(){var b=g,a=c.scayt;this.getContentElement("options","scaytOptions");b=b.getChangedOption.call(this);a.commitOption({changedOptions:b})},toggleDictionaryButtons:function(b){var a=this.getContentElement("dictionaries", -"existDic").getElement().getParent(),c=this.getContentElement("dictionaries","notExistDic").getElement().getParent();b?(a.show(),c.hide()):(a.hide(),c.show())},getChangedOption:function(){var b={};if(1==c.config.scayt_uiTabs[0])for(var a=this.getContentElement("options","scaytOptions").getChild(),d=0;d<a.length;d++)a[d].isChanged()&&(b[a[d].id]=a[d].getValue());p.isChanged()&&(b[p.id]=c.config.scayt_sLang=p.currentLang=p.newLang);return b},buildRadioInputs:function(b,a,d){var f=new CKEDITOR.dom.element("div"), -e="scaytLang_"+c.name+"_"+a,g=CKEDITOR.dom.element.createFromHtml('\x3cinput id\x3d"'+e+'" type\x3d"radio" value\x3d"'+a+'" name\x3d"scayt_lang" /\x3e'),k=new CKEDITOR.dom.element("label"),m=c.scayt;f.setStyles({"white-space":"normal",position:"relative","padding-bottom":"2px"});g.on("click",function(a){p.newLang=a.sender.getValue()});k.appendText(b);k.setAttribute("for",e);d&&c.config.grayt_autoStartup&&k.setStyles({color:"#02b620"});f.append(g);f.append(k);a===m.getLang()&&(g.setAttribute("checked", -!0),g.setAttribute("defaultChecked","defaultChecked"));return f},renderLangList:function(b){var a=b.find("#left-col-"+c.name).getItem(0);b=b.find("#right-col-"+c.name).getItem(0);var h=d.getScaytLangList(),f=d.getGraytLangList(),e={},g=[],k=0,m=!1,l;for(l in h.ltr)e[l]=h.ltr[l];for(l in h.rtl)e[l]=h.rtl[l];for(l in e)g.push([l,e[l]]);g.sort(function(a,b){var c=0;a[1]>b[1]?c=1:a[1]<b[1]&&(c=-1);return c});e={};for(m=0;m<g.length;m++)e[g[m][0]]=g[m][1];g=Math.round(g.length/2);for(l in e)k++,m=l in -f.ltr||l in f.rtl,this.buildRadioInputs(e[l],l,m).appendTo(k<=g?a:b)},getLangBoxes:function(){return this.getContentElement("langs","langBox").getElement()},toggleDictionaryState:function(b){var a=this.getContentElement("dictionaries","dictionaryName").getElement().getParent(),c=this.getContentElement("dictionaries","udButtonsHolder").getElement().getParent(),d=this.getContentElement("dictionaries","createDic").getElement().getParent(),e=this.getContentElement("dictionaries","restoreDic").getElement().getParent(), -g=this.getContentElement("dictionaries","disconnectDic").getElement().getParent(),k=this.getContentElement("dictionaries","removeDic").getElement().getParent(),m=this.getContentElement("dictionaries","renameDic").getElement().getParent(),l=this.getContentElement("dictionaries","dicInfo").getElement().getParent(),p=this.getContentElement("dictionaries","addWordAction").getElement().getParent(),n=this.getContentElement("dictionaries","wordsHolder").getElement().getParent();switch(b){case "initialState":a.show(); -c.show();d.show();e.show();g.hide();k.hide();m.hide();l.show();p.hide();n.hide();break;case "wordsState":a.hide();c.hide();l.hide();p.show();n.show();break;case "dictionaryState":a.show(),c.show(),d.hide(),e.hide(),g.show(),k.show(),m.show(),l.show(),p.hide(),n.hide()}},clearWordList:function(){this.getContentElement("dictionaries","itemList").removeAllChild()},getUserDictionary:function(){var b=this;c.scayt.getUserDictionary("",function(a){a.error||g.renderItemList.call(b,a.wordlist)})},renderItemList:function(b){for(var a= -this.getContentElement("dictionaries","itemList"),c=0;c<b.length;c++)a.addChild(b[c])},contents:function(b,a){var c=[],d=a.config.scayt_uiTabs;if(d){for(var e in d)1==d[e]&&c.push(b[e]);c.push(b[b.length-1])}else return b;return c}(k,c)};return g}); -CKEDITOR.tools.extend(CKEDITOR.ui.dialog,{scaytItemList:function(c,d,k){if(arguments.length){var n=this;c.on("load",function(){n.getElement().on("click",function(c){})});CKEDITOR.ui.dialog.uiElement.call(this,c,d,k,"",null,null,function(){var c=['\x3cp class\x3d"cke_dialog_ui_',d.type,'"'];d.style&&c.push('style\x3d"'+d.style+'" ');c.push("\x3e");c.push("\x3c/p\x3e");return c.join("")})}}}); -CKEDITOR.ui.dialog.scaytItemList.prototype=CKEDITOR.tools.extend(new CKEDITOR.ui.dialog.uiElement,{children:[],blocked:!1,addChild:function(c,d){var k=new CKEDITOR.dom.element("p"),n=new CKEDITOR.dom.element("a"),p=this.getElement().getChildren().getItem(0);this.children.push(c);k.addClass("cke_scaytItemList-child");k.setAttribute("data-cke-scayt-ud-word",c);k.appendText(c);n.addClass("cke_scaytItemList_remove");n.addClass("cke_dialog_close_button");n.setAttribute("href","javascript:void(0)");k.append(n); -p.append(k,d?!0:!1)},inChildren:function(c){return SCAYT.prototype.Utils.inArray(this.children,c)},removeChild:function(c,d){this.children.splice(SCAYT.prototype.Utils.indexOf(this.children,d),1);this.getElement().getChildren().getItem(0).$.removeChild(c)},removeAllChild:function(){this.children=[];this.getElement().getChildren().getItem(0).setHtml("")},block:function(){this.blocked=!0},unblock:function(){this.blocked=!1},isBlocked:function(){return this.blocked}}); -(function(){commonBuilder={build:function(c,d,k){return new CKEDITOR.ui.dialog[d.type](c,d,k)}};CKEDITOR.dialog.addUIElement("scaytItemList",commonBuilder)})(); \ No newline at end of file diff --git a/admin/plugins/ckeditor/plugins/scayt/dialogs/toolbar.css b/admin/plugins/ckeditor/plugins/scayt/dialogs/toolbar.css deleted file mode 100644 index 861f43e..0000000 --- a/admin/plugins/ckeditor/plugins/scayt/dialogs/toolbar.css +++ /dev/null @@ -1,71 +0,0 @@ -a -{ - text-decoration:none; - padding: 2px 4px 4px 6px; - display : block; - border-width: 1px; - border-style: solid; - margin : 0px; -} - -a.cke_scayt_toogle:hover, -a.cke_scayt_toogle:focus, -a.cke_scayt_toogle:active -{ - border-color: #316ac5; - background-color: #dff1ff; - color : #000; - cursor: pointer; - margin : 0px; -} -a.cke_scayt_toogle { - color : #316ac5; - border-color: #fff; -} -.scayt_enabled a.cke_scayt_item { - color : #316ac5; - border-color: #fff; - margin : 0px; -} -.scayt_disabled a.cke_scayt_item { - color : gray; - border-color : #fff; -} -.scayt_enabled a.cke_scayt_item:hover, -.scayt_enabled a.cke_scayt_item:focus, -.scayt_enabled a.cke_scayt_item:active -{ - border-color: #316ac5; - background-color: #dff1ff; - color : #000; - cursor: pointer; -} -.scayt_disabled a.cke_scayt_item:hover, -.scayt_disabled a.cke_scayt_item:focus, -.scayt_disabled a.cke_scayt_item:active -{ - border-color: gray; - background-color: #dff1ff; - color : gray; - cursor: no-drop; -} -.cke_scayt_set_on, .cke_scayt_set_off -{ - display: none; -} -.scayt_enabled .cke_scayt_set_on -{ - display: none; -} -.scayt_disabled .cke_scayt_set_on -{ - display: inline; -} -.scayt_disabled .cke_scayt_set_off -{ - display: none; -} -.scayt_enabled .cke_scayt_set_off -{ - display: inline; -} diff --git a/admin/plugins/ckeditor/plugins/scayt/skins/moono-lisa/scayt.css b/admin/plugins/ckeditor/plugins/scayt/skins/moono-lisa/scayt.css deleted file mode 100644 index 53f5222..0000000 --- a/admin/plugins/ckeditor/plugins/scayt/skins/moono-lisa/scayt.css +++ /dev/null @@ -1,25 +0,0 @@ -.scayt-lang-list > div -{ - padding-bottom: 6px !important; -} - -.scayt-lang-list > div input -{ - margin-right: 4px; -} - -#scayt_about_ -{ - margin: 30px auto 0 auto; -} - -#scayt_about_ p -{ - text-align: center; - margin-bottom: 10px; -} - -.cke_dialog_contents_body div[name=dictionaries] .cke_dialog_ui_hbox_last > a.cke_dialog_ui_button -{ - margin-top: 0; -} diff --git a/admin/plugins/ckeditor/plugins/specialchar/dialogs/lang/_translationstatus.txt b/admin/plugins/ckeditor/plugins/specialchar/dialogs/lang/_translationstatus.txt deleted file mode 100644 index 58f21b0..0000000 --- a/admin/plugins/ckeditor/plugins/specialchar/dialogs/lang/_translationstatus.txt +++ /dev/null @@ -1,20 +0,0 @@ -Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. -For licensing, see LICENSE.md or http://ckeditor.com/license - -cs.js Found: 118 Missing: 0 -cy.js Found: 118 Missing: 0 -de.js Found: 118 Missing: 0 -el.js Found: 16 Missing: 102 -eo.js Found: 118 Missing: 0 -et.js Found: 31 Missing: 87 -fa.js Found: 24 Missing: 94 -fi.js Found: 23 Missing: 95 -fr.js Found: 118 Missing: 0 -hr.js Found: 23 Missing: 95 -it.js Found: 118 Missing: 0 -nb.js Found: 118 Missing: 0 -nl.js Found: 118 Missing: 0 -no.js Found: 118 Missing: 0 -tr.js Found: 118 Missing: 0 -ug.js Found: 39 Missing: 79 -zh-cn.js Found: 118 Missing: 0 diff --git a/admin/plugins/ckeditor/plugins/specialchar/dialogs/lang/af.js b/admin/plugins/ckeditor/plugins/specialchar/dialogs/lang/af.js deleted file mode 100644 index 4203e53..0000000 --- a/admin/plugins/ckeditor/plugins/specialchar/dialogs/lang/af.js +++ /dev/null @@ -1,13 +0,0 @@ -/* - Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. - For licensing, see LICENSE.md or http://ckeditor.com/license -*/ -CKEDITOR.plugins.setLang("specialchar","af",{euro:"Euroteken",lsquo:"Linker enkelkwotasie",rsquo:"Regter enkelkwotasie",ldquo:"Linker dubbelkwotasie",rdquo:"Regter dubbelkwotasie",ndash:"Kortkoppelteken",mdash:"Langkoppelteken",iexcl:"Omgekeerdeuitroepteken",cent:"Centteken",pound:"Pondteken",curren:"Geldeenheidteken",yen:"Yenteken",brvbar:"Gebreekte balk",sect:"Afdeelingsteken",uml:"Deelteken",copy:"Kopieregteken",ordf:"Vroulikekenteken",laquo:"Linkgeoorienteerde aanhaalingsteken",not:"Verbodeteken", -reg:"Regestrasieteken",macr:"Lengteteken",deg:"Gradeteken",sup2:"Kwadraatteken",sup3:"Kubiekteken",acute:"Akuutaksentteken",micro:"Mikroteken",para:"Pilcrow sign",middot:"Middle dot",cedil:"Cedilla",sup1:"Superscript one",ordm:"Masculine ordinal indicator",raquo:"Right-pointing double angle quotation mark",frac14:"Vulgar fraction one quarter",frac12:"Vulgar fraction one half",frac34:"Vulgar fraction three quarters",iquest:"Inverted question mark",Agrave:"Latin capital letter A with grave accent", -Aacute:"Latin capital letter A with acute accent",Acirc:"Latin capital letter A with circumflex",Atilde:"Latin capital letter A with tilde",Auml:"Latin capital letter A with diaeresis",Aring:"Latin capital letter A with ring above",AElig:"Latin capital letter Æ",Ccedil:"Latin capital letter C with cedilla",Egrave:"Latin capital letter E with grave accent",Eacute:"Latin capital letter E with acute accent",Ecirc:"Latin capital letter E with circumflex",Euml:"Latin capital letter E with diaeresis",Igrave:"Latin capital letter I with grave accent", -Iacute:"Latin capital letter I with acute accent",Icirc:"Latin capital letter I with circumflex",Iuml:"Latin capital letter I with diaeresis",ETH:"Latin capital letter Eth",Ntilde:"Latin capital letter N with tilde",Ograve:"Latin capital letter O with grave accent",Oacute:"Latin capital letter O with acute accent",Ocirc:"Latin capital letter O with circumflex",Otilde:"Latin capital letter O with tilde",Ouml:"Latin capital letter O with diaeresis",times:"Multiplication sign",Oslash:"Latin capital letter O with stroke", -Ugrave:"Latin capital letter U with grave accent",Uacute:"Latin capital letter U with acute accent",Ucirc:"Latin capital letter U with circumflex",Uuml:"Latin capital letter U with diaeresis",Yacute:"Latin capital letter Y with acute accent",THORN:"Latin capital letter Thorn",szlig:"Latin small letter sharp s",agrave:"Latin small letter a with grave accent",aacute:"Latin small letter a with acute accent",acirc:"Latin small letter a with circumflex",atilde:"Latin small letter a with tilde",auml:"Latin small letter a with diaeresis", -aring:"Latin small letter a with ring above",aelig:"Latin small letter æ",ccedil:"Latin small letter c with cedilla",egrave:"Latin small letter e with grave accent",eacute:"Latin small letter e with acute accent",ecirc:"Latin small letter e with circumflex",euml:"Latin small letter e with diaeresis",igrave:"Latin small letter i with grave accent",iacute:"Latin small letter i with acute accent",icirc:"Latin small letter i with circumflex",iuml:"Latin small letter i with diaeresis",eth:"Latin small letter eth", -ntilde:"Latin small letter n with tilde",ograve:"Latin small letter o with grave accent",oacute:"Latin small letter o with acute accent",ocirc:"Latin small letter o with circumflex",otilde:"Latin small letter o with tilde",ouml:"Latin small letter o with diaeresis",divide:"Division sign",oslash:"Latin small letter o with stroke",ugrave:"Latin small letter u with grave accent",uacute:"Latin small letter u with acute accent",ucirc:"Latin small letter u with circumflex",uuml:"Latin small letter u with diaeresis", -yacute:"Latin small letter y with acute accent",thorn:"Latin small letter thorn",yuml:"Latin small letter y with diaeresis",OElig:"Latin capital ligature OE",oelig:"Latin small ligature oe",372:"Latin capital letter W with circumflex",374:"Latin capital letter Y with circumflex",373:"Latin small letter w with circumflex",375:"Latin small letter y with circumflex",sbquo:"Single low-9 quotation mark",8219:"Single high-reversed-9 quotation mark",bdquo:"Double low-9 quotation mark",hellip:"Horizontal ellipsis", -trade:"Trade mark sign",9658:"Black right-pointing pointer",bull:"Bullet",rarr:"Rightwards arrow",rArr:"Rightwards double arrow",hArr:"Left right double arrow",diams:"Black diamond suit",asymp:"Almost equal to"}); \ No newline at end of file diff --git a/admin/plugins/ckeditor/plugins/specialchar/dialogs/lang/ar.js b/admin/plugins/ckeditor/plugins/specialchar/dialogs/lang/ar.js deleted file mode 100644 index 0b2a258..0000000 --- a/admin/plugins/ckeditor/plugins/specialchar/dialogs/lang/ar.js +++ /dev/null @@ -1,13 +0,0 @@ -/* - Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. - For licensing, see LICENSE.md or http://ckeditor.com/license -*/ -CKEDITOR.plugins.setLang("specialchar","ar",{euro:"رمز اليورو",lsquo:"علامة تنصيص فردية علي اليسار",rsquo:"علامة تنصيص فردية علي اليمين",ldquo:"علامة تنصيص مزدوجة علي اليسار",rdquo:"علامة تنصيص مزدوجة علي اليمين",ndash:"En dash",mdash:"Em dash",iexcl:"علامة تعجب مقلوبة",cent:"رمز السنت",pound:"رمز الاسترليني",curren:"رمز العملة",yen:"رمز الين",brvbar:"شريط مقطوع",sect:"رمز القسم",uml:"Diaeresis",copy:"علامة حقوق الطبع",ordf:"Feminine ordinal indicator",laquo:"Left-pointing double angle quotation mark", -not:"ليست علامة",reg:"علامة مسجّلة",macr:"Macron",deg:"Degree sign",sup2:"Superscript two",sup3:"Superscript three",acute:"Acute accent",micro:"Micro sign",para:"Pilcrow sign",middot:"Middle dot",cedil:"Cedilla",sup1:"Superscript one",ordm:"Masculine ordinal indicator",raquo:"Right-pointing double angle quotation mark",frac14:"Vulgar fraction one quarter",frac12:"Vulgar fraction one half",frac34:"Vulgar fraction three quarters",iquest:"علامة الإستفهام غير صحيحة",Agrave:"Latin capital letter A with grave accent", -Aacute:"Latin capital letter A with acute accent",Acirc:"Latin capital letter A with circumflex",Atilde:"Latin capital letter A with tilde",Auml:"Latin capital letter A with diaeresis",Aring:"Latin capital letter A with ring above",AElig:"Latin capital letter Æ",Ccedil:"Latin capital letter C with cedilla",Egrave:"Latin capital letter E with grave accent",Eacute:"Latin capital letter E with acute accent",Ecirc:"Latin capital letter E with circumflex",Euml:"Latin capital letter E with diaeresis",Igrave:"Latin capital letter I with grave accent", -Iacute:"Latin capital letter I with acute accent",Icirc:"Latin capital letter I with circumflex",Iuml:"Latin capital letter I with diaeresis",ETH:"Latin capital letter Eth",Ntilde:"Latin capital letter N with tilde",Ograve:"Latin capital letter O with grave accent",Oacute:"Latin capital letter O with acute accent",Ocirc:"Latin capital letter O with circumflex",Otilde:"Latin capital letter O with tilde",Ouml:"Latin capital letter O with diaeresis",times:"Multiplication sign",Oslash:"Latin capital letter O with stroke", -Ugrave:"Latin capital letter U with grave accent",Uacute:"Latin capital letter U with acute accent",Ucirc:"Latin capital letter U with circumflex",Uuml:"Latin capital letter U with diaeresis",Yacute:"Latin capital letter Y with acute accent",THORN:"Latin capital letter Thorn",szlig:"Latin small letter sharp s",agrave:"Latin small letter a with grave accent",aacute:"Latin small letter a with acute accent",acirc:"Latin small letter a with circumflex",atilde:"Latin small letter a with tilde",auml:"Latin small letter a with diaeresis", -aring:"Latin small letter a with ring above",aelig:"Latin small letter æ",ccedil:"Latin small letter c with cedilla",egrave:"Latin small letter e with grave accent",eacute:"Latin small letter e with acute accent",ecirc:"Latin small letter e with circumflex",euml:"Latin small letter e with diaeresis",igrave:"Latin small letter i with grave accent",iacute:"Latin small letter i with acute accent",icirc:"Latin small letter i with circumflex",iuml:"Latin small letter i with diaeresis",eth:"Latin small letter eth", -ntilde:"Latin small letter n with tilde",ograve:"Latin small letter o with grave accent",oacute:"Latin small letter o with acute accent",ocirc:"Latin small letter o with circumflex",otilde:"Latin small letter o with tilde",ouml:"Latin small letter o with diaeresis",divide:"Division sign",oslash:"Latin small letter o with stroke",ugrave:"Latin small letter u with grave accent",uacute:"Latin small letter u with acute accent",ucirc:"Latin small letter u with circumflex",uuml:"Latin small letter u with diaeresis", -yacute:"Latin small letter y with acute accent",thorn:"Latin small letter thorn",yuml:"Latin small letter y with diaeresis",OElig:"Latin capital ligature OE",oelig:"Latin small ligature oe",372:"Latin capital letter W with circumflex",374:"Latin capital letter Y with circumflex",373:"Latin small letter w with circumflex",375:"Latin small letter y with circumflex",sbquo:"Single low-9 quotation mark",8219:"Single high-reversed-9 quotation mark",bdquo:"Double low-9 quotation mark",hellip:"Horizontal ellipsis", -trade:"Trade mark sign",9658:"Black right-pointing pointer",bull:"Bullet",rarr:"Rightwards arrow",rArr:"Rightwards double arrow",hArr:"Left right double arrow",diams:"Black diamond suit",asymp:"Almost equal to"}); \ No newline at end of file diff --git a/admin/plugins/ckeditor/plugins/specialchar/dialogs/lang/az.js b/admin/plugins/ckeditor/plugins/specialchar/dialogs/lang/az.js deleted file mode 100644 index 0639af1..0000000 --- a/admin/plugins/ckeditor/plugins/specialchar/dialogs/lang/az.js +++ /dev/null @@ -1,10 +0,0 @@ -/* - Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. - For licensing, see LICENSE.md or http://ckeditor.com/license -*/ -CKEDITOR.plugins.setLang("specialchar","az",{euro:"Avropa valyuta işarəsi",lsquo:"Sol tək dırnaq işarəsi",rsquo:"Sağ tək dırnaq işarəsi",ldquo:"Sol cüt dırnaq işarəsi",rdquo:"Sağ cüt dırnaq işarəsi",ndash:"Çıxma işarəsi",mdash:"Tire",iexcl:"Çevrilmiş nida işarəsi",cent:"Sent işarəsi",pound:"Funt sterlinq işarəsi",curren:"Valyuta işarəsi",yen:"İena işarəsi",brvbar:"Sınmış zolaq",sect:"Paraqraf işarəsi",uml:"Umlyaut",copy:"Müəllif hüquqları haqqında işarəsi",ordf:"Qadın sıra indikatoru (a)",laquo:"Sola göstərən cüt bucaqlı dırnaq", -not:"QEYRİ işarəsi",reg:"Qeyd olunmuş işarəsi",macr:"Makron",deg:"Dərəcə işarəsi",sup2:"Yuxarı indeks 2",sup3:"Yuxarı indeks 3",acute:"Vurğu işarəsi",micro:"Mikro işarəsi",para:"Abzas işarəsi",middot:"Orta nöqtə",cedil:"Tsedilla işarəsi",sup1:"Yuxarı indeks 1",ordm:"Kişi say indikatoru (o)",raquo:"Sağa göstərən cüt bucaqlı dırnaq",frac14:"Dörddə bir hissə kəsri",frac12:"Bir yarım kəsri",frac34:"Dörddə üç hissə kəsri",iquest:"Çevrilmiş sual işarəsi",Agrave:"Soldan vurğu ilə A",Aacute:"Vurğu ilə A", -Acirc:"Dam işarəsi ilə A",Atilde:"Tilda işarəsi ilə A",Auml:"Umlyaut ilə A",Aring:"Dairəli A",AElig:"Æ hərfi",Ccedil:"Tsedilla ilə C",Egrave:"Soldan vurğu ilə E",Eacute:"Vurğu ilə E",Ecirc:"Dam işarəsi ilə E",Euml:"Umlyaut ilə E",Igrave:"Soldan vurğu ilə I",Iacute:"Vurğu ilə I",Icirc:"Dam işarəsi ilə I",Iuml:"Umlyaut ilə I",ETH:"Eth latin hərfi",Ntilde:"Tilda işarəsi ilə N",Ograve:"Soldan vurğu ilə O",Oacute:"Vurğu ilə O",Ocirc:"Dam işarəsi ilə E",Otilde:"Tilda işarəsi ilə O",Ouml:"Umlyaut ilə O", -times:"Vurma işarəsi",Oslash:"Üstxəttli O",Ugrave:"Soldan vurğu ilə U",Uacute:"Vurğu ilə U",Ucirc:"Dam işarəsi ilə U",Uuml:"Umlyaut ilə U",Yacute:"Vurğu ilə Y",THORN:"Thorn hərfi",szlig:"İti s kiçik hərfi",agrave:"Soldan vurğu ilə a",aacute:"Vurğu ilə a",acirc:"Dam işarəsi ilə a",atilde:"Tilda işarəsi ilə a",auml:"Umlyaut ilə a",aring:"Dairəli a",aelig:"æ hərfi",ccedil:"ç hərfi",egrave:"Soldan vurğu ilə e",eacute:"Vurğu ilə e",ecirc:"Dam işarəsi ilə e",euml:"Umlyaut ilə e",igrave:"Soldan vurğu ilə i", -iacute:"Vurğu ilə i",icirc:"Dam işarəsi ilə i",iuml:"Umlyaut ilə i",eth:"eth kiçik hərfi",ntilde:"Tilda işarəsi ilə n",ograve:"Soldan vurğu ilə o",oacute:"Vurğu ilə o",ocirc:"Dam işarəsi ilə o",otilde:"Tilda işarəsi ilə o",ouml:"Umlyaut ilə o",divide:"Bölünmə işarəsi",oslash:"Üstxəttli o",ugrave:"Soldan vurğu ilə u",uacute:"Vurğu ilə u",ucirc:"Dam işarəsi ilə u",uuml:"Umlyaut ilə u",yacute:"Vurğu ilə y",thorn:"Thorn kiçik hərfi",yuml:"Umlyaut ilə y",OElig:"OE ligaturası",oelig:"oe ligaturası",372:"Dam işarəsi ilə W", -374:"Dam işarəsi ilə Y",373:"Dam işarəsi ilə w",375:"Dam işarəsi ilə y",sbquo:"Aşağı dırnaq",8219:"Tək yuxarı çevrilmiş dırnaq",bdquo:"Aşağı cütlü dırnaqlar",hellip:"Üfüqi ellips",trade:"Əmtəə nişanı",9658:"Sağa göstərici",bull:"Marker",rarr:"Sağa istiqamətləndirən ox",rArr:"Sağa istiqamətləndirən cütlü ox",hArr:"Hərtərəfli ox",diams:"Qara kərpic",asymp:"Təxmini barabər"}); \ No newline at end of file diff --git a/admin/plugins/ckeditor/plugins/specialchar/dialogs/lang/bg.js b/admin/plugins/ckeditor/plugins/specialchar/dialogs/lang/bg.js deleted file mode 100644 index 0ffe116..0000000 --- a/admin/plugins/ckeditor/plugins/specialchar/dialogs/lang/bg.js +++ /dev/null @@ -1,13 +0,0 @@ -/* - Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. - For licensing, see LICENSE.md or http://ckeditor.com/license -*/ -CKEDITOR.plugins.setLang("specialchar","bg",{euro:"Евро знак",lsquo:"Лява маркировка за цитат",rsquo:"Дясна маркировка за цитат",ldquo:"Лява двойна кавичка за цитат",rdquo:"Дясна двойна кавичка за цитат",ndash:"\\\\",mdash:"/",iexcl:"Обърната питанка",cent:"Знак за цент",pound:"Знак за паунд",curren:"Валутен знак",yen:"Знак за йена",brvbar:"Прекъсната линия",sect:"Знак за секция",uml:"Diaeresis",copy:"Знак за Copyright",ordf:"Feminine ordinal indicator",laquo:"Left-pointing double angle quotation mark", -not:"Not sign",reg:"Registered sign",macr:"Macron",deg:"Degree sign",sup2:"Superscript two",sup3:"Superscript three",acute:"Acute accent",micro:"Micro sign",para:"Pilcrow sign",middot:"Middle dot",cedil:"Cedilla",sup1:"Superscript one",ordm:"Masculine ordinal indicator",raquo:"Right-pointing double angle quotation mark",frac14:"Vulgar fraction one quarter",frac12:"Vulgar fraction one half",frac34:"Vulgar fraction three quarters",iquest:"Inverted question mark",Agrave:"Latin capital letter A with grave accent", -Aacute:"Latin capital letter A with acute accent",Acirc:"Latin capital letter A with circumflex",Atilde:"Latin capital letter A with tilde",Auml:"Latin capital letter A with diaeresis",Aring:"Latin capital letter A with ring above",AElig:"Latin capital letter Æ",Ccedil:"Latin capital letter C with cedilla",Egrave:"Latin capital letter E with grave accent",Eacute:"Latin capital letter E with acute accent",Ecirc:"Latin capital letter E with circumflex",Euml:"Latin capital letter E with diaeresis",Igrave:"Latin capital letter I with grave accent", -Iacute:"Latin capital letter I with acute accent",Icirc:"Latin capital letter I with circumflex",Iuml:"Latin capital letter I with diaeresis",ETH:"Latin capital letter Eth",Ntilde:"Latin capital letter N with tilde",Ograve:"Latin capital letter O with grave accent",Oacute:"Latin capital letter O with acute accent",Ocirc:"Latin capital letter O with circumflex",Otilde:"Latin capital letter O with tilde",Ouml:"Latin capital letter O with diaeresis",times:"Multiplication sign",Oslash:"Latin capital letter O with stroke", -Ugrave:"Latin capital letter U with grave accent",Uacute:"Latin capital letter U with acute accent",Ucirc:"Latin capital letter U with circumflex",Uuml:"Latin capital letter U with diaeresis",Yacute:"Latin capital letter Y with acute accent",THORN:"Latin capital letter Thorn",szlig:"Latin small letter sharp s",agrave:"Latin small letter a with grave accent",aacute:"Latin small letter a with acute accent",acirc:"Latin small letter a with circumflex",atilde:"Latin small letter a with tilde",auml:"Latin small letter a with diaeresis", -aring:"Latin small letter a with ring above",aelig:"Latin small letter æ",ccedil:"Latin small letter c with cedilla",egrave:"Latin small letter e with grave accent",eacute:"Latin small letter e with acute accent",ecirc:"Latin small letter e with circumflex",euml:"Latin small letter e with diaeresis",igrave:"Latin small letter i with grave accent",iacute:"Latin small letter i with acute accent",icirc:"Latin small letter i with circumflex",iuml:"Latin small letter i with diaeresis",eth:"Latin small letter eth", -ntilde:"Latin small letter n with tilde",ograve:"Latin small letter o with grave accent",oacute:"Latin small letter o with acute accent",ocirc:"Latin small letter o with circumflex",otilde:"Latin small letter o with tilde",ouml:"Latin small letter o with diaeresis",divide:"Division sign",oslash:"Latin small letter o with stroke",ugrave:"Latin small letter u with grave accent",uacute:"Latin small letter u with acute accent",ucirc:"Latin small letter u with circumflex",uuml:"Latin small letter u with diaeresis", -yacute:"Latin small letter y with acute accent",thorn:"Latin small letter thorn",yuml:"Latin small letter y with diaeresis",OElig:"Latin capital ligature OE",oelig:"Latin small ligature oe",372:"Latin capital letter W with circumflex",374:"Latin capital letter Y with circumflex",373:"Latin small letter w with circumflex",375:"Latin small letter y with circumflex",sbquo:"Single low-9 quotation mark",8219:"Single high-reversed-9 quotation mark",bdquo:"Double low-9 quotation mark",hellip:"Horizontal ellipsis", -trade:"Trade mark sign",9658:"Black right-pointing pointer",bull:"Bullet",rarr:"Rightwards arrow",rArr:"Rightwards double arrow",hArr:"Left right double arrow",diams:"Black diamond suit",asymp:"Almost equal to"}); \ No newline at end of file diff --git a/admin/plugins/ckeditor/plugins/specialchar/dialogs/lang/ca.js b/admin/plugins/ckeditor/plugins/specialchar/dialogs/lang/ca.js deleted file mode 100644 index 2e5c266..0000000 --- a/admin/plugins/ckeditor/plugins/specialchar/dialogs/lang/ca.js +++ /dev/null @@ -1,14 +0,0 @@ -/* - Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. - For licensing, see LICENSE.md or http://ckeditor.com/license -*/ -CKEDITOR.plugins.setLang("specialchar","ca",{euro:"Símbol d'euro",lsquo:"Signe de cometa simple esquerra",rsquo:"Signe de cometa simple dreta",ldquo:"Signe de cometa doble esquerra",rdquo:"Signe de cometa doble dreta",ndash:"Guió",mdash:"Guió baix",iexcl:"Signe d'exclamació inversa",cent:"Símbol de percentatge",pound:"Símbol de lliura",curren:"Símbol de moneda",yen:"Símbol de Yen",brvbar:"Barra trencada",sect:"Símbol de secció",uml:"Dièresi",copy:"Símbol de Copyright",ordf:"Indicador ordinal femení", -laquo:"Signe de cometes angulars esquerra",not:"Símbol de negació",reg:"Símbol registrat",macr:"Macron",deg:"Símbol de grau",sup2:"Superíndex dos",sup3:"Superíndex tres",acute:"Accent agut",micro:"Símbol de micro",para:"Símbol de calderó",middot:"Punt volat",cedil:"Ce trencada",sup1:"Superíndex u",ordm:"Indicador ordinal masculí",raquo:"Signe de cometes angulars dreta",frac14:"Fracció vulgar un quart",frac12:"Fracció vulgar una meitat",frac34:"Fracció vulgar tres quarts",iquest:"Símbol d'interrogació invertit", -Agrave:"Lletra majúscula llatina A amb accent greu",Aacute:"Lletra majúscula llatina A amb accent agut",Acirc:"Lletra majúscula llatina A amb circumflex",Atilde:"Lletra majúscula llatina A amb titlla",Auml:"Lletra majúscula llatina A amb dièresi",Aring:"Lletra majúscula llatina A amb anell superior",AElig:"Lletra majúscula llatina Æ",Ccedil:"Lletra majúscula llatina C amb ce trencada",Egrave:"Lletra majúscula llatina E amb accent greu",Eacute:"Lletra majúscula llatina E amb accent agut",Ecirc:"Lletra majúscula llatina E amb circumflex", -Euml:"Lletra majúscula llatina E amb dièresi",Igrave:"Lletra majúscula llatina I amb accent greu",Iacute:"Lletra majúscula llatina I amb accent agut",Icirc:"Lletra majúscula llatina I amb circumflex",Iuml:"Lletra majúscula llatina I amb dièresi",ETH:"Lletra majúscula llatina Eth",Ntilde:"Lletra majúscula llatina N amb titlla",Ograve:"Lletra majúscula llatina O amb accent greu",Oacute:"Lletra majúscula llatina O amb accent agut",Ocirc:"Lletra majúscula llatina O amb circumflex",Otilde:"Lletra majúscula llatina O amb titlla", -Ouml:"Lletra majúscula llatina O amb dièresi",times:"Símbol de multiplicació",Oslash:"Lletra majúscula llatina O amb barra",Ugrave:"Lletra majúscula llatina U amb accent greu",Uacute:"Lletra majúscula llatina U amb accent agut",Ucirc:"Lletra majúscula llatina U amb circumflex",Uuml:"Lletra majúscula llatina U amb dièresi",Yacute:"Lletra majúscula llatina Y amb accent agut",THORN:"Lletra majúscula llatina Thorn",szlig:"Lletra minúscula llatina sharp s",agrave:"Lletra minúscula llatina a amb accent greu", -aacute:"Lletra minúscula llatina a amb accent agut",acirc:"Lletra minúscula llatina a amb circumflex",atilde:"Lletra minúscula llatina a amb titlla",auml:"Lletra minúscula llatina a amb dièresi",aring:"Lletra minúscula llatina a amb anell superior",aelig:"Lletra minúscula llatina æ",ccedil:"Lletra minúscula llatina c amb ce trencada",egrave:"Lletra minúscula llatina e amb accent greu",eacute:"Lletra minúscula llatina e amb accent agut",ecirc:"Lletra minúscula llatina e amb circumflex",euml:"Lletra minúscula llatina e amb dièresi", -igrave:"Lletra minúscula llatina i amb accent greu",iacute:"Lletra minúscula llatina i amb accent agut",icirc:"Lletra minúscula llatina i amb circumflex",iuml:"Lletra minúscula llatina i amb dièresi",eth:"Lletra minúscula llatina eth",ntilde:"Lletra minúscula llatina n amb titlla",ograve:"Lletra minúscula llatina o amb accent greu",oacute:"Lletra minúscula llatina o amb accent agut",ocirc:"Lletra minúscula llatina o amb circumflex",otilde:"Lletra minúscula llatina o amb titlla",ouml:"Lletra minúscula llatina o amb dièresi", -divide:"Símbol de divisió",oslash:"Lletra minúscula llatina o amb barra",ugrave:"Lletra minúscula llatina u amb accent greu",uacute:"Lletra minúscula llatina u amb accent agut",ucirc:"Lletra minúscula llatina u amb circumflex",uuml:"Lletra minúscula llatina u amb dièresi",yacute:"Lletra minúscula llatina y amb accent agut",thorn:"Lletra minúscula llatina thorn",yuml:"Lletra minúscula llatina y amb dièresi",OElig:"Lligadura majúscula llatina OE",oelig:"Lligadura minúscula llatina oe",372:"Lletra majúscula llatina W amb circumflex", -374:"Lletra majúscula llatina Y amb circumflex",373:"Lletra minúscula llatina w amb circumflex",375:"Lletra minúscula llatina y amb circumflex",sbquo:"Signe de cita simple baixa-9",8219:"Signe de cita simple alta-invertida-9",bdquo:"Signe de cita doble baixa-9",hellip:"Punts suspensius",trade:"Símbol de marca registrada",9658:"Punter negre apuntant cap a la dreta",bull:"Vinyeta",rarr:"Fletxa cap a la dreta",rArr:"Doble fletxa cap a la dreta",hArr:"Doble fletxa esquerra dreta",diams:"Vestit negre diamant", -asymp:"Gairebé igual a"}); \ No newline at end of file diff --git a/admin/plugins/ckeditor/plugins/specialchar/dialogs/lang/cs.js b/admin/plugins/ckeditor/plugins/specialchar/dialogs/lang/cs.js deleted file mode 100644 index 4c048a2..0000000 --- a/admin/plugins/ckeditor/plugins/specialchar/dialogs/lang/cs.js +++ /dev/null @@ -1,13 +0,0 @@ -/* - Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. - For licensing, see LICENSE.md or http://ckeditor.com/license -*/ -CKEDITOR.plugins.setLang("specialchar","cs",{euro:"Znak eura",lsquo:"Počáteční uvozovka jednoduchá",rsquo:"Koncová uvozovka jednoduchá",ldquo:"Počáteční uvozovka dvojitá",rdquo:"Koncová uvozovka dvojitá",ndash:"En pomlčka",mdash:"Em pomlčka",iexcl:"Obrácený vykřičník",cent:"Znak centu",pound:"Znak libry",curren:"Znak měny",yen:"Znak jenu",brvbar:"Přerušená svislá čára",sect:"Znak oddílu",uml:"Přehláska",copy:"Znak copyrightu",ordf:"Ženský indikátor rodu",laquo:"Znak dvojitých lomených uvozovek vlevo", -not:"Logistický zápor",reg:"Znak registrace",macr:"Pomlčka nad",deg:"Znak stupně",sup2:"Dvojka jako horní index",sup3:"Trojka jako horní index",acute:"Čárka nad vpravo",micro:"Znak mikro",para:"Znak odstavce",middot:"Tečka uprostřed",cedil:"Ocásek vlevo",sup1:"Jednička jako horní index",ordm:"Mužský indikátor rodu",raquo:"Znak dvojitých lomených uvozovek vpravo",frac14:"Obyčejný zlomek jedna čtvrtina",frac12:"Obyčejný zlomek jedna polovina",frac34:"Obyčejný zlomek tři čtvrtiny",iquest:"Znak obráceného otazníku", -Agrave:"Velké písmeno latinky A s čárkou nad vlevo",Aacute:"Velké písmeno latinky A s čárkou nad vpravo",Acirc:"Velké písmeno latinky A s vokáněm",Atilde:"Velké písmeno latinky A s tildou",Auml:"Velké písmeno latinky A s dvěma tečkami",Aring:"Velké písmeno latinky A s kroužkem nad",AElig:"Velké písmeno latinky Æ",Ccedil:"Velké písmeno latinky C s ocáskem vlevo",Egrave:"Velké písmeno latinky E s čárkou nad vlevo",Eacute:"Velké písmeno latinky E s čárkou nad vpravo",Ecirc:"Velké písmeno latinky E s vokáněm", -Euml:"Velké písmeno latinky E s dvěma tečkami",Igrave:"Velké písmeno latinky I s čárkou nad vlevo",Iacute:"Velké písmeno latinky I s čárkou nad vpravo",Icirc:"Velké písmeno latinky I s vokáněm",Iuml:"Velké písmeno latinky I s dvěma tečkami",ETH:"Velké písmeno latinky Eth",Ntilde:"Velké písmeno latinky N s tildou",Ograve:"Velké písmeno latinky O s čárkou nad vlevo",Oacute:"Velké písmeno latinky O s čárkou nad vpravo",Ocirc:"Velké písmeno latinky O s vokáněm",Otilde:"Velké písmeno latinky O s tildou", -Ouml:"Velké písmeno latinky O s dvěma tečkami",times:"Znak násobení",Oslash:"Velké písmeno latinky O přeškrtnuté",Ugrave:"Velké písmeno latinky U s čárkou nad vlevo",Uacute:"Velké písmeno latinky U s čárkou nad vpravo",Ucirc:"Velké písmeno latinky U s vokáněm",Uuml:"Velké písmeno latinky U s dvěma tečkami",Yacute:"Velké písmeno latinky Y s čárkou nad vpravo",THORN:"Velké písmeno latinky Thorn",szlig:"Malé písmeno latinky ostré s",agrave:"Malé písmeno latinky a s čárkou nad vlevo",aacute:"Malé písmeno latinky a s čárkou nad vpravo", -acirc:"Malé písmeno latinky a s vokáněm",atilde:"Malé písmeno latinky a s tildou",auml:"Malé písmeno latinky a s dvěma tečkami",aring:"Malé písmeno latinky a s kroužkem nad",aelig:"Malé písmeno latinky ae",ccedil:"Malé písmeno latinky c s ocáskem vlevo",egrave:"Malé písmeno latinky e s čárkou nad vlevo",eacute:"Malé písmeno latinky e s čárkou nad vpravo",ecirc:"Malé písmeno latinky e s vokáněm",euml:"Malé písmeno latinky e s dvěma tečkami",igrave:"Malé písmeno latinky i s čárkou nad vlevo",iacute:"Malé písmeno latinky i s čárkou nad vpravo", -icirc:"Malé písmeno latinky i s vokáněm",iuml:"Malé písmeno latinky i s dvěma tečkami",eth:"Malé písmeno latinky eth",ntilde:"Malé písmeno latinky n s tildou",ograve:"Malé písmeno latinky o s čárkou nad vlevo",oacute:"Malé písmeno latinky o s čárkou nad vpravo",ocirc:"Malé písmeno latinky o s vokáněm",otilde:"Malé písmeno latinky o s tildou",ouml:"Malé písmeno latinky o s dvěma tečkami",divide:"Znak dělení",oslash:"Malé písmeno latinky o přeškrtnuté",ugrave:"Malé písmeno latinky u s čárkou nad vlevo", -uacute:"Malé písmeno latinky u s čárkou nad vpravo",ucirc:"Malé písmeno latinky u s vokáněm",uuml:"Malé písmeno latinky u s dvěma tečkami",yacute:"Malé písmeno latinky y s čárkou nad vpravo",thorn:"Malé písmeno latinky thorn",yuml:"Malé písmeno latinky y s dvěma tečkami",OElig:"Velká ligatura latinky OE",oelig:"Malá ligatura latinky OE",372:"Velké písmeno latinky W s vokáněm",374:"Velké písmeno latinky Y s vokáněm",373:"Malé písmeno latinky w s vokáněm",375:"Malé písmeno latinky y s vokáněm",sbquo:"Dolní 9 uvozovka jednoduchá", -8219:"Horní obrácená 9 uvozovka jednoduchá",bdquo:"Dolní 9 uvozovka dvojitá",hellip:"Trojtečkový úvod",trade:"Obchodní značka",9658:"Černý ukazatel směřující vpravo",bull:"Kolečko",rarr:"Šipka vpravo",rArr:"Dvojitá šipka vpravo",hArr:"Dvojitá šipka vlevo a vpravo",diams:"Černé piky",asymp:"Téměř se rovná"}); \ No newline at end of file diff --git a/admin/plugins/ckeditor/plugins/specialchar/dialogs/lang/cy.js b/admin/plugins/ckeditor/plugins/specialchar/dialogs/lang/cy.js deleted file mode 100644 index 630ae31..0000000 --- a/admin/plugins/ckeditor/plugins/specialchar/dialogs/lang/cy.js +++ /dev/null @@ -1,14 +0,0 @@ -/* - Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. - For licensing, see LICENSE.md or http://ckeditor.com/license -*/ -CKEDITOR.plugins.setLang("specialchar","cy",{euro:"Arwydd yr Ewro",lsquo:"Dyfynnod chwith unigol",rsquo:"Dyfynnod dde unigol",ldquo:"Dyfynnod chwith dwbl",rdquo:"Dyfynnod dde dwbl",ndash:"Cysylltnod en",mdash:"Cysylltnod em",iexcl:"Ebychnod gwrthdro",cent:"Arwydd sent",pound:"Arwydd punt",curren:"Arwydd arian cyfred",yen:"Arwydd yen",brvbar:"Bar toriedig",sect:"Arwydd adran",uml:"Didolnod",copy:"Arwydd hawlfraint",ordf:"Dangosydd benywaidd",laquo:"Dyfynnod dwbl ar ongl i'r chwith",not:"Arwydd Nid", -reg:"Arwydd cofrestredig",macr:"Macron",deg:"Arwydd gradd",sup2:"Dau uwchsgript",sup3:"Tri uwchsgript",acute:"Acen ddyrchafedig",micro:"Arwydd micro",para:"Arwydd pilcrow",middot:"Dot canol",cedil:"Sedila",sup1:"Un uwchsgript",ordm:"Dangosydd gwrywaidd",raquo:"Dyfynnod dwbl ar ongl i'r dde",frac14:"Ffracsiwn cyffredin un cwarter",frac12:"Ffracsiwn cyffredin un hanner",frac34:"Ffracsiwn cyffredin tri chwarter",iquest:"Marc cwestiwn gwrthdroëdig",Agrave:"Priflythyren A Lladinaidd gydag acen ddisgynedig", -Aacute:"Priflythyren A Lladinaidd gydag acen ddyrchafedig",Acirc:"Priflythyren A Lladinaidd gydag acen grom",Atilde:"Priflythyren A Lladinaidd gyda thild",Auml:"Priflythyren A Lladinaidd gyda didolnod",Aring:"Priflythyren A Lladinaidd gyda chylch uwchben",AElig:"Priflythyren Æ Lladinaidd",Ccedil:"Priflythyren C Lladinaidd gyda sedila",Egrave:"Priflythyren E Lladinaidd gydag acen ddisgynedig",Eacute:"Priflythyren E Lladinaidd gydag acen ddyrchafedig",Ecirc:"Priflythyren E Lladinaidd gydag acen grom", -Euml:"Priflythyren E Lladinaidd gyda didolnod",Igrave:"Priflythyren I Lladinaidd gydag acen ddisgynedig",Iacute:"Priflythyren I Lladinaidd gydag acen ddyrchafedig",Icirc:"Priflythyren I Lladinaidd gydag acen grom",Iuml:"Priflythyren I Lladinaidd gyda didolnod",ETH:"Priflythyren Eth",Ntilde:"Priflythyren N Lladinaidd gyda thild",Ograve:"Priflythyren O Lladinaidd gydag acen ddisgynedig",Oacute:"Priflythyren O Lladinaidd gydag acen ddyrchafedig",Ocirc:"Priflythyren O Lladinaidd gydag acen grom",Otilde:"Priflythyren O Lladinaidd gyda thild", -Ouml:"Priflythyren O Lladinaidd gyda didolnod",times:"Arwydd lluosi",Oslash:"Priflythyren O Lladinaidd gyda strôc",Ugrave:"Priflythyren U Lladinaidd gydag acen ddisgynedig",Uacute:"Priflythyren U Lladinaidd gydag acen ddyrchafedig",Ucirc:"Priflythyren U Lladinaidd gydag acen grom",Uuml:"Priflythyren U Lladinaidd gyda didolnod",Yacute:"Priflythyren Y Lladinaidd gydag acen ddyrchafedig",THORN:"Priflythyren Thorn",szlig:"Llythyren s fach Lladinaidd siarp ",agrave:"Llythyren a fach Lladinaidd gydag acen ddisgynedig", -aacute:"Llythyren a fach Lladinaidd gydag acen ddyrchafedig",acirc:"Llythyren a fach Lladinaidd gydag acen grom",atilde:"Llythyren a fach Lladinaidd gyda thild",auml:"Llythyren a fach Lladinaidd gyda didolnod",aring:"Llythyren a fach Lladinaidd gyda chylch uwchben",aelig:"Llythyren æ fach Lladinaidd",ccedil:"Llythyren c fach Lladinaidd gyda sedila",egrave:"Llythyren e fach Lladinaidd gydag acen ddisgynedig",eacute:"Llythyren e fach Lladinaidd gydag acen ddyrchafedig",ecirc:"Llythyren e fach Lladinaidd gydag acen grom", -euml:"Llythyren e fach Lladinaidd gyda didolnod",igrave:"Llythyren i fach Lladinaidd gydag acen ddisgynedig",iacute:"Llythyren i fach Lladinaidd gydag acen ddyrchafedig",icirc:"Llythyren i fach Lladinaidd gydag acen grom",iuml:"Llythyren i fach Lladinaidd gyda didolnod",eth:"Llythyren eth fach",ntilde:"Llythyren n fach Lladinaidd gyda thild",ograve:"Llythyren o fach Lladinaidd gydag acen ddisgynedig",oacute:"Llythyren o fach Lladinaidd gydag acen ddyrchafedig",ocirc:"Llythyren o fach Lladinaidd gydag acen grom", -otilde:"Llythyren o fach Lladinaidd gyda thild",ouml:"Llythyren o fach Lladinaidd gyda didolnod",divide:"Arwydd rhannu",oslash:"Llythyren o fach Lladinaidd gyda strôc",ugrave:"Llythyren u fach Lladinaidd gydag acen ddisgynedig",uacute:"Llythyren u fach Lladinaidd gydag acen ddyrchafedig",ucirc:"Llythyren u fach Lladinaidd gydag acen grom",uuml:"Llythyren u fach Lladinaidd gyda didolnod",yacute:"Llythyren y fach Lladinaidd gydag acen ddisgynedig",thorn:"Llythyren o fach Lladinaidd gyda strôc",yuml:"Llythyren y fach Lladinaidd gyda didolnod", -OElig:"Priflythyren cwlwm OE Lladinaidd ",oelig:"Priflythyren cwlwm oe Lladinaidd ",372:"Priflythyren W gydag acen grom",374:"Priflythyren Y gydag acen grom",373:"Llythyren w fach gydag acen grom",375:"Llythyren y fach gydag acen grom",sbquo:"Dyfynnod sengl 9-isel",8219:"Dyfynnod sengl 9-uchel cildro",bdquo:"Dyfynnod dwbl 9-isel",hellip:"Coll geiriau llorweddol",trade:"Arwydd marc masnachol",9658:"Pwyntydd du i'r dde",bull:"Bwled",rarr:"Saeth i'r dde",rArr:"Saeth ddwbl i'r dde",hArr:"Saeth ddwbl i'r chwith", -diams:"Siwt diemwnt du",asymp:"Bron yn hafal iddo"}); \ No newline at end of file diff --git a/admin/plugins/ckeditor/plugins/specialchar/dialogs/lang/da.js b/admin/plugins/ckeditor/plugins/specialchar/dialogs/lang/da.js deleted file mode 100644 index fee3630..0000000 --- a/admin/plugins/ckeditor/plugins/specialchar/dialogs/lang/da.js +++ /dev/null @@ -1,11 +0,0 @@ -/* - Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. - For licensing, see LICENSE.md or http://ckeditor.com/license -*/ -CKEDITOR.plugins.setLang("specialchar","da",{euro:"Euro-tegn",lsquo:"Venstre enkelt anførselstegn",rsquo:"Højre enkelt anførselstegn",ldquo:"Venstre dobbelt anførselstegn",rdquo:"Højre dobbelt anførselstegn",ndash:"Bindestreg",mdash:"Tankestreg",iexcl:"Omvendt udråbstegn",cent:"Cent-tegn",pound:"Pund-tegn",curren:"Kurs-tegn",yen:"Yen-tegn",brvbar:"Brudt streg",sect:"Paragraftegn",uml:"Umlaut",copy:"Copyright-tegn",ordf:"Feminin ordinal indikator",laquo:"Venstre dobbel citations-vinkel",not:"Negation", -reg:"Registreret varemærke tegn",macr:"Macron",deg:"Grad-tegn",sup2:"Superscript to",sup3:"Superscript tre",acute:"Prim-tegn",micro:"Mikro-tegn",para:"Pilcrow-tegn",middot:"Punkt-tegn",cedil:"Cedille",sup1:"Superscript et",ordm:"Maskulin ordinal indikator",raquo:"Højre dobbel citations-vinkel",frac14:"En fjerdedel",frac12:"En halv",frac34:"En tredjedel",iquest:"Omvendt udråbstegn",Agrave:"Stort A med accent grave",Aacute:"Stort A med accent aigu",Acirc:"Stort A med cirkumfleks",Atilde:"Stort A med tilde", -Auml:"Stort A med umlaut",Aring:"Stort Å",AElig:"Latin capital letter Æ",Ccedil:"Stort C med cedille",Egrave:"Stort E med accent grave",Eacute:"Stort E med accent aigu",Ecirc:"Stort E med cirkumfleks",Euml:"Stort E med umlaut",Igrave:"Stort I med accent grave",Iacute:"Stort I med accent aigu",Icirc:"Stort I med cirkumfleks",Iuml:"Stort I med umlaut",ETH:"Stort Ð (edd)",Ntilde:"Stort N med tilde",Ograve:"Stort O med accent grave",Oacute:"Stort O med accent aigu",Ocirc:"Stort O med cirkumfleks",Otilde:"Stort O med tilde", -Ouml:"Stort O med umlaut",times:"Gange-tegn",Oslash:"Stort Ø",Ugrave:"Stort U med accent grave",Uacute:"Stort U med accent aigu",Ucirc:"Stort U med cirkumfleks",Uuml:"Stort U med umlaut",Yacute:"Stort Y med accent aigu",THORN:"Stort Thorn",szlig:"Lille eszett",agrave:"Lille a med accent grave",aacute:"Lille a med accent aigu",acirc:"Lille a med cirkumfleks",atilde:"Lille a med tilde",auml:"Lille a med umlaut",aring:"Lilla å",aelig:"Lille æ",ccedil:"Lille c med cedille",egrave:"Lille e med accent grave", -eacute:"Lille e med accent aigu",ecirc:"Lille e med cirkumfleks",euml:"Lille e med umlaut",igrave:"Lille i med accent grave",iacute:"Lille i med accent aigu",icirc:"Lille i med cirkumfleks",iuml:"Lille i med umlaut",eth:"Lille ð (edd)",ntilde:"Lille n med tilde",ograve:"Lille o med accent grave",oacute:"Lille o med accent aigu",ocirc:"Lille o med cirkumfleks",otilde:"Lille o med tilde",ouml:"Lille o med umlaut",divide:"Divisions-tegn",oslash:"Lille ø",ugrave:"Lille u med accent grave",uacute:"Lille u med accent aigu", -ucirc:"Lille u med cirkumfleks",uuml:"Lille u med umlaut",yacute:"Lille y med accent aigu",thorn:"Lille thorn",yuml:"Lille y med umlaut",OElig:"Stort Æ",oelig:"Lille æ",372:"Stort W med cirkumfleks",374:"Stort Y med cirkumfleks",373:"Lille w med cirkumfleks",375:"Lille y med cirkumfleks",sbquo:"Lavt enkelt 9-komma citationstegn",8219:"Højt enkelt 9-komma citationstegn",bdquo:"Dobbelt 9-komma citationstegn",hellip:"Tre horizontale prikker",trade:"Varemærke-tegn",9658:"Sort højre pil",bull:"Punkt", -rarr:"Højre pil",rArr:"Højre dobbelt pil",hArr:"Venstre højre dobbelt pil",diams:"Sort diamant",asymp:"Næsten lig med"}); \ No newline at end of file diff --git a/admin/plugins/ckeditor/plugins/specialchar/dialogs/lang/de-ch.js b/admin/plugins/ckeditor/plugins/specialchar/dialogs/lang/de-ch.js deleted file mode 100644 index e4e5907..0000000 --- a/admin/plugins/ckeditor/plugins/specialchar/dialogs/lang/de-ch.js +++ /dev/null @@ -1,13 +0,0 @@ -/* - Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. - For licensing, see LICENSE.md or http://ckeditor.com/license -*/ -CKEDITOR.plugins.setLang("specialchar","de-ch",{euro:"Euro Zeichen",lsquo:"Hochkomma links",rsquo:"Hochkomma rechts",ldquo:"Anführungszeichen links",rdquo:"Anführungszeichen rechts",ndash:"Kleiner Strich",mdash:"Mittlerer Strich",iexcl:"Invertiertes Ausrufezeichen",cent:"Cent-Zeichen",pound:"Pfund-Zeichen",curren:"Währungszeichen",yen:"Yen",brvbar:"Gestrichelte Linie",sect:"Paragrafenzeichen",uml:"Diäresis",copy:"Copyright-Zeichen",ordf:"Feminine ordinal Anzeige",laquo:"Nach links zeigenden Doppel-Winkel Anführungszeichen", -not:"Not-Zeichen",reg:"Registriert-Zeichen",macr:"Längezeichen",deg:"Grad-Zeichen",sup2:"Hoch 2",sup3:"Hoch 3",acute:"Akzentzeichen ",micro:"Mikro-Zeichen",para:"Pilcrow-Zeichen",middot:"Mittelpunkt",cedil:"Cedilla",sup1:"Hoch 1",ordm:"Männliche Ordnungszahl Anzeige",raquo:"Nach rechts zeigenden Doppel-Winkel Anführungszeichen",frac14:"ein Viertel",frac12:"Hälfte",frac34:"Dreiviertel",iquest:"Umgekehrtes Fragezeichen",Agrave:"Lateinischer Buchstabe A mit AkzentGrave",Aacute:"Lateinischer Buchstabe A mit Akutakzent", -Acirc:"Lateinischer Buchstabe A mit Zirkumflex",Atilde:"Lateinischer Buchstabe A mit Tilde",Auml:"Lateinischer Buchstabe A mit Trema",Aring:"Lateinischer Buchstabe A mit Ring oben",AElig:"Lateinischer Buchstabe Æ",Ccedil:"Lateinischer Buchstabe C mit Cedille",Egrave:"Lateinischer Buchstabe E mit AkzentGrave",Eacute:"Lateinischer Buchstabe E mit Akutakzent",Ecirc:"Lateinischer Buchstabe E mit Zirkumflex",Euml:"Lateinischer Buchstabe E Trema",Igrave:"Lateinischer Buchstabe I mit AkzentGrave",Iacute:"Lateinischer Buchstabe I mit Akutakzent", -Icirc:"Lateinischer Buchstabe I mit Zirkumflex",Iuml:"Lateinischer Buchstabe I mit Trema",ETH:"Lateinischer Buchstabe Eth",Ntilde:"Lateinischer Buchstabe N mit Tilde",Ograve:"Lateinischer Buchstabe O mit AkzentGrave",Oacute:"Lateinischer Buchstabe O mit Akutakzent",Ocirc:"Lateinischer Buchstabe O mit Zirkumflex",Otilde:"Lateinischer Buchstabe O mit Tilde",Ouml:"Lateinischer Buchstabe O mit Trema",times:"Multiplikation",Oslash:"Lateinischer Buchstabe O durchgestrichen",Ugrave:"Lateinischer Buchstabe U mit Akzentgrave", -Uacute:"Lateinischer Buchstabe U mit Akutakzent",Ucirc:"Lateinischer Buchstabe U mit Zirkumflex",Uuml:"Lateinischer Buchstabe a mit Trema",Yacute:"Lateinischer Buchstabe a mit Akzent",THORN:"Lateinischer Buchstabe mit Dorn",szlig:"Kleiner lateinischer Buchstabe scharfe s",agrave:"Kleiner lateinischer Buchstabe a mit Accent grave",aacute:"Kleiner lateinischer Buchstabe a mit Akut",acirc:"Lateinischer Buchstabe a mit Zirkumflex",atilde:"Lateinischer Buchstabe a mit Tilde",auml:"Kleiner lateinischer Buchstabe a mit Trema", -aring:"Kleiner lateinischer Buchstabe a mit Ring oben",aelig:"Lateinischer Buchstabe æ",ccedil:"Kleiner lateinischer Buchstabe c mit Cedille",egrave:"Kleiner lateinischer Buchstabe e mit Accent grave",eacute:"Kleiner lateinischer Buchstabe e mit Akut",ecirc:"Kleiner lateinischer Buchstabe e mit Zirkumflex",euml:"Kleiner lateinischer Buchstabe e mit Trema",igrave:"Kleiner lateinischer Buchstabe i mit AkzentGrave",iacute:"Kleiner lateinischer Buchstabe i mit Akzent",icirc:"Kleiner lateinischer Buchstabe i mit Zirkumflex", -iuml:"Kleiner lateinischer Buchstabe i mit Trema",eth:"Kleiner lateinischer Buchstabe eth",ntilde:"Kleiner lateinischer Buchstabe n mit Tilde",ograve:"Kleiner lateinischer Buchstabe o mit Accent grave",oacute:"Kleiner lateinischer Buchstabe o mit Akzent",ocirc:"Kleiner lateinischer Buchstabe o mit Zirkumflex",otilde:"Lateinischer Buchstabe i mit Tilde",ouml:"Kleiner lateinischer Buchstabe o mit Trema",divide:"Divisionszeichen",oslash:"Kleiner lateinischer Buchstabe o durchgestrichen",ugrave:"Kleiner lateinischer Buchstabe u mit Accent grave", -uacute:"Kleiner lateinischer Buchstabe u mit Akut",ucirc:"Kleiner lateinischer Buchstabe u mit Zirkumflex",uuml:"Kleiner lateinischer Buchstabe u mit Trema",yacute:"Kleiner lateinischer Buchstabe y mit Akut",thorn:"Kleiner lateinischer Buchstabe Dorn",yuml:"Kleiner lateinischer Buchstabe y mit Trema",OElig:"Lateinischer Buchstabe Ligatur OE",oelig:"Kleiner lateinischer Buchstabe Ligatur OE",372:"Lateinischer Buchstabe W mit Zirkumflex",374:"Lateinischer Buchstabe Y mit Zirkumflex",373:"Kleiner lateinischer Buchstabe w mit Zirkumflex", -375:"Kleiner lateinischer Buchstabe y mit Zirkumflex",sbquo:"Tiefergestelltes Komma",8219:"Rumgedrehtes Komma",bdquo:"Doppeltes Anführungszeichen unten",hellip:"horizontale Auslassungspunkte",trade:"Handelszeichen",9658:"Dreickspfeil rechts",bull:"Bullet",rarr:"Pfeil rechts",rArr:"Doppelpfeil rechts",hArr:"Doppelpfeil links",diams:"Karo",asymp:"Ungefähr"}); \ No newline at end of file diff --git a/admin/plugins/ckeditor/plugins/specialchar/dialogs/lang/de.js b/admin/plugins/ckeditor/plugins/specialchar/dialogs/lang/de.js deleted file mode 100644 index 4276397..0000000 --- a/admin/plugins/ckeditor/plugins/specialchar/dialogs/lang/de.js +++ /dev/null @@ -1,13 +0,0 @@ -/* - Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. - For licensing, see LICENSE.md or http://ckeditor.com/license -*/ -CKEDITOR.plugins.setLang("specialchar","de",{euro:"Euro Zeichen",lsquo:"Hochkomma links",rsquo:"Hochkomma rechts",ldquo:"Anführungszeichen links",rdquo:"Anführungszeichen rechts",ndash:"Kleiner Strich",mdash:"Mittlerer Strich",iexcl:"Invertiertes Ausrufezeichen",cent:"Cent-Zeichen",pound:"Pfund-Zeichen",curren:"Währungszeichen",yen:"Yen",brvbar:"Gestrichelte Linie",sect:"Paragrafenzeichen",uml:"Diäresis",copy:"Copyright-Zeichen",ordf:"Feminine ordinal Anzeige",laquo:"Nach links zeigenden Doppel-Winkel Anführungszeichen", -not:"Not-Zeichen",reg:"Registriert-Zeichen",macr:"Längezeichen",deg:"Grad-Zeichen",sup2:"Hoch 2",sup3:"Hoch 3",acute:"Akzentzeichen ",micro:"Mikro-Zeichen",para:"Pilcrow-Zeichen",middot:"Mittelpunkt",cedil:"Cedilla",sup1:"Hoch 1",ordm:"Männliche Ordnungszahl Anzeige",raquo:"Nach rechts zeigenden Doppel-Winkel Anführungszeichen",frac14:"ein Viertel",frac12:"Hälfte",frac34:"Dreiviertel",iquest:"Umgekehrtes Fragezeichen",Agrave:"Lateinischer Buchstabe A mit AkzentGrave",Aacute:"Lateinischer Buchstabe A mit Akutakzent", -Acirc:"Lateinischer Buchstabe A mit Zirkumflex",Atilde:"Lateinischer Buchstabe A mit Tilde",Auml:"Lateinischer Buchstabe A mit Trema",Aring:"Lateinischer Buchstabe A mit Ring oben",AElig:"Lateinischer Buchstabe Æ",Ccedil:"Lateinischer Buchstabe C mit Cedille",Egrave:"Lateinischer Buchstabe E mit AkzentGrave",Eacute:"Lateinischer Buchstabe E mit Akutakzent",Ecirc:"Lateinischer Buchstabe E mit Zirkumflex",Euml:"Lateinischer Buchstabe E Trema",Igrave:"Lateinischer Buchstabe I mit AkzentGrave",Iacute:"Lateinischer Buchstabe I mit Akutakzent", -Icirc:"Lateinischer Buchstabe I mit Zirkumflex",Iuml:"Lateinischer Buchstabe I mit Trema",ETH:"Lateinischer Buchstabe Eth",Ntilde:"Lateinischer Buchstabe N mit Tilde",Ograve:"Lateinischer Buchstabe O mit AkzentGrave",Oacute:"Lateinischer Buchstabe O mit Akutakzent",Ocirc:"Lateinischer Buchstabe O mit Zirkumflex",Otilde:"Lateinischer Buchstabe O mit Tilde",Ouml:"Lateinischer Buchstabe O mit Trema",times:"Multiplikation",Oslash:"Lateinischer Buchstabe O durchgestrichen",Ugrave:"Lateinischer Buchstabe U mit Akzentgrave", -Uacute:"Lateinischer Buchstabe U mit Akutakzent",Ucirc:"Lateinischer Buchstabe U mit Zirkumflex",Uuml:"Lateinischer Buchstabe a mit Trema",Yacute:"Lateinischer Buchstabe a mit Akzent",THORN:"Lateinischer Buchstabe mit Dorn",szlig:"Kleiner lateinischer Buchstabe scharfe s",agrave:"Kleiner lateinischer Buchstabe a mit Accent grave",aacute:"Kleiner lateinischer Buchstabe a mit Akut",acirc:"Lateinischer Buchstabe a mit Zirkumflex",atilde:"Lateinischer Buchstabe a mit Tilde",auml:"Kleiner lateinischer Buchstabe a mit Trema", -aring:"Kleiner lateinischer Buchstabe a mit Ring oben",aelig:"Lateinischer Buchstabe æ",ccedil:"Kleiner lateinischer Buchstabe c mit Cedille",egrave:"Kleiner lateinischer Buchstabe e mit Accent grave",eacute:"Kleiner lateinischer Buchstabe e mit Akut",ecirc:"Kleiner lateinischer Buchstabe e mit Zirkumflex",euml:"Kleiner lateinischer Buchstabe e mit Trema",igrave:"Kleiner lateinischer Buchstabe i mit AkzentGrave",iacute:"Kleiner lateinischer Buchstabe i mit Akzent",icirc:"Kleiner lateinischer Buchstabe i mit Zirkumflex", -iuml:"Kleiner lateinischer Buchstabe i mit Trema",eth:"Kleiner lateinischer Buchstabe eth",ntilde:"Kleiner lateinischer Buchstabe n mit Tilde",ograve:"Kleiner lateinischer Buchstabe o mit Accent grave",oacute:"Kleiner lateinischer Buchstabe o mit Akzent",ocirc:"Kleiner lateinischer Buchstabe o mit Zirkumflex",otilde:"Lateinischer Buchstabe i mit Tilde",ouml:"Kleiner lateinischer Buchstabe o mit Trema",divide:"Divisionszeichen",oslash:"Kleiner lateinischer Buchstabe o durchgestrichen",ugrave:"Kleiner lateinischer Buchstabe u mit Accent grave", -uacute:"Kleiner lateinischer Buchstabe u mit Akut",ucirc:"Kleiner lateinischer Buchstabe u mit Zirkumflex",uuml:"Kleiner lateinischer Buchstabe u mit Trema",yacute:"Kleiner lateinischer Buchstabe y mit Akut",thorn:"Kleiner lateinischer Buchstabe Dorn",yuml:"Kleiner lateinischer Buchstabe y mit Trema",OElig:"Lateinischer Buchstabe Ligatur OE",oelig:"Kleiner lateinischer Buchstabe Ligatur OE",372:"Lateinischer Buchstabe W mit Zirkumflex",374:"Lateinischer Buchstabe Y mit Zirkumflex",373:"Kleiner lateinischer Buchstabe w mit Zirkumflex", -375:"Kleiner lateinischer Buchstabe y mit Zirkumflex",sbquo:"Tiefergestelltes Komma",8219:"Rumgedrehtes Komma",bdquo:"Doppeltes Anführungszeichen unten",hellip:"horizontale Auslassungspunkte",trade:"Handelszeichen",9658:"Dreickspfeil rechts",bull:"Bullet",rarr:"Pfeil rechts",rArr:"Doppelpfeil rechts",hArr:"Doppelpfeil links",diams:"Karo",asymp:"Ungefähr"}); \ No newline at end of file diff --git a/admin/plugins/ckeditor/plugins/specialchar/dialogs/lang/el.js b/admin/plugins/ckeditor/plugins/specialchar/dialogs/lang/el.js deleted file mode 100644 index dc1d28a..0000000 --- a/admin/plugins/ckeditor/plugins/specialchar/dialogs/lang/el.js +++ /dev/null @@ -1,13 +0,0 @@ -/* - Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. - For licensing, see LICENSE.md or http://ckeditor.com/license -*/ -CKEDITOR.plugins.setLang("specialchar","el",{euro:"Σύμβολο Ευρώ",lsquo:"Αριστερός χαρακτήρας μονού εισαγωγικού",rsquo:"Δεξιός χαρακτήρας μονού εισαγωγικού",ldquo:"Αριστερός χαρακτήρας ευθύγραμμων εισαγωγικών",rdquo:"Δεξιός χαρακτήρας ευθύγραμμων εισαγωγικών",ndash:"Παύλα en",mdash:"Παύλα em",iexcl:"Ανάποδο θαυμαστικό",cent:"Σύμβολο σεντ",pound:"Σύμβολο λίρας",curren:"Σύμβολο συναλλαγματικής μονάδας",yen:"Σύμβολο Γιεν",brvbar:"Σπασμένη μπάρα",sect:"Σύμβολο τμήματος",uml:"Διαίρεση",copy:"Σύμβολο πνευματικών δικαιωμάτων", -ordf:"Θηλυκός τακτικός δείκτης",laquo:"Γωνιώδη εισαγωγικά αριστερής κατάδειξης",not:"Σύμβολο άρνησης",reg:"Σύμβολο σημάτων κατατεθέν",macr:"Μακρόν",deg:"Σύμβολο βαθμού",sup2:"Εκτεθειμένο δύο",sup3:"Εκτεθειμένο τρία",acute:"Οξεία",micro:"Σύμβολο μικρού",para:"Σύμβολο παραγράφου",middot:"Μέση τελεία",cedil:"Υπογεγραμμένη",sup1:"Εκτεθειμένο ένα",ordm:"Αρσενικός τακτικός δείκτης",raquo:"Γωνιώδη εισαγωγικά δεξιάς κατάδειξης",frac14:"Γνήσιο κλάσμα ενός τετάρτου",frac12:"Γνήσιο κλάσμα ενός δεύτερου",frac34:"Γνήσιο κλάσμα τριών τετάρτων", -iquest:"Ανάποδο θαυμαστικό",Agrave:"Λατινικό κεφαλαίο γράμμα A με βαρεία",Aacute:"Λατινικό κεφαλαίο γράμμα A με οξεία",Acirc:"Λατινικό κεφαλαίο γράμμα A με περισπωμένη",Atilde:"Λατινικό κεφαλαίο γράμμα A με περισπωμένη",Auml:"Λατινικό κεφαλαίο γράμμα A με διαλυτικά",Aring:"Λατινικό κεφαλαίο γράμμα A με δακτύλιο επάνω",AElig:"Λατινικό κεφαλαίο γράμμα Æ",Ccedil:"Λατινικό κεφαλαίο γράμμα C με υπογεγραμμένη",Egrave:"Λατινικό κεφαλαίο γράμμα E με βαρεία",Eacute:"Λατινικό κεφαλαίο γράμμα E με οξεία",Ecirc:"Λατινικό κεφαλαίο γράμμα Ε με περισπωμένη ", -Euml:"Λατινικό κεφαλαίο γράμμα Ε με διαλυτικά",Igrave:"Λατινικό κεφαλαίο γράμμα I με βαρεία",Iacute:"Λατινικό κεφαλαίο γράμμα I με οξεία",Icirc:"Λατινικό κεφαλαίο γράμμα I με περισπωμένη",Iuml:"Λατινικό κεφαλαίο γράμμα I με διαλυτικά ",ETH:"Λατινικό κεφαλαίο γράμμα Eth",Ntilde:"Λατινικό κεφαλαίο γράμμα N με περισπωμένη",Ograve:"Λατινικό κεφαλαίο γράμμα O με βαρεία",Oacute:"Λατινικό κεφαλαίο γράμμα O με οξεία",Ocirc:"Λατινικό κεφαλαίο γράμμα O με περισπωμένη ",Otilde:"Λατινικό κεφαλαίο γράμμα O με περισπωμένη", -Ouml:"Λατινικό κεφαλαίο γράμμα O με διαλυτικά",times:"Σύμβολο πολλαπλασιασμού",Oslash:"Λατινικό κεφαλαίο γράμμα O με μολυβιά",Ugrave:"Λατινικό κεφαλαίο γράμμα U με βαρεία",Uacute:"Λατινικό κεφαλαίο γράμμα U με οξεία",Ucirc:"Λατινικό κεφαλαίο γράμμα U με περισπωμένη",Uuml:"Λατινικό κεφαλαίο γράμμα U με διαλυτικά",Yacute:"Λατινικό κεφαλαίο γράμμα Y με οξεία",THORN:"Λατινικό κεφαλαίο γράμμα Thorn",szlig:"Λατινικό μικρό γράμμα απότομο s",agrave:"Λατινικό μικρό γράμμα a με βαρεία",aacute:"Λατινικό μικρό γράμμα a με οξεία", -acirc:"Λατινικό μικρό γράμμα a με περισπωμένη",atilde:"Λατινικό μικρό γράμμα a με περισπωμένη",auml:"Λατινικό μικρό γράμμα a με διαλυτικά",aring:"Λατινικό μικρό γράμμα a με δακτύλιο πάνω",aelig:"Λατινικό μικρό γράμμα æ",ccedil:"Λατινικό μικρό γράμμα c με υπογεγραμμένη",egrave:"Λατινικό μικρό γράμμα ε με βαρεία",eacute:"Λατινικό μικρό γράμμα e με οξεία",ecirc:"Λατινικό μικρό γράμμα e με περισπωμένη",euml:"Λατινικό μικρό γράμμα e με διαλυτικά",igrave:"Λατινικό μικρό γράμμα i με βαρεία",iacute:"Λατινικό μικρό γράμμα i με οξεία", -icirc:"Λατινικό μικρό γράμμα i με περισπωμένη",iuml:"Λατινικό μικρό γράμμα i με διαλυτικά",eth:"Λατινικό μικρό γράμμα eth",ntilde:"Λατινικό μικρό γράμμα n με περισπωμένη",ograve:"Λατινικό μικρό γράμμα o με βαρεία",oacute:"Λατινικό μικρό γράμμα o με οξεία ",ocirc:"Λατινικό πεζό γράμμα o με περισπωμένη",otilde:"Λατινικό μικρό γράμμα o με περισπωμένη ",ouml:"Λατινικό μικρό γράμμα o με διαλυτικά",divide:"Σύμβολο διαίρεσης",oslash:"Λατινικό μικρό γράμμα o με περισπωμένη",ugrave:"Λατινικό μικρό γράμμα u με βαρεία", -uacute:"Λατινικό μικρό γράμμα u με οξεία",ucirc:"Λατινικό μικρό γράμμα u με περισπωμένη",uuml:"Λατινικό μικρό γράμμα u με διαλυτικά",yacute:"Λατινικό μικρό γράμμα y με οξεία",thorn:"Λατινικό μικρό γράμμα thorn",yuml:"Λατινικό μικρό γράμμα y με διαλυτικά",OElig:"Λατινικό κεφαλαίο σύμπλεγμα ΟΕ",oelig:"Λατινικό μικρό σύμπλεγμα oe",372:"Λατινικό κεφαλαίο γράμμα W με περισπωμένη",374:"Λατινικό κεφαλαίο γράμμα Y με περισπωμένη",373:"Λατινικό μικρό γράμμα w με περισπωμένη",375:"Λατινικό μικρό γράμμα y με περισπωμένη", -sbquo:"Ενιαίο χαμηλο -9 εισαγωγικό ",8219:"Ενιαίο υψηλο ανεστραμμένο-9 εισαγωγικό ",bdquo:"Διπλό χαμηλό-9 εισαγωγικό ",hellip:"Οριζόντια αποσιωπητικά",trade:"Σύμβολο εμπορικού κατατεθέν",9658:"Μαύρος δείκτης που δείχνει προς τα δεξιά",bull:"Κουκκίδα",rarr:"Δεξί βελάκι",rArr:"Διπλό δεξί βελάκι",hArr:"Διπλό βελάκι αριστερά-δεξιά",diams:"Μαύρο διαμάντι",asymp:"Σχεδόν ίσο με"}); \ No newline at end of file diff --git a/admin/plugins/ckeditor/plugins/specialchar/dialogs/lang/en-au.js b/admin/plugins/ckeditor/plugins/specialchar/dialogs/lang/en-au.js deleted file mode 100644 index 2cbff9e..0000000 --- a/admin/plugins/ckeditor/plugins/specialchar/dialogs/lang/en-au.js +++ /dev/null @@ -1,13 +0,0 @@ -/* - Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. - For licensing, see LICENSE.md or http://ckeditor.com/license -*/ -CKEDITOR.plugins.setLang("specialchar","en-au",{euro:"Euro sign",lsquo:"Left single quotation mark",rsquo:"Right single quotation mark",ldquo:"Left double quotation mark",rdquo:"Right double quotation mark",ndash:"En dash",mdash:"Em dash",iexcl:"Inverted exclamation mark",cent:"Cent sign",pound:"Pound sign",curren:"Currency sign",yen:"Yen sign",brvbar:"Broken bar",sect:"Section sign",uml:"Diaeresis",copy:"Copyright sign",ordf:"Feminine ordinal indicator",laquo:"Left-pointing double angle quotation mark", -not:"Not sign",reg:"Registered sign",macr:"Macron",deg:"Degree sign",sup2:"Superscript two",sup3:"Superscript three",acute:"Acute accent",micro:"Micro sign",para:"Pilcrow sign",middot:"Middle dot",cedil:"Cedilla",sup1:"Superscript one",ordm:"Masculine ordinal indicator",raquo:"Right-pointing double angle quotation mark",frac14:"Vulgar fraction one quarter",frac12:"Vulgar fraction one half",frac34:"Vulgar fraction three quarters",iquest:"Inverted question mark",Agrave:"Latin capital letter A with grave accent", -Aacute:"Latin capital letter A with acute accent",Acirc:"Latin capital letter A with circumflex",Atilde:"Latin capital letter A with tilde",Auml:"Latin capital letter A with diaeresis",Aring:"Latin capital letter A with ring above",AElig:"Latin capital letter Æ",Ccedil:"Latin capital letter C with cedilla",Egrave:"Latin capital letter E with grave accent",Eacute:"Latin capital letter E with acute accent",Ecirc:"Latin capital letter E with circumflex",Euml:"Latin capital letter E with diaeresis",Igrave:"Latin capital letter I with grave accent", -Iacute:"Latin capital letter I with acute accent",Icirc:"Latin capital letter I with circumflex",Iuml:"Latin capital letter I with diaeresis",ETH:"Latin capital letter Eth",Ntilde:"Latin capital letter N with tilde",Ograve:"Latin capital letter O with grave accent",Oacute:"Latin capital letter O with acute accent",Ocirc:"Latin capital letter O with circumflex",Otilde:"Latin capital letter O with tilde",Ouml:"Latin capital letter O with diaeresis",times:"Multiplication sign",Oslash:"Latin capital letter O with stroke", -Ugrave:"Latin capital letter U with grave accent",Uacute:"Latin capital letter U with acute accent",Ucirc:"Latin capital letter U with circumflex",Uuml:"Latin capital letter U with diaeresis",Yacute:"Latin capital letter Y with acute accent",THORN:"Latin capital letter Thorn",szlig:"Latin small letter sharp s",agrave:"Latin small letter a with grave accent",aacute:"Latin small letter a with acute accent",acirc:"Latin small letter a with circumflex",atilde:"Latin small letter a with tilde",auml:"Latin small letter a with diaeresis", -aring:"Latin small letter a with ring above",aelig:"Latin small letter æ",ccedil:"Latin small letter c with cedilla",egrave:"Latin small letter e with grave accent",eacute:"Latin small letter e with acute accent",ecirc:"Latin small letter e with circumflex",euml:"Latin small letter e with diaeresis",igrave:"Latin small letter i with grave accent",iacute:"Latin small letter i with acute accent",icirc:"Latin small letter i with circumflex",iuml:"Latin small letter i with diaeresis",eth:"Latin small letter eth", -ntilde:"Latin small letter n with tilde",ograve:"Latin small letter o with grave accent",oacute:"Latin small letter o with acute accent",ocirc:"Latin small letter o with circumflex",otilde:"Latin small letter o with tilde",ouml:"Latin small letter o with diaeresis",divide:"Division sign",oslash:"Latin small letter o with stroke",ugrave:"Latin small letter u with grave accent",uacute:"Latin small letter u with acute accent",ucirc:"Latin small letter u with circumflex",uuml:"Latin small letter u with diaeresis", -yacute:"Latin small letter y with acute accent",thorn:"Latin small letter thorn",yuml:"Latin small letter y with diaeresis",OElig:"Latin capital ligature OE",oelig:"Latin small ligature oe",372:"Latin capital letter W with circumflex",374:"Latin capital letter Y with circumflex",373:"Latin small letter w with circumflex",375:"Latin small letter y with circumflex",sbquo:"Single low-9 quotation mark",8219:"Single high-reversed-9 quotation mark",bdquo:"Double low-9 quotation mark",hellip:"Horizontal ellipsis", -trade:"Trade mark sign",9658:"Black right-pointing pointer",bull:"Bullet",rarr:"Rightwards arrow",rArr:"Rightwards double arrow",hArr:"Left right double arrow",diams:"Black diamond suit",asymp:"Almost equal to"}); \ No newline at end of file diff --git a/admin/plugins/ckeditor/plugins/specialchar/dialogs/lang/en-ca.js b/admin/plugins/ckeditor/plugins/specialchar/dialogs/lang/en-ca.js deleted file mode 100644 index 6954f42..0000000 --- a/admin/plugins/ckeditor/plugins/specialchar/dialogs/lang/en-ca.js +++ /dev/null @@ -1,13 +0,0 @@ -/* - Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. - For licensing, see LICENSE.md or http://ckeditor.com/license -*/ -CKEDITOR.plugins.setLang("specialchar","en-ca",{euro:"Euro sign",lsquo:"Left single quotation mark",rsquo:"Right single quotation mark",ldquo:"Left double quotation mark",rdquo:"Right double quotation mark",ndash:"En dash",mdash:"Em dash",iexcl:"Inverted exclamation mark",cent:"Cent sign",pound:"Pound sign",curren:"Currency sign",yen:"Yen sign",brvbar:"Broken bar",sect:"Section sign",uml:"Diaeresis",copy:"Copyright sign",ordf:"Feminine ordinal indicator",laquo:"Left-pointing double angle quotation mark", -not:"Not sign",reg:"Registered sign",macr:"Macron",deg:"Degree sign",sup2:"Superscript two",sup3:"Superscript three",acute:"Acute accent",micro:"Micro sign",para:"Pilcrow sign",middot:"Middle dot",cedil:"Cedilla",sup1:"Superscript one",ordm:"Masculine ordinal indicator",raquo:"Right-pointing double angle quotation mark",frac14:"Vulgar fraction one quarter",frac12:"Vulgar fraction one half",frac34:"Vulgar fraction three quarters",iquest:"Inverted question mark",Agrave:"Latin capital letter A with grave accent", -Aacute:"Latin capital letter A with acute accent",Acirc:"Latin capital letter A with circumflex",Atilde:"Latin capital letter A with tilde",Auml:"Latin capital letter A with diaeresis",Aring:"Latin capital letter A with ring above",AElig:"Latin capital letter Æ",Ccedil:"Latin capital letter C with cedilla",Egrave:"Latin capital letter E with grave accent",Eacute:"Latin capital letter E with acute accent",Ecirc:"Latin capital letter E with circumflex",Euml:"Latin capital letter E with diaeresis",Igrave:"Latin capital letter I with grave accent", -Iacute:"Latin capital letter I with acute accent",Icirc:"Latin capital letter I with circumflex",Iuml:"Latin capital letter I with diaeresis",ETH:"Latin capital letter Eth",Ntilde:"Latin capital letter N with tilde",Ograve:"Latin capital letter O with grave accent",Oacute:"Latin capital letter O with acute accent",Ocirc:"Latin capital letter O with circumflex",Otilde:"Latin capital letter O with tilde",Ouml:"Latin capital letter O with diaeresis",times:"Multiplication sign",Oslash:"Latin capital letter O with stroke", -Ugrave:"Latin capital letter U with grave accent",Uacute:"Latin capital letter U with acute accent",Ucirc:"Latin capital letter U with circumflex",Uuml:"Latin capital letter U with diaeresis",Yacute:"Latin capital letter Y with acute accent",THORN:"Latin capital letter Thorn",szlig:"Latin small letter sharp s",agrave:"Latin small letter a with grave accent",aacute:"Latin small letter a with acute accent",acirc:"Latin small letter a with circumflex",atilde:"Latin small letter a with tilde",auml:"Latin small letter a with diaeresis", -aring:"Latin small letter a with ring above",aelig:"Latin small letter æ",ccedil:"Latin small letter c with cedilla",egrave:"Latin small letter e with grave accent",eacute:"Latin small letter e with acute accent",ecirc:"Latin small letter e with circumflex",euml:"Latin small letter e with diaeresis",igrave:"Latin small letter i with grave accent",iacute:"Latin small letter i with acute accent",icirc:"Latin small letter i with circumflex",iuml:"Latin small letter i with diaeresis",eth:"Latin small letter eth", -ntilde:"Latin small letter n with tilde",ograve:"Latin small letter o with grave accent",oacute:"Latin small letter o with acute accent",ocirc:"Latin small letter o with circumflex",otilde:"Latin small letter o with tilde",ouml:"Latin small letter o with diaeresis",divide:"Division sign",oslash:"Latin small letter o with stroke",ugrave:"Latin small letter u with grave accent",uacute:"Latin small letter u with acute accent",ucirc:"Latin small letter u with circumflex",uuml:"Latin small letter u with diaeresis", -yacute:"Latin small letter y with acute accent",thorn:"Latin small letter thorn",yuml:"Latin small letter y with diaeresis",OElig:"Latin capital ligature OE",oelig:"Latin small ligature oe",372:"Latin capital letter W with circumflex",374:"Latin capital letter Y with circumflex",373:"Latin small letter w with circumflex",375:"Latin small letter y with circumflex",sbquo:"Single low-9 quotation mark",8219:"Single high-reversed-9 quotation mark",bdquo:"Double low-9 quotation mark",hellip:"Horizontal ellipsis", -trade:"Trade mark sign",9658:"Black right-pointing pointer",bull:"Bullet",rarr:"Rightwards arrow",rArr:"Rightwards double arrow",hArr:"Left right double arrow",diams:"Black diamond suit",asymp:"Almost equal to"}); \ No newline at end of file diff --git a/admin/plugins/ckeditor/plugins/specialchar/dialogs/lang/en-gb.js b/admin/plugins/ckeditor/plugins/specialchar/dialogs/lang/en-gb.js deleted file mode 100644 index e0b26d5..0000000 --- a/admin/plugins/ckeditor/plugins/specialchar/dialogs/lang/en-gb.js +++ /dev/null @@ -1,13 +0,0 @@ -/* - Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. - For licensing, see LICENSE.md or http://ckeditor.com/license -*/ -CKEDITOR.plugins.setLang("specialchar","en-gb",{euro:"Euro sign",lsquo:"Left single quotation mark",rsquo:"Right single quotation mark",ldquo:"Left double quotation mark",rdquo:"Right double quotation mark",ndash:"En dash",mdash:"Em dash",iexcl:"Inverted exclamation mark",cent:"Cent sign",pound:"Pound sign",curren:"Currency sign",yen:"Yen sign",brvbar:"Broken bar",sect:"Section sign",uml:"Diaeresis",copy:"Copyright sign",ordf:"Feminine ordinal indicator",laquo:"Left-pointing double angle quotation mark", -not:"Not sign",reg:"Registered sign",macr:"Macron",deg:"Degree sign",sup2:"Superscript two",sup3:"Superscript three",acute:"Acute accent",micro:"Micro sign",para:"Pilcrow sign",middot:"Middle dot",cedil:"Cedilla",sup1:"Superscript one",ordm:"Masculine ordinal indicator",raquo:"Right-pointing double angle quotation mark",frac14:"Vulgar fraction one quarter",frac12:"Vulgar fraction one half",frac34:"Vulgar fraction three quarters",iquest:"Inverted question mark",Agrave:"Latin capital letter A with grave accent", -Aacute:"Latin capital letter A with acute accent",Acirc:"Latin capital letter A with circumflex",Atilde:"Latin capital letter A with tilde",Auml:"Latin capital letter A with diaeresis",Aring:"Latin capital letter A with ring above",AElig:"Latin capital letter Æ",Ccedil:"Latin capital letter C with cedilla",Egrave:"Latin capital letter E with grave accent",Eacute:"Latin capital letter E with acute accent",Ecirc:"Latin capital letter E with circumflex",Euml:"Latin capital letter E with diaeresis",Igrave:"Latin capital letter I with grave accent", -Iacute:"Latin capital letter I with acute accent",Icirc:"Latin capital letter I with circumflex",Iuml:"Latin capital letter I with diaeresis",ETH:"Latin capital letter Eth",Ntilde:"Latin capital letter N with tilde",Ograve:"Latin capital letter O with grave accent",Oacute:"Latin capital letter O with acute accent",Ocirc:"Latin capital letter O with circumflex",Otilde:"Latin capital letter O with tilde",Ouml:"Latin capital letter O with diaeresis",times:"Multiplication sign",Oslash:"Latin capital letter O with stroke", -Ugrave:"Latin capital letter U with grave accent",Uacute:"Latin capital letter U with acute accent",Ucirc:"Latin capital letter U with circumflex",Uuml:"Latin capital letter U with diaeresis",Yacute:"Latin capital letter Y with acute accent",THORN:"Latin capital letter Thorn",szlig:"Latin small letter sharp s",agrave:"Latin small letter a with grave accent",aacute:"Latin small letter a with acute accent",acirc:"Latin small letter a with circumflex",atilde:"Latin small letter a with tilde",auml:"Latin small letter a with diaeresis", -aring:"Latin small letter a with ring above",aelig:"Latin small letter æ",ccedil:"Latin small letter c with cedilla",egrave:"Latin small letter e with grave accent",eacute:"Latin small letter e with acute accent",ecirc:"Latin small letter e with circumflex",euml:"Latin small letter e with diaeresis",igrave:"Latin small letter i with grave accent",iacute:"Latin small letter i with acute accent",icirc:"Latin small letter i with circumflex",iuml:"Latin small letter i with diaeresis",eth:"Latin small letter eth", -ntilde:"Latin small letter n with tilde",ograve:"Latin small letter o with grave accent",oacute:"Latin small letter o with acute accent",ocirc:"Latin small letter o with circumflex",otilde:"Latin small letter o with tilde",ouml:"Latin small letter o with diaeresis",divide:"Division sign",oslash:"Latin small letter o with stroke",ugrave:"Latin small letter u with grave accent",uacute:"Latin small letter u with acute accent",ucirc:"Latin small letter u with circumflex",uuml:"Latin small letter u with diaeresis", -yacute:"Latin small letter y with acute accent",thorn:"Latin small letter thorn",yuml:"Latin small letter y with diaeresis",OElig:"Latin capital ligature OE",oelig:"Latin small ligature oe",372:"Latin capital letter W with circumflex",374:"Latin capital letter Y with circumflex",373:"Latin small letter w with circumflex",375:"Latin small letter y with circumflex",sbquo:"Single low-9 quotation mark",8219:"Single high-reversed-9 quotation mark",bdquo:"Double low-9 quotation mark",hellip:"Horizontal ellipsis", -trade:"Trade mark sign",9658:"Black right-pointing pointer",bull:"Bullet",rarr:"Rightwards arrow",rArr:"Rightwards double arrow",hArr:"Left right double arrow",diams:"Black diamond suit",asymp:"Almost equal to"}); \ No newline at end of file diff --git a/admin/plugins/ckeditor/plugins/specialchar/dialogs/lang/en.js b/admin/plugins/ckeditor/plugins/specialchar/dialogs/lang/en.js deleted file mode 100644 index 361a685..0000000 --- a/admin/plugins/ckeditor/plugins/specialchar/dialogs/lang/en.js +++ /dev/null @@ -1,13 +0,0 @@ -/* - Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. - For licensing, see LICENSE.md or http://ckeditor.com/license -*/ -CKEDITOR.plugins.setLang("specialchar","en",{euro:"Euro sign",lsquo:"Left single quotation mark",rsquo:"Right single quotation mark",ldquo:"Left double quotation mark",rdquo:"Right double quotation mark",ndash:"En dash",mdash:"Em dash",iexcl:"Inverted exclamation mark",cent:"Cent sign",pound:"Pound sign",curren:"Currency sign",yen:"Yen sign",brvbar:"Broken bar",sect:"Section sign",uml:"Diaeresis",copy:"Copyright sign",ordf:"Feminine ordinal indicator",laquo:"Left-pointing double angle quotation mark", -not:"Not sign",reg:"Registered sign",macr:"Macron",deg:"Degree sign",sup2:"Superscript two",sup3:"Superscript three",acute:"Acute accent",micro:"Micro sign",para:"Pilcrow sign",middot:"Middle dot",cedil:"Cedilla",sup1:"Superscript one",ordm:"Masculine ordinal indicator",raquo:"Right-pointing double angle quotation mark",frac14:"Vulgar fraction one quarter",frac12:"Vulgar fraction one half",frac34:"Vulgar fraction three quarters",iquest:"Inverted question mark",Agrave:"Latin capital letter A with grave accent", -Aacute:"Latin capital letter A with acute accent",Acirc:"Latin capital letter A with circumflex",Atilde:"Latin capital letter A with tilde",Auml:"Latin capital letter A with diaeresis",Aring:"Latin capital letter A with ring above",AElig:"Latin capital letter Æ",Ccedil:"Latin capital letter C with cedilla",Egrave:"Latin capital letter E with grave accent",Eacute:"Latin capital letter E with acute accent",Ecirc:"Latin capital letter E with circumflex",Euml:"Latin capital letter E with diaeresis",Igrave:"Latin capital letter I with grave accent", -Iacute:"Latin capital letter I with acute accent",Icirc:"Latin capital letter I with circumflex",Iuml:"Latin capital letter I with diaeresis",ETH:"Latin capital letter Eth",Ntilde:"Latin capital letter N with tilde",Ograve:"Latin capital letter O with grave accent",Oacute:"Latin capital letter O with acute accent",Ocirc:"Latin capital letter O with circumflex",Otilde:"Latin capital letter O with tilde",Ouml:"Latin capital letter O with diaeresis",times:"Multiplication sign",Oslash:"Latin capital letter O with stroke", -Ugrave:"Latin capital letter U with grave accent",Uacute:"Latin capital letter U with acute accent",Ucirc:"Latin capital letter U with circumflex",Uuml:"Latin capital letter U with diaeresis",Yacute:"Latin capital letter Y with acute accent",THORN:"Latin capital letter Thorn",szlig:"Latin small letter sharp s",agrave:"Latin small letter a with grave accent",aacute:"Latin small letter a with acute accent",acirc:"Latin small letter a with circumflex",atilde:"Latin small letter a with tilde",auml:"Latin small letter a with diaeresis", -aring:"Latin small letter a with ring above",aelig:"Latin small letter æ",ccedil:"Latin small letter c with cedilla",egrave:"Latin small letter e with grave accent",eacute:"Latin small letter e with acute accent",ecirc:"Latin small letter e with circumflex",euml:"Latin small letter e with diaeresis",igrave:"Latin small letter i with grave accent",iacute:"Latin small letter i with acute accent",icirc:"Latin small letter i with circumflex",iuml:"Latin small letter i with diaeresis",eth:"Latin small letter eth", -ntilde:"Latin small letter n with tilde",ograve:"Latin small letter o with grave accent",oacute:"Latin small letter o with acute accent",ocirc:"Latin small letter o with circumflex",otilde:"Latin small letter o with tilde",ouml:"Latin small letter o with diaeresis",divide:"Division sign",oslash:"Latin small letter o with stroke",ugrave:"Latin small letter u with grave accent",uacute:"Latin small letter u with acute accent",ucirc:"Latin small letter u with circumflex",uuml:"Latin small letter u with diaeresis", -yacute:"Latin small letter y with acute accent",thorn:"Latin small letter thorn",yuml:"Latin small letter y with diaeresis",OElig:"Latin capital ligature OE",oelig:"Latin small ligature oe",372:"Latin capital letter W with circumflex",374:"Latin capital letter Y with circumflex",373:"Latin small letter w with circumflex",375:"Latin small letter y with circumflex",sbquo:"Single low-9 quotation mark",8219:"Single high-reversed-9 quotation mark",bdquo:"Double low-9 quotation mark",hellip:"Horizontal ellipsis", -trade:"Trade mark sign",9658:"Black right-pointing pointer",bull:"Bullet",rarr:"Rightwards arrow",rArr:"Rightwards double arrow",hArr:"Left right double arrow",diams:"Black diamond suit",asymp:"Almost equal to"}); \ No newline at end of file diff --git a/admin/plugins/ckeditor/plugins/specialchar/dialogs/lang/eo.js b/admin/plugins/ckeditor/plugins/specialchar/dialogs/lang/eo.js deleted file mode 100644 index 5f4fa9d..0000000 --- a/admin/plugins/ckeditor/plugins/specialchar/dialogs/lang/eo.js +++ /dev/null @@ -1,12 +0,0 @@ -/* - Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. - For licensing, see LICENSE.md or http://ckeditor.com/license -*/ -CKEDITOR.plugins.setLang("specialchar","eo",{euro:"Eŭrosigno",lsquo:"Supra 6-citilo",rsquo:"Supra 9-citilo",ldquo:"Supra 66-citilo",rdquo:"Supra 99-citilo",ndash:"Streketo",mdash:"Substreko",iexcl:"Renversita krisigno",cent:"Cendosigno",pound:"Pundosigno",curren:"Monersigno",yen:"Enosigno",brvbar:"Rompita vertikala streko",sect:"Kurba paragrafo",uml:"Tremao",copy:"Kopirajtosigno",ordf:"Adjektiva numerfinaĵo",laquo:"Duobla malplio-citilo",not:"Negohoko",reg:"Registrita marko",macr:"Superstreko",deg:"Gradosigno", -sup2:"Supra indico 2",sup3:"Supra indico 3",acute:"Dekstra korno",micro:"Mikrosigno",para:"Rekta paragrafo",middot:"Meza punkto",cedil:"Zoeto",sup1:"Supra indico 1",ordm:"Substantiva numerfinaĵo",raquo:"Duobla plio-citilo",frac14:"Kvaronosigno",frac12:"Duonosigno",frac34:"Trikvaronosigno",iquest:"renversita demandosigno",Agrave:"Latina ĉeflitero A kun liva korno",Aacute:"Latina ĉeflitero A kun dekstra korno",Acirc:"Latina ĉeflitero A kun ĉapelo",Atilde:"Latina ĉeflitero A kun tildo",Auml:"Latina ĉeflitero A kun tremao", -Aring:"Latina ĉeflitero A kun superringo",AElig:"Latina ĉeflitera ligaturo Æ",Ccedil:"Latina ĉeflitero C kun zoeto",Egrave:"Latina ĉeflitero E kun liva korno",Eacute:"Latina ĉeflitero E kun dekstra korno",Ecirc:"Latina ĉeflitero E kun ĉapelo",Euml:"Latina ĉeflitero E kun tremao",Igrave:"Latina ĉeflitero I kun liva korno",Iacute:"Latina ĉeflitero I kun dekstra korno",Icirc:"Latina ĉeflitero I kun ĉapelo",Iuml:"Latina ĉeflitero I kun tremao",ETH:"Latina ĉeflitero islanda edo",Ntilde:"Latina ĉeflitero N kun tildo", -Ograve:"Latina ĉeflitero O kun liva korno",Oacute:"Latina ĉeflitero O kun dekstra korno",Ocirc:"Latina ĉeflitero O kun ĉapelo",Otilde:"Latina ĉeflitero O kun tildo",Ouml:"Latina ĉeflitero O kun tremao",times:"Multipliko",Oslash:"Latina ĉeflitero O trastrekita",Ugrave:"Latina ĉeflitero U kun liva korno",Uacute:"Latina ĉeflitero U kun dekstra korno",Ucirc:"Latina ĉeflitero U kun ĉapelo",Uuml:"Latina ĉeflitero U kun tremao",Yacute:"Latina ĉeflitero Y kun dekstra korno",THORN:"Latina ĉeflitero islanda dorno", -szlig:"Latina etlitero germana sozo (akra s)",agrave:"Latina etlitero a kun liva korno",aacute:"Latina etlitero a kun dekstra korno",acirc:"Latina etlitero a kun ĉapelo",atilde:"Latina etlitero a kun tildo",auml:"Latina etlitero a kun tremao",aring:"Latina etlitero a kun superringo",aelig:"Latina etlitera ligaturo æ",ccedil:"Latina etlitero c kun zoeto",egrave:"Latina etlitero e kun liva korno",eacute:"Latina etlitero e kun dekstra korno",ecirc:"Latina etlitero e kun ĉapelo",euml:"Latina etlitero e kun tremao", -igrave:"Latina etlitero i kun liva korno",iacute:"Latina etlitero i kun dekstra korno",icirc:"Latina etlitero i kun ĉapelo",iuml:"Latina etlitero i kun tremao",eth:"Latina etlitero islanda edo",ntilde:"Latina etlitero n kun tildo",ograve:"Latina etlitero o kun liva korno",oacute:"Latina etlitero o kun dekstra korno",ocirc:"Latina etlitero o kun ĉapelo",otilde:"Latina etlitero o kun tildo",ouml:"Latina etlitero o kun tremao",divide:"Dividosigno",oslash:"Latina etlitero o trastrekita",ugrave:"Latina etlitero u kun liva korno", -uacute:"Latina etlitero u kun dekstra korno",ucirc:"Latina etlitero u kun ĉapelo",uuml:"Latina etlitero u kun tremao",yacute:"Latina etlitero y kun dekstra korno",thorn:"Latina etlitero islanda dorno",yuml:"Latina etlitero y kun tremao",OElig:"Latina ĉeflitera ligaturo Œ",oelig:"Latina etlitera ligaturo œ",372:"Latina ĉeflitero W kun ĉapelo",374:"Latina ĉeflitero Y kun ĉapelo",373:"Latina etlitero w kun ĉapelo",375:"Latina etlitero y kun ĉapelo",sbquo:"Suba 9-citilo",8219:"Supra renversita 9-citilo", -bdquo:"Suba 99-citilo",hellip:"Tripunkto",trade:"Varmarka signo",9658:"Nigra sago dekstren",bull:"Bulmarko",rarr:"Sago dekstren",rArr:"Duobla sago dekstren",hArr:"Duobla sago maldekstren",diams:"Nigra kvadrato",asymp:"Preskaŭ egala"}); \ No newline at end of file diff --git a/admin/plugins/ckeditor/plugins/specialchar/dialogs/lang/es-mx.js b/admin/plugins/ckeditor/plugins/specialchar/dialogs/lang/es-mx.js deleted file mode 100644 index 8854ee0..0000000 --- a/admin/plugins/ckeditor/plugins/specialchar/dialogs/lang/es-mx.js +++ /dev/null @@ -1,13 +0,0 @@ -/* - Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. - For licensing, see LICENSE.md or http://ckeditor.com/license -*/ -CKEDITOR.plugins.setLang("specialchar","es-mx",{euro:"Signo de Euro",lsquo:"Comillas simple izquierda",rsquo:"Comillas simple derecha",ldquo:"Comillas dobles izquierda",rdquo:"Comillas dobles derecha",ndash:"Guión corto",mdash:"Guión largo",iexcl:"Signo de exclamación invertido",cent:"Signo de centavo",pound:"Signo de Libra",curren:"Signo de moneda",yen:"Signo de Yen",brvbar:"Barra rota",sect:"Signo de la sección",uml:"Diéresis",copy:"Signo de Derechos reservados",ordf:"Indicador ordinal femenino", -laquo:"Señal de doble ángulo hacia la izquierda",not:"Sin signo",reg:"Signo registrado",macr:"Macron",deg:"signo de grados",sup2:"Superíndice dos",sup3:"Superíndice tres",acute:"Acento agudo",micro:"Signo micro",para:"Signo pilcrow",middot:"Punto medio",cedil:"Cedilla",sup1:"Superíndice uno",ordm:"Indicador ordinal masculino",raquo:"Señal de doble ángulo hacia la derecha",frac14:"Fracción un cuarto",frac12:"Fracción medio",frac34:"Fracción tres cuartos",iquest:"Signo de interrogación invertido",Agrave:"Letra mayúscula latina A con acento grave", -Aacute:"Letra mayúscula latina A con acento agudo",Acirc:"Letra mayúscula latina A con circunflexo",Atilde:"Letra mayúscula latina A con tilde",Auml:"Letra mayúscula latina A con diéresis",Aring:"Letra mayúscula latina A con anillo arriba",AElig:"Letra mayúscula latina Æ",Ccedil:"Letra mayúscula latina C con cedilla",Egrave:"Letra mayúscula latina E con acento grave",Eacute:"Letra mayúscula latina E con acento agudo",Ecirc:"Letra mayúscula latina E con circumflex",Euml:"Letra mayúscula latina E con diéresis", -Igrave:"Letra mayúscula latina I con acento grave",Iacute:"Letra mayúscula latina I con acento agudo",Icirc:"Letra mayúscula latina I con circumflex",Iuml:"Letra mayúscula latina E con diéresis",ETH:"Letra mayúscula latina Eth",Ntilde:"Letra mayúscula latina N con tilde",Ograve:"Letra mayúscula latina O con acento grave",Oacute:"Letra mayúscula latina O con acento agudo",Ocirc:"Letra mayúscula latina O con circumflex",Otilde:"Letra mayúscula latina O con tilde",Ouml:"Letra mayúscula latina O con diéresis", -times:"Signo de multiplicación",Oslash:"Letra mayúscula latina O con trazo",Ugrave:"Letra mayúscula latina U con acento grave",Uacute:"Letra mayúscula latina U con acento agudo",Ucirc:"Letra mayúscula latina U con circumflex",Uuml:"Letra mayúscula latina U con diéresis",Yacute:"Letra mayúscula latina Y con acento agudo",THORN:"Letra mayúscula latina Thorn",szlig:"Letra pequeña latina s",agrave:"Letra pequeña latina a con acento grave",aacute:"Letra pequeña latina a con acento agudo",acirc:"Letra pequeña latina a con circumflex", -atilde:"Letra pequeña latina a con tilde",auml:"Letra pequeña latina a con diéresis",aring:"Letra pequeña latina a con anillo arriba",aelig:"Letra pequeña latina æ",ccedil:"Letra pequeña latina c con cedilla",egrave:"Letra pequeña latina e con acento grave",eacute:"Letra pequeña latina e con acento agudo",ecirc:"Letra pequeña latina e con circumflex",euml:"Letra pequeña latina e con diéresis",igrave:"Letra pequeña latina i con acento grave",iacute:"Letra pequeña latina i con acento agudo",icirc:"Letra pequeña latina i con circumflex", -iuml:"Letra pequeña latina i con diéresis",eth:"Letra pequeña latina eth",ntilde:"Letra pequeña latina n con tilde",ograve:"Letra pequeña latina o con acento grave",oacute:"Letra pequeña latina o con acento agudo",ocirc:"Letra pequeña latina o con circumflex",otilde:"Letra pequeña latina o con tilde",ouml:"Letra pequeña latina o con diéresis",divide:"Signo de división",oslash:"Letra pequeña latina o con trazo",ugrave:"Letra pequeña latina u con acento grave",uacute:"Letra pequeña latina u con acento agudo", -ucirc:"Letra pequeña latina u con circumflex",uuml:"Letra pequeña latina u con diéresis",yacute:"Letra pequeña latina y con acento agudo",thorn:"Espina de letra pequeña latina",yuml:"Letra pequeña latina y con diéresis",OElig:"Ligadura de capital latino OE",oelig:"Ligadura de pequeña latino OE",372:"Letra latina mayúscula W con circunflexo",374:"Letra latina mayúscula Y con circunflexo",373:"Letra latina minúscula w con circunflexo",375:"Letra latina minúscula y con circunflexo",sbquo:"Signo de comillas simple abajo", -8219:"Signo de comillas simple arriba",bdquo:"Signo de doble comillas abajo",hellip:"Elipsis horizontal",trade:"Signo merccantl",9658:"Puntero derecho negro",bull:"Bala",rarr:"Flecha hacia la derecha",rArr:"Doble flecha hacia la derecha",hArr:"Flecha doble izquierda derecha",diams:"Palo de diamante negro",asymp:"Casi igual a"}); \ No newline at end of file diff --git a/admin/plugins/ckeditor/plugins/specialchar/dialogs/lang/es.js b/admin/plugins/ckeditor/plugins/specialchar/dialogs/lang/es.js deleted file mode 100644 index dd395e5..0000000 --- a/admin/plugins/ckeditor/plugins/specialchar/dialogs/lang/es.js +++ /dev/null @@ -1,13 +0,0 @@ -/* - Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. - For licensing, see LICENSE.md or http://ckeditor.com/license -*/ -CKEDITOR.plugins.setLang("specialchar","es",{euro:"Símbolo de euro",lsquo:"Comilla simple izquierda",rsquo:"Comilla simple derecha",ldquo:"Comilla doble izquierda",rdquo:"Comilla doble derecha",ndash:"Guión corto",mdash:"Guión medio largo",iexcl:"Signo de admiración invertido",cent:"Símbolo centavo",pound:"Símbolo libra",curren:"Símbolo moneda",yen:"Símbolo yen",brvbar:"Barra vertical rota",sect:"Símbolo sección",uml:"Diéresis",copy:"Signo de derechos de autor",ordf:"Indicador ordinal femenino",laquo:"Abre comillas angulares", -not:"Signo negación",reg:"Signo de marca registrada",macr:"Guión alto",deg:"Signo de grado",sup2:"Superíndice dos",sup3:"Superíndice tres",acute:"Acento agudo",micro:"Signo micro",para:"Signo de pi",middot:"Punto medio",cedil:"Cedilla",sup1:"Superíndice uno",ordm:"Indicador orginal masculino",raquo:"Cierra comillas angulares",frac14:"Fracción ordinaria de un quarto",frac12:"Fracción ordinaria de una mitad",frac34:"Fracción ordinaria de tres cuartos",iquest:"Signo de interrogación invertido",Agrave:"Letra A latina mayúscula con acento grave", -Aacute:"Letra A latina mayúscula con acento agudo",Acirc:"Letra A latina mayúscula con acento circunflejo",Atilde:"Letra A latina mayúscula con tilde",Auml:"Letra A latina mayúscula con diéresis",Aring:"Letra A latina mayúscula con aro arriba",AElig:"Letra Æ latina mayúscula",Ccedil:"Letra C latina mayúscula con cedilla",Egrave:"Letra E latina mayúscula con acento grave",Eacute:"Letra E latina mayúscula con acento agudo",Ecirc:"Letra E latina mayúscula con acento circunflejo",Euml:"Letra E latina mayúscula con diéresis", -Igrave:"Letra I latina mayúscula con acento grave",Iacute:"Letra I latina mayúscula con acento agudo",Icirc:"Letra I latina mayúscula con acento circunflejo",Iuml:"Letra I latina mayúscula con diéresis",ETH:"Letra Eth latina mayúscula",Ntilde:"Letra N latina mayúscula con tilde",Ograve:"Letra O latina mayúscula con acento grave",Oacute:"Letra O latina mayúscula con acento agudo",Ocirc:"Letra O latina mayúscula con acento circunflejo",Otilde:"Letra O latina mayúscula con tilde",Ouml:"Letra O latina mayúscula con diéresis", -times:"Signo de multiplicación",Oslash:"Letra O latina mayúscula con barra inclinada",Ugrave:"Letra U latina mayúscula con acento grave",Uacute:"Letra U latina mayúscula con acento agudo",Ucirc:"Letra U latina mayúscula con acento circunflejo",Uuml:"Letra U latina mayúscula con diéresis",Yacute:"Letra Y latina mayúscula con acento agudo",THORN:"Letra Thorn latina mayúscula",szlig:"Letra s latina fuerte pequeña",agrave:"Letra a latina pequeña con acento grave",aacute:"Letra a latina pequeña con acento agudo", -acirc:"Letra a latina pequeña con acento circunflejo",atilde:"Letra a latina pequeña con tilde",auml:"Letra a latina pequeña con diéresis",aring:"Letra a latina pequeña con aro arriba",aelig:"Letra æ latina pequeña",ccedil:"Letra c latina pequeña con cedilla",egrave:"Letra e latina pequeña con acento grave",eacute:"Letra e latina pequeña con acento agudo",ecirc:"Letra e latina pequeña con acento circunflejo",euml:"Letra e latina pequeña con diéresis",igrave:"Letra i latina pequeña con acento grave", -iacute:"Letra i latina pequeña con acento agudo",icirc:"Letra i latina pequeña con acento circunflejo",iuml:"Letra i latina pequeña con diéresis",eth:"Letra eth latina pequeña",ntilde:"Letra n latina pequeña con tilde",ograve:"Letra o latina pequeña con acento grave",oacute:"Letra o latina pequeña con acento agudo",ocirc:"Letra o latina pequeña con acento circunflejo",otilde:"Letra o latina pequeña con tilde",ouml:"Letra o latina pequeña con diéresis",divide:"Signo de división",oslash:"Letra o latina minúscula con barra inclinada", -ugrave:"Letra u latina pequeña con acento grave",uacute:"Letra u latina pequeña con acento agudo",ucirc:"Letra u latina pequeña con acento circunflejo",uuml:"Letra u latina pequeña con diéresis",yacute:"Letra u latina pequeña con acento agudo",thorn:"Letra thorn latina minúscula",yuml:"Letra y latina pequeña con diéresis",OElig:"Diptongo OE latino en mayúscula",oelig:"Diptongo oe latino en minúscula",372:"Letra W latina mayúscula con acento circunflejo",374:"Letra Y latina mayúscula con acento circunflejo", -373:"Letra w latina pequeña con acento circunflejo",375:"Letra y latina pequeña con acento circunflejo",sbquo:"Comilla simple baja-9",8219:"Comilla simple alta invertida-9",bdquo:"Comillas dobles bajas-9",hellip:"Puntos suspensivos horizontales",trade:"Signo de marca registrada",9658:"Apuntador negro apuntando a la derecha",bull:"Viñeta",rarr:"Flecha a la derecha",rArr:"Flecha doble a la derecha",hArr:"Flecha izquierda derecha doble",diams:"Diamante negro",asymp:"Casi igual a"}); \ No newline at end of file diff --git a/admin/plugins/ckeditor/plugins/specialchar/dialogs/lang/et.js b/admin/plugins/ckeditor/plugins/specialchar/dialogs/lang/et.js deleted file mode 100644 index b7a2e1f..0000000 --- a/admin/plugins/ckeditor/plugins/specialchar/dialogs/lang/et.js +++ /dev/null @@ -1,13 +0,0 @@ -/* - Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. - For licensing, see LICENSE.md or http://ckeditor.com/license -*/ -CKEDITOR.plugins.setLang("specialchar","et",{euro:"Euromärk",lsquo:"Alustav ühekordne jutumärk",rsquo:"Lõpetav ühekordne jutumärk",ldquo:"Alustav kahekordne jutumärk",rdquo:"Lõpetav kahekordne jutumärk",ndash:"Enn-kriips",mdash:"Emm-kriips",iexcl:"Pööratud hüüumärk",cent:"Sendimärk",pound:"Naela märk",curren:"Valuutamärk",yen:"Jeeni märk",brvbar:"Katkestatud kriips",sect:"Lõigu märk",uml:"Täpid",copy:"Autoriõiguse märk",ordf:"Feminine ordinal indicator",laquo:"Left-pointing double angle quotation mark", -not:"Ei-märk",reg:"Registered sign",macr:"Macron",deg:"Kraadimärk",sup2:"Ülaindeks kaks",sup3:"Ülaindeks kolm",acute:"Acute accent",micro:"Mikro-märk",para:"Pilcrow sign",middot:"Keskpunkt",cedil:"Cedilla",sup1:"Ülaindeks üks",ordm:"Masculine ordinal indicator",raquo:"Right-pointing double angle quotation mark",frac14:"Vulgar fraction one quarter",frac12:"Vulgar fraction one half",frac34:"Vulgar fraction three quarters",iquest:"Inverted question mark",Agrave:"Latin capital letter A with grave accent", -Aacute:"Latin capital letter A with acute accent",Acirc:"Latin capital letter A with circumflex",Atilde:"Ladina suur A tildega",Auml:"Latin capital letter A with diaeresis",Aring:"Latin capital letter A with ring above",AElig:"Latin capital letter Æ",Ccedil:"Latin capital letter C with cedilla",Egrave:"Latin capital letter E with grave accent",Eacute:"Latin capital letter E with acute accent",Ecirc:"Latin capital letter E with circumflex",Euml:"Latin capital letter E with diaeresis",Igrave:"Latin capital letter I with grave accent", -Iacute:"Latin capital letter I with acute accent",Icirc:"Latin capital letter I with circumflex",Iuml:"Latin capital letter I with diaeresis",ETH:"Latin capital letter Eth",Ntilde:"Latin capital letter N with tilde",Ograve:"Latin capital letter O with grave accent",Oacute:"Latin capital letter O with acute accent",Ocirc:"Latin capital letter O with circumflex",Otilde:"Latin capital letter O with tilde",Ouml:"Täppidega ladina suur O",times:"Multiplication sign",Oslash:"Latin capital letter O with stroke", -Ugrave:"Latin capital letter U with grave accent",Uacute:"Latin capital letter U with acute accent",Ucirc:"Kandilise katusega suur ladina U",Uuml:"Täppidega ladina suur U",Yacute:"Latin capital letter Y with acute accent",THORN:"Latin capital letter Thorn",szlig:"Ladina väike terav s",agrave:"Latin small letter a with grave accent",aacute:"Latin small letter a with acute accent",acirc:"Kandilise katusega ladina väike a",atilde:"Tildega ladina väike a",auml:"Täppidega ladina väike a",aring:"Latin small letter a with ring above", -aelig:"Latin small letter æ",ccedil:"Latin small letter c with cedilla",egrave:"Latin small letter e with grave accent",eacute:"Latin small letter e with acute accent",ecirc:"Latin small letter e with circumflex",euml:"Latin small letter e with diaeresis",igrave:"Latin small letter i with grave accent",iacute:"Latin small letter i with acute accent",icirc:"Latin small letter i with circumflex",iuml:"Latin small letter i with diaeresis",eth:"Latin small letter eth",ntilde:"Latin small letter n with tilde", -ograve:"Latin small letter o with grave accent",oacute:"Latin small letter o with acute accent",ocirc:"Latin small letter o with circumflex",otilde:"Latin small letter o with tilde",ouml:"Latin small letter o with diaeresis",divide:"Jagamismärk",oslash:"Latin small letter o with stroke",ugrave:"Latin small letter u with grave accent",uacute:"Latin small letter u with acute accent",ucirc:"Latin small letter u with circumflex",uuml:"Latin small letter u with diaeresis",yacute:"Latin small letter y with acute accent", -thorn:"Latin small letter thorn",yuml:"Latin small letter y with diaeresis",OElig:"Latin capital ligature OE",oelig:"Latin small ligature oe",372:"Latin capital letter W with circumflex",374:"Latin capital letter Y with circumflex",373:"Latin small letter w with circumflex",375:"Latin small letter y with circumflex",sbquo:"Single low-9 quotation mark",8219:"Single high-reversed-9 quotation mark",bdquo:"Double low-9 quotation mark",hellip:"Horizontal ellipsis",trade:"Kaubamärgi märk",9658:"Black right-pointing pointer", -bull:"Kuul",rarr:"Nool paremale",rArr:"Topeltnool paremale",hArr:"Topeltnool vasakule",diams:"Black diamond suit",asymp:"Ligikaudu võrdne"}); \ No newline at end of file diff --git a/admin/plugins/ckeditor/plugins/specialchar/dialogs/lang/eu.js b/admin/plugins/ckeditor/plugins/specialchar/dialogs/lang/eu.js deleted file mode 100644 index 26ac3d8..0000000 --- a/admin/plugins/ckeditor/plugins/specialchar/dialogs/lang/eu.js +++ /dev/null @@ -1,13 +0,0 @@ -/* - Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. - For licensing, see LICENSE.md or http://ckeditor.com/license -*/ -CKEDITOR.plugins.setLang("specialchar","eu",{euro:"Euro zeinua",lsquo:"Left single quotation mark",rsquo:"Right single quotation mark",ldquo:"Left double quotation mark",rdquo:"Right double quotation mark",ndash:"En dash",mdash:"Em dash",iexcl:"Inverted exclamation mark",cent:"Cent sign",pound:"Libera zeinua",curren:"Currency sign",yen:"Yen zeinua",brvbar:"Broken bar",sect:"Section sign",uml:"Dieresia",copy:"Copyright zeinua",ordf:"Feminine ordinal indicator",laquo:"Left-pointing double angle quotation mark", -not:"Ez zeinua",reg:"Registered sign",macr:"Macron",deg:"Degree sign",sup2:"Superscript two",sup3:"Superscript three",acute:"Acute accent",micro:"Micro sign",para:"Pilcrow sign",middot:"Middle dot",cedil:"Cedilla",sup1:"Superscript one",ordm:"Masculine ordinal indicator",raquo:"Right-pointing double angle quotation mark",frac14:"Vulgar fraction one quarter",frac12:"Vulgar fraction one half",frac34:"Vulgar fraction three quarters",iquest:"Inverted question mark",Agrave:"Latin capital letter A with grave accent", -Aacute:"Latin capital letter A with acute accent",Acirc:"Latin capital letter A with circumflex",Atilde:"Latin capital letter A with tilde",Auml:"Latin capital letter A with diaeresis",Aring:"Latin capital letter A with ring above",AElig:"Latin capital letter Æ",Ccedil:"Latin capital letter C with cedilla",Egrave:"Latin capital letter E with grave accent",Eacute:"Latin capital letter E with acute accent",Ecirc:"Latin capital letter E with circumflex",Euml:"Latin capital letter E with diaeresis",Igrave:"Latin capital letter I with grave accent", -Iacute:"Latin capital letter I with acute accent",Icirc:"Latin capital letter I with circumflex",Iuml:"Latin capital letter I with diaeresis",ETH:"Latin capital letter Eth",Ntilde:"Latin capital letter N with tilde",Ograve:"Latin capital letter O with grave accent",Oacute:"Latin capital letter O with acute accent",Ocirc:"Latin capital letter O with circumflex",Otilde:"Latin capital letter O with tilde",Ouml:"Latin capital letter O with diaeresis",times:"Bider zeinua",Oslash:"Latin capital letter O with stroke", -Ugrave:"Latin capital letter U with grave accent",Uacute:"Latin capital letter U with acute accent",Ucirc:"Latin capital letter U with circumflex",Uuml:"Latin capital letter U with diaeresis",Yacute:"Latin capital letter Y with acute accent",THORN:"Latin capital letter Thorn",szlig:"Latin small letter sharp s",agrave:"Latin small letter a with grave accent",aacute:"Latin small letter a with acute accent",acirc:"Latin small letter a with circumflex",atilde:"Latin small letter a with tilde",auml:"Latin small letter a with diaeresis", -aring:"Latin small letter a with ring above",aelig:"Latin small letter æ",ccedil:"Latin small letter c with cedilla",egrave:"Latin small letter e with grave accent",eacute:"Latin small letter e with acute accent",ecirc:"Latin small letter e with circumflex",euml:"Latin small letter e with diaeresis",igrave:"Latin small letter i with grave accent",iacute:"Latin small letter i with acute accent",icirc:"Latin small letter i with circumflex",iuml:"Latin small letter i with diaeresis",eth:"Latin small letter eth", -ntilde:"Latin small letter n with tilde",ograve:"Latin small letter o with grave accent",oacute:"Latin small letter o with acute accent",ocirc:"Latin small letter o with circumflex",otilde:"Latin small letter o with tilde",ouml:"Latin small letter o with diaeresis",divide:"Division sign",oslash:"Latin small letter o with stroke",ugrave:"Latin small letter u with grave accent",uacute:"Latin small letter u with acute accent",ucirc:"Latin small letter u with circumflex",uuml:"Latin small letter u with diaeresis", -yacute:"Latin small letter y with acute accent",thorn:"Latin small letter thorn",yuml:"Latin small letter y with diaeresis",OElig:"Latin capital ligature OE",oelig:"Latin small ligature oe",372:"Latin capital letter W with circumflex",374:"Latin capital letter Y with circumflex",373:"Latin small letter w with circumflex",375:"Latin small letter y with circumflex",sbquo:"Single low-9 quotation mark",8219:"Single high-reversed-9 quotation mark",bdquo:"Double low-9 quotation mark",hellip:"Horizontal ellipsis", -trade:"Trade mark sign",9658:"Black right-pointing pointer",bull:"Buleta",rarr:"Rightwards arrow",rArr:"Rightwards double arrow",hArr:"Left right double arrow",diams:"Black diamond suit",asymp:"Almost equal to"}); \ No newline at end of file diff --git a/admin/plugins/ckeditor/plugins/specialchar/dialogs/lang/fa.js b/admin/plugins/ckeditor/plugins/specialchar/dialogs/lang/fa.js deleted file mode 100644 index 5028d03..0000000 --- a/admin/plugins/ckeditor/plugins/specialchar/dialogs/lang/fa.js +++ /dev/null @@ -1,12 +0,0 @@ -/* - Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. - For licensing, see LICENSE.md or http://ckeditor.com/license -*/ -CKEDITOR.plugins.setLang("specialchar","fa",{euro:"نشان یورو",lsquo:"علامت نقل قول تکی چپ",rsquo:"علامت نقل قول تکی راست",ldquo:"علامت نقل قول دوتایی چپ",rdquo:"علامت نقل قول دوتایی راست",ndash:"خط تیره En",mdash:"خط تیره Em",iexcl:"علامت تعجب وارونه",cent:"نشان سنت",pound:"نشان پوند",curren:"نشان ارز",yen:"نشان ین",brvbar:"نوار شکسته",sect:"نشان بخش",uml:"نشان سواگیری",copy:"نشان کپی رایت",ordf:"شاخص ترتیبی مونث",laquo:"اشاره چپ مکرر برای زاویه علامت نقل قول",not:"نشان ثبت نشده",reg:"نشان ثبت شده", -macr:"نشان خط بالای حرف",deg:"نشان درجه",sup2:"بالانویس دو",sup3:"بالانویس سه",acute:"لهجه غلیظ",micro:"نشان مایکرو",para:"نشان محل بند",middot:"نقطه میانی",cedil:"سدیل",sup1:"بالانویس 1",ordm:"شاخص ترتیبی مذکر",raquo:"نشان زاویه‌دار دوتایی نقل قول راست چین",frac14:"واحد عامیانه 1/4",frac12:"واحد عامینه نصف",frac34:"واحد عامیانه 3/4",iquest:"علامت سوال معکوس",Agrave:"حرف A بزرگ لاتین با تلفظ غلیظ",Aacute:"حرف A بزرگ لاتین با تلفظ شدید",Acirc:"حرف A بزرگ لاتین با دور",Atilde:"حرف A بزرگ لاتین با صدای کامی", -Auml:"حرف A بزرگ لاتین با نشان سواگیری",Aring:"حرف A بزرگ لاتین با حلقه بالا",AElig:"حرف Æ بزرگ لاتین",Ccedil:"حرف C بزرگ لاتین با نشان سواگیری",Egrave:"حرف E بزرگ لاتین با تلفظ درشت",Eacute:"حرف E بزرگ لاتین با تلفظ زیر",Ecirc:"حرف E بزرگ لاتین با خمان",Euml:"حرف E بزرگ لاتین با نشان سواگیری",Igrave:"حرف I بزرگ لاتین با تلفظ درشت",Iacute:"حرف I بزرگ لاتین با تلفظ ریز",Icirc:"حرف I بزرگ لاتین با خمان",Iuml:"حرف I بزرگ لاتین با نشان سواگیری",ETH:"حرف لاتین بزرگ واکه ترتیبی",Ntilde:"حرف N بزرگ لاتین با مد", -Ograve:"حرف O بزرگ لاتین با تلفظ درشت",Oacute:"حرف O بزرگ لاتین با تلفظ ریز",Ocirc:"حرف O بزرگ لاتین با خمان",Otilde:"حرف O بزرگ لاتین با مد",Ouml:"حرف O بزرگ لاتین با نشان سواگیری",times:"نشان ضربدر",Oslash:"حرف O بزرگ لاتین با میان خط",Ugrave:"حرف U بزرگ لاتین با تلفظ درشت",Uacute:"حرف U بزرگ لاتین با تلفظ ریز",Ucirc:"حرف U بزرگ لاتین با خمان",Uuml:"حرف U بزرگ لاتین با نشان سواگیری",Yacute:"حرف Y بزرگ لاتین با تلفظ ریز",THORN:"حرف بزرگ لاتین خاردار",szlig:"حرف کوچک لاتین شارپ s",agrave:"حرف a کوچک لاتین با تلفظ درشت", -aacute:"حرف a کوچک لاتین با تلفظ ریز",acirc:"حرف a کوچک لاتین با خمان",atilde:"حرف a کوچک لاتین با صدای کامی",auml:"حرف a کوچک لاتین با نشان سواگیری",aring:"حرف a کوچک لاتین گوشواره دار",aelig:"حرف کوچک لاتین æ",ccedil:"حرف c کوچک لاتین با نشان سدیل",egrave:"حرف e کوچک لاتین با تلفظ درشت",eacute:"حرف e کوچک لاتین با تلفظ ریز",ecirc:"حرف e کوچک لاتین با خمان",euml:"حرف e کوچک لاتین با نشان سواگیری",igrave:"حرف i کوچک لاتین با تلفظ درشت",iacute:"حرف i کوچک لاتین با تلفظ ریز",icirc:"حرف i کوچک لاتین با خمان", -iuml:"حرف i کوچک لاتین با نشان سواگیری",eth:"حرف کوچک لاتین eth",ntilde:"حرف n کوچک لاتین با صدای کامی",ograve:"حرف o کوچک لاتین با تلفظ درشت",oacute:"حرف o کوچک لاتین با تلفظ زیر",ocirc:"حرف o کوچک لاتین با خمان",otilde:"حرف o کوچک لاتین با صدای کامی",ouml:"حرف o کوچک لاتین با نشان سواگیری",divide:"نشان بخش",oslash:"حرف o کوچک لاتین با میان خط",ugrave:"حرف u کوچک لاتین با تلفظ درشت",uacute:"حرف u کوچک لاتین با تلفظ ریز",ucirc:"حرف u کوچک لاتین با خمان",uuml:"حرف u کوچک لاتین با نشان سواگیری",yacute:"حرف y کوچک لاتین با تلفظ ریز", -thorn:"حرف کوچک لاتین خاردار",yuml:"حرف y کوچک لاتین با نشان سواگیری",OElig:"بند بزرگ لاتین OE",oelig:"بند کوچک لاتین oe",372:"حرف W بزرگ لاتین با خمان",374:"حرف Y بزرگ لاتین با خمان",373:"حرف w کوچک لاتین با خمان",375:"حرف y کوچک لاتین با خمان",sbquo:"نشان نقل قول تکی زیر-9",8219:"نشان نقل قول تکی high-reversed-9",bdquo:"نقل قول دوتایی پایین-9",hellip:"حذف افقی",trade:"نشان تجاری",9658:"نشانگر سیاه جهت راست",bull:"گلوله",rarr:"فلش راست",rArr:"فلش دوتایی راست",hArr:"فلش دوتایی چپ راست",diams:"نشان الماس سیاه", -asymp:"تقریبا برابر با"}); \ No newline at end of file diff --git a/admin/plugins/ckeditor/plugins/specialchar/dialogs/lang/fi.js b/admin/plugins/ckeditor/plugins/specialchar/dialogs/lang/fi.js deleted file mode 100644 index af6f910..0000000 --- a/admin/plugins/ckeditor/plugins/specialchar/dialogs/lang/fi.js +++ /dev/null @@ -1,13 +0,0 @@ -/* - Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. - For licensing, see LICENSE.md or http://ckeditor.com/license -*/ -CKEDITOR.plugins.setLang("specialchar","fi",{euro:"Euron merkki",lsquo:"Vasen yksittäinen lainausmerkki",rsquo:"Oikea yksittäinen lainausmerkki",ldquo:"Vasen kaksoislainausmerkki",rdquo:"Oikea kaksoislainausmerkki",ndash:"En dash",mdash:"Em dash",iexcl:"Inverted exclamation mark",cent:"Sentin merkki",pound:"Punnan merkki",curren:"Valuuttamerkki",yen:"Yenin merkki",brvbar:"Broken bar",sect:"Section sign",uml:"Diaeresis",copy:"Copyright sign",ordf:"Feminine ordinal indicator",laquo:"Left-pointing double angle quotation mark", -not:"Not sign",reg:"Rekisteröity merkki",macr:"Macron",deg:"Asteen merkki",sup2:"Yläindeksi kaksi",sup3:"Yläindeksi kolme",acute:"Acute accent",micro:"Mikron merkki",para:"Pilcrow sign",middot:"Middle dot",cedil:"Cedilla",sup1:"Yläindeksi yksi",ordm:"Masculine ordinal indicator",raquo:"Right-pointing double angle quotation mark",frac14:"Vulgar fraction one quarter",frac12:"Vulgar fraction one half",frac34:"Vulgar fraction three quarters",iquest:"Ylösalaisin oleva kysymysmerkki",Agrave:"Latin capital letter A with grave accent", -Aacute:"Latin capital letter A with acute accent",Acirc:"Latin capital letter A with circumflex",Atilde:"Latin capital letter A with tilde",Auml:"Latin capital letter A with diaeresis",Aring:"Latin capital letter A with ring above",AElig:"Latin capital letter Æ",Ccedil:"Latin capital letter C with cedilla",Egrave:"Latin capital letter E with grave accent",Eacute:"Latin capital letter E with acute accent",Ecirc:"Latin capital letter E with circumflex",Euml:"Latin capital letter E with diaeresis",Igrave:"Latin capital letter I with grave accent", -Iacute:"Latin capital letter I with acute accent",Icirc:"Latin capital letter I with circumflex",Iuml:"Latin capital letter I with diaeresis",ETH:"Latin capital letter Eth",Ntilde:"Latin capital letter N with tilde",Ograve:"Latin capital letter O with grave accent",Oacute:"Latin capital letter O with acute accent",Ocirc:"Latin capital letter O with circumflex",Otilde:"Latin capital letter O with tilde",Ouml:"Latin capital letter O with diaeresis",times:"Kertomerkki",Oslash:"Latin capital letter O with stroke", -Ugrave:"Latin capital letter U with grave accent",Uacute:"Latin capital letter U with acute accent",Ucirc:"Latin capital letter U with circumflex",Uuml:"Latin capital letter U with diaeresis",Yacute:"Latin capital letter Y with acute accent",THORN:"Latin capital letter Thorn",szlig:"Latin small letter sharp s",agrave:"Latin small letter a with grave accent",aacute:"Latin small letter a with acute accent",acirc:"Latin small letter a with circumflex",atilde:"Latin small letter a with tilde",auml:"Latin small letter a with diaeresis", -aring:"Latin small letter a with ring above",aelig:"Latin small letter æ",ccedil:"Latin small letter c with cedilla",egrave:"Latin small letter e with grave accent",eacute:"Latin small letter e with acute accent",ecirc:"Latin small letter e with circumflex",euml:"Latin small letter e with diaeresis",igrave:"Latin small letter i with grave accent",iacute:"Latin small letter i with acute accent",icirc:"Latin small letter i with circumflex",iuml:"Latin small letter i with diaeresis",eth:"Latin small letter eth", -ntilde:"Latin small letter n with tilde",ograve:"Latin small letter o with grave accent",oacute:"Latin small letter o with acute accent",ocirc:"Latin small letter o with circumflex",otilde:"Latin small letter o with tilde",ouml:"Latin small letter o with diaeresis",divide:"Jakomerkki",oslash:"Latin small letter o with stroke",ugrave:"Latin small letter u with grave accent",uacute:"Latin small letter u with acute accent",ucirc:"Latin small letter u with circumflex",uuml:"Latin small letter u with diaeresis", -yacute:"Latin small letter y with acute accent",thorn:"Latin small letter thorn",yuml:"Latin small letter y with diaeresis",OElig:"Latin capital ligature OE",oelig:"Latin small ligature oe",372:"Latin capital letter W with circumflex",374:"Latin capital letter Y with circumflex",373:"Latin small letter w with circumflex",375:"Latin small letter y with circumflex",sbquo:"Single low-9 quotation mark",8219:"Single high-reversed-9 quotation mark",bdquo:"Double low-9 quotation mark",hellip:"Horizontal ellipsis", -trade:"Tavaramerkki merkki",9658:"Black right-pointing pointer",bull:"Bullet",rarr:"Nuoli oikealle",rArr:"Kaksoisnuoli oikealle",hArr:"Kaksoisnuoli oikealle ja vasemmalle",diams:"Black diamond suit",asymp:"Noin"}); \ No newline at end of file diff --git a/admin/plugins/ckeditor/plugins/specialchar/dialogs/lang/fr-ca.js b/admin/plugins/ckeditor/plugins/specialchar/dialogs/lang/fr-ca.js deleted file mode 100644 index 5cda5e8..0000000 --- a/admin/plugins/ckeditor/plugins/specialchar/dialogs/lang/fr-ca.js +++ /dev/null @@ -1,10 +0,0 @@ -/* - Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. - For licensing, see LICENSE.md or http://ckeditor.com/license -*/ -CKEDITOR.plugins.setLang("specialchar","fr-ca",{euro:"Symbole Euro",lsquo:"Guillemet simple ouvrant",rsquo:"Guillemet simple fermant",ldquo:"Guillemet double ouvrant",rdquo:"Guillemet double fermant",ndash:"Tiret haut",mdash:"Tiret",iexcl:"Point d'exclamation inversé",cent:"Symbole de cent",pound:"Symbole de Livre Sterling",curren:"Symbole monétaire",yen:"Symbole du Yen",brvbar:"Barre scindée",sect:"Symbole de section",uml:"Tréma",copy:"Symbole de copyright",ordf:"Indicateur ordinal féminin",laquo:"Guillemet français ouvrant", -not:"Indicateur de négation",reg:"Symbole de marque déposée",macr:"Macron",deg:"Degré",sup2:"Exposant 2",sup3:"Exposant 3",acute:"Accent aigüe",micro:"Symbole micro",para:"Paragraphe",middot:"Point médian",cedil:"Cédille",sup1:"Exposant 1",ordm:"Indicateur ordinal masculin",raquo:"Guillemet français fermant",frac14:"Un quart",frac12:"Une demi",frac34:"Trois quart",iquest:"Point d'interrogation inversé",Agrave:"A accent grave",Aacute:"A accent aigüe",Acirc:"A circonflexe",Atilde:"A tilde",Auml:"A tréma", -Aring:"A avec un rond au dessus",AElig:"Æ majuscule",Ccedil:"C cédille",Egrave:"E accent grave",Eacute:"E accent aigüe",Ecirc:"E accent circonflexe",Euml:"E tréma",Igrave:"I accent grave",Iacute:"I accent aigüe",Icirc:"I accent circonflexe",Iuml:"I tréma",ETH:"Lettre majuscule islandaise ED",Ntilde:"N tilde",Ograve:"O accent grave",Oacute:"O accent aigüe",Ocirc:"O accent circonflexe",Otilde:"O tilde",Ouml:"O tréma",times:"Symbole de multiplication",Oslash:"O barré",Ugrave:"U accent grave",Uacute:"U accent aigüe", -Ucirc:"U accent circonflexe",Uuml:"U tréma",Yacute:"Y accent aigüe",THORN:"Lettre islandaise Thorn majuscule",szlig:"Lettre minuscule allemande s dur",agrave:"a accent grave",aacute:"a accent aigüe",acirc:"a accent circonflexe",atilde:"a tilde",auml:"a tréma",aring:"a avec un cercle au dessus",aelig:"æ",ccedil:"c cédille",egrave:"e accent grave",eacute:"e accent aigüe",ecirc:"e accent circonflexe",euml:"e tréma",igrave:"i accent grave",iacute:"i accent aigüe",icirc:"i accent circonflexe",iuml:"i tréma", -eth:"Lettre minuscule islandaise ED",ntilde:"n tilde",ograve:"o accent grave",oacute:"o accent aigüe",ocirc:"O accent circonflexe",otilde:"O tilde",ouml:"O tréma",divide:"Symbole de division",oslash:"o barré",ugrave:"u accent grave",uacute:"u accent aigüe",ucirc:"u accent circonflexe",uuml:"u tréma",yacute:"y accent aigüe",thorn:"Lettre islandaise thorn minuscule",yuml:"y tréma",OElig:"ligature majuscule latine Œ",oelig:"ligature minuscule latine œ",372:"W accent circonflexe",374:"Y accent circonflexe", -373:"w accent circonflexe",375:"y accent circonflexe",sbquo:"Guillemet simple fermant",8219:"Guillemet-virgule supérieur culbuté",bdquo:"Guillemet-virgule double inférieur",hellip:"Points de suspension",trade:"Symbole de marque déposée",9658:"Flèche noire pointant vers la droite",bull:"Puce",rarr:"Flèche vers la droite",rArr:"Flèche double vers la droite",hArr:"Flèche double vers la gauche",diams:"Carreau",asymp:"Presque égal"}); \ No newline at end of file diff --git a/admin/plugins/ckeditor/plugins/specialchar/dialogs/lang/fr.js b/admin/plugins/ckeditor/plugins/specialchar/dialogs/lang/fr.js deleted file mode 100644 index 88a6343..0000000 --- a/admin/plugins/ckeditor/plugins/specialchar/dialogs/lang/fr.js +++ /dev/null @@ -1,12 +0,0 @@ -/* - Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. - For licensing, see LICENSE.md or http://ckeditor.com/license -*/ -CKEDITOR.plugins.setLang("specialchar","fr",{euro:"Symbole euro",lsquo:"Guillemet simple ouvrant",rsquo:"Guillemet simple fermant",ldquo:"Guillemet double ouvrant",rdquo:"Guillemet double fermant",ndash:"Tiret demi-cadratin",mdash:"Tiret cadratin",iexcl:"Point d'exclamation inversé",cent:"Symbole cent",pound:"Symbole Livre sterling",curren:"Symbole monétaire",yen:"Symbole yen",brvbar:"Barre verticale scindée",sect:"Signe de section",uml:"Tréma",copy:"Symbole Copyright",ordf:"Indicateur ordinal féminin", -laquo:"Guillemet français ouvrant",not:"Crochet de négation",reg:"Symbole de marque déposée",macr:"Macron",deg:"Symbole degré",sup2:"Exposant 2",sup3:"Exposant 3",acute:"Accent aigu",micro:"Symbole micro",para:"Symbole pied-de-mouche",middot:"Point médian",cedil:"Cédille",sup1:"Exposant 1",ordm:"Indicateur ordinal masculin",raquo:"Guillemet français fermant",frac14:"Fraction un quart",frac12:"Fraction un demi",frac34:"Fraction trois quarts",iquest:"Point d'interrogation inversé",Agrave:"A accent grave majuscule", -Aacute:"A accent aigu majuscule",Acirc:"A accent circonflexe majuscule",Atilde:"A caron majuscule",Auml:"A tréma majuscule",Aring:"A rond majuscule",AElig:"Ligature Æ majuscule",Ccedil:"C cédille majuscule",Egrave:"E accent grave majuscule",Eacute:"E accent aigu majuscule",Ecirc:"E accent circonflexe majuscule",Euml:"E tréma majuscule",Igrave:"I accent grave majuscule",Iacute:"I accent aigu majuscule",Icirc:"I accent circonflexe majuscule",Iuml:"I tréma majuscule",ETH:"Lettre majuscule islandaise ED", -Ntilde:"N caron majuscule",Ograve:"O accent grave majuscule",Oacute:"O accent aigu majuscule",Ocirc:"O accent circonflexe majuscule",Otilde:"O caron majuscule",Ouml:"O tréma majuscule",times:"Symbole de multiplication",Oslash:"O barré majuscule",Ugrave:"U accent grave majuscule",Uacute:"U accent aigu majuscule",Ucirc:"U accent circonflexe majuscule",Uuml:"U tréma majuscule",Yacute:"Y accent aigu majuscule",THORN:"Lettre islandaise thorn majuscule",szlig:"Lettre minuscule allemande S dur",agrave:"A accent grave minuscule", -aacute:"A accent aigu minuscule",acirc:"A accent circonflexe minuscule",atilde:"A tilde minuscule",auml:"A tréma minuscule",aring:"A rond minuscule",aelig:"Ligature Æ minuscule",ccedil:"C cédille minuscule",egrave:"E accent grave minuscule",eacute:"E accent aigu minuscule",ecirc:"E accent circonflexe minuscule",euml:"E tréma minuscule",igrave:"I accent grave minuscule",iacute:"I accent aigu minuscule",icirc:"I accent circonflexe minuscule",iuml:"i minuscule tréma",eth:"Lettre minuscule islandaise ED", -ntilde:"N caron minuscule",ograve:"O minuscule accent grave",oacute:"O accent aigu minuscule",ocirc:"O accent circonflexe minuscule",otilde:"O tilde minuscule",ouml:"O tréma minuscule",divide:"Symbole de division",oslash:"O barré minuscule",ugrave:"U accent grave minuscule",uacute:"U accent aigu minuscule",ucirc:"U accent circonflexe minuscule",uuml:"U tréma minuscule",yacute:"Y accent aigu minuscule",thorn:"Lettre islandaise thorn minuscule",yuml:"Y tréma minuscule",OElig:"Ligature Œ majuscule", -oelig:"Ligature Œ minuscule",372:"W accent circonflexe majuscule",374:"Y accent circonflexe majuscule",373:"W accent circonflexe minuscule",375:"Y accent circonflexe minuscule",sbquo:"Guillemet simple fermant inférieur",8219:"Guillemet-virgule supérieur culbuté",bdquo:"Guillemet-virgule double inférieur",hellip:"Points de suspension",trade:"Symbole de marque commerciale",9658:"Flèche noire pointant vers la droite",bull:"Gros point médian",rarr:"Flèche vers la droite",rArr:"Double flèche vers la droite", -hArr:"Double flèche vers la gauche",diams:"Losange noir",asymp:"Environ égal"}); \ No newline at end of file diff --git a/admin/plugins/ckeditor/plugins/specialchar/dialogs/lang/gl.js b/admin/plugins/ckeditor/plugins/specialchar/dialogs/lang/gl.js deleted file mode 100644 index ef2a193..0000000 --- a/admin/plugins/ckeditor/plugins/specialchar/dialogs/lang/gl.js +++ /dev/null @@ -1,13 +0,0 @@ -/* - Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. - For licensing, see LICENSE.md or http://ckeditor.com/license -*/ -CKEDITOR.plugins.setLang("specialchar","gl",{euro:"Símbolo do euro",lsquo:"Comiña simple esquerda",rsquo:"Comiña simple dereita",ldquo:"Comiñas dobres esquerda",rdquo:"Comiñas dobres dereita",ndash:"Guión",mdash:"Raia",iexcl:"Signo de admiración invertido",cent:"Símbolo do centavo",pound:"Símbolo da libra",curren:"Símbolo de moeda",yen:"Símbolo do yen",brvbar:"Barra vertical rota",sect:"Símbolo de sección",uml:"Diérese",copy:"Símbolo de dereitos de autoría",ordf:"Indicador ordinal feminino",laquo:"Comiñas latinas, apertura", -not:"Signo negación",reg:"Símbolo de marca rexistrada",macr:"Guión alto",deg:"Signo de grao",sup2:"Superíndice dous",sup3:"Superíndice tres",acute:"Acento agudo",micro:"Signo de micro",para:"Signo de pi",middot:"Punto medio",cedil:"Cedilla",sup1:"Superíndice un",ordm:"Indicador ordinal masculino",raquo:"Comiñas latinas, peche",frac14:"Fracción ordinaria de un cuarto",frac12:"Fracción ordinaria de un medio",frac34:"Fracción ordinaria de tres cuartos",iquest:"Signo de interrogación invertido",Agrave:"Letra A latina maiúscula con acento grave", -Aacute:"Letra A latina maiúscula con acento agudo",Acirc:"Letra A latina maiúscula con acento circunflexo",Atilde:"Letra A latina maiúscula con til",Auml:"Letra A latina maiúscula con diérese",Aring:"Letra A latina maiúscula con aro enriba",AElig:"Letra Æ latina maiúscula",Ccedil:"Letra C latina maiúscula con cedilla",Egrave:"Letra E latina maiúscula con acento grave",Eacute:"Letra E latina maiúscula con acento agudo",Ecirc:"Letra E latina maiúscula con acento circunflexo",Euml:"Letra E latina maiúscula con diérese", -Igrave:"Letra I latina maiúscula con acento grave",Iacute:"Letra I latina maiúscula con acento agudo",Icirc:"Letra I latina maiúscula con acento circunflexo",Iuml:"Letra I latina maiúscula con diérese",ETH:"Letra Ed latina maiúscula",Ntilde:"Letra N latina maiúscula con til",Ograve:"Letra O latina maiúscula con acento grave",Oacute:"Letra O latina maiúscula con acento agudo",Ocirc:"Letra O latina maiúscula con acento circunflexo",Otilde:"Letra O latina maiúscula con til",Ouml:"Letra O latina maiúscula con diérese", -times:"Signo de multiplicación",Oslash:"Letra O latina maiúscula con barra transversal",Ugrave:"Letra U latina maiúscula con acento grave",Uacute:"Letra U latina maiúscula con acento agudo",Ucirc:"Letra U latina maiúscula con acento circunflexo",Uuml:"Letra U latina maiúscula con diérese",Yacute:"Letra Y latina maiúscula con acento agudo",THORN:"Letra Thorn latina maiúscula",szlig:"Letra s latina forte minúscula",agrave:"Letra a latina minúscula con acento grave",aacute:"Letra a latina minúscula con acento agudo", -acirc:"Letra a latina minúscula con acento circunflexo",atilde:"Letra a latina minúscula con til",auml:"Letra a latina minúscula con diérese",aring:"Letra a latina minúscula con aro enriba",aelig:"Letra æ latina minúscula",ccedil:"Letra c latina minúscula con cedilla",egrave:"Letra e latina minúscula con acento grave",eacute:"Letra e latina minúscula con acento agudo",ecirc:"Letra e latina minúscula con acento circunflexo",euml:"Letra e latina minúscula con diérese",igrave:"Letra i latina minúscula con acento grave", -iacute:"Letra i latina minúscula con acento agudo",icirc:"Letra i latina minúscula con acento circunflexo",iuml:"Letra i latina minúscula con diérese",eth:"Letra ed latina minúscula",ntilde:"Letra n latina minúscula con til",ograve:"Letra o latina minúscula con acento grave",oacute:"Letra o latina minúscula con acento agudo",ocirc:"Letra o latina minúscula con acento circunflexo",otilde:"Letra o latina minúscula con til",ouml:"Letra o latina minúscula con diérese",divide:"Signo de división",oslash:"Letra o latina minúscula con barra transversal", -ugrave:"Letra u latina minúscula con acento grave",uacute:"Letra u latina minúscula con acento agudo",ucirc:"Letra u latina minúscula con acento circunflexo",uuml:"Letra u latina minúscula con diérese",yacute:"Letra y latina minúscula con acento agudo",thorn:"Letra Thorn latina minúscula",yuml:"Letra y latina minúscula con diérese",OElig:"Ligadura OE latina maiúscula",oelig:"Ligadura oe latina minúscula",372:"Letra W latina maiúscula con acento circunflexo",374:"Letra Y latina maiúscula con acento circunflexo", -373:"Letra w latina minúscula con acento circunflexo",375:"Letra y latina minúscula con acento circunflexo",sbquo:"Comiña simple baixa, de apertura",8219:"Comiña simple alta, de peche",bdquo:"Comiñas dobres baixas, de apertura",hellip:"Elipse, puntos suspensivos",trade:"Signo de marca rexistrada",9658:"Apuntador negro apuntando á dereita",bull:"Viñeta",rarr:"Frecha á dereita",rArr:"Frecha dobre á dereita",hArr:"Frecha dobre da esquerda á dereita",diams:"Diamante negro",asymp:"Case igual a"}); \ No newline at end of file diff --git a/admin/plugins/ckeditor/plugins/specialchar/dialogs/lang/he.js b/admin/plugins/ckeditor/plugins/specialchar/dialogs/lang/he.js deleted file mode 100644 index 2d6d956..0000000 --- a/admin/plugins/ckeditor/plugins/specialchar/dialogs/lang/he.js +++ /dev/null @@ -1,12 +0,0 @@ -/* - Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. - For licensing, see LICENSE.md or http://ckeditor.com/license -*/ -CKEDITOR.plugins.setLang("specialchar","he",{euro:"יורו",lsquo:"סימן ציטוט יחיד שמאלי",rsquo:"סימן ציטוט יחיד ימני",ldquo:"סימן ציטוט כפול שמאלי",rdquo:"סימן ציטוט כפול ימני",ndash:"קו מפריד קצר",mdash:"קו מפריד ארוך",iexcl:"סימן קריאה הפוך",cent:"סנט",pound:"פאונד",curren:"מטבע",yen:"ין",brvbar:"קו שבור",sect:"סימן מקטע",uml:"שתי נקודות אופקיות (Diaeresis)",copy:"סימן זכויות יוצרים (Copyright)",ordf:"סימן אורדינאלי נקבי",laquo:"סימן ציטוט זווית כפולה לשמאל",not:"סימן שלילה מתמטי",reg:"סימן רשום", -macr:"מקרון (הגיה ארוכה)",deg:"מעלות",sup2:"2 בכתיב עילי",sup3:"3 בכתיב עילי",acute:"סימן דגוש (Acute)",micro:"מיקרו",para:"סימון פסקה",middot:"נקודה אמצעית",cedil:"סדיליה",sup1:"1 בכתיב עילי",ordm:"סימן אורדינאלי זכרי",raquo:"סימן ציטוט זווית כפולה לימין",frac14:"רבע בשבר פשוט",frac12:"חצי בשבר פשוט",frac34:"שלושה רבעים בשבר פשוט",iquest:"סימן שאלה הפוך",Agrave:"אות לטינית A עם גרש (Grave)",Aacute:"Latin capital letter A with acute accent",Acirc:"Latin capital letter A with circumflex",Atilde:"Latin capital letter A with tilde", -Auml:"Latin capital letter A with diaeresis",Aring:"Latin capital letter A with ring above",AElig:"אות לטינית Æ גדולה",Ccedil:"Latin capital letter C with cedilla",Egrave:"אות לטינית E עם גרש (Grave)",Eacute:"Latin capital letter E with acute accent",Ecirc:"Latin capital letter E with circumflex",Euml:"Latin capital letter E with diaeresis",Igrave:"אות לטינית I עם גרש (Grave)",Iacute:"Latin capital letter I with acute accent",Icirc:"Latin capital letter I with circumflex",Iuml:"Latin capital letter I with diaeresis", -ETH:"אות לטינית Eth גדולה",Ntilde:"Latin capital letter N with tilde",Ograve:"אות לטינית O עם גרש (Grave)",Oacute:"Latin capital letter O with acute accent",Ocirc:"Latin capital letter O with circumflex",Otilde:"Latin capital letter O with tilde",Ouml:"Latin capital letter O with diaeresis",times:"סימן כפל",Oslash:"Latin capital letter O with stroke",Ugrave:"אות לטינית U עם גרש (Grave)",Uacute:"Latin capital letter U with acute accent",Ucirc:"Latin capital letter U with circumflex",Uuml:"Latin capital letter U with diaeresis", -Yacute:"Latin capital letter Y with acute accent",THORN:"אות לטינית Thorn גדולה",szlig:"אות לטינית s חדה קטנה",agrave:"אות לטינית a עם גרש (Grave)",aacute:"Latin small letter a with acute accent",acirc:"Latin small letter a with circumflex",atilde:"Latin small letter a with tilde",auml:"Latin small letter a with diaeresis",aring:"Latin small letter a with ring above",aelig:"אות לטינית æ קטנה",ccedil:"Latin small letter c with cedilla",egrave:"אות לטינית e עם גרש (Grave)",eacute:"Latin small letter e with acute accent", -ecirc:"Latin small letter e with circumflex",euml:"Latin small letter e with diaeresis",igrave:"אות לטינית i עם גרש (Grave)",iacute:"Latin small letter i with acute accent",icirc:"Latin small letter i with circumflex",iuml:"Latin small letter i with diaeresis",eth:"אות לטינית eth קטנה",ntilde:"Latin small letter n with tilde",ograve:"אות לטינית o עם גרש (Grave)",oacute:"Latin small letter o with acute accent",ocirc:"Latin small letter o with circumflex",otilde:"Latin small letter o with tilde",ouml:"Latin small letter o with diaeresis", -divide:"סימן חלוקה",oslash:"Latin small letter o with stroke",ugrave:"אות לטינית u עם גרש (Grave)",uacute:"Latin small letter u with acute accent",ucirc:"Latin small letter u with circumflex",uuml:"Latin small letter u with diaeresis",yacute:"Latin small letter y with acute accent",thorn:"אות לטינית thorn קטנה",yuml:"Latin small letter y with diaeresis",OElig:"Latin capital ligature OE",oelig:"Latin small ligature oe",372:"Latin capital letter W with circumflex",374:"Latin capital letter Y with circumflex", -373:"Latin small letter w with circumflex",375:"Latin small letter y with circumflex",sbquo:"סימן ציטוט נמוך יחיד",8219:"סימן ציטוט",bdquo:"סימן ציטוט נמוך כפול",hellip:"שלוש נקודות",trade:"סימן טריידמארק",9658:"סמן שחור לצד ימין",bull:"תבליט (רשימה)",rarr:"חץ לימין",rArr:"חץ כפול לימין",hArr:"חץ כפול לימין ושמאל",diams:"יהלום מלא",asymp:"כמעט שווה"}); \ No newline at end of file diff --git a/admin/plugins/ckeditor/plugins/specialchar/dialogs/lang/hr.js b/admin/plugins/ckeditor/plugins/specialchar/dialogs/lang/hr.js deleted file mode 100644 index 5ea4e78..0000000 --- a/admin/plugins/ckeditor/plugins/specialchar/dialogs/lang/hr.js +++ /dev/null @@ -1,13 +0,0 @@ -/* - Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. - For licensing, see LICENSE.md or http://ckeditor.com/license -*/ -CKEDITOR.plugins.setLang("specialchar","hr",{euro:"Euro znak",lsquo:"Lijevi jednostruki navodnik",rsquo:"Desni jednostruki navodnik",ldquo:"Lijevi dvostruki navodnik",rdquo:"Desni dvostruki navodnik",ndash:"En crtica",mdash:"Em crtica",iexcl:"Naopaki uskličnik",cent:"Cent znak",pound:"Funta znak",curren:"Znak valute",yen:"Yen znak",brvbar:"Potrgana prečka",sect:"Znak odjeljka",uml:"Prijeglasi",copy:"Copyright znak",ordf:"Ženska redna oznaka",laquo:"Lijevi dvostruki uglati navodnik",not:"Not znak", -reg:"Registered znak",macr:"Crta iznad",deg:"Stupanj znak",sup2:"Eksponent 2",sup3:"Eksponent tri",acute:"Akcent",micro:"Mikro znak",para:"Znak paragrafa",middot:"Srednja točka",cedil:"Cedilla",sup1:"Eksponent 1",ordm:"Muška redna oznaka",raquo:"Desni dvostruku uglati navodnik",frac14:"Četvrtina",frac12:"Polovina",frac34:"Tri četvrtine",iquest:"Naopaki upitnik",Agrave:"Veliko latinsko slovo A s akcentom",Aacute:"Latinično veliko slovo A sa oštrim naglaskom",Acirc:"Latinično veliko slovo A sa circumflex", -Atilde:"Latinično veliko slovo A sa tildom",Auml:"Latinično veliko slovo A sa diaeresis",Aring:"Latinično veliko slovo A sa gornjim prstenom",AElig:"Latinično veliko slovo Æ",Ccedil:"Veliko latinično slovo C sa cedilla",Egrave:"Veliko latinično slovo E sa akcentom",Eacute:"Veliko latinično slovo E sa akcentom",Ecirc:"Veliko latinično slovo E sa circumflex",Euml:"Veliko latinično slovo E sa diaresis",Igrave:"Veliko latinično slovo I sa akcentom",Iacute:"Veliko latinično slovo I sa akcentom",Icirc:"Veliko latinično slovo I sa circumflex", -Iuml:"Veliko latinično slovo I sa diaresis",ETH:"Veliko latinično slovo Eth",Ntilde:"Veliko latinično slovo N sa tildom",Ograve:"Veliko latinično slovo O sa akcentom",Oacute:"Veliko latinično slovo O sa akcentom",Ocirc:"Veliko latinično slovo O sa circumflex",Otilde:"Veliko latinično slovo O sa tildom",Ouml:"Veliko latinično slovo O sa diaresis",times:"Znak množenja",Oslash:"Veliko latinično slovo O sa crtom",Ugrave:"Veliko latinično slovo U sa akcentom",Uacute:"Veliko latinično slovo U sa akcentom", -Ucirc:"Veliko latinično slovo U sa circumflex",Uuml:"Veliko latinično slovo U sa diaresis",Yacute:"Veliko latinično slovo Y sa akcentom",THORN:"Veliko latinično slovo Trn",szlig:"Malo latinično slovo oštro s",agrave:"Malo latinično slovo a sa akcentom",aacute:"Malo latinično slovo sa akcentom",acirc:"Malo latinično slovo a sa circumflex",atilde:"Malo latinično slovo a sa tildom",auml:"Malo latinično slovo a sa diaresis",aring:"Malo latinično slovo a sa gornjim prstenom",aelig:"Malo latinično slovo æ", -ccedil:"Malo latinično slovo e sa cedilla",egrave:"Malo latinično slovo e sa akcentom",eacute:"Malo latinično slovo e sa akcentom",ecirc:"Malo latinično slovo e sa circumflex",euml:"Malo latinično slovo e sa diaresis",igrave:"Malo latinično slovo i sa akcentom",iacute:"Malo latinično slovo i sa akcentom",icirc:"Malo latinično slovo i sa circumflex",iuml:"Malo latinično slovo i sa diaresis",eth:"Malo latinično slovo eth",ntilde:"Malo latinično slovo n sa tildom",ograve:"Malo latinično slovo o sa akcentom", -oacute:"Malo latinično slovo o sa akcentom",ocirc:"Malo latinično slovo o sa circumflex",otilde:"Malo latinično slovo o sa tildom",ouml:"Malo latinično slovo o sa diaresis",divide:"Znak dijeljenja",oslash:"Malo latinično slovo o sa crtom",ugrave:"Malo latinično slovo s akcentom",uacute:"Malo latinično slovo u sa akcentom",ucirc:"Malo latinično slovo sa circumflex",uuml:"Malo latinično slovo u sa diaresis",yacute:"Malo latinično slovo y s akcentom",thorn:"Malo latinično slovo Trn",yuml:"Malo latinično slovo y sa diaresis", -OElig:"Veliko latinično slovo OE",oelig:"Malo latinično slovoe OE",372:"Veliko latinično slovo W sa circumflex",374:"Veliko latinično slovo Y sa circumflex",373:"Malo latinično slovo w sa circumflex",375:"Malo latinično slovo y sa circumflex",sbquo:"Jednostruki donji navodnik",8219:"Jednostruki gornji navodnik",bdquo:"Dvostruki donji navodnik",hellip:"Tri točkice",trade:"TM znak",9658:"Crni desni pokazivač",bull:"Bullet",rarr:"Desna strelica",rArr:"Desna dvostruka strelica",hArr:"Dvostruka strelica", -diams:"Crni dijamant",asymp:"Približno"}); \ No newline at end of file diff --git a/admin/plugins/ckeditor/plugins/specialchar/dialogs/lang/hu.js b/admin/plugins/ckeditor/plugins/specialchar/dialogs/lang/hu.js deleted file mode 100644 index 944721f..0000000 --- a/admin/plugins/ckeditor/plugins/specialchar/dialogs/lang/hu.js +++ /dev/null @@ -1,12 +0,0 @@ -/* - Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. - For licensing, see LICENSE.md or http://ckeditor.com/license -*/ -CKEDITOR.plugins.setLang("specialchar","hu",{euro:"Euró jel",lsquo:"Bal szimpla idézőjel",rsquo:"Jobb szimpla idézőjel",ldquo:"Bal dupla idézőjel",rdquo:"Jobb dupla idézőjel",ndash:"Rövid gondolatjel",mdash:"Hosszú gondolatjel",iexcl:"Fordított felkiáltójel",cent:"Cent jel",pound:"Font jel",curren:"Valuta jel",yen:"Yen jel",brvbar:"Hosszú kettőspont",sect:"Paragrafus jel",uml:"Kettős hangzó jel",copy:"Szerzői jog jel",ordf:"Női sorrend mutatója",laquo:"Balra mutató duplanyíl",not:"Feltételes kötőjel", -reg:"Bejegyzett védjegy jele",macr:"Hosszúsági jel",deg:"Fok jel",sup2:"Négyzeten jel",sup3:"Köbön jel",acute:"Éles ékezet",micro:"Mikro-jel",para:"Bekezdés jel",middot:"Közép pont",cedil:"Cédille",sup1:"Elsőn jel",ordm:"Férfi sorrend mutatója",raquo:"Jobbra mutató duplanyíl",frac14:"Egy negyed jel",frac12:"Egy ketted jel",frac34:"Három negyed jel",iquest:"Fordított kérdőjel",Agrave:"Latin nagy A fordított ékezettel",Aacute:"Latin nagy A normál ékezettel",Acirc:"Latin nagy A hajtott ékezettel",Atilde:"Latin nagy A hullámjellel", -Auml:"Latin nagy A kettőspont ékezettel",Aring:"Latin nagy A gyűrű ékezettel",AElig:"Latin nagy Æ betű",Ccedil:"Latin nagy C cedillával",Egrave:"Latin nagy E fordított ékezettel",Eacute:"Latin nagy E normál ékezettel",Ecirc:"Latin nagy E hajtott ékezettel",Euml:"Latin nagy E dupla kettőspont ékezettel",Igrave:"Latin nagy I fordított ékezettel",Iacute:"Latin nagy I normál ékezettel",Icirc:"Latin nagy I hajtott ékezettel",Iuml:"Latin nagy I kettőspont ékezettel",ETH:"Latin nagy Eth betű",Ntilde:"Latin nagy N hullámjellel", -Ograve:"Latin nagy O fordított ékezettel",Oacute:"Latin nagy O normál ékezettel",Ocirc:"Latin nagy O hajtott ékezettel",Otilde:"Latin nagy O hullámjellel",Ouml:"Latin nagy O kettőspont ékezettel",times:"Szorzás jel",Oslash:"Latin O betű áthúzással",Ugrave:"Latin nagy U fordított ékezettel",Uacute:"Latin nagy U normál ékezettel",Ucirc:"Latin nagy U hajtott ékezettel",Uuml:"Latin nagy U kettőspont ékezettel",Yacute:"Latin nagy Y normál ékezettel",THORN:"Latin nagy Thorn betű",szlig:"Latin kis s betű", -agrave:"Latin kis a fordított ékezettel",aacute:"Latin kis a normál ékezettel",acirc:"Latin kis a hajtott ékezettel",atilde:"Latin kis a hullámjellel",auml:"Latin kis a kettőspont ékezettel",aring:"Latin kis a gyűrű ékezettel",aelig:"Latin kis æ betű",ccedil:"Latin kis c cedillával",egrave:"Latin kis e fordított ékezettel",eacute:"Latin kis e normál ékezettel",ecirc:"Latin kis e hajtott ékezettel",euml:"Latin kis e dupla kettőspont ékezettel",igrave:"Latin kis i fordított ékezettel",iacute:"Latin kis i normál ékezettel", -icirc:"Latin kis i hajtott ékezettel",iuml:"Latin kis i kettőspont ékezettel",eth:"Latin kis eth betű",ntilde:"Latin kis n hullámjellel",ograve:"Latin kis o fordított ékezettel",oacute:"Latin kis o normál ékezettel",ocirc:"Latin kis o hajtott ékezettel",otilde:"Latin kis o hullámjellel",ouml:"Latin kis o kettőspont ékezettel",divide:"Osztásjel",oslash:"Latin kis o betű áthúzással",ugrave:"Latin kis u fordított ékezettel",uacute:"Latin kis u normál ékezettel",ucirc:"Latin kis u hajtott ékezettel", -uuml:"Latin kis u kettőspont ékezettel",yacute:"Latin kis y normál ékezettel",thorn:"Latin kis thorn jel",yuml:"Latin kis y kettőspont ékezettel",OElig:"Latin nagy OE-jel",oelig:"Latin kis oe-jel",372:"Latin nagy W hajtott ékezettel",374:"Latin nagy Y hajtott ékezettel",373:"Latin kis w hajtott ékezettel",375:"Latin kis y hajtott ékezettel",sbquo:"Nyitó nyomdai szimpla idézőjel",8219:"Záró nyomdai záró idézőjel",bdquo:"Nyitó nyomdai dupla idézőjel",hellip:"Három pont",trade:"Kereskedelmi védjegy jele", -9658:"Jobbra mutató fekete mutató",bull:"Golyó",rarr:"Jobbra mutató nyíl",rArr:"Jobbra mutató duplanyíl",hArr:"Bal-jobb duplanyíl",diams:"Fekete gyémánt jel",asymp:"Majdnem egyenlő jel"}); \ No newline at end of file diff --git a/admin/plugins/ckeditor/plugins/specialchar/dialogs/lang/id.js b/admin/plugins/ckeditor/plugins/specialchar/dialogs/lang/id.js deleted file mode 100644 index 35ccd46..0000000 --- a/admin/plugins/ckeditor/plugins/specialchar/dialogs/lang/id.js +++ /dev/null @@ -1,13 +0,0 @@ -/* - Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. - For licensing, see LICENSE.md or http://ckeditor.com/license -*/ -CKEDITOR.plugins.setLang("specialchar","id",{euro:"Tanda Euro",lsquo:"Left single quotation mark",rsquo:"Right single quotation mark",ldquo:"Left double quotation mark",rdquo:"Right double quotation mark",ndash:"En dash",mdash:"Em dash",iexcl:"Inverted exclamation mark",cent:"Cent sign",pound:"Pound sign",curren:"Currency sign",yen:"Tanda Yen",brvbar:"Broken bar",sect:"Section sign",uml:"Diaeresis",copy:"Tanda Hak Cipta",ordf:"Feminine ordinal indicator",laquo:"Left-pointing double angle quotation mark", -not:"Not sign",reg:"Tanda Telah Terdaftar",macr:"Macron",deg:"Degree sign",sup2:"Superscript two",sup3:"Superscript three",acute:"Acute accent",micro:"Micro sign",para:"Pilcrow sign",middot:"Middle dot",cedil:"Cedilla",sup1:"Superscript one",ordm:"Masculine ordinal indicator",raquo:"Right-pointing double angle quotation mark",frac14:"Vulgar fraction one quarter",frac12:"Vulgar fraction one half",frac34:"Vulgar fraction three quarters",iquest:"Inverted question mark",Agrave:"Latin capital letter A with grave accent", -Aacute:"Latin capital letter A with acute accent",Acirc:"Latin capital letter A with circumflex",Atilde:"Latin capital letter A with tilde",Auml:"Latin capital letter A with diaeresis",Aring:"Latin capital letter A with ring above",AElig:"Latin capital letter Æ",Ccedil:"Latin capital letter C with cedilla",Egrave:"Latin capital letter E with grave accent",Eacute:"Latin capital letter E with acute accent",Ecirc:"Latin capital letter E with circumflex",Euml:"Latin capital letter E with diaeresis",Igrave:"Latin capital letter I with grave accent", -Iacute:"Latin capital letter I with acute accent",Icirc:"Latin capital letter I with circumflex",Iuml:"Latin capital letter I with diaeresis",ETH:"Latin capital letter Eth",Ntilde:"Latin capital letter N with tilde",Ograve:"Latin capital letter O with grave accent",Oacute:"Latin capital letter O with acute accent",Ocirc:"Latin capital letter O with circumflex",Otilde:"Latin capital letter O with tilde",Ouml:"Latin capital letter O with diaeresis",times:"Multiplication sign",Oslash:"Latin capital letter O with stroke", -Ugrave:"Latin capital letter U with grave accent",Uacute:"Latin capital letter U with acute accent",Ucirc:"Latin capital letter U with circumflex",Uuml:"Latin capital letter U with diaeresis",Yacute:"Latin capital letter Y with acute accent",THORN:"Latin capital letter Thorn",szlig:"Latin small letter sharp s",agrave:"Latin small letter a with grave accent",aacute:"Latin small letter a with acute accent",acirc:"Latin small letter a with circumflex",atilde:"Latin small letter a with tilde",auml:"Latin small letter a with diaeresis", -aring:"Latin small letter a with ring above",aelig:"Latin small letter æ",ccedil:"Latin small letter c with cedilla",egrave:"Latin small letter e with grave accent",eacute:"Latin small letter e with acute accent",ecirc:"Latin small letter e with circumflex",euml:"Latin small letter e with diaeresis",igrave:"Latin small letter i with grave accent",iacute:"Latin small letter i with acute accent",icirc:"Latin small letter i with circumflex",iuml:"Latin small letter i with diaeresis",eth:"Latin small letter eth", -ntilde:"Latin small letter n with tilde",ograve:"Latin small letter o with grave accent",oacute:"Latin small letter o with acute accent",ocirc:"Latin small letter o with circumflex",otilde:"Latin small letter o with tilde",ouml:"Latin small letter o with diaeresis",divide:"Division sign",oslash:"Latin small letter o with stroke",ugrave:"Latin small letter u with grave accent",uacute:"Latin small letter u with acute accent",ucirc:"Latin small letter u with circumflex",uuml:"Latin small letter u with diaeresis", -yacute:"Latin small letter y with acute accent",thorn:"Latin small letter thorn",yuml:"Latin small letter y with diaeresis",OElig:"Latin capital ligature OE",oelig:"Latin small ligature oe",372:"Latin capital letter W with circumflex",374:"Latin capital letter Y with circumflex",373:"Latin small letter w with circumflex",375:"Latin small letter y with circumflex",sbquo:"Single low-9 quotation mark",8219:"Single high-reversed-9 quotation mark",bdquo:"Double low-9 quotation mark",hellip:"Horizontal ellipsis", -trade:"Trade mark sign",9658:"Black right-pointing pointer",bull:"Bullet",rarr:"Rightwards arrow",rArr:"Rightwards double arrow",hArr:"Left right double arrow",diams:"Black diamond suit",asymp:"Almost equal to"}); \ No newline at end of file diff --git a/admin/plugins/ckeditor/plugins/specialchar/dialogs/lang/it.js b/admin/plugins/ckeditor/plugins/specialchar/dialogs/lang/it.js deleted file mode 100644 index ef772b9..0000000 --- a/admin/plugins/ckeditor/plugins/specialchar/dialogs/lang/it.js +++ /dev/null @@ -1,14 +0,0 @@ -/* - Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. - For licensing, see LICENSE.md or http://ckeditor.com/license -*/ -CKEDITOR.plugins.setLang("specialchar","it",{euro:"Simbolo Euro",lsquo:"Virgoletta singola sinistra",rsquo:"Virgoletta singola destra",ldquo:"Virgolette aperte",rdquo:"Virgolette chiuse",ndash:"Trattino",mdash:"Trattino lungo",iexcl:"Punto esclavamativo invertito",cent:"Simbolo Cent",pound:"Simbolo Sterlina",curren:"Simbolo Moneta",yen:"Simbolo Yen",brvbar:"Barra interrotta",sect:"Simbolo di sezione",uml:"Dieresi",copy:"Simbolo Copyright",ordf:"Indicatore ordinale femminile",laquo:"Virgolette basse aperte", -not:"Nessun segno",reg:"Simbolo Registrato",macr:"Macron",deg:"Simbolo Grado",sup2:"Apice Due",sup3:"Apice Tre",acute:"Accento acuto",micro:"Simbolo Micro",para:"Simbolo Paragrafo",middot:"Punto centrale",cedil:"Cediglia",sup1:"Apice Uno",ordm:"Indicatore ordinale maschile",raquo:"Virgolette basse chiuse",frac14:"Frazione volgare un quarto",frac12:"Frazione volgare un mezzo",frac34:"Frazione volgare tre quarti",iquest:"Punto interrogativo invertito",Agrave:"Lettera maiuscola latina A con accento grave", -Aacute:"Lettera maiuscola latina A con accento acuto",Acirc:"Lettera maiuscola latina A con accento circonflesso",Atilde:"Lettera maiuscola latina A con tilde",Auml:"Lettera maiuscola latina A con dieresi",Aring:"Lettera maiuscola latina A con anello sopra",AElig:"Lettera maiuscola latina Æ",Ccedil:"Lettera maiuscola latina C con cediglia",Egrave:"Lettera maiuscola latina E con accento grave",Eacute:"Lettera maiuscola latina E con accento acuto",Ecirc:"Lettera maiuscola latina E con accento circonflesso", -Euml:"Lettera maiuscola latina E con dieresi",Igrave:"Lettera maiuscola latina I con accento grave",Iacute:"Lettera maiuscola latina I con accento acuto",Icirc:"Lettera maiuscola latina I con accento circonflesso",Iuml:"Lettera maiuscola latina I con dieresi",ETH:"Lettera maiuscola latina Eth",Ntilde:"Lettera maiuscola latina N con tilde",Ograve:"Lettera maiuscola latina O con accento grave",Oacute:"Lettera maiuscola latina O con accento acuto",Ocirc:"Lettera maiuscola latina O con accento circonflesso", -Otilde:"Lettera maiuscola latina O con tilde",Ouml:"Lettera maiuscola latina O con dieresi",times:"Simbolo di moltiplicazione",Oslash:"Lettera maiuscola latina O barrata",Ugrave:"Lettera maiuscola latina U con accento grave",Uacute:"Lettera maiuscola latina U con accento acuto",Ucirc:"Lettera maiuscola latina U con accento circonflesso",Uuml:"Lettera maiuscola latina U con accento circonflesso",Yacute:"Lettera maiuscola latina Y con accento acuto",THORN:"Lettera maiuscola latina Thorn",szlig:"Lettera latina minuscola doppia S", -agrave:"Lettera minuscola latina a con accento grave",aacute:"Lettera minuscola latina a con accento acuto",acirc:"Lettera minuscola latina a con accento circonflesso",atilde:"Lettera minuscola latina a con tilde",auml:"Lettera minuscola latina a con dieresi",aring:"Lettera minuscola latina a con anello superiore",aelig:"Lettera minuscola latina ae",ccedil:"Lettera minuscola latina c con cediglia",egrave:"Lettera minuscola latina e con accento grave",eacute:"Lettera minuscola latina e con accento acuto", -ecirc:"Lettera minuscola latina e con accento circonflesso",euml:"Lettera minuscola latina e con dieresi",igrave:"Lettera minuscola latina i con accento grave",iacute:"Lettera minuscola latina i con accento acuto",icirc:"Lettera minuscola latina i con accento circonflesso",iuml:"Lettera minuscola latina i con dieresi",eth:"Lettera minuscola latina eth",ntilde:"Lettera minuscola latina n con tilde",ograve:"Lettera minuscola latina o con accento grave",oacute:"Lettera minuscola latina o con accento acuto", -ocirc:"Lettera minuscola latina o con accento circonflesso",otilde:"Lettera minuscola latina o con tilde",ouml:"Lettera minuscola latina o con dieresi",divide:"Simbolo di divisione",oslash:"Lettera minuscola latina o barrata",ugrave:"Lettera minuscola latina u con accento grave",uacute:"Lettera minuscola latina u con accento acuto",ucirc:"Lettera minuscola latina u con accento circonflesso",uuml:"Lettera minuscola latina u con dieresi",yacute:"Lettera minuscola latina y con accento acuto",thorn:"Lettera minuscola latina thorn", -yuml:"Lettera minuscola latina y con dieresi",OElig:"Legatura maiuscola latina OE",oelig:"Legatura minuscola latina oe",372:"Lettera maiuscola latina W con accento circonflesso",374:"Lettera maiuscola latina Y con accento circonflesso",373:"Lettera minuscola latina w con accento circonflesso",375:"Lettera minuscola latina y con accento circonflesso",sbquo:"Singola virgoletta bassa low-9",8219:"Singola virgoletta bassa low-9 inversa",bdquo:"Doppia virgoletta bassa low-9",hellip:"Ellissi orizzontale", -trade:"Simbolo TM",9658:"Puntatore nero rivolto verso destra",bull:"Punto",rarr:"Freccia verso destra",rArr:"Doppia freccia verso destra",hArr:"Doppia freccia sinistra destra",diams:"Simbolo nero diamante",asymp:"Quasi uguale a"}); \ No newline at end of file diff --git a/admin/plugins/ckeditor/plugins/specialchar/dialogs/lang/ja.js b/admin/plugins/ckeditor/plugins/specialchar/dialogs/lang/ja.js deleted file mode 100644 index 47393e4..0000000 --- a/admin/plugins/ckeditor/plugins/specialchar/dialogs/lang/ja.js +++ /dev/null @@ -1,9 +0,0 @@ -/* - Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. - For licensing, see LICENSE.md or http://ckeditor.com/license -*/ -CKEDITOR.plugins.setLang("specialchar","ja",{euro:"ユーロ記号",lsquo:"左シングル引用符",rsquo:"右シングル引用符",ldquo:"左ダブル引用符",rdquo:"右ダブル引用符",ndash:"半角ダッシュ",mdash:"全角ダッシュ",iexcl:"逆さ感嘆符",cent:"セント記号",pound:"ポンド記号",curren:"通貨記号",yen:"円記号",brvbar:"上下に分かれた縦棒",sect:"節記号",uml:"分音記号(ウムラウト)",copy:"著作権表示記号",ordf:"女性序数標識",laquo:" 始め二重山括弧引用記号",not:"論理否定記号",reg:"登録商標記号",macr:"長音符",deg:"度記号",sup2:"上つき2, 2乗",sup3:"上つき3, 3乗",acute:"揚音符",micro:"ミクロン記号",para:"段落記号",middot:"中黒",cedil:"セディラ",sup1:"上つき1",ordm:"男性序数標識",raquo:"終わり二重山括弧引用記号", -frac14:"四分の一",frac12:"二分の一",frac34:"四分の三",iquest:"逆疑問符",Agrave:"抑音符つき大文字A",Aacute:"揚音符つき大文字A",Acirc:"曲折アクセントつき大文字A",Atilde:"チルダつき大文字A",Auml:"分音記号つき大文字A",Aring:"リングつき大文字A",AElig:"AとEの合字",Ccedil:"セディラつき大文字C",Egrave:"抑音符つき大文字E",Eacute:"揚音符つき大文字E",Ecirc:"曲折アクセントつき大文字E",Euml:"分音記号つき大文字E",Igrave:"抑音符つき大文字I",Iacute:"揚音符つき大文字I",Icirc:"曲折アクセントつき大文字I",Iuml:"分音記号つき大文字I",ETH:"[アイスランド語]大文字ETH",Ntilde:"チルダつき大文字N",Ograve:"抑音符つき大文字O",Oacute:"揚音符つき大文字O",Ocirc:"曲折アクセントつき大文字O",Otilde:"チルダつき大文字O",Ouml:" 分音記号つき大文字O", -times:"乗算記号",Oslash:"打ち消し線つき大文字O",Ugrave:"抑音符つき大文字U",Uacute:"揚音符つき大文字U",Ucirc:"曲折アクセントつき大文字U",Uuml:"分音記号つき大文字U",Yacute:"揚音符つき大文字Y",THORN:"[アイスランド語]大文字THORN",szlig:"ドイツ語エスツェット",agrave:"抑音符つき小文字a",aacute:"揚音符つき小文字a",acirc:"曲折アクセントつき小文字a",atilde:"チルダつき小文字a",auml:"分音記号つき小文字a",aring:"リングつき小文字a",aelig:"aとeの合字",ccedil:"セディラつき小文字c",egrave:"抑音符つき小文字e",eacute:"揚音符つき小文字e",ecirc:"曲折アクセントつき小文字e",euml:"分音記号つき小文字e",igrave:"抑音符つき小文字i",iacute:"揚音符つき小文字i",icirc:"曲折アクセントつき小文字i",iuml:"分音記号つき小文字i",eth:"アイスランド語小文字eth", -ntilde:"チルダつき小文字n",ograve:"抑音符つき小文字o",oacute:"揚音符つき小文字o",ocirc:"曲折アクセントつき小文字o",otilde:"チルダつき小文字o",ouml:"分音記号つき小文字o",divide:"除算記号",oslash:"打ち消し線つき小文字o",ugrave:"抑音符つき小文字u",uacute:"揚音符つき小文字u",ucirc:"曲折アクセントつき小文字u",uuml:"分音記号つき小文字u",yacute:"揚音符つき小文字y",thorn:"アイスランド語小文字thorn",yuml:"分音記号つき小文字y",OElig:"OとEの合字",oelig:"oとeの合字",372:"曲折アクセントつき大文字W",374:"曲折アクセントつき大文字Y",373:"曲折アクセントつき小文字w",375:"曲折アクセントつき小文字y",sbquo:"シングル下引用符",8219:"左右逆の左引用符",bdquo:"ダブル下引用符",hellip:"三点リーダ",trade:"商標記号",9658:"右黒三角ポインタ",bull:"黒丸", -rarr:"右矢印",rArr:"右二重矢印",hArr:"左右二重矢印",diams:"ダイヤ",asymp:"漸近"}); \ No newline at end of file diff --git a/admin/plugins/ckeditor/plugins/specialchar/dialogs/lang/km.js b/admin/plugins/ckeditor/plugins/specialchar/dialogs/lang/km.js deleted file mode 100644 index 40a0828..0000000 --- a/admin/plugins/ckeditor/plugins/specialchar/dialogs/lang/km.js +++ /dev/null @@ -1,13 +0,0 @@ -/* - Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. - For licensing, see LICENSE.md or http://ckeditor.com/license -*/ -CKEDITOR.plugins.setLang("specialchar","km",{euro:"សញ្ញា​អឺរ៉ូ",lsquo:"Left single quotation mark",rsquo:"Right single quotation mark",ldquo:"Left double quotation mark",rdquo:"Right double quotation mark",ndash:"En dash",mdash:"Em dash",iexcl:"Inverted exclamation mark",cent:"សញ្ញា​សេន",pound:"សញ្ញា​ផោន",curren:"សញ្ញា​រូបិយបណ្ណ",yen:"សញ្ញា​យ៉េន",brvbar:"Broken bar",sect:"Section sign",uml:"Diaeresis",copy:"សញ្ញា​រក្សា​សិទ្ធិ",ordf:"Feminine ordinal indicator",laquo:"Left-pointing double angle quotation mark", -not:"Not sign",reg:"Registered sign",macr:"Macron",deg:"សញ្ញា​ដឺក្រេ",sup2:"Superscript two",sup3:"Superscript three",acute:"Acute accent",micro:"សញ្ញា​មីក្រូ",para:"Pilcrow sign",middot:"Middle dot",cedil:"Cedilla",sup1:"Superscript one",ordm:"Masculine ordinal indicator",raquo:"Right-pointing double angle quotation mark",frac14:"Vulgar fraction one quarter",frac12:"Vulgar fraction one half",frac34:"Vulgar fraction three quarters",iquest:"Inverted question mark",Agrave:"Latin capital letter A with grave accent", -Aacute:"Latin capital letter A with acute accent",Acirc:"Latin capital letter A with circumflex",Atilde:"Latin capital letter A with tilde",Auml:"Latin capital letter A with diaeresis",Aring:"Latin capital letter A with ring above",AElig:"Latin capital letter Æ",Ccedil:"Latin capital letter C with cedilla",Egrave:"Latin capital letter E with grave accent",Eacute:"Latin capital letter E with acute accent",Ecirc:"Latin capital letter E with circumflex",Euml:"Latin capital letter E with diaeresis",Igrave:"Latin capital letter I with grave accent", -Iacute:"Latin capital letter I with acute accent",Icirc:"Latin capital letter I with circumflex",Iuml:"Latin capital letter I with diaeresis",ETH:"Latin capital letter Eth",Ntilde:"Latin capital letter N with tilde",Ograve:"Latin capital letter O with grave accent",Oacute:"Latin capital letter O with acute accent",Ocirc:"Latin capital letter O with circumflex",Otilde:"Latin capital letter O with tilde",Ouml:"Latin capital letter O with diaeresis",times:"Multiplication sign",Oslash:"Latin capital letter O with stroke", -Ugrave:"Latin capital letter U with grave accent",Uacute:"Latin capital letter U with acute accent",Ucirc:"Latin capital letter U with circumflex",Uuml:"Latin capital letter U with diaeresis",Yacute:"Latin capital letter Y with acute accent",THORN:"Latin capital letter Thorn",szlig:"Latin small letter sharp s",agrave:"Latin small letter a with grave accent",aacute:"Latin small letter a with acute accent",acirc:"Latin small letter a with circumflex",atilde:"Latin small letter a with tilde",auml:"Latin small letter a with diaeresis", -aring:"Latin small letter a with ring above",aelig:"Latin small letter æ",ccedil:"Latin small letter c with cedilla",egrave:"Latin small letter e with grave accent",eacute:"Latin small letter e with acute accent",ecirc:"Latin small letter e with circumflex",euml:"Latin small letter e with diaeresis",igrave:"Latin small letter i with grave accent",iacute:"Latin small letter i with acute accent",icirc:"Latin small letter i with circumflex",iuml:"Latin small letter i with diaeresis",eth:"Latin small letter eth", -ntilde:"Latin small letter n with tilde",ograve:"Latin small letter o with grave accent",oacute:"Latin small letter o with acute accent",ocirc:"Latin small letter o with circumflex",otilde:"Latin small letter o with tilde",ouml:"Latin small letter o with diaeresis",divide:"Division sign",oslash:"Latin small letter o with stroke",ugrave:"Latin small letter u with grave accent",uacute:"Latin small letter u with acute accent",ucirc:"Latin small letter u with circumflex",uuml:"Latin small letter u with diaeresis", -yacute:"Latin small letter y with acute accent",thorn:"Latin small letter thorn",yuml:"Latin small letter y with diaeresis",OElig:"Latin capital ligature OE",oelig:"Latin small ligature oe",372:"Latin capital letter W with circumflex",374:"Latin capital letter Y with circumflex",373:"Latin small letter w with circumflex",375:"Latin small letter y with circumflex",sbquo:"Single low-9 quotation mark",8219:"Single high-reversed-9 quotation mark",bdquo:"Double low-9 quotation mark",hellip:"Horizontal ellipsis", -trade:"Trade mark sign",9658:"Black right-pointing pointer",bull:"Bullet",rarr:"Rightwards arrow",rArr:"Rightwards double arrow",hArr:"Left right double arrow",diams:"Black diamond suit",asymp:"Almost equal to"}); \ No newline at end of file diff --git a/admin/plugins/ckeditor/plugins/specialchar/dialogs/lang/ko.js b/admin/plugins/ckeditor/plugins/specialchar/dialogs/lang/ko.js deleted file mode 100644 index a399c71..0000000 --- a/admin/plugins/ckeditor/plugins/specialchar/dialogs/lang/ko.js +++ /dev/null @@ -1,10 +0,0 @@ -/* - Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. - For licensing, see LICENSE.md or http://ckeditor.com/license -*/ -CKEDITOR.plugins.setLang("specialchar","ko",{euro:"유로화 기호",lsquo:"왼쪽 외 따옴표",rsquo:"오른쪽 외 따옴표",ldquo:"왼쪽 쌍 따옴표",rdquo:"오른쪽 쌍 따옴표",ndash:"반각 대시",mdash:"전각 대시",iexcl:"반전된 느낌표",cent:"센트 기호",pound:"파운드화 기호",curren:"커런시 기호",yen:"위안화 기호",brvbar:"파선",sect:"섹션 기호",uml:"분음 부호",copy:"저작권 기호",ordf:"Feminine ordinal indicator",laquo:"왼쪽 쌍꺽쇠 인용 부호",not:"금지 기호",reg:"등록 기호",macr:"장음 기호",deg:"도 기호",sup2:"위첨자 2",sup3:"위첨자 3",acute:"양음 악센트 부호",micro:"마이크로 기호",para:"단락 기호",middot:"가운데 점",cedil:"세디유",sup1:"위첨자 1",ordm:"Masculine ordinal indicator", -raquo:"오른쪽 쌍꺽쇠 인용 부호",frac14:"분수 사분의 일",frac12:"분수 이분의 일",frac34:"분수 사분의 삼",iquest:"뒤집힌 물음표",Agrave:"억음 부호가 있는 라틴 대문자 A",Aacute:"양음 악센트 부호가 있는 라틴 대문자 A",Acirc:"곡절 악센트 부호가 있는 라틴 대문자 A",Atilde:"틸데가 있는 라틴 대문자 A",Auml:"분음 기호가 있는 라틴 대문자 A",Aring:"윗고리가 있는 라틴 대문자 A",AElig:"라틴 대문자 Æ",Ccedil:"세디유가 있는 라틴 대문자 C",Egrave:"억음 부호가 있는 라틴 대문자 E",Eacute:"양음 악센트 부호가 있는 라틴 대문자 E",Ecirc:"곡절 악센트 부호가 있는 라틴 대문자 E",Euml:"분음 기호가 있는 라틴 대문자 E",Igrave:"억음 부호가 있는 라틴 대문자 I",Iacute:"양음 악센트 부호가 있는 라틴 대문자 I",Icirc:"곡절 악센트 부호가 있는 라틴 대문자 I", -Iuml:"분음 기호가 있는 라틴 대문자 I",ETH:"라틴 대문자 Eth",Ntilde:"틸데가 있는 라틴 대문자 N",Ograve:"억음 부호가 있는 라틴 대문자 O",Oacute:"양음 부호가 있는 라틴 대문자 O",Ocirc:"곡절 악센트 부호가 있는 라틴 대문자 O",Otilde:"틸데가 있는 라틴 대문자 O",Ouml:"분음 기호가 있는 라틴 대문자 O",times:"곱하기 기호",Oslash:"사선이 있는 라틴 대문자 O",Ugrave:"억음 부호가 있는 라틴 대문자 U",Uacute:"양음 부호가 있는 라틴 대문자 U",Ucirc:"곡절 악센트 부호가 있는 라틴 대문자 U",Uuml:"분음 기호가 있는 라틴 대문자 U",Yacute:"양음 부호가 있는 라틴 대문자 Y",THORN:"라틴 대문자 Thorn",szlig:"라틴 소문자 sharp s",agrave:"억음 부호가 있는 라틴 소문자 a",aacute:"양음 부호가 있는 라틴 소문자 a",acirc:"곡절 악센트 부호가 있는 라틴 소문자 a", -atilde:"틸데가 있는 라틴 소문자 a",auml:"분음 기호가 있는 라틴 소문자 a",aring:"윗고리가 있는 라틴 소문자 a",aelig:"라틴 소문자 æ",ccedil:"세디유가 있는 라틴 소문자 c",egrave:"억음 부호가 있는 라틴 소문자 e",eacute:"양음 부호가 있는 라틴 소문자 e",ecirc:"곡절 악센트 부호가 있는 라틴 소문자 e",euml:"분음 기호가 있는 라틴 소문자 e",igrave:"억음 부호가 있는 라틴 소문자 i",iacute:"양음 부호가 있는 라틴 소문자 i",icirc:"곡절 악센트 부호가 있는 라틴 소문자 i",iuml:"분음 기호가 있는 라틴 소문자 i",eth:"라틴 소문자 eth",ntilde:"틸데가 있는 라틴 소문자 n",ograve:"억음 부호가 있는 라틴 소문자 o",oacute:"양음 부호가 있는 라틴 소문자 o",ocirc:"곡절 악센트 부호가 있는 라틴 소문자 o",otilde:"틸데가 있는 라틴 소문자 o",ouml:"분음 기호가 있는 라틴 소문자 o", -divide:"나누기 기호",oslash:"사선이 있는 라틴 소문자 o",ugrave:"억음 부호가 있는 라틴 소문자 u",uacute:"양음 부호가 있는 라틴 소문자 u",ucirc:"곡절 악센트 부호가 있는 라틴 소문자 u",uuml:"분음 기호가 있는 라틴 소문자 u",yacute:"양음 부호가 있는 라틴 소문자 y",thorn:"라틴 소문자 thorn",yuml:"분음 기호가 있는 라틴 소문자 y",OElig:"라틴 대문합자 OE",oelig:"라틴 소문합자 oe",372:"곡절 악센트 부호가 있는 라틴 대문자 W",374:"곡절 악센트 부호가 있는 라틴 대문자 Y",373:"곡절 악센트 부호가 있는 라틴 소문자 w",375:"곡절 악센트 부호가 있는 라틴 소문자 y",sbquo:"외 아래-9 인용 부호",8219:"외 위쪽-뒤집힌-9 인용 부호",bdquo:"쌍 아래-9 인용 부호",hellip:"수평 생략 부호",trade:"상표 기호",9658:"검정 오른쪽 포인터",bull:"큰 점", -rarr:"오른쪽 화살표",rArr:"오른쪽 두 줄 화살표",hArr:"양쪽 두 줄 화살표",diams:"검정 다이아몬드",asymp:"근사"}); \ No newline at end of file diff --git a/admin/plugins/ckeditor/plugins/specialchar/dialogs/lang/ku.js b/admin/plugins/ckeditor/plugins/specialchar/dialogs/lang/ku.js deleted file mode 100644 index 736193f..0000000 --- a/admin/plugins/ckeditor/plugins/specialchar/dialogs/lang/ku.js +++ /dev/null @@ -1,13 +0,0 @@ -/* - Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. - For licensing, see LICENSE.md or http://ckeditor.com/license -*/ -CKEDITOR.plugins.setLang("specialchar","ku",{euro:"نیشانەی یۆرۆ",lsquo:"نیشانەی فاریزەی سەرووژێری تاکی چەپ",rsquo:"نیشانەی فاریزەی سەرووژێری تاکی ڕاست",ldquo:"نیشانەی فاریزەی سەرووژێری دووهێندەی چه‌پ",rdquo:"نیشانەی فاریزەی سەرووژێری دووهێندەی ڕاست",ndash:"تەقەڵی کورت",mdash:"تەقەڵی درێژ",iexcl:"نیشانەی هەڵەوگێڕی سەرسوڕهێنەر",cent:"نیشانەی سەنت",pound:"نیشانەی پاوەند",curren:"نیشانەی دراو",yen:"نیشانەی یەنی ژاپۆنی",brvbar:"شریتی ئەستوونی پچڕاو",sect:"نیشانەی دوو s لەسەریەک",uml:"خاڵ",copy:"نیشانەی مافی چاپ", -ordf:"هێڵ لەسەر پیتی a",laquo:"دوو تیری بەدووایەکی چەپ",not:"نیشانەی نەخێر",reg:"نیشانەی R لەناو بازنەدا",macr:"ماکڕۆن",deg:"نیشانەی پلە",sup2:"سەرنووسی دوو",sup3:"سەرنووسی سێ",acute:"لاری تیژ",micro:"نیشانەی u لق درێژی چەپی خواروو",para:"نیشانەی پەڕەگراف",middot:"ناوەڕاستی خاڵ",cedil:"نیشانەی c ژێر چووکرە",sup1:"سەرنووسی یەک",ordm:"هێڵ لەژێر پیتی o",raquo:"دوو تیری بەدووایەکی ڕاست",frac14:"یەک لەسەر چووار",frac12:"یەک لەسەر دوو",frac34:"سێ لەسەر چووار",iquest:"هێمای هەڵەوگێری پرسیار",Agrave:"پیتی لاتینی A-ی گەورە لەگەڵ ڕوومەتداری لار", -Aacute:"پیتی لاتینی A-ی گەورە لەگەڵ ڕوومەتداری تیژ",Acirc:"پیتی لاتینی A-ی گەورە لەگەڵ نیشانە لەسەری",Atilde:"پیتی لاتینی A-ی گەورە لەگەڵ زەڕە",Auml:"پیتی لاتینی A-ی گەورە لەگەڵ نیشانە لەسەری",Aring:"پیتی لاتینی گەورەی Å",AElig:"پیتی لاتینی گەورەی Æ",Ccedil:"پیتی لاتینی C-ی گەورە لەگەڵ ژێر چووکرە",Egrave:"پیتی لاتینی E-ی گەورە لەگەڵ ڕوومەتداری لار",Eacute:"پیتی لاتینی E-ی گەورە لەگەڵ ڕوومەتداری تیژ",Ecirc:"پیتی لاتینی E-ی گەورە لەگەڵ نیشانە لەسەری",Euml:"پیتی لاتینی E-ی گەورە لەگەڵ نیشانە لەسەری", -Igrave:"پیتی لاتینی I-ی گەورە لەگەڵ ڕوومەتداری لار",Iacute:"پیتی لاتینی I-ی گەورە لەگەڵ ڕوومەتداری تیژ",Icirc:"پیتی لاتینی I-ی گەورە لەگەڵ نیشانە لەسەری",Iuml:"پیتی لاتینی I-ی گەورە لەگەڵ نیشانە لەسەری",ETH:"پیتی لاتینی E-ی گەورەی",Ntilde:"پیتی لاتینی N-ی گەورە لەگەڵ زەڕە",Ograve:"پیتی لاتینی O-ی گەورە لەگەڵ ڕوومەتداری لار",Oacute:"پیتی لاتینی O-ی گەورە لەگەڵ ڕوومەتداری تیژ",Ocirc:"پیتی لاتینی O-ی گەورە لەگەڵ نیشانە لەسەری",Otilde:"پیتی لاتینی O-ی گەورە لەگەڵ زەڕە",Ouml:"پیتی لاتینی O-ی گەورە لەگەڵ نیشانە لەسەری", -times:"نیشانەی لێکدان",Oslash:"پیتی لاتینی گەورەی Ø لەگەڵ هێمای دڵ وەستان",Ugrave:"پیتی لاتینی U-ی گەورە لەگەڵ ڕوومەتداری لار",Uacute:"پیتی لاتینی U-ی گەورە لەگەڵ ڕوومەتداری تیژ",Ucirc:"پیتی لاتینی U-ی گەورە لەگەڵ نیشانە لەسەری",Uuml:"پیتی لاتینی U-ی گەورە لەگەڵ نیشانە لەسەری",Yacute:"پیتی لاتینی Y-ی گەورە لەگەڵ ڕوومەتداری تیژ",THORN:"پیتی لاتینی دڕکی گەورە",szlig:"پیتی لاتنی نووک تیژی s",agrave:"پیتی لاتینی a-ی بچووک لەگەڵ ڕوومەتداری لار",aacute:"پیتی لاتینی a-ی بچووك لەگەڵ ڕوومەتداری تیژ",acirc:"پیتی لاتینی a-ی بچووك لەگەڵ نیشانە لەسەری", -atilde:"پیتی لاتینی a-ی بچووك لەگەڵ زەڕە",auml:"پیتی لاتینی a-ی بچووك لەگەڵ نیشانە لەسەری",aring:"پیتی لاتینی å-ی بچووك",aelig:"پیتی لاتینی æ-ی بچووك",ccedil:"پیتی لاتینی c-ی بچووك لەگەڵ ژێر چووکرە",egrave:"پیتی لاتینی e-ی بچووك لەگەڵ ڕوومەتداری لار",eacute:"پیتی لاتینی e-ی بچووك لەگەڵ ڕوومەتداری تیژ",ecirc:"پیتی لاتینی e-ی بچووك لەگەڵ نیشانە لەسەری",euml:"پیتی لاتینی e-ی بچووك لەگەڵ نیشانە لەسەری",igrave:"پیتی لاتینی i-ی بچووك لەگەڵ ڕوومەتداری لار",iacute:"پیتی لاتینی i-ی بچووك لەگەڵ ڕوومەتداری تیژ", -icirc:"پیتی لاتینی i-ی بچووك لەگەڵ نیشانە لەسەری",iuml:"پیتی لاتینی i-ی بچووك لەگەڵ نیشانە لەسەری",eth:"پیتی لاتینی e-ی بچووك",ntilde:"پیتی لاتینی n-ی بچووك لەگەڵ زەڕە",ograve:"پیتی لاتینی o-ی بچووك لەگەڵ ڕوومەتداری لار",oacute:"پیتی لاتینی o-ی بچووك له‌گەڵ ڕوومەتداری تیژ",ocirc:"پیتی لاتینی o-ی بچووك لەگەڵ نیشانە لەسەری",otilde:"پیتی لاتینی o-ی بچووك لەگەڵ زەڕە",ouml:"پیتی لاتینی o-ی بچووك لەگەڵ نیشانە لەسەری",divide:"نیشانەی دابەش",oslash:"پیتی لاتینی گەورەی ø لەگەڵ هێمای دڵ وەستان",ugrave:"پیتی لاتینی u-ی بچووك لەگەڵ ڕوومەتداری لار", -uacute:"پیتی لاتینی u-ی بچووك لەگەڵ ڕوومەتداری تیژ",ucirc:"پیتی لاتینی u-ی بچووك لەگەڵ نیشانە لەسەری",uuml:"پیتی لاتینی u-ی بچووك لەگەڵ نیشانە لەسەری",yacute:"پیتی لاتینی y-ی بچووك لەگەڵ ڕوومەتداری تیژ",thorn:"پیتی لاتینی دڕکی بچووك",yuml:"پیتی لاتینی y-ی بچووك لەگەڵ نیشانە لەسەری",OElig:"پیتی لاتینی گەورەی پێکەوەنووسراوی OE",oelig:"پیتی لاتینی بچووکی پێکەوەنووسراوی oe",372:"پیتی لاتینی W-ی گەورە لەگەڵ نیشانە لەسەری",374:"پیتی لاتینی Y-ی گەورە لەگەڵ نیشانە لەسەری",373:"پیتی لاتینی w-ی بچووکی لەگەڵ نیشانە لەسەری", -375:"پیتی لاتینی y-ی بچووکی لەگەڵ نیشانە لەسەری",sbquo:"نیشانەی فاریزەی نزم",8219:"نیشانەی فاریزەی بەرزی پێچەوانە",bdquo:"دوو فاریزەی تەنیش یەك",hellip:"ئاسۆیی بازنە",trade:"نیشانەی بازرگانی",9658:"ئاراستەی ڕەشی دەستی ڕاست",bull:"فیشەك",rarr:"تیری دەستی ڕاست",rArr:"دووتیری دەستی ڕاست",hArr:"دوو تیری ڕاست و چەپ",diams:"ڕەشی پاقڵاوەیی",asymp:"نیشانەی یەکسانە"}); \ No newline at end of file diff --git a/admin/plugins/ckeditor/plugins/specialchar/dialogs/lang/lt.js b/admin/plugins/ckeditor/plugins/specialchar/dialogs/lang/lt.js deleted file mode 100644 index ab3797e..0000000 --- a/admin/plugins/ckeditor/plugins/specialchar/dialogs/lang/lt.js +++ /dev/null @@ -1,13 +0,0 @@ -/* - Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. - For licensing, see LICENSE.md or http://ckeditor.com/license -*/ -CKEDITOR.plugins.setLang("specialchar","lt",{euro:"Euro ženklas",lsquo:"Left single quotation mark",rsquo:"Right single quotation mark",ldquo:"Left double quotation mark",rdquo:"Right double quotation mark",ndash:"En dash",mdash:"Em dash",iexcl:"Inverted exclamation mark",cent:"Cento ženklas",pound:"Svaro ženklas",curren:"Valiutos ženklas",yen:"Jenos ženklas",brvbar:"Broken bar",sect:"Section sign",uml:"Diaeresis",copy:"Copyright sign",ordf:"Feminine ordinal indicator",laquo:"Left-pointing double angle quotation mark", -not:"Ne ženklas",reg:"Registered sign",macr:"Makronas",deg:"Laipsnio ženklas",sup2:"Superscript two",sup3:"Superscript three",acute:"Acute accent",micro:"Mikro ženklas",para:"Pilcrow sign",middot:"Vidurinis taškas",cedil:"Cedilla",sup1:"Superscript one",ordm:"Masculine ordinal indicator",raquo:"Right-pointing double angle quotation mark",frac14:"Vulgar fraction one quarter",frac12:"Vulgar fraction one half",frac34:"Vulgar fraction three quarters",iquest:"Inverted question mark",Agrave:"Latin capital letter A with grave accent", -Aacute:"Latin capital letter A with acute accent",Acirc:"Latin capital letter A with circumflex",Atilde:"Latin capital letter A with tilde",Auml:"Latin capital letter A with diaeresis",Aring:"Latin capital letter A with ring above",AElig:"Latin capital letter Æ",Ccedil:"Latin capital letter C with cedilla",Egrave:"Latin capital letter E with grave accent",Eacute:"Latin capital letter E with acute accent",Ecirc:"Latin capital letter E with circumflex",Euml:"Latin capital letter E with diaeresis",Igrave:"Latin capital letter I with grave accent", -Iacute:"Latin capital letter I with acute accent",Icirc:"Latin capital letter I with circumflex",Iuml:"Latin capital letter I with diaeresis",ETH:"Latin capital letter Eth",Ntilde:"Latin capital letter N with tilde",Ograve:"Latin capital letter O with grave accent",Oacute:"Latin capital letter O with acute accent",Ocirc:"Latin capital letter O with circumflex",Otilde:"Latin capital letter O with tilde",Ouml:"Latin capital letter O with diaeresis",times:"Multiplication sign",Oslash:"Latin capital letter O with stroke", -Ugrave:"Latin capital letter U with grave accent",Uacute:"Latin capital letter U with acute accent",Ucirc:"Latin capital letter U with circumflex",Uuml:"Latin capital letter U with diaeresis",Yacute:"Latin capital letter Y with acute accent",THORN:"Latin capital letter Thorn",szlig:"Latin small letter sharp s",agrave:"Latin small letter a with grave accent",aacute:"Latin small letter a with acute accent",acirc:"Latin small letter a with circumflex",atilde:"Latin small letter a with tilde",auml:"Latin small letter a with diaeresis", -aring:"Latin small letter a with ring above",aelig:"Latin small letter æ",ccedil:"Latin small letter c with cedilla",egrave:"Latin small letter e with grave accent",eacute:"Latin small letter e with acute accent",ecirc:"Latin small letter e with circumflex",euml:"Latin small letter e with diaeresis",igrave:"Latin small letter i with grave accent",iacute:"Latin small letter i with acute accent",icirc:"Latin small letter i with circumflex",iuml:"Latin small letter i with diaeresis",eth:"Latin small letter eth", -ntilde:"Latin small letter n with tilde",ograve:"Latin small letter o with grave accent",oacute:"Latin small letter o with acute accent",ocirc:"Latin small letter o with circumflex",otilde:"Latin small letter o with tilde",ouml:"Latin small letter o with diaeresis",divide:"Division sign",oslash:"Latin small letter o with stroke",ugrave:"Latin small letter u with grave accent",uacute:"Latin small letter u with acute accent",ucirc:"Latin small letter u with circumflex",uuml:"Latin small letter u with diaeresis", -yacute:"Latin small letter y with acute accent",thorn:"Latin small letter thorn",yuml:"Latin small letter y with diaeresis",OElig:"Latin capital ligature OE",oelig:"Latin small ligature oe",372:"Latin capital letter W with circumflex",374:"Latin capital letter Y with circumflex",373:"Latin small letter w with circumflex",375:"Latin small letter y with circumflex",sbquo:"Single low-9 quotation mark",8219:"Single high-reversed-9 quotation mark",bdquo:"Double low-9 quotation mark",hellip:"Horizontal ellipsis", -trade:"Trade mark sign",9658:"Black right-pointing pointer",bull:"Bullet",rarr:"Rightwards arrow",rArr:"Rightwards double arrow",hArr:"Left right double arrow",diams:"Black diamond suit",asymp:"Almost equal to"}); \ No newline at end of file diff --git a/admin/plugins/ckeditor/plugins/specialchar/dialogs/lang/lv.js b/admin/plugins/ckeditor/plugins/specialchar/dialogs/lang/lv.js deleted file mode 100644 index 4e8f1d2..0000000 --- a/admin/plugins/ckeditor/plugins/specialchar/dialogs/lang/lv.js +++ /dev/null @@ -1,13 +0,0 @@ -/* - Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. - For licensing, see LICENSE.md or http://ckeditor.com/license -*/ -CKEDITOR.plugins.setLang("specialchar","lv",{euro:"Euro zīme",lsquo:"Kreisā vienkārtīga pēdiņa",rsquo:"Labā vienkārtīga pēdiņa",ldquo:"Kreisā dubult pēdiņa",rdquo:"Labā dubult pēdiņa",ndash:"En svītra",mdash:"Em svītra",iexcl:"Apgriezta izsaukuma zīme",cent:"Centu naudas zīme",pound:"Sterliņu mārciņu naudas zīme",curren:"Valūtas zīme",yen:"Jenu naudas zīme",brvbar:"Vertikāla pārrauta līnija",sect:"Paragrāfa zīme",uml:"Diakritiska zīme",copy:"Autortiesību zīme",ordf:"Sievišķas kārtas rādītājs", -laquo:"Kreisā dubult stūra pēdiņu zīme",not:"Neparakstīts",reg:"Reģistrēta zīme",macr:"Garumzīme",deg:"Grādu zīme",sup2:"Augšraksts divi",sup3:"Augšraksts trīs",acute:"Akūta uzsvara zīme",micro:"Mikro zīme",para:"Rindkopas zīme ",middot:"Vidējs punkts",cedil:"Āķītis zem burta",sup1:"Augšraksts viens",ordm:"Vīrišķīgas kārtas rādītājs",raquo:"Labā dubult stūra pēdiņu zīme",frac14:"Vulgāra frakcija 1/4",frac12:"Vulgāra frakcija 1/2",frac34:"Vulgāra frakcija 3/4",iquest:"Apgriezta jautājuma zīme",Agrave:"Lielais latīņu burts A ar uzsvara zīmi", -Aacute:"Lielais latīņu burts A ar akūtu uzsvara zīmi",Acirc:"Lielais latīņu burts A ar diakritisku zīmi",Atilde:"Lielais latīņu burts A ar tildi ",Auml:"Lielais latīņu burts A ar diakritisko zīmi",Aring:"Lielais latīņu burts A ar aplīti augšā",AElig:"Lielais latīņu burts Æ",Ccedil:"Lielais latīņu burts C ar āķīti zem burta",Egrave:"Lielais latīņu burts E ar apostrofu",Eacute:"Lielais latīņu burts E ar akūtu uzsvara zīmi",Ecirc:"Lielais latīņu burts E ar diakritisko zīmi",Euml:"Lielais latīņu burts E ar diakritisko zīmi", -Igrave:"Lielais latīņu burts I ar uzsvaras zīmi",Iacute:"Lielais latīņu burts I ar akūtu uzsvara zīmi",Icirc:"Lielais latīņu burts I ar diakritisko zīmi",Iuml:"Lielais latīņu burts I ar diakritisko zīmi",ETH:"Lielais latīņu burts Eth",Ntilde:"Lielais latīņu burts N ar tildi",Ograve:"Lielais latīņu burts O ar uzsvara zīmi",Oacute:"Lielais latīņu burts O ar akūto uzsvara zīmi",Ocirc:"Lielais latīņu burts O ar diakritisko zīmi",Otilde:"Lielais latīņu burts O ar tildi",Ouml:"Lielais latīņu burts O ar diakritisko zīmi", -times:"Reizināšanas zīme ",Oslash:"Lielais latīņu burts O ar iesvītrojumu",Ugrave:"Lielais latīņu burts U ar uzsvaras zīmi",Uacute:"Lielais latīņu burts U ar akūto uzsvars zīmi",Ucirc:"Lielais latīņu burts U ar diakritisko zīmi",Uuml:"Lielais latīņu burts U ar diakritisko zīmi",Yacute:"Lielais latīņu burts Y ar akūto uzsvaras zīmi",THORN:"Lielais latīņu burts torn",szlig:"Mazs latīņu burts ar ligatūru",agrave:"Mazs latīņu burts a ar uzsvara zīmi",aacute:"Mazs latīņu burts a ar akūto uzsvara zīmi", -acirc:"Mazs latīņu burts a ar diakritisko zīmi",atilde:"Mazs latīņu burts a ar tildi",auml:"Mazs latīņu burts a ar diakritisko zīmi",aring:"Mazs latīņu burts a ar aplīti augšā",aelig:"Mazs latīņu burts æ",ccedil:"Mazs latīņu burts c ar āķīti zem burta",egrave:"Mazs latīņu burts e ar uzsvara zīmi ",eacute:"Mazs latīņu burts e ar akūtu uzsvara zīmi",ecirc:"Mazs latīņu burts e ar diakritisko zīmi",euml:"Mazs latīņu burts e ar diakritisko zīmi",igrave:"Mazs latīņu burts i ar uzsvara zīmi ",iacute:"Mazs latīņu burts i ar akūtu uzsvara zīmi", -icirc:"Mazs latīņu burts i ar diakritisko zīmi",iuml:"Mazs latīņu burts i ar diakritisko zīmi",eth:"Mazs latīņu burts eth",ntilde:"Mazs latīņu burts n ar tildi",ograve:"Mazs latīņu burts o ar uzsvara zīmi ",oacute:"Mazs latīņu burts o ar akūtu uzsvara zīmi",ocirc:"Mazs latīņu burts o ar diakritisko zīmi",otilde:"Mazs latīņu burts o ar tildi",ouml:"Mazs latīņu burts o ar diakritisko zīmi",divide:"Dalīšanas zīme",oslash:"Mazs latīņu burts o ar iesvītrojumu",ugrave:"Mazs latīņu burts u ar uzsvara zīmi ", -uacute:"Mazs latīņu burts u ar akūtu uzsvara zīmi",ucirc:"Mazs latīņu burts u ar diakritisko zīmi",uuml:"Mazs latīņu burts u ar diakritisko zīmi",yacute:"Mazs latīņu burts y ar akūtu uzsvaras zīmi",thorn:"Mazs latīņu burts torns",yuml:"Mazs latīņu burts y ar diakritisko zīmi",OElig:"Liela latīņu ligatūra OE",oelig:"Maza latīņu ligatūra oe",372:"Liels latīņu burts W ar diakritisko zīmi ",374:"Liels latīņu burts Y ar diakritisko zīmi ",373:"Mazs latīņu burts w ar diakritisko zīmi ",375:"Mazs latīņu burts y ar diakritisko zīmi ", -sbquo:"Mazas-9 vienkārtīgas pēdiņas",8219:"Lielas-9 vienkārtīgas apgrieztas pēdiņas",bdquo:"Mazas-9 dubultas pēdiņas",hellip:"Horizontāli daudzpunkti",trade:"Preču zīmes zīme",9658:"Melns pa labi pagriezts radītājs",bull:"Lode",rarr:"Bulta pa labi",rArr:"Dubulta Bulta pa labi",hArr:"Bulta pa kreisi",diams:"Dubulta Bulta pa kreisi",asymp:"Gandrīz vienāds ar"}); \ No newline at end of file diff --git a/admin/plugins/ckeditor/plugins/specialchar/dialogs/lang/nb.js b/admin/plugins/ckeditor/plugins/specialchar/dialogs/lang/nb.js deleted file mode 100644 index 87d1853..0000000 --- a/admin/plugins/ckeditor/plugins/specialchar/dialogs/lang/nb.js +++ /dev/null @@ -1,11 +0,0 @@ -/* - Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. - For licensing, see LICENSE.md or http://ckeditor.com/license -*/ -CKEDITOR.plugins.setLang("specialchar","nb",{euro:"Eurosymbol",lsquo:"Venstre enkelt anførselstegn",rsquo:"Høyre enkelt anførselstegn",ldquo:"Venstre dobbelt anførselstegn",rdquo:"Høyre anførsesltegn",ndash:"Kort tankestrek",mdash:"Lang tankestrek",iexcl:"Omvendt utropstegn",cent:"Centsymbol",pound:"Pundsymbol",curren:"Valutategn",yen:"Yensymbol",brvbar:"Brutt loddrett strek",sect:"Paragraftegn",uml:"Tøddel",copy:"Copyrighttegn",ordf:"Feminin ordensindikator",laquo:"Venstre anførselstegn",not:"Negasjonstegn", -reg:"Registrert varemerke-tegn",macr:"Makron",deg:"Gradsymbol",sup2:"Hevet totall",sup3:"Hevet tretall",acute:"Akutt aksent",micro:"Mikrosymbol",para:"Avsnittstegn",middot:"Midtstilt prikk",cedil:"Cedille",sup1:"Hevet ettall",ordm:"Maskulin ordensindikator",raquo:"Høyre anførselstegn",frac14:"Fjerdedelsbrøk",frac12:"Halvbrøk",frac34:"Tre fjerdedelers brøk",iquest:"Omvendt spørsmålstegn",Agrave:"Stor A med grav aksent",Aacute:"Stor A med akutt aksent",Acirc:"Stor A med cirkumfleks",Atilde:"Stor A med tilde", -Auml:"Stor A med tøddel",Aring:"Stor Å",AElig:"Stor Æ",Ccedil:"Stor C med cedille",Egrave:"Stor E med grav aksent",Eacute:"Stor E med akutt aksent",Ecirc:"Stor E med cirkumfleks",Euml:"Stor E med tøddel",Igrave:"Stor I med grav aksent",Iacute:"Stor I med akutt aksent",Icirc:"Stor I med cirkumfleks",Iuml:"Stor I med tøddel",ETH:"Stor Edd/stungen D",Ntilde:"Stor N med tilde",Ograve:"Stor O med grav aksent",Oacute:"Stor O med akutt aksent",Ocirc:"Stor O med cirkumfleks",Otilde:"Stor O med tilde",Ouml:"Stor O med tøddel", -times:"Multiplikasjonstegn",Oslash:"Stor Ø",Ugrave:"Stor U med grav aksent",Uacute:"Stor U med akutt aksent",Ucirc:"Stor U med cirkumfleks",Uuml:"Stor U med tøddel",Yacute:"Stor Y med akutt aksent",THORN:"Stor Thorn",szlig:"Liten dobbelt-s/Eszett",agrave:"Liten a med grav aksent",aacute:"Liten a med akutt aksent",acirc:"Liten a med cirkumfleks",atilde:"Liten a med tilde",auml:"Liten a med tøddel",aring:"Liten å",aelig:"Liten æ",ccedil:"Liten c med cedille",egrave:"Liten e med grav aksent",eacute:"Liten e med akutt aksent", -ecirc:"Liten e med cirkumfleks",euml:"Liten e med tøddel",igrave:"Liten i med grav aksent",iacute:"Liten i med akutt aksent",icirc:"Liten i med cirkumfleks",iuml:"Liten i med tøddel",eth:"Liten edd/stungen d",ntilde:"Liten n med tilde",ograve:"Liten o med grav aksent",oacute:"Liten o med akutt aksent",ocirc:"Liten o med cirkumfleks",otilde:"Liten o med tilde",ouml:"Liten o med tøddel",divide:"Divisjonstegn",oslash:"Liten ø",ugrave:"Liten u med grav aksent",uacute:"Liten u med akutt aksent",ucirc:"Liten u med cirkumfleks", -uuml:"Liten u med tøddel",yacute:"Liten y med akutt aksent",thorn:"Liten thorn",yuml:"Liten y med tøddel",OElig:"Stor ligatur av O og E",oelig:"Liten ligatur av o og e",372:"Stor W med cirkumfleks",374:"Stor Y med cirkumfleks",373:"Liten w med cirkumfleks",375:"Liten y med cirkumfleks",sbquo:"Enkelt lavt 9-anførselstegn",8219:"Enkelt høyt reversert 9-anførselstegn",bdquo:"Dobbelt lavt 9-anførselstegn",hellip:"Ellipse",trade:"Varemerkesymbol",9658:"Svart høyrevendt peker",bull:"Tykk interpunkt",rarr:"Høyrevendt pil", -rArr:"Dobbel høyrevendt pil",hArr:"Dobbel venstrevendt pil",diams:"Svart ruter",asymp:"Omtrent likhetstegn"}); \ No newline at end of file diff --git a/admin/plugins/ckeditor/plugins/specialchar/dialogs/lang/nl.js b/admin/plugins/ckeditor/plugins/specialchar/dialogs/lang/nl.js deleted file mode 100644 index 7d973f8..0000000 --- a/admin/plugins/ckeditor/plugins/specialchar/dialogs/lang/nl.js +++ /dev/null @@ -1,13 +0,0 @@ -/* - Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. - For licensing, see LICENSE.md or http://ckeditor.com/license -*/ -CKEDITOR.plugins.setLang("specialchar","nl",{euro:"Euro-teken",lsquo:"Linker enkel aanhalingsteken",rsquo:"Rechter enkel aanhalingsteken",ldquo:"Linker dubbel aanhalingsteken",rdquo:"Rechter dubbel aanhalingsteken",ndash:"En dash",mdash:"Em dash",iexcl:"Omgekeerd uitroepteken",cent:"Cent-teken",pound:"Pond-teken",curren:"Valuta-teken",yen:"Yen-teken",brvbar:"Gebroken streep",sect:"Paragraaf-teken",uml:"Trema",copy:"Copyright-teken",ordf:"Vrouwelijk ordinaal",laquo:"Linker guillemet",not:"Ongelijk-teken", -reg:"Geregistreerd handelsmerk-teken",macr:"Macron",deg:"Graden-teken",sup2:"Superscript twee",sup3:"Superscript drie",acute:"Accent aigu",micro:"Micro-teken",para:"Alinea-teken",middot:"Halfhoge punt",cedil:"Cedille",sup1:"Superscript een",ordm:"Mannelijk ordinaal",raquo:"Rechter guillemet",frac14:"Breuk kwart",frac12:"Breuk half",frac34:"Breuk driekwart",iquest:"Omgekeerd vraagteken",Agrave:"Latijnse hoofdletter A met een accent grave",Aacute:"Latijnse hoofdletter A met een accent aigu",Acirc:"Latijnse hoofdletter A met een circonflexe", -Atilde:"Latijnse hoofdletter A met een tilde",Auml:"Latijnse hoofdletter A met een trema",Aring:"Latijnse hoofdletter A met een corona",AElig:"Latijnse hoofdletter Æ",Ccedil:"Latijnse hoofdletter C met een cedille",Egrave:"Latijnse hoofdletter E met een accent grave",Eacute:"Latijnse hoofdletter E met een accent aigu",Ecirc:"Latijnse hoofdletter E met een circonflexe",Euml:"Latijnse hoofdletter E met een trema",Igrave:"Latijnse hoofdletter I met een accent grave",Iacute:"Latijnse hoofdletter I met een accent aigu", -Icirc:"Latijnse hoofdletter I met een circonflexe",Iuml:"Latijnse hoofdletter I met een trema",ETH:"Latijnse hoofdletter Eth",Ntilde:"Latijnse hoofdletter N met een tilde",Ograve:"Latijnse hoofdletter O met een accent grave",Oacute:"Latijnse hoofdletter O met een accent aigu",Ocirc:"Latijnse hoofdletter O met een circonflexe",Otilde:"Latijnse hoofdletter O met een tilde",Ouml:"Latijnse hoofdletter O met een trema",times:"Maal-teken",Oslash:"Latijnse hoofdletter O met een schuine streep",Ugrave:"Latijnse hoofdletter U met een accent grave", -Uacute:"Latijnse hoofdletter U met een accent aigu",Ucirc:"Latijnse hoofdletter U met een circonflexe",Uuml:"Latijnse hoofdletter U met een trema",Yacute:"Latijnse hoofdletter Y met een accent aigu",THORN:"Latijnse hoofdletter Thorn",szlig:"Latijnse kleine ringel-s",agrave:"Latijnse kleine letter a met een accent grave",aacute:"Latijnse kleine letter a met een accent aigu",acirc:"Latijnse kleine letter a met een circonflexe",atilde:"Latijnse kleine letter a met een tilde",auml:"Latijnse kleine letter a met een trema", -aring:"Latijnse kleine letter a met een corona",aelig:"Latijnse kleine letter æ",ccedil:"Latijnse kleine letter c met een cedille",egrave:"Latijnse kleine letter e met een accent grave",eacute:"Latijnse kleine letter e met een accent aigu",ecirc:"Latijnse kleine letter e met een circonflexe",euml:"Latijnse kleine letter e met een trema",igrave:"Latijnse kleine letter i met een accent grave",iacute:"Latijnse kleine letter i met een accent aigu",icirc:"Latijnse kleine letter i met een circonflexe", -iuml:"Latijnse kleine letter i met een trema",eth:"Latijnse kleine letter eth",ntilde:"Latijnse kleine letter n met een tilde",ograve:"Latijnse kleine letter o met een accent grave",oacute:"Latijnse kleine letter o met een accent aigu",ocirc:"Latijnse kleine letter o met een circonflexe",otilde:"Latijnse kleine letter o met een tilde",ouml:"Latijnse kleine letter o met een trema",divide:"Deel-teken",oslash:"Latijnse kleine letter o met een schuine streep",ugrave:"Latijnse kleine letter u met een accent grave", -uacute:"Latijnse kleine letter u met een accent aigu",ucirc:"Latijnse kleine letter u met een circonflexe",uuml:"Latijnse kleine letter u met een trema",yacute:"Latijnse kleine letter y met een accent aigu",thorn:"Latijnse kleine letter thorn",yuml:"Latijnse kleine letter y met een trema",OElig:"Latijnse hoofdletter Œ",oelig:"Latijnse kleine letter œ",372:"Latijnse hoofdletter W met een circonflexe",374:"Latijnse hoofdletter Y met een circonflexe",373:"Latijnse kleine letter w met een circonflexe", -375:"Latijnse kleine letter y met een circonflexe",sbquo:"Lage enkele aanhalingsteken",8219:"Hoge omgekeerde enkele aanhalingsteken",bdquo:"Lage dubbele aanhalingsteken",hellip:"Beletselteken",trade:"Trademark-teken",9658:"Zwarte driehoek naar rechts",bull:"Bullet",rarr:"Pijl naar rechts",rArr:"Dubbele pijl naar rechts",hArr:"Dubbele pijl naar links",diams:"Zwart ruitje",asymp:"Benaderingsteken"}); \ No newline at end of file diff --git a/admin/plugins/ckeditor/plugins/specialchar/dialogs/lang/no.js b/admin/plugins/ckeditor/plugins/specialchar/dialogs/lang/no.js deleted file mode 100644 index 7f23591..0000000 --- a/admin/plugins/ckeditor/plugins/specialchar/dialogs/lang/no.js +++ /dev/null @@ -1,11 +0,0 @@ -/* - Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. - For licensing, see LICENSE.md or http://ckeditor.com/license -*/ -CKEDITOR.plugins.setLang("specialchar","no",{euro:"Eurosymbol",lsquo:"Venstre enkelt anførselstegn",rsquo:"Høyre enkelt anførselstegn",ldquo:"Venstre dobbelt anførselstegn",rdquo:"Høyre anførsesltegn",ndash:"Kort tankestrek",mdash:"Lang tankestrek",iexcl:"Omvendt utropstegn",cent:"Centsymbol",pound:"Pundsymbol",curren:"Valutategn",yen:"Yensymbol",brvbar:"Brutt loddrett strek",sect:"Paragraftegn",uml:"Tøddel",copy:"Copyrighttegn",ordf:"Feminin ordensindikator",laquo:"Venstre anførselstegn",not:"Negasjonstegn", -reg:"Registrert varemerke-tegn",macr:"Makron",deg:"Gradsymbol",sup2:"Hevet totall",sup3:"Hevet tretall",acute:"Akutt aksent",micro:"Mikrosymbol",para:"Avsnittstegn",middot:"Midtstilt prikk",cedil:"Cedille",sup1:"Hevet ettall",ordm:"Maskulin ordensindikator",raquo:"Høyre anførselstegn",frac14:"Fjerdedelsbrøk",frac12:"Halvbrøk",frac34:"Tre fjerdedelers brøk",iquest:"Omvendt spørsmålstegn",Agrave:"Stor A med grav aksent",Aacute:"Stor A med akutt aksent",Acirc:"Stor A med cirkumfleks",Atilde:"Stor A med tilde", -Auml:"Stor A med tøddel",Aring:"Stor Å",AElig:"Stor Æ",Ccedil:"Stor C med cedille",Egrave:"Stor E med grav aksent",Eacute:"Stor E med akutt aksent",Ecirc:"Stor E med cirkumfleks",Euml:"Stor E med tøddel",Igrave:"Stor I med grav aksent",Iacute:"Stor I med akutt aksent",Icirc:"Stor I med cirkumfleks",Iuml:"Stor I med tøddel",ETH:"Stor Edd/stungen D",Ntilde:"Stor N med tilde",Ograve:"Stor O med grav aksent",Oacute:"Stor O med akutt aksent",Ocirc:"Stor O med cirkumfleks",Otilde:"Stor O med tilde",Ouml:"Stor O med tøddel", -times:"Multiplikasjonstegn",Oslash:"Stor Ø",Ugrave:"Stor U med grav aksent",Uacute:"Stor U med akutt aksent",Ucirc:"Stor U med cirkumfleks",Uuml:"Stor U med tøddel",Yacute:"Stor Y med akutt aksent",THORN:"Stor Thorn",szlig:"Liten dobbelt-s/Eszett",agrave:"Liten a med grav aksent",aacute:"Liten a med akutt aksent",acirc:"Liten a med cirkumfleks",atilde:"Liten a med tilde",auml:"Liten a med tøddel",aring:"Liten å",aelig:"Liten æ",ccedil:"Liten c med cedille",egrave:"Liten e med grav aksent",eacute:"Liten e med akutt aksent", -ecirc:"Liten e med cirkumfleks",euml:"Liten e med tøddel",igrave:"Liten i med grav aksent",iacute:"Liten i med akutt aksent",icirc:"Liten i med cirkumfleks",iuml:"Liten i med tøddel",eth:"Liten edd/stungen d",ntilde:"Liten n med tilde",ograve:"Liten o med grav aksent",oacute:"Liten o med akutt aksent",ocirc:"Liten o med cirkumfleks",otilde:"Liten o med tilde",ouml:"Liten o med tøddel",divide:"Divisjonstegn",oslash:"Liten ø",ugrave:"Liten u med grav aksent",uacute:"Liten u med akutt aksent",ucirc:"Liten u med cirkumfleks", -uuml:"Liten u med tøddel",yacute:"Liten y med akutt aksent",thorn:"Liten thorn",yuml:"Liten y med tøddel",OElig:"Stor ligatur av O og E",oelig:"Liten ligatur av o og e",372:"Stor W med cirkumfleks",374:"Stor Y med cirkumfleks",373:"Liten w med cirkumfleks",375:"Liten y med cirkumfleks",sbquo:"Enkelt lavt 9-anførselstegn",8219:"Enkelt høyt reversert 9-anførselstegn",bdquo:"Dobbelt lavt 9-anførselstegn",hellip:"Ellipse",trade:"Varemerkesymbol",9658:"Svart høyrevendt peker",bull:"Tykk interpunkt",rarr:"Høyrevendt pil", -rArr:"Dobbel høyrevendt pil",hArr:"Dobbel venstrevendt pil",diams:"Svart ruter",asymp:"Omtrent likhetstegn"}); \ No newline at end of file diff --git a/admin/plugins/ckeditor/plugins/specialchar/dialogs/lang/oc.js b/admin/plugins/ckeditor/plugins/specialchar/dialogs/lang/oc.js deleted file mode 100644 index 1847431..0000000 --- a/admin/plugins/ckeditor/plugins/specialchar/dialogs/lang/oc.js +++ /dev/null @@ -1,12 +0,0 @@ -/* - Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. - For licensing, see LICENSE.md or http://ckeditor.com/license -*/ -CKEDITOR.plugins.setLang("specialchar","oc",{euro:"Simbòl èuro",lsquo:"Vergueta simpla dobrenta",rsquo:"Vergueta simpla tampanta",ldquo:"Vergueta dobla dobrenta",rdquo:"Vergueta dobla tampanta",ndash:"Jonhent semi-quadratin",mdash:"Jonhent quadratin",iexcl:"Punt d'exclamacion inversat",cent:"Simbòl cent",pound:"Simbòl Liura sterling",curren:"Simbòl monetari",yen:"Simbòl ièn",brvbar:"Barra verticala separada",sect:"Signe de seccion",uml:"Trèma",copy:"Simbòl Copyright",ordf:"Indicador ordinal femenin", -laquo:"Vergueta francesa dobrenta",not:"Croquet de negacion",reg:"Simbòl de marca depausada",macr:"Macron",deg:"Simbòl gra",sup2:"Exponent 2",sup3:"Exponent 3",acute:"Accent agut",micro:"Simbòl micro",para:"Simbòl pè de mòsca",middot:"Punt median",cedil:"Cedilha",sup1:"Exponent 1",ordm:"Indicador ordenal masculin",raquo:"Vergueta francesa tampanta",frac14:"Fraccion un quart",frac12:"Fraccion un mièg",frac34:"Fraccion tres quarts",iquest:"Punt d'interrogacion inversat",Agrave:"A accent grèu majuscula", -Aacute:"A accent agut majuscula",Acirc:"A accent circonflèxe majuscula",Atilde:"A caron majuscula",Auml:"A trèma majuscula",Aring:"A redond majuscula",AElig:"Ligatura Æ majuscula",Ccedil:"C cédille majuscula",Egrave:"E accent grèu majuscula",Eacute:"E accent agut majuscula",Ecirc:"E accent circonflèxe majuscula",Euml:"E trèma majuscula",Igrave:"I accent grèu majuscula",Iacute:"I accent agut majuscula",Icirc:"I accent circonflèxe majuscula",Iuml:"I trèma majuscula",ETH:"Letra majuscula islandaise ED", -Ntilde:"N caron majuscula",Ograve:"O accent grèu majuscula",Oacute:"O accent agut majuscula",Ocirc:"O accent circonflèxe majuscula",Otilde:"O caron majuscula",Ouml:"O trèma majuscula",times:"Simbòl de multiplicacion",Oslash:"O raiat majuscula",Ugrave:"U accent grèu majuscula",Uacute:"U accent agut majuscula",Ucirc:"U accent circonflèxe majuscula",Uuml:"U trèma majuscula",Yacute:"Y accent agut majuscula",THORN:"Letra islandesa thorn majuscula",szlig:"Letra minuscula alemanda S dur",agrave:"A accent grèu minuscula", -aacute:"A accent agut minuscula",acirc:"A accent circonflèxe minuscula",atilde:"A tilda minuscula",auml:"A trèma minuscula",aring:"A redond minuscula",aelig:"Ligatura Æ minuscula",ccedil:"C cédille minuscula",egrave:"E accent grèu minuscula",eacute:"E accent agut minuscula",ecirc:"E accent circonflèxe minuscula",euml:"E trèma minuscula",igrave:"I accent grèu minuscula",iacute:"I accent agut minuscula",icirc:"I accent circonflèxe minuscula",iuml:"i minuscula trèma",eth:"Letra minuscula islandaise ED", -ntilde:"N caron minuscula",ograve:"O minuscula accent grèu",oacute:"O accent agut minuscula",ocirc:"O accent circonflèxe minuscula",otilde:"O tilda minuscula",ouml:"O trèma minuscula",divide:"Simbòl de division",oslash:"O raiat minuscula",ugrave:"U accent grèu minuscula",uacute:"U accent agut minuscula",ucirc:"U accent circonflèxe minuscula",uuml:"U trèma minuscula",yacute:"Y accent agut minuscula",thorn:"Letra islandaise thorn minuscula",yuml:"Y trèma minuscula",OElig:"Ligatura Œ majuscula",oelig:"Ligatura Œ minuscula", -372:"W accent circonflèxe majuscula",374:"Y accent circonflèxe majuscula",373:"W accent circonflèxe minuscula",375:"Y accent circonflèxe minuscula",sbquo:"Vergueta simpla tampanta inferior",8219:"Vergueta-virgula superior culbuté",bdquo:"Vergueta-virgula double inferior",hellip:"Punts de suspension",trade:"Simbòl de marca comerciala",9658:"Sageta negra puntant cap a dreita",bull:"Gròs punt median",rarr:"Sageta cap a dreita",rArr:"Sageta dobla cap a dreita",hArr:"Sageta dobla cap a esquèrra",diams:"Lausange negre", -asymp:"Environ egal"}); \ No newline at end of file diff --git a/admin/plugins/ckeditor/plugins/specialchar/dialogs/lang/pl.js b/admin/plugins/ckeditor/plugins/specialchar/dialogs/lang/pl.js deleted file mode 100644 index b5dc457..0000000 --- a/admin/plugins/ckeditor/plugins/specialchar/dialogs/lang/pl.js +++ /dev/null @@ -1,12 +0,0 @@ -/* - Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. - For licensing, see LICENSE.md or http://ckeditor.com/license -*/ -CKEDITOR.plugins.setLang("specialchar","pl",{euro:"Znak euro",lsquo:"Cudzysłów pojedynczy otwierający",rsquo:"Cudzysłów pojedynczy zamykający",ldquo:"Cudzysłów apostrofowy otwierający",rdquo:"Cudzysłów apostrofowy zamykający",ndash:"Półpauza",mdash:"Pauza",iexcl:"Odwrócony wykrzyknik",cent:"Znak centa",pound:"Znak funta",curren:"Znak waluty",yen:"Znak jena",brvbar:"Przerwana pionowa kreska",sect:"Paragraf",uml:"Diereza",copy:"Znak praw autorskich",ordf:"Wskaźnik rodzaju żeńskiego liczebnika porządkowego", -laquo:"Lewy cudzysłów ostrokątny",not:"Znak negacji",reg:"Zastrzeżony znak towarowy",macr:"Makron",deg:"Znak stopnia",sup2:"Druga potęga",sup3:"Trzecia potęga",acute:"Akcent ostry",micro:"Znak mikro",para:"Znak akapitu",middot:"Kropka środkowa",cedil:"Cedylla",sup1:"Pierwsza potęga",ordm:"Wskaźnik rodzaju męskiego liczebnika porządkowego",raquo:"Prawy cudzysłów ostrokątny",frac14:"Ułamek zwykły jedna czwarta",frac12:"Ułamek zwykły jedna druga",frac34:"Ułamek zwykły trzy czwarte",iquest:"Odwrócony znak zapytania", -Agrave:"Wielka litera A z akcentem ciężkim",Aacute:"Wielka litera A z akcentem ostrym",Acirc:"Wielka litera A z akcentem przeciągłym",Atilde:"Wielka litera A z tyldą",Auml:"Wielka litera A z dierezą",Aring:"Wielka litera A z kółkiem",AElig:"Wielka ligatura Æ",Ccedil:"Wielka litera C z cedyllą",Egrave:"Wielka litera E z akcentem ciężkim",Eacute:"Wielka litera E z akcentem ostrym",Ecirc:"Wielka litera E z akcentem przeciągłym",Euml:"Wielka litera E z dierezą",Igrave:"Wielka litera I z akcentem ciężkim", -Iacute:"Wielka litera I z akcentem ostrym",Icirc:"Wielka litera I z akcentem przeciągłym",Iuml:"Wielka litera I z dierezą",ETH:"Wielka litera Eth",Ntilde:"Wielka litera N z tyldą",Ograve:"Wielka litera O z akcentem ciężkim",Oacute:"Wielka litera O z akcentem ostrym",Ocirc:"Wielka litera O z akcentem przeciągłym",Otilde:"Wielka litera O z tyldą",Ouml:"Wielka litera O z dierezą",times:"Znak mnożenia wektorowego",Oslash:"Wielka litera O z przekreśleniem",Ugrave:"Wielka litera U z akcentem ciężkim",Uacute:"Wielka litera U z akcentem ostrym", -Ucirc:"Wielka litera U z akcentem przeciągłym",Uuml:"Wielka litera U z dierezą",Yacute:"Wielka litera Y z akcentem ostrym",THORN:"Wielka litera Thorn",szlig:"Mała litera ostre s (eszet)",agrave:"Mała litera a z akcentem ciężkim",aacute:"Mała litera a z akcentem ostrym",acirc:"Mała litera a z akcentem przeciągłym",atilde:"Mała litera a z tyldą",auml:"Mała litera a z dierezą",aring:"Mała litera a z kółkiem",aelig:"Mała ligatura æ",ccedil:"Mała litera c z cedyllą",egrave:"Mała litera e z akcentem ciężkim", -eacute:"Mała litera e z akcentem ostrym",ecirc:"Mała litera e z akcentem przeciągłym",euml:"Mała litera e z dierezą",igrave:"Mała litera i z akcentem ciężkim",iacute:"Mała litera i z akcentem ostrym",icirc:"Mała litera i z akcentem przeciągłym",iuml:"Mała litera i z dierezą",eth:"Mała litera eth",ntilde:"Mała litera n z tyldą",ograve:"Mała litera o z akcentem ciężkim",oacute:"Mała litera o z akcentem ostrym",ocirc:"Mała litera o z akcentem przeciągłym",otilde:"Mała litera o z tyldą",ouml:"Mała litera o z dierezą", -divide:"Anglosaski znak dzielenia",oslash:"Mała litera o z przekreśleniem",ugrave:"Mała litera u z akcentem ciężkim",uacute:"Mała litera u z akcentem ostrym",ucirc:"Mała litera u z akcentem przeciągłym",uuml:"Mała litera u z dierezą",yacute:"Mała litera y z akcentem ostrym",thorn:"Mała litera thorn",yuml:"Mała litera y z dierezą",OElig:"Wielka ligatura OE",oelig:"Mała ligatura oe",372:"Wielka litera W z akcentem przeciągłym",374:"Wielka litera Y z akcentem przeciągłym",373:"Mała litera w z akcentem przeciągłym", -375:"Mała litera y z akcentem przeciągłym",sbquo:"Pojedynczy apostrof dolny",8219:"Pojedynczy apostrof górny",bdquo:"Podwójny apostrof dolny",hellip:"Wielokropek",trade:"Znak towarowy",9658:"Czarny wskaźnik wskazujący w prawo",bull:"Punktor",rarr:"Strzałka w prawo",rArr:"Podwójna strzałka w prawo",hArr:"Podwójna strzałka obustronna",diams:"Czarny znak karo",asymp:"Znak prawie równe"}); \ No newline at end of file diff --git a/admin/plugins/ckeditor/plugins/specialchar/dialogs/lang/pt-br.js b/admin/plugins/ckeditor/plugins/specialchar/dialogs/lang/pt-br.js deleted file mode 100644 index 76eb659..0000000 --- a/admin/plugins/ckeditor/plugins/specialchar/dialogs/lang/pt-br.js +++ /dev/null @@ -1,11 +0,0 @@ -/* - Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. - For licensing, see LICENSE.md or http://ckeditor.com/license -*/ -CKEDITOR.plugins.setLang("specialchar","pt-br",{euro:"Euro",lsquo:"Aspas simples esquerda",rsquo:"Aspas simples direita",ldquo:"Aspas duplas esquerda",rdquo:"Aspas duplas direita",ndash:"Traço",mdash:"Travessão",iexcl:"Ponto de exclamação invertido",cent:"Cent",pound:"Cerquilha",curren:"Dinheiro",yen:"Yen",brvbar:"Bara interrompida",sect:"Símbolo de Parágrafo",uml:"Trema",copy:"Direito de Cópia",ordf:"Indicador ordinal feminino",laquo:"Aspas duplas angulares esquerda",not:"Negação",reg:"Marca Registrada", -macr:"Mácron",deg:"Grau",sup2:"2 Superscrito",sup3:"3 Superscrito",acute:"Acento agudo",micro:"Micro",para:"Pé de mosca",middot:"Ponto mediano",cedil:"Cedilha",sup1:"1 Superscrito",ordm:"Indicador ordinal masculino",raquo:"Aspas duplas angulares direita",frac14:"Um quarto",frac12:"Um meio",frac34:"Três quartos",iquest:"Interrogação invertida",Agrave:"A maiúsculo com acento grave",Aacute:"A maiúsculo com acento agudo",Acirc:"A maiúsculo com acento circunflexo",Atilde:"A maiúsculo com til",Auml:"A maiúsculo com trema", -Aring:"A maiúsculo com anel acima",AElig:"Æ maiúsculo",Ccedil:"Ç maiúlculo",Egrave:"E maiúsculo com acento grave",Eacute:"E maiúsculo com acento agudo",Ecirc:"E maiúsculo com acento circumflexo",Euml:"E maiúsculo com trema",Igrave:"I maiúsculo com acento grave",Iacute:"I maiúsculo com acento agudo",Icirc:"I maiúsculo com acento circunflexo",Iuml:"I maiúsculo com crase",ETH:"Eth maiúsculo",Ntilde:"N maiúsculo com til",Ograve:"O maiúsculo com acento grave",Oacute:"O maiúsculo com acento agudo",Ocirc:"O maiúsculo com acento circunflexo", -Otilde:"O maiúsculo com til",Ouml:"O maiúsculo com trema",times:"Multiplicação",Oslash:"Diâmetro",Ugrave:"U maiúsculo com acento grave",Uacute:"U maiúsculo com acento agudo",Ucirc:"U maiúsculo com acento circunflexo",Uuml:"U maiúsculo com trema",Yacute:"Y maiúsculo com acento agudo",THORN:"Thorn maiúsculo",szlig:"Eszett minúsculo",agrave:"a minúsculo com acento grave",aacute:"a minúsculo com acento agudo",acirc:"a minúsculo com acento circunflexo",atilde:"a minúsculo com til",auml:"a minúsculo com trema", -aring:"a minúsculo com anel acima",aelig:"æ minúsculo",ccedil:"ç minúsculo",egrave:"e minúsculo com acento grave",eacute:"e minúsculo com acento agudo",ecirc:"e minúsculo com acento circunflexo",euml:"e minúsculo com trema",igrave:"i minúsculo com acento grave",iacute:"i minúsculo com acento agudo",icirc:"i minúsculo com acento circunflexo",iuml:"i minúsculo com trema",eth:"eth minúsculo",ntilde:"n minúsculo com til",ograve:"o minúsculo com acento grave",oacute:"o minúsculo com acento agudo",ocirc:"o minúsculo com acento circunflexo", -otilde:"o minúsculo com til",ouml:"o minúsculo com trema",divide:"Divisão",oslash:"o minúsculo com cortado ou diâmetro",ugrave:"u minúsculo com acento grave",uacute:"u minúsculo com acento agudo",ucirc:"u minúsculo com acento circunflexo",uuml:"u minúsculo com trema",yacute:"y minúsculo com acento agudo",thorn:"thorn minúsculo",yuml:"y minúsculo com trema",OElig:"Ligação tipográfica OE maiúscula",oelig:"Ligação tipográfica oe minúscula",372:"W maiúsculo com acento circunflexo",374:"Y maiúsculo com acento circunflexo", -373:"w minúsculo com acento circunflexo",375:"y minúsculo com acento circunflexo",sbquo:"Aspas simples inferior direita",8219:"Aspas simples superior esquerda",bdquo:"Aspas duplas inferior direita",hellip:"Reticências",trade:"Trade mark",9658:"Ponta de seta preta para direita",bull:"Ponto lista",rarr:"Seta para direita",rArr:"Seta dupla para direita",hArr:"Seta dupla direita e esquerda",diams:"Ouros",asymp:"Aproximadamente"}); \ No newline at end of file diff --git a/admin/plugins/ckeditor/plugins/specialchar/dialogs/lang/pt.js b/admin/plugins/ckeditor/plugins/specialchar/dialogs/lang/pt.js deleted file mode 100644 index c431a2f..0000000 --- a/admin/plugins/ckeditor/plugins/specialchar/dialogs/lang/pt.js +++ /dev/null @@ -1,13 +0,0 @@ -/* - Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. - For licensing, see LICENSE.md or http://ckeditor.com/license -*/ -CKEDITOR.plugins.setLang("specialchar","pt",{euro:"Símbolo de Euro",lsquo:"Aspa esquerda simples",rsquo:"Aspa direita simples",ldquo:"Aspa esquerda dupla",rdquo:"Aspa direita dupla",ndash:"Travessão simples",mdash:"Travessão longo",iexcl:"Ponto de exclamação invertido",cent:"Símbolo de cêntimo",pound:"Símbolo de Libra",curren:"Símbolo de Moeda",yen:"Símbolo de Iene",brvbar:"Barra quebrada",sect:"Símbolo de secção",uml:"Trema",copy:"Símbolo de direitos de autor",ordf:"Indicador ordinal feminino",laquo:"Aspa esquerda ângulo duplo", -not:"Não símbolo",reg:"Símbolo de registado",macr:"Mácron",deg:"Símbolo de graus",sup2:"Expoente 2",sup3:"Expoente 3",acute:"Acento agudo",micro:"Símbolo de micro",para:"Símbolo de parágrafo",middot:"Ponto do meio",cedil:"Cedilha",sup1:"Expoente 1",ordm:"Indicador ordinal masculino",raquo:"Aspas ângulo duplo para a direita",frac14:"Fração vulgar 1/4",frac12:"Fração vulgar 1/2",frac34:"Fração vulgar 3/4",iquest:"Ponto de interrogação invertido",Agrave:"Letra maiúscula latina A com acento grave",Aacute:"Letra maiúscula latina A com acento agudo", -Acirc:"Letra maiúscula latina A com circunflexo",Atilde:"Letra maiúscula latina A com til",Auml:"Letra maiúscula latina A com trema",Aring:"Letra maiúscula latina A com sinal diacrítico",AElig:"Letra maiúscula latina Æ",Ccedil:"Letra maiúscula latina C com cedilha",Egrave:"Letra maiúscula latina E com acento grave",Eacute:"Letra maiúscula latina E com acento agudo",Ecirc:"Letra maiúscula latina E com circunflexo",Euml:"Letra maiúscula latina E com trema",Igrave:"Letra maiúscula latina I com acento grave", -Iacute:"Letra maiúscula latina I com acento agudo",Icirc:"Letra maiúscula latina I com cincunflexo",Iuml:"Letra maiúscula latina I com trema",ETH:"Letra maiúscula latina Eth (Ðð)",Ntilde:"Letra maiúscula latina N com til",Ograve:"Letra maiúscula latina O com acento grave",Oacute:"Letra maiúscula latina O com acento agudo",Ocirc:"Letra maiúscula latina I com circunflexo",Otilde:"Letra maiúscula latina O com til",Ouml:"Letra maiúscula latina O com trema",times:"Símbolo de multiplicação",Oslash:"Letra maiúscula O com barra", -Ugrave:"Letra maiúscula latina U com acento grave",Uacute:"Letra maiúscula latina U com acento agudo",Ucirc:"Letra maiúscula latina U com circunflexo",Uuml:"Letra maiúscula latina E com trema",Yacute:"Letra maiúscula latina Y com acento agudo",THORN:"Letra maiúscula latina Rúnico",szlig:"Letra minúscula latina s forte",agrave:"Letra minúscula latina a com acento grave",aacute:"Letra minúscula latina a com acento agudo",acirc:"Letra minúscula latina a com circunflexo",atilde:"Letra minúscula latina a com til", -auml:"Letra minúscula latina a com trema",aring:"Letra minúscula latina a com sinal diacrítico",aelig:"Letra minúscula latina æ",ccedil:"Letra minúscula latina c com cedilha",egrave:"Letra minúscula latina e com acento grave",eacute:"Letra minúscula latina e com acento agudo",ecirc:"Letra minúscula latina e com circunflexo",euml:"Letra minúscula latina e com trema",igrave:"Letra minúscula latina i com acento grave",iacute:"Letra minúscula latina i com acento agudo",icirc:"Letra minúscula latina i com circunflexo", -iuml:"Letra pequena latina i com trema",eth:"Letra minúscula latina eth",ntilde:"Letra minúscula latina n com til",ograve:"Letra minúscula latina o com acento grave",oacute:"Letra minúscula latina o com acento agudo",ocirc:"Letra minúscula latina o com circunflexo",otilde:"Letra minúscula latina o com til",ouml:"Letra minúscula latina o com trema",divide:"Símbolo de divisão",oslash:"Letra minúscula latina o com barra",ugrave:"Letra minúscula latina u com acento grave",uacute:"Letra minúscula latina u com acento agudo", -ucirc:"Letra minúscula latina u com circunflexo",uuml:"Letra minúscula latina u com trema",yacute:"Letra minúscula latina y com acento agudo",thorn:"Letra minúscula latina Rúnico",yuml:"Letra minúscula latina y com trema",OElig:"Ligadura maiúscula latina OE",oelig:"Ligadura minúscula latina oe",372:"Letra maiúscula latina W com circunflexo",374:"Letra maiúscula latina Y com circunflexo",373:"Letra minúscula latina w com circunflexo",375:"Letra minúscula latina y com circunflexo",sbquo:"Aspa Simples inferior-9", -8219:"Aspa simples superior invertida-9",bdquo:"Aspa duplas inferior-9",hellip:"Elipse horizontal ",trade:"Símbolo de marca registada",9658:"Ponteiro preto direito",bull:"Marca",rarr:"Seta para a direita",rArr:"Seta dupla para a direita",hArr:"Seta dupla direita esquerda",diams:"Naipe diamante preto",asymp:"Quase igual a "}); \ No newline at end of file diff --git a/admin/plugins/ckeditor/plugins/specialchar/dialogs/lang/ru.js b/admin/plugins/ckeditor/plugins/specialchar/dialogs/lang/ru.js deleted file mode 100644 index b7bf674..0000000 --- a/admin/plugins/ckeditor/plugins/specialchar/dialogs/lang/ru.js +++ /dev/null @@ -1,13 +0,0 @@ -/* - Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. - For licensing, see LICENSE.md or http://ckeditor.com/license -*/ -CKEDITOR.plugins.setLang("specialchar","ru",{euro:"Знак евро",lsquo:"Левая одинарная кавычка",rsquo:"Правая одинарная кавычка",ldquo:"Левая двойная кавычка",rdquo:"Левая двойная кавычка",ndash:"Среднее тире",mdash:"Длинное тире",iexcl:"перевёрнутый восклицательный знак",cent:"Цент",pound:"Фунт",curren:"Знак валюты",yen:"Йена",brvbar:"Вертикальная черта с разрывом",sect:"Знак параграфа",uml:"Умлаут",copy:"Знак охраны авторского права",ordf:"Указатель окончания женского рода ...ая",laquo:"Левая кавычка-«ёлочка»", -not:"Отрицание",reg:"Знак охраны смежных прав\\t",macr:"Макрон",deg:"Градус",sup2:"Надстрочное два",sup3:"Надстрочное три",acute:"Акут",micro:"Микро",para:"Абзац",middot:"Интерпункт",cedil:"Седиль",sup1:"Надстрочная единица",ordm:"Порядковое числительное",raquo:"Правая кавычка-«ёлочка»",frac14:"Одна четвертая",frac12:"Одна вторая",frac34:"Три четвёртых",iquest:"Перевёрнутый вопросительный знак",Agrave:"Латинская заглавная буква А с апострофом",Aacute:"Латинская заглавная буква A с ударением",Acirc:"Латинская заглавная буква А с циркумфлексом", -Atilde:"Латинская заглавная буква А с тильдой",Auml:"Латинская заглавная буква А с тремой",Aring:"Латинская заглавная буква А с кольцом над ней",AElig:"Латинская большая буква Æ",Ccedil:"Латинская заглавная буква C с седилью",Egrave:"Латинская заглавная буква Е с апострофом",Eacute:"Латинская заглавная буква Е с ударением",Ecirc:"Латинская заглавная буква Е с циркумфлексом",Euml:"Латинская заглавная буква Е с тремой",Igrave:"Латинская заглавная буква I с апострофом",Iacute:"Латинская заглавная буква I с ударением", -Icirc:"Латинская заглавная буква I с циркумфлексом",Iuml:"Латинская заглавная буква I с тремой",ETH:"Латинская большая буква Eth",Ntilde:"Латинская заглавная буква N с тильдой",Ograve:"Латинская заглавная буква O с апострофом",Oacute:"Латинская заглавная буква O с ударением",Ocirc:"Латинская заглавная буква O с циркумфлексом",Otilde:"Латинская заглавная буква O с тильдой",Ouml:"Латинская заглавная буква O с тремой",times:"Знак умножения",Oslash:"Латинская большая перечеркнутая O",Ugrave:"Латинская заглавная буква U с апострофом", -Uacute:"Латинская заглавная буква U с ударением",Ucirc:"Латинская заглавная буква U с циркумфлексом",Uuml:"Латинская заглавная буква U с тремой",Yacute:"Латинская заглавная буква Y с ударением",THORN:"Латинская заглавная буква Thorn",szlig:"Знак диеза",agrave:"Латинская маленькая буква a с апострофом",aacute:"Латинская маленькая буква a с ударением",acirc:"Латинская маленькая буква a с циркумфлексом",atilde:"Латинская маленькая буква a с тильдой",auml:"Латинская маленькая буква a с тремой",aring:"Латинская маленькая буква a с кольцом", -aelig:"Латинская маленькая буква æ",ccedil:"Латинская маленькая буква с с седилью",egrave:"Латинская маленькая буква е с апострофом",eacute:"Латинская маленькая буква е с ударением",ecirc:"Латинская маленькая буква е с циркумфлексом",euml:"Латинская маленькая буква е с тремой",igrave:"Латинская маленькая буква i с апострофом",iacute:"Латинская маленькая буква i с ударением",icirc:"Латинская маленькая буква i с циркумфлексом",iuml:"Латинская маленькая буква i с тремой",eth:"Латинская маленькая буква eth", -ntilde:"Латинская маленькая буква n с тильдой",ograve:"Латинская маленькая буква o с апострофом",oacute:"Латинская маленькая буква o с ударением",ocirc:"Латинская маленькая буква o с циркумфлексом",otilde:"Латинская маленькая буква o с тильдой",ouml:"Латинская маленькая буква o с тремой",divide:"Знак деления",oslash:"Латинская строчная перечеркнутая o",ugrave:"Латинская маленькая буква u с апострофом",uacute:"Латинская маленькая буква u с ударением",ucirc:"Латинская маленькая буква u с циркумфлексом", -uuml:"Латинская маленькая буква u с тремой",yacute:"Латинская маленькая буква y с ударением",thorn:"Латинская маленькая буква thorn",yuml:"Латинская маленькая буква y с тремой",OElig:"Латинская прописная лигатура OE",oelig:"Латинская строчная лигатура oe",372:"Латинская заглавная буква W с циркумфлексом",374:"Латинская заглавная буква Y с циркумфлексом",373:"Латинская маленькая буква w с циркумфлексом",375:"Латинская маленькая буква y с циркумфлексом",sbquo:"Нижняя одинарная кавычка",8219:"Правая одинарная кавычка", -bdquo:"Левая двойная кавычка",hellip:"Горизонтальное многоточие",trade:"Товарный знак",9658:"Черный указатель вправо",bull:"Маркер списка",rarr:"Стрелка вправо",rArr:"Двойная стрелка вправо",hArr:"Двойная стрелка влево-вправо",diams:"Черный ромб",asymp:"Примерно равно"}); \ No newline at end of file diff --git a/admin/plugins/ckeditor/plugins/specialchar/dialogs/lang/si.js b/admin/plugins/ckeditor/plugins/specialchar/dialogs/lang/si.js deleted file mode 100644 index cc4679c..0000000 --- a/admin/plugins/ckeditor/plugins/specialchar/dialogs/lang/si.js +++ /dev/null @@ -1,13 +0,0 @@ -/* - Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. - For licensing, see LICENSE.md or http://ckeditor.com/license -*/ -CKEDITOR.plugins.setLang("specialchar","si",{euro:"යුරෝ සලකුණ",lsquo:"වමේ තනි උපුටා දක්වීම ",rsquo:"දකුණේ තනි උපුටා දක්වීම ",ldquo:"වමේ දිත්ව උපුටා දක්වීම ",rdquo:"දකුණේ දිත්ව උපුටා දක්වීම ",ndash:"En dash",mdash:"Em dash",iexcl:"යටිකුරු හර්ෂදී ",cent:"Cent sign",pound:"Pound sign",curren:"මුල්‍යමය ",yen:"යෙන් ",brvbar:"Broken bar",sect:"තෙරේම් ",uml:"Diaeresis",copy:"පිටපත් අයිතිය ",ordf:"දර්ශකය",laquo:"Left-pointing double angle quotation mark",not:"සලකුණක් නොවේ",reg:"සලකුණක් ලියාපදිංචි කිරීම", -macr:"මුද්‍රිත ",deg:"සලකුණේ ",sup2:"උඩු ලකුණු දෙක",sup3:"Superscript three",acute:"Acute accent",micro:"Micro sign",para:"Pilcrow sign",middot:"Middle dot",cedil:"Cedilla",sup1:"Superscript one",ordm:"Masculine ordinal indicator",raquo:"Right-pointing double angle quotation mark",frac14:"Vulgar fraction one quarter",frac12:"Vulgar fraction one half",frac34:"Vulgar fraction three quarters",iquest:"Inverted question mark",Agrave:"Latin capital letter A with grave accent",Aacute:"Latin capital letter A with acute accent", -Acirc:"Latin capital letter A with circumflex",Atilde:"Latin capital letter A with tilde",Auml:"Latin capital letter A with diaeresis",Aring:"Latin capital letter A with ring above",AElig:"Latin capital letter Æ",Ccedil:"Latin capital letter C with cedilla",Egrave:"Latin capital letter E with grave accent",Eacute:"Latin capital letter E with acute accent",Ecirc:"Latin capital letter E with circumflex",Euml:"Latin capital letter E with diaeresis",Igrave:"Latin capital letter I with grave accent",Iacute:"Latin capital letter I with acute accent", -Icirc:"Latin capital letter I with circumflex",Iuml:"Latin capital letter I with diaeresis",ETH:"Latin capital letter Eth",Ntilde:"Latin capital letter N with tilde",Ograve:"Latin capital letter O with grave accent",Oacute:"Latin capital letter O with acute accent",Ocirc:"Latin capital letter O with circumflex",Otilde:"Latin capital letter O with tilde",Ouml:"Latin capital letter O with diaeresis",times:"Multiplication sign",Oslash:"Latin capital letter O with stroke",Ugrave:"Latin capital letter U with grave accent", -Uacute:"Latin capital letter U with acute accent",Ucirc:"Latin capital letter U with circumflex",Uuml:"Latin capital letter U with diaeresis",Yacute:"Latin capital letter Y with acute accent",THORN:"Latin capital letter Thorn",szlig:"Latin small letter sharp s",agrave:"Latin small letter a with grave accent",aacute:"Latin small letter a with acute accent",acirc:"Latin small letter a with circumflex",atilde:"Latin small letter a with tilde",auml:"Latin small letter a with diaeresis",aring:"Latin small letter a with ring above", -aelig:"Latin small letter æ",ccedil:"Latin small letter c with cedilla",egrave:"Latin small letter e with grave accent",eacute:"Latin small letter e with acute accent",ecirc:"Latin small letter e with circumflex",euml:"Latin small letter e with diaeresis",igrave:"Latin small letter i with grave accent",iacute:"Latin small letter i with acute accent",icirc:"Latin small letter i with circumflex",iuml:"Latin small letter i with diaeresis",eth:"Latin small letter eth",ntilde:"Latin small letter n with tilde", -ograve:"Latin small letter o with grave accent",oacute:"Latin small letter o with acute accent",ocirc:"Latin small letter o with circumflex",otilde:"Latin small letter o with tilde",ouml:"Latin small letter o with diaeresis",divide:"Division sign",oslash:"Latin small letter o with stroke",ugrave:"Latin small letter u with grave accent",uacute:"Latin small letter u with acute accent",ucirc:"Latin small letter u with circumflex",uuml:"Latin small letter u with diaeresis",yacute:"Latin small letter y with acute accent", -thorn:"Latin small letter thorn",yuml:"Latin small letter y with diaeresis",OElig:"Latin capital ligature OE",oelig:"Latin small ligature oe",372:"Latin capital letter W with circumflex",374:"Latin capital letter Y with circumflex",373:"Latin small letter w with circumflex",375:"Latin small letter y with circumflex",sbquo:"Single low-9 quotation mark",8219:"Single high-reversed-9 quotation mark",bdquo:"Double low-9 quotation mark",hellip:"Horizontal ellipsis",trade:"Trade mark sign",9658:"Black right-pointing pointer", -bull:"Bullet",rarr:"Rightwards arrow",rArr:"Rightwards double arrow",hArr:"Left right double arrow",diams:"Black diamond suit",asymp:"Almost equal to"}); \ No newline at end of file diff --git a/admin/plugins/ckeditor/plugins/specialchar/dialogs/lang/sk.js b/admin/plugins/ckeditor/plugins/specialchar/dialogs/lang/sk.js deleted file mode 100644 index 5d6a583..0000000 --- a/admin/plugins/ckeditor/plugins/specialchar/dialogs/lang/sk.js +++ /dev/null @@ -1,13 +0,0 @@ -/* - Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. - For licensing, see LICENSE.md or http://ckeditor.com/license -*/ -CKEDITOR.plugins.setLang("specialchar","sk",{euro:"Znak eura",lsquo:"Ľavá jednoduchá úvodzovka",rsquo:"Pravá jednoduchá úvodzovka",ldquo:"Pravá dvojitá úvodzovka",rdquo:"Pravá dvojitá úvodzovka",ndash:"En pomlčka",mdash:"Em pomlčka",iexcl:"Obrátený výkričník",cent:"Znak centu",pound:"Znak libry",curren:"Znak meny",yen:"Znak jenu",brvbar:"Prerušená zvislá čiara",sect:"Znak odseku",uml:"Prehláska",copy:"Znak copyrightu",ordf:"Ženský indikátor rodu",laquo:"Znak dvojitých lomených úvodzoviek vľavo",not:"Logistický zápor", -reg:"Znak registrácie",macr:"Pomlčka nad",deg:"Znak stupňa",sup2:"Dvojka ako horný index",sup3:"Trojka ako horný index",acute:"Dĺžeň",micro:"Znak mikro",para:"Znak odstavca",middot:"Bodka uprostred",cedil:"Chvost vľavo",sup1:"Jednotka ako horný index",ordm:"Mužský indikátor rodu",raquo:"Znak dvojitých lomených úvodzoviek vpravo",frac14:"Obyčajný zlomok jedna štvrtina",frac12:"Obyčajný zlomok jedna polovica",frac34:"Obyčajný zlomok tri štvrtiny",iquest:"Otočený otáznik",Agrave:"Veľké písmeno latinky A s accentom", -Aacute:"Veľké písmeno latinky A s dĺžňom",Acirc:"Veľké písmeno latinky A s mäkčeňom",Atilde:"Veľké písmeno latinky A s tildou",Auml:"Veľké písmeno latinky A s dvoma bodkami",Aring:"Veľké písmeno latinky A s krúžkom nad",AElig:"Veľké písmeno latinky Æ",Ccedil:"Veľké písmeno latinky C s chvostom vľavo",Egrave:"Veľké písmeno latinky E s accentom",Eacute:"Veľké písmeno latinky E s dĺžňom",Ecirc:"Veľké písmeno latinky E s mäkčeňom",Euml:"Veľké písmeno latinky E s dvoma bodkami",Igrave:"Veľké písmeno latinky I s accentom", -Iacute:"Veľké písmeno latinky I s dĺžňom",Icirc:"Veľké písmeno latinky I s mäkčeňom",Iuml:"Veľké písmeno latinky I s dvoma bodkami",ETH:"Veľké písmeno latinky Eth",Ntilde:"Veľké písmeno latinky N s tildou",Ograve:"Veľké písmeno latinky O s accentom",Oacute:"Veľké písmeno latinky O s dĺžňom",Ocirc:"Veľké písmeno latinky O s mäkčeňom",Otilde:"Veľké písmeno latinky O s tildou",Ouml:"Veľké písmeno latinky O s dvoma bodkami",times:"Znak násobenia",Oslash:"Veľké písmeno latinky O preškrtnuté",Ugrave:"Veľké písmeno latinky U s accentom", -Uacute:"Veľké písmeno latinky U s dĺžňom",Ucirc:"Veľké písmeno latinky U s mäkčeňom",Uuml:"Veľké písmeno latinky U s dvoma bodkami",Yacute:"Veľké písmeno latinky Y s dĺžňom",THORN:"Veľké písmeno latinky Thorn",szlig:"Malé písmeno latinky ostré s",agrave:"Malé písmeno latinky a s accentom",aacute:"Malé písmeno latinky a s dĺžňom",acirc:"Malé písmeno latinky a s mäkčeňom",atilde:"Malé písmeno latinky a s tildou",auml:"Malé písmeno latinky a s dvoma bodkami",aring:"Malé písmeno latinky a s krúžkom nad", -aelig:"Malé písmeno latinky æ",ccedil:"Malé písmeno latinky c s chvostom vľavo",egrave:"Malé písmeno latinky e s accentom",eacute:"Malé písmeno latinky e s dĺžňom",ecirc:"Malé písmeno latinky e s mäkčeňom",euml:"Malé písmeno latinky e s dvoma bodkami",igrave:"Malé písmeno latinky i s accentom",iacute:"Malé písmeno latinky i s dĺžňom",icirc:"Malé písmeno latinky i s mäkčeňom",iuml:"Malé písmeno latinky i s dvoma bodkami",eth:"Malé písmeno latinky eth",ntilde:"Malé písmeno latinky n s tildou",ograve:"Malé písmeno latinky o s accentom", -oacute:"Malé písmeno latinky o s dĺžňom",ocirc:"Malé písmeno latinky o s mäkčeňom",otilde:"Malé písmeno latinky o s tildou",ouml:"Malé písmeno latinky o s dvoma bodkami",divide:"Znak delenia",oslash:"Malé písmeno latinky o preškrtnuté",ugrave:"Malé písmeno latinky u s accentom",uacute:"Malé písmeno latinky u s dĺžňom",ucirc:"Malé písmeno latinky u s mäkčeňom",uuml:"Malé písmeno latinky u s dvoma bodkami",yacute:"Malé písmeno latinky y s dĺžňom",thorn:"Malé písmeno latinky thorn",yuml:"Malé písmeno latinky y s dvoma bodkami", -OElig:"Veľká ligatúra latinky OE",oelig:"Malá ligatúra latinky OE",372:"Veľké písmeno latinky W s mäkčeňom",374:"Veľké písmeno latinky Y s mäkčeňom",373:"Malé písmeno latinky w s mäkčeňom",375:"Malé písmeno latinky y s mäkčeňom",sbquo:"Dolná jednoduchá 9-úvodzovka",8219:"Horná jednoduchá otočená 9-úvodzovka",bdquo:"Dolná dvojitá 9-úvodzovka",hellip:"Trojbodkový úvod",trade:"Znak ibchodnej značky",9658:"Čierny ukazovateľ smerujúci vpravo",bull:"Kruh",rarr:"Šípka vpravo",rArr:"Dvojitá šipka vpravo", -hArr:"Dvojitá šipka vľavo a vpravo",diams:"Čierne piky",asymp:"Skoro sa rovná"}); \ No newline at end of file diff --git a/admin/plugins/ckeditor/plugins/specialchar/dialogs/lang/sl.js b/admin/plugins/ckeditor/plugins/specialchar/dialogs/lang/sl.js deleted file mode 100644 index 7ecf707..0000000 --- a/admin/plugins/ckeditor/plugins/specialchar/dialogs/lang/sl.js +++ /dev/null @@ -1,12 +0,0 @@ -/* - Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. - For licensing, see LICENSE.md or http://ckeditor.com/license -*/ -CKEDITOR.plugins.setLang("specialchar","sl",{euro:"Znak za evro",lsquo:"Levi enojni narekovaj",rsquo:"Desni enojni narekovaj",ldquo:"Levi dvojni narekovaj",rdquo:"Desni dvojni narekovaj",ndash:"Pomišljaj",mdash:"Dolgi pomišljaj",iexcl:"Obrnjen klicaj",cent:"Znak za cent",pound:"Znak za funt",curren:"Znak valute",yen:"Znak za jen",brvbar:"Zlomljena črta",sect:"Znak za člen",uml:"Diereza",copy:"Znak avtorskih pravic",ordf:"Ženski zaporedni kazalnik",laquo:"Levi dvojni lomljeni narekovaj",not:"Znak za ne", -reg:"Registrirani znak",macr:"Nadčrtano",deg:"Znak za stopinje",sup2:"Nadpisano dva",sup3:"Nadpisano tri",acute:"Ostrivec",micro:"Znak za mikro",para:"Znak za odstavek",middot:"Usredinjena pika",cedil:"Cedilla",sup1:"Nadpisano ena",ordm:"Moški zaporedni kazalnik",raquo:"Desno obrnjen dvojni kotni narekovaj",frac14:"Ena četrtina",frac12:"Ena polovica",frac34:"Tri četrtine",iquest:"Obrnjen vprašaj",Agrave:"Velika latinska črka A s krativcem",Aacute:"Velika latinska črka A z ostrivcem",Acirc:"Velika latinska črka A s strešico", -Atilde:"Velika latinska črka A z tildo",Auml:"Velika latinska črka A z diaeresis-om",Aring:"Velika latinska črka A z obročem",AElig:"Velika latinska črka Æ",Ccedil:"Velika latinska črka C s cedillo",Egrave:"Velika latinska črka E s krativcem",Eacute:"Velika latinska črka E z ostrivcem",Ecirc:"Velika latinska črka E s strešico",Euml:"Velika latinska črka E z diaeresis-om",Igrave:"Velika latinska črka I s krativcem",Iacute:"Velika latinska črka I z ostrivcem",Icirc:"Velika latinska črka I s strešico", -Iuml:"Velika latinska črka I z diaeresis-om",ETH:"Velika latinska črka Eth",Ntilde:"Velika latinska črka N s tildo",Ograve:"Velika latinska črka O s krativcem",Oacute:"Velika latinska črka O z ostrivcem",Ocirc:"Velika latinska črka O s strešico",Otilde:"Velika latinska črka O s tildo",Ouml:"Velika latinska črka O z diaeresis-om",times:"Znak za množenje",Oslash:"Velika prečrtana latinska črka O",Ugrave:"Velika latinska črka U s krativcem",Uacute:"Velika latinska črka U z ostrivcem",Ucirc:"Velika latinska črka U s strešico", -Uuml:"Velika latinska črka U z diaeresis-om",Yacute:"Velika latinska črka Y z ostrivcem",THORN:"Velika latinska črka Thorn",szlig:"Mala ostra latinska črka s",agrave:"Mala latinska črka a s krativcem",aacute:"Mala latinska črka a z ostrivcem",acirc:"Mala latinska črka a s strešico",atilde:"Mala latinska črka a s tildo",auml:"Mala latinska črka a z diaeresis-om",aring:"Mala latinska črka a z obročem",aelig:"Mala latinska črka æ",ccedil:"Mala latinska črka c s cedillo",egrave:"Mala latinska črka e s krativcem", -eacute:"Mala latinska črka e z ostrivcem",ecirc:"Mala latinska črka e s strešico",euml:"Mala latinska črka e z diaeresis-om",igrave:"Mala latinska črka i s krativcem",iacute:"Mala latinska črka i z ostrivcem",icirc:"Mala latinska črka i s strešico",iuml:"Mala latinska črka i z diaeresis-om",eth:"Mala latinska črka eth",ntilde:"Mala latinska črka n s tildo",ograve:"Mala latinska črka o s krativcem",oacute:"Mala latinska črka o z ostrivcem",ocirc:"Mala latinska črka o s strešico",otilde:"Mala latinska črka o s tildo", -ouml:"Mala latinska črka o z diaeresis-om",divide:"Znak za deljenje",oslash:"Mala prečrtana latinska črka o",ugrave:"Mala latinska črka u s krativcem",uacute:"Mala latinska črka u z ostrivcem",ucirc:"Mala latinska črka u s strešico",uuml:"Mala latinska črka u z diaeresis-om",yacute:"Mala latinska črka y z ostrivcem",thorn:"Mala latinska črka thorn",yuml:"Mala latinska črka y z diaeresis-om",OElig:"Velika latinska ligatura OE",oelig:"Mala latinska ligatura oe",372:"Velika latinska črka W s strešico", -374:"Velika latinska črka Y s strešico",373:"Mala latinska črka w s strešico",375:"Mala latinska črka y s strešico",sbquo:"Enojni nizki-9 narekovaj",8219:"Enojni visoki-obrnjen-9 narekovaj",bdquo:"Dvojni nizki-9 narekovaj",hellip:"Horizontalni izpust",trade:"Znak blagovne znamke",9658:"Črni desno-usmerjen kazalec",bull:"Krogla",rarr:"Desno-usmerjena puščica",rArr:"Desno-usmerjena dvojna puščica",hArr:"Leva in desna dvojna puščica",diams:"Črna kara",asymp:"Skoraj enako"}); \ No newline at end of file diff --git a/admin/plugins/ckeditor/plugins/specialchar/dialogs/lang/sq.js b/admin/plugins/ckeditor/plugins/specialchar/dialogs/lang/sq.js deleted file mode 100644 index 6e284bc..0000000 --- a/admin/plugins/ckeditor/plugins/specialchar/dialogs/lang/sq.js +++ /dev/null @@ -1,13 +0,0 @@ -/* - Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. - For licensing, see LICENSE.md or http://ckeditor.com/license -*/ -CKEDITOR.plugins.setLang("specialchar","sq",{euro:"Shenja e Euros",lsquo:"Thonjëza majtas me një vi",rsquo:"Thonjëza djathtas me një vi",ldquo:"Thonjëza majtas",rdquo:"Thonjëza djathtas",ndash:"En viza lidhëse",mdash:"Em viza lidhëse",iexcl:"Pikëçuditëse e përmbysur",cent:"Shenja e Centit",pound:"Shejna e Funtit",curren:"Shenja e valutës",yen:"Shenja e Jenit",brvbar:"Viza e këputur",sect:"Shenja e pjesës",uml:"Diaeresis",copy:"Shenja e të drejtave të kopjimit",ordf:"Feminine ordinal indicator",laquo:"Left-pointing double angle quotation mark", -not:"Nuk ka shenjë",reg:"Shenja e të regjistruarit",macr:"Macron",deg:"Shenja e shkallës",sup2:"Super-skripta dy",sup3:"Super-skripta tre",acute:"Theks i mprehtë",micro:"Shjenja e Mikros",para:"Pilcrow sign",middot:"Pika e Mesme",cedil:"Hark nën shkronja",sup1:"Super-skripta një",ordm:"Masculine ordinal indicator",raquo:"Right-pointing double angle quotation mark",frac14:"Thyesa një të katrat",frac12:"Thyesa një të dytat",frac34:"Thyesa tre të katrat",iquest:"Pikëpyetje e përmbysur",Agrave:"Shkronja e madhe latine A me theks të rëndë", -Aacute:"Shkronja e madhe latine A me theks akute",Acirc:"Shkronja e madhe latine A me theks lakor",Atilde:"Shkronja e madhe latine A me tildë",Auml:"Shkronja e madhe latine A me dy pika",Aring:"Shkronja e madhe latine A me unazë mbi",AElig:"Shkronja e madhe latine Æ",Ccedil:"Shkronja e madhe latine C me hark poshtë",Egrave:"Shkronja e madhe latine E me theks të rëndë",Eacute:"Shkronja e madhe latine E me theks akute",Ecirc:"Shkronja e madhe latine E me theks lakor",Euml:"Shkronja e madhe latine E me dy pika", -Igrave:"Shkronja e madhe latine I me theks të rëndë",Iacute:"Shkronja e madhe latine I me theks akute",Icirc:"Shkronja e madhe latine I me theks lakor",Iuml:"Shkronja e madhe latine I me dy pika",ETH:"Shkronja e madhe latine Eth",Ntilde:"Shkronja e madhe latine N me tildë",Ograve:"Shkronja e madhe latine O me theks të rëndë",Oacute:"Shkronja e madhe latine O me theks akute",Ocirc:"Shkronja e madhe latine O me theks lakor",Otilde:"Shkronja e madhe latine O me tildë",Ouml:"Shkronja e madhe latine O me dy pika", -times:"Shenja e shumëzimit",Oslash:"Shkronja e madhe latine O me vizë në mes",Ugrave:"Shkronja e madhe latine U me theks të rëndë",Uacute:"Shkronja e madhe latine U me theks akute",Ucirc:"Shkronja e madhe latine U me theks lakor",Uuml:"Shkronja e madhe latine U me dy pika",Yacute:"Shkronja e madhe latine Y me theks akute",THORN:"Shkronja e madhe latine Thorn",szlig:"Shkronja e vogë latine s e mprehtë",agrave:"Shkronja e vogë latine a me theks të rëndë",aacute:"Shkronja e vogë latine a me theks të mprehtë", -acirc:"Shkronja e vogël latine a me theks lakor",atilde:"Shkronja e vogël latine a me tildë",auml:"Shkronja e vogël latine a me dy pika",aring:"Shkronja e vogë latine a me unazë mbi",aelig:"Shkronja e vogë latine æ",ccedil:"Shkronja e vogël latine c me hark poshtë",egrave:"Shkronja e vogë latine e me theks të rëndë",eacute:"Shkronja e vogë latine e me theks të mprehtë",ecirc:"Shkronja e vogël latine e me theks lakor",euml:"Shkronja e vogël latine e me dy pika",igrave:"Shkronja e vogë latine i me theks të rëndë", -iacute:"Shkronja e vogë latine i me theks të mprehtë",icirc:"Shkronja e vogël latine i me theks lakor",iuml:"Shkronja e vogël latine i me dy pika",eth:"Shkronja e vogë latine eth",ntilde:"Shkronja e vogël latine n me tildë",ograve:"Shkronja e vogë latine o me theks të rëndë",oacute:"Shkronja e vogë latine o me theks të mprehtë",ocirc:"Shkronja e vogël latine o me theks lakor",otilde:"Shkronja e vogël latine o me tildë",ouml:"Shkronja e vogël latine o me dy pika",divide:"Shenja ndarëse",oslash:"Shkronja e vogël latine o me vizë në mes", -ugrave:"Shkronja e vogë latine u me theks të rëndë",uacute:"Shkronja e vogë latine u me theks të mprehtë",ucirc:"Shkronja e vogël latine u me theks lakor",uuml:"Shkronja e vogël latine u me dy pika",yacute:"Shkronja e vogë latine y me theks të mprehtë",thorn:"Shkronja e vogël latine thorn",yuml:"Shkronja e vogël latine y me dy pika",OElig:"Shkronja e madhe e bashkuar latine OE",oelig:"Shkronja e vogël e bashkuar latine oe",372:"Shkronja e madhe latine W me theks lakor",374:"Shkronja e madhe latine Y me theks lakor", -373:"Shkronja e vogël latine w me theks lakor",375:"Shkronja e vogël latine y me theks lakor",sbquo:"Single low-9 quotation mark",8219:"Single high-reversed-9 quotation mark",bdquo:"Double low-9 quotation mark",hellip:"Horizontal ellipsis",trade:"Shenja e Simbolit Tregtarë",9658:"Black right-pointing pointer",bull:"Pulla",rarr:"Shigjeta djathtas",rArr:"Shenja të dyfishta djathtas",hArr:"Shigjeta e dyfishë majtas-djathtas",diams:"Black diamond suit",asymp:"Gati e barabar me"}); \ No newline at end of file diff --git a/admin/plugins/ckeditor/plugins/specialchar/dialogs/lang/sv.js b/admin/plugins/ckeditor/plugins/specialchar/dialogs/lang/sv.js deleted file mode 100644 index 9c2419c..0000000 --- a/admin/plugins/ckeditor/plugins/specialchar/dialogs/lang/sv.js +++ /dev/null @@ -1,11 +0,0 @@ -/* - Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. - For licensing, see LICENSE.md or http://ckeditor.com/license -*/ -CKEDITOR.plugins.setLang("specialchar","sv",{euro:"Eurotecken",lsquo:"Enkelt vänster citattecken",rsquo:"Enkelt höger citattecken",ldquo:"Dubbelt vänster citattecken",rdquo:"Dubbelt höger citattecken",ndash:"Snedstreck",mdash:"Långt tankstreck",iexcl:"Inverterad utropstecken",cent:"Centtecken",pound:"Pundtecken",curren:"Valutatecken",yen:"Yentecken",brvbar:"Brutet lodrätt streck",sect:"Paragraftecken",uml:"Diaeresis",copy:"Upphovsrättstecken",ordf:"Feminit ordningstalsindikator",laquo:"Vänsterställt dubbelt vinkelcitationstecken", -not:"Icke-tecken",reg:"Registrerad",macr:"Macron",deg:"Grader",sup2:"Upphöjt två",sup3:"Upphöjt tre",acute:"Akut accent",micro:"Mikrotecken",para:"Alinea",middot:"Centrerad prick",cedil:"Cedilj",sup1:"Upphöjt en",ordm:"Maskulina ordningsändelsen",raquo:"Högerställt dubbelt vinkelcitationstecken",frac14:"Bråktal - en kvart",frac12:"Bråktal - en halv",frac34:"Bråktal - tre fjärdedelar",iquest:"Inverterat frågetecken",Agrave:"Stort A med grav accent",Aacute:"Stort A med akutaccent",Acirc:"Stort A med circumflex", -Atilde:"Stort A med tilde",Auml:"Stort A med diaresis",Aring:"Stort A med ring ovan",AElig:"Stort Æ",Ccedil:"Stort C med cedilj",Egrave:"Stort E med grav accent",Eacute:"Stort E med aktuaccent",Ecirc:"Stort E med circumflex",Euml:"Stort E med diaeresis",Igrave:"Stort I med grav accent",Iacute:"Stort I med akutaccent",Icirc:"Stort I med circumflex",Iuml:"Stort I med diaeresis",ETH:"Stort Eth",Ntilde:"Stort N med tilde",Ograve:"Stort O med grav accent",Oacute:"Stort O med aktuaccent",Ocirc:"Stort O med circumflex", -Otilde:"Stort O med tilde",Ouml:"Stort O med diaeresis",times:"Multiplicera",Oslash:"Stor Ø",Ugrave:"Stort U med grav accent",Uacute:"Stort U med akutaccent",Ucirc:"Stort U med circumflex",Uuml:"Stort U med diaeresis",Yacute:"Stort Y med akutaccent",THORN:"Stort Thorn",szlig:"Litet dubbel-s/Eszett",agrave:"Litet a med grav accent",aacute:"Litet a med akutaccent",acirc:"Litet a med circumflex",atilde:"Litet a med tilde",auml:"Litet a med diaeresis",aring:"Litet a med ring ovan",aelig:"Bokstaven æ", -ccedil:"Litet c med cedilj",egrave:"Litet e med grav accent",eacute:"Litet e med akutaccent",ecirc:"Litet e med circumflex",euml:"Litet e med diaeresis",igrave:"Litet i med grav accent",iacute:"Litet i med akutaccent",icirc:"LItet i med circumflex",iuml:"Litet i med didaeresis",eth:"Litet eth",ntilde:"Litet n med tilde",ograve:"LItet o med grav accent",oacute:"LItet o med akutaccent",ocirc:"Litet o med circumflex",otilde:"LItet o med tilde",ouml:"Litet o med diaeresis",divide:"Division",oslash:"ø", -ugrave:"Litet u med grav accent",uacute:"Litet u med akutaccent",ucirc:"LItet u med circumflex",uuml:"Litet u med diaeresis",yacute:"Litet y med akutaccent",thorn:"Litet thorn",yuml:"Litet y med diaeresis",OElig:"Stor ligatur av OE",oelig:"Liten ligatur av oe",372:"Stort W med circumflex",374:"Stort Y med circumflex",373:"Litet w med circumflex",375:"Litet y med circumflex",sbquo:"Enkelt lågt 9-citationstecken",8219:"Enkelt högt bakvänt 9-citationstecken",bdquo:"Dubbelt lågt 9-citationstecken",hellip:"Horisontellt uteslutningstecken", -trade:"Varumärke",9658:"Svart högervänd pekare",bull:"Listpunkt",rarr:"Högerpil",rArr:"Dubbel högerpil",hArr:"Dubbel vänsterpil",diams:"Svart ruter",asymp:"Ungefär lika med"}); \ No newline at end of file diff --git a/admin/plugins/ckeditor/plugins/specialchar/dialogs/lang/th.js b/admin/plugins/ckeditor/plugins/specialchar/dialogs/lang/th.js deleted file mode 100644 index fa51766..0000000 --- a/admin/plugins/ckeditor/plugins/specialchar/dialogs/lang/th.js +++ /dev/null @@ -1,13 +0,0 @@ -/* - Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. - For licensing, see LICENSE.md or http://ckeditor.com/license -*/ -CKEDITOR.plugins.setLang("specialchar","th",{euro:"Euro sign",lsquo:"Left single quotation mark",rsquo:"Right single quotation mark",ldquo:"Left double quotation mark",rdquo:"Right double quotation mark",ndash:"En dash",mdash:"Em dash",iexcl:"Inverted exclamation mark",cent:"Cent sign",pound:"Pound sign",curren:"สัญลักษณ์สกุลเงิน",yen:"สัญลักษณ์เงินเยน",brvbar:"Broken bar",sect:"Section sign",uml:"Diaeresis",copy:"Copyright sign",ordf:"Feminine ordinal indicator",laquo:"Left-pointing double angle quotation mark", -not:"Not sign",reg:"Registered sign",macr:"Macron",deg:"Degree sign",sup2:"Superscript two",sup3:"Superscript three",acute:"Acute accent",micro:"Micro sign",para:"Pilcrow sign",middot:"Middle dot",cedil:"Cedilla",sup1:"Superscript one",ordm:"Masculine ordinal indicator",raquo:"Right-pointing double angle quotation mark",frac14:"Vulgar fraction one quarter",frac12:"Vulgar fraction one half",frac34:"Vulgar fraction three quarters",iquest:"Inverted question mark",Agrave:"Latin capital letter A with grave accent", -Aacute:"Latin capital letter A with acute accent",Acirc:"Latin capital letter A with circumflex",Atilde:"Latin capital letter A with tilde",Auml:"Latin capital letter A with diaeresis",Aring:"Latin capital letter A with ring above",AElig:"Latin capital letter Æ",Ccedil:"Latin capital letter C with cedilla",Egrave:"Latin capital letter E with grave accent",Eacute:"Latin capital letter E with acute accent",Ecirc:"Latin capital letter E with circumflex",Euml:"Latin capital letter E with diaeresis",Igrave:"Latin capital letter I with grave accent", -Iacute:"Latin capital letter I with acute accent",Icirc:"Latin capital letter I with circumflex",Iuml:"Latin capital letter I with diaeresis",ETH:"Latin capital letter Eth",Ntilde:"Latin capital letter N with tilde",Ograve:"Latin capital letter O with grave accent",Oacute:"Latin capital letter O with acute accent",Ocirc:"Latin capital letter O with circumflex",Otilde:"Latin capital letter O with tilde",Ouml:"Latin capital letter O with diaeresis",times:"Multiplication sign",Oslash:"Latin capital letter O with stroke", -Ugrave:"Latin capital letter U with grave accent",Uacute:"Latin capital letter U with acute accent",Ucirc:"Latin capital letter U with circumflex",Uuml:"Latin capital letter U with diaeresis",Yacute:"Latin capital letter Y with acute accent",THORN:"Latin capital letter Thorn",szlig:"Latin small letter sharp s",agrave:"Latin small letter a with grave accent",aacute:"Latin small letter a with acute accent",acirc:"Latin small letter a with circumflex",atilde:"Latin small letter a with tilde",auml:"Latin small letter a with diaeresis", -aring:"Latin small letter a with ring above",aelig:"Latin small letter æ",ccedil:"Latin small letter c with cedilla",egrave:"Latin small letter e with grave accent",eacute:"Latin small letter e with acute accent",ecirc:"Latin small letter e with circumflex",euml:"Latin small letter e with diaeresis",igrave:"Latin small letter i with grave accent",iacute:"Latin small letter i with acute accent",icirc:"Latin small letter i with circumflex",iuml:"Latin small letter i with diaeresis",eth:"Latin small letter eth", -ntilde:"Latin small letter n with tilde",ograve:"Latin small letter o with grave accent",oacute:"Latin small letter o with acute accent",ocirc:"Latin small letter o with circumflex",otilde:"Latin small letter o with tilde",ouml:"Latin small letter o with diaeresis",divide:"Division sign",oslash:"Latin small letter o with stroke",ugrave:"Latin small letter u with grave accent",uacute:"Latin small letter u with acute accent",ucirc:"Latin small letter u with circumflex",uuml:"Latin small letter u with diaeresis", -yacute:"Latin small letter y with acute accent",thorn:"Latin small letter thorn",yuml:"Latin small letter y with diaeresis",OElig:"Latin capital ligature OE",oelig:"Latin small ligature oe",372:"Latin capital letter W with circumflex",374:"Latin capital letter Y with circumflex",373:"Latin small letter w with circumflex",375:"Latin small letter y with circumflex",sbquo:"Single low-9 quotation mark",8219:"Single high-reversed-9 quotation mark",bdquo:"Double low-9 quotation mark",hellip:"Horizontal ellipsis", -trade:"Trade mark sign",9658:"Black right-pointing pointer",bull:"สัญลักษณ์หัวข้อย่อย",rarr:"Rightwards arrow",rArr:"Rightwards double arrow",hArr:"Left right double arrow",diams:"Black diamond suit",asymp:"Almost equal to"}); \ No newline at end of file diff --git a/admin/plugins/ckeditor/plugins/specialchar/dialogs/lang/tr.js b/admin/plugins/ckeditor/plugins/specialchar/dialogs/lang/tr.js deleted file mode 100644 index 1bcfbcd..0000000 --- a/admin/plugins/ckeditor/plugins/specialchar/dialogs/lang/tr.js +++ /dev/null @@ -1,12 +0,0 @@ -/* - Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. - For licensing, see LICENSE.md or http://ckeditor.com/license -*/ -CKEDITOR.plugins.setLang("specialchar","tr",{euro:"Euro işareti",lsquo:"Sol tek tırnak işareti",rsquo:"Sağ tek tırnak işareti",ldquo:"Sol çift tırnak işareti",rdquo:"Sağ çift tırnak işareti",ndash:"En tire",mdash:"Em tire",iexcl:"Ters ünlem işareti",cent:"Cent işareti",pound:"Pound işareti",curren:"Para birimi işareti",yen:"Yen işareti",brvbar:"Kırık bar",sect:"Bölüm işareti",uml:"İki sesli harfin ayrılması",copy:"Telif hakkı işareti",ordf:"Dişil sıralı gösterge",laquo:"Sol-işaret çift açı tırnak işareti", -not:"Not işareti",reg:"Kayıtlı işareti",macr:"Makron",deg:"Derece işareti",sup2:"İkili üstsimge",sup3:"Üçlü üstsimge",acute:"Aksan işareti",micro:"Mikro işareti",para:"Pilcrow işareti",middot:"Orta nokta",cedil:"Kedilla",sup1:"Üstsimge",ordm:"Eril sıralı gösterge",raquo:"Sağ işaret çift açı tırnak işareti",frac14:"Bayağı kesrin dörtte biri",frac12:"Bayağı kesrin bir yarım",frac34:"Bayağı kesrin dörtte üç",iquest:"Ters soru işareti",Agrave:"Aksanlı latin harfi",Aacute:"Aşırı aksanıyla Latin harfi", -Acirc:"Çarpık Latin harfi",Atilde:"Tilde latin harfi",Auml:"Sesli harf ayrılımlıı latin harfi",Aring:"Halkalı latin büyük A harfi",AElig:"Latin büyük Æ harfi",Ccedil:"Latin büyük C harfi ile kedilla",Egrave:"Aksanlı latin büyük E harfi",Eacute:"Aşırı vurgulu latin büyük E harfi",Ecirc:"Çarpık latin büyük E harfi",Euml:"Sesli harf ayrılımlıı latin büyük E harfi",Igrave:"Aksanlı latin büyük I harfi",Iacute:"Aşırı aksanlı latin büyük I harfi",Icirc:"Çarpık latin büyük I harfi",Iuml:"Sesli harf ayrılımlıı latin büyük I harfi", -ETH:"Latin büyük Eth harfi",Ntilde:"Tildeli latin büyük N harfi",Ograve:"Aksanlı latin büyük O harfi",Oacute:"Aşırı aksanlı latin büyük O harfi",Ocirc:"Çarpık latin büyük O harfi",Otilde:"Tildeli latin büyük O harfi",Ouml:"Sesli harf ayrılımlı latin büyük O harfi",times:"Çarpma işareti",Oslash:"Vurgulu latin büyük O harfi",Ugrave:"Aksanlı latin büyük U harfi",Uacute:"Aşırı aksanlı latin büyük U harfi",Ucirc:"Çarpık latin büyük U harfi",Uuml:"Sesli harf ayrılımlı latin büyük U harfi",Yacute:"Aşırı aksanlı latin büyük Y harfi", -THORN:"Latin büyük Thorn harfi",szlig:"Latin küçük keskin s harfi",agrave:"Aksanlı latin küçük a harfi",aacute:"Aşırı aksanlı latin küçük a harfi",acirc:"Çarpık latin küçük a harfi",atilde:"Tildeli latin küçük a harfi",auml:"Sesli harf ayrılımlı latin küçük a harfi",aring:"Halkalı latin küçük a harfi",aelig:"Latin büyük æ harfi",ccedil:"Kedillalı latin küçük c harfi",egrave:"Aksanlı latin küçük e harfi",eacute:"Aşırı aksanlı latin küçük e harfi",ecirc:"Çarpık latin küçük e harfi",euml:"Sesli harf ayrılımlı latin küçük e harfi", -igrave:"Aksanlı latin küçük i harfi",iacute:"Aşırı aksanlı latin küçük i harfi",icirc:"Çarpık latin küçük i harfi",iuml:"Sesli harf ayrılımlı latin küçük i harfi",eth:"Latin küçük eth harfi",ntilde:"Tildeli latin küçük n harfi",ograve:"Aksanlı latin küçük o harfi",oacute:"Aşırı aksanlı latin küçük o harfi",ocirc:"Çarpık latin küçük o harfi",otilde:"Tildeli latin küçük o harfi",ouml:"Sesli harf ayrılımlı latin küçük o harfi",divide:"Bölme işareti",oslash:"Vurgulu latin küçük o harfi",ugrave:"Aksanlı latin küçük u harfi", -uacute:"Aşırı aksanlı latin küçük u harfi",ucirc:"Çarpık latin küçük u harfi",uuml:"Sesli harf ayrılımlı latin küçük u harfi",yacute:"Aşırı aksanlı latin küçük y harfi",thorn:"Latin küçük thorn harfi",yuml:"Sesli harf ayrılımlı latin küçük y harfi",OElig:"Latin büyük bağlı OE harfi",oelig:"Latin küçük bağlı oe harfi",372:"Çarpık latin büyük W harfi",374:"Çarpık latin büyük Y harfi",373:"Çarpık latin küçük w harfi",375:"Çarpık latin küçük y harfi",sbquo:"Tek düşük-9 tırnak işareti",8219:"Tek yüksek-ters-9 tırnak işareti", -bdquo:"Çift düşük-9 tırnak işareti",hellip:"Yatay elips",trade:"Marka tescili işareti",9658:"Siyah sağ işaret işaretçisi",bull:"Koyu nokta",rarr:"Sağa doğru ok",rArr:"Sağa doğru çift ok",hArr:"Sol, sağ çift ok",diams:"Siyah elmas takımı",asymp:"Hemen hemen eşit"}); \ No newline at end of file diff --git a/admin/plugins/ckeditor/plugins/specialchar/dialogs/lang/tt.js b/admin/plugins/ckeditor/plugins/specialchar/dialogs/lang/tt.js deleted file mode 100644 index bdf01c3..0000000 --- a/admin/plugins/ckeditor/plugins/specialchar/dialogs/lang/tt.js +++ /dev/null @@ -1,13 +0,0 @@ -/* - Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. - For licensing, see LICENSE.md or http://ckeditor.com/license -*/ -CKEDITOR.plugins.setLang("specialchar","tt",{euro:"Евро тамгасы",lsquo:"Сул бер иңле куштырнаклар",rsquo:"Уң бер иңле куштырнаклар",ldquo:"Сул ике иңле куштырнаклар",rdquo:"Уң ике иңле куштырнаклар",ndash:"Кыска сызык",mdash:"Озын сызык",iexcl:"Әйләндерелгән өндәү билгесе",cent:"Цент тамгасы",pound:"Фунт тамгасы",curren:"Акча берәмлеге тамгасы",yen:"Иена тамгасы",brvbar:"Broken bar",sect:"Параграф билгесе",uml:"Диерезис",copy:"Хокук иясе булу билгесе",ordf:"Feminine ordinal indicator",laquo:"Ачылучы чыршысыман җәя", -not:"Юклык ишарəсе",reg:"Теркәләнгән булу билгесе",macr:"Макрон",deg:"Градус билгесе",sup2:"Икенче өске индекс",sup3:"Өченче өске индекс",acute:"Басым билгесе",micro:"Микро билгесе",para:"Параграф билгесе",middot:"Уртадагы нокта",cedil:"Седиль",sup1:"Беренче өске индекс",ordm:"Masculine ordinal indicator",raquo:"Ябылучы чыршысыман җәя",frac14:"Гади дүрттән бер билгесе",frac12:"Гади икедән бер билгесе",frac34:"Гади дүрттән өч билгесе",iquest:"Әйләндерелгән өндәү билгесе",Agrave:"Гравис белән латин A баш хәрефе", -Aacute:"Басым билгесе белән латин A баш хәрефе",Acirc:"Циркумфлекс белән латин A баш хәрефе",Atilde:"Тильда белән латин A баш хәрефе",Auml:"Диерезис белән латин A баш хәрефе",Aring:"Өстендә боҗра булган латин A баш хәрефе",AElig:"Латин Æ баш хәрефе",Ccedil:"Седиль белән латин C баш хәрефе",Egrave:"Гравис белән латин E баш хәрефе",Eacute:"Басым билгесе белән латин E баш хәрефе",Ecirc:"Циркумфлекс белән латин E баш хәрефе",Euml:"Диерезис белән латин E баш хәрефе",Igrave:"Гравис белән латин I баш хәрефе", -Iacute:"Басым билгесе белән латин I баш хәрефе",Icirc:"Циркумфлекс белән латин I баш хәрефе",Iuml:"Диерезис белән латин I баш хәрефе",ETH:"Латин Eth баш хәрефе",Ntilde:"Тильда белән латин N баш хәрефе",Ograve:"Гравис белән латин O баш хәрефе",Oacute:"Басым билгесе белән латин O баш хәрефе",Ocirc:"Циркумфлекс белән латин O баш хәрефе",Otilde:"Тильда белән латин O баш хәрефе",Ouml:"Диерезис белән латин O баш хәрефе",times:"Тапкырлау билгесе",Oslash:"Сызык белән латин O баш хәрефе",Ugrave:"Гравис белән латин U баш хәрефе", -Uacute:"Басым билгесе белән латин U баш хәрефе",Ucirc:"Циркумфлекс белән латин U баш хәрефе",Uuml:"Диерезис белән латин U баш хәрефе",Yacute:"Басым билгесе белән латин Y баш хәрефе",THORN:"Латин Thorn баш хәрефе",szlig:"Латин beta юл хәрефе",agrave:"Гравис белән латин a юл хәрефе",aacute:"Басым билгесе белән латин a юл хәрефе",acirc:"Циркумфлекс белән латин a юл хәрефе",atilde:"Тильда белән латин a юл хәрефе",auml:"Диерезис белән латин a юл хәрефе",aring:"Өстендә боҗра булган латин a юл хәрефе",aelig:"Латин æ юл хәрефе", -ccedil:"Седиль белән латин c юл хәрефе",egrave:"Гравис белән латин e юл хәрефе",eacute:"Басым билгесе белән латин e юл хәрефе",ecirc:"Циркумфлекс белән латин e юл хәрефе",euml:"Диерезис белән латин e юл хәрефе",igrave:"Гравис белән латин i юл хәрефе",iacute:"Басым билгесе белән латин i юл хәрефе",icirc:"Циркумфлекс белән латин i юл хәрефе",iuml:"Диерезис белән латин i юл хәрефе",eth:"Латин eth юл хәрефе",ntilde:"Тильда белән латин n юл хәрефе",ograve:"Гравис белән латин o юл хәрефе",oacute:"Басым билгесе белән латин o юл хәрефе", -ocirc:"Циркумфлекс белән латин o юл хәрефе",otilde:"Тильда белән латин o юл хәрефе",ouml:"Диерезис белән латин o юл хәрефе",divide:"Бүлү билгесе",oslash:"Сызык белән латин o юл хәрефе",ugrave:"Гравис белән латин u юл хәрефе",uacute:"Басым билгесе белән латин u юл хәрефе",ucirc:"Циркумфлекс белән латин u юл хәрефе",uuml:"Диерезис белән латин u юл хәрефе",yacute:"Басым билгесе белән латин y юл хәрефе",thorn:"Латин thorn юл хәрефе",yuml:"Диерезис белән латин y юл хәрефе",OElig:"Латин лигатура OE баш хәрефе", -oelig:"Латин лигатура oe юл хәрефе",372:"Циркумфлекс белән латин W баш хәрефе",374:"Циркумфлекс белән латин Y баш хәрефе",373:"Циркумфлекс белән латин w юл хәрефе",375:"Циркумфлекс белән латин y юл хәрефе",sbquo:"Single low-9 quotation mark",8219:"Single high-reversed-9 quotation mark",bdquo:"Double low-9 quotation mark",hellip:"Ятма эллипс",trade:"Сәүдә маркасы билгесе",9658:"Black right-pointing pointer",bull:"Маркер",rarr:"Уң якка ук",rArr:"Уң якка икеләтә ук",hArr:"Ике якка икеләтә ук",diams:"Black diamond suit", -asymp:"якынча"}); \ No newline at end of file diff --git a/admin/plugins/ckeditor/plugins/specialchar/dialogs/lang/ug.js b/admin/plugins/ckeditor/plugins/specialchar/dialogs/lang/ug.js deleted file mode 100644 index a1fbf4a..0000000 --- a/admin/plugins/ckeditor/plugins/specialchar/dialogs/lang/ug.js +++ /dev/null @@ -1,13 +0,0 @@ -/* - Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. - For licensing, see LICENSE.md or http://ckeditor.com/license -*/ -CKEDITOR.plugins.setLang("specialchar","ug",{euro:"ياۋرو بەلگىسى",lsquo:"يالاڭ پەش سول",rsquo:"يالاڭ پەش ئوڭ",ldquo:"قوش پەش سول",rdquo:"قوش پەش ئوڭ",ndash:"سىزىقچە",mdash:"سىزىق",iexcl:"ئۈندەش",cent:"تىيىن بەلگىسى",pound:"فوند ستېرلىڭ",curren:"پۇل بەلگىسى",yen:"ياپونىيە يىنى",brvbar:"ئۈزۈك بالداق",sect:"پاراگراف بەلگىسى",uml:"تاۋۇش ئايرىش بەلگىسى",copy:"نەشر ھوقۇقى بەلگىسى",ordf:"Feminine ordinal indicator",laquo:"قوش تىرناق سول",not:"غەيرى بەلگە",reg:"خەتلەتكەن تاۋار ماركىسى",macr:"سوزۇش بەلگىسى", -deg:"گىرادۇس بەلگىسى",sup2:"يۇقىرى ئىندېكىس 2",sup3:"يۇقىرى ئىندېكىس 3",acute:"ئۇرغۇ بەلگىسى",micro:"Micro sign",para:"ئابزاس بەلگىسى",middot:"ئوتتۇرا چېكىت",cedil:"ئاستىغا قوشۇلىدىغان بەلگە",sup1:"يۇقىرى ئىندېكىس 1",ordm:"Masculine ordinal indicator",raquo:"قوش تىرناق ئوڭ",frac14:"ئاددىي كەسىر تۆتتىن بىر",frac12:"ئاددىي كەسىر ئىككىدىن بىر",frac34:"ئاددىي كەسىر ئۈچتىن تۆرت",iquest:"Inverted question mark",Agrave:"Latin capital letter A with grave accent",Aacute:"Latin capital letter A with acute accent", -Acirc:"Latin capital letter A with circumflex",Atilde:"Latin capital letter A with tilde",Auml:"Latin capital letter A with diaeresis",Aring:"Latin capital letter A with ring above",AElig:"Latin capital letter Æ",Ccedil:"Latin capital letter C with cedilla",Egrave:"Latin capital letter E with grave accent",Eacute:"Latin capital letter E with acute accent",Ecirc:"Latin capital letter E with circumflex",Euml:"Latin capital letter E with diaeresis",Igrave:"Latin capital letter I with grave accent",Iacute:"Latin capital letter I with acute accent", -Icirc:"Latin capital letter I with circumflex",Iuml:"Latin capital letter I with diaeresis",ETH:"Latin capital letter Eth",Ntilde:"Latin capital letter N with tilde",Ograve:"قوش پەش ئوڭ",Oacute:"Latin capital letter O with acute accent",Ocirc:"Latin capital letter O with circumflex",Otilde:"Latin capital letter O with tilde",Ouml:"Latin capital letter O with diaeresis",times:"Multiplication sign",Oslash:"Latin capital letter O with stroke",Ugrave:"Latin capital letter U with grave accent",Uacute:"Latin capital letter U with acute accent", -Ucirc:"Latin capital letter U with circumflex",Uuml:"Latin capital letter U with diaeresis",Yacute:"Latin capital letter Y with acute accent",THORN:"Latin capital letter Thorn",szlig:"Latin small letter sharp s",agrave:"Latin small letter a with grave accent",aacute:"Latin small letter a with acute accent",acirc:"Latin small letter a with circumflex",atilde:"Latin small letter a with tilde",auml:"Latin small letter a with diaeresis",aring:"Latin small letter a with ring above",aelig:"Latin small letter æ", -ccedil:"Latin small letter c with cedilla",egrave:"Latin small letter e with grave accent",eacute:"Latin small letter e with acute accent",ecirc:"Latin small letter e with circumflex",euml:"Latin small letter e with diaeresis",igrave:"Latin small letter i with grave accent",iacute:"Latin small letter i with acute accent",icirc:"Latin small letter i with circumflex",iuml:"Latin small letter i with diaeresis",eth:"Latin small letter eth",ntilde:"تىك موللاق سوئال بەلگىسى",ograve:"Latin small letter o with grave accent", -oacute:"Latin small letter o with acute accent",ocirc:"Latin small letter o with circumflex",otilde:"Latin small letter o with tilde",ouml:"Latin small letter o with diaeresis",divide:"بۆلۈش بەلگىسى",oslash:"Latin small letter o with stroke",ugrave:"Latin small letter u with grave accent",uacute:"Latin small letter u with acute accent",ucirc:"Latin small letter u with circumflex",uuml:"Latin small letter u with diaeresis",yacute:"Latin small letter y with acute accent",thorn:"Latin small letter thorn", -yuml:"Latin small letter y with diaeresis",OElig:"Latin capital ligature OE",oelig:"Latin small ligature oe",372:"Latin capital letter W with circumflex",374:"Latin capital letter Y with circumflex",373:"Latin small letter w with circumflex",375:"Latin small letter y with circumflex",sbquo:"Single low-9 quotation mark",8219:"Single high-reversed-9 quotation mark",bdquo:"Double low-9 quotation mark",hellip:"Horizontal ellipsis",trade:"خەتلەتكەن تاۋار ماركىسى بەلگىسى",9658:"Black right-pointing pointer", -bull:"Bullet",rarr:"ئوڭ يا ئوق",rArr:"ئوڭ قوش سىزىق يا ئوق",hArr:"ئوڭ سول قوش سىزىق يا ئوق",diams:"ئۇيۇل غىچ",asymp:"تەخمىنەن تەڭ"}); \ No newline at end of file diff --git a/admin/plugins/ckeditor/plugins/specialchar/dialogs/lang/uk.js b/admin/plugins/ckeditor/plugins/specialchar/dialogs/lang/uk.js deleted file mode 100644 index a976a0c..0000000 --- a/admin/plugins/ckeditor/plugins/specialchar/dialogs/lang/uk.js +++ /dev/null @@ -1,12 +0,0 @@ -/* - Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. - For licensing, see LICENSE.md or http://ckeditor.com/license -*/ -CKEDITOR.plugins.setLang("specialchar","uk",{euro:"Знак євро",lsquo:"Ліві одинарні лапки",rsquo:"Праві одинарні лапки",ldquo:"Ліві подвійні лапки",rdquo:"Праві подвійні лапки",ndash:"Середнє тире",mdash:"Довге тире",iexcl:"Перевернутий знак оклику",cent:"Знак цента",pound:"Знак фунта",curren:"Знак валюти",yen:"Знак єни",brvbar:"Переривчаста вертикальна лінія",sect:"Знак параграфу",uml:"Умлаут",copy:"Знак авторських прав",ordf:"Жіночий порядковий вказівник",laquo:"ліві вказівні подвійні кутові дужки", -not:"Заперечення",reg:"Знак охорони суміжних прав",macr:"Макрон",deg:"Знак градуса",sup2:"два у верхньому індексі",sup3:"три у верхньому індексі",acute:"Знак акута",micro:"Знак мікро",para:"Знак абзацу",middot:"Інтерпункт",cedil:"Седиль",sup1:"Один у верхньому індексі",ordm:"Чоловічий порядковий вказівник",raquo:"праві вказівні подвійні кутові дужки",frac14:"Одна четвертина",frac12:"Одна друга",frac34:"три четвертих",iquest:"Перевернутий знак питання",Agrave:"Велика латинська A з гравісом",Aacute:"Велика латинська А з акутом", -Acirc:"Велика латинська А з циркумфлексом",Atilde:"Велика латинська А з тильдою",Auml:"Велике латинське А з умлаутом",Aring:"Велика латинська A з кільцем згори",AElig:"Велика латинська Æ",Ccedil:"Велика латинська C з седиллю",Egrave:"Велика латинська E з гравісом",Eacute:"Велика латинська E з акутом",Ecirc:"Велика латинська E з циркумфлексом",Euml:"Велика латинська А з умлаутом",Igrave:"Велика латинська I з гравісом",Iacute:"Велика латинська I з акутом",Icirc:"Велика латинська I з циркумфлексом", -Iuml:"Велика латинська І з умлаутом",ETH:"Велика латинська Eth",Ntilde:"Велика латинська N з тильдою",Ograve:"Велика латинська O з гравісом",Oacute:"Велика латинська O з акутом",Ocirc:"Велика латинська O з циркумфлексом",Otilde:"Велика латинська O з тильдою",Ouml:"Велика латинська О з умлаутом",times:"Знак множення",Oslash:"Велика латинська перекреслена O ",Ugrave:"Велика латинська U з гравісом",Uacute:"Велика латинська U з акутом",Ucirc:"Велика латинська U з циркумфлексом",Uuml:"Велика латинська U з умлаутом", -Yacute:"Велика латинська Y з акутом",THORN:"Велика латинська Торн",szlig:"Мала латинська есцет",agrave:"Мала латинська a з гравісом",aacute:"Мала латинська a з акутом",acirc:"Мала латинська a з циркумфлексом",atilde:"Мала латинська a з тильдою",auml:"Мала латинська a з умлаутом",aring:"Мала латинська a з кільцем згори",aelig:"Мала латинська æ",ccedil:"Мала латинська C з седиллю",egrave:"Мала латинська e з гравісом",eacute:"Мала латинська e з акутом",ecirc:"Мала латинська e з циркумфлексом",euml:"Мала латинська e з умлаутом", -igrave:"Мала латинська i з гравісом",iacute:"Мала латинська i з акутом",icirc:"Мала латинська i з циркумфлексом",iuml:"Мала латинська i з умлаутом",eth:"Мала латинська Eth",ntilde:"Мала латинська n з тильдою",ograve:"Мала латинська o з гравісом",oacute:"Мала латинська o з акутом",ocirc:"Мала латинська o з циркумфлексом",otilde:"Мала латинська o з тильдою",ouml:"Мала латинська o з умлаутом",divide:"Знак ділення",oslash:"Мала латинська перекреслена o",ugrave:"Мала латинська u з гравісом",uacute:"Мала латинська u з акутом", -ucirc:"Мала латинська u з циркумфлексом",uuml:"Мала латинська u з умлаутом",yacute:"Мала латинська y з акутом",thorn:"Мала латинська торн",yuml:"Мала латинська y з умлаутом",OElig:"Велика латинська лігатура OE",oelig:"Мала латинська лігатура oe",372:"Велика латинська W з циркумфлексом",374:"Велика латинська Y з циркумфлексом",373:"Мала латинська w з циркумфлексом",375:"Мала латинська y з циркумфлексом",sbquo:"Одиничні нижні лабки",8219:"Верхні одиничні обернені лабки",bdquo:"Подвійні нижні лабки", -hellip:"Три крапки",trade:"Знак торгової марки",9658:"Чорний правий вказівник",bull:"Маркер списку",rarr:"Стрілка вправо",rArr:"Подвійна стрілка вправо",hArr:"Подвійна стрілка вліво-вправо",diams:"Чорний діамонт",asymp:"Наближено дорівнює"}); \ No newline at end of file diff --git a/admin/plugins/ckeditor/plugins/specialchar/dialogs/lang/vi.js b/admin/plugins/ckeditor/plugins/specialchar/dialogs/lang/vi.js deleted file mode 100644 index 9ebd877..0000000 --- a/admin/plugins/ckeditor/plugins/specialchar/dialogs/lang/vi.js +++ /dev/null @@ -1,14 +0,0 @@ -/* - Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. - For licensing, see LICENSE.md or http://ckeditor.com/license -*/ -CKEDITOR.plugins.setLang("specialchar","vi",{euro:"Ký hiệu Euro",lsquo:"Dấu ngoặc đơn trái",rsquo:"Dấu ngoặc đơn phải",ldquo:"Dấu ngoặc đôi trái",rdquo:"Dấu ngoặc đôi phải",ndash:"Gạch ngang tiếng anh",mdash:"Gạch ngang Em",iexcl:"Chuyển đổi dấu chấm than",cent:"Ký tự tiền Mỹ",pound:"Ký tự tiền Anh",curren:"Ký tự tiền tệ",yen:"Ký tự tiền Yên Nhật",brvbar:"Thanh hỏng",sect:"Ký tự khu vực",uml:"Dấu tách đôi",copy:"Ký tự bản quyền",ordf:"Phần chỉ thị giống cái",laquo:"Chọn dấu ngoặc đôi trái",not:"Không có ký tự", -reg:"Ký tự đăng ký",macr:"Dấu nguyên âm dài",deg:"Ký tự độ",sup2:"Chữ trồi lên trên dạng 2",sup3:"Chữ trồi lên trên dạng 3",acute:"Dấu trọng âm",micro:"Ký tự micro",para:"Ký tự đoạn văn",middot:"Dấu chấm tròn",cedil:"Dấu móc lưới",sup1:"Ký tự trồi lên cấp 1",ordm:"Ký tự biểu hiện giống đực",raquo:"Chọn dấu ngoặc đôi phải",frac14:"Tỉ lệ một phần tư",frac12:"Tỉ lệ một nửa",frac34:"Tỉ lệ ba phần tư",iquest:"Chuyển đổi dấu chấm hỏi",Agrave:"Ký tự la-tinh viết hoa A với dấu huyền",Aacute:"Ký tự la-tinh viết hoa A với dấu sắc", -Acirc:"Ký tự la-tinh viết hoa A với dấu mũ",Atilde:"Ký tự la-tinh viết hoa A với dấu ngã",Auml:"Ký tự la-tinh viết hoa A với dấu hai chấm trên đầu",Aring:"Ký tự la-tinh viết hoa A với biểu tượng vòng tròn trên đầu",AElig:"Ký tự la-tinh viết hoa của Æ",Ccedil:"Ký tự la-tinh viết hoa C với dấu móc bên dưới",Egrave:"Ký tự la-tinh viết hoa E với dấu huyền",Eacute:"Ký tự la-tinh viết hoa E với dấu sắc",Ecirc:"Ký tự la-tinh viết hoa E với dấu mũ",Euml:"Ký tự la-tinh viết hoa E với dấu hai chấm trên đầu", -Igrave:"Ký tự la-tinh viết hoa I với dấu huyền",Iacute:"Ký tự la-tinh viết hoa I với dấu sắc",Icirc:"Ký tự la-tinh viết hoa I với dấu mũ",Iuml:"Ký tự la-tinh viết hoa I với dấu hai chấm trên đầu",ETH:"Viết hoa của ký tự Eth",Ntilde:"Ký tự la-tinh viết hoa N với dấu ngã",Ograve:"Ký tự la-tinh viết hoa O với dấu huyền",Oacute:"Ký tự la-tinh viết hoa O với dấu sắc",Ocirc:"Ký tự la-tinh viết hoa O với dấu mũ",Otilde:"Ký tự la-tinh viết hoa O với dấu ngã",Ouml:"Ký tự la-tinh viết hoa O với dấu hai chấm trên đầu", -times:"Ký tự phép toán nhân",Oslash:"Ký tự la-tinh viết hoa A với dấu ngã xuống",Ugrave:"Ký tự la-tinh viết hoa U với dấu huyền",Uacute:"Ký tự la-tinh viết hoa U với dấu sắc",Ucirc:"Ký tự la-tinh viết hoa U với dấu mũ",Uuml:"Ký tự la-tinh viết hoa U với dấu hai chấm trên đầu",Yacute:"Ký tự la-tinh viết hoa Y với dấu sắc",THORN:"Phần viết hoa của ký tự Thorn",szlig:"Ký tự viết nhỏ la-tinh của chữ s",agrave:"Ký tự la-tinh thường với dấu huyền",aacute:"Ký tự la-tinh thường với dấu sắc",acirc:"Ký tự la-tinh thường với dấu mũ", -atilde:"Ký tự la-tinh thường với dấu ngã",auml:"Ký tự la-tinh thường với dấu hai chấm trên đầu",aring:"Ký tự la-tinh viết thường với biểu tượng vòng tròn trên đầu",aelig:"Ký tự la-tinh viết thường của æ",ccedil:"Ký tự la-tinh viết thường của c với dấu móc bên dưới",egrave:"Ký tự la-tinh viết thường e với dấu huyền",eacute:"Ký tự la-tinh viết thường e với dấu sắc",ecirc:"Ký tự la-tinh viết thường e với dấu mũ",euml:"Ký tự la-tinh viết thường e với dấu hai chấm trên đầu",igrave:"Ký tự la-tinh viết thường i với dấu huyền", -iacute:"Ký tự la-tinh viết thường i với dấu sắc",icirc:"Ký tự la-tinh viết thường i với dấu mũ",iuml:"Ký tự la-tinh viết thường i với dấu hai chấm trên đầu",eth:"Ký tự la-tinh viết thường của eth",ntilde:"Ký tự la-tinh viết thường n với dấu ngã",ograve:"Ký tự la-tinh viết thường o với dấu huyền",oacute:"Ký tự la-tinh viết thường o với dấu sắc",ocirc:"Ký tự la-tinh viết thường o với dấu mũ",otilde:"Ký tự la-tinh viết thường o với dấu ngã",ouml:"Ký tự la-tinh viết thường o với dấu hai chấm trên đầu", -divide:"Ký hiệu phép tính chia",oslash:"Ký tự la-tinh viết thường o với dấu ngã",ugrave:"Ký tự la-tinh viết thường u với dấu huyền",uacute:"Ký tự la-tinh viết thường u với dấu sắc",ucirc:"Ký tự la-tinh viết thường u với dấu mũ",uuml:"Ký tự la-tinh viết thường u với dấu hai chấm trên đầu",yacute:"Ký tự la-tinh viết thường y với dấu sắc",thorn:"Ký tự la-tinh viết thường của chữ thorn",yuml:"Ký tự la-tinh viết thường y với dấu hai chấm trên đầu",OElig:"Ký tự la-tinh viết hoa gạch nối OE",oelig:"Ký tự la-tinh viết thường gạch nối OE", -372:"Ký tự la-tinh viết hoa W với dấu mũ",374:"Ký tự la-tinh viết hoa Y với dấu mũ",373:"Ký tự la-tinh viết thường w với dấu mũ",375:"Ký tự la-tinh viết thường y với dấu mũ",sbquo:"Dấu ngoặc đơn thấp số-9",8219:"Dấu ngoặc đơn đảo ngược số-9",bdquo:"Gấp đôi dấu ngoặc đơn số-9",hellip:"Tĩnh dược chiều ngang",trade:"Ký tự thương hiệu",9658:"Ký tự trỏ về hướng bên phải màu đen",bull:"Ký hiệu",rarr:"Mũi tên hướng bên phải",rArr:"Mũi tên hướng bên phải dạng đôi",hArr:"Mũi tên hướng bên trái dạng đôi",diams:"Ký hiệu hình thoi", -asymp:"Gần bằng với"}); \ No newline at end of file diff --git a/admin/plugins/ckeditor/plugins/specialchar/dialogs/lang/zh-cn.js b/admin/plugins/ckeditor/plugins/specialchar/dialogs/lang/zh-cn.js deleted file mode 100644 index 57e2dc0..0000000 --- a/admin/plugins/ckeditor/plugins/specialchar/dialogs/lang/zh-cn.js +++ /dev/null @@ -1,9 +0,0 @@ -/* - Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. - For licensing, see LICENSE.md or http://ckeditor.com/license -*/ -CKEDITOR.plugins.setLang("specialchar","zh-cn",{euro:"欧元符号",lsquo:"左单引号",rsquo:"右单引号",ldquo:"左双引号",rdquo:"右双引号",ndash:"短划线",mdash:"长划线",iexcl:"竖翻叹号",cent:"分币符号",pound:"英镑符号",curren:"货币符号",yen:"日元符号",brvbar:"间断条",sect:"节标记",uml:"分音符",copy:"版权所有标记",ordf:"阴性顺序指示符",laquo:"左指双尖引号",not:"非标记",reg:"注册标记",macr:"长音符",deg:"度标记",sup2:"上标二",sup3:"上标三",acute:"锐音符",micro:"微符",para:"段落标记",middot:"中间点",cedil:"下加符",sup1:"上标一",ordm:"阳性顺序指示符",raquo:"右指双尖引号",frac14:"普通分数四分之一",frac12:"普通分数二分之一",frac34:"普通分数四分之三",iquest:"竖翻问号", -Agrave:"带抑音符的拉丁文大写字母 A",Aacute:"带锐音符的拉丁文大写字母 A",Acirc:"带扬抑符的拉丁文大写字母 A",Atilde:"带颚化符的拉丁文大写字母 A",Auml:"带分音符的拉丁文大写字母 A",Aring:"带上圆圈的拉丁文大写字母 A",AElig:"拉丁文大写字母 Æ",Ccedil:"带下加符的拉丁文大写字母 C",Egrave:"带抑音符的拉丁文大写字母 E",Eacute:"带锐音符的拉丁文大写字母 E",Ecirc:"带扬抑符的拉丁文大写字母 E",Euml:"带分音符的拉丁文大写字母 E",Igrave:"带抑音符的拉丁文大写字母 I",Iacute:"带锐音符的拉丁文大写字母 I",Icirc:"带扬抑符的拉丁文大写字母 I",Iuml:"带分音符的拉丁文大写字母 I",ETH:"拉丁文大写字母 Eth",Ntilde:"带颚化符的拉丁文大写字母 N",Ograve:"带抑音符的拉丁文大写字母 O",Oacute:"带锐音符的拉丁文大写字母 O",Ocirc:"带扬抑符的拉丁文大写字母 O",Otilde:"带颚化符的拉丁文大写字母 O", -Ouml:"带分音符的拉丁文大写字母 O",times:"乘号",Oslash:"带粗线的拉丁文大写字母 O",Ugrave:"带抑音符的拉丁文大写字母 U",Uacute:"带锐音符的拉丁文大写字母 U",Ucirc:"带扬抑符的拉丁文大写字母 U",Uuml:"带分音符的拉丁文大写字母 U",Yacute:"带抑音符的拉丁文大写字母 Y",THORN:"拉丁文大写字母 Thorn",szlig:"拉丁文小写字母清音 S",agrave:"带抑音符的拉丁文小写字母 A",aacute:"带锐音符的拉丁文小写字母 A",acirc:"带扬抑符的拉丁文小写字母 A",atilde:"带颚化符的拉丁文小写字母 A",auml:"带分音符的拉丁文小写字母 A",aring:"带上圆圈的拉丁文小写字母 A",aelig:"拉丁文小写字母 Ae",ccedil:"带下加符的拉丁文小写字母 C",egrave:"带抑音符的拉丁文小写字母 E",eacute:"带锐音符的拉丁文小写字母 E",ecirc:"带扬抑符的拉丁文小写字母 E",euml:"带分音符的拉丁文小写字母 E",igrave:"带抑音符的拉丁文小写字母 I", -iacute:"带锐音符的拉丁文小写字母 I",icirc:"带扬抑符的拉丁文小写字母 I",iuml:"带分音符的拉丁文小写字母 I",eth:"拉丁文小写字母 Eth",ntilde:"带颚化符的拉丁文小写字母 N",ograve:"带抑音符的拉丁文小写字母 O",oacute:"带锐音符的拉丁文小写字母 O",ocirc:"带扬抑符的拉丁文小写字母 O",otilde:"带颚化符的拉丁文小写字母 O",ouml:"带分音符的拉丁文小写字母 O",divide:"除号",oslash:"带粗线的拉丁文小写字母 O",ugrave:"带抑音符的拉丁文小写字母 U",uacute:"带锐音符的拉丁文小写字母 U",ucirc:"带扬抑符的拉丁文小写字母 U",uuml:"带分音符的拉丁文小写字母 U",yacute:"带抑音符的拉丁文小写字母 Y",thorn:"拉丁文小写字母 Thorn",yuml:"带分音符的拉丁文小写字母 Y",OElig:"拉丁文大写连字 Oe",oelig:"拉丁文小写连字 Oe",372:"带扬抑符的拉丁文大写字母 W",374:"带扬抑符的拉丁文大写字母 Y", -373:"带扬抑符的拉丁文小写字母 W",375:"带扬抑符的拉丁文小写字母 Y",sbquo:"单下 9 形引号",8219:"单高横翻 9 形引号",bdquo:"双下 9 形引号",hellip:"水平省略号",trade:"商标标志",9658:"实心右指指针",bull:"加重号",rarr:"向右箭头",rArr:"向右双线箭头",hArr:"左右双线箭头",diams:"实心方块纸牌",asymp:"约等于"}); \ No newline at end of file diff --git a/admin/plugins/ckeditor/plugins/specialchar/dialogs/lang/zh.js b/admin/plugins/ckeditor/plugins/specialchar/dialogs/lang/zh.js deleted file mode 100644 index 297f96e..0000000 --- a/admin/plugins/ckeditor/plugins/specialchar/dialogs/lang/zh.js +++ /dev/null @@ -1,9 +0,0 @@ -/* - Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. - For licensing, see LICENSE.md or http://ckeditor.com/license -*/ -CKEDITOR.plugins.setLang("specialchar","zh",{euro:"歐元符號",lsquo:"左單引號",rsquo:"右單引號",ldquo:"左雙引號",rdquo:"右雙引號",ndash:"短破折號",mdash:"長破折號",iexcl:"倒置的驚嘆號",cent:"美分符號",pound:"英鎊符號",curren:"貨幣符號",yen:"日圓符號",brvbar:"破折號",sect:"章節符號",uml:"分音符號",copy:"版權符號",ordf:"雌性符號",laquo:"左雙角括號",not:"Not 符號",reg:"註冊商標符號",macr:"長音符號",deg:"度數符號",sup2:"上標字 2",sup3:"上標字 3",acute:"尖音符號",micro:"微",para:"段落符號",middot:"中間點",cedil:"字母 C 下面的尾型符號 ",sup1:"上標",ordm:"雄性符號",raquo:"右雙角括號",frac14:"四分之一符號",frac12:"二分之一符號",frac34:"四分之三符號", -iquest:"倒置的問號",Agrave:"拉丁大寫字母 A 帶抑音符號",Aacute:"拉丁大寫字母 A 帶尖音符號",Acirc:"拉丁大寫字母 A 帶揚抑符",Atilde:"拉丁大寫字母 A 帶波浪號",Auml:"拉丁大寫字母 A 帶分音符號",Aring:"拉丁大寫字母 A 帶上圓圈",AElig:"拉丁大寫字母 Æ",Ccedil:"拉丁大寫字母 C 帶下尾符號",Egrave:"拉丁大寫字母 E 帶抑音符號",Eacute:"拉丁大寫字母 E 帶尖音符號",Ecirc:"拉丁大寫字母 E 帶揚抑符",Euml:"拉丁大寫字母 E 帶分音符號",Igrave:"拉丁大寫字母 I 帶抑音符號",Iacute:"拉丁大寫字母 I 帶尖音符號",Icirc:"拉丁大寫字母 I 帶揚抑符",Iuml:"拉丁大寫字母 I 帶分音符號",ETH:"拉丁大寫字母 Eth",Ntilde:"拉丁大寫字母 N 帶波浪號",Ograve:"拉丁大寫字母 O 帶抑音符號",Oacute:"拉丁大寫字母 O 帶尖音符號",Ocirc:"拉丁大寫字母 O 帶揚抑符",Otilde:"拉丁大寫字母 O 帶波浪號", -Ouml:"拉丁大寫字母 O 帶分音符號",times:"乘號",Oslash:"拉丁大寫字母 O 帶粗線符號",Ugrave:"拉丁大寫字母 U 帶抑音符號",Uacute:"拉丁大寫字母 U 帶尖音符號",Ucirc:"拉丁大寫字母 U 帶揚抑符",Uuml:"拉丁大寫字母 U 帶分音符號",Yacute:"拉丁大寫字母 Y 帶尖音符號",THORN:"拉丁大寫字母 Thorn",szlig:"拉丁小寫字母 s",agrave:"拉丁小寫字母 a 帶抑音符號",aacute:"拉丁小寫字母 a 帶尖音符號",acirc:"拉丁小寫字母 a 帶揚抑符",atilde:"拉丁小寫字母 a 帶波浪號",auml:"拉丁小寫字母 a 帶分音符號",aring:"拉丁小寫字母 a 帶上圓圈",aelig:"拉丁小寫字母 æ",ccedil:"拉丁小寫字母 c 帶下尾符號",egrave:"拉丁小寫字母 e 帶抑音符號",eacute:"拉丁小寫字母 e 帶尖音符號",ecirc:"拉丁小寫字母 e 帶揚抑符",euml:"拉丁小寫字母 e 帶分音符號",igrave:"拉丁小寫字母 i 帶抑音符號", -iacute:"拉丁小寫字母 i 帶尖音符號",icirc:"拉丁小寫字母 i 帶揚抑符",iuml:"拉丁小寫字母 i 帶分音符號",eth:"拉丁小寫字母 eth",ntilde:"拉丁小寫字母 n 帶波浪號",ograve:"拉丁小寫字母 o 帶抑音符號",oacute:"拉丁小寫字母 o 帶尖音符號",ocirc:"拉丁小寫字母 o 帶揚抑符",otilde:"拉丁小寫字母 o 帶波浪號",ouml:"拉丁小寫字母 o 帶分音符號",divide:"除號",oslash:"拉丁小寫字母 o 帶粗線符號",ugrave:"拉丁小寫字母 u 帶抑音符號",uacute:"拉丁小寫字母 u 帶尖音符號",ucirc:"拉丁小寫字母 u 帶揚抑符",uuml:"拉丁小寫字母 u 帶分音符號",yacute:"拉丁小寫字母 y 帶尖音符號",thorn:"拉丁小寫字母 thorn",yuml:"拉丁小寫字母 y 帶分音符號",OElig:"拉丁大寫字母 OE",oelig:"拉丁小寫字母 oe",372:"拉丁大寫字母 W 帶揚抑符",374:"拉丁大寫字母 Y 帶揚抑符",373:"拉丁小寫字母 w 帶揚抑符", -375:"拉丁小寫字母 y 帶揚抑符",sbquo:"低 9 單引號",8219:"高 9 反轉單引號",bdquo:"低 9 雙引號",hellip:"水平刪節號",trade:"商標符號",9658:"黑色向右指箭號",bull:"項目符號",rarr:"向右箭號",rArr:"向右雙箭號",hArr:"左右雙箭號",diams:"黑鑽套裝",asymp:"約等於"}); \ No newline at end of file diff --git a/admin/plugins/ckeditor/plugins/specialchar/dialogs/specialchar.js b/admin/plugins/ckeditor/plugins/specialchar/dialogs/specialchar.js deleted file mode 100644 index d04c186..0000000 --- a/admin/plugins/ckeditor/plugins/specialchar/dialogs/specialchar.js +++ /dev/null @@ -1,14 +0,0 @@ -/* - Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. - For licensing, see LICENSE.md or http://ckeditor.com/license -*/ -CKEDITOR.dialog.add("specialchar",function(k){var e,n=k.lang.specialchar,m=function(c){var b;c=c.data?c.data.getTarget():new CKEDITOR.dom.element(c);"a"==c.getName()&&(b=c.getChild(0).getHtml())&&(c.removeClass("cke_light_background"),e.hide(),c=k.document.createElement("span"),c.setHtml(b),k.insertText(c.getText()))},p=CKEDITOR.tools.addFunction(m),l,g=function(c,b){var a;b=b||c.data.getTarget();"span"==b.getName()&&(b=b.getParent());if("a"==b.getName()&&(a=b.getChild(0).getHtml())){l&&d(null,l); -var f=e.getContentElement("info","htmlPreview").getElement();e.getContentElement("info","charPreview").getElement().setHtml(a);f.setHtml(CKEDITOR.tools.htmlEncode(a));b.getParent().addClass("cke_light_background");l=b}},d=function(c,b){b=b||c.data.getTarget();"span"==b.getName()&&(b=b.getParent());"a"==b.getName()&&(e.getContentElement("info","charPreview").getElement().setHtml("\x26nbsp;"),e.getContentElement("info","htmlPreview").getElement().setHtml("\x26nbsp;"),b.getParent().removeClass("cke_light_background"), -l=void 0)},q=CKEDITOR.tools.addFunction(function(c){c=new CKEDITOR.dom.event(c);var b=c.getTarget(),a;a=c.getKeystroke();var f="rtl"==k.lang.dir;switch(a){case 38:if(a=b.getParent().getParent().getPrevious())a=a.getChild([b.getParent().getIndex(),0]),a.focus(),d(null,b),g(null,a);c.preventDefault();break;case 40:(a=b.getParent().getParent().getNext())&&(a=a.getChild([b.getParent().getIndex(),0]))&&1==a.type&&(a.focus(),d(null,b),g(null,a));c.preventDefault();break;case 32:m({data:c});c.preventDefault(); -break;case f?37:39:if(a=b.getParent().getNext())a=a.getChild(0),1==a.type?(a.focus(),d(null,b),g(null,a),c.preventDefault(!0)):d(null,b);else if(a=b.getParent().getParent().getNext())(a=a.getChild([0,0]))&&1==a.type?(a.focus(),d(null,b),g(null,a),c.preventDefault(!0)):d(null,b);break;case f?39:37:(a=b.getParent().getPrevious())?(a=a.getChild(0),a.focus(),d(null,b),g(null,a),c.preventDefault(!0)):(a=b.getParent().getParent().getPrevious())?(a=a.getLast().getChild(0),a.focus(),d(null,b),g(null,a),c.preventDefault(!0)): -d(null,b)}});return{title:n.title,minWidth:430,minHeight:280,buttons:[CKEDITOR.dialog.cancelButton],charColumns:17,onLoad:function(){for(var c=this.definition.charColumns,b=k.config.specialChars,a=CKEDITOR.tools.getNextId()+"_specialchar_table_label",f=['\x3ctable role\x3d"listbox" aria-labelledby\x3d"'+a+'" style\x3d"width: 320px; height: 100%; border-collapse: separate;" align\x3d"center" cellspacing\x3d"2" cellpadding\x3d"2" border\x3d"0"\x3e'],d=0,g=b.length,h,e;d<g;){f.push('\x3ctr role\x3d"presentation"\x3e'); -for(var l=0;l<c;l++,d++){if(h=b[d]){h instanceof Array?(e=h[1],h=h[0]):(e=h.replace("\x26","").replace(";","").replace("#",""),e=n[e]||h);var m="cke_specialchar_label_"+d+"_"+CKEDITOR.tools.getNextNumber();f.push('\x3ctd class\x3d"cke_dark_background" style\x3d"cursor: default" role\x3d"presentation"\x3e\x3ca href\x3d"javascript: void(0);" role\x3d"option" aria-posinset\x3d"'+(d+1)+'"',' aria-setsize\x3d"'+g+'"',' aria-labelledby\x3d"'+m+'"',' class\x3d"cke_specialchar" title\x3d"',CKEDITOR.tools.htmlEncode(e), -'" onkeydown\x3d"CKEDITOR.tools.callFunction( '+q+', event, this )" onclick\x3d"CKEDITOR.tools.callFunction('+p+', this); return false;" tabindex\x3d"-1"\x3e\x3cspan style\x3d"margin: 0 auto;cursor: inherit"\x3e'+h+'\x3c/span\x3e\x3cspan class\x3d"cke_voice_label" id\x3d"'+m+'"\x3e'+e+"\x3c/span\x3e\x3c/a\x3e")}else f.push('\x3ctd class\x3d"cke_dark_background"\x3e\x26nbsp;');f.push("\x3c/td\x3e")}f.push("\x3c/tr\x3e")}f.push("\x3c/tbody\x3e\x3c/table\x3e",'\x3cspan id\x3d"'+a+'" class\x3d"cke_voice_label"\x3e'+ -n.options+"\x3c/span\x3e");this.getContentElement("info","charContainer").getElement().setHtml(f.join(""))},contents:[{id:"info",label:k.lang.common.generalTab,title:k.lang.common.generalTab,padding:0,align:"top",elements:[{type:"hbox",align:"top",widths:["320px","90px"],children:[{type:"html",id:"charContainer",html:"",onMouseover:g,onMouseout:d,focus:function(){var c=this.getElement().getElementsByTag("a").getItem(0);setTimeout(function(){c.focus();g(null,c)},0)},onShow:function(){var c=this.getElement().getChild([0, -0,0,0,0]);setTimeout(function(){c.focus();g(null,c)},0)},onLoad:function(c){e=c.sender}},{type:"hbox",align:"top",widths:["100%"],children:[{type:"vbox",align:"top",children:[{type:"html",html:"\x3cdiv\x3e\x3c/div\x3e"},{type:"html",id:"charPreview",className:"cke_dark_background",style:"border:1px solid #eeeeee;font-size:28px;height:40px;width:70px;padding-top:9px;font-family:'Microsoft Sans Serif',Arial,Helvetica,Verdana;text-align:center;",html:"\x3cdiv\x3e\x26nbsp;\x3c/div\x3e"},{type:"html", -id:"htmlPreview",className:"cke_dark_background",style:"border:1px solid #eeeeee;font-size:14px;height:20px;width:70px;padding-top:2px;font-family:'Microsoft Sans Serif',Arial,Helvetica,Verdana;text-align:center;",html:"\x3cdiv\x3e\x26nbsp;\x3c/div\x3e"}]}]}]}]}]}}); \ No newline at end of file diff --git a/admin/plugins/ckeditor/plugins/table/dialogs/table.js b/admin/plugins/ckeditor/plugins/table/dialogs/table.js deleted file mode 100644 index 3206bfe..0000000 --- a/admin/plugins/ckeditor/plugins/table/dialogs/table.js +++ /dev/null @@ -1,21 +0,0 @@ -/* - Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. - For licensing, see LICENSE.md or http://ckeditor.com/license -*/ -(function(){function v(a){for(var f=0,n=0,l=0,p,e=a.$.rows.length;l<e;l++){p=a.$.rows[l];for(var d=f=0,b,c=p.cells.length;d<c;d++)b=p.cells[d],f+=b.colSpan;f>n&&(n=f)}return n}function r(a){return function(){var f=this.getValue(),f=!!(CKEDITOR.dialog.validate.integer()(f)&&0<f);f||(alert(a),this.select());return f}}function q(a,f){var n=function(e){return new CKEDITOR.dom.element(e,a.document)},q=a.editable(),p=a.plugins.dialogadvtab;return{title:a.lang.table.title,minWidth:310,minHeight:CKEDITOR.env.ie? -310:280,onLoad:function(){var e=this,a=e.getContentElement("advanced","advStyles");if(a)a.on("change",function(){var a=this.getStyle("width",""),c=e.getContentElement("info","txtWidth");c&&c.setValue(a,!0);a=this.getStyle("height","");(c=e.getContentElement("info","txtHeight"))&&c.setValue(a,!0)})},onShow:function(){var e=a.getSelection(),d=e.getRanges(),b,c=this.getContentElement("info","txtRows"),g=this.getContentElement("info","txtCols"),t=this.getContentElement("info","txtWidth"),m=this.getContentElement("info", -"txtHeight");"tableProperties"==f&&((e=e.getSelectedElement())&&e.is("table")?b=e:0<d.length&&(CKEDITOR.env.webkit&&d[0].shrink(CKEDITOR.NODE_ELEMENT),b=a.elementPath(d[0].getCommonAncestor(!0)).contains("table",1)),this._.selectedElement=b);b?(this.setupContent(b),c&&c.disable(),g&&g.disable()):(c&&c.enable(),g&&g.enable());t&&t.onChange();m&&m.onChange()},onOk:function(){var e=a.getSelection(),d=this._.selectedElement&&e.createBookmarks(),b=this._.selectedElement||n("table"),c={};this.commitContent(c, -b);if(c.info){c=c.info;if(!this._.selectedElement)for(var g=b.append(n("tbody")),f=parseInt(c.txtRows,10)||0,m=parseInt(c.txtCols,10)||0,k=0;k<f;k++)for(var h=g.append(n("tr")),l=0;l<m;l++)h.append(n("td")).appendBogus();f=c.selHeaders;if(!b.$.tHead&&("row"==f||"both"==f)){h=b.getElementsByTag("thead").getItem(0);g=b.getElementsByTag("tbody").getItem(0);m=g.getElementsByTag("tr").getItem(0);h||(h=new CKEDITOR.dom.element("thead"),h.insertBefore(g));for(k=0;k<m.getChildCount();k++)g=m.getChild(k), -g.type!=CKEDITOR.NODE_ELEMENT||g.data("cke-bookmark")||(g.renameNode("th"),g.setAttribute("scope","col"));h.append(m.remove())}if(null!==b.$.tHead&&"row"!=f&&"both"!=f){h=new CKEDITOR.dom.element(b.$.tHead);g=b.getElementsByTag("tbody").getItem(0);for(l=g.getFirst();0<h.getChildCount();){m=h.getFirst();for(k=0;k<m.getChildCount();k++)g=m.getChild(k),g.type==CKEDITOR.NODE_ELEMENT&&(g.renameNode("td"),g.removeAttribute("scope"));m.insertBefore(l)}h.remove()}if(!this.hasColumnHeaders&&("col"==f||"both"== -f))for(h=0;h<b.$.rows.length;h++)g=new CKEDITOR.dom.element(b.$.rows[h].cells[0]),g.renameNode("th"),g.setAttribute("scope","row");if(this.hasColumnHeaders&&"col"!=f&&"both"!=f)for(k=0;k<b.$.rows.length;k++)h=new CKEDITOR.dom.element(b.$.rows[k]),"tbody"==h.getParent().getName()&&(g=new CKEDITOR.dom.element(h.$.cells[0]),g.renameNode("td"),g.removeAttribute("scope"));c.txtHeight?b.setStyle("height",c.txtHeight):b.removeStyle("height");c.txtWidth?b.setStyle("width",c.txtWidth):b.removeStyle("width"); -b.getAttribute("style")||b.removeAttribute("style")}if(this._.selectedElement)try{e.selectBookmarks(d)}catch(p){}else a.insertElement(b),setTimeout(function(){var e=new CKEDITOR.dom.element(b.$.rows[0].cells[0]),c=a.createRange();c.moveToPosition(e,CKEDITOR.POSITION_AFTER_START);c.select()},0)},contents:[{id:"info",label:a.lang.table.title,elements:[{type:"hbox",widths:[null,null],styles:["vertical-align:top"],children:[{type:"vbox",padding:0,children:[{type:"text",id:"txtRows","default":3,label:a.lang.table.rows, -required:!0,controlStyle:"width:5em",validate:r(a.lang.table.invalidRows),setup:function(e){this.setValue(e.$.rows.length)},commit:l},{type:"text",id:"txtCols","default":2,label:a.lang.table.columns,required:!0,controlStyle:"width:5em",validate:r(a.lang.table.invalidCols),setup:function(e){this.setValue(v(e))},commit:l},{type:"html",html:"\x26nbsp;"},{type:"select",id:"selHeaders",requiredContent:"th","default":"",label:a.lang.table.headers,items:[[a.lang.table.headersNone,""],[a.lang.table.headersRow, -"row"],[a.lang.table.headersColumn,"col"],[a.lang.table.headersBoth,"both"]],setup:function(e){var a=this.getDialog();a.hasColumnHeaders=!0;for(var b=0;b<e.$.rows.length;b++){var c=e.$.rows[b].cells[0];if(c&&"th"!=c.nodeName.toLowerCase()){a.hasColumnHeaders=!1;break}}null!==e.$.tHead?this.setValue(a.hasColumnHeaders?"both":"row"):this.setValue(a.hasColumnHeaders?"col":"")},commit:l},{type:"text",id:"txtBorder",requiredContent:"table[border]","default":a.filter.check("table[border]")?1:0,label:a.lang.table.border, -controlStyle:"width:3em",validate:CKEDITOR.dialog.validate.number(a.lang.table.invalidBorder),setup:function(a){this.setValue(a.getAttribute("border")||"")},commit:function(a,d){this.getValue()?d.setAttribute("border",this.getValue()):d.removeAttribute("border")}},{id:"cmbAlign",type:"select",requiredContent:"table[align]","default":"",label:a.lang.common.align,items:[[a.lang.common.notSet,""],[a.lang.common.alignLeft,"left"],[a.lang.common.alignCenter,"center"],[a.lang.common.alignRight,"right"]], -setup:function(a){this.setValue(a.getAttribute("align")||"")},commit:function(a,d){this.getValue()?d.setAttribute("align",this.getValue()):d.removeAttribute("align")}}]},{type:"vbox",padding:0,children:[{type:"hbox",widths:["5em"],children:[{type:"text",id:"txtWidth",requiredContent:"table{width}",controlStyle:"width:5em",label:a.lang.common.width,title:a.lang.common.cssLengthTooltip,"default":a.filter.check("table{width}")?500>q.getSize("width")?"100%":500:0,getValue:u,validate:CKEDITOR.dialog.validate.cssLength(a.lang.common.invalidCssLength.replace("%1", -a.lang.common.width)),onChange:function(){var a=this.getDialog().getContentElement("advanced","advStyles");a&&a.updateStyle("width",this.getValue())},setup:function(a){a=a.getStyle("width");this.setValue(a)},commit:l}]},{type:"hbox",widths:["5em"],children:[{type:"text",id:"txtHeight",requiredContent:"table{height}",controlStyle:"width:5em",label:a.lang.common.height,title:a.lang.common.cssLengthTooltip,"default":"",getValue:u,validate:CKEDITOR.dialog.validate.cssLength(a.lang.common.invalidCssLength.replace("%1", -a.lang.common.height)),onChange:function(){var a=this.getDialog().getContentElement("advanced","advStyles");a&&a.updateStyle("height",this.getValue())},setup:function(a){(a=a.getStyle("height"))&&this.setValue(a)},commit:l}]},{type:"html",html:"\x26nbsp;"},{type:"text",id:"txtCellSpace",requiredContent:"table[cellspacing]",controlStyle:"width:3em",label:a.lang.table.cellSpace,"default":a.filter.check("table[cellspacing]")?1:0,validate:CKEDITOR.dialog.validate.number(a.lang.table.invalidCellSpacing), -setup:function(a){this.setValue(a.getAttribute("cellSpacing")||"")},commit:function(a,d){this.getValue()?d.setAttribute("cellSpacing",this.getValue()):d.removeAttribute("cellSpacing")}},{type:"text",id:"txtCellPad",requiredContent:"table[cellpadding]",controlStyle:"width:3em",label:a.lang.table.cellPad,"default":a.filter.check("table[cellpadding]")?1:0,validate:CKEDITOR.dialog.validate.number(a.lang.table.invalidCellPadding),setup:function(a){this.setValue(a.getAttribute("cellPadding")||"")},commit:function(a, -d){this.getValue()?d.setAttribute("cellPadding",this.getValue()):d.removeAttribute("cellPadding")}}]}]},{type:"html",align:"right",html:""},{type:"vbox",padding:0,children:[{type:"text",id:"txtCaption",requiredContent:"caption",label:a.lang.table.caption,setup:function(a){this.enable();a=a.getElementsByTag("caption");if(0<a.count()){a=a.getItem(0);var d=a.getFirst(CKEDITOR.dom.walker.nodeType(CKEDITOR.NODE_ELEMENT));d&&!d.equals(a.getBogus())?(this.disable(),this.setValue(a.getText())):(a=CKEDITOR.tools.trim(a.getText()), -this.setValue(a))}},commit:function(e,d){if(this.isEnabled()){var b=this.getValue(),c=d.getElementsByTag("caption");if(b)0<c.count()?(c=c.getItem(0),c.setHtml("")):(c=new CKEDITOR.dom.element("caption",a.document),d.append(c,!0)),c.append(new CKEDITOR.dom.text(b,a.document));else if(0<c.count())for(b=c.count()-1;0<=b;b--)c.getItem(b).remove()}}},{type:"text",id:"txtSummary",bidi:!0,requiredContent:"table[summary]",label:a.lang.table.summary,setup:function(a){this.setValue(a.getAttribute("summary")|| -"")},commit:function(a,d){this.getValue()?d.setAttribute("summary",this.getValue()):d.removeAttribute("summary")}}]}]},p&&p.createAdvancedTab(a,null,"table")]}}var u=CKEDITOR.tools.cssLength,l=function(a){var f=this.id;a.info||(a.info={});a.info[f]=this.getValue()};CKEDITOR.dialog.add("table",function(a){return q(a,"table")});CKEDITOR.dialog.add("tableProperties",function(a){return q(a,"tableProperties")})})(); \ No newline at end of file diff --git a/admin/plugins/ckeditor/plugins/tableselection/styles/tableselection.css b/admin/plugins/ckeditor/plugins/tableselection/styles/tableselection.css deleted file mode 100644 index 3ad2ab1..0000000 --- a/admin/plugins/ckeditor/plugins/tableselection/styles/tableselection.css +++ /dev/null @@ -1,32 +0,0 @@ -.cke_table-faked-selection-editor *::selection, table[data-cke-table-faked-selection-table] *::selection { - background: transparent; -} - -.cke_table-faked-selection-editor { - /* With love, dedicated for Chrome, until https://bugs.chromium.org/p/chromium/issues/detail?id=702610 is resolved. - It will force repaint (without reflow) so that selection is properly displayed. */ - transform: translateZ( 0 ); -} - -.cke_table-faked-selection { - background: darkgray !important; - color: black; -} -.cke_table-faked-selection a { - color: black; -} -.cke_editable:focus .cke_table-faked-selection { - /* We have to use !important here, as td might specify it's own background, thus table selection - would not be visible. */ - background: #0076cb !important; - color: white; -} -.cke_editable:focus .cke_table-faked-selection a { - color: white; -} -.cke_table-faked-selection::-moz-selection, .cke_table-faked-selection ::-moz-selection { - background: transparent; -} -.cke_table-faked-selection::selection, .cke_table-faked-selection ::selection { - background: transparent; -} diff --git a/admin/plugins/ckeditor/plugins/tabletools/dialogs/tableCell.js b/admin/plugins/ckeditor/plugins/tabletools/dialogs/tableCell.js deleted file mode 100644 index 101d6c0..0000000 --- a/admin/plugins/ckeditor/plugins/tabletools/dialogs/tableCell.js +++ /dev/null @@ -1,17 +0,0 @@ -/* - Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. - For licensing, see LICENSE.md or http://ckeditor.com/license -*/ -CKEDITOR.dialog.add("cellProperties",function(g){function d(a){return function(b){for(var c=a(b[0]),d=1;d<b.length;d++)if(a(b[d])!==c){c=null;break}"undefined"!=typeof c&&(this.setValue(c),CKEDITOR.env.gecko&&"select"==this.type&&!c&&(this.getInputElement().$.selectedIndex=-1))}}function l(a){if(a=n.exec(a.getStyle("width")||a.getAttribute("width")))return a[2]}var h=g.lang.table,c=h.cell,e=g.lang.common,k=CKEDITOR.dialog.validate,n=/^(\d+(?:\.\d+)?)(px|%)$/,f={type:"html",html:"\x26nbsp;"},p="rtl"== -g.lang.dir,m=g.plugins.colordialog;return{title:c.title,minWidth:CKEDITOR.env.ie&&CKEDITOR.env.quirks?450:410,minHeight:CKEDITOR.env.ie&&(CKEDITOR.env.ie7Compat||CKEDITOR.env.quirks)?230:220,contents:[{id:"info",label:c.title,accessKey:"I",elements:[{type:"hbox",widths:["40%","5%","40%"],children:[{type:"vbox",padding:0,children:[{type:"hbox",widths:["70%","30%"],children:[{type:"text",id:"width",width:"100px",label:e.width,validate:k.number(c.invalidWidth),onLoad:function(){var a=this.getDialog().getContentElement("info", -"widthType").getElement(),b=this.getInputElement(),c=b.getAttribute("aria-labelledby");b.setAttribute("aria-labelledby",[c,a.$.id].join(" "))},setup:d(function(a){var b=parseInt(a.getAttribute("width"),10);a=parseInt(a.getStyle("width"),10);return isNaN(a)?isNaN(b)?"":b:a}),commit:function(a){var b=parseInt(this.getValue(),10),c=this.getDialog().getValueOf("info","widthType")||l(a);isNaN(b)?a.removeStyle("width"):a.setStyle("width",b+c);a.removeAttribute("width")},"default":""},{type:"select",id:"widthType", -label:g.lang.table.widthUnit,labelStyle:"visibility:hidden","default":"px",items:[[h.widthPx,"px"],[h.widthPc,"%"]],setup:d(l)}]},{type:"hbox",widths:["70%","30%"],children:[{type:"text",id:"height",label:e.height,width:"100px","default":"",validate:k.number(c.invalidHeight),onLoad:function(){var a=this.getDialog().getContentElement("info","htmlHeightType").getElement(),b=this.getInputElement(),c=b.getAttribute("aria-labelledby");b.setAttribute("aria-labelledby",[c,a.$.id].join(" "))},setup:d(function(a){var b= -parseInt(a.getAttribute("height"),10);a=parseInt(a.getStyle("height"),10);return isNaN(a)?isNaN(b)?"":b:a}),commit:function(a){var b=parseInt(this.getValue(),10);isNaN(b)?a.removeStyle("height"):a.setStyle("height",CKEDITOR.tools.cssLength(b));a.removeAttribute("height")}},{id:"htmlHeightType",type:"html",html:"\x3cbr /\x3e"+h.widthPx}]},f,{type:"select",id:"wordWrap",label:c.wordWrap,"default":"yes",items:[[c.yes,"yes"],[c.no,"no"]],setup:d(function(a){var b=a.getAttribute("noWrap");if("nowrap"== -a.getStyle("white-space")||b)return"no"}),commit:function(a){"no"==this.getValue()?a.setStyle("white-space","nowrap"):a.removeStyle("white-space");a.removeAttribute("noWrap")}},f,{type:"select",id:"hAlign",label:c.hAlign,"default":"",items:[[e.notSet,""],[e.alignLeft,"left"],[e.alignCenter,"center"],[e.alignRight,"right"],[e.alignJustify,"justify"]],setup:d(function(a){var b=a.getAttribute("align");return a.getStyle("text-align")||b||""}),commit:function(a){var b=this.getValue();b?a.setStyle("text-align", -b):a.removeStyle("text-align");a.removeAttribute("align")}},{type:"select",id:"vAlign",label:c.vAlign,"default":"",items:[[e.notSet,""],[e.alignTop,"top"],[e.alignMiddle,"middle"],[e.alignBottom,"bottom"],[c.alignBaseline,"baseline"]],setup:d(function(a){var b=a.getAttribute("vAlign");a=a.getStyle("vertical-align");switch(a){case "top":case "middle":case "bottom":case "baseline":break;default:a=""}return a||b||""}),commit:function(a){var b=this.getValue();b?a.setStyle("vertical-align",b):a.removeStyle("vertical-align"); -a.removeAttribute("vAlign")}}]},f,{type:"vbox",padding:0,children:[{type:"select",id:"cellType",label:c.cellType,"default":"td",items:[[c.data,"td"],[c.header,"th"]],setup:d(function(a){return a.getName()}),commit:function(a){a.renameNode(this.getValue())}},f,{type:"text",id:"rowSpan",label:c.rowSpan,"default":"",validate:k.integer(c.invalidRowSpan),setup:d(function(a){if((a=parseInt(a.getAttribute("rowSpan"),10))&&1!=a)return a}),commit:function(a){var b=parseInt(this.getValue(),10);b&&1!=b?a.setAttribute("rowSpan", -this.getValue()):a.removeAttribute("rowSpan")}},{type:"text",id:"colSpan",label:c.colSpan,"default":"",validate:k.integer(c.invalidColSpan),setup:d(function(a){if((a=parseInt(a.getAttribute("colSpan"),10))&&1!=a)return a}),commit:function(a){var b=parseInt(this.getValue(),10);b&&1!=b?a.setAttribute("colSpan",this.getValue()):a.removeAttribute("colSpan")}},f,{type:"hbox",padding:0,widths:["60%","40%"],children:[{type:"text",id:"bgColor",label:c.bgColor,"default":"",setup:d(function(a){var b=a.getAttribute("bgColor"); -return a.getStyle("background-color")||b}),commit:function(a){this.getValue()?a.setStyle("background-color",this.getValue()):a.removeStyle("background-color");a.removeAttribute("bgColor")}},m?{type:"button",id:"bgColorChoose","class":"colorChooser",label:c.chooseColor,onLoad:function(){this.getElement().getParent().setStyle("vertical-align","bottom")},onClick:function(){g.getColorFromDialog(function(a){a&&this.getDialog().getContentElement("info","bgColor").setValue(a);this.focus()},this)}}:f]},f, -{type:"hbox",padding:0,widths:["60%","40%"],children:[{type:"text",id:"borderColor",label:c.borderColor,"default":"",setup:d(function(a){var b=a.getAttribute("borderColor");return a.getStyle("border-color")||b}),commit:function(a){this.getValue()?a.setStyle("border-color",this.getValue()):a.removeStyle("border-color");a.removeAttribute("borderColor")}},m?{type:"button",id:"borderColorChoose","class":"colorChooser",label:c.chooseColor,style:(p?"margin-right":"margin-left")+": 10px",onLoad:function(){this.getElement().getParent().setStyle("vertical-align", -"bottom")},onClick:function(){g.getColorFromDialog(function(a){a&&this.getDialog().getContentElement("info","borderColor").setValue(a);this.focus()},this)}}:f]}]}]}]}],onShow:function(){this.cells=CKEDITOR.plugins.tabletools.getSelectedCells(this._.editor.getSelection());this.setupContent(this.cells)},onOk:function(){for(var a=this._.editor.getSelection(),b=a.createBookmarks(),c=this.cells,d=0;d<c.length;d++)this.commitContent(c[d]);this._.editor.forceNextSelectionCheck();a.selectBookmarks(b);this._.editor.selectionChange()}, -onLoad:function(){var a={};this.foreach(function(b){b.setup&&b.commit&&(b.setup=CKEDITOR.tools.override(b.setup,function(c){return function(){c.apply(this,arguments);a[b.id]=b.getValue()}}),b.commit=CKEDITOR.tools.override(b.commit,function(c){return function(){a[b.id]!==b.getValue()&&c.apply(this,arguments)}}))})}}}); \ No newline at end of file diff --git a/admin/plugins/ckeditor/plugins/widget/dev/assets/contents.css b/admin/plugins/ckeditor/plugins/widget/dev/assets/contents.css deleted file mode 100644 index c2b51d3..0000000 --- a/admin/plugins/ckeditor/plugins/widget/dev/assets/contents.css +++ /dev/null @@ -1,23 +0,0 @@ -.mediumBorder { - border-width: 2px; -} -.thickBorder { - border-width: 5px; -} -img.thickBorder, img.mediumBorder { - border-style: solid; - border-color: #CCC; -} -.important.soMuch { - margin: 25px; - padding: 25px; - background: red; - border: none; -} - -span.redMarker { - background-color: red; -} -.invisible { - opacity: 0.1; -} \ No newline at end of file diff --git a/admin/plugins/ckeditor/plugins/widget/dev/assets/sample.jpg b/admin/plugins/ckeditor/plugins/widget/dev/assets/sample.jpg deleted file mode 100644 index a4a77fa..0000000 Binary files a/admin/plugins/ckeditor/plugins/widget/dev/assets/sample.jpg and /dev/null differ diff --git a/admin/plugins/ckeditor/plugins/widget/dev/assets/simplebox/contents.css b/admin/plugins/ckeditor/plugins/widget/dev/assets/simplebox/contents.css deleted file mode 100644 index dba3015..0000000 --- a/admin/plugins/ckeditor/plugins/widget/dev/assets/simplebox/contents.css +++ /dev/null @@ -1,36 +0,0 @@ -.simplebox { - padding: 8px; - margin: 10px; - background: #eee; - border-radius: 8px; - border: 1px solid #ddd; - box-shadow: 0 1px 1px #fff inset, 0 -1px 0px #ccc inset; -} -.simplebox-title, .simplebox-content { - box-shadow: 0 1px 1px #ddd inset; - border: 1px solid #cccccc; - border-radius: 5px; - background: #fff; -} -.simplebox-title { - margin: 0 0 8px; - padding: 5px 8px; -} -.simplebox-content { - padding: 0 8px; -} -.simplebox-content::after { - content: ''; - display: block; - clear: both; -} -.simplebox.align-right { - float: right; -} -.simplebox.align-left { - float: left; -} -.simplebox.align-center { - margin-left: auto; - margin-right: auto; -} \ No newline at end of file diff --git a/admin/plugins/ckeditor/plugins/widget/dev/assets/simplebox/dialogs/simplebox.js b/admin/plugins/ckeditor/plugins/widget/dev/assets/simplebox/dialogs/simplebox.js deleted file mode 100644 index f0cdb4d..0000000 --- a/admin/plugins/ckeditor/plugins/widget/dev/assets/simplebox/dialogs/simplebox.js +++ /dev/null @@ -1,51 +0,0 @@ -// Note: This automatic widget to dialog window binding (the fact that every field is set up from the widget -// and is committed to the widget) is only possible when the dialog is opened by the Widgets System -// (i.e. the widgetDef.dialog property is set). -// When you are opening the dialog window by yourself, you need to take care of this by yourself too. - -CKEDITOR.dialog.add( 'simplebox', function( editor ) { - return { - title: 'Edit Simple Box', - minWidth: 200, - minHeight: 100, - contents: [ - { - id: 'info', - elements: [ - { - id: 'align', - type: 'select', - label: 'Align', - items: [ - [ editor.lang.common.notSet, '' ], - [ editor.lang.common.alignLeft, 'left' ], - [ editor.lang.common.alignRight, 'right' ], - [ editor.lang.common.alignCenter, 'center' ] - ], - // When setting up this field, set its value to the "align" value from widget data. - // Note: Align values used in the widget need to be the same as those defined in the "items" array above. - setup: function( widget ) { - this.setValue( widget.data.align ); - }, - // When committing (saving) this field, set its value to the widget data. - commit: function( widget ) { - widget.setData( 'align', this.getValue() ); - } - }, - { - id: 'width', - type: 'text', - label: 'Width', - width: '50px', - setup: function( widget ) { - this.setValue( widget.data.width ); - }, - commit: function( widget ) { - widget.setData( 'width', this.getValue() ); - } - } - ] - } - ] - }; -} ); \ No newline at end of file diff --git a/admin/plugins/ckeditor/plugins/widget/dev/assets/simplebox/icons/simplebox.png b/admin/plugins/ckeditor/plugins/widget/dev/assets/simplebox/icons/simplebox.png deleted file mode 100644 index 6a5e313..0000000 Binary files a/admin/plugins/ckeditor/plugins/widget/dev/assets/simplebox/icons/simplebox.png and /dev/null differ diff --git a/admin/plugins/ckeditor/plugins/widget/dev/assets/simplebox/plugin.js b/admin/plugins/ckeditor/plugins/widget/dev/assets/simplebox/plugin.js deleted file mode 100644 index 3e7c99c..0000000 --- a/admin/plugins/ckeditor/plugins/widget/dev/assets/simplebox/plugin.js +++ /dev/null @@ -1,114 +0,0 @@ -'use strict'; - -// Register the plugin within the editor. -CKEDITOR.plugins.add( 'simplebox', { - // This plugin requires the Widgets System defined in the 'widget' plugin. - requires: 'widget,dialog', - - // Register the icon used for the toolbar button. It must be the same - // as the name of the widget. - icons: 'simplebox', - - // The plugin initialization logic goes inside this method. - init: function( editor ) { - // Register the editing dialog. - CKEDITOR.dialog.add( 'simplebox', this.path + 'dialogs/simplebox.js' ); - - // Register the simplebox widget. - editor.widgets.add( 'simplebox', { - // Allow all HTML elements, classes, and styles that this widget requires. - // Read more about the Advanced Content Filter here: - // * http://docs.ckeditor.com/#!/guide/dev_advanced_content_filter - // * http://docs.ckeditor.com/#!/guide/plugin_sdk_integration_with_acf - allowedContent: - 'div(!simplebox,align-left,align-right,align-center){width};' + - 'div(!simplebox-content); h2(!simplebox-title)', - - // Minimum HTML which is required by this widget to work. - requiredContent: 'div(simplebox)', - - // Define two nested editable areas. - editables: { - title: { - // Define CSS selector used for finding the element inside widget element. - selector: '.simplebox-title', - // Define content allowed in this nested editable. Its content will be - // filtered accordingly and the toolbar will be adjusted when this editable - // is focused. - allowedContent: 'br strong em' - }, - content: { - selector: '.simplebox-content' - } - }, - - // Define the template of a new Simple Box widget. - // The template will be used when creating new instances of the Simple Box widget. - template: - '<div class="simplebox">' + - '<h2 class="simplebox-title">Title</h2>' + - '<div class="simplebox-content"><p>Content...</p></div>' + - '</div>', - - // Define the label for a widget toolbar button which will be automatically - // created by the Widgets System. This button will insert a new widget instance - // created from the template defined above, or will edit selected widget - // (see second part of this tutorial to learn about editing widgets). - // - // Note: In order to be able to translate your widget you should use the - // editor.lang.simplebox.* property. A string was used directly here to simplify this tutorial. - button: 'Create a simple box', - - // Set the widget dialog window name. This enables the automatic widget-dialog binding. - // This dialog window will be opened when creating a new widget or editing an existing one. - dialog: 'simplebox', - - // Check the elements that need to be converted to widgets. - // - // Note: The "element" argument is an instance of http://docs.ckeditor.com/#!/api/CKEDITOR.htmlParser.element - // so it is not a real DOM element yet. This is caused by the fact that upcasting is performed - // during data processing which is done on DOM represented by JavaScript objects. - upcast: function( element ) { - // Return "true" (that element needs to converted to a Simple Box widget) - // for all <div> elements with a "simplebox" class. - return element.name == 'div' && element.hasClass( 'simplebox' ); - }, - - // When a widget is being initialized, we need to read the data ("align" and "width") - // from DOM and set it by using the widget.setData() method. - // More code which needs to be executed when DOM is available may go here. - init: function() { - var width = this.element.getStyle( 'width' ); - if ( width ) - this.setData( 'width', width ); - - if ( this.element.hasClass( 'align-left' ) ) - this.setData( 'align', 'left' ); - if ( this.element.hasClass( 'align-right' ) ) - this.setData( 'align', 'right' ); - if ( this.element.hasClass( 'align-center' ) ) - this.setData( 'align', 'center' ); - }, - - // Listen on the widget#data event which is fired every time the widget data changes - // and updates the widget's view. - // Data may be changed by using the widget.setData() method, which we use in the - // Simple Box dialog window. - data: function() { - // Check whether "width" widget data is set and remove or set "width" CSS style. - // The style is set on widget main element (div.simplebox). - if ( !this.data.width ) - this.element.removeStyle( 'width' ); - else - this.element.setStyle( 'width', this.data.width ); - - // Brutally remove all align classes and set a new one if "align" widget data is set. - this.element.removeClass( 'align-left' ); - this.element.removeClass( 'align-right' ); - this.element.removeClass( 'align-center' ); - if ( this.data.align ) - this.element.addClass( 'align-' + this.data.align ); - } - } ); - } -} ); diff --git a/admin/plugins/ckeditor/plugins/widget/dev/console.js b/admin/plugins/ckeditor/plugins/widget/dev/console.js deleted file mode 100644 index 1404a2c..0000000 --- a/admin/plugins/ckeditor/plugins/widget/dev/console.js +++ /dev/null @@ -1,131 +0,0 @@ -/** - * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. - * For licensing, see LICENSE.md or http://ckeditor.com/license - */ - -/* global CKCONSOLE */ - -'use strict'; - -( function() { - - CKCONSOLE.add( 'widget', { - panels: [ - { - type: 'box', - content: '<ul class="ckconsole_list ckconsole_value" data-value="instances"></ul>', - - refresh: function( editor ) { - var instances = obj2Array( editor.widgets.instances ); - - return { - header: 'Instances (' + instances.length + ')', - instances: generateInstancesList( instances ) - }; - }, - - refreshOn: function( editor, refresh ) { - editor.widgets.on( 'instanceCreated', function( evt ) { - refresh(); - - evt.data.on( 'data', refresh ); - } ); - - editor.widgets.on( 'instanceDestroyed', refresh ); - } - }, - - { - type: 'box', - content: - '<ul class="ckconsole_list">' + - '<li>focused: <span class="ckconsole_value" data-value="focused"></span></li>' + - '<li>selected: <span class="ckconsole_value" data-value="selected"></span></li>' + - '</ul>', - - refresh: function( editor ) { - var focused = editor.widgets.focused, - selected = editor.widgets.selected, - selectedIds = []; - - for ( var i = 0; i < selected.length; ++i ) - selectedIds.push( selected[ i ].id ); - - return { - header: 'Focus &amp; selection', - focused: focused ? 'id: ' + focused.id : '-', - selected: selectedIds.length ? 'id: ' + selectedIds.join( ', id: ' ) : '-' - }; - }, - - refreshOn: function( editor, refresh ) { - editor.on( 'selectionCheck', refresh, null, null, 999 ); - } - }, - - { - type: 'log', - - on: function( editor, log, logFn ) { - // Add all listeners with high priorities to log - // messages in the correct order when one event depends on another. - // E.g. selectionChange triggers widget selection - if this listener - // for selectionChange will be executed later than that one, then order - // will be incorrect. - - editor.on( 'selectionChange', function( evt ) { - var msg = 'selection change', - sel = evt.data.selection, - el = sel.getSelectedElement(), - widget; - - if ( el && ( widget = editor.widgets.getByElement( el, true ) ) ) - msg += ' (id: ' + widget.id + ')'; - - log( msg ); - }, null, null, 1 ); - - editor.widgets.on( 'instanceDestroyed', function( evt ) { - log( 'instance destroyed (id: ' + evt.data.id + ')' ); - }, null, null, 1 ); - - editor.widgets.on( 'instanceCreated', function( evt ) { - log( 'instance created (id: ' + evt.data.id + ')' ); - }, null, null, 1 ); - - editor.widgets.on( 'widgetFocused', function( evt ) { - log( 'widget focused (id: ' + evt.data.widget.id + ')' ); - }, null, null, 1 ); - - editor.widgets.on( 'widgetBlurred', function( evt ) { - log( 'widget blurred (id: ' + evt.data.widget.id + ')' ); - }, null, null, 1 ); - - editor.widgets.on( 'checkWidgets', logFn( 'checking widgets' ), null, null, 1 ); - editor.widgets.on( 'checkSelection', logFn( 'checking selection' ), null, null, 1 ); - } - } - ] - } ); - - function generateInstancesList( instances ) { - var html = '', - instance; - - for ( var i = 0; i < instances.length; ++i ) { - instance = instances[ i ]; - html += itemTpl.output( { id: instance.id, name: instance.name, data: JSON.stringify( instance.data ) } ); - } - return html; - } - - function obj2Array( obj ) { - var arr = []; - for ( var id in obj ) - arr.push( obj[ id ] ); - - return arr; - } - - var itemTpl = new CKEDITOR.template( '<li>id: <code>{id}</code>, name: <code>{name}</code>, data: <code>{data}</code></li>' ); -} )(); diff --git a/admin/plugins/ckeditor/plugins/widget/dev/nestedwidgets.html b/admin/plugins/ckeditor/plugins/widget/dev/nestedwidgets.html deleted file mode 100644 index 0bc998b..0000000 --- a/admin/plugins/ckeditor/plugins/widget/dev/nestedwidgets.html +++ /dev/null @@ -1,134 +0,0 @@ -<!DOCTYPE html> -<!-- -Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved. -For licensing, see LICENSE.md or http://ckeditor.com/license ---> -<html> -<head> - <meta charset="utf-8"> - <title>Nested widgets &mdash; CKEditor Sample</title> - <script src="../../../ckeditor.js"></script> - <script src="../../../dev/console/console.js"></script> - <script src="../../../dev/console/focusconsole.js"></script> - <script src="console.js"></script> - <link rel="stylesheet" href="../../../samples/old/sample.css"> - <link rel="stylesheet" href="../../../contents.css"> - <link rel="stylesheet" href="assets/simplebox/contents.css"> -</head> -<body> - <h1 class="samples">Nested widgets</h1> - - <h2>Classic (iframe-based) Sample</h2> - <textarea cols="80" id="editor1" name="editor1" rows="10"> - <h1>Simple Box Sample</h1> - - <div class="simplebox align-right" style="width: 60%"> - <h2 class="simplebox-title">Title</h2> - <div class="simplebox-content"> - <p><strong>Apollo 11</strong> was the spaceflight that landed the first humans, Americans <a href="http://en.wikipedia.org/wiki/Neil_Armstrong" title="Neil Armstrong">Neil Armstrong</a> and <a href="http://en.wikipedia.org/wiki/Buzz_Aldrin" title="Buzz Aldrin">Buzz Aldrin</a>, on the Moon on [[July 20, 1969, at 20:18 UTC]]. Armstrong became the first to step onto the lunar surface 6 hours later on [[July 21 at 02:56 UTC]].</p> - - <figure class="image" style="float: right"> - <img alt="The Eagle" src="assets/sample.jpg" width="150" /> - <figcaption>The Eagle in lunar orbit</figcaption> - </figure> - - <ul> - <li>Foo!</li> - <li>Bar!</li> - </ul> - - <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Curabitur sit amet orci ut nisi adipiscing ultrices. Sed pellentesque iaculis malesuada. Pellentesque scelerisque, purus non porta dictum, neque urna bibendum dolor, eget tristique ipsum metus fringilla dolor. Nullam sed accumsan sapien. Vestibulum in placerat magna. Sed justo lacus, volutpat rhoncus odio luctus, ornare adipiscing mauris. Vivamus erat sem, egestas et lectus eget, varius cursus odio. Duis posuere lacus sit amet urna bibendum, id iaculis eros ultrices. Vestibulum a ultrices ante.</p> - </div> - </div> - - <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Curabitur sit amet orci ut nisi adipiscing ultrices. Sed pellentesque iaculis malesuada. Pellentesque scelerisque, purus non porta dictum, neque urna bibendum dolor, eget tristique ipsum metus fringilla dolor. Nullam sed accumsan sapien. Vestibulum in placerat magna. Sed justo lacus, volutpat rhoncus odio luctus, ornare adipiscing mauris. Vivamus erat sem, egestas et lectus eget, varius cursus odio. Duis posuere lacus sit amet urna bibendum, id iaculis eros ultrices. Vestibulum a ultrices ante.</p> - - <p>Pellentesque vitae eleifend nisl, non accumsan tellus. Maecenas nec libero non tellus tincidunt mollis porttitor sed arcu. Donec ultricies nulla vitae eros lacinia, vel congue sem auctor. Vivamus convallis, urna ac tincidunt malesuada, lectus erat convallis metus, a hendrerit massa augue accumsan magna. Nulla mattis tellus elit, nec congue magna scelerisque eget. Aliquam posuere nisi augue, posuere sodales nisi iaculis eu. Donec fermentum urna id nibh sagittis fermentum sit amet sed enim. Aliquam neque elit, pretium elementum nunc a, faucibus accumsan lorem. Etiam pulvinar odio et hendrerit tincidunt. Suspendisse tempus eros lacus, in convallis velit mollis ut. Aenean congue, justo eleifend ultricies malesuada, nunc nunc molestie mauris, eget placerat libero eros vel nisi. Quisque diam arcu, mollis ac laoreet vitae, varius et sem. Interdum et malesuada fames ac ante ipsum primis in faucibus. Duis in vehicula sapien. Nunc feugiat porta elit nec volutpat.</p> - - <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Curabitur sit amet orci ut nisi adipiscing ultrices. Sed pellentesque iaculis malesuada. Pellentesque scelerisque, purus non porta dictum, neque urna bibendum dolor, eget tristique ipsum metus fringilla dolor. Nullam sed accumsan sapien. Vestibulum in placerat magna. Sed justo lacus, volutpat rhoncus odio luctus, ornare adipiscing mauris. Vivamus erat sem, egestas et lectus eget, varius cursus odio. Duis posuere lacus sit amet urna bibendum, id iaculis eros ultrices. Vestibulum a ultrices ante.</p> - - <div class="simplebox align-center" style="width: 750px"> - <h2 class="simplebox-title">Title</h2> - <div class="simplebox-content"> - <p><img alt="The Eagle" src="assets/sample.jpg" width="150" style="float: left" /><strong>Apollo 11</strong> was the spaceflight that landed the first humans, Americans <a href="http://en.wikipedia.org/wiki/Neil_Armstrong" title="Neil Armstrong">Neil Armstrong</a> and <a href="http://en.wikipedia.org/wiki/Buzz_Aldrin" title="Buzz Aldrin">Buzz Aldrin</a>, on the Moon on [[July 20, 1969, at 20:18 UTC]]. Armstrong became the first to step onto the lunar surface 6 hours later on [[July 21 at 02:56 UTC]].</p> - - <ul> - <li>Foo!</li> - <li>Bar!</li> - </ul> - </div> - </div> - - <p>Ut eget ipsum a sapien porta ultrices. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Vivamus mi lacus, pharetra eu bibendum blandit, tristique sit amet leo. Integer eu nulla nec magna vulputate blandit. Praesent mattis quis ante eget adipiscing. Nulla vel tempus risus, in placerat velit. Mauris sed nibh at elit posuere laoreet. Morbi non sapien sed nunc fringilla imperdiet.</p> - </textarea> - - <h2>Inline Sample</h2> - <div id="editor2" contenteditable="true"> - <h1>Simple Box Sample</h1> - - <div class="simplebox align-right" style="width: 60%"> - <h2 class="simplebox-title">Title</h2> - <div class="simplebox-content"> - <p><strong>Apollo 11</strong> was the spaceflight that landed the first humans, Americans <a href="http://en.wikipedia.org/wiki/Neil_Armstrong" title="Neil Armstrong">Neil Armstrong</a> and <a href="http://en.wikipedia.org/wiki/Buzz_Aldrin" title="Buzz Aldrin">Buzz Aldrin</a>, on the Moon on [[July 20, 1969, at 20:18 UTC]]. Armstrong became the first to step onto the lunar surface 6 hours later on [[July 21 at 02:56 UTC]].</p> - - <figure class="image" style="float: right"> - <img alt="The Eagle" src="assets/sample.jpg" width="150" /> - <figcaption>The Eagle in lunar orbit</figcaption> - </figure> - - <ul> - <li>Foo!</li> - <li>Bar!</li> - </ul> - - <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Curabitur sit amet orci ut nisi adipiscing ultrices. Sed pellentesque iaculis malesuada. Pellentesque scelerisque, purus non porta dictum, neque urna bibendum dolor, eget tristique ipsum metus fringilla dolor. Nullam sed accumsan sapien. Vestibulum in placerat magna. Sed justo lacus, volutpat rhoncus odio luctus, ornare adipiscing mauris. Vivamus erat sem, egestas et lectus eget, varius cursus odio. Duis posuere lacus sit amet urna bibendum, id iaculis eros ultrices. Vestibulum a ultrices ante.</p> - </div> - </div> - - <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Curabitur sit amet orci ut nisi adipiscing ultrices. Sed pellentesque iaculis malesuada. Pellentesque scelerisque, purus non porta dictum, neque urna bibendum dolor, eget tristique ipsum metus fringilla dolor. Nullam sed accumsan sapien. Vestibulum in placerat magna. Sed justo lacus, volutpat rhoncus odio luctus, ornare adipiscing mauris. Vivamus erat sem, egestas et lectus eget, varius cursus odio. Duis posuere lacus sit amet urna bibendum, id iaculis eros ultrices. Vestibulum a ultrices ante.</p> - - <p>Pellentesque vitae eleifend nisl, non accumsan tellus. Maecenas nec libero non tellus tincidunt mollis porttitor sed arcu. Donec ultricies nulla vitae eros lacinia, vel congue sem auctor. Vivamus convallis, urna ac tincidunt malesuada, lectus erat convallis metus, a hendrerit massa augue accumsan magna. Nulla mattis tellus elit, nec congue magna scelerisque eget. Aliquam posuere nisi augue, posuere sodales nisi iaculis eu. Donec fermentum urna id nibh sagittis fermentum sit amet sed enim. Aliquam neque elit, pretium elementum nunc a, faucibus accumsan lorem. Etiam pulvinar odio et hendrerit tincidunt. Suspendisse tempus eros lacus, in convallis velit mollis ut. Aenean congue, justo eleifend ultricies malesuada, nunc nunc molestie mauris, eget placerat libero eros vel nisi. Quisque diam arcu, mollis ac laoreet vitae, varius et sem. Interdum et malesuada fames ac ante ipsum primis in faucibus. Duis in vehicula sapien. Nunc feugiat porta elit nec volutpat.</p> - - <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Curabitur sit amet orci ut nisi adipiscing ultrices. Sed pellentesque iaculis malesuada. Pellentesque scelerisque, purus non porta dictum, neque urna bibendum dolor, eget tristique ipsum metus fringilla dolor. Nullam sed accumsan sapien. Vestibulum in placerat magna. Sed justo lacus, volutpat rhoncus odio luctus, ornare adipiscing mauris. Vivamus erat sem, egestas et lectus eget, varius cursus odio. Duis posuere lacus sit amet urna bibendum, id iaculis eros ultrices. Vestibulum a ultrices ante.</p> - - <div class="simplebox align-center" style="width: 750px"> - <h2 class="simplebox-title">Title</h2> - <div class="simplebox-content"> - <p><img alt="The Eagle" src="assets/sample.jpg" width="150" style="float: left" /><strong>Apollo 11</strong> was the spaceflight that landed the first humans, Americans <a href="http://en.wikipedia.org/wiki/Neil_Armstrong" title="Neil Armstrong">Neil Armstrong</a> and <a href="http://en.wikipedia.org/wiki/Buzz_Aldrin" title="Buzz Aldrin">Buzz Aldrin</a>, on the Moon on [[July 20, 1969, at 20:18 UTC]]. Armstrong became the first to step onto the lunar surface 6 hours later on [[July 21 at 02:56 UTC]].</p> - - <ul> - <li>Foo!</li> - <li>Bar!</li> - </ul> - </div> - </div> - - <p>Ut eget ipsum a sapien porta ultrices. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Vivamus mi lacus, pharetra eu bibendum blandit, tristique sit amet leo. Integer eu nulla nec magna vulputate blandit. Praesent mattis quis ante eget adipiscing. Nulla vel tempus risus, in placerat velit. Mauris sed nibh at elit posuere laoreet. Morbi non sapien sed nunc fringilla imperdiet.</p> - </div> - - <script> - if ( CKEDITOR.env.ie && CKEDITOR.env.version < 9 ) - CKEDITOR.tools.enableHtml5Elements( document ); - - CKEDITOR.plugins.addExternal( 'simplebox', 'plugins/widget/dev/assets/simplebox/' ); - - CKEDITOR.replace( 'editor1', { - extraPlugins: 'simplebox,placeholder,image2', - removePlugins: 'forms,bidi', - contentsCss: [ '../../../contents.css', 'assets/simplebox/contents.css' ], - height: 500 - } ); - - CKEDITOR.inline( 'editor2', { - extraPlugins: 'simplebox,placeholder,image2', - removePlugins: 'forms,bidi' - } ); - - CKCONSOLE.create( 'widget', { editor: 'editor1' } ); - CKCONSOLE.create( 'focus', { editor: 'editor1' } ); - CKCONSOLE.create( 'widget', { editor: 'editor2', folded: true } ); - CKCONSOLE.create( 'focus', { editor: 'editor2', folded: true } ); - - </script> -</body> -</html> diff --git a/admin/plugins/ckeditor/plugins/widget/dev/widgetstyles.html b/admin/plugins/ckeditor/plugins/widget/dev/widgetstyles.html deleted file mode 100644 index da58e44..0000000 --- a/admin/plugins/ckeditor/plugins/widget/dev/widgetstyles.html +++ /dev/null @@ -1,144 +0,0 @@ -<!DOCTYPE html> -<!-- -Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved. -For licensing, see LICENSE.md or http://ckeditor.com/license ---> -<html> -<head> - <meta charset="utf-8"> - <title>Applying styles to widgets &mdash; CKEditor Sample</title> - <script src="../../../ckeditor.js"></script> - <link rel="stylesheet" href="../../../samples/old/sample.css"> - <link rel="stylesheet" href="../../../contents.css"> - <link rel="stylesheet" href="assets/contents.css"> -</head> -<body> - <h1 class="samples">Applying styles to widgets</h1> - - <h2>Classic (iframe-based) Sample</h2> - <textarea cols="80" id="editor1" name="editor1" rows="10"> - <h1>Apollo 11</h1> - - <figure class="image" style="float: right"> - <img alt="Saturn V" src="../../../samples/assets/sample.jpg" width="150" /> - <figcaption>Roll out of Saturn V on launch pad</figcaption> - </figure> - - <p><strong>Apollo 11</strong> was the spaceflight that landed the first humans, Americans <a href="http://en.wikipedia.org/wiki/Neil_Armstrong" title="Neil Armstrong">Neil Armstrong</a> and <a href="http://en.wikipedia.org/wiki/Buzz_Aldrin" title="Buzz Aldrin">Buzz Aldrin</a>, on the Moon on [[July 20, 1969, at 20:18 UTC]]. Armstrong became the first to step onto the lunar surface 6 hours later on [[July 21 at 02:56 UTC]].</p> - - <p>Armstrong spent about <s>three and a half</s> two and a half hours outside the spacecraft, Aldrin slightly less; and together they collected 47.5 pounds (21.5&nbsp;kg) of lunar material for return to Earth. A third member of the mission, <a href="http://en.wikipedia.org/wiki/Michael_Collins_(astronaut)" title="Michael Collins (astronaut)">Michael Collins</a>, piloted the <a href="http://en.wikipedia.org/wiki/Apollo_Command/Service_Module" title="Apollo Command/Service Module">command</a> spacecraft alone in lunar orbit until Armstrong and Aldrin returned to it for the trip back to Earth.</p> - - <h2>Broadcasting and <em>quotes</em> <a id="quotes" name="quotes"></a></h2> - - <p>Broadcast on live TV to a world-wide audience, Armstrong stepped onto the lunar surface and described the event as:</p> - - <blockquote> - <p>One small step for [a] man, one giant leap for mankind.</p> - </blockquote> - - <p><span class="math-tex">\( \left( \sum_{k=1}^n a_k b_k \right)^2 \leq \left( \sum_{k=1}^n a_k^2 \right) \left( \sum_{k=1}^n b_k^2 \right) \)</span></p> - - <p>Apollo 11 effectively ended the <a href="http://en.wikipedia.org/wiki/Space_Race" title="Space Race">Space Race</a> and fulfilled a national goal proposed in 1961 by the late U.S. President <a href="http://en.wikipedia.org/wiki/John_F._Kennedy" title="John F. Kennedy">John F. Kennedy</a> in a speech before the United States Congress:</p> - - <blockquote> - <p>[...] before this decade is out, of landing a man on the Moon and returning him safely to the Earth.</p> - </blockquote> - - <figure class="image" style="float: right"> - <img alt="The Eagle" src="../../../samples/assets/sample.jpg" width="150" /> - <figcaption>The Eagle in lunar orbit</figcaption> - </figure> - - <h2>Technical details <a id="tech-details" name="tech-details"></a></h2> - - <p>Launched by a <strong>Saturn V</strong> rocket from <a href="http://en.wikipedia.org/wiki/Kennedy_Space_Center" title="Kennedy Space Center">Kennedy Space Center</a> in Merritt Island, Florida on July 16, Apollo 11 was the fifth manned mission of <a href="http://en.wikipedia.org/wiki/NASA" title="NASA">NASA</a>&#39;s Apollo program. The Apollo spacecraft had three parts:</p> - - <ol> - <li><strong>Command Module</strong> with a cabin for the three astronauts which was the only part which landed back on Earth</li> - <li><strong>Service Module</strong> which supported the Command Module with propulsion, electrical power, oxygen and water</li> - <li><strong>Lunar Module</strong> for landing on the Moon.</li> - </ol> - - <p>After being sent to the Moon by the Saturn V&#39;s upper stage, the astronauts separated the spacecraft from it and travelled for three days until they entered into lunar orbit. Armstrong and Aldrin then moved into the Lunar Module and landed in the <a href="http://en.wikipedia.org/wiki/Mare_Tranquillitatis" title="Mare Tranquillitatis">Sea of Tranquility</a>. They stayed a total of about 21 and a half hours on the lunar surface. After lifting off in the upper part of the Lunar Module and rejoining Collins in the Command Module, they returned to Earth and landed in the <a href="http://en.wikipedia.org/wiki/Pacific_Ocean" title="Pacific Ocean">Pacific Ocean</a> on July 24.</p> - </textarea> - - <h2>Inline Sample</h2> - <div id="editor2" contenteditable="true"> - <h1>Apollo 11</h1> - - <figure class="image" style="float: right"> - <img alt="Saturn V" src="../../../samples/assets/sample.jpg" width="150" /> - <figcaption>Roll out of Saturn V on launch pad</figcaption> - </figure> - - <p><strong>Apollo 11</strong> was the spaceflight that landed the first humans, Americans <a href="http://en.wikipedia.org/wiki/Neil_Armstrong" title="Neil Armstrong">Neil Armstrong</a> and <a href="http://en.wikipedia.org/wiki/Buzz_Aldrin" title="Buzz Aldrin">Buzz Aldrin</a>, on the Moon on [[July 20, 1969, at 20:18 UTC]]. Armstrong became the first to step onto the lunar surface 6 hours later on [[July 21 at 02:56 UTC]].</p> - - <p>Armstrong spent about <s>three and a half</s> two and a half hours outside the spacecraft, Aldrin slightly less; and together they collected 47.5 pounds (21.5&nbsp;kg) of lunar material for return to Earth. A third member of the mission, <a href="http://en.wikipedia.org/wiki/Michael_Collins_(astronaut)" title="Michael Collins (astronaut)">Michael Collins</a>, piloted the <a href="http://en.wikipedia.org/wiki/Apollo_Command/Service_Module" title="Apollo Command/Service Module">command</a> spacecraft alone in lunar orbit until Armstrong and Aldrin returned to it for the trip back to Earth.</p> - - <h2>Broadcasting and <em>quotes</em> <a id="quotes" name="quotes"></a></h2> - - <p>Broadcast on live TV to a world-wide audience, Armstrong stepped onto the lunar surface and described the event as:</p> - - <blockquote> - <p>One small step for [a] man, one giant leap for mankind.</p> - </blockquote> - - <p><span class="math-tex">\( \left( \sum_{k=1}^n a_k b_k \right)^2 \leq \left( \sum_{k=1}^n a_k^2 \right) \left( \sum_{k=1}^n b_k^2 \right) \)</span></p> - - <p>Apollo 11 effectively ended the <a href="http://en.wikipedia.org/wiki/Space_Race" title="Space Race">Space Race</a> and fulfilled a national goal proposed in 1961 by the late U.S. President <a href="http://en.wikipedia.org/wiki/John_F._Kennedy" title="John F. Kennedy">John F. Kennedy</a> in a speech before the United States Congress:</p> - - <blockquote> - <p>[...] before this decade is out, of landing a man on the Moon and returning him safely to the Earth.</p> - </blockquote> - - <figure class="image" style="float: right"> - <img alt="The Eagle" src="../../../samples/assets/sample.jpg" width="150" /> - <figcaption>The Eagle in lunar orbit</figcaption> - </figure> - - <h2>Technical details <a id="tech-details" name="tech-details"></a></h2> - - <p>Launched by a <strong>Saturn V</strong> rocket from <a href="http://en.wikipedia.org/wiki/Kennedy_Space_Center" title="Kennedy Space Center">Kennedy Space Center</a> in Merritt Island, Florida on July 16, Apollo 11 was the fifth manned mission of <a href="http://en.wikipedia.org/wiki/NASA" title="NASA">NASA</a>&#39;s Apollo program. The Apollo spacecraft had three parts:</p> - - <ol> - <li><strong>Command Module</strong> with a cabin for the three astronauts which was the only part which landed back on Earth</li> - <li><strong>Service Module</strong> which supported the Command Module with propulsion, electrical power, oxygen and water</li> - <li><strong>Lunar Module</strong> for landing on the Moon.</li> - </ol> - - <p>After being sent to the Moon by the Saturn V&#39;s upper stage, the astronauts separated the spacecraft from it and travelled for three days until they entered into lunar orbit. Armstrong and Aldrin then moved into the Lunar Module and landed in the <a href="http://en.wikipedia.org/wiki/Mare_Tranquillitatis" title="Mare Tranquillitatis">Sea of Tranquility</a>. They stayed a total of about 21 and a half hours on the lunar surface. After lifting off in the upper part of the Lunar Module and rejoining Collins in the Command Module, they returned to Earth and landed in the <a href="http://en.wikipedia.org/wiki/Pacific_Ocean" title="Pacific Ocean">Pacific Ocean</a> on July 24.</p> - </div> - - <script> - if ( CKEDITOR.env.ie && CKEDITOR.env.version < 9 ) - CKEDITOR.tools.enableHtml5Elements( document ); - - CKEDITOR.disableAutoInline = true; - - var stylesSet = [ - { name: 'Medium border', type: 'widget', widget: 'image', attributes: { 'class': 'mediumBorder' } }, - { name: 'Thick border', type: 'widget', widget: 'image', attributes: { 'class': 'thickBorder' } }, - { name: 'So important', type: 'widget', widget: 'image', attributes: { 'class': 'important soMuch' } }, - - { name: 'Red marker', type: 'widget', widget: 'placeholder', attributes: { 'class': 'redMarker' } }, - { name: 'Invisible Placeholder', type: 'widget', widget: 'placeholder', attributes: { 'class': 'invisible' } }, - - { name: 'Invisible Mathjax', type: 'widget', widget: 'mathjax', attributes: { 'class': 'invisible' } } - ]; - - CKEDITOR.replace( 'editor1', { - extraPlugins: 'placeholder,image2,mathjax', - contentsCss: [ '../../../contents.css', 'assets/contents.css' ], - stylesSet: stylesSet, - height: 300 - } ); - - CKEDITOR.inline( 'editor2', { - extraPlugins: 'placeholder,image2,mathjax', - stylesSet: stylesSet, - height: 300 - } ); - - </script> -</body> -</html> diff --git a/admin/plugins/ckeditor/plugins/widget/images/handle.png b/admin/plugins/ckeditor/plugins/widget/images/handle.png deleted file mode 100644 index ba8cda5..0000000 Binary files a/admin/plugins/ckeditor/plugins/widget/images/handle.png and /dev/null differ diff --git a/admin/plugins/ckeditor/plugins/widget/lang/af.js b/admin/plugins/ckeditor/plugins/widget/lang/af.js deleted file mode 100644 index c05e1b1..0000000 --- a/admin/plugins/ckeditor/plugins/widget/lang/af.js +++ /dev/null @@ -1,8 +0,0 @@ -/** - * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. - * For licensing, see LICENSE.md or http://ckeditor.com/license - */ -CKEDITOR.plugins.setLang( 'widget', 'af', { - 'move': 'Klik en trek on te beweeg', - 'label': '%1 widget' // MISSING -} ); diff --git a/admin/plugins/ckeditor/plugins/widget/lang/ar.js b/admin/plugins/ckeditor/plugins/widget/lang/ar.js deleted file mode 100644 index f53676a..0000000 --- a/admin/plugins/ckeditor/plugins/widget/lang/ar.js +++ /dev/null @@ -1,8 +0,0 @@ -/** - * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. - * For licensing, see LICENSE.md or http://ckeditor.com/license - */ -CKEDITOR.plugins.setLang( 'widget', 'ar', { - 'move': 'إضغط و إسحب للتحريك', - 'label': '%1 widget' // MISSING -} ); diff --git a/admin/plugins/ckeditor/plugins/widget/lang/az.js b/admin/plugins/ckeditor/plugins/widget/lang/az.js deleted file mode 100644 index ed7d2e5..0000000 --- a/admin/plugins/ckeditor/plugins/widget/lang/az.js +++ /dev/null @@ -1,8 +0,0 @@ -/** - * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. - * For licensing, see LICENSE.md or http://ckeditor.com/license - */ -CKEDITOR.plugins.setLang( 'widget', 'az', { - 'move': 'Tıklayın və aparın', - 'label': '%1 vidjet' -} ); diff --git a/admin/plugins/ckeditor/plugins/widget/lang/bg.js b/admin/plugins/ckeditor/plugins/widget/lang/bg.js deleted file mode 100644 index 8b1ad01..0000000 --- a/admin/plugins/ckeditor/plugins/widget/lang/bg.js +++ /dev/null @@ -1,8 +0,0 @@ -/** - * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. - * For licensing, see LICENSE.md or http://ckeditor.com/license - */ -CKEDITOR.plugins.setLang( 'widget', 'bg', { - 'move': 'Кликни и влачи, за да преместиш', - 'label': '%1 widget' // MISSING -} ); diff --git a/admin/plugins/ckeditor/plugins/widget/lang/ca.js b/admin/plugins/ckeditor/plugins/widget/lang/ca.js deleted file mode 100644 index 7572f0e..0000000 --- a/admin/plugins/ckeditor/plugins/widget/lang/ca.js +++ /dev/null @@ -1,8 +0,0 @@ -/** - * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. - * For licensing, see LICENSE.md or http://ckeditor.com/license - */ -CKEDITOR.plugins.setLang( 'widget', 'ca', { - 'move': 'Clicar i arrossegar per moure', - 'label': '%1 widget' -} ); diff --git a/admin/plugins/ckeditor/plugins/widget/lang/cs.js b/admin/plugins/ckeditor/plugins/widget/lang/cs.js deleted file mode 100644 index ba16149..0000000 --- a/admin/plugins/ckeditor/plugins/widget/lang/cs.js +++ /dev/null @@ -1,8 +0,0 @@ -/** - * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. - * For licensing, see LICENSE.md or http://ckeditor.com/license - */ -CKEDITOR.plugins.setLang( 'widget', 'cs', { - 'move': 'Klepněte a táhněte pro přesunutí', - 'label': 'Ovládací prvek %1' -} ); diff --git a/admin/plugins/ckeditor/plugins/widget/lang/cy.js b/admin/plugins/ckeditor/plugins/widget/lang/cy.js deleted file mode 100644 index 9bbc89a..0000000 --- a/admin/plugins/ckeditor/plugins/widget/lang/cy.js +++ /dev/null @@ -1,8 +0,0 @@ -/** - * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. - * For licensing, see LICENSE.md or http://ckeditor.com/license - */ -CKEDITOR.plugins.setLang( 'widget', 'cy', { - 'move': 'Clcio a llusgo i symud', - 'label': '%1 widget' // MISSING -} ); diff --git a/admin/plugins/ckeditor/plugins/widget/lang/da.js b/admin/plugins/ckeditor/plugins/widget/lang/da.js deleted file mode 100644 index a6a1bb7..0000000 --- a/admin/plugins/ckeditor/plugins/widget/lang/da.js +++ /dev/null @@ -1,8 +0,0 @@ -/** - * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. - * For licensing, see LICENSE.md or http://ckeditor.com/license - */ -CKEDITOR.plugins.setLang( 'widget', 'da', { - 'move': 'Klik og træk for at flytte', - 'label': '%1 widget' // MISSING -} ); diff --git a/admin/plugins/ckeditor/plugins/widget/lang/de-ch.js b/admin/plugins/ckeditor/plugins/widget/lang/de-ch.js deleted file mode 100644 index d409bb6..0000000 --- a/admin/plugins/ckeditor/plugins/widget/lang/de-ch.js +++ /dev/null @@ -1,8 +0,0 @@ -/** - * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. - * For licensing, see LICENSE.md or http://ckeditor.com/license - */ -CKEDITOR.plugins.setLang( 'widget', 'de-ch', { - 'move': 'Zum Verschieben anwählen und ziehen', - 'label': '%1 widget' // MISSING -} ); diff --git a/admin/plugins/ckeditor/plugins/widget/lang/de.js b/admin/plugins/ckeditor/plugins/widget/lang/de.js deleted file mode 100644 index eb05fb8..0000000 --- a/admin/plugins/ckeditor/plugins/widget/lang/de.js +++ /dev/null @@ -1,8 +0,0 @@ -/** - * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. - * For licensing, see LICENSE.md or http://ckeditor.com/license - */ -CKEDITOR.plugins.setLang( 'widget', 'de', { - 'move': 'Zum Verschieben anwählen und ziehen', - 'label': '%1 Steuerelement' -} ); diff --git a/admin/plugins/ckeditor/plugins/widget/lang/el.js b/admin/plugins/ckeditor/plugins/widget/lang/el.js deleted file mode 100644 index 4ea9504..0000000 --- a/admin/plugins/ckeditor/plugins/widget/lang/el.js +++ /dev/null @@ -1,8 +0,0 @@ -/** - * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. - * For licensing, see LICENSE.md or http://ckeditor.com/license - */ -CKEDITOR.plugins.setLang( 'widget', 'el', { - 'move': 'Κάνετε κλικ και σύρετε το ποντίκι για να μετακινήστε', - 'label': '%1 widget' // MISSING -} ); diff --git a/admin/plugins/ckeditor/plugins/widget/lang/en-gb.js b/admin/plugins/ckeditor/plugins/widget/lang/en-gb.js deleted file mode 100644 index ad1a209..0000000 --- a/admin/plugins/ckeditor/plugins/widget/lang/en-gb.js +++ /dev/null @@ -1,8 +0,0 @@ -/** - * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. - * For licensing, see LICENSE.md or http://ckeditor.com/license - */ -CKEDITOR.plugins.setLang( 'widget', 'en-gb', { - 'move': 'Click and drag to move', - 'label': '%1 widget' // MISSING -} ); diff --git a/admin/plugins/ckeditor/plugins/widget/lang/en.js b/admin/plugins/ckeditor/plugins/widget/lang/en.js deleted file mode 100644 index d2a43cb..0000000 --- a/admin/plugins/ckeditor/plugins/widget/lang/en.js +++ /dev/null @@ -1,8 +0,0 @@ -/** - * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. - * For licensing, see LICENSE.md or http://ckeditor.com/license - */ -CKEDITOR.plugins.setLang( 'widget', 'en', { - 'move': 'Click and drag to move', - 'label': '%1 widget' -} ); diff --git a/admin/plugins/ckeditor/plugins/widget/lang/eo.js b/admin/plugins/ckeditor/plugins/widget/lang/eo.js deleted file mode 100644 index 5801514..0000000 --- a/admin/plugins/ckeditor/plugins/widget/lang/eo.js +++ /dev/null @@ -1,8 +0,0 @@ -/** - * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. - * For licensing, see LICENSE.md or http://ckeditor.com/license - */ -CKEDITOR.plugins.setLang( 'widget', 'eo', { - 'move': 'klaki kaj treni por movi', - 'label': '%1 fenestraĵo' -} ); diff --git a/admin/plugins/ckeditor/plugins/widget/lang/es-mx.js b/admin/plugins/ckeditor/plugins/widget/lang/es-mx.js deleted file mode 100644 index 028901d..0000000 --- a/admin/plugins/ckeditor/plugins/widget/lang/es-mx.js +++ /dev/null @@ -1,8 +0,0 @@ -/** - * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. - * For licensing, see LICENSE.md or http://ckeditor.com/license - */ -CKEDITOR.plugins.setLang( 'widget', 'es-mx', { - 'move': 'Presiona y arrastra para mover', - 'label': '%1 widget' -} ); diff --git a/admin/plugins/ckeditor/plugins/widget/lang/es.js b/admin/plugins/ckeditor/plugins/widget/lang/es.js deleted file mode 100644 index 89d1639..0000000 --- a/admin/plugins/ckeditor/plugins/widget/lang/es.js +++ /dev/null @@ -1,8 +0,0 @@ -/** - * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. - * For licensing, see LICENSE.md or http://ckeditor.com/license - */ -CKEDITOR.plugins.setLang( 'widget', 'es', { - 'move': 'Dar clic y arrastrar para mover', - 'label': 'reproductor %1' -} ); diff --git a/admin/plugins/ckeditor/plugins/widget/lang/eu.js b/admin/plugins/ckeditor/plugins/widget/lang/eu.js deleted file mode 100644 index 5a3d126..0000000 --- a/admin/plugins/ckeditor/plugins/widget/lang/eu.js +++ /dev/null @@ -1,8 +0,0 @@ -/** - * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. - * For licensing, see LICENSE.md or http://ckeditor.com/license - */ -CKEDITOR.plugins.setLang( 'widget', 'eu', { - 'move': 'Klikatu eta arrastatu lekuz aldatzeko', - 'label': '%1 widget' -} ); diff --git a/admin/plugins/ckeditor/plugins/widget/lang/fa.js b/admin/plugins/ckeditor/plugins/widget/lang/fa.js deleted file mode 100644 index 16c27bf..0000000 --- a/admin/plugins/ckeditor/plugins/widget/lang/fa.js +++ /dev/null @@ -1,8 +0,0 @@ -/** - * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. - * For licensing, see LICENSE.md or http://ckeditor.com/license - */ -CKEDITOR.plugins.setLang( 'widget', 'fa', { - 'move': 'کلیک و کشیدن برای جابجایی', - 'label': '%1 widget' // MISSING -} ); diff --git a/admin/plugins/ckeditor/plugins/widget/lang/fi.js b/admin/plugins/ckeditor/plugins/widget/lang/fi.js deleted file mode 100644 index a4d6e2f..0000000 --- a/admin/plugins/ckeditor/plugins/widget/lang/fi.js +++ /dev/null @@ -1,8 +0,0 @@ -/** - * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. - * For licensing, see LICENSE.md or http://ckeditor.com/license - */ -CKEDITOR.plugins.setLang( 'widget', 'fi', { - 'move': 'Siirrä klikkaamalla ja raahaamalla', - 'label': '%1 widget' // MISSING -} ); diff --git a/admin/plugins/ckeditor/plugins/widget/lang/fr.js b/admin/plugins/ckeditor/plugins/widget/lang/fr.js deleted file mode 100644 index f7f87e8..0000000 --- a/admin/plugins/ckeditor/plugins/widget/lang/fr.js +++ /dev/null @@ -1,8 +0,0 @@ -/** - * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. - * For licensing, see LICENSE.md or http://ckeditor.com/license - */ -CKEDITOR.plugins.setLang( 'widget', 'fr', { - 'move': 'Cliquer et glisser pour déplacer', - 'label': 'Élément %1' -} ); diff --git a/admin/plugins/ckeditor/plugins/widget/lang/gl.js b/admin/plugins/ckeditor/plugins/widget/lang/gl.js deleted file mode 100644 index a480371..0000000 --- a/admin/plugins/ckeditor/plugins/widget/lang/gl.js +++ /dev/null @@ -1,8 +0,0 @@ -/** - * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. - * For licensing, see LICENSE.md or http://ckeditor.com/license - */ -CKEDITOR.plugins.setLang( 'widget', 'gl', { - 'move': 'Prema e arrastre para mover', - 'label': 'Trebello %1' -} ); diff --git a/admin/plugins/ckeditor/plugins/widget/lang/he.js b/admin/plugins/ckeditor/plugins/widget/lang/he.js deleted file mode 100644 index 08da4df..0000000 --- a/admin/plugins/ckeditor/plugins/widget/lang/he.js +++ /dev/null @@ -1,8 +0,0 @@ -/** - * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. - * For licensing, see LICENSE.md or http://ckeditor.com/license - */ -CKEDITOR.plugins.setLang( 'widget', 'he', { - 'move': 'לחץ וגרור להזזה', - 'label': '%1 widget' // MISSING -} ); diff --git a/admin/plugins/ckeditor/plugins/widget/lang/hr.js b/admin/plugins/ckeditor/plugins/widget/lang/hr.js deleted file mode 100644 index c0b8b31..0000000 --- a/admin/plugins/ckeditor/plugins/widget/lang/hr.js +++ /dev/null @@ -1,8 +0,0 @@ -/** - * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. - * For licensing, see LICENSE.md or http://ckeditor.com/license - */ -CKEDITOR.plugins.setLang( 'widget', 'hr', { - 'move': 'Klikni i povuci za pomicanje', - 'label': '%1 widget' -} ); diff --git a/admin/plugins/ckeditor/plugins/widget/lang/hu.js b/admin/plugins/ckeditor/plugins/widget/lang/hu.js deleted file mode 100644 index 597e11d..0000000 --- a/admin/plugins/ckeditor/plugins/widget/lang/hu.js +++ /dev/null @@ -1,8 +0,0 @@ -/** - * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. - * For licensing, see LICENSE.md or http://ckeditor.com/license - */ -CKEDITOR.plugins.setLang( 'widget', 'hu', { - 'move': 'Kattints és húzd a mozgatáshoz', - 'label': '%1 modul' -} ); diff --git a/admin/plugins/ckeditor/plugins/widget/lang/id.js b/admin/plugins/ckeditor/plugins/widget/lang/id.js deleted file mode 100644 index b1cf39b..0000000 --- a/admin/plugins/ckeditor/plugins/widget/lang/id.js +++ /dev/null @@ -1,8 +0,0 @@ -/** - * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. - * For licensing, see LICENSE.md or http://ckeditor.com/license - */ -CKEDITOR.plugins.setLang( 'widget', 'id', { - 'move': 'Tekan dan geser untuk memindahkan', - 'label': '%1 widget' // MISSING -} ); diff --git a/admin/plugins/ckeditor/plugins/widget/lang/it.js b/admin/plugins/ckeditor/plugins/widget/lang/it.js deleted file mode 100644 index 707481f..0000000 --- a/admin/plugins/ckeditor/plugins/widget/lang/it.js +++ /dev/null @@ -1,8 +0,0 @@ -/** - * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. - * For licensing, see LICENSE.md or http://ckeditor.com/license - */ -CKEDITOR.plugins.setLang( 'widget', 'it', { - 'move': 'Fare clic e trascinare per spostare', - 'label': 'Widget %1' -} ); diff --git a/admin/plugins/ckeditor/plugins/widget/lang/ja.js b/admin/plugins/ckeditor/plugins/widget/lang/ja.js deleted file mode 100644 index 7c329d0..0000000 --- a/admin/plugins/ckeditor/plugins/widget/lang/ja.js +++ /dev/null @@ -1,8 +0,0 @@ -/** - * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. - * For licensing, see LICENSE.md or http://ckeditor.com/license - */ -CKEDITOR.plugins.setLang( 'widget', 'ja', { - 'move': 'ドラッグして移動', - 'label': '%1 ウィジェット' -} ); diff --git a/admin/plugins/ckeditor/plugins/widget/lang/km.js b/admin/plugins/ckeditor/plugins/widget/lang/km.js deleted file mode 100644 index 08ec7aa..0000000 --- a/admin/plugins/ckeditor/plugins/widget/lang/km.js +++ /dev/null @@ -1,8 +0,0 @@ -/** - * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. - * For licensing, see LICENSE.md or http://ckeditor.com/license - */ -CKEDITOR.plugins.setLang( 'widget', 'km', { - 'move': 'ចុច​ហើយ​ទាញ​ដើម្បី​ផ្លាស់​ទី', - 'label': '%1 widget' // MISSING -} ); diff --git a/admin/plugins/ckeditor/plugins/widget/lang/ko.js b/admin/plugins/ckeditor/plugins/widget/lang/ko.js deleted file mode 100644 index 8c62287..0000000 --- a/admin/plugins/ckeditor/plugins/widget/lang/ko.js +++ /dev/null @@ -1,8 +0,0 @@ -/** - * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. - * For licensing, see LICENSE.md or http://ckeditor.com/license - */ -CKEDITOR.plugins.setLang( 'widget', 'ko', { - 'move': '움직이려면 클릭 후 드래그 하세요', - 'label': '%1 위젯' -} ); diff --git a/admin/plugins/ckeditor/plugins/widget/lang/ku.js b/admin/plugins/ckeditor/plugins/widget/lang/ku.js deleted file mode 100644 index 2ff829b..0000000 --- a/admin/plugins/ckeditor/plugins/widget/lang/ku.js +++ /dev/null @@ -1,8 +0,0 @@ -/** - * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. - * For licensing, see LICENSE.md or http://ckeditor.com/license - */ -CKEDITOR.plugins.setLang( 'widget', 'ku', { - 'move': 'کرتەبکە و ڕایبکێشە بۆ جوڵاندن', - 'label': '%1 ویجێت' -} ); diff --git a/admin/plugins/ckeditor/plugins/widget/lang/lv.js b/admin/plugins/ckeditor/plugins/widget/lang/lv.js deleted file mode 100644 index de6167b..0000000 --- a/admin/plugins/ckeditor/plugins/widget/lang/lv.js +++ /dev/null @@ -1,8 +0,0 @@ -/** - * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. - * For licensing, see LICENSE.md or http://ckeditor.com/license - */ -CKEDITOR.plugins.setLang( 'widget', 'lv', { - 'move': 'Klikšķina un velc, lai pārvietotu', - 'label': '%1 widget' // MISSING -} ); diff --git a/admin/plugins/ckeditor/plugins/widget/lang/nb.js b/admin/plugins/ckeditor/plugins/widget/lang/nb.js deleted file mode 100644 index dfba027..0000000 --- a/admin/plugins/ckeditor/plugins/widget/lang/nb.js +++ /dev/null @@ -1,8 +0,0 @@ -/** - * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. - * For licensing, see LICENSE.md or http://ckeditor.com/license - */ -CKEDITOR.plugins.setLang( 'widget', 'nb', { - 'move': 'Klikk og dra for å flytte', - 'label': 'Widget %1' -} ); diff --git a/admin/plugins/ckeditor/plugins/widget/lang/nl.js b/admin/plugins/ckeditor/plugins/widget/lang/nl.js deleted file mode 100644 index 188f48c..0000000 --- a/admin/plugins/ckeditor/plugins/widget/lang/nl.js +++ /dev/null @@ -1,8 +0,0 @@ -/** - * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. - * For licensing, see LICENSE.md or http://ckeditor.com/license - */ -CKEDITOR.plugins.setLang( 'widget', 'nl', { - 'move': 'Klik en sleep om te verplaatsen', - 'label': '%1 widget' -} ); diff --git a/admin/plugins/ckeditor/plugins/widget/lang/no.js b/admin/plugins/ckeditor/plugins/widget/lang/no.js deleted file mode 100644 index 62a93d9..0000000 --- a/admin/plugins/ckeditor/plugins/widget/lang/no.js +++ /dev/null @@ -1,8 +0,0 @@ -/** - * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. - * For licensing, see LICENSE.md or http://ckeditor.com/license - */ -CKEDITOR.plugins.setLang( 'widget', 'no', { - 'move': 'Klikk og dra for å flytte', - 'label': 'Widget %1' -} ); diff --git a/admin/plugins/ckeditor/plugins/widget/lang/oc.js b/admin/plugins/ckeditor/plugins/widget/lang/oc.js deleted file mode 100644 index 6a559e0..0000000 --- a/admin/plugins/ckeditor/plugins/widget/lang/oc.js +++ /dev/null @@ -1,8 +0,0 @@ -/** - * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. - * For licensing, see LICENSE.md or http://ckeditor.com/license - */ -CKEDITOR.plugins.setLang( 'widget', 'oc', { - 'move': 'Clicar e lisar per desplaçar', - 'label': 'Element %1' -} ); diff --git a/admin/plugins/ckeditor/plugins/widget/lang/pl.js b/admin/plugins/ckeditor/plugins/widget/lang/pl.js deleted file mode 100644 index 6486765..0000000 --- a/admin/plugins/ckeditor/plugins/widget/lang/pl.js +++ /dev/null @@ -1,8 +0,0 @@ -/** - * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. - * For licensing, see LICENSE.md or http://ckeditor.com/license - */ -CKEDITOR.plugins.setLang( 'widget', 'pl', { - 'move': 'Kliknij i przeciągnij, by przenieść.', - 'label': 'Widget %1' -} ); diff --git a/admin/plugins/ckeditor/plugins/widget/lang/pt-br.js b/admin/plugins/ckeditor/plugins/widget/lang/pt-br.js deleted file mode 100644 index 7f44722..0000000 --- a/admin/plugins/ckeditor/plugins/widget/lang/pt-br.js +++ /dev/null @@ -1,8 +0,0 @@ -/** - * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. - * For licensing, see LICENSE.md or http://ckeditor.com/license - */ -CKEDITOR.plugins.setLang( 'widget', 'pt-br', { - 'move': 'Click e arraste para mover', - 'label': '%1 widget' -} ); diff --git a/admin/plugins/ckeditor/plugins/widget/lang/pt.js b/admin/plugins/ckeditor/plugins/widget/lang/pt.js deleted file mode 100644 index 97ada9d..0000000 --- a/admin/plugins/ckeditor/plugins/widget/lang/pt.js +++ /dev/null @@ -1,8 +0,0 @@ -/** - * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. - * For licensing, see LICENSE.md or http://ckeditor.com/license - */ -CKEDITOR.plugins.setLang( 'widget', 'pt', { - 'move': 'Clique e arraste para mover', - 'label': '%1 widget' // MISSING -} ); diff --git a/admin/plugins/ckeditor/plugins/widget/lang/ru.js b/admin/plugins/ckeditor/plugins/widget/lang/ru.js deleted file mode 100644 index 68d612b..0000000 --- a/admin/plugins/ckeditor/plugins/widget/lang/ru.js +++ /dev/null @@ -1,8 +0,0 @@ -/** - * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. - * For licensing, see LICENSE.md or http://ckeditor.com/license - */ -CKEDITOR.plugins.setLang( 'widget', 'ru', { - 'move': 'Нажмите и перетащите, чтобы переместить', - 'label': '%1 виджет' -} ); diff --git a/admin/plugins/ckeditor/plugins/widget/lang/sk.js b/admin/plugins/ckeditor/plugins/widget/lang/sk.js deleted file mode 100644 index cd75ecb..0000000 --- a/admin/plugins/ckeditor/plugins/widget/lang/sk.js +++ /dev/null @@ -1,8 +0,0 @@ -/** - * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. - * For licensing, see LICENSE.md or http://ckeditor.com/license - */ -CKEDITOR.plugins.setLang( 'widget', 'sk', { - 'move': 'Kliknite a potiahnite pre presunutie', - 'label': '%1 widget' -} ); diff --git a/admin/plugins/ckeditor/plugins/widget/lang/sl.js b/admin/plugins/ckeditor/plugins/widget/lang/sl.js deleted file mode 100644 index 64b8ae5..0000000 --- a/admin/plugins/ckeditor/plugins/widget/lang/sl.js +++ /dev/null @@ -1,8 +0,0 @@ -/** - * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. - * For licensing, see LICENSE.md or http://ckeditor.com/license - */ -CKEDITOR.plugins.setLang( 'widget', 'sl', { - 'move': 'Kliknite in povlecite, da premaknete', - 'label': '%1 widget' // MISSING -} ); diff --git a/admin/plugins/ckeditor/plugins/widget/lang/sq.js b/admin/plugins/ckeditor/plugins/widget/lang/sq.js deleted file mode 100644 index 4c725c3..0000000 --- a/admin/plugins/ckeditor/plugins/widget/lang/sq.js +++ /dev/null @@ -1,8 +0,0 @@ -/** - * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. - * For licensing, see LICENSE.md or http://ckeditor.com/license - */ -CKEDITOR.plugins.setLang( 'widget', 'sq', { - 'move': 'Kliko dhe tërhiqe për ta lëvizur', - 'label': '%1 widget' // MISSING -} ); diff --git a/admin/plugins/ckeditor/plugins/widget/lang/sv.js b/admin/plugins/ckeditor/plugins/widget/lang/sv.js deleted file mode 100644 index a7e228f..0000000 --- a/admin/plugins/ckeditor/plugins/widget/lang/sv.js +++ /dev/null @@ -1,8 +0,0 @@ -/** - * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. - * For licensing, see LICENSE.md or http://ckeditor.com/license - */ -CKEDITOR.plugins.setLang( 'widget', 'sv', { - 'move': 'Klicka och drag för att flytta', - 'label': '%1-widget' -} ); diff --git a/admin/plugins/ckeditor/plugins/widget/lang/tr.js b/admin/plugins/ckeditor/plugins/widget/lang/tr.js deleted file mode 100644 index f25b1ea..0000000 --- a/admin/plugins/ckeditor/plugins/widget/lang/tr.js +++ /dev/null @@ -1,8 +0,0 @@ -/** - * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. - * For licensing, see LICENSE.md or http://ckeditor.com/license - */ -CKEDITOR.plugins.setLang( 'widget', 'tr', { - 'move': 'Taşımak için, tıklayın ve sürükleyin', - 'label': '%1 Grafik Beleşeni' -} ); diff --git a/admin/plugins/ckeditor/plugins/widget/lang/tt.js b/admin/plugins/ckeditor/plugins/widget/lang/tt.js deleted file mode 100644 index 1772db5..0000000 --- a/admin/plugins/ckeditor/plugins/widget/lang/tt.js +++ /dev/null @@ -1,8 +0,0 @@ -/** - * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. - * For licensing, see LICENSE.md or http://ckeditor.com/license - */ -CKEDITOR.plugins.setLang( 'widget', 'tt', { - 'move': 'Күчереп куер өчен басып шудырыгыз', - 'label': '%1 widget' // MISSING -} ); diff --git a/admin/plugins/ckeditor/plugins/widget/lang/ug.js b/admin/plugins/ckeditor/plugins/widget/lang/ug.js deleted file mode 100644 index 9f39366..0000000 --- a/admin/plugins/ckeditor/plugins/widget/lang/ug.js +++ /dev/null @@ -1,8 +0,0 @@ -/** - * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. - * For licensing, see LICENSE.md or http://ckeditor.com/license - */ -CKEDITOR.plugins.setLang( 'widget', 'ug', { - 'move': 'يۆتكەشتە چېكىپ سۆرەڭ', - 'label': '%1 widget' // MISSING -} ); diff --git a/admin/plugins/ckeditor/plugins/widget/lang/uk.js b/admin/plugins/ckeditor/plugins/widget/lang/uk.js deleted file mode 100644 index 4eb2d2e..0000000 --- a/admin/plugins/ckeditor/plugins/widget/lang/uk.js +++ /dev/null @@ -1,8 +0,0 @@ -/** - * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. - * For licensing, see LICENSE.md or http://ckeditor.com/license - */ -CKEDITOR.plugins.setLang( 'widget', 'uk', { - 'move': 'Клікніть і потягніть для переміщення', - 'label': '%1 віджет' -} ); diff --git a/admin/plugins/ckeditor/plugins/widget/lang/vi.js b/admin/plugins/ckeditor/plugins/widget/lang/vi.js deleted file mode 100644 index 76f5680..0000000 --- a/admin/plugins/ckeditor/plugins/widget/lang/vi.js +++ /dev/null @@ -1,8 +0,0 @@ -/** - * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. - * For licensing, see LICENSE.md or http://ckeditor.com/license - */ -CKEDITOR.plugins.setLang( 'widget', 'vi', { - 'move': 'Nhấp chuột và kéo để di chuyển', - 'label': '%1 widget' // MISSING -} ); diff --git a/admin/plugins/ckeditor/plugins/widget/lang/zh-cn.js b/admin/plugins/ckeditor/plugins/widget/lang/zh-cn.js deleted file mode 100644 index 93f393c..0000000 --- a/admin/plugins/ckeditor/plugins/widget/lang/zh-cn.js +++ /dev/null @@ -1,8 +0,0 @@ -/** - * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. - * For licensing, see LICENSE.md or http://ckeditor.com/license - */ -CKEDITOR.plugins.setLang( 'widget', 'zh-cn', { - 'move': '点击并拖拽以移动', - 'label': '%1 小部件' -} ); diff --git a/admin/plugins/ckeditor/plugins/widget/lang/zh.js b/admin/plugins/ckeditor/plugins/widget/lang/zh.js deleted file mode 100644 index a89a616..0000000 --- a/admin/plugins/ckeditor/plugins/widget/lang/zh.js +++ /dev/null @@ -1,8 +0,0 @@ -/** - * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. - * For licensing, see LICENSE.md or http://ckeditor.com/license - */ -CKEDITOR.plugins.setLang( 'widget', 'zh', { - 'move': '拖曳以移動', - 'label': '%1 小工具' -} ); diff --git a/admin/plugins/ckeditor/plugins/widget/plugin.js b/admin/plugins/ckeditor/plugins/widget/plugin.js deleted file mode 100644 index 3816dcb..0000000 --- a/admin/plugins/ckeditor/plugins/widget/plugin.js +++ /dev/null @@ -1,4147 +0,0 @@ -/** - * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. - * For licensing, see LICENSE.md or http://ckeditor.com/license - */ - -/** - * @fileOverview [Widget](http://ckeditor.com/addon/widget) plugin. - */ - -'use strict'; - -( function() { - var DRAG_HANDLER_SIZE = 15; - - CKEDITOR.plugins.add( 'widget', { - // jscs:disable maximumLineLength - lang: 'af,ar,az,bg,ca,cs,cy,da,de,de-ch,el,en,en-gb,eo,es,es-mx,eu,fa,fi,fr,gl,he,hr,hu,id,it,ja,km,ko,ku,lv,nb,nl,no,oc,pl,pt,pt-br,ru,sk,sl,sq,sv,tr,tt,ug,uk,vi,zh,zh-cn', // %REMOVE_LINE_CORE% - // jscs:enable maximumLineLength - requires: 'lineutils,clipboard,widgetselection', - onLoad: function() { - CKEDITOR.addCss( - '.cke_widget_wrapper{' + - 'position:relative;' + - 'outline:none' + - '}' + - '.cke_widget_inline{' + - 'display:inline-block' + - '}' + - '.cke_widget_wrapper:hover>.cke_widget_element{' + - 'outline:2px solid yellow;' + - 'cursor:default' + - '}' + - '.cke_widget_wrapper:hover .cke_widget_editable{' + - 'outline:2px solid yellow' + - '}' + - '.cke_widget_wrapper.cke_widget_focused>.cke_widget_element,' + - // We need higher specificity than hover style. - '.cke_widget_wrapper .cke_widget_editable.cke_widget_editable_focused{' + - 'outline:2px solid #ace' + - '}' + - '.cke_widget_editable{' + - 'cursor:text' + - '}' + - '.cke_widget_drag_handler_container{' + - 'position:absolute;' + - 'width:' + DRAG_HANDLER_SIZE + 'px;' + - 'height:0;' + - // Initially drag handler should not be visible, until its position will be - // calculated (http://dev.ckeditor.com/ticket/11177). - // We need to hide unpositined handlers, so they don't extend - // widget's outline far to the left (http://dev.ckeditor.com/ticket/12024). - 'display:none;' + - 'opacity:0.75;' + - 'transition:height 0s 0.2s;' + // Delay hiding drag handler. - // Prevent drag handler from being misplaced (http://dev.ckeditor.com/ticket/11198). - 'line-height:0' + - '}' + - '.cke_widget_wrapper:hover>.cke_widget_drag_handler_container{' + - 'height:' + DRAG_HANDLER_SIZE + 'px;' + - 'transition:none' + - '}' + - '.cke_widget_drag_handler_container:hover{' + - 'opacity:1' + - '}' + - 'img.cke_widget_drag_handler{' + - 'cursor:move;' + - 'width:' + DRAG_HANDLER_SIZE + 'px;' + - 'height:' + DRAG_HANDLER_SIZE + 'px;' + - 'display:inline-block' + - '}' + - '.cke_widget_mask{' + - 'position:absolute;' + - 'top:0;' + - 'left:0;' + - 'width:100%;' + - 'height:100%;' + - 'display:block' + - '}' + - '.cke_editable.cke_widget_dragging, .cke_editable.cke_widget_dragging *{' + - 'cursor:move !important' + - '}' - ); - }, - - beforeInit: function( editor ) { - /** - * An instance of widget repository. It contains all - * {@link CKEDITOR.plugins.widget.repository#registered registered widget definitions} and - * {@link CKEDITOR.plugins.widget.repository#instances initialized instances}. - * - * editor.widgets.add( 'someName', { - * // Widget definition... - * } ); - * - * editor.widgets.registered.someName; // -> Widget definition - * - * @since 4.3 - * @readonly - * @property {CKEDITOR.plugins.widget.repository} widgets - * @member CKEDITOR.editor - */ - editor.widgets = new Repository( editor ); - }, - - afterInit: function( editor ) { - addWidgetButtons( editor ); - setupContextMenu( editor ); - } - } ); - - /** - * Widget repository. It keeps track of all {@link #registered registered widget definitions} and - * {@link #instances initialized instances}. An instance of the repository is available under - * the {@link CKEDITOR.editor#widgets} property. - * - * @class CKEDITOR.plugins.widget.repository - * @mixins CKEDITOR.event - * @constructor Creates a widget repository instance. Note that the widget plugin automatically - * creates a repository instance which is available under the {@link CKEDITOR.editor#widgets} property. - * @param {CKEDITOR.editor} editor The editor instance for which the repository will be created. - */ - function Repository( editor ) { - /** - * The editor instance for which this repository was created. - * - * @readonly - * @property {CKEDITOR.editor} editor - */ - this.editor = editor; - - /** - * A hash of registered widget definitions (definition name => {@link CKEDITOR.plugins.widget.definition}). - * - * To register a definition use the {@link #add} method. - * - * @readonly - */ - this.registered = {}; - - /** - * An object containing initialized widget instances (widget id => {@link CKEDITOR.plugins.widget}). - * - * @readonly - */ - this.instances = {}; - - /** - * An array of selected widget instances. - * - * @readonly - * @property {CKEDITOR.plugins.widget[]} selected - */ - this.selected = []; - - /** - * The focused widget instance. See also {@link CKEDITOR.plugins.widget#event-focus} - * and {@link CKEDITOR.plugins.widget#event-blur} events. - * - * editor.on( 'selectionChange', function() { - * if ( editor.widgets.focused ) { - * // Do something when a widget is focused... - * } - * } ); - * - * @readonly - * @property {CKEDITOR.plugins.widget} focused - */ - this.focused = null; - - /** - * The widget instance that contains the nested editable which is currently focused. - * - * @readonly - * @property {CKEDITOR.plugins.widget} widgetHoldingFocusedEditable - */ - this.widgetHoldingFocusedEditable = null; - - this._ = { - nextId: 0, - upcasts: [], - upcastCallbacks: [], - filters: {} - }; - - setupWidgetsLifecycle( this ); - setupSelectionObserver( this ); - setupMouseObserver( this ); - setupKeyboardObserver( this ); - setupDragAndDrop( this ); - setupNativeCutAndCopy( this ); - } - - Repository.prototype = { - /** - * Minimum interval between selection checks. - * - * @private - */ - MIN_SELECTION_CHECK_INTERVAL: 500, - - /** - * Adds a widget definition to the repository. Fires the {@link CKEDITOR.editor#widgetDefinition} event - * which allows to modify the widget definition which is going to be registered. - * - * @param {String} name The name of the widget definition. - * @param {CKEDITOR.plugins.widget.definition} widgetDef Widget definition. - * @returns {CKEDITOR.plugins.widget.definition} - */ - add: function( name, widgetDef ) { - // Create prototyped copy of original widget definition, so we won't modify it. - widgetDef = CKEDITOR.tools.prototypedCopy( widgetDef ); - widgetDef.name = name; - - widgetDef._ = widgetDef._ || {}; - - this.editor.fire( 'widgetDefinition', widgetDef ); - - if ( widgetDef.template ) - widgetDef.template = new CKEDITOR.template( widgetDef.template ); - - addWidgetCommand( this.editor, widgetDef ); - addWidgetProcessors( this, widgetDef ); - - this.registered[ name ] = widgetDef; - - return widgetDef; - }, - - /** - * Adds a callback for element upcasting. Each callback will be executed - * for every element which is later tested by upcast methods. If a callback - * returns `false`, the element will not be upcasted. - * - * // Images with the "banner" class will not be upcasted (e.g. to the image widget). - * editor.widgets.addUpcastCallback( function( element ) { - * if ( element.name == 'img' && element.hasClass( 'banner' ) ) - * return false; - * } ); - * - * @param {Function} callback - * @param {CKEDITOR.htmlParser.element} callback.element - */ - addUpcastCallback: function( callback ) { - this._.upcastCallbacks.push( callback ); - }, - - /** - * Checks the selection to update widget states (selection and focus). - * - * This method is triggered by the {@link #event-checkSelection} event. - */ - checkSelection: function() { - var sel = this.editor.getSelection(), - selectedElement = sel.getSelectedElement(), - updater = stateUpdater( this ), - widget; - - // Widget is focused so commit and finish checking. - if ( selectedElement && ( widget = this.getByElement( selectedElement, true ) ) ) - return updater.focus( widget ).select( widget ).commit(); - - var range = sel.getRanges()[ 0 ]; - - // No ranges or collapsed range mean that nothing is selected, so commit and finish checking. - if ( !range || range.collapsed ) - return updater.commit(); - - // Range is not empty, so create walker checking for wrappers. - var walker = new CKEDITOR.dom.walker( range ), - wrapper; - - walker.evaluator = Widget.isDomWidgetWrapper; - - while ( ( wrapper = walker.next() ) ) - updater.select( this.getByElement( wrapper ) ); - - updater.commit(); - }, - - /** - * Checks if all widget instances are still present in the DOM. - * Destroys those instances that are not present. - * Reinitializes widgets on widget wrappers for which widget instances - * cannot be found. Takes nested widgets into account, too. - * - * This method triggers the {@link #event-checkWidgets} event whose listeners - * can cancel the method's execution or modify its options. - * - * @param [options] The options object. - * @param {Boolean} [options.initOnlyNew] Initializes widgets only on newly wrapped - * widget elements (those which still have the `cke_widget_new` class). When this option is - * set to `true`, widgets which were invalidated (e.g. by replacing with a cloned DOM structure) - * will not be reinitialized. This makes the check faster. - * @param {Boolean} [options.focusInited] If only one widget is initialized by - * the method, it will be focused. - */ - checkWidgets: function( options ) { - this.fire( 'checkWidgets', CKEDITOR.tools.copy( options || {} ) ); - }, - - /** - * Removes the widget from the editor and moves the selection to the closest - * editable position if the widget was focused before. - * - * @param {CKEDITOR.plugins.widget} widget The widget instance to be deleted. - */ - del: function( widget ) { - if ( this.focused === widget ) { - var editor = widget.editor, - range = editor.createRange(), - found; - - // If haven't found place for caret on the default side, - // try to find it on the other side. - if ( !( found = range.moveToClosestEditablePosition( widget.wrapper, true ) ) ) - found = range.moveToClosestEditablePosition( widget.wrapper, false ); - - if ( found ) - editor.getSelection().selectRanges( [ range ] ); - } - - widget.wrapper.remove(); - this.destroy( widget, true ); - }, - - /** - * Destroys the widget instance and all its nested widgets (widgets inside its nested editables). - * - * @param {CKEDITOR.plugins.widget} widget The widget instance to be destroyed. - * @param {Boolean} [offline] Whether the widget is offline (detached from the DOM tree) &mdash; - * in this case the DOM (attributes, classes, etc.) will not be cleaned up. - */ - destroy: function( widget, offline ) { - if ( this.widgetHoldingFocusedEditable === widget ) - setFocusedEditable( this, widget, null, offline ); - - widget.destroy( offline ); - delete this.instances[ widget.id ]; - this.fire( 'instanceDestroyed', widget ); - }, - - /** - * Destroys all widget instances. - * - * @param {Boolean} [offline] Whether the widgets are offline (detached from the DOM tree) &mdash; - * in this case the DOM (attributes, classes, etc.) will not be cleaned up. - * @param {CKEDITOR.dom.element} [container] The container within widgets will be destroyed. - * This option will be ignored if the `offline` flag was set to `true`, because in such case - * it is not possible to find widgets within the passed block. - */ - destroyAll: function( offline, container ) { - var widget, - id, - instances = this.instances; - - if ( container && !offline ) { - var wrappers = container.find( '.cke_widget_wrapper' ), - l = wrappers.count(), - i = 0; - - // Length is constant, because this is not a live node list. - // Note: since querySelectorAll returns nodes in document order, - // outer widgets are always placed before their nested widgets and therefore - // are destroyed before them. - for ( ; i < l; ++i ) { - widget = this.getByElement( wrappers.getItem( i ), true ); - // Widget might not be found, because it could be a nested widget, - // which would be destroyed when destroying its parent. - if ( widget ) - this.destroy( widget ); - } - - return; - } - - for ( id in instances ) { - widget = instances[ id ]; - this.destroy( widget, offline ); - } - }, - - /** - * Finalizes a process of widget creation. This includes: - * - * * inserting widget element into editor, - * * marking widget instance as ready (see {@link CKEDITOR.plugins.widget#event-ready}), - * * focusing widget instance. - * - * This method is used by the default widget's command and is called - * after widget's dialog (if set) is closed. It may also be used in a - * customized process of widget creation and insertion. - * - * widget.once( 'edit', function() { - * // Finalize creation only of not ready widgets. - * if ( widget.isReady() ) - * return; - * - * // Cancel edit event to prevent automatic widget insertion. - * evt.cancel(); - * - * CustomDialog.open( widget.data, function saveCallback( savedData ) { - * // Cache the container, because widget may be destroyed while saving data, - * // if this process will require some deep transformations. - * var container = widget.wrapper.getParent(); - * - * widget.setData( savedData ); - * - * // Widget will be retrieved from container and inserted into editor. - * editor.widgets.finalizeCreation( container ); - * } ); - * } ); - * - * @param {CKEDITOR.dom.element/CKEDITOR.dom.documentFragment} container The element - * or document fragment which contains widget wrapper. The container is used, so before - * finalizing creation the widget can be freely transformed (even destroyed and reinitialized). - */ - finalizeCreation: function( container ) { - var wrapper = container.getFirst(); - if ( wrapper && Widget.isDomWidgetWrapper( wrapper ) ) { - this.editor.insertElement( wrapper ); - - var widget = this.getByElement( wrapper ); - // Fire postponed #ready event. - widget.ready = true; - widget.fire( 'ready' ); - widget.focus(); - } - }, - - /** - * Finds a widget instance which contains a given element. The element will be the {@link CKEDITOR.plugins.widget#wrapper wrapper} - * of the returned widget or a descendant of this {@link CKEDITOR.plugins.widget#wrapper wrapper}. - * - * editor.widgets.getByElement( someWidget.wrapper ); // -> someWidget - * editor.widgets.getByElement( someWidget.parts.caption ); // -> someWidget - * - * // Check wrapper only: - * editor.widgets.getByElement( someWidget.wrapper, true ); // -> someWidget - * editor.widgets.getByElement( someWidget.parts.caption, true ); // -> null - * - * @param {CKEDITOR.dom.element} element The element to be checked. - * @param {Boolean} [checkWrapperOnly] If set to `true`, the method will not check wrappers' descendants. - * @returns {CKEDITOR.plugins.widget} The widget instance or `null`. - */ - getByElement: ( function() { - var validWrapperElements = { div: 1, span: 1 }; - function getWidgetId( element ) { - return element.is( validWrapperElements ) && element.data( 'cke-widget-id' ); - } - - return function( element, checkWrapperOnly ) { - if ( !element ) - return null; - - var id = getWidgetId( element ); - - // There's no need to check element parents if element is a wrapper. - if ( !checkWrapperOnly && !id ) { - var limit = this.editor.editable(); - - // Try to find a closest ascendant which is a widget wrapper. - do { - element = element.getParent(); - } while ( element && !element.equals( limit ) && !( id = getWidgetId( element ) ) ); - } - - return this.instances[ id ] || null; - }; - } )(), - - /** - * Initializes a widget on a given element if the widget has not been initialized on it yet. - * - * @param {CKEDITOR.dom.element} element The future widget element. - * @param {String/CKEDITOR.plugins.widget.definition} [widgetDef] Name of a widget or a widget definition. - * The widget definition should be previously registered by using the - * {@link CKEDITOR.plugins.widget.repository#add} method. - * @param [startupData] Widget startup data (has precedence over default one). - * @returns {CKEDITOR.plugins.widget} The widget instance or `null` if a widget could not be initialized on - * a given element. - */ - initOn: function( element, widgetDef, startupData ) { - if ( !widgetDef ) - widgetDef = this.registered[ element.data( 'widget' ) ]; - else if ( typeof widgetDef == 'string' ) - widgetDef = this.registered[ widgetDef ]; - - if ( !widgetDef ) - return null; - - // Wrap element if still wasn't wrapped (was added during runtime by method that skips dataProcessor). - var wrapper = this.wrapElement( element, widgetDef.name ); - - if ( wrapper ) { - // Check if widget wrapper is new (widget hasn't been initialized on it yet). - // This class will be removed by widget constructor to avoid locking snapshot twice. - if ( wrapper.hasClass( 'cke_widget_new' ) ) { - var widget = new Widget( this, this._.nextId++, element, widgetDef, startupData ); - - // Widget could be destroyed when initializing it. - if ( widget.isInited() ) { - this.instances[ widget.id ] = widget; - - return widget; - } else { - return null; - } - } - - // Widget already has been initialized, so try to get widget by element. - // Note - it may happen that other instance will returned than the one created above, - // if for example widget was destroyed and reinitialized. - return this.getByElement( element ); - } - - // No wrapper means that there's no widget for this element. - return null; - }, - - /** - * Initializes widgets on all elements which were wrapped by {@link #wrapElement} and - * have not been initialized yet. - * - * @param {CKEDITOR.dom.element} [container=editor.editable()] The container which will be checked for not - * initialized widgets. Defaults to editor's {@link CKEDITOR.editor#editable editable} element. - * @returns {CKEDITOR.plugins.widget[]} Array of widget instances which have been initialized. - * Note: Only first-level widgets are returned &mdash; without nested widgets. - */ - initOnAll: function( container ) { - var newWidgets = ( container || this.editor.editable() ).find( '.cke_widget_new' ), - newInstances = [], - instance; - - for ( var i = newWidgets.count(); i--; ) { - instance = this.initOn( newWidgets.getItem( i ).getFirst( Widget.isDomWidgetElement ) ); - if ( instance ) - newInstances.push( instance ); - } - - return newInstances; - }, - - /** - * Allows to listen to events on specific types of widgets, even if they are not created yet. - * - * Please note that this method inherits parameters from the {@link CKEDITOR.event#method-on} method with one - * extra parameter at the beginning which is the widget name. - * - * editor.widgets.onWidget( 'image', 'action', function( evt ) { - * // Event `action` occurs on `image` widget. - * } ); - * - * @since 4.5 - * @param {String} widgetName - * @param {String} eventName - * @param {Function} listenerFunction - * @param {Object} [scopeObj] - * @param {Object} [listenerData] - * @param {Number} [priority=10] - */ - onWidget: function( widgetName ) { - var args = Array.prototype.slice.call( arguments ); - - args.shift(); - - for ( var i in this.instances ) { - var instance = this.instances[ i ]; - - if ( instance.name == widgetName ) { - instance.on.apply( instance, args ); - } - } - - this.on( 'instanceCreated', function( evt ) { - var widget = evt.data; - - if ( widget.name == widgetName ) { - widget.on.apply( widget, args ); - } - } ); - }, - - /** - * Parses element classes string and returns an object - * whose keys contain class names. Skips all `cke_*` classes. - * - * This method is used by the {@link CKEDITOR.plugins.widget#getClasses} method and - * may be used when overriding that method. - * - * @since 4.4 - * @param {String} classes String (value of `class` attribute). - * @returns {Object} Object containing classes or `null` if no classes found. - */ - parseElementClasses: function( classes ) { - if ( !classes ) - return null; - - classes = CKEDITOR.tools.trim( classes ).split( /\s+/ ); - - var cl, - obj = {}, - hasClasses = 0; - - while ( ( cl = classes.pop() ) ) { - if ( cl.indexOf( 'cke_' ) == -1 ) - obj[ cl ] = hasClasses = 1; - } - - return hasClasses ? obj : null; - }, - - /** - * Wraps an element with a widget's non-editable container. - * - * If this method is called on an {@link CKEDITOR.htmlParser.element}, then it will - * also take care of fixing the DOM after wrapping (the wrapper may not be allowed in element's parent). - * - * @param {CKEDITOR.dom.element/CKEDITOR.htmlParser.element} element The widget element to be wrapped. - * @param {String} [widgetName] The name of the widget definition. Defaults to element's `data-widget` - * attribute value. - * @returns {CKEDITOR.dom.element/CKEDITOR.htmlParser.element} The wrapper element or `null` if - * the widget definition of this name is not registered. - */ - wrapElement: function( element, widgetName ) { - var wrapper = null, - widgetDef, - isInline; - - if ( element instanceof CKEDITOR.dom.element ) { - widgetName = widgetName || element.data( 'widget' ); - widgetDef = this.registered[ widgetName ]; - - if ( !widgetDef ) - return null; - - // Do not wrap already wrapped element. - wrapper = element.getParent(); - if ( wrapper && wrapper.type == CKEDITOR.NODE_ELEMENT && wrapper.data( 'cke-widget-wrapper' ) ) - return wrapper; - - // If attribute isn't already set (e.g. for pasted widget), set it. - if ( !element.hasAttribute( 'data-cke-widget-keep-attr' ) ) - element.data( 'cke-widget-keep-attr', element.data( 'widget' ) ? 1 : 0 ); - - element.data( 'widget', widgetName ); - - isInline = isWidgetInline( widgetDef, element.getName() ); - - wrapper = new CKEDITOR.dom.element( isInline ? 'span' : 'div' ); - wrapper.setAttributes( getWrapperAttributes( isInline, widgetName ) ); - - wrapper.data( 'cke-display-name', widgetDef.pathName ? widgetDef.pathName : element.getName() ); - - // Replace element unless it is a detached one. - if ( element.getParent( true ) ) - wrapper.replace( element ); - element.appendTo( wrapper ); - } - else if ( element instanceof CKEDITOR.htmlParser.element ) { - widgetName = widgetName || element.attributes[ 'data-widget' ]; - widgetDef = this.registered[ widgetName ]; - - if ( !widgetDef ) - return null; - - wrapper = element.parent; - if ( wrapper && wrapper.type == CKEDITOR.NODE_ELEMENT && wrapper.attributes[ 'data-cke-widget-wrapper' ] ) - return wrapper; - - // If attribute isn't already set (e.g. for pasted widget), set it. - if ( !( 'data-cke-widget-keep-attr' in element.attributes ) ) - element.attributes[ 'data-cke-widget-keep-attr' ] = element.attributes[ 'data-widget' ] ? 1 : 0; - if ( widgetName ) - element.attributes[ 'data-widget' ] = widgetName; - - isInline = isWidgetInline( widgetDef, element.name ); - - wrapper = new CKEDITOR.htmlParser.element( isInline ? 'span' : 'div', getWrapperAttributes( isInline, widgetName ) ); - wrapper.attributes[ 'data-cke-display-name' ] = widgetDef.pathName ? widgetDef.pathName : element.name; - - var parent = element.parent, - index; - - // Don't detach already detached element. - if ( parent ) { - index = element.getIndex(); - element.remove(); - } - - wrapper.add( element ); - - // Insert wrapper fixing DOM (splitting parents if wrapper is not allowed inside them). - parent && insertElement( parent, index, wrapper ); - } - - return wrapper; - }, - - // Expose for tests. - _tests_createEditableFilter: createEditableFilter - }; - - CKEDITOR.event.implementOn( Repository.prototype ); - - /** - * An event fired when a widget instance is created, but before it is fully initialized. - * - * @event instanceCreated - * @param {CKEDITOR.plugins.widget} data The widget instance. - */ - - /** - * An event fired when a widget instance was destroyed. - * - * See also {@link CKEDITOR.plugins.widget#event-destroy}. - * - * @event instanceDestroyed - * @param {CKEDITOR.plugins.widget} data The widget instance. - */ - - /** - * An event fired to trigger the selection check. - * - * See the {@link #method-checkSelection} method. - * - * @event checkSelection - */ - - /** - * An event fired by the the {@link #method-checkWidgets} method. - * - * It can be canceled in order to stop the {@link #method-checkWidgets} - * method execution or the event listener can modify the method's options. - * - * @event checkWidgets - * @param [data] - * @param {Boolean} [data.initOnlyNew] Initialize widgets only on newly wrapped - * widget elements (those which still have the `cke_widget_new` class). When this option is - * set to `true`, widgets which were invalidated (e.g. by replacing with a cloned DOM structure) - * will not be reinitialized. This makes the check faster. - * @param {Boolean} [data.focusInited] If only one widget is initialized by - * the method, it will be focused. - */ - - - /** - * An instance of a widget. Together with {@link CKEDITOR.plugins.widget.repository} these - * two classes constitute the core of the Widget System. - * - * Note that neither the repository nor the widget instances can be created by using their constructors. - * A repository instance is automatically set up by the Widget plugin and is accessible under - * {@link CKEDITOR.editor#widgets}, while widget instances are created and destroyed by the repository. - * - * To create a widget, first you need to {@link CKEDITOR.plugins.widget.repository#add register} its - * {@link CKEDITOR.plugins.widget.definition definition}: - * - * editor.widgets.add( 'simplebox', { - * upcast: function( element ) { - * // Defines which elements will become widgets. - * if ( element.hasClass( 'simplebox' ) ) - * return true; - * }, - * init: function() { - * // ... - * } - * } ); - * - * Once the widget definition is registered, widgets will be automatically - * created when loading data: - * - * editor.setData( '<div class="simplebox">foo</div>', function() { - * console.log( editor.widgets.instances ); // -> An object containing one instance. - * } ); - * - * It is also possible to create instances during runtime by using a command - * (if a {@link CKEDITOR.plugins.widget.definition#template} property was defined): - * - * // You can execute an automatically defined command to - * // insert a new simplebox widget or edit the one currently focused. - * editor.execCommand( 'simplebox' ); - * - * Note: Since CKEditor 4.5 widget's `startupData` can be passed as the command argument: - * - * editor.execCommand( 'simplebox', { - * startupData: { - * align: 'left' - * } - * } ); - * - * A widget can also be created in a completely custom way: - * - * var element = editor.document.createElement( 'div' ); - * editor.insertElement( element ); - * var widget = editor.widgets.initOn( element, 'simplebox' ); - * - * @since 4.3 - * @class CKEDITOR.plugins.widget - * @mixins CKEDITOR.event - * @extends CKEDITOR.plugins.widget.definition - * @constructor Creates an instance of the widget class. Do not use it directly, but instead initialize widgets - * by using the {@link CKEDITOR.plugins.widget.repository#initOn} method or by the upcasting system. - * @param {CKEDITOR.plugins.widget.repository} widgetsRepo - * @param {Number} id Unique ID of this widget instance. - * @param {CKEDITOR.dom.element} element The widget element. - * @param {CKEDITOR.plugins.widget.definition} widgetDef Widget's registered definition. - * @param [startupData] Initial widget data. This data object will overwrite the default data and - * the data loaded from the DOM. - */ - function Widget( widgetsRepo, id, element, widgetDef, startupData ) { - var editor = widgetsRepo.editor; - - // Extend this widget with widgetDef-specific methods and properties. - CKEDITOR.tools.extend( this, widgetDef, { - /** - * The editor instance. - * - * @readonly - * @property {CKEDITOR.editor} - */ - editor: editor, - - /** - * This widget's unique (per editor instance) ID. - * - * @readonly - * @property {Number} - */ - id: id, - - /** - * Whether this widget is an inline widget (based on an inline element unless - * forced otherwise by {@link CKEDITOR.plugins.widget.definition#inline}). - * - * **Note:** This option does not allow to turn a block element into an inline widget. - * However, it makes it possible to turn an inline element into a block widget or to - * force a correct type in case when automatic recognition fails. - * - * @readonly - * @property {Boolean} - */ - inline: element.getParent().getName() == 'span', - - /** - * The widget element &mdash; the element on which the widget was initialized. - * - * @readonly - * @property {CKEDITOR.dom.element} element - */ - element: element, - - /** - * Widget's data object. - * - * The data can only be set by using the {@link #setData} method. - * Changes made to the data fire the {@link #event-data} event. - * - * @readonly - */ - data: CKEDITOR.tools.extend( {}, typeof widgetDef.defaults == 'function' ? widgetDef.defaults() : widgetDef.defaults ), - - /** - * Indicates if a widget is data-ready. Set to `true` when data from all sources - * ({@link CKEDITOR.plugins.widget.definition#defaults}, set in the - * {@link #init} method, loaded from the widget's element and startup data coming from the constructor) - * are finally loaded. This is immediately followed by the first {@link #event-data}. - * - * @readonly - */ - dataReady: false, - - /** - * Whether a widget instance was initialized. This means that: - * - * * An instance was created, - * * Its properties were set, - * * The `init` method was executed. - * - * **Note**: The first {@link #event-data} event could not be fired yet which - * means that the widget's DOM has not been set up yet. Wait for the {@link #event-ready} - * event to be notified when a widget is fully initialized and ready. - * - * **Note**: Use the {@link #isInited} method to check whether a widget is initialized and - * has not been destroyed. - * - * @readonly - */ - inited: false, - - /** - * Whether a widget instance is ready. This means that the widget is {@link #inited} and - * that its DOM was finally set up. - * - * **Note:** Use the {@link #isReady} method to check whether a widget is ready and - * has not been destroyed. - * - * @readonly - */ - ready: false, - - // Revert what widgetDef could override (automatic #edit listener). - edit: Widget.prototype.edit, - - /** - * The nested editable element which is currently focused. - * - * @readonly - * @property {CKEDITOR.plugins.widget.nestedEditable} - */ - focusedEditable: null, - - /** - * The widget definition from which this instance was created. - * - * @readonly - * @property {CKEDITOR.plugins.widget.definition} definition - */ - definition: widgetDef, - - /** - * Link to the widget repository which created this instance. - * - * @readonly - * @property {CKEDITOR.plugins.widget.repository} repository - */ - repository: widgetsRepo, - - draggable: widgetDef.draggable !== false, - - // WAAARNING: Overwrite widgetDef's priv object, because otherwise violent unicorn's gonna visit you. - _: { - downcastFn: ( widgetDef.downcast && typeof widgetDef.downcast == 'string' ) ? - widgetDef.downcasts[ widgetDef.downcast ] : widgetDef.downcast - } - }, true ); - - /** - * An object of widget component elements. - * - * For every `partName => selector` pair in {@link CKEDITOR.plugins.widget.definition#parts}, - * one `partName => element` pair is added to this object during the widget initialization. - * - * @readonly - * @property {Object} parts - */ - - /** - * The template which will be used to create a new widget element (when the widget's command is executed). - * It will be populated with {@link #defaults default values}. - * - * @readonly - * @property {CKEDITOR.template} template - */ - - /** - * The widget wrapper &mdash; a non-editable `div` or `span` element (depending on {@link #inline}) - * which is a parent of the {@link #element} and widget compontents like the drag handler and the {@link #mask}. - * It is the outermost widget element. - * - * @readonly - * @property {CKEDITOR.dom.element} wrapper - */ - - widgetsRepo.fire( 'instanceCreated', this ); - - setupWidget( this, widgetDef ); - - this.init && this.init(); - - // Finally mark widget as inited. - this.inited = true; - - setupWidgetData( this, startupData ); - - // If at some point (e.g. in #data listener) widget hasn't been destroyed - // and widget is already attached to document then fire #ready. - if ( this.isInited() && editor.editable().contains( this.wrapper ) ) { - this.ready = true; - this.fire( 'ready' ); - } - } - - Widget.prototype = { - /** - * Adds a class to the widget element. This method is used by - * the {@link #applyStyle} method and should be overridden by widgets - * which should handle classes differently (e.g. add them to other elements). - * - * Since 4.6.0 this method also adds a corresponding class prefixed with {@link #WRAPPER_CLASS_PREFIX} - * to the widget wrapper element. - * - * **Note**: This method should not be used directly. Use the {@link #setData} method to - * set the `classes` property. Read more in the {@link #setData} documentation. - * - * See also: {@link #removeClass}, {@link #hasClass}, {@link #getClasses}. - * - * @since 4.4 - * @param {String} className The class name to be added. - */ - addClass: function( className ) { - this.element.addClass( className ); - this.wrapper.addClass( Widget.WRAPPER_CLASS_PREFIX + className ); - }, - - /** - * Applies the specified style to the widget. It is highly recommended to use the - * {@link CKEDITOR.editor#applyStyle} or {@link CKEDITOR.style#apply} methods instead of - * using this method directly, because unlike editor's and style's methods, this one - * does not perform any checks. - * - * By default this method handles only classes defined in the style. It clones existing - * classes which are stored in the {@link #property-data widget data}'s `classes` property, - * adds new classes, and calls the {@link #setData} method if at least one new class was added. - * Then, using the {@link #event-data} event listener widget applies modifications passing - * new classes to the {@link #addClass} method. - * - * If you need to handle classes differently than in the default way, you can override the - * {@link #addClass} and related methods. You can also handle other style properties than `classes` - * by overriding this method. - * - * See also: {@link #checkStyleActive}, {@link #removeStyle}. - * - * @since 4.4 - * @param {CKEDITOR.style} style The custom widget style to be applied. - */ - applyStyle: function( style ) { - applyRemoveStyle( this, style, 1 ); - }, - - /** - * Checks if the specified style is applied to this widget. It is highly recommended to use the - * {@link CKEDITOR.style#checkActive} method instead of using this method directly, - * because unlike style's method, this one does not perform any checks. - * - * By default this method handles only classes defined in the style and passes - * them to the {@link #hasClass} method. You can override these methods to handle classes - * differently or to handle more of the style properties. - * - * See also: {@link #applyStyle}, {@link #removeStyle}. - * - * @since 4.4 - * @param {CKEDITOR.style} style The custom widget style to be checked. - * @returns {Boolean} Whether the style is applied to this widget. - */ - checkStyleActive: function( style ) { - var classes = getStyleClasses( style ), - cl; - - if ( !classes ) - return false; - - while ( ( cl = classes.pop() ) ) { - if ( !this.hasClass( cl ) ) - return false; - } - return true; - }, - - /** - * Destroys this widget instance. - * - * Use {@link CKEDITOR.plugins.widget.repository#destroy} when possible instead of this method. - * - * This method fires the {#event-destroy} event. - * - * @param {Boolean} [offline] Whether a widget is offline (detached from the DOM tree) &mdash; - * in this case the DOM (attributes, classes, etc.) will not be cleaned up. - */ - destroy: function( offline ) { - this.fire( 'destroy' ); - - if ( this.editables ) { - for ( var name in this.editables ) - this.destroyEditable( name, offline ); - } - - if ( !offline ) { - if ( this.element.data( 'cke-widget-keep-attr' ) == '0' ) - this.element.removeAttribute( 'data-widget' ); - this.element.removeAttributes( [ 'data-cke-widget-data', 'data-cke-widget-keep-attr' ] ); - this.element.removeClass( 'cke_widget_element' ); - this.element.replace( this.wrapper ); - } - - this.wrapper = null; - }, - - /** - * Destroys a nested editable and all nested widgets. - * - * @param {String} editableName Nested editable name. - * @param {Boolean} [offline] See {@link #method-destroy} method. - */ - destroyEditable: function( editableName, offline ) { - var editable = this.editables[ editableName ]; - - editable.removeListener( 'focus', onEditableFocus ); - editable.removeListener( 'blur', onEditableBlur ); - this.editor.focusManager.remove( editable ); - - if ( !offline ) { - this.repository.destroyAll( false, editable ); - editable.removeClass( 'cke_widget_editable' ); - editable.removeClass( 'cke_widget_editable_focused' ); - editable.removeAttributes( [ 'contenteditable', 'data-cke-widget-editable', 'data-cke-enter-mode' ] ); - } - - delete this.editables[ editableName ]; - }, - - /** - * Starts widget editing. - * - * This method fires the {@link CKEDITOR.plugins.widget#event-edit} event - * which may be canceled in order to prevent it from opening a dialog window. - * - * The dialog window name is obtained from the event's data `dialog` property or - * from {@link CKEDITOR.plugins.widget.definition#dialog}. - * - * @returns {Boolean} Returns `true` if a dialog window was opened. - */ - edit: function() { - var evtData = { dialog: this.dialog }, - that = this; - - // Edit event was blocked or there's no dialog to be automatically opened. - if ( this.fire( 'edit', evtData ) === false || !evtData.dialog ) - return false; - - this.editor.openDialog( evtData.dialog, function( dialog ) { - var showListener, - okListener; - - // Allow to add a custom dialog handler. - if ( that.fire( 'dialog', dialog ) === false ) - return; - - showListener = dialog.on( 'show', function() { - dialog.setupContent( that ); - } ); - - okListener = dialog.on( 'ok', function() { - // Commit dialog's fields, but prevent from - // firing data event for every field. Fire only one, - // bulk event at the end. - var dataChanged, - dataListener = that.on( 'data', function( evt ) { - dataChanged = 1; - evt.cancel(); - }, null, null, 0 ); - - // Create snapshot preceeding snapshot with changed widget... - // TODO it should not be required, but it is and I found similar - // code in dialog#ok listener in dialog/plugin.js. - that.editor.fire( 'saveSnapshot' ); - dialog.commitContent( that ); - - dataListener.removeListener(); - if ( dataChanged ) { - that.fire( 'data', that.data ); - that.editor.fire( 'saveSnapshot' ); - } - } ); - - dialog.once( 'hide', function() { - showListener.removeListener(); - okListener.removeListener(); - } ); - } ); - - return true; - }, - - /** - * Returns widget element classes parsed to an object. This method - * is used to populate the `classes` property of widget's {@link #property-data}. - * - * This method reuses {@link CKEDITOR.plugins.widget.repository#parseElementClasses}. - * It should be overriden if a widget should handle classes differently (e.g. on other elements). - * - * See also: {@link #removeClass}, {@link #addClass}, {@link #hasClass}. - * - * @since 4.4 - * @returns {Object} - */ - getClasses: function() { - return this.repository.parseElementClasses( this.element.getAttribute( 'class' ) ); - }, - - /** - * Checks if the widget element has specified class. This method is used by - * the {@link #checkStyleActive} method and should be overriden by widgets - * which should handle classes differently (e.g. on other elements). - * - * See also: {@link #removeClass}, {@link #addClass}, {@link #getClasses}. - * - * @since 4.4 - * @param {String} className The class to be checked. - * @param {Boolean} Whether a widget has specified class. - */ - hasClass: function( className ) { - return this.element.hasClass( className ); - }, - - /** - * Initializes a nested editable. - * - * **Note**: Only elements from {@link CKEDITOR.dtd#$editable} may become editables. - * - * @param {String} editableName The nested editable name. - * @param {CKEDITOR.plugins.widget.nestedEditable.definition} definition The definition of the nested editable. - * @returns {Boolean} Whether an editable was successfully initialized. - */ - initEditable: function( editableName, definition ) { - // Don't fetch just first element which matched selector but look for a correct one. (http://dev.ckeditor.com/ticket/13334) - var editable = this._findOneNotNested( definition.selector ); - - if ( editable && editable.is( CKEDITOR.dtd.$editable ) ) { - editable = new NestedEditable( this.editor, editable, { - filter: createEditableFilter.call( this.repository, this.name, editableName, definition ) - } ); - this.editables[ editableName ] = editable; - - editable.setAttributes( { - contenteditable: 'true', - 'data-cke-widget-editable': editableName, - 'data-cke-enter-mode': editable.enterMode - } ); - - if ( editable.filter ) - editable.data( 'cke-filter', editable.filter.id ); - - editable.addClass( 'cke_widget_editable' ); - // This class may be left when d&ding widget which - // had focused editable. Clean this class here, not in - // cleanUpWidgetElement for performance and code size reasons. - editable.removeClass( 'cke_widget_editable_focused' ); - - if ( definition.pathName ) - editable.data( 'cke-display-name', definition.pathName ); - - this.editor.focusManager.add( editable ); - editable.on( 'focus', onEditableFocus, this ); - CKEDITOR.env.ie && editable.on( 'blur', onEditableBlur, this ); - - // Finally, process editable's data. This data wasn't processed when loading - // editor's data, becuase they need to be processed separately, with its own filters and settings. - editable._.initialSetData = true; - editable.setData( editable.getHtml() ); - - return true; - } - - return false; - }, - - /** - * Looks inside wrapper element to find a node that - * matches given selector and is not nested in other widget. (http://dev.ckeditor.com/ticket/13334) - * - * @since 4.5 - * @private - * @param {String} selector Selector to match. - * @returns {CKEDITOR.dom.element} Matched element or `null` if a node has not been found. - */ - _findOneNotNested: function( selector ) { - var matchedElements = this.wrapper.find( selector ), - match, - closestWrapper; - - for ( var i = 0; i < matchedElements.count(); i++ ) { - match = matchedElements.getItem( i ); - closestWrapper = match.getAscendant( Widget.isDomWidgetWrapper ); - - // The closest ascendant-wrapper of this match defines to which widget - // this match belongs. If the ascendant is this widget's wrapper - // it means that the match is not nested in other widget. - if ( this.wrapper.equals( closestWrapper ) ) { - return match; - } - } - - return null; - }, - - /** - * Checks if a widget has already been initialized and has not been destroyed yet. - * - * See {@link #inited} for more details. - * - * @returns {Boolean} - */ - isInited: function() { - return !!( this.wrapper && this.inited ); - }, - - /** - * Checks if a widget is ready and has not been destroyed yet. - * - * See {@link #property-ready} for more details. - * - * @returns {Boolean} - */ - isReady: function() { - return this.isInited() && this.ready; - }, - - /** - * Focuses a widget by selecting it. - */ - focus: function() { - var sel = this.editor.getSelection(); - - // Fake the selection before focusing editor, to avoid unpreventable viewports scrolling - // on Webkit/Blink/IE which is done because there's no selection or selection was somewhere else than widget. - if ( sel ) { - var isDirty = this.editor.checkDirty(); - - sel.fake( this.wrapper ); - - !isDirty && this.editor.resetDirty(); - } - - // Always focus editor (not only when focusManger.hasFocus is false) (because of http://dev.ckeditor.com/ticket/10483). - this.editor.focus(); - }, - - /** - * Removes a class from the widget element. This method is used by - * the {@link #removeStyle} method and should be overriden by widgets - * which should handle classes differently (e.g. on other elements). - * - * **Note**: This method should not be used directly. Use the {@link #setData} method to - * set the `classes` property. Read more in the {@link #setData} documentation. - * - * See also: {@link #hasClass}, {@link #addClass}. - * - * @since 4.4 - * @param {String} className The class to be removed. - */ - removeClass: function( className ) { - this.element.removeClass( className ); - this.wrapper.removeClass( Widget.WRAPPER_CLASS_PREFIX + className ); - }, - - /** - * Removes the specified style from the widget. It is highly recommended to use the - * {@link CKEDITOR.editor#removeStyle} or {@link CKEDITOR.style#remove} methods instead of - * using this method directly, because unlike editor's and style's methods, this one - * does not perform any checks. - * - * Read more about how applying/removing styles works in the {@link #applyStyle} method documentation. - * - * See also {@link #checkStyleActive}, {@link #applyStyle}, {@link #getClasses}. - * - * @since 4.4 - * @param {CKEDITOR.style} style The custom widget style to be removed. - */ - removeStyle: function( style ) { - applyRemoveStyle( this, style, 0 ); - }, - - /** - * Sets widget value(s) in the {@link #property-data} object. - * If the given value(s) modifies current ones, the {@link #event-data} event is fired. - * - * this.setData( 'align', 'left' ); - * this.data.align; // -> 'left' - * - * this.setData( { align: 'right', opened: false } ); - * this.data.align; // -> 'right' - * this.data.opened; // -> false - * - * Set values are stored in {@link #element}'s attribute (`data-cke-widget-data`), - * in a JSON string, therefore {@link #property-data} should contain - * only serializable data. - * - * **Note:** A special data property, `classes`, exists. It contains an object with - * classes which were returned by the {@link #getClasses} method during the widget initialization. - * This property is then used by the {@link #applyStyle} and {@link #removeStyle} methods. - * When it is changed (the reference to object must be changed!), the widget updates its classes by - * using the {@link #addClass} and {@link #removeClass} methods. - * - * // Adding a new class. - * var classes = CKEDITOR.tools.clone( widget.data.classes ); - * classes.newClass = 1; - * widget.setData( 'classes', classes ); - * - * // Removing a class. - * var classes = CKEDITOR.tools.clone( widget.data.classes ); - * delete classes.newClass; - * widget.setData( 'classes', classes ); - * - * @param {String/Object} keyOrData - * @param {Object} value - * @chainable - */ - setData: function( key, value ) { - var data = this.data, - modified = 0; - - if ( typeof key == 'string' ) { - if ( data[ key ] !== value ) { - data[ key ] = value; - modified = 1; - } - } - else { - var newData = key; - - for ( key in newData ) { - if ( data[ key ] !== newData[ key ] ) { - modified = 1; - data[ key ] = newData[ key ]; - } - } - } - - // Block firing data event and overwriting data element before setupWidgetData is executed. - if ( modified && this.dataReady ) { - writeDataToElement( this ); - this.fire( 'data', data ); - } - - return this; - }, - - /** - * Changes the widget's focus state. This method is executed automatically after - * a widget was focused by the {@link #method-focus} method or the selection was moved - * out of the widget. - * - * This is a low-level method which is not integrated with e.g. the undo manager. - * Use the {@link #method-focus} method instead. - * - * @param {Boolean} selected Whether to select or deselect this widget. - * @chainable - */ - setFocused: function( focused ) { - this.wrapper[ focused ? 'addClass' : 'removeClass' ]( 'cke_widget_focused' ); - this.fire( focused ? 'focus' : 'blur' ); - return this; - }, - - /** - * Changes the widget's select state. This method is executed automatically after - * a widget was selected by the {@link #method-focus} method or the selection - * was moved out of the widget. - * - * This is a low-level method which is not integrated with e.g. the undo manager. - * Use the {@link #method-focus} method instead or simply change the selection. - * - * @param {Boolean} selected Whether to select or deselect this widget. - * @chainable - */ - setSelected: function( selected ) { - this.wrapper[ selected ? 'addClass' : 'removeClass' ]( 'cke_widget_selected' ); - this.fire( selected ? 'select' : 'deselect' ); - return this; - }, - - /** - * Repositions drag handler according to the widget's element position. Should be called from events, like mouseover. - */ - updateDragHandlerPosition: function() { - var editor = this.editor, - domElement = this.element.$, - oldPos = this._.dragHandlerOffset, - newPos = { - x: domElement.offsetLeft, - y: domElement.offsetTop - DRAG_HANDLER_SIZE - }; - - if ( oldPos && newPos.x == oldPos.x && newPos.y == oldPos.y ) - return; - - // We need to make sure that dirty state is not changed (http://dev.ckeditor.com/ticket/11487). - var initialDirty = editor.checkDirty(); - - editor.fire( 'lockSnapshot' ); - this.dragHandlerContainer.setStyles( { - top: newPos.y + 'px', - left: newPos.x + 'px', - display: 'block' - } ); - editor.fire( 'unlockSnapshot' ); - !initialDirty && editor.resetDirty(); - - this._.dragHandlerOffset = newPos; - } - }; - - CKEDITOR.event.implementOn( Widget.prototype ); - - /** - * Gets the {@link #isDomNestedEditable nested editable} - * (returned as a {@link CKEDITOR.dom.element}, not as a {@link CKEDITOR.plugins.widget.nestedEditable}) - * closest to the `node` or the `node` if it is a nested editable itself. - * - * @since 4.5 - * @static - * @param {CKEDITOR.dom.element} guard Stop ancestor search on this node (usually editor's editable). - * @param {CKEDITOR.dom.node} node Start the search from this node. - * @returns {CKEDITOR.dom.element/null} Element or `null` if not found. - */ - Widget.getNestedEditable = function( guard, node ) { - if ( !node || node.equals( guard ) ) - return null; - - if ( Widget.isDomNestedEditable( node ) ) - return node; - - return Widget.getNestedEditable( guard, node.getParent() ); - }; - - /** - * Checks whether the `node` is a widget's drag handle element. - * - * @since 4.5 - * @static - * @param {CKEDITOR.dom.node} node - * @returns {Boolean} - */ - Widget.isDomDragHandler = function( node ) { - return node.type == CKEDITOR.NODE_ELEMENT && node.hasAttribute( 'data-cke-widget-drag-handler' ); - }; - - /** - * Checks whether the `node` is a container of the widget's drag handle element. - * - * @since 4.5 - * @static - * @param {CKEDITOR.dom.node} node - * @returns {Boolean} - */ - Widget.isDomDragHandlerContainer = function( node ) { - return node.type == CKEDITOR.NODE_ELEMENT && node.hasClass( 'cke_widget_drag_handler_container' ); - }; - - /** - * Checks whether the `node` is a {@link CKEDITOR.plugins.widget#editables nested editable}. - * Note that this function only checks whether it is the right element, not whether - * the passed `node` is an instance of {@link CKEDITOR.plugins.widget.nestedEditable}. - * - * @since 4.5 - * @static - * @param {CKEDITOR.dom.node} node - * @returns {Boolean} - */ - Widget.isDomNestedEditable = function( node ) { - return node.type == CKEDITOR.NODE_ELEMENT && node.hasAttribute( 'data-cke-widget-editable' ); - }; - - /** - * Checks whether the `node` is a {@link CKEDITOR.plugins.widget#element widget element}. - * - * @since 4.5 - * @static - * @param {CKEDITOR.dom.node} node - * @returns {Boolean} - */ - Widget.isDomWidgetElement = function( node ) { - return node.type == CKEDITOR.NODE_ELEMENT && node.hasAttribute( 'data-widget' ); - }; - - /** - * Checks whether the `node` is a {@link CKEDITOR.plugins.widget#wrapper widget wrapper}. - * - * @since 4.5 - * @static - * @param {CKEDITOR.dom.element} node - * @returns {Boolean} - */ - Widget.isDomWidgetWrapper = function( node ) { - return node.type == CKEDITOR.NODE_ELEMENT && node.hasAttribute( 'data-cke-widget-wrapper' ); - }; - - /** - * Checks whether the `node` is a {@link CKEDITOR.plugins.widget#element widget element}. - * - * @since 4.5 - * @static - * @param {CKEDITOR.htmlParser.node} node - * @returns {Boolean} - */ - Widget.isParserWidgetElement = function( node ) { - return node.type == CKEDITOR.NODE_ELEMENT && !!node.attributes[ 'data-widget' ]; - }; - - /** - * Checks whether the `node` is a {@link CKEDITOR.plugins.widget#wrapper widget wrapper}. - * - * @since 4.5 - * @static - * @param {CKEDITOR.htmlParser.element} node - * @returns {Boolean} - */ - Widget.isParserWidgetWrapper = function( node ) { - return node.type == CKEDITOR.NODE_ELEMENT && !!node.attributes[ 'data-cke-widget-wrapper' ]; - }; - - /** - * Prefix added to wrapper classes. Each class added to the widget element by the {@link #addClass} - * method will also be added to the wrapper prefixed with it. - * - * @since 4.6.0 - * @static - * @readonly - * @property {String} [='cke_widget_wrapper_'] - */ - Widget.WRAPPER_CLASS_PREFIX = 'cke_widget_wrapper_'; - - /** - * An event fired when a widget is ready (fully initialized). This event is fired after: - * - * * {@link #init} is called, - * * The first {@link #event-data} event is fired, - * * A widget is attached to the document. - * - * Therefore, in case of widget creation with a command which opens a dialog window, this event - * will be delayed after the dialog window is closed and the widget is finally inserted into the document. - * - * **Note**: If your widget does not use automatic dialog window binding (i.e. you open the dialog window manually) - * or another situation in which the widget wrapper is not attached to document at the time when it is - * initialized occurs, you need to take care of firing {@link #event-ready} yourself. - * - * See also {@link #property-ready} and {@link #property-inited} properties, and - * {@link #isReady} and {@link #isInited} methods. - * - * @event ready - */ - - /** - * An event fired when a widget is about to be destroyed, but before it is - * fully torn down. - * - * @event destroy - */ - - /** - * An event fired when a widget is focused. - * - * Widget can be focused by executing {@link #method-focus}. - * - * @event focus - */ - - /** - * An event fired when a widget is blurred. - * - * @event blur - */ - - /** - * An event fired when a widget is selected. - * - * @event select - */ - - /** - * An event fired when a widget is deselected. - * - * @event deselect - */ - - /** - * An event fired by the {@link #method-edit} method. It can be canceled - * in order to stop the default action (opening a dialog window and/or - * {@link CKEDITOR.plugins.widget.repository#finalizeCreation finalizing widget creation}). - * - * @event edit - * @param data - * @param {String} data.dialog Defaults to {@link CKEDITOR.plugins.widget.definition#dialog} - * and can be changed or set by the listener. - */ - - /** - * An event fired when a dialog window for widget editing is opened. - * This event can be canceled in order to handle the editing dialog in a custom manner. - * - * @event dialog - * @param {CKEDITOR.dialog} data The opened dialog window instance. - */ - - /** - * An event fired when a key is pressed on a focused widget. - * This event is forwarded from the {@link CKEDITOR.editor#key} event and - * has the ability to block editor keystrokes if it is canceled. - * - * @event key - * @param data - * @param {Number} data.keyCode A number representing the key code (or combination). - */ - - /** - * An event fired when a widget is double clicked. - * - * **Note:** If a default editing action is executed on double click (i.e. a widget has a - * {@link CKEDITOR.plugins.widget.definition#dialog dialog} defined and the {@link #event-doubleclick} event was not - * canceled), this event will be automatically canceled, so a listener added with the default priority (10) - * will not be executed. Use a listener with low priority (e.g. 5) to be sure that it will be executed. - * - * widget.on( 'doubleclick', function( evt ) { - * console.log( 'widget#doubleclick' ); - * }, null, null, 5 ); - * - * If your widget handles double click in a special way (so the default editing action is not executed), - * make sure you cancel this event, because otherwise it will be propagated to {@link CKEDITOR.editor#doubleclick} - * and another feature may step in (e.g. a Link dialog window may be opened if your widget was inside a link). - * - * @event doubleclick - * @param data - * @param {CKEDITOR.dom.element} data.element The double-clicked element. - */ - - /** - * An event fired when the context menu is opened for a widget. - * - * @event contextMenu - * @param data The object containing context menu options to be added - * for this widget. See {@link CKEDITOR.plugins.contextMenu#addListener}. - */ - - /** - * An event fired when the widget data changed. See the {@link #setData} method and the {@link #property-data} property. - * - * @event data - */ - - - - /** - * The wrapper class for editable elements inside widgets. - * - * Do not use directly. Use {@link CKEDITOR.plugins.widget.definition#editables} or - * {@link CKEDITOR.plugins.widget#initEditable}. - * - * @class CKEDITOR.plugins.widget.nestedEditable - * @extends CKEDITOR.dom.element - * @constructor - * @param {CKEDITOR.editor} editor - * @param {CKEDITOR.dom.element} element - * @param config - * @param {CKEDITOR.filter} [config.filter] - */ - function NestedEditable( editor, element, config ) { - // Call the base constructor. - CKEDITOR.dom.element.call( this, element.$ ); - this.editor = editor; - this._ = {}; - var filter = this.filter = config.filter; - - // If blockless editable - always use BR mode. - if ( !CKEDITOR.dtd[ this.getName() ].p ) - this.enterMode = this.shiftEnterMode = CKEDITOR.ENTER_BR; - else { - this.enterMode = filter ? filter.getAllowedEnterMode( editor.enterMode ) : editor.enterMode; - this.shiftEnterMode = filter ? filter.getAllowedEnterMode( editor.shiftEnterMode, true ) : editor.shiftEnterMode; - } - } - - NestedEditable.prototype = CKEDITOR.tools.extend( CKEDITOR.tools.prototypedCopy( CKEDITOR.dom.element.prototype ), { - /** - * Sets the editable data. The data will be passed through the {@link CKEDITOR.editor#dataProcessor} - * and the {@link CKEDITOR.editor#filter}. This ensures that the data was filtered and prepared to be - * edited like the {@link CKEDITOR.editor#method-setData editor data}. - * - * Before content is changed, all nested widgets are destroyed. Afterwards, after new content is loaded, - * all nested widgets are initialized. - * - * @param {String} data - */ - setData: function( data ) { - // For performance reasons don't call destroyAll when initializing a nested editable, - // because there are no widgets inside. - if ( !this._.initialSetData ) { - // Destroy all nested widgets before setting data. - this.editor.widgets.destroyAll( false, this ); - } - this._.initialSetData = false; - - data = this.editor.dataProcessor.toHtml( data, { - context: this.getName(), - filter: this.filter, - enterMode: this.enterMode - } ); - this.setHtml( data ); - - this.editor.widgets.initOnAll( this ); - }, - - /** - * Gets the editable data. Like {@link #setData}, this method will process and filter the data. - * - * @returns {String} - */ - getData: function() { - return this.editor.dataProcessor.toDataFormat( this.getHtml(), { - context: this.getName(), - filter: this.filter, - enterMode: this.enterMode - } ); - } - } ); - - /** - * The editor instance. - * - * @readonly - * @property {CKEDITOR.editor} editor - */ - - /** - * The filter instance if allowed content rules were defined. - * - * @readonly - * @property {CKEDITOR.filter} filter - */ - - /** - * The enter mode active in this editable. - * It is determined from editable's name (whether it is a blockless editable), - * its allowed content rules (if defined) and the default editor's mode. - * - * @readonly - * @property {Number} enterMode - */ - - /** - * The shift enter move active in this editable. - * - * @readonly - * @property {Number} shiftEnterMode - */ - - - // - // REPOSITORY helpers ----------------------------------------------------- - // - - function addWidgetButtons( editor ) { - var widgets = editor.widgets.registered, - widget, - widgetName, - widgetButton; - - for ( widgetName in widgets ) { - widget = widgets[ widgetName ]; - - // Create button if defined. - widgetButton = widget.button; - if ( widgetButton && editor.ui.addButton ) { - editor.ui.addButton( CKEDITOR.tools.capitalize( widget.name, true ), { - label: widgetButton, - command: widget.name, - toolbar: 'insert,10' - } ); - } - } - } - - // Create a command creating and editing widget. - // - // @param editor - // @param {CKEDITOR.plugins.widget.definition} widgetDef - function addWidgetCommand( editor, widgetDef ) { - editor.addCommand( widgetDef.name, { - exec: function( editor, commandData ) { - var focused = editor.widgets.focused; - // If a widget of the same type is focused, start editing. - if ( focused && focused.name == widgetDef.name ) - focused.edit(); - // Otherwise... - // ... use insert method is was defined. - else if ( widgetDef.insert ) - widgetDef.insert(); - // ... or create a brand-new widget from template. - else if ( widgetDef.template ) { - var defaults = typeof widgetDef.defaults == 'function' ? widgetDef.defaults() : widgetDef.defaults, - element = CKEDITOR.dom.element.createFromHtml( widgetDef.template.output( defaults ) ), - instance, - wrapper = editor.widgets.wrapElement( element, widgetDef.name ), - temp = new CKEDITOR.dom.documentFragment( wrapper.getDocument() ); - - // Append wrapper to a temporary document. This will unify the environment - // in which #data listeners work when creating and editing widget. - temp.append( wrapper ); - instance = editor.widgets.initOn( element, widgetDef, commandData && commandData.startupData ); - - // Instance could be destroyed during initialization. - // In this case finalize creation if some new widget - // was left in temporary document fragment. - if ( !instance ) { - finalizeCreation(); - return; - } - - // Listen on edit to finalize widget insertion. - // - // * If dialog was set, then insert widget after dialog was successfully saved or destroy this - // temporary instance. - // * If dialog wasn't set and edit wasn't canceled, insert widget. - var editListener = instance.once( 'edit', function( evt ) { - if ( evt.data.dialog ) { - instance.once( 'dialog', function( evt ) { - var dialog = evt.data, - okListener, - cancelListener; - - // Finalize creation AFTER (20) new data was set. - okListener = dialog.once( 'ok', finalizeCreation, null, null, 20 ); - - cancelListener = dialog.once( 'cancel', function( evt ) { - if ( !( evt.data && evt.data.hide === false ) ) { - editor.widgets.destroy( instance, true ); - } - } ); - - dialog.once( 'hide', function() { - okListener.removeListener(); - cancelListener.removeListener(); - } ); - } ); - } else { - // Dialog hasn't been set, so insert widget now. - finalizeCreation(); - } - }, null, null, 999 ); - - instance.edit(); - - // Remove listener in case someone canceled it before this - // listener was executed. - editListener.removeListener(); - } - - function finalizeCreation() { - editor.widgets.finalizeCreation( temp ); - } - }, - - allowedContent: widgetDef.allowedContent, - requiredContent: widgetDef.requiredContent, - contentForms: widgetDef.contentForms, - contentTransformations: widgetDef.contentTransformations - } ); - } - - function addWidgetProcessors( widgetsRepo, widgetDef ) { - var upcast = widgetDef.upcast, - upcasts, - priority = widgetDef.upcastPriority || 10; - - if ( !upcast ) - return; - - // Multiple upcasts defined in string. - if ( typeof upcast == 'string' ) { - upcasts = upcast.split( ',' ); - while ( upcasts.length ) { - addUpcast( widgetDef.upcasts[ upcasts.pop() ], widgetDef.name, priority ); - } - } - // Single rule which is automatically activated. - else { - addUpcast( upcast, widgetDef.name, priority ); - } - - function addUpcast( upcast, name, priority ) { - // Find index of the first higher (in terms of value) priority upcast. - var index = CKEDITOR.tools.getIndex( widgetsRepo._.upcasts, function( element ) { - return element[ 2 ] > priority; - } ); - // Add at the end if it is the highest priority so far. - if ( index < 0 ) { - index = widgetsRepo._.upcasts.length; - } - - widgetsRepo._.upcasts.splice( index, 0, [ upcast, name, priority ] ); - } - } - - function blurWidget( widgetsRepo, widget ) { - widgetsRepo.focused = null; - - if ( widget.isInited() ) { - var isDirty = widget.editor.checkDirty(); - - // Widget could be destroyed in the meantime - e.g. data could be set. - widgetsRepo.fire( 'widgetBlurred', { widget: widget } ); - widget.setFocused( false ); - - !isDirty && widget.editor.resetDirty(); - } - } - - function checkWidgets( evt ) { - var options = evt.data; - - if ( this.editor.mode != 'wysiwyg' ) - return; - - var editable = this.editor.editable(), - instances = this.instances, - newInstances, i, count, wrapper, notYetInitialized; - - if ( !editable ) - return; - - // Remove widgets which have no corresponding elements in DOM. - for ( i in instances ) { - // http://dev.ckeditor.com/ticket/13410 Remove widgets that are ready. This prevents from destroying widgets that are during loading process. - if ( instances[ i ].isReady() && !editable.contains( instances[ i ].wrapper ) ) - this.destroy( instances[ i ], true ); - } - - // Init on all (new) if initOnlyNew option was passed. - if ( options && options.initOnlyNew ) - newInstances = this.initOnAll(); - else { - var wrappers = editable.find( '.cke_widget_wrapper' ); - newInstances = []; - - // Create widgets on existing wrappers if they do not exists. - for ( i = 0, count = wrappers.count(); i < count; i++ ) { - wrapper = wrappers.getItem( i ); - notYetInitialized = !this.getByElement( wrapper, true ); - - // Check if: - // * there's no instance for this widget - // * wrapper is not inside some temporary element like copybin (http://dev.ckeditor.com/ticket/11088) - // * it was a nested widget's wrapper which has been detached from DOM, - // when nested editable has been initialized (it overwrites its innerHTML - // and initializes nested widgets). - if ( notYetInitialized && !findParent( wrapper, isDomTemp ) && editable.contains( wrapper ) ) { - // Add cke_widget_new class because otherwise - // widget will not be created on such wrapper. - wrapper.addClass( 'cke_widget_new' ); - newInstances.push( this.initOn( wrapper.getFirst( Widget.isDomWidgetElement ) ) ); - } - } - } - - // If only single widget was initialized and focusInited was passed, focus it. - if ( options && options.focusInited && newInstances.length == 1 ) - newInstances[ 0 ].focus(); - } - - // Unwraps widget element and clean up element. - // - // This function is used to clean up pasted widgets. - // It should have similar result to widget#destroy plus - // some additional adjustments, specific for pasting. - // - // @param {CKEDITOR.htmlParser.element} el - function cleanUpWidgetElement( el ) { - var parent = el.parent; - if ( parent.type == CKEDITOR.NODE_ELEMENT && parent.attributes[ 'data-cke-widget-wrapper' ] ) - parent.replaceWith( el ); - } - - // Similar to cleanUpWidgetElement, but works on DOM and finds - // widget elements by its own. - // - // Unlike cleanUpWidgetElement it will wrap element back. - // - // @param {CKEDITOR.dom.element} container - function cleanUpAllWidgetElements( widgetsRepo, container ) { - var wrappers = container.find( '.cke_widget_wrapper' ), - wrapper, element, - i = 0, - l = wrappers.count(); - - for ( ; i < l; ++i ) { - wrapper = wrappers.getItem( i ); - element = wrapper.getFirst( Widget.isDomWidgetElement ); - // If wrapper contains widget element - unwrap it and wrap again. - if ( element.type == CKEDITOR.NODE_ELEMENT && element.data( 'widget' ) ) { - element.replace( wrapper ); - widgetsRepo.wrapElement( element ); - } else { - // Otherwise - something is wrong... clean this up. - wrapper.remove(); - } - } - } - - // Creates {@link CKEDITOR.filter} instance for given widget, editable and rules. - // - // Once filter for widget-editable pair is created it is cached, so the same instance - // will be returned when method is executed again. - // - // @param {String} widgetName - // @param {String} editableName - // @param {CKEDITOR.plugins.widget.nestedEditableDefinition} editableDefinition The nested editable definition. - // @returns {CKEDITOR.filter} Filter instance or `null` if rules are not defined. - // @context CKEDITOR.plugins.widget.repository - function createEditableFilter( widgetName, editableName, editableDefinition ) { - if ( !editableDefinition.allowedContent && !editableDefinition.disallowedContent ) - return null; - - var editables = this._.filters[ widgetName ]; - - if ( !editables ) - this._.filters[ widgetName ] = editables = {}; - - var filter = editables[ editableName ]; - - if ( !filter ) { - filter = editableDefinition.allowedContent ? new CKEDITOR.filter( editableDefinition.allowedContent ) : this.editor.filter.clone(); - - editables[ editableName ] = filter; - - if ( editableDefinition.disallowedContent ) { - filter.disallow( editableDefinition.disallowedContent ); - } - } - - return filter; - } - - // Creates an iterator function which when executed on all - // elements in DOM tree will gather elements that should be wrapped - // and initialized as widgets. - function createUpcastIterator( widgetsRepo ) { - var toBeWrapped = [], - upcasts = widgetsRepo._.upcasts, - upcastCallbacks = widgetsRepo._.upcastCallbacks; - - return { - toBeWrapped: toBeWrapped, - - iterator: function( element ) { - var upcast, upcasted, - data, - i, - upcastsLength, - upcastCallbacksLength; - - // Wrapper found - find widget element, add it to be - // cleaned up (unwrapped) and wrapped and stop iterating in this branch. - if ( 'data-cke-widget-wrapper' in element.attributes ) { - element = element.getFirst( Widget.isParserWidgetElement ); - - if ( element ) - toBeWrapped.push( [ element ] ); - - // Do not iterate over descendants. - return false; - } - // Widget element found - add it to be cleaned up (just in case) - // and wrapped and stop iterating in this branch. - else if ( 'data-widget' in element.attributes ) { - toBeWrapped.push( [ element ] ); - - // Do not iterate over descendants. - return false; - } - else if ( ( upcastsLength = upcasts.length ) ) { - // Ignore elements with data-cke-widget-upcasted to avoid multiple upcasts (http://dev.ckeditor.com/ticket/11533). - // Do not iterate over descendants. - if ( element.attributes[ 'data-cke-widget-upcasted' ] ) - return false; - - // Check element with upcast callbacks first. - // If any of them return false abort upcasting. - for ( i = 0, upcastCallbacksLength = upcastCallbacks.length; i < upcastCallbacksLength; ++i ) { - if ( upcastCallbacks[ i ]( element ) === false ) - return; - // Return nothing in order to continue iterating over ascendants. - // See http://dev.ckeditor.com/ticket/11186#comment:6 - } - - for ( i = 0; i < upcastsLength; ++i ) { - upcast = upcasts[ i ]; - data = {}; - - if ( ( upcasted = upcast[ 0 ]( element, data ) ) ) { - // If upcast function returned element, upcast this one. - // It can be e.g. a new element wrapping the original one. - if ( upcasted instanceof CKEDITOR.htmlParser.element ) - element = upcasted; - - // Set initial data attr with data from upcast method. - element.attributes[ 'data-cke-widget-data' ] = encodeURIComponent( JSON.stringify( data ) ); - element.attributes[ 'data-cke-widget-upcasted' ] = 1; - - toBeWrapped.push( [ element, upcast[ 1 ] ] ); - - // Do not iterate over descendants. - return false; - } - } - } - } - }; - } - - // Finds a first parent that matches query. - // - // @param {CKEDITOR.dom.element} element - // @param {Function} query - function findParent( element, query ) { - var parent = element; - - while ( ( parent = parent.getParent() ) ) { - if ( query( parent ) ) - return true; - } - return false; - } - - function getWrapperAttributes( inlineWidget, name ) { - return { - // tabindex="-1" means that it can receive focus by code. - tabindex: -1, - contenteditable: 'false', - 'data-cke-widget-wrapper': 1, - 'data-cke-filter': 'off', - // Class cke_widget_new marks widgets which haven't been initialized yet. - 'class': 'cke_widget_wrapper cke_widget_new cke_widget_' + - ( inlineWidget ? 'inline' : 'block' ) + - ( name ? ' cke_widget_' + name : '' ) - }; - } - - // Inserts element at given index. - // It will check DTD and split ancestor elements up to the first - // that can contain this element. - // - // @param {CKEDITOR.htmlParser.element} parent - // @param {Number} index - // @param {CKEDITOR.htmlParser.element} element - function insertElement( parent, index, element ) { - // Do not split doc fragment... - if ( parent.type == CKEDITOR.NODE_ELEMENT ) { - var parentAllows = CKEDITOR.dtd[ parent.name ]; - // Parent element is known (included in DTD) and cannot contain - // this element. - if ( parentAllows && !parentAllows[ element.name ] ) { - var parent2 = parent.split( index ), - parentParent = parent.parent; - - // Element will now be inserted at right parent's index. - index = parent2.getIndex(); - - // If left part of split is empty - remove it. - if ( !parent.children.length ) { - index -= 1; - parent.remove(); - } - - // If right part of split is empty - remove it. - if ( !parent2.children.length ) - parent2.remove(); - - // Try inserting as grandpas' children. - return insertElement( parentParent, index, element ); - } - } - - // Finally we can add this element. - parent.add( element, index ); - } - - // Checks whether for the given widget definition and element widget should be created in inline or block mode. - // - // See also: {@link CKEDITOR.plugins.widget.definition#inline} and {@link CKEDITOR.plugins.widget#element}. - // - // @param {CKEDITOR.plugins.widget.definition} widgetDef The widget definition. - // @param {String} elementName The name of the widget element. - // @returns {Boolean} - function isWidgetInline( widgetDef, elementName ) { - return typeof widgetDef.inline == 'boolean' ? widgetDef.inline : !!CKEDITOR.dtd.$inline[ elementName ]; - } - - // @param {CKEDITOR.dom.element} - // @returns {Boolean} - function isDomTemp( element ) { - return element.hasAttribute( 'data-cke-temp' ); - } - - function onEditableKey( widget, keyCode ) { - var focusedEditable = widget.focusedEditable, - range; - - // CTRL+A. - if ( keyCode == CKEDITOR.CTRL + 65 ) { - var bogus = focusedEditable.getBogus(); - - range = widget.editor.createRange(); - range.selectNodeContents( focusedEditable ); - // Exclude bogus if exists. - if ( bogus ) - range.setEndAt( bogus, CKEDITOR.POSITION_BEFORE_START ); - - range.select(); - // Cancel event - block default. - return false; - } - // DEL or BACKSPACE. - else if ( keyCode == 8 || keyCode == 46 ) { - var ranges = widget.editor.getSelection().getRanges(); - - range = ranges[ 0 ]; - - // Block del or backspace if at editable's boundary. - return !( ranges.length == 1 && range.collapsed && - range.checkBoundaryOfElement( focusedEditable, CKEDITOR[ keyCode == 8 ? 'START' : 'END' ] ) ); - } - } - - function setFocusedEditable( widgetsRepo, widget, editableElement, offline ) { - var editor = widgetsRepo.editor; - - editor.fire( 'lockSnapshot' ); - - if ( editableElement ) { - var editableName = editableElement.data( 'cke-widget-editable' ), - editableInstance = widget.editables[ editableName ]; - - widgetsRepo.widgetHoldingFocusedEditable = widget; - widget.focusedEditable = editableInstance; - editableElement.addClass( 'cke_widget_editable_focused' ); - - if ( editableInstance.filter ) - editor.setActiveFilter( editableInstance.filter ); - editor.setActiveEnterMode( editableInstance.enterMode, editableInstance.shiftEnterMode ); - } else { - if ( !offline ) - widget.focusedEditable.removeClass( 'cke_widget_editable_focused' ); - - widget.focusedEditable = null; - widgetsRepo.widgetHoldingFocusedEditable = null; - editor.setActiveFilter( null ); - editor.setActiveEnterMode( null, null ); - } - - editor.fire( 'unlockSnapshot' ); - } - - function setupContextMenu( editor ) { - if ( !editor.contextMenu ) - return; - - editor.contextMenu.addListener( function( element ) { - var widget = editor.widgets.getByElement( element, true ); - - if ( widget ) - return widget.fire( 'contextMenu', {} ); - } ); - } - - // And now we've got two problems - original problem and RegExp. - // Some softeners: - // * FF tends to copy all blocks up to the copybin container. - // * IE tends to copy only the copybin, without its container. - // * We use spans on IE and blockless editors, but divs in other cases. - var pasteReplaceRegex = new RegExp( - '^' + - '(?:<(?:div|span)(?: data-cke-temp="1")?(?: id="cke_copybin")?(?: data-cke-temp="1")?>)?' + - '(?:<(?:div|span)(?: style="[^"]+")?>)?' + - '<span [^>]*data-cke-copybin-start="1"[^>]*>.?</span>([\\s\\S]+)<span [^>]*data-cke-copybin-end="1"[^>]*>.?</span>' + - '(?:</(?:div|span)>)?' + - '(?:</(?:div|span)>)?' + - '$', - // IE8 prefers uppercase when browsers stick to lowercase HTML (http://dev.ckeditor.com/ticket/13460). - 'i' - ); - - function pasteReplaceFn( match, wrapperHtml ) { - // Avoid polluting pasted data with any whitspaces, - // what's going to break check whether only one widget was pasted. - return CKEDITOR.tools.trim( wrapperHtml ); - } - - function setupDragAndDrop( widgetsRepo ) { - var editor = widgetsRepo.editor, - lineutils = CKEDITOR.plugins.lineutils; - - // These listeners handle inline and block widgets drag and drop. - // The only thing we need to do to make block widgets custom drag and drop functionality - // is to fire those events with the right properties (like the target which must be the drag handle). - editor.on( 'dragstart', function( evt ) { - var target = evt.data.target; - - if ( Widget.isDomDragHandler( target ) ) { - var widget = widgetsRepo.getByElement( target ); - - evt.data.dataTransfer.setData( 'cke/widget-id', widget.id ); - - // IE needs focus. - editor.focus(); - - // and widget need to be focused on drag start (http://dev.ckeditor.com/ticket/12172#comment:10). - widget.focus(); - } - } ); - - editor.on( 'drop', function( evt ) { - var dataTransfer = evt.data.dataTransfer, - id = dataTransfer.getData( 'cke/widget-id' ), - transferType = dataTransfer.getTransferType( editor ), - dragRange = editor.createRange(), - sourceWidget; - - // Disable cross-editor drag & drop for widgets - http://dev.ckeditor.com/ticket/13599. - if ( id !== '' && transferType === CKEDITOR.DATA_TRANSFER_CROSS_EDITORS ) { - evt.cancel(); - return; - } - - if ( id === '' || transferType != CKEDITOR.DATA_TRANSFER_INTERNAL ) { - return; - } - - sourceWidget = widgetsRepo.instances[ id ]; - if ( !sourceWidget ) { - return; - } - - dragRange.setStartBefore( sourceWidget.wrapper ); - dragRange.setEndAfter( sourceWidget.wrapper ); - evt.data.dragRange = dragRange; - - // [IE8-9] Reset state of the clipboard#fixSplitNodesAfterDrop fix because by setting evt.data.dragRange - // (see above) after drop happened we do not need it. That fix is needed only if dragRange was created - // before drop (before text node was split). - delete CKEDITOR.plugins.clipboard.dragStartContainerChildCount; - delete CKEDITOR.plugins.clipboard.dragEndContainerChildCount; - - evt.data.dataTransfer.setData( 'text/html', editor.editable().getHtmlFromRange( dragRange ).getHtml() ); - editor.widgets.destroy( sourceWidget, true ); - } ); - - editor.on( 'contentDom', function() { - var editable = editor.editable(); - - // Register Lineutils's utilities as properties of repo. - CKEDITOR.tools.extend( widgetsRepo, { - finder: new lineutils.finder( editor, { - lookups: { - // Element is block but not list item and not in nested editable. - 'default': function( el ) { - if ( el.is( CKEDITOR.dtd.$listItem ) ) - return; - - if ( !el.is( CKEDITOR.dtd.$block ) ) - return; - - // Allow drop line inside, but never before or after nested editable (http://dev.ckeditor.com/ticket/12006). - if ( Widget.isDomNestedEditable( el ) ) - return; - - // Do not allow droping inside the widget being dragged (http://dev.ckeditor.com/ticket/13397). - if ( widgetsRepo._.draggedWidget.wrapper.contains( el ) ) { - return; - } - - // If element is nested editable, make sure widget can be dropped there (http://dev.ckeditor.com/ticket/12006). - var nestedEditable = Widget.getNestedEditable( editable, el ); - if ( nestedEditable ) { - var draggedWidget = widgetsRepo._.draggedWidget; - - // Don't let the widget to be dropped into its own nested editable. - if ( widgetsRepo.getByElement( nestedEditable ) == draggedWidget ) - return; - - var filter = CKEDITOR.filter.instances[ nestedEditable.data( 'cke-filter' ) ], - draggedRequiredContent = draggedWidget.requiredContent; - - // There will be no relation if the filter of nested editable does not allow - // requiredContent of dragged widget. - if ( filter && draggedRequiredContent && !filter.check( draggedRequiredContent ) ) - return; - } - - return CKEDITOR.LINEUTILS_BEFORE | CKEDITOR.LINEUTILS_AFTER; - } - } - } ), - locator: new lineutils.locator( editor ), - liner: new lineutils.liner( editor, { - lineStyle: { - cursor: 'move !important', - 'border-top-color': '#666' - }, - tipLeftStyle: { - 'border-left-color': '#666' - }, - tipRightStyle: { - 'border-right-color': '#666' - } - } ) - }, true ); - } ); - } - - // Setup mouse observer which will trigger: - // * widget focus on widget click, - // * widget#doubleclick forwarded from editor#doubleclick. - function setupMouseObserver( widgetsRepo ) { - var editor = widgetsRepo.editor; - - editor.on( 'contentDom', function() { - var editable = editor.editable(), - evtRoot = editable.isInline() ? editable : editor.document, - widget, - mouseDownOnDragHandler; - - editable.attachListener( evtRoot, 'mousedown', function( evt ) { - var target = evt.data.getTarget(); - - // Clicking scrollbar in Chrome will invoke event with target object of document type (#663). - // In IE8 the target object will be empty (http://dev.ckeditor.com/ticket/10887). - // We need to check if target is a proper element. - widget = ( target instanceof CKEDITOR.dom.element ) ? widgetsRepo.getByElement( target ) : null; - - mouseDownOnDragHandler = 0; // Reset. - - // Widget was clicked, but not editable nested in it. - if ( widget ) { - // Ignore mousedown on drag and drop handler if the widget is inline. - // Block widgets are handled by Lineutils. - if ( widget.inline && target.type == CKEDITOR.NODE_ELEMENT && target.hasAttribute( 'data-cke-widget-drag-handler' ) ) { - mouseDownOnDragHandler = 1; - - // When drag handler is pressed we have to clear current selection if it wasn't already on this widget. - // Otherwise, the selection may be in a fillingChar, which prevents dragging a widget. (http://dev.ckeditor.com/ticket/13284, see comment 8 and 9.) - if ( widgetsRepo.focused != widget ) - editor.getSelection().removeAllRanges(); - - return; - } - - if ( !Widget.getNestedEditable( widget.wrapper, target ) ) { - evt.data.preventDefault(); - if ( !CKEDITOR.env.ie ) - widget.focus(); - } else { - // Reset widget so mouseup listener is not confused. - widget = null; - } - } - } ); - - // Focus widget on mouseup if mousedown was fired on drag handler. - // Note: mouseup won't be fired at all if widget was dragged and dropped, so - // this code will be executed only when drag handler was clicked. - editable.attachListener( evtRoot, 'mouseup', function() { - // Check if widget is not destroyed (if widget is destroyed the wrapper will be null). - if ( mouseDownOnDragHandler && widget && widget.wrapper ) { - mouseDownOnDragHandler = 0; - widget.focus(); - } - } ); - - // On IE it is not enough to block mousedown. If widget wrapper (element with - // contenteditable=false attribute) is clicked directly (it is a target), - // then after mouseup/click IE will select that element. - // It is not possible to prevent that default action, - // so we force fake selection after everything happened. - if ( CKEDITOR.env.ie ) { - editable.attachListener( evtRoot, 'mouseup', function() { - setTimeout( function() { - // Check if widget is not destroyed (if widget is destroyed the wrapper will be null) and - // in editable contains widget (it could be dragged and removed). - if ( widget && widget.wrapper && editable.contains( widget.wrapper ) ) { - widget.focus(); - widget = null; - } - } ); - } ); - } - } ); - - editor.on( 'doubleclick', function( evt ) { - var widget = widgetsRepo.getByElement( evt.data.element ); - - // Not in widget or in nested editable. - if ( !widget || Widget.getNestedEditable( widget.wrapper, evt.data.element ) ) - return; - - return widget.fire( 'doubleclick', { element: evt.data.element } ); - }, null, null, 1 ); - } - - // Setup editor#key observer which will forward it - // to focused widget. - function setupKeyboardObserver( widgetsRepo ) { - var editor = widgetsRepo.editor; - - editor.on( 'key', function( evt ) { - var focused = widgetsRepo.focused, - widgetHoldingFocusedEditable = widgetsRepo.widgetHoldingFocusedEditable, - ret; - - if ( focused ) - ret = focused.fire( 'key', { keyCode: evt.data.keyCode } ); - else if ( widgetHoldingFocusedEditable ) - ret = onEditableKey( widgetHoldingFocusedEditable, evt.data.keyCode ); - - return ret; - }, null, null, 1 ); - } - - // Setup copybin on native copy and cut events in order to handle copy and cut commands - // if user accepted security alert on IEs. - // Note: when copying or cutting using keystroke, copySingleWidget will be first executed - // by the keydown listener. Conflict between two calls will be resolved by copy_bin existence check. - function setupNativeCutAndCopy( widgetsRepo ) { - var editor = widgetsRepo.editor; - - editor.on( 'contentDom', function() { - var editable = editor.editable(); - - editable.attachListener( editable, 'copy', eventListener ); - editable.attachListener( editable, 'cut', eventListener ); - } ); - - function eventListener( evt ) { - if ( widgetsRepo.focused ) - copySingleWidget( widgetsRepo.focused, evt.name == 'cut' ); - } - } - - // Setup selection observer which will trigger: - // * widget select & focus on selection change, - // * nested editable focus (related properites and classes) on selection change, - // * deselecting and blurring all widgets on data, - // * blurring widget on editor blur. - function setupSelectionObserver( widgetsRepo ) { - var editor = widgetsRepo.editor; - - editor.on( 'selectionCheck', function() { - widgetsRepo.fire( 'checkSelection' ); - } ); - - widgetsRepo.on( 'checkSelection', widgetsRepo.checkSelection, widgetsRepo ); - - editor.on( 'selectionChange', function( evt ) { - var nestedEditable = Widget.getNestedEditable( editor.editable(), evt.data.selection.getStartElement() ), - newWidget = nestedEditable && widgetsRepo.getByElement( nestedEditable ), - oldWidget = widgetsRepo.widgetHoldingFocusedEditable; - - if ( oldWidget ) { - if ( oldWidget !== newWidget || !oldWidget.focusedEditable.equals( nestedEditable ) ) { - setFocusedEditable( widgetsRepo, oldWidget, null ); - - if ( newWidget && nestedEditable ) - setFocusedEditable( widgetsRepo, newWidget, nestedEditable ); - } - } - // It may happen that there's no widget even if editable was found - - // e.g. if selection was automatically set in editable although widget wasn't initialized yet. - else if ( newWidget && nestedEditable ) { - setFocusedEditable( widgetsRepo, newWidget, nestedEditable ); - } - } ); - - // Invalidate old widgets early - immediately on dataReady. - editor.on( 'dataReady', function() { - // Deselect and blur all widgets. - stateUpdater( widgetsRepo ).commit(); - } ); - - editor.on( 'blur', function() { - var widget; - - if ( ( widget = widgetsRepo.focused ) ) - blurWidget( widgetsRepo, widget ); - - if ( ( widget = widgetsRepo.widgetHoldingFocusedEditable ) ) - setFocusedEditable( widgetsRepo, widget, null ); - } ); - } - - // Set up actions like: - // * processing in toHtml/toDataFormat, - // * pasting handling, - // * insertion handling, - // * editable reload handling (setData, mode switch, undo/redo), - // * DOM invalidation handling, - // * widgets checks. - function setupWidgetsLifecycle( widgetsRepo ) { - setupWidgetsLifecycleStart( widgetsRepo ); - setupWidgetsLifecycleEnd( widgetsRepo ); - - widgetsRepo.on( 'checkWidgets', checkWidgets ); - widgetsRepo.editor.on( 'contentDomInvalidated', widgetsRepo.checkWidgets, widgetsRepo ); - } - - function setupWidgetsLifecycleEnd( widgetsRepo ) { - var editor = widgetsRepo.editor, - downcastingSessions = {}; - - // Listen before htmlDP#htmlFilter is applied to cache all widgets, because we'll - // loose data-cke-* attributes. - editor.on( 'toDataFormat', function( evt ) { - // To avoid conflicts between htmlDP#toDF calls done at the same time - // (e.g. nestedEditable#getData called during downcasting some widget) - // mark every toDataFormat event chain with the downcasting session id. - var id = CKEDITOR.tools.getNextNumber(), - toBeDowncasted = []; - evt.data.downcastingSessionId = id; - downcastingSessions[ id ] = toBeDowncasted; - - evt.data.dataValue.forEach( function( element ) { - var attrs = element.attributes, - widget, widgetElement; - - // Wrapper. - // Perform first part of downcasting (cleanup) and cache widgets, - // because after applying DP's filter all data-cke-* attributes will be gone. - if ( 'data-cke-widget-id' in attrs ) { - widget = widgetsRepo.instances[ attrs[ 'data-cke-widget-id' ] ]; - if ( widget ) { - widgetElement = element.getFirst( Widget.isParserWidgetElement ); - toBeDowncasted.push( { - wrapper: element, - element: widgetElement, - widget: widget, - editables: {} - } ); - - // If widget did not have data-cke-widget attribute before upcasting remove it. - if ( widgetElement.attributes[ 'data-cke-widget-keep-attr' ] != '1' ) - delete widgetElement.attributes[ 'data-widget' ]; - } - } - // Nested editable. - else if ( 'data-cke-widget-editable' in attrs ) { - // Save the reference to this nested editable in the closest widget to be downcasted. - // Nested editables are downcasted in the successive toDataFormat to create an opportunity - // for dataFilter's "excludeNestedEditable" option to do its job (that option relies on - // contenteditable="true" attribute) (http://dev.ckeditor.com/ticket/11372). - toBeDowncasted[ toBeDowncasted.length - 1 ].editables[ attrs[ 'data-cke-widget-editable' ] ] = element; - - // Don't check children - there won't be next wrapper or nested editable which we - // should process in this session. - return false; - } - }, CKEDITOR.NODE_ELEMENT, true ); - }, null, null, 8 ); - - // Listen after dataProcessor.htmlFilter and ACF were applied - // so wrappers securing widgets' contents are removed after all filtering was done. - editor.on( 'toDataFormat', function( evt ) { - // Ignore some unmarked sessions. - if ( !evt.data.downcastingSessionId ) - return; - - var toBeDowncasted = downcastingSessions[ evt.data.downcastingSessionId ], - toBe, widget, widgetElement, retElement, editableElement, e; - - while ( ( toBe = toBeDowncasted.shift() ) ) { - widget = toBe.widget; - widgetElement = toBe.element; - retElement = widget._.downcastFn && widget._.downcastFn.call( widget, widgetElement ); - - // Replace nested editables' content with their output data. - for ( e in toBe.editables ) { - editableElement = toBe.editables[ e ]; - - delete editableElement.attributes.contenteditable; - editableElement.setHtml( widget.editables[ e ].getData() ); - } - - // Returned element always defaults to widgetElement. - if ( !retElement ) - retElement = widgetElement; - - toBe.wrapper.replaceWith( retElement ); - } - }, null, null, 13 ); - - - editor.on( 'contentDomUnload', function() { - widgetsRepo.destroyAll( true ); - } ); - } - - function setupWidgetsLifecycleStart( widgetsRepo ) { - var editor = widgetsRepo.editor, - processedWidgetOnly, - snapshotLoaded; - - // Listen after ACF (so data are filtered), - // but before dataProcessor.dataFilter was applied (so we can secure widgets' internals). - editor.on( 'toHtml', function( evt ) { - var upcastIterator = createUpcastIterator( widgetsRepo ), - toBeWrapped; - - evt.data.dataValue.forEach( upcastIterator.iterator, CKEDITOR.NODE_ELEMENT, true ); - - // Clean up and wrap all queued elements. - while ( ( toBeWrapped = upcastIterator.toBeWrapped.pop() ) ) { - cleanUpWidgetElement( toBeWrapped[ 0 ] ); - widgetsRepo.wrapElement( toBeWrapped[ 0 ], toBeWrapped[ 1 ] ); - } - - // Used to determine whether only widget was pasted. - if ( evt.data.protectedWhitespaces ) { - // Whitespaces are protected by wrapping content with spans. Take the middle node only. - processedWidgetOnly = evt.data.dataValue.children.length == 3 && - Widget.isParserWidgetWrapper( evt.data.dataValue.children[ 1 ] ); - } else { - processedWidgetOnly = evt.data.dataValue.children.length == 1 && - Widget.isParserWidgetWrapper( evt.data.dataValue.children[ 0 ] ); - } - }, null, null, 8 ); - - editor.on( 'dataReady', function() { - // Clean up all widgets loaded from snapshot. - if ( snapshotLoaded ) - cleanUpAllWidgetElements( widgetsRepo, editor.editable() ); - snapshotLoaded = 0; - - // Some widgets were destroyed on contentDomUnload, - // some on loadSnapshot, but that does not include - // e.g. setHtml on inline editor or widgets removed just - // before setting data. - widgetsRepo.destroyAll( true ); - widgetsRepo.initOnAll(); - } ); - - // Set flag so dataReady will know that additional - // cleanup is needed, because snapshot containing widgets was loaded. - editor.on( 'loadSnapshot', function( evt ) { - // Primitive but sufficient check which will prevent from executing - // heavier cleanUpAllWidgetElements if not needed. - if ( ( /data-cke-widget/ ).test( evt.data ) ) - snapshotLoaded = 1; - - widgetsRepo.destroyAll( true ); - }, null, null, 9 ); - - // Handle pasted single widget. - editor.on( 'paste', function( evt ) { - var data = evt.data; - - data.dataValue = data.dataValue.replace( pasteReplaceRegex, pasteReplaceFn ); - - // If drag'n'drop kind of paste into nested editable (data.range), selection is set AFTER - // data is pasted, which means editor has no chance to change activeFilter's context. - // As a result, pasted data is filtered with default editor's filter instead of NE's and - // funny things get inserted. Changing the filter by analysis of the paste range below (http://dev.ckeditor.com/ticket/13186). - if ( data.range ) { - // Check if pasting into nested editable. - var nestedEditable = Widget.getNestedEditable( editor.editable(), data.range.startContainer ); - - if ( nestedEditable ) { - // Retrieve the filter from NE's data and set it active before editor.insertHtml is done - // in clipboard plugin. - var filter = CKEDITOR.filter.instances[ nestedEditable.data( 'cke-filter' ) ]; - - if ( filter ) { - editor.setActiveFilter( filter ); - } - } - } - } ); - - // Listen with high priority to check widgets after data was inserted. - editor.on( 'afterInsertHtml', function( evt ) { - if ( evt.data.intoRange ) { - widgetsRepo.checkWidgets( { initOnlyNew: true } ); - } else { - editor.fire( 'lockSnapshot' ); - // Init only new for performance reason. - // Focus inited if only widget was processed. - widgetsRepo.checkWidgets( { initOnlyNew: true, focusInited: processedWidgetOnly } ); - - editor.fire( 'unlockSnapshot' ); - } - } ); - } - - // Helper for coordinating which widgets should be - // selected/deselected and which one should be focused/blurred. - function stateUpdater( widgetsRepo ) { - var currentlySelected = widgetsRepo.selected, - toBeSelected = [], - toBeDeselected = currentlySelected.slice( 0 ), - focused = null; - - return { - select: function( widget ) { - if ( CKEDITOR.tools.indexOf( currentlySelected, widget ) < 0 ) - toBeSelected.push( widget ); - - var index = CKEDITOR.tools.indexOf( toBeDeselected, widget ); - if ( index >= 0 ) - toBeDeselected.splice( index, 1 ); - - return this; - }, - - focus: function( widget ) { - focused = widget; - return this; - }, - - commit: function() { - var focusedChanged = widgetsRepo.focused !== focused, - widget, isDirty; - - widgetsRepo.editor.fire( 'lockSnapshot' ); - - if ( focusedChanged && ( widget = widgetsRepo.focused ) ) - blurWidget( widgetsRepo, widget ); - - while ( ( widget = toBeDeselected.pop() ) ) { - currentlySelected.splice( CKEDITOR.tools.indexOf( currentlySelected, widget ), 1 ); - // Widget could be destroyed in the meantime - e.g. data could be set. - if ( widget.isInited() ) { - isDirty = widget.editor.checkDirty(); - - widget.setSelected( false ); - - !isDirty && widget.editor.resetDirty(); - } - } - - if ( focusedChanged && focused ) { - isDirty = widgetsRepo.editor.checkDirty(); - - widgetsRepo.focused = focused; - widgetsRepo.fire( 'widgetFocused', { widget: focused } ); - focused.setFocused( true ); - - !isDirty && widgetsRepo.editor.resetDirty(); - } - - while ( ( widget = toBeSelected.pop() ) ) { - currentlySelected.push( widget ); - widget.setSelected( true ); - } - - widgetsRepo.editor.fire( 'unlockSnapshot' ); - } - }; - } - - - // - // WIDGET helpers --------------------------------------------------------- - // - - // LEFT, RIGHT, UP, DOWN, DEL, BACKSPACE - unblock default fake sel handlers. - var keystrokesNotBlockedByWidget = { 37: 1, 38: 1, 39: 1, 40: 1, 8: 1, 46: 1 }; - - // Applies or removes style's classes from widget. - // @param {CKEDITOR.style} style Custom widget style. - // @param {Boolean} apply Whether to apply or remove style. - function applyRemoveStyle( widget, style, apply ) { - var changed = 0, - classes = getStyleClasses( style ), - updatedClasses = widget.data.classes || {}, - cl; - - // Ee... Something is wrong with this style. - if ( !classes ) - return; - - // Clone, because we need to break reference. - updatedClasses = CKEDITOR.tools.clone( updatedClasses ); - - while ( ( cl = classes.pop() ) ) { - if ( apply ) { - if ( !updatedClasses[ cl ] ) - changed = updatedClasses[ cl ] = 1; - } else { - if ( updatedClasses[ cl ] ) { - delete updatedClasses[ cl ]; - changed = 1; - } - } - } - if ( changed ) - widget.setData( 'classes', updatedClasses ); - } - - function cancel( evt ) { - evt.cancel(); - } - - function copySingleWidget( widget, isCut ) { - var editor = widget.editor, - doc = editor.document; - - // We're still handling previous copy/cut. - // When keystroke is used to copy/cut this will also prevent - // conflict with copySingleWidget called again for native copy/cut event. - if ( doc.getById( 'cke_copybin' ) ) - return; - - // [IE] Use span for copybin and its container to avoid bug with expanding editable height by - // absolutely positioned element. - var copybinName = ( editor.blockless || CKEDITOR.env.ie ) ? 'span' : 'div', - copybin = doc.createElement( copybinName ), - copybinContainer = doc.createElement( copybinName ), - // IE8 always jumps to the end of document. - needsScrollHack = CKEDITOR.env.ie && CKEDITOR.env.version < 9; - - copybinContainer.setAttributes( { - id: 'cke_copybin', - 'data-cke-temp': '1' - } ); - - // Position copybin element outside current viewport. - copybin.setStyles( { - position: 'absolute', - width: '1px', - height: '1px', - overflow: 'hidden' - } ); - - copybin.setStyle( editor.config.contentsLangDirection == 'ltr' ? 'left' : 'right', '-5000px' ); - - var range = editor.createRange(); - range.setStartBefore( widget.wrapper ); - range.setEndAfter( widget.wrapper ); - - copybin.setHtml( - '<span data-cke-copybin-start="1">\u200b</span>' + - editor.editable().getHtmlFromRange( range ).getHtml() + - '<span data-cke-copybin-end="1">\u200b</span>' ); - - // Save snapshot with the current state. - editor.fire( 'saveSnapshot' ); - - // Ignore copybin. - editor.fire( 'lockSnapshot' ); - - copybinContainer.append( copybin ); - editor.editable().append( copybinContainer ); - - var listener1 = editor.on( 'selectionChange', cancel, null, null, 0 ), - listener2 = widget.repository.on( 'checkSelection', cancel, null, null, 0 ); - - if ( needsScrollHack ) { - var docElement = doc.getDocumentElement().$, - scrollTop = docElement.scrollTop; - } - - // Once the clone of the widget is inside of copybin, select - // the entire contents. This selection will be copied by the - // native browser's clipboard system. - range = editor.createRange(); - range.selectNodeContents( copybin ); - range.select(); - - if ( needsScrollHack ) - docElement.scrollTop = scrollTop; - - setTimeout( function() { - // [IE] Focus widget before removing copybin to avoid scroll jump. - if ( !isCut ) - widget.focus(); - - copybinContainer.remove(); - - listener1.removeListener(); - listener2.removeListener(); - - editor.fire( 'unlockSnapshot' ); - - if ( isCut ) { - widget.repository.del( widget ); - editor.fire( 'saveSnapshot' ); - } - }, 100 ); // Use 100ms, so Chrome (@Mac) will be able to grab the content. - } - - // Extracts classes array from style instance. - function getStyleClasses( style ) { - var attrs = style.getDefinition().attributes, - classes = attrs && attrs[ 'class' ]; - - return classes ? classes.split( /\s+/ ) : null; - } - - // [IE] Force keeping focus because IE sometimes forgets to fire focus on main editable - // when blurring nested editable. - // @context widget - function onEditableBlur() { - var active = CKEDITOR.document.getActive(), - editor = this.editor, - editable = editor.editable(); - - // If focus stays within editor override blur and set currentActive because it should be - // automatically changed to editable on editable#focus but it is not fired. - if ( ( editable.isInline() ? editable : editor.document.getWindow().getFrame() ).equals( active ) ) - editor.focusManager.focus( editable ); - } - - // Force selectionChange when editable was focused. - // Similar to hack in selection.js#~620. - // @context widget - function onEditableFocus() { - // Gecko does not support 'DOMFocusIn' event on which we unlock selection - // in selection.js to prevent selection locking when entering nested editables. - if ( CKEDITOR.env.gecko ) - this.editor.unlockSelection(); - - // We don't need to force selectionCheck on Webkit, because on Webkit - // we do that on DOMFocusIn in selection.js. - if ( !CKEDITOR.env.webkit ) { - this.editor.forceNextSelectionCheck(); - this.editor.selectionChange( 1 ); - } - } - - // Setup listener on widget#data which will update (remove/add) classes - // by comparing newly set classes with the old ones. - function setupDataClassesListener( widget ) { - // Note: previousClasses and newClasses may be null! - // Tip: for ( cl in null ) is correct. - var previousClasses = null; - - widget.on( 'data', function() { - var newClasses = this.data.classes, - cl; - - // When setting new classes one need to remember - // that he must break reference. - if ( previousClasses == newClasses ) - return; - - for ( cl in previousClasses ) { - // Avoid removing and adding classes again. - if ( !( newClasses && newClasses[ cl ] ) ) - this.removeClass( cl ); - } - for ( cl in newClasses ) - this.addClass( cl ); - - previousClasses = newClasses; - } ); - } - - // Add a listener to data event that will set/change widget's label (http://dev.ckeditor.com/ticket/14539). - function setupA11yListener( widget ) { - // Note, the function gets executed in a context of widget instance. - function getLabelDefault() { - return this.editor.lang.widget.label.replace( /%1/, this.pathName || this.element.getName() ); - } - - // Setting a listener on data is enough, there's no need to perform it on widget initialization, as - // setupWidgetData fires this event anyway. - widget.on( 'data', function() { - // In some cases widget might get destroyed in an earlier data listener. For instance, image2 plugin, does - // so when changing its internal state. - if ( !widget.wrapper ) { - return; - } - - var label = this.getLabel ? this.getLabel() : getLabelDefault.call( this ); - - widget.wrapper.setAttribute( 'role', 'region' ); - widget.wrapper.setAttribute( 'aria-label', label ); - }, null, null, 9999 ); - } - - function setupDragHandler( widget ) { - if ( !widget.draggable ) - return; - - var editor = widget.editor, - // Use getLast to find wrapper's direct descendant (http://dev.ckeditor.com/ticket/12022). - container = widget.wrapper.getLast( Widget.isDomDragHandlerContainer ), - img; - - // Reuse drag handler if already exists (http://dev.ckeditor.com/ticket/11281). - if ( container ) - img = container.findOne( 'img' ); - else { - container = new CKEDITOR.dom.element( 'span', editor.document ); - container.setAttributes( { - 'class': 'cke_reset cke_widget_drag_handler_container', - // Split background and background-image for IE8 which will break on rgba(). - style: 'background:rgba(220,220,220,0.5);background-image:url(' + editor.plugins.widget.path + 'images/handle.png)' - } ); - - img = new CKEDITOR.dom.element( 'img', editor.document ); - img.setAttributes( { - 'class': 'cke_reset cke_widget_drag_handler', - 'data-cke-widget-drag-handler': '1', - src: CKEDITOR.tools.transparentImageData, - width: DRAG_HANDLER_SIZE, - title: editor.lang.widget.move, - height: DRAG_HANDLER_SIZE, - role: 'presentation' - } ); - widget.inline && img.setAttribute( 'draggable', 'true' ); - - container.append( img ); - widget.wrapper.append( container ); - } - - // Preventing page reload when dropped content on widget wrapper (http://dev.ckeditor.com/ticket/13015). - // Widget is not editable so by default drop on it isn't allowed what means that - // browser handles it (there's no editable#drop event). If there's no drop event we cannot block - // the drop, so page is reloaded. This listener enables drop on widget wrappers. - widget.wrapper.on( 'dragover', function( evt ) { - evt.data.preventDefault(); - } ); - - widget.wrapper.on( 'mouseenter', widget.updateDragHandlerPosition, widget ); - setTimeout( function() { - widget.on( 'data', widget.updateDragHandlerPosition, widget ); - }, 50 ); - - if ( !widget.inline ) { - img.on( 'mousedown', onBlockWidgetDrag, widget ); - - // On IE8 'dragstart' is propagated to editable, so editor#dragstart is fired twice on block widgets. - if ( CKEDITOR.env.ie && CKEDITOR.env.version < 9 ) { - img.on( 'dragstart', function( evt ) { - evt.data.preventDefault( true ); - } ); - } - } - - widget.dragHandlerContainer = container; - } - - function onBlockWidgetDrag( evt ) { - var finder = this.repository.finder, - locator = this.repository.locator, - liner = this.repository.liner, - editor = this.editor, - editable = editor.editable(), - listeners = [], - sorted = [], - locations, - y; - - // Mark dragged widget for repository#finder. - this.repository._.draggedWidget = this; - - // Harvest all possible relations and display some closest. - var relations = finder.greedySearch(), - - buffer = CKEDITOR.tools.eventsBuffer( 50, function() { - locations = locator.locate( relations ); - - // There's only a single line displayed for D&D. - sorted = locator.sort( y, 1 ); - - if ( sorted.length ) { - liner.prepare( relations, locations ); - liner.placeLine( sorted[ 0 ] ); - liner.cleanup(); - } - } ); - - // Let's have the "dragging cursor" over entire editable. - editable.addClass( 'cke_widget_dragging' ); - - // Cache mouse position so it is re-used in events buffer. - listeners.push( editable.on( 'mousemove', function( evt ) { - y = evt.data.$.clientY; - buffer.input(); - } ) ); - - // Fire drag start as it happens during the native D&D. - editor.fire( 'dragstart', { target: evt.sender } ); - - function onMouseUp() { - var l; - - buffer.reset(); - - // Stop observing events. - while ( ( l = listeners.pop() ) ) - l.removeListener(); - - onBlockWidgetDrop.call( this, sorted, evt.sender ); - } - - // Mouseup means "drop". This is when the widget is being detached - // from DOM and placed at range determined by the line (location). - listeners.push( editor.document.once( 'mouseup', onMouseUp, this ) ); - - // Prevent calling 'onBlockWidgetDrop' twice in the inline editor. - // `removeListener` does not work if it is called at the same time event is fired. - if ( !editable.isInline() ) { - // Mouseup may occur when user hovers the line, which belongs to - // the outer document. This is, of course, a valid listener too. - listeners.push( CKEDITOR.document.once( 'mouseup', onMouseUp, this ) ); - } - } - - function onBlockWidgetDrop( sorted, dragTarget ) { - var finder = this.repository.finder, - liner = this.repository.liner, - editor = this.editor, - editable = this.editor.editable(); - - if ( !CKEDITOR.tools.isEmpty( liner.visible ) ) { - // Retrieve range for the closest location. - var dropRange = finder.getRange( sorted[ 0 ] ); - - // Focus widget (it could lost focus after mousedown+mouseup) - // and save this state as the one where we want to be taken back when undoing. - this.focus(); - - // Drag range will be set in the drop listener. - editor.fire( 'drop', { - dropRange: dropRange, - target: dropRange.startContainer - } ); - } - - // Clean-up custom cursor for editable. - editable.removeClass( 'cke_widget_dragging' ); - - // Clean-up all remaining lines. - liner.hideVisible(); - - // Clean-up drag & drop. - editor.fire( 'dragend', { target: dragTarget } ); - } - - function setupEditables( widget ) { - var editableName, - editableDef, - definedEditables = widget.editables; - - widget.editables = {}; - - if ( !widget.editables ) - return; - - for ( editableName in definedEditables ) { - editableDef = definedEditables[ editableName ]; - widget.initEditable( editableName, typeof editableDef == 'string' ? { selector: editableDef } : editableDef ); - } - } - - function setupMask( widget ) { - if ( !widget.mask ) - return; - - // Reuse mask if already exists (http://dev.ckeditor.com/ticket/11281). - var img = widget.wrapper.findOne( '.cke_widget_mask' ); - - if ( !img ) { - img = new CKEDITOR.dom.element( 'img', widget.editor.document ); - img.setAttributes( { - src: CKEDITOR.tools.transparentImageData, - 'class': 'cke_reset cke_widget_mask' - } ); - widget.wrapper.append( img ); - } - - widget.mask = img; - } - - // Replace parts object containing: - // partName => selector pairs - // with: - // partName => element pairs - function setupParts( widget ) { - if ( widget.parts ) { - var parts = {}, - el, partName; - - for ( partName in widget.parts ) { - el = widget.wrapper.findOne( widget.parts[ partName ] ); - parts[ partName ] = el; - } - widget.parts = parts; - } - } - - function setupWidget( widget, widgetDef ) { - setupWrapper( widget ); - setupParts( widget ); - setupEditables( widget ); - setupMask( widget ); - setupDragHandler( widget ); - setupDataClassesListener( widget ); - setupA11yListener( widget ); - - // http://dev.ckeditor.com/ticket/11145: [IE8] Non-editable content of widget is draggable. - if ( CKEDITOR.env.ie && CKEDITOR.env.version < 9 ) { - widget.wrapper.on( 'dragstart', function( evt ) { - var target = evt.data.getTarget(); - - // Allow text dragging inside nested editables or dragging inline widget's drag handler. - if ( !Widget.getNestedEditable( widget, target ) && !( widget.inline && Widget.isDomDragHandler( target ) ) ) - evt.data.preventDefault(); - } ); - } - - widget.wrapper.removeClass( 'cke_widget_new' ); - widget.element.addClass( 'cke_widget_element' ); - - widget.on( 'key', function( evt ) { - var keyCode = evt.data.keyCode; - - // ENTER. - if ( keyCode == 13 ) { - widget.edit(); - // CTRL+C or CTRL+X. - } else if ( keyCode == CKEDITOR.CTRL + 67 || keyCode == CKEDITOR.CTRL + 88 ) { - copySingleWidget( widget, keyCode == CKEDITOR.CTRL + 88 ); - return; // Do not preventDefault. - } else if ( keyCode in keystrokesNotBlockedByWidget || ( CKEDITOR.CTRL & keyCode ) || ( CKEDITOR.ALT & keyCode ) ) { - // Pass chosen keystrokes to other plugins or default fake sel handlers. - // Pass all CTRL/ALT keystrokes. - return; - } - - return false; - }, null, null, 999 ); - // Listen with high priority so it's possible - // to overwrite this callback. - - widget.on( 'doubleclick', function( evt ) { - if ( widget.edit() ) { - // We have to cancel event if edit method opens a dialog, otherwise - // link plugin may open extra dialog (http://dev.ckeditor.com/ticket/12140). - evt.cancel(); - } - } ); - - if ( widgetDef.data ) - widget.on( 'data', widgetDef.data ); - - if ( widgetDef.edit ) - widget.on( 'edit', widgetDef.edit ); - } - - function setupWidgetData( widget, startupData ) { - var widgetDataAttr = widget.element.data( 'cke-widget-data' ); - - if ( widgetDataAttr ) - widget.setData( JSON.parse( decodeURIComponent( widgetDataAttr ) ) ); - if ( startupData ) - widget.setData( startupData ); - - // Populate classes if they are not preset. - if ( !widget.data.classes ) - widget.setData( 'classes', widget.getClasses() ); - - // Unblock data and... - widget.dataReady = true; - - // Write data to element because this was blocked when data wasn't ready. - writeDataToElement( widget ); - - // Fire data event first time, because this was blocked when data wasn't ready. - widget.fire( 'data', widget.data ); - } - - function setupWrapper( widget ) { - // Retrieve widget wrapper. Assign an id to it. - var wrapper = widget.wrapper = widget.element.getParent(); - wrapper.setAttribute( 'data-cke-widget-id', widget.id ); - } - - function writeDataToElement( widget ) { - widget.element.data( 'cke-widget-data', encodeURIComponent( JSON.stringify( widget.data ) ) ); - } - - // - // WIDGET STYLE HANDLER --------------------------------------------------- - // - - ( function() { - // Styles categorized by group. It is used to prevent applying styles for the same group being used together. - var styleGroups = {}; - - /** - * The class representing a widget style. It is an {@link CKEDITOR#STYLE_OBJECT object} like - * the styles handler for widgets. - * - * **Note:** This custom style handler does not support all methods of the {@link CKEDITOR.style} class. - * Not supported methods: {@link #applyToRange}, {@link #removeFromRange}, {@link #applyToObject}. - * - * @since 4.4 - * @class CKEDITOR.style.customHandlers.widget - * @extends CKEDITOR.style - */ - CKEDITOR.style.addCustomHandler( { - type: 'widget', - - setup: function( styleDefinition ) { - /** - * The name of widget to which this style can be applied. - * It is extracted from style definition's `widget` property. - * - * @property {String} widget - */ - this.widget = styleDefinition.widget; - - /** - * An array of groups that this style belongs to. - * Styles assigned to the same group cannot be combined. - * - * @since 4.6.2 - * @property {Array} group - */ - this.group = typeof styleDefinition.group == 'string' ? [ styleDefinition.group ] : styleDefinition.group; - - // Store style categorized by its group. - // It is used to prevent enabling two styles from same group. - if ( this.group ) { - saveStyleGroup( this ); - } - }, - - apply: function( editor ) { - var widget; - - // Before CKEditor 4.4 wasn't a required argument, so we need to - // handle a case when it wasn't provided. - if ( !( editor instanceof CKEDITOR.editor ) ) - return; - - // Theoretically we could bypass checkApplicable, get widget from - // widgets.focused and check its name, what would be faster, but then - // this custom style would work differently than the default style - // which checks if it's applicable before applying or removing itself. - if ( this.checkApplicable( editor.elementPath(), editor ) ) { - widget = editor.widgets.focused; - - // Remove other styles from the same group. - if ( this.group ) { - this.removeStylesFromSameGroup( editor ); - } - - widget.applyStyle( this ); - } - }, - - remove: function( editor ) { - // Before CKEditor 4.4 wasn't a required argument, so we need to - // handle a case when it wasn't provided. - if ( !( editor instanceof CKEDITOR.editor ) ) - return; - - if ( this.checkApplicable( editor.elementPath(), editor ) ) - editor.widgets.focused.removeStyle( this ); - }, - - /** - * Removes all styles that belong to the same group as this style. This method will neither add nor remove - * the current style. - * Returns `true` if any style was removed, otherwise returns `false`. - * - * @since 4.6.2 - * @param {CKEDITOR.editor} editor - * @returns {Boolean} - */ - removeStylesFromSameGroup: function( editor ) { - var stylesFromSameGroup, - path, - removed = false; - - // Before CKEditor 4.4 wasn't a required argument, so we need to - // handle a case when it wasn't provided. - if ( !( editor instanceof CKEDITOR.editor ) ) - return false; - - path = editor.elementPath(); - if ( this.checkApplicable( path, editor ) ) { - // Iterate over each group. - for ( var i = 0, l = this.group.length; i < l; i++ ) { - stylesFromSameGroup = styleGroups[ this.widget ][ this.group[ i ] ]; - // Iterate over each style from group. - for ( var j = 0; j < stylesFromSameGroup.length; j++ ) { - if ( stylesFromSameGroup[ j ] !== this && stylesFromSameGroup[ j ].checkActive( path, editor ) ) { - editor.widgets.focused.removeStyle( stylesFromSameGroup[ j ] ); - removed = true; - } - } - } - } - - return removed; - }, - - checkActive: function( elementPath, editor ) { - return this.checkElementMatch( elementPath.lastElement, 0, editor ); - }, - - checkApplicable: function( elementPath, editor ) { - // Before CKEditor 4.4 wasn't a required argument, so we need to - // handle a case when it wasn't provided. - if ( !( editor instanceof CKEDITOR.editor ) ) - return false; - - return this.checkElement( elementPath.lastElement ); - }, - - checkElementMatch: checkElementMatch, - - checkElementRemovable: checkElementMatch, - - /** - * Checks if an element is a {@link CKEDITOR.plugins.widget#wrapper wrapper} of a - * widget whose name matches the {@link #widget widget name} specified in the style definition. - * - * @param {CKEDITOR.dom.element} element - * @returns {Boolean} - */ - checkElement: function( element ) { - if ( !Widget.isDomWidgetWrapper( element ) ) - return false; - - var widgetElement = element.getFirst( Widget.isDomWidgetElement ); - return widgetElement && widgetElement.data( 'widget' ) == this.widget; - }, - - buildPreview: function( label ) { - return label || this._.definition.name; - }, - - /** - * Returns allowed content rules which should be registered for this style. - * Uses widget's {@link CKEDITOR.plugins.widget.definition#styleableElements} to make a rule - * allowing classes on specified elements or use widget's - * {@link CKEDITOR.plugins.widget.definition#styleToAllowedContentRules} method to transform a style - * into allowed content rules. - * - * @param {CKEDITOR.editor} The editor instance. - * @returns {CKEDITOR.filter.allowedContentRules} - */ - toAllowedContentRules: function( editor ) { - if ( !editor ) - return null; - - var widgetDef = editor.widgets.registered[ this.widget ], - classes, - rule = {}; - - if ( !widgetDef ) - return null; - - if ( widgetDef.styleableElements ) { - classes = this.getClassesArray(); - if ( !classes ) - return null; - - rule[ widgetDef.styleableElements ] = { - classes: classes, - propertiesOnly: true - }; - return rule; - } - if ( widgetDef.styleToAllowedContentRules ) - return widgetDef.styleToAllowedContentRules( this ); - return null; - }, - - /** - * Returns classes defined in the style in form of an array. - * - * @returns {String[]} - */ - getClassesArray: function() { - var classes = this._.definition.attributes && this._.definition.attributes[ 'class' ]; - - return classes ? CKEDITOR.tools.trim( classes ).split( /\s+/ ) : null; - }, - - /** - * Not implemented. - * - * @method applyToRange - */ - applyToRange: notImplemented, - - /** - * Not implemented. - * - * @method removeFromRange - */ - removeFromRange: notImplemented, - - /** - * Not implemented. - * - * @method applyToObject - */ - applyToObject: notImplemented - } ); - - function notImplemented() {} - - // @context style - function checkElementMatch( element, fullMatch, editor ) { - // Before CKEditor 4.4 wasn't a required argument, so we need to - // handle a case when it wasn't provided. - if ( !editor ) - return false; - - if ( !this.checkElement( element ) ) - return false; - - var widget = editor.widgets.getByElement( element, true ); - return widget && widget.checkStyleActive( this ); - } - - // Save and categorize style by its group. - function saveStyleGroup( style ) { - var widgetName = style.widget, - group; - - if ( !styleGroups[ widgetName ] ) { - styleGroups[ widgetName ] = {}; - } - - for ( var i = 0, l = style.group.length; i < l; i++ ) { - group = style.group[ i ]; - if ( !styleGroups[ widgetName ][ group ] ) { - styleGroups[ widgetName ][ group ] = []; - } - - styleGroups[ widgetName ][ group ].push( style ); - } - } - - } )(); - - // - // EXPOSE PUBLIC API ------------------------------------------------------ - // - - CKEDITOR.plugins.widget = Widget; - Widget.repository = Repository; - Widget.nestedEditable = NestedEditable; -} )(); - -/** - * An event fired when a widget definition is registered by the {@link CKEDITOR.plugins.widget.repository#add} method. - * It is possible to modify the definition being registered. - * - * @event widgetDefinition - * @member CKEDITOR.editor - * @param {CKEDITOR.plugins.widget.definition} data Widget definition. - */ - -/** - * This is an abstract class that describes the definition of a widget. - * It is a type of {@link CKEDITOR.plugins.widget.repository#add} method's second argument. - * - * Widget instances inherit from registered widget definitions, although not in a prototypal way. - * They are simply extended with corresponding widget definitions. Note that not all properties of - * the widget definition become properties of a widget. Some, like {@link #data} or {@link #edit}, become - * widget's events listeners. - * - * @class CKEDITOR.plugins.widget.definition - * @abstract - * @mixins CKEDITOR.feature - */ - -/** - * Widget definition name. It is automatically set when the definition is - * {@link CKEDITOR.plugins.widget.repository#add registered}. - * - * @property {String} name - */ - -/** - * The method executed while initializing a widget, after a widget instance - * is created, but before it is ready. It is executed before the first - * {@link CKEDITOR.plugins.widget#event-data} is fired so it is common to - * use the `init` method to populate widget data with information loaded from - * the DOM, like for exmaple: - * - * init: function() { - * this.setData( 'width', this.element.getStyle( 'width' ) ); - * - * if ( this.parts.caption.getStyle( 'display' ) != 'none' ) - * this.setData( 'showCaption', true ); - * } - * - * @property {Function} init - */ - -/** - * The function to be used to upcast an element to this widget or a - * comma-separated list of upcast methods from the {@link #upcasts} object. - * - * The upcast function **is not** executed in the widget context (because the widget - * does not exist yet) and two arguments are passed: - * - * * `element` ({@link CKEDITOR.htmlParser.element}) &ndash; The element to be checked. - * * `data` (`Object`) &ndash; The object which can be extended with data which will then be passed to the widget. - * - * An element will be upcasted if a function returned `true` or an instance of - * a {@link CKEDITOR.htmlParser.element} if upcasting meant DOM structure changes - * (in this case the widget will be initialized on the returned element). - * - * @property {String/Function} upcast - */ - -/** - * The object containing functions which can be used to upcast this widget. - * Only those pointed by the {@link #upcast} property will be used. - * - * In most cases it is appropriate to use {@link #upcast} directly, - * because majority of widgets need just one method. - * However, in some cases the widget author may want to expose more than one variant - * and then this property may be used. - * - * upcasts: { - * // This function may upcast only figure elements. - * figure: function() { - * // ... - * }, - * // This function may upcast only image elements. - * image: function() { - * // ... - * }, - * // More variants... - * } - * - * // Then, widget user may choose which upcast methods will be enabled. - * editor.on( 'widgetDefinition', function( evt ) { - * if ( evt.data.name == 'image' ) - * evt.data.upcast = 'figure,image'; // Use both methods. - * } ); - * - * @property {Object} upcasts - */ - -/** - * The {@link #upcast} method(s) priority. The upcast with a lower priority number will be called before - * the one with a higher number. The default priority is `10`. - * - * @since 4.5 - * @property {Number} [upcastPriority=10] - */ - -/** - * The function to be used to downcast this widget or - * a name of the downcast option from the {@link #downcasts} object. - * - * The downcast funciton will be executed in the {@link CKEDITOR.plugins.widget} context - * and with `widgetElement` ({@link CKEDITOR.htmlParser.element}) argument which is - * the widget's main element. - * - * The function may return an instance of the {@link CKEDITOR.htmlParser.node} class if the widget - * needs to be downcasted to a different node than the widget's main element. - * - * @property {String/Function} downcast - */ - -/** - * The object containing functions which can be used to downcast this widget. - * Only the one pointed by the {@link #downcast} property will be used. - * - * In most cases it is appropriate to use {@link #downcast} directly, - * because majority of widgets have just one variant of downcasting (or none at all). - * However, in some cases the widget author may want to expose more than one variant - * and then this property may be used. - * - * downcasts: { - * // This downcast may transform the widget into the figure element. - * figure: function() { - * // ... - * }, - * // This downcast may transform the widget into the image element with data-* attributes. - * image: function() { - * // ... - * } - * } - * - * // Then, the widget user may choose one of the downcast options when setting up his editor. - * editor.on( 'widgetDefinition', function( evt ) { - * if ( evt.data.name == 'image' ) - * evt.data.downcast = 'figure'; - * } ); - * - * @property downcasts - */ - -/** - * If set, it will be added as the {@link CKEDITOR.plugins.widget#event-edit} event listener. - * This means that it will be executed when a widget is being edited. - * See the {@link CKEDITOR.plugins.widget#method-edit} method. - * - * @property {Function} edit - */ - -/** - * If set, it will be added as the {@link CKEDITOR.plugins.widget#event-data} event listener. - * This means that it will be executed every time the {@link CKEDITOR.plugins.widget#property-data widget data} changes. - * - * @property {Function} data - */ - -/** - * The method to be executed when the widget's command is executed in order to insert a new widget - * (widget of this type is not focused). If not defined, then the default action will be - * performed which means that: - * - * * An instance of the widget will be created in a detached {@link CKEDITOR.dom.documentFragment document fragment}, - * * The {@link CKEDITOR.plugins.widget#method-edit} method will be called to trigger widget editing, - * * The widget element will be inserted into DOM. - * - * @property {Function} insert - */ - -/** - * The name of a dialog window which will be opened on {@link CKEDITOR.plugins.widget#method-edit}. - * If not defined, then the {@link CKEDITOR.plugins.widget#method-edit} method will not perform any action and - * widget's command will insert a new widget without opening a dialog window first. - * - * @property {String} dialog - */ - -/** - * The template which will be used to create a new widget element (when the widget's command is executed). - * This string is populated with {@link #defaults default values} by using the {@link CKEDITOR.template} format. - * Therefore it has to be a valid {@link CKEDITOR.template} argument. - * - * @property {String} template - */ - -/** - * The data object which will be used to populate the data of a newly created widget. - * See {@link CKEDITOR.plugins.widget#property-data}. - * - * defaults: { - * showCaption: true, - * align: 'none' - * } - * - * @property defaults - */ - -/** - * An object containing definitions of widget components (part name => CSS selector). - * - * parts: { - * image: 'img', - * caption: 'div.caption' - * } - * - * @property parts - */ - -/** - * An object containing definitions of nested editables (editable name => {@link CKEDITOR.plugins.widget.nestedEditable.definition}). - * Note that editables *have to* be defined in the same order as they are in DOM / {@link CKEDITOR.plugins.widget.definition#template template}. - * Otherwise errors will occur when nesting widgets inside each other. - * - * editables: { - * header: 'h1', - * content: { - * selector: 'div.content', - * allowedContent: 'p strong em; a[!href]' - * } - * } - * - * @property editables - */ - -/** - * The function used to obtain an accessibility label for the widget. It might be used to make - * the widget labels as precise as possible, since it has access to the widget instance. - * - * If not specified, the default implementation will use the {@link #pathName} or the main - * {@link CKEDITOR.plugins.widget#element element} tag name. - * - * @property {Function} getLabel - */ - -/** - * The widget name displayed in the elements path. - * - * @property {String} pathName - */ - -/** - * If set to `true`, the widget's element will be covered with a transparent mask. - * This will prevent its content from being clickable, which matters in case - * of special elements like embedded Flash or iframes that generate a separate "context". - * - * @property {Boolean} mask - */ - -/** - * If set to `true/false`, it will force the widget to be either an inline or a block widget. - * If not set, the widget type will be determined from the widget element. - * - * Widget type influences whether a block (`div`) or an inline (`span`) element is used - * for the wrapper. - * - * @property {Boolean} inline - */ - -/** - * The label for the widget toolbar button. - * - * editor.widgets.add( 'simplebox', { - * button: 'Create a simple box' - * } ); - * - * editor.widgets.add( 'simplebox', { - * button: editor.lang.simplebox.title - * } ); - * - * @property {String} button - */ - -/** - * Whether widget should be draggable. Defaults to `true`. - * If set to `false` drag handler will not be displayed when hovering widget. - * - * @property {Boolean} draggable - */ - -/** - * Names of element(s) (separated by spaces) for which the {@link CKEDITOR.filter} should allow classes - * defined in the widget styles. For example if your widget is upcasted from a simple `<div>` - * element, then in order to make it styleable you can set: - * - * editor.widgets.add( 'customWidget', { - * upcast: function( element ) { - * return element.name == 'div'; - * }, - * - * // ... - * - * styleableElements: 'div' - * } ); - * - * Then, when the following style is defined: - * - * { - * name: 'Thick border', type: 'widget', widget: 'customWidget', - * attributes: { 'class': 'thickBorder' } - * } - * - * a rule allowing the `thickBorder` class for `div` elements will be registered in the {@link CKEDITOR.filter}. - * - * If you need to have more freedom when transforming widget style to allowed content rules, - * you can use the {@link #styleToAllowedContentRules} callback. - * - * @since 4.4 - * @property {String} styleableElements - */ - -/** - * Function transforming custom widget's {@link CKEDITOR.style} instance into - * {@link CKEDITOR.filter.allowedContentRules}. It may be used when a static - * {@link #styleableElements} property is not enough to inform the {@link CKEDITOR.filter} - * what HTML features should be enabled when allowing the given style. - * - * In most cases, when style's classes just have to be added to element name(s) used by - * the widget element, it is recommended to use simpler {@link #styleableElements} property. - * - * In order to get parsed classes from the style definition you can use - * {@link CKEDITOR.style.customHandlers.widget#getClassesArray}. - * - * For example, if you want to use the [object format of allowed content rules](#!/guide/dev_allowed_content_rules-section-object-format), - * to specify `match` validator, your implementation could look like this: - * - * editor.widgets.add( 'customWidget', { - * // ... - * - * styleToAllowedContentRules: funciton( style ) { - * // Retrieve classes defined in the style. - * var classes = style.getClassesArray(); - * - * // Do something crazy - for example return allowed content rules in object format, - * // with custom match property and propertiesOnly flag. - * return { - * h1: { - * match: isWidgetElement, - * propertiesOnly: true, - * classes: classes - * } - * }; - * } - * } ); - * - * @since 4.4 - * @property {Function} styleToAllowedContentRules - * @param {CKEDITOR.style.customHandlers.widget} style The style to be transformed. - * @returns {CKEDITOR.filter.allowedContentRules} - */ - -/** - * This is an abstract class that describes the definition of a widget's nested editable. - * It is a type of values in the {@link CKEDITOR.plugins.widget.definition#editables} object. - * - * In the simplest case the definition is a string which is a CSS selector used to - * find an element that will become a nested editable inside the widget. Note that - * the widget element can be a nested editable, too. - * - * In the more advanced case a definition is an object with a required `selector` property. - * - * editables: { - * header: 'h1', - * content: { - * selector: 'div.content', - * allowedContent: 'p strong em; a[!href]' - * } - * } - * - * @class CKEDITOR.plugins.widget.nestedEditable.definition - * @abstract - */ - -/** - * The CSS selector used to find an element which will become a nested editable. - * - * @property {String} selector - */ - -/** - * The [Advanced Content Filter](#!/guide/dev_advanced_content_filter) rules - * which will be used to limit the content allowed in this nested editable. - * This option is similar to {@link CKEDITOR.config#allowedContent} and one can - * use it to limit the editor features available in the nested editable. - * - * If no `allowedContent` is specified, the editable will use the editor default - * {@link CKEDITOR.editor#filter}. - * - * @property {CKEDITOR.filter.allowedContentRules} allowedContent - */ - -/** - * The [Advanced Content Filter](#!/guide/dev_advanced_content_filter) rules - * which will be used to blacklist elements within this nested editable. - * This option is similar to {@link CKEDITOR.config#disallowedContent}. - * - * Note that `disallowedContent` work on top of the definition's {@link #allowedContent}. - * - * @since 4.7.3 - * @property {CKEDITOR.filter.disallowedContentRules} disallowedContent - */ - -/** - * Nested editable name displayed in the elements path. - * - * @property {String} pathName - */ diff --git a/admin/plugins/ckeditor/plugins/widgetselection/plugin.js b/admin/plugins/ckeditor/plugins/widgetselection/plugin.js deleted file mode 100644 index e21ea88..0000000 --- a/admin/plugins/ckeditor/plugins/widgetselection/plugin.js +++ /dev/null @@ -1,366 +0,0 @@ -/** - * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. - * For licensing, see LICENSE.md or http://ckeditor.com/license - */ - -/** - * @fileOverview A plugin created to handle ticket http://dev.ckeditor.com/ticket/11064. While the issue is caused by native WebKit/Blink behaviour, - * this plugin can be easily detached or modified when the issue is fixed in the browsers without changing the core. - * When Ctrl/Cmd + A is pressed to select all content it does not work due to a bug in - * Webkit/Blink if a non-editable element is at the beginning or the end of the content. - */ - -( function() { - 'use strict'; - - CKEDITOR.plugins.add( 'widgetselection', { - - init: function( editor ) { - if ( CKEDITOR.env.webkit ) { - var widgetselection = CKEDITOR.plugins.widgetselection; - - editor.on( 'contentDom', function( evt ) { - - var editor = evt.editor, - doc = editor.document, - editable = editor.editable(); - - editable.attachListener( doc, 'keydown', function( evt ) { - var data = evt.data.$; - - // Ctrl/Cmd + A - if ( evt.data.getKey() == 65 && ( CKEDITOR.env.mac && data.metaKey || !CKEDITOR.env.mac && data.ctrlKey ) ) { - - // Defer the call so the selection is already changed by the pressed keys. - CKEDITOR.tools.setTimeout( function() { - - // Manage filler elements on keydown. If there is no need - // to add fillers, we need to check and clean previously used once. - if ( !widgetselection.addFillers( editable ) ) { - widgetselection.removeFillers( editable ); - } - }, 0 ); - } - }, null, null, -1 ); - - // Check and clean previously used fillers. - editor.on( 'selectionCheck', function( evt ) { - widgetselection.removeFillers( evt.editor.editable() ); - } ); - - // Remove fillers on paste before data gets inserted into editor. - editor.on( 'paste', function( evt ) { - evt.data.dataValue = widgetselection.cleanPasteData( evt.data.dataValue ); - } ); - - if ( 'selectall' in editor.plugins ) { - widgetselection.addSelectAllIntegration( editor ); - } - } ); - } - } - } ); - - /** - * A set of helper methods for the Widget Selection plugin. - * - * @property widgetselection - * @member CKEDITOR.plugins - * @since 4.6.1 - */ - CKEDITOR.plugins.widgetselection = { - - /** - * The start filler element reference. - * - * @property {CKEDITOR.dom.element} - * @member CKEDITOR.plugins.widgetselection - * @private - */ - startFiller: null, - - /** - * The end filler element reference. - * - * @property {CKEDITOR.dom.element} - * @member CKEDITOR.plugins.widgetselection - * @private - */ - endFiller: null, - - /** - * An attribute which identifies the filler element. - * - * @property {String} - * @member CKEDITOR.plugins.widgetselection - * @private - */ - fillerAttribute: 'data-cke-filler-webkit', - - /** - * The default content of the filler element. Note: The filler needs to have `visible` content. - * Unprintable elements or empty content do not help as a workaround. - * - * @property {String} - * @member CKEDITOR.plugins.widgetselection - * @private - */ - fillerContent: '&nbsp;', - - /** - * Tag name which is used to create fillers. - * - * @property {String} - * @member CKEDITOR.plugins.widgetselection - * @private - */ - fillerTagName: 'div', - - /** - * Adds a filler before or after a non-editable element at the beginning or the end of the `editable`. - * - * @param {CKEDITOR.editable} editable - * @returns {Boolean} - * @member CKEDITOR.plugins.widgetselection - */ - addFillers: function( editable ) { - var editor = editable.editor; - - // Whole content should be selected, if not fix the selection manually. - if ( !this.isWholeContentSelected( editable ) && editable.getChildCount() > 0 ) { - - var firstChild = editable.getFirst( filterTempElements ), - lastChild = editable.getLast( filterTempElements ); - - // Check if first element is editable. If not prepend with filler. - if ( firstChild && firstChild.type == CKEDITOR.NODE_ELEMENT && !firstChild.isEditable() ) { - this.startFiller = this.createFiller(); - editable.append( this.startFiller, 1 ); - } - - // Check if last element is editable. If not append filler. - if ( lastChild && lastChild.type == CKEDITOR.NODE_ELEMENT && !lastChild.isEditable() ) { - this.endFiller = this.createFiller( true ); - editable.append( this.endFiller, 0 ); - } - - // Reselect whole content after any filler was added. - if ( this.hasFiller( editable ) ) { - var rangeAll = editor.createRange(); - rangeAll.selectNodeContents( editable ); - rangeAll.select(); - return true; - } - } - return false; - }, - - /** - * Removes filler elements or updates their references. - * - * It will **not remove** filler elements if the whole content is selected, as it would break the - * selection. - * - * @param {CKEDITOR.editable} editable - * @member CKEDITOR.plugins.widgetselection - */ - removeFillers: function( editable ) { - // If startFiller or endFiller exists and not entire content is selected it means the selection - // just changed from selected all. We need to remove fillers and set proper selection/content. - if ( this.hasFiller( editable ) && !this.isWholeContentSelected( editable ) ) { - - var startFillerContent = editable.findOne( this.fillerTagName + '[' + this.fillerAttribute + '=start]' ), - endFillerContent = editable.findOne( this.fillerTagName + '[' + this.fillerAttribute + '=end]' ); - - if ( this.startFiller && startFillerContent && this.startFiller.equals( startFillerContent ) ) { - this.removeFiller( this.startFiller, editable ); - } else { - // The start filler is still present but it is a different element than previous one. It means the - // undo recreating entirely selected content was performed. We need to update filler reference. - this.startFiller = startFillerContent; - } - - if ( this.endFiller && endFillerContent && this.endFiller.equals( endFillerContent ) ) { - this.removeFiller( this.endFiller, editable ); - } else { - // Same as with start filler. - this.endFiller = endFillerContent; - } - } - }, - - /** - * Removes fillers from the paste data. - * - * @param {String} data - * @returns {String} - * @member CKEDITOR.plugins.widgetselection - * @private - */ - cleanPasteData: function( data ) { - if ( data && data.length ) { - data = data - .replace( this.createFillerRegex(), '' ) - .replace( this.createFillerRegex( true ), '' ); - } - return data; - }, - - /** - * Checks if the entire content of the given editable is selected. - * - * @param {CKEDITOR.editable} editable - * @returns {Boolean} - * @member CKEDITOR.plugins.widgetselection - * @private - */ - isWholeContentSelected: function( editable ) { - - var range = editable.editor.getSelection().getRanges()[ 0 ]; - if ( range ) { - - if ( range && range.collapsed ) { - return false; - - } else { - var rangeClone = range.clone(); - rangeClone.enlarge( CKEDITOR.ENLARGE_ELEMENT ); - - return !!( rangeClone && editable && rangeClone.startContainer && rangeClone.endContainer && - rangeClone.startOffset === 0 && rangeClone.endOffset === editable.getChildCount() && - rangeClone.startContainer.equals( editable ) && rangeClone.endContainer.equals( editable ) ); - } - } - return false; - }, - - /** - * Checks if there is any filler element in the given editable. - * - * @param {CKEDITOR.editable} editable - * @returns {Boolean} - * @member CKEDITOR.plugins.widgetselection - * @private - */ - hasFiller: function( editable ) { - return editable.find( this.fillerTagName + '[' + this.fillerAttribute + ']' ).count() > 0; - }, - - /** - * Creates a filler element. - * - * @param {Boolean} [onEnd] If filler will be placed on end or beginning of the content. - * @returns {CKEDITOR.dom.element} - * @member CKEDITOR.plugins.widgetselection - * @private - */ - createFiller: function( onEnd ) { - var filler = new CKEDITOR.dom.element( this.fillerTagName ); - filler.setHtml( this.fillerContent ); - filler.setAttribute( this.fillerAttribute, onEnd ? 'end' : 'start' ); - filler.setAttribute( 'data-cke-temp', 1 ); - filler.setStyles( { - display: 'block', - width: 0, - height: 0, - padding: 0, - border: 0, - margin: 0, - position: 'absolute', - top: 0, - left: '-9999px', - opacity: 0, - overflow: 'hidden' - } ); - - return filler; - }, - - /** - * Removes the specific filler element from the given editable. If the filler contains any content (typed or pasted), - * it replaces the current editable content. If not, the caret is placed before the first or after the last editable - * element (depends if the filler was at the beginning or the end). - * - * @param {CKEDITOR.dom.element} filler - * @param {CKEDITOR.editable} editable - * @member CKEDITOR.plugins.widgetselection - * @private - */ - removeFiller: function( filler, editable ) { - if ( filler ) { - var editor = editable.editor, - currentRange = editable.editor.getSelection().getRanges()[ 0 ], - currentPath = currentRange.startPath(), - range = editor.createRange(), - insertedHtml, - fillerOnStart, - manuallyHandleCaret; - - if ( currentPath.contains( filler ) ) { - insertedHtml = filler.getHtml(); - manuallyHandleCaret = true; - } - - fillerOnStart = filler.getAttribute( this.fillerAttribute ) == 'start'; - filler.remove(); - filler = null; - - if ( insertedHtml && insertedHtml.length > 0 && insertedHtml != this.fillerContent ) { - editable.insertHtmlIntoRange( insertedHtml, editor.getSelection().getRanges()[ 0 ] ); - range.setStartAt( editable.getChild( editable.getChildCount() - 1 ), CKEDITOR.POSITION_BEFORE_END ); - editor.getSelection().selectRanges( [ range ] ); - - } else if ( manuallyHandleCaret ) { - if ( fillerOnStart ) { - range.setStartAt( editable.getFirst().getNext(), CKEDITOR.POSITION_AFTER_START ); - } else { - range.setEndAt( editable.getLast().getPrevious(), CKEDITOR.POSITION_BEFORE_END ); - } - editable.editor.getSelection().selectRanges( [ range ] ); - } - } - }, - - /** - * Creates a regular expression which will match the filler HTML in the text. - * - * @param {Boolean} [onEnd] Whether a regular expression should be created for the filler at the beginning or - * the end of the content. - * @returns {RegExp} - * @member CKEDITOR.plugins.widgetselection - * @private - */ - createFillerRegex: function( onEnd ) { - var matcher = this.createFiller( onEnd ).getOuterHtml() - .replace( /style="[^"]*"/gi, 'style="[^"]*"' ) - .replace( />[^<]*</gi, '>[^<]*<' ); - - return new RegExp( ( !onEnd ? '^' : '' ) + matcher + ( onEnd ? '$' : '' ) ); - }, - - /** - * Adds an integration for the [Select All](http://ckeditor.com/addon/selectall) plugin to the given `editor`. - * - * @private - * @param {CKEDITOR.editor} editor - * @member CKEDITOR.plugins.widgetselection - */ - addSelectAllIntegration: function( editor ) { - var widgetselection = this; - - editor.editable().attachListener( editor, 'beforeCommandExec', function( evt ) { - var editable = editor.editable(); - - if ( evt.data.name == 'selectAll' && editable ) { - widgetselection.addFillers( editable ); - } - }, null, null, 9999 ); - } - }; - - - function filterTempElements( el ) { - return el.getName && !el.hasAttribute( 'data-cke-temp' ); - } - -} )(); diff --git a/admin/plugins/ckeditor/plugins/wsc/LICENSE.md b/admin/plugins/ckeditor/plugins/wsc/LICENSE.md deleted file mode 100644 index c7d374a..0000000 --- a/admin/plugins/ckeditor/plugins/wsc/LICENSE.md +++ /dev/null @@ -1,28 +0,0 @@ -Software License Agreement -========================== - -**CKEditor WSC Plugin** -Copyright &copy; 2012, [CKSource](http://cksource.com) - Frederico Knabben. All rights reserved. - -Licensed under the terms of any of the following licenses at your choice: - -* GNU General Public License Version 2 or later (the "GPL"): - http://www.gnu.org/licenses/gpl.html - -* GNU Lesser General Public License Version 2.1 or later (the "LGPL"): - http://www.gnu.org/licenses/lgpl.html - -* Mozilla Public License Version 1.1 or later (the "MPL"): - http://www.mozilla.org/MPL/MPL-1.1.html - -You are not required to, but if you want to explicitly declare the license you have chosen to be bound to when using, reproducing, modifying and distributing this software, just include a text file titled "legal.txt" in your version of this software, indicating your license choice. - -Sources of Intellectual Property Included in this plugin --------------------------------------------------------- - -Where not otherwise indicated, all plugin content is authored by CKSource engineers and consists of CKSource-owned intellectual property. In some specific instances, the plugin will incorporate work done by developers outside of CKSource with their express permission. - -Trademarks ----------- - -CKEditor is a trademark of CKSource - Frederico Knabben. All other brand and product names are trademarks, registered trademarks or service marks of their respective holders. diff --git a/admin/plugins/ckeditor/plugins/wsc/README.md b/admin/plugins/ckeditor/plugins/wsc/README.md deleted file mode 100644 index 46eeafb..0000000 --- a/admin/plugins/ckeditor/plugins/wsc/README.md +++ /dev/null @@ -1,25 +0,0 @@ -CKEditor WebSpellChecker Plugin -=============================== - -This plugin brings Web Spell Checker (WSC) into CKEditor. - -WSC is "installation-less", using the web-services of [WebSpellChecker.net](http://www.webspellchecker.net/). It's an out of the box solution. - -Installation ------------- - -1. Clone/copy this repository contents in a new "plugins/wsc" folder in your CKEditor installation. -2. Enable the "wsc" plugin in the CKEditor configuration file (config.js): - - config.extraPlugins = 'wsc'; - -That's all. WSC will appear on the editor toolbar and will be ready to use. - -License -------- - -Licensed under the terms of any of the following licenses at your choice: [GPL](http://www.gnu.org/licenses/gpl.html), [LGPL](http://www.gnu.org/licenses/lgpl.html) and [MPL](http://www.mozilla.org/MPL/MPL-1.1.html). - -See LICENSE.md for more information. - -Developed in cooperation with [WebSpellChecker.net](http://www.webspellchecker.net/). diff --git a/admin/plugins/ckeditor/plugins/wsc/dialogs/ciframe.html b/admin/plugins/ckeditor/plugins/wsc/dialogs/ciframe.html deleted file mode 100644 index 5809fbe..0000000 --- a/admin/plugins/ckeditor/plugins/wsc/dialogs/ciframe.html +++ /dev/null @@ -1,66 +0,0 @@ -<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> -<!-- -Copyright (c) 2003-2015, CKSource - Frederico Knabben. All rights reserved. -For licensing, see LICENSE.html or http://ckeditor.com/license ---> -<html> -<head> - <title></title> - <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> - <script type="text/javascript"> - -function gup( name ) -{ - name = name.replace( /[\[]/, '\\\[' ).replace( /[\]]/, '\\\]' ) ; - var regexS = '[\\?&]' + name + '=([^&#]*)' ; - var regex = new RegExp( regexS ) ; - var results = regex.exec( window.location.href ) ; - - if ( results ) - return results[ 1 ] ; - else - return '' ; -} - -var interval; - -function sendData2Master() -{ - var destination = window.parent.parent ; - try - { - if ( destination.XDTMaster ) - { - var t = destination.XDTMaster.read( [ gup( 'cmd' ), gup( 'data' ) ] ) ; - window.clearInterval( interval ) ; - } - } - catch (e) {} -} - -function OnMessage (event) { - var message = event.data; - var destination = window.parent.parent; - destination.XDTMaster.read( [ 'end', message, 'fpm' ] ) ; -} - -function listenPostMessage() { - if (window.addEventListener) { // all browsers except IE before version 9 - window.addEventListener ("message", OnMessage, false); - }else { - if (window.attachEvent) { // IE before version 9 - window.attachEvent("onmessage", OnMessage); - } - } -} - -function onLoad() -{ - interval = window.setInterval( sendData2Master, 100 ); - listenPostMessage(); -} - -</script> -</head> -<body onload="onLoad()"><p></p></body> -</html> diff --git a/admin/plugins/ckeditor/plugins/wsc/dialogs/tmpFrameset.html b/admin/plugins/ckeditor/plugins/wsc/dialogs/tmpFrameset.html deleted file mode 100644 index d5fc6bb..0000000 --- a/admin/plugins/ckeditor/plugins/wsc/dialogs/tmpFrameset.html +++ /dev/null @@ -1,52 +0,0 @@ -<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN" "http://www.w3.org/TR/html4/frameset.dtd"> -<!-- -Copyright (c) 2003-2015, CKSource - Frederico Knabben. All rights reserved. -For licensing, see LICENSE.html or http://ckeditor.com/license ---> -<html> -<head> - <title></title> - <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> - <script type="text/javascript"> - -function doLoadScript( url ) -{ - if ( !url ) - return false ; - - var s = document.createElement( "script" ) ; - s.type = "text/javascript" ; - s.src = url ; - document.getElementsByTagName( "head" )[ 0 ].appendChild( s ) ; - - return true ; -} - -var opener; -function tryLoad() -{ - opener = window.parent; - - // get access to global parameters - var oParams = window.opener.oldFramesetPageParams; - - // make frameset rows string prepare - var sFramesetRows = ( parseInt( oParams.firstframeh, 10 ) || '30') + ",*," + ( parseInt( oParams.thirdframeh, 10 ) || '150' ) + ',0' ; - document.getElementById( 'itFrameset' ).rows = sFramesetRows ; - - // dynamic including init frames and crossdomain transport code - // from config sproxy_js_frameset url - var addScriptUrl = oParams.sproxy_js_frameset ; - doLoadScript( addScriptUrl ) ; -} - - </script> -</head> - -<frameset id="itFrameset" onload="tryLoad();" border="0" rows="30,*,*,0"> - <frame scrolling="no" framespacing="0" frameborder="0" noresize="noresize" marginheight="0" marginwidth="2" src="" name="navbar"></frame> - <frame scrolling="auto" framespacing="0" frameborder="0" noresize="noresize" marginheight="0" marginwidth="0" src="" name="mid"></frame> - <frame scrolling="no" framespacing="0" frameborder="0" noresize="noresize" marginheight="1" marginwidth="1" src="" name="bot"></frame> - <frame scrolling="no" framespacing="0" frameborder="0" noresize="noresize" marginheight="1" marginwidth="1" src="" name="spellsuggestall"></frame> -</frameset> -</html> diff --git a/admin/plugins/ckeditor/plugins/wsc/dialogs/wsc.css b/admin/plugins/ckeditor/plugins/wsc/dialogs/wsc.css deleted file mode 100644 index 1056b45..0000000 --- a/admin/plugins/ckeditor/plugins/wsc/dialogs/wsc.css +++ /dev/null @@ -1,82 +0,0 @@ -/* -Copyright (c) 2003-2015, CKSource - Frederico Knabben. All rights reserved. -For licensing, see LICENSE.html or http://ckeditor.com/license -*/ - -html, body -{ - background-color: transparent; - margin: 0px; - padding: 0px; -} - -body -{ - padding: 10px; -} - -body, td, input, select, textarea -{ - font-size: 11px; - font-family: 'Microsoft Sans Serif' , Arial, Helvetica, Verdana; -} - -.midtext -{ - padding:0px; - margin:10px; -} - -.midtext p -{ - padding:0px; - margin:10px; -} - -.Button -{ - border: #737357 1px solid; - color: #3b3b1f; - background-color: #c7c78f; -} - -.PopupTabArea -{ - color: #737357; - background-color: #e3e3c7; -} - -.PopupTitleBorder -{ - border-bottom: #d5d59d 1px solid; -} -.PopupTabEmptyArea -{ - padding-left: 10px; - border-bottom: #d5d59d 1px solid; -} - -.PopupTab, .PopupTabSelected -{ - border-right: #d5d59d 1px solid; - border-top: #d5d59d 1px solid; - border-left: #d5d59d 1px solid; - padding: 3px 5px 3px 5px; - color: #737357; -} - -.PopupTab -{ - margin-top: 1px; - border-bottom: #d5d59d 1px solid; - cursor: pointer; -} - -.PopupTabSelected -{ - font-weight: bold; - cursor: default; - padding-top: 4px; - border-bottom: #f1f1e3 1px solid; - background-color: #f1f1e3; -} diff --git a/admin/plugins/ckeditor/plugins/wsc/dialogs/wsc.js b/admin/plugins/ckeditor/plugins/wsc/dialogs/wsc.js deleted file mode 100644 index fe584f6..0000000 --- a/admin/plugins/ckeditor/plugins/wsc/dialogs/wsc.js +++ /dev/null @@ -1,91 +0,0 @@ -/* - Copyright (c) 2003-2015, CKSource - Frederico Knabben. All rights reserved. - For licensing, see LICENSE.html or http://ckeditor.com/license -*/ -(function(){function z(a){return a&&a.domId&&a.getInputElement().$?a.getInputElement():a&&a.$?a:!1}function I(a){if(!a)throw"Languages-by-groups list are required for construct selectbox";var c=[],d="",e;for(e in a)for(var f in a[e]){var h=a[e][f];"en_US"==h?d=h:c.push(h)}c.sort();d&&c.unshift(d);return{getCurrentLangGroup:function(c){a:{for(var e in a)for(var d in a[e])if(d.toUpperCase()===c.toUpperCase()){c=e;break a}c=""}return c},setLangList:function(){var c={},e;for(e in a)for(var d in a[e])c[a[e][d]]= -d;return c}()}}var g=function(){var a=function(a,b,e){e=e||{};var f=e.expires;if("number"==typeof f&&f){var h=new Date;h.setTime(h.getTime()+1E3*f);f=e.expires=h}f&&f.toUTCString&&(e.expires=f.toUTCString());b=encodeURIComponent(b);a=a+"\x3d"+b;for(var k in e)b=e[k],a+="; "+k,!0!==b&&(a+="\x3d"+b);document.cookie=a};return{postMessage:{init:function(a){window.addEventListener?window.addEventListener("message",a,!1):window.attachEvent("onmessage",a)},send:function(a){var b=Object.prototype.toString, -e=a.fn||null,f=a.id||"",h=a.target||window,k=a.message||{id:f};a.message&&"[object Object]"==b.call(a.message)&&(a.message.id?a.message.id:a.message.id=f,k=a.message);a=window.JSON.stringify(k,e);h.postMessage(a,"*")},unbindHandler:function(a){window.removeEventListener?window.removeEventListener("message",a,!1):window.detachEvent("onmessage",a)}},hash:{create:function(){},parse:function(){}},cookie:{set:a,get:function(a){return(a=document.cookie.match(new RegExp("(?:^|; )"+a.replace(/([\.$?*|{}\(\)\[\]\\\/\+^])/g, -"\\$1")+"\x3d([^;]*)")))?decodeURIComponent(a[1]):void 0},remove:function(c){a(c,"",{expires:-1})}},misc:{findFocusable:function(a){var b=null;a&&(b=a.find("a[href], area[href], input, select, textarea, button, *[tabindex], *[contenteditable]"));return b},isVisible:function(a){var b;(b=0===a.offsetWidth||0==a.offsetHeight)||(b="none"===(document.defaultView&&document.defaultView.getComputedStyle?document.defaultView.getComputedStyle(a,null).display:a.currentStyle?a.currentStyle.display:a.style.display)); -return!b},hasClass:function(a,b){return!(!a.className||!a.className.match(new RegExp("(\\s|^)"+b+"(\\s|$)")))}}}}(),a=a||{};a.TextAreaNumber=null;a.load=!0;a.cmd={SpellTab:"spell",Thesaurus:"thes",GrammTab:"grammar"};a.dialog=null;a.optionNode=null;a.selectNode=null;a.grammerSuggest=null;a.textNode={};a.iframeMain=null;a.dataTemp="";a.div_overlay=null;a.textNodeInfo={};a.selectNode={};a.selectNodeResponce={};a.langList=null;a.langSelectbox=null;a.banner="";a.show_grammar=null;a.div_overlay_no_check= -null;a.targetFromFrame={};a.onLoadOverlay=null;a.LocalizationComing={};a.OverlayPlace=null;a.sessionid="";a.LocalizationButton={ChangeTo_button:{instance:null,text:"Change to",localizationID:"ChangeTo"},ChangeAll:{instance:null,text:"Change All"},IgnoreWord:{instance:null,text:"Ignore word"},IgnoreAllWords:{instance:null,text:"Ignore all words"},Options:{instance:null,text:"Options",optionsDialog:{instance:null}},AddWord:{instance:null,text:"Add word"},FinishChecking_button:{instance:null,text:"Finish Checking", -localizationID:"FinishChecking"},Option_button:{instance:null,text:"Options",localizationID:"Options"},FinishChecking_button_block:{instance:null,text:"Finish Checking",localizationID:"FinishChecking"}};a.LocalizationLabel={ChangeTo_label:{instance:null,text:"Change to",localizationID:"ChangeTo"},Suggestions:{instance:null,text:"Suggestions"},Categories:{instance:null,text:"Categories"},Synonyms:{instance:null,text:"Synonyms"}};var J=function(b){var c,d,e;for(e in b){if(c=a.dialog.getContentElement(a.dialog._.currentTabId, -e))c=c.getElement();else if(b[e].instance)c=b[e].instance.getElement().getFirst()||b[e].instance.getElement();else continue;d=b[e].localizationID||e;c.setText(a.LocalizationComing[d])}},K=function(b){var c,d,e;for(e in b)c=a.dialog.getContentElement(a.dialog._.currentTabId,e),c||(c=b[e].instance),c.setLabel&&(d=b[e].localizationID||e,c.setLabel(a.LocalizationComing[d]+":"))},t,A;a.framesetHtml=function(b){return"\x3ciframe id\x3d"+a.iframeNumber+"_"+b+' frameborder\x3d"0" allowtransparency\x3d"1" style\x3d"width:100%;border: 1px solid #AEB3B9;overflow: auto;background:#fff; border-radius: 3px;"\x3e\x3c/iframe\x3e'}; -a.setIframe=function(b,c){var d;d=a.framesetHtml(c);var e=a.iframeNumber+"_"+c;b.getElement().setHtml(d);d=document.getElementById(e);d=d.contentWindow?d.contentWindow:d.contentDocument.document?d.contentDocument.document:d.contentDocument;d.document.open();d.document.write('\x3c!DOCTYPE html\x3e\x3chtml\x3e\x3chead\x3e\x3cmeta charset\x3d"UTF-8"\x3e\x3ctitle\x3eiframe\x3c/title\x3e\x3cstyle\x3ehtml,body{margin: 0;height: 100%;font: 13px/1.555 "Trebuchet MS", sans-serif;}a{color: #888;font-weight: bold;text-decoration: none;border-bottom: 1px solid #888;}.main-box {color:#252525;padding: 3px 5px;text-align: justify;}.main-box p{margin: 0 0 14px;}.main-box .cerr{color: #f00000;border-bottom-color: #f00000;}\x3c/style\x3e\x3c/head\x3e\x3cbody\x3e\x3cdiv id\x3d"content" class\x3d"main-box"\x3e\x3c/div\x3e\x3ciframe src\x3d"" frameborder\x3d"0" id\x3d"spelltext" name\x3d"spelltext" style\x3d"display:none; width: 100%" \x3e\x3c/iframe\x3e\x3ciframe src\x3d"" frameborder\x3d"0" id\x3d"loadsuggestfirst" name\x3d"loadsuggestfirst" style\x3d"display:none; width: 100%" \x3e\x3c/iframe\x3e\x3ciframe src\x3d"" frameborder\x3d"0" id\x3d"loadspellsuggestall" name\x3d"loadspellsuggestall" style\x3d"display:none; width: 100%" \x3e\x3c/iframe\x3e\x3ciframe src\x3d"" frameborder\x3d"0" id\x3d"loadOptionsForm" name\x3d"loadOptionsForm" style\x3d"display:none; width: 100%" \x3e\x3c/iframe\x3e\x3cscript\x3e(function(window) {var ManagerPostMessage \x3d function() {var _init \x3d function(handler) {if (document.addEventListener) {window.addEventListener("message", handler, false);} else {window.attachEvent("onmessage", handler);};};var _sendCmd \x3d function(o) {var str,type \x3d Object.prototype.toString,fn \x3d o.fn || null,id \x3d o.id || "",target \x3d o.target || window,message \x3d o.message || { "id": id };if (o.message \x26\x26 type.call(o.message) \x3d\x3d "[object Object]") {(o.message["id"]) ? o.message["id"] : o.message["id"] \x3d id;message \x3d o.message;};str \x3d JSON.stringify(message, fn);target.postMessage(str, "*");};return {init: _init,send: _sendCmd};};var manageMessageTmp \x3d new ManagerPostMessage;var appString \x3d (function(){var spell \x3d parent.CKEDITOR.config.wsc.DefaultParams.scriptPath;var serverUrl \x3d parent.CKEDITOR.config.wsc.DefaultParams.serviceHost;return serverUrl + spell;})();function loadScript(src, callback) {var scriptTag \x3d document.createElement("script");scriptTag.type \x3d "text/javascript";callback ? callback : callback \x3d function() {};if(scriptTag.readyState) {scriptTag.onreadystatechange \x3d function() {if (scriptTag.readyState \x3d\x3d "loaded" ||scriptTag.readyState \x3d\x3d "complete") {scriptTag.onreadystatechange \x3d null;setTimeout(function(){scriptTag.parentNode.removeChild(scriptTag)},1);callback();}};}else{scriptTag.onload \x3d function() {setTimeout(function(){scriptTag.parentNode.removeChild(scriptTag)},1);callback();};};scriptTag.src \x3d src;document.getElementsByTagName("head")[0].appendChild(scriptTag);};window.onload \x3d function(){loadScript(appString, function(){manageMessageTmp.send({"id": "iframeOnload","target": window.parent});});}})(this);\x3c/script\x3e\x3c/body\x3e\x3c/html\x3e'); -d.document.close();a.div_overlay.setEnable()};a.setCurrentIframe=function(b){a.setIframe(a.dialog._.contents[b].Content,b)};a.setHeightBannerFrame=function(){var b=a.dialog.getContentElement("SpellTab","banner").getElement(),c=a.dialog.getContentElement("GrammTab","banner").getElement(),d=a.dialog.getContentElement("Thesaurus","banner").getElement();b.setStyle("height","90px");c.setStyle("height","90px");d.setStyle("height","90px")};a.setHeightFrame=function(){document.getElementById(a.iframeNumber+ -"_"+a.dialog._.currentTabId).style.height="240px"};a.sendData=function(b){var c=b._.currentTabId,d=b._.contents[c].Content,e,f;a.previousTab=c;a.setIframe(d,c);var h=function(h){c=b._.currentTabId;h=h||window.event;h.data.getTarget().is("a")&&c!==a.previousTab&&(a.previousTab=c,d=b._.contents[c].Content,e=a.iframeNumber+"_"+c,a.div_overlay.setEnable(),d.getElement().getChildCount()?E(a.targetFromFrame[e],a.cmd[c]):(a.setIframe(d,c),f=document.getElementById(e),a.targetFromFrame[e]=f.contentWindow))}; -b.parts.tabs.removeListener("click",h);b.parts.tabs.on("click",h)};a.buildSelectLang=function(a){var c=new CKEDITOR.dom.element("div"),d=new CKEDITOR.dom.element("select");a="wscLang"+a;c.addClass("cke_dialog_ui_input_select");c.setAttribute("role","presentation");c.setStyles({height:"auto",position:"absolute",right:"0",top:"-1px",width:"160px","white-space":"normal"});d.setAttribute("id",a);d.addClass("cke_dialog_ui_input_select");d.setStyles({width:"160px"});c.append(d);return c};a.buildOptionLang= -function(b,c){var d=document.getElementById("wscLang"+c),e=document.createDocumentFragment(),f,h,k=[];if(0===d.options.length){for(f in b)k.push([f,b[f]]);k.sort();for(var p=0;p<k.length;p++)f=document.createElement("option"),f.setAttribute("value",k[p][1]),h=document.createTextNode(k[p][0]),f.appendChild(h),e.appendChild(f);d.appendChild(e)}for(e=0;e<d.options.length;e++)d.options[e].value==a.selectingLang&&(d.options[e].selected="selected")};a.buildOptionSynonyms=function(b){b=a.selectNodeResponce[b]; -var c=z(a.selectNode.Synonyms);a.selectNode.Synonyms.clear();for(var d=0;d<b.length;d++){var e=document.createElement("option");e.text=b[d];e.value=b[d];c.$.add(e,d)}a.selectNode.Synonyms.getInputElement().$.firstChild.selected=!0;a.textNode.Thesaurus.setValue(a.selectNode.Synonyms.getInputElement().getValue())};var B=function(a){var c=document,d=a.target||c.body,e=a.id||"overlayBlock",f=a.opacity||"0.9";a=a.background||"#f1f1f1";var h=c.getElementById(e),k=h||c.createElement("div");k.style.cssText= -"position: absolute;top:30px;bottom:41px;left:1px;right:1px;z-index: 10020;padding:0;margin:0;background:"+a+";opacity: "+f+";filter: alpha(opacity\x3d"+100*f+");display: none;";k.id=e;h||d.appendChild(k);return{setDisable:function(){k.style.display="none"},setEnable:function(){k.style.display="block"}}},L=function(b,c,d){var e=new CKEDITOR.dom.element("div"),f=new CKEDITOR.dom.element("input"),h=new CKEDITOR.dom.element("label"),k="wscGrammerSuggest"+b+"_"+c;e.addClass("cke_dialog_ui_input_radio"); -e.setAttribute("role","presentation");e.setStyles({width:"97%",padding:"5px","white-space":"normal"});f.setAttributes({type:"radio",value:c,name:"wscGrammerSuggest",id:k});f.setStyles({"float":"left"});f.on("click",function(b){a.textNode.GrammTab.setValue(b.sender.getValue())});d?f.setAttribute("checked",!0):!1;f.addClass("cke_dialog_ui_radio_input");h.appendText(b);h.setAttribute("for",k);h.setStyles({display:"block","line-height":"16px","margin-left":"18px","white-space":"normal"});e.append(f); -e.append(h);return e},F=function(a){a=a||"true";null!==a&&"false"==a&&u()},w=function(b){var c=new I(b);b="wscLang"+a.dialog.getParentEditor().name;b=document.getElementById(b);var d,e=a.iframeNumber+"_"+a.dialog._.currentTabId;a.buildOptionLang(c.setLangList,a.dialog.getParentEditor().name);if(d=c.getCurrentLangGroup(a.selectingLang))v[d].onShow();F(a.show_grammar);b.onchange=function(b){b=c.getCurrentLangGroup(this.value);var d=a.dialog._.currentTabId;v[b].onShow();F(a.show_grammar);a.div_overlay.setEnable(); -a.selectingLang=this.value;d=a.cmd[d];b&&v[b]&&v[b].allowedTabCommands[d]||(d=v[b].defaultTabCommand);for(var k in a.cmd)if(a.cmd[k]==d){a.previousTab=k;break}g.postMessage.send({message:{changeLang:a.selectingLang,interfaceLang:a.interfaceLang,text:a.dataTemp,cmd:d},target:a.targetFromFrame[e],id:"selectionLang_outer__page"})}},M=function(b){var c,d=function(b){b=a.dialog.getContentElement(a.dialog._.currentTabId,b)||a.LocalizationButton[b].instance;b.getElement().hasClass("cke_disabled")?b.getElement().setStyle("color", -"#a0a0a0"):b.disable()};c=function(b){b=a.dialog.getContentElement(a.dialog._.currentTabId,b)||a.LocalizationButton[b].instance;b.enable();b.getElement().setStyle("color","#333")};"no_any_suggestions"==b?(b="No suggestions",c=a.dialog.getContentElement(a.dialog._.currentTabId,"ChangeTo_button")||a.LocalizationButton.ChangeTo_button.instance,c.disable(),c=a.dialog.getContentElement(a.dialog._.currentTabId,"ChangeAll")||a.LocalizationButton.ChangeAll.instance,c.disable(),d("ChangeTo_button"),d("ChangeAll")): -(c("ChangeTo_button"),c("ChangeAll"));return b},O={iframeOnload:function(b){b=a.dialog._.currentTabId;E(a.targetFromFrame[a.iframeNumber+"_"+b],a.cmd[b])},suggestlist:function(b){delete b.id;a.div_overlay_no_check.setDisable();C();w(a.langList);var c=M(b.word),d="";c instanceof Array&&(c=b.word[0]);d=c=c.split(",");a.textNode.SpellTab.setValue(d[0]);b=z(A);A.clear();for(c=0;c<d.length;c++){var e=document.createElement("option");e.text=d[c];e.value=d[c];b.$.add(e,c)}l();a.div_overlay.setDisable()}, -grammerSuggest:function(b){delete b.id;delete b.mocklangs;C();w(a.langList);var c=b.grammSuggest[0];a.grammerSuggest.getElement().setHtml("");a.textNode.GrammTab.reset();a.textNode.GrammTab.setValue(c);a.textNodeInfo.GrammTab.getElement().setHtml("");a.textNodeInfo.GrammTab.getElement().setText(b.info);b=b.grammSuggest;for(var c=b.length,d=!0,e=0;e<c;e++)a.grammerSuggest.getElement().append(L(b[e],b[e],d)),d=!1;l();a.div_overlay.setDisable()},thesaurusSuggest:function(b){delete b.id;delete b.mocklangs; -C();w(a.langList);a.selectNodeResponce=b;a.textNode.Thesaurus.reset();var c=z(a.selectNode.Categories),d=0;a.selectNode.Categories.clear();for(var e in b)b=document.createElement("option"),b.text=e,b.value=e,c.$.add(b,d),d++;c=a.selectNode.Categories.getInputElement().getChildren().$[0].value;a.selectNode.Categories.getInputElement().getChildren().$[0].selected=!0;a.buildOptionSynonyms(c);l();a.div_overlay.setDisable()},finish:function(b){delete b.id;N();b=a.dialog.getContentElement(a.dialog._.currentTabId, -"BlockFinishChecking").getElement();b.removeStyle("display");b.removeStyle("position");b.removeStyle("left");b.show();a.div_overlay.setDisable()},settext:function(b){delete b.id;a.dialog.getParentEditor().getCommand("checkspell");var c=a.dialog.getParentEditor();if(c.scayt&&c.wsc.isSsrvSame){var d=c.wsc.udn;d?c.wsc.DataStorage.setData("scayt_user_dictionary_name",d):c.wsc.DataStorage.setData("scayt_user_dictionary_name","")}try{c.focus()}catch(e){}c.setData(b.text,function(){a.dataTemp="";c.unlockSelection(); -c.fire("saveSnapshot");a.dialog.hide()})},ReplaceText:function(b){delete b.id;a.div_overlay.setEnable();a.dataTemp=b.text;a.selectingLang=b.currentLang;(b.cmd="0"!==b.len&&b.len)?a.div_overlay.setDisable():window.setTimeout(function(){try{a.div_overlay.setDisable()}catch(b){}},500);J(a.LocalizationButton);K(a.LocalizationLabel)},options_checkbox_send:function(b){delete b.id;b={osp:g.cookie.get("osp"),udn:g.cookie.get("udn"),cust_dic_ids:a.cust_dic_ids};g.postMessage.send({message:b,target:a.targetFromFrame[a.iframeNumber+ -"_"+a.dialog._.currentTabId],id:"options_outer__page"})},getOptions:function(b){var c=b.DefOptions.udn;a.LocalizationComing=b.DefOptions.localizationButtonsAndText;a.show_grammar=b.show_grammar;a.langList=b.lang;a.bnr=b.bannerId;a.sessionid=b.sessionid;if(b.bannerId){a.setHeightBannerFrame();var d=b.banner;a.dialog.getContentElement(a.dialog._.currentTabId,"banner").getElement().setHtml(d)}else a.setHeightFrame();"undefined"==c&&(a.userDictionaryName?(c=a.userDictionaryName,d={osp:g.cookie.get("osp"), -udn:a.userDictionaryName,cust_dic_ids:a.cust_dic_ids,id:"options_dic_send",udnCmd:"create"},g.postMessage.send({message:d,target:a.targetFromFrame[void 0]})):c="");g.cookie.set("osp",b.DefOptions.osp);g.cookie.set("udn",c);g.cookie.set("cust_dic_ids",b.DefOptions.cust_dic_ids);g.postMessage.send({id:"giveOptions"})},options_dic_send:function(b){b={osp:g.cookie.get("osp"),udn:g.cookie.get("udn"),cust_dic_ids:a.cust_dic_ids,id:"options_dic_send",udnCmd:g.cookie.get("udnCmd")};g.postMessage.send({message:b, -target:a.targetFromFrame[a.iframeNumber+"_"+a.dialog._.currentTabId]})},data:function(a){delete a.id},giveOptions:function(){},setOptionsConfirmF:function(){},setOptionsConfirmT:function(){t.setValue("")},clickBusy:function(){a.div_overlay.setEnable()},suggestAllCame:function(){a.div_overlay.setDisable();a.div_overlay_no_check.setDisable()},TextCorrect:function(){w(a.langList)}},G=function(a){a=a||window.event;if((a=window.JSON.parse(a.data))&&a.id)O[a.id](a)},E=function(b,c,d,e){c=c||CKEDITOR.config.wsc_cmd; -d=d||a.dataTemp;g.postMessage.send({message:{customerId:a.wsc_customerId,text:d,txt_ctrl:a.TextAreaNumber,cmd:c,cust_dic_ids:a.cust_dic_ids,udn:a.userDictionaryName,slang:a.selectingLang,interfaceLang:a.interfaceLang,reset_suggest:e||!1,sessionid:a.sessionid},target:b,id:"data_outer__page"});a.div_overlay.setEnable()},v={superset:{onShow:function(){a.dialog.showPage("Thesaurus");a.dialog.showPage("GrammTab");q()},allowedTabCommands:{spell:!0,grammar:!0,thes:!0},defaultTabCommand:"spell"},usual:{onShow:function(){x(); -u();q()},allowedTabCommands:{spell:!0},defaultTabCommand:"spell"},rtl:{onShow:function(){x();u();q()},allowedTabCommands:{spell:!0},defaultTabCommand:"spell"},spellgrammar:{onShow:function(){x();a.dialog.showPage("GrammTab");q()},allowedTabCommands:{spell:!0,grammar:!0},defaultTabCommand:"spell"},spellthes:{onShow:function(){a.dialog.showPage("Thesaurus");u();q()},allowedTabCommands:{spell:!0,thes:!0},defaultTabCommand:"spell"}},H=function(b){var c=(new function(a){var b={};return{getCmdByTab:function(c){for(var h in a)b[a[h]]= -h;return b[c]}}}(a.cmd)).getCmdByTab(CKEDITOR.config.wsc_cmd);l();b.selectPage(c);a.sendData(b)},x=function(){a.dialog.hidePage("Thesaurus")},u=function(){a.dialog.hidePage("GrammTab")},q=function(){a.dialog.showPage("SpellTab")},l=function(){var b=a.dialog.getContentElement(a.dialog._.currentTabId,"bottomGroup").getElement();b.removeStyle("display");b.removeStyle("position");b.removeStyle("left");b.show()},N=function(){var b=a.dialog.getContentElement(a.dialog._.currentTabId,"bottomGroup").getElement(), -c=document.activeElement,d;b.setStyles({display:"block",position:"absolute",left:"-9999px"});setTimeout(function(){b.removeStyle("display");b.removeStyle("position");b.removeStyle("left");b.hide();a.dialog._.editor.focusManager.currentActive.focusNext();d=g.misc.findFocusable(a.dialog.parts.contents);if(g.misc.hasClass(c,"cke_dialog_tab")||g.misc.hasClass(c,"cke_dialog_contents_body")||!g.misc.isVisible(c))for(var e=0,f;e<d.count();e++){if(f=d.getItem(e),g.misc.isVisible(f.$)){try{f.$.focus()}catch(h){}break}}else try{c.focus()}catch(k){}}, -0)},C=function(){var b=a.dialog.getContentElement(a.dialog._.currentTabId,"BlockFinishChecking").getElement(),c=document.activeElement,d;b.setStyles({display:"block",position:"absolute",left:"-9999px"});setTimeout(function(){b.removeStyle("display");b.removeStyle("position");b.removeStyle("left");b.hide();a.dialog._.editor.focusManager.currentActive.focusNext();d=g.misc.findFocusable(a.dialog.parts.contents);if(g.misc.hasClass(c,"cke_dialog_tab")||g.misc.hasClass(c,"cke_dialog_contents_body")||!g.misc.isVisible(c))for(var e= -0,f;e<d.count();e++){if(f=d.getItem(e),g.misc.isVisible(f.$)){try{f.$.focus()}catch(h){}break}}else try{c.focus()}catch(k){}},0)};CKEDITOR.dialog.add("checkspell",function(b){function c(a){var c=parseInt(b.config.wsc_left,10),e=parseInt(b.config.wsc_top,10),d=parseInt(b.config.wsc_width,10),g=parseInt(b.config.wsc_height,10),m=CKEDITOR.document.getWindow().getViewPaneSize();a.getPosition();var n=a.getSize(),r=0;if(!a._.resized){var r=n.height-a.parts.contents.getSize("height",!(CKEDITOR.env.gecko|| -CKEDITOR.env.opera||CKEDITOR.env.ie&&CKEDITOR.env.quirks)),D=n.width-a.parts.contents.getSize("width",1);if(d<f.minWidth||isNaN(d))d=f.minWidth;d>m.width-D&&(d=m.width-D);if(g<f.minHeight||isNaN(g))g=f.minHeight;g>m.height-r&&(g=m.height-r);n.width=d+D;n.height=g+r;a._.fromResizeEvent=!1;a.resize(d,g);setTimeout(function(){a._.fromResizeEvent=!1;CKEDITOR.dialog.fire("resize",{dialog:a,width:d,height:g},b)},300)}a._.moved||(r=isNaN(c)&&isNaN(e)?0:1,isNaN(c)&&(c=(m.width-n.width)/2),0>c&&(c=0),c>m.width- -n.width&&(c=m.width-n.width),isNaN(e)&&(e=(m.height-n.height)/2),0>e&&(e=0),e>m.height-n.height&&(e=m.height-n.height),a.move(c,e,r))}function d(){b.wsc={};(function(a){var b={separator:"\x3c$\x3e",getDataType:function(a){return"undefined"===typeof a?"undefined":null===a?"null":Object.prototype.toString.call(a).slice(8,-1)},convertDataToString:function(a){return this.getDataType(a).toLowerCase()+this.separator+a},restoreDataFromString:function(a){var b=a,c;a=this.backCompatibility(a);if("string"=== -typeof a)switch(b=a.indexOf(this.separator),c=a.substring(0,b),b=a.substring(b+this.separator.length),c){case "boolean":b="true"===b;break;case "number":b=parseFloat(b);break;case "array":b=""===b?[]:b.split(",");break;case "null":b=null;break;case "undefined":b=void 0}return b},backCompatibility:function(a){var b=a,c;"string"===typeof a&&(c=a.indexOf(this.separator),0>c&&(b=parseFloat(a),isNaN(b)&&("["===a[0]&&"]"===a[a.length-1]?(a=a.replace("[",""),a=a.replace("]",""),b=""===a?[]:a.split(",")): -b="true"===a||"false"===a?"true"===a:a),b=this.convertDataToString(b)));return b}},c={get:function(a){return b.restoreDataFromString(window.localStorage.getItem(a))},set:function(a,c){var d=b.convertDataToString(c);window.localStorage.setItem(a,d)},del:function(a){window.localStorage.removeItem(a)},clear:function(){window.localStorage.clear()}},e={expiration:31622400,get:function(a){return b.restoreDataFromString(this.getCookie(a))},set:function(a,c){var d=b.convertDataToString(c);this.setCookie(a, -d,{expires:this.expiration})},del:function(a){this.deleteCookie(a)},getCookie:function(a){return(a=document.cookie.match(new RegExp("(?:^|; )"+a.replace(/([\.$?*|{}\(\)\[\]\\\/\+^])/g,"\\$1")+"\x3d([^;]*)")))?decodeURIComponent(a[1]):void 0},setCookie:function(a,b,c){c=c||{};var d=c.expires;if("number"===typeof d&&d){var e=new Date;e.setTime(e.getTime()+1E3*d);d=c.expires=e}d&&d.toUTCString&&(c.expires=d.toUTCString());b=encodeURIComponent(b);a=a+"\x3d"+b;for(var h in c)b=c[h],a+="; "+h,!0!==b&&(a+= -"\x3d"+b);document.cookie=a},deleteCookie:function(a){this.setCookie(a,null,{expires:-1})},clear:function(){for(var a=document.cookie.split(";"),b=0;b<a.length;b++){var c=a[b],d=c.indexOf("\x3d"),c=-1<d?c.substr(0,d):c;this.deleteCookie(c)}}},d=window.localStorage?c:e;a.DataStorage={getData:function(a){return d.get(a)},setData:function(a,b){d.set(a,b)},deleteData:function(a){d.del(a)},clear:function(){d.clear()}}})(b.wsc);b.wsc.operationWithUDN=function(b,c){g.postMessage.send({message:{udn:c,id:"operationWithUDN", -udnCmd:b},target:a.targetFromFrame[a.iframeNumber+"_"+a.dialog._.currentTabId]})};b.wsc.getLocalStorageUDN=function(){var a=b.wsc.DataStorage.getData("scayt_user_dictionary_name");if(a)return a};b.wsc.getLocalStorageUD=function(){var a=b.wsc.DataStorage.getData("scayt_user_dictionary");if(a)return a};b.wsc.addWords=function(a,c){var d=b.config.wsc.DefaultParams.serviceHost+b.config.wsc.DefaultParams.ssrvHost+"?cmd\x3ddictionary\x26format\x3djson\x26customerid\x3d1%3AncttD3-fIoSf2-huzwE4-Y5muI2-mD0Tt-kG9Wz-UEDFC-tYu243-1Uq474-d9Z2l3\x26action\x3daddword\x26word\x3d"+ -a+"\x26callback\x3dtoString\x26synchronization\x3dtrue",e=document.createElement("script");e.type="text/javascript";e.src=d;document.getElementsByTagName("head")[0].appendChild(e);e.onload=c;e.onreadystatechange=function(){"loaded"===this.readyState&&c()}};b.wsc.cgiOrigin=function(){var a=b.config.wsc.DefaultParams.serviceHost.split("/");return a[0]+"//"+a[2]};b.wsc.isSsrvSame=!1}var e=function(c){this.getElement().focus();a.div_overlay.setEnable();c=a.dialog._.currentTabId;var d=a.iframeNumber+"_"+ -c,e=a.textNode[c].getValue(),f=this.getElement().getAttribute("title-cmd");g.postMessage.send({message:{cmd:f,tabId:c,new_word:e},target:a.targetFromFrame[d],id:"cmd_outer__page"});"ChangeTo"!=f&&"ChangeAll"!=f||b.fire("saveSnapshot");"FinishChecking"==f&&b.config.wsc_onFinish.call(CKEDITOR.document.getWindow().getFrame())},f={minWidth:560,minHeight:444};return{title:b.config.wsc_dialogTitle||b.lang.wsc.title,minWidth:f.minWidth,minHeight:f.minHeight,buttons:[CKEDITOR.dialog.cancelButton],onLoad:function(){a.dialog= -this;x();u();q();b.plugins.scayt&&d()},onShow:function(){a.dialog=this;b.lockSelection(b.getSelection());a.TextAreaNumber="cke_textarea_"+b.name;g.postMessage.init(G);a.dataTemp=b.getData();a.OverlayPlace=a.dialog.parts.tabs.getParent().$;if(CKEDITOR&&CKEDITOR.config){a.wsc_customerId=b.config.wsc_customerId;a.cust_dic_ids=b.config.wsc_customDictionaryIds;a.userDictionaryName=b.config.wsc_userDictionaryName;a.defaultLanguage=CKEDITOR.config.defaultLanguage;var d="file:"==document.location.protocol? -"http:":document.location.protocol,d=b.config.wsc_customLoaderScript||d+"//www.webspellchecker.net/spellcheck3/script/ssrv.cgi?plugin\x3dfck2\x26customerid\x3d"+a.wsc_customerId+"\x26cmd\x3dscript\x26doc\x3dwsc\x26schema\x3d22";c(this);CKEDITOR.scriptLoader.load(d,function(c){CKEDITOR.config&&CKEDITOR.config.wsc&&CKEDITOR.config.wsc.DefaultParams?(a.serverLocationHash=CKEDITOR.config.wsc.DefaultParams.serviceHost,a.logotype=CKEDITOR.config.wsc.DefaultParams.logoPath,a.loadIcon=CKEDITOR.config.wsc.DefaultParams.iconPath, -a.loadIconEmptyEditor=CKEDITOR.config.wsc.DefaultParams.iconPathEmptyEditor,a.LangComparer=new CKEDITOR.config.wsc.DefaultParams._SP_FCK_LangCompare):(a.serverLocationHash=DefaultParams.serviceHost,a.logotype=DefaultParams.logoPath,a.loadIcon=DefaultParams.iconPath,a.loadIconEmptyEditor=DefaultParams.iconPathEmptyEditor,a.LangComparer=new _SP_FCK_LangCompare);a.pluginPath=CKEDITOR.getUrl(b.plugins.wsc.path);a.iframeNumber=a.TextAreaNumber;a.templatePath=a.pluginPath+"dialogs/tmp.html";a.LangComparer.setDefaulLangCode(a.defaultLanguage); -a.currentLang=b.config.wsc_lang||a.LangComparer.getSPLangCode(b.langCode)||"en_US";a.interfaceLang=b.config.wsc_interfaceLang;a.selectingLang=a.currentLang;a.div_overlay=new B({opacity:"1",background:"#fff url("+a.loadIcon+") no-repeat 50% 50%",target:a.OverlayPlace});var d=a.dialog.parts.tabs.getId(),d=CKEDITOR.document.getById(d);d.setStyle("width","97%");d.getElementsByTag("DIV").count()||d.append(a.buildSelectLang(a.dialog.getParentEditor().name));a.div_overlay_no_check=new B({opacity:"1",id:"no_check_over", -background:"#fff url("+a.loadIconEmptyEditor+") no-repeat 50% 50%",target:a.OverlayPlace});c&&(H(a.dialog),a.dialog.setupContent(a.dialog));b.plugins.scayt&&(b.wsc.isSsrvSame=function(){var a=CKEDITOR.config.wsc.DefaultParams.serviceHost.replace("lf/22/js/../../../","").split("//")[1],c=CKEDITOR.config.wsc.DefaultParams.ssrvHost,d=b.config.scayt_srcUrl,e,h,f,g,p;window.SCAYT&&window.SCAYT.CKSCAYT&&(f=SCAYT.CKSCAYT.prototype.basePath,f.split("//"),g=f.split("//")[1].split("/")[0],p=f.split(g+"/")[1].replace("/lf/scayt3/ckscayt/", -"")+"/script/ssrv.cgi");!d||f||b.config.scayt_servicePath||(d.split("//"),e=d.split("//")[1].split("/")[0],h=d.split(e+"/")[1].replace("/lf/scayt3/ckscayt/ckscayt.js","")+"/script/ssrv.cgi");return"//"+a+c==="//"+(b.config.scayt_serviceHost||g||e)+"/"+(b.config.scayt_servicePath||p||h)}());if(window.SCAYT&&b.wsc&&b.wsc.isSsrvSame){var e=b.wsc.cgiOrigin();b.wsc.syncIsDone=!1;c=function(a){a.origin===e&&(a=JSON.parse(a.data),a.ud&&"undefined"!==a.ud?b.wsc.ud=a.ud:"undefined"===a.ud&&(b.wsc.ud=void 0), -a.udn&&"undefined"!==a.udn?b.wsc.udn=a.udn:"undefined"===a.udn&&(b.wsc.udn=void 0),b.wsc.syncIsDone||(h(b.wsc.ud),b.wsc.syncIsDone=!0))};var h=function(c){c=b.wsc.getLocalStorageUD();var d;c instanceof Array&&(d=c.toString());void 0!==d&&""!==d&&setTimeout(function(){b.wsc.addWords(d,function(){H(a.dialog);a.dialog.setupContent(a.dialog)})},400)};window.addEventListener?addEventListener("message",c,!1):window.attachEvent("onmessage",c);setTimeout(function(){var a=b.wsc.getLocalStorageUDN();void 0!== -a&&b.wsc.operationWithUDN("restore",a)},500)}})}else a.dialog.hide()},onHide:function(){var c=CKEDITOR.plugins.scayt,d=b.scayt;b.unlockSelection();c&&d&&c.state[b.name]&&d.setMarkupPaused(!1);a.dataTemp="";a.sessionid="";g.postMessage.unbindHandler(G);if(b.plugins.scayt&&b.wsc&&b.wsc.isSsrvSame){var c=b.wsc.udn,e=b.wsc.ud,f,l;b.scayt?(c?(b.wsc.DataStorage.setData("scayt_user_dictionary_name",c),b.scayt.restoreUserDictionary(c)):(b.wsc.DataStorage.setData("scayt_user_dictionary_name",""),b.scayt.removeUserDictionary()), -e&&setTimeout(function(){f=e.split(",");for(l=0;l<f.length;l+=1)b.scayt.addWordToUserDictionary(f[l])},200),e||b.wsc.DataStorage.setData("scayt_user_dictionary",[])):(c?b.wsc.DataStorage.setData("scayt_user_dictionary_name",c):b.wsc.DataStorage.setData("scayt_user_dictionary_name",""),e&&(f=e.split(","),b.wsc.DataStorage.setData("scayt_user_dictionary",f)))}},contents:[{id:"SpellTab",label:"SpellChecker",accessKey:"S",elements:[{type:"html",id:"banner",label:"banner",style:"",html:"\x3cdiv\x3e\x3c/div\x3e"}, -{type:"html",id:"Content",label:"spellContent",html:"",setup:function(b){b=a.iframeNumber+"_"+b._.currentTabId;var c=document.getElementById(b);a.targetFromFrame[b]=c.contentWindow}},{type:"hbox",id:"bottomGroup",style:"width:560px; margin: 0 auto;",widths:["50%","50%"],className:"wsc-spelltab-bottom",children:[{type:"hbox",id:"leftCol",align:"left",width:"50%",children:[{type:"vbox",id:"rightCol1",widths:["50%","50%"],children:[{type:"text",id:"ChangeTo_label",label:a.LocalizationLabel.ChangeTo_label.text+ -":",labelLayout:"horizontal",labelStyle:"font: 12px/25px arial, sans-serif;",width:"140px","default":"",onShow:function(){a.textNode.SpellTab=this;a.LocalizationLabel.ChangeTo_label.instance=this},onHide:function(){this.reset()}},{type:"hbox",id:"rightCol",align:"right",width:"30%",children:[{type:"vbox",id:"rightCol_col__left",children:[{type:"text",id:"labelSuggestions",label:a.LocalizationLabel.Suggestions.text+":",onShow:function(){a.LocalizationLabel.Suggestions.instance=this;this.getInputElement().setStyles({display:"none"})}}, -{type:"html",id:"logo",html:"",setup:function(b){this.getElement().$.src=a.logotype;this.getElement().getParent().setStyles({"text-align":"left"})}}]},{type:"select",id:"list_of_suggestions",labelStyle:"font: 12px/25px arial, sans-serif;",size:"6",inputStyle:"width: 140px; height: auto;",items:[["loading..."]],onShow:function(){A=this},onChange:function(){a.textNode.SpellTab.setValue(this.getValue())}}]}]}]},{type:"hbox",id:"rightCol",align:"right",width:"50%",children:[{type:"vbox",id:"rightCol_col__left", -widths:["50%","50%","50%","50%"],children:[{type:"button",id:"ChangeTo_button",label:a.LocalizationButton.ChangeTo_button.text,title:"Change to",style:"width: 100%;",onLoad:function(){this.getElement().setAttribute("title-cmd","ChangeTo");a.LocalizationButton.ChangeTo_button.instance=this},onClick:e},{type:"button",id:"ChangeAll",label:a.LocalizationButton.ChangeAll.text,title:"Change All",style:"width: 100%;",onLoad:function(){this.getElement().setAttribute("title-cmd",this.id);a.LocalizationButton.ChangeAll.instance= -this},onClick:e},{type:"button",id:"AddWord",label:a.LocalizationButton.AddWord.text,title:"Add word",style:"width: 100%;",onLoad:function(){this.getElement().setAttribute("title-cmd",this.id);a.LocalizationButton.AddWord.instance=this},onClick:e},{type:"button",id:"FinishChecking_button",label:a.LocalizationButton.FinishChecking_button.text,title:"Finish Checking",style:"width: 100%;margin-top: 9px;",onLoad:function(){this.getElement().setAttribute("title-cmd","FinishChecking");a.LocalizationButton.FinishChecking_button.instance= -this},onClick:e}]},{type:"vbox",id:"rightCol_col__right",widths:["50%","50%","50%"],children:[{type:"button",id:"IgnoreWord",label:a.LocalizationButton.IgnoreWord.text,title:"Ignore word",style:"width: 100%;",onLoad:function(){this.getElement().setAttribute("title-cmd",this.id);a.LocalizationButton.IgnoreWord.instance=this},onClick:e},{type:"button",id:"IgnoreAllWords",label:a.LocalizationButton.IgnoreAllWords.text,title:"Ignore all words",style:"width: 100%;",onLoad:function(){this.getElement().setAttribute("title-cmd", -this.id);a.LocalizationButton.IgnoreAllWords.instance=this},onClick:e},{type:"button",id:"Options",label:a.LocalizationButton.Options.text,title:"Option",style:"width: 100%;",onLoad:function(){a.LocalizationButton.Options.instance=this;"file:"==document.location.protocol&&this.disable()},onClick:function(){this.getElement().focus();"file:"==document.location.protocol?alert("WSC: Options functionality is disabled when runing from file system"):(y=document.activeElement,b.openDialog("options"))}}]}]}]}, -{type:"hbox",id:"BlockFinishChecking",style:"width:560px; margin: 0 auto;",widths:["70%","30%"],onShow:function(){this.getElement().setStyles({display:"block",position:"absolute",left:"-9999px"})},onHide:l,children:[{type:"hbox",id:"leftCol",align:"left",width:"70%",children:[{type:"vbox",id:"rightCol1",setup:function(){this.getChild()[0].getElement().$.src=a.logotype;this.getChild()[0].getElement().getParent().setStyles({"text-align":"center"})},children:[{type:"html",id:"logo",html:""}]}]},{type:"hbox", -id:"rightCol",align:"right",width:"30%",children:[{type:"vbox",id:"rightCol_col__left",children:[{type:"button",id:"Option_button",label:a.LocalizationButton.Options.text,title:"Option",style:"width: 100%;",onLoad:function(){this.getElement().setAttribute("title-cmd",this.id);"file:"==document.location.protocol&&this.disable()},onClick:function(){this.getElement().focus();"file:"==document.location.protocol?alert("WSC: Options functionality is disabled when runing from file system"):(y=document.activeElement, -b.openDialog("options"))}},{type:"button",id:"FinishChecking_button_block",label:a.LocalizationButton.FinishChecking_button_block.text,title:"Finish Checking",style:"width: 100%;",onLoad:function(){this.getElement().setAttribute("title-cmd","FinishChecking")},onClick:e}]}]}]}]},{id:"GrammTab",label:"Grammar",accessKey:"G",elements:[{type:"html",id:"banner",label:"banner",style:"",html:"\x3cdiv\x3e\x3c/div\x3e"},{type:"html",id:"Content",label:"GrammarContent",html:"",setup:function(){var b=a.iframeNumber+ -"_"+a.dialog._.currentTabId,c=document.getElementById(b);a.targetFromFrame[b]=c.contentWindow}},{type:"vbox",id:"bottomGroup",style:"width:560px; margin: 0 auto;",children:[{type:"hbox",id:"leftCol",widths:["66%","34%"],children:[{type:"vbox",children:[{type:"text",id:"text",label:"Change to:",labelLayout:"horizontal",labelStyle:"font: 12px/25px arial, sans-serif;",inputStyle:"float: right; width: 200px;","default":"",onShow:function(){a.textNode.GrammTab=this},onHide:function(){this.reset()}},{type:"html", -id:"html_text",html:"\x3cdiv style\x3d'min-height: 17px; line-height: 17px; padding: 5px; text-align: left;background: #F1F1F1;color: #595959; white-space: normal!important;'\x3e\x3c/div\x3e",onShow:function(b){a.textNodeInfo.GrammTab=this}},{type:"html",id:"radio",html:"",onShow:function(){a.grammerSuggest=this}}]},{type:"vbox",children:[{type:"button",id:"ChangeTo_button",label:"Change to",title:"Change to",style:"width: 133px; float: right;",onLoad:function(){this.getElement().setAttribute("title-cmd", -"ChangeTo")},onClick:e},{type:"button",id:"IgnoreWord",label:"Ignore word",title:"Ignore word",style:"width: 133px; float: right;",onLoad:function(){this.getElement().setAttribute("title-cmd",this.id)},onClick:e},{type:"button",id:"IgnoreAllWords",label:"Ignore Problem",title:"Ignore Problem",style:"width: 133px; float: right;",onLoad:function(){this.getElement().setAttribute("title-cmd",this.id)},onClick:e},{type:"button",id:"FinishChecking_button",label:a.LocalizationButton.FinishChecking_button.text, -title:"Finish Checking",style:"width: 133px; float: right; margin-top: 9px;",onLoad:function(){this.getElement().setAttribute("title-cmd","FinishChecking")},onClick:e}]}]}]},{type:"hbox",id:"BlockFinishChecking",style:"width:560px; margin: 0 auto;",widths:["70%","30%"],onShow:function(){this.getElement().setStyles({display:"block",position:"absolute",left:"-9999px"})},onHide:l,children:[{type:"hbox",id:"leftCol",align:"left",width:"70%",children:[{type:"vbox",id:"rightCol1",children:[{type:"html", -id:"logo",html:"",setup:function(){this.getElement().$.src=a.logotype;this.getElement().getParent().setStyles({"text-align":"center"})}}]}]},{type:"hbox",id:"rightCol",align:"right",width:"30%",children:[{type:"vbox",id:"rightCol_col__left",children:[{type:"button",id:"FinishChecking_button_block",label:a.LocalizationButton.FinishChecking_button_block.text,title:"Finish Checking",style:"width: 100%;",onLoad:function(){this.getElement().setAttribute("title-cmd","FinishChecking")},onClick:e}]}]}]}]}, -{id:"Thesaurus",label:"Thesaurus",accessKey:"T",elements:[{type:"html",id:"banner",label:"banner",style:"",html:"\x3cdiv\x3e\x3c/div\x3e"},{type:"html",id:"Content",label:"spellContent",html:"",setup:function(){var b=a.iframeNumber+"_"+a.dialog._.currentTabId,c=document.getElementById(b);a.targetFromFrame[b]=c.contentWindow}},{type:"vbox",id:"bottomGroup",style:"width:560px; margin: -10px auto; overflow: hidden;",children:[{type:"hbox",widths:["75%","25%"],children:[{type:"vbox",children:[{type:"hbox", -widths:["65%","35%"],children:[{type:"text",id:"ChangeTo_label",label:a.LocalizationLabel.ChangeTo_label.text+":",labelLayout:"horizontal",inputStyle:"width: 160px;",labelStyle:"font: 12px/25px arial, sans-serif;","default":"",onShow:function(b){a.textNode.Thesaurus=this;a.LocalizationLabel.ChangeTo_label.instance=this},onHide:function(){this.reset()}},{type:"button",id:"ChangeTo_button",label:a.LocalizationButton.ChangeTo_button.text,title:"Change to",style:"width: 121px; margin-top: 1px;",onLoad:function(){this.getElement().setAttribute("title-cmd", -"ChangeTo");a.LocalizationButton.ChangeTo_button.instance=this},onClick:e}]},{type:"hbox",children:[{type:"select",id:"Categories",label:a.LocalizationLabel.Categories.text+":",labelStyle:"font: 12px/25px arial, sans-serif;",size:"5",inputStyle:"width: 180px; height: auto;",items:[],onShow:function(){a.selectNode.Categories=this;a.LocalizationLabel.Categories.instance=this},onChange:function(){a.buildOptionSynonyms(this.getValue())}},{type:"select",id:"Synonyms",label:a.LocalizationLabel.Synonyms.text+ -":",labelStyle:"font: 12px/25px arial, sans-serif;",size:"5",inputStyle:"width: 180px; height: auto;",items:[],onShow:function(){a.selectNode.Synonyms=this;a.textNode.Thesaurus.setValue(this.getValue());a.LocalizationLabel.Synonyms.instance=this},onChange:function(b){a.textNode.Thesaurus.setValue(this.getValue())}}]}]},{type:"vbox",width:"120px",style:"margin-top:46px;",children:[{type:"html",id:"logotype",label:"WebSpellChecker.net",html:"",setup:function(){this.getElement().$.src=a.logotype;this.getElement().getParent().setStyles({"text-align":"center"})}}, -{type:"button",id:"FinishChecking_button",label:a.LocalizationButton.FinishChecking_button.text,title:"Finish Checking",style:"width: 100%; float: right; margin-top: 9px;",onLoad:function(){this.getElement().setAttribute("title-cmd","FinishChecking")},onClick:e}]}]}]},{type:"hbox",id:"BlockFinishChecking",style:"width:560px; margin: 0 auto;",widths:["70%","30%"],onShow:function(){this.getElement().setStyles({display:"block",position:"absolute",left:"-9999px"})},children:[{type:"hbox",id:"leftCol", -align:"left",width:"70%",children:[{type:"vbox",id:"rightCol1",children:[{type:"html",id:"logo",html:"",setup:function(){this.getElement().$.src=a.logotype;this.getElement().getParent().setStyles({"text-align":"center"})}}]}]},{type:"hbox",id:"rightCol",align:"right",width:"30%",children:[{type:"vbox",id:"rightCol_col__left",children:[{type:"button",id:"FinishChecking_button_block",label:a.LocalizationButton.FinishChecking_button_block.text,title:"Finish Checking",style:"width: 100%;",onLoad:function(){this.getElement().setAttribute("title-cmd", -"FinishChecking")},onClick:e}]}]}]}]}]}});var y=null;CKEDITOR.dialog.add("options",function(b){var c=null,d={},e={},f=null,h=null;g.cookie.get("udn");g.cookie.get("osp");b=function(a){h=this.getElement().getAttribute("title-cmd");a=[];a[0]=e.IgnoreAllCapsWords;a[1]=e.IgnoreWordsNumbers;a[2]=e.IgnoreMixedCaseWords;a[3]=e.IgnoreDomainNames;a=a.toString().replace(/,/g,"");g.cookie.set("osp",a);g.cookie.set("udnCmd",h?h:"ignore");"delete"!=h&&(a="",""!==t.getValue()&&(a=t.getValue()),g.cookie.set("udn", -a));g.postMessage.send({id:"options_dic_send"})};var k=function(){f.getElement().setHtml(a.LocalizationComing.error);f.getElement().show()};return{title:a.LocalizationComing.Options,minWidth:430,minHeight:130,resizable:CKEDITOR.DIALOG_RESIZE_NONE,contents:[{id:"OptionsTab",label:"Options",accessKey:"O",elements:[{type:"hbox",id:"options_error",children:[{type:"html",style:"display: block;text-align: center;white-space: normal!important; font-size: 12px;color:red",html:"\x3cdiv\x3e\x3c/div\x3e",onShow:function(){f= -this}}]},{type:"vbox",id:"Options_content",children:[{type:"hbox",id:"Options_manager",widths:["52%","48%"],children:[{type:"fieldset",label:"Spell Checking Options",style:"border: none;margin-top: 13px;padding: 10px 0 10px 10px",onShow:function(){this.getInputElement().$.children[0].innerHTML=a.LocalizationComing.SpellCheckingOptions},children:[{type:"vbox",id:"Options_checkbox",children:[{type:"checkbox",id:"IgnoreAllCapsWords",label:"Ignore All-Caps Words",labelStyle:"margin-left: 5px; font: 12px/16px arial, sans-serif;display: inline-block;white-space: normal;", -style:"float:left; min-height: 16px;","default":"",onClick:function(){e[this.id]=this.getValue()?1:0}},{type:"checkbox",id:"IgnoreWordsNumbers",label:"Ignore Words with Numbers",labelStyle:"margin-left: 5px; font: 12px/16px arial, sans-serif;display: inline-block;white-space: normal;",style:"float:left; min-height: 16px;","default":"",onClick:function(){e[this.id]=this.getValue()?1:0}},{type:"checkbox",id:"IgnoreMixedCaseWords",label:"Ignore Mixed-Case Words",labelStyle:"margin-left: 5px; font: 12px/16px arial, sans-serif;display: inline-block;white-space: normal;", -style:"float:left; min-height: 16px;","default":"",onClick:function(){e[this.id]=this.getValue()?1:0}},{type:"checkbox",id:"IgnoreDomainNames",label:"Ignore Domain Names",labelStyle:"margin-left: 5px; font: 12px/16px arial, sans-serif;display: inline-block;white-space: normal;",style:"float:left; min-height: 16px;","default":"",onClick:function(){e[this.id]=this.getValue()?1:0}}]}]},{type:"vbox",id:"Options_DictionaryName",children:[{type:"text",id:"DictionaryName",style:"margin-bottom: 10px",label:"Dictionary Name:", -labelLayout:"vertical",labelStyle:"font: 12px/25px arial, sans-serif;","default":"",onLoad:function(){t=this;var b=a.userDictionaryName?a.userDictionaryName:(g.cookie.get("udn"),this.getValue());this.setValue(b)},onShow:function(){t=this;var b=g.cookie.get("udn")?g.cookie.get("udn"):this.getValue();this.setValue(b);this.setLabel(a.LocalizationComing.DictionaryName)},onHide:function(){this.reset()}},{type:"hbox",id:"Options_buttons",children:[{type:"vbox",id:"Options_leftCol_col",widths:["50%","50%"], -children:[{type:"button",id:"create",label:"Create",title:"Create",style:"width: 100%;",onLoad:function(){this.getElement().setAttribute("title-cmd",this.id)},onShow:function(){(this.getElement().getFirst()||this.getElement()).setText(a.LocalizationComing.Create)},onClick:b},{type:"button",id:"restore",label:"Restore",title:"Restore",style:"width: 100%;",onLoad:function(){this.getElement().setAttribute("title-cmd",this.id)},onShow:function(){(this.getElement().getFirst()||this.getElement()).setText(a.LocalizationComing.Restore)}, -onClick:b}]},{type:"vbox",id:"Options_rightCol_col",widths:["50%","50%"],children:[{type:"button",id:"rename",label:"Rename",title:"Rename",style:"width: 100%;",onLoad:function(){this.getElement().setAttribute("title-cmd",this.id)},onShow:function(){(this.getElement().getFirst()||this.getElement()).setText(a.LocalizationComing.Rename)},onClick:b},{type:"button",id:"delete",label:"Remove",title:"Remove",style:"width: 100%;",onLoad:function(){this.getElement().setAttribute("title-cmd",this.id)},onShow:function(){(this.getElement().getFirst()|| -this.getElement()).setText(a.LocalizationComing.Remove)},onClick:b}]}]}]}]},{type:"hbox",id:"Options_text",children:[{type:"html",style:"text-align: justify;margin-top: 15px;white-space: normal!important; font-size: 12px;color:#777;",html:"\x3cdiv\x3e"+a.LocalizationComing.OptionsTextIntro+"\x3c/div\x3e",onShow:function(){this.getElement().setText(a.LocalizationComing.OptionsTextIntro)}}]}]}]}],buttons:[CKEDITOR.dialog.okButton,CKEDITOR.dialog.cancelButton],onOk:function(){var a=[];a[0]=e.IgnoreAllCapsWords; -a[1]=e.IgnoreWordsNumbers;a[2]=e.IgnoreMixedCaseWords;a[3]=e.IgnoreDomainNames;a=a.toString().replace(/,/g,"");g.cookie.set("osp",a);g.postMessage.send({id:"options_checkbox_send"});f.getElement().hide();f.getElement().setHtml(" ")},onLoad:function(){c=this;d.IgnoreAllCapsWords=c.getContentElement("OptionsTab","IgnoreAllCapsWords");d.IgnoreWordsNumbers=c.getContentElement("OptionsTab","IgnoreWordsNumbers");d.IgnoreMixedCaseWords=c.getContentElement("OptionsTab","IgnoreMixedCaseWords");d.IgnoreDomainNames= -c.getContentElement("OptionsTab","IgnoreDomainNames")},onShow:function(){g.postMessage.init(k);var b=g.cookie.get("osp").split("");e.IgnoreAllCapsWords=b[0];e.IgnoreWordsNumbers=b[1];e.IgnoreMixedCaseWords=b[2];e.IgnoreDomainNames=b[3];parseInt(e.IgnoreAllCapsWords,10)?d.IgnoreAllCapsWords.setValue("checked",!1):d.IgnoreAllCapsWords.setValue("",!1);parseInt(e.IgnoreWordsNumbers,10)?d.IgnoreWordsNumbers.setValue("checked",!1):d.IgnoreWordsNumbers.setValue("",!1);parseInt(e.IgnoreMixedCaseWords,10)? -d.IgnoreMixedCaseWords.setValue("checked",!1):d.IgnoreMixedCaseWords.setValue("",!1);parseInt(e.IgnoreDomainNames,10)?d.IgnoreDomainNames.setValue("checked",!1):d.IgnoreDomainNames.setValue("",!1);e.IgnoreAllCapsWords=d.IgnoreAllCapsWords.getValue()?1:0;e.IgnoreWordsNumbers=d.IgnoreWordsNumbers.getValue()?1:0;e.IgnoreMixedCaseWords=d.IgnoreMixedCaseWords.getValue()?1:0;e.IgnoreDomainNames=d.IgnoreDomainNames.getValue()?1:0;d.IgnoreAllCapsWords.getElement().$.lastChild.innerHTML=a.LocalizationComing.IgnoreAllCapsWords; -d.IgnoreWordsNumbers.getElement().$.lastChild.innerHTML=a.LocalizationComing.IgnoreWordsWithNumbers;d.IgnoreMixedCaseWords.getElement().$.lastChild.innerHTML=a.LocalizationComing.IgnoreMixedCaseWords;d.IgnoreDomainNames.getElement().$.lastChild.innerHTML=a.LocalizationComing.IgnoreDomainNames},onHide:function(){g.postMessage.unbindHandler(k);if(y)try{y.focus()}catch(a){}}}});CKEDITOR.dialog.on("resize",function(b){b=b.data;var c=b.dialog,d=CKEDITOR.document.getById(a.iframeNumber+"_"+c._.currentTabId); -"checkspell"==c._.name&&(a.bnr?d&&d.setSize("height",b.height-310):d&&d.setSize("height",b.height-220),c._.fromResizeEvent&&!c._.resized&&(c._.resized=!0),c._.fromResizeEvent=!0)});CKEDITOR.on("dialogDefinition",function(b){if("checkspell"===b.data.name){var c=b.data.definition;a.onLoadOverlay=new B({opacity:"1",background:"#fff",target:c.dialog.parts.tabs.getParent().$});a.onLoadOverlay.setEnable();c.dialog.on("cancel",function(b){c.dialog.getParentEditor().config.wsc_onClose.call(this.document.getWindow().getFrame()); -a.div_overlay.setDisable();a.onLoadOverlay.setDisable();return!1},this,null,-1)}})})(); \ No newline at end of file diff --git a/admin/plugins/ckeditor/plugins/wsc/dialogs/wsc_ie.js b/admin/plugins/ckeditor/plugins/wsc/dialogs/wsc_ie.js deleted file mode 100644 index 0292f84..0000000 --- a/admin/plugins/ckeditor/plugins/wsc/dialogs/wsc_ie.js +++ /dev/null @@ -1,11 +0,0 @@ -/* - Copyright (c) 2003-2015, CKSource - Frederico Knabben. All rights reserved. - For licensing, see LICENSE.html or http://ckeditor.com/license -*/ -CKEDITOR.dialog.add("checkspell",function(a){function c(a,c){var d=0;return function(){"function"==typeof window.doSpell?("undefined"!=typeof e&&window.clearInterval(e),l(a)):180==d++&&window._cancelOnError(c)}}function l(c){var f=new window._SP_FCK_LangCompare,b=CKEDITOR.getUrl(a.plugins.wsc.path+"dialogs/"),e=b+"tmpFrameset.html";window.gFCKPluginName="wsc";f.setDefaulLangCode(a.config.defaultLanguage);window.doSpell({ctrl:g,lang:a.config.wsc_lang||f.getSPLangCode(a.langCode),intLang:a.config.wsc_uiLang|| -f.getSPLangCode(a.langCode),winType:d,onCancel:function(){c.hide()},onFinish:function(b){a.focus();c.getParentEditor().setData(b.value);c.hide()},staticFrame:e,framesetPath:e,iframePath:b+"ciframe.html",schemaURI:b+"wsc.css",userDictionaryName:a.config.wsc_userDictionaryName,customDictionaryName:a.config.wsc_customDictionaryIds&&a.config.wsc_customDictionaryIds.split(","),domainName:a.config.wsc_domainName});CKEDITOR.document.getById(h).setStyle("display","none");CKEDITOR.document.getById(d).setStyle("display", -"block")}var b=CKEDITOR.tools.getNextNumber(),d="cke_frame_"+b,g="cke_data_"+b,h="cke_error_"+b,e,b=document.location.protocol||"http:",k=a.lang.wsc.notAvailable,m='\x3ctextarea style\x3d"display: none" id\x3d"'+g+'" rows\x3d"10" cols\x3d"40"\x3e \x3c/textarea\x3e\x3cdiv id\x3d"'+h+'" style\x3d"display:none;color:red;font-size:16px;font-weight:bold;padding-top:160px;text-align:center;z-index:11;"\x3e\x3c/div\x3e\x3ciframe src\x3d"" style\x3d"width:100%;background-color:#f1f1e3;" frameborder\x3d"0" name\x3d"'+ -d+'" id\x3d"'+d+'" allowtransparency\x3d"1"\x3e\x3c/iframe\x3e',n=a.config.wsc_customLoaderScript||b+"//loader.webspellchecker.net/sproxy_fck/sproxy.php?plugin\x3dfck2\x26customerid\x3d"+a.config.wsc_customerId+"\x26cmd\x3dscript\x26doc\x3dwsc\x26schema\x3d22";a.config.wsc_customLoaderScript&&(k+='\x3cp style\x3d"color:#000;font-size:11px;font-weight: normal;text-align:center;padding-top:10px"\x3e'+a.lang.wsc.errorLoading.replace(/%s/g,a.config.wsc_customLoaderScript)+"\x3c/p\x3e");window._cancelOnError= -function(c){if("undefined"==typeof window.WSC_Error){CKEDITOR.document.getById(d).setStyle("display","none");var b=CKEDITOR.document.getById(h);b.setStyle("display","block");b.setHtml(c||a.lang.wsc.notAvailable)}};return{title:a.config.wsc_dialogTitle||a.lang.wsc.title,minWidth:485,minHeight:380,buttons:[CKEDITOR.dialog.cancelButton],onShow:function(){var b=this.getContentElement("general","content").getElement();b.setHtml(m);b.getChild(2).setStyle("height",this._.contentSize.height+"px");"function"!= -typeof window.doSpell&&CKEDITOR.document.getHead().append(CKEDITOR.document.createElement("script",{attributes:{type:"text/javascript",src:n}}));b=a.getData();CKEDITOR.document.getById(g).setValue(b);e=window.setInterval(c(this,k),250)},onHide:function(){window.ooo=void 0;window.int_framsetLoaded=void 0;window.framesetLoaded=void 0;window.is_window_opened=!1},contents:[{id:"general",label:a.config.wsc_dialogTitle||a.lang.wsc.title,padding:0,elements:[{type:"html",id:"content",html:""}]}]}}); -CKEDITOR.dialog.on("resize",function(a){a=a.data;var c=a.dialog;"checkspell"==c._.name&&((c=(c=c.getContentElement("general","content").getElement())&&c.getChild(2))&&c.setSize("height",a.height),c&&c.setSize("width",a.width))}); \ No newline at end of file diff --git a/admin/plugins/ckeditor/plugins/wsc/skins/moono-lisa/wsc.css b/admin/plugins/ckeditor/plugins/wsc/skins/moono-lisa/wsc.css deleted file mode 100644 index a48a08f..0000000 --- a/admin/plugins/ckeditor/plugins/wsc/skins/moono-lisa/wsc.css +++ /dev/null @@ -1,43 +0,0 @@ -.cke_dialog_body #overlayBlock, -.cke_dialog_body #no_check_over -{ - top: 39px !important; -} - -div[name=SpellTab] .wsc-spelltab-bottom .cke_dialog_ui_vbox td > .cke_dialog_ui_button:first-child -{ - margin-top: 4px; -} - -div[name=SpellTab] .wsc-spelltab-bottom .cke_dialog_ui_hbox_first .cke_dialog_ui_select > label -{ - margin-left: 0; -} - -div[name=SpellTab] .wsc-spelltab-bottom .cke_dialog_ui_hbox_first .cke_dialog_ui_select div.cke_dialog_ui_input_select -{ - width: 140px !important; -} - -div[name=SpellTab] .wsc-spelltab-bottom .cke_dialog_ui_hbox_first .cke_dialog_ui_select select.cke_dialog_ui_input_select, -div[name=Thesaurus] div.cke_dialog_ui_input_select select.cke_dialog_ui_input_select -{ - margin-top: 1px; -} - -div[name=SpellTab] .wsc-spelltab-bottom .cke_dialog_ui_hbox_first .cke_dialog_ui_select select.cke_dialog_ui_input_select:focus, -div[name=Thesaurus] div.cke_dialog_ui_input_select select.cke_dialog_ui_input_select:focus -{ - margin-top: 0; -} - -div[name=GrammTab] .cke_dialog_ui_vbox tbody > tr:first-child .cke_dialog_ui_button, -div[name=Thesaurus] .cke_dialog_ui_vbox tbody > tr:first-child .cke_dialog_ui_button -{ - margin-top: 4px !important; -} - -div[name=Thesaurus] div.cke_dialog_ui_input_select -{ - width: 180px !important; -} diff --git a/admin/plugins/ckeditor/samples/css/samples.css b/admin/plugins/ckeditor/samples/css/samples.css deleted file mode 100644 index 455b152..0000000 --- a/admin/plugins/ckeditor/samples/css/samples.css +++ /dev/null @@ -1,1632 +0,0 @@ -/** - * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. - * For licensing, see LICENSE.md or http://ckeditor.com/license - */ -@media (max-width: 900px) { - .global-is-mobile-hidden { - display: none !important; - } -} -article, -aside, -details, -figcaption, -figure, -footer, -header, -hgroup, -main, -menu, -nav, -section { - display: block; -} -body, -html { - margin: 0; - padding: 0; - font: 16px / 1.8 Arial, 'Helvetica Neue', Helvetica, sans-serif; - font-weight: 300; - color: #575757; -} -.grid-width-10 { - width: 10%; -} -.grid-width-20 { - width: 20%; -} -.grid-width-30 { - width: 30%; -} -.grid-width-40 { - width: 40%; -} -.grid-width-50 { - width: 50%; -} -.grid-width-60 { - width: 60%; -} -.grid-width-70 { - width: 70%; -} -.grid-width-80 { - width: 80%; -} -.grid-width-90 { - width: 90%; -} -.grid-width-100 { - width: 100%; -} -@media (max-width: 900px) { - .grid-width-10, - .grid-width-20, - .grid-width-30, - .grid-width-40, - .grid-width-50, - .grid-width-60, - .grid-width-70, - .grid-width-80, - .grid-width-90, - .grid-width-100 { - width: 100%; - } -} -*[class*="grid-width"] { - -webkit-box-sizing: border-box; - -moz-box-sizing: border-box; - box-sizing: border-box; - padding-left: 4%; - padding-right: 4%; - float: left; -} -*[class*="grid-width"]:after, -.grid-container:after, -*[class*="grid-width"]:before, -.grid-container:before { - content: ''; - display: block; - overflow: hidden; - visibility: hidden; - font-size: 0; - line-height: 0; - width: 0; - height: 0; -} -*[class*="grid-width"]:after, -.grid-container:after { - clear: both; -} -.grid-container { - -webkit-box-sizing: border-box; - -moz-box-sizing: border-box; - box-sizing: border-box; - margin-left: auto; - margin-right: auto; -} -.grid-container-nested *[class*="grid-width"]:first-child { - padding-left: 0; -} -.grid-container-nested *[class*="grid-width"]:last-child { - padding-right: 0; -} -@media (max-width: 900px) { - .grid-container-nested *[class*="grid-width"]:first-child { - padding-left: 4%; - } - .grid-container-nested *[class*="grid-width"]:last-child { - padding-right: 4%; - } -} -.header-a { - min-height: 140px; - overflow: hidden; -} -.header-a .header-a-logo { - margin: 40px 0 0; -} -@media (max-width: 900px) { - .header-a .header-a-logo { - text-align: center; - } -} -.header-a .header-a-logo img { - border: transparent; -} -.navigation-a { - height: 30px; - background: #3D3D3D; - position: absolute; - left: 0; - right: 0; - top: 0; - padding: 0; - overflow: hidden; -} -@media (max-width: 900px) { - .navigation-a { - text-align: center; - } -} -.navigation-a ul { - list-style: none; - margin: 0; - overflow: hidden; -} -.navigation-a ul li, -.navigation-a ul li a { - display: inline-block; -} -@media (max-width: 900px) { - .navigation-a ul { - width: auto; - text-overflow: ellipsis; - white-space: nowrap; - display: inline-block; - float: none; - } - .navigation-a ul:before, - .navigation-a ul:after { - display: none; - } -} -.navigation-a ul.navigation-a-left { - text-align: left; -} -@media (max-width: 900px) { - .navigation-a ul.navigation-a-left { - padding-right: 0; - } -} -.navigation-a ul.navigation-a-right { - text-align: right; -} -@media (max-width: 900px) { - .navigation-a ul.navigation-a-right { - padding-left: 23px; - } -} -.navigation-a ul li + li { - margin-left: 23px; -} -.navigation-a ul li a { - font-size: 10px; - font-size: 0.625rem; - line-height: 18px; - line-height: 1.13rem; - line-height: 30px; - float: left; - color: #ddd; - font-weight: bold; - text-decoration: none; - text-transform: uppercase; -} -.navigation-a ul li a:hover { - cursor: pointer; - color: #fff; -} -.icon-navigation-a-github:before, -.icon-navigation-a-github:after { - background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABMAAAATCAYAAAByUDbMAAAAAXNSR0IArs4c6QAAAa9JREFUOBGNlM8rRGEUht0pDGosjKYZpUSIkuwsiCaxUEqK2VOUBcrWv2BjxUJho6wsLLDzY2fhD5iR5NeOcJvIjOfM3O927m3mmlPPnPec835nZprvjlVVJvL5fCOjMWiDCLzCLVxZlpUj/x8saYV9+IZS8UJzFWoCt2GYgk+oJG4wJUouZDANv5VsUZ47dNSzkEYHfIDEHixDWgoiB/rTHlPPwBNInPmXHRb7hdeUDFG10AN1Th1Fd5mD6BMwMVnoUyVA3t3EkjkQlDFfmwPkc7NsQTXf0bGgJWaGb16dk18+EmLYawzkC+6Q3KdK4kiZqtGdskx/kmdlCJS86RuGrDLFZJmtGi1KB0q+VhOGsDLZsiyjGsOY4qoOkrO+YUauwCDoOKWo9xk9JfM+MPdSzqZdA8UlyDO3AvKLPsIG9LsmBHUKduEHdCy6PrpJZyKXdwKMOemaissOHJ9O9xTeh57GluMYIsehWy8STW/d8ZhkI0b9PjFasA1fsAOb0KCN1PLXYyKLGNdzj2YYArnZDyDRrA3Ua4UuDzd5QM/KaoxhmAO5Om5Qt8OI2/CJP6MVa1dvltQ5AAAAAElFTkSuQmCC"); -} -.navigation-b { - text-align: right; - margin: 52px 0 0; - overflow: visible; -} -@media (max-width: 900px) { - .navigation-b { - text-align: center; - margin-top: 20px; - padding: 0; - } -} -.navigation-b ul { - padding: 0; - list-style: none; - margin: 0; - overflow: visible; -} -.navigation-b ul li, -.navigation-b ul li a { - display: inline-block; -} -@media (max-width: 900px) { - .navigation-b ul { - display: table; - width: 100%; - padding-bottom: 1.5em; - } -} -@media (max-width: 900px) { - .navigation-b ul li { - display: table-row; - } -} -.navigation-b ul li + li { - margin-left: 20px; -} -@media (max-width: 900px) { - .navigation-b ul li + li { - margin-left: 0; - } -} -.navigation-b ul li a { - -webkit-box-sizing: border-box; - -moz-box-sizing: border-box; - box-sizing: border-box; - text-transform: uppercase; - text-decoration: none; - outline: none; -} -@media (max-width: 900px) { - .navigation-b ul li a { - width: 100%; - -webkit-border-radius: 0; - -webkit-background-clip: padding-box; - -moz-border-radius: 0; - -moz-background-clip: padding; - border-radius: 0; - background-clip: padding-box; - } -} -.footer-a { - font-size: 13px; - font-size: 0.8125rem; - line-height: 23.4px; - line-height: 1.46rem; - padding-top: 2.25em; - padding-bottom: 2.25em; - overflow: hidden; - color: #8a8a8a; -} -.footer-a a { - color: #27C0D8; - text-decoration: none; - border-bottom: 1px dotted #27C0D8; -} -.footer-a a:hover { - color: #23adc2; -} -.footer-a p { - margin: 0; - display: inline-block; - text-align: center; -} -.content { - font-size: 14px; - font-size: 0.875rem; - line-height: 25.2px; - line-height: 1.57rem; - overflow: hidden; - padding-top: 1.5em; - padding-bottom: 1.5em; -} -.content p { - margin: 0.75em 0; -} -.content ul, -.content ol, -.content pre, -.content blockquote, -.content textarea:not([class^="cke"]), -.content .cke { - margin: 1.875em 0; -} -.content code, -.content kbd { - -webkit-border-radius: 3px; - -webkit-background-clip: padding-box; - -moz-border-radius: 3px; - -moz-background-clip: padding; - border-radius: 3px; - background-clip: padding-box; - padding: 3px 4px; -} -.content pre, -.content code, -.content kbd, -.content blockquote { - background: #f5f5f5; -} -.content blockquote, -.content pre { - background: none; - border-left: 4px solid #27C0D8; - padding: 1.5em 2.25em; -} -.content p a, -.content ul a, -.content ol a, -.content blockquote a, -.content h1 a, -.content h2 a, -.content h3 a, -.content h4 a, -.content h5 a { - color: #27C0D8; - text-decoration: none; - border-bottom: 1px dotted #27C0D8; -} -.content p a:hover, -.content ul a:hover, -.content ol a:hover, -.content blockquote a:hover, -.content h1 a:hover, -.content h2 a:hover, -.content h3 a:hover, -.content h4 a:hover, -.content h5 a:hover { - color: #23adc2; -} -.content h1, -.content h2, -.content h3, -.content h4, -.content h5 { - color: #000; - font-weight: 100; -} -.content h1 code, -.content h2 code, -.content h3 code, -.content h4 code, -.content h5 code, -.content h1 kbd, -.content h2 kbd, -.content h3 kbd, -.content h4 kbd, -.content h5 kbd { - font-size: inherit; -} -.content h1 a.content-heading-anchor, -.content h2 a.content-heading-anchor, -.content h3 a.content-heading-anchor, -.content h4 a.content-heading-anchor, -.content h5 a.content-heading-anchor { - font-weight: 100; - vertical-align: middle; - opacity: 0; - border: 0; -} -.content h1:hover a.content-heading-anchor, -.content h2:hover a.content-heading-anchor, -.content h3:hover a.content-heading-anchor, -.content h4:hover a.content-heading-anchor, -.content h5:hover a.content-heading-anchor { - opacity: 1; -} -.content h1:target a, -.content h2:target a, -.content h3:target a, -.content h4:target a, -.content h5:target a { - -webkit-animation: targetLinkOpacity 0.5s linear alternate; - -moz-animation: targetLinkOpacity 0.5s linear alternate; - -o-animation: targetLinkOpacity 0.5s linear alternate; - animation: targetLinkOpacity 0.5s linear alternate; - opacity: 1; -} -.content input, -.content select, -.content textarea:not([class^="cke"]) { - -webkit-border-radius: 3px; - -webkit-background-clip: padding-box; - -moz-border-radius: 3px; - -moz-background-clip: padding; - border-radius: 3px; - background-clip: padding-box; - -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.08); - -moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.08); - box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.08); - font: inherit; - color: inherit; - border: 1px solid #D9D9D9; - padding: .2em .5em; -} -.content input:focus, -.content select:focus, -.content textarea:not([class^="cke"]):focus { - border-color: #66afe9; - outline: 0; - -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.08), 0 0 8px #93c6ef; - -moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.08), 0 0 8px #93c6ef; - box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.08), 0 0 8px #93c6ef; -} -.content abbr { - border-bottom: 1px dotted #666; - cursor: pointer; -} -.content blockquote { - font-style: italic; - font-family: Georgia, Times, "Times New Roman", serif; - font-size: 16px; - font-size: 1rem; - line-height: 28.8px; - line-height: 1.8rem; -} -.content em { - font-style: italic; -} -.content h1 { - font-size: 36px; - font-size: 2.25rem; - line-height: 64.8px; - line-height: 4.05rem; - margin: 1.125em 0 0; -} -.content h2 { - font-size: 27.2px; - font-size: 1.7rem; - line-height: 48.96px; - line-height: 3.06rem; - margin: 0.9em 0 0; -} -.content h3 { - font-size: 24px; - font-size: 1.5rem; - line-height: 43.2px; - line-height: 2.7rem; - font-weight: 500; - margin: 0.75em 0 0; -} -.content h4 { - font-size: 19.2px; - font-size: 1.2rem; - line-height: 34.56px; - line-height: 2.16rem; - font-weight: 500; - margin: 0.75em 0 0; -} -.content h5 { - font-size: 17.6px; - font-size: 1.1rem; - line-height: 31.68px; - line-height: 1.98rem; - font-weight: 500; - margin: 0.75em 0 0; -} -.content hr { - border: 0; - border-top: 4px solid #D9D9D9; - margin: 1.5em 0; -} -.content input[type="text"] { - height: 1.8em; - line-height: 1.8em; -} -.content input[type="button"] { - -webkit-appearance: button; - -moz-appearance: button; - appearance: button; -} -.content kbd { - font-size: 12px; - font-size: 0.75rem; - line-height: 21.6px; - line-height: 1.35rem; - font-family: Arial, 'Helvetica Neue', Helvetica, sans-serif; - padding: 2px 6px; - -webkit-box-shadow: 0 0 4px #fff inset, 0 2px 0 #D9D9D9; - -moz-box-shadow: 0 0 4px #fff inset, 0 2px 0 #D9D9D9; - box-shadow: 0 0 4px #fff inset, 0 2px 0 #D9D9D9; -} -.content p img { - vertical-align: middle; -} -.content p pre { - padding: 1.5em; -} -.content pre { - padding: 0; - border: 0; - tab-size: 4; - -o-tab-size: 4; - -moz-tab-size: 4; -} -.content pre, -.content code { - font-size: 11.89px; - font-size: 0.743rem; - line-height: 21.4px; - line-height: 1.34rem; - font-family: Consolas, Menlo, Monaco, Lucida Console, Liberation Mono, DejaVu Sans Mono, Bitstream Vera Sans Mono, Courier New, monospace, serif; -} -.content pre a, -.content code a { - border: 0; -} -.content pre code { - padding: 0.75em; - display: block; -} -.content strong { - color: #000; -} -.content ul ul, -.content ol ul, -.content ul ol, -.content ol ol { - margin: 0.75em 0; -} -.content ul li, -.content ol li { - font-size: 14px; - font-size: 0.875rem; - line-height: 30.24px; - line-height: 1.89rem; -} -.content textarea:not([class^="cke"]) { - width: 100%; -} -.content div.todo { - border: 2px dotted #444; - padding: 10px; - margin: 60px 0 10px 0; - /* Remove me some day */ -} -.content div.todo:before { - content: "TODO"; - font-weight: bold; -} -body a.button-a, -body button.button-a, -body input.button-a { - -webkit-border-radius: 3px; - -webkit-background-clip: padding-box; - -moz-border-radius: 3px; - -moz-background-clip: padding; - border-radius: 3px; - background-clip: padding-box; - font-size: 14px; - font-size: 0.875rem; - line-height: 25.2px; - line-height: 1.57rem; - height: 36px; - line-height: 36px; - padding: 0 1.1em; - font-weight: 700; - color: #3e3e3e; - white-space: nowrap; - text-decoration: none; - display: inline-block; - cursor: pointer; - border: 0; - vertical-align: middle; - margin: 1px 0; - background: transparent; -} -body a.button-a.icon-pos-left, -body button.button-a.icon-pos-left, -body input.button-a.icon-pos-left { - padding-left: .8em; -} -body a.button-a.icon-pos-right, -body button.button-a.icon-pos-right, -body input.button-a.icon-pos-right { - padding-right: .8em; -} -body a.button-a.button-a-no-text, -body button.button-a.button-a-no-text, -body input.button-a.button-a-no-text { - -webkit-border-radius: 100px; - -webkit-background-clip: padding-box; - -moz-border-radius: 100px; - -moz-background-clip: padding; - border-radius: 100px; - background-clip: padding-box; - width: 36px; - padding: 0; - text-indent: -999px; - overflow: hidden; - position: relative; - text-align: center; -} -body a.button-a.button-a-no-text:before, -body button.button-a.button-a-no-text:before, -body input.button-a.button-a-no-text:before { - position: absolute; - left: 50%; - top: 50%; - margin: -9px 0 0 -9px; -} -@media (max-width: 900px) { - body a.button-a.button-a-mobile-collapsed, - body button.button-a.button-a-mobile-collapsed, - body input.button-a.button-a-mobile-collapsed { - -webkit-border-radius: 100px; - -webkit-background-clip: padding-box; - -moz-border-radius: 100px; - -moz-background-clip: padding; - border-radius: 100px; - background-clip: padding-box; - width: 36px; - padding: 0; - text-indent: -999px; - overflow: hidden; - position: relative; - text-align: center; - } - body a.button-a.button-a-mobile-collapsed:before, - body button.button-a.button-a-mobile-collapsed:before, - body input.button-a.button-a-mobile-collapsed:before { - position: absolute; - left: 50%; - top: 50%; - margin: -9px 0 0 -9px; - } - body a.button-a.button-a-mobile-collapsed:before, - body button.button-a.button-a-mobile-collapsed:before, - body input.button-a.button-a-mobile-collapsed:before { - position: absolute; - left: 50%; - top: 50%; - margin: -9px 0 0 -9px; - } -} -body a.button-a:active, -body button.button-a:active, -body input.button-a:active, -body a.button-a:hover, -body button.button-a:hover, -body input.button-a:hover { - color: #fff; - background: #23adc2; -} -body a.button-a:focus, -body button.button-a:focus, -body input.button-a:focus { - border-color: #66afe9; - outline: 0; - -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 8px #93c6ef; - -moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 8px #93c6ef; - box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 8px #93c6ef; -} -body a.button-a-soft, -body button.button-a-soft, -body input.button-a-soft { - background: #e7e7e7; -} -body a.button-a-soft:active, -body button.button-a-soft:active, -body input.button-a-soft:active, -body a.button-a-soft:hover, -body button.button-a-soft:hover, -body input.button-a-soft:hover { - color: #3e3e3e; - background: #cecece; -} -body a.button-a-background, -body button.button-a-background, -body input.button-a-background, -body a.navigation-b ul li a:hover, -body button.navigation-b ul li a:hover, -body input.navigation-b ul li a:hover { - color: #fff; - background: #27C0D8; -} -body a.button-a-background:active, -body button.button-a-background:active, -body input.button-a-background:active, -body a.button-a-background:hover, -body button.button-a-background:hover, -body input.button-a-background:hover, -body a.navigation-b ul li a:hover:active, -body button.navigation-b ul li a:hover:active, -body input.navigation-b ul li a:hover:active, -body a.navigation-b ul li a:hover:hover, -body button.navigation-b ul li a:hover:hover, -body input.navigation-b ul li a:hover:hover { - color: #fff; - background: #23adc2; -} -.balloon-a { - font-size: 12px; - font-size: 0.75rem; - line-height: 21.6px; - line-height: 1.35rem; - -webkit-border-radius: 3px; - -webkit-background-clip: padding-box; - -moz-border-radius: 3px; - -moz-background-clip: padding; - border-radius: 3px; - background-clip: padding-box; - border-bottom: 3px solid #d4d4d4; - background: #ebebeb; - display: inline-block; - white-space: nowrap; - padding: .4em 1.2em .2em; - font-weight: 700; - position: relative; - z-index: 1000; - text-transform: none; - color: #575757; -} -.balloon-a:hover { - color: #575757; -} -.balloon-a:before { - content: ''; - width: 0; - height: 0; - border-style: solid; - position: absolute; -} -.balloon-a-ne:before, -.balloon-a-nw:before { - top: -13px; - border-width: 0 9px 15.6px 9px; - border-color: transparent transparent #ebebeb transparent; -} -.balloon-a-se:before, -.balloon-a-sw:before { - bottom: -13px; - border-width: 15.6px 9px 0 9px; - border-color: #ebebeb transparent transparent transparent; -} -.balloon-a-nw:before, -.balloon-a-sw:before { - left: 20px; -} -.balloon-a-ne:before, -.balloon-a-se:before { - right: 20px; -} -.icon-pos-left:before, -.icon-pos-right:after { - content: ''; - display: inline-block; - width: 18px; - height: 18px; - vertical-align: middle; - background-repeat: no-repeat; -} -.icon-pos-left:before { - margin-right: 10px; -} -.icon-pos-right:after { - margin-left: 10px; -} -.icon-download:before, -.icon-download:after { - background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAASCAYAAABWzo5XAAAAAXNSR0IArs4c6QAAAQFJREFUOBGtVDESgjAQBGfobHwE/AIa/AN/8EEWfMWGZ+gDaG2ws8BdyY13SRgGcGducre3WQ5NSJIIxnGsES3ijhhcMCdXR7ZYCqIc0SGWQE1ud7sKjRLxXHJQfWpLYwaCk6wxET/u+U2GIngd8yRViINau28bBH/YAGqvSQPhRNQHqBqj3FY0NKq27TW7qhSTDaCOhkaRAj7Hmm8S4V+c6C+gUa+crsizuWmoc70MKbWCnqPy2GvcUJxE4a/sIajRaGkU+/sf4IuISQGePR/T/QMbHEhwPLVnMWPuOCwGnWg41dwVeaN3ccHch70idIRi/6WV0WC2/zMiZm661R+2DxyEdjTuST3mAAAAAElFTkSuQmCC"); -} -.icon-question-mark:before, -.icon-question-mark:after { - background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAASCAYAAABWzo5XAAAAAXNSR0IArs4c6QAAAUhJREFUOBGllLFOAkEQhjk0WthT2JFA7Czsqc7OxFLewEeAZ/AVbO0tTLTSBKhstTBUNkYLEoVAbD2//zILe5e9uwCT/JnZmX/+m83ebq0WsCRJYnANxmBhUKxcHGjJpiC1wQBUmTjtbLetKHTAT5WCVxe3kxEjoUmKRL6pvYEZyJt6VpOxCG3nmfyx+yJxBM7BFPg2SDlkTv2sxZqi4YnUvfgswI9FuHAkzz9EUTTRmqYeTifXsvoj/s9i57oi6ljz9kviFdyBCbgHe+rCn4C8jVXQ18rshuKOiTSIXwLkRZWQTurARJrE7wERpea7kD7BkcgB+yB3CFGlPmgqCNiXhEagSGif2qU1Ln8FW/tupK3pXhXZrWNDuCoikY/rHPMT5KFr2MAPTSM90rIrUjJIeq1WV0RTwN7+0rrtILb9M+LEbLq1H7Z/Ea3+RvBddl0AAAAASUVORK5CYII="); -} -.icon-close:before, -.icon-close:after { - background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAASCAYAAABWzo5XAAAAAXNSR0IArs4c6QAAAUlJREFUOBGllDFuwzAMRe3Cd+jYKUCzd/XkDtm9dsoVOuUqBnqBoodwgBwiW8ZsXTIWqPu+Iia0LMAoTOBbJEV+UZTkosjIMAwN6MARXCKky9dkUsYuglagB3OimNU4O1pM1OB7jsHNK7YekeFQJZ5kj/0LcnLA+RMnlHOvDMNv5wO7BFuQkn3hq0ALjKwPVeF4BSaqpLRy0T1ZIHFz75bE2BR8dBImqmBrwRplg09QmR/9GZyBSadAHauXCZkRROKURLlHEemepJIlIyhHotzLg1/N6erTxtmmvqA8muHGIbc1rTBqrEuwnqWnGbbmmz0hwaHtvM2QhWbrXZnosvnTWWPrdCY9w7cDJtf3h9VHjy5Zq9UZ08beyJh7Aicg6W/VYvgnIjJdNn9PMIOITJWcgnV9VvcnEitY/mitNFZZ/hsxsljdv39sfybRQ4R/kU0MAAAAAElFTkSuQmCC"); -} -.ie8 .switch > * { - vertical-align: middle; -} -.ie8 .switch input[type="radio"] { - margin: 0 0.25em; - display: inline-block; -} -.ie8 .switch label { - margin-left: 0 !important; - margin-right: 0 !important; -} -.ie8 .switch label[data-for="1"] { - float: left; -} -.ie8 .switch label[data-for="2"] { - float: right; -} -.ie8 .switch .switch-inner { - display: none; -} -.switch { - font-size: 14px; - font-size: 0.875rem; - line-height: 25.2px; - line-height: 1.57rem; - font-weight: bold; - background-color: #27C0D8; - overflow: hidden; - display: inline-block; - padding: 0.75em 0.25em; - color: #fff; - -webkit-border-radius: 3px; - -webkit-background-clip: padding-box; - -moz-border-radius: 3px; - -moz-background-clip: padding; - border-radius: 3px; - background-clip: padding-box; - position: relative; -} -.switch input[type="radio"] { - display: none; -} -.switch label { - position: relative; - z-index: 2; - float: left; - cursor: pointer; - padding: 0 0.75em; -} -.switch label:hover { - text-decoration: underline; -} -.switch .switch-inner { - float: left; - background-color: #FFF; - height: 1.5em; - width: 4.125em; - padding: 2px; - margin: 0 0.25em; - -webkit-border-radius: 5.5px; - -webkit-background-clip: padding-box; - -moz-border-radius: 5.5px; - -moz-background-clip: padding; - border-radius: 5.5px; - background-clip: padding-box; -} -.switch .switch-inner .handler { - overflow: hidden; - position: relative; - display: block; - height: 1.5em; - width: 1.5em; - background: #25b4cb; - -webkit-border-radius: 4.5px; - -webkit-background-clip: padding-box; - -moz-border-radius: 4.5px; - -moz-background-clip: padding; - border-radius: 4.5px; - background-clip: padding-box; -} -.switch .switch-inner .handler:before { - content: ''; - display: block; - position: absolute; - top: 0; - right: 0; - bottom: 3px; - left: 0; - background-color: #34c4da; - -webkit-border-bottom-left-radius: 4.5px; - -moz-border-radius-bottomleft: 4.5px; - border-bottom-left-radius: 4.5px; - -webkit-border-bottom-right-radius: 4.5px; - -webkit-background-clip: padding-box; - -moz-border-radius-bottomright: 4.5px; - -moz-background-clip: padding; - border-bottom-right-radius: 4.5px; - background-clip: padding-box; -} -.switch:hover .switch-inner .handler:before { - background: #45c9dd; -} -.switch input[data-num="2"]:checked ~ .switch-inner > .handler { - margin-left: auto; -} -.switch input[data-num="2"]:checked ~ label[data-for="1"] { - padding-right: 5.125em; - margin-right: -4.375em; -} -.switch input[data-num="1"]:checked ~ label[data-for="2"] { - padding-left: 5.125em; - margin-left: -4.375em; -} -.toggler { - -webkit-user-select: none; - -moz-user-select: none; - -ms-user-select: none; - user-select: none; -} -.toggler label { - cursor: pointer; -} -.toggler [data-collapse] { - display: inherit; -} -.toggler [data-expand] { - display: none; -} -.toggler.collapsed [data-collapse] { - display: none; -} -.toggler.collapsed [data-expand] { - display: inherit; -} -.toggler-container { - overflow: hidden; -} -.toggler-container.collapsed { - height: 0; -} -.icon-toggler-expanded:before, -.icon-toggler-collapsed:before, -.icon-toggler-expanded:after, -.icon-toggler-collapsed:after { - background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAByCAYAAABeOoENAAAAAXNSR0IArs4c6QAAAbxJREFUaAXtmT1KBEEQhRdFQdBEMfQEBoaGopl3MfECXsFERLyBh/AUIuwJDEUQM//eB11Dz1A1uzotGFTBY2rr58306+kNpmazP7Z98V8Kj8JrAT4xcgttXRVXwofwFYAcNdS6RuJegOBTuBUOhc0CfGLkqKHWJeMuFDwJJ0Jk5Kihlp6esW4embuNkVgTNdTS09MMEbkDj76sUUsPvZ2xIwTRATsQuBuxGsTIYdSSo7cztpggwprdyKlJ8ImZUUuM3s48ol1lXwQjwydm5hINl2bF53KMCL82d2mR2GvqnBfg1+aKPbb9p+oGtYXbT1GTFxKiZkfEyHgy7x0y0clR454zSGpDMzaA3fzV30hNln4qkAqkAqlAKpAKpAKpQCqQCqQCqUAqkAqkAqlAKpAKpAKpQCrw3xWY/GGcz++TP9U3Gx40GWdEAxabXA33NBywRCOfdzFcCztDJv12Rz7REMpmIc9qPBNWK0J3COWNxegxIrs+KHZcyHpjsZUSXPaypcLtseJFS3tT84WwUZG4S4vEZkl3wl5FYK4rdrT9R9Y1uIbbT12TFxKiZkfEyCYfWojMJv+NGNGPr99GI9DP7P9TCgAAAABJRU5ErkJggg=="); -} -.icon-toggler-expanded.icon-light:before, -.icon-toggler-collapsed.icon-light:before, -.icon-toggler-expanded.icon-light:after, -.icon-toggler-collapsed.icon-light:after { - background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAByCAYAAABeOoENAAAAAXNSR0IArs4c6QAAAcVJREFUaAXtmT9KA1EQxhMlASE2SkpPkCJlStHOu3gGwRPYBAm5gYfwFBKwtrARRAh26vr7ljfx7TrLChtBcAa+zOSbPy/7vcTC6fV+04qimIArsALrBMXiJq1nUzQEc/AOmkw51QzdgUqAWyD7AEswA6MExeKUk6n2+zBInSJ7BKfuaZDKpRpcMa/UQUgTfWSd1jjEmlSTatXzpRlvJKJsacVtXrVlB72bWgjdiGwmEj8FOq1u4qapRprJVvkgXbFsZCTxomSqL4ssr0uQrY3TJ/AGjeFfVJlM8diaiCuDdlLiIfmNcP1+/wnu0hoVJ84oq7XeUhNXbE4dgPuEgU2Qh3PFbrx+Gs6E2hD/+tMJ3b+QadB2fiLZsG4/2poG3f6M5MMiDgVCgVAgFAgFQoFQIBQIBUKBUCAUCAVCgVAgFAgFQoFQIBQIBf66AiwLuv1jnAH/Zb/Go5abq/qdwvsLFhJNK583ctfg0Bnmrnwq+zVrYoDZM8E52M1yP9uvqcGmZP6O+CTl3LWYHdTm9yk4aCzilLZHe6XmAuzZEGL30ZrEpr64AUc2wDycK7a7X6P42BpzD+9fv4pIxn4tWznnwm0r/gQpiG1tFshTowAAAABJRU5ErkJggg=="); -} -.icon-toggler-expanded:before, -.icon-toggler-expanded:after { - background-position: top left; -} -.icon-toggler-collapsed:before, -.icon-toggler-collapsed:after { - background-position: bottom left; -} -.modal { - padding: 20px; - border-radius: 3px; - background-color: white; - max-width: 700px; - -webkit-box-sizing: border-box; - -moz-box-sizing: border-box; - box-sizing: border-box; - width: 80% !important; - top: 50% !important; - -webkit-transform: translate(-50%, -50%) !important; - -moz-transform: translate(-50%, -50%) !important; - -o-transform: translate(-50%, -50%) !important; - -ms-transform: translate(-50%, -50%) !important; - transform: translate(-50%, -50%) !important; -} -.modal-close { - -webkit-border-radius: 100px; - -webkit-background-clip: padding-box; - -moz-border-radius: 100px; - -moz-background-clip: padding; - border-radius: 100px; - background-clip: padding-box; - cursor: pointer; - height: 18px; - width: 18px; - position: absolute; - top: 10px; - right: 10px; - font-size: 17px; - text-align: center; - line-height: 19px; - background: #cccccc; -} -main .grid-container, -header .grid-container, -.navigation-a > div, -footer > div { - max-width: 968px; -} -.header-a { - margin-top: 30px; -} -.footer-a { - border-top: 1px solid #D9D9D9; -} -.adjoined-top { - background-color: #27C0D8; - color: #fff; -} -.adjoined-top .content h1, -.adjoined-top .content h2, -.adjoined-top .content h3, -.adjoined-top .content h4, -.adjoined-top .content h5 { - color: #fff; -} -.adjoined-top .content p { - font-size: 18px; - font-size: 1.125rem; - line-height: 32.4px; - line-height: 2.02rem; - font-weight: 100; -} -.adjoined-top .content p a { - text-decoration: none; - border-bottom: 1px dotted #fff; - color: inherit; -} -.adjoined-top .content p a:hover { - color: #e6e6e6; -} -.adjoined-top .content button { - color: #fff; -} -.adjoined-top .content strong { - color: #fff; -} -.adjoined-top .content code { - font-size: inherit; - color: #27C0D8; -} -.adjoined-bottom { - position: relative; -} -.adjoined-bottom:before { - z-index: -1; - content: ''; - background: #27C0D8; - position: absolute; - top: 0; - left: 0; - right: 0; - height: 50%; -} -main .grid-container, -header .grid-container, -.navigation-a > div, -footer > div { - max-width: 1052px; -} -main .grid-container.freed-width { - max-width: none; -} -.switch { - background: #25b4cb; - float: right; - overflow: visible; -} -.switch .balloon-a { - position: absolute; - top: -40px; - right: 50%; - margin-right: -15px; - background: #FFEFC1; - border-bottom-color: #DCDCA4; -} -.switch .balloon-a:before { - border-color: #FFEFC1 transparent transparent transparent; -} -#toolbar .editors-container { - overflow: hidden; - height: 0; - transition: height 200ms; -} -#toolbar .editors-container.active { - height: auto; -} -#main #editor { - background: #FFF; - padding: 2% 4%; - border: dashed 5px #27C0D8; -} -#main .adjoined-top:before { - height: 335px; -} -#toolbar .adjoined-top:before { - height: 219px; -} -#toolbar .adjoined-top .grid-container-nested { - height: 147px; -} -.content .grid-switch-magic { - margin: 3.5em 0 0; -} -#info-box { - padding-bottom: 0; -} -#info-box > div { - width: 100%; - text-align: right; -} -#info-box > div .toggler { - padding-right: 0; -} -#info-box > div .toggler:hover { - background: transparent; - color: #000; -} -#info-box > div .toggler:hover > label { - text-decoration: underline; -} -#info-box > div h2 { - float: left; - margin-top: 0; -} -#info-box > div#instructions-container { - text-align: left; -} -#toolbarModifierWrapper { - overflow: hidden; - height: 0; - opacity: 0; - transition: height 200ms; -} -#toolbarModifierWrapper.active { - height: auto; - opacity: 1; -} -header { - overflow: visible; -} -header div.grid-container { - overflow: visible; -} -header .navigation-b { - overflow: visible; -} -header .navigation-b ul { - overflow: visible; -} -header .navigation-b a { - position: relative; -} -header .balloon-a { - position: absolute; - top: 48px; - left: 50%; - margin-left: -35px; -} -@media (max-width: 1140px) { - header .balloon-a { - left: auto; - margin-left: auto; - right: 50%; - margin-right: -35px; - } - header .balloon-a:before { - left: auto; - right: 22px; - } -} -@media (max-width: 900px) { - header .balloon-a { - display: none; - } -} -#toolbar .cke_toolbar { - pointer-events: none; - -webkit-user-select: none; - -moz-user-select: none; - -ms-user-select: none; - user-select: none; - cursor: default; -} -.some-toolbar-active .cke_toolbar { - zoom: 1; - filter: alpha(opacity=50); - -webkit-opacity: 0.5; - -moz-opacity: 0.5; - opacity: 0.5; -} -.cke_toolbar.active { - position: relative; - zoom: 1; - filter: alpha(opacity=100); - -webkit-opacity: 1; - -moz-opacity: 1; - opacity: 1; -} -.cke_toolbar.active:after { - content: ''; - display: block; - position: absolute; - top: 0; - right: 6px; - bottom: 5px; - left: 0; - -webkit-border-radius: 5px; - -webkit-background-clip: padding-box; - -moz-border-radius: 5px; - -moz-background-clip: padding; - border-radius: 5px; - background-clip: padding-box; - -webkit-box-shadow: 0px 0px 15px 3px #fff4b0; - -moz-box-shadow: 0px 0px 15px 3px #fff4b0; - box-shadow: 0px 0px 15px 3px #fff4b0; -} -.cke_toolbar.active .cke_toolgroup { - -webkit-box-shadow: none; - -moz-box-shadow: none; - box-shadow: none; - border-color: #e3c300; -} -.cke_toolbar.active .cke_combo, -.cke_toolbar.active .cke_toolgroup { - position: relative; - z-index: 2; -} -.cke_toolbar.active .cke_combo_button { - -webkit-box-shadow: none; - -moz-box-shadow: none; - box-shadow: none; -} -.unselectable { - -webkit-user-select: none; - -moz-user-select: none; - -ms-user-select: none; - user-select: none; -} -.toolbar { - padding: 5px 0; - margin-bottom: 2.4em; - overflow: hidden; - background: #fff; -} -.toolbar button.button-a.cke_button { - cursor: pointer; - display: inline-block; - padding: 4px 6px; - outline: 0; - border: 1px solid #a6a6a6; -} -.toolbar button.button-a.hidden { - display: none; -} -.toolbar button.button-a.left { - float: left; - margin-right: 8px; -} -.toolbar button.button-a.right { - float: right; - margin-left: 8px; -} -.toolbar button.button-a .highlight { - color: #ffefc1; -} -.configContainer.hidden, -.toolbarModifier.hidden, -.toolbarModifier-hints.hidden { - display: none; -} -.toolbarModifier :focus, -.toolbar button:focus, -.configContainer textarea.configCode:focus { - outline: none; -} -div.toolbarModifier { - padding: 0; - overflow: hidden; - width: 100%; - position: relative; - display: table; - border-collapse: collapse; -} -div.toolbarModifier ::-moz-focus-inner { - border: 0; -} -div.toolbarModifier .empty { - display: none; -} -div.toolbarModifier.empty-visible .empty { - display: table-row; - zoom: 1; - filter: alpha(opacity=60); - -webkit-opacity: 0.6; - -moz-opacity: 0.6; - opacity: 0.6; -} -div.toolbarModifier .empty > p { - line-height: 31px; -} -div.toolbarModifier > ul { - padding: 0; - margin: 0; - border-top: 1px solid #ccc; - width: 100%; -} -div.toolbarModifier > ul[data-type="table-header"] { - display: table-header-group; -} -div.toolbarModifier > ul[data-type="table-body"] { - display: table-row-group; -} -div.toolbarModifier > ul p { - padding: 0; - margin: 0; -} -div.toolbarModifier > ul > li { - display: table-row; -} -div.toolbarModifier > ul > li[data-type="header"] { - font-weight: bold; - user-select: none; - cursor: default; -} -div.toolbarModifier > ul > li[data-type="group"], -div.toolbarModifier > ul > li[data-type="separator"] { - border-bottom: 1px solid #ccc; -} -div.toolbarModifier > ul > li[data-type="subgroup"] { - border-top: 1px solid #eee; -} -div.toolbarModifier > ul > li[data-type="subgroup"]:first-child { - border-top: none; -} -div.toolbarModifier > ul > li[data-type="group"].active, -div.toolbarModifier > ul > li[data-type="group"]:hover, -div.toolbarModifier > ul > li[data-type="separator"].active, -div.toolbarModifier > ul > li[data-type="separator"]:hover { - overflow: hidden; - z-index: 2; -} -div.toolbarModifier > ul > li[data-type="group"].active, -div.toolbarModifier > ul > li[data-type="separator"].active, -div.toolbarModifier > ul > li[data-type="group"].active:hover, -div.toolbarModifier > ul > li[data-type="separator"].active:hover { - background: #f0fafb; -} -div.toolbarModifier > ul > li[data-type="group"]:hover, -div.toolbarModifier > ul > li[data-type="separator"]:hover { - background: #fffbe3; -} -div.toolbarModifier > ul > li[data-type="separator"] { - background: #f5f5f5; -} -div.toolbarModifier > ul > li[data-type="separator"]:after { - content: ''; - width: 100%; -} -div.toolbarModifier > ul > li[data-type="separator"] > p { - padding: 2px 5px; -} -div.toolbarModifier > ul > li > p, -div.toolbarModifier > ul > li > ul { - display: table-cell; - vertical-align: middle; -} -div.toolbarModifier > ul > li p { - padding-left: 5px; - min-width: 200px; -} -div.toolbarModifier > ul > li p span { - white-space: nowrap; - cursor: default; -} -div.toolbarModifier > ul > li p span button { - font-size: 12.666px; - margin-right: 5px; - cursor: pointer; - background: #fff; - -webkit-border-radius: 5px; - -webkit-background-clip: padding-box; - -moz-border-radius: 5px; - -moz-background-clip: padding; - border-radius: 5px; - background-clip: padding-box; - border: 1px solid #bbb; - padding: 0 7px; - line-height: 12px; - height: 20px; -} -div.toolbarModifier > ul > li p span button:not(.disabled):hover, -div.toolbarModifier > ul > li p span button:not(.disabled):focus { - color: #fff; - background-color: #454545; - border-color: transparent; -} -div.toolbarModifier > ul > li p span button.move.disabled { - cursor: default; - zoom: 1; - filter: alpha(opacity=20); - -webkit-opacity: 0.2; - -moz-opacity: 0.2; - opacity: 0.2; -} -div.toolbarModifier > ul > li ul { - border-collapse: collapse; - padding: 0; - width: 100%; -} -div.toolbarModifier > ul > li ul li { - display: table-row; - list-style-type: none; - line-height: 1; -} -div.toolbarModifier > ul > li ul li[data-type="subgroup"] { - border-top: 1px solid #ddd; -} -div.toolbarModifier > ul > li ul li[data-type="subgroup"]:first-child { - border-top: 0; -} -div.toolbarModifier > ul > li ul li[data-type="subgroup"] [data-type="button"] { - -webkit-border-radius: 3px; - -webkit-background-clip: padding-box; - -moz-border-radius: 3px; - -moz-background-clip: padding; - border-radius: 3px; - background-clip: padding-box; - padding: 0 2px; -} -div.toolbarModifier > ul > li ul li[data-type="subgroup"] [data-type="button"]:focus { - background: rgba(0, 0, 0, 0.04); -} -div.toolbarModifier > ul > li ul li[data-type="subgroup"] [data-type="button"] input { - vertical-align: middle; -} -div.toolbarModifier > ul > li ul li > p, -div.toolbarModifier > ul > li ul li > ul { - display: table-cell; - vertical-align: middle; -} -div.toolbarModifier > ul > li ul li ul { - padding: 0; -} -div.toolbarModifier > ul > li ul li ul li { - padding: 0; - display: inline-block; - cursor: pointer; - margin: 2px 5px 2px 0; -} -div.toolbarModifier > ul > li ul li ul li .cke_combo_text { - cursor: pointer; - white-space: nowrap; -} -div.toolbarModifier > ul > li ul li ul li .cke_toolgroup, -div.toolbarModifier > ul > li ul li ul li .cke_combo_button { - cursor: pointer; - margin: 0; - vertical-align: middle; - border: 1px solid #ddd; - font-size: 11.41px; - font-size: 0.713rem; - line-height: 20.54px; - line-height: 1.28rem; -} -div.toolbarModifier > .codemirror-wrapper { - overflow-y: auto; -} -div.toolbarModifier-hints { - float: right; - width: 350px; - min-width: 150px; - overflow-y: auto; - margin-left: 1.5em; -} -div.toolbarModifier-hints h3 { - font-size: 18.08px; - font-size: 1.13rem; - line-height: 32.54px; - line-height: 2.03rem; - padding: 0.36em 1.5em; - background: #f5f5f5; - border-bottom: 1px solid #ddd; - margin-top: 0; - margin-bottom: 1.2em; -} -div.toolbarModifier-hints dl { - margin-bottom: 1.2em; - overflow: hidden; -} -div.toolbarModifier-hints dl .list-header { - font-weight: bold; - border: 0; - padding-bottom: 0.6em; -} -div.toolbarModifier-hints dl > p { - text-align: center; -} -div.toolbarModifier-hints dl dt { - float: left; - width: 9em; - clear: both; - text-align: right; - border-top: 1px solid #ddd; - padding-left: 1.5em; - padding-right: .1em; - -webkit-box-sizing: border-box; - -moz-box-sizing: border-box; - box-sizing: border-box; -} -div.toolbarModifier-hints dl dt code { - background: none; - border: none; - vertical-align: middle; -} -div.toolbarModifier-hints dl dd { - margin-left: 10em; - clear: right; - padding-right: 1.5em; -} -div.toolbarModifier-hints dl dd code { - line-height: 2.2em; -} -div.toolbarModifier-hints dl dd:after { - content: '\00a0'; - display: block; - clear: left; - float: right; - height: 0; - width: 0; -} -.toolbarModifier-hints, -.configContainer textarea.configCode, -.CodeMirror { - -webkit-border-radius: 3px; - -webkit-background-clip: padding-box; - -moz-border-radius: 3px; - -moz-background-clip: padding; - border-radius: 3px; - background-clip: padding-box; - border: 1px solid #ccc; - font-size: 13.01px; - font-size: 0.813rem; - line-height: 23.42px; - line-height: 1.46rem; -} -.configContainer textarea.configCode, -.CodeMirror pre, -.CodeMirror-linenumber { - font-size: 13.01px; - font-size: 0.813rem; - line-height: 23.42px; - line-height: 1.46rem; - font-family: Consolas, Menlo, Monaco, Lucida Console, Liberation Mono, DejaVu Sans Mono, Bitstream Vera Sans Mono, Courier New, monospace, serif; -} -.CodeMirror pre { - border: none; - padding: 0; - margin: 0; -} -.configContainer textarea.configCode { - -webkit-box-sizing: border-box; - -moz-box-sizing: border-box; - box-sizing: border-box; - color: #575757; - padding: 10px; - width: 100%; - min-height: 500px; - margin: 0; - resize: none; - outline: none; - -moz-tab-size: 4; - tab-size: 4; - white-space: pre; - word-wrap: normal; - overflow: auto; -} -.CodeMirror-hints.toolbar-modifier { - padding: 0; - color: #575757; - font-size: 14px; - font-size: 0.875rem; - line-height: 25.2px; - line-height: 1.57rem; - font-family: Consolas, Menlo, Monaco, Lucida Console, Liberation Mono, DejaVu Sans Mono, Bitstream Vera Sans Mono, Courier New, monospace, serif; -} -.CodeMirror-hints.toolbar-modifier .CodeMirror-hint-active { - color: #575757; - background: #f0fafb; -} -.CodeMirror-hints.toolbar-modifier > li:hover { - background: #fffbe3; -} -/* Text modifier */ -#toolbarModifierWrapper { - margin-bottom: 1.2em; -} -#toolbarModifierWrapper .invalid .CodeMirror { - background: #fff8f8; - border-color: red; -} -#toolbarModifierWrapper .CodeMirror { - height: auto; - padding: 0 0.6em; -} -.staticContainer { - position: fixed; - top: 0; - width: 100%; - z-index: 10; -} -.staticContainer > .grid-container { - max-width: 1052px; -} -.staticContainer > .grid-container .inner { - background: #fff; -} -.staticContainer > .grid-container .inner .toolbar { - margin-bottom: 0; -} -#help { - position: relative; - top: -15px; - left: -5px; -} -#help-content { - display: none; -} -/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL25vZGVfbW9kdWxlcy9ja3NvdXJjZS1zYW1wbGVzLWZyYW1ld29yay9jb21wb25lbnRzL2dsb2JhbC9nbG9iYWwubGVzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9ja3NvdXJjZS1zYW1wbGVzLWZyYW1ld29yay9jb21wb25lbnRzL2NvcmUvY29yZS5sZXNzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2Nrc291cmNlLXNhbXBsZXMtZnJhbWV3b3JrL2NvbXBvbmVudHMvZ3JpZC9ncmlkLmxlc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvY2tzb3VyY2Utc2FtcGxlcy1mcmFtZXdvcmsvbm9kZV9tb2R1bGVzL2xlc3NoYXQvYnVpbGQvbGVzc2hhdC5sZXNzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2Nrc291cmNlLXNhbXBsZXMtZnJhbWV3b3JrL2NvbXBvbmVudHMvaGVhZGVyLWEvaGVhZGVyLWEubGVzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9ja3NvdXJjZS1zYW1wbGVzLWZyYW1ld29yay9jb21wb25lbnRzL25hdmlnYXRpb24tYS9uYXZpZ2F0aW9uLWEubGVzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9ja3NvdXJjZS1zYW1wbGVzLWZyYW1ld29yay9jb21wb25lbnRzL25hdmlnYXRpb24tYi9uYXZpZ2F0aW9uLWIubGVzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9ja3NvdXJjZS1zYW1wbGVzLWZyYW1ld29yay9jb21wb25lbnRzL2Zvb3Rlci1hL2Zvb3Rlci1hLmxlc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvY2tzb3VyY2Utc2FtcGxlcy1mcmFtZXdvcmsvY29tcG9uZW50cy9jb250ZW50L2NvbnRlbnQubGVzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9ja3NvdXJjZS1zYW1wbGVzLWZyYW1ld29yay9jb21wb25lbnRzL2J1dHRvbi1hL2J1dHRvbi1hLmxlc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvY2tzb3VyY2Utc2FtcGxlcy1mcmFtZXdvcmsvY29tcG9uZW50cy9iYWxsb29uLWEvYmFsbG9vbi1hLmxlc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvY2tzb3VyY2Utc2FtcGxlcy1mcmFtZXdvcmsvY29tcG9uZW50cy9pY29uL2ljb24ubGVzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9ja3NvdXJjZS1zYW1wbGVzLWZyYW1ld29yay9jb21wb25lbnRzL3N3aXRjaC9zd2l0Y2gubGVzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9ja3NvdXJjZS1zYW1wbGVzLWZyYW1ld29yay9jb21wb25lbnRzL3RvZ2dsZXIvdG9nZ2xlci5sZXNzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2Nrc291cmNlLXNhbXBsZXMtZnJhbWV3b3JrL2NvbXBvbmVudHMvbW9kYWwvbW9kYWwubGVzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9ja3NvdXJjZS1zYW1wbGVzLWZyYW1ld29yay9jb21wb25lbnRzL2Jhc2ljc2FtcGxlL2NvcmUubGVzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9ja3NvdXJjZS1zYW1wbGVzLWZyYW1ld29yay9jb21wb25lbnRzL2Jhc2ljc2FtcGxlL2Fkam9pbmVkLmxlc3MiLCIuLi8uLi9zYW1wbGVzL2xlc3MvY3VzdG9tLmxlc3MiLCIuLi8uLi9zYW1wbGVzL3Rvb2xiYXJjb25maWd1cmF0b3IvbGVzcy90b29sYmFybW9kaWZpZXIubGVzcyIsIi4uLy4uL3NhbXBsZXMvdG9vbGJhcmNvbmZpZ3VyYXRvci9sZXNzL2Jhc2UubGVzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBc0RBLFFBSGlDO0VBeUNoQztJQUNDLHdCQUFBOzs7QUMxRkY7QUFBUztBQUFPO0FBQVM7QUFBWTtBQUFRO0FBQVE7QUFBUTtBQUFRO0FBQU07QUFBTTtBQUFLO0VBQ3JGLGNBQUE7O0FBR0Q7QUFBTTtFQUNMLFNBQUE7RUFDQSxVQUFBO0VBQ0Esd0JETitCLHVDQ00vQjtFQUNBLGdCQUFBO0VBQ0EsY0FBQTs7QUNIQSxZQUFZO0VBQ1gsVUFBQTs7QUFERCxZQUFZO0VBQ1gsVUFBQTs7QUFERCxZQUFZO0VBQ1gsVUFBQTs7QUFERCxZQUFZO0VBQ1gsVUFBQTs7QUFERCxZQUFZO0VBQ1gsVUFBQTs7QUFERCxZQUFZO0VBQ1gsVUFBQTs7QUFERCxZQUFZO0VBQ1gsVUFBQTs7QUFERCxZQUFZO0VBQ1gsVUFBQTs7QUFERCxZQUFZO0VBQ1gsVUFBQTs7QUFERCxZQUFZO0VBQ1gsV0FBQTs7QUY0Q0YsUUFIaUM7RUVqQ2hDO0VBS0MsWUFBWTtFQUFaLFlBQVk7RUFBWixZQUFZO0VBQVosWUFBWTtFQUFaLFlBQVk7RUFBWixZQUFZO0VBQVosWUFBWTtFQUFaLFlBQVk7RUFBWixZQUFZO0lBSlosV0FBQTs7O0FBYUYsQ0FBQztFQ3FSQyw4QkFBQTtFQUNBLDJCQUFBO0VBQ0Esc0JBQUE7RURyUkQsZ0JBQUE7RUFDQSxpQkFBQTtFQUNBLFdBQUE7O0FBSUEsQ0FEQSxxQkFDQztBQUFELGVBQUM7QUFBUSxDQURULHFCQUNVO0FBQUQsZUFBQztFQUNULFNBQVMsRUFBVDtFQUNBLGNBQUE7RUFDQSxnQkFBQTtFQUNBLGtCQUFBO0VBQ0EsWUFBQTtFQUNBLGNBQUE7RUFDQSxRQUFBO0VBQ0EsU0FBQTs7QUFLRCxDQURBLHFCQUNDO0FBQUQsZUFBQztFQUNBLFdBQUE7O0FBSUY7RUMyUEUsOEJBQUE7RUFDQSwyQkFBQTtFQUNBLHNCQUFBO0VEM1BELGlCQUFBO0VBQ0Esa0JBQUE7O0FBS0Msc0JBREQsRUFBQyxxQkFDQztFQUNBLGVBQUE7O0FBR0Qsc0JBTEQsRUFBQyxxQkFLQztFQUNBLGdCQUFBOztBRmpCSCxRQUhpQztFRTBCOUIsc0JBREQsRUFBQyxxQkFDQztJQUNBLGdCQUFBOztFQUdELHNCQUxELEVBQUMscUJBS0M7SUFDQSxpQkFBQTs7O0FFN0VKO0VBQ0MsaUJBQUE7RUFHQSxnQkFBQTs7QUFKRCxTQU1DO0VBQ0MsZ0JBQUE7O0FKMENGLFFBSGlDO0VBNkNqQyxTSXJGQztJQUlFLGtCQUFBOzs7QUFWSCxTQU1DLGVBT0M7RUFDQyxtQkFBQTs7QUNWSDtFQUNDLFlBQUE7RUFDQSxtQkFBQTtFQUNBLGtCQUFBO0VBQ0EsT0FBQTtFQUNBLFFBQUE7RUFDQSxNQUFBO0VBQ0EsVUFBQTtFQUNBLGdCQUFBOztBTHFDRCxRQUhpQztFQTZDakM7SUs1RUUsa0JBQUE7OztBQVhGLGFBY0M7RUFDQyxnQkFBQTtFQUNBLFNBQUE7RUFDQSxnQkFBQTs7QUFqQkYsYUFjQyxHQUtDO0FBbkJGLGFBY0MsR0FLSyxHQUFHO0VBQ04scUJBQUE7O0FMeUJILFFBSGlDO0VBNkNqQyxhS3pFQztJQVVFLFdBQUE7SUFDQSx1QkFBQTtJQUNBLG1CQUFBO0lBQ0EscUJBQUE7SUFDQSxXQUFBOztFQUVBLGFBaEJGLEdBZ0JHO0VBQVMsYUFoQlosR0FnQmE7SUFDVixhQUFBOzs7QUFLRCxhQXRCRixHQXFCRSxhQUNDO0VBQ0EsZ0JBQUE7O0FMUUosUUFIaUM7RUE2Q2pDLGFLekVDLEdBcUJFLGFBQ0M7SUFJQyxnQkFBQTs7O0FBSUYsYUE5QkYsR0FxQkUsYUFTQztFQUNBLGlCQUFBOztBTEFKLFFBSGlDO0VBNkNqQyxhS3pFQyxHQXFCRSxhQVNDO0lBSUMsa0JBQUE7OztBQU1GLGFBeENGLEdBdUNDLEdBQ0c7RUFDRCxpQkFBQTs7QUF2REosYUFjQyxHQXVDQyxHQUtDO0VMeENGLGVBQUE7RUFDQSxtQkFBQTtFQUNBLGlCQUFBO0VBQ0Esb0JBQUE7RUt1Q0csaUJBQUE7RUFDQSxXQUFBO0VBQ0EsV0FBQTtFQUNBLGlCQUFBO0VBQ0EscUJBQUE7RUFDQSx5QkFBQTs7QUFFQSxhQXJESCxHQXVDQyxHQUtDLEVBU0U7RUFDQSxlQUFBO0VBQ0EsV0FBQTs7QUFRSix5QkFBQztBQUFTLHlCQUFDO0VBQ1Ysc0JBQWtCLHFyQkFBbEI7O0FDcEZGO0VBQ0MsaUJBQUE7RUFDQSxnQkFBQTtFQUNBLGlCQUFBOztBTmdERCxRQUhpQztFQTZDakM7SU12RkUsa0JBQUE7SUFDQSxnQkFBQTtJQUdBLFVBQUE7OztBQVZGLGFBYUM7RUFDQyxVQUFBO0VBQ0EsZ0JBQUE7RUFDQSxTQUFBO0VBQ0EsaUJBQUE7O0FBakJGLGFBYUMsR0FNQztBQW5CRixhQWFDLEdBTUssR0FBRztFQUNOLHFCQUFBOztBTitCSCxRQUhpQztFQTZDakMsYU1oRkM7SUFXRSxjQUFBO0lBQ0EsV0FBQTtJQUNBLHFCQUFBOzs7QU55QkgsUUFIaUM7RUE2Q2pDLGFNaEZDLEdBZ0JDO0lBRUUsa0JBQUE7OztBQUdELGFBckJGLEdBZ0JDLEdBS0c7RUFDRCxpQkFBQTs7QU5nQkosUUFIaUM7RUE2Q2pDLGFNaEZDLEdBZ0JDLEdBS0c7SUFJQSxjQUFBOzs7QUF0Q0wsYUFhQyxHQWdCQyxHQWFDO0VId1FELDhCQUFBO0VBQ0EsMkJBQUE7RUFDQSxzQkFBQTtFR3hRRSx5QkFBQTtFQUNBLHFCQUFBO0VBQ0EsYUFBQTs7QU5LSixRQUhpQztFQTZDakMsYU1oRkMsR0FnQkMsR0FhQztJQU9FLFdBQUE7SUhxT0gsd0JBQUE7SUFBaUMsb0NBQUE7SUFDakMscUJBQUE7SUFBOEIsNkJBQUE7SUFDOUIsZ0JBQUE7SUFBeUIsNEJBQUE7OztBSXhSM0I7RVB3QkMsZUFBQTtFQUNBLG9CQUFBO0VBQ0EsbUJBQUE7RUFDQSxvQkFBQTtFT3hCQSxtQkFBQTtFQUNBLHNCQUFBO0VBQ0EsZ0JBQUE7RUFDQSxjQUFBOztBQU5ELFNQNEVDO0VBQ0MsY0FBQTtFQUNBLHFCQUFBO0VBRUEsaUNBQUE7O0FBRUEsU0FORCxFQU1FO0VBQ0EsY0FBQTs7QU9uRkgsU0FRQztFQUNDLFNBQUE7RUFDQSxxQkFBQTtFQUNBLGtCQUFBOztBQ1hGO0VSd0JDLGVBQUE7RUFDQSxtQkFBQTtFQUNBLG1CQUFBO0VBQ0Esb0JBQUE7RVF6QkEsZ0JBQUE7RUFDQSxrQkFBQTtFQUNBLHFCQUFBOztBQUpELFFBU0M7RUFDQyxnQkFBQTs7QUFWRixRQWFDO0FBYkQsUUFhSztBQWJMLFFBYVM7QUFiVCxRQWFjO0FBYmQsUUFhMEIsU0FBUSxJQUFJO0FBYnRDLFFBYXdEO0VBQ3RELGlCQUFBOztBQWRGLFFBaUJDO0FBakJELFFBaUJPO0VMcVFMLDBCQUFBO0VBQWlDLG9DQUFBO0VBQ2pDLHVCQUFBO0VBQThCLDZCQUFBO0VBQzlCLGtCQUFBO0VBQXlCLDRCQUFBO0VLclF6QixnQkFBQTs7QUFuQkYsUUFzQkM7QUF0QkQsUUFzQk07QUF0Qk4sUUFzQlk7QUF0QlosUUFzQmlCO0VBQ2YsbUJBQUE7O0FBdkJGLFFBMEJDO0FBMUJELFFBMEJhO0VBQ1gsZ0JBQUE7RUFDQSw4QkFBQTtFQUNBLHFCQUFBOztBQTdCRixRQW9DQyxFUndDQTtBUTVFRCxRQW9DSSxHUndDSDtBUTVFRCxRQW9DUSxHUndDUDtBUTVFRCxRQW9DWSxXUndDWDtBUTVFRCxRQW9Dd0IsR1J3Q3ZCO0FRNUVELFFBb0M0QixHUndDM0I7QVE1RUQsUUFvQ2dDLEdSd0MvQjtBUTVFRCxRQW9Db0MsR1J3Q25DO0FRNUVELFFBb0N3QyxHUndDdkM7RUFDQyxjQUFBO0VBQ0EscUJBQUE7RUFFQSxpQ0FBQTs7QUFFQSxRUTlDRCxFUndDQSxFQU1FO0FBQUQsUVE5Q0UsR1J3Q0gsRUFNRTtBQUFELFFROUNNLEdSd0NQLEVBTUU7QUFBRCxRUTlDVSxXUndDWCxFQU1FO0FBQUQsUVE5Q3NCLEdSd0N2QixFQU1FO0FBQUQsUVE5QzBCLEdSd0MzQixFQU1FO0FBQUQsUVE5QzhCLEdSd0MvQixFQU1FO0FBQUQsUVE5Q2tDLEdSd0NuQyxFQU1FO0FBQUQsUVE5Q3NDLEdSd0N2QyxFQU1FO0VBQ0EsY0FBQTs7QVFuRkgsUUF3Q0M7QUF4Q0QsUUF3Q0s7QUF4Q0wsUUF3Q1M7QUF4Q1QsUUF3Q2E7QUF4Q2IsUUF3Q2lCO0VBQ2YsV0FBQTtFQUNBLGdCQUFBOztBQTFDRixRQXdDQyxHQUtDO0FBN0NGLFFBd0NLLEdBS0g7QUE3Q0YsUUF3Q1MsR0FLUDtBQTdDRixRQXdDYSxHQUtYO0FBN0NGLFFBd0NpQixHQUtmO0FBN0NGLFFBd0NDLEdBS087QUE3Q1IsUUF3Q0ssR0FLRztBQTdDUixRQXdDUyxHQUtEO0FBN0NSLFFBd0NhLEdBS0w7QUE3Q1IsUUF3Q2lCLEdBS1Q7RUFDTCxrQkFBQTs7QUE5Q0gsUUF3Q0MsR0FVQyxFQUFDO0FBbERILFFBd0NLLEdBVUgsRUFBQztBQWxESCxRQXdDUyxHQVVQLEVBQUM7QUFsREgsUUF3Q2EsR0FVWCxFQUFDO0FBbERILFFBd0NpQixHQVVmLEVBQUM7RUFDQSxnQkFBQTtFQUNBLHNCQUFBO0VBQ0EsVUFBQTtFQUNBLFNBQUE7O0FBR0QsUUFqQkQsR0FpQkUsTUFDQSxFQUFDO0FBREYsUUFqQkcsR0FpQkYsTUFDQSxFQUFDO0FBREYsUUFqQk8sR0FpQk4sTUFDQSxFQUFDO0FBREYsUUFqQlcsR0FpQlYsTUFDQSxFQUFDO0FBREYsUUFqQmUsR0FpQmQsTUFDQSxFQUFDO0VBQ0EsVUFBQTs7QUFJRixRQXZCRCxHQXVCRSxPQUNBO0FBREQsUUF2QkcsR0F1QkYsT0FDQTtBQURELFFBdkJPLEdBdUJOLE9BQ0E7QUFERCxRQXZCVyxHQXVCVixPQUNBO0FBREQsUUF2QmUsR0F1QmQsT0FDQTtFTDhERCwwREFBQTtFQUNBLHVEQUFBO0VBQ0EscURBQUE7RUFDQSxrREFBQTtFSy9ERSxVQUFBOztBQWxFSixRQXVFQztBQXZFRCxRQXVFUTtBQXZFUixRQXVFZ0IsU0FBUSxJQUFJO0VMK00xQiwwQkFBQTtFQUFpQyxvQ0FBQTtFQUNqQyx1QkFBQTtFQUE4Qiw2QkFBQTtFQUM5QixrQkFBQTtFQUF5Qiw0QkFBQTtFQW1CekIsdURBQUE7RUFDQSxvREFBQTtFQUNBLCtDQUFBO0VLbE9BLGFBQUE7RUFDQSxjQUFBO0VBRUEseUJBQUE7RUFDQSxrQkFBQTs7QUFFQSxRQVZELE1BVUU7QUFBRCxRQVZNLE9BVUw7QUFBRCxRQVZjLFNBQVEsSUFBSSxnQkFVekI7RUFDQSxxQkFBQTtFQUNBLFVBQUE7RUx3TkQsd0VBQUE7RUFDQSxxRUFBQTtFQUNBLGdFQUFBOztBSzdTRixRQThGQztFQUNDLDhCQUFBO0VBQ0EsZUFBQTs7QUFoR0YsUUFtR0M7RUFDQyxrQkFBQTtFQUNBLDZCUm5HMkMsd0JRbUczQztFUjdFRCxlQUFBO0VBQ0EsZUFBQTtFQUNBLG1CQUFBO0VBQ0EsbUJBQUE7O0FRM0JELFFBeUdDO0VBQ0Msa0JBQUE7O0FBMUdGLFFBNkdDO0VSckZBLGVBQUE7RUFDQSxrQkFBQTtFQUNBLG1CQUFBO0VBQ0Esb0JBQUE7RVFvRkMsbUJBQUE7O0FBL0dGLFFBa0hDO0VSMUZBLGlCQUFBO0VBQ0EsaUJBQUE7RUFDQSxvQkFBQTtFQUNBLG9CQUFBO0VReUZDLGlCQUFBOztBQXBIRixRQXVIQztFUi9GQSxlQUFBO0VBQ0EsaUJBQUE7RUFDQSxtQkFBQTtFQUNBLG1CQUFBO0VROEZDLGdCQUFBO0VBQ0Esa0JBQUE7O0FBMUhGLFFBNkhDO0VSckdBLGlCQUFBO0VBQ0EsaUJBQUE7RUFDQSxvQkFBQTtFQUNBLG9CQUFBO0VRb0dDLGdCQUFBO0VBQ0Esa0JBQUE7O0FBaElGLFFBbUlDO0VSM0dBLGlCQUFBO0VBQ0EsaUJBQUE7RUFDQSxvQkFBQTtFQUNBLG9CQUFBO0VRMEdDLGdCQUFBO0VBQ0Esa0JBQUE7O0FBdElGLFFBeUlDO0VBQ0MsU0FBQTtFQUNBLDZCQUFBO0VBQ0EsZUFBQTs7QUFJQSxRQURELE1BQ0U7RUFDQSxhQUFBO0VBQ0Esa0JBQUE7O0FBR0QsUUFORCxNQU1FO0VMaURELDBCQUFBO0VBQ0EsdUJBQUE7RUFDQSxrQkFBQTs7QUt4TUYsUUE0SkM7RVJwSUEsZUFBQTtFQUNBLGtCQUFBO0VBQ0EsbUJBQUE7RUFDQSxvQkFBQTtFUW1JQyxvQlI3SjhCLHVDUTZKOUI7RUFDQSxnQkFBQTtFTDRJQSx1REFBQTtFQUNBLG9EQUFBO0VBQ0EsK0NBQUE7O0FLN1NGLFFBdUtDLEVBQ0M7RUFDQyxzQkFBQTs7QUF6S0gsUUF1S0MsRUFLQztFQUNDLGNBQUE7O0FBN0tILFFBaUxDO0VBQ0MsVUFBQTtFQUNBLFNBQUE7RUFFQSxXQUFBO0VBQ0EsY0FBQTtFQUNBLGdCQUFBOztBQXZMRixRQTBMQztBQTFMRCxRQTBMTTtFUmxLTCxrQkFBQTtFQUNBLG1CQUFBO0VBQ0EsbUJBQUE7RUFDQSxvQkFBQTtFUWtLQyxnSkFBQTs7QUE3TEYsUUEwTEMsSUFLQztBQS9MRixRQTBMTSxLQUtKO0VBQ0MsU0FBQTs7QUFoTUgsUUFxTUMsSUFBSTtFQUNILGVBQUE7RUFDQSxjQUFBOztBQXZNRixRQTBNQztFQUNDLFdBQUE7O0FBM01GLFFBOE1DLEdBRUM7QUFoTkYsUUE4TUssR0FFSDtBQWhORixRQThNQyxHQUVLO0FBaE5OLFFBOE1LLEdBRUM7RUFDSCxnQkFBQTs7QUFqTkgsUUE4TUMsR0FNQztBQXBORixRQThNSyxHQU1IO0VSNUxELGVBQUE7RUFDQSxtQkFBQTtFQUNBLG9CQUFBO0VBQ0Esb0JBQUE7O0FRM0JELFFBME5DLFNBQVEsSUFBSTtFQUNYLFdBQUE7O0FBM05GLFFBOE5DLElBQUc7RUFDRix1QkFBQTtFQUNBLGFBQUE7RUFDQSxxQkFBQTs7O0FBR0EsUUFORCxJQUFHLEtBTUQ7RUFDQSxTQUFTLE1BQVQ7RUFDQSxpQkFBQTs7QUNqT0QsSUFERCxFQUNFO0FBQUQsSUFERSxPQUNEO0FBQUQsSUFEVSxNQUNUO0VOaVJELDBCQUFBO0VBQWlDLG9DQUFBO0VBQ2pDLHVCQUFBO0VBQThCLDZCQUFBO0VBQzlCLGtCQUFBO0VBQXlCLDRCQUFBO0VIaFExQixlQUFBO0VBQ0EsbUJBQUE7RUFDQSxtQkFBQTtFQUNBLG9CQUFBO0VTbkJFLFlBQUE7RUFDQSxpQkFBQTtFQUNBLGdCQUFBO0VBQ0EsZ0JBQUE7RUFDQSxjQUFBO0VBQ0EsbUJBQUE7RUFDQSxxQkFBQTtFQUNBLHFCQUFBO0VBQ0EsZUFBQTtFQUNBLFNBQUE7RUFDQSxzQkFBQTtFQUlBLGFBQUE7RUFHQSx1QkFBQTs7QUFFQSxJQXZCRixFQUNFLFNBc0JDO0FBQUQsSUF2QkMsT0FDRCxTQXNCQztBQUFELElBdkJTLE1BQ1QsU0FzQkM7RUFDQSxrQkFBQTs7QUFHRCxJQTNCRixFQUNFLFNBMEJDO0FBQUQsSUEzQkMsT0FDRCxTQTBCQztBQUFELElBM0JTLE1BQ1QsU0EwQkM7RUFDQSxtQkFBQTs7QUFvQkQsSUFoREYsRUFDRSxTQStDQztBQUFELElBaERDLE9BQ0QsU0ErQ0M7QUFBRCxJQWhEUyxNQUNULFNBK0NDO0VOa09GLDRCQUFBO0VBQWlDLG9DQUFBO0VBQ2pDLHlCQUFBO0VBQThCLDZCQUFBO0VBQzlCLG9CQUFBO0VBQXlCLDRCQUFBO0VNblB2QixXQUFBO0VBQ0EsVUFBQTtFQUNBLG1CQUFBO0VBQ0EsZ0JBQUE7RUFDQSxrQkFBQTtFQUNBLGtCQUFBOztBQUVBLElBeENILEVBQ0UsU0ErQ0MsaUJBUkM7QUFBRCxJQXhDQSxPQUNELFNBK0NDLGlCQVJDO0FBQUQsSUF4Q1EsTUFDVCxTQStDQyxpQkFSQztFQUNBLGtCQUFBO0VBQ0EsU0FBQTtFQUNBLFFBQUE7RUFDQSxxQkFBQTs7QVRHTCxRQUhpQztFQTZDakMsSVN6RkMsRUFDRSxTQW1EQztFVHFDSixJU3pGSSxPQUNELFNBbURDO0VUcUNKLElTekZZLE1BQ1QsU0FtREM7SU44TkYsNEJBQUE7SUFBaUMsb0NBQUE7SUFDakMseUJBQUE7SUFBOEIsNkJBQUE7SUFDOUIsb0JBQUE7SUFBeUIsNEJBQUE7SU1uUHZCLFdBQUE7SUFDQSxVQUFBO0lBQ0EsbUJBQUE7SUFDQSxnQkFBQTtJQUNBLGtCQUFBO0lBQ0Esa0JBQUE7O0VBRUEsSUF4Q0gsRUFDRSxTQW1EQywwQkFaQztFQUFELElBeENBLE9BQ0QsU0FtREMsMEJBWkM7RUFBRCxJQXhDUSxNQUNULFNBbURDLDBCQVpDO0lBQ0Esa0JBQUE7SUFDQSxTQUFBO0lBQ0EsUUFBQTtJQUNBLHFCQUFBOztFQUpELElBeENILEVBQ0UsU0FtREMsMEJBWkM7RUFBRCxJQXhDQSxPQUNELFNBbURDLDBCQVpDO0VBQUQsSUF4Q1EsTUFDVCxTQW1EQywwQkFaQztJQUNBLGtCQUFBO0lBQ0EsU0FBQTtJQUNBLFFBQUE7SUFDQSxxQkFBQTs7O0FBY0YsSUExREYsRUFDRSxTQXlEQztBQUFELElBMURDLE9BQ0QsU0F5REM7QUFBRCxJQTFEUyxNQUNULFNBeURDO0FBQ0QsSUEzREYsRUFDRSxTQTBEQztBQUFELElBM0RDLE9BQ0QsU0EwREM7QUFBRCxJQTNEUyxNQUNULFNBMERDO0VBQ0EsV0FBQTtFQUNBLG1CQUFBOztBQUdELElBaEVGLEVBQ0UsU0ErREM7QUFBRCxJQWhFQyxPQUNELFNBK0RDO0FBQUQsSUFoRVMsTUFDVCxTQStEQztFQUNBLHFCQUFBO0VBQ0EsVUFBQTtFTnFPRix5RUFBQTtFQUNBLHNFQUFBO0VBQ0EsaUVBQUE7O0FNNU5BLElBN0VELEVBNkVFO0FBQUQsSUE3RUUsT0E2RUQ7QUFBRCxJQTdFVSxNQTZFVDtFQUNBLG1CQUFBOztBQUVBLElBaEZGLEVBNkVFLGNBR0M7QUFBRCxJQWhGQyxPQTZFRCxjQUdDO0FBQUQsSUFoRlMsTUE2RVQsY0FHQztBQUNELElBakZGLEVBNkVFLGNBSUM7QUFBRCxJQWpGQyxPQTZFRCxjQUlDO0FBQUQsSUFqRlMsTUE2RVQsY0FJQztFQUNBLGNBQUE7RUFDQSxtQkFBQTs7QUFJRixJQXZGRCxFQXVGRTtBQUFELElBdkZFLE9BdUZEO0FBQUQsSUF2RlUsTUF1RlQ7QUFBRCxJQXZGRCxFSGlERyxhQXhDSCxHQWdCQyxHQWFDLEVBV0U7QUdzQ0gsSUF2RkUsT0hpREEsYUF4Q0gsR0FnQkMsR0FhQyxFQVdFO0FHc0NILElBdkZVLE1IaURSLGFBeENILEdBZ0JDLEdBYUMsRUFXRTtFR3VDRixXQUFBO0VBQ0EsbUJBQUE7O0FBRUEsSUEzRkYsRUF1RkUsb0JBSUM7QUFBRCxJQTNGQyxPQXVGRCxvQkFJQztBQUFELElBM0ZTLE1BdUZULG9CQUlDO0FBQ0QsSUE1RkYsRUF1RkUsb0JBS0M7QUFBRCxJQTVGQyxPQXVGRCxvQkFLQztBQUFELElBNUZTLE1BdUZULG9CQUtDO0FBREQsSUEzRkYsRUhpREcsYUF4Q0gsR0FnQkMsR0FhQyxFQVdFLE1HMENEO0FBQUQsSUEzRkMsT0hpREEsYUF4Q0gsR0FnQkMsR0FhQyxFQVdFLE1HMENEO0FBQUQsSUEzRlMsTUhpRFIsYUF4Q0gsR0FnQkMsR0FhQyxFQVdFLE1HMENEO0FBQ0QsSUE1RkYsRUhpREcsYUF4Q0gsR0FnQkMsR0FhQyxFQVdFLE1HMkNEO0FBQUQsSUE1RkMsT0hpREEsYUF4Q0gsR0FnQkMsR0FhQyxFQVdFLE1HMkNEO0FBQUQsSUE1RlMsTUhpRFIsYUF4Q0gsR0FnQkMsR0FhQyxFQVdFLE1HMkNEO0VBQ0EsV0FBQTtFQUNBLG1CQUFBOztBQ2hHSjtFVnNCQyxlQUFBO0VBQ0Esa0JBQUE7RUFDQSxtQkFBQTtFQUNBLG9CQUFBO0VHMlBDLDBCQUFBO0VBQWlDLG9DQUFBO0VBQ2pDLHVCQUFBO0VBQThCLDZCQUFBO0VBQzlCLGtCQUFBO0VBQXlCLDRCQUFBO0VPblIxQixnQ0FBQTtFQUVBLG1CQUFBO0VBQ0EscUJBQUE7RUFDQSxtQkFBQTtFQUNBLHdCQUFBO0VBQ0EsZ0JBQUE7RUFDQSxrQkFBQTtFQUNBLGFBQUE7RUFDQSxvQkFBQTtFQUNBLGNBQUE7O0FBRUEsVUFBQztFQUNBLGNBQUE7O0FBR0QsVUFBQztFQUNBLFNBQVMsRUFBVDtFQUNBLFFBQUE7RUFDQSxTQUFBO0VBQ0EsbUJBQUE7RUFDQSxrQkFBQTs7QUFNRCxhQUFDO0FBQUQsYUFBQztFQUNBLFVBQUE7RUFDQSw4QkFBQTtFQUNBLHlEQUFBOztBQU1ELGFBQUM7QUFBRCxhQUFDO0VBQ0EsYUFBQTtFQUNBLDhCQUFBO0VBQ0EseURBQUE7O0FBTUQsYUFBQztBQUFELGFBQUM7RUFDQSxVQUFBOztBQU1ELGFBQUM7QUFBRCxhQUFDO0VBQ0EsV0FBQTs7QUN2REYsY0FBYztBQUNkLGVBQWU7RUFDZCxTQUFTLEVBQVQ7RUFDQSxxQkFBQTtFQUNBLFdBQUE7RUFDQSxZQUFBO0VBQ0Esc0JBQUE7RUFDQSw0QkFBQTs7QUFHRCxjQUFjO0VBQ2Isa0JBQUE7O0FBR0QsZUFBZTtFQUNkLGlCQUFBOztBQUlBLGNBQUM7QUFBUyxjQUFDO0VBQ1Ysc0JBQWtCLDZjQUFsQjs7QUFLRCxtQkFBQztBQUFTLG1CQUFDO0VBQ1Ysc0JBQWtCLDZpQkFBbEI7O0FBS0QsV0FBQztBQUFTLFdBQUM7RUFDVixzQkFBa0IsNmlCQUFsQjs7QUM1QkYsSUFBSyxRQUVKO0VBQ0Msc0JBQUE7O0FBSEYsSUFBSyxRQU1KLE1BQUs7RUFDSixnQkFBQTtFQUNBLHFCQUFBOztBQVJGLElBQUssUUFXSjtFQUNDLHlCQUFBO0VBQ0EsMEJBQUE7O0FBRUEsSUFmRyxRQVdKLE1BSUU7RUFDQSxXQUFBOztBQUdELElBbkJHLFFBV0osTUFRRTtFQUNBLFlBQUE7O0FBcEJILElBQUssUUF3Qko7RUFDQyxhQUFBOztBQUlGO0VaWkMsZUFBQTtFQUNBLG1CQUFBO0VBQ0EsbUJBQUE7RUFDQSxvQkFBQTtFWVdBLGlCQUFBO0VBQ0EseUJBQUE7RUFDQSxnQkFBQTtFQUNBLHFCQUFBO0VBQ0Esc0JBQUE7RUFDQSxXQUFBO0VUMk9DLDBCQUFBO0VBQWlDLG9DQUFBO0VBQ2pDLHVCQUFBO0VBQThCLDZCQUFBO0VBQzlCLGtCQUFBO0VBQXlCLDRCQUFBO0VTM08xQixrQkFBQTs7QUFURCxPQVdDLE1BQUs7RUFDSixhQUFBOztBQVpGLE9BZUM7RUFDQyxrQkFBQTtFQUNBLFVBQUE7RUFDQSxXQUFBO0VBQ0EsZUFBQTtFQUNBLGlCQUFBOztBQUVBLE9BUEQsTUFPRTtFQUNBLDBCQUFBOztBQXZCSCxPQTJCQztFQUNDLFdBQUE7RUFDQSxzQkFBQTtFQUNBLGFBQUE7RUFDQSxjQUFBO0VBQ0EsWUFBQTtFQUNBLGdCQUFBO0VUaU5BLDRCQUFBO0VBQWlDLG9DQUFBO0VBQ2pDLHlCQUFBO0VBQThCLDZCQUFBO0VBQzlCLG9CQUFBO0VBQXlCLDRCQUFBOztBU3BQM0IsT0EyQkMsY0FTQztFQUNDLGdCQUFBO0VBQ0Esa0JBQUE7RUFDQSxjQUFBO0VBQ0EsYUFBQTtFQUNBLFlBQUE7RUFDQSxtQkFBQTtFVHdNRCw0QkFBQTtFQUFpQyxvQ0FBQTtFQUNqQyx5QkFBQTtFQUE4Qiw2QkFBQTtFQUM5QixvQkFBQTtFQUF5Qiw0QkFBQTs7QVN2TXhCLE9BbEJGLGNBU0MsU0FTRTtFQUNBLFNBQVMsRUFBVDtFQUNBLGNBQUE7RUFDQSxrQkFBQTtFQUNBLE1BQUE7RUFDQSxRQUFBO0VBQ0EsV0FBQTtFQUNBLE9BQUE7RUFFQSx5QkFBQTtFVHNLRix3Q0FBQTtFQUNBLG9DQUFBO0VBQ0EsZ0NBQUE7RUFLQSx5Q0FBQTtFQUE4QyxvQ0FBQTtFQUM5QyxxQ0FBQTtFQUEwQyw2QkFBQTtFQUMxQyxpQ0FBQTtFQUFzQyw0QkFBQTs7QVN2S3ZDLE9BQUMsTUFDQSxjQUFjLFNBQVE7RUFDckIsbUJBQUE7O0FBaEVILE9Bb0VDLE1BQUssY0FBZ0IsUUFFcEIsZ0JBQWdCO0VBQ2YsaUJBQUE7O0FBdkVILE9Bb0VDLE1BQUssY0FBZ0IsUUFTcEIsUUFBTztFQUNOLHNCQUFBO0VBQ0Esc0JBQUE7O0FBL0VILE9BbUZDLE1BQUssY0FBZ0IsUUFBUyxRQUFPO0VBQ3BDLHFCQUFBO0VBQ0EscUJBQUE7O0FDekhGO0VWazNCRSx5QkFBQTtFQUNBLHNCQUFBO0VBQ0EscUJBQUE7RUFDQSxpQkFBQTs7QVVyM0JGLFFBR0M7RUFDQyxlQUFBOztBQUpGLFFBTUM7RUFDQyxnQkFBQTs7QUFQRixRQVVDO0VBQ0MsYUFBQTs7QUFHRCxRQUFDLFVBQ0E7RUFDQyxhQUFBOztBQUZGLFFBQUMsVUFLQTtFQUNDLGdCQUFBOztBQUtIO0VBQ0MsZ0JBQUE7O0FBRUEsa0JBQUM7RUFDQSxTQUFBOztBQU1ELHNCQUFDO0FBQUQsdUJBQUM7QUFBUyxzQkFBQztBQUFELHVCQUFDO0VBQ1Ysc0JBQWtCLHlzQkFBbEI7O0FBSUEsc0JBREEsV0FDQztBQUFELHVCQURBLFdBQ0M7QUFBUyxzQkFEVixXQUNXO0FBQUQsdUJBRFYsV0FDVztFQUNWLHNCQUFrQixxdEJBQWxCOztBQU1GLHNCQUFDO0FBQ0Qsc0JBQUM7RUFDQSw2QkFBQTs7QUFLRCx1QkFBQztBQUNELHVCQUFDO0VBQ0EsZ0NBQUE7O0FDdERGO0VBQ0MsYUFBQTtFQUNBLGtCQUFBO0VBQ0EsdUJBQUE7RUFDQSxnQkFBQTtFWDRTQyw4QkFBQTtFQUNBLDJCQUFBO0VBQ0Esc0JBQUE7RVd6U0QscUJBQUE7RUFDQSxtQkFBQTtFWGd2QkMsd0NBQUE7RUFDQSxxQ0FBQTtFQUNBLG1DQUFBO0VBQ0Esb0NBQUE7RUFDQSxnQ0FBQTs7QVdqdkJELE1BQUM7RVh1UUEsNEJBQUE7RUFBaUMsb0NBQUE7RUFDakMseUJBQUE7RUFBOEIsNkJBQUE7RUFDOUIsb0JBQUE7RUFBeUIsNEJBQUE7RVd2UXpCLGVBQUE7RUFDQSxZQUFBO0VBQ0EsV0FBQTtFQUNBLGtCQUFBO0VBQ0EsU0FBQTtFQUNBLFdBQUE7RUFDQSxlQUFBO0VBQ0Esa0JBQUE7RUFDQSxpQkFBQTtFQUNBLG1CQUFBOztBQ3pCRixJQUFLO0FBQ0wsTUFBTztBQUNQLGFBQWM7QUFDZCxNQUFPO0VBQ04sZ0JBQUE7O0FBSUQ7RUFDQyxnQkFBQTs7QUFHRDtFQUNDLDZCQUFBOztBQ1hBLFNBQUM7RUFDQSx5QkFBQTtFQUNBLFdBQUE7O0FBRkQsU0FBQyxJQUlBLFNBQ0M7QUFMRixTQUFDLElBSUEsU0FDSztBQUxOLFNBQUMsSUFJQSxTQUNTO0FBTFYsU0FBQyxJQUlBLFNBQ2E7QUFMZCxTQUFDLElBSUEsU0FDaUI7RUFDZixXQUFBOztBQU5ILFNBQUMsSUFJQSxTQUtDO0VoQllGLGVBQUE7RUFDQSxtQkFBQTtFQUNBLG1CQUFBO0VBQ0Esb0JBQUE7RWdCYkcsZ0JBQUE7O0FBWEgsU0FBQyxJQUlBLFNBS0MsRUFJQztFQUNDLHFCQUFBO0VBQ0EsOEJBQUE7RUFDQSxjQUFBOztBQUVBLFNBbEJILElBSUEsU0FLQyxFQUlDLEVBS0U7RUFDQSxjQUFBOztBQW5CTCxTQUFDLElBSUEsU0FvQkM7RUFDQyxXQUFBOztBQXpCSCxTQUFDLElBSUEsU0F3QkM7RUFDQyxXQUFBOztBQTdCSCxTQUFDLElBSUEsU0E0QkM7RUFDQyxrQkFBQTtFQUNBLGNBQUE7O0FBS0gsU0FBQztFQUNBLGtCQUFBOztBQUVBLFNBSEEsT0FHQztFQUNBLFdBQUE7RUFDQSxTQUFTLEVBQVQ7RUFDQSxtQkFBQTtFQUNBLGtCQUFBO0VBQ0EsTUFBQTtFQUNBLE9BQUE7RUFDQSxRQUFBO0VBQ0EsV0FBQTs7QUN4REgsSUFBSztBQUNMLE1BQU87QUFDUCxhQUFjO0FBQ2QsTUFBTztFQUNOLGlCQUFBOztBQUdELElBQUssZ0JBQWU7RUFDbkIsZUFBQTs7QUFHRDtFQUNDLG1CQUFBO0VBQ0EsWUFBQTtFQUNBLGlCQUFBOztBQUhELE9BTUM7RUFFQyxrQkFBQTtFQUNBLFVBQUE7RUFDQSxVQUFBO0VBQ0EsbUJBQUE7RUFHQSxtQkFBQTtFQUNBLDRCQUFBOztBQUVBLE9BWEQsV0FXRTtFQUNBLHlEQUFBOztBQUtILFFBQVM7RUFDUixnQkFBQTtFQUNBLFNBQUE7RUFDQSx3QkFBQTs7QUFFQSxRQUxRLG1CQUtQO0VBQ0EsWUFBQTs7QUFLRixLQUFNO0VBQ0wsZ0JBQUE7RUFDQSxjQUFBO0VBQ0EsMEJBQUE7O0FBR0QsS0FBTSxjQUFhO0VBQ2xCLGFBQUE7O0FBSUEsUUFEUSxjQUNQO0VBQ0EsYUFBQTs7QUFGRixRQUFTLGNBS1I7RUFDQyxhQUFBOztBQUlGLFFBQ0M7RUFDQyxpQkFBQTs7QUFJRjtFQUNDLGlCQUFBOztBQURELFNBR0M7RUFDQyxXQUFBO0VBQ0EsaUJBQUE7O0FBTEYsU0FHQyxNQUlDO0VBQ0MsZ0JBQUE7O0FBRUEsU0FQRixNQUlDLFNBR0U7RUFDQSx1QkFBQTtFQUNBLFdBQUE7O0FBRkQsU0FQRixNQUlDLFNBR0UsTUFJQTtFQUNDLDBCQUFBOztBQWZMLFNBR0MsTUFpQkM7RUFDQyxXQUFBO0VBQ0EsYUFBQTs7QUFHRCxTQXRCRCxNQXNCRTtFQUNBLGdCQUFBOztBQUtIO0VBQ0MsZ0JBQUE7RUFDQSxTQUFBO0VBQ0EsVUFBQTtFQUNBLHdCQUFBOztBQUVBLHVCQUFDO0VBQ0EsWUFBQTtFQUNBLFVBQUE7O0FBS0Y7RUFDQyxpQkFBQTs7QUFERCxNQUdDLElBQUc7RUFDRixpQkFBQTs7QUFKRixNQU9DO0VBQ0MsaUJBQUE7O0FBUkYsTUFPQyxjQUdDO0VBQ0MsaUJBQUE7O0FBWEgsTUFPQyxjQU9DO0VBRUMsa0JBQUE7O0FBaEJILE1Bb0JDO0VBQ0Msa0JBQUE7RUFDQSxTQUFBO0VBRUEsU0FBQTtFQUNBLGtCQUFBOztBakJ0RkYsUUFIaUM7RUE2Q2pDLE1pQnVDQztJQVVFLFVBQUE7SUFDQSxpQkFBQTtJQUVBLFVBQUE7SUFDQSxtQkFBQTs7RUFFQSxNQWhCRixXQWdCRztJQUNBLFVBQUE7SUFDQSxXQUFBOzs7QWpCbkdKLFFBSGlDO0VBNkNqQyxNaUJ1Q0M7SUF3QkUsYUFBQTs7O0FDOUlILFFBQVM7RUFDUixvQkFBQTtFZm0yQkMseUJBQUE7RUFDQSxzQkFBQTtFQUNBLHFCQUFBO0VBQ0EsaUJBQUE7RWVwMkJELGVBQUE7O0FBSUQsb0JBQXFCO0VmNmVsQixPQUFBO0VBQVMseUJBQUE7RUFDVixvQkFBQTtFQUNBLGlCQUFBO0VBQ0EsWUFBQTs7QWU1ZUYsWUFBWTtFQUNYLGtCQUFBO0Vmd2VFLE9BQUE7RUFBUywwQkFBQTtFQUNWLGtCQUFBO0VBQ0EsZUFBQTtFQUNBLFVBQUE7O0FldGVELFlBTlcsT0FNVjtFQUNBLFNBQVMsRUFBVDtFQUNBLGNBQUE7RUFDQSxrQkFBQTtFQUNBLE1BQUE7RUFDQSxVQUFBO0VBQ0EsV0FBQTtFQUNBLE9BQUE7RWZnUEEsMEJBQUE7RUFBaUMsb0NBQUE7RUFDakMsdUJBQUE7RUFBOEIsNkJBQUE7RUFDOUIsa0JBQUE7RUFBeUIsNEJBQUE7RUFtQnpCLDRDQUFBO0VBQ0EseUNBQUE7RUFDQSxvQ0FBQTs7QWVwUkYsWUFBWSxPQWtCWDtFZmdRQyx3QkFBQTtFQUNBLHFCQUFBO0VBQ0EsZ0JBQUE7RWVoUUEscUJBQUE7O0FBcEJGLFlBQVksT0F1Qlg7QUF2QkQsWUFBWSxPQXdCWDtFQUNDLGtCQUFBO0VBQ0EsVUFBQTs7QUExQkYsWUFBWSxPQTZCWDtFZnFQQyx3QkFBQTtFQUNBLHFCQUFBO0VBQ0EsZ0JBQUE7O0FlbFBGO0VmdXpCRSx5QkFBQTtFQUNBLHNCQUFBO0VBQ0EscUJBQUE7RUFDQSxpQkFBQTs7QWV2ekJGO0VBQ0MsY0FBQTtFQUNBLG9CQUFBO0VBQ0EsZ0JBQUE7RUFDQSxnQkFBQTs7QUFHQyxRQURELE9BQU0sU0FDSjtFQUNBLGVBQUE7RUFFQSxxQkFBQTtFQUNBLGdCQUFBO0VBQ0EsVUFBQTtFQUNBLHlCQUFBOztBQUdELFFBVkQsT0FBTSxTQVVKO0VBQ0EsYUFBQTs7QUFHRCxRQWRELE9BQU0sU0FjSjtFQUNBLFdBQUE7RUFDQSxpQkFBQTs7QUFHRCxRQW5CRCxPQUFNLFNBbUJKO0VBQ0EsWUFBQTtFQUNBLGdCQUFBOztBQTNCSCxRQU1DLE9BQU0sU0F3Qkw7RUFDQyxjQUFBOztBQU1ILGdCQUFnQjtBQUNoQixnQkFBZ0I7QUFDaEIsc0JBQXNCO0VBQ3JCLGFBQUE7O0FBR0QsZ0JBQWlCO0FBQ2pCLFFBQVMsT0FBTTtBQUNmLGdCQUFpQixTQUFRLFdBQVc7RUFDbkMsYUFBQTs7QUFHRCxHQUFHO0VBQ0YsVUFBQTtFQUNBLGdCQUFBO0VBQ0EsV0FBQTtFQUNBLGtCQUFBO0VBQ0EsY0FBQTtFQUNBLHlCQUFBOztBQU5ELEdBQUcsZ0JBUUY7RUFDQyxTQUFBOztBQVRGLEdBQUcsZ0JBWUY7RUFDQyxhQUFBOztBQUdELEdBaEJFLGdCQWdCRCxjQUFlO0VBQ2Ysa0JBQUE7RWZrWUMsT0FBQTtFQUFTLHlCQUFBO0VBQ1Ysb0JBQUE7RUFDQSxpQkFBQTtFQUNBLFlBQUE7O0FldFpGLEdBQUcsZ0JBdUJGLE9BQU87RUFDTixpQkFBQTs7QUFJRCxHQTVCRSxnQkE0QkE7RUFDRCxVQUFBO0VBQ0EsU0FBQTtFQUNBLDBCQUFBO0VBQ0EsV0FBQTs7QUFFQSxHQWxDQyxnQkE0QkEsS0FNQTtFQUNBLDJCQUFBOztBQUdELEdBdENDLGdCQTRCQSxLQVVBO0VBQ0Esd0JBQUE7O0FBWEYsR0E1QkUsZ0JBNEJBLEtBZUQ7RUFDQyxVQUFBO0VBQ0EsU0FBQTs7QUFJRCxHQWpEQyxnQkE0QkEsS0FxQkM7RUFDRCxrQkFBQTs7QUFFQSxHQXBEQSxnQkE0QkEsS0FxQkMsS0FHQTtFQUNBLGlCQUFBO0VBQ0EsaUJBQUE7RUFDQSxlQUFBOztBQUdELEdBMURBLGdCQTRCQSxLQXFCQyxLQVNBO0FBQ0QsR0EzREEsZ0JBNEJBLEtBcUJDLEtBVUE7RUFDQSw2QkFBQTs7QUFHRCxHQS9EQSxnQkE0QkEsS0FxQkMsS0FjQTtFQUNBLDBCQUFBOztBQUVBLEdBbEVELGdCQTRCQSxLQXFCQyxLQWNBLHNCQUdDO0VBQ0EsZ0JBQUE7O0FBSUYsR0F2RUEsZ0JBNEJBLEtBcUJDLEtBc0JBLG1CQUFtQjtBQUNwQixHQXhFQSxnQkE0QkEsS0FxQkMsS0F1QkEsbUJBQW1CO0FBQ3BCLEdBekVBLGdCQTRCQSxLQXFCQyxLQXdCQSx1QkFBdUI7QUFDeEIsR0ExRUEsZ0JBNEJBLEtBcUJDLEtBeUJBLHVCQUF1QjtFQUN2QixnQkFBQTtFQUNBLFVBQUE7O0FBR0QsR0EvRUEsZ0JBNEJBLEtBcUJDLEtBOEJBLG1CQUFtQjtBQUNwQixHQWhGQSxnQkE0QkEsS0FxQkMsS0ErQkEsdUJBQXVCO0FBQ3hCLEdBakZBLGdCQTRCQSxLQXFCQyxLQWdDQSxtQkFBbUIsT0FBTztBQUMzQixHQWxGQSxnQkE0QkEsS0FxQkMsS0FpQ0EsdUJBQXVCLE9BQU87RUFDOUIsbUJBQUE7O0FBR0QsR0F0RkEsZ0JBNEJBLEtBcUJDLEtBcUNBLG1CQUFtQjtBQUNwQixHQXZGQSxnQkE0QkEsS0FxQkMsS0FzQ0EsdUJBQXVCO0VBQ3ZCLG1CQUFBOztBQUdELEdBM0ZBLGdCQTRCQSxLQXFCQyxLQTBDQTtFQU1BLG1CQUFBOztBQUxBLEdBNUZELGdCQTRCQSxLQXFCQyxLQTBDQSx1QkFDQztFQUNBLFNBQVMsRUFBVDtFQUNBLFdBQUE7O0FBS0QsR0FuR0QsZ0JBNEJBLEtBcUJDLEtBMENBLHVCQVFFO0VBQ0QsZ0JBQUE7O0FBSUYsR0F4R0EsZ0JBNEJBLEtBcUJDLEtBdURDO0FBQUssR0F4R1AsZ0JBNEJBLEtBcUJDLEtBdURRO0VBQ1IsbUJBQUE7RUFDQSxzQkFBQTs7QUF6REYsR0FqREMsZ0JBNEJBLEtBcUJDLEtBNkREO0VBQ0MsaUJBQUE7RUFDQSxnQkFBQTs7QUEvREYsR0FqREMsZ0JBNEJBLEtBcUJDLEtBNkRELEVBSUM7RUFDQyxtQkFBQTtFQUNBLGVBQUE7O0FBbkVILEdBakRDLGdCQTRCQSxLQXFCQyxLQTZERCxFQUlDLEtBSUM7RUFDQyxtQkFBQTtFQUNBLGlCQUFBO0VBQ0EsZUFBQTtFQUNBLGdCQUFBO0VmNkNKLDBCQUFBO0VBQWlDLG9DQUFBO0VBQ2pDLHVCQUFBO0VBQThCLDZCQUFBO0VBQzlCLGtCQUFBO0VBQXlCLDRCQUFBO0VlN0NyQixzQkFBQTtFQUNBLGNBQUE7RUFDQSxpQkFBQTtFQUNBLFlBQUE7O0FBR0MsR0FsSUosZ0JBNEJBLEtBcUJDLEtBNkRELEVBSUMsS0FJQyxPQVdFLElBQUksV0FDSDtBQUNELEdBbklKLGdCQTRCQSxLQXFCQyxLQTZERCxFQUlDLEtBSUMsT0FXRSxJQUFJLFdBRUg7RUFDQSxXQUFBO0VBQ0EseUJBQUE7RUFDQSx5QkFBQTs7QUFJRixHQTFJSCxnQkE0QkEsS0FxQkMsS0E2REQsRUFJQyxLQUlDLE9Bb0JFLEtBQUs7RUFDTCxlQUFBO0Vmd1FKLE9BQUE7RUFBUyx5QkFBQTtFQUNWLG9CQUFBO0VBQ0EsaUJBQUE7RUFDQSxZQUFBOztBZXJXQSxHQWpEQyxnQkE0QkEsS0FxQkMsS0FrR0Q7RUFDQyx5QkFBQTtFQUNBLFVBQUE7RUFDQSxXQUFBOztBQXJHRixHQWpEQyxnQkE0QkEsS0FxQkMsS0FrR0QsR0FNQztFQUNDLGtCQUFBO0VBQ0EscUJBQUE7RUFHQSxjQUFBOztBQUVBLEdBaEtGLGdCQTRCQSxLQXFCQyxLQWtHRCxHQU1DLEdBT0U7RUFDQSwwQkFBQTs7QUFFQSxHQW5LSCxnQkE0QkEsS0FxQkMsS0FrR0QsR0FNQyxHQU9FLHNCQUdDO0VBQ0EsYUFBQTs7QUFKRixHQWhLRixnQkE0QkEsS0FxQkMsS0FrR0QsR0FNQyxHQU9FLHNCQU9BO0VmQUosMEJBQUE7RUFBaUMsb0NBQUE7RUFDakMsdUJBQUE7RUFBOEIsNkJBQUE7RUFDOUIsa0JBQUE7RUFBeUIsNEJBQUE7RWVBcEIsY0FBQTs7QUFFQSxHQTNLSixnQkE0QkEsS0FxQkMsS0FrR0QsR0FNQyxHQU9FLHNCQU9BLHFCQUlFO0VBQ0EsK0JBQUE7O0FBWkgsR0FoS0YsZ0JBNEJBLEtBcUJDLEtBa0dELEdBTUMsR0FPRSxzQkFPQSxxQkFRQztFQUNDLHNCQUFBOztBQUtILEdBckxGLGdCQTRCQSxLQXFCQyxLQWtHRCxHQU1DLEdBNEJHO0FBQUssR0FyTFQsZ0JBNEJBLEtBcUJDLEtBa0dELEdBTUMsR0E0QlU7RUFDUixtQkFBQTtFQUNBLHNCQUFBOztBQXRJSixHQWpEQyxnQkE0QkEsS0FxQkMsS0FrR0QsR0FNQyxHQWtDQztFQUNDLFVBQUE7O0FBM0lKLEdBakRDLGdCQTRCQSxLQXFCQyxLQWtHRCxHQU1DLEdBa0NDLEdBSUM7RUFDQyxVQUFBO0VBQ0EscUJBQUE7RUFDQSxlQUFBO0VBQ0EscUJBQUE7O0FBbEpMLEdBakRDLGdCQTRCQSxLQXFCQyxLQWtHRCxHQU1DLEdBa0NDLEdBSUMsR0FPQztFQUNDLGVBQUE7RUFDQSxtQkFBQTs7QUF2Sk4sR0FqREMsZ0JBNEJBLEtBcUJDLEtBa0dELEdBTUMsR0FrQ0MsR0FJQyxHQVlDO0FBMUpMLEdBakRDLGdCQTRCQSxLQXFCQyxLQWtHRCxHQU1DLEdBa0NDLEdBSUMsR0FhQztFQUNDLGVBQUE7RUFDQSxTQUFBO0VBQ0Esc0JBQUE7RUFDQSxzQkFBQTtFQ2xTUCxrQkFBQTtFQUNBLG1CQUFBO0VBRUEsb0JBQUE7RUFDQSxvQkFBQTs7QUR3U0EsR0ExTkUsZ0JBME5BO0VBQ0QsZ0JBQUE7O0FBSUQsR0EvTkUsZ0JBK05EO0VBQ0EsWUFBQTtFQUNBLFlBQUE7RUFDQSxnQkFBQTtFQUNBLGdCQUFBO0VBQ0Esa0JBQUE7O0FBTEQsR0EvTkUsZ0JBK05ELE1BT0E7RUN4VEQsa0JBQUE7RUFDQSxrQkFBQTtFQUVBLG9CQUFBO0VBQ0Esb0JBQUE7RURzVEUscUJBQUE7RUFDQSxtQkFBQTtFQUNBLDZCQUFBO0VBQ0EsYUFBQTtFQUNBLG9CQUFBOztBQWJGLEdBL05FLGdCQStORCxNQWdCQTtFQUVDLG9CQUFBO0VBQ0EsZ0JBQUE7O0FBbkJGLEdBL05FLGdCQStORCxNQWdCQSxHQUtDO0VBQ0MsaUJBQUE7RUFDQSxTQUFBO0VBQ0EscUJBQUE7O0FBR0QsR0ExUEEsZ0JBK05ELE1BZ0JBLEdBV0c7RUFDRCxrQkFBQTs7QUE1QkgsR0EvTkUsZ0JBK05ELE1BZ0JBLEdBZUM7RUFDQyxXQUFBO0VBQ0EsVUFBQTtFQUNBLFdBQUE7RUFDQSxpQkFBQTtFQUNBLDBCQUFBO0VBQ0EsbUJBQUE7RUFDQSxtQkFBQTtFZmxFRiw4QkFBQTtFQUNBLDJCQUFBO0VBQ0Esc0JBQUE7O0FlMEJELEdBL05FLGdCQStORCxNQWdCQSxHQWVDLEdBVUM7RUFDQyxnQkFBQTtFQUNBLFlBQUE7RUFDQSxzQkFBQTs7QUE1Q0osR0EvTkUsZ0JBK05ELE1BZ0JBLEdBZ0NDO0VBQ0MsaUJBQUE7RUFDQSxZQUFBO0VBQ0Esb0JBQUE7O0FBbkRILEdBL05FLGdCQStORCxNQWdCQSxHQWdDQyxHQUtDO0VBQ0Msa0JBQUE7O0FBR0QsR0F4UkQsZ0JBK05ELE1BZ0JBLEdBZ0NDLEdBU0U7RUFDQSxTQUFTLE9BQVQ7RUFDQSxjQUFBO0VBQ0EsV0FBQTtFQUNBLFlBQUE7RUFDQSxTQUFBO0VBQ0EsUUFBQTs7QUFPTDtBQUNBLGdCQUFpQixTQUFRO0FBQ3pCO0VmaElFLDBCQUFBO0VBQWlDLG9DQUFBO0VBQ2pDLHVCQUFBO0VBQThCLDZCQUFBO0VBQzlCLGtCQUFBO0VBQXlCLDRCQUFBO0VlZ0kxQixzQkFBQTtFQzNYQSxrQkFBQTtFQUNBLG1CQUFBO0VBRUEsb0JBQUE7RUFDQSxvQkFBQTs7QUQyWEQsZ0JBQWlCLFNBQVE7QUFDekIsV0FBWTtBQUNaO0VDallDLGtCQUFBO0VBQ0EsbUJBQUE7RUFFQSxvQkFBQTtFQUNBLG9CQUFBO0VEK1hBLGdKQUFBOztBQUdELFdBQVk7RUFDWCxZQUFBO0VBQ0EsVUFBQTtFQUNBLFNBQUE7O0FBR0QsZ0JBQWlCLFNBQVE7RWZ2SHZCLDhCQUFBO0VBQ0EsMkJBQUE7RUFDQSxzQkFBQTtFZXVIRCxjQUFBO0VBQ0EsYUFBQTtFQUNBLFdBQUE7RUFDQSxpQkFBQTtFQUNBLFNBQUE7RUFDQSxZQUFBO0VBQ0EsYUFBQTtFQUNBLGdCQUFBO0VBQ0EsV0FBQTtFQUNBLGdCQUFBO0VBQ0EsaUJBQUE7RUFDQSxjQUFBOztBQUdELGlCQUFpQjtFQUNoQixVQUFBO0VBQ0EsY0FBQTtFQzlaQSxlQUFBO0VBQ0EsbUJBQUE7RUFFQSxtQkFBQTtFQUNBLG9CQUFBO0VEa2FBLGdKQUFBOztBQVZELGlCQUFpQixpQkFJaEI7RUFDQyxjQUFBO0VBQ0EsbUJBQUE7O0FBTUQsaUJBWmdCLGlCQVlkLEtBQUk7RUFDTCxtQkFBQTs7O0FBS0Y7RUFDQyxvQkFBQTs7QUFERCx1QkFHQyxTQUFTO0VBQ1IsbUJBQUE7RUFDQSxpQkFBQTs7QUFMRix1QkFRQztFQUVDLFlBQUE7RUFHQSxnQkFBQTs7QUFJRjtFQUNDLGVBQUE7RUFDQSxNQUFBO0VBQ0EsV0FBQTtFQUNBLFdBQUE7O0FBSkQsZ0JBTUM7RUFDQyxpQkFBQTs7QUFQRixnQkFNQyxrQkFHQztFQUNDLGdCQUFBOztBQVZILGdCQU1DLGtCQUdDLE9BR0M7RUFDQyxnQkFBQTs7QUFPSjtFQUNDLGtCQUFBO0VBQ0EsVUFBQTtFQUNBLFVBQUE7O0FBRUEsS0FBQztFQUNBLGFBQUEifQ== */ diff --git a/admin/plugins/ckeditor/samples/img/github-top.png b/admin/plugins/ckeditor/samples/img/github-top.png deleted file mode 100644 index 7b9cbb1..0000000 Binary files a/admin/plugins/ckeditor/samples/img/github-top.png and /dev/null differ diff --git a/admin/plugins/ckeditor/samples/img/header-bg.png b/admin/plugins/ckeditor/samples/img/header-bg.png deleted file mode 100644 index a14166a..0000000 Binary files a/admin/plugins/ckeditor/samples/img/header-bg.png and /dev/null differ diff --git a/admin/plugins/ckeditor/samples/img/header-separator.png b/admin/plugins/ckeditor/samples/img/header-separator.png deleted file mode 100644 index 8c4fb9b..0000000 Binary files a/admin/plugins/ckeditor/samples/img/header-separator.png and /dev/null differ diff --git a/admin/plugins/ckeditor/samples/img/logo.png b/admin/plugins/ckeditor/samples/img/logo.png deleted file mode 100644 index 96d86e2..0000000 Binary files a/admin/plugins/ckeditor/samples/img/logo.png and /dev/null differ diff --git a/admin/plugins/ckeditor/samples/img/navigation-tip.png b/admin/plugins/ckeditor/samples/img/navigation-tip.png deleted file mode 100644 index 2286114..0000000 Binary files a/admin/plugins/ckeditor/samples/img/navigation-tip.png and /dev/null differ diff --git a/admin/plugins/ckeditor/samples/index.html b/admin/plugins/ckeditor/samples/index.html deleted file mode 100644 index 5f47351..0000000 --- a/admin/plugins/ckeditor/samples/index.html +++ /dev/null @@ -1,128 +0,0 @@ -<!DOCTYPE html> -<!-- -Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. -For licensing, see LICENSE.md or http://ckeditor.com/license ---> -<html> -<head> - <meta charset="utf-8"> - <title>CKEditor Sample</title> - <script src="../ckeditor.js"></script> - <script src="js/sample.js"></script> - <link rel="stylesheet" href="css/samples.css"> - <link rel="stylesheet" href="toolbarconfigurator/lib/codemirror/neo.css"> -</head> -<body id="main"> - -<nav class="navigation-a"> - <div class="grid-container"> - <ul class="navigation-a-left grid-width-70"> - <li><a href="http://ckeditor.com">Project Homepage</a></li> - <li><a href="https://github.com/ckeditor/ckeditor-dev/issues">I found a bug</a></li> - <li><a href="http://github.com/ckeditor/ckeditor-dev" class="icon-pos-right icon-navigation-a-github">Fork CKEditor on GitHub</a></li> - </ul> - <ul class="navigation-a-right grid-width-30"> - <li><a href="http://ckeditor.com/blog-list">CKEditor Blog</a></li> - </ul> - </div> -</nav> - -<header class="header-a"> - <div class="grid-container"> - <h1 class="header-a-logo grid-width-30"> - <a href="index.html"><img src="img/logo.png" alt="CKEditor Sample"></a> - </h1> - - <nav class="navigation-b grid-width-70"> - <ul> - <li><a href="index.html" class="button-a button-a-background">Start</a></li> - <li><a href="toolbarconfigurator/index.html" class="button-a">Toolbar configurator <span class="balloon-a balloon-a-nw">Edit your toolbar now!</span></a></li> - </ul> - </nav> - </div> -</header> - -<main> - <div class="adjoined-top"> - <div class="grid-container"> - <div class="content grid-width-100"> - <h1>Congratulations!</h1> - <p> - If you can see CKEditor below, it means that the installation succeeded. - You can now try out your new editor version, see its features, and when you are ready to move on, check some of the <a href="#sample-customize">most useful resources</a> recommended below. - </p> - </div> - </div> - </div> - <div class="adjoined-bottom"> - <div class="grid-container"> - <div class="grid-width-100"> - <div id="editor"> - <h1>Hello world!</h1> - <p>I'm an instance of <a href="http://ckeditor.com">CKEditor</a>.</p> - </div> - </div> - </div> - </div> - - <div class="grid-container"> - <div class="content grid-width-100"> - <section id="sample-customize"> - <h2>Customize Your Editor</h2> - <p>Modular build and <a href="http://docs.ckeditor.com/#!/guide/dev_configuration">numerous configuration options</a> give you nearly endless possibilities to customize CKEditor. Replace the content of your <code><a href="../config.js">config.js</a></code> file with the following code and refresh this page (<strong>remember to clear the browser cache</strong>)!</p> - <pre class="cm-s-neo CodeMirror"><code><span style="padding-right: 0.1px;"><span class="cm-variable">CKEDITOR</span>.<span class="cm-property">editorConfig</span> <span class="cm-operator">=</span> <span class="cm-keyword">function</span>( <span class="cm-def">config</span> ) {</span> -<span style="padding-right: 0.1px;"><span class="cm-tab"> </span><span class="cm-variable-2">config</span>.<span class="cm-property">language</span> <span class="cm-operator">=</span> <span class="cm-string">'es'</span>;</span> -<span style="padding-right: 0.1px;"><span class="cm-tab"> </span><span class="cm-variable-2">config</span>.<span class="cm-property">uiColor</span> <span class="cm-operator">=</span> <span class="cm-string">'#F7B42C'</span>;</span> -<span style="padding-right: 0.1px;"><span class="cm-tab"> </span><span class="cm-variable-2">config</span>.<span class="cm-property">height</span> <span class="cm-operator">=</span> <span class="cm-number">300</span>;</span> -<span style="padding-right: 0.1px;"><span class="cm-tab"> </span><span class="cm-variable-2">config</span>.<span class="cm-property">toolbarCanCollapse</span> <span class="cm-operator">=</span> <span class="cm-atom">true</span>;</span> -<span style="padding-right: 0.1px;">};</span></code></pre> - </section> - - <section> - <h2>Toolbar Configuration</h2> - <p>If you want to reorder toolbar buttons or remove some of them, check <a href="toolbarconfigurator/index.html">this handy tool</a>!</p> - </section> - - <section> - <h2>More Samples!</h2> - <p>Visit the <a href="http://sdk.ckeditor.com">CKEditor SDK</a> for a huge collection of samples showcasing editor features, with source code readily available to copy and use in your own implementation.</p> - </section> - - <section> - <h2>Developer's Guide</h2> - <p>The most important resource for all developers working with CKEditor, integrating it with their websites and applications, and customizing to their needs. You can start from here:</p> - <ul> - <li><a href="http://docs.ckeditor.com/#!/guide/dev_installation">Getting Started</a> &ndash; Explains most crucial editor concepts and practices as well as the installation process and integration with your website.</li> - <li><a href="http://docs.ckeditor.com/#!/guide/dev_advanced_installation">Advanced Installation Concepts</a> &ndash; Describes how to upgrade, install additional components (plugins, skins), or create a custom build.</li> - </ul> - <p>When you have the basics sorted out, feel free to browse some more advanced sections like:</p> - <ul> - <li><a href="http://docs.ckeditor.com/#!/guide/dev_features">Functionality Overview</a> &ndash; Descriptions and samples of various editor features.</li> - <li><a href="http://docs.ckeditor.com/#!/guide/plugin_sdk_intro">Plugin SDK</a>, <a href="http://docs.ckeditor.com/#!/guide/widget_sdk_intro">Widget SDK</a>, and <a href="http://docs.ckeditor.com/#!/guide/skin_sdk_intro">Skin SDK</a> &ndash; Useful when you want to create your own editor components.</li> - </ul> - </section> - - <section> - <h2>CKEditor JavaScript API</h2> - <p>CKEditor boasts a rich <a href="http://docs.ckeditor.com/#!/api">JavaScript API</a> that you can use to adjust the editor to your needs and integrate it with your website or application.</p> - </section> - </div> - </div> -</main> - -<footer class="footer-a grid-container"> - <div class="grid-container"> - <p class="grid-width-100"> - CKEditor &ndash; The text editor for the Internet &ndash; <a class="samples" href="http://ckeditor.com/">http://ckeditor.com</a> - </p> - <p class="grid-width-100" id="copy"> - Copyright &copy; 2003-2017, <a class="samples" href="http://cksource.com/">CKSource</a> &ndash; Frederico Knabben. All rights reserved. - </p> - </div> -</footer> -<script> - initSample(); -</script> - -</body> -</html> diff --git a/admin/plugins/ckeditor/samples/js/sample.js b/admin/plugins/ckeditor/samples/js/sample.js deleted file mode 100644 index 1e582b5..0000000 --- a/admin/plugins/ckeditor/samples/js/sample.js +++ /dev/null @@ -1,53 +0,0 @@ -/** - * Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. - * For licensing, see LICENSE.md or http://ckeditor.com/license - */ - -/* exported initSample */ - -if ( CKEDITOR.env.ie && CKEDITOR.env.version < 9 ) - CKEDITOR.tools.enableHtml5Elements( document ); - -// The trick to keep the editor in the sample quite small -// unless user specified own height. -CKEDITOR.config.height = 150; -CKEDITOR.config.width = 'auto'; - -var initSample = ( function() { - var wysiwygareaAvailable = isWysiwygareaAvailable(), - isBBCodeBuiltIn = !!CKEDITOR.plugins.get( 'bbcode' ); - - return function() { - var editorElement = CKEDITOR.document.getById( 'editor' ); - - // :((( - if ( isBBCodeBuiltIn ) { - editorElement.setHtml( - 'Hello world!\n\n' + - 'I\'m an instance of [url=http://ckeditor.com]CKEditor[/url].' - ); - } - - // Depending on the wysiwygare plugin availability initialize classic or inline editor. - if ( wysiwygareaAvailable ) { - CKEDITOR.replace( 'editor' ); - } else { - editorElement.setAttribute( 'contenteditable', 'true' ); - CKEDITOR.inline( 'editor' ); - - // TODO we can consider displaying some info box that - // without wysiwygarea the classic editor may not work. - } - }; - - function isWysiwygareaAvailable() { - // If in development mode, then the wysiwygarea must be available. - // Split REV into two strings so builder does not replace it :D. - if ( CKEDITOR.revision == ( '%RE' + 'V%' ) ) { - return true; - } - - return !!CKEDITOR.plugins.get( 'wysiwygarea' ); - } -} )(); - diff --git a/admin/plugins/ckeditor/samples/js/sf.js b/admin/plugins/ckeditor/samples/js/sf.js deleted file mode 100644 index 69dd77d..0000000 --- a/admin/plugins/ckeditor/samples/js/sf.js +++ /dev/null @@ -1,17 +0,0 @@ -/* - Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. - For licensing, see LICENSE.md or http://ckeditor.com/license -*/ -var SF=function(){function d(a){return(a=a.attributes?a.attributes.getNamedItem("class"):null)?a.value.split(" "):[]}function c(a){var e=document.createAttribute("class");e.value=a.join(" ");return e}var b={attachListener:function(a,e,b){if(a.addEventListener)a.addEventListener(e,b,!1);else if(a.attachEvent)a.attachEvent("on"+e,function(){b.apply(a,arguments)});else throw Error("Could not attach event.");}};b.indexOf=function(){var a=Array.prototype.indexOf;return"function"===a?function(e,b){return a.call(e, -b)}:function(a,b){for(var c=a.length,d=0;d<c;d++)if(a[d]===b)return d;return-1}}();b.accept=function(a,e){var c;a.children?(c=a.children,e(a)):"number"===typeof a.length&&(c=a);for(var d=c?c.length||0:0;d--;)b.accept(c[d],e)};b.getByClass=function(){var a=document.getElementsByClassName;return"function"===typeof a?function(e,b){"string"===typeof e&&(b=e,e=document);return a.call(e,b)}:function(a,c){"string"===typeof a&&(c=a,a=document.getElementsByTagName("html")[0]);var d=[];b.accept(a,function(a){b.classList.contains(a, -c)&&d.push(a)});return d}}();b.classList={};b.classList.add=function(a,b){var f=d(a);f.push(b);a.attributes.setNamedItem(c(f))};b.classList.remove=function(a,e){var f=d(a,e),n=b.indexOf(f,e);-1!==n&&(f.splice(n,1),a.attributes.setNamedItem(c(f)))};b.classList.contains=function(a,c){return-1!==b.indexOf(d(a),c)};b.classList.toggle=function(a,b){this.contains(a,b)?this.remove(a,b):this.add(a,b)};return b}();"use strict"; -(function(){function d(c){for(var b in c)delete c[b]}SF.modal=function(c){function b(a){27==a.keyCode&&f.close()}c.modalClass="modal content";c.closeClass="modal-close";c.modalStyles=d;c.closeStyles=d;var a=c.afterCreate,e=c.afterClose;c.afterCreate=function(c){a&&a(c);window.addEventListener("keydown",b)};c.afterClose=function(a){e&&e(a);window.removeEventListener("keydown",b)};var f=(new picoModal(c)).afterCreate(c.afterCreate).afterClose(c.afterClose);return f}})();"use strict"; -(function(){for(var d=SF.getByClass("toggler"),c=d.length;c--;)SF.attachListener(d[c],"click",function(){var b=SF.classList.contains(this,"icon-toggler-expanded")||SF.classList.contains(this,"icon-toggler-collapsed"),a=document.getElementById(this.getAttribute("data-for"));SF.classList.toggle(this,"collapsed");SF.classList.contains(this,"collapsed")?(SF.classList.add(a,"collapsed"),b&&(SF.classList.remove(this,"icon-toggler-expanded"),SF.classList.add(this,"icon-toggler-collapsed"))):(SF.classList.remove(a, -"collapsed"),b&&(SF.classList.remove(this,"icon-toggler-collapsed"),SF.classList.add(this,"icon-toggler-expanded")))})})();"use strict";(function(){for(var d=SF.getByClass("tree-a"),c=d.length;c--;)SF.attachListener(d[c],"click",function(b){b=b.target||b.srcElement;"H2"!==b.nodeName||SF.classList.contains(b,"tree-a-no-sub")||SF.classList.toggle(b,"tree-a-active")})})(); -(function(d,c){function b(a){return"object"===typeof Node?a instanceof Node:a&&"object"===typeof a&&"number"===typeof a.nodeType}function a(){var a=[];return{watch:a.push.bind(a),trigger:function(b){for(var c=!0,d={preventDefault:function(){c=!1}},e=0;e<a.length;e++)a[e](b,d);return c}}}function e(a){this.elem=a}function f(a,b){return e.div().clazz("pico-overlay").clazz(a("overlayClass","")).stylize({display:"block",position:"fixed",top:"0px",left:"0px",height:"100%",width:"100%",zIndex:1E4}).stylize(a("overlayStyles", -{opacity:.5,background:"#000"})).onClick(function(){a("overlayClose",!0)&&b()})}function n(a,b){var c=a("width","auto");"number"===typeof c&&(c=""+c+"px");return e.div().clazz("pico-content").clazz(a("modalClass","")).stylize({display:"block",position:"fixed",zIndex:10001,left:"50%",top:"50px",width:c,"-ms-transform":"translateX(-50%)","-moz-transform":"translateX(-50%)","-webkit-transform":"translateX(-50%)","-o-transform":"translateX(-50%)",transform:"translateX(-50%)"}).stylize(a("modalStyles", -{backgroundColor:"white",padding:"20px",borderRadius:"5px"})).html(a("content")).attr("role","dialog").onClick(function(a){(new e(a.target)).anyAncestor(function(a){return/\bpico-close\b/.test(a.elem.className)})&&b()})}function p(a){return function(){return a().elem}}function k(c){function e(a,b){var d=c[a];"function"===typeof d&&(d=d(b));return void 0===d?b:d}function k(){l().hide();m().hide();v.trigger(h)}function q(){w.trigger(h)&&k()}function g(a){return function(){a.apply(this,arguments);return h}} -function r(a){if(!t){var c=n(e,q),b=f(e,q),d;d=e("closeButton",!0)?c.child().html(e("closeHtml","\x26#xD7;")).clazz("pico-close").clazz(e("closeClass")).stylize(e("closeStyles",{borderRadius:"2px",cursor:"pointer",height:"15px",width:"15px",position:"absolute",top:"5px",right:"5px",fontSize:"16px",textAlign:"center",lineHeight:"15px",background:"#CCC"})):void 0;t={modal:c,overlay:b,close:d};x.trigger(h)}return t[a]}if("string"===typeof c||b(c))c={content:c};var x=a(),y=a(),z=a(),w=a(),v=a(),t,m=r.bind(d, -"modal"),l=r.bind(d,"overlay"),u=r.bind(d,"close"),h={modalElem:p(m),closeElem:p(u),overlayElem:p(l),show:function(){y.trigger(h)&&(l().show(),u(),m().show(),z.trigger(h));return this},close:g(q),forceClose:g(k),destroy:function(){m=m().destroy();l=l().destroy();u=void 0},options:function(a){c=a},afterCreate:g(x.watch),beforeShow:g(y.watch),afterShow:g(z.watch),beforeClose:g(w.watch),afterClose:g(v.watch)};return h}e.div=function(a){var b=c.createElement("div");(a||c.body).appendChild(b);return new e(b)}; -e.prototype={child:function(){return e.div(this.elem)},stylize:function(a){a=a||{};"undefined"!==typeof a.opacity&&(a.filter="alpha(opacity\x3d"+100*a.opacity+")");for(var b in a)a.hasOwnProperty(b)&&(this.elem.style[b]=a[b]);return this},clazz:function(a){this.elem.className+=" "+a;return this},html:function(a){b(a)?this.elem.appendChild(a):this.elem.innerHTML=a;return this},onClick:function(a){this.elem.addEventListener("click",a);return this},destroy:function(){c.body.removeChild(this.elem)},hide:function(){this.elem.style.display= -"none"},show:function(){this.elem.style.display="block"},attr:function(a,b){this.elem.setAttribute(a,b);return this},anyAncestor:function(a){for(var b=this.elem;b;){if(a(new e(b)))return!0;b=b.parentNode}return!1}};"function"===typeof d.define&&d.define.amd?d.define(function(){return k}):d.picoModal=k})(window,document); \ No newline at end of file diff --git a/admin/plugins/ckeditor/samples/old/ajax.html b/admin/plugins/ckeditor/samples/old/ajax.html deleted file mode 100644 index 852a086..0000000 --- a/admin/plugins/ckeditor/samples/old/ajax.html +++ /dev/null @@ -1,85 +0,0 @@ -<!DOCTYPE html> -<!-- -Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. -For licensing, see LICENSE.md or http://ckeditor.com/license ---> -<html> -<head> - <meta charset="utf-8"> - <title>Ajax &mdash; CKEditor Sample</title> - <script src="../../ckeditor.js"></script> - <link rel="stylesheet" href="sample.css"> - <script> - - var editor, html = ''; - - function createEditor() { - if ( editor ) - return; - - // Create a new editor inside the <div id="editor">, setting its value to html - var config = {}; - editor = CKEDITOR.appendTo( 'editor', config, html ); - } - - function removeEditor() { - if ( !editor ) - return; - - // Retrieve the editor contents. In an Ajax application, this data would be - // sent to the server or used in any other way. - document.getElementById( 'editorcontents' ).innerHTML = html = editor.getData(); - document.getElementById( 'contents' ).style.display = ''; - - // Destroy the editor. - editor.destroy(); - editor = null; - } - - </script> -</head> -<body> - <h1 class="samples"> - <a href="index.html">CKEditor Samples</a> &raquo; Create and Destroy Editor Instances for Ajax Applications - </h1> - <div class="warning deprecated"> - This sample is not maintained anymore. Check out its <a href="http://sdk.ckeditor.com/samples/saveajax.html">brand new version in CKEditor SDK</a>. - </div> - <div class="description"> - <p> - This sample shows how to create and destroy CKEditor instances on the fly. After the removal of CKEditor the content created inside the editing - area will be displayed in a <code>&lt;div&gt;</code> element. - </p> - <p> - For details of how to create this setup check the source code of this sample page - for JavaScript code responsible for the creation and destruction of a CKEditor instance. - </p> - </div> - <p>Click the buttons to create and remove a CKEditor instance.</p> - <p> - <input onclick="createEditor();" type="button" value="Create Editor"> - <input onclick="removeEditor();" type="button" value="Remove Editor"> - </p> - <!-- This div will hold the editor. --> - <div id="editor"> - </div> - <div id="contents" style="display: none"> - <p> - Edited Contents: - </p> - <!-- This div will be used to display the editor contents. --> - <div id="editorcontents"> - </div> - </div> - <div id="footer"> - <hr> - <p> - CKEditor - The text editor for the Internet - <a class="samples" href="http://ckeditor.com/">http://ckeditor.com</a> - </p> - <p id="copy"> - Copyright &copy; 2003-2017, <a class="samples" href="http://cksource.com/">CKSource</a> - Frederico - Knabben. All rights reserved. - </p> - </div> -</body> -</html> diff --git a/admin/plugins/ckeditor/samples/old/api.html b/admin/plugins/ckeditor/samples/old/api.html deleted file mode 100644 index 682a719..0000000 --- a/admin/plugins/ckeditor/samples/old/api.html +++ /dev/null @@ -1,210 +0,0 @@ -<!DOCTYPE html> -<!-- -Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. -For licensing, see LICENSE.md or http://ckeditor.com/license ---> -<html> -<head> - <meta charset="utf-8"> - <title>API Usage &mdash; CKEditor Sample</title> - <script src="../../ckeditor.js"></script> - <link href="sample.css" rel="stylesheet"> - <script> - -// The instanceReady event is fired, when an instance of CKEditor has finished -// its initialization. -CKEDITOR.on( 'instanceReady', function( ev ) { - // Show the editor name and description in the browser status bar. - document.getElementById( 'eMessage' ).innerHTML = 'Instance <code>' + ev.editor.name + '<\/code> loaded.'; - - // Show this sample buttons. - document.getElementById( 'eButtons' ).style.display = 'block'; -}); - -function InsertHTML() { - // Get the editor instance that we want to interact with. - var editor = CKEDITOR.instances.editor1; - var value = document.getElementById( 'htmlArea' ).value; - - // Check the active editing mode. - if ( editor.mode == 'wysiwyg' ) - { - // Insert HTML code. - // http://docs.ckeditor.com/#!/api/CKEDITOR.editor-method-insertHtml - editor.insertHtml( value ); - } - else - alert( 'You must be in WYSIWYG mode!' ); -} - -function InsertText() { - // Get the editor instance that we want to interact with. - var editor = CKEDITOR.instances.editor1; - var value = document.getElementById( 'txtArea' ).value; - - // Check the active editing mode. - if ( editor.mode == 'wysiwyg' ) - { - // Insert as plain text. - // http://docs.ckeditor.com/#!/api/CKEDITOR.editor-method-insertText - editor.insertText( value ); - } - else - alert( 'You must be in WYSIWYG mode!' ); -} - -function SetContents() { - // Get the editor instance that we want to interact with. - var editor = CKEDITOR.instances.editor1; - var value = document.getElementById( 'htmlArea' ).value; - - // Set editor contents (replace current contents). - // http://docs.ckeditor.com/#!/api/CKEDITOR.editor-method-setData - editor.setData( value ); -} - -function GetContents() { - // Get the editor instance that you want to interact with. - var editor = CKEDITOR.instances.editor1; - - // Get editor contents - // http://docs.ckeditor.com/#!/api/CKEDITOR.editor-method-getData - alert( editor.getData() ); -} - -function ExecuteCommand( commandName ) { - // Get the editor instance that we want to interact with. - var editor = CKEDITOR.instances.editor1; - - // Check the active editing mode. - if ( editor.mode == 'wysiwyg' ) - { - // Execute the command. - // http://docs.ckeditor.com/#!/api/CKEDITOR.editor-method-execCommand - editor.execCommand( commandName ); - } - else - alert( 'You must be in WYSIWYG mode!' ); -} - -function CheckDirty() { - // Get the editor instance that we want to interact with. - var editor = CKEDITOR.instances.editor1; - // Checks whether the current editor contents present changes when compared - // to the contents loaded into the editor at startup - // http://docs.ckeditor.com/#!/api/CKEDITOR.editor-method-checkDirty - alert( editor.checkDirty() ); -} - -function ResetDirty() { - // Get the editor instance that we want to interact with. - var editor = CKEDITOR.instances.editor1; - // Resets the "dirty state" of the editor (see CheckDirty()) - // http://docs.ckeditor.com/#!/api/CKEDITOR.editor-method-resetDirty - editor.resetDirty(); - alert( 'The "IsDirty" status has been reset' ); -} - -function Focus() { - CKEDITOR.instances.editor1.focus(); -} - -function onFocus() { - document.getElementById( 'eMessage' ).innerHTML = '<b>' + this.name + ' is focused </b>'; -} - -function onBlur() { - document.getElementById( 'eMessage' ).innerHTML = this.name + ' lost focus'; -} - - </script> - -</head> -<body> - <h1 class="samples"> - <a href="index.html">CKEditor Samples</a> &raquo; Using CKEditor JavaScript API - </h1> - <div class="warning deprecated"> - This sample is not maintained anymore. Check out its <a href="http://sdk.ckeditor.com/samples/api.html">brand new version in CKEditor SDK</a>. - </div> - <div class="description"> - <p> - This sample shows how to use the - <a class="samples" href="http://docs.ckeditor.com/#!/api/CKEDITOR.editor">CKEditor JavaScript API</a> - to interact with the editor at runtime. - </p> - <p> - For details on how to create this setup check the source code of this sample page. - </p> - </div> - - <!-- This <div> holds alert messages to be display in the sample page. --> - <div id="alerts"> - <noscript> - <p> - <strong>CKEditor requires JavaScript to run</strong>. In a browser with no JavaScript - support, like yours, you should still see the contents (HTML data) and you should - be able to edit it normally, without a rich editor interface. - </p> - </noscript> - </div> - <form action="../../../samples/sample_posteddata.php" method="post"> - <textarea cols="100" id="editor1" name="editor1" rows="10">&lt;p&gt;This is some &lt;strong&gt;sample text&lt;/strong&gt;. You are using &lt;a href="http://ckeditor.com/"&gt;CKEditor&lt;/a&gt;.&lt;/p&gt;</textarea> - - <script> - // Replace the <textarea id="editor1"> with an CKEditor instance. - CKEDITOR.replace( 'editor1', { - on: { - focus: onFocus, - blur: onBlur, - - // Check for availability of corresponding plugins. - pluginsLoaded: function( evt ) { - var doc = CKEDITOR.document, ed = evt.editor; - if ( !ed.getCommand( 'bold' ) ) - doc.getById( 'exec-bold' ).hide(); - if ( !ed.getCommand( 'link' ) ) - doc.getById( 'exec-link' ).hide(); - } - } - }); - </script> - - <p id="eMessage"> - </p> - - <div id="eButtons" style="display: none"> - <input id="exec-bold" onclick="ExecuteCommand('bold');" type="button" value="Execute &quot;bold&quot; Command"> - <input id="exec-link" onclick="ExecuteCommand('link');" type="button" value="Execute &quot;link&quot; Command"> - <input onclick="Focus();" type="button" value="Focus"> - <br><br> - <input onclick="InsertHTML();" type="button" value="Insert HTML"> - <input onclick="SetContents();" type="button" value="Set Editor Contents"> - <input onclick="GetContents();" type="button" value="Get Editor Contents (HTML)"> - <br> - <textarea cols="100" id="htmlArea" rows="3">&lt;h2&gt;Test&lt;/h2&gt;&lt;p&gt;This is some &lt;a href="/Test1.html"&gt;sample&lt;/a&gt; HTML code.&lt;/p&gt;</textarea> - <br> - <br> - <input onclick="InsertText();" type="button" value="Insert Text"> - <br> - <textarea cols="100" id="txtArea" rows="3"> First line with some leading whitespaces. - -Second line of text preceded by two line breaks.</textarea> - <br> - <br> - <input onclick="CheckDirty();" type="button" value="checkDirty()"> - <input onclick="ResetDirty();" type="button" value="resetDirty()"> - </div> - </form> - <div id="footer"> - <hr> - <p> - CKEditor - The text editor for the Internet - <a class="samples" href="http://ckeditor.com/">http://ckeditor.com</a> - </p> - <p id="copy"> - Copyright &copy; 2003-2017, <a class="samples" href="http://cksource.com/">CKSource</a> - Frederico - Knabben. All rights reserved. - </p> - </div> -</body> -</html> diff --git a/admin/plugins/ckeditor/samples/old/appendto.html b/admin/plugins/ckeditor/samples/old/appendto.html deleted file mode 100644 index a984704..0000000 --- a/admin/plugins/ckeditor/samples/old/appendto.html +++ /dev/null @@ -1,59 +0,0 @@ -<!DOCTYPE html> -<!-- -Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. -For licensing, see LICENSE.md or http://ckeditor.com/license ---> -<html> -<head> - <meta charset="utf-8"> - <title>Append To Page Element Using JavaScript Code &mdash; CKEditor Sample</title> - <script src="../../ckeditor.js"></script> - <link rel="stylesheet" href="sample.css"> -</head> -<body> - <h1 class="samples"> - <a href="index.html">CKEditor Samples</a> &raquo; Append To Page Element Using JavaScript Code - </h1> - <div class="warning deprecated"> - This sample is not maintained anymore. Check out the <a href="http://sdk.ckeditor.com/">brand new samples in CKEditor SDK</a>. - </div> - <div id="section1"> - <div class="description"> - <p> - The <code><a class="samples" href="http://docs.ckeditor.com/#!/api/CKEDITOR-method-appendTo">CKEDITOR.appendTo()</a></code> method serves to to place editors inside existing DOM elements. Unlike <code><a class="samples" href="http://docs.ckeditor.com/#!/api/CKEDITOR-method-replace">CKEDITOR.replace()</a></code>, - a target container to be replaced is no longer necessary. A new editor - instance is inserted directly wherever it is desired. - </p> -<pre class="samples">CKEDITOR.appendTo( '<em>container_id</em>', - { /* Configuration options to be used. */ } - 'Editor content to be used.' -);</pre> - </div> - <script> - - // This call can be placed at any point after the - // DOM element to append CKEditor to or inside the <head><script> - // in a window.onload event handler. - - // Append a CKEditor instance using the default configuration and the - // provided content to the <div> element of ID "section1". - CKEDITOR.appendTo( 'section1', - null, - '<p>This is some <strong>sample text</strong>. You are using <a href="http://ckeditor.com/">CKEditor</a>.</p>' - ); - - </script> - </div> - <br> - <div id="footer"> - <hr> - <p> - CKEditor - The text editor for the Internet - <a class="samples" href="http://ckeditor.com/">http://ckeditor.com</a> - </p> - <p id="copy"> - Copyright &copy; 2003-2017, <a class="samples" href="http://cksource.com/">CKSource</a> - Frederico - Knabben. All rights reserved. - </p> - </div> -</body> -</html> diff --git a/admin/plugins/ckeditor/samples/old/assets/inlineall/logo.png b/admin/plugins/ckeditor/samples/old/assets/inlineall/logo.png deleted file mode 100644 index b4d5979..0000000 Binary files a/admin/plugins/ckeditor/samples/old/assets/inlineall/logo.png and /dev/null differ diff --git a/admin/plugins/ckeditor/samples/old/assets/outputxhtml/outputxhtml.css b/admin/plugins/ckeditor/samples/old/assets/outputxhtml/outputxhtml.css deleted file mode 100644 index b81e1d7..0000000 --- a/admin/plugins/ckeditor/samples/old/assets/outputxhtml/outputxhtml.css +++ /dev/null @@ -1,204 +0,0 @@ -/* - * Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. - * For licensing, see LICENSE.md or http://ckeditor.com/license - * - * Styles used by the XHTML 1.1 sample page (xhtml.html). - */ - -/** - * Basic definitions for the editing area. - */ -body -{ - font-family: Arial, Verdana, sans-serif; - font-size: 80%; - color: #000000; - background-color: #ffffff; - padding: 5px; - margin: 0px; -} - -/** - * Core styles. - */ - -.Bold -{ - font-weight: bold; -} - -.Italic -{ - font-style: italic; -} - -.Underline -{ - text-decoration: underline; -} - -.StrikeThrough -{ - text-decoration: line-through; -} - -.Subscript -{ - vertical-align: sub; - font-size: smaller; -} - -.Superscript -{ - vertical-align: super; - font-size: smaller; -} - -/** - * Font faces. - */ - -.FontComic -{ - font-family: 'Comic Sans MS'; -} - -.FontCourier -{ - font-family: 'Courier New'; -} - -.FontTimes -{ - font-family: 'Times New Roman'; -} - -/** - * Font sizes. - */ - -.FontSmaller -{ - font-size: smaller; -} - -.FontLarger -{ - font-size: larger; -} - -.FontSmall -{ - font-size: 8pt; -} - -.FontBig -{ - font-size: 14pt; -} - -.FontDouble -{ - font-size: 200%; -} - -/** - * Font colors. - */ -.FontColor1 -{ - color: #ff9900; -} - -.FontColor2 -{ - color: #0066cc; -} - -.FontColor3 -{ - color: #ff0000; -} - -.FontColor1BG -{ - background-color: #ff9900; -} - -.FontColor2BG -{ - background-color: #0066cc; -} - -.FontColor3BG -{ - background-color: #ff0000; -} - -/** - * Indentation. - */ - -.Indent1 -{ - margin-left: 40px; -} - -.Indent2 -{ - margin-left: 80px; -} - -.Indent3 -{ - margin-left: 120px; -} - -/** - * Alignment. - */ - -.JustifyLeft -{ - text-align: left; -} - -.JustifyRight -{ - text-align: right; -} - -.JustifyCenter -{ - text-align: center; -} - -.JustifyFull -{ - text-align: justify; -} - -/** - * Other. - */ - -code -{ - font-family: courier, monospace; - background-color: #eeeeee; - padding-left: 1px; - padding-right: 1px; - border: #c0c0c0 1px solid; -} - -kbd -{ - padding: 0px 1px 0px 1px; - border-width: 1px 2px 2px 1px; - border-style: solid; -} - -blockquote -{ - color: #808080; -} diff --git a/admin/plugins/ckeditor/samples/old/assets/posteddata.php b/admin/plugins/ckeditor/samples/old/assets/posteddata.php deleted file mode 100644 index ca43cc9..0000000 --- a/admin/plugins/ckeditor/samples/old/assets/posteddata.php +++ /dev/null @@ -1,59 +0,0 @@ -<!DOCTYPE html> -<?php -/* -Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. -For licensing, see LICENSE.md or http://ckeditor.com/license -*/ -?> -<html> -<head> - <meta charset="utf-8"> - <title>Sample &mdash; CKEditor</title> - <link rel="stylesheet" href="sample.css"> -</head> -<body> - <h1 class="samples"> - CKEditor &mdash; Posted Data - </h1> - <table border="1" cellspacing="0" id="outputSample"> - <colgroup><col width="120"></colgroup> - <thead> - <tr> - <th>Field&nbsp;Name</th> - <th>Value</th> - </tr> - </thead> -<?php - -if (!empty($_POST)) -{ - foreach ( $_POST as $key => $value ) - { - if ( ( !is_string($value) && !is_numeric($value) ) || !is_string($key) ) - continue; - - if ( get_magic_quotes_gpc() ) - $value = htmlspecialchars( stripslashes((string)$value) ); - else - $value = htmlspecialchars( (string)$value ); -?> - <tr> - <th style="vertical-align: top"><?php echo htmlspecialchars( (string)$key ); ?></th> - <td><pre class="samples"><?php echo $value; ?></pre></td> - </tr> - <?php - } -} -?> - </table> - <div id="footer"> - <hr> - <p> - CKEditor - The text editor for the Internet - <a class="samples" href="http://ckeditor.com/">http://ckeditor.com</a> - </p> - <p id="copy"> - Copyright &copy; 2003-2017, <a class="samples" href="http://cksource.com/">CKSource</a> - Frederico Knabben. All rights reserved. - </p> - </div> -</body> -</html> diff --git a/admin/plugins/ckeditor/samples/old/assets/sample.jpg b/admin/plugins/ckeditor/samples/old/assets/sample.jpg deleted file mode 100644 index 9498271..0000000 Binary files a/admin/plugins/ckeditor/samples/old/assets/sample.jpg and /dev/null differ diff --git a/admin/plugins/ckeditor/samples/old/assets/uilanguages/languages.js b/admin/plugins/ckeditor/samples/old/assets/uilanguages/languages.js deleted file mode 100644 index 3208ff4..0000000 --- a/admin/plugins/ckeditor/samples/old/assets/uilanguages/languages.js +++ /dev/null @@ -1,7 +0,0 @@ -/* - Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. - For licensing, see LICENSE.md or http://ckeditor.com/license -*/ -var CKEDITOR_LANGS=function(){var c={af:"Afrikaans",ar:"Arabic",az:"Azerbaijani",bg:"Bulgarian",bn:"Bengali/Bangla",bs:"Bosnian",ca:"Catalan",cs:"Czech",cy:"Welsh",da:"Danish",de:"German","de-ch":"German (Switzerland)",el:"Greek",en:"English","en-au":"English (Australia)","en-ca":"English (Canadian)","en-gb":"English (United Kingdom)",eo:"Esperanto",es:"Spanish","es-mx":"Spanish (Mexico)",et:"Estonian",eu:"Basque",fa:"Persian",fi:"Finnish",fo:"Faroese",fr:"French","fr-ca":"French (Canada)",gl:"Galician", -gu:"Gujarati",he:"Hebrew",hi:"Hindi",hr:"Croatian",hu:"Hungarian",id:"Indonesian",is:"Icelandic",it:"Italian",ja:"Japanese",ka:"Georgian",km:"Khmer",ko:"Korean",ku:"Kurdish",lt:"Lithuanian",lv:"Latvian",mk:"Macedonian",mn:"Mongolian",ms:"Malay",nb:"Norwegian Bokmal",nl:"Dutch",no:"Norwegian",oc:"Occitan",pl:"Polish",pt:"Portuguese (Portugal)","pt-br":"Portuguese (Brazil)",ro:"Romanian",ru:"Russian",si:"Sinhala",sk:"Slovak",sq:"Albanian",sl:"Slovenian",sr:"Serbian (Cyrillic)","sr-latn":"Serbian (Latin)", -sv:"Swedish",th:"Thai",tr:"Turkish",tt:"Tatar",ug:"Uighur",uk:"Ukrainian",vi:"Vietnamese",zh:"Chinese Traditional","zh-cn":"Chinese Simplified"},b=[],a;for(a in CKEDITOR.lang.languages)b.push({code:a,name:c[a]||a});b.sort(function(a,b){return a.name<b.name?-1:1});return b}(); \ No newline at end of file diff --git a/admin/plugins/ckeditor/samples/old/datafiltering.html b/admin/plugins/ckeditor/samples/old/datafiltering.html deleted file mode 100644 index dd78ba5..0000000 --- a/admin/plugins/ckeditor/samples/old/datafiltering.html +++ /dev/null @@ -1,508 +0,0 @@ -<!DOCTYPE html> -<!-- -Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. -For licensing, see LICENSE.md or http://ckeditor.com/license ---> -<html> -<head> - <meta charset="utf-8"> - <title>Data Filtering &mdash; CKEditor Sample</title> - <script src="../../ckeditor.js"></script> - <link rel="stylesheet" href="sample.css"> - <script> - // Remove advanced tabs for all editors. - CKEDITOR.config.removeDialogTabs = 'image:advanced;link:advanced;flash:advanced;creatediv:advanced;editdiv:advanced'; - </script> -</head> -<body> - <h1 class="samples"> - <a href="index.html">CKEditor Samples</a> &raquo; Data Filtering and Features Activation - </h1> - <div class="warning deprecated"> - This sample is not maintained anymore. Check out its <a href="http://sdk.ckeditor.com/samples/acf.html">brand new version in CKEditor SDK</a>. - </div> - <div class="description"> - <p> - This sample page demonstrates the idea of Advanced Content Filter - (<abbr title="Advanced Content Filter">ACF</abbr>), a sophisticated - tool that takes control over what kind of data is accepted by the editor and what - kind of output is produced. - </p> - <h2>When and what is being filtered?</h2> - <p> - <abbr title="Advanced Content Filter">ACF</abbr> controls - <strong>every single source of data</strong> that comes to the editor. - It process both HTML that is inserted manually (i.e. pasted by the user) - and programmatically like: - </p> -<pre class="samples"> -editor.setData( '&lt;p&gt;Hello world!&lt;/p&gt;' ); -</pre> - <p> - <abbr title="Advanced Content Filter">ACF</abbr> discards invalid, - useless HTML tags and attributes so the editor remains "clean" during - runtime. <abbr title="Advanced Content Filter">ACF</abbr> behaviour - can be configured and adjusted for a particular case to prevent the - output HTML (i.e. in CMS systems) from being polluted. - - This kind of filtering is a first, client-side line of defense - against "<a href="http://en.wikipedia.org/wiki/Tag_soup">tag soups</a>", - the tool that precisely restricts which tags, attributes and styles - are allowed (desired). When properly configured, <abbr title="Advanced Content Filter">ACF</abbr> - is an easy and fast way to produce a high-quality, intentionally filtered HTML. - </p> - - <h3>How to configure or disable ACF?</h3> - <p> - Advanced Content Filter is enabled by default, working in "automatic mode", yet - it provides a set of easy rules that allow adjusting filtering rules - and disabling the entire feature when necessary. The config property - responsible for this feature is <code><a class="samples" - href="http://docs.ckeditor.com/#!/api/CKEDITOR.config-cfg-allowedContent">config.allowedContent</a></code>. - </p> - <p> - By "automatic mode" is meant that loaded plugins decide which kind - of content is enabled and which is not. For example, if the link - plugin is loaded it implies that <code>&lt;a&gt;</code> tag is - automatically allowed. Each plugin is given a set - of predefined <abbr title="Advanced Content Filter">ACF</abbr> rules - that control the editor until <code><a class="samples" - href="http://docs.ckeditor.com/#!/api/CKEDITOR.config-cfg-allowedContent"> - config.allowedContent</a></code> - is defined manually. - </p> - <p> - Let's assume our intention is to restrict the editor to accept (produce) <strong>paragraphs - only: no attributes, no styles, no other tags</strong>. - With <abbr title="Advanced Content Filter">ACF</abbr> - this is very simple. Basically set <code><a class="samples" - href="http://docs.ckeditor.com/#!/api/CKEDITOR.config-cfg-allowedContent"> - config.allowedContent</a></code> to <code>'p'</code>: - </p> -<pre class="samples"> -var editor = CKEDITOR.replace( <em>textarea_id</em>, { - <strong>allowedContent: 'p'</strong> -} ); -</pre> - <p> - Now try to play with allowed content: - </p> -<pre class="samples"> -// Trying to insert disallowed tag and attribute. -editor.setData( '&lt;p <strong>style="color: red"</strong>&gt;Hello <strong>&lt;em&gt;world&lt;/em&gt;</strong>!&lt;/p&gt;' ); -alert( editor.getData() ); - -// Filtered data is returned. -"&lt;p&gt;Hello world!&lt;/p&gt;" -</pre> - <p> - What happened? Since <code>config.allowedContent: 'p'</code> is set the editor assumes - that only plain <code>&lt;p&gt;</code> are accepted. Nothing more. This is why - <code>style</code> attribute and <code>&lt;em&gt;</code> tag are gone. The same - filtering would happen if we pasted disallowed HTML into this editor. - </p> - <p> - This is just a small sample of what <abbr title="Advanced Content Filter">ACF</abbr> - can do. To know more, please refer to the sample section below and - <a href="http://docs.ckeditor.com/#!/guide/dev_advanced_content_filter">the official Advanced Content Filter guide</a>. - </p> - <p> - You may, of course, want CKEditor to avoid filtering of any kind. - To get rid of <abbr title="Advanced Content Filter">ACF</abbr>, - basically set <code><a class="samples" - href="http://docs.ckeditor.com/#!/api/CKEDITOR.config-cfg-allowedContent"> - config.allowedContent</a></code> to <code>true</code> like this: - </p> -<pre class="samples"> -CKEDITOR.replace( <em>textarea_id</em>, { - <strong>allowedContent: true</strong> -} ); -</pre> - - <h2>Beyond data flow: Features activation</h2> - <p> - <abbr title="Advanced Content Filter">ACF</abbr> is far more than - <abbr title="Input/Output">I/O</abbr> control: the entire - <abbr title="User Interface">UI</abbr> of the editor is adjusted to what - filters restrict. For example: if <code>&lt;a&gt;</code> tag is - <strong>disallowed</strong> - by <abbr title="Advanced Content Filter">ACF</abbr>, - then accordingly <code>link</code> command, toolbar button and link dialog - are also disabled. Editor is smart: it knows which features must be - removed from the interface to match filtering rules. - </p> - <p> - CKEditor can be far more specific. If <code>&lt;a&gt;</code> tag is - <strong>allowed</strong> by filtering rules to be used but it is restricted - to have only one attribute (<code>href</code>) - <code>config.allowedContent = 'a[!href]'</code>, then - "Target" tab of the link dialog is automatically disabled as <code>target</code> - attribute isn't included in <abbr title="Advanced Content Filter">ACF</abbr> rules - for <code>&lt;a&gt;</code>. This behaviour applies to dialog fields, context - menus and toolbar buttons. - </p> - - <h2>Sample configurations</h2> - <p> - There are several editor instances below that present different - <abbr title="Advanced Content Filter">ACF</abbr> setups. <strong>All of them, - except the inline instance, share the same HTML content</strong> to visualize - how different filtering rules affect the same input data. - </p> - </div> - - <div> - <label for="editor1"> - Editor 1: - </label> - <div class="description"> - <p> - This editor is using default configuration ("automatic mode"). It means that - <code><a class="samples" - href="http://docs.ckeditor.com/#!/api/CKEDITOR.config-cfg-allowedContent"> - config.allowedContent</a></code> is defined by loaded plugins. - Each plugin extends filtering rules to make it's own associated content - available for the user. - </p> - </div> - <textarea cols="80" id="editor1" name="editor1" rows="10"> - &lt;h1&gt;&lt;img alt=&quot;Saturn V carrying Apollo 11&quot; class=&quot;right&quot; src=&quot;assets/sample.jpg&quot;/&gt; Apollo 11&lt;/h1&gt; &lt;p&gt;&lt;b&gt;Apollo 11&lt;/b&gt; was the spaceflight that landed the first humans, Americans &lt;a href=&quot;http://en.wikipedia.org/wiki/Neil_Armstrong&quot; title=&quot;Neil Armstrong&quot;&gt;Neil Armstrong&lt;/a&gt; and &lt;a href=&quot;http://en.wikipedia.org/wiki/Buzz_Aldrin&quot; title=&quot;Buzz Aldrin&quot;&gt;Buzz Aldrin&lt;/a&gt;, on the Moon on July 20, 1969, at 20:18 UTC. Armstrong became the first to step onto the lunar surface 6 hours later on July 21 at 02:56 UTC.&lt;/p&gt; &lt;p&gt;Armstrong spent about &lt;s&gt;three and a half&lt;/s&gt; two and a half hours outside the spacecraft, Aldrin slightly less; and together they collected 47.5 pounds (21.5&amp;nbsp;kg) of lunar material for return to Earth. A third member of the mission, &lt;a href=&quot;http://en.wikipedia.org/wiki/Michael_Collins_(astronaut)&quot; title=&quot;Michael Collins (astronaut)&quot;&gt;Michael Collins&lt;/a&gt;, piloted the &lt;a href=&quot;http://en.wikipedia.org/wiki/Apollo_Command/Service_Module&quot; title=&quot;Apollo Command/Service Module&quot;&gt;command&lt;/a&gt; spacecraft alone in lunar orbit until Armstrong and Aldrin returned to it for the trip back to Earth.&lt;/p&gt; &lt;h2&gt;Broadcasting and &lt;em&gt;quotes&lt;/em&gt; &lt;a id=&quot;quotes&quot; name=&quot;quotes&quot;&gt;&lt;/a&gt;&lt;/h2&gt; &lt;p&gt;Broadcast on live TV to a world-wide audience, Armstrong stepped onto the lunar surface and described the event as:&lt;/p&gt; &lt;blockquote&gt;&lt;p&gt;One small step for [a] man, one giant leap for mankind.&lt;/p&gt;&lt;/blockquote&gt; &lt;p&gt;Apollo 11 effectively ended the &lt;a href=&quot;http://en.wikipedia.org/wiki/Space_Race&quot; title=&quot;Space Race&quot;&gt;Space Race&lt;/a&gt; and fulfilled a national goal proposed in 1961 by the late U.S. President &lt;a href=&quot;http://en.wikipedia.org/wiki/John_F._Kennedy&quot; title=&quot;John F. Kennedy&quot;&gt;John F. Kennedy&lt;/a&gt; in a speech before the United States Congress:&lt;/p&gt; &lt;blockquote&gt;&lt;p&gt;[...] before this decade is out, of landing a man on the Moon and returning him safely to the Earth.&lt;/p&gt;&lt;/blockquote&gt; &lt;h2&gt;Technical details &lt;a id=&quot;tech-details&quot; name=&quot;tech-details&quot;&gt;&lt;/a&gt;&lt;/h2&gt; &lt;table align=&quot;right&quot; border=&quot;1&quot; bordercolor=&quot;#ccc&quot; cellpadding=&quot;5&quot; cellspacing=&quot;0&quot; style=&quot;border-collapse:collapse;margin:10px 0 10px 15px;&quot;&gt; &lt;caption&gt;&lt;strong&gt;Mission crew&lt;/strong&gt;&lt;/caption&gt; &lt;thead&gt; &lt;tr&gt; &lt;th scope=&quot;col&quot;&gt;Position&lt;/th&gt; &lt;th scope=&quot;col&quot;&gt;Astronaut&lt;/th&gt; &lt;/tr&gt; &lt;/thead&gt; &lt;tbody&gt; &lt;tr&gt; &lt;td&gt;Commander&lt;/td&gt; &lt;td&gt;Neil A. Armstrong&lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td&gt;Command Module Pilot&lt;/td&gt; &lt;td&gt;Michael Collins&lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td&gt;Lunar Module Pilot&lt;/td&gt; &lt;td&gt;Edwin &amp;quot;Buzz&amp;quot; E. Aldrin, Jr.&lt;/td&gt; &lt;/tr&gt; &lt;/tbody&gt; &lt;/table&gt; &lt;p&gt;Launched by a &lt;strong&gt;Saturn V&lt;/strong&gt; rocket from &lt;a href=&quot;http://en.wikipedia.org/wiki/Kennedy_Space_Center&quot; title=&quot;Kennedy Space Center&quot;&gt;Kennedy Space Center&lt;/a&gt; in Merritt Island, Florida on July 16, Apollo 11 was the fifth manned mission of &lt;a href=&quot;http://en.wikipedia.org/wiki/NASA&quot; title=&quot;NASA&quot;&gt;NASA&lt;/a&gt;&amp;#39;s Apollo program. The Apollo spacecraft had three parts:&lt;/p&gt; &lt;ol&gt; &lt;li&gt;&lt;strong&gt;Command Module&lt;/strong&gt; with a cabin for the three astronauts which was the only part which landed back on Earth&lt;/li&gt; &lt;li&gt;&lt;strong&gt;Service Module&lt;/strong&gt; which supported the Command Module with propulsion, electrical power, oxygen and water&lt;/li&gt; &lt;li&gt;&lt;strong&gt;Lunar Module&lt;/strong&gt; for landing on the Moon.&lt;/li&gt; &lt;/ol&gt; &lt;p&gt;After being sent to the Moon by the Saturn V&amp;#39;s upper stage, the astronauts separated the spacecraft from it and travelled for three days until they entered into lunar orbit. Armstrong and Aldrin then moved into the Lunar Module and landed in the &lt;a href=&quot;http://en.wikipedia.org/wiki/Mare_Tranquillitatis&quot; title=&quot;Mare Tranquillitatis&quot;&gt;Sea of Tranquility&lt;/a&gt;. They stayed a total of about 21 and a half hours on the lunar surface. After lifting off in the upper part of the Lunar Module and rejoining Collins in the Command Module, they returned to Earth and landed in the &lt;a href=&quot;http://en.wikipedia.org/wiki/Pacific_Ocean&quot; title=&quot;Pacific Ocean&quot;&gt;Pacific Ocean&lt;/a&gt; on July 24.&lt;/p&gt; &lt;hr/&gt; &lt;p style=&quot;text-align: right;&quot;&gt;&lt;small&gt;Source: &lt;a href=&quot;http://en.wikipedia.org/wiki/Apollo_11&quot;&gt;Wikipedia.org&lt;/a&gt;&lt;/small&gt;&lt;/p&gt; - </textarea> - - <script> - - CKEDITOR.replace( 'editor1' ); - - </script> - </div> - - <br> - - <div> - <label for="editor2"> - Editor 2: - </label> - <div class="description"> - <p> - This editor is using a custom configuration for - <abbr title="Advanced Content Filter">ACF</abbr>: - </p> -<pre class="samples"> -CKEDITOR.replace( 'editor2', { - allowedContent: - 'h1 h2 h3 p blockquote strong em;' + - 'a[!href];' + - 'img(left,right)[!src,alt,width,height];' + - 'table tr th td caption;' + - 'span{!font-family};' +' - 'span{!color};' + - 'span(!marker);' + - 'del ins' -} ); -</pre> - <p> - The following rules may require additional explanation: - </p> - <ul> - <li> - <code>h1 h2 h3 p blockquote strong em</code> - These tags - are accepted by the editor. Any tag attributes will be discarded. - </li> - <li> - <code>a[!href]</code> - <code>href</code> attribute is obligatory - for <code>&lt;a&gt;</code> tag. Tags without this attribute - are disarded. No other attribute will be accepted. - </li> - <li> - <code>img(left,right)[!src,alt,width,height]</code> - <code>src</code> - attribute is obligatory for <code>&lt;img&gt;</code> tag. - <code>alt</code>, <code>width</code>, <code>height</code> - and <code>class</code> attributes are accepted but - <code>class</code> must be either <code>class="left"</code> - or <code>class="right"</code> - </li> - <li> - <code>table tr th td caption</code> - These tags - are accepted by the editor. Any tag attributes will be discarded. - </li> - <li> - <code>span{!font-family}</code>, <code>span{!color}</code>, - <code>span(!marker)</code> - <code>&lt;span&gt;</code> tags - will be accepted if either <code>font-family</code> or - <code>color</code> style is set or <code>class="marker"</code> - is present. - </li> - <li> - <code>del ins</code> - These tags - are accepted by the editor. Any tag attributes will be discarded. - </li> - </ul> - <p> - Please note that <strong><abbr title="User Interface">UI</abbr> of the - editor is different</strong>. It's a response to what happened to the filters. - Since <code>text-align</code> isn't allowed, the align toolbar is gone. - The same thing happened to subscript/superscript, strike, underline - (<code>&lt;u&gt;</code>, <code>&lt;sub&gt;</code>, <code>&lt;sup&gt;</code> - are disallowed by <code><a class="samples" - href="http://docs.ckeditor.com/#!/api/CKEDITOR.config-cfg-allowedContent"> - config.allowedContent</a></code>) and many other buttons. - </p> - </div> - <textarea cols="80" id="editor2" name="editor2" rows="10"> - &lt;h1&gt;&lt;img alt=&quot;Saturn V carrying Apollo 11&quot; class=&quot;right&quot; src=&quot;assets/sample.jpg&quot;/&gt; Apollo 11&lt;/h1&gt; &lt;p&gt;&lt;b&gt;Apollo 11&lt;/b&gt; was the spaceflight that landed the first humans, Americans &lt;a href=&quot;http://en.wikipedia.org/wiki/Neil_Armstrong&quot; title=&quot;Neil Armstrong&quot;&gt;Neil Armstrong&lt;/a&gt; and &lt;a href=&quot;http://en.wikipedia.org/wiki/Buzz_Aldrin&quot; title=&quot;Buzz Aldrin&quot;&gt;Buzz Aldrin&lt;/a&gt;, on the Moon on July 20, 1969, at 20:18 UTC. Armstrong became the first to step onto the lunar surface 6 hours later on July 21 at 02:56 UTC.&lt;/p&gt; &lt;p&gt;Armstrong spent about &lt;s&gt;three and a half&lt;/s&gt; two and a half hours outside the spacecraft, Aldrin slightly less; and together they collected 47.5 pounds (21.5&amp;nbsp;kg) of lunar material for return to Earth. A third member of the mission, &lt;a href=&quot;http://en.wikipedia.org/wiki/Michael_Collins_(astronaut)&quot; title=&quot;Michael Collins (astronaut)&quot;&gt;Michael Collins&lt;/a&gt;, piloted the &lt;a href=&quot;http://en.wikipedia.org/wiki/Apollo_Command/Service_Module&quot; title=&quot;Apollo Command/Service Module&quot;&gt;command&lt;/a&gt; spacecraft alone in lunar orbit until Armstrong and Aldrin returned to it for the trip back to Earth.&lt;/p&gt; &lt;h2&gt;Broadcasting and &lt;em&gt;quotes&lt;/em&gt; &lt;a id=&quot;quotes&quot; name=&quot;quotes&quot;&gt;&lt;/a&gt;&lt;/h2&gt; &lt;p&gt;Broadcast on live TV to a world-wide audience, Armstrong stepped onto the lunar surface and described the event as:&lt;/p&gt; &lt;blockquote&gt;&lt;p&gt;One small step for [a] man, one giant leap for mankind.&lt;/p&gt;&lt;/blockquote&gt; &lt;p&gt;Apollo 11 effectively ended the &lt;a href=&quot;http://en.wikipedia.org/wiki/Space_Race&quot; title=&quot;Space Race&quot;&gt;Space Race&lt;/a&gt; and fulfilled a national goal proposed in 1961 by the late U.S. President &lt;a href=&quot;http://en.wikipedia.org/wiki/John_F._Kennedy&quot; title=&quot;John F. Kennedy&quot;&gt;John F. Kennedy&lt;/a&gt; in a speech before the United States Congress:&lt;/p&gt; &lt;blockquote&gt;&lt;p&gt;[...] before this decade is out, of landing a man on the Moon and returning him safely to the Earth.&lt;/p&gt;&lt;/blockquote&gt; &lt;h2&gt;Technical details &lt;a id=&quot;tech-details&quot; name=&quot;tech-details&quot;&gt;&lt;/a&gt;&lt;/h2&gt; &lt;table align=&quot;right&quot; border=&quot;1&quot; bordercolor=&quot;#ccc&quot; cellpadding=&quot;5&quot; cellspacing=&quot;0&quot; style=&quot;border-collapse:collapse;margin:10px 0 10px 15px;&quot;&gt; &lt;caption&gt;&lt;strong&gt;Mission crew&lt;/strong&gt;&lt;/caption&gt; &lt;thead&gt; &lt;tr&gt; &lt;th scope=&quot;col&quot;&gt;Position&lt;/th&gt; &lt;th scope=&quot;col&quot;&gt;Astronaut&lt;/th&gt; &lt;/tr&gt; &lt;/thead&gt; &lt;tbody&gt; &lt;tr&gt; &lt;td&gt;Commander&lt;/td&gt; &lt;td&gt;Neil A. Armstrong&lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td&gt;Command Module Pilot&lt;/td&gt; &lt;td&gt;Michael Collins&lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td&gt;Lunar Module Pilot&lt;/td&gt; &lt;td&gt;Edwin &amp;quot;Buzz&amp;quot; E. Aldrin, Jr.&lt;/td&gt; &lt;/tr&gt; &lt;/tbody&gt; &lt;/table&gt; &lt;p&gt;Launched by a &lt;strong&gt;Saturn V&lt;/strong&gt; rocket from &lt;a href=&quot;http://en.wikipedia.org/wiki/Kennedy_Space_Center&quot; title=&quot;Kennedy Space Center&quot;&gt;Kennedy Space Center&lt;/a&gt; in Merritt Island, Florida on July 16, Apollo 11 was the fifth manned mission of &lt;a href=&quot;http://en.wikipedia.org/wiki/NASA&quot; title=&quot;NASA&quot;&gt;NASA&lt;/a&gt;&amp;#39;s Apollo program. The Apollo spacecraft had three parts:&lt;/p&gt; &lt;ol&gt; &lt;li&gt;&lt;strong&gt;Command Module&lt;/strong&gt; with a cabin for the three astronauts which was the only part which landed back on Earth&lt;/li&gt; &lt;li&gt;&lt;strong&gt;Service Module&lt;/strong&gt; which supported the Command Module with propulsion, electrical power, oxygen and water&lt;/li&gt; &lt;li&gt;&lt;strong&gt;Lunar Module&lt;/strong&gt; for landing on the Moon.&lt;/li&gt; &lt;/ol&gt; &lt;p&gt;After being sent to the Moon by the Saturn V&amp;#39;s upper stage, the astronauts separated the spacecraft from it and travelled for three days until they entered into lunar orbit. Armstrong and Aldrin then moved into the Lunar Module and landed in the &lt;a href=&quot;http://en.wikipedia.org/wiki/Mare_Tranquillitatis&quot; title=&quot;Mare Tranquillitatis&quot;&gt;Sea of Tranquility&lt;/a&gt;. They stayed a total of about 21 and a half hours on the lunar surface. After lifting off in the upper part of the Lunar Module and rejoining Collins in the Command Module, they returned to Earth and landed in the &lt;a href=&quot;http://en.wikipedia.org/wiki/Pacific_Ocean&quot; title=&quot;Pacific Ocean&quot;&gt;Pacific Ocean&lt;/a&gt; on July 24.&lt;/p&gt; &lt;hr/&gt; &lt;p style=&quot;text-align: right;&quot;&gt;&lt;small&gt;Source: &lt;a href=&quot;http://en.wikipedia.org/wiki/Apollo_11&quot;&gt;Wikipedia.org&lt;/a&gt;&lt;/small&gt;&lt;/p&gt; - </textarea> - <script> - - CKEDITOR.replace( 'editor2', { - allowedContent: - 'h1 h2 h3 p blockquote strong em;' + - 'a[!href];' + - 'img(left,right)[!src,alt,width,height];' + - 'table tr th td caption;' + - 'span{!font-family};' + - 'span{!color};' + - 'span(!marker);' + - 'del ins' - } ); - - </script> - </div> - - <br> - - <div> - <label for="editor3"> - Editor 3: - </label> - <div class="description"> - <p> - This editor is using a custom configuration for - <abbr title="Advanced Content Filter">ACF</abbr>. - Note that filters can be configured as an object literal - as an alternative to a string-based definition. - </p> -<pre class="samples"> -CKEDITOR.replace( 'editor3', { - allowedContent: { - 'b i ul ol big small': true, - 'h1 h2 h3 p blockquote li': { - styles: 'text-align' - }, - a: { attributes: '!href,target' }, - img: { - attributes: '!src,alt', - styles: 'width,height', - classes: 'left,right' - } - } -} ); -</pre> - </div> - <textarea cols="80" id="editor3" name="editor3" rows="10"> - &lt;h1&gt;&lt;img alt=&quot;Saturn V carrying Apollo 11&quot; class=&quot;right&quot; src=&quot;assets/sample.jpg&quot;/&gt; Apollo 11&lt;/h1&gt; &lt;p&gt;&lt;b&gt;Apollo 11&lt;/b&gt; was the spaceflight that landed the first humans, Americans &lt;a href=&quot;http://en.wikipedia.org/wiki/Neil_Armstrong&quot; title=&quot;Neil Armstrong&quot;&gt;Neil Armstrong&lt;/a&gt; and &lt;a href=&quot;http://en.wikipedia.org/wiki/Buzz_Aldrin&quot; title=&quot;Buzz Aldrin&quot;&gt;Buzz Aldrin&lt;/a&gt;, on the Moon on July 20, 1969, at 20:18 UTC. Armstrong became the first to step onto the lunar surface 6 hours later on July 21 at 02:56 UTC.&lt;/p&gt; &lt;p&gt;Armstrong spent about &lt;s&gt;three and a half&lt;/s&gt; two and a half hours outside the spacecraft, Aldrin slightly less; and together they collected 47.5 pounds (21.5&amp;nbsp;kg) of lunar material for return to Earth. A third member of the mission, &lt;a href=&quot;http://en.wikipedia.org/wiki/Michael_Collins_(astronaut)&quot; title=&quot;Michael Collins (astronaut)&quot;&gt;Michael Collins&lt;/a&gt;, piloted the &lt;a href=&quot;http://en.wikipedia.org/wiki/Apollo_Command/Service_Module&quot; title=&quot;Apollo Command/Service Module&quot;&gt;command&lt;/a&gt; spacecraft alone in lunar orbit until Armstrong and Aldrin returned to it for the trip back to Earth.&lt;/p&gt; &lt;h2&gt;Broadcasting and &lt;em&gt;quotes&lt;/em&gt; &lt;a id=&quot;quotes&quot; name=&quot;quotes&quot;&gt;&lt;/a&gt;&lt;/h2&gt; &lt;p&gt;Broadcast on live TV to a world-wide audience, Armstrong stepped onto the lunar surface and described the event as:&lt;/p&gt; &lt;blockquote&gt;&lt;p&gt;One small step for [a] man, one giant leap for mankind.&lt;/p&gt;&lt;/blockquote&gt; &lt;p&gt;Apollo 11 effectively ended the &lt;a href=&quot;http://en.wikipedia.org/wiki/Space_Race&quot; title=&quot;Space Race&quot;&gt;Space Race&lt;/a&gt; and fulfilled a national goal proposed in 1961 by the late U.S. President &lt;a href=&quot;http://en.wikipedia.org/wiki/John_F._Kennedy&quot; title=&quot;John F. Kennedy&quot;&gt;John F. Kennedy&lt;/a&gt; in a speech before the United States Congress:&lt;/p&gt; &lt;blockquote&gt;&lt;p&gt;[...] before this decade is out, of landing a man on the Moon and returning him safely to the Earth.&lt;/p&gt;&lt;/blockquote&gt; &lt;h2&gt;Technical details &lt;a id=&quot;tech-details&quot; name=&quot;tech-details&quot;&gt;&lt;/a&gt;&lt;/h2&gt; &lt;table align=&quot;right&quot; border=&quot;1&quot; bordercolor=&quot;#ccc&quot; cellpadding=&quot;5&quot; cellspacing=&quot;0&quot; style=&quot;border-collapse:collapse;margin:10px 0 10px 15px;&quot;&gt; &lt;caption&gt;&lt;strong&gt;Mission crew&lt;/strong&gt;&lt;/caption&gt; &lt;thead&gt; &lt;tr&gt; &lt;th scope=&quot;col&quot;&gt;Position&lt;/th&gt; &lt;th scope=&quot;col&quot;&gt;Astronaut&lt;/th&gt; &lt;/tr&gt; &lt;/thead&gt; &lt;tbody&gt; &lt;tr&gt; &lt;td&gt;Commander&lt;/td&gt; &lt;td&gt;Neil A. Armstrong&lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td&gt;Command Module Pilot&lt;/td&gt; &lt;td&gt;Michael Collins&lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td&gt;Lunar Module Pilot&lt;/td&gt; &lt;td&gt;Edwin &amp;quot;Buzz&amp;quot; E. Aldrin, Jr.&lt;/td&gt; &lt;/tr&gt; &lt;/tbody&gt; &lt;/table&gt; &lt;p&gt;Launched by a &lt;strong&gt;Saturn V&lt;/strong&gt; rocket from &lt;a href=&quot;http://en.wikipedia.org/wiki/Kennedy_Space_Center&quot; title=&quot;Kennedy Space Center&quot;&gt;Kennedy Space Center&lt;/a&gt; in Merritt Island, Florida on July 16, Apollo 11 was the fifth manned mission of &lt;a href=&quot;http://en.wikipedia.org/wiki/NASA&quot; title=&quot;NASA&quot;&gt;NASA&lt;/a&gt;&amp;#39;s Apollo program. The Apollo spacecraft had three parts:&lt;/p&gt; &lt;ol&gt; &lt;li&gt;&lt;strong&gt;Command Module&lt;/strong&gt; with a cabin for the three astronauts which was the only part which landed back on Earth&lt;/li&gt; &lt;li&gt;&lt;strong&gt;Service Module&lt;/strong&gt; which supported the Command Module with propulsion, electrical power, oxygen and water&lt;/li&gt; &lt;li&gt;&lt;strong&gt;Lunar Module&lt;/strong&gt; for landing on the Moon.&lt;/li&gt; &lt;/ol&gt; &lt;p&gt;After being sent to the Moon by the Saturn V&amp;#39;s upper stage, the astronauts separated the spacecraft from it and travelled for three days until they entered into lunar orbit. Armstrong and Aldrin then moved into the Lunar Module and landed in the &lt;a href=&quot;http://en.wikipedia.org/wiki/Mare_Tranquillitatis&quot; title=&quot;Mare Tranquillitatis&quot;&gt;Sea of Tranquility&lt;/a&gt;. They stayed a total of about 21 and a half hours on the lunar surface. After lifting off in the upper part of the Lunar Module and rejoining Collins in the Command Module, they returned to Earth and landed in the &lt;a href=&quot;http://en.wikipedia.org/wiki/Pacific_Ocean&quot; title=&quot;Pacific Ocean&quot;&gt;Pacific Ocean&lt;/a&gt; on July 24.&lt;/p&gt; &lt;hr/&gt; &lt;p style=&quot;text-align: right;&quot;&gt;&lt;small&gt;Source: &lt;a href=&quot;http://en.wikipedia.org/wiki/Apollo_11&quot;&gt;Wikipedia.org&lt;/a&gt;&lt;/small&gt;&lt;/p&gt; - </textarea> - <script> - - CKEDITOR.replace( 'editor3', { - allowedContent: { - 'b i ul ol big small': true, - 'h1 h2 h3 p blockquote li': { - styles: 'text-align' - }, - a: { attributes: '!href,target' }, - img: { - attributes: '!src,alt', - styles: 'width,height', - classes: 'left,right' - } - } - } ); - - </script> - </div> - - <br> - - <div> - <label for="editor4"> - Editor 4: - </label> - <div class="description"> - <p> - This editor is using a custom set of plugins and buttons. - </p> -<pre class="samples"> -CKEDITOR.replace( 'editor4', { - removePlugins: 'bidi,font,forms,flash,horizontalrule,iframe,justify,table,tabletools,smiley', - removeButtons: 'Anchor,Underline,Strike,Subscript,Superscript,Image', - format_tags: 'p;h1;h2;h3;pre;address' -} ); -</pre> - <p> - As you can see, removing plugins and buttons implies filtering. - Several tags are not allowed in the editor because there's no - plugin/button that is responsible for creating and editing this - kind of content (for example: the image is missing because - of <code>removeButtons: 'Image'</code>). The conclusion is that - <abbr title="Advanced Content Filter">ACF</abbr> works "backwards" - as well: <strong>modifying <abbr title="User Interface">UI</abbr> - elements is changing allowed content rules</strong>. - </p> - </div> - <textarea cols="80" id="editor4" name="editor4" rows="10"> - &lt;h1&gt;&lt;img alt=&quot;Saturn V carrying Apollo 11&quot; class=&quot;right&quot; src=&quot;assets/sample.jpg&quot;/&gt; Apollo 11&lt;/h1&gt; &lt;p&gt;&lt;b&gt;Apollo 11&lt;/b&gt; was the spaceflight that landed the first humans, Americans &lt;a href=&quot;http://en.wikipedia.org/wiki/Neil_Armstrong&quot; title=&quot;Neil Armstrong&quot;&gt;Neil Armstrong&lt;/a&gt; and &lt;a href=&quot;http://en.wikipedia.org/wiki/Buzz_Aldrin&quot; title=&quot;Buzz Aldrin&quot;&gt;Buzz Aldrin&lt;/a&gt;, on the Moon on July 20, 1969, at 20:18 UTC. Armstrong became the first to step onto the lunar surface 6 hours later on July 21 at 02:56 UTC.&lt;/p&gt; &lt;p&gt;Armstrong spent about &lt;s&gt;three and a half&lt;/s&gt; two and a half hours outside the spacecraft, Aldrin slightly less; and together they collected 47.5 pounds (21.5&amp;nbsp;kg) of lunar material for return to Earth. A third member of the mission, &lt;a href=&quot;http://en.wikipedia.org/wiki/Michael_Collins_(astronaut)&quot; title=&quot;Michael Collins (astronaut)&quot;&gt;Michael Collins&lt;/a&gt;, piloted the &lt;a href=&quot;http://en.wikipedia.org/wiki/Apollo_Command/Service_Module&quot; title=&quot;Apollo Command/Service Module&quot;&gt;command&lt;/a&gt; spacecraft alone in lunar orbit until Armstrong and Aldrin returned to it for the trip back to Earth.&lt;/p&gt; &lt;h2&gt;Broadcasting and &lt;em&gt;quotes&lt;/em&gt; &lt;a id=&quot;quotes&quot; name=&quot;quotes&quot;&gt;&lt;/a&gt;&lt;/h2&gt; &lt;p&gt;Broadcast on live TV to a world-wide audience, Armstrong stepped onto the lunar surface and described the event as:&lt;/p&gt; &lt;blockquote&gt;&lt;p&gt;One small step for [a] man, one giant leap for mankind.&lt;/p&gt;&lt;/blockquote&gt; &lt;p&gt;Apollo 11 effectively ended the &lt;a href=&quot;http://en.wikipedia.org/wiki/Space_Race&quot; title=&quot;Space Race&quot;&gt;Space Race&lt;/a&gt; and fulfilled a national goal proposed in 1961 by the late U.S. President &lt;a href=&quot;http://en.wikipedia.org/wiki/John_F._Kennedy&quot; title=&quot;John F. Kennedy&quot;&gt;John F. Kennedy&lt;/a&gt; in a speech before the United States Congress:&lt;/p&gt; &lt;blockquote&gt;&lt;p&gt;[...] before this decade is out, of landing a man on the Moon and returning him safely to the Earth.&lt;/p&gt;&lt;/blockquote&gt; &lt;h2&gt;Technical details &lt;a id=&quot;tech-details&quot; name=&quot;tech-details&quot;&gt;&lt;/a&gt;&lt;/h2&gt; &lt;table align=&quot;right&quot; border=&quot;1&quot; bordercolor=&quot;#ccc&quot; cellpadding=&quot;5&quot; cellspacing=&quot;0&quot; style=&quot;border-collapse:collapse;margin:10px 0 10px 15px;&quot;&gt; &lt;caption&gt;&lt;strong&gt;Mission crew&lt;/strong&gt;&lt;/caption&gt; &lt;thead&gt; &lt;tr&gt; &lt;th scope=&quot;col&quot;&gt;Position&lt;/th&gt; &lt;th scope=&quot;col&quot;&gt;Astronaut&lt;/th&gt; &lt;/tr&gt; &lt;/thead&gt; &lt;tbody&gt; &lt;tr&gt; &lt;td&gt;Commander&lt;/td&gt; &lt;td&gt;Neil A. Armstrong&lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td&gt;Command Module Pilot&lt;/td&gt; &lt;td&gt;Michael Collins&lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td&gt;Lunar Module Pilot&lt;/td&gt; &lt;td&gt;Edwin &amp;quot;Buzz&amp;quot; E. Aldrin, Jr.&lt;/td&gt; &lt;/tr&gt; &lt;/tbody&gt; &lt;/table&gt; &lt;p&gt;Launched by a &lt;strong&gt;Saturn V&lt;/strong&gt; rocket from &lt;a href=&quot;http://en.wikipedia.org/wiki/Kennedy_Space_Center&quot; title=&quot;Kennedy Space Center&quot;&gt;Kennedy Space Center&lt;/a&gt; in Merritt Island, Florida on July 16, Apollo 11 was the fifth manned mission of &lt;a href=&quot;http://en.wikipedia.org/wiki/NASA&quot; title=&quot;NASA&quot;&gt;NASA&lt;/a&gt;&amp;#39;s Apollo program. The Apollo spacecraft had three parts:&lt;/p&gt; &lt;ol&gt; &lt;li&gt;&lt;strong&gt;Command Module&lt;/strong&gt; with a cabin for the three astronauts which was the only part which landed back on Earth&lt;/li&gt; &lt;li&gt;&lt;strong&gt;Service Module&lt;/strong&gt; which supported the Command Module with propulsion, electrical power, oxygen and water&lt;/li&gt; &lt;li&gt;&lt;strong&gt;Lunar Module&lt;/strong&gt; for landing on the Moon.&lt;/li&gt; &lt;/ol&gt; &lt;p&gt;After being sent to the Moon by the Saturn V&amp;#39;s upper stage, the astronauts separated the spacecraft from it and travelled for three days until they entered into lunar orbit. Armstrong and Aldrin then moved into the Lunar Module and landed in the &lt;a href=&quot;http://en.wikipedia.org/wiki/Mare_Tranquillitatis&quot; title=&quot;Mare Tranquillitatis&quot;&gt;Sea of Tranquility&lt;/a&gt;. They stayed a total of about 21 and a half hours on the lunar surface. After lifting off in the upper part of the Lunar Module and rejoining Collins in the Command Module, they returned to Earth and landed in the &lt;a href=&quot;http://en.wikipedia.org/wiki/Pacific_Ocean&quot; title=&quot;Pacific Ocean&quot;&gt;Pacific Ocean&lt;/a&gt; on July 24.&lt;/p&gt; &lt;hr/&gt; &lt;p style=&quot;text-align: right;&quot;&gt;&lt;small&gt;Source: &lt;a href=&quot;http://en.wikipedia.org/wiki/Apollo_11&quot;&gt;Wikipedia.org&lt;/a&gt;&lt;/small&gt;&lt;/p&gt; - </textarea> - <script> - - CKEDITOR.replace( 'editor4', { - removePlugins: 'bidi,div,font,forms,flash,horizontalrule,iframe,justify,table,tabletools,smiley', - removeButtons: 'Anchor,Underline,Strike,Subscript,Superscript,Image', - format_tags: 'p;h1;h2;h3;pre;address' - } ); - - </script> - </div> - - <br> - - <div> - <label for="editor5"> - Editor 5: - </label> - <div class="description"> - <p> - This editor is built on editable <code>&lt;h1&gt;</code> element. - <abbr title="Advanced Content Filter">ACF</abbr> takes care of - what can be included in <code>&lt;h1&gt;</code>. Note that there - are no block styles in Styles combo. Also why lists, indentation, - blockquote, div, form and other buttons are missing. - </p> - <p> - <abbr title="Advanced Content Filter">ACF</abbr> makes sure that - no disallowed tags will come to <code>&lt;h1&gt;</code> so the final - markup is valid. If the user tried to paste some invalid HTML - into this editor (let's say a list), it would be automatically - converted into plain text. - </p> - </div> - <h1 id="editor5" contenteditable="true"> - <em>Apollo 11</em> was the spaceflight that landed the first humans, Americans <a href="http://en.wikipedia.org/wiki/Neil_Armstrong" title="Neil Armstrong">Neil Armstrong</a> and <a href="http://en.wikipedia.org/wiki/Buzz_Aldrin" title="Buzz Aldrin">Buzz Aldrin</a>, on the Moon on July 20, 1969, at 20:18 UTC. - </h1> - </div> - - <br> - - <div> - <label for="editor3"> - Editor 6: - </label> - <div class="description"> - <p> - This editor is using a custom configuration for <abbr title="Advanced Content Filter">ACF</abbr>. - It's using the <a href="http://docs.ckeditor.com/#!/guide/dev_disallowed_content" rel="noopener noreferrer" target="_blank"> - Disallowed Content</a> property of the filter to eliminate all <code>title</code> attributes. - </p> - -<pre class="samples"> -CKEDITOR.replace( 'editor6', { - allowedContent: { - 'b i ul ol big small': true, - 'h1 h2 h3 p blockquote li': { - styles: 'text-align' - }, - a: {attributes: '!href,target'}, - img: { - attributes: '!src,alt', - styles: 'width,height', - classes: 'left,right' - } - }, - disallowedContent: '*{title*}' -} ); -</pre> - </div> - <textarea cols="80" id="editor6" name="editor6" rows="10"> - &lt;h1&gt;&lt;img alt=&quot;Saturn V carrying Apollo 11&quot; class=&quot;right&quot; src=&quot;assets/sample.jpg&quot;/&gt; Apollo 11&lt;/h1&gt; &lt;p&gt;&lt;b&gt;Apollo 11&lt;/b&gt; was the spaceflight that landed the first humans, Americans &lt;a href=&quot;http://en.wikipedia.org/wiki/Neil_Armstrong&quot; title=&quot;Neil Armstrong&quot;&gt;Neil Armstrong&lt;/a&gt; and &lt;a href=&quot;http://en.wikipedia.org/wiki/Buzz_Aldrin&quot; title=&quot;Buzz Aldrin&quot;&gt;Buzz Aldrin&lt;/a&gt;, on the Moon on July 20, 1969, at 20:18 UTC. Armstrong became the first to step onto the lunar surface 6 hours later on July 21 at 02:56 UTC.&lt;/p&gt; &lt;p&gt;Armstrong spent about &lt;s&gt;three and a half&lt;/s&gt; two and a half hours outside the spacecraft, Aldrin slightly less; and together they collected 47.5 pounds (21.5&amp;nbsp;kg) of lunar material for return to Earth. A third member of the mission, &lt;a href=&quot;http://en.wikipedia.org/wiki/Michael_Collins_(astronaut)&quot; title=&quot;Michael Collins (astronaut)&quot;&gt;Michael Collins&lt;/a&gt;, piloted the &lt;a href=&quot;http://en.wikipedia.org/wiki/Apollo_Command/Service_Module&quot; title=&quot;Apollo Command/Service Module&quot;&gt;command&lt;/a&gt; spacecraft alone in lunar orbit until Armstrong and Aldrin returned to it for the trip back to Earth.&lt;/p&gt; &lt;h2&gt;Broadcasting and &lt;em&gt;quotes&lt;/em&gt; &lt;a id=&quot;quotes&quot; name=&quot;quotes&quot;&gt;&lt;/a&gt;&lt;/h2&gt; &lt;p&gt;Broadcast on live TV to a world-wide audience, Armstrong stepped onto the lunar surface and described the event as:&lt;/p&gt; &lt;blockquote&gt;&lt;p&gt;One small step for [a] man, one giant leap for mankind.&lt;/p&gt;&lt;/blockquote&gt; &lt;p&gt;Apollo 11 effectively ended the &lt;a href=&quot;http://en.wikipedia.org/wiki/Space_Race&quot; title=&quot;Space Race&quot;&gt;Space Race&lt;/a&gt; and fulfilled a national goal proposed in 1961 by the late U.S. President &lt;a href=&quot;http://en.wikipedia.org/wiki/John_F._Kennedy&quot; title=&quot;John F. Kennedy&quot;&gt;John F. Kennedy&lt;/a&gt; in a speech before the United States Congress:&lt;/p&gt; &lt;blockquote&gt;&lt;p&gt;[...] before this decade is out, of landing a man on the Moon and returning him safely to the Earth.&lt;/p&gt;&lt;/blockquote&gt; &lt;h2&gt;Technical details &lt;a id=&quot;tech-details&quot; name=&quot;tech-details&quot;&gt;&lt;/a&gt;&lt;/h2&gt; &lt;table align=&quot;right&quot; border=&quot;1&quot; bordercolor=&quot;#ccc&quot; cellpadding=&quot;5&quot; cellspacing=&quot;0&quot; style=&quot;border-collapse:collapse;margin:10px 0 10px 15px;&quot;&gt; &lt;caption&gt;&lt;strong&gt;Mission crew&lt;/strong&gt;&lt;/caption&gt; &lt;thead&gt; &lt;tr&gt; &lt;th scope=&quot;col&quot;&gt;Position&lt;/th&gt; &lt;th scope=&quot;col&quot;&gt;Astronaut&lt;/th&gt; &lt;/tr&gt; &lt;/thead&gt; &lt;tbody&gt; &lt;tr&gt; &lt;td&gt;Commander&lt;/td&gt; &lt;td&gt;Neil A. Armstrong&lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td&gt;Command Module Pilot&lt;/td&gt; &lt;td&gt;Michael Collins&lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td&gt;Lunar Module Pilot&lt;/td&gt; &lt;td&gt;Edwin &amp;quot;Buzz&amp;quot; E. Aldrin, Jr.&lt;/td&gt; &lt;/tr&gt; &lt;/tbody&gt; &lt;/table&gt; &lt;p&gt;Launched by a &lt;strong&gt;Saturn V&lt;/strong&gt; rocket from &lt;a href=&quot;http://en.wikipedia.org/wiki/Kennedy_Space_Center&quot; title=&quot;Kennedy Space Center&quot;&gt;Kennedy Space Center&lt;/a&gt; in Merritt Island, Florida on July 16, Apollo 11 was the fifth manned mission of &lt;a href=&quot;http://en.wikipedia.org/wiki/NASA&quot; title=&quot;NASA&quot;&gt;NASA&lt;/a&gt;&amp;#39;s Apollo program. The Apollo spacecraft had three parts:&lt;/p&gt; &lt;ol&gt; &lt;li&gt;&lt;strong&gt;Command Module&lt;/strong&gt; with a cabin for the three astronauts which was the only part which landed back on Earth&lt;/li&gt; &lt;li&gt;&lt;strong&gt;Service Module&lt;/strong&gt; which supported the Command Module with propulsion, electrical power, oxygen and water&lt;/li&gt; &lt;li&gt;&lt;strong&gt;Lunar Module&lt;/strong&gt; for landing on the Moon.&lt;/li&gt; &lt;/ol&gt; &lt;p&gt;After being sent to the Moon by the Saturn V&amp;#39;s upper stage, the astronauts separated the spacecraft from it and travelled for three days until they entered into lunar orbit. Armstrong and Aldrin then moved into the Lunar Module and landed in the &lt;a href=&quot;http://en.wikipedia.org/wiki/Mare_Tranquillitatis&quot; title=&quot;Mare Tranquillitatis&quot;&gt;Sea of Tranquility&lt;/a&gt;. They stayed a total of about 21 and a half hours on the lunar surface. After lifting off in the upper part of the Lunar Module and rejoining Collins in the Command Module, they returned to Earth and landed in the &lt;a href=&quot;http://en.wikipedia.org/wiki/Pacific_Ocean&quot; title=&quot;Pacific Ocean&quot;&gt;Pacific Ocean&lt;/a&gt; on July 24.&lt;/p&gt; &lt;hr/&gt; &lt;p style=&quot;text-align: right;&quot;&gt;&lt;small&gt;Source: &lt;a href=&quot;http://en.wikipedia.org/wiki/Apollo_11&quot;&gt;Wikipedia.org&lt;/a&gt;&lt;/small&gt;&lt;/p&gt; - </textarea> - <script> - - CKEDITOR.replace( 'editor6', { - allowedContent: { - 'b i ul ol big small': true, - 'h1 h2 h3 p blockquote li': { - styles: 'text-align' - }, - a: {attributes: '!href,target'}, - img: { - attributes: '!src,alt', - styles: 'width,height', - classes: 'left,right' - } - }, - disallowedContent: '*{title*}' - } ); - - </script> - </div> - - <br> - - <div> - <label for="editor7"> - Editor 7: - </label> - <div class="description"> - <p> - This editor is using a custom configuration for <abbr title="Advanced Content Filter">ACF</abbr>. - It's using the <a href="http://docs.ckeditor.com/#!/guide/dev_disallowed_content" rel="noopener noreferrer" target="_blank"> - Disallowed Content</a> property of the filter to eliminate all <code>a</code> and <code>img</code> tags, - while allowing all other tags. - </p> -<pre class="samples"> -CKEDITOR.replace( 'editor7', { - allowedContent: { - // Allow all content. - $1: { - elements: CKEDITOR.dtd, - attributes: true, - styles: true, - classes: true - } - }, - disallowedContent: 'img a' -} ); -</pre> - </div> - <textarea cols="80" id="editor7" name="editor7" rows="10"> - &lt;h1&gt;&lt;img alt=&quot;Saturn V carrying Apollo 11&quot; class=&quot;right&quot; src=&quot;assets/sample.jpg&quot;/&gt; Apollo 11&lt;/h1&gt; &lt;p&gt;&lt;b&gt;Apollo 11&lt;/b&gt; was the spaceflight that landed the first humans, Americans &lt;a href=&quot;http://en.wikipedia.org/wiki/Neil_Armstrong&quot; title=&quot;Neil Armstrong&quot;&gt;Neil Armstrong&lt;/a&gt; and &lt;a href=&quot;http://en.wikipedia.org/wiki/Buzz_Aldrin&quot; title=&quot;Buzz Aldrin&quot;&gt;Buzz Aldrin&lt;/a&gt;, on the Moon on July 20, 1969, at 20:18 UTC. Armstrong became the first to step onto the lunar surface 6 hours later on July 21 at 02:56 UTC.&lt;/p&gt; &lt;p&gt;Armstrong spent about &lt;s&gt;three and a half&lt;/s&gt; two and a half hours outside the spacecraft, Aldrin slightly less; and together they collected 47.5 pounds (21.5&amp;nbsp;kg) of lunar material for return to Earth. A third member of the mission, &lt;a href=&quot;http://en.wikipedia.org/wiki/Michael_Collins_(astronaut)&quot; title=&quot;Michael Collins (astronaut)&quot;&gt;Michael Collins&lt;/a&gt;, piloted the &lt;a href=&quot;http://en.wikipedia.org/wiki/Apollo_Command/Service_Module&quot; title=&quot;Apollo Command/Service Module&quot;&gt;command&lt;/a&gt; spacecraft alone in lunar orbit until Armstrong and Aldrin returned to it for the trip back to Earth.&lt;/p&gt; &lt;h2&gt;Broadcasting and &lt;em&gt;quotes&lt;/em&gt; &lt;a id=&quot;quotes&quot; name=&quot;quotes&quot;&gt;&lt;/a&gt;&lt;/h2&gt; &lt;p&gt;Broadcast on live TV to a world-wide audience, Armstrong stepped onto the lunar surface and described the event as:&lt;/p&gt; &lt;blockquote&gt;&lt;p&gt;One small step for [a] man, one giant leap for mankind.&lt;/p&gt;&lt;/blockquote&gt; &lt;p&gt;Apollo 11 effectively ended the &lt;a href=&quot;http://en.wikipedia.org/wiki/Space_Race&quot; title=&quot;Space Race&quot;&gt;Space Race&lt;/a&gt; and fulfilled a national goal proposed in 1961 by the late U.S. President &lt;a href=&quot;http://en.wikipedia.org/wiki/John_F._Kennedy&quot; title=&quot;John F. Kennedy&quot;&gt;John F. Kennedy&lt;/a&gt; in a speech before the United States Congress:&lt;/p&gt; &lt;blockquote&gt;&lt;p&gt;[...] before this decade is out, of landing a man on the Moon and returning him safely to the Earth.&lt;/p&gt;&lt;/blockquote&gt; &lt;h2&gt;Technical details &lt;a id=&quot;tech-details&quot; name=&quot;tech-details&quot;&gt;&lt;/a&gt;&lt;/h2&gt; &lt;table align=&quot;right&quot; border=&quot;1&quot; bordercolor=&quot;#ccc&quot; cellpadding=&quot;5&quot; cellspacing=&quot;0&quot; style=&quot;border-collapse:collapse;margin:10px 0 10px 15px;&quot;&gt; &lt;caption&gt;&lt;strong&gt;Mission crew&lt;/strong&gt;&lt;/caption&gt; &lt;thead&gt; &lt;tr&gt; &lt;th scope=&quot;col&quot;&gt;Position&lt;/th&gt; &lt;th scope=&quot;col&quot;&gt;Astronaut&lt;/th&gt; &lt;/tr&gt; &lt;/thead&gt; &lt;tbody&gt; &lt;tr&gt; &lt;td&gt;Commander&lt;/td&gt; &lt;td&gt;Neil A. Armstrong&lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td&gt;Command Module Pilot&lt;/td&gt; &lt;td&gt;Michael Collins&lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td&gt;Lunar Module Pilot&lt;/td&gt; &lt;td&gt;Edwin &amp;quot;Buzz&amp;quot; E. Aldrin, Jr.&lt;/td&gt; &lt;/tr&gt; &lt;/tbody&gt; &lt;/table&gt; &lt;p&gt;Launched by a &lt;strong&gt;Saturn V&lt;/strong&gt; rocket from &lt;a href=&quot;http://en.wikipedia.org/wiki/Kennedy_Space_Center&quot; title=&quot;Kennedy Space Center&quot;&gt;Kennedy Space Center&lt;/a&gt; in Merritt Island, Florida on July 16, Apollo 11 was the fifth manned mission of &lt;a href=&quot;http://en.wikipedia.org/wiki/NASA&quot; title=&quot;NASA&quot;&gt;NASA&lt;/a&gt;&amp;#39;s Apollo program. The Apollo spacecraft had three parts:&lt;/p&gt; &lt;ol&gt; &lt;li&gt;&lt;strong&gt;Command Module&lt;/strong&gt; with a cabin for the three astronauts which was the only part which landed back on Earth&lt;/li&gt; &lt;li&gt;&lt;strong&gt;Service Module&lt;/strong&gt; which supported the Command Module with propulsion, electrical power, oxygen and water&lt;/li&gt; &lt;li&gt;&lt;strong&gt;Lunar Module&lt;/strong&gt; for landing on the Moon.&lt;/li&gt; &lt;/ol&gt; &lt;p&gt;After being sent to the Moon by the Saturn V&amp;#39;s upper stage, the astronauts separated the spacecraft from it and travelled for three days until they entered into lunar orbit. Armstrong and Aldrin then moved into the Lunar Module and landed in the &lt;a href=&quot;http://en.wikipedia.org/wiki/Mare_Tranquillitatis&quot; title=&quot;Mare Tranquillitatis&quot;&gt;Sea of Tranquility&lt;/a&gt;. They stayed a total of about 21 and a half hours on the lunar surface. After lifting off in the upper part of the Lunar Module and rejoining Collins in the Command Module, they returned to Earth and landed in the &lt;a href=&quot;http://en.wikipedia.org/wiki/Pacific_Ocean&quot; title=&quot;Pacific Ocean&quot;&gt;Pacific Ocean&lt;/a&gt; on July 24.&lt;/p&gt; &lt;hr/&gt; &lt;p style=&quot;text-align: right;&quot;&gt;&lt;small&gt;Source: &lt;a href=&quot;http://en.wikipedia.org/wiki/Apollo_11&quot;&gt;Wikipedia.org&lt;/a&gt;&lt;/small&gt;&lt;/p&gt; - </textarea> - <script> - - CKEDITOR.replace( 'editor7', { - allowedContent: { - // allow all content - $1: { - elements: CKEDITOR.dtd, - attributes: true, - styles: true, - classes: true - } - }, - disallowedContent: 'img a' - } ); - - </script> - </div> - - <div id="footer"> - <hr> - <p> - CKEditor - The text editor for the Internet - <a class="samples" href="http://ckeditor.com/">http://ckeditor.com</a> - </p> - <p id="copy"> - Copyright &copy; 2003-2017, <a class="samples" href="http://cksource.com/">CKSource</a> - Frederico - Knabben. All rights reserved. - </p> - </div> -</body> -</html> diff --git a/admin/plugins/ckeditor/samples/old/dialog/assets/my_dialog.js b/admin/plugins/ckeditor/samples/old/dialog/assets/my_dialog.js deleted file mode 100644 index 04deb20..0000000 --- a/admin/plugins/ckeditor/samples/old/dialog/assets/my_dialog.js +++ /dev/null @@ -1,48 +0,0 @@ -/** - * Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. - * For licensing, see LICENSE.md or http://ckeditor.com/license - */ - -CKEDITOR.dialog.add( 'myDialog', function() { - return { - title: 'My Dialog', - minWidth: 400, - minHeight: 200, - contents: [ - { - id: 'tab1', - label: 'First Tab', - title: 'First Tab', - elements: [ - { - id: 'input1', - type: 'text', - label: 'Text Field' - }, - { - id: 'select1', - type: 'select', - label: 'Select Field', - items: [ - [ 'option1', 'value1' ], - [ 'option2', 'value2' ] - ] - } - ] - }, - { - id: 'tab2', - label: 'Second Tab', - title: 'Second Tab', - elements: [ - { - id: 'button1', - type: 'button', - label: 'Button Field' - } - ] - } - ] - }; -} ); - diff --git a/admin/plugins/ckeditor/samples/old/dialog/dialog.html b/admin/plugins/ckeditor/samples/old/dialog/dialog.html deleted file mode 100644 index 6a1440e..0000000 --- a/admin/plugins/ckeditor/samples/old/dialog/dialog.html +++ /dev/null @@ -1,190 +0,0 @@ -<!DOCTYPE html> -<!-- -Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. -For licensing, see LICENSE.md or http://ckeditor.com/license ---> -<html> -<head> - <meta charset="utf-8"> - <title>Using API to Customize Dialog Windows &mdash; CKEditor Sample</title> - <script src="../../../ckeditor.js"></script> - <link rel="stylesheet" href="../../../samples/old/sample.css"> - <meta name="ckeditor-sample-name" content="Using the JavaScript API to customize dialog windows"> - <meta name="ckeditor-sample-group" content="Advanced Samples"> - <meta name="ckeditor-sample-description" content="Using the dialog windows API to customize dialog windows without changing the original editor code."> - <style> - - .cke_button__mybutton_icon - { - display: none !important; - } - - .cke_button__mybutton_label - { - display: inline !important; - } - - </style> - <script> - - CKEDITOR.on( 'instanceCreated', function( ev ){ - var editor = ev.editor; - - // Listen for the "pluginsLoaded" event, so we are sure that the - // "dialog" plugin has been loaded and we are able to do our - // customizations. - editor.on( 'pluginsLoaded', function() { - - // If our custom dialog has not been registered, do that now. - if ( !CKEDITOR.dialog.exists( 'myDialog' ) ) { - // We need to do the following trick to find out the dialog - // definition file URL path. In the real world, you would simply - // point to an absolute path directly, like "/mydir/mydialog.js". - var href = document.location.href.split( '/' ); - href.pop(); - href.push( 'assets/my_dialog.js' ); - href = href.join( '/' ); - - // Finally, register the dialog. - CKEDITOR.dialog.add( 'myDialog', href ); - } - - // Register the command used to open the dialog. - editor.addCommand( 'myDialogCmd', new CKEDITOR.dialogCommand( 'myDialog' ) ); - - // Add the a custom toolbar buttons, which fires the above - // command.. - editor.ui.add( 'MyButton', CKEDITOR.UI_BUTTON, { - label: 'My Dialog', - command: 'myDialogCmd' - }); - }); - }); - - // When opening a dialog, its "definition" is created for it, for - // each editor instance. The "dialogDefinition" event is then - // fired. We should use this event to make customizations to the - // definition of existing dialogs. - CKEDITOR.on( 'dialogDefinition', function( ev ) { - // Take the dialog name and its definition from the event data. - var dialogName = ev.data.name; - var dialogDefinition = ev.data.definition; - - // Check if the definition is from the dialog we're - // interested on (the "Link" dialog). - if ( dialogName == 'myDialog' && ev.editor.name == 'editor2' ) { - // Get a reference to the "Link Info" tab. - var infoTab = dialogDefinition.getContents( 'tab1' ); - - // Add a new text field to the "tab1" tab page. - infoTab.add( { - type: 'text', - label: 'My Custom Field', - id: 'customField', - 'default': 'Sample!', - validate: function() { - if ( ( /\d/ ).test( this.getValue() ) ) - return 'My Custom Field must not contain digits'; - } - }); - - // Remove the "select1" field from the "tab1" tab. - infoTab.remove( 'select1' ); - - // Set the default value for "input1" field. - var input1 = infoTab.get( 'input1' ); - input1[ 'default' ] = 'www.example.com'; - - // Remove the "tab2" tab page. - dialogDefinition.removeContents( 'tab2' ); - - // Add a new tab to the "Link" dialog. - dialogDefinition.addContents( { - id: 'customTab', - label: 'My Tab', - accessKey: 'M', - elements: [ - { - id: 'myField1', - type: 'text', - label: 'My Text Field' - }, - { - id: 'myField2', - type: 'text', - label: 'Another Text Field' - } - ] - }); - - // Provide the focus handler to start initial focus in "customField" field. - dialogDefinition.onFocus = function() { - var urlField = this.getContentElement( 'tab1', 'customField' ); - urlField.select(); - }; - } - }); - - var config = { - extraPlugins: 'dialog', - toolbar: [ [ 'MyButton' ] ] - }; - - </script> -</head> -<body> - <h1 class="samples"> - <a href="../../../samples/old/index.html">CKEditor Samples</a> &raquo; Using CKEditor Dialog API - </h1> - <div class="warning deprecated"> - This sample is not maintained anymore. Check out the <a href="http://sdk.ckeditor.com/">brand new samples in CKEditor SDK</a>. - </div> - <div class="description"> - <p> - This sample shows how to use the - <a class="samples" href="http://docs.ckeditor.com/#!/api/CKEDITOR.dialog">CKEditor Dialog API</a> - to customize CKEditor dialog windows without changing the original editor code. - The following customizations are being done in the example below: - </p> - <p> - For details on how to create this setup check the source code of this sample page. - </p> - </div> - <p>A custom dialog is added to the editors using the <code>pluginsLoaded</code> event, from an external <a target="_blank" href="assets/my_dialog.js">dialog definition file</a>:</p> - <ol> - <li><strong>Creating a custom dialog window</strong> &ndash; "My Dialog" dialog window opened with the "My Dialog" toolbar button.</li> - <li><strong>Creating a custom button</strong> &ndash; Add button to open the dialog with "My Dialog" toolbar button.</li> - </ol> - <textarea cols="80" id="editor1" name="editor1" rows="10">&lt;p&gt;This is some &lt;strong&gt;sample text&lt;/strong&gt;. You are using &lt;a href="http://ckeditor.com/"&gt;CKEditor&lt;/a&gt;.&lt;/p&gt;</textarea> - <script> - // Replace the <textarea id="editor1"> with an CKEditor instance. - CKEDITOR.replace( 'editor1', config ); - </script> - <p>The below editor modify the dialog definition of the above added dialog using the <code>dialogDefinition</code> event:</p> - <ol> - <li><strong>Adding dialog tab</strong> &ndash; Add new tab "My Tab" to dialog window.</li> - <li><strong>Removing a dialog window tab</strong> &ndash; Remove "Second Tab" page from the dialog window.</li> - <li><strong>Adding dialog window fields</strong> &ndash; Add "My Custom Field" to the dialog window.</li> - <li><strong>Removing dialog window field</strong> &ndash; Remove "Select Field" selection field from the dialog window.</li> - <li><strong>Setting default values for dialog window fields</strong> &ndash; Set default value of "Text Field" text field. </li> - <li><strong>Setup initial focus for dialog window</strong> &ndash; Put initial focus on "My Custom Field" text field. </li> - </ol> - <textarea cols="80" id="editor2" name="editor2" rows="10">&lt;p&gt;This is some &lt;strong&gt;sample text&lt;/strong&gt;. You are using &lt;a href="http://ckeditor.com/"&gt;CKEditor&lt;/a&gt;.&lt;/p&gt;</textarea> - <script> - - // Replace the <textarea id="editor1"> with an CKEditor instance. - CKEDITOR.replace( 'editor2', config ); - - </script> - <div id="footer"> - <hr> - <p> - CKEditor - The text editor for the Internet - <a class="samples" href="http://ckeditor.com/">http://ckeditor.com</a> - </p> - <p id="copy"> - Copyright &copy; 2003-2017, <a class="samples" href="http://cksource.com/">CKSource</a> - Frederico - Knabben. All rights reserved. - </p> - </div> -</body> -</html> diff --git a/admin/plugins/ckeditor/samples/old/divreplace.html b/admin/plugins/ckeditor/samples/old/divreplace.html deleted file mode 100644 index e882b22..0000000 --- a/admin/plugins/ckeditor/samples/old/divreplace.html +++ /dev/null @@ -1,144 +0,0 @@ -<!DOCTYPE html> -<!-- -Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. -For licensing, see LICENSE.md or http://ckeditor.com/license ---> -<html> -<head> - <meta charset="utf-8"> - <title>Replace DIV &mdash; CKEditor Sample</title> - <script src="../../ckeditor.js"></script> - <link href="sample.css" rel="stylesheet"> - <style> - - div.editable - { - border: solid 2px transparent; - padding-left: 15px; - padding-right: 15px; - } - - div.editable:hover - { - border-color: black; - } - - </style> - <script> - - // Uncomment the following code to test the "Timeout Loading Method". - // CKEDITOR.loadFullCoreTimeout = 5; - - window.onload = function() { - // Listen to the double click event. - if ( window.addEventListener ) - document.body.addEventListener( 'dblclick', onDoubleClick, false ); - else if ( window.attachEvent ) - document.body.attachEvent( 'ondblclick', onDoubleClick ); - - }; - - function onDoubleClick( ev ) { - // Get the element which fired the event. This is not necessarily the - // element to which the event has been attached. - var element = ev.target || ev.srcElement; - - // Find out the div that holds this element. - var name; - - do { - element = element.parentNode; - } - while ( element && ( name = element.nodeName.toLowerCase() ) && - ( name != 'div' || element.className.indexOf( 'editable' ) == -1 ) && name != 'body' ); - - if ( name == 'div' && element.className.indexOf( 'editable' ) != -1 ) - replaceDiv( element ); - } - - var editor; - - function replaceDiv( div ) { - if ( editor ) - editor.destroy(); - - editor = CKEDITOR.replace( div ); - } - - </script> -</head> -<body> - <h1 class="samples"> - <a href="index.html">CKEditor Samples</a> &raquo; Replace DIV with CKEditor on the Fly - </h1> - <div class="warning deprecated"> - This sample is not maintained anymore. Check out the <a href="http://sdk.ckeditor.com/">brand new samples in CKEditor SDK</a>. - </div> - <div class="description"> - <p> - This sample shows how to automatically replace <code>&lt;div&gt;</code> elements - with a CKEditor instance on the fly, following user's doubleclick. The content - that was previously placed inside the <code>&lt;div&gt;</code> element will now - be moved into CKEditor editing area. - </p> - <p> - For details on how to create this setup check the source code of this sample page. - </p> - </div> - <p> - Double-click any of the following <code>&lt;div&gt;</code> elements to transform them into - editor instances. - </p> - <div class="editable"> - <h3> - Part 1 - </h3> - <p> - Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Cras et ipsum quis mi - semper accumsan. Integer pretium dui id massa. Suspendisse in nisl sit amet urna - rutrum imperdiet. Nulla eu tellus. Donec ante nisi, ullamcorper quis, fringilla - nec, sagittis eleifend, pede. Nulla commodo interdum massa. Donec id metus. Fusce - eu ipsum. Suspendisse auctor. Phasellus fermentum porttitor risus. - </p> - </div> - <div class="editable"> - <h3> - Part 2 - </h3> - <p> - Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Cras et ipsum quis mi - semper accumsan. Integer pretium dui id massa. Suspendisse in nisl sit amet urna - rutrum imperdiet. Nulla eu tellus. Donec ante nisi, ullamcorper quis, fringilla - nec, sagittis eleifend, pede. Nulla commodo interdum massa. Donec id metus. Fusce - eu ipsum. Suspendisse auctor. Phasellus fermentum porttitor risus. - </p> - <p> - Donec velit. Mauris massa. Vestibulum non nulla. Nam suscipit arcu nec elit. Phasellus - sollicitudin iaculis ante. Ut non mauris et sapien tincidunt adipiscing. Vestibulum - vitae leo. Suspendisse nec mi tristique nulla laoreet vulputate. - </p> - </div> - <div class="editable"> - <h3> - Part 3 - </h3> - <p> - Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Cras et ipsum quis mi - semper accumsan. Integer pretium dui id massa. Suspendisse in nisl sit amet urna - rutrum imperdiet. Nulla eu tellus. Donec ante nisi, ullamcorper quis, fringilla - nec, sagittis eleifend, pede. Nulla commodo interdum massa. Donec id metus. Fusce - eu ipsum. Suspendisse auctor. Phasellus fermentum porttitor risus. - </p> - </div> - <div id="footer"> - <hr> - <p> - CKEditor - The text editor for the Internet - <a class="samples" href="http://ckeditor.com/">http://ckeditor.com</a> - </p> - <p id="copy"> - Copyright &copy; 2003-2017, <a class="samples" href="http://cksource.com/">CKSource</a> - Frederico - Knabben. All rights reserved. - </p> - </div> -</body> -</html> diff --git a/admin/plugins/ckeditor/samples/old/enterkey/enterkey.html b/admin/plugins/ckeditor/samples/old/enterkey/enterkey.html deleted file mode 100644 index ff9df0a..0000000 --- a/admin/plugins/ckeditor/samples/old/enterkey/enterkey.html +++ /dev/null @@ -1,106 +0,0 @@ -<!DOCTYPE html> -<!-- -Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. -For licensing, see LICENSE.md or http://ckeditor.com/license ---> -<html> -<head> - <meta charset="utf-8"> - <title>ENTER Key Configuration &mdash; CKEditor Sample</title> - <script src="../../../ckeditor.js"></script> - <link href="../../../samples/old/sample.css" rel="stylesheet"> - <meta name="ckeditor-sample-name" content="Using the &quot;Enter&quot; key in CKEditor"> - <meta name="ckeditor-sample-group" content="Advanced Samples"> - <meta name="ckeditor-sample-description" content="Configuring the behavior of &lt;em&gt;Enter&lt;/em&gt; and &lt;em&gt;Shift+Enter&lt;/em&gt; keys."> - <script> - - var editor; - - function changeEnter() { - // If we already have an editor, let's destroy it first. - if ( editor ) - editor.destroy( true ); - - // Create the editor again, with the appropriate settings. - editor = CKEDITOR.replace( 'editor1', { - extraPlugins: 'enterkey', - enterMode: Number( document.getElementById( 'xEnter' ).value ), - shiftEnterMode: Number( document.getElementById( 'xShiftEnter' ).value ) - }); - } - - window.onload = changeEnter; - - </script> -</head> -<body> - <h1 class="samples"> - <a href="../../../samples/old/index.html">CKEditor Samples</a> &raquo; ENTER Key Configuration - </h1> - <div class="warning deprecated"> - This sample is not maintained anymore. Check out its <a href="http://sdk.ckeditor.com/samples/enterkey.html">brand new version in CKEditor SDK</a>. - </div> - <div class="description"> - <p> - This sample shows how to configure the <em>Enter</em> and <em>Shift+Enter</em> keys - to perform actions specified in the - <a class="samples" href="http://docs.ckeditor.com/#!/api/CKEDITOR.config-cfg-enterMode"><code>enterMode</code></a> - and <a class="samples" href="http://docs.ckeditor.com/#!/api/CKEDITOR.config-cfg-shiftEnterMode"><code>shiftEnterMode</code></a> - parameters, respectively. - You can choose from the following options: - </p> - <ul class="samples"> - <li><strong><code>ENTER_P</code></strong> &ndash; new <code>&lt;p&gt;</code> paragraphs are created;</li> - <li><strong><code>ENTER_BR</code></strong> &ndash; lines are broken with <code>&lt;br&gt;</code> elements;</li> - <li><strong><code>ENTER_DIV</code></strong> &ndash; new <code>&lt;div&gt;</code> blocks are created.</li> - </ul> - <p> - The sample code below shows how to configure CKEditor to create a <code>&lt;div&gt;</code> block when <em>Enter</em> key is pressed. - </p> -<pre class="samples"> -CKEDITOR.replace( '<em>textarea_id</em>', { - <strong>enterMode: CKEDITOR.ENTER_DIV</strong> -});</pre> - <p> - Note that <code><em>textarea_id</em></code> in the code above is the <code>id</code> attribute of - the <code>&lt;textarea&gt;</code> element to be replaced. - </p> - </div> - <div style="float: left; margin-right: 20px"> - When <em>Enter</em> is pressed:<br> - <select id="xEnter" onchange="changeEnter();"> - <option selected="selected" value="1">Create a new &lt;P&gt; (recommended)</option> - <option value="3">Create a new &lt;DIV&gt;</option> - <option value="2">Break the line with a &lt;BR&gt;</option> - </select> - </div> - <div style="float: left"> - When <em>Shift+Enter</em> is pressed:<br> - <select id="xShiftEnter" onchange="changeEnter();"> - <option value="1">Create a new &lt;P&gt;</option> - <option value="3">Create a new &lt;DIV&gt;</option> - <option selected="selected" value="2">Break the line with a &lt;BR&gt; (recommended)</option> - </select> - </div> - <br style="clear: both"> - <form action="../../../samples/sample_posteddata.php" method="post"> - <p> - <br> - <textarea cols="80" id="editor1" name="editor1" rows="10">This is some &lt;strong&gt;sample text&lt;/strong&gt;. You are using &lt;a href="http://ckeditor.com/"&gt;CKEditor&lt;/a&gt;.</textarea> - </p> - <p> - <input type="submit" value="Submit"> - </p> - </form> - <div id="footer"> - <hr> - <p> - CKEditor - The text editor for the Internet - <a class="samples" href="http://ckeditor.com/">http://ckeditor.com</a> - </p> - <p id="copy"> - Copyright &copy; 2003-2017, <a class="samples" href="http://cksource.com/">CKSource</a> - Frederico - Knabben. All rights reserved. - </p> - </div> -</body> -</html> diff --git a/admin/plugins/ckeditor/samples/old/htmlwriter/assets/outputforflash/outputforflash.fla b/admin/plugins/ckeditor/samples/old/htmlwriter/assets/outputforflash/outputforflash.fla deleted file mode 100644 index 27e68cc..0000000 Binary files a/admin/plugins/ckeditor/samples/old/htmlwriter/assets/outputforflash/outputforflash.fla and /dev/null differ diff --git a/admin/plugins/ckeditor/samples/old/htmlwriter/assets/outputforflash/outputforflash.swf b/admin/plugins/ckeditor/samples/old/htmlwriter/assets/outputforflash/outputforflash.swf deleted file mode 100644 index dbe17b6..0000000 Binary files a/admin/plugins/ckeditor/samples/old/htmlwriter/assets/outputforflash/outputforflash.swf and /dev/null differ diff --git a/admin/plugins/ckeditor/samples/old/htmlwriter/assets/outputforflash/swfobject.js b/admin/plugins/ckeditor/samples/old/htmlwriter/assets/outputforflash/swfobject.js deleted file mode 100644 index 0700921..0000000 --- a/admin/plugins/ckeditor/samples/old/htmlwriter/assets/outputforflash/swfobject.js +++ /dev/null @@ -1,19 +0,0 @@ -var swfobject=function(){function w(){if(!u){try{var a=d.getElementsByTagName("body")[0].appendChild(d.createElement("span"));a.parentNode.removeChild(a)}catch(b){return}u=!0;for(var a=z.length,c=0;c<a;c++)z[c]()}}function M(a){u?a():z[z.length]=a}function N(a){if("undefined"!=typeof n.addEventListener)n.addEventListener("load",a,!1);else if("undefined"!=typeof d.addEventListener)d.addEventListener("load",a,!1);else if("undefined"!=typeof n.attachEvent)U(n,"onload",a);else if("function"==typeof n.onload){var b= -n.onload;n.onload=function(){b();a()}}else n.onload=a}function V(){var a=d.getElementsByTagName("body")[0],b=d.createElement("object");b.setAttribute("type","application/x-shockwave-flash");var c=a.appendChild(b);if(c){var f=0;(function(){if("undefined"!=typeof c.GetVariable){var g=c.GetVariable("$version");g&&(g=g.split(" ")[1].split(","),e.pv=[parseInt(g[0],10),parseInt(g[1],10),parseInt(g[2],10)])}else if(10>f){f++;setTimeout(arguments.callee,10);return}a.removeChild(b);c=null;E()})()}else E()} -function E(){var a=r.length;if(0<a)for(var b=0;b<a;b++){var c=r[b].id,f=r[b].callbackFn,g={success:!1,id:c};if(0<e.pv[0]){var d=p(c);if(d)if(!A(r[b].swfVersion)||e.wk&&312>e.wk)if(r[b].expressInstall&&F()){g={};g.data=r[b].expressInstall;g.width=d.getAttribute("width")||"0";g.height=d.getAttribute("height")||"0";d.getAttribute("class")&&(g.styleclass=d.getAttribute("class"));d.getAttribute("align")&&(g.align=d.getAttribute("align"));for(var h={},d=d.getElementsByTagName("param"),k=d.length,l=0;l< -k;l++)"movie"!=d[l].getAttribute("name").toLowerCase()&&(h[d[l].getAttribute("name")]=d[l].getAttribute("value"));G(g,h,c,f)}else W(d),f&&f(g);else v(c,!0),f&&(g.success=!0,g.ref=H(c),f(g))}else v(c,!0),f&&((c=H(c))&&"undefined"!=typeof c.SetVariable&&(g.success=!0,g.ref=c),f(g))}}function H(a){var b=null;(a=p(a))&&"OBJECT"==a.nodeName&&("undefined"!=typeof a.SetVariable?b=a:(a=a.getElementsByTagName("object")[0])&&(b=a));return b}function F(){return!B&&A("6.0.65")&&(e.win||e.mac)&&!(e.wk&&312>e.wk)} -function G(a,b,c,f){B=!0;I=f||null;O={success:!1,id:c};var g=p(c);if(g){"OBJECT"==g.nodeName?(y=J(g),C=null):(y=g,C=c);a.id="SWFObjectExprInst";if("undefined"==typeof a.width||!/%$/.test(a.width)&&310>parseInt(a.width,10))a.width="310";if("undefined"==typeof a.height||!/%$/.test(a.height)&&137>parseInt(a.height,10))a.height="137";d.title=d.title.slice(0,47)+" - Flash Player Installation";f=e.ie&&e.win?"ActiveX":"PlugIn";f="MMredirectURL\x3d"+n.location.toString().replace(/&/g,"%26")+"\x26MMplayerType\x3d"+ -f+"\x26MMdoctitle\x3d"+d.title;b.flashvars="undefined"!=typeof b.flashvars?b.flashvars+("\x26"+f):f;e.ie&&e.win&&4!=g.readyState&&(f=d.createElement("div"),c+="SWFObjectNew",f.setAttribute("id",c),g.parentNode.insertBefore(f,g),g.style.display="none",function(){4==g.readyState?g.parentNode.removeChild(g):setTimeout(arguments.callee,10)}());K(a,b,c)}}function W(a){if(e.ie&&e.win&&4!=a.readyState){var b=d.createElement("div");a.parentNode.insertBefore(b,a);b.parentNode.replaceChild(J(a),b);a.style.display= -"none";(function(){4==a.readyState?a.parentNode.removeChild(a):setTimeout(arguments.callee,10)})()}else a.parentNode.replaceChild(J(a),a)}function J(a){var b=d.createElement("div");if(e.win&&e.ie)b.innerHTML=a.innerHTML;else if(a=a.getElementsByTagName("object")[0])if(a=a.childNodes)for(var c=a.length,f=0;f<c;f++)1==a[f].nodeType&&"PARAM"==a[f].nodeName||8==a[f].nodeType||b.appendChild(a[f].cloneNode(!0));return b}function K(a,b,c){var f,g=p(c);if(e.wk&&312>e.wk)return f;if(g)if("undefined"==typeof a.id&& -(a.id=c),e.ie&&e.win){var q="",h;for(h in a)a[h]!=Object.prototype[h]&&("data"==h.toLowerCase()?b.movie=a[h]:"styleclass"==h.toLowerCase()?q+=' class\x3d"'+a[h]+'"':"classid"!=h.toLowerCase()&&(q+=" "+h+'\x3d"'+a[h]+'"'));h="";for(var k in b)b[k]!=Object.prototype[k]&&(h+='\x3cparam name\x3d"'+k+'" value\x3d"'+b[k]+'" /\x3e');g.outerHTML='\x3cobject classid\x3d"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"'+q+"\x3e"+h+"\x3c/object\x3e";D[D.length]=a.id;f=p(a.id)}else{k=d.createElement("object");k.setAttribute("type", -"application/x-shockwave-flash");for(var l in a)a[l]!=Object.prototype[l]&&("styleclass"==l.toLowerCase()?k.setAttribute("class",a[l]):"classid"!=l.toLowerCase()&&k.setAttribute(l,a[l]));for(q in b)b[q]!=Object.prototype[q]&&"movie"!=q.toLowerCase()&&(a=k,h=q,l=b[q],c=d.createElement("param"),c.setAttribute("name",h),c.setAttribute("value",l),a.appendChild(c));g.parentNode.replaceChild(k,g);f=k}return f}function P(a){var b=p(a);b&&"OBJECT"==b.nodeName&&(e.ie&&e.win?(b.style.display="none",function(){if(4== -b.readyState){var c=p(a);if(c){for(var f in c)"function"==typeof c[f]&&(c[f]=null);c.parentNode.removeChild(c)}}else setTimeout(arguments.callee,10)}()):b.parentNode.removeChild(b))}function p(a){var b=null;try{b=d.getElementById(a)}catch(c){}return b}function U(a,b,c){a.attachEvent(b,c);x[x.length]=[a,b,c]}function A(a){var b=e.pv;a=a.split(".");a[0]=parseInt(a[0],10);a[1]=parseInt(a[1],10)||0;a[2]=parseInt(a[2],10)||0;return b[0]>a[0]||b[0]==a[0]&&b[1]>a[1]||b[0]==a[0]&&b[1]==a[1]&&b[2]>=a[2]?!0: -!1}function Q(a,b,c,f){if(!e.ie||!e.mac){var g=d.getElementsByTagName("head")[0];g&&(c=c&&"string"==typeof c?c:"screen",f&&(L=m=null),m&&L==c||(f=d.createElement("style"),f.setAttribute("type","text/css"),f.setAttribute("media",c),m=g.appendChild(f),e.ie&&e.win&&"undefined"!=typeof d.styleSheets&&0<d.styleSheets.length&&(m=d.styleSheets[d.styleSheets.length-1]),L=c),e.ie&&e.win?m&&"object"==typeof m.addRule&&m.addRule(a,b):m&&"undefined"!=typeof d.createTextNode&&m.appendChild(d.createTextNode(a+ -" {"+b+"}")))}}function v(a,b){if(R){var c=b?"visible":"hidden";u&&p(a)?p(a).style.visibility=c:Q("#"+a,"visibility:"+c)}}function S(a){return null!=/[\\\"<>\.;]/.exec(a)&&"undefined"!=typeof encodeURIComponent?encodeURIComponent(a):a}var n=window,d=document,t=navigator,T=!1,z=[function(){T?V():E()}],r=[],D=[],x=[],y,C,I,O,u=!1,B=!1,m,L,R=!0,e=function(){var a="undefined"!=typeof d.getElementById&&"undefined"!=typeof d.getElementsByTagName&&"undefined"!=typeof d.createElement,b=t.userAgent.toLowerCase(), -c=t.platform.toLowerCase(),f=c?/win/.test(c):/win/.test(b),c=c?/mac/.test(c):/mac/.test(b),b=/webkit/.test(b)?parseFloat(b.replace(/^.*webkit\/(\d+(\.\d+)?).*$/,"$1")):!1,g=!+"\v1",e=[0,0,0],h=null;if("undefined"!=typeof t.plugins&&"object"==typeof t.plugins["Shockwave Flash"])!(h=t.plugins["Shockwave Flash"].description)||"undefined"!=typeof t.mimeTypes&&t.mimeTypes["application/x-shockwave-flash"]&&!t.mimeTypes["application/x-shockwave-flash"].enabledPlugin||(T=!0,g=!1,h=h.replace(/^.*\s+(\S+\s+\S+$)/, -"$1"),e[0]=parseInt(h.replace(/^(.*)\..*$/,"$1"),10),e[1]=parseInt(h.replace(/^.*\.(.*)\s.*$/,"$1"),10),e[2]=/[a-zA-Z]/.test(h)?parseInt(h.replace(/^.*[a-zA-Z]+(.*)$/,"$1"),10):0);else if("undefined"!=typeof n.ActiveXObject)try{var k=new ActiveXObject("ShockwaveFlash.ShockwaveFlash");k&&(h=k.GetVariable("$version"))&&(g=!0,h=h.split(" ")[1].split(","),e=[parseInt(h[0],10),parseInt(h[1],10),parseInt(h[2],10)])}catch(l){}return{w3:a,pv:e,wk:b,ie:g,win:f,mac:c}}();(function(){e.w3&&(("undefined"!=typeof d.readyState&& -"complete"==d.readyState||"undefined"==typeof d.readyState&&(d.getElementsByTagName("body")[0]||d.body))&&w(),u||("undefined"!=typeof d.addEventListener&&d.addEventListener("DOMContentLoaded",w,!1),e.ie&&e.win&&(d.attachEvent("onreadystatechange",function(){"complete"==d.readyState&&(d.detachEvent("onreadystatechange",arguments.callee),w())}),n==top&&function(){if(!u){try{d.documentElement.doScroll("left")}catch(a){setTimeout(arguments.callee,0);return}w()}}()),e.wk&&function(){u||(/loaded|complete/.test(d.readyState)? -w():setTimeout(arguments.callee,0))}(),N(w)))})();(function(){e.ie&&e.win&&window.attachEvent("onunload",function(){for(var a=x.length,b=0;b<a;b++)x[b][0].detachEvent(x[b][1],x[b][2]);a=D.length;for(b=0;b<a;b++)P(D[b]);for(var c in e)e[c]=null;e=null;for(var f in swfobject)swfobject[f]=null;swfobject=null})})();return{registerObject:function(a,b,c,f){if(e.w3&&a&&b){var d={};d.id=a;d.swfVersion=b;d.expressInstall=c;d.callbackFn=f;r[r.length]=d;v(a,!1)}else f&&f({success:!1,id:a})},getObjectById:function(a){if(e.w3)return H(a)}, -embedSWF:function(a,b,c,d,g,q,h,k,l,n){var p={success:!1,id:b};e.w3&&!(e.wk&&312>e.wk)&&a&&b&&c&&d&&g?(v(b,!1),M(function(){c+="";d+="";var e={};if(l&&"object"===typeof l)for(var m in l)e[m]=l[m];e.data=a;e.width=c;e.height=d;m={};if(k&&"object"===typeof k)for(var r in k)m[r]=k[r];if(h&&"object"===typeof h)for(var t in h)m.flashvars="undefined"!=typeof m.flashvars?m.flashvars+("\x26"+t+"\x3d"+h[t]):t+"\x3d"+h[t];if(A(g))r=K(e,m,b),e.id==b&&v(b,!0),p.success=!0,p.ref=r;else{if(q&&F()){e.data=q;G(e, -m,b,n);return}v(b,!0)}n&&n(p)})):n&&n(p)},switchOffAutoHideShow:function(){R=!1},ua:e,getFlashPlayerVersion:function(){return{major:e.pv[0],minor:e.pv[1],release:e.pv[2]}},hasFlashPlayerVersion:A,createSWF:function(a,b,c){if(e.w3)return K(a,b,c)},showExpressInstall:function(a,b,c,d){e.w3&&F()&&G(a,b,c,d)},removeSWF:function(a){e.w3&&P(a)},createCSS:function(a,b,c,d){e.w3&&Q(a,b,c,d)},addDomLoadEvent:M,addLoadEvent:N,getQueryParamValue:function(a){var b=d.location.search||d.location.hash;if(b){/\?/.test(b)&& -(b=b.split("?")[1]);if(null==a)return S(b);for(var b=b.split("\x26"),c=0;c<b.length;c++)if(b[c].substring(0,b[c].indexOf("\x3d"))==a)return S(b[c].substring(b[c].indexOf("\x3d")+1))}return""},expressInstallCallback:function(){if(B){var a=p("SWFObjectExprInst");a&&y&&(a.parentNode.replaceChild(y,a),C&&(v(C,!0),e.ie&&e.win&&(y.style.display="block")),I&&I(O));B=!1}}}}(); \ No newline at end of file diff --git a/admin/plugins/ckeditor/samples/old/htmlwriter/outputforflash.html b/admin/plugins/ckeditor/samples/old/htmlwriter/outputforflash.html deleted file mode 100644 index 2fea4ce..0000000 --- a/admin/plugins/ckeditor/samples/old/htmlwriter/outputforflash.html +++ /dev/null @@ -1,283 +0,0 @@ -<!DOCTYPE html> -<!-- -Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. -For licensing, see LICENSE.md or http://ckeditor.com/license ---> -<html> -<head> - <meta charset="utf-8"> - <title>Output for Flash &mdash; CKEditor Sample</title> - <script src="../../../ckeditor.js"></script> - <script src="../../../samples/old/sample.js"></script> - <script src="assets/outputforflash/swfobject.js"></script> - <link href="../../../samples/old/sample.css" rel="stylesheet"> - <meta name="ckeditor-sample-required-plugins" content="sourcearea"> - <meta name="ckeditor-sample-name" content="Output for Flash"> - <meta name="ckeditor-sample-group" content="Advanced Samples"> - <meta name="ckeditor-sample-description" content="Configuring CKEditor to produce HTML code that can be used with Adobe Flash."> - <style> - - .alert - { - background: #ffa84c; - padding: 10px 15px; - font-weight: bold; - display: block; - margin-bottom: 20px; - } - - </style> -</head> -<body> - <h1 class="samples"> - <a href="../../../samples/old/index.html">CKEditor Samples</a> &raquo; Producing Flash Compliant HTML Output - </h1> - <div class="warning deprecated"> - This sample is not maintained anymore. Check out the <a href="http://sdk.ckeditor.com/">brand new samples in CKEditor SDK</a>. - </div> - <div class="description"> - <p> - This sample shows how to configure CKEditor to output - HTML code that can be used with - <a class="samples" href="http://www.adobe.com/livedocs/flash/9.0/main/wwhelp/wwhimpl/common/html/wwhelp.htm?context=LiveDocs_Parts&amp;file=00000922.html"> - Adobe Flash</a>. - The code will contain a subset of standard HTML elements like <code>&lt;b&gt;</code>, - <code>&lt;i&gt;</code>, and <code>&lt;p&gt;</code> as well as HTML attributes. - </p> - <p> - To add a CKEditor instance outputting Flash compliant HTML code, load the editor using a standard - JavaScript call, and define CKEditor features to use HTML elements and attributes. - </p> - <p> - For details on how to create this setup check the source code of this sample page. - </p> - </div> - <p> - To see how it works, create some content in the editing area of CKEditor on the left - and send it to the Flash object on the right side of the page by using the - <strong>Send to Flash</strong> button. - </p> - <table style="width: 100%; border-spacing: 0; border-collapse:collapse;"> - <tr> - <td style="width: 100%"> - <textarea cols="80" id="editor1" name="editor1" rows="10">&lt;p&gt;&lt;b&gt;&lt;font size=&quot;18&quot; style=&quot;font-size:18px;&quot;&gt;Flash and HTML&lt;/font&gt;&lt;/b&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;It is possible to have &lt;a href=&quot;http://ckeditor.com&quot;&gt;CKEditor&lt;/a&gt; creating content that will be later loaded inside &lt;b&gt;Flash&lt;/b&gt; objects and animations.&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;Flash has a few limitations when dealing with HTML:&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;It has limited support on tags.&lt;/li&gt;&lt;li&gt;There is no margin between block elements, like paragraphs.&lt;/li&gt;&lt;/ul&gt;</textarea> - <script> - - if ( document.location.protocol == 'file:' ) - alert( 'Warning: This samples does not work when loaded from local filesystem' + - 'due to security restrictions implemented in Flash.' + - '\n\nPlease load the sample from a web server instead.' ); - - var editor = CKEDITOR.replace( 'editor1', { - /* - * Ensure that htmlwriter plugin, which is required for this sample, is loaded. - */ - extraPlugins: 'htmlwriter', - - height: 290, - width: '100%', - toolbar: [ - [ 'Source', '-', 'Bold', 'Italic', 'Underline', '-', 'BulletedList', '-', 'Link', 'Unlink' ], - [ 'JustifyLeft', 'JustifyCenter', 'JustifyRight', 'JustifyBlock' ], - '/', - [ 'Font', 'FontSize' ], - [ 'TextColor', '-', 'About' ] - ], - - /* - * Style sheet for the contents - */ - contentsCss: 'body {color:#000; background-color#FFF; font-family: Arial; font-size:80%;} p, ol, ul {margin-top: 0px; margin-bottom: 0px;}', - - /* - * Quirks doctype - */ - docType: '<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">', - - /* - * Core styles. - */ - coreStyles_bold: { element: 'b' }, - coreStyles_italic: { element: 'i' }, - coreStyles_underline: { element: 'u' }, - - /* - * Font face. - */ - - // Define the way font elements will be applied to the document. The "font" - // element will be used. - font_style: { - element: 'font', - attributes: { 'face': '#(family)' } - }, - - /* - * Font sizes. - */ - - // The CSS part of the font sizes isn't used by Flash, it is there to get the - // font rendered correctly in CKEditor. - fontSize_sizes: '8px/8;9px/9;10px/10;11px/11;12px/12;14px/14;16px/16;18px/18;20px/20;22px/22;24px/24;26px/26;28px/28;36px/36;48px/48;72px/72', - fontSize_style: { - element: 'font', - attributes: { 'size': '#(size)' }, - styles: { 'font-size': '#(size)px' } - } , - - /* - * Font colors. - */ - colorButton_enableMore: true, - - colorButton_foreStyle: { - element: 'font', - attributes: { 'color': '#(color)' } - }, - - colorButton_backStyle: { - element: 'font', - styles: { 'background-color': '#(color)' } - }, - - on: { 'instanceReady': configureFlashOutput } - }); - - /* - * Adjust the behavior of the dataProcessor to match the - * requirements of Flash - */ - function configureFlashOutput( ev ) { - var editor = ev.editor, - dataProcessor = editor.dataProcessor, - htmlFilter = dataProcessor && dataProcessor.htmlFilter; - - // Out self closing tags the HTML4 way, like <br>. - dataProcessor.writer.selfClosingEnd = '>'; - - // Make output formatting match Flash expectations - var dtd = CKEDITOR.dtd; - for ( var e in CKEDITOR.tools.extend( {}, dtd.$nonBodyContent, dtd.$block, dtd.$listItem, dtd.$tableContent ) ) { - dataProcessor.writer.setRules( e, { - indent: false, - breakBeforeOpen: false, - breakAfterOpen: false, - breakBeforeClose: false, - breakAfterClose: false - }); - } - dataProcessor.writer.setRules( 'br', { - indent: false, - breakBeforeOpen: false, - breakAfterOpen: false, - breakBeforeClose: false, - breakAfterClose: false - }); - - // Output properties as attributes, not styles. - htmlFilter.addRules( { - elements: { - $: function( element ) { - var style, match, width, height, align; - - // Output dimensions of images as width and height - if ( element.name == 'img' ) { - style = element.attributes.style; - - if ( style ) { - // Get the width from the style. - match = ( /(?:^|\s)width\s*:\s*(\d+)px/i ).exec( style ); - width = match && match[1]; - - // Get the height from the style. - match = ( /(?:^|\s)height\s*:\s*(\d+)px/i ).exec( style ); - height = match && match[1]; - - if ( width ) { - element.attributes.style = element.attributes.style.replace( /(?:^|\s)width\s*:\s*(\d+)px;?/i , '' ); - element.attributes.width = width; - } - - if ( height ) { - element.attributes.style = element.attributes.style.replace( /(?:^|\s)height\s*:\s*(\d+)px;?/i , '' ); - element.attributes.height = height; - } - } - } - - // Output alignment of paragraphs using align - if ( element.name == 'p' ) { - style = element.attributes.style; - - if ( style ) { - // Get the align from the style. - match = ( /(?:^|\s)text-align\s*:\s*(\w*);?/i ).exec( style ); - align = match && match[1]; - - if ( align ) { - element.attributes.style = element.attributes.style.replace( /(?:^|\s)text-align\s*:\s*(\w*);?/i , '' ); - element.attributes.align = align; - } - } - } - - if ( element.attributes.style === '' ) - delete element.attributes.style; - - return element; - } - } - }); - } - - function sendToFlash() { - var html = CKEDITOR.instances.editor1.getData() ; - - // Quick fix for link color. - html = html.replace( /<a /g, '<font color="#0000FF"><u><a ' ) - html = html.replace( /<\/a>/g, '</a></u></font>' ) - - var flash = document.getElementById( 'ckFlashContainer' ) ; - flash.setData( html ) ; - } - - CKEDITOR.domReady( function() { - if ( !swfobject.hasFlashPlayerVersion( '8' ) ) { - CKEDITOR.dom.element.createFromHtml( '<span class="alert">' + - 'At least Adobe Flash Player 8 is required to run this sample. ' + - 'You can download it from <a href="http://get.adobe.com/flashplayer">Adobe\'s website</a>.' + - '</span>' ).insertBefore( editor.element ); - } - - swfobject.embedSWF( - 'assets/outputforflash/outputforflash.swf', - 'ckFlashContainer', - '550', - '400', - '8', - { wmode: 'transparent' } - ); - }); - - </script> - <p> - <input type="button" value="Send to Flash" onclick="sendToFlash();"> - </p> - </td> - <td style="vertical-align: top; padding-left: 20px"> - <div id="ckFlashContainer"></div> - </td> - </tr> - </table> - <div id="footer"> - <hr> - <p> - CKEditor - The text editor for the Internet - <a class="samples" href="http://ckeditor.com/">http://ckeditor.com</a> - </p> - <p id="copy"> - Copyright &copy; 2003-2017, <a class="samples" href="http://cksource.com/">CKSource</a> - Frederico - Knabben. All rights reserved. - </p> - </div> -</body> -</html> diff --git a/admin/plugins/ckeditor/samples/old/htmlwriter/outputhtml.html b/admin/plugins/ckeditor/samples/old/htmlwriter/outputhtml.html deleted file mode 100644 index 9e32f6b..0000000 --- a/admin/plugins/ckeditor/samples/old/htmlwriter/outputhtml.html +++ /dev/null @@ -1,224 +0,0 @@ -<!DOCTYPE html> -<!-- -Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. -For licensing, see LICENSE.md or http://ckeditor.com/license ---> -<html> -<head> - <meta charset="utf-8"> - <title>HTML Compliant Output &mdash; CKEditor Sample</title> - <script src="../../../ckeditor.js"></script> - <script src="../../../samples/old/sample.js"></script> - <link href="../../../samples/old/sample.css" rel="stylesheet"> - <meta name="ckeditor-sample-required-plugins" content="sourcearea"> - <meta name="ckeditor-sample-name" content="Output HTML"> - <meta name="ckeditor-sample-group" content="Advanced Samples"> - <meta name="ckeditor-sample-description" content="Configuring CKEditor to produce legacy HTML 4 code."> -</head> -<body> - <h1 class="samples"> - <a href="../../../samples/old/index.html">CKEditor Samples</a> &raquo; Producing HTML Compliant Output - </h1> - <div class="warning deprecated"> - This sample is not maintained anymore. Check out the <a href="http://sdk.ckeditor.com/">brand new samples in CKEditor SDK</a>. - </div> - <div class="description"> - <p> - This sample shows how to configure CKEditor to output valid - <a class="samples" href="http://www.w3.org/TR/html401/">HTML 4.01</a> code. - Traditional HTML elements like <code>&lt;b&gt;</code>, - <code>&lt;i&gt;</code>, and <code>&lt;font&gt;</code> are used in place of - <code>&lt;strong&gt;</code>, <code>&lt;em&gt;</code>, and CSS styles. - </p> - <p> - To add a CKEditor instance outputting legacy HTML 4.01 code, load the editor using a standard - JavaScript call, and define CKEditor features to use the HTML compliant elements and attributes. - </p> - <p> - A snippet of the configuration code can be seen below; check the source of this page for - full definition: - </p> -<pre class="samples"> -CKEDITOR.replace( '<em>textarea_id</em>', { - coreStyles_bold: { element: 'b' }, - coreStyles_italic: { element: 'i' }, - - fontSize_style: { - element: 'font', - attributes: { 'size': '#(size)' } - } - - ... -});</pre> - </div> - <form action="../../../samples/sample_posteddata.php" method="post"> - <p> - <label for="editor1"> - Editor 1: - </label> - <textarea cols="80" id="editor1" name="editor1" rows="10">&lt;p&gt;This is some &lt;b&gt;sample text&lt;/b&gt;. You are using &lt;a href="http://ckeditor.com/"&gt;CKEditor&lt;/a&gt;.&lt;/p&gt;</textarea> - <script> - - CKEDITOR.replace( 'editor1', { - /* - * Ensure that htmlwriter plugin, which is required for this sample, is loaded. - */ - extraPlugins: 'htmlwriter', - - /* - * Style sheet for the contents - */ - contentsCss: 'body {color:#000; background-color#:FFF;}', - - /* - * Simple HTML5 doctype - */ - docType: '<!DOCTYPE HTML>', - - /* - * Allowed content rules which beside limiting allowed HTML - * will also take care of transforming styles to attributes - * (currently only for img - see transformation rules defined below). - * - * Read more: http://docs.ckeditor.com/#!/guide/dev_advanced_content_filter - */ - allowedContent: - 'h1 h2 h3 p pre[align]; ' + - 'blockquote code kbd samp var del ins cite q b i u strike ul ol li hr table tbody tr td th caption; ' + - 'img[!src,alt,align,width,height]; font[!face]; font[!family]; font[!color]; font[!size]; font{!background-color}; a[!href]; a[!name]', - - /* - * Core styles. - */ - coreStyles_bold: { element: 'b' }, - coreStyles_italic: { element: 'i' }, - coreStyles_underline: { element: 'u' }, - coreStyles_strike: { element: 'strike' }, - - /* - * Font face. - */ - - // Define the way font elements will be applied to the document. - // The "font" element will be used. - font_style: { - element: 'font', - attributes: { 'face': '#(family)' } - }, - - /* - * Font sizes. - */ - fontSize_sizes: 'xx-small/1;x-small/2;small/3;medium/4;large/5;x-large/6;xx-large/7', - fontSize_style: { - element: 'font', - attributes: { 'size': '#(size)' } - }, - - /* - * Font colors. - */ - - colorButton_foreStyle: { - element: 'font', - attributes: { 'color': '#(color)' } - }, - - colorButton_backStyle: { - element: 'font', - styles: { 'background-color': '#(color)' } - }, - - /* - * Styles combo. - */ - stylesSet: [ - { name: 'Computer Code', element: 'code' }, - { name: 'Keyboard Phrase', element: 'kbd' }, - { name: 'Sample Text', element: 'samp' }, - { name: 'Variable', element: 'var' }, - { name: 'Deleted Text', element: 'del' }, - { name: 'Inserted Text', element: 'ins' }, - { name: 'Cited Work', element: 'cite' }, - { name: 'Inline Quotation', element: 'q' } - ], - - on: { - pluginsLoaded: configureTransformations, - loaded: configureHtmlWriter - } - }); - - /* - * Add missing content transformations. - */ - function configureTransformations( evt ) { - var editor = evt.editor; - - editor.dataProcessor.htmlFilter.addRules( { - attributes: { - style: function( value, element ) { - // Return #RGB for background and border colors - return CKEDITOR.tools.convertRgbToHex( value ); - } - } - } ); - - // Default automatic content transformations do not yet take care of - // align attributes on blocks, so we need to add our own transformation rules. - function alignToAttribute( element ) { - if ( element.styles[ 'text-align' ] ) { - element.attributes.align = element.styles[ 'text-align' ]; - delete element.styles[ 'text-align' ]; - } - } - editor.filter.addTransformations( [ - [ { element: 'p', right: alignToAttribute } ], - [ { element: 'h1', right: alignToAttribute } ], - [ { element: 'h2', right: alignToAttribute } ], - [ { element: 'h3', right: alignToAttribute } ], - [ { element: 'pre', right: alignToAttribute } ] - ] ); - } - - /* - * Adjust the behavior of htmlWriter to make it output HTML like FCKeditor. - */ - function configureHtmlWriter( evt ) { - var editor = evt.editor, - dataProcessor = editor.dataProcessor; - - // Out self closing tags the HTML4 way, like <br>. - dataProcessor.writer.selfClosingEnd = '>'; - - // Make output formatting behave similar to FCKeditor. - var dtd = CKEDITOR.dtd; - for ( var e in CKEDITOR.tools.extend( {}, dtd.$nonBodyContent, dtd.$block, dtd.$listItem, dtd.$tableContent ) ) { - dataProcessor.writer.setRules( e, { - indent: true, - breakBeforeOpen: true, - breakAfterOpen: false, - breakBeforeClose: !dtd[ e ][ '#' ], - breakAfterClose: true - }); - } - } - - </script> - </p> - <p> - <input type="submit" value="Submit"> - </p> - </form> - <div id="footer"> - <hr> - <p> - CKEditor - The text editor for the Internet - <a class="samples" href="http://ckeditor.com/">http://ckeditor.com</a> - </p> - <p id="copy"> - Copyright &copy; 2003-2017, <a class="samples" href="http://cksource.com/">CKSource</a> - Frederico - Knabben. All rights reserved. - </p> - </div> -</body> -</html> diff --git a/admin/plugins/ckeditor/samples/old/index.html b/admin/plugins/ckeditor/samples/old/index.html deleted file mode 100644 index b2ee7f9..0000000 --- a/admin/plugins/ckeditor/samples/old/index.html +++ /dev/null @@ -1,131 +0,0 @@ -<!DOCTYPE html> -<!-- -Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. -For licensing, see LICENSE.md or http://ckeditor.com/license ---> -<html> -<head> - <meta charset="utf-8"> - <title>CKEditor Samples</title> - <link rel="stylesheet" href="sample.css"> -</head> -<body> - <h1 class="samples"> - CKEditor Samples - </h1> - <div class="warning deprecated"> - These samples are not maintained anymore. Check out the <a href="http://sdk.ckeditor.com/">brand new samples in CKEditor SDK</a>. - </div> - <div class="twoColumns"> - <div class="twoColumnsLeft"> - <h2 class="samples"> - Basic Samples - </h2> - <dl class="samples"> - <dt><a class="samples" href="replacebyclass.html">Replace textarea elements by class name</a></dt> - <dd>Automatic replacement of all textarea elements of a given class with a CKEditor instance.</dd> - - <dt><a class="samples" href="replacebycode.html">Replace textarea elements by code</a></dt> - <dd>Replacement of textarea elements with CKEditor instances by using a JavaScript call.</dd> - - <dt><a class="samples" href="jquery.html">Create editors with jQuery</a></dt> - <dd>Creating standard and inline CKEditor instances with jQuery adapter.</dd> - </dl> - - <h2 class="samples"> - Basic Customization - </h2> - <dl class="samples"> - <dt><a class="samples" href="uicolor.html">User Interface color</a></dt> - <dd>Changing CKEditor User Interface color and adding a toolbar button that lets the user set the UI color.</dd> - - <dt><a class="samples" href="uilanguages.html">User Interface languages</a></dt> - <dd>Changing CKEditor User Interface language and adding a drop-down list that lets the user choose the UI language.</dd> - </dl> - - - <h2 class="samples">Plugins</h2> -<dl class="samples"> -<dt><a class="samples" href="magicline/magicline.html">Magicline plugin</a></dt> -<dd>Using the Magicline plugin to access difficult focus spaces.</dd> - -<dt><a class="samples" href="wysiwygarea/fullpage.html">Full page support</a></dt> -<dd>CKEditor inserted with a JavaScript call and used to edit the whole page from &lt;html&gt; to &lt;/html&gt;.</dd> -</dl> - </div> - <div class="twoColumnsRight"> - <h2 class="samples"> - Inline Editing - </h2> - <dl class="samples"> - <dt><a class="samples" href="inlineall.html">Massive inline editor creation</a></dt> - <dd>Turn all elements with <code>contentEditable = true</code> attribute into inline editors.</dd> - - <dt><a class="samples" href="inlinebycode.html">Convert element into an inline editor by code</a></dt> - <dd>Conversion of DOM elements into inline CKEditor instances by using a JavaScript call.</dd> - - <dt><a class="samples" href="inlinetextarea.html">Replace textarea with inline editor</a> <span class="new">New!</span></dt> - <dd>A form with a textarea that is replaced by an inline editor at runtime.</dd> - - - </dl> - - <h2 class="samples"> - Advanced Samples - </h2> - <dl class="samples"> - <dt><a class="samples" href="datafiltering.html">Data filtering and features activation</a> <span class="new">New!</span></dt> - <dd>Data filtering and automatic features activation basing on configuration.</dd> - - <dt><a class="samples" href="divreplace.html">Replace DIV elements on the fly</a></dt> - <dd>Transforming a <code>div</code> element into an instance of CKEditor with a mouse click.</dd> - - <dt><a class="samples" href="appendto.html">Append editor instances</a></dt> - <dd>Appending editor instances to existing DOM elements.</dd> - - <dt><a class="samples" href="ajax.html">Create and destroy editor instances for Ajax applications</a></dt> - <dd>Creating and destroying CKEditor instances on the fly and saving the contents entered into the editor window.</dd> - - <dt><a class="samples" href="api.html">Basic usage of the API</a></dt> - <dd>Using the CKEditor JavaScript API to interact with the editor at runtime.</dd> - - <dt><a class="samples" href="xhtmlstyle.html">XHTML-compliant style</a></dt> - <dd>Configuring CKEditor to produce XHTML 1.1 compliant attributes and styles.</dd> - - <dt><a class="samples" href="readonly.html">Read-only mode</a></dt> - <dd>Using the readOnly API to block introducing changes to the editor contents.</dd> - - <dt><a class="samples" href="tabindex.html">"Tab" key-based navigation</a></dt> - <dd>Navigating among editor instances with tab key.</dd> - - - -<dt><a class="samples" href="dialog/dialog.html">Using the JavaScript API to customize dialog windows</a></dt> -<dd>Using the dialog windows API to customize dialog windows without changing the original editor code.</dd> - -<dt><a class="samples" href="enterkey/enterkey.html">Using the &quot;Enter&quot; key in CKEditor</a></dt> -<dd>Configuring the behavior of <em>Enter</em> and <em>Shift+Enter</em> keys.</dd> - -<dt><a class="samples" href="htmlwriter/outputforflash.html">Output for Flash</a></dt> -<dd>Configuring CKEditor to produce HTML code that can be used with Adobe Flash.</dd> - -<dt><a class="samples" href="htmlwriter/outputhtml.html">Output HTML</a></dt> -<dd>Configuring CKEditor to produce legacy HTML 4 code.</dd> - -<dt><a class="samples" href="toolbar/toolbar.html">Toolbar Configurations</a></dt> -<dd>Configuring CKEditor to display full or custom toolbar layout.</dd> - - </dl> - </div> - </div> - <div id="footer"> - <hr> - <p> - CKEditor - The text editor for the Internet - <a class="samples" href="http://ckeditor.com/">http://ckeditor.com</a> - </p> - <p id="copy"> - Copyright &copy; 2003-2017, <a class="samples" href="http://cksource.com/">CKSource</a> - Frederico Knabben. All rights reserved. - </p> - </div> -</body> -</html> diff --git a/admin/plugins/ckeditor/samples/old/inlineall.html b/admin/plugins/ckeditor/samples/old/inlineall.html deleted file mode 100644 index 8220ea5..0000000 --- a/admin/plugins/ckeditor/samples/old/inlineall.html +++ /dev/null @@ -1,314 +0,0 @@ -<!DOCTYPE html> -<!-- -Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. -For licensing, see LICENSE.md or http://ckeditor.com/license ---> -<html> -<head> - <meta charset="utf-8"> - <title>Massive inline editing &mdash; CKEditor Sample</title> - <script src="../../ckeditor.js"></script> - <script> - - // This code is generally not necessary, but it is here to demonstrate - // how to customize specific editor instances on the fly. This fits well - // this demo because we have editable elements (like headers) that - // require less features. - - // The "instanceCreated" event is fired for every editor instance created. - CKEDITOR.on( 'instanceCreated', function( event ) { - var editor = event.editor, - element = editor.element; - - // Customize editors for headers and tag list. - // These editors don't need features like smileys, templates, iframes etc. - if ( element.is( 'h1', 'h2', 'h3' ) || element.getAttribute( 'id' ) == 'taglist' ) { - // Customize the editor configurations on "configLoaded" event, - // which is fired after the configuration file loading and - // execution. This makes it possible to change the - // configurations before the editor initialization takes place. - editor.on( 'configLoaded', function() { - - // Remove unnecessary plugins to make the editor simpler. - editor.config.removePlugins = 'colorbutton,find,flash,font,' + - 'forms,iframe,image,newpage,removeformat,' + - 'smiley,specialchar,stylescombo,templates'; - - // Rearrange the layout of the toolbar. - editor.config.toolbarGroups = [ - { name: 'editing', groups: [ 'basicstyles', 'links' ] }, - { name: 'undo' }, - { name: 'clipboard', groups: [ 'selection', 'clipboard' ] }, - { name: 'about' } - ]; - }); - } - }); - - </script> - <link href="sample.css" rel="stylesheet"> - <style> - - /* The following styles are just to make the page look nice. */ - - /* Workaround to show Arial Black in Firefox. */ - @font-face - { - font-family: 'arial-black'; - src: local('Arial Black'); - } - - *[contenteditable="true"] - { - padding: 10px; - } - - #container - { - width: 960px; - margin: 30px auto 0; - } - - #header - { - overflow: hidden; - padding: 0 0 30px; - border-bottom: 5px solid #05B2D2; - position: relative; - } - - #headerLeft, - #headerRight - { - width: 49%; - overflow: hidden; - } - - #headerLeft - { - float: left; - padding: 10px 1px 1px; - } - - #headerLeft h2, - #headerLeft h3 - { - text-align: right; - margin: 0; - overflow: hidden; - font-weight: normal; - } - - #headerLeft h2 - { - font-family: "Arial Black",arial-black; - font-size: 4.6em; - line-height: 1.1; - text-transform: uppercase; - } - - #headerLeft h3 - { - font-size: 2.3em; - line-height: 1.1; - margin: .2em 0 0; - color: #666; - } - - #headerRight - { - float: right; - padding: 1px; - } - - #headerRight p - { - line-height: 1.8; - text-align: justify; - margin: 0; - } - - #headerRight p + p - { - margin-top: 20px; - } - - #headerRight > div - { - padding: 20px; - margin: 0 0 0 30px; - font-size: 1.4em; - color: #666; - } - - #columns - { - color: #333; - overflow: hidden; - padding: 20px 0; - } - - #columns > div - { - float: left; - width: 33.3%; - } - - #columns #column1 > div - { - margin-left: 1px; - } - - #columns #column3 > div - { - margin-right: 1px; - } - - #columns > div > div - { - margin: 0px 10px; - padding: 10px 20px; - } - - #columns blockquote - { - margin-left: 15px; - } - - #tagLine - { - border-top: 5px solid #05B2D2; - padding-top: 20px; - } - - #taglist { - display: inline-block; - margin-left: 20px; - font-weight: bold; - margin: 0 0 0 20px; - } - - </style> -</head> -<body> -<div> - <h1 class="samples"><a href="index.html">CKEditor Samples</a> &raquo; Massive inline editing</h1> - <div class="warning deprecated"> - This sample is not maintained anymore. Check out its <a href="http://sdk.ckeditor.com/samples/inline.html">brand new version in CKEditor SDK</a>. - </div> - <div class="description"> - <p>This sample page demonstrates the inline editing feature - CKEditor instances will be created automatically from page elements with <strong>contentEditable</strong> attribute set to value <strong>true</strong>:</p> - <pre class="samples">&lt;div <strong>contenteditable="true</strong>" &gt; ... &lt;/div&gt;</pre> - <p>Click inside of any element below to start editing.</p> - </div> -</div> -<div id="container"> - <div id="header"> - <div id="headerLeft"> - <h2 id="sampleTitle" contenteditable="true"> - CKEditor<br> Goes Inline! - </h2> - <h3 contenteditable="true"> - Lorem ipsum dolor sit amet dolor duis blandit vestibulum faucibus a, tortor. - </h3> - </div> - <div id="headerRight"> - <div contenteditable="true"> - <p> - Lorem ipsum dolor sit amet enim. Etiam ullamcorper. Suspendisse a pellentesque dui, non felis. Maecenas malesuada elit lectus felis, malesuada ultricies. - </p> - <p> - Curabitur et ligula. Ut molestie a, ultricies porta urna. Vestibulum commodo volutpat a, convallis ac, laoreet enim. Phasellus fermentum in, dolor. Pellentesque facilisis. Nulla imperdiet sit amet magna. Vestibulum dapibus, mauris nec malesuada fames ac. - </p> - </div> - </div> - </div> - <div id="columns"> - <div id="column1"> - <div contenteditable="true"> - <h3> - Fusce vitae porttitor - </h3> - <p> - <strong> - Lorem ipsum dolor sit amet dolor. Duis blandit vestibulum faucibus a, tortor. - </strong> - </p> - <p> - Proin nunc justo felis mollis tincidunt, risus risus pede, posuere cubilia Curae, Nullam euismod, enim. Etiam nibh ultricies dolor ac dignissim erat volutpat. Vivamus fermentum <a href="http://ckeditor.com/">nisl nulla sem in</a> metus. Maecenas wisi. Donec nec erat volutpat. - </p> - <blockquote> - <p> - Fusce vitae porttitor a, euismod convallis nisl, blandit risus tortor, pretium. - Vehicula vitae, imperdiet vel, ornare enim vel sodales rutrum - </p> - </blockquote> - <blockquote> - <p> - Libero nunc, rhoncus ante ipsum non ipsum. Nunc eleifend pede turpis id sollicitudin fringilla. Phasellus ultrices, velit ac arcu. - </p> - </blockquote> - <p>Pellentesque nunc. Donec suscipit erat. Pellentesque habitant morbi tristique ullamcorper.</p> - <p><s>Mauris mattis feugiat lectus nec mauris. Nullam vitae ante.</s></p> - </div> - </div> - <div id="column2"> - <div contenteditable="true"> - <h3> - Integer condimentum sit amet - </h3> - <p> - <strong>Aenean nonummy a, mattis varius. Cras aliquet.</strong> - Praesent <a href="http://ckeditor.com/">magna non mattis ac, rhoncus nunc</a>, rhoncus eget, cursus pulvinar mollis.</p> - <p>Proin id nibh. Sed eu libero posuere sed, lectus. Phasellus dui gravida gravida feugiat mattis ac, felis.</p> - <p>Integer condimentum sit amet, tempor elit odio, a dolor non ante at sapien. Sed ac lectus. Nulla ligula quis eleifend mi, id leo velit pede cursus arcu id nulla ac lectus. Phasellus vestibulum. Nunc viverra enim quis diam.</p> - </div> - <div contenteditable="true"> - <h3> - Praesent wisi accumsan sit amet nibh - </h3> - <p>Donec ullamcorper, risus tortor, pretium porttitor. Morbi quam quis lectus non leo.</p> - <p style="margin-left: 40px; ">Integer faucibus scelerisque. Proin faucibus at, aliquet vulputate, odio at eros. Fusce <a href="http://ckeditor.com/">gravida, erat vitae augue</a>. Fusce urna fringilla gravida.</p> - <p>In hac habitasse platea dictumst. Praesent wisi accumsan sit amet nibh. Maecenas orci luctus a, lacinia quam sem, posuere commodo, odio condimentum tempor, pede semper risus. Suspendisse pede. In hac habitasse platea dictumst. Nam sed laoreet sit amet erat. Integer.</p> - </div> - </div> - <div id="column3"> - <div contenteditable="true"> - <p> - <img src="assets/inlineall/logo.png" alt="CKEditor logo" style="float:left"> - </p> - <p>Quisque justo neque, mattis sed, fermentum ultrices <strong>posuere cubilia Curae</strong>, Vestibulum elit metus, quis placerat ut, lectus. Ut sagittis, nunc libero, egestas consequat lobortis velit rutrum ut, faucibus turpis. Fusce porttitor, nulla quis turpis. Nullam laoreet vel, consectetuer tellus suscipit ultricies, hendrerit wisi. Donec odio nec velit ac nunc sit amet, accumsan cursus aliquet. Vestibulum ante sit amet sagittis mi.</p> - <h3> - Nullam laoreet vel consectetuer tellus suscipit - </h3> - <ul> - <li>Ut sagittis, nunc libero, egestas consequat lobortis velit rutrum ut, faucibus turpis.</li> - <li>Fusce porttitor, nulla quis turpis. Nullam laoreet vel, consectetuer tellus suscipit ultricies, hendrerit wisi.</li> - <li>Mauris eget tellus. Donec non felis. Nam eget dolor. Vestibulum enim. Donec.</li> - </ul> - <p>Quisque justo neque, mattis sed, <a href="http://ckeditor.com/">fermentum ultrices posuere cubilia</a> Curae, Vestibulum elit metus, quis placerat ut, lectus.</p> - <p>Nullam laoreet vel, consectetuer tellus suscipit ultricies, hendrerit wisi. Ut sagittis, nunc libero, egestas consequat lobortis velit rutrum ut, faucibus turpis. Fusce porttitor, nulla quis turpis.</p> - <p>Donec odio nec velit ac nunc sit amet, accumsan cursus aliquet. Vestibulum ante sit amet sagittis mi. Sed in nonummy faucibus turpis. Mauris eget tellus. Donec non felis. Nam eget dolor. Vestibulum enim. Donec.</p> - </div> - </div> - </div> - <div id="tagLine"> - Tags of this article: - <p id="taglist" contenteditable="true"> - inline, editing, floating, CKEditor - </p> - </div> -</div> -<div id="footer"> - <hr> - <p> - CKEditor - The text editor for the Internet - <a class="samples" href="http://ckeditor.com/"> - http://ckeditor.com</a> - </p> - <p id="copy"> - Copyright &copy; 2003-2017, <a class="samples" href="http://cksource.com/">CKSource</a> - - Frederico Knabben. All rights reserved. - </p> -</div> -</body> -</html> diff --git a/admin/plugins/ckeditor/samples/old/inlinebycode.html b/admin/plugins/ckeditor/samples/old/inlinebycode.html deleted file mode 100644 index eea2723..0000000 --- a/admin/plugins/ckeditor/samples/old/inlinebycode.html +++ /dev/null @@ -1,124 +0,0 @@ -<!DOCTYPE html> -<!-- -Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. -For licensing, see LICENSE.md or http://ckeditor.com/license ---> -<html> -<head> - <meta charset="utf-8"> - <title>Inline Editing by Code &mdash; CKEditor Sample</title> - <script src="../../ckeditor.js"></script> - <link href="sample.css" rel="stylesheet"> - <style> - - #editable - { - padding: 10px; - float: left; - } - - </style> -</head> -<body> - <h1 class="samples"> - <a href="index.html">CKEditor Samples</a> &raquo; Inline Editing by Code - </h1> - <div class="warning deprecated"> - This sample is not maintained anymore. Check out its <a href="http://sdk.ckeditor.com/samples/inline.html">brand new version in CKEditor SDK</a>. - </div> - <div class="description"> - <p> - This sample shows how to create an inline editor instance of CKEditor. It is created - with a JavaScript call using the following code: - </p> -<pre class="samples"> -// This property tells CKEditor to not activate every element with contenteditable=true element. -CKEDITOR.disableAutoInline = true; - -var editor = CKEDITOR.inline( document.getElementById( 'editable' ) ); -</pre> - <p> - Note that <code>editable</code> in the code above is the <code>id</code> - attribute of the <code>&lt;div&gt;</code> element to be converted into an inline instance. - </p> - </div> - <div id="editable" contenteditable="true"> - <h1><img alt="Saturn V carrying Apollo 11" class="right" src="assets/sample.jpg" /> Apollo 11</h1> - - <p><b>Apollo 11</b> was the spaceflight that landed the first humans, Americans <a href="http://en.wikipedia.org/wiki/Neil_Armstrong" title="Neil Armstrong">Neil Armstrong</a> and <a href="http://en.wikipedia.org/wiki/Buzz_Aldrin" title="Buzz Aldrin">Buzz Aldrin</a>, on the Moon on July 20, 1969, at 20:18 UTC. Armstrong became the first to step onto the lunar surface 6 hours later on July 21 at 02:56 UTC.</p> - - <p>Armstrong spent about <s>three and a half</s> two and a half hours outside the spacecraft, Aldrin slightly less; and together they collected 47.5 pounds (21.5&nbsp;kg) of lunar material for return to Earth. A third member of the mission, <a href="http://en.wikipedia.org/wiki/Michael_Collins_(astronaut)" title="Michael Collins (astronaut)">Michael Collins</a>, piloted the <a href="http://en.wikipedia.org/wiki/Apollo_Command/Service_Module" title="Apollo Command/Service Module">command</a> spacecraft alone in lunar orbit until Armstrong and Aldrin returned to it for the trip back to Earth.</p> - - <h2>Broadcasting and <em>quotes</em> <a id="quotes" name="quotes"></a></h2> - - <p>Broadcast on live TV to a world-wide audience, Armstrong stepped onto the lunar surface and described the event as:</p> - - <blockquote> - <p>One small step for [a] man, one giant leap for mankind.</p> - </blockquote> - - <p>Apollo 11 effectively ended the <a href="http://en.wikipedia.org/wiki/Space_Race" title="Space Race">Space Race</a> and fulfilled a national goal proposed in 1961 by the late U.S. President <a href="http://en.wikipedia.org/wiki/John_F._Kennedy" title="John F. Kennedy">John F. Kennedy</a> in a speech before the United States Congress:</p> - - <blockquote> - <p>[...] before this decade is out, of landing a man on the Moon and returning him safely to the Earth.</p> - </blockquote> - - <h2>Technical details <a id="tech-details" name="tech-details"></a></h2> - - <table align="right" border="1" bordercolor="#ccc" cellpadding="5" cellspacing="0" style="border-collapse:collapse;margin:10px 0 10px 15px;"> - <caption><strong>Mission crew</strong></caption> - <thead> - <tr> - <th scope="col">Position</th> - <th scope="col">Astronaut</th> - </tr> - </thead> - <tbody> - <tr> - <td>Commander</td> - <td>Neil A. Armstrong</td> - </tr> - <tr> - <td>Command Module Pilot</td> - <td>Michael Collins</td> - </tr> - <tr> - <td>Lunar Module Pilot</td> - <td>Edwin &quot;Buzz&quot; E. Aldrin, Jr.</td> - </tr> - </tbody> - </table> - - <p>Launched by a <strong>Saturn V</strong> rocket from <a href="http://en.wikipedia.org/wiki/Kennedy_Space_Center" title="Kennedy Space Center">Kennedy Space Center</a> in Merritt Island, Florida on July 16, Apollo 11 was the fifth manned mission of <a href="http://en.wikipedia.org/wiki/NASA" title="NASA">NASA</a>&#39;s Apollo program. The Apollo spacecraft had three parts:</p> - - <ol> - <li><strong>Command Module</strong> with a cabin for the three astronauts which was the only part which landed back on Earth</li> - <li><strong>Service Module</strong> which supported the Command Module with propulsion, electrical power, oxygen and water</li> - <li><strong>Lunar Module</strong> for landing on the Moon.</li> - </ol> - - <p>After being sent to the Moon by the Saturn V&#39;s upper stage, the astronauts separated the spacecraft from it and travelled for three days until they entered into lunar orbit. Armstrong and Aldrin then moved into the Lunar Module and landed in the <a href="http://en.wikipedia.org/wiki/Mare_Tranquillitatis" title="Mare Tranquillitatis">Sea of Tranquility</a>. They stayed a total of about 21 and a half hours on the lunar surface. After lifting off in the upper part of the Lunar Module and rejoining Collins in the Command Module, they returned to Earth and landed in the <a href="http://en.wikipedia.org/wiki/Pacific_Ocean" title="Pacific Ocean">Pacific Ocean</a> on July 24.</p> - - <hr /> - <p style="text-align: right;"><small>Source: <a href="http://en.wikipedia.org/wiki/Apollo_11">Wikipedia.org</a></small></p> - </div> - - <script> - // We need to turn off the automatic editor creation first. - CKEDITOR.disableAutoInline = true; - - var editor = CKEDITOR.inline( 'editable' ); - </script> - <div id="footer"> - <hr> - <p contenteditable="true"> - CKEditor - The text editor for the Internet - <a class="samples" href="http://ckeditor.com/"> - http://ckeditor.com</a> - </p> - <p id="copy"> - Copyright &copy; 2003-2017, <a class="samples" href="http://cksource.com/">CKSource</a> - - Frederico Knabben. All rights reserved. - </p> - </div> -</body> -</html> diff --git a/admin/plugins/ckeditor/samples/old/inlinetextarea.html b/admin/plugins/ckeditor/samples/old/inlinetextarea.html deleted file mode 100644 index 57e664e..0000000 --- a/admin/plugins/ckeditor/samples/old/inlinetextarea.html +++ /dev/null @@ -1,113 +0,0 @@ -<!DOCTYPE html> -<!-- -Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. -For licensing, see LICENSE.md or http://ckeditor.com/license ---> -<html> -<head> - <meta charset="utf-8"> - <title>Replace Textarea with Inline Editor &mdash; CKEditor Sample</title> - <script src="../../ckeditor.js"></script> - <link href="sample.css" rel="stylesheet"> - <style> - - /* Style the CKEditor element to look like a textfield */ - .cke_textarea_inline - { - padding: 10px; - height: 200px; - overflow: auto; - - border: 1px solid gray; - -webkit-appearance: textfield; - } - - </style> -</head> -<body> - <h1 class="samples"> - <a href="index.html">CKEditor Samples</a> &raquo; Replace Textarea with Inline Editor - </h1> - <div class="warning deprecated"> - This sample is not maintained anymore. Check out its <a href="http://sdk.ckeditor.com/samples/inline.html">brand new version in CKEditor SDK</a>. - </div> - <div class="description"> - <p> - You can also create an inline editor from a <code>textarea</code> - element. In this case the <code>textarea</code> will be replaced - by a <code>div</code> element with inline editing enabled. - </p> -<pre class="samples"> -// "article-body" is the name of a textarea element. -var editor = CKEDITOR.inline( 'article-body' ); -</pre> - </div> - <form action="sample_posteddata.php" method="post"> - <h2>This is a sample form with some fields</h2> - <p> - Title:<br> - <input type="text" name="title" value="Sample Form"></p> - <p> - Article Body (Textarea converted to CKEditor):<br> - <textarea name="article-body" style="height: 200px"> - &lt;h2&gt;Technical details &lt;a id="tech-details" name="tech-details"&gt;&lt;/a&gt;&lt;/h2&gt; - - &lt;table align="right" border="1" bordercolor="#ccc" cellpadding="5" cellspacing="0" style="border-collapse:collapse;margin:10px 0 10px 15px;"&gt; - &lt;caption&gt;&lt;strong&gt;Mission crew&lt;/strong&gt;&lt;/caption&gt; - &lt;thead&gt; - &lt;tr&gt; - &lt;th scope="col"&gt;Position&lt;/th&gt; - &lt;th scope="col"&gt;Astronaut&lt;/th&gt; - &lt;/tr&gt; - &lt;/thead&gt; - &lt;tbody&gt; - &lt;tr&gt; - &lt;td&gt;Commander&lt;/td&gt; - &lt;td&gt;Neil A. Armstrong&lt;/td&gt; - &lt;/tr&gt; - &lt;tr&gt; - &lt;td&gt;Command Module Pilot&lt;/td&gt; - &lt;td&gt;Michael Collins&lt;/td&gt; - &lt;/tr&gt; - &lt;tr&gt; - &lt;td&gt;Lunar Module Pilot&lt;/td&gt; - &lt;td&gt;Edwin &quot;Buzz&quot; E. Aldrin, Jr.&lt;/td&gt; - &lt;/tr&gt; - &lt;/tbody&gt; - &lt;/table&gt; - - &lt;p&gt;Launched by a &lt;strong&gt;Saturn V&lt;/strong&gt; rocket from &lt;a href="http://en.wikipedia.org/wiki/Kennedy_Space_Center" title="Kennedy Space Center"&gt;Kennedy Space Center&lt;/a&gt; in Merritt Island, Florida on July 16, Apollo 11 was the fifth manned mission of &lt;a href="http://en.wikipedia.org/wiki/NASA" title="NASA"&gt;NASA&lt;/a&gt;&#39;s Apollo program. The Apollo spacecraft had three parts:&lt;/p&gt; - - &lt;ol&gt; - &lt;li&gt;&lt;strong&gt;Command Module&lt;/strong&gt; with a cabin for the three astronauts which was the only part which landed back on Earth&lt;/li&gt; - &lt;li&gt;&lt;strong&gt;Service Module&lt;/strong&gt; which supported the Command Module with propulsion, electrical power, oxygen and water&lt;/li&gt; - &lt;li&gt;&lt;strong&gt;Lunar Module&lt;/strong&gt; for landing on the Moon.&lt;/li&gt; - &lt;/ol&gt; - - &lt;p&gt;After being sent to the Moon by the Saturn V&#39;s upper stage, the astronauts separated the spacecraft from it and travelled for three days until they entered into lunar orbit. Armstrong and Aldrin then moved into the Lunar Module and landed in the &lt;a href="http://en.wikipedia.org/wiki/Mare_Tranquillitatis" title="Mare Tranquillitatis"&gt;Sea of Tranquility&lt;/a&gt;. They stayed a total of about 21 and a half hours on the lunar surface. After lifting off in the upper part of the Lunar Module and rejoining Collins in the Command Module, they returned to Earth and landed in the &lt;a href="http://en.wikipedia.org/wiki/Pacific_Ocean" title="Pacific Ocean"&gt;Pacific Ocean&lt;/a&gt; on July 24.&lt;/p&gt; - - &lt;hr /&gt; - &lt;p style="text-align: right;"&gt;&lt;small&gt;Source: &lt;a href="http://en.wikipedia.org/wiki/Apollo_11"&gt;Wikipedia.org&lt;/a&gt;&lt;/small&gt;&lt;/p&gt; - </textarea> - </p> - <p> - <input type="submit" value="Submit"> - </p> - </form> - - <script> - CKEDITOR.inline( 'article-body' ); - </script> - <div id="footer"> - <hr> - <p> - CKEditor - The text editor for the Internet - <a class="samples" href="http://ckeditor.com/"> - http://ckeditor.com</a> - </p> - <p id="copy"> - Copyright &copy; 2003-2017, <a class="samples" href="http://cksource.com/">CKSource</a> - - Frederico Knabben. All rights reserved. - </p> - </div> -</body> -</html> diff --git a/admin/plugins/ckeditor/samples/old/jquery.html b/admin/plugins/ckeditor/samples/old/jquery.html deleted file mode 100644 index 2f6d958..0000000 --- a/admin/plugins/ckeditor/samples/old/jquery.html +++ /dev/null @@ -1,103 +0,0 @@ -<!DOCTYPE html> -<!-- -Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. -For licensing, see LICENSE.md or http://ckeditor.com/license ---> -<html> -<head> - <meta charset="utf-8"> - <title>jQuery Adapter &mdash; CKEditor Sample</title> - <script src="http://code.jquery.com/jquery-1.11.0.min.js"></script> - <script src="../../ckeditor.js"></script> - <script src="../../adapters/jquery.js"></script> - <link href="sample.css" rel="stylesheet"> - <style> - - #editable - { - padding: 10px; - float: left; - } - - </style> - <script> - - CKEDITOR.disableAutoInline = true; - - $( document ).ready( function() { - $( '#editor1' ).ckeditor(); // Use CKEDITOR.replace() if element is <textarea>. - $( '#editable' ).ckeditor(); // Use CKEDITOR.inline(). - } ); - - function setValue() { - $( '#editor1' ).val( $( 'input#val' ).val() ); - } - - </script> -</head> -<body> - <h1 class="samples"> - <a href="index.html" id="a-test">CKEditor Samples</a> &raquo; Create Editors with jQuery - </h1> - <div class="warning deprecated"> - This sample is not maintained anymore. Check out the <a href="http://sdk.ckeditor.com/">brand new samples in CKEditor SDK</a>. - </div> - <form action="sample_posteddata.php" method="post"> - <div class="description"> - <p> - This sample shows how to use the <a href="http://docs.ckeditor.com/#!/guide/dev_jquery">jQuery adapter</a>. - Note that you have to include both CKEditor and jQuery scripts before including the adapter. - </p> - -<pre class="samples"> -&lt;script src="//ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"&gt;&lt;/script&gt; -&lt;script src="/ckedit../../ckeditor.js"&gt;&lt;/script&gt; -&lt;script src="/ckeditor/adapters/jquery.js"&gt;&lt;/script&gt; -</pre> - - <p>Then you can replace HTML elements with a CKEditor instance using the <code>ckeditor()</code> method.</p> - -<pre class="samples"> -$( document ).ready( function() { - $( 'textarea#editor1' ).ckeditor(); -} ); -</pre> - </div> - - <h2 class="samples">Inline Example</h2> - - <div id="editable" contenteditable="true"> - <p><img alt="Saturn V carrying Apollo 11" class="right" src="assets/sample.jpg"/><b>Apollo 11</b> was the spaceflight that landed the first humans, Americans <a href="http://en.wikipedia.org/wiki/Neil_Armstrong" title="Neil Armstrong">Neil Armstrong</a> and <a href="http://en.wikipedia.org/wiki/Buzz_Aldrin" title="Buzz Aldrin">Buzz Aldrin</a>, on the Moon on July 20, 1969, at 20:18 UTC. Armstrong became the first to step onto the lunar surface 6 hours later on July 21 at 02:56 UTC.</p> - <p>Armstrong spent about <s>three and a half</s> two and a half hours outside the spacecraft, Aldrin slightly less; and together they collected 47.5 pounds (21.5&nbsp;kg) of lunar material for return to Earth. A third member of the mission, <a href="http://en.wikipedia.org/wiki/Michael_Collins_(astronaut)" title="Michael Collins (astronaut)">Michael Collins</a>, piloted the <a href="http://en.wikipedia.org/wiki/Apollo_Command/Service_Module" title="Apollo Command/Service Module">command</a> spacecraft alone in lunar orbit until Armstrong and Aldrin returned to it for the trip back to Earth. - <p>Broadcast on live TV to a world-wide audience, Armstrong stepped onto the lunar surface and described the event as:</p> - <blockquote><p>One small step for [a] man, one giant leap for mankind.</p></blockquote> <p>Apollo 11 effectively ended the <a href="http://en.wikipedia.org/wiki/Space_Race" title="Space Race">Space Race</a> and fulfilled a national goal proposed in 1961 by the late U.S. President <a href="http://en.wikipedia.org/wiki/John_F._Kennedy" title="John F. Kennedy">John F. Kennedy</a> in a speech before the United States Congress:</p> <blockquote><p>[...] before this decade is out, of landing a man on the Moon and returning him safely to the Earth.</p></blockquote> - </div> - - <br style="clear: both"> - - <h2 class="samples">Classic (iframe-based) Example</h2> - - <textarea cols="80" id="editor1" name="editor1" rows="10"> - &lt;h2&gt;Technical details &lt;a id=&quot;tech-details&quot; name=&quot;tech-details&quot;&gt;&lt;/a&gt;&lt;/h2&gt; &lt;table align=&quot;right&quot; border=&quot;1&quot; bordercolor=&quot;#ccc&quot; cellpadding=&quot;5&quot; cellspacing=&quot;0&quot; style=&quot;border-collapse:collapse;margin:10px 0 10px 15px;&quot;&gt; &lt;caption&gt;&lt;strong&gt;Mission crew&lt;/strong&gt;&lt;/caption&gt; &lt;thead&gt; &lt;tr&gt; &lt;th scope=&quot;col&quot;&gt;Position&lt;/th&gt; &lt;th scope=&quot;col&quot;&gt;Astronaut&lt;/th&gt; &lt;/tr&gt; &lt;/thead&gt; &lt;tbody&gt; &lt;tr&gt; &lt;td&gt;Commander&lt;/td&gt; &lt;td&gt;Neil A. Armstrong&lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td&gt;Command Module Pilot&lt;/td&gt; &lt;td&gt;Michael Collins&lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td&gt;Lunar Module Pilot&lt;/td&gt; &lt;td&gt;Edwin &amp;quot;Buzz&amp;quot; E. Aldrin, Jr.&lt;/td&gt; &lt;/tr&gt; &lt;/tbody&gt; &lt;/table&gt; &lt;p&gt;Launched by a &lt;strong&gt;Saturn V&lt;/strong&gt; rocket from &lt;a href=&quot;http://en.wikipedia.org/wiki/Kennedy_Space_Center&quot; title=&quot;Kennedy Space Center&quot;&gt;Kennedy Space Center&lt;/a&gt; in Merritt Island, Florida on July 16, Apollo 11 was the fifth manned mission of &lt;a href=&quot;http://en.wikipedia.org/wiki/NASA&quot; title=&quot;NASA&quot;&gt;NASA&lt;/a&gt;&amp;#39;s Apollo program. The Apollo spacecraft had three parts:&lt;/p&gt; &lt;ol&gt; &lt;li&gt;&lt;strong&gt;Command Module&lt;/strong&gt; with a cabin for the three astronauts which was the only part which landed back on Earth&lt;/li&gt; &lt;li&gt;&lt;strong&gt;Service Module&lt;/strong&gt; which supported the Command Module with propulsion, electrical power, oxygen and water&lt;/li&gt; &lt;li&gt;&lt;strong&gt;Lunar Module&lt;/strong&gt; for landing on the Moon.&lt;/li&gt; &lt;/ol&gt; &lt;p&gt;After being sent to the Moon by the Saturn V&amp;#39;s upper stage, the astronauts separated the spacecraft from it and travelled for three days until they entered into lunar orbit. Armstrong and Aldrin then moved into the Lunar Module and landed in the &lt;a href=&quot;http://en.wikipedia.org/wiki/Mare_Tranquillitatis&quot; title=&quot;Mare Tranquillitatis&quot;&gt;Sea of Tranquility&lt;/a&gt;. They stayed a total of about 21 and a half hours on the lunar surface. After lifting off in the upper part of the Lunar Module and rejoining Collins in the Command Module, they returned to Earth and landed in the &lt;a href=&quot;http://en.wikipedia.org/wiki/Pacific_Ocean&quot; title=&quot;Pacific Ocean&quot;&gt;Pacific Ocean&lt;/a&gt; on July 24.&lt;/p&gt; &lt;hr/&gt; &lt;p style=&quot;text-align: right;&quot;&gt;&lt;small&gt;Source: &lt;a href=&quot;http://en.wikipedia.org/wiki/Apollo_11&quot;&gt;Wikipedia.org&lt;/a&gt;&lt;/small&gt;&lt;/p&gt; - </textarea> - - <p style="overflow: hidden"> - <input style="float: left" type="submit" value="Submit"> - <span style="float: right"> - <input type="text" id="val" value="I'm using jQuery val()!" size="30"> - <input onclick="setValue();" type="button" value="Set value"> - </span> - </p> - </form> - <div id="footer"> - <hr> - <p> - CKEditor - The text editor for the Internet - <a class="samples" href="http://ckeditor.com/">http://ckeditor.com</a> - </p> - <p id="copy"> - Copyright &copy; 2003-2017, <a class="samples" href="http://cksource.com/">CKSource</a> - Frederico - Knabben. All rights reserved. - </p> - </div> -</body> -</html> diff --git a/admin/plugins/ckeditor/samples/old/magicline/magicline.html b/admin/plugins/ckeditor/samples/old/magicline/magicline.html deleted file mode 100644 index a347d9c..0000000 --- a/admin/plugins/ckeditor/samples/old/magicline/magicline.html +++ /dev/null @@ -1,209 +0,0 @@ -<!DOCTYPE html> -<!-- -Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. -For licensing, see LICENSE.md or http://ckeditor.com/license ---> -<html> -<head> - <meta charset="utf-8"> - <title>Using Magicline plugin &mdash; CKEditor Sample</title> - <script src="../../../ckeditor.js"></script> - <link rel="stylesheet" href="../../../samples/old/sample.css"> - <meta name="ckeditor-sample-name" content="Magicline plugin"> - <meta name="ckeditor-sample-group" content="Plugins"> - <meta name="ckeditor-sample-description" content="Using the Magicline plugin to access difficult focus spaces."> -</head> -<body> - <h1 class="samples"> - <a href="../../../samples/old/index.html">CKEditor Samples</a> &raquo; Using Magicline plugin - </h1> - <div class="warning deprecated"> - This sample is not maintained anymore. Check out its <a href="http://sdk.ckeditor.com/samples/magicline.html">brand new version in CKEditor SDK</a>. - </div> - <div class="description"> - <p> - This sample shows the advantages of <strong>Magicline</strong> plugin - which is to enhance the editing process. Thanks to this plugin, - a number of difficult focus spaces which are inaccessible due to - browser issues can now be focused. - </p> - <p> - <strong>Magicline</strong> plugin shows a red line with a handler - which, when clicked, inserts a paragraph and allows typing. To see this, - focus an editor and move your mouse above the focus space you want - to access. The plugin is enabled by default so no additional - configuration is necessary. - </p> - </div> - <div> - <label for="editor1"> - Editor 1: - </label> - <div class="description"> - <p> - This editor uses a default <strong>Magicline</strong> setup. - </p> - </div> - <textarea cols="80" id="editor1" name="editor1" rows="10"> - &lt;table border=&quot;1&quot; cellpadding=&quot;1&quot; cellspacing=&quot;1&quot; style=&quot;width: 100%; &quot;&gt; - &lt;tbody&gt; - &lt;tr&gt; - &lt;td&gt;This table&lt;/td&gt; - &lt;td&gt;is the&lt;/td&gt; - &lt;td&gt;very first&lt;/td&gt; - &lt;td&gt;element of the document.&lt;/td&gt; - &lt;/tr&gt; - &lt;tr&gt; - &lt;td&gt;We are still&lt;/td&gt; - &lt;td&gt;able to acces&lt;/td&gt; - &lt;td&gt;the space before it.&lt;/td&gt; - &lt;td&gt; - &lt;table border=&quot;1&quot; cellpadding=&quot;1&quot; cellspacing=&quot;1&quot; style=&quot;width: 100%; &quot;&gt; - &lt;tbody&gt; - &lt;tr&gt; - &lt;td&gt;This table is inside of a cell of another table.&lt;/td&gt; - &lt;/tr&gt; - &lt;tr&gt; - &lt;td&gt;We can type&amp;nbsp;either before or after it though.&lt;/td&gt; - &lt;/tr&gt; - &lt;/tbody&gt; - &lt;/table&gt; - &lt;/td&gt; - &lt;/tr&gt; - &lt;/tbody&gt; - &lt;/table&gt; - - &lt;p&gt;Two succesive horizontal lines (&lt;tt&gt;HR&lt;/tt&gt; tags). We can access the space in between:&lt;/p&gt; - - &lt;hr /&gt; - &lt;hr /&gt; - &lt;ol&gt; - &lt;li&gt;This numbered list...&lt;/li&gt; - &lt;li&gt;...is a neighbour of a horizontal line...&lt;/li&gt; - &lt;li&gt;...and another list.&lt;/li&gt; - &lt;/ol&gt; - - &lt;ul&gt; - &lt;li&gt;We can type between the lists...&lt;/li&gt; - &lt;li&gt;...thanks to &lt;strong&gt;Magicline&lt;/strong&gt;.&lt;/li&gt; - &lt;/ul&gt; - - &lt;p&gt;Lorem ipsum dolor sit amet dui. Morbi vel turpis. Nullam et leo. Etiam rutrum, urna tellus dui vel tincidunt mattis egestas, justo fringilla vel, massa. Phasellus.&lt;/p&gt; - - &lt;p&gt;Quisque iaculis, dui lectus varius vitae, tortor. Proin lacus. Pellentesque ac lacus. Aenean nonummy commodo nec, pede. Etiam blandit risus elit.&lt;/p&gt; - - &lt;p&gt;Ut pretium. Vestibulum rutrum in, adipiscing elit. Sed in quam in purus sem vitae pede. Pellentesque bibendum, urna sem vel risus. Vivamus posuere metus. Aliquam gravida iaculis nisl. Nam enim. Aliquam erat ac lacus tellus ac felis.&lt;/p&gt; - - &lt;div style=&quot;border: 2px dashed green; background: #ddd; text-align: center;&quot;&gt; - &lt;p&gt;This text is wrapped in a&amp;nbsp;&lt;tt&gt;DIV&lt;/tt&gt;&amp;nbsp;element. We can type after this element though.&lt;/p&gt; - &lt;/div&gt; - </textarea> - <script> - - // This call can be placed at any point after the - // <textarea>, or inside a <head><script> in a - // window.onload event handler. - - CKEDITOR.replace( 'editor1', { - extraPlugins: 'magicline', // Ensure that magicline plugin, which is required for this sample, is loaded. - allowedContent: true // Switch off the ACF, so very complex content created to - // show magicline's power isn't filtered. - } ); - - </script> - </div> - <br> - <div> - <label for="editor2"> - Editor 2: - </label> - <div class="description"> - <p> - This editor is using a blue line. - </p> -<pre class="samples"> -CKEDITOR.replace( 'editor2', { - magicline_color: 'blue' -});</pre> - </div> - <textarea cols="80" id="editor2" name="editor2" rows="10"> - &lt;table border=&quot;1&quot; cellpadding=&quot;1&quot; cellspacing=&quot;1&quot; style=&quot;width: 100%; &quot;&gt; - &lt;tbody&gt; - &lt;tr&gt; - &lt;td&gt;This table&lt;/td&gt; - &lt;td&gt;is the&lt;/td&gt; - &lt;td&gt;very first&lt;/td&gt; - &lt;td&gt;element of the document.&lt;/td&gt; - &lt;/tr&gt; - &lt;tr&gt; - &lt;td&gt;We are still&lt;/td&gt; - &lt;td&gt;able to acces&lt;/td&gt; - &lt;td&gt;the space before it.&lt;/td&gt; - &lt;td&gt; - &lt;table border=&quot;1&quot; cellpadding=&quot;1&quot; cellspacing=&quot;1&quot; style=&quot;width: 100%; &quot;&gt; - &lt;tbody&gt; - &lt;tr&gt; - &lt;td&gt;This table is inside of a cell of another table.&lt;/td&gt; - &lt;/tr&gt; - &lt;tr&gt; - &lt;td&gt;We can type&amp;nbsp;either before or after it though.&lt;/td&gt; - &lt;/tr&gt; - &lt;/tbody&gt; - &lt;/table&gt; - &lt;/td&gt; - &lt;/tr&gt; - &lt;/tbody&gt; - &lt;/table&gt; - - &lt;p&gt;Two succesive horizontal lines (&lt;tt&gt;HR&lt;/tt&gt; tags). We can access the space in between:&lt;/p&gt; - - &lt;hr /&gt; - &lt;hr /&gt; - &lt;ol&gt; - &lt;li&gt;This numbered list...&lt;/li&gt; - &lt;li&gt;...is a neighbour of a horizontal line...&lt;/li&gt; - &lt;li&gt;...and another list.&lt;/li&gt; - &lt;/ol&gt; - - &lt;ul&gt; - &lt;li&gt;We can type between the lists...&lt;/li&gt; - &lt;li&gt;...thanks to &lt;strong&gt;Magicline&lt;/strong&gt;.&lt;/li&gt; - &lt;/ul&gt; - - &lt;p&gt;Lorem ipsum dolor sit amet dui. Morbi vel turpis. Nullam et leo. Etiam rutrum, urna tellus dui vel tincidunt mattis egestas, justo fringilla vel, massa. Phasellus.&lt;/p&gt; - - &lt;p&gt;Quisque iaculis, dui lectus varius vitae, tortor. Proin lacus. Pellentesque ac lacus. Aenean nonummy commodo nec, pede. Etiam blandit risus elit.&lt;/p&gt; - - &lt;p&gt;Ut pretium. Vestibulum rutrum in, adipiscing elit. Sed in quam in purus sem vitae pede. Pellentesque bibendum, urna sem vel risus. Vivamus posuere metus. Aliquam gravida iaculis nisl. Nam enim. Aliquam erat ac lacus tellus ac felis.&lt;/p&gt; - - &lt;div style=&quot;border: 2px dashed green; background: #ddd; text-align: center;&quot;&gt; - &lt;p&gt;This text is wrapped in a&amp;nbsp;&lt;tt&gt;DIV&lt;/tt&gt;&amp;nbsp;element. We can type after this element though.&lt;/p&gt; - &lt;/div&gt; - </textarea> - <script> - - // This call can be placed at any point after the - // <textarea>, or inside a <head><script> in a - // window.onload event handler. - - CKEDITOR.replace( 'editor2', { - extraPlugins: 'magicline', // Ensure that magicline plugin, which is required for this sample, is loaded. - magicline_color: 'blue', // Blue line - allowedContent: true // Switch off the ACF, so very complex content created to - // show magicline's power isn't filtered. - }); - - </script> - </div> - <div id="footer"> - <hr> - <p> - CKEditor - The text editor for the Internet - <a class="samples" href="http://ckeditor.com/">http://ckeditor.com</a> - </p> - <p id="copy"> - Copyright &copy; 2003-2017, <a class="samples" href="http://cksource.com/">CKSource</a> - Frederico - Knabben. All rights reserved. - </p> - </div> -</body> -</html> diff --git a/admin/plugins/ckeditor/samples/old/readonly.html b/admin/plugins/ckeditor/samples/old/readonly.html deleted file mode 100644 index 084d6af..0000000 --- a/admin/plugins/ckeditor/samples/old/readonly.html +++ /dev/null @@ -1,76 +0,0 @@ -<!DOCTYPE html> -<!-- -Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. -For licensing, see LICENSE.md or http://ckeditor.com/license ---> -<html> -<head> - <meta charset="utf-8"> - <title>Using the CKEditor Read-Only API &mdash; CKEditor Sample</title> - <script src="../../ckeditor.js"></script> - <link rel="stylesheet" href="sample.css"> - <script> - - var editor; - - // The instanceReady event is fired, when an instance of CKEditor has finished - // its initialization. - CKEDITOR.on( 'instanceReady', function( ev ) { - editor = ev.editor; - - // Show this "on" button. - document.getElementById( 'readOnlyOn' ).style.display = ''; - - // Event fired when the readOnly property changes. - editor.on( 'readOnly', function() { - document.getElementById( 'readOnlyOn' ).style.display = this.readOnly ? 'none' : ''; - document.getElementById( 'readOnlyOff' ).style.display = this.readOnly ? '' : 'none'; - }); - }); - - function toggleReadOnly( isReadOnly ) { - // Change the read-only state of the editor. - // http://docs.ckeditor.com/#!/api/CKEDITOR.editor-method-setReadOnly - editor.setReadOnly( isReadOnly ); - } - - </script> -</head> -<body> - <h1 class="samples"> - <a href="index.html">CKEditor Samples</a> &raquo; Using the CKEditor Read-Only API - </h1> - <div class="warning deprecated"> - This sample is not maintained anymore. Check out its <a href="http://sdk.ckeditor.com/samples/readonly.html">brand new version in CKEditor SDK</a>. - </div> - <div class="description"> - <p> - This sample shows how to use the - <code><a class="samples" href="http://docs.ckeditor.com/#!/api/CKEDITOR.editor-method-setReadOnly">setReadOnly</a></code> - API to put editor into the read-only state that makes it impossible for users to change the editor contents. - </p> - <p> - For details on how to create this setup check the source code of this sample page. - </p> - </div> - <form action="sample_posteddata.php" method="post"> - <p> - <textarea class="ckeditor" id="editor1" name="editor1" cols="100" rows="10">&lt;p&gt;This is some &lt;strong&gt;sample text&lt;/strong&gt;. You are using &lt;a href="http://ckeditor.com/"&gt;CKEditor&lt;/a&gt;.&lt;/p&gt;</textarea> - </p> - <p> - <input id="readOnlyOn" onclick="toggleReadOnly();" type="button" value="Make it read-only" style="display:none"> - <input id="readOnlyOff" onclick="toggleReadOnly( false );" type="button" value="Make it editable again" style="display:none"> - </p> - </form> - <div id="footer"> - <hr> - <p> - CKEditor - The text editor for the Internet - <a class="samples" href="http://ckeditor.com/">http://ckeditor.com</a> - </p> - <p id="copy"> - Copyright &copy; 2003-2017, <a class="samples" href="http://cksource.com/">CKSource</a> - Frederico - Knabben. All rights reserved. - </p> - </div> -</body> -</html> diff --git a/admin/plugins/ckeditor/samples/old/replacebyclass.html b/admin/plugins/ckeditor/samples/old/replacebyclass.html deleted file mode 100644 index 23652d6..0000000 --- a/admin/plugins/ckeditor/samples/old/replacebyclass.html +++ /dev/null @@ -1,60 +0,0 @@ -<!DOCTYPE html> -<!-- -Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. -For licensing, see LICENSE.md or http://ckeditor.com/license ---> -<html> -<head> - <meta charset="utf-8"> - <title>Replace Textareas by Class Name &mdash; CKEditor Sample</title> - <script src="../../ckeditor.js"></script> - <link rel="stylesheet" href="sample.css"> -</head> -<body> - <h1 class="samples"> - <a href="index.html">CKEditor Samples</a> &raquo; Replace Textarea Elements by Class Name - </h1> - <div class="warning deprecated"> - This sample is not maintained anymore. Check out the <a href="http://sdk.ckeditor.com/">brand new samples in CKEditor SDK</a>. - </div> - <div class="description"> - <p> - This sample shows how to automatically replace all <code>&lt;textarea&gt;</code> elements - of a given class with a CKEditor instance. - </p> - <p> - To replace a <code>&lt;textarea&gt;</code> element, simply assign it the <code>ckeditor</code> - class, as in the code below: - </p> -<pre class="samples"> -&lt;textarea <strong>class="ckeditor</strong>" name="editor1"&gt;&lt;/textarea&gt; -</pre> - <p> - Note that other <code>&lt;textarea&gt;</code> attributes (like <code>id</code> or <code>name</code>) need to be adjusted to your document. - </p> - </div> - <form action="sample_posteddata.php" method="post"> - <p> - <label for="editor1"> - Editor 1: - </label> - <textarea class="ckeditor" cols="80" id="editor1" name="editor1" rows="10"> - &lt;h1&gt;&lt;img alt=&quot;Saturn V carrying Apollo 11&quot; class=&quot;right&quot; src=&quot;assets/sample.jpg&quot;/&gt; Apollo 11&lt;/h1&gt; &lt;p&gt;&lt;b&gt;Apollo 11&lt;/b&gt; was the spaceflight that landed the first humans, Americans &lt;a href=&quot;http://en.wikipedia.org/wiki/Neil_Armstrong&quot; title=&quot;Neil Armstrong&quot;&gt;Neil Armstrong&lt;/a&gt; and &lt;a href=&quot;http://en.wikipedia.org/wiki/Buzz_Aldrin&quot; title=&quot;Buzz Aldrin&quot;&gt;Buzz Aldrin&lt;/a&gt;, on the Moon on July 20, 1969, at 20:18 UTC. Armstrong became the first to step onto the lunar surface 6 hours later on July 21 at 02:56 UTC.&lt;/p&gt; &lt;p&gt;Armstrong spent about &lt;s&gt;three and a half&lt;/s&gt; two and a half hours outside the spacecraft, Aldrin slightly less; and together they collected 47.5 pounds (21.5&amp;nbsp;kg) of lunar material for return to Earth. A third member of the mission, &lt;a href=&quot;http://en.wikipedia.org/wiki/Michael_Collins_(astronaut)&quot; title=&quot;Michael Collins (astronaut)&quot;&gt;Michael Collins&lt;/a&gt;, piloted the &lt;a href=&quot;http://en.wikipedia.org/wiki/Apollo_Command/Service_Module&quot; title=&quot;Apollo Command/Service Module&quot;&gt;command&lt;/a&gt; spacecraft alone in lunar orbit until Armstrong and Aldrin returned to it for the trip back to Earth.&lt;/p&gt; &lt;h2&gt;Broadcasting and &lt;em&gt;quotes&lt;/em&gt; &lt;a id=&quot;quotes&quot; name=&quot;quotes&quot;&gt;&lt;/a&gt;&lt;/h2&gt; &lt;p&gt;Broadcast on live TV to a world-wide audience, Armstrong stepped onto the lunar surface and described the event as:&lt;/p&gt; &lt;blockquote&gt;&lt;p&gt;One small step for [a] man, one giant leap for mankind.&lt;/p&gt;&lt;/blockquote&gt; &lt;p&gt;Apollo 11 effectively ended the &lt;a href=&quot;http://en.wikipedia.org/wiki/Space_Race&quot; title=&quot;Space Race&quot;&gt;Space Race&lt;/a&gt; and fulfilled a national goal proposed in 1961 by the late U.S. President &lt;a href=&quot;http://en.wikipedia.org/wiki/John_F._Kennedy&quot; title=&quot;John F. Kennedy&quot;&gt;John F. Kennedy&lt;/a&gt; in a speech before the United States Congress:&lt;/p&gt; &lt;blockquote&gt;&lt;p&gt;[...] before this decade is out, of landing a man on the Moon and returning him safely to the Earth.&lt;/p&gt;&lt;/blockquote&gt; &lt;h2&gt;Technical details &lt;a id=&quot;tech-details&quot; name=&quot;tech-details&quot;&gt;&lt;/a&gt;&lt;/h2&gt; &lt;table align=&quot;right&quot; border=&quot;1&quot; bordercolor=&quot;#ccc&quot; cellpadding=&quot;5&quot; cellspacing=&quot;0&quot; style=&quot;border-collapse:collapse;margin:10px 0 10px 15px;&quot;&gt; &lt;caption&gt;&lt;strong&gt;Mission crew&lt;/strong&gt;&lt;/caption&gt; &lt;thead&gt; &lt;tr&gt; &lt;th scope=&quot;col&quot;&gt;Position&lt;/th&gt; &lt;th scope=&quot;col&quot;&gt;Astronaut&lt;/th&gt; &lt;/tr&gt; &lt;/thead&gt; &lt;tbody&gt; &lt;tr&gt; &lt;td&gt;Commander&lt;/td&gt; &lt;td&gt;Neil A. Armstrong&lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td&gt;Command Module Pilot&lt;/td&gt; &lt;td&gt;Michael Collins&lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td&gt;Lunar Module Pilot&lt;/td&gt; &lt;td&gt;Edwin &amp;quot;Buzz&amp;quot; E. Aldrin, Jr.&lt;/td&gt; &lt;/tr&gt; &lt;/tbody&gt; &lt;/table&gt; &lt;p&gt;Launched by a &lt;strong&gt;Saturn V&lt;/strong&gt; rocket from &lt;a href=&quot;http://en.wikipedia.org/wiki/Kennedy_Space_Center&quot; title=&quot;Kennedy Space Center&quot;&gt;Kennedy Space Center&lt;/a&gt; in Merritt Island, Florida on July 16, Apollo 11 was the fifth manned mission of &lt;a href=&quot;http://en.wikipedia.org/wiki/NASA&quot; title=&quot;NASA&quot;&gt;NASA&lt;/a&gt;&amp;#39;s Apollo program. The Apollo spacecraft had three parts:&lt;/p&gt; &lt;ol&gt; &lt;li&gt;&lt;strong&gt;Command Module&lt;/strong&gt; with a cabin for the three astronauts which was the only part which landed back on Earth&lt;/li&gt; &lt;li&gt;&lt;strong&gt;Service Module&lt;/strong&gt; which supported the Command Module with propulsion, electrical power, oxygen and water&lt;/li&gt; &lt;li&gt;&lt;strong&gt;Lunar Module&lt;/strong&gt; for landing on the Moon.&lt;/li&gt; &lt;/ol&gt; &lt;p&gt;After being sent to the Moon by the Saturn V&amp;#39;s upper stage, the astronauts separated the spacecraft from it and travelled for three days until they entered into lunar orbit. Armstrong and Aldrin then moved into the Lunar Module and landed in the &lt;a href=&quot;http://en.wikipedia.org/wiki/Mare_Tranquillitatis&quot; title=&quot;Mare Tranquillitatis&quot;&gt;Sea of Tranquility&lt;/a&gt;. They stayed a total of about 21 and a half hours on the lunar surface. After lifting off in the upper part of the Lunar Module and rejoining Collins in the Command Module, they returned to Earth and landed in the &lt;a href=&quot;http://en.wikipedia.org/wiki/Pacific_Ocean&quot; title=&quot;Pacific Ocean&quot;&gt;Pacific Ocean&lt;/a&gt; on July 24.&lt;/p&gt; &lt;hr/&gt; &lt;p style=&quot;text-align: right;&quot;&gt;&lt;small&gt;Source: &lt;a href=&quot;http://en.wikipedia.org/wiki/Apollo_11&quot;&gt;Wikipedia.org&lt;/a&gt;&lt;/small&gt;&lt;/p&gt; - </textarea> - </p> - <p> - <input type="submit" value="Submit"> - </p> - </form> - <div id="footer"> - <hr> - <p> - CKEditor - The text editor for the Internet - <a class="samples" href="http://ckeditor.com/">http://ckeditor.com</a> - </p> - <p id="copy"> - Copyright &copy; 2003-2017, <a class="samples" href="http://cksource.com/">CKSource</a> - Frederico - Knabben. All rights reserved. - </p> - </div> -</body> -</html> diff --git a/admin/plugins/ckeditor/samples/old/replacebycode.html b/admin/plugins/ckeditor/samples/old/replacebycode.html deleted file mode 100644 index a4f4395..0000000 --- a/admin/plugins/ckeditor/samples/old/replacebycode.html +++ /dev/null @@ -1,59 +0,0 @@ -<!DOCTYPE html> -<!-- -Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. -For licensing, see LICENSE.md or http://ckeditor.com/license ---> -<html> -<head> - <meta charset="utf-8"> - <title>Replace Textarea by Code &mdash; CKEditor Sample</title> - <script src="../../ckeditor.js"></script> - <link href="sample.css" rel="stylesheet"> -</head> -<body> - <h1 class="samples"> - <a href="index.html">CKEditor Samples</a> &raquo; Replace Textarea Elements Using JavaScript Code - </h1> - <div class="warning deprecated"> - This sample is not maintained anymore. Check out its <a href="http://sdk.ckeditor.com/samples/classic.html">brand new version in CKEditor SDK</a>. - </div> - <form action="sample_posteddata.php" method="post"> - <div class="description"> - <p> - This editor is using an <code>&lt;iframe&gt;</code> element-based editing area, provided by the <strong>Wysiwygarea</strong> plugin. - </p> -<pre class="samples"> -CKEDITOR.replace( '<em>textarea_id</em>' ) -</pre> - </div> - <textarea cols="80" id="editor1" name="editor1" rows="10"> - &lt;h1&gt;&lt;img alt=&quot;Saturn V carrying Apollo 11&quot; class=&quot;right&quot; src=&quot;assets/sample.jpg&quot;/&gt; Apollo 11&lt;/h1&gt; &lt;p&gt;&lt;b&gt;Apollo 11&lt;/b&gt; was the spaceflight that landed the first humans, Americans &lt;a href=&quot;http://en.wikipedia.org/wiki/Neil_Armstrong&quot; title=&quot;Neil Armstrong&quot;&gt;Neil Armstrong&lt;/a&gt; and &lt;a href=&quot;http://en.wikipedia.org/wiki/Buzz_Aldrin&quot; title=&quot;Buzz Aldrin&quot;&gt;Buzz Aldrin&lt;/a&gt;, on the Moon on July 20, 1969, at 20:18 UTC. Armstrong became the first to step onto the lunar surface 6 hours later on July 21 at 02:56 UTC.&lt;/p&gt; &lt;p&gt;Armstrong spent about &lt;s&gt;three and a half&lt;/s&gt; two and a half hours outside the spacecraft, Aldrin slightly less; and together they collected 47.5 pounds (21.5&amp;nbsp;kg) of lunar material for return to Earth. A third member of the mission, &lt;a href=&quot;http://en.wikipedia.org/wiki/Michael_Collins_(astronaut)&quot; title=&quot;Michael Collins (astronaut)&quot;&gt;Michael Collins&lt;/a&gt;, piloted the &lt;a href=&quot;http://en.wikipedia.org/wiki/Apollo_Command/Service_Module&quot; title=&quot;Apollo Command/Service Module&quot;&gt;command&lt;/a&gt; spacecraft alone in lunar orbit until Armstrong and Aldrin returned to it for the trip back to Earth.&lt;/p&gt; &lt;h2&gt;Broadcasting and &lt;em&gt;quotes&lt;/em&gt; &lt;a id=&quot;quotes&quot; name=&quot;quotes&quot;&gt;&lt;/a&gt;&lt;/h2&gt; &lt;p&gt;Broadcast on live TV to a world-wide audience, Armstrong stepped onto the lunar surface and described the event as:&lt;/p&gt; &lt;blockquote&gt;&lt;p&gt;One small step for [a] man, one giant leap for mankind.&lt;/p&gt;&lt;/blockquote&gt; &lt;p&gt;Apollo 11 effectively ended the &lt;a href=&quot;http://en.wikipedia.org/wiki/Space_Race&quot; title=&quot;Space Race&quot;&gt;Space Race&lt;/a&gt; and fulfilled a national goal proposed in 1961 by the late U.S. President &lt;a href=&quot;http://en.wikipedia.org/wiki/John_F._Kennedy&quot; title=&quot;John F. Kennedy&quot;&gt;John F. Kennedy&lt;/a&gt; in a speech before the United States Congress:&lt;/p&gt; &lt;blockquote&gt;&lt;p&gt;[...] before this decade is out, of landing a man on the Moon and returning him safely to the Earth.&lt;/p&gt;&lt;/blockquote&gt; &lt;h2&gt;Technical details &lt;a id=&quot;tech-details&quot; name=&quot;tech-details&quot;&gt;&lt;/a&gt;&lt;/h2&gt; &lt;table align=&quot;right&quot; border=&quot;1&quot; bordercolor=&quot;#ccc&quot; cellpadding=&quot;5&quot; cellspacing=&quot;0&quot; style=&quot;border-collapse:collapse;margin:10px 0 10px 15px;&quot;&gt; &lt;caption&gt;&lt;strong&gt;Mission crew&lt;/strong&gt;&lt;/caption&gt; &lt;thead&gt; &lt;tr&gt; &lt;th scope=&quot;col&quot;&gt;Position&lt;/th&gt; &lt;th scope=&quot;col&quot;&gt;Astronaut&lt;/th&gt; &lt;/tr&gt; &lt;/thead&gt; &lt;tbody&gt; &lt;tr&gt; &lt;td&gt;Commander&lt;/td&gt; &lt;td&gt;Neil A. Armstrong&lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td&gt;Command Module Pilot&lt;/td&gt; &lt;td&gt;Michael Collins&lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td&gt;Lunar Module Pilot&lt;/td&gt; &lt;td&gt;Edwin &amp;quot;Buzz&amp;quot; E. Aldrin, Jr.&lt;/td&gt; &lt;/tr&gt; &lt;/tbody&gt; &lt;/table&gt; &lt;p&gt;Launched by a &lt;strong&gt;Saturn V&lt;/strong&gt; rocket from &lt;a href=&quot;http://en.wikipedia.org/wiki/Kennedy_Space_Center&quot; title=&quot;Kennedy Space Center&quot;&gt;Kennedy Space Center&lt;/a&gt; in Merritt Island, Florida on July 16, Apollo 11 was the fifth manned mission of &lt;a href=&quot;http://en.wikipedia.org/wiki/NASA&quot; title=&quot;NASA&quot;&gt;NASA&lt;/a&gt;&amp;#39;s Apollo program. The Apollo spacecraft had three parts:&lt;/p&gt; &lt;ol&gt; &lt;li&gt;&lt;strong&gt;Command Module&lt;/strong&gt; with a cabin for the three astronauts which was the only part which landed back on Earth&lt;/li&gt; &lt;li&gt;&lt;strong&gt;Service Module&lt;/strong&gt; which supported the Command Module with propulsion, electrical power, oxygen and water&lt;/li&gt; &lt;li&gt;&lt;strong&gt;Lunar Module&lt;/strong&gt; for landing on the Moon.&lt;/li&gt; &lt;/ol&gt; &lt;p&gt;After being sent to the Moon by the Saturn V&amp;#39;s upper stage, the astronauts separated the spacecraft from it and travelled for three days until they entered into lunar orbit. Armstrong and Aldrin then moved into the Lunar Module and landed in the &lt;a href=&quot;http://en.wikipedia.org/wiki/Mare_Tranquillitatis&quot; title=&quot;Mare Tranquillitatis&quot;&gt;Sea of Tranquility&lt;/a&gt;. They stayed a total of about 21 and a half hours on the lunar surface. After lifting off in the upper part of the Lunar Module and rejoining Collins in the Command Module, they returned to Earth and landed in the &lt;a href=&quot;http://en.wikipedia.org/wiki/Pacific_Ocean&quot; title=&quot;Pacific Ocean&quot;&gt;Pacific Ocean&lt;/a&gt; on July 24.&lt;/p&gt; &lt;hr/&gt; &lt;p style=&quot;text-align: right;&quot;&gt;&lt;small&gt;Source: &lt;a href=&quot;http://en.wikipedia.org/wiki/Apollo_11&quot;&gt;Wikipedia.org&lt;/a&gt;&lt;/small&gt;&lt;/p&gt; - </textarea> - <script> - - // This call can be placed at any point after the - // <textarea>, or inside a <head><script> in a - // window.onload event handler. - - // Replace the <textarea id="editor"> with an CKEditor - // instance, using default configurations. - - CKEDITOR.replace( 'editor1' ); - - </script> - <p> - <input type="submit" value="Submit"> - </p> - </form> - <div id="footer"> - <hr> - <p> - CKEditor - The text editor for the Internet - <a class="samples" href="http://ckeditor.com/">http://ckeditor.com</a> - </p> - <p id="copy"> - Copyright &copy; 2003-2017, <a class="samples" href="http://cksource.com/">CKSource</a> - Frederico - Knabben. All rights reserved. - </p> - </div> -</body> -</html> diff --git a/admin/plugins/ckeditor/samples/old/sample.css b/admin/plugins/ckeditor/samples/old/sample.css deleted file mode 100644 index 3304111..0000000 --- a/admin/plugins/ckeditor/samples/old/sample.css +++ /dev/null @@ -1,357 +0,0 @@ -/* -Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. -For licensing, see LICENSE.md or http://ckeditor.com/license -*/ - -html, body, h1, h2, h3, h4, h5, h6, div, span, blockquote, p, address, form, fieldset, img, ul, ol, dl, dt, dd, li, hr, table, td, th, strong, em, sup, sub, dfn, ins, del, q, cite, var, samp, code, kbd, tt, pre -{ - line-height: 1.5; -} - -body -{ - padding: 10px 30px; -} - -input, textarea, select, option, optgroup, button, td, th -{ - font-size: 100%; -} - -pre -{ - -moz-tab-size: 4; - tab-size: 4; -} - -pre, code, kbd, samp, tt -{ - font-family: monospace,monospace; - font-size: 1em; -} - -body { - width: 960px; - margin: 0 auto; -} - -code -{ - background: #f3f3f3; - border: 1px solid #ddd; - padding: 1px 4px; - border-radius: 3px; -} - -abbr -{ - border-bottom: 1px dotted #555; - cursor: pointer; -} - -.new, .beta -{ - text-transform: uppercase; - font-size: 10px; - font-weight: bold; - padding: 1px 4px; - margin: 0 0 0 5px; - color: #fff; - float: right; - border-radius: 3px; -} - -.new -{ - background: #FF7E00; - border: 1px solid #DA8028; - text-shadow: 0 1px 0 #C97626; - - box-shadow: 0 2px 3px 0 #FFA54E inset; -} - -.beta -{ - background: #18C0DF; - border: 1px solid #19AAD8; - text-shadow: 0 1px 0 #048CAD; - font-style: italic; - - box-shadow: 0 2px 3px 0 #50D4FD inset; -} - -h1.samples -{ - color: #0782C1; - font-size: 200%; - font-weight: normal; - margin: 0; - padding: 0; -} - -h1.samples a -{ - color: #0782C1; - text-decoration: none; - border-bottom: 1px dotted #0782C1; -} - -.samples a:hover -{ - border-bottom: 1px dotted #0782C1; -} - -h2.samples -{ - color: #000000; - font-size: 130%; - margin: 15px 0 0 0; - padding: 0; -} - -p, blockquote, address, form, pre, dl, h1.samples, h2.samples -{ - margin-bottom: 15px; -} - -ul.samples -{ - margin-bottom: 15px; -} - -.clear -{ - clear: both; -} - -fieldset -{ - margin: 0; - padding: 10px; -} - -body, input, textarea -{ - color: #333333; - font-family: Arial, Helvetica, sans-serif; -} - -body -{ - font-size: 75%; -} - -a.samples -{ - color: #189DE1; - text-decoration: none; -} - -form -{ - margin: 0; - padding: 0; -} - -pre.samples -{ - background-color: #F7F7F7; - border: 1px solid #D7D7D7; - overflow: auto; - padding: 0.25em; - white-space: pre-wrap; /* CSS 2.1 */ - word-wrap: break-word; /* IE7 */ -} - -#footer -{ - clear: both; - padding-top: 10px; -} - -#footer hr -{ - margin: 10px 0 15px 0; - height: 1px; - border: solid 1px gray; - border-bottom: none; -} - -#footer p -{ - margin: 0 10px 10px 10px; - float: left; -} - -#footer #copy -{ - float: right; -} - -#outputSample -{ - width: 100%; - table-layout: fixed; -} - -#outputSample thead th -{ - color: #dddddd; - background-color: #999999; - padding: 4px; - white-space: nowrap; -} - -#outputSample tbody th -{ - vertical-align: top; - text-align: left; -} - -#outputSample pre -{ - margin: 0; - padding: 0; -} - -.description -{ - border: 1px dotted #B7B7B7; - margin-bottom: 10px; - padding: 10px 10px 0; - overflow: hidden; -} - -label -{ - display: block; - margin-bottom: 6px; -} - -/** - * CKEditor editables are automatically set with the "cke_editable" class - * plus cke_editable_(inline|themed) depending on the editor type. - */ - -/* Style a bit the inline editables. */ -.cke_editable.cke_editable_inline -{ - cursor: pointer; -} - -/* Once an editable element gets focused, the "cke_focus" class is - added to it, so we can style it differently. */ -.cke_editable.cke_editable_inline.cke_focus -{ - box-shadow: inset 0px 0px 20px 3px #ddd, inset 0 0 1px #000; - outline: none; - background: #eee; - cursor: text; -} - -/* Avoid pre-formatted overflows inline editable. */ -.cke_editable_inline pre -{ - white-space: pre-wrap; - word-wrap: break-word; -} - -/** - * Samples index styles. - */ - -.twoColumns, -.twoColumnsLeft, -.twoColumnsRight -{ - overflow: hidden; -} - -.twoColumnsLeft, -.twoColumnsRight -{ - width: 45%; -} - -.twoColumnsLeft -{ - float: left; -} - -.twoColumnsRight -{ - float: right; -} - -dl.samples -{ - padding: 0 0 0 40px; -} -dl.samples > dt -{ - display: list-item; - list-style-type: disc; - list-style-position: outside; - margin: 0 0 3px; -} -dl.samples > dd -{ - margin: 0 0 3px; -} -.warning -{ - color: #ff0000; - background-color: #FFCCBA; - border: 2px dotted #ff0000; - padding: 15px 10px; - margin: 10px 0; -} - -.warning.deprecated { - font-size: 1.3em; -} - -/* Used on inline samples */ - -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; -} - -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; -} - -.marker -{ - background-color: Yellow; -} diff --git a/admin/plugins/ckeditor/samples/old/sample.js b/admin/plugins/ckeditor/samples/old/sample.js deleted file mode 100644 index 53e1db2..0000000 --- a/admin/plugins/ckeditor/samples/old/sample.js +++ /dev/null @@ -1,50 +0,0 @@ -/** - * Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. - * For licensing, see LICENSE.md or http://ckeditor.com/license - */ - -// Tool scripts for the sample pages. -// This file can be ignored and is not required to make use of CKEditor. - -( function() { - CKEDITOR.on( 'instanceReady', function( ev ) { - // Check for sample compliance. - var editor = ev.editor, - meta = CKEDITOR.document.$.getElementsByName( 'ckeditor-sample-required-plugins' ), - requires = meta.length ? CKEDITOR.dom.element.get( meta[ 0 ] ).getAttribute( 'content' ).split( ',' ) : [], - missing = [], - i; - - if ( requires.length ) { - for ( i = 0; i < requires.length; i++ ) { - if ( !editor.plugins[ requires[ i ] ] ) - missing.push( '<code>' + requires[ i ] + '</code>' ); - } - - if ( missing.length ) { - var warn = CKEDITOR.dom.element.createFromHtml( - '<div class="warning">' + - '<span>To fully experience this demo, the ' + missing.join( ', ' ) + ' plugin' + ( missing.length > 1 ? 's are' : ' is' ) + ' required.</span>' + - '</div>' - ); - warn.insertBefore( editor.container ); - } - } - - // Set icons. - var doc = new CKEDITOR.dom.document( document ), - icons = doc.find( '.button_icon' ); - - for ( i = 0; i < icons.count(); i++ ) { - var icon = icons.getItem( i ), - name = icon.getAttribute( 'data-icon' ), - style = CKEDITOR.skin.getIconStyle( name, ( CKEDITOR.lang.dir == 'rtl' ) ); - - icon.addClass( 'cke_button_icon' ); - icon.addClass( 'cke_button__' + name + '_icon' ); - icon.setAttribute( 'style', style ); - icon.setStyle( 'float', 'none' ); - - } - } ); -} )(); diff --git a/admin/plugins/ckeditor/samples/old/sample_posteddata.php b/admin/plugins/ckeditor/samples/old/sample_posteddata.php deleted file mode 100644 index 54e9b7c..0000000 --- a/admin/plugins/ckeditor/samples/old/sample_posteddata.php +++ /dev/null @@ -1,16 +0,0 @@ -<?php /* <body><pre> - -------------------------------------------------------------------------------------------- - CKEditor - Posted Data - - We are sorry, but your Web server does not support the PHP language used in this script. - - Please note that CKEditor can be used with any other server-side language than just PHP. - To save the content created with CKEditor you need to read the POST data on the server - side and write it to a file or the database. - - Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. - For licensing, see LICENSE.md or http://ckeditor.com/license -------------------------------------------------------------------------------------------- - -</pre><div style="display:none"></body> */ include "assets/posteddata.php"; ?> diff --git a/admin/plugins/ckeditor/samples/old/tabindex.html b/admin/plugins/ckeditor/samples/old/tabindex.html deleted file mode 100644 index 4238f33..0000000 --- a/admin/plugins/ckeditor/samples/old/tabindex.html +++ /dev/null @@ -1,78 +0,0 @@ -<!DOCTYPE html> -<!-- -Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. -For licensing, see LICENSE.md or http://ckeditor.com/license ---> -<html> -<head> - <meta charset="utf-8"> - <title>TAB Key-Based Navigation &mdash; CKEditor Sample</title> - <script src="../../ckeditor.js"></script> - <link href="sample.css" rel="stylesheet"> - <style> - - .cke_focused, - .cke_editable.cke_focused - { - outline: 3px dotted blue !important; - *border: 3px dotted blue !important; /* For IE7 */ - } - - </style> - <script> - - CKEDITOR.on( 'instanceReady', function( evt ) { - var editor = evt.editor; - editor.setData( 'This editor has it\'s tabIndex set to <strong>' + editor.tabIndex + '</strong>' ); - - // Apply focus class name. - editor.on( 'focus', function() { - editor.container.addClass( 'cke_focused' ); - }); - editor.on( 'blur', function() { - editor.container.removeClass( 'cke_focused' ); - }); - - // Put startup focus on the first editor in tab order. - if ( editor.tabIndex == 1 ) - editor.focus(); - }); - - </script> -</head> -<body> - <h1 class="samples"> - <a href="index.html">CKEditor Samples</a> &raquo; TAB Key-Based Navigation - </h1> - <div class="warning deprecated"> - This sample is not maintained anymore. Check out its <a href="http://sdk.ckeditor.com/samples/tabindex.html">brand new version in CKEditor SDK</a>. - </div> - <div class="description"> - <p> - This sample shows how tab key navigation among editor instances is - affected by the <code>tabIndex</code> attribute from - the original page element. Use TAB key to move between the editors. - </p> - </div> - <p> - <textarea class="ckeditor" cols="80" id="editor4" rows="10" tabindex="1"></textarea> - </p> - <div class="ckeditor" contenteditable="true" id="editor1" tabindex="4"></div> - <p> - <textarea class="ckeditor" cols="80" id="editor2" rows="10" tabindex="2"></textarea> - </p> - <p> - <textarea class="ckeditor" cols="80" id="editor3" rows="10" tabindex="3"></textarea> - </p> - <div id="footer"> - <hr> - <p> - CKEditor - The text editor for the Internet - <a class="samples" href="http://ckeditor.com/">http://ckeditor.com</a> - </p> - <p id="copy"> - Copyright &copy; 2003-2017, <a class="samples" href="http://cksource.com/">CKSource</a> - Frederico - Knabben. All rights reserved. - </p> - </div> -</body> -</html> diff --git a/admin/plugins/ckeditor/samples/old/toolbar/toolbar.html b/admin/plugins/ckeditor/samples/old/toolbar/toolbar.html deleted file mode 100644 index 2c2622b..0000000 --- a/admin/plugins/ckeditor/samples/old/toolbar/toolbar.html +++ /dev/null @@ -1,235 +0,0 @@ -<!DOCTYPE html> -<!-- -Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. -For licensing, see LICENSE.md or http://ckeditor.com/license ---> -<html> -<head> - <meta charset="utf-8"> - <title>Toolbar Configuration &mdash; CKEditor Sample</title> - <meta name="ckeditor-sample-name" content="Toolbar Configurations"> - <meta name="ckeditor-sample-group" content="Advanced Samples"> - <meta name="ckeditor-sample-description" content="Configuring CKEditor to display full or custom toolbar layout."> - <script src="../../../ckeditor.js"></script> - <link href="../../../samples/old/sample.css" rel="stylesheet"> -</head> -<body> - <h1 class="samples"> - <a href="../../../samples/old/index.html">CKEditor Samples</a> &raquo; Toolbar Configuration - </h1> - <div class="warning deprecated"> - This sample is not maintained anymore. Check out the <a href="../../../samples/toolbarconfigurator/index.html#basic">brand new CKEditor Toolbar Configurator</a>. - </div> - <div class="description"> - <p> - This sample page demonstrates editor with loaded <a href="#fullToolbar">full toolbar</a> (all registered buttons) and, if - current editor's configuration modifies default settings, also editor with <a href="#currentToolbar">modified toolbar</a>. - </p> - - <p>Since CKEditor 4 there are two ways to configure toolbar buttons.</p> - - <h2 class="samples">By <a href="http://docs.ckeditor.com/#!/api/CKEDITOR.config-cfg-toolbar">config.toolbar</a></h2> - - <p> - You can explicitly define which buttons are displayed in which groups and in which order. - This is the more precise setting, but less flexible. If newly added plugin adds its - own button you'll have to add it manually to your <code>config.toolbar</code> setting as well. - </p> - - <p>To add a CKEditor instance with custom toolbar setting, insert the following JavaScript call to your code:</p> - - <pre class="samples"> -CKEDITOR.replace( <em>'textarea_id'</em>, { - <strong>toolbar:</strong> [ - { name: 'document', items: [ 'Source', '-', 'NewPage', 'Preview', '-', 'Templates' ] }, // Defines toolbar group with name (used to create voice label) and items in 3 subgroups. - [ 'Cut', 'Copy', 'Paste', 'PasteText', 'PasteFromWord', '-', 'Undo', 'Redo' ], // Defines toolbar group without name. - '/', // Line break - next group will be placed in new line. - { name: 'basicstyles', items: [ 'Bold', 'Italic' ] } - ] -});</pre> - - <h2 class="samples">By <a href="http://docs.ckeditor.com/#!/api/CKEDITOR.config-cfg-toolbarGroups">config.toolbarGroups</a></h2> - - <p> - You can define which groups of buttons (like e.g. <code>basicstyles</code>, <code>clipboard</code> - and <code>forms</code>) are displayed and in which order. Registered buttons are associated - with toolbar groups by <code>toolbar</code> property in their definition. - This setting's advantage is that you don't have to modify toolbar configuration - when adding/removing plugins which register their own buttons. - </p> - - <p>To add a CKEditor instance with custom toolbar groups setting, insert the following JavaScript call to your code:</p> - - <pre class="samples"> -CKEDITOR.replace( <em>'textarea_id'</em>, { - <strong>toolbarGroups:</strong> [ - { name: 'document', groups: [ 'mode', 'document' ] }, // Displays document group with its two subgroups. - { name: 'clipboard', groups: [ 'clipboard', 'undo' ] }, // Group's name will be used to create voice label. - '/', // Line break - next group will be placed in new line. - { name: 'basicstyles', groups: [ 'basicstyles', 'cleanup' ] }, - { name: 'links' } - ] - - // NOTE: Remember to leave 'toolbar' property with the default value (null). -});</pre> - </div> - - <div id="currentToolbar" style="display: none"> - <h2 class="samples">Current toolbar configuration</h2> - <p>Below you can see editor with current toolbar definition.</p> - <textarea cols="80" id="editorCurrent" name="editorCurrent" rows="10">&lt;p&gt;This is some &lt;strong&gt;sample text&lt;/strong&gt;. You are using &lt;a href="http://ckeditor.com/"&gt;CKEditor&lt;/a&gt;.&lt;/p&gt;</textarea> - <pre id="editorCurrentCfg" class="samples"></pre> - </div> - - <div id="fullToolbar"> - <h2 class="samples">Full toolbar configuration</h2> - <p>Below you can see editor with full toolbar, generated automatically by the editor.</p> - <p> - <strong>Note</strong>: To create editor instance with full toolbar you don't have to set anything. - Just leave <code>toolbar</code> and <code>toolbarGroups</code> with the default, <code>null</code> values. - </p> - <textarea cols="80" id="editorFull" name="editorFull" rows="10">&lt;p&gt;This is some &lt;strong&gt;sample text&lt;/strong&gt;. You are using &lt;a href="http://ckeditor.com/"&gt;CKEditor&lt;/a&gt;.&lt;/p&gt;</textarea> - <pre id="editorFullCfg" class="samples"></pre> - </div> - - <script> - -(function() { - 'use strict'; - - var buttonsNames; - - CKEDITOR.config.extraPlugins = 'toolbar'; - - CKEDITOR.on( 'instanceReady', function( evt ) { - var editor = evt.editor, - editorCurrent = editor.name == 'editorCurrent', - defaultToolbar = !( editor.config.toolbar || editor.config.toolbarGroups || editor.config.removeButtons ), - pre = CKEDITOR.document.getById( editor.name + 'Cfg' ), - output = ''; - - if ( editorCurrent ) { - // If default toolbar configuration has been modified, show "current toolbar" section. - if ( !defaultToolbar ) - CKEDITOR.document.getById( 'currentToolbar' ).show(); - else - return; - } - - if ( !buttonsNames ) - buttonsNames = createButtonsNamesHash( editor.ui.items ); - - // Toolbar isn't set explicitly, so it was created automatically from toolbarGroups. - if ( !editor.config.toolbar ) { - output += - '// Toolbar configuration generated automatically by the editor based on config.toolbarGroups.\n' + - dumpToolbarConfiguration( editor ) + - '\n\n' + - '// Toolbar groups configuration.\n' + - dumpToolbarConfiguration( editor, true ) - } - // Toolbar groups doesn't count in this case - print only toolbar. - else { - output += '// Toolbar configuration.\n' + - dumpToolbarConfiguration( editor ); - } - - // Recreate to avoid old IE from loosing whitespaces on filling <pre> content. - var preOutput = pre.getOuterHtml().replace( /(?=<\/)/, output ); - CKEDITOR.dom.element.createFromHtml( preOutput ).replace( pre ); - } ); - - CKEDITOR.replace( 'editorCurrent', { height: 100 } ); - CKEDITOR.replace( 'editorFull', { - // Reset toolbar settings, so full toolbar will be generated automatically. - toolbar: null, - toolbarGroups: null, - removeButtons: null, - height: 100 - } ); - - function dumpToolbarConfiguration( editor, printGroups ) { - var output = [], - toolbar = editor.toolbar; - - for ( var i = 0; i < toolbar.length; ++i ) { - var group = dumpToolbarGroup( toolbar[ i ], printGroups ); - if ( group ) - output.push( group ); - } - - return 'config.toolbar' + ( printGroups ? 'Groups' : '' ) + ' = [\n\t' + output.join( ',\n\t' ) + '\n];'; - } - - function dumpToolbarGroup( group, printGroups ) { - var output = []; - - if ( typeof group == 'string' ) - return '\'' + group + '\''; - if ( CKEDITOR.tools.isArray( group ) ) - return dumpToolbarItems( group ); - // Skip group when printing entire toolbar configuration and there are no items in this group. - if ( !printGroups && !group.items ) - return; - - if ( group.name ) - output.push( 'name: \'' + group.name + '\'' ); - - if ( group.groups ) - output.push( 'groups: ' + dumpToolbarItems( group.groups ) ); - - if ( !printGroups ) - output.push( 'items: ' + dumpToolbarItems( group.items ) ); - - return '{ ' + output.join( ', ' ) + ' }'; - } - - function dumpToolbarItems( items ) { - if ( typeof items == 'string' ) - return '\'' + items + '\''; - - var names = [], - i, item; - - for ( var i = 0; i < items.length; ++i ) { - item = items[ i ]; - if ( typeof item == 'string' ) - names.push( item ); - else { - if ( item.type == CKEDITOR.UI_SEPARATOR ) - names.push( '-' ); - else - names.push( buttonsNames[ item.name ] ); - } - } - - return '[ \'' + names.join( '\', \'' ) + '\' ]'; - } - - // Creates { 'lowercased': 'LowerCased' } buttons names hash. - function createButtonsNamesHash( items ) { - var hash = {}, - name; - - for ( name in items ) { - hash[ items[ name ].name ] = name; - } - - return hash; - } - -})(); - </script> - - <div id="footer"> - <hr> - <p> - CKEditor - The text editor for the Internet - <a class="samples" href="http://ckeditor.com/">http://ckeditor.com</a> - </p> - <p id="copy"> - Copyright &copy; 2003-2017, <a class="samples" href="http://cksource.com/">CKSource</a> - Frederico - Knabben. All rights reserved. - </p> - </div> -</body> -</html> diff --git a/admin/plugins/ckeditor/samples/old/uicolor.html b/admin/plugins/ckeditor/samples/old/uicolor.html deleted file mode 100644 index fb61b1f..0000000 --- a/admin/plugins/ckeditor/samples/old/uicolor.html +++ /dev/null @@ -1,72 +0,0 @@ -<!DOCTYPE html> -<!-- -Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. -For licensing, see LICENSE.md or http://ckeditor.com/license ---> -<html> -<head> - <meta charset="utf-8"> - <title>UI Color Picker &mdash; CKEditor Sample</title> - <script src="../../ckeditor.js"></script> - <link rel="stylesheet" href="sample.css"> -</head> -<body> - <h1 class="samples"> - <a href="index.html">CKEditor Samples</a> &raquo; UI Color - </h1> - <div class="warning deprecated"> - This sample is not maintained anymore. Check out its <a href="http://sdk.ckeditor.com/samples/uicolor.html">brand new version in CKEditor SDK</a>. - </div> - <div class="description"> - <p> - This sample shows how to automatically replace <code>&lt;textarea&gt;</code> elements - with a CKEditor instance with an option to change the color of its user interface.<br> - <strong>Note:</strong>The UI skin color feature depends on the CKEditor skin - compatibility. The Moono and Kama skins are examples of skins that work with it. - </p> - </div> - <form action="sample_posteddata.php" method="post"> - <p> - This editor instance has a UI color value defined in configuration to change the skin color, - To specify the color of the user interface, set the <code>uiColor</code> property: - </p> - <pre class="samples"> -CKEDITOR.replace( '<em>textarea_id</em>', { - <strong>uiColor: '#14B8C4'</strong> -});</pre> - <p> - Note that <code><em>textarea_id</em></code> in the code above is the <code>id</code> attribute of - the <code>&lt;textarea&gt;</code> element to be replaced. - </p> - <p> - <textarea cols="80" id="editor1" name="editor1" rows="10">&lt;p&gt;This is some &lt;strong&gt;sample text&lt;/strong&gt;. You are using &lt;a href="http://ckeditor.com/"&gt;CKEditor&lt;/a&gt;.&lt;/p&gt;</textarea> - <script> - - // Replace the <textarea id="editor"> with an CKEditor - // instance, using default configurations. - CKEDITOR.replace( 'editor1', { - uiColor: '#14B8C4', - toolbar: [ - [ 'Bold', 'Italic', '-', 'NumberedList', 'BulletedList', '-', 'Link', 'Unlink' ], - [ 'FontSize', 'TextColor', 'BGColor' ] - ] - }); - - </script> - </p> - <p> - <input type="submit" value="Submit"> - </p> - </form> - <div id="footer"> - <hr> - <p> - CKEditor - The text editor for the Internet - <a class="samples" href="http://ckeditor.com/">http://ckeditor.com</a> - </p> - <p id="copy"> - Copyright &copy; 2003-2017, <a class="samples" href="http://cksource.com/">CKSource</a> - Frederico - Knabben. All rights reserved. - </p> - </div> -</body> -</html> diff --git a/admin/plugins/ckeditor/samples/old/uilanguages.html b/admin/plugins/ckeditor/samples/old/uilanguages.html deleted file mode 100644 index 76749cb..0000000 --- a/admin/plugins/ckeditor/samples/old/uilanguages.html +++ /dev/null @@ -1,122 +0,0 @@ -<!DOCTYPE html> -<!-- -Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. -For licensing, see LICENSE.md or http://ckeditor.com/license ---> -<html> -<head> - <meta charset="utf-8"> - <title>User Interface Globalization &mdash; CKEditor Sample</title> - <script src="../../ckeditor.js"></script> - <script src="assets/uilanguages/languages.js"></script> - <link rel="stylesheet" href="sample.css"> -</head> -<body> - <h1 class="samples"> - <a href="index.html">CKEditor Samples</a> &raquo; User Interface Languages - </h1> - <div class="warning deprecated"> - This sample is not maintained anymore. Check out its <a href="http://sdk.ckeditor.com/samples/uilanguages.html">brand new version in CKEditor SDK</a>. - </div> - <div class="description"> - <p> - This sample shows how to automatically replace <code>&lt;textarea&gt;</code> elements - with a CKEditor instance with an option to change the language of its user interface. - </p> - <p> - It pulls the language list from CKEditor <code>_languages.js</code> file that contains the list of supported languages and creates - a drop-down list that lets the user change the UI language. - </p> - <p> - By default, CKEditor automatically localizes the editor to the language of the user. - The UI language can be controlled with two configuration options: - <code><a class="samples" href="http://docs.ckeditor.com/#!/api/CKEDITOR.config-cfg-language">language</a></code> and - <code><a class="samples" href="http://docs.ckeditor.com/#!/api/CKEDITOR.config-cfg-defaultLanguage"> - defaultLanguage</a></code>. The <code>defaultLanguage</code> setting specifies the - default CKEditor language to be used when a localization suitable for user's settings is not available. - </p> - <p> - To specify the user interface language that will be used no matter what language is - specified in user's browser or operating system, set the <code>language</code> property: - </p> -<pre class="samples"> -CKEDITOR.replace( '<em>textarea_id</em>', { - // Load the German interface. - <strong>language: 'de'</strong> -});</pre> - <p> - Note that <code><em>textarea_id</em></code> in the code above is the <code>id</code> attribute of - the <code>&lt;textarea&gt;</code> element to be replaced. - </p> - </div> - <form action="sample_posteddata.php" method="post"> - <p> - Available languages (<span id="count"> </span> languages!):<br> - <script> - - document.write( '<select disabled="disabled" id="languages" onchange="createEditor( this.value );">' ); - - // Get the language list from the _languages.js file. - for ( var i = 0 ; i < window.CKEDITOR_LANGS.length ; i++ ) { - document.write( - '<option value="' + window.CKEDITOR_LANGS[i].code + '">' + - window.CKEDITOR_LANGS[i].name + - '</option>' ); - } - - document.write( '</select>' ); - - </script> - <br> - <span style="color: #888888"> - (You may see strange characters if your system does not support the selected language) - </span> - </p> - <p> - <textarea cols="80" id="editor1" name="editor1" rows="10">&lt;p&gt;This is some &lt;strong&gt;sample text&lt;/strong&gt;. You are using &lt;a href="http://ckeditor.com/"&gt;CKEditor&lt;/a&gt;.&lt;/p&gt;</textarea> - <script> - - // Set the number of languages. - document.getElementById( 'count' ).innerHTML = window.CKEDITOR_LANGS.length; - - var editor; - - function createEditor( languageCode ) { - if ( editor ) - editor.destroy(); - - // Replace the <textarea id="editor"> with an CKEditor - // instance, using default configurations. - editor = CKEDITOR.replace( 'editor1', { - language: languageCode, - - on: { - instanceReady: function() { - // Wait for the editor to be ready to set - // the language combo. - var languages = document.getElementById( 'languages' ); - languages.value = this.langCode; - languages.disabled = false; - } - } - }); - } - - // At page startup, load the default language: - createEditor( '' ); - - </script> - </p> - </form> - <div id="footer"> - <hr> - <p> - CKEditor - The text editor for the Internet - <a class="samples" href="http://ckeditor.com/">http://ckeditor.com</a> - </p> - <p id="copy"> - Copyright &copy; 2003-2017, <a class="samples" href="http://cksource.com/">CKSource</a> - Frederico - Knabben. All rights reserved. - </p> - </div> -</body> -</html> diff --git a/admin/plugins/ckeditor/samples/old/wysiwygarea/fullpage.html b/admin/plugins/ckeditor/samples/old/wysiwygarea/fullpage.html deleted file mode 100644 index 7bb1a62..0000000 --- a/admin/plugins/ckeditor/samples/old/wysiwygarea/fullpage.html +++ /dev/null @@ -1,80 +0,0 @@ -<!DOCTYPE html> -<!-- -Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. -For licensing, see LICENSE.md or http://ckeditor.com/license ---> -<html> -<head> - <meta charset="utf-8"> - <title>Full Page Editing &mdash; CKEditor Sample</title> - <script src="../../../ckeditor.js"></script> - <script src="../../../samples/old/sample.js"></script> - <link rel="stylesheet" href="../../../samples/old/sample.css"> - <meta name="ckeditor-sample-required-plugins" content="sourcearea"> - <meta name="ckeditor-sample-name" content="Full page support"> - <meta name="ckeditor-sample-group" content="Plugins"> - <meta name="ckeditor-sample-description" content="CKEditor inserted with a JavaScript call and used to edit the whole page from &lt;html&gt; to &lt;/html&gt;."> -</head> -<body> - <h1 class="samples"> - <a href="../../../samples/old/index.html">CKEditor Samples</a> &raquo; Full Page Editing - </h1> - <div class="warning deprecated"> - This sample is not maintained anymore. Check out its <a href="http://sdk.ckeditor.com/samples/fullpage.html">brand new version in CKEditor SDK</a>. - </div> - <div class="description"> - <p> - This sample shows how to configure CKEditor to edit entire HTML pages, from the - <code>&lt;html&gt;</code> tag to the <code>&lt;/html&gt;</code> tag. - </p> - <p> - The CKEditor instance below is inserted with a JavaScript call using the following code: - </p> -<pre class="samples"> -CKEDITOR.replace( '<em>textarea_id</em>', { - <strong>fullPage: true</strong>, - <strong>allowedContent: true</strong> -}); -</pre> - <p> - Note that <code><em>textarea_id</em></code> in the code above is the <code>id</code> attribute of - the <code>&lt;textarea&gt;</code> element to be replaced. - </p> - <p> - The <code><em>allowedContent</em></code> in the code above is set to <code>true</code> to disable content filtering. - Setting this option is not obligatory, but in full page mode there is a strong chance that one may want be able to freely enter any HTML content in source mode without any limitations. - </p> - </div> - <form action="../../../samples/sample_posteddata.php" method="post"> - <label for="editor1"> - CKEditor output the entire page including content outside of - <code>&lt;body&gt;</code> element, so content like meta and title can be changed: - </label> - <textarea cols="80" id="editor1" name="editor1" rows="10"> - &lt;h1&gt;&lt;img align=&quot;right&quot; alt=&quot;Saturn V carrying Apollo 11&quot; src=&quot;../../../samples/old/assets/sample.jpg&quot;/&gt; Apollo 11&lt;/h1&gt; &lt;p&gt;&lt;b&gt;Apollo 11&lt;/b&gt; was the spaceflight that landed the first humans, Americans &lt;a href=&quot;http://en.wikipedia.org/wiki/Neil_Armstrong&quot; title=&quot;Neil Armstrong&quot;&gt;Neil Armstrong&lt;/a&gt; and &lt;a href=&quot;http://en.wikipedia.org/wiki/Buzz_Aldrin&quot; title=&quot;Buzz Aldrin&quot;&gt;Buzz Aldrin&lt;/a&gt;, on the Moon on July 20, 1969, at 20:18 UTC. Armstrong became the first to step onto the lunar surface 6 hours later on July 21 at 02:56 UTC.&lt;/p&gt; &lt;p&gt;Armstrong spent about &lt;s&gt;three and a half&lt;/s&gt; two and a half hours outside the spacecraft, Aldrin slightly less; and together they collected 47.5 pounds (21.5&amp;nbsp;kg) of lunar material for return to Earth. A third member of the mission, &lt;a href=&quot;http://en.wikipedia.org/wiki/Michael_Collins_(astronaut)&quot; title=&quot;Michael Collins (astronaut)&quot;&gt;Michael Collins&lt;/a&gt;, piloted the &lt;a href=&quot;http://en.wikipedia.org/wiki/Apollo_Command/Service_Module&quot; title=&quot;Apollo Command/Service Module&quot;&gt;command&lt;/a&gt; spacecraft alone in lunar orbit until Armstrong and Aldrin returned to it for the trip back to Earth.&lt;/p&gt; &lt;h2&gt;Broadcasting and &lt;em&gt;quotes&lt;/em&gt; &lt;a id=&quot;quotes&quot; name=&quot;quotes&quot;&gt;&lt;/a&gt;&lt;/h2&gt; &lt;p&gt;Broadcast on live TV to a world-wide audience, Armstrong stepped onto the lunar surface and described the event as:&lt;/p&gt; &lt;blockquote&gt;&lt;p&gt;One small step for [a] man, one giant leap for mankind.&lt;/p&gt;&lt;/blockquote&gt; &lt;p&gt;Apollo 11 effectively ended the &lt;a href=&quot;http://en.wikipedia.org/wiki/Space_Race&quot; title=&quot;Space Race&quot;&gt;Space Race&lt;/a&gt; and fulfilled a national goal proposed in 1961 by the late U.S. President &lt;a href=&quot;http://en.wikipedia.org/wiki/John_F._Kennedy&quot; title=&quot;John F. Kennedy&quot;&gt;John F. Kennedy&lt;/a&gt; in a speech before the United States Congress:&lt;/p&gt; &lt;blockquote&gt;&lt;p&gt;[...] before this decade is out, of landing a man on the Moon and returning him safely to the Earth.&lt;/p&gt;&lt;/blockquote&gt; &lt;h2&gt;Technical details &lt;a id=&quot;tech-details&quot; name=&quot;tech-details&quot;&gt;&lt;/a&gt;&lt;/h2&gt; &lt;table align=&quot;right&quot; border=&quot;1&quot; bordercolor=&quot;#ccc&quot; cellpadding=&quot;5&quot; cellspacing=&quot;0&quot; style=&quot;border-collapse:collapse;margin:10px 0 10px 15px;&quot;&gt; &lt;caption&gt;&lt;strong&gt;Mission crew&lt;/strong&gt;&lt;/caption&gt; &lt;thead&gt; &lt;tr&gt; &lt;th scope=&quot;col&quot;&gt;Position&lt;/th&gt; &lt;th scope=&quot;col&quot;&gt;Astronaut&lt;/th&gt; &lt;/tr&gt; &lt;/thead&gt; &lt;tbody&gt; &lt;tr&gt; &lt;td&gt;Commander&lt;/td&gt; &lt;td&gt;Neil A. Armstrong&lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td&gt;Command Module Pilot&lt;/td&gt; &lt;td&gt;Michael Collins&lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td&gt;Lunar Module Pilot&lt;/td&gt; &lt;td&gt;Edwin &amp;quot;Buzz&amp;quot; E. Aldrin, Jr.&lt;/td&gt; &lt;/tr&gt; &lt;/tbody&gt; &lt;/table&gt; &lt;p&gt;Launched by a &lt;strong&gt;Saturn V&lt;/strong&gt; rocket from &lt;a href=&quot;http://en.wikipedia.org/wiki/Kennedy_Space_Center&quot; title=&quot;Kennedy Space Center&quot;&gt;Kennedy Space Center&lt;/a&gt; in Merritt Island, Florida on July 16, Apollo 11 was the fifth manned mission of &lt;a href=&quot;http://en.wikipedia.org/wiki/NASA&quot; title=&quot;NASA&quot;&gt;NASA&lt;/a&gt;&amp;#39;s Apollo program. The Apollo spacecraft had three parts:&lt;/p&gt; &lt;ol&gt; &lt;li&gt;&lt;strong&gt;Command Module&lt;/strong&gt; with a cabin for the three astronauts which was the only part which landed back on Earth&lt;/li&gt; &lt;li&gt;&lt;strong&gt;Service Module&lt;/strong&gt; which supported the Command Module with propulsion, electrical power, oxygen and water&lt;/li&gt; &lt;li&gt;&lt;strong&gt;Lunar Module&lt;/strong&gt; for landing on the Moon.&lt;/li&gt; &lt;/ol&gt; &lt;p&gt;After being sent to the Moon by the Saturn V&amp;#39;s upper stage, the astronauts separated the spacecraft from it and travelled for three days until they entered into lunar orbit. Armstrong and Aldrin then moved into the Lunar Module and landed in the &lt;a href=&quot;http://en.wikipedia.org/wiki/Mare_Tranquillitatis&quot; title=&quot;Mare Tranquillitatis&quot;&gt;Sea of Tranquility&lt;/a&gt;. They stayed a total of about 21 and a half hours on the lunar surface. After lifting off in the upper part of the Lunar Module and rejoining Collins in the Command Module, they returned to Earth and landed in the &lt;a href=&quot;http://en.wikipedia.org/wiki/Pacific_Ocean&quot; title=&quot;Pacific Ocean&quot;&gt;Pacific Ocean&lt;/a&gt; on July 24.&lt;/p&gt; &lt;hr/&gt; &lt;p style=&quot;text-align: right;&quot;&gt;&lt;small&gt;Source: &lt;a href=&quot;http://en.wikipedia.org/wiki/Apollo_11&quot;&gt;Wikipedia.org&lt;/a&gt;&lt;/small&gt;&lt;/p&gt; - </textarea> - <script> - - CKEDITOR.replace( 'editor1', { - fullPage: true, - allowedContent: true, - extraPlugins: 'wysiwygarea' - }); - - </script> - <p> - <input type="submit" value="Submit"> - </p> - </form> - <div id="footer"> - <hr> - <p> - CKEditor - The text editor for the Internet - <a class="samples" href="http://ckeditor.com/">http://ckeditor.com</a> - </p> - <p id="copy"> - Copyright &copy; 2003-2017, <a class="samples" href="http://cksource.com/">CKSource</a> - Frederico - Knabben. All rights reserved. - </p> - </div> -</body> -</html> diff --git a/admin/plugins/ckeditor/samples/old/xhtmlstyle.html b/admin/plugins/ckeditor/samples/old/xhtmlstyle.html deleted file mode 100644 index c918766..0000000 --- a/admin/plugins/ckeditor/samples/old/xhtmlstyle.html +++ /dev/null @@ -1,234 +0,0 @@ -<!DOCTYPE html> -<!-- -Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. -For licensing, see LICENSE.md or http://ckeditor.com/license ---> -<html> -<head> - <meta charset="utf-8"> - <title>XHTML Compliant Output &mdash; CKEditor Sample</title> - <meta name="ckeditor-sample-required-plugins" content="sourcearea"> - <script src="../../ckeditor.js"></script> - <script src="sample.js"></script> - <link href="sample.css" rel="stylesheet"> -</head> -<body> - <h1 class="samples"> - <a href="index.html">CKEditor Samples</a> &raquo; Producing XHTML Compliant Output - </h1> - <div class="warning deprecated"> - This sample is not maintained anymore. Check out its <a href="http://sdk.ckeditor.com/samples/basicstyles.html">brand new version in CKEditor SDK</a>. - </div> - <div class="description"> - <p> - This sample shows how to configure CKEditor to output valid - <a class="samples" href="http://www.w3.org/TR/xhtml11/">XHTML 1.1</a> code. - Deprecated elements (<code>&lt;font&gt;</code>, <code>&lt;u&gt;</code>) or attributes - (<code>size</code>, <code>face</code>) will be replaced with XHTML compliant code. - </p> - <p> - To add a CKEditor instance outputting valid XHTML code, load the editor using a standard - JavaScript call and define CKEditor features to use the XHTML compliant elements and styles. - </p> - <p> - A snippet of the configuration code can be seen below; check the source of this page for - full definition: - </p> -<pre class="samples"> -CKEDITOR.replace( '<em>textarea_id</em>', { - contentsCss: 'assets/outputxhtml.css', - - coreStyles_bold: { - element: 'span', - attributes: { 'class': 'Bold' } - }, - coreStyles_italic: { - element: 'span', - attributes: { 'class': 'Italic' } - }, - - ... -});</pre> - </div> - <form action="sample_posteddata.php" method="post"> - <p> - <label for="editor1"> - Editor 1: - </label> - <textarea cols="80" id="editor1" name="editor1" rows="10">&lt;p&gt;This is some &lt;span class="Bold"&gt;sample text&lt;/span&gt;. You are using &lt;a href="http://ckeditor.com/"&gt;CKEditor&lt;/a&gt;.&lt;/p&gt;</textarea> - <script> - - CKEDITOR.replace( 'editor1', { - /* - * Style sheet for the contents - */ - contentsCss: 'assets/outputxhtml/outputxhtml.css', - - /* - * Special allowed content rules for spans used by - * font face, size, and color buttons. - * - * Note: all rules have been written separately so - * it was possible to specify required classes. - */ - extraAllowedContent: 'span(!FontColor1);span(!FontColor2);span(!FontColor3);' + - 'span(!FontColor1BG);span(!FontColor2BG);span(!FontColor3BG);' + - 'span(!FontComic);span(!FontCourier);span(!FontTimes);' + - 'span(!FontSmaller);span(!FontLarger);span(!FontSmall);span(!FontBig);span(!FontDouble)', - - /* - * Core styles. - */ - coreStyles_bold: { - element: 'span', - attributes: { 'class': 'Bold' } - }, - coreStyles_italic: { - element: 'span', - attributes: { 'class': 'Italic' } - }, - coreStyles_underline: { - element: 'span', - attributes: { 'class': 'Underline' } - }, - coreStyles_strike: { - element: 'span', - attributes: { 'class': 'StrikeThrough' }, - overrides: 'strike' - }, - coreStyles_subscript: { - element: 'span', - attributes: { 'class': 'Subscript' }, - overrides: 'sub' - }, - coreStyles_superscript: { - element: 'span', - attributes: { 'class': 'Superscript' }, - overrides: 'sup' - }, - - /* - * Font face. - */ - - // List of fonts available in the toolbar combo. Each font definition is - // separated by a semi-colon (;). We are using class names here, so each font - // is defined by {Combo Label}/{Class Name}. - font_names: 'Comic Sans MS/FontComic;Courier New/FontCourier;Times New Roman/FontTimes', - - // Define the way font elements will be applied to the document. The "span" - // element will be used. When a font is selected, the font name defined in the - // above list is passed to this definition with the name "Font", being it - // injected in the "class" attribute. - // We must also instruct the editor to replace span elements that are used to - // set the font (Overrides). - font_style: { - element: 'span', - attributes: { 'class': '#(family)' }, - overrides: [ - { - element: 'span', - attributes: { - 'class': /^Font(?:Comic|Courier|Times)$/ - } - } - ] - }, - - /* - * Font sizes. - */ - fontSize_sizes: 'Smaller/FontSmaller;Larger/FontLarger;8pt/FontSmall;14pt/FontBig;Double Size/FontDouble', - fontSize_style: { - element: 'span', - attributes: { 'class': '#(size)' }, - overrides: [ - { - element: 'span', - attributes: { - 'class': /^Font(?:Smaller|Larger|Small|Big|Double)$/ - } - } - ] - } , - - /* - * Font colors. - */ - colorButton_enableMore: false, - - colorButton_colors: 'FontColor1/FF9900,FontColor2/0066CC,FontColor3/F00', - colorButton_foreStyle: { - element: 'span', - attributes: { 'class': '#(color)' }, - overrides: [ - { - element: 'span', - attributes: { - 'class': /^FontColor(?:1|2|3)$/ - } - } - ] - }, - - colorButton_backStyle: { - element: 'span', - attributes: { 'class': '#(color)BG' }, - overrides: [ - { - element: 'span', - attributes: { - 'class': /^FontColor(?:1|2|3)BG$/ - } - } - ] - }, - - /* - * Indentation. - */ - indentClasses: [ 'Indent1', 'Indent2', 'Indent3' ], - - /* - * Paragraph justification. - */ - justifyClasses: [ 'JustifyLeft', 'JustifyCenter', 'JustifyRight', 'JustifyFull' ], - - /* - * Styles combo. - */ - stylesSet: [ - { name: 'Strong Emphasis', element: 'strong' }, - { name: 'Emphasis', element: 'em' }, - - { name: 'Computer Code', element: 'code' }, - { name: 'Keyboard Phrase', element: 'kbd' }, - { name: 'Sample Text', element: 'samp' }, - { name: 'Variable', element: 'var' }, - - { name: 'Deleted Text', element: 'del' }, - { name: 'Inserted Text', element: 'ins' }, - - { name: 'Cited Work', element: 'cite' }, - { name: 'Inline Quotation', element: 'q' } - ] - }); - - </script> - </p> - <p> - <input type="submit" value="Submit"> - </p> - </form> - <div id="footer"> - <hr> - <p> - CKEditor - The text editor for the Internet - <a class="samples" href="http://ckeditor.com/">http://ckeditor.com</a> - </p> - <p id="copy"> - Copyright &copy; 2003-2017, <a class="samples" href="http://cksource.com/">CKSource</a> - Frederico - Knabben. All rights reserved. - </p> - </div> -</body> -</html> diff --git a/admin/plugins/ckeditor/samples/toolbarconfigurator/css/fontello.css b/admin/plugins/ckeditor/samples/toolbarconfigurator/css/fontello.css deleted file mode 100644 index af1d460..0000000 --- a/admin/plugins/ckeditor/samples/toolbarconfigurator/css/fontello.css +++ /dev/null @@ -1,55 +0,0 @@ -@font-face { - font-family: 'fontello'; - src: url('../font/fontello.eot?89024372'); - src: url('../font/fontello.eot?89024372#iefix') format('embedded-opentype'), - url('../font/fontello.woff?89024372') format('woff'), - url('../font/fontello.ttf?89024372') format('truetype'), - url('../font/fontello.svg?89024372#fontello') format('svg'); - font-weight: normal; - font-style: normal; -} -/* Chrome hack: SVG is rendered more smooth in Windozze. 100% magic, uncomment if you need it. */ -/* Note, that will break hinting! In other OS-es font will be not as sharp as it could be */ -/* -@media screen and (-webkit-min-device-pixel-ratio:0) { - @font-face { - font-family: 'fontello'; - src: url('../font/fontello.svg?89024372#fontello') format('svg'); - } -} -*/ - - [class^="icon-"]:before, [class*=" icon-"]:before { - font-family: "fontello"; - font-style: normal; - font-weight: normal; - speak: none; - - display: inline-block; - text-decoration: inherit; - width: 1em; - margin-right: .2em; - text-align: center; - /* opacity: .8; */ - - /* For safety - reset parent styles, that can break glyph codes*/ - font-variant: normal; - text-transform: none; - - /* fix buttons height, for twitter bootstrap */ - line-height: 1em; - - /* Animation center compensation - margins should be symmetric */ - /* remove if not needed */ - margin-left: .2em; - - /* you can be more comfortable with increased icons size */ - /* font-size: 120%; */ - - /* Uncomment for 3D effect */ - /* text-shadow: 1px 1px 1px rgba(127, 127, 127, 0.3); */ -} - -.icon-trash:before { content: '\e802'; } /* '' */ -.icon-down-big:before { content: '\e800'; } /* '' */ -.icon-up-big:before { content: '\e801'; } /* '' */ diff --git a/admin/plugins/ckeditor/samples/toolbarconfigurator/font/LICENSE.txt b/admin/plugins/ckeditor/samples/toolbarconfigurator/font/LICENSE.txt deleted file mode 100644 index 174b67a..0000000 --- a/admin/plugins/ckeditor/samples/toolbarconfigurator/font/LICENSE.txt +++ /dev/null @@ -1,10 +0,0 @@ -Font license info - - -## Font Awesome - - Copyright (C) 2012 by Dave Gandy - - Author: Dave Gandy - License: SIL () - Homepage: http://fortawesome.github.com/Font-Awesome/ diff --git a/admin/plugins/ckeditor/samples/toolbarconfigurator/font/config.json b/admin/plugins/ckeditor/samples/toolbarconfigurator/font/config.json deleted file mode 100644 index 94809d7..0000000 --- a/admin/plugins/ckeditor/samples/toolbarconfigurator/font/config.json +++ /dev/null @@ -1,28 +0,0 @@ -{ - "name": "", - "css_prefix_text": "icon-", - "css_use_suffix": false, - "hinting": true, - "units_per_em": 1000, - "ascent": 850, - "glyphs": [ - { - "uid": "f48ae54adfb27d8ada53d0fd9e34ee10", - "css": "trash-empty", - "code": 59392, - "src": "fontawesome" - }, - { - "uid": "1c4068ed75209e21af36017df8871802", - "css": "down-big", - "code": 59393, - "src": "fontawesome" - }, - { - "uid": "95376bf082bfec6ce06ea1cda7bd7ead", - "css": "up-big", - "code": 59394, - "src": "fontawesome" - } - ] -} \ No newline at end of file diff --git a/admin/plugins/ckeditor/samples/toolbarconfigurator/font/fontello.eot b/admin/plugins/ckeditor/samples/toolbarconfigurator/font/fontello.eot deleted file mode 100644 index 2732fad..0000000 Binary files a/admin/plugins/ckeditor/samples/toolbarconfigurator/font/fontello.eot and /dev/null differ diff --git a/admin/plugins/ckeditor/samples/toolbarconfigurator/font/fontello.svg b/admin/plugins/ckeditor/samples/toolbarconfigurator/font/fontello.svg deleted file mode 100644 index 33d14ac..0000000 --- a/admin/plugins/ckeditor/samples/toolbarconfigurator/font/fontello.svg +++ /dev/null @@ -1,14 +0,0 @@ -<?xml version="1.0" standalone="no"?> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg xmlns="http://www.w3.org/2000/svg"> -<metadata>Copyright (C) 2014 by original authors @ fontello.com</metadata> -<defs> -<font id="fontello" horiz-adv-x="1000" > -<font-face font-family="fontello" font-weight="400" font-stretch="normal" units-per-em="1000" ascent="850" descent="-150" /> -<missing-glyph horiz-adv-x="1000" /> -<glyph glyph-name="trash" unicode="&#xe802;" d="m286 439v-321q0-8-5-13t-13-5h-36q-8 0-13 5t-5 13v321q0 8 5 13t13 5h36q8 0 13-5t5-13z m143 0v-321q0-8-5-13t-13-5h-36q-8 0-13 5t-5 13v321q0 8 5 13t13 5h36q8 0 13-5t5-13z m142 0v-321q0-8-5-13t-12-5h-36q-8 0-13 5t-5 13v321q0 8 5 13t13 5h36q7 0 12-5t5-13z m72-404v529h-500v-529q0-12 4-22t8-15t6-5h464q2 0 6 5t8 15t4 22z m-375 601h250l-27 65q-4 5-9 6h-177q-6-1-10-6z m518-18v-36q0-8-5-13t-13-5h-54v-529q0-46-26-80t-63-34h-464q-37 0-63 33t-27 79v531h-53q-8 0-13 5t-5 13v36q0 8 5 13t13 5h172l39 93q9 21 31 35t44 15h178q22 0 44-15t30-35l39-93h173q8 0 13-5t5-13z" horiz-adv-x="785.7" /> -<glyph glyph-name="down-big" unicode="&#xe800;" d="m899 386q0-30-21-50l-363-364q-22-21-51-21q-29 0-50 21l-363 364q-21 20-21 50q0 29 21 51l41 41q22 21 51 21q29 0 50-21l164-164v393q0 29 21 50t51 22h71q29 0 50-22t21-50v-393l164 164q21 21 51 21q29 0 50-21l42-42q21-21 21-50z" horiz-adv-x="928.6" /> -<glyph glyph-name="up-big" unicode="&#xe801;" d="m899 308q0-28-21-50l-42-42q-21-21-50-21q-30 0-51 21l-164 164v-393q0-29-20-47t-51-19h-71q-30 0-51 19t-21 47v393l-164-164q-20-21-50-21t-50 21l-42 42q-21 21-21 50q0 30 21 51l363 363q20 21 50 21q30 0 51-21l363-363q21-22 21-51z" horiz-adv-x="928.6" /> -</font> -</defs> -</svg> \ No newline at end of file diff --git a/admin/plugins/ckeditor/samples/toolbarconfigurator/font/fontello.ttf b/admin/plugins/ckeditor/samples/toolbarconfigurator/font/fontello.ttf deleted file mode 100644 index fbcbf06..0000000 Binary files a/admin/plugins/ckeditor/samples/toolbarconfigurator/font/fontello.ttf and /dev/null differ diff --git a/admin/plugins/ckeditor/samples/toolbarconfigurator/font/fontello.woff b/admin/plugins/ckeditor/samples/toolbarconfigurator/font/fontello.woff deleted file mode 100644 index e1d5647..0000000 Binary files a/admin/plugins/ckeditor/samples/toolbarconfigurator/font/fontello.woff and /dev/null differ diff --git a/admin/plugins/ckeditor/samples/toolbarconfigurator/index.html b/admin/plugins/ckeditor/samples/toolbarconfigurator/index.html deleted file mode 100644 index ea216d2..0000000 --- a/admin/plugins/ckeditor/samples/toolbarconfigurator/index.html +++ /dev/null @@ -1,446 +0,0 @@ -<!DOCTYPE html> -<!-- -Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. -For licensing, see LICENSE.md or http://ckeditor.com/license ---> -<!--[if IE 8]><html class="ie8"><![endif]--> -<!--[if gt IE 8]><html><![endif]--> -<!--[if !IE]><!--><html><!--<![endif]--> -<head> - <meta charset="utf-8"> - <title>Toolbar Configurator</title> - <script src="../../ckeditor.js"></script> - <script> - if ( CKEDITOR.env.ie && CKEDITOR.env.version < 9 ) - CKEDITOR.tools.enableHtml5Elements( document ); - </script> - <link rel="stylesheet" href="lib/codemirror/codemirror.css"> - <link rel="stylesheet" href="lib/codemirror/show-hint.css"> - <link rel="stylesheet" href="lib/codemirror/neo.css"> - <link rel="stylesheet" href="css/fontello.css"> - <link rel="stylesheet" href="../css/samples.css"> -</head> -<body id="toolbar"> - -<nav class="navigation-a"> - <div class="grid-container"> - <ul class="navigation-a-left grid-width-70"> - <li><a href="http://ckeditor.com">Project Homepage</a></li> - <li><a href="https://github.com/ckeditor/ckeditor-dev/issues">I found a bug</a></li> - <li><a href="http://github.com/ckeditor/ckeditor-dev" class="icon-pos-right icon-navigation-a-github">Fork CKEditor on GitHub</a></li> - </ul> - <ul class="navigation-a-right grid-width-30"> - <li><a href="http://ckeditor.com/blog-list">CKEditor Blog</a></li> - </ul> - </div> -</nav> - -<header class="header-a"> - <div class="grid-container"> - <h1 class="header-a-logo grid-width-30"> - <a href="../index.html"><img src="../img/logo.png" alt="CKEditor Logo"></a> - </h1> - <nav class="navigation-b grid-width-70"> - <ul> - <li><a href="../index.html" class="button-a">Start</a></li> - <li><a href="index.html" class="button-a button-a-background">Toolbar configurator</a></li> - </ul> - </nav> - </div> -</header> - -<main> - <div class="adjoined-top"> - <div class="grid-container"> - <div class="content grid-width-100"> - <div class="grid-container-nested"> - <h1 class="grid-width-60"> - Toolbar Configurator - <a href="#help-content" type="button" title="Configurator help" id="help" class="button-a button-a-background button-a-no-text icon-pos-left icon-question-mark">Help</a> - </h1> - - <div class="grid-width-40 grid-switch-magic"> - <div class="switch"> - <span class="balloon-a balloon-a-se">Select configurator type</span> - <input type="radio" name="radio" data-num="1" id="radio-basic" /> - <input type="radio" name="radio" data-num="2" id="radio-advanced" /> - <label data-for="1" for="radio-basic">Basic</label> - <span class="switch-inner"> - <span class="handler"></span> - </span> - <label data-for="2" for="radio-advanced">Advanced</label> - </div> - </div> - </div> - </div> - </div> - </div> - <div class="adjoined-bottom"> - <div class="grid-container"> - <div class="grid-width-100"> - <div class="editors-container"> - <div id="editor-basic"></div> - <div id="editor-advanced"></div> - </div> - </div> - </div> - </div> - - <div class="grid-container configurator"> - <div class="content grid-width-100"> - <div class="configurator"> - <div> - <div id="toolbarModifierWrapper"></div> - </div> - </div> - </div> - </div> - - <div id="help-content"> - <div class="grid-container"> - <div class="grid-width-100"> - <h2>What Am I Doing Here?</h2> - - <div class="grid-container grid-container-nested"> - <div class="basic"> - <div class="grid-width-50"> - <p>Arrange <a href="http://docs.ckeditor.com/#!/api/CKEDITOR.config-cfg-toolbarGroups">toolbar groups</a>, toggle <a href="http://docs.ckeditor.com/#!/api/CKEDITOR.config-cfg-removeButtons">button visibility</a> according to your needs and get your toolbar configuration.</p> - <p>You can replace the content of the <a href="../../config.js"><code>config.js</code></a> file with the generated configuration. If you already set some configuration options you will need to merge both configurations.</p> - </div> - <div class="grid-width-50"> - <p>Read more about different ways of <a href="http://docs.ckeditor.com/#!/guide/dev_configuration">setting configuration</a> and do not forget about <strong>clearing browser cache</strong>.</p> - <p>Arranging toolbar groups is the recommended way of configuring the toolbar, but if you need more freedom you can use the <a href="#advanced">advanced configurator</a>.</p> - </div> - </div> - <div class="advanced" style="display: none;"> - <div class="grid-width-50"> - <p>With this code editor you can edit your <a href="http://docs.ckeditor.com/#!/api/CKEDITOR.config-cfg-toolbar">toolbar configuration</a> live.</p> - <p>You can replace the content of the <a href="../../config.js"><code>config.js</code></a> file with the generated configuration. If you already set some configuration options you will need to merge both configurations.</p> - </div> - <div class="grid-width-50"> - <p>Read more about different ways of <a href="http://docs.ckeditor.com/#!/guide/dev_configuration">setting configuration</a> and do not forget about <strong>clearing browser cache</strong>.</p> - </div> - </div> - </div> - - <p class="grid-container grid-container-nested"> - <button type="button" class="help-content-close grid-width-100 button-a button-a-background">Got it. Let's play!</button> - </p> - </div> - </div> - </div> -</main> - -<footer class="footer-a grid-container"> - <p class="grid-width-100"> - CKEditor &ndash; The text editor for the Internet &ndash; <a class="samples" href="http://ckeditor.com/">http://ckeditor.com</a> - </p> - <p class="grid-width-100" id="copy"> - Copyright &copy; 2003-2017, <a class="samples" href="http://cksource.com/">CKSource</a> &ndash; Frederico Knabben. All rights reserved. - </p> -</footer> - -<script src="lib/codemirror/codemirror.js"></script> -<script src="lib/codemirror/javascript.js"></script> -<script src="lib/codemirror/show-hint.js"></script> - -<script src="js/fulltoolbareditor.js"></script> -<script src="js/abstracttoolbarmodifier.js"></script> -<script src="js/toolbarmodifier.js"></script> -<script src="js/toolbartextmodifier.js"></script> -<script src="../js/sf.js"></script> - -<script> - ( function() { - 'use strict'; - - var mode = ( window.location.hash.substr( 1 ) === 'advanced' ) ? 'advanced' : 'basic', - configuratorSection = CKEDITOR.document.findOne( 'main > .grid-container.configurator' ), - basicInstruction = CKEDITOR.document.findOne( '#help-content .basic' ), - advancedInstruction = CKEDITOR.document.findOne( '#help-content .advanced' ), - - // Configurator mode switcher. - modeSwitchBasic = CKEDITOR.document.getById( 'radio-basic' ), - modeSwitchAdvanced = CKEDITOR.document.getById( 'radio-advanced' ); - - // Initial setup - function updateSwitcher() { - if ( mode === 'advanced' ) { - modeSwitchAdvanced.$.checked = true; - } else { - modeSwitchBasic.$.checked = true; - } - } - - updateSwitcher(); - - CKEDITOR.document.getWindow().on( 'hashchange', function( e ) { - var hash = window.location.hash.substr( 1 ); - if ( !( hash === 'advanced' || hash === 'basic' ) ) { - return; - } - mode = hash; - onToolbarsDone( mode ); - } ); - - CKEDITOR.document.getWindow().on( 'resize', function() { - updateToolbar( ( mode === 'basic' ? toolbarModifier : toolbarTextModifier )[ 'editorInstance' ] ); - } ); - - function onRefresh( modifier ) { - modifier = modifier || this; - - if ( mode === 'basic' && modifier instanceof ToolbarConfigurator.ToolbarTextModifier ) { - return; - } - - // CodeMirror container becomes visible, so we need to refresh and to avoid rendering problems. - if ( mode === 'advanced' && modifier instanceof ToolbarConfigurator.ToolbarTextModifier ) { - modifier.codeContainer.refresh(); - } - - updateToolbar( modifier.editorInstance ); - } - - function updateToolbar( editor ) { - var editorContainer = editor.container; - - // Not always editor is loaded. - if ( !editorContainer ) { - return; - } - - var displayStyle = editorContainer.getStyle( 'display' ); - - editorContainer.setStyle( 'display', 'block' ); - - var newHeight = editorContainer.getSize( 'height' ); - - var newMarginTop = parseInt( editorContainer.getComputedStyle( 'margin-top' ), 10 ); - newMarginTop = ( isNaN( newMarginTop ) ? 0 : Number( newMarginTop ) ); - - var newMarginBottom = parseInt( editorContainer.getComputedStyle( 'margin-bottom' ), 10 ); - newMarginBottom = ( isNaN( newMarginBottom ) ? 0 : Number( newMarginBottom ) ); - - var result = newHeight + newMarginTop + newMarginBottom; - - editorContainer.setStyle( 'display', displayStyle ); - - editor.container.getAscendant( 'div' ).setStyle( 'height', result + 'px' ); - } - - var toolbarModifier = new ToolbarConfigurator.ToolbarModifier( 'editor-basic' ); - - var done = 0; - toolbarModifier.init( onToolbarInit ); - toolbarModifier.onRefresh = onRefresh; - - CKEDITOR.document.getById( 'toolbarModifierWrapper' ).append( toolbarModifier.mainContainer ); - - var toolbarTextModifier = new ToolbarConfigurator.ToolbarTextModifier( 'editor-advanced' ); - toolbarTextModifier.init( onToolbarInit ); - toolbarTextModifier.onRefresh = onRefresh; - - function onToolbarInit() { - if ( ++done === 2 ) { - onToolbarsDone(); - - positionSticky.watch( CKEDITOR.document.findOne( '.toolbar' ), function() { - return mode === 'advanced'; - } ); - } - } - - function onToolbarsDone() { - if ( mode === 'basic' ) { - toggleModeBasic( false ); - } else { - toggleModeAdvanced( false ); - } - - updateSwitcher(); - - setTimeout( function() { - CKEDITOR.document.findOne( '.editors-container' ).addClass( 'active' ); - CKEDITOR.document.findOne( '#toolbarModifierWrapper' ).addClass( 'active' ); - }, 200 ); - } - - CKEDITOR.document.getById( 'toolbarModifierWrapper' ).append( toolbarTextModifier.mainContainer ); - - function toogleModeSwitch( onElement, offElement, onModifier, offModifier ) { - onElement.addClass( 'fancy-button-active' ); - offElement.removeClass( 'fancy-button-active' ); - - onModifier.showUI(); - offModifier.hideUI(); - } - - function toggleModeBasic( callOnRefresh ) { - callOnRefresh = ( callOnRefresh !== false ); - mode = 'basic'; - window.location.hash = '#basic'; - toogleModeSwitch( modeSwitchBasic, modeSwitchAdvanced, toolbarModifier, toolbarTextModifier ); - - configuratorSection.removeClass( 'freed-width' ); - basicInstruction.show(); - advancedInstruction.hide(); - - callOnRefresh && onRefresh( toolbarModifier ); - } - - function toggleModeAdvanced( callOnRefresh ) { - callOnRefresh = ( callOnRefresh !== false ); - mode = 'advanced'; - window.location.hash = '#advanced'; - toogleModeSwitch( modeSwitchAdvanced, modeSwitchBasic, toolbarTextModifier, toolbarModifier ); - - configuratorSection.addClass( 'freed-width' ); - advancedInstruction.show(); - basicInstruction.hide(); - - callOnRefresh && onRefresh( toolbarTextModifier ); - } - - modeSwitchBasic.on( 'click', toggleModeBasic ); - modeSwitchAdvanced.on( 'click', toggleModeAdvanced ); - - // - // Position:sticky for the toolbar. - // - - // Will make elements behave like they were styled with position:sticky. - var positionSticky = { - // Store object: { - // element: CKEDITOR.dom.element, // Element which will float. - // placeholder: CKEDITOR.dom.element, // Placeholder which is place to prevent page bounce. - // isFixed: boolean // Whether element float now. - // } - watched: [], - - active: [], - - staticContainer: null, - - init: function() { - var element = CKEDITOR.dom.element.createFromHtml( - '<div class="staticContainer">' + - '<div class="grid-container" >' + - '<div class="grid-width-100">' + - '<div class="inner"></div>' + - '</div>' + - '</div>' + - '</div>' ); - - this.staticContainer = element.findOne( '.inner' ); - - CKEDITOR.document.getBody().append( element ); - }, - - watch: function( element, preventFunc ) { - this.watched.push( { - element: element, - placeholder: new CKEDITOR.dom.element( 'div' ), - isFixed: false, - preventFunc: preventFunc - } ); - }, - - checkAll: function() { - for ( var i = 0; i < this.watched.length; i++ ) { - this.check( this.watched[ i ] ); - } - }, - - check: function( element ) { - var isFixed = element.isFixed; - var shouldBeFixed = this.shouldBeFixed( element ); - - // Nothing to be done. - if ( isFixed === shouldBeFixed ) { - return; - } - - var placeholder = element.placeholder; - - if ( isFixed ) { - // Unfixing. - - element.element.insertBefore( placeholder ); - placeholder.remove(); - - element.element.removeStyle( 'margin' ); - - this.active.splice( CKEDITOR.tools.indexOf( this.active, element ), 1 ); - - } else { - // Fixing. - placeholder.setStyle( 'width', element.element.getSize( 'width' ) + 'px' ); - placeholder.setStyle( 'height', element.element.getSize( 'height' ) + 'px' ); - placeholder.setStyle( 'margin-bottom', element.element.getComputedStyle( 'margin-bottom' ) ); - placeholder.setStyle( 'display', element.element.getComputedStyle( 'display' ) ); - placeholder.insertAfter( element.element ); - - this.staticContainer.append( element.element ); - - this.active.push( element ); - } - - element.isFixed = !element.isFixed; - }, - - shouldBeFixed: function( element ) { - if ( element.preventFunc && element.preventFunc() ) { - return false; - } - - // If element is already fixed we are checking it's placeholder. - var related = ( element.isFixed ? element.placeholder : element.element ), - clientRect = related.$.getBoundingClientRect(), - staticHeight = this.staticContainer.getSize('height' ), - elemHeight = element.element.getSize( 'height' ); - - if ( element.isFixed ) { - return ( clientRect.top + elemHeight < staticHeight ); - } else { - return ( clientRect.top < staticHeight ); - } - } - }; - - positionSticky.init(); - - CKEDITOR.document.getWindow().on( 'scroll', - new CKEDITOR.tools.eventsBuffer( 100, positionSticky.checkAll, positionSticky ).input - ); - - // Make the toolbar sticky. - positionSticky.watch( CKEDITOR.document.findOne( '.editors-container' ) ); - - // Help button and help-content. - ( function() { - var helpButton = CKEDITOR.document.getById( 'help' ), - helpContent = CKEDITOR.document.getById( 'help-content' ); - - // Don't show help button on IE8 because it's unsupported by Pico Modal. - if ( CKEDITOR.env.ie && CKEDITOR.env.version == 8 ) { - helpButton.hide(); - } else { - // Display help modal when the button is clicked. - helpButton.on( 'click', function( evt ) { - SF.modal( { - // Clone modal content from DOM. - content: helpContent.getHtml(), - - afterCreate: function( modal ) { - // Enable modal content button to close the modal. - new CKEDITOR.dom.element( modal.modalElem() ).findOne( '.help-content-close' ).once( 'click', modal.close ); - } - } ).show(); - } ); - } - } )(); - } )(); -</script> -</body> -</html> diff --git a/admin/plugins/ckeditor/samples/toolbarconfigurator/js/abstracttoolbarmodifier.js b/admin/plugins/ckeditor/samples/toolbarconfigurator/js/abstracttoolbarmodifier.js deleted file mode 100644 index 65f0b87..0000000 --- a/admin/plugins/ckeditor/samples/toolbarconfigurator/js/abstracttoolbarmodifier.js +++ /dev/null @@ -1,13 +0,0 @@ -"function"!=typeof Object.create&&function(){var a=function(){};Object.create=function(b){if(1<arguments.length)throw Error("Second argument not supported");if(null===b)throw Error("Cannot set a null [[Prototype]]");if("object"!=typeof b)throw TypeError("Argument must be an object");a.prototype=b;return new a}}(); -CKEDITOR.plugins.add("toolbarconfiguratorarea",{afterInit:function(a){a.addMode("wysiwyg",function(b){var c=CKEDITOR.dom.element.createFromHtml('\x3cdiv class\x3d"cke_wysiwyg_div cke_reset" hidefocus\x3d"true"\x3e\x3c/div\x3e');a.ui.space("contents").append(c);c=a.editable(c);c.detach=CKEDITOR.tools.override(c.detach,function(b){return function(){b.apply(this,arguments);this.remove()}});a.setData(a.getData(1),b);a.fire("contentDom")});a.dataProcessor.toHtml=function(b){return b};a.dataProcessor.toDataFormat= -function(b){return b}}});Object.keys||(Object.keys=function(){var a=Object.prototype.hasOwnProperty,b=!{toString:null}.propertyIsEnumerable("toString"),c="toString toLocaleString valueOf hasOwnProperty isPrototypeOf propertyIsEnumerable constructor".split(" "),e=c.length;return function(d){if("object"!==typeof d&&("function"!==typeof d||null===d))throw new TypeError("Object.keys called on non-object");var g=[],f;for(f in d)a.call(d,f)&&g.push(f);if(b)for(f=0;f<e;f++)a.call(d,c[f])&&g.push(c[f]);return g}}()); -(function(){function a(b,c){this.cfg=c||{};this.hidden=!1;this.editorId=b;this.fullToolbarEditor=new ToolbarConfigurator.FullToolbarEditor;this.actualConfig=this.originalConfig=this.mainContainer=null;this.isEditableVisible=this.waitForReady=!1;this.toolbarContainer=null;this.toolbarButtons=[]}ToolbarConfigurator.AbstractToolbarModifier=a;a.prototype.setConfig=function(b){this._onInit(void 0,b,!0)};a.prototype.init=function(b){var c=this;this.mainContainer=new CKEDITOR.dom.element("div");if(null!== -this.fullToolbarEditor.editorInstance)throw"Only one instance of ToolbarModifier is allowed";this.editorInstance||this._createEditor(!1);this.editorInstance.once("loaded",function(){c.fullToolbarEditor.init(function(){c._onInit(b);if("function"==typeof c.onRefresh)c.onRefresh()},c.editorInstance.config)});return this.mainContainer};a.prototype._onInit=function(b,c){this.originalConfig=this.editorInstance.config;this.actualConfig=c?JSON.parse(c):JSON.parse(JSON.stringify(this.originalConfig));if(!this.actualConfig.toolbarGroups&& -!this.actualConfig.toolbar){for(var a=this.actualConfig,d=this.editorInstance.toolbar,g=[],f=d.length,k=0;k<f;k++){var h=d[k];"string"==typeof h?g.push(h):g.push({name:h.name,groups:h.groups?h.groups.slice():[]})}a.toolbarGroups=g}"function"===typeof b&&b(this.mainContainer)};a.prototype._createModifier=function(){this.mainContainer.addClass("unselectable");this.modifyContainer&&this.modifyContainer.remove();this.modifyContainer=new CKEDITOR.dom.element("div");this.modifyContainer.addClass("toolbarModifier"); -this.mainContainer.append(this.modifyContainer);return this.mainContainer};a.prototype.getEditableArea=function(){return this.editorInstance.container.findOne("#"+this.editorInstance.id+"_contents")};a.prototype._hideEditable=function(){var b=this.getEditableArea();this.isEditableVisible=!1;this.lastEditableAreaHeight=b.getStyle("height");b.setStyle("height","0")};a.prototype._showEditable=function(){this.isEditableVisible=!0;this.getEditableArea().setStyle("height",this.lastEditableAreaHeight||"auto")}; -a.prototype._toggleEditable=function(){this.isEditableVisible?this._hideEditable():this._showEditable()};a.prototype._refreshEditor=function(){function b(){c.editorInstance.destroy();c._createEditor(!0,c.getActualConfig());c.waitForReady=!1}var c=this,a=this.editorInstance.status;this.waitForReady||("unloaded"==a||"loaded"==a?(this.waitForReady=!0,this.editorInstance.once("instanceReady",function(){b()},this)):b())};a.prototype._createEditor=function(b,c){function e(){}var d=this;this.editorInstance= -CKEDITOR.replace(this.editorId);this.editorInstance.on("configLoaded",function(){var b=d.editorInstance.config;c&&CKEDITOR.tools.extend(b,c,!0);a.extendPluginsConfig(b)});this.editorInstance.on("uiSpace",function(b){"top"!=b.data.space&&b.stop()},null,null,-999);this.editorInstance.once("loaded",function(){var c=d.editorInstance.ui.instances,a;for(a in c)c[a]&&(c[a].click=e,c[a].onClick=e);d.isEditableVisible||d._hideEditable();d.currentActive&&d.currentActive.name&&d._highlightGroup(d.currentActive.name); -d.hidden?d.hideUI():d.showUI();if(b&&"function"===typeof d.onRefresh)d.onRefresh()})};a.prototype.getActualConfig=function(){return JSON.parse(JSON.stringify(this.actualConfig))};a.prototype._createToolbar=function(){if(this.toolbarButtons.length){this.toolbarContainer=new CKEDITOR.dom.element("div");this.toolbarContainer.addClass("toolbar");for(var b=this.toolbarButtons.length,c=0;c<b;c+=1)this._createToolbarBtn(this.toolbarButtons[c])}};a.prototype._createToolbarBtn=function(b){var c=ToolbarConfigurator.FullToolbarEditor.createButton("string"=== -typeof b.text?b.text:b.text.inactive,b.cssClass);this.toolbarContainer.append(c);c.data("group",b.group);c.addClass(b.position);c.on("click",function(){b.clickCallback.call(this,c,b)},this);return c};a.prototype._fixGroups=function(b){b=b.toolbarGroups||[];for(var c=b.length,a=0;a<c;a+=1){var d=b[a];"/"==d?(d=b[a]={},d.type="separator",d.name="separator"+CKEDITOR.tools.getNextNumber()):(d.groups=d.groups||[],-1==CKEDITOR.tools.indexOf(d.groups,d.name)&&(this.editorInstance.ui.addToolbarGroup(d.name, -d.groups[d.groups.length-1],d.name),d.groups.push(d.name)),this._fixSubgroups(d))}};a.prototype._fixSubgroups=function(b){b=b.groups;for(var c=b.length,a=0;a<c;a+=1){var d=b[a];b[a]={name:d,totalBtns:ToolbarConfigurator.ToolbarModifier.getTotalSubGroupButtonsNumber(d,this.fullToolbarEditor)}}};a.stringifyJSONintoOneLine=function(b,a){a=a||{};var e=JSON.stringify(b,null,""),e=e.replace(/\n/g,"");a.addSpaces&&(e=e.replace(/(\{|:|,|\[|\])/g,function(a){return a+" "}),e=e.replace(/(\])/g,function(a){return" "+ -a}));a.noQuotesOnKey&&(e=e.replace(/"(\w*)":/g,function(a,b){return b+":"}));a.singleQuotes&&(e=e.replace(/\"/g,"'"));return e};a.prototype.hideUI=function(){this.hidden=!0;this.mainContainer.hide();this.editorInstance.container&&this.editorInstance.container.hide()};a.prototype.showUI=function(){this.hidden=!1;this.mainContainer.show();this.editorInstance.container&&this.editorInstance.container.show()};a.extendPluginsConfig=function(a){var c=a.extraPlugins;a.extraPlugins=(c?c+",":"")+"toolbarconfiguratorarea"}})(); \ No newline at end of file diff --git a/admin/plugins/ckeditor/samples/toolbarconfigurator/js/fulltoolbareditor.js b/admin/plugins/ckeditor/samples/toolbarconfigurator/js/fulltoolbareditor.js deleted file mode 100644 index dc19bee..0000000 --- a/admin/plugins/ckeditor/samples/toolbarconfigurator/js/fulltoolbareditor.js +++ /dev/null @@ -1,9 +0,0 @@ -window.ToolbarConfigurator={}; -(function(){function e(){this.instanceid="fte"+CKEDITOR.tools.getNextId();this.textarea=new CKEDITOR.dom.element("textarea");this.textarea.setAttributes({id:this.instanceid,name:this.instanceid,contentEditable:!0});this.editorInstance=this.buttons=null}ToolbarConfigurator.FullToolbarEditor=e;e.prototype.init=function(b){var a=this;document.body.appendChild(this.textarea.$);CKEDITOR.replace(this.instanceid);this.editorInstance=CKEDITOR.instances[this.instanceid];this.editorInstance.once("configLoaded",function(d){var c= -d.editor.config;delete c.removeButtons;delete c.toolbarGroups;delete c.toolbar;ToolbarConfigurator.AbstractToolbarModifier.extendPluginsConfig(c);d.editor.once("loaded",function(){a.buttons=e.toolbarToButtons(a.editorInstance.toolbar);a.buttonsByGroup=e.groupButtons(a.buttons);a.buttonNamesByGroup=a.groupButtonNamesByGroup(a.buttons);d.editor.container.hide();"function"===typeof b&&b(a.buttons)})})};e.prototype.groupButtonNamesByGroup=function(b){var a=this;b=e.groupButtons(b);for(var d in b)b[d]= -e.map(b[d],function(b){return a.getCamelCasedButtonName(b.name)});return b};e.prototype.getGroupByName=function(b){for(var a=this.editorInstance.config.toolbarGroups||this.getFullToolbarGroupsConfig(),d=a.length,c=0;c<d;c+=1)if(a[c].name===b)return a[c];return null};e.prototype.getCamelCasedButtonName=function(b){var a=this.editorInstance.ui.items,d;for(d in a)if(a[d].name==b)return d;return null};e.prototype.getFullToolbarGroupsConfig=function(b){b=!0===b?!0:!1;for(var a=[],d=this.editorInstance.toolbar, -c=d.length,f=0;f<c;f+=1){var e=d[f],g={};"string"!=typeof e.name?b&&a.push("/"):(g.name=e.name,e.groups&&(g.groups=Array.prototype.slice.call(e.groups)),a.push(g))}return a};e.filter=function(b,a){for(var d=b&&b.length?b.length:0,c=[],f=0;f<d;f+=1)a(b[f])&&c.push(b[f]);return c};e.map=function(b,a){var d;if(CKEDITOR.tools.isArray(b)){d=[];for(var c=b.length,f=0;f<c;f+=1)d.push(a(b[f]))}else for(c in d={},b)d[c]=a(b[c]);return d};e.groupButtons=function(b){for(var a={},d=b.length,c=0;c<d;c+=1){var f= -b[c],e=f.toolbar.split(",")[0];a[e]=a[e]||[];a[e].push(f)}return a};e.toolbarToButtons=function(b){for(var a=[],d=b.length,c=0;c<d;c+=1)"object"==typeof b[c]&&(a=a.concat(e.groupToButtons(b[c])));return a};e.createToolbarButton=function(b){var a=new CKEDITOR.dom.element("a"),d=e.createIcon(b.name,b.icon,b.command);a.setStyle("float","none");a.addClass("cke_"+("rtl"==CKEDITOR.lang.dir?"rtl":"ltr"));if(b instanceof CKEDITOR.ui.button)a.addClass("cke_button"),a.addClass("cke_toolgroup"),a.append(d); -else if(CKEDITOR.ui.richCombo&&b instanceof CKEDITOR.ui.richCombo){var d=new CKEDITOR.dom.element("span"),c=new CKEDITOR.dom.element("span"),f=new CKEDITOR.dom.element("span");a.addClass("cke_combo_button");d.addClass("cke_combo_text");d.addClass("cke_combo_inlinelabel");d.setText(b.label);c.addClass("cke_combo_open");f.addClass("cke_combo_arrow");c.append(f);a.append(d);a.append(c)}return a};e.createIcon=function(b,a,d){var c=CKEDITOR.skin.getIconStyle(b,"rtl"==CKEDITOR.lang.dir),c=(c=c||CKEDITOR.skin.getIconStyle(a, -"rtl"==CKEDITOR.lang.dir))||CKEDITOR.skin.getIconStyle(d,"rtl"==CKEDITOR.lang.dir);a=new CKEDITOR.dom.element("span");a.addClass("cke_button_icon");a.addClass("cke_button__"+b+"_icon");a.setAttribute("style",c);a.setStyle("float","none");return a};e.createButton=function(b,a){var d=new CKEDITOR.dom.element("button");d.addClass("button-a");d.setAttribute("type","button");if("string"==typeof a){a=a.split(" ");for(var c=a.length;c--;)d.addClass(a[c])}d.setHtml(b);return d};e.groupToButtons=function(b){for(var a= -[],d=(b=b.items)?b.length:0,c=0;c<d;c+=1){var f=b[c];if(f instanceof CKEDITOR.ui.button||CKEDITOR.ui.richCombo&&f instanceof CKEDITOR.ui.richCombo)f.$=e.createToolbarButton(f),a.push(f)}return a}})(); \ No newline at end of file diff --git a/admin/plugins/ckeditor/samples/toolbarconfigurator/js/toolbarmodifier.js b/admin/plugins/ckeditor/samples/toolbarconfigurator/js/toolbarmodifier.js deleted file mode 100644 index 9731818..0000000 --- a/admin/plugins/ckeditor/samples/toolbarconfigurator/js/toolbarmodifier.js +++ /dev/null @@ -1,33 +0,0 @@ -(function(){function d(a,b){l.call(this,a,b);this.actualConfig=this.originalConfig=this.removedButtons=null;this.emptyVisible=!1;this.state="edit";this.toolbarButtons=[{text:{active:"Hide empty toolbar groups",inactive:"Show empty toolbar groups"},group:"edit",position:"left",cssClass:"button-a-soft",clickCallback:function(a,b){a[a.hasClass("button-a-background")?"removeClass":"addClass"]("button-a-background");this._toggleVisibilityEmptyElements();this.emptyVisible?a.setText(b.text.active):a.setText(b.text.inactive)}}, -{text:"Add row separator",group:"edit",position:"left",cssClass:"button-a-soft",clickCallback:function(){this._addSeparator()}},{text:"Select config",group:"config",position:"left",cssClass:"button-a-soft",clickCallback:function(){this.configContainer.findOne("textarea").$.select()}},{text:"Back to configurator",group:"config",position:"right",cssClass:"button-a-background",clickCallback:function(){if("paste"===this.state){var a=this.configContainer.findOne("textarea").getValue();(a=d.evaluateToolbarGroupsConfig(a))? -this.setConfig(a):alert("Your pasted config is wrong.")}this.state="edit";this._showConfigurationTool();this.showToolbarBtnsByGroupName(this.state)}},{text:'Get toolbar \x3cspan class\x3d"highlight"\x3econfig\x3c/span\x3e',group:"edit",position:"right",cssClass:"button-a-background icon-pos-left icon-download",clickCallback:function(){this.state="config";this._showConfig();this.showToolbarBtnsByGroupName(this.state)}}];this.cachedActiveElement=null}var l=ToolbarConfigurator.AbstractToolbarModifier; -ToolbarConfigurator.ToolbarModifier=d;d.prototype=Object.create(ToolbarConfigurator.AbstractToolbarModifier.prototype);d.prototype.getActualConfig=function(){var a=l.prototype.getActualConfig.call(this);if(a.toolbarGroups)for(var b=a.toolbarGroups.length,c=0;c<b;c+=1)a.toolbarGroups[c]=d.parseGroupToConfigValue(a.toolbarGroups[c]);return a};d.prototype._onInit=function(a,b,c){c=!0===c;l.prototype._onInit.call(this,void 0,b);this.removedButtons=[];c?this.removedButtons=this.actualConfig.removeButtons? -this.actualConfig.removeButtons.split(","):[]:"removeButtons"in this.originalConfig?this.removedButtons=this.originalConfig.removeButtons?this.originalConfig.removeButtons.split(","):[]:(this.originalConfig.removeButtons="",this.removedButtons=[]);this.actualConfig.toolbarGroups||(this.actualConfig.toolbarGroups=this.fullToolbarEditor.getFullToolbarGroupsConfig());this._fixGroups(this.actualConfig);this._calculateTotalBtns();this._createModifier();this._refreshMoveBtnsAvalibility();this._refreshBtnTabIndexes(); -"function"===typeof a&&a(this.mainContainer)};d.prototype._showConfigurationTool=function(){this.configContainer.addClass("hidden");this.modifyContainer.removeClass("hidden")};d.prototype._showConfig=function(){var a=this.getActualConfig(),b,c;if(a.toolbarGroups){b=a.toolbarGroups;for(var e=this.cfg.trimEmptyGroups,f=[],g=b.length,m=0;m<g;m++){var h=b[m];if("/"===h)f.push("'/'");else{if(e)for(var k=h.groups.length;k--;)0===d.getTotalSubGroupButtonsNumber(h.groups[k],this.fullToolbarEditor)&&h.groups.splice(k, -1);e&&0===h.groups.length||f.push(l.stringifyJSONintoOneLine(h,{addSpaces:!0,noQuotesOnKey:!0,singleQuotes:!0}))}}b="\n\t\t"+f.join(",\n\t\t")}a.removeButtons&&(c=a.removeButtons);a=['\x3ctextarea class\x3d"configCode" readonly\x3eCKEDITOR.editorConfig \x3d function( config ) {\n',b?"\tconfig.toolbarGroups \x3d ["+b+"\n\t];":"",c?"\n\n":"",c?"\tconfig.removeButtons \x3d '"+c+"';":"","\n};\x3c/textarea\x3e"].join("");this.modifyContainer.addClass("hidden");this.configContainer.removeClass("hidden"); -this.configContainer.setHtml(a)};d.prototype._toggleVisibilityEmptyElements=function(){this.modifyContainer.hasClass("empty-visible")?(this.modifyContainer.removeClass("empty-visible"),this.emptyVisible=!1):(this.modifyContainer.addClass("empty-visible"),this.emptyVisible=!0);this._refreshMoveBtnsAvalibility()};d.prototype._createModifier=function(){function a(){b._highlightGroup(this.data("name"))}var b=this;l.prototype._createModifier.call(this);this.modifyContainer.setHtml(this._toolbarConfigToListString()); -var c=this.modifyContainer.find('li[data-type\x3d"group"]');this.modifyContainer.on("mouseleave",function(){this._dehighlightActiveToolGroup()},this);for(var e=c.count(),f=0;f<e;f+=1)c.getItem(f).on("mouseenter",a);CKEDITOR.document.on("keypress",function(a){a=a.data.$.keyCode;a=32===a||13===a;var c=new CKEDITOR.dom.element(CKEDITOR.document.$.activeElement);c.getAscendant(function(a){return a.$===b.mainContainer.$})&&a&&"button"===c.data("type")&&c.findOne("input").$.click()});this.modifyContainer.on("click", -function(a){var c=a.data.$,e=new CKEDITOR.dom.element(c.target||c.srcElement);if(a=d.getGroupOrSeparatorLiAncestor(e)){b.cachedActiveElement=document.activeElement;if(e.$ instanceof HTMLInputElement)b._handleCheckboxClicked(e);else if(e.$ instanceof HTMLButtonElement&&(c.preventDefault?c.preventDefault():c.returnValue=!1,(c=b._handleAnchorClicked(e.$))&&"remove"==c.action))return;c=a.data("type");a=a.data("name");b._setActiveElement(c,a);b.cachedActiveElement&&b.cachedActiveElement.focus()}});this.toolbarContainer|| -(this._createToolbar(),this.toolbarContainer.insertBefore(this.mainContainer.getChildren().getItem(0)));this.showToolbarBtnsByGroupName("edit");this.configContainer||(this.configContainer=new CKEDITOR.dom.element("div"),this.configContainer.addClass("configContainer"),this.configContainer.addClass("hidden"),this.mainContainer.append(this.configContainer));return this.mainContainer};d.prototype.showToolbarBtnsByGroupName=function(a){if(this.toolbarContainer)for(var b=this.toolbarContainer.find("button"), -c=b.count(),e=0;e<c;e+=1){var d=b.getItem(e);d.data("group")==a?d.removeClass("hidden"):d.addClass("hidden")}};d.parseGroupToConfigValue=function(a){if("separator"==a.type)return"/";var b=a.groups,c=b.length;delete a.totalBtns;for(var e=0;e<c;e+=1)b[e]=b[e].name;return a};d.getGroupOrSeparatorLiAncestor=function(a){return a.$ instanceof HTMLLIElement&&"group"==a.data("type")?a:d.getFirstAncestor(a,function(a){a=a.data("type");return"group"==a||"separator"==a})};d.prototype._setActiveElement=function(a, -b){this.currentActive&&this.currentActive.elem.removeClass("active");if(null===a)this._dehighlightActiveToolGroup(),this.currentActive=null;else{var c=this.mainContainer.findOne('ul[data-type\x3dtable-body] li[data-type\x3d"'+a+'"][data-name\x3d"'+b+'"]');c.addClass("active");this.currentActive={type:a,name:b,elem:c};"group"==a&&this._highlightGroup(b);"separator"==a&&this._dehighlightActiveToolGroup()}};d.prototype.getActiveToolGroup=function(){return this.editorInstance.container?this.editorInstance.container.findOne(".cke_toolgroup.active, .cke_toolbar.active"): -null};d.prototype._dehighlightActiveToolGroup=function(){var a=this.getActiveToolGroup();a&&a.removeClass("active");this.editorInstance.container&&this.editorInstance.container.removeClass("some-toolbar-active")};d.prototype._highlightGroup=function(a){this.editorInstance.container&&(a=this.getFirstEnabledButtonInGroup(a),a=this.editorInstance.container.findOne(".cke_button__"+a+", .cke_combo__"+a),this._dehighlightActiveToolGroup(),this.editorInstance.container&&this.editorInstance.container.addClass("some-toolbar-active"), -a&&(a=d.getFirstAncestor(a,function(a){return a.hasClass("cke_toolbar")}))&&a.addClass("active"))};d.prototype.getFirstEnabledButtonInGroup=function(a){var b=this.actualConfig.toolbarGroups;a=this.getGroupIndex(a);b=b[a];if(-1===a)return null;a=b.groups?b.groups.length:0;for(var c=0;c<a;c+=1){var e=this.getFirstEnabledButtonInSubgroup(b.groups[c].name);if(e)return e}return null};d.prototype.getFirstEnabledButtonInSubgroup=function(a){for(var b=(a=this.fullToolbarEditor.buttonsByGroup[a])?a.length: -0,c=0;c<b;c+=1){var e=a[c].name;if(!this.isButtonRemoved(e))return e}return null};d.prototype._handleCheckboxClicked=function(a){var b=a.getAscendant("li").data("name");a.$.checked?this._removeButtonFromRemoved(b):this._addButtonToRemoved(b)};d.prototype._handleAnchorClicked=function(a){a=new CKEDITOR.dom.element(a);var b=a.getAscendant("li"),c=b.getAscendant("ul"),e=b.data("type"),d=b.data("name"),g=a.data("direction"),m="up"===g?b.getPrevious():b.getNext(),h;if(a.hasClass("disabled"))return null; -if(a.hasClass("remove"))return b.remove(),this._removeSeparator(b.data("name")),this._setActiveElement(null),{action:"remove"};if(!a.hasClass("move")||!m)return{action:null};if("group"===e||"separator"===e)h=this._moveGroup(g,d);"subgroup"===e&&(h=b.getAscendant("li").data("name"),h=this._moveSubgroup(g,h,d));"up"===g&&b.insertBefore(c.getChild(h));"down"===g&&b.insertAfter(c.getChild(h));for(var k;b="up"===g?b.getPrevious():b.getNext();)if(this.emptyVisible||!b.hasClass("empty")){k=b;break}k||(k= -'[data-direction\x3d"'+("up"===g?"down":"up")+'"]',this.cachedActiveElement=a.getParent().findOne(k));this._refreshMoveBtnsAvalibility();this._refreshBtnTabIndexes();return{action:"move"}};d.prototype._refreshMoveBtnsAvalibility=function(){function a(a){var c=a.count();for(d=0;d<c;d+=1)b._disableElementsInList(a.getItem(d))}for(var b=this,c=this.mainContainer.find("ul[data-type\x3dtable-body] li \x3e p \x3e span \x3e button.move.disabled"),e=c.count(),d=0;d<e;d+=1)c.getItem(d).removeClass("disabled"); -a(this.mainContainer.find("ul[data-type\x3dtable-body]"));a(this.mainContainer.find("ul[data-type\x3dtable-body] \x3e li \x3e ul"))};d.prototype._refreshBtnTabIndexes=function(){for(var a=this.mainContainer.find('[data-tab\x3d"true"]'),b=a.count(),c=0;c<b;c++){var e=a.getItem(c),d=e.hasClass("disabled");e.setAttribute("tabindex",d?-1:c)}};d.prototype._disableElementsInList=function(a){function b(a){return!a.hasClass("empty")}if(a.getChildren().count()){var c;this.emptyVisible?(c=a.getFirst(),a=a.getLast()): -(c=a.getFirst(b),a=a.getLast(b));if(c)var e=c.findOne('p button[data-direction\x3d"up"]');if(a)var d=a.findOne('p button[data-direction\x3d"down"]');e&&(e.addClass("disabled"),e.setAttribute("tabindex","-1"));d&&(d.addClass("disabled"),d.setAttribute("tabindex","-1"))}};d.prototype.getGroupIndex=function(a){for(var b=this.actualConfig.toolbarGroups,c=b.length,d=0;d<c;d+=1)if(b[d].name===a)return d;return-1};d.prototype._addSeparator=function(){var a=this._determineSeparatorToAddIndex(),b=d.createSeparatorLiteral(), -c=CKEDITOR.dom.element.createFromHtml(d.getToolbarSeparatorString(b));this.actualConfig.toolbarGroups.splice(a,0,b);c.insertBefore(this.modifyContainer.findOne("ul[data-type\x3dtable-body]").getChild(a));this._setActiveElement("separator",b.name);this._refreshMoveBtnsAvalibility();this._refreshBtnTabIndexes();this._refreshEditor()};d.prototype._removeSeparator=function(a){var b=CKEDITOR.tools.indexOf(this.actualConfig.toolbarGroups,function(b){return"separator"==b.type&&b.name==a});this.actualConfig.toolbarGroups.splice(b, -1);this._refreshMoveBtnsAvalibility();this._refreshBtnTabIndexes();this._refreshEditor()};d.prototype._determineSeparatorToAddIndex=function(){return this.currentActive?("group"==this.currentActive.elem.data("type")||"separator"==this.currentActive.elem.data("type")?this.currentActive.elem:this.currentActive.elem.getAscendant("li")).getIndex():0};d.prototype._moveElement=function(a,b,c){function e(a){return a.totalBtns||"separator"==a.type}c=this.emptyVisible?"down"==c?b+1:b-1:d.getFirstElementIndexWith(a, -b,c,e);return d.moveTo(c-b,a,b)};d.prototype._moveGroup=function(a,b){var c=this.getGroupIndex(b),c=this._moveElement(this.actualConfig.toolbarGroups,c,a);this._refreshMoveBtnsAvalibility();this._refreshBtnTabIndexes();this._refreshEditor();return c};d.prototype._moveSubgroup=function(a,b,c){b=this.getGroupIndex(b);b=this.actualConfig.toolbarGroups[b];var d=CKEDITOR.tools.indexOf(b.groups,function(a){return a.name==c});a=this._moveElement(b.groups,d,a);this._refreshEditor();return a};d.prototype._calculateTotalBtns= -function(){for(var a=this.actualConfig.toolbarGroups,b=a.length;b--;){var c=a[b],e=d.getTotalGroupButtonsNumber(c,this.fullToolbarEditor);"separator"!=c.type&&(c.totalBtns=e)}};d.prototype._addButtonToRemoved=function(a){if(-1!=CKEDITOR.tools.indexOf(this.removedButtons,a))throw"Button already added to removed";this.removedButtons.push(a);this.actualConfig.removeButtons=this.removedButtons.join(",");this._refreshEditor()};d.prototype._removeButtonFromRemoved=function(a){a=CKEDITOR.tools.indexOf(this.removedButtons, -a);if(-1===a)throw"Trying to remove button from removed, but not found";this.removedButtons.splice(a,1);this.actualConfig.removeButtons=this.removedButtons.join(",");this._refreshEditor()};d.parseGroupToConfigValue=function(a){if("separator"==a.type)return"/";var b=a.groups,c=b.length;delete a.totalBtns;for(var d=0;d<c;d+=1)b[d]=b[d].name;return a};d.getGroupOrSeparatorLiAncestor=function(a){return a.$ instanceof HTMLLIElement&&"group"==a.data("type")?a:d.getFirstAncestor(a,function(a){a=a.data("type"); -return"group"==a||"separator"==a})};d.createSeparatorLiteral=function(){return{type:"separator",name:"separator"+CKEDITOR.tools.getNextNumber()}};d.prototype._toolbarConfigToListString=function(){for(var a=this.actualConfig.toolbarGroups||[],b='\x3cul data-type\x3d"table-body"\x3e',c=a.length,e=0;e<c;e+=1)var f=a[e],b="separator"===f.type?b+d.getToolbarSeparatorString(f):b+this._getToolbarGroupString(f);b+="\x3c/ul\x3e";return d.getToolbarHeaderString()+b};d.prototype._getToolbarGroupString=function(a){var b= -a.groups,c;c=""+['\x3cli data-type\x3d"group" data-name\x3d"',a.name,'" ',a.totalBtns?"":'class\x3d"empty"',"\x3e"].join("");c+=d.getToolbarElementPreString(a)+"\x3cul\x3e";a=b.length;for(var e=0;e<a;e+=1){var f=b[e];c+=this._getToolbarSubgroupString(f,this.fullToolbarEditor.buttonsByGroup[f.name])}return c+"\x3c/ul\x3e\x3c/li\x3e"};d.getToolbarSeparatorString=function(a){return['\x3cli data-type\x3d"',a.type,'" data-name\x3d"',a.name,'"\x3e',d.getToolbarElementPreString("row separator"),"\x3c/li\x3e"].join("")}; -d.getToolbarHeaderString=function(){return'\x3cul data-type\x3d"table-header"\x3e\x3cli data-type\x3d"header"\x3e\x3cp\x3eToolbars\x3c/p\x3e\x3cul\x3e\x3cli\x3e\x3cp\x3eToolbar groups\x3c/p\x3e\x3cp\x3eToolbar group items\x3c/p\x3e\x3c/li\x3e\x3c/ul\x3e\x3c/li\x3e\x3c/ul\x3e'};d.getFirstAncestor=function(a,b){for(var c=a.getParents(),d=c.length;d--;)if(b(c[d]))return c[d];return null};d.getFirstElementIndexWith=function(a,b,c,d){for(;"up"===c?b--:++b<a.length;)if(d(a[b]))return b;return-1};d.moveTo= -function(a,b,c){var d;-1!==c&&(d=b.splice(c,1)[0]);a=c+a;b.splice(a,0,d);return a};d.getTotalSubGroupButtonsNumber=function(a,b){var c=b.buttonsByGroup["string"==typeof a?a:a.name];return c?c.length:0};d.getTotalGroupButtonsNumber=function(a,b){for(var c=0,e=a.groups,f=e?e.length:0,g=0;g<f;g+=1)c+=d.getTotalSubGroupButtonsNumber(e[g],b);return c};d.prototype._getToolbarSubgroupString=function(a,b){var c;c=""+['\x3cli data-type\x3d"subgroup" data-name\x3d"',a.name,'" ',a.totalBtns?"":'class\x3d"empty" ', -"\x3e"].join("");c+=d.getToolbarElementPreString(a.name);c+="\x3cul\x3e";for(var e=b?b.length:0,f=0;f<e;f+=1)c+=this.getButtonString(b[f]);return c+="\x3c/ul\x3e\x3c/li\x3e"};d.prototype._getConfigButtonName=function(a){var b=this.fullToolbarEditor.editorInstance.ui.items,c;for(c in b)if(b[c].name==a)return c;return null};d.prototype.isButtonRemoved=function(a){return-1!=CKEDITOR.tools.indexOf(this.removedButtons,this._getConfigButtonName(a))};d.prototype.getButtonString=function(a){var b=this.isButtonRemoved(a.name)? -"":'checked\x3d"checked"';return['\x3cli data-tab\x3d"true" data-type\x3d"button" data-name\x3d"',this._getConfigButtonName(a.name),'"\x3e\x3clabel title\x3d"',a.label,'" \x3e\x3cinput tabindex\x3d"-1"type\x3d"checkbox"',b,"/\x3e",a.$.getOuterHtml(),"\x3c/label\x3e\x3c/li\x3e"].join("")};d.getToolbarElementPreString=function(a){a=a.name?a.name:a;return['\x3cp\x3e\x3cspan\x3e\x3cbutton title\x3d"Move element upward" data-tab\x3d"true" data-direction\x3d"up" class\x3d"move icon-up-big"\x3e\x3c/button\x3e\x3cbutton title\x3d"Move element downward" data-tab\x3d"true" data-direction\x3d"down" class\x3d"move icon-down-big"\x3e\x3c/button\x3e', -"row separator"==a?'\x3cbutton title\x3d"Remove element" data-tab\x3d"true" class\x3d"remove icon-trash"\x3e\x3c/button\x3e':"",a,"\x3c/span\x3e\x3c/p\x3e"].join("")};d.evaluateToolbarGroupsConfig=function(a){return a=function(a){var c={},d;try{d=eval("("+a+")")}catch(f){try{d=eval(a)}catch(g){return null}}return c.toolbarGroups&&"number"===typeof c.toolbarGroups.length?JSON.stringify(c):d&&"number"===typeof d.length?JSON.stringify({toolbarGroups:d}):d&&d.toolbarGroups?JSON.stringify(d):null}(a)}; -return d})(); \ No newline at end of file diff --git a/admin/plugins/ckeditor/samples/toolbarconfigurator/js/toolbartextmodifier.js b/admin/plugins/ckeditor/samples/toolbarconfigurator/js/toolbartextmodifier.js deleted file mode 100644 index b9ef46b..0000000 --- a/admin/plugins/ckeditor/samples/toolbarconfigurator/js/toolbartextmodifier.js +++ /dev/null @@ -1,14 +0,0 @@ -(function(){function e(a){l.call(this,a);this.hintContainer=this.codeContainer=null}var l=ToolbarConfigurator.AbstractToolbarModifier,g=ToolbarConfigurator.FullToolbarEditor;ToolbarConfigurator.ToolbarTextModifier=e;e.prototype=Object.create(l.prototype);e.prototype._onInit=function(a,d){l.prototype._onInit.call(this,void 0,d);this._createModifier(d?this.actualConfig:void 0);"function"===typeof a&&a(this.mainContainer)};e.prototype._createModifier=function(a){function d(a){var b=c(a);if(null!==b.charsBetween){var d= -k.getUnusedButtonsArray(k.actualConfig.toolbar,!0,b.charsBetween),e=a.getCursor(),b=CodeMirror.Pos(e.line,e.ch-b.charsBetween.length),h=a.getTokenAt(e);"{"===a.getTokenAt({line:e.line,ch:h.start}).string&&(d=["name"]);if(0!==d.length)return new f(b,e,d)}}function f(a,c,b){this.from=a;this.to=c;this.list=b;this._handlers=[]}function c(a,c){var b={};b.cur=a.getCursor();b.tok=a.getTokenAt(b.cur);b["char"]=c||b.tok.string.charAt(b.tok.string.length-1);var d=a.getRange(CodeMirror.Pos(b.cur.line,0),b.cur).split("").reverse().join(""), -d=d.replace(/(['|"]\w*['|"])/g,"");b.charsBetween=d.match(/(^\w*)(['|"])/);b.charsBetween&&(b.endChar=b.charsBetween[2],b.charsBetween=b.charsBetween[1].split("").reverse().join(""));return b}function b(a){setTimeout(function(){a.state.completionActive||CodeMirror.showHint(a,d,{hintsClass:"toolbar-modifier",completeSingle:!1})},100);return CodeMirror.Pass}var k=this;this._createToolbar();this.toolbarContainer&&this.mainContainer.append(this.toolbarContainer);l.prototype._createModifier.call(this); -this._setupActualConfig(a);a=this.actualConfig.toolbar;a=CKEDITOR.tools.isArray(a)?"\tconfig.toolbar \x3d "+("[\n\t\t"+g.map(a,function(a){return l.stringifyJSONintoOneLine(a,{addSpaces:!0,noQuotesOnKey:!0,singleQuotes:!0})}).join(",\n\t\t")+"\n\t]")+";":"config.toolbar \x3d [];";a=["CKEDITOR.editorConfig \x3d function( config ) {\n",a,"\n};"].join("");var e=new CKEDITOR.dom.element("div");e.addClass("codemirror-wrapper");this.modifyContainer.append(e);this.codeContainer=CodeMirror(e.$,{mode:{name:"javascript", -json:!0},lineNumbers:!1,lineWrapping:!0,viewportMargin:Infinity,value:a,smartIndent:!1,indentWithTabs:!0,indentUnit:4,tabSize:4,theme:"neo",extraKeys:{Left:b,Right:b,"'''":b,"'\"'":b,Backspace:b,Delete:b,"Shift-Tab":"indentLess"}});this.codeContainer.on("endCompletion",function(a,b){var d=c(a);void 0!==b&&a.replaceSelection(d.endChar)});this.codeContainer.on("change",function(){var a=k.codeContainer.getValue(),a=k._evaluateValue(a);null!==a?(k.actualConfig.toolbar=a.toolbar?a.toolbar:k.actualConfig.toolbar, -k._fillHintByUnusedElements(),k._refreshEditor(),k.mainContainer.removeClass("invalid")):k.mainContainer.addClass("invalid")});this.hintContainer=new CKEDITOR.dom.element("div");this.hintContainer.addClass("toolbarModifier-hints");this._fillHintByUnusedElements();this.hintContainer.insertBefore(e)};e.prototype._fillHintByUnusedElements=function(){var a=this.getUnusedButtonsArray(this.actualConfig.toolbar,!0),a=this.groupButtonNamesByGroup(a),d=g.map(a,function(a){var b=g.map(a.buttons,function(a){return"\x3ccode\x3e"+ -a+"\x3c/code\x3e "}).join("");return["\x3cdt\x3e\x3ccode\x3e",a.name,"\x3c/code\x3e\x3c/dt\x3e\x3cdd\x3e",b,"\x3c/dd\x3e"].join("")}).join(" "),f='\x3cdt class\x3d"list-header"\x3eToolbar group\x3c/dt\x3e\x3cdd class\x3d"list-header"\x3eUnused items\x3c/dd\x3e';a.length||(f="\x3cp\x3eAll items are in use.\x3c/p\x3e");this.codeContainer.refresh();this.hintContainer.setHtml("\x3ch3\x3eUnused toolbar items\x3c/h3\x3e\x3cdl\x3e"+f+d+"\x3c/dl\x3e")};e.prototype.getToolbarGroupByButtonName=function(a){var d= -this.fullToolbarEditor.buttonNamesByGroup,f;for(f in d)for(var c=d[f],b=c.length;b--;)if(a===c[b])return f;return null};e.prototype.getUnusedButtonsArray=function(a,d,f){d=!0===d?!0:!1;var c=e.mapToolbarCfgToElementsList(a);a=Object.keys(this.fullToolbarEditor.editorInstance.ui.items);a=g.filter(a,function(a){var d="-"===a;a=void 0===f||0===a.toLowerCase().indexOf(f.toLowerCase());return!d&&a});a=g.filter(a,function(a){return-1==CKEDITOR.tools.indexOf(c,a)});d&&a.sort();return a};e.prototype.groupButtonNamesByGroup= -function(a){var d=[],f=JSON.parse(JSON.stringify(this.fullToolbarEditor.buttonNamesByGroup)),c;for(c in f){var b=f[c],b=g.filter(b,function(b){return-1!==CKEDITOR.tools.indexOf(a,b)});b.length&&d.push({name:c,buttons:b})}return d};e.mapToolbarCfgToElementsList=function(a){function d(a){return"-"!==a}for(var f=[],c=a.length,b=0;b<c;b+=1)a[b]&&"string"!==typeof a[b]&&(f=f.concat(g.filter(a[b].items,d)));return f};e.prototype._setupActualConfig=function(a){a=a||this.editorInstance.config;CKEDITOR.tools.isArray(a.toolbar)|| -(a.toolbarGroups||(a.toolbarGroups=this.fullToolbarEditor.getFullToolbarGroupsConfig(!0)),this._fixGroups(a),a.toolbar=this._mapToolbarGroupsToToolbar(a.toolbarGroups,this.actualConfig.removeButtons),this.actualConfig.toolbar=a.toolbar,this.actualConfig.removeButtons="")};e.prototype._mapToolbarGroupsToToolbar=function(a,d){d=d||this.editorInstance.config.removedBtns;d="string"==typeof d?d.split(","):[];for(var f=a.length;f--;){var c=this._mapToolbarSubgroup(a[f],d);"separator"===a[f].type?a[f]="/": -CKEDITOR.tools.isArray(c)&&0===c.length?a.splice(f,1):a[f]="string"==typeof c?c:{name:a[f].name,items:c}}return a};e.prototype._mapToolbarSubgroup=function(a,d){if("string"==typeof a)return a;for(var f=a.groups?a.groups.length:0,c=[],b=0;b<f;b+=1){var e=a.groups[b],e=this.fullToolbarEditor.buttonsByGroup["string"===typeof e?e:e.name]||[],e=this._mapButtonsToButtonsNames(e,d),g=e.length,c=c.concat(e);g&&c.push("-")}"-"==c[c.length-1]&&c.pop();return c};e.prototype._mapButtonsToButtonsNames=function(a, -d){for(var f=a.length;f--;){var c=a[f],c="string"===typeof c?c:this.fullToolbarEditor.getCamelCasedButtonName(c.name);-1!==CKEDITOR.tools.indexOf(d,c)?a.splice(f,1):a[f]=c}return a};e.prototype._evaluateValue=function(a){var d;try{var f={};Function("var CKEDITOR \x3d {}; "+a+"; return CKEDITOR;")().editorConfig(f);d=f;for(var c=d.toolbar.length;c--;)d.toolbar[c]||d.toolbar.splice(c,1)}catch(b){d=null}return d};e.prototype.mapToolbarToToolbarGroups=function(a){function d(a,b){a=a.slice();for(var d= -b.length;d--;){var c=a.indexOf(b[d]);-1!==c&&a.splice(c,1)}return a}for(var f={},c=[],b=[],c=a.length,e=0;e<c;e++)if("/"===a[e])b.push("/");else{var g=a[e].items,m={};m.name=a[e].name;m.groups=[];for(var l=g.length,p=0;p<l;p++){var n=g[p];if("-"!==n){var h=this.getToolbarGroupByButtonName(n);-1===m.groups.indexOf(h)&&m.groups.push(h);f[h]=f[h]||{};h=f[h].buttons=f[h].buttons||{};h[n]=h[n]||{used:0,origin:m.name};h[n].used++}}b.push(m)}c=function(a,b){var c=[],e;for(e in a)var f=a[e],g=b[e].slice(), -c=c.concat(d(g,Object.keys(f.buttons)));return c}(f,this.fullToolbarEditor.buttonNamesByGroup);return{toolbarGroups:b,removeButtons:c.join(",")}};return e})(); \ No newline at end of file diff --git a/admin/plugins/ckeditor/samples/toolbarconfigurator/lib/codemirror/LICENSE b/admin/plugins/ckeditor/samples/toolbarconfigurator/lib/codemirror/LICENSE deleted file mode 100644 index d21bbea..0000000 --- a/admin/plugins/ckeditor/samples/toolbarconfigurator/lib/codemirror/LICENSE +++ /dev/null @@ -1,19 +0,0 @@ -Copyright (C) 2014 by Marijn Haverbeke <marijnh@gmail.com> and others - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -THE SOFTWARE. diff --git a/admin/plugins/ckeditor/samples/toolbarconfigurator/lib/codemirror/codemirror.css b/admin/plugins/ckeditor/samples/toolbarconfigurator/lib/codemirror/codemirror.css deleted file mode 100644 index ceacd13..0000000 --- a/admin/plugins/ckeditor/samples/toolbarconfigurator/lib/codemirror/codemirror.css +++ /dev/null @@ -1,325 +0,0 @@ -/* BASICS */ - -.CodeMirror { - /* Set height, width, borders, and global font properties here */ - font-family: monospace; - height: 300px; - color: black; -} - -/* PADDING */ - -.CodeMirror-lines { - padding: 4px 0; /* Vertical padding around content */ -} -.CodeMirror pre { - padding: 0 4px; /* Horizontal padding of content */ -} - -.CodeMirror-scrollbar-filler, .CodeMirror-gutter-filler { - background-color: white; /* The little square between H and V scrollbars */ -} - -/* GUTTER */ - -.CodeMirror-gutters { - border-right: 1px solid #ddd; - background-color: #f7f7f7; - white-space: nowrap; -} -.CodeMirror-linenumbers {} -.CodeMirror-linenumber { - padding: 0 3px 0 5px; - min-width: 20px; - text-align: right; - color: #999; - white-space: nowrap; -} - -.CodeMirror-guttermarker { color: black; } -.CodeMirror-guttermarker-subtle { color: #999; } - -/* CURSOR */ - -.CodeMirror div.CodeMirror-cursor { - border-left: 1px solid black; -} -/* Shown when moving in bi-directional text */ -.CodeMirror div.CodeMirror-secondarycursor { - border-left: 1px solid silver; -} -.CodeMirror.cm-fat-cursor div.CodeMirror-cursor { - width: auto; - border: 0; - background: #7e7; -} -.CodeMirror.cm-fat-cursor div.CodeMirror-cursors { - z-index: 1; -} - -.cm-animate-fat-cursor { - width: auto; - border: 0; - -webkit-animation: blink 1.06s steps(1) infinite; - -moz-animation: blink 1.06s steps(1) infinite; - animation: blink 1.06s steps(1) infinite; -} -@-moz-keyframes blink { - 0% { background: #7e7; } - 50% { background: none; } - 100% { background: #7e7; } -} -@-webkit-keyframes blink { - 0% { background: #7e7; } - 50% { background: none; } - 100% { background: #7e7; } -} -@keyframes blink { - 0% { background: #7e7; } - 50% { background: none; } - 100% { background: #7e7; } -} - -/* Can style cursor different in overwrite (non-insert) mode */ -div.CodeMirror-overwrite div.CodeMirror-cursor {} - -.cm-tab { display: inline-block; text-decoration: inherit; } - -.CodeMirror-ruler { - border-left: 1px solid #ccc; - position: absolute; -} - -/* DEFAULT THEME */ - -.cm-s-default .cm-keyword {color: #708;} -.cm-s-default .cm-atom {color: #219;} -.cm-s-default .cm-number {color: #164;} -.cm-s-default .cm-def {color: #00f;} -.cm-s-default .cm-variable, -.cm-s-default .cm-punctuation, -.cm-s-default .cm-property, -.cm-s-default .cm-operator {} -.cm-s-default .cm-variable-2 {color: #05a;} -.cm-s-default .cm-variable-3 {color: #085;} -.cm-s-default .cm-comment {color: #a50;} -.cm-s-default .cm-string {color: #a11;} -.cm-s-default .cm-string-2 {color: #f50;} -.cm-s-default .cm-meta {color: #555;} -.cm-s-default .cm-qualifier {color: #555;} -.cm-s-default .cm-builtin {color: #30a;} -.cm-s-default .cm-bracket {color: #997;} -.cm-s-default .cm-tag {color: #170;} -.cm-s-default .cm-attribute {color: #00c;} -.cm-s-default .cm-header {color: blue;} -.cm-s-default .cm-quote {color: #090;} -.cm-s-default .cm-hr {color: #999;} -.cm-s-default .cm-link {color: #00c;} - -.cm-negative {color: #d44;} -.cm-positive {color: #292;} -.cm-header, .cm-strong {font-weight: bold;} -.cm-em {font-style: italic;} -.cm-link {text-decoration: underline;} -.cm-strikethrough {text-decoration: line-through;} - -.cm-s-default .cm-error {color: #f00;} -.cm-invalidchar {color: #f00;} - -.CodeMirror-composing { border-bottom: 2px solid; } - -/* Default styles for common addons */ - -div.CodeMirror span.CodeMirror-matchingbracket {color: #0f0;} -div.CodeMirror span.CodeMirror-nonmatchingbracket {color: #f22;} -.CodeMirror-matchingtag { background: rgba(255, 150, 0, .3); } -.CodeMirror-activeline-background {background: #e8f2ff;} - -/* STOP */ - -/* The rest of this file contains styles related to the mechanics of - the editor. You probably shouldn't touch them. */ - -.CodeMirror { - position: relative; - overflow: hidden; - background: white; -} - -.CodeMirror-scroll { - overflow: scroll !important; /* Things will break if this is overridden */ - /* 30px is the magic margin used to hide the element's real scrollbars */ - /* See overflow: hidden in .CodeMirror */ - margin-bottom: -30px; margin-right: -30px; - padding-bottom: 30px; - height: 100%; - outline: none; /* Prevent dragging from highlighting the element */ - position: relative; -} -.CodeMirror-sizer { - position: relative; - border-right: 30px solid transparent; -} - -/* The fake, visible scrollbars. Used to force redraw during scrolling - before actuall scrolling happens, thus preventing shaking and - flickering artifacts. */ -.CodeMirror-vscrollbar, .CodeMirror-hscrollbar, .CodeMirror-scrollbar-filler, .CodeMirror-gutter-filler { - position: absolute; - z-index: 6; - display: none; -} -.CodeMirror-vscrollbar { - right: 0; top: 0; - overflow-x: hidden; - overflow-y: scroll; -} -.CodeMirror-hscrollbar { - bottom: 0; left: 0; - overflow-y: hidden; - overflow-x: scroll; -} -.CodeMirror-scrollbar-filler { - right: 0; bottom: 0; -} -.CodeMirror-gutter-filler { - left: 0; bottom: 0; -} - -.CodeMirror-gutters { - position: absolute; left: 0; top: 0; - z-index: 3; -} -.CodeMirror-gutter { - white-space: normal; - height: 100%; - display: inline-block; - margin-bottom: -30px; - /* Hack to make IE7 behave */ - *zoom:1; - *display:inline; -} -.CodeMirror-gutter-wrapper { - position: absolute; - z-index: 4; - height: 100%; -} -.CodeMirror-gutter-elt { - position: absolute; - cursor: default; - z-index: 4; -} -.CodeMirror-gutter-wrapper { - -webkit-user-select: none; - -moz-user-select: none; - user-select: none; -} - -.CodeMirror-lines { - cursor: text; - min-height: 1px; /* prevents collapsing before first draw */ -} -.CodeMirror pre { - /* Reset some styles that the rest of the page might have set */ - -moz-border-radius: 0; -webkit-border-radius: 0; border-radius: 0; - border-width: 0; - background: transparent; - font-family: inherit; - font-size: inherit; - margin: 0; - white-space: pre; - word-wrap: normal; - line-height: inherit; - color: inherit; - z-index: 2; - position: relative; - overflow: visible; - -webkit-tap-highlight-color: transparent; -} -.CodeMirror-wrap pre { - word-wrap: break-word; - white-space: pre-wrap; - word-break: normal; -} - -.CodeMirror-linebackground { - position: absolute; - left: 0; right: 0; top: 0; bottom: 0; - z-index: 0; -} - -.CodeMirror-linewidget { - position: relative; - z-index: 2; - overflow: auto; -} - -.CodeMirror-widget {} - -.CodeMirror-code { - outline: none; -} - -/* Force content-box sizing for the elements where we expect it */ -.CodeMirror-scroll, -.CodeMirror-sizer, -.CodeMirror-gutter, -.CodeMirror-gutters, -.CodeMirror-linenumber { - -moz-box-sizing: content-box; - box-sizing: content-box; -} - -.CodeMirror-measure { - position: absolute; - width: 100%; - height: 0; - overflow: hidden; - visibility: hidden; -} -.CodeMirror-measure pre { position: static; } - -.CodeMirror div.CodeMirror-cursor { - position: absolute; - border-right: none; - width: 0; -} - -div.CodeMirror-cursors { - visibility: hidden; - position: relative; - z-index: 3; -} -.CodeMirror-focused div.CodeMirror-cursors { - visibility: visible; -} - -.CodeMirror-selected { background: #d9d9d9; } -.CodeMirror-focused .CodeMirror-selected { background: #d7d4f0; } -.CodeMirror-crosshair { cursor: crosshair; } -.CodeMirror ::selection { background: #d7d4f0; } -.CodeMirror ::-moz-selection { background: #d7d4f0; } - -.cm-searching { - background: #ffa; - background: rgba(255, 255, 0, .4); -} - -/* IE7 hack to prevent it from returning funny offsetTops on the spans */ -.CodeMirror span { *vertical-align: text-bottom; } - -/* Used to force a border model for a node */ -.cm-force-border { padding-right: .1px; } - -@media print { - /* Hide the cursor when printing */ - .CodeMirror div.CodeMirror-cursors { - visibility: hidden; - } -} - -/* See issue #2901 */ -.cm-tab-wrap-hack:after { content: ''; } - -/* Help users use markselection to safely style text background */ -span.CodeMirror-selectedtext { background: none; } diff --git a/admin/plugins/ckeditor/samples/toolbarconfigurator/lib/codemirror/codemirror.js b/admin/plugins/ckeditor/samples/toolbarconfigurator/lib/codemirror/codemirror.js deleted file mode 100644 index 538493f..0000000 --- a/admin/plugins/ckeditor/samples/toolbarconfigurator/lib/codemirror/codemirror.js +++ /dev/null @@ -1,288 +0,0 @@ -(function(q){if("object"==typeof exports&&"object"==typeof module)module.exports=q();else{if("function"==typeof define&&define.amd)return define([],q);this.CodeMirror=q()}})(function(){function q(a,b){if(!(this instanceof q))return new q(a,b);this.options=b=b?V(b):{};V(qf,b,!1);wc(b);var c=b.value;"string"==typeof c&&(c=new P(c,b.mode));this.doc=c;var d=new q.inputStyles[b.inputStyle](this),d=this.display=new rf(a,c,d);d.wrapper.CodeMirror=this;Ad(this);Bd(this);b.lineWrapping&&(this.display.wrapper.className+= -" CodeMirror-wrap");b.autofocus&&!ab&&d.input.focus();Cd(this);this.state={keyMaps:[],overlays:[],modeGen:0,overwrite:!1,delayingBlurEvent:!1,focused:!1,suppressEdits:!1,pasteIncoming:!1,cutIncoming:!1,draggingText:!1,highlight:new bb,keySeq:null,specialChars:null};var e=this;B&&11>C&&setTimeout(function(){e.display.input.reset(!0)},20);sf(this);Dd||(tf(),Dd=!0);Ja(this);this.curOp.forceUpdate=!0;Ed(this,c);b.autofocus&&!ab||e.hasFocus()?setTimeout(cb(xc,this),20):db(this);for(var f in Ka)if(Ka.hasOwnProperty(f))Ka[f](this, -b[f],Fd);Gd(this);b.finishInit&&b.finishInit(this);for(c=0;c<yc.length;++c)yc[c](this);La(this);J&&b.lineWrapping&&"optimizelegibility"==getComputedStyle(d.lineDiv).textRendering&&(d.lineDiv.style.textRendering="auto")}function rf(a,b,c){this.input=c;this.scrollbarFiller=t("div",null,"CodeMirror-scrollbar-filler");this.scrollbarFiller.setAttribute("cm-not-content","true");this.gutterFiller=t("div",null,"CodeMirror-gutter-filler");this.gutterFiller.setAttribute("cm-not-content","true");this.lineDiv= -t("div",null,"CodeMirror-code");this.selectionDiv=t("div",null,null,"position: relative; z-index: 1");this.cursorDiv=t("div",null,"CodeMirror-cursors");this.measure=t("div",null,"CodeMirror-measure");this.lineMeasure=t("div",null,"CodeMirror-measure");this.lineSpace=t("div",[this.measure,this.lineMeasure,this.selectionDiv,this.cursorDiv,this.lineDiv],null,"position: relative; outline: none");this.mover=t("div",[t("div",[this.lineSpace],"CodeMirror-lines")],null,"position: relative");this.sizer=t("div", -[this.mover],"CodeMirror-sizer");this.sizerWidth=null;this.heightForcer=t("div",null,null,"position: absolute; height: "+Hd+"px; width: 1px;");this.gutters=t("div",null,"CodeMirror-gutters");this.lineGutter=null;this.scroller=t("div",[this.sizer,this.heightForcer,this.gutters],"CodeMirror-scroll");this.scroller.setAttribute("tabIndex","-1");this.wrapper=t("div",[this.scrollbarFiller,this.gutterFiller,this.scroller],"CodeMirror");B&&8>C&&(this.gutters.style.zIndex=-1,this.scroller.style.paddingRight= -0);J||wa&&ab||(this.scroller.draggable=!0);a&&(a.appendChild?a.appendChild(this.wrapper):a(this.wrapper));this.reportedViewFrom=this.reportedViewTo=this.viewFrom=this.viewTo=b.first;this.view=[];this.externalMeasured=this.renderedView=null;this.lastWrapHeight=this.lastWrapWidth=this.viewOffset=0;this.updateLineNumbers=null;this.nativeBarWidth=this.barHeight=this.barWidth=0;this.scrollbarsClipped=!1;this.lineNumWidth=this.lineNumInnerWidth=this.lineNumChars=null;this.alignWidgets=!1;this.maxLine=this.cachedCharWidth= -this.cachedTextHeight=this.cachedPaddingH=null;this.maxLineLength=0;this.maxLineChanged=!1;this.wheelDX=this.wheelDY=this.wheelStartX=this.wheelStartY=null;this.shift=!1;this.activeTouch=this.selForContextMenu=null;c.init(this)}function zc(a){a.doc.mode=q.getMode(a.options,a.doc.modeOption);eb(a)}function eb(a){a.doc.iter(function(a){a.stateAfter&&(a.stateAfter=null);a.styles&&(a.styles=null)});a.doc.frontier=a.doc.first;fb(a,100);a.state.modeGen++;a.curOp&&Q(a)}function Id(a){var b=xa(a.display), -c=a.options.lineWrapping,d=c&&Math.max(5,a.display.scroller.clientWidth/gb(a.display)-3);return function(e){if(ya(a.doc,e))return 0;var f=0;if(e.widgets)for(var g=0;g<e.widgets.length;g++)e.widgets[g].height&&(f+=e.widgets[g].height);return c?f+(Math.ceil(e.text.length/d)||1)*b:f+b}}function Ac(a){var b=a.doc,c=Id(a);b.iter(function(a){var b=c(a);b!=a.height&&ca(a,b)})}function Bd(a){a.display.wrapper.className=a.display.wrapper.className.replace(/\s*cm-s-\S+/g,"")+a.options.theme.replace(/(^|\s)\s*/g, -" cm-s-");hb(a)}function ib(a){Ad(a);Q(a);setTimeout(function(){Bc(a)},20)}function Ad(a){var b=a.display.gutters,c=a.options.gutters;za(b);for(var d=0;d<c.length;++d){var e=c[d],f=b.appendChild(t("div",null,"CodeMirror-gutter "+e));"CodeMirror-linenumbers"==e&&(a.display.lineGutter=f,f.style.width=(a.display.lineNumWidth||1)+"px")}b.style.display=d?"":"none";Cc(a)}function Cc(a){a.display.sizer.style.marginLeft=a.display.gutters.offsetWidth+"px"}function Kb(a){if(0==a.height)return 0;for(var b=a.text.length, -c,d=a;c=Aa(d,!0);)c=c.find(0,!0),d=c.from.line,b+=c.from.ch-c.to.ch;for(d=a;c=Aa(d,!1);)c=c.find(0,!0),b-=d.text.length-c.from.ch,d=c.to.line,b+=d.text.length-c.to.ch;return b}function Dc(a){var b=a.display;a=a.doc;b.maxLine=u(a,a.first);b.maxLineLength=Kb(b.maxLine);b.maxLineChanged=!0;a.iter(function(a){var d=Kb(a);d>b.maxLineLength&&(b.maxLineLength=d,b.maxLine=a)})}function wc(a){var b=D(a.gutters,"CodeMirror-linenumbers");-1==b&&a.lineNumbers?a.gutters=a.gutters.concat(["CodeMirror-linenumbers"]): --1<b&&!a.lineNumbers&&(a.gutters=a.gutters.slice(0),a.gutters.splice(b,1))}function jb(a){var b=a.display,c=b.gutters.offsetWidth,d=Math.round(a.doc.height+Ec(a.display));return{clientHeight:b.scroller.clientHeight,viewHeight:b.wrapper.clientHeight,scrollWidth:b.scroller.scrollWidth,clientWidth:b.scroller.clientWidth,viewWidth:b.wrapper.clientWidth,barLeft:a.options.fixedGutter?c:0,docHeight:d,scrollHeight:d+da(a)+b.barHeight,nativeBarWidth:b.nativeBarWidth,gutterWidth:c}}function Fc(a,b,c){this.cm= -c;var d=this.vert=t("div",[t("div",null,null,"min-width: 1px")],"CodeMirror-vscrollbar"),e=this.horiz=t("div",[t("div",null,null,"height: 100%; min-height: 1px")],"CodeMirror-hscrollbar");a(d);a(e);v(d,"scroll",function(){d.clientHeight&&b(d.scrollTop,"vertical")});v(e,"scroll",function(){e.clientWidth&&b(e.scrollLeft,"horizontal")});this.checkedOverlay=!1;B&&8>C&&(this.horiz.style.minHeight=this.vert.style.minWidth="18px")}function Gc(){}function Cd(a){a.display.scrollbars&&(a.display.scrollbars.clear(), -a.display.scrollbars.addClass&&kb(a.display.wrapper,a.display.scrollbars.addClass));a.display.scrollbars=new q.scrollbarModel[a.options.scrollbarStyle](function(b){a.display.wrapper.insertBefore(b,a.display.scrollbarFiller);v(b,"mousedown",function(){a.state.focused&&setTimeout(function(){a.display.input.focus()},0)});b.setAttribute("cm-not-content","true")},function(b,c){"horizontal"==c?Ma(a,b):lb(a,b)},a);a.display.scrollbars.addClass&&mb(a.display.wrapper,a.display.scrollbars.addClass)}function Na(a, -b){b||(b=jb(a));var c=a.display.barWidth,d=a.display.barHeight;Jd(a,b);for(var e=0;4>e&&c!=a.display.barWidth||d!=a.display.barHeight;e++)c!=a.display.barWidth&&a.options.lineWrapping&&Lb(a),Jd(a,jb(a)),c=a.display.barWidth,d=a.display.barHeight}function Jd(a,b){var c=a.display,d=c.scrollbars.update(b);c.sizer.style.paddingRight=(c.barWidth=d.right)+"px";c.sizer.style.paddingBottom=(c.barHeight=d.bottom)+"px";d.right&&d.bottom?(c.scrollbarFiller.style.display="block",c.scrollbarFiller.style.height= -d.bottom+"px",c.scrollbarFiller.style.width=d.right+"px"):c.scrollbarFiller.style.display="";d.bottom&&a.options.coverGutterNextToScrollbar&&a.options.fixedGutter?(c.gutterFiller.style.display="block",c.gutterFiller.style.height=d.bottom+"px",c.gutterFiller.style.width=b.gutterWidth+"px"):c.gutterFiller.style.display=""}function Hc(a,b,c){var d=c&&null!=c.top?Math.max(0,c.top):a.scroller.scrollTop,d=Math.floor(d-a.lineSpace.offsetTop),e=c&&null!=c.bottom?c.bottom:d+a.wrapper.clientHeight,d=Ba(b,d), -e=Ba(b,e);if(c&&c.ensure){var f=c.ensure.from.line;c=c.ensure.to.line;f<d?(d=f,e=Ba(b,ea(u(b,f))+a.wrapper.clientHeight)):Math.min(c,b.lastLine())>=e&&(d=Ba(b,ea(u(b,c))-a.wrapper.clientHeight),e=c)}return{from:d,to:Math.max(e,d+1)}}function Bc(a){var b=a.display,c=b.view;if(b.alignWidgets||b.gutters.firstChild&&a.options.fixedGutter){for(var d=Ic(b)-b.scroller.scrollLeft+a.doc.scrollLeft,e=b.gutters.offsetWidth,f=d+"px",g=0;g<c.length;g++)if(!c[g].hidden){a.options.fixedGutter&&c[g].gutter&&(c[g].gutter.style.left= -f);var h=c[g].alignable;if(h)for(var k=0;k<h.length;k++)h[k].style.left=f}a.options.fixedGutter&&(b.gutters.style.left=d+e+"px")}}function Gd(a){if(!a.options.lineNumbers)return!1;var b=a.doc,b=Jc(a.options,b.first+b.size-1),c=a.display;if(b.length!=c.lineNumChars){var d=c.measure.appendChild(t("div",[t("div",b)],"CodeMirror-linenumber CodeMirror-gutter-elt")),e=d.firstChild.offsetWidth,d=d.offsetWidth-e;c.lineGutter.style.width="";c.lineNumInnerWidth=Math.max(e,c.lineGutter.offsetWidth-d)+1;c.lineNumWidth= -c.lineNumInnerWidth+d;c.lineNumChars=c.lineNumInnerWidth?b.length:-1;c.lineGutter.style.width=c.lineNumWidth+"px";Cc(a);return!0}return!1}function Jc(a,b){return String(a.lineNumberFormatter(b+a.firstLineNumber))}function Ic(a){return a.scroller.getBoundingClientRect().left-a.sizer.getBoundingClientRect().left}function Mb(a,b,c){var d=a.display;this.viewport=b;this.visible=Hc(d,a.doc,b);this.editorIsHidden=!d.wrapper.offsetWidth;this.wrapperHeight=d.wrapper.clientHeight;this.wrapperWidth=d.wrapper.clientWidth; -this.oldDisplayWidth=pa(a);this.force=c;this.dims=Kc(a);this.events=[]}function Lc(a,b){var c=a.display,d=a.doc;if(b.editorIsHidden)return qa(a),!1;if(!b.force&&b.visible.from>=c.viewFrom&&b.visible.to<=c.viewTo&&(null==c.updateLineNumbers||c.updateLineNumbers>=c.viewTo)&&c.renderedView==c.view&&0==Kd(a))return!1;Gd(a)&&(qa(a),b.dims=Kc(a));var e=d.first+d.size,f=Math.max(b.visible.from-a.options.viewportMargin,d.first),g=Math.min(e,b.visible.to+a.options.viewportMargin);c.viewFrom<f&&20>f-c.viewFrom&& -(f=Math.max(d.first,c.viewFrom));c.viewTo>g&&20>c.viewTo-g&&(g=Math.min(e,c.viewTo));ra&&(f=Mc(a.doc,f),g=Ld(a.doc,g));d=f!=c.viewFrom||g!=c.viewTo||c.lastWrapHeight!=b.wrapperHeight||c.lastWrapWidth!=b.wrapperWidth;e=a.display;0==e.view.length||f>=e.viewTo||g<=e.viewFrom?(e.view=Nb(a,f,g),e.viewFrom=f):(e.viewFrom>f?e.view=Nb(a,f,e.viewFrom).concat(e.view):e.viewFrom<f&&(e.view=e.view.slice(Ca(a,f))),e.viewFrom=f,e.viewTo<g?e.view=e.view.concat(Nb(a,e.viewTo,g)):e.viewTo>g&&(e.view=e.view.slice(0, -Ca(a,g))));e.viewTo=g;c.viewOffset=ea(u(a.doc,c.viewFrom));a.display.mover.style.top=c.viewOffset+"px";g=Kd(a);if(!d&&0==g&&!b.force&&c.renderedView==c.view&&(null==c.updateLineNumbers||c.updateLineNumbers>=c.viewTo))return!1;f=fa();4<g&&(c.lineDiv.style.display="none");uf(a,c.updateLineNumbers,b.dims);4<g&&(c.lineDiv.style.display="");c.renderedView=c.view;f&&fa()!=f&&f.offsetHeight&&f.focus();za(c.cursorDiv);za(c.selectionDiv);c.gutters.style.height=0;d&&(c.lastWrapHeight=b.wrapperHeight,c.lastWrapWidth= -b.wrapperWidth,fb(a,400));c.updateLineNumbers=null;return!0}function Md(a,b){for(var c=b.viewport,d=!0;;d=!1){if(!d||!a.options.lineWrapping||b.oldDisplayWidth==pa(a))if(c&&null!=c.top&&(c={top:Math.min(a.doc.height+Ec(a.display)-Nc(a),c.top)}),b.visible=Hc(a.display,a.doc,c),b.visible.from>=a.display.viewFrom&&b.visible.to<=a.display.viewTo)break;if(!Lc(a,b))break;Lb(a);d=jb(a);nb(a);Oc(a,d);Na(a,d)}b.signal(a,"update",a);if(a.display.viewFrom!=a.display.reportedViewFrom||a.display.viewTo!=a.display.reportedViewTo)b.signal(a, -"viewportChange",a,a.display.viewFrom,a.display.viewTo),a.display.reportedViewFrom=a.display.viewFrom,a.display.reportedViewTo=a.display.viewTo}function Pc(a,b){var c=new Mb(a,b);if(Lc(a,c)){Lb(a);Md(a,c);var d=jb(a);nb(a);Oc(a,d);Na(a,d);c.finish()}}function Oc(a,b){a.display.sizer.style.minHeight=b.docHeight+"px";var c=b.docHeight+a.display.barHeight;a.display.heightForcer.style.top=c+"px";a.display.gutters.style.height=Math.max(c+da(a),b.clientHeight)+"px"}function Lb(a){a=a.display;for(var b= -a.lineDiv.offsetTop,c=0;c<a.view.length;c++){var d=a.view[c],e;if(!d.hidden){if(B&&8>C){var f=d.node.offsetTop+d.node.offsetHeight;e=f-b;b=f}else e=d.node.getBoundingClientRect(),e=e.bottom-e.top;f=d.line.height-e;2>e&&(e=xa(a));if(.001<f||-.001>f)if(ca(d.line,e),Nd(d.line),d.rest)for(e=0;e<d.rest.length;e++)Nd(d.rest[e])}}}function Nd(a){if(a.widgets)for(var b=0;b<a.widgets.length;++b)a.widgets[b].height=a.widgets[b].node.offsetHeight}function Kc(a){for(var b=a.display,c={},d={},e=b.gutters.clientLeft, -f=b.gutters.firstChild,g=0;f;f=f.nextSibling,++g)c[a.options.gutters[g]]=f.offsetLeft+f.clientLeft+e,d[a.options.gutters[g]]=f.clientWidth;return{fixedPos:Ic(b),gutterTotalWidth:b.gutters.offsetWidth,gutterLeft:c,gutterWidth:d,wrapperWidth:b.wrapper.clientWidth}}function uf(a,b,c){function d(b){var c=b.nextSibling;J&&W&&a.display.currentWheelTarget==b?b.style.display="none":b.parentNode.removeChild(b);return c}for(var e=a.display,f=a.options.lineNumbers,g=e.lineDiv,h=g.firstChild,k=e.view,e=e.viewFrom, -l=0;l<k.length;l++){var m=k[l];if(!m.hidden)if(m.node&&m.node.parentNode==g){for(;h!=m.node;)h=d(h);h=f&&null!=b&&b<=e&&m.lineNumber;m.changes&&(-1<D(m.changes,"gutter")&&(h=!1),Od(a,m,e,c));h&&(za(m.lineNumber),m.lineNumber.appendChild(document.createTextNode(Jc(a.options,e))));h=m.node.nextSibling}else{var p=vf(a,m,e,c);g.insertBefore(p,h)}e+=m.size}for(;h;)h=d(h)}function Od(a,b,c,d){for(var e=0;e<b.changes.length;e++){var f=b.changes[e];if("text"==f){var f=b,g=f.text.className,h=Pd(a,f);f.text== -f.node&&(f.node=h.pre);f.text.parentNode.replaceChild(h.pre,f.text);f.text=h.pre;h.bgClass!=f.bgClass||h.textClass!=f.textClass?(f.bgClass=h.bgClass,f.textClass=h.textClass,Qc(f)):g&&(f.text.className=g)}else if("gutter"==f)Qd(a,b,c,d);else if("class"==f)Qc(b);else if("widget"==f){f=a;g=b;h=d;g.alignable&&(g.alignable=null);for(var k=g.node.firstChild,l=void 0;k;k=l)l=k.nextSibling,"CodeMirror-linewidget"==k.className&&g.node.removeChild(k);Rd(f,g,h)}}b.changes=null}function Ob(a){a.node==a.text&& -(a.node=t("div",null,null,"position: relative"),a.text.parentNode&&a.text.parentNode.replaceChild(a.node,a.text),a.node.appendChild(a.text),B&&8>C&&(a.node.style.zIndex=2));return a.node}function Pd(a,b){var c=a.display.externalMeasured;return c&&c.line==b.line?(a.display.externalMeasured=null,b.measure=c.measure,c.built):Sd(a,b)}function Qc(a){var b=a.bgClass?a.bgClass+" "+(a.line.bgClass||""):a.line.bgClass;b&&(b+=" CodeMirror-linebackground");if(a.background)b?a.background.className=b:(a.background.parentNode.removeChild(a.background), -a.background=null);else if(b){var c=Ob(a);a.background=c.insertBefore(t("div",null,b),c.firstChild)}a.line.wrapClass?Ob(a).className=a.line.wrapClass:a.node!=a.text&&(a.node.className="");a.text.className=(a.textClass?a.textClass+" "+(a.line.textClass||""):a.line.textClass)||""}function Qd(a,b,c,d){b.gutter&&(b.node.removeChild(b.gutter),b.gutter=null);var e=b.line.gutterMarkers;if(a.options.lineNumbers||e){var f=Ob(b),g=b.gutter=t("div",null,"CodeMirror-gutter-wrapper","left: "+(a.options.fixedGutter? -d.fixedPos:-d.gutterTotalWidth)+"px; width: "+d.gutterTotalWidth+"px");a.display.input.setUneditable(g);f.insertBefore(g,b.text);b.line.gutterClass&&(g.className+=" "+b.line.gutterClass);!a.options.lineNumbers||e&&e["CodeMirror-linenumbers"]||(b.lineNumber=g.appendChild(t("div",Jc(a.options,c),"CodeMirror-linenumber CodeMirror-gutter-elt","left: "+d.gutterLeft["CodeMirror-linenumbers"]+"px; width: "+a.display.lineNumInnerWidth+"px")));if(e)for(b=0;b<a.options.gutters.length;++b)c=a.options.gutters[b], -(f=e.hasOwnProperty(c)&&e[c])&&g.appendChild(t("div",[f],"CodeMirror-gutter-elt","left: "+d.gutterLeft[c]+"px; width: "+d.gutterWidth[c]+"px"))}}function vf(a,b,c,d){var e=Pd(a,b);b.text=b.node=e.pre;e.bgClass&&(b.bgClass=e.bgClass);e.textClass&&(b.textClass=e.textClass);Qc(b);Qd(a,b,c,d);Rd(a,b,d);return b.node}function Rd(a,b,c){Td(a,b.line,b,c,!0);if(b.rest)for(var d=0;d<b.rest.length;d++)Td(a,b.rest[d],b,c,!1)}function Td(a,b,c,d,e){if(b.widgets){var f=Ob(c),g=0;for(b=b.widgets;g<b.length;++g){var h= -b[g],k=t("div",[h.node],"CodeMirror-linewidget");h.handleMouseEvents||k.setAttribute("cm-ignore-events","true");var l=h,m=k,p=d;if(l.noHScroll){(c.alignable||(c.alignable=[])).push(m);var n=p.wrapperWidth;m.style.left=p.fixedPos+"px";l.coverGutter||(n-=p.gutterTotalWidth,m.style.paddingLeft=p.gutterTotalWidth+"px");m.style.width=n+"px"}l.coverGutter&&(m.style.zIndex=5,m.style.position="relative",l.noHScroll||(m.style.marginLeft=-p.gutterTotalWidth+"px"));a.display.input.setUneditable(k);e&&h.above? -f.insertBefore(k,c.gutter||c.text):f.appendChild(k);L(h,"redraw")}}}function Rc(a){return r(a.line,a.ch)}function Pb(a,b){return 0>y(a,b)?b:a}function Qb(a,b){return 0>y(a,b)?a:b}function Ud(a){a.state.focused||(a.display.input.focus(),xc(a))}function Rb(a){return a.options.readOnly||a.doc.cantEdit}function Sc(a,b,c,d,e){var f=a.doc;a.display.shift=!1;d||(d=f.sel);var g=sa(b),h=null;a.state.pasteIncoming&&1<d.ranges.length&&(X&&X.join("\n")==b?h=0==d.ranges.length%X.length&&ob(X,sa):g.length==d.ranges.length&& -(h=ob(g,function(a){return[a]})));for(var k=d.ranges.length-1;0<=k;k--){var l=d.ranges[k],m=l.from(),p=l.to();l.empty()&&(c&&0<c?m=r(m.line,m.ch-c):a.state.overwrite&&!a.state.pasteIncoming&&(p=r(p.line,Math.min(u(f,p.line).text.length,p.ch+A(g).length))));var n=a.curOp.updateInput,m={from:m,to:p,text:h?h[k%h.length]:g,origin:e||(a.state.pasteIncoming?"paste":a.state.cutIncoming?"cut":"+input")};Oa(a.doc,m);L(a,"inputRead",a,m);if(b&&!a.state.pasteIncoming&&a.options.electricChars&&a.options.smartIndent&& -100>l.head.ch&&(!k||d.ranges[k-1].head.line!=l.head.line)){l=a.getModeAt(l.head);m=ta(m);p=!1;if(l.electricChars)for(var E=0;E<l.electricChars.length;E++){if(-1<b.indexOf(l.electricChars.charAt(E))){p=pb(a,m.line,"smart");break}}else l.electricInput&&l.electricInput.test(u(f,m.line).text.slice(0,m.ch))&&(p=pb(a,m.line,"smart"));p&&L(a,"electricInput",a,m.line)}}Pa(a);a.curOp.updateInput=n;a.curOp.typing=!0;a.state.pasteIncoming=a.state.cutIncoming=!1}function Vd(a){for(var b=[],c=[],d=0;d<a.doc.sel.ranges.length;d++){var e= -a.doc.sel.ranges[d].head.line,e={anchor:r(e,0),head:r(e+1,0)};c.push(e);b.push(a.getRange(e.anchor,e.head))}return{text:b,ranges:c}}function Wd(a){a.setAttribute("autocorrect","off");a.setAttribute("autocapitalize","off");a.setAttribute("spellcheck","false")}function Tc(a){this.cm=a;this.prevInput="";this.pollingFast=!1;this.polling=new bb;this.hasSelection=this.inaccurateSelection=!1;this.composing=null}function Xd(){var a=t("textarea",null,null,"position: absolute; padding: 0; width: 1px; height: 1em; outline: none"), -b=t("div",[a],null,"overflow: hidden; position: relative; width: 3px; height: 0px;");J?a.style.width="1000px":a.setAttribute("wrap","off");Qa&&(a.style.border="1px solid black");Wd(a);return b}function Uc(a){this.cm=a;this.lastAnchorNode=this.lastAnchorOffset=this.lastFocusNode=this.lastFocusOffset=null;this.polling=new bb;this.gracePeriod=!1}function Yd(a,b){var c=Vc(a,b.line);if(!c||c.hidden)return null;var d=u(a.doc,b.line),c=Zd(c,d,b.line);(d=Y(d))&&Sb(d,b.ch);d=$d(c.map,b.ch,"left");d.offset= -"right"==d.collapse?d.end:d.start;return d}function Ra(a,b){b&&(a.bad=!0);return a}function Tb(a,b,c){var d;if(b==a.display.lineDiv){d=a.display.lineDiv.childNodes[c];if(!d)return Ra(a.clipPos(r(a.display.viewTo-1)),!0);b=null;c=0}else for(d=b;;d=d.parentNode){if(!d||d==a.display.lineDiv)return null;if(d.parentNode&&d.parentNode==a.display.lineDiv)break}for(var e=0;e<a.display.view.length;e++){var f=a.display.view[e];if(f.node==d)return wf(f,b,c)}}function wf(a,b,c){function d(b,c,d){for(var e=-1;e< -(l?l.length:0);e++)for(var f=0>e?k.map:l[e],g=0;g<f.length;g+=3){var h=f[g+2];if(h==b||h==c){c=F(0>e?a.line:a.rest[e]);e=f[g]+d;if(0>d||h!=b)e=f[g+(d?1:0)];return r(c,e)}}}var e=a.text.firstChild,f=!1;if(!b||!Wc(e,b))return Ra(r(F(a.line),0),!0);if(b==e&&(f=!0,b=e.childNodes[c],c=0,!b))return c=a.rest?A(a.rest):a.line,Ra(r(F(c),c.text.length),f);var g=3==b.nodeType?b:null,h=b;g||1!=b.childNodes.length||3!=b.firstChild.nodeType||(g=b.firstChild,c&&(c=g.nodeValue.length));for(;h.parentNode!=e;)h=h.parentNode; -var k=a.measure,l=k.maps;if(b=d(g,h,c))return Ra(b,f);e=h.nextSibling;for(g=g?g.nodeValue.length-c:0;e;e=e.nextSibling){if(b=d(e,e.firstChild,0))return Ra(r(b.line,b.ch-g),f);g+=e.textContent.length}h=h.previousSibling;for(g=c;h;h=h.previousSibling){if(b=d(h,h.firstChild,-1))return Ra(r(b.line,b.ch+g),f);g+=e.textContent.length}}function xf(a,b,c,d,e){function f(a){return function(b){return b.id==a}}function g(b){if(1==b.nodeType){var c=b.getAttribute("cm-text");if(null!=c)""==c&&(c=b.textContent.replace(/\u200b/g, -"")),h+=c;else{var c=b.getAttribute("cm-marker"),p;if(c)b=a.findMarks(r(d,0),r(e+1,0),f(+c)),b.length&&(p=b[0].find())&&(h+=Da(a.doc,p.from,p.to).join("\n"));else if("false"!=b.getAttribute("contenteditable")){for(p=0;p<b.childNodes.length;p++)g(b.childNodes[p]);/^(pre|div|p)$/i.test(b.nodeName)&&(k=!0)}}}else 3==b.nodeType&&(b=b.nodeValue)&&(k&&(h+="\n",k=!1),h+=b)}for(var h="",k=!1;;){g(b);if(b==c)break;b=b.nextSibling}return h}function la(a,b){this.ranges=a;this.primIndex=b}function z(a,b){this.anchor= -a;this.head=b}function Z(a,b){var c=a[b];a.sort(function(a,b){return y(a.from(),b.from())});b=D(a,c);for(c=1;c<a.length;c++){var d=a[c],e=a[c-1];if(0<=y(e.to(),d.from())){var f=Qb(e.from(),d.from()),g=Pb(e.to(),d.to()),d=e.empty()?d.from()==d.head:e.from()==e.head;c<=b&&--b;a.splice(--c,2,new z(d?g:f,d?f:g))}}return new la(a,b)}function ga(a,b){return new la([new z(a,b||a)],0)}function w(a,b){if(b.line<a.first)return r(a.first,0);var c=a.first+a.size-1;if(b.line>c)return r(c,u(a,c).text.length);var c= -u(a,b.line).text.length,d=b.ch,c=null==d||d>c?r(b.line,c):0>d?r(b.line,0):b;return c}function qb(a,b){return b>=a.first&&b<a.first+a.size}function rb(a,b,c,d){return a.cm&&a.cm.display.shift||a.extend?(a=b.anchor,d&&(b=0>y(c,a),b!=0>y(d,a)?(a=c,c=d):b!=0>y(c,d)&&(c=d)),new z(a,c)):new z(d||c,c)}function Ub(a,b,c,d){H(a,new la([rb(a,a.sel.primary(),b,c)],0),d)}function ae(a,b,c){for(var d=[],e=0;e<a.sel.ranges.length;e++)d[e]=rb(a,a.sel.ranges[e],b[e],null);b=Z(d,a.sel.primIndex);H(a,b,c)}function Xc(a, -b,c,d){var e=a.sel.ranges.slice(0);e[b]=c;H(a,Z(e,a.sel.primIndex),d)}function yf(a,b){var c={ranges:b.ranges,update:function(b){this.ranges=[];for(var c=0;c<b.length;c++)this.ranges[c]=new z(w(a,b[c].anchor),w(a,b[c].head))}};K(a,"beforeSelectionChange",a,c);a.cm&&K(a.cm,"beforeSelectionChange",a.cm,c);return c.ranges!=b.ranges?Z(c.ranges,c.ranges.length-1):b}function be(a,b,c){var d=a.history.done,e=A(d);e&&e.ranges?(d[d.length-1]=b,Vb(a,b,c)):H(a,b,c)}function H(a,b,c){Vb(a,b,c);b=a.sel;var d= -a.cm?a.cm.curOp.id:NaN,e=a.history,f=c&&c.origin,g;if(!(g=d==e.lastSelOp)&&(g=f&&e.lastSelOrigin==f)&&!(g=e.lastModTime==e.lastSelTime&&e.lastOrigin==f)){g=A(e.done);var h=f.charAt(0);g="*"==h||"+"==h&&g.ranges.length==b.ranges.length&&g.somethingSelected()==b.somethingSelected()&&new Date-a.history.lastSelTime<=(a.cm?a.cm.options.historyEventDelay:500)}g?e.done[e.done.length-1]=b:Wb(b,e.done);e.lastSelTime=+new Date;e.lastSelOrigin=f;e.lastSelOp=d;c&&!1!==c.clearRedo&&ce(e.undone)}function Vb(a, -b,c){if(S(a,"beforeSelectionChange")||a.cm&&S(a.cm,"beforeSelectionChange"))b=yf(a,b);var d=c&&c.bias||(0>y(b.primary().head,a.sel.primary().head)?-1:1);de(a,ee(a,b,d,!0));c&&!1===c.scroll||!a.cm||Pa(a.cm)}function de(a,b){b.equals(a.sel)||(a.sel=b,a.cm&&(a.cm.curOp.updateInput=a.cm.curOp.selectionChanged=!0,fe(a.cm)),L(a,"cursorActivity",a))}function ge(a){de(a,ee(a,a.sel,null,!1),ha)}function ee(a,b,c,d){for(var e,f=0;f<b.ranges.length;f++){var g=b.ranges[f],h=Xb(a,g.anchor,c,d),k=Xb(a,g.head,c, -d);if(e||h!=g.anchor||k!=g.head)e||(e=b.ranges.slice(0,f)),e[f]=new z(h,k)}return e?Z(e,b.primIndex):b}function Xb(a,b,c,d){var e=!1,f=b,g=c||1;a.cantEdit=!1;a:for(;;){var h=u(a,f.line);if(h.markedSpans)for(var k=0;k<h.markedSpans.length;++k){var l=h.markedSpans[k],m=l.marker;if((null==l.from||(m.inclusiveLeft?l.from<=f.ch:l.from<f.ch))&&(null==l.to||(m.inclusiveRight?l.to>=f.ch:l.to>f.ch))){if(d&&(K(m,"beforeCursorEnter"),m.explicitlyCleared))if(h.markedSpans){--k;continue}else break;if(m.atomic){k= -m.find(0>g?-1:1);if(0==y(k,f)&&(k.ch+=g,0>k.ch?k=k.line>a.first?w(a,r(k.line-1)):null:k.ch>h.text.length&&(k=k.line<a.first+a.size-1?r(k.line+1,0):null),!k)){if(e){if(!d)return Xb(a,b,c,!0);a.cantEdit=!0;return r(a.first,0)}e=!0;k=b;g=-g}f=k;continue a}}}return f}}function nb(a){a.display.input.showSelection(a.display.input.prepareSelection())}function he(a,b){for(var c=a.doc,d={},e=d.cursors=document.createDocumentFragment(),f=d.selection=document.createDocumentFragment(),g=0;g<c.sel.ranges.length;g++)if(!1!== -b||g!=c.sel.primIndex){var h=c.sel.ranges[g],k=h.empty();if(k||a.options.showCursorWhenSelecting){var l=a,m=e,p=ma(l,h.head,"div",null,null,!l.options.singleCursorHeightPerLine),n=m.appendChild(t("div"," ","CodeMirror-cursor"));n.style.left=p.left+"px";n.style.top=p.top+"px";n.style.height=Math.max(0,p.bottom-p.top)*l.options.cursorHeight+"px";p.other&&(l=m.appendChild(t("div"," ","CodeMirror-cursor CodeMirror-secondarycursor")),l.style.display="",l.style.left=p.other.left+"px",l.style.top=p.other.top+ -"px",l.style.height=.85*(p.other.bottom-p.other.top)+"px")}k||zf(a,h,f)}return d}function zf(a,b,c){function d(a,b,c,d){0>b&&(b=0);b=Math.round(b);d=Math.round(d);h.appendChild(t("div",null,"CodeMirror-selected","position: absolute; left: "+a+"px; top: "+b+"px; width: "+(null==c?m-a:c)+"px; height: "+(d-b)+"px"))}function e(b,c,e){var f=u(g,b),h=f.text.length,k,p;Af(Y(f),c||0,null==e?h:e,function(g,q,t){var u=Yb(a,r(b,g),"div",f,"left"),v,w;g==q?(v=u,t=w=u.left):(v=Yb(a,r(b,q-1),"div",f,"right"), -"rtl"==t&&(t=u,u=v,v=t),t=u.left,w=v.right);null==c&&0==g&&(t=l);3<v.top-u.top&&(d(t,u.top,null,u.bottom),t=l,u.bottom<v.top&&d(t,u.bottom,null,v.top));null==e&&q==h&&(w=m);if(!k||u.top<k.top||u.top==k.top&&u.left<k.left)k=u;if(!p||v.bottom>p.bottom||v.bottom==p.bottom&&v.right>p.right)p=v;t<l+1&&(t=l);d(t,v.top,w-t,v.bottom)});return{start:k,end:p}}var f=a.display,g=a.doc,h=document.createDocumentFragment(),k=ie(a.display),l=k.left,m=Math.max(f.sizerWidth,pa(a)-f.sizer.offsetLeft)-k.right,f=b.from(); -b=b.to();if(f.line==b.line)e(f.line,f.ch,b.ch);else{var p=u(g,f.line),k=u(g,b.line),k=ia(p)==ia(k),f=e(f.line,f.ch,k?p.text.length+1:null).end;b=e(b.line,k?0:null,b.ch).start;k&&(f.top<b.top-2?(d(f.right,f.top,null,f.bottom),d(l,b.top,b.left,b.bottom)):d(f.right,f.top,b.left-f.right,f.bottom));f.bottom<b.top&&d(l,f.bottom,null,b.top)}c.appendChild(h)}function Yc(a){if(a.state.focused){var b=a.display;clearInterval(b.blinker);var c=!0;b.cursorDiv.style.visibility="";0<a.options.cursorBlinkRate?b.blinker= -setInterval(function(){b.cursorDiv.style.visibility=(c=!c)?"":"hidden"},a.options.cursorBlinkRate):0>a.options.cursorBlinkRate&&(b.cursorDiv.style.visibility="hidden")}}function fb(a,b){a.doc.mode.startState&&a.doc.frontier<a.display.viewTo&&a.state.highlight.set(b,cb(Bf,a))}function Bf(a){var b=a.doc;b.frontier<b.first&&(b.frontier=b.first);if(!(b.frontier>=a.display.viewTo)){var c=+new Date+a.options.workTime,d=Sa(b.mode,sb(a,b.frontier)),e=[];b.iter(b.frontier,Math.min(b.first+b.size,a.display.viewTo+ -500),function(f){if(b.frontier>=a.display.viewFrom){var g=f.styles,h=je(a,f,d,!0);f.styles=h.styles;var k=f.styleClasses;(h=h.classes)?f.styleClasses=h:k&&(f.styleClasses=null);k=!g||g.length!=f.styles.length||k!=h&&(!k||!h||k.bgClass!=h.bgClass||k.textClass!=h.textClass);for(h=0;!k&&h<g.length;++h)k=g[h]!=f.styles[h];k&&e.push(b.frontier);f.stateAfter=Sa(b.mode,d)}else Zc(a,f.text,d),f.stateAfter=0==b.frontier%5?Sa(b.mode,d):null;++b.frontier;if(+new Date>c)return fb(a,a.options.workDelay),!0}); -e.length&&T(a,function(){for(var b=0;b<e.length;b++)na(a,e[b],"text")})}}function Cf(a,b,c){for(var d,e,f=a.doc,g=c?-1:b-(a.doc.mode.innerMode?1E3:100);b>g;--b){if(b<=f.first)return f.first;var h=u(f,b-1);if(h.stateAfter&&(!c||b<=f.frontier))return b;h=aa(h.text,null,a.options.tabSize);if(null==e||d>h)e=b-1,d=h}return e}function sb(a,b,c){var d=a.doc,e=a.display;if(!d.mode.startState)return!0;var f=Cf(a,b,c),g=f>d.first&&u(d,f-1).stateAfter,g=g?Sa(d.mode,g):Df(d.mode);d.iter(f,b,function(c){Zc(a, -c.text,g);c.stateAfter=f==b-1||0==f%5||f>=e.viewFrom&&f<e.viewTo?Sa(d.mode,g):null;++f});c&&(d.frontier=f);return g}function Ec(a){return a.mover.offsetHeight-a.lineSpace.offsetHeight}function ie(a){if(a.cachedPaddingH)return a.cachedPaddingH;var b=U(a.measure,t("pre","x")),b=window.getComputedStyle?window.getComputedStyle(b):b.currentStyle,b={left:parseInt(b.paddingLeft),right:parseInt(b.paddingRight)};isNaN(b.left)||isNaN(b.right)||(a.cachedPaddingH=b);return b}function da(a){return Hd-a.display.nativeBarWidth} -function pa(a){return a.display.scroller.clientWidth-da(a)-a.display.barWidth}function Nc(a){return a.display.scroller.clientHeight-da(a)-a.display.barHeight}function Zd(a,b,c){if(a.line==b)return{map:a.measure.map,cache:a.measure.cache};for(var d=0;d<a.rest.length;d++)if(a.rest[d]==b)return{map:a.measure.maps[d],cache:a.measure.caches[d]};for(d=0;d<a.rest.length;d++)if(F(a.rest[d])>c)return{map:a.measure.maps[d],cache:a.measure.caches[d],before:!0}}function Vc(a,b){if(b>=a.display.viewFrom&&b<a.display.viewTo)return a.display.view[Ca(a, -b)];var c=a.display.externalMeasured;if(c&&b>=c.lineN&&b<c.lineN+c.size)return c}function Zb(a,b){var c=F(b),d=Vc(a,c);d&&!d.text?d=null:d&&d.changes&&Od(a,d,c,Kc(a));if(!d){var e;e=ia(b);d=F(e);e=a.display.externalMeasured=new ke(a.doc,e,d);e.lineN=d;d=e.built=Sd(a,e);e.text=d.pre;U(a.display.lineMeasure,d.pre);d=e}c=Zd(d,b,c);return{line:b,view:d,rect:null,map:c.map,cache:c.cache,before:c.before,hasHeights:!1}}function $c(a,b,c,d,e){b.before&&(c=-1);var f=c+(d||"");if(b.cache.hasOwnProperty(f))a= -b.cache[f];else{b.rect||(b.rect=b.view.text.getBoundingClientRect());if(!b.hasHeights){var g=b.view,h=b.rect,k=a.options.lineWrapping,l=k&&pa(a);if(!g.measure.heights||k&&g.measure.width!=l){var m=g.measure.heights=[];if(k)for(g.measure.width=l,g=g.text.firstChild.getClientRects(),k=0;k<g.length-1;k++){var l=g[k],p=g[k+1];2<Math.abs(l.bottom-p.bottom)&&m.push((l.bottom+p.top)/2-h.top)}m.push(h.bottom-h.top)}b.hasHeights=!0}g=d;k=$d(b.map,c,g);d=k.node;h=k.start;l=k.end;c=k.collapse;var n;if(3==d.nodeType){for(m= -0;4>m;m++){for(;h&&tb(b.line.text.charAt(k.coverStart+h));)--h;for(;k.coverStart+l<k.coverEnd&&tb(b.line.text.charAt(k.coverStart+l));)++l;if(B&&9>C&&0==h&&l==k.coverEnd-k.coverStart)n=d.parentNode.getBoundingClientRect();else if(B&&a.options.lineWrapping){var E=Ea(d,h,l).getClientRects();n=E.length?E["right"==g?E.length-1:0]:ad}else n=Ea(d,h,l).getBoundingClientRect()||ad;if(n.left||n.right||0==h)break;l=h;--h;c="right"}B&&11>C&&((E=!window.screen||null==screen.logicalXDPI||screen.logicalXDPI==screen.deviceXDPI)|| -(null!=bd?E=bd:(m=U(a.display.measure,t("span","x")),E=m.getBoundingClientRect(),m=Ea(m,0,1).getBoundingClientRect(),E=bd=1<Math.abs(E.left-m.left)),E=!E),E||(E=screen.logicalXDPI/screen.deviceXDPI,m=screen.logicalYDPI/screen.deviceYDPI,n={left:n.left*E,right:n.right*E,top:n.top*m,bottom:n.bottom*m}))}else 0<h&&(c=g="right"),n=a.options.lineWrapping&&1<(E=d.getClientRects()).length?E["right"==g?E.length-1:0]:d.getBoundingClientRect();!(B&&9>C)||h||n&&(n.left||n.right)||(n=(n=d.parentNode.getClientRects()[0])? -{left:n.left,right:n.left+gb(a.display),top:n.top,bottom:n.bottom}:ad);E=n.top-b.rect.top;d=n.bottom-b.rect.top;h=(E+d)/2;g=b.view.measure.heights;for(m=0;m<g.length-1&&!(h<g[m]);m++);c={left:("right"==c?n.right:n.left)-b.rect.left,right:("left"==c?n.left:n.right)-b.rect.left,top:m?g[m-1]:0,bottom:g[m]};n.left||n.right||(c.bogus=!0);a.options.singleCursorHeightPerLine||(c.rtop=E,c.rbottom=d);a=c;a.bogus||(b.cache[f]=a)}return{left:a.left,right:a.right,top:e?a.rtop:a.top,bottom:e?a.rbottom:a.bottom}} -function $d(a,b,c){for(var d,e,f,g,h=0;h<a.length;h+=3){var k=a[h],l=a[h+1];if(b<k)e=0,f=1,g="left";else if(b<l)e=b-k,f=e+1;else if(h==a.length-3||b==l&&a[h+3]>b)f=l-k,e=f-1,b>=l&&(g="right");if(null!=e){d=a[h+2];k==l&&c==(d.insertLeft?"left":"right")&&(g=c);if("left"==c&&0==e)for(;h&&a[h-2]==a[h-3]&&a[h-1].insertLeft;)d=a[(h-=3)+2],g="left";if("right"==c&&e==l-k)for(;h<a.length-3&&a[h+3]==a[h+4]&&!a[h+5].insertLeft;)d=a[(h+=3)+2],g="right";break}}return{node:d,start:e,end:f,collapse:g,coverStart:k, -coverEnd:l}}function le(a){if(a.measure&&(a.measure.cache={},a.measure.heights=null,a.rest))for(var b=0;b<a.rest.length;b++)a.measure.caches[b]={}}function me(a){a.display.externalMeasure=null;za(a.display.lineMeasure);for(var b=0;b<a.display.view.length;b++)le(a.display.view[b])}function hb(a){me(a);a.display.cachedCharWidth=a.display.cachedTextHeight=a.display.cachedPaddingH=null;a.options.lineWrapping||(a.display.maxLineChanged=!0);a.display.lineNumChars=null}function cd(a,b,c,d){if(b.widgets)for(var e= -0;e<b.widgets.length;++e)if(b.widgets[e].above){var f=ub(b.widgets[e]);c.top+=f;c.bottom+=f}if("line"==d)return c;d||(d="local");b=ea(b);b="local"==d?b+a.display.lineSpace.offsetTop:b-a.display.viewOffset;if("page"==d||"window"==d)a=a.display.lineSpace.getBoundingClientRect(),b+=a.top+("window"==d?0:window.pageYOffset||(document.documentElement||document.body).scrollTop),d=a.left+("window"==d?0:window.pageXOffset||(document.documentElement||document.body).scrollLeft),c.left+=d,c.right+=d;c.top+=b; -c.bottom+=b;return c}function ne(a,b,c){if("div"==c)return b;var d=b.left;b=b.top;"page"==c?(d-=window.pageXOffset||(document.documentElement||document.body).scrollLeft,b-=window.pageYOffset||(document.documentElement||document.body).scrollTop):"local"!=c&&c||(c=a.display.sizer.getBoundingClientRect(),d+=c.left,b+=c.top);a=a.display.lineSpace.getBoundingClientRect();return{left:d-a.left,top:b-a.top}}function Yb(a,b,c,d,e){d||(d=u(a.doc,b.line));var f=d;b=b.ch;d=$c(a,Zb(a,d),b,e);return cd(a,f,d,c)} -function ma(a,b,c,d,e,f){function g(b,g){var h=$c(a,e,b,g?"right":"left",f);g?h.left=h.right:h.right=h.left;return cd(a,d,h,c)}function h(a,b){var c=k[b],d=c.level%2;a==dd(c)&&b&&c.level<k[b-1].level?(c=k[--b],a=ed(c)-(c.level%2?0:1),d=!0):a==ed(c)&&b<k.length-1&&c.level<k[b+1].level&&(c=k[++b],a=dd(c)-c.level%2,d=!1);return d&&a==c.to&&a>c.from?g(a-1):g(a,d)}d=d||u(a.doc,b.line);e||(e=Zb(a,d));var k=Y(d);b=b.ch;if(!k)return g(b);var l=Sb(k,b),l=h(b,l);null!=vb&&(l.other=h(b,vb));return l}function oe(a, -b){var c=0;b=w(a.doc,b);a.options.lineWrapping||(c=gb(a.display)*b.ch);var d=u(a.doc,b.line),e=ea(d)+a.display.lineSpace.offsetTop;return{left:c,right:c,top:e,bottom:e+d.height}}function $b(a,b,c,d){a=r(a,b);a.xRel=d;c&&(a.outside=!0);return a}function fd(a,b,c){var d=a.doc;c+=a.display.viewOffset;if(0>c)return $b(d.first,0,!0,-1);var e=Ba(d,c),f=d.first+d.size-1;if(e>f)return $b(d.first+d.size-1,u(d,f).text.length,!0,1);0>b&&(b=0);for(d=u(d,e);;)if(e=Ef(a,d,e,b,c),f=(d=Aa(d,!1))&&d.find(0,!0),d&& -(e.ch>f.from.ch||e.ch==f.from.ch&&0<e.xRel))e=F(d=f.to.line);else return e}function Ef(a,b,c,d,e){function f(d){d=ma(a,r(c,d),"line",b,l);h=!0;if(g>d.bottom)return d.left-k;if(g<d.top)return d.left+k;h=!1;return d.left}var g=e-ea(b),h=!1,k=2*a.display.wrapper.clientWidth,l=Zb(a,b),m=Y(b),p=b.text.length;e=ac(b);var n=bc(b),E=f(e),q=h,t=f(n),u=h;if(d>t)return $b(c,n,u,1);for(;;){if(m?n==e||n==gd(b,e,1):1>=n-e){m=d<E||d-E<=t-d?e:n;for(d-=m==e?E:t;tb(b.text.charAt(m));)++m;return $b(c,m,m==e?q:u,-1> -d?-1:1<d?1:0)}var v=Math.ceil(p/2),w=e+v;if(m)for(var w=e,x=0;x<v;++x)w=gd(b,w,1);x=f(w);if(x>d){n=w;t=x;if(u=h)t+=1E3;p=v}else e=w,E=x,q=h,p-=v}}function xa(a){if(null!=a.cachedTextHeight)return a.cachedTextHeight;if(null==Fa){Fa=t("pre");for(var b=0;49>b;++b)Fa.appendChild(document.createTextNode("x")),Fa.appendChild(t("br"));Fa.appendChild(document.createTextNode("x"))}U(a.measure,Fa);b=Fa.offsetHeight/50;3<b&&(a.cachedTextHeight=b);za(a.measure);return b||1}function gb(a){if(null!=a.cachedCharWidth)return a.cachedCharWidth; -var b=t("span","xxxxxxxxxx"),c=t("pre",[b]);U(a.measure,c);b=b.getBoundingClientRect();b=(b.right-b.left)/10;2<b&&(a.cachedCharWidth=b);return b||10}function Ja(a){a.curOp={cm:a,viewChanged:!1,startHeight:a.doc.height,forceUpdate:!1,updateInput:null,typing:!1,changeObjs:null,cursorActivityHandlers:null,cursorActivityCalled:0,selectionChanged:!1,updateMaxLine:!1,scrollLeft:null,scrollTop:null,scrollToPos:null,focus:!1,id:++Ff};Ta?Ta.ops.push(a.curOp):a.curOp.ownsGroup=Ta={ops:[a.curOp],delayedCallbacks:[]}} -function La(a){if(a=a.curOp.ownsGroup)try{var b=a.delayedCallbacks,c=0;do{for(;c<b.length;c++)b[c]();for(var d=0;d<a.ops.length;d++){var e=a.ops[d];if(e.cursorActivityHandlers)for(;e.cursorActivityCalled<e.cursorActivityHandlers.length;)e.cursorActivityHandlers[e.cursorActivityCalled++](e.cm)}}while(c<b.length)}finally{Ta=null;for(b=0;b<a.ops.length;b++)a.ops[b].cm.curOp=null;a=a.ops;for(b=0;b<a.length;b++){var e=a[b],c=e.cm,f=d=c.display;!f.scrollbarsClipped&&f.scroller.offsetWidth&&(f.nativeBarWidth= -f.scroller.offsetWidth-f.scroller.clientWidth,f.heightForcer.style.height=da(c)+"px",f.sizer.style.marginBottom=-f.nativeBarWidth+"px",f.sizer.style.borderRightWidth=da(c)+"px",f.scrollbarsClipped=!0);e.updateMaxLine&&Dc(c);e.mustUpdate=e.viewChanged||e.forceUpdate||null!=e.scrollTop||e.scrollToPos&&(e.scrollToPos.from.line<d.viewFrom||e.scrollToPos.to.line>=d.viewTo)||d.maxLineChanged&&c.options.lineWrapping;e.update=e.mustUpdate&&new Mb(c,e.mustUpdate&&{top:e.scrollTop,ensure:e.scrollToPos},e.forceUpdate)}for(b= -0;b<a.length;b++)e=a[b],e.updatedDisplay=e.mustUpdate&&Lc(e.cm,e.update);for(b=0;b<a.length;b++)if(e=a[b],c=e.cm,d=c.display,e.updatedDisplay&&Lb(c),e.barMeasure=jb(c),d.maxLineChanged&&!c.options.lineWrapping&&(f=void 0,f=d.maxLine.text.length,f=$c(c,Zb(c,d.maxLine),f,void 0),e.adjustWidthTo=f.left+3,c.display.sizerWidth=e.adjustWidthTo,e.barMeasure.scrollWidth=Math.max(d.scroller.clientWidth,d.sizer.offsetLeft+e.adjustWidthTo+da(c)+c.display.barWidth),e.maxScrollLeft=Math.max(0,d.sizer.offsetLeft+ -e.adjustWidthTo-pa(c))),e.updatedDisplay||e.selectionChanged)e.preparedSelection=d.input.prepareSelection();for(b=0;b<a.length;b++)e=a[b],c=e.cm,null!=e.adjustWidthTo&&(c.display.sizer.style.minWidth=e.adjustWidthTo+"px",e.maxScrollLeft<c.doc.scrollLeft&&Ma(c,Math.min(c.display.scroller.scrollLeft,e.maxScrollLeft),!0),c.display.maxLineChanged=!1),e.preparedSelection&&c.display.input.showSelection(e.preparedSelection),e.updatedDisplay&&Oc(c,e.barMeasure),(e.updatedDisplay||e.startHeight!=c.doc.height)&& -Na(c,e.barMeasure),e.selectionChanged&&Yc(c),c.state.focused&&e.updateInput&&c.display.input.reset(e.typing),e.focus&&e.focus==fa()&&Ud(e.cm);for(b=0;b<a.length;b++){e=a[b];c=e.cm;d=c.display;f=c.doc;e.updatedDisplay&&Md(c,e.update);null==d.wheelStartX||null==e.scrollTop&&null==e.scrollLeft&&!e.scrollToPos||(d.wheelStartX=d.wheelStartY=null);null==e.scrollTop||d.scroller.scrollTop==e.scrollTop&&!e.forceScroll||(f.scrollTop=Math.max(0,Math.min(d.scroller.scrollHeight-d.scroller.clientHeight,e.scrollTop)), -d.scrollbars.setScrollTop(f.scrollTop),d.scroller.scrollTop=f.scrollTop);null==e.scrollLeft||d.scroller.scrollLeft==e.scrollLeft&&!e.forceScroll||(f.scrollLeft=Math.max(0,Math.min(d.scroller.scrollWidth-pa(c),e.scrollLeft)),d.scrollbars.setScrollLeft(f.scrollLeft),d.scroller.scrollLeft=f.scrollLeft,Bc(c));if(e.scrollToPos){var g=void 0,h=w(f,e.scrollToPos.from),g=w(f,e.scrollToPos.to),k=e.scrollToPos.margin;null==k&&(k=0);for(var l=0;5>l;l++){var m=!1,p=ma(c,h),n=g&&g!=h?ma(c,g):p,n=cc(c,Math.min(p.left, -n.left),Math.min(p.top,n.top)-k,Math.max(p.left,n.left),Math.max(p.bottom,n.bottom)+k),q=c.doc.scrollTop,r=c.doc.scrollLeft;null!=n.scrollTop&&(lb(c,n.scrollTop),1<Math.abs(c.doc.scrollTop-q)&&(m=!0));null!=n.scrollLeft&&(Ma(c,n.scrollLeft),1<Math.abs(c.doc.scrollLeft-r)&&(m=!0));if(!m)break}g=p;e.scrollToPos.isCursor&&c.state.focused&&(ja(c,"scrollCursorIntoView")||(k=c.display,l=k.sizer.getBoundingClientRect(),h=null,0>g.top+l.top?h=!0:g.bottom+l.top>(window.innerHeight||document.documentElement.clientHeight)&& -(h=!1),null==h||Gf||(g=t("div","​",null,"position: absolute; top: "+(g.top-k.viewOffset-c.display.lineSpace.offsetTop)+"px; height: "+(g.bottom-g.top+da(c)+k.barHeight)+"px; left: "+g.left+"px; width: 2px;"),c.display.lineSpace.appendChild(g),g.scrollIntoView(h),c.display.lineSpace.removeChild(g))))}h=e.maybeHiddenMarkers;g=e.maybeUnhiddenMarkers;if(h)for(k=0;k<h.length;++k)h[k].lines.length||K(h[k],"hide");if(g)for(k=0;k<g.length;++k)g[k].lines.length&&K(g[k],"unhide");d.wrapper.offsetHeight&&(f.scrollTop= -c.display.scroller.scrollTop);e.changeObjs&&K(c,"changes",c,e.changeObjs);e.update&&e.update.finish()}}}function T(a,b){if(a.curOp)return b();Ja(a);try{return b()}finally{La(a)}}function G(a,b){return function(){if(a.curOp)return b.apply(a,arguments);Ja(a);try{return b.apply(a,arguments)}finally{La(a)}}}function M(a){return function(){if(this.curOp)return a.apply(this,arguments);Ja(this);try{return a.apply(this,arguments)}finally{La(this)}}}function N(a){return function(){var b=this.cm;if(!b||b.curOp)return a.apply(this, -arguments);Ja(b);try{return a.apply(this,arguments)}finally{La(b)}}}function ke(a,b,c){for(var d=this.line=b,e;d=Aa(d,!1);)d=d.find(1,!0).line,(e||(e=[])).push(d);this.size=(this.rest=e)?F(A(this.rest))-c+1:1;this.node=this.text=null;this.hidden=ya(a,b)}function Nb(a,b,c){var d=[],e;for(e=b;e<c;)b=new ke(a.doc,u(a.doc,e),e),e+=b.size,d.push(b);return d}function Q(a,b,c,d){null==b&&(b=a.doc.first);null==c&&(c=a.doc.first+a.doc.size);d||(d=0);var e=a.display;d&&c<e.viewTo&&(null==e.updateLineNumbers|| -e.updateLineNumbers>b)&&(e.updateLineNumbers=b);a.curOp.viewChanged=!0;if(b>=e.viewTo)ra&&Mc(a.doc,b)<e.viewTo&&qa(a);else if(c<=e.viewFrom)ra&&Ld(a.doc,c+d)>e.viewFrom?qa(a):(e.viewFrom+=d,e.viewTo+=d);else if(b<=e.viewFrom&&c>=e.viewTo)qa(a);else if(b<=e.viewFrom){var f=dc(a,c,c+d,1);f?(e.view=e.view.slice(f.index),e.viewFrom=f.lineN,e.viewTo+=d):qa(a)}else if(c>=e.viewTo)(f=dc(a,b,b,-1))?(e.view=e.view.slice(0,f.index),e.viewTo=f.lineN):qa(a);else{var f=dc(a,b,b,-1),g=dc(a,c,c+d,1);f&&g?(e.view= -e.view.slice(0,f.index).concat(Nb(a,f.lineN,g.lineN)).concat(e.view.slice(g.index)),e.viewTo+=d):qa(a)}if(a=e.externalMeasured)c<a.lineN?a.lineN+=d:b<a.lineN+a.size&&(e.externalMeasured=null)}function na(a,b,c){a.curOp.viewChanged=!0;var d=a.display,e=a.display.externalMeasured;e&&b>=e.lineN&&b<e.lineN+e.size&&(d.externalMeasured=null);b<d.viewFrom||b>=d.viewTo||(a=d.view[Ca(a,b)],null!=a.node&&(a=a.changes||(a.changes=[]),-1==D(a,c)&&a.push(c)))}function qa(a){a.display.viewFrom=a.display.viewTo= -a.doc.first;a.display.view=[];a.display.viewOffset=0}function Ca(a,b){if(b>=a.display.viewTo)return null;b-=a.display.viewFrom;if(0>b)return null;for(var c=a.display.view,d=0;d<c.length;d++)if(b-=c[d].size,0>b)return d}function dc(a,b,c,d){var e=Ca(a,b),f=a.display.view;if(!ra||c==a.doc.first+a.doc.size)return{index:e,lineN:c};for(var g=0,h=a.display.viewFrom;g<e;g++)h+=f[g].size;if(h!=b){if(0<d){if(e==f.length-1)return null;b=h+f[e].size-b;e++}else b=h-b;c+=b}for(;Mc(a.doc,c)!=c;){if(e==(0>d?0:f.length- -1))return null;c+=d*f[e-(0>d?1:0)].size;e+=d}return{index:e,lineN:c}}function Kd(a){a=a.display.view;for(var b=0,c=0;c<a.length;c++){var d=a[c];d.hidden||d.node&&!d.changes||++b}return b}function sf(a){function b(){d.activeTouch&&(e=setTimeout(function(){d.activeTouch=null},1E3),f=d.activeTouch,f.end=+new Date)}function c(a,b){if(null==b.left)return!0;var c=b.left-a.left,d=b.top-a.top;return 400<c*c+d*d}var d=a.display;v(d.scroller,"mousedown",G(a,pe));B&&11>C?v(d.scroller,"dblclick",G(a,function(b){if(!ja(a, -b)){var c=Ua(a,b);!c||hd(a,b,"gutterClick",!0,L)||oa(a.display,b)||(O(b),b=a.findWordAt(c),Ub(a.doc,b.anchor,b.head))}})):v(d.scroller,"dblclick",function(b){ja(a,b)||O(b)});id||v(d.scroller,"contextmenu",function(b){qe(a,b)});var e,f={end:0};v(d.scroller,"touchstart",function(a){var b;1!=a.touches.length?b=!1:(b=a.touches[0],b=1>=b.radiusX&&1>=b.radiusY);b||(clearTimeout(e),b=+new Date,d.activeTouch={start:b,moved:!1,prev:300>=b-f.end?f:null},1==a.touches.length&&(d.activeTouch.left=a.touches[0].pageX, -d.activeTouch.top=a.touches[0].pageY))});v(d.scroller,"touchmove",function(){d.activeTouch&&(d.activeTouch.moved=!0)});v(d.scroller,"touchend",function(e){var f=d.activeTouch;if(f&&!oa(d,e)&&null!=f.left&&!f.moved&&300>new Date-f.start){var g=a.coordsChar(d.activeTouch,"page"),f=!f.prev||c(f,f.prev)?new z(g,g):!f.prev.prev||c(f,f.prev.prev)?a.findWordAt(g):new z(r(g.line,0),w(a.doc,r(g.line+1,0)));a.setSelection(f.anchor,f.head);a.focus();O(e)}b()});v(d.scroller,"touchcancel",b);v(d.scroller,"scroll", -function(){d.scroller.clientHeight&&(lb(a,d.scroller.scrollTop),Ma(a,d.scroller.scrollLeft,!0),K(a,"scroll",a))});v(d.scroller,"mousewheel",function(b){re(a,b)});v(d.scroller,"DOMMouseScroll",function(b){re(a,b)});v(d.wrapper,"scroll",function(){d.wrapper.scrollTop=d.wrapper.scrollLeft=0});d.dragFunctions={simple:function(b){ja(a,b)||jd(b)},start:function(b){if(B&&(!a.state.draggingText||100>+new Date-se))jd(b);else if(!ja(a,b)&&!oa(a.display,b)&&(b.dataTransfer.setData("Text",a.getSelection()),b.dataTransfer.setDragImage&& -!te)){var c=t("img",null,null,"position: fixed; left: 0; top: 0;");c.src="data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw\x3d\x3d";ba&&(c.width=c.height=1,a.display.wrapper.appendChild(c),c._top=c.offsetTop);b.dataTransfer.setDragImage(c,0,0);ba&&c.parentNode.removeChild(c)}},drop:G(a,Hf)};var g=d.input.getField();v(g,"keyup",function(b){ue.call(a,b)});v(g,"keydown",G(a,ve));v(g,"keypress",G(a,we));v(g,"focus",cb(xc,a));v(g,"blur",cb(db,a))}function If(a){var b=a.display; -if(b.lastWrapHeight!=b.wrapper.clientHeight||b.lastWrapWidth!=b.wrapper.clientWidth)b.cachedCharWidth=b.cachedTextHeight=b.cachedPaddingH=null,b.scrollbarsClipped=!1,a.setSize()}function oa(a,b){for(var c=b.target||b.srcElement;c!=a.wrapper;c=c.parentNode)if(!c||1==c.nodeType&&"true"==c.getAttribute("cm-ignore-events")||c.parentNode==a.sizer&&c!=a.mover)return!0}function Ua(a,b,c,d){var e=a.display;if(!c&&"true"==(b.target||b.srcElement).getAttribute("cm-not-content"))return null;var f,g;c=e.lineSpace.getBoundingClientRect(); -try{f=b.clientX-c.left,g=b.clientY-c.top}catch(h){return null}b=fd(a,f,g);var k;d&&1==b.xRel&&(k=u(a.doc,b.line).text).length==b.ch&&(d=aa(k,k.length,a.options.tabSize)-k.length,b=r(b.line,Math.max(0,Math.round((f-ie(a.display).left)/gb(a.display))-d)));return b}function pe(a){var b=this.display;if(!(b.activeTouch&&b.input.supportsTouch()||ja(this,a)))if(b.shift=a.shiftKey,oa(b,a))J||(b.scroller.draggable=!1,setTimeout(function(){b.scroller.draggable=!0},100));else if(!hd(this,a,"gutterClick",!0, -L)){var c=Ua(this,a);window.focus();switch(xe(a)){case 1:c?Jf(this,a,c):(a.target||a.srcElement)==b.scroller&&O(a);break;case 2:J&&(this.state.lastMiddleDown=+new Date);c&&Ub(this.doc,c);setTimeout(function(){b.input.focus()},20);O(a);break;case 3:id?qe(this,a):Kf(this)}}}function Jf(a,b,c){B?setTimeout(cb(Ud,a),0):a.curOp.focus=fa();var d=+new Date,e;ec&&ec.time>d-400&&0==y(ec.pos,c)?e="triple":fc&&fc.time>d-400&&0==y(fc.pos,c)?(e="double",ec={time:d,pos:c}):(e="single",fc={time:d,pos:c});var d= -a.doc.sel,f=W?b.metaKey:b.ctrlKey,g;a.options.dragDrop&&Lf&&!Rb(a)&&"single"==e&&-1<(g=d.contains(c))&&!d.ranges[g].empty()?Mf(a,b,c,f):Nf(a,b,c,e,f)}function Mf(a,b,c,d){var e=a.display,f=+new Date,g=G(a,function(h){J&&(e.scroller.draggable=!1);a.state.draggingText=!1;ka(document,"mouseup",g);ka(e.scroller,"drop",g);10>Math.abs(b.clientX-h.clientX)+Math.abs(b.clientY-h.clientY)&&(O(h),!d&&+new Date-200<f&&Ub(a.doc,c),J||B&&9==C?setTimeout(function(){document.body.focus();e.input.focus()},20):e.input.focus())}); -J&&(e.scroller.draggable=!0);a.state.draggingText=g;e.scroller.dragDrop&&e.scroller.dragDrop();v(document,"mouseup",g);v(e.scroller,"drop",g)}function Nf(a,b,c,d,e){function f(b){if(0!=y(x,b))if(x=b,"rect"==d){for(var e=[],f=a.options.tabSize,g=aa(u(l,c.line).text,c.ch,f),h=aa(u(l,b.line).text,b.ch,f),k=Math.min(g,h),g=Math.max(g,h),h=Math.min(c.line,b.line),q=Math.min(a.lastLine(),Math.max(c.line,b.line));h<=q;h++){var E=u(l,h).text,t=ye(E,k,f);k==g?e.push(new z(r(h,t),r(h,t))):E.length>t&&e.push(new z(r(h, -t),r(h,ye(E,g,f))))}e.length||e.push(new z(c,c));H(l,Z(n.ranges.slice(0,p).concat(e),p),{origin:"*mouse",scroll:!1});a.scrollIntoView(b)}else e=m,f=e.anchor,k=b,"single"!=d&&(b="double"==d?a.findWordAt(b):new z(r(b.line,0),w(l,r(b.line+1,0))),0<y(b.anchor,f)?(k=b.head,f=Qb(e.from(),b.anchor)):(k=b.anchor,f=Pb(e.to(),b.head))),e=n.ranges.slice(0),e[p]=new z(w(l,f),k),H(l,Z(e,p),kd)}function g(b){var c=++A,e=Ua(a,b,!0,"rect"==d);if(e)if(0!=y(e,x)){a.curOp.focus=fa();f(e);var h=Hc(k,l);(e.line>=h.to|| -e.line<h.from)&&setTimeout(G(a,function(){A==c&&g(b)}),150)}else{var m=b.clientY<B.top?-20:b.clientY>B.bottom?20:0;m&&setTimeout(G(a,function(){A==c&&(k.scroller.scrollTop+=m,g(b))}),50)}}function h(a){A=Infinity;O(a);k.input.focus();ka(document,"mousemove",F);ka(document,"mouseup",C);l.history.lastSelOrigin=null}var k=a.display,l=a.doc;O(b);var m,p,n=l.sel,q=n.ranges;e&&!b.shiftKey?(p=l.sel.contains(c),m=-1<p?q[p]:new z(c,c)):(m=l.sel.primary(),p=l.sel.primIndex);if(b.altKey)d="rect",e||(m=new z(c, -c)),c=Ua(a,b,!0,!0),p=-1;else if("double"==d){var t=a.findWordAt(c);m=a.display.shift||l.extend?rb(l,m,t.anchor,t.head):t}else"triple"==d?(t=new z(r(c.line,0),w(l,r(c.line+1,0))),m=a.display.shift||l.extend?rb(l,m,t.anchor,t.head):t):m=rb(l,m,c);e?-1==p?(p=q.length,H(l,Z(q.concat([m]),p),{scroll:!1,origin:"*mouse"})):1<q.length&&q[p].empty()&&"single"==d&&!b.shiftKey?(H(l,Z(q.slice(0,p).concat(q.slice(p+1)),0)),n=l.sel):Xc(l,p,m,kd):(p=0,H(l,new la([m],0),kd),n=l.sel);var x=c,B=k.wrapper.getBoundingClientRect(), -A=0,F=G(a,function(a){xe(a)?g(a):h(a)}),C=G(a,h);v(document,"mousemove",F);v(document,"mouseup",C)}function hd(a,b,c,d,e){try{var f=b.clientX,g=b.clientY}catch(h){return!1}if(f>=Math.floor(a.display.gutters.getBoundingClientRect().right))return!1;d&&O(b);d=a.display;var k=d.lineDiv.getBoundingClientRect();if(g>k.bottom||!S(a,c))return ld(b);g-=k.top-d.viewOffset;for(k=0;k<a.options.gutters.length;++k){var l=d.gutters.childNodes[k];if(l&&l.getBoundingClientRect().right>=f)return f=Ba(a.doc,g),e(a, -c,a,f,a.options.gutters[k],b),ld(b)}}function Hf(a){var b=this;if(!ja(b,a)&&!oa(b.display,a)){O(a);B&&(se=+new Date);var c=Ua(b,a,!0),d=a.dataTransfer.files;if(c&&!Rb(b))if(d&&d.length&&window.FileReader&&window.File){var e=d.length,f=Array(e),g=0;a=function(a,d){var h=new FileReader;h.onload=G(b,function(){f[d]=h.result;if(++g==e){c=w(b.doc,c);var a={from:c,to:c,text:sa(f.join("\n")),origin:"paste"};Oa(b.doc,a);be(b.doc,ga(c,ta(a)))}});h.readAsText(a)};for(var h=0;h<e;++h)a(d[h],h)}else if(b.state.draggingText&& --1<b.doc.sel.contains(c))b.state.draggingText(a),setTimeout(function(){b.display.input.focus()},20);else try{if(f=a.dataTransfer.getData("Text")){if(b.state.draggingText&&(W?!a.altKey:!a.ctrlKey))var k=b.listSelections();Vb(b.doc,ga(c,c));if(k)for(h=0;h<k.length;++h)wb(b.doc,"",k[h].anchor,k[h].head,"drag");b.replaceSelection(f,"around","paste");b.display.input.focus()}}catch(l){}}}function lb(a,b){2>Math.abs(a.doc.scrollTop-b)||(a.doc.scrollTop=b,wa||Pc(a,{top:b}),a.display.scroller.scrollTop!=b&& -(a.display.scroller.scrollTop=b),a.display.scrollbars.setScrollTop(b),wa&&Pc(a),fb(a,100))}function Ma(a,b,c){(c?b==a.doc.scrollLeft:2>Math.abs(a.doc.scrollLeft-b))||(b=Math.min(b,a.display.scroller.scrollWidth-a.display.scroller.clientWidth),a.doc.scrollLeft=b,Bc(a),a.display.scroller.scrollLeft!=b&&(a.display.scroller.scrollLeft=b),a.display.scrollbars.setScrollLeft(b))}function re(a,b){var c=ze(b),d=c.x,c=c.y,e=a.display,f=e.scroller;if(d&&f.scrollWidth>f.clientWidth||c&&f.scrollHeight>f.clientHeight){if(c&& -W&&J){var g=b.target,h=e.view;a:for(;g!=f;g=g.parentNode)for(var k=0;k<h.length;k++)if(h[k].node==g){a.display.currentWheelTarget=g;break a}}!d||wa||ba||null==R?(c&&null!=R&&(g=c*R,h=a.doc.scrollTop,k=h+e.wrapper.clientHeight,0>g?h=Math.max(0,h+g-50):k=Math.min(a.doc.height,k+g+50),Pc(a,{top:h,bottom:k})),20>gc&&(null==e.wheelStartX?(e.wheelStartX=f.scrollLeft,e.wheelStartY=f.scrollTop,e.wheelDX=d,e.wheelDY=c,setTimeout(function(){if(null!=e.wheelStartX){var a=f.scrollLeft-e.wheelStartX,b=f.scrollTop- -e.wheelStartY,a=b&&e.wheelDY&&b/e.wheelDY||a&&e.wheelDX&&a/e.wheelDX;e.wheelStartX=e.wheelStartY=null;a&&(R=(R*gc+a)/(gc+1),++gc)}},200)):(e.wheelDX+=d,e.wheelDY+=c))):(c&&lb(a,Math.max(0,Math.min(f.scrollTop+c*R,f.scrollHeight-f.clientHeight))),Ma(a,Math.max(0,Math.min(f.scrollLeft+d*R,f.scrollWidth-f.clientWidth))),O(b),e.wheelStartX=null)}}function hc(a,b,c){if("string"==typeof b&&(b=ic[b],!b))return!1;a.display.input.ensurePolled();var d=a.display.shift,e=!1;try{Rb(a)&&(a.state.suppressEdits= -!0),c&&(a.display.shift=!1),e=b(a)!=Ae}finally{a.display.shift=d,a.state.suppressEdits=!1}return e}function Of(a,b,c){for(var d=0;d<a.state.keyMaps.length;d++){var e=xb(b,a.state.keyMaps[d],c,a);if(e)return e}return a.options.extraKeys&&xb(b,a.options.extraKeys,c,a)||xb(b,a.options.keyMap,c,a)}function jc(a,b,c,d){var e=a.state.keySeq;if(e){if(Pf(b))return"handled";Qf.set(50,function(){a.state.keySeq==e&&(a.state.keySeq=null,a.display.input.reset())});b=e+" "+b}d=Of(a,b,d);"multi"==d&&(a.state.keySeq= -b);"handled"==d&&L(a,"keyHandled",a,b,c);if("handled"==d||"multi"==d)O(c),Yc(a);return e&&!d&&/\'$/.test(b)?(O(c),!0):!!d}function Be(a,b){var c=Rf(b,!0);return c?b.shiftKey&&!a.state.keySeq?jc(a,"Shift-"+c,b,function(b){return hc(a,b,!0)})||jc(a,c,b,function(b){if("string"==typeof b?/^go[A-Z]/.test(b):b.motion)return hc(a,b)}):jc(a,c,b,function(b){return hc(a,b)}):!1}function Sf(a,b,c){return jc(a,"'"+c+"'",b,function(b){return hc(a,b,!0)})}function ve(a){this.curOp.focus=fa();if(!ja(this,a)){B&& -11>C&&27==a.keyCode&&(a.returnValue=!1);var b=a.keyCode;this.display.shift=16==b||a.shiftKey;var c=Be(this,a);ba&&(md=c?b:null,!c&&88==b&&!Ce&&(W?a.metaKey:a.ctrlKey)&&this.replaceSelection("",null,"cut"));18!=b||/\bCodeMirror-crosshair\b/.test(this.display.lineDiv.className)||Tf(this)}}function Tf(a){function b(a){18!=a.keyCode&&a.altKey||(kb(c,"CodeMirror-crosshair"),ka(document,"keyup",b),ka(document,"mouseover",b))}var c=a.display.lineDiv;mb(c,"CodeMirror-crosshair");v(document,"keyup",b);v(document, -"mouseover",b)}function ue(a){16==a.keyCode&&(this.doc.sel.shift=!1);ja(this,a)}function we(a){if(!(oa(this.display,a)||ja(this,a)||a.ctrlKey&&!a.altKey||W&&a.metaKey)){var b=a.keyCode,c=a.charCode;if(ba&&b==md)md=null,O(a);else if(!ba||a.which&&!(10>a.which)||!Be(this,a))if(b=String.fromCharCode(null==c?b:c),!Sf(this,a,b))this.display.input.onKeyPress(a)}}function Kf(a){a.state.delayingBlurEvent=!0;setTimeout(function(){a.state.delayingBlurEvent&&(a.state.delayingBlurEvent=!1,db(a))},100)}function xc(a){a.state.delayingBlurEvent&& -(a.state.delayingBlurEvent=!1);"nocursor"!=a.options.readOnly&&(a.state.focused||(K(a,"focus",a),a.state.focused=!0,mb(a.display.wrapper,"CodeMirror-focused"),a.curOp||a.display.selForContextMenu==a.doc.sel||(a.display.input.reset(),J&&setTimeout(function(){a.display.input.reset(!0)},20)),a.display.input.receivedFocus()),Yc(a))}function db(a){a.state.delayingBlurEvent||(a.state.focused&&(K(a,"blur",a),a.state.focused=!1,kb(a.display.wrapper,"CodeMirror-focused")),clearInterval(a.display.blinker), -setTimeout(function(){a.state.focused||(a.display.shift=!1)},150))}function qe(a,b){var c;(c=oa(a.display,b))||(c=S(a,"gutterContextMenu")?hd(a,b,"gutterContextMenu",!1,K):!1);if(!c)a.display.input.onContextMenu(b)}function De(a,b){if(0>y(a,b.from))return a;if(0>=y(a,b.to))return ta(b);var c=a.line+b.text.length-(b.to.line-b.from.line)-1,d=a.ch;a.line==b.to.line&&(d+=ta(b).ch-b.to.ch);return r(c,d)}function nd(a,b){for(var c=[],d=0;d<a.sel.ranges.length;d++){var e=a.sel.ranges[d];c.push(new z(De(e.anchor, -b),De(e.head,b)))}return Z(c,a.sel.primIndex)}function Ee(a,b,c){return a.line==b.line?r(c.line,a.ch-b.ch+c.ch):r(c.line+(a.line-b.line),a.ch)}function Fe(a,b,c){b={canceled:!1,from:b.from,to:b.to,text:b.text,origin:b.origin,cancel:function(){this.canceled=!0}};c&&(b.update=function(b,c,f,g){b&&(this.from=w(a,b));c&&(this.to=w(a,c));f&&(this.text=f);void 0!==g&&(this.origin=g)});K(a,"beforeChange",a,b);a.cm&&K(a.cm,"beforeChange",a.cm,b);return b.canceled?null:{from:b.from,to:b.to,text:b.text,origin:b.origin}} -function Oa(a,b,c){if(a.cm){if(!a.cm.curOp)return G(a.cm,Oa)(a,b,c);if(a.cm.state.suppressEdits)return}if(S(a,"beforeChange")||a.cm&&S(a.cm,"beforeChange"))if(b=Fe(a,b,!0),!b)return;if(c=Ge&&!c&&Uf(a,b.from,b.to))for(var d=c.length-1;0<=d;--d)He(a,{from:c[d].from,to:c[d].to,text:d?[""]:b.text});else He(a,b)}function He(a,b){if(1!=b.text.length||""!=b.text[0]||0!=y(b.from,b.to)){var c=nd(a,b);Ie(a,b,c,a.cm?a.cm.curOp.id:NaN);yb(a,b,c,od(a,b));var d=[];Ga(a,function(a,c){c||-1!=D(d,a.history)||(Je(a.history, -b),d.push(a.history));yb(a,b,null,od(a,b))})}}function kc(a,b,c){if(!a.cm||!a.cm.state.suppressEdits){for(var d=a.history,e,f=a.sel,g="undo"==b?d.done:d.undone,h="undo"==b?d.undone:d.done,k=0;k<g.length&&(e=g[k],c?!e.ranges||e.equals(a.sel):e.ranges);k++);if(k!=g.length){for(d.lastOrigin=d.lastSelOrigin=null;;)if(e=g.pop(),e.ranges){Wb(e,h);if(c&&!e.equals(a.sel)){H(a,e,{clearRedo:!1});return}f=e}else break;c=[];Wb(f,h);h.push({changes:c,generation:d.generation});d.generation=e.generation||++d.maxGeneration; -d=S(a,"beforeChange")||a.cm&&S(a.cm,"beforeChange");for(k=e.changes.length-1;0<=k;--k){var l=e.changes[k];l.origin=b;if(d&&!Fe(a,l,!1)){g.length=0;break}c.push(pd(a,l));f=k?nd(a,l):A(g);yb(a,l,f,Ke(a,l));!k&&a.cm&&a.cm.scrollIntoView({from:l.from,to:ta(l)});var m=[];Ga(a,function(a,b){b||-1!=D(m,a.history)||(Je(a.history,l),m.push(a.history));yb(a,l,null,Ke(a,l))})}}}}function Le(a,b){if(0!=b&&(a.first+=b,a.sel=new la(ob(a.sel.ranges,function(a){return new z(r(a.anchor.line+b,a.anchor.ch),r(a.head.line+ -b,a.head.ch))}),a.sel.primIndex),a.cm)){Q(a.cm,a.first,a.first-b,b);for(var c=a.cm.display,d=c.viewFrom;d<c.viewTo;d++)na(a.cm,d,"gutter")}}function yb(a,b,c,d){if(a.cm&&!a.cm.curOp)return G(a.cm,yb)(a,b,c,d);if(b.to.line<a.first)Le(a,b.text.length-1-(b.to.line-b.from.line));else if(!(b.from.line>a.lastLine())){if(b.from.line<a.first){var e=b.text.length-1-(a.first-b.from.line);Le(a,e);b={from:r(a.first,0),to:r(b.to.line+e,b.to.ch),text:[A(b.text)],origin:b.origin}}e=a.lastLine();b.to.line>e&&(b= -{from:b.from,to:r(e,u(a,e).text.length),text:[b.text[0]],origin:b.origin});b.removed=Da(a,b.from,b.to);c||(c=nd(a,b));a.cm?Vf(a.cm,b,d):qd(a,b,d);Vb(a,c,ha)}}function Vf(a,b,c){var d=a.doc,e=a.display,f=b.from,g=b.to,h=!1,k=f.line;a.options.lineWrapping||(k=F(ia(u(d,f.line))),d.iter(k,g.line+1,function(a){if(a==e.maxLine)return h=!0}));-1<d.sel.contains(b.from,b.to)&&fe(a);qd(d,b,c,Id(a));a.options.lineWrapping||(d.iter(k,f.line+b.text.length,function(a){var b=Kb(a);b>e.maxLineLength&&(e.maxLine= -a,e.maxLineLength=b,e.maxLineChanged=!0,h=!1)}),h&&(a.curOp.updateMaxLine=!0));d.frontier=Math.min(d.frontier,f.line);fb(a,400);c=b.text.length-(g.line-f.line)-1;b.full?Q(a):f.line!=g.line||1!=b.text.length||Me(a.doc,b)?Q(a,f.line,g.line+1,c):na(a,f.line,"text");c=S(a,"changes");if((d=S(a,"change"))||c)b={from:f,to:g,text:b.text,removed:b.removed,origin:b.origin},d&&L(a,"change",a,b),c&&(a.curOp.changeObjs||(a.curOp.changeObjs=[])).push(b);a.display.selForContextMenu=null}function wb(a,b,c,d,e){d|| -(d=c);if(0>y(d,c)){var f=d;d=c;c=f}"string"==typeof b&&(b=sa(b));Oa(a,{from:c,to:d,text:b,origin:e})}function cc(a,b,c,d,e){var f=a.display,g=xa(a.display);0>c&&(c=0);var h=a.curOp&&null!=a.curOp.scrollTop?a.curOp.scrollTop:f.scroller.scrollTop,k=Nc(a),l={};e-c>k&&(e=c+k);var m=a.doc.height+Ec(f),p=c<g,g=e>m-g;c<h?l.scrollTop=p?0:c:e>h+k&&(c=Math.min(c,(g?m:e)-k),c!=h&&(l.scrollTop=c));h=a.curOp&&null!=a.curOp.scrollLeft?a.curOp.scrollLeft:f.scroller.scrollLeft;a=pa(a)-(a.options.fixedGutter?f.gutters.offsetWidth: -0);(f=d-b>a)&&(d=b+a);10>b?l.scrollLeft=0:b<h?l.scrollLeft=Math.max(0,b-(f?0:10)):d>a+h-3&&(l.scrollLeft=d+(f?0:10)-a);return l}function lc(a,b,c){null==b&&null==c||mc(a);null!=b&&(a.curOp.scrollLeft=(null==a.curOp.scrollLeft?a.doc.scrollLeft:a.curOp.scrollLeft)+b);null!=c&&(a.curOp.scrollTop=(null==a.curOp.scrollTop?a.doc.scrollTop:a.curOp.scrollTop)+c)}function Pa(a){mc(a);var b=a.getCursor(),c=b,d=b;a.options.lineWrapping||(c=b.ch?r(b.line,b.ch-1):b,d=r(b.line,b.ch+1));a.curOp.scrollToPos={from:c, -to:d,margin:a.options.cursorScrollMargin,isCursor:!0}}function mc(a){var b=a.curOp.scrollToPos;if(b){a.curOp.scrollToPos=null;var c=oe(a,b.from),d=oe(a,b.to),b=cc(a,Math.min(c.left,d.left),Math.min(c.top,d.top)-b.margin,Math.max(c.right,d.right),Math.max(c.bottom,d.bottom)+b.margin);a.scrollTo(b.scrollLeft,b.scrollTop)}}function pb(a,b,c,d){var e=a.doc,f;null==c&&(c="add");"smart"==c&&(e.mode.indent?f=sb(a,b):c="prev");var g=a.options.tabSize,h=u(e,b),k=aa(h.text,null,g);h.stateAfter&&(h.stateAfter= -null);var l=h.text.match(/^\s*/)[0],m;if(!d&&!/\S/.test(h.text))m=0,c="not";else if("smart"==c&&(m=e.mode.indent(f,h.text.slice(l.length),h.text),m==Ae||150<m)){if(!d)return;c="prev"}"prev"==c?m=b>e.first?aa(u(e,b-1).text,null,g):0:"add"==c?m=k+a.options.indentUnit:"subtract"==c?m=k-a.options.indentUnit:"number"==typeof c&&(m=k+c);m=Math.max(0,m);c="";d=0;if(a.options.indentWithTabs)for(a=Math.floor(m/g);a;--a)d+=g,c+="\t";d<m&&(c+=Ne(m-d));if(c!=l)return wb(e,c,r(b,0),r(b,l.length),"+input"),h.stateAfter= -null,!0;for(a=0;a<e.sel.ranges.length;a++)if(g=e.sel.ranges[a],g.head.line==b&&g.head.ch<l.length){d=r(b,l.length);Xc(e,a,new z(d,d));break}}function nc(a,b,c,d){var e=b,f=b;"number"==typeof b?f=u(a,Math.max(a.first,Math.min(b,a.first+a.size-1))):e=F(b);if(null==e)return null;d(f,e)&&a.cm&&na(a.cm,e,c);return f}function Va(a,b){for(var c=a.doc.sel.ranges,d=[],e=0;e<c.length;e++){for(var f=b(c[e]);d.length&&0>=y(f.from,A(d).to);){var g=d.pop();if(0>y(g.from,f.from)){f.from=g.from;break}}d.push(f)}T(a, -function(){for(var b=d.length-1;0<=b;b--)wb(a.doc,"",d[b].from,d[b].to,"+delete");Pa(a)})}function rd(a,b,c,d,e){function f(b){var d=(e?gd:Oe)(l,h,c,!0);if(null==d){if(b=!b)b=g+c,b<a.first||b>=a.first+a.size?b=m=!1:(g=b,b=l=u(a,b));if(b)h=e?(0>c?bc:ac)(l):0>c?l.text.length:0;else return m=!1}else h=d;return!0}var g=b.line,h=b.ch,k=c,l=u(a,g),m=!0;if("char"==d)f();else if("column"==d)f(!0);else if("word"==d||"group"==d){var p=null;d="group"==d;b=a.cm&&a.cm.getHelper(b,"wordChars");for(var n=!0;!(0> -c)||f(!n);n=!1){var q=l.text.charAt(h)||"\n",q=oc(q,b)?"w":d&&"\n"==q?"n":!d||/\s/.test(q)?null:"p";!d||n||q||(q="s");if(p&&p!=q){0>c&&(c=1,f());break}q&&(p=q);if(0<c&&!f(!n))break}}k=Xb(a,r(g,h),k,!0);m||(k.hitSide=!0);return k}function Pe(a,b,c,d){var e=a.doc,f=b.left,g;"page"==d?(g=Math.min(a.display.wrapper.clientHeight,window.innerHeight||document.documentElement.clientHeight),g=b.top+c*(g-(0>c?1.5:.5)*xa(a.display))):"line"==d&&(g=0<c?b.bottom+3:b.top-3);for(;;){b=fd(a,f,g);if(!b.outside)break; -if(0>c?0>=g:g>=e.height){b.hitSide=!0;break}g+=5*c}return b}function x(a,b,c,d){q.defaults[a]=b;c&&(Ka[a]=d?function(a,b,d){d!=Fd&&c(a,b,d)}:c)}function Wf(a){var b=a.split(/-(?!$)/);a=b[b.length-1];for(var c,d,e,f,g=0;g<b.length-1;g++){var h=b[g];if(/^(cmd|meta|m)$/i.test(h))f=!0;else if(/^a(lt)?$/i.test(h))c=!0;else if(/^(c|ctrl|control)$/i.test(h))d=!0;else if(/^s(hift)$/i.test(h))e=!0;else throw Error("Unrecognized modifier name: "+h);}c&&(a="Alt-"+a);d&&(a="Ctrl-"+a);f&&(a="Cmd-"+a);e&&(a="Shift-"+ -a);return a}function pc(a){return"string"==typeof a?ua[a]:a}function Wa(a,b,c,d,e){if(d&&d.shared)return Xf(a,b,c,d,e);if(a.cm&&!a.cm.curOp)return G(a.cm,Wa)(a,b,c,d,e);var f=new Ha(a,e);e=y(b,c);d&&V(d,f,!1);if(0<e||0==e&&!1!==f.clearWhenEmpty)return f;f.replacedWith&&(f.collapsed=!0,f.widgetNode=t("span",[f.replacedWith],"CodeMirror-widget"),d.handleMouseEvents||f.widgetNode.setAttribute("cm-ignore-events","true"),d.insertLeft&&(f.widgetNode.insertLeft=!0));if(f.collapsed){if(Qe(a,b.line,b,c,f)|| -b.line!=c.line&&Qe(a,c.line,b,c,f))throw Error("Inserting collapsed marker partially overlapping an existing one");ra=!0}f.addToHistory&&Ie(a,{from:b,to:c,origin:"markText"},a.sel,NaN);var g=b.line,h=a.cm,k;a.iter(g,c.line+1,function(a){h&&f.collapsed&&!h.options.lineWrapping&&ia(a)==h.display.maxLine&&(k=!0);f.collapsed&&g!=b.line&&ca(a,0);var d=new qc(f,g==b.line?b.ch:null,g==c.line?c.ch:null);a.markedSpans=a.markedSpans?a.markedSpans.concat([d]):[d];d.marker.attachLine(a);++g});f.collapsed&&a.iter(b.line, -c.line+1,function(b){ya(a,b)&&ca(b,0)});f.clearOnEnter&&v(f,"beforeCursorEnter",function(){f.clear()});f.readOnly&&(Ge=!0,(a.history.done.length||a.history.undone.length)&&a.clearHistory());f.collapsed&&(f.id=++sd,f.atomic=!0);if(h){k&&(h.curOp.updateMaxLine=!0);if(f.collapsed)Q(h,b.line,c.line+1);else if(f.className||f.title||f.startStyle||f.endStyle||f.css)for(d=b.line;d<=c.line;d++)na(h,d,"text");f.atomic&&ge(h.doc);L(h,"markerAdded",h,f)}return f}function Xf(a,b,c,d,e){d=V(d);d.shared=!1;var f= -[Wa(a,b,c,d,e)],g=f[0],h=d.widgetNode;Ga(a,function(a){h&&(d.widgetNode=h.cloneNode(!0));f.push(Wa(a,w(a,b),w(a,c),d,e));for(var l=0;l<a.linked.length;++l)if(a.linked[l].isParent)return;g=A(f)});return new rc(f,g)}function Re(a){return a.findMarks(r(a.first,0),a.clipPos(r(a.lastLine())),function(a){return a.parent})}function Yf(a){for(var b=0;b<a.length;b++){var c=a[b],d=[c.primary.doc];Ga(c.primary.doc,function(a){d.push(a)});for(var e=0;e<c.markers.length;e++){var f=c.markers[e];-1==D(d,f.doc)&& -(f.parent=null,c.markers.splice(e--,1))}}}function qc(a,b,c){this.marker=a;this.from=b;this.to=c}function zb(a,b){if(a)for(var c=0;c<a.length;++c){var d=a[c];if(d.marker==b)return d}}function od(a,b){if(b.full)return null;var c=qb(a,b.from.line)&&u(a,b.from.line).markedSpans,d=qb(a,b.to.line)&&u(a,b.to.line).markedSpans;if(!c&&!d)return null;var e=b.from.ch,f=b.to.ch,g=0==y(b.from,b.to);if(c)for(var h=0,k;h<c.length;++h){var l=c[h],m=l.marker;if(null==l.from||(m.inclusiveLeft?l.from<=e:l.from<e)|| -!(l.from!=e||"bookmark"!=m.type||g&&l.marker.insertLeft)){var p=null==l.to||(m.inclusiveRight?l.to>=e:l.to>e);(k||(k=[])).push(new qc(m,l.from,p?null:l.to))}}c=k;if(d)for(var h=0,n;h<d.length;++h)if(k=d[h],l=k.marker,null==k.to||(l.inclusiveRight?k.to>=f:k.to>f)||k.from==f&&"bookmark"==l.type&&(!g||k.marker.insertLeft))m=null==k.from||(l.inclusiveLeft?k.from<=f:k.from<f),(n||(n=[])).push(new qc(l,m?null:k.from-f,null==k.to?null:k.to-f));d=n;g=1==b.text.length;n=A(b.text).length+(g?e:0);if(c)for(f= -0;f<c.length;++f)if(h=c[f],null==h.to)(k=zb(d,h.marker),k)?g&&(h.to=null==k.to?null:k.to+n):h.to=e;if(d)for(f=0;f<d.length;++f)h=d[f],null!=h.to&&(h.to+=n),null==h.from?(k=zb(c,h.marker),k||(h.from=n,g&&(c||(c=[])).push(h))):(h.from+=n,g&&(c||(c=[])).push(h));c&&(c=Se(c));d&&d!=c&&(d=Se(d));e=[c];if(!g){var g=b.text.length-2,q;if(0<g&&c)for(f=0;f<c.length;++f)null==c[f].to&&(q||(q=[])).push(new qc(c[f].marker,null,null));for(f=0;f<g;++f)e.push(q);e.push(d)}return e}function Se(a){for(var b=0;b<a.length;++b){var c= -a[b];null!=c.from&&c.from==c.to&&!1!==c.marker.clearWhenEmpty&&a.splice(b--,1)}return a.length?a:null}function Ke(a,b){var c;if(c=b["spans_"+a.id]){for(var d=0,e=[];d<b.text.length;++d)e.push(Zf(c[d]));c=e}else c=null;d=od(a,b);if(!c)return d;if(!d)return c;for(e=0;e<c.length;++e){var f=c[e],g=d[e];if(f&&g){var h=0;a:for(;h<g.length;++h){for(var k=g[h],l=0;l<f.length;++l)if(f[l].marker==k.marker)continue a;f.push(k)}}else g&&(c[e]=g)}return c}function Uf(a,b,c){var d=null;a.iter(b.line,c.line+1,function(a){if(a.markedSpans)for(var b= -0;b<a.markedSpans.length;++b){var c=a.markedSpans[b].marker;!c.readOnly||d&&-1!=D(d,c)||(d||(d=[])).push(c)}});if(!d)return null;a=[{from:b,to:c}];for(b=0;b<d.length;++b){c=d[b];for(var e=c.find(0),f=0;f<a.length;++f){var g=a[f];if(!(0>y(g.to,e.from)||0<y(g.from,e.to))){var h=[f,1],k=y(g.from,e.from),l=y(g.to,e.to);(0>k||!c.inclusiveLeft&&!k)&&h.push({from:g.from,to:e.from});(0<l||!c.inclusiveRight&&!l)&&h.push({from:e.to,to:g.to});a.splice.apply(a,h);f+=h.length-1}}}return a}function Te(a){var b= -a.markedSpans;if(b){for(var c=0;c<b.length;++c)b[c].marker.detachLine(a);a.markedSpans=null}}function Ue(a,b){if(b){for(var c=0;c<b.length;++c)b[c].marker.attachLine(a);a.markedSpans=b}}function Ve(a,b){var c=a.lines.length-b.lines.length;if(0!=c)return c;var c=a.find(),d=b.find(),e=y(c.from,d.from)||(a.inclusiveLeft?-1:0)-(b.inclusiveLeft?-1:0);return e?-e:(c=y(c.to,d.to)||(a.inclusiveRight?1:0)-(b.inclusiveRight?1:0))?c:b.id-a.id}function Aa(a,b){var c=ra&&a.markedSpans,d;if(c)for(var e,f=0;f<c.length;++f)e= -c[f],e.marker.collapsed&&null==(b?e.from:e.to)&&(!d||0>Ve(d,e.marker))&&(d=e.marker);return d}function Qe(a,b,c,d,e){a=u(a,b);if(a=ra&&a.markedSpans)for(b=0;b<a.length;++b){var f=a[b];if(f.marker.collapsed){var g=f.marker.find(0),h=y(g.from,c)||(f.marker.inclusiveLeft?-1:0)-(e.inclusiveLeft?-1:0),k=y(g.to,d)||(f.marker.inclusiveRight?1:0)-(e.inclusiveRight?1:0);if(!(0<=h&&0>=k||0>=h&&0<=k)&&(0>=h&&(0<y(g.to,c)||f.marker.inclusiveRight&&e.inclusiveLeft)||0<=h&&(0>y(g.from,d)||f.marker.inclusiveLeft&& -e.inclusiveRight)))return!0}}}function ia(a){for(var b;b=Aa(a,!0);)a=b.find(-1,!0).line;return a}function Mc(a,b){var c=u(a,b),d=ia(c);return c==d?b:F(d)}function Ld(a,b){if(b>a.lastLine())return b;var c=u(a,b),d;if(!ya(a,c))return b;for(;d=Aa(c,!1);)c=d.find(1,!0).line;return F(c)+1}function ya(a,b){var c=ra&&b.markedSpans;if(c)for(var d,e=0;e<c.length;++e)if(d=c[e],d.marker.collapsed&&(null==d.from||!d.marker.widgetNode&&0==d.from&&d.marker.inclusiveLeft&&td(a,b,d)))return!0}function td(a,b,c){if(null== -c.to)return b=c.marker.find(1,!0),td(a,b.line,zb(b.line.markedSpans,c.marker));if(c.marker.inclusiveRight&&c.to==b.text.length)return!0;for(var d,e=0;e<b.markedSpans.length;++e)if(d=b.markedSpans[e],d.marker.collapsed&&!d.marker.widgetNode&&d.from==c.to&&(null==d.to||d.to!=c.from)&&(d.marker.inclusiveLeft||c.marker.inclusiveRight)&&td(a,b,d))return!0}function ub(a){if(null!=a.height)return a.height;var b=a.doc.cm;if(!b)return 0;if(!Wc(document.body,a.node)){var c="position: relative;";a.coverGutter&& -(c+="margin-left: -"+b.display.gutters.offsetWidth+"px;");a.noHScroll&&(c+="width: "+b.display.wrapper.clientWidth+"px;");U(b.display.measure,t("div",[a.node],null,c))}return a.height=a.node.offsetHeight}function $f(a,b,c,d){var e=new sc(a,c,d),f=a.cm;f&&e.noHScroll&&(f.display.alignWidgets=!0);nc(a,b,"widget",function(b){var c=b.widgets||(b.widgets=[]);null==e.insertAt?c.push(e):c.splice(Math.min(c.length-1,Math.max(0,e.insertAt)),0,e);e.line=b;f&&!ya(a,b)&&(c=ea(b)<a.scrollTop,ca(b,b.height+ub(e)), -c&&lc(f,null,e.height),f.curOp.forceUpdate=!0);return!0});return e}function We(a,b){if(a)for(;;){var c=a.match(/(?:^|\s+)line-(background-)?(\S+)/);if(!c)break;a=a.slice(0,c.index)+a.slice(c.index+c[0].length);var d=c[1]?"bgClass":"textClass";null==b[d]?b[d]=c[2]:(new RegExp("(?:^|s)"+c[2]+"(?:$|s)")).test(b[d])||(b[d]+=" "+c[2])}return a}function Xe(a,b){if(a.blankLine)return a.blankLine(b);if(a.innerMode){var c=q.innerMode(a,b);if(c.mode.blankLine)return c.mode.blankLine(c.state)}}function ud(a, -b,c,d){for(var e=0;10>e;e++){d&&(d[0]=q.innerMode(a,c).mode);var f=a.token(b,c);if(b.pos>b.start)return f}throw Error("Mode "+a.name+" failed to advance stream.");}function Ye(a,b,c,d){function e(a){return{start:m.start,end:m.pos,string:m.current(),type:h||null,state:a?Sa(f.mode,l):l}}var f=a.doc,g=f.mode,h;b=w(f,b);var k=u(f,b.line),l=sb(a,b.line,c),m=new tc(k.text,a.options.tabSize),p;for(d&&(p=[]);(d||m.pos<b.ch)&&!m.eol();)m.start=m.pos,h=ud(g,m,l),d&&p.push(e(!0));return d?p:e()}function Ze(a, -b,c,d,e,f,g){var h=c.flattenSpans;null==h&&(h=a.options.flattenSpans);var k=0,l=null,m=new tc(b,a.options.tabSize),p,n=a.options.addModeClass&&[null];for(""==b&&We(Xe(c,d),f);!m.eol();){m.pos>a.options.maxHighlightLength?(h=!1,g&&Zc(a,b,d,m.pos),m.pos=b.length,p=null):p=We(ud(c,m,d,n),f);if(n){var q=n[0].name;q&&(p="m-"+(p?q+" "+p:q))}if(!h||l!=p){for(;k<m.start;)k=Math.min(m.start,k+5E4),e(k,l);l=p}m.start=m.pos}for(;k<m.pos;)a=Math.min(m.pos,k+5E4),e(a,l),k=a}function je(a,b,c,d){var e=[a.state.modeGen], -f={};Ze(a,b.text,a.doc.mode,c,function(a,b){e.push(a,b)},f,d);for(c=0;c<a.state.overlays.length;++c){var g=a.state.overlays[c],h=1,k=0;Ze(a,b.text,g.mode,!0,function(a,b){for(var c=h;k<a;){var d=e[h];d>a&&e.splice(h,1,a,e[h+1],d);h+=2;k=Math.min(a,d)}if(b)if(g.opaque)e.splice(c,h-c,a,"cm-overlay "+b),h=c+2;else for(;c<h;c+=2)d=e[c+1],e[c+1]=(d?d+" ":"")+"cm-overlay "+b},f)}return{styles:e,classes:f.bgClass||f.textClass?f:null}}function $e(a,b,c){if(!b.styles||b.styles[0]!=a.state.modeGen){var d=je(a, -b,b.stateAfter=sb(a,F(b)));b.styles=d.styles;d.classes?b.styleClasses=d.classes:b.styleClasses&&(b.styleClasses=null);c===a.doc.frontier&&a.doc.frontier++}return b.styles}function Zc(a,b,c,d){var e=a.doc.mode,f=new tc(b,a.options.tabSize);f.start=f.pos=d||0;for(""==b&&Xe(e,c);!f.eol()&&f.pos<=a.options.maxHighlightLength;)ud(e,f,c),f.start=f.pos}function af(a,b){if(!a||/^\s*$/.test(a))return null;var c=b.addModeClass?ag:bg;return c[a]||(c[a]=a.replace(/\S+/g,"cm-$\x26"))}function Sd(a,b){var c=t("span", -null,null,J?"padding-right: .1px":null),c={pre:t("pre",[c]),content:c,col:0,pos:0,cm:a,splitSpaces:(B||J)&&a.getOption("lineWrapping")};b.measure={};for(var d=0;d<=(b.rest?b.rest.length:0);d++){var e=d?b.rest[d-1]:b.line,f;c.pos=0;c.addToken=cg;var g;if(null!=vd)g=vd;else{g=U(a.display.measure,document.createTextNode("AخA"));var h=Ea(g,0,1).getBoundingClientRect();g=h&&h.left!=h.right?vd=3>Ea(g,1,2).getBoundingClientRect().right-h.right:!1}g&&(f=Y(e))&&(c.addToken=dg(c.addToken,f));c.map=[];h=b!= -a.display.externalMeasured&&F(e);a:{g=c;var h=$e(a,e,h),k=e.markedSpans,l=e.text,m=0;if(k)for(var p=l.length,n=0,q=1,r="",u=void 0,v=void 0,w=0,x=void 0,y=void 0,A=void 0,C=void 0,z=void 0;;){if(w==n){for(var x=y=A=C=v="",z=null,w=Infinity,G=[],H=0;H<k.length;++H){var I=k[H],D=I.marker;"bookmark"==D.type&&I.from==n&&D.widgetNode?G.push(D):I.from<=n&&(null==I.to||I.to>n||D.collapsed&&I.to==n&&I.from==n)?(null!=I.to&&I.to!=n&&w>I.to&&(w=I.to,y=""),D.className&&(x+=" "+D.className),D.css&&(v=D.css), -D.startStyle&&I.from==n&&(A+=" "+D.startStyle),D.endStyle&&I.to==w&&(y+=" "+D.endStyle),D.title&&!C&&(C=D.title),D.collapsed&&(!z||0>Ve(z.marker,D))&&(z=I)):I.from>n&&w>I.from&&(w=I.from)}if(z&&(z.from||0)==n){bf(g,(null==z.to?p+1:z.to)-n,z.marker,null==z.from);if(null==z.to)break a;z.to==n&&(z=!1)}if(!z&&G.length)for(H=0;H<G.length;++H)bf(g,0,G[H])}if(n>=p)break;for(G=Math.min(p,w);;){if(r){H=n+r.length;z||(I=H>G?r.slice(0,G-n):r,g.addToken(g,I,u?u+x:x,A,n+I.length==w?y:"",C,v));if(H>=G){r=r.slice(G- -n);n=G;break}n=H;A=""}r=l.slice(m,m=h[q++]);u=af(h[q++],g.cm.options)}}else for(var q=1;q<h.length;q+=2)g.addToken(g,l.slice(m,m=h[q]),af(h[q+1],g.cm.options))}e.styleClasses&&(e.styleClasses.bgClass&&(c.bgClass=wd(e.styleClasses.bgClass,c.bgClass||"")),e.styleClasses.textClass&&(c.textClass=wd(e.styleClasses.textClass,c.textClass||"")));0==c.map.length&&c.map.push(0,0,c.content.appendChild(eg(a.display.measure)));0==d?(b.measure.map=c.map,b.measure.cache={}):((b.measure.maps||(b.measure.maps=[])).push(c.map), -(b.measure.caches||(b.measure.caches=[])).push({}))}J&&/\bcm-tab\b/.test(c.content.lastChild.className)&&(c.content.className="cm-tab-wrap-hack");K(a,"renderLine",a,b.line,c.pre);c.pre.className&&(c.textClass=wd(c.pre.className,c.textClass||""));return c}function cg(a,b,c,d,e,f,g){if(b){var h=a.splitSpaces?b.replace(/ {3,}/g,fg):b,k=a.cm.state.specialChars,l=!1;if(k.test(b))for(var m=document.createDocumentFragment(),p=0;;){k.lastIndex=p;var n=k.exec(b),q=n?n.index-p:b.length-p;if(q){var r=document.createTextNode(h.slice(p, -p+q));B&&9>C?m.appendChild(t("span",[r])):m.appendChild(r);a.map.push(a.pos,a.pos+q,r);a.col+=q;a.pos+=q}if(!n)break;p+=q+1;"\t"==n[0]?(r=a.cm.options.tabSize,n=r-a.col%r,r=m.appendChild(t("span",Ne(n),"cm-tab")),r.setAttribute("role","presentation"),r.setAttribute("cm-text","\t"),a.col+=n):(r=a.cm.options.specialCharPlaceholder(n[0]),r.setAttribute("cm-text",n[0]),B&&9>C?m.appendChild(t("span",[r])):m.appendChild(r),a.col+=1);a.map.push(a.pos,a.pos+1,r);a.pos++}else{a.col+=b.length;var m=document.createTextNode(h); -a.map.push(a.pos,a.pos+b.length,m);B&&9>C&&(l=!0);a.pos+=b.length}if(c||d||e||l||g)return b=c||"",d&&(b+=d),e&&(b+=e),d=t("span",[m],b,g),f&&(d.title=f),a.content.appendChild(d);a.content.appendChild(m)}}function fg(a){for(var b=" ",c=0;c<a.length-2;++c)b+=c%2?" ":" ";return b+" "}function dg(a,b){return function(c,d,e,f,g,h,k){e=e?e+" cm-force-border":"cm-force-border";for(var l=c.pos,m=l+d.length;;){for(var p=0;p<b.length;p++){var n=b[p];if(n.to>l&&n.from<=l)break}if(n.to>=m)return a(c,d,e,f,g, -h,k);a(c,d.slice(0,n.to-l),e,f,null,h,k);f=null;d=d.slice(n.to-l);l=n.to}}}function bf(a,b,c,d){var e=!d&&c.widgetNode;e&&a.map.push(a.pos,a.pos+b,e);!d&&a.cm.display.input.needsContentAttribute&&(e||(e=a.content.appendChild(document.createElement("span"))),e.setAttribute("cm-marker",c.id));e&&(a.cm.display.input.setUneditable(e),a.content.appendChild(e));a.pos+=b}function Me(a,b){return 0==b.from.ch&&0==b.to.ch&&""==A(b.text)&&(!a.cm||a.cm.options.wholeLineUpdateBefore)}function qd(a,b,c,d){function e(a, -c,e){a.text=c;a.stateAfter&&(a.stateAfter=null);a.styles&&(a.styles=null);null!=a.order&&(a.order=null);Te(a);Ue(a,e);c=d?d(a):1;c!=a.height&&ca(a,c);L(a,"change",a,b)}function f(a,b){for(var e=a,f=[];e<b;++e)f.push(new Ab(k[e],c?c[e]:null,d));return f}var g=b.from,h=b.to,k=b.text,l=u(a,g.line),m=u(a,h.line),p=A(k),n=c?c[k.length-1]:null,q=h.line-g.line;if(b.full)a.insert(0,f(0,k.length)),a.remove(k.length,a.size-k.length);else if(Me(a,b)){var r=f(0,k.length-1);e(m,m.text,n);q&&a.remove(g.line,q); -r.length&&a.insert(g.line,r)}else l==m?1==k.length?e(l,l.text.slice(0,g.ch)+p+l.text.slice(h.ch),n):(r=f(1,k.length-1),r.push(new Ab(p+l.text.slice(h.ch),n,d)),e(l,l.text.slice(0,g.ch)+k[0],c?c[0]:null),a.insert(g.line+1,r)):1==k.length?(e(l,l.text.slice(0,g.ch)+k[0]+m.text.slice(h.ch),c?c[0]:null),a.remove(g.line+1,q)):(e(l,l.text.slice(0,g.ch)+k[0],c?c[0]:null),e(m,p+m.text.slice(h.ch),n),r=f(1,k.length-1),1<q&&a.remove(g.line+1,q-1),a.insert(g.line+1,r));L(a,"change",a,b)}function Bb(a){this.lines= -a;this.parent=null;for(var b=0,c=0;b<a.length;++b)a[b].parent=this,c+=a[b].height;this.height=c}function Cb(a){this.children=a;for(var b=0,c=0,d=0;d<a.length;++d){var e=a[d],b=b+e.chunkSize(),c=c+e.height;e.parent=this}this.size=b;this.height=c;this.parent=null}function Ga(a,b,c){function d(a,f,g){if(a.linked)for(var h=0;h<a.linked.length;++h){var k=a.linked[h];if(k.doc!=f){var l=g&&k.sharedHist;if(!c||l)b(k.doc,l),d(k.doc,a,l)}}}d(a,null,!0)}function Ed(a,b){if(b.cm)throw Error("This document is already in use."); -a.doc=b;b.cm=a;Ac(a);zc(a);a.options.lineWrapping||Dc(a);a.options.mode=b.modeOption;Q(a)}function u(a,b){b-=a.first;if(0>b||b>=a.size)throw Error("There is no line "+(b+a.first)+" in the document.");for(var c=a;!c.lines;)for(var d=0;;++d){var e=c.children[d],f=e.chunkSize();if(b<f){c=e;break}b-=f}return c.lines[b]}function Da(a,b,c){var d=[],e=b.line;a.iter(b.line,c.line+1,function(a){a=a.text;e==c.line&&(a=a.slice(0,c.ch));e==b.line&&(a=a.slice(b.ch));d.push(a);++e});return d}function xd(a,b,c){var d= -[];a.iter(b,c,function(a){d.push(a.text)});return d}function ca(a,b){var c=b-a.height;if(c)for(var d=a;d;d=d.parent)d.height+=c}function F(a){if(null==a.parent)return null;var b=a.parent;a=D(b.lines,a);for(var c=b.parent;c;b=c,c=c.parent)for(var d=0;c.children[d]!=b;++d)a+=c.children[d].chunkSize();return a+b.first}function Ba(a,b){var c=a.first;a:do{for(var d=0;d<a.children.length;++d){var e=a.children[d],f=e.height;if(b<f){a=e;continue a}b-=f;c+=e.chunkSize()}return c}while(!a.lines);for(d=0;d< -a.lines.length;++d){e=a.lines[d].height;if(b<e)break;b-=e}return c+d}function ea(a){a=ia(a);for(var b=0,c=a.parent,d=0;d<c.lines.length;++d){var e=c.lines[d];if(e==a)break;else b+=e.height}for(a=c.parent;a;c=a,a=c.parent)for(d=0;d<a.children.length&&(e=a.children[d],e!=c);++d)b+=e.height;return b}function Y(a){var b=a.order;null==b&&(b=a.order=gg(a.text));return b}function uc(a){this.done=[];this.undone=[];this.undoDepth=Infinity;this.lastModTime=this.lastSelTime=0;this.lastOrigin=this.lastSelOrigin= -this.lastOp=this.lastSelOp=null;this.generation=this.maxGeneration=a||1}function pd(a,b){var c={from:Rc(b.from),to:ta(b),text:Da(a,b.from,b.to)};cf(a,c,b.from.line,b.to.line+1);Ga(a,function(a){cf(a,c,b.from.line,b.to.line+1)},!0);return c}function ce(a){for(;a.length;)if(A(a).ranges)a.pop();else break}function Ie(a,b,c,d){var e=a.history;e.undone.length=0;var f=+new Date,g,h;if(h=e.lastOp==d||e.lastOrigin==b.origin&&b.origin&&("+"==b.origin.charAt(0)&&a.cm&&e.lastModTime>f-a.cm.options.historyEventDelay|| -"*"==b.origin.charAt(0)))e.lastOp==d?(ce(e.done),g=A(e.done)):e.done.length&&!A(e.done).ranges?g=A(e.done):1<e.done.length&&!e.done[e.done.length-2].ranges?(e.done.pop(),g=A(e.done)):g=void 0,h=g;if(h){var k=A(g.changes);0==y(b.from,b.to)&&0==y(b.from,k.to)?k.to=ta(b):g.changes.push(pd(a,b))}else for((g=A(e.done))&&g.ranges||Wb(a.sel,e.done),g={changes:[pd(a,b)],generation:e.generation},e.done.push(g);e.done.length>e.undoDepth;)e.done.shift(),e.done[0].ranges||e.done.shift();e.done.push(c);e.generation= -++e.maxGeneration;e.lastModTime=e.lastSelTime=f;e.lastOp=e.lastSelOp=d;e.lastOrigin=e.lastSelOrigin=b.origin;k||K(a,"historyAdded")}function Wb(a,b){var c=A(b);c&&c.ranges&&c.equals(a)||b.push(a)}function cf(a,b,c,d){var e=b["spans_"+a.id],f=0;a.iter(Math.max(a.first,c),Math.min(a.first+a.size,d),function(c){c.markedSpans&&((e||(e=b["spans_"+a.id]={}))[f]=c.markedSpans);++f})}function Zf(a){if(!a)return null;for(var b=0,c;b<a.length;++b)a[b].marker.explicitlyCleared?c||(c=a.slice(0,b)):c&&c.push(a[b]); -return c?c.length?c:null:a}function Xa(a,b,c){for(var d=0,e=[];d<a.length;++d){var f=a[d];if(f.ranges)e.push(c?la.prototype.deepCopy.call(f):f);else{var f=f.changes,g=[];e.push({changes:g});for(var h=0;h<f.length;++h){var k=f[h],l;g.push({from:k.from,to:k.to,text:k.text});if(b)for(var m in k)(l=m.match(/^spans_(\d+)$/))&&-1<D(b,Number(l[1]))&&(A(g)[m]=k[m],delete k[m])}}}return e}function df(a,b,c,d){c<a.line?a.line+=d:b<a.line&&(a.line=b,a.ch=0)}function ef(a,b,c,d){for(var e=0;e<a.length;++e){var f= -a[e],g=!0;if(f.ranges){f.copied||(f=a[e]=f.deepCopy(),f.copied=!0);for(var h=0;h<f.ranges.length;h++)df(f.ranges[h].anchor,b,c,d),df(f.ranges[h].head,b,c,d)}else{for(h=0;h<f.changes.length;++h){var k=f.changes[h];if(c<k.from.line)k.from=r(k.from.line+d,k.from.ch),k.to=r(k.to.line+d,k.to.ch);else if(b<=k.to.line){g=!1;break}}g||(a.splice(0,e+1),e=0)}}}function Je(a,b){var c=b.from.line,d=b.to.line,e=b.text.length-(d-c)-1;ef(a.done,c,d,e);ef(a.undone,c,d,e)}function ld(a){return null!=a.defaultPrevented? -a.defaultPrevented:0==a.returnValue}function xe(a){var b=a.which;null==b&&(a.button&1?b=1:a.button&2?b=3:a.button&4&&(b=2));W&&a.ctrlKey&&1==b&&(b=3);return b}function L(a,b){function c(a){return function(){a.apply(null,e)}}var d=a._handlers&&a._handlers[b];if(d){var e=Array.prototype.slice.call(arguments,2),f;Ta?f=Ta.delayedCallbacks:Db?f=Db:(f=Db=[],setTimeout(hg,0));for(var g=0;g<d.length;++g)f.push(c(d[g]))}}function hg(){var a=Db;Db=null;for(var b=0;b<a.length;++b)a[b]()}function ja(a,b,c){"string"== -typeof b&&(b={type:b,preventDefault:function(){this.defaultPrevented=!0}});K(a,c||b.type,a,b);return ld(b)||b.codemirrorIgnore}function fe(a){var b=a._handlers&&a._handlers.cursorActivity;if(b){a=a.curOp.cursorActivityHandlers||(a.curOp.cursorActivityHandlers=[]);for(var c=0;c<b.length;++c)-1==D(a,b[c])&&a.push(b[c])}}function S(a,b){var c=a._handlers&&a._handlers[b];return c&&0<c.length}function Ya(a){a.prototype.on=function(a,c){v(this,a,c)};a.prototype.off=function(a,c){ka(this,a,c)}}function bb(){this.id= -null}function ye(a,b,c){for(var d=0,e=0;;){var f=a.indexOf("\t",d);-1==f&&(f=a.length);var g=f-d;if(f==a.length||e+g>=b)return d+Math.min(g,b-e);e+=f-d;e+=c-e%c;d=f+1;if(e>=b)return d}}function Ne(a){for(;vc.length<=a;)vc.push(A(vc)+" ");return vc[a]}function A(a){return a[a.length-1]}function D(a,b){for(var c=0;c<a.length;++c)if(a[c]==b)return c;return-1}function ob(a,b){for(var c=[],d=0;d<a.length;d++)c[d]=b(a[d],d);return c}function Eb(){}function ff(a,b){var c;Object.create?c=Object.create(a): -(Eb.prototype=a,c=new Eb);b&&V(b,c);return c}function V(a,b,c){b||(b={});for(var d in a)!a.hasOwnProperty(d)||!1===c&&b.hasOwnProperty(d)||(b[d]=a[d]);return b}function cb(a){var b=Array.prototype.slice.call(arguments,1);return function(){return a.apply(null,b)}}function oc(a,b){return b?-1<b.source.indexOf("\\w")&&gf(a)?!0:b.test(a):gf(a)}function hf(a){for(var b in a)if(a.hasOwnProperty(b)&&a[b])return!1;return!0}function tb(a){return 768<=a.charCodeAt(0)&&ig.test(a)}function t(a,b,c,d){a=document.createElement(a); -c&&(a.className=c);d&&(a.style.cssText=d);if("string"==typeof b)a.appendChild(document.createTextNode(b));else if(b)for(c=0;c<b.length;++c)a.appendChild(b[c]);return a}function za(a){for(var b=a.childNodes.length;0<b;--b)a.removeChild(a.firstChild);return a}function U(a,b){return za(a).appendChild(b)}function fa(){return document.activeElement}function Fb(a){return new RegExp("(^|\\s)"+a+"(?:$|\\s)\\s*")}function wd(a,b){for(var c=a.split(" "),d=0;d<c.length;d++)c[d]&&!Fb(c[d]).test(b)&&(b+=" "+c[d]); -return b}function jf(a){if(document.body.getElementsByClassName)for(var b=document.body.getElementsByClassName("CodeMirror"),c=0;c<b.length;c++){var d=b[c].CodeMirror;d&&a(d)}}function tf(){var a;v(window,"resize",function(){null==a&&(a=setTimeout(function(){a=null;jf(If)},100))});v(window,"blur",function(){jf(db)})}function eg(a){if(null==yd){var b=t("span","​");U(a,t("span",[b,document.createTextNode("x")]));0!=a.firstChild.offsetHeight&&(yd=1>=b.offsetWidth&&2<b.offsetHeight&&!(B&&8>C))}a=yd?t("span", -"​"):t("span"," ",null,"display: inline-block; width: 1px; margin-right: -1px");a.setAttribute("cm-text","");return a}function Af(a,b,c,d){if(!a)return d(b,c,"ltr");for(var e=!1,f=0;f<a.length;++f){var g=a[f];if(g.from<c&&g.to>b||b==c&&g.to==b)d(Math.max(g.from,b),Math.min(g.to,c),1==g.level?"rtl":"ltr"),e=!0}e||d(b,c,"ltr")}function dd(a){return a.level%2?a.to:a.from}function ed(a){return a.level%2?a.from:a.to}function ac(a){return(a=Y(a))?dd(a[0]):0}function bc(a){var b=Y(a);return b?ed(A(b)):a.text.length} -function kf(a,b){var c=u(a.doc,b),d=ia(c);d!=c&&(b=F(d));d=(c=Y(d))?c[0].level%2?bc(d):ac(d):0;return r(b,d)}function lf(a,b){var c=kf(a,b.line),d=u(a.doc,c.line),e=Y(d);return e&&0!=e[0].level?c:(d=Math.max(0,d.text.search(/\S/)),r(c.line,b.line==c.line&&b.ch<=d&&b.ch?0:d))}function Sb(a,b){vb=null;for(var c=0,d;c<a.length;++c){var e=a[c];if(e.from<b&&e.to>b)return c;if(e.from==b||e.to==b)if(null==d)d=c;else{var f;f=e.level;var g=a[d].level,h=a[0].level;f=f==h?!0:g==h?!1:f<g;if(f)return e.from!= -e.to&&(vb=d),c;e.from!=e.to&&(vb=c);break}}return d}function zd(a,b,c,d){if(!d)return b+c;do b+=c;while(0<b&&tb(a.text.charAt(b)));return b}function gd(a,b,c,d){var e=Y(a);if(!e)return Oe(a,b,c,d);var f=Sb(e,b),g=e[f];for(b=zd(a,b,g.level%2?-c:c,d);;){if(b>g.from&&b<g.to)return b;if(b==g.from||b==g.to){if(Sb(e,b)==f)return b;g=e[f+c];return 0<c==g.level%2?g.to:g.from}g=e[f+=c];if(!g)return null;b=0<c==g.level%2?zd(a,g.to,-1,d):zd(a,g.from,1,d)}}function Oe(a,b,c,d){b+=c;if(d)for(;0<b&&tb(a.text.charAt(b));)b+= -c;return 0>b||b>a.text.length?null:b}var wa=/gecko\/\d/i.test(navigator.userAgent),mf=/MSIE \d/.test(navigator.userAgent),nf=/Trident\/(?:[7-9]|\d{2,})\..*rv:(\d+)/.exec(navigator.userAgent),B=mf||nf,C=B&&(mf?document.documentMode||6:nf[1]),J=/WebKit\//.test(navigator.userAgent),jg=J&&/Qt\/\d+\.\d+/.test(navigator.userAgent),kg=/Chrome\//.test(navigator.userAgent),ba=/Opera\//.test(navigator.userAgent),te=/Apple Computer/.test(navigator.vendor),lg=/Mac OS X 1\d\D([8-9]|\d\d)\D/.test(navigator.userAgent), -Gf=/PhantomJS/.test(navigator.userAgent),Qa=/AppleWebKit/.test(navigator.userAgent)&&/Mobile\/\w+/.test(navigator.userAgent),ab=Qa||/Android|webOS|BlackBerry|Opera Mini|Opera Mobi|IEMobile/i.test(navigator.userAgent),W=Qa||/Mac/.test(navigator.platform),mg=/win/i.test(navigator.platform),Ia=ba&&navigator.userAgent.match(/Version\/(\d*\.\d*)/);Ia&&(Ia=Number(Ia[1]));Ia&&15<=Ia&&(ba=!1,J=!0);var of=W&&(jg||ba&&(null==Ia||12.11>Ia)),id=wa||B&&9<=C,Ge=!1,ra=!1;Fc.prototype=V({update:function(a){var b= -a.scrollWidth>a.clientWidth+1,c=a.scrollHeight>a.clientHeight+1,d=a.nativeBarWidth;c?(this.vert.style.display="block",this.vert.style.bottom=b?d+"px":"0",this.vert.firstChild.style.height=Math.max(0,a.scrollHeight-a.clientHeight+(a.viewHeight-(b?d:0)))+"px"):(this.vert.style.display="",this.vert.firstChild.style.height="0");b?(this.horiz.style.display="block",this.horiz.style.right=c?d+"px":"0",this.horiz.style.left=a.barLeft+"px",this.horiz.firstChild.style.width=a.scrollWidth-a.clientWidth+(a.viewWidth- -a.barLeft-(c?d:0))+"px"):(this.horiz.style.display="",this.horiz.firstChild.style.width="0");!this.checkedOverlay&&0<a.clientHeight&&(0==d&&this.overlayHack(),this.checkedOverlay=!0);return{right:c?d:0,bottom:b?d:0}},setScrollLeft:function(a){this.horiz.scrollLeft!=a&&(this.horiz.scrollLeft=a)},setScrollTop:function(a){this.vert.scrollTop!=a&&(this.vert.scrollTop=a)},overlayHack:function(){this.horiz.style.minHeight=this.vert.style.minWidth=W&&!lg?"12px":"18px";var a=this,b=function(b){(b.target|| -b.srcElement)!=a.vert&&(b.target||b.srcElement)!=a.horiz&&G(a.cm,pe)(b)};v(this.vert,"mousedown",b);v(this.horiz,"mousedown",b)},clear:function(){var a=this.horiz.parentNode;a.removeChild(this.horiz);a.removeChild(this.vert)}},Fc.prototype);Gc.prototype=V({update:function(){return{bottom:0,right:0}},setScrollLeft:function(){},setScrollTop:function(){},clear:function(){}},Gc.prototype);q.scrollbarModel={"native":Fc,"null":Gc};Mb.prototype.signal=function(a,b){S(a,b)&&this.events.push(arguments)};Mb.prototype.finish= -function(){for(var a=0;a<this.events.length;a++)K.apply(null,this.events[a])};var r=q.Pos=function(a,b){if(!(this instanceof r))return new r(a,b);this.line=a;this.ch=b},y=q.cmpPos=function(a,b){return a.line-b.line||a.ch-b.ch},X=null;Tc.prototype=V({init:function(a){function b(a){if(d.somethingSelected())X=d.getSelections(),c.inaccurateSelection&&(c.prevInput="",c.inaccurateSelection=!1,f.value=X.join("\n"),Za(f));else if(d.options.lineWiseCopyCut){var b=Vd(d);X=b.text;"cut"==a.type?d.setSelections(b.ranges, -null,ha):(c.prevInput="",f.value=b.text.join("\n"),Za(f))}else return;"cut"==a.type&&(d.state.cutIncoming=!0)}var c=this,d=this.cm,e=this.wrapper=Xd(),f=this.textarea=e.firstChild;a.wrapper.insertBefore(e,a.wrapper.firstChild);Qa&&(f.style.width="0px");v(f,"input",function(){B&&9<=C&&c.hasSelection&&(c.hasSelection=null);c.poll()});v(f,"paste",function(){if(J&&!d.state.fakedLastChar&&!(200>new Date-d.state.lastMiddleDown)){var a=f.selectionStart,b=f.selectionEnd;f.value+="$";f.selectionEnd=b;f.selectionStart= -a;d.state.fakedLastChar=!0}d.state.pasteIncoming=!0;c.fastPoll()});v(f,"cut",b);v(f,"copy",b);v(a.scroller,"paste",function(b){oa(a,b)||(d.state.pasteIncoming=!0,c.focus())});v(a.lineSpace,"selectstart",function(b){oa(a,b)||O(b)});v(f,"compositionstart",function(){var a=d.getCursor("from");c.composing={start:a,range:d.markText(a,d.getCursor("to"),{className:"CodeMirror-composing"})}});v(f,"compositionend",function(){c.composing&&(c.poll(),c.composing.range.clear(),c.composing=null)})},prepareSelection:function(){var a= -this.cm,b=a.display,c=a.doc,d=he(a);if(a.options.moveInputWithCursor){var a=ma(a,c.sel.primary().head,"div"),c=b.wrapper.getBoundingClientRect(),e=b.lineDiv.getBoundingClientRect();d.teTop=Math.max(0,Math.min(b.wrapper.clientHeight-10,a.top+e.top-c.top));d.teLeft=Math.max(0,Math.min(b.wrapper.clientWidth-10,a.left+e.left-c.left))}return d},showSelection:function(a){var b=this.cm.display;U(b.cursorDiv,a.cursors);U(b.selectionDiv,a.selection);null!=a.teTop&&(this.wrapper.style.top=a.teTop+"px",this.wrapper.style.left= -a.teLeft+"px")},reset:function(a){if(!this.contextMenuPending){var b,c,d=this.cm,e=d.doc;d.somethingSelected()?(this.prevInput="",b=e.sel.primary(),c=(b=Ce&&(100<b.to().line-b.from().line||1E3<(c=d.getSelection()).length))?"-":c||d.getSelection(),this.textarea.value=c,d.state.focused&&Za(this.textarea),B&&9<=C&&(this.hasSelection=c)):a||(this.prevInput=this.textarea.value="",B&&9<=C&&(this.hasSelection=null));this.inaccurateSelection=b}},getField:function(){return this.textarea},supportsTouch:function(){return!1}, -focus:function(){if("nocursor"!=this.cm.options.readOnly&&(!ab||fa()!=this.textarea))try{this.textarea.focus()}catch(a){}},blur:function(){this.textarea.blur()},resetPosition:function(){this.wrapper.style.top=this.wrapper.style.left=0},receivedFocus:function(){this.slowPoll()},slowPoll:function(){var a=this;a.pollingFast||a.polling.set(this.cm.options.pollInterval,function(){a.poll();a.cm.state.focused&&a.slowPoll()})},fastPoll:function(){function a(){c.poll()||b?(c.pollingFast=!1,c.slowPoll()):(b= -!0,c.polling.set(60,a))}var b=!1,c=this;c.pollingFast=!0;c.polling.set(20,a)},poll:function(){var a=this.cm,b=this.textarea,c=this.prevInput;if(!a.state.focused||ng(b)&&!c||Rb(a)||a.options.disableInput||a.state.keySeq)return!1;a.state.pasteIncoming&&a.state.fakedLastChar&&(b.value=b.value.substring(0,b.value.length-1),a.state.fakedLastChar=!1);var d=b.value;if(d==c&&!a.somethingSelected())return!1;if(B&&9<=C&&this.hasSelection===d||W&&/[\uf700-\uf7ff]/.test(d))return a.display.input.reset(),!1;if(a.doc.sel== -a.display.selForContextMenu){var e=d.charCodeAt(0);8203!=e||c||(c="​");if(8666==e)return this.reset(),this.cm.execCommand("undo")}for(var f=0,e=Math.min(c.length,d.length);f<e&&c.charCodeAt(f)==d.charCodeAt(f);)++f;var g=this;T(a,function(){Sc(a,d.slice(f),c.length-f,null,g.composing?"*compose":null);1E3<d.length||-1<d.indexOf("\n")?b.value=g.prevInput="":g.prevInput=d;g.composing&&(g.composing.range.clear(),g.composing.range=a.markText(g.composing.start,a.getCursor("to"),{className:"CodeMirror-composing"}))}); -return!0},ensurePolled:function(){this.pollingFast&&this.poll()&&(this.pollingFast=!1)},onKeyPress:function(){B&&9<=C&&(this.hasSelection=null);this.fastPoll()},onContextMenu:function(a){function b(){if(null!=g.selectionStart){var a=e.somethingSelected(),b="​"+(a?g.value:"");g.value="⇚";g.value=b;d.prevInput=a?"":"​";g.selectionStart=1;g.selectionEnd=b.length;f.selForContextMenu=e.doc.sel}}function c(){d.contextMenuPending=!1;d.wrapper.style.position="relative";g.style.cssText=l;B&&9>C&&f.scrollbars.setScrollTop(f.scroller.scrollTop= -k);if(null!=g.selectionStart){(!B||B&&9>C)&&b();var a=0,c=function(){f.selForContextMenu==e.doc.sel&&0==g.selectionStart&&0<g.selectionEnd&&"​"==d.prevInput?G(e,ic.selectAll)(e):10>a++?f.detectingSelectAll=setTimeout(c,500):f.input.reset()};f.detectingSelectAll=setTimeout(c,200)}}var d=this,e=d.cm,f=e.display,g=d.textarea,h=Ua(e,a),k=f.scroller.scrollTop;if(h&&!ba){e.options.resetSelectionOnContextMenu&&-1==e.doc.sel.contains(h)&&G(e,H)(e.doc,ga(h),ha);var l=g.style.cssText;d.wrapper.style.position= -"absolute";g.style.cssText="position: fixed; width: 30px; height: 30px; top: "+(a.clientY-5)+"px; left: "+(a.clientX-5)+"px; z-index: 1000; background: "+(B?"rgba(255, 255, 255, .05)":"transparent")+"; outline: none; border-width: 0; outline: none; overflow: hidden; opacity: .05; filter: alpha(opacity\x3d5);";if(J)var m=window.scrollY;f.input.focus();J&&window.scrollTo(null,m);f.input.reset();e.somethingSelected()||(g.value=d.prevInput=" ");d.contextMenuPending=!0;f.selForContextMenu=e.doc.sel;clearTimeout(f.detectingSelectAll); -B&&9<=C&&b();if(id){jd(a);var p=function(){ka(window,"mouseup",p);setTimeout(c,20)};v(window,"mouseup",p)}else setTimeout(c,50)}},setUneditable:Eb,needsContentAttribute:!1},Tc.prototype);Uc.prototype=V({init:function(a){function b(a){if(d.somethingSelected())X=d.getSelections(),"cut"==a.type&&d.replaceSelection("",null,"cut");else if(d.options.lineWiseCopyCut){var b=Vd(d);X=b.text;"cut"==a.type&&d.operation(function(){d.setSelections(b.ranges,0,ha);d.replaceSelection("",null,"cut")})}else return; -if(a.clipboardData&&!Qa)a.preventDefault(),a.clipboardData.clearData(),a.clipboardData.setData("text/plain",X.join("\n"));else{var c=Xd();a=c.firstChild;d.display.lineSpace.insertBefore(c,d.display.lineSpace.firstChild);a.value=X.join("\n");var h=document.activeElement;Za(a);setTimeout(function(){d.display.lineSpace.removeChild(c);h.focus()},50)}}var c=this,d=c.cm;a=c.div=a.lineDiv;a.contentEditable="true";Wd(a);v(a,"paste",function(a){var b=a.clipboardData&&a.clipboardData.getData("text/plain"); -b&&(a.preventDefault(),d.replaceSelection(b,null,"paste"))});v(a,"compositionstart",function(a){a=a.data;c.composing={sel:d.doc.sel,data:a,startData:a};if(a){var b=d.doc.sel.primary(),g=d.getLine(b.head.line).indexOf(a,Math.max(0,b.head.ch-a.length));-1<g&&g<=b.head.ch&&(c.composing.sel=ga(r(b.head.line,g),r(b.head.line,g+a.length)))}});v(a,"compositionupdate",function(a){c.composing.data=a.data});v(a,"compositionend",function(a){var b=c.composing;b&&(a.data==b.startData||/\u200b/.test(a.data)||(b.data= -a.data),setTimeout(function(){b.handled||c.applyComposition(b);c.composing==b&&(c.composing=null)},50))});v(a,"touchstart",function(){c.forceCompositionEnd()});v(a,"input",function(){c.composing||c.pollContent()||T(c.cm,function(){Q(d)})});v(a,"copy",b);v(a,"cut",b)},prepareSelection:function(){var a=he(this.cm,!1);a.focus=this.cm.state.focused;return a},showSelection:function(a){a&&this.cm.display.view.length&&(a.focus&&this.showPrimarySelection(),this.showMultipleSelections(a))},showPrimarySelection:function(){var a= -window.getSelection(),b=this.cm.doc.sel.primary(),c=Tb(this.cm,a.anchorNode,a.anchorOffset),d=Tb(this.cm,a.focusNode,a.focusOffset);if(!c||c.bad||!d||d.bad||0!=y(Qb(c,d),b.from())||0!=y(Pb(c,d),b.to()))if(c=Yd(this.cm,b.from()),d=Yd(this.cm,b.to()),c||d){var e=this.cm.display.view,b=a.rangeCount&&a.getRangeAt(0);c?d||(d=e[e.length-1].measure,d=d.maps?d.maps[d.maps.length-1]:d.map,d={node:d[d.length-1],offset:d[d.length-2]-d[d.length-3]}):c={node:e[0].measure.map[2],offset:0};try{var f=Ea(c.node,c.offset, -d.offset,d.node)}catch(g){}f&&(a.removeAllRanges(),a.addRange(f),b&&null==a.anchorNode?a.addRange(b):wa&&this.startGracePeriod());this.rememberSelection()}},startGracePeriod:function(){var a=this;clearTimeout(this.gracePeriod);this.gracePeriod=setTimeout(function(){a.gracePeriod=!1;a.selectionChanged()&&a.cm.operation(function(){a.cm.curOp.selectionChanged=!0})},20)},showMultipleSelections:function(a){U(this.cm.display.cursorDiv,a.cursors);U(this.cm.display.selectionDiv,a.selection)},rememberSelection:function(){var a= -window.getSelection();this.lastAnchorNode=a.anchorNode;this.lastAnchorOffset=a.anchorOffset;this.lastFocusNode=a.focusNode;this.lastFocusOffset=a.focusOffset},selectionInEditor:function(){var a=window.getSelection();if(!a.rangeCount)return!1;a=a.getRangeAt(0).commonAncestorContainer;return Wc(this.div,a)},focus:function(){"nocursor"!=this.cm.options.readOnly&&this.div.focus()},blur:function(){this.div.blur()},getField:function(){return this.div},supportsTouch:function(){return!0},receivedFocus:function(){function a(){b.cm.state.focused&& -(b.pollSelection(),b.polling.set(b.cm.options.pollInterval,a))}var b=this;this.selectionInEditor()?this.pollSelection():T(this.cm,function(){b.cm.curOp.selectionChanged=!0});this.polling.set(this.cm.options.pollInterval,a)},selectionChanged:function(){var a=window.getSelection();return a.anchorNode!=this.lastAnchorNode||a.anchorOffset!=this.lastAnchorOffset||a.focusNode!=this.lastFocusNode||a.focusOffset!=this.lastFocusOffset},pollSelection:function(){if(!this.composing&&!this.gracePeriod&&this.selectionChanged()){var a= -window.getSelection(),b=this.cm;this.rememberSelection();var c=Tb(b,a.anchorNode,a.anchorOffset),d=Tb(b,a.focusNode,a.focusOffset);c&&d&&T(b,function(){H(b.doc,ga(c,d),ha);if(c.bad||d.bad)b.curOp.selectionChanged=!0})}},pollContent:function(){var a=this.cm,b=a.display,c=a.doc.sel.primary(),d=c.from(),c=c.to();if(d.line<b.viewFrom||c.line>b.viewTo-1)return!1;var e;d.line==b.viewFrom||0==(e=Ca(a,d.line))?(d=F(b.view[0].line),e=b.view[0].node):(d=F(b.view[e].line),e=b.view[e-1].node.nextSibling);var f= -Ca(a,c.line);f==b.view.length-1?(c=b.viewTo-1,b=b.view[f].node):(c=F(b.view[f+1].line)-1,b=b.view[f+1].node.previousSibling);b=sa(xf(a,e,b,d,c));for(e=Da(a.doc,r(d,0),r(c,u(a.doc,c).text.length));1<b.length&&1<e.length;)if(A(b)==A(e))b.pop(),e.pop(),c--;else if(b[0]==e[0])b.shift(),e.shift(),d++;else break;for(var g=0,f=0,h=b[0],k=e[0],l=Math.min(h.length,k.length);g<l&&h.charCodeAt(g)==k.charCodeAt(g);)++g;h=A(b);k=A(e);for(l=Math.min(h.length-(1==b.length?g:0),k.length-(1==e.length?g:0));f<l&&h.charCodeAt(h.length- -f-1)==k.charCodeAt(k.length-f-1);)++f;b[b.length-1]=h.slice(0,h.length-f);b[0]=b[0].slice(g);d=r(d,g);c=r(c,e.length?A(e).length-f:0);if(1<b.length||b[0]||y(d,c))return wb(a.doc,b,d,c,"+input"),!0},ensurePolled:function(){this.forceCompositionEnd()},reset:function(){this.forceCompositionEnd()},forceCompositionEnd:function(){this.composing&&!this.composing.handled&&(this.applyComposition(this.composing),this.composing.handled=!0,this.div.blur(),this.div.focus())},applyComposition:function(a){a.data&& -a.data!=a.startData&&G(this.cm,Sc)(this.cm,a.data,0,a.sel)},setUneditable:function(a){a.setAttribute("contenteditable","false")},onKeyPress:function(a){a.preventDefault();G(this.cm,Sc)(this.cm,String.fromCharCode(null==a.charCode?a.keyCode:a.charCode),0)},onContextMenu:Eb,resetPosition:Eb,needsContentAttribute:!0},Uc.prototype);q.inputStyles={textarea:Tc,contenteditable:Uc};la.prototype={primary:function(){return this.ranges[this.primIndex]},equals:function(a){if(a==this)return!0;if(a.primIndex!= -this.primIndex||a.ranges.length!=this.ranges.length)return!1;for(var b=0;b<this.ranges.length;b++){var c=this.ranges[b],d=a.ranges[b];if(0!=y(c.anchor,d.anchor)||0!=y(c.head,d.head))return!1}return!0},deepCopy:function(){for(var a=[],b=0;b<this.ranges.length;b++)a[b]=new z(Rc(this.ranges[b].anchor),Rc(this.ranges[b].head));return new la(a,this.primIndex)},somethingSelected:function(){for(var a=0;a<this.ranges.length;a++)if(!this.ranges[a].empty())return!0;return!1},contains:function(a,b){b||(b=a); -for(var c=0;c<this.ranges.length;c++){var d=this.ranges[c];if(0<=y(b,d.from())&&0>=y(a,d.to()))return c}return-1}};z.prototype={from:function(){return Qb(this.anchor,this.head)},to:function(){return Pb(this.anchor,this.head)},empty:function(){return this.head.line==this.anchor.line&&this.head.ch==this.anchor.ch}};var ad={left:0,right:0,top:0,bottom:0},Fa,Ta=null,Ff=0,fc,ec,se=0,gc=0,R=null;B?R=-.53:wa?R=15:kg?R=-.7:te&&(R=-1/3);var ze=function(a){var b=a.wheelDeltaX,c=a.wheelDeltaY;null==b&&a.detail&& -a.axis==a.HORIZONTAL_AXIS&&(b=a.detail);null==c&&a.detail&&a.axis==a.VERTICAL_AXIS?c=a.detail:null==c&&(c=a.wheelDelta);return{x:b,y:c}};q.wheelEventPixels=function(a){a=ze(a);a.x*=R;a.y*=R;return a};var Qf=new bb,md=null,ta=q.changeEnd=function(a){return a.text?r(a.from.line+a.text.length-1,A(a.text).length+(1==a.text.length?a.from.ch:0)):a.to};q.prototype={constructor:q,focus:function(){window.focus();this.display.input.focus()},setOption:function(a,b){var c=this.options,d=c[a];if(c[a]!=b||"mode"== -a)c[a]=b,Ka.hasOwnProperty(a)&&G(this,Ka[a])(this,b,d)},getOption:function(a){return this.options[a]},getDoc:function(){return this.doc},addKeyMap:function(a,b){this.state.keyMaps[b?"push":"unshift"](pc(a))},removeKeyMap:function(a){for(var b=this.state.keyMaps,c=0;c<b.length;++c)if(b[c]==a||b[c].name==a)return b.splice(c,1),!0},addOverlay:M(function(a,b){var c=a.token?a:q.getMode(this.options,a);if(c.startState)throw Error("Overlays may not be stateful.");this.state.overlays.push({mode:c,modeSpec:a, -opaque:b&&b.opaque});this.state.modeGen++;Q(this)}),removeOverlay:M(function(a){for(var b=this.state.overlays,c=0;c<b.length;++c){var d=b[c].modeSpec;if(d==a||"string"==typeof a&&d.name==a){b.splice(c,1);this.state.modeGen++;Q(this);break}}}),indentLine:M(function(a,b,c){"string"!=typeof b&&"number"!=typeof b&&(b=null==b?this.options.smartIndent?"smart":"prev":b?"add":"subtract");qb(this.doc,a)&&pb(this,a,b,c)}),indentSelection:M(function(a){for(var b=this.doc.sel.ranges,c=-1,d=0;d<b.length;d++){var e= -b[d];if(e.empty())e.head.line>c&&(pb(this,e.head.line,a,!0),c=e.head.line,d==this.doc.sel.primIndex&&Pa(this));else{for(var f=e.from(),e=e.to(),g=Math.max(c,f.line),c=Math.min(this.lastLine(),e.line-(e.ch?0:1))+1,e=g;e<c;++e)pb(this,e,a);e=this.doc.sel.ranges;0==f.ch&&b.length==e.length&&0<e[d].from().ch&&Xc(this.doc,d,new z(f,e[d].to()),ha)}}}),getTokenAt:function(a,b){return Ye(this,a,b)},getLineTokens:function(a,b){return Ye(this,r(a),b,!0)},getTokenTypeAt:function(a){a=w(this.doc,a);var b=$e(this, -u(this.doc,a.line)),c=0,d=(b.length-1)/2;a=a.ch;if(0==a)b=b[2];else for(;;){var e=c+d>>1;if((e?b[2*e-1]:0)>=a)d=e;else if(b[2*e+1]<a)c=e+1;else{b=b[2*e+2];break}}c=b?b.indexOf("cm-overlay "):-1;return 0>c?b:0==c?null:b.slice(0,c-1)},getModeAt:function(a){var b=this.doc.mode;return b.innerMode?q.innerMode(b,this.getTokenAt(a).state).mode:b},getHelper:function(a,b){return this.getHelpers(a,b)[0]},getHelpers:function(a,b){var c=[];if(!$a.hasOwnProperty(b))return c;var d=$a[b],e=this.getModeAt(a);if("string"== -typeof e[b])d[e[b]]&&c.push(d[e[b]]);else if(e[b])for(var f=0;f<e[b].length;f++){var g=d[e[b][f]];g&&c.push(g)}else e.helperType&&d[e.helperType]?c.push(d[e.helperType]):d[e.name]&&c.push(d[e.name]);for(f=0;f<d._global.length;f++)g=d._global[f],g.pred(e,this)&&-1==D(c,g.val)&&c.push(g.val);return c},getStateAfter:function(a,b){var c=this.doc;a=Math.max(c.first,Math.min(null==a?c.first+c.size-1:a,c.first+c.size-1));return sb(this,a+1,b)},cursorCoords:function(a,b){var c;c=this.doc.sel.primary();c= -null==a?c.head:"object"==typeof a?w(this.doc,a):a?c.from():c.to();return ma(this,c,b||"page")},charCoords:function(a,b){return Yb(this,w(this.doc,a),b||"page")},coordsChar:function(a,b){a=ne(this,a,b||"page");return fd(this,a.left,a.top)},lineAtHeight:function(a,b){a=ne(this,{top:a,left:0},b||"page").top;return Ba(this.doc,a+this.display.viewOffset)},heightAtLine:function(a,b){var c=!1,d;"number"==typeof a?(d=this.doc.first+this.doc.size-1,a<this.doc.first?a=this.doc.first:a>d&&(a=d,c=!0),d=u(this.doc, -a)):d=a;return cd(this,d,{top:0,left:0},b||"page").top+(c?this.doc.height-ea(d):0)},defaultTextHeight:function(){return xa(this.display)},defaultCharWidth:function(){return gb(this.display)},setGutterMarker:M(function(a,b,c){return nc(this.doc,a,"gutter",function(a){var e=a.gutterMarkers||(a.gutterMarkers={});e[b]=c;!c&&hf(e)&&(a.gutterMarkers=null);return!0})}),clearGutter:M(function(a){var b=this,c=b.doc,d=c.first;c.iter(function(c){c.gutterMarkers&&c.gutterMarkers[a]&&(c.gutterMarkers[a]=null, -na(b,d,"gutter"),hf(c.gutterMarkers)&&(c.gutterMarkers=null));++d})}),lineInfo:function(a){if("number"==typeof a){if(!qb(this.doc,a))return null;var b=a;a=u(this.doc,a);if(!a)return null}else if(b=F(a),null==b)return null;return{line:b,handle:a,text:a.text,gutterMarkers:a.gutterMarkers,textClass:a.textClass,bgClass:a.bgClass,wrapClass:a.wrapClass,widgets:a.widgets}},getViewport:function(){return{from:this.display.viewFrom,to:this.display.viewTo}},addWidget:function(a,b,c,d,e){var f=this.display;a= -ma(this,w(this.doc,a));var g=a.bottom,h=a.left;b.style.position="absolute";b.setAttribute("cm-ignore-events","true");this.display.input.setUneditable(b);f.sizer.appendChild(b);if("over"==d)g=a.top;else if("above"==d||"near"==d){var k=Math.max(f.wrapper.clientHeight,this.doc.height),l=Math.max(f.sizer.clientWidth,f.lineSpace.clientWidth);("above"==d||a.bottom+b.offsetHeight>k)&&a.top>b.offsetHeight?g=a.top-b.offsetHeight:a.bottom+b.offsetHeight<=k&&(g=a.bottom);h+b.offsetWidth>l&&(h=l-b.offsetWidth)}b.style.top= -g+"px";b.style.left=b.style.right="";"right"==e?(h=f.sizer.clientWidth-b.offsetWidth,b.style.right="0px"):("left"==e?h=0:"middle"==e&&(h=(f.sizer.clientWidth-b.offsetWidth)/2),b.style.left=h+"px");c&&(a=cc(this,h,g,h+b.offsetWidth,g+b.offsetHeight),null!=a.scrollTop&&lb(this,a.scrollTop),null!=a.scrollLeft&&Ma(this,a.scrollLeft))},triggerOnKeyDown:M(ve),triggerOnKeyPress:M(we),triggerOnKeyUp:ue,execCommand:function(a){if(ic.hasOwnProperty(a))return ic[a](this)},findPosH:function(a,b,c,d){var e=1; -0>b&&(e=-1,b=-b);var f=0;for(a=w(this.doc,a);f<b&&(a=rd(this.doc,a,e,c,d),!a.hitSide);++f);return a},moveH:M(function(a,b){var c=this;c.extendSelectionsBy(function(d){return c.display.shift||c.doc.extend||d.empty()?rd(c.doc,d.head,a,b,c.options.rtlMoveVisually):0>a?d.from():d.to()},Gb)}),deleteH:M(function(a,b){var c=this.doc;this.doc.sel.somethingSelected()?c.replaceSelection("",null,"+delete"):Va(this,function(d){var e=rd(c,d.head,a,b,!1);return 0>a?{from:e,to:d.head}:{from:d.head,to:e}})}),findPosV:function(a, -b,c,d){var e=1;0>b&&(e=-1,b=-b);var f=0;for(a=w(this.doc,a);f<b&&(a=ma(this,a,"div"),null==d?d=a.left:a.left=d,a=Pe(this,a,e,c),!a.hitSide);++f);return a},moveV:M(function(a,b){var c=this,d=this.doc,e=[],f=!c.display.shift&&!d.extend&&d.sel.somethingSelected();d.extendSelectionsBy(function(g){if(f)return 0>a?g.from():g.to();var k=ma(c,g.head,"div");null!=g.goalColumn&&(k.left=g.goalColumn);e.push(k.left);var l=Pe(c,k,a,b);"page"==b&&g==d.sel.primary()&&lc(c,null,Yb(c,l,"div").top-k.top);return l}, -Gb);if(e.length)for(var g=0;g<d.sel.ranges.length;g++)d.sel.ranges[g].goalColumn=e[g]}),findWordAt:function(a){var b=u(this.doc,a.line).text,c=a.ch,d=a.ch;if(b){var e=this.getHelper(a,"wordChars");(0>a.xRel||d==b.length)&&c?--c:++d;for(var f=b.charAt(c),f=oc(f,e)?function(a){return oc(a,e)}:/\s/.test(f)?function(a){return/\s/.test(a)}:function(a){return!/\s/.test(a)&&!oc(a)};0<c&&f(b.charAt(c-1));)--c;for(;d<b.length&&f(b.charAt(d));)++d}return new z(r(a.line,c),r(a.line,d))},toggleOverwrite:function(a){if(null== -a||a!=this.state.overwrite)(this.state.overwrite=!this.state.overwrite)?mb(this.display.cursorDiv,"CodeMirror-overwrite"):kb(this.display.cursorDiv,"CodeMirror-overwrite"),K(this,"overwriteToggle",this,this.state.overwrite)},hasFocus:function(){return this.display.input.getField()==fa()},scrollTo:M(function(a,b){null==a&&null==b||mc(this);null!=a&&(this.curOp.scrollLeft=a);null!=b&&(this.curOp.scrollTop=b)}),getScrollInfo:function(){var a=this.display.scroller;return{left:a.scrollLeft,top:a.scrollTop, -height:a.scrollHeight-da(this)-this.display.barHeight,width:a.scrollWidth-da(this)-this.display.barWidth,clientHeight:Nc(this),clientWidth:pa(this)}},scrollIntoView:M(function(a,b){null==a?(a={from:this.doc.sel.primary().head,to:null},null==b&&(b=this.options.cursorScrollMargin)):"number"==typeof a?a={from:r(a,0),to:null}:null==a.from&&(a={from:a,to:null});a.to||(a.to=a.from);a.margin=b||0;if(null!=a.from.line)mc(this),this.curOp.scrollToPos=a;else{var c=cc(this,Math.min(a.from.left,a.to.left),Math.min(a.from.top, -a.to.top)-a.margin,Math.max(a.from.right,a.to.right),Math.max(a.from.bottom,a.to.bottom)+a.margin);this.scrollTo(c.scrollLeft,c.scrollTop)}}),setSize:M(function(a,b){function c(a){return"number"==typeof a||/^\d+$/.test(String(a))?a+"px":a}var d=this;null!=a&&(d.display.wrapper.style.width=c(a));null!=b&&(d.display.wrapper.style.height=c(b));d.options.lineWrapping&&me(this);var e=d.display.viewFrom;d.doc.iter(e,d.display.viewTo,function(a){if(a.widgets)for(var b=0;b<a.widgets.length;b++)if(a.widgets[b].noHScroll){na(d, -e,"widget");break}++e});d.curOp.forceUpdate=!0;K(d,"refresh",this)}),operation:function(a){return T(this,a)},refresh:M(function(){var a=this.display.cachedTextHeight;Q(this);this.curOp.forceUpdate=!0;hb(this);this.scrollTo(this.doc.scrollLeft,this.doc.scrollTop);Cc(this);(null==a||.5<Math.abs(a-xa(this.display)))&&Ac(this);K(this,"refresh",this)}),swapDoc:M(function(a){var b=this.doc;b.cm=null;Ed(this,a);hb(this);this.display.input.reset();this.scrollTo(a.scrollLeft,a.scrollTop);this.curOp.forceScroll= -!0;L(this,"swapDoc",this,b);return b}),getInputField:function(){return this.display.input.getField()},getWrapperElement:function(){return this.display.wrapper},getScrollerElement:function(){return this.display.scroller},getGutterElement:function(){return this.display.gutters}};Ya(q);var qf=q.defaults={},Ka=q.optionHandlers={},Fd=q.Init={toString:function(){return"CodeMirror.Init"}};x("value","",function(a,b){a.setValue(b)},!0);x("mode",null,function(a,b){a.doc.modeOption=b;zc(a)},!0);x("indentUnit", -2,zc,!0);x("indentWithTabs",!1);x("smartIndent",!0);x("tabSize",4,function(a){eb(a);hb(a);Q(a)},!0);x("specialChars",/[\t\u0000-\u0019\u00ad\u200b-\u200f\u2028\u2029\ufeff]/g,function(a,b,c){a.state.specialChars=new RegExp(b.source+(b.test("\t")?"":"|\t"),"g");c!=q.Init&&a.refresh()});x("specialCharPlaceholder",function(a){var b=t("span","•","cm-invalidchar");b.title="\\u"+a.charCodeAt(0).toString(16);b.setAttribute("aria-label",b.title);return b},function(a){a.refresh()},!0);x("electricChars",!0); -x("inputStyle",ab?"contenteditable":"textarea",function(){throw Error("inputStyle can not (yet) be changed in a running editor");},!0);x("rtlMoveVisually",!mg);x("wholeLineUpdateBefore",!0);x("theme","default",function(a){Bd(a);ib(a)},!0);x("keyMap","default",function(a,b,c){b=pc(b);(c=c!=q.Init&&pc(c))&&c.detach&&c.detach(a,b);b.attach&&b.attach(a,c||null)});x("extraKeys",null);x("lineWrapping",!1,function(a){a.options.lineWrapping?(mb(a.display.wrapper,"CodeMirror-wrap"),a.display.sizer.style.minWidth= -"",a.display.sizerWidth=null):(kb(a.display.wrapper,"CodeMirror-wrap"),Dc(a));Ac(a);Q(a);hb(a);setTimeout(function(){Na(a)},100)},!0);x("gutters",[],function(a){wc(a.options);ib(a)},!0);x("fixedGutter",!0,function(a,b){a.display.gutters.style.left=b?Ic(a.display)+"px":"0";a.refresh()},!0);x("coverGutterNextToScrollbar",!1,function(a){Na(a)},!0);x("scrollbarStyle","native",function(a){Cd(a);Na(a);a.display.scrollbars.setScrollTop(a.doc.scrollTop);a.display.scrollbars.setScrollLeft(a.doc.scrollLeft)}, -!0);x("lineNumbers",!1,function(a){wc(a.options);ib(a)},!0);x("firstLineNumber",1,ib,!0);x("lineNumberFormatter",function(a){return a},ib,!0);x("showCursorWhenSelecting",!1,nb,!0);x("resetSelectionOnContextMenu",!0);x("lineWiseCopyCut",!0);x("readOnly",!1,function(a,b){"nocursor"==b?(db(a),a.display.input.blur(),a.display.disabled=!0):(a.display.disabled=!1,b||a.display.input.reset())});x("disableInput",!1,function(a,b){b||a.display.input.reset()},!0);x("dragDrop",!0,function(a,b,c){!b!=!(c&&c!=q.Init)&& -(c=a.display.dragFunctions,b=b?v:ka,b(a.display.scroller,"dragstart",c.start),b(a.display.scroller,"dragenter",c.simple),b(a.display.scroller,"dragover",c.simple),b(a.display.scroller,"drop",c.drop))});x("cursorBlinkRate",530);x("cursorScrollMargin",0);x("cursorHeight",1,nb,!0);x("singleCursorHeightPerLine",!0,nb,!0);x("workTime",100);x("workDelay",100);x("flattenSpans",!0,eb,!0);x("addModeClass",!1,eb,!0);x("pollInterval",100);x("undoDepth",200,function(a,b){a.doc.history.undoDepth=b});x("historyEventDelay", -1250);x("viewportMargin",10,function(a){a.refresh()},!0);x("maxHighlightLength",1E4,eb,!0);x("moveInputWithCursor",!0,function(a,b){b||a.display.input.resetPosition()});x("tabindex",null,function(a,b){a.display.input.getField().tabIndex=b||""});x("autofocus",null);var pf=q.modes={},Hb=q.mimeModes={};q.defineMode=function(a,b){q.defaults.mode||"null"==a||(q.defaults.mode=a);2<arguments.length&&(b.dependencies=Array.prototype.slice.call(arguments,2));pf[a]=b};q.defineMIME=function(a,b){Hb[a]=b};q.resolveMode= -function(a){if("string"==typeof a&&Hb.hasOwnProperty(a))a=Hb[a];else if(a&&"string"==typeof a.name&&Hb.hasOwnProperty(a.name)){var b=Hb[a.name];"string"==typeof b&&(b={name:b});a=ff(b,a);a.name=b.name}else if("string"==typeof a&&/^[\w\-]+\/[\w\-]+\+xml$/.test(a))return q.resolveMode("application/xml");return"string"==typeof a?{name:a}:a||{name:"null"}};q.getMode=function(a,b){b=q.resolveMode(b);var c=pf[b.name];if(!c)return q.getMode(a,"text/plain");c=c(a,b);if(Ib.hasOwnProperty(b.name)){var d=Ib[b.name], -e;for(e in d)d.hasOwnProperty(e)&&(c.hasOwnProperty(e)&&(c["_"+e]=c[e]),c[e]=d[e])}c.name=b.name;b.helperType&&(c.helperType=b.helperType);if(b.modeProps)for(e in b.modeProps)c[e]=b.modeProps[e];return c};q.defineMode("null",function(){return{token:function(a){a.skipToEnd()}}});q.defineMIME("text/plain","null");var Ib=q.modeExtensions={};q.extendMode=function(a,b){var c=Ib.hasOwnProperty(a)?Ib[a]:Ib[a]={};V(b,c)};q.defineExtension=function(a,b){q.prototype[a]=b};q.defineDocExtension=function(a,b){P.prototype[a]= -b};q.defineOption=x;var yc=[];q.defineInitHook=function(a){yc.push(a)};var $a=q.helpers={};q.registerHelper=function(a,b,c){$a.hasOwnProperty(a)||($a[a]=q[a]={_global:[]});$a[a][b]=c};q.registerGlobalHelper=function(a,b,c,d){q.registerHelper(a,b,d);$a[a]._global.push({pred:c,val:d})};var Sa=q.copyState=function(a,b){if(!0===b)return b;if(a.copyState)return a.copyState(b);var c={},d;for(d in b){var e=b[d];e instanceof Array&&(e=e.concat([]));c[d]=e}return c},Df=q.startState=function(a,b,c){return a.startState? -a.startState(b,c):!0};q.innerMode=function(a,b){for(;a.innerMode;){var c=a.innerMode(b);if(!c||c.mode==a)break;b=c.state;a=c.mode}return c||{mode:a,state:b}};var ic=q.commands={selectAll:function(a){a.setSelection(r(a.firstLine(),0),r(a.lastLine()),ha)},singleSelection:function(a){a.setSelection(a.getCursor("anchor"),a.getCursor("head"),ha)},killLine:function(a){Va(a,function(b){if(b.empty()){var c=u(a.doc,b.head.line).text.length;return b.head.ch==c&&b.head.line<a.lastLine()?{from:b.head,to:r(b.head.line+ -1,0)}:{from:b.head,to:r(b.head.line,c)}}return{from:b.from(),to:b.to()}})},deleteLine:function(a){Va(a,function(b){return{from:r(b.from().line,0),to:w(a.doc,r(b.to().line+1,0))}})},delLineLeft:function(a){Va(a,function(a){return{from:r(a.from().line,0),to:a.from()}})},delWrappedLineLeft:function(a){Va(a,function(b){var c=a.charCoords(b.head,"div").top+5;return{from:a.coordsChar({left:0,top:c},"div"),to:b.from()}})},delWrappedLineRight:function(a){Va(a,function(b){var c=a.charCoords(b.head,"div").top+ -5,c=a.coordsChar({left:a.display.lineDiv.offsetWidth+100,top:c},"div");return{from:b.from(),to:c}})},undo:function(a){a.undo()},redo:function(a){a.redo()},undoSelection:function(a){a.undoSelection()},redoSelection:function(a){a.redoSelection()},goDocStart:function(a){a.extendSelection(r(a.firstLine(),0))},goDocEnd:function(a){a.extendSelection(r(a.lastLine()))},goLineStart:function(a){a.extendSelectionsBy(function(b){return kf(a,b.head.line)},{origin:"+move",bias:1})},goLineStartSmart:function(a){a.extendSelectionsBy(function(b){return lf(a, -b.head)},{origin:"+move",bias:1})},goLineEnd:function(a){a.extendSelectionsBy(function(b){b=b.head.line;for(var c,d=u(a.doc,b);c=Aa(d,!1);)d=c.find(1,!0).line,b=null;c=(c=Y(d))?c[0].level%2?ac(d):bc(d):d.text.length;return r(null==b?F(d):b,c)},{origin:"+move",bias:-1})},goLineRight:function(a){a.extendSelectionsBy(function(b){b=a.charCoords(b.head,"div").top+5;return a.coordsChar({left:a.display.lineDiv.offsetWidth+100,top:b},"div")},Gb)},goLineLeft:function(a){a.extendSelectionsBy(function(b){b= -a.charCoords(b.head,"div").top+5;return a.coordsChar({left:0,top:b},"div")},Gb)},goLineLeftSmart:function(a){a.extendSelectionsBy(function(b){var c=a.charCoords(b.head,"div").top+5,c=a.coordsChar({left:0,top:c},"div");return c.ch<a.getLine(c.line).search(/\S/)?lf(a,b.head):c},Gb)},goLineUp:function(a){a.moveV(-1,"line")},goLineDown:function(a){a.moveV(1,"line")},goPageUp:function(a){a.moveV(-1,"page")},goPageDown:function(a){a.moveV(1,"page")},goCharLeft:function(a){a.moveH(-1,"char")},goCharRight:function(a){a.moveH(1, -"char")},goColumnLeft:function(a){a.moveH(-1,"column")},goColumnRight:function(a){a.moveH(1,"column")},goWordLeft:function(a){a.moveH(-1,"word")},goGroupRight:function(a){a.moveH(1,"group")},goGroupLeft:function(a){a.moveH(-1,"group")},goWordRight:function(a){a.moveH(1,"word")},delCharBefore:function(a){a.deleteH(-1,"char")},delCharAfter:function(a){a.deleteH(1,"char")},delWordBefore:function(a){a.deleteH(-1,"word")},delWordAfter:function(a){a.deleteH(1,"word")},delGroupBefore:function(a){a.deleteH(-1, -"group")},delGroupAfter:function(a){a.deleteH(1,"group")},indentAuto:function(a){a.indentSelection("smart")},indentMore:function(a){a.indentSelection("add")},indentLess:function(a){a.indentSelection("subtract")},insertTab:function(a){a.replaceSelection("\t")},insertSoftTab:function(a){for(var b=[],c=a.listSelections(),d=a.options.tabSize,e=0;e<c.length;e++){var f=c[e].from(),f=aa(a.getLine(f.line),f.ch,d);b.push(Array(d-f%d+1).join(" "))}a.replaceSelections(b)},defaultTab:function(a){a.somethingSelected()? -a.indentSelection("add"):a.execCommand("insertTab")},transposeChars:function(a){T(a,function(){for(var b=a.listSelections(),c=[],d=0;d<b.length;d++){var e=b[d].head,f=u(a.doc,e.line).text;if(f)if(e.ch==f.length&&(e=new r(e.line,e.ch-1)),0<e.ch)e=new r(e.line,e.ch+1),a.replaceRange(f.charAt(e.ch-1)+f.charAt(e.ch-2),r(e.line,e.ch-2),e,"+transpose");else if(e.line>a.doc.first){var g=u(a.doc,e.line-1).text;g&&a.replaceRange(f.charAt(0)+"\n"+g.charAt(g.length-1),r(e.line-1,g.length-1),r(e.line,1),"+transpose")}c.push(new z(e, -e))}a.setSelections(c)})},newlineAndIndent:function(a){T(a,function(){for(var b=a.listSelections().length,c=0;c<b;c++){var d=a.listSelections()[c];a.replaceRange("\n",d.anchor,d.head,"+input");a.indentLine(d.from().line+1,null,!0);Pa(a)}})},toggleOverwrite:function(a){a.toggleOverwrite()}},ua=q.keyMap={};ua.basic={Left:"goCharLeft",Right:"goCharRight",Up:"goLineUp",Down:"goLineDown",End:"goLineEnd",Home:"goLineStartSmart",PageUp:"goPageUp",PageDown:"goPageDown",Delete:"delCharAfter",Backspace:"delCharBefore", -"Shift-Backspace":"delCharBefore",Tab:"defaultTab","Shift-Tab":"indentAuto",Enter:"newlineAndIndent",Insert:"toggleOverwrite",Esc:"singleSelection"};ua.pcDefault={"Ctrl-A":"selectAll","Ctrl-D":"deleteLine","Ctrl-Z":"undo","Shift-Ctrl-Z":"redo","Ctrl-Y":"redo","Ctrl-Home":"goDocStart","Ctrl-End":"goDocEnd","Ctrl-Up":"goLineUp","Ctrl-Down":"goLineDown","Ctrl-Left":"goGroupLeft","Ctrl-Right":"goGroupRight","Alt-Left":"goLineStart","Alt-Right":"goLineEnd","Ctrl-Backspace":"delGroupBefore","Ctrl-Delete":"delGroupAfter", -"Ctrl-S":"save","Ctrl-F":"find","Ctrl-G":"findNext","Shift-Ctrl-G":"findPrev","Shift-Ctrl-F":"replace","Shift-Ctrl-R":"replaceAll","Ctrl-[":"indentLess","Ctrl-]":"indentMore","Ctrl-U":"undoSelection","Shift-Ctrl-U":"redoSelection","Alt-U":"redoSelection",fallthrough:"basic"};ua.emacsy={"Ctrl-F":"goCharRight","Ctrl-B":"goCharLeft","Ctrl-P":"goLineUp","Ctrl-N":"goLineDown","Alt-F":"goWordRight","Alt-B":"goWordLeft","Ctrl-A":"goLineStart","Ctrl-E":"goLineEnd","Ctrl-V":"goPageDown","Shift-Ctrl-V":"goPageUp", -"Ctrl-D":"delCharAfter","Ctrl-H":"delCharBefore","Alt-D":"delWordAfter","Alt-Backspace":"delWordBefore","Ctrl-K":"killLine","Ctrl-T":"transposeChars"};ua.macDefault={"Cmd-A":"selectAll","Cmd-D":"deleteLine","Cmd-Z":"undo","Shift-Cmd-Z":"redo","Cmd-Y":"redo","Cmd-Home":"goDocStart","Cmd-Up":"goDocStart","Cmd-End":"goDocEnd","Cmd-Down":"goDocEnd","Alt-Left":"goGroupLeft","Alt-Right":"goGroupRight","Cmd-Left":"goLineLeft","Cmd-Right":"goLineRight","Alt-Backspace":"delGroupBefore","Ctrl-Alt-Backspace":"delGroupAfter", -"Alt-Delete":"delGroupAfter","Cmd-S":"save","Cmd-F":"find","Cmd-G":"findNext","Shift-Cmd-G":"findPrev","Cmd-Alt-F":"replace","Shift-Cmd-Alt-F":"replaceAll","Cmd-[":"indentLess","Cmd-]":"indentMore","Cmd-Backspace":"delWrappedLineLeft","Cmd-Delete":"delWrappedLineRight","Cmd-U":"undoSelection","Shift-Cmd-U":"redoSelection","Ctrl-Up":"goDocStart","Ctrl-Down":"goDocEnd",fallthrough:["basic","emacsy"]};ua["default"]=W?ua.macDefault:ua.pcDefault;q.normalizeKeyMap=function(a){var b={},c;for(c in a)if(a.hasOwnProperty(c)){var d= -a[c];if(!/^(name|fallthrough|(de|at)tach)$/.test(c)){if("..."!=d)for(var e=ob(c.split(" "),Wf),f=0;f<e.length;f++){var g,h;f==e.length-1?(h=c,g=d):(h=e.slice(0,f+1).join(" "),g="...");var k=b[h];if(!k)b[h]=g;else if(k!=g)throw Error("Inconsistent bindings for "+h);}delete a[c]}}for(var l in b)a[l]=b[l];return a};var xb=q.lookupKey=function(a,b,c,d){b=pc(b);var e=b.call?b.call(a,d):b[a];if(!1===e)return"nothing";if("..."===e)return"multi";if(null!=e&&c(e))return"handled";if(b.fallthrough){if("[object Array]"!= -Object.prototype.toString.call(b.fallthrough))return xb(a,b.fallthrough,c,d);for(e=0;e<b.fallthrough.length;e++){var f=xb(a,b.fallthrough[e],c,d);if(f)return f}}},Pf=q.isModifierKey=function(a){a="string"==typeof a?a:va[a.keyCode];return"Ctrl"==a||"Alt"==a||"Shift"==a||"Mod"==a},Rf=q.keyName=function(a,b){if(ba&&34==a.keyCode&&a["char"])return!1;var c=va[a.keyCode],d=c;if(null==d||a.altGraphKey)return!1;a.altKey&&"Alt"!=c&&(d="Alt-"+d);(of?a.metaKey:a.ctrlKey)&&"Ctrl"!=c&&(d="Ctrl-"+d);(of?a.ctrlKey: -a.metaKey)&&"Cmd"!=c&&(d="Cmd-"+d);!b&&a.shiftKey&&"Shift"!=c&&(d="Shift-"+d);return d};q.fromTextArea=function(a,b){function c(){a.value=k.getValue()}b=b?V(b):{};b.value=a.value;!b.tabindex&&a.tabIndex&&(b.tabindex=a.tabIndex);!b.placeholder&&a.placeholder&&(b.placeholder=a.placeholder);if(null==b.autofocus){var d=fa();b.autofocus=d==a||null!=a.getAttribute("autofocus")&&d==document.body}if(a.form&&(v(a.form,"submit",c),!b.leaveSubmitMethodAlone)){var e=a.form,f=e.submit;try{var g=e.submit=function(){c(); -e.submit=f;e.submit();e.submit=g}}catch(h){}}b.finishInit=function(b){b.save=c;b.getTextArea=function(){return a};b.toTextArea=function(){b.toTextArea=isNaN;c();a.parentNode.removeChild(b.getWrapperElement());a.style.display="";a.form&&(ka(a.form,"submit",c),"function"==typeof a.form.submit&&(a.form.submit=f))}};a.style.display="none";var k=q(function(b){a.parentNode.insertBefore(b,a.nextSibling)},b);return k};var tc=q.StringStream=function(a,b){this.pos=this.start=0;this.string=a;this.tabSize=b|| -8;this.lineStart=this.lastColumnPos=this.lastColumnValue=0};tc.prototype={eol:function(){return this.pos>=this.string.length},sol:function(){return this.pos==this.lineStart},peek:function(){return this.string.charAt(this.pos)||void 0},next:function(){if(this.pos<this.string.length)return this.string.charAt(this.pos++)},eat:function(a){var b=this.string.charAt(this.pos);if("string"==typeof a?b==a:b&&(a.test?a.test(b):a(b)))return++this.pos,b},eatWhile:function(a){for(var b=this.pos;this.eat(a););return this.pos> -b},eatSpace:function(){for(var a=this.pos;/[\s\u00a0]/.test(this.string.charAt(this.pos));)++this.pos;return this.pos>a},skipToEnd:function(){this.pos=this.string.length},skipTo:function(a){a=this.string.indexOf(a,this.pos);if(-1<a)return this.pos=a,!0},backUp:function(a){this.pos-=a},column:function(){this.lastColumnPos<this.start&&(this.lastColumnValue=aa(this.string,this.start,this.tabSize,this.lastColumnPos,this.lastColumnValue),this.lastColumnPos=this.start);return this.lastColumnValue-(this.lineStart? -aa(this.string,this.lineStart,this.tabSize):0)},indentation:function(){return aa(this.string,null,this.tabSize)-(this.lineStart?aa(this.string,this.lineStart,this.tabSize):0)},match:function(a,b,c){if("string"==typeof a){var d=function(a){return c?a.toLowerCase():a},e=this.string.substr(this.pos,a.length);if(d(e)==d(a))return!1!==b&&(this.pos+=a.length),!0}else{if((a=this.string.slice(this.pos).match(a))&&0<a.index)return null;a&&!1!==b&&(this.pos+=a[0].length);return a}},current:function(){return this.string.slice(this.start, -this.pos)},hideFirstChars:function(a,b){this.lineStart+=a;try{return b()}finally{this.lineStart-=a}}};var sd=0,Ha=q.TextMarker=function(a,b){this.lines=[];this.type=b;this.doc=a;this.id=++sd};Ya(Ha);Ha.prototype.clear=function(){if(!this.explicitlyCleared){var a=this.doc.cm,b=a&&!a.curOp;b&&Ja(a);if(S(this,"clear")){var c=this.find();c&&L(this,"clear",c.from,c.to)}for(var d=c=null,e=0;e<this.lines.length;++e){var f=this.lines[e],g=zb(f.markedSpans,this);a&&!this.collapsed?na(a,F(f),"text"):a&&(null!= -g.to&&(d=F(f)),null!=g.from&&(c=F(f)));for(var h=f,k=f.markedSpans,l=g,m=void 0,p=0;p<k.length;++p)k[p]!=l&&(m||(m=[])).push(k[p]);h.markedSpans=m;null==g.from&&this.collapsed&&!ya(this.doc,f)&&a&&ca(f,xa(a.display))}if(a&&this.collapsed&&!a.options.lineWrapping)for(e=0;e<this.lines.length;++e)f=ia(this.lines[e]),g=Kb(f),g>a.display.maxLineLength&&(a.display.maxLine=f,a.display.maxLineLength=g,a.display.maxLineChanged=!0);null!=c&&a&&this.collapsed&&Q(a,c,d+1);this.lines.length=0;this.explicitlyCleared= -!0;this.atomic&&this.doc.cantEdit&&(this.doc.cantEdit=!1,a&&ge(a.doc));a&&L(a,"markerCleared",a,this);b&&La(a);this.parent&&this.parent.clear()}};Ha.prototype.find=function(a,b){null==a&&"bookmark"==this.type&&(a=1);for(var c,d,e=0;e<this.lines.length;++e){var f=this.lines[e],g=zb(f.markedSpans,this);if(null!=g.from&&(c=r(b?f:F(f),g.from),-1==a))return c;if(null!=g.to&&(d=r(b?f:F(f),g.to),1==a))return d}return c&&{from:c,to:d}};Ha.prototype.changed=function(){var a=this.find(-1,!0),b=this,c=this.doc.cm; -a&&c&&T(c,function(){var d=a.line,e=F(a.line);if(e=Vc(c,e))le(e),c.curOp.selectionChanged=c.curOp.forceUpdate=!0;c.curOp.updateMaxLine=!0;ya(b.doc,d)||null==b.height||(e=b.height,b.height=null,(e=ub(b)-e)&&ca(d,d.height+e))})};Ha.prototype.attachLine=function(a){if(!this.lines.length&&this.doc.cm){var b=this.doc.cm.curOp;b.maybeHiddenMarkers&&-1!=D(b.maybeHiddenMarkers,this)||(b.maybeUnhiddenMarkers||(b.maybeUnhiddenMarkers=[])).push(this)}this.lines.push(a)};Ha.prototype.detachLine=function(a){this.lines.splice(D(this.lines, -a),1);!this.lines.length&&this.doc.cm&&(a=this.doc.cm.curOp,(a.maybeHiddenMarkers||(a.maybeHiddenMarkers=[])).push(this))};var sd=0,rc=q.SharedTextMarker=function(a,b){this.markers=a;this.primary=b;for(var c=0;c<a.length;++c)a[c].parent=this};Ya(rc);rc.prototype.clear=function(){if(!this.explicitlyCleared){this.explicitlyCleared=!0;for(var a=0;a<this.markers.length;++a)this.markers[a].clear();L(this,"clear")}};rc.prototype.find=function(a,b){return this.primary.find(a,b)};var sc=q.LineWidget=function(a, -b,c){if(c)for(var d in c)c.hasOwnProperty(d)&&(this[d]=c[d]);this.doc=a;this.node=b};Ya(sc);sc.prototype.clear=function(){var a=this.doc.cm,b=this.line.widgets,c=this.line,d=F(c);if(null!=d&&b){for(var e=0;e<b.length;++e)b[e]==this&&b.splice(e--,1);b.length||(c.widgets=null);var f=ub(this);ca(c,Math.max(0,c.height-f));a&&T(a,function(){var b=-f;ea(c)<(a.curOp&&a.curOp.scrollTop||a.doc.scrollTop)&&lc(a,null,b);na(a,d,"widget")})}};sc.prototype.changed=function(){var a=this.height,b=this.doc.cm,c=this.line; -this.height=null;var d=ub(this)-a;d&&(ca(c,c.height+d),b&&T(b,function(){b.curOp.forceUpdate=!0;ea(c)<(b.curOp&&b.curOp.scrollTop||b.doc.scrollTop)&&lc(b,null,d)}))};var Ab=q.Line=function(a,b,c){this.text=a;Ue(this,b);this.height=c?c(this):1};Ya(Ab);Ab.prototype.lineNo=function(){return F(this)};var bg={},ag={};Bb.prototype={chunkSize:function(){return this.lines.length},removeInner:function(a,b){for(var c=a,d=a+b;c<d;++c){var e=this.lines[c];this.height-=e.height;var f=e;f.parent=null;Te(f);L(e, -"delete")}this.lines.splice(a,b)},collapse:function(a){a.push.apply(a,this.lines)},insertInner:function(a,b,c){this.height+=c;this.lines=this.lines.slice(0,a).concat(b).concat(this.lines.slice(a));for(a=0;a<b.length;++a)b[a].parent=this},iterN:function(a,b,c){for(b=a+b;a<b;++a)if(c(this.lines[a]))return!0}};Cb.prototype={chunkSize:function(){return this.size},removeInner:function(a,b){this.size-=b;for(var c=0;c<this.children.length;++c){var d=this.children[c],e=d.chunkSize();if(a<e){var f=Math.min(b, -e-a),g=d.height;d.removeInner(a,f);this.height-=g-d.height;e==f&&(this.children.splice(c--,1),d.parent=null);if(0==(b-=f))break;a=0}else a-=e}25>this.size-b&&(1<this.children.length||!(this.children[0]instanceof Bb))&&(c=[],this.collapse(c),this.children=[new Bb(c)],this.children[0].parent=this)},collapse:function(a){for(var b=0;b<this.children.length;++b)this.children[b].collapse(a)},insertInner:function(a,b,c){this.size+=b.length;this.height+=c;for(var d=0;d<this.children.length;++d){var e=this.children[d], -f=e.chunkSize();if(a<=f){e.insertInner(a,b,c);if(e.lines&&50<e.lines.length){for(;50<e.lines.length;)a=e.lines.splice(e.lines.length-25,25),a=new Bb(a),e.height-=a.height,this.children.splice(d+1,0,a),a.parent=this;this.maybeSpill()}break}a-=f}},maybeSpill:function(){if(!(10>=this.children.length)){var a=this;do{var b=a.children.splice(a.children.length-5,5),b=new Cb(b);if(a.parent){a.size-=b.size;a.height-=b.height;var c=D(a.parent.children,a);a.parent.children.splice(c+1,0,b)}else c=new Cb(a.children), -c.parent=a,a.children=[c,b],a=c;b.parent=a.parent}while(10<a.children.length);a.parent.maybeSpill()}},iterN:function(a,b,c){for(var d=0;d<this.children.length;++d){var e=this.children[d],f=e.chunkSize();if(a<f){f=Math.min(b,f-a);if(e.iterN(a,f,c))return!0;if(0==(b-=f))break;a=0}else a-=f}}};var og=0,P=q.Doc=function(a,b,c){if(!(this instanceof P))return new P(a,b,c);null==c&&(c=0);Cb.call(this,[new Bb([new Ab("",null)])]);this.first=c;this.scrollTop=this.scrollLeft=0;this.cantEdit=!1;this.cleanGeneration= -1;this.frontier=c;c=r(c,0);this.sel=ga(c);this.history=new uc(null);this.id=++og;this.modeOption=b;"string"==typeof a&&(a=sa(a));qd(this,{from:c,to:c,text:a});H(this,ga(c),ha)};P.prototype=ff(Cb.prototype,{constructor:P,iter:function(a,b,c){c?this.iterN(a-this.first,b-a,c):this.iterN(this.first,this.first+this.size,a)},insert:function(a,b){for(var c=0,d=0;d<b.length;++d)c+=b[d].height;this.insertInner(a-this.first,b,c)},remove:function(a,b){this.removeInner(a-this.first,b)},getValue:function(a){var b= -xd(this,this.first,this.first+this.size);return!1===a?b:b.join(a||"\n")},setValue:N(function(a){var b=r(this.first,0),c=this.first+this.size-1;Oa(this,{from:b,to:r(c,u(this,c).text.length),text:sa(a),origin:"setValue",full:!0},!0);H(this,ga(b))}),replaceRange:function(a,b,c,d){b=w(this,b);c=c?w(this,c):b;wb(this,a,b,c,d)},getRange:function(a,b,c){a=Da(this,w(this,a),w(this,b));return!1===c?a:a.join(c||"\n")},getLine:function(a){return(a=this.getLineHandle(a))&&a.text},getLineHandle:function(a){if(qb(this, -a))return u(this,a)},getLineNumber:function(a){return F(a)},getLineHandleVisualStart:function(a){"number"==typeof a&&(a=u(this,a));return ia(a)},lineCount:function(){return this.size},firstLine:function(){return this.first},lastLine:function(){return this.first+this.size-1},clipPos:function(a){return w(this,a)},getCursor:function(a){var b=this.sel.primary();return null==a||"head"==a?b.head:"anchor"==a?b.anchor:"end"==a||"to"==a||!1===a?b.to():b.from()},listSelections:function(){return this.sel.ranges}, -somethingSelected:function(){return this.sel.somethingSelected()},setCursor:N(function(a,b,c){a=w(this,"number"==typeof a?r(a,b||0):a);H(this,ga(a,null),c)}),setSelection:N(function(a,b,c){var d=w(this,a);a=w(this,b||a);H(this,ga(d,a),c)}),extendSelection:N(function(a,b,c){Ub(this,w(this,a),b&&w(this,b),c)}),extendSelections:N(function(a,b){for(var c=[],d=0;d<a.length;d++)c[d]=w(this,a[d]);ae(this,c)}),extendSelectionsBy:N(function(a,b){ae(this,ob(this.sel.ranges,a),b)}),setSelections:N(function(a, -b,c){if(a.length){for(var d=0,e=[];d<a.length;d++)e[d]=new z(w(this,a[d].anchor),w(this,a[d].head));null==b&&(b=Math.min(a.length-1,this.sel.primIndex));H(this,Z(e,b),c)}}),addSelection:N(function(a,b,c){var d=this.sel.ranges.slice(0);d.push(new z(w(this,a),w(this,b||a)));H(this,Z(d,d.length-1),c)}),getSelection:function(a){for(var b=this.sel.ranges,c,d=0;d<b.length;d++){var e=Da(this,b[d].from(),b[d].to());c=c?c.concat(e):e}return!1===a?c:c.join(a||"\n")},getSelections:function(a){for(var b=[],c= -this.sel.ranges,d=0;d<c.length;d++){var e=Da(this,c[d].from(),c[d].to());!1!==a&&(e=e.join(a||"\n"));b[d]=e}return b},replaceSelection:function(a,b,c){for(var d=[],e=0;e<this.sel.ranges.length;e++)d[e]=a;this.replaceSelections(d,b,c||"+input")},replaceSelections:N(function(a,b,c){for(var d=[],e=this.sel,f=0;f<e.ranges.length;f++){var g=e.ranges[f];d[f]={from:g.from(),to:g.to(),text:sa(a[f]),origin:c}}if(f=b&&"end"!=b){f=[];c=a=r(this.first,0);for(e=0;e<d.length;e++){var h=d[e],g=Ee(h.from,a,c),k= -Ee(ta(h),a,c);a=h.to;c=k;"around"==b?(h=this.sel.ranges[e],h=0>y(h.head,h.anchor),f[e]=new z(h?k:g,h?g:k)):f[e]=new z(g,g)}f=new la(f,this.sel.primIndex)}b=f;for(f=d.length-1;0<=f;f--)Oa(this,d[f]);b?be(this,b):this.cm&&Pa(this.cm)}),undo:N(function(){kc(this,"undo")}),redo:N(function(){kc(this,"redo")}),undoSelection:N(function(){kc(this,"undo",!0)}),redoSelection:N(function(){kc(this,"redo",!0)}),setExtending:function(a){this.extend=a},getExtending:function(){return this.extend},historySize:function(){for(var a= -this.history,b=0,c=0,d=0;d<a.done.length;d++)a.done[d].ranges||++b;for(d=0;d<a.undone.length;d++)a.undone[d].ranges||++c;return{undo:b,redo:c}},clearHistory:function(){this.history=new uc(this.history.maxGeneration)},markClean:function(){this.cleanGeneration=this.changeGeneration(!0)},changeGeneration:function(a){a&&(this.history.lastOp=this.history.lastSelOp=this.history.lastOrigin=null);return this.history.generation},isClean:function(a){return this.history.generation==(a||this.cleanGeneration)}, -getHistory:function(){return{done:Xa(this.history.done),undone:Xa(this.history.undone)}},setHistory:function(a){var b=this.history=new uc(this.history.maxGeneration);b.done=Xa(a.done.slice(0),null,!0);b.undone=Xa(a.undone.slice(0),null,!0)},addLineClass:N(function(a,b,c){return nc(this,a,"gutter"==b?"gutter":"class",function(a){var e="text"==b?"textClass":"background"==b?"bgClass":"gutter"==b?"gutterClass":"wrapClass";if(a[e]){if(Fb(c).test(a[e]))return!1;a[e]+=" "+c}else a[e]=c;return!0})}),removeLineClass:N(function(a, -b,c){return nc(this,a,"gutter"==b?"gutter":"class",function(a){var e="text"==b?"textClass":"background"==b?"bgClass":"gutter"==b?"gutterClass":"wrapClass",f=a[e];if(f)if(null==c)a[e]=null;else{var g=f.match(Fb(c));if(!g)return!1;var h=g.index+g[0].length;a[e]=f.slice(0,g.index)+(g.index&&h!=f.length?" ":"")+f.slice(h)||null}else return!1;return!0})}),addLineWidget:N(function(a,b,c){return $f(this,a,b,c)}),removeLineWidget:function(a){a.clear()},markText:function(a,b,c){return Wa(this,w(this,a),w(this, -b),c,"range")},setBookmark:function(a,b){var c={replacedWith:b&&(null==b.nodeType?b.widget:b),insertLeft:b&&b.insertLeft,clearWhenEmpty:!1,shared:b&&b.shared,handleMouseEvents:b&&b.handleMouseEvents};a=w(this,a);return Wa(this,a,a,c,"bookmark")},findMarksAt:function(a){a=w(this,a);var b=[],c=u(this,a.line).markedSpans;if(c)for(var d=0;d<c.length;++d){var e=c[d];(null==e.from||e.from<=a.ch)&&(null==e.to||e.to>=a.ch)&&b.push(e.marker.parent||e.marker)}return b},findMarks:function(a,b,c){a=w(this,a); -b=w(this,b);var d=[],e=a.line;this.iter(a.line,b.line+1,function(f){if(f=f.markedSpans)for(var g=0;g<f.length;g++){var h=f[g];e==a.line&&a.ch>h.to||null==h.from&&e!=a.line||e==b.line&&h.from>b.ch||c&&!c(h.marker)||d.push(h.marker.parent||h.marker)}++e});return d},getAllMarks:function(){var a=[];this.iter(function(b){if(b=b.markedSpans)for(var c=0;c<b.length;++c)null!=b[c].from&&a.push(b[c].marker)});return a},posFromIndex:function(a){var b,c=this.first;this.iter(function(d){d=d.text.length+1;if(d> -a)return b=a,!0;a-=d;++c});return w(this,r(c,b))},indexFromPos:function(a){a=w(this,a);var b=a.ch;if(a.line<this.first||0>a.ch)return 0;this.iter(this.first,a.line,function(a){b+=a.text.length+1});return b},copy:function(a){var b=new P(xd(this,this.first,this.first+this.size),this.modeOption,this.first);b.scrollTop=this.scrollTop;b.scrollLeft=this.scrollLeft;b.sel=this.sel;b.extend=!1;a&&(b.history.undoDepth=this.history.undoDepth,b.setHistory(this.getHistory()));return b},linkedDoc:function(a){a|| -(a={});var b=this.first,c=this.first+this.size;null!=a.from&&a.from>b&&(b=a.from);null!=a.to&&a.to<c&&(c=a.to);b=new P(xd(this,b,c),a.mode||this.modeOption,b);a.sharedHist&&(b.history=this.history);(this.linked||(this.linked=[])).push({doc:b,sharedHist:a.sharedHist});b.linked=[{doc:this,isParent:!0,sharedHist:a.sharedHist}];a=Re(this);for(c=0;c<a.length;c++){var d=a[c],e=d.find(),f=b.clipPos(e.from),e=b.clipPos(e.to);y(f,e)&&(f=Wa(b,f,e,d.primary,d.primary.type),d.markers.push(f),f.parent=d)}return b}, -unlinkDoc:function(a){a instanceof q&&(a=a.doc);if(this.linked)for(var b=0;b<this.linked.length;++b)if(this.linked[b].doc==a){this.linked.splice(b,1);a.unlinkDoc(this);Yf(Re(this));break}if(a.history==this.history){var c=[a.id];Ga(a,function(a){c.push(a.id)},!0);a.history=new uc(null);a.history.done=Xa(this.history.done,c);a.history.undone=Xa(this.history.undone,c)}},iterLinkedDocs:function(a){Ga(this,a)},getMode:function(){return this.mode},getEditor:function(){return this.cm}});P.prototype.eachLine= -P.prototype.iter;var pg=["iter","insert","remove","copy","getEditor"],Jb;for(Jb in P.prototype)P.prototype.hasOwnProperty(Jb)&&0>D(pg,Jb)&&(q.prototype[Jb]=function(a){return function(){return a.apply(this.doc,arguments)}}(P.prototype[Jb]));Ya(P);var O=q.e_preventDefault=function(a){a.preventDefault?a.preventDefault():a.returnValue=!1},qg=q.e_stopPropagation=function(a){a.stopPropagation?a.stopPropagation():a.cancelBubble=!0},jd=q.e_stop=function(a){O(a);qg(a)},v=q.on=function(a,b,c){a.addEventListener? -a.addEventListener(b,c,!1):a.attachEvent?a.attachEvent("on"+b,c):(a=a._handlers||(a._handlers={}),(a[b]||(a[b]=[])).push(c))},ka=q.off=function(a,b,c){if(a.removeEventListener)a.removeEventListener(b,c,!1);else if(a.detachEvent)a.detachEvent("on"+b,c);else if(a=a._handlers&&a._handlers[b])for(b=0;b<a.length;++b)if(a[b]==c){a.splice(b,1);break}},K=q.signal=function(a,b){var c=a._handlers&&a._handlers[b];if(c)for(var d=Array.prototype.slice.call(arguments,2),e=0;e<c.length;++e)c[e].apply(null,d)},Db= -null,Hd=30,Ae=q.Pass={toString:function(){return"CodeMirror.Pass"}},ha={scroll:!1},kd={origin:"*mouse"},Gb={origin:"+move"};bb.prototype.set=function(a,b){clearTimeout(this.id);this.id=setTimeout(b,a)};var aa=q.countColumn=function(a,b,c,d,e){null==b&&(b=a.search(/[^\s\u00a0]/),-1==b&&(b=a.length));d=d||0;for(e=e||0;;){var f=a.indexOf("\t",d);if(0>f||f>=b)return e+(b-d);e+=f-d;e+=c-e%c;d=f+1}},vc=[""],Za=function(a){a.select()};Qa?Za=function(a){a.selectionStart=0;a.selectionEnd=a.value.length}:B&& -(Za=function(a){try{a.select()}catch(b){}});var rg=/[\u00df\u0587\u0590-\u05f4\u0600-\u06ff\u3040-\u309f\u30a0-\u30ff\u3400-\u4db5\u4e00-\u9fcc\uac00-\ud7af]/,gf=q.isWordChar=function(a){return/\w/.test(a)||"€"<a&&(a.toUpperCase()!=a.toLowerCase()||rg.test(a))},ig=/[\u0300-\u036f\u0483-\u0489\u0591-\u05bd\u05bf\u05c1\u05c2\u05c4\u05c5\u05c7\u0610-\u061a\u064b-\u065e\u0670\u06d6-\u06dc\u06de-\u06e4\u06e7\u06e8\u06ea-\u06ed\u0711\u0730-\u074a\u07a6-\u07b0\u07eb-\u07f3\u0816-\u0819\u081b-\u0823\u0825-\u0827\u0829-\u082d\u0900-\u0902\u093c\u0941-\u0948\u094d\u0951-\u0955\u0962\u0963\u0981\u09bc\u09be\u09c1-\u09c4\u09cd\u09d7\u09e2\u09e3\u0a01\u0a02\u0a3c\u0a41\u0a42\u0a47\u0a48\u0a4b-\u0a4d\u0a51\u0a70\u0a71\u0a75\u0a81\u0a82\u0abc\u0ac1-\u0ac5\u0ac7\u0ac8\u0acd\u0ae2\u0ae3\u0b01\u0b3c\u0b3e\u0b3f\u0b41-\u0b44\u0b4d\u0b56\u0b57\u0b62\u0b63\u0b82\u0bbe\u0bc0\u0bcd\u0bd7\u0c3e-\u0c40\u0c46-\u0c48\u0c4a-\u0c4d\u0c55\u0c56\u0c62\u0c63\u0cbc\u0cbf\u0cc2\u0cc6\u0ccc\u0ccd\u0cd5\u0cd6\u0ce2\u0ce3\u0d3e\u0d41-\u0d44\u0d4d\u0d57\u0d62\u0d63\u0dca\u0dcf\u0dd2-\u0dd4\u0dd6\u0ddf\u0e31\u0e34-\u0e3a\u0e47-\u0e4e\u0eb1\u0eb4-\u0eb9\u0ebb\u0ebc\u0ec8-\u0ecd\u0f18\u0f19\u0f35\u0f37\u0f39\u0f71-\u0f7e\u0f80-\u0f84\u0f86\u0f87\u0f90-\u0f97\u0f99-\u0fbc\u0fc6\u102d-\u1030\u1032-\u1037\u1039\u103a\u103d\u103e\u1058\u1059\u105e-\u1060\u1071-\u1074\u1082\u1085\u1086\u108d\u109d\u135f\u1712-\u1714\u1732-\u1734\u1752\u1753\u1772\u1773\u17b7-\u17bd\u17c6\u17c9-\u17d3\u17dd\u180b-\u180d\u18a9\u1920-\u1922\u1927\u1928\u1932\u1939-\u193b\u1a17\u1a18\u1a56\u1a58-\u1a5e\u1a60\u1a62\u1a65-\u1a6c\u1a73-\u1a7c\u1a7f\u1b00-\u1b03\u1b34\u1b36-\u1b3a\u1b3c\u1b42\u1b6b-\u1b73\u1b80\u1b81\u1ba2-\u1ba5\u1ba8\u1ba9\u1c2c-\u1c33\u1c36\u1c37\u1cd0-\u1cd2\u1cd4-\u1ce0\u1ce2-\u1ce8\u1ced\u1dc0-\u1de6\u1dfd-\u1dff\u200c\u200d\u20d0-\u20f0\u2cef-\u2cf1\u2de0-\u2dff\u302a-\u302f\u3099\u309a\ua66f-\ua672\ua67c\ua67d\ua6f0\ua6f1\ua802\ua806\ua80b\ua825\ua826\ua8c4\ua8e0-\ua8f1\ua926-\ua92d\ua947-\ua951\ua980-\ua982\ua9b3\ua9b6-\ua9b9\ua9bc\uaa29-\uaa2e\uaa31\uaa32\uaa35\uaa36\uaa43\uaa4c\uaab0\uaab2-\uaab4\uaab7\uaab8\uaabe\uaabf\uaac1\uabe5\uabe8\uabed\udc00-\udfff\ufb1e\ufe00-\ufe0f\ufe20-\ufe26\uff9e\uff9f]/, -Ea;Ea=document.createRange?function(a,b,c,d){var e=document.createRange();e.setEnd(d||a,c);e.setStart(a,b);return e}:function(a,b,c){var d=document.body.createTextRange();try{d.moveToElementText(a.parentNode)}catch(e){return d}d.collapse(!0);d.moveEnd("character",c);d.moveStart("character",b);return d};var Wc=q.contains=function(a,b){3==b.nodeType&&(b=b.parentNode);if(a.contains)return a.contains(b);do if(11==b.nodeType&&(b=b.host),b==a)return!0;while(b=b.parentNode)};B&&11>C&&(fa=function(){try{return document.activeElement}catch(a){return document.body}}); -var kb=q.rmClass=function(a,b){var c=a.className,d=Fb(b).exec(c);if(d){var e=c.slice(d.index+d[0].length);a.className=c.slice(0,d.index)+(e?d[1]+e:"")}},mb=q.addClass=function(a,b){var c=a.className;Fb(b).test(c)||(a.className+=(c?" ":"")+b)},Dd=!1,Lf=function(){if(B&&9>C)return!1;var a=t("div");return"draggable"in a||"dragDrop"in a}(),yd,vd,sa=q.splitLines=3!="\n\nb".split(/\n/).length?function(a){for(var b=0,c=[],d=a.length;b<=d;){var e=a.indexOf("\n",b);-1==e&&(e=a.length);var f=a.slice(b,"\r"== -a.charAt(e-1)?e-1:e),g=f.indexOf("\r");-1!=g?(c.push(f.slice(0,g)),b+=g+1):(c.push(f),b=e+1)}return c}:function(a){return a.split(/\r\n?|\n/)},ng=window.getSelection?function(a){try{return a.selectionStart!=a.selectionEnd}catch(b){return!1}}:function(a){try{var b=a.ownerDocument.selection.createRange()}catch(c){}return b&&b.parentElement()==a?0!=b.compareEndPoints("StartToEnd",b):!1},Ce=function(){var a=t("div");if("oncopy"in a)return!0;a.setAttribute("oncopy","return;");return"function"==typeof a.oncopy}(), -bd=null,va={3:"Enter",8:"Backspace",9:"Tab",13:"Enter",16:"Shift",17:"Ctrl",18:"Alt",19:"Pause",20:"CapsLock",27:"Esc",32:"Space",33:"PageUp",34:"PageDown",35:"End",36:"Home",37:"Left",38:"Up",39:"Right",40:"Down",44:"PrintScrn",45:"Insert",46:"Delete",59:";",61:"\x3d",91:"Mod",92:"Mod",93:"Mod",107:"\x3d",109:"-",127:"Delete",173:"-",186:";",187:"\x3d",188:",",189:"-",190:".",191:"/",192:"`",219:"[",220:"\\",221:"]",222:"'",63232:"Up",63233:"Down",63234:"Left",63235:"Right",63272:"Delete",63273:"Home", -63275:"End",63276:"PageUp",63277:"PageDown",63302:"Insert"};q.keyNames=va;(function(){for(var a=0;10>a;a++)va[a+48]=va[a+96]=String(a);for(a=65;90>=a;a++)va[a]=String.fromCharCode(a);for(a=1;12>=a;a++)va[a+111]=va[a+63235]="F"+a})();var vb,gg=function(){function a(a){return 247>=a?"bbbbbbbbbtstwsbbbbbbbbbbbbbbssstwNN%%%NNNNNN,N,N1111111111NNNNNNNLLLLLLLLLLLLLLLLLLLLLLLLLLNNNNNNLLLLLLLLLLLLLLLLLLLLLLLLLLNNNNbbbbbbsbbbbbbbbbbbbbbbbbbbbbbbbbb,N%%%%NNNNLNNNNN%%11NLNNN1LNNNNNLLLLLLLLLLLLLLLLLLLLLLLNLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLN".charAt(a): -1424<=a&&1524>=a?"R":1536<=a&&1773>=a?"rrrrrrrrrrrr,rNNmmmmmmrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrmmmmmmmmmmmmmmrrrrrrrnnnnnnnnnn%nnrrrmrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrmmmmmmmmmmmmmmmmmmmNmmmm".charAt(a-1536):1774<=a&&2220>=a?"r":8192<=a&&8203>=a?"w":8204==a?"b":"L"}function b(a,b,c){this.level=a;this.from=b;this.to=c}var c=/[\u0590-\u05f4\u0600-\u06ff\u0700-\u08ac]/,d=/[stwN]/,e=/[LRr]/,f=/[Lb1n]/,g=/[1n]/;return function(h){if(!c.test(h))return!1; -for(var k=h.length,l=[],m=0,p;m<k;++m)l.push(a(h.charCodeAt(m)));for(var m=0,n="L";m<k;++m)p=l[m],"m"==p?l[m]=n:n=p;m=0;for(n="L";m<k;++m)p=l[m],"1"==p&&"r"==n?l[m]="n":e.test(p)&&(n=p,"r"==p&&(l[m]="R"));m=1;for(n=l[0];m<k-1;++m)p=l[m],"+"==p&&"1"==n&&"1"==l[m+1]?l[m]="1":","!=p||n!=l[m+1]||"1"!=n&&"n"!=n||(l[m]=n),n=p;for(m=0;m<k;++m)if(p=l[m],","==p)l[m]="N";else if("%"==p){for(n=m+1;n<k&&"%"==l[n];++n);var q=m&&"!"==l[m-1]||n<k&&"1"==l[n]?"1":"N";for(p=m;p<n;++p)l[p]=q;m=n-1}m=0;for(n="L";m<k;++m)p= -l[m],"L"==n&&"1"==p?l[m]="L":e.test(p)&&(n=p);for(m=0;m<k;++m)if(d.test(l[m])){for(n=m+1;n<k&&d.test(l[n]);++n);p="L"==(n<k?l[n]:"L");q="L"==(m?l[m-1]:"L")||p?"L":"R";for(p=m;p<n;++p)l[p]=q;m=n-1}for(var n=[],r,m=0;m<k;)if(f.test(l[m])){p=m;for(++m;m<k&&f.test(l[m]);++m);n.push(new b(0,p,m))}else{var t=m,q=n.length;for(++m;m<k&&"L"!=l[m];++m);for(p=t;p<m;)if(g.test(l[p])){t<p&&n.splice(q,0,new b(1,t,p));t=p;for(++p;p<m&&g.test(l[p]);++p);n.splice(q,0,new b(2,t,p));t=p}else++p;t<m&&n.splice(q,0,new b(1, -t,m))}1==n[0].level&&(r=h.match(/^\s+/))&&(n[0].from=r[0].length,n.unshift(new b(0,0,r[0].length)));1==A(n).level&&(r=h.match(/\s+$/))&&(A(n).to-=r[0].length,n.push(new b(0,k-r[0].length,k)));2==n[0].level&&n.unshift(new b(1,n[0].to,n[0].to));n[0].level!=A(n).level&&n.push(new b(n[0].level,k,k));return n}}();q.version="5.2.0";return q}); \ No newline at end of file diff --git a/admin/plugins/ckeditor/samples/toolbarconfigurator/lib/codemirror/javascript.js b/admin/plugins/ckeditor/samples/toolbarconfigurator/lib/codemirror/javascript.js deleted file mode 100644 index c76ab46..0000000 --- a/admin/plugins/ckeditor/samples/toolbarconfigurator/lib/codemirror/javascript.js +++ /dev/null @@ -1,25 +0,0 @@ -(function(p){"object"==typeof exports&&"object"==typeof module?p(require("../../lib/codemirror")):"function"==typeof define&&define.amd?define(["../../lib/codemirror"],p):p(CodeMirror)})(function(p){p.defineMode("javascript",function(oa,t){function q(a,c,e){E=a;I=e;return c}function w(a,c){var e=a.next();if('"'==e||"'"==e)return c.tokenize=pa(e),c.tokenize(a,c);if("."==e&&a.match(/^\d+(?:[eE][+\-]?\d+)?/))return q("number","number");if("."==e&&a.match(".."))return q("spread","meta");if(/[\[\]{}\(\),;\:\.]/.test(e))return q(e); -if("\x3d"==e&&a.eat("\x3e"))return q("\x3d\x3e","operator");if("0"==e&&a.eat(/x/i))return a.eatWhile(/[\da-f]/i),q("number","number");if(/\d/.test(e))return a.match(/^\d*(?:\.\d*)?(?:[eE][+\-]?\d+)?/),q("number","number");if("/"==e){if(a.eat("*"))return c.tokenize=J,J(a,c);if(a.eat("/"))return a.skipToEnd(),q("comment","comment");if("operator"==c.lastType||"keyword c"==c.lastType||"sof"==c.lastType||/^[\[{}\(,;:]$/.test(c.lastType)){a:for(var e=!1,d,b=!1;null!=(d=a.next());){if(!e){if("/"==d&&!b)break a; -"["==d?b=!0:b&&"]"==d&&(b=!1)}e=!e&&"\\"==d}a.match(/^\b(([gimyu])(?![gimyu]*\2))+\b/);return q("regexp","string-2")}a.eatWhile(K);return q("operator","operator",a.current())}if("`"==e)return c.tokenize=Q,Q(a,c);if("#"==e)return a.skipToEnd(),q("error","error");if(K.test(e))return a.eatWhile(K),q("operator","operator",a.current());if(R.test(e))return a.eatWhile(R),e=a.current(),(d=ba.propertyIsEnumerable(e)&&ba[e])&&"."!=c.lastType?q(d.type,d.style,e):q("variable","variable",e)}function pa(a){return function(c, -e){var d=!1,b;if(L&&"@"==c.peek()&&c.match(qa))return e.tokenize=w,q("jsonld-keyword","meta");for(;null!=(b=c.next())&&(b!=a||d);)d=!d&&"\\"==b;d||(e.tokenize=w);return q("string","string")}}function J(a,c){for(var e=!1,d;d=a.next();){if("/"==d&&e){c.tokenize=w;break}e="*"==d}return q("comment","comment")}function Q(a,c){for(var e=!1,d;null!=(d=a.next());){if(!e&&("`"==d||"$"==d&&a.eat("{"))){c.tokenize=w;break}e=!e&&"\\"==d}return q("quasi","string-2",a.current())}function S(a,c){c.fatArrowAt&&(c.fatArrowAt= -null);var e=a.string.indexOf("\x3d\x3e",a.start);if(!(0>e)){for(var d=0,b=!1,e=e-1;0<=e;--e){var f=a.string.charAt(e),g="([{}])".indexOf(f);if(0<=g&&3>g){if(!d){++e;break}if(0==--d)break}else if(3<=g&&6>g)++d;else if(R.test(f))b=!0;else{if(/["'\/]/.test(f))return;if(b&&!d){++e;break}}}b&&!d&&(c.fatArrowAt=e)}}function ca(a,c,b,d,f,h){this.indented=a;this.column=c;this.type=b;this.prev=f;this.info=h;null!=d&&(this.align=d)}function g(){for(var a=arguments.length-1;0<=a;a--)f.cc.push(arguments[a])} -function b(){g.apply(null,arguments);return!0}function x(a){function c(c){for(;c;c=c.next)if(c.name==a)return!0;return!1}var b=f.state;b.context?(f.marked="def",c(b.localVars)||(b.localVars={name:a,next:b.localVars})):!c(b.globalVars)&&t.globalVars&&(b.globalVars={name:a,next:b.globalVars})}function y(){f.state.context={prev:f.state.context,vars:f.state.localVars};f.state.localVars=ra}function z(){f.state.localVars=f.state.context.vars;f.state.context=f.state.context.prev}function l(a,c){var b=function(){var b= -f.state,e=b.indented;if("stat"==b.lexical.type)e=b.lexical.indented;else for(var h=b.lexical;h&&")"==h.type&&h.align;h=h.prev)e=h.indented;b.lexical=new ca(e,f.stream.column(),a,null,b.lexical,c)};b.lex=!0;return b}function k(){var a=f.state;a.lexical.prev&&(")"==a.lexical.type&&(a.indented=a.lexical.indented),a.lexical=a.lexical.prev)}function m(a){function c(e){return e==a?b():";"==a?g():b(c)}return c}function r(a,c){return"var"==a?b(l("vardef",c.length),T,m(";"),k):"keyword a"==a?b(l("form"),n, -r,k):"keyword b"==a?b(l("form"),r,k):"{"==a?b(l("}"),U,k):";"==a?b():"if"==a?("else"==f.state.lexical.info&&f.state.cc[f.state.cc.length-1]==k&&f.state.cc.pop()(),b(l("form"),n,r,k,da)):"function"==a?b(v):"for"==a?b(l("form"),ea,r,k):"variable"==a?b(l("stat"),sa):"switch"==a?b(l("form"),n,l("}","switch"),m("{"),U,k,k):"case"==a?b(n,m(":")):"default"==a?b(m(":")):"catch"==a?b(l("form"),y,m("("),V,m(")"),r,k,z):"module"==a?b(l("form"),y,ta,z,k):"class"==a?b(l("form"),ua,k):"export"==a?b(l("form"),va, -k):"import"==a?b(l("form"),wa,k):g(l("stat"),n,m(";"),k)}function n(a){return fa(a,!1)}function u(a){return fa(a,!0)}function fa(a,c){if(f.state.fatArrowAt==f.stream.start){var e=c?ga:ha;if("("==a)return b(y,l(")"),F(A,")"),k,m("\x3d\x3e"),e,z);if("variable"==a)return g(y,A,m("\x3d\x3e"),e,z)}e=c?W:M;return xa.hasOwnProperty(a)?b(e):"function"==a?b(v,e):"keyword c"==a?b(c?ia:X):"("==a?b(l(")"),X,N,m(")"),k,e):"operator"==a||"spread"==a?b(c?u:n):"["==a?b(l("]"),ya,k,e):"{"==a?G(za,"}",null,e):"quasi"== -a?g(O,e):b()}function X(a){return a.match(/[;\}\)\],]/)?g():g(n)}function ia(a){return a.match(/[;\}\)\],]/)?g():g(u)}function M(a,c){return","==a?b(n):W(a,c,!1)}function W(a,c,e){var d=0==e?M:W,f=0==e?n:u;if("\x3d\x3e"==a)return b(y,e?ga:ha,z);if("operator"==a)return/\+\+|--/.test(c)?b(d):"?"==c?b(n,m(":"),f):b(f);if("quasi"==a)return g(O,d);if(";"!=a){if("("==a)return G(u,")","call",d);if("."==a)return b(Aa,d);if("["==a)return b(l("]"),X,m("]"),k,d)}}function O(a,c){return"quasi"!=a?g():"${"!=c.slice(c.length- -2)?b(O):b(n,Ba)}function Ba(a){if("}"==a)return f.marked="string-2",f.state.tokenize=Q,b(O)}function ha(a){S(f.stream,f.state);return g("{"==a?r:n)}function ga(a){S(f.stream,f.state);return g("{"==a?r:u)}function sa(a){return":"==a?b(k,r):g(M,m(";"),k)}function Aa(a){if("variable"==a)return f.marked="property",b()}function za(a,c){if("variable"==a||"keyword"==f.style)return f.marked="property","get"==c||"set"==c?b(Ca):b(H);if("number"==a||"string"==a)return f.marked=L?"property":f.style+" property", -b(H);if("jsonld-keyword"==a)return b(H);if("["==a)return b(n,m("]"),H)}function Ca(a){if("variable"!=a)return g(H);f.marked="property";return b(v)}function H(a){if(":"==a)return b(u);if("("==a)return g(v)}function F(a,c){function e(d){return","==d?(d=f.state.lexical,"call"==d.info&&(d.pos=(d.pos||0)+1),b(a,e)):d==c?b():b(m(c))}return function(d){return d==c?b():g(a,e)}}function G(a,c,e){for(var d=3;d<arguments.length;d++)f.cc.push(arguments[d]);return b(l(c,e),F(a,c),k)}function U(a){return"}"==a? -b():g(r,U)}function ja(a){if(ka&&":"==a)return b(Da)}function Da(a){if("variable"==a)return f.marked="variable-3",b()}function T(){return g(A,ja,Y,Ea)}function A(a,c){if("variable"==a)return x(c),b();if("["==a)return G(A,"]");if("{"==a)return G(Fa,"}")}function Fa(a,c){if("variable"==a&&!f.stream.match(/^\s*:/,!1))return x(c),b(Y);"variable"==a&&(f.marked="property");return b(m(":"),A,Y)}function Y(a,c){if("\x3d"==c)return b(u)}function Ea(a){if(","==a)return b(T)}function da(a,c){if("keyword b"== -a&&"else"==c)return b(l("form","else"),r,k)}function ea(a){if("("==a)return b(l(")"),Ga,m(")"),k)}function Ga(a){return"var"==a?b(T,m(";"),P):";"==a?b(P):"variable"==a?b(Ha):g(n,m(";"),P)}function Ha(a,c){return"in"==c||"of"==c?(f.marked="keyword",b(n)):b(M,P)}function P(a,c){return";"==a?b(la):"in"==c||"of"==c?(f.marked="keyword",b(n)):g(n,m(";"),la)}function la(a){")"!=a&&b(n)}function v(a,c){if("*"==c)return f.marked="keyword",b(v);if("variable"==a)return x(c),b(v);if("("==a)return b(y,l(")"), -F(V,")"),k,r,z)}function V(a){return"spread"==a?b(V):g(A,ja)}function ua(a,c){if("variable"==a)return x(c),b(ma)}function ma(a,c){if("extends"==c)return b(n,ma);if("{"==a)return b(l("}"),B,k)}function B(a,c){if("variable"==a||"keyword"==f.style){if("static"==c)return f.marked="keyword",b(B);f.marked="property";return"get"==c||"set"==c?b(Ia,v,B):b(v,B)}if("*"==c)return f.marked="keyword",b(B);if(";"==a)return b(B);if("}"==a)return b()}function Ia(a){if("variable"!=a)return g();f.marked="property"; -return b()}function ta(a,c){if("string"==a)return b(r);if("variable"==a)return x(c),b(Z)}function va(a,c){return"*"==c?(f.marked="keyword",b(Z,m(";"))):"default"==c?(f.marked="keyword",b(n,m(";"))):g(r)}function wa(a){return"string"==a?b():g(aa,Z)}function aa(a,c){if("{"==a)return G(aa,"}");"variable"==a&&x(c);"*"==c&&(f.marked="keyword");return b(Ja)}function Ja(a,c){if("as"==c)return f.marked="keyword",b(aa)}function Z(a,c){if("from"==c)return f.marked="keyword",b(n)}function ya(a){return"]"==a? -b():g(u,Ka)}function Ka(a){return"for"==a?g(N,m("]")):","==a?b(F(ia,"]")):g(F(u,"]"))}function N(a){if("for"==a)return b(ea,N);if("if"==a)return b(n,N)}var C=oa.indentUnit,na=t.statementIndent,L=t.jsonld,D=t.json||L,ka=t.typescript,R=t.wordCharacters||/[\w$\xa1-\uffff]/,ba=function(){function a(a){return{type:a,style:"keyword"}}var c=a("keyword a"),b=a("keyword b"),d=a("keyword c"),f=a("operator"),h={type:"atom",style:"atom"},c={"if":a("if"),"while":c,"with":c,"else":b,"do":b,"try":b,"finally":b, -"return":d,"break":d,"continue":d,"new":d,"delete":d,"throw":d,"debugger":d,"var":a("var"),"const":a("var"),let:a("var"),"function":a("function"),"catch":a("catch"),"for":a("for"),"switch":a("switch"),"case":a("case"),"default":a("default"),"in":f,"typeof":f,"instanceof":f,"true":h,"false":h,"null":h,undefined:h,NaN:h,Infinity:h,"this":a("this"),module:a("module"),"class":a("class"),"super":a("atom"),yield:d,"export":a("export"),"import":a("import"),"extends":d};if(ka){var b={type:"variable",style:"variable-3"}, -b={"interface":a("interface"),"extends":a("extends"),constructor:a("constructor"),"public":a("public"),"private":a("private"),"protected":a("protected"),"static":a("static"),string:b,number:b,bool:b,any:b},g;for(g in b)c[g]=b[g]}return c}(),K=/[+\-*&%=<>!?|~^]/,qa=/^@(context|id|value|language|type|container|list|set|reverse|index|base|vocab|graph)"/,E,I,xa={atom:!0,number:!0,variable:!0,string:!0,regexp:!0,"this":!0,"jsonld-keyword":!0},f={state:null,column:null,marked:null,cc:null},ra={name:"this", -next:{name:"arguments"}};k.lex=!0;return{startState:function(a){a={tokenize:w,lastType:"sof",cc:[],lexical:new ca((a||0)-C,0,"block",!1),localVars:t.localVars,context:t.localVars&&{vars:t.localVars},indented:0};t.globalVars&&"object"==typeof t.globalVars&&(a.globalVars=t.globalVars);return a},token:function(a,b){a.sol()&&(b.lexical.hasOwnProperty("align")||(b.lexical.align=!1),b.indented=a.indentation(),S(a,b));if(b.tokenize!=J&&a.eatSpace())return null;var e=b.tokenize(a,b);if("comment"==E)return e; -b.lastType="operator"!=E||"++"!=I&&"--"!=I?E:"incdec";a:{var d=E,g=I,h=b.cc;f.state=b;f.stream=a;f.marked=null;f.cc=h;f.style=e;b.lexical.hasOwnProperty("align")||(b.lexical.align=!0);for(;;)if((h.length?h.pop():D?n:r)(d,g)){for(;h.length&&h[h.length-1].lex;)h.pop()();if(f.marked){e=f.marked;break a}if(d="variable"==d)b:{for(d=b.localVars;d;d=d.next)if(d.name==g){d=!0;break b}for(h=b.context;h;h=h.prev)for(d=h.vars;d;d=d.next)if(d.name==g){d=!0;break b}d=void 0}if(d){e="variable-2";break a}break a}}return e}, -indent:function(a,b){if(a.tokenize==J)return p.Pass;if(a.tokenize!=w)return 0;var e=b&&b.charAt(0),d=a.lexical;if(!/^\s*else\b/.test(b))for(var f=a.cc.length-1;0<=f;--f){var g=a.cc[f];if(g==k)d=d.prev;else if(g!=da)break}"stat"==d.type&&"}"==e&&(d=d.prev);na&&")"==d.type&&"stat"==d.prev.type&&(d=d.prev);f=d.type;g=e==f;return"vardef"==f?d.indented+("operator"==a.lastType||","==a.lastType?d.info+1:0):"form"==f&&"{"==e?d.indented:"form"==f?d.indented+C:"stat"==f?(e=d.indented,d="operator"==a.lastType|| -","==a.lastType||K.test(b.charAt(0))||/[,.]/.test(b.charAt(0)),e+(d?na||C:0)):"switch"!=d.info||g||0==t.doubleIndentSwitch?d.align?d.column+(g?0:1):d.indented+(g?0:C):d.indented+(/^(?:case|default)\b/.test(b)?C:2*C)},electricInput:/^\s*(?:case .*?:|default:|\{|\})$/,blockCommentStart:D?null:"/*",blockCommentEnd:D?null:"*/",lineComment:D?null:"//",fold:"brace",closeBrackets:"()[]{}''\"\"``",helperType:D?"json":"javascript",jsonldMode:L,jsonMode:D}});p.registerHelper("wordChars","javascript",/[\w$]/); -p.defineMIME("text/javascript","javascript");p.defineMIME("text/ecmascript","javascript");p.defineMIME("application/javascript","javascript");p.defineMIME("application/x-javascript","javascript");p.defineMIME("application/ecmascript","javascript");p.defineMIME("application/json",{name:"javascript",json:!0});p.defineMIME("application/x-json",{name:"javascript",json:!0});p.defineMIME("application/ld+json",{name:"javascript",jsonld:!0});p.defineMIME("text/typescript",{name:"javascript",typescript:!0}); -p.defineMIME("application/typescript",{name:"javascript",typescript:!0})}); \ No newline at end of file diff --git a/admin/plugins/ckeditor/samples/toolbarconfigurator/lib/codemirror/neo.css b/admin/plugins/ckeditor/samples/toolbarconfigurator/lib/codemirror/neo.css deleted file mode 100644 index d019aab..0000000 --- a/admin/plugins/ckeditor/samples/toolbarconfigurator/lib/codemirror/neo.css +++ /dev/null @@ -1,36 +0,0 @@ -/* neo theme for codemirror */ - -/* Color scheme */ - -.cm-s-neo.CodeMirror { - background-color:#ffffff; - color:#2e383c; - line-height:1.4375; -} -.cm-s-neo .cm-comment {color:#75787b} -.cm-s-neo .cm-keyword, .cm-s-neo .cm-property {color:#1d75b3} -.cm-s-neo .cm-atom,.cm-s-neo .cm-number {color:#75438a} -.cm-s-neo .cm-node,.cm-s-neo .cm-tag {color:#9c3328} -.cm-s-neo .cm-string {color:#b35e14} -.cm-s-neo .cm-variable,.cm-s-neo .cm-qualifier {color:#047d65} - - -/* Editor styling */ - -.cm-s-neo pre { - padding:0; -} - -.cm-s-neo .CodeMirror-gutters { - border:none; - border-right:10px solid transparent; - background-color:transparent; -} - -.cm-s-neo .CodeMirror-linenumber { - padding:0; - color:#e0e2e5; -} - -.cm-s-neo .CodeMirror-guttermarker { color: #1d75b3; } -.cm-s-neo .CodeMirror-guttermarker-subtle { color: #e0e2e5; } diff --git a/admin/plugins/ckeditor/samples/toolbarconfigurator/lib/codemirror/show-hint.css b/admin/plugins/ckeditor/samples/toolbarconfigurator/lib/codemirror/show-hint.css deleted file mode 100644 index 924e638..0000000 --- a/admin/plugins/ckeditor/samples/toolbarconfigurator/lib/codemirror/show-hint.css +++ /dev/null @@ -1,38 +0,0 @@ -.CodeMirror-hints { - position: absolute; - z-index: 10; - overflow: hidden; - list-style: none; - - margin: 0; - padding: 2px; - - -webkit-box-shadow: 2px 3px 5px rgba(0,0,0,.2); - -moz-box-shadow: 2px 3px 5px rgba(0,0,0,.2); - box-shadow: 2px 3px 5px rgba(0,0,0,.2); - border-radius: 3px; - border: 1px solid silver; - - background: white; - font-size: 90%; - font-family: monospace; - - max-height: 20em; - overflow-y: auto; -} - -.CodeMirror-hint { - margin: 0; - padding: 0 4px; - border-radius: 2px; - max-width: 19em; - overflow: hidden; - white-space: pre; - color: black; - cursor: pointer; -} - -li.CodeMirror-hint-active { - background: #08f; - color: white; -} diff --git a/admin/plugins/ckeditor/samples/toolbarconfigurator/lib/codemirror/show-hint.js b/admin/plugins/ckeditor/samples/toolbarconfigurator/lib/codemirror/show-hint.js deleted file mode 100644 index 072359c..0000000 --- a/admin/plugins/ckeditor/samples/toolbarconfigurator/lib/codemirror/show-hint.js +++ /dev/null @@ -1,16 +0,0 @@ -(function(f){"object"==typeof exports&&"object"==typeof module?f(require("../../lib/codemirror")):"function"==typeof define&&define.amd?define(["../../lib/codemirror"],f):f(CodeMirror)})(function(f){function p(a,b){this.cm=a;this.options=this.buildOptions(b);this.widget=null;this.tick=this.debounce=0;this.startPos=this.cm.getCursor();this.startLen=this.cm.getLine(this.startPos.line).length;var c=this;a.on("cursorActivity",this.activityFunc=function(){c.cursorActivity()})}function w(a,b){function c(a, -c){var d;d="string"!=typeof c?function(a){return c(a,b)}:e.hasOwnProperty(c)?e[c]:c;f[a]=d}var e={Up:function(){b.moveFocus(-1)},Down:function(){b.moveFocus(1)},PageUp:function(){b.moveFocus(-b.menuSize()+1,!0)},PageDown:function(){b.moveFocus(b.menuSize()-1,!0)},Home:function(){b.setFocus(0)},End:function(){b.setFocus(b.length-1)},Enter:b.pick,Tab:b.pick,Esc:b.close},d=a.options.customKeys,f=d?{}:e;if(d)for(var g in d)d.hasOwnProperty(g)&&c(g,d[g]);if(d=a.options.extraKeys)for(g in d)d.hasOwnProperty(g)&& -c(g,d[g]);return f}function v(a,b){for(;b&&b!=a;){if("LI"===b.nodeName.toUpperCase()&&b.parentNode==a)return b;b=b.parentNode}}function n(a,b){this.completion=a;this.data=b;this.picked=!1;var c=this,e=a.cm,d=this.hints=document.createElement("ul");d.className="CodeMirror-hints";this.selectedHint=b.selectedHint||0;for(var m=b.list,g=0;g<m.length;++g){var l=d.appendChild(document.createElement("li")),h=m[g],k="CodeMirror-hint"+(g!=this.selectedHint?"":" CodeMirror-hint-active");null!=h.className&&(k= -h.className+" "+k);l.className=k;h.render?h.render(l,b,h):l.appendChild(document.createTextNode(h.displayText||("string"==typeof h?h:h.text)));l.hintId=g}var g=e.cursorCoords(a.options.alignWithWord?b.from:null),r=g.left,t=g.bottom,n=!0;d.style.left=r+"px";d.style.top=t+"px";l=window.innerWidth||Math.max(document.body.offsetWidth,document.documentElement.offsetWidth);k=window.innerHeight||Math.max(document.body.offsetHeight,document.documentElement.offsetHeight);(a.options.container||document.body).appendChild(d); -h=d.getBoundingClientRect();if(0<h.bottom-k){var u=h.bottom-h.top;0<g.top-(g.bottom-h.top)-u?(d.style.top=(t=g.top-u)+"px",n=!1):u>k&&(d.style.height=k-5+"px",d.style.top=(t=g.bottom-h.top)+"px",k=e.getCursor(),b.from.ch!=k.ch&&(g=e.cursorCoords(k),d.style.left=(r=g.left)+"px",h=d.getBoundingClientRect()))}k=h.right-l;0<k&&(h.right-h.left>l&&(d.style.width=l-5+"px",k-=h.right-h.left-l),d.style.left=(r=g.left-k)+"px");e.addKeyMap(this.keyMap=w(a,{moveFocus:function(a,b){c.changeActive(c.selectedHint+ -a,b)},setFocus:function(a){c.changeActive(a)},menuSize:function(){return c.screenAmount()},length:m.length,close:function(){a.close()},pick:function(){c.pick()},data:b}));if(a.options.closeOnUnfocus){var p;e.on("blur",this.onBlur=function(){p=setTimeout(function(){a.close()},100)});e.on("focus",this.onFocus=function(){clearTimeout(p)})}var q=e.getScrollInfo();e.on("scroll",this.onScroll=function(){var c=e.getScrollInfo(),b=e.getWrapperElement().getBoundingClientRect(),f=t+q.top-c.top,g=f-(window.pageYOffset|| -(document.documentElement||document.body).scrollTop);n||(g+=d.offsetHeight);if(g<=b.top||g>=b.bottom)return a.close();d.style.top=f+"px";d.style.left=r+q.left-c.left+"px"});f.on(d,"dblclick",function(a){(a=v(d,a.target||a.srcElement))&&null!=a.hintId&&(c.changeActive(a.hintId),c.pick())});f.on(d,"click",function(b){(b=v(d,b.target||b.srcElement))&&null!=b.hintId&&(c.changeActive(b.hintId),a.options.completeOnSingleClick&&c.pick())});f.on(d,"mousedown",function(){setTimeout(function(){e.focus()},20)}); -f.signal(b,"select",m[0],d.firstChild);return!0}f.showHint=function(a,b,c){if(!b)return a.showHint(c);c&&c.async&&(b.async=!0);b={hint:b};if(c)for(var e in c)b[e]=c[e];return a.showHint(b)};f.defineExtension("showHint",function(a){1<this.listSelections().length||this.somethingSelected()||(this.state.completionActive&&this.state.completionActive.close(),a=this.state.completionActive=new p(this,a),a.options.hint&&(f.signal(this,"startCompletion",this),a.update()))});var x=window.requestAnimationFrame|| -function(a){return setTimeout(a,1E3/60)},y=window.cancelAnimationFrame||clearTimeout;p.prototype={close:function(){this.active()&&(this.tick=this.cm.state.completionActive=null,this.cm.off("cursorActivity",this.activityFunc),this.widget&&this.widget.close(),f.signal(this.cm,"endCompletion",this.cm))},active:function(){return this.cm.state.completionActive==this},pick:function(a,b){var c=a.list[b];c.hint?c.hint(this.cm,a,c):this.cm.replaceRange("string"==typeof c?c:c.text,c.from||a.from,c.to||a.to, -"complete");f.signal(a,"pick",c);this.close()},showHints:function(a){if(!a||!a.list.length||!this.active())return this.close();this.options.completeSingle&&1==a.list.length?this.pick(a,0):this.showWidget(a)},cursorActivity:function(){this.debounce&&(y(this.debounce),this.debounce=0);var a=this.cm.getCursor(),b=this.cm.getLine(a.line);if(a.line!=this.startPos.line||b.length-a.ch!=this.startLen-this.startPos.ch||a.ch<this.startPos.ch||this.cm.somethingSelected()||a.ch&&this.options.closeCharacters.test(b.charAt(a.ch- -1)))this.close();else{var c=this;this.debounce=x(function(){c.update()});this.widget&&this.widget.disable()}},update:function(){if(null!=this.tick)if(this.data&&f.signal(this.data,"update"),this.options.hint.async){var a=++this.tick,b=this;this.options.hint(this.cm,function(c){b.tick==a&&b.finishUpdate(c)},this.options)}else this.finishUpdate(this.options.hint(this.cm,this.options),a)},finishUpdate:function(a){this.data=a;var b=this.widget&&this.widget.picked;this.widget&&this.widget.close();a&&a.list.length&& -(b&&1==a.list.length?this.pick(a,0):this.widget=new n(this,a))},showWidget:function(a){this.data=a;this.widget=new n(this,a);f.signal(a,"shown")},buildOptions:function(a){var b=this.cm.options.hintOptions,c={},e;for(e in q)c[e]=q[e];if(b)for(e in b)void 0!==b[e]&&(c[e]=b[e]);if(a)for(e in a)void 0!==a[e]&&(c[e]=a[e]);return c}};n.prototype={close:function(){if(this.completion.widget==this){this.completion.widget=null;this.hints.parentNode.removeChild(this.hints);this.completion.cm.removeKeyMap(this.keyMap); -var a=this.completion.cm;this.completion.options.closeOnUnfocus&&(a.off("blur",this.onBlur),a.off("focus",this.onFocus));a.off("scroll",this.onScroll)}},disable:function(){this.completion.cm.removeKeyMap(this.keyMap);var a=this;this.keyMap={Enter:function(){a.picked=!0}};this.completion.cm.addKeyMap(this.keyMap)},pick:function(){this.completion.pick(this.data,this.selectedHint)},changeActive:function(a,b){a>=this.data.list.length?a=b?this.data.list.length-1:0:0>a&&(a=b?0:this.data.list.length-1); -if(this.selectedHint!=a){var c=this.hints.childNodes[this.selectedHint];c.className=c.className.replace(" CodeMirror-hint-active","");c=this.hints.childNodes[this.selectedHint=a];c.className+=" CodeMirror-hint-active";c.offsetTop<this.hints.scrollTop?this.hints.scrollTop=c.offsetTop-3:c.offsetTop+c.offsetHeight>this.hints.scrollTop+this.hints.clientHeight&&(this.hints.scrollTop=c.offsetTop+c.offsetHeight-this.hints.clientHeight+3);f.signal(this.data,"select",this.data.list[this.selectedHint],c)}}, -screenAmount:function(){return Math.floor(this.hints.clientHeight/this.hints.firstChild.offsetHeight)||1}};f.registerHelper("hint","auto",function(a,b){var c=a.getHelpers(a.getCursor(),"hint");if(c.length)for(var e=0;e<c.length;e++){var d=c[e](a,b);if(d&&d.list.length)return d}else if(c=a.getHelper(a.getCursor(),"hintWords")){if(c)return f.hint.fromList(a,{words:c})}else if(f.hint.anyword)return f.hint.anyword(a,b)});f.registerHelper("hint","fromList",function(a,b){for(var c=a.getCursor(),e=a.getTokenAt(c), -d=[],m=0;m<b.words.length;m++){var g=b.words[m];g.slice(0,e.string.length)==e.string&&d.push(g)}if(d.length)return{list:d,from:f.Pos(c.line,e.start),to:f.Pos(c.line,e.end)}});f.commands.autocomplete=f.showHint;var q={hint:f.hint.auto,completeSingle:!0,alignWithWord:!0,closeCharacters:/[\s()\[\]{};:>,]/,closeOnUnfocus:!0,completeOnSingleClick:!1,container:null,customKeys:null,extraKeys:null};f.defineOption("hintOptions",null)}); \ No newline at end of file diff --git a/admin/plugins/ckeditor/skins/moono-lisa/dialog.css b/admin/plugins/ckeditor/skins/moono-lisa/dialog.css deleted file mode 100644 index 4806c2b..0000000 --- a/admin/plugins/ckeditor/skins/moono-lisa/dialog.css +++ /dev/null @@ -1,5 +0,0 @@ -/* -Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. -For licensing, see LICENSE.md or http://ckeditor.com/license -*/ -.cke_dialog{visibility:visible}.cke_dialog_body{z-index:1;background:#fff}.cke_dialog strong{font-weight:bold}.cke_dialog_title{font-weight:bold;font-size:12px;cursor:move;position:relative;color:#484848;border-bottom:1px solid #d1d1d1;padding:12px 19px 12px 12px;background:#f8f8f8;letter-spacing:.3px}.cke_dialog_spinner{border-radius:50%;width:12px;height:12px;overflow:hidden;text-indent:-9999em;border:2px solid rgba(102,102,102,0.2);border-left-color:rgba(102,102,102,1);-webkit-animation:dialog_spinner 1s infinite linear;animation:dialog_spinner 1s infinite linear}.cke_browser_ie8 .cke_dialog_spinner,.cke_browser_ie9 .cke_dialog_spinner{background:url(images/spinner.gif) center top no-repeat;width:16px;height:16px;border:0}@-webkit-keyframes dialog_spinner{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}@keyframes dialog_spinner{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}.cke_dialog_contents{background-color:#fff;overflow:auto;padding:15px 10px 5px 10px;margin-top:43px;border-top:1px solid #d1d1d1}.cke_dialog_contents_body{overflow:auto;padding:9px 10px 5px 10px;margin-top:22px}.cke_dialog_footer{text-align:right;position:relative;border-top:1px solid #d1d1d1;background:#f8f8f8}.cke_rtl .cke_dialog_footer{text-align:left}.cke_hc .cke_dialog_footer{outline:0;border-top:1px solid #fff}.cke_dialog .cke_resizer{margin-top:22px}.cke_dialog .cke_resizer_rtl{margin-left:5px}.cke_dialog .cke_resizer_ltr{margin-right:5px}.cke_dialog_tabs{height:33px;display:inline-block;margin:9px 0 0;position:absolute;z-index:2;left:11px}.cke_rtl .cke_dialog_tabs{left:auto;right:11px}a.cke_dialog_tab{height:25px;padding:4px 8px;display:inline-block;cursor:pointer;line-height:26px;outline:0;color:#484848;border:1px solid #d1d1d1;border-radius:3px 3px 0 0;background:#f8f8f8;min-width:90px;text-align:center;margin-left:-1px;letter-spacing:.3px}a.cke_dialog_tab:hover{background-color:#fff}a.cke_dialog_tab:focus{border:2px solid #139ff7;border-bottom-color:#d1d1d1;padding:3px 7px;position:relative;z-index:1}a.cke_dialog_tab_selected{background:#fff;border-bottom-color:#fff;cursor:default;filter:none}a.cke_dialog_tab_selected:hover,a.cke_dialog_tab_selected:focus{border-bottom-color:#fff}.cke_hc a.cke_dialog_tab:hover,.cke_hc a.cke_dialog_tab:focus,.cke_hc a.cke_dialog_tab_selected{border:3px solid;padding:2px 6px}a.cke_dialog_tab_disabled{color:#bababa;cursor:default}.cke_single_page .cke_dialog_tabs{display:none}.cke_single_page .cke_dialog_contents{padding-top:5px;margin-top:0;border-top:0}a.cke_dialog_close_button{background-image:url(images/close.png);background-repeat:no-repeat;background-position:50%;position:absolute;cursor:pointer;text-align:center;height:16px;width:16px;top:11px;z-index:5;opacity:.7;filter:alpha(opacity = 70)}.cke_rtl .cke_dialog_close_button{left:12px}.cke_ltr .cke_dialog_close_button{right:12px}.cke_hc a.cke_dialog_close_button{background-image:none}.cke_hidpi a.cke_dialog_close_button{background-image:url(images/hidpi/close.png);background-size:16px}a.cke_dialog_close_button:hover{opacity:1;filter:alpha(opacity = 100)}a.cke_dialog_close_button span{display:none}.cke_hc a.cke_dialog_close_button span{display:inline;cursor:pointer;font-weight:bold;position:relative;top:3px}div.cke_disabled .cke_dialog_ui_labeled_content div *{background-color:#ddd;cursor:default}.cke_dialog_ui_vbox table,.cke_dialog_ui_hbox table{margin:auto}.cke_dialog_ui_vbox_child{padding:5px 0}.cke_dialog_ui_hbox{width:100%;margin-top:12px}.cke_dialog_ui_hbox_first,.cke_dialog_ui_hbox_child,.cke_dialog_ui_hbox_last{vertical-align:top}.cke_ltr .cke_dialog_ui_hbox_first,.cke_ltr .cke_dialog_ui_hbox_child{padding-right:10px}.cke_rtl .cke_dialog_ui_hbox_first,.cke_rtl .cke_dialog_ui_hbox_child{padding-left:10px}.cke_ltr .cke_dialog_footer_buttons .cke_dialog_ui_hbox_first,.cke_ltr .cke_dialog_footer_buttons .cke_dialog_ui_hbox_child{padding-right:5px}.cke_rtl .cke_dialog_footer_buttons .cke_dialog_ui_hbox_first,.cke_rtl .cke_dialog_footer_buttons .cke_dialog_ui_hbox_child{padding-left:5px;padding-right:0}.cke_hc div.cke_dialog_ui_input_text,.cke_hc div.cke_dialog_ui_input_password,.cke_hc div.cke_dialog_ui_input_textarea,.cke_hc div.cke_dialog_ui_input_select,.cke_hc div.cke_dialog_ui_input_file{border:1px solid}textarea.cke_dialog_ui_input_textarea{overflow:auto;resize:none}input.cke_dialog_ui_input_text,input.cke_dialog_ui_input_password,textarea.cke_dialog_ui_input_textarea{background-color:#fff;border:1px solid #bcbcbc;padding:4px 6px;outline:0;width:100%;*width:95%;box-sizing:border-box;border-radius:2px;min-height:28px;margin-left:1px}input.cke_dialog_ui_input_text:hover,input.cke_dialog_ui_input_password:hover,textarea.cke_dialog_ui_input_textarea:hover{border:1px solid #aeb3b9}input.cke_dialog_ui_input_text:focus,input.cke_dialog_ui_input_password:focus,textarea.cke_dialog_ui_input_textarea:focus,select.cke_dialog_ui_input_select:focus{outline:0;border:2px solid #139ff7}input.cke_dialog_ui_input_text:focus{padding-left:5px}textarea.cke_dialog_ui_input_textarea:focus{padding:3px 5px}select.cke_dialog_ui_input_select:focus{margin:0;width:100%!important}input.cke_dialog_ui_checkbox_input,input.cke_dialog_ui_radio_input{margin-left:1px;margin-right:2px}input.cke_dialog_ui_checkbox_input:focus,input.cke_dialog_ui_checkbox_input:active,input.cke_dialog_ui_radio_input:focus,input.cke_dialog_ui_radio_input:active{border:0;outline:2px solid #139ff7}a.cke_dialog_ui_button{display:inline-block;*display:inline;*zoom:1;padding:4px 1px;margin:0;text-align:center;color:#484848;vertical-align:middle;cursor:pointer;border:1px solid #bcbcbc;border-radius:2px;background:#f8f8f8;letter-spacing:.3px;line-height:18px;box-sizing:border-box}.cke_hc a.cke_dialog_ui_button{border-width:3px}span.cke_dialog_ui_button{padding:0 10px;cursor:pointer}a.cke_dialog_ui_button:hover{background:#fff}a.cke_dialog_ui_button:focus,a.cke_dialog_ui_button:active{border:2px solid #139ff7;outline:0;padding:3px 0}.cke_hc a.cke_dialog_ui_button:hover,.cke_hc a.cke_dialog_ui_button:focus,.cke_hc a.cke_dialog_ui_button:active{border:3px solid}.cke_dialog_footer_buttons a.cke_dialog_ui_button span{color:inherit;font-size:12px;font-weight:bold;padding:0 12px}a.cke_dialog_ui_button_ok{color:#fff;background:#09863e;border:1px solid #09863e}.cke_hc a.cke_dialog_ui_button{border:3px solid #bcbcbc}a.cke_dialog_ui_button_ok:hover{background:#53aa78;border-color:#53aa78}a.cke_dialog_ui_button_ok:focus{box-shadow:inset 0 0 0 2px #FFF}a.cke_dialog_ui_button_ok:focus,a.cke_dialog_ui_button_ok:active{border-color:#139ff7}.cke_hc a.cke_dialog_ui_button_ok:hover,.cke_hc a.cke_dialog_ui_button_ok:focus,.cke_hc a.cke_dialog_ui_button_ok:active{border-color:#484848}a.cke_dialog_ui_button_ok.cke_disabled{background:#d1d1d1;border-color:#d1d1d1;cursor:default}a.cke_dialog_ui_button_ok.cke_disabled span{cursor:default}.cke_dialog_footer_buttons{display:inline-table;margin:5px;width:auto;position:relative;vertical-align:middle}div.cke_dialog_ui_input_select{display:table}select.cke_dialog_ui_input_select{height:28px;line-height:28px;background-color:#fff;border:1px solid #bcbcbc;padding:3px 3px 3px 6px;outline:0;border-radius:2px;margin:0 1px;box-sizing:border-box;width:calc(100% - 2px)!important}.cke_dialog_ui_input_file{width:100%;height:25px}.cke_hc .cke_dialog_ui_labeled_content input:focus,.cke_hc .cke_dialog_ui_labeled_content select:focus,.cke_hc .cke_dialog_ui_labeled_content textarea:focus{outline:1px dotted}.cke_dialog_ui_labeled_label{margin-left:1px}.cke_dialog .cke_dark_background{background-color:transparent}.cke_dialog .cke_light_background{background-color:#ebebeb}.cke_dialog .cke_centered{text-align:center}.cke_dialog a.cke_btn_reset{float:right;background:url(images/refresh.png) top left no-repeat;width:16px;height:16px;border:1px none;font-size:1px}.cke_hidpi .cke_dialog a.cke_btn_reset{background-size:16px;background-image:url(images/hidpi/refresh.png)}.cke_rtl .cke_dialog a.cke_btn_reset{float:left}.cke_dialog a.cke_btn_locked,.cke_dialog a.cke_btn_unlocked{float:left;width:16px;height:16px;background-repeat:no-repeat;border:none 1px;font-size:1px}.cke_dialog a.cke_btn_locked,.cke_dialog a.cke_btn_unlocked,.cke_dialog a.cke_btn_reset{margin:2px}.cke_dialog a.cke_btn_locked{background-image:url(images/lock.png)}.cke_dialog a.cke_btn_unlocked{background-image:url(images/lock-open.png)}.cke_rtl .cke_dialog a.cke_btn_locked,.cke_rtl .cke_dialog a.cke_btn_unlocked{float:right}.cke_hidpi .cke_dialog a.cke_btn_unlocked,.cke_hidpi .cke_dialog a.cke_btn_locked{background-size:16px}.cke_hidpi .cke_dialog a.cke_btn_locked{background-image:url(images/hidpi/lock.png)}.cke_hidpi .cke_dialog a.cke_btn_unlocked{background-image:url(images/hidpi/lock-open.png)}.cke_dialog a.cke_btn_locked .cke_icon{display:none}.cke_dialog a.cke_btn_over,.cke_dialog a.cke_btn_locked:hover,.cke_dialog a.cke_btn_locked:focus,.cke_dialog a.cke_btn_locked:active,.cke_dialog a.cke_btn_unlocked:hover,.cke_dialog a.cke_btn_unlocked:focus,.cke_dialog a.cke_btn_unlocked:active,.cke_dialog a.cke_btn_reset:hover,.cke_dialog a.cke_btn_reset:focus,.cke_dialog a.cke_btn_reset:active{cursor:pointer;outline:0;margin:0;border:2px solid #139ff7}.cke_dialog fieldset{border:1px solid #bcbcbc}.cke_dialog fieldset legend{padding:0 6px}.cke_dialog_ui_checkbox,.cke_dialog fieldset .cke_dialog_ui_vbox .cke_dialog_ui_checkbox{display:inline-block}.cke_dialog fieldset .cke_dialog_ui_vbox .cke_dialog_ui_checkbox{padding-top:5px}.cke_dialog_ui_checkbox .cke_dialog_ui_checkbox_input,.cke_dialog_ui_checkbox .cke_dialog_ui_checkbox_input+label,.cke_dialog fieldset .cke_dialog_ui_vbox .cke_dialog_ui_checkbox .cke_dialog_ui_checkbox_input,.cke_dialog fieldset .cke_dialog_ui_vbox .cke_dialog_ui_checkbox .cke_dialog_ui_checkbox_input+label{vertical-align:middle}.cke_dialog .ImagePreviewBox{border:1px ridge #bcbcbc;overflow:scroll;height:200px;width:300px;padding:2px;background-color:white}.cke_dialog .ImagePreviewBox table td{white-space:normal}.cke_dialog .ImagePreviewLoader{position:absolute;white-space:normal;overflow:hidden;height:160px;width:230px;margin:2px;padding:2px;opacity:.9;filter:alpha(opacity = 90);background-color:#e4e4e4}.cke_dialog .FlashPreviewBox{white-space:normal;border:1px solid #bcbcbc;overflow:auto;height:160px;width:390px;padding:2px;background-color:white}.cke_dialog .cke_pastetext{width:346px;height:170px}.cke_dialog .cke_pastetext textarea{width:340px;height:170px;resize:none}.cke_dialog iframe.cke_pasteframe{width:346px;height:130px;background-color:white;border:1px solid #aeb3b9;border-radius:3px}.cke_dialog .cke_hand{cursor:pointer}.cke_disabled{color:#a0a0a0}.cke_dialog_body .cke_label{display:none}.cke_dialog_body label{display:inline;cursor:default;letter-spacing:.3px}.cke_dialog_body label+.cke_dialog_ui_labeled_content{margin-top:2px}.cke_dialog_contents_body .cke_dialog_ui_text,.cke_dialog_contents_body .cke_dialog_ui_select,.cke_dialog_contents_body .cke_dialog_ui_hbox_last>a.cke_dialog_ui_button{margin-top:4px}a.cke_smile{overflow:hidden;display:block;text-align:center;padding:.3em 0}a.cke_smile img{vertical-align:middle}a.cke_specialchar{cursor:inherit;display:block;height:1.25em;padding:.2em .3em;text-align:center}a.cke_smile,a.cke_specialchar{border:2px solid transparent}a.cke_smile:hover,a.cke_smile:focus,a.cke_smile:active,a.cke_specialchar:hover,a.cke_specialchar:focus,a.cke_specialchar:active{background:#fff;outline:0}a.cke_smile:hover,a.cke_specialchar:hover{border-color:#888}a.cke_smile:focus,a.cke_smile:active,a.cke_specialchar:focus,a.cke_specialchar:active{border-color:#139ff7}.cke_dialog_contents a.colorChooser{display:block;margin-top:6px;margin-left:10px;width:80px}.cke_rtl .cke_dialog_contents a.colorChooser{margin-right:10px}.cke_iframe_shim{display:block;position:absolute;top:0;left:0;z-index:-1;filter:alpha(opacity = 0);width:100%;height:100%}.cke_dialog_contents_body .cke_accessibility_legend{margin:2px 7px 2px 2px}.cke_dialog_contents_body .cke_accessibility_legend:focus,.cke_dialog_contents_body .cke_accessibility_legend:active{outline:0;border:2px solid #139ff7;margin:0 5px 0 0}.cke_dialog_contents_body input[type=file]:focus,.cke_dialog_contents_body input[type=file]:active{border:2px solid #139ff7}.cke_dialog_find_fieldset{margin-top:10px!important}.cke_dialog_image_ratiolock{margin-top:52px!important}.cke_dialog_forms_select_order label.cke_dialog_ui_labeled_label{margin-left:0}.cke_dialog_forms_select_order div.cke_dialog_ui_input_select{width:100%}.cke_dialog_forms_select_order_txtsize .cke_dialog_ui_hbox_last{padding-top:4px}.cke_dialog_image_url .cke_dialog_ui_hbox_last,.cke_dialog_flash_url .cke_dialog_ui_hbox_last{vertical-align:bottom}a.cke_dialog_ui_button.cke_dialog_image_browse{margin-top:10px}.cke_dialog_contents_body .cke_tpl_list{border:#bcbcbc 1px solid;margin:1px}.cke_dialog_contents_body .cke_tpl_list:focus,.cke_dialog_contents_body .cke_tpl_list:active{outline:0;margin:0;border:2px solid #139ff7}.cke_dialog_contents_body .cke_tpl_list a:focus,.cke_dialog_contents_body .cke_tpl_list a:active{outline:0}.cke_dialog_contents_body .cke_tpl_list a:focus .cke_tpl_item,.cke_dialog_contents_body .cke_tpl_list a:active .cke_tpl_item{border:2px solid #139ff7;padding:6px} \ No newline at end of file diff --git a/admin/plugins/ckeditor/skins/moono-lisa/dialog_ie.css b/admin/plugins/ckeditor/skins/moono-lisa/dialog_ie.css deleted file mode 100644 index a5522cc..0000000 --- a/admin/plugins/ckeditor/skins/moono-lisa/dialog_ie.css +++ /dev/null @@ -1,5 +0,0 @@ -/* -Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. -For licensing, see LICENSE.md or http://ckeditor.com/license -*/ -.cke_dialog{visibility:visible}.cke_dialog_body{z-index:1;background:#fff}.cke_dialog strong{font-weight:bold}.cke_dialog_title{font-weight:bold;font-size:12px;cursor:move;position:relative;color:#484848;border-bottom:1px solid #d1d1d1;padding:12px 19px 12px 12px;background:#f8f8f8;letter-spacing:.3px}.cke_dialog_spinner{border-radius:50%;width:12px;height:12px;overflow:hidden;text-indent:-9999em;border:2px solid rgba(102,102,102,0.2);border-left-color:rgba(102,102,102,1);-webkit-animation:dialog_spinner 1s infinite linear;animation:dialog_spinner 1s infinite linear}.cke_browser_ie8 .cke_dialog_spinner,.cke_browser_ie9 .cke_dialog_spinner{background:url(images/spinner.gif) center top no-repeat;width:16px;height:16px;border:0}@-webkit-keyframes dialog_spinner{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}@keyframes dialog_spinner{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}.cke_dialog_contents{background-color:#fff;overflow:auto;padding:15px 10px 5px 10px;margin-top:43px;border-top:1px solid #d1d1d1}.cke_dialog_contents_body{overflow:auto;padding:9px 10px 5px 10px;margin-top:22px}.cke_dialog_footer{text-align:right;position:relative;border-top:1px solid #d1d1d1;background:#f8f8f8}.cke_rtl .cke_dialog_footer{text-align:left}.cke_hc .cke_dialog_footer{outline:0;border-top:1px solid #fff}.cke_dialog .cke_resizer{margin-top:22px}.cke_dialog .cke_resizer_rtl{margin-left:5px}.cke_dialog .cke_resizer_ltr{margin-right:5px}.cke_dialog_tabs{height:33px;display:inline-block;margin:9px 0 0;position:absolute;z-index:2;left:11px}.cke_rtl .cke_dialog_tabs{left:auto;right:11px}a.cke_dialog_tab{height:25px;padding:4px 8px;display:inline-block;cursor:pointer;line-height:26px;outline:0;color:#484848;border:1px solid #d1d1d1;border-radius:3px 3px 0 0;background:#f8f8f8;min-width:90px;text-align:center;margin-left:-1px;letter-spacing:.3px}a.cke_dialog_tab:hover{background-color:#fff}a.cke_dialog_tab:focus{border:2px solid #139ff7;border-bottom-color:#d1d1d1;padding:3px 7px;position:relative;z-index:1}a.cke_dialog_tab_selected{background:#fff;border-bottom-color:#fff;cursor:default;filter:none}a.cke_dialog_tab_selected:hover,a.cke_dialog_tab_selected:focus{border-bottom-color:#fff}.cke_hc a.cke_dialog_tab:hover,.cke_hc a.cke_dialog_tab:focus,.cke_hc a.cke_dialog_tab_selected{border:3px solid;padding:2px 6px}a.cke_dialog_tab_disabled{color:#bababa;cursor:default}.cke_single_page .cke_dialog_tabs{display:none}.cke_single_page .cke_dialog_contents{padding-top:5px;margin-top:0;border-top:0}a.cke_dialog_close_button{background-image:url(images/close.png);background-repeat:no-repeat;background-position:50%;position:absolute;cursor:pointer;text-align:center;height:16px;width:16px;top:11px;z-index:5;opacity:.7;filter:alpha(opacity = 70)}.cke_rtl .cke_dialog_close_button{left:12px}.cke_ltr .cke_dialog_close_button{right:12px}.cke_hc a.cke_dialog_close_button{background-image:none}.cke_hidpi a.cke_dialog_close_button{background-image:url(images/hidpi/close.png);background-size:16px}a.cke_dialog_close_button:hover{opacity:1;filter:alpha(opacity = 100)}a.cke_dialog_close_button span{display:none}.cke_hc a.cke_dialog_close_button span{display:inline;cursor:pointer;font-weight:bold;position:relative;top:3px}div.cke_disabled .cke_dialog_ui_labeled_content div *{background-color:#ddd;cursor:default}.cke_dialog_ui_vbox table,.cke_dialog_ui_hbox table{margin:auto}.cke_dialog_ui_vbox_child{padding:5px 0}.cke_dialog_ui_hbox{width:100%;margin-top:12px}.cke_dialog_ui_hbox_first,.cke_dialog_ui_hbox_child,.cke_dialog_ui_hbox_last{vertical-align:top}.cke_ltr .cke_dialog_ui_hbox_first,.cke_ltr .cke_dialog_ui_hbox_child{padding-right:10px}.cke_rtl .cke_dialog_ui_hbox_first,.cke_rtl .cke_dialog_ui_hbox_child{padding-left:10px}.cke_ltr .cke_dialog_footer_buttons .cke_dialog_ui_hbox_first,.cke_ltr .cke_dialog_footer_buttons .cke_dialog_ui_hbox_child{padding-right:5px}.cke_rtl .cke_dialog_footer_buttons .cke_dialog_ui_hbox_first,.cke_rtl .cke_dialog_footer_buttons .cke_dialog_ui_hbox_child{padding-left:5px;padding-right:0}.cke_hc div.cke_dialog_ui_input_text,.cke_hc div.cke_dialog_ui_input_password,.cke_hc div.cke_dialog_ui_input_textarea,.cke_hc div.cke_dialog_ui_input_select,.cke_hc div.cke_dialog_ui_input_file{border:1px solid}textarea.cke_dialog_ui_input_textarea{overflow:auto;resize:none}input.cke_dialog_ui_input_text,input.cke_dialog_ui_input_password,textarea.cke_dialog_ui_input_textarea{background-color:#fff;border:1px solid #bcbcbc;padding:4px 6px;outline:0;width:100%;*width:95%;box-sizing:border-box;border-radius:2px;min-height:28px;margin-left:1px}input.cke_dialog_ui_input_text:hover,input.cke_dialog_ui_input_password:hover,textarea.cke_dialog_ui_input_textarea:hover{border:1px solid #aeb3b9}input.cke_dialog_ui_input_text:focus,input.cke_dialog_ui_input_password:focus,textarea.cke_dialog_ui_input_textarea:focus,select.cke_dialog_ui_input_select:focus{outline:0;border:2px solid #139ff7}input.cke_dialog_ui_input_text:focus{padding-left:5px}textarea.cke_dialog_ui_input_textarea:focus{padding:3px 5px}select.cke_dialog_ui_input_select:focus{margin:0;width:100%!important}input.cke_dialog_ui_checkbox_input,input.cke_dialog_ui_radio_input{margin-left:1px;margin-right:2px}input.cke_dialog_ui_checkbox_input:focus,input.cke_dialog_ui_checkbox_input:active,input.cke_dialog_ui_radio_input:focus,input.cke_dialog_ui_radio_input:active{border:0;outline:2px solid #139ff7}a.cke_dialog_ui_button{display:inline-block;*display:inline;*zoom:1;padding:4px 1px;margin:0;text-align:center;color:#484848;vertical-align:middle;cursor:pointer;border:1px solid #bcbcbc;border-radius:2px;background:#f8f8f8;letter-spacing:.3px;line-height:18px;box-sizing:border-box}.cke_hc a.cke_dialog_ui_button{border-width:3px}span.cke_dialog_ui_button{padding:0 10px;cursor:pointer}a.cke_dialog_ui_button:hover{background:#fff}a.cke_dialog_ui_button:focus,a.cke_dialog_ui_button:active{border:2px solid #139ff7;outline:0;padding:3px 0}.cke_hc a.cke_dialog_ui_button:hover,.cke_hc a.cke_dialog_ui_button:focus,.cke_hc a.cke_dialog_ui_button:active{border:3px solid}.cke_dialog_footer_buttons a.cke_dialog_ui_button span{color:inherit;font-size:12px;font-weight:bold;padding:0 12px}a.cke_dialog_ui_button_ok{color:#fff;background:#09863e;border:1px solid #09863e}.cke_hc a.cke_dialog_ui_button{border:3px solid #bcbcbc}a.cke_dialog_ui_button_ok:hover{background:#53aa78;border-color:#53aa78}a.cke_dialog_ui_button_ok:focus{box-shadow:inset 0 0 0 2px #FFF}a.cke_dialog_ui_button_ok:focus,a.cke_dialog_ui_button_ok:active{border-color:#139ff7}.cke_hc a.cke_dialog_ui_button_ok:hover,.cke_hc a.cke_dialog_ui_button_ok:focus,.cke_hc a.cke_dialog_ui_button_ok:active{border-color:#484848}a.cke_dialog_ui_button_ok.cke_disabled{background:#d1d1d1;border-color:#d1d1d1;cursor:default}a.cke_dialog_ui_button_ok.cke_disabled span{cursor:default}.cke_dialog_footer_buttons{display:inline-table;margin:5px;width:auto;position:relative;vertical-align:middle}div.cke_dialog_ui_input_select{display:table}select.cke_dialog_ui_input_select{height:28px;line-height:28px;background-color:#fff;border:1px solid #bcbcbc;padding:3px 3px 3px 6px;outline:0;border-radius:2px;margin:0 1px;box-sizing:border-box;width:calc(100% - 2px)!important}.cke_dialog_ui_input_file{width:100%;height:25px}.cke_hc .cke_dialog_ui_labeled_content input:focus,.cke_hc .cke_dialog_ui_labeled_content select:focus,.cke_hc .cke_dialog_ui_labeled_content textarea:focus{outline:1px dotted}.cke_dialog_ui_labeled_label{margin-left:1px}.cke_dialog .cke_dark_background{background-color:transparent}.cke_dialog .cke_light_background{background-color:#ebebeb}.cke_dialog .cke_centered{text-align:center}.cke_dialog a.cke_btn_reset{float:right;background:url(images/refresh.png) top left no-repeat;width:16px;height:16px;border:1px none;font-size:1px}.cke_hidpi .cke_dialog a.cke_btn_reset{background-size:16px;background-image:url(images/hidpi/refresh.png)}.cke_rtl .cke_dialog a.cke_btn_reset{float:left}.cke_dialog a.cke_btn_locked,.cke_dialog a.cke_btn_unlocked{float:left;width:16px;height:16px;background-repeat:no-repeat;border:none 1px;font-size:1px}.cke_dialog a.cke_btn_locked,.cke_dialog a.cke_btn_unlocked,.cke_dialog a.cke_btn_reset{margin:2px}.cke_dialog a.cke_btn_locked{background-image:url(images/lock.png)}.cke_dialog a.cke_btn_unlocked{background-image:url(images/lock-open.png)}.cke_rtl .cke_dialog a.cke_btn_locked,.cke_rtl .cke_dialog a.cke_btn_unlocked{float:right}.cke_hidpi .cke_dialog a.cke_btn_unlocked,.cke_hidpi .cke_dialog a.cke_btn_locked{background-size:16px}.cke_hidpi .cke_dialog a.cke_btn_locked{background-image:url(images/hidpi/lock.png)}.cke_hidpi .cke_dialog a.cke_btn_unlocked{background-image:url(images/hidpi/lock-open.png)}.cke_dialog a.cke_btn_locked .cke_icon{display:none}.cke_dialog a.cke_btn_over,.cke_dialog a.cke_btn_locked:hover,.cke_dialog a.cke_btn_locked:focus,.cke_dialog a.cke_btn_locked:active,.cke_dialog a.cke_btn_unlocked:hover,.cke_dialog a.cke_btn_unlocked:focus,.cke_dialog a.cke_btn_unlocked:active,.cke_dialog a.cke_btn_reset:hover,.cke_dialog a.cke_btn_reset:focus,.cke_dialog a.cke_btn_reset:active{cursor:pointer;outline:0;margin:0;border:2px solid #139ff7}.cke_dialog fieldset{border:1px solid #bcbcbc}.cke_dialog fieldset legend{padding:0 6px}.cke_dialog_ui_checkbox,.cke_dialog fieldset .cke_dialog_ui_vbox .cke_dialog_ui_checkbox{display:inline-block}.cke_dialog fieldset .cke_dialog_ui_vbox .cke_dialog_ui_checkbox{padding-top:5px}.cke_dialog_ui_checkbox .cke_dialog_ui_checkbox_input,.cke_dialog_ui_checkbox .cke_dialog_ui_checkbox_input+label,.cke_dialog fieldset .cke_dialog_ui_vbox .cke_dialog_ui_checkbox .cke_dialog_ui_checkbox_input,.cke_dialog fieldset .cke_dialog_ui_vbox .cke_dialog_ui_checkbox .cke_dialog_ui_checkbox_input+label{vertical-align:middle}.cke_dialog .ImagePreviewBox{border:1px ridge #bcbcbc;overflow:scroll;height:200px;width:300px;padding:2px;background-color:white}.cke_dialog .ImagePreviewBox table td{white-space:normal}.cke_dialog .ImagePreviewLoader{position:absolute;white-space:normal;overflow:hidden;height:160px;width:230px;margin:2px;padding:2px;opacity:.9;filter:alpha(opacity = 90);background-color:#e4e4e4}.cke_dialog .FlashPreviewBox{white-space:normal;border:1px solid #bcbcbc;overflow:auto;height:160px;width:390px;padding:2px;background-color:white}.cke_dialog .cke_pastetext{width:346px;height:170px}.cke_dialog .cke_pastetext textarea{width:340px;height:170px;resize:none}.cke_dialog iframe.cke_pasteframe{width:346px;height:130px;background-color:white;border:1px solid #aeb3b9;border-radius:3px}.cke_dialog .cke_hand{cursor:pointer}.cke_disabled{color:#a0a0a0}.cke_dialog_body .cke_label{display:none}.cke_dialog_body label{display:inline;cursor:default;letter-spacing:.3px}.cke_dialog_body label+.cke_dialog_ui_labeled_content{margin-top:2px}.cke_dialog_contents_body .cke_dialog_ui_text,.cke_dialog_contents_body .cke_dialog_ui_select,.cke_dialog_contents_body .cke_dialog_ui_hbox_last>a.cke_dialog_ui_button{margin-top:4px}a.cke_smile{overflow:hidden;display:block;text-align:center;padding:.3em 0}a.cke_smile img{vertical-align:middle}a.cke_specialchar{cursor:inherit;display:block;height:1.25em;padding:.2em .3em;text-align:center}a.cke_smile,a.cke_specialchar{border:2px solid transparent}a.cke_smile:hover,a.cke_smile:focus,a.cke_smile:active,a.cke_specialchar:hover,a.cke_specialchar:focus,a.cke_specialchar:active{background:#fff;outline:0}a.cke_smile:hover,a.cke_specialchar:hover{border-color:#888}a.cke_smile:focus,a.cke_smile:active,a.cke_specialchar:focus,a.cke_specialchar:active{border-color:#139ff7}.cke_dialog_contents a.colorChooser{display:block;margin-top:6px;margin-left:10px;width:80px}.cke_rtl .cke_dialog_contents a.colorChooser{margin-right:10px}.cke_iframe_shim{display:block;position:absolute;top:0;left:0;z-index:-1;filter:alpha(opacity = 0);width:100%;height:100%}.cke_dialog_contents_body .cke_accessibility_legend{margin:2px 7px 2px 2px}.cke_dialog_contents_body .cke_accessibility_legend:focus,.cke_dialog_contents_body .cke_accessibility_legend:active{outline:0;border:2px solid #139ff7;margin:0 5px 0 0}.cke_dialog_contents_body input[type=file]:focus,.cke_dialog_contents_body input[type=file]:active{border:2px solid #139ff7}.cke_dialog_find_fieldset{margin-top:10px!important}.cke_dialog_image_ratiolock{margin-top:52px!important}.cke_dialog_forms_select_order label.cke_dialog_ui_labeled_label{margin-left:0}.cke_dialog_forms_select_order div.cke_dialog_ui_input_select{width:100%}.cke_dialog_forms_select_order_txtsize .cke_dialog_ui_hbox_last{padding-top:4px}.cke_dialog_image_url .cke_dialog_ui_hbox_last,.cke_dialog_flash_url .cke_dialog_ui_hbox_last{vertical-align:bottom}a.cke_dialog_ui_button.cke_dialog_image_browse{margin-top:10px}.cke_dialog_contents_body .cke_tpl_list{border:#bcbcbc 1px solid;margin:1px}.cke_dialog_contents_body .cke_tpl_list:focus,.cke_dialog_contents_body .cke_tpl_list:active{outline:0;margin:0;border:2px solid #139ff7}.cke_dialog_contents_body .cke_tpl_list a:focus,.cke_dialog_contents_body .cke_tpl_list a:active{outline:0}.cke_dialog_contents_body .cke_tpl_list a:focus .cke_tpl_item,.cke_dialog_contents_body .cke_tpl_list a:active .cke_tpl_item{border:2px solid #139ff7;padding:6px}.cke_rtl input.cke_dialog_ui_input_text,.cke_rtl input.cke_dialog_ui_input_password{padding-right:2px}.cke_rtl div.cke_dialog_ui_input_text,.cke_rtl div.cke_dialog_ui_input_password{padding-left:2px}.cke_rtl div.cke_dialog_ui_input_text{padding-right:1px}.cke_rtl .cke_dialog_ui_vbox_child,.cke_rtl .cke_dialog_ui_hbox_child,.cke_rtl .cke_dialog_ui_hbox_first,.cke_rtl .cke_dialog_ui_hbox_last{padding-right:2px!important}.cke_hc .cke_dialog_title,.cke_hc .cke_dialog_footer,.cke_hc a.cke_dialog_tab,.cke_hc a.cke_dialog_ui_button,.cke_hc a.cke_dialog_ui_button:hover,.cke_hc a.cke_dialog_ui_button_ok,.cke_hc a.cke_dialog_ui_button_ok:hover{filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.cke_hc div.cke_dialog_ui_input_text,.cke_hc div.cke_dialog_ui_input_password,.cke_hc div.cke_dialog_ui_input_textarea,.cke_hc div.cke_dialog_ui_input_select,.cke_hc div.cke_dialog_ui_input_file{border:0} \ No newline at end of file diff --git a/admin/plugins/ckeditor/skins/moono-lisa/dialog_ie8.css b/admin/plugins/ckeditor/skins/moono-lisa/dialog_ie8.css deleted file mode 100644 index 8833e5c..0000000 --- a/admin/plugins/ckeditor/skins/moono-lisa/dialog_ie8.css +++ /dev/null @@ -1,5 +0,0 @@ -/* -Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. -For licensing, see LICENSE.md or http://ckeditor.com/license -*/ -.cke_dialog{visibility:visible}.cke_dialog_body{z-index:1;background:#fff}.cke_dialog strong{font-weight:bold}.cke_dialog_title{font-weight:bold;font-size:12px;cursor:move;position:relative;color:#484848;border-bottom:1px solid #d1d1d1;padding:12px 19px 12px 12px;background:#f8f8f8;letter-spacing:.3px}.cke_dialog_spinner{border-radius:50%;width:12px;height:12px;overflow:hidden;text-indent:-9999em;border:2px solid rgba(102,102,102,0.2);border-left-color:rgba(102,102,102,1);-webkit-animation:dialog_spinner 1s infinite linear;animation:dialog_spinner 1s infinite linear}.cke_browser_ie8 .cke_dialog_spinner,.cke_browser_ie9 .cke_dialog_spinner{background:url(images/spinner.gif) center top no-repeat;width:16px;height:16px;border:0}@-webkit-keyframes dialog_spinner{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}@keyframes dialog_spinner{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}.cke_dialog_contents{background-color:#fff;overflow:auto;padding:15px 10px 5px 10px;margin-top:43px;border-top:1px solid #d1d1d1}.cke_dialog_contents_body{overflow:auto;padding:9px 10px 5px 10px;margin-top:22px}.cke_dialog_footer{text-align:right;position:relative;border-top:1px solid #d1d1d1;background:#f8f8f8}.cke_rtl .cke_dialog_footer{text-align:left}.cke_hc .cke_dialog_footer{outline:0;border-top:1px solid #fff}.cke_dialog .cke_resizer{margin-top:22px}.cke_dialog .cke_resizer_rtl{margin-left:5px}.cke_dialog .cke_resizer_ltr{margin-right:5px}.cke_dialog_tabs{height:33px;display:inline-block;margin:9px 0 0;position:absolute;z-index:2;left:11px}.cke_rtl .cke_dialog_tabs{left:auto;right:11px}a.cke_dialog_tab{height:25px;padding:4px 8px;display:inline-block;cursor:pointer;line-height:26px;outline:0;color:#484848;border:1px solid #d1d1d1;border-radius:3px 3px 0 0;background:#f8f8f8;min-width:90px;text-align:center;margin-left:-1px;letter-spacing:.3px}a.cke_dialog_tab:hover{background-color:#fff}a.cke_dialog_tab:focus{border:2px solid #139ff7;border-bottom-color:#d1d1d1;padding:3px 7px;position:relative;z-index:1}a.cke_dialog_tab_selected{background:#fff;border-bottom-color:#fff;cursor:default;filter:none}a.cke_dialog_tab_selected:hover,a.cke_dialog_tab_selected:focus{border-bottom-color:#fff}.cke_hc a.cke_dialog_tab:hover,.cke_hc a.cke_dialog_tab:focus,.cke_hc a.cke_dialog_tab_selected{border:3px solid;padding:2px 6px}a.cke_dialog_tab_disabled{color:#bababa;cursor:default}.cke_single_page .cke_dialog_tabs{display:none}.cke_single_page .cke_dialog_contents{padding-top:5px;margin-top:0;border-top:0}a.cke_dialog_close_button{background-image:url(images/close.png);background-repeat:no-repeat;background-position:50%;position:absolute;cursor:pointer;text-align:center;height:16px;width:16px;top:11px;z-index:5;opacity:.7;filter:alpha(opacity = 70)}.cke_rtl .cke_dialog_close_button{left:12px}.cke_ltr .cke_dialog_close_button{right:12px}.cke_hc a.cke_dialog_close_button{background-image:none}.cke_hidpi a.cke_dialog_close_button{background-image:url(images/hidpi/close.png);background-size:16px}a.cke_dialog_close_button:hover{opacity:1;filter:alpha(opacity = 100)}a.cke_dialog_close_button span{display:none}.cke_hc a.cke_dialog_close_button span{display:inline;cursor:pointer;font-weight:bold;position:relative;top:3px}div.cke_disabled .cke_dialog_ui_labeled_content div *{background-color:#ddd;cursor:default}.cke_dialog_ui_vbox table,.cke_dialog_ui_hbox table{margin:auto}.cke_dialog_ui_vbox_child{padding:5px 0}.cke_dialog_ui_hbox{width:100%;margin-top:12px}.cke_dialog_ui_hbox_first,.cke_dialog_ui_hbox_child,.cke_dialog_ui_hbox_last{vertical-align:top}.cke_ltr .cke_dialog_ui_hbox_first,.cke_ltr .cke_dialog_ui_hbox_child{padding-right:10px}.cke_rtl .cke_dialog_ui_hbox_first,.cke_rtl .cke_dialog_ui_hbox_child{padding-left:10px}.cke_ltr .cke_dialog_footer_buttons .cke_dialog_ui_hbox_first,.cke_ltr .cke_dialog_footer_buttons .cke_dialog_ui_hbox_child{padding-right:5px}.cke_rtl .cke_dialog_footer_buttons .cke_dialog_ui_hbox_first,.cke_rtl .cke_dialog_footer_buttons .cke_dialog_ui_hbox_child{padding-left:5px;padding-right:0}.cke_hc div.cke_dialog_ui_input_text,.cke_hc div.cke_dialog_ui_input_password,.cke_hc div.cke_dialog_ui_input_textarea,.cke_hc div.cke_dialog_ui_input_select,.cke_hc div.cke_dialog_ui_input_file{border:1px solid}textarea.cke_dialog_ui_input_textarea{overflow:auto;resize:none}input.cke_dialog_ui_input_text,input.cke_dialog_ui_input_password,textarea.cke_dialog_ui_input_textarea{background-color:#fff;border:1px solid #bcbcbc;padding:4px 6px;outline:0;width:100%;*width:95%;box-sizing:border-box;border-radius:2px;min-height:28px;margin-left:1px}input.cke_dialog_ui_input_text:hover,input.cke_dialog_ui_input_password:hover,textarea.cke_dialog_ui_input_textarea:hover{border:1px solid #aeb3b9}input.cke_dialog_ui_input_text:focus,input.cke_dialog_ui_input_password:focus,textarea.cke_dialog_ui_input_textarea:focus,select.cke_dialog_ui_input_select:focus{outline:0;border:2px solid #139ff7}input.cke_dialog_ui_input_text:focus{padding-left:5px}textarea.cke_dialog_ui_input_textarea:focus{padding:3px 5px}select.cke_dialog_ui_input_select:focus{margin:0;width:100%!important}input.cke_dialog_ui_checkbox_input,input.cke_dialog_ui_radio_input{margin-left:1px;margin-right:2px}input.cke_dialog_ui_checkbox_input:focus,input.cke_dialog_ui_checkbox_input:active,input.cke_dialog_ui_radio_input:focus,input.cke_dialog_ui_radio_input:active{border:0;outline:2px solid #139ff7}a.cke_dialog_ui_button{display:inline-block;*display:inline;*zoom:1;padding:4px 1px;margin:0;text-align:center;color:#484848;vertical-align:middle;cursor:pointer;border:1px solid #bcbcbc;border-radius:2px;background:#f8f8f8;letter-spacing:.3px;line-height:18px;box-sizing:border-box}.cke_hc a.cke_dialog_ui_button{border-width:3px}span.cke_dialog_ui_button{padding:0 10px;cursor:pointer}a.cke_dialog_ui_button:hover{background:#fff}a.cke_dialog_ui_button:focus,a.cke_dialog_ui_button:active{border:2px solid #139ff7;outline:0;padding:3px 0}.cke_hc a.cke_dialog_ui_button:hover,.cke_hc a.cke_dialog_ui_button:focus,.cke_hc a.cke_dialog_ui_button:active{border:3px solid}.cke_dialog_footer_buttons a.cke_dialog_ui_button span{color:inherit;font-size:12px;font-weight:bold;padding:0 12px}a.cke_dialog_ui_button_ok{color:#fff;background:#09863e;border:1px solid #09863e}.cke_hc a.cke_dialog_ui_button{border:3px solid #bcbcbc}a.cke_dialog_ui_button_ok:hover{background:#53aa78;border-color:#53aa78}a.cke_dialog_ui_button_ok:focus{box-shadow:inset 0 0 0 2px #FFF}a.cke_dialog_ui_button_ok:focus,a.cke_dialog_ui_button_ok:active{border-color:#139ff7}.cke_hc a.cke_dialog_ui_button_ok:hover,.cke_hc a.cke_dialog_ui_button_ok:focus,.cke_hc a.cke_dialog_ui_button_ok:active{border-color:#484848}a.cke_dialog_ui_button_ok.cke_disabled{background:#d1d1d1;border-color:#d1d1d1;cursor:default}a.cke_dialog_ui_button_ok.cke_disabled span{cursor:default}.cke_dialog_footer_buttons{display:inline-table;margin:5px;width:auto;position:relative;vertical-align:middle}div.cke_dialog_ui_input_select{display:table}select.cke_dialog_ui_input_select{height:28px;line-height:28px;background-color:#fff;border:1px solid #bcbcbc;padding:3px 3px 3px 6px;outline:0;border-radius:2px;margin:0 1px;box-sizing:border-box;width:calc(100% - 2px)!important}.cke_dialog_ui_input_file{width:100%;height:25px}.cke_hc .cke_dialog_ui_labeled_content input:focus,.cke_hc .cke_dialog_ui_labeled_content select:focus,.cke_hc .cke_dialog_ui_labeled_content textarea:focus{outline:1px dotted}.cke_dialog_ui_labeled_label{margin-left:1px}.cke_dialog .cke_dark_background{background-color:transparent}.cke_dialog .cke_light_background{background-color:#ebebeb}.cke_dialog .cke_centered{text-align:center}.cke_dialog a.cke_btn_reset{float:right;background:url(images/refresh.png) top left no-repeat;width:16px;height:16px;border:1px none;font-size:1px}.cke_hidpi .cke_dialog a.cke_btn_reset{background-size:16px;background-image:url(images/hidpi/refresh.png)}.cke_rtl .cke_dialog a.cke_btn_reset{float:left}.cke_dialog a.cke_btn_locked,.cke_dialog a.cke_btn_unlocked{float:left;width:16px;height:16px;background-repeat:no-repeat;border:none 1px;font-size:1px}.cke_dialog a.cke_btn_locked,.cke_dialog a.cke_btn_unlocked,.cke_dialog a.cke_btn_reset{margin:2px}.cke_dialog a.cke_btn_locked{background-image:url(images/lock.png)}.cke_dialog a.cke_btn_unlocked{background-image:url(images/lock-open.png)}.cke_rtl .cke_dialog a.cke_btn_locked,.cke_rtl .cke_dialog a.cke_btn_unlocked{float:right}.cke_hidpi .cke_dialog a.cke_btn_unlocked,.cke_hidpi .cke_dialog a.cke_btn_locked{background-size:16px}.cke_hidpi .cke_dialog a.cke_btn_locked{background-image:url(images/hidpi/lock.png)}.cke_hidpi .cke_dialog a.cke_btn_unlocked{background-image:url(images/hidpi/lock-open.png)}.cke_dialog a.cke_btn_locked .cke_icon{display:none}.cke_dialog a.cke_btn_over,.cke_dialog a.cke_btn_locked:hover,.cke_dialog a.cke_btn_locked:focus,.cke_dialog a.cke_btn_locked:active,.cke_dialog a.cke_btn_unlocked:hover,.cke_dialog a.cke_btn_unlocked:focus,.cke_dialog a.cke_btn_unlocked:active,.cke_dialog a.cke_btn_reset:hover,.cke_dialog a.cke_btn_reset:focus,.cke_dialog a.cke_btn_reset:active{cursor:pointer;outline:0;margin:0;border:2px solid #139ff7}.cke_dialog fieldset{border:1px solid #bcbcbc}.cke_dialog fieldset legend{padding:0 6px}.cke_dialog_ui_checkbox,.cke_dialog fieldset .cke_dialog_ui_vbox .cke_dialog_ui_checkbox{display:inline-block}.cke_dialog fieldset .cke_dialog_ui_vbox .cke_dialog_ui_checkbox{padding-top:5px}.cke_dialog_ui_checkbox .cke_dialog_ui_checkbox_input,.cke_dialog_ui_checkbox .cke_dialog_ui_checkbox_input+label,.cke_dialog fieldset .cke_dialog_ui_vbox .cke_dialog_ui_checkbox .cke_dialog_ui_checkbox_input,.cke_dialog fieldset .cke_dialog_ui_vbox .cke_dialog_ui_checkbox .cke_dialog_ui_checkbox_input+label{vertical-align:middle}.cke_dialog .ImagePreviewBox{border:1px ridge #bcbcbc;overflow:scroll;height:200px;width:300px;padding:2px;background-color:white}.cke_dialog .ImagePreviewBox table td{white-space:normal}.cke_dialog .ImagePreviewLoader{position:absolute;white-space:normal;overflow:hidden;height:160px;width:230px;margin:2px;padding:2px;opacity:.9;filter:alpha(opacity = 90);background-color:#e4e4e4}.cke_dialog .FlashPreviewBox{white-space:normal;border:1px solid #bcbcbc;overflow:auto;height:160px;width:390px;padding:2px;background-color:white}.cke_dialog .cke_pastetext{width:346px;height:170px}.cke_dialog .cke_pastetext textarea{width:340px;height:170px;resize:none}.cke_dialog iframe.cke_pasteframe{width:346px;height:130px;background-color:white;border:1px solid #aeb3b9;border-radius:3px}.cke_dialog .cke_hand{cursor:pointer}.cke_disabled{color:#a0a0a0}.cke_dialog_body .cke_label{display:none}.cke_dialog_body label{display:inline;cursor:default;letter-spacing:.3px}.cke_dialog_body label+.cke_dialog_ui_labeled_content{margin-top:2px}.cke_dialog_contents_body .cke_dialog_ui_text,.cke_dialog_contents_body .cke_dialog_ui_select,.cke_dialog_contents_body .cke_dialog_ui_hbox_last>a.cke_dialog_ui_button{margin-top:4px}a.cke_smile{overflow:hidden;display:block;text-align:center;padding:.3em 0}a.cke_smile img{vertical-align:middle}a.cke_specialchar{cursor:inherit;display:block;height:1.25em;padding:.2em .3em;text-align:center}a.cke_smile,a.cke_specialchar{border:2px solid transparent}a.cke_smile:hover,a.cke_smile:focus,a.cke_smile:active,a.cke_specialchar:hover,a.cke_specialchar:focus,a.cke_specialchar:active{background:#fff;outline:0}a.cke_smile:hover,a.cke_specialchar:hover{border-color:#888}a.cke_smile:focus,a.cke_smile:active,a.cke_specialchar:focus,a.cke_specialchar:active{border-color:#139ff7}.cke_dialog_contents a.colorChooser{display:block;margin-top:6px;margin-left:10px;width:80px}.cke_rtl .cke_dialog_contents a.colorChooser{margin-right:10px}.cke_iframe_shim{display:block;position:absolute;top:0;left:0;z-index:-1;filter:alpha(opacity = 0);width:100%;height:100%}.cke_dialog_contents_body .cke_accessibility_legend{margin:2px 7px 2px 2px}.cke_dialog_contents_body .cke_accessibility_legend:focus,.cke_dialog_contents_body .cke_accessibility_legend:active{outline:0;border:2px solid #139ff7;margin:0 5px 0 0}.cke_dialog_contents_body input[type=file]:focus,.cke_dialog_contents_body input[type=file]:active{border:2px solid #139ff7}.cke_dialog_find_fieldset{margin-top:10px!important}.cke_dialog_image_ratiolock{margin-top:52px!important}.cke_dialog_forms_select_order label.cke_dialog_ui_labeled_label{margin-left:0}.cke_dialog_forms_select_order div.cke_dialog_ui_input_select{width:100%}.cke_dialog_forms_select_order_txtsize .cke_dialog_ui_hbox_last{padding-top:4px}.cke_dialog_image_url .cke_dialog_ui_hbox_last,.cke_dialog_flash_url .cke_dialog_ui_hbox_last{vertical-align:bottom}a.cke_dialog_ui_button.cke_dialog_image_browse{margin-top:10px}.cke_dialog_contents_body .cke_tpl_list{border:#bcbcbc 1px solid;margin:1px}.cke_dialog_contents_body .cke_tpl_list:focus,.cke_dialog_contents_body .cke_tpl_list:active{outline:0;margin:0;border:2px solid #139ff7}.cke_dialog_contents_body .cke_tpl_list a:focus,.cke_dialog_contents_body .cke_tpl_list a:active{outline:0}.cke_dialog_contents_body .cke_tpl_list a:focus .cke_tpl_item,.cke_dialog_contents_body .cke_tpl_list a:active .cke_tpl_item{border:2px solid #139ff7;padding:6px}.cke_rtl input.cke_dialog_ui_input_text,.cke_rtl input.cke_dialog_ui_input_password{padding-right:2px}.cke_rtl div.cke_dialog_ui_input_text,.cke_rtl div.cke_dialog_ui_input_password{padding-left:2px}.cke_rtl div.cke_dialog_ui_input_text{padding-right:1px}.cke_rtl .cke_dialog_ui_vbox_child,.cke_rtl .cke_dialog_ui_hbox_child,.cke_rtl .cke_dialog_ui_hbox_first,.cke_rtl .cke_dialog_ui_hbox_last{padding-right:2px!important}.cke_hc .cke_dialog_title,.cke_hc .cke_dialog_footer,.cke_hc a.cke_dialog_tab,.cke_hc a.cke_dialog_ui_button,.cke_hc a.cke_dialog_ui_button:hover,.cke_hc a.cke_dialog_ui_button_ok,.cke_hc a.cke_dialog_ui_button_ok:hover{filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.cke_hc div.cke_dialog_ui_input_text,.cke_hc div.cke_dialog_ui_input_password,.cke_hc div.cke_dialog_ui_input_textarea,.cke_hc div.cke_dialog_ui_input_select,.cke_hc div.cke_dialog_ui_input_file{border:0}a.cke_dialog_ui_button{min-height:18px}input.cke_dialog_ui_input_text,input.cke_dialog_ui_input_password,textarea.cke_dialog_ui_input_textarea{min-height:18px}input.cke_dialog_ui_input_text:focus,input.cke_dialog_ui_input_password:focus,textarea.cke_dialog_ui_input_textarea:focus{padding-top:4px;padding-bottom:2px}select.cke_dialog_ui_input_select{width:100%!important}select.cke_dialog_ui_input_select:focus{margin-left:1px;width:100%!important;padding-top:2px;padding-bottom:2px} \ No newline at end of file diff --git a/admin/plugins/ckeditor/skins/moono-lisa/dialog_iequirks.css b/admin/plugins/ckeditor/skins/moono-lisa/dialog_iequirks.css deleted file mode 100644 index 590c5c2..0000000 --- a/admin/plugins/ckeditor/skins/moono-lisa/dialog_iequirks.css +++ /dev/null @@ -1,5 +0,0 @@ -/* -Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. -For licensing, see LICENSE.md or http://ckeditor.com/license -*/ -.cke_dialog{visibility:visible}.cke_dialog_body{z-index:1;background:#fff}.cke_dialog strong{font-weight:bold}.cke_dialog_title{font-weight:bold;font-size:12px;cursor:move;position:relative;color:#484848;border-bottom:1px solid #d1d1d1;padding:12px 19px 12px 12px;background:#f8f8f8;letter-spacing:.3px}.cke_dialog_spinner{border-radius:50%;width:12px;height:12px;overflow:hidden;text-indent:-9999em;border:2px solid rgba(102,102,102,0.2);border-left-color:rgba(102,102,102,1);-webkit-animation:dialog_spinner 1s infinite linear;animation:dialog_spinner 1s infinite linear}.cke_browser_ie8 .cke_dialog_spinner,.cke_browser_ie9 .cke_dialog_spinner{background:url(images/spinner.gif) center top no-repeat;width:16px;height:16px;border:0}@-webkit-keyframes dialog_spinner{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}@keyframes dialog_spinner{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}.cke_dialog_contents{background-color:#fff;overflow:auto;padding:15px 10px 5px 10px;margin-top:43px;border-top:1px solid #d1d1d1}.cke_dialog_contents_body{overflow:auto;padding:9px 10px 5px 10px;margin-top:22px}.cke_dialog_footer{text-align:right;position:relative;border-top:1px solid #d1d1d1;background:#f8f8f8}.cke_rtl .cke_dialog_footer{text-align:left}.cke_hc .cke_dialog_footer{outline:0;border-top:1px solid #fff}.cke_dialog .cke_resizer{margin-top:22px}.cke_dialog .cke_resizer_rtl{margin-left:5px}.cke_dialog .cke_resizer_ltr{margin-right:5px}.cke_dialog_tabs{height:33px;display:inline-block;margin:9px 0 0;position:absolute;z-index:2;left:11px}.cke_rtl .cke_dialog_tabs{left:auto;right:11px}a.cke_dialog_tab{height:25px;padding:4px 8px;display:inline-block;cursor:pointer;line-height:26px;outline:0;color:#484848;border:1px solid #d1d1d1;border-radius:3px 3px 0 0;background:#f8f8f8;min-width:90px;text-align:center;margin-left:-1px;letter-spacing:.3px}a.cke_dialog_tab:hover{background-color:#fff}a.cke_dialog_tab:focus{border:2px solid #139ff7;border-bottom-color:#d1d1d1;padding:3px 7px;position:relative;z-index:1}a.cke_dialog_tab_selected{background:#fff;border-bottom-color:#fff;cursor:default;filter:none}a.cke_dialog_tab_selected:hover,a.cke_dialog_tab_selected:focus{border-bottom-color:#fff}.cke_hc a.cke_dialog_tab:hover,.cke_hc a.cke_dialog_tab:focus,.cke_hc a.cke_dialog_tab_selected{border:3px solid;padding:2px 6px}a.cke_dialog_tab_disabled{color:#bababa;cursor:default}.cke_single_page .cke_dialog_tabs{display:none}.cke_single_page .cke_dialog_contents{padding-top:5px;margin-top:0;border-top:0}a.cke_dialog_close_button{background-image:url(images/close.png);background-repeat:no-repeat;background-position:50%;position:absolute;cursor:pointer;text-align:center;height:16px;width:16px;top:11px;z-index:5;opacity:.7;filter:alpha(opacity = 70)}.cke_rtl .cke_dialog_close_button{left:12px}.cke_ltr .cke_dialog_close_button{right:12px}.cke_hc a.cke_dialog_close_button{background-image:none}.cke_hidpi a.cke_dialog_close_button{background-image:url(images/hidpi/close.png);background-size:16px}a.cke_dialog_close_button:hover{opacity:1;filter:alpha(opacity = 100)}a.cke_dialog_close_button span{display:none}.cke_hc a.cke_dialog_close_button span{display:inline;cursor:pointer;font-weight:bold;position:relative;top:3px}div.cke_disabled .cke_dialog_ui_labeled_content div *{background-color:#ddd;cursor:default}.cke_dialog_ui_vbox table,.cke_dialog_ui_hbox table{margin:auto}.cke_dialog_ui_vbox_child{padding:5px 0}.cke_dialog_ui_hbox{width:100%;margin-top:12px}.cke_dialog_ui_hbox_first,.cke_dialog_ui_hbox_child,.cke_dialog_ui_hbox_last{vertical-align:top}.cke_ltr .cke_dialog_ui_hbox_first,.cke_ltr .cke_dialog_ui_hbox_child{padding-right:10px}.cke_rtl .cke_dialog_ui_hbox_first,.cke_rtl .cke_dialog_ui_hbox_child{padding-left:10px}.cke_ltr .cke_dialog_footer_buttons .cke_dialog_ui_hbox_first,.cke_ltr .cke_dialog_footer_buttons .cke_dialog_ui_hbox_child{padding-right:5px}.cke_rtl .cke_dialog_footer_buttons .cke_dialog_ui_hbox_first,.cke_rtl .cke_dialog_footer_buttons .cke_dialog_ui_hbox_child{padding-left:5px;padding-right:0}.cke_hc div.cke_dialog_ui_input_text,.cke_hc div.cke_dialog_ui_input_password,.cke_hc div.cke_dialog_ui_input_textarea,.cke_hc div.cke_dialog_ui_input_select,.cke_hc div.cke_dialog_ui_input_file{border:1px solid}textarea.cke_dialog_ui_input_textarea{overflow:auto;resize:none}input.cke_dialog_ui_input_text,input.cke_dialog_ui_input_password,textarea.cke_dialog_ui_input_textarea{background-color:#fff;border:1px solid #bcbcbc;padding:4px 6px;outline:0;width:100%;*width:95%;box-sizing:border-box;border-radius:2px;min-height:28px;margin-left:1px}input.cke_dialog_ui_input_text:hover,input.cke_dialog_ui_input_password:hover,textarea.cke_dialog_ui_input_textarea:hover{border:1px solid #aeb3b9}input.cke_dialog_ui_input_text:focus,input.cke_dialog_ui_input_password:focus,textarea.cke_dialog_ui_input_textarea:focus,select.cke_dialog_ui_input_select:focus{outline:0;border:2px solid #139ff7}input.cke_dialog_ui_input_text:focus{padding-left:5px}textarea.cke_dialog_ui_input_textarea:focus{padding:3px 5px}select.cke_dialog_ui_input_select:focus{margin:0;width:100%!important}input.cke_dialog_ui_checkbox_input,input.cke_dialog_ui_radio_input{margin-left:1px;margin-right:2px}input.cke_dialog_ui_checkbox_input:focus,input.cke_dialog_ui_checkbox_input:active,input.cke_dialog_ui_radio_input:focus,input.cke_dialog_ui_radio_input:active{border:0;outline:2px solid #139ff7}a.cke_dialog_ui_button{display:inline-block;*display:inline;*zoom:1;padding:4px 1px;margin:0;text-align:center;color:#484848;vertical-align:middle;cursor:pointer;border:1px solid #bcbcbc;border-radius:2px;background:#f8f8f8;letter-spacing:.3px;line-height:18px;box-sizing:border-box}.cke_hc a.cke_dialog_ui_button{border-width:3px}span.cke_dialog_ui_button{padding:0 10px;cursor:pointer}a.cke_dialog_ui_button:hover{background:#fff}a.cke_dialog_ui_button:focus,a.cke_dialog_ui_button:active{border:2px solid #139ff7;outline:0;padding:3px 0}.cke_hc a.cke_dialog_ui_button:hover,.cke_hc a.cke_dialog_ui_button:focus,.cke_hc a.cke_dialog_ui_button:active{border:3px solid}.cke_dialog_footer_buttons a.cke_dialog_ui_button span{color:inherit;font-size:12px;font-weight:bold;padding:0 12px}a.cke_dialog_ui_button_ok{color:#fff;background:#09863e;border:1px solid #09863e}.cke_hc a.cke_dialog_ui_button{border:3px solid #bcbcbc}a.cke_dialog_ui_button_ok:hover{background:#53aa78;border-color:#53aa78}a.cke_dialog_ui_button_ok:focus{box-shadow:inset 0 0 0 2px #FFF}a.cke_dialog_ui_button_ok:focus,a.cke_dialog_ui_button_ok:active{border-color:#139ff7}.cke_hc a.cke_dialog_ui_button_ok:hover,.cke_hc a.cke_dialog_ui_button_ok:focus,.cke_hc a.cke_dialog_ui_button_ok:active{border-color:#484848}a.cke_dialog_ui_button_ok.cke_disabled{background:#d1d1d1;border-color:#d1d1d1;cursor:default}a.cke_dialog_ui_button_ok.cke_disabled span{cursor:default}.cke_dialog_footer_buttons{display:inline-table;margin:5px;width:auto;position:relative;vertical-align:middle}div.cke_dialog_ui_input_select{display:table}select.cke_dialog_ui_input_select{height:28px;line-height:28px;background-color:#fff;border:1px solid #bcbcbc;padding:3px 3px 3px 6px;outline:0;border-radius:2px;margin:0 1px;box-sizing:border-box;width:calc(100% - 2px)!important}.cke_dialog_ui_input_file{width:100%;height:25px}.cke_hc .cke_dialog_ui_labeled_content input:focus,.cke_hc .cke_dialog_ui_labeled_content select:focus,.cke_hc .cke_dialog_ui_labeled_content textarea:focus{outline:1px dotted}.cke_dialog_ui_labeled_label{margin-left:1px}.cke_dialog .cke_dark_background{background-color:transparent}.cke_dialog .cke_light_background{background-color:#ebebeb}.cke_dialog .cke_centered{text-align:center}.cke_dialog a.cke_btn_reset{float:right;background:url(images/refresh.png) top left no-repeat;width:16px;height:16px;border:1px none;font-size:1px}.cke_hidpi .cke_dialog a.cke_btn_reset{background-size:16px;background-image:url(images/hidpi/refresh.png)}.cke_rtl .cke_dialog a.cke_btn_reset{float:left}.cke_dialog a.cke_btn_locked,.cke_dialog a.cke_btn_unlocked{float:left;width:16px;height:16px;background-repeat:no-repeat;border:none 1px;font-size:1px}.cke_dialog a.cke_btn_locked,.cke_dialog a.cke_btn_unlocked,.cke_dialog a.cke_btn_reset{margin:2px}.cke_dialog a.cke_btn_locked{background-image:url(images/lock.png)}.cke_dialog a.cke_btn_unlocked{background-image:url(images/lock-open.png)}.cke_rtl .cke_dialog a.cke_btn_locked,.cke_rtl .cke_dialog a.cke_btn_unlocked{float:right}.cke_hidpi .cke_dialog a.cke_btn_unlocked,.cke_hidpi .cke_dialog a.cke_btn_locked{background-size:16px}.cke_hidpi .cke_dialog a.cke_btn_locked{background-image:url(images/hidpi/lock.png)}.cke_hidpi .cke_dialog a.cke_btn_unlocked{background-image:url(images/hidpi/lock-open.png)}.cke_dialog a.cke_btn_locked .cke_icon{display:none}.cke_dialog a.cke_btn_over,.cke_dialog a.cke_btn_locked:hover,.cke_dialog a.cke_btn_locked:focus,.cke_dialog a.cke_btn_locked:active,.cke_dialog a.cke_btn_unlocked:hover,.cke_dialog a.cke_btn_unlocked:focus,.cke_dialog a.cke_btn_unlocked:active,.cke_dialog a.cke_btn_reset:hover,.cke_dialog a.cke_btn_reset:focus,.cke_dialog a.cke_btn_reset:active{cursor:pointer;outline:0;margin:0;border:2px solid #139ff7}.cke_dialog fieldset{border:1px solid #bcbcbc}.cke_dialog fieldset legend{padding:0 6px}.cke_dialog_ui_checkbox,.cke_dialog fieldset .cke_dialog_ui_vbox .cke_dialog_ui_checkbox{display:inline-block}.cke_dialog fieldset .cke_dialog_ui_vbox .cke_dialog_ui_checkbox{padding-top:5px}.cke_dialog_ui_checkbox .cke_dialog_ui_checkbox_input,.cke_dialog_ui_checkbox .cke_dialog_ui_checkbox_input+label,.cke_dialog fieldset .cke_dialog_ui_vbox .cke_dialog_ui_checkbox .cke_dialog_ui_checkbox_input,.cke_dialog fieldset .cke_dialog_ui_vbox .cke_dialog_ui_checkbox .cke_dialog_ui_checkbox_input+label{vertical-align:middle}.cke_dialog .ImagePreviewBox{border:1px ridge #bcbcbc;overflow:scroll;height:200px;width:300px;padding:2px;background-color:white}.cke_dialog .ImagePreviewBox table td{white-space:normal}.cke_dialog .ImagePreviewLoader{position:absolute;white-space:normal;overflow:hidden;height:160px;width:230px;margin:2px;padding:2px;opacity:.9;filter:alpha(opacity = 90);background-color:#e4e4e4}.cke_dialog .FlashPreviewBox{white-space:normal;border:1px solid #bcbcbc;overflow:auto;height:160px;width:390px;padding:2px;background-color:white}.cke_dialog .cke_pastetext{width:346px;height:170px}.cke_dialog .cke_pastetext textarea{width:340px;height:170px;resize:none}.cke_dialog iframe.cke_pasteframe{width:346px;height:130px;background-color:white;border:1px solid #aeb3b9;border-radius:3px}.cke_dialog .cke_hand{cursor:pointer}.cke_disabled{color:#a0a0a0}.cke_dialog_body .cke_label{display:none}.cke_dialog_body label{display:inline;cursor:default;letter-spacing:.3px}.cke_dialog_body label+.cke_dialog_ui_labeled_content{margin-top:2px}.cke_dialog_contents_body .cke_dialog_ui_text,.cke_dialog_contents_body .cke_dialog_ui_select,.cke_dialog_contents_body .cke_dialog_ui_hbox_last>a.cke_dialog_ui_button{margin-top:4px}a.cke_smile{overflow:hidden;display:block;text-align:center;padding:.3em 0}a.cke_smile img{vertical-align:middle}a.cke_specialchar{cursor:inherit;display:block;height:1.25em;padding:.2em .3em;text-align:center}a.cke_smile,a.cke_specialchar{border:2px solid transparent}a.cke_smile:hover,a.cke_smile:focus,a.cke_smile:active,a.cke_specialchar:hover,a.cke_specialchar:focus,a.cke_specialchar:active{background:#fff;outline:0}a.cke_smile:hover,a.cke_specialchar:hover{border-color:#888}a.cke_smile:focus,a.cke_smile:active,a.cke_specialchar:focus,a.cke_specialchar:active{border-color:#139ff7}.cke_dialog_contents a.colorChooser{display:block;margin-top:6px;margin-left:10px;width:80px}.cke_rtl .cke_dialog_contents a.colorChooser{margin-right:10px}.cke_iframe_shim{display:block;position:absolute;top:0;left:0;z-index:-1;filter:alpha(opacity = 0);width:100%;height:100%}.cke_dialog_contents_body .cke_accessibility_legend{margin:2px 7px 2px 2px}.cke_dialog_contents_body .cke_accessibility_legend:focus,.cke_dialog_contents_body .cke_accessibility_legend:active{outline:0;border:2px solid #139ff7;margin:0 5px 0 0}.cke_dialog_contents_body input[type=file]:focus,.cke_dialog_contents_body input[type=file]:active{border:2px solid #139ff7}.cke_dialog_find_fieldset{margin-top:10px!important}.cke_dialog_image_ratiolock{margin-top:52px!important}.cke_dialog_forms_select_order label.cke_dialog_ui_labeled_label{margin-left:0}.cke_dialog_forms_select_order div.cke_dialog_ui_input_select{width:100%}.cke_dialog_forms_select_order_txtsize .cke_dialog_ui_hbox_last{padding-top:4px}.cke_dialog_image_url .cke_dialog_ui_hbox_last,.cke_dialog_flash_url .cke_dialog_ui_hbox_last{vertical-align:bottom}a.cke_dialog_ui_button.cke_dialog_image_browse{margin-top:10px}.cke_dialog_contents_body .cke_tpl_list{border:#bcbcbc 1px solid;margin:1px}.cke_dialog_contents_body .cke_tpl_list:focus,.cke_dialog_contents_body .cke_tpl_list:active{outline:0;margin:0;border:2px solid #139ff7}.cke_dialog_contents_body .cke_tpl_list a:focus,.cke_dialog_contents_body .cke_tpl_list a:active{outline:0}.cke_dialog_contents_body .cke_tpl_list a:focus .cke_tpl_item,.cke_dialog_contents_body .cke_tpl_list a:active .cke_tpl_item{border:2px solid #139ff7;padding:6px}.cke_rtl input.cke_dialog_ui_input_text,.cke_rtl input.cke_dialog_ui_input_password{padding-right:2px}.cke_rtl div.cke_dialog_ui_input_text,.cke_rtl div.cke_dialog_ui_input_password{padding-left:2px}.cke_rtl div.cke_dialog_ui_input_text{padding-right:1px}.cke_rtl .cke_dialog_ui_vbox_child,.cke_rtl .cke_dialog_ui_hbox_child,.cke_rtl .cke_dialog_ui_hbox_first,.cke_rtl .cke_dialog_ui_hbox_last{padding-right:2px!important}.cke_hc .cke_dialog_title,.cke_hc .cke_dialog_footer,.cke_hc a.cke_dialog_tab,.cke_hc a.cke_dialog_ui_button,.cke_hc a.cke_dialog_ui_button:hover,.cke_hc a.cke_dialog_ui_button_ok,.cke_hc a.cke_dialog_ui_button_ok:hover{filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.cke_hc div.cke_dialog_ui_input_text,.cke_hc div.cke_dialog_ui_input_password,.cke_hc div.cke_dialog_ui_input_textarea,.cke_hc div.cke_dialog_ui_input_select,.cke_hc div.cke_dialog_ui_input_file{border:0}.cke_dialog_footer{filter:""} \ No newline at end of file diff --git a/admin/plugins/ckeditor/skins/moono-lisa/editor.css b/admin/plugins/ckeditor/skins/moono-lisa/editor.css deleted file mode 100644 index e3e990f..0000000 --- a/admin/plugins/ckeditor/skins/moono-lisa/editor.css +++ /dev/null @@ -1,5 +0,0 @@ -/* -Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. -For licensing, see LICENSE.md or http://ckeditor.com/license -*/ -.cke_reset{margin:0;padding:0;border:0;background:transparent;text-decoration:none;width:auto;height:auto;vertical-align:baseline;box-sizing:content-box;position:static;transition:none}.cke_reset_all,.cke_reset_all *,.cke_reset_all a,.cke_reset_all textarea{margin:0;padding:0;border:0;background:transparent;text-decoration:none;width:auto;height:auto;vertical-align:baseline;box-sizing:content-box;position:static;transition:none;border-collapse:collapse;font:normal normal normal 12px Arial,Helvetica,Tahoma,Verdana,Sans-Serif;color:#000;text-align:left;white-space:nowrap;cursor:auto;float:none}.cke_reset_all .cke_rtl *{text-align:right}.cke_reset_all iframe{vertical-align:inherit}.cke_reset_all textarea{white-space:pre-wrap}.cke_reset_all textarea,.cke_reset_all input[type="text"],.cke_reset_all input[type="password"]{cursor:text}.cke_reset_all textarea[disabled],.cke_reset_all input[type="text"][disabled],.cke_reset_all input[type="password"][disabled]{cursor:default}.cke_reset_all fieldset{padding:10px;border:2px groove #e0dfe3}.cke_reset_all select{box-sizing:border-box}.cke_reset_all table{table-layout:auto}.cke_chrome{display:block;border:1px solid #d1d1d1;padding:0}.cke_inner{display:block;background:#fff;padding:0;-webkit-touch-callout:none}.cke_float{border:0}.cke_float .cke_inner{padding-bottom:0}.cke_top,.cke_contents,.cke_bottom{display:block;overflow:hidden}.cke_top{border-bottom:1px solid #d1d1d1;background:#f8f8f8;padding:6px 8px 2px;white-space:normal}.cke_float .cke_top{border:1px solid #d1d1d1}.cke_bottom{padding:6px 8px 2px;position:relative;border-top:1px solid #d1d1d1;background:#f8f8f8}.cke_browser_ios .cke_contents{overflow-y:auto;-webkit-overflow-scrolling:touch}.cke_resizer{width:0;height:0;overflow:hidden;border-width:10px 10px 0 0;border-color:transparent #bcbcbc transparent transparent;border-style:dashed solid dashed dashed;font-size:0;vertical-align:bottom;margin-top:6px;margin-bottom:2px}.cke_hc .cke_resizer{font-size:15px;width:auto;height:auto;border-width:0}.cke_resizer_ltr{cursor:se-resize;float:right;margin-right:-4px}.cke_resizer_rtl{border-width:10px 0 0 10px;border-color:transparent transparent transparent #bcbcbc;border-style:dashed dashed dashed solid;cursor:sw-resize;float:left;margin-left:-4px;right:auto}.cke_wysiwyg_div{display:block;height:100%;overflow:auto;padding:0 8px;outline-style:none;box-sizing:border-box}.cke_panel{visibility:visible;width:120px;height:100px;overflow:hidden;background-color:#fff;border:1px solid #d1d1d1}.cke_menu_panel{padding:0;margin:0}.cke_combopanel{width:150px;height:170px}.cke_panel_frame{width:100%;height:100%;font-size:12px;overflow:auto;overflow-x:hidden}.cke_panel_container{overflow-y:auto;overflow-x:hidden}.cke_panel_block:focus{outline:0}.cke_panel_list{margin:0;padding:0;list-style-type:none;white-space:nowrap}.cke_panel_listItem{margin:0;padding:0}.cke_panel_listItem a{padding:6px 7px;display:block;color:inherit!important;text-decoration:none;overflow:hidden;text-overflow:ellipsis}.cke_hc .cke_panel_listItem a{border-style:none}.cke_panel_listItem.cke_selected a,.cke_panel_listItem a:hover,.cke_panel_listItem a:focus,.cke_panel_listItem a:active{background-color:#e9e9e9}.cke_panel_listItem a:focus{outline:1px dotted #000}.cke_hc .cke_panel_listItem a:hover,.cke_hc .cke_panel_listItem a:focus,.cke_hc .cke_panel_listItem a:active{border:2px solid;padding:4px 5px}.cke_panel_listItem p,.cke_panel_listItem h1,.cke_panel_listItem h2,.cke_panel_listItem h3,.cke_panel_listItem h4,.cke_panel_listItem h5,.cke_panel_listItem h6,.cke_panel_listItem pre{margin-top:0;margin-bottom:0}.cke_panel_grouptitle{cursor:default;font-size:11px;font-weight:bold;white-space:nowrap;margin:0;padding:6px 6px 7px 6px;color:#484848;border-bottom:1px solid #d1d1d1;background:#f8f8f8}.cke_colorblock{padding:10px;font-size:11px;font-family:'Microsoft Sans Serif',Tahoma,Arial,Verdana,Sans-Serif}.cke_colorblock,.cke_colorblock a{text-decoration:none;color:#000}a.cke_colorbox{padding:2px;float:left;width:20px;height:20px}.cke_rtl a.cke_colorbox{float:right}a:hover.cke_colorbox,a:focus.cke_colorbox,a:active.cke_colorbox{outline:0;padding:0;border:2px solid #139ff7}a:hover.cke_colorbox{border-color:#bcbcbc}span.cke_colorbox{width:20px;height:20px;float:left}.cke_rtl span.cke_colorbox{float:right}a.cke_colorauto,a.cke_colormore{border:#fff 1px solid;padding:3px;display:block;cursor:pointer}a.cke_colorauto{padding:0;border:1px solid transparent;margin-bottom:6px;height:26px;line-height:26px}a.cke_colormore{margin-top:10px;height:20px;line-height:19px}a:hover.cke_colorauto,a:hover.cke_colormore,a:focus.cke_colorauto,a:focus.cke_colormore,a:active.cke_colorauto,a:active.cke_colormore{outline:0;border:#139ff7 1px solid;background-color:#f8f8f8}a:hover.cke_colorauto,a:hover.cke_colormore{border-color:#bcbcbc}.cke_colorauto span.cke_colorbox{width:18px;height:18px;border:1px solid #808080;margin-left:1px;margin-top:3px}.cke_rtl .cke_colorauto span.cke_colorbox{margin-left:0;margin-right:1px}span.cke_colorbox[style*="#ffffff"],span.cke_colorbox[style*="#FFFFFF"],span.cke_colorbox[style="background-color:#fff"],span.cke_colorbox[style="background-color:#FFF"],span.cke_colorbox[style*="rgb(255,255,255)"],span.cke_colorbox[style*="rgb(255, 255, 255)"]{border:1px solid #808080;width:18px;height:18px}.cke_toolbar{float:left}.cke_rtl .cke_toolbar{float:right}.cke_toolgroup{border:0;float:left;margin:1px 2px 6px 0;padding-right:3px}.cke_rtl .cke_toolgroup{float:right;margin:1px 0 6px 2px;padding-left:3px;padding-right:0}.cke_hc .cke_toolgroup{margin-right:5px;margin-bottom:5px}.cke_hc.cke_rtl .cke_toolgroup{margin-right:0;margin-left:5px}a.cke_button{display:inline-block;height:18px;padding:4px 6px;outline:0;cursor:default;float:left;border:0;position:relative}.cke_rtl a.cke_button{float:right}.cke_hc a.cke_button{border:1px solid black;padding:3px 5px;margin:0 3px 5px 0}.cke_hc.cke_rtl a.cke_button{margin:0 0 5px 3px}a.cke_button_on{background:#fff;border:1px #bcbcbc solid;padding:3px 5px}a.cke_button_off:hover,a.cke_button_off:focus,a.cke_button_off:active{background:#e5e5e5;border:1px #bcbcbc solid;padding:3px 5px}.cke_hc a.cke_button_on,.cke_hc a.cke_button_off:hover,.cke_hc a.cke_button_off:focus,.cke_hc a.cke_button_off:active{background:#e5e5e5;border:3px solid #000;padding:1px 3px}a.cke_button_disabled:hover,a.cke_button_disabled:focus,a.cke_button_disabled:active{border:0;padding:4px 6px;background-color:transparent}a.cke_button_disabled:focus{border:1px #bcbcbc solid;padding:3px 5px}.cke_hc a.cke_button_disabled:hover,.cke_hc a.cke_button_disabled:focus,.cke_hc a.cke_button_disabled:active{border:1px solid #acacac;padding:3px 5px;margin:0 3px 5px 0}.cke_hc a.cke_button_disabled:focus{border:3px solid #000;padding:1px 3px}.cke_hc.cke_rtl a.cke_button_disabled:hover,.cke_hc.cke_rtl a.cke_button_disabled:focus,.cke_hc.cke_rtl a.cke_button_disabled:active{margin:0 0 5px 3px}a.cke_button_disabled .cke_button_icon,a.cke_button_disabled .cke_button_arrow{opacity:.3}.cke_hc a.cke_button_disabled{border-color:#acacac}.cke_hc a.cke_button_disabled .cke_button_icon,.cke_hc a.cke_button_disabled .cke_button_label{opacity:.5}.cke_toolgroup a.cke_button:last-child:after,.cke_toolgroup a.cke_button.cke_button_disabled:hover:last-child:after{content:"";position:absolute;height:18px;width:0;border-right:1px solid #bcbcbc;margin-top:4px;top:0;right:-3px}.cke_rtl .cke_toolgroup a.cke_button:last-child:after,.cke_rtl .cke_toolgroup a.cke_button.cke_button_disabled:hover:last-child:after{border-right:0;right:auto;border-left:1px solid #bcbcbc;top:0;left:-3px}.cke_hc .cke_toolgroup a.cke_button:last-child:after,.cke_hc .cke_toolgroup a.cke_button.cke_button_disabled:last-child:after,.cke_hc .cke_toolgroup a.cke_button.cke_button_disabled:hover:last-child:after{border-color:#000;top:0;right:-7px}.cke_hc.cke_rtl .cke_toolgroup a.cke_button:last-child:after,.cke_hc.cke_rtl .cke_toolgroup a.cke_button.cke_button_disabled:last-child:after,.cke_hc.cke_rtl .cke_toolgroup a.cke_button.cke_button_disabled:hover:last-child:after{top:0;right:auto;left:-7px}.cke_toolgroup a.cke_button:hover:last-child:after,.cke_toolgroup a.cke_button.cke_button_on:last-child:after{top:-1px;right:-4px}.cke_rtl .cke_toolgroup a.cke_button:hover:last-child:after,.cke_rtl .cke_toolgroup a.cke_button.cke_button_on:last-child:after{top:-1px;right:auto;left:-4px}.cke_hc .cke_toolgroup a.cke_button:hover:last-child:after,.cke_hc .cke_toolgroup a.cke_button.cke_button_on:last-child:after{top:-2px;right:-9px}.cke_hc.cke_rtl .cke_toolgroup a.cke_button:hover:last-child:after,.cke_hc.cke_rtl .cke_toolgroup a.cke_button.cke_button_on:last-child:after{top:-2px;right:auto;left:-9px}.cke_toolbar.cke_toolbar_last .cke_toolgroup a.cke_button:last-child:after{content:none;border:0;width:0;height:0}.cke_button_icon{cursor:inherit;background-repeat:no-repeat;margin-top:1px;width:16px;height:16px;float:left;display:inline-block}.cke_rtl .cke_button_icon{float:right}.cke_hc .cke_button_icon{display:none}.cke_button_label{display:none;padding-left:3px;margin-top:1px;line-height:17px;vertical-align:middle;float:left;cursor:default;color:#484848}.cke_rtl .cke_button_label{padding-right:3px;padding-left:0;float:right}.cke_hc .cke_button_label{padding:0;display:inline-block;font-size:12px}.cke_button_arrow{display:inline-block;margin:8px 0 0 1px;width:0;height:0;cursor:default;vertical-align:top;border-left:3px solid transparent;border-right:3px solid transparent;border-top:3px solid #484848}.cke_rtl .cke_button_arrow{margin-right:5px;margin-left:0}.cke_hc .cke_button_arrow{font-size:10px;margin:3px 0 0 3px;width:auto;border:0}.cke_toolbar_separator{float:left;background-color:#bcbcbc;margin:4px 2px 0 2px;height:18px;width:1px}.cke_rtl .cke_toolbar_separator{float:right}.cke_hc .cke_toolbar_separator{background-color:#000;margin-left:2px;margin-right:5px;margin-bottom:9px}.cke_hc.cke_rtl .cke_toolbar_separator{margin-left:5px;margin-right:2px}.cke_toolbar_break{display:block;clear:left}.cke_rtl .cke_toolbar_break{clear:right}a.cke_toolbox_collapser{width:12px;height:11px;float:right;margin:11px 0 0;font-size:0;cursor:default;text-align:center;border:1px solid #bcbcbc}.cke_rtl .cke_toolbox_collapser{float:left}.cke_toolbox_collapser:hover{background:#e5e5e5}.cke_toolbox_collapser.cke_toolbox_collapser_min{margin:0 2px 4px}.cke_toolbox_collapser .cke_arrow{display:inline-block;height:0;width:0;font-size:0;margin-top:1px;border:3px solid transparent;border-bottom-color:#484848}.cke_toolbox_collapser.cke_toolbox_collapser_min .cke_arrow{margin-top:4px;border-bottom-color:transparent;border-top-color:#484848}.cke_hc .cke_toolbox_collapser .cke_arrow{font-size:8px;width:auto;border:0;margin-top:0}.cke_menuitem span{cursor:default}.cke_menubutton{display:block}.cke_hc .cke_menubutton{padding:2px}.cke_menubutton:hover,.cke_menubutton:focus,.cke_menubutton:active{background-color:#e9e9e9;display:block;outline:1px dotted}.cke_menubutton:hover{outline:0}.cke_hc .cke_menubutton:hover,.cke_hc .cke_menubutton:focus,.cke_hc .cke_menubutton:active{border:2px solid;padding:0}.cke_menubutton_disabled:hover,.cke_menubutton_disabled:focus,.cke_menubutton_disabled:active{background-color:transparent;outline:0}.cke_menubutton_inner{display:table-row}.cke_menubutton_icon,.cke_menubutton_label,.cke_menuarrow{display:table-cell}.cke_menubutton_icon{background-color:#f8f8f8;padding:6px 4px}.cke_hc .cke_menubutton_icon{height:16px;width:0;padding:4px 0}.cke_menubutton:hover .cke_menubutton_icon,.cke_menubutton:focus .cke_menubutton_icon,.cke_menubutton:active .cke_menubutton_icon{background-color:#e9e9e9}.cke_menubutton_disabled:hover .cke_menubutton_icon,.cke_menubutton_disabled:focus .cke_menubutton_icon,.cke_menubutton_disabled:active .cke_menubutton_icon{background-color:#f8f8f8;outline:0}.cke_menuitem .cke_menubutton_on{background-color:#e9e9e9;border:1px solid #dedede;outline:0}.cke_menubutton_on .cke_menubutton_icon{padding-right:3px;background-color:#e9e9e9}.cke_menubutton_label{padding:0 5px;background-color:transparent;width:100%;vertical-align:middle}.cke_menubutton_shortcut{color:#979797}.cke_menubutton_disabled .cke_menubutton_label{opacity:.3;filter:alpha(opacity=30)}.cke_panel_frame .cke_menubutton_label{display:none}.cke_menuseparator{background-color:#d1d1d1;height:1px}.cke_menuarrow{background:transparent url(images/arrow.png) no-repeat 0 10px;padding:0 5px}.cke_rtl .cke_menuarrow{background-position:5px -13px;background-repeat:no-repeat}.cke_hc .cke_menuarrow{background-image:none}.cke_menuarrow span{display:none}.cke_hc .cke_menuarrow span{vertical-align:middle;display:inline}.cke_combo{display:inline-block;float:left;position:relative;margin-bottom:5px}.cke_rtl .cke_combo{float:right}.cke_hc .cke_combo{margin-top:1px;margin-bottom:10px}.cke_combo:after{content:"";position:absolute;height:18px;width:0;border-right:1px solid #bcbcbc;margin-top:5px;top:0;right:0}.cke_rtl .cke_combo:after{border-right:0;border-left:1px solid #bcbcbc;right:auto;left:0}.cke_hc .cke_combo:after{border-color:#000}a.cke_combo_button{cursor:default;display:inline-block;float:left;margin:0;padding:1px}.cke_rtl a.cke_combo_button{float:right}.cke_hc a.cke_combo_button{padding:4px}.cke_combo_on a.cke_combo_button,.cke_combo_off a.cke_combo_button:hover,.cke_combo_off a.cke_combo_button:focus,.cke_combo_off a.cke_combo_button:active{background:#e5e5e5;border:1px solid #bcbcbc;padding:0 0 0 1px;margin-left:-1px}.cke_combo_off a.cke_combo_button:focus{outline:0}.cke_combo_on a.cke_combo_button,.cke_combo_off a.cke_combo_button:active{background:#fff}.cke_rtl .cke_combo_on a.cke_combo_button,.cke_rtl .cke_combo_off a.cke_combo_button:hover,.cke_rtl .cke_combo_off a.cke_combo_button:focus,.cke_rtl .cke_combo_off a.cke_combo_button:active{padding:0 1px 0 0;margin-left:0;margin-right:-1px}.cke_hc .cke_combo_on a.cke_combo_button,.cke_hc .cke_combo_off a.cke_combo_button:hover,.cke_hc .cke_combo_off a.cke_combo_button:focus,.cke_hc .cke_combo_off a.cke_combo_button:active{border:3px solid #000;padding:1px 1px 1px 2px}.cke_hc.cke_rtl .cke_combo_on a.cke_combo_button,.cke_hc.cke_rtl .cke_combo_off a.cke_combo_button:hover,.cke_hc.cke_rtl .cke_combo_off a.cke_combo_button:focus,.cke_hc.cke_rtl .cke_combo_off a.cke_combo_button:active{padding:1px 2px 1px 1px}.cke_toolbar_start+.cke_combo_on a.cke_combo_button,.cke_toolbar_start+.cke_combo_off a.cke_combo_button:hover,.cke_toolbar_start+.cke_combo_off a.cke_combo_button:focus,.cke_toolbar_start+.cke_combo_off a.cke_combo_button:active{padding:0 0 0 3px;margin-left:-3px}.cke_rtl .cke_toolbar_start+.cke_combo_on a.cke_combo_button,.cke_rtl .cke_toolbar_start+.cke_combo_off a.cke_combo_button:hover,.cke_rtl .cke_toolbar_start+.cke_combo_off a.cke_combo_button:focus,.cke_rtl .cke_toolbar_start+.cke_combo_off a.cke_combo_button:active{padding:0 3px 0 0;margin-left:0;margin-right:-3px}.cke_hc .cke_toolbar>.cke_toolbar_start+.cke_combo_on a.cke_combo_button,.cke_hc .cke_toolbar>.cke_toolbar_start+.cke_combo_off a.cke_combo_button:hover,.cke_hc .cke_toolbar>.cke_toolbar_start+.cke_combo_off a.cke_combo_button:focus,.cke_hc .cke_toolbar>.cke_toolbar_start+.cke_combo_off a.cke_combo_button:active{padding:1px 1px 1px 7px;margin-left:-6px}.cke_hc.cke_rtl .cke_toolbar>.cke_toolbar_start+.cke_combo_on a.cke_combo_button,.cke_hc.cke_rtl .cke_toolbar>.cke_toolbar_start+.cke_combo_off a.cke_combo_button:hover,.cke_hc.cke_rtl .cke_toolbar>.cke_toolbar_start+.cke_combo_off a.cke_combo_button:focus,.cke_hc.cke_rtl .cke_toolbar>.cke_toolbar_start+.cke_combo_off a.cke_combo_button:active{padding:1px 7px 1px 1px;margin-left:0;margin-right:-6px}.cke_toolbox .cke_toolbar:first-child>.cke_toolbar_start+.cke_combo_on a.cke_combo_button,.cke_toolbox .cke_toolbar:first-child>.cke_toolbar_start+.cke_combo_off a.cke_combo_button:hover,.cke_toolbox .cke_toolbar:first-child>.cke_toolbar_start+.cke_combo_off a.cke_combo_button:focus,.cke_toolbox .cke_toolbar:first-child>.cke_toolbar_start+.cke_combo_off a.cke_combo_button:active,.cke_toolbar_break+.cke_toolbar>.cke_toolbar_start+.cke_combo_on a.cke_combo_button,.cke_toolbar_break+.cke_toolbar>.cke_toolbar_start+.cke_combo_off a.cke_combo_button:hover,.cke_toolbar_break+.cke_toolbar>.cke_toolbar_start+.cke_combo_off a.cke_combo_button:focus,.cke_toolbar_break+.cke_toolbar>.cke_toolbar_start+.cke_combo_off a.cke_combo_button:active{padding:0;margin:0}.cke_hc .cke_toolbox .cke_toolbar:first-child>.cke_toolbar_start+.cke_combo_on a.cke_combo_button,.cke_hc .cke_toolbox .cke_toolbar:first-child>.cke_toolbar_start+.cke_combo_off a.cke_combo_button:hover,.cke_hc .cke_toolbox .cke_toolbar:first-child>.cke_toolbar_start+.cke_combo_off a.cke_combo_button:focus,.cke_hc .cke_toolbox .cke_toolbar:first-child>.cke_toolbar_start+.cke_combo_off a.cke_combo_button:active,.cke_hc .cke_toolbar_break+.cke_toolbar>.cke_toolbar_start+.cke_combo_on a.cke_combo_button,.cke_hc .cke_toolbar_break+.cke_toolbar>.cke_toolbar_start+.cke_combo_off a.cke_combo_button:hover,.cke_hc .cke_toolbar_break+.cke_toolbar>.cke_toolbar_start+.cke_combo_off a.cke_combo_button:focus,.cke_hc .cke_toolbar_break+.cke_toolbar>.cke_toolbar_start+.cke_combo_off a.cke_combo_button:active{padding:1px;margin:0}.cke_toolbar .cke_combo+.cke_toolbar_end,.cke_toolbar .cke_combo+.cke_toolgroup{margin-right:0;margin-left:2px}.cke_rtl .cke_toolbar .cke_combo+.cke_toolbar_end,.cke_rtl .cke_toolbar .cke_combo+.cke_toolgroup{margin-left:0;margin-right:2px}.cke_hc .cke_toolbar .cke_combo+.cke_toolbar_end,.cke_hc .cke_toolbar .cke_combo+.cke_toolgroup{margin-left:5px}.cke_hc.cke_rtl .cke_toolbar .cke_combo+.cke_toolbar_end,.cke_hc.cke_rtl .cke_toolbar .cke_combo+.cke_toolgroup{margin-left:0;margin-right:5px}.cke_toolbar.cke_toolbar_last .cke_combo:nth-last-child(-n+2):after{content:none;border:0;width:0;height:0}.cke_combo_text{line-height:26px;padding-left:10px;text-overflow:ellipsis;overflow:hidden;float:left;cursor:default;color:#484848;width:60px}.cke_rtl .cke_combo_text{float:right;text-align:right;padding-left:0;padding-right:10px}.cke_hc .cke_combo_text{line-height:18px;font-size:12px}.cke_combo_open{cursor:default;display:inline-block;font-size:0;height:19px;line-height:17px;margin:1px 10px 1px;width:5px}.cke_hc .cke_combo_open{height:12px}.cke_combo_arrow{cursor:default;margin:11px 0 0;float:left;height:0;width:0;font-size:0;border-left:3px solid transparent;border-right:3px solid transparent;border-top:3px solid #484848}.cke_hc .cke_combo_arrow{font-size:10px;width:auto;border:0;margin-top:3px}.cke_combo_label{display:none;float:left;line-height:26px;vertical-align:top;margin-right:5px}.cke_rtl .cke_combo_label{float:right;margin-left:5px;margin-right:0}.cke_combo_disabled .cke_combo_inlinelabel,.cke_combo_disabled .cke_combo_open{opacity:.3}.cke_path{float:left;margin:-2px 0 2px}a.cke_path_item,span.cke_path_empty{display:inline-block;float:left;padding:3px 4px;margin-right:2px;cursor:default;text-decoration:none;outline:0;border:0;color:#484848;font-weight:bold;font-size:11px}.cke_rtl .cke_path,.cke_rtl .cke_path_item,.cke_rtl .cke_path_empty{float:right}a.cke_path_item:hover,a.cke_path_item:focus,a.cke_path_item:active{background-color:#e5e5e5}.cke_hc a.cke_path_item:hover,.cke_hc a.cke_path_item:focus,.cke_hc a.cke_path_item:active{border:2px solid;padding:1px 2px}.cke_button__source_label,.cke_button__sourcedialog_label{display:inline}.cke_combopanel__fontsize{width:135px}textarea.cke_source{font-family:'Courier New',Monospace;font-size:small;background-color:#fff;white-space:pre-wrap;border:0;padding:0;margin:0;display:block}.cke_wysiwyg_frame,.cke_wysiwyg_div{background-color:#fff}.cke_notifications_area{pointer-events:none}.cke_notification{pointer-events:auto;position:relative;margin:10px;width:300px;color:white;text-align:center;opacity:.95;filter:alpha(opacity = 95);-webkit-animation:fadeIn .7s;animation:fadeIn .7s}.cke_notification_message a{color:#12306f}@-webkit-keyframes fadeIn{from{opacity:.4}to{opacity:.95}}@keyframes fadeIn{from{opacity:.4}to{opacity:.95}}.cke_notification_success{background:#72b572;border:1px solid #63a563}.cke_notification_warning{background:#c83939;border:1px solid #902b2b}.cke_notification_info{background:#2e9ad0;border:1px solid #0f74a8}.cke_notification_info span.cke_notification_progress{background-color:#0f74a8;display:block;padding:0;margin:0;height:100%;overflow:hidden;position:absolute;z-index:1}.cke_notification_message{position:relative;margin:4px 23px 3px;font-family:Arial,Helvetica,sans-serif;font-size:12px;line-height:18px;z-index:4;text-overflow:ellipsis;overflow:hidden}.cke_notification_close{background-image:url(images/close.png);background-repeat:no-repeat;background-position:50%;position:absolute;cursor:pointer;text-align:center;height:20px;width:20px;top:1px;right:1px;padding:0;margin:0;z-index:5;opacity:.6;filter:alpha(opacity = 60)}.cke_notification_close:hover{opacity:1;filter:alpha(opacity = 100)}.cke_notification_close span{display:none}.cke_notification_warning a.cke_notification_close{opacity:.8;filter:alpha(opacity = 80)}.cke_notification_warning a.cke_notification_close:hover{opacity:1;filter:alpha(opacity = 100)}.cke_chrome{visibility:inherit}.cke_voice_label{display:none}legend.cke_voice_label{display:none}.cke_button__about_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -0px !important;}.cke_button__bold_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -24px !important;}.cke_button__italic_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -48px !important;}.cke_button__strike_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -72px !important;}.cke_button__subscript_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -96px !important;}.cke_button__superscript_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -120px !important;}.cke_button__underline_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -144px !important;}.cke_button__blockquote_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -168px !important;}.cke_rtl .cke_button__copy_icon, .cke_mixed_dir_content .cke_rtl .cke_button__copy_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -192px !important;}.cke_ltr .cke_button__copy_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -216px !important;}.cke_rtl .cke_button__cut_icon, .cke_mixed_dir_content .cke_rtl .cke_button__cut_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -240px !important;}.cke_ltr .cke_button__cut_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -264px !important;}.cke_rtl .cke_button__paste_icon, .cke_mixed_dir_content .cke_rtl .cke_button__paste_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -288px !important;}.cke_ltr .cke_button__paste_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -312px !important;}.cke_button__horizontalrule_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -336px !important;}.cke_button__image_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -360px !important;}.cke_rtl .cke_button__indent_icon, .cke_mixed_dir_content .cke_rtl .cke_button__indent_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -384px !important;}.cke_ltr .cke_button__indent_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -408px !important;}.cke_rtl .cke_button__outdent_icon, .cke_mixed_dir_content .cke_rtl .cke_button__outdent_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -432px !important;}.cke_ltr .cke_button__outdent_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -456px !important;}.cke_rtl .cke_button__anchor_icon, .cke_mixed_dir_content .cke_rtl .cke_button__anchor_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -480px !important;}.cke_ltr .cke_button__anchor_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -504px !important;}.cke_button__link_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -528px !important;}.cke_button__unlink_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -552px !important;}.cke_rtl .cke_button__bulletedlist_icon, .cke_mixed_dir_content .cke_rtl .cke_button__bulletedlist_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -576px !important;}.cke_ltr .cke_button__bulletedlist_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -600px !important;}.cke_rtl .cke_button__numberedlist_icon, .cke_mixed_dir_content .cke_rtl .cke_button__numberedlist_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -624px !important;}.cke_ltr .cke_button__numberedlist_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -648px !important;}.cke_button__maximize_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -672px !important;}.cke_rtl .cke_button__pastetext_icon, .cke_mixed_dir_content .cke_rtl .cke_button__pastetext_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -696px !important;}.cke_ltr .cke_button__pastetext_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -720px !important;}.cke_rtl .cke_button__pastefromword_icon, .cke_mixed_dir_content .cke_rtl .cke_button__pastefromword_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -744px !important;}.cke_ltr .cke_button__pastefromword_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -768px !important;}.cke_button__removeformat_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -792px !important;}.cke_rtl .cke_button__source_icon, .cke_mixed_dir_content .cke_rtl .cke_button__source_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -816px !important;}.cke_ltr .cke_button__source_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -840px !important;}.cke_button__specialchar_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -864px !important;}.cke_button__scayt_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -888px !important;}.cke_button__table_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -912px !important;}.cke_rtl .cke_button__redo_icon, .cke_mixed_dir_content .cke_rtl .cke_button__redo_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -936px !important;}.cke_ltr .cke_button__redo_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -960px !important;}.cke_rtl .cke_button__undo_icon, .cke_mixed_dir_content .cke_rtl .cke_button__undo_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -984px !important;}.cke_ltr .cke_button__undo_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -1008px !important;}.cke_button__spellchecker_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -1032px !important;}.cke_hidpi .cke_button__about_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -0px !important;background-size: 16px !important;}.cke_hidpi .cke_button__bold_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -24px !important;background-size: 16px !important;}.cke_hidpi .cke_button__italic_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -48px !important;background-size: 16px !important;}.cke_hidpi .cke_button__strike_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -72px !important;background-size: 16px !important;}.cke_hidpi .cke_button__subscript_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -96px !important;background-size: 16px !important;}.cke_hidpi .cke_button__superscript_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -120px !important;background-size: 16px !important;}.cke_hidpi .cke_button__underline_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -144px !important;background-size: 16px !important;}.cke_hidpi .cke_button__blockquote_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -168px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__copy_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__copy_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -192px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__copy_icon,.cke_ltr.cke_hidpi .cke_button__copy_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -216px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__cut_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__cut_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -240px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__cut_icon,.cke_ltr.cke_hidpi .cke_button__cut_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -264px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__paste_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__paste_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -288px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__paste_icon,.cke_ltr.cke_hidpi .cke_button__paste_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -312px !important;background-size: 16px !important;}.cke_hidpi .cke_button__horizontalrule_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -336px !important;background-size: 16px !important;}.cke_hidpi .cke_button__image_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -360px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__indent_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__indent_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -384px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__indent_icon,.cke_ltr.cke_hidpi .cke_button__indent_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -408px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__outdent_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__outdent_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -432px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__outdent_icon,.cke_ltr.cke_hidpi .cke_button__outdent_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -456px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__anchor_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__anchor_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -480px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__anchor_icon,.cke_ltr.cke_hidpi .cke_button__anchor_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -504px !important;background-size: 16px !important;}.cke_hidpi .cke_button__link_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -528px !important;background-size: 16px !important;}.cke_hidpi .cke_button__unlink_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -552px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__bulletedlist_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__bulletedlist_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -576px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__bulletedlist_icon,.cke_ltr.cke_hidpi .cke_button__bulletedlist_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -600px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__numberedlist_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__numberedlist_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -624px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__numberedlist_icon,.cke_ltr.cke_hidpi .cke_button__numberedlist_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -648px !important;background-size: 16px !important;}.cke_hidpi .cke_button__maximize_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -672px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__pastetext_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__pastetext_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -696px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__pastetext_icon,.cke_ltr.cke_hidpi .cke_button__pastetext_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -720px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__pastefromword_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__pastefromword_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -744px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__pastefromword_icon,.cke_ltr.cke_hidpi .cke_button__pastefromword_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -768px !important;background-size: 16px !important;}.cke_hidpi .cke_button__removeformat_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -792px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__source_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__source_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -816px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__source_icon,.cke_ltr.cke_hidpi .cke_button__source_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -840px !important;background-size: 16px !important;}.cke_hidpi .cke_button__specialchar_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -864px !important;background-size: 16px !important;}.cke_hidpi .cke_button__scayt_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -888px !important;background-size: 16px !important;}.cke_hidpi .cke_button__table_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -912px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__redo_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__redo_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -936px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__redo_icon,.cke_ltr.cke_hidpi .cke_button__redo_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -960px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__undo_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__undo_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -984px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__undo_icon,.cke_ltr.cke_hidpi .cke_button__undo_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -1008px !important;background-size: 16px !important;}.cke_hidpi .cke_button__spellchecker_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -1032px !important;background-size: 16px !important;} \ No newline at end of file diff --git a/admin/plugins/ckeditor/skins/moono-lisa/editor_gecko.css b/admin/plugins/ckeditor/skins/moono-lisa/editor_gecko.css deleted file mode 100644 index 2d089d4..0000000 --- a/admin/plugins/ckeditor/skins/moono-lisa/editor_gecko.css +++ /dev/null @@ -1,5 +0,0 @@ -/* -Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. -For licensing, see LICENSE.md or http://ckeditor.com/license -*/ -.cke_reset{margin:0;padding:0;border:0;background:transparent;text-decoration:none;width:auto;height:auto;vertical-align:baseline;box-sizing:content-box;position:static;transition:none}.cke_reset_all,.cke_reset_all *,.cke_reset_all a,.cke_reset_all textarea{margin:0;padding:0;border:0;background:transparent;text-decoration:none;width:auto;height:auto;vertical-align:baseline;box-sizing:content-box;position:static;transition:none;border-collapse:collapse;font:normal normal normal 12px Arial,Helvetica,Tahoma,Verdana,Sans-Serif;color:#000;text-align:left;white-space:nowrap;cursor:auto;float:none}.cke_reset_all .cke_rtl *{text-align:right}.cke_reset_all iframe{vertical-align:inherit}.cke_reset_all textarea{white-space:pre-wrap}.cke_reset_all textarea,.cke_reset_all input[type="text"],.cke_reset_all input[type="password"]{cursor:text}.cke_reset_all textarea[disabled],.cke_reset_all input[type="text"][disabled],.cke_reset_all input[type="password"][disabled]{cursor:default}.cke_reset_all fieldset{padding:10px;border:2px groove #e0dfe3}.cke_reset_all select{box-sizing:border-box}.cke_reset_all table{table-layout:auto}.cke_chrome{display:block;border:1px solid #d1d1d1;padding:0}.cke_inner{display:block;background:#fff;padding:0;-webkit-touch-callout:none}.cke_float{border:0}.cke_float .cke_inner{padding-bottom:0}.cke_top,.cke_contents,.cke_bottom{display:block;overflow:hidden}.cke_top{border-bottom:1px solid #d1d1d1;background:#f8f8f8;padding:6px 8px 2px;white-space:normal}.cke_float .cke_top{border:1px solid #d1d1d1}.cke_bottom{padding:6px 8px 2px;position:relative;border-top:1px solid #d1d1d1;background:#f8f8f8}.cke_browser_ios .cke_contents{overflow-y:auto;-webkit-overflow-scrolling:touch}.cke_resizer{width:0;height:0;overflow:hidden;border-width:10px 10px 0 0;border-color:transparent #bcbcbc transparent transparent;border-style:dashed solid dashed dashed;font-size:0;vertical-align:bottom;margin-top:6px;margin-bottom:2px}.cke_hc .cke_resizer{font-size:15px;width:auto;height:auto;border-width:0}.cke_resizer_ltr{cursor:se-resize;float:right;margin-right:-4px}.cke_resizer_rtl{border-width:10px 0 0 10px;border-color:transparent transparent transparent #bcbcbc;border-style:dashed dashed dashed solid;cursor:sw-resize;float:left;margin-left:-4px;right:auto}.cke_wysiwyg_div{display:block;height:100%;overflow:auto;padding:0 8px;outline-style:none;box-sizing:border-box}.cke_panel{visibility:visible;width:120px;height:100px;overflow:hidden;background-color:#fff;border:1px solid #d1d1d1}.cke_menu_panel{padding:0;margin:0}.cke_combopanel{width:150px;height:170px}.cke_panel_frame{width:100%;height:100%;font-size:12px;overflow:auto;overflow-x:hidden}.cke_panel_container{overflow-y:auto;overflow-x:hidden}.cke_panel_block:focus{outline:0}.cke_panel_list{margin:0;padding:0;list-style-type:none;white-space:nowrap}.cke_panel_listItem{margin:0;padding:0}.cke_panel_listItem a{padding:6px 7px;display:block;color:inherit!important;text-decoration:none;overflow:hidden;text-overflow:ellipsis}.cke_hc .cke_panel_listItem a{border-style:none}.cke_panel_listItem.cke_selected a,.cke_panel_listItem a:hover,.cke_panel_listItem a:focus,.cke_panel_listItem a:active{background-color:#e9e9e9}.cke_panel_listItem a:focus{outline:1px dotted #000}.cke_hc .cke_panel_listItem a:hover,.cke_hc .cke_panel_listItem a:focus,.cke_hc .cke_panel_listItem a:active{border:2px solid;padding:4px 5px}.cke_panel_listItem p,.cke_panel_listItem h1,.cke_panel_listItem h2,.cke_panel_listItem h3,.cke_panel_listItem h4,.cke_panel_listItem h5,.cke_panel_listItem h6,.cke_panel_listItem pre{margin-top:0;margin-bottom:0}.cke_panel_grouptitle{cursor:default;font-size:11px;font-weight:bold;white-space:nowrap;margin:0;padding:6px 6px 7px 6px;color:#484848;border-bottom:1px solid #d1d1d1;background:#f8f8f8}.cke_colorblock{padding:10px;font-size:11px;font-family:'Microsoft Sans Serif',Tahoma,Arial,Verdana,Sans-Serif}.cke_colorblock,.cke_colorblock a{text-decoration:none;color:#000}a.cke_colorbox{padding:2px;float:left;width:20px;height:20px}.cke_rtl a.cke_colorbox{float:right}a:hover.cke_colorbox,a:focus.cke_colorbox,a:active.cke_colorbox{outline:0;padding:0;border:2px solid #139ff7}a:hover.cke_colorbox{border-color:#bcbcbc}span.cke_colorbox{width:20px;height:20px;float:left}.cke_rtl span.cke_colorbox{float:right}a.cke_colorauto,a.cke_colormore{border:#fff 1px solid;padding:3px;display:block;cursor:pointer}a.cke_colorauto{padding:0;border:1px solid transparent;margin-bottom:6px;height:26px;line-height:26px}a.cke_colormore{margin-top:10px;height:20px;line-height:19px}a:hover.cke_colorauto,a:hover.cke_colormore,a:focus.cke_colorauto,a:focus.cke_colormore,a:active.cke_colorauto,a:active.cke_colormore{outline:0;border:#139ff7 1px solid;background-color:#f8f8f8}a:hover.cke_colorauto,a:hover.cke_colormore{border-color:#bcbcbc}.cke_colorauto span.cke_colorbox{width:18px;height:18px;border:1px solid #808080;margin-left:1px;margin-top:3px}.cke_rtl .cke_colorauto span.cke_colorbox{margin-left:0;margin-right:1px}span.cke_colorbox[style*="#ffffff"],span.cke_colorbox[style*="#FFFFFF"],span.cke_colorbox[style="background-color:#fff"],span.cke_colorbox[style="background-color:#FFF"],span.cke_colorbox[style*="rgb(255,255,255)"],span.cke_colorbox[style*="rgb(255, 255, 255)"]{border:1px solid #808080;width:18px;height:18px}.cke_toolbar{float:left}.cke_rtl .cke_toolbar{float:right}.cke_toolgroup{border:0;float:left;margin:1px 2px 6px 0;padding-right:3px}.cke_rtl .cke_toolgroup{float:right;margin:1px 0 6px 2px;padding-left:3px;padding-right:0}.cke_hc .cke_toolgroup{margin-right:5px;margin-bottom:5px}.cke_hc.cke_rtl .cke_toolgroup{margin-right:0;margin-left:5px}a.cke_button{display:inline-block;height:18px;padding:4px 6px;outline:0;cursor:default;float:left;border:0;position:relative}.cke_rtl a.cke_button{float:right}.cke_hc a.cke_button{border:1px solid black;padding:3px 5px;margin:0 3px 5px 0}.cke_hc.cke_rtl a.cke_button{margin:0 0 5px 3px}a.cke_button_on{background:#fff;border:1px #bcbcbc solid;padding:3px 5px}a.cke_button_off:hover,a.cke_button_off:focus,a.cke_button_off:active{background:#e5e5e5;border:1px #bcbcbc solid;padding:3px 5px}.cke_hc a.cke_button_on,.cke_hc a.cke_button_off:hover,.cke_hc a.cke_button_off:focus,.cke_hc a.cke_button_off:active{background:#e5e5e5;border:3px solid #000;padding:1px 3px}a.cke_button_disabled:hover,a.cke_button_disabled:focus,a.cke_button_disabled:active{border:0;padding:4px 6px;background-color:transparent}a.cke_button_disabled:focus{border:1px #bcbcbc solid;padding:3px 5px}.cke_hc a.cke_button_disabled:hover,.cke_hc a.cke_button_disabled:focus,.cke_hc a.cke_button_disabled:active{border:1px solid #acacac;padding:3px 5px;margin:0 3px 5px 0}.cke_hc a.cke_button_disabled:focus{border:3px solid #000;padding:1px 3px}.cke_hc.cke_rtl a.cke_button_disabled:hover,.cke_hc.cke_rtl a.cke_button_disabled:focus,.cke_hc.cke_rtl a.cke_button_disabled:active{margin:0 0 5px 3px}a.cke_button_disabled .cke_button_icon,a.cke_button_disabled .cke_button_arrow{opacity:.3}.cke_hc a.cke_button_disabled{border-color:#acacac}.cke_hc a.cke_button_disabled .cke_button_icon,.cke_hc a.cke_button_disabled .cke_button_label{opacity:.5}.cke_toolgroup a.cke_button:last-child:after,.cke_toolgroup a.cke_button.cke_button_disabled:hover:last-child:after{content:"";position:absolute;height:18px;width:0;border-right:1px solid #bcbcbc;margin-top:4px;top:0;right:-3px}.cke_rtl .cke_toolgroup a.cke_button:last-child:after,.cke_rtl .cke_toolgroup a.cke_button.cke_button_disabled:hover:last-child:after{border-right:0;right:auto;border-left:1px solid #bcbcbc;top:0;left:-3px}.cke_hc .cke_toolgroup a.cke_button:last-child:after,.cke_hc .cke_toolgroup a.cke_button.cke_button_disabled:last-child:after,.cke_hc .cke_toolgroup a.cke_button.cke_button_disabled:hover:last-child:after{border-color:#000;top:0;right:-7px}.cke_hc.cke_rtl .cke_toolgroup a.cke_button:last-child:after,.cke_hc.cke_rtl .cke_toolgroup a.cke_button.cke_button_disabled:last-child:after,.cke_hc.cke_rtl .cke_toolgroup a.cke_button.cke_button_disabled:hover:last-child:after{top:0;right:auto;left:-7px}.cke_toolgroup a.cke_button:hover:last-child:after,.cke_toolgroup a.cke_button.cke_button_on:last-child:after{top:-1px;right:-4px}.cke_rtl .cke_toolgroup a.cke_button:hover:last-child:after,.cke_rtl .cke_toolgroup a.cke_button.cke_button_on:last-child:after{top:-1px;right:auto;left:-4px}.cke_hc .cke_toolgroup a.cke_button:hover:last-child:after,.cke_hc .cke_toolgroup a.cke_button.cke_button_on:last-child:after{top:-2px;right:-9px}.cke_hc.cke_rtl .cke_toolgroup a.cke_button:hover:last-child:after,.cke_hc.cke_rtl .cke_toolgroup a.cke_button.cke_button_on:last-child:after{top:-2px;right:auto;left:-9px}.cke_toolbar.cke_toolbar_last .cke_toolgroup a.cke_button:last-child:after{content:none;border:0;width:0;height:0}.cke_button_icon{cursor:inherit;background-repeat:no-repeat;margin-top:1px;width:16px;height:16px;float:left;display:inline-block}.cke_rtl .cke_button_icon{float:right}.cke_hc .cke_button_icon{display:none}.cke_button_label{display:none;padding-left:3px;margin-top:1px;line-height:17px;vertical-align:middle;float:left;cursor:default;color:#484848}.cke_rtl .cke_button_label{padding-right:3px;padding-left:0;float:right}.cke_hc .cke_button_label{padding:0;display:inline-block;font-size:12px}.cke_button_arrow{display:inline-block;margin:8px 0 0 1px;width:0;height:0;cursor:default;vertical-align:top;border-left:3px solid transparent;border-right:3px solid transparent;border-top:3px solid #484848}.cke_rtl .cke_button_arrow{margin-right:5px;margin-left:0}.cke_hc .cke_button_arrow{font-size:10px;margin:3px 0 0 3px;width:auto;border:0}.cke_toolbar_separator{float:left;background-color:#bcbcbc;margin:4px 2px 0 2px;height:18px;width:1px}.cke_rtl .cke_toolbar_separator{float:right}.cke_hc .cke_toolbar_separator{background-color:#000;margin-left:2px;margin-right:5px;margin-bottom:9px}.cke_hc.cke_rtl .cke_toolbar_separator{margin-left:5px;margin-right:2px}.cke_toolbar_break{display:block;clear:left}.cke_rtl .cke_toolbar_break{clear:right}a.cke_toolbox_collapser{width:12px;height:11px;float:right;margin:11px 0 0;font-size:0;cursor:default;text-align:center;border:1px solid #bcbcbc}.cke_rtl .cke_toolbox_collapser{float:left}.cke_toolbox_collapser:hover{background:#e5e5e5}.cke_toolbox_collapser.cke_toolbox_collapser_min{margin:0 2px 4px}.cke_toolbox_collapser .cke_arrow{display:inline-block;height:0;width:0;font-size:0;margin-top:1px;border:3px solid transparent;border-bottom-color:#484848}.cke_toolbox_collapser.cke_toolbox_collapser_min .cke_arrow{margin-top:4px;border-bottom-color:transparent;border-top-color:#484848}.cke_hc .cke_toolbox_collapser .cke_arrow{font-size:8px;width:auto;border:0;margin-top:0}.cke_menuitem span{cursor:default}.cke_menubutton{display:block}.cke_hc .cke_menubutton{padding:2px}.cke_menubutton:hover,.cke_menubutton:focus,.cke_menubutton:active{background-color:#e9e9e9;display:block;outline:1px dotted}.cke_menubutton:hover{outline:0}.cke_hc .cke_menubutton:hover,.cke_hc .cke_menubutton:focus,.cke_hc .cke_menubutton:active{border:2px solid;padding:0}.cke_menubutton_disabled:hover,.cke_menubutton_disabled:focus,.cke_menubutton_disabled:active{background-color:transparent;outline:0}.cke_menubutton_inner{display:table-row}.cke_menubutton_icon,.cke_menubutton_label,.cke_menuarrow{display:table-cell}.cke_menubutton_icon{background-color:#f8f8f8;padding:6px 4px}.cke_hc .cke_menubutton_icon{height:16px;width:0;padding:4px 0}.cke_menubutton:hover .cke_menubutton_icon,.cke_menubutton:focus .cke_menubutton_icon,.cke_menubutton:active .cke_menubutton_icon{background-color:#e9e9e9}.cke_menubutton_disabled:hover .cke_menubutton_icon,.cke_menubutton_disabled:focus .cke_menubutton_icon,.cke_menubutton_disabled:active .cke_menubutton_icon{background-color:#f8f8f8;outline:0}.cke_menuitem .cke_menubutton_on{background-color:#e9e9e9;border:1px solid #dedede;outline:0}.cke_menubutton_on .cke_menubutton_icon{padding-right:3px;background-color:#e9e9e9}.cke_menubutton_label{padding:0 5px;background-color:transparent;width:100%;vertical-align:middle}.cke_menubutton_shortcut{color:#979797}.cke_menubutton_disabled .cke_menubutton_label{opacity:.3;filter:alpha(opacity=30)}.cke_panel_frame .cke_menubutton_label{display:none}.cke_menuseparator{background-color:#d1d1d1;height:1px}.cke_menuarrow{background:transparent url(images/arrow.png) no-repeat 0 10px;padding:0 5px}.cke_rtl .cke_menuarrow{background-position:5px -13px;background-repeat:no-repeat}.cke_hc .cke_menuarrow{background-image:none}.cke_menuarrow span{display:none}.cke_hc .cke_menuarrow span{vertical-align:middle;display:inline}.cke_combo{display:inline-block;float:left;position:relative;margin-bottom:5px}.cke_rtl .cke_combo{float:right}.cke_hc .cke_combo{margin-top:1px;margin-bottom:10px}.cke_combo:after{content:"";position:absolute;height:18px;width:0;border-right:1px solid #bcbcbc;margin-top:5px;top:0;right:0}.cke_rtl .cke_combo:after{border-right:0;border-left:1px solid #bcbcbc;right:auto;left:0}.cke_hc .cke_combo:after{border-color:#000}a.cke_combo_button{cursor:default;display:inline-block;float:left;margin:0;padding:1px}.cke_rtl a.cke_combo_button{float:right}.cke_hc a.cke_combo_button{padding:4px}.cke_combo_on a.cke_combo_button,.cke_combo_off a.cke_combo_button:hover,.cke_combo_off a.cke_combo_button:focus,.cke_combo_off a.cke_combo_button:active{background:#e5e5e5;border:1px solid #bcbcbc;padding:0 0 0 1px;margin-left:-1px}.cke_combo_off a.cke_combo_button:focus{outline:0}.cke_combo_on a.cke_combo_button,.cke_combo_off a.cke_combo_button:active{background:#fff}.cke_rtl .cke_combo_on a.cke_combo_button,.cke_rtl .cke_combo_off a.cke_combo_button:hover,.cke_rtl .cke_combo_off a.cke_combo_button:focus,.cke_rtl .cke_combo_off a.cke_combo_button:active{padding:0 1px 0 0;margin-left:0;margin-right:-1px}.cke_hc .cke_combo_on a.cke_combo_button,.cke_hc .cke_combo_off a.cke_combo_button:hover,.cke_hc .cke_combo_off a.cke_combo_button:focus,.cke_hc .cke_combo_off a.cke_combo_button:active{border:3px solid #000;padding:1px 1px 1px 2px}.cke_hc.cke_rtl .cke_combo_on a.cke_combo_button,.cke_hc.cke_rtl .cke_combo_off a.cke_combo_button:hover,.cke_hc.cke_rtl .cke_combo_off a.cke_combo_button:focus,.cke_hc.cke_rtl .cke_combo_off a.cke_combo_button:active{padding:1px 2px 1px 1px}.cke_toolbar_start+.cke_combo_on a.cke_combo_button,.cke_toolbar_start+.cke_combo_off a.cke_combo_button:hover,.cke_toolbar_start+.cke_combo_off a.cke_combo_button:focus,.cke_toolbar_start+.cke_combo_off a.cke_combo_button:active{padding:0 0 0 3px;margin-left:-3px}.cke_rtl .cke_toolbar_start+.cke_combo_on a.cke_combo_button,.cke_rtl .cke_toolbar_start+.cke_combo_off a.cke_combo_button:hover,.cke_rtl .cke_toolbar_start+.cke_combo_off a.cke_combo_button:focus,.cke_rtl .cke_toolbar_start+.cke_combo_off a.cke_combo_button:active{padding:0 3px 0 0;margin-left:0;margin-right:-3px}.cke_hc .cke_toolbar>.cke_toolbar_start+.cke_combo_on a.cke_combo_button,.cke_hc .cke_toolbar>.cke_toolbar_start+.cke_combo_off a.cke_combo_button:hover,.cke_hc .cke_toolbar>.cke_toolbar_start+.cke_combo_off a.cke_combo_button:focus,.cke_hc .cke_toolbar>.cke_toolbar_start+.cke_combo_off a.cke_combo_button:active{padding:1px 1px 1px 7px;margin-left:-6px}.cke_hc.cke_rtl .cke_toolbar>.cke_toolbar_start+.cke_combo_on a.cke_combo_button,.cke_hc.cke_rtl .cke_toolbar>.cke_toolbar_start+.cke_combo_off a.cke_combo_button:hover,.cke_hc.cke_rtl .cke_toolbar>.cke_toolbar_start+.cke_combo_off a.cke_combo_button:focus,.cke_hc.cke_rtl .cke_toolbar>.cke_toolbar_start+.cke_combo_off a.cke_combo_button:active{padding:1px 7px 1px 1px;margin-left:0;margin-right:-6px}.cke_toolbox .cke_toolbar:first-child>.cke_toolbar_start+.cke_combo_on a.cke_combo_button,.cke_toolbox .cke_toolbar:first-child>.cke_toolbar_start+.cke_combo_off a.cke_combo_button:hover,.cke_toolbox .cke_toolbar:first-child>.cke_toolbar_start+.cke_combo_off a.cke_combo_button:focus,.cke_toolbox .cke_toolbar:first-child>.cke_toolbar_start+.cke_combo_off a.cke_combo_button:active,.cke_toolbar_break+.cke_toolbar>.cke_toolbar_start+.cke_combo_on a.cke_combo_button,.cke_toolbar_break+.cke_toolbar>.cke_toolbar_start+.cke_combo_off a.cke_combo_button:hover,.cke_toolbar_break+.cke_toolbar>.cke_toolbar_start+.cke_combo_off a.cke_combo_button:focus,.cke_toolbar_break+.cke_toolbar>.cke_toolbar_start+.cke_combo_off a.cke_combo_button:active{padding:0;margin:0}.cke_hc .cke_toolbox .cke_toolbar:first-child>.cke_toolbar_start+.cke_combo_on a.cke_combo_button,.cke_hc .cke_toolbox .cke_toolbar:first-child>.cke_toolbar_start+.cke_combo_off a.cke_combo_button:hover,.cke_hc .cke_toolbox .cke_toolbar:first-child>.cke_toolbar_start+.cke_combo_off a.cke_combo_button:focus,.cke_hc .cke_toolbox .cke_toolbar:first-child>.cke_toolbar_start+.cke_combo_off a.cke_combo_button:active,.cke_hc .cke_toolbar_break+.cke_toolbar>.cke_toolbar_start+.cke_combo_on a.cke_combo_button,.cke_hc .cke_toolbar_break+.cke_toolbar>.cke_toolbar_start+.cke_combo_off a.cke_combo_button:hover,.cke_hc .cke_toolbar_break+.cke_toolbar>.cke_toolbar_start+.cke_combo_off a.cke_combo_button:focus,.cke_hc .cke_toolbar_break+.cke_toolbar>.cke_toolbar_start+.cke_combo_off a.cke_combo_button:active{padding:1px;margin:0}.cke_toolbar .cke_combo+.cke_toolbar_end,.cke_toolbar .cke_combo+.cke_toolgroup{margin-right:0;margin-left:2px}.cke_rtl .cke_toolbar .cke_combo+.cke_toolbar_end,.cke_rtl .cke_toolbar .cke_combo+.cke_toolgroup{margin-left:0;margin-right:2px}.cke_hc .cke_toolbar .cke_combo+.cke_toolbar_end,.cke_hc .cke_toolbar .cke_combo+.cke_toolgroup{margin-left:5px}.cke_hc.cke_rtl .cke_toolbar .cke_combo+.cke_toolbar_end,.cke_hc.cke_rtl .cke_toolbar .cke_combo+.cke_toolgroup{margin-left:0;margin-right:5px}.cke_toolbar.cke_toolbar_last .cke_combo:nth-last-child(-n+2):after{content:none;border:0;width:0;height:0}.cke_combo_text{line-height:26px;padding-left:10px;text-overflow:ellipsis;overflow:hidden;float:left;cursor:default;color:#484848;width:60px}.cke_rtl .cke_combo_text{float:right;text-align:right;padding-left:0;padding-right:10px}.cke_hc .cke_combo_text{line-height:18px;font-size:12px}.cke_combo_open{cursor:default;display:inline-block;font-size:0;height:19px;line-height:17px;margin:1px 10px 1px;width:5px}.cke_hc .cke_combo_open{height:12px}.cke_combo_arrow{cursor:default;margin:11px 0 0;float:left;height:0;width:0;font-size:0;border-left:3px solid transparent;border-right:3px solid transparent;border-top:3px solid #484848}.cke_hc .cke_combo_arrow{font-size:10px;width:auto;border:0;margin-top:3px}.cke_combo_label{display:none;float:left;line-height:26px;vertical-align:top;margin-right:5px}.cke_rtl .cke_combo_label{float:right;margin-left:5px;margin-right:0}.cke_combo_disabled .cke_combo_inlinelabel,.cke_combo_disabled .cke_combo_open{opacity:.3}.cke_path{float:left;margin:-2px 0 2px}a.cke_path_item,span.cke_path_empty{display:inline-block;float:left;padding:3px 4px;margin-right:2px;cursor:default;text-decoration:none;outline:0;border:0;color:#484848;font-weight:bold;font-size:11px}.cke_rtl .cke_path,.cke_rtl .cke_path_item,.cke_rtl .cke_path_empty{float:right}a.cke_path_item:hover,a.cke_path_item:focus,a.cke_path_item:active{background-color:#e5e5e5}.cke_hc a.cke_path_item:hover,.cke_hc a.cke_path_item:focus,.cke_hc a.cke_path_item:active{border:2px solid;padding:1px 2px}.cke_button__source_label,.cke_button__sourcedialog_label{display:inline}.cke_combopanel__fontsize{width:135px}textarea.cke_source{font-family:'Courier New',Monospace;font-size:small;background-color:#fff;white-space:pre-wrap;border:0;padding:0;margin:0;display:block}.cke_wysiwyg_frame,.cke_wysiwyg_div{background-color:#fff}.cke_notifications_area{pointer-events:none}.cke_notification{pointer-events:auto;position:relative;margin:10px;width:300px;color:white;text-align:center;opacity:.95;filter:alpha(opacity = 95);-webkit-animation:fadeIn .7s;animation:fadeIn .7s}.cke_notification_message a{color:#12306f}@-webkit-keyframes fadeIn{from{opacity:.4}to{opacity:.95}}@keyframes fadeIn{from{opacity:.4}to{opacity:.95}}.cke_notification_success{background:#72b572;border:1px solid #63a563}.cke_notification_warning{background:#c83939;border:1px solid #902b2b}.cke_notification_info{background:#2e9ad0;border:1px solid #0f74a8}.cke_notification_info span.cke_notification_progress{background-color:#0f74a8;display:block;padding:0;margin:0;height:100%;overflow:hidden;position:absolute;z-index:1}.cke_notification_message{position:relative;margin:4px 23px 3px;font-family:Arial,Helvetica,sans-serif;font-size:12px;line-height:18px;z-index:4;text-overflow:ellipsis;overflow:hidden}.cke_notification_close{background-image:url(images/close.png);background-repeat:no-repeat;background-position:50%;position:absolute;cursor:pointer;text-align:center;height:20px;width:20px;top:1px;right:1px;padding:0;margin:0;z-index:5;opacity:.6;filter:alpha(opacity = 60)}.cke_notification_close:hover{opacity:1;filter:alpha(opacity = 100)}.cke_notification_close span{display:none}.cke_notification_warning a.cke_notification_close{opacity:.8;filter:alpha(opacity = 80)}.cke_notification_warning a.cke_notification_close:hover{opacity:1;filter:alpha(opacity = 100)}.cke_chrome{visibility:inherit}.cke_voice_label{display:none}legend.cke_voice_label{display:none}.cke_bottom{padding-bottom:3px}.cke_combo_text{margin-bottom:-1px;margin-top:1px}.cke_button__about_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -0px !important;}.cke_button__bold_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -24px !important;}.cke_button__italic_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -48px !important;}.cke_button__strike_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -72px !important;}.cke_button__subscript_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -96px !important;}.cke_button__superscript_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -120px !important;}.cke_button__underline_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -144px !important;}.cke_button__blockquote_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -168px !important;}.cke_rtl .cke_button__copy_icon, .cke_mixed_dir_content .cke_rtl .cke_button__copy_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -192px !important;}.cke_ltr .cke_button__copy_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -216px !important;}.cke_rtl .cke_button__cut_icon, .cke_mixed_dir_content .cke_rtl .cke_button__cut_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -240px !important;}.cke_ltr .cke_button__cut_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -264px !important;}.cke_rtl .cke_button__paste_icon, .cke_mixed_dir_content .cke_rtl .cke_button__paste_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -288px !important;}.cke_ltr .cke_button__paste_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -312px !important;}.cke_button__horizontalrule_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -336px !important;}.cke_button__image_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -360px !important;}.cke_rtl .cke_button__indent_icon, .cke_mixed_dir_content .cke_rtl .cke_button__indent_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -384px !important;}.cke_ltr .cke_button__indent_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -408px !important;}.cke_rtl .cke_button__outdent_icon, .cke_mixed_dir_content .cke_rtl .cke_button__outdent_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -432px !important;}.cke_ltr .cke_button__outdent_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -456px !important;}.cke_rtl .cke_button__anchor_icon, .cke_mixed_dir_content .cke_rtl .cke_button__anchor_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -480px !important;}.cke_ltr .cke_button__anchor_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -504px !important;}.cke_button__link_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -528px !important;}.cke_button__unlink_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -552px !important;}.cke_rtl .cke_button__bulletedlist_icon, .cke_mixed_dir_content .cke_rtl .cke_button__bulletedlist_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -576px !important;}.cke_ltr .cke_button__bulletedlist_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -600px !important;}.cke_rtl .cke_button__numberedlist_icon, .cke_mixed_dir_content .cke_rtl .cke_button__numberedlist_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -624px !important;}.cke_ltr .cke_button__numberedlist_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -648px !important;}.cke_button__maximize_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -672px !important;}.cke_rtl .cke_button__pastetext_icon, .cke_mixed_dir_content .cke_rtl .cke_button__pastetext_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -696px !important;}.cke_ltr .cke_button__pastetext_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -720px !important;}.cke_rtl .cke_button__pastefromword_icon, .cke_mixed_dir_content .cke_rtl .cke_button__pastefromword_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -744px !important;}.cke_ltr .cke_button__pastefromword_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -768px !important;}.cke_button__removeformat_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -792px !important;}.cke_rtl .cke_button__source_icon, .cke_mixed_dir_content .cke_rtl .cke_button__source_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -816px !important;}.cke_ltr .cke_button__source_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -840px !important;}.cke_button__specialchar_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -864px !important;}.cke_button__scayt_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -888px !important;}.cke_button__table_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -912px !important;}.cke_rtl .cke_button__redo_icon, .cke_mixed_dir_content .cke_rtl .cke_button__redo_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -936px !important;}.cke_ltr .cke_button__redo_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -960px !important;}.cke_rtl .cke_button__undo_icon, .cke_mixed_dir_content .cke_rtl .cke_button__undo_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -984px !important;}.cke_ltr .cke_button__undo_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -1008px !important;}.cke_button__spellchecker_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -1032px !important;}.cke_hidpi .cke_button__about_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -0px !important;background-size: 16px !important;}.cke_hidpi .cke_button__bold_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -24px !important;background-size: 16px !important;}.cke_hidpi .cke_button__italic_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -48px !important;background-size: 16px !important;}.cke_hidpi .cke_button__strike_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -72px !important;background-size: 16px !important;}.cke_hidpi .cke_button__subscript_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -96px !important;background-size: 16px !important;}.cke_hidpi .cke_button__superscript_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -120px !important;background-size: 16px !important;}.cke_hidpi .cke_button__underline_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -144px !important;background-size: 16px !important;}.cke_hidpi .cke_button__blockquote_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -168px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__copy_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__copy_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -192px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__copy_icon,.cke_ltr.cke_hidpi .cke_button__copy_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -216px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__cut_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__cut_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -240px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__cut_icon,.cke_ltr.cke_hidpi .cke_button__cut_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -264px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__paste_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__paste_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -288px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__paste_icon,.cke_ltr.cke_hidpi .cke_button__paste_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -312px !important;background-size: 16px !important;}.cke_hidpi .cke_button__horizontalrule_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -336px !important;background-size: 16px !important;}.cke_hidpi .cke_button__image_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -360px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__indent_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__indent_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -384px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__indent_icon,.cke_ltr.cke_hidpi .cke_button__indent_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -408px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__outdent_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__outdent_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -432px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__outdent_icon,.cke_ltr.cke_hidpi .cke_button__outdent_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -456px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__anchor_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__anchor_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -480px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__anchor_icon,.cke_ltr.cke_hidpi .cke_button__anchor_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -504px !important;background-size: 16px !important;}.cke_hidpi .cke_button__link_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -528px !important;background-size: 16px !important;}.cke_hidpi .cke_button__unlink_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -552px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__bulletedlist_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__bulletedlist_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -576px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__bulletedlist_icon,.cke_ltr.cke_hidpi .cke_button__bulletedlist_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -600px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__numberedlist_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__numberedlist_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -624px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__numberedlist_icon,.cke_ltr.cke_hidpi .cke_button__numberedlist_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -648px !important;background-size: 16px !important;}.cke_hidpi .cke_button__maximize_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -672px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__pastetext_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__pastetext_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -696px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__pastetext_icon,.cke_ltr.cke_hidpi .cke_button__pastetext_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -720px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__pastefromword_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__pastefromword_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -744px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__pastefromword_icon,.cke_ltr.cke_hidpi .cke_button__pastefromword_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -768px !important;background-size: 16px !important;}.cke_hidpi .cke_button__removeformat_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -792px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__source_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__source_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -816px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__source_icon,.cke_ltr.cke_hidpi .cke_button__source_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -840px !important;background-size: 16px !important;}.cke_hidpi .cke_button__specialchar_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -864px !important;background-size: 16px !important;}.cke_hidpi .cke_button__scayt_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -888px !important;background-size: 16px !important;}.cke_hidpi .cke_button__table_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -912px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__redo_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__redo_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -936px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__redo_icon,.cke_ltr.cke_hidpi .cke_button__redo_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -960px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__undo_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__undo_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -984px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__undo_icon,.cke_ltr.cke_hidpi .cke_button__undo_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -1008px !important;background-size: 16px !important;}.cke_hidpi .cke_button__spellchecker_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -1032px !important;background-size: 16px !important;} \ No newline at end of file diff --git a/admin/plugins/ckeditor/skins/moono-lisa/editor_ie.css b/admin/plugins/ckeditor/skins/moono-lisa/editor_ie.css deleted file mode 100644 index dea7fe2..0000000 --- a/admin/plugins/ckeditor/skins/moono-lisa/editor_ie.css +++ /dev/null @@ -1,5 +0,0 @@ -/* -Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. -For licensing, see LICENSE.md or http://ckeditor.com/license -*/ -.cke_reset{margin:0;padding:0;border:0;background:transparent;text-decoration:none;width:auto;height:auto;vertical-align:baseline;box-sizing:content-box;position:static;transition:none}.cke_reset_all,.cke_reset_all *,.cke_reset_all a,.cke_reset_all textarea{margin:0;padding:0;border:0;background:transparent;text-decoration:none;width:auto;height:auto;vertical-align:baseline;box-sizing:content-box;position:static;transition:none;border-collapse:collapse;font:normal normal normal 12px Arial,Helvetica,Tahoma,Verdana,Sans-Serif;color:#000;text-align:left;white-space:nowrap;cursor:auto;float:none}.cke_reset_all .cke_rtl *{text-align:right}.cke_reset_all iframe{vertical-align:inherit}.cke_reset_all textarea{white-space:pre-wrap}.cke_reset_all textarea,.cke_reset_all input[type="text"],.cke_reset_all input[type="password"]{cursor:text}.cke_reset_all textarea[disabled],.cke_reset_all input[type="text"][disabled],.cke_reset_all input[type="password"][disabled]{cursor:default}.cke_reset_all fieldset{padding:10px;border:2px groove #e0dfe3}.cke_reset_all select{box-sizing:border-box}.cke_reset_all table{table-layout:auto}.cke_chrome{display:block;border:1px solid #d1d1d1;padding:0}.cke_inner{display:block;background:#fff;padding:0;-webkit-touch-callout:none}.cke_float{border:0}.cke_float .cke_inner{padding-bottom:0}.cke_top,.cke_contents,.cke_bottom{display:block;overflow:hidden}.cke_top{border-bottom:1px solid #d1d1d1;background:#f8f8f8;padding:6px 8px 2px;white-space:normal}.cke_float .cke_top{border:1px solid #d1d1d1}.cke_bottom{padding:6px 8px 2px;position:relative;border-top:1px solid #d1d1d1;background:#f8f8f8}.cke_browser_ios .cke_contents{overflow-y:auto;-webkit-overflow-scrolling:touch}.cke_resizer{width:0;height:0;overflow:hidden;border-width:10px 10px 0 0;border-color:transparent #bcbcbc transparent transparent;border-style:dashed solid dashed dashed;font-size:0;vertical-align:bottom;margin-top:6px;margin-bottom:2px}.cke_hc .cke_resizer{font-size:15px;width:auto;height:auto;border-width:0}.cke_resizer_ltr{cursor:se-resize;float:right;margin-right:-4px}.cke_resizer_rtl{border-width:10px 0 0 10px;border-color:transparent transparent transparent #bcbcbc;border-style:dashed dashed dashed solid;cursor:sw-resize;float:left;margin-left:-4px;right:auto}.cke_wysiwyg_div{display:block;height:100%;overflow:auto;padding:0 8px;outline-style:none;box-sizing:border-box}.cke_panel{visibility:visible;width:120px;height:100px;overflow:hidden;background-color:#fff;border:1px solid #d1d1d1}.cke_menu_panel{padding:0;margin:0}.cke_combopanel{width:150px;height:170px}.cke_panel_frame{width:100%;height:100%;font-size:12px;overflow:auto;overflow-x:hidden}.cke_panel_container{overflow-y:auto;overflow-x:hidden}.cke_panel_block:focus{outline:0}.cke_panel_list{margin:0;padding:0;list-style-type:none;white-space:nowrap}.cke_panel_listItem{margin:0;padding:0}.cke_panel_listItem a{padding:6px 7px;display:block;color:inherit!important;text-decoration:none;overflow:hidden;text-overflow:ellipsis}.cke_hc .cke_panel_listItem a{border-style:none}.cke_panel_listItem.cke_selected a,.cke_panel_listItem a:hover,.cke_panel_listItem a:focus,.cke_panel_listItem a:active{background-color:#e9e9e9}.cke_panel_listItem a:focus{outline:1px dotted #000}.cke_hc .cke_panel_listItem a:hover,.cke_hc .cke_panel_listItem a:focus,.cke_hc .cke_panel_listItem a:active{border:2px solid;padding:4px 5px}.cke_panel_listItem p,.cke_panel_listItem h1,.cke_panel_listItem h2,.cke_panel_listItem h3,.cke_panel_listItem h4,.cke_panel_listItem h5,.cke_panel_listItem h6,.cke_panel_listItem pre{margin-top:0;margin-bottom:0}.cke_panel_grouptitle{cursor:default;font-size:11px;font-weight:bold;white-space:nowrap;margin:0;padding:6px 6px 7px 6px;color:#484848;border-bottom:1px solid #d1d1d1;background:#f8f8f8}.cke_colorblock{padding:10px;font-size:11px;font-family:'Microsoft Sans Serif',Tahoma,Arial,Verdana,Sans-Serif}.cke_colorblock,.cke_colorblock a{text-decoration:none;color:#000}a.cke_colorbox{padding:2px;float:left;width:20px;height:20px}.cke_rtl a.cke_colorbox{float:right}a:hover.cke_colorbox,a:focus.cke_colorbox,a:active.cke_colorbox{outline:0;padding:0;border:2px solid #139ff7}a:hover.cke_colorbox{border-color:#bcbcbc}span.cke_colorbox{width:20px;height:20px;float:left}.cke_rtl span.cke_colorbox{float:right}a.cke_colorauto,a.cke_colormore{border:#fff 1px solid;padding:3px;display:block;cursor:pointer}a.cke_colorauto{padding:0;border:1px solid transparent;margin-bottom:6px;height:26px;line-height:26px}a.cke_colormore{margin-top:10px;height:20px;line-height:19px}a:hover.cke_colorauto,a:hover.cke_colormore,a:focus.cke_colorauto,a:focus.cke_colormore,a:active.cke_colorauto,a:active.cke_colormore{outline:0;border:#139ff7 1px solid;background-color:#f8f8f8}a:hover.cke_colorauto,a:hover.cke_colormore{border-color:#bcbcbc}.cke_colorauto span.cke_colorbox{width:18px;height:18px;border:1px solid #808080;margin-left:1px;margin-top:3px}.cke_rtl .cke_colorauto span.cke_colorbox{margin-left:0;margin-right:1px}span.cke_colorbox[style*="#ffffff"],span.cke_colorbox[style*="#FFFFFF"],span.cke_colorbox[style="background-color:#fff"],span.cke_colorbox[style="background-color:#FFF"],span.cke_colorbox[style*="rgb(255,255,255)"],span.cke_colorbox[style*="rgb(255, 255, 255)"]{border:1px solid #808080;width:18px;height:18px}.cke_toolbar{float:left}.cke_rtl .cke_toolbar{float:right}.cke_toolgroup{border:0;float:left;margin:1px 2px 6px 0;padding-right:3px}.cke_rtl .cke_toolgroup{float:right;margin:1px 0 6px 2px;padding-left:3px;padding-right:0}.cke_hc .cke_toolgroup{margin-right:5px;margin-bottom:5px}.cke_hc.cke_rtl .cke_toolgroup{margin-right:0;margin-left:5px}a.cke_button{display:inline-block;height:18px;padding:4px 6px;outline:0;cursor:default;float:left;border:0;position:relative}.cke_rtl a.cke_button{float:right}.cke_hc a.cke_button{border:1px solid black;padding:3px 5px;margin:0 3px 5px 0}.cke_hc.cke_rtl a.cke_button{margin:0 0 5px 3px}a.cke_button_on{background:#fff;border:1px #bcbcbc solid;padding:3px 5px}a.cke_button_off:hover,a.cke_button_off:focus,a.cke_button_off:active{background:#e5e5e5;border:1px #bcbcbc solid;padding:3px 5px}.cke_hc a.cke_button_on,.cke_hc a.cke_button_off:hover,.cke_hc a.cke_button_off:focus,.cke_hc a.cke_button_off:active{background:#e5e5e5;border:3px solid #000;padding:1px 3px}a.cke_button_disabled:hover,a.cke_button_disabled:focus,a.cke_button_disabled:active{border:0;padding:4px 6px;background-color:transparent}a.cke_button_disabled:focus{border:1px #bcbcbc solid;padding:3px 5px}.cke_hc a.cke_button_disabled:hover,.cke_hc a.cke_button_disabled:focus,.cke_hc a.cke_button_disabled:active{border:1px solid #acacac;padding:3px 5px;margin:0 3px 5px 0}.cke_hc a.cke_button_disabled:focus{border:3px solid #000;padding:1px 3px}.cke_hc.cke_rtl a.cke_button_disabled:hover,.cke_hc.cke_rtl a.cke_button_disabled:focus,.cke_hc.cke_rtl a.cke_button_disabled:active{margin:0 0 5px 3px}a.cke_button_disabled .cke_button_icon,a.cke_button_disabled .cke_button_arrow{opacity:.3}.cke_hc a.cke_button_disabled{border-color:#acacac}.cke_hc a.cke_button_disabled .cke_button_icon,.cke_hc a.cke_button_disabled .cke_button_label{opacity:.5}.cke_toolgroup a.cke_button:last-child:after,.cke_toolgroup a.cke_button.cke_button_disabled:hover:last-child:after{content:"";position:absolute;height:18px;width:0;border-right:1px solid #bcbcbc;margin-top:4px;top:0;right:-3px}.cke_rtl .cke_toolgroup a.cke_button:last-child:after,.cke_rtl .cke_toolgroup a.cke_button.cke_button_disabled:hover:last-child:after{border-right:0;right:auto;border-left:1px solid #bcbcbc;top:0;left:-3px}.cke_hc .cke_toolgroup a.cke_button:last-child:after,.cke_hc .cke_toolgroup a.cke_button.cke_button_disabled:last-child:after,.cke_hc .cke_toolgroup a.cke_button.cke_button_disabled:hover:last-child:after{border-color:#000;top:0;right:-7px}.cke_hc.cke_rtl .cke_toolgroup a.cke_button:last-child:after,.cke_hc.cke_rtl .cke_toolgroup a.cke_button.cke_button_disabled:last-child:after,.cke_hc.cke_rtl .cke_toolgroup a.cke_button.cke_button_disabled:hover:last-child:after{top:0;right:auto;left:-7px}.cke_toolgroup a.cke_button:hover:last-child:after,.cke_toolgroup a.cke_button.cke_button_on:last-child:after{top:-1px;right:-4px}.cke_rtl .cke_toolgroup a.cke_button:hover:last-child:after,.cke_rtl .cke_toolgroup a.cke_button.cke_button_on:last-child:after{top:-1px;right:auto;left:-4px}.cke_hc .cke_toolgroup a.cke_button:hover:last-child:after,.cke_hc .cke_toolgroup a.cke_button.cke_button_on:last-child:after{top:-2px;right:-9px}.cke_hc.cke_rtl .cke_toolgroup a.cke_button:hover:last-child:after,.cke_hc.cke_rtl .cke_toolgroup a.cke_button.cke_button_on:last-child:after{top:-2px;right:auto;left:-9px}.cke_toolbar.cke_toolbar_last .cke_toolgroup a.cke_button:last-child:after{content:none;border:0;width:0;height:0}.cke_button_icon{cursor:inherit;background-repeat:no-repeat;margin-top:1px;width:16px;height:16px;float:left;display:inline-block}.cke_rtl .cke_button_icon{float:right}.cke_hc .cke_button_icon{display:none}.cke_button_label{display:none;padding-left:3px;margin-top:1px;line-height:17px;vertical-align:middle;float:left;cursor:default;color:#484848}.cke_rtl .cke_button_label{padding-right:3px;padding-left:0;float:right}.cke_hc .cke_button_label{padding:0;display:inline-block;font-size:12px}.cke_button_arrow{display:inline-block;margin:8px 0 0 1px;width:0;height:0;cursor:default;vertical-align:top;border-left:3px solid transparent;border-right:3px solid transparent;border-top:3px solid #484848}.cke_rtl .cke_button_arrow{margin-right:5px;margin-left:0}.cke_hc .cke_button_arrow{font-size:10px;margin:3px 0 0 3px;width:auto;border:0}.cke_toolbar_separator{float:left;background-color:#bcbcbc;margin:4px 2px 0 2px;height:18px;width:1px}.cke_rtl .cke_toolbar_separator{float:right}.cke_hc .cke_toolbar_separator{background-color:#000;margin-left:2px;margin-right:5px;margin-bottom:9px}.cke_hc.cke_rtl .cke_toolbar_separator{margin-left:5px;margin-right:2px}.cke_toolbar_break{display:block;clear:left}.cke_rtl .cke_toolbar_break{clear:right}a.cke_toolbox_collapser{width:12px;height:11px;float:right;margin:11px 0 0;font-size:0;cursor:default;text-align:center;border:1px solid #bcbcbc}.cke_rtl .cke_toolbox_collapser{float:left}.cke_toolbox_collapser:hover{background:#e5e5e5}.cke_toolbox_collapser.cke_toolbox_collapser_min{margin:0 2px 4px}.cke_toolbox_collapser .cke_arrow{display:inline-block;height:0;width:0;font-size:0;margin-top:1px;border:3px solid transparent;border-bottom-color:#484848}.cke_toolbox_collapser.cke_toolbox_collapser_min .cke_arrow{margin-top:4px;border-bottom-color:transparent;border-top-color:#484848}.cke_hc .cke_toolbox_collapser .cke_arrow{font-size:8px;width:auto;border:0;margin-top:0}.cke_menuitem span{cursor:default}.cke_menubutton{display:block}.cke_hc .cke_menubutton{padding:2px}.cke_menubutton:hover,.cke_menubutton:focus,.cke_menubutton:active{background-color:#e9e9e9;display:block;outline:1px dotted}.cke_menubutton:hover{outline:0}.cke_hc .cke_menubutton:hover,.cke_hc .cke_menubutton:focus,.cke_hc .cke_menubutton:active{border:2px solid;padding:0}.cke_menubutton_disabled:hover,.cke_menubutton_disabled:focus,.cke_menubutton_disabled:active{background-color:transparent;outline:0}.cke_menubutton_inner{display:table-row}.cke_menubutton_icon,.cke_menubutton_label,.cke_menuarrow{display:table-cell}.cke_menubutton_icon{background-color:#f8f8f8;padding:6px 4px}.cke_hc .cke_menubutton_icon{height:16px;width:0;padding:4px 0}.cke_menubutton:hover .cke_menubutton_icon,.cke_menubutton:focus .cke_menubutton_icon,.cke_menubutton:active .cke_menubutton_icon{background-color:#e9e9e9}.cke_menubutton_disabled:hover .cke_menubutton_icon,.cke_menubutton_disabled:focus .cke_menubutton_icon,.cke_menubutton_disabled:active .cke_menubutton_icon{background-color:#f8f8f8;outline:0}.cke_menuitem .cke_menubutton_on{background-color:#e9e9e9;border:1px solid #dedede;outline:0}.cke_menubutton_on .cke_menubutton_icon{padding-right:3px;background-color:#e9e9e9}.cke_menubutton_label{padding:0 5px;background-color:transparent;width:100%;vertical-align:middle}.cke_menubutton_shortcut{color:#979797}.cke_menubutton_disabled .cke_menubutton_label{opacity:.3;filter:alpha(opacity=30)}.cke_panel_frame .cke_menubutton_label{display:none}.cke_menuseparator{background-color:#d1d1d1;height:1px}.cke_menuarrow{background:transparent url(images/arrow.png) no-repeat 0 10px;padding:0 5px}.cke_rtl .cke_menuarrow{background-position:5px -13px;background-repeat:no-repeat}.cke_hc .cke_menuarrow{background-image:none}.cke_menuarrow span{display:none}.cke_hc .cke_menuarrow span{vertical-align:middle;display:inline}.cke_combo{display:inline-block;float:left;position:relative;margin-bottom:5px}.cke_rtl .cke_combo{float:right}.cke_hc .cke_combo{margin-top:1px;margin-bottom:10px}.cke_combo:after{content:"";position:absolute;height:18px;width:0;border-right:1px solid #bcbcbc;margin-top:5px;top:0;right:0}.cke_rtl .cke_combo:after{border-right:0;border-left:1px solid #bcbcbc;right:auto;left:0}.cke_hc .cke_combo:after{border-color:#000}a.cke_combo_button{cursor:default;display:inline-block;float:left;margin:0;padding:1px}.cke_rtl a.cke_combo_button{float:right}.cke_hc a.cke_combo_button{padding:4px}.cke_combo_on a.cke_combo_button,.cke_combo_off a.cke_combo_button:hover,.cke_combo_off a.cke_combo_button:focus,.cke_combo_off a.cke_combo_button:active{background:#e5e5e5;border:1px solid #bcbcbc;padding:0 0 0 1px;margin-left:-1px}.cke_combo_off a.cke_combo_button:focus{outline:0}.cke_combo_on a.cke_combo_button,.cke_combo_off a.cke_combo_button:active{background:#fff}.cke_rtl .cke_combo_on a.cke_combo_button,.cke_rtl .cke_combo_off a.cke_combo_button:hover,.cke_rtl .cke_combo_off a.cke_combo_button:focus,.cke_rtl .cke_combo_off a.cke_combo_button:active{padding:0 1px 0 0;margin-left:0;margin-right:-1px}.cke_hc .cke_combo_on a.cke_combo_button,.cke_hc .cke_combo_off a.cke_combo_button:hover,.cke_hc .cke_combo_off a.cke_combo_button:focus,.cke_hc .cke_combo_off a.cke_combo_button:active{border:3px solid #000;padding:1px 1px 1px 2px}.cke_hc.cke_rtl .cke_combo_on a.cke_combo_button,.cke_hc.cke_rtl .cke_combo_off a.cke_combo_button:hover,.cke_hc.cke_rtl .cke_combo_off a.cke_combo_button:focus,.cke_hc.cke_rtl .cke_combo_off a.cke_combo_button:active{padding:1px 2px 1px 1px}.cke_toolbar_start+.cke_combo_on a.cke_combo_button,.cke_toolbar_start+.cke_combo_off a.cke_combo_button:hover,.cke_toolbar_start+.cke_combo_off a.cke_combo_button:focus,.cke_toolbar_start+.cke_combo_off a.cke_combo_button:active{padding:0 0 0 3px;margin-left:-3px}.cke_rtl .cke_toolbar_start+.cke_combo_on a.cke_combo_button,.cke_rtl .cke_toolbar_start+.cke_combo_off a.cke_combo_button:hover,.cke_rtl .cke_toolbar_start+.cke_combo_off a.cke_combo_button:focus,.cke_rtl .cke_toolbar_start+.cke_combo_off a.cke_combo_button:active{padding:0 3px 0 0;margin-left:0;margin-right:-3px}.cke_hc .cke_toolbar>.cke_toolbar_start+.cke_combo_on a.cke_combo_button,.cke_hc .cke_toolbar>.cke_toolbar_start+.cke_combo_off a.cke_combo_button:hover,.cke_hc .cke_toolbar>.cke_toolbar_start+.cke_combo_off a.cke_combo_button:focus,.cke_hc .cke_toolbar>.cke_toolbar_start+.cke_combo_off a.cke_combo_button:active{padding:1px 1px 1px 7px;margin-left:-6px}.cke_hc.cke_rtl .cke_toolbar>.cke_toolbar_start+.cke_combo_on a.cke_combo_button,.cke_hc.cke_rtl .cke_toolbar>.cke_toolbar_start+.cke_combo_off a.cke_combo_button:hover,.cke_hc.cke_rtl .cke_toolbar>.cke_toolbar_start+.cke_combo_off a.cke_combo_button:focus,.cke_hc.cke_rtl .cke_toolbar>.cke_toolbar_start+.cke_combo_off a.cke_combo_button:active{padding:1px 7px 1px 1px;margin-left:0;margin-right:-6px}.cke_toolbox .cke_toolbar:first-child>.cke_toolbar_start+.cke_combo_on a.cke_combo_button,.cke_toolbox .cke_toolbar:first-child>.cke_toolbar_start+.cke_combo_off a.cke_combo_button:hover,.cke_toolbox .cke_toolbar:first-child>.cke_toolbar_start+.cke_combo_off a.cke_combo_button:focus,.cke_toolbox .cke_toolbar:first-child>.cke_toolbar_start+.cke_combo_off a.cke_combo_button:active,.cke_toolbar_break+.cke_toolbar>.cke_toolbar_start+.cke_combo_on a.cke_combo_button,.cke_toolbar_break+.cke_toolbar>.cke_toolbar_start+.cke_combo_off a.cke_combo_button:hover,.cke_toolbar_break+.cke_toolbar>.cke_toolbar_start+.cke_combo_off a.cke_combo_button:focus,.cke_toolbar_break+.cke_toolbar>.cke_toolbar_start+.cke_combo_off a.cke_combo_button:active{padding:0;margin:0}.cke_hc .cke_toolbox .cke_toolbar:first-child>.cke_toolbar_start+.cke_combo_on a.cke_combo_button,.cke_hc .cke_toolbox .cke_toolbar:first-child>.cke_toolbar_start+.cke_combo_off a.cke_combo_button:hover,.cke_hc .cke_toolbox .cke_toolbar:first-child>.cke_toolbar_start+.cke_combo_off a.cke_combo_button:focus,.cke_hc .cke_toolbox .cke_toolbar:first-child>.cke_toolbar_start+.cke_combo_off a.cke_combo_button:active,.cke_hc .cke_toolbar_break+.cke_toolbar>.cke_toolbar_start+.cke_combo_on a.cke_combo_button,.cke_hc .cke_toolbar_break+.cke_toolbar>.cke_toolbar_start+.cke_combo_off a.cke_combo_button:hover,.cke_hc .cke_toolbar_break+.cke_toolbar>.cke_toolbar_start+.cke_combo_off a.cke_combo_button:focus,.cke_hc .cke_toolbar_break+.cke_toolbar>.cke_toolbar_start+.cke_combo_off a.cke_combo_button:active{padding:1px;margin:0}.cke_toolbar .cke_combo+.cke_toolbar_end,.cke_toolbar .cke_combo+.cke_toolgroup{margin-right:0;margin-left:2px}.cke_rtl .cke_toolbar .cke_combo+.cke_toolbar_end,.cke_rtl .cke_toolbar .cke_combo+.cke_toolgroup{margin-left:0;margin-right:2px}.cke_hc .cke_toolbar .cke_combo+.cke_toolbar_end,.cke_hc .cke_toolbar .cke_combo+.cke_toolgroup{margin-left:5px}.cke_hc.cke_rtl .cke_toolbar .cke_combo+.cke_toolbar_end,.cke_hc.cke_rtl .cke_toolbar .cke_combo+.cke_toolgroup{margin-left:0;margin-right:5px}.cke_toolbar.cke_toolbar_last .cke_combo:nth-last-child(-n+2):after{content:none;border:0;width:0;height:0}.cke_combo_text{line-height:26px;padding-left:10px;text-overflow:ellipsis;overflow:hidden;float:left;cursor:default;color:#484848;width:60px}.cke_rtl .cke_combo_text{float:right;text-align:right;padding-left:0;padding-right:10px}.cke_hc .cke_combo_text{line-height:18px;font-size:12px}.cke_combo_open{cursor:default;display:inline-block;font-size:0;height:19px;line-height:17px;margin:1px 10px 1px;width:5px}.cke_hc .cke_combo_open{height:12px}.cke_combo_arrow{cursor:default;margin:11px 0 0;float:left;height:0;width:0;font-size:0;border-left:3px solid transparent;border-right:3px solid transparent;border-top:3px solid #484848}.cke_hc .cke_combo_arrow{font-size:10px;width:auto;border:0;margin-top:3px}.cke_combo_label{display:none;float:left;line-height:26px;vertical-align:top;margin-right:5px}.cke_rtl .cke_combo_label{float:right;margin-left:5px;margin-right:0}.cke_combo_disabled .cke_combo_inlinelabel,.cke_combo_disabled .cke_combo_open{opacity:.3}.cke_path{float:left;margin:-2px 0 2px}a.cke_path_item,span.cke_path_empty{display:inline-block;float:left;padding:3px 4px;margin-right:2px;cursor:default;text-decoration:none;outline:0;border:0;color:#484848;font-weight:bold;font-size:11px}.cke_rtl .cke_path,.cke_rtl .cke_path_item,.cke_rtl .cke_path_empty{float:right}a.cke_path_item:hover,a.cke_path_item:focus,a.cke_path_item:active{background-color:#e5e5e5}.cke_hc a.cke_path_item:hover,.cke_hc a.cke_path_item:focus,.cke_hc a.cke_path_item:active{border:2px solid;padding:1px 2px}.cke_button__source_label,.cke_button__sourcedialog_label{display:inline}.cke_combopanel__fontsize{width:135px}textarea.cke_source{font-family:'Courier New',Monospace;font-size:small;background-color:#fff;white-space:pre-wrap;border:0;padding:0;margin:0;display:block}.cke_wysiwyg_frame,.cke_wysiwyg_div{background-color:#fff}.cke_notifications_area{pointer-events:none}.cke_notification{pointer-events:auto;position:relative;margin:10px;width:300px;color:white;text-align:center;opacity:.95;filter:alpha(opacity = 95);-webkit-animation:fadeIn .7s;animation:fadeIn .7s}.cke_notification_message a{color:#12306f}@-webkit-keyframes fadeIn{from{opacity:.4}to{opacity:.95}}@keyframes fadeIn{from{opacity:.4}to{opacity:.95}}.cke_notification_success{background:#72b572;border:1px solid #63a563}.cke_notification_warning{background:#c83939;border:1px solid #902b2b}.cke_notification_info{background:#2e9ad0;border:1px solid #0f74a8}.cke_notification_info span.cke_notification_progress{background-color:#0f74a8;display:block;padding:0;margin:0;height:100%;overflow:hidden;position:absolute;z-index:1}.cke_notification_message{position:relative;margin:4px 23px 3px;font-family:Arial,Helvetica,sans-serif;font-size:12px;line-height:18px;z-index:4;text-overflow:ellipsis;overflow:hidden}.cke_notification_close{background-image:url(images/close.png);background-repeat:no-repeat;background-position:50%;position:absolute;cursor:pointer;text-align:center;height:20px;width:20px;top:1px;right:1px;padding:0;margin:0;z-index:5;opacity:.6;filter:alpha(opacity = 60)}.cke_notification_close:hover{opacity:1;filter:alpha(opacity = 100)}.cke_notification_close span{display:none}.cke_notification_warning a.cke_notification_close{opacity:.8;filter:alpha(opacity = 80)}.cke_notification_warning a.cke_notification_close:hover{opacity:1;filter:alpha(opacity = 100)}.cke_chrome{visibility:inherit}.cke_voice_label{display:none}legend.cke_voice_label{display:none}a.cke_button_disabled,a.cke_button_disabled:hover,a.cke_button_disabled:focus,a.cke_button_disabled:active{filter:alpha(opacity = 30)}.cke_button_disabled .cke_button_icon{filter:progid:DXImageTransform.Microsoft.gradient(startColorstr=#00ffffff,endColorstr=#00ffffff)}.cke_button_off:hover,.cke_button_off:focus,.cke_button_off:active{filter:alpha(opacity = 100)}.cke_combo_disabled .cke_combo_inlinelabel,.cke_combo_disabled .cke_combo_open{filter:alpha(opacity = 30)}.cke_toolbox_collapser{border:1px solid #a6a6a6}.cke_toolbox_collapser .cke_arrow{margin-top:1px}.cke_hc .cke_top,.cke_hc .cke_bottom,.cke_hc .cke_combo_button,.cke_hc a.cke_combo_button:hover,.cke_hc a.cke_combo_button:focus,.cke_hc .cke_toolgroup,.cke_hc .cke_button_on,.cke_hc a.cke_button_off:hover,.cke_hc a.cke_button_off:focus,.cke_hc a.cke_button_off:active,.cke_hc .cke_toolbox_collapser,.cke_hc .cke_toolbox_collapser:hover,.cke_hc .cke_panel_grouptitle{filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.cke_button__about_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -0px !important;}.cke_button__bold_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -24px !important;}.cke_button__italic_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -48px !important;}.cke_button__strike_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -72px !important;}.cke_button__subscript_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -96px !important;}.cke_button__superscript_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -120px !important;}.cke_button__underline_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -144px !important;}.cke_button__blockquote_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -168px !important;}.cke_rtl .cke_button__copy_icon, .cke_mixed_dir_content .cke_rtl .cke_button__copy_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -192px !important;}.cke_ltr .cke_button__copy_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -216px !important;}.cke_rtl .cke_button__cut_icon, .cke_mixed_dir_content .cke_rtl .cke_button__cut_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -240px !important;}.cke_ltr .cke_button__cut_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -264px !important;}.cke_rtl .cke_button__paste_icon, .cke_mixed_dir_content .cke_rtl .cke_button__paste_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -288px !important;}.cke_ltr .cke_button__paste_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -312px !important;}.cke_button__horizontalrule_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -336px !important;}.cke_button__image_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -360px !important;}.cke_rtl .cke_button__indent_icon, .cke_mixed_dir_content .cke_rtl .cke_button__indent_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -384px !important;}.cke_ltr .cke_button__indent_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -408px !important;}.cke_rtl .cke_button__outdent_icon, .cke_mixed_dir_content .cke_rtl .cke_button__outdent_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -432px !important;}.cke_ltr .cke_button__outdent_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -456px !important;}.cke_rtl .cke_button__anchor_icon, .cke_mixed_dir_content .cke_rtl .cke_button__anchor_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -480px !important;}.cke_ltr .cke_button__anchor_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -504px !important;}.cke_button__link_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -528px !important;}.cke_button__unlink_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -552px !important;}.cke_rtl .cke_button__bulletedlist_icon, .cke_mixed_dir_content .cke_rtl .cke_button__bulletedlist_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -576px !important;}.cke_ltr .cke_button__bulletedlist_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -600px !important;}.cke_rtl .cke_button__numberedlist_icon, .cke_mixed_dir_content .cke_rtl .cke_button__numberedlist_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -624px !important;}.cke_ltr .cke_button__numberedlist_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -648px !important;}.cke_button__maximize_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -672px !important;}.cke_rtl .cke_button__pastetext_icon, .cke_mixed_dir_content .cke_rtl .cke_button__pastetext_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -696px !important;}.cke_ltr .cke_button__pastetext_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -720px !important;}.cke_rtl .cke_button__pastefromword_icon, .cke_mixed_dir_content .cke_rtl .cke_button__pastefromword_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -744px !important;}.cke_ltr .cke_button__pastefromword_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -768px !important;}.cke_button__removeformat_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -792px !important;}.cke_rtl .cke_button__source_icon, .cke_mixed_dir_content .cke_rtl .cke_button__source_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -816px !important;}.cke_ltr .cke_button__source_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -840px !important;}.cke_button__specialchar_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -864px !important;}.cke_button__scayt_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -888px !important;}.cke_button__table_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -912px !important;}.cke_rtl .cke_button__redo_icon, .cke_mixed_dir_content .cke_rtl .cke_button__redo_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -936px !important;}.cke_ltr .cke_button__redo_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -960px !important;}.cke_rtl .cke_button__undo_icon, .cke_mixed_dir_content .cke_rtl .cke_button__undo_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -984px !important;}.cke_ltr .cke_button__undo_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -1008px !important;}.cke_button__spellchecker_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -1032px !important;}.cke_hidpi .cke_button__about_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -0px !important;background-size: 16px !important;}.cke_hidpi .cke_button__bold_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -24px !important;background-size: 16px !important;}.cke_hidpi .cke_button__italic_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -48px !important;background-size: 16px !important;}.cke_hidpi .cke_button__strike_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -72px !important;background-size: 16px !important;}.cke_hidpi .cke_button__subscript_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -96px !important;background-size: 16px !important;}.cke_hidpi .cke_button__superscript_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -120px !important;background-size: 16px !important;}.cke_hidpi .cke_button__underline_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -144px !important;background-size: 16px !important;}.cke_hidpi .cke_button__blockquote_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -168px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__copy_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__copy_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -192px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__copy_icon,.cke_ltr.cke_hidpi .cke_button__copy_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -216px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__cut_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__cut_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -240px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__cut_icon,.cke_ltr.cke_hidpi .cke_button__cut_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -264px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__paste_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__paste_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -288px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__paste_icon,.cke_ltr.cke_hidpi .cke_button__paste_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -312px !important;background-size: 16px !important;}.cke_hidpi .cke_button__horizontalrule_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -336px !important;background-size: 16px !important;}.cke_hidpi .cke_button__image_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -360px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__indent_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__indent_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -384px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__indent_icon,.cke_ltr.cke_hidpi .cke_button__indent_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -408px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__outdent_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__outdent_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -432px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__outdent_icon,.cke_ltr.cke_hidpi .cke_button__outdent_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -456px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__anchor_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__anchor_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -480px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__anchor_icon,.cke_ltr.cke_hidpi .cke_button__anchor_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -504px !important;background-size: 16px !important;}.cke_hidpi .cke_button__link_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -528px !important;background-size: 16px !important;}.cke_hidpi .cke_button__unlink_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -552px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__bulletedlist_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__bulletedlist_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -576px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__bulletedlist_icon,.cke_ltr.cke_hidpi .cke_button__bulletedlist_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -600px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__numberedlist_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__numberedlist_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -624px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__numberedlist_icon,.cke_ltr.cke_hidpi .cke_button__numberedlist_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -648px !important;background-size: 16px !important;}.cke_hidpi .cke_button__maximize_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -672px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__pastetext_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__pastetext_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -696px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__pastetext_icon,.cke_ltr.cke_hidpi .cke_button__pastetext_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -720px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__pastefromword_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__pastefromword_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -744px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__pastefromword_icon,.cke_ltr.cke_hidpi .cke_button__pastefromword_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -768px !important;background-size: 16px !important;}.cke_hidpi .cke_button__removeformat_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -792px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__source_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__source_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -816px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__source_icon,.cke_ltr.cke_hidpi .cke_button__source_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -840px !important;background-size: 16px !important;}.cke_hidpi .cke_button__specialchar_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -864px !important;background-size: 16px !important;}.cke_hidpi .cke_button__scayt_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -888px !important;background-size: 16px !important;}.cke_hidpi .cke_button__table_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -912px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__redo_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__redo_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -936px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__redo_icon,.cke_ltr.cke_hidpi .cke_button__redo_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -960px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__undo_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__undo_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -984px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__undo_icon,.cke_ltr.cke_hidpi .cke_button__undo_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -1008px !important;background-size: 16px !important;}.cke_hidpi .cke_button__spellchecker_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -1032px !important;background-size: 16px !important;} \ No newline at end of file diff --git a/admin/plugins/ckeditor/skins/moono-lisa/editor_ie8.css b/admin/plugins/ckeditor/skins/moono-lisa/editor_ie8.css deleted file mode 100644 index 59b71d6..0000000 --- a/admin/plugins/ckeditor/skins/moono-lisa/editor_ie8.css +++ /dev/null @@ -1,5 +0,0 @@ -/* -Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. -For licensing, see LICENSE.md or http://ckeditor.com/license -*/ -.cke_reset{margin:0;padding:0;border:0;background:transparent;text-decoration:none;width:auto;height:auto;vertical-align:baseline;box-sizing:content-box;position:static;transition:none}.cke_reset_all,.cke_reset_all *,.cke_reset_all a,.cke_reset_all textarea{margin:0;padding:0;border:0;background:transparent;text-decoration:none;width:auto;height:auto;vertical-align:baseline;box-sizing:content-box;position:static;transition:none;border-collapse:collapse;font:normal normal normal 12px Arial,Helvetica,Tahoma,Verdana,Sans-Serif;color:#000;text-align:left;white-space:nowrap;cursor:auto;float:none}.cke_reset_all .cke_rtl *{text-align:right}.cke_reset_all iframe{vertical-align:inherit}.cke_reset_all textarea{white-space:pre-wrap}.cke_reset_all textarea,.cke_reset_all input[type="text"],.cke_reset_all input[type="password"]{cursor:text}.cke_reset_all textarea[disabled],.cke_reset_all input[type="text"][disabled],.cke_reset_all input[type="password"][disabled]{cursor:default}.cke_reset_all fieldset{padding:10px;border:2px groove #e0dfe3}.cke_reset_all select{box-sizing:border-box}.cke_reset_all table{table-layout:auto}.cke_chrome{display:block;border:1px solid #d1d1d1;padding:0}.cke_inner{display:block;background:#fff;padding:0;-webkit-touch-callout:none}.cke_float{border:0}.cke_float .cke_inner{padding-bottom:0}.cke_top,.cke_contents,.cke_bottom{display:block;overflow:hidden}.cke_top{border-bottom:1px solid #d1d1d1;background:#f8f8f8;padding:6px 8px 2px;white-space:normal}.cke_float .cke_top{border:1px solid #d1d1d1}.cke_bottom{padding:6px 8px 2px;position:relative;border-top:1px solid #d1d1d1;background:#f8f8f8}.cke_browser_ios .cke_contents{overflow-y:auto;-webkit-overflow-scrolling:touch}.cke_resizer{width:0;height:0;overflow:hidden;border-width:10px 10px 0 0;border-color:transparent #bcbcbc transparent transparent;border-style:dashed solid dashed dashed;font-size:0;vertical-align:bottom;margin-top:6px;margin-bottom:2px}.cke_hc .cke_resizer{font-size:15px;width:auto;height:auto;border-width:0}.cke_resizer_ltr{cursor:se-resize;float:right;margin-right:-4px}.cke_resizer_rtl{border-width:10px 0 0 10px;border-color:transparent transparent transparent #bcbcbc;border-style:dashed dashed dashed solid;cursor:sw-resize;float:left;margin-left:-4px;right:auto}.cke_wysiwyg_div{display:block;height:100%;overflow:auto;padding:0 8px;outline-style:none;box-sizing:border-box}.cke_panel{visibility:visible;width:120px;height:100px;overflow:hidden;background-color:#fff;border:1px solid #d1d1d1}.cke_menu_panel{padding:0;margin:0}.cke_combopanel{width:150px;height:170px}.cke_panel_frame{width:100%;height:100%;font-size:12px;overflow:auto;overflow-x:hidden}.cke_panel_container{overflow-y:auto;overflow-x:hidden}.cke_panel_block:focus{outline:0}.cke_panel_list{margin:0;padding:0;list-style-type:none;white-space:nowrap}.cke_panel_listItem{margin:0;padding:0}.cke_panel_listItem a{padding:6px 7px;display:block;color:inherit!important;text-decoration:none;overflow:hidden;text-overflow:ellipsis}.cke_hc .cke_panel_listItem a{border-style:none}.cke_panel_listItem.cke_selected a,.cke_panel_listItem a:hover,.cke_panel_listItem a:focus,.cke_panel_listItem a:active{background-color:#e9e9e9}.cke_panel_listItem a:focus{outline:1px dotted #000}.cke_hc .cke_panel_listItem a:hover,.cke_hc .cke_panel_listItem a:focus,.cke_hc .cke_panel_listItem a:active{border:2px solid;padding:4px 5px}.cke_panel_listItem p,.cke_panel_listItem h1,.cke_panel_listItem h2,.cke_panel_listItem h3,.cke_panel_listItem h4,.cke_panel_listItem h5,.cke_panel_listItem h6,.cke_panel_listItem pre{margin-top:0;margin-bottom:0}.cke_panel_grouptitle{cursor:default;font-size:11px;font-weight:bold;white-space:nowrap;margin:0;padding:6px 6px 7px 6px;color:#484848;border-bottom:1px solid #d1d1d1;background:#f8f8f8}.cke_colorblock{padding:10px;font-size:11px;font-family:'Microsoft Sans Serif',Tahoma,Arial,Verdana,Sans-Serif}.cke_colorblock,.cke_colorblock a{text-decoration:none;color:#000}a.cke_colorbox{padding:2px;float:left;width:20px;height:20px}.cke_rtl a.cke_colorbox{float:right}a:hover.cke_colorbox,a:focus.cke_colorbox,a:active.cke_colorbox{outline:0;padding:0;border:2px solid #139ff7}a:hover.cke_colorbox{border-color:#bcbcbc}span.cke_colorbox{width:20px;height:20px;float:left}.cke_rtl span.cke_colorbox{float:right}a.cke_colorauto,a.cke_colormore{border:#fff 1px solid;padding:3px;display:block;cursor:pointer}a.cke_colorauto{padding:0;border:1px solid transparent;margin-bottom:6px;height:26px;line-height:26px}a.cke_colormore{margin-top:10px;height:20px;line-height:19px}a:hover.cke_colorauto,a:hover.cke_colormore,a:focus.cke_colorauto,a:focus.cke_colormore,a:active.cke_colorauto,a:active.cke_colormore{outline:0;border:#139ff7 1px solid;background-color:#f8f8f8}a:hover.cke_colorauto,a:hover.cke_colormore{border-color:#bcbcbc}.cke_colorauto span.cke_colorbox{width:18px;height:18px;border:1px solid #808080;margin-left:1px;margin-top:3px}.cke_rtl .cke_colorauto span.cke_colorbox{margin-left:0;margin-right:1px}span.cke_colorbox[style*="#ffffff"],span.cke_colorbox[style*="#FFFFFF"],span.cke_colorbox[style="background-color:#fff"],span.cke_colorbox[style="background-color:#FFF"],span.cke_colorbox[style*="rgb(255,255,255)"],span.cke_colorbox[style*="rgb(255, 255, 255)"]{border:1px solid #808080;width:18px;height:18px}.cke_toolbar{float:left}.cke_rtl .cke_toolbar{float:right}.cke_toolgroup{border:0;float:left;margin:1px 2px 6px 0;padding-right:3px}.cke_rtl .cke_toolgroup{float:right;margin:1px 0 6px 2px;padding-left:3px;padding-right:0}.cke_hc .cke_toolgroup{margin-right:5px;margin-bottom:5px}.cke_hc.cke_rtl .cke_toolgroup{margin-right:0;margin-left:5px}a.cke_button{display:inline-block;height:18px;padding:4px 6px;outline:0;cursor:default;float:left;border:0;position:relative}.cke_rtl a.cke_button{float:right}.cke_hc a.cke_button{border:1px solid black;padding:3px 5px;margin:0 3px 5px 0}.cke_hc.cke_rtl a.cke_button{margin:0 0 5px 3px}a.cke_button_on{background:#fff;border:1px #bcbcbc solid;padding:3px 5px}a.cke_button_off:hover,a.cke_button_off:focus,a.cke_button_off:active{background:#e5e5e5;border:1px #bcbcbc solid;padding:3px 5px}.cke_hc a.cke_button_on,.cke_hc a.cke_button_off:hover,.cke_hc a.cke_button_off:focus,.cke_hc a.cke_button_off:active{background:#e5e5e5;border:3px solid #000;padding:1px 3px}a.cke_button_disabled:hover,a.cke_button_disabled:focus,a.cke_button_disabled:active{border:0;padding:4px 6px;background-color:transparent}a.cke_button_disabled:focus{border:1px #bcbcbc solid;padding:3px 5px}.cke_hc a.cke_button_disabled:hover,.cke_hc a.cke_button_disabled:focus,.cke_hc a.cke_button_disabled:active{border:1px solid #acacac;padding:3px 5px;margin:0 3px 5px 0}.cke_hc a.cke_button_disabled:focus{border:3px solid #000;padding:1px 3px}.cke_hc.cke_rtl a.cke_button_disabled:hover,.cke_hc.cke_rtl a.cke_button_disabled:focus,.cke_hc.cke_rtl a.cke_button_disabled:active{margin:0 0 5px 3px}a.cke_button_disabled .cke_button_icon,a.cke_button_disabled .cke_button_arrow{opacity:.3}.cke_hc a.cke_button_disabled{border-color:#acacac}.cke_hc a.cke_button_disabled .cke_button_icon,.cke_hc a.cke_button_disabled .cke_button_label{opacity:.5}.cke_toolgroup a.cke_button:last-child:after,.cke_toolgroup a.cke_button.cke_button_disabled:hover:last-child:after{content:"";position:absolute;height:18px;width:0;border-right:1px solid #bcbcbc;margin-top:4px;top:0;right:-3px}.cke_rtl .cke_toolgroup a.cke_button:last-child:after,.cke_rtl .cke_toolgroup a.cke_button.cke_button_disabled:hover:last-child:after{border-right:0;right:auto;border-left:1px solid #bcbcbc;top:0;left:-3px}.cke_hc .cke_toolgroup a.cke_button:last-child:after,.cke_hc .cke_toolgroup a.cke_button.cke_button_disabled:last-child:after,.cke_hc .cke_toolgroup a.cke_button.cke_button_disabled:hover:last-child:after{border-color:#000;top:0;right:-7px}.cke_hc.cke_rtl .cke_toolgroup a.cke_button:last-child:after,.cke_hc.cke_rtl .cke_toolgroup a.cke_button.cke_button_disabled:last-child:after,.cke_hc.cke_rtl .cke_toolgroup a.cke_button.cke_button_disabled:hover:last-child:after{top:0;right:auto;left:-7px}.cke_toolgroup a.cke_button:hover:last-child:after,.cke_toolgroup a.cke_button.cke_button_on:last-child:after{top:-1px;right:-4px}.cke_rtl .cke_toolgroup a.cke_button:hover:last-child:after,.cke_rtl .cke_toolgroup a.cke_button.cke_button_on:last-child:after{top:-1px;right:auto;left:-4px}.cke_hc .cke_toolgroup a.cke_button:hover:last-child:after,.cke_hc .cke_toolgroup a.cke_button.cke_button_on:last-child:after{top:-2px;right:-9px}.cke_hc.cke_rtl .cke_toolgroup a.cke_button:hover:last-child:after,.cke_hc.cke_rtl .cke_toolgroup a.cke_button.cke_button_on:last-child:after{top:-2px;right:auto;left:-9px}.cke_toolbar.cke_toolbar_last .cke_toolgroup a.cke_button:last-child:after{content:none;border:0;width:0;height:0}.cke_button_icon{cursor:inherit;background-repeat:no-repeat;margin-top:1px;width:16px;height:16px;float:left;display:inline-block}.cke_rtl .cke_button_icon{float:right}.cke_hc .cke_button_icon{display:none}.cke_button_label{display:none;padding-left:3px;margin-top:1px;line-height:17px;vertical-align:middle;float:left;cursor:default;color:#484848}.cke_rtl .cke_button_label{padding-right:3px;padding-left:0;float:right}.cke_hc .cke_button_label{padding:0;display:inline-block;font-size:12px}.cke_button_arrow{display:inline-block;margin:8px 0 0 1px;width:0;height:0;cursor:default;vertical-align:top;border-left:3px solid transparent;border-right:3px solid transparent;border-top:3px solid #484848}.cke_rtl .cke_button_arrow{margin-right:5px;margin-left:0}.cke_hc .cke_button_arrow{font-size:10px;margin:3px 0 0 3px;width:auto;border:0}.cke_toolbar_separator{float:left;background-color:#bcbcbc;margin:4px 2px 0 2px;height:18px;width:1px}.cke_rtl .cke_toolbar_separator{float:right}.cke_hc .cke_toolbar_separator{background-color:#000;margin-left:2px;margin-right:5px;margin-bottom:9px}.cke_hc.cke_rtl .cke_toolbar_separator{margin-left:5px;margin-right:2px}.cke_toolbar_break{display:block;clear:left}.cke_rtl .cke_toolbar_break{clear:right}a.cke_toolbox_collapser{width:12px;height:11px;float:right;margin:11px 0 0;font-size:0;cursor:default;text-align:center;border:1px solid #bcbcbc}.cke_rtl .cke_toolbox_collapser{float:left}.cke_toolbox_collapser:hover{background:#e5e5e5}.cke_toolbox_collapser.cke_toolbox_collapser_min{margin:0 2px 4px}.cke_toolbox_collapser .cke_arrow{display:inline-block;height:0;width:0;font-size:0;margin-top:1px;border:3px solid transparent;border-bottom-color:#484848}.cke_toolbox_collapser.cke_toolbox_collapser_min .cke_arrow{margin-top:4px;border-bottom-color:transparent;border-top-color:#484848}.cke_hc .cke_toolbox_collapser .cke_arrow{font-size:8px;width:auto;border:0;margin-top:0}.cke_menuitem span{cursor:default}.cke_menubutton{display:block}.cke_hc .cke_menubutton{padding:2px}.cke_menubutton:hover,.cke_menubutton:focus,.cke_menubutton:active{background-color:#e9e9e9;display:block;outline:1px dotted}.cke_menubutton:hover{outline:0}.cke_hc .cke_menubutton:hover,.cke_hc .cke_menubutton:focus,.cke_hc .cke_menubutton:active{border:2px solid;padding:0}.cke_menubutton_disabled:hover,.cke_menubutton_disabled:focus,.cke_menubutton_disabled:active{background-color:transparent;outline:0}.cke_menubutton_inner{display:table-row}.cke_menubutton_icon,.cke_menubutton_label,.cke_menuarrow{display:table-cell}.cke_menubutton_icon{background-color:#f8f8f8;padding:6px 4px}.cke_hc .cke_menubutton_icon{height:16px;width:0;padding:4px 0}.cke_menubutton:hover .cke_menubutton_icon,.cke_menubutton:focus .cke_menubutton_icon,.cke_menubutton:active .cke_menubutton_icon{background-color:#e9e9e9}.cke_menubutton_disabled:hover .cke_menubutton_icon,.cke_menubutton_disabled:focus .cke_menubutton_icon,.cke_menubutton_disabled:active .cke_menubutton_icon{background-color:#f8f8f8;outline:0}.cke_menuitem .cke_menubutton_on{background-color:#e9e9e9;border:1px solid #dedede;outline:0}.cke_menubutton_on .cke_menubutton_icon{padding-right:3px;background-color:#e9e9e9}.cke_menubutton_label{padding:0 5px;background-color:transparent;width:100%;vertical-align:middle}.cke_menubutton_shortcut{color:#979797}.cke_menubutton_disabled .cke_menubutton_label{opacity:.3;filter:alpha(opacity=30)}.cke_panel_frame .cke_menubutton_label{display:none}.cke_menuseparator{background-color:#d1d1d1;height:1px}.cke_menuarrow{background:transparent url(images/arrow.png) no-repeat 0 10px;padding:0 5px}.cke_rtl .cke_menuarrow{background-position:5px -13px;background-repeat:no-repeat}.cke_hc .cke_menuarrow{background-image:none}.cke_menuarrow span{display:none}.cke_hc .cke_menuarrow span{vertical-align:middle;display:inline}.cke_combo{display:inline-block;float:left;position:relative;margin-bottom:5px}.cke_rtl .cke_combo{float:right}.cke_hc .cke_combo{margin-top:1px;margin-bottom:10px}.cke_combo:after{content:"";position:absolute;height:18px;width:0;border-right:1px solid #bcbcbc;margin-top:5px;top:0;right:0}.cke_rtl .cke_combo:after{border-right:0;border-left:1px solid #bcbcbc;right:auto;left:0}.cke_hc .cke_combo:after{border-color:#000}a.cke_combo_button{cursor:default;display:inline-block;float:left;margin:0;padding:1px}.cke_rtl a.cke_combo_button{float:right}.cke_hc a.cke_combo_button{padding:4px}.cke_combo_on a.cke_combo_button,.cke_combo_off a.cke_combo_button:hover,.cke_combo_off a.cke_combo_button:focus,.cke_combo_off a.cke_combo_button:active{background:#e5e5e5;border:1px solid #bcbcbc;padding:0 0 0 1px;margin-left:-1px}.cke_combo_off a.cke_combo_button:focus{outline:0}.cke_combo_on a.cke_combo_button,.cke_combo_off a.cke_combo_button:active{background:#fff}.cke_rtl .cke_combo_on a.cke_combo_button,.cke_rtl .cke_combo_off a.cke_combo_button:hover,.cke_rtl .cke_combo_off a.cke_combo_button:focus,.cke_rtl .cke_combo_off a.cke_combo_button:active{padding:0 1px 0 0;margin-left:0;margin-right:-1px}.cke_hc .cke_combo_on a.cke_combo_button,.cke_hc .cke_combo_off a.cke_combo_button:hover,.cke_hc .cke_combo_off a.cke_combo_button:focus,.cke_hc .cke_combo_off a.cke_combo_button:active{border:3px solid #000;padding:1px 1px 1px 2px}.cke_hc.cke_rtl .cke_combo_on a.cke_combo_button,.cke_hc.cke_rtl .cke_combo_off a.cke_combo_button:hover,.cke_hc.cke_rtl .cke_combo_off a.cke_combo_button:focus,.cke_hc.cke_rtl .cke_combo_off a.cke_combo_button:active{padding:1px 2px 1px 1px}.cke_toolbar_start+.cke_combo_on a.cke_combo_button,.cke_toolbar_start+.cke_combo_off a.cke_combo_button:hover,.cke_toolbar_start+.cke_combo_off a.cke_combo_button:focus,.cke_toolbar_start+.cke_combo_off a.cke_combo_button:active{padding:0 0 0 3px;margin-left:-3px}.cke_rtl .cke_toolbar_start+.cke_combo_on a.cke_combo_button,.cke_rtl .cke_toolbar_start+.cke_combo_off a.cke_combo_button:hover,.cke_rtl .cke_toolbar_start+.cke_combo_off a.cke_combo_button:focus,.cke_rtl .cke_toolbar_start+.cke_combo_off a.cke_combo_button:active{padding:0 3px 0 0;margin-left:0;margin-right:-3px}.cke_hc .cke_toolbar>.cke_toolbar_start+.cke_combo_on a.cke_combo_button,.cke_hc .cke_toolbar>.cke_toolbar_start+.cke_combo_off a.cke_combo_button:hover,.cke_hc .cke_toolbar>.cke_toolbar_start+.cke_combo_off a.cke_combo_button:focus,.cke_hc .cke_toolbar>.cke_toolbar_start+.cke_combo_off a.cke_combo_button:active{padding:1px 1px 1px 7px;margin-left:-6px}.cke_hc.cke_rtl .cke_toolbar>.cke_toolbar_start+.cke_combo_on a.cke_combo_button,.cke_hc.cke_rtl .cke_toolbar>.cke_toolbar_start+.cke_combo_off a.cke_combo_button:hover,.cke_hc.cke_rtl .cke_toolbar>.cke_toolbar_start+.cke_combo_off a.cke_combo_button:focus,.cke_hc.cke_rtl .cke_toolbar>.cke_toolbar_start+.cke_combo_off a.cke_combo_button:active{padding:1px 7px 1px 1px;margin-left:0;margin-right:-6px}.cke_toolbox .cke_toolbar:first-child>.cke_toolbar_start+.cke_combo_on a.cke_combo_button,.cke_toolbox .cke_toolbar:first-child>.cke_toolbar_start+.cke_combo_off a.cke_combo_button:hover,.cke_toolbox .cke_toolbar:first-child>.cke_toolbar_start+.cke_combo_off a.cke_combo_button:focus,.cke_toolbox .cke_toolbar:first-child>.cke_toolbar_start+.cke_combo_off a.cke_combo_button:active,.cke_toolbar_break+.cke_toolbar>.cke_toolbar_start+.cke_combo_on a.cke_combo_button,.cke_toolbar_break+.cke_toolbar>.cke_toolbar_start+.cke_combo_off a.cke_combo_button:hover,.cke_toolbar_break+.cke_toolbar>.cke_toolbar_start+.cke_combo_off a.cke_combo_button:focus,.cke_toolbar_break+.cke_toolbar>.cke_toolbar_start+.cke_combo_off a.cke_combo_button:active{padding:0;margin:0}.cke_hc .cke_toolbox .cke_toolbar:first-child>.cke_toolbar_start+.cke_combo_on a.cke_combo_button,.cke_hc .cke_toolbox .cke_toolbar:first-child>.cke_toolbar_start+.cke_combo_off a.cke_combo_button:hover,.cke_hc .cke_toolbox .cke_toolbar:first-child>.cke_toolbar_start+.cke_combo_off a.cke_combo_button:focus,.cke_hc .cke_toolbox .cke_toolbar:first-child>.cke_toolbar_start+.cke_combo_off a.cke_combo_button:active,.cke_hc .cke_toolbar_break+.cke_toolbar>.cke_toolbar_start+.cke_combo_on a.cke_combo_button,.cke_hc .cke_toolbar_break+.cke_toolbar>.cke_toolbar_start+.cke_combo_off a.cke_combo_button:hover,.cke_hc .cke_toolbar_break+.cke_toolbar>.cke_toolbar_start+.cke_combo_off a.cke_combo_button:focus,.cke_hc .cke_toolbar_break+.cke_toolbar>.cke_toolbar_start+.cke_combo_off a.cke_combo_button:active{padding:1px;margin:0}.cke_toolbar .cke_combo+.cke_toolbar_end,.cke_toolbar .cke_combo+.cke_toolgroup{margin-right:0;margin-left:2px}.cke_rtl .cke_toolbar .cke_combo+.cke_toolbar_end,.cke_rtl .cke_toolbar .cke_combo+.cke_toolgroup{margin-left:0;margin-right:2px}.cke_hc .cke_toolbar .cke_combo+.cke_toolbar_end,.cke_hc .cke_toolbar .cke_combo+.cke_toolgroup{margin-left:5px}.cke_hc.cke_rtl .cke_toolbar .cke_combo+.cke_toolbar_end,.cke_hc.cke_rtl .cke_toolbar .cke_combo+.cke_toolgroup{margin-left:0;margin-right:5px}.cke_toolbar.cke_toolbar_last .cke_combo:nth-last-child(-n+2):after{content:none;border:0;width:0;height:0}.cke_combo_text{line-height:26px;padding-left:10px;text-overflow:ellipsis;overflow:hidden;float:left;cursor:default;color:#484848;width:60px}.cke_rtl .cke_combo_text{float:right;text-align:right;padding-left:0;padding-right:10px}.cke_hc .cke_combo_text{line-height:18px;font-size:12px}.cke_combo_open{cursor:default;display:inline-block;font-size:0;height:19px;line-height:17px;margin:1px 10px 1px;width:5px}.cke_hc .cke_combo_open{height:12px}.cke_combo_arrow{cursor:default;margin:11px 0 0;float:left;height:0;width:0;font-size:0;border-left:3px solid transparent;border-right:3px solid transparent;border-top:3px solid #484848}.cke_hc .cke_combo_arrow{font-size:10px;width:auto;border:0;margin-top:3px}.cke_combo_label{display:none;float:left;line-height:26px;vertical-align:top;margin-right:5px}.cke_rtl .cke_combo_label{float:right;margin-left:5px;margin-right:0}.cke_combo_disabled .cke_combo_inlinelabel,.cke_combo_disabled .cke_combo_open{opacity:.3}.cke_path{float:left;margin:-2px 0 2px}a.cke_path_item,span.cke_path_empty{display:inline-block;float:left;padding:3px 4px;margin-right:2px;cursor:default;text-decoration:none;outline:0;border:0;color:#484848;font-weight:bold;font-size:11px}.cke_rtl .cke_path,.cke_rtl .cke_path_item,.cke_rtl .cke_path_empty{float:right}a.cke_path_item:hover,a.cke_path_item:focus,a.cke_path_item:active{background-color:#e5e5e5}.cke_hc a.cke_path_item:hover,.cke_hc a.cke_path_item:focus,.cke_hc a.cke_path_item:active{border:2px solid;padding:1px 2px}.cke_button__source_label,.cke_button__sourcedialog_label{display:inline}.cke_combopanel__fontsize{width:135px}textarea.cke_source{font-family:'Courier New',Monospace;font-size:small;background-color:#fff;white-space:pre-wrap;border:0;padding:0;margin:0;display:block}.cke_wysiwyg_frame,.cke_wysiwyg_div{background-color:#fff}.cke_notifications_area{pointer-events:none}.cke_notification{pointer-events:auto;position:relative;margin:10px;width:300px;color:white;text-align:center;opacity:.95;filter:alpha(opacity = 95);-webkit-animation:fadeIn .7s;animation:fadeIn .7s}.cke_notification_message a{color:#12306f}@-webkit-keyframes fadeIn{from{opacity:.4}to{opacity:.95}}@keyframes fadeIn{from{opacity:.4}to{opacity:.95}}.cke_notification_success{background:#72b572;border:1px solid #63a563}.cke_notification_warning{background:#c83939;border:1px solid #902b2b}.cke_notification_info{background:#2e9ad0;border:1px solid #0f74a8}.cke_notification_info span.cke_notification_progress{background-color:#0f74a8;display:block;padding:0;margin:0;height:100%;overflow:hidden;position:absolute;z-index:1}.cke_notification_message{position:relative;margin:4px 23px 3px;font-family:Arial,Helvetica,sans-serif;font-size:12px;line-height:18px;z-index:4;text-overflow:ellipsis;overflow:hidden}.cke_notification_close{background-image:url(images/close.png);background-repeat:no-repeat;background-position:50%;position:absolute;cursor:pointer;text-align:center;height:20px;width:20px;top:1px;right:1px;padding:0;margin:0;z-index:5;opacity:.6;filter:alpha(opacity = 60)}.cke_notification_close:hover{opacity:1;filter:alpha(opacity = 100)}.cke_notification_close span{display:none}.cke_notification_warning a.cke_notification_close{opacity:.8;filter:alpha(opacity = 80)}.cke_notification_warning a.cke_notification_close:hover{opacity:1;filter:alpha(opacity = 100)}.cke_chrome{visibility:inherit}.cke_voice_label{display:none}legend.cke_voice_label{display:none}a.cke_button_disabled,a.cke_button_disabled:hover,a.cke_button_disabled:focus,a.cke_button_disabled:active{filter:alpha(opacity = 30)}.cke_button_disabled .cke_button_icon{filter:progid:DXImageTransform.Microsoft.gradient(startColorstr=#00ffffff,endColorstr=#00ffffff)}.cke_button_off:hover,.cke_button_off:focus,.cke_button_off:active{filter:alpha(opacity = 100)}.cke_combo_disabled .cke_combo_inlinelabel,.cke_combo_disabled .cke_combo_open{filter:alpha(opacity = 30)}.cke_toolbox_collapser{border:1px solid #a6a6a6}.cke_toolbox_collapser .cke_arrow{margin-top:1px}.cke_hc .cke_top,.cke_hc .cke_bottom,.cke_hc .cke_combo_button,.cke_hc a.cke_combo_button:hover,.cke_hc a.cke_combo_button:focus,.cke_hc .cke_toolgroup,.cke_hc .cke_button_on,.cke_hc a.cke_button_off:hover,.cke_hc a.cke_button_off:focus,.cke_hc a.cke_button_off:active,.cke_hc .cke_toolbox_collapser,.cke_hc .cke_toolbox_collapser:hover,.cke_hc .cke_panel_grouptitle{filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.cke_toolbox_collapser .cke_arrow{border-width:4px}.cke_toolbox_collapser.cke_toolbox_collapser_min .cke_arrow{border-width:3px}.cke_toolbox_collapser .cke_arrow{margin-top:0}.cke_toolbar{position:relative}.cke_rtl .cke_toolbar_end{right:auto;left:0}.cke_toolbar_end:after{content:"";position:absolute;height:18px;width:0;border-right:1px solid #bcbcbc;margin-top:4px;top:1px;right:2px}.cke_rtl .cke_toolbar_end:after{right:auto;left:2px}.cke_hc .cke_toolbar_end:after{top:2px;right:5px;border-color:#000}.cke_hc.cke_rtl .cke_toolbar_end:after{right:auto;left:5px}.cke_combo+.cke_toolbar_end:after,.cke_toolbar.cke_toolbar_last .cke_toolbar_end:after{content:none;border:0}.cke_combo+.cke_toolgroup+.cke_toolbar_end:after{right:0}.cke_rtl .cke_combo+.cke_toolgroup+.cke_toolbar_end:after{right:auto;left:0}.cke_button__about_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -0px !important;}.cke_button__bold_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -24px !important;}.cke_button__italic_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -48px !important;}.cke_button__strike_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -72px !important;}.cke_button__subscript_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -96px !important;}.cke_button__superscript_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -120px !important;}.cke_button__underline_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -144px !important;}.cke_button__blockquote_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -168px !important;}.cke_rtl .cke_button__copy_icon, .cke_mixed_dir_content .cke_rtl .cke_button__copy_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -192px !important;}.cke_ltr .cke_button__copy_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -216px !important;}.cke_rtl .cke_button__cut_icon, .cke_mixed_dir_content .cke_rtl .cke_button__cut_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -240px !important;}.cke_ltr .cke_button__cut_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -264px !important;}.cke_rtl .cke_button__paste_icon, .cke_mixed_dir_content .cke_rtl .cke_button__paste_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -288px !important;}.cke_ltr .cke_button__paste_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -312px !important;}.cke_button__horizontalrule_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -336px !important;}.cke_button__image_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -360px !important;}.cke_rtl .cke_button__indent_icon, .cke_mixed_dir_content .cke_rtl .cke_button__indent_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -384px !important;}.cke_ltr .cke_button__indent_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -408px !important;}.cke_rtl .cke_button__outdent_icon, .cke_mixed_dir_content .cke_rtl .cke_button__outdent_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -432px !important;}.cke_ltr .cke_button__outdent_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -456px !important;}.cke_rtl .cke_button__anchor_icon, .cke_mixed_dir_content .cke_rtl .cke_button__anchor_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -480px !important;}.cke_ltr .cke_button__anchor_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -504px !important;}.cke_button__link_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -528px !important;}.cke_button__unlink_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -552px !important;}.cke_rtl .cke_button__bulletedlist_icon, .cke_mixed_dir_content .cke_rtl .cke_button__bulletedlist_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -576px !important;}.cke_ltr .cke_button__bulletedlist_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -600px !important;}.cke_rtl .cke_button__numberedlist_icon, .cke_mixed_dir_content .cke_rtl .cke_button__numberedlist_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -624px !important;}.cke_ltr .cke_button__numberedlist_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -648px !important;}.cke_button__maximize_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -672px !important;}.cke_rtl .cke_button__pastetext_icon, .cke_mixed_dir_content .cke_rtl .cke_button__pastetext_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -696px !important;}.cke_ltr .cke_button__pastetext_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -720px !important;}.cke_rtl .cke_button__pastefromword_icon, .cke_mixed_dir_content .cke_rtl .cke_button__pastefromword_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -744px !important;}.cke_ltr .cke_button__pastefromword_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -768px !important;}.cke_button__removeformat_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -792px !important;}.cke_rtl .cke_button__source_icon, .cke_mixed_dir_content .cke_rtl .cke_button__source_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -816px !important;}.cke_ltr .cke_button__source_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -840px !important;}.cke_button__specialchar_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -864px !important;}.cke_button__scayt_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -888px !important;}.cke_button__table_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -912px !important;}.cke_rtl .cke_button__redo_icon, .cke_mixed_dir_content .cke_rtl .cke_button__redo_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -936px !important;}.cke_ltr .cke_button__redo_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -960px !important;}.cke_rtl .cke_button__undo_icon, .cke_mixed_dir_content .cke_rtl .cke_button__undo_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -984px !important;}.cke_ltr .cke_button__undo_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -1008px !important;}.cke_button__spellchecker_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -1032px !important;}.cke_hidpi .cke_button__about_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -0px !important;background-size: 16px !important;}.cke_hidpi .cke_button__bold_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -24px !important;background-size: 16px !important;}.cke_hidpi .cke_button__italic_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -48px !important;background-size: 16px !important;}.cke_hidpi .cke_button__strike_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -72px !important;background-size: 16px !important;}.cke_hidpi .cke_button__subscript_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -96px !important;background-size: 16px !important;}.cke_hidpi .cke_button__superscript_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -120px !important;background-size: 16px !important;}.cke_hidpi .cke_button__underline_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -144px !important;background-size: 16px !important;}.cke_hidpi .cke_button__blockquote_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -168px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__copy_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__copy_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -192px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__copy_icon,.cke_ltr.cke_hidpi .cke_button__copy_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -216px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__cut_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__cut_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -240px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__cut_icon,.cke_ltr.cke_hidpi .cke_button__cut_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -264px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__paste_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__paste_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -288px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__paste_icon,.cke_ltr.cke_hidpi .cke_button__paste_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -312px !important;background-size: 16px !important;}.cke_hidpi .cke_button__horizontalrule_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -336px !important;background-size: 16px !important;}.cke_hidpi .cke_button__image_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -360px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__indent_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__indent_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -384px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__indent_icon,.cke_ltr.cke_hidpi .cke_button__indent_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -408px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__outdent_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__outdent_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -432px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__outdent_icon,.cke_ltr.cke_hidpi .cke_button__outdent_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -456px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__anchor_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__anchor_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -480px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__anchor_icon,.cke_ltr.cke_hidpi .cke_button__anchor_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -504px !important;background-size: 16px !important;}.cke_hidpi .cke_button__link_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -528px !important;background-size: 16px !important;}.cke_hidpi .cke_button__unlink_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -552px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__bulletedlist_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__bulletedlist_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -576px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__bulletedlist_icon,.cke_ltr.cke_hidpi .cke_button__bulletedlist_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -600px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__numberedlist_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__numberedlist_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -624px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__numberedlist_icon,.cke_ltr.cke_hidpi .cke_button__numberedlist_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -648px !important;background-size: 16px !important;}.cke_hidpi .cke_button__maximize_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -672px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__pastetext_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__pastetext_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -696px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__pastetext_icon,.cke_ltr.cke_hidpi .cke_button__pastetext_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -720px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__pastefromword_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__pastefromword_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -744px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__pastefromword_icon,.cke_ltr.cke_hidpi .cke_button__pastefromword_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -768px !important;background-size: 16px !important;}.cke_hidpi .cke_button__removeformat_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -792px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__source_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__source_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -816px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__source_icon,.cke_ltr.cke_hidpi .cke_button__source_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -840px !important;background-size: 16px !important;}.cke_hidpi .cke_button__specialchar_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -864px !important;background-size: 16px !important;}.cke_hidpi .cke_button__scayt_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -888px !important;background-size: 16px !important;}.cke_hidpi .cke_button__table_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -912px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__redo_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__redo_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -936px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__redo_icon,.cke_ltr.cke_hidpi .cke_button__redo_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -960px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__undo_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__undo_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -984px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__undo_icon,.cke_ltr.cke_hidpi .cke_button__undo_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -1008px !important;background-size: 16px !important;}.cke_hidpi .cke_button__spellchecker_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -1032px !important;background-size: 16px !important;} \ No newline at end of file diff --git a/admin/plugins/ckeditor/skins/moono-lisa/editor_iequirks.css b/admin/plugins/ckeditor/skins/moono-lisa/editor_iequirks.css deleted file mode 100644 index ced9208..0000000 --- a/admin/plugins/ckeditor/skins/moono-lisa/editor_iequirks.css +++ /dev/null @@ -1,5 +0,0 @@ -/* -Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. -For licensing, see LICENSE.md or http://ckeditor.com/license -*/ -.cke_reset{margin:0;padding:0;border:0;background:transparent;text-decoration:none;width:auto;height:auto;vertical-align:baseline;box-sizing:content-box;position:static;transition:none}.cke_reset_all,.cke_reset_all *,.cke_reset_all a,.cke_reset_all textarea{margin:0;padding:0;border:0;background:transparent;text-decoration:none;width:auto;height:auto;vertical-align:baseline;box-sizing:content-box;position:static;transition:none;border-collapse:collapse;font:normal normal normal 12px Arial,Helvetica,Tahoma,Verdana,Sans-Serif;color:#000;text-align:left;white-space:nowrap;cursor:auto;float:none}.cke_reset_all .cke_rtl *{text-align:right}.cke_reset_all iframe{vertical-align:inherit}.cke_reset_all textarea{white-space:pre-wrap}.cke_reset_all textarea,.cke_reset_all input[type="text"],.cke_reset_all input[type="password"]{cursor:text}.cke_reset_all textarea[disabled],.cke_reset_all input[type="text"][disabled],.cke_reset_all input[type="password"][disabled]{cursor:default}.cke_reset_all fieldset{padding:10px;border:2px groove #e0dfe3}.cke_reset_all select{box-sizing:border-box}.cke_reset_all table{table-layout:auto}.cke_chrome{display:block;border:1px solid #d1d1d1;padding:0}.cke_inner{display:block;background:#fff;padding:0;-webkit-touch-callout:none}.cke_float{border:0}.cke_float .cke_inner{padding-bottom:0}.cke_top,.cke_contents,.cke_bottom{display:block;overflow:hidden}.cke_top{border-bottom:1px solid #d1d1d1;background:#f8f8f8;padding:6px 8px 2px;white-space:normal}.cke_float .cke_top{border:1px solid #d1d1d1}.cke_bottom{padding:6px 8px 2px;position:relative;border-top:1px solid #d1d1d1;background:#f8f8f8}.cke_browser_ios .cke_contents{overflow-y:auto;-webkit-overflow-scrolling:touch}.cke_resizer{width:0;height:0;overflow:hidden;border-width:10px 10px 0 0;border-color:transparent #bcbcbc transparent transparent;border-style:dashed solid dashed dashed;font-size:0;vertical-align:bottom;margin-top:6px;margin-bottom:2px}.cke_hc .cke_resizer{font-size:15px;width:auto;height:auto;border-width:0}.cke_resizer_ltr{cursor:se-resize;float:right;margin-right:-4px}.cke_resizer_rtl{border-width:10px 0 0 10px;border-color:transparent transparent transparent #bcbcbc;border-style:dashed dashed dashed solid;cursor:sw-resize;float:left;margin-left:-4px;right:auto}.cke_wysiwyg_div{display:block;height:100%;overflow:auto;padding:0 8px;outline-style:none;box-sizing:border-box}.cke_panel{visibility:visible;width:120px;height:100px;overflow:hidden;background-color:#fff;border:1px solid #d1d1d1}.cke_menu_panel{padding:0;margin:0}.cke_combopanel{width:150px;height:170px}.cke_panel_frame{width:100%;height:100%;font-size:12px;overflow:auto;overflow-x:hidden}.cke_panel_container{overflow-y:auto;overflow-x:hidden}.cke_panel_block:focus{outline:0}.cke_panel_list{margin:0;padding:0;list-style-type:none;white-space:nowrap}.cke_panel_listItem{margin:0;padding:0}.cke_panel_listItem a{padding:6px 7px;display:block;color:inherit!important;text-decoration:none;overflow:hidden;text-overflow:ellipsis}.cke_hc .cke_panel_listItem a{border-style:none}.cke_panel_listItem.cke_selected a,.cke_panel_listItem a:hover,.cke_panel_listItem a:focus,.cke_panel_listItem a:active{background-color:#e9e9e9}.cke_panel_listItem a:focus{outline:1px dotted #000}.cke_hc .cke_panel_listItem a:hover,.cke_hc .cke_panel_listItem a:focus,.cke_hc .cke_panel_listItem a:active{border:2px solid;padding:4px 5px}.cke_panel_listItem p,.cke_panel_listItem h1,.cke_panel_listItem h2,.cke_panel_listItem h3,.cke_panel_listItem h4,.cke_panel_listItem h5,.cke_panel_listItem h6,.cke_panel_listItem pre{margin-top:0;margin-bottom:0}.cke_panel_grouptitle{cursor:default;font-size:11px;font-weight:bold;white-space:nowrap;margin:0;padding:6px 6px 7px 6px;color:#484848;border-bottom:1px solid #d1d1d1;background:#f8f8f8}.cke_colorblock{padding:10px;font-size:11px;font-family:'Microsoft Sans Serif',Tahoma,Arial,Verdana,Sans-Serif}.cke_colorblock,.cke_colorblock a{text-decoration:none;color:#000}a.cke_colorbox{padding:2px;float:left;width:20px;height:20px}.cke_rtl a.cke_colorbox{float:right}a:hover.cke_colorbox,a:focus.cke_colorbox,a:active.cke_colorbox{outline:0;padding:0;border:2px solid #139ff7}a:hover.cke_colorbox{border-color:#bcbcbc}span.cke_colorbox{width:20px;height:20px;float:left}.cke_rtl span.cke_colorbox{float:right}a.cke_colorauto,a.cke_colormore{border:#fff 1px solid;padding:3px;display:block;cursor:pointer}a.cke_colorauto{padding:0;border:1px solid transparent;margin-bottom:6px;height:26px;line-height:26px}a.cke_colormore{margin-top:10px;height:20px;line-height:19px}a:hover.cke_colorauto,a:hover.cke_colormore,a:focus.cke_colorauto,a:focus.cke_colormore,a:active.cke_colorauto,a:active.cke_colormore{outline:0;border:#139ff7 1px solid;background-color:#f8f8f8}a:hover.cke_colorauto,a:hover.cke_colormore{border-color:#bcbcbc}.cke_colorauto span.cke_colorbox{width:18px;height:18px;border:1px solid #808080;margin-left:1px;margin-top:3px}.cke_rtl .cke_colorauto span.cke_colorbox{margin-left:0;margin-right:1px}span.cke_colorbox[style*="#ffffff"],span.cke_colorbox[style*="#FFFFFF"],span.cke_colorbox[style="background-color:#fff"],span.cke_colorbox[style="background-color:#FFF"],span.cke_colorbox[style*="rgb(255,255,255)"],span.cke_colorbox[style*="rgb(255, 255, 255)"]{border:1px solid #808080;width:18px;height:18px}.cke_toolbar{float:left}.cke_rtl .cke_toolbar{float:right}.cke_toolgroup{border:0;float:left;margin:1px 2px 6px 0;padding-right:3px}.cke_rtl .cke_toolgroup{float:right;margin:1px 0 6px 2px;padding-left:3px;padding-right:0}.cke_hc .cke_toolgroup{margin-right:5px;margin-bottom:5px}.cke_hc.cke_rtl .cke_toolgroup{margin-right:0;margin-left:5px}a.cke_button{display:inline-block;height:18px;padding:4px 6px;outline:0;cursor:default;float:left;border:0;position:relative}.cke_rtl a.cke_button{float:right}.cke_hc a.cke_button{border:1px solid black;padding:3px 5px;margin:0 3px 5px 0}.cke_hc.cke_rtl a.cke_button{margin:0 0 5px 3px}a.cke_button_on{background:#fff;border:1px #bcbcbc solid;padding:3px 5px}a.cke_button_off:hover,a.cke_button_off:focus,a.cke_button_off:active{background:#e5e5e5;border:1px #bcbcbc solid;padding:3px 5px}.cke_hc a.cke_button_on,.cke_hc a.cke_button_off:hover,.cke_hc a.cke_button_off:focus,.cke_hc a.cke_button_off:active{background:#e5e5e5;border:3px solid #000;padding:1px 3px}a.cke_button_disabled:hover,a.cke_button_disabled:focus,a.cke_button_disabled:active{border:0;padding:4px 6px;background-color:transparent}a.cke_button_disabled:focus{border:1px #bcbcbc solid;padding:3px 5px}.cke_hc a.cke_button_disabled:hover,.cke_hc a.cke_button_disabled:focus,.cke_hc a.cke_button_disabled:active{border:1px solid #acacac;padding:3px 5px;margin:0 3px 5px 0}.cke_hc a.cke_button_disabled:focus{border:3px solid #000;padding:1px 3px}.cke_hc.cke_rtl a.cke_button_disabled:hover,.cke_hc.cke_rtl a.cke_button_disabled:focus,.cke_hc.cke_rtl a.cke_button_disabled:active{margin:0 0 5px 3px}a.cke_button_disabled .cke_button_icon,a.cke_button_disabled .cke_button_arrow{opacity:.3}.cke_hc a.cke_button_disabled{border-color:#acacac}.cke_hc a.cke_button_disabled .cke_button_icon,.cke_hc a.cke_button_disabled .cke_button_label{opacity:.5}.cke_toolgroup a.cke_button:last-child:after,.cke_toolgroup a.cke_button.cke_button_disabled:hover:last-child:after{content:"";position:absolute;height:18px;width:0;border-right:1px solid #bcbcbc;margin-top:4px;top:0;right:-3px}.cke_rtl .cke_toolgroup a.cke_button:last-child:after,.cke_rtl .cke_toolgroup a.cke_button.cke_button_disabled:hover:last-child:after{border-right:0;right:auto;border-left:1px solid #bcbcbc;top:0;left:-3px}.cke_hc .cke_toolgroup a.cke_button:last-child:after,.cke_hc .cke_toolgroup a.cke_button.cke_button_disabled:last-child:after,.cke_hc .cke_toolgroup a.cke_button.cke_button_disabled:hover:last-child:after{border-color:#000;top:0;right:-7px}.cke_hc.cke_rtl .cke_toolgroup a.cke_button:last-child:after,.cke_hc.cke_rtl .cke_toolgroup a.cke_button.cke_button_disabled:last-child:after,.cke_hc.cke_rtl .cke_toolgroup a.cke_button.cke_button_disabled:hover:last-child:after{top:0;right:auto;left:-7px}.cke_toolgroup a.cke_button:hover:last-child:after,.cke_toolgroup a.cke_button.cke_button_on:last-child:after{top:-1px;right:-4px}.cke_rtl .cke_toolgroup a.cke_button:hover:last-child:after,.cke_rtl .cke_toolgroup a.cke_button.cke_button_on:last-child:after{top:-1px;right:auto;left:-4px}.cke_hc .cke_toolgroup a.cke_button:hover:last-child:after,.cke_hc .cke_toolgroup a.cke_button.cke_button_on:last-child:after{top:-2px;right:-9px}.cke_hc.cke_rtl .cke_toolgroup a.cke_button:hover:last-child:after,.cke_hc.cke_rtl .cke_toolgroup a.cke_button.cke_button_on:last-child:after{top:-2px;right:auto;left:-9px}.cke_toolbar.cke_toolbar_last .cke_toolgroup a.cke_button:last-child:after{content:none;border:0;width:0;height:0}.cke_button_icon{cursor:inherit;background-repeat:no-repeat;margin-top:1px;width:16px;height:16px;float:left;display:inline-block}.cke_rtl .cke_button_icon{float:right}.cke_hc .cke_button_icon{display:none}.cke_button_label{display:none;padding-left:3px;margin-top:1px;line-height:17px;vertical-align:middle;float:left;cursor:default;color:#484848}.cke_rtl .cke_button_label{padding-right:3px;padding-left:0;float:right}.cke_hc .cke_button_label{padding:0;display:inline-block;font-size:12px}.cke_button_arrow{display:inline-block;margin:8px 0 0 1px;width:0;height:0;cursor:default;vertical-align:top;border-left:3px solid transparent;border-right:3px solid transparent;border-top:3px solid #484848}.cke_rtl .cke_button_arrow{margin-right:5px;margin-left:0}.cke_hc .cke_button_arrow{font-size:10px;margin:3px 0 0 3px;width:auto;border:0}.cke_toolbar_separator{float:left;background-color:#bcbcbc;margin:4px 2px 0 2px;height:18px;width:1px}.cke_rtl .cke_toolbar_separator{float:right}.cke_hc .cke_toolbar_separator{background-color:#000;margin-left:2px;margin-right:5px;margin-bottom:9px}.cke_hc.cke_rtl .cke_toolbar_separator{margin-left:5px;margin-right:2px}.cke_toolbar_break{display:block;clear:left}.cke_rtl .cke_toolbar_break{clear:right}a.cke_toolbox_collapser{width:12px;height:11px;float:right;margin:11px 0 0;font-size:0;cursor:default;text-align:center;border:1px solid #bcbcbc}.cke_rtl .cke_toolbox_collapser{float:left}.cke_toolbox_collapser:hover{background:#e5e5e5}.cke_toolbox_collapser.cke_toolbox_collapser_min{margin:0 2px 4px}.cke_toolbox_collapser .cke_arrow{display:inline-block;height:0;width:0;font-size:0;margin-top:1px;border:3px solid transparent;border-bottom-color:#484848}.cke_toolbox_collapser.cke_toolbox_collapser_min .cke_arrow{margin-top:4px;border-bottom-color:transparent;border-top-color:#484848}.cke_hc .cke_toolbox_collapser .cke_arrow{font-size:8px;width:auto;border:0;margin-top:0}.cke_menuitem span{cursor:default}.cke_menubutton{display:block}.cke_hc .cke_menubutton{padding:2px}.cke_menubutton:hover,.cke_menubutton:focus,.cke_menubutton:active{background-color:#e9e9e9;display:block;outline:1px dotted}.cke_menubutton:hover{outline:0}.cke_hc .cke_menubutton:hover,.cke_hc .cke_menubutton:focus,.cke_hc .cke_menubutton:active{border:2px solid;padding:0}.cke_menubutton_disabled:hover,.cke_menubutton_disabled:focus,.cke_menubutton_disabled:active{background-color:transparent;outline:0}.cke_menubutton_inner{display:table-row}.cke_menubutton_icon,.cke_menubutton_label,.cke_menuarrow{display:table-cell}.cke_menubutton_icon{background-color:#f8f8f8;padding:6px 4px}.cke_hc .cke_menubutton_icon{height:16px;width:0;padding:4px 0}.cke_menubutton:hover .cke_menubutton_icon,.cke_menubutton:focus .cke_menubutton_icon,.cke_menubutton:active .cke_menubutton_icon{background-color:#e9e9e9}.cke_menubutton_disabled:hover .cke_menubutton_icon,.cke_menubutton_disabled:focus .cke_menubutton_icon,.cke_menubutton_disabled:active .cke_menubutton_icon{background-color:#f8f8f8;outline:0}.cke_menuitem .cke_menubutton_on{background-color:#e9e9e9;border:1px solid #dedede;outline:0}.cke_menubutton_on .cke_menubutton_icon{padding-right:3px;background-color:#e9e9e9}.cke_menubutton_label{padding:0 5px;background-color:transparent;width:100%;vertical-align:middle}.cke_menubutton_shortcut{color:#979797}.cke_menubutton_disabled .cke_menubutton_label{opacity:.3;filter:alpha(opacity=30)}.cke_panel_frame .cke_menubutton_label{display:none}.cke_menuseparator{background-color:#d1d1d1;height:1px}.cke_menuarrow{background:transparent url(images/arrow.png) no-repeat 0 10px;padding:0 5px}.cke_rtl .cke_menuarrow{background-position:5px -13px;background-repeat:no-repeat}.cke_hc .cke_menuarrow{background-image:none}.cke_menuarrow span{display:none}.cke_hc .cke_menuarrow span{vertical-align:middle;display:inline}.cke_combo{display:inline-block;float:left;position:relative;margin-bottom:5px}.cke_rtl .cke_combo{float:right}.cke_hc .cke_combo{margin-top:1px;margin-bottom:10px}.cke_combo:after{content:"";position:absolute;height:18px;width:0;border-right:1px solid #bcbcbc;margin-top:5px;top:0;right:0}.cke_rtl .cke_combo:after{border-right:0;border-left:1px solid #bcbcbc;right:auto;left:0}.cke_hc .cke_combo:after{border-color:#000}a.cke_combo_button{cursor:default;display:inline-block;float:left;margin:0;padding:1px}.cke_rtl a.cke_combo_button{float:right}.cke_hc a.cke_combo_button{padding:4px}.cke_combo_on a.cke_combo_button,.cke_combo_off a.cke_combo_button:hover,.cke_combo_off a.cke_combo_button:focus,.cke_combo_off a.cke_combo_button:active{background:#e5e5e5;border:1px solid #bcbcbc;padding:0 0 0 1px;margin-left:-1px}.cke_combo_off a.cke_combo_button:focus{outline:0}.cke_combo_on a.cke_combo_button,.cke_combo_off a.cke_combo_button:active{background:#fff}.cke_rtl .cke_combo_on a.cke_combo_button,.cke_rtl .cke_combo_off a.cke_combo_button:hover,.cke_rtl .cke_combo_off a.cke_combo_button:focus,.cke_rtl .cke_combo_off a.cke_combo_button:active{padding:0 1px 0 0;margin-left:0;margin-right:-1px}.cke_hc .cke_combo_on a.cke_combo_button,.cke_hc .cke_combo_off a.cke_combo_button:hover,.cke_hc .cke_combo_off a.cke_combo_button:focus,.cke_hc .cke_combo_off a.cke_combo_button:active{border:3px solid #000;padding:1px 1px 1px 2px}.cke_hc.cke_rtl .cke_combo_on a.cke_combo_button,.cke_hc.cke_rtl .cke_combo_off a.cke_combo_button:hover,.cke_hc.cke_rtl .cke_combo_off a.cke_combo_button:focus,.cke_hc.cke_rtl .cke_combo_off a.cke_combo_button:active{padding:1px 2px 1px 1px}.cke_toolbar_start+.cke_combo_on a.cke_combo_button,.cke_toolbar_start+.cke_combo_off a.cke_combo_button:hover,.cke_toolbar_start+.cke_combo_off a.cke_combo_button:focus,.cke_toolbar_start+.cke_combo_off a.cke_combo_button:active{padding:0 0 0 3px;margin-left:-3px}.cke_rtl .cke_toolbar_start+.cke_combo_on a.cke_combo_button,.cke_rtl .cke_toolbar_start+.cke_combo_off a.cke_combo_button:hover,.cke_rtl .cke_toolbar_start+.cke_combo_off a.cke_combo_button:focus,.cke_rtl .cke_toolbar_start+.cke_combo_off a.cke_combo_button:active{padding:0 3px 0 0;margin-left:0;margin-right:-3px}.cke_hc .cke_toolbar>.cke_toolbar_start+.cke_combo_on a.cke_combo_button,.cke_hc .cke_toolbar>.cke_toolbar_start+.cke_combo_off a.cke_combo_button:hover,.cke_hc .cke_toolbar>.cke_toolbar_start+.cke_combo_off a.cke_combo_button:focus,.cke_hc .cke_toolbar>.cke_toolbar_start+.cke_combo_off a.cke_combo_button:active{padding:1px 1px 1px 7px;margin-left:-6px}.cke_hc.cke_rtl .cke_toolbar>.cke_toolbar_start+.cke_combo_on a.cke_combo_button,.cke_hc.cke_rtl .cke_toolbar>.cke_toolbar_start+.cke_combo_off a.cke_combo_button:hover,.cke_hc.cke_rtl .cke_toolbar>.cke_toolbar_start+.cke_combo_off a.cke_combo_button:focus,.cke_hc.cke_rtl .cke_toolbar>.cke_toolbar_start+.cke_combo_off a.cke_combo_button:active{padding:1px 7px 1px 1px;margin-left:0;margin-right:-6px}.cke_toolbox .cke_toolbar:first-child>.cke_toolbar_start+.cke_combo_on a.cke_combo_button,.cke_toolbox .cke_toolbar:first-child>.cke_toolbar_start+.cke_combo_off a.cke_combo_button:hover,.cke_toolbox .cke_toolbar:first-child>.cke_toolbar_start+.cke_combo_off a.cke_combo_button:focus,.cke_toolbox .cke_toolbar:first-child>.cke_toolbar_start+.cke_combo_off a.cke_combo_button:active,.cke_toolbar_break+.cke_toolbar>.cke_toolbar_start+.cke_combo_on a.cke_combo_button,.cke_toolbar_break+.cke_toolbar>.cke_toolbar_start+.cke_combo_off a.cke_combo_button:hover,.cke_toolbar_break+.cke_toolbar>.cke_toolbar_start+.cke_combo_off a.cke_combo_button:focus,.cke_toolbar_break+.cke_toolbar>.cke_toolbar_start+.cke_combo_off a.cke_combo_button:active{padding:0;margin:0}.cke_hc .cke_toolbox .cke_toolbar:first-child>.cke_toolbar_start+.cke_combo_on a.cke_combo_button,.cke_hc .cke_toolbox .cke_toolbar:first-child>.cke_toolbar_start+.cke_combo_off a.cke_combo_button:hover,.cke_hc .cke_toolbox .cke_toolbar:first-child>.cke_toolbar_start+.cke_combo_off a.cke_combo_button:focus,.cke_hc .cke_toolbox .cke_toolbar:first-child>.cke_toolbar_start+.cke_combo_off a.cke_combo_button:active,.cke_hc .cke_toolbar_break+.cke_toolbar>.cke_toolbar_start+.cke_combo_on a.cke_combo_button,.cke_hc .cke_toolbar_break+.cke_toolbar>.cke_toolbar_start+.cke_combo_off a.cke_combo_button:hover,.cke_hc .cke_toolbar_break+.cke_toolbar>.cke_toolbar_start+.cke_combo_off a.cke_combo_button:focus,.cke_hc .cke_toolbar_break+.cke_toolbar>.cke_toolbar_start+.cke_combo_off a.cke_combo_button:active{padding:1px;margin:0}.cke_toolbar .cke_combo+.cke_toolbar_end,.cke_toolbar .cke_combo+.cke_toolgroup{margin-right:0;margin-left:2px}.cke_rtl .cke_toolbar .cke_combo+.cke_toolbar_end,.cke_rtl .cke_toolbar .cke_combo+.cke_toolgroup{margin-left:0;margin-right:2px}.cke_hc .cke_toolbar .cke_combo+.cke_toolbar_end,.cke_hc .cke_toolbar .cke_combo+.cke_toolgroup{margin-left:5px}.cke_hc.cke_rtl .cke_toolbar .cke_combo+.cke_toolbar_end,.cke_hc.cke_rtl .cke_toolbar .cke_combo+.cke_toolgroup{margin-left:0;margin-right:5px}.cke_toolbar.cke_toolbar_last .cke_combo:nth-last-child(-n+2):after{content:none;border:0;width:0;height:0}.cke_combo_text{line-height:26px;padding-left:10px;text-overflow:ellipsis;overflow:hidden;float:left;cursor:default;color:#484848;width:60px}.cke_rtl .cke_combo_text{float:right;text-align:right;padding-left:0;padding-right:10px}.cke_hc .cke_combo_text{line-height:18px;font-size:12px}.cke_combo_open{cursor:default;display:inline-block;font-size:0;height:19px;line-height:17px;margin:1px 10px 1px;width:5px}.cke_hc .cke_combo_open{height:12px}.cke_combo_arrow{cursor:default;margin:11px 0 0;float:left;height:0;width:0;font-size:0;border-left:3px solid transparent;border-right:3px solid transparent;border-top:3px solid #484848}.cke_hc .cke_combo_arrow{font-size:10px;width:auto;border:0;margin-top:3px}.cke_combo_label{display:none;float:left;line-height:26px;vertical-align:top;margin-right:5px}.cke_rtl .cke_combo_label{float:right;margin-left:5px;margin-right:0}.cke_combo_disabled .cke_combo_inlinelabel,.cke_combo_disabled .cke_combo_open{opacity:.3}.cke_path{float:left;margin:-2px 0 2px}a.cke_path_item,span.cke_path_empty{display:inline-block;float:left;padding:3px 4px;margin-right:2px;cursor:default;text-decoration:none;outline:0;border:0;color:#484848;font-weight:bold;font-size:11px}.cke_rtl .cke_path,.cke_rtl .cke_path_item,.cke_rtl .cke_path_empty{float:right}a.cke_path_item:hover,a.cke_path_item:focus,a.cke_path_item:active{background-color:#e5e5e5}.cke_hc a.cke_path_item:hover,.cke_hc a.cke_path_item:focus,.cke_hc a.cke_path_item:active{border:2px solid;padding:1px 2px}.cke_button__source_label,.cke_button__sourcedialog_label{display:inline}.cke_combopanel__fontsize{width:135px}textarea.cke_source{font-family:'Courier New',Monospace;font-size:small;background-color:#fff;white-space:pre-wrap;border:0;padding:0;margin:0;display:block}.cke_wysiwyg_frame,.cke_wysiwyg_div{background-color:#fff}.cke_notifications_area{pointer-events:none}.cke_notification{pointer-events:auto;position:relative;margin:10px;width:300px;color:white;text-align:center;opacity:.95;filter:alpha(opacity = 95);-webkit-animation:fadeIn .7s;animation:fadeIn .7s}.cke_notification_message a{color:#12306f}@-webkit-keyframes fadeIn{from{opacity:.4}to{opacity:.95}}@keyframes fadeIn{from{opacity:.4}to{opacity:.95}}.cke_notification_success{background:#72b572;border:1px solid #63a563}.cke_notification_warning{background:#c83939;border:1px solid #902b2b}.cke_notification_info{background:#2e9ad0;border:1px solid #0f74a8}.cke_notification_info span.cke_notification_progress{background-color:#0f74a8;display:block;padding:0;margin:0;height:100%;overflow:hidden;position:absolute;z-index:1}.cke_notification_message{position:relative;margin:4px 23px 3px;font-family:Arial,Helvetica,sans-serif;font-size:12px;line-height:18px;z-index:4;text-overflow:ellipsis;overflow:hidden}.cke_notification_close{background-image:url(images/close.png);background-repeat:no-repeat;background-position:50%;position:absolute;cursor:pointer;text-align:center;height:20px;width:20px;top:1px;right:1px;padding:0;margin:0;z-index:5;opacity:.6;filter:alpha(opacity = 60)}.cke_notification_close:hover{opacity:1;filter:alpha(opacity = 100)}.cke_notification_close span{display:none}.cke_notification_warning a.cke_notification_close{opacity:.8;filter:alpha(opacity = 80)}.cke_notification_warning a.cke_notification_close:hover{opacity:1;filter:alpha(opacity = 100)}.cke_chrome{visibility:inherit}.cke_voice_label{display:none}legend.cke_voice_label{display:none}a.cke_button_disabled,a.cke_button_disabled:hover,a.cke_button_disabled:focus,a.cke_button_disabled:active{filter:alpha(opacity = 30)}.cke_button_disabled .cke_button_icon{filter:progid:DXImageTransform.Microsoft.gradient(startColorstr=#00ffffff,endColorstr=#00ffffff)}.cke_button_off:hover,.cke_button_off:focus,.cke_button_off:active{filter:alpha(opacity = 100)}.cke_combo_disabled .cke_combo_inlinelabel,.cke_combo_disabled .cke_combo_open{filter:alpha(opacity = 30)}.cke_toolbox_collapser{border:1px solid #a6a6a6}.cke_toolbox_collapser .cke_arrow{margin-top:1px}.cke_hc .cke_top,.cke_hc .cke_bottom,.cke_hc .cke_combo_button,.cke_hc a.cke_combo_button:hover,.cke_hc a.cke_combo_button:focus,.cke_hc .cke_toolgroup,.cke_hc .cke_button_on,.cke_hc a.cke_button_off:hover,.cke_hc a.cke_button_off:focus,.cke_hc a.cke_button_off:active,.cke_hc .cke_toolbox_collapser,.cke_hc .cke_toolbox_collapser:hover,.cke_hc .cke_panel_grouptitle{filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.cke_top,.cke_contents,.cke_bottom{width:100%}.cke_button_arrow{font-size:0}.cke_rtl .cke_toolgroup,.cke_rtl .cke_toolbar_separator,.cke_rtl .cke_button,.cke_rtl .cke_button *,.cke_rtl .cke_combo,.cke_rtl .cke_combo *,.cke_rtl .cke_path_item,.cke_rtl .cke_path_item *,.cke_rtl .cke_path_empty{float:none}.cke_rtl .cke_toolgroup,.cke_rtl .cke_toolbar_separator,.cke_rtl .cke_combo_button,.cke_rtl .cke_combo_button *,.cke_rtl .cke_button,.cke_rtl .cke_button_icon{display:inline-block;vertical-align:top}.cke_rtl .cke_button_icon{float:none}.cke_resizer{width:10px}.cke_source{white-space:normal}.cke_bottom{position:static}.cke_colorbox{font-size:0}.cke_button__about_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -0px !important;}.cke_button__bold_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -24px !important;}.cke_button__italic_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -48px !important;}.cke_button__strike_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -72px !important;}.cke_button__subscript_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -96px !important;}.cke_button__superscript_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -120px !important;}.cke_button__underline_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -144px !important;}.cke_button__blockquote_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -168px !important;}.cke_rtl .cke_button__copy_icon, .cke_mixed_dir_content .cke_rtl .cke_button__copy_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -192px !important;}.cke_ltr .cke_button__copy_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -216px !important;}.cke_rtl .cke_button__cut_icon, .cke_mixed_dir_content .cke_rtl .cke_button__cut_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -240px !important;}.cke_ltr .cke_button__cut_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -264px !important;}.cke_rtl .cke_button__paste_icon, .cke_mixed_dir_content .cke_rtl .cke_button__paste_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -288px !important;}.cke_ltr .cke_button__paste_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -312px !important;}.cke_button__horizontalrule_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -336px !important;}.cke_button__image_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -360px !important;}.cke_rtl .cke_button__indent_icon, .cke_mixed_dir_content .cke_rtl .cke_button__indent_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -384px !important;}.cke_ltr .cke_button__indent_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -408px !important;}.cke_rtl .cke_button__outdent_icon, .cke_mixed_dir_content .cke_rtl .cke_button__outdent_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -432px !important;}.cke_ltr .cke_button__outdent_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -456px !important;}.cke_rtl .cke_button__anchor_icon, .cke_mixed_dir_content .cke_rtl .cke_button__anchor_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -480px !important;}.cke_ltr .cke_button__anchor_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -504px !important;}.cke_button__link_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -528px !important;}.cke_button__unlink_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -552px !important;}.cke_rtl .cke_button__bulletedlist_icon, .cke_mixed_dir_content .cke_rtl .cke_button__bulletedlist_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -576px !important;}.cke_ltr .cke_button__bulletedlist_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -600px !important;}.cke_rtl .cke_button__numberedlist_icon, .cke_mixed_dir_content .cke_rtl .cke_button__numberedlist_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -624px !important;}.cke_ltr .cke_button__numberedlist_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -648px !important;}.cke_button__maximize_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -672px !important;}.cke_rtl .cke_button__pastetext_icon, .cke_mixed_dir_content .cke_rtl .cke_button__pastetext_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -696px !important;}.cke_ltr .cke_button__pastetext_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -720px !important;}.cke_rtl .cke_button__pastefromword_icon, .cke_mixed_dir_content .cke_rtl .cke_button__pastefromword_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -744px !important;}.cke_ltr .cke_button__pastefromword_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -768px !important;}.cke_button__removeformat_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -792px !important;}.cke_rtl .cke_button__source_icon, .cke_mixed_dir_content .cke_rtl .cke_button__source_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -816px !important;}.cke_ltr .cke_button__source_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -840px !important;}.cke_button__specialchar_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -864px !important;}.cke_button__scayt_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -888px !important;}.cke_button__table_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -912px !important;}.cke_rtl .cke_button__redo_icon, .cke_mixed_dir_content .cke_rtl .cke_button__redo_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -936px !important;}.cke_ltr .cke_button__redo_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -960px !important;}.cke_rtl .cke_button__undo_icon, .cke_mixed_dir_content .cke_rtl .cke_button__undo_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -984px !important;}.cke_ltr .cke_button__undo_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -1008px !important;}.cke_button__spellchecker_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -1032px !important;}.cke_hidpi .cke_button__about_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -0px !important;background-size: 16px !important;}.cke_hidpi .cke_button__bold_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -24px !important;background-size: 16px !important;}.cke_hidpi .cke_button__italic_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -48px !important;background-size: 16px !important;}.cke_hidpi .cke_button__strike_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -72px !important;background-size: 16px !important;}.cke_hidpi .cke_button__subscript_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -96px !important;background-size: 16px !important;}.cke_hidpi .cke_button__superscript_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -120px !important;background-size: 16px !important;}.cke_hidpi .cke_button__underline_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -144px !important;background-size: 16px !important;}.cke_hidpi .cke_button__blockquote_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -168px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__copy_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__copy_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -192px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__copy_icon,.cke_ltr.cke_hidpi .cke_button__copy_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -216px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__cut_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__cut_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -240px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__cut_icon,.cke_ltr.cke_hidpi .cke_button__cut_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -264px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__paste_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__paste_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -288px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__paste_icon,.cke_ltr.cke_hidpi .cke_button__paste_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -312px !important;background-size: 16px !important;}.cke_hidpi .cke_button__horizontalrule_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -336px !important;background-size: 16px !important;}.cke_hidpi .cke_button__image_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -360px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__indent_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__indent_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -384px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__indent_icon,.cke_ltr.cke_hidpi .cke_button__indent_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -408px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__outdent_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__outdent_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -432px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__outdent_icon,.cke_ltr.cke_hidpi .cke_button__outdent_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -456px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__anchor_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__anchor_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -480px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__anchor_icon,.cke_ltr.cke_hidpi .cke_button__anchor_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -504px !important;background-size: 16px !important;}.cke_hidpi .cke_button__link_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -528px !important;background-size: 16px !important;}.cke_hidpi .cke_button__unlink_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -552px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__bulletedlist_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__bulletedlist_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -576px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__bulletedlist_icon,.cke_ltr.cke_hidpi .cke_button__bulletedlist_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -600px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__numberedlist_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__numberedlist_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -624px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__numberedlist_icon,.cke_ltr.cke_hidpi .cke_button__numberedlist_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -648px !important;background-size: 16px !important;}.cke_hidpi .cke_button__maximize_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -672px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__pastetext_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__pastetext_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -696px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__pastetext_icon,.cke_ltr.cke_hidpi .cke_button__pastetext_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -720px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__pastefromword_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__pastefromword_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -744px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__pastefromword_icon,.cke_ltr.cke_hidpi .cke_button__pastefromword_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -768px !important;background-size: 16px !important;}.cke_hidpi .cke_button__removeformat_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -792px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__source_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__source_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -816px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__source_icon,.cke_ltr.cke_hidpi .cke_button__source_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -840px !important;background-size: 16px !important;}.cke_hidpi .cke_button__specialchar_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -864px !important;background-size: 16px !important;}.cke_hidpi .cke_button__scayt_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -888px !important;background-size: 16px !important;}.cke_hidpi .cke_button__table_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -912px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__redo_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__redo_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -936px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__redo_icon,.cke_ltr.cke_hidpi .cke_button__redo_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -960px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__undo_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__undo_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -984px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__undo_icon,.cke_ltr.cke_hidpi .cke_button__undo_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -1008px !important;background-size: 16px !important;}.cke_hidpi .cke_button__spellchecker_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -1032px !important;background-size: 16px !important;} \ No newline at end of file diff --git a/admin/plugins/ckeditor/skins/moono-lisa/icons.png b/admin/plugins/ckeditor/skins/moono-lisa/icons.png deleted file mode 100644 index 5cdb2db..0000000 Binary files a/admin/plugins/ckeditor/skins/moono-lisa/icons.png and /dev/null differ diff --git a/admin/plugins/ckeditor/skins/moono-lisa/icons_hidpi.png b/admin/plugins/ckeditor/skins/moono-lisa/icons_hidpi.png deleted file mode 100644 index 3ddfb1d..0000000 Binary files a/admin/plugins/ckeditor/skins/moono-lisa/icons_hidpi.png and /dev/null differ diff --git a/admin/plugins/ckeditor/skins/moono-lisa/images/arrow.png b/admin/plugins/ckeditor/skins/moono-lisa/images/arrow.png deleted file mode 100644 index d72b5f3..0000000 Binary files a/admin/plugins/ckeditor/skins/moono-lisa/images/arrow.png and /dev/null differ diff --git a/admin/plugins/ckeditor/skins/moono-lisa/images/close.png b/admin/plugins/ckeditor/skins/moono-lisa/images/close.png deleted file mode 100644 index 40caa6d..0000000 Binary files a/admin/plugins/ckeditor/skins/moono-lisa/images/close.png and /dev/null differ diff --git a/admin/plugins/ckeditor/skins/moono-lisa/images/hidpi/close.png b/admin/plugins/ckeditor/skins/moono-lisa/images/hidpi/close.png deleted file mode 100644 index fa00f4f..0000000 Binary files a/admin/plugins/ckeditor/skins/moono-lisa/images/hidpi/close.png and /dev/null differ diff --git a/admin/plugins/ckeditor/skins/moono-lisa/images/hidpi/lock-open.png b/admin/plugins/ckeditor/skins/moono-lisa/images/hidpi/lock-open.png deleted file mode 100644 index c899789..0000000 Binary files a/admin/plugins/ckeditor/skins/moono-lisa/images/hidpi/lock-open.png and /dev/null differ diff --git a/admin/plugins/ckeditor/skins/moono-lisa/images/hidpi/lock.png b/admin/plugins/ckeditor/skins/moono-lisa/images/hidpi/lock.png deleted file mode 100644 index 25ad0f4..0000000 Binary files a/admin/plugins/ckeditor/skins/moono-lisa/images/hidpi/lock.png and /dev/null differ diff --git a/admin/plugins/ckeditor/skins/moono-lisa/images/hidpi/refresh.png b/admin/plugins/ckeditor/skins/moono-lisa/images/hidpi/refresh.png deleted file mode 100644 index 117a2d4..0000000 Binary files a/admin/plugins/ckeditor/skins/moono-lisa/images/hidpi/refresh.png and /dev/null differ diff --git a/admin/plugins/ckeditor/skins/moono-lisa/images/lock-open.png b/admin/plugins/ckeditor/skins/moono-lisa/images/lock-open.png deleted file mode 100644 index 42df5f4..0000000 Binary files a/admin/plugins/ckeditor/skins/moono-lisa/images/lock-open.png and /dev/null differ diff --git a/admin/plugins/ckeditor/skins/moono-lisa/images/lock.png b/admin/plugins/ckeditor/skins/moono-lisa/images/lock.png deleted file mode 100644 index bde6772..0000000 Binary files a/admin/plugins/ckeditor/skins/moono-lisa/images/lock.png and /dev/null differ diff --git a/admin/plugins/ckeditor/skins/moono-lisa/images/refresh.png b/admin/plugins/ckeditor/skins/moono-lisa/images/refresh.png deleted file mode 100644 index e363764..0000000 Binary files a/admin/plugins/ckeditor/skins/moono-lisa/images/refresh.png and /dev/null differ diff --git a/admin/plugins/ckeditor/skins/moono-lisa/images/spinner.gif b/admin/plugins/ckeditor/skins/moono-lisa/images/spinner.gif deleted file mode 100644 index d898d41..0000000 Binary files a/admin/plugins/ckeditor/skins/moono-lisa/images/spinner.gif and /dev/null differ diff --git a/admin/plugins/ckeditor/skins/moono-lisa/readme.md b/admin/plugins/ckeditor/skins/moono-lisa/readme.md deleted file mode 100644 index 7ed4c78..0000000 --- a/admin/plugins/ckeditor/skins/moono-lisa/readme.md +++ /dev/null @@ -1,46 +0,0 @@ -"Moono-lisa" Skin -================= - -This skin has been made a **default skin** starting from CKEditor 4.6.0 and is maintained by the core developers. - -For more information about skins, please check the [CKEditor Skin SDK](http://docs.cksource.com/CKEditor_4.x/Skin_SDK) -documentation. - -Features -------------------- -"Moono-lisa" is a monochromatic skin, which offers a modern, flat and minimalistic look which blends very well in modern design. -It comes with the following features: - -- Chameleon feature with brightness. -- High-contrast compatibility. -- Graphics source provided in SVG. - -Directory Structure -------------------- - -CSS parts: -- **editor.css**: the main CSS file. It's simply loading several other files, for easier maintenance, -- **mainui.css**: the file contains styles of entire editor outline structures, -- **toolbar.css**: the file contains styles of the editor toolbar space (top), -- **richcombo.css**: the file contains styles of the rich combo ui elements on toolbar, -- **panel.css**: the file contains styles of the rich combo drop-down, it's not loaded -until the first panel open up, -- **elementspath.css**: the file contains styles of the editor elements path bar (bottom), -- **menu.css**: the file contains styles of all editor menus including context menu and button drop-down, -it's not loaded until the first menu open up, -- **dialog.css**: the CSS files for the dialog UI, it's not loaded until the first dialog open, -- **reset.css**: the file defines the basis of style resets among all editor UI spaces, -- **preset.css**: the file defines the default styles of some UI elements reflecting the skin preference, -- **editor_XYZ.css** and **dialog_XYZ.css**: browser specific CSS hacks. - -Other parts: -- **skin.js**: the only JavaScript part of the skin that registers the skin, its browser specific files and its icons and defines the Chameleon feature, -- **images/**: contains a fill general used images, -- **dev/**: contains SVG and PNG source of the skin icons. - -License -------- - -Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. - -For licensing, see LICENSE.md or [http://ckeditor.com/license](http://ckeditor.com/license) diff --git a/admin/plugins/ckeditor/styles.js b/admin/plugins/ckeditor/styles.js deleted file mode 100644 index d809226..0000000 --- a/admin/plugins/ckeditor/styles.js +++ /dev/null @@ -1,137 +0,0 @@ -/** - * Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. - * For licensing, see LICENSE.md or http://ckeditor.com/license - */ - -// This file contains style definitions that can be used by CKEditor plugins. -// -// The most common use for it is the "stylescombo" plugin which shows the Styles drop-down -// list containing all styles in the editor toolbar. Other plugins, like -// the "div" plugin, use a subset of the styles for their features. -// -// If you do not have plugins that depend on this file in your editor build, you can simply -// ignore it. Otherwise it is strongly recommended to customize this file to match your -// website requirements and design properly. -// -// For more information refer to: http://docs.ckeditor.com/#!/guide/dev_styles-section-style-rules - -CKEDITOR.stylesSet.add( 'default', [ - /* Block styles */ - - // These styles are already available in the "Format" drop-down list ("format" plugin), - // so they are not needed here by default. You may enable them to avoid - // placing the "Format" combo in the toolbar, maintaining the same features. - /* - { name: 'Paragraph', element: 'p' }, - { name: 'Heading 1', element: 'h1' }, - { name: 'Heading 2', element: 'h2' }, - { name: 'Heading 3', element: 'h3' }, - { name: 'Heading 4', element: 'h4' }, - { name: 'Heading 5', element: 'h5' }, - { name: 'Heading 6', element: 'h6' }, - { name: 'Preformatted Text',element: 'pre' }, - { name: 'Address', element: 'address' }, - */ - - { name: 'Italic Title', element: 'h2', styles: { 'font-style': 'italic' } }, - { name: 'Subtitle', element: 'h3', styles: { 'color': '#aaa', 'font-style': 'italic' } }, - { - name: 'Special Container', - element: 'div', - styles: { - padding: '5px 10px', - background: '#eee', - border: '1px solid #ccc' - } - }, - - /* Inline styles */ - - // These are core styles available as toolbar buttons. You may opt enabling - // some of them in the Styles drop-down list, removing them from the toolbar. - // (This requires the "stylescombo" plugin.) - /* - { name: 'Strong', element: 'strong', overrides: 'b' }, - { name: 'Emphasis', element: 'em' , overrides: 'i' }, - { name: 'Underline', element: 'u' }, - { name: 'Strikethrough', element: 'strike' }, - { name: 'Subscript', element: 'sub' }, - { name: 'Superscript', element: 'sup' }, - */ - - { name: 'Marker', element: 'span', attributes: { 'class': 'marker' } }, - - { name: 'Big', element: 'big' }, - { name: 'Small', element: 'small' }, - { name: 'Typewriter', element: 'tt' }, - - { name: 'Computer Code', element: 'code' }, - { name: 'Keyboard Phrase', element: 'kbd' }, - { name: 'Sample Text', element: 'samp' }, - { name: 'Variable', element: 'var' }, - - { name: 'Deleted Text', element: 'del' }, - { name: 'Inserted Text', element: 'ins' }, - - { name: 'Cited Work', element: 'cite' }, - { name: 'Inline Quotation', element: 'q' }, - - { name: 'Language: RTL', element: 'span', attributes: { 'dir': 'rtl' } }, - { name: 'Language: LTR', element: 'span', attributes: { 'dir': 'ltr' } }, - - /* Object styles */ - - { - name: 'Styled Image (left)', - element: 'img', - attributes: { 'class': 'left' } - }, - - { - name: 'Styled Image (right)', - element: 'img', - attributes: { 'class': 'right' } - }, - - { - name: 'Compact Table', - element: 'table', - attributes: { - cellpadding: '5', - cellspacing: '0', - border: '1', - bordercolor: '#ccc' - }, - styles: { - 'border-collapse': 'collapse' - } - }, - - { name: 'Borderless Table', element: 'table', styles: { 'border-style': 'hidden', 'background-color': '#E6E6FA' } }, - { name: 'Square Bulleted List', element: 'ul', styles: { 'list-style-type': 'square' } }, - - /* Widget styles */ - - { name: 'Clean Image', type: 'widget', widget: 'image', attributes: { 'class': 'image-clean' } }, - { name: 'Grayscale Image', type: 'widget', widget: 'image', attributes: { 'class': 'image-grayscale' } }, - - { name: 'Featured Snippet', type: 'widget', widget: 'codeSnippet', attributes: { 'class': 'code-featured' } }, - - { name: 'Featured Formula', type: 'widget', widget: 'mathjax', attributes: { 'class': 'math-featured' } }, - - { name: '240p', type: 'widget', widget: 'embedSemantic', attributes: { 'class': 'embed-240p' }, group: 'size' }, - { name: '360p', type: 'widget', widget: 'embedSemantic', attributes: { 'class': 'embed-360p' }, group: 'size' }, - { name: '480p', type: 'widget', widget: 'embedSemantic', attributes: { 'class': 'embed-480p' }, group: 'size' }, - { name: '720p', type: 'widget', widget: 'embedSemantic', attributes: { 'class': 'embed-720p' }, group: 'size' }, - { name: '1080p', type: 'widget', widget: 'embedSemantic', attributes: { 'class': 'embed-1080p' }, group: 'size' }, - - // Adding space after the style name is an intended workaround. For now, there - // is no option to create two styles with the same name for different widget types. See http://dev.ckeditor.com/ticket/16664. - { name: '240p ', type: 'widget', widget: 'embed', attributes: { 'class': 'embed-240p' }, group: 'size' }, - { name: '360p ', type: 'widget', widget: 'embed', attributes: { 'class': 'embed-360p' }, group: 'size' }, - { name: '480p ', type: 'widget', widget: 'embed', attributes: { 'class': 'embed-480p' }, group: 'size' }, - { name: '720p ', type: 'widget', widget: 'embed', attributes: { 'class': 'embed-720p' }, group: 'size' }, - { name: '1080p ', type: 'widget', widget: 'embed', attributes: { 'class': 'embed-1080p' }, group: 'size' } - -] ); - diff --git a/admin/plugins/datatables/dataTables.bootstrap.css b/admin/plugins/datatables/dataTables.bootstrap.css deleted file mode 100644 index 27036b0..0000000 --- a/admin/plugins/datatables/dataTables.bootstrap.css +++ /dev/null @@ -1,223 +0,0 @@ -div.dataTables_length label { - font-weight: normal; - float: left; - text-align: left; -} - -div.dataTables_length select { - width: 75px; -} - -div.dataTables_filter label { - font-weight: normal; - float: right; -} - -div.dataTables_filter input { - width: 16em; -} - -div.dataTables_info { - padding-top: 8px; -} - -div.dataTables_paginate { - float: right; - margin: 0; -} - -div.dataTables_paginate ul.pagination { - margin: 2px 0; - white-space: nowrap; -} - -table.dataTable, -table.dataTable td, -table.dataTable th { - -webkit-box-sizing: content-box; - -moz-box-sizing: content-box; - box-sizing: content-box; -} - - -table.dataTable { - clear: both; - margin-top: 6px !important; - margin-bottom: 6px !important; - max-width: none !important; -} - -table.dataTable thead .sorting, -table.dataTable thead .sorting_asc, -table.dataTable thead .sorting_desc, -table.dataTable thead .sorting_asc_disabled, -table.dataTable thead .sorting_desc_disabled { - cursor: pointer; -} - -table.dataTable thead .sorting { background: url('images/sort_both.png') no-repeat center right; } -table.dataTable thead .sorting_asc { background: url('images/sort_asc.png') no-repeat center right; } -table.dataTable thead .sorting_desc { background: url('images/sort_desc.png') no-repeat center right; } - -table.dataTable thead .sorting_asc_disabled { background: url('images/sort_asc_disabled.png') no-repeat center right; } -table.dataTable thead .sorting_desc_disabled { background: url('images/sort_desc_disabled.png') no-repeat center right; } - -table.dataTable th:active { - outline: none; -} - -/* Scrolling */ -div.dataTables_scrollHead table { - margin-bottom: 0 !important; - border-bottom-left-radius: 0; - border-bottom-right-radius: 0; -} - -div.dataTables_scrollHead table thead tr:last-child th:first-child, -div.dataTables_scrollHead table thead tr:last-child td:first-child { - border-bottom-left-radius: 0 !important; - border-bottom-right-radius: 0 !important; -} - -div.dataTables_scrollBody table { - border-top: none; - margin-top: 0 !important; - margin-bottom: 0 !important; -} - -div.dataTables_scrollBody tbody tr:first-child th, -div.dataTables_scrollBody tbody tr:first-child td { - border-top: none; -} - -div.dataTables_scrollFoot table { - margin-top: 0 !important; - border-top: none; -} - - - - -/* - * TableTools styles - */ -.table tbody tr.active td, -.table tbody tr.active th { - background-color: #08C; - color: white; -} - -.table tbody tr.active:hover td, -.table tbody tr.active:hover th { - background-color: #0075b0 !important; -} - -.table tbody tr.active a { - color: white; -} - -.table-striped tbody tr.active:nth-child(odd) td, -.table-striped tbody tr.active:nth-child(odd) th { - background-color: #017ebc; -} - -table.DTTT_selectable tbody tr { - cursor: pointer; -} - -div.DTTT .btn { - color: #333 !important; - font-size: 12px; -} - -div.DTTT .btn:hover { - text-decoration: none !important; -} - -ul.DTTT_dropdown.dropdown-menu { - z-index: 2003; -} - -ul.DTTT_dropdown.dropdown-menu a { - color: #333 !important; /* needed only when demo_page.css is included */ -} - -ul.DTTT_dropdown.dropdown-menu li { - position: relative; -} - -ul.DTTT_dropdown.dropdown-menu li:hover a { - background-color: #0088cc; - color: white !important; -} - -div.DTTT_collection_background { - z-index: 2002; -} - -/* TableTools information display */ -div.DTTT_print_info.modal { - height: 150px; - margin-top: -75px; - text-align: center; -} - -div.DTTT_print_info h6 { - font-weight: normal; - font-size: 28px; - line-height: 28px; - margin: 1em; -} - -div.DTTT_print_info p { - font-size: 14px; - line-height: 20px; -} - - - -/* - * FixedColumns styles - */ -div.DTFC_LeftHeadWrapper table, -div.DTFC_LeftFootWrapper table, -div.DTFC_RightHeadWrapper table, -div.DTFC_RightFootWrapper table, -table.DTFC_Cloned tr.even { - background-color: white; -} - -div.DTFC_RightHeadWrapper table , -div.DTFC_LeftHeadWrapper table { - margin-bottom: 0 !important; - border-top-right-radius: 0 !important; - border-bottom-left-radius: 0 !important; - border-bottom-right-radius: 0 !important; -} - -div.DTFC_RightHeadWrapper table thead tr:last-child th:first-child, -div.DTFC_RightHeadWrapper table thead tr:last-child td:first-child, -div.DTFC_LeftHeadWrapper table thead tr:last-child th:first-child, -div.DTFC_LeftHeadWrapper table thead tr:last-child td:first-child { - border-bottom-left-radius: 0 !important; - border-bottom-right-radius: 0 !important; -} - -div.DTFC_RightBodyWrapper table, -div.DTFC_LeftBodyWrapper table { - border-top: none; - margin-bottom: 0 !important; -} - -div.DTFC_RightBodyWrapper tbody tr:first-child th, -div.DTFC_RightBodyWrapper tbody tr:first-child td, -div.DTFC_LeftBodyWrapper tbody tr:first-child th, -div.DTFC_LeftBodyWrapper tbody tr:first-child td { - border-top: none; -} - -div.DTFC_RightFootWrapper table, -div.DTFC_LeftFootWrapper table { - border-top: none; -} - diff --git a/admin/plugins/datatables/dataTables.bootstrap.js b/admin/plugins/datatables/dataTables.bootstrap.js deleted file mode 100644 index 87b317c..0000000 --- a/admin/plugins/datatables/dataTables.bootstrap.js +++ /dev/null @@ -1,250 +0,0 @@ -/* Set the defaults for DataTables initialisation */ -$.extend( true, $.fn.dataTable.defaults, { - "sDom": - "<'row'<'col-xs-6'l><'col-xs-6'f>r>"+ - "t"+ - "<'row'<'col-xs-6'i><'col-xs-6'p>>", - "oLanguage": { - "sLengthMenu": "_MENU_ records per page" - } -} ); - - -/* Default class modification */ -$.extend( $.fn.dataTableExt.oStdClasses, { - "sWrapper": "dataTables_wrapper form-inline", - "sFilterInput": "form-control input-sm", - "sLengthSelect": "form-control input-sm" -} ); - -// In 1.10 we use the pagination renderers to draw the Bootstrap paging, -// rather than custom plug-in -if ( $.fn.dataTable.Api ) { - $.fn.dataTable.defaults.renderer = 'bootstrap'; - $.fn.dataTable.ext.renderer.pageButton.bootstrap = function ( settings, host, idx, buttons, page, pages ) { - var api = new $.fn.dataTable.Api( settings ); - var classes = settings.oClasses; - var lang = settings.oLanguage.oPaginate; - var btnDisplay, btnClass; - - var attach = function( container, buttons ) { - var i, ien, node, button; - var clickHandler = function ( e ) { - e.preventDefault(); - if ( e.data.action !== 'ellipsis' ) { - api.page( e.data.action ).draw( false ); - } - }; - - for ( i=0, ien=buttons.length ; i<ien ; i++ ) { - button = buttons[i]; - - if ( $.isArray( button ) ) { - attach( container, button ); - } - else { - btnDisplay = ''; - btnClass = ''; - - switch ( button ) { - case 'ellipsis': - btnDisplay = '&hellip;'; - btnClass = 'disabled'; - break; - - case 'first': - btnDisplay = lang.sFirst; - btnClass = button + (page > 0 ? - '' : ' disabled'); - break; - - case 'previous': - btnDisplay = lang.sPrevious; - btnClass = button + (page > 0 ? - '' : ' disabled'); - break; - - case 'next': - btnDisplay = lang.sNext; - btnClass = button + (page < pages-1 ? - '' : ' disabled'); - break; - - case 'last': - btnDisplay = lang.sLast; - btnClass = button + (page < pages-1 ? - '' : ' disabled'); - break; - - default: - btnDisplay = button + 1; - btnClass = page === button ? - 'active' : ''; - break; - } - - if ( btnDisplay ) { - node = $('<li>', { - 'class': classes.sPageButton+' '+btnClass, - 'aria-controls': settings.sTableId, - 'tabindex': settings.iTabIndex, - 'id': idx === 0 && typeof button === 'string' ? - settings.sTableId +'_'+ button : - null - } ) - .append( $('<a>', { - 'href': '#' - } ) - .html( btnDisplay ) - ) - .appendTo( container ); - - settings.oApi._fnBindAction( - node, {action: button}, clickHandler - ); - } - } - } - }; - - attach( - $(host).empty().html('<ul class="pagination"/>').children('ul'), - buttons - ); - } -} -else { - // Integration for 1.9- - $.fn.dataTable.defaults.sPaginationType = 'bootstrap'; - - /* API method to get paging information */ - $.fn.dataTableExt.oApi.fnPagingInfo = function ( oSettings ) - { - return { - "iStart": oSettings._iDisplayStart, - "iEnd": oSettings.fnDisplayEnd(), - "iLength": oSettings._iDisplayLength, - "iTotal": oSettings.fnRecordsTotal(), - "iFilteredTotal": oSettings.fnRecordsDisplay(), - "iPage": oSettings._iDisplayLength === -1 ? - 0 : Math.ceil( oSettings._iDisplayStart / oSettings._iDisplayLength ), - "iTotalPages": oSettings._iDisplayLength === -1 ? - 0 : Math.ceil( oSettings.fnRecordsDisplay() / oSettings._iDisplayLength ) - }; - }; - - /* Bootstrap style pagination control */ - $.extend( $.fn.dataTableExt.oPagination, { - "bootstrap": { - "fnInit": function( oSettings, nPaging, fnDraw ) { - var oLang = oSettings.oLanguage.oPaginate; - var fnClickHandler = function ( e ) { - e.preventDefault(); - if ( oSettings.oApi._fnPageChange(oSettings, e.data.action) ) { - fnDraw( oSettings ); - } - }; - - $(nPaging).append( - '<ul class="pagination">'+ - '<li class="prev disabled"><a href="#">&larr; '+oLang.sPrevious+'</a></li>'+ - '<li class="next disabled"><a href="#">'+oLang.sNext+' &rarr; </a></li>'+ - '</ul>' - ); - var els = $('a', nPaging); - $(els[0]).bind( 'click.DT', { action: "previous" }, fnClickHandler ); - $(els[1]).bind( 'click.DT', { action: "next" }, fnClickHandler ); - }, - - "fnUpdate": function ( oSettings, fnDraw ) { - var iListLength = 5; - var oPaging = oSettings.oInstance.fnPagingInfo(); - var an = oSettings.aanFeatures.p; - var i, ien, j, sClass, iStart, iEnd, iHalf=Math.floor(iListLength/2); - - if ( oPaging.iTotalPages < iListLength) { - iStart = 1; - iEnd = oPaging.iTotalPages; - } - else if ( oPaging.iPage <= iHalf ) { - iStart = 1; - iEnd = iListLength; - } else if ( oPaging.iPage >= (oPaging.iTotalPages-iHalf) ) { - iStart = oPaging.iTotalPages - iListLength + 1; - iEnd = oPaging.iTotalPages; - } else { - iStart = oPaging.iPage - iHalf + 1; - iEnd = iStart + iListLength - 1; - } - - for ( i=0, ien=an.length ; i<ien ; i++ ) { - // Remove the middle elements - $('li:gt(0)', an[i]).filter(':not(:last)').remove(); - - // Add the new list items and their event handlers - for ( j=iStart ; j<=iEnd ; j++ ) { - sClass = (j==oPaging.iPage+1) ? 'class="active"' : ''; - $('<li '+sClass+'><a href="#">'+j+'</a></li>') - .insertBefore( $('li:last', an[i])[0] ) - .bind('click', function (e) { - e.preventDefault(); - oSettings._iDisplayStart = (parseInt($('a', this).text(),10)-1) * oPaging.iLength; - fnDraw( oSettings ); - } ); - } - - // Add / remove disabled classes from the static elements - if ( oPaging.iPage === 0 ) { - $('li:first', an[i]).addClass('disabled'); - } else { - $('li:first', an[i]).removeClass('disabled'); - } - - if ( oPaging.iPage === oPaging.iTotalPages-1 || oPaging.iTotalPages === 0 ) { - $('li:last', an[i]).addClass('disabled'); - } else { - $('li:last', an[i]).removeClass('disabled'); - } - } - } - } - } ); -} - - -/* - * TableTools Bootstrap compatibility - * Required TableTools 2.1+ - */ -if ( $.fn.DataTable.TableTools ) { - // Set the classes that TableTools uses to something suitable for Bootstrap - $.extend( true, $.fn.DataTable.TableTools.classes, { - "container": "DTTT btn-group", - "buttons": { - "normal": "btn btn-default", - "disabled": "disabled" - }, - "collection": { - "container": "DTTT_dropdown dropdown-menu", - "buttons": { - "normal": "", - "disabled": "disabled" - } - }, - "print": { - "info": "DTTT_print_info modal" - }, - "select": { - "row": "active" - } - } ); - - // Have the collection use a bootstrap compatible dropdown - $.extend( true, $.fn.DataTable.TableTools.DEFAULTS.oTags, { - "collection": { - "container": "ul", - "button": "li", - "liner": "a" - } - } ); -} \ No newline at end of file diff --git a/admin/plugins/datatables/fnReloadAjax.js b/admin/plugins/datatables/fnReloadAjax.js deleted file mode 100644 index 7a7dbab..0000000 --- a/admin/plugins/datatables/fnReloadAjax.js +++ /dev/null @@ -1,102 +0,0 @@ -/** - * By default DataTables only uses the sAjaxSource variable at initialisation - * time, however it can be useful to re-read an Ajax source and have the table - * update. Typically you would need to use the `fnClearTable()` and - * `fnAddData()` functions, however this wraps it all up in a single function - * call. - * - * DataTables 1.10 provides the `dt-api ajax.url()` and `dt-api ajax.reload()` - * methods, built-in, to give the same functionality as this plug-in. As such - * this method is marked deprecated, but is available for use with legacy - * version of DataTables. Please use the new API if you are used DataTables 1.10 - * or newer. - * - * @name fnReloadAjax - * @summary Reload the table's data from the Ajax source - * @author [Allan Jardine](http://sprymedia.co.uk) - * @deprecated - * - * @param {string} [sNewSource] URL to get the data from. If not give, the - * previously used URL is used. - * @param {function} [fnCallback] Callback that is executed when the table has - * redrawn with the new data - * @param {boolean} [bStandingRedraw=false] Standing redraw (don't changing the - * paging) - * - * @example - * var table = $('#example').dataTable(); - * - * // Example call to load a new file - * table.fnReloadAjax( 'media/examples_support/json_source2.txt' ); - * - * // Example call to reload from original file - * table.fnReloadAjax(); - */ - -jQuery.fn.dataTableExt.oApi.fnReloadAjax = function ( oSettings, sNewSource, fnCallback, bStandingRedraw ) -{ - // DataTables 1.10 compatibility - if 1.10 then `versionCheck` exists. - // 1.10's API has ajax reloading built in, so we use those abilities - // directly. - if ( jQuery.fn.dataTable.versionCheck ) { - var api = new jQuery.fn.dataTable.Api( oSettings ); - - if ( sNewSource ) { - api.ajax.url( sNewSource ).load( fnCallback, !bStandingRedraw ); - } - else { - api.ajax.reload( fnCallback, !bStandingRedraw ); - } - return; - } - - if ( sNewSource !== undefined && sNewSource !== null ) { - oSettings.sAjaxSource = sNewSource; - } - - // Server-side processing should just call fnDraw - if ( oSettings.oFeatures.bServerSide ) { - this.fnDraw(); - return; - } - - this.oApi._fnProcessingDisplay( oSettings, true ); - var that = this; - var iStart = oSettings._iDisplayStart; - var aData = []; - - this.oApi._fnServerParams( oSettings, aData ); - - oSettings.fnServerData.call( oSettings.oInstance, oSettings.sAjaxSource, aData, function(json) { - /* Clear the old information from the table */ - that.oApi._fnClearTable( oSettings ); - - /* Got the data - add it to the table */ - var aData = (oSettings.sAjaxDataProp !== "") ? - that.oApi._fnGetObjectDataFn( oSettings.sAjaxDataProp )( json ) : json; - - for ( var i=0 ; i<aData.length ; i++ ) - { - that.oApi._fnAddData( oSettings, aData[i] ); - } - - oSettings.aiDisplay = oSettings.aiDisplayMaster.slice(); - - that.fnDraw(); - - if ( bStandingRedraw === true ) - { - oSettings._iDisplayStart = iStart; - that.oApi._fnCalculateEnd( oSettings ); - that.fnDraw( false ); - } - - that.oApi._fnProcessingDisplay( oSettings, false ); - - /* Callback user function - for event handlers etc */ - if ( typeof fnCallback == 'function' && fnCallback !== null ) - { - fnCallback( oSettings ); - } - }, oSettings ); -}; \ No newline at end of file diff --git a/admin/plugins/datatables/images/sort_asc.png b/admin/plugins/datatables/images/sort_asc.png deleted file mode 100644 index a88d797..0000000 Binary files a/admin/plugins/datatables/images/sort_asc.png and /dev/null differ diff --git a/admin/plugins/datatables/images/sort_asc_disabled.png b/admin/plugins/datatables/images/sort_asc_disabled.png deleted file mode 100644 index 4e144cf..0000000 Binary files a/admin/plugins/datatables/images/sort_asc_disabled.png and /dev/null differ diff --git a/admin/plugins/datatables/images/sort_both.png b/admin/plugins/datatables/images/sort_both.png deleted file mode 100644 index 1867040..0000000 Binary files a/admin/plugins/datatables/images/sort_both.png and /dev/null differ diff --git a/admin/plugins/datatables/images/sort_desc.png b/admin/plugins/datatables/images/sort_desc.png deleted file mode 100644 index def071e..0000000 Binary files a/admin/plugins/datatables/images/sort_desc.png and /dev/null differ diff --git a/admin/plugins/datatables/images/sort_desc_disabled.png b/admin/plugins/datatables/images/sort_desc_disabled.png deleted file mode 100644 index 7824973..0000000 Binary files a/admin/plugins/datatables/images/sort_desc_disabled.png and /dev/null differ diff --git a/admin/plugins/datatables/jquery.dataTables.js b/admin/plugins/datatables/jquery.dataTables.js deleted file mode 100644 index 5907efa..0000000 --- a/admin/plugins/datatables/jquery.dataTables.js +++ /dev/null @@ -1,2 +0,0 @@ -/*! DataTables 1.10.11 Š2008-2015 SpryMedia Ltd - datatables.net/license */ -(function(h){"function"===typeof define&&define.amd?define(["jquery"],function(D){return h(D,window,document)}):"object"===typeof exports?module.exports=function(D,I){D||(D=window);I||(I="undefined"!==typeof window?require("jquery"):require("jquery")(D));return h(I,D,D.document)}:h(jQuery,window,document)})(function(h,D,I,k){function Y(a){var b,c,d={};h.each(a,function(e){if((b=e.match(/^([^A-Z]+?)([A-Z])/))&&-1!=="a aa ai ao as b fn i m o s ".indexOf(b[1]+" "))c=e.replace(b[0],b[2].toLowerCase()),d[c]=e,"o"===b[1]&&Y(a[e])});a._hungarianMap=d}function K(a,b,c){a._hungarianMap||Y(a);var d;h.each(b,function(e){d=a._hungarianMap[e];if(d!==k&&(c||b[d]===k))"o"===d.charAt(0)?(b[d]||(b[d]={}),h.extend(!0,b[d],b[e]),K(a[d],b[d],c)):b[d]=b[e]})}function Fa(a){var b=m.defaults.oLanguage,c=a.sZeroRecords;!a.sEmptyTable&&(c&&"No data available in table"===b.sEmptyTable)&&E(a,a,"sZeroRecords","sEmptyTable");!a.sLoadingRecords&&(c&&"Loading..."===b.sLoadingRecords)&&E(a,a,"sZeroRecords","sLoadingRecords");a.sInfoThousands&&(a.sThousands=a.sInfoThousands);(a=a.sDecimal)&&db(a)}function eb(a){A(a,"ordering","bSort");A(a,"orderMulti","bSortMulti");A(a,"orderClasses","bSortClasses");A(a,"orderCellsTop","bSortCellsTop");A(a,"order","aaSorting");A(a,"orderFixed","aaSortingFixed");A(a,"paging","bPaginate");A(a,"pagingType","sPaginationType");A(a,"pageLength","iDisplayLength");A(a,"searching","bFilter");"boolean"===typeof a.sScrollX&&(a.sScrollX=a.sScrollX?"100%":"");"boolean"===typeof a.scrollX&&(a.scrollX=a.scrollX?"100%":"");if(a=a.aoSearchCols)for(var b=0,c=a.length;b<c;b++)a[b]&&K(m.models.oSearch,a[b])}function fb(a){A(a,"orderable","bSortable");A(a,"orderData","aDataSort");A(a,"orderSequence","asSorting");A(a,"orderDataType","sortDataType");var b=a.aDataSort;b&&!h.isArray(b)&&(a.aDataSort=[b])}function gb(a){if(!m.__browser){var b={};m.__browser=b;var c=h("<div/>").css({position:"fixed",top:0,left:0,height:1,width:1,overflow:"hidden"}).append(h("<div/>").css({position:"absolute",top:1,left:1,width:100,overflow:"scroll"}).append(h("<div/>").css({width:"100%",height:10}))).appendTo("body"),d=c.children(),e=d.children();b.barWidth=d[0].offsetWidth-d[0].clientWidth;b.bScrollOversize=100===e[0].offsetWidth&&100!==d[0].clientWidth;b.bScrollbarLeft=1!==Math.round(e.offset().left);b.bBounding=c[0].getBoundingClientRect().width?!0:!1;c.remove()}h.extend(a.oBrowser,m.__browser);a.oScroll.iBarWidth=m.__browser.barWidth}function hb(a,b,c,d,e,f){var g,j=!1;c!==k&&(g=c,j=!0);for(;d!==e;)a.hasOwnProperty(d)&& (g=j?b(g,a[d],d,a):a[d],j=!0,d+=f);return g}function Ga(a,b){var c=m.defaults.column,d=a.aoColumns.length,c=h.extend({},m.models.oColumn,c,{nTh:b?b:I.createElement("th"),sTitle:c.sTitle?c.sTitle:b?b.innerHTML:"",aDataSort:c.aDataSort?c.aDataSort:[d],mData:c.mData?c.mData:d,idx:d});a.aoColumns.push(c);c=a.aoPreSearchCols;c[d]=h.extend({},m.models.oSearch,c[d]);ja(a,d,h(b).data())}function ja(a,b,c){var b=a.aoColumns[b],d=a.oClasses,e=h(b.nTh);if(!b.sWidthOrig){b.sWidthOrig=e.attr("width")||null;var f=(e.attr("style")||"").match(/width:\s*(\d+[pxem%]+)/);f&&(b.sWidthOrig=f[1])}c!==k&&null!==c&&(fb(c),K(m.defaults.column,c),c.mDataProp!==k&&!c.mData&&(c.mData=c.mDataProp),c.sType&&(b._sManualType=c.sType),c.className&&!c.sClass&&(c.sClass=c.className),h.extend(b,c),E(b,c,"sWidth","sWidthOrig"),c.iDataSort!==k&&(b.aDataSort=[c.iDataSort]),E(b,c,"aDataSort"));var g=b.mData,j=Q(g),i=b.mRender?Q(b.mRender):null,c=function(a){return"string"===typeof a&&-1!==a.indexOf("@")};b._bAttrSrc=h.isPlainObject(g)&&(c(g.sort)||c(g.type)||c(g.filter));b._setter=null;b.fnGetData=function(a,b,c){var d=j(a,b,k,c);return i&&b?i(d,b,a,c):d};b.fnSetData=function(a,b,c){return R(g)(a,b,c)};"number"!==typeof g&&(a._rowReadObject=!0);a.oFeatures.bSort||(b.bSortable=!1,e.addClass(d.sSortableNone));a=-1!==h.inArray("asc",b.asSorting);c=-1!==h.inArray("desc",b.asSorting);!b.bSortable||!a&&!c?(b.sSortingClass=d.sSortableNone,b.sSortingClassJUI=""):a&&!c?(b.sSortingClass=d.sSortableAsc,b.sSortingClassJUI=d.sSortJUIAscAllowed):!a&&c?(b.sSortingClass=d.sSortableDesc,b.sSortingClassJUI=d.sSortJUIDescAllowed):(b.sSortingClass=d.sSortable,b.sSortingClassJUI=d.sSortJUI)}function U(a){if(!1!==a.oFeatures.bAutoWidth){var b=a.aoColumns;Ha(a);for(var c=0,d=b.length;c<d;c++)b[c].nTh.style.width=b[c].sWidth}b=a.oScroll;(""!==b.sY||""!==b.sX)&&ka(a);u(a,null,"column-sizing",[a])}function Z(a,b){var c=la(a,"bVisible");return"number"===typeof c[b]?c[b]:null}function $(a,b){var c=la(a,"bVisible"),c=h.inArray(b,c);return-1!==c?c:null}function aa(a){return h(F(a.aoColumns,"nTh")).filter(":visible").length}function la(a,b){var c=[];h.map(a.aoColumns,function(a,e){a[b]&&c.push(e)});return c}function Ia(a){var b=a.aoColumns,c=a.aoData,d=m.ext.type.detect,e,f,g,j,i,h,l,q,t;e=0;for(f=b.length;e<f;e++)if(l=b[e],t=[],!l.sType&&l._sManualType)l.sType=l._sManualType;else if(!l.sType){g=0;for(j=d.length;g<j;g++){i=0;for(h=c.length;i<h;i++){t[i]===k&&(t[i]=B(a,i,e,"type"));q=d[g](t[i],a);if(!q&&g!==d.length-1)break;if("html"===q)break}if(q){l.sType=q;break}}l.sType||(l.sType="string")}}function ib(a,b,c,d){var e,f,g,j,i,n,l=a.aoColumns;if(b)for(e=b.length-1;0<=e;e--){n=b[e];var q=n.targets!==k?n.targets:n.aTargets;h.isArray(q)||(q=[q]);f=0;for(g=q.length;f<g;f++)if("number"===typeof q[f]&&0<=q[f]){for(;l.length<=q[f];)Ga(a);d(q[f],n)}else if("number"===typeof q[f]&&0>q[f])d(l.length+q[f],n);else if("string"===typeof q[f]){j=0;for(i=l.length;j<i;j++)("_all"==q[f]||h(l[j].nTh).hasClass(q[f]))&&d(j,n)}}if(c){e=0;for(a=c.length;e<a;e++)d(e,c[e])}}function N(a,b,c,d){var e=a.aoData.length,f=h.extend(!0,{},m.models.oRow,{src:c?"dom":"data",idx:e});f._aData=b;a.aoData.push(f);for(var g=a.aoColumns,j=0,i=g.length;j<i;j++)g[j].sType=null;a.aiDisplayMaster.push(e);b=a.rowIdFn(b);b!==k&&(a.aIds[b]=f);(c||!a.oFeatures.bDeferRender)&&Ja(a,e,c,d);return e}function ma(a,b){var c;b instanceof h||(b=h(b));return b.map(function(b,e){c=Ka(a,e);return N(a,c.data,e,c.cells)})}function B(a,b,c,d){var e=a.iDraw,f=a.aoColumns[c],g=a.aoData[b]._aData,j=f.sDefaultContent, i=f.fnGetData(g,d,{settings:a,row:b,col:c});if(i===k)return a.iDrawError!=e&&null===j&&(L(a,0,"Requested unknown parameter "+("function"==typeof f.mData?"{function}":"'"+f.mData+"'")+" for row "+b+", column "+c,4),a.iDrawError=e),j;if((i===g||null===i)&&null!==j&&d!==k)i=j;else if("function"===typeof i)return i.call(g);return null===i&&"display"==d?"":i}function jb(a,b,c,d){a.aoColumns[c].fnSetData(a.aoData[b]._aData,d,{settings:a,row:b,col:c})}function La(a){return h.map(a.match(/(\\.|[^\.])+/g)|| [""],function(a){return a.replace(/\\./g,".")})}function Q(a){if(h.isPlainObject(a)){var b={};h.each(a,function(a,c){c&&(b[a]=Q(c))});return function(a,c,f,g){var j=b[c]||b._;return j!==k?j(a,c,f,g):a}}if(null===a)return function(a){return a};if("function"===typeof a)return function(b,c,f,g){return a(b,c,f,g)};if("string"===typeof a&&(-1!==a.indexOf(".")||-1!==a.indexOf("[")||-1!==a.indexOf("("))){var c=function(a,b,f){var g,j;if(""!==f){j=La(f);for(var i=0,n=j.length;i<n;i++){f=j[i].match(ba);g=j[i].match(V);if(f){j[i]=j[i].replace(ba,"");""!==j[i]&&(a=a[j[i]]);g=[];j.splice(0,i+1);j=j.join(".");if(h.isArray(a)){i=0;for(n=a.length;i<n;i++)g.push(c(a[i],b,j))}a=f[0].substring(1,f[0].length-1);a=""===a?g:g.join(a);break}else if(g){j[i]=j[i].replace(V,"");a=a[j[i]]();continue}if(null===a||a[j[i]]===k)return k;a=a[j[i]]}}return a};return function(b,e){return c(b,e,a)}}return function(b){return b[a]}}function R(a){if(h.isPlainObject(a))return R(a._);if(null===a)return function(){};if("function"===typeof a)return function(b,d,e){a(b,"set",d,e)};if("string"===typeof a&&(-1!==a.indexOf(".")||-1!==a.indexOf("[")||-1!==a.indexOf("("))){var b=function(a,d,e){var e=La(e),f;f=e[e.length-1];for(var g,j,i=0,n=e.length-1;i<n;i++){g=e[i].match(ba);j=e[i].match(V);if(g){e[i]=e[i].replace(ba,"");a[e[i]]=[];f=e.slice();f.splice(0,i+1);g=f.join(".");if(h.isArray(d)){j=0;for(n=d.length;j<n;j++)f={},b(f,d[j],g),a[e[i]].push(f)}else a[e[i]]=d;return}j&&(e[i]=e[i].replace(V,""),a=a[e[i]](d));if(null===a[e[i]]||a[e[i]]===k)a[e[i]]={};a=a[e[i]]}if(f.match(V))a[f.replace(V,"")](d);else a[f.replace(ba,"")]=d};return function(c,d){return b(c,d,a)}}return function(b,d){b[a]=d}}function Ma(a){return F(a.aoData,"_aData")}function na(a){a.aoData.length=0;a.aiDisplayMaster.length=0;a.aiDisplay.length=0;a.aIds={}}function oa(a,b,c){for(var d=-1,e=0,f=a.length;e<f;e++)a[e]==b?d=e:a[e]>b&&a[e]--; -1!=d&&c===k&&a.splice(d,1)}function ca(a,b,c,d){var e=a.aoData[b],f,g=function(c,d){for(;c.childNodes.length;)c.removeChild(c.firstChild);c.innerHTML=B(a,b,d,"display")};if("dom"===c||(!c||"auto"===c)&&"dom"===e.src)e._aData=Ka(a,e,d,d===k?k:e._aData).data;else{var j=e.anCells;if(j)if(d!==k)g(j[d],d);else{c=0;for(f=j.length;c<f;c++)g(j[c],c)}}e._aSortData=null;e._aFilterData=null;g=a.aoColumns;if(d!==k)g[d].sType=null;else{c=0;for(f=g.length;c<f;c++)g[c].sType=null;Na(a,e)}}function Ka(a,b,c,d){var e=[],f=b.firstChild,g,j,i=0,n,l=a.aoColumns,q=a._rowReadObject,d=d!==k?d:q?{}:[],t=function(a,b){if("string"===typeof a){var c=a.indexOf("@");-1!==c&&(c=a.substring(c+1),R(a)(d,b.getAttribute(c)))}},S=function(a){if(c===k||c===i)j=l[i],n=h.trim(a.innerHTML),j&&j._bAttrSrc?(R(j.mData._)(d,n),t(j.mData.sort,a),t(j.mData.type,a),t(j.mData.filter,a)):q?(j._setter||(j._setter=R(j.mData)),j._setter(d,n)):d[i]=n;i++};if(f)for(;f;){g=f.nodeName.toUpperCase();if("TD"==g||"TH"==g)S(f),e.push(f);f=f.nextSibling}else{e=b.anCells;f=0;for(g=e.length;f<g;f++)S(e[f])}if(b=b.firstChild?b:b.nTr)(b=b.getAttribute("id"))&&R(a.rowId)(d,b);return{data:d,cells:e}}function Ja(a,b,c,d){var e=a.aoData[b],f=e._aData,g=[],j,i,n,l,q;if(null===e.nTr){j=c||I.createElement("tr");e.nTr=j;e.anCells=g;j._DT_RowIndex=b;Na(a,e);l=0;for(q=a.aoColumns.length;l<q;l++){n=a.aoColumns[l];i=c?d[l]:I.createElement(n.sCellType);i._DT_CellIndex={row:b,column:l};g.push(i);if((!c||n.mRender||n.mData!==l)&&(!h.isPlainObject(n.mData)||n.mData._!==l+".display"))i.innerHTML=B(a,b,l,"display");n.sClass&&(i.className+=" "+n.sClass);n.bVisible&&!c?j.appendChild(i):!n.bVisible&&c&&i.parentNode.removeChild(i); n.fnCreatedCell&&n.fnCreatedCell.call(a.oInstance,i,B(a,b,l),f,b,l)}u(a,"aoRowCreatedCallback",null,[j,f,b])}e.nTr.setAttribute("role","row")}function Na(a,b){var c=b.nTr,d=b._aData;if(c){var e=a.rowIdFn(d);e&&(c.id=e);d.DT_RowClass&&(e=d.DT_RowClass.split(" "),b.__rowc=b.__rowc?pa(b.__rowc.concat(e)):e,h(c).removeClass(b.__rowc.join(" ")).addClass(d.DT_RowClass));d.DT_RowAttr&&h(c).attr(d.DT_RowAttr);d.DT_RowData&&h(c).data(d.DT_RowData)}}function kb(a){var b,c,d,e,f,g=a.nTHead,j=a.nTFoot,i=0=== h("th, td",g).length,n=a.oClasses,l=a.aoColumns;i&&(e=h("<tr/>").appendTo(g));b=0;for(c=l.length;b<c;b++)f=l[b],d=h(f.nTh).addClass(f.sClass),i&&d.appendTo(e),a.oFeatures.bSort&&(d.addClass(f.sSortingClass),!1!==f.bSortable&&(d.attr("tabindex",a.iTabIndex).attr("aria-controls",a.sTableId),Oa(a,f.nTh,b))),f.sTitle!=d[0].innerHTML&&d.html(f.sTitle),Pa(a,"header")(a,d,f,n);i&&da(a.aoHeader,g);h(g).find(">tr").attr("role","row");h(g).find(">tr>th, >tr>td").addClass(n.sHeaderTH);h(j).find(">tr>th, >tr>td").addClass(n.sFooterTH); if(null!==j){a=a.aoFooter[0];b=0;for(c=a.length;b<c;b++)f=l[b],f.nTf=a[b].cell,f.sClass&&h(f.nTf).addClass(f.sClass)}}function ea(a,b,c){var d,e,f,g=[],j=[],i=a.aoColumns.length,n;if(b){c===k&&(c=!1);d=0;for(e=b.length;d<e;d++){g[d]=b[d].slice();g[d].nTr=b[d].nTr;for(f=i-1;0<=f;f--)!a.aoColumns[f].bVisible&&!c&&g[d].splice(f,1);j.push([])}d=0;for(e=g.length;d<e;d++){if(a=g[d].nTr)for(;f=a.firstChild;)a.removeChild(f);f=0;for(b=g[d].length;f<b;f++)if(n=i=1,j[d][f]===k){a.appendChild(g[d][f].cell); for(j[d][f]=1;g[d+i]!==k&&g[d][f].cell==g[d+i][f].cell;)j[d+i][f]=1,i++;for(;g[d][f+n]!==k&&g[d][f].cell==g[d][f+n].cell;){for(c=0;c<i;c++)j[d+c][f+n]=1;n++}h(g[d][f].cell).attr("rowspan",i).attr("colspan",n)}}}}function O(a){var b=u(a,"aoPreDrawCallback","preDraw",[a]);if(-1!==h.inArray(!1,b))C(a,!1);else{var b=[],c=0,d=a.asStripeClasses,e=d.length,f=a.oLanguage,g=a.iInitDisplayStart,j="ssp"==y(a),i=a.aiDisplay;a.bDrawing=!0;g!==k&&-1!==g&&(a._iDisplayStart=j?g:g>=a.fnRecordsDisplay()?0:g,a.iInitDisplayStart= -1);var g=a._iDisplayStart,n=a.fnDisplayEnd();if(a.bDeferLoading)a.bDeferLoading=!1,a.iDraw++,C(a,!1);else if(j){if(!a.bDestroying&&!lb(a))return}else a.iDraw++;if(0!==i.length){f=j?a.aoData.length:n;for(j=j?0:g;j<f;j++){var l=i[j],q=a.aoData[l];null===q.nTr&&Ja(a,l);l=q.nTr;if(0!==e){var t=d[c%e];q._sRowStripe!=t&&(h(l).removeClass(q._sRowStripe).addClass(t),q._sRowStripe=t)}u(a,"aoRowCallback",null,[l,q._aData,c,j]);b.push(l);c++}}else c=f.sZeroRecords,1==a.iDraw&&"ajax"==y(a)?c=f.sLoadingRecords: f.sEmptyTable&&0===a.fnRecordsTotal()&&(c=f.sEmptyTable),b[0]=h("<tr/>",{"class":e?d[0]:""}).append(h("<td />",{valign:"top",colSpan:aa(a),"class":a.oClasses.sRowEmpty}).html(c))[0];u(a,"aoHeaderCallback","header",[h(a.nTHead).children("tr")[0],Ma(a),g,n,i]);u(a,"aoFooterCallback","footer",[h(a.nTFoot).children("tr")[0],Ma(a),g,n,i]);d=h(a.nTBody);d.children().detach();d.append(h(b));u(a,"aoDrawCallback","draw",[a]);a.bSorted=!1;a.bFiltered=!1;a.bDrawing=!1}}function T(a,b){var c=a.oFeatures,d=c.bFilter; c.bSort&&mb(a);d?fa(a,a.oPreviousSearch):a.aiDisplay=a.aiDisplayMaster.slice();!0!==b&&(a._iDisplayStart=0);a._drawHold=b;O(a);a._drawHold=!1}function nb(a){var b=a.oClasses,c=h(a.nTable),c=h("<div/>").insertBefore(c),d=a.oFeatures,e=h("<div/>",{id:a.sTableId+"_wrapper","class":b.sWrapper+(a.nTFoot?"":" "+b.sNoFooter)});a.nHolding=c[0];a.nTableWrapper=e[0];a.nTableReinsertBefore=a.nTable.nextSibling;for(var f=a.sDom.split(""),g,j,i,n,l,q,t=0;t<f.length;t++){g=null;j=f[t];if("<"==j){i=h("<div/>")[0]; n=f[t+1];if("'"==n||'"'==n){l="";for(q=2;f[t+q]!=n;)l+=f[t+q],q++;"H"==l?l=b.sJUIHeader:"F"==l&&(l=b.sJUIFooter);-1!=l.indexOf(".")?(n=l.split("."),i.id=n[0].substr(1,n[0].length-1),i.className=n[1]):"#"==l.charAt(0)?i.id=l.substr(1,l.length-1):i.className=l;t+=q}e.append(i);e=h(i)}else if(">"==j)e=e.parent();else if("l"==j&&d.bPaginate&&d.bLengthChange)g=ob(a);else if("f"==j&&d.bFilter)g=pb(a);else if("r"==j&&d.bProcessing)g=qb(a);else if("t"==j)g=rb(a);else if("i"==j&&d.bInfo)g=sb(a);else if("p"== j&&d.bPaginate)g=tb(a);else if(0!==m.ext.feature.length){i=m.ext.feature;q=0;for(n=i.length;q<n;q++)if(j==i[q].cFeature){g=i[q].fnInit(a);break}}g&&(i=a.aanFeatures,i[j]||(i[j]=[]),i[j].push(g),e.append(g))}c.replaceWith(e);a.nHolding=null}function da(a,b){var c=h(b).children("tr"),d,e,f,g,j,i,n,l,q,t;a.splice(0,a.length);f=0;for(i=c.length;f<i;f++)a.push([]);f=0;for(i=c.length;f<i;f++){d=c[f];for(e=d.firstChild;e;){if("TD"==e.nodeName.toUpperCase()||"TH"==e.nodeName.toUpperCase()){l=1*e.getAttribute("colspan"); q=1*e.getAttribute("rowspan");l=!l||0===l||1===l?1:l;q=!q||0===q||1===q?1:q;g=0;for(j=a[f];j[g];)g++;n=g;t=1===l?!0:!1;for(j=0;j<l;j++)for(g=0;g<q;g++)a[f+g][n+j]={cell:e,unique:t},a[f+g].nTr=d}e=e.nextSibling}}}function qa(a,b,c){var d=[];c||(c=a.aoHeader,b&&(c=[],da(c,b)));for(var b=0,e=c.length;b<e;b++)for(var f=0,g=c[b].length;f<g;f++)if(c[b][f].unique&&(!d[f]||!a.bSortCellsTop))d[f]=c[b][f].cell;return d}function ra(a,b,c){u(a,"aoServerParams","serverParams",[b]);if(b&&h.isArray(b)){var d={}, e=/(.*?)\[\]$/;h.each(b,function(a,b){var c=b.name.match(e);c?(c=c[0],d[c]||(d[c]=[]),d[c].push(b.value)):d[b.name]=b.value});b=d}var f,g=a.ajax,j=a.oInstance,i=function(b){u(a,null,"xhr",[a,b,a.jqXHR]);c(b)};if(h.isPlainObject(g)&&g.data){f=g.data;var n=h.isFunction(f)?f(b,a):f,b=h.isFunction(f)&&n?n:h.extend(!0,b,n);delete g.data}n={data:b,success:function(b){var c=b.error||b.sError;c&&L(a,0,c);a.json=b;i(b)},dataType:"json",cache:!1,type:a.sServerMethod,error:function(b,c){var d=u(a,null,"xhr", [a,null,a.jqXHR]);-1===h.inArray(!0,d)&&("parsererror"==c?L(a,0,"Invalid JSON response",1):4===b.readyState&&L(a,0,"Ajax error",7));C(a,!1)}};a.oAjaxData=b;u(a,null,"preXhr",[a,b]);a.fnServerData?a.fnServerData.call(j,a.sAjaxSource,h.map(b,function(a,b){return{name:b,value:a}}),i,a):a.sAjaxSource||"string"===typeof g?a.jqXHR=h.ajax(h.extend(n,{url:g||a.sAjaxSource})):h.isFunction(g)?a.jqXHR=g.call(j,b,i,a):(a.jqXHR=h.ajax(h.extend(n,g)),g.data=f)}function lb(a){return a.bAjaxDataGet?(a.iDraw++,C(a, !0),ra(a,ub(a),function(b){vb(a,b)}),!1):!0}function ub(a){var b=a.aoColumns,c=b.length,d=a.oFeatures,e=a.oPreviousSearch,f=a.aoPreSearchCols,g,j=[],i,n,l,q=W(a);g=a._iDisplayStart;i=!1!==d.bPaginate?a._iDisplayLength:-1;var k=function(a,b){j.push({name:a,value:b})};k("sEcho",a.iDraw);k("iColumns",c);k("sColumns",F(b,"sName").join(","));k("iDisplayStart",g);k("iDisplayLength",i);var S={draw:a.iDraw,columns:[],order:[],start:g,length:i,search:{value:e.sSearch,regex:e.bRegex}};for(g=0;g<c;g++)n=b[g], l=f[g],i="function"==typeof n.mData?"function":n.mData,S.columns.push({data:i,name:n.sName,searchable:n.bSearchable,orderable:n.bSortable,search:{value:l.sSearch,regex:l.bRegex}}),k("mDataProp_"+g,i),d.bFilter&&(k("sSearch_"+g,l.sSearch),k("bRegex_"+g,l.bRegex),k("bSearchable_"+g,n.bSearchable)),d.bSort&&k("bSortable_"+g,n.bSortable);d.bFilter&&(k("sSearch",e.sSearch),k("bRegex",e.bRegex));d.bSort&&(h.each(q,function(a,b){S.order.push({column:b.col,dir:b.dir});k("iSortCol_"+a,b.col);k("sSortDir_"+ a,b.dir)}),k("iSortingCols",q.length));b=m.ext.legacy.ajax;return null===b?a.sAjaxSource?j:S:b?j:S}function vb(a,b){var c=sa(a,b),d=b.sEcho!==k?b.sEcho:b.draw,e=b.iTotalRecords!==k?b.iTotalRecords:b.recordsTotal,f=b.iTotalDisplayRecords!==k?b.iTotalDisplayRecords:b.recordsFiltered;if(d){if(1*d<a.iDraw)return;a.iDraw=1*d}na(a);a._iRecordsTotal=parseInt(e,10);a._iRecordsDisplay=parseInt(f,10);d=0;for(e=c.length;d<e;d++)N(a,c[d]);a.aiDisplay=a.aiDisplayMaster.slice();a.bAjaxDataGet=!1;O(a);a._bInitComplete|| ta(a,b);a.bAjaxDataGet=!0;C(a,!1)}function sa(a,b){var c=h.isPlainObject(a.ajax)&&a.ajax.dataSrc!==k?a.ajax.dataSrc:a.sAjaxDataProp;return"data"===c?b.aaData||b[c]:""!==c?Q(c)(b):b}function pb(a){var b=a.oClasses,c=a.sTableId,d=a.oLanguage,e=a.oPreviousSearch,f=a.aanFeatures,g='<input type="search" class="'+b.sFilterInput+'"/>',j=d.sSearch,j=j.match(/_INPUT_/)?j.replace("_INPUT_",g):j+g,b=h("<div/>",{id:!f.f?c+"_filter":null,"class":b.sFilter}).append(h("<label/>").append(j)),f=function(){var b=!this.value? "":this.value;b!=e.sSearch&&(fa(a,{sSearch:b,bRegex:e.bRegex,bSmart:e.bSmart,bCaseInsensitive:e.bCaseInsensitive}),a._iDisplayStart=0,O(a))},g=null!==a.searchDelay?a.searchDelay:"ssp"===y(a)?400:0,i=h("input",b).val(e.sSearch).attr("placeholder",d.sSearchPlaceholder).bind("keyup.DT search.DT input.DT paste.DT cut.DT",g?ua(f,g):f).bind("keypress.DT",function(a){if(13==a.keyCode)return!1}).attr("aria-controls",c);h(a.nTable).on("search.dt.DT",function(b,c){if(a===c)try{i[0]!==I.activeElement&&i.val(e.sSearch)}catch(d){}}); return b[0]}function fa(a,b,c){var d=a.oPreviousSearch,e=a.aoPreSearchCols,f=function(a){d.sSearch=a.sSearch;d.bRegex=a.bRegex;d.bSmart=a.bSmart;d.bCaseInsensitive=a.bCaseInsensitive};Ia(a);if("ssp"!=y(a)){wb(a,b.sSearch,c,b.bEscapeRegex!==k?!b.bEscapeRegex:b.bRegex,b.bSmart,b.bCaseInsensitive);f(b);for(b=0;b<e.length;b++)xb(a,e[b].sSearch,b,e[b].bEscapeRegex!==k?!e[b].bEscapeRegex:e[b].bRegex,e[b].bSmart,e[b].bCaseInsensitive);yb(a)}else f(b);a.bFiltered=!0;u(a,null,"search",[a])}function yb(a){for(var b= m.ext.search,c=a.aiDisplay,d,e,f=0,g=b.length;f<g;f++){for(var j=[],i=0,n=c.length;i<n;i++)e=c[i],d=a.aoData[e],b[f](a,d._aFilterData,e,d._aData,i)&&j.push(e);c.length=0;h.merge(c,j)}}function xb(a,b,c,d,e,f){if(""!==b)for(var g=a.aiDisplay,d=Qa(b,d,e,f),e=g.length-1;0<=e;e--)b=a.aoData[g[e]]._aFilterData[c],d.test(b)||g.splice(e,1)}function wb(a,b,c,d,e,f){var d=Qa(b,d,e,f),e=a.oPreviousSearch.sSearch,f=a.aiDisplayMaster,g;0!==m.ext.search.length&&(c=!0);g=zb(a);if(0>=b.length)a.aiDisplay=f.slice(); else{if(g||c||e.length>b.length||0!==b.indexOf(e)||a.bSorted)a.aiDisplay=f.slice();b=a.aiDisplay;for(c=b.length-1;0<=c;c--)d.test(a.aoData[b[c]]._sFilterRow)||b.splice(c,1)}}function Qa(a,b,c,d){a=b?a:va(a);c&&(a="^(?=.*?"+h.map(a.match(/"[^"]+"|[^ ]+/g)||[""],function(a){if('"'===a.charAt(0))var b=a.match(/^"(.*)"$/),a=b?b[1]:a;return a.replace('"',"")}).join(")(?=.*?")+").*$");return RegExp(a,d?"i":"")}function va(a){return a.replace(Zb,"\\$1")}function zb(a){var b=a.aoColumns,c,d,e,f,g,j,i,h,l= m.ext.type.search;c=!1;d=0;for(f=a.aoData.length;d<f;d++)if(h=a.aoData[d],!h._aFilterData){j=[];e=0;for(g=b.length;e<g;e++)c=b[e],c.bSearchable?(i=B(a,d,e,"filter"),l[c.sType]&&(i=l[c.sType](i)),null===i&&(i=""),"string"!==typeof i&&i.toString&&(i=i.toString())):i="",i.indexOf&&-1!==i.indexOf("&")&&(wa.innerHTML=i,i=$b?wa.textContent:wa.innerText),i.replace&&(i=i.replace(/[\r\n]/g,"")),j.push(i);h._aFilterData=j;h._sFilterRow=j.join(" ");c=!0}return c}function Ab(a){return{search:a.sSearch,smart:a.bSmart, regex:a.bRegex,caseInsensitive:a.bCaseInsensitive}}function Bb(a){return{sSearch:a.search,bSmart:a.smart,bRegex:a.regex,bCaseInsensitive:a.caseInsensitive}}function sb(a){var b=a.sTableId,c=a.aanFeatures.i,d=h("<div/>",{"class":a.oClasses.sInfo,id:!c?b+"_info":null});c||(a.aoDrawCallback.push({fn:Cb,sName:"information"}),d.attr("role","status").attr("aria-live","polite"),h(a.nTable).attr("aria-describedby",b+"_info"));return d[0]}function Cb(a){var b=a.aanFeatures.i;if(0!==b.length){var c=a.oLanguage, d=a._iDisplayStart+1,e=a.fnDisplayEnd(),f=a.fnRecordsTotal(),g=a.fnRecordsDisplay(),j=g?c.sInfo:c.sInfoEmpty;g!==f&&(j+=" "+c.sInfoFiltered);j+=c.sInfoPostFix;j=Db(a,j);c=c.fnInfoCallback;null!==c&&(j=c.call(a.oInstance,a,d,e,f,g,j));h(b).html(j)}}function Db(a,b){var c=a.fnFormatNumber,d=a._iDisplayStart+1,e=a._iDisplayLength,f=a.fnRecordsDisplay(),g=-1===e;return b.replace(/_START_/g,c.call(a,d)).replace(/_END_/g,c.call(a,a.fnDisplayEnd())).replace(/_MAX_/g,c.call(a,a.fnRecordsTotal())).replace(/_TOTAL_/g, c.call(a,f)).replace(/_PAGE_/g,c.call(a,g?1:Math.ceil(d/e))).replace(/_PAGES_/g,c.call(a,g?1:Math.ceil(f/e)))}function ga(a){var b,c,d=a.iInitDisplayStart,e=a.aoColumns,f;c=a.oFeatures;var g=a.bDeferLoading;if(a.bInitialised){nb(a);kb(a);ea(a,a.aoHeader);ea(a,a.aoFooter);C(a,!0);c.bAutoWidth&&Ha(a);b=0;for(c=e.length;b<c;b++)f=e[b],f.sWidth&&(f.nTh.style.width=x(f.sWidth));u(a,null,"preInit",[a]);T(a);e=y(a);if("ssp"!=e||g)"ajax"==e?ra(a,[],function(c){var f=sa(a,c);for(b=0;b<f.length;b++)N(a,f[b]); a.iInitDisplayStart=d;T(a);C(a,!1);ta(a,c)},a):(C(a,!1),ta(a))}else setTimeout(function(){ga(a)},200)}function ta(a,b){a._bInitComplete=!0;(b||a.oInit.aaData)&&U(a);u(a,null,"plugin-init",[a,b]);u(a,"aoInitComplete","init",[a,b])}function Ra(a,b){var c=parseInt(b,10);a._iDisplayLength=c;Sa(a);u(a,null,"length",[a,c])}function ob(a){for(var b=a.oClasses,c=a.sTableId,d=a.aLengthMenu,e=h.isArray(d[0]),f=e?d[0]:d,d=e?d[1]:d,e=h("<select/>",{name:c+"_length","aria-controls":c,"class":b.sLengthSelect}), g=0,j=f.length;g<j;g++)e[0][g]=new Option(d[g],f[g]);var i=h("<div><label/></div>").addClass(b.sLength);a.aanFeatures.l||(i[0].id=c+"_length");i.children().append(a.oLanguage.sLengthMenu.replace("_MENU_",e[0].outerHTML));h("select",i).val(a._iDisplayLength).bind("change.DT",function(){Ra(a,h(this).val());O(a)});h(a.nTable).bind("length.dt.DT",function(b,c,d){a===c&&h("select",i).val(d)});return i[0]}function tb(a){var b=a.sPaginationType,c=m.ext.pager[b],d="function"===typeof c,e=function(a){O(a)}, b=h("<div/>").addClass(a.oClasses.sPaging+b)[0],f=a.aanFeatures;d||c.fnInit(a,b,e);f.p||(b.id=a.sTableId+"_paginate",a.aoDrawCallback.push({fn:function(a){if(d){var b=a._iDisplayStart,i=a._iDisplayLength,h=a.fnRecordsDisplay(),l=-1===i,b=l?0:Math.ceil(b/i),i=l?1:Math.ceil(h/i),h=c(b,i),k,l=0;for(k=f.p.length;l<k;l++)Pa(a,"pageButton")(a,f.p[l],l,h,b,i)}else c.fnUpdate(a,e)},sName:"pagination"}));return b}function Ta(a,b,c){var d=a._iDisplayStart,e=a._iDisplayLength,f=a.fnRecordsDisplay();0===f||-1=== e?d=0:"number"===typeof b?(d=b*e,d>f&&(d=0)):"first"==b?d=0:"previous"==b?(d=0<=e?d-e:0,0>d&&(d=0)):"next"==b?d+e<f&&(d+=e):"last"==b?d=Math.floor((f-1)/e)*e:L(a,0,"Unknown paging action: "+b,5);b=a._iDisplayStart!==d;a._iDisplayStart=d;b&&(u(a,null,"page",[a]),c&&O(a));return b}function qb(a){return h("<div/>",{id:!a.aanFeatures.r?a.sTableId+"_processing":null,"class":a.oClasses.sProcessing}).html(a.oLanguage.sProcessing).insertBefore(a.nTable)[0]}function C(a,b){a.oFeatures.bProcessing&&h(a.aanFeatures.r).css("display", b?"block":"none");u(a,null,"processing",[a,b])}function rb(a){var b=h(a.nTable);b.attr("role","grid");var c=a.oScroll;if(""===c.sX&&""===c.sY)return a.nTable;var d=c.sX,e=c.sY,f=a.oClasses,g=b.children("caption"),j=g.length?g[0]._captionSide:null,i=h(b[0].cloneNode(!1)),n=h(b[0].cloneNode(!1)),l=b.children("tfoot");l.length||(l=null);i=h("<div/>",{"class":f.sScrollWrapper}).append(h("<div/>",{"class":f.sScrollHead}).css({overflow:"hidden",position:"relative",border:0,width:d?!d?null:x(d):"100%"}).append(h("<div/>", {"class":f.sScrollHeadInner}).css({"box-sizing":"content-box",width:c.sXInner||"100%"}).append(i.removeAttr("id").css("margin-left",0).append("top"===j?g:null).append(b.children("thead"))))).append(h("<div/>",{"class":f.sScrollBody}).css({position:"relative",overflow:"auto",width:!d?null:x(d)}).append(b));l&&i.append(h("<div/>",{"class":f.sScrollFoot}).css({overflow:"hidden",border:0,width:d?!d?null:x(d):"100%"}).append(h("<div/>",{"class":f.sScrollFootInner}).append(n.removeAttr("id").css("margin-left", 0).append("bottom"===j?g:null).append(b.children("tfoot")))));var b=i.children(),k=b[0],f=b[1],t=l?b[2]:null;if(d)h(f).on("scroll.DT",function(){var a=this.scrollLeft;k.scrollLeft=a;l&&(t.scrollLeft=a)});h(f).css(e&&c.bCollapse?"max-height":"height",e);a.nScrollHead=k;a.nScrollBody=f;a.nScrollFoot=t;a.aoDrawCallback.push({fn:ka,sName:"scrolling"});return i[0]}function ka(a){var b=a.oScroll,c=b.sX,d=b.sXInner,e=b.sY,b=b.iBarWidth,f=h(a.nScrollHead),g=f[0].style,j=f.children("div"),i=j[0].style,n=j.children("table"), j=a.nScrollBody,l=h(j),q=j.style,t=h(a.nScrollFoot).children("div"),m=t.children("table"),o=h(a.nTHead),G=h(a.nTable),p=G[0],r=p.style,u=a.nTFoot?h(a.nTFoot):null,Eb=a.oBrowser,Ua=Eb.bScrollOversize,s=F(a.aoColumns,"nTh"),P,v,w,y,z=[],A=[],B=[],C=[],D,E=function(a){a=a.style;a.paddingTop="0";a.paddingBottom="0";a.borderTopWidth="0";a.borderBottomWidth="0";a.height=0};v=j.scrollHeight>j.clientHeight;if(a.scrollBarVis!==v&&a.scrollBarVis!==k)a.scrollBarVis=v,U(a);else{a.scrollBarVis=v;G.children("thead, tfoot").remove(); u&&(w=u.clone().prependTo(G),P=u.find("tr"),w=w.find("tr"));y=o.clone().prependTo(G);o=o.find("tr");v=y.find("tr");y.find("th, td").removeAttr("tabindex");c||(q.width="100%",f[0].style.width="100%");h.each(qa(a,y),function(b,c){D=Z(a,b);c.style.width=a.aoColumns[D].sWidth});u&&J(function(a){a.style.width=""},w);f=G.outerWidth();if(""===c){r.width="100%";if(Ua&&(G.find("tbody").height()>j.offsetHeight||"scroll"==l.css("overflow-y")))r.width=x(G.outerWidth()-b);f=G.outerWidth()}else""!==d&&(r.width= x(d),f=G.outerWidth());J(E,v);J(function(a){B.push(a.innerHTML);z.push(x(h(a).css("width")))},v);J(function(a,b){if(h.inArray(a,s)!==-1)a.style.width=z[b]},o);h(v).height(0);u&&(J(E,w),J(function(a){C.push(a.innerHTML);A.push(x(h(a).css("width")))},w),J(function(a,b){a.style.width=A[b]},P),h(w).height(0));J(function(a,b){a.innerHTML='<div class="dataTables_sizing" style="height:0;overflow:hidden;">'+B[b]+"</div>";a.style.width=z[b]},v);u&&J(function(a,b){a.innerHTML='<div class="dataTables_sizing" style="height:0;overflow:hidden;">'+ C[b]+"</div>";a.style.width=A[b]},w);if(G.outerWidth()<f){P=j.scrollHeight>j.offsetHeight||"scroll"==l.css("overflow-y")?f+b:f;if(Ua&&(j.scrollHeight>j.offsetHeight||"scroll"==l.css("overflow-y")))r.width=x(P-b);(""===c||""!==d)&&L(a,1,"Possible column misalignment",6)}else P="100%";q.width=x(P);g.width=x(P);u&&(a.nScrollFoot.style.width=x(P));!e&&Ua&&(q.height=x(p.offsetHeight+b));c=G.outerWidth();n[0].style.width=x(c);i.width=x(c);d=G.height()>j.clientHeight||"scroll"==l.css("overflow-y");e="padding"+ (Eb.bScrollbarLeft?"Left":"Right");i[e]=d?b+"px":"0px";u&&(m[0].style.width=x(c),t[0].style.width=x(c),t[0].style[e]=d?b+"px":"0px");G.children("colgroup").insertBefore(G.children("thead"));l.scroll();if((a.bSorted||a.bFiltered)&&!a._drawHold)j.scrollTop=0}}function J(a,b,c){for(var d=0,e=0,f=b.length,g,j;e<f;){g=b[e].firstChild;for(j=c?c[e].firstChild:null;g;)1===g.nodeType&&(c?a(g,j,d):a(g,d),d++),g=g.nextSibling,j=c?j.nextSibling:null;e++}}function Ha(a){var b=a.nTable,c=a.aoColumns,d=a.oScroll, e=d.sY,f=d.sX,g=d.sXInner,j=c.length,i=la(a,"bVisible"),n=h("th",a.nTHead),l=b.getAttribute("width"),k=b.parentNode,t=!1,m,o,p=a.oBrowser,d=p.bScrollOversize;(m=b.style.width)&&-1!==m.indexOf("%")&&(l=m);for(m=0;m<i.length;m++)o=c[i[m]],null!==o.sWidth&&(o.sWidth=Fb(o.sWidthOrig,k),t=!0);if(d||!t&&!f&&!e&&j==aa(a)&&j==n.length)for(m=0;m<j;m++)i=Z(a,m),null!==i&&(c[i].sWidth=x(n.eq(m).width()));else{j=h(b).clone().css("visibility","hidden").removeAttr("id");j.find("tbody tr").remove();var r=h("<tr/>").appendTo(j.find("tbody")); j.find("thead, tfoot").remove();j.append(h(a.nTHead).clone()).append(h(a.nTFoot).clone());j.find("tfoot th, tfoot td").css("width","");n=qa(a,j.find("thead")[0]);for(m=0;m<i.length;m++)o=c[i[m]],n[m].style.width=null!==o.sWidthOrig&&""!==o.sWidthOrig?x(o.sWidthOrig):"",o.sWidthOrig&&f&&h(n[m]).append(h("<div/>").css({width:o.sWidthOrig,margin:0,padding:0,border:0,height:1}));if(a.aoData.length)for(m=0;m<i.length;m++)t=i[m],o=c[t],h(Gb(a,t)).clone(!1).append(o.sContentPadding).appendTo(r);h("[name]", j).removeAttr("name");o=h("<div/>").css(f||e?{position:"absolute",top:0,left:0,height:1,right:0,overflow:"hidden"}:{}).append(j).appendTo(k);f&&g?j.width(g):f?(j.css("width","auto"),j.removeAttr("width"),j.width()<k.clientWidth&&l&&j.width(k.clientWidth)):e?j.width(k.clientWidth):l&&j.width(l);for(m=e=0;m<i.length;m++)k=h(n[m]),g=k.outerWidth()-k.width(),k=p.bBounding?Math.ceil(n[m].getBoundingClientRect().width):k.outerWidth(),e+=k,c[i[m]].sWidth=x(k-g);b.style.width=x(e);o.remove()}l&&(b.style.width= x(l));if((l||f)&&!a._reszEvt)b=function(){h(D).bind("resize.DT-"+a.sInstance,ua(function(){U(a)}))},d?setTimeout(b,1E3):b(),a._reszEvt=!0}function ua(a,b){var c=b!==k?b:200,d,e;return function(){var b=this,g=+new Date,j=arguments;d&&g<d+c?(clearTimeout(e),e=setTimeout(function(){d=k;a.apply(b,j)},c)):(d=g,a.apply(b,j))}}function Fb(a,b){if(!a)return 0;var c=h("<div/>").css("width",x(a)).appendTo(b||I.body),d=c[0].offsetWidth;c.remove();return d}function Gb(a,b){var c=Hb(a,b);if(0>c)return null;var d= a.aoData[c];return!d.nTr?h("<td/>").html(B(a,c,b,"display"))[0]:d.anCells[b]}function Hb(a,b){for(var c,d=-1,e=-1,f=0,g=a.aoData.length;f<g;f++)c=B(a,f,b,"display")+"",c=c.replace(ac,""),c=c.replace(/&nbsp;/g," "),c.length>d&&(d=c.length,e=f);return e}function x(a){return null===a?"0px":"number"==typeof a?0>a?"0px":a+"px":a.match(/\d$/)?a+"px":a}function W(a){var b,c,d=[],e=a.aoColumns,f,g,j,i;b=a.aaSortingFixed;c=h.isPlainObject(b);var n=[];f=function(a){a.length&&!h.isArray(a[0])?n.push(a):h.merge(n, a)};h.isArray(b)&&f(b);c&&b.pre&&f(b.pre);f(a.aaSorting);c&&b.post&&f(b.post);for(a=0;a<n.length;a++){i=n[a][0];f=e[i].aDataSort;b=0;for(c=f.length;b<c;b++)g=f[b],j=e[g].sType||"string",n[a]._idx===k&&(n[a]._idx=h.inArray(n[a][1],e[g].asSorting)),d.push({src:i,col:g,dir:n[a][1],index:n[a]._idx,type:j,formatter:m.ext.type.order[j+"-pre"]})}return d}function mb(a){var b,c,d=[],e=m.ext.type.order,f=a.aoData,g=0,j,i=a.aiDisplayMaster,h;Ia(a);h=W(a);b=0;for(c=h.length;b<c;b++)j=h[b],j.formatter&&g++,Ib(a, j.col);if("ssp"!=y(a)&&0!==h.length){b=0;for(c=i.length;b<c;b++)d[i[b]]=b;g===h.length?i.sort(function(a,b){var c,e,g,j,i=h.length,k=f[a]._aSortData,m=f[b]._aSortData;for(g=0;g<i;g++)if(j=h[g],c=k[j.col],e=m[j.col],c=c<e?-1:c>e?1:0,0!==c)return"asc"===j.dir?c:-c;c=d[a];e=d[b];return c<e?-1:c>e?1:0}):i.sort(function(a,b){var c,g,j,i,k=h.length,m=f[a]._aSortData,p=f[b]._aSortData;for(j=0;j<k;j++)if(i=h[j],c=m[i.col],g=p[i.col],i=e[i.type+"-"+i.dir]||e["string-"+i.dir],c=i(c,g),0!==c)return c;c=d[a]; g=d[b];return c<g?-1:c>g?1:0})}a.bSorted=!0}function Jb(a){for(var b,c,d=a.aoColumns,e=W(a),a=a.oLanguage.oAria,f=0,g=d.length;f<g;f++){c=d[f];var j=c.asSorting;b=c.sTitle.replace(/<.*?>/g,"");var i=c.nTh;i.removeAttribute("aria-sort");c.bSortable&&(0<e.length&&e[0].col==f?(i.setAttribute("aria-sort","asc"==e[0].dir?"ascending":"descending"),c=j[e[0].index+1]||j[0]):c=j[0],b+="asc"===c?a.sSortAscending:a.sSortDescending);i.setAttribute("aria-label",b)}}function Va(a,b,c,d){var e=a.aaSorting,f=a.aoColumns[b].asSorting, g=function(a,b){var c=a._idx;c===k&&(c=h.inArray(a[1],f));return c+1<f.length?c+1:b?null:0};"number"===typeof e[0]&&(e=a.aaSorting=[e]);c&&a.oFeatures.bSortMulti?(c=h.inArray(b,F(e,"0")),-1!==c?(b=g(e[c],!0),null===b&&1===e.length&&(b=0),null===b?e.splice(c,1):(e[c][1]=f[b],e[c]._idx=b)):(e.push([b,f[0],0]),e[e.length-1]._idx=0)):e.length&&e[0][0]==b?(b=g(e[0]),e.length=1,e[0][1]=f[b],e[0]._idx=b):(e.length=0,e.push([b,f[0]]),e[0]._idx=0);T(a);"function"==typeof d&&d(a)}function Oa(a,b,c,d){var e= a.aoColumns[c];Wa(b,{},function(b){!1!==e.bSortable&&(a.oFeatures.bProcessing?(C(a,!0),setTimeout(function(){Va(a,c,b.shiftKey,d);"ssp"!==y(a)&&C(a,!1)},0)):Va(a,c,b.shiftKey,d))})}function xa(a){var b=a.aLastSort,c=a.oClasses.sSortColumn,d=W(a),e=a.oFeatures,f,g;if(e.bSort&&e.bSortClasses){e=0;for(f=b.length;e<f;e++)g=b[e].src,h(F(a.aoData,"anCells",g)).removeClass(c+(2>e?e+1:3));e=0;for(f=d.length;e<f;e++)g=d[e].src,h(F(a.aoData,"anCells",g)).addClass(c+(2>e?e+1:3))}a.aLastSort=d}function Ib(a, b){var c=a.aoColumns[b],d=m.ext.order[c.sSortDataType],e;d&&(e=d.call(a.oInstance,a,b,$(a,b)));for(var f,g=m.ext.type.order[c.sType+"-pre"],j=0,i=a.aoData.length;j<i;j++)if(c=a.aoData[j],c._aSortData||(c._aSortData=[]),!c._aSortData[b]||d)f=d?e[j]:B(a,j,b,"sort"),c._aSortData[b]=g?g(f):f}function ya(a){if(a.oFeatures.bStateSave&&!a.bDestroying){var b={time:+new Date,start:a._iDisplayStart,length:a._iDisplayLength,order:h.extend(!0,[],a.aaSorting),search:Ab(a.oPreviousSearch),columns:h.map(a.aoColumns, function(b,d){return{visible:b.bVisible,search:Ab(a.aoPreSearchCols[d])}})};u(a,"aoStateSaveParams","stateSaveParams",[a,b]);a.oSavedState=b;a.fnStateSaveCallback.call(a.oInstance,a,b)}}function Kb(a){var b,c,d=a.aoColumns;if(a.oFeatures.bStateSave){var e=a.fnStateLoadCallback.call(a.oInstance,a);if(e&&e.time&&(b=u(a,"aoStateLoadParams","stateLoadParams",[a,e]),-1===h.inArray(!1,b)&&(b=a.iStateDuration,!(0<b&&e.time<+new Date-1E3*b)&&d.length===e.columns.length))){a.oLoadedState=h.extend(!0,{},e); e.start!==k&&(a._iDisplayStart=e.start,a.iInitDisplayStart=e.start);e.length!==k&&(a._iDisplayLength=e.length);e.order!==k&&(a.aaSorting=[],h.each(e.order,function(b,c){a.aaSorting.push(c[0]>=d.length?[0,c[1]]:c)}));e.search!==k&&h.extend(a.oPreviousSearch,Bb(e.search));b=0;for(c=e.columns.length;b<c;b++){var f=e.columns[b];f.visible!==k&&(d[b].bVisible=f.visible);f.search!==k&&h.extend(a.aoPreSearchCols[b],Bb(f.search))}u(a,"aoStateLoaded","stateLoaded",[a,e])}}}function za(a){var b=m.settings,a= h.inArray(a,F(b,"nTable"));return-1!==a?b[a]:null}function L(a,b,c,d){c="DataTables warning: "+(a?"table id="+a.sTableId+" - ":"")+c;d&&(c+=". For more information about this error, please see http://datatables.net/tn/"+d);if(b)D.console&&console.log&&console.log(c);else if(b=m.ext,b=b.sErrMode||b.errMode,a&&u(a,null,"error",[a,d,c]),"alert"==b)alert(c);else{if("throw"==b)throw Error(c);"function"==typeof b&&b(a,d,c)}}function E(a,b,c,d){h.isArray(c)?h.each(c,function(c,d){h.isArray(d)?E(a,b,d[0], d[1]):E(a,b,d)}):(d===k&&(d=c),b[c]!==k&&(a[d]=b[c]))}function Lb(a,b,c){var d,e;for(e in b)b.hasOwnProperty(e)&&(d=b[e],h.isPlainObject(d)?(h.isPlainObject(a[e])||(a[e]={}),h.extend(!0,a[e],d)):a[e]=c&&"data"!==e&&"aaData"!==e&&h.isArray(d)?d.slice():d);return a}function Wa(a,b,c){h(a).bind("click.DT",b,function(b){a.blur();c(b)}).bind("keypress.DT",b,function(a){13===a.which&&(a.preventDefault(),c(a))}).bind("selectstart.DT",function(){return!1})}function z(a,b,c,d){c&&a[b].push({fn:c,sName:d})} function u(a,b,c,d){var e=[];b&&(e=h.map(a[b].slice().reverse(),function(b){return b.fn.apply(a.oInstance,d)}));null!==c&&(b=h.Event(c+".dt"),h(a.nTable).trigger(b,d),e.push(b.result));return e}function Sa(a){var b=a._iDisplayStart,c=a.fnDisplayEnd(),d=a._iDisplayLength;b>=c&&(b=c-d);b-=b%d;if(-1===d||0>b)b=0;a._iDisplayStart=b}function Pa(a,b){var c=a.renderer,d=m.ext.renderer[b];return h.isPlainObject(c)&&c[b]?d[c[b]]||d._:"string"===typeof c?d[c]||d._:d._}function y(a){return a.oFeatures.bServerSide? "ssp":a.ajax||a.sAjaxSource?"ajax":"dom"}function Aa(a,b){var c=[],c=Mb.numbers_length,d=Math.floor(c/2);b<=c?c=X(0,b):a<=d?(c=X(0,c-2),c.push("ellipsis"),c.push(b-1)):(a>=b-1-d?c=X(b-(c-2),b):(c=X(a-d+2,a+d-1),c.push("ellipsis"),c.push(b-1)),c.splice(0,0,"ellipsis"),c.splice(0,0,0));c.DT_el="span";return c}function db(a){h.each({num:function(b){return Ba(b,a)},"num-fmt":function(b){return Ba(b,a,Xa)},"html-num":function(b){return Ba(b,a,Ca)},"html-num-fmt":function(b){return Ba(b,a,Ca,Xa)}},function(b, c){v.type.order[b+a+"-pre"]=c;b.match(/^html\-/)&&(v.type.search[b+a]=v.type.search.html)})}function Nb(a){return function(){var b=[za(this[m.ext.iApiIndex])].concat(Array.prototype.slice.call(arguments));return m.ext.internal[a].apply(this,b)}}var m,v,r,p,s,Ya={},Ob=/[\r\n]/g,Ca=/<.*?>/g,bc=/^[\w\+\-]/,cc=/[\w\+\-]$/,Zb=RegExp("(\\/|\\.|\\*|\\+|\\?|\\||\\(|\\)|\\[|\\]|\\{|\\}|\\\\|\\$|\\^|\\-)","g"),Xa=/[',$£€¥%\u2009\u202F\u20BD\u20a9\u20BArfk]/gi,M=function(a){return!a||!0===a||"-"===a?!0:!1}, Pb=function(a){var b=parseInt(a,10);return!isNaN(b)&&isFinite(a)?b:null},Qb=function(a,b){Ya[b]||(Ya[b]=RegExp(va(b),"g"));return"string"===typeof a&&"."!==b?a.replace(/\./g,"").replace(Ya[b],"."):a},Za=function(a,b,c){var d="string"===typeof a;if(M(a))return!0;b&&d&&(a=Qb(a,b));c&&d&&(a=a.replace(Xa,""));return!isNaN(parseFloat(a))&&isFinite(a)},Rb=function(a,b,c){return M(a)?!0:!(M(a)||"string"===typeof a)?null:Za(a.replace(Ca,""),b,c)?!0:null},F=function(a,b,c){var d=[],e=0,f=a.length;if(c!==k)for(;e< f;e++)a[e]&&a[e][b]&&d.push(a[e][b][c]);else for(;e<f;e++)a[e]&&d.push(a[e][b]);return d},ha=function(a,b,c,d){var e=[],f=0,g=b.length;if(d!==k)for(;f<g;f++)a[b[f]][c]&&e.push(a[b[f]][c][d]);else for(;f<g;f++)e.push(a[b[f]][c]);return e},X=function(a,b){var c=[],d;b===k?(b=0,d=a):(d=b,b=a);for(var e=b;e<d;e++)c.push(e);return c},Sb=function(a){for(var b=[],c=0,d=a.length;c<d;c++)a[c]&&b.push(a[c]);return b},pa=function(a){var b=[],c,d,e=a.length,f,g=0;d=0;a:for(;d<e;d++){c=a[d];for(f=0;f<g;f++)if(b[f]=== c)continue a;b.push(c);g++}return b},A=function(a,b,c){a[b]!==k&&(a[c]=a[b])},ba=/\[.*?\]$/,V=/\(\)$/,wa=h("<div>")[0],$b=wa.textContent!==k,ac=/<.*?>/g;m=function(a){this.$=function(a,b){return this.api(!0).$(a,b)};this._=function(a,b){return this.api(!0).rows(a,b).data()};this.api=function(a){return a?new r(za(this[v.iApiIndex])):new r(this)};this.fnAddData=function(a,b){var c=this.api(!0),d=h.isArray(a)&&(h.isArray(a[0])||h.isPlainObject(a[0]))?c.rows.add(a):c.row.add(a);(b===k||b)&&c.draw();return d.flatten().toArray()}; this.fnAdjustColumnSizing=function(a){var b=this.api(!0).columns.adjust(),c=b.settings()[0],d=c.oScroll;a===k||a?b.draw(!1):(""!==d.sX||""!==d.sY)&&ka(c)};this.fnClearTable=function(a){var b=this.api(!0).clear();(a===k||a)&&b.draw()};this.fnClose=function(a){this.api(!0).row(a).child.hide()};this.fnDeleteRow=function(a,b,c){var d=this.api(!0),a=d.rows(a),e=a.settings()[0],h=e.aoData[a[0][0]];a.remove();b&&b.call(this,e,h);(c===k||c)&&d.draw();return h};this.fnDestroy=function(a){this.api(!0).destroy(a)}; this.fnDraw=function(a){this.api(!0).draw(a)};this.fnFilter=function(a,b,c,d,e,h){e=this.api(!0);null===b||b===k?e.search(a,c,d,h):e.column(b).search(a,c,d,h);e.draw()};this.fnGetData=function(a,b){var c=this.api(!0);if(a!==k){var d=a.nodeName?a.nodeName.toLowerCase():"";return b!==k||"td"==d||"th"==d?c.cell(a,b).data():c.row(a).data()||null}return c.data().toArray()};this.fnGetNodes=function(a){var b=this.api(!0);return a!==k?b.row(a).node():b.rows().nodes().flatten().toArray()};this.fnGetPosition= function(a){var b=this.api(!0),c=a.nodeName.toUpperCase();return"TR"==c?b.row(a).index():"TD"==c||"TH"==c?(a=b.cell(a).index(),[a.row,a.columnVisible,a.column]):null};this.fnIsOpen=function(a){return this.api(!0).row(a).child.isShown()};this.fnOpen=function(a,b,c){return this.api(!0).row(a).child(b,c).show().child()[0]};this.fnPageChange=function(a,b){var c=this.api(!0).page(a);(b===k||b)&&c.draw(!1)};this.fnSetColumnVis=function(a,b,c){a=this.api(!0).column(a).visible(b);(c===k||c)&&a.columns.adjust().draw()}; this.fnSettings=function(){return za(this[v.iApiIndex])};this.fnSort=function(a){this.api(!0).order(a).draw()};this.fnSortListener=function(a,b,c){this.api(!0).order.listener(a,b,c)};this.fnUpdate=function(a,b,c,d,e){var h=this.api(!0);c===k||null===c?h.row(b).data(a):h.cell(b,c).data(a);(e===k||e)&&h.columns.adjust();(d===k||d)&&h.draw();return 0};this.fnVersionCheck=v.fnVersionCheck;var b=this,c=a===k,d=this.length;c&&(a={});this.oApi=this.internal=v.internal;for(var e in m.ext.internal)e&&(this[e]= Nb(e));this.each(function(){var e={},e=1<d?Lb(e,a,!0):a,g=0,j,i=this.getAttribute("id"),n=!1,l=m.defaults,q=h(this);if("table"!=this.nodeName.toLowerCase())L(null,0,"Non-table node initialisation ("+this.nodeName+")",2);else{eb(l);fb(l.column);K(l,l,!0);K(l.column,l.column,!0);K(l,h.extend(e,q.data()));var t=m.settings,g=0;for(j=t.length;g<j;g++){var p=t[g];if(p.nTable==this||p.nTHead.parentNode==this||p.nTFoot&&p.nTFoot.parentNode==this){g=e.bRetrieve!==k?e.bRetrieve:l.bRetrieve;if(c||g)return p.oInstance; if(e.bDestroy!==k?e.bDestroy:l.bDestroy){p.oInstance.fnDestroy();break}else{L(p,0,"Cannot reinitialise DataTable",3);return}}if(p.sTableId==this.id){t.splice(g,1);break}}if(null===i||""===i)this.id=i="DataTables_Table_"+m.ext._unique++;var o=h.extend(!0,{},m.models.oSettings,{sDestroyWidth:q[0].style.width,sInstance:i,sTableId:i});o.nTable=this;o.oApi=b.internal;o.oInit=e;t.push(o);o.oInstance=1===b.length?b:q.dataTable();eb(e);e.oLanguage&&Fa(e.oLanguage);e.aLengthMenu&&!e.iDisplayLength&&(e.iDisplayLength= h.isArray(e.aLengthMenu[0])?e.aLengthMenu[0][0]:e.aLengthMenu[0]);e=Lb(h.extend(!0,{},l),e);E(o.oFeatures,e,"bPaginate bLengthChange bFilter bSort bSortMulti bInfo bProcessing bAutoWidth bSortClasses bServerSide bDeferRender".split(" "));E(o,e,["asStripeClasses","ajax","fnServerData","fnFormatNumber","sServerMethod","aaSorting","aaSortingFixed","aLengthMenu","sPaginationType","sAjaxSource","sAjaxDataProp","iStateDuration","sDom","bSortCellsTop","iTabIndex","fnStateLoadCallback","fnStateSaveCallback", "renderer","searchDelay","rowId",["iCookieDuration","iStateDuration"],["oSearch","oPreviousSearch"],["aoSearchCols","aoPreSearchCols"],["iDisplayLength","_iDisplayLength"],["bJQueryUI","bJUI"]]);E(o.oScroll,e,[["sScrollX","sX"],["sScrollXInner","sXInner"],["sScrollY","sY"],["bScrollCollapse","bCollapse"]]);E(o.oLanguage,e,"fnInfoCallback");z(o,"aoDrawCallback",e.fnDrawCallback,"user");z(o,"aoServerParams",e.fnServerParams,"user");z(o,"aoStateSaveParams",e.fnStateSaveParams,"user");z(o,"aoStateLoadParams", e.fnStateLoadParams,"user");z(o,"aoStateLoaded",e.fnStateLoaded,"user");z(o,"aoRowCallback",e.fnRowCallback,"user");z(o,"aoRowCreatedCallback",e.fnCreatedRow,"user");z(o,"aoHeaderCallback",e.fnHeaderCallback,"user");z(o,"aoFooterCallback",e.fnFooterCallback,"user");z(o,"aoInitComplete",e.fnInitComplete,"user");z(o,"aoPreDrawCallback",e.fnPreDrawCallback,"user");o.rowIdFn=Q(e.rowId);gb(o);i=o.oClasses;e.bJQueryUI?(h.extend(i,m.ext.oJUIClasses,e.oClasses),e.sDom===l.sDom&&"lfrtip"===l.sDom&&(o.sDom= '<"H"lfr>t<"F"ip>'),o.renderer)?h.isPlainObject(o.renderer)&&!o.renderer.header&&(o.renderer.header="jqueryui"):o.renderer="jqueryui":h.extend(i,m.ext.classes,e.oClasses);q.addClass(i.sTable);o.iInitDisplayStart===k&&(o.iInitDisplayStart=e.iDisplayStart,o._iDisplayStart=e.iDisplayStart);null!==e.iDeferLoading&&(o.bDeferLoading=!0,g=h.isArray(e.iDeferLoading),o._iRecordsDisplay=g?e.iDeferLoading[0]:e.iDeferLoading,o._iRecordsTotal=g?e.iDeferLoading[1]:e.iDeferLoading);var r=o.oLanguage;h.extend(!0, r,e.oLanguage);""!==r.sUrl&&(h.ajax({dataType:"json",url:r.sUrl,success:function(a){Fa(a);K(l.oLanguage,a);h.extend(true,r,a);ga(o)},error:function(){ga(o)}}),n=!0);null===e.asStripeClasses&&(o.asStripeClasses=[i.sStripeOdd,i.sStripeEven]);var g=o.asStripeClasses,v=q.children("tbody").find("tr").eq(0);-1!==h.inArray(!0,h.map(g,function(a){return v.hasClass(a)}))&&(h("tbody tr",this).removeClass(g.join(" ")),o.asDestroyStripes=g.slice());t=[];g=this.getElementsByTagName("thead");0!==g.length&&(da(o.aoHeader, g[0]),t=qa(o));if(null===e.aoColumns){p=[];g=0;for(j=t.length;g<j;g++)p.push(null)}else p=e.aoColumns;g=0;for(j=p.length;g<j;g++)Ga(o,t?t[g]:null);ib(o,e.aoColumnDefs,p,function(a,b){ja(o,a,b)});if(v.length){var s=function(a,b){return a.getAttribute("data-"+b)!==null?b:null};h(v[0]).children("th, td").each(function(a,b){var c=o.aoColumns[a];if(c.mData===a){var d=s(b,"sort")||s(b,"order"),e=s(b,"filter")||s(b,"search");if(d!==null||e!==null){c.mData={_:a+".display",sort:d!==null?a+".@data-"+d:k,type:d!== null?a+".@data-"+d:k,filter:e!==null?a+".@data-"+e:k};ja(o,a)}}})}var w=o.oFeatures;e.bStateSave&&(w.bStateSave=!0,Kb(o,e),z(o,"aoDrawCallback",ya,"state_save"));if(e.aaSorting===k){t=o.aaSorting;g=0;for(j=t.length;g<j;g++)t[g][1]=o.aoColumns[g].asSorting[0]}xa(o);w.bSort&&z(o,"aoDrawCallback",function(){if(o.bSorted){var a=W(o),b={};h.each(a,function(a,c){b[c.src]=c.dir});u(o,null,"order",[o,a,b]);Jb(o)}});z(o,"aoDrawCallback",function(){(o.bSorted||y(o)==="ssp"||w.bDeferRender)&&xa(o)},"sc");g= q.children("caption").each(function(){this._captionSide=q.css("caption-side")});j=q.children("thead");0===j.length&&(j=h("<thead/>").appendTo(this));o.nTHead=j[0];j=q.children("tbody");0===j.length&&(j=h("<tbody/>").appendTo(this));o.nTBody=j[0];j=q.children("tfoot");if(0===j.length&&0<g.length&&(""!==o.oScroll.sX||""!==o.oScroll.sY))j=h("<tfoot/>").appendTo(this);0===j.length||0===j.children().length?q.addClass(i.sNoFooter):0<j.length&&(o.nTFoot=j[0],da(o.aoFooter,o.nTFoot));if(e.aaData)for(g=0;g< e.aaData.length;g++)N(o,e.aaData[g]);else(o.bDeferLoading||"dom"==y(o))&&ma(o,h(o.nTBody).children("tr"));o.aiDisplay=o.aiDisplayMaster.slice();o.bInitialised=!0;!1===n&&ga(o)}});b=null;return this};var Tb=[],w=Array.prototype,dc=function(a){var b,c,d=m.settings,e=h.map(d,function(a){return a.nTable});if(a){if(a.nTable&&a.oApi)return[a];if(a.nodeName&&"table"===a.nodeName.toLowerCase())return b=h.inArray(a,e),-1!==b?[d[b]]:null;if(a&&"function"===typeof a.settings)return a.settings().toArray();"string"=== typeof a?c=h(a):a instanceof h&&(c=a)}else return[];if(c)return c.map(function(){b=h.inArray(this,e);return-1!==b?d[b]:null}).toArray()};r=function(a,b){if(!(this instanceof r))return new r(a,b);var c=[],d=function(a){(a=dc(a))&&(c=c.concat(a))};if(h.isArray(a))for(var e=0,f=a.length;e<f;e++)d(a[e]);else d(a);this.context=pa(c);b&&h.merge(this,b);this.selector={rows:null,cols:null,opts:null};r.extend(this,this,Tb)};m.Api=r;h.extend(r.prototype,{any:function(){return 0!==this.count()},concat:w.concat, context:[],count:function(){return this.flatten().length},each:function(a){for(var b=0,c=this.length;b<c;b++)a.call(this,this[b],b,this);return this},eq:function(a){var b=this.context;return b.length>a?new r(b[a],this[a]):null},filter:function(a){var b=[];if(w.filter)b=w.filter.call(this,a,this);else for(var c=0,d=this.length;c<d;c++)a.call(this,this[c],c,this)&&b.push(this[c]);return new r(this.context,b)},flatten:function(){var a=[];return new r(this.context,a.concat.apply(a,this.toArray()))},join:w.join, indexOf:w.indexOf||function(a,b){for(var c=b||0,d=this.length;c<d;c++)if(this[c]===a)return c;return-1},iterator:function(a,b,c,d){var e=[],f,g,h,i,n,l=this.context,m,t,p=this.selector;"string"===typeof a&&(d=c,c=b,b=a,a=!1);g=0;for(h=l.length;g<h;g++){var o=new r(l[g]);if("table"===b)f=c.call(o,l[g],g),f!==k&&e.push(f);else if("columns"===b||"rows"===b)f=c.call(o,l[g],this[g],g),f!==k&&e.push(f);else if("column"===b||"column-rows"===b||"row"===b||"cell"===b){t=this[g];"column-rows"===b&&(m=Da(l[g], p.opts));i=0;for(n=t.length;i<n;i++)f=t[i],f="cell"===b?c.call(o,l[g],f.row,f.column,g,i):c.call(o,l[g],f,g,i,m),f!==k&&e.push(f)}}return e.length||d?(a=new r(l,a?e.concat.apply([],e):e),b=a.selector,b.rows=p.rows,b.cols=p.cols,b.opts=p.opts,a):this},lastIndexOf:w.lastIndexOf||function(a,b){return this.indexOf.apply(this.toArray.reverse(),arguments)},length:0,map:function(a){var b=[];if(w.map)b=w.map.call(this,a,this);else for(var c=0,d=this.length;c<d;c++)b.push(a.call(this,this[c],c));return new r(this.context, b)},pluck:function(a){return this.map(function(b){return b[a]})},pop:w.pop,push:w.push,reduce:w.reduce||function(a,b){return hb(this,a,b,0,this.length,1)},reduceRight:w.reduceRight||function(a,b){return hb(this,a,b,this.length-1,-1,-1)},reverse:w.reverse,selector:null,shift:w.shift,sort:w.sort,splice:w.splice,toArray:function(){return w.slice.call(this)},to$:function(){return h(this)},toJQuery:function(){return h(this)},unique:function(){return new r(this.context,pa(this))},unshift:w.unshift});r.extend= function(a,b,c){if(c.length&&b&&(b instanceof r||b.__dt_wrapper)){var d,e,f,g=function(a,b,c){return function(){var d=b.apply(a,arguments);r.extend(d,d,c.methodExt);return d}};d=0;for(e=c.length;d<e;d++)f=c[d],b[f.name]="function"===typeof f.val?g(a,f.val,f):h.isPlainObject(f.val)?{}:f.val,b[f.name].__dt_wrapper=!0,r.extend(a,b[f.name],f.propExt)}};r.register=p=function(a,b){if(h.isArray(a))for(var c=0,d=a.length;c<d;c++)r.register(a[c],b);else for(var e=a.split("."),f=Tb,g,j,c=0,d=e.length;c<d;c++){g= (j=-1!==e[c].indexOf("()"))?e[c].replace("()",""):e[c];var i;a:{i=0;for(var n=f.length;i<n;i++)if(f[i].name===g){i=f[i];break a}i=null}i||(i={name:g,val:{},methodExt:[],propExt:[]},f.push(i));c===d-1?i.val=b:f=j?i.methodExt:i.propExt}};r.registerPlural=s=function(a,b,c){r.register(a,c);r.register(b,function(){var a=c.apply(this,arguments);return a===this?this:a instanceof r?a.length?h.isArray(a[0])?new r(a.context,a[0]):a[0]:k:a})};p("tables()",function(a){var b;if(a){b=r;var c=this.context;if("number"=== typeof a)a=[c[a]];else var d=h.map(c,function(a){return a.nTable}),a=h(d).filter(a).map(function(){var a=h.inArray(this,d);return c[a]}).toArray();b=new b(a)}else b=this;return b});p("table()",function(a){var a=this.tables(a),b=a.context;return b.length?new r(b[0]):a});s("tables().nodes()","table().node()",function(){return this.iterator("table",function(a){return a.nTable},1)});s("tables().body()","table().body()",function(){return this.iterator("table",function(a){return a.nTBody},1)});s("tables().header()", "table().header()",function(){return this.iterator("table",function(a){return a.nTHead},1)});s("tables().footer()","table().footer()",function(){return this.iterator("table",function(a){return a.nTFoot},1)});s("tables().containers()","table().container()",function(){return this.iterator("table",function(a){return a.nTableWrapper},1)});p("draw()",function(a){return this.iterator("table",function(b){"page"===a?O(b):("string"===typeof a&&(a="full-hold"===a?!1:!0),T(b,!1===a))})});p("page()",function(a){return a=== k?this.page.info().page:this.iterator("table",function(b){Ta(b,a)})});p("page.info()",function(){if(0===this.context.length)return k;var a=this.context[0],b=a._iDisplayStart,c=a.oFeatures.bPaginate?a._iDisplayLength:-1,d=a.fnRecordsDisplay(),e=-1===c;return{page:e?0:Math.floor(b/c),pages:e?1:Math.ceil(d/c),start:b,end:a.fnDisplayEnd(),length:c,recordsTotal:a.fnRecordsTotal(),recordsDisplay:d,serverSide:"ssp"===y(a)}});p("page.len()",function(a){return a===k?0!==this.context.length?this.context[0]._iDisplayLength: k:this.iterator("table",function(b){Ra(b,a)})});var Ub=function(a,b,c){if(c){var d=new r(a);d.one("draw",function(){c(d.ajax.json())})}if("ssp"==y(a))T(a,b);else{C(a,!0);var e=a.jqXHR;e&&4!==e.readyState&&e.abort();ra(a,[],function(c){na(a);for(var c=sa(a,c),d=0,e=c.length;d<e;d++)N(a,c[d]);T(a,b);C(a,!1)})}};p("ajax.json()",function(){var a=this.context;if(0<a.length)return a[0].json});p("ajax.params()",function(){var a=this.context;if(0<a.length)return a[0].oAjaxData});p("ajax.reload()",function(a, b){return this.iterator("table",function(c){Ub(c,!1===b,a)})});p("ajax.url()",function(a){var b=this.context;if(a===k){if(0===b.length)return k;b=b[0];return b.ajax?h.isPlainObject(b.ajax)?b.ajax.url:b.ajax:b.sAjaxSource}return this.iterator("table",function(b){h.isPlainObject(b.ajax)?b.ajax.url=a:b.ajax=a})});p("ajax.url().load()",function(a,b){return this.iterator("table",function(c){Ub(c,!1===b,a)})});var $a=function(a,b,c,d,e){var f=[],g,j,i,n,l,m;i=typeof b;if(!b||"string"===i||"function"=== i||b.length===k)b=[b];i=0;for(n=b.length;i<n;i++){j=b[i]&&b[i].split?b[i].split(","):[b[i]];l=0;for(m=j.length;l<m;l++)(g=c("string"===typeof j[l]?h.trim(j[l]):j[l]))&&g.length&&(f=f.concat(g))}a=v.selector[a];if(a.length){i=0;for(n=a.length;i<n;i++)f=a[i](d,e,f)}return pa(f)},ab=function(a){a||(a={});a.filter&&a.search===k&&(a.search=a.filter);return h.extend({search:"none",order:"current",page:"all"},a)},bb=function(a){for(var b=0,c=a.length;b<c;b++)if(0<a[b].length)return a[0]=a[b],a[0].length= 1,a.length=1,a.context=[a.context[b]],a;a.length=0;return a},Da=function(a,b){var c,d,e,f=[],g=a.aiDisplay;c=a.aiDisplayMaster;var j=b.search;d=b.order;e=b.page;if("ssp"==y(a))return"removed"===j?[]:X(0,c.length);if("current"==e){c=a._iDisplayStart;for(d=a.fnDisplayEnd();c<d;c++)f.push(g[c])}else if("current"==d||"applied"==d)f="none"==j?c.slice():"applied"==j?g.slice():h.map(c,function(a){return-1===h.inArray(a,g)?a:null});else if("index"==d||"original"==d){c=0;for(d=a.aoData.length;c<d;c++)"none"== j?f.push(c):(e=h.inArray(c,g),(-1===e&&"removed"==j||0<=e&&"applied"==j)&&f.push(c))}return f};p("rows()",function(a,b){a===k?a="":h.isPlainObject(a)&&(b=a,a="");var b=ab(b),c=this.iterator("table",function(c){var e=b;return $a("row",a,function(a){var b=Pb(a);if(b!==null&&!e)return[b];var j=Da(c,e);if(b!==null&&h.inArray(b,j)!==-1)return[b];if(!a)return j;if(typeof a==="function")return h.map(j,function(b){var e=c.aoData[b];return a(b,e._aData,e.nTr)?b:null});b=Sb(ha(c.aoData,j,"nTr"));if(a.nodeName){if(a._DT_RowIndex!== k)return[a._DT_RowIndex];if(a._DT_CellIndex)return[a._DT_CellIndex.row];b=h(a).closest("*[data-dt-row]");return b.length?[b.data("dt-row")]:[]}if(typeof a==="string"&&a.charAt(0)==="#"){j=c.aIds[a.replace(/^#/,"")];if(j!==k)return[j.idx]}return h(b).filter(a).map(function(){return this._DT_RowIndex}).toArray()},c,e)},1);c.selector.rows=a;c.selector.opts=b;return c});p("rows().nodes()",function(){return this.iterator("row",function(a,b){return a.aoData[b].nTr||k},1)});p("rows().data()",function(){return this.iterator(!0, "rows",function(a,b){return ha(a.aoData,b,"_aData")},1)});s("rows().cache()","row().cache()",function(a){return this.iterator("row",function(b,c){var d=b.aoData[c];return"search"===a?d._aFilterData:d._aSortData},1)});s("rows().invalidate()","row().invalidate()",function(a){return this.iterator("row",function(b,c){ca(b,c,a)})});s("rows().indexes()","row().index()",function(){return this.iterator("row",function(a,b){return b},1)});s("rows().ids()","row().id()",function(a){for(var b=[],c=this.context, d=0,e=c.length;d<e;d++)for(var f=0,g=this[d].length;f<g;f++){var h=c[d].rowIdFn(c[d].aoData[this[d][f]]._aData);b.push((!0===a?"#":"")+h)}return new r(c,b)});s("rows().remove()","row().remove()",function(){var a=this;this.iterator("row",function(b,c,d){var e=b.aoData,f=e[c],g,h,i,n,l;e.splice(c,1);g=0;for(h=e.length;g<h;g++)if(i=e[g],l=i.anCells,null!==i.nTr&&(i.nTr._DT_RowIndex=g),null!==l){i=0;for(n=l.length;i<n;i++)l[i]._DT_CellIndex.row=g}oa(b.aiDisplayMaster,c);oa(b.aiDisplay,c);oa(a[d],c,!1); Sa(b);c=b.rowIdFn(f._aData);c!==k&&delete b.aIds[c]});this.iterator("table",function(a){for(var c=0,d=a.aoData.length;c<d;c++)a.aoData[c].idx=c});return this});p("rows.add()",function(a){var b=this.iterator("table",function(b){var c,f,g,h=[];f=0;for(g=a.length;f<g;f++)c=a[f],c.nodeName&&"TR"===c.nodeName.toUpperCase()?h.push(ma(b,c)[0]):h.push(N(b,c));return h},1),c=this.rows(-1);c.pop();h.merge(c,b);return c});p("row()",function(a,b){return bb(this.rows(a,b))});p("row().data()",function(a){var b= this.context;if(a===k)return b.length&&this.length?b[0].aoData[this[0]]._aData:k;b[0].aoData[this[0]]._aData=a;ca(b[0],this[0],"data");return this});p("row().node()",function(){var a=this.context;return a.length&&this.length?a[0].aoData[this[0]].nTr||null:null});p("row.add()",function(a){a instanceof h&&a.length&&(a=a[0]);var b=this.iterator("table",function(b){return a.nodeName&&"TR"===a.nodeName.toUpperCase()?ma(b,a)[0]:N(b,a)});return this.row(b[0])});var cb=function(a,b){var c=a.context;if(c.length&& (c=c[0].aoData[b!==k?b:a[0]])&&c._details)c._details.remove(),c._detailsShow=k,c._details=k},Vb=function(a,b){var c=a.context;if(c.length&&a.length){var d=c[0].aoData[a[0]];if(d._details){(d._detailsShow=b)?d._details.insertAfter(d.nTr):d._details.detach();var e=c[0],f=new r(e),g=e.aoData;f.off("draw.dt.DT_details column-visibility.dt.DT_details destroy.dt.DT_details");0<F(g,"_details").length&&(f.on("draw.dt.DT_details",function(a,b){e===b&&f.rows({page:"current"}).eq(0).each(function(a){a=g[a]; a._detailsShow&&a._details.insertAfter(a.nTr)})}),f.on("column-visibility.dt.DT_details",function(a,b){if(e===b)for(var c,d=aa(b),f=0,h=g.length;f<h;f++)c=g[f],c._details&&c._details.children("td[colspan]").attr("colspan",d)}),f.on("destroy.dt.DT_details",function(a,b){if(e===b)for(var c=0,d=g.length;c<d;c++)g[c]._details&&cb(f,c)}))}}};p("row().child()",function(a,b){var c=this.context;if(a===k)return c.length&&this.length?c[0].aoData[this[0]]._details:k;if(!0===a)this.child.show();else if(!1=== a)cb(this);else if(c.length&&this.length){var d=c[0],c=c[0].aoData[this[0]],e=[],f=function(a,b){if(h.isArray(a)||a instanceof h)for(var c=0,k=a.length;c<k;c++)f(a[c],b);else a.nodeName&&"tr"===a.nodeName.toLowerCase()?e.push(a):(c=h("<tr><td/></tr>").addClass(b),h("td",c).addClass(b).html(a)[0].colSpan=aa(d),e.push(c[0]))};f(a,b);c._details&&c._details.remove();c._details=h(e);c._detailsShow&&c._details.insertAfter(c.nTr)}return this});p(["row().child.show()","row().child().show()"],function(){Vb(this, !0);return this});p(["row().child.hide()","row().child().hide()"],function(){Vb(this,!1);return this});p(["row().child.remove()","row().child().remove()"],function(){cb(this);return this});p("row().child.isShown()",function(){var a=this.context;return a.length&&this.length?a[0].aoData[this[0]]._detailsShow||!1:!1});var ec=/^(.+):(name|visIdx|visible)$/,Wb=function(a,b,c,d,e){for(var c=[],d=0,f=e.length;d<f;d++)c.push(B(a,e[d],b));return c};p("columns()",function(a,b){a===k?a="":h.isPlainObject(a)&& (b=a,a="");var b=ab(b),c=this.iterator("table",function(c){var e=a,f=b,g=c.aoColumns,j=F(g,"sName"),i=F(g,"nTh");return $a("column",e,function(a){var b=Pb(a);if(a==="")return X(g.length);if(b!==null)return[b>=0?b:g.length+b];if(typeof a==="function"){var e=Da(c,f);return h.map(g,function(b,f){return a(f,Wb(c,f,0,0,e),i[f])?f:null})}var k=typeof a==="string"?a.match(ec):"";if(k)switch(k[2]){case "visIdx":case "visible":b=parseInt(k[1],10);if(b<0){var m=h.map(g,function(a,b){return a.bVisible?b:null}); return[m[m.length+b]]}return[Z(c,b)];case "name":return h.map(j,function(a,b){return a===k[1]?b:null});default:return[]}if(a.nodeName&&a._DT_CellIndex)return[a._DT_CellIndex.column];b=h(i).filter(a).map(function(){return h.inArray(this,i)}).toArray();if(b.length||!a.nodeName)return b;b=h(a).closest("*[data-dt-column]");return b.length?[b.data("dt-column")]:[]},c,f)},1);c.selector.cols=a;c.selector.opts=b;return c});s("columns().header()","column().header()",function(){return this.iterator("column", function(a,b){return a.aoColumns[b].nTh},1)});s("columns().footer()","column().footer()",function(){return this.iterator("column",function(a,b){return a.aoColumns[b].nTf},1)});s("columns().data()","column().data()",function(){return this.iterator("column-rows",Wb,1)});s("columns().dataSrc()","column().dataSrc()",function(){return this.iterator("column",function(a,b){return a.aoColumns[b].mData},1)});s("columns().cache()","column().cache()",function(a){return this.iterator("column-rows",function(b, c,d,e,f){return ha(b.aoData,f,"search"===a?"_aFilterData":"_aSortData",c)},1)});s("columns().nodes()","column().nodes()",function(){return this.iterator("column-rows",function(a,b,c,d,e){return ha(a.aoData,e,"anCells",b)},1)});s("columns().visible()","column().visible()",function(a,b){return this.iterator("column",function(c,d){if(a===k)return c.aoColumns[d].bVisible;var e=c.aoColumns,f=e[d],g=c.aoData,j,i,n;if(a!==k&&f.bVisible!==a){if(a){var l=h.inArray(!0,F(e,"bVisible"),d+1);j=0;for(i=g.length;j< i;j++)n=g[j].nTr,e=g[j].anCells,n&&n.insertBefore(e[d],e[l]||null)}else h(F(c.aoData,"anCells",d)).detach();f.bVisible=a;ea(c,c.aoHeader);ea(c,c.aoFooter);(b===k||b)&&U(c);u(c,null,"column-visibility",[c,d,a,b]);ya(c)}})});s("columns().indexes()","column().index()",function(a){return this.iterator("column",function(b,c){return"visible"===a?$(b,c):c},1)});p("columns.adjust()",function(){return this.iterator("table",function(a){U(a)},1)});p("column.index()",function(a,b){if(0!==this.context.length){var c= this.context[0];if("fromVisible"===a||"toData"===a)return Z(c,b);if("fromData"===a||"toVisible"===a)return $(c,b)}});p("column()",function(a,b){return bb(this.columns(a,b))});p("cells()",function(a,b,c){h.isPlainObject(a)&&(a.row===k?(c=a,a=null):(c=b,b=null));h.isPlainObject(b)&&(c=b,b=null);if(null===b||b===k)return this.iterator("table",function(b){var d=a,e=ab(c),f=b.aoData,g=Da(b,e),j=Sb(ha(f,g,"anCells")),i=h([].concat.apply([],j)),l,n=b.aoColumns.length,m,p,r,u,v,s;return $a("cell",d,function(a){var c= typeof a==="function";if(a===null||a===k||c){m=[];p=0;for(r=g.length;p<r;p++){l=g[p];for(u=0;u<n;u++){v={row:l,column:u};if(c){s=f[l];a(v,B(b,l,u),s.anCells?s.anCells[u]:null)&&m.push(v)}else m.push(v)}}return m}if(h.isPlainObject(a))return[a];c=i.filter(a).map(function(a,b){return{row:b._DT_CellIndex.row,column:b._DT_CellIndex.column}}).toArray();if(c.length||!a.nodeName)return c;s=h(a).closest("*[data-dt-row]");return s.length?[{row:s.data("dt-row"),column:s.data("dt-column")}]:[]},b,e)});var d= this.columns(b,c),e=this.rows(a,c),f,g,j,i,n,l=this.iterator("table",function(a,b){f=[];g=0;for(j=e[b].length;g<j;g++){i=0;for(n=d[b].length;i<n;i++)f.push({row:e[b][g],column:d[b][i]})}return f},1);h.extend(l.selector,{cols:b,rows:a,opts:c});return l});s("cells().nodes()","cell().node()",function(){return this.iterator("cell",function(a,b,c){return(a=a.aoData[b])&&a.anCells?a.anCells[c]:k},1)});p("cells().data()",function(){return this.iterator("cell",function(a,b,c){return B(a,b,c)},1)});s("cells().cache()", "cell().cache()",function(a){a="search"===a?"_aFilterData":"_aSortData";return this.iterator("cell",function(b,c,d){return b.aoData[c][a][d]},1)});s("cells().render()","cell().render()",function(a){return this.iterator("cell",function(b,c,d){return B(b,c,d,a)},1)});s("cells().indexes()","cell().index()",function(){return this.iterator("cell",function(a,b,c){return{row:b,column:c,columnVisible:$(a,c)}},1)});s("cells().invalidate()","cell().invalidate()",function(a){return this.iterator("cell",function(b, c,d){ca(b,c,a,d)})});p("cell()",function(a,b,c){return bb(this.cells(a,b,c))});p("cell().data()",function(a){var b=this.context,c=this[0];if(a===k)return b.length&&c.length?B(b[0],c[0].row,c[0].column):k;jb(b[0],c[0].row,c[0].column,a);ca(b[0],c[0].row,"data",c[0].column);return this});p("order()",function(a,b){var c=this.context;if(a===k)return 0!==c.length?c[0].aaSorting:k;"number"===typeof a?a=[[a,b]]:h.isArray(a[0])||(a=Array.prototype.slice.call(arguments));return this.iterator("table",function(b){b.aaSorting= a.slice()})});p("order.listener()",function(a,b,c){return this.iterator("table",function(d){Oa(d,a,b,c)})});p("order.fixed()",function(a){if(!a){var b=this.context,b=b.length?b[0].aaSortingFixed:k;return h.isArray(b)?{pre:b}:b}return this.iterator("table",function(b){b.aaSortingFixed=h.extend(!0,{},a)})});p(["columns().order()","column().order()"],function(a){var b=this;return this.iterator("table",function(c,d){var e=[];h.each(b[d],function(b,c){e.push([c,a])});c.aaSorting=e})});p("search()",function(a, b,c,d){var e=this.context;return a===k?0!==e.length?e[0].oPreviousSearch.sSearch:k:this.iterator("table",function(e){e.oFeatures.bFilter&&fa(e,h.extend({},e.oPreviousSearch,{sSearch:a+"",bRegex:null===b?!1:b,bSmart:null===c?!0:c,bCaseInsensitive:null===d?!0:d}),1)})});s("columns().search()","column().search()",function(a,b,c,d){return this.iterator("column",function(e,f){var g=e.aoPreSearchCols;if(a===k)return g[f].sSearch;e.oFeatures.bFilter&&(h.extend(g[f],{sSearch:a+"",bRegex:null===b?!1:b,bSmart:null=== c?!0:c,bCaseInsensitive:null===d?!0:d}),fa(e,e.oPreviousSearch,1))})});p("state()",function(){return this.context.length?this.context[0].oSavedState:null});p("state.clear()",function(){return this.iterator("table",function(a){a.fnStateSaveCallback.call(a.oInstance,a,{})})});p("state.loaded()",function(){return this.context.length?this.context[0].oLoadedState:null});p("state.save()",function(){return this.iterator("table",function(a){ya(a)})});m.versionCheck=m.fnVersionCheck=function(a){for(var b= m.version.split("."),a=a.split("."),c,d,e=0,f=a.length;e<f;e++)if(c=parseInt(b[e],10)||0,d=parseInt(a[e],10)||0,c!==d)return c>d;return!0};m.isDataTable=m.fnIsDataTable=function(a){var b=h(a).get(0),c=!1;h.each(m.settings,function(a,e){var f=e.nScrollHead?h("table",e.nScrollHead)[0]:null,g=e.nScrollFoot?h("table",e.nScrollFoot)[0]:null;if(e.nTable===b||f===b||g===b)c=!0});return c};m.tables=m.fnTables=function(a){var b=!1;h.isPlainObject(a)&&(b=a.api,a=a.visible);var c=h.map(m.settings,function(b){if(!a|| a&&h(b.nTable).is(":visible"))return b.nTable});return b?new r(c):c};m.util={throttle:ua,escapeRegex:va};m.camelToHungarian=K;p("$()",function(a,b){var c=this.rows(b).nodes(),c=h(c);return h([].concat(c.filter(a).toArray(),c.find(a).toArray()))});h.each(["on","one","off"],function(a,b){p(b+"()",function(){var a=Array.prototype.slice.call(arguments);a[0].match(/\.dt\b/)||(a[0]+=".dt");var d=h(this.tables().nodes());d[b].apply(d,a);return this})});p("clear()",function(){return this.iterator("table", function(a){na(a)})});p("settings()",function(){return new r(this.context,this.context)});p("init()",function(){var a=this.context;return a.length?a[0].oInit:null});p("data()",function(){return this.iterator("table",function(a){return F(a.aoData,"_aData")}).flatten()});p("destroy()",function(a){a=a||!1;return this.iterator("table",function(b){var c=b.nTableWrapper.parentNode,d=b.oClasses,e=b.nTable,f=b.nTBody,g=b.nTHead,j=b.nTFoot,i=h(e),f=h(f),k=h(b.nTableWrapper),l=h.map(b.aoData,function(a){return a.nTr}), p;b.bDestroying=!0;u(b,"aoDestroyCallback","destroy",[b]);a||(new r(b)).columns().visible(!0);k.unbind(".DT").find(":not(tbody *)").unbind(".DT");h(D).unbind(".DT-"+b.sInstance);e!=g.parentNode&&(i.children("thead").detach(),i.append(g));j&&e!=j.parentNode&&(i.children("tfoot").detach(),i.append(j));b.aaSorting=[];b.aaSortingFixed=[];xa(b);h(l).removeClass(b.asStripeClasses.join(" "));h("th, td",g).removeClass(d.sSortable+" "+d.sSortableAsc+" "+d.sSortableDesc+" "+d.sSortableNone);b.bJUI&&(h("th span."+ d.sSortIcon+", td span."+d.sSortIcon,g).detach(),h("th, td",g).each(function(){var a=h("div."+d.sSortJUIWrapper,this);h(this).append(a.contents());a.detach()}));f.children().detach();f.append(l);g=a?"remove":"detach";i[g]();k[g]();!a&&c&&(c.insertBefore(e,b.nTableReinsertBefore),i.css("width",b.sDestroyWidth).removeClass(d.sTable),(p=b.asDestroyStripes.length)&&f.children().each(function(a){h(this).addClass(b.asDestroyStripes[a%p])}));c=h.inArray(b,m.settings);-1!==c&&m.settings.splice(c,1)})});h.each(["column", "row","cell"],function(a,b){p(b+"s().every()",function(a){var d=this.selector.opts,e=this;return this.iterator(b,function(f,g,h,i,n){a.call(e[b](g,"cell"===b?h:d,"cell"===b?d:k),g,h,i,n)})})});p("i18n()",function(a,b,c){var d=this.context[0],a=Q(a)(d.oLanguage);a===k&&(a=b);c!==k&&h.isPlainObject(a)&&(a=a[c]!==k?a[c]:a._);return a.replace("%d",c)});m.version="1.10.11";m.settings=[];m.models={};m.models.oSearch={bCaseInsensitive:!0,sSearch:"",bRegex:!1,bSmart:!0};m.models.oRow={nTr:null,anCells:null, _aData:[],_aSortData:null,_aFilterData:null,_sFilterRow:null,_sRowStripe:"",src:null,idx:-1};m.models.oColumn={idx:null,aDataSort:null,asSorting:null,bSearchable:null,bSortable:null,bVisible:null,_sManualType:null,_bAttrSrc:!1,fnCreatedCell:null,fnGetData:null,fnSetData:null,mData:null,mRender:null,nTh:null,nTf:null,sClass:null,sContentPadding:null,sDefaultContent:null,sName:null,sSortDataType:"std",sSortingClass:null,sSortingClassJUI:null,sTitle:null,sType:null,sWidth:null,sWidthOrig:null};m.defaults= {aaData:null,aaSorting:[[0,"asc"]],aaSortingFixed:[],ajax:null,aLengthMenu:[10,25,50,100],aoColumns:null,aoColumnDefs:null,aoSearchCols:[],asStripeClasses:null,bAutoWidth:!0,bDeferRender:!1,bDestroy:!1,bFilter:!0,bInfo:!0,bJQueryUI:!1,bLengthChange:!0,bPaginate:!0,bProcessing:!1,bRetrieve:!1,bScrollCollapse:!1,bServerSide:!1,bSort:!0,bSortMulti:!0,bSortCellsTop:!1,bSortClasses:!0,bStateSave:!1,fnCreatedRow:null,fnDrawCallback:null,fnFooterCallback:null,fnFormatNumber:function(a){return a.toString().replace(/\B(?=(\d{3})+(?!\d))/g, this.oLanguage.sThousands)},fnHeaderCallback:null,fnInfoCallback:null,fnInitComplete:null,fnPreDrawCallback:null,fnRowCallback:null,fnServerData:null,fnServerParams:null,fnStateLoadCallback:function(a){try{return JSON.parse((-1===a.iStateDuration?sessionStorage:localStorage).getItem("DataTables_"+a.sInstance+"_"+location.pathname))}catch(b){}},fnStateLoadParams:null,fnStateLoaded:null,fnStateSaveCallback:function(a,b){try{(-1===a.iStateDuration?sessionStorage:localStorage).setItem("DataTables_"+a.sInstance+ "_"+location.pathname,JSON.stringify(b))}catch(c){}},fnStateSaveParams:null,iStateDuration:7200,iDeferLoading:null,iDisplayLength:10,iDisplayStart:0,iTabIndex:0,oClasses:{},oLanguage:{oAria:{sSortAscending:": activate to sort column ascending",sSortDescending:": activate to sort column descending"},oPaginate:{sFirst:"First",sLast:"Last",sNext:"Next",sPrevious:"Previous"},sEmptyTable:"No data available in table",sInfo:"Showing _START_ to _END_ of _TOTAL_ entries",sInfoEmpty:"Showing 0 to 0 of 0 entries", sInfoFiltered:"(filtered from _MAX_ total entries)",sInfoPostFix:"",sDecimal:"",sThousands:",",sLengthMenu:"Show _MENU_ entries",sLoadingRecords:"Loading...",sProcessing:"Processing...",sSearch:"Search:",sSearchPlaceholder:"",sUrl:"",sZeroRecords:"No matching records found"},oSearch:h.extend({},m.models.oSearch),sAjaxDataProp:"data",sAjaxSource:null,sDom:"lfrtip",searchDelay:null,sPaginationType:"simple_numbers",sScrollX:"",sScrollXInner:"",sScrollY:"",sServerMethod:"GET",renderer:null,rowId:"DT_RowId"}; Y(m.defaults);m.defaults.column={aDataSort:null,iDataSort:-1,asSorting:["asc","desc"],bSearchable:!0,bSortable:!0,bVisible:!0,fnCreatedCell:null,mData:null,mRender:null,sCellType:"td",sClass:"",sContentPadding:"",sDefaultContent:null,sName:"",sSortDataType:"std",sTitle:null,sType:null,sWidth:null};Y(m.defaults.column);m.models.oSettings={oFeatures:{bAutoWidth:null,bDeferRender:null,bFilter:null,bInfo:null,bLengthChange:null,bPaginate:null,bProcessing:null,bServerSide:null,bSort:null,bSortMulti:null, bSortClasses:null,bStateSave:null},oScroll:{bCollapse:null,iBarWidth:0,sX:null,sXInner:null,sY:null},oLanguage:{fnInfoCallback:null},oBrowser:{bScrollOversize:!1,bScrollbarLeft:!1,bBounding:!1,barWidth:0},ajax:null,aanFeatures:[],aoData:[],aiDisplay:[],aiDisplayMaster:[],aIds:{},aoColumns:[],aoHeader:[],aoFooter:[],oPreviousSearch:{},aoPreSearchCols:[],aaSorting:null,aaSortingFixed:[],asStripeClasses:null,asDestroyStripes:[],sDestroyWidth:0,aoRowCallback:[],aoHeaderCallback:[],aoFooterCallback:[], aoDrawCallback:[],aoRowCreatedCallback:[],aoPreDrawCallback:[],aoInitComplete:[],aoStateSaveParams:[],aoStateLoadParams:[],aoStateLoaded:[],sTableId:"",nTable:null,nTHead:null,nTFoot:null,nTBody:null,nTableWrapper:null,bDeferLoading:!1,bInitialised:!1,aoOpenRows:[],sDom:null,searchDelay:null,sPaginationType:"two_button",iStateDuration:0,aoStateSave:[],aoStateLoad:[],oSavedState:null,oLoadedState:null,sAjaxSource:null,sAjaxDataProp:null,bAjaxDataGet:!0,jqXHR:null,json:k,oAjaxData:k,fnServerData:null, aoServerParams:[],sServerMethod:null,fnFormatNumber:null,aLengthMenu:null,iDraw:0,bDrawing:!1,iDrawError:-1,_iDisplayLength:10,_iDisplayStart:0,_iRecordsTotal:0,_iRecordsDisplay:0,bJUI:null,oClasses:{},bFiltered:!1,bSorted:!1,bSortCellsTop:null,oInit:null,aoDestroyCallback:[],fnRecordsTotal:function(){return"ssp"==y(this)?1*this._iRecordsTotal:this.aiDisplayMaster.length},fnRecordsDisplay:function(){return"ssp"==y(this)?1*this._iRecordsDisplay:this.aiDisplay.length},fnDisplayEnd:function(){var a= this._iDisplayLength,b=this._iDisplayStart,c=b+a,d=this.aiDisplay.length,e=this.oFeatures,f=e.bPaginate;return e.bServerSide?!1===f||-1===a?b+d:Math.min(b+a,this._iRecordsDisplay):!f||c>d||-1===a?d:c},oInstance:null,sInstance:null,iTabIndex:0,nScrollHead:null,nScrollFoot:null,aLastSort:[],oPlugins:{},rowIdFn:null,rowId:null};m.ext=v={buttons:{},classes:{},builder:"-source-",errMode:"alert",feature:[],search:[],selector:{cell:[],column:[],row:[]},internal:{},legacy:{ajax:null},pager:{},renderer:{pageButton:{}, header:{}},order:{},type:{detect:[],search:{},order:{}},_unique:0,fnVersionCheck:m.fnVersionCheck,iApiIndex:0,oJUIClasses:{},sVersion:m.version};h.extend(v,{afnFiltering:v.search,aTypes:v.type.detect,ofnSearch:v.type.search,oSort:v.type.order,afnSortData:v.order,aoFeatures:v.feature,oApi:v.internal,oStdClasses:v.classes,oPagination:v.pager});h.extend(m.ext.classes,{sTable:"dataTable",sNoFooter:"no-footer",sPageButton:"paginate_button",sPageButtonActive:"current",sPageButtonDisabled:"disabled",sStripeOdd:"odd", sStripeEven:"even",sRowEmpty:"dataTables_empty",sWrapper:"dataTables_wrapper",sFilter:"dataTables_filter",sInfo:"dataTables_info",sPaging:"dataTables_paginate paging_",sLength:"dataTables_length",sProcessing:"dataTables_processing",sSortAsc:"sorting_asc",sSortDesc:"sorting_desc",sSortable:"sorting",sSortableAsc:"sorting_asc_disabled",sSortableDesc:"sorting_desc_disabled",sSortableNone:"sorting_disabled",sSortColumn:"sorting_",sFilterInput:"",sLengthSelect:"",sScrollWrapper:"dataTables_scroll",sScrollHead:"dataTables_scrollHead", sScrollHeadInner:"dataTables_scrollHeadInner",sScrollBody:"dataTables_scrollBody",sScrollFoot:"dataTables_scrollFoot",sScrollFootInner:"dataTables_scrollFootInner",sHeaderTH:"",sFooterTH:"",sSortJUIAsc:"",sSortJUIDesc:"",sSortJUI:"",sSortJUIAscAllowed:"",sSortJUIDescAllowed:"",sSortJUIWrapper:"",sSortIcon:"",sJUIHeader:"",sJUIFooter:""});var Ea="",Ea="",H=Ea+"ui-state-default",ia=Ea+"css_right ui-icon ui-icon-",Xb=Ea+"fg-toolbar ui-toolbar ui-widget-header ui-helper-clearfix";h.extend(m.ext.oJUIClasses, m.ext.classes,{sPageButton:"fg-button ui-button "+H,sPageButtonActive:"ui-state-disabled",sPageButtonDisabled:"ui-state-disabled",sPaging:"dataTables_paginate fg-buttonset ui-buttonset fg-buttonset-multi ui-buttonset-multi paging_",sSortAsc:H+" sorting_asc",sSortDesc:H+" sorting_desc",sSortable:H+" sorting",sSortableAsc:H+" sorting_asc_disabled",sSortableDesc:H+" sorting_desc_disabled",sSortableNone:H+" sorting_disabled",sSortJUIAsc:ia+"triangle-1-n",sSortJUIDesc:ia+"triangle-1-s",sSortJUI:ia+"carat-2-n-s", sSortJUIAscAllowed:ia+"carat-1-n",sSortJUIDescAllowed:ia+"carat-1-s",sSortJUIWrapper:"DataTables_sort_wrapper",sSortIcon:"DataTables_sort_icon",sScrollHead:"dataTables_scrollHead "+H,sScrollFoot:"dataTables_scrollFoot "+H,sHeaderTH:H,sFooterTH:H,sJUIHeader:Xb+" ui-corner-tl ui-corner-tr",sJUIFooter:Xb+" ui-corner-bl ui-corner-br"});var Mb=m.ext.pager;h.extend(Mb,{simple:function(){return["previous","next"]},full:function(){return["first","previous","next","last"]},numbers:function(a,b){return[Aa(a, b)]},simple_numbers:function(a,b){return["previous",Aa(a,b),"next"]},full_numbers:function(a,b){return["first","previous",Aa(a,b),"next","last"]},_numbers:Aa,numbers_length:7});h.extend(!0,m.ext.renderer,{pageButton:{_:function(a,b,c,d,e,f){var g=a.oClasses,j=a.oLanguage.oPaginate,i=a.oLanguage.oAria.paginate||{},k,l,m=0,p=function(b,d){var o,r,u,s,v=function(b){Ta(a,b.data.action,true)};o=0;for(r=d.length;o<r;o++){s=d[o];if(h.isArray(s)){u=h("<"+(s.DT_el||"div")+"/>").appendTo(b);p(u,s)}else{k=null; l="";switch(s){case "ellipsis":b.append('<span class="ellipsis">&#x2026;</span>');break;case "first":k=j.sFirst;l=s+(e>0?"":" "+g.sPageButtonDisabled);break;case "previous":k=j.sPrevious;l=s+(e>0?"":" "+g.sPageButtonDisabled);break;case "next":k=j.sNext;l=s+(e<f-1?"":" "+g.sPageButtonDisabled);break;case "last":k=j.sLast;l=s+(e<f-1?"":" "+g.sPageButtonDisabled);break;default:k=s+1;l=e===s?g.sPageButtonActive:""}if(k!==null){u=h("<a>",{"class":g.sPageButton+" "+l,"aria-controls":a.sTableId,"aria-label":i[s],"data-dt-idx":m,tabindex:a.iTabIndex,id:c===0&&typeof s==="string"?a.sTableId+"_"+s:null}).html(k).appendTo(b);Wa(u,{action:s},v);m++}}}},r;try{r=h(b).find(I.activeElement).data("dt-idx")}catch(o){}p(h(b).empty(),d);r&&h(b).find("[data-dt-idx="+r+"]").focus()}}});h.extend(m.ext.type.detect,[function(a,b){var c=b.oLanguage.sDecimal;return Za(a,c)?"num"+c:null},function(a){if(a&&!(a instanceof Date)&&(!bc.test(a)||!cc.test(a)))return null;var b=Date.parse(a);return null!==b&&!isNaN(b)||M(a)?"date":null},function(a,b){var c=b.oLanguage.sDecimal;return Za(a,c,!0)?"num-fmt"+c:null},function(a,b){var c=b.oLanguage.sDecimal;return Rb(a,c)?"html-num"+c:null},function(a,b){var c=b.oLanguage.sDecimal;return Rb(a,c,!0)?"html-num-fmt"+c:null},function(a){return M(a)||"string"===typeof a&&-1!==a.indexOf("<")?"html":null}]);h.extend(m.ext.type.search,{html:function(a){return M(a)?a:"string"===typeof a?a.replace(Ob," ").replace(Ca,""):""},string:function(a){return M(a)?a:"string"===typeof a?a.replace(Ob, " "):a}});var Ba=function(a,b,c,d){if(0!==a&&(!a||"-"===a))return-Infinity;b&&(a=Qb(a,b));a.replace&&(c&&(a=a.replace(c,"")),d&&(a=a.replace(d,"")));return 1*a};h.extend(v.type.order,{"date-pre":function(a){return Date.parse(a)||0},"html-pre":function(a){return M(a)?"":a.replace?a.replace(/<.*?>/g,"").toLowerCase():a+""},"string-pre":function(a){return M(a)?"":"string"===typeof a?a.toLowerCase():!a.toString?"":a.toString()},"string-asc":function(a,b){return a<b?-1:a>b?1:0},"string-desc":function(a,b){return a<b?1:a>b?-1:0}});db("");h.extend(!0,m.ext.renderer,{header:{_:function(a,b,c,d){h(a.nTable).on("order.dt.DT",function(e,f,g,h){if(a===f){e=c.idx;b.removeClass(c.sSortingClass+" "+d.sSortAsc+" "+d.sSortDesc).addClass(h[e]=="asc"?d.sSortAsc:h[e]=="desc"?d.sSortDesc:c.sSortingClass)}})},jqueryui:function(a,b,c,d){h("<div/>").addClass(d.sSortJUIWrapper).append(b.contents()).append(h("<span/>").addClass(d.sSortIcon+" "+c.sSortingClassJUI)).appendTo(b);h(a.nTable).on("order.dt.DT",function(e,f,g,h){if(a===f){e=c.idx;b.removeClass(d.sSortAsc+" "+d.sSortDesc).addClass(h[e]=="asc"?d.sSortAsc:h[e]=="desc"?d.sSortDesc:c.sSortingClass);b.find("span."+d.sSortIcon).removeClass(d.sSortJUIAsc+" "+d.sSortJUIDesc+" "+d.sSortJUI+" "+d.sSortJUIAscAllowed+" "+d.sSortJUIDescAllowed).addClass(h[e]=="asc"?d.sSortJUIAsc:h[e]=="desc"?d.sSortJUIDesc:c.sSortingClassJUI)}})}}});var Yb=function(a){return"string"===typeof a?a.replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,"&quot;"):a};m.render={number:function(a,b,c,d,e){return{display:function(f){if("number"!==typeof f&&"string"!==typeof f)return f;var g=0>f?"-":"",h=parseFloat(f);if(isNaN(h))return Yb(f);f=Math.abs(h);h=parseInt(f,10);f=c?b+(f-h).toFixed(c).substring(2):"";return g+(d||"")+h.toString().replace(/\B(?=(\d{3})+(?!\d))/g,a)+f+(e||"")}}},text:function(){return{display:Yb}}};h.extend(m.ext.internal,{_fnExternApiFunc:Nb,_fnBuildAjax:ra,_fnAjaxUpdate:lb,_fnAjaxParameters:ub,_fnAjaxUpdateDraw:vb,_fnAjaxDataSrc:sa,_fnAddColumn:Ga,_fnColumnOptions:ja, _fnAdjustColumnSizing:U,_fnVisibleToColumnIndex:Z,_fnColumnIndexToVisible:$,_fnVisbleColumns:aa,_fnGetColumns:la,_fnColumnTypes:Ia,_fnApplyColumnDefs:ib,_fnHungarianMap:Y,_fnCamelToHungarian:K,_fnLanguageCompat:Fa,_fnBrowserDetect:gb,_fnAddData:N,_fnAddTr:ma,_fnNodeToDataIndex:function(a,b){return b._DT_RowIndex!==k?b._DT_RowIndex:null},_fnNodeToColumnIndex:function(a,b,c){return h.inArray(c,a.aoData[b].anCells)},_fnGetCellData:B,_fnSetCellData:jb,_fnSplitObjNotation:La,_fnGetObjectDataFn:Q,_fnSetObjectDataFn:R, _fnGetDataMaster:Ma,_fnClearTable:na,_fnDeleteIndex:oa,_fnInvalidate:ca,_fnGetRowElements:Ka,_fnCreateTr:Ja,_fnBuildHead:kb,_fnDrawHead:ea,_fnDraw:O,_fnReDraw:T,_fnAddOptionsHtml:nb,_fnDetectHeader:da,_fnGetUniqueThs:qa,_fnFeatureHtmlFilter:pb,_fnFilterComplete:fa,_fnFilterCustom:yb,_fnFilterColumn:xb,_fnFilter:wb,_fnFilterCreateSearch:Qa,_fnEscapeRegex:va,_fnFilterData:zb,_fnFeatureHtmlInfo:sb,_fnUpdateInfo:Cb,_fnInfoMacros:Db,_fnInitialise:ga,_fnInitComplete:ta,_fnLengthChange:Ra,_fnFeatureHtmlLength:ob, _fnFeatureHtmlPaginate:tb,_fnPageChange:Ta,_fnFeatureHtmlProcessing:qb,_fnProcessingDisplay:C,_fnFeatureHtmlTable:rb,_fnScrollDraw:ka,_fnApplyToChildren:J,_fnCalculateColumnWidths:Ha,_fnThrottle:ua,_fnConvertToWidth:Fb,_fnGetWidestNode:Gb,_fnGetMaxLenString:Hb,_fnStringToCss:x,_fnSortFlatten:W,_fnSort:mb,_fnSortAria:Jb,_fnSortListener:Va,_fnSortAttachListener:Oa,_fnSortingClasses:xa,_fnSortData:Ib,_fnSaveState:ya,_fnLoadState:Kb,_fnSettingsFromNode:za,_fnLog:L,_fnMap:E,_fnBindAction:Wa,_fnCallbackReg:z, _fnCallbackFire:u,_fnLengthOverflow:Sa,_fnRenderer:Pa,_fnDataSource:y,_fnRowAttributes:Na,_fnCalculateEnd:function(){}});h.fn.dataTable=m;m.$=h;h.fn.dataTableSettings=m.settings;h.fn.dataTableExt=m.ext;h.fn.DataTable=function(a){return h(this).dataTable(a).api()};h.each(m,function(a,b){h.fn.DataTable[a]=b});return h.fn.dataTable}); \ No newline at end of file diff --git a/admin/plugins/iCheck/all.css b/admin/plugins/iCheck/all.css deleted file mode 100644 index 6439b74..0000000 --- a/admin/plugins/iCheck/all.css +++ /dev/null @@ -1,61 +0,0 @@ -/* iCheck plugin skins ------------------------------------ */ -@import url("minimal/_all.css"); -/* -@import url("minimal/minimal.css"); -@import url("minimal/red.css"); -@import url("minimal/green.css"); -@import url("minimal/blue.css"); -@import url("minimal/aero.css"); -@import url("minimal/grey.css"); -@import url("minimal/orange.css"); -@import url("minimal/yellow.css"); -@import url("minimal/pink.css"); -@import url("minimal/purple.css"); -*/ - -@import url("square/_all.css"); -/* -@import url("square/square.css"); -@import url("square/red.css"); -@import url("square/green.css"); -@import url("square/blue.css"); -@import url("square/aero.css"); -@import url("square/grey.css"); -@import url("square/orange.css"); -@import url("square/yellow.css"); -@import url("square/pink.css"); -@import url("square/purple.css"); -*/ - -@import url("flat/_all.css"); -/* -@import url("flat/flat.css"); -@import url("flat/red.css"); -@import url("flat/green.css"); -@import url("flat/blue.css"); -@import url("flat/aero.css"); -@import url("flat/grey.css"); -@import url("flat/orange.css"); -@import url("flat/yellow.css"); -@import url("flat/pink.css"); -@import url("flat/purple.css"); -*/ - -@import url("line/_all.css"); -/* -@import url("line/line.css"); -@import url("line/red.css"); -@import url("line/green.css"); -@import url("line/blue.css"); -@import url("line/aero.css"); -@import url("line/grey.css"); -@import url("line/orange.css"); -@import url("line/yellow.css"); -@import url("line/pink.css"); -@import url("line/purple.css"); -*/ - -@import url("polaris/polaris.css"); - -@import url("futurico/futurico.css"); \ No newline at end of file diff --git a/admin/plugins/iCheck/flat/_all.css b/admin/plugins/iCheck/flat/_all.css deleted file mode 100644 index 21647b5..0000000 --- a/admin/plugins/iCheck/flat/_all.css +++ /dev/null @@ -1,560 +0,0 @@ -/* iCheck plugin Flat skin ------------------------------------ */ -.icheckbox_flat, -.iradio_flat { - display: inline-block; - *display: inline; - vertical-align: middle; - margin: 0; - padding: 0; - width: 20px; - height: 20px; - background: url(flat.png) no-repeat; - border: none; - cursor: pointer; -} - -.icheckbox_flat { - background-position: 0 0; -} - .icheckbox_flat.checked { - background-position: -22px 0; - } - .icheckbox_flat.disabled { - background-position: -44px 0; - cursor: default; - } - .icheckbox_flat.checked.disabled { - background-position: -66px 0; - } - -.iradio_flat { - background-position: -88px 0; -} - .iradio_flat.checked { - background-position: -110px 0; - } - .iradio_flat.disabled { - background-position: -132px 0; - cursor: default; - } - .iradio_flat.checked.disabled { - background-position: -154px 0; - } - -/* Retina support */ -@media only screen and (-webkit-min-device-pixel-ratio: 1.5), - only screen and (-moz-min-device-pixel-ratio: 1.5), - only screen and (-o-min-device-pixel-ratio: 3/2), - only screen and (min-device-pixel-ratio: 1.5) { - .icheckbox_flat, - .iradio_flat { - background-image: url(flat@2x.png); - -webkit-background-size: 176px 22px; - background-size: 176px 22px; - } -} - -/* red */ -.icheckbox_flat-red, -.iradio_flat-red { - display: inline-block; - *display: inline; - vertical-align: middle; - margin: 0; - padding: 0; - width: 20px; - height: 20px; - background: url(red.png) no-repeat; - border: none; - cursor: pointer; -} - -.icheckbox_flat-red { - background-position: 0 0; -} - .icheckbox_flat-red.checked { - background-position: -22px 0; - } - .icheckbox_flat-red.disabled { - background-position: -44px 0; - cursor: default; - } - .icheckbox_flat-red.checked.disabled { - background-position: -66px 0; - } - -.iradio_flat-red { - background-position: -88px 0; -} - .iradio_flat-red.checked { - background-position: -110px 0; - } - .iradio_flat-red.disabled { - background-position: -132px 0; - cursor: default; - } - .iradio_flat-red.checked.disabled { - background-position: -154px 0; - } - -/* Retina support */ -@media only screen and (-webkit-min-device-pixel-ratio: 1.5), - only screen and (-moz-min-device-pixel-ratio: 1.5), - only screen and (-o-min-device-pixel-ratio: 3/2), - only screen and (min-device-pixel-ratio: 1.5) { - .icheckbox_flat-red, - .iradio_flat-red { - background-image: url(red@2x.png); - -webkit-background-size: 176px 22px; - background-size: 176px 22px; - } -} - -/* green */ -.icheckbox_flat-green, -.iradio_flat-green { - display: inline-block; - *display: inline; - vertical-align: middle; - margin: 0; - padding: 0; - width: 20px; - height: 20px; - background: url(green.png) no-repeat; - border: none; - cursor: pointer; -} - -.icheckbox_flat-green { - background-position: 0 0; -} - .icheckbox_flat-green.checked { - background-position: -22px 0; - } - .icheckbox_flat-green.disabled { - background-position: -44px 0; - cursor: default; - } - .icheckbox_flat-green.checked.disabled { - background-position: -66px 0; - } - -.iradio_flat-green { - background-position: -88px 0; -} - .iradio_flat-green.checked { - background-position: -110px 0; - } - .iradio_flat-green.disabled { - background-position: -132px 0; - cursor: default; - } - .iradio_flat-green.checked.disabled { - background-position: -154px 0; - } - -/* Retina support */ -@media only screen and (-webkit-min-device-pixel-ratio: 1.5), - only screen and (-moz-min-device-pixel-ratio: 1.5), - only screen and (-o-min-device-pixel-ratio: 3/2), - only screen and (min-device-pixel-ratio: 1.5) { - .icheckbox_flat-green, - .iradio_flat-green { - background-image: url(green@2x.png); - -webkit-background-size: 176px 22px; - background-size: 176px 22px; - } -} - -/* blue */ -.icheckbox_flat-blue, -.iradio_flat-blue { - display: inline-block; - *display: inline; - vertical-align: middle; - margin: 0; - padding: 0; - width: 20px; - height: 20px; - background: url(blue.png) no-repeat; - border: none; - cursor: pointer; -} - -.icheckbox_flat-blue { - background-position: 0 0; -} - .icheckbox_flat-blue.checked { - background-position: -22px 0; - } - .icheckbox_flat-blue.disabled { - background-position: -44px 0; - cursor: default; - } - .icheckbox_flat-blue.checked.disabled { - background-position: -66px 0; - } - -.iradio_flat-blue { - background-position: -88px 0; -} - .iradio_flat-blue.checked { - background-position: -110px 0; - } - .iradio_flat-blue.disabled { - background-position: -132px 0; - cursor: default; - } - .iradio_flat-blue.checked.disabled { - background-position: -154px 0; - } - -/* Retina support */ -@media only screen and (-webkit-min-device-pixel-ratio: 1.5), - only screen and (-moz-min-device-pixel-ratio: 1.5), - only screen and (-o-min-device-pixel-ratio: 3/2), - only screen and (min-device-pixel-ratio: 1.5) { - .icheckbox_flat-blue, - .iradio_flat-blue { - background-image: url(blue@2x.png); - -webkit-background-size: 176px 22px; - background-size: 176px 22px; - } -} - -/* aero */ -.icheckbox_flat-aero, -.iradio_flat-aero { - display: inline-block; - *display: inline; - vertical-align: middle; - margin: 0; - padding: 0; - width: 20px; - height: 20px; - background: url(aero.png) no-repeat; - border: none; - cursor: pointer; -} - -.icheckbox_flat-aero { - background-position: 0 0; -} - .icheckbox_flat-aero.checked { - background-position: -22px 0; - } - .icheckbox_flat-aero.disabled { - background-position: -44px 0; - cursor: default; - } - .icheckbox_flat-aero.checked.disabled { - background-position: -66px 0; - } - -.iradio_flat-aero { - background-position: -88px 0; -} - .iradio_flat-aero.checked { - background-position: -110px 0; - } - .iradio_flat-aero.disabled { - background-position: -132px 0; - cursor: default; - } - .iradio_flat-aero.checked.disabled { - background-position: -154px 0; - } - -/* Retina support */ -@media only screen and (-webkit-min-device-pixel-ratio: 1.5), - only screen and (-moz-min-device-pixel-ratio: 1.5), - only screen and (-o-min-device-pixel-ratio: 3/2), - only screen and (min-device-pixel-ratio: 1.5) { - .icheckbox_flat-aero, - .iradio_flat-aero { - background-image: url(aero@2x.png); - -webkit-background-size: 176px 22px; - background-size: 176px 22px; - } -} - -/* grey */ -.icheckbox_flat-grey, -.iradio_flat-grey { - display: inline-block; - *display: inline; - vertical-align: middle; - margin: 0; - padding: 0; - width: 20px; - height: 20px; - background: url(grey.png) no-repeat; - border: none; - cursor: pointer; -} - -.icheckbox_flat-grey { - background-position: 0 0; -} - .icheckbox_flat-grey.checked { - background-position: -22px 0; - } - .icheckbox_flat-grey.disabled { - background-position: -44px 0; - cursor: default; - } - .icheckbox_flat-grey.checked.disabled { - background-position: -66px 0; - } - -.iradio_flat-grey { - background-position: -88px 0; -} - .iradio_flat-grey.checked { - background-position: -110px 0; - } - .iradio_flat-grey.disabled { - background-position: -132px 0; - cursor: default; - } - .iradio_flat-grey.checked.disabled { - background-position: -154px 0; - } - -/* Retina support */ -@media only screen and (-webkit-min-device-pixel-ratio: 1.5), - only screen and (-moz-min-device-pixel-ratio: 1.5), - only screen and (-o-min-device-pixel-ratio: 3/2), - only screen and (min-device-pixel-ratio: 1.5) { - .icheckbox_flat-grey, - .iradio_flat-grey { - background-image: url(grey@2x.png); - -webkit-background-size: 176px 22px; - background-size: 176px 22px; - } -} - -/* orange */ -.icheckbox_flat-orange, -.iradio_flat-orange { - display: inline-block; - *display: inline; - vertical-align: middle; - margin: 0; - padding: 0; - width: 20px; - height: 20px; - background: url(orange.png) no-repeat; - border: none; - cursor: pointer; -} - -.icheckbox_flat-orange { - background-position: 0 0; -} - .icheckbox_flat-orange.checked { - background-position: -22px 0; - } - .icheckbox_flat-orange.disabled { - background-position: -44px 0; - cursor: default; - } - .icheckbox_flat-orange.checked.disabled { - background-position: -66px 0; - } - -.iradio_flat-orange { - background-position: -88px 0; -} - .iradio_flat-orange.checked { - background-position: -110px 0; - } - .iradio_flat-orange.disabled { - background-position: -132px 0; - cursor: default; - } - .iradio_flat-orange.checked.disabled { - background-position: -154px 0; - } - -/* Retina support */ -@media only screen and (-webkit-min-device-pixel-ratio: 1.5), - only screen and (-moz-min-device-pixel-ratio: 1.5), - only screen and (-o-min-device-pixel-ratio: 3/2), - only screen and (min-device-pixel-ratio: 1.5) { - .icheckbox_flat-orange, - .iradio_flat-orange { - background-image: url(orange@2x.png); - -webkit-background-size: 176px 22px; - background-size: 176px 22px; - } -} - -/* yellow */ -.icheckbox_flat-yellow, -.iradio_flat-yellow { - display: inline-block; - *display: inline; - vertical-align: middle; - margin: 0; - padding: 0; - width: 20px; - height: 20px; - background: url(yellow.png) no-repeat; - border: none; - cursor: pointer; -} - -.icheckbox_flat-yellow { - background-position: 0 0; -} - .icheckbox_flat-yellow.checked { - background-position: -22px 0; - } - .icheckbox_flat-yellow.disabled { - background-position: -44px 0; - cursor: default; - } - .icheckbox_flat-yellow.checked.disabled { - background-position: -66px 0; - } - -.iradio_flat-yellow { - background-position: -88px 0; -} - .iradio_flat-yellow.checked { - background-position: -110px 0; - } - .iradio_flat-yellow.disabled { - background-position: -132px 0; - cursor: default; - } - .iradio_flat-yellow.checked.disabled { - background-position: -154px 0; - } - -/* Retina support */ -@media only screen and (-webkit-min-device-pixel-ratio: 1.5), - only screen and (-moz-min-device-pixel-ratio: 1.5), - only screen and (-o-min-device-pixel-ratio: 3/2), - only screen and (min-device-pixel-ratio: 1.5) { - .icheckbox_flat-yellow, - .iradio_flat-yellow { - background-image: url(yellow@2x.png); - -webkit-background-size: 176px 22px; - background-size: 176px 22px; - } -} - -/* pink */ -.icheckbox_flat-pink, -.iradio_flat-pink { - display: inline-block; - *display: inline; - vertical-align: middle; - margin: 0; - padding: 0; - width: 20px; - height: 20px; - background: url(pink.png) no-repeat; - border: none; - cursor: pointer; -} - -.icheckbox_flat-pink { - background-position: 0 0; -} - .icheckbox_flat-pink.checked { - background-position: -22px 0; - } - .icheckbox_flat-pink.disabled { - background-position: -44px 0; - cursor: default; - } - .icheckbox_flat-pink.checked.disabled { - background-position: -66px 0; - } - -.iradio_flat-pink { - background-position: -88px 0; -} - .iradio_flat-pink.checked { - background-position: -110px 0; - } - .iradio_flat-pink.disabled { - background-position: -132px 0; - cursor: default; - } - .iradio_flat-pink.checked.disabled { - background-position: -154px 0; - } - -/* Retina support */ -@media only screen and (-webkit-min-device-pixel-ratio: 1.5), - only screen and (-moz-min-device-pixel-ratio: 1.5), - only screen and (-o-min-device-pixel-ratio: 3/2), - only screen and (min-device-pixel-ratio: 1.5) { - .icheckbox_flat-pink, - .iradio_flat-pink { - background-image: url(pink@2x.png); - -webkit-background-size: 176px 22px; - background-size: 176px 22px; - } -} - -/* purple */ -.icheckbox_flat-purple, -.iradio_flat-purple { - display: inline-block; - *display: inline; - vertical-align: middle; - margin: 0; - padding: 0; - width: 20px; - height: 20px; - background: url(purple.png) no-repeat; - border: none; - cursor: pointer; -} - -.icheckbox_flat-purple { - background-position: 0 0; -} - .icheckbox_flat-purple.checked { - background-position: -22px 0; - } - .icheckbox_flat-purple.disabled { - background-position: -44px 0; - cursor: default; - } - .icheckbox_flat-purple.checked.disabled { - background-position: -66px 0; - } - -.iradio_flat-purple { - background-position: -88px 0; -} - .iradio_flat-purple.checked { - background-position: -110px 0; - } - .iradio_flat-purple.disabled { - background-position: -132px 0; - cursor: default; - } - .iradio_flat-purple.checked.disabled { - background-position: -154px 0; - } - -/* Retina support */ -@media only screen and (-webkit-min-device-pixel-ratio: 1.5), - only screen and (-moz-min-device-pixel-ratio: 1.5), - only screen and (-o-min-device-pixel-ratio: 3/2), - only screen and (min-device-pixel-ratio: 1.5) { - .icheckbox_flat-purple, - .iradio_flat-purple { - background-image: url(purple@2x.png); - -webkit-background-size: 176px 22px; - background-size: 176px 22px; - } -} \ No newline at end of file diff --git a/admin/plugins/iCheck/flat/aero.css b/admin/plugins/iCheck/flat/aero.css deleted file mode 100644 index 98fd65c..0000000 --- a/admin/plugins/iCheck/flat/aero.css +++ /dev/null @@ -1,56 +0,0 @@ -/* iCheck plugin Flat skin, aero ------------------------------------ */ -.icheckbox_flat-aero, -.iradio_flat-aero { - display: inline-block; - *display: inline; - vertical-align: middle; - margin: 0; - padding: 0; - width: 20px; - height: 20px; - background: url(aero.png) no-repeat; - border: none; - cursor: pointer; -} - -.icheckbox_flat-aero { - background-position: 0 0; -} - .icheckbox_flat-aero.checked { - background-position: -22px 0; - } - .icheckbox_flat-aero.disabled { - background-position: -44px 0; - cursor: default; - } - .icheckbox_flat-aero.checked.disabled { - background-position: -66px 0; - } - -.iradio_flat-aero { - background-position: -88px 0; -} - .iradio_flat-aero.checked { - background-position: -110px 0; - } - .iradio_flat-aero.disabled { - background-position: -132px 0; - cursor: default; - } - .iradio_flat-aero.checked.disabled { - background-position: -154px 0; - } - -/* Retina support */ -@media only screen and (-webkit-min-device-pixel-ratio: 1.5), - only screen and (-moz-min-device-pixel-ratio: 1.5), - only screen and (-o-min-device-pixel-ratio: 3/2), - only screen and (min-device-pixel-ratio: 1.5) { - .icheckbox_flat-aero, - .iradio_flat-aero { - background-image: url(aero@2x.png); - -webkit-background-size: 176px 22px; - background-size: 176px 22px; - } -} \ No newline at end of file diff --git a/admin/plugins/iCheck/flat/aero.png b/admin/plugins/iCheck/flat/aero.png deleted file mode 100644 index f4277aa..0000000 Binary files a/admin/plugins/iCheck/flat/aero.png and /dev/null differ diff --git a/admin/plugins/iCheck/flat/aero@2x.png b/admin/plugins/iCheck/flat/aero@2x.png deleted file mode 100644 index a9a7494..0000000 Binary files a/admin/plugins/iCheck/flat/aero@2x.png and /dev/null differ diff --git a/admin/plugins/iCheck/flat/blue.css b/admin/plugins/iCheck/flat/blue.css deleted file mode 100644 index 0783674..0000000 --- a/admin/plugins/iCheck/flat/blue.css +++ /dev/null @@ -1,56 +0,0 @@ -/* iCheck plugin Flat skin, blue ------------------------------------ */ -.icheckbox_flat-blue, -.iradio_flat-blue { - display: inline-block; - *display: inline; - vertical-align: middle; - margin: 0; - padding: 0; - width: 20px; - height: 20px; - background: url(blue.png) no-repeat; - border: none; - cursor: pointer; -} - -.icheckbox_flat-blue { - background-position: 0 0; -} - .icheckbox_flat-blue.checked { - background-position: -22px 0; - } - .icheckbox_flat-blue.disabled { - background-position: -44px 0; - cursor: default; - } - .icheckbox_flat-blue.checked.disabled { - background-position: -66px 0; - } - -.iradio_flat-blue { - background-position: -88px 0; -} - .iradio_flat-blue.checked { - background-position: -110px 0; - } - .iradio_flat-blue.disabled { - background-position: -132px 0; - cursor: default; - } - .iradio_flat-blue.checked.disabled { - background-position: -154px 0; - } - -/* Retina support */ -@media only screen and (-webkit-min-device-pixel-ratio: 1.5), - only screen and (-moz-min-device-pixel-ratio: 1.5), - only screen and (-o-min-device-pixel-ratio: 3/2), - only screen and (min-device-pixel-ratio: 1.5) { - .icheckbox_flat-blue, - .iradio_flat-blue { - background-image: url(blue@2x.png); - -webkit-background-size: 176px 22px; - background-size: 176px 22px; - } -} \ No newline at end of file diff --git a/admin/plugins/iCheck/flat/blue.png b/admin/plugins/iCheck/flat/blue.png deleted file mode 100644 index 4b6ef98..0000000 Binary files a/admin/plugins/iCheck/flat/blue.png and /dev/null differ diff --git a/admin/plugins/iCheck/flat/blue@2x.png b/admin/plugins/iCheck/flat/blue@2x.png deleted file mode 100644 index d52da05..0000000 Binary files a/admin/plugins/iCheck/flat/blue@2x.png and /dev/null differ diff --git a/admin/plugins/iCheck/flat/flat.css b/admin/plugins/iCheck/flat/flat.css deleted file mode 100644 index 418620e..0000000 --- a/admin/plugins/iCheck/flat/flat.css +++ /dev/null @@ -1,56 +0,0 @@ -/* iCheck plugin flat skin, black ------------------------------------ */ -.icheckbox_flat, -.iradio_flat { - display: inline-block; - *display: inline; - vertical-align: middle; - margin: 0; - padding: 0; - width: 20px; - height: 20px; - background: url(flat.png) no-repeat; - border: none; - cursor: pointer; -} - -.icheckbox_flat { - background-position: 0 0; -} - .icheckbox_flat.checked { - background-position: -22px 0; - } - .icheckbox_flat.disabled { - background-position: -44px 0; - cursor: default; - } - .icheckbox_flat.checked.disabled { - background-position: -66px 0; - } - -.iradio_flat { - background-position: -88px 0; -} - .iradio_flat.checked { - background-position: -110px 0; - } - .iradio_flat.disabled { - background-position: -132px 0; - cursor: default; - } - .iradio_flat.checked.disabled { - background-position: -154px 0; - } - -/* Retina support */ -@media only screen and (-webkit-min-device-pixel-ratio: 1.5), - only screen and (-moz-min-device-pixel-ratio: 1.5), - only screen and (-o-min-device-pixel-ratio: 3/2), - only screen and (min-device-pixel-ratio: 1.5) { - .icheckbox_flat, - .iradio_flat { - background-image: url(flat@2x.png); - -webkit-background-size: 176px 22px; - background-size: 176px 22px; - } -} \ No newline at end of file diff --git a/admin/plugins/iCheck/flat/flat.png b/admin/plugins/iCheck/flat/flat.png deleted file mode 100644 index 15af826..0000000 Binary files a/admin/plugins/iCheck/flat/flat.png and /dev/null differ diff --git a/admin/plugins/iCheck/flat/flat@2x.png b/admin/plugins/iCheck/flat/flat@2x.png deleted file mode 100644 index e70e438..0000000 Binary files a/admin/plugins/iCheck/flat/flat@2x.png and /dev/null differ diff --git a/admin/plugins/iCheck/flat/green.css b/admin/plugins/iCheck/flat/green.css deleted file mode 100644 index c9d17c1..0000000 --- a/admin/plugins/iCheck/flat/green.css +++ /dev/null @@ -1,56 +0,0 @@ -/* iCheck plugin Flat skin, green ------------------------------------ */ -.icheckbox_flat-green, -.iradio_flat-green { - display: inline-block; - *display: inline; - vertical-align: middle; - margin: 0; - padding: 0; - width: 20px; - height: 20px; - background: url(green.png) no-repeat; - border: none; - cursor: pointer; -} - -.icheckbox_flat-green { - background-position: 0 0; -} - .icheckbox_flat-green.checked { - background-position: -22px 0; - } - .icheckbox_flat-green.disabled { - background-position: -44px 0; - cursor: default; - } - .icheckbox_flat-green.checked.disabled { - background-position: -66px 0; - } - -.iradio_flat-green { - background-position: -88px 0; -} - .iradio_flat-green.checked { - background-position: -110px 0; - } - .iradio_flat-green.disabled { - background-position: -132px 0; - cursor: default; - } - .iradio_flat-green.checked.disabled { - background-position: -154px 0; - } - -/* Retina support */ -@media only screen and (-webkit-min-device-pixel-ratio: 1.5), - only screen and (-moz-min-device-pixel-ratio: 1.5), - only screen and (-o-min-device-pixel-ratio: 3/2), - only screen and (min-device-pixel-ratio: 1.5) { - .icheckbox_flat-green, - .iradio_flat-green { - background-image: url(green@2x.png); - -webkit-background-size: 176px 22px; - background-size: 176px 22px; - } -} \ No newline at end of file diff --git a/admin/plugins/iCheck/flat/green.png b/admin/plugins/iCheck/flat/green.png deleted file mode 100644 index 6b303fb..0000000 Binary files a/admin/plugins/iCheck/flat/green.png and /dev/null differ diff --git a/admin/plugins/iCheck/flat/green@2x.png b/admin/plugins/iCheck/flat/green@2x.png deleted file mode 100644 index 92b4411..0000000 Binary files a/admin/plugins/iCheck/flat/green@2x.png and /dev/null differ diff --git a/admin/plugins/iCheck/flat/grey.css b/admin/plugins/iCheck/flat/grey.css deleted file mode 100644 index a451650..0000000 --- a/admin/plugins/iCheck/flat/grey.css +++ /dev/null @@ -1,56 +0,0 @@ -/* iCheck plugin Flat skin, grey ------------------------------------ */ -.icheckbox_flat-grey, -.iradio_flat-grey { - display: inline-block; - *display: inline; - vertical-align: middle; - margin: 0; - padding: 0; - width: 20px; - height: 20px; - background: url(grey.png) no-repeat; - border: none; - cursor: pointer; -} - -.icheckbox_flat-grey { - background-position: 0 0; -} - .icheckbox_flat-grey.checked { - background-position: -22px 0; - } - .icheckbox_flat-grey.disabled { - background-position: -44px 0; - cursor: default; - } - .icheckbox_flat-grey.checked.disabled { - background-position: -66px 0; - } - -.iradio_flat-grey { - background-position: -88px 0; -} - .iradio_flat-grey.checked { - background-position: -110px 0; - } - .iradio_flat-grey.disabled { - background-position: -132px 0; - cursor: default; - } - .iradio_flat-grey.checked.disabled { - background-position: -154px 0; - } - -/* Retina support */ -@media only screen and (-webkit-min-device-pixel-ratio: 1.5), - only screen and (-moz-min-device-pixel-ratio: 1.5), - only screen and (-o-min-device-pixel-ratio: 3/2), - only screen and (min-device-pixel-ratio: 1.5) { - .icheckbox_flat-grey, - .iradio_flat-grey { - background-image: url(grey@2x.png); - -webkit-background-size: 176px 22px; - background-size: 176px 22px; - } -} \ No newline at end of file diff --git a/admin/plugins/iCheck/flat/grey.png b/admin/plugins/iCheck/flat/grey.png deleted file mode 100644 index c6e2873..0000000 Binary files a/admin/plugins/iCheck/flat/grey.png and /dev/null differ diff --git a/admin/plugins/iCheck/flat/grey@2x.png b/admin/plugins/iCheck/flat/grey@2x.png deleted file mode 100644 index 0b47b1c..0000000 Binary files a/admin/plugins/iCheck/flat/grey@2x.png and /dev/null differ diff --git a/admin/plugins/iCheck/flat/orange.css b/admin/plugins/iCheck/flat/orange.css deleted file mode 100644 index 8c9c929..0000000 --- a/admin/plugins/iCheck/flat/orange.css +++ /dev/null @@ -1,56 +0,0 @@ -/* iCheck plugin Flat skin, orange ------------------------------------ */ -.icheckbox_flat-orange, -.iradio_flat-orange { - display: inline-block; - *display: inline; - vertical-align: middle; - margin: 0; - padding: 0; - width: 20px; - height: 20px; - background: url(orange.png) no-repeat; - border: none; - cursor: pointer; -} - -.icheckbox_flat-orange { - background-position: 0 0; -} - .icheckbox_flat-orange.checked { - background-position: -22px 0; - } - .icheckbox_flat-orange.disabled { - background-position: -44px 0; - cursor: default; - } - .icheckbox_flat-orange.checked.disabled { - background-position: -66px 0; - } - -.iradio_flat-orange { - background-position: -88px 0; -} - .iradio_flat-orange.checked { - background-position: -110px 0; - } - .iradio_flat-orange.disabled { - background-position: -132px 0; - cursor: default; - } - .iradio_flat-orange.checked.disabled { - background-position: -154px 0; - } - -/* Retina support */ -@media only screen and (-webkit-min-device-pixel-ratio: 1.5), - only screen and (-moz-min-device-pixel-ratio: 1.5), - only screen and (-o-min-device-pixel-ratio: 3/2), - only screen and (min-device-pixel-ratio: 1.5) { - .icheckbox_flat-orange, - .iradio_flat-orange { - background-image: url(orange@2x.png); - -webkit-background-size: 176px 22px; - background-size: 176px 22px; - } -} \ No newline at end of file diff --git a/admin/plugins/iCheck/flat/orange.png b/admin/plugins/iCheck/flat/orange.png deleted file mode 100644 index ec2532e..0000000 Binary files a/admin/plugins/iCheck/flat/orange.png and /dev/null differ diff --git a/admin/plugins/iCheck/flat/orange@2x.png b/admin/plugins/iCheck/flat/orange@2x.png deleted file mode 100644 index 9350b50..0000000 Binary files a/admin/plugins/iCheck/flat/orange@2x.png and /dev/null differ diff --git a/admin/plugins/iCheck/flat/pink.css b/admin/plugins/iCheck/flat/pink.css deleted file mode 100644 index afa4956..0000000 --- a/admin/plugins/iCheck/flat/pink.css +++ /dev/null @@ -1,56 +0,0 @@ -/* iCheck plugin Flat skin, pink ------------------------------------ */ -.icheckbox_flat-pink, -.iradio_flat-pink { - display: inline-block; - *display: inline; - vertical-align: middle; - margin: 0; - padding: 0; - width: 20px; - height: 20px; - background: url(pink.png) no-repeat; - border: none; - cursor: pointer; -} - -.icheckbox_flat-pink { - background-position: 0 0; -} - .icheckbox_flat-pink.checked { - background-position: -22px 0; - } - .icheckbox_flat-pink.disabled { - background-position: -44px 0; - cursor: default; - } - .icheckbox_flat-pink.checked.disabled { - background-position: -66px 0; - } - -.iradio_flat-pink { - background-position: -88px 0; -} - .iradio_flat-pink.checked { - background-position: -110px 0; - } - .iradio_flat-pink.disabled { - background-position: -132px 0; - cursor: default; - } - .iradio_flat-pink.checked.disabled { - background-position: -154px 0; - } - -/* Retina support */ -@media only screen and (-webkit-min-device-pixel-ratio: 1.5), - only screen and (-moz-min-device-pixel-ratio: 1.5), - only screen and (-o-min-device-pixel-ratio: 3/2), - only screen and (min-device-pixel-ratio: 1.5) { - .icheckbox_flat-pink, - .iradio_flat-pink { - background-image: url(pink@2x.png); - -webkit-background-size: 176px 22px; - background-size: 176px 22px; - } -} \ No newline at end of file diff --git a/admin/plugins/iCheck/flat/pink.png b/admin/plugins/iCheck/flat/pink.png deleted file mode 100644 index 3e65d9d..0000000 Binary files a/admin/plugins/iCheck/flat/pink.png and /dev/null differ diff --git a/admin/plugins/iCheck/flat/pink@2x.png b/admin/plugins/iCheck/flat/pink@2x.png deleted file mode 100644 index 281ba06..0000000 Binary files a/admin/plugins/iCheck/flat/pink@2x.png and /dev/null differ diff --git a/admin/plugins/iCheck/flat/purple.css b/admin/plugins/iCheck/flat/purple.css deleted file mode 100644 index a9760b3..0000000 --- a/admin/plugins/iCheck/flat/purple.css +++ /dev/null @@ -1,56 +0,0 @@ -/* iCheck plugin Flat skin, purple ------------------------------------ */ -.icheckbox_flat-purple, -.iradio_flat-purple { - display: inline-block; - *display: inline; - vertical-align: middle; - margin: 0; - padding: 0; - width: 20px; - height: 20px; - background: url(purple.png) no-repeat; - border: none; - cursor: pointer; -} - -.icheckbox_flat-purple { - background-position: 0 0; -} - .icheckbox_flat-purple.checked { - background-position: -22px 0; - } - .icheckbox_flat-purple.disabled { - background-position: -44px 0; - cursor: default; - } - .icheckbox_flat-purple.checked.disabled { - background-position: -66px 0; - } - -.iradio_flat-purple { - background-position: -88px 0; -} - .iradio_flat-purple.checked { - background-position: -110px 0; - } - .iradio_flat-purple.disabled { - background-position: -132px 0; - cursor: default; - } - .iradio_flat-purple.checked.disabled { - background-position: -154px 0; - } - -/* Retina support */ -@media only screen and (-webkit-min-device-pixel-ratio: 1.5), - only screen and (-moz-min-device-pixel-ratio: 1.5), - only screen and (-o-min-device-pixel-ratio: 3/2), - only screen and (min-device-pixel-ratio: 1.5) { - .icheckbox_flat-purple, - .iradio_flat-purple { - background-image: url(purple@2x.png); - -webkit-background-size: 176px 22px; - background-size: 176px 22px; - } -} \ No newline at end of file diff --git a/admin/plugins/iCheck/flat/purple.png b/admin/plugins/iCheck/flat/purple.png deleted file mode 100644 index 3699fd5..0000000 Binary files a/admin/plugins/iCheck/flat/purple.png and /dev/null differ diff --git a/admin/plugins/iCheck/flat/purple@2x.png b/admin/plugins/iCheck/flat/purple@2x.png deleted file mode 100644 index 7f4be74..0000000 Binary files a/admin/plugins/iCheck/flat/purple@2x.png and /dev/null differ diff --git a/admin/plugins/iCheck/flat/red.css b/admin/plugins/iCheck/flat/red.css deleted file mode 100644 index 34b71e4..0000000 --- a/admin/plugins/iCheck/flat/red.css +++ /dev/null @@ -1,56 +0,0 @@ -/* iCheck plugin Flat skin, red ------------------------------------ */ -.icheckbox_flat-red, -.iradio_flat-red { - display: inline-block; - *display: inline; - vertical-align: middle; - margin: 0; - padding: 0; - width: 20px; - height: 20px; - background: url(red.png) no-repeat; - border: none; - cursor: pointer; -} - -.icheckbox_flat-red { - background-position: 0 0; -} - .icheckbox_flat-red.checked { - background-position: -22px 0; - } - .icheckbox_flat-red.disabled { - background-position: -44px 0; - cursor: default; - } - .icheckbox_flat-red.checked.disabled { - background-position: -66px 0; - } - -.iradio_flat-red { - background-position: -88px 0; -} - .iradio_flat-red.checked { - background-position: -110px 0; - } - .iradio_flat-red.disabled { - background-position: -132px 0; - cursor: default; - } - .iradio_flat-red.checked.disabled { - background-position: -154px 0; - } - -/* Retina support */ -@media only screen and (-webkit-min-device-pixel-ratio: 1.5), - only screen and (-moz-min-device-pixel-ratio: 1.5), - only screen and (-o-min-device-pixel-ratio: 3/2), - only screen and (min-device-pixel-ratio: 1.5) { - .icheckbox_flat-red, - .iradio_flat-red { - background-image: url(red@2x.png); - -webkit-background-size: 176px 22px; - background-size: 176px 22px; - } -} \ No newline at end of file diff --git a/admin/plugins/iCheck/flat/red.png b/admin/plugins/iCheck/flat/red.png deleted file mode 100644 index 0d5ac38..0000000 Binary files a/admin/plugins/iCheck/flat/red.png and /dev/null differ diff --git a/admin/plugins/iCheck/flat/red@2x.png b/admin/plugins/iCheck/flat/red@2x.png deleted file mode 100644 index 38590d9..0000000 Binary files a/admin/plugins/iCheck/flat/red@2x.png and /dev/null differ diff --git a/admin/plugins/iCheck/flat/yellow.css b/admin/plugins/iCheck/flat/yellow.css deleted file mode 100644 index 96ae5b1..0000000 --- a/admin/plugins/iCheck/flat/yellow.css +++ /dev/null @@ -1,56 +0,0 @@ -/* iCheck plugin Flat skin, yellow ------------------------------------ */ -.icheckbox_flat-yellow, -.iradio_flat-yellow { - display: inline-block; - *display: inline; - vertical-align: middle; - margin: 0; - padding: 0; - width: 20px; - height: 20px; - background: url(yellow.png) no-repeat; - border: none; - cursor: pointer; -} - -.icheckbox_flat-yellow { - background-position: 0 0; -} - .icheckbox_flat-yellow.checked { - background-position: -22px 0; - } - .icheckbox_flat-yellow.disabled { - background-position: -44px 0; - cursor: default; - } - .icheckbox_flat-yellow.checked.disabled { - background-position: -66px 0; - } - -.iradio_flat-yellow { - background-position: -88px 0; -} - .iradio_flat-yellow.checked { - background-position: -110px 0; - } - .iradio_flat-yellow.disabled { - background-position: -132px 0; - cursor: default; - } - .iradio_flat-yellow.checked.disabled { - background-position: -154px 0; - } - -/* Retina support */ -@media only screen and (-webkit-min-device-pixel-ratio: 1.5), - only screen and (-moz-min-device-pixel-ratio: 1.5), - only screen and (-o-min-device-pixel-ratio: 3/2), - only screen and (min-device-pixel-ratio: 1.5) { - .icheckbox_flat-yellow, - .iradio_flat-yellow { - background-image: url(yellow@2x.png); - -webkit-background-size: 176px 22px; - background-size: 176px 22px; - } -} \ No newline at end of file diff --git a/admin/plugins/iCheck/flat/yellow.png b/admin/plugins/iCheck/flat/yellow.png deleted file mode 100644 index 909dadc..0000000 Binary files a/admin/plugins/iCheck/flat/yellow.png and /dev/null differ diff --git a/admin/plugins/iCheck/flat/yellow@2x.png b/admin/plugins/iCheck/flat/yellow@2x.png deleted file mode 100644 index 9fd5d73..0000000 Binary files a/admin/plugins/iCheck/flat/yellow@2x.png and /dev/null differ diff --git a/admin/plugins/iCheck/futurico/futurico.css b/admin/plugins/iCheck/futurico/futurico.css deleted file mode 100644 index 2654cf4..0000000 --- a/admin/plugins/iCheck/futurico/futurico.css +++ /dev/null @@ -1,56 +0,0 @@ -/* iCheck plugin Futurico skin ------------------------------------ */ -.icheckbox_futurico, -.iradio_futurico { - display: inline-block; - *display: inline; - vertical-align: middle; - margin: 0; - padding: 0; - width: 16px; - height: 17px; - background: url(futurico.png) no-repeat; - border: none; - cursor: pointer; -} - -.icheckbox_futurico { - background-position: 0 0; -} - .icheckbox_futurico.checked { - background-position: -18px 0; - } - .icheckbox_futurico.disabled { - background-position: -36px 0; - cursor: default; - } - .icheckbox_futurico.checked.disabled { - background-position: -54px 0; - } - -.iradio_futurico { - background-position: -72px 0; -} - .iradio_futurico.checked { - background-position: -90px 0; - } - .iradio_futurico.disabled { - background-position: -108px 0; - cursor: default; - } - .iradio_futurico.checked.disabled { - background-position: -126px 0; - } - -/* Retina support */ -@media only screen and (-webkit-min-device-pixel-ratio: 1.5), - only screen and (-moz-min-device-pixel-ratio: 1.5), - only screen and (-o-min-device-pixel-ratio: 3/2), - only screen and (min-device-pixel-ratio: 1.5) { - .icheckbox_futurico, - .iradio_futurico { - background-image: url(futurico@2x.png); - -webkit-background-size: 144px 19px; - background-size: 144px 19px; - } -} \ No newline at end of file diff --git a/admin/plugins/iCheck/futurico/futurico.png b/admin/plugins/iCheck/futurico/futurico.png deleted file mode 100644 index 50d62b5..0000000 Binary files a/admin/plugins/iCheck/futurico/futurico.png and /dev/null differ diff --git a/admin/plugins/iCheck/futurico/futurico@2x.png b/admin/plugins/iCheck/futurico/futurico@2x.png deleted file mode 100644 index f7eb45a..0000000 Binary files a/admin/plugins/iCheck/futurico/futurico@2x.png and /dev/null differ diff --git a/admin/plugins/iCheck/icheck.js b/admin/plugins/iCheck/icheck.js deleted file mode 100644 index 4da1937..0000000 --- a/admin/plugins/iCheck/icheck.js +++ /dev/null @@ -1,478 +0,0 @@ -/*! - * iCheck v1.0.1, http://git.io/arlzeA - * ================================= - * Powerful jQuery and Zepto plugin for checkboxes and radio buttons customization - * - * (c) 2013 Damir Sultanov, http://fronteed.com - * MIT Licensed - */ - -(function($) { - - // Cached vars - var _iCheck = 'iCheck', - _iCheckHelper = _iCheck + '-helper', - _checkbox = 'checkbox', - _radio = 'radio', - _checked = 'checked', - _unchecked = 'un' + _checked, - _disabled = 'disabled', - _determinate = 'determinate', - _indeterminate = 'in' + _determinate, - _update = 'update', - _type = 'type', - _click = 'click', - _touch = 'touchbegin.i touchend.i', - _add = 'addClass', - _remove = 'removeClass', - _callback = 'trigger', - _label = 'label', - _cursor = 'cursor', - _mobile = /ipad|iphone|ipod|android|blackberry|windows phone|opera mini|silk/i.test(navigator.userAgent); - - // Plugin init - $.fn[_iCheck] = function(options, fire) { - - // Walker - var handle = 'input[type="' + _checkbox + '"], input[type="' + _radio + '"]', - stack = $(), - walker = function(object) { - object.each(function() { - var self = $(this); - - if (self.is(handle)) { - stack = stack.add(self); - } else { - stack = stack.add(self.find(handle)); - } - }); - }; - - // Check if we should operate with some method - if (/^(check|uncheck|toggle|indeterminate|determinate|disable|enable|update|destroy)$/i.test(options)) { - - // Normalize method's name - options = options.toLowerCase(); - - // Find checkboxes and radio buttons - walker(this); - - return stack.each(function() { - var self = $(this); - - if (options == 'destroy') { - tidy(self, 'ifDestroyed'); - } else { - operate(self, true, options); - } - // Fire method's callback - if ($.isFunction(fire)) { - fire(); - } - }); - - // Customization - } else if (typeof options == 'object' || !options) { - - // Check if any options were passed - var settings = $.extend({ - checkedClass: _checked, - disabledClass: _disabled, - indeterminateClass: _indeterminate, - labelHover: true, - aria: false - }, options), - - selector = settings.handle, - hoverClass = settings.hoverClass || 'hover', - focusClass = settings.focusClass || 'focus', - activeClass = settings.activeClass || 'active', - labelHover = !!settings.labelHover, - labelHoverClass = settings.labelHoverClass || 'hover', - - // Setup clickable area - area = ('' + settings.increaseArea).replace('%', '') | 0; - - // Selector limit - if (selector == _checkbox || selector == _radio) { - handle = 'input[type="' + selector + '"]'; - } - // Clickable area limit - if (area < -50) { - area = -50; - } - // Walk around the selector - walker(this); - - return stack.each(function() { - var self = $(this); - - // If already customized - tidy(self); - - var node = this, - id = node.id, - - // Layer styles - offset = -area + '%', - size = 100 + (area * 2) + '%', - layer = { - position: 'absolute', - top: offset, - left: offset, - display: 'block', - width: size, - height: size, - margin: 0, - padding: 0, - background: '#fff', - border: 0, - opacity: 0 - }, - - // Choose how to hide input - hide = _mobile ? { - position: 'absolute', - visibility: 'hidden' - } : area ? layer : { - position: 'absolute', - opacity: 0 - }, - - // Get proper class - className = node[_type] == _checkbox ? settings.checkboxClass || 'i' + _checkbox : settings.radioClass || 'i' + _radio, - - // Find assigned labels - label = $(_label + '[for="' + id + '"]').add(self.closest(_label)), - - // Check ARIA option - aria = !!settings.aria, - - // Set ARIA placeholder - ariaID = _iCheck + '-' + Math.random().toString(36).replace('0.', ''), - - // Parent & helper - parent = '<div class="' + className + '" ' + (aria ? 'role="' + node[_type] + '" ' : ''), - helper; - - // Set ARIA "labelledby" - if (label.length && aria) { - label.each(function() { - parent += 'aria-labelledby="'; - - if (this.id) { - parent += this.id; - } else { - this.id = ariaID; - parent += ariaID; - } - - parent += '"'; - }); - } - // Wrap input - parent = self.wrap(parent + '/>')[_callback]('ifCreated').parent().append(settings.insert); - - // Layer addition - helper = $('<ins class="' + _iCheckHelper + '"/>').css(layer).appendTo(parent); - - // Finalize customization - self.data(_iCheck, {o: settings, s: self.attr('style')}).css(hide); - !!settings.inheritClass && parent[_add](node.className || ''); - !!settings.inheritID && id && parent.attr('id', _iCheck + '-' + id); - parent.css('position') == 'static' && parent.css('position', 'relative'); - operate(self, true, _update); - - // Label events - if (label.length) { - label.on(_click + '.i mouseover.i mouseout.i ' + _touch, function(event) { - var type = event[_type], - item = $(this); - - // Do nothing if input is disabled - if (!node[_disabled]) { - - // Click - if (type == _click) { - if ($(event.target).is('a')) { - return; - } - operate(self, false, true); - - // Hover state - } else if (labelHover) { - - // mouseout|touchend - if (/ut|nd/.test(type)) { - parent[_remove](hoverClass); - item[_remove](labelHoverClass); - } else { - parent[_add](hoverClass); - item[_add](labelHoverClass); - } - } - if (_mobile) { - event.stopPropagation(); - } else { - return false; - } - } - }); - } - // Input events - self.on(_click + '.i focus.i blur.i keyup.i keydown.i keypress.i', function(event) { - var type = event[_type], - key = event.keyCode; - - // Click - if (type == _click) { - return false; - - // Keydown - } else if (type == 'keydown' && key == 32) { - if (!(node[_type] == _radio && node[_checked])) { - if (node[_checked]) { - off(self, _checked); - } else { - on(self, _checked); - } - } - return false; - - // Keyup - } else if (type == 'keyup' && node[_type] == _radio) { - !node[_checked] && on(self, _checked); - - // Focus/blur - } else if (/us|ur/.test(type)) { - parent[type == 'blur' ? _remove : _add](focusClass); - } - }); - - // Helper events - helper.on(_click + ' mousedown mouseup mouseover mouseout ' + _touch, function(event) { - var type = event[_type], - - // mousedown|mouseup - toggle = /wn|up/.test(type) ? activeClass : hoverClass; - - // Do nothing if input is disabled - if (!node[_disabled]) { - - // Click - if (type == _click) { - operate(self, false, true); - - // Active and hover states - } else { - - // State is on - if (/wn|er|in/.test(type)) { - - // mousedown|mouseover|touchbegin - parent[_add](toggle); - - // State is off - } else { - parent[_remove](toggle + ' ' + activeClass); - } - // Label hover - if (label.length && labelHover && toggle == hoverClass) { - - // mouseout|touchend - label[/ut|nd/.test(type) ? _remove : _add](labelHoverClass); - } - } - if (_mobile) { - event.stopPropagation(); - } else { - return false; - } - } - }); - }); - } else { - return this; - } - }; - - // Do something with inputs - function operate(input, direct, method) { - var node = input[0], - state = /er/.test(method) ? _indeterminate : /bl/.test(method) ? _disabled : _checked, - active = method == _update ? { - checked: node[_checked], - disabled: node[_disabled], - indeterminate: input.attr(_indeterminate) == 'true' || input.attr(_determinate) == 'false' - } : node[state]; - - // Check, disable or indeterminate - if (/^(ch|di|in)/.test(method) && !active) { - on(input, state); - - // Uncheck, enable or determinate - } else if (/^(un|en|de)/.test(method) && active) { - off(input, state); - - // Update - } else if (method == _update) { - - // Handle states - for (var state in active) { - if (active[state]) { - on(input, state, true); - } else { - off(input, state, true); - } - } - } else if (!direct || method == 'toggle') { - - // Helper or label was clicked - if (!direct) { - input[_callback]('ifClicked'); - } - // Toggle checked state - if (active) { - if (node[_type] !== _radio) { - off(input, state); - } - } else { - on(input, state); - } - } - } - // Add checked, disabled or indeterminate state - function on(input, state, keep) { - var node = input[0], - parent = input.parent(), - checked = state == _checked, - indeterminate = state == _indeterminate, - disabled = state == _disabled, - callback = indeterminate ? _determinate : checked ? _unchecked : 'enabled', - regular = option(input, callback + capitalize(node[_type])), - specific = option(input, state + capitalize(node[_type])); - - // Prevent unnecessary actions - if (node[state] !== true) { - - // Toggle assigned radio buttons - if (!keep && state == _checked && node[_type] == _radio && node.name) { - var form = input.closest('form'), - inputs = 'input[name="' + node.name + '"]'; - - inputs = form.length ? form.find(inputs) : $(inputs); - - inputs.each(function() { - if (this !== node && $(this).data(_iCheck)) { - off($(this), state); - } - }); - } - // Indeterminate state - if (indeterminate) { - - // Add indeterminate state - node[state] = true; - - // Remove checked state - if (node[_checked]) { - off(input, _checked, 'force'); - } - // Checked or disabled state - } else { - - // Add checked or disabled state - if (!keep) { - node[state] = true; - } - // Remove indeterminate state - if (checked && node[_indeterminate]) { - off(input, _indeterminate, false); - } - } - // Trigger callbacks - callbacks(input, checked, state, keep); - } - // Add proper cursor - if (node[_disabled] && !!option(input, _cursor, true)) { - parent.find('.' + _iCheckHelper).css(_cursor, 'default'); - } - // Add state class - parent[_add](specific || option(input, state) || ''); - - // Set ARIA attribute - disabled ? parent.attr('aria-disabled', 'true') : parent.attr('aria-checked', indeterminate ? 'mixed' : 'true'); - - // Remove regular state class - parent[_remove](regular || option(input, callback) || ''); - } - // Remove checked, disabled or indeterminate state - function off(input, state, keep) { - var node = input[0], - parent = input.parent(), - checked = state == _checked, - indeterminate = state == _indeterminate, - disabled = state == _disabled, - callback = indeterminate ? _determinate : checked ? _unchecked : 'enabled', - regular = option(input, callback + capitalize(node[_type])), - specific = option(input, state + capitalize(node[_type])); - - // Prevent unnecessary actions - if (node[state] !== false) { - - // Toggle state - if (indeterminate || !keep || keep == 'force') { - node[state] = false; - } - // Trigger callbacks - callbacks(input, checked, callback, keep); - } - // Add proper cursor - if (!node[_disabled] && !!option(input, _cursor, true)) { - parent.find('.' + _iCheckHelper).css(_cursor, 'pointer'); - } - // Remove state class - parent[_remove](specific || option(input, state) || ''); - - // Set ARIA attribute - disabled ? parent.attr('aria-disabled', 'false') : parent.attr('aria-checked', 'false'); - - // Add regular state class - parent[_add](regular || option(input, callback) || ''); - } - // Remove all traces - function tidy(input, callback) { - if (input.data(_iCheck)) { - - // Remove everything except input - input.parent().html(input.attr('style', input.data(_iCheck).s || '')); - - // Callback - if (callback) { - input[_callback](callback); - } - // Unbind events - input.off('.i').unwrap(); - $(_label + '[for="' + input[0].id + '"]').add(input.closest(_label)).off('.i'); - } - } - // Get some option - function option(input, state, regular) { - if (input.data(_iCheck)) { - return input.data(_iCheck).o[state + (regular ? '' : 'Class')]; - } - } - // Capitalize some string - function capitalize(string) { - return string.charAt(0).toUpperCase() + string.slice(1); - } - // Executable handlers - function callbacks(input, checked, callback, keep) { - if (!keep) { - if (checked) { - input[_callback]('ifToggled'); - } - input[_callback]('ifChanged')[_callback]('if' + capitalize(callback)); - } - } -})(window.jQuery || window.Zepto); diff --git a/admin/plugins/iCheck/icheck.min.js b/admin/plugins/iCheck/icheck.min.js deleted file mode 100644 index d2720ed..0000000 --- a/admin/plugins/iCheck/icheck.min.js +++ /dev/null @@ -1,10 +0,0 @@ -/*! iCheck v1.0.1 by Damir Sultanov, http://git.io/arlzeA, MIT Licensed */ -(function(h){function F(a,b,d){var c=a[0],e=/er/.test(d)?m:/bl/.test(d)?s:l,f=d==H?{checked:c[l],disabled:c[s],indeterminate:"true"==a.attr(m)||"false"==a.attr(w)}:c[e];if(/^(ch|di|in)/.test(d)&&!f)D(a,e);else if(/^(un|en|de)/.test(d)&&f)t(a,e);else if(d==H)for(e in f)f[e]?D(a,e,!0):t(a,e,!0);else if(!b||"toggle"==d){if(!b)a[p]("ifClicked");f?c[n]!==u&&t(a,e):D(a,e)}}function D(a,b,d){var c=a[0],e=a.parent(),f=b==l,A=b==m,B=b==s,K=A?w:f?E:"enabled",p=k(a,K+x(c[n])),N=k(a,b+x(c[n]));if(!0!==c[b]){if(!d&& -b==l&&c[n]==u&&c.name){var C=a.closest("form"),r='input[name="'+c.name+'"]',r=C.length?C.find(r):h(r);r.each(function(){this!==c&&h(this).data(q)&&t(h(this),b)})}A?(c[b]=!0,c[l]&&t(a,l,"force")):(d||(c[b]=!0),f&&c[m]&&t(a,m,!1));L(a,f,b,d)}c[s]&&k(a,y,!0)&&e.find("."+I).css(y,"default");e[v](N||k(a,b)||"");B?e.attr("aria-disabled","true"):e.attr("aria-checked",A?"mixed":"true");e[z](p||k(a,K)||"")}function t(a,b,d){var c=a[0],e=a.parent(),f=b==l,h=b==m,q=b==s,p=h?w:f?E:"enabled",t=k(a,p+x(c[n])), -u=k(a,b+x(c[n]));if(!1!==c[b]){if(h||!d||"force"==d)c[b]=!1;L(a,f,p,d)}!c[s]&&k(a,y,!0)&&e.find("."+I).css(y,"pointer");e[z](u||k(a,b)||"");q?e.attr("aria-disabled","false"):e.attr("aria-checked","false");e[v](t||k(a,p)||"")}function M(a,b){if(a.data(q)){a.parent().html(a.attr("style",a.data(q).s||""));if(b)a[p](b);a.off(".i").unwrap();h(G+'[for="'+a[0].id+'"]').add(a.closest(G)).off(".i")}}function k(a,b,d){if(a.data(q))return a.data(q).o[b+(d?"":"Class")]}function x(a){return a.charAt(0).toUpperCase()+ -a.slice(1)}function L(a,b,d,c){if(!c){if(b)a[p]("ifToggled");a[p]("ifChanged")[p]("if"+x(d))}}var q="iCheck",I=q+"-helper",u="radio",l="checked",E="un"+l,s="disabled",w="determinate",m="in"+w,H="update",n="type",v="addClass",z="removeClass",p="trigger",G="label",y="cursor",J=/ipad|iphone|ipod|android|blackberry|windows phone|opera mini|silk/i.test(navigator.userAgent);h.fn[q]=function(a,b){var d='input[type="checkbox"], input[type="'+u+'"]',c=h(),e=function(a){a.each(function(){var a=h(this);c=a.is(d)? -c.add(a):c.add(a.find(d))})};if(/^(check|uncheck|toggle|indeterminate|determinate|disable|enable|update|destroy)$/i.test(a))return a=a.toLowerCase(),e(this),c.each(function(){var c=h(this);"destroy"==a?M(c,"ifDestroyed"):F(c,!0,a);h.isFunction(b)&&b()});if("object"!=typeof a&&a)return this;var f=h.extend({checkedClass:l,disabledClass:s,indeterminateClass:m,labelHover:!0,aria:!1},a),k=f.handle,B=f.hoverClass||"hover",x=f.focusClass||"focus",w=f.activeClass||"active",y=!!f.labelHover,C=f.labelHoverClass|| -"hover",r=(""+f.increaseArea).replace("%","")|0;if("checkbox"==k||k==u)d='input[type="'+k+'"]';-50>r&&(r=-50);e(this);return c.each(function(){var a=h(this);M(a);var c=this,b=c.id,e=-r+"%",d=100+2*r+"%",d={position:"absolute",top:e,left:e,display:"block",width:d,height:d,margin:0,padding:0,background:"#fff",border:0,opacity:0},e=J?{position:"absolute",visibility:"hidden"}:r?d:{position:"absolute",opacity:0},k="checkbox"==c[n]?f.checkboxClass||"icheckbox":f.radioClass||"i"+u,m=h(G+'[for="'+b+'"]').add(a.closest(G)), -A=!!f.aria,E=q+"-"+Math.random().toString(36).replace("0.",""),g='<div class="'+k+'" '+(A?'role="'+c[n]+'" ':"");m.length&&A&&m.each(function(){g+='aria-labelledby="';this.id?g+=this.id:(this.id=E,g+=E);g+='"'});g=a.wrap(g+"/>")[p]("ifCreated").parent().append(f.insert);d=h('<ins class="'+I+'"/>').css(d).appendTo(g);a.data(q,{o:f,s:a.attr("style")}).css(e);f.inheritClass&&g[v](c.className||"");f.inheritID&&b&&g.attr("id",q+"-"+b);"static"==g.css("position")&&g.css("position","relative");F(a,!0,H); -if(m.length)m.on("click.i mouseover.i mouseout.i touchbegin.i touchend.i",function(b){var d=b[n],e=h(this);if(!c[s]){if("click"==d){if(h(b.target).is("a"))return;F(a,!1,!0)}else y&&(/ut|nd/.test(d)?(g[z](B),e[z](C)):(g[v](B),e[v](C)));if(J)b.stopPropagation();else return!1}});a.on("click.i focus.i blur.i keyup.i keydown.i keypress.i",function(b){var d=b[n];b=b.keyCode;if("click"==d)return!1;if("keydown"==d&&32==b)return c[n]==u&&c[l]||(c[l]?t(a,l):D(a,l)),!1;if("keyup"==d&&c[n]==u)!c[l]&&D(a,l);else if(/us|ur/.test(d))g["blur"== -d?z:v](x)});d.on("click mousedown mouseup mouseover mouseout touchbegin.i touchend.i",function(b){var d=b[n],e=/wn|up/.test(d)?w:B;if(!c[s]){if("click"==d)F(a,!1,!0);else{if(/wn|er|in/.test(d))g[v](e);else g[z](e+" "+w);if(m.length&&y&&e==B)m[/ut|nd/.test(d)?z:v](C)}if(J)b.stopPropagation();else return!1}})})}})(window.jQuery||window.Zepto); diff --git a/admin/plugins/iCheck/line/_all.css b/admin/plugins/iCheck/line/_all.css deleted file mode 100644 index a18d0d9..0000000 --- a/admin/plugins/iCheck/line/_all.css +++ /dev/null @@ -1,740 +0,0 @@ -/* iCheck plugin Line skin ------------------------------------ */ -.icheckbox_line, -.iradio_line { - position: relative; - display: block; - margin: 0; - padding: 5px 15px 5px 38px; - font-size: 13px; - line-height: 17px; - color: #fff; - background: #000; - border: none; - -webkit-border-radius: 3px; - -moz-border-radius: 3px; - border-radius: 3px; - cursor: pointer; -} - .icheckbox_line .icheck_line-icon, - .iradio_line .icheck_line-icon { - position: absolute; - top: 50%; - left: 13px; - width: 13px; - height: 11px; - margin: -5px 0 0 0; - padding: 0; - overflow: hidden; - background: url(line.png) no-repeat; - border: none; - } - .icheckbox_line.hover, - .icheckbox_line.checked.hover, - .iradio_line.hover { - background: #444; - } - .icheckbox_line.checked, - .iradio_line.checked { - background: #000; - } - .icheckbox_line.checked .icheck_line-icon, - .iradio_line.checked .icheck_line-icon { - background-position: -15px 0; - } - .icheckbox_line.disabled, - .iradio_line.disabled { - background: #ccc; - cursor: default; - } - .icheckbox_line.disabled .icheck_line-icon, - .iradio_line.disabled .icheck_line-icon { - background-position: -30px 0; - } - .icheckbox_line.checked.disabled, - .iradio_line.checked.disabled { - background: #ccc; - } - .icheckbox_line.checked.disabled .icheck_line-icon, - .iradio_line.checked.disabled .icheck_line-icon { - background-position: -45px 0; - } - -/* Retina support */ -@media only screen and (-webkit-min-device-pixel-ratio: 1.5), - only screen and (-moz-min-device-pixel-ratio: 1.5), - only screen and (-o-min-device-pixel-ratio: 3/2), - only screen and (min-device-pixel-ratio: 1.5) { - .icheckbox_line .icheck_line-icon, - .iradio_line .icheck_line-icon { - background-image: url(line@2x.png); - -webkit-background-size: 60px 13px; - background-size: 60px 13px; - } -} - -/* red */ -.icheckbox_line-red, -.iradio_line-red { - position: relative; - display: block; - margin: 0; - padding: 5px 15px 5px 38px; - font-size: 13px; - line-height: 17px; - color: #fff; - background: #e56c69; - border: none; - -webkit-border-radius: 3px; - -moz-border-radius: 3px; - border-radius: 3px; - cursor: pointer; -} - .icheckbox_line-red .icheck_line-icon, - .iradio_line-red .icheck_line-icon { - position: absolute; - top: 50%; - left: 13px; - width: 13px; - height: 11px; - margin: -5px 0 0 0; - padding: 0; - overflow: hidden; - background: url(line.png) no-repeat; - border: none; - } - .icheckbox_line-red.hover, - .icheckbox_line-red.checked.hover, - .iradio_line-red.hover { - background: #E98582; - } - .icheckbox_line-red.checked, - .iradio_line-red.checked { - background: #e56c69; - } - .icheckbox_line-red.checked .icheck_line-icon, - .iradio_line-red.checked .icheck_line-icon { - background-position: -15px 0; - } - .icheckbox_line-red.disabled, - .iradio_line-red.disabled { - background: #F7D3D2; - cursor: default; - } - .icheckbox_line-red.disabled .icheck_line-icon, - .iradio_line-red.disabled .icheck_line-icon { - background-position: -30px 0; - } - .icheckbox_line-red.checked.disabled, - .iradio_line-red.checked.disabled { - background: #F7D3D2; - } - .icheckbox_line-red.checked.disabled .icheck_line-icon, - .iradio_line-red.checked.disabled .icheck_line-icon { - background-position: -45px 0; - } - -/* Retina support */ -@media only screen and (-webkit-min-device-pixel-ratio: 1.5), - only screen and (-moz-min-device-pixel-ratio: 1.5), - only screen and (-o-min-device-pixel-ratio: 3/2), - only screen and (min-device-pixel-ratio: 1.5) { - .icheckbox_line-red .icheck_line-icon, - .iradio_line-red .icheck_line-icon { - background-image: url(line@2x.png); - -webkit-background-size: 60px 13px; - background-size: 60px 13px; - } -} - -/* green */ -.icheckbox_line-green, -.iradio_line-green { - position: relative; - display: block; - margin: 0; - padding: 5px 15px 5px 38px; - font-size: 13px; - line-height: 17px; - color: #fff; - background: #1b7e5a; - border: none; - -webkit-border-radius: 3px; - -moz-border-radius: 3px; - border-radius: 3px; - cursor: pointer; -} - .icheckbox_line-green .icheck_line-icon, - .iradio_line-green .icheck_line-icon { - position: absolute; - top: 50%; - left: 13px; - width: 13px; - height: 11px; - margin: -5px 0 0 0; - padding: 0; - overflow: hidden; - background: url(line.png) no-repeat; - border: none; - } - .icheckbox_line-green.hover, - .icheckbox_line-green.checked.hover, - .iradio_line-green.hover { - background: #24AA7A; - } - .icheckbox_line-green.checked, - .iradio_line-green.checked { - background: #1b7e5a; - } - .icheckbox_line-green.checked .icheck_line-icon, - .iradio_line-green.checked .icheck_line-icon { - background-position: -15px 0; - } - .icheckbox_line-green.disabled, - .iradio_line-green.disabled { - background: #89E6C4; - cursor: default; - } - .icheckbox_line-green.disabled .icheck_line-icon, - .iradio_line-green.disabled .icheck_line-icon { - background-position: -30px 0; - } - .icheckbox_line-green.checked.disabled, - .iradio_line-green.checked.disabled { - background: #89E6C4; - } - .icheckbox_line-green.checked.disabled .icheck_line-icon, - .iradio_line-green.checked.disabled .icheck_line-icon { - background-position: -45px 0; - } - -/* Retina support */ -@media only screen and (-webkit-min-device-pixel-ratio: 1.5), - only screen and (-moz-min-device-pixel-ratio: 1.5), - only screen and (-o-min-device-pixel-ratio: 3/2), - only screen and (min-device-pixel-ratio: 1.5) { - .icheckbox_line-green .icheck_line-icon, - .iradio_line-green .icheck_line-icon { - background-image: url(line@2x.png); - -webkit-background-size: 60px 13px; - background-size: 60px 13px; - } -} - -/* blue */ -.icheckbox_line-blue, -.iradio_line-blue { - position: relative; - display: block; - margin: 0; - padding: 5px 15px 5px 38px; - font-size: 13px; - line-height: 17px; - color: #fff; - background: #2489c5; - border: none; - -webkit-border-radius: 3px; - -moz-border-radius: 3px; - border-radius: 3px; - cursor: pointer; -} - .icheckbox_line-blue .icheck_line-icon, - .iradio_line-blue .icheck_line-icon { - position: absolute; - top: 50%; - left: 13px; - width: 13px; - height: 11px; - margin: -5px 0 0 0; - padding: 0; - overflow: hidden; - background: url(line.png) no-repeat; - border: none; - } - .icheckbox_line-blue.hover, - .icheckbox_line-blue.checked.hover, - .iradio_line-blue.hover { - background: #3DA0DB; - } - .icheckbox_line-blue.checked, - .iradio_line-blue.checked { - background: #2489c5; - } - .icheckbox_line-blue.checked .icheck_line-icon, - .iradio_line-blue.checked .icheck_line-icon { - background-position: -15px 0; - } - .icheckbox_line-blue.disabled, - .iradio_line-blue.disabled { - background: #ADD7F0; - cursor: default; - } - .icheckbox_line-blue.disabled .icheck_line-icon, - .iradio_line-blue.disabled .icheck_line-icon { - background-position: -30px 0; - } - .icheckbox_line-blue.checked.disabled, - .iradio_line-blue.checked.disabled { - background: #ADD7F0; - } - .icheckbox_line-blue.checked.disabled .icheck_line-icon, - .iradio_line-blue.checked.disabled .icheck_line-icon { - background-position: -45px 0; - } - -/* Retina support */ -@media only screen and (-webkit-min-device-pixel-ratio: 1.5), - only screen and (-moz-min-device-pixel-ratio: 1.5), - only screen and (-o-min-device-pixel-ratio: 3/2), - only screen and (min-device-pixel-ratio: 1.5) { - .icheckbox_line-blue .icheck_line-icon, - .iradio_line-blue .icheck_line-icon { - background-image: url(line@2x.png); - -webkit-background-size: 60px 13px; - background-size: 60px 13px; - } -} - -/* aero */ -.icheckbox_line-aero, -.iradio_line-aero { - position: relative; - display: block; - margin: 0; - padding: 5px 15px 5px 38px; - font-size: 13px; - line-height: 17px; - color: #fff; - background: #9cc2cb; - border: none; - -webkit-border-radius: 3px; - -moz-border-radius: 3px; - border-radius: 3px; - cursor: pointer; -} - .icheckbox_line-aero .icheck_line-icon, - .iradio_line-aero .icheck_line-icon { - position: absolute; - top: 50%; - left: 13px; - width: 13px; - height: 11px; - margin: -5px 0 0 0; - padding: 0; - overflow: hidden; - background: url(line.png) no-repeat; - border: none; - } - .icheckbox_line-aero.hover, - .icheckbox_line-aero.checked.hover, - .iradio_line-aero.hover { - background: #B5D1D8; - } - .icheckbox_line-aero.checked, - .iradio_line-aero.checked { - background: #9cc2cb; - } - .icheckbox_line-aero.checked .icheck_line-icon, - .iradio_line-aero.checked .icheck_line-icon { - background-position: -15px 0; - } - .icheckbox_line-aero.disabled, - .iradio_line-aero.disabled { - background: #D2E4E8; - cursor: default; - } - .icheckbox_line-aero.disabled .icheck_line-icon, - .iradio_line-aero.disabled .icheck_line-icon { - background-position: -30px 0; - } - .icheckbox_line-aero.checked.disabled, - .iradio_line-aero.checked.disabled { - background: #D2E4E8; - } - .icheckbox_line-aero.checked.disabled .icheck_line-icon, - .iradio_line-aero.checked.disabled .icheck_line-icon { - background-position: -45px 0; - } - -/* Retina support */ -@media only screen and (-webkit-min-device-pixel-ratio: 1.5), - only screen and (-moz-min-device-pixel-ratio: 1.5), - only screen and (-o-min-device-pixel-ratio: 3/2), - only screen and (min-device-pixel-ratio: 1.5) { - .icheckbox_line-aero .icheck_line-icon, - .iradio_line-aero .icheck_line-icon { - background-image: url(line@2x.png); - -webkit-background-size: 60px 13px; - background-size: 60px 13px; - } -} - -/* grey */ -.icheckbox_line-grey, -.iradio_line-grey { - position: relative; - display: block; - margin: 0; - padding: 5px 15px 5px 38px; - font-size: 13px; - line-height: 17px; - color: #fff; - background: #73716e; - border: none; - -webkit-border-radius: 3px; - -moz-border-radius: 3px; - border-radius: 3px; - cursor: pointer; -} - .icheckbox_line-grey .icheck_line-icon, - .iradio_line-grey .icheck_line-icon { - position: absolute; - top: 50%; - left: 13px; - width: 13px; - height: 11px; - margin: -5px 0 0 0; - padding: 0; - overflow: hidden; - background: url(line.png) no-repeat; - border: none; - } - .icheckbox_line-grey.hover, - .icheckbox_line-grey.checked.hover, - .iradio_line-grey.hover { - background: #8B8986; - } - .icheckbox_line-grey.checked, - .iradio_line-grey.checked { - background: #73716e; - } - .icheckbox_line-grey.checked .icheck_line-icon, - .iradio_line-grey.checked .icheck_line-icon { - background-position: -15px 0; - } - .icheckbox_line-grey.disabled, - .iradio_line-grey.disabled { - background: #D5D4D3; - cursor: default; - } - .icheckbox_line-grey.disabled .icheck_line-icon, - .iradio_line-grey.disabled .icheck_line-icon { - background-position: -30px 0; - } - .icheckbox_line-grey.checked.disabled, - .iradio_line-grey.checked.disabled { - background: #D5D4D3; - } - .icheckbox_line-grey.checked.disabled .icheck_line-icon, - .iradio_line-grey.checked.disabled .icheck_line-icon { - background-position: -45px 0; - } - -/* Retina support */ -@media only screen and (-webkit-min-device-pixel-ratio: 1.5), - only screen and (-moz-min-device-pixel-ratio: 1.5), - only screen and (-o-min-device-pixel-ratio: 3/2), - only screen and (min-device-pixel-ratio: 1.5) { - .icheckbox_line-grey .icheck_line-icon, - .iradio_line-grey .icheck_line-icon { - background-image: url(line@2x.png); - -webkit-background-size: 60px 13px; - background-size: 60px 13px; - } -} - -/* orange */ -.icheckbox_line-orange, -.iradio_line-orange { - position: relative; - display: block; - margin: 0; - padding: 5px 15px 5px 38px; - font-size: 13px; - line-height: 17px; - color: #fff; - background: #f70; - border: none; - -webkit-border-radius: 3px; - -moz-border-radius: 3px; - border-radius: 3px; - cursor: pointer; -} - .icheckbox_line-orange .icheck_line-icon, - .iradio_line-orange .icheck_line-icon { - position: absolute; - top: 50%; - left: 13px; - width: 13px; - height: 11px; - margin: -5px 0 0 0; - padding: 0; - overflow: hidden; - background: url(line.png) no-repeat; - border: none; - } - .icheckbox_line-orange.hover, - .icheckbox_line-orange.checked.hover, - .iradio_line-orange.hover { - background: #FF9233; - } - .icheckbox_line-orange.checked, - .iradio_line-orange.checked { - background: #f70; - } - .icheckbox_line-orange.checked .icheck_line-icon, - .iradio_line-orange.checked .icheck_line-icon { - background-position: -15px 0; - } - .icheckbox_line-orange.disabled, - .iradio_line-orange.disabled { - background: #FFD6B3; - cursor: default; - } - .icheckbox_line-orange.disabled .icheck_line-icon, - .iradio_line-orange.disabled .icheck_line-icon { - background-position: -30px 0; - } - .icheckbox_line-orange.checked.disabled, - .iradio_line-orange.checked.disabled { - background: #FFD6B3; - } - .icheckbox_line-orange.checked.disabled .icheck_line-icon, - .iradio_line-orange.checked.disabled .icheck_line-icon { - background-position: -45px 0; - } - -/* Retina support */ -@media only screen and (-webkit-min-device-pixel-ratio: 1.5), - only screen and (-moz-min-device-pixel-ratio: 1.5), - only screen and (-o-min-device-pixel-ratio: 3/2), - only screen and (min-device-pixel-ratio: 1.5) { - .icheckbox_line-orange .icheck_line-icon, - .iradio_line-orange .icheck_line-icon { - background-image: url(line@2x.png); - -webkit-background-size: 60px 13px; - background-size: 60px 13px; - } -} - -/* yellow */ -.icheckbox_line-yellow, -.iradio_line-yellow { - position: relative; - display: block; - margin: 0; - padding: 5px 15px 5px 38px; - font-size: 13px; - line-height: 17px; - color: #fff; - background: #FFC414; - border: none; - -webkit-border-radius: 3px; - -moz-border-radius: 3px; - border-radius: 3px; - cursor: pointer; -} - .icheckbox_line-yellow .icheck_line-icon, - .iradio_line-yellow .icheck_line-icon { - position: absolute; - top: 50%; - left: 13px; - width: 13px; - height: 11px; - margin: -5px 0 0 0; - padding: 0; - overflow: hidden; - background: url(line.png) no-repeat; - border: none; - } - .icheckbox_line-yellow.hover, - .icheckbox_line-yellow.checked.hover, - .iradio_line-yellow.hover { - background: #FFD34F; - } - .icheckbox_line-yellow.checked, - .iradio_line-yellow.checked { - background: #FFC414; - } - .icheckbox_line-yellow.checked .icheck_line-icon, - .iradio_line-yellow.checked .icheck_line-icon { - background-position: -15px 0; - } - .icheckbox_line-yellow.disabled, - .iradio_line-yellow.disabled { - background: #FFE495; - cursor: default; - } - .icheckbox_line-yellow.disabled .icheck_line-icon, - .iradio_line-yellow.disabled .icheck_line-icon { - background-position: -30px 0; - } - .icheckbox_line-yellow.checked.disabled, - .iradio_line-yellow.checked.disabled { - background: #FFE495; - } - .icheckbox_line-yellow.checked.disabled .icheck_line-icon, - .iradio_line-yellow.checked.disabled .icheck_line-icon { - background-position: -45px 0; - } - -/* Retina support */ -@media only screen and (-webkit-min-device-pixel-ratio: 1.5), - only screen and (-moz-min-device-pixel-ratio: 1.5), - only screen and (-o-min-device-pixel-ratio: 3/2), - only screen and (min-device-pixel-ratio: 1.5) { - .icheckbox_line-yellow .icheck_line-icon, - .iradio_line-yellow .icheck_line-icon { - background-image: url(line@2x.png); - -webkit-background-size: 60px 13px; - background-size: 60px 13px; - } -} - -/* pink */ -.icheckbox_line-pink, -.iradio_line-pink { - position: relative; - display: block; - margin: 0; - padding: 5px 15px 5px 38px; - font-size: 13px; - line-height: 17px; - color: #fff; - background: #a77a94; - border: none; - -webkit-border-radius: 3px; - -moz-border-radius: 3px; - border-radius: 3px; - cursor: pointer; -} - .icheckbox_line-pink .icheck_line-icon, - .iradio_line-pink .icheck_line-icon { - position: absolute; - top: 50%; - left: 13px; - width: 13px; - height: 11px; - margin: -5px 0 0 0; - padding: 0; - overflow: hidden; - background: url(line.png) no-repeat; - border: none; - } - .icheckbox_line-pink.hover, - .icheckbox_line-pink.checked.hover, - .iradio_line-pink.hover { - background: #B995A9; - } - .icheckbox_line-pink.checked, - .iradio_line-pink.checked { - background: #a77a94; - } - .icheckbox_line-pink.checked .icheck_line-icon, - .iradio_line-pink.checked .icheck_line-icon { - background-position: -15px 0; - } - .icheckbox_line-pink.disabled, - .iradio_line-pink.disabled { - background: #E0D0DA; - cursor: default; - } - .icheckbox_line-pink.disabled .icheck_line-icon, - .iradio_line-pink.disabled .icheck_line-icon { - background-position: -30px 0; - } - .icheckbox_line-pink.checked.disabled, - .iradio_line-pink.checked.disabled { - background: #E0D0DA; - } - .icheckbox_line-pink.checked.disabled .icheck_line-icon, - .iradio_line-pink.checked.disabled .icheck_line-icon { - background-position: -45px 0; - } - -/* Retina support */ -@media only screen and (-webkit-min-device-pixel-ratio: 1.5), - only screen and (-moz-min-device-pixel-ratio: 1.5), - only screen and (-o-min-device-pixel-ratio: 3/2), - only screen and (min-device-pixel-ratio: 1.5) { - .icheckbox_line-pink .icheck_line-icon, - .iradio_line-pink .icheck_line-icon { - background-image: url(line@2x.png); - -webkit-background-size: 60px 13px; - background-size: 60px 13px; - } -} - -/* purple */ -.icheckbox_line-purple, -.iradio_line-purple { - position: relative; - display: block; - margin: 0; - padding: 5px 15px 5px 38px; - font-size: 13px; - line-height: 17px; - color: #fff; - background: #6a5a8c; - border: none; - -webkit-border-radius: 3px; - -moz-border-radius: 3px; - border-radius: 3px; - cursor: pointer; -} - .icheckbox_line-purple .icheck_line-icon, - .iradio_line-purple .icheck_line-icon { - position: absolute; - top: 50%; - left: 13px; - width: 13px; - height: 11px; - margin: -5px 0 0 0; - padding: 0; - overflow: hidden; - background: url(line.png) no-repeat; - border: none; - } - .icheckbox_line-purple.hover, - .icheckbox_line-purple.checked.hover, - .iradio_line-purple.hover { - background: #8677A7; - } - .icheckbox_line-purple.checked, - .iradio_line-purple.checked { - background: #6a5a8c; - } - .icheckbox_line-purple.checked .icheck_line-icon, - .iradio_line-purple.checked .icheck_line-icon { - background-position: -15px 0; - } - .icheckbox_line-purple.disabled, - .iradio_line-purple.disabled { - background: #D2CCDE; - cursor: default; - } - .icheckbox_line-purple.disabled .icheck_line-icon, - .iradio_line-purple.disabled .icheck_line-icon { - background-position: -30px 0; - } - .icheckbox_line-purple.checked.disabled, - .iradio_line-purple.checked.disabled { - background: #D2CCDE; - } - .icheckbox_line-purple.checked.disabled .icheck_line-icon, - .iradio_line-purple.checked.disabled .icheck_line-icon { - background-position: -45px 0; - } - -/* Retina support */ -@media only screen and (-webkit-min-device-pixel-ratio: 1.5), - only screen and (-moz-min-device-pixel-ratio: 1.5), - only screen and (-o-min-device-pixel-ratio: 3/2), - only screen and (min-device-pixel-ratio: 1.5) { - .icheckbox_line-purple .icheck_line-icon, - .iradio_line-purple .icheck_line-icon { - background-image: url(line@2x.png); - -webkit-background-size: 60px 13px; - background-size: 60px 13px; - } -} \ No newline at end of file diff --git a/admin/plugins/iCheck/line/aero.css b/admin/plugins/iCheck/line/aero.css deleted file mode 100644 index 44989a4..0000000 --- a/admin/plugins/iCheck/line/aero.css +++ /dev/null @@ -1,74 +0,0 @@ -/* iCheck plugin Line skin, aero ------------------------------------ */ -.icheckbox_line-aero, -.iradio_line-aero { - position: relative; - display: block; - margin: 0; - padding: 5px 15px 5px 38px; - font-size: 13px; - line-height: 17px; - color: #fff; - background: #9cc2cb; - border: none; - -webkit-border-radius: 3px; - -moz-border-radius: 3px; - border-radius: 3px; - cursor: pointer; -} - .icheckbox_line-aero .icheck_line-icon, - .iradio_line-aero .icheck_line-icon { - position: absolute; - top: 50%; - left: 13px; - width: 13px; - height: 11px; - margin: -5px 0 0 0; - padding: 0; - overflow: hidden; - background: url(line.png) no-repeat; - border: none; - } - .icheckbox_line-aero.hover, - .icheckbox_line-aero.checked.hover, - .iradio_line-aero.hover { - background: #B5D1D8; - } - .icheckbox_line-aero.checked, - .iradio_line-aero.checked { - background: #9cc2cb; - } - .icheckbox_line-aero.checked .icheck_line-icon, - .iradio_line-aero.checked .icheck_line-icon { - background-position: -15px 0; - } - .icheckbox_line-aero.disabled, - .iradio_line-aero.disabled { - background: #D2E4E8; - cursor: default; - } - .icheckbox_line-aero.disabled .icheck_line-icon, - .iradio_line-aero.disabled .icheck_line-icon { - background-position: -30px 0; - } - .icheckbox_line-aero.checked.disabled, - .iradio_line-aero.checked.disabled { - background: #D2E4E8; - } - .icheckbox_line-aero.checked.disabled .icheck_line-icon, - .iradio_line-aero.checked.disabled .icheck_line-icon { - background-position: -45px 0; - } - -/* Retina support */ -@media only screen and (-webkit-min-device-pixel-ratio: 1.5), - only screen and (-moz-min-device-pixel-ratio: 1.5), - only screen and (-o-min-device-pixel-ratio: 3/2), - only screen and (min-device-pixel-ratio: 1.5) { - .icheckbox_line-aero .icheck_line-icon, - .iradio_line-aero .icheck_line-icon { - background-image: url(line@2x.png); - -webkit-background-size: 60px 13px; - background-size: 60px 13px; - } -} \ No newline at end of file diff --git a/admin/plugins/iCheck/line/blue.css b/admin/plugins/iCheck/line/blue.css deleted file mode 100644 index 5c9c0a7..0000000 --- a/admin/plugins/iCheck/line/blue.css +++ /dev/null @@ -1,74 +0,0 @@ -/* iCheck plugin Line skin, blue ------------------------------------ */ -.icheckbox_line-blue, -.iradio_line-blue { - position: relative; - display: block; - margin: 0; - padding: 5px 15px 5px 38px; - font-size: 13px; - line-height: 17px; - color: #fff; - background: #2489c5; - border: none; - -webkit-border-radius: 3px; - -moz-border-radius: 3px; - border-radius: 3px; - cursor: pointer; -} - .icheckbox_line-blue .icheck_line-icon, - .iradio_line-blue .icheck_line-icon { - position: absolute; - top: 50%; - left: 13px; - width: 13px; - height: 11px; - margin: -5px 0 0 0; - padding: 0; - overflow: hidden; - background: url(line.png) no-repeat; - border: none; - } - .icheckbox_line-blue.hover, - .icheckbox_line-blue.checked.hover, - .iradio_line-blue.hover { - background: #3DA0DB; - } - .icheckbox_line-blue.checked, - .iradio_line-blue.checked { - background: #2489c5; - } - .icheckbox_line-blue.checked .icheck_line-icon, - .iradio_line-blue.checked .icheck_line-icon { - background-position: -15px 0; - } - .icheckbox_line-blue.disabled, - .iradio_line-blue.disabled { - background: #ADD7F0; - cursor: default; - } - .icheckbox_line-blue.disabled .icheck_line-icon, - .iradio_line-blue.disabled .icheck_line-icon { - background-position: -30px 0; - } - .icheckbox_line-blue.checked.disabled, - .iradio_line-blue.checked.disabled { - background: #ADD7F0; - } - .icheckbox_line-blue.checked.disabled .icheck_line-icon, - .iradio_line-blue.checked.disabled .icheck_line-icon { - background-position: -45px 0; - } - -/* Retina support */ -@media only screen and (-webkit-min-device-pixel-ratio: 1.5), - only screen and (-moz-min-device-pixel-ratio: 1.5), - only screen and (-o-min-device-pixel-ratio: 3/2), - only screen and (min-device-pixel-ratio: 1.5) { - .icheckbox_line-blue .icheck_line-icon, - .iradio_line-blue .icheck_line-icon { - background-image: url(line@2x.png); - -webkit-background-size: 60px 13px; - background-size: 60px 13px; - } -} \ No newline at end of file diff --git a/admin/plugins/iCheck/line/green.css b/admin/plugins/iCheck/line/green.css deleted file mode 100644 index 8bbe514..0000000 --- a/admin/plugins/iCheck/line/green.css +++ /dev/null @@ -1,74 +0,0 @@ -/* iCheck plugin Line skin, green ------------------------------------ */ -.icheckbox_line-green, -.iradio_line-green { - position: relative; - display: block; - margin: 0; - padding: 5px 15px 5px 38px; - font-size: 13px; - line-height: 17px; - color: #fff; - background: #1b7e5a; - border: none; - -webkit-border-radius: 3px; - -moz-border-radius: 3px; - border-radius: 3px; - cursor: pointer; -} - .icheckbox_line-green .icheck_line-icon, - .iradio_line-green .icheck_line-icon { - position: absolute; - top: 50%; - left: 13px; - width: 13px; - height: 11px; - margin: -5px 0 0 0; - padding: 0; - overflow: hidden; - background: url(line.png) no-repeat; - border: none; - } - .icheckbox_line-green.hover, - .icheckbox_line-green.checked.hover, - .iradio_line-green.hover { - background: #24AA7A; - } - .icheckbox_line-green.checked, - .iradio_line-green.checked { - background: #1b7e5a; - } - .icheckbox_line-green.checked .icheck_line-icon, - .iradio_line-green.checked .icheck_line-icon { - background-position: -15px 0; - } - .icheckbox_line-green.disabled, - .iradio_line-green.disabled { - background: #89E6C4; - cursor: default; - } - .icheckbox_line-green.disabled .icheck_line-icon, - .iradio_line-green.disabled .icheck_line-icon { - background-position: -30px 0; - } - .icheckbox_line-green.checked.disabled, - .iradio_line-green.checked.disabled { - background: #89E6C4; - } - .icheckbox_line-green.checked.disabled .icheck_line-icon, - .iradio_line-green.checked.disabled .icheck_line-icon { - background-position: -45px 0; - } - -/* Retina support */ -@media only screen and (-webkit-min-device-pixel-ratio: 1.5), - only screen and (-moz-min-device-pixel-ratio: 1.5), - only screen and (-o-min-device-pixel-ratio: 3/2), - only screen and (min-device-pixel-ratio: 1.5) { - .icheckbox_line-green .icheck_line-icon, - .iradio_line-green .icheck_line-icon { - background-image: url(line@2x.png); - -webkit-background-size: 60px 13px; - background-size: 60px 13px; - } -} \ No newline at end of file diff --git a/admin/plugins/iCheck/line/grey.css b/admin/plugins/iCheck/line/grey.css deleted file mode 100644 index fc16a80..0000000 --- a/admin/plugins/iCheck/line/grey.css +++ /dev/null @@ -1,74 +0,0 @@ -/* iCheck plugin Line skin, grey ------------------------------------ */ -.icheckbox_line-grey, -.iradio_line-grey { - position: relative; - display: block; - margin: 0; - padding: 5px 15px 5px 38px; - font-size: 13px; - line-height: 17px; - color: #fff; - background: #73716e; - border: none; - -webkit-border-radius: 3px; - -moz-border-radius: 3px; - border-radius: 3px; - cursor: pointer; -} - .icheckbox_line-grey .icheck_line-icon, - .iradio_line-grey .icheck_line-icon { - position: absolute; - top: 50%; - left: 13px; - width: 13px; - height: 11px; - margin: -5px 0 0 0; - padding: 0; - overflow: hidden; - background: url(line.png) no-repeat; - border: none; - } - .icheckbox_line-grey.hover, - .icheckbox_line-grey.checked.hover, - .iradio_line-grey.hover { - background: #8B8986; - } - .icheckbox_line-grey.checked, - .iradio_line-grey.checked { - background: #73716e; - } - .icheckbox_line-grey.checked .icheck_line-icon, - .iradio_line-grey.checked .icheck_line-icon { - background-position: -15px 0; - } - .icheckbox_line-grey.disabled, - .iradio_line-grey.disabled { - background: #D5D4D3; - cursor: default; - } - .icheckbox_line-grey.disabled .icheck_line-icon, - .iradio_line-grey.disabled .icheck_line-icon { - background-position: -30px 0; - } - .icheckbox_line-grey.checked.disabled, - .iradio_line-grey.checked.disabled { - background: #D5D4D3; - } - .icheckbox_line-grey.checked.disabled .icheck_line-icon, - .iradio_line-grey.checked.disabled .icheck_line-icon { - background-position: -45px 0; - } - -/* Retina support */ -@media only screen and (-webkit-min-device-pixel-ratio: 1.5), - only screen and (-moz-min-device-pixel-ratio: 1.5), - only screen and (-o-min-device-pixel-ratio: 3/2), - only screen and (min-device-pixel-ratio: 1.5) { - .icheckbox_line-grey .icheck_line-icon, - .iradio_line-grey .icheck_line-icon { - background-image: url(line@2x.png); - -webkit-background-size: 60px 13px; - background-size: 60px 13px; - } -} \ No newline at end of file diff --git a/admin/plugins/iCheck/line/line.css b/admin/plugins/iCheck/line/line.css deleted file mode 100644 index dbde8d4..0000000 --- a/admin/plugins/iCheck/line/line.css +++ /dev/null @@ -1,74 +0,0 @@ -/* iCheck plugin Line skin, black ------------------------------------ */ -.icheckbox_line, -.iradio_line { - position: relative; - display: block; - margin: 0; - padding: 5px 15px 5px 38px; - font-size: 13px; - line-height: 17px; - color: #fff; - background: #000; - border: none; - -webkit-border-radius: 3px; - -moz-border-radius: 3px; - border-radius: 3px; - cursor: pointer; -} - .icheckbox_line .icheck_line-icon, - .iradio_line .icheck_line-icon { - position: absolute; - top: 50%; - left: 13px; - width: 13px; - height: 11px; - margin: -5px 0 0 0; - padding: 0; - overflow: hidden; - background: url(line.png) no-repeat; - border: none; - } - .icheckbox_line.hover, - .icheckbox_line.checked.hover, - .iradio_line.hover { - background: #444; - } - .icheckbox_line.checked, - .iradio_line.checked { - background: #000; - } - .icheckbox_line.checked .icheck_line-icon, - .iradio_line.checked .icheck_line-icon { - background-position: -15px 0; - } - .icheckbox_line.disabled, - .iradio_line.disabled { - background: #ccc; - cursor: default; - } - .icheckbox_line.disabled .icheck_line-icon, - .iradio_line.disabled .icheck_line-icon { - background-position: -30px 0; - } - .icheckbox_line.checked.disabled, - .iradio_line.checked.disabled { - background: #ccc; - } - .icheckbox_line.checked.disabled .icheck_line-icon, - .iradio_line.checked.disabled .icheck_line-icon { - background-position: -45px 0; - } - -/* Retina support */ -@media only screen and (-webkit-min-device-pixel-ratio: 1.5), - only screen and (-moz-min-device-pixel-ratio: 1.5), - only screen and (-o-min-device-pixel-ratio: 3/2), - only screen and (min-device-pixel-ratio: 1.5) { - .icheckbox_line .icheck_line-icon, - .iradio_line .icheck_line-icon { - background-image: url(line@2x.png); - -webkit-background-size: 60px 13px; - background-size: 60px 13px; - } -} \ No newline at end of file diff --git a/admin/plugins/iCheck/line/line.png b/admin/plugins/iCheck/line/line.png deleted file mode 100644 index d21d7a7..0000000 Binary files a/admin/plugins/iCheck/line/line.png and /dev/null differ diff --git a/admin/plugins/iCheck/line/line@2x.png b/admin/plugins/iCheck/line/line@2x.png deleted file mode 100644 index 62900a2..0000000 Binary files a/admin/plugins/iCheck/line/line@2x.png and /dev/null differ diff --git a/admin/plugins/iCheck/line/orange.css b/admin/plugins/iCheck/line/orange.css deleted file mode 100644 index 210f334..0000000 --- a/admin/plugins/iCheck/line/orange.css +++ /dev/null @@ -1,74 +0,0 @@ -/* iCheck plugin Line skin, orange ------------------------------------ */ -.icheckbox_line-orange, -.iradio_line-orange { - position: relative; - display: block; - margin: 0; - padding: 5px 15px 5px 38px; - font-size: 13px; - line-height: 17px; - color: #fff; - background: #f70; - border: none; - -webkit-border-radius: 3px; - -moz-border-radius: 3px; - border-radius: 3px; - cursor: pointer; -} - .icheckbox_line-orange .icheck_line-icon, - .iradio_line-orange .icheck_line-icon { - position: absolute; - top: 50%; - left: 13px; - width: 13px; - height: 11px; - margin: -5px 0 0 0; - padding: 0; - overflow: hidden; - background: url(line.png) no-repeat; - border: none; - } - .icheckbox_line-orange.hover, - .icheckbox_line-orange.checked.hover, - .iradio_line-orange.hover { - background: #FF9233; - } - .icheckbox_line-orange.checked, - .iradio_line-orange.checked { - background: #f70; - } - .icheckbox_line-orange.checked .icheck_line-icon, - .iradio_line-orange.checked .icheck_line-icon { - background-position: -15px 0; - } - .icheckbox_line-orange.disabled, - .iradio_line-orange.disabled { - background: #FFD6B3; - cursor: default; - } - .icheckbox_line-orange.disabled .icheck_line-icon, - .iradio_line-orange.disabled .icheck_line-icon { - background-position: -30px 0; - } - .icheckbox_line-orange.checked.disabled, - .iradio_line-orange.checked.disabled { - background: #FFD6B3; - } - .icheckbox_line-orange.checked.disabled .icheck_line-icon, - .iradio_line-orange.checked.disabled .icheck_line-icon { - background-position: -45px 0; - } - -/* Retina support */ -@media only screen and (-webkit-min-device-pixel-ratio: 1.5), - only screen and (-moz-min-device-pixel-ratio: 1.5), - only screen and (-o-min-device-pixel-ratio: 3/2), - only screen and (min-device-pixel-ratio: 1.5) { - .icheckbox_line-orange .icheck_line-icon, - .iradio_line-orange .icheck_line-icon { - background-image: url(line@2x.png); - -webkit-background-size: 60px 13px; - background-size: 60px 13px; - } -} \ No newline at end of file diff --git a/admin/plugins/iCheck/line/pink.css b/admin/plugins/iCheck/line/pink.css deleted file mode 100644 index 44c9cea..0000000 --- a/admin/plugins/iCheck/line/pink.css +++ /dev/null @@ -1,74 +0,0 @@ -/* iCheck plugin Line skin, pink ------------------------------------ */ -.icheckbox_line-pink, -.iradio_line-pink { - position: relative; - display: block; - margin: 0; - padding: 5px 15px 5px 38px; - font-size: 13px; - line-height: 17px; - color: #fff; - background: #a77a94; - border: none; - -webkit-border-radius: 3px; - -moz-border-radius: 3px; - border-radius: 3px; - cursor: pointer; -} - .icheckbox_line-pink .icheck_line-icon, - .iradio_line-pink .icheck_line-icon { - position: absolute; - top: 50%; - left: 13px; - width: 13px; - height: 11px; - margin: -5px 0 0 0; - padding: 0; - overflow: hidden; - background: url(line.png) no-repeat; - border: none; - } - .icheckbox_line-pink.hover, - .icheckbox_line-pink.checked.hover, - .iradio_line-pink.hover { - background: #B995A9; - } - .icheckbox_line-pink.checked, - .iradio_line-pink.checked { - background: #a77a94; - } - .icheckbox_line-pink.checked .icheck_line-icon, - .iradio_line-pink.checked .icheck_line-icon { - background-position: -15px 0; - } - .icheckbox_line-pink.disabled, - .iradio_line-pink.disabled { - background: #E0D0DA; - cursor: default; - } - .icheckbox_line-pink.disabled .icheck_line-icon, - .iradio_line-pink.disabled .icheck_line-icon { - background-position: -30px 0; - } - .icheckbox_line-pink.checked.disabled, - .iradio_line-pink.checked.disabled { - background: #E0D0DA; - } - .icheckbox_line-pink.checked.disabled .icheck_line-icon, - .iradio_line-pink.checked.disabled .icheck_line-icon { - background-position: -45px 0; - } - -/* Retina support */ -@media only screen and (-webkit-min-device-pixel-ratio: 1.5), - only screen and (-moz-min-device-pixel-ratio: 1.5), - only screen and (-o-min-device-pixel-ratio: 3/2), - only screen and (min-device-pixel-ratio: 1.5) { - .icheckbox_line-pink .icheck_line-icon, - .iradio_line-pink .icheck_line-icon { - background-image: url(line@2x.png); - -webkit-background-size: 60px 13px; - background-size: 60px 13px; - } -} \ No newline at end of file diff --git a/admin/plugins/iCheck/line/purple.css b/admin/plugins/iCheck/line/purple.css deleted file mode 100644 index be4c4e2..0000000 --- a/admin/plugins/iCheck/line/purple.css +++ /dev/null @@ -1,74 +0,0 @@ -/* iCheck plugin Line skin, purple ------------------------------------ */ -.icheckbox_line-purple, -.iradio_line-purple { - position: relative; - display: block; - margin: 0; - padding: 5px 15px 5px 38px; - font-size: 13px; - line-height: 17px; - color: #fff; - background: #6a5a8c; - border: none; - -webkit-border-radius: 3px; - -moz-border-radius: 3px; - border-radius: 3px; - cursor: pointer; -} - .icheckbox_line-purple .icheck_line-icon, - .iradio_line-purple .icheck_line-icon { - position: absolute; - top: 50%; - left: 13px; - width: 13px; - height: 11px; - margin: -5px 0 0 0; - padding: 0; - overflow: hidden; - background: url(line.png) no-repeat; - border: none; - } - .icheckbox_line-purple.hover, - .icheckbox_line-purple.checked.hover, - .iradio_line-purple.hover { - background: #8677A7; - } - .icheckbox_line-purple.checked, - .iradio_line-purple.checked { - background: #6a5a8c; - } - .icheckbox_line-purple.checked .icheck_line-icon, - .iradio_line-purple.checked .icheck_line-icon { - background-position: -15px 0; - } - .icheckbox_line-purple.disabled, - .iradio_line-purple.disabled { - background: #D2CCDE; - cursor: default; - } - .icheckbox_line-purple.disabled .icheck_line-icon, - .iradio_line-purple.disabled .icheck_line-icon { - background-position: -30px 0; - } - .icheckbox_line-purple.checked.disabled, - .iradio_line-purple.checked.disabled { - background: #D2CCDE; - } - .icheckbox_line-purple.checked.disabled .icheck_line-icon, - .iradio_line-purple.checked.disabled .icheck_line-icon { - background-position: -45px 0; - } - -/* Retina support */ -@media only screen and (-webkit-min-device-pixel-ratio: 1.5), - only screen and (-moz-min-device-pixel-ratio: 1.5), - only screen and (-o-min-device-pixel-ratio: 3/2), - only screen and (min-device-pixel-ratio: 1.5) { - .icheckbox_line-purple .icheck_line-icon, - .iradio_line-purple .icheck_line-icon { - background-image: url(line@2x.png); - -webkit-background-size: 60px 13px; - background-size: 60px 13px; - } -} \ No newline at end of file diff --git a/admin/plugins/iCheck/line/red.css b/admin/plugins/iCheck/line/red.css deleted file mode 100644 index ebcd8be..0000000 --- a/admin/plugins/iCheck/line/red.css +++ /dev/null @@ -1,74 +0,0 @@ -/* iCheck plugin Line skin, red ------------------------------------ */ -.icheckbox_line-red, -.iradio_line-red { - position: relative; - display: block; - margin: 0; - padding: 5px 15px 5px 38px; - font-size: 13px; - line-height: 17px; - color: #fff; - background: #e56c69; - border: none; - -webkit-border-radius: 3px; - -moz-border-radius: 3px; - border-radius: 3px; - cursor: pointer; -} - .icheckbox_line-red .icheck_line-icon, - .iradio_line-red .icheck_line-icon { - position: absolute; - top: 50%; - left: 13px; - width: 13px; - height: 11px; - margin: -5px 0 0 0; - padding: 0; - overflow: hidden; - background: url(line.png) no-repeat; - border: none; - } - .icheckbox_line-red.hover, - .icheckbox_line-red.checked.hover, - .iradio_line-red.hover { - background: #E98582; - } - .icheckbox_line-red.checked, - .iradio_line-red.checked { - background: #e56c69; - } - .icheckbox_line-red.checked .icheck_line-icon, - .iradio_line-red.checked .icheck_line-icon { - background-position: -15px 0; - } - .icheckbox_line-red.disabled, - .iradio_line-red.disabled { - background: #F7D3D2; - cursor: default; - } - .icheckbox_line-red.disabled .icheck_line-icon, - .iradio_line-red.disabled .icheck_line-icon { - background-position: -30px 0; - } - .icheckbox_line-red.checked.disabled, - .iradio_line-red.checked.disabled { - background: #F7D3D2; - } - .icheckbox_line-red.checked.disabled .icheck_line-icon, - .iradio_line-red.checked.disabled .icheck_line-icon { - background-position: -45px 0; - } - -/* Retina support */ -@media only screen and (-webkit-min-device-pixel-ratio: 1.5), - only screen and (-moz-min-device-pixel-ratio: 1.5), - only screen and (-o-min-device-pixel-ratio: 3/2), - only screen and (min-device-pixel-ratio: 1.5) { - .icheckbox_line-red .icheck_line-icon, - .iradio_line-red .icheck_line-icon { - background-image: url(line@2x.png); - -webkit-background-size: 60px 13px; - background-size: 60px 13px; - } -} \ No newline at end of file diff --git a/admin/plugins/iCheck/line/yellow.css b/admin/plugins/iCheck/line/yellow.css deleted file mode 100644 index 8e08871..0000000 --- a/admin/plugins/iCheck/line/yellow.css +++ /dev/null @@ -1,74 +0,0 @@ -/* iCheck plugin Line skin, yellow ------------------------------------ */ -.icheckbox_line-yellow, -.iradio_line-yellow { - position: relative; - display: block; - margin: 0; - padding: 5px 15px 5px 38px; - font-size: 13px; - line-height: 17px; - color: #fff; - background: #FFC414; - border: none; - -webkit-border-radius: 3px; - -moz-border-radius: 3px; - border-radius: 3px; - cursor: pointer; -} - .icheckbox_line-yellow .icheck_line-icon, - .iradio_line-yellow .icheck_line-icon { - position: absolute; - top: 50%; - left: 13px; - width: 13px; - height: 11px; - margin: -5px 0 0 0; - padding: 0; - overflow: hidden; - background: url(line.png) no-repeat; - border: none; - } - .icheckbox_line-yellow.hover, - .icheckbox_line-yellow.checked.hover, - .iradio_line-yellow.hover { - background: #FFD34F; - } - .icheckbox_line-yellow.checked, - .iradio_line-yellow.checked { - background: #FFC414; - } - .icheckbox_line-yellow.checked .icheck_line-icon, - .iradio_line-yellow.checked .icheck_line-icon { - background-position: -15px 0; - } - .icheckbox_line-yellow.disabled, - .iradio_line-yellow.disabled { - background: #FFE495; - cursor: default; - } - .icheckbox_line-yellow.disabled .icheck_line-icon, - .iradio_line-yellow.disabled .icheck_line-icon { - background-position: -30px 0; - } - .icheckbox_line-yellow.checked.disabled, - .iradio_line-yellow.checked.disabled { - background: #FFE495; - } - .icheckbox_line-yellow.checked.disabled .icheck_line-icon, - .iradio_line-yellow.checked.disabled .icheck_line-icon { - background-position: -45px 0; - } - -/* Retina support */ -@media only screen and (-webkit-min-device-pixel-ratio: 1.5), - only screen and (-moz-min-device-pixel-ratio: 1.5), - only screen and (-o-min-device-pixel-ratio: 3/2), - only screen and (min-device-pixel-ratio: 1.5) { - .icheckbox_line-yellow .icheck_line-icon, - .iradio_line-yellow .icheck_line-icon { - background-image: url(line@2x.png); - -webkit-background-size: 60px 13px; - background-size: 60px 13px; - } -} \ No newline at end of file diff --git a/admin/plugins/iCheck/minimal/_all.css b/admin/plugins/iCheck/minimal/_all.css deleted file mode 100644 index b2165ec..0000000 --- a/admin/plugins/iCheck/minimal/_all.css +++ /dev/null @@ -1,557 +0,0 @@ -/* red */ -.icheckbox_minimal-red, -.iradio_minimal-red { - display: inline-block; - *display: inline; - vertical-align: middle; - margin: 0; - padding: 0; - width: 18px; - height: 18px; - background: url(red.png) no-repeat; - border: none; - cursor: pointer; -} - -.icheckbox_minimal-red { - background-position: 0 0; -} - .icheckbox_minimal-red.hover { - background-position: -20px 0; - } - .icheckbox_minimal-red.checked { - background-position: -40px 0; - } - .icheckbox_minimal-red.disabled { - background-position: -60px 0; - cursor: default; - } - .icheckbox_minimal-red.checked.disabled { - background-position: -80px 0; - } - -.iradio_minimal-red { - background-position: -100px 0; -} - .iradio_minimal-red.hover { - background-position: -120px 0; - } - .iradio_minimal-red.checked { - background-position: -140px 0; - } - .iradio_minimal-red.disabled { - background-position: -160px 0; - cursor: default; - } - .iradio_minimal-red.checked.disabled { - background-position: -180px 0; - } - -/* Retina support */ -@media only screen and (-webkit-min-device-pixel-ratio: 1.5), - only screen and (-moz-min-device-pixel-ratio: 1.5), - only screen and (-o-min-device-pixel-ratio: 1.5), - only screen and (min-device-pixel-ratio: 1.5) { - .icheckbox_minimal-red, - .iradio_minimal-red { - background-image: url(red@2x.png); - -webkit-background-size: 200px 20px; - background-size: 200px 20px; - } -} - -/* green */ -.icheckbox_minimal-green, -.iradio_minimal-green { - display: inline-block; - *display: inline; - vertical-align: middle; - margin: 0; - padding: 0; - width: 18px; - height: 18px; - background: url(green.png) no-repeat; - border: none; - cursor: pointer; -} - -.icheckbox_minimal-green { - background-position: 0 0; -} - .icheckbox_minimal-green.hover { - background-position: -20px 0; - } - .icheckbox_minimal-green.checked { - background-position: -40px 0; - } - .icheckbox_minimal-green.disabled { - background-position: -60px 0; - cursor: default; - } - .icheckbox_minimal-green.checked.disabled { - background-position: -80px 0; - } - -.iradio_minimal-green { - background-position: -100px 0; -} - .iradio_minimal-green.hover { - background-position: -120px 0; - } - .iradio_minimal-green.checked { - background-position: -140px 0; - } - .iradio_minimal-green.disabled { - background-position: -160px 0; - cursor: default; - } - .iradio_minimal-green.checked.disabled { - background-position: -180px 0; - } - -/* Retina support */ -@media only screen and (-webkit-min-device-pixel-ratio: 1.5), - only screen and (-moz-min-device-pixel-ratio: 1.5), - only screen and (-o-min-device-pixel-ratio: 1.5), - only screen and (min-device-pixel-ratio: 1.5) { - .icheckbox_minimal-green, - .iradio_minimal-green { - background-image: url(green@2x.png); - -webkit-background-size: 200px 20px; - background-size: 200px 20px; - } -} - -/* blue */ -.icheckbox_minimal-blue, -.iradio_minimal-blue { - display: inline-block; - *display: inline; - vertical-align: middle; - margin: 0; - padding: 0; - width: 18px; - height: 18px; - background: url(blue.png) no-repeat; - border: none; - cursor: pointer; -} - -.icheckbox_minimal-blue { - background-position: 0 0; -} - .icheckbox_minimal-blue.hover { - background-position: -20px 0; - } - .icheckbox_minimal-blue.checked { - background-position: -40px 0; - } - .icheckbox_minimal-blue.disabled { - background-position: -60px 0; - cursor: default; - } - .icheckbox_minimal-blue.checked.disabled { - background-position: -80px 0; - } - -.iradio_minimal-blue { - background-position: -100px 0; -} - .iradio_minimal-blue.hover { - background-position: -120px 0; - } - .iradio_minimal-blue.checked { - background-position: -140px 0; - } - .iradio_minimal-blue.disabled { - background-position: -160px 0; - cursor: default; - } - .iradio_minimal-blue.checked.disabled { - background-position: -180px 0; - } - -/* Retina support */ -@media only screen and (-webkit-min-device-pixel-ratio: 1.5), - only screen and (-moz-min-device-pixel-ratio: 1.5), - only screen and (-o-min-device-pixel-ratio: 3/2), - only screen and (min-device-pixel-ratio: 1.5) { - .icheckbox_minimal-blue, - .iradio_minimal-blue { - background-image: url(blue@2x.png); - -webkit-background-size: 200px 20px; - background-size: 200px 20px; - } -} - -/* aero */ -.icheckbox_minimal-aero, -.iradio_minimal-aero { - display: inline-block; - *display: inline; - vertical-align: middle; - margin: 0; - padding: 0; - width: 18px; - height: 18px; - background: url(aero.png) no-repeat; - border: none; - cursor: pointer; -} - -.icheckbox_minimal-aero { - background-position: 0 0; -} - .icheckbox_minimal-aero.hover { - background-position: -20px 0; - } - .icheckbox_minimal-aero.checked { - background-position: -40px 0; - } - .icheckbox_minimal-aero.disabled { - background-position: -60px 0; - cursor: default; - } - .icheckbox_minimal-aero.checked.disabled { - background-position: -80px 0; - } - -.iradio_minimal-aero { - background-position: -100px 0; -} - .iradio_minimal-aero.hover { - background-position: -120px 0; - } - .iradio_minimal-aero.checked { - background-position: -140px 0; - } - .iradio_minimal-aero.disabled { - background-position: -160px 0; - cursor: default; - } - .iradio_minimal-aero.checked.disabled { - background-position: -180px 0; - } - -/* Retina support */ -@media only screen and (-webkit-min-device-pixel-ratio: 1.5), - only screen and (-moz-min-device-pixel-ratio: 1.5), - only screen and (-o-min-device-pixel-ratio: 3/2), - only screen and (min-device-pixel-ratio: 1.5) { - .icheckbox_minimal-aero, - .iradio_minimal-aero { - background-image: url(aero@2x.png); - -webkit-background-size: 200px 20px; - background-size: 200px 20px; - } -} - -/* grey */ -.icheckbox_minimal-grey, -.iradio_minimal-grey { - display: inline-block; - *display: inline; - vertical-align: middle; - margin: 0; - padding: 0; - width: 18px; - height: 18px; - background: url(grey.png) no-repeat; - border: none; - cursor: pointer; -} - -.icheckbox_minimal-grey { - background-position: 0 0; -} - .icheckbox_minimal-grey.hover { - background-position: -20px 0; - } - .icheckbox_minimal-grey.checked { - background-position: -40px 0; - } - .icheckbox_minimal-grey.disabled { - background-position: -60px 0; - cursor: default; - } - .icheckbox_minimal-grey.checked.disabled { - background-position: -80px 0; - } - -.iradio_minimal-grey { - background-position: -100px 0; -} - .iradio_minimal-grey.hover { - background-position: -120px 0; - } - .iradio_minimal-grey.checked { - background-position: -140px 0; - } - .iradio_minimal-grey.disabled { - background-position: -160px 0; - cursor: default; - } - .iradio_minimal-grey.checked.disabled { - background-position: -180px 0; - } - -/* Retina support */ -@media only screen and (-webkit-min-device-pixel-ratio: 1.5), - only screen and (-moz-min-device-pixel-ratio: 1.5), - only screen and (-o-min-device-pixel-ratio: 1.5), - only screen and (min-device-pixel-ratio: 1.5) { - .icheckbox_minimal-grey, - .iradio_minimal-grey { - background-image: url(grey@2x.png); - -webkit-background-size: 200px 20px; - background-size: 200px 20px; - } -} - -/* orange */ -.icheckbox_minimal-orange, -.iradio_minimal-orange { - display: inline-block; - *display: inline; - vertical-align: middle; - margin: 0; - padding: 0; - width: 18px; - height: 18px; - background: url(orange.png) no-repeat; - border: none; - cursor: pointer; -} - -.icheckbox_minimal-orange { - background-position: 0 0; -} - .icheckbox_minimal-orange.hover { - background-position: -20px 0; - } - .icheckbox_minimal-orange.checked { - background-position: -40px 0; - } - .icheckbox_minimal-orange.disabled { - background-position: -60px 0; - cursor: default; - } - .icheckbox_minimal-orange.checked.disabled { - background-position: -80px 0; - } - -.iradio_minimal-orange { - background-position: -100px 0; -} - .iradio_minimal-orange.hover { - background-position: -120px 0; - } - .iradio_minimal-orange.checked { - background-position: -140px 0; - } - .iradio_minimal-orange.disabled { - background-position: -160px 0; - cursor: default; - } - .iradio_minimal-orange.checked.disabled { - background-position: -180px 0; - } - -/* Retina support */ -@media only screen and (-webkit-min-device-pixel-ratio: 1.5), - only screen and (-moz-min-device-pixel-ratio: 1.5), - only screen and (-o-min-device-pixel-ratio: 1.5), - only screen and (min-device-pixel-ratio: 1.5) { - .icheckbox_minimal-orange, - .iradio_minimal-orange { - background-image: url(orange@2x.png); - -webkit-background-size: 200px 20px; - background-size: 200px 20px; - } -} - -/* yellow */ -.icheckbox_minimal-yellow, -.iradio_minimal-yellow { - display: inline-block; - *display: inline; - vertical-align: middle; - margin: 0; - padding: 0; - width: 18px; - height: 18px; - background: url(yellow.png) no-repeat; - border: none; - cursor: pointer; -} - -.icheckbox_minimal-yellow { - background-position: 0 0; -} - .icheckbox_minimal-yellow.hover { - background-position: -20px 0; - } - .icheckbox_minimal-yellow.checked { - background-position: -40px 0; - } - .icheckbox_minimal-yellow.disabled { - background-position: -60px 0; - cursor: default; - } - .icheckbox_minimal-yellow.checked.disabled { - background-position: -80px 0; - } - -.iradio_minimal-yellow { - background-position: -100px 0; -} - .iradio_minimal-yellow.hover { - background-position: -120px 0; - } - .iradio_minimal-yellow.checked { - background-position: -140px 0; - } - .iradio_minimal-yellow.disabled { - background-position: -160px 0; - cursor: default; - } - .iradio_minimal-yellow.checked.disabled { - background-position: -180px 0; - } - -/* Retina support */ -@media only screen and (-webkit-min-device-pixel-ratio: 1.5), - only screen and (-moz-min-device-pixel-ratio: 1.5), - only screen and (-o-min-device-pixel-ratio: 1.5), - only screen and (min-device-pixel-ratio: 1.5) { - .icheckbox_minimal-yellow, - .iradio_minimal-yellow { - background-image: url(yellow@2x.png); - -webkit-background-size: 200px 20px; - background-size: 200px 20px; - } -} - -/* pink */ -.icheckbox_minimal-pink, -.iradio_minimal-pink { - display: inline-block; - *display: inline; - vertical-align: middle; - margin: 0; - padding: 0; - width: 18px; - height: 18px; - background: url(pink.png) no-repeat; - border: none; - cursor: pointer; -} - -.icheckbox_minimal-pink { - background-position: 0 0; -} - .icheckbox_minimal-pink.hover { - background-position: -20px 0; - } - .icheckbox_minimal-pink.checked { - background-position: -40px 0; - } - .icheckbox_minimal-pink.disabled { - background-position: -60px 0; - cursor: default; - } - .icheckbox_minimal-pink.checked.disabled { - background-position: -80px 0; - } - -.iradio_minimal-pink { - background-position: -100px 0; -} - .iradio_minimal-pink.hover { - background-position: -120px 0; - } - .iradio_minimal-pink.checked { - background-position: -140px 0; - } - .iradio_minimal-pink.disabled { - background-position: -160px 0; - cursor: default; - } - .iradio_minimal-pink.checked.disabled { - background-position: -180px 0; - } - -/* Retina support */ -@media only screen and (-webkit-min-device-pixel-ratio: 1.5), - only screen and (-moz-min-device-pixel-ratio: 1.5), - only screen and (-o-min-device-pixel-ratio: 1.5), - only screen and (min-device-pixel-ratio: 1.5) { - .icheckbox_minimal-pink, - .iradio_minimal-pink { - background-image: url(pink@2x.png); - -webkit-background-size: 200px 20px; - background-size: 200px 20px; - } -} - -/* purple */ -.icheckbox_minimal-purple, -.iradio_minimal-purple { - display: inline-block; - *display: inline; - vertical-align: middle; - margin: 0; - padding: 0; - width: 18px; - height: 18px; - background: url(purple.png) no-repeat; - border: none; - cursor: pointer; -} - -.icheckbox_minimal-purple { - background-position: 0 0; -} - .icheckbox_minimal-purple.hover { - background-position: -20px 0; - } - .icheckbox_minimal-purple.checked { - background-position: -40px 0; - } - .icheckbox_minimal-purple.disabled { - background-position: -60px 0; - cursor: default; - } - .icheckbox_minimal-purple.checked.disabled { - background-position: -80px 0; - } - -.iradio_minimal-purple { - background-position: -100px 0; -} - .iradio_minimal-purple.hover { - background-position: -120px 0; - } - .iradio_minimal-purple.checked { - background-position: -140px 0; - } - .iradio_minimal-purple.disabled { - background-position: -160px 0; - cursor: default; - } - .iradio_minimal-purple.checked.disabled { - background-position: -180px 0; - } - -/* Retina support */ -@media only screen and (-webkit-min-device-pixel-ratio: 1.5), - only screen and (-moz-min-device-pixel-ratio: 1.5), - only screen and (-o-min-device-pixel-ratio: 1.5), - only screen and (min-device-pixel-ratio: 1.5) { - .icheckbox_minimal-purple, - .iradio_minimal-purple { - background-image: url(purple@2x.png); - -webkit-background-size: 200px 20px; - background-size: 200px 20px; - } -} \ No newline at end of file diff --git a/admin/plugins/iCheck/minimal/aero.css b/admin/plugins/iCheck/minimal/aero.css deleted file mode 100644 index c97acc8..0000000 --- a/admin/plugins/iCheck/minimal/aero.css +++ /dev/null @@ -1,62 +0,0 @@ -/* iCheck plugin Minimal skin, aero ------------------------------------ */ -.icheckbox_minimal-aero, -.iradio_minimal-aero { - display: inline-block; - *display: inline; - vertical-align: middle; - margin: 0; - padding: 0; - width: 18px; - height: 18px; - background: url(aero.png) no-repeat; - border: none; - cursor: pointer; -} - -.icheckbox_minimal-aero { - background-position: 0 0; -} - .icheckbox_minimal-aero.hover { - background-position: -20px 0; - } - .icheckbox_minimal-aero.checked { - background-position: -40px 0; - } - .icheckbox_minimal-aero.disabled { - background-position: -60px 0; - cursor: default; - } - .icheckbox_minimal-aero.checked.disabled { - background-position: -80px 0; - } - -.iradio_minimal-aero { - background-position: -100px 0; -} - .iradio_minimal-aero.hover { - background-position: -120px 0; - } - .iradio_minimal-aero.checked { - background-position: -140px 0; - } - .iradio_minimal-aero.disabled { - background-position: -160px 0; - cursor: default; - } - .iradio_minimal-aero.checked.disabled { - background-position: -180px 0; - } - -/* Retina support */ -@media only screen and (-webkit-min-device-pixel-ratio: 1.5), - only screen and (-moz-min-device-pixel-ratio: 1.5), - only screen and (-o-min-device-pixel-ratio: 3/2), - only screen and (min-device-pixel-ratio: 1.5) { - .icheckbox_minimal-aero, - .iradio_minimal-aero { - background-image: url(aero@2x.png); - -webkit-background-size: 200px 20px; - background-size: 200px 20px; - } -} \ No newline at end of file diff --git a/admin/plugins/iCheck/minimal/aero.png b/admin/plugins/iCheck/minimal/aero.png deleted file mode 100644 index dccf774..0000000 Binary files a/admin/plugins/iCheck/minimal/aero.png and /dev/null differ diff --git a/admin/plugins/iCheck/minimal/aero@2x.png b/admin/plugins/iCheck/minimal/aero@2x.png deleted file mode 100644 index 5537ee3..0000000 Binary files a/admin/plugins/iCheck/minimal/aero@2x.png and /dev/null differ diff --git a/admin/plugins/iCheck/minimal/blue.css b/admin/plugins/iCheck/minimal/blue.css deleted file mode 100644 index 42477cd..0000000 --- a/admin/plugins/iCheck/minimal/blue.css +++ /dev/null @@ -1,62 +0,0 @@ -/* iCheck plugin Minimal skin, blue ------------------------------------ */ -.icheckbox_minimal-blue, -.iradio_minimal-blue { - display: inline-block; - *display: inline; - vertical-align: middle; - margin: 0; - padding: 0; - width: 18px; - height: 18px; - background: url(blue.png) no-repeat; - border: none; - cursor: pointer; -} - -.icheckbox_minimal-blue { - background-position: 0 0; -} - .icheckbox_minimal-blue.hover { - background-position: -20px 0; - } - .icheckbox_minimal-blue.checked { - background-position: -40px 0; - } - .icheckbox_minimal-blue.disabled { - background-position: -60px 0; - cursor: default; - } - .icheckbox_minimal-blue.checked.disabled { - background-position: -80px 0; - } - -.iradio_minimal-blue { - background-position: -100px 0; -} - .iradio_minimal-blue.hover { - background-position: -120px 0; - } - .iradio_minimal-blue.checked { - background-position: -140px 0; - } - .iradio_minimal-blue.disabled { - background-position: -160px 0; - cursor: default; - } - .iradio_minimal-blue.checked.disabled { - background-position: -180px 0; - } - -/* Retina support */ -@media only screen and (-webkit-min-device-pixel-ratio: 1.5), - only screen and (-moz-min-device-pixel-ratio: 1.5), - only screen and (-o-min-device-pixel-ratio: 3/2), - only screen and (min-device-pixel-ratio: 1.5) { - .icheckbox_minimal-blue, - .iradio_minimal-blue { - background-image: url(blue@2x.png); - -webkit-background-size: 200px 20px; - background-size: 200px 20px; - } -} \ No newline at end of file diff --git a/admin/plugins/iCheck/minimal/blue.png b/admin/plugins/iCheck/minimal/blue.png deleted file mode 100644 index af04cee..0000000 Binary files a/admin/plugins/iCheck/minimal/blue.png and /dev/null differ diff --git a/admin/plugins/iCheck/minimal/blue@2x.png b/admin/plugins/iCheck/minimal/blue@2x.png deleted file mode 100644 index f19210a..0000000 Binary files a/admin/plugins/iCheck/minimal/blue@2x.png and /dev/null differ diff --git a/admin/plugins/iCheck/minimal/green.css b/admin/plugins/iCheck/minimal/green.css deleted file mode 100644 index bd1e3d0..0000000 --- a/admin/plugins/iCheck/minimal/green.css +++ /dev/null @@ -1,62 +0,0 @@ -/* iCheck plugin Minimal skin, green ------------------------------------ */ -.icheckbox_minimal-green, -.iradio_minimal-green { - display: inline-block; - *display: inline; - vertical-align: middle; - margin: 0; - padding: 0; - width: 18px; - height: 18px; - background: url(green.png) no-repeat; - border: none; - cursor: pointer; -} - -.icheckbox_minimal-green { - background-position: 0 0; -} - .icheckbox_minimal-green.hover { - background-position: -20px 0; - } - .icheckbox_minimal-green.checked { - background-position: -40px 0; - } - .icheckbox_minimal-green.disabled { - background-position: -60px 0; - cursor: default; - } - .icheckbox_minimal-green.checked.disabled { - background-position: -80px 0; - } - -.iradio_minimal-green { - background-position: -100px 0; -} - .iradio_minimal-green.hover { - background-position: -120px 0; - } - .iradio_minimal-green.checked { - background-position: -140px 0; - } - .iradio_minimal-green.disabled { - background-position: -160px 0; - cursor: default; - } - .iradio_minimal-green.checked.disabled { - background-position: -180px 0; - } - -/* Retina support */ -@media only screen and (-webkit-min-device-pixel-ratio: 1.5), - only screen and (-moz-min-device-pixel-ratio: 1.5), - only screen and (-o-min-device-pixel-ratio: 1.5), - only screen and (min-device-pixel-ratio: 1.5) { - .icheckbox_minimal-green, - .iradio_minimal-green { - background-image: url(green@2x.png); - -webkit-background-size: 200px 20px; - background-size: 200px 20px; - } -} \ No newline at end of file diff --git a/admin/plugins/iCheck/minimal/green.png b/admin/plugins/iCheck/minimal/green.png deleted file mode 100644 index 9171ebc..0000000 Binary files a/admin/plugins/iCheck/minimal/green.png and /dev/null differ diff --git a/admin/plugins/iCheck/minimal/green@2x.png b/admin/plugins/iCheck/minimal/green@2x.png deleted file mode 100644 index 7f18f96..0000000 Binary files a/admin/plugins/iCheck/minimal/green@2x.png and /dev/null differ diff --git a/admin/plugins/iCheck/minimal/grey.css b/admin/plugins/iCheck/minimal/grey.css deleted file mode 100644 index 6e2730c..0000000 --- a/admin/plugins/iCheck/minimal/grey.css +++ /dev/null @@ -1,62 +0,0 @@ -/* iCheck plugin Minimal skin, grey ------------------------------------ */ -.icheckbox_minimal-grey, -.iradio_minimal-grey { - display: inline-block; - *display: inline; - vertical-align: middle; - margin: 0; - padding: 0; - width: 18px; - height: 18px; - background: url(grey.png) no-repeat; - border: none; - cursor: pointer; -} - -.icheckbox_minimal-grey { - background-position: 0 0; -} - .icheckbox_minimal-grey.hover { - background-position: -20px 0; - } - .icheckbox_minimal-grey.checked { - background-position: -40px 0; - } - .icheckbox_minimal-grey.disabled { - background-position: -60px 0; - cursor: default; - } - .icheckbox_minimal-grey.checked.disabled { - background-position: -80px 0; - } - -.iradio_minimal-grey { - background-position: -100px 0; -} - .iradio_minimal-grey.hover { - background-position: -120px 0; - } - .iradio_minimal-grey.checked { - background-position: -140px 0; - } - .iradio_minimal-grey.disabled { - background-position: -160px 0; - cursor: default; - } - .iradio_minimal-grey.checked.disabled { - background-position: -180px 0; - } - -/* Retina support */ -@media only screen and (-webkit-min-device-pixel-ratio: 1.5), - only screen and (-moz-min-device-pixel-ratio: 1.5), - only screen and (-o-min-device-pixel-ratio: 1.5), - only screen and (min-device-pixel-ratio: 1.5) { - .icheckbox_minimal-grey, - .iradio_minimal-grey { - background-image: url(grey@2x.png); - -webkit-background-size: 200px 20px; - background-size: 200px 20px; - } -} \ No newline at end of file diff --git a/admin/plugins/iCheck/minimal/grey.png b/admin/plugins/iCheck/minimal/grey.png deleted file mode 100644 index 22dcdbc..0000000 Binary files a/admin/plugins/iCheck/minimal/grey.png and /dev/null differ diff --git a/admin/plugins/iCheck/minimal/grey@2x.png b/admin/plugins/iCheck/minimal/grey@2x.png deleted file mode 100644 index 85e82dd..0000000 Binary files a/admin/plugins/iCheck/minimal/grey@2x.png and /dev/null differ diff --git a/admin/plugins/iCheck/minimal/minimal.css b/admin/plugins/iCheck/minimal/minimal.css deleted file mode 100644 index 7c0e52e..0000000 --- a/admin/plugins/iCheck/minimal/minimal.css +++ /dev/null @@ -1,62 +0,0 @@ -/* iCheck plugin Minimal skin, black ------------------------------------ */ -.icheckbox_minimal, -.iradio_minimal { - display: inline-block; - *display: inline; - vertical-align: middle; - margin: 0; - padding: 0; - width: 18px; - height: 18px; - background: url(minimal.png) no-repeat; - border: none; - cursor: pointer; -} - -.icheckbox_minimal { - background-position: 0 0; -} - .icheckbox_minimal.hover { - background-position: -20px 0; - } - .icheckbox_minimal.checked { - background-position: -40px 0; - } - .icheckbox_minimal.disabled { - background-position: -60px 0; - cursor: default; - } - .icheckbox_minimal.checked.disabled { - background-position: -80px 0; - } - -.iradio_minimal { - background-position: -100px 0; -} - .iradio_minimal.hover { - background-position: -120px 0; - } - .iradio_minimal.checked { - background-position: -140px 0; - } - .iradio_minimal.disabled { - background-position: -160px 0; - cursor: default; - } - .iradio_minimal.checked.disabled { - background-position: -180px 0; - } - -/* Retina support */ -@media only screen and (-webkit-min-device-pixel-ratio: 1.5), - only screen and (-moz-min-device-pixel-ratio: 1.5), - only screen and (-o-min-device-pixel-ratio: 3/2), - only screen and (min-device-pixel-ratio: 1.5) { - .icheckbox_minimal, - .iradio_minimal { - background-image: url(minimal@2x.png); - -webkit-background-size: 200px 20px; - background-size: 200px 20px; - } -} \ No newline at end of file diff --git a/admin/plugins/iCheck/minimal/minimal.png b/admin/plugins/iCheck/minimal/minimal.png deleted file mode 100644 index 943be16..0000000 Binary files a/admin/plugins/iCheck/minimal/minimal.png and /dev/null differ diff --git a/admin/plugins/iCheck/minimal/minimal@2x.png b/admin/plugins/iCheck/minimal/minimal@2x.png deleted file mode 100644 index d62291d..0000000 Binary files a/admin/plugins/iCheck/minimal/minimal@2x.png and /dev/null differ diff --git a/admin/plugins/iCheck/minimal/orange.css b/admin/plugins/iCheck/minimal/orange.css deleted file mode 100644 index 842e400..0000000 --- a/admin/plugins/iCheck/minimal/orange.css +++ /dev/null @@ -1,62 +0,0 @@ -/* iCheck plugin Minimal skin, orange ------------------------------------ */ -.icheckbox_minimal-orange, -.iradio_minimal-orange { - display: inline-block; - *display: inline; - vertical-align: middle; - margin: 0; - padding: 0; - width: 18px; - height: 18px; - background: url(orange.png) no-repeat; - border: none; - cursor: pointer; -} - -.icheckbox_minimal-orange { - background-position: 0 0; -} - .icheckbox_minimal-orange.hover { - background-position: -20px 0; - } - .icheckbox_minimal-orange.checked { - background-position: -40px 0; - } - .icheckbox_minimal-orange.disabled { - background-position: -60px 0; - cursor: default; - } - .icheckbox_minimal-orange.checked.disabled { - background-position: -80px 0; - } - -.iradio_minimal-orange { - background-position: -100px 0; -} - .iradio_minimal-orange.hover { - background-position: -120px 0; - } - .iradio_minimal-orange.checked { - background-position: -140px 0; - } - .iradio_minimal-orange.disabled { - background-position: -160px 0; - cursor: default; - } - .iradio_minimal-orange.checked.disabled { - background-position: -180px 0; - } - -/* Retina support */ -@media only screen and (-webkit-min-device-pixel-ratio: 1.5), - only screen and (-moz-min-device-pixel-ratio: 1.5), - only screen and (-o-min-device-pixel-ratio: 1.5), - only screen and (min-device-pixel-ratio: 1.5) { - .icheckbox_minimal-orange, - .iradio_minimal-orange { - background-image: url(orange@2x.png); - -webkit-background-size: 200px 20px; - background-size: 200px 20px; - } -} \ No newline at end of file diff --git a/admin/plugins/iCheck/minimal/orange.png b/admin/plugins/iCheck/minimal/orange.png deleted file mode 100644 index f2a3149..0000000 Binary files a/admin/plugins/iCheck/minimal/orange.png and /dev/null differ diff --git a/admin/plugins/iCheck/minimal/orange@2x.png b/admin/plugins/iCheck/minimal/orange@2x.png deleted file mode 100644 index 68c8359..0000000 Binary files a/admin/plugins/iCheck/minimal/orange@2x.png and /dev/null differ diff --git a/admin/plugins/iCheck/minimal/pink.css b/admin/plugins/iCheck/minimal/pink.css deleted file mode 100644 index 10ace21..0000000 --- a/admin/plugins/iCheck/minimal/pink.css +++ /dev/null @@ -1,62 +0,0 @@ -/* iCheck plugin Minimal skin, pink ------------------------------------ */ -.icheckbox_minimal-pink, -.iradio_minimal-pink { - display: inline-block; - *display: inline; - vertical-align: middle; - margin: 0; - padding: 0; - width: 18px; - height: 18px; - background: url(pink.png) no-repeat; - border: none; - cursor: pointer; -} - -.icheckbox_minimal-pink { - background-position: 0 0; -} - .icheckbox_minimal-pink.hover { - background-position: -20px 0; - } - .icheckbox_minimal-pink.checked { - background-position: -40px 0; - } - .icheckbox_minimal-pink.disabled { - background-position: -60px 0; - cursor: default; - } - .icheckbox_minimal-pink.checked.disabled { - background-position: -80px 0; - } - -.iradio_minimal-pink { - background-position: -100px 0; -} - .iradio_minimal-pink.hover { - background-position: -120px 0; - } - .iradio_minimal-pink.checked { - background-position: -140px 0; - } - .iradio_minimal-pink.disabled { - background-position: -160px 0; - cursor: default; - } - .iradio_minimal-pink.checked.disabled { - background-position: -180px 0; - } - -/* Retina support */ -@media only screen and (-webkit-min-device-pixel-ratio: 1.5), - only screen and (-moz-min-device-pixel-ratio: 1.5), - only screen and (-o-min-device-pixel-ratio: 1.5), - only screen and (min-device-pixel-ratio: 1.5) { - .icheckbox_minimal-pink, - .iradio_minimal-pink { - background-image: url(pink@2x.png); - -webkit-background-size: 200px 20px; - background-size: 200px 20px; - } -} \ No newline at end of file diff --git a/admin/plugins/iCheck/minimal/pink.png b/admin/plugins/iCheck/minimal/pink.png deleted file mode 100644 index 660553c..0000000 Binary files a/admin/plugins/iCheck/minimal/pink.png and /dev/null differ diff --git a/admin/plugins/iCheck/minimal/pink@2x.png b/admin/plugins/iCheck/minimal/pink@2x.png deleted file mode 100644 index 7d7b385..0000000 Binary files a/admin/plugins/iCheck/minimal/pink@2x.png and /dev/null differ diff --git a/admin/plugins/iCheck/minimal/purple.css b/admin/plugins/iCheck/minimal/purple.css deleted file mode 100644 index 1c5dcbc..0000000 --- a/admin/plugins/iCheck/minimal/purple.css +++ /dev/null @@ -1,62 +0,0 @@ -/* iCheck plugin Minimal skin, purple ------------------------------------ */ -.icheckbox_minimal-purple, -.iradio_minimal-purple { - display: inline-block; - *display: inline; - vertical-align: middle; - margin: 0; - padding: 0; - width: 18px; - height: 18px; - background: url(purple.png) no-repeat; - border: none; - cursor: pointer; -} - -.icheckbox_minimal-purple { - background-position: 0 0; -} - .icheckbox_minimal-purple.hover { - background-position: -20px 0; - } - .icheckbox_minimal-purple.checked { - background-position: -40px 0; - } - .icheckbox_minimal-purple.disabled { - background-position: -60px 0; - cursor: default; - } - .icheckbox_minimal-purple.checked.disabled { - background-position: -80px 0; - } - -.iradio_minimal-purple { - background-position: -100px 0; -} - .iradio_minimal-purple.hover { - background-position: -120px 0; - } - .iradio_minimal-purple.checked { - background-position: -140px 0; - } - .iradio_minimal-purple.disabled { - background-position: -160px 0; - cursor: default; - } - .iradio_minimal-purple.checked.disabled { - background-position: -180px 0; - } - -/* Retina support */ -@media only screen and (-webkit-min-device-pixel-ratio: 1.5), - only screen and (-moz-min-device-pixel-ratio: 1.5), - only screen and (-o-min-device-pixel-ratio: 1.5), - only screen and (min-device-pixel-ratio: 1.5) { - .icheckbox_minimal-purple, - .iradio_minimal-purple { - background-image: url(purple@2x.png); - -webkit-background-size: 200px 20px; - background-size: 200px 20px; - } -} \ No newline at end of file diff --git a/admin/plugins/iCheck/minimal/purple.png b/admin/plugins/iCheck/minimal/purple.png deleted file mode 100644 index 48dec79..0000000 Binary files a/admin/plugins/iCheck/minimal/purple.png and /dev/null differ diff --git a/admin/plugins/iCheck/minimal/purple@2x.png b/admin/plugins/iCheck/minimal/purple@2x.png deleted file mode 100644 index 3bb7041..0000000 Binary files a/admin/plugins/iCheck/minimal/purple@2x.png and /dev/null differ diff --git a/admin/plugins/iCheck/minimal/red.css b/admin/plugins/iCheck/minimal/red.css deleted file mode 100644 index 9340c4f..0000000 --- a/admin/plugins/iCheck/minimal/red.css +++ /dev/null @@ -1,62 +0,0 @@ -/* iCheck plugin Minimal skin, red ------------------------------------ */ -.icheckbox_minimal-red, -.iradio_minimal-red { - display: inline-block; - *display: inline; - vertical-align: middle; - margin: 0; - padding: 0; - width: 18px; - height: 18px; - background: url(red.png) no-repeat; - border: none; - cursor: pointer; -} - -.icheckbox_minimal-red { - background-position: 0 0; -} - .icheckbox_minimal-red.hover { - background-position: -20px 0; - } - .icheckbox_minimal-red.checked { - background-position: -40px 0; - } - .icheckbox_minimal-red.disabled { - background-position: -60px 0; - cursor: default; - } - .icheckbox_minimal-red.checked.disabled { - background-position: -80px 0; - } - -.iradio_minimal-red { - background-position: -100px 0; -} - .iradio_minimal-red.hover { - background-position: -120px 0; - } - .iradio_minimal-red.checked { - background-position: -140px 0; - } - .iradio_minimal-red.disabled { - background-position: -160px 0; - cursor: default; - } - .iradio_minimal-red.checked.disabled { - background-position: -180px 0; - } - -/* Retina support */ -@media only screen and (-webkit-min-device-pixel-ratio: 1.5), - only screen and (-moz-min-device-pixel-ratio: 1.5), - only screen and (-o-min-device-pixel-ratio: 1.5), - only screen and (min-device-pixel-ratio: 1.5) { - .icheckbox_minimal-red, - .iradio_minimal-red { - background-image: url(red@2x.png); - -webkit-background-size: 200px 20px; - background-size: 200px 20px; - } -} \ No newline at end of file diff --git a/admin/plugins/iCheck/minimal/red.png b/admin/plugins/iCheck/minimal/red.png deleted file mode 100644 index 4443f80..0000000 Binary files a/admin/plugins/iCheck/minimal/red.png and /dev/null differ diff --git a/admin/plugins/iCheck/minimal/red@2x.png b/admin/plugins/iCheck/minimal/red@2x.png deleted file mode 100644 index 2eb55a6..0000000 Binary files a/admin/plugins/iCheck/minimal/red@2x.png and /dev/null differ diff --git a/admin/plugins/iCheck/minimal/yellow.css b/admin/plugins/iCheck/minimal/yellow.css deleted file mode 100644 index 2c38423..0000000 --- a/admin/plugins/iCheck/minimal/yellow.css +++ /dev/null @@ -1,62 +0,0 @@ -/* iCheck plugin Minimal skin, yellow ------------------------------------ */ -.icheckbox_minimal-yellow, -.iradio_minimal-yellow { - display: inline-block; - *display: inline; - vertical-align: middle; - margin: 0; - padding: 0; - width: 18px; - height: 18px; - background: url(yellow.png) no-repeat; - border: none; - cursor: pointer; -} - -.icheckbox_minimal-yellow { - background-position: 0 0; -} - .icheckbox_minimal-yellow.hover { - background-position: -20px 0; - } - .icheckbox_minimal-yellow.checked { - background-position: -40px 0; - } - .icheckbox_minimal-yellow.disabled { - background-position: -60px 0; - cursor: default; - } - .icheckbox_minimal-yellow.checked.disabled { - background-position: -80px 0; - } - -.iradio_minimal-yellow { - background-position: -100px 0; -} - .iradio_minimal-yellow.hover { - background-position: -120px 0; - } - .iradio_minimal-yellow.checked { - background-position: -140px 0; - } - .iradio_minimal-yellow.disabled { - background-position: -160px 0; - cursor: default; - } - .iradio_minimal-yellow.checked.disabled { - background-position: -180px 0; - } - -/* Retina support */ -@media only screen and (-webkit-min-device-pixel-ratio: 1.5), - only screen and (-moz-min-device-pixel-ratio: 1.5), - only screen and (-o-min-device-pixel-ratio: 1.5), - only screen and (min-device-pixel-ratio: 1.5) { - .icheckbox_minimal-yellow, - .iradio_minimal-yellow { - background-image: url(yellow@2x.png); - -webkit-background-size: 200px 20px; - background-size: 200px 20px; - } -} \ No newline at end of file diff --git a/admin/plugins/iCheck/minimal/yellow.png b/admin/plugins/iCheck/minimal/yellow.png deleted file mode 100644 index 0999b7e..0000000 Binary files a/admin/plugins/iCheck/minimal/yellow.png and /dev/null differ diff --git a/admin/plugins/iCheck/minimal/yellow@2x.png b/admin/plugins/iCheck/minimal/yellow@2x.png deleted file mode 100644 index c16f2b7..0000000 Binary files a/admin/plugins/iCheck/minimal/yellow@2x.png and /dev/null differ diff --git a/admin/plugins/iCheck/polaris/polaris.css b/admin/plugins/iCheck/polaris/polaris.css deleted file mode 100644 index 1cb4bcc..0000000 --- a/admin/plugins/iCheck/polaris/polaris.css +++ /dev/null @@ -1,62 +0,0 @@ -/* iCheck plugin Polaris skin ------------------------------------ */ -.icheckbox_polaris, -.iradio_polaris { - display: inline-block; - *display: inline; - vertical-align: middle; - margin: 0; - padding: 0; - width: 29px; - height: 29px; - background: url(polaris.png) no-repeat; - border: none; - cursor: pointer; -} - -.icheckbox_polaris { - background-position: 0 0; -} - .icheckbox_polaris.hover { - background-position: -31px 0; - } - .icheckbox_polaris.checked { - background-position: -62px 0; - } - .icheckbox_polaris.disabled { - background-position: -93px 0; - cursor: default; - } - .icheckbox_polaris.checked.disabled { - background-position: -124px 0; - } - -.iradio_polaris { - background-position: -155px 0; -} - .iradio_polaris.hover { - background-position: -186px 0; - } - .iradio_polaris.checked { - background-position: -217px 0; - } - .iradio_polaris.disabled { - background-position: -248px 0; - cursor: default; - } - .iradio_polaris.checked.disabled { - background-position: -279px 0; - } - -/* Retina support */ -@media only screen and (-webkit-min-device-pixel-ratio: 1.5), - only screen and (-moz-min-device-pixel-ratio: 1.5), - only screen and (-o-min-device-pixel-ratio: 3/2), - only screen and (min-device-pixel-ratio: 1.5) { - .icheckbox_polaris, - .iradio_polaris { - background-image: url(polaris@2x.png); - -webkit-background-size: 310px 31px; - background-size: 310px 31px; - } -} \ No newline at end of file diff --git a/admin/plugins/iCheck/polaris/polaris.png b/admin/plugins/iCheck/polaris/polaris.png deleted file mode 100644 index 60c14e6..0000000 Binary files a/admin/plugins/iCheck/polaris/polaris.png and /dev/null differ diff --git a/admin/plugins/iCheck/polaris/polaris@2x.png b/admin/plugins/iCheck/polaris/polaris@2x.png deleted file mode 100644 index c75b826..0000000 Binary files a/admin/plugins/iCheck/polaris/polaris@2x.png and /dev/null differ diff --git a/admin/plugins/iCheck/square/_all.css b/admin/plugins/iCheck/square/_all.css deleted file mode 100644 index a2ff036..0000000 --- a/admin/plugins/iCheck/square/_all.css +++ /dev/null @@ -1,620 +0,0 @@ -/* iCheck plugin Square skin ------------------------------------ */ -.icheckbox_square, -.iradio_square { - display: inline-block; - *display: inline; - vertical-align: middle; - margin: 0; - padding: 0; - width: 22px; - height: 22px; - background: url(square.png) no-repeat; - border: none; - cursor: pointer; -} - -.icheckbox_square { - background-position: 0 0; -} - .icheckbox_square.hover { - background-position: -24px 0; - } - .icheckbox_square.checked { - background-position: -48px 0; - } - .icheckbox_square.disabled { - background-position: -72px 0; - cursor: default; - } - .icheckbox_square.checked.disabled { - background-position: -96px 0; - } - -.iradio_square { - background-position: -120px 0; -} - .iradio_square.hover { - background-position: -144px 0; - } - .iradio_square.checked { - background-position: -168px 0; - } - .iradio_square.disabled { - background-position: -192px 0; - cursor: default; - } - .iradio_square.checked.disabled { - background-position: -216px 0; - } - -/* Retina support */ -@media only screen and (-webkit-min-device-pixel-ratio: 1.5), - only screen and (-moz-min-device-pixel-ratio: 1.5), - only screen and (-o-min-device-pixel-ratio: 3/2), - only screen and (min-device-pixel-ratio: 1.5) { - .icheckbox_square, - .iradio_square { - background-image: url(square@2x.png); - -webkit-background-size: 240px 24px; - background-size: 240px 24px; - } -} - -/* red */ -.icheckbox_square-red, -.iradio_square-red { - display: inline-block; - *display: inline; - vertical-align: middle; - margin: 0; - padding: 0; - width: 22px; - height: 22px; - background: url(red.png) no-repeat; - border: none; - cursor: pointer; -} - -.icheckbox_square-red { - background-position: 0 0; -} - .icheckbox_square-red.hover { - background-position: -24px 0; - } - .icheckbox_square-red.checked { - background-position: -48px 0; - } - .icheckbox_square-red.disabled { - background-position: -72px 0; - cursor: default; - } - .icheckbox_square-red.checked.disabled { - background-position: -96px 0; - } - -.iradio_square-red { - background-position: -120px 0; -} - .iradio_square-red.hover { - background-position: -144px 0; - } - .iradio_square-red.checked { - background-position: -168px 0; - } - .iradio_square-red.disabled { - background-position: -192px 0; - cursor: default; - } - .iradio_square-red.checked.disabled { - background-position: -216px 0; - } - -/* Retina support */ -@media only screen and (-webkit-min-device-pixel-ratio: 1.5), - only screen and (-moz-min-device-pixel-ratio: 1.5), - only screen and (-o-min-device-pixel-ratio: 3/2), - only screen and (min-device-pixel-ratio: 1.5) { - .icheckbox_square-red, - .iradio_square-red { - background-image: url(red@2x.png); - -webkit-background-size: 240px 24px; - background-size: 240px 24px; - } -} - -/* green */ -.icheckbox_square-green, -.iradio_square-green { - display: inline-block; - *display: inline; - vertical-align: middle; - margin: 0; - padding: 0; - width: 22px; - height: 22px; - background: url(green.png) no-repeat; - border: none; - cursor: pointer; -} - -.icheckbox_square-green { - background-position: 0 0; -} - .icheckbox_square-green.hover { - background-position: -24px 0; - } - .icheckbox_square-green.checked { - background-position: -48px 0; - } - .icheckbox_square-green.disabled { - background-position: -72px 0; - cursor: default; - } - .icheckbox_square-green.checked.disabled { - background-position: -96px 0; - } - -.iradio_square-green { - background-position: -120px 0; -} - .iradio_square-green.hover { - background-position: -144px 0; - } - .iradio_square-green.checked { - background-position: -168px 0; - } - .iradio_square-green.disabled { - background-position: -192px 0; - cursor: default; - } - .iradio_square-green.checked.disabled { - background-position: -216px 0; - } - -/* Retina support */ -@media only screen and (-webkit-min-device-pixel-ratio: 1.5), - only screen and (-moz-min-device-pixel-ratio: 1.5), - only screen and (-o-min-device-pixel-ratio: 3/2), - only screen and (min-device-pixel-ratio: 1.5) { - .icheckbox_square-green, - .iradio_square-green { - background-image: url(green@2x.png); - -webkit-background-size: 240px 24px; - background-size: 240px 24px; - } -} - -/* blue */ -.icheckbox_square-blue, -.iradio_square-blue { - display: inline-block; - *display: inline; - vertical-align: middle; - margin: 0; - padding: 0; - width: 22px; - height: 22px; - background: url(blue.png) no-repeat; - border: none; - cursor: pointer; -} - -.icheckbox_square-blue { - background-position: 0 0; -} - .icheckbox_square-blue.hover { - background-position: -24px 0; - } - .icheckbox_square-blue.checked { - background-position: -48px 0; - } - .icheckbox_square-blue.disabled { - background-position: -72px 0; - cursor: default; - } - .icheckbox_square-blue.checked.disabled { - background-position: -96px 0; - } - -.iradio_square-blue { - background-position: -120px 0; -} - .iradio_square-blue.hover { - background-position: -144px 0; - } - .iradio_square-blue.checked { - background-position: -168px 0; - } - .iradio_square-blue.disabled { - background-position: -192px 0; - cursor: default; - } - .iradio_square-blue.checked.disabled { - background-position: -216px 0; - } - -/* Retina support */ -@media only screen and (-webkit-min-device-pixel-ratio: 1.5), - only screen and (-moz-min-device-pixel-ratio: 1.5), - only screen and (-o-min-device-pixel-ratio: 3/2), - only screen and (min-device-pixel-ratio: 1.5) { - .icheckbox_square-blue, - .iradio_square-blue { - background-image: url(blue@2x.png); - -webkit-background-size: 240px 24px; - background-size: 240px 24px; - } -} - -/* aero */ -.icheckbox_square-aero, -.iradio_square-aero { - display: inline-block; - *display: inline; - vertical-align: middle; - margin: 0; - padding: 0; - width: 22px; - height: 22px; - background: url(aero.png) no-repeat; - border: none; - cursor: pointer; -} - -.icheckbox_square-aero { - background-position: 0 0; -} - .icheckbox_square-aero.hover { - background-position: -24px 0; - } - .icheckbox_square-aero.checked { - background-position: -48px 0; - } - .icheckbox_square-aero.disabled { - background-position: -72px 0; - cursor: default; - } - .icheckbox_square-aero.checked.disabled { - background-position: -96px 0; - } - -.iradio_square-aero { - background-position: -120px 0; -} - .iradio_square-aero.hover { - background-position: -144px 0; - } - .iradio_square-aero.checked { - background-position: -168px 0; - } - .iradio_square-aero.disabled { - background-position: -192px 0; - cursor: default; - } - .iradio_square-aero.checked.disabled { - background-position: -216px 0; - } - -/* Retina support */ -@media only screen and (-webkit-min-device-pixel-ratio: 1.5), - only screen and (-moz-min-device-pixel-ratio: 1.5), - only screen and (-o-min-device-pixel-ratio: 3/2), - only screen and (min-device-pixel-ratio: 1.5) { - .icheckbox_square-aero, - .iradio_square-aero { - background-image: url(aero@2x.png); - -webkit-background-size: 240px 24px; - background-size: 240px 24px; - } -} - -/* grey */ -.icheckbox_square-grey, -.iradio_square-grey { - display: inline-block; - *display: inline; - vertical-align: middle; - margin: 0; - padding: 0; - width: 22px; - height: 22px; - background: url(grey.png) no-repeat; - border: none; - cursor: pointer; -} - -.icheckbox_square-grey { - background-position: 0 0; -} - .icheckbox_square-grey.hover { - background-position: -24px 0; - } - .icheckbox_square-grey.checked { - background-position: -48px 0; - } - .icheckbox_square-grey.disabled { - background-position: -72px 0; - cursor: default; - } - .icheckbox_square-grey.checked.disabled { - background-position: -96px 0; - } - -.iradio_square-grey { - background-position: -120px 0; -} - .iradio_square-grey.hover { - background-position: -144px 0; - } - .iradio_square-grey.checked { - background-position: -168px 0; - } - .iradio_square-grey.disabled { - background-position: -192px 0; - cursor: default; - } - .iradio_square-grey.checked.disabled { - background-position: -216px 0; - } - -/* Retina support */ -@media only screen and (-webkit-min-device-pixel-ratio: 1.5), - only screen and (-moz-min-device-pixel-ratio: 1.5), - only screen and (-o-min-device-pixel-ratio: 3/2), - only screen and (min-device-pixel-ratio: 1.5) { - .icheckbox_square-grey, - .iradio_square-grey { - background-image: url(grey@2x.png); - -webkit-background-size: 240px 24px; - background-size: 240px 24px; - } -} - -/* orange */ -.icheckbox_square-orange, -.iradio_square-orange { - display: inline-block; - *display: inline; - vertical-align: middle; - margin: 0; - padding: 0; - width: 22px; - height: 22px; - background: url(orange.png) no-repeat; - border: none; - cursor: pointer; -} - -.icheckbox_square-orange { - background-position: 0 0; -} - .icheckbox_square-orange.hover { - background-position: -24px 0; - } - .icheckbox_square-orange.checked { - background-position: -48px 0; - } - .icheckbox_square-orange.disabled { - background-position: -72px 0; - cursor: default; - } - .icheckbox_square-orange.checked.disabled { - background-position: -96px 0; - } - -.iradio_square-orange { - background-position: -120px 0; -} - .iradio_square-orange.hover { - background-position: -144px 0; - } - .iradio_square-orange.checked { - background-position: -168px 0; - } - .iradio_square-orange.disabled { - background-position: -192px 0; - cursor: default; - } - .iradio_square-orange.checked.disabled { - background-position: -216px 0; - } - -/* Retina support */ -@media only screen and (-webkit-min-device-pixel-ratio: 1.5), - only screen and (-moz-min-device-pixel-ratio: 1.5), - only screen and (-o-min-device-pixel-ratio: 3/2), - only screen and (min-device-pixel-ratio: 1.5) { - .icheckbox_square-orange, - .iradio_square-orange { - background-image: url(orange@2x.png); - -webkit-background-size: 240px 24px; - background-size: 240px 24px; - } -} - -/* yellow */ -.icheckbox_square-yellow, -.iradio_square-yellow { - display: inline-block; - *display: inline; - vertical-align: middle; - margin: 0; - padding: 0; - width: 22px; - height: 22px; - background: url(yellow.png) no-repeat; - border: none; - cursor: pointer; -} - -.icheckbox_square-yellow { - background-position: 0 0; -} - .icheckbox_square-yellow.hover { - background-position: -24px 0; - } - .icheckbox_square-yellow.checked { - background-position: -48px 0; - } - .icheckbox_square-yellow.disabled { - background-position: -72px 0; - cursor: default; - } - .icheckbox_square-yellow.checked.disabled { - background-position: -96px 0; - } - -.iradio_square-yellow { - background-position: -120px 0; -} - .iradio_square-yellow.hover { - background-position: -144px 0; - } - .iradio_square-yellow.checked { - background-position: -168px 0; - } - .iradio_square-yellow.disabled { - background-position: -192px 0; - cursor: default; - } - .iradio_square-yellow.checked.disabled { - background-position: -216px 0; - } - -/* Retina support */ -@media only screen and (-webkit-min-device-pixel-ratio: 1.5), - only screen and (-moz-min-device-pixel-ratio: 1.5), - only screen and (-o-min-device-pixel-ratio: 3/2), - only screen and (min-device-pixel-ratio: 1.5) { - .icheckbox_square-yellow, - .iradio_square-yellow { - background-image: url(yellow@2x.png); - -webkit-background-size: 240px 24px; - background-size: 240px 24px; - } -} - -/* pink */ -.icheckbox_square-pink, -.iradio_square-pink { - display: inline-block; - *display: inline; - vertical-align: middle; - margin: 0; - padding: 0; - width: 22px; - height: 22px; - background: url(pink.png) no-repeat; - border: none; - cursor: pointer; -} - -.icheckbox_square-pink { - background-position: 0 0; -} - .icheckbox_square-pink.hover { - background-position: -24px 0; - } - .icheckbox_square-pink.checked { - background-position: -48px 0; - } - .icheckbox_square-pink.disabled { - background-position: -72px 0; - cursor: default; - } - .icheckbox_square-pink.checked.disabled { - background-position: -96px 0; - } - -.iradio_square-pink { - background-position: -120px 0; -} - .iradio_square-pink.hover { - background-position: -144px 0; - } - .iradio_square-pink.checked { - background-position: -168px 0; - } - .iradio_square-pink.disabled { - background-position: -192px 0; - cursor: default; - } - .iradio_square-pink.checked.disabled { - background-position: -216px 0; - } - -/* Retina support */ -@media only screen and (-webkit-min-device-pixel-ratio: 1.5), - only screen and (-moz-min-device-pixel-ratio: 1.5), - only screen and (-o-min-device-pixel-ratio: 3/2), - only screen and (min-device-pixel-ratio: 1.5) { - .icheckbox_square-pink, - .iradio_square-pink { - background-image: url(pink@2x.png); - -webkit-background-size: 240px 24px; - background-size: 240px 24px; - } -} - -/* purple */ -.icheckbox_square-purple, -.iradio_square-purple { - display: inline-block; - *display: inline; - vertical-align: middle; - margin: 0; - padding: 0; - width: 22px; - height: 22px; - background: url(purple.png) no-repeat; - border: none; - cursor: pointer; -} - -.icheckbox_square-purple { - background-position: 0 0; -} - .icheckbox_square-purple.hover { - background-position: -24px 0; - } - .icheckbox_square-purple.checked { - background-position: -48px 0; - } - .icheckbox_square-purple.disabled { - background-position: -72px 0; - cursor: default; - } - .icheckbox_square-purple.checked.disabled { - background-position: -96px 0; - } - -.iradio_square-purple { - background-position: -120px 0; -} - .iradio_square-purple.hover { - background-position: -144px 0; - } - .iradio_square-purple.checked { - background-position: -168px 0; - } - .iradio_square-purple.disabled { - background-position: -192px 0; - cursor: default; - } - .iradio_square-purple.checked.disabled { - background-position: -216px 0; - } - -/* Retina support */ -@media only screen and (-webkit-min-device-pixel-ratio: 1.5), - only screen and (-moz-min-device-pixel-ratio: 1.5), - only screen and (-o-min-device-pixel-ratio: 3/2), - only screen and (min-device-pixel-ratio: 1.5) { - .icheckbox_square-purple, - .iradio_square-purple { - background-image: url(purple@2x.png); - -webkit-background-size: 240px 24px; - background-size: 240px 24px; - } -} \ No newline at end of file diff --git a/admin/plugins/iCheck/square/aero.css b/admin/plugins/iCheck/square/aero.css deleted file mode 100644 index 51fca0a..0000000 --- a/admin/plugins/iCheck/square/aero.css +++ /dev/null @@ -1,62 +0,0 @@ -/* iCheck plugin Square skin, aero ------------------------------------ */ -.icheckbox_square-aero, -.iradio_square-aero { - display: inline-block; - *display: inline; - vertical-align: middle; - margin: 0; - padding: 0; - width: 22px; - height: 22px; - background: url(aero.png) no-repeat; - border: none; - cursor: pointer; -} - -.icheckbox_square-aero { - background-position: 0 0; -} - .icheckbox_square-aero.hover { - background-position: -24px 0; - } - .icheckbox_square-aero.checked { - background-position: -48px 0; - } - .icheckbox_square-aero.disabled { - background-position: -72px 0; - cursor: default; - } - .icheckbox_square-aero.checked.disabled { - background-position: -96px 0; - } - -.iradio_square-aero { - background-position: -120px 0; -} - .iradio_square-aero.hover { - background-position: -144px 0; - } - .iradio_square-aero.checked { - background-position: -168px 0; - } - .iradio_square-aero.disabled { - background-position: -192px 0; - cursor: default; - } - .iradio_square-aero.checked.disabled { - background-position: -216px 0; - } - -/* Retina support */ -@media only screen and (-webkit-min-device-pixel-ratio: 1.5), - only screen and (-moz-min-device-pixel-ratio: 1.5), - only screen and (-o-min-device-pixel-ratio: 3/2), - only screen and (min-device-pixel-ratio: 1.5) { - .icheckbox_square-aero, - .iradio_square-aero { - background-image: url(aero@2x.png); - -webkit-background-size: 240px 24px; - background-size: 240px 24px; - } -} \ No newline at end of file diff --git a/admin/plugins/iCheck/square/aero.png b/admin/plugins/iCheck/square/aero.png deleted file mode 100644 index 1a332e6..0000000 Binary files a/admin/plugins/iCheck/square/aero.png and /dev/null differ diff --git a/admin/plugins/iCheck/square/aero@2x.png b/admin/plugins/iCheck/square/aero@2x.png deleted file mode 100644 index 07c5a02..0000000 Binary files a/admin/plugins/iCheck/square/aero@2x.png and /dev/null differ diff --git a/admin/plugins/iCheck/square/blue.css b/admin/plugins/iCheck/square/blue.css deleted file mode 100644 index 95340fe..0000000 --- a/admin/plugins/iCheck/square/blue.css +++ /dev/null @@ -1,62 +0,0 @@ -/* iCheck plugin Square skin, blue ------------------------------------ */ -.icheckbox_square-blue, -.iradio_square-blue { - display: inline-block; - *display: inline; - vertical-align: middle; - margin: 0; - padding: 0; - width: 22px; - height: 22px; - background: url(blue.png) no-repeat; - border: none; - cursor: pointer; -} - -.icheckbox_square-blue { - background-position: 0 0; -} - .icheckbox_square-blue.hover { - background-position: -24px 0; - } - .icheckbox_square-blue.checked { - background-position: -48px 0; - } - .icheckbox_square-blue.disabled { - background-position: -72px 0; - cursor: default; - } - .icheckbox_square-blue.checked.disabled { - background-position: -96px 0; - } - -.iradio_square-blue { - background-position: -120px 0; -} - .iradio_square-blue.hover { - background-position: -144px 0; - } - .iradio_square-blue.checked { - background-position: -168px 0; - } - .iradio_square-blue.disabled { - background-position: -192px 0; - cursor: default; - } - .iradio_square-blue.checked.disabled { - background-position: -216px 0; - } - -/* Retina support */ -@media only screen and (-webkit-min-device-pixel-ratio: 1.5), - only screen and (-moz-min-device-pixel-ratio: 1.5), - only screen and (-o-min-device-pixel-ratio: 3/2), - only screen and (min-device-pixel-ratio: 1.5) { - .icheckbox_square-blue, - .iradio_square-blue { - background-image: url(blue@2x.png); - -webkit-background-size: 240px 24px; - background-size: 240px 24px; - } -} \ No newline at end of file diff --git a/admin/plugins/iCheck/square/blue.png b/admin/plugins/iCheck/square/blue.png deleted file mode 100644 index a3e040f..0000000 Binary files a/admin/plugins/iCheck/square/blue.png and /dev/null differ diff --git a/admin/plugins/iCheck/square/blue@2x.png b/admin/plugins/iCheck/square/blue@2x.png deleted file mode 100644 index 8fdea12..0000000 Binary files a/admin/plugins/iCheck/square/blue@2x.png and /dev/null differ diff --git a/admin/plugins/iCheck/square/green.css b/admin/plugins/iCheck/square/green.css deleted file mode 100644 index eb43f2a..0000000 --- a/admin/plugins/iCheck/square/green.css +++ /dev/null @@ -1,62 +0,0 @@ -/* iCheck plugin Square skin, green ------------------------------------ */ -.icheckbox_square-green, -.iradio_square-green { - display: inline-block; - *display: inline; - vertical-align: middle; - margin: 0; - padding: 0; - width: 22px; - height: 22px; - background: url(green.png) no-repeat; - border: none; - cursor: pointer; -} - -.icheckbox_square-green { - background-position: 0 0; -} - .icheckbox_square-green.hover { - background-position: -24px 0; - } - .icheckbox_square-green.checked { - background-position: -48px 0; - } - .icheckbox_square-green.disabled { - background-position: -72px 0; - cursor: default; - } - .icheckbox_square-green.checked.disabled { - background-position: -96px 0; - } - -.iradio_square-green { - background-position: -120px 0; -} - .iradio_square-green.hover { - background-position: -144px 0; - } - .iradio_square-green.checked { - background-position: -168px 0; - } - .iradio_square-green.disabled { - background-position: -192px 0; - cursor: default; - } - .iradio_square-green.checked.disabled { - background-position: -216px 0; - } - -/* Retina support */ -@media only screen and (-webkit-min-device-pixel-ratio: 1.5), - only screen and (-moz-min-device-pixel-ratio: 1.5), - only screen and (-o-min-device-pixel-ratio: 3/2), - only screen and (min-device-pixel-ratio: 1.5) { - .icheckbox_square-green, - .iradio_square-green { - background-image: url(green@2x.png); - -webkit-background-size: 240px 24px; - background-size: 240px 24px; - } -} \ No newline at end of file diff --git a/admin/plugins/iCheck/square/green.png b/admin/plugins/iCheck/square/green.png deleted file mode 100644 index 465824e..0000000 Binary files a/admin/plugins/iCheck/square/green.png and /dev/null differ diff --git a/admin/plugins/iCheck/square/green@2x.png b/admin/plugins/iCheck/square/green@2x.png deleted file mode 100644 index 784e874..0000000 Binary files a/admin/plugins/iCheck/square/green@2x.png and /dev/null differ diff --git a/admin/plugins/iCheck/square/grey.css b/admin/plugins/iCheck/square/grey.css deleted file mode 100644 index ecc57ff..0000000 --- a/admin/plugins/iCheck/square/grey.css +++ /dev/null @@ -1,62 +0,0 @@ -/* iCheck plugin Square skin, grey ------------------------------------ */ -.icheckbox_square-grey, -.iradio_square-grey { - display: inline-block; - *display: inline; - vertical-align: middle; - margin: 0; - padding: 0; - width: 22px; - height: 22px; - background: url(grey.png) no-repeat; - border: none; - cursor: pointer; -} - -.icheckbox_square-grey { - background-position: 0 0; -} - .icheckbox_square-grey.hover { - background-position: -24px 0; - } - .icheckbox_square-grey.checked { - background-position: -48px 0; - } - .icheckbox_square-grey.disabled { - background-position: -72px 0; - cursor: default; - } - .icheckbox_square-grey.checked.disabled { - background-position: -96px 0; - } - -.iradio_square-grey { - background-position: -120px 0; -} - .iradio_square-grey.hover { - background-position: -144px 0; - } - .iradio_square-grey.checked { - background-position: -168px 0; - } - .iradio_square-grey.disabled { - background-position: -192px 0; - cursor: default; - } - .iradio_square-grey.checked.disabled { - background-position: -216px 0; - } - -/* Retina support */ -@media only screen and (-webkit-min-device-pixel-ratio: 1.5), - only screen and (-moz-min-device-pixel-ratio: 1.5), - only screen and (-o-min-device-pixel-ratio: 3/2), - only screen and (min-device-pixel-ratio: 1.5) { - .icheckbox_square-grey, - .iradio_square-grey { - background-image: url(grey@2x.png); - -webkit-background-size: 240px 24px; - background-size: 240px 24px; - } -} \ No newline at end of file diff --git a/admin/plugins/iCheck/square/grey.png b/admin/plugins/iCheck/square/grey.png deleted file mode 100644 index f693758..0000000 Binary files a/admin/plugins/iCheck/square/grey.png and /dev/null differ diff --git a/admin/plugins/iCheck/square/grey@2x.png b/admin/plugins/iCheck/square/grey@2x.png deleted file mode 100644 index 5d6341c..0000000 Binary files a/admin/plugins/iCheck/square/grey@2x.png and /dev/null differ diff --git a/admin/plugins/iCheck/square/orange.css b/admin/plugins/iCheck/square/orange.css deleted file mode 100644 index d0c7a2c..0000000 --- a/admin/plugins/iCheck/square/orange.css +++ /dev/null @@ -1,62 +0,0 @@ -/* iCheck plugin Square skin, orange ------------------------------------ */ -.icheckbox_square-orange, -.iradio_square-orange { - display: inline-block; - *display: inline; - vertical-align: middle; - margin: 0; - padding: 0; - width: 22px; - height: 22px; - background: url(orange.png) no-repeat; - border: none; - cursor: pointer; -} - -.icheckbox_square-orange { - background-position: 0 0; -} - .icheckbox_square-orange.hover { - background-position: -24px 0; - } - .icheckbox_square-orange.checked { - background-position: -48px 0; - } - .icheckbox_square-orange.disabled { - background-position: -72px 0; - cursor: default; - } - .icheckbox_square-orange.checked.disabled { - background-position: -96px 0; - } - -.iradio_square-orange { - background-position: -120px 0; -} - .iradio_square-orange.hover { - background-position: -144px 0; - } - .iradio_square-orange.checked { - background-position: -168px 0; - } - .iradio_square-orange.disabled { - background-position: -192px 0; - cursor: default; - } - .iradio_square-orange.checked.disabled { - background-position: -216px 0; - } - -/* Retina support */ -@media only screen and (-webkit-min-device-pixel-ratio: 1.5), - only screen and (-moz-min-device-pixel-ratio: 1.5), - only screen and (-o-min-device-pixel-ratio: 3/2), - only screen and (min-device-pixel-ratio: 1.5) { - .icheckbox_square-orange, - .iradio_square-orange { - background-image: url(orange@2x.png); - -webkit-background-size: 240px 24px; - background-size: 240px 24px; - } -} \ No newline at end of file diff --git a/admin/plugins/iCheck/square/orange.png b/admin/plugins/iCheck/square/orange.png deleted file mode 100644 index 8460850..0000000 Binary files a/admin/plugins/iCheck/square/orange.png and /dev/null differ diff --git a/admin/plugins/iCheck/square/orange@2x.png b/admin/plugins/iCheck/square/orange@2x.png deleted file mode 100644 index b1f2319..0000000 Binary files a/admin/plugins/iCheck/square/orange@2x.png and /dev/null differ diff --git a/admin/plugins/iCheck/square/pink.css b/admin/plugins/iCheck/square/pink.css deleted file mode 100644 index 6b706f6..0000000 --- a/admin/plugins/iCheck/square/pink.css +++ /dev/null @@ -1,62 +0,0 @@ -/* iCheck plugin Square skin, pink ------------------------------------ */ -.icheckbox_square-pink, -.iradio_square-pink { - display: inline-block; - *display: inline; - vertical-align: middle; - margin: 0; - padding: 0; - width: 22px; - height: 22px; - background: url(pink.png) no-repeat; - border: none; - cursor: pointer; -} - -.icheckbox_square-pink { - background-position: 0 0; -} - .icheckbox_square-pink.hover { - background-position: -24px 0; - } - .icheckbox_square-pink.checked { - background-position: -48px 0; - } - .icheckbox_square-pink.disabled { - background-position: -72px 0; - cursor: default; - } - .icheckbox_square-pink.checked.disabled { - background-position: -96px 0; - } - -.iradio_square-pink { - background-position: -120px 0; -} - .iradio_square-pink.hover { - background-position: -144px 0; - } - .iradio_square-pink.checked { - background-position: -168px 0; - } - .iradio_square-pink.disabled { - background-position: -192px 0; - cursor: default; - } - .iradio_square-pink.checked.disabled { - background-position: -216px 0; - } - -/* Retina support */ -@media only screen and (-webkit-min-device-pixel-ratio: 1.5), - only screen and (-moz-min-device-pixel-ratio: 1.5), - only screen and (-o-min-device-pixel-ratio: 3/2), - only screen and (min-device-pixel-ratio: 1.5) { - .icheckbox_square-pink, - .iradio_square-pink { - background-image: url(pink@2x.png); - -webkit-background-size: 240px 24px; - background-size: 240px 24px; - } -} \ No newline at end of file diff --git a/admin/plugins/iCheck/square/pink.png b/admin/plugins/iCheck/square/pink.png deleted file mode 100644 index 9c8b4e2..0000000 Binary files a/admin/plugins/iCheck/square/pink.png and /dev/null differ diff --git a/admin/plugins/iCheck/square/pink@2x.png b/admin/plugins/iCheck/square/pink@2x.png deleted file mode 100644 index b1f3a6e..0000000 Binary files a/admin/plugins/iCheck/square/pink@2x.png and /dev/null differ diff --git a/admin/plugins/iCheck/square/purple.css b/admin/plugins/iCheck/square/purple.css deleted file mode 100644 index 43051d3..0000000 --- a/admin/plugins/iCheck/square/purple.css +++ /dev/null @@ -1,62 +0,0 @@ -/* iCheck plugin Square skin, purple ------------------------------------ */ -.icheckbox_square-purple, -.iradio_square-purple { - display: inline-block; - *display: inline; - vertical-align: middle; - margin: 0; - padding: 0; - width: 22px; - height: 22px; - background: url(purple.png) no-repeat; - border: none; - cursor: pointer; -} - -.icheckbox_square-purple { - background-position: 0 0; -} - .icheckbox_square-purple.hover { - background-position: -24px 0; - } - .icheckbox_square-purple.checked { - background-position: -48px 0; - } - .icheckbox_square-purple.disabled { - background-position: -72px 0; - cursor: default; - } - .icheckbox_square-purple.checked.disabled { - background-position: -96px 0; - } - -.iradio_square-purple { - background-position: -120px 0; -} - .iradio_square-purple.hover { - background-position: -144px 0; - } - .iradio_square-purple.checked { - background-position: -168px 0; - } - .iradio_square-purple.disabled { - background-position: -192px 0; - cursor: default; - } - .iradio_square-purple.checked.disabled { - background-position: -216px 0; - } - -/* Retina support */ -@media only screen and (-webkit-min-device-pixel-ratio: 1.5), - only screen and (-moz-min-device-pixel-ratio: 1.5), - only screen and (-o-min-device-pixel-ratio: 3/2), - only screen and (min-device-pixel-ratio: 1.5) { - .icheckbox_square-purple, - .iradio_square-purple { - background-image: url(purple@2x.png); - -webkit-background-size: 240px 24px; - background-size: 240px 24px; - } -} \ No newline at end of file diff --git a/admin/plugins/iCheck/square/purple.png b/admin/plugins/iCheck/square/purple.png deleted file mode 100644 index 6bfc16a..0000000 Binary files a/admin/plugins/iCheck/square/purple.png and /dev/null differ diff --git a/admin/plugins/iCheck/square/purple@2x.png b/admin/plugins/iCheck/square/purple@2x.png deleted file mode 100644 index 6d3c8b1..0000000 Binary files a/admin/plugins/iCheck/square/purple@2x.png and /dev/null differ diff --git a/admin/plugins/iCheck/square/red.css b/admin/plugins/iCheck/square/red.css deleted file mode 100644 index 40013c4..0000000 --- a/admin/plugins/iCheck/square/red.css +++ /dev/null @@ -1,62 +0,0 @@ -/* iCheck plugin Square skin, red ------------------------------------ */ -.icheckbox_square-red, -.iradio_square-red { - display: inline-block; - *display: inline; - vertical-align: middle; - margin: 0; - padding: 0; - width: 22px; - height: 22px; - background: url(red.png) no-repeat; - border: none; - cursor: pointer; -} - -.icheckbox_square-red { - background-position: 0 0; -} - .icheckbox_square-red.hover { - background-position: -24px 0; - } - .icheckbox_square-red.checked { - background-position: -48px 0; - } - .icheckbox_square-red.disabled { - background-position: -72px 0; - cursor: default; - } - .icheckbox_square-red.checked.disabled { - background-position: -96px 0; - } - -.iradio_square-red { - background-position: -120px 0; -} - .iradio_square-red.hover { - background-position: -144px 0; - } - .iradio_square-red.checked { - background-position: -168px 0; - } - .iradio_square-red.disabled { - background-position: -192px 0; - cursor: default; - } - .iradio_square-red.checked.disabled { - background-position: -216px 0; - } - -/* Retina support */ -@media only screen and (-webkit-min-device-pixel-ratio: 1.5), - only screen and (-moz-min-device-pixel-ratio: 1.5), - only screen and (-o-min-device-pixel-ratio: 3/2), - only screen and (min-device-pixel-ratio: 1.5) { - .icheckbox_square-red, - .iradio_square-red { - background-image: url(red@2x.png); - -webkit-background-size: 240px 24px; - background-size: 240px 24px; - } -} \ No newline at end of file diff --git a/admin/plugins/iCheck/square/red.png b/admin/plugins/iCheck/square/red.png deleted file mode 100644 index 749675a..0000000 Binary files a/admin/plugins/iCheck/square/red.png and /dev/null differ diff --git a/admin/plugins/iCheck/square/red@2x.png b/admin/plugins/iCheck/square/red@2x.png deleted file mode 100644 index c05700a..0000000 Binary files a/admin/plugins/iCheck/square/red@2x.png and /dev/null differ diff --git a/admin/plugins/iCheck/square/square.css b/admin/plugins/iCheck/square/square.css deleted file mode 100644 index b604fa8..0000000 --- a/admin/plugins/iCheck/square/square.css +++ /dev/null @@ -1,62 +0,0 @@ -/* iCheck plugin Square skin, black ------------------------------------ */ -.icheckbox_square, -.iradio_square { - display: inline-block; - *display: inline; - vertical-align: middle; - margin: 0; - padding: 0; - width: 22px; - height: 22px; - background: url(square.png) no-repeat; - border: none; - cursor: pointer; -} - -.icheckbox_square { - background-position: 0 0; -} - .icheckbox_square.hover { - background-position: -24px 0; - } - .icheckbox_square.checked { - background-position: -48px 0; - } - .icheckbox_square.disabled { - background-position: -72px 0; - cursor: default; - } - .icheckbox_square.checked.disabled { - background-position: -96px 0; - } - -.iradio_square { - background-position: -120px 0; -} - .iradio_square.hover { - background-position: -144px 0; - } - .iradio_square.checked { - background-position: -168px 0; - } - .iradio_square.disabled { - background-position: -192px 0; - cursor: default; - } - .iradio_square.checked.disabled { - background-position: -216px 0; - } - -/* Retina support */ -@media only screen and (-webkit-min-device-pixel-ratio: 1.5), - only screen and (-moz-min-device-pixel-ratio: 1.5), - only screen and (-o-min-device-pixel-ratio: 3/2), - only screen and (min-device-pixel-ratio: 1.5) { - .icheckbox_square, - .iradio_square { - background-image: url(square@2x.png); - -webkit-background-size: 240px 24px; - background-size: 240px 24px; - } -} \ No newline at end of file diff --git a/admin/plugins/iCheck/square/square.png b/admin/plugins/iCheck/square/square.png deleted file mode 100644 index 2a3c881..0000000 Binary files a/admin/plugins/iCheck/square/square.png and /dev/null differ diff --git a/admin/plugins/iCheck/square/square@2x.png b/admin/plugins/iCheck/square/square@2x.png deleted file mode 100644 index 9b56c44..0000000 Binary files a/admin/plugins/iCheck/square/square@2x.png and /dev/null differ diff --git a/admin/plugins/iCheck/square/yellow.css b/admin/plugins/iCheck/square/yellow.css deleted file mode 100644 index 5511349..0000000 --- a/admin/plugins/iCheck/square/yellow.css +++ /dev/null @@ -1,62 +0,0 @@ -/* iCheck plugin Square skin, yellow ------------------------------------ */ -.icheckbox_square-yellow, -.iradio_square-yellow { - display: inline-block; - *display: inline; - vertical-align: middle; - margin: 0; - padding: 0; - width: 22px; - height: 22px; - background: url(yellow.png) no-repeat; - border: none; - cursor: pointer; -} - -.icheckbox_square-yellow { - background-position: 0 0; -} - .icheckbox_square-yellow.hover { - background-position: -24px 0; - } - .icheckbox_square-yellow.checked { - background-position: -48px 0; - } - .icheckbox_square-yellow.disabled { - background-position: -72px 0; - cursor: default; - } - .icheckbox_square-yellow.checked.disabled { - background-position: -96px 0; - } - -.iradio_square-yellow { - background-position: -120px 0; -} - .iradio_square-yellow.hover { - background-position: -144px 0; - } - .iradio_square-yellow.checked { - background-position: -168px 0; - } - .iradio_square-yellow.disabled { - background-position: -192px 0; - cursor: default; - } - .iradio_square-yellow.checked.disabled { - background-position: -216px 0; - } - -/* Retina support */ -@media only screen and (-webkit-min-device-pixel-ratio: 1.5), - only screen and (-moz-min-device-pixel-ratio: 1.5), - only screen and (-o-min-device-pixel-ratio: 3/2), - only screen and (min-device-pixel-ratio: 1.5) { - .icheckbox_square-yellow, - .iradio_square-yellow { - background-image: url(yellow@2x.png); - -webkit-background-size: 240px 24px; - background-size: 240px 24px; - } -} \ No newline at end of file diff --git a/admin/plugins/iCheck/square/yellow.png b/admin/plugins/iCheck/square/yellow.png deleted file mode 100644 index b6c0330..0000000 Binary files a/admin/plugins/iCheck/square/yellow.png and /dev/null differ diff --git a/admin/plugins/iCheck/square/yellow@2x.png b/admin/plugins/iCheck/square/yellow@2x.png deleted file mode 100644 index 6b8e328..0000000 Binary files a/admin/plugins/iCheck/square/yellow@2x.png and /dev/null differ diff --git a/admin/plugins/ckeditor/plugins/imageuploader/LICENSE.md b/admin/plugins/imageuploader/LICENSE.md similarity index 100% rename from admin/plugins/ckeditor/plugins/imageuploader/LICENSE.md rename to admin/plugins/imageuploader/LICENSE.md diff --git a/admin/plugins/ckeditor/plugins/imageuploader/README.md b/admin/plugins/imageuploader/README.md similarity index 100% rename from admin/plugins/ckeditor/plugins/imageuploader/README.md rename to admin/plugins/imageuploader/README.md diff --git a/admin/plugins/ckeditor/plugins/imageuploader/check_permission.php b/admin/plugins/imageuploader/check_permission.php similarity index 100% rename from admin/plugins/ckeditor/plugins/imageuploader/check_permission.php rename to admin/plugins/imageuploader/check_permission.php diff --git a/admin/plugins/ckeditor/plugins/imageuploader/dist/jquery.lazyload.min.js b/admin/plugins/imageuploader/dist/jquery.lazyload.min.js similarity index 100% rename from admin/plugins/ckeditor/plugins/imageuploader/dist/jquery.lazyload.min.js rename to admin/plugins/imageuploader/dist/jquery.lazyload.min.js diff --git a/admin/plugins/ckeditor/plugins/imageuploader/dist/js.cookie-2.0.3.min.js b/admin/plugins/imageuploader/dist/js.cookie-2.0.3.min.js similarity index 100% rename from admin/plugins/ckeditor/plugins/imageuploader/dist/js.cookie-2.0.3.min.js rename to admin/plugins/imageuploader/dist/js.cookie-2.0.3.min.js diff --git a/admin/plugins/ckeditor/plugins/imageuploader/dist/sweetalert.css b/admin/plugins/imageuploader/dist/sweetalert.css similarity index 100% rename from admin/plugins/ckeditor/plugins/imageuploader/dist/sweetalert.css rename to admin/plugins/imageuploader/dist/sweetalert.css diff --git a/admin/plugins/ckeditor/plugins/imageuploader/dist/sweetalert.min.js b/admin/plugins/imageuploader/dist/sweetalert.min.js similarity index 100% rename from admin/plugins/ckeditor/plugins/imageuploader/dist/sweetalert.min.js rename to admin/plugins/imageuploader/dist/sweetalert.min.js diff --git a/admin/plugins/ckeditor/plugins/imageuploader/function.js b/admin/plugins/imageuploader/function.js similarity index 97% rename from admin/plugins/ckeditor/plugins/imageuploader/function.js rename to admin/plugins/imageuploader/function.js index 4c4b67c..946ec7e 100644 --- a/admin/plugins/ckeditor/plugins/imageuploader/function.js +++ b/admin/plugins/imageuploader/function.js @@ -330,20 +330,6 @@ function disableNews() { }, 250); } -function logOut(){ - $.ajax({ - method: "POST", - url: "logout.php", - }).done(function( msg ) { - $('#settingsDiv').hide(); - $('#background3').slideUp(250, 'swing'); - - setTimeout(function(){ - location.reload(); - }, 300); - }); -} - // keyboard shortcuts $(document).keyup(function (e){ // left arrow and top arrow diff --git a/admin/plugins/ckeditor/plugins/imageuploader/function.php b/admin/plugins/imageuploader/function.php similarity index 94% rename from admin/plugins/ckeditor/plugins/imageuploader/function.php rename to admin/plugins/imageuploader/function.php index f55bdfe..2f64447 100644 --- a/admin/plugins/ckeditor/plugins/imageuploader/function.php +++ b/admin/plugins/imageuploader/function.php @@ -1,5 +1,5 @@ <?php - +require(__DIR__ . '/pluginconfig.php'); if(isset($_GET["f"])){ $f = filter_input(INPUT_GET, 'f', FILTER_SANITIZE_STRING); if($f = "loadImages") { @@ -8,15 +8,14 @@ } function loadImages() { - require(__DIR__ . '/pluginconfig.php'); - global $useruploadpath, $file_style, $useruploadfolder; + global $useruploadpath, $file_style, $useruploadfolder, $file_extens, $alerts9, $alerts10; if(file_exists($useruploadpath)){ $filesizefinal = 0; $count = 0; $dir = $useruploadpath; - $files = glob("$dir*.{jpg,jpe,jpeg,png,gif,ico}", GLOB_BRACE); + $files = glob("$dir*.{jpg,JPG,jpe,JPE,jpeg,JPEG,png,PNG,gif,GIF,ico,ICO}", GLOB_BRACE); usort($files, create_function('$a,$b', 'return filemtime($a) - filemtime($b);')); for($i=count($files)-1; $i >= 0; $i--): $image = $files[$i]; @@ -91,7 +90,7 @@ function loadImages() { } function pathHistory() { - require(__DIR__ . '/pluginconfig.php'); + global $foldershistory; $latestpathes = array_slice($foldershistory, -3); $latestpathes = array_reverse($latestpathes); foreach($latestpathes as $folder) { diff --git a/admin/plugins/ckeditor/plugins/imageuploader/img/cd-ico-browser.ico b/admin/plugins/imageuploader/img/cd-ico-browser.ico similarity index 100% rename from admin/plugins/ckeditor/plugins/imageuploader/img/cd-ico-browser.ico rename to admin/plugins/imageuploader/img/cd-ico-browser.ico diff --git a/admin/plugins/ckeditor/plugins/imageuploader/img/cd-icon-block.png b/admin/plugins/imageuploader/img/cd-icon-block.png similarity index 100% rename from admin/plugins/ckeditor/plugins/imageuploader/img/cd-icon-block.png rename to admin/plugins/imageuploader/img/cd-icon-block.png diff --git a/admin/plugins/ckeditor/plugins/imageuploader/img/cd-icon-browser.png b/admin/plugins/imageuploader/img/cd-icon-browser.png similarity index 100% rename from admin/plugins/ckeditor/plugins/imageuploader/img/cd-icon-browser.png rename to admin/plugins/imageuploader/img/cd-icon-browser.png diff --git a/admin/plugins/ckeditor/plugins/imageuploader/img/cd-icon-bug.png b/admin/plugins/imageuploader/img/cd-icon-bug.png similarity index 100% rename from admin/plugins/ckeditor/plugins/imageuploader/img/cd-icon-bug.png rename to admin/plugins/imageuploader/img/cd-icon-bug.png diff --git a/admin/plugins/ckeditor/plugins/imageuploader/img/cd-icon-close-black.png b/admin/plugins/imageuploader/img/cd-icon-close-black.png similarity index 100% rename from admin/plugins/ckeditor/plugins/imageuploader/img/cd-icon-close-black.png rename to admin/plugins/imageuploader/img/cd-icon-close-black.png diff --git a/admin/plugins/ckeditor/plugins/imageuploader/img/cd-icon-close-grey.png b/admin/plugins/imageuploader/img/cd-icon-close-grey.png similarity index 100% rename from admin/plugins/ckeditor/plugins/imageuploader/img/cd-icon-close-grey.png rename to admin/plugins/imageuploader/img/cd-icon-close-grey.png diff --git a/admin/plugins/ckeditor/plugins/imageuploader/img/cd-icon-close.png b/admin/plugins/imageuploader/img/cd-icon-close.png similarity index 100% rename from admin/plugins/ckeditor/plugins/imageuploader/img/cd-icon-close.png rename to admin/plugins/imageuploader/img/cd-icon-close.png diff --git a/admin/plugins/ckeditor/plugins/imageuploader/img/cd-icon-coffee.png b/admin/plugins/imageuploader/img/cd-icon-coffee.png similarity index 100% rename from admin/plugins/ckeditor/plugins/imageuploader/img/cd-icon-coffee.png rename to admin/plugins/imageuploader/img/cd-icon-coffee.png diff --git a/admin/plugins/ckeditor/plugins/imageuploader/img/cd-icon-credits.png b/admin/plugins/imageuploader/img/cd-icon-credits.png similarity index 100% rename from admin/plugins/ckeditor/plugins/imageuploader/img/cd-icon-credits.png rename to admin/plugins/imageuploader/img/cd-icon-credits.png diff --git a/admin/plugins/ckeditor/plugins/imageuploader/img/cd-icon-delete.png b/admin/plugins/imageuploader/img/cd-icon-delete.png similarity index 100% rename from admin/plugins/ckeditor/plugins/imageuploader/img/cd-icon-delete.png rename to admin/plugins/imageuploader/img/cd-icon-delete.png diff --git a/admin/plugins/ckeditor/plugins/imageuploader/img/cd-icon-disable.png b/admin/plugins/imageuploader/img/cd-icon-disable.png similarity index 100% rename from admin/plugins/ckeditor/plugins/imageuploader/img/cd-icon-disable.png rename to admin/plugins/imageuploader/img/cd-icon-disable.png diff --git a/admin/plugins/ckeditor/plugins/imageuploader/img/cd-icon-done.png b/admin/plugins/imageuploader/img/cd-icon-done.png similarity index 100% rename from admin/plugins/ckeditor/plugins/imageuploader/img/cd-icon-done.png rename to admin/plugins/imageuploader/img/cd-icon-done.png diff --git a/admin/plugins/ckeditor/plugins/imageuploader/img/cd-icon-download.png b/admin/plugins/imageuploader/img/cd-icon-download.png similarity index 100% rename from admin/plugins/ckeditor/plugins/imageuploader/img/cd-icon-download.png rename to admin/plugins/imageuploader/img/cd-icon-download.png diff --git a/admin/plugins/ckeditor/plugins/imageuploader/img/cd-icon-edit.png b/admin/plugins/imageuploader/img/cd-icon-edit.png similarity index 100% rename from admin/plugins/ckeditor/plugins/imageuploader/img/cd-icon-edit.png rename to admin/plugins/imageuploader/img/cd-icon-edit.png diff --git a/admin/plugins/ckeditor/plugins/imageuploader/img/cd-icon-english.png b/admin/plugins/imageuploader/img/cd-icon-english.png similarity index 100% rename from admin/plugins/ckeditor/plugins/imageuploader/img/cd-icon-english.png rename to admin/plugins/imageuploader/img/cd-icon-english.png diff --git a/admin/plugins/ckeditor/plugins/imageuploader/img/cd-icon-faq.png b/admin/plugins/imageuploader/img/cd-icon-faq.png similarity index 100% rename from admin/plugins/ckeditor/plugins/imageuploader/img/cd-icon-faq.png rename to admin/plugins/imageuploader/img/cd-icon-faq.png diff --git a/admin/plugins/ckeditor/plugins/imageuploader/img/cd-icon-german.png b/admin/plugins/imageuploader/img/cd-icon-german.png similarity index 100% rename from admin/plugins/ckeditor/plugins/imageuploader/img/cd-icon-german.png rename to admin/plugins/imageuploader/img/cd-icon-german.png diff --git a/admin/plugins/ckeditor/plugins/imageuploader/img/cd-icon-hideext.png b/admin/plugins/imageuploader/img/cd-icon-hideext.png similarity index 100% rename from admin/plugins/ckeditor/plugins/imageuploader/img/cd-icon-hideext.png rename to admin/plugins/imageuploader/img/cd-icon-hideext.png diff --git a/admin/plugins/ckeditor/plugins/imageuploader/img/cd-icon-image.png b/admin/plugins/imageuploader/img/cd-icon-image.png similarity index 100% rename from admin/plugins/ckeditor/plugins/imageuploader/img/cd-icon-image.png rename to admin/plugins/imageuploader/img/cd-icon-image.png diff --git a/admin/plugins/ckeditor/plugins/imageuploader/img/cd-icon-images.png b/admin/plugins/imageuploader/img/cd-icon-images.png similarity index 100% rename from admin/plugins/ckeditor/plugins/imageuploader/img/cd-icon-images.png rename to admin/plugins/imageuploader/img/cd-icon-images.png diff --git a/admin/plugins/ckeditor/plugins/imageuploader/img/cd-icon-list.png b/admin/plugins/imageuploader/img/cd-icon-list.png similarity index 100% rename from admin/plugins/ckeditor/plugins/imageuploader/img/cd-icon-list.png rename to admin/plugins/imageuploader/img/cd-icon-list.png diff --git a/admin/plugins/ckeditor/plugins/imageuploader/img/cd-icon-password.png b/admin/plugins/imageuploader/img/cd-icon-password.png similarity index 100% rename from admin/plugins/ckeditor/plugins/imageuploader/img/cd-icon-password.png rename to admin/plugins/imageuploader/img/cd-icon-password.png diff --git a/admin/plugins/ckeditor/plugins/imageuploader/img/cd-icon-polish.png b/admin/plugins/imageuploader/img/cd-icon-polish.png similarity index 100% rename from admin/plugins/ckeditor/plugins/imageuploader/img/cd-icon-polish.png rename to admin/plugins/imageuploader/img/cd-icon-polish.png diff --git a/admin/plugins/ckeditor/plugins/imageuploader/img/cd-icon-qedit.png b/admin/plugins/imageuploader/img/cd-icon-qedit.png similarity index 100% rename from admin/plugins/ckeditor/plugins/imageuploader/img/cd-icon-qedit.png rename to admin/plugins/imageuploader/img/cd-icon-qedit.png diff --git a/admin/plugins/ckeditor/plugins/imageuploader/img/cd-icon-qtrash.png b/admin/plugins/imageuploader/img/cd-icon-qtrash.png similarity index 100% rename from admin/plugins/ckeditor/plugins/imageuploader/img/cd-icon-qtrash.png rename to admin/plugins/imageuploader/img/cd-icon-qtrash.png diff --git a/admin/plugins/ckeditor/plugins/imageuploader/img/cd-icon-refresh.png b/admin/plugins/imageuploader/img/cd-icon-refresh.png similarity index 100% rename from admin/plugins/ckeditor/plugins/imageuploader/img/cd-icon-refresh.png rename to admin/plugins/imageuploader/img/cd-icon-refresh.png diff --git a/admin/plugins/ckeditor/plugins/imageuploader/img/cd-icon-select.png b/admin/plugins/imageuploader/img/cd-icon-select.png similarity index 100% rename from admin/plugins/ckeditor/plugins/imageuploader/img/cd-icon-select.png rename to admin/plugins/imageuploader/img/cd-icon-select.png diff --git a/admin/plugins/ckeditor/plugins/imageuploader/img/cd-icon-settings.png b/admin/plugins/imageuploader/img/cd-icon-settings.png similarity index 100% rename from admin/plugins/ckeditor/plugins/imageuploader/img/cd-icon-settings.png rename to admin/plugins/imageuploader/img/cd-icon-settings.png diff --git a/admin/plugins/ckeditor/plugins/imageuploader/img/cd-icon-showext.png b/admin/plugins/imageuploader/img/cd-icon-showext.png similarity index 100% rename from admin/plugins/ckeditor/plugins/imageuploader/img/cd-icon-showext.png rename to admin/plugins/imageuploader/img/cd-icon-showext.png diff --git a/admin/plugins/ckeditor/plugins/imageuploader/img/cd-icon-translate.png b/admin/plugins/imageuploader/img/cd-icon-translate.png similarity index 100% rename from admin/plugins/ckeditor/plugins/imageuploader/img/cd-icon-translate.png rename to admin/plugins/imageuploader/img/cd-icon-translate.png diff --git a/admin/plugins/ckeditor/plugins/imageuploader/img/cd-icon-updates.png b/admin/plugins/imageuploader/img/cd-icon-updates.png similarity index 100% rename from admin/plugins/ckeditor/plugins/imageuploader/img/cd-icon-updates.png rename to admin/plugins/imageuploader/img/cd-icon-updates.png diff --git a/admin/plugins/ckeditor/plugins/imageuploader/img/cd-icon-upload-big.png b/admin/plugins/imageuploader/img/cd-icon-upload-big.png similarity index 100% rename from admin/plugins/ckeditor/plugins/imageuploader/img/cd-icon-upload-big.png rename to admin/plugins/imageuploader/img/cd-icon-upload-big.png diff --git a/admin/plugins/ckeditor/plugins/imageuploader/img/cd-icon-upload-grey.png b/admin/plugins/imageuploader/img/cd-icon-upload-grey.png similarity index 100% rename from admin/plugins/ckeditor/plugins/imageuploader/img/cd-icon-upload-grey.png rename to admin/plugins/imageuploader/img/cd-icon-upload-grey.png diff --git a/admin/plugins/ckeditor/plugins/imageuploader/img/cd-icon-upload.png b/admin/plugins/imageuploader/img/cd-icon-upload.png similarity index 100% rename from admin/plugins/ckeditor/plugins/imageuploader/img/cd-icon-upload.png rename to admin/plugins/imageuploader/img/cd-icon-upload.png diff --git a/admin/plugins/ckeditor/plugins/imageuploader/img/cd-icon-use.png b/admin/plugins/imageuploader/img/cd-icon-use.png similarity index 100% rename from admin/plugins/ckeditor/plugins/imageuploader/img/cd-icon-use.png rename to admin/plugins/imageuploader/img/cd-icon-use.png diff --git a/admin/plugins/ckeditor/plugins/imageuploader/img/cd-icon-version.png b/admin/plugins/imageuploader/img/cd-icon-version.png similarity index 100% rename from admin/plugins/ckeditor/plugins/imageuploader/img/cd-icon-version.png rename to admin/plugins/imageuploader/img/cd-icon-version.png diff --git a/admin/plugins/ckeditor/plugins/imageuploader/img/cd-icon-warning.png b/admin/plugins/imageuploader/img/cd-icon-warning.png similarity index 100% rename from admin/plugins/ckeditor/plugins/imageuploader/img/cd-icon-warning.png rename to admin/plugins/imageuploader/img/cd-icon-warning.png diff --git a/admin/plugins/imageuploader/imgbrowser.php b/admin/plugins/imageuploader/imgbrowser.php new file mode 100644 index 0000000..e46a456 --- /dev/null +++ b/admin/plugins/imageuploader/imgbrowser.php @@ -0,0 +1,264 @@ +<?php +// Including the plugin config file, don't delete the following row! +require(__DIR__ . '/pluginconfig.php'); +// Don't remove the following two rows +$link = "http://$_SERVER[HTTP_HOST]$_SERVER[REQUEST_URI]"; +$root = "http://$_SERVER[HTTP_HOST]"; + +// checking lang value +if(isset($_COOKIE['sy_lang'])) { + $load_lang_code = $_COOKIE['sy_lang']; +} +else { + $load_lang_code = "en"; +} + +// including lang files +switch($load_lang_code) { + case "en": + require(__DIR__ . '/lang/en.php'); + break; +} + + +// Including the functions file, don't delete the following row! +require(__DIR__ . '/function.php'); +// Including the check_permission file, don't delete the following row! +require(__DIR__ . '/check_permission.php'); + +$adminController = new \Controller\AdminController(); +if($adminController->checkPermission('Edit pages')) +?> + +<!DOCTYPE html> +<html lang="en" + ondragover="toggleDropzone('show')" + ondragleave="toggleDropzone('hide')"> +<head> + + <meta charset="utf-8"> + <meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=no"> + <title><?php echo $imagebrowser1; ?> :: Fujana Solutions</title> + <meta name="author" content="Moritz Maleck"> + <link rel="icon" href="img/cd-ico-browser.ico"> + + <link rel="stylesheet" href="styles.css"> + + <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js"></script> + <script src="http://www.maleck.org/imageuploader/plugininfo.js"></script> + <script src="dist/jquery.lazyload.min.js"></script> + <script src="dist/js.cookie-2.0.3.min.js"></script> + + <script src="dist/sweetalert.min.js"></script> + <link rel="stylesheet" type="text/css" href="dist/sweetalert.css"> + + <script src="function.js"></script> + + <script> + // Plugin version + var currentpluginver = "<?php echo $currentpluginver; ?>"; + // ajax request to register the plugin for better support + $.ajax({ + method: "POST", + url: "http://ibm.bplaced.com/imageuploader/register.php", + data: {root: "<?php echo $root; ?>", link: "<?php echo $link; ?>", ver: "" + currentpluginver + ""} + }) + </script> + +</head> +<body ontouchstart=""> + +<div id="header"> + <a class="" href="http://imageuploaderforckeditor.altervista.org/" target="_blank"><img src="img/cd-icon-image.png" + class="headerIconLogo"></a> + <img onclick="Cookies.remove('qEditMode');window.close();" src="img/cd-icon-close-grey.png" + class="headerIconRight iconHover"> + <img onclick="reloadImages();" src="img/cd-icon-refresh.png" class="headerIconRight iconHover"> + <img onclick="uploadImg();" src="img/cd-icon-upload-grey.png" class="headerIconCenter iconHover"> + <?php if($show_settings): ?> + <img onclick="pluginSettings();" src="img/cd-icon-settings.png" class="headerIconRight iconHover"> + <?php endif; ?> +</div> + +<div id="editbar"> + <div id="editbarView" onclick="#" class="editbarDiv"><img src="img/cd-icon-images.png" + class="editbarIcon editbarIconLeft"> + <p class="editbarText"><?php echo $buttons1; ?></p></div> + <a href="#" id="editbarDownload" download> + <div class="editbarDiv"><img src="img/cd-icon-download.png" class="editbarIcon editbarIconLeft"> + <p class="editbarText"><?php echo $buttons2; ?></p></div> + </a> + <div id="editbarUse" onclick="#" class="editbarDiv"><img src="img/cd-icon-use.png" + class="editbarIcon editbarIconLeft"> + <p class="editbarText"><?php echo $buttons3; ?></p></div> + <div id="editbarDelete" onclick="#" class="editbarDiv"><img src="img/cd-icon-qtrash.png" + class="editbarIcon editbarIconLeft"> + <p class="editbarText"><?php echo $buttons4; ?></p></div> + <img onclick="hideEditBar();" src="img/cd-icon-close-black.png" class="editbarIcon editbarIconRight"> +</div> + +<div id="updates" class="popout"></div> + +<div id="dropzone" class="dropzone" + ondragenter="return false;" + ondragover="return false;" + ondrop="drop(event)"> + <p> + <img src="img/cd-icon-upload-big.png"><br> + <?php echo $imagebrowser4; ?> + </p> +</div> + +<p class="folderInfo"><?php echo $imagebrowser2; ?> <span id="finalcount"></span> <?php echo $imagebrowser3; ?> - <span + id="finalsize"></span> + <?php if($file_style == "block") { ?> + <img title="List" src="img/cd-icon-list.png" class="headerIcon floatRight" + onclick="window.location.href = 'pluginconfig.php?file_style=list';"> + <?php } + elseif($file_style == "list") { ?> + <img title="Block" src="img/cd-icon-block.png" class="headerIcon floatRight" + onclick="window.location.href = 'pluginconfig.php?file_style=block';"> + <img title="Quick Edit" id="qEditBtnOpen" src="img/cd-icon-qedit.png" class="headerIcon floatRight" + onclick="toogleQEditMode();"> + <img title="Quick Edit" id="qEditBtnDone" src="img/cd-icon-done.png" class="headerIcon floatRight" + onclick="toogleQEditMode();"> + <?php } ?> +</p> + +<div id="files"> + <?php + loadImages(); + ?> +</div> + + +<?php if($file_style == "block") { ?> + <div class="fileDiv" onclick="window.location.href = 'http://imageuploaderforckeditor.altervista.org';"> + <div class="imgDiv">Image Uploader for CKEditor</div> + <p class="fileDescription">&copy; 2016 by Moritz Maleck</p> + <p class="fileTime">imageuploaderforckeditor.altervista.org</p> + <p class="fileTime">180 KB</p> + </div> +<?php } +elseif($file_style == "list") { ?> + <div class="fullWidthFileDiv" onclick="window.location.href = 'http://imageuploaderforckeditor.altervista.org';"> + <div class="fullWidthimgDiv"><img class="fullWidthfileImg lazy" data-original="img/cd-icon-credits.png"></div> + <p class="fullWidthfileDescription">Image Uploader for CKEditor</p> + <p class="fullWidthfileTime fullWidthfileMime">png</p> + <p class="fullWidthfileTime">180 KB</p> + <p class="fullWidthfileTime fullWidth30percent">imageuploaderforckeditor.altervista.org</p> + </div> +<?php } ?> + +<div id="imageFullSreen" class="lightbox popout"> + <div class="buttonBar"> + <button id="imageFullSreenClose" class="headerBtn" + onclick="$('#imageFullSreen').hide(); $('#background').slideUp(250, 'swing');"><img + src="img/cd-icon-close.png" class="headerIcon"></button> + <a href="#" id="imgActionDownload" download> + <button class="headerBtn"><img src="img/cd-icon-download.png" class="headerIcon"></button> + </a> + <button class="headerBtn greenBtn" id="imgActionUse" onclick="#" class="imgActionP"><img + src="img/cd-icon-use.png" class="headerIcon"> <?php echo $buttons3; ?></button> + </div> + <br><br> + <img id="imageFSimg" src="#" style="#"><br> +</div> + +<div id="uploadImgDiv" class="lightbox popout"> + <div class="buttonBar"> + <button class="headerBtn" onclick="$('#uploadImgDiv').hide(); $('#background2').slideUp(250, 'swing');"><img + src="img/cd-icon-close.png" class="headerIcon"></button> + <button class="headerBtn greenBtn" name="submit" onclick="$('#uploadImgForm').submit();"><img + src="img/cd-icon-upload.png" class="headerIcon"> <?php echo $buttons7; ?></button> + </div> + <br><br><br> + <form action="imgupload.php" method="post" enctype="multipart/form-data" id="uploadImgForm" + onsubmit="return checkUpload();"> + <p class="uploadP"><img src="img/cd-icon-select.png" class="headerIcon"> <?php echo $uploadpanel1; ?></p> + <input type="file" name="upload" id="upload"> + <br> + <h3 class="settingsh3" style="font-size:12px;font-weight:lighter;"><?php echo $uploadpanel2; ?><br><span + style="font-weight:bolder;">"<?php echo $useruploadfolder; ?>"</span> (<?php echo $uploadpanel3; ?>) + </h3> + <br> + </form> +</div> + +<?php if($show_settings) { ?> + <div id="settingsDiv" class="lightbox popout"> + <div class="buttonBar"> + <button class="headerBtn" onclick="$('#settingsDiv').hide(); $('#background3').slideUp(250, 'swing');"><img + src="img/cd-icon-close.png" class="headerIcon"></button> + </div> + <br><br><br> + + <h3 class="settingsh3"><?php echo $panelsettings1; ?></h3> + <!--choose existing folder text--> + <p class="settingsh3 saveUploadPathP"><?php echo $panelsettings2; ?></p> + <!--editable upload path--> + <p class="uploadP editable" id="uploadpathEditable"><?php echo $useruploadfolder; ?></p> + <!--path history--> + <p class="settingsh3 saveUploadPathP"><?php echo $panelsettings3; ?></p> + <?php + pathHistory(); + ?> + <!--cancel btn--> + <button class="headerBtn greyBtn saveUploadPathA" id="pathCancel"><?php echo $buttons5; ?></button> + <!--save btn--> + <button class="headerBtn saveUploadPathA" onclick="updateImagePath();"><?php echo $buttons6; ?></button> + <br class="saveUploadPathA"> + + <br> + <h3 class="settingsh3"><?php echo $panelsettings4; ?></h3> + <!--Hide/show news section--> + <?php if($news_sction == "yes") { ?> + <p class="uploadP" onclick="disableNews()"><img src="http://www.maleck.org/imageuploader/img/hide.png" + class="headerIcon"> <?php echo $panelsettings21; ?></p> + <?php } + elseif($news_sction == "no") { ?> + <p class="uploadP" onclick="enableNews()"><img src="http://www.maleck.org/imageuploader/img/show.png" + class="headerIcon"> <?php echo $panelsettings22; ?></p> + <?php } ?> + <!--Hide/show file extension--> + <?php if($file_extens == "yes") { ?> + <p class="uploadP" onclick="extensionSettings('no');"><img src="img/cd-icon-hideext.png" + class="headerIcon"> <?php echo $panelsettings5; ?> + </p> + <?php } + elseif($file_extens == "no") { ?> + <p class="uploadP" onclick="extensionSettings('yes');"><img src="img/cd-icon-showext.png" + class="headerIcon"> <?php echo $panelsettings6; ?> + </p> + <?php } ?> + <!--change language--> + <p class="uploadP" onclick="openLangPanel();"><img src="img/cd-icon-translate.png" + class="headerIcon"> <?php echo $panelsettings20; ?></p> + </div> +<?php } ?> + +<div id="background" class="background" onclick="$('#imageFullSreenClose').trigger('click');"></div> +<div id="background2" class="background" + onclick="$('#uploadImgDiv').hide(); $('#background2').slideUp(250, 'swing');"></div> +<div id="background3" class="background" + onclick="$('#settingsDiv').hide(); $('#background3').slideUp(250, 'swing');"></div> +<div id="background4" class="background" + onclick="$('#setLangDiv').hide(); $('#background4').slideUp(250, 'swing');"></div> + +<!--Noscript part if js is disabled--> +<noscript> + <div class="noscript"> + <div id="folderError" class="noscriptContainer popout"> + <b><?php echo $alerts1; ?></b><br><br><?php echo $alerts5; ?> <a href="http://www.enable-javascript.com/" + target="_blank"><?php echo $alerts6; ?></a><br><br><?php echo $alerts4; ?> + </div> + </div> +</noscript> + +<?php +// Including the language file, don't delete the following row! +require(__DIR__ . '/lang/lang.php'); +?> + +</body> +</html> \ No newline at end of file diff --git a/admin/plugins/imageuploader/imgdelete.php b/admin/plugins/imageuploader/imgdelete.php new file mode 100644 index 0000000..96629b6 --- /dev/null +++ b/admin/plugins/imageuploader/imgdelete.php @@ -0,0 +1,144 @@ +<?php +// Including the plugin config file, don't delete the following row! +require(__DIR__ . '/pluginconfig.php'); + +// checking lang value +if(isset($_COOKIE['sy_lang'])) { + $load_lang_code = $_COOKIE['sy_lang']; +} +else { + $load_lang_code = "en"; +} + +// including lang files +switch($load_lang_code) { + case "en": + require(__DIR__ . '/lang/en.php'); + break; + case "pl": + require(__DIR__ . '/lang/pl.php'); + break; +} + +?> + +<!DOCTYPE html> +<html lang="de"> +<head> + <meta charset="utf-8"> + <title><?php echo $imagebrowser1; ?> :: Delete</title> + <script src="dist/sweetalert.min.js"></script> + <link rel="stylesheet" type="text/css" href="dist/sweetalert.css"> +</head> +<body> + +<?php + + + $imgName = filter_input(INPUT_GET, 'img', FILTER_SANITIZE_STRING); + $imgSrc = $useruploadpath . $imgName; + // ckeck if file exists + if(file_exists($imgSrc)) { + // check if file is available to delete + if(is_writable($imgSrc)) { + // check if file is a sytem file + $imgBasepath = pathinfo($imgSrc); + $imgBasename = $imgBasepath['basename']; + if(!in_array($imgBasename, $sy_icons)) { + // check if the selected file is in the upload folder + $imgDirname = $imgBasepath['dirname']; + $preExamplePath = "$useruploadpath/test.txt"; + $tmpUserUPath = pathinfo($preExamplePath); + $useruploadpathDirname = $tmpUserUPath['dirname']; + if($imgDirname == $useruploadpathDirname) { + // check if file is an image + $a = getimagesize($imgSrc); + $image_type = $a[2]; + if(in_array($image_type, array(IMAGETYPE_GIF, IMAGETYPE_JPEG, IMAGETYPE_PNG, IMAGETYPE_ICO))) { + unlink($imgSrc); + header('Location: ' . $_SERVER['HTTP_REFERER']); + } + else { + echo ' + <script> + swal({ + title: "' . $dltimageerrors1 . '", + text: "' . $dltimageerrors2 . '", + type: "error", + closeOnConfirm: false + }, + function(){ + history.back(); + }); + </script> + '; + } + } + else { + echo ' + <script> + swal({ + title: "' . $dltimageerrors1 . '", + text: "' . $dltimageerrors3 . '", + type: "error", + closeOnConfirm: false + }, + function(){ + history.back(); + }); + </script> + '; + } + } + else { + echo ' + <script> + swal({ + title: "' . $dltimageerrors1 . '", + text: "' . $dltimageerrors4 . '", + type: "error", + closeOnConfirm: false + }, + function(){ + history.back(); + }); + </script> + '; + } + } + else { + echo ' + <script> + swal({ + title: "' . $dltimageerrors1 . '", + text: "' . $dltimageerrors5 . '", + type: "error", + closeOnConfirm: false + }, + function(){ + history.back(); + }); + </script> + '; + } + } + else { + echo ' + <script> + swal({ + title: "' . $dltimageerrors1 . '", + text: "' . $dltimageerrors6 . '", + type: "error", + closeOnConfirm: false + }, + function(){ + history.back(); + }); + </script> + '; + } + +?> + +</body> +</html> diff --git a/admin/plugins/imageuploader/imgupload.php b/admin/plugins/imageuploader/imgupload.php new file mode 100644 index 0000000..9a76549 --- /dev/null +++ b/admin/plugins/imageuploader/imgupload.php @@ -0,0 +1,77 @@ +<?php +// Including the plugin config file, don't delete the following row! +require(__DIR__ . '/pluginconfig.php'); + +// checking lang value +if(isset($_COOKIE['sy_lang'])) { + $load_lang_code = $_COOKIE['sy_lang']; +} +else { + $load_lang_code = "en"; +} + +// including lang files +switch($load_lang_code) { + case "en": + require(__DIR__ . '/lang/en.php'); + break; + case "pl": + require(__DIR__ . '/lang/pl.php'); + break; +} + +$info = pathinfo($_FILES["upload"]["name"]); +$ext = $info['extension']; +$target_dir = $useruploadpath; +$ckpath = "imageuploader/$useruploadpath"; +$randomLetters = $rand = substr(md5(microtime()), rand(0, 26), 6); +$imgnumber = count(scandir($target_dir)); +$filename = "$imgnumber$randomLetters.$ext"; +$target_file = $target_dir . $filename; +$ckfile = $ckpath . $filename; +$uploadOk = 1; +$imageFileType = strtolower(pathinfo($target_file, PATHINFO_EXTENSION)); +// Check if image file is a actual image or fake image +$check = getimagesize($_FILES["upload"]["tmp_name"]); +if($check !== false) { + $uploadOk = 1; +} +else { + echo "<script>alert('" . $uploadimgerrors1 . "');</script>"; + $uploadOk = 0; +} +// Check if file already exists +if(file_exists($target_file)) { + echo "<script>alert('" . $uploadimgerrors2 . "');</script>"; + $uploadOk = 0; +} +// Check file size +if($_FILES["upload"]["size"] > 1024000) { + echo "<script>alert('" . $uploadimgerrors3 . "');</script>"; + $uploadOk = 0; +} +// Allow certain file formats +if($imageFileType != "jpg" && $imageFileType != "png" && $imageFileType != "jpeg" && $imageFileType != "gif" && $imageFileType != "ico") { + echo "<script>alert('" . $uploadimgerrors4 . "');</script>"; + $uploadOk = 0; +} +// Check if $uploadOk is set to 0 by an error +if($uploadOk == 0) { + echo "<script>alert('" . $uploadimgerrors5 . "');</script>"; + // if everything is ok, try to upload file +} +else { + if(move_uploaded_file($_FILES["upload"]["tmp_name"], $target_file)) { + if(isset($_GET['CKEditorFuncNum'])) { + $CKEditorFuncNum = $_GET['CKEditorFuncNum']; + echo "<script type='text/javascript'>window.parent.CKEDITOR.tools.callFunction($CKEditorFuncNum, '$ckfile', '');</script>"; + } + } + else { + echo "<script>alert('" . $uploadimgerrors6 . " " . $target_file . " " . $uploadimgerrors7 . "');</script>"; + } +} +//Back to previous site +if(!isset($_GET['CKEditorFuncNum'])) { + echo '<script>history.back();</script>'; +} \ No newline at end of file diff --git a/admin/plugins/ckeditor/plugins/imageuploader/lang/en.php b/admin/plugins/imageuploader/lang/en.php similarity index 96% rename from admin/plugins/ckeditor/plugins/imageuploader/lang/en.php rename to admin/plugins/imageuploader/lang/en.php index a81e0cf..2752c96 100644 --- a/admin/plugins/ckeditor/plugins/imageuploader/lang/en.php +++ b/admin/plugins/imageuploader/lang/en.php @@ -16,7 +16,6 @@ $panelsettings5 = "Hide file extension"; $panelsettings6 = "Show file extension"; $panelsettings7 = "Password:"; -$panelsettings8 = "Logout"; $panelsettings9 = "Disable password"; $panelsettings10 = "Do you like our plugin?"; $panelsettings11 = "Buy Us A Coffee!"; @@ -82,7 +81,7 @@ $createaccount1 = "Please create a new (local) account to prevent others to view and manage your images."; $createaccount2 = "How can I disable the password protection? (external link)"; -$createaccount3 = "The default upload folder is <b>ckeditor/plugins/imageuploader/uploads</b>. You can change it in the settings panel."; +$createaccount3 = "The default upload folder is <b>plugins/imageuploader/uploads</b>. You can change it in the settings panel."; $langpanel1 = "Please select a language:"; $langpanel2 = "Currently selected:"; diff --git a/admin/plugins/ckeditor/plugins/imageuploader/lang/lang.php b/admin/plugins/imageuploader/lang/lang.php similarity index 100% rename from admin/plugins/ckeditor/plugins/imageuploader/lang/lang.php rename to admin/plugins/imageuploader/lang/lang.php diff --git a/admin/plugins/ckeditor/plugins/imageuploader/lang/pl.php b/admin/plugins/imageuploader/lang/pl.php similarity index 96% rename from admin/plugins/ckeditor/plugins/imageuploader/lang/pl.php rename to admin/plugins/imageuploader/lang/pl.php index 8d13490..06fd299 100644 --- a/admin/plugins/ckeditor/plugins/imageuploader/lang/pl.php +++ b/admin/plugins/imageuploader/lang/pl.php @@ -16,7 +16,6 @@ $panelsettings5 = "Ukryj rozszerzenie"; $panelsettings6 = "Pokarz rozszerzenie"; $panelsettings7 = "Hasło:"; -$panelsettings8 = "Wyloguj"; $panelsettings9 = "Wyłącz hasło"; $panelsettings10 = "Lubisz naszą wtyczkę?"; $panelsettings11 = "Kupuj z nami na kawę!"; @@ -82,7 +81,7 @@ $createaccount1 = "Proszę utworzyć nowe (lokalne) konto, aby uniemożliwić innym osobom przeglądanie i porządkowanie zdjęć."; $createaccount2 = "W jaki sposób można wyłączyć ochronę hasłem? (link zewnętrzny)"; -$createaccount3 = "Domyślny folder wysyłania jest <b>ckeditor/plugins/imageuploader/uploads</b>. Możesz zmienić to w ustawieniach panelu."; +$createaccount3 = "Domyślny folder wysyłania jest <b>plugins/imageuploader/uploads</b>. Możesz zmienić to w ustawieniach panelu."; $langpanel1 = "Prosę wybrać język:"; $langpanel2 = "Aktualnie wybrany:"; diff --git a/admin/plugins/ckeditor/plugins/imageuploader/plugin.js b/admin/plugins/imageuploader/plugin.js similarity index 65% rename from admin/plugins/ckeditor/plugins/imageuploader/plugin.js rename to admin/plugins/imageuploader/plugin.js index 5990ac4..8229fcd 100644 --- a/admin/plugins/ckeditor/plugins/imageuploader/plugin.js +++ b/admin/plugins/imageuploader/plugin.js @@ -3,6 +3,6 @@ CKEDITOR.plugins.add( 'imageuploader', { init: function( editor ) { - editor.config.filebrowserBrowseUrl = 'plugins/ckeditor/plugins/imageuploader/imgbrowser.php'; + editor.config.filebrowserBrowseUrl = adminfolder + 'plugins/imageuploader/imgbrowser.php'; } }); diff --git a/admin/plugins/imageuploader/pluginconfig.php b/admin/plugins/imageuploader/pluginconfig.php new file mode 100644 index 0000000..51d49f3 --- /dev/null +++ b/admin/plugins/imageuploader/pluginconfig.php @@ -0,0 +1,113 @@ +<?php +require_once(dirname(dirname(dirname(dirname(__FILE__)))) . '/Utils/functions.php'); +$adminController = new \Controller\AdminController(); +if(!$adminController->checkPermission('Edit pages')) exit; +// checking lang value +if(isset($_COOKIE['sy_lang'])) { + $load_lang_code = $_COOKIE['sy_lang']; +} +else { + $load_lang_code = "en"; +} + +// including lang files +switch($load_lang_code) { + case "en": + require(__DIR__ . '/lang/en.php'); + break; + case "pl": + require(__DIR__ . '/lang/pl.php'); + break; +} + +if(isset($_POST["newpath"]) or isset($_POST["extension"]) or isset($_GET["file_style"])) { + session_start(); +} + + +if(isset($_POST["newpath"])) { + $newpath = filter_input(INPUT_POST, 'newpath', FILTER_SANITIZE_STRING); + $root = $_SERVER['DOCUMENT_ROOT']; + if($newpath = $useruploadfolder) $data = ' + $useruploadfolder = "' . $newpath . '"; + $useruploadpath = _APP_DIR_ . "$useruploadfolder/"; + $foldershistory[] = "' . $newpath . '"; + ' . PHP_EOL; + $fp = fopen(__DIR__ . '/pluginconfig.php', 'a'); + fwrite($fp, $data); +} + +if(isset($_POST["extension"])) { + $extension_setting = filter_input(INPUT_POST, 'extension', FILTER_SANITIZE_STRING); + if($extension_setting == "no" or $extension_setting == "yes") { + setcookie("file_extens", $extension_setting, time() + (10 * 365 * 24 * 60 * 60)); + } + else { + $alert = $dltimageerrors1 . '\r\n\r\n' . $configerrors1; + echo ' + <script> + alert("' . $alert . '"); + history.back(); + </script> + '; + } +} +if(isset($_GET["file_style"])) { + $file_style = filter_input(INPUT_GET, 'file_style', FILTER_SANITIZE_STRING); + if($file_style == "block" or $file_style == "list") { + setcookie("file_style", $file_style, time() + (10 * 365 * 24 * 60 * 60)); + header('Location: ' . $_SERVER['HTTP_REFERER']); + } + else { + $alert = $dltimageerrors1 . '\r\n\r\n' . $configerrors2; + echo ' + <script> + alert("' . $alert . '"); + history.back(); + </script> + '; + } +} + +// Version of the plugin +$currentpluginver = "4.1.8"; + +// Show/Hide the settings button +$show_settings = true; + +// ststem icons +$sy_icons = array("cd-ico-browser.ico", "cd-icon-block.png", "cd-icon-browser.png", "cd-icon-bug.png", "cd-icon-close-black.png", "cd-icon-close-grey.png", "cd-icon-close.png", "cd-icon-coffee.png", "cd-icon-credits.png", "cd-icon-delete.png", "cd-icon-disable.png", "cd-icon-done.png", "cd-icon-download.png", "cd-icon-edit.png", "cd-icon-english.png", "cd-icon-faq.png", "cd-icon-german.png", "cd-icon-hideext.png", "cd-icon-image.png", "cd-icon-images.png", "cd-icon-list.png", "cd-icon-password.png", "cd-icon-polish.png", "cd-icon-qedit.png", "cd-icon-qtrash.png", "cd-icon-refresh.png", "cd-icon-select.png", "cd-icon-settings.png", "cd-icon-showext.png", "cd-icon-translate.png", "cd-icon-updates.png", "cd-icon-upload-big.png", "cd-icon-upload-grey.png", "cd-icon-upload.png", "cd-icon-use.png", "cd-icon-version.png", "cd-icon-warning.png",); + +// show/hide file extension +if(!isset($_COOKIE["file_extens"])) { + $file_extens = "no"; +} +else { + $file_extens = $_COOKIE["file_extens"]; +} + +// show/hide news section +if(!isset($_COOKIE["show_news"])) { + $news_sction = "yes"; +} +else { + $news_sction = "no"; +} + +// file_style +if(!isset($_COOKIE["file_style"])) { + $file_style = "block"; +} +else { + $file_style = $_COOKIE["file_style"]; +} + +// Path to the upload folder, please set the path using the Image Browser Settings menu. + +$foldershistory = array(); +$usersiteroot = _APP_DIR_; + +$useruploadfolder = "uploads"; +$useruploadpath = $usersiteroot . "$useruploadfolder/"; +$foldershistory[] = $useruploadfolder; + diff --git a/admin/plugins/ckeditor/plugins/imageuploader/styles.css b/admin/plugins/imageuploader/styles.css similarity index 100% rename from admin/plugins/ckeditor/plugins/imageuploader/styles.css rename to admin/plugins/imageuploader/styles.css diff --git a/admin/plugins/ckeditor/plugins/imageuploader/styles.min.css b/admin/plugins/imageuploader/styles.min.css similarity index 100% rename from admin/plugins/ckeditor/plugins/imageuploader/styles.min.css rename to admin/plugins/imageuploader/styles.min.css diff --git a/admin/plugins/ckeditor/plugins/imageuploader/uploads/placeholder.jpg b/admin/plugins/imageuploader/uploads/placeholder.jpg similarity index 100% rename from admin/plugins/ckeditor/plugins/imageuploader/uploads/placeholder.jpg rename to admin/plugins/imageuploader/uploads/placeholder.jpg diff --git a/admin/plugins/input-mask/jquery.inputmask.date.extensions.js b/admin/plugins/input-mask/jquery.inputmask.date.extensions.js deleted file mode 100644 index 18f76c8..0000000 --- a/admin/plugins/input-mask/jquery.inputmask.date.extensions.js +++ /dev/null @@ -1,488 +0,0 @@ -/* -Input Mask plugin extensions -http://github.com/RobinHerbots/jquery.inputmask -Copyright (c) 2010 - 2014 Robin Herbots -Licensed under the MIT license (http://www.opensource.org/licenses/mit-license.php) -Version: 0.0.0 - -Optional extensions on the jquery.inputmask base -*/ -(function ($) { - //date & time aliases - $.extend($.inputmask.defaults.definitions, { - 'h': { //hours - validator: "[01][0-9]|2[0-3]", - cardinality: 2, - prevalidator: [{ validator: "[0-2]", cardinality: 1 }] - }, - 's': { //seconds || minutes - validator: "[0-5][0-9]", - cardinality: 2, - prevalidator: [{ validator: "[0-5]", cardinality: 1 }] - }, - 'd': { //basic day - validator: "0[1-9]|[12][0-9]|3[01]", - cardinality: 2, - prevalidator: [{ validator: "[0-3]", cardinality: 1 }] - }, - 'm': { //basic month - validator: "0[1-9]|1[012]", - cardinality: 2, - prevalidator: [{ validator: "[01]", cardinality: 1 }] - }, - 'y': { //basic year - validator: "(19|20)\\d{2}", - cardinality: 4, - prevalidator: [ - { validator: "[12]", cardinality: 1 }, - { validator: "(19|20)", cardinality: 2 }, - { validator: "(19|20)\\d", cardinality: 3 } - ] - } - }); - $.extend($.inputmask.defaults.aliases, { - 'dd/mm/yyyy': { - mask: "1/2/y", - placeholder: "dd/mm/yyyy", - regex: { - val1pre: new RegExp("[0-3]"), //daypre - val1: new RegExp("0[1-9]|[12][0-9]|3[01]"), //day - val2pre: function (separator) { var escapedSeparator = $.inputmask.escapeRegex.call(this, separator); return new RegExp("((0[1-9]|[12][0-9]|3[01])" + escapedSeparator + "[01])"); }, //monthpre - val2: function (separator) { var escapedSeparator = $.inputmask.escapeRegex.call(this, separator); return new RegExp("((0[1-9]|[12][0-9])" + escapedSeparator + "(0[1-9]|1[012]))|(30" + escapedSeparator + "(0[13-9]|1[012]))|(31" + escapedSeparator + "(0[13578]|1[02]))"); }//month - }, - leapday: "29/02/", - separator: '/', - yearrange: { minyear: 1900, maxyear: 2099 }, - isInYearRange: function (chrs, minyear, maxyear) { - var enteredyear = parseInt(chrs.concat(minyear.toString().slice(chrs.length))); - var enteredyear2 = parseInt(chrs.concat(maxyear.toString().slice(chrs.length))); - return (enteredyear != NaN ? minyear <= enteredyear && enteredyear <= maxyear : false) || - (enteredyear2 != NaN ? minyear <= enteredyear2 && enteredyear2 <= maxyear : false); - }, - determinebaseyear: function (minyear, maxyear, hint) { - var currentyear = (new Date()).getFullYear(); - if (minyear > currentyear) return minyear; - if (maxyear < currentyear) { - var maxYearPrefix = maxyear.toString().slice(0, 2); - var maxYearPostfix = maxyear.toString().slice(2, 4); - while (maxyear < maxYearPrefix + hint) { - maxYearPrefix--; - } - var maxxYear = maxYearPrefix + maxYearPostfix; - return minyear > maxxYear ? minyear : maxxYear; - } - - return currentyear; - }, - onKeyUp: function (e, buffer, opts) { - var $input = $(this); - if (e.ctrlKey && e.keyCode == opts.keyCode.RIGHT) { - var today = new Date(); - $input.val(today.getDate().toString() + (today.getMonth() + 1).toString() + today.getFullYear().toString()); - } - }, - definitions: { - '1': { //val1 ~ day or month - validator: function (chrs, buffer, pos, strict, opts) { - var isValid = opts.regex.val1.test(chrs); - if (!strict && !isValid) { - if (chrs.charAt(1) == opts.separator || "-./".indexOf(chrs.charAt(1)) != -1) { - isValid = opts.regex.val1.test("0" + chrs.charAt(0)); - if (isValid) { - buffer[pos - 1] = "0"; - return { "pos": pos, "c": chrs.charAt(0) }; - } - } - } - return isValid; - }, - cardinality: 2, - prevalidator: [{ - validator: function (chrs, buffer, pos, strict, opts) { - var isValid = opts.regex.val1pre.test(chrs); - if (!strict && !isValid) { - isValid = opts.regex.val1.test("0" + chrs); - if (isValid) { - buffer[pos] = "0"; - pos++; - return { "pos": pos }; - } - } - return isValid; - }, cardinality: 1 - }] - }, - '2': { //val2 ~ day or month - validator: function (chrs, buffer, pos, strict, opts) { - var frontValue = buffer.join('').substr(0, 3); - if (frontValue.indexOf(opts.placeholder[0]) != -1) frontValue = "01" + opts.separator; - var isValid = opts.regex.val2(opts.separator).test(frontValue + chrs); - if (!strict && !isValid) { - if (chrs.charAt(1) == opts.separator || "-./".indexOf(chrs.charAt(1)) != -1) { - isValid = opts.regex.val2(opts.separator).test(frontValue + "0" + chrs.charAt(0)); - if (isValid) { - buffer[pos - 1] = "0"; - return { "pos": pos, "c": chrs.charAt(0) }; - } - } - } - return isValid; - }, - cardinality: 2, - prevalidator: [{ - validator: function (chrs, buffer, pos, strict, opts) { - var frontValue = buffer.join('').substr(0, 3); - if (frontValue.indexOf(opts.placeholder[0]) != -1) frontValue = "01" + opts.separator; - var isValid = opts.regex.val2pre(opts.separator).test(frontValue + chrs); - if (!strict && !isValid) { - isValid = opts.regex.val2(opts.separator).test(frontValue + "0" + chrs); - if (isValid) { - buffer[pos] = "0"; - pos++; - return { "pos": pos }; - } - } - return isValid; - }, cardinality: 1 - }] - }, - 'y': { //year - validator: function (chrs, buffer, pos, strict, opts) { - if (opts.isInYearRange(chrs, opts.yearrange.minyear, opts.yearrange.maxyear)) { - var dayMonthValue = buffer.join('').substr(0, 6); - if (dayMonthValue != opts.leapday) - return true; - else { - var year = parseInt(chrs, 10);//detect leap year - if (year % 4 === 0) - if (year % 100 === 0) - if (year % 400 === 0) - return true; - else return false; - else return true; - else return false; - } - } else return false; - }, - cardinality: 4, - prevalidator: [ - { - validator: function (chrs, buffer, pos, strict, opts) { - var isValid = opts.isInYearRange(chrs, opts.yearrange.minyear, opts.yearrange.maxyear); - if (!strict && !isValid) { - var yearPrefix = opts.determinebaseyear(opts.yearrange.minyear, opts.yearrange.maxyear, chrs + "0").toString().slice(0, 1); - - isValid = opts.isInYearRange(yearPrefix + chrs, opts.yearrange.minyear, opts.yearrange.maxyear); - if (isValid) { - buffer[pos++] = yearPrefix[0]; - return { "pos": pos }; - } - yearPrefix = opts.determinebaseyear(opts.yearrange.minyear, opts.yearrange.maxyear, chrs + "0").toString().slice(0, 2); - - isValid = opts.isInYearRange(yearPrefix + chrs, opts.yearrange.minyear, opts.yearrange.maxyear); - if (isValid) { - buffer[pos++] = yearPrefix[0]; - buffer[pos++] = yearPrefix[1]; - return { "pos": pos }; - } - } - return isValid; - }, - cardinality: 1 - }, - { - validator: function (chrs, buffer, pos, strict, opts) { - var isValid = opts.isInYearRange(chrs, opts.yearrange.minyear, opts.yearrange.maxyear); - if (!strict && !isValid) { - var yearPrefix = opts.determinebaseyear(opts.yearrange.minyear, opts.yearrange.maxyear, chrs).toString().slice(0, 2); - - isValid = opts.isInYearRange(chrs[0] + yearPrefix[1] + chrs[1], opts.yearrange.minyear, opts.yearrange.maxyear); - if (isValid) { - buffer[pos++] = yearPrefix[1]; - return { "pos": pos }; - } - - yearPrefix = opts.determinebaseyear(opts.yearrange.minyear, opts.yearrange.maxyear, chrs).toString().slice(0, 2); - if (opts.isInYearRange(yearPrefix + chrs, opts.yearrange.minyear, opts.yearrange.maxyear)) { - var dayMonthValue = buffer.join('').substr(0, 6); - if (dayMonthValue != opts.leapday) - isValid = true; - else { - var year = parseInt(chrs, 10);//detect leap year - if (year % 4 === 0) - if (year % 100 === 0) - if (year % 400 === 0) - isValid = true; - else isValid = false; - else isValid = true; - else isValid = false; - } - } else isValid = false; - if (isValid) { - buffer[pos - 1] = yearPrefix[0]; - buffer[pos++] = yearPrefix[1]; - buffer[pos++] = chrs[0]; - return { "pos": pos }; - } - } - return isValid; - }, cardinality: 2 - }, - { - validator: function (chrs, buffer, pos, strict, opts) { - return opts.isInYearRange(chrs, opts.yearrange.minyear, opts.yearrange.maxyear); - }, cardinality: 3 - } - ] - } - }, - insertMode: false, - autoUnmask: false - }, - 'mm/dd/yyyy': { - placeholder: "mm/dd/yyyy", - alias: "dd/mm/yyyy", //reuse functionality of dd/mm/yyyy alias - regex: { - val2pre: function (separator) { var escapedSeparator = $.inputmask.escapeRegex.call(this, separator); return new RegExp("((0[13-9]|1[012])" + escapedSeparator + "[0-3])|(02" + escapedSeparator + "[0-2])"); }, //daypre - val2: function (separator) { var escapedSeparator = $.inputmask.escapeRegex.call(this, separator); return new RegExp("((0[1-9]|1[012])" + escapedSeparator + "(0[1-9]|[12][0-9]))|((0[13-9]|1[012])" + escapedSeparator + "30)|((0[13578]|1[02])" + escapedSeparator + "31)"); }, //day - val1pre: new RegExp("[01]"), //monthpre - val1: new RegExp("0[1-9]|1[012]") //month - }, - leapday: "02/29/", - onKeyUp: function (e, buffer, opts) { - var $input = $(this); - if (e.ctrlKey && e.keyCode == opts.keyCode.RIGHT) { - var today = new Date(); - $input.val((today.getMonth() + 1).toString() + today.getDate().toString() + today.getFullYear().toString()); - } - } - }, - 'yyyy/mm/dd': { - mask: "y/1/2", - placeholder: "yyyy/mm/dd", - alias: "mm/dd/yyyy", - leapday: "/02/29", - onKeyUp: function (e, buffer, opts) { - var $input = $(this); - if (e.ctrlKey && e.keyCode == opts.keyCode.RIGHT) { - var today = new Date(); - $input.val(today.getFullYear().toString() + (today.getMonth() + 1).toString() + today.getDate().toString()); - } - }, - definitions: { - '2': { //val2 ~ day or month - validator: function (chrs, buffer, pos, strict, opts) { - var frontValue = buffer.join('').substr(5, 3); - if (frontValue.indexOf(opts.placeholder[5]) != -1) frontValue = "01" + opts.separator; - var isValid = opts.regex.val2(opts.separator).test(frontValue + chrs); - if (!strict && !isValid) { - if (chrs.charAt(1) == opts.separator || "-./".indexOf(chrs.charAt(1)) != -1) { - isValid = opts.regex.val2(opts.separator).test(frontValue + "0" + chrs.charAt(0)); - if (isValid) { - buffer[pos - 1] = "0"; - return { "pos": pos, "c": chrs.charAt(0) }; - } - } - } - - //check leap yeap - if (isValid) { - var dayMonthValue = buffer.join('').substr(4, 4) + chrs; - if (dayMonthValue != opts.leapday) - return true; - else { - var year = parseInt(buffer.join('').substr(0, 4), 10); //detect leap year - if (year % 4 === 0) - if (year % 100 === 0) - if (year % 400 === 0) - return true; - else return false; - else return true; - else return false; - } - } - - return isValid; - }, - cardinality: 2, - prevalidator: [{ - validator: function (chrs, buffer, pos, strict, opts) { - var frontValue = buffer.join('').substr(5, 3); - if (frontValue.indexOf(opts.placeholder[5]) != -1) frontValue = "01" + opts.separator; - var isValid = opts.regex.val2pre(opts.separator).test(frontValue + chrs); - if (!strict && !isValid) { - isValid = opts.regex.val2(opts.separator).test(frontValue + "0" + chrs); - if (isValid) { - buffer[pos] = "0"; - pos++; - return { "pos": pos }; - } - } - return isValid; - }, cardinality: 1 - }] - } - } - }, - 'dd.mm.yyyy': { - mask: "1.2.y", - placeholder: "dd.mm.yyyy", - leapday: "29.02.", - separator: '.', - alias: "dd/mm/yyyy" - }, - 'dd-mm-yyyy': { - mask: "1-2-y", - placeholder: "dd-mm-yyyy", - leapday: "29-02-", - separator: '-', - alias: "dd/mm/yyyy" - }, - 'mm.dd.yyyy': { - mask: "1.2.y", - placeholder: "mm.dd.yyyy", - leapday: "02.29.", - separator: '.', - alias: "mm/dd/yyyy" - }, - 'mm-dd-yyyy': { - mask: "1-2-y", - placeholder: "mm-dd-yyyy", - leapday: "02-29-", - separator: '-', - alias: "mm/dd/yyyy" - }, - 'yyyy.mm.dd': { - mask: "y.1.2", - placeholder: "yyyy.mm.dd", - leapday: ".02.29", - separator: '.', - alias: "yyyy/mm/dd" - }, - 'yyyy-mm-dd': { - mask: "y-1-2", - placeholder: "yyyy-mm-dd", - leapday: "-02-29", - separator: '-', - alias: "yyyy/mm/dd" - }, - 'datetime': { - mask: "1/2/y h:s", - placeholder: "dd/mm/yyyy hh:mm", - alias: "dd/mm/yyyy", - regex: { - hrspre: new RegExp("[012]"), //hours pre - hrs24: new RegExp("2[0-9]|1[3-9]"), - hrs: new RegExp("[01][0-9]|2[0-3]"), //hours - ampm: new RegExp("^[a|p|A|P][m|M]") - }, - timeseparator: ':', - hourFormat: "24", // or 12 - definitions: { - 'h': { //hours - validator: function (chrs, buffer, pos, strict, opts) { - var isValid = opts.regex.hrs.test(chrs); - if (!strict && !isValid) { - if (chrs.charAt(1) == opts.timeseparator || "-.:".indexOf(chrs.charAt(1)) != -1) { - isValid = opts.regex.hrs.test("0" + chrs.charAt(0)); - if (isValid) { - buffer[pos - 1] = "0"; - buffer[pos] = chrs.charAt(0); - pos++; - return { "pos": pos }; - } - } - } - - if (isValid && opts.hourFormat !== "24" && opts.regex.hrs24.test(chrs)) { - - var tmp = parseInt(chrs, 10); - - if (tmp == 24) { - buffer[pos + 5] = "a"; - buffer[pos + 6] = "m"; - } else { - buffer[pos + 5] = "p"; - buffer[pos + 6] = "m"; - } - - tmp = tmp - 12; - - if (tmp < 10) { - buffer[pos] = tmp.toString(); - buffer[pos - 1] = "0"; - } else { - buffer[pos] = tmp.toString().charAt(1); - buffer[pos - 1] = tmp.toString().charAt(0); - } - - return { "pos": pos, "c": buffer[pos] }; - } - - return isValid; - }, - cardinality: 2, - prevalidator: [{ - validator: function (chrs, buffer, pos, strict, opts) { - var isValid = opts.regex.hrspre.test(chrs); - if (!strict && !isValid) { - isValid = opts.regex.hrs.test("0" + chrs); - if (isValid) { - buffer[pos] = "0"; - pos++; - return { "pos": pos }; - } - } - return isValid; - }, cardinality: 1 - }] - }, - 't': { //am/pm - validator: function (chrs, buffer, pos, strict, opts) { - return opts.regex.ampm.test(chrs + "m"); - }, - casing: "lower", - cardinality: 1 - } - }, - insertMode: false, - autoUnmask: false - }, - 'datetime12': { - mask: "1/2/y h:s t\\m", - placeholder: "dd/mm/yyyy hh:mm xm", - alias: "datetime", - hourFormat: "12" - }, - 'hh:mm t': { - mask: "h:s t\\m", - placeholder: "hh:mm xm", - alias: "datetime", - hourFormat: "12" - }, - 'h:s t': { - mask: "h:s t\\m", - placeholder: "hh:mm xm", - alias: "datetime", - hourFormat: "12" - }, - 'hh:mm:ss': { - mask: "h:s:s", - autoUnmask: false - }, - 'hh:mm': { - mask: "h:s", - autoUnmask: false - }, - 'date': { - alias: "dd/mm/yyyy" // "mm/dd/yyyy" - }, - 'mm/yyyy': { - mask: "1/y", - placeholder: "mm/yyyy", - leapday: "donotuse", - separator: '/', - alias: "mm/dd/yyyy" - } - }); -})(jQuery); diff --git a/admin/plugins/input-mask/jquery.inputmask.extensions.js b/admin/plugins/input-mask/jquery.inputmask.extensions.js deleted file mode 100644 index c89f91e..0000000 --- a/admin/plugins/input-mask/jquery.inputmask.extensions.js +++ /dev/null @@ -1,122 +0,0 @@ -/* -Input Mask plugin extensions -http://github.com/RobinHerbots/jquery.inputmask -Copyright (c) 2010 - 2014 Robin Herbots -Licensed under the MIT license (http://www.opensource.org/licenses/mit-license.php) -Version: 0.0.0 - -Optional extensions on the jquery.inputmask base -*/ -(function ($) { - //extra definitions - $.extend($.inputmask.defaults.definitions, { - 'A': { - validator: "[A-Za-z]", - cardinality: 1, - casing: "upper" //auto uppercasing - }, - '#': { - validator: "[A-Za-z\u0410-\u044F\u0401\u04510-9]", - cardinality: 1, - casing: "upper" - } - }); - $.extend($.inputmask.defaults.aliases, { - 'url': { - mask: "ir", - placeholder: "", - separator: "", - defaultPrefix: "http://", - regex: { - urlpre1: new RegExp("[fh]"), - urlpre2: new RegExp("(ft|ht)"), - urlpre3: new RegExp("(ftp|htt)"), - urlpre4: new RegExp("(ftp:|http|ftps)"), - urlpre5: new RegExp("(ftp:/|ftps:|http:|https)"), - urlpre6: new RegExp("(ftp://|ftps:/|http:/|https:)"), - urlpre7: new RegExp("(ftp://|ftps://|http://|https:/)"), - urlpre8: new RegExp("(ftp://|ftps://|http://|https://)") - }, - definitions: { - 'i': { - validator: function (chrs, buffer, pos, strict, opts) { - return true; - }, - cardinality: 8, - prevalidator: (function () { - var result = [], prefixLimit = 8; - for (var i = 0; i < prefixLimit; i++) { - result[i] = (function () { - var j = i; - return { - validator: function (chrs, buffer, pos, strict, opts) { - if (opts.regex["urlpre" + (j + 1)]) { - var tmp = chrs, k; - if (((j + 1) - chrs.length) > 0) { - tmp = buffer.join('').substring(0, ((j + 1) - chrs.length)) + "" + tmp; - } - var isValid = opts.regex["urlpre" + (j + 1)].test(tmp); - if (!strict && !isValid) { - pos = pos - j; - for (k = 0; k < opts.defaultPrefix.length; k++) { - buffer[pos] = opts.defaultPrefix[k]; pos++; - } - for (k = 0; k < tmp.length - 1; k++) { - buffer[pos] = tmp[k]; pos++; - } - return { "pos": pos }; - } - return isValid; - } else { - return false; - } - }, cardinality: j - }; - })(); - } - return result; - })() - }, - "r": { - validator: ".", - cardinality: 50 - } - }, - insertMode: false, - autoUnmask: false - }, - "ip": { //ip-address mask - mask: ["[[x]y]z.[[x]y]z.[[x]y]z.x[yz]", "[[x]y]z.[[x]y]z.[[x]y]z.[[x]y][z]"], - definitions: { - 'x': { - validator: "[012]", - cardinality: 1, - definitionSymbol: "i" - }, - 'y': { - validator: function (chrs, buffer, pos, strict, opts) { - if (pos - 1 > -1 && buffer[pos - 1] != ".") - chrs = buffer[pos - 1] + chrs; - else chrs = "0" + chrs; - return new RegExp("2[0-5]|[01][0-9]").test(chrs); - }, - cardinality: 1, - definitionSymbol: "i" - }, - 'z': { - validator: function (chrs, buffer, pos, strict, opts) { - if (pos - 1 > -1 && buffer[pos - 1] != ".") { - chrs = buffer[pos - 1] + chrs; - if (pos - 2 > -1 && buffer[pos - 2] != ".") { - chrs = buffer[pos - 2] + chrs; - } else chrs = "0" + chrs; - } else chrs = "00" + chrs; - return new RegExp("25[0-5]|2[0-4][0-9]|[01][0-9][0-9]").test(chrs); - }, - cardinality: 1, - definitionSymbol: "i" - } - } - } - }); -})(jQuery); diff --git a/admin/plugins/input-mask/jquery.inputmask.js b/admin/plugins/input-mask/jquery.inputmask.js deleted file mode 100644 index 86cb320..0000000 --- a/admin/plugins/input-mask/jquery.inputmask.js +++ /dev/null @@ -1,1627 +0,0 @@ -/** -* @license Input Mask plugin for jquery -* http://github.com/RobinHerbots/jquery.inputmask -* Copyright (c) 2010 - 2014 Robin Herbots -* Licensed under the MIT license (http://www.opensource.org/licenses/mit-license.php) -* Version: 0.0.0 -*/ - -(function ($) { - if ($.fn.inputmask === undefined) { - //helper functions - function isInputEventSupported(eventName) { - var el = document.createElement('input'), - eventName = 'on' + eventName, - isSupported = (eventName in el); - if (!isSupported) { - el.setAttribute(eventName, 'return;'); - isSupported = typeof el[eventName] == 'function'; - } - el = null; - return isSupported; - } - function resolveAlias(aliasStr, options, opts) { - var aliasDefinition = opts.aliases[aliasStr]; - if (aliasDefinition) { - if (aliasDefinition.alias) resolveAlias(aliasDefinition.alias, undefined, opts); //alias is another alias - $.extend(true, opts, aliasDefinition); //merge alias definition in the options - $.extend(true, opts, options); //reapply extra given options - return true; - } - return false; - } - function generateMaskSets(opts) { - var ms = []; - var genmasks = []; //used to keep track of the masks that where processed, to avoid duplicates - function getMaskTemplate(mask) { - if (opts.numericInput) { - mask = mask.split('').reverse().join(''); - } - var escaped = false, outCount = 0, greedy = opts.greedy, repeat = opts.repeat; - if (repeat == "*") greedy = false; - //if (greedy == true && opts.placeholder == "") opts.placeholder = " "; - if (mask.length == 1 && greedy == false && repeat != 0) { opts.placeholder = ""; } //hide placeholder with single non-greedy mask - var singleMask = $.map(mask.split(""), function (element, index) { - var outElem = []; - if (element == opts.escapeChar) { - escaped = true; - } - else if ((element != opts.optionalmarker.start && element != opts.optionalmarker.end) || escaped) { - var maskdef = opts.definitions[element]; - if (maskdef && !escaped) { - for (var i = 0; i < maskdef.cardinality; i++) { - outElem.push(opts.placeholder.charAt((outCount + i) % opts.placeholder.length)); - } - } else { - outElem.push(element); - escaped = false; - } - outCount += outElem.length; - return outElem; - } - }); - - //allocate repetitions - var repeatedMask = singleMask.slice(); - for (var i = 1; i < repeat && greedy; i++) { - repeatedMask = repeatedMask.concat(singleMask.slice()); - } - - return { "mask": repeatedMask, "repeat": repeat, "greedy": greedy }; - } - //test definition => {fn: RegExp/function, cardinality: int, optionality: bool, newBlockMarker: bool, offset: int, casing: null/upper/lower, def: definitionSymbol} - function getTestingChain(mask) { - if (opts.numericInput) { - mask = mask.split('').reverse().join(''); - } - var isOptional = false, escaped = false; - var newBlockMarker = false; //indicates wheter the begin/ending of a block should be indicated - - return $.map(mask.split(""), function (element, index) { - var outElem = []; - - if (element == opts.escapeChar) { - escaped = true; - } else if (element == opts.optionalmarker.start && !escaped) { - isOptional = true; - newBlockMarker = true; - } - else if (element == opts.optionalmarker.end && !escaped) { - isOptional = false; - newBlockMarker = true; - } - else { - var maskdef = opts.definitions[element]; - if (maskdef && !escaped) { - var prevalidators = maskdef["prevalidator"], prevalidatorsL = prevalidators ? prevalidators.length : 0; - for (var i = 1; i < maskdef.cardinality; i++) { - var prevalidator = prevalidatorsL >= i ? prevalidators[i - 1] : [], validator = prevalidator["validator"], cardinality = prevalidator["cardinality"]; - outElem.push({ fn: validator ? typeof validator == 'string' ? new RegExp(validator) : new function () { this.test = validator; } : new RegExp("."), cardinality: cardinality ? cardinality : 1, optionality: isOptional, newBlockMarker: isOptional == true ? newBlockMarker : false, offset: 0, casing: maskdef["casing"], def: maskdef["definitionSymbol"] || element }); - if (isOptional == true) //reset newBlockMarker - newBlockMarker = false; - } - outElem.push({ fn: maskdef.validator ? typeof maskdef.validator == 'string' ? new RegExp(maskdef.validator) : new function () { this.test = maskdef.validator; } : new RegExp("."), cardinality: maskdef.cardinality, optionality: isOptional, newBlockMarker: newBlockMarker, offset: 0, casing: maskdef["casing"], def: maskdef["definitionSymbol"] || element }); - } else { - outElem.push({ fn: null, cardinality: 0, optionality: isOptional, newBlockMarker: newBlockMarker, offset: 0, casing: null, def: element }); - escaped = false; - } - //reset newBlockMarker - newBlockMarker = false; - return outElem; - } - }); - } - function markOptional(maskPart) { //needed for the clearOptionalTail functionality - return opts.optionalmarker.start + maskPart + opts.optionalmarker.end; - } - function splitFirstOptionalEndPart(maskPart) { - var optionalStartMarkers = 0, optionalEndMarkers = 0, mpl = maskPart.length; - for (var i = 0; i < mpl; i++) { - if (maskPart.charAt(i) == opts.optionalmarker.start) { - optionalStartMarkers++; - } - if (maskPart.charAt(i) == opts.optionalmarker.end) { - optionalEndMarkers++; - } - if (optionalStartMarkers > 0 && optionalStartMarkers == optionalEndMarkers) - break; - } - var maskParts = [maskPart.substring(0, i)]; - if (i < mpl) { - maskParts.push(maskPart.substring(i + 1, mpl)); - } - return maskParts; - } - function splitFirstOptionalStartPart(maskPart) { - var mpl = maskPart.length; - for (var i = 0; i < mpl; i++) { - if (maskPart.charAt(i) == opts.optionalmarker.start) { - break; - } - } - var maskParts = [maskPart.substring(0, i)]; - if (i < mpl) { - maskParts.push(maskPart.substring(i + 1, mpl)); - } - return maskParts; - } - function generateMask(maskPrefix, maskPart, metadata) { - var maskParts = splitFirstOptionalEndPart(maskPart); - var newMask, maskTemplate; - - var masks = splitFirstOptionalStartPart(maskParts[0]); - if (masks.length > 1) { - newMask = maskPrefix + masks[0] + markOptional(masks[1]) + (maskParts.length > 1 ? maskParts[1] : ""); - if ($.inArray(newMask, genmasks) == -1 && newMask != "") { - genmasks.push(newMask); - maskTemplate = getMaskTemplate(newMask); - ms.push({ - "mask": newMask, - "_buffer": maskTemplate["mask"], - "buffer": maskTemplate["mask"].slice(), - "tests": getTestingChain(newMask), - "lastValidPosition": -1, - "greedy": maskTemplate["greedy"], - "repeat": maskTemplate["repeat"], - "metadata": metadata - }); - } - newMask = maskPrefix + masks[0] + (maskParts.length > 1 ? maskParts[1] : ""); - if ($.inArray(newMask, genmasks) == -1 && newMask != "") { - genmasks.push(newMask); - maskTemplate = getMaskTemplate(newMask); - ms.push({ - "mask": newMask, - "_buffer": maskTemplate["mask"], - "buffer": maskTemplate["mask"].slice(), - "tests": getTestingChain(newMask), - "lastValidPosition": -1, - "greedy": maskTemplate["greedy"], - "repeat": maskTemplate["repeat"], - "metadata": metadata - }); - } - if (splitFirstOptionalStartPart(masks[1]).length > 1) { //optional contains another optional - generateMask(maskPrefix + masks[0], masks[1] + maskParts[1], metadata); - } - if (maskParts.length > 1 && splitFirstOptionalStartPart(maskParts[1]).length > 1) { - generateMask(maskPrefix + masks[0] + markOptional(masks[1]), maskParts[1], metadata); - generateMask(maskPrefix + masks[0], maskParts[1], metadata); - } - } - else { - newMask = maskPrefix + maskParts; - if ($.inArray(newMask, genmasks) == -1 && newMask != "") { - genmasks.push(newMask); - maskTemplate = getMaskTemplate(newMask); - ms.push({ - "mask": newMask, - "_buffer": maskTemplate["mask"], - "buffer": maskTemplate["mask"].slice(), - "tests": getTestingChain(newMask), - "lastValidPosition": -1, - "greedy": maskTemplate["greedy"], - "repeat": maskTemplate["repeat"], - "metadata": metadata - }); - } - } - - } - - if ($.isFunction(opts.mask)) { //allow mask to be a preprocessing fn - should return a valid mask - opts.mask = opts.mask.call(this, opts); - } - if ($.isArray(opts.mask)) { - $.each(opts.mask, function (ndx, msk) { - if (msk["mask"] != undefined) { - generateMask("", msk["mask"].toString(), msk); - } else - generateMask("", msk.toString()); - }); - } else generateMask("", opts.mask.toString()); - - return opts.greedy ? ms : ms.sort(function (a, b) { return a["mask"].length - b["mask"].length; }); - } - - var msie10 = navigator.userAgent.match(new RegExp("msie 10", "i")) !== null, - iphone = navigator.userAgent.match(new RegExp("iphone", "i")) !== null, - android = navigator.userAgent.match(new RegExp("android.*safari.*", "i")) !== null, - androidchrome = navigator.userAgent.match(new RegExp("android.*chrome.*", "i")) !== null, - pasteEvent = isInputEventSupported('paste') ? 'paste' : isInputEventSupported('input') ? 'input' : "propertychange"; - - - //masking scope - //actionObj definition see below - function maskScope(masksets, activeMasksetIndex, opts, actionObj) { - var isRTL = false, - valueOnFocus = getActiveBuffer().join(''), - $el, chromeValueOnInput, - skipKeyPressEvent = false, //Safari 5.1.x - modal dialog fires keypress twice workaround - skipInputEvent = false, //skip when triggered from within inputmask - ignorable = false; - - - //maskset helperfunctions - - function getActiveMaskSet() { - return masksets[activeMasksetIndex]; - } - - function getActiveTests() { - return getActiveMaskSet()['tests']; - } - - function getActiveBufferTemplate() { - return getActiveMaskSet()['_buffer']; - } - - function getActiveBuffer() { - return getActiveMaskSet()['buffer']; - } - - function isValid(pos, c, strict) { //strict true ~ no correction or autofill - strict = strict === true; //always set a value to strict to prevent possible strange behavior in the extensions - - function _isValid(position, activeMaskset, c, strict) { - var testPos = determineTestPosition(position), loopend = c ? 1 : 0, chrs = '', buffer = activeMaskset["buffer"]; - for (var i = activeMaskset['tests'][testPos].cardinality; i > loopend; i--) { - chrs += getBufferElement(buffer, testPos - (i - 1)); - } - - if (c) { - chrs += c; - } - - //return is false or a json object => { pos: ??, c: ??} or true - return activeMaskset['tests'][testPos].fn != null ? - activeMaskset['tests'][testPos].fn.test(chrs, buffer, position, strict, opts) - : (c == getBufferElement(activeMaskset['_buffer'], position, true) || c == opts.skipOptionalPartCharacter) ? - { "refresh": true, c: getBufferElement(activeMaskset['_buffer'], position, true), pos: position } - : false; - } - - function PostProcessResults(maskForwards, results) { - var hasValidActual = false; - $.each(results, function (ndx, rslt) { - hasValidActual = $.inArray(rslt["activeMasksetIndex"], maskForwards) == -1 && rslt["result"] !== false; - if (hasValidActual) return false; - }); - if (hasValidActual) { //strip maskforwards - results = $.map(results, function (rslt, ndx) { - if ($.inArray(rslt["activeMasksetIndex"], maskForwards) == -1) { - return rslt; - } else { - masksets[rslt["activeMasksetIndex"]]["lastValidPosition"] = actualLVP; - } - }); - } else { //keep maskforwards with the least forward - var lowestPos = -1, lowestIndex = -1, rsltValid; - $.each(results, function (ndx, rslt) { - if ($.inArray(rslt["activeMasksetIndex"], maskForwards) != -1 && rslt["result"] !== false & (lowestPos == -1 || lowestPos > rslt["result"]["pos"])) { - lowestPos = rslt["result"]["pos"]; - lowestIndex = rslt["activeMasksetIndex"]; - } - }); - results = $.map(results, function (rslt, ndx) { - if ($.inArray(rslt["activeMasksetIndex"], maskForwards) != -1) { - if (rslt["result"]["pos"] == lowestPos) { - return rslt; - } else if (rslt["result"] !== false) { - for (var i = pos; i < lowestPos; i++) { - rsltValid = _isValid(i, masksets[rslt["activeMasksetIndex"]], masksets[lowestIndex]["buffer"][i], true); - if (rsltValid === false) { - masksets[rslt["activeMasksetIndex"]]["lastValidPosition"] = lowestPos - 1; - break; - } else { - setBufferElement(masksets[rslt["activeMasksetIndex"]]["buffer"], i, masksets[lowestIndex]["buffer"][i], true); - masksets[rslt["activeMasksetIndex"]]["lastValidPosition"] = i; - } - } - //also check check for the lowestpos with the new input - rsltValid = _isValid(lowestPos, masksets[rslt["activeMasksetIndex"]], c, true); - if (rsltValid !== false) { - setBufferElement(masksets[rslt["activeMasksetIndex"]]["buffer"], lowestPos, c, true); - masksets[rslt["activeMasksetIndex"]]["lastValidPosition"] = lowestPos; - } - //console.log("ndx " + rslt["activeMasksetIndex"] + " validate " + masksets[rslt["activeMasksetIndex"]]["buffer"].join('') + " lv " + masksets[rslt["activeMasksetIndex"]]['lastValidPosition']); - return rslt; - } - } - }); - } - return results; - } - - if (strict) { - var result = _isValid(pos, getActiveMaskSet(), c, strict); //only check validity in current mask when validating strict - if (result === true) { - result = { "pos": pos }; //always take a possible corrected maskposition into account - } - return result; - } - - var results = [], result = false, currentActiveMasksetIndex = activeMasksetIndex, - actualBuffer = getActiveBuffer().slice(), actualLVP = getActiveMaskSet()["lastValidPosition"], - actualPrevious = seekPrevious(pos), - maskForwards = []; - $.each(masksets, function (index, value) { - if (typeof (value) == "object") { - activeMasksetIndex = index; - - var maskPos = pos; - var lvp = getActiveMaskSet()['lastValidPosition'], - rsltValid; - if (lvp == actualLVP) { - if ((maskPos - actualLVP) > 1) { - for (var i = lvp == -1 ? 0 : lvp; i < maskPos; i++) { - rsltValid = _isValid(i, getActiveMaskSet(), actualBuffer[i], true); - if (rsltValid === false) { - break; - } else { - setBufferElement(getActiveBuffer(), i, actualBuffer[i], true); - if (rsltValid === true) { - rsltValid = { "pos": i }; //always take a possible corrected maskposition into account - } - var newValidPosition = rsltValid.pos || i; - if (getActiveMaskSet()['lastValidPosition'] < newValidPosition) - getActiveMaskSet()['lastValidPosition'] = newValidPosition; //set new position from isValid - } - } - } - //does the input match on a further position? - if (!isMask(maskPos) && !_isValid(maskPos, getActiveMaskSet(), c, strict)) { - var maxForward = seekNext(maskPos) - maskPos; - for (var fw = 0; fw < maxForward; fw++) { - if (_isValid(++maskPos, getActiveMaskSet(), c, strict) !== false) - break; - } - maskForwards.push(activeMasksetIndex); - //console.log('maskforward ' + activeMasksetIndex + " pos " + pos + " maskPos " + maskPos); - } - } - - if (getActiveMaskSet()['lastValidPosition'] >= actualLVP || activeMasksetIndex == currentActiveMasksetIndex) { - if (maskPos >= 0 && maskPos < getMaskLength()) { - result = _isValid(maskPos, getActiveMaskSet(), c, strict); - if (result !== false) { - if (result === true) { - result = { "pos": maskPos }; //always take a possible corrected maskposition into account - } - var newValidPosition = result.pos || maskPos; - if (getActiveMaskSet()['lastValidPosition'] < newValidPosition) - getActiveMaskSet()['lastValidPosition'] = newValidPosition; //set new position from isValid - } - //console.log("pos " + pos + " ndx " + activeMasksetIndex + " validate " + getActiveBuffer().join('') + " lv " + getActiveMaskSet()['lastValidPosition']); - results.push({ "activeMasksetIndex": index, "result": result }); - } - } - } - }); - activeMasksetIndex = currentActiveMasksetIndex; //reset activeMasksetIndex - - return PostProcessResults(maskForwards, results); //return results of the multiple mask validations - } - - function determineActiveMasksetIndex() { - var currentMasksetIndex = activeMasksetIndex, - highestValid = { "activeMasksetIndex": 0, "lastValidPosition": -1, "next": -1 }; - $.each(masksets, function (index, value) { - if (typeof (value) == "object") { - activeMasksetIndex = index; - if (getActiveMaskSet()['lastValidPosition'] > highestValid['lastValidPosition']) { - highestValid["activeMasksetIndex"] = index; - highestValid["lastValidPosition"] = getActiveMaskSet()['lastValidPosition']; - highestValid["next"] = seekNext(getActiveMaskSet()['lastValidPosition']); - } else if (getActiveMaskSet()['lastValidPosition'] == highestValid['lastValidPosition'] && - (highestValid['next'] == -1 || highestValid['next'] > seekNext(getActiveMaskSet()['lastValidPosition']))) { - highestValid["activeMasksetIndex"] = index; - highestValid["lastValidPosition"] = getActiveMaskSet()['lastValidPosition']; - highestValid["next"] = seekNext(getActiveMaskSet()['lastValidPosition']); - } - } - }); - - activeMasksetIndex = highestValid["lastValidPosition"] != -1 && masksets[currentMasksetIndex]["lastValidPosition"] == highestValid["lastValidPosition"] ? currentMasksetIndex : highestValid["activeMasksetIndex"]; - if (currentMasksetIndex != activeMasksetIndex) { - clearBuffer(getActiveBuffer(), seekNext(highestValid["lastValidPosition"]), getMaskLength()); - getActiveMaskSet()["writeOutBuffer"] = true; - } - $el.data('_inputmask')['activeMasksetIndex'] = activeMasksetIndex; //store the activeMasksetIndex - } - - function isMask(pos) { - var testPos = determineTestPosition(pos); - var test = getActiveTests()[testPos]; - - return test != undefined ? test.fn : false; - } - - function determineTestPosition(pos) { - return pos % getActiveTests().length; - } - - function getMaskLength() { - return opts.getMaskLength(getActiveBufferTemplate(), getActiveMaskSet()['greedy'], getActiveMaskSet()['repeat'], getActiveBuffer(), opts); - } - - //pos: from position - - function seekNext(pos) { - var maskL = getMaskLength(); - if (pos >= maskL) return maskL; - var position = pos; - while (++position < maskL && !isMask(position)) { - } - return position; - } - - //pos: from position - - function seekPrevious(pos) { - var position = pos; - if (position <= 0) return 0; - - while (--position > 0 && !isMask(position)) { - } - return position; - } - - function setBufferElement(buffer, position, element, autoPrepare) { - if (autoPrepare) position = prepareBuffer(buffer, position); - - var test = getActiveTests()[determineTestPosition(position)]; - var elem = element; - if (elem != undefined && test != undefined) { - switch (test.casing) { - case "upper": - elem = element.toUpperCase(); - break; - case "lower": - elem = element.toLowerCase(); - break; - } - } - - buffer[position] = elem; - } - - function getBufferElement(buffer, position, autoPrepare) { - if (autoPrepare) position = prepareBuffer(buffer, position); - return buffer[position]; - } - - //needed to handle the non-greedy mask repetitions - - function prepareBuffer(buffer, position) { - var j; - while (buffer[position] == undefined && buffer.length < getMaskLength()) { - j = 0; - while (getActiveBufferTemplate()[j] !== undefined) { //add a new buffer - buffer.push(getActiveBufferTemplate()[j++]); - } - } - - return position; - } - - function writeBuffer(input, buffer, caretPos) { - input._valueSet(buffer.join('')); - if (caretPos != undefined) { - caret(input, caretPos); - } - } - - function clearBuffer(buffer, start, end, stripNomasks) { - for (var i = start, maskL = getMaskLength() ; i < end && i < maskL; i++) { - if (stripNomasks === true) { - if (!isMask(i)) - setBufferElement(buffer, i, ""); - } else - setBufferElement(buffer, i, getBufferElement(getActiveBufferTemplate().slice(), i, true)); - } - } - - function setReTargetPlaceHolder(buffer, pos) { - var testPos = determineTestPosition(pos); - setBufferElement(buffer, pos, getBufferElement(getActiveBufferTemplate(), testPos)); - } - - function getPlaceHolder(pos) { - return opts.placeholder.charAt(pos % opts.placeholder.length); - } - - function checkVal(input, writeOut, strict, nptvl, intelliCheck) { - var inputValue = nptvl != undefined ? nptvl.slice() : truncateInput(input._valueGet()).split(''); - - $.each(masksets, function (ndx, ms) { - if (typeof (ms) == "object") { - ms["buffer"] = ms["_buffer"].slice(); - ms["lastValidPosition"] = -1; - ms["p"] = -1; - } - }); - if (strict !== true) activeMasksetIndex = 0; - if (writeOut) input._valueSet(""); //initial clear - var ml = getMaskLength(); - $.each(inputValue, function (ndx, charCode) { - if (intelliCheck === true) { - var p = getActiveMaskSet()["p"], lvp = p == -1 ? p : seekPrevious(p), - pos = lvp == -1 ? ndx : seekNext(lvp); - if ($.inArray(charCode, getActiveBufferTemplate().slice(lvp + 1, pos)) == -1) { - keypressEvent.call(input, undefined, true, charCode.charCodeAt(0), writeOut, strict, ndx); - } - } else { - keypressEvent.call(input, undefined, true, charCode.charCodeAt(0), writeOut, strict, ndx); - } - }); - - if (strict === true && getActiveMaskSet()["p"] != -1) { - getActiveMaskSet()["lastValidPosition"] = seekPrevious(getActiveMaskSet()["p"]); - } - } - - function escapeRegex(str) { - return $.inputmask.escapeRegex.call(this, str); - } - - function truncateInput(inputValue) { - return inputValue.replace(new RegExp("(" + escapeRegex(getActiveBufferTemplate().join('')) + ")*$"), ""); - } - - function clearOptionalTail(input) { - var buffer = getActiveBuffer(), tmpBuffer = buffer.slice(), testPos, pos; - for (var pos = tmpBuffer.length - 1; pos >= 0; pos--) { - var testPos = determineTestPosition(pos); - if (getActiveTests()[testPos].optionality) { - if (!isMask(pos) || !isValid(pos, buffer[pos], true)) - tmpBuffer.pop(); - else break; - } else break; - } - writeBuffer(input, tmpBuffer); - } - - function unmaskedvalue($input, skipDatepickerCheck) { - if (getActiveTests() && (skipDatepickerCheck === true || !$input.hasClass('hasDatepicker'))) { - //checkVal(input, false, true); - var umValue = $.map(getActiveBuffer(), function (element, index) { - return isMask(index) && isValid(index, element, true) ? element : null; - }); - var unmaskedValue = (isRTL ? umValue.reverse() : umValue).join(''); - return opts.onUnMask != undefined ? opts.onUnMask.call(this, getActiveBuffer().join(''), unmaskedValue) : unmaskedValue; - } else { - return $input[0]._valueGet(); - } - } - - function TranslatePosition(pos) { - if (isRTL && typeof pos == 'number' && (!opts.greedy || opts.placeholder != "")) { - var bffrLght = getActiveBuffer().length; - pos = bffrLght - pos; - } - return pos; - } - - function caret(input, begin, end) { - var npt = input.jquery && input.length > 0 ? input[0] : input, range; - if (typeof begin == 'number') { - begin = TranslatePosition(begin); - end = TranslatePosition(end); - if (!$(input).is(':visible')) { - return; - } - end = (typeof end == 'number') ? end : begin; - npt.scrollLeft = npt.scrollWidth; - if (opts.insertMode == false && begin == end) end++; //set visualization for insert/overwrite mode - if (npt.setSelectionRange) { - npt.selectionStart = begin; - npt.selectionEnd = android ? begin : end; - - } else if (npt.createTextRange) { - range = npt.createTextRange(); - range.collapse(true); - range.moveEnd('character', end); - range.moveStart('character', begin); - range.select(); - } - } else { - if (!$(input).is(':visible')) { - return { "begin": 0, "end": 0 }; - } - if (npt.setSelectionRange) { - begin = npt.selectionStart; - end = npt.selectionEnd; - } else if (document.selection && document.selection.createRange) { - range = document.selection.createRange(); - begin = 0 - range.duplicate().moveStart('character', -100000); - end = begin + range.text.length; - } - begin = TranslatePosition(begin); - end = TranslatePosition(end); - return { "begin": begin, "end": end }; - } - } - - function isComplete(buffer) { //return true / false / undefined (repeat *) - if (opts.repeat == "*") return undefined; - var complete = false, highestValidPosition = 0, currentActiveMasksetIndex = activeMasksetIndex; - $.each(masksets, function (ndx, ms) { - if (typeof (ms) == "object") { - activeMasksetIndex = ndx; - var aml = seekPrevious(getMaskLength()); - if (ms["lastValidPosition"] >= highestValidPosition && ms["lastValidPosition"] == aml) { - var msComplete = true; - for (var i = 0; i <= aml; i++) { - var mask = isMask(i), testPos = determineTestPosition(i); - if ((mask && (buffer[i] == undefined || buffer[i] == getPlaceHolder(i))) || (!mask && buffer[i] != getActiveBufferTemplate()[testPos])) { - msComplete = false; - break; - } - } - complete = complete || msComplete; - if (complete) //break loop - return false; - } - highestValidPosition = ms["lastValidPosition"]; - } - }); - activeMasksetIndex = currentActiveMasksetIndex; //reset activeMaskset - return complete; - } - - function isSelection(begin, end) { - return isRTL ? (begin - end) > 1 || ((begin - end) == 1 && opts.insertMode) : - (end - begin) > 1 || ((end - begin) == 1 && opts.insertMode); - } - - - //private functions - function installEventRuler(npt) { - var events = $._data(npt).events; - - $.each(events, function (eventType, eventHandlers) { - $.each(eventHandlers, function (ndx, eventHandler) { - if (eventHandler.namespace == "inputmask") { - if (eventHandler.type != "setvalue") { - var handler = eventHandler.handler; - eventHandler.handler = function (e) { - if (this.readOnly || this.disabled) - e.preventDefault; - else - return handler.apply(this, arguments); - }; - } - } - }); - }); - } - - function patchValueProperty(npt) { - var valueProperty; - if (Object.getOwnPropertyDescriptor) - valueProperty = Object.getOwnPropertyDescriptor(npt, "value"); - if (valueProperty && valueProperty.get) { - if (!npt._valueGet) { - var valueGet = valueProperty.get; - var valueSet = valueProperty.set; - npt._valueGet = function () { - return isRTL ? valueGet.call(this).split('').reverse().join('') : valueGet.call(this); - }; - npt._valueSet = function (value) { - valueSet.call(this, isRTL ? value.split('').reverse().join('') : value); - }; - - Object.defineProperty(npt, "value", { - get: function () { - var $self = $(this), inputData = $(this).data('_inputmask'), masksets = inputData['masksets'], - activeMasksetIndex = inputData['activeMasksetIndex']; - return inputData && inputData['opts'].autoUnmask ? $self.inputmask('unmaskedvalue') : valueGet.call(this) != masksets[activeMasksetIndex]['_buffer'].join('') ? valueGet.call(this) : ''; - }, - set: function (value) { - valueSet.call(this, value); - $(this).triggerHandler('setvalue.inputmask'); - } - }); - } - } else if (document.__lookupGetter__ && npt.__lookupGetter__("value")) { - if (!npt._valueGet) { - var valueGet = npt.__lookupGetter__("value"); - var valueSet = npt.__lookupSetter__("value"); - npt._valueGet = function () { - return isRTL ? valueGet.call(this).split('').reverse().join('') : valueGet.call(this); - }; - npt._valueSet = function (value) { - valueSet.call(this, isRTL ? value.split('').reverse().join('') : value); - }; - - npt.__defineGetter__("value", function () { - var $self = $(this), inputData = $(this).data('_inputmask'), masksets = inputData['masksets'], - activeMasksetIndex = inputData['activeMasksetIndex']; - return inputData && inputData['opts'].autoUnmask ? $self.inputmask('unmaskedvalue') : valueGet.call(this) != masksets[activeMasksetIndex]['_buffer'].join('') ? valueGet.call(this) : ''; - }); - npt.__defineSetter__("value", function (value) { - valueSet.call(this, value); - $(this).triggerHandler('setvalue.inputmask'); - }); - } - } else { - if (!npt._valueGet) { - npt._valueGet = function () { return isRTL ? this.value.split('').reverse().join('') : this.value; }; - npt._valueSet = function (value) { this.value = isRTL ? value.split('').reverse().join('') : value; }; - } - if ($.valHooks.text == undefined || $.valHooks.text.inputmaskpatch != true) { - var valueGet = $.valHooks.text && $.valHooks.text.get ? $.valHooks.text.get : function (elem) { return elem.value; }; - var valueSet = $.valHooks.text && $.valHooks.text.set ? $.valHooks.text.set : function (elem, value) { - elem.value = value; - return elem; - }; - - jQuery.extend($.valHooks, { - text: { - get: function (elem) { - var $elem = $(elem); - if ($elem.data('_inputmask')) { - if ($elem.data('_inputmask')['opts'].autoUnmask) - return $elem.inputmask('unmaskedvalue'); - else { - var result = valueGet(elem), - inputData = $elem.data('_inputmask'), masksets = inputData['masksets'], - activeMasksetIndex = inputData['activeMasksetIndex']; - return result != masksets[activeMasksetIndex]['_buffer'].join('') ? result : ''; - } - } else return valueGet(elem); - }, - set: function (elem, value) { - var $elem = $(elem); - var result = valueSet(elem, value); - if ($elem.data('_inputmask')) $elem.triggerHandler('setvalue.inputmask'); - return result; - }, - inputmaskpatch: true - } - }); - } - } - } - - //shift chars to left from start to end and put c at end position if defined - - function shiftL(start, end, c, maskJumps) { - var buffer = getActiveBuffer(); - if (maskJumps !== false) //jumping over nonmask position - while (!isMask(start) && start - 1 >= 0) start--; - for (var i = start; i < end && i < getMaskLength() ; i++) { - if (isMask(i)) { - setReTargetPlaceHolder(buffer, i); - var j = seekNext(i); - var p = getBufferElement(buffer, j); - if (p != getPlaceHolder(j)) { - if (j < getMaskLength() && isValid(i, p, true) !== false && getActiveTests()[determineTestPosition(i)].def == getActiveTests()[determineTestPosition(j)].def) { - setBufferElement(buffer, i, p, true); - } else { - if (isMask(i)) - break; - } - } - } else { - setReTargetPlaceHolder(buffer, i); - } - } - if (c != undefined) - setBufferElement(buffer, seekPrevious(end), c); - - if (getActiveMaskSet()["greedy"] == false) { - var trbuffer = truncateInput(buffer.join('')).split(''); - buffer.length = trbuffer.length; - for (var i = 0, bl = buffer.length; i < bl; i++) { - buffer[i] = trbuffer[i]; - } - if (buffer.length == 0) getActiveMaskSet()["buffer"] = getActiveBufferTemplate().slice(); - } - return start; //return the used start position - } - - function shiftR(start, end, c) { - var buffer = getActiveBuffer(); - if (getBufferElement(buffer, start, true) != getPlaceHolder(start)) { - for (var i = seekPrevious(end) ; i > start && i >= 0; i--) { - if (isMask(i)) { - var j = seekPrevious(i); - var t = getBufferElement(buffer, j); - if (t != getPlaceHolder(j)) { - if (isValid(j, t, true) !== false && getActiveTests()[determineTestPosition(i)].def == getActiveTests()[determineTestPosition(j)].def) { - setBufferElement(buffer, i, t, true); - setReTargetPlaceHolder(buffer, j); - } //else break; - } - } else - setReTargetPlaceHolder(buffer, i); - } - } - if (c != undefined && getBufferElement(buffer, start) == getPlaceHolder(start)) - setBufferElement(buffer, start, c); - var lengthBefore = buffer.length; - if (getActiveMaskSet()["greedy"] == false) { - var trbuffer = truncateInput(buffer.join('')).split(''); - buffer.length = trbuffer.length; - for (var i = 0, bl = buffer.length; i < bl; i++) { - buffer[i] = trbuffer[i]; - } - if (buffer.length == 0) getActiveMaskSet()["buffer"] = getActiveBufferTemplate().slice(); - } - return end - (lengthBefore - buffer.length); //return new start position - } - - function HandleRemove(input, k, pos) { - if (opts.numericInput || isRTL) { - switch (k) { - case opts.keyCode.BACKSPACE: - k = opts.keyCode.DELETE; - break; - case opts.keyCode.DELETE: - k = opts.keyCode.BACKSPACE; - break; - } - if (isRTL) { - var pend = pos.end; - pos.end = pos.begin; - pos.begin = pend; - } - } - - var isSelection = true; - if (pos.begin == pos.end) { - var posBegin = k == opts.keyCode.BACKSPACE ? pos.begin - 1 : pos.begin; - if (opts.isNumeric && opts.radixPoint != "" && getActiveBuffer()[posBegin] == opts.radixPoint) { - pos.begin = (getActiveBuffer().length - 1 == posBegin) /* radixPoint is latest? delete it */ ? pos.begin : k == opts.keyCode.BACKSPACE ? posBegin : seekNext(posBegin); - pos.end = pos.begin; - } - isSelection = false; - if (k == opts.keyCode.BACKSPACE) - pos.begin--; - else if (k == opts.keyCode.DELETE) - pos.end++; - } else if (pos.end - pos.begin == 1 && !opts.insertMode) { - isSelection = false; - if (k == opts.keyCode.BACKSPACE) - pos.begin--; - } - - clearBuffer(getActiveBuffer(), pos.begin, pos.end); - - var ml = getMaskLength(); - if (opts.greedy == false) { - shiftL(pos.begin, ml, undefined, !isRTL && (k == opts.keyCode.BACKSPACE && !isSelection)); - } else { - var newpos = pos.begin; - for (var i = pos.begin; i < pos.end; i++) { //seeknext to skip placeholders at start in selection - if (isMask(i) || !isSelection) - newpos = shiftL(pos.begin, ml, undefined, !isRTL && (k == opts.keyCode.BACKSPACE && !isSelection)); - } - if (!isSelection) pos.begin = newpos; - } - var firstMaskPos = seekNext(-1); - clearBuffer(getActiveBuffer(), pos.begin, pos.end, true); - checkVal(input, false, masksets[1] == undefined || firstMaskPos >= pos.end, getActiveBuffer()); - if (getActiveMaskSet()['lastValidPosition'] < firstMaskPos) { - getActiveMaskSet()["lastValidPosition"] = -1; - getActiveMaskSet()["p"] = firstMaskPos; - } else { - getActiveMaskSet()["p"] = pos.begin; - } - } - - function keydownEvent(e) { - //Safari 5.1.x - modal dialog fires keypress twice workaround - skipKeyPressEvent = false; - var input = this, $input = $(input), k = e.keyCode, pos = caret(input); - - //backspace, delete, and escape get special treatment - if (k == opts.keyCode.BACKSPACE || k == opts.keyCode.DELETE || (iphone && k == 127) || e.ctrlKey && k == 88) { //backspace/delete - e.preventDefault(); //stop default action but allow propagation - if (k == 88) valueOnFocus = getActiveBuffer().join(''); - HandleRemove(input, k, pos); - determineActiveMasksetIndex(); - writeBuffer(input, getActiveBuffer(), getActiveMaskSet()["p"]); - if (input._valueGet() == getActiveBufferTemplate().join('')) - $input.trigger('cleared'); - - if (opts.showTooltip) { //update tooltip - $input.prop("title", getActiveMaskSet()["mask"]); - } - } else if (k == opts.keyCode.END || k == opts.keyCode.PAGE_DOWN) { //when END or PAGE_DOWN pressed set position at lastmatch - setTimeout(function () { - var caretPos = seekNext(getActiveMaskSet()["lastValidPosition"]); - if (!opts.insertMode && caretPos == getMaskLength() && !e.shiftKey) caretPos--; - caret(input, e.shiftKey ? pos.begin : caretPos, caretPos); - }, 0); - } else if ((k == opts.keyCode.HOME && !e.shiftKey) || k == opts.keyCode.PAGE_UP) { //Home or page_up - caret(input, 0, e.shiftKey ? pos.begin : 0); - } else if (k == opts.keyCode.ESCAPE || (k == 90 && e.ctrlKey)) { //escape && undo - checkVal(input, true, false, valueOnFocus.split('')); - $input.click(); - } else if (k == opts.keyCode.INSERT && !(e.shiftKey || e.ctrlKey)) { //insert - opts.insertMode = !opts.insertMode; - caret(input, !opts.insertMode && pos.begin == getMaskLength() ? pos.begin - 1 : pos.begin); - } else if (opts.insertMode == false && !e.shiftKey) { - if (k == opts.keyCode.RIGHT) { - setTimeout(function () { - var caretPos = caret(input); - caret(input, caretPos.begin); - }, 0); - } else if (k == opts.keyCode.LEFT) { - setTimeout(function () { - var caretPos = caret(input); - caret(input, caretPos.begin - 1); - }, 0); - } - } - - var currentCaretPos = caret(input); - if (opts.onKeyDown.call(this, e, getActiveBuffer(), opts) === true) //extra stuff to execute on keydown - caret(input, currentCaretPos.begin, currentCaretPos.end); - ignorable = $.inArray(k, opts.ignorables) != -1; - } - - - function keypressEvent(e, checkval, k, writeOut, strict, ndx) { - //Safari 5.1.x - modal dialog fires keypress twice workaround - if (k == undefined && skipKeyPressEvent) return false; - skipKeyPressEvent = true; - - var input = this, $input = $(input); - - e = e || window.event; - var k = checkval ? k : (e.which || e.charCode || e.keyCode); - - if (checkval !== true && (!(e.ctrlKey && e.altKey) && (e.ctrlKey || e.metaKey || ignorable))) { - return true; - } else { - if (k) { - //special treat the decimal separator - if (checkval !== true && k == 46 && e.shiftKey == false && opts.radixPoint == ",") k = 44; - - var pos, results, result, c = String.fromCharCode(k); - if (checkval) { - var pcaret = strict ? ndx : getActiveMaskSet()["lastValidPosition"] + 1; - pos = { begin: pcaret, end: pcaret }; - } else { - pos = caret(input); - } - - //should we clear a possible selection?? - var isSlctn = isSelection(pos.begin, pos.end), redetermineLVP = false, - initialIndex = activeMasksetIndex; - if (isSlctn) { - activeMasksetIndex = initialIndex; - $.each(masksets, function (ndx, lmnt) { //init undobuffer for recovery when not valid - if (typeof (lmnt) == "object") { - activeMasksetIndex = ndx; - getActiveMaskSet()["undoBuffer"] = getActiveBuffer().join(''); - } - }); - HandleRemove(input, opts.keyCode.DELETE, pos); - if (!opts.insertMode) { //preserve some space - $.each(masksets, function (ndx, lmnt) { - if (typeof (lmnt) == "object") { - activeMasksetIndex = ndx; - shiftR(pos.begin, getMaskLength()); - getActiveMaskSet()["lastValidPosition"] = seekNext(getActiveMaskSet()["lastValidPosition"]); - } - }); - } - activeMasksetIndex = initialIndex; //restore index - } - - var radixPosition = getActiveBuffer().join('').indexOf(opts.radixPoint); - if (opts.isNumeric && checkval !== true && radixPosition != -1) { - if (opts.greedy && pos.begin <= radixPosition) { - pos.begin = seekPrevious(pos.begin); - pos.end = pos.begin; - } else if (c == opts.radixPoint) { - pos.begin = radixPosition; - pos.end = pos.begin; - } - } - - - var p = pos.begin; - results = isValid(p, c, strict); - if (strict === true) results = [{ "activeMasksetIndex": activeMasksetIndex, "result": results }]; - var minimalForwardPosition = -1; - $.each(results, function (index, result) { - activeMasksetIndex = result["activeMasksetIndex"]; - getActiveMaskSet()["writeOutBuffer"] = true; - var np = result["result"]; - if (np !== false) { - var refresh = false, buffer = getActiveBuffer(); - if (np !== true) { - refresh = np["refresh"]; //only rewrite buffer from isValid - p = np.pos != undefined ? np.pos : p; //set new position from isValid - c = np.c != undefined ? np.c : c; //set new char from isValid - } - if (refresh !== true) { - if (opts.insertMode == true) { - var lastUnmaskedPosition = getMaskLength(); - var bfrClone = buffer.slice(); - while (getBufferElement(bfrClone, lastUnmaskedPosition, true) != getPlaceHolder(lastUnmaskedPosition) && lastUnmaskedPosition >= p) { - lastUnmaskedPosition = lastUnmaskedPosition == 0 ? -1 : seekPrevious(lastUnmaskedPosition); - } - if (lastUnmaskedPosition >= p) { - shiftR(p, getMaskLength(), c); - //shift the lvp if needed - var lvp = getActiveMaskSet()["lastValidPosition"], nlvp = seekNext(lvp); - if (nlvp != getMaskLength() && lvp >= p && (getBufferElement(getActiveBuffer(), nlvp, true) != getPlaceHolder(nlvp))) { - getActiveMaskSet()["lastValidPosition"] = nlvp; - } - } else getActiveMaskSet()["writeOutBuffer"] = false; - } else setBufferElement(buffer, p, c, true); - if (minimalForwardPosition == -1 || minimalForwardPosition > seekNext(p)) { - minimalForwardPosition = seekNext(p); - } - } else if (!strict) { - var nextPos = p < getMaskLength() ? p + 1 : p; - if (minimalForwardPosition == -1 || minimalForwardPosition > nextPos) { - minimalForwardPosition = nextPos; - } - } - if (minimalForwardPosition > getActiveMaskSet()["p"]) - getActiveMaskSet()["p"] = minimalForwardPosition; //needed for checkval strict - } - }); - - if (strict !== true) { - activeMasksetIndex = initialIndex; - determineActiveMasksetIndex(); - } - if (writeOut !== false) { - $.each(results, function (ndx, rslt) { - if (rslt["activeMasksetIndex"] == activeMasksetIndex) { - result = rslt; - return false; - } - }); - if (result != undefined) { - var self = this; - setTimeout(function () { opts.onKeyValidation.call(self, result["result"], opts); }, 0); - if (getActiveMaskSet()["writeOutBuffer"] && result["result"] !== false) { - var buffer = getActiveBuffer(); - - var newCaretPosition; - if (checkval) { - newCaretPosition = undefined; - } else if (opts.numericInput) { - if (p > radixPosition) { - newCaretPosition = seekPrevious(minimalForwardPosition); - } else if (c == opts.radixPoint) { - newCaretPosition = minimalForwardPosition - 1; - } else newCaretPosition = seekPrevious(minimalForwardPosition - 1); - } else { - newCaretPosition = minimalForwardPosition; - } - - writeBuffer(input, buffer, newCaretPosition); - if (checkval !== true) { - setTimeout(function () { //timeout needed for IE - if (isComplete(buffer) === true) - $input.trigger("complete"); - skipInputEvent = true; - $input.trigger("input"); - }, 0); - } - } else if (isSlctn) { - getActiveMaskSet()["buffer"] = getActiveMaskSet()["undoBuffer"].split(''); - } - } - } - - if (opts.showTooltip) { //update tooltip - $input.prop("title", getActiveMaskSet()["mask"]); - } - - //needed for IE8 and below - if (e) e.preventDefault ? e.preventDefault() : e.returnValue = false; - } - } - } - - function keyupEvent(e) { - var $input = $(this), input = this, k = e.keyCode, buffer = getActiveBuffer(); - - if (androidchrome && k == opts.keyCode.BACKSPACE) { - if (chromeValueOnInput == input._valueGet()) - keydownEvent.call(this, e); - } - - opts.onKeyUp.call(this, e, buffer, opts); //extra stuff to execute on keyup - if (k == opts.keyCode.TAB && opts.showMaskOnFocus) { - if ($input.hasClass('focus.inputmask') && input._valueGet().length == 0) { - buffer = getActiveBufferTemplate().slice(); - writeBuffer(input, buffer); - caret(input, 0); - valueOnFocus = getActiveBuffer().join(''); - } else { - writeBuffer(input, buffer); - if (buffer.join('') == getActiveBufferTemplate().join('') && $.inArray(opts.radixPoint, buffer) != -1) { - caret(input, TranslatePosition(0)); - $input.click(); - } else - caret(input, TranslatePosition(0), TranslatePosition(getMaskLength())); - } - } - } - - function inputEvent(e) { - if (skipInputEvent === true) { - skipInputEvent = false; - return true; - } - var input = this, $input = $(input); - - chromeValueOnInput = getActiveBuffer().join(''); - checkVal(input, false, false); - writeBuffer(input, getActiveBuffer()); - if (isComplete(getActiveBuffer()) === true) - $input.trigger("complete"); - $input.click(); - } - - function mask(el) { - $el = $(el); - if ($el.is(":input")) { - //store tests & original buffer in the input element - used to get the unmasked value - $el.data('_inputmask', { - 'masksets': masksets, - 'activeMasksetIndex': activeMasksetIndex, - 'opts': opts, - 'isRTL': false - }); - - //show tooltip - if (opts.showTooltip) { - $el.prop("title", getActiveMaskSet()["mask"]); - } - - //correct greedy setting if needed - getActiveMaskSet()['greedy'] = getActiveMaskSet()['greedy'] ? getActiveMaskSet()['greedy'] : getActiveMaskSet()['repeat'] == 0; - - //handle maxlength attribute - if ($el.attr("maxLength") != null) //only when the attribute is set - { - var maxLength = $el.prop('maxLength'); - if (maxLength > -1) { //handle *-repeat - $.each(masksets, function (ndx, ms) { - if (typeof (ms) == "object") { - if (ms["repeat"] == "*") { - ms["repeat"] = maxLength; - } - } - }); - } - if (getMaskLength() >= maxLength && maxLength > -1) { //FF sets no defined max length to -1 - if (maxLength < getActiveBufferTemplate().length) getActiveBufferTemplate().length = maxLength; - if (getActiveMaskSet()['greedy'] == false) { - getActiveMaskSet()['repeat'] = Math.round(maxLength / getActiveBufferTemplate().length); - } - $el.prop('maxLength', getMaskLength() * 2); - } - } - - patchValueProperty(el); - - if (opts.numericInput) opts.isNumeric = opts.numericInput; - if (el.dir == "rtl" || (opts.numericInput && opts.rightAlignNumerics) || (opts.isNumeric && opts.rightAlignNumerics)) - $el.css("text-align", "right"); - - if (el.dir == "rtl" || opts.numericInput) { - el.dir = "ltr"; - $el.removeAttr("dir"); - var inputData = $el.data('_inputmask'); - inputData['isRTL'] = true; - $el.data('_inputmask', inputData); - isRTL = true; - } - - //unbind all events - to make sure that no other mask will interfere when re-masking - $el.unbind(".inputmask"); - $el.removeClass('focus.inputmask'); - //bind events - $el.closest('form').bind("submit", function () { //trigger change on submit if any - if (valueOnFocus != getActiveBuffer().join('')) { - $el.change(); - } - }).bind('reset', function () { - setTimeout(function () { - $el.trigger("setvalue"); - }, 0); - }); - $el.bind("mouseenter.inputmask", function () { - var $input = $(this), input = this; - if (!$input.hasClass('focus.inputmask') && opts.showMaskOnHover) { - if (input._valueGet() != getActiveBuffer().join('')) { - writeBuffer(input, getActiveBuffer()); - } - } - }).bind("blur.inputmask", function () { - var $input = $(this), input = this, nptValue = input._valueGet(), buffer = getActiveBuffer(); - $input.removeClass('focus.inputmask'); - if (valueOnFocus != getActiveBuffer().join('')) { - $input.change(); - } - if (opts.clearMaskOnLostFocus && nptValue != '') { - if (nptValue == getActiveBufferTemplate().join('')) - input._valueSet(''); - else { //clearout optional tail of the mask - clearOptionalTail(input); - } - } - if (isComplete(buffer) === false) { - $input.trigger("incomplete"); - if (opts.clearIncomplete) { - $.each(masksets, function (ndx, ms) { - if (typeof (ms) == "object") { - ms["buffer"] = ms["_buffer"].slice(); - ms["lastValidPosition"] = -1; - } - }); - activeMasksetIndex = 0; - if (opts.clearMaskOnLostFocus) - input._valueSet(''); - else { - buffer = getActiveBufferTemplate().slice(); - writeBuffer(input, buffer); - } - } - } - }).bind("focus.inputmask", function () { - var $input = $(this), input = this, nptValue = input._valueGet(); - if (opts.showMaskOnFocus && !$input.hasClass('focus.inputmask') && (!opts.showMaskOnHover || (opts.showMaskOnHover && nptValue == ''))) { - if (input._valueGet() != getActiveBuffer().join('')) { - writeBuffer(input, getActiveBuffer(), seekNext(getActiveMaskSet()["lastValidPosition"])); - } - } - $input.addClass('focus.inputmask'); - valueOnFocus = getActiveBuffer().join(''); - }).bind("mouseleave.inputmask", function () { - var $input = $(this), input = this; - if (opts.clearMaskOnLostFocus) { - if (!$input.hasClass('focus.inputmask') && input._valueGet() != $input.attr("placeholder")) { - if (input._valueGet() == getActiveBufferTemplate().join('') || input._valueGet() == '') - input._valueSet(''); - else { //clearout optional tail of the mask - clearOptionalTail(input); - } - } - } - }).bind("click.inputmask", function () { - var input = this; - setTimeout(function () { - var selectedCaret = caret(input), buffer = getActiveBuffer(); - if (selectedCaret.begin == selectedCaret.end) { - var clickPosition = isRTL ? TranslatePosition(selectedCaret.begin) : selectedCaret.begin, - lvp = getActiveMaskSet()["lastValidPosition"], - lastPosition; - if (opts.isNumeric) { - lastPosition = opts.skipRadixDance === false && opts.radixPoint != "" && $.inArray(opts.radixPoint, buffer) != -1 ? - (opts.numericInput ? seekNext($.inArray(opts.radixPoint, buffer)) : $.inArray(opts.radixPoint, buffer)) : - seekNext(lvp); - } else { - lastPosition = seekNext(lvp); - } - if (clickPosition < lastPosition) { - if (isMask(clickPosition)) - caret(input, clickPosition); - else caret(input, seekNext(clickPosition)); - } else - caret(input, lastPosition); - } - }, 0); - }).bind('dblclick.inputmask', function () { - var input = this; - setTimeout(function () { - caret(input, 0, seekNext(getActiveMaskSet()["lastValidPosition"])); - }, 0); - }).bind(pasteEvent + ".inputmask dragdrop.inputmask drop.inputmask", function (e) { - if (skipInputEvent === true) { - skipInputEvent = false; - return true; - } - var input = this, $input = $(input); - - //paste event for IE8 and lower I guess ;-) - if (e.type == "propertychange" && input._valueGet().length <= getMaskLength()) { - return true; - } - setTimeout(function () { - var pasteValue = opts.onBeforePaste != undefined ? opts.onBeforePaste.call(this, input._valueGet()) : input._valueGet(); - checkVal(input, true, false, pasteValue.split(''), true); - if (isComplete(getActiveBuffer()) === true) - $input.trigger("complete"); - $input.click(); - }, 0); - }).bind('setvalue.inputmask', function () { - var input = this; - checkVal(input, true); - valueOnFocus = getActiveBuffer().join(''); - if (input._valueGet() == getActiveBufferTemplate().join('')) - input._valueSet(''); - }).bind('complete.inputmask', opts.oncomplete - ).bind('incomplete.inputmask', opts.onincomplete - ).bind('cleared.inputmask', opts.oncleared - ).bind("keyup.inputmask", keyupEvent); - - if (androidchrome) { - $el.bind("input.inputmask", inputEvent); - } else { - $el.bind("keydown.inputmask", keydownEvent - ).bind("keypress.inputmask", keypressEvent); - } - - if (msie10) - $el.bind("input.inputmask", inputEvent); - - //apply mask - checkVal(el, true, false); - valueOnFocus = getActiveBuffer().join(''); - // Wrap document.activeElement in a try/catch block since IE9 throw "Unspecified error" if document.activeElement is undefined when we are in an IFrame. - var activeElement; - try { - activeElement = document.activeElement; - } catch (e) { - } - if (activeElement === el) { //position the caret when in focus - $el.addClass('focus.inputmask'); - caret(el, seekNext(getActiveMaskSet()["lastValidPosition"])); - } else if (opts.clearMaskOnLostFocus) { - if (getActiveBuffer().join('') == getActiveBufferTemplate().join('')) { - el._valueSet(''); - } else { - clearOptionalTail(el); - } - } else { - writeBuffer(el, getActiveBuffer()); - } - - installEventRuler(el); - } - } - - //action object - if (actionObj != undefined) { - switch (actionObj["action"]) { - case "isComplete": - return isComplete(actionObj["buffer"]); - case "unmaskedvalue": - isRTL = actionObj["$input"].data('_inputmask')['isRTL']; - return unmaskedvalue(actionObj["$input"], actionObj["skipDatepickerCheck"]); - case "mask": - mask(actionObj["el"]); - break; - case "format": - $el = $({}); - $el.data('_inputmask', { - 'masksets': masksets, - 'activeMasksetIndex': activeMasksetIndex, - 'opts': opts, - 'isRTL': opts.numericInput - }); - if (opts.numericInput) { - opts.isNumeric = opts.numericInput; - isRTL = true; - } - - checkVal($el, false, false, actionObj["value"].split(''), true); - return getActiveBuffer().join(''); - } - } - } - $.inputmask = { - //options default - defaults: { - placeholder: "_", - optionalmarker: { start: "[", end: "]" }, - quantifiermarker: { start: "{", end: "}" }, - groupmarker: { start: "(", end: ")" }, - escapeChar: "\\", - mask: null, - oncomplete: $.noop, //executes when the mask is complete - onincomplete: $.noop, //executes when the mask is incomplete and focus is lost - oncleared: $.noop, //executes when the mask is cleared - repeat: 0, //repetitions of the mask: * ~ forever, otherwise specify an integer - greedy: true, //true: allocated buffer for the mask and repetitions - false: allocate only if needed - autoUnmask: false, //automatically unmask when retrieving the value with $.fn.val or value if the browser supports __lookupGetter__ or getOwnPropertyDescriptor - clearMaskOnLostFocus: true, - insertMode: true, //insert the input or overwrite the input - clearIncomplete: false, //clear the incomplete input on blur - aliases: {}, //aliases definitions => see jquery.inputmask.extensions.js - onKeyUp: $.noop, //override to implement autocomplete on certain keys for example - onKeyDown: $.noop, //override to implement autocomplete on certain keys for example - onBeforePaste: undefined, //executes before masking the pasted value to allow preprocessing of the pasted value. args => pastedValue => return processedValue - onUnMask: undefined, //executes after unmasking to allow postprocessing of the unmaskedvalue. args => maskedValue, unmaskedValue - showMaskOnFocus: true, //show the mask-placeholder when the input has focus - showMaskOnHover: true, //show the mask-placeholder when hovering the empty input - onKeyValidation: $.noop, //executes on every key-press with the result of isValid. Params: result, opts - skipOptionalPartCharacter: " ", //a character which can be used to skip an optional part of a mask - showTooltip: false, //show the activemask as tooltip - numericInput: false, //numericInput input direction style (input shifts to the left while holding the caret position) - //numeric basic properties - isNumeric: false, //enable numeric features - radixPoint: "", //".", // | "," - skipRadixDance: false, //disable radixpoint caret positioning - rightAlignNumerics: true, //align numerics to the right - //numeric basic properties - definitions: { - '9': { - validator: "[0-9]", - cardinality: 1 - }, - 'a': { - validator: "[A-Za-z\u0410-\u044F\u0401\u0451]", - cardinality: 1 - }, - '*': { - validator: "[A-Za-z\u0410-\u044F\u0401\u04510-9]", - cardinality: 1 - } - }, - keyCode: { - ALT: 18, BACKSPACE: 8, CAPS_LOCK: 20, COMMA: 188, COMMAND: 91, COMMAND_LEFT: 91, COMMAND_RIGHT: 93, CONTROL: 17, DELETE: 46, DOWN: 40, END: 35, ENTER: 13, ESCAPE: 27, HOME: 36, INSERT: 45, LEFT: 37, MENU: 93, NUMPAD_ADD: 107, NUMPAD_DECIMAL: 110, NUMPAD_DIVIDE: 111, NUMPAD_ENTER: 108, - NUMPAD_MULTIPLY: 106, NUMPAD_SUBTRACT: 109, PAGE_DOWN: 34, PAGE_UP: 33, PERIOD: 190, RIGHT: 39, SHIFT: 16, SPACE: 32, TAB: 9, UP: 38, WINDOWS: 91 - }, - //specify keycodes which should not be considered in the keypress event, otherwise the preventDefault will stop their default behavior especially in FF - ignorables: [8, 9, 13, 19, 27, 33, 34, 35, 36, 37, 38, 39, 40, 45, 46, 93, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123], - getMaskLength: function (buffer, greedy, repeat, currentBuffer, opts) { - var calculatedLength = buffer.length; - if (!greedy) { - if (repeat == "*") { - calculatedLength = currentBuffer.length + 1; - } else if (repeat > 1) { - calculatedLength += (buffer.length * (repeat - 1)); - } - } - return calculatedLength; - } - }, - escapeRegex: function (str) { - var specials = ['/', '.', '*', '+', '?', '|', '(', ')', '[', ']', '{', '}', '\\']; - return str.replace(new RegExp('(\\' + specials.join('|\\') + ')', 'gim'), '\\$1'); - }, - format: function (value, options) { - var opts = $.extend(true, {}, $.inputmask.defaults, options); - resolveAlias(opts.alias, options, opts); - return maskScope(generateMaskSets(opts), 0, opts, { "action": "format", "value": value }); - } - }; - - $.fn.inputmask = function (fn, options) { - var opts = $.extend(true, {}, $.inputmask.defaults, options), - masksets, - activeMasksetIndex = 0; - - if (typeof fn === "string") { - switch (fn) { - case "mask": - //resolve possible aliases given by options - resolveAlias(opts.alias, options, opts); - masksets = generateMaskSets(opts); - if (masksets.length == 0) { return this; } - - return this.each(function () { - maskScope($.extend(true, {}, masksets), 0, opts, { "action": "mask", "el": this }); - }); - case "unmaskedvalue": - var $input = $(this), input = this; - if ($input.data('_inputmask')) { - masksets = $input.data('_inputmask')['masksets']; - activeMasksetIndex = $input.data('_inputmask')['activeMasksetIndex']; - opts = $input.data('_inputmask')['opts']; - return maskScope(masksets, activeMasksetIndex, opts, { "action": "unmaskedvalue", "$input": $input }); - } else return $input.val(); - case "remove": - return this.each(function () { - var $input = $(this), input = this; - if ($input.data('_inputmask')) { - masksets = $input.data('_inputmask')['masksets']; - activeMasksetIndex = $input.data('_inputmask')['activeMasksetIndex']; - opts = $input.data('_inputmask')['opts']; - //writeout the unmaskedvalue - input._valueSet(maskScope(masksets, activeMasksetIndex, opts, { "action": "unmaskedvalue", "$input": $input, "skipDatepickerCheck": true })); - //clear data - $input.removeData('_inputmask'); - //unbind all events - $input.unbind(".inputmask"); - $input.removeClass('focus.inputmask'); - //restore the value property - var valueProperty; - if (Object.getOwnPropertyDescriptor) - valueProperty = Object.getOwnPropertyDescriptor(input, "value"); - if (valueProperty && valueProperty.get) { - if (input._valueGet) { - Object.defineProperty(input, "value", { - get: input._valueGet, - set: input._valueSet - }); - } - } else if (document.__lookupGetter__ && input.__lookupGetter__("value")) { - if (input._valueGet) { - input.__defineGetter__("value", input._valueGet); - input.__defineSetter__("value", input._valueSet); - } - } - try { //try catch needed for IE7 as it does not supports deleting fns - delete input._valueGet; - delete input._valueSet; - } catch (e) { - input._valueGet = undefined; - input._valueSet = undefined; - - } - } - }); - break; - case "getemptymask": //return the default (empty) mask value, usefull for setting the default value in validation - if (this.data('_inputmask')) { - masksets = this.data('_inputmask')['masksets']; - activeMasksetIndex = this.data('_inputmask')['activeMasksetIndex']; - return masksets[activeMasksetIndex]['_buffer'].join(''); - } - else return ""; - case "hasMaskedValue": //check wheter the returned value is masked or not; currently only works reliable when using jquery.val fn to retrieve the value - return this.data('_inputmask') ? !this.data('_inputmask')['opts'].autoUnmask : false; - case "isComplete": - masksets = this.data('_inputmask')['masksets']; - activeMasksetIndex = this.data('_inputmask')['activeMasksetIndex']; - opts = this.data('_inputmask')['opts']; - return maskScope(masksets, activeMasksetIndex, opts, { "action": "isComplete", "buffer": this[0]._valueGet().split('') }); - case "getmetadata": //return mask metadata if exists - if (this.data('_inputmask')) { - masksets = this.data('_inputmask')['masksets']; - activeMasksetIndex = this.data('_inputmask')['activeMasksetIndex']; - return masksets[activeMasksetIndex]['metadata']; - } - else return undefined; - default: - //check if the fn is an alias - if (!resolveAlias(fn, options, opts)) { - //maybe fn is a mask so we try - //set mask - opts.mask = fn; - } - masksets = generateMaskSets(opts); - if (masksets.length == 0) { return this; } - return this.each(function () { - maskScope($.extend(true, {}, masksets), activeMasksetIndex, opts, { "action": "mask", "el": this }); - }); - - break; - } - } else if (typeof fn == "object") { - opts = $.extend(true, {}, $.inputmask.defaults, fn); - - resolveAlias(opts.alias, fn, opts); //resolve aliases - masksets = generateMaskSets(opts); - if (masksets.length == 0) { return this; } - return this.each(function () { - maskScope($.extend(true, {}, masksets), activeMasksetIndex, opts, { "action": "mask", "el": this }); - }); - } else if (fn == undefined) { - //look for data-inputmask atribute - the attribute should only contain optipns - return this.each(function () { - var attrOptions = $(this).attr("data-inputmask"); - if (attrOptions && attrOptions != "") { - try { - attrOptions = attrOptions.replace(new RegExp("'", "g"), '"'); - var dataoptions = $.parseJSON("{" + attrOptions + "}"); - $.extend(true, dataoptions, options); - opts = $.extend(true, {}, $.inputmask.defaults, dataoptions); - resolveAlias(opts.alias, dataoptions, opts); - opts.alias = undefined; - $(this).inputmask(opts); - } catch (ex) { } //need a more relax parseJSON - } - }); - } - }; - } -})(jQuery); diff --git a/admin/plugins/input-mask/jquery.inputmask.numeric.extensions.js b/admin/plugins/input-mask/jquery.inputmask.numeric.extensions.js deleted file mode 100644 index 2efb33f..0000000 --- a/admin/plugins/input-mask/jquery.inputmask.numeric.extensions.js +++ /dev/null @@ -1,177 +0,0 @@ -/* -Input Mask plugin extensions -http://github.com/RobinHerbots/jquery.inputmask -Copyright (c) 2010 - 2014 Robin Herbots -Licensed under the MIT license (http://www.opensource.org/licenses/mit-license.php) -Version: 0.0.0 - -Optional extensions on the jquery.inputmask base -*/ -(function ($) { - //number aliases - $.extend($.inputmask.defaults.aliases, { - 'decimal': { - mask: "~", - placeholder: "", - repeat: "*", - greedy: false, - numericInput: false, - isNumeric: true, - digits: "*", //number of fractionalDigits - groupSeparator: "",//",", // | "." - radixPoint: ".", - groupSize: 3, - autoGroup: false, - allowPlus: true, - allowMinus: true, - //todo - integerDigits: "*", //number of integerDigits - defaultValue: "", - prefix: "", - suffix: "", - - //todo - getMaskLength: function (buffer, greedy, repeat, currentBuffer, opts) { //custom getMaskLength to take the groupSeparator into account - var calculatedLength = buffer.length; - - if (!greedy) { - if (repeat == "*") { - calculatedLength = currentBuffer.length + 1; - } else if (repeat > 1) { - calculatedLength += (buffer.length * (repeat - 1)); - } - } - - var escapedGroupSeparator = $.inputmask.escapeRegex.call(this, opts.groupSeparator); - var escapedRadixPoint = $.inputmask.escapeRegex.call(this, opts.radixPoint); - var currentBufferStr = currentBuffer.join(''), strippedBufferStr = currentBufferStr.replace(new RegExp(escapedGroupSeparator, "g"), "").replace(new RegExp(escapedRadixPoint), ""), - groupOffset = currentBufferStr.length - strippedBufferStr.length; - return calculatedLength + groupOffset; - }, - postFormat: function (buffer, pos, reformatOnly, opts) { - if (opts.groupSeparator == "") return pos; - var cbuf = buffer.slice(), - radixPos = $.inArray(opts.radixPoint, buffer); - if (!reformatOnly) { - cbuf.splice(pos, 0, "?"); //set position indicator - } - var bufVal = cbuf.join(''); - if (opts.autoGroup || (reformatOnly && bufVal.indexOf(opts.groupSeparator) != -1)) { - var escapedGroupSeparator = $.inputmask.escapeRegex.call(this, opts.groupSeparator); - bufVal = bufVal.replace(new RegExp(escapedGroupSeparator, "g"), ''); - var radixSplit = bufVal.split(opts.radixPoint); - bufVal = radixSplit[0]; - var reg = new RegExp('([-\+]?[\\d\?]+)([\\d\?]{' + opts.groupSize + '})'); - while (reg.test(bufVal)) { - bufVal = bufVal.replace(reg, '$1' + opts.groupSeparator + '$2'); - bufVal = bufVal.replace(opts.groupSeparator + opts.groupSeparator, opts.groupSeparator); - } - if (radixSplit.length > 1) - bufVal += opts.radixPoint + radixSplit[1]; - } - buffer.length = bufVal.length; //align the length - for (var i = 0, l = bufVal.length; i < l; i++) { - buffer[i] = bufVal.charAt(i); - } - var newPos = $.inArray("?", buffer); - if (!reformatOnly) buffer.splice(newPos, 1); - - return reformatOnly ? pos : newPos; - }, - regex: { - number: function (opts) { - var escapedGroupSeparator = $.inputmask.escapeRegex.call(this, opts.groupSeparator); - var escapedRadixPoint = $.inputmask.escapeRegex.call(this, opts.radixPoint); - var digitExpression = isNaN(opts.digits) ? opts.digits : '{0,' + opts.digits + '}'; - var signedExpression = opts.allowPlus || opts.allowMinus ? "[" + (opts.allowPlus ? "\+" : "") + (opts.allowMinus ? "-" : "") + "]?" : ""; - return new RegExp("^" + signedExpression + "(\\d+|\\d{1," + opts.groupSize + "}((" + escapedGroupSeparator + "\\d{" + opts.groupSize + "})?)+)(" + escapedRadixPoint + "\\d" + digitExpression + ")?$"); - } - }, - onKeyDown: function (e, buffer, opts) { - var $input = $(this), input = this; - if (e.keyCode == opts.keyCode.TAB) { - var radixPosition = $.inArray(opts.radixPoint, buffer); - if (radixPosition != -1) { - var masksets = $input.data('_inputmask')['masksets']; - var activeMasksetIndex = $input.data('_inputmask')['activeMasksetIndex']; - for (var i = 1; i <= opts.digits && i < opts.getMaskLength(masksets[activeMasksetIndex]["_buffer"], masksets[activeMasksetIndex]["greedy"], masksets[activeMasksetIndex]["repeat"], buffer, opts) ; i++) { - if (buffer[radixPosition + i] == undefined || buffer[radixPosition + i] == "") buffer[radixPosition + i] = "0"; - } - input._valueSet(buffer.join('')); - } - } else if (e.keyCode == opts.keyCode.DELETE || e.keyCode == opts.keyCode.BACKSPACE) { - opts.postFormat(buffer, 0, true, opts); - input._valueSet(buffer.join('')); - return true; - } - }, - definitions: { - '~': { //real number - validator: function (chrs, buffer, pos, strict, opts) { - if (chrs == "") return false; - if (!strict && pos <= 1 && buffer[0] === '0' && new RegExp("[\\d-]").test(chrs) && buffer.join('').length == 1) { //handle first char - buffer[0] = ""; - return { "pos": 0 }; - } - - var cbuf = strict ? buffer.slice(0, pos) : buffer.slice(); - - cbuf.splice(pos, 0, chrs); - var bufferStr = cbuf.join(''); - - //strip groupseparator - var escapedGroupSeparator = $.inputmask.escapeRegex.call(this, opts.groupSeparator); - bufferStr = bufferStr.replace(new RegExp(escapedGroupSeparator, "g"), ''); - - var isValid = opts.regex.number(opts).test(bufferStr); - if (!isValid) { - //let's help the regex a bit - bufferStr += "0"; - isValid = opts.regex.number(opts).test(bufferStr); - if (!isValid) { - //make a valid group - var lastGroupSeparator = bufferStr.lastIndexOf(opts.groupSeparator); - for (var i = bufferStr.length - lastGroupSeparator; i <= 3; i++) { - bufferStr += "0"; - } - - isValid = opts.regex.number(opts).test(bufferStr); - if (!isValid && !strict) { - if (chrs == opts.radixPoint) { - isValid = opts.regex.number(opts).test("0" + bufferStr + "0"); - if (isValid) { - buffer[pos] = "0"; - pos++; - return { "pos": pos }; - } - } - } - } - } - - if (isValid != false && !strict && chrs != opts.radixPoint) { - var newPos = opts.postFormat(buffer, pos, false, opts); - return { "pos": newPos }; - } - - return isValid; - }, - cardinality: 1, - prevalidator: null - } - }, - insertMode: true, - autoUnmask: false - }, - 'integer': { - regex: { - number: function (opts) { - var escapedGroupSeparator = $.inputmask.escapeRegex.call(this, opts.groupSeparator); - var signedExpression = opts.allowPlus || opts.allowMinus ? "[" + (opts.allowPlus ? "\+" : "") + (opts.allowMinus ? "-" : "") + "]?" : ""; - return new RegExp("^" + signedExpression + "(\\d+|\\d{1," + opts.groupSize + "}((" + escapedGroupSeparator + "\\d{" + opts.groupSize + "})?)+)$"); - } - }, - alias: "decimal" - } - }); -})(jQuery); diff --git a/admin/plugins/input-mask/jquery.inputmask.phone.extensions.js b/admin/plugins/input-mask/jquery.inputmask.phone.extensions.js deleted file mode 100644 index 554d4ef..0000000 --- a/admin/plugins/input-mask/jquery.inputmask.phone.extensions.js +++ /dev/null @@ -1,50 +0,0 @@ -/* -Input Mask plugin extensions -http://github.com/RobinHerbots/jquery.inputmask -Copyright (c) 2010 - 2014 Robin Herbots -Licensed under the MIT license (http://www.opensource.org/licenses/mit-license.php) -Version: 0.0.0 - -Phone extension. -When using this extension make sure you specify the correct url to get the masks - - $(selector).inputmask("phone", { - url: "Scripts/jquery.inputmask/phone-codes/phone-codes.json", - onKeyValidation: function () { //show some metadata in the console - console.log($(this).inputmask("getmetadata")["name_en"]); - } - }); - - -*/ -(function ($) { - $.extend($.inputmask.defaults.aliases, { - 'phone': { - url: "phone-codes/phone-codes.json", - mask: function (opts) { - opts.definitions = { - 'p': { - validator: function () { return false; }, - cardinality: 1 - }, - '#': { - validator: "[0-9]", - cardinality: 1 - } - }; - var maskList = []; - $.ajax({ - url: opts.url, - async: false, - dataType: 'json', - success: function (response) { - maskList = response; - } - }); - - maskList.splice(0, 0, "+p(ppp)ppp-pppp"); - return maskList; - } - } - }); -})(jQuery); diff --git a/admin/plugins/input-mask/jquery.inputmask.regex.extensions.js b/admin/plugins/input-mask/jquery.inputmask.regex.extensions.js deleted file mode 100644 index e956569..0000000 --- a/admin/plugins/input-mask/jquery.inputmask.regex.extensions.js +++ /dev/null @@ -1,169 +0,0 @@ -/* -Input Mask plugin extensions -http://github.com/RobinHerbots/jquery.inputmask -Copyright (c) 2010 - 2014 Robin Herbots -Licensed under the MIT license (http://www.opensource.org/licenses/mit-license.php) -Version: 0.0.0 - -Regex extensions on the jquery.inputmask base -Allows for using regular expressions as a mask -*/ -(function ($) { - $.extend($.inputmask.defaults.aliases, { // $(selector).inputmask("Regex", { regex: "[0-9]*"} - 'Regex': { - mask: "r", - greedy: false, - repeat: "*", - regex: null, - regexTokens: null, - //Thx to https://github.com/slevithan/regex-colorizer for the tokenizer regex - tokenizer: /\[\^?]?(?:[^\\\]]+|\\[\S\s]?)*]?|\\(?:0(?:[0-3][0-7]{0,2}|[4-7][0-7]?)?|[1-9][0-9]*|x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4}|c[A-Za-z]|[\S\s]?)|\((?:\?[:=!]?)?|(?:[?*+]|\{[0-9]+(?:,[0-9]*)?\})\??|[^.?*+^${[()|\\]+|./g, - quantifierFilter: /[0-9]+[^,]/, - definitions: { - 'r': { - validator: function (chrs, buffer, pos, strict, opts) { - function regexToken() { - this.matches = []; - this.isGroup = false; - this.isQuantifier = false; - this.isLiteral = false; - } - function analyseRegex() { - var currentToken = new regexToken(), match, m, opengroups = []; - - opts.regexTokens = []; - - // The tokenizer regex does most of the tokenization grunt work - while (match = opts.tokenizer.exec(opts.regex)) { - m = match[0]; - switch (m.charAt(0)) { - case "[": // Character class - case "\\": // Escape or backreference - if (opengroups.length > 0) { - opengroups[opengroups.length - 1]["matches"].push(m); - } else { - currentToken.matches.push(m); - } - break; - case "(": // Group opening - if (!currentToken.isGroup && currentToken.matches.length > 0) - opts.regexTokens.push(currentToken); - currentToken = new regexToken(); - currentToken.isGroup = true; - opengroups.push(currentToken); - break; - case ")": // Group closing - var groupToken = opengroups.pop(); - if (opengroups.length > 0) { - opengroups[opengroups.length - 1]["matches"].push(groupToken); - } else { - opts.regexTokens.push(groupToken); - currentToken = new regexToken(); - } - break; - case "{": //Quantifier - var quantifier = new regexToken(); - quantifier.isQuantifier = true; - quantifier.matches.push(m); - if (opengroups.length > 0) { - opengroups[opengroups.length - 1]["matches"].push(quantifier); - } else { - currentToken.matches.push(quantifier); - } - break; - default: - // Vertical bar (alternator) - // ^ or $ anchor - // Dot (.) - // Literal character sequence - var literal = new regexToken(); - literal.isLiteral = true; - literal.matches.push(m); - if (opengroups.length > 0) { - opengroups[opengroups.length - 1]["matches"].push(literal); - } else { - currentToken.matches.push(literal); - } - } - } - - if (currentToken.matches.length > 0) - opts.regexTokens.push(currentToken); - } - function validateRegexToken(token, fromGroup) { - var isvalid = false; - if (fromGroup) { - regexPart += "("; - openGroupCount++; - } - for (var mndx = 0; mndx < token["matches"].length; mndx++) { - var matchToken = token["matches"][mndx]; - if (matchToken["isGroup"] == true) { - isvalid = validateRegexToken(matchToken, true); - } else if (matchToken["isQuantifier"] == true) { - matchToken = matchToken["matches"][0]; - var quantifierMax = opts.quantifierFilter.exec(matchToken)[0].replace("}", ""); - var testExp = regexPart + "{1," + quantifierMax + "}"; //relax quantifier validation - for (var j = 0; j < openGroupCount; j++) { - testExp += ")"; - } - var exp = new RegExp("^(" + testExp + ")$"); - isvalid = exp.test(bufferStr); - regexPart += matchToken; - } else if (matchToken["isLiteral"] == true) { - matchToken = matchToken["matches"][0]; - var testExp = regexPart, openGroupCloser = ""; - for (var j = 0; j < openGroupCount; j++) { - openGroupCloser += ")"; - } - for (var k = 0; k < matchToken.length; k++) { //relax literal validation - testExp = (testExp + matchToken[k]).replace(/\|$/, ""); - var exp = new RegExp("^(" + testExp + openGroupCloser + ")$"); - isvalid = exp.test(bufferStr); - if (isvalid) break; - } - regexPart += matchToken; - //console.log(bufferStr + " " + exp + " " + isvalid); - } else { - regexPart += matchToken; - var testExp = regexPart.replace(/\|$/, ""); - for (var j = 0; j < openGroupCount; j++) { - testExp += ")"; - } - var exp = new RegExp("^(" + testExp + ")$"); - isvalid = exp.test(bufferStr); - //console.log(bufferStr + " " + exp + " " + isvalid); - } - if (isvalid) break; - } - - if (fromGroup) { - regexPart += ")"; - openGroupCount--; - } - - return isvalid; - } - - - if (opts.regexTokens == null) { - analyseRegex(); - } - - var cbuffer = buffer.slice(), regexPart = "", isValid = false, openGroupCount = 0; - cbuffer.splice(pos, 0, chrs); - var bufferStr = cbuffer.join(''); - for (var i = 0; i < opts.regexTokens.length; i++) { - var regexToken = opts.regexTokens[i]; - isValid = validateRegexToken(regexToken, regexToken["isGroup"]); - if (isValid) break; - } - - return isValid; - }, - cardinality: 1 - } - } - } - }); -})(jQuery); diff --git a/admin/plugins/input-mask/phone-codes/phone-be.json b/admin/plugins/input-mask/phone-codes/phone-be.json deleted file mode 100644 index b510b78..0000000 --- a/admin/plugins/input-mask/phone-codes/phone-be.json +++ /dev/null @@ -1,45 +0,0 @@ -[ - { "mask": "+32(53)##-##-##", "cc": "BE", "cd": "Belgium", "city": "Aalst (Alost)" }, - { "mask": "+32(3)###-##-##", "cc": "BE", "cd": "Belgium", "city": "Antwerpen (Anvers)" }, - { "mask": "+32(63)##-##-##", "cc": "BE", "cd": "Belgium", "city": "Arlon" }, - { "mask": "+32(67)##-##-##", "cc": "BE", "cd": "Belgium", "city": "Ath" }, - { "mask": "+32(50)##-##-##", "cc": "BE", "cd": "Belgium", "city": "Brugge (Bruges)" }, - { "mask": "+32(2)###-##-##", "cc": "BE", "cd": "Belgium", "city": "Brussel/Bruxelles (Brussels)" }, - { "mask": "+32(71)##-##-##", "cc": "BE", "cd": "Belgium", "city": "Charleroi" }, - { "mask": "+32(60)##-##-##", "cc": "BE", "cd": "Belgium", "city": "Chimay" }, - { "mask": "+32(83)##-##-##", "cc": "BE", "cd": "Belgium", "city": "Ciney" }, - { "mask": "+32(52)##-##-##", "cc": "BE", "cd": "Belgium", "city": "Dendermonde" }, - { "mask": "+32(13)##-##-##", "cc": "BE", "cd": "Belgium", "city": "Diest" }, - { "mask": "+32(82)##-##-##", "cc": "BE", "cd": "Belgium", "city": "Dinant" }, - { "mask": "+32(86)##-##-##", "cc": "BE", "cd": "Belgium", "city": "Durbuy" }, - { "mask": "+32(89)##-##-##", "cc": "BE", "cd": "Belgium", "city": "Genk" }, - { "mask": "+32(9)###-##-##", "cc": "BE", "cd": "Belgium", "city": "Gent (Gand)" }, - { "mask": "+32(11)##-##-##", "cc": "BE", "cd": "Belgium", "city": "Hasselt" }, - { "mask": "+32(14)##-##-##", "cc": "BE", "cd": "Belgium", "city": "Herentals" }, - { "mask": "+32(85)##-##-##", "cc": "BE", "cd": "Belgium", "city": "Huy (Hoei)" }, - { "mask": "+32(64)##-##-##", "cc": "BE", "cd": "Belgium", "city": "La Louvière" }, - { "mask": "+32(16)##-##-##", "cc": "BE", "cd": "Belgium", "city": "Leuven (Louvain)" }, - { "mask": "+32(61)##-##-##", "cc": "BE", "cd": "Belgium", "city": "Libramont" }, - { "mask": "+32(4)###-##-##", "cc": "BE", "cd": "Belgium", "city": "Liège (Luik)" }, - { "mask": "+32(15)##-##-##", "cc": "BE", "cd": "Belgium", "city": "Mechelen (Malines)" }, - { "mask": "+32(47#)##-##-##", "cc": "BE", "cd": "Belgium", "city": "Mobile Phones" }, - { "mask": "+32(48#)##-##-##", "cc": "BE", "cd": "Belgium", "city": "Mobile Phones" }, - { "mask": "+32(49#)##-##-##", "cc": "BE", "cd": "Belgium", "city": "Mobile Phones" }, - { "mask": "+32(65)##-##-##", "cc": "BE", "cd": "Belgium", "city": "Mons (Bergen)" }, - { "mask": "+32(81)##-##-##", "cc": "BE", "cd": "Belgium", "city": "Namur (Namen)" }, - { "mask": "+32(58)##-##-##", "cc": "BE", "cd": "Belgium", "city": "Nieuwpoort (Nieuport)" }, - { "mask": "+32(54)##-##-##", "cc": "BE", "cd": "Belgium", "city": "Ninove" }, - { "mask": "+32(67)##-##-##", "cc": "BE", "cd": "Belgium", "city": "Nivelles (Nijvel)" }, - { "mask": "+32(59)##-##-##", "cc": "BE", "cd": "Belgium", "city": "Oostende (Ostende)" }, - { "mask": "+32(51)##-##-##", "cc": "BE", "cd": "Belgium", "city": "Roeselare (Roulers)" }, - { "mask": "+32(55)##-##-##", "cc": "BE", "cd": "Belgium", "city": "Ronse" }, - { "mask": "+32(80)##-##-##", "cc": "BE", "cd": "Belgium", "city": "Stavelot" }, - { "mask": "+32(12)##-##-##", "cc": "BE", "cd": "Belgium", "city": "Tongeren (Tongres)" }, - { "mask": "+32(69)##-##-##", "cc": "BE", "cd": "Belgium", "city": "Tounai" }, - { "mask": "+32(14)##-##-##", "cc": "BE", "cd": "Belgium", "city": "Turnhout" }, - { "mask": "+32(87)##-##-##", "cc": "BE", "cd": "Belgium", "city": "Verviers" }, - { "mask": "+32(58)##-##-##", "cc": "BE", "cd": "Belgium", "city": "Veurne" }, - { "mask": "+32(19)##-##-##", "cc": "BE", "cd": "Belgium", "city": "Wareme" }, - { "mask": "+32(10)##-##-##", "cc": "BE", "cd": "Belgium", "city": "Wavre (Waver)" }, - { "mask": "+32(50)##-##-##", "cc": "BE", "cd": "Belgium", "city": "Zeebrugge" } -] \ No newline at end of file diff --git a/admin/plugins/input-mask/phone-codes/phone-codes.json b/admin/plugins/input-mask/phone-codes/phone-codes.json deleted file mode 100644 index 15bbd3a..0000000 --- a/admin/plugins/input-mask/phone-codes/phone-codes.json +++ /dev/null @@ -1,294 +0,0 @@ -[ - { "mask": "+247-####", "cc": "AC", "name_en": "Ascension", "desc_en": "", "name_ru": "Остров Вознесения", "desc_ru": "" }, - { "mask": "+376-###-###", "cc": "AD", "name_en": "Andorra", "desc_en": "", "name_ru": "Андорра", "desc_ru": "" }, - { "mask": "+971-5#-###-####", "cc": "AE", "name_en": "United Arab Emirates", "desc_en": "mobile", "name_ru": "Объединенные Арабские Эмираты", "desc_ru": "мобильные" }, - { "mask": "+971-#-###-####", "cc": "AE", "name_en": "United Arab Emirates", "desc_en": "", "name_ru": "Объединенные Арабские Эмираты", "desc_ru": "" }, - { "mask": "+93-##-###-####", "cc": "AF", "name_en": "Afghanistan", "desc_en": "", "name_ru": "Афганистан", "desc_ru": "" }, - { "mask": "+1(268)###-####", "cc": "AG", "name_en": "Antigua & Barbuda", "desc_en": "", "name_ru": "Антигуа и Барбуда", "desc_ru": "" }, - { "mask": "+1(264)###-####", "cc": "AI", "name_en": "Anguilla", "desc_en": "", "name_ru": "Ангилья", "desc_ru": "" }, - { "mask": "+355(###)###-###", "cc": "AL", "name_en": "Albania", "desc_en": "", "name_ru": "Албания", "desc_ru": "" }, - { "mask": "+374-##-###-###", "cc": "AM", "name_en": "Armenia", "desc_en": "", "name_ru": "Армения", "desc_ru": "" }, - { "mask": "+599-###-####", "cc": "AN", "name_en": "Caribbean Netherlands", "desc_en": "", "name_ru": "Карибские Нидерланды", "desc_ru": "" }, - { "mask": "+599-###-####", "cc": "AN", "name_en": "Netherlands Antilles", "desc_en": "", "name_ru": "Нидерландские Антильские острова", "desc_ru": "" }, - { "mask": "+599-9###-####", "cc": "AN", "name_en": "Netherlands Antilles", "desc_en": "Curacao", "name_ru": "Нидерландские Антильские острова", "desc_ru": "Кюрасао" }, - { "mask": "+244(###)###-###", "cc": "AO", "name_en": "Angola", "desc_en": "", "name_ru": "Ангола", "desc_ru": "" }, - { "mask": "+672-1##-###", "cc": "AQ", "name_en": "Australian bases in Antarctica", "desc_en": "", "name_ru": "Австралийская антарктическая база", "desc_ru": "" }, - { "mask": "+54(###)###-####", "cc": "AR", "name_en": "Argentina", "desc_en": "", "name_ru": "Аргентина", "desc_ru": "" }, - { "mask": "+1(684)###-####", "cc": "AS", "name_en": "American Samoa", "desc_en": "", "name_ru": "Американское Самоа", "desc_ru": "" }, - { "mask": "+43(###)###-####", "cc": "AT", "name_en": "Austria", "desc_en": "", "name_ru": "Австрия", "desc_ru": "" }, - { "mask": "+61-#-####-####", "cc": "AU", "name_en": "Australia", "desc_en": "", "name_ru": "Австралия", "desc_ru": "" }, - { "mask": "+297-###-####", "cc": "AW", "name_en": "Aruba", "desc_en": "", "name_ru": "Аруба", "desc_ru": "" }, - { "mask": "+994-##-###-##-##", "cc": "AZ", "name_en": "Azerbaijan", "desc_en": "", "name_ru": "Азербайджан", "desc_ru": "" }, - { "mask": "+387-##-#####", "cc": "BA", "name_en": "Bosnia and Herzegovina", "desc_en": "", "name_ru": "Босния и Герцеговина", "desc_ru": "" }, - { "mask": "+387-##-####", "cc": "BA", "name_en": "Bosnia and Herzegovina", "desc_en": "", "name_ru": "Босния и Герцеговина", "desc_ru": "" }, - { "mask": "+1(246)###-####", "cc": "BB", "name_en": "Barbados", "desc_en": "", "name_ru": "Барбадос", "desc_ru": "" }, - { "mask": "+880-##-###-###", "cc": "BD", "name_en": "Bangladesh", "desc_en": "", "name_ru": "Бангладеш", "desc_ru": "" }, - { "mask": "+32(###)###-###", "cc": "BE", "name_en": "Belgium", "desc_en": "", "name_ru": "Бельгия", "desc_ru": "" }, - { "mask": "+226-##-##-####", "cc": "BF", "name_en": "Burkina Faso", "desc_en": "", "name_ru": "Буркина Фасо", "desc_ru": "" }, - { "mask": "+359(###)###-###", "cc": "BG", "name_en": "Bulgaria", "desc_en": "", "name_ru": "Болгария", "desc_ru": "" }, - { "mask": "+973-####-####", "cc": "BH", "name_en": "Bahrain", "desc_en": "", "name_ru": "Бахрейн", "desc_ru": "" }, - { "mask": "+257-##-##-####", "cc": "BI", "name_en": "Burundi", "desc_en": "", "name_ru": "Бурунди", "desc_ru": "" }, - { "mask": "+229-##-##-####", "cc": "BJ", "name_en": "Benin", "desc_en": "", "name_ru": "Бенин", "desc_ru": "" }, - { "mask": "+1(441)###-####", "cc": "BM", "name_en": "Bermuda", "desc_en": "", "name_ru": "Бермудские острова", "desc_ru": "" }, - { "mask": "+673-###-####", "cc": "BN", "name_en": "Brunei Darussalam", "desc_en": "", "name_ru": "Бруней-Даруссалам", "desc_ru": "" }, - { "mask": "+591-#-###-####", "cc": "BO", "name_en": "Bolivia", "desc_en": "", "name_ru": "Боливия", "desc_ru": "" }, - { "mask": "+55-##-####[#]-####", "cc": "BR", "name_en": "Brazil", "desc_en": "", "name_ru": "Бразилия", "desc_ru": "" }, - { "mask": "+1(242)###-####", "cc": "BS", "name_en": "Bahamas", "desc_en": "", "name_ru": "Багамские Острова", "desc_ru": "" }, - { "mask": "+975-17-###-###", "cc": "BT", "name_en": "Bhutan", "desc_en": "", "name_ru": "Бутан", "desc_ru": "" }, - { "mask": "+975-#-###-###", "cc": "BT", "name_en": "Bhutan", "desc_en": "", "name_ru": "Бутан", "desc_ru": "" }, - { "mask": "+267-##-###-###", "cc": "BW", "name_en": "Botswana", "desc_en": "", "name_ru": "Ботсвана", "desc_ru": "" }, - { "mask": "+375(##)###-##-##", "cc": "BY", "name_en": "Belarus", "desc_en": "", "name_ru": "Беларусь (Белоруссия)", "desc_ru": "" }, - { "mask": "+501-###-####", "cc": "BZ", "name_en": "Belize", "desc_en": "", "name_ru": "Белиз", "desc_ru": "" }, - { "mask": "+243(###)###-###", "cc": "CD", "name_en": "Dem. Rep. Congo", "desc_en": "", "name_ru": "Дем. Респ. Конго (Киншаса)", "desc_ru": "" }, - { "mask": "+236-##-##-####", "cc": "CF", "name_en": "Central African Republic", "desc_en": "", "name_ru": "Центральноафриканская Республика", "desc_ru": "" }, - { "mask": "+242-##-###-####", "cc": "CG", "name_en": "Congo (Brazzaville)", "desc_en": "", "name_ru": "Конго (Браззавиль)", "desc_ru": "" }, - { "mask": "+41-##-###-####", "cc": "CH", "name_en": "Switzerland", "desc_en": "", "name_ru": "Швейцария", "desc_ru": "" }, - { "mask": "+225-##-###-###", "cc": "CI", "name_en": "Cote d’Ivoire (Ivory Coast)", "desc_en": "", "name_ru": "Кот-д’Ивуар", "desc_ru": "" }, - { "mask": "+682-##-###", "cc": "CK", "name_en": "Cook Islands", "desc_en": "", "name_ru": "Острова Кука", "desc_ru": "" }, - { "mask": "+56-#-####-####", "cc": "CL", "name_en": "Chile", "desc_en": "", "name_ru": "Чили", "desc_ru": "" }, - { "mask": "+237-####-####", "cc": "CM", "name_en": "Cameroon", "desc_en": "", "name_ru": "Камерун", "desc_ru": "" }, - { "mask": "+86(###)####-####", "cc": "CN", "name_en": "China (PRC)", "desc_en": "", "name_ru": "Китайская Н.Р.", "desc_ru": "" }, - { "mask": "+86(###)####-###", "cc": "CN", "name_en": "China (PRC)", "desc_en": "", "name_ru": "Китайская Н.Р.", "desc_ru": "" }, - { "mask": "+86-##-#####-#####", "cc": "CN", "name_en": "China (PRC)", "desc_en": "", "name_ru": "Китайская Н.Р.", "desc_ru": "" }, - { "mask": "+57(###)###-####", "cc": "CO", "name_en": "Colombia", "desc_en": "", "name_ru": "Колумбия", "desc_ru": "" }, - { "mask": "+506-####-####", "cc": "CR", "name_en": "Costa Rica", "desc_en": "", "name_ru": "Коста-Рика", "desc_ru": "" }, - { "mask": "+53-#-###-####", "cc": "CU", "name_en": "Cuba", "desc_en": "", "name_ru": "Куба", "desc_ru": "" }, - { "mask": "+238(###)##-##", "cc": "CV", "name_en": "Cape Verde", "desc_en": "", "name_ru": "Кабо-Верде", "desc_ru": "" }, - { "mask": "+599-###-####", "cc": "CW", "name_en": "Curacao", "desc_en": "", "name_ru": "Кюрасао", "desc_ru": "" }, - { "mask": "+357-##-###-###", "cc": "CY", "name_en": "Cyprus", "desc_en": "", "name_ru": "Кипр", "desc_ru": "" }, - { "mask": "+420(###)###-###", "cc": "CZ", "name_en": "Czech Republic", "desc_en": "", "name_ru": "Чехия", "desc_ru": "" }, - { "mask": "+49(####)###-####", "cc": "DE", "name_en": "Germany", "desc_en": "", "name_ru": "Германия", "desc_ru": "" }, - { "mask": "+49(###)###-####", "cc": "DE", "name_en": "Germany", "desc_en": "", "name_ru": "Германия", "desc_ru": "" }, - { "mask": "+49(###)##-####", "cc": "DE", "name_en": "Germany", "desc_en": "", "name_ru": "Германия", "desc_ru": "" }, - { "mask": "+49(###)##-###", "cc": "DE", "name_en": "Germany", "desc_en": "", "name_ru": "Германия", "desc_ru": "" }, - { "mask": "+49(###)##-##", "cc": "DE", "name_en": "Germany", "desc_en": "", "name_ru": "Германия", "desc_ru": "" }, - { "mask": "+49-###-###", "cc": "DE", "name_en": "Germany", "desc_en": "", "name_ru": "Германия", "desc_ru": "" }, - { "mask": "+253-##-##-##-##", "cc": "DJ", "name_en": "Djibouti", "desc_en": "", "name_ru": "Джибути", "desc_ru": "" }, - { "mask": "+45-##-##-##-##", "cc": "DK", "name_en": "Denmark", "desc_en": "", "name_ru": "Дания", "desc_ru": "" }, - { "mask": "+1(767)###-####", "cc": "DM", "name_en": "Dominica", "desc_en": "", "name_ru": "Доминика", "desc_ru": "" }, - { "mask": "+1(809)###-####", "cc": "DO", "name_en": "Dominican Republic", "desc_en": "", "name_ru": "Доминиканская Республика", "desc_ru": "" }, - { "mask": "+1(829)###-####", "cc": "DO", "name_en": "Dominican Republic", "desc_en": "", "name_ru": "Доминиканская Республика", "desc_ru": "" }, - { "mask": "+1(849)###-####", "cc": "DO", "name_en": "Dominican Republic", "desc_en": "", "name_ru": "Доминиканская Республика", "desc_ru": "" }, - { "mask": "+213-##-###-####", "cc": "DZ", "name_en": "Algeria", "desc_en": "", "name_ru": "Алжир", "desc_ru": "" }, - { "mask": "+593-##-###-####", "cc": "EC", "name_en": "Ecuador ", "desc_en": "mobile", "name_ru": "Эквадор ", "desc_ru": "мобильные" }, - { "mask": "+593-#-###-####", "cc": "EC", "name_en": "Ecuador", "desc_en": "", "name_ru": "Эквадор", "desc_ru": "" }, - { "mask": "+372-####-####", "cc": "EE", "name_en": "Estonia ", "desc_en": "mobile", "name_ru": "Эстония ", "desc_ru": "мобильные" }, - { "mask": "+372-###-####", "cc": "EE", "name_en": "Estonia", "desc_en": "", "name_ru": "Эстония", "desc_ru": "" }, - { "mask": "+20(###)###-####", "cc": "EG", "name_en": "Egypt", "desc_en": "", "name_ru": "Египет", "desc_ru": "" }, - { "mask": "+291-#-###-###", "cc": "ER", "name_en": "Eritrea", "desc_en": "", "name_ru": "Эритрея", "desc_ru": "" }, - { "mask": "+34(###)###-###", "cc": "ES", "name_en": "Spain", "desc_en": "", "name_ru": "Испания", "desc_ru": "" }, - { "mask": "+251-##-###-####", "cc": "ET", "name_en": "Ethiopia", "desc_en": "", "name_ru": "Эфиопия", "desc_ru": "" }, - { "mask": "+358(###)###-##-##", "cc": "FI", "name_en": "Finland", "desc_en": "", "name_ru": "Финляндия", "desc_ru": "" }, - { "mask": "+679-##-#####", "cc": "FJ", "name_en": "Fiji", "desc_en": "", "name_ru": "Фиджи", "desc_ru": "" }, - { "mask": "+500-#####", "cc": "FK", "name_en": "Falkland Islands", "desc_en": "", "name_ru": "Фолклендские острова", "desc_ru": "" }, - { "mask": "+691-###-####", "cc": "FM", "name_en": "F.S. Micronesia", "desc_en": "", "name_ru": "Ф.Ш. Микронезии", "desc_ru": "" }, - { "mask": "+298-###-###", "cc": "FO", "name_en": "Faroe Islands", "desc_en": "", "name_ru": "Фарерские острова", "desc_ru": "" }, - { "mask": "+262-#####-####", "cc": "FR", "name_en": "Mayotte", "desc_en": "", "name_ru": "Майотта", "desc_ru": "" }, - { "mask": "+33(###)###-###", "cc": "FR", "name_en": "France", "desc_en": "", "name_ru": "Франция", "desc_ru": "" }, - { "mask": "+508-##-####", "cc": "FR", "name_en": "St Pierre & Miquelon", "desc_en": "", "name_ru": "Сен-Пьер и Микелон", "desc_ru": "" }, - { "mask": "+590(###)###-###", "cc": "FR", "name_en": "Guadeloupe", "desc_en": "", "name_ru": "Гваделупа", "desc_ru": "" }, - { "mask": "+241-#-##-##-##", "cc": "GA", "name_en": "Gabon", "desc_en": "", "name_ru": "Габон", "desc_ru": "" }, - { "mask": "+1(473)###-####", "cc": "GD", "name_en": "Grenada", "desc_en": "", "name_ru": "Гренада", "desc_ru": "" }, - { "mask": "+995(###)###-###", "cc": "GE", "name_en": "Rep. of Georgia", "desc_en": "", "name_ru": "Грузия", "desc_ru": "" }, - { "mask": "+594-#####-####", "cc": "GF", "name_en": "Guiana (French)", "desc_en": "", "name_ru": "Фр. Гвиана", "desc_ru": "" }, - { "mask": "+233(###)###-###", "cc": "GH", "name_en": "Ghana", "desc_en": "", "name_ru": "Гана", "desc_ru": "" }, - { "mask": "+350-###-#####", "cc": "GI", "name_en": "Gibraltar", "desc_en": "", "name_ru": "Гибралтар", "desc_ru": "" }, - { "mask": "+299-##-##-##", "cc": "GL", "name_en": "Greenland", "desc_en": "", "name_ru": "Гренландия", "desc_ru": "" }, - { "mask": "+220(###)##-##", "cc": "GM", "name_en": "Gambia", "desc_en": "", "name_ru": "Гамбия", "desc_ru": "" }, - { "mask": "+224-##-###-###", "cc": "GN", "name_en": "Guinea", "desc_en": "", "name_ru": "Гвинея", "desc_ru": "" }, - { "mask": "+240-##-###-####", "cc": "GQ", "name_en": "Equatorial Guinea", "desc_en": "", "name_ru": "Экваториальная Гвинея", "desc_ru": "" }, - { "mask": "+30(###)###-####", "cc": "GR", "name_en": "Greece", "desc_en": "", "name_ru": "Греция", "desc_ru": "" }, - { "mask": "+502-#-###-####", "cc": "GT", "name_en": "Guatemala", "desc_en": "", "name_ru": "Гватемала", "desc_ru": "" }, - { "mask": "+1(671)###-####", "cc": "GU", "name_en": "Guam", "desc_en": "", "name_ru": "Гуам", "desc_ru": "" }, - { "mask": "+245-#-######", "cc": "GW", "name_en": "Guinea-Bissau", "desc_en": "", "name_ru": "Гвинея-Бисау", "desc_ru": "" }, - { "mask": "+592-###-####", "cc": "GY", "name_en": "Guyana", "desc_en": "", "name_ru": "Гайана", "desc_ru": "" }, - { "mask": "+852-####-####", "cc": "HK", "name_en": "Hong Kong", "desc_en": "", "name_ru": "Гонконг", "desc_ru": "" }, - { "mask": "+504-####-####", "cc": "HN", "name_en": "Honduras", "desc_en": "", "name_ru": "Гондурас", "desc_ru": "" }, - { "mask": "+385-##-###-###", "cc": "HR", "name_en": "Croatia", "desc_en": "", "name_ru": "Хорватия", "desc_ru": "" }, - { "mask": "+509-##-##-####", "cc": "HT", "name_en": "Haiti", "desc_en": "", "name_ru": "Гаити", "desc_ru": "" }, - { "mask": "+36(###)###-###", "cc": "HU", "name_en": "Hungary", "desc_en": "", "name_ru": "Венгрия", "desc_ru": "" }, - { "mask": "+62(8##)###-####", "cc": "ID", "name_en": "Indonesia ", "desc_en": "mobile", "name_ru": "Индонезия ", "desc_ru": "мобильные" }, - { "mask": "+62-##-###-##", "cc": "ID", "name_en": "Indonesia", "desc_en": "", "name_ru": "Индонезия", "desc_ru": "" }, - { "mask": "+62-##-###-###", "cc": "ID", "name_en": "Indonesia", "desc_en": "", "name_ru": "Индонезия", "desc_ru": "" }, - { "mask": "+62-##-###-####", "cc": "ID", "name_en": "Indonesia", "desc_en": "", "name_ru": "Индонезия", "desc_ru": "" }, - { "mask": "+62(8##)###-###", "cc": "ID", "name_en": "Indonesia ", "desc_en": "mobile", "name_ru": "Индонезия ", "desc_ru": "мобильные" }, - { "mask": "+62(8##)###-##-###", "cc": "ID", "name_en": "Indonesia ", "desc_en": "mobile", "name_ru": "Индонезия ", "desc_ru": "мобильные" }, - { "mask": "+353(###)###-###", "cc": "IE", "name_en": "Ireland", "desc_en": "", "name_ru": "Ирландия", "desc_ru": "" }, - { "mask": "+972-5#-###-####", "cc": "IL", "name_en": "Israel ", "desc_en": "mobile", "name_ru": "Израиль ", "desc_ru": "мобильные" }, - { "mask": "+972-#-###-####", "cc": "IL", "name_en": "Israel", "desc_en": "", "name_ru": "Израиль", "desc_ru": "" }, - { "mask": "+91(####)###-###", "cc": "IN", "name_en": "India", "desc_en": "", "name_ru": "Индия", "desc_ru": "" }, - { "mask": "+246-###-####", "cc": "IO", "name_en": "Diego Garcia", "desc_en": "", "name_ru": "Диего-Гарсия", "desc_ru": "" }, - { "mask": "+964(###)###-####", "cc": "IQ", "name_en": "Iraq", "desc_en": "", "name_ru": "Ирак", "desc_ru": "" }, - { "mask": "+98(###)###-####", "cc": "IR", "name_en": "Iran", "desc_en": "", "name_ru": "Иран", "desc_ru": "" }, - { "mask": "+354-###-####", "cc": "IS", "name_en": "Iceland", "desc_en": "", "name_ru": "Исландия", "desc_ru": "" }, - { "mask": "+39(###)####-###", "cc": "IT", "name_en": "Italy", "desc_en": "", "name_ru": "Италия", "desc_ru": "" }, - { "mask": "+1(876)###-####", "cc": "JM", "name_en": "Jamaica", "desc_en": "", "name_ru": "Ямайка", "desc_ru": "" }, - { "mask": "+962-#-####-####", "cc": "JO", "name_en": "Jordan", "desc_en": "", "name_ru": "Иордания", "desc_ru": "" }, - { "mask": "+81-##-####-####", "cc": "JP", "name_en": "Japan ", "desc_en": "mobile", "name_ru": "Япония ", "desc_ru": "мобильные" }, - { "mask": "+81(###)###-###", "cc": "JP", "name_en": "Japan", "desc_en": "", "name_ru": "Япония", "desc_ru": "" }, - { "mask": "+254-###-######", "cc": "KE", "name_en": "Kenya", "desc_en": "", "name_ru": "Кения", "desc_ru": "" }, - { "mask": "+996(###)###-###", "cc": "KG", "name_en": "Kyrgyzstan", "desc_en": "", "name_ru": "Киргизия", "desc_ru": "" }, - { "mask": "+855-##-###-###", "cc": "KH", "name_en": "Cambodia", "desc_en": "", "name_ru": "Камбоджа", "desc_ru": "" }, - { "mask": "+686-##-###", "cc": "KI", "name_en": "Kiribati", "desc_en": "", "name_ru": "Кирибати", "desc_ru": "" }, - { "mask": "+269-##-#####", "cc": "KM", "name_en": "Comoros", "desc_en": "", "name_ru": "Коморы", "desc_ru": "" }, - { "mask": "+1(869)###-####", "cc": "KN", "name_en": "Saint Kitts & Nevis", "desc_en": "", "name_ru": "Сент-Китс и Невис", "desc_ru": "" }, - { "mask": "+850-191-###-####", "cc": "KP", "name_en": "DPR Korea (North) ", "desc_en": "mobile", "name_ru": "Корейская НДР ", "desc_ru": "мобильные" }, - { "mask": "+850-##-###-###", "cc": "KP", "name_en": "DPR Korea (North)", "desc_en": "", "name_ru": "Корейская НДР", "desc_ru": "" }, - { "mask": "+850-###-####-###", "cc": "KP", "name_en": "DPR Korea (North)", "desc_en": "", "name_ru": "Корейская НДР", "desc_ru": "" }, - { "mask": "+850-###-###", "cc": "KP", "name_en": "DPR Korea (North)", "desc_en": "", "name_ru": "Корейская НДР", "desc_ru": "" }, - { "mask": "+850-####-####", "cc": "KP", "name_en": "DPR Korea (North)", "desc_en": "", "name_ru": "Корейская НДР", "desc_ru": "" }, - { "mask": "+850-####-#############", "cc": "KP", "name_en": "DPR Korea (North)", "desc_en": "", "name_ru": "Корейская НДР", "desc_ru": "" }, - { "mask": "+82-##-###-####", "cc": "KR", "name_en": "Korea (South)", "desc_en": "", "name_ru": "Респ. Корея", "desc_ru": "" }, - { "mask": "+965-####-####", "cc": "KW", "name_en": "Kuwait", "desc_en": "", "name_ru": "Кувейт", "desc_ru": "" }, - { "mask": "+1(345)###-####", "cc": "KY", "name_en": "Cayman Islands", "desc_en": "", "name_ru": "Каймановы острова", "desc_ru": "" }, - { "mask": "+7(6##)###-##-##", "cc": "KZ", "name_en": "Kazakhstan", "desc_en": "", "name_ru": "Казахстан", "desc_ru": "" }, - { "mask": "+7(7##)###-##-##", "cc": "KZ", "name_en": "Kazakhstan", "desc_en": "", "name_ru": "Казахстан", "desc_ru": "" }, - { "mask": "+856(20##)###-###", "cc": "LA", "name_en": "Laos ", "desc_en": "mobile", "name_ru": "Лаос ", "desc_ru": "мобильные" }, - { "mask": "+856-##-###-###", "cc": "LA", "name_en": "Laos", "desc_en": "", "name_ru": "Лаос", "desc_ru": "" }, - { "mask": "+961-##-###-###", "cc": "LB", "name_en": "Lebanon ", "desc_en": "mobile", "name_ru": "Ливан ", "desc_ru": "мобильные" }, - { "mask": "+961-#-###-###", "cc": "LB", "name_en": "Lebanon", "desc_en": "", "name_ru": "Ливан", "desc_ru": "" }, - { "mask": "+1(758)###-####", "cc": "LC", "name_en": "Saint Lucia", "desc_en": "", "name_ru": "Сент-Люсия", "desc_ru": "" }, - { "mask": "+423(###)###-####", "cc": "LI", "name_en": "Liechtenstein", "desc_en": "", "name_ru": "Лихтенштейн", "desc_ru": "" }, - { "mask": "+94-##-###-####", "cc": "LK", "name_en": "Sri Lanka", "desc_en": "", "name_ru": "Шри-Ланка", "desc_ru": "" }, - { "mask": "+231-##-###-###", "cc": "LR", "name_en": "Liberia", "desc_en": "", "name_ru": "Либерия", "desc_ru": "" }, - { "mask": "+266-#-###-####", "cc": "LS", "name_en": "Lesotho", "desc_en": "", "name_ru": "Лесото", "desc_ru": "" }, - { "mask": "+370(###)##-###", "cc": "LT", "name_en": "Lithuania", "desc_en": "", "name_ru": "Литва", "desc_ru": "" }, - { "mask": "+352(###)###-###", "cc": "LU", "name_en": "Luxembourg", "desc_en": "", "name_ru": "Люксембург", "desc_ru": "" }, - { "mask": "+371-##-###-###", "cc": "LV", "name_en": "Latvia", "desc_en": "", "name_ru": "Латвия", "desc_ru": "" }, - { "mask": "+218-##-###-###", "cc": "LY", "name_en": "Libya", "desc_en": "", "name_ru": "Ливия", "desc_ru": "" }, - { "mask": "+218-21-###-####", "cc": "LY", "name_en": "Libya", "desc_en": "Tripoli", "name_ru": "Ливия", "desc_ru": "Триполи" }, - { "mask": "+212-##-####-###", "cc": "MA", "name_en": "Morocco", "desc_en": "", "name_ru": "Марокко", "desc_ru": "" }, - { "mask": "+377(###)###-###", "cc": "MC", "name_en": "Monaco", "desc_en": "", "name_ru": "Монако", "desc_ru": "" }, - { "mask": "+377-##-###-###", "cc": "MC", "name_en": "Monaco", "desc_en": "", "name_ru": "Монако", "desc_ru": "" }, - { "mask": "+373-####-####", "cc": "MD", "name_en": "Moldova", "desc_en": "", "name_ru": "Молдова", "desc_ru": "" }, - { "mask": "+382-##-###-###", "cc": "ME", "name_en": "Montenegro", "desc_en": "", "name_ru": "Черногория", "desc_ru": "" }, - { "mask": "+261-##-##-#####", "cc": "MG", "name_en": "Madagascar", "desc_en": "", "name_ru": "Мадагаскар", "desc_ru": "" }, - { "mask": "+692-###-####", "cc": "MH", "name_en": "Marshall Islands", "desc_en": "", "name_ru": "Маршалловы Острова", "desc_ru": "" }, - { "mask": "+389-##-###-###", "cc": "MK", "name_en": "Republic of Macedonia", "desc_en": "", "name_ru": "Респ. Македония", "desc_ru": "" }, - { "mask": "+223-##-##-####", "cc": "ML", "name_en": "Mali", "desc_en": "", "name_ru": "Мали", "desc_ru": "" }, - { "mask": "+95-##-###-###", "cc": "MM", "name_en": "Burma (Myanmar)", "desc_en": "", "name_ru": "Бирма (Мьянма)", "desc_ru": "" }, - { "mask": "+95-#-###-###", "cc": "MM", "name_en": "Burma (Myanmar)", "desc_en": "", "name_ru": "Бирма (Мьянма)", "desc_ru": "" }, - { "mask": "+95-###-###", "cc": "MM", "name_en": "Burma (Myanmar)", "desc_en": "", "name_ru": "Бирма (Мьянма)", "desc_ru": "" }, - { "mask": "+976-##-##-####", "cc": "MN", "name_en": "Mongolia", "desc_en": "", "name_ru": "Монголия", "desc_ru": "" }, - { "mask": "+853-####-####", "cc": "MO", "name_en": "Macau", "desc_en": "", "name_ru": "Макао", "desc_ru": "" }, - { "mask": "+1(670)###-####", "cc": "MP", "name_en": "Northern Mariana Islands", "desc_en": "", "name_ru": "Северные Марианские острова Сайпан", "desc_ru": "" }, - { "mask": "+596(###)##-##-##", "cc": "MQ", "name_en": "Martinique", "desc_en": "", "name_ru": "Мартиника", "desc_ru": "" }, - { "mask": "+222-##-##-####", "cc": "MR", "name_en": "Mauritania", "desc_en": "", "name_ru": "Мавритания", "desc_ru": "" }, - { "mask": "+1(664)###-####", "cc": "MS", "name_en": "Montserrat", "desc_en": "", "name_ru": "Монтсеррат", "desc_ru": "" }, - { "mask": "+356-####-####", "cc": "MT", "name_en": "Malta", "desc_en": "", "name_ru": "Мальта", "desc_ru": "" }, - { "mask": "+230-###-####", "cc": "MU", "name_en": "Mauritius", "desc_en": "", "name_ru": "Маврикий", "desc_ru": "" }, - { "mask": "+960-###-####", "cc": "MV", "name_en": "Maldives", "desc_en": "", "name_ru": "Мальдивские острова", "desc_ru": "" }, - { "mask": "+265-1-###-###", "cc": "MW", "name_en": "Malawi", "desc_en": "Telecom Ltd", "name_ru": "Малави", "desc_ru": "Telecom Ltd" }, - { "mask": "+265-#-####-####", "cc": "MW", "name_en": "Malawi", "desc_en": "", "name_ru": "Малави", "desc_ru": "" }, - { "mask": "+52(###)###-####", "cc": "MX", "name_en": "Mexico", "desc_en": "", "name_ru": "Мексика", "desc_ru": "" }, - { "mask": "+52-##-##-####", "cc": "MX", "name_en": "Mexico", "desc_en": "", "name_ru": "Мексика", "desc_ru": "" }, - { "mask": "+60-##-###-####", "cc": "MY", "name_en": "Malaysia ", "desc_en": "mobile", "name_ru": "Малайзия ", "desc_ru": "мобильные" }, - { "mask": "+60(###)###-###", "cc": "MY", "name_en": "Malaysia", "desc_en": "", "name_ru": "Малайзия", "desc_ru": "" }, - { "mask": "+60-##-###-###", "cc": "MY", "name_en": "Malaysia", "desc_en": "", "name_ru": "Малайзия", "desc_ru": "" }, - { "mask": "+60-#-###-###", "cc": "MY", "name_en": "Malaysia", "desc_en": "", "name_ru": "Малайзия", "desc_ru": "" }, - { "mask": "+258-##-###-###", "cc": "MZ", "name_en": "Mozambique", "desc_en": "", "name_ru": "Мозамбик", "desc_ru": "" }, - { "mask": "+264-##-###-####", "cc": "NA", "name_en": "Namibia", "desc_en": "", "name_ru": "Намибия", "desc_ru": "" }, - { "mask": "+687-##-####", "cc": "NC", "name_en": "New Caledonia", "desc_en": "", "name_ru": "Новая Каледония", "desc_ru": "" }, - { "mask": "+227-##-##-####", "cc": "NE", "name_en": "Niger", "desc_en": "", "name_ru": "Нигер", "desc_ru": "" }, - { "mask": "+672-3##-###", "cc": "NF", "name_en": "Norfolk Island", "desc_en": "", "name_ru": "Норфолк (остров)", "desc_ru": "" }, - { "mask": "+234(###)###-####", "cc": "NG", "name_en": "Nigeria", "desc_en": "", "name_ru": "Нигерия", "desc_ru": "" }, - { "mask": "+234-##-###-###", "cc": "NG", "name_en": "Nigeria", "desc_en": "", "name_ru": "Нигерия", "desc_ru": "" }, - { "mask": "+234-##-###-##", "cc": "NG", "name_en": "Nigeria", "desc_en": "", "name_ru": "Нигерия", "desc_ru": "" }, - { "mask": "+234(###)###-####", "cc": "NG", "name_en": "Nigeria ", "desc_en": "mobile", "name_ru": "Нигерия ", "desc_ru": "мобильные" }, - { "mask": "+505-####-####", "cc": "NI", "name_en": "Nicaragua", "desc_en": "", "name_ru": "Никарагуа", "desc_ru": "" }, - { "mask": "+31-##-###-####", "cc": "NL", "name_en": "Netherlands", "desc_en": "", "name_ru": "Нидерланды", "desc_ru": "" }, - { "mask": "+47(###)##-###", "cc": "NO", "name_en": "Norway", "desc_en": "", "name_ru": "Норвегия", "desc_ru": "" }, - { "mask": "+977-##-###-###", "cc": "NP", "name_en": "Nepal", "desc_en": "", "name_ru": "Непал", "desc_ru": "" }, - { "mask": "+674-###-####", "cc": "NR", "name_en": "Nauru", "desc_en": "", "name_ru": "Науру", "desc_ru": "" }, - { "mask": "+683-####", "cc": "NU", "name_en": "Niue", "desc_en": "", "name_ru": "Ниуэ", "desc_ru": "" }, - { "mask": "+64(###)###-###", "cc": "NZ", "name_en": "New Zealand", "desc_en": "", "name_ru": "Новая Зеландия", "desc_ru": "" }, - { "mask": "+64-##-###-###", "cc": "NZ", "name_en": "New Zealand", "desc_en": "", "name_ru": "Новая Зеландия", "desc_ru": "" }, - { "mask": "+64(###)###-####", "cc": "NZ", "name_en": "New Zealand", "desc_en": "", "name_ru": "Новая Зеландия", "desc_ru": "" }, - { "mask": "+968-##-###-###", "cc": "OM", "name_en": "Oman", "desc_en": "", "name_ru": "Оман", "desc_ru": "" }, - { "mask": "+507-###-####", "cc": "PA", "name_en": "Panama", "desc_en": "", "name_ru": "Панама", "desc_ru": "" }, - { "mask": "+51(###)###-###", "cc": "PE", "name_en": "Peru", "desc_en": "", "name_ru": "Перу", "desc_ru": "" }, - { "mask": "+689-##-##-##", "cc": "PF", "name_en": "French Polynesia", "desc_en": "", "name_ru": "Французская Полинезия (Таити)", "desc_ru": "" }, - { "mask": "+675(###)##-###", "cc": "PG", "name_en": "Papua New Guinea", "desc_en": "", "name_ru": "Папуа-Новая Гвинея", "desc_ru": "" }, - { "mask": "+63(###)###-####", "cc": "PH", "name_en": "Philippines", "desc_en": "", "name_ru": "Филиппины", "desc_ru": "" }, - { "mask": "+92(###)###-####", "cc": "PK", "name_en": "Pakistan", "desc_en": "", "name_ru": "Пакистан", "desc_ru": "" }, - { "mask": "+48(###)###-###", "cc": "PL", "name_en": "Poland", "desc_en": "", "name_ru": "Польша", "desc_ru": "" }, - { "mask": "+970-##-###-####", "cc": "PS", "name_en": "Palestine", "desc_en": "", "name_ru": "Палестина", "desc_ru": "" }, - { "mask": "+351-##-###-####", "cc": "PT", "name_en": "Portugal", "desc_en": "", "name_ru": "Португалия", "desc_ru": "" }, - { "mask": "+680-###-####", "cc": "PW", "name_en": "Palau", "desc_en": "", "name_ru": "Палау", "desc_ru": "" }, - { "mask": "+595(###)###-###", "cc": "PY", "name_en": "Paraguay", "desc_en": "", "name_ru": "Парагвай", "desc_ru": "" }, - { "mask": "+974-####-####", "cc": "QA", "name_en": "Qatar", "desc_en": "", "name_ru": "Катар", "desc_ru": "" }, - { "mask": "+262-#####-####", "cc": "RE", "name_en": "Reunion", "desc_en": "", "name_ru": "Реюньон", "desc_ru": "" }, - { "mask": "+40-##-###-####", "cc": "RO", "name_en": "Romania", "desc_en": "", "name_ru": "Румыния", "desc_ru": "" }, - { "mask": "+381-##-###-####", "cc": "RS", "name_en": "Serbia", "desc_en": "", "name_ru": "Сербия", "desc_ru": "" }, - { "mask": "+7(###)###-##-##", "cc": "RU", "name_en": "Russia", "desc_en": "", "name_ru": "Россия", "desc_ru": "" }, - { "mask": "+250(###)###-###", "cc": "RW", "name_en": "Rwanda", "desc_en": "", "name_ru": "Руанда", "desc_ru": "" }, - { "mask": "+966-5-####-####", "cc": "SA", "name_en": "Saudi Arabia ", "desc_en": "mobile", "name_ru": "Саудовская Аравия ", "desc_ru": "мобильные" }, - { "mask": "+966-#-###-####", "cc": "SA", "name_en": "Saudi Arabia", "desc_en": "", "name_ru": "Саудовская Аравия", "desc_ru": "" }, - { "mask": "+677-###-####", "cc": "SB", "name_en": "Solomon Islands ", "desc_en": "mobile", "name_ru": "Соломоновы Острова ", "desc_ru": "мобильные" }, - { "mask": "+677-#####", "cc": "SB", "name_en": "Solomon Islands", "desc_en": "", "name_ru": "Соломоновы Острова", "desc_ru": "" }, - { "mask": "+248-#-###-###", "cc": "SC", "name_en": "Seychelles", "desc_en": "", "name_ru": "Сейшелы", "desc_ru": "" }, - { "mask": "+249-##-###-####", "cc": "SD", "name_en": "Sudan", "desc_en": "", "name_ru": "Судан", "desc_ru": "" }, - { "mask": "+46-##-###-####", "cc": "SE", "name_en": "Sweden", "desc_en": "", "name_ru": "Швеция", "desc_ru": "" }, - { "mask": "+65-####-####", "cc": "SG", "name_en": "Singapore", "desc_en": "", "name_ru": "Сингапур", "desc_ru": "" }, - { "mask": "+290-####", "cc": "SH", "name_en": "Saint Helena", "desc_en": "", "name_ru": "Остров Святой Елены", "desc_ru": "" }, - { "mask": "+290-####", "cc": "SH", "name_en": "Tristan da Cunha", "desc_en": "", "name_ru": "Тристан-да-Кунья", "desc_ru": "" }, - { "mask": "+386-##-###-###", "cc": "SI", "name_en": "Slovenia", "desc_en": "", "name_ru": "Словения", "desc_ru": "" }, - { "mask": "+421(###)###-###", "cc": "SK", "name_en": "Slovakia", "desc_en": "", "name_ru": "Словакия", "desc_ru": "" }, - { "mask": "+232-##-######", "cc": "SL", "name_en": "Sierra Leone", "desc_en": "", "name_ru": "Сьерра-Леоне", "desc_ru": "" }, - { "mask": "+378-####-######", "cc": "SM", "name_en": "San Marino", "desc_en": "", "name_ru": "Сан-Марино", "desc_ru": "" }, - { "mask": "+221-##-###-####", "cc": "SN", "name_en": "Senegal", "desc_en": "", "name_ru": "Сенегал", "desc_ru": "" }, - { "mask": "+252-##-###-###", "cc": "SO", "name_en": "Somalia", "desc_en": "", "name_ru": "Сомали", "desc_ru": "" }, - { "mask": "+252-#-###-###", "cc": "SO", "name_en": "Somalia", "desc_en": "", "name_ru": "Сомали", "desc_ru": "" }, - { "mask": "+252-#-###-###", "cc": "SO", "name_en": "Somalia ", "desc_en": "mobile", "name_ru": "Сомали ", "desc_ru": "мобильные" }, - { "mask": "+597-###-####", "cc": "SR", "name_en": "Suriname ", "desc_en": "mobile", "name_ru": "Суринам ", "desc_ru": "мобильные" }, - { "mask": "+597-###-###", "cc": "SR", "name_en": "Suriname", "desc_en": "", "name_ru": "Суринам", "desc_ru": "" }, - { "mask": "+211-##-###-####", "cc": "SS", "name_en": "South Sudan", "desc_en": "", "name_ru": "Южный Судан", "desc_ru": "" }, - { "mask": "+239-##-#####", "cc": "ST", "name_en": "Sao Tome and Principe", "desc_en": "", "name_ru": "Сан-Томе и Принсипи", "desc_ru": "" }, - { "mask": "+503-##-##-####", "cc": "SV", "name_en": "El Salvador", "desc_en": "", "name_ru": "Сальвадор", "desc_ru": "" }, - { "mask": "+1(721)###-####", "cc": "SX", "name_en": "Sint Maarten", "desc_en": "", "name_ru": "Синт-Маартен", "desc_ru": "" }, - { "mask": "+963-##-####-###", "cc": "SY", "name_en": "Syrian Arab Republic", "desc_en": "", "name_ru": "Сирийская арабская республика", "desc_ru": "" }, - { "mask": "+268-##-##-####", "cc": "SZ", "name_en": "Swaziland", "desc_en": "", "name_ru": "Свазиленд", "desc_ru": "" }, - { "mask": "+1(649)###-####", "cc": "TC", "name_en": "Turks & Caicos", "desc_en": "", "name_ru": "Тёркс и Кайкос", "desc_ru": "" }, - { "mask": "+235-##-##-##-##", "cc": "TD", "name_en": "Chad", "desc_en": "", "name_ru": "Чад", "desc_ru": "" }, - { "mask": "+228-##-###-###", "cc": "TG", "name_en": "Togo", "desc_en": "", "name_ru": "Того", "desc_ru": "" }, - { "mask": "+66-##-###-####", "cc": "TH", "name_en": "Thailand ", "desc_en": "mobile", "name_ru": "Таиланд ", "desc_ru": "мобильные" }, - { "mask": "+66-##-###-###", "cc": "TH", "name_en": "Thailand", "desc_en": "", "name_ru": "Таиланд", "desc_ru": "" }, - { "mask": "+992-##-###-####", "cc": "TJ", "name_en": "Tajikistan", "desc_en": "", "name_ru": "Таджикистан", "desc_ru": "" }, - { "mask": "+690-####", "cc": "TK", "name_en": "Tokelau", "desc_en": "", "name_ru": "Токелау", "desc_ru": "" }, - { "mask": "+670-###-####", "cc": "TL", "name_en": "East Timor", "desc_en": "", "name_ru": "Восточный Тимор", "desc_ru": "" }, - { "mask": "+670-77#-#####", "cc": "TL", "name_en": "East Timor", "desc_en": "Timor Telecom", "name_ru": "Восточный Тимор", "desc_ru": "Timor Telecom" }, - { "mask": "+670-78#-#####", "cc": "TL", "name_en": "East Timor", "desc_en": "Timor Telecom", "name_ru": "Восточный Тимор", "desc_ru": "Timor Telecom" }, - { "mask": "+993-#-###-####", "cc": "TM", "name_en": "Turkmenistan", "desc_en": "", "name_ru": "Туркменистан", "desc_ru": "" }, - { "mask": "+216-##-###-###", "cc": "TN", "name_en": "Tunisia", "desc_en": "", "name_ru": "Тунис", "desc_ru": "" }, - { "mask": "+676-#####", "cc": "TO", "name_en": "Tonga", "desc_en": "", "name_ru": "Тонга", "desc_ru": "" }, - { "mask": "+90(###)###-####", "cc": "TR", "name_en": "Turkey", "desc_en": "", "name_ru": "Турция", "desc_ru": "" }, - { "mask": "+1(868)###-####", "cc": "TT", "name_en": "Trinidad & Tobago", "desc_en": "", "name_ru": "Тринидад и Тобаго", "desc_ru": "" }, - { "mask": "+688-90####", "cc": "TV", "name_en": "Tuvalu ", "desc_en": "mobile", "name_ru": "Тувалу ", "desc_ru": "мобильные" }, - { "mask": "+688-2####", "cc": "TV", "name_en": "Tuvalu", "desc_en": "", "name_ru": "Тувалу", "desc_ru": "" }, - { "mask": "+886-#-####-####", "cc": "TW", "name_en": "Taiwan", "desc_en": "", "name_ru": "Тайвань", "desc_ru": "" }, - { "mask": "+886-####-####", "cc": "TW", "name_en": "Taiwan", "desc_en": "", "name_ru": "Тайвань", "desc_ru": "" }, - { "mask": "+255-##-###-####", "cc": "TZ", "name_en": "Tanzania", "desc_en": "", "name_ru": "Танзания", "desc_ru": "" }, - { "mask": "+380(##)###-##-##", "cc": "UA", "name_en": "Ukraine", "desc_en": "", "name_ru": "Украина", "desc_ru": "" }, - { "mask": "+256(###)###-###", "cc": "UG", "name_en": "Uganda", "desc_en": "", "name_ru": "Уганда", "desc_ru": "" }, - { "mask": "+44-##-####-####", "cc": "UK", "name_en": "United Kingdom", "desc_en": "", "name_ru": "Великобритания", "desc_ru": "" }, - { "mask": "+598-#-###-##-##", "cc": "UY", "name_en": "Uruguay", "desc_en": "", "name_ru": "Уругвай", "desc_ru": "" }, - { "mask": "+998-##-###-####", "cc": "UZ", "name_en": "Uzbekistan", "desc_en": "", "name_ru": "Узбекистан", "desc_ru": "" }, - { "mask": "+39-6-698-#####", "cc": "VA", "name_en": "Vatican City", "desc_en": "", "name_ru": "Ватикан", "desc_ru": "" }, - { "mask": "+1(784)###-####", "cc": "VC", "name_en": "Saint Vincent & the Grenadines", "desc_en": "", "name_ru": "Сент-Винсент и Гренадины", "desc_ru": "" }, - { "mask": "+58(###)###-####", "cc": "VE", "name_en": "Venezuela", "desc_en": "", "name_ru": "Венесуэла", "desc_ru": "" }, - { "mask": "+1(284)###-####", "cc": "VG", "name_en": "British Virgin Islands", "desc_en": "", "name_ru": "Британские Виргинские острова", "desc_ru": "" }, - { "mask": "+1(340)###-####", "cc": "VI", "name_en": "US Virgin Islands", "desc_en": "", "name_ru": "Американские Виргинские острова", "desc_ru": "" }, - { "mask": "+84-##-####-###", "cc": "VN", "name_en": "Vietnam", "desc_en": "", "name_ru": "Вьетнам", "desc_ru": "" }, - { "mask": "+84(###)####-###", "cc": "VN", "name_en": "Vietnam", "desc_en": "", "name_ru": "Вьетнам", "desc_ru": "" }, - { "mask": "+678-##-#####", "cc": "VU", "name_en": "Vanuatu ", "desc_en": "mobile", "name_ru": "Вануату ", "desc_ru": "мобильные" }, - { "mask": "+678-#####", "cc": "VU", "name_en": "Vanuatu", "desc_en": "", "name_ru": "Вануату", "desc_ru": "" }, - { "mask": "+681-##-####", "cc": "WF", "name_en": "Wallis and Futuna", "desc_en": "", "name_ru": "Уоллис и Футуна", "desc_ru": "" }, - { "mask": "+685-##-####", "cc": "WS", "name_en": "Samoa", "desc_en": "", "name_ru": "Самоа", "desc_ru": "" }, - { "mask": "+967-###-###-###", "cc": "YE", "name_en": "Yemen ", "desc_en": "mobile", "name_ru": "Йемен ", "desc_ru": "мобильные" }, - { "mask": "+967-#-###-###", "cc": "YE", "name_en": "Yemen", "desc_en": "", "name_ru": "Йемен", "desc_ru": "" }, - { "mask": "+967-##-###-###", "cc": "YE", "name_en": "Yemen", "desc_en": "", "name_ru": "Йемен", "desc_ru": "" }, - { "mask": "+27-##-###-####", "cc": "ZA", "name_en": "South Africa", "desc_en": "", "name_ru": "Южно-Африканская Респ.", "desc_ru": "" }, - { "mask": "+260-##-###-####", "cc": "ZM", "name_en": "Zambia", "desc_en": "", "name_ru": "Замбия", "desc_ru": "" }, - { "mask": "+263-#-######", "cc": "ZW", "name_en": "Zimbabwe", "desc_en": "", "name_ru": "Зимбабве", "desc_ru": "" }, - { "mask": "+1(###)###-####", "cc": ["US", "CA"], "name_en": "USA and Canada", "desc_en": "", "name_ru": "США и Канада", "desc_ru": "" } -] diff --git a/admin/plugins/input-mask/phone-codes/readme.txt b/admin/plugins/input-mask/phone-codes/readme.txt deleted file mode 100644 index 0a170a7..0000000 --- a/admin/plugins/input-mask/phone-codes/readme.txt +++ /dev/null @@ -1 +0,0 @@ -more phone masks can be found at https://github.com/andr-04/inputmask-multi \ No newline at end of file diff --git a/admin/plugins/jQueryUI/jquery-ui.js b/admin/plugins/jQueryUI/jquery-ui.js deleted file mode 100644 index 31ee9cd..0000000 --- a/admin/plugins/jQueryUI/jquery-ui.js +++ /dev/null @@ -1,16617 +0,0 @@ -/*! jQuery UI - v1.11.4 - 2015-03-11 -* http://jqueryui.com -* Includes: core.js, widget.js, mouse.js, position.js, accordion.js, autocomplete.js, button.js, datepicker.js, dialog.js, draggable.js, droppable.js, effect.js, effect-blind.js, effect-bounce.js, effect-clip.js, effect-drop.js, effect-explode.js, effect-fade.js, effect-fold.js, effect-highlight.js, effect-puff.js, effect-pulsate.js, effect-scale.js, effect-shake.js, effect-size.js, effect-slide.js, effect-transfer.js, menu.js, progressbar.js, resizable.js, selectable.js, selectmenu.js, slider.js, sortable.js, spinner.js, tabs.js, tooltip.js -* Copyright 2015 jQuery Foundation and other contributors; Licensed MIT */ - -(function( factory ) { - if ( typeof define === "function" && define.amd ) { - - // AMD. Register as an anonymous module. - define([ "jquery" ], factory ); - } else { - - // Browser globals - factory( jQuery ); - } -}(function( $ ) { -/*! - * jQuery UI Core 1.11.4 - * http://jqueryui.com - * - * Copyright jQuery Foundation and other contributors - * Released under the MIT license. - * http://jquery.org/license - * - * http://api.jqueryui.com/category/ui-core/ - */ - - -// $.ui might exist from components with no dependencies, e.g., $.ui.position -$.ui = $.ui || {}; - -$.extend( $.ui, { - version: "1.11.4", - - keyCode: { - BACKSPACE: 8, - COMMA: 188, - DELETE: 46, - DOWN: 40, - END: 35, - ENTER: 13, - ESCAPE: 27, - HOME: 36, - LEFT: 37, - PAGE_DOWN: 34, - PAGE_UP: 33, - PERIOD: 190, - RIGHT: 39, - SPACE: 32, - TAB: 9, - UP: 38 - } -}); - -// plugins -$.fn.extend({ - scrollParent: function( includeHidden ) { - var position = this.css( "position" ), - excludeStaticParent = position === "absolute", - overflowRegex = includeHidden ? /(auto|scroll|hidden)/ : /(auto|scroll)/, - scrollParent = this.parents().filter( function() { - var parent = $( this ); - if ( excludeStaticParent && parent.css( "position" ) === "static" ) { - return false; - } - return overflowRegex.test( parent.css( "overflow" ) + parent.css( "overflow-y" ) + parent.css( "overflow-x" ) ); - }).eq( 0 ); - - return position === "fixed" || !scrollParent.length ? $( this[ 0 ].ownerDocument || document ) : scrollParent; - }, - - uniqueId: (function() { - var uuid = 0; - - return function() { - return this.each(function() { - if ( !this.id ) { - this.id = "ui-id-" + ( ++uuid ); - } - }); - }; - })(), - - removeUniqueId: function() { - return this.each(function() { - if ( /^ui-id-\d+$/.test( this.id ) ) { - $( this ).removeAttr( "id" ); - } - }); - } -}); - -// selectors -function focusable( element, isTabIndexNotNaN ) { - var map, mapName, img, - nodeName = element.nodeName.toLowerCase(); - if ( "area" === nodeName ) { - map = element.parentNode; - mapName = map.name; - if ( !element.href || !mapName || map.nodeName.toLowerCase() !== "map" ) { - return false; - } - img = $( "img[usemap='#" + mapName + "']" )[ 0 ]; - return !!img && visible( img ); - } - return ( /^(input|select|textarea|button|object)$/.test( nodeName ) ? - !element.disabled : - "a" === nodeName ? - element.href || isTabIndexNotNaN : - isTabIndexNotNaN) && - // the element and all of its ancestors must be visible - visible( element ); -} - -function visible( element ) { - return $.expr.filters.visible( element ) && - !$( element ).parents().addBack().filter(function() { - return $.css( this, "visibility" ) === "hidden"; - }).length; -} - -$.extend( $.expr[ ":" ], { - data: $.expr.createPseudo ? - $.expr.createPseudo(function( dataName ) { - return function( elem ) { - return !!$.data( elem, dataName ); - }; - }) : - // support: jQuery <1.8 - function( elem, i, match ) { - return !!$.data( elem, match[ 3 ] ); - }, - - focusable: function( element ) { - return focusable( element, !isNaN( $.attr( element, "tabindex" ) ) ); - }, - - tabbable: function( element ) { - var tabIndex = $.attr( element, "tabindex" ), - isTabIndexNaN = isNaN( tabIndex ); - return ( isTabIndexNaN || tabIndex >= 0 ) && focusable( element, !isTabIndexNaN ); - } -}); - -// support: jQuery <1.8 -if ( !$( "<a>" ).outerWidth( 1 ).jquery ) { - $.each( [ "Width", "Height" ], function( i, name ) { - var side = name === "Width" ? [ "Left", "Right" ] : [ "Top", "Bottom" ], - type = name.toLowerCase(), - orig = { - innerWidth: $.fn.innerWidth, - innerHeight: $.fn.innerHeight, - outerWidth: $.fn.outerWidth, - outerHeight: $.fn.outerHeight - }; - - function reduce( elem, size, border, margin ) { - $.each( side, function() { - size -= parseFloat( $.css( elem, "padding" + this ) ) || 0; - if ( border ) { - size -= parseFloat( $.css( elem, "border" + this + "Width" ) ) || 0; - } - if ( margin ) { - size -= parseFloat( $.css( elem, "margin" + this ) ) || 0; - } - }); - return size; - } - - $.fn[ "inner" + name ] = function( size ) { - if ( size === undefined ) { - return orig[ "inner" + name ].call( this ); - } - - return this.each(function() { - $( this ).css( type, reduce( this, size ) + "px" ); - }); - }; - - $.fn[ "outer" + name] = function( size, margin ) { - if ( typeof size !== "number" ) { - return orig[ "outer" + name ].call( this, size ); - } - - return this.each(function() { - $( this).css( type, reduce( this, size, true, margin ) + "px" ); - }); - }; - }); -} - -// support: jQuery <1.8 -if ( !$.fn.addBack ) { - $.fn.addBack = function( selector ) { - return this.add( selector == null ? - this.prevObject : this.prevObject.filter( selector ) - ); - }; -} - -// support: jQuery 1.6.1, 1.6.2 (http://bugs.jquery.com/ticket/9413) -if ( $( "<a>" ).data( "a-b", "a" ).removeData( "a-b" ).data( "a-b" ) ) { - $.fn.removeData = (function( removeData ) { - return function( key ) { - if ( arguments.length ) { - return removeData.call( this, $.camelCase( key ) ); - } else { - return removeData.call( this ); - } - }; - })( $.fn.removeData ); -} - -// deprecated -$.ui.ie = !!/msie [\w.]+/.exec( navigator.userAgent.toLowerCase() ); - -$.fn.extend({ - focus: (function( orig ) { - return function( delay, fn ) { - return typeof delay === "number" ? - this.each(function() { - var elem = this; - setTimeout(function() { - $( elem ).focus(); - if ( fn ) { - fn.call( elem ); - } - }, delay ); - }) : - orig.apply( this, arguments ); - }; - })( $.fn.focus ), - - disableSelection: (function() { - var eventType = "onselectstart" in document.createElement( "div" ) ? - "selectstart" : - "mousedown"; - - return function() { - return this.bind( eventType + ".ui-disableSelection", function( event ) { - event.preventDefault(); - }); - }; - })(), - - enableSelection: function() { - return this.unbind( ".ui-disableSelection" ); - }, - - zIndex: function( zIndex ) { - if ( zIndex !== undefined ) { - return this.css( "zIndex", zIndex ); - } - - if ( this.length ) { - var elem = $( this[ 0 ] ), position, value; - while ( elem.length && elem[ 0 ] !== document ) { - // Ignore z-index if position is set to a value where z-index is ignored by the browser - // This makes behavior of this function consistent across browsers - // WebKit always returns auto if the element is positioned - position = elem.css( "position" ); - if ( position === "absolute" || position === "relative" || position === "fixed" ) { - // IE returns 0 when zIndex is not specified - // other browsers return a string - // we ignore the case of nested elements with an explicit value of 0 - // <div style="z-index: -10;"><div style="z-index: 0;"></div></div> - value = parseInt( elem.css( "zIndex" ), 10 ); - if ( !isNaN( value ) && value !== 0 ) { - return value; - } - } - elem = elem.parent(); - } - } - - return 0; - } -}); - -// $.ui.plugin is deprecated. Use $.widget() extensions instead. -$.ui.plugin = { - add: function( module, option, set ) { - var i, - proto = $.ui[ module ].prototype; - for ( i in set ) { - proto.plugins[ i ] = proto.plugins[ i ] || []; - proto.plugins[ i ].push( [ option, set[ i ] ] ); - } - }, - call: function( instance, name, args, allowDisconnected ) { - var i, - set = instance.plugins[ name ]; - - if ( !set ) { - return; - } - - if ( !allowDisconnected && ( !instance.element[ 0 ].parentNode || instance.element[ 0 ].parentNode.nodeType === 11 ) ) { - return; - } - - for ( i = 0; i < set.length; i++ ) { - if ( instance.options[ set[ i ][ 0 ] ] ) { - set[ i ][ 1 ].apply( instance.element, args ); - } - } - } -}; - - -/*! - * jQuery UI Widget 1.11.4 - * http://jqueryui.com - * - * Copyright jQuery Foundation and other contributors - * Released under the MIT license. - * http://jquery.org/license - * - * http://api.jqueryui.com/jQuery.widget/ - */ - - -var widget_uuid = 0, - widget_slice = Array.prototype.slice; - -$.cleanData = (function( orig ) { - return function( elems ) { - var events, elem, i; - for ( i = 0; (elem = elems[i]) != null; i++ ) { - try { - - // Only trigger remove when necessary to save time - events = $._data( elem, "events" ); - if ( events && events.remove ) { - $( elem ).triggerHandler( "remove" ); - } - - // http://bugs.jquery.com/ticket/8235 - } catch ( e ) {} - } - orig( elems ); - }; -})( $.cleanData ); - -$.widget = function( name, base, prototype ) { - var fullName, existingConstructor, constructor, basePrototype, - // proxiedPrototype allows the provided prototype to remain unmodified - // so that it can be used as a mixin for multiple widgets (#8876) - proxiedPrototype = {}, - namespace = name.split( "." )[ 0 ]; - - name = name.split( "." )[ 1 ]; - fullName = namespace + "-" + name; - - if ( !prototype ) { - prototype = base; - base = $.Widget; - } - - // create selector for plugin - $.expr[ ":" ][ fullName.toLowerCase() ] = function( elem ) { - return !!$.data( elem, fullName ); - }; - - $[ namespace ] = $[ namespace ] || {}; - existingConstructor = $[ namespace ][ name ]; - constructor = $[ namespace ][ name ] = function( options, element ) { - // allow instantiation without "new" keyword - if ( !this._createWidget ) { - return new constructor( options, element ); - } - - // allow instantiation without initializing for simple inheritance - // must use "new" keyword (the code above always passes args) - if ( arguments.length ) { - this._createWidget( options, element ); - } - }; - // extend with the existing constructor to carry over any static properties - $.extend( constructor, existingConstructor, { - version: prototype.version, - // copy the object used to create the prototype in case we need to - // redefine the widget later - _proto: $.extend( {}, prototype ), - // track widgets that inherit from this widget in case this widget is - // redefined after a widget inherits from it - _childConstructors: [] - }); - - basePrototype = new base(); - // we need to make the options hash a property directly on the new instance - // otherwise we'll modify the options hash on the prototype that we're - // inheriting from - basePrototype.options = $.widget.extend( {}, basePrototype.options ); - $.each( prototype, function( prop, value ) { - if ( !$.isFunction( value ) ) { - proxiedPrototype[ prop ] = value; - return; - } - proxiedPrototype[ prop ] = (function() { - var _super = function() { - return base.prototype[ prop ].apply( this, arguments ); - }, - _superApply = function( args ) { - return base.prototype[ prop ].apply( this, args ); - }; - return function() { - var __super = this._super, - __superApply = this._superApply, - returnValue; - - this._super = _super; - this._superApply = _superApply; - - returnValue = value.apply( this, arguments ); - - this._super = __super; - this._superApply = __superApply; - - return returnValue; - }; - })(); - }); - constructor.prototype = $.widget.extend( basePrototype, { - // TODO: remove support for widgetEventPrefix - // always use the name + a colon as the prefix, e.g., draggable:start - // don't prefix for widgets that aren't DOM-based - widgetEventPrefix: existingConstructor ? (basePrototype.widgetEventPrefix || name) : name - }, proxiedPrototype, { - constructor: constructor, - namespace: namespace, - widgetName: name, - widgetFullName: fullName - }); - - // If this widget is being redefined then we need to find all widgets that - // are inheriting from it and redefine all of them so that they inherit from - // the new version of this widget. We're essentially trying to replace one - // level in the prototype chain. - if ( existingConstructor ) { - $.each( existingConstructor._childConstructors, function( i, child ) { - var childPrototype = child.prototype; - - // redefine the child widget using the same prototype that was - // originally used, but inherit from the new version of the base - $.widget( childPrototype.namespace + "." + childPrototype.widgetName, constructor, child._proto ); - }); - // remove the list of existing child constructors from the old constructor - // so the old child constructors can be garbage collected - delete existingConstructor._childConstructors; - } else { - base._childConstructors.push( constructor ); - } - - $.widget.bridge( name, constructor ); - - return constructor; -}; - -$.widget.extend = function( target ) { - var input = widget_slice.call( arguments, 1 ), - inputIndex = 0, - inputLength = input.length, - key, - value; - for ( ; inputIndex < inputLength; inputIndex++ ) { - for ( key in input[ inputIndex ] ) { - value = input[ inputIndex ][ key ]; - if ( input[ inputIndex ].hasOwnProperty( key ) && value !== undefined ) { - // Clone objects - if ( $.isPlainObject( value ) ) { - target[ key ] = $.isPlainObject( target[ key ] ) ? - $.widget.extend( {}, target[ key ], value ) : - // Don't extend strings, arrays, etc. with objects - $.widget.extend( {}, value ); - // Copy everything else by reference - } else { - target[ key ] = value; - } - } - } - } - return target; -}; - -$.widget.bridge = function( name, object ) { - var fullName = object.prototype.widgetFullName || name; - $.fn[ name ] = function( options ) { - var isMethodCall = typeof options === "string", - args = widget_slice.call( arguments, 1 ), - returnValue = this; - - if ( isMethodCall ) { - this.each(function() { - var methodValue, - instance = $.data( this, fullName ); - if ( options === "instance" ) { - returnValue = instance; - return false; - } - if ( !instance ) { - return $.error( "cannot call methods on " + name + " prior to initialization; " + - "attempted to call method '" + options + "'" ); - } - if ( !$.isFunction( instance[options] ) || options.charAt( 0 ) === "_" ) { - return $.error( "no such method '" + options + "' for " + name + " widget instance" ); - } - methodValue = instance[ options ].apply( instance, args ); - if ( methodValue !== instance && methodValue !== undefined ) { - returnValue = methodValue && methodValue.jquery ? - returnValue.pushStack( methodValue.get() ) : - methodValue; - return false; - } - }); - } else { - - // Allow multiple hashes to be passed on init - if ( args.length ) { - options = $.widget.extend.apply( null, [ options ].concat(args) ); - } - - this.each(function() { - var instance = $.data( this, fullName ); - if ( instance ) { - instance.option( options || {} ); - if ( instance._init ) { - instance._init(); - } - } else { - $.data( this, fullName, new object( options, this ) ); - } - }); - } - - return returnValue; - }; -}; - -$.Widget = function( /* options, element */ ) {}; -$.Widget._childConstructors = []; - -$.Widget.prototype = { - widgetName: "widget", - widgetEventPrefix: "", - defaultElement: "<div>", - options: { - disabled: false, - - // callbacks - create: null - }, - _createWidget: function( options, element ) { - element = $( element || this.defaultElement || this )[ 0 ]; - this.element = $( element ); - this.uuid = widget_uuid++; - this.eventNamespace = "." + this.widgetName + this.uuid; - - this.bindings = $(); - this.hoverable = $(); - this.focusable = $(); - - if ( element !== this ) { - $.data( element, this.widgetFullName, this ); - this._on( true, this.element, { - remove: function( event ) { - if ( event.target === element ) { - this.destroy(); - } - } - }); - this.document = $( element.style ? - // element within the document - element.ownerDocument : - // element is window or document - element.document || element ); - this.window = $( this.document[0].defaultView || this.document[0].parentWindow ); - } - - this.options = $.widget.extend( {}, - this.options, - this._getCreateOptions(), - options ); - - this._create(); - this._trigger( "create", null, this._getCreateEventData() ); - this._init(); - }, - _getCreateOptions: $.noop, - _getCreateEventData: $.noop, - _create: $.noop, - _init: $.noop, - - destroy: function() { - this._destroy(); - // we can probably remove the unbind calls in 2.0 - // all event bindings should go through this._on() - this.element - .unbind( this.eventNamespace ) - .removeData( this.widgetFullName ) - // support: jquery <1.6.3 - // http://bugs.jquery.com/ticket/9413 - .removeData( $.camelCase( this.widgetFullName ) ); - this.widget() - .unbind( this.eventNamespace ) - .removeAttr( "aria-disabled" ) - .removeClass( - this.widgetFullName + "-disabled " + - "ui-state-disabled" ); - - // clean up events and states - this.bindings.unbind( this.eventNamespace ); - this.hoverable.removeClass( "ui-state-hover" ); - this.focusable.removeClass( "ui-state-focus" ); - }, - _destroy: $.noop, - - widget: function() { - return this.element; - }, - - option: function( key, value ) { - var options = key, - parts, - curOption, - i; - - if ( arguments.length === 0 ) { - // don't return a reference to the internal hash - return $.widget.extend( {}, this.options ); - } - - if ( typeof key === "string" ) { - // handle nested keys, e.g., "foo.bar" => { foo: { bar: ___ } } - options = {}; - parts = key.split( "." ); - key = parts.shift(); - if ( parts.length ) { - curOption = options[ key ] = $.widget.extend( {}, this.options[ key ] ); - for ( i = 0; i < parts.length - 1; i++ ) { - curOption[ parts[ i ] ] = curOption[ parts[ i ] ] || {}; - curOption = curOption[ parts[ i ] ]; - } - key = parts.pop(); - if ( arguments.length === 1 ) { - return curOption[ key ] === undefined ? null : curOption[ key ]; - } - curOption[ key ] = value; - } else { - if ( arguments.length === 1 ) { - return this.options[ key ] === undefined ? null : this.options[ key ]; - } - options[ key ] = value; - } - } - - this._setOptions( options ); - - return this; - }, - _setOptions: function( options ) { - var key; - - for ( key in options ) { - this._setOption( key, options[ key ] ); - } - - return this; - }, - _setOption: function( key, value ) { - this.options[ key ] = value; - - if ( key === "disabled" ) { - this.widget() - .toggleClass( this.widgetFullName + "-disabled", !!value ); - - // If the widget is becoming disabled, then nothing is interactive - if ( value ) { - this.hoverable.removeClass( "ui-state-hover" ); - this.focusable.removeClass( "ui-state-focus" ); - } - } - - return this; - }, - - enable: function() { - return this._setOptions({ disabled: false }); - }, - disable: function() { - return this._setOptions({ disabled: true }); - }, - - _on: function( suppressDisabledCheck, element, handlers ) { - var delegateElement, - instance = this; - - // no suppressDisabledCheck flag, shuffle arguments - if ( typeof suppressDisabledCheck !== "boolean" ) { - handlers = element; - element = suppressDisabledCheck; - suppressDisabledCheck = false; - } - - // no element argument, shuffle and use this.element - if ( !handlers ) { - handlers = element; - element = this.element; - delegateElement = this.widget(); - } else { - element = delegateElement = $( element ); - this.bindings = this.bindings.add( element ); - } - - $.each( handlers, function( event, handler ) { - function handlerProxy() { - // allow widgets to customize the disabled handling - // - disabled as an array instead of boolean - // - disabled class as method for disabling individual parts - if ( !suppressDisabledCheck && - ( instance.options.disabled === true || - $( this ).hasClass( "ui-state-disabled" ) ) ) { - return; - } - return ( typeof handler === "string" ? instance[ handler ] : handler ) - .apply( instance, arguments ); - } - - // copy the guid so direct unbinding works - if ( typeof handler !== "string" ) { - handlerProxy.guid = handler.guid = - handler.guid || handlerProxy.guid || $.guid++; - } - - var match = event.match( /^([\w:-]*)\s*(.*)$/ ), - eventName = match[1] + instance.eventNamespace, - selector = match[2]; - if ( selector ) { - delegateElement.delegate( selector, eventName, handlerProxy ); - } else { - element.bind( eventName, handlerProxy ); - } - }); - }, - - _off: function( element, eventName ) { - eventName = (eventName || "").split( " " ).join( this.eventNamespace + " " ) + - this.eventNamespace; - element.unbind( eventName ).undelegate( eventName ); - - // Clear the stack to avoid memory leaks (#10056) - this.bindings = $( this.bindings.not( element ).get() ); - this.focusable = $( this.focusable.not( element ).get() ); - this.hoverable = $( this.hoverable.not( element ).get() ); - }, - - _delay: function( handler, delay ) { - function handlerProxy() { - return ( typeof handler === "string" ? instance[ handler ] : handler ) - .apply( instance, arguments ); - } - var instance = this; - return setTimeout( handlerProxy, delay || 0 ); - }, - - _hoverable: function( element ) { - this.hoverable = this.hoverable.add( element ); - this._on( element, { - mouseenter: function( event ) { - $( event.currentTarget ).addClass( "ui-state-hover" ); - }, - mouseleave: function( event ) { - $( event.currentTarget ).removeClass( "ui-state-hover" ); - } - }); - }, - - _focusable: function( element ) { - this.focusable = this.focusable.add( element ); - this._on( element, { - focusin: function( event ) { - $( event.currentTarget ).addClass( "ui-state-focus" ); - }, - focusout: function( event ) { - $( event.currentTarget ).removeClass( "ui-state-focus" ); - } - }); - }, - - _trigger: function( type, event, data ) { - var prop, orig, - callback = this.options[ type ]; - - data = data || {}; - event = $.Event( event ); - event.type = ( type === this.widgetEventPrefix ? - type : - this.widgetEventPrefix + type ).toLowerCase(); - // the original event may come from any element - // so we need to reset the target on the new event - event.target = this.element[ 0 ]; - - // copy original event properties over to the new event - orig = event.originalEvent; - if ( orig ) { - for ( prop in orig ) { - if ( !( prop in event ) ) { - event[ prop ] = orig[ prop ]; - } - } - } - - this.element.trigger( event, data ); - return !( $.isFunction( callback ) && - callback.apply( this.element[0], [ event ].concat( data ) ) === false || - event.isDefaultPrevented() ); - } -}; - -$.each( { show: "fadeIn", hide: "fadeOut" }, function( method, defaultEffect ) { - $.Widget.prototype[ "_" + method ] = function( element, options, callback ) { - if ( typeof options === "string" ) { - options = { effect: options }; - } - var hasOptions, - effectName = !options ? - method : - options === true || typeof options === "number" ? - defaultEffect : - options.effect || defaultEffect; - options = options || {}; - if ( typeof options === "number" ) { - options = { duration: options }; - } - hasOptions = !$.isEmptyObject( options ); - options.complete = callback; - if ( options.delay ) { - element.delay( options.delay ); - } - if ( hasOptions && $.effects && $.effects.effect[ effectName ] ) { - element[ method ]( options ); - } else if ( effectName !== method && element[ effectName ] ) { - element[ effectName ]( options.duration, options.easing, callback ); - } else { - element.queue(function( next ) { - $( this )[ method ](); - if ( callback ) { - callback.call( element[ 0 ] ); - } - next(); - }); - } - }; -}); - -var widget = $.widget; - - -/*! - * jQuery UI Mouse 1.11.4 - * http://jqueryui.com - * - * Copyright jQuery Foundation and other contributors - * Released under the MIT license. - * http://jquery.org/license - * - * http://api.jqueryui.com/mouse/ - */ - - -var mouseHandled = false; -$( document ).mouseup( function() { - mouseHandled = false; -}); - -var mouse = $.widget("ui.mouse", { - version: "1.11.4", - options: { - cancel: "input,textarea,button,select,option", - distance: 1, - delay: 0 - }, - _mouseInit: function() { - var that = this; - - this.element - .bind("mousedown." + this.widgetName, function(event) { - return that._mouseDown(event); - }) - .bind("click." + this.widgetName, function(event) { - if (true === $.data(event.target, that.widgetName + ".preventClickEvent")) { - $.removeData(event.target, that.widgetName + ".preventClickEvent"); - event.stopImmediatePropagation(); - return false; - } - }); - - this.started = false; - }, - - // TODO: make sure destroying one instance of mouse doesn't mess with - // other instances of mouse - _mouseDestroy: function() { - this.element.unbind("." + this.widgetName); - if ( this._mouseMoveDelegate ) { - this.document - .unbind("mousemove." + this.widgetName, this._mouseMoveDelegate) - .unbind("mouseup." + this.widgetName, this._mouseUpDelegate); - } - }, - - _mouseDown: function(event) { - // don't let more than one widget handle mouseStart - if ( mouseHandled ) { - return; - } - - this._mouseMoved = false; - - // we may have missed mouseup (out of window) - (this._mouseStarted && this._mouseUp(event)); - - this._mouseDownEvent = event; - - var that = this, - btnIsLeft = (event.which === 1), - // event.target.nodeName works around a bug in IE 8 with - // disabled inputs (#7620) - elIsCancel = (typeof this.options.cancel === "string" && event.target.nodeName ? $(event.target).closest(this.options.cancel).length : false); - if (!btnIsLeft || elIsCancel || !this._mouseCapture(event)) { - return true; - } - - this.mouseDelayMet = !this.options.delay; - if (!this.mouseDelayMet) { - this._mouseDelayTimer = setTimeout(function() { - that.mouseDelayMet = true; - }, this.options.delay); - } - - if (this._mouseDistanceMet(event) && this._mouseDelayMet(event)) { - this._mouseStarted = (this._mouseStart(event) !== false); - if (!this._mouseStarted) { - event.preventDefault(); - return true; - } - } - - // Click event may never have fired (Gecko & Opera) - if (true === $.data(event.target, this.widgetName + ".preventClickEvent")) { - $.removeData(event.target, this.widgetName + ".preventClickEvent"); - } - - // these delegates are required to keep context - this._mouseMoveDelegate = function(event) { - return that._mouseMove(event); - }; - this._mouseUpDelegate = function(event) { - return that._mouseUp(event); - }; - - this.document - .bind( "mousemove." + this.widgetName, this._mouseMoveDelegate ) - .bind( "mouseup." + this.widgetName, this._mouseUpDelegate ); - - event.preventDefault(); - - mouseHandled = true; - return true; - }, - - _mouseMove: function(event) { - // Only check for mouseups outside the document if you've moved inside the document - // at least once. This prevents the firing of mouseup in the case of IE<9, which will - // fire a mousemove event if content is placed under the cursor. See #7778 - // Support: IE <9 - if ( this._mouseMoved ) { - // IE mouseup check - mouseup happened when mouse was out of window - if ($.ui.ie && ( !document.documentMode || document.documentMode < 9 ) && !event.button) { - return this._mouseUp(event); - - // Iframe mouseup check - mouseup occurred in another document - } else if ( !event.which ) { - return this._mouseUp( event ); - } - } - - if ( event.which || event.button ) { - this._mouseMoved = true; - } - - if (this._mouseStarted) { - this._mouseDrag(event); - return event.preventDefault(); - } - - if (this._mouseDistanceMet(event) && this._mouseDelayMet(event)) { - this._mouseStarted = - (this._mouseStart(this._mouseDownEvent, event) !== false); - (this._mouseStarted ? this._mouseDrag(event) : this._mouseUp(event)); - } - - return !this._mouseStarted; - }, - - _mouseUp: function(event) { - this.document - .unbind( "mousemove." + this.widgetName, this._mouseMoveDelegate ) - .unbind( "mouseup." + this.widgetName, this._mouseUpDelegate ); - - if (this._mouseStarted) { - this._mouseStarted = false; - - if (event.target === this._mouseDownEvent.target) { - $.data(event.target, this.widgetName + ".preventClickEvent", true); - } - - this._mouseStop(event); - } - - mouseHandled = false; - return false; - }, - - _mouseDistanceMet: function(event) { - return (Math.max( - Math.abs(this._mouseDownEvent.pageX - event.pageX), - Math.abs(this._mouseDownEvent.pageY - event.pageY) - ) >= this.options.distance - ); - }, - - _mouseDelayMet: function(/* event */) { - return this.mouseDelayMet; - }, - - // These are placeholder methods, to be overriden by extending plugin - _mouseStart: function(/* event */) {}, - _mouseDrag: function(/* event */) {}, - _mouseStop: function(/* event */) {}, - _mouseCapture: function(/* event */) { return true; } -}); - - -/*! - * jQuery UI Position 1.11.4 - * http://jqueryui.com - * - * Copyright jQuery Foundation and other contributors - * Released under the MIT license. - * http://jquery.org/license - * - * http://api.jqueryui.com/position/ - */ - -(function() { - -$.ui = $.ui || {}; - -var cachedScrollbarWidth, supportsOffsetFractions, - max = Math.max, - abs = Math.abs, - round = Math.round, - rhorizontal = /left|center|right/, - rvertical = /top|center|bottom/, - roffset = /[\+\-]\d+(\.[\d]+)?%?/, - rposition = /^\w+/, - rpercent = /%$/, - _position = $.fn.position; - -function getOffsets( offsets, width, height ) { - return [ - parseFloat( offsets[ 0 ] ) * ( rpercent.test( offsets[ 0 ] ) ? width / 100 : 1 ), - parseFloat( offsets[ 1 ] ) * ( rpercent.test( offsets[ 1 ] ) ? height / 100 : 1 ) - ]; -} - -function parseCss( element, property ) { - return parseInt( $.css( element, property ), 10 ) || 0; -} - -function getDimensions( elem ) { - var raw = elem[0]; - if ( raw.nodeType === 9 ) { - return { - width: elem.width(), - height: elem.height(), - offset: { top: 0, left: 0 } - }; - } - if ( $.isWindow( raw ) ) { - return { - width: elem.width(), - height: elem.height(), - offset: { top: elem.scrollTop(), left: elem.scrollLeft() } - }; - } - if ( raw.preventDefault ) { - return { - width: 0, - height: 0, - offset: { top: raw.pageY, left: raw.pageX } - }; - } - return { - width: elem.outerWidth(), - height: elem.outerHeight(), - offset: elem.offset() - }; -} - -$.position = { - scrollbarWidth: function() { - if ( cachedScrollbarWidth !== undefined ) { - return cachedScrollbarWidth; - } - var w1, w2, - div = $( "<div style='display:block;position:absolute;width:50px;height:50px;overflow:hidden;'><div style='height:100px;width:auto;'></div></div>" ), - innerDiv = div.children()[0]; - - $( "body" ).append( div ); - w1 = innerDiv.offsetWidth; - div.css( "overflow", "scroll" ); - - w2 = innerDiv.offsetWidth; - - if ( w1 === w2 ) { - w2 = div[0].clientWidth; - } - - div.remove(); - - return (cachedScrollbarWidth = w1 - w2); - }, - getScrollInfo: function( within ) { - var overflowX = within.isWindow || within.isDocument ? "" : - within.element.css( "overflow-x" ), - overflowY = within.isWindow || within.isDocument ? "" : - within.element.css( "overflow-y" ), - hasOverflowX = overflowX === "scroll" || - ( overflowX === "auto" && within.width < within.element[0].scrollWidth ), - hasOverflowY = overflowY === "scroll" || - ( overflowY === "auto" && within.height < within.element[0].scrollHeight ); - return { - width: hasOverflowY ? $.position.scrollbarWidth() : 0, - height: hasOverflowX ? $.position.scrollbarWidth() : 0 - }; - }, - getWithinInfo: function( element ) { - var withinElement = $( element || window ), - isWindow = $.isWindow( withinElement[0] ), - isDocument = !!withinElement[ 0 ] && withinElement[ 0 ].nodeType === 9; - return { - element: withinElement, - isWindow: isWindow, - isDocument: isDocument, - offset: withinElement.offset() || { left: 0, top: 0 }, - scrollLeft: withinElement.scrollLeft(), - scrollTop: withinElement.scrollTop(), - - // support: jQuery 1.6.x - // jQuery 1.6 doesn't support .outerWidth/Height() on documents or windows - width: isWindow || isDocument ? withinElement.width() : withinElement.outerWidth(), - height: isWindow || isDocument ? withinElement.height() : withinElement.outerHeight() - }; - } -}; - -$.fn.position = function( options ) { - if ( !options || !options.of ) { - return _position.apply( this, arguments ); - } - - // make a copy, we don't want to modify arguments - options = $.extend( {}, options ); - - var atOffset, targetWidth, targetHeight, targetOffset, basePosition, dimensions, - target = $( options.of ), - within = $.position.getWithinInfo( options.within ), - scrollInfo = $.position.getScrollInfo( within ), - collision = ( options.collision || "flip" ).split( " " ), - offsets = {}; - - dimensions = getDimensions( target ); - if ( target[0].preventDefault ) { - // force left top to allow flipping - options.at = "left top"; - } - targetWidth = dimensions.width; - targetHeight = dimensions.height; - targetOffset = dimensions.offset; - // clone to reuse original targetOffset later - basePosition = $.extend( {}, targetOffset ); - - // force my and at to have valid horizontal and vertical positions - // if a value is missing or invalid, it will be converted to center - $.each( [ "my", "at" ], function() { - var pos = ( options[ this ] || "" ).split( " " ), - horizontalOffset, - verticalOffset; - - if ( pos.length === 1) { - pos = rhorizontal.test( pos[ 0 ] ) ? - pos.concat( [ "center" ] ) : - rvertical.test( pos[ 0 ] ) ? - [ "center" ].concat( pos ) : - [ "center", "center" ]; - } - pos[ 0 ] = rhorizontal.test( pos[ 0 ] ) ? pos[ 0 ] : "center"; - pos[ 1 ] = rvertical.test( pos[ 1 ] ) ? pos[ 1 ] : "center"; - - // calculate offsets - horizontalOffset = roffset.exec( pos[ 0 ] ); - verticalOffset = roffset.exec( pos[ 1 ] ); - offsets[ this ] = [ - horizontalOffset ? horizontalOffset[ 0 ] : 0, - verticalOffset ? verticalOffset[ 0 ] : 0 - ]; - - // reduce to just the positions without the offsets - options[ this ] = [ - rposition.exec( pos[ 0 ] )[ 0 ], - rposition.exec( pos[ 1 ] )[ 0 ] - ]; - }); - - // normalize collision option - if ( collision.length === 1 ) { - collision[ 1 ] = collision[ 0 ]; - } - - if ( options.at[ 0 ] === "right" ) { - basePosition.left += targetWidth; - } else if ( options.at[ 0 ] === "center" ) { - basePosition.left += targetWidth / 2; - } - - if ( options.at[ 1 ] === "bottom" ) { - basePosition.top += targetHeight; - } else if ( options.at[ 1 ] === "center" ) { - basePosition.top += targetHeight / 2; - } - - atOffset = getOffsets( offsets.at, targetWidth, targetHeight ); - basePosition.left += atOffset[ 0 ]; - basePosition.top += atOffset[ 1 ]; - - return this.each(function() { - var collisionPosition, using, - elem = $( this ), - elemWidth = elem.outerWidth(), - elemHeight = elem.outerHeight(), - marginLeft = parseCss( this, "marginLeft" ), - marginTop = parseCss( this, "marginTop" ), - collisionWidth = elemWidth + marginLeft + parseCss( this, "marginRight" ) + scrollInfo.width, - collisionHeight = elemHeight + marginTop + parseCss( this, "marginBottom" ) + scrollInfo.height, - position = $.extend( {}, basePosition ), - myOffset = getOffsets( offsets.my, elem.outerWidth(), elem.outerHeight() ); - - if ( options.my[ 0 ] === "right" ) { - position.left -= elemWidth; - } else if ( options.my[ 0 ] === "center" ) { - position.left -= elemWidth / 2; - } - - if ( options.my[ 1 ] === "bottom" ) { - position.top -= elemHeight; - } else if ( options.my[ 1 ] === "center" ) { - position.top -= elemHeight / 2; - } - - position.left += myOffset[ 0 ]; - position.top += myOffset[ 1 ]; - - // if the browser doesn't support fractions, then round for consistent results - if ( !supportsOffsetFractions ) { - position.left = round( position.left ); - position.top = round( position.top ); - } - - collisionPosition = { - marginLeft: marginLeft, - marginTop: marginTop - }; - - $.each( [ "left", "top" ], function( i, dir ) { - if ( $.ui.position[ collision[ i ] ] ) { - $.ui.position[ collision[ i ] ][ dir ]( position, { - targetWidth: targetWidth, - targetHeight: targetHeight, - elemWidth: elemWidth, - elemHeight: elemHeight, - collisionPosition: collisionPosition, - collisionWidth: collisionWidth, - collisionHeight: collisionHeight, - offset: [ atOffset[ 0 ] + myOffset[ 0 ], atOffset [ 1 ] + myOffset[ 1 ] ], - my: options.my, - at: options.at, - within: within, - elem: elem - }); - } - }); - - if ( options.using ) { - // adds feedback as second argument to using callback, if present - using = function( props ) { - var left = targetOffset.left - position.left, - right = left + targetWidth - elemWidth, - top = targetOffset.top - position.top, - bottom = top + targetHeight - elemHeight, - feedback = { - target: { - element: target, - left: targetOffset.left, - top: targetOffset.top, - width: targetWidth, - height: targetHeight - }, - element: { - element: elem, - left: position.left, - top: position.top, - width: elemWidth, - height: elemHeight - }, - horizontal: right < 0 ? "left" : left > 0 ? "right" : "center", - vertical: bottom < 0 ? "top" : top > 0 ? "bottom" : "middle" - }; - if ( targetWidth < elemWidth && abs( left + right ) < targetWidth ) { - feedback.horizontal = "center"; - } - if ( targetHeight < elemHeight && abs( top + bottom ) < targetHeight ) { - feedback.vertical = "middle"; - } - if ( max( abs( left ), abs( right ) ) > max( abs( top ), abs( bottom ) ) ) { - feedback.important = "horizontal"; - } else { - feedback.important = "vertical"; - } - options.using.call( this, props, feedback ); - }; - } - - elem.offset( $.extend( position, { using: using } ) ); - }); -}; - -$.ui.position = { - fit: { - left: function( position, data ) { - var within = data.within, - withinOffset = within.isWindow ? within.scrollLeft : within.offset.left, - outerWidth = within.width, - collisionPosLeft = position.left - data.collisionPosition.marginLeft, - overLeft = withinOffset - collisionPosLeft, - overRight = collisionPosLeft + data.collisionWidth - outerWidth - withinOffset, - newOverRight; - - // element is wider than within - if ( data.collisionWidth > outerWidth ) { - // element is initially over the left side of within - if ( overLeft > 0 && overRight <= 0 ) { - newOverRight = position.left + overLeft + data.collisionWidth - outerWidth - withinOffset; - position.left += overLeft - newOverRight; - // element is initially over right side of within - } else if ( overRight > 0 && overLeft <= 0 ) { - position.left = withinOffset; - // element is initially over both left and right sides of within - } else { - if ( overLeft > overRight ) { - position.left = withinOffset + outerWidth - data.collisionWidth; - } else { - position.left = withinOffset; - } - } - // too far left -> align with left edge - } else if ( overLeft > 0 ) { - position.left += overLeft; - // too far right -> align with right edge - } else if ( overRight > 0 ) { - position.left -= overRight; - // adjust based on position and margin - } else { - position.left = max( position.left - collisionPosLeft, position.left ); - } - }, - top: function( position, data ) { - var within = data.within, - withinOffset = within.isWindow ? within.scrollTop : within.offset.top, - outerHeight = data.within.height, - collisionPosTop = position.top - data.collisionPosition.marginTop, - overTop = withinOffset - collisionPosTop, - overBottom = collisionPosTop + data.collisionHeight - outerHeight - withinOffset, - newOverBottom; - - // element is taller than within - if ( data.collisionHeight > outerHeight ) { - // element is initially over the top of within - if ( overTop > 0 && overBottom <= 0 ) { - newOverBottom = position.top + overTop + data.collisionHeight - outerHeight - withinOffset; - position.top += overTop - newOverBottom; - // element is initially over bottom of within - } else if ( overBottom > 0 && overTop <= 0 ) { - position.top = withinOffset; - // element is initially over both top and bottom of within - } else { - if ( overTop > overBottom ) { - position.top = withinOffset + outerHeight - data.collisionHeight; - } else { - position.top = withinOffset; - } - } - // too far up -> align with top - } else if ( overTop > 0 ) { - position.top += overTop; - // too far down -> align with bottom edge - } else if ( overBottom > 0 ) { - position.top -= overBottom; - // adjust based on position and margin - } else { - position.top = max( position.top - collisionPosTop, position.top ); - } - } - }, - flip: { - left: function( position, data ) { - var within = data.within, - withinOffset = within.offset.left + within.scrollLeft, - outerWidth = within.width, - offsetLeft = within.isWindow ? within.scrollLeft : within.offset.left, - collisionPosLeft = position.left - data.collisionPosition.marginLeft, - overLeft = collisionPosLeft - offsetLeft, - overRight = collisionPosLeft + data.collisionWidth - outerWidth - offsetLeft, - myOffset = data.my[ 0 ] === "left" ? - -data.elemWidth : - data.my[ 0 ] === "right" ? - data.elemWidth : - 0, - atOffset = data.at[ 0 ] === "left" ? - data.targetWidth : - data.at[ 0 ] === "right" ? - -data.targetWidth : - 0, - offset = -2 * data.offset[ 0 ], - newOverRight, - newOverLeft; - - if ( overLeft < 0 ) { - newOverRight = position.left + myOffset + atOffset + offset + data.collisionWidth - outerWidth - withinOffset; - if ( newOverRight < 0 || newOverRight < abs( overLeft ) ) { - position.left += myOffset + atOffset + offset; - } - } else if ( overRight > 0 ) { - newOverLeft = position.left - data.collisionPosition.marginLeft + myOffset + atOffset + offset - offsetLeft; - if ( newOverLeft > 0 || abs( newOverLeft ) < overRight ) { - position.left += myOffset + atOffset + offset; - } - } - }, - top: function( position, data ) { - var within = data.within, - withinOffset = within.offset.top + within.scrollTop, - outerHeight = within.height, - offsetTop = within.isWindow ? within.scrollTop : within.offset.top, - collisionPosTop = position.top - data.collisionPosition.marginTop, - overTop = collisionPosTop - offsetTop, - overBottom = collisionPosTop + data.collisionHeight - outerHeight - offsetTop, - top = data.my[ 1 ] === "top", - myOffset = top ? - -data.elemHeight : - data.my[ 1 ] === "bottom" ? - data.elemHeight : - 0, - atOffset = data.at[ 1 ] === "top" ? - data.targetHeight : - data.at[ 1 ] === "bottom" ? - -data.targetHeight : - 0, - offset = -2 * data.offset[ 1 ], - newOverTop, - newOverBottom; - if ( overTop < 0 ) { - newOverBottom = position.top + myOffset + atOffset + offset + data.collisionHeight - outerHeight - withinOffset; - if ( newOverBottom < 0 || newOverBottom < abs( overTop ) ) { - position.top += myOffset + atOffset + offset; - } - } else if ( overBottom > 0 ) { - newOverTop = position.top - data.collisionPosition.marginTop + myOffset + atOffset + offset - offsetTop; - if ( newOverTop > 0 || abs( newOverTop ) < overBottom ) { - position.top += myOffset + atOffset + offset; - } - } - } - }, - flipfit: { - left: function() { - $.ui.position.flip.left.apply( this, arguments ); - $.ui.position.fit.left.apply( this, arguments ); - }, - top: function() { - $.ui.position.flip.top.apply( this, arguments ); - $.ui.position.fit.top.apply( this, arguments ); - } - } -}; - -// fraction support test -(function() { - var testElement, testElementParent, testElementStyle, offsetLeft, i, - body = document.getElementsByTagName( "body" )[ 0 ], - div = document.createElement( "div" ); - - //Create a "fake body" for testing based on method used in jQuery.support - testElement = document.createElement( body ? "div" : "body" ); - testElementStyle = { - visibility: "hidden", - width: 0, - height: 0, - border: 0, - margin: 0, - background: "none" - }; - if ( body ) { - $.extend( testElementStyle, { - position: "absolute", - left: "-1000px", - top: "-1000px" - }); - } - for ( i in testElementStyle ) { - testElement.style[ i ] = testElementStyle[ i ]; - } - testElement.appendChild( div ); - testElementParent = body || document.documentElement; - testElementParent.insertBefore( testElement, testElementParent.firstChild ); - - div.style.cssText = "position: absolute; left: 10.7432222px;"; - - offsetLeft = $( div ).offset().left; - supportsOffsetFractions = offsetLeft > 10 && offsetLeft < 11; - - testElement.innerHTML = ""; - testElementParent.removeChild( testElement ); -})(); - -})(); - -var position = $.ui.position; - - -/*! - * jQuery UI Accordion 1.11.4 - * http://jqueryui.com - * - * Copyright jQuery Foundation and other contributors - * Released under the MIT license. - * http://jquery.org/license - * - * http://api.jqueryui.com/accordion/ - */ - - -var accordion = $.widget( "ui.accordion", { - version: "1.11.4", - options: { - active: 0, - animate: {}, - collapsible: false, - event: "click", - header: "> li > :first-child,> :not(li):even", - heightStyle: "auto", - icons: { - activeHeader: "ui-icon-triangle-1-s", - header: "ui-icon-triangle-1-e" - }, - - // callbacks - activate: null, - beforeActivate: null - }, - - hideProps: { - borderTopWidth: "hide", - borderBottomWidth: "hide", - paddingTop: "hide", - paddingBottom: "hide", - height: "hide" - }, - - showProps: { - borderTopWidth: "show", - borderBottomWidth: "show", - paddingTop: "show", - paddingBottom: "show", - height: "show" - }, - - _create: function() { - var options = this.options; - this.prevShow = this.prevHide = $(); - this.element.addClass( "ui-accordion ui-widget ui-helper-reset" ) - // ARIA - .attr( "role", "tablist" ); - - // don't allow collapsible: false and active: false / null - if ( !options.collapsible && (options.active === false || options.active == null) ) { - options.active = 0; - } - - this._processPanels(); - // handle negative values - if ( options.active < 0 ) { - options.active += this.headers.length; - } - this._refresh(); - }, - - _getCreateEventData: function() { - return { - header: this.active, - panel: !this.active.length ? $() : this.active.next() - }; - }, - - _createIcons: function() { - var icons = this.options.icons; - if ( icons ) { - $( "<span>" ) - .addClass( "ui-accordion-header-icon ui-icon " + icons.header ) - .prependTo( this.headers ); - this.active.children( ".ui-accordion-header-icon" ) - .removeClass( icons.header ) - .addClass( icons.activeHeader ); - this.headers.addClass( "ui-accordion-icons" ); - } - }, - - _destroyIcons: function() { - this.headers - .removeClass( "ui-accordion-icons" ) - .children( ".ui-accordion-header-icon" ) - .remove(); - }, - - _destroy: function() { - var contents; - - // clean up main element - this.element - .removeClass( "ui-accordion ui-widget ui-helper-reset" ) - .removeAttr( "role" ); - - // clean up headers - this.headers - .removeClass( "ui-accordion-header ui-accordion-header-active ui-state-default " + - "ui-corner-all ui-state-active ui-state-disabled ui-corner-top" ) - .removeAttr( "role" ) - .removeAttr( "aria-expanded" ) - .removeAttr( "aria-selected" ) - .removeAttr( "aria-controls" ) - .removeAttr( "tabIndex" ) - .removeUniqueId(); - - this._destroyIcons(); - - // clean up content panels - contents = this.headers.next() - .removeClass( "ui-helper-reset ui-widget-content ui-corner-bottom " + - "ui-accordion-content ui-accordion-content-active ui-state-disabled" ) - .css( "display", "" ) - .removeAttr( "role" ) - .removeAttr( "aria-hidden" ) - .removeAttr( "aria-labelledby" ) - .removeUniqueId(); - - if ( this.options.heightStyle !== "content" ) { - contents.css( "height", "" ); - } - }, - - _setOption: function( key, value ) { - if ( key === "active" ) { - // _activate() will handle invalid values and update this.options - this._activate( value ); - return; - } - - if ( key === "event" ) { - if ( this.options.event ) { - this._off( this.headers, this.options.event ); - } - this._setupEvents( value ); - } - - this._super( key, value ); - - // setting collapsible: false while collapsed; open first panel - if ( key === "collapsible" && !value && this.options.active === false ) { - this._activate( 0 ); - } - - if ( key === "icons" ) { - this._destroyIcons(); - if ( value ) { - this._createIcons(); - } - } - - // #5332 - opacity doesn't cascade to positioned elements in IE - // so we need to add the disabled class to the headers and panels - if ( key === "disabled" ) { - this.element - .toggleClass( "ui-state-disabled", !!value ) - .attr( "aria-disabled", value ); - this.headers.add( this.headers.next() ) - .toggleClass( "ui-state-disabled", !!value ); - } - }, - - _keydown: function( event ) { - if ( event.altKey || event.ctrlKey ) { - return; - } - - var keyCode = $.ui.keyCode, - length = this.headers.length, - currentIndex = this.headers.index( event.target ), - toFocus = false; - - switch ( event.keyCode ) { - case keyCode.RIGHT: - case keyCode.DOWN: - toFocus = this.headers[ ( currentIndex + 1 ) % length ]; - break; - case keyCode.LEFT: - case keyCode.UP: - toFocus = this.headers[ ( currentIndex - 1 + length ) % length ]; - break; - case keyCode.SPACE: - case keyCode.ENTER: - this._eventHandler( event ); - break; - case keyCode.HOME: - toFocus = this.headers[ 0 ]; - break; - case keyCode.END: - toFocus = this.headers[ length - 1 ]; - break; - } - - if ( toFocus ) { - $( event.target ).attr( "tabIndex", -1 ); - $( toFocus ).attr( "tabIndex", 0 ); - toFocus.focus(); - event.preventDefault(); - } - }, - - _panelKeyDown: function( event ) { - if ( event.keyCode === $.ui.keyCode.UP && event.ctrlKey ) { - $( event.currentTarget ).prev().focus(); - } - }, - - refresh: function() { - var options = this.options; - this._processPanels(); - - // was collapsed or no panel - if ( ( options.active === false && options.collapsible === true ) || !this.headers.length ) { - options.active = false; - this.active = $(); - // active false only when collapsible is true - } else if ( options.active === false ) { - this._activate( 0 ); - // was active, but active panel is gone - } else if ( this.active.length && !$.contains( this.element[ 0 ], this.active[ 0 ] ) ) { - // all remaining panel are disabled - if ( this.headers.length === this.headers.find(".ui-state-disabled").length ) { - options.active = false; - this.active = $(); - // activate previous panel - } else { - this._activate( Math.max( 0, options.active - 1 ) ); - } - // was active, active panel still exists - } else { - // make sure active index is correct - options.active = this.headers.index( this.active ); - } - - this._destroyIcons(); - - this._refresh(); - }, - - _processPanels: function() { - var prevHeaders = this.headers, - prevPanels = this.panels; - - this.headers = this.element.find( this.options.header ) - .addClass( "ui-accordion-header ui-state-default ui-corner-all" ); - - this.panels = this.headers.next() - .addClass( "ui-accordion-content ui-helper-reset ui-widget-content ui-corner-bottom" ) - .filter( ":not(.ui-accordion-content-active)" ) - .hide(); - - // Avoid memory leaks (#10056) - if ( prevPanels ) { - this._off( prevHeaders.not( this.headers ) ); - this._off( prevPanels.not( this.panels ) ); - } - }, - - _refresh: function() { - var maxHeight, - options = this.options, - heightStyle = options.heightStyle, - parent = this.element.parent(); - - this.active = this._findActive( options.active ) - .addClass( "ui-accordion-header-active ui-state-active ui-corner-top" ) - .removeClass( "ui-corner-all" ); - this.active.next() - .addClass( "ui-accordion-content-active" ) - .show(); - - this.headers - .attr( "role", "tab" ) - .each(function() { - var header = $( this ), - headerId = header.uniqueId().attr( "id" ), - panel = header.next(), - panelId = panel.uniqueId().attr( "id" ); - header.attr( "aria-controls", panelId ); - panel.attr( "aria-labelledby", headerId ); - }) - .next() - .attr( "role", "tabpanel" ); - - this.headers - .not( this.active ) - .attr({ - "aria-selected": "false", - "aria-expanded": "false", - tabIndex: -1 - }) - .next() - .attr({ - "aria-hidden": "true" - }) - .hide(); - - // make sure at least one header is in the tab order - if ( !this.active.length ) { - this.headers.eq( 0 ).attr( "tabIndex", 0 ); - } else { - this.active.attr({ - "aria-selected": "true", - "aria-expanded": "true", - tabIndex: 0 - }) - .next() - .attr({ - "aria-hidden": "false" - }); - } - - this._createIcons(); - - this._setupEvents( options.event ); - - if ( heightStyle === "fill" ) { - maxHeight = parent.height(); - this.element.siblings( ":visible" ).each(function() { - var elem = $( this ), - position = elem.css( "position" ); - - if ( position === "absolute" || position === "fixed" ) { - return; - } - maxHeight -= elem.outerHeight( true ); - }); - - this.headers.each(function() { - maxHeight -= $( this ).outerHeight( true ); - }); - - this.headers.next() - .each(function() { - $( this ).height( Math.max( 0, maxHeight - - $( this ).innerHeight() + $( this ).height() ) ); - }) - .css( "overflow", "auto" ); - } else if ( heightStyle === "auto" ) { - maxHeight = 0; - this.headers.next() - .each(function() { - maxHeight = Math.max( maxHeight, $( this ).css( "height", "" ).height() ); - }) - .height( maxHeight ); - } - }, - - _activate: function( index ) { - var active = this._findActive( index )[ 0 ]; - - // trying to activate the already active panel - if ( active === this.active[ 0 ] ) { - return; - } - - // trying to collapse, simulate a click on the currently active header - active = active || this.active[ 0 ]; - - this._eventHandler({ - target: active, - currentTarget: active, - preventDefault: $.noop - }); - }, - - _findActive: function( selector ) { - return typeof selector === "number" ? this.headers.eq( selector ) : $(); - }, - - _setupEvents: function( event ) { - var events = { - keydown: "_keydown" - }; - if ( event ) { - $.each( event.split( " " ), function( index, eventName ) { - events[ eventName ] = "_eventHandler"; - }); - } - - this._off( this.headers.add( this.headers.next() ) ); - this._on( this.headers, events ); - this._on( this.headers.next(), { keydown: "_panelKeyDown" }); - this._hoverable( this.headers ); - this._focusable( this.headers ); - }, - - _eventHandler: function( event ) { - var options = this.options, - active = this.active, - clicked = $( event.currentTarget ), - clickedIsActive = clicked[ 0 ] === active[ 0 ], - collapsing = clickedIsActive && options.collapsible, - toShow = collapsing ? $() : clicked.next(), - toHide = active.next(), - eventData = { - oldHeader: active, - oldPanel: toHide, - newHeader: collapsing ? $() : clicked, - newPanel: toShow - }; - - event.preventDefault(); - - if ( - // click on active header, but not collapsible - ( clickedIsActive && !options.collapsible ) || - // allow canceling activation - ( this._trigger( "beforeActivate", event, eventData ) === false ) ) { - return; - } - - options.active = collapsing ? false : this.headers.index( clicked ); - - // when the call to ._toggle() comes after the class changes - // it causes a very odd bug in IE 8 (see #6720) - this.active = clickedIsActive ? $() : clicked; - this._toggle( eventData ); - - // switch classes - // corner classes on the previously active header stay after the animation - active.removeClass( "ui-accordion-header-active ui-state-active" ); - if ( options.icons ) { - active.children( ".ui-accordion-header-icon" ) - .removeClass( options.icons.activeHeader ) - .addClass( options.icons.header ); - } - - if ( !clickedIsActive ) { - clicked - .removeClass( "ui-corner-all" ) - .addClass( "ui-accordion-header-active ui-state-active ui-corner-top" ); - if ( options.icons ) { - clicked.children( ".ui-accordion-header-icon" ) - .removeClass( options.icons.header ) - .addClass( options.icons.activeHeader ); - } - - clicked - .next() - .addClass( "ui-accordion-content-active" ); - } - }, - - _toggle: function( data ) { - var toShow = data.newPanel, - toHide = this.prevShow.length ? this.prevShow : data.oldPanel; - - // handle activating a panel during the animation for another activation - this.prevShow.add( this.prevHide ).stop( true, true ); - this.prevShow = toShow; - this.prevHide = toHide; - - if ( this.options.animate ) { - this._animate( toShow, toHide, data ); - } else { - toHide.hide(); - toShow.show(); - this._toggleComplete( data ); - } - - toHide.attr({ - "aria-hidden": "true" - }); - toHide.prev().attr({ - "aria-selected": "false", - "aria-expanded": "false" - }); - // if we're switching panels, remove the old header from the tab order - // if we're opening from collapsed state, remove the previous header from the tab order - // if we're collapsing, then keep the collapsing header in the tab order - if ( toShow.length && toHide.length ) { - toHide.prev().attr({ - "tabIndex": -1, - "aria-expanded": "false" - }); - } else if ( toShow.length ) { - this.headers.filter(function() { - return parseInt( $( this ).attr( "tabIndex" ), 10 ) === 0; - }) - .attr( "tabIndex", -1 ); - } - - toShow - .attr( "aria-hidden", "false" ) - .prev() - .attr({ - "aria-selected": "true", - "aria-expanded": "true", - tabIndex: 0 - }); - }, - - _animate: function( toShow, toHide, data ) { - var total, easing, duration, - that = this, - adjust = 0, - boxSizing = toShow.css( "box-sizing" ), - down = toShow.length && - ( !toHide.length || ( toShow.index() < toHide.index() ) ), - animate = this.options.animate || {}, - options = down && animate.down || animate, - complete = function() { - that._toggleComplete( data ); - }; - - if ( typeof options === "number" ) { - duration = options; - } - if ( typeof options === "string" ) { - easing = options; - } - // fall back from options to animation in case of partial down settings - easing = easing || options.easing || animate.easing; - duration = duration || options.duration || animate.duration; - - if ( !toHide.length ) { - return toShow.animate( this.showProps, duration, easing, complete ); - } - if ( !toShow.length ) { - return toHide.animate( this.hideProps, duration, easing, complete ); - } - - total = toShow.show().outerHeight(); - toHide.animate( this.hideProps, { - duration: duration, - easing: easing, - step: function( now, fx ) { - fx.now = Math.round( now ); - } - }); - toShow - .hide() - .animate( this.showProps, { - duration: duration, - easing: easing, - complete: complete, - step: function( now, fx ) { - fx.now = Math.round( now ); - if ( fx.prop !== "height" ) { - if ( boxSizing === "content-box" ) { - adjust += fx.now; - } - } else if ( that.options.heightStyle !== "content" ) { - fx.now = Math.round( total - toHide.outerHeight() - adjust ); - adjust = 0; - } - } - }); - }, - - _toggleComplete: function( data ) { - var toHide = data.oldPanel; - - toHide - .removeClass( "ui-accordion-content-active" ) - .prev() - .removeClass( "ui-corner-top" ) - .addClass( "ui-corner-all" ); - - // Work around for rendering bug in IE (#5421) - if ( toHide.length ) { - toHide.parent()[ 0 ].className = toHide.parent()[ 0 ].className; - } - this._trigger( "activate", null, data ); - } -}); - - -/*! - * jQuery UI Menu 1.11.4 - * http://jqueryui.com - * - * Copyright jQuery Foundation and other contributors - * Released under the MIT license. - * http://jquery.org/license - * - * http://api.jqueryui.com/menu/ - */ - - -var menu = $.widget( "ui.menu", { - version: "1.11.4", - defaultElement: "<ul>", - delay: 300, - options: { - icons: { - submenu: "ui-icon-carat-1-e" - }, - items: "> *", - menus: "ul", - position: { - my: "left-1 top", - at: "right top" - }, - role: "menu", - - // callbacks - blur: null, - focus: null, - select: null - }, - - _create: function() { - this.activeMenu = this.element; - - // Flag used to prevent firing of the click handler - // as the event bubbles up through nested menus - this.mouseHandled = false; - this.element - .uniqueId() - .addClass( "ui-menu ui-widget ui-widget-content" ) - .toggleClass( "ui-menu-icons", !!this.element.find( ".ui-icon" ).length ) - .attr({ - role: this.options.role, - tabIndex: 0 - }); - - if ( this.options.disabled ) { - this.element - .addClass( "ui-state-disabled" ) - .attr( "aria-disabled", "true" ); - } - - this._on({ - // Prevent focus from sticking to links inside menu after clicking - // them (focus should always stay on UL during navigation). - "mousedown .ui-menu-item": function( event ) { - event.preventDefault(); - }, - "click .ui-menu-item": function( event ) { - var target = $( event.target ); - if ( !this.mouseHandled && target.not( ".ui-state-disabled" ).length ) { - this.select( event ); - - // Only set the mouseHandled flag if the event will bubble, see #9469. - if ( !event.isPropagationStopped() ) { - this.mouseHandled = true; - } - - // Open submenu on click - if ( target.has( ".ui-menu" ).length ) { - this.expand( event ); - } else if ( !this.element.is( ":focus" ) && $( this.document[ 0 ].activeElement ).closest( ".ui-menu" ).length ) { - - // Redirect focus to the menu - this.element.trigger( "focus", [ true ] ); - - // If the active item is on the top level, let it stay active. - // Otherwise, blur the active item since it is no longer visible. - if ( this.active && this.active.parents( ".ui-menu" ).length === 1 ) { - clearTimeout( this.timer ); - } - } - } - }, - "mouseenter .ui-menu-item": function( event ) { - // Ignore mouse events while typeahead is active, see #10458. - // Prevents focusing the wrong item when typeahead causes a scroll while the mouse - // is over an item in the menu - if ( this.previousFilter ) { - return; - } - var target = $( event.currentTarget ); - // Remove ui-state-active class from siblings of the newly focused menu item - // to avoid a jump caused by adjacent elements both having a class with a border - target.siblings( ".ui-state-active" ).removeClass( "ui-state-active" ); - this.focus( event, target ); - }, - mouseleave: "collapseAll", - "mouseleave .ui-menu": "collapseAll", - focus: function( event, keepActiveItem ) { - // If there's already an active item, keep it active - // If not, activate the first item - var item = this.active || this.element.find( this.options.items ).eq( 0 ); - - if ( !keepActiveItem ) { - this.focus( event, item ); - } - }, - blur: function( event ) { - this._delay(function() { - if ( !$.contains( this.element[0], this.document[0].activeElement ) ) { - this.collapseAll( event ); - } - }); - }, - keydown: "_keydown" - }); - - this.refresh(); - - // Clicks outside of a menu collapse any open menus - this._on( this.document, { - click: function( event ) { - if ( this._closeOnDocumentClick( event ) ) { - this.collapseAll( event ); - } - - // Reset the mouseHandled flag - this.mouseHandled = false; - } - }); - }, - - _destroy: function() { - // Destroy (sub)menus - this.element - .removeAttr( "aria-activedescendant" ) - .find( ".ui-menu" ).addBack() - .removeClass( "ui-menu ui-widget ui-widget-content ui-menu-icons ui-front" ) - .removeAttr( "role" ) - .removeAttr( "tabIndex" ) - .removeAttr( "aria-labelledby" ) - .removeAttr( "aria-expanded" ) - .removeAttr( "aria-hidden" ) - .removeAttr( "aria-disabled" ) - .removeUniqueId() - .show(); - - // Destroy menu items - this.element.find( ".ui-menu-item" ) - .removeClass( "ui-menu-item" ) - .removeAttr( "role" ) - .removeAttr( "aria-disabled" ) - .removeUniqueId() - .removeClass( "ui-state-hover" ) - .removeAttr( "tabIndex" ) - .removeAttr( "role" ) - .removeAttr( "aria-haspopup" ) - .children().each( function() { - var elem = $( this ); - if ( elem.data( "ui-menu-submenu-carat" ) ) { - elem.remove(); - } - }); - - // Destroy menu dividers - this.element.find( ".ui-menu-divider" ).removeClass( "ui-menu-divider ui-widget-content" ); - }, - - _keydown: function( event ) { - var match, prev, character, skip, - preventDefault = true; - - switch ( event.keyCode ) { - case $.ui.keyCode.PAGE_UP: - this.previousPage( event ); - break; - case $.ui.keyCode.PAGE_DOWN: - this.nextPage( event ); - break; - case $.ui.keyCode.HOME: - this._move( "first", "first", event ); - break; - case $.ui.keyCode.END: - this._move( "last", "last", event ); - break; - case $.ui.keyCode.UP: - this.previous( event ); - break; - case $.ui.keyCode.DOWN: - this.next( event ); - break; - case $.ui.keyCode.LEFT: - this.collapse( event ); - break; - case $.ui.keyCode.RIGHT: - if ( this.active && !this.active.is( ".ui-state-disabled" ) ) { - this.expand( event ); - } - break; - case $.ui.keyCode.ENTER: - case $.ui.keyCode.SPACE: - this._activate( event ); - break; - case $.ui.keyCode.ESCAPE: - this.collapse( event ); - break; - default: - preventDefault = false; - prev = this.previousFilter || ""; - character = String.fromCharCode( event.keyCode ); - skip = false; - - clearTimeout( this.filterTimer ); - - if ( character === prev ) { - skip = true; - } else { - character = prev + character; - } - - match = this._filterMenuItems( character ); - match = skip && match.index( this.active.next() ) !== -1 ? - this.active.nextAll( ".ui-menu-item" ) : - match; - - // If no matches on the current filter, reset to the last character pressed - // to move down the menu to the first item that starts with that character - if ( !match.length ) { - character = String.fromCharCode( event.keyCode ); - match = this._filterMenuItems( character ); - } - - if ( match.length ) { - this.focus( event, match ); - this.previousFilter = character; - this.filterTimer = this._delay(function() { - delete this.previousFilter; - }, 1000 ); - } else { - delete this.previousFilter; - } - } - - if ( preventDefault ) { - event.preventDefault(); - } - }, - - _activate: function( event ) { - if ( !this.active.is( ".ui-state-disabled" ) ) { - if ( this.active.is( "[aria-haspopup='true']" ) ) { - this.expand( event ); - } else { - this.select( event ); - } - } - }, - - refresh: function() { - var menus, items, - that = this, - icon = this.options.icons.submenu, - submenus = this.element.find( this.options.menus ); - - this.element.toggleClass( "ui-menu-icons", !!this.element.find( ".ui-icon" ).length ); - - // Initialize nested menus - submenus.filter( ":not(.ui-menu)" ) - .addClass( "ui-menu ui-widget ui-widget-content ui-front" ) - .hide() - .attr({ - role: this.options.role, - "aria-hidden": "true", - "aria-expanded": "false" - }) - .each(function() { - var menu = $( this ), - item = menu.parent(), - submenuCarat = $( "<span>" ) - .addClass( "ui-menu-icon ui-icon " + icon ) - .data( "ui-menu-submenu-carat", true ); - - item - .attr( "aria-haspopup", "true" ) - .prepend( submenuCarat ); - menu.attr( "aria-labelledby", item.attr( "id" ) ); - }); - - menus = submenus.add( this.element ); - items = menus.find( this.options.items ); - - // Initialize menu-items containing spaces and/or dashes only as dividers - items.not( ".ui-menu-item" ).each(function() { - var item = $( this ); - if ( that._isDivider( item ) ) { - item.addClass( "ui-widget-content ui-menu-divider" ); - } - }); - - // Don't refresh list items that are already adapted - items.not( ".ui-menu-item, .ui-menu-divider" ) - .addClass( "ui-menu-item" ) - .uniqueId() - .attr({ - tabIndex: -1, - role: this._itemRole() - }); - - // Add aria-disabled attribute to any disabled menu item - items.filter( ".ui-state-disabled" ).attr( "aria-disabled", "true" ); - - // If the active item has been removed, blur the menu - if ( this.active && !$.contains( this.element[ 0 ], this.active[ 0 ] ) ) { - this.blur(); - } - }, - - _itemRole: function() { - return { - menu: "menuitem", - listbox: "option" - }[ this.options.role ]; - }, - - _setOption: function( key, value ) { - if ( key === "icons" ) { - this.element.find( ".ui-menu-icon" ) - .removeClass( this.options.icons.submenu ) - .addClass( value.submenu ); - } - if ( key === "disabled" ) { - this.element - .toggleClass( "ui-state-disabled", !!value ) - .attr( "aria-disabled", value ); - } - this._super( key, value ); - }, - - focus: function( event, item ) { - var nested, focused; - this.blur( event, event && event.type === "focus" ); - - this._scrollIntoView( item ); - - this.active = item.first(); - focused = this.active.addClass( "ui-state-focus" ).removeClass( "ui-state-active" ); - // Only update aria-activedescendant if there's a role - // otherwise we assume focus is managed elsewhere - if ( this.options.role ) { - this.element.attr( "aria-activedescendant", focused.attr( "id" ) ); - } - - // Highlight active parent menu item, if any - this.active - .parent() - .closest( ".ui-menu-item" ) - .addClass( "ui-state-active" ); - - if ( event && event.type === "keydown" ) { - this._close(); - } else { - this.timer = this._delay(function() { - this._close(); - }, this.delay ); - } - - nested = item.children( ".ui-menu" ); - if ( nested.length && event && ( /^mouse/.test( event.type ) ) ) { - this._startOpening(nested); - } - this.activeMenu = item.parent(); - - this._trigger( "focus", event, { item: item } ); - }, - - _scrollIntoView: function( item ) { - var borderTop, paddingTop, offset, scroll, elementHeight, itemHeight; - if ( this._hasScroll() ) { - borderTop = parseFloat( $.css( this.activeMenu[0], "borderTopWidth" ) ) || 0; - paddingTop = parseFloat( $.css( this.activeMenu[0], "paddingTop" ) ) || 0; - offset = item.offset().top - this.activeMenu.offset().top - borderTop - paddingTop; - scroll = this.activeMenu.scrollTop(); - elementHeight = this.activeMenu.height(); - itemHeight = item.outerHeight(); - - if ( offset < 0 ) { - this.activeMenu.scrollTop( scroll + offset ); - } else if ( offset + itemHeight > elementHeight ) { - this.activeMenu.scrollTop( scroll + offset - elementHeight + itemHeight ); - } - } - }, - - blur: function( event, fromFocus ) { - if ( !fromFocus ) { - clearTimeout( this.timer ); - } - - if ( !this.active ) { - return; - } - - this.active.removeClass( "ui-state-focus" ); - this.active = null; - - this._trigger( "blur", event, { item: this.active } ); - }, - - _startOpening: function( submenu ) { - clearTimeout( this.timer ); - - // Don't open if already open fixes a Firefox bug that caused a .5 pixel - // shift in the submenu position when mousing over the carat icon - if ( submenu.attr( "aria-hidden" ) !== "true" ) { - return; - } - - this.timer = this._delay(function() { - this._close(); - this._open( submenu ); - }, this.delay ); - }, - - _open: function( submenu ) { - var position = $.extend({ - of: this.active - }, this.options.position ); - - clearTimeout( this.timer ); - this.element.find( ".ui-menu" ).not( submenu.parents( ".ui-menu" ) ) - .hide() - .attr( "aria-hidden", "true" ); - - submenu - .show() - .removeAttr( "aria-hidden" ) - .attr( "aria-expanded", "true" ) - .position( position ); - }, - - collapseAll: function( event, all ) { - clearTimeout( this.timer ); - this.timer = this._delay(function() { - // If we were passed an event, look for the submenu that contains the event - var currentMenu = all ? this.element : - $( event && event.target ).closest( this.element.find( ".ui-menu" ) ); - - // If we found no valid submenu ancestor, use the main menu to close all sub menus anyway - if ( !currentMenu.length ) { - currentMenu = this.element; - } - - this._close( currentMenu ); - - this.blur( event ); - this.activeMenu = currentMenu; - }, this.delay ); - }, - - // With no arguments, closes the currently active menu - if nothing is active - // it closes all menus. If passed an argument, it will search for menus BELOW - _close: function( startMenu ) { - if ( !startMenu ) { - startMenu = this.active ? this.active.parent() : this.element; - } - - startMenu - .find( ".ui-menu" ) - .hide() - .attr( "aria-hidden", "true" ) - .attr( "aria-expanded", "false" ) - .end() - .find( ".ui-state-active" ).not( ".ui-state-focus" ) - .removeClass( "ui-state-active" ); - }, - - _closeOnDocumentClick: function( event ) { - return !$( event.target ).closest( ".ui-menu" ).length; - }, - - _isDivider: function( item ) { - - // Match hyphen, em dash, en dash - return !/[^\-\u2014\u2013\s]/.test( item.text() ); - }, - - collapse: function( event ) { - var newItem = this.active && - this.active.parent().closest( ".ui-menu-item", this.element ); - if ( newItem && newItem.length ) { - this._close(); - this.focus( event, newItem ); - } - }, - - expand: function( event ) { - var newItem = this.active && - this.active - .children( ".ui-menu " ) - .find( this.options.items ) - .first(); - - if ( newItem && newItem.length ) { - this._open( newItem.parent() ); - - // Delay so Firefox will not hide activedescendant change in expanding submenu from AT - this._delay(function() { - this.focus( event, newItem ); - }); - } - }, - - next: function( event ) { - this._move( "next", "first", event ); - }, - - previous: function( event ) { - this._move( "prev", "last", event ); - }, - - isFirstItem: function() { - return this.active && !this.active.prevAll( ".ui-menu-item" ).length; - }, - - isLastItem: function() { - return this.active && !this.active.nextAll( ".ui-menu-item" ).length; - }, - - _move: function( direction, filter, event ) { - var next; - if ( this.active ) { - if ( direction === "first" || direction === "last" ) { - next = this.active - [ direction === "first" ? "prevAll" : "nextAll" ]( ".ui-menu-item" ) - .eq( -1 ); - } else { - next = this.active - [ direction + "All" ]( ".ui-menu-item" ) - .eq( 0 ); - } - } - if ( !next || !next.length || !this.active ) { - next = this.activeMenu.find( this.options.items )[ filter ](); - } - - this.focus( event, next ); - }, - - nextPage: function( event ) { - var item, base, height; - - if ( !this.active ) { - this.next( event ); - return; - } - if ( this.isLastItem() ) { - return; - } - if ( this._hasScroll() ) { - base = this.active.offset().top; - height = this.element.height(); - this.active.nextAll( ".ui-menu-item" ).each(function() { - item = $( this ); - return item.offset().top - base - height < 0; - }); - - this.focus( event, item ); - } else { - this.focus( event, this.activeMenu.find( this.options.items ) - [ !this.active ? "first" : "last" ]() ); - } - }, - - previousPage: function( event ) { - var item, base, height; - if ( !this.active ) { - this.next( event ); - return; - } - if ( this.isFirstItem() ) { - return; - } - if ( this._hasScroll() ) { - base = this.active.offset().top; - height = this.element.height(); - this.active.prevAll( ".ui-menu-item" ).each(function() { - item = $( this ); - return item.offset().top - base + height > 0; - }); - - this.focus( event, item ); - } else { - this.focus( event, this.activeMenu.find( this.options.items ).first() ); - } - }, - - _hasScroll: function() { - return this.element.outerHeight() < this.element.prop( "scrollHeight" ); - }, - - select: function( event ) { - // TODO: It should never be possible to not have an active item at this - // point, but the tests don't trigger mouseenter before click. - this.active = this.active || $( event.target ).closest( ".ui-menu-item" ); - var ui = { item: this.active }; - if ( !this.active.has( ".ui-menu" ).length ) { - this.collapseAll( event, true ); - } - this._trigger( "select", event, ui ); - }, - - _filterMenuItems: function(character) { - var escapedCharacter = character.replace( /[\-\[\]{}()*+?.,\\\^$|#\s]/g, "\\$&" ), - regex = new RegExp( "^" + escapedCharacter, "i" ); - - return this.activeMenu - .find( this.options.items ) - - // Only match on items, not dividers or other content (#10571) - .filter( ".ui-menu-item" ) - .filter(function() { - return regex.test( $.trim( $( this ).text() ) ); - }); - } -}); - - -/*! - * jQuery UI Autocomplete 1.11.4 - * http://jqueryui.com - * - * Copyright jQuery Foundation and other contributors - * Released under the MIT license. - * http://jquery.org/license - * - * http://api.jqueryui.com/autocomplete/ - */ - - -$.widget( "ui.autocomplete", { - version: "1.11.4", - defaultElement: "<input>", - options: { - appendTo: null, - autoFocus: false, - delay: 300, - minLength: 1, - position: { - my: "left top", - at: "left bottom", - collision: "none" - }, - source: null, - - // callbacks - change: null, - close: null, - focus: null, - open: null, - response: null, - search: null, - select: null - }, - - requestIndex: 0, - pending: 0, - - _create: function() { - // Some browsers only repeat keydown events, not keypress events, - // so we use the suppressKeyPress flag to determine if we've already - // handled the keydown event. #7269 - // Unfortunately the code for & in keypress is the same as the up arrow, - // so we use the suppressKeyPressRepeat flag to avoid handling keypress - // events when we know the keydown event was used to modify the - // search term. #7799 - var suppressKeyPress, suppressKeyPressRepeat, suppressInput, - nodeName = this.element[ 0 ].nodeName.toLowerCase(), - isTextarea = nodeName === "textarea", - isInput = nodeName === "input"; - - this.isMultiLine = - // Textareas are always multi-line - isTextarea ? true : - // Inputs are always single-line, even if inside a contentEditable element - // IE also treats inputs as contentEditable - isInput ? false : - // All other element types are determined by whether or not they're contentEditable - this.element.prop( "isContentEditable" ); - - this.valueMethod = this.element[ isTextarea || isInput ? "val" : "text" ]; - this.isNewMenu = true; - - this.element - .addClass( "ui-autocomplete-input" ) - .attr( "autocomplete", "off" ); - - this._on( this.element, { - keydown: function( event ) { - if ( this.element.prop( "readOnly" ) ) { - suppressKeyPress = true; - suppressInput = true; - suppressKeyPressRepeat = true; - return; - } - - suppressKeyPress = false; - suppressInput = false; - suppressKeyPressRepeat = false; - var keyCode = $.ui.keyCode; - switch ( event.keyCode ) { - case keyCode.PAGE_UP: - suppressKeyPress = true; - this._move( "previousPage", event ); - break; - case keyCode.PAGE_DOWN: - suppressKeyPress = true; - this._move( "nextPage", event ); - break; - case keyCode.UP: - suppressKeyPress = true; - this._keyEvent( "previous", event ); - break; - case keyCode.DOWN: - suppressKeyPress = true; - this._keyEvent( "next", event ); - break; - case keyCode.ENTER: - // when menu is open and has focus - if ( this.menu.active ) { - // #6055 - Opera still allows the keypress to occur - // which causes forms to submit - suppressKeyPress = true; - event.preventDefault(); - this.menu.select( event ); - } - break; - case keyCode.TAB: - if ( this.menu.active ) { - this.menu.select( event ); - } - break; - case keyCode.ESCAPE: - if ( this.menu.element.is( ":visible" ) ) { - if ( !this.isMultiLine ) { - this._value( this.term ); - } - this.close( event ); - // Different browsers have different default behavior for escape - // Single press can mean undo or clear - // Double press in IE means clear the whole form - event.preventDefault(); - } - break; - default: - suppressKeyPressRepeat = true; - // search timeout should be triggered before the input value is changed - this._searchTimeout( event ); - break; - } - }, - keypress: function( event ) { - if ( suppressKeyPress ) { - suppressKeyPress = false; - if ( !this.isMultiLine || this.menu.element.is( ":visible" ) ) { - event.preventDefault(); - } - return; - } - if ( suppressKeyPressRepeat ) { - return; - } - - // replicate some key handlers to allow them to repeat in Firefox and Opera - var keyCode = $.ui.keyCode; - switch ( event.keyCode ) { - case keyCode.PAGE_UP: - this._move( "previousPage", event ); - break; - case keyCode.PAGE_DOWN: - this._move( "nextPage", event ); - break; - case keyCode.UP: - this._keyEvent( "previous", event ); - break; - case keyCode.DOWN: - this._keyEvent( "next", event ); - break; - } - }, - input: function( event ) { - if ( suppressInput ) { - suppressInput = false; - event.preventDefault(); - return; - } - this._searchTimeout( event ); - }, - focus: function() { - this.selectedItem = null; - this.previous = this._value(); - }, - blur: function( event ) { - if ( this.cancelBlur ) { - delete this.cancelBlur; - return; - } - - clearTimeout( this.searching ); - this.close( event ); - this._change( event ); - } - }); - - this._initSource(); - this.menu = $( "<ul>" ) - .addClass( "ui-autocomplete ui-front" ) - .appendTo( this._appendTo() ) - .menu({ - // disable ARIA support, the live region takes care of that - role: null - }) - .hide() - .menu( "instance" ); - - this._on( this.menu.element, { - mousedown: function( event ) { - // prevent moving focus out of the text field - event.preventDefault(); - - // IE doesn't prevent moving focus even with event.preventDefault() - // so we set a flag to know when we should ignore the blur event - this.cancelBlur = true; - this._delay(function() { - delete this.cancelBlur; - }); - - // clicking on the scrollbar causes focus to shift to the body - // but we can't detect a mouseup or a click immediately afterward - // so we have to track the next mousedown and close the menu if - // the user clicks somewhere outside of the autocomplete - var menuElement = this.menu.element[ 0 ]; - if ( !$( event.target ).closest( ".ui-menu-item" ).length ) { - this._delay(function() { - var that = this; - this.document.one( "mousedown", function( event ) { - if ( event.target !== that.element[ 0 ] && - event.target !== menuElement && - !$.contains( menuElement, event.target ) ) { - that.close(); - } - }); - }); - } - }, - menufocus: function( event, ui ) { - var label, item; - // support: Firefox - // Prevent accidental activation of menu items in Firefox (#7024 #9118) - if ( this.isNewMenu ) { - this.isNewMenu = false; - if ( event.originalEvent && /^mouse/.test( event.originalEvent.type ) ) { - this.menu.blur(); - - this.document.one( "mousemove", function() { - $( event.target ).trigger( event.originalEvent ); - }); - - return; - } - } - - item = ui.item.data( "ui-autocomplete-item" ); - if ( false !== this._trigger( "focus", event, { item: item } ) ) { - // use value to match what will end up in the input, if it was a key event - if ( event.originalEvent && /^key/.test( event.originalEvent.type ) ) { - this._value( item.value ); - } - } - - // Announce the value in the liveRegion - label = ui.item.attr( "aria-label" ) || item.value; - if ( label && $.trim( label ).length ) { - this.liveRegion.children().hide(); - $( "<div>" ).text( label ).appendTo( this.liveRegion ); - } - }, - menuselect: function( event, ui ) { - var item = ui.item.data( "ui-autocomplete-item" ), - previous = this.previous; - - // only trigger when focus was lost (click on menu) - if ( this.element[ 0 ] !== this.document[ 0 ].activeElement ) { - this.element.focus(); - this.previous = previous; - // #6109 - IE triggers two focus events and the second - // is asynchronous, so we need to reset the previous - // term synchronously and asynchronously :-( - this._delay(function() { - this.previous = previous; - this.selectedItem = item; - }); - } - - if ( false !== this._trigger( "select", event, { item: item } ) ) { - this._value( item.value ); - } - // reset the term after the select event - // this allows custom select handling to work properly - this.term = this._value(); - - this.close( event ); - this.selectedItem = item; - } - }); - - this.liveRegion = $( "<span>", { - role: "status", - "aria-live": "assertive", - "aria-relevant": "additions" - }) - .addClass( "ui-helper-hidden-accessible" ) - .appendTo( this.document[ 0 ].body ); - - // turning off autocomplete prevents the browser from remembering the - // value when navigating through history, so we re-enable autocomplete - // if the page is unloaded before the widget is destroyed. #7790 - this._on( this.window, { - beforeunload: function() { - this.element.removeAttr( "autocomplete" ); - } - }); - }, - - _destroy: function() { - clearTimeout( this.searching ); - this.element - .removeClass( "ui-autocomplete-input" ) - .removeAttr( "autocomplete" ); - this.menu.element.remove(); - this.liveRegion.remove(); - }, - - _setOption: function( key, value ) { - this._super( key, value ); - if ( key === "source" ) { - this._initSource(); - } - if ( key === "appendTo" ) { - this.menu.element.appendTo( this._appendTo() ); - } - if ( key === "disabled" && value && this.xhr ) { - this.xhr.abort(); - } - }, - - _appendTo: function() { - var element = this.options.appendTo; - - if ( element ) { - element = element.jquery || element.nodeType ? - $( element ) : - this.document.find( element ).eq( 0 ); - } - - if ( !element || !element[ 0 ] ) { - element = this.element.closest( ".ui-front" ); - } - - if ( !element.length ) { - element = this.document[ 0 ].body; - } - - return element; - }, - - _initSource: function() { - var array, url, - that = this; - if ( $.isArray( this.options.source ) ) { - array = this.options.source; - this.source = function( request, response ) { - response( $.ui.autocomplete.filter( array, request.term ) ); - }; - } else if ( typeof this.options.source === "string" ) { - url = this.options.source; - this.source = function( request, response ) { - if ( that.xhr ) { - that.xhr.abort(); - } - that.xhr = $.ajax({ - url: url, - data: request, - dataType: "json", - success: function( data ) { - response( data ); - }, - error: function() { - response([]); - } - }); - }; - } else { - this.source = this.options.source; - } - }, - - _searchTimeout: function( event ) { - clearTimeout( this.searching ); - this.searching = this._delay(function() { - - // Search if the value has changed, or if the user retypes the same value (see #7434) - var equalValues = this.term === this._value(), - menuVisible = this.menu.element.is( ":visible" ), - modifierKey = event.altKey || event.ctrlKey || event.metaKey || event.shiftKey; - - if ( !equalValues || ( equalValues && !menuVisible && !modifierKey ) ) { - this.selectedItem = null; - this.search( null, event ); - } - }, this.options.delay ); - }, - - search: function( value, event ) { - value = value != null ? value : this._value(); - - // always save the actual value, not the one passed as an argument - this.term = this._value(); - - if ( value.length < this.options.minLength ) { - return this.close( event ); - } - - if ( this._trigger( "search", event ) === false ) { - return; - } - - return this._search( value ); - }, - - _search: function( value ) { - this.pending++; - this.element.addClass( "ui-autocomplete-loading" ); - this.cancelSearch = false; - - this.source( { term: value }, this._response() ); - }, - - _response: function() { - var index = ++this.requestIndex; - - return $.proxy(function( content ) { - if ( index === this.requestIndex ) { - this.__response( content ); - } - - this.pending--; - if ( !this.pending ) { - this.element.removeClass( "ui-autocomplete-loading" ); - } - }, this ); - }, - - __response: function( content ) { - if ( content ) { - content = this._normalize( content ); - } - this._trigger( "response", null, { content: content } ); - if ( !this.options.disabled && content && content.length && !this.cancelSearch ) { - this._suggest( content ); - this._trigger( "open" ); - } else { - // use ._close() instead of .close() so we don't cancel future searches - this._close(); - } - }, - - close: function( event ) { - this.cancelSearch = true; - this._close( event ); - }, - - _close: function( event ) { - if ( this.menu.element.is( ":visible" ) ) { - this.menu.element.hide(); - this.menu.blur(); - this.isNewMenu = true; - this._trigger( "close", event ); - } - }, - - _change: function( event ) { - if ( this.previous !== this._value() ) { - this._trigger( "change", event, { item: this.selectedItem } ); - } - }, - - _normalize: function( items ) { - // assume all items have the right format when the first item is complete - if ( items.length && items[ 0 ].label && items[ 0 ].value ) { - return items; - } - return $.map( items, function( item ) { - if ( typeof item === "string" ) { - return { - label: item, - value: item - }; - } - return $.extend( {}, item, { - label: item.label || item.value, - value: item.value || item.label - }); - }); - }, - - _suggest: function( items ) { - var ul = this.menu.element.empty(); - this._renderMenu( ul, items ); - this.isNewMenu = true; - this.menu.refresh(); - - // size and position menu - ul.show(); - this._resizeMenu(); - ul.position( $.extend({ - of: this.element - }, this.options.position ) ); - - if ( this.options.autoFocus ) { - this.menu.next(); - } - }, - - _resizeMenu: function() { - var ul = this.menu.element; - ul.outerWidth( Math.max( - // Firefox wraps long text (possibly a rounding bug) - // so we add 1px to avoid the wrapping (#7513) - ul.width( "" ).outerWidth() + 1, - this.element.outerWidth() - ) ); - }, - - _renderMenu: function( ul, items ) { - var that = this; - $.each( items, function( index, item ) { - that._renderItemData( ul, item ); - }); - }, - - _renderItemData: function( ul, item ) { - return this._renderItem( ul, item ).data( "ui-autocomplete-item", item ); - }, - - _renderItem: function( ul, item ) { - return $( "<li>" ).text( item.label ).appendTo( ul ); - }, - - _move: function( direction, event ) { - if ( !this.menu.element.is( ":visible" ) ) { - this.search( null, event ); - return; - } - if ( this.menu.isFirstItem() && /^previous/.test( direction ) || - this.menu.isLastItem() && /^next/.test( direction ) ) { - - if ( !this.isMultiLine ) { - this._value( this.term ); - } - - this.menu.blur(); - return; - } - this.menu[ direction ]( event ); - }, - - widget: function() { - return this.menu.element; - }, - - _value: function() { - return this.valueMethod.apply( this.element, arguments ); - }, - - _keyEvent: function( keyEvent, event ) { - if ( !this.isMultiLine || this.menu.element.is( ":visible" ) ) { - this._move( keyEvent, event ); - - // prevents moving cursor to beginning/end of the text field in some browsers - event.preventDefault(); - } - } -}); - -$.extend( $.ui.autocomplete, { - escapeRegex: function( value ) { - return value.replace( /[\-\[\]{}()*+?.,\\\^$|#\s]/g, "\\$&" ); - }, - filter: function( array, term ) { - var matcher = new RegExp( $.ui.autocomplete.escapeRegex( term ), "i" ); - return $.grep( array, function( value ) { - return matcher.test( value.label || value.value || value ); - }); - } -}); - -// live region extension, adding a `messages` option -// NOTE: This is an experimental API. We are still investigating -// a full solution for string manipulation and internationalization. -$.widget( "ui.autocomplete", $.ui.autocomplete, { - options: { - messages: { - noResults: "No search results.", - results: function( amount ) { - return amount + ( amount > 1 ? " results are" : " result is" ) + - " available, use up and down arrow keys to navigate."; - } - } - }, - - __response: function( content ) { - var message; - this._superApply( arguments ); - if ( this.options.disabled || this.cancelSearch ) { - return; - } - if ( content && content.length ) { - message = this.options.messages.results( content.length ); - } else { - message = this.options.messages.noResults; - } - this.liveRegion.children().hide(); - $( "<div>" ).text( message ).appendTo( this.liveRegion ); - } -}); - -var autocomplete = $.ui.autocomplete; - - -/*! - * jQuery UI Button 1.11.4 - * http://jqueryui.com - * - * Copyright jQuery Foundation and other contributors - * Released under the MIT license. - * http://jquery.org/license - * - * http://api.jqueryui.com/button/ - */ - - -var lastActive, - baseClasses = "ui-button ui-widget ui-state-default ui-corner-all", - typeClasses = "ui-button-icons-only ui-button-icon-only ui-button-text-icons ui-button-text-icon-primary ui-button-text-icon-secondary ui-button-text-only", - formResetHandler = function() { - var form = $( this ); - setTimeout(function() { - form.find( ":ui-button" ).button( "refresh" ); - }, 1 ); - }, - radioGroup = function( radio ) { - var name = radio.name, - form = radio.form, - radios = $( [] ); - if ( name ) { - name = name.replace( /'/g, "\\'" ); - if ( form ) { - radios = $( form ).find( "[name='" + name + "'][type=radio]" ); - } else { - radios = $( "[name='" + name + "'][type=radio]", radio.ownerDocument ) - .filter(function() { - return !this.form; - }); - } - } - return radios; - }; - -$.widget( "ui.button", { - version: "1.11.4", - defaultElement: "<button>", - options: { - disabled: null, - text: true, - label: null, - icons: { - primary: null, - secondary: null - } - }, - _create: function() { - this.element.closest( "form" ) - .unbind( "reset" + this.eventNamespace ) - .bind( "reset" + this.eventNamespace, formResetHandler ); - - if ( typeof this.options.disabled !== "boolean" ) { - this.options.disabled = !!this.element.prop( "disabled" ); - } else { - this.element.prop( "disabled", this.options.disabled ); - } - - this._determineButtonType(); - this.hasTitle = !!this.buttonElement.attr( "title" ); - - var that = this, - options = this.options, - toggleButton = this.type === "checkbox" || this.type === "radio", - activeClass = !toggleButton ? "ui-state-active" : ""; - - if ( options.label === null ) { - options.label = (this.type === "input" ? this.buttonElement.val() : this.buttonElement.html()); - } - - this._hoverable( this.buttonElement ); - - this.buttonElement - .addClass( baseClasses ) - .attr( "role", "button" ) - .bind( "mouseenter" + this.eventNamespace, function() { - if ( options.disabled ) { - return; - } - if ( this === lastActive ) { - $( this ).addClass( "ui-state-active" ); - } - }) - .bind( "mouseleave" + this.eventNamespace, function() { - if ( options.disabled ) { - return; - } - $( this ).removeClass( activeClass ); - }) - .bind( "click" + this.eventNamespace, function( event ) { - if ( options.disabled ) { - event.preventDefault(); - event.stopImmediatePropagation(); - } - }); - - // Can't use _focusable() because the element that receives focus - // and the element that gets the ui-state-focus class are different - this._on({ - focus: function() { - this.buttonElement.addClass( "ui-state-focus" ); - }, - blur: function() { - this.buttonElement.removeClass( "ui-state-focus" ); - } - }); - - if ( toggleButton ) { - this.element.bind( "change" + this.eventNamespace, function() { - that.refresh(); - }); - } - - if ( this.type === "checkbox" ) { - this.buttonElement.bind( "click" + this.eventNamespace, function() { - if ( options.disabled ) { - return false; - } - }); - } else if ( this.type === "radio" ) { - this.buttonElement.bind( "click" + this.eventNamespace, function() { - if ( options.disabled ) { - return false; - } - $( this ).addClass( "ui-state-active" ); - that.buttonElement.attr( "aria-pressed", "true" ); - - var radio = that.element[ 0 ]; - radioGroup( radio ) - .not( radio ) - .map(function() { - return $( this ).button( "widget" )[ 0 ]; - }) - .removeClass( "ui-state-active" ) - .attr( "aria-pressed", "false" ); - }); - } else { - this.buttonElement - .bind( "mousedown" + this.eventNamespace, function() { - if ( options.disabled ) { - return false; - } - $( this ).addClass( "ui-state-active" ); - lastActive = this; - that.document.one( "mouseup", function() { - lastActive = null; - }); - }) - .bind( "mouseup" + this.eventNamespace, function() { - if ( options.disabled ) { - return false; - } - $( this ).removeClass( "ui-state-active" ); - }) - .bind( "keydown" + this.eventNamespace, function(event) { - if ( options.disabled ) { - return false; - } - if ( event.keyCode === $.ui.keyCode.SPACE || event.keyCode === $.ui.keyCode.ENTER ) { - $( this ).addClass( "ui-state-active" ); - } - }) - // see #8559, we bind to blur here in case the button element loses - // focus between keydown and keyup, it would be left in an "active" state - .bind( "keyup" + this.eventNamespace + " blur" + this.eventNamespace, function() { - $( this ).removeClass( "ui-state-active" ); - }); - - if ( this.buttonElement.is("a") ) { - this.buttonElement.keyup(function(event) { - if ( event.keyCode === $.ui.keyCode.SPACE ) { - // TODO pass through original event correctly (just as 2nd argument doesn't work) - $( this ).click(); - } - }); - } - } - - this._setOption( "disabled", options.disabled ); - this._resetButton(); - }, - - _determineButtonType: function() { - var ancestor, labelSelector, checked; - - if ( this.element.is("[type=checkbox]") ) { - this.type = "checkbox"; - } else if ( this.element.is("[type=radio]") ) { - this.type = "radio"; - } else if ( this.element.is("input") ) { - this.type = "input"; - } else { - this.type = "button"; - } - - if ( this.type === "checkbox" || this.type === "radio" ) { - // we don't search against the document in case the element - // is disconnected from the DOM - ancestor = this.element.parents().last(); - labelSelector = "label[for='" + this.element.attr("id") + "']"; - this.buttonElement = ancestor.find( labelSelector ); - if ( !this.buttonElement.length ) { - ancestor = ancestor.length ? ancestor.siblings() : this.element.siblings(); - this.buttonElement = ancestor.filter( labelSelector ); - if ( !this.buttonElement.length ) { - this.buttonElement = ancestor.find( labelSelector ); - } - } - this.element.addClass( "ui-helper-hidden-accessible" ); - - checked = this.element.is( ":checked" ); - if ( checked ) { - this.buttonElement.addClass( "ui-state-active" ); - } - this.buttonElement.prop( "aria-pressed", checked ); - } else { - this.buttonElement = this.element; - } - }, - - widget: function() { - return this.buttonElement; - }, - - _destroy: function() { - this.element - .removeClass( "ui-helper-hidden-accessible" ); - this.buttonElement - .removeClass( baseClasses + " ui-state-active " + typeClasses ) - .removeAttr( "role" ) - .removeAttr( "aria-pressed" ) - .html( this.buttonElement.find(".ui-button-text").html() ); - - if ( !this.hasTitle ) { - this.buttonElement.removeAttr( "title" ); - } - }, - - _setOption: function( key, value ) { - this._super( key, value ); - if ( key === "disabled" ) { - this.widget().toggleClass( "ui-state-disabled", !!value ); - this.element.prop( "disabled", !!value ); - if ( value ) { - if ( this.type === "checkbox" || this.type === "radio" ) { - this.buttonElement.removeClass( "ui-state-focus" ); - } else { - this.buttonElement.removeClass( "ui-state-focus ui-state-active" ); - } - } - return; - } - this._resetButton(); - }, - - refresh: function() { - //See #8237 & #8828 - var isDisabled = this.element.is( "input, button" ) ? this.element.is( ":disabled" ) : this.element.hasClass( "ui-button-disabled" ); - - if ( isDisabled !== this.options.disabled ) { - this._setOption( "disabled", isDisabled ); - } - if ( this.type === "radio" ) { - radioGroup( this.element[0] ).each(function() { - if ( $( this ).is( ":checked" ) ) { - $( this ).button( "widget" ) - .addClass( "ui-state-active" ) - .attr( "aria-pressed", "true" ); - } else { - $( this ).button( "widget" ) - .removeClass( "ui-state-active" ) - .attr( "aria-pressed", "false" ); - } - }); - } else if ( this.type === "checkbox" ) { - if ( this.element.is( ":checked" ) ) { - this.buttonElement - .addClass( "ui-state-active" ) - .attr( "aria-pressed", "true" ); - } else { - this.buttonElement - .removeClass( "ui-state-active" ) - .attr( "aria-pressed", "false" ); - } - } - }, - - _resetButton: function() { - if ( this.type === "input" ) { - if ( this.options.label ) { - this.element.val( this.options.label ); - } - return; - } - var buttonElement = this.buttonElement.removeClass( typeClasses ), - buttonText = $( "<span></span>", this.document[0] ) - .addClass( "ui-button-text" ) - .html( this.options.label ) - .appendTo( buttonElement.empty() ) - .text(), - icons = this.options.icons, - multipleIcons = icons.primary && icons.secondary, - buttonClasses = []; - - if ( icons.primary || icons.secondary ) { - if ( this.options.text ) { - buttonClasses.push( "ui-button-text-icon" + ( multipleIcons ? "s" : ( icons.primary ? "-primary" : "-secondary" ) ) ); - } - - if ( icons.primary ) { - buttonElement.prepend( "<span class='ui-button-icon-primary ui-icon " + icons.primary + "'></span>" ); - } - - if ( icons.secondary ) { - buttonElement.append( "<span class='ui-button-icon-secondary ui-icon " + icons.secondary + "'></span>" ); - } - - if ( !this.options.text ) { - buttonClasses.push( multipleIcons ? "ui-button-icons-only" : "ui-button-icon-only" ); - - if ( !this.hasTitle ) { - buttonElement.attr( "title", $.trim( buttonText ) ); - } - } - } else { - buttonClasses.push( "ui-button-text-only" ); - } - buttonElement.addClass( buttonClasses.join( " " ) ); - } -}); - -$.widget( "ui.buttonset", { - version: "1.11.4", - options: { - items: "button, input[type=button], input[type=submit], input[type=reset], input[type=checkbox], input[type=radio], a, :data(ui-button)" - }, - - _create: function() { - this.element.addClass( "ui-buttonset" ); - }, - - _init: function() { - this.refresh(); - }, - - _setOption: function( key, value ) { - if ( key === "disabled" ) { - this.buttons.button( "option", key, value ); - } - - this._super( key, value ); - }, - - refresh: function() { - var rtl = this.element.css( "direction" ) === "rtl", - allButtons = this.element.find( this.options.items ), - existingButtons = allButtons.filter( ":ui-button" ); - - // Initialize new buttons - allButtons.not( ":ui-button" ).button(); - - // Refresh existing buttons - existingButtons.button( "refresh" ); - - this.buttons = allButtons - .map(function() { - return $( this ).button( "widget" )[ 0 ]; - }) - .removeClass( "ui-corner-all ui-corner-left ui-corner-right" ) - .filter( ":first" ) - .addClass( rtl ? "ui-corner-right" : "ui-corner-left" ) - .end() - .filter( ":last" ) - .addClass( rtl ? "ui-corner-left" : "ui-corner-right" ) - .end() - .end(); - }, - - _destroy: function() { - this.element.removeClass( "ui-buttonset" ); - this.buttons - .map(function() { - return $( this ).button( "widget" )[ 0 ]; - }) - .removeClass( "ui-corner-left ui-corner-right" ) - .end() - .button( "destroy" ); - } -}); - -var button = $.ui.button; - - -/*! - * jQuery UI Datepicker 1.11.4 - * http://jqueryui.com - * - * Copyright jQuery Foundation and other contributors - * Released under the MIT license. - * http://jquery.org/license - * - * http://api.jqueryui.com/datepicker/ - */ - - -$.extend($.ui, { datepicker: { version: "1.11.4" } }); - -var datepicker_instActive; - -function datepicker_getZindex( elem ) { - var position, value; - while ( elem.length && elem[ 0 ] !== document ) { - // Ignore z-index if position is set to a value where z-index is ignored by the browser - // This makes behavior of this function consistent across browsers - // WebKit always returns auto if the element is positioned - position = elem.css( "position" ); - if ( position === "absolute" || position === "relative" || position === "fixed" ) { - // IE returns 0 when zIndex is not specified - // other browsers return a string - // we ignore the case of nested elements with an explicit value of 0 - // <div style="z-index: -10;"><div style="z-index: 0;"></div></div> - value = parseInt( elem.css( "zIndex" ), 10 ); - if ( !isNaN( value ) && value !== 0 ) { - return value; - } - } - elem = elem.parent(); - } - - return 0; -} -/* Date picker manager. - Use the singleton instance of this class, $.datepicker, to interact with the date picker. - Settings for (groups of) date pickers are maintained in an instance object, - allowing multiple different settings on the same page. */ - -function Datepicker() { - this._curInst = null; // The current instance in use - this._keyEvent = false; // If the last event was a key event - this._disabledInputs = []; // List of date picker inputs that have been disabled - this._datepickerShowing = false; // True if the popup picker is showing , false if not - this._inDialog = false; // True if showing within a "dialog", false if not - this._mainDivId = "ui-datepicker-div"; // The ID of the main datepicker division - this._inlineClass = "ui-datepicker-inline"; // The name of the inline marker class - this._appendClass = "ui-datepicker-append"; // The name of the append marker class - this._triggerClass = "ui-datepicker-trigger"; // The name of the trigger marker class - this._dialogClass = "ui-datepicker-dialog"; // The name of the dialog marker class - this._disableClass = "ui-datepicker-disabled"; // The name of the disabled covering marker class - this._unselectableClass = "ui-datepicker-unselectable"; // The name of the unselectable cell marker class - this._currentClass = "ui-datepicker-current-day"; // The name of the current day marker class - this._dayOverClass = "ui-datepicker-days-cell-over"; // The name of the day hover marker class - this.regional = []; // Available regional settings, indexed by language code - this.regional[""] = { // Default regional settings - closeText: "Done", // Display text for close link - prevText: "Prev", // Display text for previous month link - nextText: "Next", // Display text for next month link - currentText: "Today", // Display text for current month link - monthNames: ["January","February","March","April","May","June", - "July","August","September","October","November","December"], // Names of months for drop-down and formatting - monthNamesShort: ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"], // For formatting - dayNames: ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"], // For formatting - dayNamesShort: ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"], // For formatting - dayNamesMin: ["Su","Mo","Tu","We","Th","Fr","Sa"], // Column headings for days starting at Sunday - weekHeader: "Wk", // Column header for week of the year - dateFormat: "mm/dd/yy", // See format options on parseDate - firstDay: 0, // The first day of the week, Sun = 0, Mon = 1, ... - isRTL: false, // True if right-to-left language, false if left-to-right - showMonthAfterYear: false, // True if the year select precedes month, false for month then year - yearSuffix: "" // Additional text to append to the year in the month headers - }; - this._defaults = { // Global defaults for all the date picker instances - showOn: "focus", // "focus" for popup on focus, - // "button" for trigger button, or "both" for either - showAnim: "fadeIn", // Name of jQuery animation for popup - showOptions: {}, // Options for enhanced animations - defaultDate: null, // Used when field is blank: actual date, - // +/-number for offset from today, null for today - appendText: "", // Display text following the input box, e.g. showing the format - buttonText: "...", // Text for trigger button - buttonImage: "", // URL for trigger button image - buttonImageOnly: false, // True if the image appears alone, false if it appears on a button - hideIfNoPrevNext: false, // True to hide next/previous month links - // if not applicable, false to just disable them - navigationAsDateFormat: false, // True if date formatting applied to prev/today/next links - gotoCurrent: false, // True if today link goes back to current selection instead - changeMonth: false, // True if month can be selected directly, false if only prev/next - changeYear: false, // True if year can be selected directly, false if only prev/next - yearRange: "c-10:c+10", // Range of years to display in drop-down, - // either relative to today's year (-nn:+nn), relative to currently displayed year - // (c-nn:c+nn), absolute (nnnn:nnnn), or a combination of the above (nnnn:-n) - showOtherMonths: false, // True to show dates in other months, false to leave blank - selectOtherMonths: false, // True to allow selection of dates in other months, false for unselectable - showWeek: false, // True to show week of the year, false to not show it - calculateWeek: this.iso8601Week, // How to calculate the week of the year, - // takes a Date and returns the number of the week for it - shortYearCutoff: "+10", // Short year values < this are in the current century, - // > this are in the previous century, - // string value starting with "+" for current year + value - minDate: null, // The earliest selectable date, or null for no limit - maxDate: null, // The latest selectable date, or null for no limit - duration: "fast", // Duration of display/closure - beforeShowDay: null, // Function that takes a date and returns an array with - // [0] = true if selectable, false if not, [1] = custom CSS class name(s) or "", - // [2] = cell title (optional), e.g. $.datepicker.noWeekends - beforeShow: null, // Function that takes an input field and - // returns a set of custom settings for the date picker - onSelect: null, // Define a callback function when a date is selected - onChangeMonthYear: null, // Define a callback function when the month or year is changed - onClose: null, // Define a callback function when the datepicker is closed - numberOfMonths: 1, // Number of months to show at a time - showCurrentAtPos: 0, // The position in multipe months at which to show the current month (starting at 0) - stepMonths: 1, // Number of months to step back/forward - stepBigMonths: 12, // Number of months to step back/forward for the big links - altField: "", // Selector for an alternate field to store selected dates into - altFormat: "", // The date format to use for the alternate field - constrainInput: true, // The input is constrained by the current date format - showButtonPanel: false, // True to show button panel, false to not show it - autoSize: false, // True to size the input for the date format, false to leave as is - disabled: false // The initial disabled state - }; - $.extend(this._defaults, this.regional[""]); - this.regional.en = $.extend( true, {}, this.regional[ "" ]); - this.regional[ "en-US" ] = $.extend( true, {}, this.regional.en ); - this.dpDiv = datepicker_bindHover($("<div id='" + this._mainDivId + "' class='ui-datepicker ui-widget ui-widget-content ui-helper-clearfix ui-corner-all'></div>")); -} - -$.extend(Datepicker.prototype, { - /* Class name added to elements to indicate already configured with a date picker. */ - markerClassName: "hasDatepicker", - - //Keep track of the maximum number of rows displayed (see #7043) - maxRows: 4, - - // TODO rename to "widget" when switching to widget factory - _widgetDatepicker: function() { - return this.dpDiv; - }, - - /* Override the default settings for all instances of the date picker. - * @param settings object - the new settings to use as defaults (anonymous object) - * @return the manager object - */ - setDefaults: function(settings) { - datepicker_extendRemove(this._defaults, settings || {}); - return this; - }, - - /* Attach the date picker to a jQuery selection. - * @param target element - the target input field or division or span - * @param settings object - the new settings to use for this date picker instance (anonymous) - */ - _attachDatepicker: function(target, settings) { - var nodeName, inline, inst; - nodeName = target.nodeName.toLowerCase(); - inline = (nodeName === "div" || nodeName === "span"); - if (!target.id) { - this.uuid += 1; - target.id = "dp" + this.uuid; - } - inst = this._newInst($(target), inline); - inst.settings = $.extend({}, settings || {}); - if (nodeName === "input") { - this._connectDatepicker(target, inst); - } else if (inline) { - this._inlineDatepicker(target, inst); - } - }, - - /* Create a new instance object. */ - _newInst: function(target, inline) { - var id = target[0].id.replace(/([^A-Za-z0-9_\-])/g, "\\\\$1"); // escape jQuery meta chars - return {id: id, input: target, // associated target - selectedDay: 0, selectedMonth: 0, selectedYear: 0, // current selection - drawMonth: 0, drawYear: 0, // month being drawn - inline: inline, // is datepicker inline or not - dpDiv: (!inline ? this.dpDiv : // presentation div - datepicker_bindHover($("<div class='" + this._inlineClass + " ui-datepicker ui-widget ui-widget-content ui-helper-clearfix ui-corner-all'></div>")))}; - }, - - /* Attach the date picker to an input field. */ - _connectDatepicker: function(target, inst) { - var input = $(target); - inst.append = $([]); - inst.trigger = $([]); - if (input.hasClass(this.markerClassName)) { - return; - } - this._attachments(input, inst); - input.addClass(this.markerClassName).keydown(this._doKeyDown). - keypress(this._doKeyPress).keyup(this._doKeyUp); - this._autoSize(inst); - $.data(target, "datepicker", inst); - //If disabled option is true, disable the datepicker once it has been attached to the input (see ticket #5665) - if( inst.settings.disabled ) { - this._disableDatepicker( target ); - } - }, - - /* Make attachments based on settings. */ - _attachments: function(input, inst) { - var showOn, buttonText, buttonImage, - appendText = this._get(inst, "appendText"), - isRTL = this._get(inst, "isRTL"); - - if (inst.append) { - inst.append.remove(); - } - if (appendText) { - inst.append = $("<span class='" + this._appendClass + "'>" + appendText + "</span>"); - input[isRTL ? "before" : "after"](inst.append); - } - - input.unbind("focus", this._showDatepicker); - - if (inst.trigger) { - inst.trigger.remove(); - } - - showOn = this._get(inst, "showOn"); - if (showOn === "focus" || showOn === "both") { // pop-up date picker when in the marked field - input.focus(this._showDatepicker); - } - if (showOn === "button" || showOn === "both") { // pop-up date picker when button clicked - buttonText = this._get(inst, "buttonText"); - buttonImage = this._get(inst, "buttonImage"); - inst.trigger = $(this._get(inst, "buttonImageOnly") ? - $("<img/>").addClass(this._triggerClass). - attr({ src: buttonImage, alt: buttonText, title: buttonText }) : - $("<button type='button'></button>").addClass(this._triggerClass). - html(!buttonImage ? buttonText : $("<img/>").attr( - { src:buttonImage, alt:buttonText, title:buttonText }))); - input[isRTL ? "before" : "after"](inst.trigger); - inst.trigger.click(function() { - if ($.datepicker._datepickerShowing && $.datepicker._lastInput === input[0]) { - $.datepicker._hideDatepicker(); - } else if ($.datepicker._datepickerShowing && $.datepicker._lastInput !== input[0]) { - $.datepicker._hideDatepicker(); - $.datepicker._showDatepicker(input[0]); - } else { - $.datepicker._showDatepicker(input[0]); - } - return false; - }); - } - }, - - /* Apply the maximum length for the date format. */ - _autoSize: function(inst) { - if (this._get(inst, "autoSize") && !inst.inline) { - var findMax, max, maxI, i, - date = new Date(2009, 12 - 1, 20), // Ensure double digits - dateFormat = this._get(inst, "dateFormat"); - - if (dateFormat.match(/[DM]/)) { - findMax = function(names) { - max = 0; - maxI = 0; - for (i = 0; i < names.length; i++) { - if (names[i].length > max) { - max = names[i].length; - maxI = i; - } - } - return maxI; - }; - date.setMonth(findMax(this._get(inst, (dateFormat.match(/MM/) ? - "monthNames" : "monthNamesShort")))); - date.setDate(findMax(this._get(inst, (dateFormat.match(/DD/) ? - "dayNames" : "dayNamesShort"))) + 20 - date.getDay()); - } - inst.input.attr("size", this._formatDate(inst, date).length); - } - }, - - /* Attach an inline date picker to a div. */ - _inlineDatepicker: function(target, inst) { - var divSpan = $(target); - if (divSpan.hasClass(this.markerClassName)) { - return; - } - divSpan.addClass(this.markerClassName).append(inst.dpDiv); - $.data(target, "datepicker", inst); - this._setDate(inst, this._getDefaultDate(inst), true); - this._updateDatepicker(inst); - this._updateAlternate(inst); - //If disabled option is true, disable the datepicker before showing it (see ticket #5665) - if( inst.settings.disabled ) { - this._disableDatepicker( target ); - } - // Set display:block in place of inst.dpDiv.show() which won't work on disconnected elements - // http://bugs.jqueryui.com/ticket/7552 - A Datepicker created on a detached div has zero height - inst.dpDiv.css( "display", "block" ); - }, - - /* Pop-up the date picker in a "dialog" box. - * @param input element - ignored - * @param date string or Date - the initial date to display - * @param onSelect function - the function to call when a date is selected - * @param settings object - update the dialog date picker instance's settings (anonymous object) - * @param pos int[2] - coordinates for the dialog's position within the screen or - * event - with x/y coordinates or - * leave empty for default (screen centre) - * @return the manager object - */ - _dialogDatepicker: function(input, date, onSelect, settings, pos) { - var id, browserWidth, browserHeight, scrollX, scrollY, - inst = this._dialogInst; // internal instance - - if (!inst) { - this.uuid += 1; - id = "dp" + this.uuid; - this._dialogInput = $("<input type='text' id='" + id + - "' style='position: absolute; top: -100px; width: 0px;'/>"); - this._dialogInput.keydown(this._doKeyDown); - $("body").append(this._dialogInput); - inst = this._dialogInst = this._newInst(this._dialogInput, false); - inst.settings = {}; - $.data(this._dialogInput[0], "datepicker", inst); - } - datepicker_extendRemove(inst.settings, settings || {}); - date = (date && date.constructor === Date ? this._formatDate(inst, date) : date); - this._dialogInput.val(date); - - this._pos = (pos ? (pos.length ? pos : [pos.pageX, pos.pageY]) : null); - if (!this._pos) { - browserWidth = document.documentElement.clientWidth; - browserHeight = document.documentElement.clientHeight; - scrollX = document.documentElement.scrollLeft || document.body.scrollLeft; - scrollY = document.documentElement.scrollTop || document.body.scrollTop; - this._pos = // should use actual width/height below - [(browserWidth / 2) - 100 + scrollX, (browserHeight / 2) - 150 + scrollY]; - } - - // move input on screen for focus, but hidden behind dialog - this._dialogInput.css("left", (this._pos[0] + 20) + "px").css("top", this._pos[1] + "px"); - inst.settings.onSelect = onSelect; - this._inDialog = true; - this.dpDiv.addClass(this._dialogClass); - this._showDatepicker(this._dialogInput[0]); - if ($.blockUI) { - $.blockUI(this.dpDiv); - } - $.data(this._dialogInput[0], "datepicker", inst); - return this; - }, - - /* Detach a datepicker from its control. - * @param target element - the target input field or division or span - */ - _destroyDatepicker: function(target) { - var nodeName, - $target = $(target), - inst = $.data(target, "datepicker"); - - if (!$target.hasClass(this.markerClassName)) { - return; - } - - nodeName = target.nodeName.toLowerCase(); - $.removeData(target, "datepicker"); - if (nodeName === "input") { - inst.append.remove(); - inst.trigger.remove(); - $target.removeClass(this.markerClassName). - unbind("focus", this._showDatepicker). - unbind("keydown", this._doKeyDown). - unbind("keypress", this._doKeyPress). - unbind("keyup", this._doKeyUp); - } else if (nodeName === "div" || nodeName === "span") { - $target.removeClass(this.markerClassName).empty(); - } - - if ( datepicker_instActive === inst ) { - datepicker_instActive = null; - } - }, - - /* Enable the date picker to a jQuery selection. - * @param target element - the target input field or division or span - */ - _enableDatepicker: function(target) { - var nodeName, inline, - $target = $(target), - inst = $.data(target, "datepicker"); - - if (!$target.hasClass(this.markerClassName)) { - return; - } - - nodeName = target.nodeName.toLowerCase(); - if (nodeName === "input") { - target.disabled = false; - inst.trigger.filter("button"). - each(function() { this.disabled = false; }).end(). - filter("img").css({opacity: "1.0", cursor: ""}); - } else if (nodeName === "div" || nodeName === "span") { - inline = $target.children("." + this._inlineClass); - inline.children().removeClass("ui-state-disabled"); - inline.find("select.ui-datepicker-month, select.ui-datepicker-year"). - prop("disabled", false); - } - this._disabledInputs = $.map(this._disabledInputs, - function(value) { return (value === target ? null : value); }); // delete entry - }, - - /* Disable the date picker to a jQuery selection. - * @param target element - the target input field or division or span - */ - _disableDatepicker: function(target) { - var nodeName, inline, - $target = $(target), - inst = $.data(target, "datepicker"); - - if (!$target.hasClass(this.markerClassName)) { - return; - } - - nodeName = target.nodeName.toLowerCase(); - if (nodeName === "input") { - target.disabled = true; - inst.trigger.filter("button"). - each(function() { this.disabled = true; }).end(). - filter("img").css({opacity: "0.5", cursor: "default"}); - } else if (nodeName === "div" || nodeName === "span") { - inline = $target.children("." + this._inlineClass); - inline.children().addClass("ui-state-disabled"); - inline.find("select.ui-datepicker-month, select.ui-datepicker-year"). - prop("disabled", true); - } - this._disabledInputs = $.map(this._disabledInputs, - function(value) { return (value === target ? null : value); }); // delete entry - this._disabledInputs[this._disabledInputs.length] = target; - }, - - /* Is the first field in a jQuery collection disabled as a datepicker? - * @param target element - the target input field or division or span - * @return boolean - true if disabled, false if enabled - */ - _isDisabledDatepicker: function(target) { - if (!target) { - return false; - } - for (var i = 0; i < this._disabledInputs.length; i++) { - if (this._disabledInputs[i] === target) { - return true; - } - } - return false; - }, - - /* Retrieve the instance data for the target control. - * @param target element - the target input field or division or span - * @return object - the associated instance data - * @throws error if a jQuery problem getting data - */ - _getInst: function(target) { - try { - return $.data(target, "datepicker"); - } - catch (err) { - throw "Missing instance data for this datepicker"; - } - }, - - /* Update or retrieve the settings for a date picker attached to an input field or division. - * @param target element - the target input field or division or span - * @param name object - the new settings to update or - * string - the name of the setting to change or retrieve, - * when retrieving also "all" for all instance settings or - * "defaults" for all global defaults - * @param value any - the new value for the setting - * (omit if above is an object or to retrieve a value) - */ - _optionDatepicker: function(target, name, value) { - var settings, date, minDate, maxDate, - inst = this._getInst(target); - - if (arguments.length === 2 && typeof name === "string") { - return (name === "defaults" ? $.extend({}, $.datepicker._defaults) : - (inst ? (name === "all" ? $.extend({}, inst.settings) : - this._get(inst, name)) : null)); - } - - settings = name || {}; - if (typeof name === "string") { - settings = {}; - settings[name] = value; - } - - if (inst) { - if (this._curInst === inst) { - this._hideDatepicker(); - } - - date = this._getDateDatepicker(target, true); - minDate = this._getMinMaxDate(inst, "min"); - maxDate = this._getMinMaxDate(inst, "max"); - datepicker_extendRemove(inst.settings, settings); - // reformat the old minDate/maxDate values if dateFormat changes and a new minDate/maxDate isn't provided - if (minDate !== null && settings.dateFormat !== undefined && settings.minDate === undefined) { - inst.settings.minDate = this._formatDate(inst, minDate); - } - if (maxDate !== null && settings.dateFormat !== undefined && settings.maxDate === undefined) { - inst.settings.maxDate = this._formatDate(inst, maxDate); - } - if ( "disabled" in settings ) { - if ( settings.disabled ) { - this._disableDatepicker(target); - } else { - this._enableDatepicker(target); - } - } - this._attachments($(target), inst); - this._autoSize(inst); - this._setDate(inst, date); - this._updateAlternate(inst); - this._updateDatepicker(inst); - } - }, - - // change method deprecated - _changeDatepicker: function(target, name, value) { - this._optionDatepicker(target, name, value); - }, - - /* Redraw the date picker attached to an input field or division. - * @param target element - the target input field or division or span - */ - _refreshDatepicker: function(target) { - var inst = this._getInst(target); - if (inst) { - this._updateDatepicker(inst); - } - }, - - /* Set the dates for a jQuery selection. - * @param target element - the target input field or division or span - * @param date Date - the new date - */ - _setDateDatepicker: function(target, date) { - var inst = this._getInst(target); - if (inst) { - this._setDate(inst, date); - this._updateDatepicker(inst); - this._updateAlternate(inst); - } - }, - - /* Get the date(s) for the first entry in a jQuery selection. - * @param target element - the target input field or division or span - * @param noDefault boolean - true if no default date is to be used - * @return Date - the current date - */ - _getDateDatepicker: function(target, noDefault) { - var inst = this._getInst(target); - if (inst && !inst.inline) { - this._setDateFromField(inst, noDefault); - } - return (inst ? this._getDate(inst) : null); - }, - - /* Handle keystrokes. */ - _doKeyDown: function(event) { - var onSelect, dateStr, sel, - inst = $.datepicker._getInst(event.target), - handled = true, - isRTL = inst.dpDiv.is(".ui-datepicker-rtl"); - - inst._keyEvent = true; - if ($.datepicker._datepickerShowing) { - switch (event.keyCode) { - case 9: $.datepicker._hideDatepicker(); - handled = false; - break; // hide on tab out - case 13: sel = $("td." + $.datepicker._dayOverClass + ":not(." + - $.datepicker._currentClass + ")", inst.dpDiv); - if (sel[0]) { - $.datepicker._selectDay(event.target, inst.selectedMonth, inst.selectedYear, sel[0]); - } - - onSelect = $.datepicker._get(inst, "onSelect"); - if (onSelect) { - dateStr = $.datepicker._formatDate(inst); - - // trigger custom callback - onSelect.apply((inst.input ? inst.input[0] : null), [dateStr, inst]); - } else { - $.datepicker._hideDatepicker(); - } - - return false; // don't submit the form - case 27: $.datepicker._hideDatepicker(); - break; // hide on escape - case 33: $.datepicker._adjustDate(event.target, (event.ctrlKey ? - -$.datepicker._get(inst, "stepBigMonths") : - -$.datepicker._get(inst, "stepMonths")), "M"); - break; // previous month/year on page up/+ ctrl - case 34: $.datepicker._adjustDate(event.target, (event.ctrlKey ? - +$.datepicker._get(inst, "stepBigMonths") : - +$.datepicker._get(inst, "stepMonths")), "M"); - break; // next month/year on page down/+ ctrl - case 35: if (event.ctrlKey || event.metaKey) { - $.datepicker._clearDate(event.target); - } - handled = event.ctrlKey || event.metaKey; - break; // clear on ctrl or command +end - case 36: if (event.ctrlKey || event.metaKey) { - $.datepicker._gotoToday(event.target); - } - handled = event.ctrlKey || event.metaKey; - break; // current on ctrl or command +home - case 37: if (event.ctrlKey || event.metaKey) { - $.datepicker._adjustDate(event.target, (isRTL ? +1 : -1), "D"); - } - handled = event.ctrlKey || event.metaKey; - // -1 day on ctrl or command +left - if (event.originalEvent.altKey) { - $.datepicker._adjustDate(event.target, (event.ctrlKey ? - -$.datepicker._get(inst, "stepBigMonths") : - -$.datepicker._get(inst, "stepMonths")), "M"); - } - // next month/year on alt +left on Mac - break; - case 38: if (event.ctrlKey || event.metaKey) { - $.datepicker._adjustDate(event.target, -7, "D"); - } - handled = event.ctrlKey || event.metaKey; - break; // -1 week on ctrl or command +up - case 39: if (event.ctrlKey || event.metaKey) { - $.datepicker._adjustDate(event.target, (isRTL ? -1 : +1), "D"); - } - handled = event.ctrlKey || event.metaKey; - // +1 day on ctrl or command +right - if (event.originalEvent.altKey) { - $.datepicker._adjustDate(event.target, (event.ctrlKey ? - +$.datepicker._get(inst, "stepBigMonths") : - +$.datepicker._get(inst, "stepMonths")), "M"); - } - // next month/year on alt +right - break; - case 40: if (event.ctrlKey || event.metaKey) { - $.datepicker._adjustDate(event.target, +7, "D"); - } - handled = event.ctrlKey || event.metaKey; - break; // +1 week on ctrl or command +down - default: handled = false; - } - } else if (event.keyCode === 36 && event.ctrlKey) { // display the date picker on ctrl+home - $.datepicker._showDatepicker(this); - } else { - handled = false; - } - - if (handled) { - event.preventDefault(); - event.stopPropagation(); - } - }, - - /* Filter entered characters - based on date format. */ - _doKeyPress: function(event) { - var chars, chr, - inst = $.datepicker._getInst(event.target); - - if ($.datepicker._get(inst, "constrainInput")) { - chars = $.datepicker._possibleChars($.datepicker._get(inst, "dateFormat")); - chr = String.fromCharCode(event.charCode == null ? event.keyCode : event.charCode); - return event.ctrlKey || event.metaKey || (chr < " " || !chars || chars.indexOf(chr) > -1); - } - }, - - /* Synchronise manual entry and field/alternate field. */ - _doKeyUp: function(event) { - var date, - inst = $.datepicker._getInst(event.target); - - if (inst.input.val() !== inst.lastVal) { - try { - date = $.datepicker.parseDate($.datepicker._get(inst, "dateFormat"), - (inst.input ? inst.input.val() : null), - $.datepicker._getFormatConfig(inst)); - - if (date) { // only if valid - $.datepicker._setDateFromField(inst); - $.datepicker._updateAlternate(inst); - $.datepicker._updateDatepicker(inst); - } - } - catch (err) { - } - } - return true; - }, - - /* Pop-up the date picker for a given input field. - * If false returned from beforeShow event handler do not show. - * @param input element - the input field attached to the date picker or - * event - if triggered by focus - */ - _showDatepicker: function(input) { - input = input.target || input; - if (input.nodeName.toLowerCase() !== "input") { // find from button/image trigger - input = $("input", input.parentNode)[0]; - } - - if ($.datepicker._isDisabledDatepicker(input) || $.datepicker._lastInput === input) { // already here - return; - } - - var inst, beforeShow, beforeShowSettings, isFixed, - offset, showAnim, duration; - - inst = $.datepicker._getInst(input); - if ($.datepicker._curInst && $.datepicker._curInst !== inst) { - $.datepicker._curInst.dpDiv.stop(true, true); - if ( inst && $.datepicker._datepickerShowing ) { - $.datepicker._hideDatepicker( $.datepicker._curInst.input[0] ); - } - } - - beforeShow = $.datepicker._get(inst, "beforeShow"); - beforeShowSettings = beforeShow ? beforeShow.apply(input, [input, inst]) : {}; - if(beforeShowSettings === false){ - return; - } - datepicker_extendRemove(inst.settings, beforeShowSettings); - - inst.lastVal = null; - $.datepicker._lastInput = input; - $.datepicker._setDateFromField(inst); - - if ($.datepicker._inDialog) { // hide cursor - input.value = ""; - } - if (!$.datepicker._pos) { // position below input - $.datepicker._pos = $.datepicker._findPos(input); - $.datepicker._pos[1] += input.offsetHeight; // add the height - } - - isFixed = false; - $(input).parents().each(function() { - isFixed |= $(this).css("position") === "fixed"; - return !isFixed; - }); - - offset = {left: $.datepicker._pos[0], top: $.datepicker._pos[1]}; - $.datepicker._pos = null; - //to avoid flashes on Firefox - inst.dpDiv.empty(); - // determine sizing offscreen - inst.dpDiv.css({position: "absolute", display: "block", top: "-1000px"}); - $.datepicker._updateDatepicker(inst); - // fix width for dynamic number of date pickers - // and adjust position before showing - offset = $.datepicker._checkOffset(inst, offset, isFixed); - inst.dpDiv.css({position: ($.datepicker._inDialog && $.blockUI ? - "static" : (isFixed ? "fixed" : "absolute")), display: "none", - left: offset.left + "px", top: offset.top + "px"}); - - if (!inst.inline) { - showAnim = $.datepicker._get(inst, "showAnim"); - duration = $.datepicker._get(inst, "duration"); - inst.dpDiv.css( "z-index", datepicker_getZindex( $( input ) ) + 1 ); - $.datepicker._datepickerShowing = true; - - if ( $.effects && $.effects.effect[ showAnim ] ) { - inst.dpDiv.show(showAnim, $.datepicker._get(inst, "showOptions"), duration); - } else { - inst.dpDiv[showAnim || "show"](showAnim ? duration : null); - } - - if ( $.datepicker._shouldFocusInput( inst ) ) { - inst.input.focus(); - } - - $.datepicker._curInst = inst; - } - }, - - /* Generate the date picker content. */ - _updateDatepicker: function(inst) { - this.maxRows = 4; //Reset the max number of rows being displayed (see #7043) - datepicker_instActive = inst; // for delegate hover events - inst.dpDiv.empty().append(this._generateHTML(inst)); - this._attachHandlers(inst); - - var origyearshtml, - numMonths = this._getNumberOfMonths(inst), - cols = numMonths[1], - width = 17, - activeCell = inst.dpDiv.find( "." + this._dayOverClass + " a" ); - - if ( activeCell.length > 0 ) { - datepicker_handleMouseover.apply( activeCell.get( 0 ) ); - } - - inst.dpDiv.removeClass("ui-datepicker-multi-2 ui-datepicker-multi-3 ui-datepicker-multi-4").width(""); - if (cols > 1) { - inst.dpDiv.addClass("ui-datepicker-multi-" + cols).css("width", (width * cols) + "em"); - } - inst.dpDiv[(numMonths[0] !== 1 || numMonths[1] !== 1 ? "add" : "remove") + - "Class"]("ui-datepicker-multi"); - inst.dpDiv[(this._get(inst, "isRTL") ? "add" : "remove") + - "Class"]("ui-datepicker-rtl"); - - if (inst === $.datepicker._curInst && $.datepicker._datepickerShowing && $.datepicker._shouldFocusInput( inst ) ) { - inst.input.focus(); - } - - // deffered render of the years select (to avoid flashes on Firefox) - if( inst.yearshtml ){ - origyearshtml = inst.yearshtml; - setTimeout(function(){ - //assure that inst.yearshtml didn't change. - if( origyearshtml === inst.yearshtml && inst.yearshtml ){ - inst.dpDiv.find("select.ui-datepicker-year:first").replaceWith(inst.yearshtml); - } - origyearshtml = inst.yearshtml = null; - }, 0); - } - }, - - // #6694 - don't focus the input if it's already focused - // this breaks the change event in IE - // Support: IE and jQuery <1.9 - _shouldFocusInput: function( inst ) { - return inst.input && inst.input.is( ":visible" ) && !inst.input.is( ":disabled" ) && !inst.input.is( ":focus" ); - }, - - /* Check positioning to remain on screen. */ - _checkOffset: function(inst, offset, isFixed) { - var dpWidth = inst.dpDiv.outerWidth(), - dpHeight = inst.dpDiv.outerHeight(), - inputWidth = inst.input ? inst.input.outerWidth() : 0, - inputHeight = inst.input ? inst.input.outerHeight() : 0, - viewWidth = document.documentElement.clientWidth + (isFixed ? 0 : $(document).scrollLeft()), - viewHeight = document.documentElement.clientHeight + (isFixed ? 0 : $(document).scrollTop()); - - offset.left -= (this._get(inst, "isRTL") ? (dpWidth - inputWidth) : 0); - offset.left -= (isFixed && offset.left === inst.input.offset().left) ? $(document).scrollLeft() : 0; - offset.top -= (isFixed && offset.top === (inst.input.offset().top + inputHeight)) ? $(document).scrollTop() : 0; - - // now check if datepicker is showing outside window viewport - move to a better place if so. - offset.left -= Math.min(offset.left, (offset.left + dpWidth > viewWidth && viewWidth > dpWidth) ? - Math.abs(offset.left + dpWidth - viewWidth) : 0); - offset.top -= Math.min(offset.top, (offset.top + dpHeight > viewHeight && viewHeight > dpHeight) ? - Math.abs(dpHeight + inputHeight) : 0); - - return offset; - }, - - /* Find an object's position on the screen. */ - _findPos: function(obj) { - var position, - inst = this._getInst(obj), - isRTL = this._get(inst, "isRTL"); - - while (obj && (obj.type === "hidden" || obj.nodeType !== 1 || $.expr.filters.hidden(obj))) { - obj = obj[isRTL ? "previousSibling" : "nextSibling"]; - } - - position = $(obj).offset(); - return [position.left, position.top]; - }, - - /* Hide the date picker from view. - * @param input element - the input field attached to the date picker - */ - _hideDatepicker: function(input) { - var showAnim, duration, postProcess, onClose, - inst = this._curInst; - - if (!inst || (input && inst !== $.data(input, "datepicker"))) { - return; - } - - if (this._datepickerShowing) { - showAnim = this._get(inst, "showAnim"); - duration = this._get(inst, "duration"); - postProcess = function() { - $.datepicker._tidyDialog(inst); - }; - - // DEPRECATED: after BC for 1.8.x $.effects[ showAnim ] is not needed - if ( $.effects && ( $.effects.effect[ showAnim ] || $.effects[ showAnim ] ) ) { - inst.dpDiv.hide(showAnim, $.datepicker._get(inst, "showOptions"), duration, postProcess); - } else { - inst.dpDiv[(showAnim === "slideDown" ? "slideUp" : - (showAnim === "fadeIn" ? "fadeOut" : "hide"))]((showAnim ? duration : null), postProcess); - } - - if (!showAnim) { - postProcess(); - } - this._datepickerShowing = false; - - onClose = this._get(inst, "onClose"); - if (onClose) { - onClose.apply((inst.input ? inst.input[0] : null), [(inst.input ? inst.input.val() : ""), inst]); - } - - this._lastInput = null; - if (this._inDialog) { - this._dialogInput.css({ position: "absolute", left: "0", top: "-100px" }); - if ($.blockUI) { - $.unblockUI(); - $("body").append(this.dpDiv); - } - } - this._inDialog = false; - } - }, - - /* Tidy up after a dialog display. */ - _tidyDialog: function(inst) { - inst.dpDiv.removeClass(this._dialogClass).unbind(".ui-datepicker-calendar"); - }, - - /* Close date picker if clicked elsewhere. */ - _checkExternalClick: function(event) { - if (!$.datepicker._curInst) { - return; - } - - var $target = $(event.target), - inst = $.datepicker._getInst($target[0]); - - if ( ( ( $target[0].id !== $.datepicker._mainDivId && - $target.parents("#" + $.datepicker._mainDivId).length === 0 && - !$target.hasClass($.datepicker.markerClassName) && - !$target.closest("." + $.datepicker._triggerClass).length && - $.datepicker._datepickerShowing && !($.datepicker._inDialog && $.blockUI) ) ) || - ( $target.hasClass($.datepicker.markerClassName) && $.datepicker._curInst !== inst ) ) { - $.datepicker._hideDatepicker(); - } - }, - - /* Adjust one of the date sub-fields. */ - _adjustDate: function(id, offset, period) { - var target = $(id), - inst = this._getInst(target[0]); - - if (this._isDisabledDatepicker(target[0])) { - return; - } - this._adjustInstDate(inst, offset + - (period === "M" ? this._get(inst, "showCurrentAtPos") : 0), // undo positioning - period); - this._updateDatepicker(inst); - }, - - /* Action for current link. */ - _gotoToday: function(id) { - var date, - target = $(id), - inst = this._getInst(target[0]); - - if (this._get(inst, "gotoCurrent") && inst.currentDay) { - inst.selectedDay = inst.currentDay; - inst.drawMonth = inst.selectedMonth = inst.currentMonth; - inst.drawYear = inst.selectedYear = inst.currentYear; - } else { - date = new Date(); - inst.selectedDay = date.getDate(); - inst.drawMonth = inst.selectedMonth = date.getMonth(); - inst.drawYear = inst.selectedYear = date.getFullYear(); - } - this._notifyChange(inst); - this._adjustDate(target); - }, - - /* Action for selecting a new month/year. */ - _selectMonthYear: function(id, select, period) { - var target = $(id), - inst = this._getInst(target[0]); - - inst["selected" + (period === "M" ? "Month" : "Year")] = - inst["draw" + (period === "M" ? "Month" : "Year")] = - parseInt(select.options[select.selectedIndex].value,10); - - this._notifyChange(inst); - this._adjustDate(target); - }, - - /* Action for selecting a day. */ - _selectDay: function(id, month, year, td) { - var inst, - target = $(id); - - if ($(td).hasClass(this._unselectableClass) || this._isDisabledDatepicker(target[0])) { - return; - } - - inst = this._getInst(target[0]); - inst.selectedDay = inst.currentDay = $("a", td).html(); - inst.selectedMonth = inst.currentMonth = month; - inst.selectedYear = inst.currentYear = year; - this._selectDate(id, this._formatDate(inst, - inst.currentDay, inst.currentMonth, inst.currentYear)); - }, - - /* Erase the input field and hide the date picker. */ - _clearDate: function(id) { - var target = $(id); - this._selectDate(target, ""); - }, - - /* Update the input field with the selected date. */ - _selectDate: function(id, dateStr) { - var onSelect, - target = $(id), - inst = this._getInst(target[0]); - - dateStr = (dateStr != null ? dateStr : this._formatDate(inst)); - if (inst.input) { - inst.input.val(dateStr); - } - this._updateAlternate(inst); - - onSelect = this._get(inst, "onSelect"); - if (onSelect) { - onSelect.apply((inst.input ? inst.input[0] : null), [dateStr, inst]); // trigger custom callback - } else if (inst.input) { - inst.input.trigger("change"); // fire the change event - } - - if (inst.inline){ - this._updateDatepicker(inst); - } else { - this._hideDatepicker(); - this._lastInput = inst.input[0]; - if (typeof(inst.input[0]) !== "object") { - inst.input.focus(); // restore focus - } - this._lastInput = null; - } - }, - - /* Update any alternate field to synchronise with the main field. */ - _updateAlternate: function(inst) { - var altFormat, date, dateStr, - altField = this._get(inst, "altField"); - - if (altField) { // update alternate field too - altFormat = this._get(inst, "altFormat") || this._get(inst, "dateFormat"); - date = this._getDate(inst); - dateStr = this.formatDate(altFormat, date, this._getFormatConfig(inst)); - $(altField).each(function() { $(this).val(dateStr); }); - } - }, - - /* Set as beforeShowDay function to prevent selection of weekends. - * @param date Date - the date to customise - * @return [boolean, string] - is this date selectable?, what is its CSS class? - */ - noWeekends: function(date) { - var day = date.getDay(); - return [(day > 0 && day < 6), ""]; - }, - - /* Set as calculateWeek to determine the week of the year based on the ISO 8601 definition. - * @param date Date - the date to get the week for - * @return number - the number of the week within the year that contains this date - */ - iso8601Week: function(date) { - var time, - checkDate = new Date(date.getTime()); - - // Find Thursday of this week starting on Monday - checkDate.setDate(checkDate.getDate() + 4 - (checkDate.getDay() || 7)); - - time = checkDate.getTime(); - checkDate.setMonth(0); // Compare with Jan 1 - checkDate.setDate(1); - return Math.floor(Math.round((time - checkDate) / 86400000) / 7) + 1; - }, - - /* Parse a string value into a date object. - * See formatDate below for the possible formats. - * - * @param format string - the expected format of the date - * @param value string - the date in the above format - * @param settings Object - attributes include: - * shortYearCutoff number - the cutoff year for determining the century (optional) - * dayNamesShort string[7] - abbreviated names of the days from Sunday (optional) - * dayNames string[7] - names of the days from Sunday (optional) - * monthNamesShort string[12] - abbreviated names of the months (optional) - * monthNames string[12] - names of the months (optional) - * @return Date - the extracted date value or null if value is blank - */ - parseDate: function (format, value, settings) { - if (format == null || value == null) { - throw "Invalid arguments"; - } - - value = (typeof value === "object" ? value.toString() : value + ""); - if (value === "") { - return null; - } - - var iFormat, dim, extra, - iValue = 0, - shortYearCutoffTemp = (settings ? settings.shortYearCutoff : null) || this._defaults.shortYearCutoff, - shortYearCutoff = (typeof shortYearCutoffTemp !== "string" ? shortYearCutoffTemp : - new Date().getFullYear() % 100 + parseInt(shortYearCutoffTemp, 10)), - dayNamesShort = (settings ? settings.dayNamesShort : null) || this._defaults.dayNamesShort, - dayNames = (settings ? settings.dayNames : null) || this._defaults.dayNames, - monthNamesShort = (settings ? settings.monthNamesShort : null) || this._defaults.monthNamesShort, - monthNames = (settings ? settings.monthNames : null) || this._defaults.monthNames, - year = -1, - month = -1, - day = -1, - doy = -1, - literal = false, - date, - // Check whether a format character is doubled - lookAhead = function(match) { - var matches = (iFormat + 1 < format.length && format.charAt(iFormat + 1) === match); - if (matches) { - iFormat++; - } - return matches; - }, - // Extract a number from the string value - getNumber = function(match) { - var isDoubled = lookAhead(match), - size = (match === "@" ? 14 : (match === "!" ? 20 : - (match === "y" && isDoubled ? 4 : (match === "o" ? 3 : 2)))), - minSize = (match === "y" ? size : 1), - digits = new RegExp("^\\d{" + minSize + "," + size + "}"), - num = value.substring(iValue).match(digits); - if (!num) { - throw "Missing number at position " + iValue; - } - iValue += num[0].length; - return parseInt(num[0], 10); - }, - // Extract a name from the string value and convert to an index - getName = function(match, shortNames, longNames) { - var index = -1, - names = $.map(lookAhead(match) ? longNames : shortNames, function (v, k) { - return [ [k, v] ]; - }).sort(function (a, b) { - return -(a[1].length - b[1].length); - }); - - $.each(names, function (i, pair) { - var name = pair[1]; - if (value.substr(iValue, name.length).toLowerCase() === name.toLowerCase()) { - index = pair[0]; - iValue += name.length; - return false; - } - }); - if (index !== -1) { - return index + 1; - } else { - throw "Unknown name at position " + iValue; - } - }, - // Confirm that a literal character matches the string value - checkLiteral = function() { - if (value.charAt(iValue) !== format.charAt(iFormat)) { - throw "Unexpected literal at position " + iValue; - } - iValue++; - }; - - for (iFormat = 0; iFormat < format.length; iFormat++) { - if (literal) { - if (format.charAt(iFormat) === "'" && !lookAhead("'")) { - literal = false; - } else { - checkLiteral(); - } - } else { - switch (format.charAt(iFormat)) { - case "d": - day = getNumber("d"); - break; - case "D": - getName("D", dayNamesShort, dayNames); - break; - case "o": - doy = getNumber("o"); - break; - case "m": - month = getNumber("m"); - break; - case "M": - month = getName("M", monthNamesShort, monthNames); - break; - case "y": - year = getNumber("y"); - break; - case "@": - date = new Date(getNumber("@")); - year = date.getFullYear(); - month = date.getMonth() + 1; - day = date.getDate(); - break; - case "!": - date = new Date((getNumber("!") - this._ticksTo1970) / 10000); - year = date.getFullYear(); - month = date.getMonth() + 1; - day = date.getDate(); - break; - case "'": - if (lookAhead("'")){ - checkLiteral(); - } else { - literal = true; - } - break; - default: - checkLiteral(); - } - } - } - - if (iValue < value.length){ - extra = value.substr(iValue); - if (!/^\s+/.test(extra)) { - throw "Extra/unparsed characters found in date: " + extra; - } - } - - if (year === -1) { - year = new Date().getFullYear(); - } else if (year < 100) { - year += new Date().getFullYear() - new Date().getFullYear() % 100 + - (year <= shortYearCutoff ? 0 : -100); - } - - if (doy > -1) { - month = 1; - day = doy; - do { - dim = this._getDaysInMonth(year, month - 1); - if (day <= dim) { - break; - } - month++; - day -= dim; - } while (true); - } - - date = this._daylightSavingAdjust(new Date(year, month - 1, day)); - if (date.getFullYear() !== year || date.getMonth() + 1 !== month || date.getDate() !== day) { - throw "Invalid date"; // E.g. 31/02/00 - } - return date; - }, - - /* Standard date formats. */ - ATOM: "yy-mm-dd", // RFC 3339 (ISO 8601) - COOKIE: "D, dd M yy", - ISO_8601: "yy-mm-dd", - RFC_822: "D, d M y", - RFC_850: "DD, dd-M-y", - RFC_1036: "D, d M y", - RFC_1123: "D, d M yy", - RFC_2822: "D, d M yy", - RSS: "D, d M y", // RFC 822 - TICKS: "!", - TIMESTAMP: "@", - W3C: "yy-mm-dd", // ISO 8601 - - _ticksTo1970: (((1970 - 1) * 365 + Math.floor(1970 / 4) - Math.floor(1970 / 100) + - Math.floor(1970 / 400)) * 24 * 60 * 60 * 10000000), - - /* Format a date object into a string value. - * The format can be combinations of the following: - * d - day of month (no leading zero) - * dd - day of month (two digit) - * o - day of year (no leading zeros) - * oo - day of year (three digit) - * D - day name short - * DD - day name long - * m - month of year (no leading zero) - * mm - month of year (two digit) - * M - month name short - * MM - month name long - * y - year (two digit) - * yy - year (four digit) - * @ - Unix timestamp (ms since 01/01/1970) - * ! - Windows ticks (100ns since 01/01/0001) - * "..." - literal text - * '' - single quote - * - * @param format string - the desired format of the date - * @param date Date - the date value to format - * @param settings Object - attributes include: - * dayNamesShort string[7] - abbreviated names of the days from Sunday (optional) - * dayNames string[7] - names of the days from Sunday (optional) - * monthNamesShort string[12] - abbreviated names of the months (optional) - * monthNames string[12] - names of the months (optional) - * @return string - the date in the above format - */ - formatDate: function (format, date, settings) { - if (!date) { - return ""; - } - - var iFormat, - dayNamesShort = (settings ? settings.dayNamesShort : null) || this._defaults.dayNamesShort, - dayNames = (settings ? settings.dayNames : null) || this._defaults.dayNames, - monthNamesShort = (settings ? settings.monthNamesShort : null) || this._defaults.monthNamesShort, - monthNames = (settings ? settings.monthNames : null) || this._defaults.monthNames, - // Check whether a format character is doubled - lookAhead = function(match) { - var matches = (iFormat + 1 < format.length && format.charAt(iFormat + 1) === match); - if (matches) { - iFormat++; - } - return matches; - }, - // Format a number, with leading zero if necessary - formatNumber = function(match, value, len) { - var num = "" + value; - if (lookAhead(match)) { - while (num.length < len) { - num = "0" + num; - } - } - return num; - }, - // Format a name, short or long as requested - formatName = function(match, value, shortNames, longNames) { - return (lookAhead(match) ? longNames[value] : shortNames[value]); - }, - output = "", - literal = false; - - if (date) { - for (iFormat = 0; iFormat < format.length; iFormat++) { - if (literal) { - if (format.charAt(iFormat) === "'" && !lookAhead("'")) { - literal = false; - } else { - output += format.charAt(iFormat); - } - } else { - switch (format.charAt(iFormat)) { - case "d": - output += formatNumber("d", date.getDate(), 2); - break; - case "D": - output += formatName("D", date.getDay(), dayNamesShort, dayNames); - break; - case "o": - output += formatNumber("o", - Math.round((new Date(date.getFullYear(), date.getMonth(), date.getDate()).getTime() - new Date(date.getFullYear(), 0, 0).getTime()) / 86400000), 3); - break; - case "m": - output += formatNumber("m", date.getMonth() + 1, 2); - break; - case "M": - output += formatName("M", date.getMonth(), monthNamesShort, monthNames); - break; - case "y": - output += (lookAhead("y") ? date.getFullYear() : - (date.getYear() % 100 < 10 ? "0" : "") + date.getYear() % 100); - break; - case "@": - output += date.getTime(); - break; - case "!": - output += date.getTime() * 10000 + this._ticksTo1970; - break; - case "'": - if (lookAhead("'")) { - output += "'"; - } else { - literal = true; - } - break; - default: - output += format.charAt(iFormat); - } - } - } - } - return output; - }, - - /* Extract all possible characters from the date format. */ - _possibleChars: function (format) { - var iFormat, - chars = "", - literal = false, - // Check whether a format character is doubled - lookAhead = function(match) { - var matches = (iFormat + 1 < format.length && format.charAt(iFormat + 1) === match); - if (matches) { - iFormat++; - } - return matches; - }; - - for (iFormat = 0; iFormat < format.length; iFormat++) { - if (literal) { - if (format.charAt(iFormat) === "'" && !lookAhead("'")) { - literal = false; - } else { - chars += format.charAt(iFormat); - } - } else { - switch (format.charAt(iFormat)) { - case "d": case "m": case "y": case "@": - chars += "0123456789"; - break; - case "D": case "M": - return null; // Accept anything - case "'": - if (lookAhead("'")) { - chars += "'"; - } else { - literal = true; - } - break; - default: - chars += format.charAt(iFormat); - } - } - } - return chars; - }, - - /* Get a setting value, defaulting if necessary. */ - _get: function(inst, name) { - return inst.settings[name] !== undefined ? - inst.settings[name] : this._defaults[name]; - }, - - /* Parse existing date and initialise date picker. */ - _setDateFromField: function(inst, noDefault) { - if (inst.input.val() === inst.lastVal) { - return; - } - - var dateFormat = this._get(inst, "dateFormat"), - dates = inst.lastVal = inst.input ? inst.input.val() : null, - defaultDate = this._getDefaultDate(inst), - date = defaultDate, - settings = this._getFormatConfig(inst); - - try { - date = this.parseDate(dateFormat, dates, settings) || defaultDate; - } catch (event) { - dates = (noDefault ? "" : dates); - } - inst.selectedDay = date.getDate(); - inst.drawMonth = inst.selectedMonth = date.getMonth(); - inst.drawYear = inst.selectedYear = date.getFullYear(); - inst.currentDay = (dates ? date.getDate() : 0); - inst.currentMonth = (dates ? date.getMonth() : 0); - inst.currentYear = (dates ? date.getFullYear() : 0); - this._adjustInstDate(inst); - }, - - /* Retrieve the default date shown on opening. */ - _getDefaultDate: function(inst) { - return this._restrictMinMax(inst, - this._determineDate(inst, this._get(inst, "defaultDate"), new Date())); - }, - - /* A date may be specified as an exact value or a relative one. */ - _determineDate: function(inst, date, defaultDate) { - var offsetNumeric = function(offset) { - var date = new Date(); - date.setDate(date.getDate() + offset); - return date; - }, - offsetString = function(offset) { - try { - return $.datepicker.parseDate($.datepicker._get(inst, "dateFormat"), - offset, $.datepicker._getFormatConfig(inst)); - } - catch (e) { - // Ignore - } - - var date = (offset.toLowerCase().match(/^c/) ? - $.datepicker._getDate(inst) : null) || new Date(), - year = date.getFullYear(), - month = date.getMonth(), - day = date.getDate(), - pattern = /([+\-]?[0-9]+)\s*(d|D|w|W|m|M|y|Y)?/g, - matches = pattern.exec(offset); - - while (matches) { - switch (matches[2] || "d") { - case "d" : case "D" : - day += parseInt(matches[1],10); break; - case "w" : case "W" : - day += parseInt(matches[1],10) * 7; break; - case "m" : case "M" : - month += parseInt(matches[1],10); - day = Math.min(day, $.datepicker._getDaysInMonth(year, month)); - break; - case "y": case "Y" : - year += parseInt(matches[1],10); - day = Math.min(day, $.datepicker._getDaysInMonth(year, month)); - break; - } - matches = pattern.exec(offset); - } - return new Date(year, month, day); - }, - newDate = (date == null || date === "" ? defaultDate : (typeof date === "string" ? offsetString(date) : - (typeof date === "number" ? (isNaN(date) ? defaultDate : offsetNumeric(date)) : new Date(date.getTime())))); - - newDate = (newDate && newDate.toString() === "Invalid Date" ? defaultDate : newDate); - if (newDate) { - newDate.setHours(0); - newDate.setMinutes(0); - newDate.setSeconds(0); - newDate.setMilliseconds(0); - } - return this._daylightSavingAdjust(newDate); - }, - - /* Handle switch to/from daylight saving. - * Hours may be non-zero on daylight saving cut-over: - * > 12 when midnight changeover, but then cannot generate - * midnight datetime, so jump to 1AM, otherwise reset. - * @param date (Date) the date to check - * @return (Date) the corrected date - */ - _daylightSavingAdjust: function(date) { - if (!date) { - return null; - } - date.setHours(date.getHours() > 12 ? date.getHours() + 2 : 0); - return date; - }, - - /* Set the date(s) directly. */ - _setDate: function(inst, date, noChange) { - var clear = !date, - origMonth = inst.selectedMonth, - origYear = inst.selectedYear, - newDate = this._restrictMinMax(inst, this._determineDate(inst, date, new Date())); - - inst.selectedDay = inst.currentDay = newDate.getDate(); - inst.drawMonth = inst.selectedMonth = inst.currentMonth = newDate.getMonth(); - inst.drawYear = inst.selectedYear = inst.currentYear = newDate.getFullYear(); - if ((origMonth !== inst.selectedMonth || origYear !== inst.selectedYear) && !noChange) { - this._notifyChange(inst); - } - this._adjustInstDate(inst); - if (inst.input) { - inst.input.val(clear ? "" : this._formatDate(inst)); - } - }, - - /* Retrieve the date(s) directly. */ - _getDate: function(inst) { - var startDate = (!inst.currentYear || (inst.input && inst.input.val() === "") ? null : - this._daylightSavingAdjust(new Date( - inst.currentYear, inst.currentMonth, inst.currentDay))); - return startDate; - }, - - /* Attach the onxxx handlers. These are declared statically so - * they work with static code transformers like Caja. - */ - _attachHandlers: function(inst) { - var stepMonths = this._get(inst, "stepMonths"), - id = "#" + inst.id.replace( /\\\\/g, "\\" ); - inst.dpDiv.find("[data-handler]").map(function () { - var handler = { - prev: function () { - $.datepicker._adjustDate(id, -stepMonths, "M"); - }, - next: function () { - $.datepicker._adjustDate(id, +stepMonths, "M"); - }, - hide: function () { - $.datepicker._hideDatepicker(); - }, - today: function () { - $.datepicker._gotoToday(id); - }, - selectDay: function () { - $.datepicker._selectDay(id, +this.getAttribute("data-month"), +this.getAttribute("data-year"), this); - return false; - }, - selectMonth: function () { - $.datepicker._selectMonthYear(id, this, "M"); - return false; - }, - selectYear: function () { - $.datepicker._selectMonthYear(id, this, "Y"); - return false; - } - }; - $(this).bind(this.getAttribute("data-event"), handler[this.getAttribute("data-handler")]); - }); - }, - - /* Generate the HTML for the current state of the date picker. */ - _generateHTML: function(inst) { - var maxDraw, prevText, prev, nextText, next, currentText, gotoDate, - controls, buttonPanel, firstDay, showWeek, dayNames, dayNamesMin, - monthNames, monthNamesShort, beforeShowDay, showOtherMonths, - selectOtherMonths, defaultDate, html, dow, row, group, col, selectedDate, - cornerClass, calender, thead, day, daysInMonth, leadDays, curRows, numRows, - printDate, dRow, tbody, daySettings, otherMonth, unselectable, - tempDate = new Date(), - today = this._daylightSavingAdjust( - new Date(tempDate.getFullYear(), tempDate.getMonth(), tempDate.getDate())), // clear time - isRTL = this._get(inst, "isRTL"), - showButtonPanel = this._get(inst, "showButtonPanel"), - hideIfNoPrevNext = this._get(inst, "hideIfNoPrevNext"), - navigationAsDateFormat = this._get(inst, "navigationAsDateFormat"), - numMonths = this._getNumberOfMonths(inst), - showCurrentAtPos = this._get(inst, "showCurrentAtPos"), - stepMonths = this._get(inst, "stepMonths"), - isMultiMonth = (numMonths[0] !== 1 || numMonths[1] !== 1), - currentDate = this._daylightSavingAdjust((!inst.currentDay ? new Date(9999, 9, 9) : - new Date(inst.currentYear, inst.currentMonth, inst.currentDay))), - minDate = this._getMinMaxDate(inst, "min"), - maxDate = this._getMinMaxDate(inst, "max"), - drawMonth = inst.drawMonth - showCurrentAtPos, - drawYear = inst.drawYear; - - if (drawMonth < 0) { - drawMonth += 12; - drawYear--; - } - if (maxDate) { - maxDraw = this._daylightSavingAdjust(new Date(maxDate.getFullYear(), - maxDate.getMonth() - (numMonths[0] * numMonths[1]) + 1, maxDate.getDate())); - maxDraw = (minDate && maxDraw < minDate ? minDate : maxDraw); - while (this._daylightSavingAdjust(new Date(drawYear, drawMonth, 1)) > maxDraw) { - drawMonth--; - if (drawMonth < 0) { - drawMonth = 11; - drawYear--; - } - } - } - inst.drawMonth = drawMonth; - inst.drawYear = drawYear; - - prevText = this._get(inst, "prevText"); - prevText = (!navigationAsDateFormat ? prevText : this.formatDate(prevText, - this._daylightSavingAdjust(new Date(drawYear, drawMonth - stepMonths, 1)), - this._getFormatConfig(inst))); - - prev = (this._canAdjustMonth(inst, -1, drawYear, drawMonth) ? - "<a class='ui-datepicker-prev ui-corner-all' data-handler='prev' data-event='click'" + - " title='" + prevText + "'><span class='ui-icon ui-icon-circle-triangle-" + ( isRTL ? "e" : "w") + "'>" + prevText + "</span></a>" : - (hideIfNoPrevNext ? "" : "<a class='ui-datepicker-prev ui-corner-all ui-state-disabled' title='"+ prevText +"'><span class='ui-icon ui-icon-circle-triangle-" + ( isRTL ? "e" : "w") + "'>" + prevText + "</span></a>")); - - nextText = this._get(inst, "nextText"); - nextText = (!navigationAsDateFormat ? nextText : this.formatDate(nextText, - this._daylightSavingAdjust(new Date(drawYear, drawMonth + stepMonths, 1)), - this._getFormatConfig(inst))); - - next = (this._canAdjustMonth(inst, +1, drawYear, drawMonth) ? - "<a class='ui-datepicker-next ui-corner-all' data-handler='next' data-event='click'" + - " title='" + nextText + "'><span class='ui-icon ui-icon-circle-triangle-" + ( isRTL ? "w" : "e") + "'>" + nextText + "</span></a>" : - (hideIfNoPrevNext ? "" : "<a class='ui-datepicker-next ui-corner-all ui-state-disabled' title='"+ nextText + "'><span class='ui-icon ui-icon-circle-triangle-" + ( isRTL ? "w" : "e") + "'>" + nextText + "</span></a>")); - - currentText = this._get(inst, "currentText"); - gotoDate = (this._get(inst, "gotoCurrent") && inst.currentDay ? currentDate : today); - currentText = (!navigationAsDateFormat ? currentText : - this.formatDate(currentText, gotoDate, this._getFormatConfig(inst))); - - controls = (!inst.inline ? "<button type='button' class='ui-datepicker-close ui-state-default ui-priority-primary ui-corner-all' data-handler='hide' data-event='click'>" + - this._get(inst, "closeText") + "</button>" : ""); - - buttonPanel = (showButtonPanel) ? "<div class='ui-datepicker-buttonpane ui-widget-content'>" + (isRTL ? controls : "") + - (this._isInRange(inst, gotoDate) ? "<button type='button' class='ui-datepicker-current ui-state-default ui-priority-secondary ui-corner-all' data-handler='today' data-event='click'" + - ">" + currentText + "</button>" : "") + (isRTL ? "" : controls) + "</div>" : ""; - - firstDay = parseInt(this._get(inst, "firstDay"),10); - firstDay = (isNaN(firstDay) ? 0 : firstDay); - - showWeek = this._get(inst, "showWeek"); - dayNames = this._get(inst, "dayNames"); - dayNamesMin = this._get(inst, "dayNamesMin"); - monthNames = this._get(inst, "monthNames"); - monthNamesShort = this._get(inst, "monthNamesShort"); - beforeShowDay = this._get(inst, "beforeShowDay"); - showOtherMonths = this._get(inst, "showOtherMonths"); - selectOtherMonths = this._get(inst, "selectOtherMonths"); - defaultDate = this._getDefaultDate(inst); - html = ""; - dow; - for (row = 0; row < numMonths[0]; row++) { - group = ""; - this.maxRows = 4; - for (col = 0; col < numMonths[1]; col++) { - selectedDate = this._daylightSavingAdjust(new Date(drawYear, drawMonth, inst.selectedDay)); - cornerClass = " ui-corner-all"; - calender = ""; - if (isMultiMonth) { - calender += "<div class='ui-datepicker-group"; - if (numMonths[1] > 1) { - switch (col) { - case 0: calender += " ui-datepicker-group-first"; - cornerClass = " ui-corner-" + (isRTL ? "right" : "left"); break; - case numMonths[1]-1: calender += " ui-datepicker-group-last"; - cornerClass = " ui-corner-" + (isRTL ? "left" : "right"); break; - default: calender += " ui-datepicker-group-middle"; cornerClass = ""; break; - } - } - calender += "'>"; - } - calender += "<div class='ui-datepicker-header ui-widget-header ui-helper-clearfix" + cornerClass + "'>" + - (/all|left/.test(cornerClass) && row === 0 ? (isRTL ? next : prev) : "") + - (/all|right/.test(cornerClass) && row === 0 ? (isRTL ? prev : next) : "") + - this._generateMonthYearHeader(inst, drawMonth, drawYear, minDate, maxDate, - row > 0 || col > 0, monthNames, monthNamesShort) + // draw month headers - "</div><table class='ui-datepicker-calendar'><thead>" + - "<tr>"; - thead = (showWeek ? "<th class='ui-datepicker-week-col'>" + this._get(inst, "weekHeader") + "</th>" : ""); - for (dow = 0; dow < 7; dow++) { // days of the week - day = (dow + firstDay) % 7; - thead += "<th scope='col'" + ((dow + firstDay + 6) % 7 >= 5 ? " class='ui-datepicker-week-end'" : "") + ">" + - "<span title='" + dayNames[day] + "'>" + dayNamesMin[day] + "</span></th>"; - } - calender += thead + "</tr></thead><tbody>"; - daysInMonth = this._getDaysInMonth(drawYear, drawMonth); - if (drawYear === inst.selectedYear && drawMonth === inst.selectedMonth) { - inst.selectedDay = Math.min(inst.selectedDay, daysInMonth); - } - leadDays = (this._getFirstDayOfMonth(drawYear, drawMonth) - firstDay + 7) % 7; - curRows = Math.ceil((leadDays + daysInMonth) / 7); // calculate the number of rows to generate - numRows = (isMultiMonth ? this.maxRows > curRows ? this.maxRows : curRows : curRows); //If multiple months, use the higher number of rows (see #7043) - this.maxRows = numRows; - printDate = this._daylightSavingAdjust(new Date(drawYear, drawMonth, 1 - leadDays)); - for (dRow = 0; dRow < numRows; dRow++) { // create date picker rows - calender += "<tr>"; - tbody = (!showWeek ? "" : "<td class='ui-datepicker-week-col'>" + - this._get(inst, "calculateWeek")(printDate) + "</td>"); - for (dow = 0; dow < 7; dow++) { // create date picker days - daySettings = (beforeShowDay ? - beforeShowDay.apply((inst.input ? inst.input[0] : null), [printDate]) : [true, ""]); - otherMonth = (printDate.getMonth() !== drawMonth); - unselectable = (otherMonth && !selectOtherMonths) || !daySettings[0] || - (minDate && printDate < minDate) || (maxDate && printDate > maxDate); - tbody += "<td class='" + - ((dow + firstDay + 6) % 7 >= 5 ? " ui-datepicker-week-end" : "") + // highlight weekends - (otherMonth ? " ui-datepicker-other-month" : "") + // highlight days from other months - ((printDate.getTime() === selectedDate.getTime() && drawMonth === inst.selectedMonth && inst._keyEvent) || // user pressed key - (defaultDate.getTime() === printDate.getTime() && defaultDate.getTime() === selectedDate.getTime()) ? - // or defaultDate is current printedDate and defaultDate is selectedDate - " " + this._dayOverClass : "") + // highlight selected day - (unselectable ? " " + this._unselectableClass + " ui-state-disabled": "") + // highlight unselectable days - (otherMonth && !showOtherMonths ? "" : " " + daySettings[1] + // highlight custom dates - (printDate.getTime() === currentDate.getTime() ? " " + this._currentClass : "") + // highlight selected day - (printDate.getTime() === today.getTime() ? " ui-datepicker-today" : "")) + "'" + // highlight today (if different) - ((!otherMonth || showOtherMonths) && daySettings[2] ? " title='" + daySettings[2].replace(/'/g, "&#39;") + "'" : "") + // cell title - (unselectable ? "" : " data-handler='selectDay' data-event='click' data-month='" + printDate.getMonth() + "' data-year='" + printDate.getFullYear() + "'") + ">" + // actions - (otherMonth && !showOtherMonths ? "&#xa0;" : // display for other months - (unselectable ? "<span class='ui-state-default'>" + printDate.getDate() + "</span>" : "<a class='ui-state-default" + - (printDate.getTime() === today.getTime() ? " ui-state-highlight" : "") + - (printDate.getTime() === currentDate.getTime() ? " ui-state-active" : "") + // highlight selected day - (otherMonth ? " ui-priority-secondary" : "") + // distinguish dates from other months - "' href='#'>" + printDate.getDate() + "</a>")) + "</td>"; // display selectable date - printDate.setDate(printDate.getDate() + 1); - printDate = this._daylightSavingAdjust(printDate); - } - calender += tbody + "</tr>"; - } - drawMonth++; - if (drawMonth > 11) { - drawMonth = 0; - drawYear++; - } - calender += "</tbody></table>" + (isMultiMonth ? "</div>" + - ((numMonths[0] > 0 && col === numMonths[1]-1) ? "<div class='ui-datepicker-row-break'></div>" : "") : ""); - group += calender; - } - html += group; - } - html += buttonPanel; - inst._keyEvent = false; - return html; - }, - - /* Generate the month and year header. */ - _generateMonthYearHeader: function(inst, drawMonth, drawYear, minDate, maxDate, - secondary, monthNames, monthNamesShort) { - - var inMinYear, inMaxYear, month, years, thisYear, determineYear, year, endYear, - changeMonth = this._get(inst, "changeMonth"), - changeYear = this._get(inst, "changeYear"), - showMonthAfterYear = this._get(inst, "showMonthAfterYear"), - html = "<div class='ui-datepicker-title'>", - monthHtml = ""; - - // month selection - if (secondary || !changeMonth) { - monthHtml += "<span class='ui-datepicker-month'>" + monthNames[drawMonth] + "</span>"; - } else { - inMinYear = (minDate && minDate.getFullYear() === drawYear); - inMaxYear = (maxDate && maxDate.getFullYear() === drawYear); - monthHtml += "<select class='ui-datepicker-month' data-handler='selectMonth' data-event='change'>"; - for ( month = 0; month < 12; month++) { - if ((!inMinYear || month >= minDate.getMonth()) && (!inMaxYear || month <= maxDate.getMonth())) { - monthHtml += "<option value='" + month + "'" + - (month === drawMonth ? " selected='selected'" : "") + - ">" + monthNamesShort[month] + "</option>"; - } - } - monthHtml += "</select>"; - } - - if (!showMonthAfterYear) { - html += monthHtml + (secondary || !(changeMonth && changeYear) ? "&#xa0;" : ""); - } - - // year selection - if ( !inst.yearshtml ) { - inst.yearshtml = ""; - if (secondary || !changeYear) { - html += "<span class='ui-datepicker-year'>" + drawYear + "</span>"; - } else { - // determine range of years to display - years = this._get(inst, "yearRange").split(":"); - thisYear = new Date().getFullYear(); - determineYear = function(value) { - var year = (value.match(/c[+\-].*/) ? drawYear + parseInt(value.substring(1), 10) : - (value.match(/[+\-].*/) ? thisYear + parseInt(value, 10) : - parseInt(value, 10))); - return (isNaN(year) ? thisYear : year); - }; - year = determineYear(years[0]); - endYear = Math.max(year, determineYear(years[1] || "")); - year = (minDate ? Math.max(year, minDate.getFullYear()) : year); - endYear = (maxDate ? Math.min(endYear, maxDate.getFullYear()) : endYear); - inst.yearshtml += "<select class='ui-datepicker-year' data-handler='selectYear' data-event='change'>"; - for (; year <= endYear; year++) { - inst.yearshtml += "<option value='" + year + "'" + - (year === drawYear ? " selected='selected'" : "") + - ">" + year + "</option>"; - } - inst.yearshtml += "</select>"; - - html += inst.yearshtml; - inst.yearshtml = null; - } - } - - html += this._get(inst, "yearSuffix"); - if (showMonthAfterYear) { - html += (secondary || !(changeMonth && changeYear) ? "&#xa0;" : "") + monthHtml; - } - html += "</div>"; // Close datepicker_header - return html; - }, - - /* Adjust one of the date sub-fields. */ - _adjustInstDate: function(inst, offset, period) { - var year = inst.drawYear + (period === "Y" ? offset : 0), - month = inst.drawMonth + (period === "M" ? offset : 0), - day = Math.min(inst.selectedDay, this._getDaysInMonth(year, month)) + (period === "D" ? offset : 0), - date = this._restrictMinMax(inst, this._daylightSavingAdjust(new Date(year, month, day))); - - inst.selectedDay = date.getDate(); - inst.drawMonth = inst.selectedMonth = date.getMonth(); - inst.drawYear = inst.selectedYear = date.getFullYear(); - if (period === "M" || period === "Y") { - this._notifyChange(inst); - } - }, - - /* Ensure a date is within any min/max bounds. */ - _restrictMinMax: function(inst, date) { - var minDate = this._getMinMaxDate(inst, "min"), - maxDate = this._getMinMaxDate(inst, "max"), - newDate = (minDate && date < minDate ? minDate : date); - return (maxDate && newDate > maxDate ? maxDate : newDate); - }, - - /* Notify change of month/year. */ - _notifyChange: function(inst) { - var onChange = this._get(inst, "onChangeMonthYear"); - if (onChange) { - onChange.apply((inst.input ? inst.input[0] : null), - [inst.selectedYear, inst.selectedMonth + 1, inst]); - } - }, - - /* Determine the number of months to show. */ - _getNumberOfMonths: function(inst) { - var numMonths = this._get(inst, "numberOfMonths"); - return (numMonths == null ? [1, 1] : (typeof numMonths === "number" ? [1, numMonths] : numMonths)); - }, - - /* Determine the current maximum date - ensure no time components are set. */ - _getMinMaxDate: function(inst, minMax) { - return this._determineDate(inst, this._get(inst, minMax + "Date"), null); - }, - - /* Find the number of days in a given month. */ - _getDaysInMonth: function(year, month) { - return 32 - this._daylightSavingAdjust(new Date(year, month, 32)).getDate(); - }, - - /* Find the day of the week of the first of a month. */ - _getFirstDayOfMonth: function(year, month) { - return new Date(year, month, 1).getDay(); - }, - - /* Determines if we should allow a "next/prev" month display change. */ - _canAdjustMonth: function(inst, offset, curYear, curMonth) { - var numMonths = this._getNumberOfMonths(inst), - date = this._daylightSavingAdjust(new Date(curYear, - curMonth + (offset < 0 ? offset : numMonths[0] * numMonths[1]), 1)); - - if (offset < 0) { - date.setDate(this._getDaysInMonth(date.getFullYear(), date.getMonth())); - } - return this._isInRange(inst, date); - }, - - /* Is the given date in the accepted range? */ - _isInRange: function(inst, date) { - var yearSplit, currentYear, - minDate = this._getMinMaxDate(inst, "min"), - maxDate = this._getMinMaxDate(inst, "max"), - minYear = null, - maxYear = null, - years = this._get(inst, "yearRange"); - if (years){ - yearSplit = years.split(":"); - currentYear = new Date().getFullYear(); - minYear = parseInt(yearSplit[0], 10); - maxYear = parseInt(yearSplit[1], 10); - if ( yearSplit[0].match(/[+\-].*/) ) { - minYear += currentYear; - } - if ( yearSplit[1].match(/[+\-].*/) ) { - maxYear += currentYear; - } - } - - return ((!minDate || date.getTime() >= minDate.getTime()) && - (!maxDate || date.getTime() <= maxDate.getTime()) && - (!minYear || date.getFullYear() >= minYear) && - (!maxYear || date.getFullYear() <= maxYear)); - }, - - /* Provide the configuration settings for formatting/parsing. */ - _getFormatConfig: function(inst) { - var shortYearCutoff = this._get(inst, "shortYearCutoff"); - shortYearCutoff = (typeof shortYearCutoff !== "string" ? shortYearCutoff : - new Date().getFullYear() % 100 + parseInt(shortYearCutoff, 10)); - return {shortYearCutoff: shortYearCutoff, - dayNamesShort: this._get(inst, "dayNamesShort"), dayNames: this._get(inst, "dayNames"), - monthNamesShort: this._get(inst, "monthNamesShort"), monthNames: this._get(inst, "monthNames")}; - }, - - /* Format the given date for display. */ - _formatDate: function(inst, day, month, year) { - if (!day) { - inst.currentDay = inst.selectedDay; - inst.currentMonth = inst.selectedMonth; - inst.currentYear = inst.selectedYear; - } - var date = (day ? (typeof day === "object" ? day : - this._daylightSavingAdjust(new Date(year, month, day))) : - this._daylightSavingAdjust(new Date(inst.currentYear, inst.currentMonth, inst.currentDay))); - return this.formatDate(this._get(inst, "dateFormat"), date, this._getFormatConfig(inst)); - } -}); - -/* - * Bind hover events for datepicker elements. - * Done via delegate so the binding only occurs once in the lifetime of the parent div. - * Global datepicker_instActive, set by _updateDatepicker allows the handlers to find their way back to the active picker. - */ -function datepicker_bindHover(dpDiv) { - var selector = "button, .ui-datepicker-prev, .ui-datepicker-next, .ui-datepicker-calendar td a"; - return dpDiv.delegate(selector, "mouseout", function() { - $(this).removeClass("ui-state-hover"); - if (this.className.indexOf("ui-datepicker-prev") !== -1) { - $(this).removeClass("ui-datepicker-prev-hover"); - } - if (this.className.indexOf("ui-datepicker-next") !== -1) { - $(this).removeClass("ui-datepicker-next-hover"); - } - }) - .delegate( selector, "mouseover", datepicker_handleMouseover ); -} - -function datepicker_handleMouseover() { - if (!$.datepicker._isDisabledDatepicker( datepicker_instActive.inline? datepicker_instActive.dpDiv.parent()[0] : datepicker_instActive.input[0])) { - $(this).parents(".ui-datepicker-calendar").find("a").removeClass("ui-state-hover"); - $(this).addClass("ui-state-hover"); - if (this.className.indexOf("ui-datepicker-prev") !== -1) { - $(this).addClass("ui-datepicker-prev-hover"); - } - if (this.className.indexOf("ui-datepicker-next") !== -1) { - $(this).addClass("ui-datepicker-next-hover"); - } - } -} - -/* jQuery extend now ignores nulls! */ -function datepicker_extendRemove(target, props) { - $.extend(target, props); - for (var name in props) { - if (props[name] == null) { - target[name] = props[name]; - } - } - return target; -} - -/* Invoke the datepicker functionality. - @param options string - a command, optionally followed by additional parameters or - Object - settings for attaching new datepicker functionality - @return jQuery object */ -$.fn.datepicker = function(options){ - - /* Verify an empty collection wasn't passed - Fixes #6976 */ - if ( !this.length ) { - return this; - } - - /* Initialise the date picker. */ - if (!$.datepicker.initialized) { - $(document).mousedown($.datepicker._checkExternalClick); - $.datepicker.initialized = true; - } - - /* Append datepicker main container to body if not exist. */ - if ($("#"+$.datepicker._mainDivId).length === 0) { - $("body").append($.datepicker.dpDiv); - } - - var otherArgs = Array.prototype.slice.call(arguments, 1); - if (typeof options === "string" && (options === "isDisabled" || options === "getDate" || options === "widget")) { - return $.datepicker["_" + options + "Datepicker"]. - apply($.datepicker, [this[0]].concat(otherArgs)); - } - if (options === "option" && arguments.length === 2 && typeof arguments[1] === "string") { - return $.datepicker["_" + options + "Datepicker"]. - apply($.datepicker, [this[0]].concat(otherArgs)); - } - return this.each(function() { - typeof options === "string" ? - $.datepicker["_" + options + "Datepicker"]. - apply($.datepicker, [this].concat(otherArgs)) : - $.datepicker._attachDatepicker(this, options); - }); -}; - -$.datepicker = new Datepicker(); // singleton instance -$.datepicker.initialized = false; -$.datepicker.uuid = new Date().getTime(); -$.datepicker.version = "1.11.4"; - -var datepicker = $.datepicker; - - -/*! - * jQuery UI Draggable 1.11.4 - * http://jqueryui.com - * - * Copyright jQuery Foundation and other contributors - * Released under the MIT license. - * http://jquery.org/license - * - * http://api.jqueryui.com/draggable/ - */ - - -$.widget("ui.draggable", $.ui.mouse, { - version: "1.11.4", - widgetEventPrefix: "drag", - options: { - addClasses: true, - appendTo: "parent", - axis: false, - connectToSortable: false, - containment: false, - cursor: "auto", - cursorAt: false, - grid: false, - handle: false, - helper: "original", - iframeFix: false, - opacity: false, - refreshPositions: false, - revert: false, - revertDuration: 500, - scope: "default", - scroll: true, - scrollSensitivity: 20, - scrollSpeed: 20, - snap: false, - snapMode: "both", - snapTolerance: 20, - stack: false, - zIndex: false, - - // callbacks - drag: null, - start: null, - stop: null - }, - _create: function() { - - if ( this.options.helper === "original" ) { - this._setPositionRelative(); - } - if (this.options.addClasses){ - this.element.addClass("ui-draggable"); - } - if (this.options.disabled){ - this.element.addClass("ui-draggable-disabled"); - } - this._setHandleClassName(); - - this._mouseInit(); - }, - - _setOption: function( key, value ) { - this._super( key, value ); - if ( key === "handle" ) { - this._removeHandleClassName(); - this._setHandleClassName(); - } - }, - - _destroy: function() { - if ( ( this.helper || this.element ).is( ".ui-draggable-dragging" ) ) { - this.destroyOnClear = true; - return; - } - this.element.removeClass( "ui-draggable ui-draggable-dragging ui-draggable-disabled" ); - this._removeHandleClassName(); - this._mouseDestroy(); - }, - - _mouseCapture: function(event) { - var o = this.options; - - this._blurActiveElement( event ); - - // among others, prevent a drag on a resizable-handle - if (this.helper || o.disabled || $(event.target).closest(".ui-resizable-handle").length > 0) { - return false; - } - - //Quit if we're not on a valid handle - this.handle = this._getHandle(event); - if (!this.handle) { - return false; - } - - this._blockFrames( o.iframeFix === true ? "iframe" : o.iframeFix ); - - return true; - - }, - - _blockFrames: function( selector ) { - this.iframeBlocks = this.document.find( selector ).map(function() { - var iframe = $( this ); - - return $( "<div>" ) - .css( "position", "absolute" ) - .appendTo( iframe.parent() ) - .outerWidth( iframe.outerWidth() ) - .outerHeight( iframe.outerHeight() ) - .offset( iframe.offset() )[ 0 ]; - }); - }, - - _unblockFrames: function() { - if ( this.iframeBlocks ) { - this.iframeBlocks.remove(); - delete this.iframeBlocks; - } - }, - - _blurActiveElement: function( event ) { - var document = this.document[ 0 ]; - - // Only need to blur if the event occurred on the draggable itself, see #10527 - if ( !this.handleElement.is( event.target ) ) { - return; - } - - // support: IE9 - // IE9 throws an "Unspecified error" accessing document.activeElement from an <iframe> - try { - - // Support: IE9, IE10 - // If the <body> is blurred, IE will switch windows, see #9520 - if ( document.activeElement && document.activeElement.nodeName.toLowerCase() !== "body" ) { - - // Blur any element that currently has focus, see #4261 - $( document.activeElement ).blur(); - } - } catch ( error ) {} - }, - - _mouseStart: function(event) { - - var o = this.options; - - //Create and append the visible helper - this.helper = this._createHelper(event); - - this.helper.addClass("ui-draggable-dragging"); - - //Cache the helper size - this._cacheHelperProportions(); - - //If ddmanager is used for droppables, set the global draggable - if ($.ui.ddmanager) { - $.ui.ddmanager.current = this; - } - - /* - * - Position generation - - * This block generates everything position related - it's the core of draggables. - */ - - //Cache the margins of the original element - this._cacheMargins(); - - //Store the helper's css position - this.cssPosition = this.helper.css( "position" ); - this.scrollParent = this.helper.scrollParent( true ); - this.offsetParent = this.helper.offsetParent(); - this.hasFixedAncestor = this.helper.parents().filter(function() { - return $( this ).css( "position" ) === "fixed"; - }).length > 0; - - //The element's absolute position on the page minus margins - this.positionAbs = this.element.offset(); - this._refreshOffsets( event ); - - //Generate the original position - this.originalPosition = this.position = this._generatePosition( event, false ); - this.originalPageX = event.pageX; - this.originalPageY = event.pageY; - - //Adjust the mouse offset relative to the helper if "cursorAt" is supplied - (o.cursorAt && this._adjustOffsetFromHelper(o.cursorAt)); - - //Set a containment if given in the options - this._setContainment(); - - //Trigger event + callbacks - if (this._trigger("start", event) === false) { - this._clear(); - return false; - } - - //Recache the helper size - this._cacheHelperProportions(); - - //Prepare the droppable offsets - if ($.ui.ddmanager && !o.dropBehaviour) { - $.ui.ddmanager.prepareOffsets(this, event); - } - - // Reset helper's right/bottom css if they're set and set explicit width/height instead - // as this prevents resizing of elements with right/bottom set (see #7772) - this._normalizeRightBottom(); - - this._mouseDrag(event, true); //Execute the drag once - this causes the helper not to be visible before getting its correct position - - //If the ddmanager is used for droppables, inform the manager that dragging has started (see #5003) - if ( $.ui.ddmanager ) { - $.ui.ddmanager.dragStart(this, event); - } - - return true; - }, - - _refreshOffsets: function( event ) { - this.offset = { - top: this.positionAbs.top - this.margins.top, - left: this.positionAbs.left - this.margins.left, - scroll: false, - parent: this._getParentOffset(), - relative: this._getRelativeOffset() - }; - - this.offset.click = { - left: event.pageX - this.offset.left, - top: event.pageY - this.offset.top - }; - }, - - _mouseDrag: function(event, noPropagation) { - // reset any necessary cached properties (see #5009) - if ( this.hasFixedAncestor ) { - this.offset.parent = this._getParentOffset(); - } - - //Compute the helpers position - this.position = this._generatePosition( event, true ); - this.positionAbs = this._convertPositionTo("absolute"); - - //Call plugins and callbacks and use the resulting position if something is returned - if (!noPropagation) { - var ui = this._uiHash(); - if (this._trigger("drag", event, ui) === false) { - this._mouseUp({}); - return false; - } - this.position = ui.position; - } - - this.helper[ 0 ].style.left = this.position.left + "px"; - this.helper[ 0 ].style.top = this.position.top + "px"; - - if ($.ui.ddmanager) { - $.ui.ddmanager.drag(this, event); - } - - return false; - }, - - _mouseStop: function(event) { - - //If we are using droppables, inform the manager about the drop - var that = this, - dropped = false; - if ($.ui.ddmanager && !this.options.dropBehaviour) { - dropped = $.ui.ddmanager.drop(this, event); - } - - //if a drop comes from outside (a sortable) - if (this.dropped) { - dropped = this.dropped; - this.dropped = false; - } - - if ((this.options.revert === "invalid" && !dropped) || (this.options.revert === "valid" && dropped) || this.options.revert === true || ($.isFunction(this.options.revert) && this.options.revert.call(this.element, dropped))) { - $(this.helper).animate(this.originalPosition, parseInt(this.options.revertDuration, 10), function() { - if (that._trigger("stop", event) !== false) { - that._clear(); - } - }); - } else { - if (this._trigger("stop", event) !== false) { - this._clear(); - } - } - - return false; - }, - - _mouseUp: function( event ) { - this._unblockFrames(); - - //If the ddmanager is used for droppables, inform the manager that dragging has stopped (see #5003) - if ( $.ui.ddmanager ) { - $.ui.ddmanager.dragStop(this, event); - } - - // Only need to focus if the event occurred on the draggable itself, see #10527 - if ( this.handleElement.is( event.target ) ) { - // The interaction is over; whether or not the click resulted in a drag, focus the element - this.element.focus(); - } - - return $.ui.mouse.prototype._mouseUp.call(this, event); - }, - - cancel: function() { - - if (this.helper.is(".ui-draggable-dragging")) { - this._mouseUp({}); - } else { - this._clear(); - } - - return this; - - }, - - _getHandle: function(event) { - return this.options.handle ? - !!$( event.target ).closest( this.element.find( this.options.handle ) ).length : - true; - }, - - _setHandleClassName: function() { - this.handleElement = this.options.handle ? - this.element.find( this.options.handle ) : this.element; - this.handleElement.addClass( "ui-draggable-handle" ); - }, - - _removeHandleClassName: function() { - this.handleElement.removeClass( "ui-draggable-handle" ); - }, - - _createHelper: function(event) { - - var o = this.options, - helperIsFunction = $.isFunction( o.helper ), - helper = helperIsFunction ? - $( o.helper.apply( this.element[ 0 ], [ event ] ) ) : - ( o.helper === "clone" ? - this.element.clone().removeAttr( "id" ) : - this.element ); - - if (!helper.parents("body").length) { - helper.appendTo((o.appendTo === "parent" ? this.element[0].parentNode : o.appendTo)); - } - - // http://bugs.jqueryui.com/ticket/9446 - // a helper function can return the original element - // which wouldn't have been set to relative in _create - if ( helperIsFunction && helper[ 0 ] === this.element[ 0 ] ) { - this._setPositionRelative(); - } - - if (helper[0] !== this.element[0] && !(/(fixed|absolute)/).test(helper.css("position"))) { - helper.css("position", "absolute"); - } - - return helper; - - }, - - _setPositionRelative: function() { - if ( !( /^(?:r|a|f)/ ).test( this.element.css( "position" ) ) ) { - this.element[ 0 ].style.position = "relative"; - } - }, - - _adjustOffsetFromHelper: function(obj) { - if (typeof obj === "string") { - obj = obj.split(" "); - } - if ($.isArray(obj)) { - obj = { left: +obj[0], top: +obj[1] || 0 }; - } - if ("left" in obj) { - this.offset.click.left = obj.left + this.margins.left; - } - if ("right" in obj) { - this.offset.click.left = this.helperProportions.width - obj.right + this.margins.left; - } - if ("top" in obj) { - this.offset.click.top = obj.top + this.margins.top; - } - if ("bottom" in obj) { - this.offset.click.top = this.helperProportions.height - obj.bottom + this.margins.top; - } - }, - - _isRootNode: function( element ) { - return ( /(html|body)/i ).test( element.tagName ) || element === this.document[ 0 ]; - }, - - _getParentOffset: function() { - - //Get the offsetParent and cache its position - var po = this.offsetParent.offset(), - document = this.document[ 0 ]; - - // This is a special case where we need to modify a offset calculated on start, since the following happened: - // 1. The position of the helper is absolute, so it's position is calculated based on the next positioned parent - // 2. The actual offset parent is a child of the scroll parent, and the scroll parent isn't the document, which means that - // the scroll is included in the initial calculation of the offset of the parent, and never recalculated upon drag - if (this.cssPosition === "absolute" && this.scrollParent[0] !== document && $.contains(this.scrollParent[0], this.offsetParent[0])) { - po.left += this.scrollParent.scrollLeft(); - po.top += this.scrollParent.scrollTop(); - } - - if ( this._isRootNode( this.offsetParent[ 0 ] ) ) { - po = { top: 0, left: 0 }; - } - - return { - top: po.top + (parseInt(this.offsetParent.css("borderTopWidth"), 10) || 0), - left: po.left + (parseInt(this.offsetParent.css("borderLeftWidth"), 10) || 0) - }; - - }, - - _getRelativeOffset: function() { - if ( this.cssPosition !== "relative" ) { - return { top: 0, left: 0 }; - } - - var p = this.element.position(), - scrollIsRootNode = this._isRootNode( this.scrollParent[ 0 ] ); - - return { - top: p.top - ( parseInt(this.helper.css( "top" ), 10) || 0 ) + ( !scrollIsRootNode ? this.scrollParent.scrollTop() : 0 ), - left: p.left - ( parseInt(this.helper.css( "left" ), 10) || 0 ) + ( !scrollIsRootNode ? this.scrollParent.scrollLeft() : 0 ) - }; - - }, - - _cacheMargins: function() { - this.margins = { - left: (parseInt(this.element.css("marginLeft"), 10) || 0), - top: (parseInt(this.element.css("marginTop"), 10) || 0), - right: (parseInt(this.element.css("marginRight"), 10) || 0), - bottom: (parseInt(this.element.css("marginBottom"), 10) || 0) - }; - }, - - _cacheHelperProportions: function() { - this.helperProportions = { - width: this.helper.outerWidth(), - height: this.helper.outerHeight() - }; - }, - - _setContainment: function() { - - var isUserScrollable, c, ce, - o = this.options, - document = this.document[ 0 ]; - - this.relativeContainer = null; - - if ( !o.containment ) { - this.containment = null; - return; - } - - if ( o.containment === "window" ) { - this.containment = [ - $( window ).scrollLeft() - this.offset.relative.left - this.offset.parent.left, - $( window ).scrollTop() - this.offset.relative.top - this.offset.parent.top, - $( window ).scrollLeft() + $( window ).width() - this.helperProportions.width - this.margins.left, - $( window ).scrollTop() + ( $( window ).height() || document.body.parentNode.scrollHeight ) - this.helperProportions.height - this.margins.top - ]; - return; - } - - if ( o.containment === "document") { - this.containment = [ - 0, - 0, - $( document ).width() - this.helperProportions.width - this.margins.left, - ( $( document ).height() || document.body.parentNode.scrollHeight ) - this.helperProportions.height - this.margins.top - ]; - return; - } - - if ( o.containment.constructor === Array ) { - this.containment = o.containment; - return; - } - - if ( o.containment === "parent" ) { - o.containment = this.helper[ 0 ].parentNode; - } - - c = $( o.containment ); - ce = c[ 0 ]; - - if ( !ce ) { - return; - } - - isUserScrollable = /(scroll|auto)/.test( c.css( "overflow" ) ); - - this.containment = [ - ( parseInt( c.css( "borderLeftWidth" ), 10 ) || 0 ) + ( parseInt( c.css( "paddingLeft" ), 10 ) || 0 ), - ( parseInt( c.css( "borderTopWidth" ), 10 ) || 0 ) + ( parseInt( c.css( "paddingTop" ), 10 ) || 0 ), - ( isUserScrollable ? Math.max( ce.scrollWidth, ce.offsetWidth ) : ce.offsetWidth ) - - ( parseInt( c.css( "borderRightWidth" ), 10 ) || 0 ) - - ( parseInt( c.css( "paddingRight" ), 10 ) || 0 ) - - this.helperProportions.width - - this.margins.left - - this.margins.right, - ( isUserScrollable ? Math.max( ce.scrollHeight, ce.offsetHeight ) : ce.offsetHeight ) - - ( parseInt( c.css( "borderBottomWidth" ), 10 ) || 0 ) - - ( parseInt( c.css( "paddingBottom" ), 10 ) || 0 ) - - this.helperProportions.height - - this.margins.top - - this.margins.bottom - ]; - this.relativeContainer = c; - }, - - _convertPositionTo: function(d, pos) { - - if (!pos) { - pos = this.position; - } - - var mod = d === "absolute" ? 1 : -1, - scrollIsRootNode = this._isRootNode( this.scrollParent[ 0 ] ); - - return { - top: ( - pos.top + // The absolute mouse position - this.offset.relative.top * mod + // Only for relative positioned nodes: Relative offset from element to offset parent - this.offset.parent.top * mod - // The offsetParent's offset without borders (offset + border) - ( ( this.cssPosition === "fixed" ? -this.offset.scroll.top : ( scrollIsRootNode ? 0 : this.offset.scroll.top ) ) * mod) - ), - left: ( - pos.left + // The absolute mouse position - this.offset.relative.left * mod + // Only for relative positioned nodes: Relative offset from element to offset parent - this.offset.parent.left * mod - // The offsetParent's offset without borders (offset + border) - ( ( this.cssPosition === "fixed" ? -this.offset.scroll.left : ( scrollIsRootNode ? 0 : this.offset.scroll.left ) ) * mod) - ) - }; - - }, - - _generatePosition: function( event, constrainPosition ) { - - var containment, co, top, left, - o = this.options, - scrollIsRootNode = this._isRootNode( this.scrollParent[ 0 ] ), - pageX = event.pageX, - pageY = event.pageY; - - // Cache the scroll - if ( !scrollIsRootNode || !this.offset.scroll ) { - this.offset.scroll = { - top: this.scrollParent.scrollTop(), - left: this.scrollParent.scrollLeft() - }; - } - - /* - * - Position constraining - - * Constrain the position to a mix of grid, containment. - */ - - // If we are not dragging yet, we won't check for options - if ( constrainPosition ) { - if ( this.containment ) { - if ( this.relativeContainer ){ - co = this.relativeContainer.offset(); - containment = [ - this.containment[ 0 ] + co.left, - this.containment[ 1 ] + co.top, - this.containment[ 2 ] + co.left, - this.containment[ 3 ] + co.top - ]; - } else { - containment = this.containment; - } - - if (event.pageX - this.offset.click.left < containment[0]) { - pageX = containment[0] + this.offset.click.left; - } - if (event.pageY - this.offset.click.top < containment[1]) { - pageY = containment[1] + this.offset.click.top; - } - if (event.pageX - this.offset.click.left > containment[2]) { - pageX = containment[2] + this.offset.click.left; - } - if (event.pageY - this.offset.click.top > containment[3]) { - pageY = containment[3] + this.offset.click.top; - } - } - - if (o.grid) { - //Check for grid elements set to 0 to prevent divide by 0 error causing invalid argument errors in IE (see ticket #6950) - top = o.grid[1] ? this.originalPageY + Math.round((pageY - this.originalPageY) / o.grid[1]) * o.grid[1] : this.originalPageY; - pageY = containment ? ((top - this.offset.click.top >= containment[1] || top - this.offset.click.top > containment[3]) ? top : ((top - this.offset.click.top >= containment[1]) ? top - o.grid[1] : top + o.grid[1])) : top; - - left = o.grid[0] ? this.originalPageX + Math.round((pageX - this.originalPageX) / o.grid[0]) * o.grid[0] : this.originalPageX; - pageX = containment ? ((left - this.offset.click.left >= containment[0] || left - this.offset.click.left > containment[2]) ? left : ((left - this.offset.click.left >= containment[0]) ? left - o.grid[0] : left + o.grid[0])) : left; - } - - if ( o.axis === "y" ) { - pageX = this.originalPageX; - } - - if ( o.axis === "x" ) { - pageY = this.originalPageY; - } - } - - return { - top: ( - pageY - // The absolute mouse position - this.offset.click.top - // Click offset (relative to the element) - this.offset.relative.top - // Only for relative positioned nodes: Relative offset from element to offset parent - this.offset.parent.top + // The offsetParent's offset without borders (offset + border) - ( this.cssPosition === "fixed" ? -this.offset.scroll.top : ( scrollIsRootNode ? 0 : this.offset.scroll.top ) ) - ), - left: ( - pageX - // The absolute mouse position - this.offset.click.left - // Click offset (relative to the element) - this.offset.relative.left - // Only for relative positioned nodes: Relative offset from element to offset parent - this.offset.parent.left + // The offsetParent's offset without borders (offset + border) - ( this.cssPosition === "fixed" ? -this.offset.scroll.left : ( scrollIsRootNode ? 0 : this.offset.scroll.left ) ) - ) - }; - - }, - - _clear: function() { - this.helper.removeClass("ui-draggable-dragging"); - if (this.helper[0] !== this.element[0] && !this.cancelHelperRemoval) { - this.helper.remove(); - } - this.helper = null; - this.cancelHelperRemoval = false; - if ( this.destroyOnClear ) { - this.destroy(); - } - }, - - _normalizeRightBottom: function() { - if ( this.options.axis !== "y" && this.helper.css( "right" ) !== "auto" ) { - this.helper.width( this.helper.width() ); - this.helper.css( "right", "auto" ); - } - if ( this.options.axis !== "x" && this.helper.css( "bottom" ) !== "auto" ) { - this.helper.height( this.helper.height() ); - this.helper.css( "bottom", "auto" ); - } - }, - - // From now on bulk stuff - mainly helpers - - _trigger: function( type, event, ui ) { - ui = ui || this._uiHash(); - $.ui.plugin.call( this, type, [ event, ui, this ], true ); - - // Absolute position and offset (see #6884 ) have to be recalculated after plugins - if ( /^(drag|start|stop)/.test( type ) ) { - this.positionAbs = this._convertPositionTo( "absolute" ); - ui.offset = this.positionAbs; - } - return $.Widget.prototype._trigger.call( this, type, event, ui ); - }, - - plugins: {}, - - _uiHash: function() { - return { - helper: this.helper, - position: this.position, - originalPosition: this.originalPosition, - offset: this.positionAbs - }; - } - -}); - -$.ui.plugin.add( "draggable", "connectToSortable", { - start: function( event, ui, draggable ) { - var uiSortable = $.extend( {}, ui, { - item: draggable.element - }); - - draggable.sortables = []; - $( draggable.options.connectToSortable ).each(function() { - var sortable = $( this ).sortable( "instance" ); - - if ( sortable && !sortable.options.disabled ) { - draggable.sortables.push( sortable ); - - // refreshPositions is called at drag start to refresh the containerCache - // which is used in drag. This ensures it's initialized and synchronized - // with any changes that might have happened on the page since initialization. - sortable.refreshPositions(); - sortable._trigger("activate", event, uiSortable); - } - }); - }, - stop: function( event, ui, draggable ) { - var uiSortable = $.extend( {}, ui, { - item: draggable.element - }); - - draggable.cancelHelperRemoval = false; - - $.each( draggable.sortables, function() { - var sortable = this; - - if ( sortable.isOver ) { - sortable.isOver = 0; - - // Allow this sortable to handle removing the helper - draggable.cancelHelperRemoval = true; - sortable.cancelHelperRemoval = false; - - // Use _storedCSS To restore properties in the sortable, - // as this also handles revert (#9675) since the draggable - // may have modified them in unexpected ways (#8809) - sortable._storedCSS = { - position: sortable.placeholder.css( "position" ), - top: sortable.placeholder.css( "top" ), - left: sortable.placeholder.css( "left" ) - }; - - sortable._mouseStop(event); - - // Once drag has ended, the sortable should return to using - // its original helper, not the shared helper from draggable - sortable.options.helper = sortable.options._helper; - } else { - // Prevent this Sortable from removing the helper. - // However, don't set the draggable to remove the helper - // either as another connected Sortable may yet handle the removal. - sortable.cancelHelperRemoval = true; - - sortable._trigger( "deactivate", event, uiSortable ); - } - }); - }, - drag: function( event, ui, draggable ) { - $.each( draggable.sortables, function() { - var innermostIntersecting = false, - sortable = this; - - // Copy over variables that sortable's _intersectsWith uses - sortable.positionAbs = draggable.positionAbs; - sortable.helperProportions = draggable.helperProportions; - sortable.offset.click = draggable.offset.click; - - if ( sortable._intersectsWith( sortable.containerCache ) ) { - innermostIntersecting = true; - - $.each( draggable.sortables, function() { - // Copy over variables that sortable's _intersectsWith uses - this.positionAbs = draggable.positionAbs; - this.helperProportions = draggable.helperProportions; - this.offset.click = draggable.offset.click; - - if ( this !== sortable && - this._intersectsWith( this.containerCache ) && - $.contains( sortable.element[ 0 ], this.element[ 0 ] ) ) { - innermostIntersecting = false; - } - - return innermostIntersecting; - }); - } - - if ( innermostIntersecting ) { - // If it intersects, we use a little isOver variable and set it once, - // so that the move-in stuff gets fired only once. - if ( !sortable.isOver ) { - sortable.isOver = 1; - - // Store draggable's parent in case we need to reappend to it later. - draggable._parent = ui.helper.parent(); - - sortable.currentItem = ui.helper - .appendTo( sortable.element ) - .data( "ui-sortable-item", true ); - - // Store helper option to later restore it - sortable.options._helper = sortable.options.helper; - - sortable.options.helper = function() { - return ui.helper[ 0 ]; - }; - - // Fire the start events of the sortable with our passed browser event, - // and our own helper (so it doesn't create a new one) - event.target = sortable.currentItem[ 0 ]; - sortable._mouseCapture( event, true ); - sortable._mouseStart( event, true, true ); - - // Because the browser event is way off the new appended portlet, - // modify necessary variables to reflect the changes - sortable.offset.click.top = draggable.offset.click.top; - sortable.offset.click.left = draggable.offset.click.left; - sortable.offset.parent.left -= draggable.offset.parent.left - - sortable.offset.parent.left; - sortable.offset.parent.top -= draggable.offset.parent.top - - sortable.offset.parent.top; - - draggable._trigger( "toSortable", event ); - - // Inform draggable that the helper is in a valid drop zone, - // used solely in the revert option to handle "valid/invalid". - draggable.dropped = sortable.element; - - // Need to refreshPositions of all sortables in the case that - // adding to one sortable changes the location of the other sortables (#9675) - $.each( draggable.sortables, function() { - this.refreshPositions(); - }); - - // hack so receive/update callbacks work (mostly) - draggable.currentItem = draggable.element; - sortable.fromOutside = draggable; - } - - if ( sortable.currentItem ) { - sortable._mouseDrag( event ); - // Copy the sortable's position because the draggable's can potentially reflect - // a relative position, while sortable is always absolute, which the dragged - // element has now become. (#8809) - ui.position = sortable.position; - } - } else { - // If it doesn't intersect with the sortable, and it intersected before, - // we fake the drag stop of the sortable, but make sure it doesn't remove - // the helper by using cancelHelperRemoval. - if ( sortable.isOver ) { - - sortable.isOver = 0; - sortable.cancelHelperRemoval = true; - - // Calling sortable's mouseStop would trigger a revert, - // so revert must be temporarily false until after mouseStop is called. - sortable.options._revert = sortable.options.revert; - sortable.options.revert = false; - - sortable._trigger( "out", event, sortable._uiHash( sortable ) ); - sortable._mouseStop( event, true ); - - // restore sortable behaviors that were modfied - // when the draggable entered the sortable area (#9481) - sortable.options.revert = sortable.options._revert; - sortable.options.helper = sortable.options._helper; - - if ( sortable.placeholder ) { - sortable.placeholder.remove(); - } - - // Restore and recalculate the draggable's offset considering the sortable - // may have modified them in unexpected ways. (#8809, #10669) - ui.helper.appendTo( draggable._parent ); - draggable._refreshOffsets( event ); - ui.position = draggable._generatePosition( event, true ); - - draggable._trigger( "fromSortable", event ); - - // Inform draggable that the helper is no longer in a valid drop zone - draggable.dropped = false; - - // Need to refreshPositions of all sortables just in case removing - // from one sortable changes the location of other sortables (#9675) - $.each( draggable.sortables, function() { - this.refreshPositions(); - }); - } - } - }); - } -}); - -$.ui.plugin.add("draggable", "cursor", { - start: function( event, ui, instance ) { - var t = $( "body" ), - o = instance.options; - - if (t.css("cursor")) { - o._cursor = t.css("cursor"); - } - t.css("cursor", o.cursor); - }, - stop: function( event, ui, instance ) { - var o = instance.options; - if (o._cursor) { - $("body").css("cursor", o._cursor); - } - } -}); - -$.ui.plugin.add("draggable", "opacity", { - start: function( event, ui, instance ) { - var t = $( ui.helper ), - o = instance.options; - if (t.css("opacity")) { - o._opacity = t.css("opacity"); - } - t.css("opacity", o.opacity); - }, - stop: function( event, ui, instance ) { - var o = instance.options; - if (o._opacity) { - $(ui.helper).css("opacity", o._opacity); - } - } -}); - -$.ui.plugin.add("draggable", "scroll", { - start: function( event, ui, i ) { - if ( !i.scrollParentNotHidden ) { - i.scrollParentNotHidden = i.helper.scrollParent( false ); - } - - if ( i.scrollParentNotHidden[ 0 ] !== i.document[ 0 ] && i.scrollParentNotHidden[ 0 ].tagName !== "HTML" ) { - i.overflowOffset = i.scrollParentNotHidden.offset(); - } - }, - drag: function( event, ui, i ) { - - var o = i.options, - scrolled = false, - scrollParent = i.scrollParentNotHidden[ 0 ], - document = i.document[ 0 ]; - - if ( scrollParent !== document && scrollParent.tagName !== "HTML" ) { - if ( !o.axis || o.axis !== "x" ) { - if ( ( i.overflowOffset.top + scrollParent.offsetHeight ) - event.pageY < o.scrollSensitivity ) { - scrollParent.scrollTop = scrolled = scrollParent.scrollTop + o.scrollSpeed; - } else if ( event.pageY - i.overflowOffset.top < o.scrollSensitivity ) { - scrollParent.scrollTop = scrolled = scrollParent.scrollTop - o.scrollSpeed; - } - } - - if ( !o.axis || o.axis !== "y" ) { - if ( ( i.overflowOffset.left + scrollParent.offsetWidth ) - event.pageX < o.scrollSensitivity ) { - scrollParent.scrollLeft = scrolled = scrollParent.scrollLeft + o.scrollSpeed; - } else if ( event.pageX - i.overflowOffset.left < o.scrollSensitivity ) { - scrollParent.scrollLeft = scrolled = scrollParent.scrollLeft - o.scrollSpeed; - } - } - - } else { - - if (!o.axis || o.axis !== "x") { - if (event.pageY - $(document).scrollTop() < o.scrollSensitivity) { - scrolled = $(document).scrollTop($(document).scrollTop() - o.scrollSpeed); - } else if ($(window).height() - (event.pageY - $(document).scrollTop()) < o.scrollSensitivity) { - scrolled = $(document).scrollTop($(document).scrollTop() + o.scrollSpeed); - } - } - - if (!o.axis || o.axis !== "y") { - if (event.pageX - $(document).scrollLeft() < o.scrollSensitivity) { - scrolled = $(document).scrollLeft($(document).scrollLeft() - o.scrollSpeed); - } else if ($(window).width() - (event.pageX - $(document).scrollLeft()) < o.scrollSensitivity) { - scrolled = $(document).scrollLeft($(document).scrollLeft() + o.scrollSpeed); - } - } - - } - - if (scrolled !== false && $.ui.ddmanager && !o.dropBehaviour) { - $.ui.ddmanager.prepareOffsets(i, event); - } - - } -}); - -$.ui.plugin.add("draggable", "snap", { - start: function( event, ui, i ) { - - var o = i.options; - - i.snapElements = []; - - $(o.snap.constructor !== String ? ( o.snap.items || ":data(ui-draggable)" ) : o.snap).each(function() { - var $t = $(this), - $o = $t.offset(); - if (this !== i.element[0]) { - i.snapElements.push({ - item: this, - width: $t.outerWidth(), height: $t.outerHeight(), - top: $o.top, left: $o.left - }); - } - }); - - }, - drag: function( event, ui, inst ) { - - var ts, bs, ls, rs, l, r, t, b, i, first, - o = inst.options, - d = o.snapTolerance, - x1 = ui.offset.left, x2 = x1 + inst.helperProportions.width, - y1 = ui.offset.top, y2 = y1 + inst.helperProportions.height; - - for (i = inst.snapElements.length - 1; i >= 0; i--){ - - l = inst.snapElements[i].left - inst.margins.left; - r = l + inst.snapElements[i].width; - t = inst.snapElements[i].top - inst.margins.top; - b = t + inst.snapElements[i].height; - - if ( x2 < l - d || x1 > r + d || y2 < t - d || y1 > b + d || !$.contains( inst.snapElements[ i ].item.ownerDocument, inst.snapElements[ i ].item ) ) { - if (inst.snapElements[i].snapping) { - (inst.options.snap.release && inst.options.snap.release.call(inst.element, event, $.extend(inst._uiHash(), { snapItem: inst.snapElements[i].item }))); - } - inst.snapElements[i].snapping = false; - continue; - } - - if (o.snapMode !== "inner") { - ts = Math.abs(t - y2) <= d; - bs = Math.abs(b - y1) <= d; - ls = Math.abs(l - x2) <= d; - rs = Math.abs(r - x1) <= d; - if (ts) { - ui.position.top = inst._convertPositionTo("relative", { top: t - inst.helperProportions.height, left: 0 }).top; - } - if (bs) { - ui.position.top = inst._convertPositionTo("relative", { top: b, left: 0 }).top; - } - if (ls) { - ui.position.left = inst._convertPositionTo("relative", { top: 0, left: l - inst.helperProportions.width }).left; - } - if (rs) { - ui.position.left = inst._convertPositionTo("relative", { top: 0, left: r }).left; - } - } - - first = (ts || bs || ls || rs); - - if (o.snapMode !== "outer") { - ts = Math.abs(t - y1) <= d; - bs = Math.abs(b - y2) <= d; - ls = Math.abs(l - x1) <= d; - rs = Math.abs(r - x2) <= d; - if (ts) { - ui.position.top = inst._convertPositionTo("relative", { top: t, left: 0 }).top; - } - if (bs) { - ui.position.top = inst._convertPositionTo("relative", { top: b - inst.helperProportions.height, left: 0 }).top; - } - if (ls) { - ui.position.left = inst._convertPositionTo("relative", { top: 0, left: l }).left; - } - if (rs) { - ui.position.left = inst._convertPositionTo("relative", { top: 0, left: r - inst.helperProportions.width }).left; - } - } - - if (!inst.snapElements[i].snapping && (ts || bs || ls || rs || first)) { - (inst.options.snap.snap && inst.options.snap.snap.call(inst.element, event, $.extend(inst._uiHash(), { snapItem: inst.snapElements[i].item }))); - } - inst.snapElements[i].snapping = (ts || bs || ls || rs || first); - - } - - } -}); - -$.ui.plugin.add("draggable", "stack", { - start: function( event, ui, instance ) { - var min, - o = instance.options, - group = $.makeArray($(o.stack)).sort(function(a, b) { - return (parseInt($(a).css("zIndex"), 10) || 0) - (parseInt($(b).css("zIndex"), 10) || 0); - }); - - if (!group.length) { return; } - - min = parseInt($(group[0]).css("zIndex"), 10) || 0; - $(group).each(function(i) { - $(this).css("zIndex", min + i); - }); - this.css("zIndex", (min + group.length)); - } -}); - -$.ui.plugin.add("draggable", "zIndex", { - start: function( event, ui, instance ) { - var t = $( ui.helper ), - o = instance.options; - - if (t.css("zIndex")) { - o._zIndex = t.css("zIndex"); - } - t.css("zIndex", o.zIndex); - }, - stop: function( event, ui, instance ) { - var o = instance.options; - - if (o._zIndex) { - $(ui.helper).css("zIndex", o._zIndex); - } - } -}); - -var draggable = $.ui.draggable; - - -/*! - * jQuery UI Resizable 1.11.4 - * http://jqueryui.com - * - * Copyright jQuery Foundation and other contributors - * Released under the MIT license. - * http://jquery.org/license - * - * http://api.jqueryui.com/resizable/ - */ - - -$.widget("ui.resizable", $.ui.mouse, { - version: "1.11.4", - widgetEventPrefix: "resize", - options: { - alsoResize: false, - animate: false, - animateDuration: "slow", - animateEasing: "swing", - aspectRatio: false, - autoHide: false, - containment: false, - ghost: false, - grid: false, - handles: "e,s,se", - helper: false, - maxHeight: null, - maxWidth: null, - minHeight: 10, - minWidth: 10, - // See #7960 - zIndex: 90, - - // callbacks - resize: null, - start: null, - stop: null - }, - - _num: function( value ) { - return parseInt( value, 10 ) || 0; - }, - - _isNumber: function( value ) { - return !isNaN( parseInt( value, 10 ) ); - }, - - _hasScroll: function( el, a ) { - - if ( $( el ).css( "overflow" ) === "hidden") { - return false; - } - - var scroll = ( a && a === "left" ) ? "scrollLeft" : "scrollTop", - has = false; - - if ( el[ scroll ] > 0 ) { - return true; - } - - // TODO: determine which cases actually cause this to happen - // if the element doesn't have the scroll set, see if it's possible to - // set the scroll - el[ scroll ] = 1; - has = ( el[ scroll ] > 0 ); - el[ scroll ] = 0; - return has; - }, - - _create: function() { - - var n, i, handle, axis, hname, - that = this, - o = this.options; - this.element.addClass("ui-resizable"); - - $.extend(this, { - _aspectRatio: !!(o.aspectRatio), - aspectRatio: o.aspectRatio, - originalElement: this.element, - _proportionallyResizeElements: [], - _helper: o.helper || o.ghost || o.animate ? o.helper || "ui-resizable-helper" : null - }); - - // Wrap the element if it cannot hold child nodes - if (this.element[0].nodeName.match(/^(canvas|textarea|input|select|button|img)$/i)) { - - this.element.wrap( - $("<div class='ui-wrapper' style='overflow: hidden;'></div>").css({ - position: this.element.css("position"), - width: this.element.outerWidth(), - height: this.element.outerHeight(), - top: this.element.css("top"), - left: this.element.css("left") - }) - ); - - this.element = this.element.parent().data( - "ui-resizable", this.element.resizable( "instance" ) - ); - - this.elementIsWrapper = true; - - this.element.css({ - marginLeft: this.originalElement.css("marginLeft"), - marginTop: this.originalElement.css("marginTop"), - marginRight: this.originalElement.css("marginRight"), - marginBottom: this.originalElement.css("marginBottom") - }); - this.originalElement.css({ - marginLeft: 0, - marginTop: 0, - marginRight: 0, - marginBottom: 0 - }); - // support: Safari - // Prevent Safari textarea resize - this.originalResizeStyle = this.originalElement.css("resize"); - this.originalElement.css("resize", "none"); - - this._proportionallyResizeElements.push( this.originalElement.css({ - position: "static", - zoom: 1, - display: "block" - }) ); - - // support: IE9 - // avoid IE jump (hard set the margin) - this.originalElement.css({ margin: this.originalElement.css("margin") }); - - this._proportionallyResize(); - } - - this.handles = o.handles || - ( !$(".ui-resizable-handle", this.element).length ? - "e,s,se" : { - n: ".ui-resizable-n", - e: ".ui-resizable-e", - s: ".ui-resizable-s", - w: ".ui-resizable-w", - se: ".ui-resizable-se", - sw: ".ui-resizable-sw", - ne: ".ui-resizable-ne", - nw: ".ui-resizable-nw" - } ); - - this._handles = $(); - if ( this.handles.constructor === String ) { - - if ( this.handles === "all") { - this.handles = "n,e,s,w,se,sw,ne,nw"; - } - - n = this.handles.split(","); - this.handles = {}; - - for (i = 0; i < n.length; i++) { - - handle = $.trim(n[i]); - hname = "ui-resizable-" + handle; - axis = $("<div class='ui-resizable-handle " + hname + "'></div>"); - - axis.css({ zIndex: o.zIndex }); - - // TODO : What's going on here? - if ("se" === handle) { - axis.addClass("ui-icon ui-icon-gripsmall-diagonal-se"); - } - - this.handles[handle] = ".ui-resizable-" + handle; - this.element.append(axis); - } - - } - - this._renderAxis = function(target) { - - var i, axis, padPos, padWrapper; - - target = target || this.element; - - for (i in this.handles) { - - if (this.handles[i].constructor === String) { - this.handles[i] = this.element.children( this.handles[ i ] ).first().show(); - } else if ( this.handles[ i ].jquery || this.handles[ i ].nodeType ) { - this.handles[ i ] = $( this.handles[ i ] ); - this._on( this.handles[ i ], { "mousedown": that._mouseDown }); - } - - if (this.elementIsWrapper && this.originalElement[0].nodeName.match(/^(textarea|input|select|button)$/i)) { - - axis = $(this.handles[i], this.element); - - padWrapper = /sw|ne|nw|se|n|s/.test(i) ? axis.outerHeight() : axis.outerWidth(); - - padPos = [ "padding", - /ne|nw|n/.test(i) ? "Top" : - /se|sw|s/.test(i) ? "Bottom" : - /^e$/.test(i) ? "Right" : "Left" ].join(""); - - target.css(padPos, padWrapper); - - this._proportionallyResize(); - } - - this._handles = this._handles.add( this.handles[ i ] ); - } - }; - - // TODO: make renderAxis a prototype function - this._renderAxis(this.element); - - this._handles = this._handles.add( this.element.find( ".ui-resizable-handle" ) ); - this._handles.disableSelection(); - - this._handles.mouseover(function() { - if (!that.resizing) { - if (this.className) { - axis = this.className.match(/ui-resizable-(se|sw|ne|nw|n|e|s|w)/i); - } - that.axis = axis && axis[1] ? axis[1] : "se"; - } - }); - - if (o.autoHide) { - this._handles.hide(); - $(this.element) - .addClass("ui-resizable-autohide") - .mouseenter(function() { - if (o.disabled) { - return; - } - $(this).removeClass("ui-resizable-autohide"); - that._handles.show(); - }) - .mouseleave(function() { - if (o.disabled) { - return; - } - if (!that.resizing) { - $(this).addClass("ui-resizable-autohide"); - that._handles.hide(); - } - }); - } - - this._mouseInit(); - }, - - _destroy: function() { - - this._mouseDestroy(); - - var wrapper, - _destroy = function(exp) { - $(exp) - .removeClass("ui-resizable ui-resizable-disabled ui-resizable-resizing") - .removeData("resizable") - .removeData("ui-resizable") - .unbind(".resizable") - .find(".ui-resizable-handle") - .remove(); - }; - - // TODO: Unwrap at same DOM position - if (this.elementIsWrapper) { - _destroy(this.element); - wrapper = this.element; - this.originalElement.css({ - position: wrapper.css("position"), - width: wrapper.outerWidth(), - height: wrapper.outerHeight(), - top: wrapper.css("top"), - left: wrapper.css("left") - }).insertAfter( wrapper ); - wrapper.remove(); - } - - this.originalElement.css("resize", this.originalResizeStyle); - _destroy(this.originalElement); - - return this; - }, - - _mouseCapture: function(event) { - var i, handle, - capture = false; - - for (i in this.handles) { - handle = $(this.handles[i])[0]; - if (handle === event.target || $.contains(handle, event.target)) { - capture = true; - } - } - - return !this.options.disabled && capture; - }, - - _mouseStart: function(event) { - - var curleft, curtop, cursor, - o = this.options, - el = this.element; - - this.resizing = true; - - this._renderProxy(); - - curleft = this._num(this.helper.css("left")); - curtop = this._num(this.helper.css("top")); - - if (o.containment) { - curleft += $(o.containment).scrollLeft() || 0; - curtop += $(o.containment).scrollTop() || 0; - } - - this.offset = this.helper.offset(); - this.position = { left: curleft, top: curtop }; - - this.size = this._helper ? { - width: this.helper.width(), - height: this.helper.height() - } : { - width: el.width(), - height: el.height() - }; - - this.originalSize = this._helper ? { - width: el.outerWidth(), - height: el.outerHeight() - } : { - width: el.width(), - height: el.height() - }; - - this.sizeDiff = { - width: el.outerWidth() - el.width(), - height: el.outerHeight() - el.height() - }; - - this.originalPosition = { left: curleft, top: curtop }; - this.originalMousePosition = { left: event.pageX, top: event.pageY }; - - this.aspectRatio = (typeof o.aspectRatio === "number") ? - o.aspectRatio : - ((this.originalSize.width / this.originalSize.height) || 1); - - cursor = $(".ui-resizable-" + this.axis).css("cursor"); - $("body").css("cursor", cursor === "auto" ? this.axis + "-resize" : cursor); - - el.addClass("ui-resizable-resizing"); - this._propagate("start", event); - return true; - }, - - _mouseDrag: function(event) { - - var data, props, - smp = this.originalMousePosition, - a = this.axis, - dx = (event.pageX - smp.left) || 0, - dy = (event.pageY - smp.top) || 0, - trigger = this._change[a]; - - this._updatePrevProperties(); - - if (!trigger) { - return false; - } - - data = trigger.apply(this, [ event, dx, dy ]); - - this._updateVirtualBoundaries(event.shiftKey); - if (this._aspectRatio || event.shiftKey) { - data = this._updateRatio(data, event); - } - - data = this._respectSize(data, event); - - this._updateCache(data); - - this._propagate("resize", event); - - props = this._applyChanges(); - - if ( !this._helper && this._proportionallyResizeElements.length ) { - this._proportionallyResize(); - } - - if ( !$.isEmptyObject( props ) ) { - this._updatePrevProperties(); - this._trigger( "resize", event, this.ui() ); - this._applyChanges(); - } - - return false; - }, - - _mouseStop: function(event) { - - this.resizing = false; - var pr, ista, soffseth, soffsetw, s, left, top, - o = this.options, that = this; - - if (this._helper) { - - pr = this._proportionallyResizeElements; - ista = pr.length && (/textarea/i).test(pr[0].nodeName); - soffseth = ista && this._hasScroll(pr[0], "left") ? 0 : that.sizeDiff.height; - soffsetw = ista ? 0 : that.sizeDiff.width; - - s = { - width: (that.helper.width() - soffsetw), - height: (that.helper.height() - soffseth) - }; - left = (parseInt(that.element.css("left"), 10) + - (that.position.left - that.originalPosition.left)) || null; - top = (parseInt(that.element.css("top"), 10) + - (that.position.top - that.originalPosition.top)) || null; - - if (!o.animate) { - this.element.css($.extend(s, { top: top, left: left })); - } - - that.helper.height(that.size.height); - that.helper.width(that.size.width); - - if (this._helper && !o.animate) { - this._proportionallyResize(); - } - } - - $("body").css("cursor", "auto"); - - this.element.removeClass("ui-resizable-resizing"); - - this._propagate("stop", event); - - if (this._helper) { - this.helper.remove(); - } - - return false; - - }, - - _updatePrevProperties: function() { - this.prevPosition = { - top: this.position.top, - left: this.position.left - }; - this.prevSize = { - width: this.size.width, - height: this.size.height - }; - }, - - _applyChanges: function() { - var props = {}; - - if ( this.position.top !== this.prevPosition.top ) { - props.top = this.position.top + "px"; - } - if ( this.position.left !== this.prevPosition.left ) { - props.left = this.position.left + "px"; - } - if ( this.size.width !== this.prevSize.width ) { - props.width = this.size.width + "px"; - } - if ( this.size.height !== this.prevSize.height ) { - props.height = this.size.height + "px"; - } - - this.helper.css( props ); - - return props; - }, - - _updateVirtualBoundaries: function(forceAspectRatio) { - var pMinWidth, pMaxWidth, pMinHeight, pMaxHeight, b, - o = this.options; - - b = { - minWidth: this._isNumber(o.minWidth) ? o.minWidth : 0, - maxWidth: this._isNumber(o.maxWidth) ? o.maxWidth : Infinity, - minHeight: this._isNumber(o.minHeight) ? o.minHeight : 0, - maxHeight: this._isNumber(o.maxHeight) ? o.maxHeight : Infinity - }; - - if (this._aspectRatio || forceAspectRatio) { - pMinWidth = b.minHeight * this.aspectRatio; - pMinHeight = b.minWidth / this.aspectRatio; - pMaxWidth = b.maxHeight * this.aspectRatio; - pMaxHeight = b.maxWidth / this.aspectRatio; - - if (pMinWidth > b.minWidth) { - b.minWidth = pMinWidth; - } - if (pMinHeight > b.minHeight) { - b.minHeight = pMinHeight; - } - if (pMaxWidth < b.maxWidth) { - b.maxWidth = pMaxWidth; - } - if (pMaxHeight < b.maxHeight) { - b.maxHeight = pMaxHeight; - } - } - this._vBoundaries = b; - }, - - _updateCache: function(data) { - this.offset = this.helper.offset(); - if (this._isNumber(data.left)) { - this.position.left = data.left; - } - if (this._isNumber(data.top)) { - this.position.top = data.top; - } - if (this._isNumber(data.height)) { - this.size.height = data.height; - } - if (this._isNumber(data.width)) { - this.size.width = data.width; - } - }, - - _updateRatio: function( data ) { - - var cpos = this.position, - csize = this.size, - a = this.axis; - - if (this._isNumber(data.height)) { - data.width = (data.height * this.aspectRatio); - } else if (this._isNumber(data.width)) { - data.height = (data.width / this.aspectRatio); - } - - if (a === "sw") { - data.left = cpos.left + (csize.width - data.width); - data.top = null; - } - if (a === "nw") { - data.top = cpos.top + (csize.height - data.height); - data.left = cpos.left + (csize.width - data.width); - } - - return data; - }, - - _respectSize: function( data ) { - - var o = this._vBoundaries, - a = this.axis, - ismaxw = this._isNumber(data.width) && o.maxWidth && (o.maxWidth < data.width), - ismaxh = this._isNumber(data.height) && o.maxHeight && (o.maxHeight < data.height), - isminw = this._isNumber(data.width) && o.minWidth && (o.minWidth > data.width), - isminh = this._isNumber(data.height) && o.minHeight && (o.minHeight > data.height), - dw = this.originalPosition.left + this.originalSize.width, - dh = this.position.top + this.size.height, - cw = /sw|nw|w/.test(a), ch = /nw|ne|n/.test(a); - if (isminw) { - data.width = o.minWidth; - } - if (isminh) { - data.height = o.minHeight; - } - if (ismaxw) { - data.width = o.maxWidth; - } - if (ismaxh) { - data.height = o.maxHeight; - } - - if (isminw && cw) { - data.left = dw - o.minWidth; - } - if (ismaxw && cw) { - data.left = dw - o.maxWidth; - } - if (isminh && ch) { - data.top = dh - o.minHeight; - } - if (ismaxh && ch) { - data.top = dh - o.maxHeight; - } - - // Fixing jump error on top/left - bug #2330 - if (!data.width && !data.height && !data.left && data.top) { - data.top = null; - } else if (!data.width && !data.height && !data.top && data.left) { - data.left = null; - } - - return data; - }, - - _getPaddingPlusBorderDimensions: function( element ) { - var i = 0, - widths = [], - borders = [ - element.css( "borderTopWidth" ), - element.css( "borderRightWidth" ), - element.css( "borderBottomWidth" ), - element.css( "borderLeftWidth" ) - ], - paddings = [ - element.css( "paddingTop" ), - element.css( "paddingRight" ), - element.css( "paddingBottom" ), - element.css( "paddingLeft" ) - ]; - - for ( ; i < 4; i++ ) { - widths[ i ] = ( parseInt( borders[ i ], 10 ) || 0 ); - widths[ i ] += ( parseInt( paddings[ i ], 10 ) || 0 ); - } - - return { - height: widths[ 0 ] + widths[ 2 ], - width: widths[ 1 ] + widths[ 3 ] - }; - }, - - _proportionallyResize: function() { - - if (!this._proportionallyResizeElements.length) { - return; - } - - var prel, - i = 0, - element = this.helper || this.element; - - for ( ; i < this._proportionallyResizeElements.length; i++) { - - prel = this._proportionallyResizeElements[i]; - - // TODO: Seems like a bug to cache this.outerDimensions - // considering that we are in a loop. - if (!this.outerDimensions) { - this.outerDimensions = this._getPaddingPlusBorderDimensions( prel ); - } - - prel.css({ - height: (element.height() - this.outerDimensions.height) || 0, - width: (element.width() - this.outerDimensions.width) || 0 - }); - - } - - }, - - _renderProxy: function() { - - var el = this.element, o = this.options; - this.elementOffset = el.offset(); - - if (this._helper) { - - this.helper = this.helper || $("<div style='overflow:hidden;'></div>"); - - this.helper.addClass(this._helper).css({ - width: this.element.outerWidth() - 1, - height: this.element.outerHeight() - 1, - position: "absolute", - left: this.elementOffset.left + "px", - top: this.elementOffset.top + "px", - zIndex: ++o.zIndex //TODO: Don't modify option - }); - - this.helper - .appendTo("body") - .disableSelection(); - - } else { - this.helper = this.element; - } - - }, - - _change: { - e: function(event, dx) { - return { width: this.originalSize.width + dx }; - }, - w: function(event, dx) { - var cs = this.originalSize, sp = this.originalPosition; - return { left: sp.left + dx, width: cs.width - dx }; - }, - n: function(event, dx, dy) { - var cs = this.originalSize, sp = this.originalPosition; - return { top: sp.top + dy, height: cs.height - dy }; - }, - s: function(event, dx, dy) { - return { height: this.originalSize.height + dy }; - }, - se: function(event, dx, dy) { - return $.extend(this._change.s.apply(this, arguments), - this._change.e.apply(this, [ event, dx, dy ])); - }, - sw: function(event, dx, dy) { - return $.extend(this._change.s.apply(this, arguments), - this._change.w.apply(this, [ event, dx, dy ])); - }, - ne: function(event, dx, dy) { - return $.extend(this._change.n.apply(this, arguments), - this._change.e.apply(this, [ event, dx, dy ])); - }, - nw: function(event, dx, dy) { - return $.extend(this._change.n.apply(this, arguments), - this._change.w.apply(this, [ event, dx, dy ])); - } - }, - - _propagate: function(n, event) { - $.ui.plugin.call(this, n, [ event, this.ui() ]); - (n !== "resize" && this._trigger(n, event, this.ui())); - }, - - plugins: {}, - - ui: function() { - return { - originalElement: this.originalElement, - element: this.element, - helper: this.helper, - position: this.position, - size: this.size, - originalSize: this.originalSize, - originalPosition: this.originalPosition - }; - } - -}); - -/* - * Resizable Extensions - */ - -$.ui.plugin.add("resizable", "animate", { - - stop: function( event ) { - var that = $(this).resizable( "instance" ), - o = that.options, - pr = that._proportionallyResizeElements, - ista = pr.length && (/textarea/i).test(pr[0].nodeName), - soffseth = ista && that._hasScroll(pr[0], "left") ? 0 : that.sizeDiff.height, - soffsetw = ista ? 0 : that.sizeDiff.width, - style = { width: (that.size.width - soffsetw), height: (that.size.height - soffseth) }, - left = (parseInt(that.element.css("left"), 10) + - (that.position.left - that.originalPosition.left)) || null, - top = (parseInt(that.element.css("top"), 10) + - (that.position.top - that.originalPosition.top)) || null; - - that.element.animate( - $.extend(style, top && left ? { top: top, left: left } : {}), { - duration: o.animateDuration, - easing: o.animateEasing, - step: function() { - - var data = { - width: parseInt(that.element.css("width"), 10), - height: parseInt(that.element.css("height"), 10), - top: parseInt(that.element.css("top"), 10), - left: parseInt(that.element.css("left"), 10) - }; - - if (pr && pr.length) { - $(pr[0]).css({ width: data.width, height: data.height }); - } - - // propagating resize, and updating values for each animation step - that._updateCache(data); - that._propagate("resize", event); - - } - } - ); - } - -}); - -$.ui.plugin.add( "resizable", "containment", { - - start: function() { - var element, p, co, ch, cw, width, height, - that = $( this ).resizable( "instance" ), - o = that.options, - el = that.element, - oc = o.containment, - ce = ( oc instanceof $ ) ? oc.get( 0 ) : ( /parent/.test( oc ) ) ? el.parent().get( 0 ) : oc; - - if ( !ce ) { - return; - } - - that.containerElement = $( ce ); - - if ( /document/.test( oc ) || oc === document ) { - that.containerOffset = { - left: 0, - top: 0 - }; - that.containerPosition = { - left: 0, - top: 0 - }; - - that.parentData = { - element: $( document ), - left: 0, - top: 0, - width: $( document ).width(), - height: $( document ).height() || document.body.parentNode.scrollHeight - }; - } else { - element = $( ce ); - p = []; - $([ "Top", "Right", "Left", "Bottom" ]).each(function( i, name ) { - p[ i ] = that._num( element.css( "padding" + name ) ); - }); - - that.containerOffset = element.offset(); - that.containerPosition = element.position(); - that.containerSize = { - height: ( element.innerHeight() - p[ 3 ] ), - width: ( element.innerWidth() - p[ 1 ] ) - }; - - co = that.containerOffset; - ch = that.containerSize.height; - cw = that.containerSize.width; - width = ( that._hasScroll ( ce, "left" ) ? ce.scrollWidth : cw ); - height = ( that._hasScroll ( ce ) ? ce.scrollHeight : ch ) ; - - that.parentData = { - element: ce, - left: co.left, - top: co.top, - width: width, - height: height - }; - } - }, - - resize: function( event ) { - var woset, hoset, isParent, isOffsetRelative, - that = $( this ).resizable( "instance" ), - o = that.options, - co = that.containerOffset, - cp = that.position, - pRatio = that._aspectRatio || event.shiftKey, - cop = { - top: 0, - left: 0 - }, - ce = that.containerElement, - continueResize = true; - - if ( ce[ 0 ] !== document && ( /static/ ).test( ce.css( "position" ) ) ) { - cop = co; - } - - if ( cp.left < ( that._helper ? co.left : 0 ) ) { - that.size.width = that.size.width + - ( that._helper ? - ( that.position.left - co.left ) : - ( that.position.left - cop.left ) ); - - if ( pRatio ) { - that.size.height = that.size.width / that.aspectRatio; - continueResize = false; - } - that.position.left = o.helper ? co.left : 0; - } - - if ( cp.top < ( that._helper ? co.top : 0 ) ) { - that.size.height = that.size.height + - ( that._helper ? - ( that.position.top - co.top ) : - that.position.top ); - - if ( pRatio ) { - that.size.width = that.size.height * that.aspectRatio; - continueResize = false; - } - that.position.top = that._helper ? co.top : 0; - } - - isParent = that.containerElement.get( 0 ) === that.element.parent().get( 0 ); - isOffsetRelative = /relative|absolute/.test( that.containerElement.css( "position" ) ); - - if ( isParent && isOffsetRelative ) { - that.offset.left = that.parentData.left + that.position.left; - that.offset.top = that.parentData.top + that.position.top; - } else { - that.offset.left = that.element.offset().left; - that.offset.top = that.element.offset().top; - } - - woset = Math.abs( that.sizeDiff.width + - (that._helper ? - that.offset.left - cop.left : - (that.offset.left - co.left)) ); - - hoset = Math.abs( that.sizeDiff.height + - (that._helper ? - that.offset.top - cop.top : - (that.offset.top - co.top)) ); - - if ( woset + that.size.width >= that.parentData.width ) { - that.size.width = that.parentData.width - woset; - if ( pRatio ) { - that.size.height = that.size.width / that.aspectRatio; - continueResize = false; - } - } - - if ( hoset + that.size.height >= that.parentData.height ) { - that.size.height = that.parentData.height - hoset; - if ( pRatio ) { - that.size.width = that.size.height * that.aspectRatio; - continueResize = false; - } - } - - if ( !continueResize ) { - that.position.left = that.prevPosition.left; - that.position.top = that.prevPosition.top; - that.size.width = that.prevSize.width; - that.size.height = that.prevSize.height; - } - }, - - stop: function() { - var that = $( this ).resizable( "instance" ), - o = that.options, - co = that.containerOffset, - cop = that.containerPosition, - ce = that.containerElement, - helper = $( that.helper ), - ho = helper.offset(), - w = helper.outerWidth() - that.sizeDiff.width, - h = helper.outerHeight() - that.sizeDiff.height; - - if ( that._helper && !o.animate && ( /relative/ ).test( ce.css( "position" ) ) ) { - $( this ).css({ - left: ho.left - cop.left - co.left, - width: w, - height: h - }); - } - - if ( that._helper && !o.animate && ( /static/ ).test( ce.css( "position" ) ) ) { - $( this ).css({ - left: ho.left - cop.left - co.left, - width: w, - height: h - }); - } - } -}); - -$.ui.plugin.add("resizable", "alsoResize", { - - start: function() { - var that = $(this).resizable( "instance" ), - o = that.options; - - $(o.alsoResize).each(function() { - var el = $(this); - el.data("ui-resizable-alsoresize", { - width: parseInt(el.width(), 10), height: parseInt(el.height(), 10), - left: parseInt(el.css("left"), 10), top: parseInt(el.css("top"), 10) - }); - }); - }, - - resize: function(event, ui) { - var that = $(this).resizable( "instance" ), - o = that.options, - os = that.originalSize, - op = that.originalPosition, - delta = { - height: (that.size.height - os.height) || 0, - width: (that.size.width - os.width) || 0, - top: (that.position.top - op.top) || 0, - left: (that.position.left - op.left) || 0 - }; - - $(o.alsoResize).each(function() { - var el = $(this), start = $(this).data("ui-resizable-alsoresize"), style = {}, - css = el.parents(ui.originalElement[0]).length ? - [ "width", "height" ] : - [ "width", "height", "top", "left" ]; - - $.each(css, function(i, prop) { - var sum = (start[prop] || 0) + (delta[prop] || 0); - if (sum && sum >= 0) { - style[prop] = sum || null; - } - }); - - el.css(style); - }); - }, - - stop: function() { - $(this).removeData("resizable-alsoresize"); - } -}); - -$.ui.plugin.add("resizable", "ghost", { - - start: function() { - - var that = $(this).resizable( "instance" ), o = that.options, cs = that.size; - - that.ghost = that.originalElement.clone(); - that.ghost - .css({ - opacity: 0.25, - display: "block", - position: "relative", - height: cs.height, - width: cs.width, - margin: 0, - left: 0, - top: 0 - }) - .addClass("ui-resizable-ghost") - .addClass(typeof o.ghost === "string" ? o.ghost : ""); - - that.ghost.appendTo(that.helper); - - }, - - resize: function() { - var that = $(this).resizable( "instance" ); - if (that.ghost) { - that.ghost.css({ - position: "relative", - height: that.size.height, - width: that.size.width - }); - } - }, - - stop: function() { - var that = $(this).resizable( "instance" ); - if (that.ghost && that.helper) { - that.helper.get(0).removeChild(that.ghost.get(0)); - } - } - -}); - -$.ui.plugin.add("resizable", "grid", { - - resize: function() { - var outerDimensions, - that = $(this).resizable( "instance" ), - o = that.options, - cs = that.size, - os = that.originalSize, - op = that.originalPosition, - a = that.axis, - grid = typeof o.grid === "number" ? [ o.grid, o.grid ] : o.grid, - gridX = (grid[0] || 1), - gridY = (grid[1] || 1), - ox = Math.round((cs.width - os.width) / gridX) * gridX, - oy = Math.round((cs.height - os.height) / gridY) * gridY, - newWidth = os.width + ox, - newHeight = os.height + oy, - isMaxWidth = o.maxWidth && (o.maxWidth < newWidth), - isMaxHeight = o.maxHeight && (o.maxHeight < newHeight), - isMinWidth = o.minWidth && (o.minWidth > newWidth), - isMinHeight = o.minHeight && (o.minHeight > newHeight); - - o.grid = grid; - - if (isMinWidth) { - newWidth += gridX; - } - if (isMinHeight) { - newHeight += gridY; - } - if (isMaxWidth) { - newWidth -= gridX; - } - if (isMaxHeight) { - newHeight -= gridY; - } - - if (/^(se|s|e)$/.test(a)) { - that.size.width = newWidth; - that.size.height = newHeight; - } else if (/^(ne)$/.test(a)) { - that.size.width = newWidth; - that.size.height = newHeight; - that.position.top = op.top - oy; - } else if (/^(sw)$/.test(a)) { - that.size.width = newWidth; - that.size.height = newHeight; - that.position.left = op.left - ox; - } else { - if ( newHeight - gridY <= 0 || newWidth - gridX <= 0) { - outerDimensions = that._getPaddingPlusBorderDimensions( this ); - } - - if ( newHeight - gridY > 0 ) { - that.size.height = newHeight; - that.position.top = op.top - oy; - } else { - newHeight = gridY - outerDimensions.height; - that.size.height = newHeight; - that.position.top = op.top + os.height - newHeight; - } - if ( newWidth - gridX > 0 ) { - that.size.width = newWidth; - that.position.left = op.left - ox; - } else { - newWidth = gridX - outerDimensions.width; - that.size.width = newWidth; - that.position.left = op.left + os.width - newWidth; - } - } - } - -}); - -var resizable = $.ui.resizable; - - -/*! - * jQuery UI Dialog 1.11.4 - * http://jqueryui.com - * - * Copyright jQuery Foundation and other contributors - * Released under the MIT license. - * http://jquery.org/license - * - * http://api.jqueryui.com/dialog/ - */ - - -var dialog = $.widget( "ui.dialog", { - version: "1.11.4", - options: { - appendTo: "body", - autoOpen: true, - buttons: [], - closeOnEscape: true, - closeText: "Close", - dialogClass: "", - draggable: true, - hide: null, - height: "auto", - maxHeight: null, - maxWidth: null, - minHeight: 150, - minWidth: 150, - modal: false, - position: { - my: "center", - at: "center", - of: window, - collision: "fit", - // Ensure the titlebar is always visible - using: function( pos ) { - var topOffset = $( this ).css( pos ).offset().top; - if ( topOffset < 0 ) { - $( this ).css( "top", pos.top - topOffset ); - } - } - }, - resizable: true, - show: null, - title: null, - width: 300, - - // callbacks - beforeClose: null, - close: null, - drag: null, - dragStart: null, - dragStop: null, - focus: null, - open: null, - resize: null, - resizeStart: null, - resizeStop: null - }, - - sizeRelatedOptions: { - buttons: true, - height: true, - maxHeight: true, - maxWidth: true, - minHeight: true, - minWidth: true, - width: true - }, - - resizableRelatedOptions: { - maxHeight: true, - maxWidth: true, - minHeight: true, - minWidth: true - }, - - _create: function() { - this.originalCss = { - display: this.element[ 0 ].style.display, - width: this.element[ 0 ].style.width, - minHeight: this.element[ 0 ].style.minHeight, - maxHeight: this.element[ 0 ].style.maxHeight, - height: this.element[ 0 ].style.height - }; - this.originalPosition = { - parent: this.element.parent(), - index: this.element.parent().children().index( this.element ) - }; - this.originalTitle = this.element.attr( "title" ); - this.options.title = this.options.title || this.originalTitle; - - this._createWrapper(); - - this.element - .show() - .removeAttr( "title" ) - .addClass( "ui-dialog-content ui-widget-content" ) - .appendTo( this.uiDialog ); - - this._createTitlebar(); - this._createButtonPane(); - - if ( this.options.draggable && $.fn.draggable ) { - this._makeDraggable(); - } - if ( this.options.resizable && $.fn.resizable ) { - this._makeResizable(); - } - - this._isOpen = false; - - this._trackFocus(); - }, - - _init: function() { - if ( this.options.autoOpen ) { - this.open(); - } - }, - - _appendTo: function() { - var element = this.options.appendTo; - if ( element && (element.jquery || element.nodeType) ) { - return $( element ); - } - return this.document.find( element || "body" ).eq( 0 ); - }, - - _destroy: function() { - var next, - originalPosition = this.originalPosition; - - this._untrackInstance(); - this._destroyOverlay(); - - this.element - .removeUniqueId() - .removeClass( "ui-dialog-content ui-widget-content" ) - .css( this.originalCss ) - // Without detaching first, the following becomes really slow - .detach(); - - this.uiDialog.stop( true, true ).remove(); - - if ( this.originalTitle ) { - this.element.attr( "title", this.originalTitle ); - } - - next = originalPosition.parent.children().eq( originalPosition.index ); - // Don't try to place the dialog next to itself (#8613) - if ( next.length && next[ 0 ] !== this.element[ 0 ] ) { - next.before( this.element ); - } else { - originalPosition.parent.append( this.element ); - } - }, - - widget: function() { - return this.uiDialog; - }, - - disable: $.noop, - enable: $.noop, - - close: function( event ) { - var activeElement, - that = this; - - if ( !this._isOpen || this._trigger( "beforeClose", event ) === false ) { - return; - } - - this._isOpen = false; - this._focusedElement = null; - this._destroyOverlay(); - this._untrackInstance(); - - if ( !this.opener.filter( ":focusable" ).focus().length ) { - - // support: IE9 - // IE9 throws an "Unspecified error" accessing document.activeElement from an <iframe> - try { - activeElement = this.document[ 0 ].activeElement; - - // Support: IE9, IE10 - // If the <body> is blurred, IE will switch windows, see #4520 - if ( activeElement && activeElement.nodeName.toLowerCase() !== "body" ) { - - // Hiding a focused element doesn't trigger blur in WebKit - // so in case we have nothing to focus on, explicitly blur the active element - // https://bugs.webkit.org/show_bug.cgi?id=47182 - $( activeElement ).blur(); - } - } catch ( error ) {} - } - - this._hide( this.uiDialog, this.options.hide, function() { - that._trigger( "close", event ); - }); - }, - - isOpen: function() { - return this._isOpen; - }, - - moveToTop: function() { - this._moveToTop(); - }, - - _moveToTop: function( event, silent ) { - var moved = false, - zIndices = this.uiDialog.siblings( ".ui-front:visible" ).map(function() { - return +$( this ).css( "z-index" ); - }).get(), - zIndexMax = Math.max.apply( null, zIndices ); - - if ( zIndexMax >= +this.uiDialog.css( "z-index" ) ) { - this.uiDialog.css( "z-index", zIndexMax + 1 ); - moved = true; - } - - if ( moved && !silent ) { - this._trigger( "focus", event ); - } - return moved; - }, - - open: function() { - var that = this; - if ( this._isOpen ) { - if ( this._moveToTop() ) { - this._focusTabbable(); - } - return; - } - - this._isOpen = true; - this.opener = $( this.document[ 0 ].activeElement ); - - this._size(); - this._position(); - this._createOverlay(); - this._moveToTop( null, true ); - - // Ensure the overlay is moved to the top with the dialog, but only when - // opening. The overlay shouldn't move after the dialog is open so that - // modeless dialogs opened after the modal dialog stack properly. - if ( this.overlay ) { - this.overlay.css( "z-index", this.uiDialog.css( "z-index" ) - 1 ); - } - - this._show( this.uiDialog, this.options.show, function() { - that._focusTabbable(); - that._trigger( "focus" ); - }); - - // Track the dialog immediately upon openening in case a focus event - // somehow occurs outside of the dialog before an element inside the - // dialog is focused (#10152) - this._makeFocusTarget(); - - this._trigger( "open" ); - }, - - _focusTabbable: function() { - // Set focus to the first match: - // 1. An element that was focused previously - // 2. First element inside the dialog matching [autofocus] - // 3. Tabbable element inside the content element - // 4. Tabbable element inside the buttonpane - // 5. The close button - // 6. The dialog itself - var hasFocus = this._focusedElement; - if ( !hasFocus ) { - hasFocus = this.element.find( "[autofocus]" ); - } - if ( !hasFocus.length ) { - hasFocus = this.element.find( ":tabbable" ); - } - if ( !hasFocus.length ) { - hasFocus = this.uiDialogButtonPane.find( ":tabbable" ); - } - if ( !hasFocus.length ) { - hasFocus = this.uiDialogTitlebarClose.filter( ":tabbable" ); - } - if ( !hasFocus.length ) { - hasFocus = this.uiDialog; - } - hasFocus.eq( 0 ).focus(); - }, - - _keepFocus: function( event ) { - function checkFocus() { - var activeElement = this.document[0].activeElement, - isActive = this.uiDialog[0] === activeElement || - $.contains( this.uiDialog[0], activeElement ); - if ( !isActive ) { - this._focusTabbable(); - } - } - event.preventDefault(); - checkFocus.call( this ); - // support: IE - // IE <= 8 doesn't prevent moving focus even with event.preventDefault() - // so we check again later - this._delay( checkFocus ); - }, - - _createWrapper: function() { - this.uiDialog = $("<div>") - .addClass( "ui-dialog ui-widget ui-widget-content ui-corner-all ui-front " + - this.options.dialogClass ) - .hide() - .attr({ - // Setting tabIndex makes the div focusable - tabIndex: -1, - role: "dialog" - }) - .appendTo( this._appendTo() ); - - this._on( this.uiDialog, { - keydown: function( event ) { - if ( this.options.closeOnEscape && !event.isDefaultPrevented() && event.keyCode && - event.keyCode === $.ui.keyCode.ESCAPE ) { - event.preventDefault(); - this.close( event ); - return; - } - - // prevent tabbing out of dialogs - if ( event.keyCode !== $.ui.keyCode.TAB || event.isDefaultPrevented() ) { - return; - } - var tabbables = this.uiDialog.find( ":tabbable" ), - first = tabbables.filter( ":first" ), - last = tabbables.filter( ":last" ); - - if ( ( event.target === last[0] || event.target === this.uiDialog[0] ) && !event.shiftKey ) { - this._delay(function() { - first.focus(); - }); - event.preventDefault(); - } else if ( ( event.target === first[0] || event.target === this.uiDialog[0] ) && event.shiftKey ) { - this._delay(function() { - last.focus(); - }); - event.preventDefault(); - } - }, - mousedown: function( event ) { - if ( this._moveToTop( event ) ) { - this._focusTabbable(); - } - } - }); - - // We assume that any existing aria-describedby attribute means - // that the dialog content is marked up properly - // otherwise we brute force the content as the description - if ( !this.element.find( "[aria-describedby]" ).length ) { - this.uiDialog.attr({ - "aria-describedby": this.element.uniqueId().attr( "id" ) - }); - } - }, - - _createTitlebar: function() { - var uiDialogTitle; - - this.uiDialogTitlebar = $( "<div>" ) - .addClass( "ui-dialog-titlebar ui-widget-header ui-corner-all ui-helper-clearfix" ) - .prependTo( this.uiDialog ); - this._on( this.uiDialogTitlebar, { - mousedown: function( event ) { - // Don't prevent click on close button (#8838) - // Focusing a dialog that is partially scrolled out of view - // causes the browser to scroll it into view, preventing the click event - if ( !$( event.target ).closest( ".ui-dialog-titlebar-close" ) ) { - // Dialog isn't getting focus when dragging (#8063) - this.uiDialog.focus(); - } - } - }); - - // support: IE - // Use type="button" to prevent enter keypresses in textboxes from closing the - // dialog in IE (#9312) - this.uiDialogTitlebarClose = $( "<button type='button'></button>" ) - .button({ - label: this.options.closeText, - icons: { - primary: "ui-icon-closethick" - }, - text: false - }) - .addClass( "ui-dialog-titlebar-close" ) - .appendTo( this.uiDialogTitlebar ); - this._on( this.uiDialogTitlebarClose, { - click: function( event ) { - event.preventDefault(); - this.close( event ); - } - }); - - uiDialogTitle = $( "<span>" ) - .uniqueId() - .addClass( "ui-dialog-title" ) - .prependTo( this.uiDialogTitlebar ); - this._title( uiDialogTitle ); - - this.uiDialog.attr({ - "aria-labelledby": uiDialogTitle.attr( "id" ) - }); - }, - - _title: function( title ) { - if ( !this.options.title ) { - title.html( "&#160;" ); - } - title.text( this.options.title ); - }, - - _createButtonPane: function() { - this.uiDialogButtonPane = $( "<div>" ) - .addClass( "ui-dialog-buttonpane ui-widget-content ui-helper-clearfix" ); - - this.uiButtonSet = $( "<div>" ) - .addClass( "ui-dialog-buttonset" ) - .appendTo( this.uiDialogButtonPane ); - - this._createButtons(); - }, - - _createButtons: function() { - var that = this, - buttons = this.options.buttons; - - // if we already have a button pane, remove it - this.uiDialogButtonPane.remove(); - this.uiButtonSet.empty(); - - if ( $.isEmptyObject( buttons ) || ($.isArray( buttons ) && !buttons.length) ) { - this.uiDialog.removeClass( "ui-dialog-buttons" ); - return; - } - - $.each( buttons, function( name, props ) { - var click, buttonOptions; - props = $.isFunction( props ) ? - { click: props, text: name } : - props; - // Default to a non-submitting button - props = $.extend( { type: "button" }, props ); - // Change the context for the click callback to be the main element - click = props.click; - props.click = function() { - click.apply( that.element[ 0 ], arguments ); - }; - buttonOptions = { - icons: props.icons, - text: props.showText - }; - delete props.icons; - delete props.showText; - $( "<button></button>", props ) - .button( buttonOptions ) - .appendTo( that.uiButtonSet ); - }); - this.uiDialog.addClass( "ui-dialog-buttons" ); - this.uiDialogButtonPane.appendTo( this.uiDialog ); - }, - - _makeDraggable: function() { - var that = this, - options = this.options; - - function filteredUi( ui ) { - return { - position: ui.position, - offset: ui.offset - }; - } - - this.uiDialog.draggable({ - cancel: ".ui-dialog-content, .ui-dialog-titlebar-close", - handle: ".ui-dialog-titlebar", - containment: "document", - start: function( event, ui ) { - $( this ).addClass( "ui-dialog-dragging" ); - that._blockFrames(); - that._trigger( "dragStart", event, filteredUi( ui ) ); - }, - drag: function( event, ui ) { - that._trigger( "drag", event, filteredUi( ui ) ); - }, - stop: function( event, ui ) { - var left = ui.offset.left - that.document.scrollLeft(), - top = ui.offset.top - that.document.scrollTop(); - - options.position = { - my: "left top", - at: "left" + (left >= 0 ? "+" : "") + left + " " + - "top" + (top >= 0 ? "+" : "") + top, - of: that.window - }; - $( this ).removeClass( "ui-dialog-dragging" ); - that._unblockFrames(); - that._trigger( "dragStop", event, filteredUi( ui ) ); - } - }); - }, - - _makeResizable: function() { - var that = this, - options = this.options, - handles = options.resizable, - // .ui-resizable has position: relative defined in the stylesheet - // but dialogs have to use absolute or fixed positioning - position = this.uiDialog.css("position"), - resizeHandles = typeof handles === "string" ? - handles : - "n,e,s,w,se,sw,ne,nw"; - - function filteredUi( ui ) { - return { - originalPosition: ui.originalPosition, - originalSize: ui.originalSize, - position: ui.position, - size: ui.size - }; - } - - this.uiDialog.resizable({ - cancel: ".ui-dialog-content", - containment: "document", - alsoResize: this.element, - maxWidth: options.maxWidth, - maxHeight: options.maxHeight, - minWidth: options.minWidth, - minHeight: this._minHeight(), - handles: resizeHandles, - start: function( event, ui ) { - $( this ).addClass( "ui-dialog-resizing" ); - that._blockFrames(); - that._trigger( "resizeStart", event, filteredUi( ui ) ); - }, - resize: function( event, ui ) { - that._trigger( "resize", event, filteredUi( ui ) ); - }, - stop: function( event, ui ) { - var offset = that.uiDialog.offset(), - left = offset.left - that.document.scrollLeft(), - top = offset.top - that.document.scrollTop(); - - options.height = that.uiDialog.height(); - options.width = that.uiDialog.width(); - options.position = { - my: "left top", - at: "left" + (left >= 0 ? "+" : "") + left + " " + - "top" + (top >= 0 ? "+" : "") + top, - of: that.window - }; - $( this ).removeClass( "ui-dialog-resizing" ); - that._unblockFrames(); - that._trigger( "resizeStop", event, filteredUi( ui ) ); - } - }) - .css( "position", position ); - }, - - _trackFocus: function() { - this._on( this.widget(), { - focusin: function( event ) { - this._makeFocusTarget(); - this._focusedElement = $( event.target ); - } - }); - }, - - _makeFocusTarget: function() { - this._untrackInstance(); - this._trackingInstances().unshift( this ); - }, - - _untrackInstance: function() { - var instances = this._trackingInstances(), - exists = $.inArray( this, instances ); - if ( exists !== -1 ) { - instances.splice( exists, 1 ); - } - }, - - _trackingInstances: function() { - var instances = this.document.data( "ui-dialog-instances" ); - if ( !instances ) { - instances = []; - this.document.data( "ui-dialog-instances", instances ); - } - return instances; - }, - - _minHeight: function() { - var options = this.options; - - return options.height === "auto" ? - options.minHeight : - Math.min( options.minHeight, options.height ); - }, - - _position: function() { - // Need to show the dialog to get the actual offset in the position plugin - var isVisible = this.uiDialog.is( ":visible" ); - if ( !isVisible ) { - this.uiDialog.show(); - } - this.uiDialog.position( this.options.position ); - if ( !isVisible ) { - this.uiDialog.hide(); - } - }, - - _setOptions: function( options ) { - var that = this, - resize = false, - resizableOptions = {}; - - $.each( options, function( key, value ) { - that._setOption( key, value ); - - if ( key in that.sizeRelatedOptions ) { - resize = true; - } - if ( key in that.resizableRelatedOptions ) { - resizableOptions[ key ] = value; - } - }); - - if ( resize ) { - this._size(); - this._position(); - } - if ( this.uiDialog.is( ":data(ui-resizable)" ) ) { - this.uiDialog.resizable( "option", resizableOptions ); - } - }, - - _setOption: function( key, value ) { - var isDraggable, isResizable, - uiDialog = this.uiDialog; - - if ( key === "dialogClass" ) { - uiDialog - .removeClass( this.options.dialogClass ) - .addClass( value ); - } - - if ( key === "disabled" ) { - return; - } - - this._super( key, value ); - - if ( key === "appendTo" ) { - this.uiDialog.appendTo( this._appendTo() ); - } - - if ( key === "buttons" ) { - this._createButtons(); - } - - if ( key === "closeText" ) { - this.uiDialogTitlebarClose.button({ - // Ensure that we always pass a string - label: "" + value - }); - } - - if ( key === "draggable" ) { - isDraggable = uiDialog.is( ":data(ui-draggable)" ); - if ( isDraggable && !value ) { - uiDialog.draggable( "destroy" ); - } - - if ( !isDraggable && value ) { - this._makeDraggable(); - } - } - - if ( key === "position" ) { - this._position(); - } - - if ( key === "resizable" ) { - // currently resizable, becoming non-resizable - isResizable = uiDialog.is( ":data(ui-resizable)" ); - if ( isResizable && !value ) { - uiDialog.resizable( "destroy" ); - } - - // currently resizable, changing handles - if ( isResizable && typeof value === "string" ) { - uiDialog.resizable( "option", "handles", value ); - } - - // currently non-resizable, becoming resizable - if ( !isResizable && value !== false ) { - this._makeResizable(); - } - } - - if ( key === "title" ) { - this._title( this.uiDialogTitlebar.find( ".ui-dialog-title" ) ); - } - }, - - _size: function() { - // If the user has resized the dialog, the .ui-dialog and .ui-dialog-content - // divs will both have width and height set, so we need to reset them - var nonContentHeight, minContentHeight, maxContentHeight, - options = this.options; - - // Reset content sizing - this.element.show().css({ - width: "auto", - minHeight: 0, - maxHeight: "none", - height: 0 - }); - - if ( options.minWidth > options.width ) { - options.width = options.minWidth; - } - - // reset wrapper sizing - // determine the height of all the non-content elements - nonContentHeight = this.uiDialog.css({ - height: "auto", - width: options.width - }) - .outerHeight(); - minContentHeight = Math.max( 0, options.minHeight - nonContentHeight ); - maxContentHeight = typeof options.maxHeight === "number" ? - Math.max( 0, options.maxHeight - nonContentHeight ) : - "none"; - - if ( options.height === "auto" ) { - this.element.css({ - minHeight: minContentHeight, - maxHeight: maxContentHeight, - height: "auto" - }); - } else { - this.element.height( Math.max( 0, options.height - nonContentHeight ) ); - } - - if ( this.uiDialog.is( ":data(ui-resizable)" ) ) { - this.uiDialog.resizable( "option", "minHeight", this._minHeight() ); - } - }, - - _blockFrames: function() { - this.iframeBlocks = this.document.find( "iframe" ).map(function() { - var iframe = $( this ); - - return $( "<div>" ) - .css({ - position: "absolute", - width: iframe.outerWidth(), - height: iframe.outerHeight() - }) - .appendTo( iframe.parent() ) - .offset( iframe.offset() )[0]; - }); - }, - - _unblockFrames: function() { - if ( this.iframeBlocks ) { - this.iframeBlocks.remove(); - delete this.iframeBlocks; - } - }, - - _allowInteraction: function( event ) { - if ( $( event.target ).closest( ".ui-dialog" ).length ) { - return true; - } - - // TODO: Remove hack when datepicker implements - // the .ui-front logic (#8989) - return !!$( event.target ).closest( ".ui-datepicker" ).length; - }, - - _createOverlay: function() { - if ( !this.options.modal ) { - return; - } - - // We use a delay in case the overlay is created from an - // event that we're going to be cancelling (#2804) - var isOpening = true; - this._delay(function() { - isOpening = false; - }); - - if ( !this.document.data( "ui-dialog-overlays" ) ) { - - // Prevent use of anchors and inputs - // Using _on() for an event handler shared across many instances is - // safe because the dialogs stack and must be closed in reverse order - this._on( this.document, { - focusin: function( event ) { - if ( isOpening ) { - return; - } - - if ( !this._allowInteraction( event ) ) { - event.preventDefault(); - this._trackingInstances()[ 0 ]._focusTabbable(); - } - } - }); - } - - this.overlay = $( "<div>" ) - .addClass( "ui-widget-overlay ui-front" ) - .appendTo( this._appendTo() ); - this._on( this.overlay, { - mousedown: "_keepFocus" - }); - this.document.data( "ui-dialog-overlays", - (this.document.data( "ui-dialog-overlays" ) || 0) + 1 ); - }, - - _destroyOverlay: function() { - if ( !this.options.modal ) { - return; - } - - if ( this.overlay ) { - var overlays = this.document.data( "ui-dialog-overlays" ) - 1; - - if ( !overlays ) { - this.document - .unbind( "focusin" ) - .removeData( "ui-dialog-overlays" ); - } else { - this.document.data( "ui-dialog-overlays", overlays ); - } - - this.overlay.remove(); - this.overlay = null; - } - } -}); - - -/*! - * jQuery UI Droppable 1.11.4 - * http://jqueryui.com - * - * Copyright jQuery Foundation and other contributors - * Released under the MIT license. - * http://jquery.org/license - * - * http://api.jqueryui.com/droppable/ - */ - - -$.widget( "ui.droppable", { - version: "1.11.4", - widgetEventPrefix: "drop", - options: { - accept: "*", - activeClass: false, - addClasses: true, - greedy: false, - hoverClass: false, - scope: "default", - tolerance: "intersect", - - // callbacks - activate: null, - deactivate: null, - drop: null, - out: null, - over: null - }, - _create: function() { - - var proportions, - o = this.options, - accept = o.accept; - - this.isover = false; - this.isout = true; - - this.accept = $.isFunction( accept ) ? accept : function( d ) { - return d.is( accept ); - }; - - this.proportions = function( /* valueToWrite */ ) { - if ( arguments.length ) { - // Store the droppable's proportions - proportions = arguments[ 0 ]; - } else { - // Retrieve or derive the droppable's proportions - return proportions ? - proportions : - proportions = { - width: this.element[ 0 ].offsetWidth, - height: this.element[ 0 ].offsetHeight - }; - } - }; - - this._addToManager( o.scope ); - - o.addClasses && this.element.addClass( "ui-droppable" ); - - }, - - _addToManager: function( scope ) { - // Add the reference and positions to the manager - $.ui.ddmanager.droppables[ scope ] = $.ui.ddmanager.droppables[ scope ] || []; - $.ui.ddmanager.droppables[ scope ].push( this ); - }, - - _splice: function( drop ) { - var i = 0; - for ( ; i < drop.length; i++ ) { - if ( drop[ i ] === this ) { - drop.splice( i, 1 ); - } - } - }, - - _destroy: function() { - var drop = $.ui.ddmanager.droppables[ this.options.scope ]; - - this._splice( drop ); - - this.element.removeClass( "ui-droppable ui-droppable-disabled" ); - }, - - _setOption: function( key, value ) { - - if ( key === "accept" ) { - this.accept = $.isFunction( value ) ? value : function( d ) { - return d.is( value ); - }; - } else if ( key === "scope" ) { - var drop = $.ui.ddmanager.droppables[ this.options.scope ]; - - this._splice( drop ); - this._addToManager( value ); - } - - this._super( key, value ); - }, - - _activate: function( event ) { - var draggable = $.ui.ddmanager.current; - if ( this.options.activeClass ) { - this.element.addClass( this.options.activeClass ); - } - if ( draggable ){ - this._trigger( "activate", event, this.ui( draggable ) ); - } - }, - - _deactivate: function( event ) { - var draggable = $.ui.ddmanager.current; - if ( this.options.activeClass ) { - this.element.removeClass( this.options.activeClass ); - } - if ( draggable ){ - this._trigger( "deactivate", event, this.ui( draggable ) ); - } - }, - - _over: function( event ) { - - var draggable = $.ui.ddmanager.current; - - // Bail if draggable and droppable are same element - if ( !draggable || ( draggable.currentItem || draggable.element )[ 0 ] === this.element[ 0 ] ) { - return; - } - - if ( this.accept.call( this.element[ 0 ], ( draggable.currentItem || draggable.element ) ) ) { - if ( this.options.hoverClass ) { - this.element.addClass( this.options.hoverClass ); - } - this._trigger( "over", event, this.ui( draggable ) ); - } - - }, - - _out: function( event ) { - - var draggable = $.ui.ddmanager.current; - - // Bail if draggable and droppable are same element - if ( !draggable || ( draggable.currentItem || draggable.element )[ 0 ] === this.element[ 0 ] ) { - return; - } - - if ( this.accept.call( this.element[ 0 ], ( draggable.currentItem || draggable.element ) ) ) { - if ( this.options.hoverClass ) { - this.element.removeClass( this.options.hoverClass ); - } - this._trigger( "out", event, this.ui( draggable ) ); - } - - }, - - _drop: function( event, custom ) { - - var draggable = custom || $.ui.ddmanager.current, - childrenIntersection = false; - - // Bail if draggable and droppable are same element - if ( !draggable || ( draggable.currentItem || draggable.element )[ 0 ] === this.element[ 0 ] ) { - return false; - } - - this.element.find( ":data(ui-droppable)" ).not( ".ui-draggable-dragging" ).each(function() { - var inst = $( this ).droppable( "instance" ); - if ( - inst.options.greedy && - !inst.options.disabled && - inst.options.scope === draggable.options.scope && - inst.accept.call( inst.element[ 0 ], ( draggable.currentItem || draggable.element ) ) && - $.ui.intersect( draggable, $.extend( inst, { offset: inst.element.offset() } ), inst.options.tolerance, event ) - ) { childrenIntersection = true; return false; } - }); - if ( childrenIntersection ) { - return false; - } - - if ( this.accept.call( this.element[ 0 ], ( draggable.currentItem || draggable.element ) ) ) { - if ( this.options.activeClass ) { - this.element.removeClass( this.options.activeClass ); - } - if ( this.options.hoverClass ) { - this.element.removeClass( this.options.hoverClass ); - } - this._trigger( "drop", event, this.ui( draggable ) ); - return this.element; - } - - return false; - - }, - - ui: function( c ) { - return { - draggable: ( c.currentItem || c.element ), - helper: c.helper, - position: c.position, - offset: c.positionAbs - }; - } - -}); - -$.ui.intersect = (function() { - function isOverAxis( x, reference, size ) { - return ( x >= reference ) && ( x < ( reference + size ) ); - } - - return function( draggable, droppable, toleranceMode, event ) { - - if ( !droppable.offset ) { - return false; - } - - var x1 = ( draggable.positionAbs || draggable.position.absolute ).left + draggable.margins.left, - y1 = ( draggable.positionAbs || draggable.position.absolute ).top + draggable.margins.top, - x2 = x1 + draggable.helperProportions.width, - y2 = y1 + draggable.helperProportions.height, - l = droppable.offset.left, - t = droppable.offset.top, - r = l + droppable.proportions().width, - b = t + droppable.proportions().height; - - switch ( toleranceMode ) { - case "fit": - return ( l <= x1 && x2 <= r && t <= y1 && y2 <= b ); - case "intersect": - return ( l < x1 + ( draggable.helperProportions.width / 2 ) && // Right Half - x2 - ( draggable.helperProportions.width / 2 ) < r && // Left Half - t < y1 + ( draggable.helperProportions.height / 2 ) && // Bottom Half - y2 - ( draggable.helperProportions.height / 2 ) < b ); // Top Half - case "pointer": - return isOverAxis( event.pageY, t, droppable.proportions().height ) && isOverAxis( event.pageX, l, droppable.proportions().width ); - case "touch": - return ( - ( y1 >= t && y1 <= b ) || // Top edge touching - ( y2 >= t && y2 <= b ) || // Bottom edge touching - ( y1 < t && y2 > b ) // Surrounded vertically - ) && ( - ( x1 >= l && x1 <= r ) || // Left edge touching - ( x2 >= l && x2 <= r ) || // Right edge touching - ( x1 < l && x2 > r ) // Surrounded horizontally - ); - default: - return false; - } - }; -})(); - -/* - This manager tracks offsets of draggables and droppables -*/ -$.ui.ddmanager = { - current: null, - droppables: { "default": [] }, - prepareOffsets: function( t, event ) { - - var i, j, - m = $.ui.ddmanager.droppables[ t.options.scope ] || [], - type = event ? event.type : null, // workaround for #2317 - list = ( t.currentItem || t.element ).find( ":data(ui-droppable)" ).addBack(); - - droppablesLoop: for ( i = 0; i < m.length; i++ ) { - - // No disabled and non-accepted - if ( m[ i ].options.disabled || ( t && !m[ i ].accept.call( m[ i ].element[ 0 ], ( t.currentItem || t.element ) ) ) ) { - continue; - } - - // Filter out elements in the current dragged item - for ( j = 0; j < list.length; j++ ) { - if ( list[ j ] === m[ i ].element[ 0 ] ) { - m[ i ].proportions().height = 0; - continue droppablesLoop; - } - } - - m[ i ].visible = m[ i ].element.css( "display" ) !== "none"; - if ( !m[ i ].visible ) { - continue; - } - - // Activate the droppable if used directly from draggables - if ( type === "mousedown" ) { - m[ i ]._activate.call( m[ i ], event ); - } - - m[ i ].offset = m[ i ].element.offset(); - m[ i ].proportions({ width: m[ i ].element[ 0 ].offsetWidth, height: m[ i ].element[ 0 ].offsetHeight }); - - } - - }, - drop: function( draggable, event ) { - - var dropped = false; - // Create a copy of the droppables in case the list changes during the drop (#9116) - $.each( ( $.ui.ddmanager.droppables[ draggable.options.scope ] || [] ).slice(), function() { - - if ( !this.options ) { - return; - } - if ( !this.options.disabled && this.visible && $.ui.intersect( draggable, this, this.options.tolerance, event ) ) { - dropped = this._drop.call( this, event ) || dropped; - } - - if ( !this.options.disabled && this.visible && this.accept.call( this.element[ 0 ], ( draggable.currentItem || draggable.element ) ) ) { - this.isout = true; - this.isover = false; - this._deactivate.call( this, event ); - } - - }); - return dropped; - - }, - dragStart: function( draggable, event ) { - // Listen for scrolling so that if the dragging causes scrolling the position of the droppables can be recalculated (see #5003) - draggable.element.parentsUntil( "body" ).bind( "scroll.droppable", function() { - if ( !draggable.options.refreshPositions ) { - $.ui.ddmanager.prepareOffsets( draggable, event ); - } - }); - }, - drag: function( draggable, event ) { - - // If you have a highly dynamic page, you might try this option. It renders positions every time you move the mouse. - if ( draggable.options.refreshPositions ) { - $.ui.ddmanager.prepareOffsets( draggable, event ); - } - - // Run through all droppables and check their positions based on specific tolerance options - $.each( $.ui.ddmanager.droppables[ draggable.options.scope ] || [], function() { - - if ( this.options.disabled || this.greedyChild || !this.visible ) { - return; - } - - var parentInstance, scope, parent, - intersects = $.ui.intersect( draggable, this, this.options.tolerance, event ), - c = !intersects && this.isover ? "isout" : ( intersects && !this.isover ? "isover" : null ); - if ( !c ) { - return; - } - - if ( this.options.greedy ) { - // find droppable parents with same scope - scope = this.options.scope; - parent = this.element.parents( ":data(ui-droppable)" ).filter(function() { - return $( this ).droppable( "instance" ).options.scope === scope; - }); - - if ( parent.length ) { - parentInstance = $( parent[ 0 ] ).droppable( "instance" ); - parentInstance.greedyChild = ( c === "isover" ); - } - } - - // we just moved into a greedy child - if ( parentInstance && c === "isover" ) { - parentInstance.isover = false; - parentInstance.isout = true; - parentInstance._out.call( parentInstance, event ); - } - - this[ c ] = true; - this[c === "isout" ? "isover" : "isout"] = false; - this[c === "isover" ? "_over" : "_out"].call( this, event ); - - // we just moved out of a greedy child - if ( parentInstance && c === "isout" ) { - parentInstance.isout = false; - parentInstance.isover = true; - parentInstance._over.call( parentInstance, event ); - } - }); - - }, - dragStop: function( draggable, event ) { - draggable.element.parentsUntil( "body" ).unbind( "scroll.droppable" ); - // Call prepareOffsets one final time since IE does not fire return scroll events when overflow was caused by drag (see #5003) - if ( !draggable.options.refreshPositions ) { - $.ui.ddmanager.prepareOffsets( draggable, event ); - } - } -}; - -var droppable = $.ui.droppable; - - -/*! - * jQuery UI Effects 1.11.4 - * http://jqueryui.com - * - * Copyright jQuery Foundation and other contributors - * Released under the MIT license. - * http://jquery.org/license - * - * http://api.jqueryui.com/category/effects-core/ - */ - - -var dataSpace = "ui-effects-", - - // Create a local jQuery because jQuery Color relies on it and the - // global may not exist with AMD and a custom build (#10199) - jQuery = $; - -$.effects = { - effect: {} -}; - -/*! - * jQuery Color Animations v2.1.2 - * https://github.com/jquery/jquery-color - * - * Copyright 2014 jQuery Foundation and other contributors - * Released under the MIT license. - * http://jquery.org/license - * - * Date: Wed Jan 16 08:47:09 2013 -0600 - */ -(function( jQuery, undefined ) { - - var stepHooks = "backgroundColor borderBottomColor borderLeftColor borderRightColor borderTopColor color columnRuleColor outlineColor textDecorationColor textEmphasisColor", - - // plusequals test for += 100 -= 100 - rplusequals = /^([\-+])=\s*(\d+\.?\d*)/, - // a set of RE's that can match strings and generate color tuples. - stringParsers = [ { - re: /rgba?\(\s*(\d{1,3})\s*,\s*(\d{1,3})\s*,\s*(\d{1,3})\s*(?:,\s*(\d?(?:\.\d+)?)\s*)?\)/, - parse: function( execResult ) { - return [ - execResult[ 1 ], - execResult[ 2 ], - execResult[ 3 ], - execResult[ 4 ] - ]; - } - }, { - re: /rgba?\(\s*(\d+(?:\.\d+)?)\%\s*,\s*(\d+(?:\.\d+)?)\%\s*,\s*(\d+(?:\.\d+)?)\%\s*(?:,\s*(\d?(?:\.\d+)?)\s*)?\)/, - parse: function( execResult ) { - return [ - execResult[ 1 ] * 2.55, - execResult[ 2 ] * 2.55, - execResult[ 3 ] * 2.55, - execResult[ 4 ] - ]; - } - }, { - // this regex ignores A-F because it's compared against an already lowercased string - re: /#([a-f0-9]{2})([a-f0-9]{2})([a-f0-9]{2})/, - parse: function( execResult ) { - return [ - parseInt( execResult[ 1 ], 16 ), - parseInt( execResult[ 2 ], 16 ), - parseInt( execResult[ 3 ], 16 ) - ]; - } - }, { - // this regex ignores A-F because it's compared against an already lowercased string - re: /#([a-f0-9])([a-f0-9])([a-f0-9])/, - parse: function( execResult ) { - return [ - parseInt( execResult[ 1 ] + execResult[ 1 ], 16 ), - parseInt( execResult[ 2 ] + execResult[ 2 ], 16 ), - parseInt( execResult[ 3 ] + execResult[ 3 ], 16 ) - ]; - } - }, { - re: /hsla?\(\s*(\d+(?:\.\d+)?)\s*,\s*(\d+(?:\.\d+)?)\%\s*,\s*(\d+(?:\.\d+)?)\%\s*(?:,\s*(\d?(?:\.\d+)?)\s*)?\)/, - space: "hsla", - parse: function( execResult ) { - return [ - execResult[ 1 ], - execResult[ 2 ] / 100, - execResult[ 3 ] / 100, - execResult[ 4 ] - ]; - } - } ], - - // jQuery.Color( ) - color = jQuery.Color = function( color, green, blue, alpha ) { - return new jQuery.Color.fn.parse( color, green, blue, alpha ); - }, - spaces = { - rgba: { - props: { - red: { - idx: 0, - type: "byte" - }, - green: { - idx: 1, - type: "byte" - }, - blue: { - idx: 2, - type: "byte" - } - } - }, - - hsla: { - props: { - hue: { - idx: 0, - type: "degrees" - }, - saturation: { - idx: 1, - type: "percent" - }, - lightness: { - idx: 2, - type: "percent" - } - } - } - }, - propTypes = { - "byte": { - floor: true, - max: 255 - }, - "percent": { - max: 1 - }, - "degrees": { - mod: 360, - floor: true - } - }, - support = color.support = {}, - - // element for support tests - supportElem = jQuery( "<p>" )[ 0 ], - - // colors = jQuery.Color.names - colors, - - // local aliases of functions called often - each = jQuery.each; - -// determine rgba support immediately -supportElem.style.cssText = "background-color:rgba(1,1,1,.5)"; -support.rgba = supportElem.style.backgroundColor.indexOf( "rgba" ) > -1; - -// define cache name and alpha properties -// for rgba and hsla spaces -each( spaces, function( spaceName, space ) { - space.cache = "_" + spaceName; - space.props.alpha = { - idx: 3, - type: "percent", - def: 1 - }; -}); - -function clamp( value, prop, allowEmpty ) { - var type = propTypes[ prop.type ] || {}; - - if ( value == null ) { - return (allowEmpty || !prop.def) ? null : prop.def; - } - - // ~~ is an short way of doing floor for positive numbers - value = type.floor ? ~~value : parseFloat( value ); - - // IE will pass in empty strings as value for alpha, - // which will hit this case - if ( isNaN( value ) ) { - return prop.def; - } - - if ( type.mod ) { - // we add mod before modding to make sure that negatives values - // get converted properly: -10 -> 350 - return (value + type.mod) % type.mod; - } - - // for now all property types without mod have min and max - return 0 > value ? 0 : type.max < value ? type.max : value; -} - -function stringParse( string ) { - var inst = color(), - rgba = inst._rgba = []; - - string = string.toLowerCase(); - - each( stringParsers, function( i, parser ) { - var parsed, - match = parser.re.exec( string ), - values = match && parser.parse( match ), - spaceName = parser.space || "rgba"; - - if ( values ) { - parsed = inst[ spaceName ]( values ); - - // if this was an rgba parse the assignment might happen twice - // oh well.... - inst[ spaces[ spaceName ].cache ] = parsed[ spaces[ spaceName ].cache ]; - rgba = inst._rgba = parsed._rgba; - - // exit each( stringParsers ) here because we matched - return false; - } - }); - - // Found a stringParser that handled it - if ( rgba.length ) { - - // if this came from a parsed string, force "transparent" when alpha is 0 - // chrome, (and maybe others) return "transparent" as rgba(0,0,0,0) - if ( rgba.join() === "0,0,0,0" ) { - jQuery.extend( rgba, colors.transparent ); - } - return inst; - } - - // named colors - return colors[ string ]; -} - -color.fn = jQuery.extend( color.prototype, { - parse: function( red, green, blue, alpha ) { - if ( red === undefined ) { - this._rgba = [ null, null, null, null ]; - return this; - } - if ( red.jquery || red.nodeType ) { - red = jQuery( red ).css( green ); - green = undefined; - } - - var inst = this, - type = jQuery.type( red ), - rgba = this._rgba = []; - - // more than 1 argument specified - assume ( red, green, blue, alpha ) - if ( green !== undefined ) { - red = [ red, green, blue, alpha ]; - type = "array"; - } - - if ( type === "string" ) { - return this.parse( stringParse( red ) || colors._default ); - } - - if ( type === "array" ) { - each( spaces.rgba.props, function( key, prop ) { - rgba[ prop.idx ] = clamp( red[ prop.idx ], prop ); - }); - return this; - } - - if ( type === "object" ) { - if ( red instanceof color ) { - each( spaces, function( spaceName, space ) { - if ( red[ space.cache ] ) { - inst[ space.cache ] = red[ space.cache ].slice(); - } - }); - } else { - each( spaces, function( spaceName, space ) { - var cache = space.cache; - each( space.props, function( key, prop ) { - - // if the cache doesn't exist, and we know how to convert - if ( !inst[ cache ] && space.to ) { - - // if the value was null, we don't need to copy it - // if the key was alpha, we don't need to copy it either - if ( key === "alpha" || red[ key ] == null ) { - return; - } - inst[ cache ] = space.to( inst._rgba ); - } - - // this is the only case where we allow nulls for ALL properties. - // call clamp with alwaysAllowEmpty - inst[ cache ][ prop.idx ] = clamp( red[ key ], prop, true ); - }); - - // everything defined but alpha? - if ( inst[ cache ] && jQuery.inArray( null, inst[ cache ].slice( 0, 3 ) ) < 0 ) { - // use the default of 1 - inst[ cache ][ 3 ] = 1; - if ( space.from ) { - inst._rgba = space.from( inst[ cache ] ); - } - } - }); - } - return this; - } - }, - is: function( compare ) { - var is = color( compare ), - same = true, - inst = this; - - each( spaces, function( _, space ) { - var localCache, - isCache = is[ space.cache ]; - if (isCache) { - localCache = inst[ space.cache ] || space.to && space.to( inst._rgba ) || []; - each( space.props, function( _, prop ) { - if ( isCache[ prop.idx ] != null ) { - same = ( isCache[ prop.idx ] === localCache[ prop.idx ] ); - return same; - } - }); - } - return same; - }); - return same; - }, - _space: function() { - var used = [], - inst = this; - each( spaces, function( spaceName, space ) { - if ( inst[ space.cache ] ) { - used.push( spaceName ); - } - }); - return used.pop(); - }, - transition: function( other, distance ) { - var end = color( other ), - spaceName = end._space(), - space = spaces[ spaceName ], - startColor = this.alpha() === 0 ? color( "transparent" ) : this, - start = startColor[ space.cache ] || space.to( startColor._rgba ), - result = start.slice(); - - end = end[ space.cache ]; - each( space.props, function( key, prop ) { - var index = prop.idx, - startValue = start[ index ], - endValue = end[ index ], - type = propTypes[ prop.type ] || {}; - - // if null, don't override start value - if ( endValue === null ) { - return; - } - // if null - use end - if ( startValue === null ) { - result[ index ] = endValue; - } else { - if ( type.mod ) { - if ( endValue - startValue > type.mod / 2 ) { - startValue += type.mod; - } else if ( startValue - endValue > type.mod / 2 ) { - startValue -= type.mod; - } - } - result[ index ] = clamp( ( endValue - startValue ) * distance + startValue, prop ); - } - }); - return this[ spaceName ]( result ); - }, - blend: function( opaque ) { - // if we are already opaque - return ourself - if ( this._rgba[ 3 ] === 1 ) { - return this; - } - - var rgb = this._rgba.slice(), - a = rgb.pop(), - blend = color( opaque )._rgba; - - return color( jQuery.map( rgb, function( v, i ) { - return ( 1 - a ) * blend[ i ] + a * v; - })); - }, - toRgbaString: function() { - var prefix = "rgba(", - rgba = jQuery.map( this._rgba, function( v, i ) { - return v == null ? ( i > 2 ? 1 : 0 ) : v; - }); - - if ( rgba[ 3 ] === 1 ) { - rgba.pop(); - prefix = "rgb("; - } - - return prefix + rgba.join() + ")"; - }, - toHslaString: function() { - var prefix = "hsla(", - hsla = jQuery.map( this.hsla(), function( v, i ) { - if ( v == null ) { - v = i > 2 ? 1 : 0; - } - - // catch 1 and 2 - if ( i && i < 3 ) { - v = Math.round( v * 100 ) + "%"; - } - return v; - }); - - if ( hsla[ 3 ] === 1 ) { - hsla.pop(); - prefix = "hsl("; - } - return prefix + hsla.join() + ")"; - }, - toHexString: function( includeAlpha ) { - var rgba = this._rgba.slice(), - alpha = rgba.pop(); - - if ( includeAlpha ) { - rgba.push( ~~( alpha * 255 ) ); - } - - return "#" + jQuery.map( rgba, function( v ) { - - // default to 0 when nulls exist - v = ( v || 0 ).toString( 16 ); - return v.length === 1 ? "0" + v : v; - }).join(""); - }, - toString: function() { - return this._rgba[ 3 ] === 0 ? "transparent" : this.toRgbaString(); - } -}); -color.fn.parse.prototype = color.fn; - -// hsla conversions adapted from: -// https://code.google.com/p/maashaack/source/browse/packages/graphics/trunk/src/graphics/colors/HUE2RGB.as?r=5021 - -function hue2rgb( p, q, h ) { - h = ( h + 1 ) % 1; - if ( h * 6 < 1 ) { - return p + ( q - p ) * h * 6; - } - if ( h * 2 < 1) { - return q; - } - if ( h * 3 < 2 ) { - return p + ( q - p ) * ( ( 2 / 3 ) - h ) * 6; - } - return p; -} - -spaces.hsla.to = function( rgba ) { - if ( rgba[ 0 ] == null || rgba[ 1 ] == null || rgba[ 2 ] == null ) { - return [ null, null, null, rgba[ 3 ] ]; - } - var r = rgba[ 0 ] / 255, - g = rgba[ 1 ] / 255, - b = rgba[ 2 ] / 255, - a = rgba[ 3 ], - max = Math.max( r, g, b ), - min = Math.min( r, g, b ), - diff = max - min, - add = max + min, - l = add * 0.5, - h, s; - - if ( min === max ) { - h = 0; - } else if ( r === max ) { - h = ( 60 * ( g - b ) / diff ) + 360; - } else if ( g === max ) { - h = ( 60 * ( b - r ) / diff ) + 120; - } else { - h = ( 60 * ( r - g ) / diff ) + 240; - } - - // chroma (diff) == 0 means greyscale which, by definition, saturation = 0% - // otherwise, saturation is based on the ratio of chroma (diff) to lightness (add) - if ( diff === 0 ) { - s = 0; - } else if ( l <= 0.5 ) { - s = diff / add; - } else { - s = diff / ( 2 - add ); - } - return [ Math.round(h) % 360, s, l, a == null ? 1 : a ]; -}; - -spaces.hsla.from = function( hsla ) { - if ( hsla[ 0 ] == null || hsla[ 1 ] == null || hsla[ 2 ] == null ) { - return [ null, null, null, hsla[ 3 ] ]; - } - var h = hsla[ 0 ] / 360, - s = hsla[ 1 ], - l = hsla[ 2 ], - a = hsla[ 3 ], - q = l <= 0.5 ? l * ( 1 + s ) : l + s - l * s, - p = 2 * l - q; - - return [ - Math.round( hue2rgb( p, q, h + ( 1 / 3 ) ) * 255 ), - Math.round( hue2rgb( p, q, h ) * 255 ), - Math.round( hue2rgb( p, q, h - ( 1 / 3 ) ) * 255 ), - a - ]; -}; - -each( spaces, function( spaceName, space ) { - var props = space.props, - cache = space.cache, - to = space.to, - from = space.from; - - // makes rgba() and hsla() - color.fn[ spaceName ] = function( value ) { - - // generate a cache for this space if it doesn't exist - if ( to && !this[ cache ] ) { - this[ cache ] = to( this._rgba ); - } - if ( value === undefined ) { - return this[ cache ].slice(); - } - - var ret, - type = jQuery.type( value ), - arr = ( type === "array" || type === "object" ) ? value : arguments, - local = this[ cache ].slice(); - - each( props, function( key, prop ) { - var val = arr[ type === "object" ? key : prop.idx ]; - if ( val == null ) { - val = local[ prop.idx ]; - } - local[ prop.idx ] = clamp( val, prop ); - }); - - if ( from ) { - ret = color( from( local ) ); - ret[ cache ] = local; - return ret; - } else { - return color( local ); - } - }; - - // makes red() green() blue() alpha() hue() saturation() lightness() - each( props, function( key, prop ) { - // alpha is included in more than one space - if ( color.fn[ key ] ) { - return; - } - color.fn[ key ] = function( value ) { - var vtype = jQuery.type( value ), - fn = ( key === "alpha" ? ( this._hsla ? "hsla" : "rgba" ) : spaceName ), - local = this[ fn ](), - cur = local[ prop.idx ], - match; - - if ( vtype === "undefined" ) { - return cur; - } - - if ( vtype === "function" ) { - value = value.call( this, cur ); - vtype = jQuery.type( value ); - } - if ( value == null && prop.empty ) { - return this; - } - if ( vtype === "string" ) { - match = rplusequals.exec( value ); - if ( match ) { - value = cur + parseFloat( match[ 2 ] ) * ( match[ 1 ] === "+" ? 1 : -1 ); - } - } - local[ prop.idx ] = value; - return this[ fn ]( local ); - }; - }); -}); - -// add cssHook and .fx.step function for each named hook. -// accept a space separated string of properties -color.hook = function( hook ) { - var hooks = hook.split( " " ); - each( hooks, function( i, hook ) { - jQuery.cssHooks[ hook ] = { - set: function( elem, value ) { - var parsed, curElem, - backgroundColor = ""; - - if ( value !== "transparent" && ( jQuery.type( value ) !== "string" || ( parsed = stringParse( value ) ) ) ) { - value = color( parsed || value ); - if ( !support.rgba && value._rgba[ 3 ] !== 1 ) { - curElem = hook === "backgroundColor" ? elem.parentNode : elem; - while ( - (backgroundColor === "" || backgroundColor === "transparent") && - curElem && curElem.style - ) { - try { - backgroundColor = jQuery.css( curElem, "backgroundColor" ); - curElem = curElem.parentNode; - } catch ( e ) { - } - } - - value = value.blend( backgroundColor && backgroundColor !== "transparent" ? - backgroundColor : - "_default" ); - } - - value = value.toRgbaString(); - } - try { - elem.style[ hook ] = value; - } catch ( e ) { - // wrapped to prevent IE from throwing errors on "invalid" values like 'auto' or 'inherit' - } - } - }; - jQuery.fx.step[ hook ] = function( fx ) { - if ( !fx.colorInit ) { - fx.start = color( fx.elem, hook ); - fx.end = color( fx.end ); - fx.colorInit = true; - } - jQuery.cssHooks[ hook ].set( fx.elem, fx.start.transition( fx.end, fx.pos ) ); - }; - }); - -}; - -color.hook( stepHooks ); - -jQuery.cssHooks.borderColor = { - expand: function( value ) { - var expanded = {}; - - each( [ "Top", "Right", "Bottom", "Left" ], function( i, part ) { - expanded[ "border" + part + "Color" ] = value; - }); - return expanded; - } -}; - -// Basic color names only. -// Usage of any of the other color names requires adding yourself or including -// jquery.color.svg-names.js. -colors = jQuery.Color.names = { - // 4.1. Basic color keywords - aqua: "#00ffff", - black: "#000000", - blue: "#0000ff", - fuchsia: "#ff00ff", - gray: "#808080", - green: "#008000", - lime: "#00ff00", - maroon: "#800000", - navy: "#000080", - olive: "#808000", - purple: "#800080", - red: "#ff0000", - silver: "#c0c0c0", - teal: "#008080", - white: "#ffffff", - yellow: "#ffff00", - - // 4.2.3. "transparent" color keyword - transparent: [ null, null, null, 0 ], - - _default: "#ffffff" -}; - -})( jQuery ); - -/******************************************************************************/ -/****************************** CLASS ANIMATIONS ******************************/ -/******************************************************************************/ -(function() { - -var classAnimationActions = [ "add", "remove", "toggle" ], - shorthandStyles = { - border: 1, - borderBottom: 1, - borderColor: 1, - borderLeft: 1, - borderRight: 1, - borderTop: 1, - borderWidth: 1, - margin: 1, - padding: 1 - }; - -$.each([ "borderLeftStyle", "borderRightStyle", "borderBottomStyle", "borderTopStyle" ], function( _, prop ) { - $.fx.step[ prop ] = function( fx ) { - if ( fx.end !== "none" && !fx.setAttr || fx.pos === 1 && !fx.setAttr ) { - jQuery.style( fx.elem, prop, fx.end ); - fx.setAttr = true; - } - }; -}); - -function getElementStyles( elem ) { - var key, len, - style = elem.ownerDocument.defaultView ? - elem.ownerDocument.defaultView.getComputedStyle( elem, null ) : - elem.currentStyle, - styles = {}; - - if ( style && style.length && style[ 0 ] && style[ style[ 0 ] ] ) { - len = style.length; - while ( len-- ) { - key = style[ len ]; - if ( typeof style[ key ] === "string" ) { - styles[ $.camelCase( key ) ] = style[ key ]; - } - } - // support: Opera, IE <9 - } else { - for ( key in style ) { - if ( typeof style[ key ] === "string" ) { - styles[ key ] = style[ key ]; - } - } - } - - return styles; -} - -function styleDifference( oldStyle, newStyle ) { - var diff = {}, - name, value; - - for ( name in newStyle ) { - value = newStyle[ name ]; - if ( oldStyle[ name ] !== value ) { - if ( !shorthandStyles[ name ] ) { - if ( $.fx.step[ name ] || !isNaN( parseFloat( value ) ) ) { - diff[ name ] = value; - } - } - } - } - - return diff; -} - -// support: jQuery <1.8 -if ( !$.fn.addBack ) { - $.fn.addBack = function( selector ) { - return this.add( selector == null ? - this.prevObject : this.prevObject.filter( selector ) - ); - }; -} - -$.effects.animateClass = function( value, duration, easing, callback ) { - var o = $.speed( duration, easing, callback ); - - return this.queue( function() { - var animated = $( this ), - baseClass = animated.attr( "class" ) || "", - applyClassChange, - allAnimations = o.children ? animated.find( "*" ).addBack() : animated; - - // map the animated objects to store the original styles. - allAnimations = allAnimations.map(function() { - var el = $( this ); - return { - el: el, - start: getElementStyles( this ) - }; - }); - - // apply class change - applyClassChange = function() { - $.each( classAnimationActions, function(i, action) { - if ( value[ action ] ) { - animated[ action + "Class" ]( value[ action ] ); - } - }); - }; - applyClassChange(); - - // map all animated objects again - calculate new styles and diff - allAnimations = allAnimations.map(function() { - this.end = getElementStyles( this.el[ 0 ] ); - this.diff = styleDifference( this.start, this.end ); - return this; - }); - - // apply original class - animated.attr( "class", baseClass ); - - // map all animated objects again - this time collecting a promise - allAnimations = allAnimations.map(function() { - var styleInfo = this, - dfd = $.Deferred(), - opts = $.extend({}, o, { - queue: false, - complete: function() { - dfd.resolve( styleInfo ); - } - }); - - this.el.animate( this.diff, opts ); - return dfd.promise(); - }); - - // once all animations have completed: - $.when.apply( $, allAnimations.get() ).done(function() { - - // set the final class - applyClassChange(); - - // for each animated element, - // clear all css properties that were animated - $.each( arguments, function() { - var el = this.el; - $.each( this.diff, function(key) { - el.css( key, "" ); - }); - }); - - // this is guarnteed to be there if you use jQuery.speed() - // it also handles dequeuing the next anim... - o.complete.call( animated[ 0 ] ); - }); - }); -}; - -$.fn.extend({ - addClass: (function( orig ) { - return function( classNames, speed, easing, callback ) { - return speed ? - $.effects.animateClass.call( this, - { add: classNames }, speed, easing, callback ) : - orig.apply( this, arguments ); - }; - })( $.fn.addClass ), - - removeClass: (function( orig ) { - return function( classNames, speed, easing, callback ) { - return arguments.length > 1 ? - $.effects.animateClass.call( this, - { remove: classNames }, speed, easing, callback ) : - orig.apply( this, arguments ); - }; - })( $.fn.removeClass ), - - toggleClass: (function( orig ) { - return function( classNames, force, speed, easing, callback ) { - if ( typeof force === "boolean" || force === undefined ) { - if ( !speed ) { - // without speed parameter - return orig.apply( this, arguments ); - } else { - return $.effects.animateClass.call( this, - (force ? { add: classNames } : { remove: classNames }), - speed, easing, callback ); - } - } else { - // without force parameter - return $.effects.animateClass.call( this, - { toggle: classNames }, force, speed, easing ); - } - }; - })( $.fn.toggleClass ), - - switchClass: function( remove, add, speed, easing, callback) { - return $.effects.animateClass.call( this, { - add: add, - remove: remove - }, speed, easing, callback ); - } -}); - -})(); - -/******************************************************************************/ -/*********************************** EFFECTS **********************************/ -/******************************************************************************/ - -(function() { - -$.extend( $.effects, { - version: "1.11.4", - - // Saves a set of properties in a data storage - save: function( element, set ) { - for ( var i = 0; i < set.length; i++ ) { - if ( set[ i ] !== null ) { - element.data( dataSpace + set[ i ], element[ 0 ].style[ set[ i ] ] ); - } - } - }, - - // Restores a set of previously saved properties from a data storage - restore: function( element, set ) { - var val, i; - for ( i = 0; i < set.length; i++ ) { - if ( set[ i ] !== null ) { - val = element.data( dataSpace + set[ i ] ); - // support: jQuery 1.6.2 - // http://bugs.jquery.com/ticket/9917 - // jQuery 1.6.2 incorrectly returns undefined for any falsy value. - // We can't differentiate between "" and 0 here, so we just assume - // empty string since it's likely to be a more common value... - if ( val === undefined ) { - val = ""; - } - element.css( set[ i ], val ); - } - } - }, - - setMode: function( el, mode ) { - if (mode === "toggle") { - mode = el.is( ":hidden" ) ? "show" : "hide"; - } - return mode; - }, - - // Translates a [top,left] array into a baseline value - // this should be a little more flexible in the future to handle a string & hash - getBaseline: function( origin, original ) { - var y, x; - switch ( origin[ 0 ] ) { - case "top": y = 0; break; - case "middle": y = 0.5; break; - case "bottom": y = 1; break; - default: y = origin[ 0 ] / original.height; - } - switch ( origin[ 1 ] ) { - case "left": x = 0; break; - case "center": x = 0.5; break; - case "right": x = 1; break; - default: x = origin[ 1 ] / original.width; - } - return { - x: x, - y: y - }; - }, - - // Wraps the element around a wrapper that copies position properties - createWrapper: function( element ) { - - // if the element is already wrapped, return it - if ( element.parent().is( ".ui-effects-wrapper" )) { - return element.parent(); - } - - // wrap the element - var props = { - width: element.outerWidth(true), - height: element.outerHeight(true), - "float": element.css( "float" ) - }, - wrapper = $( "<div></div>" ) - .addClass( "ui-effects-wrapper" ) - .css({ - fontSize: "100%", - background: "transparent", - border: "none", - margin: 0, - padding: 0 - }), - // Store the size in case width/height are defined in % - Fixes #5245 - size = { - width: element.width(), - height: element.height() - }, - active = document.activeElement; - - // support: Firefox - // Firefox incorrectly exposes anonymous content - // https://bugzilla.mozilla.org/show_bug.cgi?id=561664 - try { - active.id; - } catch ( e ) { - active = document.body; - } - - element.wrap( wrapper ); - - // Fixes #7595 - Elements lose focus when wrapped. - if ( element[ 0 ] === active || $.contains( element[ 0 ], active ) ) { - $( active ).focus(); - } - - wrapper = element.parent(); //Hotfix for jQuery 1.4 since some change in wrap() seems to actually lose the reference to the wrapped element - - // transfer positioning properties to the wrapper - if ( element.css( "position" ) === "static" ) { - wrapper.css({ position: "relative" }); - element.css({ position: "relative" }); - } else { - $.extend( props, { - position: element.css( "position" ), - zIndex: element.css( "z-index" ) - }); - $.each([ "top", "left", "bottom", "right" ], function(i, pos) { - props[ pos ] = element.css( pos ); - if ( isNaN( parseInt( props[ pos ], 10 ) ) ) { - props[ pos ] = "auto"; - } - }); - element.css({ - position: "relative", - top: 0, - left: 0, - right: "auto", - bottom: "auto" - }); - } - element.css(size); - - return wrapper.css( props ).show(); - }, - - removeWrapper: function( element ) { - var active = document.activeElement; - - if ( element.parent().is( ".ui-effects-wrapper" ) ) { - element.parent().replaceWith( element ); - - // Fixes #7595 - Elements lose focus when wrapped. - if ( element[ 0 ] === active || $.contains( element[ 0 ], active ) ) { - $( active ).focus(); - } - } - - return element; - }, - - setTransition: function( element, list, factor, value ) { - value = value || {}; - $.each( list, function( i, x ) { - var unit = element.cssUnit( x ); - if ( unit[ 0 ] > 0 ) { - value[ x ] = unit[ 0 ] * factor + unit[ 1 ]; - } - }); - return value; - } -}); - -// return an effect options object for the given parameters: -function _normalizeArguments( effect, options, speed, callback ) { - - // allow passing all options as the first parameter - if ( $.isPlainObject( effect ) ) { - options = effect; - effect = effect.effect; - } - - // convert to an object - effect = { effect: effect }; - - // catch (effect, null, ...) - if ( options == null ) { - options = {}; - } - - // catch (effect, callback) - if ( $.isFunction( options ) ) { - callback = options; - speed = null; - options = {}; - } - - // catch (effect, speed, ?) - if ( typeof options === "number" || $.fx.speeds[ options ] ) { - callback = speed; - speed = options; - options = {}; - } - - // catch (effect, options, callback) - if ( $.isFunction( speed ) ) { - callback = speed; - speed = null; - } - - // add options to effect - if ( options ) { - $.extend( effect, options ); - } - - speed = speed || options.duration; - effect.duration = $.fx.off ? 0 : - typeof speed === "number" ? speed : - speed in $.fx.speeds ? $.fx.speeds[ speed ] : - $.fx.speeds._default; - - effect.complete = callback || options.complete; - - return effect; -} - -function standardAnimationOption( option ) { - // Valid standard speeds (nothing, number, named speed) - if ( !option || typeof option === "number" || $.fx.speeds[ option ] ) { - return true; - } - - // Invalid strings - treat as "normal" speed - if ( typeof option === "string" && !$.effects.effect[ option ] ) { - return true; - } - - // Complete callback - if ( $.isFunction( option ) ) { - return true; - } - - // Options hash (but not naming an effect) - if ( typeof option === "object" && !option.effect ) { - return true; - } - - // Didn't match any standard API - return false; -} - -$.fn.extend({ - effect: function( /* effect, options, speed, callback */ ) { - var args = _normalizeArguments.apply( this, arguments ), - mode = args.mode, - queue = args.queue, - effectMethod = $.effects.effect[ args.effect ]; - - if ( $.fx.off || !effectMethod ) { - // delegate to the original method (e.g., .show()) if possible - if ( mode ) { - return this[ mode ]( args.duration, args.complete ); - } else { - return this.each( function() { - if ( args.complete ) { - args.complete.call( this ); - } - }); - } - } - - function run( next ) { - var elem = $( this ), - complete = args.complete, - mode = args.mode; - - function done() { - if ( $.isFunction( complete ) ) { - complete.call( elem[0] ); - } - if ( $.isFunction( next ) ) { - next(); - } - } - - // If the element already has the correct final state, delegate to - // the core methods so the internal tracking of "olddisplay" works. - if ( elem.is( ":hidden" ) ? mode === "hide" : mode === "show" ) { - elem[ mode ](); - done(); - } else { - effectMethod.call( elem[0], args, done ); - } - } - - return queue === false ? this.each( run ) : this.queue( queue || "fx", run ); - }, - - show: (function( orig ) { - return function( option ) { - if ( standardAnimationOption( option ) ) { - return orig.apply( this, arguments ); - } else { - var args = _normalizeArguments.apply( this, arguments ); - args.mode = "show"; - return this.effect.call( this, args ); - } - }; - })( $.fn.show ), - - hide: (function( orig ) { - return function( option ) { - if ( standardAnimationOption( option ) ) { - return orig.apply( this, arguments ); - } else { - var args = _normalizeArguments.apply( this, arguments ); - args.mode = "hide"; - return this.effect.call( this, args ); - } - }; - })( $.fn.hide ), - - toggle: (function( orig ) { - return function( option ) { - if ( standardAnimationOption( option ) || typeof option === "boolean" ) { - return orig.apply( this, arguments ); - } else { - var args = _normalizeArguments.apply( this, arguments ); - args.mode = "toggle"; - return this.effect.call( this, args ); - } - }; - })( $.fn.toggle ), - - // helper functions - cssUnit: function(key) { - var style = this.css( key ), - val = []; - - $.each( [ "em", "px", "%", "pt" ], function( i, unit ) { - if ( style.indexOf( unit ) > 0 ) { - val = [ parseFloat( style ), unit ]; - } - }); - return val; - } -}); - -})(); - -/******************************************************************************/ -/*********************************** EASING ***********************************/ -/******************************************************************************/ - -(function() { - -// based on easing equations from Robert Penner (http://www.robertpenner.com/easing) - -var baseEasings = {}; - -$.each( [ "Quad", "Cubic", "Quart", "Quint", "Expo" ], function( i, name ) { - baseEasings[ name ] = function( p ) { - return Math.pow( p, i + 2 ); - }; -}); - -$.extend( baseEasings, { - Sine: function( p ) { - return 1 - Math.cos( p * Math.PI / 2 ); - }, - Circ: function( p ) { - return 1 - Math.sqrt( 1 - p * p ); - }, - Elastic: function( p ) { - return p === 0 || p === 1 ? p : - -Math.pow( 2, 8 * (p - 1) ) * Math.sin( ( (p - 1) * 80 - 7.5 ) * Math.PI / 15 ); - }, - Back: function( p ) { - return p * p * ( 3 * p - 2 ); - }, - Bounce: function( p ) { - var pow2, - bounce = 4; - - while ( p < ( ( pow2 = Math.pow( 2, --bounce ) ) - 1 ) / 11 ) {} - return 1 / Math.pow( 4, 3 - bounce ) - 7.5625 * Math.pow( ( pow2 * 3 - 2 ) / 22 - p, 2 ); - } -}); - -$.each( baseEasings, function( name, easeIn ) { - $.easing[ "easeIn" + name ] = easeIn; - $.easing[ "easeOut" + name ] = function( p ) { - return 1 - easeIn( 1 - p ); - }; - $.easing[ "easeInOut" + name ] = function( p ) { - return p < 0.5 ? - easeIn( p * 2 ) / 2 : - 1 - easeIn( p * -2 + 2 ) / 2; - }; -}); - -})(); - -var effect = $.effects; - - -/*! - * jQuery UI Effects Blind 1.11.4 - * http://jqueryui.com - * - * Copyright jQuery Foundation and other contributors - * Released under the MIT license. - * http://jquery.org/license - * - * http://api.jqueryui.com/blind-effect/ - */ - - -var effectBlind = $.effects.effect.blind = function( o, done ) { - // Create element - var el = $( this ), - rvertical = /up|down|vertical/, - rpositivemotion = /up|left|vertical|horizontal/, - props = [ "position", "top", "bottom", "left", "right", "height", "width" ], - mode = $.effects.setMode( el, o.mode || "hide" ), - direction = o.direction || "up", - vertical = rvertical.test( direction ), - ref = vertical ? "height" : "width", - ref2 = vertical ? "top" : "left", - motion = rpositivemotion.test( direction ), - animation = {}, - show = mode === "show", - wrapper, distance, margin; - - // if already wrapped, the wrapper's properties are my property. #6245 - if ( el.parent().is( ".ui-effects-wrapper" ) ) { - $.effects.save( el.parent(), props ); - } else { - $.effects.save( el, props ); - } - el.show(); - wrapper = $.effects.createWrapper( el ).css({ - overflow: "hidden" - }); - - distance = wrapper[ ref ](); - margin = parseFloat( wrapper.css( ref2 ) ) || 0; - - animation[ ref ] = show ? distance : 0; - if ( !motion ) { - el - .css( vertical ? "bottom" : "right", 0 ) - .css( vertical ? "top" : "left", "auto" ) - .css({ position: "absolute" }); - - animation[ ref2 ] = show ? margin : distance + margin; - } - - // start at 0 if we are showing - if ( show ) { - wrapper.css( ref, 0 ); - if ( !motion ) { - wrapper.css( ref2, margin + distance ); - } - } - - // Animate - wrapper.animate( animation, { - duration: o.duration, - easing: o.easing, - queue: false, - complete: function() { - if ( mode === "hide" ) { - el.hide(); - } - $.effects.restore( el, props ); - $.effects.removeWrapper( el ); - done(); - } - }); -}; - - -/*! - * jQuery UI Effects Bounce 1.11.4 - * http://jqueryui.com - * - * Copyright jQuery Foundation and other contributors - * Released under the MIT license. - * http://jquery.org/license - * - * http://api.jqueryui.com/bounce-effect/ - */ - - -var effectBounce = $.effects.effect.bounce = function( o, done ) { - var el = $( this ), - props = [ "position", "top", "bottom", "left", "right", "height", "width" ], - - // defaults: - mode = $.effects.setMode( el, o.mode || "effect" ), - hide = mode === "hide", - show = mode === "show", - direction = o.direction || "up", - distance = o.distance, - times = o.times || 5, - - // number of internal animations - anims = times * 2 + ( show || hide ? 1 : 0 ), - speed = o.duration / anims, - easing = o.easing, - - // utility: - ref = ( direction === "up" || direction === "down" ) ? "top" : "left", - motion = ( direction === "up" || direction === "left" ), - i, - upAnim, - downAnim, - - // we will need to re-assemble the queue to stack our animations in place - queue = el.queue(), - queuelen = queue.length; - - // Avoid touching opacity to prevent clearType and PNG issues in IE - if ( show || hide ) { - props.push( "opacity" ); - } - - $.effects.save( el, props ); - el.show(); - $.effects.createWrapper( el ); // Create Wrapper - - // default distance for the BIGGEST bounce is the outer Distance / 3 - if ( !distance ) { - distance = el[ ref === "top" ? "outerHeight" : "outerWidth" ]() / 3; - } - - if ( show ) { - downAnim = { opacity: 1 }; - downAnim[ ref ] = 0; - - // if we are showing, force opacity 0 and set the initial position - // then do the "first" animation - el.css( "opacity", 0 ) - .css( ref, motion ? -distance * 2 : distance * 2 ) - .animate( downAnim, speed, easing ); - } - - // start at the smallest distance if we are hiding - if ( hide ) { - distance = distance / Math.pow( 2, times - 1 ); - } - - downAnim = {}; - downAnim[ ref ] = 0; - // Bounces up/down/left/right then back to 0 -- times * 2 animations happen here - for ( i = 0; i < times; i++ ) { - upAnim = {}; - upAnim[ ref ] = ( motion ? "-=" : "+=" ) + distance; - - el.animate( upAnim, speed, easing ) - .animate( downAnim, speed, easing ); - - distance = hide ? distance * 2 : distance / 2; - } - - // Last Bounce when Hiding - if ( hide ) { - upAnim = { opacity: 0 }; - upAnim[ ref ] = ( motion ? "-=" : "+=" ) + distance; - - el.animate( upAnim, speed, easing ); - } - - el.queue(function() { - if ( hide ) { - el.hide(); - } - $.effects.restore( el, props ); - $.effects.removeWrapper( el ); - done(); - }); - - // inject all the animations we just queued to be first in line (after "inprogress") - if ( queuelen > 1) { - queue.splice.apply( queue, - [ 1, 0 ].concat( queue.splice( queuelen, anims + 1 ) ) ); - } - el.dequeue(); - -}; - - -/*! - * jQuery UI Effects Clip 1.11.4 - * http://jqueryui.com - * - * Copyright jQuery Foundation and other contributors - * Released under the MIT license. - * http://jquery.org/license - * - * http://api.jqueryui.com/clip-effect/ - */ - - -var effectClip = $.effects.effect.clip = function( o, done ) { - // Create element - var el = $( this ), - props = [ "position", "top", "bottom", "left", "right", "height", "width" ], - mode = $.effects.setMode( el, o.mode || "hide" ), - show = mode === "show", - direction = o.direction || "vertical", - vert = direction === "vertical", - size = vert ? "height" : "width", - position = vert ? "top" : "left", - animation = {}, - wrapper, animate, distance; - - // Save & Show - $.effects.save( el, props ); - el.show(); - - // Create Wrapper - wrapper = $.effects.createWrapper( el ).css({ - overflow: "hidden" - }); - animate = ( el[0].tagName === "IMG" ) ? wrapper : el; - distance = animate[ size ](); - - // Shift - if ( show ) { - animate.css( size, 0 ); - animate.css( position, distance / 2 ); - } - - // Create Animation Object: - animation[ size ] = show ? distance : 0; - animation[ position ] = show ? 0 : distance / 2; - - // Animate - animate.animate( animation, { - queue: false, - duration: o.duration, - easing: o.easing, - complete: function() { - if ( !show ) { - el.hide(); - } - $.effects.restore( el, props ); - $.effects.removeWrapper( el ); - done(); - } - }); - -}; - - -/*! - * jQuery UI Effects Drop 1.11.4 - * http://jqueryui.com - * - * Copyright jQuery Foundation and other contributors - * Released under the MIT license. - * http://jquery.org/license - * - * http://api.jqueryui.com/drop-effect/ - */ - - -var effectDrop = $.effects.effect.drop = function( o, done ) { - - var el = $( this ), - props = [ "position", "top", "bottom", "left", "right", "opacity", "height", "width" ], - mode = $.effects.setMode( el, o.mode || "hide" ), - show = mode === "show", - direction = o.direction || "left", - ref = ( direction === "up" || direction === "down" ) ? "top" : "left", - motion = ( direction === "up" || direction === "left" ) ? "pos" : "neg", - animation = { - opacity: show ? 1 : 0 - }, - distance; - - // Adjust - $.effects.save( el, props ); - el.show(); - $.effects.createWrapper( el ); - - distance = o.distance || el[ ref === "top" ? "outerHeight" : "outerWidth" ]( true ) / 2; - - if ( show ) { - el - .css( "opacity", 0 ) - .css( ref, motion === "pos" ? -distance : distance ); - } - - // Animation - animation[ ref ] = ( show ? - ( motion === "pos" ? "+=" : "-=" ) : - ( motion === "pos" ? "-=" : "+=" ) ) + - distance; - - // Animate - el.animate( animation, { - queue: false, - duration: o.duration, - easing: o.easing, - complete: function() { - if ( mode === "hide" ) { - el.hide(); - } - $.effects.restore( el, props ); - $.effects.removeWrapper( el ); - done(); - } - }); -}; - - -/*! - * jQuery UI Effects Explode 1.11.4 - * http://jqueryui.com - * - * Copyright jQuery Foundation and other contributors - * Released under the MIT license. - * http://jquery.org/license - * - * http://api.jqueryui.com/explode-effect/ - */ - - -var effectExplode = $.effects.effect.explode = function( o, done ) { - - var rows = o.pieces ? Math.round( Math.sqrt( o.pieces ) ) : 3, - cells = rows, - el = $( this ), - mode = $.effects.setMode( el, o.mode || "hide" ), - show = mode === "show", - - // show and then visibility:hidden the element before calculating offset - offset = el.show().css( "visibility", "hidden" ).offset(), - - // width and height of a piece - width = Math.ceil( el.outerWidth() / cells ), - height = Math.ceil( el.outerHeight() / rows ), - pieces = [], - - // loop - i, j, left, top, mx, my; - - // children animate complete: - function childComplete() { - pieces.push( this ); - if ( pieces.length === rows * cells ) { - animComplete(); - } - } - - // clone the element for each row and cell. - for ( i = 0; i < rows ; i++ ) { // ===> - top = offset.top + i * height; - my = i - ( rows - 1 ) / 2 ; - - for ( j = 0; j < cells ; j++ ) { // ||| - left = offset.left + j * width; - mx = j - ( cells - 1 ) / 2 ; - - // Create a clone of the now hidden main element that will be absolute positioned - // within a wrapper div off the -left and -top equal to size of our pieces - el - .clone() - .appendTo( "body" ) - .wrap( "<div></div>" ) - .css({ - position: "absolute", - visibility: "visible", - left: -j * width, - top: -i * height - }) - - // select the wrapper - make it overflow: hidden and absolute positioned based on - // where the original was located +left and +top equal to the size of pieces - .parent() - .addClass( "ui-effects-explode" ) - .css({ - position: "absolute", - overflow: "hidden", - width: width, - height: height, - left: left + ( show ? mx * width : 0 ), - top: top + ( show ? my * height : 0 ), - opacity: show ? 0 : 1 - }).animate({ - left: left + ( show ? 0 : mx * width ), - top: top + ( show ? 0 : my * height ), - opacity: show ? 1 : 0 - }, o.duration || 500, o.easing, childComplete ); - } - } - - function animComplete() { - el.css({ - visibility: "visible" - }); - $( pieces ).remove(); - if ( !show ) { - el.hide(); - } - done(); - } -}; - - -/*! - * jQuery UI Effects Fade 1.11.4 - * http://jqueryui.com - * - * Copyright jQuery Foundation and other contributors - * Released under the MIT license. - * http://jquery.org/license - * - * http://api.jqueryui.com/fade-effect/ - */ - - -var effectFade = $.effects.effect.fade = function( o, done ) { - var el = $( this ), - mode = $.effects.setMode( el, o.mode || "toggle" ); - - el.animate({ - opacity: mode - }, { - queue: false, - duration: o.duration, - easing: o.easing, - complete: done - }); -}; - - -/*! - * jQuery UI Effects Fold 1.11.4 - * http://jqueryui.com - * - * Copyright jQuery Foundation and other contributors - * Released under the MIT license. - * http://jquery.org/license - * - * http://api.jqueryui.com/fold-effect/ - */ - - -var effectFold = $.effects.effect.fold = function( o, done ) { - - // Create element - var el = $( this ), - props = [ "position", "top", "bottom", "left", "right", "height", "width" ], - mode = $.effects.setMode( el, o.mode || "hide" ), - show = mode === "show", - hide = mode === "hide", - size = o.size || 15, - percent = /([0-9]+)%/.exec( size ), - horizFirst = !!o.horizFirst, - widthFirst = show !== horizFirst, - ref = widthFirst ? [ "width", "height" ] : [ "height", "width" ], - duration = o.duration / 2, - wrapper, distance, - animation1 = {}, - animation2 = {}; - - $.effects.save( el, props ); - el.show(); - - // Create Wrapper - wrapper = $.effects.createWrapper( el ).css({ - overflow: "hidden" - }); - distance = widthFirst ? - [ wrapper.width(), wrapper.height() ] : - [ wrapper.height(), wrapper.width() ]; - - if ( percent ) { - size = parseInt( percent[ 1 ], 10 ) / 100 * distance[ hide ? 0 : 1 ]; - } - if ( show ) { - wrapper.css( horizFirst ? { - height: 0, - width: size - } : { - height: size, - width: 0 - }); - } - - // Animation - animation1[ ref[ 0 ] ] = show ? distance[ 0 ] : size; - animation2[ ref[ 1 ] ] = show ? distance[ 1 ] : 0; - - // Animate - wrapper - .animate( animation1, duration, o.easing ) - .animate( animation2, duration, o.easing, function() { - if ( hide ) { - el.hide(); - } - $.effects.restore( el, props ); - $.effects.removeWrapper( el ); - done(); - }); - -}; - - -/*! - * jQuery UI Effects Highlight 1.11.4 - * http://jqueryui.com - * - * Copyright jQuery Foundation and other contributors - * Released under the MIT license. - * http://jquery.org/license - * - * http://api.jqueryui.com/highlight-effect/ - */ - - -var effectHighlight = $.effects.effect.highlight = function( o, done ) { - var elem = $( this ), - props = [ "backgroundImage", "backgroundColor", "opacity" ], - mode = $.effects.setMode( elem, o.mode || "show" ), - animation = { - backgroundColor: elem.css( "backgroundColor" ) - }; - - if (mode === "hide") { - animation.opacity = 0; - } - - $.effects.save( elem, props ); - - elem - .show() - .css({ - backgroundImage: "none", - backgroundColor: o.color || "#ffff99" - }) - .animate( animation, { - queue: false, - duration: o.duration, - easing: o.easing, - complete: function() { - if ( mode === "hide" ) { - elem.hide(); - } - $.effects.restore( elem, props ); - done(); - } - }); -}; - - -/*! - * jQuery UI Effects Size 1.11.4 - * http://jqueryui.com - * - * Copyright jQuery Foundation and other contributors - * Released under the MIT license. - * http://jquery.org/license - * - * http://api.jqueryui.com/size-effect/ - */ - - -var effectSize = $.effects.effect.size = function( o, done ) { - - // Create element - var original, baseline, factor, - el = $( this ), - props0 = [ "position", "top", "bottom", "left", "right", "width", "height", "overflow", "opacity" ], - - // Always restore - props1 = [ "position", "top", "bottom", "left", "right", "overflow", "opacity" ], - - // Copy for children - props2 = [ "width", "height", "overflow" ], - cProps = [ "fontSize" ], - vProps = [ "borderTopWidth", "borderBottomWidth", "paddingTop", "paddingBottom" ], - hProps = [ "borderLeftWidth", "borderRightWidth", "paddingLeft", "paddingRight" ], - - // Set options - mode = $.effects.setMode( el, o.mode || "effect" ), - restore = o.restore || mode !== "effect", - scale = o.scale || "both", - origin = o.origin || [ "middle", "center" ], - position = el.css( "position" ), - props = restore ? props0 : props1, - zero = { - height: 0, - width: 0, - outerHeight: 0, - outerWidth: 0 - }; - - if ( mode === "show" ) { - el.show(); - } - original = { - height: el.height(), - width: el.width(), - outerHeight: el.outerHeight(), - outerWidth: el.outerWidth() - }; - - if ( o.mode === "toggle" && mode === "show" ) { - el.from = o.to || zero; - el.to = o.from || original; - } else { - el.from = o.from || ( mode === "show" ? zero : original ); - el.to = o.to || ( mode === "hide" ? zero : original ); - } - - // Set scaling factor - factor = { - from: { - y: el.from.height / original.height, - x: el.from.width / original.width - }, - to: { - y: el.to.height / original.height, - x: el.to.width / original.width - } - }; - - // Scale the css box - if ( scale === "box" || scale === "both" ) { - - // Vertical props scaling - if ( factor.from.y !== factor.to.y ) { - props = props.concat( vProps ); - el.from = $.effects.setTransition( el, vProps, factor.from.y, el.from ); - el.to = $.effects.setTransition( el, vProps, factor.to.y, el.to ); - } - - // Horizontal props scaling - if ( factor.from.x !== factor.to.x ) { - props = props.concat( hProps ); - el.from = $.effects.setTransition( el, hProps, factor.from.x, el.from ); - el.to = $.effects.setTransition( el, hProps, factor.to.x, el.to ); - } - } - - // Scale the content - if ( scale === "content" || scale === "both" ) { - - // Vertical props scaling - if ( factor.from.y !== factor.to.y ) { - props = props.concat( cProps ).concat( props2 ); - el.from = $.effects.setTransition( el, cProps, factor.from.y, el.from ); - el.to = $.effects.setTransition( el, cProps, factor.to.y, el.to ); - } - } - - $.effects.save( el, props ); - el.show(); - $.effects.createWrapper( el ); - el.css( "overflow", "hidden" ).css( el.from ); - - // Adjust - if (origin) { // Calculate baseline shifts - baseline = $.effects.getBaseline( origin, original ); - el.from.top = ( original.outerHeight - el.outerHeight() ) * baseline.y; - el.from.left = ( original.outerWidth - el.outerWidth() ) * baseline.x; - el.to.top = ( original.outerHeight - el.to.outerHeight ) * baseline.y; - el.to.left = ( original.outerWidth - el.to.outerWidth ) * baseline.x; - } - el.css( el.from ); // set top & left - - // Animate - if ( scale === "content" || scale === "both" ) { // Scale the children - - // Add margins/font-size - vProps = vProps.concat([ "marginTop", "marginBottom" ]).concat(cProps); - hProps = hProps.concat([ "marginLeft", "marginRight" ]); - props2 = props0.concat(vProps).concat(hProps); - - el.find( "*[width]" ).each( function() { - var child = $( this ), - c_original = { - height: child.height(), - width: child.width(), - outerHeight: child.outerHeight(), - outerWidth: child.outerWidth() - }; - if (restore) { - $.effects.save(child, props2); - } - - child.from = { - height: c_original.height * factor.from.y, - width: c_original.width * factor.from.x, - outerHeight: c_original.outerHeight * factor.from.y, - outerWidth: c_original.outerWidth * factor.from.x - }; - child.to = { - height: c_original.height * factor.to.y, - width: c_original.width * factor.to.x, - outerHeight: c_original.height * factor.to.y, - outerWidth: c_original.width * factor.to.x - }; - - // Vertical props scaling - if ( factor.from.y !== factor.to.y ) { - child.from = $.effects.setTransition( child, vProps, factor.from.y, child.from ); - child.to = $.effects.setTransition( child, vProps, factor.to.y, child.to ); - } - - // Horizontal props scaling - if ( factor.from.x !== factor.to.x ) { - child.from = $.effects.setTransition( child, hProps, factor.from.x, child.from ); - child.to = $.effects.setTransition( child, hProps, factor.to.x, child.to ); - } - - // Animate children - child.css( child.from ); - child.animate( child.to, o.duration, o.easing, function() { - - // Restore children - if ( restore ) { - $.effects.restore( child, props2 ); - } - }); - }); - } - - // Animate - el.animate( el.to, { - queue: false, - duration: o.duration, - easing: o.easing, - complete: function() { - if ( el.to.opacity === 0 ) { - el.css( "opacity", el.from.opacity ); - } - if ( mode === "hide" ) { - el.hide(); - } - $.effects.restore( el, props ); - if ( !restore ) { - - // we need to calculate our new positioning based on the scaling - if ( position === "static" ) { - el.css({ - position: "relative", - top: el.to.top, - left: el.to.left - }); - } else { - $.each([ "top", "left" ], function( idx, pos ) { - el.css( pos, function( _, str ) { - var val = parseInt( str, 10 ), - toRef = idx ? el.to.left : el.to.top; - - // if original was "auto", recalculate the new value from wrapper - if ( str === "auto" ) { - return toRef + "px"; - } - - return val + toRef + "px"; - }); - }); - } - } - - $.effects.removeWrapper( el ); - done(); - } - }); - -}; - - -/*! - * jQuery UI Effects Scale 1.11.4 - * http://jqueryui.com - * - * Copyright jQuery Foundation and other contributors - * Released under the MIT license. - * http://jquery.org/license - * - * http://api.jqueryui.com/scale-effect/ - */ - - -var effectScale = $.effects.effect.scale = function( o, done ) { - - // Create element - var el = $( this ), - options = $.extend( true, {}, o ), - mode = $.effects.setMode( el, o.mode || "effect" ), - percent = parseInt( o.percent, 10 ) || - ( parseInt( o.percent, 10 ) === 0 ? 0 : ( mode === "hide" ? 0 : 100 ) ), - direction = o.direction || "both", - origin = o.origin, - original = { - height: el.height(), - width: el.width(), - outerHeight: el.outerHeight(), - outerWidth: el.outerWidth() - }, - factor = { - y: direction !== "horizontal" ? (percent / 100) : 1, - x: direction !== "vertical" ? (percent / 100) : 1 - }; - - // We are going to pass this effect to the size effect: - options.effect = "size"; - options.queue = false; - options.complete = done; - - // Set default origin and restore for show/hide - if ( mode !== "effect" ) { - options.origin = origin || [ "middle", "center" ]; - options.restore = true; - } - - options.from = o.from || ( mode === "show" ? { - height: 0, - width: 0, - outerHeight: 0, - outerWidth: 0 - } : original ); - options.to = { - height: original.height * factor.y, - width: original.width * factor.x, - outerHeight: original.outerHeight * factor.y, - outerWidth: original.outerWidth * factor.x - }; - - // Fade option to support puff - if ( options.fade ) { - if ( mode === "show" ) { - options.from.opacity = 0; - options.to.opacity = 1; - } - if ( mode === "hide" ) { - options.from.opacity = 1; - options.to.opacity = 0; - } - } - - // Animate - el.effect( options ); - -}; - - -/*! - * jQuery UI Effects Puff 1.11.4 - * http://jqueryui.com - * - * Copyright jQuery Foundation and other contributors - * Released under the MIT license. - * http://jquery.org/license - * - * http://api.jqueryui.com/puff-effect/ - */ - - -var effectPuff = $.effects.effect.puff = function( o, done ) { - var elem = $( this ), - mode = $.effects.setMode( elem, o.mode || "hide" ), - hide = mode === "hide", - percent = parseInt( o.percent, 10 ) || 150, - factor = percent / 100, - original = { - height: elem.height(), - width: elem.width(), - outerHeight: elem.outerHeight(), - outerWidth: elem.outerWidth() - }; - - $.extend( o, { - effect: "scale", - queue: false, - fade: true, - mode: mode, - complete: done, - percent: hide ? percent : 100, - from: hide ? - original : - { - height: original.height * factor, - width: original.width * factor, - outerHeight: original.outerHeight * factor, - outerWidth: original.outerWidth * factor - } - }); - - elem.effect( o ); -}; - - -/*! - * jQuery UI Effects Pulsate 1.11.4 - * http://jqueryui.com - * - * Copyright jQuery Foundation and other contributors - * Released under the MIT license. - * http://jquery.org/license - * - * http://api.jqueryui.com/pulsate-effect/ - */ - - -var effectPulsate = $.effects.effect.pulsate = function( o, done ) { - var elem = $( this ), - mode = $.effects.setMode( elem, o.mode || "show" ), - show = mode === "show", - hide = mode === "hide", - showhide = ( show || mode === "hide" ), - - // showing or hiding leaves of the "last" animation - anims = ( ( o.times || 5 ) * 2 ) + ( showhide ? 1 : 0 ), - duration = o.duration / anims, - animateTo = 0, - queue = elem.queue(), - queuelen = queue.length, - i; - - if ( show || !elem.is(":visible")) { - elem.css( "opacity", 0 ).show(); - animateTo = 1; - } - - // anims - 1 opacity "toggles" - for ( i = 1; i < anims; i++ ) { - elem.animate({ - opacity: animateTo - }, duration, o.easing ); - animateTo = 1 - animateTo; - } - - elem.animate({ - opacity: animateTo - }, duration, o.easing); - - elem.queue(function() { - if ( hide ) { - elem.hide(); - } - done(); - }); - - // We just queued up "anims" animations, we need to put them next in the queue - if ( queuelen > 1 ) { - queue.splice.apply( queue, - [ 1, 0 ].concat( queue.splice( queuelen, anims + 1 ) ) ); - } - elem.dequeue(); -}; - - -/*! - * jQuery UI Effects Shake 1.11.4 - * http://jqueryui.com - * - * Copyright jQuery Foundation and other contributors - * Released under the MIT license. - * http://jquery.org/license - * - * http://api.jqueryui.com/shake-effect/ - */ - - -var effectShake = $.effects.effect.shake = function( o, done ) { - - var el = $( this ), - props = [ "position", "top", "bottom", "left", "right", "height", "width" ], - mode = $.effects.setMode( el, o.mode || "effect" ), - direction = o.direction || "left", - distance = o.distance || 20, - times = o.times || 3, - anims = times * 2 + 1, - speed = Math.round( o.duration / anims ), - ref = (direction === "up" || direction === "down") ? "top" : "left", - positiveMotion = (direction === "up" || direction === "left"), - animation = {}, - animation1 = {}, - animation2 = {}, - i, - - // we will need to re-assemble the queue to stack our animations in place - queue = el.queue(), - queuelen = queue.length; - - $.effects.save( el, props ); - el.show(); - $.effects.createWrapper( el ); - - // Animation - animation[ ref ] = ( positiveMotion ? "-=" : "+=" ) + distance; - animation1[ ref ] = ( positiveMotion ? "+=" : "-=" ) + distance * 2; - animation2[ ref ] = ( positiveMotion ? "-=" : "+=" ) + distance * 2; - - // Animate - el.animate( animation, speed, o.easing ); - - // Shakes - for ( i = 1; i < times; i++ ) { - el.animate( animation1, speed, o.easing ).animate( animation2, speed, o.easing ); - } - el - .animate( animation1, speed, o.easing ) - .animate( animation, speed / 2, o.easing ) - .queue(function() { - if ( mode === "hide" ) { - el.hide(); - } - $.effects.restore( el, props ); - $.effects.removeWrapper( el ); - done(); - }); - - // inject all the animations we just queued to be first in line (after "inprogress") - if ( queuelen > 1) { - queue.splice.apply( queue, - [ 1, 0 ].concat( queue.splice( queuelen, anims + 1 ) ) ); - } - el.dequeue(); - -}; - - -/*! - * jQuery UI Effects Slide 1.11.4 - * http://jqueryui.com - * - * Copyright jQuery Foundation and other contributors - * Released under the MIT license. - * http://jquery.org/license - * - * http://api.jqueryui.com/slide-effect/ - */ - - -var effectSlide = $.effects.effect.slide = function( o, done ) { - - // Create element - var el = $( this ), - props = [ "position", "top", "bottom", "left", "right", "width", "height" ], - mode = $.effects.setMode( el, o.mode || "show" ), - show = mode === "show", - direction = o.direction || "left", - ref = (direction === "up" || direction === "down") ? "top" : "left", - positiveMotion = (direction === "up" || direction === "left"), - distance, - animation = {}; - - // Adjust - $.effects.save( el, props ); - el.show(); - distance = o.distance || el[ ref === "top" ? "outerHeight" : "outerWidth" ]( true ); - - $.effects.createWrapper( el ).css({ - overflow: "hidden" - }); - - if ( show ) { - el.css( ref, positiveMotion ? (isNaN(distance) ? "-" + distance : -distance) : distance ); - } - - // Animation - animation[ ref ] = ( show ? - ( positiveMotion ? "+=" : "-=") : - ( positiveMotion ? "-=" : "+=")) + - distance; - - // Animate - el.animate( animation, { - queue: false, - duration: o.duration, - easing: o.easing, - complete: function() { - if ( mode === "hide" ) { - el.hide(); - } - $.effects.restore( el, props ); - $.effects.removeWrapper( el ); - done(); - } - }); -}; - - -/*! - * jQuery UI Effects Transfer 1.11.4 - * http://jqueryui.com - * - * Copyright jQuery Foundation and other contributors - * Released under the MIT license. - * http://jquery.org/license - * - * http://api.jqueryui.com/transfer-effect/ - */ - - -var effectTransfer = $.effects.effect.transfer = function( o, done ) { - var elem = $( this ), - target = $( o.to ), - targetFixed = target.css( "position" ) === "fixed", - body = $("body"), - fixTop = targetFixed ? body.scrollTop() : 0, - fixLeft = targetFixed ? body.scrollLeft() : 0, - endPosition = target.offset(), - animation = { - top: endPosition.top - fixTop, - left: endPosition.left - fixLeft, - height: target.innerHeight(), - width: target.innerWidth() - }, - startPosition = elem.offset(), - transfer = $( "<div class='ui-effects-transfer'></div>" ) - .appendTo( document.body ) - .addClass( o.className ) - .css({ - top: startPosition.top - fixTop, - left: startPosition.left - fixLeft, - height: elem.innerHeight(), - width: elem.innerWidth(), - position: targetFixed ? "fixed" : "absolute" - }) - .animate( animation, o.duration, o.easing, function() { - transfer.remove(); - done(); - }); -}; - - -/*! - * jQuery UI Progressbar 1.11.4 - * http://jqueryui.com - * - * Copyright jQuery Foundation and other contributors - * Released under the MIT license. - * http://jquery.org/license - * - * http://api.jqueryui.com/progressbar/ - */ - - -var progressbar = $.widget( "ui.progressbar", { - version: "1.11.4", - options: { - max: 100, - value: 0, - - change: null, - complete: null - }, - - min: 0, - - _create: function() { - // Constrain initial value - this.oldValue = this.options.value = this._constrainedValue(); - - this.element - .addClass( "ui-progressbar ui-widget ui-widget-content ui-corner-all" ) - .attr({ - // Only set static values, aria-valuenow and aria-valuemax are - // set inside _refreshValue() - role: "progressbar", - "aria-valuemin": this.min - }); - - this.valueDiv = $( "<div class='ui-progressbar-value ui-widget-header ui-corner-left'></div>" ) - .appendTo( this.element ); - - this._refreshValue(); - }, - - _destroy: function() { - this.element - .removeClass( "ui-progressbar ui-widget ui-widget-content ui-corner-all" ) - .removeAttr( "role" ) - .removeAttr( "aria-valuemin" ) - .removeAttr( "aria-valuemax" ) - .removeAttr( "aria-valuenow" ); - - this.valueDiv.remove(); - }, - - value: function( newValue ) { - if ( newValue === undefined ) { - return this.options.value; - } - - this.options.value = this._constrainedValue( newValue ); - this._refreshValue(); - }, - - _constrainedValue: function( newValue ) { - if ( newValue === undefined ) { - newValue = this.options.value; - } - - this.indeterminate = newValue === false; - - // sanitize value - if ( typeof newValue !== "number" ) { - newValue = 0; - } - - return this.indeterminate ? false : - Math.min( this.options.max, Math.max( this.min, newValue ) ); - }, - - _setOptions: function( options ) { - // Ensure "value" option is set after other values (like max) - var value = options.value; - delete options.value; - - this._super( options ); - - this.options.value = this._constrainedValue( value ); - this._refreshValue(); - }, - - _setOption: function( key, value ) { - if ( key === "max" ) { - // Don't allow a max less than min - value = Math.max( this.min, value ); - } - if ( key === "disabled" ) { - this.element - .toggleClass( "ui-state-disabled", !!value ) - .attr( "aria-disabled", value ); - } - this._super( key, value ); - }, - - _percentage: function() { - return this.indeterminate ? 100 : 100 * ( this.options.value - this.min ) / ( this.options.max - this.min ); - }, - - _refreshValue: function() { - var value = this.options.value, - percentage = this._percentage(); - - this.valueDiv - .toggle( this.indeterminate || value > this.min ) - .toggleClass( "ui-corner-right", value === this.options.max ) - .width( percentage.toFixed(0) + "%" ); - - this.element.toggleClass( "ui-progressbar-indeterminate", this.indeterminate ); - - if ( this.indeterminate ) { - this.element.removeAttr( "aria-valuenow" ); - if ( !this.overlayDiv ) { - this.overlayDiv = $( "<div class='ui-progressbar-overlay'></div>" ).appendTo( this.valueDiv ); - } - } else { - this.element.attr({ - "aria-valuemax": this.options.max, - "aria-valuenow": value - }); - if ( this.overlayDiv ) { - this.overlayDiv.remove(); - this.overlayDiv = null; - } - } - - if ( this.oldValue !== value ) { - this.oldValue = value; - this._trigger( "change" ); - } - if ( value === this.options.max ) { - this._trigger( "complete" ); - } - } -}); - - -/*! - * jQuery UI Selectable 1.11.4 - * http://jqueryui.com - * - * Copyright jQuery Foundation and other contributors - * Released under the MIT license. - * http://jquery.org/license - * - * http://api.jqueryui.com/selectable/ - */ - - -var selectable = $.widget("ui.selectable", $.ui.mouse, { - version: "1.11.4", - options: { - appendTo: "body", - autoRefresh: true, - distance: 0, - filter: "*", - tolerance: "touch", - - // callbacks - selected: null, - selecting: null, - start: null, - stop: null, - unselected: null, - unselecting: null - }, - _create: function() { - var selectees, - that = this; - - this.element.addClass("ui-selectable"); - - this.dragged = false; - - // cache selectee children based on filter - this.refresh = function() { - selectees = $(that.options.filter, that.element[0]); - selectees.addClass("ui-selectee"); - selectees.each(function() { - var $this = $(this), - pos = $this.offset(); - $.data(this, "selectable-item", { - element: this, - $element: $this, - left: pos.left, - top: pos.top, - right: pos.left + $this.outerWidth(), - bottom: pos.top + $this.outerHeight(), - startselected: false, - selected: $this.hasClass("ui-selected"), - selecting: $this.hasClass("ui-selecting"), - unselecting: $this.hasClass("ui-unselecting") - }); - }); - }; - this.refresh(); - - this.selectees = selectees.addClass("ui-selectee"); - - this._mouseInit(); - - this.helper = $("<div class='ui-selectable-helper'></div>"); - }, - - _destroy: function() { - this.selectees - .removeClass("ui-selectee") - .removeData("selectable-item"); - this.element - .removeClass("ui-selectable ui-selectable-disabled"); - this._mouseDestroy(); - }, - - _mouseStart: function(event) { - var that = this, - options = this.options; - - this.opos = [ event.pageX, event.pageY ]; - - if (this.options.disabled) { - return; - } - - this.selectees = $(options.filter, this.element[0]); - - this._trigger("start", event); - - $(options.appendTo).append(this.helper); - // position helper (lasso) - this.helper.css({ - "left": event.pageX, - "top": event.pageY, - "width": 0, - "height": 0 - }); - - if (options.autoRefresh) { - this.refresh(); - } - - this.selectees.filter(".ui-selected").each(function() { - var selectee = $.data(this, "selectable-item"); - selectee.startselected = true; - if (!event.metaKey && !event.ctrlKey) { - selectee.$element.removeClass("ui-selected"); - selectee.selected = false; - selectee.$element.addClass("ui-unselecting"); - selectee.unselecting = true; - // selectable UNSELECTING callback - that._trigger("unselecting", event, { - unselecting: selectee.element - }); - } - }); - - $(event.target).parents().addBack().each(function() { - var doSelect, - selectee = $.data(this, "selectable-item"); - if (selectee) { - doSelect = (!event.metaKey && !event.ctrlKey) || !selectee.$element.hasClass("ui-selected"); - selectee.$element - .removeClass(doSelect ? "ui-unselecting" : "ui-selected") - .addClass(doSelect ? "ui-selecting" : "ui-unselecting"); - selectee.unselecting = !doSelect; - selectee.selecting = doSelect; - selectee.selected = doSelect; - // selectable (UN)SELECTING callback - if (doSelect) { - that._trigger("selecting", event, { - selecting: selectee.element - }); - } else { - that._trigger("unselecting", event, { - unselecting: selectee.element - }); - } - return false; - } - }); - - }, - - _mouseDrag: function(event) { - - this.dragged = true; - - if (this.options.disabled) { - return; - } - - var tmp, - that = this, - options = this.options, - x1 = this.opos[0], - y1 = this.opos[1], - x2 = event.pageX, - y2 = event.pageY; - - if (x1 > x2) { tmp = x2; x2 = x1; x1 = tmp; } - if (y1 > y2) { tmp = y2; y2 = y1; y1 = tmp; } - this.helper.css({ left: x1, top: y1, width: x2 - x1, height: y2 - y1 }); - - this.selectees.each(function() { - var selectee = $.data(this, "selectable-item"), - hit = false; - - //prevent helper from being selected if appendTo: selectable - if (!selectee || selectee.element === that.element[0]) { - return; - } - - if (options.tolerance === "touch") { - hit = ( !(selectee.left > x2 || selectee.right < x1 || selectee.top > y2 || selectee.bottom < y1) ); - } else if (options.tolerance === "fit") { - hit = (selectee.left > x1 && selectee.right < x2 && selectee.top > y1 && selectee.bottom < y2); - } - - if (hit) { - // SELECT - if (selectee.selected) { - selectee.$element.removeClass("ui-selected"); - selectee.selected = false; - } - if (selectee.unselecting) { - selectee.$element.removeClass("ui-unselecting"); - selectee.unselecting = false; - } - if (!selectee.selecting) { - selectee.$element.addClass("ui-selecting"); - selectee.selecting = true; - // selectable SELECTING callback - that._trigger("selecting", event, { - selecting: selectee.element - }); - } - } else { - // UNSELECT - if (selectee.selecting) { - if ((event.metaKey || event.ctrlKey) && selectee.startselected) { - selectee.$element.removeClass("ui-selecting"); - selectee.selecting = false; - selectee.$element.addClass("ui-selected"); - selectee.selected = true; - } else { - selectee.$element.removeClass("ui-selecting"); - selectee.selecting = false; - if (selectee.startselected) { - selectee.$element.addClass("ui-unselecting"); - selectee.unselecting = true; - } - // selectable UNSELECTING callback - that._trigger("unselecting", event, { - unselecting: selectee.element - }); - } - } - if (selectee.selected) { - if (!event.metaKey && !event.ctrlKey && !selectee.startselected) { - selectee.$element.removeClass("ui-selected"); - selectee.selected = false; - - selectee.$element.addClass("ui-unselecting"); - selectee.unselecting = true; - // selectable UNSELECTING callback - that._trigger("unselecting", event, { - unselecting: selectee.element - }); - } - } - } - }); - - return false; - }, - - _mouseStop: function(event) { - var that = this; - - this.dragged = false; - - $(".ui-unselecting", this.element[0]).each(function() { - var selectee = $.data(this, "selectable-item"); - selectee.$element.removeClass("ui-unselecting"); - selectee.unselecting = false; - selectee.startselected = false; - that._trigger("unselected", event, { - unselected: selectee.element - }); - }); - $(".ui-selecting", this.element[0]).each(function() { - var selectee = $.data(this, "selectable-item"); - selectee.$element.removeClass("ui-selecting").addClass("ui-selected"); - selectee.selecting = false; - selectee.selected = true; - selectee.startselected = true; - that._trigger("selected", event, { - selected: selectee.element - }); - }); - this._trigger("stop", event); - - this.helper.remove(); - - return false; - } - -}); - - -/*! - * jQuery UI Selectmenu 1.11.4 - * http://jqueryui.com - * - * Copyright jQuery Foundation and other contributors - * Released under the MIT license. - * http://jquery.org/license - * - * http://api.jqueryui.com/selectmenu - */ - - -var selectmenu = $.widget( "ui.selectmenu", { - version: "1.11.4", - defaultElement: "<select>", - options: { - appendTo: null, - disabled: null, - icons: { - button: "ui-icon-triangle-1-s" - }, - position: { - my: "left top", - at: "left bottom", - collision: "none" - }, - width: null, - - // callbacks - change: null, - close: null, - focus: null, - open: null, - select: null - }, - - _create: function() { - var selectmenuId = this.element.uniqueId().attr( "id" ); - this.ids = { - element: selectmenuId, - button: selectmenuId + "-button", - menu: selectmenuId + "-menu" - }; - - this._drawButton(); - this._drawMenu(); - - if ( this.options.disabled ) { - this.disable(); - } - }, - - _drawButton: function() { - var that = this; - - // Associate existing label with the new button - this.label = $( "label[for='" + this.ids.element + "']" ).attr( "for", this.ids.button ); - this._on( this.label, { - click: function( event ) { - this.button.focus(); - event.preventDefault(); - } - }); - - // Hide original select element - this.element.hide(); - - // Create button - this.button = $( "<span>", { - "class": "ui-selectmenu-button ui-widget ui-state-default ui-corner-all", - tabindex: this.options.disabled ? -1 : 0, - id: this.ids.button, - role: "combobox", - "aria-expanded": "false", - "aria-autocomplete": "list", - "aria-owns": this.ids.menu, - "aria-haspopup": "true" - }) - .insertAfter( this.element ); - - $( "<span>", { - "class": "ui-icon " + this.options.icons.button - }) - .prependTo( this.button ); - - this.buttonText = $( "<span>", { - "class": "ui-selectmenu-text" - }) - .appendTo( this.button ); - - this._setText( this.buttonText, this.element.find( "option:selected" ).text() ); - this._resizeButton(); - - this._on( this.button, this._buttonEvents ); - this.button.one( "focusin", function() { - - // Delay rendering the menu items until the button receives focus. - // The menu may have already been rendered via a programmatic open. - if ( !that.menuItems ) { - that._refreshMenu(); - } - }); - this._hoverable( this.button ); - this._focusable( this.button ); - }, - - _drawMenu: function() { - var that = this; - - // Create menu - this.menu = $( "<ul>", { - "aria-hidden": "true", - "aria-labelledby": this.ids.button, - id: this.ids.menu - }); - - // Wrap menu - this.menuWrap = $( "<div>", { - "class": "ui-selectmenu-menu ui-front" - }) - .append( this.menu ) - .appendTo( this._appendTo() ); - - // Initialize menu widget - this.menuInstance = this.menu - .menu({ - role: "listbox", - select: function( event, ui ) { - event.preventDefault(); - - // support: IE8 - // If the item was selected via a click, the text selection - // will be destroyed in IE - that._setSelection(); - - that._select( ui.item.data( "ui-selectmenu-item" ), event ); - }, - focus: function( event, ui ) { - var item = ui.item.data( "ui-selectmenu-item" ); - - // Prevent inital focus from firing and check if its a newly focused item - if ( that.focusIndex != null && item.index !== that.focusIndex ) { - that._trigger( "focus", event, { item: item } ); - if ( !that.isOpen ) { - that._select( item, event ); - } - } - that.focusIndex = item.index; - - that.button.attr( "aria-activedescendant", - that.menuItems.eq( item.index ).attr( "id" ) ); - } - }) - .menu( "instance" ); - - // Adjust menu styles to dropdown - this.menu - .addClass( "ui-corner-bottom" ) - .removeClass( "ui-corner-all" ); - - // Don't close the menu on mouseleave - this.menuInstance._off( this.menu, "mouseleave" ); - - // Cancel the menu's collapseAll on document click - this.menuInstance._closeOnDocumentClick = function() { - return false; - }; - - // Selects often contain empty items, but never contain dividers - this.menuInstance._isDivider = function() { - return false; - }; - }, - - refresh: function() { - this._refreshMenu(); - this._setText( this.buttonText, this._getSelectedItem().text() ); - if ( !this.options.width ) { - this._resizeButton(); - } - }, - - _refreshMenu: function() { - this.menu.empty(); - - var item, - options = this.element.find( "option" ); - - if ( !options.length ) { - return; - } - - this._parseOptions( options ); - this._renderMenu( this.menu, this.items ); - - this.menuInstance.refresh(); - this.menuItems = this.menu.find( "li" ).not( ".ui-selectmenu-optgroup" ); - - item = this._getSelectedItem(); - - // Update the menu to have the correct item focused - this.menuInstance.focus( null, item ); - this._setAria( item.data( "ui-selectmenu-item" ) ); - - // Set disabled state - this._setOption( "disabled", this.element.prop( "disabled" ) ); - }, - - open: function( event ) { - if ( this.options.disabled ) { - return; - } - - // If this is the first time the menu is being opened, render the items - if ( !this.menuItems ) { - this._refreshMenu(); - } else { - - // Menu clears focus on close, reset focus to selected item - this.menu.find( ".ui-state-focus" ).removeClass( "ui-state-focus" ); - this.menuInstance.focus( null, this._getSelectedItem() ); - } - - this.isOpen = true; - this._toggleAttr(); - this._resizeMenu(); - this._position(); - - this._on( this.document, this._documentClick ); - - this._trigger( "open", event ); - }, - - _position: function() { - this.menuWrap.position( $.extend( { of: this.button }, this.options.position ) ); - }, - - close: function( event ) { - if ( !this.isOpen ) { - return; - } - - this.isOpen = false; - this._toggleAttr(); - - this.range = null; - this._off( this.document ); - - this._trigger( "close", event ); - }, - - widget: function() { - return this.button; - }, - - menuWidget: function() { - return this.menu; - }, - - _renderMenu: function( ul, items ) { - var that = this, - currentOptgroup = ""; - - $.each( items, function( index, item ) { - if ( item.optgroup !== currentOptgroup ) { - $( "<li>", { - "class": "ui-selectmenu-optgroup ui-menu-divider" + - ( item.element.parent( "optgroup" ).prop( "disabled" ) ? - " ui-state-disabled" : - "" ), - text: item.optgroup - }) - .appendTo( ul ); - - currentOptgroup = item.optgroup; - } - - that._renderItemData( ul, item ); - }); - }, - - _renderItemData: function( ul, item ) { - return this._renderItem( ul, item ).data( "ui-selectmenu-item", item ); - }, - - _renderItem: function( ul, item ) { - var li = $( "<li>" ); - - if ( item.disabled ) { - li.addClass( "ui-state-disabled" ); - } - this._setText( li, item.label ); - - return li.appendTo( ul ); - }, - - _setText: function( element, value ) { - if ( value ) { - element.text( value ); - } else { - element.html( "&#160;" ); - } - }, - - _move: function( direction, event ) { - var item, next, - filter = ".ui-menu-item"; - - if ( this.isOpen ) { - item = this.menuItems.eq( this.focusIndex ); - } else { - item = this.menuItems.eq( this.element[ 0 ].selectedIndex ); - filter += ":not(.ui-state-disabled)"; - } - - if ( direction === "first" || direction === "last" ) { - next = item[ direction === "first" ? "prevAll" : "nextAll" ]( filter ).eq( -1 ); - } else { - next = item[ direction + "All" ]( filter ).eq( 0 ); - } - - if ( next.length ) { - this.menuInstance.focus( event, next ); - } - }, - - _getSelectedItem: function() { - return this.menuItems.eq( this.element[ 0 ].selectedIndex ); - }, - - _toggle: function( event ) { - this[ this.isOpen ? "close" : "open" ]( event ); - }, - - _setSelection: function() { - var selection; - - if ( !this.range ) { - return; - } - - if ( window.getSelection ) { - selection = window.getSelection(); - selection.removeAllRanges(); - selection.addRange( this.range ); - - // support: IE8 - } else { - this.range.select(); - } - - // support: IE - // Setting the text selection kills the button focus in IE, but - // restoring the focus doesn't kill the selection. - this.button.focus(); - }, - - _documentClick: { - mousedown: function( event ) { - if ( !this.isOpen ) { - return; - } - - if ( !$( event.target ).closest( ".ui-selectmenu-menu, #" + this.ids.button ).length ) { - this.close( event ); - } - } - }, - - _buttonEvents: { - - // Prevent text selection from being reset when interacting with the selectmenu (#10144) - mousedown: function() { - var selection; - - if ( window.getSelection ) { - selection = window.getSelection(); - if ( selection.rangeCount ) { - this.range = selection.getRangeAt( 0 ); - } - - // support: IE8 - } else { - this.range = document.selection.createRange(); - } - }, - - click: function( event ) { - this._setSelection(); - this._toggle( event ); - }, - - keydown: function( event ) { - var preventDefault = true; - switch ( event.keyCode ) { - case $.ui.keyCode.TAB: - case $.ui.keyCode.ESCAPE: - this.close( event ); - preventDefault = false; - break; - case $.ui.keyCode.ENTER: - if ( this.isOpen ) { - this._selectFocusedItem( event ); - } - break; - case $.ui.keyCode.UP: - if ( event.altKey ) { - this._toggle( event ); - } else { - this._move( "prev", event ); - } - break; - case $.ui.keyCode.DOWN: - if ( event.altKey ) { - this._toggle( event ); - } else { - this._move( "next", event ); - } - break; - case $.ui.keyCode.SPACE: - if ( this.isOpen ) { - this._selectFocusedItem( event ); - } else { - this._toggle( event ); - } - break; - case $.ui.keyCode.LEFT: - this._move( "prev", event ); - break; - case $.ui.keyCode.RIGHT: - this._move( "next", event ); - break; - case $.ui.keyCode.HOME: - case $.ui.keyCode.PAGE_UP: - this._move( "first", event ); - break; - case $.ui.keyCode.END: - case $.ui.keyCode.PAGE_DOWN: - this._move( "last", event ); - break; - default: - this.menu.trigger( event ); - preventDefault = false; - } - - if ( preventDefault ) { - event.preventDefault(); - } - } - }, - - _selectFocusedItem: function( event ) { - var item = this.menuItems.eq( this.focusIndex ); - if ( !item.hasClass( "ui-state-disabled" ) ) { - this._select( item.data( "ui-selectmenu-item" ), event ); - } - }, - - _select: function( item, event ) { - var oldIndex = this.element[ 0 ].selectedIndex; - - // Change native select element - this.element[ 0 ].selectedIndex = item.index; - this._setText( this.buttonText, item.label ); - this._setAria( item ); - this._trigger( "select", event, { item: item } ); - - if ( item.index !== oldIndex ) { - this._trigger( "change", event, { item: item } ); - } - - this.close( event ); - }, - - _setAria: function( item ) { - var id = this.menuItems.eq( item.index ).attr( "id" ); - - this.button.attr({ - "aria-labelledby": id, - "aria-activedescendant": id - }); - this.menu.attr( "aria-activedescendant", id ); - }, - - _setOption: function( key, value ) { - if ( key === "icons" ) { - this.button.find( "span.ui-icon" ) - .removeClass( this.options.icons.button ) - .addClass( value.button ); - } - - this._super( key, value ); - - if ( key === "appendTo" ) { - this.menuWrap.appendTo( this._appendTo() ); - } - - if ( key === "disabled" ) { - this.menuInstance.option( "disabled", value ); - this.button - .toggleClass( "ui-state-disabled", value ) - .attr( "aria-disabled", value ); - - this.element.prop( "disabled", value ); - if ( value ) { - this.button.attr( "tabindex", -1 ); - this.close(); - } else { - this.button.attr( "tabindex", 0 ); - } - } - - if ( key === "width" ) { - this._resizeButton(); - } - }, - - _appendTo: function() { - var element = this.options.appendTo; - - if ( element ) { - element = element.jquery || element.nodeType ? - $( element ) : - this.document.find( element ).eq( 0 ); - } - - if ( !element || !element[ 0 ] ) { - element = this.element.closest( ".ui-front" ); - } - - if ( !element.length ) { - element = this.document[ 0 ].body; - } - - return element; - }, - - _toggleAttr: function() { - this.button - .toggleClass( "ui-corner-top", this.isOpen ) - .toggleClass( "ui-corner-all", !this.isOpen ) - .attr( "aria-expanded", this.isOpen ); - this.menuWrap.toggleClass( "ui-selectmenu-open", this.isOpen ); - this.menu.attr( "aria-hidden", !this.isOpen ); - }, - - _resizeButton: function() { - var width = this.options.width; - - if ( !width ) { - width = this.element.show().outerWidth(); - this.element.hide(); - } - - this.button.outerWidth( width ); - }, - - _resizeMenu: function() { - this.menu.outerWidth( Math.max( - this.button.outerWidth(), - - // support: IE10 - // IE10 wraps long text (possibly a rounding bug) - // so we add 1px to avoid the wrapping - this.menu.width( "" ).outerWidth() + 1 - ) ); - }, - - _getCreateOptions: function() { - return { disabled: this.element.prop( "disabled" ) }; - }, - - _parseOptions: function( options ) { - var data = []; - options.each(function( index, item ) { - var option = $( item ), - optgroup = option.parent( "optgroup" ); - data.push({ - element: option, - index: index, - value: option.val(), - label: option.text(), - optgroup: optgroup.attr( "label" ) || "", - disabled: optgroup.prop( "disabled" ) || option.prop( "disabled" ) - }); - }); - this.items = data; - }, - - _destroy: function() { - this.menuWrap.remove(); - this.button.remove(); - this.element.show(); - this.element.removeUniqueId(); - this.label.attr( "for", this.ids.element ); - } -}); - - -/*! - * jQuery UI Slider 1.11.4 - * http://jqueryui.com - * - * Copyright jQuery Foundation and other contributors - * Released under the MIT license. - * http://jquery.org/license - * - * http://api.jqueryui.com/slider/ - */ - - -var slider = $.widget( "ui.slider", $.ui.mouse, { - version: "1.11.4", - widgetEventPrefix: "slide", - - options: { - animate: false, - distance: 0, - max: 100, - min: 0, - orientation: "horizontal", - range: false, - step: 1, - value: 0, - values: null, - - // callbacks - change: null, - slide: null, - start: null, - stop: null - }, - - // number of pages in a slider - // (how many times can you page up/down to go through the whole range) - numPages: 5, - - _create: function() { - this._keySliding = false; - this._mouseSliding = false; - this._animateOff = true; - this._handleIndex = null; - this._detectOrientation(); - this._mouseInit(); - this._calculateNewMax(); - - this.element - .addClass( "ui-slider" + - " ui-slider-" + this.orientation + - " ui-widget" + - " ui-widget-content" + - " ui-corner-all"); - - this._refresh(); - this._setOption( "disabled", this.options.disabled ); - - this._animateOff = false; - }, - - _refresh: function() { - this._createRange(); - this._createHandles(); - this._setupEvents(); - this._refreshValue(); - }, - - _createHandles: function() { - var i, handleCount, - options = this.options, - existingHandles = this.element.find( ".ui-slider-handle" ).addClass( "ui-state-default ui-corner-all" ), - handle = "<span class='ui-slider-handle ui-state-default ui-corner-all' tabindex='0'></span>", - handles = []; - - handleCount = ( options.values && options.values.length ) || 1; - - if ( existingHandles.length > handleCount ) { - existingHandles.slice( handleCount ).remove(); - existingHandles = existingHandles.slice( 0, handleCount ); - } - - for ( i = existingHandles.length; i < handleCount; i++ ) { - handles.push( handle ); - } - - this.handles = existingHandles.add( $( handles.join( "" ) ).appendTo( this.element ) ); - - this.handle = this.handles.eq( 0 ); - - this.handles.each(function( i ) { - $( this ).data( "ui-slider-handle-index", i ); - }); - }, - - _createRange: function() { - var options = this.options, - classes = ""; - - if ( options.range ) { - if ( options.range === true ) { - if ( !options.values ) { - options.values = [ this._valueMin(), this._valueMin() ]; - } else if ( options.values.length && options.values.length !== 2 ) { - options.values = [ options.values[0], options.values[0] ]; - } else if ( $.isArray( options.values ) ) { - options.values = options.values.slice(0); - } - } - - if ( !this.range || !this.range.length ) { - this.range = $( "<div></div>" ) - .appendTo( this.element ); - - classes = "ui-slider-range" + - // note: this isn't the most fittingly semantic framework class for this element, - // but worked best visually with a variety of themes - " ui-widget-header ui-corner-all"; - } else { - this.range.removeClass( "ui-slider-range-min ui-slider-range-max" ) - // Handle range switching from true to min/max - .css({ - "left": "", - "bottom": "" - }); - } - - this.range.addClass( classes + - ( ( options.range === "min" || options.range === "max" ) ? " ui-slider-range-" + options.range : "" ) ); - } else { - if ( this.range ) { - this.range.remove(); - } - this.range = null; - } - }, - - _setupEvents: function() { - this._off( this.handles ); - this._on( this.handles, this._handleEvents ); - this._hoverable( this.handles ); - this._focusable( this.handles ); - }, - - _destroy: function() { - this.handles.remove(); - if ( this.range ) { - this.range.remove(); - } - - this.element - .removeClass( "ui-slider" + - " ui-slider-horizontal" + - " ui-slider-vertical" + - " ui-widget" + - " ui-widget-content" + - " ui-corner-all" ); - - this._mouseDestroy(); - }, - - _mouseCapture: function( event ) { - var position, normValue, distance, closestHandle, index, allowed, offset, mouseOverHandle, - that = this, - o = this.options; - - if ( o.disabled ) { - return false; - } - - this.elementSize = { - width: this.element.outerWidth(), - height: this.element.outerHeight() - }; - this.elementOffset = this.element.offset(); - - position = { x: event.pageX, y: event.pageY }; - normValue = this._normValueFromMouse( position ); - distance = this._valueMax() - this._valueMin() + 1; - this.handles.each(function( i ) { - var thisDistance = Math.abs( normValue - that.values(i) ); - if (( distance > thisDistance ) || - ( distance === thisDistance && - (i === that._lastChangedValue || that.values(i) === o.min ))) { - distance = thisDistance; - closestHandle = $( this ); - index = i; - } - }); - - allowed = this._start( event, index ); - if ( allowed === false ) { - return false; - } - this._mouseSliding = true; - - this._handleIndex = index; - - closestHandle - .addClass( "ui-state-active" ) - .focus(); - - offset = closestHandle.offset(); - mouseOverHandle = !$( event.target ).parents().addBack().is( ".ui-slider-handle" ); - this._clickOffset = mouseOverHandle ? { left: 0, top: 0 } : { - left: event.pageX - offset.left - ( closestHandle.width() / 2 ), - top: event.pageY - offset.top - - ( closestHandle.height() / 2 ) - - ( parseInt( closestHandle.css("borderTopWidth"), 10 ) || 0 ) - - ( parseInt( closestHandle.css("borderBottomWidth"), 10 ) || 0) + - ( parseInt( closestHandle.css("marginTop"), 10 ) || 0) - }; - - if ( !this.handles.hasClass( "ui-state-hover" ) ) { - this._slide( event, index, normValue ); - } - this._animateOff = true; - return true; - }, - - _mouseStart: function() { - return true; - }, - - _mouseDrag: function( event ) { - var position = { x: event.pageX, y: event.pageY }, - normValue = this._normValueFromMouse( position ); - - this._slide( event, this._handleIndex, normValue ); - - return false; - }, - - _mouseStop: function( event ) { - this.handles.removeClass( "ui-state-active" ); - this._mouseSliding = false; - - this._stop( event, this._handleIndex ); - this._change( event, this._handleIndex ); - - this._handleIndex = null; - this._clickOffset = null; - this._animateOff = false; - - return false; - }, - - _detectOrientation: function() { - this.orientation = ( this.options.orientation === "vertical" ) ? "vertical" : "horizontal"; - }, - - _normValueFromMouse: function( position ) { - var pixelTotal, - pixelMouse, - percentMouse, - valueTotal, - valueMouse; - - if ( this.orientation === "horizontal" ) { - pixelTotal = this.elementSize.width; - pixelMouse = position.x - this.elementOffset.left - ( this._clickOffset ? this._clickOffset.left : 0 ); - } else { - pixelTotal = this.elementSize.height; - pixelMouse = position.y - this.elementOffset.top - ( this._clickOffset ? this._clickOffset.top : 0 ); - } - - percentMouse = ( pixelMouse / pixelTotal ); - if ( percentMouse > 1 ) { - percentMouse = 1; - } - if ( percentMouse < 0 ) { - percentMouse = 0; - } - if ( this.orientation === "vertical" ) { - percentMouse = 1 - percentMouse; - } - - valueTotal = this._valueMax() - this._valueMin(); - valueMouse = this._valueMin() + percentMouse * valueTotal; - - return this._trimAlignValue( valueMouse ); - }, - - _start: function( event, index ) { - var uiHash = { - handle: this.handles[ index ], - value: this.value() - }; - if ( this.options.values && this.options.values.length ) { - uiHash.value = this.values( index ); - uiHash.values = this.values(); - } - return this._trigger( "start", event, uiHash ); - }, - - _slide: function( event, index, newVal ) { - var otherVal, - newValues, - allowed; - - if ( this.options.values && this.options.values.length ) { - otherVal = this.values( index ? 0 : 1 ); - - if ( ( this.options.values.length === 2 && this.options.range === true ) && - ( ( index === 0 && newVal > otherVal) || ( index === 1 && newVal < otherVal ) ) - ) { - newVal = otherVal; - } - - if ( newVal !== this.values( index ) ) { - newValues = this.values(); - newValues[ index ] = newVal; - // A slide can be canceled by returning false from the slide callback - allowed = this._trigger( "slide", event, { - handle: this.handles[ index ], - value: newVal, - values: newValues - } ); - otherVal = this.values( index ? 0 : 1 ); - if ( allowed !== false ) { - this.values( index, newVal ); - } - } - } else { - if ( newVal !== this.value() ) { - // A slide can be canceled by returning false from the slide callback - allowed = this._trigger( "slide", event, { - handle: this.handles[ index ], - value: newVal - } ); - if ( allowed !== false ) { - this.value( newVal ); - } - } - } - }, - - _stop: function( event, index ) { - var uiHash = { - handle: this.handles[ index ], - value: this.value() - }; - if ( this.options.values && this.options.values.length ) { - uiHash.value = this.values( index ); - uiHash.values = this.values(); - } - - this._trigger( "stop", event, uiHash ); - }, - - _change: function( event, index ) { - if ( !this._keySliding && !this._mouseSliding ) { - var uiHash = { - handle: this.handles[ index ], - value: this.value() - }; - if ( this.options.values && this.options.values.length ) { - uiHash.value = this.values( index ); - uiHash.values = this.values(); - } - - //store the last changed value index for reference when handles overlap - this._lastChangedValue = index; - - this._trigger( "change", event, uiHash ); - } - }, - - value: function( newValue ) { - if ( arguments.length ) { - this.options.value = this._trimAlignValue( newValue ); - this._refreshValue(); - this._change( null, 0 ); - return; - } - - return this._value(); - }, - - values: function( index, newValue ) { - var vals, - newValues, - i; - - if ( arguments.length > 1 ) { - this.options.values[ index ] = this._trimAlignValue( newValue ); - this._refreshValue(); - this._change( null, index ); - return; - } - - if ( arguments.length ) { - if ( $.isArray( arguments[ 0 ] ) ) { - vals = this.options.values; - newValues = arguments[ 0 ]; - for ( i = 0; i < vals.length; i += 1 ) { - vals[ i ] = this._trimAlignValue( newValues[ i ] ); - this._change( null, i ); - } - this._refreshValue(); - } else { - if ( this.options.values && this.options.values.length ) { - return this._values( index ); - } else { - return this.value(); - } - } - } else { - return this._values(); - } - }, - - _setOption: function( key, value ) { - var i, - valsLength = 0; - - if ( key === "range" && this.options.range === true ) { - if ( value === "min" ) { - this.options.value = this._values( 0 ); - this.options.values = null; - } else if ( value === "max" ) { - this.options.value = this._values( this.options.values.length - 1 ); - this.options.values = null; - } - } - - if ( $.isArray( this.options.values ) ) { - valsLength = this.options.values.length; - } - - if ( key === "disabled" ) { - this.element.toggleClass( "ui-state-disabled", !!value ); - } - - this._super( key, value ); - - switch ( key ) { - case "orientation": - this._detectOrientation(); - this.element - .removeClass( "ui-slider-horizontal ui-slider-vertical" ) - .addClass( "ui-slider-" + this.orientation ); - this._refreshValue(); - - // Reset positioning from previous orientation - this.handles.css( value === "horizontal" ? "bottom" : "left", "" ); - break; - case "value": - this._animateOff = true; - this._refreshValue(); - this._change( null, 0 ); - this._animateOff = false; - break; - case "values": - this._animateOff = true; - this._refreshValue(); - for ( i = 0; i < valsLength; i += 1 ) { - this._change( null, i ); - } - this._animateOff = false; - break; - case "step": - case "min": - case "max": - this._animateOff = true; - this._calculateNewMax(); - this._refreshValue(); - this._animateOff = false; - break; - case "range": - this._animateOff = true; - this._refresh(); - this._animateOff = false; - break; - } - }, - - //internal value getter - // _value() returns value trimmed by min and max, aligned by step - _value: function() { - var val = this.options.value; - val = this._trimAlignValue( val ); - - return val; - }, - - //internal values getter - // _values() returns array of values trimmed by min and max, aligned by step - // _values( index ) returns single value trimmed by min and max, aligned by step - _values: function( index ) { - var val, - vals, - i; - - if ( arguments.length ) { - val = this.options.values[ index ]; - val = this._trimAlignValue( val ); - - return val; - } else if ( this.options.values && this.options.values.length ) { - // .slice() creates a copy of the array - // this copy gets trimmed by min and max and then returned - vals = this.options.values.slice(); - for ( i = 0; i < vals.length; i += 1) { - vals[ i ] = this._trimAlignValue( vals[ i ] ); - } - - return vals; - } else { - return []; - } - }, - - // returns the step-aligned value that val is closest to, between (inclusive) min and max - _trimAlignValue: function( val ) { - if ( val <= this._valueMin() ) { - return this._valueMin(); - } - if ( val >= this._valueMax() ) { - return this._valueMax(); - } - var step = ( this.options.step > 0 ) ? this.options.step : 1, - valModStep = (val - this._valueMin()) % step, - alignValue = val - valModStep; - - if ( Math.abs(valModStep) * 2 >= step ) { - alignValue += ( valModStep > 0 ) ? step : ( -step ); - } - - // Since JavaScript has problems with large floats, round - // the final value to 5 digits after the decimal point (see #4124) - return parseFloat( alignValue.toFixed(5) ); - }, - - _calculateNewMax: function() { - var max = this.options.max, - min = this._valueMin(), - step = this.options.step, - aboveMin = Math.floor( ( +( max - min ).toFixed( this._precision() ) ) / step ) * step; - max = aboveMin + min; - this.max = parseFloat( max.toFixed( this._precision() ) ); - }, - - _precision: function() { - var precision = this._precisionOf( this.options.step ); - if ( this.options.min !== null ) { - precision = Math.max( precision, this._precisionOf( this.options.min ) ); - } - return precision; - }, - - _precisionOf: function( num ) { - var str = num.toString(), - decimal = str.indexOf( "." ); - return decimal === -1 ? 0 : str.length - decimal - 1; - }, - - _valueMin: function() { - return this.options.min; - }, - - _valueMax: function() { - return this.max; - }, - - _refreshValue: function() { - var lastValPercent, valPercent, value, valueMin, valueMax, - oRange = this.options.range, - o = this.options, - that = this, - animate = ( !this._animateOff ) ? o.animate : false, - _set = {}; - - if ( this.options.values && this.options.values.length ) { - this.handles.each(function( i ) { - valPercent = ( that.values(i) - that._valueMin() ) / ( that._valueMax() - that._valueMin() ) * 100; - _set[ that.orientation === "horizontal" ? "left" : "bottom" ] = valPercent + "%"; - $( this ).stop( 1, 1 )[ animate ? "animate" : "css" ]( _set, o.animate ); - if ( that.options.range === true ) { - if ( that.orientation === "horizontal" ) { - if ( i === 0 ) { - that.range.stop( 1, 1 )[ animate ? "animate" : "css" ]( { left: valPercent + "%" }, o.animate ); - } - if ( i === 1 ) { - that.range[ animate ? "animate" : "css" ]( { width: ( valPercent - lastValPercent ) + "%" }, { queue: false, duration: o.animate } ); - } - } else { - if ( i === 0 ) { - that.range.stop( 1, 1 )[ animate ? "animate" : "css" ]( { bottom: ( valPercent ) + "%" }, o.animate ); - } - if ( i === 1 ) { - that.range[ animate ? "animate" : "css" ]( { height: ( valPercent - lastValPercent ) + "%" }, { queue: false, duration: o.animate } ); - } - } - } - lastValPercent = valPercent; - }); - } else { - value = this.value(); - valueMin = this._valueMin(); - valueMax = this._valueMax(); - valPercent = ( valueMax !== valueMin ) ? - ( value - valueMin ) / ( valueMax - valueMin ) * 100 : - 0; - _set[ this.orientation === "horizontal" ? "left" : "bottom" ] = valPercent + "%"; - this.handle.stop( 1, 1 )[ animate ? "animate" : "css" ]( _set, o.animate ); - - if ( oRange === "min" && this.orientation === "horizontal" ) { - this.range.stop( 1, 1 )[ animate ? "animate" : "css" ]( { width: valPercent + "%" }, o.animate ); - } - if ( oRange === "max" && this.orientation === "horizontal" ) { - this.range[ animate ? "animate" : "css" ]( { width: ( 100 - valPercent ) + "%" }, { queue: false, duration: o.animate } ); - } - if ( oRange === "min" && this.orientation === "vertical" ) { - this.range.stop( 1, 1 )[ animate ? "animate" : "css" ]( { height: valPercent + "%" }, o.animate ); - } - if ( oRange === "max" && this.orientation === "vertical" ) { - this.range[ animate ? "animate" : "css" ]( { height: ( 100 - valPercent ) + "%" }, { queue: false, duration: o.animate } ); - } - } - }, - - _handleEvents: { - keydown: function( event ) { - var allowed, curVal, newVal, step, - index = $( event.target ).data( "ui-slider-handle-index" ); - - switch ( event.keyCode ) { - case $.ui.keyCode.HOME: - case $.ui.keyCode.END: - case $.ui.keyCode.PAGE_UP: - case $.ui.keyCode.PAGE_DOWN: - case $.ui.keyCode.UP: - case $.ui.keyCode.RIGHT: - case $.ui.keyCode.DOWN: - case $.ui.keyCode.LEFT: - event.preventDefault(); - if ( !this._keySliding ) { - this._keySliding = true; - $( event.target ).addClass( "ui-state-active" ); - allowed = this._start( event, index ); - if ( allowed === false ) { - return; - } - } - break; - } - - step = this.options.step; - if ( this.options.values && this.options.values.length ) { - curVal = newVal = this.values( index ); - } else { - curVal = newVal = this.value(); - } - - switch ( event.keyCode ) { - case $.ui.keyCode.HOME: - newVal = this._valueMin(); - break; - case $.ui.keyCode.END: - newVal = this._valueMax(); - break; - case $.ui.keyCode.PAGE_UP: - newVal = this._trimAlignValue( - curVal + ( ( this._valueMax() - this._valueMin() ) / this.numPages ) - ); - break; - case $.ui.keyCode.PAGE_DOWN: - newVal = this._trimAlignValue( - curVal - ( (this._valueMax() - this._valueMin()) / this.numPages ) ); - break; - case $.ui.keyCode.UP: - case $.ui.keyCode.RIGHT: - if ( curVal === this._valueMax() ) { - return; - } - newVal = this._trimAlignValue( curVal + step ); - break; - case $.ui.keyCode.DOWN: - case $.ui.keyCode.LEFT: - if ( curVal === this._valueMin() ) { - return; - } - newVal = this._trimAlignValue( curVal - step ); - break; - } - - this._slide( event, index, newVal ); - }, - keyup: function( event ) { - var index = $( event.target ).data( "ui-slider-handle-index" ); - - if ( this._keySliding ) { - this._keySliding = false; - this._stop( event, index ); - this._change( event, index ); - $( event.target ).removeClass( "ui-state-active" ); - } - } - } -}); - - -/*! - * jQuery UI Sortable 1.11.4 - * http://jqueryui.com - * - * Copyright jQuery Foundation and other contributors - * Released under the MIT license. - * http://jquery.org/license - * - * http://api.jqueryui.com/sortable/ - */ - - -var sortable = $.widget("ui.sortable", $.ui.mouse, { - version: "1.11.4", - widgetEventPrefix: "sort", - ready: false, - options: { - appendTo: "parent", - axis: false, - connectWith: false, - containment: false, - cursor: "auto", - cursorAt: false, - dropOnEmpty: true, - forcePlaceholderSize: false, - forceHelperSize: false, - grid: false, - handle: false, - helper: "original", - items: "> *", - opacity: false, - placeholder: false, - revert: false, - scroll: true, - scrollSensitivity: 20, - scrollSpeed: 20, - scope: "default", - tolerance: "intersect", - zIndex: 1000, - - // callbacks - activate: null, - beforeStop: null, - change: null, - deactivate: null, - out: null, - over: null, - receive: null, - remove: null, - sort: null, - start: null, - stop: null, - update: null - }, - - _isOverAxis: function( x, reference, size ) { - return ( x >= reference ) && ( x < ( reference + size ) ); - }, - - _isFloating: function( item ) { - return (/left|right/).test(item.css("float")) || (/inline|table-cell/).test(item.css("display")); - }, - - _create: function() { - this.containerCache = {}; - this.element.addClass("ui-sortable"); - - //Get the items - this.refresh(); - - //Let's determine the parent's offset - this.offset = this.element.offset(); - - //Initialize mouse events for interaction - this._mouseInit(); - - this._setHandleClassName(); - - //We're ready to go - this.ready = true; - - }, - - _setOption: function( key, value ) { - this._super( key, value ); - - if ( key === "handle" ) { - this._setHandleClassName(); - } - }, - - _setHandleClassName: function() { - this.element.find( ".ui-sortable-handle" ).removeClass( "ui-sortable-handle" ); - $.each( this.items, function() { - ( this.instance.options.handle ? - this.item.find( this.instance.options.handle ) : this.item ) - .addClass( "ui-sortable-handle" ); - }); - }, - - _destroy: function() { - this.element - .removeClass( "ui-sortable ui-sortable-disabled" ) - .find( ".ui-sortable-handle" ) - .removeClass( "ui-sortable-handle" ); - this._mouseDestroy(); - - for ( var i = this.items.length - 1; i >= 0; i-- ) { - this.items[i].item.removeData(this.widgetName + "-item"); - } - - return this; - }, - - _mouseCapture: function(event, overrideHandle) { - var currentItem = null, - validHandle = false, - that = this; - - if (this.reverting) { - return false; - } - - if(this.options.disabled || this.options.type === "static") { - return false; - } - - //We have to refresh the items data once first - this._refreshItems(event); - - //Find out if the clicked node (or one of its parents) is a actual item in this.items - $(event.target).parents().each(function() { - if($.data(this, that.widgetName + "-item") === that) { - currentItem = $(this); - return false; - } - }); - if($.data(event.target, that.widgetName + "-item") === that) { - currentItem = $(event.target); - } - - if(!currentItem) { - return false; - } - if(this.options.handle && !overrideHandle) { - $(this.options.handle, currentItem).find("*").addBack().each(function() { - if(this === event.target) { - validHandle = true; - } - }); - if(!validHandle) { - return false; - } - } - - this.currentItem = currentItem; - this._removeCurrentsFromItems(); - return true; - - }, - - _mouseStart: function(event, overrideHandle, noActivation) { - - var i, body, - o = this.options; - - this.currentContainer = this; - - //We only need to call refreshPositions, because the refreshItems call has been moved to mouseCapture - this.refreshPositions(); - - //Create and append the visible helper - this.helper = this._createHelper(event); - - //Cache the helper size - this._cacheHelperProportions(); - - /* - * - Position generation - - * This block generates everything position related - it's the core of draggables. - */ - - //Cache the margins of the original element - this._cacheMargins(); - - //Get the next scrolling parent - this.scrollParent = this.helper.scrollParent(); - - //The element's absolute position on the page minus margins - this.offset = this.currentItem.offset(); - this.offset = { - top: this.offset.top - this.margins.top, - left: this.offset.left - this.margins.left - }; - - $.extend(this.offset, { - click: { //Where the click happened, relative to the element - left: event.pageX - this.offset.left, - top: event.pageY - this.offset.top - }, - parent: this._getParentOffset(), - relative: this._getRelativeOffset() //This is a relative to absolute position minus the actual position calculation - only used for relative positioned helper - }); - - // Only after we got the offset, we can change the helper's position to absolute - // TODO: Still need to figure out a way to make relative sorting possible - this.helper.css("position", "absolute"); - this.cssPosition = this.helper.css("position"); - - //Generate the original position - this.originalPosition = this._generatePosition(event); - this.originalPageX = event.pageX; - this.originalPageY = event.pageY; - - //Adjust the mouse offset relative to the helper if "cursorAt" is supplied - (o.cursorAt && this._adjustOffsetFromHelper(o.cursorAt)); - - //Cache the former DOM position - this.domPosition = { prev: this.currentItem.prev()[0], parent: this.currentItem.parent()[0] }; - - //If the helper is not the original, hide the original so it's not playing any role during the drag, won't cause anything bad this way - if(this.helper[0] !== this.currentItem[0]) { - this.currentItem.hide(); - } - - //Create the placeholder - this._createPlaceholder(); - - //Set a containment if given in the options - if(o.containment) { - this._setContainment(); - } - - if( o.cursor && o.cursor !== "auto" ) { // cursor option - body = this.document.find( "body" ); - - // support: IE - this.storedCursor = body.css( "cursor" ); - body.css( "cursor", o.cursor ); - - this.storedStylesheet = $( "<style>*{ cursor: "+o.cursor+" !important; }</style>" ).appendTo( body ); - } - - if(o.opacity) { // opacity option - if (this.helper.css("opacity")) { - this._storedOpacity = this.helper.css("opacity"); - } - this.helper.css("opacity", o.opacity); - } - - if(o.zIndex) { // zIndex option - if (this.helper.css("zIndex")) { - this._storedZIndex = this.helper.css("zIndex"); - } - this.helper.css("zIndex", o.zIndex); - } - - //Prepare scrolling - if(this.scrollParent[0] !== this.document[0] && this.scrollParent[0].tagName !== "HTML") { - this.overflowOffset = this.scrollParent.offset(); - } - - //Call callbacks - this._trigger("start", event, this._uiHash()); - - //Recache the helper size - if(!this._preserveHelperProportions) { - this._cacheHelperProportions(); - } - - - //Post "activate" events to possible containers - if( !noActivation ) { - for ( i = this.containers.length - 1; i >= 0; i-- ) { - this.containers[ i ]._trigger( "activate", event, this._uiHash( this ) ); - } - } - - //Prepare possible droppables - if($.ui.ddmanager) { - $.ui.ddmanager.current = this; - } - - if ($.ui.ddmanager && !o.dropBehaviour) { - $.ui.ddmanager.prepareOffsets(this, event); - } - - this.dragging = true; - - this.helper.addClass("ui-sortable-helper"); - this._mouseDrag(event); //Execute the drag once - this causes the helper not to be visible before getting its correct position - return true; - - }, - - _mouseDrag: function(event) { - var i, item, itemElement, intersection, - o = this.options, - scrolled = false; - - //Compute the helpers position - this.position = this._generatePosition(event); - this.positionAbs = this._convertPositionTo("absolute"); - - if (!this.lastPositionAbs) { - this.lastPositionAbs = this.positionAbs; - } - - //Do scrolling - if(this.options.scroll) { - if(this.scrollParent[0] !== this.document[0] && this.scrollParent[0].tagName !== "HTML") { - - if((this.overflowOffset.top + this.scrollParent[0].offsetHeight) - event.pageY < o.scrollSensitivity) { - this.scrollParent[0].scrollTop = scrolled = this.scrollParent[0].scrollTop + o.scrollSpeed; - } else if(event.pageY - this.overflowOffset.top < o.scrollSensitivity) { - this.scrollParent[0].scrollTop = scrolled = this.scrollParent[0].scrollTop - o.scrollSpeed; - } - - if((this.overflowOffset.left + this.scrollParent[0].offsetWidth) - event.pageX < o.scrollSensitivity) { - this.scrollParent[0].scrollLeft = scrolled = this.scrollParent[0].scrollLeft + o.scrollSpeed; - } else if(event.pageX - this.overflowOffset.left < o.scrollSensitivity) { - this.scrollParent[0].scrollLeft = scrolled = this.scrollParent[0].scrollLeft - o.scrollSpeed; - } - - } else { - - if(event.pageY - this.document.scrollTop() < o.scrollSensitivity) { - scrolled = this.document.scrollTop(this.document.scrollTop() - o.scrollSpeed); - } else if(this.window.height() - (event.pageY - this.document.scrollTop()) < o.scrollSensitivity) { - scrolled = this.document.scrollTop(this.document.scrollTop() + o.scrollSpeed); - } - - if(event.pageX - this.document.scrollLeft() < o.scrollSensitivity) { - scrolled = this.document.scrollLeft(this.document.scrollLeft() - o.scrollSpeed); - } else if(this.window.width() - (event.pageX - this.document.scrollLeft()) < o.scrollSensitivity) { - scrolled = this.document.scrollLeft(this.document.scrollLeft() + o.scrollSpeed); - } - - } - - if(scrolled !== false && $.ui.ddmanager && !o.dropBehaviour) { - $.ui.ddmanager.prepareOffsets(this, event); - } - } - - //Regenerate the absolute position used for position checks - this.positionAbs = this._convertPositionTo("absolute"); - - //Set the helper position - if(!this.options.axis || this.options.axis !== "y") { - this.helper[0].style.left = this.position.left+"px"; - } - if(!this.options.axis || this.options.axis !== "x") { - this.helper[0].style.top = this.position.top+"px"; - } - - //Rearrange - for (i = this.items.length - 1; i >= 0; i--) { - - //Cache variables and intersection, continue if no intersection - item = this.items[i]; - itemElement = item.item[0]; - intersection = this._intersectsWithPointer(item); - if (!intersection) { - continue; - } - - // Only put the placeholder inside the current Container, skip all - // items from other containers. This works because when moving - // an item from one container to another the - // currentContainer is switched before the placeholder is moved. - // - // Without this, moving items in "sub-sortables" can cause - // the placeholder to jitter between the outer and inner container. - if (item.instance !== this.currentContainer) { - continue; - } - - // cannot intersect with itself - // no useless actions that have been done before - // no action if the item moved is the parent of the item checked - if (itemElement !== this.currentItem[0] && - this.placeholder[intersection === 1 ? "next" : "prev"]()[0] !== itemElement && - !$.contains(this.placeholder[0], itemElement) && - (this.options.type === "semi-dynamic" ? !$.contains(this.element[0], itemElement) : true) - ) { - - this.direction = intersection === 1 ? "down" : "up"; - - if (this.options.tolerance === "pointer" || this._intersectsWithSides(item)) { - this._rearrange(event, item); - } else { - break; - } - - this._trigger("change", event, this._uiHash()); - break; - } - } - - //Post events to containers - this._contactContainers(event); - - //Interconnect with droppables - if($.ui.ddmanager) { - $.ui.ddmanager.drag(this, event); - } - - //Call callbacks - this._trigger("sort", event, this._uiHash()); - - this.lastPositionAbs = this.positionAbs; - return false; - - }, - - _mouseStop: function(event, noPropagation) { - - if(!event) { - return; - } - - //If we are using droppables, inform the manager about the drop - if ($.ui.ddmanager && !this.options.dropBehaviour) { - $.ui.ddmanager.drop(this, event); - } - - if(this.options.revert) { - var that = this, - cur = this.placeholder.offset(), - axis = this.options.axis, - animation = {}; - - if ( !axis || axis === "x" ) { - animation.left = cur.left - this.offset.parent.left - this.margins.left + (this.offsetParent[0] === this.document[0].body ? 0 : this.offsetParent[0].scrollLeft); - } - if ( !axis || axis === "y" ) { - animation.top = cur.top - this.offset.parent.top - this.margins.top + (this.offsetParent[0] === this.document[0].body ? 0 : this.offsetParent[0].scrollTop); - } - this.reverting = true; - $(this.helper).animate( animation, parseInt(this.options.revert, 10) || 500, function() { - that._clear(event); - }); - } else { - this._clear(event, noPropagation); - } - - return false; - - }, - - cancel: function() { - - if(this.dragging) { - - this._mouseUp({ target: null }); - - if(this.options.helper === "original") { - this.currentItem.css(this._storedCSS).removeClass("ui-sortable-helper"); - } else { - this.currentItem.show(); - } - - //Post deactivating events to containers - for (var i = this.containers.length - 1; i >= 0; i--){ - this.containers[i]._trigger("deactivate", null, this._uiHash(this)); - if(this.containers[i].containerCache.over) { - this.containers[i]._trigger("out", null, this._uiHash(this)); - this.containers[i].containerCache.over = 0; - } - } - - } - - if (this.placeholder) { - //$(this.placeholder[0]).remove(); would have been the jQuery way - unfortunately, it unbinds ALL events from the original node! - if(this.placeholder[0].parentNode) { - this.placeholder[0].parentNode.removeChild(this.placeholder[0]); - } - if(this.options.helper !== "original" && this.helper && this.helper[0].parentNode) { - this.helper.remove(); - } - - $.extend(this, { - helper: null, - dragging: false, - reverting: false, - _noFinalSort: null - }); - - if(this.domPosition.prev) { - $(this.domPosition.prev).after(this.currentItem); - } else { - $(this.domPosition.parent).prepend(this.currentItem); - } - } - - return this; - - }, - - serialize: function(o) { - - var items = this._getItemsAsjQuery(o && o.connected), - str = []; - o = o || {}; - - $(items).each(function() { - var res = ($(o.item || this).attr(o.attribute || "id") || "").match(o.expression || (/(.+)[\-=_](.+)/)); - if (res) { - str.push((o.key || res[1]+"[]")+"="+(o.key && o.expression ? res[1] : res[2])); - } - }); - - if(!str.length && o.key) { - str.push(o.key + "="); - } - - return str.join("&"); - - }, - - toArray: function(o) { - - var items = this._getItemsAsjQuery(o && o.connected), - ret = []; - - o = o || {}; - - items.each(function() { ret.push($(o.item || this).attr(o.attribute || "id") || ""); }); - return ret; - - }, - - /* Be careful with the following core functions */ - _intersectsWith: function(item) { - - var x1 = this.positionAbs.left, - x2 = x1 + this.helperProportions.width, - y1 = this.positionAbs.top, - y2 = y1 + this.helperProportions.height, - l = item.left, - r = l + item.width, - t = item.top, - b = t + item.height, - dyClick = this.offset.click.top, - dxClick = this.offset.click.left, - isOverElementHeight = ( this.options.axis === "x" ) || ( ( y1 + dyClick ) > t && ( y1 + dyClick ) < b ), - isOverElementWidth = ( this.options.axis === "y" ) || ( ( x1 + dxClick ) > l && ( x1 + dxClick ) < r ), - isOverElement = isOverElementHeight && isOverElementWidth; - - if ( this.options.tolerance === "pointer" || - this.options.forcePointerForContainers || - (this.options.tolerance !== "pointer" && this.helperProportions[this.floating ? "width" : "height"] > item[this.floating ? "width" : "height"]) - ) { - return isOverElement; - } else { - - return (l < x1 + (this.helperProportions.width / 2) && // Right Half - x2 - (this.helperProportions.width / 2) < r && // Left Half - t < y1 + (this.helperProportions.height / 2) && // Bottom Half - y2 - (this.helperProportions.height / 2) < b ); // Top Half - - } - }, - - _intersectsWithPointer: function(item) { - - var isOverElementHeight = (this.options.axis === "x") || this._isOverAxis(this.positionAbs.top + this.offset.click.top, item.top, item.height), - isOverElementWidth = (this.options.axis === "y") || this._isOverAxis(this.positionAbs.left + this.offset.click.left, item.left, item.width), - isOverElement = isOverElementHeight && isOverElementWidth, - verticalDirection = this._getDragVerticalDirection(), - horizontalDirection = this._getDragHorizontalDirection(); - - if (!isOverElement) { - return false; - } - - return this.floating ? - ( ((horizontalDirection && horizontalDirection === "right") || verticalDirection === "down") ? 2 : 1 ) - : ( verticalDirection && (verticalDirection === "down" ? 2 : 1) ); - - }, - - _intersectsWithSides: function(item) { - - var isOverBottomHalf = this._isOverAxis(this.positionAbs.top + this.offset.click.top, item.top + (item.height/2), item.height), - isOverRightHalf = this._isOverAxis(this.positionAbs.left + this.offset.click.left, item.left + (item.width/2), item.width), - verticalDirection = this._getDragVerticalDirection(), - horizontalDirection = this._getDragHorizontalDirection(); - - if (this.floating && horizontalDirection) { - return ((horizontalDirection === "right" && isOverRightHalf) || (horizontalDirection === "left" && !isOverRightHalf)); - } else { - return verticalDirection && ((verticalDirection === "down" && isOverBottomHalf) || (verticalDirection === "up" && !isOverBottomHalf)); - } - - }, - - _getDragVerticalDirection: function() { - var delta = this.positionAbs.top - this.lastPositionAbs.top; - return delta !== 0 && (delta > 0 ? "down" : "up"); - }, - - _getDragHorizontalDirection: function() { - var delta = this.positionAbs.left - this.lastPositionAbs.left; - return delta !== 0 && (delta > 0 ? "right" : "left"); - }, - - refresh: function(event) { - this._refreshItems(event); - this._setHandleClassName(); - this.refreshPositions(); - return this; - }, - - _connectWith: function() { - var options = this.options; - return options.connectWith.constructor === String ? [options.connectWith] : options.connectWith; - }, - - _getItemsAsjQuery: function(connected) { - - var i, j, cur, inst, - items = [], - queries = [], - connectWith = this._connectWith(); - - if(connectWith && connected) { - for (i = connectWith.length - 1; i >= 0; i--){ - cur = $(connectWith[i], this.document[0]); - for ( j = cur.length - 1; j >= 0; j--){ - inst = $.data(cur[j], this.widgetFullName); - if(inst && inst !== this && !inst.options.disabled) { - queries.push([$.isFunction(inst.options.items) ? inst.options.items.call(inst.element) : $(inst.options.items, inst.element).not(".ui-sortable-helper").not(".ui-sortable-placeholder"), inst]); - } - } - } - } - - queries.push([$.isFunction(this.options.items) ? this.options.items.call(this.element, null, { options: this.options, item: this.currentItem }) : $(this.options.items, this.element).not(".ui-sortable-helper").not(".ui-sortable-placeholder"), this]); - - function addItems() { - items.push( this ); - } - for (i = queries.length - 1; i >= 0; i--){ - queries[i][0].each( addItems ); - } - - return $(items); - - }, - - _removeCurrentsFromItems: function() { - - var list = this.currentItem.find(":data(" + this.widgetName + "-item)"); - - this.items = $.grep(this.items, function (item) { - for (var j=0; j < list.length; j++) { - if(list[j] === item.item[0]) { - return false; - } - } - return true; - }); - - }, - - _refreshItems: function(event) { - - this.items = []; - this.containers = [this]; - - var i, j, cur, inst, targetData, _queries, item, queriesLength, - items = this.items, - queries = [[$.isFunction(this.options.items) ? this.options.items.call(this.element[0], event, { item: this.currentItem }) : $(this.options.items, this.element), this]], - connectWith = this._connectWith(); - - if(connectWith && this.ready) { //Shouldn't be run the first time through due to massive slow-down - for (i = connectWith.length - 1; i >= 0; i--){ - cur = $(connectWith[i], this.document[0]); - for (j = cur.length - 1; j >= 0; j--){ - inst = $.data(cur[j], this.widgetFullName); - if(inst && inst !== this && !inst.options.disabled) { - queries.push([$.isFunction(inst.options.items) ? inst.options.items.call(inst.element[0], event, { item: this.currentItem }) : $(inst.options.items, inst.element), inst]); - this.containers.push(inst); - } - } - } - } - - for (i = queries.length - 1; i >= 0; i--) { - targetData = queries[i][1]; - _queries = queries[i][0]; - - for (j=0, queriesLength = _queries.length; j < queriesLength; j++) { - item = $(_queries[j]); - - item.data(this.widgetName + "-item", targetData); // Data for target checking (mouse manager) - - items.push({ - item: item, - instance: targetData, - width: 0, height: 0, - left: 0, top: 0 - }); - } - } - - }, - - refreshPositions: function(fast) { - - // Determine whether items are being displayed horizontally - this.floating = this.items.length ? - this.options.axis === "x" || this._isFloating( this.items[ 0 ].item ) : - false; - - //This has to be redone because due to the item being moved out/into the offsetParent, the offsetParent's position will change - if(this.offsetParent && this.helper) { - this.offset.parent = this._getParentOffset(); - } - - var i, item, t, p; - - for (i = this.items.length - 1; i >= 0; i--){ - item = this.items[i]; - - //We ignore calculating positions of all connected containers when we're not over them - if(item.instance !== this.currentContainer && this.currentContainer && item.item[0] !== this.currentItem[0]) { - continue; - } - - t = this.options.toleranceElement ? $(this.options.toleranceElement, item.item) : item.item; - - if (!fast) { - item.width = t.outerWidth(); - item.height = t.outerHeight(); - } - - p = t.offset(); - item.left = p.left; - item.top = p.top; - } - - if(this.options.custom && this.options.custom.refreshContainers) { - this.options.custom.refreshContainers.call(this); - } else { - for (i = this.containers.length - 1; i >= 0; i--){ - p = this.containers[i].element.offset(); - this.containers[i].containerCache.left = p.left; - this.containers[i].containerCache.top = p.top; - this.containers[i].containerCache.width = this.containers[i].element.outerWidth(); - this.containers[i].containerCache.height = this.containers[i].element.outerHeight(); - } - } - - return this; - }, - - _createPlaceholder: function(that) { - that = that || this; - var className, - o = that.options; - - if(!o.placeholder || o.placeholder.constructor === String) { - className = o.placeholder; - o.placeholder = { - element: function() { - - var nodeName = that.currentItem[0].nodeName.toLowerCase(), - element = $( "<" + nodeName + ">", that.document[0] ) - .addClass(className || that.currentItem[0].className+" ui-sortable-placeholder") - .removeClass("ui-sortable-helper"); - - if ( nodeName === "tbody" ) { - that._createTrPlaceholder( - that.currentItem.find( "tr" ).eq( 0 ), - $( "<tr>", that.document[ 0 ] ).appendTo( element ) - ); - } else if ( nodeName === "tr" ) { - that._createTrPlaceholder( that.currentItem, element ); - } else if ( nodeName === "img" ) { - element.attr( "src", that.currentItem.attr( "src" ) ); - } - - if ( !className ) { - element.css( "visibility", "hidden" ); - } - - return element; - }, - update: function(container, p) { - - // 1. If a className is set as 'placeholder option, we don't force sizes - the class is responsible for that - // 2. The option 'forcePlaceholderSize can be enabled to force it even if a class name is specified - if(className && !o.forcePlaceholderSize) { - return; - } - - //If the element doesn't have a actual height by itself (without styles coming from a stylesheet), it receives the inline height from the dragged item - if(!p.height()) { p.height(that.currentItem.innerHeight() - parseInt(that.currentItem.css("paddingTop")||0, 10) - parseInt(that.currentItem.css("paddingBottom")||0, 10)); } - if(!p.width()) { p.width(that.currentItem.innerWidth() - parseInt(that.currentItem.css("paddingLeft")||0, 10) - parseInt(that.currentItem.css("paddingRight")||0, 10)); } - } - }; - } - - //Create the placeholder - that.placeholder = $(o.placeholder.element.call(that.element, that.currentItem)); - - //Append it after the actual current item - that.currentItem.after(that.placeholder); - - //Update the size of the placeholder (TODO: Logic to fuzzy, see line 316/317) - o.placeholder.update(that, that.placeholder); - - }, - - _createTrPlaceholder: function( sourceTr, targetTr ) { - var that = this; - - sourceTr.children().each(function() { - $( "<td>&#160;</td>", that.document[ 0 ] ) - .attr( "colspan", $( this ).attr( "colspan" ) || 1 ) - .appendTo( targetTr ); - }); - }, - - _contactContainers: function(event) { - var i, j, dist, itemWithLeastDistance, posProperty, sizeProperty, cur, nearBottom, floating, axis, - innermostContainer = null, - innermostIndex = null; - - // get innermost container that intersects with item - for (i = this.containers.length - 1; i >= 0; i--) { - - // never consider a container that's located within the item itself - if($.contains(this.currentItem[0], this.containers[i].element[0])) { - continue; - } - - if(this._intersectsWith(this.containers[i].containerCache)) { - - // if we've already found a container and it's more "inner" than this, then continue - if(innermostContainer && $.contains(this.containers[i].element[0], innermostContainer.element[0])) { - continue; - } - - innermostContainer = this.containers[i]; - innermostIndex = i; - - } else { - // container doesn't intersect. trigger "out" event if necessary - if(this.containers[i].containerCache.over) { - this.containers[i]._trigger("out", event, this._uiHash(this)); - this.containers[i].containerCache.over = 0; - } - } - - } - - // if no intersecting containers found, return - if(!innermostContainer) { - return; - } - - // move the item into the container if it's not there already - if(this.containers.length === 1) { - if (!this.containers[innermostIndex].containerCache.over) { - this.containers[innermostIndex]._trigger("over", event, this._uiHash(this)); - this.containers[innermostIndex].containerCache.over = 1; - } - } else { - - //When entering a new container, we will find the item with the least distance and append our item near it - dist = 10000; - itemWithLeastDistance = null; - floating = innermostContainer.floating || this._isFloating(this.currentItem); - posProperty = floating ? "left" : "top"; - sizeProperty = floating ? "width" : "height"; - axis = floating ? "clientX" : "clientY"; - - for (j = this.items.length - 1; j >= 0; j--) { - if(!$.contains(this.containers[innermostIndex].element[0], this.items[j].item[0])) { - continue; - } - if(this.items[j].item[0] === this.currentItem[0]) { - continue; - } - - cur = this.items[j].item.offset()[posProperty]; - nearBottom = false; - if ( event[ axis ] - cur > this.items[ j ][ sizeProperty ] / 2 ) { - nearBottom = true; - } - - if ( Math.abs( event[ axis ] - cur ) < dist ) { - dist = Math.abs( event[ axis ] - cur ); - itemWithLeastDistance = this.items[ j ]; - this.direction = nearBottom ? "up": "down"; - } - } - - //Check if dropOnEmpty is enabled - if(!itemWithLeastDistance && !this.options.dropOnEmpty) { - return; - } - - if(this.currentContainer === this.containers[innermostIndex]) { - if ( !this.currentContainer.containerCache.over ) { - this.containers[ innermostIndex ]._trigger( "over", event, this._uiHash() ); - this.currentContainer.containerCache.over = 1; - } - return; - } - - itemWithLeastDistance ? this._rearrange(event, itemWithLeastDistance, null, true) : this._rearrange(event, null, this.containers[innermostIndex].element, true); - this._trigger("change", event, this._uiHash()); - this.containers[innermostIndex]._trigger("change", event, this._uiHash(this)); - this.currentContainer = this.containers[innermostIndex]; - - //Update the placeholder - this.options.placeholder.update(this.currentContainer, this.placeholder); - - this.containers[innermostIndex]._trigger("over", event, this._uiHash(this)); - this.containers[innermostIndex].containerCache.over = 1; - } - - - }, - - _createHelper: function(event) { - - var o = this.options, - helper = $.isFunction(o.helper) ? $(o.helper.apply(this.element[0], [event, this.currentItem])) : (o.helper === "clone" ? this.currentItem.clone() : this.currentItem); - - //Add the helper to the DOM if that didn't happen already - if(!helper.parents("body").length) { - $(o.appendTo !== "parent" ? o.appendTo : this.currentItem[0].parentNode)[0].appendChild(helper[0]); - } - - if(helper[0] === this.currentItem[0]) { - this._storedCSS = { width: this.currentItem[0].style.width, height: this.currentItem[0].style.height, position: this.currentItem.css("position"), top: this.currentItem.css("top"), left: this.currentItem.css("left") }; - } - - if(!helper[0].style.width || o.forceHelperSize) { - helper.width(this.currentItem.width()); - } - if(!helper[0].style.height || o.forceHelperSize) { - helper.height(this.currentItem.height()); - } - - return helper; - - }, - - _adjustOffsetFromHelper: function(obj) { - if (typeof obj === "string") { - obj = obj.split(" "); - } - if ($.isArray(obj)) { - obj = {left: +obj[0], top: +obj[1] || 0}; - } - if ("left" in obj) { - this.offset.click.left = obj.left + this.margins.left; - } - if ("right" in obj) { - this.offset.click.left = this.helperProportions.width - obj.right + this.margins.left; - } - if ("top" in obj) { - this.offset.click.top = obj.top + this.margins.top; - } - if ("bottom" in obj) { - this.offset.click.top = this.helperProportions.height - obj.bottom + this.margins.top; - } - }, - - _getParentOffset: function() { - - - //Get the offsetParent and cache its position - this.offsetParent = this.helper.offsetParent(); - var po = this.offsetParent.offset(); - - // This is a special case where we need to modify a offset calculated on start, since the following happened: - // 1. The position of the helper is absolute, so it's position is calculated based on the next positioned parent - // 2. The actual offset parent is a child of the scroll parent, and the scroll parent isn't the document, which means that - // the scroll is included in the initial calculation of the offset of the parent, and never recalculated upon drag - if(this.cssPosition === "absolute" && this.scrollParent[0] !== this.document[0] && $.contains(this.scrollParent[0], this.offsetParent[0])) { - po.left += this.scrollParent.scrollLeft(); - po.top += this.scrollParent.scrollTop(); - } - - // This needs to be actually done for all browsers, since pageX/pageY includes this information - // with an ugly IE fix - if( this.offsetParent[0] === this.document[0].body || (this.offsetParent[0].tagName && this.offsetParent[0].tagName.toLowerCase() === "html" && $.ui.ie)) { - po = { top: 0, left: 0 }; - } - - return { - top: po.top + (parseInt(this.offsetParent.css("borderTopWidth"),10) || 0), - left: po.left + (parseInt(this.offsetParent.css("borderLeftWidth"),10) || 0) - }; - - }, - - _getRelativeOffset: function() { - - if(this.cssPosition === "relative") { - var p = this.currentItem.position(); - return { - top: p.top - (parseInt(this.helper.css("top"),10) || 0) + this.scrollParent.scrollTop(), - left: p.left - (parseInt(this.helper.css("left"),10) || 0) + this.scrollParent.scrollLeft() - }; - } else { - return { top: 0, left: 0 }; - } - - }, - - _cacheMargins: function() { - this.margins = { - left: (parseInt(this.currentItem.css("marginLeft"),10) || 0), - top: (parseInt(this.currentItem.css("marginTop"),10) || 0) - }; - }, - - _cacheHelperProportions: function() { - this.helperProportions = { - width: this.helper.outerWidth(), - height: this.helper.outerHeight() - }; - }, - - _setContainment: function() { - - var ce, co, over, - o = this.options; - if(o.containment === "parent") { - o.containment = this.helper[0].parentNode; - } - if(o.containment === "document" || o.containment === "window") { - this.containment = [ - 0 - this.offset.relative.left - this.offset.parent.left, - 0 - this.offset.relative.top - this.offset.parent.top, - o.containment === "document" ? this.document.width() : this.window.width() - this.helperProportions.width - this.margins.left, - (o.containment === "document" ? this.document.width() : this.window.height() || this.document[0].body.parentNode.scrollHeight) - this.helperProportions.height - this.margins.top - ]; - } - - if(!(/^(document|window|parent)$/).test(o.containment)) { - ce = $(o.containment)[0]; - co = $(o.containment).offset(); - over = ($(ce).css("overflow") !== "hidden"); - - this.containment = [ - co.left + (parseInt($(ce).css("borderLeftWidth"),10) || 0) + (parseInt($(ce).css("paddingLeft"),10) || 0) - this.margins.left, - co.top + (parseInt($(ce).css("borderTopWidth"),10) || 0) + (parseInt($(ce).css("paddingTop"),10) || 0) - this.margins.top, - co.left+(over ? Math.max(ce.scrollWidth,ce.offsetWidth) : ce.offsetWidth) - (parseInt($(ce).css("borderLeftWidth"),10) || 0) - (parseInt($(ce).css("paddingRight"),10) || 0) - this.helperProportions.width - this.margins.left, - co.top+(over ? Math.max(ce.scrollHeight,ce.offsetHeight) : ce.offsetHeight) - (parseInt($(ce).css("borderTopWidth"),10) || 0) - (parseInt($(ce).css("paddingBottom"),10) || 0) - this.helperProportions.height - this.margins.top - ]; - } - - }, - - _convertPositionTo: function(d, pos) { - - if(!pos) { - pos = this.position; - } - var mod = d === "absolute" ? 1 : -1, - scroll = this.cssPosition === "absolute" && !(this.scrollParent[0] !== this.document[0] && $.contains(this.scrollParent[0], this.offsetParent[0])) ? this.offsetParent : this.scrollParent, - scrollIsRootNode = (/(html|body)/i).test(scroll[0].tagName); - - return { - top: ( - pos.top + // The absolute mouse position - this.offset.relative.top * mod + // Only for relative positioned nodes: Relative offset from element to offset parent - this.offset.parent.top * mod - // The offsetParent's offset without borders (offset + border) - ( ( this.cssPosition === "fixed" ? -this.scrollParent.scrollTop() : ( scrollIsRootNode ? 0 : scroll.scrollTop() ) ) * mod) - ), - left: ( - pos.left + // The absolute mouse position - this.offset.relative.left * mod + // Only for relative positioned nodes: Relative offset from element to offset parent - this.offset.parent.left * mod - // The offsetParent's offset without borders (offset + border) - ( ( this.cssPosition === "fixed" ? -this.scrollParent.scrollLeft() : scrollIsRootNode ? 0 : scroll.scrollLeft() ) * mod) - ) - }; - - }, - - _generatePosition: function(event) { - - var top, left, - o = this.options, - pageX = event.pageX, - pageY = event.pageY, - scroll = this.cssPosition === "absolute" && !(this.scrollParent[0] !== this.document[0] && $.contains(this.scrollParent[0], this.offsetParent[0])) ? this.offsetParent : this.scrollParent, scrollIsRootNode = (/(html|body)/i).test(scroll[0].tagName); - - // This is another very weird special case that only happens for relative elements: - // 1. If the css position is relative - // 2. and the scroll parent is the document or similar to the offset parent - // we have to refresh the relative offset during the scroll so there are no jumps - if(this.cssPosition === "relative" && !(this.scrollParent[0] !== this.document[0] && this.scrollParent[0] !== this.offsetParent[0])) { - this.offset.relative = this._getRelativeOffset(); - } - - /* - * - Position constraining - - * Constrain the position to a mix of grid, containment. - */ - - if(this.originalPosition) { //If we are not dragging yet, we won't check for options - - if(this.containment) { - if(event.pageX - this.offset.click.left < this.containment[0]) { - pageX = this.containment[0] + this.offset.click.left; - } - if(event.pageY - this.offset.click.top < this.containment[1]) { - pageY = this.containment[1] + this.offset.click.top; - } - if(event.pageX - this.offset.click.left > this.containment[2]) { - pageX = this.containment[2] + this.offset.click.left; - } - if(event.pageY - this.offset.click.top > this.containment[3]) { - pageY = this.containment[3] + this.offset.click.top; - } - } - - if(o.grid) { - top = this.originalPageY + Math.round((pageY - this.originalPageY) / o.grid[1]) * o.grid[1]; - pageY = this.containment ? ( (top - this.offset.click.top >= this.containment[1] && top - this.offset.click.top <= this.containment[3]) ? top : ((top - this.offset.click.top >= this.containment[1]) ? top - o.grid[1] : top + o.grid[1])) : top; - - left = this.originalPageX + Math.round((pageX - this.originalPageX) / o.grid[0]) * o.grid[0]; - pageX = this.containment ? ( (left - this.offset.click.left >= this.containment[0] && left - this.offset.click.left <= this.containment[2]) ? left : ((left - this.offset.click.left >= this.containment[0]) ? left - o.grid[0] : left + o.grid[0])) : left; - } - - } - - return { - top: ( - pageY - // The absolute mouse position - this.offset.click.top - // Click offset (relative to the element) - this.offset.relative.top - // Only for relative positioned nodes: Relative offset from element to offset parent - this.offset.parent.top + // The offsetParent's offset without borders (offset + border) - ( ( this.cssPosition === "fixed" ? -this.scrollParent.scrollTop() : ( scrollIsRootNode ? 0 : scroll.scrollTop() ) )) - ), - left: ( - pageX - // The absolute mouse position - this.offset.click.left - // Click offset (relative to the element) - this.offset.relative.left - // Only for relative positioned nodes: Relative offset from element to offset parent - this.offset.parent.left + // The offsetParent's offset without borders (offset + border) - ( ( this.cssPosition === "fixed" ? -this.scrollParent.scrollLeft() : scrollIsRootNode ? 0 : scroll.scrollLeft() )) - ) - }; - - }, - - _rearrange: function(event, i, a, hardRefresh) { - - a ? a[0].appendChild(this.placeholder[0]) : i.item[0].parentNode.insertBefore(this.placeholder[0], (this.direction === "down" ? i.item[0] : i.item[0].nextSibling)); - - //Various things done here to improve the performance: - // 1. we create a setTimeout, that calls refreshPositions - // 2. on the instance, we have a counter variable, that get's higher after every append - // 3. on the local scope, we copy the counter variable, and check in the timeout, if it's still the same - // 4. this lets only the last addition to the timeout stack through - this.counter = this.counter ? ++this.counter : 1; - var counter = this.counter; - - this._delay(function() { - if(counter === this.counter) { - this.refreshPositions(!hardRefresh); //Precompute after each DOM insertion, NOT on mousemove - } - }); - - }, - - _clear: function(event, noPropagation) { - - this.reverting = false; - // We delay all events that have to be triggered to after the point where the placeholder has been removed and - // everything else normalized again - var i, - delayedTriggers = []; - - // We first have to update the dom position of the actual currentItem - // Note: don't do it if the current item is already removed (by a user), or it gets reappended (see #4088) - if(!this._noFinalSort && this.currentItem.parent().length) { - this.placeholder.before(this.currentItem); - } - this._noFinalSort = null; - - if(this.helper[0] === this.currentItem[0]) { - for(i in this._storedCSS) { - if(this._storedCSS[i] === "auto" || this._storedCSS[i] === "static") { - this._storedCSS[i] = ""; - } - } - this.currentItem.css(this._storedCSS).removeClass("ui-sortable-helper"); - } else { - this.currentItem.show(); - } - - if(this.fromOutside && !noPropagation) { - delayedTriggers.push(function(event) { this._trigger("receive", event, this._uiHash(this.fromOutside)); }); - } - if((this.fromOutside || this.domPosition.prev !== this.currentItem.prev().not(".ui-sortable-helper")[0] || this.domPosition.parent !== this.currentItem.parent()[0]) && !noPropagation) { - delayedTriggers.push(function(event) { this._trigger("update", event, this._uiHash()); }); //Trigger update callback if the DOM position has changed - } - - // Check if the items Container has Changed and trigger appropriate - // events. - if (this !== this.currentContainer) { - if(!noPropagation) { - delayedTriggers.push(function(event) { this._trigger("remove", event, this._uiHash()); }); - delayedTriggers.push((function(c) { return function(event) { c._trigger("receive", event, this._uiHash(this)); }; }).call(this, this.currentContainer)); - delayedTriggers.push((function(c) { return function(event) { c._trigger("update", event, this._uiHash(this)); }; }).call(this, this.currentContainer)); - } - } - - - //Post events to containers - function delayEvent( type, instance, container ) { - return function( event ) { - container._trigger( type, event, instance._uiHash( instance ) ); - }; - } - for (i = this.containers.length - 1; i >= 0; i--){ - if (!noPropagation) { - delayedTriggers.push( delayEvent( "deactivate", this, this.containers[ i ] ) ); - } - if(this.containers[i].containerCache.over) { - delayedTriggers.push( delayEvent( "out", this, this.containers[ i ] ) ); - this.containers[i].containerCache.over = 0; - } - } - - //Do what was originally in plugins - if ( this.storedCursor ) { - this.document.find( "body" ).css( "cursor", this.storedCursor ); - this.storedStylesheet.remove(); - } - if(this._storedOpacity) { - this.helper.css("opacity", this._storedOpacity); - } - if(this._storedZIndex) { - this.helper.css("zIndex", this._storedZIndex === "auto" ? "" : this._storedZIndex); - } - - this.dragging = false; - - if(!noPropagation) { - this._trigger("beforeStop", event, this._uiHash()); - } - - //$(this.placeholder[0]).remove(); would have been the jQuery way - unfortunately, it unbinds ALL events from the original node! - this.placeholder[0].parentNode.removeChild(this.placeholder[0]); - - if ( !this.cancelHelperRemoval ) { - if ( this.helper[ 0 ] !== this.currentItem[ 0 ] ) { - this.helper.remove(); - } - this.helper = null; - } - - if(!noPropagation) { - for (i=0; i < delayedTriggers.length; i++) { - delayedTriggers[i].call(this, event); - } //Trigger all delayed events - this._trigger("stop", event, this._uiHash()); - } - - this.fromOutside = false; - return !this.cancelHelperRemoval; - - }, - - _trigger: function() { - if ($.Widget.prototype._trigger.apply(this, arguments) === false) { - this.cancel(); - } - }, - - _uiHash: function(_inst) { - var inst = _inst || this; - return { - helper: inst.helper, - placeholder: inst.placeholder || $([]), - position: inst.position, - originalPosition: inst.originalPosition, - offset: inst.positionAbs, - item: inst.currentItem, - sender: _inst ? _inst.element : null - }; - } - -}); - - -/*! - * jQuery UI Spinner 1.11.4 - * http://jqueryui.com - * - * Copyright jQuery Foundation and other contributors - * Released under the MIT license. - * http://jquery.org/license - * - * http://api.jqueryui.com/spinner/ - */ - - -function spinner_modifier( fn ) { - return function() { - var previous = this.element.val(); - fn.apply( this, arguments ); - this._refresh(); - if ( previous !== this.element.val() ) { - this._trigger( "change" ); - } - }; -} - -var spinner = $.widget( "ui.spinner", { - version: "1.11.4", - defaultElement: "<input>", - widgetEventPrefix: "spin", - options: { - culture: null, - icons: { - down: "ui-icon-triangle-1-s", - up: "ui-icon-triangle-1-n" - }, - incremental: true, - max: null, - min: null, - numberFormat: null, - page: 10, - step: 1, - - change: null, - spin: null, - start: null, - stop: null - }, - - _create: function() { - // handle string values that need to be parsed - this._setOption( "max", this.options.max ); - this._setOption( "min", this.options.min ); - this._setOption( "step", this.options.step ); - - // Only format if there is a value, prevents the field from being marked - // as invalid in Firefox, see #9573. - if ( this.value() !== "" ) { - // Format the value, but don't constrain. - this._value( this.element.val(), true ); - } - - this._draw(); - this._on( this._events ); - this._refresh(); - - // turning off autocomplete prevents the browser from remembering the - // value when navigating through history, so we re-enable autocomplete - // if the page is unloaded before the widget is destroyed. #7790 - this._on( this.window, { - beforeunload: function() { - this.element.removeAttr( "autocomplete" ); - } - }); - }, - - _getCreateOptions: function() { - var options = {}, - element = this.element; - - $.each( [ "min", "max", "step" ], function( i, option ) { - var value = element.attr( option ); - if ( value !== undefined && value.length ) { - options[ option ] = value; - } - }); - - return options; - }, - - _events: { - keydown: function( event ) { - if ( this._start( event ) && this._keydown( event ) ) { - event.preventDefault(); - } - }, - keyup: "_stop", - focus: function() { - this.previous = this.element.val(); - }, - blur: function( event ) { - if ( this.cancelBlur ) { - delete this.cancelBlur; - return; - } - - this._stop(); - this._refresh(); - if ( this.previous !== this.element.val() ) { - this._trigger( "change", event ); - } - }, - mousewheel: function( event, delta ) { - if ( !delta ) { - return; - } - if ( !this.spinning && !this._start( event ) ) { - return false; - } - - this._spin( (delta > 0 ? 1 : -1) * this.options.step, event ); - clearTimeout( this.mousewheelTimer ); - this.mousewheelTimer = this._delay(function() { - if ( this.spinning ) { - this._stop( event ); - } - }, 100 ); - event.preventDefault(); - }, - "mousedown .ui-spinner-button": function( event ) { - var previous; - - // We never want the buttons to have focus; whenever the user is - // interacting with the spinner, the focus should be on the input. - // If the input is focused then this.previous is properly set from - // when the input first received focus. If the input is not focused - // then we need to set this.previous based on the value before spinning. - previous = this.element[0] === this.document[0].activeElement ? - this.previous : this.element.val(); - function checkFocus() { - var isActive = this.element[0] === this.document[0].activeElement; - if ( !isActive ) { - this.element.focus(); - this.previous = previous; - // support: IE - // IE sets focus asynchronously, so we need to check if focus - // moved off of the input because the user clicked on the button. - this._delay(function() { - this.previous = previous; - }); - } - } - - // ensure focus is on (or stays on) the text field - event.preventDefault(); - checkFocus.call( this ); - - // support: IE - // IE doesn't prevent moving focus even with event.preventDefault() - // so we set a flag to know when we should ignore the blur event - // and check (again) if focus moved off of the input. - this.cancelBlur = true; - this._delay(function() { - delete this.cancelBlur; - checkFocus.call( this ); - }); - - if ( this._start( event ) === false ) { - return; - } - - this._repeat( null, $( event.currentTarget ).hasClass( "ui-spinner-up" ) ? 1 : -1, event ); - }, - "mouseup .ui-spinner-button": "_stop", - "mouseenter .ui-spinner-button": function( event ) { - // button will add ui-state-active if mouse was down while mouseleave and kept down - if ( !$( event.currentTarget ).hasClass( "ui-state-active" ) ) { - return; - } - - if ( this._start( event ) === false ) { - return false; - } - this._repeat( null, $( event.currentTarget ).hasClass( "ui-spinner-up" ) ? 1 : -1, event ); - }, - // TODO: do we really want to consider this a stop? - // shouldn't we just stop the repeater and wait until mouseup before - // we trigger the stop event? - "mouseleave .ui-spinner-button": "_stop" - }, - - _draw: function() { - var uiSpinner = this.uiSpinner = this.element - .addClass( "ui-spinner-input" ) - .attr( "autocomplete", "off" ) - .wrap( this._uiSpinnerHtml() ) - .parent() - // add buttons - .append( this._buttonHtml() ); - - this.element.attr( "role", "spinbutton" ); - - // button bindings - this.buttons = uiSpinner.find( ".ui-spinner-button" ) - .attr( "tabIndex", -1 ) - .button() - .removeClass( "ui-corner-all" ); - - // IE 6 doesn't understand height: 50% for the buttons - // unless the wrapper has an explicit height - if ( this.buttons.height() > Math.ceil( uiSpinner.height() * 0.5 ) && - uiSpinner.height() > 0 ) { - uiSpinner.height( uiSpinner.height() ); - } - - // disable spinner if element was already disabled - if ( this.options.disabled ) { - this.disable(); - } - }, - - _keydown: function( event ) { - var options = this.options, - keyCode = $.ui.keyCode; - - switch ( event.keyCode ) { - case keyCode.UP: - this._repeat( null, 1, event ); - return true; - case keyCode.DOWN: - this._repeat( null, -1, event ); - return true; - case keyCode.PAGE_UP: - this._repeat( null, options.page, event ); - return true; - case keyCode.PAGE_DOWN: - this._repeat( null, -options.page, event ); - return true; - } - - return false; - }, - - _uiSpinnerHtml: function() { - return "<span class='ui-spinner ui-widget ui-widget-content ui-corner-all'></span>"; - }, - - _buttonHtml: function() { - return "" + - "<a class='ui-spinner-button ui-spinner-up ui-corner-tr'>" + - "<span class='ui-icon " + this.options.icons.up + "'>&#9650;</span>" + - "</a>" + - "<a class='ui-spinner-button ui-spinner-down ui-corner-br'>" + - "<span class='ui-icon " + this.options.icons.down + "'>&#9660;</span>" + - "</a>"; - }, - - _start: function( event ) { - if ( !this.spinning && this._trigger( "start", event ) === false ) { - return false; - } - - if ( !this.counter ) { - this.counter = 1; - } - this.spinning = true; - return true; - }, - - _repeat: function( i, steps, event ) { - i = i || 500; - - clearTimeout( this.timer ); - this.timer = this._delay(function() { - this._repeat( 40, steps, event ); - }, i ); - - this._spin( steps * this.options.step, event ); - }, - - _spin: function( step, event ) { - var value = this.value() || 0; - - if ( !this.counter ) { - this.counter = 1; - } - - value = this._adjustValue( value + step * this._increment( this.counter ) ); - - if ( !this.spinning || this._trigger( "spin", event, { value: value } ) !== false) { - this._value( value ); - this.counter++; - } - }, - - _increment: function( i ) { - var incremental = this.options.incremental; - - if ( incremental ) { - return $.isFunction( incremental ) ? - incremental( i ) : - Math.floor( i * i * i / 50000 - i * i / 500 + 17 * i / 200 + 1 ); - } - - return 1; - }, - - _precision: function() { - var precision = this._precisionOf( this.options.step ); - if ( this.options.min !== null ) { - precision = Math.max( precision, this._precisionOf( this.options.min ) ); - } - return precision; - }, - - _precisionOf: function( num ) { - var str = num.toString(), - decimal = str.indexOf( "." ); - return decimal === -1 ? 0 : str.length - decimal - 1; - }, - - _adjustValue: function( value ) { - var base, aboveMin, - options = this.options; - - // make sure we're at a valid step - // - find out where we are relative to the base (min or 0) - base = options.min !== null ? options.min : 0; - aboveMin = value - base; - // - round to the nearest step - aboveMin = Math.round(aboveMin / options.step) * options.step; - // - rounding is based on 0, so adjust back to our base - value = base + aboveMin; - - // fix precision from bad JS floating point math - value = parseFloat( value.toFixed( this._precision() ) ); - - // clamp the value - if ( options.max !== null && value > options.max) { - return options.max; - } - if ( options.min !== null && value < options.min ) { - return options.min; - } - - return value; - }, - - _stop: function( event ) { - if ( !this.spinning ) { - return; - } - - clearTimeout( this.timer ); - clearTimeout( this.mousewheelTimer ); - this.counter = 0; - this.spinning = false; - this._trigger( "stop", event ); - }, - - _setOption: function( key, value ) { - if ( key === "culture" || key === "numberFormat" ) { - var prevValue = this._parse( this.element.val() ); - this.options[ key ] = value; - this.element.val( this._format( prevValue ) ); - return; - } - - if ( key === "max" || key === "min" || key === "step" ) { - if ( typeof value === "string" ) { - value = this._parse( value ); - } - } - if ( key === "icons" ) { - this.buttons.first().find( ".ui-icon" ) - .removeClass( this.options.icons.up ) - .addClass( value.up ); - this.buttons.last().find( ".ui-icon" ) - .removeClass( this.options.icons.down ) - .addClass( value.down ); - } - - this._super( key, value ); - - if ( key === "disabled" ) { - this.widget().toggleClass( "ui-state-disabled", !!value ); - this.element.prop( "disabled", !!value ); - this.buttons.button( value ? "disable" : "enable" ); - } - }, - - _setOptions: spinner_modifier(function( options ) { - this._super( options ); - }), - - _parse: function( val ) { - if ( typeof val === "string" && val !== "" ) { - val = window.Globalize && this.options.numberFormat ? - Globalize.parseFloat( val, 10, this.options.culture ) : +val; - } - return val === "" || isNaN( val ) ? null : val; - }, - - _format: function( value ) { - if ( value === "" ) { - return ""; - } - return window.Globalize && this.options.numberFormat ? - Globalize.format( value, this.options.numberFormat, this.options.culture ) : - value; - }, - - _refresh: function() { - this.element.attr({ - "aria-valuemin": this.options.min, - "aria-valuemax": this.options.max, - // TODO: what should we do with values that can't be parsed? - "aria-valuenow": this._parse( this.element.val() ) - }); - }, - - isValid: function() { - var value = this.value(); - - // null is invalid - if ( value === null ) { - return false; - } - - // if value gets adjusted, it's invalid - return value === this._adjustValue( value ); - }, - - // update the value without triggering change - _value: function( value, allowAny ) { - var parsed; - if ( value !== "" ) { - parsed = this._parse( value ); - if ( parsed !== null ) { - if ( !allowAny ) { - parsed = this._adjustValue( parsed ); - } - value = this._format( parsed ); - } - } - this.element.val( value ); - this._refresh(); - }, - - _destroy: function() { - this.element - .removeClass( "ui-spinner-input" ) - .prop( "disabled", false ) - .removeAttr( "autocomplete" ) - .removeAttr( "role" ) - .removeAttr( "aria-valuemin" ) - .removeAttr( "aria-valuemax" ) - .removeAttr( "aria-valuenow" ); - this.uiSpinner.replaceWith( this.element ); - }, - - stepUp: spinner_modifier(function( steps ) { - this._stepUp( steps ); - }), - _stepUp: function( steps ) { - if ( this._start() ) { - this._spin( (steps || 1) * this.options.step ); - this._stop(); - } - }, - - stepDown: spinner_modifier(function( steps ) { - this._stepDown( steps ); - }), - _stepDown: function( steps ) { - if ( this._start() ) { - this._spin( (steps || 1) * -this.options.step ); - this._stop(); - } - }, - - pageUp: spinner_modifier(function( pages ) { - this._stepUp( (pages || 1) * this.options.page ); - }), - - pageDown: spinner_modifier(function( pages ) { - this._stepDown( (pages || 1) * this.options.page ); - }), - - value: function( newVal ) { - if ( !arguments.length ) { - return this._parse( this.element.val() ); - } - spinner_modifier( this._value ).call( this, newVal ); - }, - - widget: function() { - return this.uiSpinner; - } -}); - - -/*! - * jQuery UI Tabs 1.11.4 - * http://jqueryui.com - * - * Copyright jQuery Foundation and other contributors - * Released under the MIT license. - * http://jquery.org/license - * - * http://api.jqueryui.com/tabs/ - */ - - -var tabs = $.widget( "ui.tabs", { - version: "1.11.4", - delay: 300, - options: { - active: null, - collapsible: false, - event: "click", - heightStyle: "content", - hide: null, - show: null, - - // callbacks - activate: null, - beforeActivate: null, - beforeLoad: null, - load: null - }, - - _isLocal: (function() { - var rhash = /#.*$/; - - return function( anchor ) { - var anchorUrl, locationUrl; - - // support: IE7 - // IE7 doesn't normalize the href property when set via script (#9317) - anchor = anchor.cloneNode( false ); - - anchorUrl = anchor.href.replace( rhash, "" ); - locationUrl = location.href.replace( rhash, "" ); - - // decoding may throw an error if the URL isn't UTF-8 (#9518) - try { - anchorUrl = decodeURIComponent( anchorUrl ); - } catch ( error ) {} - try { - locationUrl = decodeURIComponent( locationUrl ); - } catch ( error ) {} - - return anchor.hash.length > 1 && anchorUrl === locationUrl; - }; - })(), - - _create: function() { - var that = this, - options = this.options; - - this.running = false; - - this.element - .addClass( "ui-tabs ui-widget ui-widget-content ui-corner-all" ) - .toggleClass( "ui-tabs-collapsible", options.collapsible ); - - this._processTabs(); - options.active = this._initialActive(); - - // Take disabling tabs via class attribute from HTML - // into account and update option properly. - if ( $.isArray( options.disabled ) ) { - options.disabled = $.unique( options.disabled.concat( - $.map( this.tabs.filter( ".ui-state-disabled" ), function( li ) { - return that.tabs.index( li ); - }) - ) ).sort(); - } - - // check for length avoids error when initializing empty list - if ( this.options.active !== false && this.anchors.length ) { - this.active = this._findActive( options.active ); - } else { - this.active = $(); - } - - this._refresh(); - - if ( this.active.length ) { - this.load( options.active ); - } - }, - - _initialActive: function() { - var active = this.options.active, - collapsible = this.options.collapsible, - locationHash = location.hash.substring( 1 ); - - if ( active === null ) { - // check the fragment identifier in the URL - if ( locationHash ) { - this.tabs.each(function( i, tab ) { - if ( $( tab ).attr( "aria-controls" ) === locationHash ) { - active = i; - return false; - } - }); - } - - // check for a tab marked active via a class - if ( active === null ) { - active = this.tabs.index( this.tabs.filter( ".ui-tabs-active" ) ); - } - - // no active tab, set to false - if ( active === null || active === -1 ) { - active = this.tabs.length ? 0 : false; - } - } - - // handle numbers: negative, out of range - if ( active !== false ) { - active = this.tabs.index( this.tabs.eq( active ) ); - if ( active === -1 ) { - active = collapsible ? false : 0; - } - } - - // don't allow collapsible: false and active: false - if ( !collapsible && active === false && this.anchors.length ) { - active = 0; - } - - return active; - }, - - _getCreateEventData: function() { - return { - tab: this.active, - panel: !this.active.length ? $() : this._getPanelForTab( this.active ) - }; - }, - - _tabKeydown: function( event ) { - var focusedTab = $( this.document[0].activeElement ).closest( "li" ), - selectedIndex = this.tabs.index( focusedTab ), - goingForward = true; - - if ( this._handlePageNav( event ) ) { - return; - } - - switch ( event.keyCode ) { - case $.ui.keyCode.RIGHT: - case $.ui.keyCode.DOWN: - selectedIndex++; - break; - case $.ui.keyCode.UP: - case $.ui.keyCode.LEFT: - goingForward = false; - selectedIndex--; - break; - case $.ui.keyCode.END: - selectedIndex = this.anchors.length - 1; - break; - case $.ui.keyCode.HOME: - selectedIndex = 0; - break; - case $.ui.keyCode.SPACE: - // Activate only, no collapsing - event.preventDefault(); - clearTimeout( this.activating ); - this._activate( selectedIndex ); - return; - case $.ui.keyCode.ENTER: - // Toggle (cancel delayed activation, allow collapsing) - event.preventDefault(); - clearTimeout( this.activating ); - // Determine if we should collapse or activate - this._activate( selectedIndex === this.options.active ? false : selectedIndex ); - return; - default: - return; - } - - // Focus the appropriate tab, based on which key was pressed - event.preventDefault(); - clearTimeout( this.activating ); - selectedIndex = this._focusNextTab( selectedIndex, goingForward ); - - // Navigating with control/command key will prevent automatic activation - if ( !event.ctrlKey && !event.metaKey ) { - - // Update aria-selected immediately so that AT think the tab is already selected. - // Otherwise AT may confuse the user by stating that they need to activate the tab, - // but the tab will already be activated by the time the announcement finishes. - focusedTab.attr( "aria-selected", "false" ); - this.tabs.eq( selectedIndex ).attr( "aria-selected", "true" ); - - this.activating = this._delay(function() { - this.option( "active", selectedIndex ); - }, this.delay ); - } - }, - - _panelKeydown: function( event ) { - if ( this._handlePageNav( event ) ) { - return; - } - - // Ctrl+up moves focus to the current tab - if ( event.ctrlKey && event.keyCode === $.ui.keyCode.UP ) { - event.preventDefault(); - this.active.focus(); - } - }, - - // Alt+page up/down moves focus to the previous/next tab (and activates) - _handlePageNav: function( event ) { - if ( event.altKey && event.keyCode === $.ui.keyCode.PAGE_UP ) { - this._activate( this._focusNextTab( this.options.active - 1, false ) ); - return true; - } - if ( event.altKey && event.keyCode === $.ui.keyCode.PAGE_DOWN ) { - this._activate( this._focusNextTab( this.options.active + 1, true ) ); - return true; - } - }, - - _findNextTab: function( index, goingForward ) { - var lastTabIndex = this.tabs.length - 1; - - function constrain() { - if ( index > lastTabIndex ) { - index = 0; - } - if ( index < 0 ) { - index = lastTabIndex; - } - return index; - } - - while ( $.inArray( constrain(), this.options.disabled ) !== -1 ) { - index = goingForward ? index + 1 : index - 1; - } - - return index; - }, - - _focusNextTab: function( index, goingForward ) { - index = this._findNextTab( index, goingForward ); - this.tabs.eq( index ).focus(); - return index; - }, - - _setOption: function( key, value ) { - if ( key === "active" ) { - // _activate() will handle invalid values and update this.options - this._activate( value ); - return; - } - - if ( key === "disabled" ) { - // don't use the widget factory's disabled handling - this._setupDisabled( value ); - return; - } - - this._super( key, value); - - if ( key === "collapsible" ) { - this.element.toggleClass( "ui-tabs-collapsible", value ); - // Setting collapsible: false while collapsed; open first panel - if ( !value && this.options.active === false ) { - this._activate( 0 ); - } - } - - if ( key === "event" ) { - this._setupEvents( value ); - } - - if ( key === "heightStyle" ) { - this._setupHeightStyle( value ); - } - }, - - _sanitizeSelector: function( hash ) { - return hash ? hash.replace( /[!"$%&'()*+,.\/:;<=>?@\[\]\^`{|}~]/g, "\\$&" ) : ""; - }, - - refresh: function() { - var options = this.options, - lis = this.tablist.children( ":has(a[href])" ); - - // get disabled tabs from class attribute from HTML - // this will get converted to a boolean if needed in _refresh() - options.disabled = $.map( lis.filter( ".ui-state-disabled" ), function( tab ) { - return lis.index( tab ); - }); - - this._processTabs(); - - // was collapsed or no tabs - if ( options.active === false || !this.anchors.length ) { - options.active = false; - this.active = $(); - // was active, but active tab is gone - } else if ( this.active.length && !$.contains( this.tablist[ 0 ], this.active[ 0 ] ) ) { - // all remaining tabs are disabled - if ( this.tabs.length === options.disabled.length ) { - options.active = false; - this.active = $(); - // activate previous tab - } else { - this._activate( this._findNextTab( Math.max( 0, options.active - 1 ), false ) ); - } - // was active, active tab still exists - } else { - // make sure active index is correct - options.active = this.tabs.index( this.active ); - } - - this._refresh(); - }, - - _refresh: function() { - this._setupDisabled( this.options.disabled ); - this._setupEvents( this.options.event ); - this._setupHeightStyle( this.options.heightStyle ); - - this.tabs.not( this.active ).attr({ - "aria-selected": "false", - "aria-expanded": "false", - tabIndex: -1 - }); - this.panels.not( this._getPanelForTab( this.active ) ) - .hide() - .attr({ - "aria-hidden": "true" - }); - - // Make sure one tab is in the tab order - if ( !this.active.length ) { - this.tabs.eq( 0 ).attr( "tabIndex", 0 ); - } else { - this.active - .addClass( "ui-tabs-active ui-state-active" ) - .attr({ - "aria-selected": "true", - "aria-expanded": "true", - tabIndex: 0 - }); - this._getPanelForTab( this.active ) - .show() - .attr({ - "aria-hidden": "false" - }); - } - }, - - _processTabs: function() { - var that = this, - prevTabs = this.tabs, - prevAnchors = this.anchors, - prevPanels = this.panels; - - this.tablist = this._getList() - .addClass( "ui-tabs-nav ui-helper-reset ui-helper-clearfix ui-widget-header ui-corner-all" ) - .attr( "role", "tablist" ) - - // Prevent users from focusing disabled tabs via click - .delegate( "> li", "mousedown" + this.eventNamespace, function( event ) { - if ( $( this ).is( ".ui-state-disabled" ) ) { - event.preventDefault(); - } - }) - - // support: IE <9 - // Preventing the default action in mousedown doesn't prevent IE - // from focusing the element, so if the anchor gets focused, blur. - // We don't have to worry about focusing the previously focused - // element since clicking on a non-focusable element should focus - // the body anyway. - .delegate( ".ui-tabs-anchor", "focus" + this.eventNamespace, function() { - if ( $( this ).closest( "li" ).is( ".ui-state-disabled" ) ) { - this.blur(); - } - }); - - this.tabs = this.tablist.find( "> li:has(a[href])" ) - .addClass( "ui-state-default ui-corner-top" ) - .attr({ - role: "tab", - tabIndex: -1 - }); - - this.anchors = this.tabs.map(function() { - return $( "a", this )[ 0 ]; - }) - .addClass( "ui-tabs-anchor" ) - .attr({ - role: "presentation", - tabIndex: -1 - }); - - this.panels = $(); - - this.anchors.each(function( i, anchor ) { - var selector, panel, panelId, - anchorId = $( anchor ).uniqueId().attr( "id" ), - tab = $( anchor ).closest( "li" ), - originalAriaControls = tab.attr( "aria-controls" ); - - // inline tab - if ( that._isLocal( anchor ) ) { - selector = anchor.hash; - panelId = selector.substring( 1 ); - panel = that.element.find( that._sanitizeSelector( selector ) ); - // remote tab - } else { - // If the tab doesn't already have aria-controls, - // generate an id by using a throw-away element - panelId = tab.attr( "aria-controls" ) || $( {} ).uniqueId()[ 0 ].id; - selector = "#" + panelId; - panel = that.element.find( selector ); - if ( !panel.length ) { - panel = that._createPanel( panelId ); - panel.insertAfter( that.panels[ i - 1 ] || that.tablist ); - } - panel.attr( "aria-live", "polite" ); - } - - if ( panel.length) { - that.panels = that.panels.add( panel ); - } - if ( originalAriaControls ) { - tab.data( "ui-tabs-aria-controls", originalAriaControls ); - } - tab.attr({ - "aria-controls": panelId, - "aria-labelledby": anchorId - }); - panel.attr( "aria-labelledby", anchorId ); - }); - - this.panels - .addClass( "ui-tabs-panel ui-widget-content ui-corner-bottom" ) - .attr( "role", "tabpanel" ); - - // Avoid memory leaks (#10056) - if ( prevTabs ) { - this._off( prevTabs.not( this.tabs ) ); - this._off( prevAnchors.not( this.anchors ) ); - this._off( prevPanels.not( this.panels ) ); - } - }, - - // allow overriding how to find the list for rare usage scenarios (#7715) - _getList: function() { - return this.tablist || this.element.find( "ol,ul" ).eq( 0 ); - }, - - _createPanel: function( id ) { - return $( "<div>" ) - .attr( "id", id ) - .addClass( "ui-tabs-panel ui-widget-content ui-corner-bottom" ) - .data( "ui-tabs-destroy", true ); - }, - - _setupDisabled: function( disabled ) { - if ( $.isArray( disabled ) ) { - if ( !disabled.length ) { - disabled = false; - } else if ( disabled.length === this.anchors.length ) { - disabled = true; - } - } - - // disable tabs - for ( var i = 0, li; ( li = this.tabs[ i ] ); i++ ) { - if ( disabled === true || $.inArray( i, disabled ) !== -1 ) { - $( li ) - .addClass( "ui-state-disabled" ) - .attr( "aria-disabled", "true" ); - } else { - $( li ) - .removeClass( "ui-state-disabled" ) - .removeAttr( "aria-disabled" ); - } - } - - this.options.disabled = disabled; - }, - - _setupEvents: function( event ) { - var events = {}; - if ( event ) { - $.each( event.split(" "), function( index, eventName ) { - events[ eventName ] = "_eventHandler"; - }); - } - - this._off( this.anchors.add( this.tabs ).add( this.panels ) ); - // Always prevent the default action, even when disabled - this._on( true, this.anchors, { - click: function( event ) { - event.preventDefault(); - } - }); - this._on( this.anchors, events ); - this._on( this.tabs, { keydown: "_tabKeydown" } ); - this._on( this.panels, { keydown: "_panelKeydown" } ); - - this._focusable( this.tabs ); - this._hoverable( this.tabs ); - }, - - _setupHeightStyle: function( heightStyle ) { - var maxHeight, - parent = this.element.parent(); - - if ( heightStyle === "fill" ) { - maxHeight = parent.height(); - maxHeight -= this.element.outerHeight() - this.element.height(); - - this.element.siblings( ":visible" ).each(function() { - var elem = $( this ), - position = elem.css( "position" ); - - if ( position === "absolute" || position === "fixed" ) { - return; - } - maxHeight -= elem.outerHeight( true ); - }); - - this.element.children().not( this.panels ).each(function() { - maxHeight -= $( this ).outerHeight( true ); - }); - - this.panels.each(function() { - $( this ).height( Math.max( 0, maxHeight - - $( this ).innerHeight() + $( this ).height() ) ); - }) - .css( "overflow", "auto" ); - } else if ( heightStyle === "auto" ) { - maxHeight = 0; - this.panels.each(function() { - maxHeight = Math.max( maxHeight, $( this ).height( "" ).height() ); - }).height( maxHeight ); - } - }, - - _eventHandler: function( event ) { - var options = this.options, - active = this.active, - anchor = $( event.currentTarget ), - tab = anchor.closest( "li" ), - clickedIsActive = tab[ 0 ] === active[ 0 ], - collapsing = clickedIsActive && options.collapsible, - toShow = collapsing ? $() : this._getPanelForTab( tab ), - toHide = !active.length ? $() : this._getPanelForTab( active ), - eventData = { - oldTab: active, - oldPanel: toHide, - newTab: collapsing ? $() : tab, - newPanel: toShow - }; - - event.preventDefault(); - - if ( tab.hasClass( "ui-state-disabled" ) || - // tab is already loading - tab.hasClass( "ui-tabs-loading" ) || - // can't switch durning an animation - this.running || - // click on active header, but not collapsible - ( clickedIsActive && !options.collapsible ) || - // allow canceling activation - ( this._trigger( "beforeActivate", event, eventData ) === false ) ) { - return; - } - - options.active = collapsing ? false : this.tabs.index( tab ); - - this.active = clickedIsActive ? $() : tab; - if ( this.xhr ) { - this.xhr.abort(); - } - - if ( !toHide.length && !toShow.length ) { - $.error( "jQuery UI Tabs: Mismatching fragment identifier." ); - } - - if ( toShow.length ) { - this.load( this.tabs.index( tab ), event ); - } - this._toggle( event, eventData ); - }, - - // handles show/hide for selecting tabs - _toggle: function( event, eventData ) { - var that = this, - toShow = eventData.newPanel, - toHide = eventData.oldPanel; - - this.running = true; - - function complete() { - that.running = false; - that._trigger( "activate", event, eventData ); - } - - function show() { - eventData.newTab.closest( "li" ).addClass( "ui-tabs-active ui-state-active" ); - - if ( toShow.length && that.options.show ) { - that._show( toShow, that.options.show, complete ); - } else { - toShow.show(); - complete(); - } - } - - // start out by hiding, then showing, then completing - if ( toHide.length && this.options.hide ) { - this._hide( toHide, this.options.hide, function() { - eventData.oldTab.closest( "li" ).removeClass( "ui-tabs-active ui-state-active" ); - show(); - }); - } else { - eventData.oldTab.closest( "li" ).removeClass( "ui-tabs-active ui-state-active" ); - toHide.hide(); - show(); - } - - toHide.attr( "aria-hidden", "true" ); - eventData.oldTab.attr({ - "aria-selected": "false", - "aria-expanded": "false" - }); - // If we're switching tabs, remove the old tab from the tab order. - // If we're opening from collapsed state, remove the previous tab from the tab order. - // If we're collapsing, then keep the collapsing tab in the tab order. - if ( toShow.length && toHide.length ) { - eventData.oldTab.attr( "tabIndex", -1 ); - } else if ( toShow.length ) { - this.tabs.filter(function() { - return $( this ).attr( "tabIndex" ) === 0; - }) - .attr( "tabIndex", -1 ); - } - - toShow.attr( "aria-hidden", "false" ); - eventData.newTab.attr({ - "aria-selected": "true", - "aria-expanded": "true", - tabIndex: 0 - }); - }, - - _activate: function( index ) { - var anchor, - active = this._findActive( index ); - - // trying to activate the already active panel - if ( active[ 0 ] === this.active[ 0 ] ) { - return; - } - - // trying to collapse, simulate a click on the current active header - if ( !active.length ) { - active = this.active; - } - - anchor = active.find( ".ui-tabs-anchor" )[ 0 ]; - this._eventHandler({ - target: anchor, - currentTarget: anchor, - preventDefault: $.noop - }); - }, - - _findActive: function( index ) { - return index === false ? $() : this.tabs.eq( index ); - }, - - _getIndex: function( index ) { - // meta-function to give users option to provide a href string instead of a numerical index. - if ( typeof index === "string" ) { - index = this.anchors.index( this.anchors.filter( "[href$='" + index + "']" ) ); - } - - return index; - }, - - _destroy: function() { - if ( this.xhr ) { - this.xhr.abort(); - } - - this.element.removeClass( "ui-tabs ui-widget ui-widget-content ui-corner-all ui-tabs-collapsible" ); - - this.tablist - .removeClass( "ui-tabs-nav ui-helper-reset ui-helper-clearfix ui-widget-header ui-corner-all" ) - .removeAttr( "role" ); - - this.anchors - .removeClass( "ui-tabs-anchor" ) - .removeAttr( "role" ) - .removeAttr( "tabIndex" ) - .removeUniqueId(); - - this.tablist.unbind( this.eventNamespace ); - - this.tabs.add( this.panels ).each(function() { - if ( $.data( this, "ui-tabs-destroy" ) ) { - $( this ).remove(); - } else { - $( this ) - .removeClass( "ui-state-default ui-state-active ui-state-disabled " + - "ui-corner-top ui-corner-bottom ui-widget-content ui-tabs-active ui-tabs-panel" ) - .removeAttr( "tabIndex" ) - .removeAttr( "aria-live" ) - .removeAttr( "aria-busy" ) - .removeAttr( "aria-selected" ) - .removeAttr( "aria-labelledby" ) - .removeAttr( "aria-hidden" ) - .removeAttr( "aria-expanded" ) - .removeAttr( "role" ); - } - }); - - this.tabs.each(function() { - var li = $( this ), - prev = li.data( "ui-tabs-aria-controls" ); - if ( prev ) { - li - .attr( "aria-controls", prev ) - .removeData( "ui-tabs-aria-controls" ); - } else { - li.removeAttr( "aria-controls" ); - } - }); - - this.panels.show(); - - if ( this.options.heightStyle !== "content" ) { - this.panels.css( "height", "" ); - } - }, - - enable: function( index ) { - var disabled = this.options.disabled; - if ( disabled === false ) { - return; - } - - if ( index === undefined ) { - disabled = false; - } else { - index = this._getIndex( index ); - if ( $.isArray( disabled ) ) { - disabled = $.map( disabled, function( num ) { - return num !== index ? num : null; - }); - } else { - disabled = $.map( this.tabs, function( li, num ) { - return num !== index ? num : null; - }); - } - } - this._setupDisabled( disabled ); - }, - - disable: function( index ) { - var disabled = this.options.disabled; - if ( disabled === true ) { - return; - } - - if ( index === undefined ) { - disabled = true; - } else { - index = this._getIndex( index ); - if ( $.inArray( index, disabled ) !== -1 ) { - return; - } - if ( $.isArray( disabled ) ) { - disabled = $.merge( [ index ], disabled ).sort(); - } else { - disabled = [ index ]; - } - } - this._setupDisabled( disabled ); - }, - - load: function( index, event ) { - index = this._getIndex( index ); - var that = this, - tab = this.tabs.eq( index ), - anchor = tab.find( ".ui-tabs-anchor" ), - panel = this._getPanelForTab( tab ), - eventData = { - tab: tab, - panel: panel - }, - complete = function( jqXHR, status ) { - if ( status === "abort" ) { - that.panels.stop( false, true ); - } - - tab.removeClass( "ui-tabs-loading" ); - panel.removeAttr( "aria-busy" ); - - if ( jqXHR === that.xhr ) { - delete that.xhr; - } - }; - - // not remote - if ( this._isLocal( anchor[ 0 ] ) ) { - return; - } - - this.xhr = $.ajax( this._ajaxSettings( anchor, event, eventData ) ); - - // support: jQuery <1.8 - // jQuery <1.8 returns false if the request is canceled in beforeSend, - // but as of 1.8, $.ajax() always returns a jqXHR object. - if ( this.xhr && this.xhr.statusText !== "canceled" ) { - tab.addClass( "ui-tabs-loading" ); - panel.attr( "aria-busy", "true" ); - - this.xhr - .done(function( response, status, jqXHR ) { - // support: jQuery <1.8 - // http://bugs.jquery.com/ticket/11778 - setTimeout(function() { - panel.html( response ); - that._trigger( "load", event, eventData ); - - complete( jqXHR, status ); - }, 1 ); - }) - .fail(function( jqXHR, status ) { - // support: jQuery <1.8 - // http://bugs.jquery.com/ticket/11778 - setTimeout(function() { - complete( jqXHR, status ); - }, 1 ); - }); - } - }, - - _ajaxSettings: function( anchor, event, eventData ) { - var that = this; - return { - url: anchor.attr( "href" ), - beforeSend: function( jqXHR, settings ) { - return that._trigger( "beforeLoad", event, - $.extend( { jqXHR: jqXHR, ajaxSettings: settings }, eventData ) ); - } - }; - }, - - _getPanelForTab: function( tab ) { - var id = $( tab ).attr( "aria-controls" ); - return this.element.find( this._sanitizeSelector( "#" + id ) ); - } -}); - - -/*! - * jQuery UI Tooltip 1.11.4 - * http://jqueryui.com - * - * Copyright jQuery Foundation and other contributors - * Released under the MIT license. - * http://jquery.org/license - * - * http://api.jqueryui.com/tooltip/ - */ - - -var tooltip = $.widget( "ui.tooltip", { - version: "1.11.4", - options: { - content: function() { - // support: IE<9, Opera in jQuery <1.7 - // .text() can't accept undefined, so coerce to a string - var title = $( this ).attr( "title" ) || ""; - // Escape title, since we're going from an attribute to raw HTML - return $( "<a>" ).text( title ).html(); - }, - hide: true, - // Disabled elements have inconsistent behavior across browsers (#8661) - items: "[title]:not([disabled])", - position: { - my: "left top+15", - at: "left bottom", - collision: "flipfit flip" - }, - show: true, - tooltipClass: null, - track: false, - - // callbacks - close: null, - open: null - }, - - _addDescribedBy: function( elem, id ) { - var describedby = (elem.attr( "aria-describedby" ) || "").split( /\s+/ ); - describedby.push( id ); - elem - .data( "ui-tooltip-id", id ) - .attr( "aria-describedby", $.trim( describedby.join( " " ) ) ); - }, - - _removeDescribedBy: function( elem ) { - var id = elem.data( "ui-tooltip-id" ), - describedby = (elem.attr( "aria-describedby" ) || "").split( /\s+/ ), - index = $.inArray( id, describedby ); - - if ( index !== -1 ) { - describedby.splice( index, 1 ); - } - - elem.removeData( "ui-tooltip-id" ); - describedby = $.trim( describedby.join( " " ) ); - if ( describedby ) { - elem.attr( "aria-describedby", describedby ); - } else { - elem.removeAttr( "aria-describedby" ); - } - }, - - _create: function() { - this._on({ - mouseover: "open", - focusin: "open" - }); - - // IDs of generated tooltips, needed for destroy - this.tooltips = {}; - - // IDs of parent tooltips where we removed the title attribute - this.parents = {}; - - if ( this.options.disabled ) { - this._disable(); - } - - // Append the aria-live region so tooltips announce correctly - this.liveRegion = $( "<div>" ) - .attr({ - role: "log", - "aria-live": "assertive", - "aria-relevant": "additions" - }) - .addClass( "ui-helper-hidden-accessible" ) - .appendTo( this.document[ 0 ].body ); - }, - - _setOption: function( key, value ) { - var that = this; - - if ( key === "disabled" ) { - this[ value ? "_disable" : "_enable" ](); - this.options[ key ] = value; - // disable element style changes - return; - } - - this._super( key, value ); - - if ( key === "content" ) { - $.each( this.tooltips, function( id, tooltipData ) { - that._updateContent( tooltipData.element ); - }); - } - }, - - _disable: function() { - var that = this; - - // close open tooltips - $.each( this.tooltips, function( id, tooltipData ) { - var event = $.Event( "blur" ); - event.target = event.currentTarget = tooltipData.element[ 0 ]; - that.close( event, true ); - }); - - // remove title attributes to prevent native tooltips - this.element.find( this.options.items ).addBack().each(function() { - var element = $( this ); - if ( element.is( "[title]" ) ) { - element - .data( "ui-tooltip-title", element.attr( "title" ) ) - .removeAttr( "title" ); - } - }); - }, - - _enable: function() { - // restore title attributes - this.element.find( this.options.items ).addBack().each(function() { - var element = $( this ); - if ( element.data( "ui-tooltip-title" ) ) { - element.attr( "title", element.data( "ui-tooltip-title" ) ); - } - }); - }, - - open: function( event ) { - var that = this, - target = $( event ? event.target : this.element ) - // we need closest here due to mouseover bubbling, - // but always pointing at the same event target - .closest( this.options.items ); - - // No element to show a tooltip for or the tooltip is already open - if ( !target.length || target.data( "ui-tooltip-id" ) ) { - return; - } - - if ( target.attr( "title" ) ) { - target.data( "ui-tooltip-title", target.attr( "title" ) ); - } - - target.data( "ui-tooltip-open", true ); - - // kill parent tooltips, custom or native, for hover - if ( event && event.type === "mouseover" ) { - target.parents().each(function() { - var parent = $( this ), - blurEvent; - if ( parent.data( "ui-tooltip-open" ) ) { - blurEvent = $.Event( "blur" ); - blurEvent.target = blurEvent.currentTarget = this; - that.close( blurEvent, true ); - } - if ( parent.attr( "title" ) ) { - parent.uniqueId(); - that.parents[ this.id ] = { - element: this, - title: parent.attr( "title" ) - }; - parent.attr( "title", "" ); - } - }); - } - - this._registerCloseHandlers( event, target ); - this._updateContent( target, event ); - }, - - _updateContent: function( target, event ) { - var content, - contentOption = this.options.content, - that = this, - eventType = event ? event.type : null; - - if ( typeof contentOption === "string" ) { - return this._open( event, target, contentOption ); - } - - content = contentOption.call( target[0], function( response ) { - - // IE may instantly serve a cached response for ajax requests - // delay this call to _open so the other call to _open runs first - that._delay(function() { - - // Ignore async response if tooltip was closed already - if ( !target.data( "ui-tooltip-open" ) ) { - return; - } - - // jQuery creates a special event for focusin when it doesn't - // exist natively. To improve performance, the native event - // object is reused and the type is changed. Therefore, we can't - // rely on the type being correct after the event finished - // bubbling, so we set it back to the previous value. (#8740) - if ( event ) { - event.type = eventType; - } - this._open( event, target, response ); - }); - }); - if ( content ) { - this._open( event, target, content ); - } - }, - - _open: function( event, target, content ) { - var tooltipData, tooltip, delayedShow, a11yContent, - positionOption = $.extend( {}, this.options.position ); - - if ( !content ) { - return; - } - - // Content can be updated multiple times. If the tooltip already - // exists, then just update the content and bail. - tooltipData = this._find( target ); - if ( tooltipData ) { - tooltipData.tooltip.find( ".ui-tooltip-content" ).html( content ); - return; - } - - // if we have a title, clear it to prevent the native tooltip - // we have to check first to avoid defining a title if none exists - // (we don't want to cause an element to start matching [title]) - // - // We use removeAttr only for key events, to allow IE to export the correct - // accessible attributes. For mouse events, set to empty string to avoid - // native tooltip showing up (happens only when removing inside mouseover). - if ( target.is( "[title]" ) ) { - if ( event && event.type === "mouseover" ) { - target.attr( "title", "" ); - } else { - target.removeAttr( "title" ); - } - } - - tooltipData = this._tooltip( target ); - tooltip = tooltipData.tooltip; - this._addDescribedBy( target, tooltip.attr( "id" ) ); - tooltip.find( ".ui-tooltip-content" ).html( content ); - - // Support: Voiceover on OS X, JAWS on IE <= 9 - // JAWS announces deletions even when aria-relevant="additions" - // Voiceover will sometimes re-read the entire log region's contents from the beginning - this.liveRegion.children().hide(); - if ( content.clone ) { - a11yContent = content.clone(); - a11yContent.removeAttr( "id" ).find( "[id]" ).removeAttr( "id" ); - } else { - a11yContent = content; - } - $( "<div>" ).html( a11yContent ).appendTo( this.liveRegion ); - - function position( event ) { - positionOption.of = event; - if ( tooltip.is( ":hidden" ) ) { - return; - } - tooltip.position( positionOption ); - } - if ( this.options.track && event && /^mouse/.test( event.type ) ) { - this._on( this.document, { - mousemove: position - }); - // trigger once to override element-relative positioning - position( event ); - } else { - tooltip.position( $.extend({ - of: target - }, this.options.position ) ); - } - - tooltip.hide(); - - this._show( tooltip, this.options.show ); - // Handle tracking tooltips that are shown with a delay (#8644). As soon - // as the tooltip is visible, position the tooltip using the most recent - // event. - if ( this.options.show && this.options.show.delay ) { - delayedShow = this.delayedShow = setInterval(function() { - if ( tooltip.is( ":visible" ) ) { - position( positionOption.of ); - clearInterval( delayedShow ); - } - }, $.fx.interval ); - } - - this._trigger( "open", event, { tooltip: tooltip } ); - }, - - _registerCloseHandlers: function( event, target ) { - var events = { - keyup: function( event ) { - if ( event.keyCode === $.ui.keyCode.ESCAPE ) { - var fakeEvent = $.Event(event); - fakeEvent.currentTarget = target[0]; - this.close( fakeEvent, true ); - } - } - }; - - // Only bind remove handler for delegated targets. Non-delegated - // tooltips will handle this in destroy. - if ( target[ 0 ] !== this.element[ 0 ] ) { - events.remove = function() { - this._removeTooltip( this._find( target ).tooltip ); - }; - } - - if ( !event || event.type === "mouseover" ) { - events.mouseleave = "close"; - } - if ( !event || event.type === "focusin" ) { - events.focusout = "close"; - } - this._on( true, target, events ); - }, - - close: function( event ) { - var tooltip, - that = this, - target = $( event ? event.currentTarget : this.element ), - tooltipData = this._find( target ); - - // The tooltip may already be closed - if ( !tooltipData ) { - - // We set ui-tooltip-open immediately upon open (in open()), but only set the - // additional data once there's actually content to show (in _open()). So even if the - // tooltip doesn't have full data, we always remove ui-tooltip-open in case we're in - // the period between open() and _open(). - target.removeData( "ui-tooltip-open" ); - return; - } - - tooltip = tooltipData.tooltip; - - // disabling closes the tooltip, so we need to track when we're closing - // to avoid an infinite loop in case the tooltip becomes disabled on close - if ( tooltipData.closing ) { - return; - } - - // Clear the interval for delayed tracking tooltips - clearInterval( this.delayedShow ); - - // only set title if we had one before (see comment in _open()) - // If the title attribute has changed since open(), don't restore - if ( target.data( "ui-tooltip-title" ) && !target.attr( "title" ) ) { - target.attr( "title", target.data( "ui-tooltip-title" ) ); - } - - this._removeDescribedBy( target ); - - tooltipData.hiding = true; - tooltip.stop( true ); - this._hide( tooltip, this.options.hide, function() { - that._removeTooltip( $( this ) ); - }); - - target.removeData( "ui-tooltip-open" ); - this._off( target, "mouseleave focusout keyup" ); - - // Remove 'remove' binding only on delegated targets - if ( target[ 0 ] !== this.element[ 0 ] ) { - this._off( target, "remove" ); - } - this._off( this.document, "mousemove" ); - - if ( event && event.type === "mouseleave" ) { - $.each( this.parents, function( id, parent ) { - $( parent.element ).attr( "title", parent.title ); - delete that.parents[ id ]; - }); - } - - tooltipData.closing = true; - this._trigger( "close", event, { tooltip: tooltip } ); - if ( !tooltipData.hiding ) { - tooltipData.closing = false; - } - }, - - _tooltip: function( element ) { - var tooltip = $( "<div>" ) - .attr( "role", "tooltip" ) - .addClass( "ui-tooltip ui-widget ui-corner-all ui-widget-content " + - ( this.options.tooltipClass || "" ) ), - id = tooltip.uniqueId().attr( "id" ); - - $( "<div>" ) - .addClass( "ui-tooltip-content" ) - .appendTo( tooltip ); - - tooltip.appendTo( this.document[0].body ); - - return this.tooltips[ id ] = { - element: element, - tooltip: tooltip - }; - }, - - _find: function( target ) { - var id = target.data( "ui-tooltip-id" ); - return id ? this.tooltips[ id ] : null; - }, - - _removeTooltip: function( tooltip ) { - tooltip.remove(); - delete this.tooltips[ tooltip.attr( "id" ) ]; - }, - - _destroy: function() { - var that = this; - - // close open tooltips - $.each( this.tooltips, function( id, tooltipData ) { - // Delegate to close method to handle common cleanup - var event = $.Event( "blur" ), - element = tooltipData.element; - event.target = event.currentTarget = element[ 0 ]; - that.close( event, true ); - - // Remove immediately; destroying an open tooltip doesn't use the - // hide animation - $( "#" + id ).remove(); - - // Restore the title - if ( element.data( "ui-tooltip-title" ) ) { - // If the title attribute has changed since open(), don't restore - if ( !element.attr( "title" ) ) { - element.attr( "title", element.data( "ui-tooltip-title" ) ); - } - element.removeData( "ui-tooltip-title" ); - } - }); - this.liveRegion.remove(); - } -}); - - - -})); \ No newline at end of file diff --git a/admin/plugins/jQueryUI/jquery-ui.min.js b/admin/plugins/jQueryUI/jquery-ui.min.js deleted file mode 100644 index 5824d12..0000000 --- a/admin/plugins/jQueryUI/jquery-ui.min.js +++ /dev/null @@ -1,13 +0,0 @@ -/*! jQuery UI - v1.11.4 - 2015-03-11 -* http://jqueryui.com -* Includes: core.js, widget.js, mouse.js, position.js, accordion.js, autocomplete.js, button.js, datepicker.js, dialog.js, draggable.js, droppable.js, effect.js, effect-blind.js, effect-bounce.js, effect-clip.js, effect-drop.js, effect-explode.js, effect-fade.js, effect-fold.js, effect-highlight.js, effect-puff.js, effect-pulsate.js, effect-scale.js, effect-shake.js, effect-size.js, effect-slide.js, effect-transfer.js, menu.js, progressbar.js, resizable.js, selectable.js, selectmenu.js, slider.js, sortable.js, spinner.js, tabs.js, tooltip.js -* Copyright 2015 jQuery Foundation and other contributors; Licensed MIT */ - -(function(e){"function"==typeof define&&define.amd?define(["jquery"],e):e(jQuery)})(function(e){function t(t,s){var n,a,o,r=t.nodeName.toLowerCase();return"area"===r?(n=t.parentNode,a=n.name,t.href&&a&&"map"===n.nodeName.toLowerCase()?(o=e("img[usemap='#"+a+"']")[0],!!o&&i(o)):!1):(/^(input|select|textarea|button|object)$/.test(r)?!t.disabled:"a"===r?t.href||s:s)&&i(t)}function i(t){return e.expr.filters.visible(t)&&!e(t).parents().addBack().filter(function(){return"hidden"===e.css(this,"visibility")}).length}function s(e){for(var t,i;e.length&&e[0]!==document;){if(t=e.css("position"),("absolute"===t||"relative"===t||"fixed"===t)&&(i=parseInt(e.css("zIndex"),10),!isNaN(i)&&0!==i))return i;e=e.parent()}return 0}function n(){this._curInst=null,this._keyEvent=!1,this._disabledInputs=[],this._datepickerShowing=!1,this._inDialog=!1,this._mainDivId="ui-datepicker-div",this._inlineClass="ui-datepicker-inline",this._appendClass="ui-datepicker-append",this._triggerClass="ui-datepicker-trigger",this._dialogClass="ui-datepicker-dialog",this._disableClass="ui-datepicker-disabled",this._unselectableClass="ui-datepicker-unselectable",this._currentClass="ui-datepicker-current-day",this._dayOverClass="ui-datepicker-days-cell-over",this.regional=[],this.regional[""]={closeText:"Done",prevText:"Prev",nextText:"Next",currentText:"Today",monthNames:["January","February","March","April","May","June","July","August","September","October","November","December"],monthNamesShort:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],dayNames:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],dayNamesShort:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],dayNamesMin:["Su","Mo","Tu","We","Th","Fr","Sa"],weekHeader:"Wk",dateFormat:"mm/dd/yy",firstDay:0,isRTL:!1,showMonthAfterYear:!1,yearSuffix:""},this._defaults={showOn:"focus",showAnim:"fadeIn",showOptions:{},defaultDate:null,appendText:"",buttonText:"...",buttonImage:"",buttonImageOnly:!1,hideIfNoPrevNext:!1,navigationAsDateFormat:!1,gotoCurrent:!1,changeMonth:!1,changeYear:!1,yearRange:"c-10:c+10",showOtherMonths:!1,selectOtherMonths:!1,showWeek:!1,calculateWeek:this.iso8601Week,shortYearCutoff:"+10",minDate:null,maxDate:null,duration:"fast",beforeShowDay:null,beforeShow:null,onSelect:null,onChangeMonthYear:null,onClose:null,numberOfMonths:1,showCurrentAtPos:0,stepMonths:1,stepBigMonths:12,altField:"",altFormat:"",constrainInput:!0,showButtonPanel:!1,autoSize:!1,disabled:!1},e.extend(this._defaults,this.regional[""]),this.regional.en=e.extend(!0,{},this.regional[""]),this.regional["en-US"]=e.extend(!0,{},this.regional.en),this.dpDiv=a(e("<div id='"+this._mainDivId+"' class='ui-datepicker ui-widget ui-widget-content ui-helper-clearfix ui-corner-all'></div>"))}function a(t){var i="button, .ui-datepicker-prev, .ui-datepicker-next, .ui-datepicker-calendar td a";return t.delegate(i,"mouseout",function(){e(this).removeClass("ui-state-hover"),-1!==this.className.indexOf("ui-datepicker-prev")&&e(this).removeClass("ui-datepicker-prev-hover"),-1!==this.className.indexOf("ui-datepicker-next")&&e(this).removeClass("ui-datepicker-next-hover")}).delegate(i,"mouseover",o)}function o(){e.datepicker._isDisabledDatepicker(v.inline?v.dpDiv.parent()[0]:v.input[0])||(e(this).parents(".ui-datepicker-calendar").find("a").removeClass("ui-state-hover"),e(this).addClass("ui-state-hover"),-1!==this.className.indexOf("ui-datepicker-prev")&&e(this).addClass("ui-datepicker-prev-hover"),-1!==this.className.indexOf("ui-datepicker-next")&&e(this).addClass("ui-datepicker-next-hover"))}function r(t,i){e.extend(t,i);for(var s in i)null==i[s]&&(t[s]=i[s]);return t}function h(e){return function(){var t=this.element.val();e.apply(this,arguments),this._refresh(),t!==this.element.val()&&this._trigger("change")}}e.ui=e.ui||{},e.extend(e.ui,{version:"1.11.4",keyCode:{BACKSPACE:8,COMMA:188,DELETE:46,DOWN:40,END:35,ENTER:13,ESCAPE:27,HOME:36,LEFT:37,PAGE_DOWN:34,PAGE_UP:33,PERIOD:190,RIGHT:39,SPACE:32,TAB:9,UP:38}}),e.fn.extend({scrollParent:function(t){var i=this.css("position"),s="absolute"===i,n=t?/(auto|scroll|hidden)/:/(auto|scroll)/,a=this.parents().filter(function(){var t=e(this);return s&&"static"===t.css("position")?!1:n.test(t.css("overflow")+t.css("overflow-y")+t.css("overflow-x"))}).eq(0);return"fixed"!==i&&a.length?a:e(this[0].ownerDocument||document)},uniqueId:function(){var e=0;return function(){return this.each(function(){this.id||(this.id="ui-id-"+ ++e)})}}(),removeUniqueId:function(){return this.each(function(){/^ui-id-\d+$/.test(this.id)&&e(this).removeAttr("id")})}}),e.extend(e.expr[":"],{data:e.expr.createPseudo?e.expr.createPseudo(function(t){return function(i){return!!e.data(i,t)}}):function(t,i,s){return!!e.data(t,s[3])},focusable:function(i){return t(i,!isNaN(e.attr(i,"tabindex")))},tabbable:function(i){var s=e.attr(i,"tabindex"),n=isNaN(s);return(n||s>=0)&&t(i,!n)}}),e("<a>").outerWidth(1).jquery||e.each(["Width","Height"],function(t,i){function s(t,i,s,a){return e.each(n,function(){i-=parseFloat(e.css(t,"padding"+this))||0,s&&(i-=parseFloat(e.css(t,"border"+this+"Width"))||0),a&&(i-=parseFloat(e.css(t,"margin"+this))||0)}),i}var n="Width"===i?["Left","Right"]:["Top","Bottom"],a=i.toLowerCase(),o={innerWidth:e.fn.innerWidth,innerHeight:e.fn.innerHeight,outerWidth:e.fn.outerWidth,outerHeight:e.fn.outerHeight};e.fn["inner"+i]=function(t){return void 0===t?o["inner"+i].call(this):this.each(function(){e(this).css(a,s(this,t)+"px")})},e.fn["outer"+i]=function(t,n){return"number"!=typeof t?o["outer"+i].call(this,t):this.each(function(){e(this).css(a,s(this,t,!0,n)+"px")})}}),e.fn.addBack||(e.fn.addBack=function(e){return this.add(null==e?this.prevObject:this.prevObject.filter(e))}),e("<a>").data("a-b","a").removeData("a-b").data("a-b")&&(e.fn.removeData=function(t){return function(i){return arguments.length?t.call(this,e.camelCase(i)):t.call(this)}}(e.fn.removeData)),e.ui.ie=!!/msie [\w.]+/.exec(navigator.userAgent.toLowerCase()),e.fn.extend({focus:function(t){return function(i,s){return"number"==typeof i?this.each(function(){var t=this;setTimeout(function(){e(t).focus(),s&&s.call(t)},i)}):t.apply(this,arguments)}}(e.fn.focus),disableSelection:function(){var e="onselectstart"in document.createElement("div")?"selectstart":"mousedown";return function(){return this.bind(e+".ui-disableSelection",function(e){e.preventDefault()})}}(),enableSelection:function(){return this.unbind(".ui-disableSelection")},zIndex:function(t){if(void 0!==t)return this.css("zIndex",t);if(this.length)for(var i,s,n=e(this[0]);n.length&&n[0]!==document;){if(i=n.css("position"),("absolute"===i||"relative"===i||"fixed"===i)&&(s=parseInt(n.css("zIndex"),10),!isNaN(s)&&0!==s))return s;n=n.parent()}return 0}}),e.ui.plugin={add:function(t,i,s){var n,a=e.ui[t].prototype;for(n in s)a.plugins[n]=a.plugins[n]||[],a.plugins[n].push([i,s[n]])},call:function(e,t,i,s){var n,a=e.plugins[t];if(a&&(s||e.element[0].parentNode&&11!==e.element[0].parentNode.nodeType))for(n=0;a.length>n;n++)e.options[a[n][0]]&&a[n][1].apply(e.element,i)}};var l=0,u=Array.prototype.slice;e.cleanData=function(t){return function(i){var s,n,a;for(a=0;null!=(n=i[a]);a++)try{s=e._data(n,"events"),s&&s.remove&&e(n).triggerHandler("remove")}catch(o){}t(i)}}(e.cleanData),e.widget=function(t,i,s){var n,a,o,r,h={},l=t.split(".")[0];return t=t.split(".")[1],n=l+"-"+t,s||(s=i,i=e.Widget),e.expr[":"][n.toLowerCase()]=function(t){return!!e.data(t,n)},e[l]=e[l]||{},a=e[l][t],o=e[l][t]=function(e,t){return this._createWidget?(arguments.length&&this._createWidget(e,t),void 0):new o(e,t)},e.extend(o,a,{version:s.version,_proto:e.extend({},s),_childConstructors:[]}),r=new i,r.options=e.widget.extend({},r.options),e.each(s,function(t,s){return e.isFunction(s)?(h[t]=function(){var e=function(){return i.prototype[t].apply(this,arguments)},n=function(e){return i.prototype[t].apply(this,e)};return function(){var t,i=this._super,a=this._superApply;return this._super=e,this._superApply=n,t=s.apply(this,arguments),this._super=i,this._superApply=a,t}}(),void 0):(h[t]=s,void 0)}),o.prototype=e.widget.extend(r,{widgetEventPrefix:a?r.widgetEventPrefix||t:t},h,{constructor:o,namespace:l,widgetName:t,widgetFullName:n}),a?(e.each(a._childConstructors,function(t,i){var s=i.prototype;e.widget(s.namespace+"."+s.widgetName,o,i._proto)}),delete a._childConstructors):i._childConstructors.push(o),e.widget.bridge(t,o),o},e.widget.extend=function(t){for(var i,s,n=u.call(arguments,1),a=0,o=n.length;o>a;a++)for(i in n[a])s=n[a][i],n[a].hasOwnProperty(i)&&void 0!==s&&(t[i]=e.isPlainObject(s)?e.isPlainObject(t[i])?e.widget.extend({},t[i],s):e.widget.extend({},s):s);return t},e.widget.bridge=function(t,i){var s=i.prototype.widgetFullName||t;e.fn[t]=function(n){var a="string"==typeof n,o=u.call(arguments,1),r=this;return a?this.each(function(){var i,a=e.data(this,s);return"instance"===n?(r=a,!1):a?e.isFunction(a[n])&&"_"!==n.charAt(0)?(i=a[n].apply(a,o),i!==a&&void 0!==i?(r=i&&i.jquery?r.pushStack(i.get()):i,!1):void 0):e.error("no such method '"+n+"' for "+t+" widget instance"):e.error("cannot call methods on "+t+" prior to initialization; "+"attempted to call method '"+n+"'")}):(o.length&&(n=e.widget.extend.apply(null,[n].concat(o))),this.each(function(){var t=e.data(this,s);t?(t.option(n||{}),t._init&&t._init()):e.data(this,s,new i(n,this))})),r}},e.Widget=function(){},e.Widget._childConstructors=[],e.Widget.prototype={widgetName:"widget",widgetEventPrefix:"",defaultElement:"<div>",options:{disabled:!1,create:null},_createWidget:function(t,i){i=e(i||this.defaultElement||this)[0],this.element=e(i),this.uuid=l++,this.eventNamespace="."+this.widgetName+this.uuid,this.bindings=e(),this.hoverable=e(),this.focusable=e(),i!==this&&(e.data(i,this.widgetFullName,this),this._on(!0,this.element,{remove:function(e){e.target===i&&this.destroy()}}),this.document=e(i.style?i.ownerDocument:i.document||i),this.window=e(this.document[0].defaultView||this.document[0].parentWindow)),this.options=e.widget.extend({},this.options,this._getCreateOptions(),t),this._create(),this._trigger("create",null,this._getCreateEventData()),this._init()},_getCreateOptions:e.noop,_getCreateEventData:e.noop,_create:e.noop,_init:e.noop,destroy:function(){this._destroy(),this.element.unbind(this.eventNamespace).removeData(this.widgetFullName).removeData(e.camelCase(this.widgetFullName)),this.widget().unbind(this.eventNamespace).removeAttr("aria-disabled").removeClass(this.widgetFullName+"-disabled "+"ui-state-disabled"),this.bindings.unbind(this.eventNamespace),this.hoverable.removeClass("ui-state-hover"),this.focusable.removeClass("ui-state-focus")},_destroy:e.noop,widget:function(){return this.element},option:function(t,i){var s,n,a,o=t;if(0===arguments.length)return e.widget.extend({},this.options);if("string"==typeof t)if(o={},s=t.split("."),t=s.shift(),s.length){for(n=o[t]=e.widget.extend({},this.options[t]),a=0;s.length-1>a;a++)n[s[a]]=n[s[a]]||{},n=n[s[a]];if(t=s.pop(),1===arguments.length)return void 0===n[t]?null:n[t];n[t]=i}else{if(1===arguments.length)return void 0===this.options[t]?null:this.options[t];o[t]=i}return this._setOptions(o),this},_setOptions:function(e){var t;for(t in e)this._setOption(t,e[t]);return this},_setOption:function(e,t){return this.options[e]=t,"disabled"===e&&(this.widget().toggleClass(this.widgetFullName+"-disabled",!!t),t&&(this.hoverable.removeClass("ui-state-hover"),this.focusable.removeClass("ui-state-focus"))),this},enable:function(){return this._setOptions({disabled:!1})},disable:function(){return this._setOptions({disabled:!0})},_on:function(t,i,s){var n,a=this;"boolean"!=typeof t&&(s=i,i=t,t=!1),s?(i=n=e(i),this.bindings=this.bindings.add(i)):(s=i,i=this.element,n=this.widget()),e.each(s,function(s,o){function r(){return t||a.options.disabled!==!0&&!e(this).hasClass("ui-state-disabled")?("string"==typeof o?a[o]:o).apply(a,arguments):void 0}"string"!=typeof o&&(r.guid=o.guid=o.guid||r.guid||e.guid++);var h=s.match(/^([\w:-]*)\s*(.*)$/),l=h[1]+a.eventNamespace,u=h[2];u?n.delegate(u,l,r):i.bind(l,r)})},_off:function(t,i){i=(i||"").split(" ").join(this.eventNamespace+" ")+this.eventNamespace,t.unbind(i).undelegate(i),this.bindings=e(this.bindings.not(t).get()),this.focusable=e(this.focusable.not(t).get()),this.hoverable=e(this.hoverable.not(t).get())},_delay:function(e,t){function i(){return("string"==typeof e?s[e]:e).apply(s,arguments)}var s=this;return setTimeout(i,t||0)},_hoverable:function(t){this.hoverable=this.hoverable.add(t),this._on(t,{mouseenter:function(t){e(t.currentTarget).addClass("ui-state-hover")},mouseleave:function(t){e(t.currentTarget).removeClass("ui-state-hover")}})},_focusable:function(t){this.focusable=this.focusable.add(t),this._on(t,{focusin:function(t){e(t.currentTarget).addClass("ui-state-focus")},focusout:function(t){e(t.currentTarget).removeClass("ui-state-focus")}})},_trigger:function(t,i,s){var n,a,o=this.options[t];if(s=s||{},i=e.Event(i),i.type=(t===this.widgetEventPrefix?t:this.widgetEventPrefix+t).toLowerCase(),i.target=this.element[0],a=i.originalEvent)for(n in a)n in i||(i[n]=a[n]);return this.element.trigger(i,s),!(e.isFunction(o)&&o.apply(this.element[0],[i].concat(s))===!1||i.isDefaultPrevented())}},e.each({show:"fadeIn",hide:"fadeOut"},function(t,i){e.Widget.prototype["_"+t]=function(s,n,a){"string"==typeof n&&(n={effect:n});var o,r=n?n===!0||"number"==typeof n?i:n.effect||i:t;n=n||{},"number"==typeof n&&(n={duration:n}),o=!e.isEmptyObject(n),n.complete=a,n.delay&&s.delay(n.delay),o&&e.effects&&e.effects.effect[r]?s[t](n):r!==t&&s[r]?s[r](n.duration,n.easing,a):s.queue(function(i){e(this)[t](),a&&a.call(s[0]),i()})}}),e.widget;var d=!1;e(document).mouseup(function(){d=!1}),e.widget("ui.mouse",{version:"1.11.4",options:{cancel:"input,textarea,button,select,option",distance:1,delay:0},_mouseInit:function(){var t=this;this.element.bind("mousedown."+this.widgetName,function(e){return t._mouseDown(e)}).bind("click."+this.widgetName,function(i){return!0===e.data(i.target,t.widgetName+".preventClickEvent")?(e.removeData(i.target,t.widgetName+".preventClickEvent"),i.stopImmediatePropagation(),!1):void 0}),this.started=!1},_mouseDestroy:function(){this.element.unbind("."+this.widgetName),this._mouseMoveDelegate&&this.document.unbind("mousemove."+this.widgetName,this._mouseMoveDelegate).unbind("mouseup."+this.widgetName,this._mouseUpDelegate)},_mouseDown:function(t){if(!d){this._mouseMoved=!1,this._mouseStarted&&this._mouseUp(t),this._mouseDownEvent=t;var i=this,s=1===t.which,n="string"==typeof this.options.cancel&&t.target.nodeName?e(t.target).closest(this.options.cancel).length:!1;return s&&!n&&this._mouseCapture(t)?(this.mouseDelayMet=!this.options.delay,this.mouseDelayMet||(this._mouseDelayTimer=setTimeout(function(){i.mouseDelayMet=!0},this.options.delay)),this._mouseDistanceMet(t)&&this._mouseDelayMet(t)&&(this._mouseStarted=this._mouseStart(t)!==!1,!this._mouseStarted)?(t.preventDefault(),!0):(!0===e.data(t.target,this.widgetName+".preventClickEvent")&&e.removeData(t.target,this.widgetName+".preventClickEvent"),this._mouseMoveDelegate=function(e){return i._mouseMove(e)},this._mouseUpDelegate=function(e){return i._mouseUp(e)},this.document.bind("mousemove."+this.widgetName,this._mouseMoveDelegate).bind("mouseup."+this.widgetName,this._mouseUpDelegate),t.preventDefault(),d=!0,!0)):!0}},_mouseMove:function(t){if(this._mouseMoved){if(e.ui.ie&&(!document.documentMode||9>document.documentMode)&&!t.button)return this._mouseUp(t);if(!t.which)return this._mouseUp(t)}return(t.which||t.button)&&(this._mouseMoved=!0),this._mouseStarted?(this._mouseDrag(t),t.preventDefault()):(this._mouseDistanceMet(t)&&this._mouseDelayMet(t)&&(this._mouseStarted=this._mouseStart(this._mouseDownEvent,t)!==!1,this._mouseStarted?this._mouseDrag(t):this._mouseUp(t)),!this._mouseStarted)},_mouseUp:function(t){return this.document.unbind("mousemove."+this.widgetName,this._mouseMoveDelegate).unbind("mouseup."+this.widgetName,this._mouseUpDelegate),this._mouseStarted&&(this._mouseStarted=!1,t.target===this._mouseDownEvent.target&&e.data(t.target,this.widgetName+".preventClickEvent",!0),this._mouseStop(t)),d=!1,!1},_mouseDistanceMet:function(e){return Math.max(Math.abs(this._mouseDownEvent.pageX-e.pageX),Math.abs(this._mouseDownEvent.pageY-e.pageY))>=this.options.distance},_mouseDelayMet:function(){return this.mouseDelayMet},_mouseStart:function(){},_mouseDrag:function(){},_mouseStop:function(){},_mouseCapture:function(){return!0}}),function(){function t(e,t,i){return[parseFloat(e[0])*(p.test(e[0])?t/100:1),parseFloat(e[1])*(p.test(e[1])?i/100:1)]}function i(t,i){return parseInt(e.css(t,i),10)||0}function s(t){var i=t[0];return 9===i.nodeType?{width:t.width(),height:t.height(),offset:{top:0,left:0}}:e.isWindow(i)?{width:t.width(),height:t.height(),offset:{top:t.scrollTop(),left:t.scrollLeft()}}:i.preventDefault?{width:0,height:0,offset:{top:i.pageY,left:i.pageX}}:{width:t.outerWidth(),height:t.outerHeight(),offset:t.offset()}}e.ui=e.ui||{};var n,a,o=Math.max,r=Math.abs,h=Math.round,l=/left|center|right/,u=/top|center|bottom/,d=/[\+\-]\d+(\.[\d]+)?%?/,c=/^\w+/,p=/%$/,f=e.fn.position;e.position={scrollbarWidth:function(){if(void 0!==n)return n;var t,i,s=e("<div style='display:block;position:absolute;width:50px;height:50px;overflow:hidden;'><div style='height:100px;width:auto;'></div></div>"),a=s.children()[0];return e("body").append(s),t=a.offsetWidth,s.css("overflow","scroll"),i=a.offsetWidth,t===i&&(i=s[0].clientWidth),s.remove(),n=t-i},getScrollInfo:function(t){var i=t.isWindow||t.isDocument?"":t.element.css("overflow-x"),s=t.isWindow||t.isDocument?"":t.element.css("overflow-y"),n="scroll"===i||"auto"===i&&t.width<t.element[0].scrollWidth,a="scroll"===s||"auto"===s&&t.height<t.element[0].scrollHeight;return{width:a?e.position.scrollbarWidth():0,height:n?e.position.scrollbarWidth():0}},getWithinInfo:function(t){var i=e(t||window),s=e.isWindow(i[0]),n=!!i[0]&&9===i[0].nodeType;return{element:i,isWindow:s,isDocument:n,offset:i.offset()||{left:0,top:0},scrollLeft:i.scrollLeft(),scrollTop:i.scrollTop(),width:s||n?i.width():i.outerWidth(),height:s||n?i.height():i.outerHeight()}}},e.fn.position=function(n){if(!n||!n.of)return f.apply(this,arguments);n=e.extend({},n);var p,m,g,v,y,b,_=e(n.of),x=e.position.getWithinInfo(n.within),w=e.position.getScrollInfo(x),k=(n.collision||"flip").split(" "),T={};return b=s(_),_[0].preventDefault&&(n.at="left top"),m=b.width,g=b.height,v=b.offset,y=e.extend({},v),e.each(["my","at"],function(){var e,t,i=(n[this]||"").split(" ");1===i.length&&(i=l.test(i[0])?i.concat(["center"]):u.test(i[0])?["center"].concat(i):["center","center"]),i[0]=l.test(i[0])?i[0]:"center",i[1]=u.test(i[1])?i[1]:"center",e=d.exec(i[0]),t=d.exec(i[1]),T[this]=[e?e[0]:0,t?t[0]:0],n[this]=[c.exec(i[0])[0],c.exec(i[1])[0]]}),1===k.length&&(k[1]=k[0]),"right"===n.at[0]?y.left+=m:"center"===n.at[0]&&(y.left+=m/2),"bottom"===n.at[1]?y.top+=g:"center"===n.at[1]&&(y.top+=g/2),p=t(T.at,m,g),y.left+=p[0],y.top+=p[1],this.each(function(){var s,l,u=e(this),d=u.outerWidth(),c=u.outerHeight(),f=i(this,"marginLeft"),b=i(this,"marginTop"),D=d+f+i(this,"marginRight")+w.width,S=c+b+i(this,"marginBottom")+w.height,M=e.extend({},y),C=t(T.my,u.outerWidth(),u.outerHeight());"right"===n.my[0]?M.left-=d:"center"===n.my[0]&&(M.left-=d/2),"bottom"===n.my[1]?M.top-=c:"center"===n.my[1]&&(M.top-=c/2),M.left+=C[0],M.top+=C[1],a||(M.left=h(M.left),M.top=h(M.top)),s={marginLeft:f,marginTop:b},e.each(["left","top"],function(t,i){e.ui.position[k[t]]&&e.ui.position[k[t]][i](M,{targetWidth:m,targetHeight:g,elemWidth:d,elemHeight:c,collisionPosition:s,collisionWidth:D,collisionHeight:S,offset:[p[0]+C[0],p[1]+C[1]],my:n.my,at:n.at,within:x,elem:u})}),n.using&&(l=function(e){var t=v.left-M.left,i=t+m-d,s=v.top-M.top,a=s+g-c,h={target:{element:_,left:v.left,top:v.top,width:m,height:g},element:{element:u,left:M.left,top:M.top,width:d,height:c},horizontal:0>i?"left":t>0?"right":"center",vertical:0>a?"top":s>0?"bottom":"middle"};d>m&&m>r(t+i)&&(h.horizontal="center"),c>g&&g>r(s+a)&&(h.vertical="middle"),h.important=o(r(t),r(i))>o(r(s),r(a))?"horizontal":"vertical",n.using.call(this,e,h)}),u.offset(e.extend(M,{using:l}))})},e.ui.position={fit:{left:function(e,t){var i,s=t.within,n=s.isWindow?s.scrollLeft:s.offset.left,a=s.width,r=e.left-t.collisionPosition.marginLeft,h=n-r,l=r+t.collisionWidth-a-n;t.collisionWidth>a?h>0&&0>=l?(i=e.left+h+t.collisionWidth-a-n,e.left+=h-i):e.left=l>0&&0>=h?n:h>l?n+a-t.collisionWidth:n:h>0?e.left+=h:l>0?e.left-=l:e.left=o(e.left-r,e.left)},top:function(e,t){var i,s=t.within,n=s.isWindow?s.scrollTop:s.offset.top,a=t.within.height,r=e.top-t.collisionPosition.marginTop,h=n-r,l=r+t.collisionHeight-a-n;t.collisionHeight>a?h>0&&0>=l?(i=e.top+h+t.collisionHeight-a-n,e.top+=h-i):e.top=l>0&&0>=h?n:h>l?n+a-t.collisionHeight:n:h>0?e.top+=h:l>0?e.top-=l:e.top=o(e.top-r,e.top)}},flip:{left:function(e,t){var i,s,n=t.within,a=n.offset.left+n.scrollLeft,o=n.width,h=n.isWindow?n.scrollLeft:n.offset.left,l=e.left-t.collisionPosition.marginLeft,u=l-h,d=l+t.collisionWidth-o-h,c="left"===t.my[0]?-t.elemWidth:"right"===t.my[0]?t.elemWidth:0,p="left"===t.at[0]?t.targetWidth:"right"===t.at[0]?-t.targetWidth:0,f=-2*t.offset[0];0>u?(i=e.left+c+p+f+t.collisionWidth-o-a,(0>i||r(u)>i)&&(e.left+=c+p+f)):d>0&&(s=e.left-t.collisionPosition.marginLeft+c+p+f-h,(s>0||d>r(s))&&(e.left+=c+p+f))},top:function(e,t){var i,s,n=t.within,a=n.offset.top+n.scrollTop,o=n.height,h=n.isWindow?n.scrollTop:n.offset.top,l=e.top-t.collisionPosition.marginTop,u=l-h,d=l+t.collisionHeight-o-h,c="top"===t.my[1],p=c?-t.elemHeight:"bottom"===t.my[1]?t.elemHeight:0,f="top"===t.at[1]?t.targetHeight:"bottom"===t.at[1]?-t.targetHeight:0,m=-2*t.offset[1];0>u?(s=e.top+p+f+m+t.collisionHeight-o-a,(0>s||r(u)>s)&&(e.top+=p+f+m)):d>0&&(i=e.top-t.collisionPosition.marginTop+p+f+m-h,(i>0||d>r(i))&&(e.top+=p+f+m))}},flipfit:{left:function(){e.ui.position.flip.left.apply(this,arguments),e.ui.position.fit.left.apply(this,arguments)},top:function(){e.ui.position.flip.top.apply(this,arguments),e.ui.position.fit.top.apply(this,arguments)}}},function(){var t,i,s,n,o,r=document.getElementsByTagName("body")[0],h=document.createElement("div");t=document.createElement(r?"div":"body"),s={visibility:"hidden",width:0,height:0,border:0,margin:0,background:"none"},r&&e.extend(s,{position:"absolute",left:"-1000px",top:"-1000px"});for(o in s)t.style[o]=s[o];t.appendChild(h),i=r||document.documentElement,i.insertBefore(t,i.firstChild),h.style.cssText="position: absolute; left: 10.7432222px;",n=e(h).offset().left,a=n>10&&11>n,t.innerHTML="",i.removeChild(t)}()}(),e.ui.position,e.widget("ui.accordion",{version:"1.11.4",options:{active:0,animate:{},collapsible:!1,event:"click",header:"> li > :first-child,> :not(li):even",heightStyle:"auto",icons:{activeHeader:"ui-icon-triangle-1-s",header:"ui-icon-triangle-1-e"},activate:null,beforeActivate:null},hideProps:{borderTopWidth:"hide",borderBottomWidth:"hide",paddingTop:"hide",paddingBottom:"hide",height:"hide"},showProps:{borderTopWidth:"show",borderBottomWidth:"show",paddingTop:"show",paddingBottom:"show",height:"show"},_create:function(){var t=this.options;this.prevShow=this.prevHide=e(),this.element.addClass("ui-accordion ui-widget ui-helper-reset").attr("role","tablist"),t.collapsible||t.active!==!1&&null!=t.active||(t.active=0),this._processPanels(),0>t.active&&(t.active+=this.headers.length),this._refresh()},_getCreateEventData:function(){return{header:this.active,panel:this.active.length?this.active.next():e()}},_createIcons:function(){var t=this.options.icons;t&&(e("<span>").addClass("ui-accordion-header-icon ui-icon "+t.header).prependTo(this.headers),this.active.children(".ui-accordion-header-icon").removeClass(t.header).addClass(t.activeHeader),this.headers.addClass("ui-accordion-icons"))},_destroyIcons:function(){this.headers.removeClass("ui-accordion-icons").children(".ui-accordion-header-icon").remove()},_destroy:function(){var e;this.element.removeClass("ui-accordion ui-widget ui-helper-reset").removeAttr("role"),this.headers.removeClass("ui-accordion-header ui-accordion-header-active ui-state-default ui-corner-all ui-state-active ui-state-disabled ui-corner-top").removeAttr("role").removeAttr("aria-expanded").removeAttr("aria-selected").removeAttr("aria-controls").removeAttr("tabIndex").removeUniqueId(),this._destroyIcons(),e=this.headers.next().removeClass("ui-helper-reset ui-widget-content ui-corner-bottom ui-accordion-content ui-accordion-content-active ui-state-disabled").css("display","").removeAttr("role").removeAttr("aria-hidden").removeAttr("aria-labelledby").removeUniqueId(),"content"!==this.options.heightStyle&&e.css("height","")},_setOption:function(e,t){return"active"===e?(this._activate(t),void 0):("event"===e&&(this.options.event&&this._off(this.headers,this.options.event),this._setupEvents(t)),this._super(e,t),"collapsible"!==e||t||this.options.active!==!1||this._activate(0),"icons"===e&&(this._destroyIcons(),t&&this._createIcons()),"disabled"===e&&(this.element.toggleClass("ui-state-disabled",!!t).attr("aria-disabled",t),this.headers.add(this.headers.next()).toggleClass("ui-state-disabled",!!t)),void 0)},_keydown:function(t){if(!t.altKey&&!t.ctrlKey){var i=e.ui.keyCode,s=this.headers.length,n=this.headers.index(t.target),a=!1;switch(t.keyCode){case i.RIGHT:case i.DOWN:a=this.headers[(n+1)%s];break;case i.LEFT:case i.UP:a=this.headers[(n-1+s)%s];break;case i.SPACE:case i.ENTER:this._eventHandler(t);break;case i.HOME:a=this.headers[0];break;case i.END:a=this.headers[s-1]}a&&(e(t.target).attr("tabIndex",-1),e(a).attr("tabIndex",0),a.focus(),t.preventDefault())}},_panelKeyDown:function(t){t.keyCode===e.ui.keyCode.UP&&t.ctrlKey&&e(t.currentTarget).prev().focus()},refresh:function(){var t=this.options;this._processPanels(),t.active===!1&&t.collapsible===!0||!this.headers.length?(t.active=!1,this.active=e()):t.active===!1?this._activate(0):this.active.length&&!e.contains(this.element[0],this.active[0])?this.headers.length===this.headers.find(".ui-state-disabled").length?(t.active=!1,this.active=e()):this._activate(Math.max(0,t.active-1)):t.active=this.headers.index(this.active),this._destroyIcons(),this._refresh()},_processPanels:function(){var e=this.headers,t=this.panels;this.headers=this.element.find(this.options.header).addClass("ui-accordion-header ui-state-default ui-corner-all"),this.panels=this.headers.next().addClass("ui-accordion-content ui-helper-reset ui-widget-content ui-corner-bottom").filter(":not(.ui-accordion-content-active)").hide(),t&&(this._off(e.not(this.headers)),this._off(t.not(this.panels)))},_refresh:function(){var t,i=this.options,s=i.heightStyle,n=this.element.parent();this.active=this._findActive(i.active).addClass("ui-accordion-header-active ui-state-active ui-corner-top").removeClass("ui-corner-all"),this.active.next().addClass("ui-accordion-content-active").show(),this.headers.attr("role","tab").each(function(){var t=e(this),i=t.uniqueId().attr("id"),s=t.next(),n=s.uniqueId().attr("id");t.attr("aria-controls",n),s.attr("aria-labelledby",i)}).next().attr("role","tabpanel"),this.headers.not(this.active).attr({"aria-selected":"false","aria-expanded":"false",tabIndex:-1}).next().attr({"aria-hidden":"true"}).hide(),this.active.length?this.active.attr({"aria-selected":"true","aria-expanded":"true",tabIndex:0}).next().attr({"aria-hidden":"false"}):this.headers.eq(0).attr("tabIndex",0),this._createIcons(),this._setupEvents(i.event),"fill"===s?(t=n.height(),this.element.siblings(":visible").each(function(){var i=e(this),s=i.css("position");"absolute"!==s&&"fixed"!==s&&(t-=i.outerHeight(!0))}),this.headers.each(function(){t-=e(this).outerHeight(!0)}),this.headers.next().each(function(){e(this).height(Math.max(0,t-e(this).innerHeight()+e(this).height()))}).css("overflow","auto")):"auto"===s&&(t=0,this.headers.next().each(function(){t=Math.max(t,e(this).css("height","").height())}).height(t))},_activate:function(t){var i=this._findActive(t)[0];i!==this.active[0]&&(i=i||this.active[0],this._eventHandler({target:i,currentTarget:i,preventDefault:e.noop}))},_findActive:function(t){return"number"==typeof t?this.headers.eq(t):e()},_setupEvents:function(t){var i={keydown:"_keydown"};t&&e.each(t.split(" "),function(e,t){i[t]="_eventHandler"}),this._off(this.headers.add(this.headers.next())),this._on(this.headers,i),this._on(this.headers.next(),{keydown:"_panelKeyDown"}),this._hoverable(this.headers),this._focusable(this.headers)},_eventHandler:function(t){var i=this.options,s=this.active,n=e(t.currentTarget),a=n[0]===s[0],o=a&&i.collapsible,r=o?e():n.next(),h=s.next(),l={oldHeader:s,oldPanel:h,newHeader:o?e():n,newPanel:r};t.preventDefault(),a&&!i.collapsible||this._trigger("beforeActivate",t,l)===!1||(i.active=o?!1:this.headers.index(n),this.active=a?e():n,this._toggle(l),s.removeClass("ui-accordion-header-active ui-state-active"),i.icons&&s.children(".ui-accordion-header-icon").removeClass(i.icons.activeHeader).addClass(i.icons.header),a||(n.removeClass("ui-corner-all").addClass("ui-accordion-header-active ui-state-active ui-corner-top"),i.icons&&n.children(".ui-accordion-header-icon").removeClass(i.icons.header).addClass(i.icons.activeHeader),n.next().addClass("ui-accordion-content-active")))},_toggle:function(t){var i=t.newPanel,s=this.prevShow.length?this.prevShow:t.oldPanel;this.prevShow.add(this.prevHide).stop(!0,!0),this.prevShow=i,this.prevHide=s,this.options.animate?this._animate(i,s,t):(s.hide(),i.show(),this._toggleComplete(t)),s.attr({"aria-hidden":"true"}),s.prev().attr({"aria-selected":"false","aria-expanded":"false"}),i.length&&s.length?s.prev().attr({tabIndex:-1,"aria-expanded":"false"}):i.length&&this.headers.filter(function(){return 0===parseInt(e(this).attr("tabIndex"),10)}).attr("tabIndex",-1),i.attr("aria-hidden","false").prev().attr({"aria-selected":"true","aria-expanded":"true",tabIndex:0})},_animate:function(e,t,i){var s,n,a,o=this,r=0,h=e.css("box-sizing"),l=e.length&&(!t.length||e.index()<t.index()),u=this.options.animate||{},d=l&&u.down||u,c=function(){o._toggleComplete(i)};return"number"==typeof d&&(a=d),"string"==typeof d&&(n=d),n=n||d.easing||u.easing,a=a||d.duration||u.duration,t.length?e.length?(s=e.show().outerHeight(),t.animate(this.hideProps,{duration:a,easing:n,step:function(e,t){t.now=Math.round(e)}}),e.hide().animate(this.showProps,{duration:a,easing:n,complete:c,step:function(e,i){i.now=Math.round(e),"height"!==i.prop?"content-box"===h&&(r+=i.now):"content"!==o.options.heightStyle&&(i.now=Math.round(s-t.outerHeight()-r),r=0)}}),void 0):t.animate(this.hideProps,a,n,c):e.animate(this.showProps,a,n,c)},_toggleComplete:function(e){var t=e.oldPanel;t.removeClass("ui-accordion-content-active").prev().removeClass("ui-corner-top").addClass("ui-corner-all"),t.length&&(t.parent()[0].className=t.parent()[0].className),this._trigger("activate",null,e)}}),e.widget("ui.menu",{version:"1.11.4",defaultElement:"<ul>",delay:300,options:{icons:{submenu:"ui-icon-carat-1-e"},items:"> *",menus:"ul",position:{my:"left-1 top",at:"right top"},role:"menu",blur:null,focus:null,select:null},_create:function(){this.activeMenu=this.element,this.mouseHandled=!1,this.element.uniqueId().addClass("ui-menu ui-widget ui-widget-content").toggleClass("ui-menu-icons",!!this.element.find(".ui-icon").length).attr({role:this.options.role,tabIndex:0}),this.options.disabled&&this.element.addClass("ui-state-disabled").attr("aria-disabled","true"),this._on({"mousedown .ui-menu-item":function(e){e.preventDefault()},"click .ui-menu-item":function(t){var i=e(t.target);!this.mouseHandled&&i.not(".ui-state-disabled").length&&(this.select(t),t.isPropagationStopped()||(this.mouseHandled=!0),i.has(".ui-menu").length?this.expand(t):!this.element.is(":focus")&&e(this.document[0].activeElement).closest(".ui-menu").length&&(this.element.trigger("focus",[!0]),this.active&&1===this.active.parents(".ui-menu").length&&clearTimeout(this.timer)))},"mouseenter .ui-menu-item":function(t){if(!this.previousFilter){var i=e(t.currentTarget); -i.siblings(".ui-state-active").removeClass("ui-state-active"),this.focus(t,i)}},mouseleave:"collapseAll","mouseleave .ui-menu":"collapseAll",focus:function(e,t){var i=this.active||this.element.find(this.options.items).eq(0);t||this.focus(e,i)},blur:function(t){this._delay(function(){e.contains(this.element[0],this.document[0].activeElement)||this.collapseAll(t)})},keydown:"_keydown"}),this.refresh(),this._on(this.document,{click:function(e){this._closeOnDocumentClick(e)&&this.collapseAll(e),this.mouseHandled=!1}})},_destroy:function(){this.element.removeAttr("aria-activedescendant").find(".ui-menu").addBack().removeClass("ui-menu ui-widget ui-widget-content ui-menu-icons ui-front").removeAttr("role").removeAttr("tabIndex").removeAttr("aria-labelledby").removeAttr("aria-expanded").removeAttr("aria-hidden").removeAttr("aria-disabled").removeUniqueId().show(),this.element.find(".ui-menu-item").removeClass("ui-menu-item").removeAttr("role").removeAttr("aria-disabled").removeUniqueId().removeClass("ui-state-hover").removeAttr("tabIndex").removeAttr("role").removeAttr("aria-haspopup").children().each(function(){var t=e(this);t.data("ui-menu-submenu-carat")&&t.remove()}),this.element.find(".ui-menu-divider").removeClass("ui-menu-divider ui-widget-content")},_keydown:function(t){var i,s,n,a,o=!0;switch(t.keyCode){case e.ui.keyCode.PAGE_UP:this.previousPage(t);break;case e.ui.keyCode.PAGE_DOWN:this.nextPage(t);break;case e.ui.keyCode.HOME:this._move("first","first",t);break;case e.ui.keyCode.END:this._move("last","last",t);break;case e.ui.keyCode.UP:this.previous(t);break;case e.ui.keyCode.DOWN:this.next(t);break;case e.ui.keyCode.LEFT:this.collapse(t);break;case e.ui.keyCode.RIGHT:this.active&&!this.active.is(".ui-state-disabled")&&this.expand(t);break;case e.ui.keyCode.ENTER:case e.ui.keyCode.SPACE:this._activate(t);break;case e.ui.keyCode.ESCAPE:this.collapse(t);break;default:o=!1,s=this.previousFilter||"",n=String.fromCharCode(t.keyCode),a=!1,clearTimeout(this.filterTimer),n===s?a=!0:n=s+n,i=this._filterMenuItems(n),i=a&&-1!==i.index(this.active.next())?this.active.nextAll(".ui-menu-item"):i,i.length||(n=String.fromCharCode(t.keyCode),i=this._filterMenuItems(n)),i.length?(this.focus(t,i),this.previousFilter=n,this.filterTimer=this._delay(function(){delete this.previousFilter},1e3)):delete this.previousFilter}o&&t.preventDefault()},_activate:function(e){this.active.is(".ui-state-disabled")||(this.active.is("[aria-haspopup='true']")?this.expand(e):this.select(e))},refresh:function(){var t,i,s=this,n=this.options.icons.submenu,a=this.element.find(this.options.menus);this.element.toggleClass("ui-menu-icons",!!this.element.find(".ui-icon").length),a.filter(":not(.ui-menu)").addClass("ui-menu ui-widget ui-widget-content ui-front").hide().attr({role:this.options.role,"aria-hidden":"true","aria-expanded":"false"}).each(function(){var t=e(this),i=t.parent(),s=e("<span>").addClass("ui-menu-icon ui-icon "+n).data("ui-menu-submenu-carat",!0);i.attr("aria-haspopup","true").prepend(s),t.attr("aria-labelledby",i.attr("id"))}),t=a.add(this.element),i=t.find(this.options.items),i.not(".ui-menu-item").each(function(){var t=e(this);s._isDivider(t)&&t.addClass("ui-widget-content ui-menu-divider")}),i.not(".ui-menu-item, .ui-menu-divider").addClass("ui-menu-item").uniqueId().attr({tabIndex:-1,role:this._itemRole()}),i.filter(".ui-state-disabled").attr("aria-disabled","true"),this.active&&!e.contains(this.element[0],this.active[0])&&this.blur()},_itemRole:function(){return{menu:"menuitem",listbox:"option"}[this.options.role]},_setOption:function(e,t){"icons"===e&&this.element.find(".ui-menu-icon").removeClass(this.options.icons.submenu).addClass(t.submenu),"disabled"===e&&this.element.toggleClass("ui-state-disabled",!!t).attr("aria-disabled",t),this._super(e,t)},focus:function(e,t){var i,s;this.blur(e,e&&"focus"===e.type),this._scrollIntoView(t),this.active=t.first(),s=this.active.addClass("ui-state-focus").removeClass("ui-state-active"),this.options.role&&this.element.attr("aria-activedescendant",s.attr("id")),this.active.parent().closest(".ui-menu-item").addClass("ui-state-active"),e&&"keydown"===e.type?this._close():this.timer=this._delay(function(){this._close()},this.delay),i=t.children(".ui-menu"),i.length&&e&&/^mouse/.test(e.type)&&this._startOpening(i),this.activeMenu=t.parent(),this._trigger("focus",e,{item:t})},_scrollIntoView:function(t){var i,s,n,a,o,r;this._hasScroll()&&(i=parseFloat(e.css(this.activeMenu[0],"borderTopWidth"))||0,s=parseFloat(e.css(this.activeMenu[0],"paddingTop"))||0,n=t.offset().top-this.activeMenu.offset().top-i-s,a=this.activeMenu.scrollTop(),o=this.activeMenu.height(),r=t.outerHeight(),0>n?this.activeMenu.scrollTop(a+n):n+r>o&&this.activeMenu.scrollTop(a+n-o+r))},blur:function(e,t){t||clearTimeout(this.timer),this.active&&(this.active.removeClass("ui-state-focus"),this.active=null,this._trigger("blur",e,{item:this.active}))},_startOpening:function(e){clearTimeout(this.timer),"true"===e.attr("aria-hidden")&&(this.timer=this._delay(function(){this._close(),this._open(e)},this.delay))},_open:function(t){var i=e.extend({of:this.active},this.options.position);clearTimeout(this.timer),this.element.find(".ui-menu").not(t.parents(".ui-menu")).hide().attr("aria-hidden","true"),t.show().removeAttr("aria-hidden").attr("aria-expanded","true").position(i)},collapseAll:function(t,i){clearTimeout(this.timer),this.timer=this._delay(function(){var s=i?this.element:e(t&&t.target).closest(this.element.find(".ui-menu"));s.length||(s=this.element),this._close(s),this.blur(t),this.activeMenu=s},this.delay)},_close:function(e){e||(e=this.active?this.active.parent():this.element),e.find(".ui-menu").hide().attr("aria-hidden","true").attr("aria-expanded","false").end().find(".ui-state-active").not(".ui-state-focus").removeClass("ui-state-active")},_closeOnDocumentClick:function(t){return!e(t.target).closest(".ui-menu").length},_isDivider:function(e){return!/[^\-\u2014\u2013\s]/.test(e.text())},collapse:function(e){var t=this.active&&this.active.parent().closest(".ui-menu-item",this.element);t&&t.length&&(this._close(),this.focus(e,t))},expand:function(e){var t=this.active&&this.active.children(".ui-menu ").find(this.options.items).first();t&&t.length&&(this._open(t.parent()),this._delay(function(){this.focus(e,t)}))},next:function(e){this._move("next","first",e)},previous:function(e){this._move("prev","last",e)},isFirstItem:function(){return this.active&&!this.active.prevAll(".ui-menu-item").length},isLastItem:function(){return this.active&&!this.active.nextAll(".ui-menu-item").length},_move:function(e,t,i){var s;this.active&&(s="first"===e||"last"===e?this.active["first"===e?"prevAll":"nextAll"](".ui-menu-item").eq(-1):this.active[e+"All"](".ui-menu-item").eq(0)),s&&s.length&&this.active||(s=this.activeMenu.find(this.options.items)[t]()),this.focus(i,s)},nextPage:function(t){var i,s,n;return this.active?(this.isLastItem()||(this._hasScroll()?(s=this.active.offset().top,n=this.element.height(),this.active.nextAll(".ui-menu-item").each(function(){return i=e(this),0>i.offset().top-s-n}),this.focus(t,i)):this.focus(t,this.activeMenu.find(this.options.items)[this.active?"last":"first"]())),void 0):(this.next(t),void 0)},previousPage:function(t){var i,s,n;return this.active?(this.isFirstItem()||(this._hasScroll()?(s=this.active.offset().top,n=this.element.height(),this.active.prevAll(".ui-menu-item").each(function(){return i=e(this),i.offset().top-s+n>0}),this.focus(t,i)):this.focus(t,this.activeMenu.find(this.options.items).first())),void 0):(this.next(t),void 0)},_hasScroll:function(){return this.element.outerHeight()<this.element.prop("scrollHeight")},select:function(t){this.active=this.active||e(t.target).closest(".ui-menu-item");var i={item:this.active};this.active.has(".ui-menu").length||this.collapseAll(t,!0),this._trigger("select",t,i)},_filterMenuItems:function(t){var i=t.replace(/[\-\[\]{}()*+?.,\\\^$|#\s]/g,"\\$&"),s=RegExp("^"+i,"i");return this.activeMenu.find(this.options.items).filter(".ui-menu-item").filter(function(){return s.test(e.trim(e(this).text()))})}}),e.widget("ui.autocomplete",{version:"1.11.4",defaultElement:"<input>",options:{appendTo:null,autoFocus:!1,delay:300,minLength:1,position:{my:"left top",at:"left bottom",collision:"none"},source:null,change:null,close:null,focus:null,open:null,response:null,search:null,select:null},requestIndex:0,pending:0,_create:function(){var t,i,s,n=this.element[0].nodeName.toLowerCase(),a="textarea"===n,o="input"===n;this.isMultiLine=a?!0:o?!1:this.element.prop("isContentEditable"),this.valueMethod=this.element[a||o?"val":"text"],this.isNewMenu=!0,this.element.addClass("ui-autocomplete-input").attr("autocomplete","off"),this._on(this.element,{keydown:function(n){if(this.element.prop("readOnly"))return t=!0,s=!0,i=!0,void 0;t=!1,s=!1,i=!1;var a=e.ui.keyCode;switch(n.keyCode){case a.PAGE_UP:t=!0,this._move("previousPage",n);break;case a.PAGE_DOWN:t=!0,this._move("nextPage",n);break;case a.UP:t=!0,this._keyEvent("previous",n);break;case a.DOWN:t=!0,this._keyEvent("next",n);break;case a.ENTER:this.menu.active&&(t=!0,n.preventDefault(),this.menu.select(n));break;case a.TAB:this.menu.active&&this.menu.select(n);break;case a.ESCAPE:this.menu.element.is(":visible")&&(this.isMultiLine||this._value(this.term),this.close(n),n.preventDefault());break;default:i=!0,this._searchTimeout(n)}},keypress:function(s){if(t)return t=!1,(!this.isMultiLine||this.menu.element.is(":visible"))&&s.preventDefault(),void 0;if(!i){var n=e.ui.keyCode;switch(s.keyCode){case n.PAGE_UP:this._move("previousPage",s);break;case n.PAGE_DOWN:this._move("nextPage",s);break;case n.UP:this._keyEvent("previous",s);break;case n.DOWN:this._keyEvent("next",s)}}},input:function(e){return s?(s=!1,e.preventDefault(),void 0):(this._searchTimeout(e),void 0)},focus:function(){this.selectedItem=null,this.previous=this._value()},blur:function(e){return this.cancelBlur?(delete this.cancelBlur,void 0):(clearTimeout(this.searching),this.close(e),this._change(e),void 0)}}),this._initSource(),this.menu=e("<ul>").addClass("ui-autocomplete ui-front").appendTo(this._appendTo()).menu({role:null}).hide().menu("instance"),this._on(this.menu.element,{mousedown:function(t){t.preventDefault(),this.cancelBlur=!0,this._delay(function(){delete this.cancelBlur});var i=this.menu.element[0];e(t.target).closest(".ui-menu-item").length||this._delay(function(){var t=this;this.document.one("mousedown",function(s){s.target===t.element[0]||s.target===i||e.contains(i,s.target)||t.close()})})},menufocus:function(t,i){var s,n;return this.isNewMenu&&(this.isNewMenu=!1,t.originalEvent&&/^mouse/.test(t.originalEvent.type))?(this.menu.blur(),this.document.one("mousemove",function(){e(t.target).trigger(t.originalEvent)}),void 0):(n=i.item.data("ui-autocomplete-item"),!1!==this._trigger("focus",t,{item:n})&&t.originalEvent&&/^key/.test(t.originalEvent.type)&&this._value(n.value),s=i.item.attr("aria-label")||n.value,s&&e.trim(s).length&&(this.liveRegion.children().hide(),e("<div>").text(s).appendTo(this.liveRegion)),void 0)},menuselect:function(e,t){var i=t.item.data("ui-autocomplete-item"),s=this.previous;this.element[0]!==this.document[0].activeElement&&(this.element.focus(),this.previous=s,this._delay(function(){this.previous=s,this.selectedItem=i})),!1!==this._trigger("select",e,{item:i})&&this._value(i.value),this.term=this._value(),this.close(e),this.selectedItem=i}}),this.liveRegion=e("<span>",{role:"status","aria-live":"assertive","aria-relevant":"additions"}).addClass("ui-helper-hidden-accessible").appendTo(this.document[0].body),this._on(this.window,{beforeunload:function(){this.element.removeAttr("autocomplete")}})},_destroy:function(){clearTimeout(this.searching),this.element.removeClass("ui-autocomplete-input").removeAttr("autocomplete"),this.menu.element.remove(),this.liveRegion.remove()},_setOption:function(e,t){this._super(e,t),"source"===e&&this._initSource(),"appendTo"===e&&this.menu.element.appendTo(this._appendTo()),"disabled"===e&&t&&this.xhr&&this.xhr.abort()},_appendTo:function(){var t=this.options.appendTo;return t&&(t=t.jquery||t.nodeType?e(t):this.document.find(t).eq(0)),t&&t[0]||(t=this.element.closest(".ui-front")),t.length||(t=this.document[0].body),t},_initSource:function(){var t,i,s=this;e.isArray(this.options.source)?(t=this.options.source,this.source=function(i,s){s(e.ui.autocomplete.filter(t,i.term))}):"string"==typeof this.options.source?(i=this.options.source,this.source=function(t,n){s.xhr&&s.xhr.abort(),s.xhr=e.ajax({url:i,data:t,dataType:"json",success:function(e){n(e)},error:function(){n([])}})}):this.source=this.options.source},_searchTimeout:function(e){clearTimeout(this.searching),this.searching=this._delay(function(){var t=this.term===this._value(),i=this.menu.element.is(":visible"),s=e.altKey||e.ctrlKey||e.metaKey||e.shiftKey;(!t||t&&!i&&!s)&&(this.selectedItem=null,this.search(null,e))},this.options.delay)},search:function(e,t){return e=null!=e?e:this._value(),this.term=this._value(),e.length<this.options.minLength?this.close(t):this._trigger("search",t)!==!1?this._search(e):void 0},_search:function(e){this.pending++,this.element.addClass("ui-autocomplete-loading"),this.cancelSearch=!1,this.source({term:e},this._response())},_response:function(){var t=++this.requestIndex;return e.proxy(function(e){t===this.requestIndex&&this.__response(e),this.pending--,this.pending||this.element.removeClass("ui-autocomplete-loading")},this)},__response:function(e){e&&(e=this._normalize(e)),this._trigger("response",null,{content:e}),!this.options.disabled&&e&&e.length&&!this.cancelSearch?(this._suggest(e),this._trigger("open")):this._close()},close:function(e){this.cancelSearch=!0,this._close(e)},_close:function(e){this.menu.element.is(":visible")&&(this.menu.element.hide(),this.menu.blur(),this.isNewMenu=!0,this._trigger("close",e))},_change:function(e){this.previous!==this._value()&&this._trigger("change",e,{item:this.selectedItem})},_normalize:function(t){return t.length&&t[0].label&&t[0].value?t:e.map(t,function(t){return"string"==typeof t?{label:t,value:t}:e.extend({},t,{label:t.label||t.value,value:t.value||t.label})})},_suggest:function(t){var i=this.menu.element.empty();this._renderMenu(i,t),this.isNewMenu=!0,this.menu.refresh(),i.show(),this._resizeMenu(),i.position(e.extend({of:this.element},this.options.position)),this.options.autoFocus&&this.menu.next()},_resizeMenu:function(){var e=this.menu.element;e.outerWidth(Math.max(e.width("").outerWidth()+1,this.element.outerWidth()))},_renderMenu:function(t,i){var s=this;e.each(i,function(e,i){s._renderItemData(t,i)})},_renderItemData:function(e,t){return this._renderItem(e,t).data("ui-autocomplete-item",t)},_renderItem:function(t,i){return e("<li>").text(i.label).appendTo(t)},_move:function(e,t){return this.menu.element.is(":visible")?this.menu.isFirstItem()&&/^previous/.test(e)||this.menu.isLastItem()&&/^next/.test(e)?(this.isMultiLine||this._value(this.term),this.menu.blur(),void 0):(this.menu[e](t),void 0):(this.search(null,t),void 0)},widget:function(){return this.menu.element},_value:function(){return this.valueMethod.apply(this.element,arguments)},_keyEvent:function(e,t){(!this.isMultiLine||this.menu.element.is(":visible"))&&(this._move(e,t),t.preventDefault())}}),e.extend(e.ui.autocomplete,{escapeRegex:function(e){return e.replace(/[\-\[\]{}()*+?.,\\\^$|#\s]/g,"\\$&")},filter:function(t,i){var s=RegExp(e.ui.autocomplete.escapeRegex(i),"i");return e.grep(t,function(e){return s.test(e.label||e.value||e)})}}),e.widget("ui.autocomplete",e.ui.autocomplete,{options:{messages:{noResults:"No search results.",results:function(e){return e+(e>1?" results are":" result is")+" available, use up and down arrow keys to navigate."}}},__response:function(t){var i;this._superApply(arguments),this.options.disabled||this.cancelSearch||(i=t&&t.length?this.options.messages.results(t.length):this.options.messages.noResults,this.liveRegion.children().hide(),e("<div>").text(i).appendTo(this.liveRegion))}}),e.ui.autocomplete;var c,p="ui-button ui-widget ui-state-default ui-corner-all",f="ui-button-icons-only ui-button-icon-only ui-button-text-icons ui-button-text-icon-primary ui-button-text-icon-secondary ui-button-text-only",m=function(){var t=e(this);setTimeout(function(){t.find(":ui-button").button("refresh")},1)},g=function(t){var i=t.name,s=t.form,n=e([]);return i&&(i=i.replace(/'/g,"\\'"),n=s?e(s).find("[name='"+i+"'][type=radio]"):e("[name='"+i+"'][type=radio]",t.ownerDocument).filter(function(){return!this.form})),n};e.widget("ui.button",{version:"1.11.4",defaultElement:"<button>",options:{disabled:null,text:!0,label:null,icons:{primary:null,secondary:null}},_create:function(){this.element.closest("form").unbind("reset"+this.eventNamespace).bind("reset"+this.eventNamespace,m),"boolean"!=typeof this.options.disabled?this.options.disabled=!!this.element.prop("disabled"):this.element.prop("disabled",this.options.disabled),this._determineButtonType(),this.hasTitle=!!this.buttonElement.attr("title");var t=this,i=this.options,s="checkbox"===this.type||"radio"===this.type,n=s?"":"ui-state-active";null===i.label&&(i.label="input"===this.type?this.buttonElement.val():this.buttonElement.html()),this._hoverable(this.buttonElement),this.buttonElement.addClass(p).attr("role","button").bind("mouseenter"+this.eventNamespace,function(){i.disabled||this===c&&e(this).addClass("ui-state-active")}).bind("mouseleave"+this.eventNamespace,function(){i.disabled||e(this).removeClass(n)}).bind("click"+this.eventNamespace,function(e){i.disabled&&(e.preventDefault(),e.stopImmediatePropagation())}),this._on({focus:function(){this.buttonElement.addClass("ui-state-focus")},blur:function(){this.buttonElement.removeClass("ui-state-focus")}}),s&&this.element.bind("change"+this.eventNamespace,function(){t.refresh()}),"checkbox"===this.type?this.buttonElement.bind("click"+this.eventNamespace,function(){return i.disabled?!1:void 0}):"radio"===this.type?this.buttonElement.bind("click"+this.eventNamespace,function(){if(i.disabled)return!1;e(this).addClass("ui-state-active"),t.buttonElement.attr("aria-pressed","true");var s=t.element[0];g(s).not(s).map(function(){return e(this).button("widget")[0]}).removeClass("ui-state-active").attr("aria-pressed","false")}):(this.buttonElement.bind("mousedown"+this.eventNamespace,function(){return i.disabled?!1:(e(this).addClass("ui-state-active"),c=this,t.document.one("mouseup",function(){c=null}),void 0)}).bind("mouseup"+this.eventNamespace,function(){return i.disabled?!1:(e(this).removeClass("ui-state-active"),void 0)}).bind("keydown"+this.eventNamespace,function(t){return i.disabled?!1:((t.keyCode===e.ui.keyCode.SPACE||t.keyCode===e.ui.keyCode.ENTER)&&e(this).addClass("ui-state-active"),void 0)}).bind("keyup"+this.eventNamespace+" blur"+this.eventNamespace,function(){e(this).removeClass("ui-state-active")}),this.buttonElement.is("a")&&this.buttonElement.keyup(function(t){t.keyCode===e.ui.keyCode.SPACE&&e(this).click()})),this._setOption("disabled",i.disabled),this._resetButton()},_determineButtonType:function(){var e,t,i;this.type=this.element.is("[type=checkbox]")?"checkbox":this.element.is("[type=radio]")?"radio":this.element.is("input")?"input":"button","checkbox"===this.type||"radio"===this.type?(e=this.element.parents().last(),t="label[for='"+this.element.attr("id")+"']",this.buttonElement=e.find(t),this.buttonElement.length||(e=e.length?e.siblings():this.element.siblings(),this.buttonElement=e.filter(t),this.buttonElement.length||(this.buttonElement=e.find(t))),this.element.addClass("ui-helper-hidden-accessible"),i=this.element.is(":checked"),i&&this.buttonElement.addClass("ui-state-active"),this.buttonElement.prop("aria-pressed",i)):this.buttonElement=this.element},widget:function(){return this.buttonElement},_destroy:function(){this.element.removeClass("ui-helper-hidden-accessible"),this.buttonElement.removeClass(p+" ui-state-active "+f).removeAttr("role").removeAttr("aria-pressed").html(this.buttonElement.find(".ui-button-text").html()),this.hasTitle||this.buttonElement.removeAttr("title")},_setOption:function(e,t){return this._super(e,t),"disabled"===e?(this.widget().toggleClass("ui-state-disabled",!!t),this.element.prop("disabled",!!t),t&&("checkbox"===this.type||"radio"===this.type?this.buttonElement.removeClass("ui-state-focus"):this.buttonElement.removeClass("ui-state-focus ui-state-active")),void 0):(this._resetButton(),void 0)},refresh:function(){var t=this.element.is("input, button")?this.element.is(":disabled"):this.element.hasClass("ui-button-disabled");t!==this.options.disabled&&this._setOption("disabled",t),"radio"===this.type?g(this.element[0]).each(function(){e(this).is(":checked")?e(this).button("widget").addClass("ui-state-active").attr("aria-pressed","true"):e(this).button("widget").removeClass("ui-state-active").attr("aria-pressed","false")}):"checkbox"===this.type&&(this.element.is(":checked")?this.buttonElement.addClass("ui-state-active").attr("aria-pressed","true"):this.buttonElement.removeClass("ui-state-active").attr("aria-pressed","false"))},_resetButton:function(){if("input"===this.type)return this.options.label&&this.element.val(this.options.label),void 0;var t=this.buttonElement.removeClass(f),i=e("<span></span>",this.document[0]).addClass("ui-button-text").html(this.options.label).appendTo(t.empty()).text(),s=this.options.icons,n=s.primary&&s.secondary,a=[];s.primary||s.secondary?(this.options.text&&a.push("ui-button-text-icon"+(n?"s":s.primary?"-primary":"-secondary")),s.primary&&t.prepend("<span class='ui-button-icon-primary ui-icon "+s.primary+"'></span>"),s.secondary&&t.append("<span class='ui-button-icon-secondary ui-icon "+s.secondary+"'></span>"),this.options.text||(a.push(n?"ui-button-icons-only":"ui-button-icon-only"),this.hasTitle||t.attr("title",e.trim(i)))):a.push("ui-button-text-only"),t.addClass(a.join(" "))}}),e.widget("ui.buttonset",{version:"1.11.4",options:{items:"button, input[type=button], input[type=submit], input[type=reset], input[type=checkbox], input[type=radio], a, :data(ui-button)"},_create:function(){this.element.addClass("ui-buttonset")},_init:function(){this.refresh()},_setOption:function(e,t){"disabled"===e&&this.buttons.button("option",e,t),this._super(e,t)},refresh:function(){var t="rtl"===this.element.css("direction"),i=this.element.find(this.options.items),s=i.filter(":ui-button");i.not(":ui-button").button(),s.button("refresh"),this.buttons=i.map(function(){return e(this).button("widget")[0]}).removeClass("ui-corner-all ui-corner-left ui-corner-right").filter(":first").addClass(t?"ui-corner-right":"ui-corner-left").end().filter(":last").addClass(t?"ui-corner-left":"ui-corner-right").end().end()},_destroy:function(){this.element.removeClass("ui-buttonset"),this.buttons.map(function(){return e(this).button("widget")[0]}).removeClass("ui-corner-left ui-corner-right").end().button("destroy")}}),e.ui.button,e.extend(e.ui,{datepicker:{version:"1.11.4"}});var v;e.extend(n.prototype,{markerClassName:"hasDatepicker",maxRows:4,_widgetDatepicker:function(){return this.dpDiv},setDefaults:function(e){return r(this._defaults,e||{}),this},_attachDatepicker:function(t,i){var s,n,a;s=t.nodeName.toLowerCase(),n="div"===s||"span"===s,t.id||(this.uuid+=1,t.id="dp"+this.uuid),a=this._newInst(e(t),n),a.settings=e.extend({},i||{}),"input"===s?this._connectDatepicker(t,a):n&&this._inlineDatepicker(t,a)},_newInst:function(t,i){var s=t[0].id.replace(/([^A-Za-z0-9_\-])/g,"\\\\$1");return{id:s,input:t,selectedDay:0,selectedMonth:0,selectedYear:0,drawMonth:0,drawYear:0,inline:i,dpDiv:i?a(e("<div class='"+this._inlineClass+" ui-datepicker ui-widget ui-widget-content ui-helper-clearfix ui-corner-all'></div>")):this.dpDiv}},_connectDatepicker:function(t,i){var s=e(t);i.append=e([]),i.trigger=e([]),s.hasClass(this.markerClassName)||(this._attachments(s,i),s.addClass(this.markerClassName).keydown(this._doKeyDown).keypress(this._doKeyPress).keyup(this._doKeyUp),this._autoSize(i),e.data(t,"datepicker",i),i.settings.disabled&&this._disableDatepicker(t))},_attachments:function(t,i){var s,n,a,o=this._get(i,"appendText"),r=this._get(i,"isRTL");i.append&&i.append.remove(),o&&(i.append=e("<span class='"+this._appendClass+"'>"+o+"</span>"),t[r?"before":"after"](i.append)),t.unbind("focus",this._showDatepicker),i.trigger&&i.trigger.remove(),s=this._get(i,"showOn"),("focus"===s||"both"===s)&&t.focus(this._showDatepicker),("button"===s||"both"===s)&&(n=this._get(i,"buttonText"),a=this._get(i,"buttonImage"),i.trigger=e(this._get(i,"buttonImageOnly")?e("<img/>").addClass(this._triggerClass).attr({src:a,alt:n,title:n}):e("<button type='button'></button>").addClass(this._triggerClass).html(a?e("<img/>").attr({src:a,alt:n,title:n}):n)),t[r?"before":"after"](i.trigger),i.trigger.click(function(){return e.datepicker._datepickerShowing&&e.datepicker._lastInput===t[0]?e.datepicker._hideDatepicker():e.datepicker._datepickerShowing&&e.datepicker._lastInput!==t[0]?(e.datepicker._hideDatepicker(),e.datepicker._showDatepicker(t[0])):e.datepicker._showDatepicker(t[0]),!1}))},_autoSize:function(e){if(this._get(e,"autoSize")&&!e.inline){var t,i,s,n,a=new Date(2009,11,20),o=this._get(e,"dateFormat");o.match(/[DM]/)&&(t=function(e){for(i=0,s=0,n=0;e.length>n;n++)e[n].length>i&&(i=e[n].length,s=n);return s},a.setMonth(t(this._get(e,o.match(/MM/)?"monthNames":"monthNamesShort"))),a.setDate(t(this._get(e,o.match(/DD/)?"dayNames":"dayNamesShort"))+20-a.getDay())),e.input.attr("size",this._formatDate(e,a).length)}},_inlineDatepicker:function(t,i){var s=e(t);s.hasClass(this.markerClassName)||(s.addClass(this.markerClassName).append(i.dpDiv),e.data(t,"datepicker",i),this._setDate(i,this._getDefaultDate(i),!0),this._updateDatepicker(i),this._updateAlternate(i),i.settings.disabled&&this._disableDatepicker(t),i.dpDiv.css("display","block"))},_dialogDatepicker:function(t,i,s,n,a){var o,h,l,u,d,c=this._dialogInst;return c||(this.uuid+=1,o="dp"+this.uuid,this._dialogInput=e("<input type='text' id='"+o+"' style='position: absolute; top: -100px; width: 0px;'/>"),this._dialogInput.keydown(this._doKeyDown),e("body").append(this._dialogInput),c=this._dialogInst=this._newInst(this._dialogInput,!1),c.settings={},e.data(this._dialogInput[0],"datepicker",c)),r(c.settings,n||{}),i=i&&i.constructor===Date?this._formatDate(c,i):i,this._dialogInput.val(i),this._pos=a?a.length?a:[a.pageX,a.pageY]:null,this._pos||(h=document.documentElement.clientWidth,l=document.documentElement.clientHeight,u=document.documentElement.scrollLeft||document.body.scrollLeft,d=document.documentElement.scrollTop||document.body.scrollTop,this._pos=[h/2-100+u,l/2-150+d]),this._dialogInput.css("left",this._pos[0]+20+"px").css("top",this._pos[1]+"px"),c.settings.onSelect=s,this._inDialog=!0,this.dpDiv.addClass(this._dialogClass),this._showDatepicker(this._dialogInput[0]),e.blockUI&&e.blockUI(this.dpDiv),e.data(this._dialogInput[0],"datepicker",c),this},_destroyDatepicker:function(t){var i,s=e(t),n=e.data(t,"datepicker");s.hasClass(this.markerClassName)&&(i=t.nodeName.toLowerCase(),e.removeData(t,"datepicker"),"input"===i?(n.append.remove(),n.trigger.remove(),s.removeClass(this.markerClassName).unbind("focus",this._showDatepicker).unbind("keydown",this._doKeyDown).unbind("keypress",this._doKeyPress).unbind("keyup",this._doKeyUp)):("div"===i||"span"===i)&&s.removeClass(this.markerClassName).empty(),v===n&&(v=null))},_enableDatepicker:function(t){var i,s,n=e(t),a=e.data(t,"datepicker");n.hasClass(this.markerClassName)&&(i=t.nodeName.toLowerCase(),"input"===i?(t.disabled=!1,a.trigger.filter("button").each(function(){this.disabled=!1}).end().filter("img").css({opacity:"1.0",cursor:""})):("div"===i||"span"===i)&&(s=n.children("."+this._inlineClass),s.children().removeClass("ui-state-disabled"),s.find("select.ui-datepicker-month, select.ui-datepicker-year").prop("disabled",!1)),this._disabledInputs=e.map(this._disabledInputs,function(e){return e===t?null:e}))},_disableDatepicker:function(t){var i,s,n=e(t),a=e.data(t,"datepicker");n.hasClass(this.markerClassName)&&(i=t.nodeName.toLowerCase(),"input"===i?(t.disabled=!0,a.trigger.filter("button").each(function(){this.disabled=!0}).end().filter("img").css({opacity:"0.5",cursor:"default"})):("div"===i||"span"===i)&&(s=n.children("."+this._inlineClass),s.children().addClass("ui-state-disabled"),s.find("select.ui-datepicker-month, select.ui-datepicker-year").prop("disabled",!0)),this._disabledInputs=e.map(this._disabledInputs,function(e){return e===t?null:e}),this._disabledInputs[this._disabledInputs.length]=t)},_isDisabledDatepicker:function(e){if(!e)return!1;for(var t=0;this._disabledInputs.length>t;t++)if(this._disabledInputs[t]===e)return!0;return!1},_getInst:function(t){try{return e.data(t,"datepicker")}catch(i){throw"Missing instance data for this datepicker"}},_optionDatepicker:function(t,i,s){var n,a,o,h,l=this._getInst(t);return 2===arguments.length&&"string"==typeof i?"defaults"===i?e.extend({},e.datepicker._defaults):l?"all"===i?e.extend({},l.settings):this._get(l,i):null:(n=i||{},"string"==typeof i&&(n={},n[i]=s),l&&(this._curInst===l&&this._hideDatepicker(),a=this._getDateDatepicker(t,!0),o=this._getMinMaxDate(l,"min"),h=this._getMinMaxDate(l,"max"),r(l.settings,n),null!==o&&void 0!==n.dateFormat&&void 0===n.minDate&&(l.settings.minDate=this._formatDate(l,o)),null!==h&&void 0!==n.dateFormat&&void 0===n.maxDate&&(l.settings.maxDate=this._formatDate(l,h)),"disabled"in n&&(n.disabled?this._disableDatepicker(t):this._enableDatepicker(t)),this._attachments(e(t),l),this._autoSize(l),this._setDate(l,a),this._updateAlternate(l),this._updateDatepicker(l)),void 0)},_changeDatepicker:function(e,t,i){this._optionDatepicker(e,t,i)},_refreshDatepicker:function(e){var t=this._getInst(e);t&&this._updateDatepicker(t)},_setDateDatepicker:function(e,t){var i=this._getInst(e);i&&(this._setDate(i,t),this._updateDatepicker(i),this._updateAlternate(i))},_getDateDatepicker:function(e,t){var i=this._getInst(e);return i&&!i.inline&&this._setDateFromField(i,t),i?this._getDate(i):null},_doKeyDown:function(t){var i,s,n,a=e.datepicker._getInst(t.target),o=!0,r=a.dpDiv.is(".ui-datepicker-rtl");if(a._keyEvent=!0,e.datepicker._datepickerShowing)switch(t.keyCode){case 9:e.datepicker._hideDatepicker(),o=!1;break;case 13:return n=e("td."+e.datepicker._dayOverClass+":not(."+e.datepicker._currentClass+")",a.dpDiv),n[0]&&e.datepicker._selectDay(t.target,a.selectedMonth,a.selectedYear,n[0]),i=e.datepicker._get(a,"onSelect"),i?(s=e.datepicker._formatDate(a),i.apply(a.input?a.input[0]:null,[s,a])):e.datepicker._hideDatepicker(),!1;case 27:e.datepicker._hideDatepicker();break;case 33:e.datepicker._adjustDate(t.target,t.ctrlKey?-e.datepicker._get(a,"stepBigMonths"):-e.datepicker._get(a,"stepMonths"),"M");break;case 34:e.datepicker._adjustDate(t.target,t.ctrlKey?+e.datepicker._get(a,"stepBigMonths"):+e.datepicker._get(a,"stepMonths"),"M");break;case 35:(t.ctrlKey||t.metaKey)&&e.datepicker._clearDate(t.target),o=t.ctrlKey||t.metaKey;break;case 36:(t.ctrlKey||t.metaKey)&&e.datepicker._gotoToday(t.target),o=t.ctrlKey||t.metaKey;break;case 37:(t.ctrlKey||t.metaKey)&&e.datepicker._adjustDate(t.target,r?1:-1,"D"),o=t.ctrlKey||t.metaKey,t.originalEvent.altKey&&e.datepicker._adjustDate(t.target,t.ctrlKey?-e.datepicker._get(a,"stepBigMonths"):-e.datepicker._get(a,"stepMonths"),"M");break;case 38:(t.ctrlKey||t.metaKey)&&e.datepicker._adjustDate(t.target,-7,"D"),o=t.ctrlKey||t.metaKey;break;case 39:(t.ctrlKey||t.metaKey)&&e.datepicker._adjustDate(t.target,r?-1:1,"D"),o=t.ctrlKey||t.metaKey,t.originalEvent.altKey&&e.datepicker._adjustDate(t.target,t.ctrlKey?+e.datepicker._get(a,"stepBigMonths"):+e.datepicker._get(a,"stepMonths"),"M");break;case 40:(t.ctrlKey||t.metaKey)&&e.datepicker._adjustDate(t.target,7,"D"),o=t.ctrlKey||t.metaKey;break;default:o=!1}else 36===t.keyCode&&t.ctrlKey?e.datepicker._showDatepicker(this):o=!1;o&&(t.preventDefault(),t.stopPropagation())},_doKeyPress:function(t){var i,s,n=e.datepicker._getInst(t.target); -return e.datepicker._get(n,"constrainInput")?(i=e.datepicker._possibleChars(e.datepicker._get(n,"dateFormat")),s=String.fromCharCode(null==t.charCode?t.keyCode:t.charCode),t.ctrlKey||t.metaKey||" ">s||!i||i.indexOf(s)>-1):void 0},_doKeyUp:function(t){var i,s=e.datepicker._getInst(t.target);if(s.input.val()!==s.lastVal)try{i=e.datepicker.parseDate(e.datepicker._get(s,"dateFormat"),s.input?s.input.val():null,e.datepicker._getFormatConfig(s)),i&&(e.datepicker._setDateFromField(s),e.datepicker._updateAlternate(s),e.datepicker._updateDatepicker(s))}catch(n){}return!0},_showDatepicker:function(t){if(t=t.target||t,"input"!==t.nodeName.toLowerCase()&&(t=e("input",t.parentNode)[0]),!e.datepicker._isDisabledDatepicker(t)&&e.datepicker._lastInput!==t){var i,n,a,o,h,l,u;i=e.datepicker._getInst(t),e.datepicker._curInst&&e.datepicker._curInst!==i&&(e.datepicker._curInst.dpDiv.stop(!0,!0),i&&e.datepicker._datepickerShowing&&e.datepicker._hideDatepicker(e.datepicker._curInst.input[0])),n=e.datepicker._get(i,"beforeShow"),a=n?n.apply(t,[t,i]):{},a!==!1&&(r(i.settings,a),i.lastVal=null,e.datepicker._lastInput=t,e.datepicker._setDateFromField(i),e.datepicker._inDialog&&(t.value=""),e.datepicker._pos||(e.datepicker._pos=e.datepicker._findPos(t),e.datepicker._pos[1]+=t.offsetHeight),o=!1,e(t).parents().each(function(){return o|="fixed"===e(this).css("position"),!o}),h={left:e.datepicker._pos[0],top:e.datepicker._pos[1]},e.datepicker._pos=null,i.dpDiv.empty(),i.dpDiv.css({position:"absolute",display:"block",top:"-1000px"}),e.datepicker._updateDatepicker(i),h=e.datepicker._checkOffset(i,h,o),i.dpDiv.css({position:e.datepicker._inDialog&&e.blockUI?"static":o?"fixed":"absolute",display:"none",left:h.left+"px",top:h.top+"px"}),i.inline||(l=e.datepicker._get(i,"showAnim"),u=e.datepicker._get(i,"duration"),i.dpDiv.css("z-index",s(e(t))+1),e.datepicker._datepickerShowing=!0,e.effects&&e.effects.effect[l]?i.dpDiv.show(l,e.datepicker._get(i,"showOptions"),u):i.dpDiv[l||"show"](l?u:null),e.datepicker._shouldFocusInput(i)&&i.input.focus(),e.datepicker._curInst=i))}},_updateDatepicker:function(t){this.maxRows=4,v=t,t.dpDiv.empty().append(this._generateHTML(t)),this._attachHandlers(t);var i,s=this._getNumberOfMonths(t),n=s[1],a=17,r=t.dpDiv.find("."+this._dayOverClass+" a");r.length>0&&o.apply(r.get(0)),t.dpDiv.removeClass("ui-datepicker-multi-2 ui-datepicker-multi-3 ui-datepicker-multi-4").width(""),n>1&&t.dpDiv.addClass("ui-datepicker-multi-"+n).css("width",a*n+"em"),t.dpDiv[(1!==s[0]||1!==s[1]?"add":"remove")+"Class"]("ui-datepicker-multi"),t.dpDiv[(this._get(t,"isRTL")?"add":"remove")+"Class"]("ui-datepicker-rtl"),t===e.datepicker._curInst&&e.datepicker._datepickerShowing&&e.datepicker._shouldFocusInput(t)&&t.input.focus(),t.yearshtml&&(i=t.yearshtml,setTimeout(function(){i===t.yearshtml&&t.yearshtml&&t.dpDiv.find("select.ui-datepicker-year:first").replaceWith(t.yearshtml),i=t.yearshtml=null},0))},_shouldFocusInput:function(e){return e.input&&e.input.is(":visible")&&!e.input.is(":disabled")&&!e.input.is(":focus")},_checkOffset:function(t,i,s){var n=t.dpDiv.outerWidth(),a=t.dpDiv.outerHeight(),o=t.input?t.input.outerWidth():0,r=t.input?t.input.outerHeight():0,h=document.documentElement.clientWidth+(s?0:e(document).scrollLeft()),l=document.documentElement.clientHeight+(s?0:e(document).scrollTop());return i.left-=this._get(t,"isRTL")?n-o:0,i.left-=s&&i.left===t.input.offset().left?e(document).scrollLeft():0,i.top-=s&&i.top===t.input.offset().top+r?e(document).scrollTop():0,i.left-=Math.min(i.left,i.left+n>h&&h>n?Math.abs(i.left+n-h):0),i.top-=Math.min(i.top,i.top+a>l&&l>a?Math.abs(a+r):0),i},_findPos:function(t){for(var i,s=this._getInst(t),n=this._get(s,"isRTL");t&&("hidden"===t.type||1!==t.nodeType||e.expr.filters.hidden(t));)t=t[n?"previousSibling":"nextSibling"];return i=e(t).offset(),[i.left,i.top]},_hideDatepicker:function(t){var i,s,n,a,o=this._curInst;!o||t&&o!==e.data(t,"datepicker")||this._datepickerShowing&&(i=this._get(o,"showAnim"),s=this._get(o,"duration"),n=function(){e.datepicker._tidyDialog(o)},e.effects&&(e.effects.effect[i]||e.effects[i])?o.dpDiv.hide(i,e.datepicker._get(o,"showOptions"),s,n):o.dpDiv["slideDown"===i?"slideUp":"fadeIn"===i?"fadeOut":"hide"](i?s:null,n),i||n(),this._datepickerShowing=!1,a=this._get(o,"onClose"),a&&a.apply(o.input?o.input[0]:null,[o.input?o.input.val():"",o]),this._lastInput=null,this._inDialog&&(this._dialogInput.css({position:"absolute",left:"0",top:"-100px"}),e.blockUI&&(e.unblockUI(),e("body").append(this.dpDiv))),this._inDialog=!1)},_tidyDialog:function(e){e.dpDiv.removeClass(this._dialogClass).unbind(".ui-datepicker-calendar")},_checkExternalClick:function(t){if(e.datepicker._curInst){var i=e(t.target),s=e.datepicker._getInst(i[0]);(i[0].id!==e.datepicker._mainDivId&&0===i.parents("#"+e.datepicker._mainDivId).length&&!i.hasClass(e.datepicker.markerClassName)&&!i.closest("."+e.datepicker._triggerClass).length&&e.datepicker._datepickerShowing&&(!e.datepicker._inDialog||!e.blockUI)||i.hasClass(e.datepicker.markerClassName)&&e.datepicker._curInst!==s)&&e.datepicker._hideDatepicker()}},_adjustDate:function(t,i,s){var n=e(t),a=this._getInst(n[0]);this._isDisabledDatepicker(n[0])||(this._adjustInstDate(a,i+("M"===s?this._get(a,"showCurrentAtPos"):0),s),this._updateDatepicker(a))},_gotoToday:function(t){var i,s=e(t),n=this._getInst(s[0]);this._get(n,"gotoCurrent")&&n.currentDay?(n.selectedDay=n.currentDay,n.drawMonth=n.selectedMonth=n.currentMonth,n.drawYear=n.selectedYear=n.currentYear):(i=new Date,n.selectedDay=i.getDate(),n.drawMonth=n.selectedMonth=i.getMonth(),n.drawYear=n.selectedYear=i.getFullYear()),this._notifyChange(n),this._adjustDate(s)},_selectMonthYear:function(t,i,s){var n=e(t),a=this._getInst(n[0]);a["selected"+("M"===s?"Month":"Year")]=a["draw"+("M"===s?"Month":"Year")]=parseInt(i.options[i.selectedIndex].value,10),this._notifyChange(a),this._adjustDate(n)},_selectDay:function(t,i,s,n){var a,o=e(t);e(n).hasClass(this._unselectableClass)||this._isDisabledDatepicker(o[0])||(a=this._getInst(o[0]),a.selectedDay=a.currentDay=e("a",n).html(),a.selectedMonth=a.currentMonth=i,a.selectedYear=a.currentYear=s,this._selectDate(t,this._formatDate(a,a.currentDay,a.currentMonth,a.currentYear)))},_clearDate:function(t){var i=e(t);this._selectDate(i,"")},_selectDate:function(t,i){var s,n=e(t),a=this._getInst(n[0]);i=null!=i?i:this._formatDate(a),a.input&&a.input.val(i),this._updateAlternate(a),s=this._get(a,"onSelect"),s?s.apply(a.input?a.input[0]:null,[i,a]):a.input&&a.input.trigger("change"),a.inline?this._updateDatepicker(a):(this._hideDatepicker(),this._lastInput=a.input[0],"object"!=typeof a.input[0]&&a.input.focus(),this._lastInput=null)},_updateAlternate:function(t){var i,s,n,a=this._get(t,"altField");a&&(i=this._get(t,"altFormat")||this._get(t,"dateFormat"),s=this._getDate(t),n=this.formatDate(i,s,this._getFormatConfig(t)),e(a).each(function(){e(this).val(n)}))},noWeekends:function(e){var t=e.getDay();return[t>0&&6>t,""]},iso8601Week:function(e){var t,i=new Date(e.getTime());return i.setDate(i.getDate()+4-(i.getDay()||7)),t=i.getTime(),i.setMonth(0),i.setDate(1),Math.floor(Math.round((t-i)/864e5)/7)+1},parseDate:function(t,i,s){if(null==t||null==i)throw"Invalid arguments";if(i="object"==typeof i?""+i:i+"",""===i)return null;var n,a,o,r,h=0,l=(s?s.shortYearCutoff:null)||this._defaults.shortYearCutoff,u="string"!=typeof l?l:(new Date).getFullYear()%100+parseInt(l,10),d=(s?s.dayNamesShort:null)||this._defaults.dayNamesShort,c=(s?s.dayNames:null)||this._defaults.dayNames,p=(s?s.monthNamesShort:null)||this._defaults.monthNamesShort,f=(s?s.monthNames:null)||this._defaults.monthNames,m=-1,g=-1,v=-1,y=-1,b=!1,_=function(e){var i=t.length>n+1&&t.charAt(n+1)===e;return i&&n++,i},x=function(e){var t=_(e),s="@"===e?14:"!"===e?20:"y"===e&&t?4:"o"===e?3:2,n="y"===e?s:1,a=RegExp("^\\d{"+n+","+s+"}"),o=i.substring(h).match(a);if(!o)throw"Missing number at position "+h;return h+=o[0].length,parseInt(o[0],10)},w=function(t,s,n){var a=-1,o=e.map(_(t)?n:s,function(e,t){return[[t,e]]}).sort(function(e,t){return-(e[1].length-t[1].length)});if(e.each(o,function(e,t){var s=t[1];return i.substr(h,s.length).toLowerCase()===s.toLowerCase()?(a=t[0],h+=s.length,!1):void 0}),-1!==a)return a+1;throw"Unknown name at position "+h},k=function(){if(i.charAt(h)!==t.charAt(n))throw"Unexpected literal at position "+h;h++};for(n=0;t.length>n;n++)if(b)"'"!==t.charAt(n)||_("'")?k():b=!1;else switch(t.charAt(n)){case"d":v=x("d");break;case"D":w("D",d,c);break;case"o":y=x("o");break;case"m":g=x("m");break;case"M":g=w("M",p,f);break;case"y":m=x("y");break;case"@":r=new Date(x("@")),m=r.getFullYear(),g=r.getMonth()+1,v=r.getDate();break;case"!":r=new Date((x("!")-this._ticksTo1970)/1e4),m=r.getFullYear(),g=r.getMonth()+1,v=r.getDate();break;case"'":_("'")?k():b=!0;break;default:k()}if(i.length>h&&(o=i.substr(h),!/^\s+/.test(o)))throw"Extra/unparsed characters found in date: "+o;if(-1===m?m=(new Date).getFullYear():100>m&&(m+=(new Date).getFullYear()-(new Date).getFullYear()%100+(u>=m?0:-100)),y>-1)for(g=1,v=y;;){if(a=this._getDaysInMonth(m,g-1),a>=v)break;g++,v-=a}if(r=this._daylightSavingAdjust(new Date(m,g-1,v)),r.getFullYear()!==m||r.getMonth()+1!==g||r.getDate()!==v)throw"Invalid date";return r},ATOM:"yy-mm-dd",COOKIE:"D, dd M yy",ISO_8601:"yy-mm-dd",RFC_822:"D, d M y",RFC_850:"DD, dd-M-y",RFC_1036:"D, d M y",RFC_1123:"D, d M yy",RFC_2822:"D, d M yy",RSS:"D, d M y",TICKS:"!",TIMESTAMP:"@",W3C:"yy-mm-dd",_ticksTo1970:1e7*60*60*24*(718685+Math.floor(492.5)-Math.floor(19.7)+Math.floor(4.925)),formatDate:function(e,t,i){if(!t)return"";var s,n=(i?i.dayNamesShort:null)||this._defaults.dayNamesShort,a=(i?i.dayNames:null)||this._defaults.dayNames,o=(i?i.monthNamesShort:null)||this._defaults.monthNamesShort,r=(i?i.monthNames:null)||this._defaults.monthNames,h=function(t){var i=e.length>s+1&&e.charAt(s+1)===t;return i&&s++,i},l=function(e,t,i){var s=""+t;if(h(e))for(;i>s.length;)s="0"+s;return s},u=function(e,t,i,s){return h(e)?s[t]:i[t]},d="",c=!1;if(t)for(s=0;e.length>s;s++)if(c)"'"!==e.charAt(s)||h("'")?d+=e.charAt(s):c=!1;else switch(e.charAt(s)){case"d":d+=l("d",t.getDate(),2);break;case"D":d+=u("D",t.getDay(),n,a);break;case"o":d+=l("o",Math.round((new Date(t.getFullYear(),t.getMonth(),t.getDate()).getTime()-new Date(t.getFullYear(),0,0).getTime())/864e5),3);break;case"m":d+=l("m",t.getMonth()+1,2);break;case"M":d+=u("M",t.getMonth(),o,r);break;case"y":d+=h("y")?t.getFullYear():(10>t.getYear()%100?"0":"")+t.getYear()%100;break;case"@":d+=t.getTime();break;case"!":d+=1e4*t.getTime()+this._ticksTo1970;break;case"'":h("'")?d+="'":c=!0;break;default:d+=e.charAt(s)}return d},_possibleChars:function(e){var t,i="",s=!1,n=function(i){var s=e.length>t+1&&e.charAt(t+1)===i;return s&&t++,s};for(t=0;e.length>t;t++)if(s)"'"!==e.charAt(t)||n("'")?i+=e.charAt(t):s=!1;else switch(e.charAt(t)){case"d":case"m":case"y":case"@":i+="0123456789";break;case"D":case"M":return null;case"'":n("'")?i+="'":s=!0;break;default:i+=e.charAt(t)}return i},_get:function(e,t){return void 0!==e.settings[t]?e.settings[t]:this._defaults[t]},_setDateFromField:function(e,t){if(e.input.val()!==e.lastVal){var i=this._get(e,"dateFormat"),s=e.lastVal=e.input?e.input.val():null,n=this._getDefaultDate(e),a=n,o=this._getFormatConfig(e);try{a=this.parseDate(i,s,o)||n}catch(r){s=t?"":s}e.selectedDay=a.getDate(),e.drawMonth=e.selectedMonth=a.getMonth(),e.drawYear=e.selectedYear=a.getFullYear(),e.currentDay=s?a.getDate():0,e.currentMonth=s?a.getMonth():0,e.currentYear=s?a.getFullYear():0,this._adjustInstDate(e)}},_getDefaultDate:function(e){return this._restrictMinMax(e,this._determineDate(e,this._get(e,"defaultDate"),new Date))},_determineDate:function(t,i,s){var n=function(e){var t=new Date;return t.setDate(t.getDate()+e),t},a=function(i){try{return e.datepicker.parseDate(e.datepicker._get(t,"dateFormat"),i,e.datepicker._getFormatConfig(t))}catch(s){}for(var n=(i.toLowerCase().match(/^c/)?e.datepicker._getDate(t):null)||new Date,a=n.getFullYear(),o=n.getMonth(),r=n.getDate(),h=/([+\-]?[0-9]+)\s*(d|D|w|W|m|M|y|Y)?/g,l=h.exec(i);l;){switch(l[2]||"d"){case"d":case"D":r+=parseInt(l[1],10);break;case"w":case"W":r+=7*parseInt(l[1],10);break;case"m":case"M":o+=parseInt(l[1],10),r=Math.min(r,e.datepicker._getDaysInMonth(a,o));break;case"y":case"Y":a+=parseInt(l[1],10),r=Math.min(r,e.datepicker._getDaysInMonth(a,o))}l=h.exec(i)}return new Date(a,o,r)},o=null==i||""===i?s:"string"==typeof i?a(i):"number"==typeof i?isNaN(i)?s:n(i):new Date(i.getTime());return o=o&&"Invalid Date"==""+o?s:o,o&&(o.setHours(0),o.setMinutes(0),o.setSeconds(0),o.setMilliseconds(0)),this._daylightSavingAdjust(o)},_daylightSavingAdjust:function(e){return e?(e.setHours(e.getHours()>12?e.getHours()+2:0),e):null},_setDate:function(e,t,i){var s=!t,n=e.selectedMonth,a=e.selectedYear,o=this._restrictMinMax(e,this._determineDate(e,t,new Date));e.selectedDay=e.currentDay=o.getDate(),e.drawMonth=e.selectedMonth=e.currentMonth=o.getMonth(),e.drawYear=e.selectedYear=e.currentYear=o.getFullYear(),n===e.selectedMonth&&a===e.selectedYear||i||this._notifyChange(e),this._adjustInstDate(e),e.input&&e.input.val(s?"":this._formatDate(e))},_getDate:function(e){var t=!e.currentYear||e.input&&""===e.input.val()?null:this._daylightSavingAdjust(new Date(e.currentYear,e.currentMonth,e.currentDay));return t},_attachHandlers:function(t){var i=this._get(t,"stepMonths"),s="#"+t.id.replace(/\\\\/g,"\\");t.dpDiv.find("[data-handler]").map(function(){var t={prev:function(){e.datepicker._adjustDate(s,-i,"M")},next:function(){e.datepicker._adjustDate(s,+i,"M")},hide:function(){e.datepicker._hideDatepicker()},today:function(){e.datepicker._gotoToday(s)},selectDay:function(){return e.datepicker._selectDay(s,+this.getAttribute("data-month"),+this.getAttribute("data-year"),this),!1},selectMonth:function(){return e.datepicker._selectMonthYear(s,this,"M"),!1},selectYear:function(){return e.datepicker._selectMonthYear(s,this,"Y"),!1}};e(this).bind(this.getAttribute("data-event"),t[this.getAttribute("data-handler")])})},_generateHTML:function(e){var t,i,s,n,a,o,r,h,l,u,d,c,p,f,m,g,v,y,b,_,x,w,k,T,D,S,M,C,N,A,P,I,H,z,F,E,O,j,W,L=new Date,R=this._daylightSavingAdjust(new Date(L.getFullYear(),L.getMonth(),L.getDate())),Y=this._get(e,"isRTL"),B=this._get(e,"showButtonPanel"),J=this._get(e,"hideIfNoPrevNext"),q=this._get(e,"navigationAsDateFormat"),K=this._getNumberOfMonths(e),V=this._get(e,"showCurrentAtPos"),U=this._get(e,"stepMonths"),Q=1!==K[0]||1!==K[1],G=this._daylightSavingAdjust(e.currentDay?new Date(e.currentYear,e.currentMonth,e.currentDay):new Date(9999,9,9)),X=this._getMinMaxDate(e,"min"),$=this._getMinMaxDate(e,"max"),Z=e.drawMonth-V,et=e.drawYear;if(0>Z&&(Z+=12,et--),$)for(t=this._daylightSavingAdjust(new Date($.getFullYear(),$.getMonth()-K[0]*K[1]+1,$.getDate())),t=X&&X>t?X:t;this._daylightSavingAdjust(new Date(et,Z,1))>t;)Z--,0>Z&&(Z=11,et--);for(e.drawMonth=Z,e.drawYear=et,i=this._get(e,"prevText"),i=q?this.formatDate(i,this._daylightSavingAdjust(new Date(et,Z-U,1)),this._getFormatConfig(e)):i,s=this._canAdjustMonth(e,-1,et,Z)?"<a class='ui-datepicker-prev ui-corner-all' data-handler='prev' data-event='click' title='"+i+"'><span class='ui-icon ui-icon-circle-triangle-"+(Y?"e":"w")+"'>"+i+"</span></a>":J?"":"<a class='ui-datepicker-prev ui-corner-all ui-state-disabled' title='"+i+"'><span class='ui-icon ui-icon-circle-triangle-"+(Y?"e":"w")+"'>"+i+"</span></a>",n=this._get(e,"nextText"),n=q?this.formatDate(n,this._daylightSavingAdjust(new Date(et,Z+U,1)),this._getFormatConfig(e)):n,a=this._canAdjustMonth(e,1,et,Z)?"<a class='ui-datepicker-next ui-corner-all' data-handler='next' data-event='click' title='"+n+"'><span class='ui-icon ui-icon-circle-triangle-"+(Y?"w":"e")+"'>"+n+"</span></a>":J?"":"<a class='ui-datepicker-next ui-corner-all ui-state-disabled' title='"+n+"'><span class='ui-icon ui-icon-circle-triangle-"+(Y?"w":"e")+"'>"+n+"</span></a>",o=this._get(e,"currentText"),r=this._get(e,"gotoCurrent")&&e.currentDay?G:R,o=q?this.formatDate(o,r,this._getFormatConfig(e)):o,h=e.inline?"":"<button type='button' class='ui-datepicker-close ui-state-default ui-priority-primary ui-corner-all' data-handler='hide' data-event='click'>"+this._get(e,"closeText")+"</button>",l=B?"<div class='ui-datepicker-buttonpane ui-widget-content'>"+(Y?h:"")+(this._isInRange(e,r)?"<button type='button' class='ui-datepicker-current ui-state-default ui-priority-secondary ui-corner-all' data-handler='today' data-event='click'>"+o+"</button>":"")+(Y?"":h)+"</div>":"",u=parseInt(this._get(e,"firstDay"),10),u=isNaN(u)?0:u,d=this._get(e,"showWeek"),c=this._get(e,"dayNames"),p=this._get(e,"dayNamesMin"),f=this._get(e,"monthNames"),m=this._get(e,"monthNamesShort"),g=this._get(e,"beforeShowDay"),v=this._get(e,"showOtherMonths"),y=this._get(e,"selectOtherMonths"),b=this._getDefaultDate(e),_="",w=0;K[0]>w;w++){for(k="",this.maxRows=4,T=0;K[1]>T;T++){if(D=this._daylightSavingAdjust(new Date(et,Z,e.selectedDay)),S=" ui-corner-all",M="",Q){if(M+="<div class='ui-datepicker-group",K[1]>1)switch(T){case 0:M+=" ui-datepicker-group-first",S=" ui-corner-"+(Y?"right":"left");break;case K[1]-1:M+=" ui-datepicker-group-last",S=" ui-corner-"+(Y?"left":"right");break;default:M+=" ui-datepicker-group-middle",S=""}M+="'>"}for(M+="<div class='ui-datepicker-header ui-widget-header ui-helper-clearfix"+S+"'>"+(/all|left/.test(S)&&0===w?Y?a:s:"")+(/all|right/.test(S)&&0===w?Y?s:a:"")+this._generateMonthYearHeader(e,Z,et,X,$,w>0||T>0,f,m)+"</div><table class='ui-datepicker-calendar'><thead>"+"<tr>",C=d?"<th class='ui-datepicker-week-col'>"+this._get(e,"weekHeader")+"</th>":"",x=0;7>x;x++)N=(x+u)%7,C+="<th scope='col'"+((x+u+6)%7>=5?" class='ui-datepicker-week-end'":"")+">"+"<span title='"+c[N]+"'>"+p[N]+"</span></th>";for(M+=C+"</tr></thead><tbody>",A=this._getDaysInMonth(et,Z),et===e.selectedYear&&Z===e.selectedMonth&&(e.selectedDay=Math.min(e.selectedDay,A)),P=(this._getFirstDayOfMonth(et,Z)-u+7)%7,I=Math.ceil((P+A)/7),H=Q?this.maxRows>I?this.maxRows:I:I,this.maxRows=H,z=this._daylightSavingAdjust(new Date(et,Z,1-P)),F=0;H>F;F++){for(M+="<tr>",E=d?"<td class='ui-datepicker-week-col'>"+this._get(e,"calculateWeek")(z)+"</td>":"",x=0;7>x;x++)O=g?g.apply(e.input?e.input[0]:null,[z]):[!0,""],j=z.getMonth()!==Z,W=j&&!y||!O[0]||X&&X>z||$&&z>$,E+="<td class='"+((x+u+6)%7>=5?" ui-datepicker-week-end":"")+(j?" ui-datepicker-other-month":"")+(z.getTime()===D.getTime()&&Z===e.selectedMonth&&e._keyEvent||b.getTime()===z.getTime()&&b.getTime()===D.getTime()?" "+this._dayOverClass:"")+(W?" "+this._unselectableClass+" ui-state-disabled":"")+(j&&!v?"":" "+O[1]+(z.getTime()===G.getTime()?" "+this._currentClass:"")+(z.getTime()===R.getTime()?" ui-datepicker-today":""))+"'"+(j&&!v||!O[2]?"":" title='"+O[2].replace(/'/g,"&#39;")+"'")+(W?"":" data-handler='selectDay' data-event='click' data-month='"+z.getMonth()+"' data-year='"+z.getFullYear()+"'")+">"+(j&&!v?"&#xa0;":W?"<span class='ui-state-default'>"+z.getDate()+"</span>":"<a class='ui-state-default"+(z.getTime()===R.getTime()?" ui-state-highlight":"")+(z.getTime()===G.getTime()?" ui-state-active":"")+(j?" ui-priority-secondary":"")+"' href='#'>"+z.getDate()+"</a>")+"</td>",z.setDate(z.getDate()+1),z=this._daylightSavingAdjust(z);M+=E+"</tr>"}Z++,Z>11&&(Z=0,et++),M+="</tbody></table>"+(Q?"</div>"+(K[0]>0&&T===K[1]-1?"<div class='ui-datepicker-row-break'></div>":""):""),k+=M}_+=k}return _+=l,e._keyEvent=!1,_},_generateMonthYearHeader:function(e,t,i,s,n,a,o,r){var h,l,u,d,c,p,f,m,g=this._get(e,"changeMonth"),v=this._get(e,"changeYear"),y=this._get(e,"showMonthAfterYear"),b="<div class='ui-datepicker-title'>",_="";if(a||!g)_+="<span class='ui-datepicker-month'>"+o[t]+"</span>";else{for(h=s&&s.getFullYear()===i,l=n&&n.getFullYear()===i,_+="<select class='ui-datepicker-month' data-handler='selectMonth' data-event='change'>",u=0;12>u;u++)(!h||u>=s.getMonth())&&(!l||n.getMonth()>=u)&&(_+="<option value='"+u+"'"+(u===t?" selected='selected'":"")+">"+r[u]+"</option>");_+="</select>"}if(y||(b+=_+(!a&&g&&v?"":"&#xa0;")),!e.yearshtml)if(e.yearshtml="",a||!v)b+="<span class='ui-datepicker-year'>"+i+"</span>";else{for(d=this._get(e,"yearRange").split(":"),c=(new Date).getFullYear(),p=function(e){var t=e.match(/c[+\-].*/)?i+parseInt(e.substring(1),10):e.match(/[+\-].*/)?c+parseInt(e,10):parseInt(e,10);return isNaN(t)?c:t},f=p(d[0]),m=Math.max(f,p(d[1]||"")),f=s?Math.max(f,s.getFullYear()):f,m=n?Math.min(m,n.getFullYear()):m,e.yearshtml+="<select class='ui-datepicker-year' data-handler='selectYear' data-event='change'>";m>=f;f++)e.yearshtml+="<option value='"+f+"'"+(f===i?" selected='selected'":"")+">"+f+"</option>";e.yearshtml+="</select>",b+=e.yearshtml,e.yearshtml=null}return b+=this._get(e,"yearSuffix"),y&&(b+=(!a&&g&&v?"":"&#xa0;")+_),b+="</div>"},_adjustInstDate:function(e,t,i){var s=e.drawYear+("Y"===i?t:0),n=e.drawMonth+("M"===i?t:0),a=Math.min(e.selectedDay,this._getDaysInMonth(s,n))+("D"===i?t:0),o=this._restrictMinMax(e,this._daylightSavingAdjust(new Date(s,n,a)));e.selectedDay=o.getDate(),e.drawMonth=e.selectedMonth=o.getMonth(),e.drawYear=e.selectedYear=o.getFullYear(),("M"===i||"Y"===i)&&this._notifyChange(e)},_restrictMinMax:function(e,t){var i=this._getMinMaxDate(e,"min"),s=this._getMinMaxDate(e,"max"),n=i&&i>t?i:t;return s&&n>s?s:n},_notifyChange:function(e){var t=this._get(e,"onChangeMonthYear");t&&t.apply(e.input?e.input[0]:null,[e.selectedYear,e.selectedMonth+1,e])},_getNumberOfMonths:function(e){var t=this._get(e,"numberOfMonths");return null==t?[1,1]:"number"==typeof t?[1,t]:t},_getMinMaxDate:function(e,t){return this._determineDate(e,this._get(e,t+"Date"),null)},_getDaysInMonth:function(e,t){return 32-this._daylightSavingAdjust(new Date(e,t,32)).getDate()},_getFirstDayOfMonth:function(e,t){return new Date(e,t,1).getDay()},_canAdjustMonth:function(e,t,i,s){var n=this._getNumberOfMonths(e),a=this._daylightSavingAdjust(new Date(i,s+(0>t?t:n[0]*n[1]),1));return 0>t&&a.setDate(this._getDaysInMonth(a.getFullYear(),a.getMonth())),this._isInRange(e,a)},_isInRange:function(e,t){var i,s,n=this._getMinMaxDate(e,"min"),a=this._getMinMaxDate(e,"max"),o=null,r=null,h=this._get(e,"yearRange");return h&&(i=h.split(":"),s=(new Date).getFullYear(),o=parseInt(i[0],10),r=parseInt(i[1],10),i[0].match(/[+\-].*/)&&(o+=s),i[1].match(/[+\-].*/)&&(r+=s)),(!n||t.getTime()>=n.getTime())&&(!a||t.getTime()<=a.getTime())&&(!o||t.getFullYear()>=o)&&(!r||r>=t.getFullYear())},_getFormatConfig:function(e){var t=this._get(e,"shortYearCutoff");return t="string"!=typeof t?t:(new Date).getFullYear()%100+parseInt(t,10),{shortYearCutoff:t,dayNamesShort:this._get(e,"dayNamesShort"),dayNames:this._get(e,"dayNames"),monthNamesShort:this._get(e,"monthNamesShort"),monthNames:this._get(e,"monthNames")}},_formatDate:function(e,t,i,s){t||(e.currentDay=e.selectedDay,e.currentMonth=e.selectedMonth,e.currentYear=e.selectedYear);var n=t?"object"==typeof t?t:this._daylightSavingAdjust(new Date(s,i,t)):this._daylightSavingAdjust(new Date(e.currentYear,e.currentMonth,e.currentDay));return this.formatDate(this._get(e,"dateFormat"),n,this._getFormatConfig(e))}}),e.fn.datepicker=function(t){if(!this.length)return this;e.datepicker.initialized||(e(document).mousedown(e.datepicker._checkExternalClick),e.datepicker.initialized=!0),0===e("#"+e.datepicker._mainDivId).length&&e("body").append(e.datepicker.dpDiv);var i=Array.prototype.slice.call(arguments,1);return"string"!=typeof t||"isDisabled"!==t&&"getDate"!==t&&"widget"!==t?"option"===t&&2===arguments.length&&"string"==typeof arguments[1]?e.datepicker["_"+t+"Datepicker"].apply(e.datepicker,[this[0]].concat(i)):this.each(function(){"string"==typeof t?e.datepicker["_"+t+"Datepicker"].apply(e.datepicker,[this].concat(i)):e.datepicker._attachDatepicker(this,t)}):e.datepicker["_"+t+"Datepicker"].apply(e.datepicker,[this[0]].concat(i))},e.datepicker=new n,e.datepicker.initialized=!1,e.datepicker.uuid=(new Date).getTime(),e.datepicker.version="1.11.4",e.datepicker,e.widget("ui.draggable",e.ui.mouse,{version:"1.11.4",widgetEventPrefix:"drag",options:{addClasses:!0,appendTo:"parent",axis:!1,connectToSortable:!1,containment:!1,cursor:"auto",cursorAt:!1,grid:!1,handle:!1,helper:"original",iframeFix:!1,opacity:!1,refreshPositions:!1,revert:!1,revertDuration:500,scope:"default",scroll:!0,scrollSensitivity:20,scrollSpeed:20,snap:!1,snapMode:"both",snapTolerance:20,stack:!1,zIndex:!1,drag:null,start:null,stop:null},_create:function(){"original"===this.options.helper&&this._setPositionRelative(),this.options.addClasses&&this.element.addClass("ui-draggable"),this.options.disabled&&this.element.addClass("ui-draggable-disabled"),this._setHandleClassName(),this._mouseInit()},_setOption:function(e,t){this._super(e,t),"handle"===e&&(this._removeHandleClassName(),this._setHandleClassName())},_destroy:function(){return(this.helper||this.element).is(".ui-draggable-dragging")?(this.destroyOnClear=!0,void 0):(this.element.removeClass("ui-draggable ui-draggable-dragging ui-draggable-disabled"),this._removeHandleClassName(),this._mouseDestroy(),void 0)},_mouseCapture:function(t){var i=this.options;return this._blurActiveElement(t),this.helper||i.disabled||e(t.target).closest(".ui-resizable-handle").length>0?!1:(this.handle=this._getHandle(t),this.handle?(this._blockFrames(i.iframeFix===!0?"iframe":i.iframeFix),!0):!1)},_blockFrames:function(t){this.iframeBlocks=this.document.find(t).map(function(){var t=e(this);return e("<div>").css("position","absolute").appendTo(t.parent()).outerWidth(t.outerWidth()).outerHeight(t.outerHeight()).offset(t.offset())[0]})},_unblockFrames:function(){this.iframeBlocks&&(this.iframeBlocks.remove(),delete this.iframeBlocks)},_blurActiveElement:function(t){var i=this.document[0];if(this.handleElement.is(t.target))try{i.activeElement&&"body"!==i.activeElement.nodeName.toLowerCase()&&e(i.activeElement).blur()}catch(s){}},_mouseStart:function(t){var i=this.options;return this.helper=this._createHelper(t),this.helper.addClass("ui-draggable-dragging"),this._cacheHelperProportions(),e.ui.ddmanager&&(e.ui.ddmanager.current=this),this._cacheMargins(),this.cssPosition=this.helper.css("position"),this.scrollParent=this.helper.scrollParent(!0),this.offsetParent=this.helper.offsetParent(),this.hasFixedAncestor=this.helper.parents().filter(function(){return"fixed"===e(this).css("position")}).length>0,this.positionAbs=this.element.offset(),this._refreshOffsets(t),this.originalPosition=this.position=this._generatePosition(t,!1),this.originalPageX=t.pageX,this.originalPageY=t.pageY,i.cursorAt&&this._adjustOffsetFromHelper(i.cursorAt),this._setContainment(),this._trigger("start",t)===!1?(this._clear(),!1):(this._cacheHelperProportions(),e.ui.ddmanager&&!i.dropBehaviour&&e.ui.ddmanager.prepareOffsets(this,t),this._normalizeRightBottom(),this._mouseDrag(t,!0),e.ui.ddmanager&&e.ui.ddmanager.dragStart(this,t),!0)},_refreshOffsets:function(e){this.offset={top:this.positionAbs.top-this.margins.top,left:this.positionAbs.left-this.margins.left,scroll:!1,parent:this._getParentOffset(),relative:this._getRelativeOffset()},this.offset.click={left:e.pageX-this.offset.left,top:e.pageY-this.offset.top}},_mouseDrag:function(t,i){if(this.hasFixedAncestor&&(this.offset.parent=this._getParentOffset()),this.position=this._generatePosition(t,!0),this.positionAbs=this._convertPositionTo("absolute"),!i){var s=this._uiHash();if(this._trigger("drag",t,s)===!1)return this._mouseUp({}),!1;this.position=s.position}return this.helper[0].style.left=this.position.left+"px",this.helper[0].style.top=this.position.top+"px",e.ui.ddmanager&&e.ui.ddmanager.drag(this,t),!1},_mouseStop:function(t){var i=this,s=!1;return e.ui.ddmanager&&!this.options.dropBehaviour&&(s=e.ui.ddmanager.drop(this,t)),this.dropped&&(s=this.dropped,this.dropped=!1),"invalid"===this.options.revert&&!s||"valid"===this.options.revert&&s||this.options.revert===!0||e.isFunction(this.options.revert)&&this.options.revert.call(this.element,s)?e(this.helper).animate(this.originalPosition,parseInt(this.options.revertDuration,10),function(){i._trigger("stop",t)!==!1&&i._clear()}):this._trigger("stop",t)!==!1&&this._clear(),!1},_mouseUp:function(t){return this._unblockFrames(),e.ui.ddmanager&&e.ui.ddmanager.dragStop(this,t),this.handleElement.is(t.target)&&this.element.focus(),e.ui.mouse.prototype._mouseUp.call(this,t)},cancel:function(){return this.helper.is(".ui-draggable-dragging")?this._mouseUp({}):this._clear(),this},_getHandle:function(t){return this.options.handle?!!e(t.target).closest(this.element.find(this.options.handle)).length:!0},_setHandleClassName:function(){this.handleElement=this.options.handle?this.element.find(this.options.handle):this.element,this.handleElement.addClass("ui-draggable-handle")},_removeHandleClassName:function(){this.handleElement.removeClass("ui-draggable-handle")},_createHelper:function(t){var i=this.options,s=e.isFunction(i.helper),n=s?e(i.helper.apply(this.element[0],[t])):"clone"===i.helper?this.element.clone().removeAttr("id"):this.element;return n.parents("body").length||n.appendTo("parent"===i.appendTo?this.element[0].parentNode:i.appendTo),s&&n[0]===this.element[0]&&this._setPositionRelative(),n[0]===this.element[0]||/(fixed|absolute)/.test(n.css("position"))||n.css("position","absolute"),n},_setPositionRelative:function(){/^(?:r|a|f)/.test(this.element.css("position"))||(this.element[0].style.position="relative")},_adjustOffsetFromHelper:function(t){"string"==typeof t&&(t=t.split(" ")),e.isArray(t)&&(t={left:+t[0],top:+t[1]||0}),"left"in t&&(this.offset.click.left=t.left+this.margins.left),"right"in t&&(this.offset.click.left=this.helperProportions.width-t.right+this.margins.left),"top"in t&&(this.offset.click.top=t.top+this.margins.top),"bottom"in t&&(this.offset.click.top=this.helperProportions.height-t.bottom+this.margins.top)},_isRootNode:function(e){return/(html|body)/i.test(e.tagName)||e===this.document[0]},_getParentOffset:function(){var t=this.offsetParent.offset(),i=this.document[0];return"absolute"===this.cssPosition&&this.scrollParent[0]!==i&&e.contains(this.scrollParent[0],this.offsetParent[0])&&(t.left+=this.scrollParent.scrollLeft(),t.top+=this.scrollParent.scrollTop()),this._isRootNode(this.offsetParent[0])&&(t={top:0,left:0}),{top:t.top+(parseInt(this.offsetParent.css("borderTopWidth"),10)||0),left:t.left+(parseInt(this.offsetParent.css("borderLeftWidth"),10)||0)}},_getRelativeOffset:function(){if("relative"!==this.cssPosition)return{top:0,left:0};var e=this.element.position(),t=this._isRootNode(this.scrollParent[0]);return{top:e.top-(parseInt(this.helper.css("top"),10)||0)+(t?0:this.scrollParent.scrollTop()),left:e.left-(parseInt(this.helper.css("left"),10)||0)+(t?0:this.scrollParent.scrollLeft())}},_cacheMargins:function(){this.margins={left:parseInt(this.element.css("marginLeft"),10)||0,top:parseInt(this.element.css("marginTop"),10)||0,right:parseInt(this.element.css("marginRight"),10)||0,bottom:parseInt(this.element.css("marginBottom"),10)||0}},_cacheHelperProportions:function(){this.helperProportions={width:this.helper.outerWidth(),height:this.helper.outerHeight()}},_setContainment:function(){var t,i,s,n=this.options,a=this.document[0];return this.relativeContainer=null,n.containment?"window"===n.containment?(this.containment=[e(window).scrollLeft()-this.offset.relative.left-this.offset.parent.left,e(window).scrollTop()-this.offset.relative.top-this.offset.parent.top,e(window).scrollLeft()+e(window).width()-this.helperProportions.width-this.margins.left,e(window).scrollTop()+(e(window).height()||a.body.parentNode.scrollHeight)-this.helperProportions.height-this.margins.top],void 0):"document"===n.containment?(this.containment=[0,0,e(a).width()-this.helperProportions.width-this.margins.left,(e(a).height()||a.body.parentNode.scrollHeight)-this.helperProportions.height-this.margins.top],void 0):n.containment.constructor===Array?(this.containment=n.containment,void 0):("parent"===n.containment&&(n.containment=this.helper[0].parentNode),i=e(n.containment),s=i[0],s&&(t=/(scroll|auto)/.test(i.css("overflow")),this.containment=[(parseInt(i.css("borderLeftWidth"),10)||0)+(parseInt(i.css("paddingLeft"),10)||0),(parseInt(i.css("borderTopWidth"),10)||0)+(parseInt(i.css("paddingTop"),10)||0),(t?Math.max(s.scrollWidth,s.offsetWidth):s.offsetWidth)-(parseInt(i.css("borderRightWidth"),10)||0)-(parseInt(i.css("paddingRight"),10)||0)-this.helperProportions.width-this.margins.left-this.margins.right,(t?Math.max(s.scrollHeight,s.offsetHeight):s.offsetHeight)-(parseInt(i.css("borderBottomWidth"),10)||0)-(parseInt(i.css("paddingBottom"),10)||0)-this.helperProportions.height-this.margins.top-this.margins.bottom],this.relativeContainer=i),void 0):(this.containment=null,void 0) -},_convertPositionTo:function(e,t){t||(t=this.position);var i="absolute"===e?1:-1,s=this._isRootNode(this.scrollParent[0]);return{top:t.top+this.offset.relative.top*i+this.offset.parent.top*i-("fixed"===this.cssPosition?-this.offset.scroll.top:s?0:this.offset.scroll.top)*i,left:t.left+this.offset.relative.left*i+this.offset.parent.left*i-("fixed"===this.cssPosition?-this.offset.scroll.left:s?0:this.offset.scroll.left)*i}},_generatePosition:function(e,t){var i,s,n,a,o=this.options,r=this._isRootNode(this.scrollParent[0]),h=e.pageX,l=e.pageY;return r&&this.offset.scroll||(this.offset.scroll={top:this.scrollParent.scrollTop(),left:this.scrollParent.scrollLeft()}),t&&(this.containment&&(this.relativeContainer?(s=this.relativeContainer.offset(),i=[this.containment[0]+s.left,this.containment[1]+s.top,this.containment[2]+s.left,this.containment[3]+s.top]):i=this.containment,e.pageX-this.offset.click.left<i[0]&&(h=i[0]+this.offset.click.left),e.pageY-this.offset.click.top<i[1]&&(l=i[1]+this.offset.click.top),e.pageX-this.offset.click.left>i[2]&&(h=i[2]+this.offset.click.left),e.pageY-this.offset.click.top>i[3]&&(l=i[3]+this.offset.click.top)),o.grid&&(n=o.grid[1]?this.originalPageY+Math.round((l-this.originalPageY)/o.grid[1])*o.grid[1]:this.originalPageY,l=i?n-this.offset.click.top>=i[1]||n-this.offset.click.top>i[3]?n:n-this.offset.click.top>=i[1]?n-o.grid[1]:n+o.grid[1]:n,a=o.grid[0]?this.originalPageX+Math.round((h-this.originalPageX)/o.grid[0])*o.grid[0]:this.originalPageX,h=i?a-this.offset.click.left>=i[0]||a-this.offset.click.left>i[2]?a:a-this.offset.click.left>=i[0]?a-o.grid[0]:a+o.grid[0]:a),"y"===o.axis&&(h=this.originalPageX),"x"===o.axis&&(l=this.originalPageY)),{top:l-this.offset.click.top-this.offset.relative.top-this.offset.parent.top+("fixed"===this.cssPosition?-this.offset.scroll.top:r?0:this.offset.scroll.top),left:h-this.offset.click.left-this.offset.relative.left-this.offset.parent.left+("fixed"===this.cssPosition?-this.offset.scroll.left:r?0:this.offset.scroll.left)}},_clear:function(){this.helper.removeClass("ui-draggable-dragging"),this.helper[0]===this.element[0]||this.cancelHelperRemoval||this.helper.remove(),this.helper=null,this.cancelHelperRemoval=!1,this.destroyOnClear&&this.destroy()},_normalizeRightBottom:function(){"y"!==this.options.axis&&"auto"!==this.helper.css("right")&&(this.helper.width(this.helper.width()),this.helper.css("right","auto")),"x"!==this.options.axis&&"auto"!==this.helper.css("bottom")&&(this.helper.height(this.helper.height()),this.helper.css("bottom","auto"))},_trigger:function(t,i,s){return s=s||this._uiHash(),e.ui.plugin.call(this,t,[i,s,this],!0),/^(drag|start|stop)/.test(t)&&(this.positionAbs=this._convertPositionTo("absolute"),s.offset=this.positionAbs),e.Widget.prototype._trigger.call(this,t,i,s)},plugins:{},_uiHash:function(){return{helper:this.helper,position:this.position,originalPosition:this.originalPosition,offset:this.positionAbs}}}),e.ui.plugin.add("draggable","connectToSortable",{start:function(t,i,s){var n=e.extend({},i,{item:s.element});s.sortables=[],e(s.options.connectToSortable).each(function(){var i=e(this).sortable("instance");i&&!i.options.disabled&&(s.sortables.push(i),i.refreshPositions(),i._trigger("activate",t,n))})},stop:function(t,i,s){var n=e.extend({},i,{item:s.element});s.cancelHelperRemoval=!1,e.each(s.sortables,function(){var e=this;e.isOver?(e.isOver=0,s.cancelHelperRemoval=!0,e.cancelHelperRemoval=!1,e._storedCSS={position:e.placeholder.css("position"),top:e.placeholder.css("top"),left:e.placeholder.css("left")},e._mouseStop(t),e.options.helper=e.options._helper):(e.cancelHelperRemoval=!0,e._trigger("deactivate",t,n))})},drag:function(t,i,s){e.each(s.sortables,function(){var n=!1,a=this;a.positionAbs=s.positionAbs,a.helperProportions=s.helperProportions,a.offset.click=s.offset.click,a._intersectsWith(a.containerCache)&&(n=!0,e.each(s.sortables,function(){return this.positionAbs=s.positionAbs,this.helperProportions=s.helperProportions,this.offset.click=s.offset.click,this!==a&&this._intersectsWith(this.containerCache)&&e.contains(a.element[0],this.element[0])&&(n=!1),n})),n?(a.isOver||(a.isOver=1,s._parent=i.helper.parent(),a.currentItem=i.helper.appendTo(a.element).data("ui-sortable-item",!0),a.options._helper=a.options.helper,a.options.helper=function(){return i.helper[0]},t.target=a.currentItem[0],a._mouseCapture(t,!0),a._mouseStart(t,!0,!0),a.offset.click.top=s.offset.click.top,a.offset.click.left=s.offset.click.left,a.offset.parent.left-=s.offset.parent.left-a.offset.parent.left,a.offset.parent.top-=s.offset.parent.top-a.offset.parent.top,s._trigger("toSortable",t),s.dropped=a.element,e.each(s.sortables,function(){this.refreshPositions()}),s.currentItem=s.element,a.fromOutside=s),a.currentItem&&(a._mouseDrag(t),i.position=a.position)):a.isOver&&(a.isOver=0,a.cancelHelperRemoval=!0,a.options._revert=a.options.revert,a.options.revert=!1,a._trigger("out",t,a._uiHash(a)),a._mouseStop(t,!0),a.options.revert=a.options._revert,a.options.helper=a.options._helper,a.placeholder&&a.placeholder.remove(),i.helper.appendTo(s._parent),s._refreshOffsets(t),i.position=s._generatePosition(t,!0),s._trigger("fromSortable",t),s.dropped=!1,e.each(s.sortables,function(){this.refreshPositions()}))})}}),e.ui.plugin.add("draggable","cursor",{start:function(t,i,s){var n=e("body"),a=s.options;n.css("cursor")&&(a._cursor=n.css("cursor")),n.css("cursor",a.cursor)},stop:function(t,i,s){var n=s.options;n._cursor&&e("body").css("cursor",n._cursor)}}),e.ui.plugin.add("draggable","opacity",{start:function(t,i,s){var n=e(i.helper),a=s.options;n.css("opacity")&&(a._opacity=n.css("opacity")),n.css("opacity",a.opacity)},stop:function(t,i,s){var n=s.options;n._opacity&&e(i.helper).css("opacity",n._opacity)}}),e.ui.plugin.add("draggable","scroll",{start:function(e,t,i){i.scrollParentNotHidden||(i.scrollParentNotHidden=i.helper.scrollParent(!1)),i.scrollParentNotHidden[0]!==i.document[0]&&"HTML"!==i.scrollParentNotHidden[0].tagName&&(i.overflowOffset=i.scrollParentNotHidden.offset())},drag:function(t,i,s){var n=s.options,a=!1,o=s.scrollParentNotHidden[0],r=s.document[0];o!==r&&"HTML"!==o.tagName?(n.axis&&"x"===n.axis||(s.overflowOffset.top+o.offsetHeight-t.pageY<n.scrollSensitivity?o.scrollTop=a=o.scrollTop+n.scrollSpeed:t.pageY-s.overflowOffset.top<n.scrollSensitivity&&(o.scrollTop=a=o.scrollTop-n.scrollSpeed)),n.axis&&"y"===n.axis||(s.overflowOffset.left+o.offsetWidth-t.pageX<n.scrollSensitivity?o.scrollLeft=a=o.scrollLeft+n.scrollSpeed:t.pageX-s.overflowOffset.left<n.scrollSensitivity&&(o.scrollLeft=a=o.scrollLeft-n.scrollSpeed))):(n.axis&&"x"===n.axis||(t.pageY-e(r).scrollTop()<n.scrollSensitivity?a=e(r).scrollTop(e(r).scrollTop()-n.scrollSpeed):e(window).height()-(t.pageY-e(r).scrollTop())<n.scrollSensitivity&&(a=e(r).scrollTop(e(r).scrollTop()+n.scrollSpeed))),n.axis&&"y"===n.axis||(t.pageX-e(r).scrollLeft()<n.scrollSensitivity?a=e(r).scrollLeft(e(r).scrollLeft()-n.scrollSpeed):e(window).width()-(t.pageX-e(r).scrollLeft())<n.scrollSensitivity&&(a=e(r).scrollLeft(e(r).scrollLeft()+n.scrollSpeed)))),a!==!1&&e.ui.ddmanager&&!n.dropBehaviour&&e.ui.ddmanager.prepareOffsets(s,t)}}),e.ui.plugin.add("draggable","snap",{start:function(t,i,s){var n=s.options;s.snapElements=[],e(n.snap.constructor!==String?n.snap.items||":data(ui-draggable)":n.snap).each(function(){var t=e(this),i=t.offset();this!==s.element[0]&&s.snapElements.push({item:this,width:t.outerWidth(),height:t.outerHeight(),top:i.top,left:i.left})})},drag:function(t,i,s){var n,a,o,r,h,l,u,d,c,p,f=s.options,m=f.snapTolerance,g=i.offset.left,v=g+s.helperProportions.width,y=i.offset.top,b=y+s.helperProportions.height;for(c=s.snapElements.length-1;c>=0;c--)h=s.snapElements[c].left-s.margins.left,l=h+s.snapElements[c].width,u=s.snapElements[c].top-s.margins.top,d=u+s.snapElements[c].height,h-m>v||g>l+m||u-m>b||y>d+m||!e.contains(s.snapElements[c].item.ownerDocument,s.snapElements[c].item)?(s.snapElements[c].snapping&&s.options.snap.release&&s.options.snap.release.call(s.element,t,e.extend(s._uiHash(),{snapItem:s.snapElements[c].item})),s.snapElements[c].snapping=!1):("inner"!==f.snapMode&&(n=m>=Math.abs(u-b),a=m>=Math.abs(d-y),o=m>=Math.abs(h-v),r=m>=Math.abs(l-g),n&&(i.position.top=s._convertPositionTo("relative",{top:u-s.helperProportions.height,left:0}).top),a&&(i.position.top=s._convertPositionTo("relative",{top:d,left:0}).top),o&&(i.position.left=s._convertPositionTo("relative",{top:0,left:h-s.helperProportions.width}).left),r&&(i.position.left=s._convertPositionTo("relative",{top:0,left:l}).left)),p=n||a||o||r,"outer"!==f.snapMode&&(n=m>=Math.abs(u-y),a=m>=Math.abs(d-b),o=m>=Math.abs(h-g),r=m>=Math.abs(l-v),n&&(i.position.top=s._convertPositionTo("relative",{top:u,left:0}).top),a&&(i.position.top=s._convertPositionTo("relative",{top:d-s.helperProportions.height,left:0}).top),o&&(i.position.left=s._convertPositionTo("relative",{top:0,left:h}).left),r&&(i.position.left=s._convertPositionTo("relative",{top:0,left:l-s.helperProportions.width}).left)),!s.snapElements[c].snapping&&(n||a||o||r||p)&&s.options.snap.snap&&s.options.snap.snap.call(s.element,t,e.extend(s._uiHash(),{snapItem:s.snapElements[c].item})),s.snapElements[c].snapping=n||a||o||r||p)}}),e.ui.plugin.add("draggable","stack",{start:function(t,i,s){var n,a=s.options,o=e.makeArray(e(a.stack)).sort(function(t,i){return(parseInt(e(t).css("zIndex"),10)||0)-(parseInt(e(i).css("zIndex"),10)||0)});o.length&&(n=parseInt(e(o[0]).css("zIndex"),10)||0,e(o).each(function(t){e(this).css("zIndex",n+t)}),this.css("zIndex",n+o.length))}}),e.ui.plugin.add("draggable","zIndex",{start:function(t,i,s){var n=e(i.helper),a=s.options;n.css("zIndex")&&(a._zIndex=n.css("zIndex")),n.css("zIndex",a.zIndex)},stop:function(t,i,s){var n=s.options;n._zIndex&&e(i.helper).css("zIndex",n._zIndex)}}),e.ui.draggable,e.widget("ui.resizable",e.ui.mouse,{version:"1.11.4",widgetEventPrefix:"resize",options:{alsoResize:!1,animate:!1,animateDuration:"slow",animateEasing:"swing",aspectRatio:!1,autoHide:!1,containment:!1,ghost:!1,grid:!1,handles:"e,s,se",helper:!1,maxHeight:null,maxWidth:null,minHeight:10,minWidth:10,zIndex:90,resize:null,start:null,stop:null},_num:function(e){return parseInt(e,10)||0},_isNumber:function(e){return!isNaN(parseInt(e,10))},_hasScroll:function(t,i){if("hidden"===e(t).css("overflow"))return!1;var s=i&&"left"===i?"scrollLeft":"scrollTop",n=!1;return t[s]>0?!0:(t[s]=1,n=t[s]>0,t[s]=0,n)},_create:function(){var t,i,s,n,a,o=this,r=this.options;if(this.element.addClass("ui-resizable"),e.extend(this,{_aspectRatio:!!r.aspectRatio,aspectRatio:r.aspectRatio,originalElement:this.element,_proportionallyResizeElements:[],_helper:r.helper||r.ghost||r.animate?r.helper||"ui-resizable-helper":null}),this.element[0].nodeName.match(/^(canvas|textarea|input|select|button|img)$/i)&&(this.element.wrap(e("<div class='ui-wrapper' style='overflow: hidden;'></div>").css({position:this.element.css("position"),width:this.element.outerWidth(),height:this.element.outerHeight(),top:this.element.css("top"),left:this.element.css("left")})),this.element=this.element.parent().data("ui-resizable",this.element.resizable("instance")),this.elementIsWrapper=!0,this.element.css({marginLeft:this.originalElement.css("marginLeft"),marginTop:this.originalElement.css("marginTop"),marginRight:this.originalElement.css("marginRight"),marginBottom:this.originalElement.css("marginBottom")}),this.originalElement.css({marginLeft:0,marginTop:0,marginRight:0,marginBottom:0}),this.originalResizeStyle=this.originalElement.css("resize"),this.originalElement.css("resize","none"),this._proportionallyResizeElements.push(this.originalElement.css({position:"static",zoom:1,display:"block"})),this.originalElement.css({margin:this.originalElement.css("margin")}),this._proportionallyResize()),this.handles=r.handles||(e(".ui-resizable-handle",this.element).length?{n:".ui-resizable-n",e:".ui-resizable-e",s:".ui-resizable-s",w:".ui-resizable-w",se:".ui-resizable-se",sw:".ui-resizable-sw",ne:".ui-resizable-ne",nw:".ui-resizable-nw"}:"e,s,se"),this._handles=e(),this.handles.constructor===String)for("all"===this.handles&&(this.handles="n,e,s,w,se,sw,ne,nw"),t=this.handles.split(","),this.handles={},i=0;t.length>i;i++)s=e.trim(t[i]),a="ui-resizable-"+s,n=e("<div class='ui-resizable-handle "+a+"'></div>"),n.css({zIndex:r.zIndex}),"se"===s&&n.addClass("ui-icon ui-icon-gripsmall-diagonal-se"),this.handles[s]=".ui-resizable-"+s,this.element.append(n);this._renderAxis=function(t){var i,s,n,a;t=t||this.element;for(i in this.handles)this.handles[i].constructor===String?this.handles[i]=this.element.children(this.handles[i]).first().show():(this.handles[i].jquery||this.handles[i].nodeType)&&(this.handles[i]=e(this.handles[i]),this._on(this.handles[i],{mousedown:o._mouseDown})),this.elementIsWrapper&&this.originalElement[0].nodeName.match(/^(textarea|input|select|button)$/i)&&(s=e(this.handles[i],this.element),a=/sw|ne|nw|se|n|s/.test(i)?s.outerHeight():s.outerWidth(),n=["padding",/ne|nw|n/.test(i)?"Top":/se|sw|s/.test(i)?"Bottom":/^e$/.test(i)?"Right":"Left"].join(""),t.css(n,a),this._proportionallyResize()),this._handles=this._handles.add(this.handles[i])},this._renderAxis(this.element),this._handles=this._handles.add(this.element.find(".ui-resizable-handle")),this._handles.disableSelection(),this._handles.mouseover(function(){o.resizing||(this.className&&(n=this.className.match(/ui-resizable-(se|sw|ne|nw|n|e|s|w)/i)),o.axis=n&&n[1]?n[1]:"se")}),r.autoHide&&(this._handles.hide(),e(this.element).addClass("ui-resizable-autohide").mouseenter(function(){r.disabled||(e(this).removeClass("ui-resizable-autohide"),o._handles.show())}).mouseleave(function(){r.disabled||o.resizing||(e(this).addClass("ui-resizable-autohide"),o._handles.hide())})),this._mouseInit()},_destroy:function(){this._mouseDestroy();var t,i=function(t){e(t).removeClass("ui-resizable ui-resizable-disabled ui-resizable-resizing").removeData("resizable").removeData("ui-resizable").unbind(".resizable").find(".ui-resizable-handle").remove()};return this.elementIsWrapper&&(i(this.element),t=this.element,this.originalElement.css({position:t.css("position"),width:t.outerWidth(),height:t.outerHeight(),top:t.css("top"),left:t.css("left")}).insertAfter(t),t.remove()),this.originalElement.css("resize",this.originalResizeStyle),i(this.originalElement),this},_mouseCapture:function(t){var i,s,n=!1;for(i in this.handles)s=e(this.handles[i])[0],(s===t.target||e.contains(s,t.target))&&(n=!0);return!this.options.disabled&&n},_mouseStart:function(t){var i,s,n,a=this.options,o=this.element;return this.resizing=!0,this._renderProxy(),i=this._num(this.helper.css("left")),s=this._num(this.helper.css("top")),a.containment&&(i+=e(a.containment).scrollLeft()||0,s+=e(a.containment).scrollTop()||0),this.offset=this.helper.offset(),this.position={left:i,top:s},this.size=this._helper?{width:this.helper.width(),height:this.helper.height()}:{width:o.width(),height:o.height()},this.originalSize=this._helper?{width:o.outerWidth(),height:o.outerHeight()}:{width:o.width(),height:o.height()},this.sizeDiff={width:o.outerWidth()-o.width(),height:o.outerHeight()-o.height()},this.originalPosition={left:i,top:s},this.originalMousePosition={left:t.pageX,top:t.pageY},this.aspectRatio="number"==typeof a.aspectRatio?a.aspectRatio:this.originalSize.width/this.originalSize.height||1,n=e(".ui-resizable-"+this.axis).css("cursor"),e("body").css("cursor","auto"===n?this.axis+"-resize":n),o.addClass("ui-resizable-resizing"),this._propagate("start",t),!0},_mouseDrag:function(t){var i,s,n=this.originalMousePosition,a=this.axis,o=t.pageX-n.left||0,r=t.pageY-n.top||0,h=this._change[a];return this._updatePrevProperties(),h?(i=h.apply(this,[t,o,r]),this._updateVirtualBoundaries(t.shiftKey),(this._aspectRatio||t.shiftKey)&&(i=this._updateRatio(i,t)),i=this._respectSize(i,t),this._updateCache(i),this._propagate("resize",t),s=this._applyChanges(),!this._helper&&this._proportionallyResizeElements.length&&this._proportionallyResize(),e.isEmptyObject(s)||(this._updatePrevProperties(),this._trigger("resize",t,this.ui()),this._applyChanges()),!1):!1},_mouseStop:function(t){this.resizing=!1;var i,s,n,a,o,r,h,l=this.options,u=this;return this._helper&&(i=this._proportionallyResizeElements,s=i.length&&/textarea/i.test(i[0].nodeName),n=s&&this._hasScroll(i[0],"left")?0:u.sizeDiff.height,a=s?0:u.sizeDiff.width,o={width:u.helper.width()-a,height:u.helper.height()-n},r=parseInt(u.element.css("left"),10)+(u.position.left-u.originalPosition.left)||null,h=parseInt(u.element.css("top"),10)+(u.position.top-u.originalPosition.top)||null,l.animate||this.element.css(e.extend(o,{top:h,left:r})),u.helper.height(u.size.height),u.helper.width(u.size.width),this._helper&&!l.animate&&this._proportionallyResize()),e("body").css("cursor","auto"),this.element.removeClass("ui-resizable-resizing"),this._propagate("stop",t),this._helper&&this.helper.remove(),!1},_updatePrevProperties:function(){this.prevPosition={top:this.position.top,left:this.position.left},this.prevSize={width:this.size.width,height:this.size.height}},_applyChanges:function(){var e={};return this.position.top!==this.prevPosition.top&&(e.top=this.position.top+"px"),this.position.left!==this.prevPosition.left&&(e.left=this.position.left+"px"),this.size.width!==this.prevSize.width&&(e.width=this.size.width+"px"),this.size.height!==this.prevSize.height&&(e.height=this.size.height+"px"),this.helper.css(e),e},_updateVirtualBoundaries:function(e){var t,i,s,n,a,o=this.options;a={minWidth:this._isNumber(o.minWidth)?o.minWidth:0,maxWidth:this._isNumber(o.maxWidth)?o.maxWidth:1/0,minHeight:this._isNumber(o.minHeight)?o.minHeight:0,maxHeight:this._isNumber(o.maxHeight)?o.maxHeight:1/0},(this._aspectRatio||e)&&(t=a.minHeight*this.aspectRatio,s=a.minWidth/this.aspectRatio,i=a.maxHeight*this.aspectRatio,n=a.maxWidth/this.aspectRatio,t>a.minWidth&&(a.minWidth=t),s>a.minHeight&&(a.minHeight=s),a.maxWidth>i&&(a.maxWidth=i),a.maxHeight>n&&(a.maxHeight=n)),this._vBoundaries=a},_updateCache:function(e){this.offset=this.helper.offset(),this._isNumber(e.left)&&(this.position.left=e.left),this._isNumber(e.top)&&(this.position.top=e.top),this._isNumber(e.height)&&(this.size.height=e.height),this._isNumber(e.width)&&(this.size.width=e.width)},_updateRatio:function(e){var t=this.position,i=this.size,s=this.axis;return this._isNumber(e.height)?e.width=e.height*this.aspectRatio:this._isNumber(e.width)&&(e.height=e.width/this.aspectRatio),"sw"===s&&(e.left=t.left+(i.width-e.width),e.top=null),"nw"===s&&(e.top=t.top+(i.height-e.height),e.left=t.left+(i.width-e.width)),e},_respectSize:function(e){var t=this._vBoundaries,i=this.axis,s=this._isNumber(e.width)&&t.maxWidth&&t.maxWidth<e.width,n=this._isNumber(e.height)&&t.maxHeight&&t.maxHeight<e.height,a=this._isNumber(e.width)&&t.minWidth&&t.minWidth>e.width,o=this._isNumber(e.height)&&t.minHeight&&t.minHeight>e.height,r=this.originalPosition.left+this.originalSize.width,h=this.position.top+this.size.height,l=/sw|nw|w/.test(i),u=/nw|ne|n/.test(i);return a&&(e.width=t.minWidth),o&&(e.height=t.minHeight),s&&(e.width=t.maxWidth),n&&(e.height=t.maxHeight),a&&l&&(e.left=r-t.minWidth),s&&l&&(e.left=r-t.maxWidth),o&&u&&(e.top=h-t.minHeight),n&&u&&(e.top=h-t.maxHeight),e.width||e.height||e.left||!e.top?e.width||e.height||e.top||!e.left||(e.left=null):e.top=null,e},_getPaddingPlusBorderDimensions:function(e){for(var t=0,i=[],s=[e.css("borderTopWidth"),e.css("borderRightWidth"),e.css("borderBottomWidth"),e.css("borderLeftWidth")],n=[e.css("paddingTop"),e.css("paddingRight"),e.css("paddingBottom"),e.css("paddingLeft")];4>t;t++)i[t]=parseInt(s[t],10)||0,i[t]+=parseInt(n[t],10)||0;return{height:i[0]+i[2],width:i[1]+i[3]}},_proportionallyResize:function(){if(this._proportionallyResizeElements.length)for(var e,t=0,i=this.helper||this.element;this._proportionallyResizeElements.length>t;t++)e=this._proportionallyResizeElements[t],this.outerDimensions||(this.outerDimensions=this._getPaddingPlusBorderDimensions(e)),e.css({height:i.height()-this.outerDimensions.height||0,width:i.width()-this.outerDimensions.width||0})},_renderProxy:function(){var t=this.element,i=this.options;this.elementOffset=t.offset(),this._helper?(this.helper=this.helper||e("<div style='overflow:hidden;'></div>"),this.helper.addClass(this._helper).css({width:this.element.outerWidth()-1,height:this.element.outerHeight()-1,position:"absolute",left:this.elementOffset.left+"px",top:this.elementOffset.top+"px",zIndex:++i.zIndex}),this.helper.appendTo("body").disableSelection()):this.helper=this.element},_change:{e:function(e,t){return{width:this.originalSize.width+t}},w:function(e,t){var i=this.originalSize,s=this.originalPosition;return{left:s.left+t,width:i.width-t}},n:function(e,t,i){var s=this.originalSize,n=this.originalPosition;return{top:n.top+i,height:s.height-i}},s:function(e,t,i){return{height:this.originalSize.height+i}},se:function(t,i,s){return e.extend(this._change.s.apply(this,arguments),this._change.e.apply(this,[t,i,s]))},sw:function(t,i,s){return e.extend(this._change.s.apply(this,arguments),this._change.w.apply(this,[t,i,s]))},ne:function(t,i,s){return e.extend(this._change.n.apply(this,arguments),this._change.e.apply(this,[t,i,s]))},nw:function(t,i,s){return e.extend(this._change.n.apply(this,arguments),this._change.w.apply(this,[t,i,s]))}},_propagate:function(t,i){e.ui.plugin.call(this,t,[i,this.ui()]),"resize"!==t&&this._trigger(t,i,this.ui())},plugins:{},ui:function(){return{originalElement:this.originalElement,element:this.element,helper:this.helper,position:this.position,size:this.size,originalSize:this.originalSize,originalPosition:this.originalPosition}}}),e.ui.plugin.add("resizable","animate",{stop:function(t){var i=e(this).resizable("instance"),s=i.options,n=i._proportionallyResizeElements,a=n.length&&/textarea/i.test(n[0].nodeName),o=a&&i._hasScroll(n[0],"left")?0:i.sizeDiff.height,r=a?0:i.sizeDiff.width,h={width:i.size.width-r,height:i.size.height-o},l=parseInt(i.element.css("left"),10)+(i.position.left-i.originalPosition.left)||null,u=parseInt(i.element.css("top"),10)+(i.position.top-i.originalPosition.top)||null;i.element.animate(e.extend(h,u&&l?{top:u,left:l}:{}),{duration:s.animateDuration,easing:s.animateEasing,step:function(){var s={width:parseInt(i.element.css("width"),10),height:parseInt(i.element.css("height"),10),top:parseInt(i.element.css("top"),10),left:parseInt(i.element.css("left"),10)};n&&n.length&&e(n[0]).css({width:s.width,height:s.height}),i._updateCache(s),i._propagate("resize",t)}})}}),e.ui.plugin.add("resizable","containment",{start:function(){var t,i,s,n,a,o,r,h=e(this).resizable("instance"),l=h.options,u=h.element,d=l.containment,c=d instanceof e?d.get(0):/parent/.test(d)?u.parent().get(0):d;c&&(h.containerElement=e(c),/document/.test(d)||d===document?(h.containerOffset={left:0,top:0},h.containerPosition={left:0,top:0},h.parentData={element:e(document),left:0,top:0,width:e(document).width(),height:e(document).height()||document.body.parentNode.scrollHeight}):(t=e(c),i=[],e(["Top","Right","Left","Bottom"]).each(function(e,s){i[e]=h._num(t.css("padding"+s))}),h.containerOffset=t.offset(),h.containerPosition=t.position(),h.containerSize={height:t.innerHeight()-i[3],width:t.innerWidth()-i[1]},s=h.containerOffset,n=h.containerSize.height,a=h.containerSize.width,o=h._hasScroll(c,"left")?c.scrollWidth:a,r=h._hasScroll(c)?c.scrollHeight:n,h.parentData={element:c,left:s.left,top:s.top,width:o,height:r}))},resize:function(t){var i,s,n,a,o=e(this).resizable("instance"),r=o.options,h=o.containerOffset,l=o.position,u=o._aspectRatio||t.shiftKey,d={top:0,left:0},c=o.containerElement,p=!0;c[0]!==document&&/static/.test(c.css("position"))&&(d=h),l.left<(o._helper?h.left:0)&&(o.size.width=o.size.width+(o._helper?o.position.left-h.left:o.position.left-d.left),u&&(o.size.height=o.size.width/o.aspectRatio,p=!1),o.position.left=r.helper?h.left:0),l.top<(o._helper?h.top:0)&&(o.size.height=o.size.height+(o._helper?o.position.top-h.top:o.position.top),u&&(o.size.width=o.size.height*o.aspectRatio,p=!1),o.position.top=o._helper?h.top:0),n=o.containerElement.get(0)===o.element.parent().get(0),a=/relative|absolute/.test(o.containerElement.css("position")),n&&a?(o.offset.left=o.parentData.left+o.position.left,o.offset.top=o.parentData.top+o.position.top):(o.offset.left=o.element.offset().left,o.offset.top=o.element.offset().top),i=Math.abs(o.sizeDiff.width+(o._helper?o.offset.left-d.left:o.offset.left-h.left)),s=Math.abs(o.sizeDiff.height+(o._helper?o.offset.top-d.top:o.offset.top-h.top)),i+o.size.width>=o.parentData.width&&(o.size.width=o.parentData.width-i,u&&(o.size.height=o.size.width/o.aspectRatio,p=!1)),s+o.size.height>=o.parentData.height&&(o.size.height=o.parentData.height-s,u&&(o.size.width=o.size.height*o.aspectRatio,p=!1)),p||(o.position.left=o.prevPosition.left,o.position.top=o.prevPosition.top,o.size.width=o.prevSize.width,o.size.height=o.prevSize.height)},stop:function(){var t=e(this).resizable("instance"),i=t.options,s=t.containerOffset,n=t.containerPosition,a=t.containerElement,o=e(t.helper),r=o.offset(),h=o.outerWidth()-t.sizeDiff.width,l=o.outerHeight()-t.sizeDiff.height;t._helper&&!i.animate&&/relative/.test(a.css("position"))&&e(this).css({left:r.left-n.left-s.left,width:h,height:l}),t._helper&&!i.animate&&/static/.test(a.css("position"))&&e(this).css({left:r.left-n.left-s.left,width:h,height:l})}}),e.ui.plugin.add("resizable","alsoResize",{start:function(){var t=e(this).resizable("instance"),i=t.options;e(i.alsoResize).each(function(){var t=e(this);t.data("ui-resizable-alsoresize",{width:parseInt(t.width(),10),height:parseInt(t.height(),10),left:parseInt(t.css("left"),10),top:parseInt(t.css("top"),10)})})},resize:function(t,i){var s=e(this).resizable("instance"),n=s.options,a=s.originalSize,o=s.originalPosition,r={height:s.size.height-a.height||0,width:s.size.width-a.width||0,top:s.position.top-o.top||0,left:s.position.left-o.left||0};e(n.alsoResize).each(function(){var t=e(this),s=e(this).data("ui-resizable-alsoresize"),n={},a=t.parents(i.originalElement[0]).length?["width","height"]:["width","height","top","left"];e.each(a,function(e,t){var i=(s[t]||0)+(r[t]||0);i&&i>=0&&(n[t]=i||null)}),t.css(n)})},stop:function(){e(this).removeData("resizable-alsoresize")}}),e.ui.plugin.add("resizable","ghost",{start:function(){var t=e(this).resizable("instance"),i=t.options,s=t.size;t.ghost=t.originalElement.clone(),t.ghost.css({opacity:.25,display:"block",position:"relative",height:s.height,width:s.width,margin:0,left:0,top:0}).addClass("ui-resizable-ghost").addClass("string"==typeof i.ghost?i.ghost:""),t.ghost.appendTo(t.helper)},resize:function(){var t=e(this).resizable("instance");t.ghost&&t.ghost.css({position:"relative",height:t.size.height,width:t.size.width})},stop:function(){var t=e(this).resizable("instance");t.ghost&&t.helper&&t.helper.get(0).removeChild(t.ghost.get(0))}}),e.ui.plugin.add("resizable","grid",{resize:function(){var t,i=e(this).resizable("instance"),s=i.options,n=i.size,a=i.originalSize,o=i.originalPosition,r=i.axis,h="number"==typeof s.grid?[s.grid,s.grid]:s.grid,l=h[0]||1,u=h[1]||1,d=Math.round((n.width-a.width)/l)*l,c=Math.round((n.height-a.height)/u)*u,p=a.width+d,f=a.height+c,m=s.maxWidth&&p>s.maxWidth,g=s.maxHeight&&f>s.maxHeight,v=s.minWidth&&s.minWidth>p,y=s.minHeight&&s.minHeight>f;s.grid=h,v&&(p+=l),y&&(f+=u),m&&(p-=l),g&&(f-=u),/^(se|s|e)$/.test(r)?(i.size.width=p,i.size.height=f):/^(ne)$/.test(r)?(i.size.width=p,i.size.height=f,i.position.top=o.top-c):/^(sw)$/.test(r)?(i.size.width=p,i.size.height=f,i.position.left=o.left-d):((0>=f-u||0>=p-l)&&(t=i._getPaddingPlusBorderDimensions(this)),f-u>0?(i.size.height=f,i.position.top=o.top-c):(f=u-t.height,i.size.height=f,i.position.top=o.top+a.height-f),p-l>0?(i.size.width=p,i.position.left=o.left-d):(p=l-t.width,i.size.width=p,i.position.left=o.left+a.width-p))}}),e.ui.resizable,e.widget("ui.dialog",{version:"1.11.4",options:{appendTo:"body",autoOpen:!0,buttons:[],closeOnEscape:!0,closeText:"Close",dialogClass:"",draggable:!0,hide:null,height:"auto",maxHeight:null,maxWidth:null,minHeight:150,minWidth:150,modal:!1,position:{my:"center",at:"center",of:window,collision:"fit",using:function(t){var i=e(this).css(t).offset().top;0>i&&e(this).css("top",t.top-i)}},resizable:!0,show:null,title:null,width:300,beforeClose:null,close:null,drag:null,dragStart:null,dragStop:null,focus:null,open:null,resize:null,resizeStart:null,resizeStop:null},sizeRelatedOptions:{buttons:!0,height:!0,maxHeight:!0,maxWidth:!0,minHeight:!0,minWidth:!0,width:!0},resizableRelatedOptions:{maxHeight:!0,maxWidth:!0,minHeight:!0,minWidth:!0},_create:function(){this.originalCss={display:this.element[0].style.display,width:this.element[0].style.width,minHeight:this.element[0].style.minHeight,maxHeight:this.element[0].style.maxHeight,height:this.element[0].style.height},this.originalPosition={parent:this.element.parent(),index:this.element.parent().children().index(this.element)},this.originalTitle=this.element.attr("title"),this.options.title=this.options.title||this.originalTitle,this._createWrapper(),this.element.show().removeAttr("title").addClass("ui-dialog-content ui-widget-content").appendTo(this.uiDialog),this._createTitlebar(),this._createButtonPane(),this.options.draggable&&e.fn.draggable&&this._makeDraggable(),this.options.resizable&&e.fn.resizable&&this._makeResizable(),this._isOpen=!1,this._trackFocus()},_init:function(){this.options.autoOpen&&this.open()},_appendTo:function(){var t=this.options.appendTo;return t&&(t.jquery||t.nodeType)?e(t):this.document.find(t||"body").eq(0)},_destroy:function(){var e,t=this.originalPosition;this._untrackInstance(),this._destroyOverlay(),this.element.removeUniqueId().removeClass("ui-dialog-content ui-widget-content").css(this.originalCss).detach(),this.uiDialog.stop(!0,!0).remove(),this.originalTitle&&this.element.attr("title",this.originalTitle),e=t.parent.children().eq(t.index),e.length&&e[0]!==this.element[0]?e.before(this.element):t.parent.append(this.element)},widget:function(){return this.uiDialog},disable:e.noop,enable:e.noop,close:function(t){var i,s=this;if(this._isOpen&&this._trigger("beforeClose",t)!==!1){if(this._isOpen=!1,this._focusedElement=null,this._destroyOverlay(),this._untrackInstance(),!this.opener.filter(":focusable").focus().length)try{i=this.document[0].activeElement,i&&"body"!==i.nodeName.toLowerCase()&&e(i).blur()}catch(n){}this._hide(this.uiDialog,this.options.hide,function(){s._trigger("close",t)})}},isOpen:function(){return this._isOpen},moveToTop:function(){this._moveToTop()},_moveToTop:function(t,i){var s=!1,n=this.uiDialog.siblings(".ui-front:visible").map(function(){return+e(this).css("z-index")}).get(),a=Math.max.apply(null,n);return a>=+this.uiDialog.css("z-index")&&(this.uiDialog.css("z-index",a+1),s=!0),s&&!i&&this._trigger("focus",t),s},open:function(){var t=this;return this._isOpen?(this._moveToTop()&&this._focusTabbable(),void 0):(this._isOpen=!0,this.opener=e(this.document[0].activeElement),this._size(),this._position(),this._createOverlay(),this._moveToTop(null,!0),this.overlay&&this.overlay.css("z-index",this.uiDialog.css("z-index")-1),this._show(this.uiDialog,this.options.show,function(){t._focusTabbable(),t._trigger("focus")}),this._makeFocusTarget(),this._trigger("open"),void 0)},_focusTabbable:function(){var e=this._focusedElement;e||(e=this.element.find("[autofocus]")),e.length||(e=this.element.find(":tabbable")),e.length||(e=this.uiDialogButtonPane.find(":tabbable")),e.length||(e=this.uiDialogTitlebarClose.filter(":tabbable")),e.length||(e=this.uiDialog),e.eq(0).focus()},_keepFocus:function(t){function i(){var t=this.document[0].activeElement,i=this.uiDialog[0]===t||e.contains(this.uiDialog[0],t);i||this._focusTabbable()}t.preventDefault(),i.call(this),this._delay(i)},_createWrapper:function(){this.uiDialog=e("<div>").addClass("ui-dialog ui-widget ui-widget-content ui-corner-all ui-front "+this.options.dialogClass).hide().attr({tabIndex:-1,role:"dialog"}).appendTo(this._appendTo()),this._on(this.uiDialog,{keydown:function(t){if(this.options.closeOnEscape&&!t.isDefaultPrevented()&&t.keyCode&&t.keyCode===e.ui.keyCode.ESCAPE)return t.preventDefault(),this.close(t),void 0; -if(t.keyCode===e.ui.keyCode.TAB&&!t.isDefaultPrevented()){var i=this.uiDialog.find(":tabbable"),s=i.filter(":first"),n=i.filter(":last");t.target!==n[0]&&t.target!==this.uiDialog[0]||t.shiftKey?t.target!==s[0]&&t.target!==this.uiDialog[0]||!t.shiftKey||(this._delay(function(){n.focus()}),t.preventDefault()):(this._delay(function(){s.focus()}),t.preventDefault())}},mousedown:function(e){this._moveToTop(e)&&this._focusTabbable()}}),this.element.find("[aria-describedby]").length||this.uiDialog.attr({"aria-describedby":this.element.uniqueId().attr("id")})},_createTitlebar:function(){var t;this.uiDialogTitlebar=e("<div>").addClass("ui-dialog-titlebar ui-widget-header ui-corner-all ui-helper-clearfix").prependTo(this.uiDialog),this._on(this.uiDialogTitlebar,{mousedown:function(t){e(t.target).closest(".ui-dialog-titlebar-close")||this.uiDialog.focus()}}),this.uiDialogTitlebarClose=e("<button type='button'></button>").button({label:this.options.closeText,icons:{primary:"ui-icon-closethick"},text:!1}).addClass("ui-dialog-titlebar-close").appendTo(this.uiDialogTitlebar),this._on(this.uiDialogTitlebarClose,{click:function(e){e.preventDefault(),this.close(e)}}),t=e("<span>").uniqueId().addClass("ui-dialog-title").prependTo(this.uiDialogTitlebar),this._title(t),this.uiDialog.attr({"aria-labelledby":t.attr("id")})},_title:function(e){this.options.title||e.html("&#160;"),e.text(this.options.title)},_createButtonPane:function(){this.uiDialogButtonPane=e("<div>").addClass("ui-dialog-buttonpane ui-widget-content ui-helper-clearfix"),this.uiButtonSet=e("<div>").addClass("ui-dialog-buttonset").appendTo(this.uiDialogButtonPane),this._createButtons()},_createButtons:function(){var t=this,i=this.options.buttons;return this.uiDialogButtonPane.remove(),this.uiButtonSet.empty(),e.isEmptyObject(i)||e.isArray(i)&&!i.length?(this.uiDialog.removeClass("ui-dialog-buttons"),void 0):(e.each(i,function(i,s){var n,a;s=e.isFunction(s)?{click:s,text:i}:s,s=e.extend({type:"button"},s),n=s.click,s.click=function(){n.apply(t.element[0],arguments)},a={icons:s.icons,text:s.showText},delete s.icons,delete s.showText,e("<button></button>",s).button(a).appendTo(t.uiButtonSet)}),this.uiDialog.addClass("ui-dialog-buttons"),this.uiDialogButtonPane.appendTo(this.uiDialog),void 0)},_makeDraggable:function(){function t(e){return{position:e.position,offset:e.offset}}var i=this,s=this.options;this.uiDialog.draggable({cancel:".ui-dialog-content, .ui-dialog-titlebar-close",handle:".ui-dialog-titlebar",containment:"document",start:function(s,n){e(this).addClass("ui-dialog-dragging"),i._blockFrames(),i._trigger("dragStart",s,t(n))},drag:function(e,s){i._trigger("drag",e,t(s))},stop:function(n,a){var o=a.offset.left-i.document.scrollLeft(),r=a.offset.top-i.document.scrollTop();s.position={my:"left top",at:"left"+(o>=0?"+":"")+o+" "+"top"+(r>=0?"+":"")+r,of:i.window},e(this).removeClass("ui-dialog-dragging"),i._unblockFrames(),i._trigger("dragStop",n,t(a))}})},_makeResizable:function(){function t(e){return{originalPosition:e.originalPosition,originalSize:e.originalSize,position:e.position,size:e.size}}var i=this,s=this.options,n=s.resizable,a=this.uiDialog.css("position"),o="string"==typeof n?n:"n,e,s,w,se,sw,ne,nw";this.uiDialog.resizable({cancel:".ui-dialog-content",containment:"document",alsoResize:this.element,maxWidth:s.maxWidth,maxHeight:s.maxHeight,minWidth:s.minWidth,minHeight:this._minHeight(),handles:o,start:function(s,n){e(this).addClass("ui-dialog-resizing"),i._blockFrames(),i._trigger("resizeStart",s,t(n))},resize:function(e,s){i._trigger("resize",e,t(s))},stop:function(n,a){var o=i.uiDialog.offset(),r=o.left-i.document.scrollLeft(),h=o.top-i.document.scrollTop();s.height=i.uiDialog.height(),s.width=i.uiDialog.width(),s.position={my:"left top",at:"left"+(r>=0?"+":"")+r+" "+"top"+(h>=0?"+":"")+h,of:i.window},e(this).removeClass("ui-dialog-resizing"),i._unblockFrames(),i._trigger("resizeStop",n,t(a))}}).css("position",a)},_trackFocus:function(){this._on(this.widget(),{focusin:function(t){this._makeFocusTarget(),this._focusedElement=e(t.target)}})},_makeFocusTarget:function(){this._untrackInstance(),this._trackingInstances().unshift(this)},_untrackInstance:function(){var t=this._trackingInstances(),i=e.inArray(this,t);-1!==i&&t.splice(i,1)},_trackingInstances:function(){var e=this.document.data("ui-dialog-instances");return e||(e=[],this.document.data("ui-dialog-instances",e)),e},_minHeight:function(){var e=this.options;return"auto"===e.height?e.minHeight:Math.min(e.minHeight,e.height)},_position:function(){var e=this.uiDialog.is(":visible");e||this.uiDialog.show(),this.uiDialog.position(this.options.position),e||this.uiDialog.hide()},_setOptions:function(t){var i=this,s=!1,n={};e.each(t,function(e,t){i._setOption(e,t),e in i.sizeRelatedOptions&&(s=!0),e in i.resizableRelatedOptions&&(n[e]=t)}),s&&(this._size(),this._position()),this.uiDialog.is(":data(ui-resizable)")&&this.uiDialog.resizable("option",n)},_setOption:function(e,t){var i,s,n=this.uiDialog;"dialogClass"===e&&n.removeClass(this.options.dialogClass).addClass(t),"disabled"!==e&&(this._super(e,t),"appendTo"===e&&this.uiDialog.appendTo(this._appendTo()),"buttons"===e&&this._createButtons(),"closeText"===e&&this.uiDialogTitlebarClose.button({label:""+t}),"draggable"===e&&(i=n.is(":data(ui-draggable)"),i&&!t&&n.draggable("destroy"),!i&&t&&this._makeDraggable()),"position"===e&&this._position(),"resizable"===e&&(s=n.is(":data(ui-resizable)"),s&&!t&&n.resizable("destroy"),s&&"string"==typeof t&&n.resizable("option","handles",t),s||t===!1||this._makeResizable()),"title"===e&&this._title(this.uiDialogTitlebar.find(".ui-dialog-title")))},_size:function(){var e,t,i,s=this.options;this.element.show().css({width:"auto",minHeight:0,maxHeight:"none",height:0}),s.minWidth>s.width&&(s.width=s.minWidth),e=this.uiDialog.css({height:"auto",width:s.width}).outerHeight(),t=Math.max(0,s.minHeight-e),i="number"==typeof s.maxHeight?Math.max(0,s.maxHeight-e):"none","auto"===s.height?this.element.css({minHeight:t,maxHeight:i,height:"auto"}):this.element.height(Math.max(0,s.height-e)),this.uiDialog.is(":data(ui-resizable)")&&this.uiDialog.resizable("option","minHeight",this._minHeight())},_blockFrames:function(){this.iframeBlocks=this.document.find("iframe").map(function(){var t=e(this);return e("<div>").css({position:"absolute",width:t.outerWidth(),height:t.outerHeight()}).appendTo(t.parent()).offset(t.offset())[0]})},_unblockFrames:function(){this.iframeBlocks&&(this.iframeBlocks.remove(),delete this.iframeBlocks)},_allowInteraction:function(t){return e(t.target).closest(".ui-dialog").length?!0:!!e(t.target).closest(".ui-datepicker").length},_createOverlay:function(){if(this.options.modal){var t=!0;this._delay(function(){t=!1}),this.document.data("ui-dialog-overlays")||this._on(this.document,{focusin:function(e){t||this._allowInteraction(e)||(e.preventDefault(),this._trackingInstances()[0]._focusTabbable())}}),this.overlay=e("<div>").addClass("ui-widget-overlay ui-front").appendTo(this._appendTo()),this._on(this.overlay,{mousedown:"_keepFocus"}),this.document.data("ui-dialog-overlays",(this.document.data("ui-dialog-overlays")||0)+1)}},_destroyOverlay:function(){if(this.options.modal&&this.overlay){var e=this.document.data("ui-dialog-overlays")-1;e?this.document.data("ui-dialog-overlays",e):this.document.unbind("focusin").removeData("ui-dialog-overlays"),this.overlay.remove(),this.overlay=null}}}),e.widget("ui.droppable",{version:"1.11.4",widgetEventPrefix:"drop",options:{accept:"*",activeClass:!1,addClasses:!0,greedy:!1,hoverClass:!1,scope:"default",tolerance:"intersect",activate:null,deactivate:null,drop:null,out:null,over:null},_create:function(){var t,i=this.options,s=i.accept;this.isover=!1,this.isout=!0,this.accept=e.isFunction(s)?s:function(e){return e.is(s)},this.proportions=function(){return arguments.length?(t=arguments[0],void 0):t?t:t={width:this.element[0].offsetWidth,height:this.element[0].offsetHeight}},this._addToManager(i.scope),i.addClasses&&this.element.addClass("ui-droppable")},_addToManager:function(t){e.ui.ddmanager.droppables[t]=e.ui.ddmanager.droppables[t]||[],e.ui.ddmanager.droppables[t].push(this)},_splice:function(e){for(var t=0;e.length>t;t++)e[t]===this&&e.splice(t,1)},_destroy:function(){var t=e.ui.ddmanager.droppables[this.options.scope];this._splice(t),this.element.removeClass("ui-droppable ui-droppable-disabled")},_setOption:function(t,i){if("accept"===t)this.accept=e.isFunction(i)?i:function(e){return e.is(i)};else if("scope"===t){var s=e.ui.ddmanager.droppables[this.options.scope];this._splice(s),this._addToManager(i)}this._super(t,i)},_activate:function(t){var i=e.ui.ddmanager.current;this.options.activeClass&&this.element.addClass(this.options.activeClass),i&&this._trigger("activate",t,this.ui(i))},_deactivate:function(t){var i=e.ui.ddmanager.current;this.options.activeClass&&this.element.removeClass(this.options.activeClass),i&&this._trigger("deactivate",t,this.ui(i))},_over:function(t){var i=e.ui.ddmanager.current;i&&(i.currentItem||i.element)[0]!==this.element[0]&&this.accept.call(this.element[0],i.currentItem||i.element)&&(this.options.hoverClass&&this.element.addClass(this.options.hoverClass),this._trigger("over",t,this.ui(i)))},_out:function(t){var i=e.ui.ddmanager.current;i&&(i.currentItem||i.element)[0]!==this.element[0]&&this.accept.call(this.element[0],i.currentItem||i.element)&&(this.options.hoverClass&&this.element.removeClass(this.options.hoverClass),this._trigger("out",t,this.ui(i)))},_drop:function(t,i){var s=i||e.ui.ddmanager.current,n=!1;return s&&(s.currentItem||s.element)[0]!==this.element[0]?(this.element.find(":data(ui-droppable)").not(".ui-draggable-dragging").each(function(){var i=e(this).droppable("instance");return i.options.greedy&&!i.options.disabled&&i.options.scope===s.options.scope&&i.accept.call(i.element[0],s.currentItem||s.element)&&e.ui.intersect(s,e.extend(i,{offset:i.element.offset()}),i.options.tolerance,t)?(n=!0,!1):void 0}),n?!1:this.accept.call(this.element[0],s.currentItem||s.element)?(this.options.activeClass&&this.element.removeClass(this.options.activeClass),this.options.hoverClass&&this.element.removeClass(this.options.hoverClass),this._trigger("drop",t,this.ui(s)),this.element):!1):!1},ui:function(e){return{draggable:e.currentItem||e.element,helper:e.helper,position:e.position,offset:e.positionAbs}}}),e.ui.intersect=function(){function e(e,t,i){return e>=t&&t+i>e}return function(t,i,s,n){if(!i.offset)return!1;var a=(t.positionAbs||t.position.absolute).left+t.margins.left,o=(t.positionAbs||t.position.absolute).top+t.margins.top,r=a+t.helperProportions.width,h=o+t.helperProportions.height,l=i.offset.left,u=i.offset.top,d=l+i.proportions().width,c=u+i.proportions().height;switch(s){case"fit":return a>=l&&d>=r&&o>=u&&c>=h;case"intersect":return a+t.helperProportions.width/2>l&&d>r-t.helperProportions.width/2&&o+t.helperProportions.height/2>u&&c>h-t.helperProportions.height/2;case"pointer":return e(n.pageY,u,i.proportions().height)&&e(n.pageX,l,i.proportions().width);case"touch":return(o>=u&&c>=o||h>=u&&c>=h||u>o&&h>c)&&(a>=l&&d>=a||r>=l&&d>=r||l>a&&r>d);default:return!1}}}(),e.ui.ddmanager={current:null,droppables:{"default":[]},prepareOffsets:function(t,i){var s,n,a=e.ui.ddmanager.droppables[t.options.scope]||[],o=i?i.type:null,r=(t.currentItem||t.element).find(":data(ui-droppable)").addBack();e:for(s=0;a.length>s;s++)if(!(a[s].options.disabled||t&&!a[s].accept.call(a[s].element[0],t.currentItem||t.element))){for(n=0;r.length>n;n++)if(r[n]===a[s].element[0]){a[s].proportions().height=0;continue e}a[s].visible="none"!==a[s].element.css("display"),a[s].visible&&("mousedown"===o&&a[s]._activate.call(a[s],i),a[s].offset=a[s].element.offset(),a[s].proportions({width:a[s].element[0].offsetWidth,height:a[s].element[0].offsetHeight}))}},drop:function(t,i){var s=!1;return e.each((e.ui.ddmanager.droppables[t.options.scope]||[]).slice(),function(){this.options&&(!this.options.disabled&&this.visible&&e.ui.intersect(t,this,this.options.tolerance,i)&&(s=this._drop.call(this,i)||s),!this.options.disabled&&this.visible&&this.accept.call(this.element[0],t.currentItem||t.element)&&(this.isout=!0,this.isover=!1,this._deactivate.call(this,i)))}),s},dragStart:function(t,i){t.element.parentsUntil("body").bind("scroll.droppable",function(){t.options.refreshPositions||e.ui.ddmanager.prepareOffsets(t,i)})},drag:function(t,i){t.options.refreshPositions&&e.ui.ddmanager.prepareOffsets(t,i),e.each(e.ui.ddmanager.droppables[t.options.scope]||[],function(){if(!this.options.disabled&&!this.greedyChild&&this.visible){var s,n,a,o=e.ui.intersect(t,this,this.options.tolerance,i),r=!o&&this.isover?"isout":o&&!this.isover?"isover":null;r&&(this.options.greedy&&(n=this.options.scope,a=this.element.parents(":data(ui-droppable)").filter(function(){return e(this).droppable("instance").options.scope===n}),a.length&&(s=e(a[0]).droppable("instance"),s.greedyChild="isover"===r)),s&&"isover"===r&&(s.isover=!1,s.isout=!0,s._out.call(s,i)),this[r]=!0,this["isout"===r?"isover":"isout"]=!1,this["isover"===r?"_over":"_out"].call(this,i),s&&"isout"===r&&(s.isout=!1,s.isover=!0,s._over.call(s,i)))}})},dragStop:function(t,i){t.element.parentsUntil("body").unbind("scroll.droppable"),t.options.refreshPositions||e.ui.ddmanager.prepareOffsets(t,i)}},e.ui.droppable;var y="ui-effects-",b=e;e.effects={effect:{}},function(e,t){function i(e,t,i){var s=d[t.type]||{};return null==e?i||!t.def?null:t.def:(e=s.floor?~~e:parseFloat(e),isNaN(e)?t.def:s.mod?(e+s.mod)%s.mod:0>e?0:e>s.max?s.max:e)}function s(i){var s=l(),n=s._rgba=[];return i=i.toLowerCase(),f(h,function(e,a){var o,r=a.re.exec(i),h=r&&a.parse(r),l=a.space||"rgba";return h?(o=s[l](h),s[u[l].cache]=o[u[l].cache],n=s._rgba=o._rgba,!1):t}),n.length?("0,0,0,0"===n.join()&&e.extend(n,a.transparent),s):a[i]}function n(e,t,i){return i=(i+1)%1,1>6*i?e+6*(t-e)*i:1>2*i?t:2>3*i?e+6*(t-e)*(2/3-i):e}var a,o="backgroundColor borderBottomColor borderLeftColor borderRightColor borderTopColor color columnRuleColor outlineColor textDecorationColor textEmphasisColor",r=/^([\-+])=\s*(\d+\.?\d*)/,h=[{re:/rgba?\(\s*(\d{1,3})\s*,\s*(\d{1,3})\s*,\s*(\d{1,3})\s*(?:,\s*(\d?(?:\.\d+)?)\s*)?\)/,parse:function(e){return[e[1],e[2],e[3],e[4]]}},{re:/rgba?\(\s*(\d+(?:\.\d+)?)\%\s*,\s*(\d+(?:\.\d+)?)\%\s*,\s*(\d+(?:\.\d+)?)\%\s*(?:,\s*(\d?(?:\.\d+)?)\s*)?\)/,parse:function(e){return[2.55*e[1],2.55*e[2],2.55*e[3],e[4]]}},{re:/#([a-f0-9]{2})([a-f0-9]{2})([a-f0-9]{2})/,parse:function(e){return[parseInt(e[1],16),parseInt(e[2],16),parseInt(e[3],16)]}},{re:/#([a-f0-9])([a-f0-9])([a-f0-9])/,parse:function(e){return[parseInt(e[1]+e[1],16),parseInt(e[2]+e[2],16),parseInt(e[3]+e[3],16)]}},{re:/hsla?\(\s*(\d+(?:\.\d+)?)\s*,\s*(\d+(?:\.\d+)?)\%\s*,\s*(\d+(?:\.\d+)?)\%\s*(?:,\s*(\d?(?:\.\d+)?)\s*)?\)/,space:"hsla",parse:function(e){return[e[1],e[2]/100,e[3]/100,e[4]]}}],l=e.Color=function(t,i,s,n){return new e.Color.fn.parse(t,i,s,n)},u={rgba:{props:{red:{idx:0,type:"byte"},green:{idx:1,type:"byte"},blue:{idx:2,type:"byte"}}},hsla:{props:{hue:{idx:0,type:"degrees"},saturation:{idx:1,type:"percent"},lightness:{idx:2,type:"percent"}}}},d={"byte":{floor:!0,max:255},percent:{max:1},degrees:{mod:360,floor:!0}},c=l.support={},p=e("<p>")[0],f=e.each;p.style.cssText="background-color:rgba(1,1,1,.5)",c.rgba=p.style.backgroundColor.indexOf("rgba")>-1,f(u,function(e,t){t.cache="_"+e,t.props.alpha={idx:3,type:"percent",def:1}}),l.fn=e.extend(l.prototype,{parse:function(n,o,r,h){if(n===t)return this._rgba=[null,null,null,null],this;(n.jquery||n.nodeType)&&(n=e(n).css(o),o=t);var d=this,c=e.type(n),p=this._rgba=[];return o!==t&&(n=[n,o,r,h],c="array"),"string"===c?this.parse(s(n)||a._default):"array"===c?(f(u.rgba.props,function(e,t){p[t.idx]=i(n[t.idx],t)}),this):"object"===c?(n instanceof l?f(u,function(e,t){n[t.cache]&&(d[t.cache]=n[t.cache].slice())}):f(u,function(t,s){var a=s.cache;f(s.props,function(e,t){if(!d[a]&&s.to){if("alpha"===e||null==n[e])return;d[a]=s.to(d._rgba)}d[a][t.idx]=i(n[e],t,!0)}),d[a]&&0>e.inArray(null,d[a].slice(0,3))&&(d[a][3]=1,s.from&&(d._rgba=s.from(d[a])))}),this):t},is:function(e){var i=l(e),s=!0,n=this;return f(u,function(e,a){var o,r=i[a.cache];return r&&(o=n[a.cache]||a.to&&a.to(n._rgba)||[],f(a.props,function(e,i){return null!=r[i.idx]?s=r[i.idx]===o[i.idx]:t})),s}),s},_space:function(){var e=[],t=this;return f(u,function(i,s){t[s.cache]&&e.push(i)}),e.pop()},transition:function(e,t){var s=l(e),n=s._space(),a=u[n],o=0===this.alpha()?l("transparent"):this,r=o[a.cache]||a.to(o._rgba),h=r.slice();return s=s[a.cache],f(a.props,function(e,n){var a=n.idx,o=r[a],l=s[a],u=d[n.type]||{};null!==l&&(null===o?h[a]=l:(u.mod&&(l-o>u.mod/2?o+=u.mod:o-l>u.mod/2&&(o-=u.mod)),h[a]=i((l-o)*t+o,n)))}),this[n](h)},blend:function(t){if(1===this._rgba[3])return this;var i=this._rgba.slice(),s=i.pop(),n=l(t)._rgba;return l(e.map(i,function(e,t){return(1-s)*n[t]+s*e}))},toRgbaString:function(){var t="rgba(",i=e.map(this._rgba,function(e,t){return null==e?t>2?1:0:e});return 1===i[3]&&(i.pop(),t="rgb("),t+i.join()+")"},toHslaString:function(){var t="hsla(",i=e.map(this.hsla(),function(e,t){return null==e&&(e=t>2?1:0),t&&3>t&&(e=Math.round(100*e)+"%"),e});return 1===i[3]&&(i.pop(),t="hsl("),t+i.join()+")"},toHexString:function(t){var i=this._rgba.slice(),s=i.pop();return t&&i.push(~~(255*s)),"#"+e.map(i,function(e){return e=(e||0).toString(16),1===e.length?"0"+e:e}).join("")},toString:function(){return 0===this._rgba[3]?"transparent":this.toRgbaString()}}),l.fn.parse.prototype=l.fn,u.hsla.to=function(e){if(null==e[0]||null==e[1]||null==e[2])return[null,null,null,e[3]];var t,i,s=e[0]/255,n=e[1]/255,a=e[2]/255,o=e[3],r=Math.max(s,n,a),h=Math.min(s,n,a),l=r-h,u=r+h,d=.5*u;return t=h===r?0:s===r?60*(n-a)/l+360:n===r?60*(a-s)/l+120:60*(s-n)/l+240,i=0===l?0:.5>=d?l/u:l/(2-u),[Math.round(t)%360,i,d,null==o?1:o]},u.hsla.from=function(e){if(null==e[0]||null==e[1]||null==e[2])return[null,null,null,e[3]];var t=e[0]/360,i=e[1],s=e[2],a=e[3],o=.5>=s?s*(1+i):s+i-s*i,r=2*s-o;return[Math.round(255*n(r,o,t+1/3)),Math.round(255*n(r,o,t)),Math.round(255*n(r,o,t-1/3)),a]},f(u,function(s,n){var a=n.props,o=n.cache,h=n.to,u=n.from;l.fn[s]=function(s){if(h&&!this[o]&&(this[o]=h(this._rgba)),s===t)return this[o].slice();var n,r=e.type(s),d="array"===r||"object"===r?s:arguments,c=this[o].slice();return f(a,function(e,t){var s=d["object"===r?e:t.idx];null==s&&(s=c[t.idx]),c[t.idx]=i(s,t)}),u?(n=l(u(c)),n[o]=c,n):l(c)},f(a,function(t,i){l.fn[t]||(l.fn[t]=function(n){var a,o=e.type(n),h="alpha"===t?this._hsla?"hsla":"rgba":s,l=this[h](),u=l[i.idx];return"undefined"===o?u:("function"===o&&(n=n.call(this,u),o=e.type(n)),null==n&&i.empty?this:("string"===o&&(a=r.exec(n),a&&(n=u+parseFloat(a[2])*("+"===a[1]?1:-1))),l[i.idx]=n,this[h](l)))})})}),l.hook=function(t){var i=t.split(" ");f(i,function(t,i){e.cssHooks[i]={set:function(t,n){var a,o,r="";if("transparent"!==n&&("string"!==e.type(n)||(a=s(n)))){if(n=l(a||n),!c.rgba&&1!==n._rgba[3]){for(o="backgroundColor"===i?t.parentNode:t;(""===r||"transparent"===r)&&o&&o.style;)try{r=e.css(o,"backgroundColor"),o=o.parentNode}catch(h){}n=n.blend(r&&"transparent"!==r?r:"_default")}n=n.toRgbaString()}try{t.style[i]=n}catch(h){}}},e.fx.step[i]=function(t){t.colorInit||(t.start=l(t.elem,i),t.end=l(t.end),t.colorInit=!0),e.cssHooks[i].set(t.elem,t.start.transition(t.end,t.pos))}})},l.hook(o),e.cssHooks.borderColor={expand:function(e){var t={};return f(["Top","Right","Bottom","Left"],function(i,s){t["border"+s+"Color"]=e}),t}},a=e.Color.names={aqua:"#00ffff",black:"#000000",blue:"#0000ff",fuchsia:"#ff00ff",gray:"#808080",green:"#008000",lime:"#00ff00",maroon:"#800000",navy:"#000080",olive:"#808000",purple:"#800080",red:"#ff0000",silver:"#c0c0c0",teal:"#008080",white:"#ffffff",yellow:"#ffff00",transparent:[null,null,null,0],_default:"#ffffff"}}(b),function(){function t(t){var i,s,n=t.ownerDocument.defaultView?t.ownerDocument.defaultView.getComputedStyle(t,null):t.currentStyle,a={};if(n&&n.length&&n[0]&&n[n[0]])for(s=n.length;s--;)i=n[s],"string"==typeof n[i]&&(a[e.camelCase(i)]=n[i]);else for(i in n)"string"==typeof n[i]&&(a[i]=n[i]);return a}function i(t,i){var s,a,o={};for(s in i)a=i[s],t[s]!==a&&(n[s]||(e.fx.step[s]||!isNaN(parseFloat(a)))&&(o[s]=a));return o}var s=["add","remove","toggle"],n={border:1,borderBottom:1,borderColor:1,borderLeft:1,borderRight:1,borderTop:1,borderWidth:1,margin:1,padding:1};e.each(["borderLeftStyle","borderRightStyle","borderBottomStyle","borderTopStyle"],function(t,i){e.fx.step[i]=function(e){("none"!==e.end&&!e.setAttr||1===e.pos&&!e.setAttr)&&(b.style(e.elem,i,e.end),e.setAttr=!0)}}),e.fn.addBack||(e.fn.addBack=function(e){return this.add(null==e?this.prevObject:this.prevObject.filter(e))}),e.effects.animateClass=function(n,a,o,r){var h=e.speed(a,o,r);return this.queue(function(){var a,o=e(this),r=o.attr("class")||"",l=h.children?o.find("*").addBack():o;l=l.map(function(){var i=e(this);return{el:i,start:t(this)}}),a=function(){e.each(s,function(e,t){n[t]&&o[t+"Class"](n[t])})},a(),l=l.map(function(){return this.end=t(this.el[0]),this.diff=i(this.start,this.end),this}),o.attr("class",r),l=l.map(function(){var t=this,i=e.Deferred(),s=e.extend({},h,{queue:!1,complete:function(){i.resolve(t)}});return this.el.animate(this.diff,s),i.promise()}),e.when.apply(e,l.get()).done(function(){a(),e.each(arguments,function(){var t=this.el;e.each(this.diff,function(e){t.css(e,"")})}),h.complete.call(o[0])})})},e.fn.extend({addClass:function(t){return function(i,s,n,a){return s?e.effects.animateClass.call(this,{add:i},s,n,a):t.apply(this,arguments)}}(e.fn.addClass),removeClass:function(t){return function(i,s,n,a){return arguments.length>1?e.effects.animateClass.call(this,{remove:i},s,n,a):t.apply(this,arguments)}}(e.fn.removeClass),toggleClass:function(t){return function(i,s,n,a,o){return"boolean"==typeof s||void 0===s?n?e.effects.animateClass.call(this,s?{add:i}:{remove:i},n,a,o):t.apply(this,arguments):e.effects.animateClass.call(this,{toggle:i},s,n,a)}}(e.fn.toggleClass),switchClass:function(t,i,s,n,a){return e.effects.animateClass.call(this,{add:i,remove:t},s,n,a)}})}(),function(){function t(t,i,s,n){return e.isPlainObject(t)&&(i=t,t=t.effect),t={effect:t},null==i&&(i={}),e.isFunction(i)&&(n=i,s=null,i={}),("number"==typeof i||e.fx.speeds[i])&&(n=s,s=i,i={}),e.isFunction(s)&&(n=s,s=null),i&&e.extend(t,i),s=s||i.duration,t.duration=e.fx.off?0:"number"==typeof s?s:s in e.fx.speeds?e.fx.speeds[s]:e.fx.speeds._default,t.complete=n||i.complete,t}function i(t){return!t||"number"==typeof t||e.fx.speeds[t]?!0:"string"!=typeof t||e.effects.effect[t]?e.isFunction(t)?!0:"object"!=typeof t||t.effect?!1:!0:!0}e.extend(e.effects,{version:"1.11.4",save:function(e,t){for(var i=0;t.length>i;i++)null!==t[i]&&e.data(y+t[i],e[0].style[t[i]])},restore:function(e,t){var i,s;for(s=0;t.length>s;s++)null!==t[s]&&(i=e.data(y+t[s]),void 0===i&&(i=""),e.css(t[s],i))},setMode:function(e,t){return"toggle"===t&&(t=e.is(":hidden")?"show":"hide"),t},getBaseline:function(e,t){var i,s;switch(e[0]){case"top":i=0;break;case"middle":i=.5;break;case"bottom":i=1;break;default:i=e[0]/t.height}switch(e[1]){case"left":s=0;break;case"center":s=.5;break;case"right":s=1;break;default:s=e[1]/t.width}return{x:s,y:i}},createWrapper:function(t){if(t.parent().is(".ui-effects-wrapper"))return t.parent();var i={width:t.outerWidth(!0),height:t.outerHeight(!0),"float":t.css("float")},s=e("<div></div>").addClass("ui-effects-wrapper").css({fontSize:"100%",background:"transparent",border:"none",margin:0,padding:0}),n={width:t.width(),height:t.height()},a=document.activeElement;try{a.id}catch(o){a=document.body}return t.wrap(s),(t[0]===a||e.contains(t[0],a))&&e(a).focus(),s=t.parent(),"static"===t.css("position")?(s.css({position:"relative"}),t.css({position:"relative"})):(e.extend(i,{position:t.css("position"),zIndex:t.css("z-index")}),e.each(["top","left","bottom","right"],function(e,s){i[s]=t.css(s),isNaN(parseInt(i[s],10))&&(i[s]="auto")}),t.css({position:"relative",top:0,left:0,right:"auto",bottom:"auto"})),t.css(n),s.css(i).show()},removeWrapper:function(t){var i=document.activeElement;return t.parent().is(".ui-effects-wrapper")&&(t.parent().replaceWith(t),(t[0]===i||e.contains(t[0],i))&&e(i).focus()),t},setTransition:function(t,i,s,n){return n=n||{},e.each(i,function(e,i){var a=t.cssUnit(i);a[0]>0&&(n[i]=a[0]*s+a[1])}),n}}),e.fn.extend({effect:function(){function i(t){function i(){e.isFunction(a)&&a.call(n[0]),e.isFunction(t)&&t()}var n=e(this),a=s.complete,r=s.mode;(n.is(":hidden")?"hide"===r:"show"===r)?(n[r](),i()):o.call(n[0],s,i)}var s=t.apply(this,arguments),n=s.mode,a=s.queue,o=e.effects.effect[s.effect];return e.fx.off||!o?n?this[n](s.duration,s.complete):this.each(function(){s.complete&&s.complete.call(this)}):a===!1?this.each(i):this.queue(a||"fx",i)},show:function(e){return function(s){if(i(s))return e.apply(this,arguments);var n=t.apply(this,arguments);return n.mode="show",this.effect.call(this,n)}}(e.fn.show),hide:function(e){return function(s){if(i(s))return e.apply(this,arguments);var n=t.apply(this,arguments);return n.mode="hide",this.effect.call(this,n)}}(e.fn.hide),toggle:function(e){return function(s){if(i(s)||"boolean"==typeof s)return e.apply(this,arguments);var n=t.apply(this,arguments);return n.mode="toggle",this.effect.call(this,n)}}(e.fn.toggle),cssUnit:function(t){var i=this.css(t),s=[];return e.each(["em","px","%","pt"],function(e,t){i.indexOf(t)>0&&(s=[parseFloat(i),t])}),s}})}(),function(){var t={};e.each(["Quad","Cubic","Quart","Quint","Expo"],function(e,i){t[i]=function(t){return Math.pow(t,e+2)}}),e.extend(t,{Sine:function(e){return 1-Math.cos(e*Math.PI/2)},Circ:function(e){return 1-Math.sqrt(1-e*e)},Elastic:function(e){return 0===e||1===e?e:-Math.pow(2,8*(e-1))*Math.sin((80*(e-1)-7.5)*Math.PI/15)},Back:function(e){return e*e*(3*e-2)},Bounce:function(e){for(var t,i=4;((t=Math.pow(2,--i))-1)/11>e;);return 1/Math.pow(4,3-i)-7.5625*Math.pow((3*t-2)/22-e,2)}}),e.each(t,function(t,i){e.easing["easeIn"+t]=i,e.easing["easeOut"+t]=function(e){return 1-i(1-e)},e.easing["easeInOut"+t]=function(e){return.5>e?i(2*e)/2:1-i(-2*e+2)/2}})}(),e.effects,e.effects.effect.blind=function(t,i){var s,n,a,o=e(this),r=/up|down|vertical/,h=/up|left|vertical|horizontal/,l=["position","top","bottom","left","right","height","width"],u=e.effects.setMode(o,t.mode||"hide"),d=t.direction||"up",c=r.test(d),p=c?"height":"width",f=c?"top":"left",m=h.test(d),g={},v="show"===u;o.parent().is(".ui-effects-wrapper")?e.effects.save(o.parent(),l):e.effects.save(o,l),o.show(),s=e.effects.createWrapper(o).css({overflow:"hidden"}),n=s[p](),a=parseFloat(s.css(f))||0,g[p]=v?n:0,m||(o.css(c?"bottom":"right",0).css(c?"top":"left","auto").css({position:"absolute"}),g[f]=v?a:n+a),v&&(s.css(p,0),m||s.css(f,a+n)),s.animate(g,{duration:t.duration,easing:t.easing,queue:!1,complete:function(){"hide"===u&&o.hide(),e.effects.restore(o,l),e.effects.removeWrapper(o),i()}})},e.effects.effect.bounce=function(t,i){var s,n,a,o=e(this),r=["position","top","bottom","left","right","height","width"],h=e.effects.setMode(o,t.mode||"effect"),l="hide"===h,u="show"===h,d=t.direction||"up",c=t.distance,p=t.times||5,f=2*p+(u||l?1:0),m=t.duration/f,g=t.easing,v="up"===d||"down"===d?"top":"left",y="up"===d||"left"===d,b=o.queue(),_=b.length;for((u||l)&&r.push("opacity"),e.effects.save(o,r),o.show(),e.effects.createWrapper(o),c||(c=o["top"===v?"outerHeight":"outerWidth"]()/3),u&&(a={opacity:1},a[v]=0,o.css("opacity",0).css(v,y?2*-c:2*c).animate(a,m,g)),l&&(c/=Math.pow(2,p-1)),a={},a[v]=0,s=0;p>s;s++)n={},n[v]=(y?"-=":"+=")+c,o.animate(n,m,g).animate(a,m,g),c=l?2*c:c/2;l&&(n={opacity:0},n[v]=(y?"-=":"+=")+c,o.animate(n,m,g)),o.queue(function(){l&&o.hide(),e.effects.restore(o,r),e.effects.removeWrapper(o),i()}),_>1&&b.splice.apply(b,[1,0].concat(b.splice(_,f+1))),o.dequeue()},e.effects.effect.clip=function(t,i){var s,n,a,o=e(this),r=["position","top","bottom","left","right","height","width"],h=e.effects.setMode(o,t.mode||"hide"),l="show"===h,u=t.direction||"vertical",d="vertical"===u,c=d?"height":"width",p=d?"top":"left",f={};e.effects.save(o,r),o.show(),s=e.effects.createWrapper(o).css({overflow:"hidden"}),n="IMG"===o[0].tagName?s:o,a=n[c](),l&&(n.css(c,0),n.css(p,a/2)),f[c]=l?a:0,f[p]=l?0:a/2,n.animate(f,{queue:!1,duration:t.duration,easing:t.easing,complete:function(){l||o.hide(),e.effects.restore(o,r),e.effects.removeWrapper(o),i()}})},e.effects.effect.drop=function(t,i){var s,n=e(this),a=["position","top","bottom","left","right","opacity","height","width"],o=e.effects.setMode(n,t.mode||"hide"),r="show"===o,h=t.direction||"left",l="up"===h||"down"===h?"top":"left",u="up"===h||"left"===h?"pos":"neg",d={opacity:r?1:0};e.effects.save(n,a),n.show(),e.effects.createWrapper(n),s=t.distance||n["top"===l?"outerHeight":"outerWidth"](!0)/2,r&&n.css("opacity",0).css(l,"pos"===u?-s:s),d[l]=(r?"pos"===u?"+=":"-=":"pos"===u?"-=":"+=")+s,n.animate(d,{queue:!1,duration:t.duration,easing:t.easing,complete:function(){"hide"===o&&n.hide(),e.effects.restore(n,a),e.effects.removeWrapper(n),i()}})},e.effects.effect.explode=function(t,i){function s(){b.push(this),b.length===d*c&&n()}function n(){p.css({visibility:"visible"}),e(b).remove(),m||p.hide(),i()}var a,o,r,h,l,u,d=t.pieces?Math.round(Math.sqrt(t.pieces)):3,c=d,p=e(this),f=e.effects.setMode(p,t.mode||"hide"),m="show"===f,g=p.show().css("visibility","hidden").offset(),v=Math.ceil(p.outerWidth()/c),y=Math.ceil(p.outerHeight()/d),b=[];for(a=0;d>a;a++)for(h=g.top+a*y,u=a-(d-1)/2,o=0;c>o;o++)r=g.left+o*v,l=o-(c-1)/2,p.clone().appendTo("body").wrap("<div></div>").css({position:"absolute",visibility:"visible",left:-o*v,top:-a*y}).parent().addClass("ui-effects-explode").css({position:"absolute",overflow:"hidden",width:v,height:y,left:r+(m?l*v:0),top:h+(m?u*y:0),opacity:m?0:1}).animate({left:r+(m?0:l*v),top:h+(m?0:u*y),opacity:m?1:0},t.duration||500,t.easing,s)},e.effects.effect.fade=function(t,i){var s=e(this),n=e.effects.setMode(s,t.mode||"toggle");s.animate({opacity:n},{queue:!1,duration:t.duration,easing:t.easing,complete:i})},e.effects.effect.fold=function(t,i){var s,n,a=e(this),o=["position","top","bottom","left","right","height","width"],r=e.effects.setMode(a,t.mode||"hide"),h="show"===r,l="hide"===r,u=t.size||15,d=/([0-9]+)%/.exec(u),c=!!t.horizFirst,p=h!==c,f=p?["width","height"]:["height","width"],m=t.duration/2,g={},v={};e.effects.save(a,o),a.show(),s=e.effects.createWrapper(a).css({overflow:"hidden"}),n=p?[s.width(),s.height()]:[s.height(),s.width()],d&&(u=parseInt(d[1],10)/100*n[l?0:1]),h&&s.css(c?{height:0,width:u}:{height:u,width:0}),g[f[0]]=h?n[0]:u,v[f[1]]=h?n[1]:0,s.animate(g,m,t.easing).animate(v,m,t.easing,function(){l&&a.hide(),e.effects.restore(a,o),e.effects.removeWrapper(a),i()})},e.effects.effect.highlight=function(t,i){var s=e(this),n=["backgroundImage","backgroundColor","opacity"],a=e.effects.setMode(s,t.mode||"show"),o={backgroundColor:s.css("backgroundColor")};"hide"===a&&(o.opacity=0),e.effects.save(s,n),s.show().css({backgroundImage:"none",backgroundColor:t.color||"#ffff99"}).animate(o,{queue:!1,duration:t.duration,easing:t.easing,complete:function(){"hide"===a&&s.hide(),e.effects.restore(s,n),i()}})},e.effects.effect.size=function(t,i){var s,n,a,o=e(this),r=["position","top","bottom","left","right","width","height","overflow","opacity"],h=["position","top","bottom","left","right","overflow","opacity"],l=["width","height","overflow"],u=["fontSize"],d=["borderTopWidth","borderBottomWidth","paddingTop","paddingBottom"],c=["borderLeftWidth","borderRightWidth","paddingLeft","paddingRight"],p=e.effects.setMode(o,t.mode||"effect"),f=t.restore||"effect"!==p,m=t.scale||"both",g=t.origin||["middle","center"],v=o.css("position"),y=f?r:h,b={height:0,width:0,outerHeight:0,outerWidth:0};"show"===p&&o.show(),s={height:o.height(),width:o.width(),outerHeight:o.outerHeight(),outerWidth:o.outerWidth()},"toggle"===t.mode&&"show"===p?(o.from=t.to||b,o.to=t.from||s):(o.from=t.from||("show"===p?b:s),o.to=t.to||("hide"===p?b:s)),a={from:{y:o.from.height/s.height,x:o.from.width/s.width},to:{y:o.to.height/s.height,x:o.to.width/s.width}},("box"===m||"both"===m)&&(a.from.y!==a.to.y&&(y=y.concat(d),o.from=e.effects.setTransition(o,d,a.from.y,o.from),o.to=e.effects.setTransition(o,d,a.to.y,o.to)),a.from.x!==a.to.x&&(y=y.concat(c),o.from=e.effects.setTransition(o,c,a.from.x,o.from),o.to=e.effects.setTransition(o,c,a.to.x,o.to))),("content"===m||"both"===m)&&a.from.y!==a.to.y&&(y=y.concat(u).concat(l),o.from=e.effects.setTransition(o,u,a.from.y,o.from),o.to=e.effects.setTransition(o,u,a.to.y,o.to)),e.effects.save(o,y),o.show(),e.effects.createWrapper(o),o.css("overflow","hidden").css(o.from),g&&(n=e.effects.getBaseline(g,s),o.from.top=(s.outerHeight-o.outerHeight())*n.y,o.from.left=(s.outerWidth-o.outerWidth())*n.x,o.to.top=(s.outerHeight-o.to.outerHeight)*n.y,o.to.left=(s.outerWidth-o.to.outerWidth)*n.x),o.css(o.from),("content"===m||"both"===m)&&(d=d.concat(["marginTop","marginBottom"]).concat(u),c=c.concat(["marginLeft","marginRight"]),l=r.concat(d).concat(c),o.find("*[width]").each(function(){var i=e(this),s={height:i.height(),width:i.width(),outerHeight:i.outerHeight(),outerWidth:i.outerWidth()}; -f&&e.effects.save(i,l),i.from={height:s.height*a.from.y,width:s.width*a.from.x,outerHeight:s.outerHeight*a.from.y,outerWidth:s.outerWidth*a.from.x},i.to={height:s.height*a.to.y,width:s.width*a.to.x,outerHeight:s.height*a.to.y,outerWidth:s.width*a.to.x},a.from.y!==a.to.y&&(i.from=e.effects.setTransition(i,d,a.from.y,i.from),i.to=e.effects.setTransition(i,d,a.to.y,i.to)),a.from.x!==a.to.x&&(i.from=e.effects.setTransition(i,c,a.from.x,i.from),i.to=e.effects.setTransition(i,c,a.to.x,i.to)),i.css(i.from),i.animate(i.to,t.duration,t.easing,function(){f&&e.effects.restore(i,l)})})),o.animate(o.to,{queue:!1,duration:t.duration,easing:t.easing,complete:function(){0===o.to.opacity&&o.css("opacity",o.from.opacity),"hide"===p&&o.hide(),e.effects.restore(o,y),f||("static"===v?o.css({position:"relative",top:o.to.top,left:o.to.left}):e.each(["top","left"],function(e,t){o.css(t,function(t,i){var s=parseInt(i,10),n=e?o.to.left:o.to.top;return"auto"===i?n+"px":s+n+"px"})})),e.effects.removeWrapper(o),i()}})},e.effects.effect.scale=function(t,i){var s=e(this),n=e.extend(!0,{},t),a=e.effects.setMode(s,t.mode||"effect"),o=parseInt(t.percent,10)||(0===parseInt(t.percent,10)?0:"hide"===a?0:100),r=t.direction||"both",h=t.origin,l={height:s.height(),width:s.width(),outerHeight:s.outerHeight(),outerWidth:s.outerWidth()},u={y:"horizontal"!==r?o/100:1,x:"vertical"!==r?o/100:1};n.effect="size",n.queue=!1,n.complete=i,"effect"!==a&&(n.origin=h||["middle","center"],n.restore=!0),n.from=t.from||("show"===a?{height:0,width:0,outerHeight:0,outerWidth:0}:l),n.to={height:l.height*u.y,width:l.width*u.x,outerHeight:l.outerHeight*u.y,outerWidth:l.outerWidth*u.x},n.fade&&("show"===a&&(n.from.opacity=0,n.to.opacity=1),"hide"===a&&(n.from.opacity=1,n.to.opacity=0)),s.effect(n)},e.effects.effect.puff=function(t,i){var s=e(this),n=e.effects.setMode(s,t.mode||"hide"),a="hide"===n,o=parseInt(t.percent,10)||150,r=o/100,h={height:s.height(),width:s.width(),outerHeight:s.outerHeight(),outerWidth:s.outerWidth()};e.extend(t,{effect:"scale",queue:!1,fade:!0,mode:n,complete:i,percent:a?o:100,from:a?h:{height:h.height*r,width:h.width*r,outerHeight:h.outerHeight*r,outerWidth:h.outerWidth*r}}),s.effect(t)},e.effects.effect.pulsate=function(t,i){var s,n=e(this),a=e.effects.setMode(n,t.mode||"show"),o="show"===a,r="hide"===a,h=o||"hide"===a,l=2*(t.times||5)+(h?1:0),u=t.duration/l,d=0,c=n.queue(),p=c.length;for((o||!n.is(":visible"))&&(n.css("opacity",0).show(),d=1),s=1;l>s;s++)n.animate({opacity:d},u,t.easing),d=1-d;n.animate({opacity:d},u,t.easing),n.queue(function(){r&&n.hide(),i()}),p>1&&c.splice.apply(c,[1,0].concat(c.splice(p,l+1))),n.dequeue()},e.effects.effect.shake=function(t,i){var s,n=e(this),a=["position","top","bottom","left","right","height","width"],o=e.effects.setMode(n,t.mode||"effect"),r=t.direction||"left",h=t.distance||20,l=t.times||3,u=2*l+1,d=Math.round(t.duration/u),c="up"===r||"down"===r?"top":"left",p="up"===r||"left"===r,f={},m={},g={},v=n.queue(),y=v.length;for(e.effects.save(n,a),n.show(),e.effects.createWrapper(n),f[c]=(p?"-=":"+=")+h,m[c]=(p?"+=":"-=")+2*h,g[c]=(p?"-=":"+=")+2*h,n.animate(f,d,t.easing),s=1;l>s;s++)n.animate(m,d,t.easing).animate(g,d,t.easing);n.animate(m,d,t.easing).animate(f,d/2,t.easing).queue(function(){"hide"===o&&n.hide(),e.effects.restore(n,a),e.effects.removeWrapper(n),i()}),y>1&&v.splice.apply(v,[1,0].concat(v.splice(y,u+1))),n.dequeue()},e.effects.effect.slide=function(t,i){var s,n=e(this),a=["position","top","bottom","left","right","width","height"],o=e.effects.setMode(n,t.mode||"show"),r="show"===o,h=t.direction||"left",l="up"===h||"down"===h?"top":"left",u="up"===h||"left"===h,d={};e.effects.save(n,a),n.show(),s=t.distance||n["top"===l?"outerHeight":"outerWidth"](!0),e.effects.createWrapper(n).css({overflow:"hidden"}),r&&n.css(l,u?isNaN(s)?"-"+s:-s:s),d[l]=(r?u?"+=":"-=":u?"-=":"+=")+s,n.animate(d,{queue:!1,duration:t.duration,easing:t.easing,complete:function(){"hide"===o&&n.hide(),e.effects.restore(n,a),e.effects.removeWrapper(n),i()}})},e.effects.effect.transfer=function(t,i){var s=e(this),n=e(t.to),a="fixed"===n.css("position"),o=e("body"),r=a?o.scrollTop():0,h=a?o.scrollLeft():0,l=n.offset(),u={top:l.top-r,left:l.left-h,height:n.innerHeight(),width:n.innerWidth()},d=s.offset(),c=e("<div class='ui-effects-transfer'></div>").appendTo(document.body).addClass(t.className).css({top:d.top-r,left:d.left-h,height:s.innerHeight(),width:s.innerWidth(),position:a?"fixed":"absolute"}).animate(u,t.duration,t.easing,function(){c.remove(),i()})},e.widget("ui.progressbar",{version:"1.11.4",options:{max:100,value:0,change:null,complete:null},min:0,_create:function(){this.oldValue=this.options.value=this._constrainedValue(),this.element.addClass("ui-progressbar ui-widget ui-widget-content ui-corner-all").attr({role:"progressbar","aria-valuemin":this.min}),this.valueDiv=e("<div class='ui-progressbar-value ui-widget-header ui-corner-left'></div>").appendTo(this.element),this._refreshValue()},_destroy:function(){this.element.removeClass("ui-progressbar ui-widget ui-widget-content ui-corner-all").removeAttr("role").removeAttr("aria-valuemin").removeAttr("aria-valuemax").removeAttr("aria-valuenow"),this.valueDiv.remove()},value:function(e){return void 0===e?this.options.value:(this.options.value=this._constrainedValue(e),this._refreshValue(),void 0)},_constrainedValue:function(e){return void 0===e&&(e=this.options.value),this.indeterminate=e===!1,"number"!=typeof e&&(e=0),this.indeterminate?!1:Math.min(this.options.max,Math.max(this.min,e))},_setOptions:function(e){var t=e.value;delete e.value,this._super(e),this.options.value=this._constrainedValue(t),this._refreshValue()},_setOption:function(e,t){"max"===e&&(t=Math.max(this.min,t)),"disabled"===e&&this.element.toggleClass("ui-state-disabled",!!t).attr("aria-disabled",t),this._super(e,t)},_percentage:function(){return this.indeterminate?100:100*(this.options.value-this.min)/(this.options.max-this.min)},_refreshValue:function(){var t=this.options.value,i=this._percentage();this.valueDiv.toggle(this.indeterminate||t>this.min).toggleClass("ui-corner-right",t===this.options.max).width(i.toFixed(0)+"%"),this.element.toggleClass("ui-progressbar-indeterminate",this.indeterminate),this.indeterminate?(this.element.removeAttr("aria-valuenow"),this.overlayDiv||(this.overlayDiv=e("<div class='ui-progressbar-overlay'></div>").appendTo(this.valueDiv))):(this.element.attr({"aria-valuemax":this.options.max,"aria-valuenow":t}),this.overlayDiv&&(this.overlayDiv.remove(),this.overlayDiv=null)),this.oldValue!==t&&(this.oldValue=t,this._trigger("change")),t===this.options.max&&this._trigger("complete")}}),e.widget("ui.selectable",e.ui.mouse,{version:"1.11.4",options:{appendTo:"body",autoRefresh:!0,distance:0,filter:"*",tolerance:"touch",selected:null,selecting:null,start:null,stop:null,unselected:null,unselecting:null},_create:function(){var t,i=this;this.element.addClass("ui-selectable"),this.dragged=!1,this.refresh=function(){t=e(i.options.filter,i.element[0]),t.addClass("ui-selectee"),t.each(function(){var t=e(this),i=t.offset();e.data(this,"selectable-item",{element:this,$element:t,left:i.left,top:i.top,right:i.left+t.outerWidth(),bottom:i.top+t.outerHeight(),startselected:!1,selected:t.hasClass("ui-selected"),selecting:t.hasClass("ui-selecting"),unselecting:t.hasClass("ui-unselecting")})})},this.refresh(),this.selectees=t.addClass("ui-selectee"),this._mouseInit(),this.helper=e("<div class='ui-selectable-helper'></div>")},_destroy:function(){this.selectees.removeClass("ui-selectee").removeData("selectable-item"),this.element.removeClass("ui-selectable ui-selectable-disabled"),this._mouseDestroy()},_mouseStart:function(t){var i=this,s=this.options;this.opos=[t.pageX,t.pageY],this.options.disabled||(this.selectees=e(s.filter,this.element[0]),this._trigger("start",t),e(s.appendTo).append(this.helper),this.helper.css({left:t.pageX,top:t.pageY,width:0,height:0}),s.autoRefresh&&this.refresh(),this.selectees.filter(".ui-selected").each(function(){var s=e.data(this,"selectable-item");s.startselected=!0,t.metaKey||t.ctrlKey||(s.$element.removeClass("ui-selected"),s.selected=!1,s.$element.addClass("ui-unselecting"),s.unselecting=!0,i._trigger("unselecting",t,{unselecting:s.element}))}),e(t.target).parents().addBack().each(function(){var s,n=e.data(this,"selectable-item");return n?(s=!t.metaKey&&!t.ctrlKey||!n.$element.hasClass("ui-selected"),n.$element.removeClass(s?"ui-unselecting":"ui-selected").addClass(s?"ui-selecting":"ui-unselecting"),n.unselecting=!s,n.selecting=s,n.selected=s,s?i._trigger("selecting",t,{selecting:n.element}):i._trigger("unselecting",t,{unselecting:n.element}),!1):void 0}))},_mouseDrag:function(t){if(this.dragged=!0,!this.options.disabled){var i,s=this,n=this.options,a=this.opos[0],o=this.opos[1],r=t.pageX,h=t.pageY;return a>r&&(i=r,r=a,a=i),o>h&&(i=h,h=o,o=i),this.helper.css({left:a,top:o,width:r-a,height:h-o}),this.selectees.each(function(){var i=e.data(this,"selectable-item"),l=!1;i&&i.element!==s.element[0]&&("touch"===n.tolerance?l=!(i.left>r||a>i.right||i.top>h||o>i.bottom):"fit"===n.tolerance&&(l=i.left>a&&r>i.right&&i.top>o&&h>i.bottom),l?(i.selected&&(i.$element.removeClass("ui-selected"),i.selected=!1),i.unselecting&&(i.$element.removeClass("ui-unselecting"),i.unselecting=!1),i.selecting||(i.$element.addClass("ui-selecting"),i.selecting=!0,s._trigger("selecting",t,{selecting:i.element}))):(i.selecting&&((t.metaKey||t.ctrlKey)&&i.startselected?(i.$element.removeClass("ui-selecting"),i.selecting=!1,i.$element.addClass("ui-selected"),i.selected=!0):(i.$element.removeClass("ui-selecting"),i.selecting=!1,i.startselected&&(i.$element.addClass("ui-unselecting"),i.unselecting=!0),s._trigger("unselecting",t,{unselecting:i.element}))),i.selected&&(t.metaKey||t.ctrlKey||i.startselected||(i.$element.removeClass("ui-selected"),i.selected=!1,i.$element.addClass("ui-unselecting"),i.unselecting=!0,s._trigger("unselecting",t,{unselecting:i.element})))))}),!1}},_mouseStop:function(t){var i=this;return this.dragged=!1,e(".ui-unselecting",this.element[0]).each(function(){var s=e.data(this,"selectable-item");s.$element.removeClass("ui-unselecting"),s.unselecting=!1,s.startselected=!1,i._trigger("unselected",t,{unselected:s.element})}),e(".ui-selecting",this.element[0]).each(function(){var s=e.data(this,"selectable-item");s.$element.removeClass("ui-selecting").addClass("ui-selected"),s.selecting=!1,s.selected=!0,s.startselected=!0,i._trigger("selected",t,{selected:s.element})}),this._trigger("stop",t),this.helper.remove(),!1}}),e.widget("ui.selectmenu",{version:"1.11.4",defaultElement:"<select>",options:{appendTo:null,disabled:null,icons:{button:"ui-icon-triangle-1-s"},position:{my:"left top",at:"left bottom",collision:"none"},width:null,change:null,close:null,focus:null,open:null,select:null},_create:function(){var e=this.element.uniqueId().attr("id");this.ids={element:e,button:e+"-button",menu:e+"-menu"},this._drawButton(),this._drawMenu(),this.options.disabled&&this.disable()},_drawButton:function(){var t=this;this.label=e("label[for='"+this.ids.element+"']").attr("for",this.ids.button),this._on(this.label,{click:function(e){this.button.focus(),e.preventDefault()}}),this.element.hide(),this.button=e("<span>",{"class":"ui-selectmenu-button ui-widget ui-state-default ui-corner-all",tabindex:this.options.disabled?-1:0,id:this.ids.button,role:"combobox","aria-expanded":"false","aria-autocomplete":"list","aria-owns":this.ids.menu,"aria-haspopup":"true"}).insertAfter(this.element),e("<span>",{"class":"ui-icon "+this.options.icons.button}).prependTo(this.button),this.buttonText=e("<span>",{"class":"ui-selectmenu-text"}).appendTo(this.button),this._setText(this.buttonText,this.element.find("option:selected").text()),this._resizeButton(),this._on(this.button,this._buttonEvents),this.button.one("focusin",function(){t.menuItems||t._refreshMenu()}),this._hoverable(this.button),this._focusable(this.button)},_drawMenu:function(){var t=this;this.menu=e("<ul>",{"aria-hidden":"true","aria-labelledby":this.ids.button,id:this.ids.menu}),this.menuWrap=e("<div>",{"class":"ui-selectmenu-menu ui-front"}).append(this.menu).appendTo(this._appendTo()),this.menuInstance=this.menu.menu({role:"listbox",select:function(e,i){e.preventDefault(),t._setSelection(),t._select(i.item.data("ui-selectmenu-item"),e)},focus:function(e,i){var s=i.item.data("ui-selectmenu-item");null!=t.focusIndex&&s.index!==t.focusIndex&&(t._trigger("focus",e,{item:s}),t.isOpen||t._select(s,e)),t.focusIndex=s.index,t.button.attr("aria-activedescendant",t.menuItems.eq(s.index).attr("id"))}}).menu("instance"),this.menu.addClass("ui-corner-bottom").removeClass("ui-corner-all"),this.menuInstance._off(this.menu,"mouseleave"),this.menuInstance._closeOnDocumentClick=function(){return!1},this.menuInstance._isDivider=function(){return!1}},refresh:function(){this._refreshMenu(),this._setText(this.buttonText,this._getSelectedItem().text()),this.options.width||this._resizeButton()},_refreshMenu:function(){this.menu.empty();var e,t=this.element.find("option");t.length&&(this._parseOptions(t),this._renderMenu(this.menu,this.items),this.menuInstance.refresh(),this.menuItems=this.menu.find("li").not(".ui-selectmenu-optgroup"),e=this._getSelectedItem(),this.menuInstance.focus(null,e),this._setAria(e.data("ui-selectmenu-item")),this._setOption("disabled",this.element.prop("disabled")))},open:function(e){this.options.disabled||(this.menuItems?(this.menu.find(".ui-state-focus").removeClass("ui-state-focus"),this.menuInstance.focus(null,this._getSelectedItem())):this._refreshMenu(),this.isOpen=!0,this._toggleAttr(),this._resizeMenu(),this._position(),this._on(this.document,this._documentClick),this._trigger("open",e))},_position:function(){this.menuWrap.position(e.extend({of:this.button},this.options.position))},close:function(e){this.isOpen&&(this.isOpen=!1,this._toggleAttr(),this.range=null,this._off(this.document),this._trigger("close",e))},widget:function(){return this.button},menuWidget:function(){return this.menu},_renderMenu:function(t,i){var s=this,n="";e.each(i,function(i,a){a.optgroup!==n&&(e("<li>",{"class":"ui-selectmenu-optgroup ui-menu-divider"+(a.element.parent("optgroup").prop("disabled")?" ui-state-disabled":""),text:a.optgroup}).appendTo(t),n=a.optgroup),s._renderItemData(t,a)})},_renderItemData:function(e,t){return this._renderItem(e,t).data("ui-selectmenu-item",t)},_renderItem:function(t,i){var s=e("<li>");return i.disabled&&s.addClass("ui-state-disabled"),this._setText(s,i.label),s.appendTo(t)},_setText:function(e,t){t?e.text(t):e.html("&#160;")},_move:function(e,t){var i,s,n=".ui-menu-item";this.isOpen?i=this.menuItems.eq(this.focusIndex):(i=this.menuItems.eq(this.element[0].selectedIndex),n+=":not(.ui-state-disabled)"),s="first"===e||"last"===e?i["first"===e?"prevAll":"nextAll"](n).eq(-1):i[e+"All"](n).eq(0),s.length&&this.menuInstance.focus(t,s)},_getSelectedItem:function(){return this.menuItems.eq(this.element[0].selectedIndex)},_toggle:function(e){this[this.isOpen?"close":"open"](e)},_setSelection:function(){var e;this.range&&(window.getSelection?(e=window.getSelection(),e.removeAllRanges(),e.addRange(this.range)):this.range.select(),this.button.focus())},_documentClick:{mousedown:function(t){this.isOpen&&(e(t.target).closest(".ui-selectmenu-menu, #"+this.ids.button).length||this.close(t))}},_buttonEvents:{mousedown:function(){var e;window.getSelection?(e=window.getSelection(),e.rangeCount&&(this.range=e.getRangeAt(0))):this.range=document.selection.createRange()},click:function(e){this._setSelection(),this._toggle(e)},keydown:function(t){var i=!0;switch(t.keyCode){case e.ui.keyCode.TAB:case e.ui.keyCode.ESCAPE:this.close(t),i=!1;break;case e.ui.keyCode.ENTER:this.isOpen&&this._selectFocusedItem(t);break;case e.ui.keyCode.UP:t.altKey?this._toggle(t):this._move("prev",t);break;case e.ui.keyCode.DOWN:t.altKey?this._toggle(t):this._move("next",t);break;case e.ui.keyCode.SPACE:this.isOpen?this._selectFocusedItem(t):this._toggle(t);break;case e.ui.keyCode.LEFT:this._move("prev",t);break;case e.ui.keyCode.RIGHT:this._move("next",t);break;case e.ui.keyCode.HOME:case e.ui.keyCode.PAGE_UP:this._move("first",t);break;case e.ui.keyCode.END:case e.ui.keyCode.PAGE_DOWN:this._move("last",t);break;default:this.menu.trigger(t),i=!1}i&&t.preventDefault()}},_selectFocusedItem:function(e){var t=this.menuItems.eq(this.focusIndex);t.hasClass("ui-state-disabled")||this._select(t.data("ui-selectmenu-item"),e)},_select:function(e,t){var i=this.element[0].selectedIndex;this.element[0].selectedIndex=e.index,this._setText(this.buttonText,e.label),this._setAria(e),this._trigger("select",t,{item:e}),e.index!==i&&this._trigger("change",t,{item:e}),this.close(t)},_setAria:function(e){var t=this.menuItems.eq(e.index).attr("id");this.button.attr({"aria-labelledby":t,"aria-activedescendant":t}),this.menu.attr("aria-activedescendant",t)},_setOption:function(e,t){"icons"===e&&this.button.find("span.ui-icon").removeClass(this.options.icons.button).addClass(t.button),this._super(e,t),"appendTo"===e&&this.menuWrap.appendTo(this._appendTo()),"disabled"===e&&(this.menuInstance.option("disabled",t),this.button.toggleClass("ui-state-disabled",t).attr("aria-disabled",t),this.element.prop("disabled",t),t?(this.button.attr("tabindex",-1),this.close()):this.button.attr("tabindex",0)),"width"===e&&this._resizeButton()},_appendTo:function(){var t=this.options.appendTo;return t&&(t=t.jquery||t.nodeType?e(t):this.document.find(t).eq(0)),t&&t[0]||(t=this.element.closest(".ui-front")),t.length||(t=this.document[0].body),t},_toggleAttr:function(){this.button.toggleClass("ui-corner-top",this.isOpen).toggleClass("ui-corner-all",!this.isOpen).attr("aria-expanded",this.isOpen),this.menuWrap.toggleClass("ui-selectmenu-open",this.isOpen),this.menu.attr("aria-hidden",!this.isOpen)},_resizeButton:function(){var e=this.options.width;e||(e=this.element.show().outerWidth(),this.element.hide()),this.button.outerWidth(e)},_resizeMenu:function(){this.menu.outerWidth(Math.max(this.button.outerWidth(),this.menu.width("").outerWidth()+1))},_getCreateOptions:function(){return{disabled:this.element.prop("disabled")}},_parseOptions:function(t){var i=[];t.each(function(t,s){var n=e(s),a=n.parent("optgroup");i.push({element:n,index:t,value:n.val(),label:n.text(),optgroup:a.attr("label")||"",disabled:a.prop("disabled")||n.prop("disabled")})}),this.items=i},_destroy:function(){this.menuWrap.remove(),this.button.remove(),this.element.show(),this.element.removeUniqueId(),this.label.attr("for",this.ids.element)}}),e.widget("ui.slider",e.ui.mouse,{version:"1.11.4",widgetEventPrefix:"slide",options:{animate:!1,distance:0,max:100,min:0,orientation:"horizontal",range:!1,step:1,value:0,values:null,change:null,slide:null,start:null,stop:null},numPages:5,_create:function(){this._keySliding=!1,this._mouseSliding=!1,this._animateOff=!0,this._handleIndex=null,this._detectOrientation(),this._mouseInit(),this._calculateNewMax(),this.element.addClass("ui-slider ui-slider-"+this.orientation+" ui-widget"+" ui-widget-content"+" ui-corner-all"),this._refresh(),this._setOption("disabled",this.options.disabled),this._animateOff=!1},_refresh:function(){this._createRange(),this._createHandles(),this._setupEvents(),this._refreshValue()},_createHandles:function(){var t,i,s=this.options,n=this.element.find(".ui-slider-handle").addClass("ui-state-default ui-corner-all"),a="<span class='ui-slider-handle ui-state-default ui-corner-all' tabindex='0'></span>",o=[];for(i=s.values&&s.values.length||1,n.length>i&&(n.slice(i).remove(),n=n.slice(0,i)),t=n.length;i>t;t++)o.push(a);this.handles=n.add(e(o.join("")).appendTo(this.element)),this.handle=this.handles.eq(0),this.handles.each(function(t){e(this).data("ui-slider-handle-index",t)})},_createRange:function(){var t=this.options,i="";t.range?(t.range===!0&&(t.values?t.values.length&&2!==t.values.length?t.values=[t.values[0],t.values[0]]:e.isArray(t.values)&&(t.values=t.values.slice(0)):t.values=[this._valueMin(),this._valueMin()]),this.range&&this.range.length?this.range.removeClass("ui-slider-range-min ui-slider-range-max").css({left:"",bottom:""}):(this.range=e("<div></div>").appendTo(this.element),i="ui-slider-range ui-widget-header ui-corner-all"),this.range.addClass(i+("min"===t.range||"max"===t.range?" ui-slider-range-"+t.range:""))):(this.range&&this.range.remove(),this.range=null)},_setupEvents:function(){this._off(this.handles),this._on(this.handles,this._handleEvents),this._hoverable(this.handles),this._focusable(this.handles)},_destroy:function(){this.handles.remove(),this.range&&this.range.remove(),this.element.removeClass("ui-slider ui-slider-horizontal ui-slider-vertical ui-widget ui-widget-content ui-corner-all"),this._mouseDestroy()},_mouseCapture:function(t){var i,s,n,a,o,r,h,l,u=this,d=this.options;return d.disabled?!1:(this.elementSize={width:this.element.outerWidth(),height:this.element.outerHeight()},this.elementOffset=this.element.offset(),i={x:t.pageX,y:t.pageY},s=this._normValueFromMouse(i),n=this._valueMax()-this._valueMin()+1,this.handles.each(function(t){var i=Math.abs(s-u.values(t));(n>i||n===i&&(t===u._lastChangedValue||u.values(t)===d.min))&&(n=i,a=e(this),o=t)}),r=this._start(t,o),r===!1?!1:(this._mouseSliding=!0,this._handleIndex=o,a.addClass("ui-state-active").focus(),h=a.offset(),l=!e(t.target).parents().addBack().is(".ui-slider-handle"),this._clickOffset=l?{left:0,top:0}:{left:t.pageX-h.left-a.width()/2,top:t.pageY-h.top-a.height()/2-(parseInt(a.css("borderTopWidth"),10)||0)-(parseInt(a.css("borderBottomWidth"),10)||0)+(parseInt(a.css("marginTop"),10)||0)},this.handles.hasClass("ui-state-hover")||this._slide(t,o,s),this._animateOff=!0,!0))},_mouseStart:function(){return!0},_mouseDrag:function(e){var t={x:e.pageX,y:e.pageY},i=this._normValueFromMouse(t);return this._slide(e,this._handleIndex,i),!1},_mouseStop:function(e){return this.handles.removeClass("ui-state-active"),this._mouseSliding=!1,this._stop(e,this._handleIndex),this._change(e,this._handleIndex),this._handleIndex=null,this._clickOffset=null,this._animateOff=!1,!1},_detectOrientation:function(){this.orientation="vertical"===this.options.orientation?"vertical":"horizontal"},_normValueFromMouse:function(e){var t,i,s,n,a;return"horizontal"===this.orientation?(t=this.elementSize.width,i=e.x-this.elementOffset.left-(this._clickOffset?this._clickOffset.left:0)):(t=this.elementSize.height,i=e.y-this.elementOffset.top-(this._clickOffset?this._clickOffset.top:0)),s=i/t,s>1&&(s=1),0>s&&(s=0),"vertical"===this.orientation&&(s=1-s),n=this._valueMax()-this._valueMin(),a=this._valueMin()+s*n,this._trimAlignValue(a)},_start:function(e,t){var i={handle:this.handles[t],value:this.value()};return this.options.values&&this.options.values.length&&(i.value=this.values(t),i.values=this.values()),this._trigger("start",e,i)},_slide:function(e,t,i){var s,n,a;this.options.values&&this.options.values.length?(s=this.values(t?0:1),2===this.options.values.length&&this.options.range===!0&&(0===t&&i>s||1===t&&s>i)&&(i=s),i!==this.values(t)&&(n=this.values(),n[t]=i,a=this._trigger("slide",e,{handle:this.handles[t],value:i,values:n}),s=this.values(t?0:1),a!==!1&&this.values(t,i))):i!==this.value()&&(a=this._trigger("slide",e,{handle:this.handles[t],value:i}),a!==!1&&this.value(i))},_stop:function(e,t){var i={handle:this.handles[t],value:this.value()};this.options.values&&this.options.values.length&&(i.value=this.values(t),i.values=this.values()),this._trigger("stop",e,i)},_change:function(e,t){if(!this._keySliding&&!this._mouseSliding){var i={handle:this.handles[t],value:this.value()};this.options.values&&this.options.values.length&&(i.value=this.values(t),i.values=this.values()),this._lastChangedValue=t,this._trigger("change",e,i)}},value:function(e){return arguments.length?(this.options.value=this._trimAlignValue(e),this._refreshValue(),this._change(null,0),void 0):this._value()},values:function(t,i){var s,n,a;if(arguments.length>1)return this.options.values[t]=this._trimAlignValue(i),this._refreshValue(),this._change(null,t),void 0;if(!arguments.length)return this._values();if(!e.isArray(arguments[0]))return this.options.values&&this.options.values.length?this._values(t):this.value();for(s=this.options.values,n=arguments[0],a=0;s.length>a;a+=1)s[a]=this._trimAlignValue(n[a]),this._change(null,a);this._refreshValue()},_setOption:function(t,i){var s,n=0;switch("range"===t&&this.options.range===!0&&("min"===i?(this.options.value=this._values(0),this.options.values=null):"max"===i&&(this.options.value=this._values(this.options.values.length-1),this.options.values=null)),e.isArray(this.options.values)&&(n=this.options.values.length),"disabled"===t&&this.element.toggleClass("ui-state-disabled",!!i),this._super(t,i),t){case"orientation":this._detectOrientation(),this.element.removeClass("ui-slider-horizontal ui-slider-vertical").addClass("ui-slider-"+this.orientation),this._refreshValue(),this.handles.css("horizontal"===i?"bottom":"left","");break;case"value":this._animateOff=!0,this._refreshValue(),this._change(null,0),this._animateOff=!1;break;case"values":for(this._animateOff=!0,this._refreshValue(),s=0;n>s;s+=1)this._change(null,s);this._animateOff=!1;break;case"step":case"min":case"max":this._animateOff=!0,this._calculateNewMax(),this._refreshValue(),this._animateOff=!1;break;case"range":this._animateOff=!0,this._refresh(),this._animateOff=!1}},_value:function(){var e=this.options.value;return e=this._trimAlignValue(e)},_values:function(e){var t,i,s;if(arguments.length)return t=this.options.values[e],t=this._trimAlignValue(t);if(this.options.values&&this.options.values.length){for(i=this.options.values.slice(),s=0;i.length>s;s+=1)i[s]=this._trimAlignValue(i[s]);return i}return[]},_trimAlignValue:function(e){if(this._valueMin()>=e)return this._valueMin();if(e>=this._valueMax())return this._valueMax();var t=this.options.step>0?this.options.step:1,i=(e-this._valueMin())%t,s=e-i;return 2*Math.abs(i)>=t&&(s+=i>0?t:-t),parseFloat(s.toFixed(5))},_calculateNewMax:function(){var e=this.options.max,t=this._valueMin(),i=this.options.step,s=Math.floor(+(e-t).toFixed(this._precision())/i)*i;e=s+t,this.max=parseFloat(e.toFixed(this._precision()))},_precision:function(){var e=this._precisionOf(this.options.step);return null!==this.options.min&&(e=Math.max(e,this._precisionOf(this.options.min))),e},_precisionOf:function(e){var t=""+e,i=t.indexOf(".");return-1===i?0:t.length-i-1},_valueMin:function(){return this.options.min},_valueMax:function(){return this.max},_refreshValue:function(){var t,i,s,n,a,o=this.options.range,r=this.options,h=this,l=this._animateOff?!1:r.animate,u={};this.options.values&&this.options.values.length?this.handles.each(function(s){i=100*((h.values(s)-h._valueMin())/(h._valueMax()-h._valueMin())),u["horizontal"===h.orientation?"left":"bottom"]=i+"%",e(this).stop(1,1)[l?"animate":"css"](u,r.animate),h.options.range===!0&&("horizontal"===h.orientation?(0===s&&h.range.stop(1,1)[l?"animate":"css"]({left:i+"%"},r.animate),1===s&&h.range[l?"animate":"css"]({width:i-t+"%"},{queue:!1,duration:r.animate})):(0===s&&h.range.stop(1,1)[l?"animate":"css"]({bottom:i+"%"},r.animate),1===s&&h.range[l?"animate":"css"]({height:i-t+"%"},{queue:!1,duration:r.animate}))),t=i}):(s=this.value(),n=this._valueMin(),a=this._valueMax(),i=a!==n?100*((s-n)/(a-n)):0,u["horizontal"===this.orientation?"left":"bottom"]=i+"%",this.handle.stop(1,1)[l?"animate":"css"](u,r.animate),"min"===o&&"horizontal"===this.orientation&&this.range.stop(1,1)[l?"animate":"css"]({width:i+"%"},r.animate),"max"===o&&"horizontal"===this.orientation&&this.range[l?"animate":"css"]({width:100-i+"%"},{queue:!1,duration:r.animate}),"min"===o&&"vertical"===this.orientation&&this.range.stop(1,1)[l?"animate":"css"]({height:i+"%"},r.animate),"max"===o&&"vertical"===this.orientation&&this.range[l?"animate":"css"]({height:100-i+"%"},{queue:!1,duration:r.animate}))},_handleEvents:{keydown:function(t){var i,s,n,a,o=e(t.target).data("ui-slider-handle-index");switch(t.keyCode){case e.ui.keyCode.HOME:case e.ui.keyCode.END:case e.ui.keyCode.PAGE_UP:case e.ui.keyCode.PAGE_DOWN:case e.ui.keyCode.UP:case e.ui.keyCode.RIGHT:case e.ui.keyCode.DOWN:case e.ui.keyCode.LEFT:if(t.preventDefault(),!this._keySliding&&(this._keySliding=!0,e(t.target).addClass("ui-state-active"),i=this._start(t,o),i===!1))return}switch(a=this.options.step,s=n=this.options.values&&this.options.values.length?this.values(o):this.value(),t.keyCode){case e.ui.keyCode.HOME:n=this._valueMin();break;case e.ui.keyCode.END:n=this._valueMax();break;case e.ui.keyCode.PAGE_UP:n=this._trimAlignValue(s+(this._valueMax()-this._valueMin())/this.numPages);break;case e.ui.keyCode.PAGE_DOWN:n=this._trimAlignValue(s-(this._valueMax()-this._valueMin())/this.numPages);break;case e.ui.keyCode.UP:case e.ui.keyCode.RIGHT:if(s===this._valueMax())return;n=this._trimAlignValue(s+a);break;case e.ui.keyCode.DOWN:case e.ui.keyCode.LEFT:if(s===this._valueMin())return;n=this._trimAlignValue(s-a)}this._slide(t,o,n)},keyup:function(t){var i=e(t.target).data("ui-slider-handle-index");this._keySliding&&(this._keySliding=!1,this._stop(t,i),this._change(t,i),e(t.target).removeClass("ui-state-active"))}}}),e.widget("ui.sortable",e.ui.mouse,{version:"1.11.4",widgetEventPrefix:"sort",ready:!1,options:{appendTo:"parent",axis:!1,connectWith:!1,containment:!1,cursor:"auto",cursorAt:!1,dropOnEmpty:!0,forcePlaceholderSize:!1,forceHelperSize:!1,grid:!1,handle:!1,helper:"original",items:"> *",opacity:!1,placeholder:!1,revert:!1,scroll:!0,scrollSensitivity:20,scrollSpeed:20,scope:"default",tolerance:"intersect",zIndex:1e3,activate:null,beforeStop:null,change:null,deactivate:null,out:null,over:null,receive:null,remove:null,sort:null,start:null,stop:null,update:null},_isOverAxis:function(e,t,i){return e>=t&&t+i>e},_isFloating:function(e){return/left|right/.test(e.css("float"))||/inline|table-cell/.test(e.css("display"))},_create:function(){this.containerCache={},this.element.addClass("ui-sortable"),this.refresh(),this.offset=this.element.offset(),this._mouseInit(),this._setHandleClassName(),this.ready=!0},_setOption:function(e,t){this._super(e,t),"handle"===e&&this._setHandleClassName()},_setHandleClassName:function(){this.element.find(".ui-sortable-handle").removeClass("ui-sortable-handle"),e.each(this.items,function(){(this.instance.options.handle?this.item.find(this.instance.options.handle):this.item).addClass("ui-sortable-handle")})},_destroy:function(){this.element.removeClass("ui-sortable ui-sortable-disabled").find(".ui-sortable-handle").removeClass("ui-sortable-handle"),this._mouseDestroy();for(var e=this.items.length-1;e>=0;e--)this.items[e].item.removeData(this.widgetName+"-item");return this},_mouseCapture:function(t,i){var s=null,n=!1,a=this;return this.reverting?!1:this.options.disabled||"static"===this.options.type?!1:(this._refreshItems(t),e(t.target).parents().each(function(){return e.data(this,a.widgetName+"-item")===a?(s=e(this),!1):void 0}),e.data(t.target,a.widgetName+"-item")===a&&(s=e(t.target)),s?!this.options.handle||i||(e(this.options.handle,s).find("*").addBack().each(function(){this===t.target&&(n=!0)}),n)?(this.currentItem=s,this._removeCurrentsFromItems(),!0):!1:!1)},_mouseStart:function(t,i,s){var n,a,o=this.options;if(this.currentContainer=this,this.refreshPositions(),this.helper=this._createHelper(t),this._cacheHelperProportions(),this._cacheMargins(),this.scrollParent=this.helper.scrollParent(),this.offset=this.currentItem.offset(),this.offset={top:this.offset.top-this.margins.top,left:this.offset.left-this.margins.left},e.extend(this.offset,{click:{left:t.pageX-this.offset.left,top:t.pageY-this.offset.top},parent:this._getParentOffset(),relative:this._getRelativeOffset()}),this.helper.css("position","absolute"),this.cssPosition=this.helper.css("position"),this.originalPosition=this._generatePosition(t),this.originalPageX=t.pageX,this.originalPageY=t.pageY,o.cursorAt&&this._adjustOffsetFromHelper(o.cursorAt),this.domPosition={prev:this.currentItem.prev()[0],parent:this.currentItem.parent()[0]},this.helper[0]!==this.currentItem[0]&&this.currentItem.hide(),this._createPlaceholder(),o.containment&&this._setContainment(),o.cursor&&"auto"!==o.cursor&&(a=this.document.find("body"),this.storedCursor=a.css("cursor"),a.css("cursor",o.cursor),this.storedStylesheet=e("<style>*{ cursor: "+o.cursor+" !important; }</style>").appendTo(a)),o.opacity&&(this.helper.css("opacity")&&(this._storedOpacity=this.helper.css("opacity")),this.helper.css("opacity",o.opacity)),o.zIndex&&(this.helper.css("zIndex")&&(this._storedZIndex=this.helper.css("zIndex")),this.helper.css("zIndex",o.zIndex)),this.scrollParent[0]!==this.document[0]&&"HTML"!==this.scrollParent[0].tagName&&(this.overflowOffset=this.scrollParent.offset()),this._trigger("start",t,this._uiHash()),this._preserveHelperProportions||this._cacheHelperProportions(),!s)for(n=this.containers.length-1;n>=0;n--)this.containers[n]._trigger("activate",t,this._uiHash(this)); -return e.ui.ddmanager&&(e.ui.ddmanager.current=this),e.ui.ddmanager&&!o.dropBehaviour&&e.ui.ddmanager.prepareOffsets(this,t),this.dragging=!0,this.helper.addClass("ui-sortable-helper"),this._mouseDrag(t),!0},_mouseDrag:function(t){var i,s,n,a,o=this.options,r=!1;for(this.position=this._generatePosition(t),this.positionAbs=this._convertPositionTo("absolute"),this.lastPositionAbs||(this.lastPositionAbs=this.positionAbs),this.options.scroll&&(this.scrollParent[0]!==this.document[0]&&"HTML"!==this.scrollParent[0].tagName?(this.overflowOffset.top+this.scrollParent[0].offsetHeight-t.pageY<o.scrollSensitivity?this.scrollParent[0].scrollTop=r=this.scrollParent[0].scrollTop+o.scrollSpeed:t.pageY-this.overflowOffset.top<o.scrollSensitivity&&(this.scrollParent[0].scrollTop=r=this.scrollParent[0].scrollTop-o.scrollSpeed),this.overflowOffset.left+this.scrollParent[0].offsetWidth-t.pageX<o.scrollSensitivity?this.scrollParent[0].scrollLeft=r=this.scrollParent[0].scrollLeft+o.scrollSpeed:t.pageX-this.overflowOffset.left<o.scrollSensitivity&&(this.scrollParent[0].scrollLeft=r=this.scrollParent[0].scrollLeft-o.scrollSpeed)):(t.pageY-this.document.scrollTop()<o.scrollSensitivity?r=this.document.scrollTop(this.document.scrollTop()-o.scrollSpeed):this.window.height()-(t.pageY-this.document.scrollTop())<o.scrollSensitivity&&(r=this.document.scrollTop(this.document.scrollTop()+o.scrollSpeed)),t.pageX-this.document.scrollLeft()<o.scrollSensitivity?r=this.document.scrollLeft(this.document.scrollLeft()-o.scrollSpeed):this.window.width()-(t.pageX-this.document.scrollLeft())<o.scrollSensitivity&&(r=this.document.scrollLeft(this.document.scrollLeft()+o.scrollSpeed))),r!==!1&&e.ui.ddmanager&&!o.dropBehaviour&&e.ui.ddmanager.prepareOffsets(this,t)),this.positionAbs=this._convertPositionTo("absolute"),this.options.axis&&"y"===this.options.axis||(this.helper[0].style.left=this.position.left+"px"),this.options.axis&&"x"===this.options.axis||(this.helper[0].style.top=this.position.top+"px"),i=this.items.length-1;i>=0;i--)if(s=this.items[i],n=s.item[0],a=this._intersectsWithPointer(s),a&&s.instance===this.currentContainer&&n!==this.currentItem[0]&&this.placeholder[1===a?"next":"prev"]()[0]!==n&&!e.contains(this.placeholder[0],n)&&("semi-dynamic"===this.options.type?!e.contains(this.element[0],n):!0)){if(this.direction=1===a?"down":"up","pointer"!==this.options.tolerance&&!this._intersectsWithSides(s))break;this._rearrange(t,s),this._trigger("change",t,this._uiHash());break}return this._contactContainers(t),e.ui.ddmanager&&e.ui.ddmanager.drag(this,t),this._trigger("sort",t,this._uiHash()),this.lastPositionAbs=this.positionAbs,!1},_mouseStop:function(t,i){if(t){if(e.ui.ddmanager&&!this.options.dropBehaviour&&e.ui.ddmanager.drop(this,t),this.options.revert){var s=this,n=this.placeholder.offset(),a=this.options.axis,o={};a&&"x"!==a||(o.left=n.left-this.offset.parent.left-this.margins.left+(this.offsetParent[0]===this.document[0].body?0:this.offsetParent[0].scrollLeft)),a&&"y"!==a||(o.top=n.top-this.offset.parent.top-this.margins.top+(this.offsetParent[0]===this.document[0].body?0:this.offsetParent[0].scrollTop)),this.reverting=!0,e(this.helper).animate(o,parseInt(this.options.revert,10)||500,function(){s._clear(t)})}else this._clear(t,i);return!1}},cancel:function(){if(this.dragging){this._mouseUp({target:null}),"original"===this.options.helper?this.currentItem.css(this._storedCSS).removeClass("ui-sortable-helper"):this.currentItem.show();for(var t=this.containers.length-1;t>=0;t--)this.containers[t]._trigger("deactivate",null,this._uiHash(this)),this.containers[t].containerCache.over&&(this.containers[t]._trigger("out",null,this._uiHash(this)),this.containers[t].containerCache.over=0)}return this.placeholder&&(this.placeholder[0].parentNode&&this.placeholder[0].parentNode.removeChild(this.placeholder[0]),"original"!==this.options.helper&&this.helper&&this.helper[0].parentNode&&this.helper.remove(),e.extend(this,{helper:null,dragging:!1,reverting:!1,_noFinalSort:null}),this.domPosition.prev?e(this.domPosition.prev).after(this.currentItem):e(this.domPosition.parent).prepend(this.currentItem)),this},serialize:function(t){var i=this._getItemsAsjQuery(t&&t.connected),s=[];return t=t||{},e(i).each(function(){var i=(e(t.item||this).attr(t.attribute||"id")||"").match(t.expression||/(.+)[\-=_](.+)/);i&&s.push((t.key||i[1]+"[]")+"="+(t.key&&t.expression?i[1]:i[2]))}),!s.length&&t.key&&s.push(t.key+"="),s.join("&")},toArray:function(t){var i=this._getItemsAsjQuery(t&&t.connected),s=[];return t=t||{},i.each(function(){s.push(e(t.item||this).attr(t.attribute||"id")||"")}),s},_intersectsWith:function(e){var t=this.positionAbs.left,i=t+this.helperProportions.width,s=this.positionAbs.top,n=s+this.helperProportions.height,a=e.left,o=a+e.width,r=e.top,h=r+e.height,l=this.offset.click.top,u=this.offset.click.left,d="x"===this.options.axis||s+l>r&&h>s+l,c="y"===this.options.axis||t+u>a&&o>t+u,p=d&&c;return"pointer"===this.options.tolerance||this.options.forcePointerForContainers||"pointer"!==this.options.tolerance&&this.helperProportions[this.floating?"width":"height"]>e[this.floating?"width":"height"]?p:t+this.helperProportions.width/2>a&&o>i-this.helperProportions.width/2&&s+this.helperProportions.height/2>r&&h>n-this.helperProportions.height/2},_intersectsWithPointer:function(e){var t="x"===this.options.axis||this._isOverAxis(this.positionAbs.top+this.offset.click.top,e.top,e.height),i="y"===this.options.axis||this._isOverAxis(this.positionAbs.left+this.offset.click.left,e.left,e.width),s=t&&i,n=this._getDragVerticalDirection(),a=this._getDragHorizontalDirection();return s?this.floating?a&&"right"===a||"down"===n?2:1:n&&("down"===n?2:1):!1},_intersectsWithSides:function(e){var t=this._isOverAxis(this.positionAbs.top+this.offset.click.top,e.top+e.height/2,e.height),i=this._isOverAxis(this.positionAbs.left+this.offset.click.left,e.left+e.width/2,e.width),s=this._getDragVerticalDirection(),n=this._getDragHorizontalDirection();return this.floating&&n?"right"===n&&i||"left"===n&&!i:s&&("down"===s&&t||"up"===s&&!t)},_getDragVerticalDirection:function(){var e=this.positionAbs.top-this.lastPositionAbs.top;return 0!==e&&(e>0?"down":"up")},_getDragHorizontalDirection:function(){var e=this.positionAbs.left-this.lastPositionAbs.left;return 0!==e&&(e>0?"right":"left")},refresh:function(e){return this._refreshItems(e),this._setHandleClassName(),this.refreshPositions(),this},_connectWith:function(){var e=this.options;return e.connectWith.constructor===String?[e.connectWith]:e.connectWith},_getItemsAsjQuery:function(t){function i(){r.push(this)}var s,n,a,o,r=[],h=[],l=this._connectWith();if(l&&t)for(s=l.length-1;s>=0;s--)for(a=e(l[s],this.document[0]),n=a.length-1;n>=0;n--)o=e.data(a[n],this.widgetFullName),o&&o!==this&&!o.options.disabled&&h.push([e.isFunction(o.options.items)?o.options.items.call(o.element):e(o.options.items,o.element).not(".ui-sortable-helper").not(".ui-sortable-placeholder"),o]);for(h.push([e.isFunction(this.options.items)?this.options.items.call(this.element,null,{options:this.options,item:this.currentItem}):e(this.options.items,this.element).not(".ui-sortable-helper").not(".ui-sortable-placeholder"),this]),s=h.length-1;s>=0;s--)h[s][0].each(i);return e(r)},_removeCurrentsFromItems:function(){var t=this.currentItem.find(":data("+this.widgetName+"-item)");this.items=e.grep(this.items,function(e){for(var i=0;t.length>i;i++)if(t[i]===e.item[0])return!1;return!0})},_refreshItems:function(t){this.items=[],this.containers=[this];var i,s,n,a,o,r,h,l,u=this.items,d=[[e.isFunction(this.options.items)?this.options.items.call(this.element[0],t,{item:this.currentItem}):e(this.options.items,this.element),this]],c=this._connectWith();if(c&&this.ready)for(i=c.length-1;i>=0;i--)for(n=e(c[i],this.document[0]),s=n.length-1;s>=0;s--)a=e.data(n[s],this.widgetFullName),a&&a!==this&&!a.options.disabled&&(d.push([e.isFunction(a.options.items)?a.options.items.call(a.element[0],t,{item:this.currentItem}):e(a.options.items,a.element),a]),this.containers.push(a));for(i=d.length-1;i>=0;i--)for(o=d[i][1],r=d[i][0],s=0,l=r.length;l>s;s++)h=e(r[s]),h.data(this.widgetName+"-item",o),u.push({item:h,instance:o,width:0,height:0,left:0,top:0})},refreshPositions:function(t){this.floating=this.items.length?"x"===this.options.axis||this._isFloating(this.items[0].item):!1,this.offsetParent&&this.helper&&(this.offset.parent=this._getParentOffset());var i,s,n,a;for(i=this.items.length-1;i>=0;i--)s=this.items[i],s.instance!==this.currentContainer&&this.currentContainer&&s.item[0]!==this.currentItem[0]||(n=this.options.toleranceElement?e(this.options.toleranceElement,s.item):s.item,t||(s.width=n.outerWidth(),s.height=n.outerHeight()),a=n.offset(),s.left=a.left,s.top=a.top);if(this.options.custom&&this.options.custom.refreshContainers)this.options.custom.refreshContainers.call(this);else for(i=this.containers.length-1;i>=0;i--)a=this.containers[i].element.offset(),this.containers[i].containerCache.left=a.left,this.containers[i].containerCache.top=a.top,this.containers[i].containerCache.width=this.containers[i].element.outerWidth(),this.containers[i].containerCache.height=this.containers[i].element.outerHeight();return this},_createPlaceholder:function(t){t=t||this;var i,s=t.options;s.placeholder&&s.placeholder.constructor!==String||(i=s.placeholder,s.placeholder={element:function(){var s=t.currentItem[0].nodeName.toLowerCase(),n=e("<"+s+">",t.document[0]).addClass(i||t.currentItem[0].className+" ui-sortable-placeholder").removeClass("ui-sortable-helper");return"tbody"===s?t._createTrPlaceholder(t.currentItem.find("tr").eq(0),e("<tr>",t.document[0]).appendTo(n)):"tr"===s?t._createTrPlaceholder(t.currentItem,n):"img"===s&&n.attr("src",t.currentItem.attr("src")),i||n.css("visibility","hidden"),n},update:function(e,n){(!i||s.forcePlaceholderSize)&&(n.height()||n.height(t.currentItem.innerHeight()-parseInt(t.currentItem.css("paddingTop")||0,10)-parseInt(t.currentItem.css("paddingBottom")||0,10)),n.width()||n.width(t.currentItem.innerWidth()-parseInt(t.currentItem.css("paddingLeft")||0,10)-parseInt(t.currentItem.css("paddingRight")||0,10)))}}),t.placeholder=e(s.placeholder.element.call(t.element,t.currentItem)),t.currentItem.after(t.placeholder),s.placeholder.update(t,t.placeholder)},_createTrPlaceholder:function(t,i){var s=this;t.children().each(function(){e("<td>&#160;</td>",s.document[0]).attr("colspan",e(this).attr("colspan")||1).appendTo(i)})},_contactContainers:function(t){var i,s,n,a,o,r,h,l,u,d,c=null,p=null;for(i=this.containers.length-1;i>=0;i--)if(!e.contains(this.currentItem[0],this.containers[i].element[0]))if(this._intersectsWith(this.containers[i].containerCache)){if(c&&e.contains(this.containers[i].element[0],c.element[0]))continue;c=this.containers[i],p=i}else this.containers[i].containerCache.over&&(this.containers[i]._trigger("out",t,this._uiHash(this)),this.containers[i].containerCache.over=0);if(c)if(1===this.containers.length)this.containers[p].containerCache.over||(this.containers[p]._trigger("over",t,this._uiHash(this)),this.containers[p].containerCache.over=1);else{for(n=1e4,a=null,u=c.floating||this._isFloating(this.currentItem),o=u?"left":"top",r=u?"width":"height",d=u?"clientX":"clientY",s=this.items.length-1;s>=0;s--)e.contains(this.containers[p].element[0],this.items[s].item[0])&&this.items[s].item[0]!==this.currentItem[0]&&(h=this.items[s].item.offset()[o],l=!1,t[d]-h>this.items[s][r]/2&&(l=!0),n>Math.abs(t[d]-h)&&(n=Math.abs(t[d]-h),a=this.items[s],this.direction=l?"up":"down"));if(!a&&!this.options.dropOnEmpty)return;if(this.currentContainer===this.containers[p])return this.currentContainer.containerCache.over||(this.containers[p]._trigger("over",t,this._uiHash()),this.currentContainer.containerCache.over=1),void 0;a?this._rearrange(t,a,null,!0):this._rearrange(t,null,this.containers[p].element,!0),this._trigger("change",t,this._uiHash()),this.containers[p]._trigger("change",t,this._uiHash(this)),this.currentContainer=this.containers[p],this.options.placeholder.update(this.currentContainer,this.placeholder),this.containers[p]._trigger("over",t,this._uiHash(this)),this.containers[p].containerCache.over=1}},_createHelper:function(t){var i=this.options,s=e.isFunction(i.helper)?e(i.helper.apply(this.element[0],[t,this.currentItem])):"clone"===i.helper?this.currentItem.clone():this.currentItem;return s.parents("body").length||e("parent"!==i.appendTo?i.appendTo:this.currentItem[0].parentNode)[0].appendChild(s[0]),s[0]===this.currentItem[0]&&(this._storedCSS={width:this.currentItem[0].style.width,height:this.currentItem[0].style.height,position:this.currentItem.css("position"),top:this.currentItem.css("top"),left:this.currentItem.css("left")}),(!s[0].style.width||i.forceHelperSize)&&s.width(this.currentItem.width()),(!s[0].style.height||i.forceHelperSize)&&s.height(this.currentItem.height()),s},_adjustOffsetFromHelper:function(t){"string"==typeof t&&(t=t.split(" ")),e.isArray(t)&&(t={left:+t[0],top:+t[1]||0}),"left"in t&&(this.offset.click.left=t.left+this.margins.left),"right"in t&&(this.offset.click.left=this.helperProportions.width-t.right+this.margins.left),"top"in t&&(this.offset.click.top=t.top+this.margins.top),"bottom"in t&&(this.offset.click.top=this.helperProportions.height-t.bottom+this.margins.top)},_getParentOffset:function(){this.offsetParent=this.helper.offsetParent();var t=this.offsetParent.offset();return"absolute"===this.cssPosition&&this.scrollParent[0]!==this.document[0]&&e.contains(this.scrollParent[0],this.offsetParent[0])&&(t.left+=this.scrollParent.scrollLeft(),t.top+=this.scrollParent.scrollTop()),(this.offsetParent[0]===this.document[0].body||this.offsetParent[0].tagName&&"html"===this.offsetParent[0].tagName.toLowerCase()&&e.ui.ie)&&(t={top:0,left:0}),{top:t.top+(parseInt(this.offsetParent.css("borderTopWidth"),10)||0),left:t.left+(parseInt(this.offsetParent.css("borderLeftWidth"),10)||0)}},_getRelativeOffset:function(){if("relative"===this.cssPosition){var e=this.currentItem.position();return{top:e.top-(parseInt(this.helper.css("top"),10)||0)+this.scrollParent.scrollTop(),left:e.left-(parseInt(this.helper.css("left"),10)||0)+this.scrollParent.scrollLeft()}}return{top:0,left:0}},_cacheMargins:function(){this.margins={left:parseInt(this.currentItem.css("marginLeft"),10)||0,top:parseInt(this.currentItem.css("marginTop"),10)||0}},_cacheHelperProportions:function(){this.helperProportions={width:this.helper.outerWidth(),height:this.helper.outerHeight()}},_setContainment:function(){var t,i,s,n=this.options;"parent"===n.containment&&(n.containment=this.helper[0].parentNode),("document"===n.containment||"window"===n.containment)&&(this.containment=[0-this.offset.relative.left-this.offset.parent.left,0-this.offset.relative.top-this.offset.parent.top,"document"===n.containment?this.document.width():this.window.width()-this.helperProportions.width-this.margins.left,("document"===n.containment?this.document.width():this.window.height()||this.document[0].body.parentNode.scrollHeight)-this.helperProportions.height-this.margins.top]),/^(document|window|parent)$/.test(n.containment)||(t=e(n.containment)[0],i=e(n.containment).offset(),s="hidden"!==e(t).css("overflow"),this.containment=[i.left+(parseInt(e(t).css("borderLeftWidth"),10)||0)+(parseInt(e(t).css("paddingLeft"),10)||0)-this.margins.left,i.top+(parseInt(e(t).css("borderTopWidth"),10)||0)+(parseInt(e(t).css("paddingTop"),10)||0)-this.margins.top,i.left+(s?Math.max(t.scrollWidth,t.offsetWidth):t.offsetWidth)-(parseInt(e(t).css("borderLeftWidth"),10)||0)-(parseInt(e(t).css("paddingRight"),10)||0)-this.helperProportions.width-this.margins.left,i.top+(s?Math.max(t.scrollHeight,t.offsetHeight):t.offsetHeight)-(parseInt(e(t).css("borderTopWidth"),10)||0)-(parseInt(e(t).css("paddingBottom"),10)||0)-this.helperProportions.height-this.margins.top])},_convertPositionTo:function(t,i){i||(i=this.position);var s="absolute"===t?1:-1,n="absolute"!==this.cssPosition||this.scrollParent[0]!==this.document[0]&&e.contains(this.scrollParent[0],this.offsetParent[0])?this.scrollParent:this.offsetParent,a=/(html|body)/i.test(n[0].tagName);return{top:i.top+this.offset.relative.top*s+this.offset.parent.top*s-("fixed"===this.cssPosition?-this.scrollParent.scrollTop():a?0:n.scrollTop())*s,left:i.left+this.offset.relative.left*s+this.offset.parent.left*s-("fixed"===this.cssPosition?-this.scrollParent.scrollLeft():a?0:n.scrollLeft())*s}},_generatePosition:function(t){var i,s,n=this.options,a=t.pageX,o=t.pageY,r="absolute"!==this.cssPosition||this.scrollParent[0]!==this.document[0]&&e.contains(this.scrollParent[0],this.offsetParent[0])?this.scrollParent:this.offsetParent,h=/(html|body)/i.test(r[0].tagName);return"relative"!==this.cssPosition||this.scrollParent[0]!==this.document[0]&&this.scrollParent[0]!==this.offsetParent[0]||(this.offset.relative=this._getRelativeOffset()),this.originalPosition&&(this.containment&&(t.pageX-this.offset.click.left<this.containment[0]&&(a=this.containment[0]+this.offset.click.left),t.pageY-this.offset.click.top<this.containment[1]&&(o=this.containment[1]+this.offset.click.top),t.pageX-this.offset.click.left>this.containment[2]&&(a=this.containment[2]+this.offset.click.left),t.pageY-this.offset.click.top>this.containment[3]&&(o=this.containment[3]+this.offset.click.top)),n.grid&&(i=this.originalPageY+Math.round((o-this.originalPageY)/n.grid[1])*n.grid[1],o=this.containment?i-this.offset.click.top>=this.containment[1]&&i-this.offset.click.top<=this.containment[3]?i:i-this.offset.click.top>=this.containment[1]?i-n.grid[1]:i+n.grid[1]:i,s=this.originalPageX+Math.round((a-this.originalPageX)/n.grid[0])*n.grid[0],a=this.containment?s-this.offset.click.left>=this.containment[0]&&s-this.offset.click.left<=this.containment[2]?s:s-this.offset.click.left>=this.containment[0]?s-n.grid[0]:s+n.grid[0]:s)),{top:o-this.offset.click.top-this.offset.relative.top-this.offset.parent.top+("fixed"===this.cssPosition?-this.scrollParent.scrollTop():h?0:r.scrollTop()),left:a-this.offset.click.left-this.offset.relative.left-this.offset.parent.left+("fixed"===this.cssPosition?-this.scrollParent.scrollLeft():h?0:r.scrollLeft())}},_rearrange:function(e,t,i,s){i?i[0].appendChild(this.placeholder[0]):t.item[0].parentNode.insertBefore(this.placeholder[0],"down"===this.direction?t.item[0]:t.item[0].nextSibling),this.counter=this.counter?++this.counter:1;var n=this.counter;this._delay(function(){n===this.counter&&this.refreshPositions(!s)})},_clear:function(e,t){function i(e,t,i){return function(s){i._trigger(e,s,t._uiHash(t))}}this.reverting=!1;var s,n=[];if(!this._noFinalSort&&this.currentItem.parent().length&&this.placeholder.before(this.currentItem),this._noFinalSort=null,this.helper[0]===this.currentItem[0]){for(s in this._storedCSS)("auto"===this._storedCSS[s]||"static"===this._storedCSS[s])&&(this._storedCSS[s]="");this.currentItem.css(this._storedCSS).removeClass("ui-sortable-helper")}else this.currentItem.show();for(this.fromOutside&&!t&&n.push(function(e){this._trigger("receive",e,this._uiHash(this.fromOutside))}),!this.fromOutside&&this.domPosition.prev===this.currentItem.prev().not(".ui-sortable-helper")[0]&&this.domPosition.parent===this.currentItem.parent()[0]||t||n.push(function(e){this._trigger("update",e,this._uiHash())}),this!==this.currentContainer&&(t||(n.push(function(e){this._trigger("remove",e,this._uiHash())}),n.push(function(e){return function(t){e._trigger("receive",t,this._uiHash(this))}}.call(this,this.currentContainer)),n.push(function(e){return function(t){e._trigger("update",t,this._uiHash(this))}}.call(this,this.currentContainer)))),s=this.containers.length-1;s>=0;s--)t||n.push(i("deactivate",this,this.containers[s])),this.containers[s].containerCache.over&&(n.push(i("out",this,this.containers[s])),this.containers[s].containerCache.over=0);if(this.storedCursor&&(this.document.find("body").css("cursor",this.storedCursor),this.storedStylesheet.remove()),this._storedOpacity&&this.helper.css("opacity",this._storedOpacity),this._storedZIndex&&this.helper.css("zIndex","auto"===this._storedZIndex?"":this._storedZIndex),this.dragging=!1,t||this._trigger("beforeStop",e,this._uiHash()),this.placeholder[0].parentNode.removeChild(this.placeholder[0]),this.cancelHelperRemoval||(this.helper[0]!==this.currentItem[0]&&this.helper.remove(),this.helper=null),!t){for(s=0;n.length>s;s++)n[s].call(this,e);this._trigger("stop",e,this._uiHash())}return this.fromOutside=!1,!this.cancelHelperRemoval},_trigger:function(){e.Widget.prototype._trigger.apply(this,arguments)===!1&&this.cancel()},_uiHash:function(t){var i=t||this;return{helper:i.helper,placeholder:i.placeholder||e([]),position:i.position,originalPosition:i.originalPosition,offset:i.positionAbs,item:i.currentItem,sender:t?t.element:null}}}),e.widget("ui.spinner",{version:"1.11.4",defaultElement:"<input>",widgetEventPrefix:"spin",options:{culture:null,icons:{down:"ui-icon-triangle-1-s",up:"ui-icon-triangle-1-n"},incremental:!0,max:null,min:null,numberFormat:null,page:10,step:1,change:null,spin:null,start:null,stop:null},_create:function(){this._setOption("max",this.options.max),this._setOption("min",this.options.min),this._setOption("step",this.options.step),""!==this.value()&&this._value(this.element.val(),!0),this._draw(),this._on(this._events),this._refresh(),this._on(this.window,{beforeunload:function(){this.element.removeAttr("autocomplete")}})},_getCreateOptions:function(){var t={},i=this.element;return e.each(["min","max","step"],function(e,s){var n=i.attr(s);void 0!==n&&n.length&&(t[s]=n)}),t},_events:{keydown:function(e){this._start(e)&&this._keydown(e)&&e.preventDefault()},keyup:"_stop",focus:function(){this.previous=this.element.val()},blur:function(e){return this.cancelBlur?(delete this.cancelBlur,void 0):(this._stop(),this._refresh(),this.previous!==this.element.val()&&this._trigger("change",e),void 0)},mousewheel:function(e,t){if(t){if(!this.spinning&&!this._start(e))return!1;this._spin((t>0?1:-1)*this.options.step,e),clearTimeout(this.mousewheelTimer),this.mousewheelTimer=this._delay(function(){this.spinning&&this._stop(e)},100),e.preventDefault()}},"mousedown .ui-spinner-button":function(t){function i(){var e=this.element[0]===this.document[0].activeElement;e||(this.element.focus(),this.previous=s,this._delay(function(){this.previous=s}))}var s;s=this.element[0]===this.document[0].activeElement?this.previous:this.element.val(),t.preventDefault(),i.call(this),this.cancelBlur=!0,this._delay(function(){delete this.cancelBlur,i.call(this)}),this._start(t)!==!1&&this._repeat(null,e(t.currentTarget).hasClass("ui-spinner-up")?1:-1,t)},"mouseup .ui-spinner-button":"_stop","mouseenter .ui-spinner-button":function(t){return e(t.currentTarget).hasClass("ui-state-active")?this._start(t)===!1?!1:(this._repeat(null,e(t.currentTarget).hasClass("ui-spinner-up")?1:-1,t),void 0):void 0},"mouseleave .ui-spinner-button":"_stop"},_draw:function(){var e=this.uiSpinner=this.element.addClass("ui-spinner-input").attr("autocomplete","off").wrap(this._uiSpinnerHtml()).parent().append(this._buttonHtml());this.element.attr("role","spinbutton"),this.buttons=e.find(".ui-spinner-button").attr("tabIndex",-1).button().removeClass("ui-corner-all"),this.buttons.height()>Math.ceil(.5*e.height())&&e.height()>0&&e.height(e.height()),this.options.disabled&&this.disable()},_keydown:function(t){var i=this.options,s=e.ui.keyCode;switch(t.keyCode){case s.UP:return this._repeat(null,1,t),!0;case s.DOWN:return this._repeat(null,-1,t),!0;case s.PAGE_UP:return this._repeat(null,i.page,t),!0;case s.PAGE_DOWN:return this._repeat(null,-i.page,t),!0}return!1},_uiSpinnerHtml:function(){return"<span class='ui-spinner ui-widget ui-widget-content ui-corner-all'></span>"},_buttonHtml:function(){return"<a class='ui-spinner-button ui-spinner-up ui-corner-tr'><span class='ui-icon "+this.options.icons.up+"'>&#9650;</span>"+"</a>"+"<a class='ui-spinner-button ui-spinner-down ui-corner-br'>"+"<span class='ui-icon "+this.options.icons.down+"'>&#9660;</span>"+"</a>"},_start:function(e){return this.spinning||this._trigger("start",e)!==!1?(this.counter||(this.counter=1),this.spinning=!0,!0):!1},_repeat:function(e,t,i){e=e||500,clearTimeout(this.timer),this.timer=this._delay(function(){this._repeat(40,t,i)},e),this._spin(t*this.options.step,i)},_spin:function(e,t){var i=this.value()||0;this.counter||(this.counter=1),i=this._adjustValue(i+e*this._increment(this.counter)),this.spinning&&this._trigger("spin",t,{value:i})===!1||(this._value(i),this.counter++)},_increment:function(t){var i=this.options.incremental;return i?e.isFunction(i)?i(t):Math.floor(t*t*t/5e4-t*t/500+17*t/200+1):1},_precision:function(){var e=this._precisionOf(this.options.step);return null!==this.options.min&&(e=Math.max(e,this._precisionOf(this.options.min))),e},_precisionOf:function(e){var t=""+e,i=t.indexOf(".");return-1===i?0:t.length-i-1},_adjustValue:function(e){var t,i,s=this.options;return t=null!==s.min?s.min:0,i=e-t,i=Math.round(i/s.step)*s.step,e=t+i,e=parseFloat(e.toFixed(this._precision())),null!==s.max&&e>s.max?s.max:null!==s.min&&s.min>e?s.min:e},_stop:function(e){this.spinning&&(clearTimeout(this.timer),clearTimeout(this.mousewheelTimer),this.counter=0,this.spinning=!1,this._trigger("stop",e))},_setOption:function(e,t){if("culture"===e||"numberFormat"===e){var i=this._parse(this.element.val());return this.options[e]=t,this.element.val(this._format(i)),void 0}("max"===e||"min"===e||"step"===e)&&"string"==typeof t&&(t=this._parse(t)),"icons"===e&&(this.buttons.first().find(".ui-icon").removeClass(this.options.icons.up).addClass(t.up),this.buttons.last().find(".ui-icon").removeClass(this.options.icons.down).addClass(t.down)),this._super(e,t),"disabled"===e&&(this.widget().toggleClass("ui-state-disabled",!!t),this.element.prop("disabled",!!t),this.buttons.button(t?"disable":"enable"))},_setOptions:h(function(e){this._super(e)}),_parse:function(e){return"string"==typeof e&&""!==e&&(e=window.Globalize&&this.options.numberFormat?Globalize.parseFloat(e,10,this.options.culture):+e),""===e||isNaN(e)?null:e},_format:function(e){return""===e?"":window.Globalize&&this.options.numberFormat?Globalize.format(e,this.options.numberFormat,this.options.culture):e},_refresh:function(){this.element.attr({"aria-valuemin":this.options.min,"aria-valuemax":this.options.max,"aria-valuenow":this._parse(this.element.val())})},isValid:function(){var e=this.value();return null===e?!1:e===this._adjustValue(e)},_value:function(e,t){var i;""!==e&&(i=this._parse(e),null!==i&&(t||(i=this._adjustValue(i)),e=this._format(i))),this.element.val(e),this._refresh()},_destroy:function(){this.element.removeClass("ui-spinner-input").prop("disabled",!1).removeAttr("autocomplete").removeAttr("role").removeAttr("aria-valuemin").removeAttr("aria-valuemax").removeAttr("aria-valuenow"),this.uiSpinner.replaceWith(this.element)},stepUp:h(function(e){this._stepUp(e)}),_stepUp:function(e){this._start()&&(this._spin((e||1)*this.options.step),this._stop())},stepDown:h(function(e){this._stepDown(e)}),_stepDown:function(e){this._start()&&(this._spin((e||1)*-this.options.step),this._stop())},pageUp:h(function(e){this._stepUp((e||1)*this.options.page)}),pageDown:h(function(e){this._stepDown((e||1)*this.options.page)}),value:function(e){return arguments.length?(h(this._value).call(this,e),void 0):this._parse(this.element.val())},widget:function(){return this.uiSpinner}}),e.widget("ui.tabs",{version:"1.11.4",delay:300,options:{active:null,collapsible:!1,event:"click",heightStyle:"content",hide:null,show:null,activate:null,beforeActivate:null,beforeLoad:null,load:null},_isLocal:function(){var e=/#.*$/;return function(t){var i,s;t=t.cloneNode(!1),i=t.href.replace(e,""),s=location.href.replace(e,"");try{i=decodeURIComponent(i)}catch(n){}try{s=decodeURIComponent(s)}catch(n){}return t.hash.length>1&&i===s}}(),_create:function(){var t=this,i=this.options;this.running=!1,this.element.addClass("ui-tabs ui-widget ui-widget-content ui-corner-all").toggleClass("ui-tabs-collapsible",i.collapsible),this._processTabs(),i.active=this._initialActive(),e.isArray(i.disabled)&&(i.disabled=e.unique(i.disabled.concat(e.map(this.tabs.filter(".ui-state-disabled"),function(e){return t.tabs.index(e)}))).sort()),this.active=this.options.active!==!1&&this.anchors.length?this._findActive(i.active):e(),this._refresh(),this.active.length&&this.load(i.active)},_initialActive:function(){var t=this.options.active,i=this.options.collapsible,s=location.hash.substring(1);return null===t&&(s&&this.tabs.each(function(i,n){return e(n).attr("aria-controls")===s?(t=i,!1):void 0}),null===t&&(t=this.tabs.index(this.tabs.filter(".ui-tabs-active"))),(null===t||-1===t)&&(t=this.tabs.length?0:!1)),t!==!1&&(t=this.tabs.index(this.tabs.eq(t)),-1===t&&(t=i?!1:0)),!i&&t===!1&&this.anchors.length&&(t=0),t},_getCreateEventData:function(){return{tab:this.active,panel:this.active.length?this._getPanelForTab(this.active):e()}},_tabKeydown:function(t){var i=e(this.document[0].activeElement).closest("li"),s=this.tabs.index(i),n=!0;if(!this._handlePageNav(t)){switch(t.keyCode){case e.ui.keyCode.RIGHT:case e.ui.keyCode.DOWN:s++;break;case e.ui.keyCode.UP:case e.ui.keyCode.LEFT:n=!1,s--;break;case e.ui.keyCode.END:s=this.anchors.length-1;break;case e.ui.keyCode.HOME:s=0;break;case e.ui.keyCode.SPACE:return t.preventDefault(),clearTimeout(this.activating),this._activate(s),void 0;case e.ui.keyCode.ENTER:return t.preventDefault(),clearTimeout(this.activating),this._activate(s===this.options.active?!1:s),void 0;default:return}t.preventDefault(),clearTimeout(this.activating),s=this._focusNextTab(s,n),t.ctrlKey||t.metaKey||(i.attr("aria-selected","false"),this.tabs.eq(s).attr("aria-selected","true"),this.activating=this._delay(function(){this.option("active",s)},this.delay))}},_panelKeydown:function(t){this._handlePageNav(t)||t.ctrlKey&&t.keyCode===e.ui.keyCode.UP&&(t.preventDefault(),this.active.focus())},_handlePageNav:function(t){return t.altKey&&t.keyCode===e.ui.keyCode.PAGE_UP?(this._activate(this._focusNextTab(this.options.active-1,!1)),!0):t.altKey&&t.keyCode===e.ui.keyCode.PAGE_DOWN?(this._activate(this._focusNextTab(this.options.active+1,!0)),!0):void 0},_findNextTab:function(t,i){function s(){return t>n&&(t=0),0>t&&(t=n),t}for(var n=this.tabs.length-1;-1!==e.inArray(s(),this.options.disabled);)t=i?t+1:t-1;return t},_focusNextTab:function(e,t){return e=this._findNextTab(e,t),this.tabs.eq(e).focus(),e},_setOption:function(e,t){return"active"===e?(this._activate(t),void 0):"disabled"===e?(this._setupDisabled(t),void 0):(this._super(e,t),"collapsible"===e&&(this.element.toggleClass("ui-tabs-collapsible",t),t||this.options.active!==!1||this._activate(0)),"event"===e&&this._setupEvents(t),"heightStyle"===e&&this._setupHeightStyle(t),void 0)},_sanitizeSelector:function(e){return e?e.replace(/[!"$%&'()*+,.\/:;<=>?@\[\]\^`{|}~]/g,"\\$&"):""},refresh:function(){var t=this.options,i=this.tablist.children(":has(a[href])");t.disabled=e.map(i.filter(".ui-state-disabled"),function(e){return i.index(e)}),this._processTabs(),t.active!==!1&&this.anchors.length?this.active.length&&!e.contains(this.tablist[0],this.active[0])?this.tabs.length===t.disabled.length?(t.active=!1,this.active=e()):this._activate(this._findNextTab(Math.max(0,t.active-1),!1)):t.active=this.tabs.index(this.active):(t.active=!1,this.active=e()),this._refresh()},_refresh:function(){this._setupDisabled(this.options.disabled),this._setupEvents(this.options.event),this._setupHeightStyle(this.options.heightStyle),this.tabs.not(this.active).attr({"aria-selected":"false","aria-expanded":"false",tabIndex:-1}),this.panels.not(this._getPanelForTab(this.active)).hide().attr({"aria-hidden":"true"}),this.active.length?(this.active.addClass("ui-tabs-active ui-state-active").attr({"aria-selected":"true","aria-expanded":"true",tabIndex:0}),this._getPanelForTab(this.active).show().attr({"aria-hidden":"false"})):this.tabs.eq(0).attr("tabIndex",0)},_processTabs:function(){var t=this,i=this.tabs,s=this.anchors,n=this.panels; -this.tablist=this._getList().addClass("ui-tabs-nav ui-helper-reset ui-helper-clearfix ui-widget-header ui-corner-all").attr("role","tablist").delegate("> li","mousedown"+this.eventNamespace,function(t){e(this).is(".ui-state-disabled")&&t.preventDefault()}).delegate(".ui-tabs-anchor","focus"+this.eventNamespace,function(){e(this).closest("li").is(".ui-state-disabled")&&this.blur()}),this.tabs=this.tablist.find("> li:has(a[href])").addClass("ui-state-default ui-corner-top").attr({role:"tab",tabIndex:-1}),this.anchors=this.tabs.map(function(){return e("a",this)[0]}).addClass("ui-tabs-anchor").attr({role:"presentation",tabIndex:-1}),this.panels=e(),this.anchors.each(function(i,s){var n,a,o,r=e(s).uniqueId().attr("id"),h=e(s).closest("li"),l=h.attr("aria-controls");t._isLocal(s)?(n=s.hash,o=n.substring(1),a=t.element.find(t._sanitizeSelector(n))):(o=h.attr("aria-controls")||e({}).uniqueId()[0].id,n="#"+o,a=t.element.find(n),a.length||(a=t._createPanel(o),a.insertAfter(t.panels[i-1]||t.tablist)),a.attr("aria-live","polite")),a.length&&(t.panels=t.panels.add(a)),l&&h.data("ui-tabs-aria-controls",l),h.attr({"aria-controls":o,"aria-labelledby":r}),a.attr("aria-labelledby",r)}),this.panels.addClass("ui-tabs-panel ui-widget-content ui-corner-bottom").attr("role","tabpanel"),i&&(this._off(i.not(this.tabs)),this._off(s.not(this.anchors)),this._off(n.not(this.panels)))},_getList:function(){return this.tablist||this.element.find("ol,ul").eq(0)},_createPanel:function(t){return e("<div>").attr("id",t).addClass("ui-tabs-panel ui-widget-content ui-corner-bottom").data("ui-tabs-destroy",!0)},_setupDisabled:function(t){e.isArray(t)&&(t.length?t.length===this.anchors.length&&(t=!0):t=!1);for(var i,s=0;i=this.tabs[s];s++)t===!0||-1!==e.inArray(s,t)?e(i).addClass("ui-state-disabled").attr("aria-disabled","true"):e(i).removeClass("ui-state-disabled").removeAttr("aria-disabled");this.options.disabled=t},_setupEvents:function(t){var i={};t&&e.each(t.split(" "),function(e,t){i[t]="_eventHandler"}),this._off(this.anchors.add(this.tabs).add(this.panels)),this._on(!0,this.anchors,{click:function(e){e.preventDefault()}}),this._on(this.anchors,i),this._on(this.tabs,{keydown:"_tabKeydown"}),this._on(this.panels,{keydown:"_panelKeydown"}),this._focusable(this.tabs),this._hoverable(this.tabs)},_setupHeightStyle:function(t){var i,s=this.element.parent();"fill"===t?(i=s.height(),i-=this.element.outerHeight()-this.element.height(),this.element.siblings(":visible").each(function(){var t=e(this),s=t.css("position");"absolute"!==s&&"fixed"!==s&&(i-=t.outerHeight(!0))}),this.element.children().not(this.panels).each(function(){i-=e(this).outerHeight(!0)}),this.panels.each(function(){e(this).height(Math.max(0,i-e(this).innerHeight()+e(this).height()))}).css("overflow","auto")):"auto"===t&&(i=0,this.panels.each(function(){i=Math.max(i,e(this).height("").height())}).height(i))},_eventHandler:function(t){var i=this.options,s=this.active,n=e(t.currentTarget),a=n.closest("li"),o=a[0]===s[0],r=o&&i.collapsible,h=r?e():this._getPanelForTab(a),l=s.length?this._getPanelForTab(s):e(),u={oldTab:s,oldPanel:l,newTab:r?e():a,newPanel:h};t.preventDefault(),a.hasClass("ui-state-disabled")||a.hasClass("ui-tabs-loading")||this.running||o&&!i.collapsible||this._trigger("beforeActivate",t,u)===!1||(i.active=r?!1:this.tabs.index(a),this.active=o?e():a,this.xhr&&this.xhr.abort(),l.length||h.length||e.error("jQuery UI Tabs: Mismatching fragment identifier."),h.length&&this.load(this.tabs.index(a),t),this._toggle(t,u))},_toggle:function(t,i){function s(){a.running=!1,a._trigger("activate",t,i)}function n(){i.newTab.closest("li").addClass("ui-tabs-active ui-state-active"),o.length&&a.options.show?a._show(o,a.options.show,s):(o.show(),s())}var a=this,o=i.newPanel,r=i.oldPanel;this.running=!0,r.length&&this.options.hide?this._hide(r,this.options.hide,function(){i.oldTab.closest("li").removeClass("ui-tabs-active ui-state-active"),n()}):(i.oldTab.closest("li").removeClass("ui-tabs-active ui-state-active"),r.hide(),n()),r.attr("aria-hidden","true"),i.oldTab.attr({"aria-selected":"false","aria-expanded":"false"}),o.length&&r.length?i.oldTab.attr("tabIndex",-1):o.length&&this.tabs.filter(function(){return 0===e(this).attr("tabIndex")}).attr("tabIndex",-1),o.attr("aria-hidden","false"),i.newTab.attr({"aria-selected":"true","aria-expanded":"true",tabIndex:0})},_activate:function(t){var i,s=this._findActive(t);s[0]!==this.active[0]&&(s.length||(s=this.active),i=s.find(".ui-tabs-anchor")[0],this._eventHandler({target:i,currentTarget:i,preventDefault:e.noop}))},_findActive:function(t){return t===!1?e():this.tabs.eq(t)},_getIndex:function(e){return"string"==typeof e&&(e=this.anchors.index(this.anchors.filter("[href$='"+e+"']"))),e},_destroy:function(){this.xhr&&this.xhr.abort(),this.element.removeClass("ui-tabs ui-widget ui-widget-content ui-corner-all ui-tabs-collapsible"),this.tablist.removeClass("ui-tabs-nav ui-helper-reset ui-helper-clearfix ui-widget-header ui-corner-all").removeAttr("role"),this.anchors.removeClass("ui-tabs-anchor").removeAttr("role").removeAttr("tabIndex").removeUniqueId(),this.tablist.unbind(this.eventNamespace),this.tabs.add(this.panels).each(function(){e.data(this,"ui-tabs-destroy")?e(this).remove():e(this).removeClass("ui-state-default ui-state-active ui-state-disabled ui-corner-top ui-corner-bottom ui-widget-content ui-tabs-active ui-tabs-panel").removeAttr("tabIndex").removeAttr("aria-live").removeAttr("aria-busy").removeAttr("aria-selected").removeAttr("aria-labelledby").removeAttr("aria-hidden").removeAttr("aria-expanded").removeAttr("role")}),this.tabs.each(function(){var t=e(this),i=t.data("ui-tabs-aria-controls");i?t.attr("aria-controls",i).removeData("ui-tabs-aria-controls"):t.removeAttr("aria-controls")}),this.panels.show(),"content"!==this.options.heightStyle&&this.panels.css("height","")},enable:function(t){var i=this.options.disabled;i!==!1&&(void 0===t?i=!1:(t=this._getIndex(t),i=e.isArray(i)?e.map(i,function(e){return e!==t?e:null}):e.map(this.tabs,function(e,i){return i!==t?i:null})),this._setupDisabled(i))},disable:function(t){var i=this.options.disabled;if(i!==!0){if(void 0===t)i=!0;else{if(t=this._getIndex(t),-1!==e.inArray(t,i))return;i=e.isArray(i)?e.merge([t],i).sort():[t]}this._setupDisabled(i)}},load:function(t,i){t=this._getIndex(t);var s=this,n=this.tabs.eq(t),a=n.find(".ui-tabs-anchor"),o=this._getPanelForTab(n),r={tab:n,panel:o},h=function(e,t){"abort"===t&&s.panels.stop(!1,!0),n.removeClass("ui-tabs-loading"),o.removeAttr("aria-busy"),e===s.xhr&&delete s.xhr};this._isLocal(a[0])||(this.xhr=e.ajax(this._ajaxSettings(a,i,r)),this.xhr&&"canceled"!==this.xhr.statusText&&(n.addClass("ui-tabs-loading"),o.attr("aria-busy","true"),this.xhr.done(function(e,t,n){setTimeout(function(){o.html(e),s._trigger("load",i,r),h(n,t)},1)}).fail(function(e,t){setTimeout(function(){h(e,t)},1)})))},_ajaxSettings:function(t,i,s){var n=this;return{url:t.attr("href"),beforeSend:function(t,a){return n._trigger("beforeLoad",i,e.extend({jqXHR:t,ajaxSettings:a},s))}}},_getPanelForTab:function(t){var i=e(t).attr("aria-controls");return this.element.find(this._sanitizeSelector("#"+i))}}),e.widget("ui.tooltip",{version:"1.11.4",options:{content:function(){var t=e(this).attr("title")||"";return e("<a>").text(t).html()},hide:!0,items:"[title]:not([disabled])",position:{my:"left top+15",at:"left bottom",collision:"flipfit flip"},show:!0,tooltipClass:null,track:!1,close:null,open:null},_addDescribedBy:function(t,i){var s=(t.attr("aria-describedby")||"").split(/\s+/);s.push(i),t.data("ui-tooltip-id",i).attr("aria-describedby",e.trim(s.join(" ")))},_removeDescribedBy:function(t){var i=t.data("ui-tooltip-id"),s=(t.attr("aria-describedby")||"").split(/\s+/),n=e.inArray(i,s);-1!==n&&s.splice(n,1),t.removeData("ui-tooltip-id"),s=e.trim(s.join(" ")),s?t.attr("aria-describedby",s):t.removeAttr("aria-describedby")},_create:function(){this._on({mouseover:"open",focusin:"open"}),this.tooltips={},this.parents={},this.options.disabled&&this._disable(),this.liveRegion=e("<div>").attr({role:"log","aria-live":"assertive","aria-relevant":"additions"}).addClass("ui-helper-hidden-accessible").appendTo(this.document[0].body)},_setOption:function(t,i){var s=this;return"disabled"===t?(this[i?"_disable":"_enable"](),this.options[t]=i,void 0):(this._super(t,i),"content"===t&&e.each(this.tooltips,function(e,t){s._updateContent(t.element)}),void 0)},_disable:function(){var t=this;e.each(this.tooltips,function(i,s){var n=e.Event("blur");n.target=n.currentTarget=s.element[0],t.close(n,!0)}),this.element.find(this.options.items).addBack().each(function(){var t=e(this);t.is("[title]")&&t.data("ui-tooltip-title",t.attr("title")).removeAttr("title")})},_enable:function(){this.element.find(this.options.items).addBack().each(function(){var t=e(this);t.data("ui-tooltip-title")&&t.attr("title",t.data("ui-tooltip-title"))})},open:function(t){var i=this,s=e(t?t.target:this.element).closest(this.options.items);s.length&&!s.data("ui-tooltip-id")&&(s.attr("title")&&s.data("ui-tooltip-title",s.attr("title")),s.data("ui-tooltip-open",!0),t&&"mouseover"===t.type&&s.parents().each(function(){var t,s=e(this);s.data("ui-tooltip-open")&&(t=e.Event("blur"),t.target=t.currentTarget=this,i.close(t,!0)),s.attr("title")&&(s.uniqueId(),i.parents[this.id]={element:this,title:s.attr("title")},s.attr("title",""))}),this._registerCloseHandlers(t,s),this._updateContent(s,t))},_updateContent:function(e,t){var i,s=this.options.content,n=this,a=t?t.type:null;return"string"==typeof s?this._open(t,e,s):(i=s.call(e[0],function(i){n._delay(function(){e.data("ui-tooltip-open")&&(t&&(t.type=a),this._open(t,e,i))})}),i&&this._open(t,e,i),void 0)},_open:function(t,i,s){function n(e){l.of=e,o.is(":hidden")||o.position(l)}var a,o,r,h,l=e.extend({},this.options.position);if(s){if(a=this._find(i))return a.tooltip.find(".ui-tooltip-content").html(s),void 0;i.is("[title]")&&(t&&"mouseover"===t.type?i.attr("title",""):i.removeAttr("title")),a=this._tooltip(i),o=a.tooltip,this._addDescribedBy(i,o.attr("id")),o.find(".ui-tooltip-content").html(s),this.liveRegion.children().hide(),s.clone?(h=s.clone(),h.removeAttr("id").find("[id]").removeAttr("id")):h=s,e("<div>").html(h).appendTo(this.liveRegion),this.options.track&&t&&/^mouse/.test(t.type)?(this._on(this.document,{mousemove:n}),n(t)):o.position(e.extend({of:i},this.options.position)),o.hide(),this._show(o,this.options.show),this.options.show&&this.options.show.delay&&(r=this.delayedShow=setInterval(function(){o.is(":visible")&&(n(l.of),clearInterval(r))},e.fx.interval)),this._trigger("open",t,{tooltip:o})}},_registerCloseHandlers:function(t,i){var s={keyup:function(t){if(t.keyCode===e.ui.keyCode.ESCAPE){var s=e.Event(t);s.currentTarget=i[0],this.close(s,!0)}}};i[0]!==this.element[0]&&(s.remove=function(){this._removeTooltip(this._find(i).tooltip)}),t&&"mouseover"!==t.type||(s.mouseleave="close"),t&&"focusin"!==t.type||(s.focusout="close"),this._on(!0,i,s)},close:function(t){var i,s=this,n=e(t?t.currentTarget:this.element),a=this._find(n);return a?(i=a.tooltip,a.closing||(clearInterval(this.delayedShow),n.data("ui-tooltip-title")&&!n.attr("title")&&n.attr("title",n.data("ui-tooltip-title")),this._removeDescribedBy(n),a.hiding=!0,i.stop(!0),this._hide(i,this.options.hide,function(){s._removeTooltip(e(this))}),n.removeData("ui-tooltip-open"),this._off(n,"mouseleave focusout keyup"),n[0]!==this.element[0]&&this._off(n,"remove"),this._off(this.document,"mousemove"),t&&"mouseleave"===t.type&&e.each(this.parents,function(t,i){e(i.element).attr("title",i.title),delete s.parents[t]}),a.closing=!0,this._trigger("close",t,{tooltip:i}),a.hiding||(a.closing=!1)),void 0):(n.removeData("ui-tooltip-open"),void 0)},_tooltip:function(t){var i=e("<div>").attr("role","tooltip").addClass("ui-tooltip ui-widget ui-corner-all ui-widget-content "+(this.options.tooltipClass||"")),s=i.uniqueId().attr("id");return e("<div>").addClass("ui-tooltip-content").appendTo(i),i.appendTo(this.document[0].body),this.tooltips[s]={element:t,tooltip:i}},_find:function(e){var t=e.data("ui-tooltip-id");return t?this.tooltips[t]:null},_removeTooltip:function(e){e.remove(),delete this.tooltips[e.attr("id")]},_destroy:function(){var t=this;e.each(this.tooltips,function(i,s){var n=e.Event("blur"),a=s.element;n.target=n.currentTarget=a[0],t.close(n,!0),e("#"+i).remove(),a.data("ui-tooltip-title")&&(a.attr("title")||a.attr("title",a.data("ui-tooltip-title")),a.removeData("ui-tooltip-title"))}),this.liveRegion.remove()}})}); \ No newline at end of file diff --git a/admin/plugins/timepicker/bootstrap-timepicker.css b/admin/plugins/timepicker/bootstrap-timepicker.css deleted file mode 100644 index 873e0c7..0000000 --- a/admin/plugins/timepicker/bootstrap-timepicker.css +++ /dev/null @@ -1,121 +0,0 @@ -/*! - * Timepicker Component for Twitter Bootstrap - * - * Copyright 2013 Joris de Wit - * - * Contributors https://github.com/jdewit/bootstrap-timepicker/graphs/contributors - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ -.bootstrap-timepicker { - position: relative; -} -.bootstrap-timepicker.pull-right .bootstrap-timepicker-widget.dropdown-menu { - left: auto; - right: 0; -} -.bootstrap-timepicker.pull-right .bootstrap-timepicker-widget.dropdown-menu:before { - left: auto; - right: 12px; -} -.bootstrap-timepicker.pull-right .bootstrap-timepicker-widget.dropdown-menu:after { - left: auto; - right: 13px; -} -.bootstrap-timepicker .add-on { - cursor: pointer; -} -.bootstrap-timepicker .add-on i { - display: inline-block; - width: 16px; - height: 16px; -} -.bootstrap-timepicker-widget.dropdown-menu { - padding: 2px 3px 2px 2px; -} -.bootstrap-timepicker-widget.dropdown-menu.open { - display: inline-block; -} -.bootstrap-timepicker-widget.dropdown-menu:before { - border-bottom: 7px solid rgba(0, 0, 0, 0.2); - border-left: 7px solid transparent; - border-right: 7px solid transparent; - content: ""; - display: inline-block; - left: 9px; - position: absolute; - top: -7px; -} -.bootstrap-timepicker-widget.dropdown-menu:after { - border-bottom: 6px solid #FFFFFF; - border-left: 6px solid transparent; - border-right: 6px solid transparent; - content: ""; - display: inline-block; - left: 10px; - position: absolute; - top: -6px; -} -.bootstrap-timepicker-widget a.btn, -.bootstrap-timepicker-widget input { - border-radius: 4px; -} -.bootstrap-timepicker-widget table { - width: 100%; - margin: 0; -} -.bootstrap-timepicker-widget table td { - text-align: center; - height: 30px; - margin: 0; - padding: 2px; -} -.bootstrap-timepicker-widget table td:not(.separator) { - min-width: 30px; -} -.bootstrap-timepicker-widget table td span { - width: 100%; -} -.bootstrap-timepicker-widget table td a { - border: 1px transparent solid; - width: 100%; - display: inline-block; - margin: 0; - padding: 8px 0; - outline: 0; - color: #333; -} -.bootstrap-timepicker-widget table td a:hover { - text-decoration: none; - background-color: #eee; - -webkit-border-radius: 4px; - -moz-border-radius: 4px; - border-radius: 4px; - border-color: #ddd; -} -.bootstrap-timepicker-widget table td a i { - margin-top: 2px; -} -.bootstrap-timepicker-widget table td input { - width: 25px; - margin: 0; - text-align: center; -} -.bootstrap-timepicker-widget .modal-content { - padding: 4px; -} -@media (min-width: 767px) { - .bootstrap-timepicker-widget.modal { - width: 200px; - margin-left: -100px; - } -} -@media (max-width: 767px) { - .bootstrap-timepicker { - width: 100%; - } - .bootstrap-timepicker .dropdown-menu { - width: 100%; - } -} diff --git a/admin/plugins/timepicker/bootstrap-timepicker.js b/admin/plugins/timepicker/bootstrap-timepicker.js deleted file mode 100644 index 3068c94..0000000 --- a/admin/plugins/timepicker/bootstrap-timepicker.js +++ /dev/null @@ -1,903 +0,0 @@ -//TODO: move arrow styles and button click code into configurable items, with defaults matching the existing code - -/*! -* Timepicker Component for Twitter Bootstrap -* -* Copyright 2013 Joris de Wit -* -* Contributors https://github.com/jdewit/bootstrap-timepicker/graphs/contributors -* -* For the full copyright and license information, please view the LICENSE -* file that was distributed with this source code. -*/ -(function($, window, document, undefined) { - 'use strict'; - - // TIMEPICKER PUBLIC CLASS DEFINITION - var Timepicker = function(element, options) { - this.widget = ''; - this.$element = $(element); - this.defaultTime = options.defaultTime; - this.disableFocus = options.disableFocus; - this.isOpen = options.isOpen; - this.minuteStep = options.minuteStep; - this.modalBackdrop = options.modalBackdrop; - this.secondStep = options.secondStep; - this.showInputs = options.showInputs; - this.showMeridian = options.showMeridian; - this.showSeconds = options.showSeconds; - this.template = options.template; - this.appendWidgetTo = options.appendWidgetTo; - this.upArrowStyle = options.upArrowStyle; - this.downArrowStyle = options.downArrowStyle; - this.containerClass = options.containerClass; - - this._init(); - }; - - Timepicker.prototype = { - - constructor: Timepicker, - - _init: function() { - var self = this; - - if (this.$element.parent().hasClass('input-append') || this.$element.parent().hasClass('input-prepend')) { - if (this.$element.parent('.input-append, .input-prepend').find('.add-on').length) { - this.$element.parent('.input-append, .input-prepend').find('.add-on').on({ - 'click.timepicker': $.proxy(this.showWidget, this) - }); - } else { - this.$element.closest(this.containerClass).find('.add-on').on({ - 'click.timepicker': $.proxy(this.showWidget, this) - }); - } - - this.$element.on({ - 'focus.timepicker': $.proxy(this.highlightUnit, this), - 'click.timepicker': $.proxy(this.highlightUnit, this), - 'keydown.timepicker': $.proxy(this.elementKeydown, this), - 'blur.timepicker': $.proxy(this.blurElement, this) - }); - } else { - if (this.template) { - this.$element.on({ - 'focus.timepicker': $.proxy(this.showWidget, this), - 'click.timepicker': $.proxy(this.showWidget, this), - 'blur.timepicker': $.proxy(this.blurElement, this) - }); - } else { - this.$element.on({ - 'focus.timepicker': $.proxy(this.highlightUnit, this), - 'click.timepicker': $.proxy(this.highlightUnit, this), - 'keydown.timepicker': $.proxy(this.elementKeydown, this), - 'blur.timepicker': $.proxy(this.blurElement, this) - }); - } - } - - if (this.template !== false) { - this.$widget = $(this.getTemplate()).prependTo(this.$element.parents(this.appendWidgetTo)).on('click', $.proxy(this.widgetClick, this)); - } else { - this.$widget = false; - } - - if (this.showInputs && this.$widget !== false) { - this.$widget.find('input').each(function() { - $(this).on({ - 'click.timepicker': function() { $(this).select(); }, - 'keydown.timepicker': $.proxy(self.widgetKeydown, self) - }); - }); - } - - this.setDefaultTime(this.defaultTime); - }, - - blurElement: function() { - this.highlightedUnit = undefined; - this.updateFromElementVal(); - }, - - decrementHour: function() { - if (this.showMeridian) { - if (this.hour === 1) { - this.hour = 12; - } else if (this.hour === 12) { - this.hour--; - - return this.toggleMeridian(); - } else if (this.hour === 0) { - this.hour = 11; - - return this.toggleMeridian(); - } else { - this.hour--; - } - } else { - if (this.hour === 0) { - this.hour = 23; - } else { - this.hour--; - } - } - this.update(); - }, - - decrementMinute: function(step) { - var newVal; - - if (step) { - newVal = this.minute - step; - } else { - newVal = this.minute - this.minuteStep; - } - - if (newVal < 0) { - this.decrementHour(); - this.minute = newVal + 60; - } else { - this.minute = newVal; - } - this.update(); - }, - - decrementSecond: function() { - var newVal = this.second - this.secondStep; - - if (newVal < 0) { - this.decrementMinute(true); - this.second = newVal + 60; - } else { - this.second = newVal; - } - this.update(); - }, - - elementKeydown: function(e) { - switch (e.keyCode) { - case 9: //tab - this.updateFromElementVal(); - - switch (this.highlightedUnit) { - case 'hour': - e.preventDefault(); - this.highlightNextUnit(); - break; - case 'minute': - if (this.showMeridian || this.showSeconds) { - e.preventDefault(); - this.highlightNextUnit(); - } - break; - case 'second': - if (this.showMeridian) { - e.preventDefault(); - this.highlightNextUnit(); - } - break; - } - break; - case 27: // escape - this.updateFromElementVal(); - break; - case 37: // left arrow - e.preventDefault(); - this.highlightPrevUnit(); - this.updateFromElementVal(); - break; - case 38: // up arrow - e.preventDefault(); - switch (this.highlightedUnit) { - case 'hour': - this.incrementHour(); - this.highlightHour(); - break; - case 'minute': - this.incrementMinute(); - this.highlightMinute(); - break; - case 'second': - this.incrementSecond(); - this.highlightSecond(); - break; - case 'meridian': - this.toggleMeridian(); - this.highlightMeridian(); - break; - } - break; - case 39: // right arrow - e.preventDefault(); - this.updateFromElementVal(); - this.highlightNextUnit(); - break; - case 40: // down arrow - e.preventDefault(); - switch (this.highlightedUnit) { - case 'hour': - this.decrementHour(); - this.highlightHour(); - break; - case 'minute': - this.decrementMinute(); - this.highlightMinute(); - break; - case 'second': - this.decrementSecond(); - this.highlightSecond(); - break; - case 'meridian': - this.toggleMeridian(); - this.highlightMeridian(); - break; - } - break; - } - }, - - formatTime: function(hour, minute, second, meridian) { - hour = hour < 10 ? '0' + hour : hour; - minute = minute < 10 ? '0' + minute : minute; - second = second < 10 ? '0' + second : second; - - return hour + ':' + minute + (this.showSeconds ? ':' + second : '') + (this.showMeridian ? ' ' + meridian : ''); - }, - - getCursorPosition: function() { - var input = this.$element.get(0); - - if ('selectionStart' in input) {// Standard-compliant browsers - - return input.selectionStart; - } else if (document.selection) {// IE fix - input.focus(); - var sel = document.selection.createRange(), - selLen = document.selection.createRange().text.length; - - sel.moveStart('character', - input.value.length); - - return sel.text.length - selLen; - } - }, - - getTemplate: function() { - var template, - hourTemplate, - minuteTemplate, - secondTemplate, - meridianTemplate, - templateContent; - - if (this.showInputs) { - hourTemplate = '<input type="text" name="hour" class="bootstrap-timepicker-hour form-control" maxlength="2"/>'; - minuteTemplate = '<input type="text" name="minute" class="bootstrap-timepicker-minute form-control" maxlength="2"/>'; - secondTemplate = '<input type="text" name="second" class="bootstrap-timepicker-second form-control" maxlength="2"/>'; - meridianTemplate = '<input type="text" name="meridian" class="bootstrap-timepicker-meridian form-control" maxlength="2"/>'; - } else { - hourTemplate = '<span class="bootstrap-timepicker-hour"></span>'; - minuteTemplate = '<span class="bootstrap-timepicker-minute"></span>'; - secondTemplate = '<span class="bootstrap-timepicker-second"></span>'; - meridianTemplate = '<span class="bootstrap-timepicker-meridian"></span>'; - } - - templateContent = '<table>'+ - '<tr>'+ - '<td><a href="#" data-action="incrementHour"><i class="' + this.upArrowStyle + '"></i></a></td>'+ - '<td class="separator">&nbsp;</td>'+ - '<td><a href="#" data-action="incrementMinute"><i class="' + this.upArrowStyle + '"></i></a></td>'+ - (this.showSeconds ? - '<td class="separator">&nbsp;</td>'+ - '<td><a href="#" data-action="incrementSecond"><i class="' + this.upArrowStyle + '"></i></a></td>' - : '') + - (this.showMeridian ? - '<td class="separator">&nbsp;</td>'+ - '<td class="meridian-column"><a href="#" data-action="toggleMeridian"><i class="' + this.upArrowStyle + '"></i></a></td>' - : '') + - '</tr>'+ - '<tr>'+ - '<td>'+ hourTemplate +'</td> '+ - '<td class="separator">:</td>'+ - '<td>'+ minuteTemplate +'</td> '+ - (this.showSeconds ? - '<td class="separator">:</td>'+ - '<td>'+ secondTemplate +'</td>' - : '') + - (this.showMeridian ? - '<td class="separator">&nbsp;</td>'+ - '<td>'+ meridianTemplate +'</td>' - : '') + - '</tr>'+ - '<tr>'+ - '<td><a href="#" data-action="decrementHour"><i class="' + this.downArrowStyle + '"></i></a></td>'+ - '<td class="separator"></td>'+ - '<td><a href="#" data-action="decrementMinute"><i class="' + this.downArrowStyle + '"></i></a></td>'+ - (this.showSeconds ? - '<td class="separator">&nbsp;</td>'+ - '<td><a href="#" data-action="decrementSecond"><i class="' + this.downArrowStyle + '"></i></a></td>' - : '') + - (this.showMeridian ? - '<td class="separator">&nbsp;</td>'+ - '<td><a href="#" data-action="toggleMeridian"><i class="' + this.downArrowStyle + '"></i></a></td>' - : '') + - '</tr>'+ - '</table>'; - - switch(this.template) { - case 'modal': - template = '<div class="bootstrap-timepicker-widget modal hide fade in" data-backdrop="'+ (this.modalBackdrop ? 'true' : 'false') +'">'+ - '<div class="modal-header">'+ - '<a href="#" class="close" data-dismiss="modal">×</a>'+ - '<h3>Pick a Time</h3>'+ - '</div>'+ - '<div class="modal-content">'+ - templateContent + - '</div>'+ - '<div class="modal-footer">'+ - '<a href="#" class="btn btn-primary" data-dismiss="modal">OK</a>'+ - '</div>'+ - '</div>'; - break; - case 'dropdown': - template = '<div class="bootstrap-timepicker-widget dropdown-menu">'+ templateContent +'</div>'; - break; - } - - return template; - }, - - getTime: function() { - return this.formatTime(this.hour, this.minute, this.second, this.meridian); - }, - - hideWidget: function() { - if (this.isOpen === false) { - return; - } - - if (this.showInputs) { - this.updateFromWidgetInputs(); - } - - this.$element.trigger({ - 'type': 'hide.timepicker', - 'time': { - 'value': this.getTime(), - 'hours': this.hour, - 'minutes': this.minute, - 'seconds': this.second, - 'meridian': this.meridian - } - }); - - if (this.template === 'modal' && this.$widget.modal) { - this.$widget.modal('hide'); - } else { - this.$widget.removeClass('open'); - } - - $(document).off('mousedown.timepicker'); - - this.isOpen = false; - }, - - highlightUnit: function() { - this.position = this.getCursorPosition(); - if (this.position >= 0 && this.position <= 2) { - this.highlightHour(); - } else if (this.position >= 3 && this.position <= 5) { - this.highlightMinute(); - } else if (this.position >= 6 && this.position <= 8) { - if (this.showSeconds) { - this.highlightSecond(); - } else { - this.highlightMeridian(); - } - } else if (this.position >= 9 && this.position <= 11) { - this.highlightMeridian(); - } - }, - - highlightNextUnit: function() { - switch (this.highlightedUnit) { - case 'hour': - this.highlightMinute(); - break; - case 'minute': - if (this.showSeconds) { - this.highlightSecond(); - } else if (this.showMeridian){ - this.highlightMeridian(); - } else { - this.highlightHour(); - } - break; - case 'second': - if (this.showMeridian) { - this.highlightMeridian(); - } else { - this.highlightHour(); - } - break; - case 'meridian': - this.highlightHour(); - break; - } - }, - - highlightPrevUnit: function() { - switch (this.highlightedUnit) { - case 'hour': - this.highlightMeridian(); - break; - case 'minute': - this.highlightHour(); - break; - case 'second': - this.highlightMinute(); - break; - case 'meridian': - if (this.showSeconds) { - this.highlightSecond(); - } else { - this.highlightMinute(); - } - break; - } - }, - - highlightHour: function() { - var $element = this.$element.get(0); - - this.highlightedUnit = 'hour'; - - if ($element.setSelectionRange) { - setTimeout(function() { - $element.setSelectionRange(0,2); - }, 0); - } - }, - - highlightMinute: function() { - var $element = this.$element.get(0); - - this.highlightedUnit = 'minute'; - - if ($element.setSelectionRange) { - setTimeout(function() { - $element.setSelectionRange(3,5); - }, 0); - } - }, - - highlightSecond: function() { - var $element = this.$element.get(0); - - this.highlightedUnit = 'second'; - - if ($element.setSelectionRange) { - setTimeout(function() { - $element.setSelectionRange(6,8); - }, 0); - } - }, - - highlightMeridian: function() { - var $element = this.$element.get(0); - - this.highlightedUnit = 'meridian'; - - if ($element.setSelectionRange) { - if (this.showSeconds) { - setTimeout(function() { - $element.setSelectionRange(9,11); - }, 0); - } else { - setTimeout(function() { - $element.setSelectionRange(6,8); - }, 0); - } - } - }, - - incrementHour: function() { - if (this.showMeridian) { - if (this.hour === 11) { - this.hour++; - return this.toggleMeridian(); - } else if (this.hour === 12) { - this.hour = 0; - } - } - if (this.hour === 23) { - this.hour = 0; - - return; - } - this.hour++; - this.update(); - }, - - incrementMinute: function(step) { - var newVal; - - if (step) { - newVal = this.minute + step; - } else { - newVal = this.minute + this.minuteStep - (this.minute % this.minuteStep); - } - - if (newVal > 59) { - this.incrementHour(); - this.minute = newVal - 60; - } else { - this.minute = newVal; - } - this.update(); - }, - - incrementSecond: function() { - var newVal = this.second + this.secondStep - (this.second % this.secondStep); - - if (newVal > 59) { - this.incrementMinute(true); - this.second = newVal - 60; - } else { - this.second = newVal; - } - this.update(); - }, - - remove: function() { - $('document').off('.timepicker'); - if (this.$widget) { - this.$widget.remove(); - } - delete this.$element.data().timepicker; - }, - - setDefaultTime: function(defaultTime){ - if (!this.$element.val()) { - if (defaultTime === 'current') { - var dTime = new Date(), - hours = dTime.getHours(), - minutes = Math.floor(dTime.getMinutes() / this.minuteStep) * this.minuteStep, - seconds = Math.floor(dTime.getSeconds() / this.secondStep) * this.secondStep, - meridian = 'AM'; - - if (this.showMeridian) { - if (hours === 0) { - hours = 12; - } else if (hours >= 12) { - if (hours > 12) { - hours = hours - 12; - } - meridian = 'PM'; - } else { - meridian = 'AM'; - } - } - - this.hour = hours; - this.minute = minutes; - this.second = seconds; - this.meridian = meridian; - - this.update(); - - } else if (defaultTime === false) { - this.hour = 0; - this.minute = 0; - this.second = 0; - this.meridian = 'AM'; - } else { - this.setTime(defaultTime); - } - } else { - this.updateFromElementVal(); - } - }, - - setTime: function(time) { - var arr, - timeArray; - - if (this.showMeridian) { - arr = time.split(' '); - timeArray = arr[0].split(':'); - this.meridian = arr[1]; - } else { - timeArray = time.split(':'); - } - - this.hour = parseInt(timeArray[0], 10); - this.minute = parseInt(timeArray[1], 10); - this.second = parseInt(timeArray[2], 10); - - if (isNaN(this.hour)) { - this.hour = 0; - } - if (isNaN(this.minute)) { - this.minute = 0; - } - - if (this.showMeridian) { - if (this.hour > 12) { - this.hour = 12; - } else if (this.hour < 1) { - this.hour = 12; - } - - if (this.meridian === 'am' || this.meridian === 'a') { - this.meridian = 'AM'; - } else if (this.meridian === 'pm' || this.meridian === 'p') { - this.meridian = 'PM'; - } - - if (this.meridian !== 'AM' && this.meridian !== 'PM') { - this.meridian = 'AM'; - } - } else { - if (this.hour >= 24) { - this.hour = 23; - } else if (this.hour < 0) { - this.hour = 0; - } - } - - if (this.minute < 0) { - this.minute = 0; - } else if (this.minute >= 60) { - this.minute = 59; - } - - if (this.showSeconds) { - if (isNaN(this.second)) { - this.second = 0; - } else if (this.second < 0) { - this.second = 0; - } else if (this.second >= 60) { - this.second = 59; - } - } - - this.update(); - }, - - showWidget: function() { - if (this.isOpen) { - return; - } - - if (this.$element.is(':disabled')) { - return; - } - - var self = this; - $(document).on('mousedown.timepicker', function (e) { - // Clicked outside the timepicker, hide it - if ($(e.target).closest('.bootstrap-timepicker-widget').length === 0) { - self.hideWidget(); - } - }); - - this.$element.trigger({ - 'type': 'show.timepicker', - 'time': { - 'value': this.getTime(), - 'hours': this.hour, - 'minutes': this.minute, - 'seconds': this.second, - 'meridian': this.meridian - } - }); - - if (this.disableFocus) { - this.$element.blur(); - } - - this.updateFromElementVal(); - - if (this.template === 'modal' && this.$widget.modal) { - this.$widget.modal('show').on('hidden', $.proxy(this.hideWidget, this)); - } else { - if (this.isOpen === false) { - this.$widget.addClass('open'); - } - } - - this.isOpen = true; - }, - - toggleMeridian: function() { - this.meridian = this.meridian === 'AM' ? 'PM' : 'AM'; - this.update(); - }, - - update: function() { - this.$element.trigger({ - 'type': 'changeTime.timepicker', - 'time': { - 'value': this.getTime(), - 'hours': this.hour, - 'minutes': this.minute, - 'seconds': this.second, - 'meridian': this.meridian - } - }); - - this.updateElement(); - this.updateWidget(); - }, - - updateElement: function() { - this.$element.val(this.getTime()).change(); - }, - - updateFromElementVal: function() { - var val = this.$element.val(); - - if (val) { - this.setTime(val); - } - }, - - updateWidget: function() { - if (this.$widget === false) { - return; - } - - var hour = this.hour < 10 ? '0' + this.hour : this.hour, - minute = this.minute < 10 ? '0' + this.minute : this.minute, - second = this.second < 10 ? '0' + this.second : this.second; - - if (this.showInputs) { - this.$widget.find('input.bootstrap-timepicker-hour').val(hour); - this.$widget.find('input.bootstrap-timepicker-minute').val(minute); - - if (this.showSeconds) { - this.$widget.find('input.bootstrap-timepicker-second').val(second); - } - if (this.showMeridian) { - this.$widget.find('input.bootstrap-timepicker-meridian').val(this.meridian); - } - } else { - this.$widget.find('span.bootstrap-timepicker-hour').text(hour); - this.$widget.find('span.bootstrap-timepicker-minute').text(minute); - - if (this.showSeconds) { - this.$widget.find('span.bootstrap-timepicker-second').text(second); - } - if (this.showMeridian) { - this.$widget.find('span.bootstrap-timepicker-meridian').text(this.meridian); - } - } - }, - - updateFromWidgetInputs: function() { - if (this.$widget === false) { - return; - } - var time = $('input.bootstrap-timepicker-hour', this.$widget).val() + ':' + - $('input.bootstrap-timepicker-minute', this.$widget).val() + - (this.showSeconds ? ':' + $('input.bootstrap-timepicker-second', this.$widget).val() : '') + - (this.showMeridian ? ' ' + $('input.bootstrap-timepicker-meridian', this.$widget).val() : ''); - - this.setTime(time); - }, - - widgetClick: function(e) { - e.stopPropagation(); - e.preventDefault(); - - var action = $(e.target).closest('a').data('action'); - if (action) { - this[action](); - } - }, - - widgetKeydown: function(e) { - var $input = $(e.target).closest('input'), - name = $input.attr('name'); - - switch (e.keyCode) { - case 9: //tab - if (this.showMeridian) { - if (name === 'meridian') { - return this.hideWidget(); - } - } else { - if (this.showSeconds) { - if (name === 'second') { - return this.hideWidget(); - } - } else { - if (name === 'minute') { - return this.hideWidget(); - } - } - } - - this.updateFromWidgetInputs(); - break; - case 27: // escape - this.hideWidget(); - break; - case 38: // up arrow - e.preventDefault(); - switch (name) { - case 'hour': - this.incrementHour(); - break; - case 'minute': - this.incrementMinute(); - break; - case 'second': - this.incrementSecond(); - break; - case 'meridian': - this.toggleMeridian(); - break; - } - break; - case 40: // down arrow - e.preventDefault(); - switch (name) { - case 'hour': - this.decrementHour(); - break; - case 'minute': - this.decrementMinute(); - break; - case 'second': - this.decrementSecond(); - break; - case 'meridian': - this.toggleMeridian(); - break; - } - break; - } - } - }; - - - //TIMEPICKER PLUGIN DEFINITION - $.fn.timepicker = function(option) { - var args = Array.apply(null, arguments); - args.shift(); - return this.each(function() { - var $this = $(this), - data = $this.data('timepicker'), - options = typeof option === 'object' && option; - - if (!data) { - $this.data('timepicker', (data = new Timepicker(this, $.extend({}, $.fn.timepicker.defaults, options, $(this).data())))); - } - - if (typeof option === 'string') { - data[option].apply(data, args); - } - }); - }; - - $.fn.timepicker.defaults = { - defaultTime: 'current', - disableFocus: false, - isOpen: false, - minuteStep: 15, - modalBackdrop: false, - secondStep: 15, - showSeconds: false, - showInputs: true, - showMeridian: true, - template: 'dropdown', - appendWidgetTo: '.bootstrap-timepicker', - upArrowStyle: 'glyphicon glyphicon-chevron-up', - downArrowStyle: 'glyphicon glyphicon-chevron-down', - containerClass: 'bootstrap-timepicker' - }; - - $.fn.timepicker.Constructor = Timepicker; - -})(jQuery, window, document); diff --git a/admin/plugins/timepicker/bootstrap-timepicker.min.css b/admin/plugins/timepicker/bootstrap-timepicker.min.css deleted file mode 100644 index b59d6f7..0000000 --- a/admin/plugins/timepicker/bootstrap-timepicker.min.css +++ /dev/null @@ -1,10 +0,0 @@ -/*! - * Timepicker Component for Twitter Bootstrap - * - * Copyright 2013 Joris de Wit - * - * Contributors https://github.com/jdewit/bootstrap-timepicker/graphs/contributors - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */.bootstrap-timepicker{position:relative}.bootstrap-timepicker.pull-right .bootstrap-timepicker-widget.dropdown-menu{left:auto;right:0}.bootstrap-timepicker.pull-right .bootstrap-timepicker-widget.dropdown-menu:before{left:auto;right:12px}.bootstrap-timepicker.pull-right .bootstrap-timepicker-widget.dropdown-menu:after{left:auto;right:13px}.bootstrap-timepicker .add-on{cursor:pointer}.bootstrap-timepicker .add-on i{display:inline-block;width:16px;height:16px}.bootstrap-timepicker-widget.dropdown-menu{padding:2px 3px 2px 2px}.bootstrap-timepicker-widget.dropdown-menu.open{display:inline-block}.bootstrap-timepicker-widget.dropdown-menu:before{border-bottom:7px solid rgba(0,0,0,0.2);border-left:7px solid transparent;border-right:7px solid transparent;content:"";display:inline-block;left:9px;position:absolute;top:-7px}.bootstrap-timepicker-widget.dropdown-menu:after{border-bottom:6px solid #fff;border-left:6px solid transparent;border-right:6px solid transparent;content:"";display:inline-block;left:10px;position:absolute;top:-6px}.bootstrap-timepicker-widget a.btn,.bootstrap-timepicker-widget input{border-radius:4px}.bootstrap-timepicker-widget table{width:100%;margin:0}.bootstrap-timepicker-widget table td{text-align:center;height:30px;margin:0;padding:2px}.bootstrap-timepicker-widget table td:not(.separator){min-width:30px}.bootstrap-timepicker-widget table td span{width:100%}.bootstrap-timepicker-widget table td a{border:1px transparent solid;width:100%;display:inline-block;margin:0;padding:8px 0;outline:0;color:#333}.bootstrap-timepicker-widget table td a:hover{text-decoration:none;background-color:#eee;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;border-color:#ddd}.bootstrap-timepicker-widget table td a i{margin-top:2px}.bootstrap-timepicker-widget table td input{width:25px;margin:0;text-align:center}.bootstrap-timepicker-widget .modal-content{padding:4px}@media(min-width:767px){.bootstrap-timepicker-widget.modal{width:200px;margin-left:-100px}}@media(max-width:767px){.bootstrap-timepicker{width:100%}.bootstrap-timepicker .dropdown-menu{width:100%}} \ No newline at end of file diff --git a/admin/plugins/timepicker/bootstrap-timepicker.min.js b/admin/plugins/timepicker/bootstrap-timepicker.min.js deleted file mode 100644 index 3c78d5c..0000000 --- a/admin/plugins/timepicker/bootstrap-timepicker.min.js +++ /dev/null @@ -1,5 +0,0 @@ -/*! bootstrap-timepicker v0.2.3 -* http://jdewit.github.com/bootstrap-timepicker -* Copyright (c) 2013 Joris de Wit -* MIT License -*/(function(e,t,n,r){"use strict";var i=function(t,n){this.widget="";this.$element=e(t);this.defaultTime=n.defaultTime;this.disableFocus=n.disableFocus;this.isOpen=n.isOpen;this.minuteStep=n.minuteStep;this.modalBackdrop=n.modalBackdrop;this.secondStep=n.secondStep;this.showInputs=n.showInputs;this.showMeridian=n.showMeridian;this.showSeconds=n.showSeconds;this.template=n.template;this.appendWidgetTo=n.appendWidgetTo;this.upArrowStyle=n.upArrowStyle;this.downArrowStyle=n.downArrowStyle;this.containerClass=n.containerClass;this._init()};i.prototype={constructor:i,_init:function(){var t=this;if(this.$element.parent().hasClass("input-append")||this.$element.parent().hasClass("input-prepend")){if(this.$element.parent(".input-append, .input-prepend").find(".add-on").length){this.$element.parent(".input-append, .input-prepend").find(".add-on").on({"click.timepicker":e.proxy(this.showWidget,this)})}else{this.$element.closest(this.containerClass).find(".add-on").on({"click.timepicker":e.proxy(this.showWidget,this)})}this.$element.on({"focus.timepicker":e.proxy(this.highlightUnit,this),"click.timepicker":e.proxy(this.highlightUnit,this),"keydown.timepicker":e.proxy(this.elementKeydown,this),"blur.timepicker":e.proxy(this.blurElement,this)})}else{if(this.template){this.$element.on({"focus.timepicker":e.proxy(this.showWidget,this),"click.timepicker":e.proxy(this.showWidget,this),"blur.timepicker":e.proxy(this.blurElement,this)})}else{this.$element.on({"focus.timepicker":e.proxy(this.highlightUnit,this),"click.timepicker":e.proxy(this.highlightUnit,this),"keydown.timepicker":e.proxy(this.elementKeydown,this),"blur.timepicker":e.proxy(this.blurElement,this)})}}if(this.template!==false){this.$widget=e(this.getTemplate()).prependTo(this.$element.parents(this.appendWidgetTo)).on("click",e.proxy(this.widgetClick,this))}else{this.$widget=false}if(this.showInputs&&this.$widget!==false){this.$widget.find("input").each(function(){e(this).on({"click.timepicker":function(){e(this).select()},"keydown.timepicker":e.proxy(t.widgetKeydown,t)})})}this.setDefaultTime(this.defaultTime)},blurElement:function(){this.highlightedUnit=r;this.updateFromElementVal()},decrementHour:function(){if(this.showMeridian){if(this.hour===1){this.hour=12}else if(this.hour===12){this.hour--;return this.toggleMeridian()}else if(this.hour===0){this.hour=11;return this.toggleMeridian()}else{this.hour--}}else{if(this.hour===0){this.hour=23}else{this.hour--}}this.update()},decrementMinute:function(e){var t;if(e){t=this.minute-e}else{t=this.minute-this.minuteStep}if(t<0){this.decrementHour();this.minute=t+60}else{this.minute=t}this.update()},decrementSecond:function(){var e=this.second-this.secondStep;if(e<0){this.decrementMinute(true);this.second=e+60}else{this.second=e}this.update()},elementKeydown:function(e){switch(e.keyCode){case 9:this.updateFromElementVal();switch(this.highlightedUnit){case"hour":e.preventDefault();this.highlightNextUnit();break;case"minute":if(this.showMeridian||this.showSeconds){e.preventDefault();this.highlightNextUnit()}break;case"second":if(this.showMeridian){e.preventDefault();this.highlightNextUnit()}break}break;case 27:this.updateFromElementVal();break;case 37:e.preventDefault();this.highlightPrevUnit();this.updateFromElementVal();break;case 38:e.preventDefault();switch(this.highlightedUnit){case"hour":this.incrementHour();this.highlightHour();break;case"minute":this.incrementMinute();this.highlightMinute();break;case"second":this.incrementSecond();this.highlightSecond();break;case"meridian":this.toggleMeridian();this.highlightMeridian();break}break;case 39:e.preventDefault();this.updateFromElementVal();this.highlightNextUnit();break;case 40:e.preventDefault();switch(this.highlightedUnit){case"hour":this.decrementHour();this.highlightHour();break;case"minute":this.decrementMinute();this.highlightMinute();break;case"second":this.decrementSecond();this.highlightSecond();break;case"meridian":this.toggleMeridian();this.highlightMeridian();break}break}},formatTime:function(e,t,n,r){e=e<10?"0"+e:e;t=t<10?"0"+t:t;n=n<10?"0"+n:n;return e+":"+t+(this.showSeconds?":"+n:"")+(this.showMeridian?" "+r:"")},getCursorPosition:function(){var e=this.$element.get(0);if("selectionStart"in e){return e.selectionStart}else if(n.selection){e.focus();var t=n.selection.createRange(),r=n.selection.createRange().text.length;t.moveStart("character",-e.value.length);return t.text.length-r}},getTemplate:function(){var e,t,n,r,i,s;if(this.showInputs){t='<input type="text" name="hour" class="bootstrap-timepicker-hour form-control" maxlength="2"/>';n='<input type="text" name="minute" class="bootstrap-timepicker-minute form-control" maxlength="2"/>';r='<input type="text" name="second" class="bootstrap-timepicker-second form-control" maxlength="2"/>';i='<input type="text" name="meridian" class="bootstrap-timepicker-meridian form-control" maxlength="2"/>'}else{t='<span class="bootstrap-timepicker-hour"></span>';n='<span class="bootstrap-timepicker-minute"></span>';r='<span class="bootstrap-timepicker-second"></span>';i='<span class="bootstrap-timepicker-meridian"></span>'}s="<table>"+"<tr>"+'<td><a href="#" data-action="incrementHour"><i class="'+this.upArrowStyle+'"></i></a></td>'+'<td class="separator">&nbsp;</td>'+'<td><a href="#" data-action="incrementMinute"><i class="'+this.upArrowStyle+'"></i></a></td>'+(this.showSeconds?'<td class="separator">&nbsp;</td>'+'<td><a href="#" data-action="incrementSecond"><i class="'+this.upArrowStyle+'"></i></a></td>':"")+(this.showMeridian?'<td class="separator">&nbsp;</td>'+'<td class="meridian-column"><a href="#" data-action="toggleMeridian"><i class="'+this.upArrowStyle+'"></i></a></td>':"")+"</tr>"+"<tr>"+"<td>"+t+"</td> "+'<td class="separator">:</td>'+"<td>"+n+"</td> "+(this.showSeconds?'<td class="separator">:</td>'+"<td>"+r+"</td>":"")+(this.showMeridian?'<td class="separator">&nbsp;</td>'+"<td>"+i+"</td>":"")+"</tr>"+"<tr>"+'<td><a href="#" data-action="decrementHour"><i class="'+this.downArrowStyle+'"></i></a></td>'+'<td class="separator"></td>'+'<td><a href="#" data-action="decrementMinute"><i class="'+this.downArrowStyle+'"></i></a></td>'+(this.showSeconds?'<td class="separator">&nbsp;</td>'+'<td><a href="#" data-action="decrementSecond"><i class="'+this.downArrowStyle+'"></i></a></td>':"")+(this.showMeridian?'<td class="separator">&nbsp;</td>'+'<td><a href="#" data-action="toggleMeridian"><i class="'+this.downArrowStyle+'"></i></a></td>':"")+"</tr>"+"</table>";switch(this.template){case"modal":e='<div class="bootstrap-timepicker-widget modal hide fade in" data-backdrop="'+(this.modalBackdrop?"true":"false")+'">'+'<div class="modal-header">'+'<a href="#" class="close" data-dismiss="modal">×</a>'+"<h3>Pick a Time</h3>"+"</div>"+'<div class="modal-content">'+s+"</div>"+'<div class="modal-footer">'+'<a href="#" class="btn btn-primary" data-dismiss="modal">OK</a>'+"</div>"+"</div>";break;case"dropdown":e='<div class="bootstrap-timepicker-widget dropdown-menu">'+s+"</div>";break}return e},getTime:function(){return this.formatTime(this.hour,this.minute,this.second,this.meridian)},hideWidget:function(){if(this.isOpen===false){return}if(this.showInputs){this.updateFromWidgetInputs()}this.$element.trigger({type:"hide.timepicker",time:{value:this.getTime(),hours:this.hour,minutes:this.minute,seconds:this.second,meridian:this.meridian}});if(this.template==="modal"&&this.$widget.modal){this.$widget.modal("hide")}else{this.$widget.removeClass("open")}e(n).off("mousedown.timepicker");this.isOpen=false},highlightUnit:function(){this.position=this.getCursorPosition();if(this.position>=0&&this.position<=2){this.highlightHour()}else if(this.position>=3&&this.position<=5){this.highlightMinute()}else if(this.position>=6&&this.position<=8){if(this.showSeconds){this.highlightSecond()}else{this.highlightMeridian()}}else if(this.position>=9&&this.position<=11){this.highlightMeridian()}},highlightNextUnit:function(){switch(this.highlightedUnit){case"hour":this.highlightMinute();break;case"minute":if(this.showSeconds){this.highlightSecond()}else if(this.showMeridian){this.highlightMeridian()}else{this.highlightHour()}break;case"second":if(this.showMeridian){this.highlightMeridian()}else{this.highlightHour()}break;case"meridian":this.highlightHour();break}},highlightPrevUnit:function(){switch(this.highlightedUnit){case"hour":this.highlightMeridian();break;case"minute":this.highlightHour();break;case"second":this.highlightMinute();break;case"meridian":if(this.showSeconds){this.highlightSecond()}else{this.highlightMinute()}break}},highlightHour:function(){var e=this.$element.get(0);this.highlightedUnit="hour";if(e.setSelectionRange){setTimeout(function(){e.setSelectionRange(0,2)},0)}},highlightMinute:function(){var e=this.$element.get(0);this.highlightedUnit="minute";if(e.setSelectionRange){setTimeout(function(){e.setSelectionRange(3,5)},0)}},highlightSecond:function(){var e=this.$element.get(0);this.highlightedUnit="second";if(e.setSelectionRange){setTimeout(function(){e.setSelectionRange(6,8)},0)}},highlightMeridian:function(){var e=this.$element.get(0);this.highlightedUnit="meridian";if(e.setSelectionRange){if(this.showSeconds){setTimeout(function(){e.setSelectionRange(9,11)},0)}else{setTimeout(function(){e.setSelectionRange(6,8)},0)}}},incrementHour:function(){if(this.showMeridian){if(this.hour===11){this.hour++;return this.toggleMeridian()}else if(this.hour===12){this.hour=0}}if(this.hour===23){this.hour=0;return}this.hour++;this.update()},incrementMinute:function(e){var t;if(e){t=this.minute+e}else{t=this.minute+this.minuteStep-this.minute%this.minuteStep}if(t>59){this.incrementHour();this.minute=t-60}else{this.minute=t}this.update()},incrementSecond:function(){var e=this.second+this.secondStep-this.second%this.secondStep;if(e>59){this.incrementMinute(true);this.second=e-60}else{this.second=e}this.update()},remove:function(){e("document").off(".timepicker");if(this.$widget){this.$widget.remove()}delete this.$element.data().timepicker},setDefaultTime:function(e){if(!this.$element.val()){if(e==="current"){var t=new Date,n=t.getHours(),r=Math.floor(t.getMinutes()/this.minuteStep)*this.minuteStep,i=Math.floor(t.getSeconds()/this.secondStep)*this.secondStep,s="AM";if(this.showMeridian){if(n===0){n=12}else if(n>=12){if(n>12){n=n-12}s="PM"}else{s="AM"}}this.hour=n;this.minute=r;this.second=i;this.meridian=s;this.update()}else if(e===false){this.hour=0;this.minute=0;this.second=0;this.meridian="AM"}else{this.setTime(e)}}else{this.updateFromElementVal()}},setTime:function(e){var t,n;if(this.showMeridian){t=e.split(" ");n=t[0].split(":");this.meridian=t[1]}else{n=e.split(":")}this.hour=parseInt(n[0],10);this.minute=parseInt(n[1],10);this.second=parseInt(n[2],10);if(isNaN(this.hour)){this.hour=0}if(isNaN(this.minute)){this.minute=0}if(this.showMeridian){if(this.hour>12){this.hour=12}else if(this.hour<1){this.hour=12}if(this.meridian==="am"||this.meridian==="a"){this.meridian="AM"}else if(this.meridian==="pm"||this.meridian==="p"){this.meridian="PM"}if(this.meridian!=="AM"&&this.meridian!=="PM"){this.meridian="AM"}}else{if(this.hour>=24){this.hour=23}else if(this.hour<0){this.hour=0}}if(this.minute<0){this.minute=0}else if(this.minute>=60){this.minute=59}if(this.showSeconds){if(isNaN(this.second)){this.second=0}else if(this.second<0){this.second=0}else if(this.second>=60){this.second=59}}this.update()},showWidget:function(){if(this.isOpen){return}if(this.$element.is(":disabled")){return}var t=this;e(n).on("mousedown.timepicker",function(n){if(e(n.target).closest(".bootstrap-timepicker-widget").length===0){t.hideWidget()}});this.$element.trigger({type:"show.timepicker",time:{value:this.getTime(),hours:this.hour,minutes:this.minute,seconds:this.second,meridian:this.meridian}});if(this.disableFocus){this.$element.blur()}this.updateFromElementVal();if(this.template==="modal"&&this.$widget.modal){this.$widget.modal("show").on("hidden",e.proxy(this.hideWidget,this))}else{if(this.isOpen===false){this.$widget.addClass("open")}}this.isOpen=true},toggleMeridian:function(){this.meridian=this.meridian==="AM"?"PM":"AM";this.update()},update:function(){this.$element.trigger({type:"changeTime.timepicker",time:{value:this.getTime(),hours:this.hour,minutes:this.minute,seconds:this.second,meridian:this.meridian}});this.updateElement();this.updateWidget()},updateElement:function(){this.$element.val(this.getTime()).change()},updateFromElementVal:function(){var e=this.$element.val();if(e){this.setTime(e)}},updateWidget:function(){if(this.$widget===false){return}var e=this.hour<10?"0"+this.hour:this.hour,t=this.minute<10?"0"+this.minute:this.minute,n=this.second<10?"0"+this.second:this.second;if(this.showInputs){this.$widget.find("input.bootstrap-timepicker-hour").val(e);this.$widget.find("input.bootstrap-timepicker-minute").val(t);if(this.showSeconds){this.$widget.find("input.bootstrap-timepicker-second").val(n)}if(this.showMeridian){this.$widget.find("input.bootstrap-timepicker-meridian").val(this.meridian)}}else{this.$widget.find("span.bootstrap-timepicker-hour").text(e);this.$widget.find("span.bootstrap-timepicker-minute").text(t);if(this.showSeconds){this.$widget.find("span.bootstrap-timepicker-second").text(n)}if(this.showMeridian){this.$widget.find("span.bootstrap-timepicker-meridian").text(this.meridian)}}},updateFromWidgetInputs:function(){if(this.$widget===false){return}var t=e("input.bootstrap-timepicker-hour",this.$widget).val()+":"+e("input.bootstrap-timepicker-minute",this.$widget).val()+(this.showSeconds?":"+e("input.bootstrap-timepicker-second",this.$widget).val():"")+(this.showMeridian?" "+e("input.bootstrap-timepicker-meridian",this.$widget).val():"");this.setTime(t)},widgetClick:function(t){t.stopPropagation();t.preventDefault();var n=e(t.target).closest("a").data("action");if(n){this[n]()}},widgetKeydown:function(t){var n=e(t.target).closest("input"),r=n.attr("name");switch(t.keyCode){case 9:if(this.showMeridian){if(r==="meridian"){return this.hideWidget()}}else{if(this.showSeconds){if(r==="second"){return this.hideWidget()}}else{if(r==="minute"){return this.hideWidget()}}}this.updateFromWidgetInputs();break;case 27:this.hideWidget();break;case 38:t.preventDefault();switch(r){case"hour":this.incrementHour();break;case"minute":this.incrementMinute();break;case"second":this.incrementSecond();break;case"meridian":this.toggleMeridian();break}break;case 40:t.preventDefault();switch(r){case"hour":this.decrementHour();break;case"minute":this.decrementMinute();break;case"second":this.decrementSecond();break;case"meridian":this.toggleMeridian();break}break}}};e.fn.timepicker=function(t){var n=Array.apply(null,arguments);n.shift();return this.each(function(){var r=e(this),s=r.data("timepicker"),o=typeof t==="object"&&t;if(!s){r.data("timepicker",s=new i(this,e.extend({},e.fn.timepicker.defaults,o,e(this).data())))}if(typeof t==="string"){s[t].apply(s,n)}})};e.fn.timepicker.defaults={defaultTime:"current",disableFocus:false,isOpen:false,minuteStep:15,modalBackdrop:false,secondStep:15,showSeconds:false,showInputs:true,showMeridian:true,template:"dropdown",appendWidgetTo:".bootstrap-timepicker",upArrowStyle:"glyphicon glyphicon-chevron-up",downArrowStyle:"glyphicon glyphicon-chevron-down",containerClass:"bootstrap-timepicker"};e.fn.timepicker.Constructor=i})(jQuery,window,document) \ No newline at end of file diff --git a/admin/style.css b/admin/style.css index fccdd84..db1bde4 100644 --- a/admin/style.css +++ b/admin/style.css @@ -5,6 +5,9 @@ body { font-size: 14px; } +body .user-panel>.info { + position: relative; +} .main-header>.navbar { -webkit-box-orient: horizontal; -webkit-box-direction: normal; diff --git a/admin/template.html b/admin/template.html index 82928e2..fb0e217 100644 --- a/admin/template.html +++ b/admin/template.html @@ -5,23 +5,23 @@ <title>{title}</title> <meta content='width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no' name='viewport'> <!-- Bootstrap 3.3.7 --> - <link rel="stylesheet" href="{FOLDER_URL}admin/bower_components/bootstrap/dist/css/bootstrap.min.css"> + <link rel="stylesheet" href="{FOLDER_URL}vendor/almasaeed2010/adminlte/bower_components/bootstrap/dist/css/bootstrap.min.css"> <!-- Font Awesome --> - <link rel="stylesheet" href="{FOLDER_URL}admin/bower_components/font-awesome/css/font-awesome.min.css"> + <link rel="stylesheet" href="{FOLDER_URL}vendor/almasaeed2010/adminlte/bower_components/font-awesome/css/font-awesome.min.css"> <!-- Ionicons --> - <link rel="stylesheet" href="{FOLDER_URL}admin/bower_components/Ionicons/css/ionicons.min.css"> + <link rel="stylesheet" href="{FOLDER_URL}vendor/almasaeed2010/adminlte/bower_components/Ionicons/css/ionicons.min.css"> <!-- Theme style --> - <link rel="stylesheet" href="{FOLDER_URL}admin/dist/css/AdminLTE.min.css"> + <link rel="stylesheet" href="{FOLDER_URL}vendor/almasaeed2010/adminlte/dist/css/AdminLTE.min.css"> <!-- AdminLTE Skins. Choose a skin from the css/skins folder instead of downloading all of them to reduce the load. --> <link href="https://ajax.googleapis.com/ajax/libs/jqueryui/1.11.2/themes/excite-bike/jquery-ui.css" rel="stylesheet" type="text/css"/> - <link rel="stylesheet" href="{FOLDER_URL}admin/dist/css/skins/_all-skins.min.css"> + <link rel="stylesheet" href="{FOLDER_URL}vendor/almasaeed2010/adminlte/dist/css/skins/_all-skins.min.css"> <!-- Morris chart --> - <link rel="stylesheet" href="{FOLDER_URL}admin/bower_components/morris.js/morris.css"> + <link rel="stylesheet" href="{FOLDER_URL}vendor/almasaeed2010/adminlte/bower_components/morris.js/morris.css"> <!-- Date Picker --> - <link rel="stylesheet" href="{FOLDER_URL}admin/bower_components/bootstrap-datepicker/dist/css/bootstrap-datepicker.min.css"> + <link rel="stylesheet" href="{FOLDER_URL}vendor/almasaeed2010/adminlte/bower_components/bootstrap-datepicker/dist/css/bootstrap-datepicker.min.css"> <!-- Daterange picker --> - <link rel="stylesheet" href="{FOLDER_URL}admin/bower_components/bootstrap-daterangepicker/daterangepicker.css"> + <link rel="stylesheet" href="{FOLDER_URL}vendor/almasaeed2010/adminlte/bower_components/bootstrap-daterangepicker/daterangepicker.css"> <!-- bootstrap wysihtml5 - text editor --> <link href="{FOLDER_URL}admin/style.css" rel="stylesheet" type="text/css"/> @@ -113,31 +113,30 @@ <h1>{h1}</h1> <!-- ./wrapper --> <script type="text/javascript" src="{FOLDER_URL}js/jquery.min.js" id="mainjs" data-appdir="{FOLDER_URL}" data-admindir="{ADMIN_FOLDER_URL}"></script> - <!-- jQuery UI 1.11.4 --> - <script type="text/javascript" src="{FOLDER_URL}admin/js/jquery-ui.min.js"></script> + <script type="text/javascript" src="{FOLDER_URL}js/jquery-ui.min.js"></script> <!-- Resolve conflict in jQuery UI tooltip with Bootstrap tooltip --> <script> $.widget.bridge('uibutton', $.ui.button); </script> <!-- Bootstrap 3.3.7 --> - <script src="{FOLDER_URL}admin/bower_components/bootstrap/dist/js/bootstrap.min.js"></script> + <script src="{FOLDER_URL}vendor/almasaeed2010/adminlte/bower_components/bootstrap/dist/js/bootstrap.min.js"></script> <!-- Morris.js charts --> - <script src="{FOLDER_URL}admin/bower_components/raphael/raphael.min.js"></script> - <script src="{FOLDER_URL}admin/bower_components/morris.js/morris.min.js"></script> + <script src="{FOLDER_URL}vendor/almasaeed2010/adminlte/bower_components/raphael/raphael.min.js"></script> + <script src="{FOLDER_URL}vendor/almasaeed2010/adminlte/bower_components/morris.js/morris.min.js"></script> <!-- Sparkline --> - <script src="{FOLDER_URL}admin/bower_components/jquery-sparkline/dist/jquery.sparkline.min.js"></script> + <script src="{FOLDER_URL}vendor/almasaeed2010/adminlte/bower_components/jquery-sparkline/dist/jquery.sparkline.min.js"></script> <!-- jQuery Knob Chart --> - <script src="{FOLDER_URL}admin/bower_components/jquery-knob/dist/jquery.knob.min.js"></script> + <script src="{FOLDER_URL}vendor/almasaeed2010/adminlte/bower_components/jquery-knob/dist/jquery.knob.min.js"></script> <!-- daterangepicker --> - <script src="{FOLDER_URL}admin/bower_components/moment/min/moment.min.js"></script> - <script src="{FOLDER_URL}admin/bower_components/bootstrap-daterangepicker/daterangepicker.js"></script> + <script src="{FOLDER_URL}vendor/almasaeed2010/adminlte/bower_components/moment/min/moment.min.js"></script> + <script src="{FOLDER_URL}vendor/almasaeed2010/adminlte/bower_components/bootstrap-daterangepicker/daterangepicker.js"></script> <!-- datepicker --> - <script src="{FOLDER_URL}admin/bower_components/bootstrap-datepicker/dist/js/bootstrap-datepicker.min.js"></script> + <script src="{FOLDER_URL}vendor/almasaeed2010/adminlte/bower_components/bootstrap-datepicker/dist/js/bootstrap-datepicker.min.js"></script> <!-- Slimscroll --> - <script src="{FOLDER_URL}admin/bower_components/jquery-slimscroll/jquery.slimscroll.min.js"></script> + <script src="{FOLDER_URL}vendor/almasaeed2010/adminlte/bower_components/jquery-slimscroll/jquery.slimscroll.min.js"></script> <!-- FastClick --> - <script src="{FOLDER_URL}admin/bower_components/fastclick/lib/fastclick.js"></script> + <script src="{FOLDER_URL}vendor/almasaeed2010/adminlte/bower_components/fastclick/lib/fastclick.js"></script> <!-- AdminLTE App --> - <script src="{FOLDER_URL}admin/dist/js/adminlte.min.js"></script> + <script src="{FOLDER_URL}vendor/almasaeed2010/adminlte/dist/js/adminlte.min.js"></script> </body> </html> \ No newline at end of file diff --git a/css/cinput.css b/assets/css/cinput.css similarity index 97% rename from css/cinput.css rename to assets/css/cinput.css index 0d427fd..59b9ca9 100644 --- a/css/cinput.css +++ b/assets/css/cinput.css @@ -21,7 +21,7 @@ user-select: none; } .input__label { - font-family: 'FontAwesome', 'roboto', Arial, Helvetica, sans-serif; + font-family: 'FontAwesome', 'Montserrat', Arial, Helvetica, sans-serif; } .input__label:before { content: ''; diff --git a/css/font-montserrat.css b/assets/css/font-montserrat.css similarity index 100% rename from css/font-montserrat.css rename to assets/css/font-montserrat.css diff --git a/css/_main.css b/assets/css/main.css similarity index 98% rename from css/_main.css rename to assets/css/main.css index 570d66c..dc9c632 100644 --- a/css/_main.css +++ b/assets/css/main.css @@ -1,5 +1,5 @@ body { - font-family: Montserrat, -apple-system,system-ui,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif; + font-family: Montserrat, -apple-system,system-ui,BlinkMacSystemFont,"Segoe UI","Helvetica Neue",Arial,sans-serif; } .panel-login { -webkit-box-shadow: 0 0 3px 0 rgba(0,0,0,0.2); diff --git a/fonts/montserrat-v12-latin-ext-300.eot b/assets/fonts/montserrat-v12-latin-ext-300.eot similarity index 100% rename from fonts/montserrat-v12-latin-ext-300.eot rename to assets/fonts/montserrat-v12-latin-ext-300.eot diff --git a/fonts/montserrat-v12-latin-ext-300.svg b/assets/fonts/montserrat-v12-latin-ext-300.svg similarity index 100% rename from fonts/montserrat-v12-latin-ext-300.svg rename to assets/fonts/montserrat-v12-latin-ext-300.svg diff --git a/fonts/montserrat-v12-latin-ext-300.ttf b/assets/fonts/montserrat-v12-latin-ext-300.ttf similarity index 100% rename from fonts/montserrat-v12-latin-ext-300.ttf rename to assets/fonts/montserrat-v12-latin-ext-300.ttf diff --git a/fonts/montserrat-v12-latin-ext-300.woff b/assets/fonts/montserrat-v12-latin-ext-300.woff similarity index 100% rename from fonts/montserrat-v12-latin-ext-300.woff rename to assets/fonts/montserrat-v12-latin-ext-300.woff diff --git a/fonts/montserrat-v12-latin-ext-300.woff2 b/assets/fonts/montserrat-v12-latin-ext-300.woff2 similarity index 100% rename from fonts/montserrat-v12-latin-ext-300.woff2 rename to assets/fonts/montserrat-v12-latin-ext-300.woff2 diff --git a/fonts/montserrat-v12-latin-ext-300italic.eot b/assets/fonts/montserrat-v12-latin-ext-300italic.eot similarity index 100% rename from fonts/montserrat-v12-latin-ext-300italic.eot rename to assets/fonts/montserrat-v12-latin-ext-300italic.eot diff --git a/fonts/montserrat-v12-latin-ext-300italic.svg b/assets/fonts/montserrat-v12-latin-ext-300italic.svg similarity index 100% rename from fonts/montserrat-v12-latin-ext-300italic.svg rename to assets/fonts/montserrat-v12-latin-ext-300italic.svg diff --git a/fonts/montserrat-v12-latin-ext-300italic.ttf b/assets/fonts/montserrat-v12-latin-ext-300italic.ttf similarity index 100% rename from fonts/montserrat-v12-latin-ext-300italic.ttf rename to assets/fonts/montserrat-v12-latin-ext-300italic.ttf diff --git a/fonts/montserrat-v12-latin-ext-300italic.woff b/assets/fonts/montserrat-v12-latin-ext-300italic.woff similarity index 100% rename from fonts/montserrat-v12-latin-ext-300italic.woff rename to assets/fonts/montserrat-v12-latin-ext-300italic.woff diff --git a/fonts/montserrat-v12-latin-ext-300italic.woff2 b/assets/fonts/montserrat-v12-latin-ext-300italic.woff2 similarity index 100% rename from fonts/montserrat-v12-latin-ext-300italic.woff2 rename to assets/fonts/montserrat-v12-latin-ext-300italic.woff2 diff --git a/fonts/montserrat-v12-latin-ext-700.eot b/assets/fonts/montserrat-v12-latin-ext-700.eot similarity index 100% rename from fonts/montserrat-v12-latin-ext-700.eot rename to assets/fonts/montserrat-v12-latin-ext-700.eot diff --git a/fonts/montserrat-v12-latin-ext-700.svg b/assets/fonts/montserrat-v12-latin-ext-700.svg similarity index 100% rename from fonts/montserrat-v12-latin-ext-700.svg rename to assets/fonts/montserrat-v12-latin-ext-700.svg diff --git a/fonts/montserrat-v12-latin-ext-700.ttf b/assets/fonts/montserrat-v12-latin-ext-700.ttf similarity index 100% rename from fonts/montserrat-v12-latin-ext-700.ttf rename to assets/fonts/montserrat-v12-latin-ext-700.ttf diff --git a/fonts/montserrat-v12-latin-ext-700.woff b/assets/fonts/montserrat-v12-latin-ext-700.woff similarity index 100% rename from fonts/montserrat-v12-latin-ext-700.woff rename to assets/fonts/montserrat-v12-latin-ext-700.woff diff --git a/fonts/montserrat-v12-latin-ext-700.woff2 b/assets/fonts/montserrat-v12-latin-ext-700.woff2 similarity index 100% rename from fonts/montserrat-v12-latin-ext-700.woff2 rename to assets/fonts/montserrat-v12-latin-ext-700.woff2 diff --git a/fonts/montserrat-v12-latin-ext-700italic.eot b/assets/fonts/montserrat-v12-latin-ext-700italic.eot similarity index 100% rename from fonts/montserrat-v12-latin-ext-700italic.eot rename to assets/fonts/montserrat-v12-latin-ext-700italic.eot diff --git a/fonts/montserrat-v12-latin-ext-700italic.svg b/assets/fonts/montserrat-v12-latin-ext-700italic.svg similarity index 100% rename from fonts/montserrat-v12-latin-ext-700italic.svg rename to assets/fonts/montserrat-v12-latin-ext-700italic.svg diff --git a/fonts/montserrat-v12-latin-ext-700italic.ttf b/assets/fonts/montserrat-v12-latin-ext-700italic.ttf similarity index 100% rename from fonts/montserrat-v12-latin-ext-700italic.ttf rename to assets/fonts/montserrat-v12-latin-ext-700italic.ttf diff --git a/fonts/montserrat-v12-latin-ext-700italic.woff b/assets/fonts/montserrat-v12-latin-ext-700italic.woff similarity index 100% rename from fonts/montserrat-v12-latin-ext-700italic.woff rename to assets/fonts/montserrat-v12-latin-ext-700italic.woff diff --git a/fonts/montserrat-v12-latin-ext-700italic.woff2 b/assets/fonts/montserrat-v12-latin-ext-700italic.woff2 similarity index 100% rename from fonts/montserrat-v12-latin-ext-700italic.woff2 rename to assets/fonts/montserrat-v12-latin-ext-700italic.woff2 diff --git a/img/ic_close_black_18dp_2x.png b/assets/img/ic_close_black_18dp_2x.png similarity index 100% rename from img/ic_close_black_18dp_2x.png rename to assets/img/ic_close_black_18dp_2x.png diff --git a/img/news/default.jpg b/assets/img/news/default.jpg similarity index 100% rename from img/news/default.jpg rename to assets/img/news/default.jpg diff --git a/img/testimonials/default.jpg b/assets/img/testimonials/default.jpg similarity index 100% rename from img/testimonials/default.jpg rename to assets/img/testimonials/default.jpg diff --git a/js/en.json b/assets/js/en.json similarity index 100% rename from js/en.json rename to assets/js/en.json diff --git a/admin/plugins/nestedSortable/jquery.nestedSortable.js b/assets/js/jquery.nestedSortable.js similarity index 100% rename from admin/plugins/nestedSortable/jquery.nestedSortable.js rename to assets/js/jquery.nestedSortable.js diff --git a/js/login.js b/assets/js/login.js similarity index 100% rename from js/login.js rename to assets/js/login.js diff --git a/js/main.js b/assets/js/main.js similarity index 100% rename from js/main.js rename to assets/js/main.js diff --git a/js/ro.json b/assets/js/ro.json similarity index 100% rename from js/ro.json rename to assets/js/ro.json diff --git a/assets/js/tether.min.js b/assets/js/tether.min.js new file mode 100644 index 0000000..d773ce9 --- /dev/null +++ b/assets/js/tether.min.js @@ -0,0 +1 @@ +!function(t,e){"function"==typeof define&&define.amd?define(e):"object"==typeof exports?module.exports=e(require,exports,module):t.Tether=e()}(this,function(t,e,o){"use strict";function i(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function n(t){var e=t.getBoundingClientRect(),o={};for(var i in e)o[i]=e[i];if(t.ownerDocument!==document){var r=t.ownerDocument.defaultView.frameElement;if(r){var s=n(r);o.top+=s.top,o.bottom+=s.top,o.left+=s.left,o.right+=s.left}}return o}function r(t){var e=getComputedStyle(t)||{},o=e.position,i=[];if("fixed"===o)return[t];for(var n=t;(n=n.parentNode)&&n&&1===n.nodeType;){var r=void 0;try{r=getComputedStyle(n)}catch(s){}if("undefined"==typeof r||null===r)return i.push(n),i;var a=r,f=a.overflow,l=a.overflowX,h=a.overflowY;/(auto|scroll|overlay)/.test(f+h+l)&&("absolute"!==o||["relative","absolute","fixed"].indexOf(r.position)>=0)&&i.push(n)}return i.push(t.ownerDocument.body),t.ownerDocument!==document&&i.push(t.ownerDocument.defaultView),i}function s(){A&&document.body.removeChild(A),A=null}function a(t){var e=void 0;t===document?(e=document,t=document.documentElement):e=t.ownerDocument;var o=e.documentElement,i=n(t),r=P();return i.top-=r.top,i.left-=r.left,"undefined"==typeof i.width&&(i.width=document.body.scrollWidth-i.left-i.right),"undefined"==typeof i.height&&(i.height=document.body.scrollHeight-i.top-i.bottom),i.top=i.top-o.clientTop,i.left=i.left-o.clientLeft,i.right=e.body.clientWidth-i.width-i.left,i.bottom=e.body.clientHeight-i.height-i.top,i}function f(t){return t.offsetParent||document.documentElement}function l(){if(M)return M;var t=document.createElement("div");t.style.width="100%",t.style.height="200px";var e=document.createElement("div");h(e.style,{position:"absolute",top:0,left:0,pointerEvents:"none",visibility:"hidden",width:"200px",height:"150px",overflow:"hidden"}),e.appendChild(t),document.body.appendChild(e);var o=t.offsetWidth;e.style.overflow="scroll";var i=t.offsetWidth;o===i&&(i=e.clientWidth),document.body.removeChild(e);var n=o-i;return M={width:n,height:n}}function h(){var t=arguments.length<=0||void 0===arguments[0]?{}:arguments[0],e=[];return Array.prototype.push.apply(e,arguments),e.slice(1).forEach(function(e){if(e)for(var o in e)({}).hasOwnProperty.call(e,o)&&(t[o]=e[o])}),t}function d(t,e){if("undefined"!=typeof t.classList)e.split(" ").forEach(function(e){e.trim()&&t.classList.remove(e)});else{var o=new RegExp("(^| )"+e.split(" ").join("|")+"( |$)","gi"),i=c(t).replace(o," ");g(t,i)}}function p(t,e){if("undefined"!=typeof t.classList)e.split(" ").forEach(function(e){e.trim()&&t.classList.add(e)});else{d(t,e);var o=c(t)+(" "+e);g(t,o)}}function u(t,e){if("undefined"!=typeof t.classList)return t.classList.contains(e);var o=c(t);return new RegExp("(^| )"+e+"( |$)","gi").test(o)}function c(t){return t.className instanceof t.ownerDocument.defaultView.SVGAnimatedString?t.className.baseVal:t.className}function g(t,e){t.setAttribute("class",e)}function m(t,e,o){o.forEach(function(o){e.indexOf(o)===-1&&u(t,o)&&d(t,o)}),e.forEach(function(e){u(t,e)||p(t,e)})}function i(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function v(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e)}function y(t,e){var o=arguments.length<=2||void 0===arguments[2]?1:arguments[2];return t+o>=e&&e>=t-o}function b(){return"object"==typeof performance&&"function"==typeof performance.now?performance.now():+new Date}function w(){for(var t={top:0,left:0},e=arguments.length,o=Array(e),i=0;i<e;i++)o[i]=arguments[i];return o.forEach(function(e){var o=e.top,i=e.left;"string"==typeof o&&(o=parseFloat(o,10)),"string"==typeof i&&(i=parseFloat(i,10)),t.top+=o,t.left+=i}),t}function C(t,e){return"string"==typeof t.left&&t.left.indexOf("%")!==-1&&(t.left=parseFloat(t.left,10)/100*e.width),"string"==typeof t.top&&t.top.indexOf("%")!==-1&&(t.top=parseFloat(t.top,10)/100*e.height),t}function O(t,e){return"scrollParent"===e?e=t.scrollParents[0]:"window"===e&&(e=[pageXOffset,pageYOffset,innerWidth+pageXOffset,innerHeight+pageYOffset]),e===document&&(e=e.documentElement),"undefined"!=typeof e.nodeType&&!function(){var t=e,o=a(e),i=o,n=getComputedStyle(e);if(e=[i.left,i.top,o.width+i.left,o.height+i.top],t.ownerDocument!==document){var r=t.ownerDocument.defaultView;e[0]+=r.pageXOffset,e[1]+=r.pageYOffset,e[2]+=r.pageXOffset,e[3]+=r.pageYOffset}G.forEach(function(t,o){t=t[0].toUpperCase()+t.substr(1),"Top"===t||"Left"===t?e[o]+=parseFloat(n["border"+t+"Width"]):e[o]-=parseFloat(n["border"+t+"Width"])})}(),e}var E=function(){function t(t,e){for(var o=0;o<e.length;o++){var i=e[o];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(t,i.key,i)}}return function(e,o,i){return o&&t(e.prototype,o),i&&t(e,i),e}}(),x=void 0;"undefined"==typeof x&&(x={modules:[]});var A=null,T=function(){var t=0;return function(){return++t}}(),S={},P=function(){var t=A;t&&document.body.contains(t)||(t=document.createElement("div"),t.setAttribute("data-tether-id",T()),h(t.style,{top:0,left:0,position:"absolute"}),document.body.appendChild(t),A=t);var e=t.getAttribute("data-tether-id");return"undefined"==typeof S[e]&&(S[e]=n(t),k(function(){delete S[e]})),S[e]},M=null,W=[],k=function(t){W.push(t)},_=function(){for(var t=void 0;t=W.pop();)t()},B=function(){function t(){i(this,t)}return E(t,[{key:"on",value:function(t,e,o){var i=!(arguments.length<=3||void 0===arguments[3])&&arguments[3];"undefined"==typeof this.bindings&&(this.bindings={}),"undefined"==typeof this.bindings[t]&&(this.bindings[t]=[]),this.bindings[t].push({handler:e,ctx:o,once:i})}},{key:"once",value:function(t,e,o){this.on(t,e,o,!0)}},{key:"off",value:function(t,e){if("undefined"!=typeof this.bindings&&"undefined"!=typeof this.bindings[t])if("undefined"==typeof e)delete this.bindings[t];else for(var o=0;o<this.bindings[t].length;)this.bindings[t][o].handler===e?this.bindings[t].splice(o,1):++o}},{key:"trigger",value:function(t){if("undefined"!=typeof this.bindings&&this.bindings[t]){for(var e=0,o=arguments.length,i=Array(o>1?o-1:0),n=1;n<o;n++)i[n-1]=arguments[n];for(;e<this.bindings[t].length;){var r=this.bindings[t][e],s=r.handler,a=r.ctx,f=r.once,l=a;"undefined"==typeof l&&(l=this),s.apply(l,i),f?this.bindings[t].splice(e,1):++e}}}}]),t}();x.Utils={getActualBoundingClientRect:n,getScrollParents:r,getBounds:a,getOffsetParent:f,extend:h,addClass:p,removeClass:d,hasClass:u,updateClasses:m,defer:k,flush:_,uniqueId:T,Evented:B,getScrollBarSize:l,removeUtilElements:s};var j=function(){function t(t,e){var o=[],i=!0,n=!1,r=void 0;try{for(var s,a=t[Symbol.iterator]();!(i=(s=a.next()).done)&&(o.push(s.value),!e||o.length!==e);i=!0);}catch(f){n=!0,r=f}finally{try{!i&&a["return"]&&a["return"]()}finally{if(n)throw r}}return o}return function(e,o){if(Array.isArray(e))return e;if(Symbol.iterator in Object(e))return t(e,o);throw new TypeError("Invalid attempt to destructure non-iterable instance")}}(),E=function(){function t(t,e){for(var o=0;o<e.length;o++){var i=e[o];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(t,i.key,i)}}return function(e,o,i){return o&&t(e.prototype,o),i&&t(e,i),e}}(),z=function(t,e,o){for(var i=!0;i;){var n=t,r=e,s=o;i=!1,null===n&&(n=Function.prototype);var a=Object.getOwnPropertyDescriptor(n,r);if(void 0!==a){if("value"in a)return a.value;var f=a.get;if(void 0===f)return;return f.call(s)}var l=Object.getPrototypeOf(n);if(null===l)return;t=l,e=r,o=s,i=!0,a=l=void 0}};if("undefined"==typeof x)throw new Error("You must include the utils.js file before tether.js");var Y=x.Utils,r=Y.getScrollParents,a=Y.getBounds,f=Y.getOffsetParent,h=Y.extend,p=Y.addClass,d=Y.removeClass,m=Y.updateClasses,k=Y.defer,_=Y.flush,l=Y.getScrollBarSize,s=Y.removeUtilElements,L=function(){if("undefined"==typeof document)return"";for(var t=document.createElement("div"),e=["transform","WebkitTransform","OTransform","MozTransform","msTransform"],o=0;o<e.length;++o){var i=e[o];if(void 0!==t.style[i])return i}}(),D=[],X=function(){D.forEach(function(t){t.position(!1)}),_()};!function(){var t=null,e=null,o=null,i=function n(){return"undefined"!=typeof e&&e>16?(e=Math.min(e-16,250),void(o=setTimeout(n,250))):void("undefined"!=typeof t&&b()-t<10||(null!=o&&(clearTimeout(o),o=null),t=b(),X(),e=b()-t))};"undefined"!=typeof window&&"undefined"!=typeof window.addEventListener&&["resize","scroll","touchmove"].forEach(function(t){window.addEventListener(t,i)})}();var F={center:"center",left:"right",right:"left"},H={middle:"middle",top:"bottom",bottom:"top"},N={top:0,left:0,middle:"50%",center:"50%",bottom:"100%",right:"100%"},U=function(t,e){var o=t.left,i=t.top;return"auto"===o&&(o=F[e.left]),"auto"===i&&(i=H[e.top]),{left:o,top:i}},V=function(t){var e=t.left,o=t.top;return"undefined"!=typeof N[t.left]&&(e=N[t.left]),"undefined"!=typeof N[t.top]&&(o=N[t.top]),{left:e,top:o}},R=function(t){var e=t.split(" "),o=j(e,2),i=o[0],n=o[1];return{top:i,left:n}},q=R,I=function(t){function e(t){var o=this;i(this,e),z(Object.getPrototypeOf(e.prototype),"constructor",this).call(this),this.position=this.position.bind(this),D.push(this),this.history=[],this.setOptions(t,!1),x.modules.forEach(function(t){"undefined"!=typeof t.initialize&&t.initialize.call(o)}),this.position()}return v(e,t),E(e,[{key:"getClass",value:function(){var t=arguments.length<=0||void 0===arguments[0]?"":arguments[0],e=this.options.classes;return"undefined"!=typeof e&&e[t]?this.options.classes[t]:this.options.classPrefix?this.options.classPrefix+"-"+t:t}},{key:"setOptions",value:function(t){var e=this,o=arguments.length<=1||void 0===arguments[1]||arguments[1],i={offset:"0 0",targetOffset:"0 0",targetAttachment:"auto auto",classPrefix:"tether"};this.options=h(i,t);var n=this.options,s=n.element,a=n.target,f=n.targetModifier;if(this.element=s,this.target=a,this.targetModifier=f,"viewport"===this.target?(this.target=document.body,this.targetModifier="visible"):"scroll-handle"===this.target&&(this.target=document.body,this.targetModifier="scroll-handle"),["element","target"].forEach(function(t){if("undefined"==typeof e[t])throw new Error("Tether Error: Both element and target must be defined");"undefined"!=typeof e[t].jquery?e[t]=e[t][0]:"string"==typeof e[t]&&(e[t]=document.querySelector(e[t]))}),p(this.element,this.getClass("element")),this.options.addTargetClasses!==!1&&p(this.target,this.getClass("target")),!this.options.attachment)throw new Error("Tether Error: You must provide an attachment");this.targetAttachment=q(this.options.targetAttachment),this.attachment=q(this.options.attachment),this.offset=R(this.options.offset),this.targetOffset=R(this.options.targetOffset),"undefined"!=typeof this.scrollParents&&this.disable(),"scroll-handle"===this.targetModifier?this.scrollParents=[this.target]:this.scrollParents=r(this.target),this.options.enabled!==!1&&this.enable(o)}},{key:"getTargetBounds",value:function(){if("undefined"==typeof this.targetModifier)return a(this.target);if("visible"===this.targetModifier){if(this.target===document.body)return{top:pageYOffset,left:pageXOffset,height:innerHeight,width:innerWidth};var t=a(this.target),e={height:t.height,width:t.width,top:t.top,left:t.left};return e.height=Math.min(e.height,t.height-(pageYOffset-t.top)),e.height=Math.min(e.height,t.height-(t.top+t.height-(pageYOffset+innerHeight))),e.height=Math.min(innerHeight,e.height),e.height-=2,e.width=Math.min(e.width,t.width-(pageXOffset-t.left)),e.width=Math.min(e.width,t.width-(t.left+t.width-(pageXOffset+innerWidth))),e.width=Math.min(innerWidth,e.width),e.width-=2,e.top<pageYOffset&&(e.top=pageYOffset),e.left<pageXOffset&&(e.left=pageXOffset),e}if("scroll-handle"===this.targetModifier){var t=void 0,o=this.target;o===document.body?(o=document.documentElement,t={left:pageXOffset,top:pageYOffset,height:innerHeight,width:innerWidth}):t=a(o);var i=getComputedStyle(o),n=o.scrollWidth>o.clientWidth||[i.overflow,i.overflowX].indexOf("scroll")>=0||this.target!==document.body,r=0;n&&(r=15);var s=t.height-parseFloat(i.borderTopWidth)-parseFloat(i.borderBottomWidth)-r,e={width:15,height:.975*s*(s/o.scrollHeight),left:t.left+t.width-parseFloat(i.borderLeftWidth)-15},f=0;s<408&&this.target===document.body&&(f=-11e-5*Math.pow(s,2)-.00727*s+22.58),this.target!==document.body&&(e.height=Math.max(e.height,24));var l=this.target.scrollTop/(o.scrollHeight-s);return e.top=l*(s-e.height-f)+t.top+parseFloat(i.borderTopWidth),this.target===document.body&&(e.height=Math.max(e.height,24)),e}}},{key:"clearCache",value:function(){this._cache={}}},{key:"cache",value:function(t,e){return"undefined"==typeof this._cache&&(this._cache={}),"undefined"==typeof this._cache[t]&&(this._cache[t]=e.call(this)),this._cache[t]}},{key:"enable",value:function(){var t=this,e=arguments.length<=0||void 0===arguments[0]||arguments[0];this.options.addTargetClasses!==!1&&p(this.target,this.getClass("enabled")),p(this.element,this.getClass("enabled")),this.enabled=!0,this.scrollParents.forEach(function(e){e!==t.target.ownerDocument&&e.addEventListener("scroll",t.position)}),e&&this.position()}},{key:"disable",value:function(){var t=this;d(this.target,this.getClass("enabled")),d(this.element,this.getClass("enabled")),this.enabled=!1,"undefined"!=typeof this.scrollParents&&this.scrollParents.forEach(function(e){e.removeEventListener("scroll",t.position)})}},{key:"destroy",value:function(){var t=this;this.disable(),D.forEach(function(e,o){e===t&&D.splice(o,1)}),0===D.length&&s()}},{key:"updateAttachClasses",value:function(t,e){var o=this;t=t||this.attachment,e=e||this.targetAttachment;var i=["left","top","bottom","right","middle","center"];"undefined"!=typeof this._addAttachClasses&&this._addAttachClasses.length&&this._addAttachClasses.splice(0,this._addAttachClasses.length),"undefined"==typeof this._addAttachClasses&&(this._addAttachClasses=[]);var n=this._addAttachClasses;t.top&&n.push(this.getClass("element-attached")+"-"+t.top),t.left&&n.push(this.getClass("element-attached")+"-"+t.left),e.top&&n.push(this.getClass("target-attached")+"-"+e.top),e.left&&n.push(this.getClass("target-attached")+"-"+e.left);var r=[];i.forEach(function(t){r.push(o.getClass("element-attached")+"-"+t),r.push(o.getClass("target-attached")+"-"+t)}),k(function(){"undefined"!=typeof o._addAttachClasses&&(m(o.element,o._addAttachClasses,r),o.options.addTargetClasses!==!1&&m(o.target,o._addAttachClasses,r),delete o._addAttachClasses)})}},{key:"position",value:function(){var t=this,e=arguments.length<=0||void 0===arguments[0]||arguments[0];if(this.enabled){this.clearCache();var o=U(this.targetAttachment,this.attachment);this.updateAttachClasses(this.attachment,o);var i=this.cache("element-bounds",function(){return a(t.element)}),n=i.width,r=i.height;if(0===n&&0===r&&"undefined"!=typeof this.lastSize){var s=this.lastSize;n=s.width,r=s.height}else this.lastSize={width:n,height:r};var h=this.cache("target-bounds",function(){return t.getTargetBounds()}),d=h,p=C(V(this.attachment),{width:n,height:r}),u=C(V(o),d),c=C(this.offset,{width:n,height:r}),g=C(this.targetOffset,d);p=w(p,c),u=w(u,g);for(var m=h.left+u.left-p.left,v=h.top+u.top-p.top,y=0;y<x.modules.length;++y){var b=x.modules[y],O=b.position.call(this,{left:m,top:v,targetAttachment:o,targetPos:h,elementPos:i,offset:p,targetOffset:u,manualOffset:c,manualTargetOffset:g,scrollbarSize:S,attachment:this.attachment});if(O===!1)return!1;"undefined"!=typeof O&&"object"==typeof O&&(v=O.top,m=O.left)}var E={page:{top:v,left:m},viewport:{top:v-pageYOffset,bottom:pageYOffset-v-r+innerHeight,left:m-pageXOffset,right:pageXOffset-m-n+innerWidth}},A=this.target.ownerDocument,T=A.defaultView,S=void 0;return T.innerHeight>A.documentElement.clientHeight&&(S=this.cache("scrollbar-size",l),E.viewport.bottom-=S.height),T.innerWidth>A.documentElement.clientWidth&&(S=this.cache("scrollbar-size",l),E.viewport.right-=S.width),["","static"].indexOf(A.body.style.position)!==-1&&["","static"].indexOf(A.body.parentElement.style.position)!==-1||(E.page.bottom=A.body.scrollHeight-v-r,E.page.right=A.body.scrollWidth-m-n),"undefined"!=typeof this.options.optimizations&&this.options.optimizations.moveElement!==!1&&"undefined"==typeof this.targetModifier&&!function(){var e=t.cache("target-offsetparent",function(){return f(t.target)}),o=t.cache("target-offsetparent-bounds",function(){return a(e)}),i=getComputedStyle(e),n=o,r={};if(["Top","Left","Bottom","Right"].forEach(function(t){r[t.toLowerCase()]=parseFloat(i["border"+t+"Width"])}),o.right=A.body.scrollWidth-o.left-n.width+r.right,o.bottom=A.body.scrollHeight-o.top-n.height+r.bottom,E.page.top>=o.top+r.top&&E.page.bottom>=o.bottom&&E.page.left>=o.left+r.left&&E.page.right>=o.right){var s=e.scrollTop,l=e.scrollLeft;E.offset={top:E.page.top-o.top+s-r.top,left:E.page.left-o.left+l-r.left}}}(),this.move(E),this.history.unshift(E),this.history.length>3&&this.history.pop(),e&&_(),!0}}},{key:"move",value:function(t){var e=this;if("undefined"!=typeof this.element.parentNode){var o={};for(var i in t){o[i]={};for(var n in t[i]){for(var r=!1,s=0;s<this.history.length;++s){var a=this.history[s];if("undefined"!=typeof a[i]&&!y(a[i][n],t[i][n])){r=!0;break}}r||(o[i][n]=!0)}}var l={top:"",left:"",right:"",bottom:""},d=function(t,o){var i="undefined"!=typeof e.options.optimizations,n=i?e.options.optimizations.gpu:null;if(n!==!1){var r=void 0,s=void 0;if(t.top?(l.top=0,r=o.top):(l.bottom=0,r=-o.bottom),t.left?(l.left=0,s=o.left):(l.right=0,s=-o.right),window.matchMedia){var a=window.matchMedia("only screen and (min-resolution: 1.3dppx)").matches||window.matchMedia("only screen and (-webkit-min-device-pixel-ratio: 1.3)").matches;a||(s=Math.round(s),r=Math.round(r))}l[L]="translateX("+s+"px) translateY("+r+"px)","msTransform"!==L&&(l[L]+=" translateZ(0)")}else t.top?l.top=o.top+"px":l.bottom=o.bottom+"px",t.left?l.left=o.left+"px":l.right=o.right+"px"},p=!1;if((o.page.top||o.page.bottom)&&(o.page.left||o.page.right)?(l.position="absolute",d(o.page,t.page)):(o.viewport.top||o.viewport.bottom)&&(o.viewport.left||o.viewport.right)?(l.position="fixed",d(o.viewport,t.viewport)):"undefined"!=typeof o.offset&&o.offset.top&&o.offset.left?!function(){l.position="absolute";var i=e.cache("target-offsetparent",function(){return f(e.target)});f(e.element)!==i&&k(function(){e.element.parentNode.removeChild(e.element),i.appendChild(e.element)}),d(o.offset,t.offset),p=!0}():(l.position="absolute",d({top:!0,left:!0},t.page)),!p)if(this.options.bodyElement)this.element.parentNode!==this.options.bodyElement&&this.options.bodyElement.appendChild(this.element);else{for(var u=!0,c=this.element.parentNode;c&&1===c.nodeType&&"BODY"!==c.tagName;){if("static"!==getComputedStyle(c).position){u=!1;break}c=c.parentNode}u||(this.element.parentNode.removeChild(this.element),this.element.ownerDocument.body.appendChild(this.element))}var g={},m=!1;for(var n in l){var v=l[n],b=this.element.style[n];b!==v&&(m=!0,g[n]=v)}m&&k(function(){h(e.element.style,g),e.trigger("repositioned")})}}}]),e}(B);I.modules=[],x.position=X;var $=h(I,x),j=function(){function t(t,e){var o=[],i=!0,n=!1,r=void 0;try{for(var s,a=t[Symbol.iterator]();!(i=(s=a.next()).done)&&(o.push(s.value),!e||o.length!==e);i=!0);}catch(f){n=!0,r=f}finally{try{!i&&a["return"]&&a["return"]()}finally{if(n)throw r}}return o}return function(e,o){if(Array.isArray(e))return e;if(Symbol.iterator in Object(e))return t(e,o);throw new TypeError("Invalid attempt to destructure non-iterable instance")}}(),Y=x.Utils,a=Y.getBounds,h=Y.extend,m=Y.updateClasses,k=Y.defer,G=["left","top","right","bottom"];x.modules.push({position:function(t){var e=this,o=t.top,i=t.left,n=t.targetAttachment;if(!this.options.constraints)return!0;var r=this.cache("element-bounds",function(){return a(e.element)}),s=r.height,f=r.width;if(0===f&&0===s&&"undefined"!=typeof this.lastSize){var l=this.lastSize;f=l.width,s=l.height}var d=this.cache("target-bounds",function(){return e.getTargetBounds()}),p=d.height,u=d.width,c=[this.getClass("pinned"),this.getClass("out-of-bounds")];this.options.constraints.forEach(function(t){var e=t.outOfBoundsClass,o=t.pinnedClass;e&&c.push(e),o&&c.push(o)}),c.forEach(function(t){["left","top","right","bottom"].forEach(function(e){c.push(t+"-"+e)})});var g=[],v=h({},n),y=h({},this.attachment);return this.options.constraints.forEach(function(t){var r=t.to,a=t.attachment,l=t.pin;"undefined"==typeof a&&(a="");var h=void 0,d=void 0;if(a.indexOf(" ")>=0){var c=a.split(" "),m=j(c,2);d=m[0],h=m[1]}else h=d=a;var b=O(e,r);"target"!==d&&"both"!==d||(o<b[1]&&"top"===v.top&&(o+=p,v.top="bottom"),o+s>b[3]&&"bottom"===v.top&&(o-=p,v.top="top")),"together"===d&&("top"===v.top&&("bottom"===y.top&&o<b[1]?(o+=p,v.top="bottom",o+=s,y.top="top"):"top"===y.top&&o+s>b[3]&&o-(s-p)>=b[1]&&(o-=s-p,v.top="bottom",y.top="bottom")),"bottom"===v.top&&("top"===y.top&&o+s>b[3]?(o-=p,v.top="top",o-=s,y.top="bottom"):"bottom"===y.top&&o<b[1]&&o+(2*s-p)<=b[3]&&(o+=s-p,v.top="top",y.top="top")),"middle"===v.top&&(o+s>b[3]&&"top"===y.top?(o-=s,y.top="bottom"):o<b[1]&&"bottom"===y.top&&(o+=s,y.top="top"))),"target"!==h&&"both"!==h||(i<b[0]&&"left"===v.left&&(i+=u,v.left="right"),i+f>b[2]&&"right"===v.left&&(i-=u,v.left="left")),"together"===h&&(i<b[0]&&"left"===v.left?"right"===y.left?(i+=u,v.left="right",i+=f,y.left="left"):"left"===y.left&&(i+=u,v.left="right",i-=f,y.left="right"):i+f>b[2]&&"right"===v.left?"left"===y.left?(i-=u,v.left="left",i-=f,y.left="right"):"right"===y.left&&(i-=u,v.left="left",i+=f,y.left="left"):"center"===v.left&&(i+f>b[2]&&"left"===y.left?(i-=f,y.left="right"):i<b[0]&&"right"===y.left&&(i+=f,y.left="left"))),"element"!==d&&"both"!==d||(o<b[1]&&"bottom"===y.top&&(o+=s,y.top="top"),o+s>b[3]&&"top"===y.top&&(o-=s,y.top="bottom")),"element"!==h&&"both"!==h||(i<b[0]&&("right"===y.left?(i+=f,y.left="left"):"center"===y.left&&(i+=f/2,y.left="left")),i+f>b[2]&&("left"===y.left?(i-=f,y.left="right"):"center"===y.left&&(i-=f/2,y.left="right"))),"string"==typeof l?l=l.split(",").map(function(t){return t.trim()}):l===!0&&(l=["top","left","right","bottom"]),l=l||[];var w=[],C=[];o<b[1]&&(l.indexOf("top")>=0?(o=b[1],w.push("top")):C.push("top")),o+s>b[3]&&(l.indexOf("bottom")>=0?(o=b[3]-s,w.push("bottom")):C.push("bottom")),i<b[0]&&(l.indexOf("left")>=0?(i=b[0],w.push("left")):C.push("left")),i+f>b[2]&&(l.indexOf("right")>=0?(i=b[2]-f,w.push("right")):C.push("right")),w.length&&!function(){var t=void 0;t="undefined"!=typeof e.options.pinnedClass?e.options.pinnedClass:e.getClass("pinned"),g.push(t),w.forEach(function(e){g.push(t+"-"+e)})}(),C.length&&!function(){var t=void 0;t="undefined"!=typeof e.options.outOfBoundsClass?e.options.outOfBoundsClass:e.getClass("out-of-bounds"),g.push(t),C.forEach(function(e){g.push(t+"-"+e)})}(),(w.indexOf("left")>=0||w.indexOf("right")>=0)&&(y.left=v.left=!1),(w.indexOf("top")>=0||w.indexOf("bottom")>=0)&&(y.top=v.top=!1),v.top===n.top&&v.left===n.left&&y.top===e.attachment.top&&y.left===e.attachment.left||(e.updateAttachClasses(y,v),e.trigger("update",{attachment:y,targetAttachment:v}))}),k(function(){e.options.addTargetClasses!==!1&&m(e.target,g,c),m(e.element,g,c)}),{top:o,left:i}}});var Y=x.Utils,a=Y.getBounds,m=Y.updateClasses,k=Y.defer;x.modules.push({position:function(t){var e=this,o=t.top,i=t.left,n=this.cache("element-bounds",function(){return a(e.element)}),r=n.height,s=n.width,f=this.getTargetBounds(),l=o+r,h=i+s,d=[];o<=f.bottom&&l>=f.top&&["left","right"].forEach(function(t){var e=f[t];e!==i&&e!==h||d.push(t)}),i<=f.right&&h>=f.left&&["top","bottom"].forEach(function(t){var e=f[t];e!==o&&e!==l||d.push(t)});var p=[],u=[],c=["left","top","right","bottom"];return p.push(this.getClass("abutted")),c.forEach(function(t){p.push(e.getClass("abutted")+"-"+t)}),d.length&&u.push(this.getClass("abutted")),d.forEach(function(t){u.push(e.getClass("abutted")+"-"+t)}),k(function(){e.options.addTargetClasses!==!1&&m(e.target,u,p),m(e.element,u,p)}),!0}});var j=function(){function t(t,e){var o=[],i=!0,n=!1,r=void 0;try{for(var s,a=t[Symbol.iterator]();!(i=(s=a.next()).done)&&(o.push(s.value),!e||o.length!==e);i=!0);}catch(f){n=!0,r=f}finally{try{!i&&a["return"]&&a["return"]()}finally{if(n)throw r}}return o}return function(e,o){if(Array.isArray(e))return e;if(Symbol.iterator in Object(e))return t(e,o);throw new TypeError("Invalid attempt to destructure non-iterable instance")}}();return x.modules.push({position:function(t){var e=t.top,o=t.left;if(this.options.shift){var i=this.options.shift;"function"==typeof this.options.shift&&(i=this.options.shift.call(this,{top:e,left:o}));var n=void 0,r=void 0;if("string"==typeof i){i=i.split(" "),i[1]=i[1]||i[0];var s=i,a=j(s,2);n=a[0],r=a[1],n=parseFloat(n,10),r=parseFloat(r,10)}else n=i.top,r=i.left;return e+=n,o+=r,{top:e,left:o}}}}),$}); diff --git a/js/validate.min.js b/assets/js/validate.min.js similarity index 100% rename from js/validate.min.js rename to assets/js/validate.min.js diff --git a/composer.json b/composer.json new file mode 100644 index 0000000..5345f64 --- /dev/null +++ b/composer.json @@ -0,0 +1,58 @@ +{ + "name": "al3x2508/easypiba", + "description": "A lightweight PHP framework, easy to install, easy to learn, easy to develop.", + "keywords": [ + "framework", + "easypiba" + ], + "license": "MIT", + "type": "project", + "authors": [ + { + "name": "Alexandru Glavan", + "email": "alexandru.glavan@easypiba.com" + } + ], + "require": { + "composer/installers": "~1.0", + "php": "^5.6", + "ext-zip": "*", + "ext-gd": "*", + "tedivm/jshrink": "*", + "phpoffice/phpexcel": "*", + "paquettg/php-html-parser": "~1.7", + "paquettg/string-encode": "*", + "masterexploder/phpthumb": "*", + "sabberworm/php-css-parser": "*", + "phpmailer/phpmailer": "*", + "almasaeed2010/adminlte": "*", + "twbs/bootstrap": ">=4.0.0", + "components/jquery": ">=2.1.0", + "components/jqueryui": ">=1.11.1", + "components/font-awesome": ">=4.0.0", + "ckeditor/ckeditor": "4.*", + "ckeditor/imageuploader": "4.1.8", + "datatables/datatables": ">=1.10.11" + }, + "repositories": [ + { + "type": "package", + "package": { + "name": "ckeditor/imageuploader", + "version": "4.1.8", + "extra": { + "installer-name": "ckeditor.imageuploader" + }, + "dist": { + "url": "https://download.ckeditor.com/imageuploader/releases/imageuploader_4.1.8.zip", + "type": "zip" + } + } + } + ], + "autoload": { + "psr-0": { + "Utils\\": "Utils/" + } + } +} \ No newline at end of file diff --git a/css/bootstrap.css b/css/bootstrap.css deleted file mode 100644 index a8da074..0000000 --- a/css/bootstrap.css +++ /dev/null @@ -1,6 +0,0 @@ -/*! - * Bootstrap v4.0.0-alpha.6 (https://getbootstrap.com) - * Copyright 2011-2017 The Bootstrap Authors - * Copyright 2011-2017 Twitter, Inc. - * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) - *//*! normalize.css v5.0.0 | MIT License | github.com/necolas/normalize.css */html{font-family:sans-serif;line-height:1.15;-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%}body{margin:0}article,aside,footer,header,nav,section{display:block}h1{font-size:2em;margin:.67em 0}figcaption,figure,main{display:block}figure{margin:1em 40px}hr{-webkit-box-sizing:content-box;box-sizing:content-box;height:0;overflow:visible}pre{font-family:monospace,monospace;font-size:1em}a{background-color:transparent;-webkit-text-decoration-skip:objects}a:active,a:hover{outline-width:0}abbr[title]{border-bottom:none;text-decoration:underline;text-decoration:underline dotted}b,strong{font-weight:inherit}b,strong{font-weight:bolder}code,kbd,samp{font-family:monospace,monospace;font-size:1em}dfn{font-style:italic}mark{background-color:#ff0;color:#000}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}audio,video{display:inline-block}audio:not([controls]){display:none;height:0}img{border-style:none}svg:not(:root){overflow:hidden}button,input,optgroup,select,textarea{font-family:sans-serif;font-size:100%;line-height:1.15;margin:0}button,input{overflow:visible}button,select{text-transform:none}[type=reset],[type=submit],button,html [type=button]{-webkit-appearance:button}[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button::-moz-focus-inner{border-style:none;padding:0}[type=button]:-moz-focusring,[type=reset]:-moz-focusring,[type=submit]:-moz-focusring,button:-moz-focusring{outline:1px dotted ButtonText}fieldset{border:1px solid silver;margin:0 2px;padding:.35em .625em .75em}legend{-webkit-box-sizing:border-box;box-sizing:border-box;color:inherit;display:table;max-width:100%;padding:0;white-space:normal}progress{display:inline-block;vertical-align:baseline}textarea{overflow:auto}[type=checkbox],[type=radio]{-webkit-box-sizing:border-box;box-sizing:border-box;padding:0}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}[type=search]::-webkit-search-cancel-button,[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}details,menu{display:block}summary{display:list-item}canvas{display:inline-block}template{display:none}[hidden]{display:none}@media print{*,::after,::before,blockquote::first-letter,blockquote::first-line,div::first-letter,div::first-line,li::first-letter,li::first-line,p::first-letter,p::first-line{text-shadow:none!important;-webkit-box-shadow:none!important;box-shadow:none!important}a,a:visited{text-decoration:underline}abbr[title]::after{content:" (" attr(title) ")"}pre{white-space:pre-wrap!important}blockquote,pre{border:1px solid #999;page-break-inside:avoid}thead{display:table-header-group}img,tr{page-break-inside:avoid}h2,h3,p{orphans:3;widows:3}h2,h3{page-break-after:avoid}.navbar{display:none}.badge{border:1px solid #000}.table{border-collapse:collapse!important}.table td,.table th{background-color:#fff!important}.table-bordered td,.table-bordered th{border:1px solid #ddd!important}}html{-webkit-box-sizing:border-box;box-sizing:border-box}*,::after,::before{-webkit-box-sizing:inherit;box-sizing:inherit}@-ms-viewport{width:device-width}html{-ms-overflow-style:scrollbar;-webkit-tap-highlight-color:transparent}body{font-family:-apple-system,system-ui,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-size:1rem;font-weight:400;line-height:1.5;color:#292b2c;background-color:#fff}[tabindex="-1"]:focus{outline:0!important}h1,h2,h3,h4,h5,h6{margin-top:0;margin-bottom:.5rem}p{margin-top:0;margin-bottom:1rem}abbr[data-original-title],abbr[title]{cursor:help}address{margin-bottom:1rem;font-style:normal;line-height:inherit}dl,ol,ul{margin-top:0;margin-bottom:1rem}ol ol,ol ul,ul ol,ul ul{margin-bottom:0}dt{font-weight:700}dd{margin-bottom:.5rem;margin-left:0}blockquote{margin:0 0 1rem}a{color:#0275d8;text-decoration:none}a:focus,a:hover{color:#014c8c;text-decoration:underline}a:not([href]):not([tabindex]){color:inherit;text-decoration:none}a:not([href]):not([tabindex]):focus,a:not([href]):not([tabindex]):hover{color:inherit;text-decoration:none}a:not([href]):not([tabindex]):focus{outline:0}pre{margin-top:0;margin-bottom:1rem;overflow:auto}figure{margin:0 0 1rem}img{vertical-align:middle}[role=button]{cursor:pointer}[role=button],a,area,button,input,label,select,summary,textarea{-ms-touch-action:manipulation;touch-action:manipulation}table{border-collapse:collapse;background-color:transparent}caption{padding-top:.75rem;padding-bottom:.75rem;color:#636c72;text-align:left;caption-side:bottom}th{text-align:left}label{display:inline-block;margin-bottom:.5rem}button:focus{outline:1px dotted;outline:5px auto -webkit-focus-ring-color}button,input,select,textarea{line-height:inherit}input[type=checkbox]:disabled,input[type=radio]:disabled{cursor:not-allowed}input[type=date],input[type=time],input[type=datetime-local],input[type=month]{-webkit-appearance:listbox}textarea{resize:vertical}fieldset{min-width:0;padding:0;margin:0;border:0}legend{display:block;width:100%;padding:0;margin-bottom:.5rem;font-size:1.5rem;line-height:inherit}input[type=search]{-webkit-appearance:none}output{display:inline-block}[hidden]{display:none!important}.h1,.h2,.h3,.h4,.h5,.h6,h1,h2,h3,h4,h5,h6{margin-bottom:.5rem;font-family:inherit;font-weight:500;line-height:1.1;color:inherit}.h1,h1{font-size:2.5rem}.h2,h2{font-size:2rem}.h3,h3{font-size:1.75rem}.h4,h4{font-size:1.5rem}.h5,h5{font-size:1.25rem}.h6,h6{font-size:1rem}.lead{font-size:1.25rem;font-weight:300}.display-1{font-size:6rem;font-weight:300;line-height:1.1}.display-2{font-size:5.5rem;font-weight:300;line-height:1.1}.display-3{font-size:4.5rem;font-weight:300;line-height:1.1}.display-4{font-size:3.5rem;font-weight:300;line-height:1.1}hr{margin-top:1rem;margin-bottom:1rem;border:0;border-top:1px solid rgba(0,0,0,.1)}.small,small{font-size:80%;font-weight:400}.mark,mark{padding:.2em;background-color:#fcf8e3}.list-unstyled{padding-left:0;list-style:none}.list-inline{padding-left:0;list-style:none}.list-inline-item{display:inline-block}.list-inline-item:not(:last-child){margin-right:5px}.initialism{font-size:90%;text-transform:uppercase}.blockquote{padding:.5rem 1rem;margin-bottom:1rem;font-size:1.25rem;border-left:.25rem solid #eceeef}.blockquote-footer{display:block;font-size:80%;color:#636c72}.blockquote-footer::before{content:"\2014 \00A0"}.blockquote-reverse{padding-right:1rem;padding-left:0;text-align:right;border-right:.25rem solid #eceeef;border-left:0}.blockquote-reverse .blockquote-footer::before{content:""}.blockquote-reverse .blockquote-footer::after{content:"\00A0 \2014"}.img-fluid{max-width:100%;height:auto}.img-thumbnail{padding:.25rem;background-color:#fff;border:1px solid #ddd;border-radius:.25rem;-webkit-transition:all .2s ease-in-out;-o-transition:all .2s ease-in-out;transition:all .2s ease-in-out;max-width:100%;height:auto}.figure{display:inline-block}.figure-img{margin-bottom:.5rem;line-height:1}.figure-caption{font-size:90%;color:#636c72}code,kbd,pre,samp{font-family:Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace}code{padding:.2rem .4rem;font-size:90%;color:#bd4147;background-color:#f7f7f9;border-radius:.25rem}a>code{padding:0;color:inherit;background-color:inherit}kbd{padding:.2rem .4rem;font-size:90%;color:#fff;background-color:#292b2c;border-radius:.2rem}kbd kbd{padding:0;font-size:100%;font-weight:700}pre{display:block;margin-top:0;margin-bottom:1rem;font-size:90%;color:#292b2c}pre code{padding:0;font-size:inherit;color:inherit;background-color:transparent;border-radius:0}.pre-scrollable{max-height:340px;overflow-y:scroll}.container{position:relative;margin-left:auto;margin-right:auto;padding-right:15px;padding-left:15px}@media (min-width:576px){.container{padding-right:15px;padding-left:15px}}@media (min-width:768px){.container{padding-right:15px;padding-left:15px}}@media (min-width:992px){.container{padding-right:15px;padding-left:15px}}@media (min-width:1200px){.container{padding-right:15px;padding-left:15px}}@media (min-width:576px){.container{width:540px;max-width:100%}}@media (min-width:768px){.container{width:720px;max-width:100%}}@media (min-width:992px){.container{width:960px;max-width:100%}}@media (min-width:1200px){.container{width:1140px;max-width:100%}}.container-fluid{position:relative;margin-left:auto;margin-right:auto;padding-right:15px;padding-left:15px}@media (min-width:576px){.container-fluid{padding-right:15px;padding-left:15px}}@media (min-width:768px){.container-fluid{padding-right:15px;padding-left:15px}}@media (min-width:992px){.container-fluid{padding-right:15px;padding-left:15px}}@media (min-width:1200px){.container-fluid{padding-right:15px;padding-left:15px}}.row{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;margin-right:-15px;margin-left:-15px}@media (min-width:576px){.row{margin-right:-15px;margin-left:-15px}}@media (min-width:768px){.row{margin-right:-15px;margin-left:-15px}}@media (min-width:992px){.row{margin-right:-15px;margin-left:-15px}}@media (min-width:1200px){.row{margin-right:-15px;margin-left:-15px}}.no-gutters{margin-right:0;margin-left:0}.no-gutters>.col,.no-gutters>[class*=col-]{padding-right:0;padding-left:0}.col,.col-1,.col-10,.col-11,.col-12,.col-2,.col-3,.col-4,.col-5,.col-6,.col-7,.col-8,.col-9,.col-lg,.col-lg-1,.col-lg-10,.col-lg-11,.col-lg-12,.col-lg-2,.col-lg-3,.col-lg-4,.col-lg-5,.col-lg-6,.col-lg-7,.col-lg-8,.col-lg-9,.col-md,.col-md-1,.col-md-10,.col-md-11,.col-md-12,.col-md-2,.col-md-3,.col-md-4,.col-md-5,.col-md-6,.col-md-7,.col-md-8,.col-md-9,.col-sm,.col-sm-1,.col-sm-10,.col-sm-11,.col-sm-12,.col-sm-2,.col-sm-3,.col-sm-4,.col-sm-5,.col-sm-6,.col-sm-7,.col-sm-8,.col-sm-9,.col-xl,.col-xl-1,.col-xl-10,.col-xl-11,.col-xl-12,.col-xl-2,.col-xl-3,.col-xl-4,.col-xl-5,.col-xl-6,.col-xl-7,.col-xl-8,.col-xl-9{position:relative;width:100%;min-height:1px;padding-right:15px;padding-left:15px}@media (min-width:576px){.col,.col-1,.col-10,.col-11,.col-12,.col-2,.col-3,.col-4,.col-5,.col-6,.col-7,.col-8,.col-9,.col-lg,.col-lg-1,.col-lg-10,.col-lg-11,.col-lg-12,.col-lg-2,.col-lg-3,.col-lg-4,.col-lg-5,.col-lg-6,.col-lg-7,.col-lg-8,.col-lg-9,.col-md,.col-md-1,.col-md-10,.col-md-11,.col-md-12,.col-md-2,.col-md-3,.col-md-4,.col-md-5,.col-md-6,.col-md-7,.col-md-8,.col-md-9,.col-sm,.col-sm-1,.col-sm-10,.col-sm-11,.col-sm-12,.col-sm-2,.col-sm-3,.col-sm-4,.col-sm-5,.col-sm-6,.col-sm-7,.col-sm-8,.col-sm-9,.col-xl,.col-xl-1,.col-xl-10,.col-xl-11,.col-xl-12,.col-xl-2,.col-xl-3,.col-xl-4,.col-xl-5,.col-xl-6,.col-xl-7,.col-xl-8,.col-xl-9{padding-right:15px;padding-left:15px}}@media (min-width:768px){.col,.col-1,.col-10,.col-11,.col-12,.col-2,.col-3,.col-4,.col-5,.col-6,.col-7,.col-8,.col-9,.col-lg,.col-lg-1,.col-lg-10,.col-lg-11,.col-lg-12,.col-lg-2,.col-lg-3,.col-lg-4,.col-lg-5,.col-lg-6,.col-lg-7,.col-lg-8,.col-lg-9,.col-md,.col-md-1,.col-md-10,.col-md-11,.col-md-12,.col-md-2,.col-md-3,.col-md-4,.col-md-5,.col-md-6,.col-md-7,.col-md-8,.col-md-9,.col-sm,.col-sm-1,.col-sm-10,.col-sm-11,.col-sm-12,.col-sm-2,.col-sm-3,.col-sm-4,.col-sm-5,.col-sm-6,.col-sm-7,.col-sm-8,.col-sm-9,.col-xl,.col-xl-1,.col-xl-10,.col-xl-11,.col-xl-12,.col-xl-2,.col-xl-3,.col-xl-4,.col-xl-5,.col-xl-6,.col-xl-7,.col-xl-8,.col-xl-9{padding-right:15px;padding-left:15px}}@media (min-width:992px){.col,.col-1,.col-10,.col-11,.col-12,.col-2,.col-3,.col-4,.col-5,.col-6,.col-7,.col-8,.col-9,.col-lg,.col-lg-1,.col-lg-10,.col-lg-11,.col-lg-12,.col-lg-2,.col-lg-3,.col-lg-4,.col-lg-5,.col-lg-6,.col-lg-7,.col-lg-8,.col-lg-9,.col-md,.col-md-1,.col-md-10,.col-md-11,.col-md-12,.col-md-2,.col-md-3,.col-md-4,.col-md-5,.col-md-6,.col-md-7,.col-md-8,.col-md-9,.col-sm,.col-sm-1,.col-sm-10,.col-sm-11,.col-sm-12,.col-sm-2,.col-sm-3,.col-sm-4,.col-sm-5,.col-sm-6,.col-sm-7,.col-sm-8,.col-sm-9,.col-xl,.col-xl-1,.col-xl-10,.col-xl-11,.col-xl-12,.col-xl-2,.col-xl-3,.col-xl-4,.col-xl-5,.col-xl-6,.col-xl-7,.col-xl-8,.col-xl-9{padding-right:15px;padding-left:15px}}@media (min-width:1200px){.col,.col-1,.col-10,.col-11,.col-12,.col-2,.col-3,.col-4,.col-5,.col-6,.col-7,.col-8,.col-9,.col-lg,.col-lg-1,.col-lg-10,.col-lg-11,.col-lg-12,.col-lg-2,.col-lg-3,.col-lg-4,.col-lg-5,.col-lg-6,.col-lg-7,.col-lg-8,.col-lg-9,.col-md,.col-md-1,.col-md-10,.col-md-11,.col-md-12,.col-md-2,.col-md-3,.col-md-4,.col-md-5,.col-md-6,.col-md-7,.col-md-8,.col-md-9,.col-sm,.col-sm-1,.col-sm-10,.col-sm-11,.col-sm-12,.col-sm-2,.col-sm-3,.col-sm-4,.col-sm-5,.col-sm-6,.col-sm-7,.col-sm-8,.col-sm-9,.col-xl,.col-xl-1,.col-xl-10,.col-xl-11,.col-xl-12,.col-xl-2,.col-xl-3,.col-xl-4,.col-xl-5,.col-xl-6,.col-xl-7,.col-xl-8,.col-xl-9{padding-right:15px;padding-left:15px}}.col{-webkit-flex-basis:0;-ms-flex-preferred-size:0;flex-basis:0;-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;max-width:100%}.col-auto{-webkit-box-flex:0;-webkit-flex:0 0 auto;-ms-flex:0 0 auto;flex:0 0 auto;width:auto}.col-1{-webkit-box-flex:0;-webkit-flex:0 0 8.333333%;-ms-flex:0 0 8.333333%;flex:0 0 8.333333%;max-width:8.333333%}.col-2{-webkit-box-flex:0;-webkit-flex:0 0 16.666667%;-ms-flex:0 0 16.666667%;flex:0 0 16.666667%;max-width:16.666667%}.col-3{-webkit-box-flex:0;-webkit-flex:0 0 25%;-ms-flex:0 0 25%;flex:0 0 25%;max-width:25%}.col-4{-webkit-box-flex:0;-webkit-flex:0 0 33.333333%;-ms-flex:0 0 33.333333%;flex:0 0 33.333333%;max-width:33.333333%}.col-5{-webkit-box-flex:0;-webkit-flex:0 0 41.666667%;-ms-flex:0 0 41.666667%;flex:0 0 41.666667%;max-width:41.666667%}.col-6{-webkit-box-flex:0;-webkit-flex:0 0 50%;-ms-flex:0 0 50%;flex:0 0 50%;max-width:50%}.col-7{-webkit-box-flex:0;-webkit-flex:0 0 58.333333%;-ms-flex:0 0 58.333333%;flex:0 0 58.333333%;max-width:58.333333%}.col-8{-webkit-box-flex:0;-webkit-flex:0 0 66.666667%;-ms-flex:0 0 66.666667%;flex:0 0 66.666667%;max-width:66.666667%}.col-9{-webkit-box-flex:0;-webkit-flex:0 0 75%;-ms-flex:0 0 75%;flex:0 0 75%;max-width:75%}.col-10{-webkit-box-flex:0;-webkit-flex:0 0 83.333333%;-ms-flex:0 0 83.333333%;flex:0 0 83.333333%;max-width:83.333333%}.col-11{-webkit-box-flex:0;-webkit-flex:0 0 91.666667%;-ms-flex:0 0 91.666667%;flex:0 0 91.666667%;max-width:91.666667%}.col-12{-webkit-box-flex:0;-webkit-flex:0 0 100%;-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}.pull-0{right:auto}.pull-1{right:8.333333%}.pull-2{right:16.666667%}.pull-3{right:25%}.pull-4{right:33.333333%}.pull-5{right:41.666667%}.pull-6{right:50%}.pull-7{right:58.333333%}.pull-8{right:66.666667%}.pull-9{right:75%}.pull-10{right:83.333333%}.pull-11{right:91.666667%}.pull-12{right:100%}.push-0{left:auto}.push-1{left:8.333333%}.push-2{left:16.666667%}.push-3{left:25%}.push-4{left:33.333333%}.push-5{left:41.666667%}.push-6{left:50%}.push-7{left:58.333333%}.push-8{left:66.666667%}.push-9{left:75%}.push-10{left:83.333333%}.push-11{left:91.666667%}.push-12{left:100%}.offset-1{margin-left:8.333333%}.offset-2{margin-left:16.666667%}.offset-3{margin-left:25%}.offset-4{margin-left:33.333333%}.offset-5{margin-left:41.666667%}.offset-6{margin-left:50%}.offset-7{margin-left:58.333333%}.offset-8{margin-left:66.666667%}.offset-9{margin-left:75%}.offset-10{margin-left:83.333333%}.offset-11{margin-left:91.666667%}@media (min-width:576px){.col-sm{-webkit-flex-basis:0;-ms-flex-preferred-size:0;flex-basis:0;-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;max-width:100%}.col-sm-auto{-webkit-box-flex:0;-webkit-flex:0 0 auto;-ms-flex:0 0 auto;flex:0 0 auto;width:auto}.col-sm-1{-webkit-box-flex:0;-webkit-flex:0 0 8.333333%;-ms-flex:0 0 8.333333%;flex:0 0 8.333333%;max-width:8.333333%}.col-sm-2{-webkit-box-flex:0;-webkit-flex:0 0 16.666667%;-ms-flex:0 0 16.666667%;flex:0 0 16.666667%;max-width:16.666667%}.col-sm-3{-webkit-box-flex:0;-webkit-flex:0 0 25%;-ms-flex:0 0 25%;flex:0 0 25%;max-width:25%}.col-sm-4{-webkit-box-flex:0;-webkit-flex:0 0 33.333333%;-ms-flex:0 0 33.333333%;flex:0 0 33.333333%;max-width:33.333333%}.col-sm-5{-webkit-box-flex:0;-webkit-flex:0 0 41.666667%;-ms-flex:0 0 41.666667%;flex:0 0 41.666667%;max-width:41.666667%}.col-sm-6{-webkit-box-flex:0;-webkit-flex:0 0 50%;-ms-flex:0 0 50%;flex:0 0 50%;max-width:50%}.col-sm-7{-webkit-box-flex:0;-webkit-flex:0 0 58.333333%;-ms-flex:0 0 58.333333%;flex:0 0 58.333333%;max-width:58.333333%}.col-sm-8{-webkit-box-flex:0;-webkit-flex:0 0 66.666667%;-ms-flex:0 0 66.666667%;flex:0 0 66.666667%;max-width:66.666667%}.col-sm-9{-webkit-box-flex:0;-webkit-flex:0 0 75%;-ms-flex:0 0 75%;flex:0 0 75%;max-width:75%}.col-sm-10{-webkit-box-flex:0;-webkit-flex:0 0 83.333333%;-ms-flex:0 0 83.333333%;flex:0 0 83.333333%;max-width:83.333333%}.col-sm-11{-webkit-box-flex:0;-webkit-flex:0 0 91.666667%;-ms-flex:0 0 91.666667%;flex:0 0 91.666667%;max-width:91.666667%}.col-sm-12{-webkit-box-flex:0;-webkit-flex:0 0 100%;-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}.pull-sm-0{right:auto}.pull-sm-1{right:8.333333%}.pull-sm-2{right:16.666667%}.pull-sm-3{right:25%}.pull-sm-4{right:33.333333%}.pull-sm-5{right:41.666667%}.pull-sm-6{right:50%}.pull-sm-7{right:58.333333%}.pull-sm-8{right:66.666667%}.pull-sm-9{right:75%}.pull-sm-10{right:83.333333%}.pull-sm-11{right:91.666667%}.pull-sm-12{right:100%}.push-sm-0{left:auto}.push-sm-1{left:8.333333%}.push-sm-2{left:16.666667%}.push-sm-3{left:25%}.push-sm-4{left:33.333333%}.push-sm-5{left:41.666667%}.push-sm-6{left:50%}.push-sm-7{left:58.333333%}.push-sm-8{left:66.666667%}.push-sm-9{left:75%}.push-sm-10{left:83.333333%}.push-sm-11{left:91.666667%}.push-sm-12{left:100%}.offset-sm-0{margin-left:0}.offset-sm-1{margin-left:8.333333%}.offset-sm-2{margin-left:16.666667%}.offset-sm-3{margin-left:25%}.offset-sm-4{margin-left:33.333333%}.offset-sm-5{margin-left:41.666667%}.offset-sm-6{margin-left:50%}.offset-sm-7{margin-left:58.333333%}.offset-sm-8{margin-left:66.666667%}.offset-sm-9{margin-left:75%}.offset-sm-10{margin-left:83.333333%}.offset-sm-11{margin-left:91.666667%}}@media (min-width:768px){.col-md{-webkit-flex-basis:0;-ms-flex-preferred-size:0;flex-basis:0;-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;max-width:100%}.col-md-auto{-webkit-box-flex:0;-webkit-flex:0 0 auto;-ms-flex:0 0 auto;flex:0 0 auto;width:auto}.col-md-1{-webkit-box-flex:0;-webkit-flex:0 0 8.333333%;-ms-flex:0 0 8.333333%;flex:0 0 8.333333%;max-width:8.333333%}.col-md-2{-webkit-box-flex:0;-webkit-flex:0 0 16.666667%;-ms-flex:0 0 16.666667%;flex:0 0 16.666667%;max-width:16.666667%}.col-md-3{-webkit-box-flex:0;-webkit-flex:0 0 25%;-ms-flex:0 0 25%;flex:0 0 25%;max-width:25%}.col-md-4{-webkit-box-flex:0;-webkit-flex:0 0 33.333333%;-ms-flex:0 0 33.333333%;flex:0 0 33.333333%;max-width:33.333333%}.col-md-5{-webkit-box-flex:0;-webkit-flex:0 0 41.666667%;-ms-flex:0 0 41.666667%;flex:0 0 41.666667%;max-width:41.666667%}.col-md-6{-webkit-box-flex:0;-webkit-flex:0 0 50%;-ms-flex:0 0 50%;flex:0 0 50%;max-width:50%}.col-md-7{-webkit-box-flex:0;-webkit-flex:0 0 58.333333%;-ms-flex:0 0 58.333333%;flex:0 0 58.333333%;max-width:58.333333%}.col-md-8{-webkit-box-flex:0;-webkit-flex:0 0 66.666667%;-ms-flex:0 0 66.666667%;flex:0 0 66.666667%;max-width:66.666667%}.col-md-9{-webkit-box-flex:0;-webkit-flex:0 0 75%;-ms-flex:0 0 75%;flex:0 0 75%;max-width:75%}.col-md-10{-webkit-box-flex:0;-webkit-flex:0 0 83.333333%;-ms-flex:0 0 83.333333%;flex:0 0 83.333333%;max-width:83.333333%}.col-md-11{-webkit-box-flex:0;-webkit-flex:0 0 91.666667%;-ms-flex:0 0 91.666667%;flex:0 0 91.666667%;max-width:91.666667%}.col-md-12{-webkit-box-flex:0;-webkit-flex:0 0 100%;-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}.pull-md-0{right:auto}.pull-md-1{right:8.333333%}.pull-md-2{right:16.666667%}.pull-md-3{right:25%}.pull-md-4{right:33.333333%}.pull-md-5{right:41.666667%}.pull-md-6{right:50%}.pull-md-7{right:58.333333%}.pull-md-8{right:66.666667%}.pull-md-9{right:75%}.pull-md-10{right:83.333333%}.pull-md-11{right:91.666667%}.pull-md-12{right:100%}.push-md-0{left:auto}.push-md-1{left:8.333333%}.push-md-2{left:16.666667%}.push-md-3{left:25%}.push-md-4{left:33.333333%}.push-md-5{left:41.666667%}.push-md-6{left:50%}.push-md-7{left:58.333333%}.push-md-8{left:66.666667%}.push-md-9{left:75%}.push-md-10{left:83.333333%}.push-md-11{left:91.666667%}.push-md-12{left:100%}.offset-md-0{margin-left:0}.offset-md-1{margin-left:8.333333%}.offset-md-2{margin-left:16.666667%}.offset-md-3{margin-left:25%}.offset-md-4{margin-left:33.333333%}.offset-md-5{margin-left:41.666667%}.offset-md-6{margin-left:50%}.offset-md-7{margin-left:58.333333%}.offset-md-8{margin-left:66.666667%}.offset-md-9{margin-left:75%}.offset-md-10{margin-left:83.333333%}.offset-md-11{margin-left:91.666667%}}@media (min-width:992px){.col-lg{-webkit-flex-basis:0;-ms-flex-preferred-size:0;flex-basis:0;-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;max-width:100%}.col-lg-auto{-webkit-box-flex:0;-webkit-flex:0 0 auto;-ms-flex:0 0 auto;flex:0 0 auto;width:auto}.col-lg-1{-webkit-box-flex:0;-webkit-flex:0 0 8.333333%;-ms-flex:0 0 8.333333%;flex:0 0 8.333333%;max-width:8.333333%}.col-lg-2{-webkit-box-flex:0;-webkit-flex:0 0 16.666667%;-ms-flex:0 0 16.666667%;flex:0 0 16.666667%;max-width:16.666667%}.col-lg-3{-webkit-box-flex:0;-webkit-flex:0 0 25%;-ms-flex:0 0 25%;flex:0 0 25%;max-width:25%}.col-lg-4{-webkit-box-flex:0;-webkit-flex:0 0 33.333333%;-ms-flex:0 0 33.333333%;flex:0 0 33.333333%;max-width:33.333333%}.col-lg-5{-webkit-box-flex:0;-webkit-flex:0 0 41.666667%;-ms-flex:0 0 41.666667%;flex:0 0 41.666667%;max-width:41.666667%}.col-lg-6{-webkit-box-flex:0;-webkit-flex:0 0 50%;-ms-flex:0 0 50%;flex:0 0 50%;max-width:50%}.col-lg-7{-webkit-box-flex:0;-webkit-flex:0 0 58.333333%;-ms-flex:0 0 58.333333%;flex:0 0 58.333333%;max-width:58.333333%}.col-lg-8{-webkit-box-flex:0;-webkit-flex:0 0 66.666667%;-ms-flex:0 0 66.666667%;flex:0 0 66.666667%;max-width:66.666667%}.col-lg-9{-webkit-box-flex:0;-webkit-flex:0 0 75%;-ms-flex:0 0 75%;flex:0 0 75%;max-width:75%}.col-lg-10{-webkit-box-flex:0;-webkit-flex:0 0 83.333333%;-ms-flex:0 0 83.333333%;flex:0 0 83.333333%;max-width:83.333333%}.col-lg-11{-webkit-box-flex:0;-webkit-flex:0 0 91.666667%;-ms-flex:0 0 91.666667%;flex:0 0 91.666667%;max-width:91.666667%}.col-lg-12{-webkit-box-flex:0;-webkit-flex:0 0 100%;-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}.pull-lg-0{right:auto}.pull-lg-1{right:8.333333%}.pull-lg-2{right:16.666667%}.pull-lg-3{right:25%}.pull-lg-4{right:33.333333%}.pull-lg-5{right:41.666667%}.pull-lg-6{right:50%}.pull-lg-7{right:58.333333%}.pull-lg-8{right:66.666667%}.pull-lg-9{right:75%}.pull-lg-10{right:83.333333%}.pull-lg-11{right:91.666667%}.pull-lg-12{right:100%}.push-lg-0{left:auto}.push-lg-1{left:8.333333%}.push-lg-2{left:16.666667%}.push-lg-3{left:25%}.push-lg-4{left:33.333333%}.push-lg-5{left:41.666667%}.push-lg-6{left:50%}.push-lg-7{left:58.333333%}.push-lg-8{left:66.666667%}.push-lg-9{left:75%}.push-lg-10{left:83.333333%}.push-lg-11{left:91.666667%}.push-lg-12{left:100%}.offset-lg-0{margin-left:0}.offset-lg-1{margin-left:8.333333%}.offset-lg-2{margin-left:16.666667%}.offset-lg-3{margin-left:25%}.offset-lg-4{margin-left:33.333333%}.offset-lg-5{margin-left:41.666667%}.offset-lg-6{margin-left:50%}.offset-lg-7{margin-left:58.333333%}.offset-lg-8{margin-left:66.666667%}.offset-lg-9{margin-left:75%}.offset-lg-10{margin-left:83.333333%}.offset-lg-11{margin-left:91.666667%}}@media (min-width:1200px){.col-xl{-webkit-flex-basis:0;-ms-flex-preferred-size:0;flex-basis:0;-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;max-width:100%}.col-xl-auto{-webkit-box-flex:0;-webkit-flex:0 0 auto;-ms-flex:0 0 auto;flex:0 0 auto;width:auto}.col-xl-1{-webkit-box-flex:0;-webkit-flex:0 0 8.333333%;-ms-flex:0 0 8.333333%;flex:0 0 8.333333%;max-width:8.333333%}.col-xl-2{-webkit-box-flex:0;-webkit-flex:0 0 16.666667%;-ms-flex:0 0 16.666667%;flex:0 0 16.666667%;max-width:16.666667%}.col-xl-3{-webkit-box-flex:0;-webkit-flex:0 0 25%;-ms-flex:0 0 25%;flex:0 0 25%;max-width:25%}.col-xl-4{-webkit-box-flex:0;-webkit-flex:0 0 33.333333%;-ms-flex:0 0 33.333333%;flex:0 0 33.333333%;max-width:33.333333%}.col-xl-5{-webkit-box-flex:0;-webkit-flex:0 0 41.666667%;-ms-flex:0 0 41.666667%;flex:0 0 41.666667%;max-width:41.666667%}.col-xl-6{-webkit-box-flex:0;-webkit-flex:0 0 50%;-ms-flex:0 0 50%;flex:0 0 50%;max-width:50%}.col-xl-7{-webkit-box-flex:0;-webkit-flex:0 0 58.333333%;-ms-flex:0 0 58.333333%;flex:0 0 58.333333%;max-width:58.333333%}.col-xl-8{-webkit-box-flex:0;-webkit-flex:0 0 66.666667%;-ms-flex:0 0 66.666667%;flex:0 0 66.666667%;max-width:66.666667%}.col-xl-9{-webkit-box-flex:0;-webkit-flex:0 0 75%;-ms-flex:0 0 75%;flex:0 0 75%;max-width:75%}.col-xl-10{-webkit-box-flex:0;-webkit-flex:0 0 83.333333%;-ms-flex:0 0 83.333333%;flex:0 0 83.333333%;max-width:83.333333%}.col-xl-11{-webkit-box-flex:0;-webkit-flex:0 0 91.666667%;-ms-flex:0 0 91.666667%;flex:0 0 91.666667%;max-width:91.666667%}.col-xl-12{-webkit-box-flex:0;-webkit-flex:0 0 100%;-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}.pull-xl-0{right:auto}.pull-xl-1{right:8.333333%}.pull-xl-2{right:16.666667%}.pull-xl-3{right:25%}.pull-xl-4{right:33.333333%}.pull-xl-5{right:41.666667%}.pull-xl-6{right:50%}.pull-xl-7{right:58.333333%}.pull-xl-8{right:66.666667%}.pull-xl-9{right:75%}.pull-xl-10{right:83.333333%}.pull-xl-11{right:91.666667%}.pull-xl-12{right:100%}.push-xl-0{left:auto}.push-xl-1{left:8.333333%}.push-xl-2{left:16.666667%}.push-xl-3{left:25%}.push-xl-4{left:33.333333%}.push-xl-5{left:41.666667%}.push-xl-6{left:50%}.push-xl-7{left:58.333333%}.push-xl-8{left:66.666667%}.push-xl-9{left:75%}.push-xl-10{left:83.333333%}.push-xl-11{left:91.666667%}.push-xl-12{left:100%}.offset-xl-0{margin-left:0}.offset-xl-1{margin-left:8.333333%}.offset-xl-2{margin-left:16.666667%}.offset-xl-3{margin-left:25%}.offset-xl-4{margin-left:33.333333%}.offset-xl-5{margin-left:41.666667%}.offset-xl-6{margin-left:50%}.offset-xl-7{margin-left:58.333333%}.offset-xl-8{margin-left:66.666667%}.offset-xl-9{margin-left:75%}.offset-xl-10{margin-left:83.333333%}.offset-xl-11{margin-left:91.666667%}}.table{width:100%;max-width:100%;margin-bottom:1rem}.table td,.table th{padding:.75rem;vertical-align:top;border-top:1px solid #eceeef}.table thead th{vertical-align:bottom;border-bottom:2px solid #eceeef}.table tbody+tbody{border-top:2px solid #eceeef}.table .table{background-color:#fff}.table-sm td,.table-sm th{padding:.3rem}.table-bordered{border:1px solid #eceeef}.table-bordered td,.table-bordered th{border:1px solid #eceeef}.table-bordered thead td,.table-bordered thead th{border-bottom-width:2px}.table-striped tbody tr:nth-of-type(odd){background-color:rgba(0,0,0,.05)}.table-hover tbody tr:hover{background-color:rgba(0,0,0,.075)}.table-active,.table-active>td,.table-active>th{background-color:rgba(0,0,0,.075)}.table-hover .table-active:hover{background-color:rgba(0,0,0,.075)}.table-hover .table-active:hover>td,.table-hover .table-active:hover>th{background-color:rgba(0,0,0,.075)}.table-success,.table-success>td,.table-success>th{background-color:#dff0d8}.table-hover .table-success:hover{background-color:#d0e9c6}.table-hover .table-success:hover>td,.table-hover .table-success:hover>th{background-color:#d0e9c6}.table-info,.table-info>td,.table-info>th{background-color:#d9edf7}.table-hover .table-info:hover{background-color:#c4e3f3}.table-hover .table-info:hover>td,.table-hover .table-info:hover>th{background-color:#c4e3f3}.table-warning,.table-warning>td,.table-warning>th{background-color:#fcf8e3}.table-hover .table-warning:hover{background-color:#faf2cc}.table-hover .table-warning:hover>td,.table-hover .table-warning:hover>th{background-color:#faf2cc}.table-danger,.table-danger>td,.table-danger>th{background-color:#f2dede}.table-hover .table-danger:hover{background-color:#ebcccc}.table-hover .table-danger:hover>td,.table-hover .table-danger:hover>th{background-color:#ebcccc}.thead-inverse th{color:#fff;background-color:#292b2c}.thead-default th{color:#464a4c;background-color:#eceeef}.table-inverse{color:#fff;background-color:#292b2c}.table-inverse td,.table-inverse th,.table-inverse thead th{border-color:#fff}.table-inverse.table-bordered{border:0}.table-responsive{display:block;width:100%;overflow-x:auto;-ms-overflow-style:-ms-autohiding-scrollbar}.table-responsive.table-bordered{border:0}.form-control{display:block;width:100%;padding:.5rem .75rem;font-size:1rem;line-height:1.25;color:#464a4c;background-color:#fff;background-image:none;-webkit-background-clip:padding-box;background-clip:padding-box;border:1px solid rgba(0,0,0,.15);border-radius:.25rem;-webkit-transition:border-color ease-in-out .15s,-webkit-box-shadow ease-in-out .15s;transition:border-color ease-in-out .15s,-webkit-box-shadow ease-in-out .15s;-o-transition:border-color ease-in-out .15s,box-shadow ease-in-out .15s;transition:border-color ease-in-out .15s,box-shadow ease-in-out .15s;transition:border-color ease-in-out .15s,box-shadow ease-in-out .15s,-webkit-box-shadow ease-in-out .15s}.form-control::-ms-expand{background-color:transparent;border:0}.form-control:focus{color:#464a4c;background-color:#fff;border-color:#5cb3fd;outline:0}.form-control::-webkit-input-placeholder{color:#636c72;opacity:1}.form-control::-moz-placeholder{color:#636c72;opacity:1}.form-control:-ms-input-placeholder{color:#636c72;opacity:1}.form-control::placeholder{color:#636c72;opacity:1}.form-control:disabled,.form-control[readonly]{background-color:#eceeef;opacity:1}.form-control:disabled{cursor:not-allowed}select.form-control:not([size]):not([multiple]){height:calc(2.25rem + 2px)}select.form-control:focus::-ms-value{color:#464a4c;background-color:#fff}.form-control-file,.form-control-range{display:block}.col-form-label{padding-top:calc(.5rem - 1px * 2);padding-bottom:calc(.5rem - 1px * 2);margin-bottom:0}.col-form-label-lg{padding-top:calc(.75rem - 1px * 2);padding-bottom:calc(.75rem - 1px * 2);font-size:1.25rem}.col-form-label-sm{padding-top:calc(.25rem - 1px * 2);padding-bottom:calc(.25rem - 1px * 2);font-size:.875rem}.col-form-legend{padding-top:.5rem;padding-bottom:.5rem;margin-bottom:0;font-size:1rem}.form-control-static{padding-top:.5rem;padding-bottom:.5rem;margin-bottom:0;line-height:1.25;border:solid transparent;border-width:1px 0}.form-control-static.form-control-lg,.form-control-static.form-control-sm,.input-group-lg>.form-control-static.form-control,.input-group-lg>.form-control-static.input-group-addon,.input-group-lg>.input-group-btn>.form-control-static.btn,.input-group-sm>.form-control-static.form-control,.input-group-sm>.form-control-static.input-group-addon,.input-group-sm>.input-group-btn>.form-control-static.btn{padding-right:0;padding-left:0}.form-control-sm,.input-group-sm>.form-control,.input-group-sm>.input-group-addon,.input-group-sm>.input-group-btn>.btn{padding:.25rem .5rem;font-size:.875rem;border-radius:.2rem}.input-group-sm>.input-group-btn>select.btn:not([size]):not([multiple]),.input-group-sm>select.form-control:not([size]):not([multiple]),.input-group-sm>select.input-group-addon:not([size]):not([multiple]),select.form-control-sm:not([size]):not([multiple]){height:1.8125rem}.form-control-lg,.input-group-lg>.form-control,.input-group-lg>.input-group-addon,.input-group-lg>.input-group-btn>.btn{padding:.75rem 1.5rem;font-size:1.25rem;border-radius:.3rem}.input-group-lg>.input-group-btn>select.btn:not([size]):not([multiple]),.input-group-lg>select.form-control:not([size]):not([multiple]),.input-group-lg>select.input-group-addon:not([size]):not([multiple]),select.form-control-lg:not([size]):not([multiple]){height:3.166667rem}.form-group{margin-bottom:1rem}.form-text{display:block;margin-top:.25rem}.form-check{position:relative;display:block;margin-bottom:.5rem}.form-check.disabled .form-check-label{color:#636c72;cursor:not-allowed}.form-check-label{padding-left:1.25rem;margin-bottom:0;cursor:pointer}.form-check-input{position:absolute;margin-top:.25rem;margin-left:-1.25rem}.form-check-input:only-child{position:static}.form-check-inline{display:inline-block}.form-check-inline .form-check-label{vertical-align:middle}.form-check-inline+.form-check-inline{margin-left:.75rem}.form-control-feedback{margin-top:.25rem}.form-control-danger,.form-control-success,.form-control-warning{padding-right:2.25rem;background-repeat:no-repeat;background-position:center right .5625rem;-webkit-background-size:1.125rem 1.125rem;background-size:1.125rem 1.125rem}.has-success .col-form-label,.has-success .custom-control,.has-success .form-check-label,.has-success .form-control-feedback,.has-success .form-control-label{color:#5cb85c}.has-success .form-control{border-color:#5cb85c}.has-success .input-group-addon{color:#5cb85c;border-color:#5cb85c;background-color:#eaf6ea}.has-success .form-control-success{background-image:url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%235cb85c' d='M2.3 6.73L.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3E%3C/svg%3E")}.has-warning .col-form-label,.has-warning .custom-control,.has-warning .form-check-label,.has-warning .form-control-feedback,.has-warning .form-control-label{color:#f0ad4e}.has-warning .form-control{border-color:#f0ad4e}.has-warning .input-group-addon{color:#f0ad4e;border-color:#f0ad4e;background-color:#fff}.has-warning .form-control-warning{background-image:url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%23f0ad4e' d='M4.4 5.324h-.8v-2.46h.8zm0 1.42h-.8V5.89h.8zM3.76.63L.04 7.075c-.115.2.016.425.26.426h7.397c.242 0 .372-.226.258-.426C6.726 4.924 5.47 2.79 4.253.63c-.113-.174-.39-.174-.494 0z'/%3E%3C/svg%3E")}.has-danger .col-form-label,.has-danger .custom-control,.has-danger .form-check-label,.has-danger .form-control-feedback,.has-danger .form-control-label{color:#d9534f}.has-danger .form-control{border-color:#d9534f}.has-danger .input-group-addon{color:#d9534f;border-color:#d9534f;background-color:#fdf7f7}.has-danger .form-control-danger{background-image:url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23d9534f' viewBox='-2 -2 7 7'%3E%3Cpath stroke='%23d9534f' d='M0 0l3 3m0-3L0 3'/%3E%3Ccircle r='.5'/%3E%3Ccircle cx='3' r='.5'/%3E%3Ccircle cy='3' r='.5'/%3E%3Ccircle cx='3' cy='3' r='.5'/%3E%3C/svg%3E")}.form-inline{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-flow:row wrap;-ms-flex-flow:row wrap;flex-flow:row wrap;-webkit-box-align:center;-webkit-align-items:center;-ms-flex-align:center;align-items:center}.form-inline .form-check{width:100%}@media (min-width:576px){.form-inline label{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-align:center;-webkit-align-items:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;margin-bottom:0}.form-inline .form-group{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex:0;-webkit-flex:0 0 auto;-ms-flex:0 0 auto;flex:0 0 auto;-webkit-flex-flow:row wrap;-ms-flex-flow:row wrap;flex-flow:row wrap;-webkit-box-align:center;-webkit-align-items:center;-ms-flex-align:center;align-items:center;margin-bottom:0}.form-inline .form-control{display:inline-block;width:auto;vertical-align:middle}.form-inline .form-control-static{display:inline-block}.form-inline .input-group{width:auto}.form-inline .form-control-label{margin-bottom:0;vertical-align:middle}.form-inline .form-check{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-align:center;-webkit-align-items:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;width:auto;margin-top:0;margin-bottom:0}.form-inline .form-check-label{padding-left:0}.form-inline .form-check-input{position:relative;margin-top:0;margin-right:.25rem;margin-left:0}.form-inline .custom-control{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-align:center;-webkit-align-items:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;padding-left:0}.form-inline .custom-control-indicator{position:static;display:inline-block;margin-right:.25rem;vertical-align:text-bottom}.form-inline .has-feedback .form-control-feedback{top:0}}.btn{display:inline-block;font-weight:400;line-height:1.25;text-align:center;white-space:nowrap;vertical-align:middle;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;border:1px solid transparent;padding:.5rem 1rem;font-size:1rem;border-radius:.25rem;-webkit-transition:all .2s ease-in-out;-o-transition:all .2s ease-in-out;transition:all .2s ease-in-out}.btn:focus,.btn:hover{text-decoration:none}.btn.focus,.btn:focus{outline:0;-webkit-box-shadow:0 0 0 2px rgba(2,117,216,.25);box-shadow:0 0 0 2px rgba(2,117,216,.25)}.btn.disabled,.btn:disabled{cursor:not-allowed;opacity:.65}.btn.active,.btn:active{background-image:none}a.btn.disabled,fieldset[disabled] a.btn{pointer-events:none}.btn-primary{color:#fff;background-color:#0275d8;border-color:#0275d8}.btn-primary:hover{color:#fff;background-color:#025aa5;border-color:#01549b}.btn-primary.focus,.btn-primary:focus{-webkit-box-shadow:0 0 0 2px rgba(2,117,216,.5);box-shadow:0 0 0 2px rgba(2,117,216,.5)}.btn-primary.disabled,.btn-primary:disabled{background-color:#0275d8;border-color:#0275d8}.btn-primary.active,.btn-primary:active,.show>.btn-primary.dropdown-toggle{color:#fff;background-color:#025aa5;background-image:none;border-color:#01549b}.btn-secondary{color:#292b2c;background-color:#fff;border-color:#ccc}.btn-secondary:hover{color:#292b2c;background-color:#e6e6e6;border-color:#adadad}.btn-secondary.focus,.btn-secondary:focus{-webkit-box-shadow:0 0 0 2px rgba(204,204,204,.5);box-shadow:0 0 0 2px rgba(204,204,204,.5)}.btn-secondary.disabled,.btn-secondary:disabled{background-color:#fff;border-color:#ccc}.btn-secondary.active,.btn-secondary:active,.show>.btn-secondary.dropdown-toggle{color:#292b2c;background-color:#e6e6e6;background-image:none;border-color:#adadad}.btn-info{color:#fff;background-color:#5bc0de;border-color:#5bc0de}.btn-info:hover{color:#fff;background-color:#31b0d5;border-color:#2aabd2}.btn-info.focus,.btn-info:focus{-webkit-box-shadow:0 0 0 2px rgba(91,192,222,.5);box-shadow:0 0 0 2px rgba(91,192,222,.5)}.btn-info.disabled,.btn-info:disabled{background-color:#5bc0de;border-color:#5bc0de}.btn-info.active,.btn-info:active,.show>.btn-info.dropdown-toggle{color:#fff;background-color:#31b0d5;background-image:none;border-color:#2aabd2}.btn-success{color:#fff;background-color:#5cb85c;border-color:#5cb85c}.btn-success:hover{color:#fff;background-color:#449d44;border-color:#419641}.btn-success.focus,.btn-success:focus{-webkit-box-shadow:0 0 0 2px rgba(92,184,92,.5);box-shadow:0 0 0 2px rgba(92,184,92,.5)}.btn-success.disabled,.btn-success:disabled{background-color:#5cb85c;border-color:#5cb85c}.btn-success.active,.btn-success:active,.show>.btn-success.dropdown-toggle{color:#fff;background-color:#449d44;background-image:none;border-color:#419641}.btn-warning{color:#fff;background-color:#f0ad4e;border-color:#f0ad4e}.btn-warning:hover{color:#fff;background-color:#ec971f;border-color:#eb9316}.btn-warning.focus,.btn-warning:focus{-webkit-box-shadow:0 0 0 2px rgba(240,173,78,.5);box-shadow:0 0 0 2px rgba(240,173,78,.5)}.btn-warning.disabled,.btn-warning:disabled{background-color:#f0ad4e;border-color:#f0ad4e}.btn-warning.active,.btn-warning:active,.show>.btn-warning.dropdown-toggle{color:#fff;background-color:#ec971f;background-image:none;border-color:#eb9316}.btn-danger{color:#fff;background-color:#d9534f;border-color:#d9534f}.btn-danger:hover{color:#fff;background-color:#c9302c;border-color:#c12e2a}.btn-danger.focus,.btn-danger:focus{-webkit-box-shadow:0 0 0 2px rgba(217,83,79,.5);box-shadow:0 0 0 2px rgba(217,83,79,.5)}.btn-danger.disabled,.btn-danger:disabled{background-color:#d9534f;border-color:#d9534f}.btn-danger.active,.btn-danger:active,.show>.btn-danger.dropdown-toggle{color:#fff;background-color:#c9302c;background-image:none;border-color:#c12e2a}.btn-outline-primary{color:#0275d8;background-image:none;background-color:transparent;border-color:#0275d8}.btn-outline-primary:hover{color:#fff;background-color:#0275d8;border-color:#0275d8}.btn-outline-primary.focus,.btn-outline-primary:focus{-webkit-box-shadow:0 0 0 2px rgba(2,117,216,.5);box-shadow:0 0 0 2px rgba(2,117,216,.5)}.btn-outline-primary.disabled,.btn-outline-primary:disabled{color:#0275d8;background-color:transparent}.btn-outline-primary.active,.btn-outline-primary:active,.show>.btn-outline-primary.dropdown-toggle{color:#fff;background-color:#0275d8;border-color:#0275d8}.btn-outline-secondary{color:#ccc;background-image:none;background-color:transparent;border-color:#ccc}.btn-outline-secondary:hover{color:#fff;background-color:#ccc;border-color:#ccc}.btn-outline-secondary.focus,.btn-outline-secondary:focus{-webkit-box-shadow:0 0 0 2px rgba(204,204,204,.5);box-shadow:0 0 0 2px rgba(204,204,204,.5)}.btn-outline-secondary.disabled,.btn-outline-secondary:disabled{color:#ccc;background-color:transparent}.btn-outline-secondary.active,.btn-outline-secondary:active,.show>.btn-outline-secondary.dropdown-toggle{color:#fff;background-color:#ccc;border-color:#ccc}.btn-outline-info{color:#5bc0de;background-image:none;background-color:transparent;border-color:#5bc0de}.btn-outline-info:hover{color:#fff;background-color:#5bc0de;border-color:#5bc0de}.btn-outline-info.focus,.btn-outline-info:focus{-webkit-box-shadow:0 0 0 2px rgba(91,192,222,.5);box-shadow:0 0 0 2px rgba(91,192,222,.5)}.btn-outline-info.disabled,.btn-outline-info:disabled{color:#5bc0de;background-color:transparent}.btn-outline-info.active,.btn-outline-info:active,.show>.btn-outline-info.dropdown-toggle{color:#fff;background-color:#5bc0de;border-color:#5bc0de}.btn-outline-success{color:#5cb85c;background-image:none;background-color:transparent;border-color:#5cb85c}.btn-outline-success:hover{color:#fff;background-color:#5cb85c;border-color:#5cb85c}.btn-outline-success.focus,.btn-outline-success:focus{-webkit-box-shadow:0 0 0 2px rgba(92,184,92,.5);box-shadow:0 0 0 2px rgba(92,184,92,.5)}.btn-outline-success.disabled,.btn-outline-success:disabled{color:#5cb85c;background-color:transparent}.btn-outline-success.active,.btn-outline-success:active,.show>.btn-outline-success.dropdown-toggle{color:#fff;background-color:#5cb85c;border-color:#5cb85c}.btn-outline-warning{color:#f0ad4e;background-image:none;background-color:transparent;border-color:#f0ad4e}.btn-outline-warning:hover{color:#fff;background-color:#f0ad4e;border-color:#f0ad4e}.btn-outline-warning.focus,.btn-outline-warning:focus{-webkit-box-shadow:0 0 0 2px rgba(240,173,78,.5);box-shadow:0 0 0 2px rgba(240,173,78,.5)}.btn-outline-warning.disabled,.btn-outline-warning:disabled{color:#f0ad4e;background-color:transparent}.btn-outline-warning.active,.btn-outline-warning:active,.show>.btn-outline-warning.dropdown-toggle{color:#fff;background-color:#f0ad4e;border-color:#f0ad4e}.btn-outline-danger{color:#d9534f;background-image:none;background-color:transparent;border-color:#d9534f}.btn-outline-danger:hover{color:#fff;background-color:#d9534f;border-color:#d9534f}.btn-outline-danger.focus,.btn-outline-danger:focus{-webkit-box-shadow:0 0 0 2px rgba(217,83,79,.5);box-shadow:0 0 0 2px rgba(217,83,79,.5)}.btn-outline-danger.disabled,.btn-outline-danger:disabled{color:#d9534f;background-color:transparent}.btn-outline-danger.active,.btn-outline-danger:active,.show>.btn-outline-danger.dropdown-toggle{color:#fff;background-color:#d9534f;border-color:#d9534f}.btn-link{font-weight:400;color:#0275d8;border-radius:0}.btn-link,.btn-link.active,.btn-link:active,.btn-link:disabled{background-color:transparent}.btn-link,.btn-link:active,.btn-link:focus{border-color:transparent}.btn-link:hover{border-color:transparent}.btn-link:focus,.btn-link:hover{color:#014c8c;text-decoration:underline;background-color:transparent}.btn-link:disabled{color:#636c72}.btn-link:disabled:focus,.btn-link:disabled:hover{text-decoration:none}.btn-group-lg>.btn,.btn-lg{padding:.75rem 1.5rem;font-size:1.25rem;border-radius:.3rem}.btn-group-sm>.btn,.btn-sm{padding:.25rem .5rem;font-size:.875rem;border-radius:.2rem}.btn-block{display:block;width:100%}.btn-block+.btn-block{margin-top:.5rem}input[type=button].btn-block,input[type=reset].btn-block,input[type=submit].btn-block{width:100%}.fade{opacity:0;-webkit-transition:opacity .15s linear;-o-transition:opacity .15s linear;transition:opacity .15s linear}.fade.show{opacity:1}.collapse{display:none}.collapse.show{display:block}tr.collapse.show{display:table-row}tbody.collapse.show{display:table-row-group}.collapsing{position:relative;height:0;overflow:hidden;-webkit-transition:height .35s ease;-o-transition:height .35s ease;transition:height .35s ease}.dropdown,.dropup{position:relative}.dropdown-toggle::after{display:inline-block;width:0;height:0;margin-left:.3em;vertical-align:middle;content:"";border-top:.3em solid;border-right:.3em solid transparent;border-left:.3em solid transparent}.dropdown-toggle:focus{outline:0}.dropup .dropdown-toggle::after{border-top:0;border-bottom:.3em solid}.dropdown-menu{position:absolute;top:100%;left:0;z-index:1000;display:none;float:left;min-width:10rem;padding:.5rem 0;margin:.125rem 0 0;font-size:1rem;color:#292b2c;text-align:left;list-style:none;background-color:#fff;-webkit-background-clip:padding-box;background-clip:padding-box;border:1px solid rgba(0,0,0,.15);border-radius:.25rem}.dropdown-divider{height:1px;margin:.5rem 0;overflow:hidden;background-color:#eceeef}.dropdown-item{display:block;width:100%;padding:3px 1.5rem;clear:both;font-weight:400;color:#292b2c;text-align:inherit;white-space:nowrap;background:0 0;border:0}.dropdown-item:focus,.dropdown-item:hover{color:#1d1e1f;text-decoration:none;background-color:#f7f7f9}.dropdown-item.active,.dropdown-item:active{color:#fff;text-decoration:none;background-color:#0275d8}.dropdown-item.disabled,.dropdown-item:disabled{color:#636c72;cursor:not-allowed;background-color:transparent}.show>.dropdown-menu{display:block}.show>a{outline:0}.dropdown-menu-right{right:0;left:auto}.dropdown-menu-left{right:auto;left:0}.dropdown-header{display:block;padding:.5rem 1.5rem;margin-bottom:0;font-size:.875rem;color:#636c72;white-space:nowrap}.dropdown-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:990}.dropup .dropdown-menu{top:auto;bottom:100%;margin-bottom:.125rem}.btn-group,.btn-group-vertical{position:relative;display:-webkit-inline-box;display:-webkit-inline-flex;display:-ms-inline-flexbox;display:inline-flex;vertical-align:middle}.btn-group-vertical>.btn,.btn-group>.btn{position:relative;-webkit-box-flex:0;-webkit-flex:0 1 auto;-ms-flex:0 1 auto;flex:0 1 auto}.btn-group-vertical>.btn:hover,.btn-group>.btn:hover{z-index:2}.btn-group-vertical>.btn.active,.btn-group-vertical>.btn:active,.btn-group-vertical>.btn:focus,.btn-group>.btn.active,.btn-group>.btn:active,.btn-group>.btn:focus{z-index:2}.btn-group .btn+.btn,.btn-group .btn+.btn-group,.btn-group .btn-group+.btn,.btn-group .btn-group+.btn-group,.btn-group-vertical .btn+.btn,.btn-group-vertical .btn+.btn-group,.btn-group-vertical .btn-group+.btn,.btn-group-vertical .btn-group+.btn-group{margin-left:-1px}.btn-toolbar{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:start;-webkit-justify-content:flex-start;-ms-flex-pack:start;justify-content:flex-start}.btn-toolbar .input-group{width:auto}.btn-group>.btn:not(:first-child):not(:last-child):not(.dropdown-toggle){border-radius:0}.btn-group>.btn:first-child{margin-left:0}.btn-group>.btn:first-child:not(:last-child):not(.dropdown-toggle){border-bottom-right-radius:0;border-top-right-radius:0}.btn-group>.btn:last-child:not(:first-child),.btn-group>.dropdown-toggle:not(:first-child){border-bottom-left-radius:0;border-top-left-radius:0}.btn-group>.btn-group{float:left}.btn-group>.btn-group:not(:first-child):not(:last-child)>.btn{border-radius:0}.btn-group>.btn-group:first-child:not(:last-child)>.btn:last-child,.btn-group>.btn-group:first-child:not(:last-child)>.dropdown-toggle{border-bottom-right-radius:0;border-top-right-radius:0}.btn-group>.btn-group:last-child:not(:first-child)>.btn:first-child{border-bottom-left-radius:0;border-top-left-radius:0}.btn-group .dropdown-toggle:active,.btn-group.open .dropdown-toggle{outline:0}.btn+.dropdown-toggle-split{padding-right:.75rem;padding-left:.75rem}.btn+.dropdown-toggle-split::after{margin-left:0}.btn-group-sm>.btn+.dropdown-toggle-split,.btn-sm+.dropdown-toggle-split{padding-right:.375rem;padding-left:.375rem}.btn-group-lg>.btn+.dropdown-toggle-split,.btn-lg+.dropdown-toggle-split{padding-right:1.125rem;padding-left:1.125rem}.btn-group-vertical{display:-webkit-inline-box;display:-webkit-inline-flex;display:-ms-inline-flexbox;display:inline-flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;-webkit-box-align:start;-webkit-align-items:flex-start;-ms-flex-align:start;align-items:flex-start;-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center}.btn-group-vertical .btn,.btn-group-vertical .btn-group{width:100%}.btn-group-vertical>.btn+.btn,.btn-group-vertical>.btn+.btn-group,.btn-group-vertical>.btn-group+.btn,.btn-group-vertical>.btn-group+.btn-group{margin-top:-1px;margin-left:0}.btn-group-vertical>.btn:not(:first-child):not(:last-child){border-radius:0}.btn-group-vertical>.btn:first-child:not(:last-child){border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn:last-child:not(:first-child){border-top-right-radius:0;border-top-left-radius:0}.btn-group-vertical>.btn-group:not(:first-child):not(:last-child)>.btn{border-radius:0}.btn-group-vertical>.btn-group:first-child:not(:last-child)>.btn:last-child,.btn-group-vertical>.btn-group:first-child:not(:last-child)>.dropdown-toggle{border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn-group:last-child:not(:first-child)>.btn:first-child{border-top-right-radius:0;border-top-left-radius:0}[data-toggle=buttons]>.btn input[type=checkbox],[data-toggle=buttons]>.btn input[type=radio],[data-toggle=buttons]>.btn-group>.btn input[type=checkbox],[data-toggle=buttons]>.btn-group>.btn input[type=radio]{position:absolute;clip:rect(0,0,0,0);pointer-events:none}.input-group{position:relative;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;width:100%}.input-group .form-control{position:relative;z-index:2;-webkit-box-flex:1;-webkit-flex:1 1 auto;-ms-flex:1 1 auto;flex:1 1 auto;width:1%;margin-bottom:0}.input-group .form-control:active,.input-group .form-control:focus,.input-group .form-control:hover{z-index:3}.input-group .form-control,.input-group-addon,.input-group-btn{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center}.input-group .form-control:not(:first-child):not(:last-child),.input-group-addon:not(:first-child):not(:last-child),.input-group-btn:not(:first-child):not(:last-child){border-radius:0}.input-group-addon,.input-group-btn{white-space:nowrap;vertical-align:middle}.input-group-addon{padding:.5rem .75rem;margin-bottom:0;font-size:1rem;font-weight:400;line-height:1.25;color:#464a4c;text-align:center;background-color:#eceeef;border:1px solid rgba(0,0,0,.15);border-radius:.25rem}.input-group-addon.form-control-sm,.input-group-sm>.input-group-addon,.input-group-sm>.input-group-btn>.input-group-addon.btn{padding:.25rem .5rem;font-size:.875rem;border-radius:.2rem}.input-group-addon.form-control-lg,.input-group-lg>.input-group-addon,.input-group-lg>.input-group-btn>.input-group-addon.btn{padding:.75rem 1.5rem;font-size:1.25rem;border-radius:.3rem}.input-group-addon input[type=checkbox],.input-group-addon input[type=radio]{margin-top:0}.input-group .form-control:not(:last-child),.input-group-addon:not(:last-child),.input-group-btn:not(:first-child)>.btn-group:not(:last-child)>.btn,.input-group-btn:not(:first-child)>.btn:not(:last-child):not(.dropdown-toggle),.input-group-btn:not(:last-child)>.btn,.input-group-btn:not(:last-child)>.btn-group>.btn,.input-group-btn:not(:last-child)>.dropdown-toggle{border-bottom-right-radius:0;border-top-right-radius:0}.input-group-addon:not(:last-child){border-right:0}.input-group .form-control:not(:first-child),.input-group-addon:not(:first-child),.input-group-btn:not(:first-child)>.btn,.input-group-btn:not(:first-child)>.btn-group>.btn,.input-group-btn:not(:first-child)>.dropdown-toggle,.input-group-btn:not(:last-child)>.btn-group:not(:first-child)>.btn,.input-group-btn:not(:last-child)>.btn:not(:first-child){border-bottom-left-radius:0;border-top-left-radius:0}.form-control+.input-group-addon:not(:first-child){border-left:0}.input-group-btn{position:relative;font-size:0;white-space:nowrap}.input-group-btn>.btn{position:relative;-webkit-box-flex:1;-webkit-flex:1 1 0%;-ms-flex:1 1 0%;flex:1 1 0%}.input-group-btn>.btn+.btn{margin-left:-1px}.input-group-btn>.btn:active,.input-group-btn>.btn:focus,.input-group-btn>.btn:hover{z-index:3}.input-group-btn:not(:last-child)>.btn,.input-group-btn:not(:last-child)>.btn-group{margin-right:-1px}.input-group-btn:not(:first-child)>.btn,.input-group-btn:not(:first-child)>.btn-group{z-index:2;margin-left:-1px}.input-group-btn:not(:first-child)>.btn-group:active,.input-group-btn:not(:first-child)>.btn-group:focus,.input-group-btn:not(:first-child)>.btn-group:hover,.input-group-btn:not(:first-child)>.btn:active,.input-group-btn:not(:first-child)>.btn:focus,.input-group-btn:not(:first-child)>.btn:hover{z-index:3}.custom-control{position:relative;display:-webkit-inline-box;display:-webkit-inline-flex;display:-ms-inline-flexbox;display:inline-flex;min-height:1.5rem;padding-left:1.5rem;margin-right:1rem;cursor:pointer}.custom-control-input{position:absolute;z-index:-1;opacity:0}.custom-control-input:checked~.custom-control-indicator{color:#fff;background-color:#0275d8}.custom-control-input:focus~.custom-control-indicator{-webkit-box-shadow:0 0 0 1px #fff,0 0 0 3px #0275d8;box-shadow:0 0 0 1px #fff,0 0 0 3px #0275d8}.custom-control-input:active~.custom-control-indicator{color:#fff;background-color:#8fcafe}.custom-control-input:disabled~.custom-control-indicator{cursor:not-allowed;background-color:#eceeef}.custom-control-input:disabled~.custom-control-description{color:#636c72;cursor:not-allowed}.custom-control-indicator{position:absolute;top:.25rem;left:0;display:block;width:1rem;height:1rem;pointer-events:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;background-color:#ddd;background-repeat:no-repeat;background-position:center center;-webkit-background-size:50% 50%;background-size:50% 50%}.custom-checkbox .custom-control-indicator{border-radius:.25rem}.custom-checkbox .custom-control-input:checked~.custom-control-indicator{background-image:url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%23fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E")}.custom-checkbox .custom-control-input:indeterminate~.custom-control-indicator{background-color:#0275d8;background-image:url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 4 4'%3E%3Cpath stroke='%23fff' d='M0 2h4'/%3E%3C/svg%3E")}.custom-radio .custom-control-indicator{border-radius:50%}.custom-radio .custom-control-input:checked~.custom-control-indicator{background-image:url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3E%3Ccircle r='3' fill='%23fff'/%3E%3C/svg%3E")}.custom-controls-stacked{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column}.custom-controls-stacked .custom-control{margin-bottom:.25rem}.custom-controls-stacked .custom-control+.custom-control{margin-left:0}.custom-select{display:inline-block;max-width:100%;height:calc(2.25rem + 2px);padding:.375rem 1.75rem .375rem .75rem;line-height:1.25;color:#464a4c;vertical-align:middle;background:#fff url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 4 5'%3E%3Cpath fill='%23333' d='M2 0L0 2h4zm0 5L0 3h4z'/%3E%3C/svg%3E") no-repeat right .75rem center;-webkit-background-size:8px 10px;background-size:8px 10px;border:1px solid rgba(0,0,0,.15);border-radius:.25rem;-moz-appearance:none;-webkit-appearance:none}.custom-select:focus{border-color:#5cb3fd;outline:0}.custom-select:focus::-ms-value{color:#464a4c;background-color:#fff}.custom-select:disabled{color:#636c72;cursor:not-allowed;background-color:#eceeef}.custom-select::-ms-expand{opacity:0}.custom-select-sm{padding-top:.375rem;padding-bottom:.375rem;font-size:75%}.custom-file{position:relative;display:inline-block;max-width:100%;height:2.5rem;margin-bottom:0;cursor:pointer}.custom-file-input{min-width:14rem;max-width:100%;height:2.5rem;margin:0;filter:alpha(opacity=0);opacity:0}.custom-file-control{position:absolute;top:0;right:0;left:0;z-index:5;height:2.5rem;padding:.5rem 1rem;line-height:1.5;color:#464a4c;pointer-events:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;background-color:#fff;border:1px solid rgba(0,0,0,.15);border-radius:.25rem}.custom-file-control:lang(en)::after{content:"Choose file..."}.custom-file-control::before{position:absolute;top:-1px;right:-1px;bottom:-1px;z-index:6;display:block;height:2.5rem;padding:.5rem 1rem;line-height:1.5;color:#464a4c;background-color:#eceeef;border:1px solid rgba(0,0,0,.15);border-radius:0 .25rem .25rem 0}.custom-file-control:lang(en)::before{content:"Browse"}.nav{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;padding-left:0;margin-bottom:0;list-style:none}.nav-link{display:block;padding:.5em 1em}.nav-link:focus,.nav-link:hover{text-decoration:none}.nav-link.disabled{color:#636c72;cursor:not-allowed}.nav-tabs{border-bottom:1px solid #ddd}.nav-tabs .nav-item{margin-bottom:-1px}.nav-tabs .nav-link{border:1px solid transparent;border-top-right-radius:.25rem;border-top-left-radius:.25rem}.nav-tabs .nav-link:focus,.nav-tabs .nav-link:hover{border-color:#eceeef #eceeef #ddd}.nav-tabs .nav-link.disabled{color:#636c72;background-color:transparent;border-color:transparent}.nav-tabs .nav-item.show .nav-link,.nav-tabs .nav-link.active{color:#464a4c;background-color:#fff;border-color:#ddd #ddd #fff}.nav-tabs .dropdown-menu{margin-top:-1px;border-top-right-radius:0;border-top-left-radius:0}.nav-pills .nav-link{border-radius:.25rem}.nav-pills .nav-item.show .nav-link,.nav-pills .nav-link.active{color:#fff;cursor:default;background-color:#0275d8}.nav-fill .nav-item{-webkit-box-flex:1;-webkit-flex:1 1 auto;-ms-flex:1 1 auto;flex:1 1 auto;text-align:center}.nav-justified .nav-item{-webkit-box-flex:1;-webkit-flex:1 1 100%;-ms-flex:1 1 100%;flex:1 1 100%;text-align:center}.tab-content>.tab-pane{display:none}.tab-content>.active{display:block}.navbar{position:relative;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;padding:.5rem 1rem}.navbar-brand{display:inline-block;padding-top:.25rem;padding-bottom:.25rem;margin-right:1rem;font-size:1.25rem;line-height:inherit;white-space:nowrap}.navbar-brand:focus,.navbar-brand:hover{text-decoration:none}.navbar-nav{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;padding-left:0;margin-bottom:0;list-style:none}.navbar-nav .nav-link{padding-right:0;padding-left:0}.navbar-text{display:inline-block;padding-top:.425rem;padding-bottom:.425rem}.navbar-toggler{-webkit-align-self:flex-start;-ms-flex-item-align:start;align-self:flex-start;padding:.25rem .75rem;font-size:1.25rem;line-height:1;background:0 0;border:1px solid transparent;border-radius:.25rem}.navbar-toggler:focus,.navbar-toggler:hover{text-decoration:none}.navbar-toggler-icon{display:inline-block;width:1.5em;height:1.5em;vertical-align:middle;content:"";background:no-repeat center center;-webkit-background-size:100% 100%;background-size:100% 100%}.navbar-toggler-left{position:absolute;left:1rem}.navbar-toggler-right{position:absolute;right:1rem}@media (max-width:575px){.navbar-toggleable .navbar-nav .dropdown-menu{position:static;float:none}.navbar-toggleable>.container{padding-right:0;padding-left:0}}@media (min-width:576px){.navbar-toggleable{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-flex-wrap:nowrap;-ms-flex-wrap:nowrap;flex-wrap:nowrap;-webkit-box-align:center;-webkit-align-items:center;-ms-flex-align:center;align-items:center}.navbar-toggleable .navbar-nav{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row}.navbar-toggleable .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-toggleable>.container{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-wrap:nowrap;-ms-flex-wrap:nowrap;flex-wrap:nowrap;-webkit-box-align:center;-webkit-align-items:center;-ms-flex-align:center;align-items:center}.navbar-toggleable .navbar-collapse{display:-webkit-box!important;display:-webkit-flex!important;display:-ms-flexbox!important;display:flex!important;width:100%}.navbar-toggleable .navbar-toggler{display:none}}@media (max-width:767px){.navbar-toggleable-sm .navbar-nav .dropdown-menu{position:static;float:none}.navbar-toggleable-sm>.container{padding-right:0;padding-left:0}}@media (min-width:768px){.navbar-toggleable-sm{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-flex-wrap:nowrap;-ms-flex-wrap:nowrap;flex-wrap:nowrap;-webkit-box-align:center;-webkit-align-items:center;-ms-flex-align:center;align-items:center}.navbar-toggleable-sm .navbar-nav{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row}.navbar-toggleable-sm .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-toggleable-sm>.container{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-wrap:nowrap;-ms-flex-wrap:nowrap;flex-wrap:nowrap;-webkit-box-align:center;-webkit-align-items:center;-ms-flex-align:center;align-items:center}.navbar-toggleable-sm .navbar-collapse{display:-webkit-box!important;display:-webkit-flex!important;display:-ms-flexbox!important;display:flex!important;width:100%}.navbar-toggleable-sm .navbar-toggler{display:none}}@media (max-width:991px){.navbar-toggleable-md .navbar-nav .dropdown-menu{position:static;float:none}.navbar-toggleable-md>.container{padding-right:0;padding-left:0}}@media (min-width:992px){.navbar-toggleable-md{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-flex-wrap:nowrap;-ms-flex-wrap:nowrap;flex-wrap:nowrap;-webkit-box-align:center;-webkit-align-items:center;-ms-flex-align:center;align-items:center}.navbar-toggleable-md .navbar-nav{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row}.navbar-toggleable-md .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-toggleable-md>.container{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-wrap:nowrap;-ms-flex-wrap:nowrap;flex-wrap:nowrap;-webkit-box-align:center;-webkit-align-items:center;-ms-flex-align:center;align-items:center}.navbar-toggleable-md .navbar-collapse{display:-webkit-box!important;display:-webkit-flex!important;display:-ms-flexbox!important;display:flex!important;width:100%}.navbar-toggleable-md .navbar-toggler{display:none}}@media (max-width:1199px){.navbar-toggleable-lg .navbar-nav .dropdown-menu{position:static;float:none}.navbar-toggleable-lg>.container{padding-right:0;padding-left:0}}@media (min-width:1200px){.navbar-toggleable-lg{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-flex-wrap:nowrap;-ms-flex-wrap:nowrap;flex-wrap:nowrap;-webkit-box-align:center;-webkit-align-items:center;-ms-flex-align:center;align-items:center}.navbar-toggleable-lg .navbar-nav{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row}.navbar-toggleable-lg .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-toggleable-lg>.container{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-wrap:nowrap;-ms-flex-wrap:nowrap;flex-wrap:nowrap;-webkit-box-align:center;-webkit-align-items:center;-ms-flex-align:center;align-items:center}.navbar-toggleable-lg .navbar-collapse{display:-webkit-box!important;display:-webkit-flex!important;display:-ms-flexbox!important;display:flex!important;width:100%}.navbar-toggleable-lg .navbar-toggler{display:none}}.navbar-toggleable-xl{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-flex-wrap:nowrap;-ms-flex-wrap:nowrap;flex-wrap:nowrap;-webkit-box-align:center;-webkit-align-items:center;-ms-flex-align:center;align-items:center}.navbar-toggleable-xl .navbar-nav .dropdown-menu{position:static;float:none}.navbar-toggleable-xl>.container{padding-right:0;padding-left:0}.navbar-toggleable-xl .navbar-nav{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row}.navbar-toggleable-xl .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-toggleable-xl>.container{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-wrap:nowrap;-ms-flex-wrap:nowrap;flex-wrap:nowrap;-webkit-box-align:center;-webkit-align-items:center;-ms-flex-align:center;align-items:center}.navbar-toggleable-xl .navbar-collapse{display:-webkit-box!important;display:-webkit-flex!important;display:-ms-flexbox!important;display:flex!important;width:100%}.navbar-toggleable-xl .navbar-toggler{display:none}.navbar-light .navbar-brand,.navbar-light .navbar-toggler{color:rgba(0,0,0,.9)}.navbar-light .navbar-brand:focus,.navbar-light .navbar-brand:hover,.navbar-light .navbar-toggler:focus,.navbar-light .navbar-toggler:hover{color:rgba(0,0,0,.9)}.navbar-light .navbar-nav .nav-link{color:rgba(0,0,0,.5)}.navbar-light .navbar-nav .nav-link:focus,.navbar-light .navbar-nav .nav-link:hover{color:rgba(0,0,0,.7)}.navbar-light .navbar-nav .nav-link.disabled{color:rgba(0,0,0,.3)}.navbar-light .navbar-nav .active>.nav-link,.navbar-light .navbar-nav .nav-link.active,.navbar-light .navbar-nav .nav-link.open,.navbar-light .navbar-nav .open>.nav-link{color:rgba(0,0,0,.9)}.navbar-light .navbar-toggler{border-color:rgba(0,0,0,.1)}.navbar-light .navbar-toggler-icon{background-image:url("data:image/svg+xml;charset=utf8,%3Csvg viewBox='0 0 32 32' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath stroke='rgba(0, 0, 0, 0.5)' stroke-width='2' stroke-linecap='round' stroke-miterlimit='10' d='M4 8h24M4 16h24M4 24h24'/%3E%3C/svg%3E")}.navbar-light .navbar-text{color:rgba(0,0,0,.5)}.navbar-inverse .navbar-brand,.navbar-inverse .navbar-toggler{color:#fff}.navbar-inverse .navbar-brand:focus,.navbar-inverse .navbar-brand:hover,.navbar-inverse .navbar-toggler:focus,.navbar-inverse .navbar-toggler:hover{color:#fff}.navbar-inverse .navbar-nav .nav-link{color:rgba(255,255,255,.5)}.navbar-inverse .navbar-nav .nav-link:focus,.navbar-inverse .navbar-nav .nav-link:hover{color:rgba(255,255,255,.75)}.navbar-inverse .navbar-nav .nav-link.disabled{color:rgba(255,255,255,.25)}.navbar-inverse .navbar-nav .active>.nav-link,.navbar-inverse .navbar-nav .nav-link.active,.navbar-inverse .navbar-nav .nav-link.open,.navbar-inverse .navbar-nav .open>.nav-link{color:#fff}.navbar-inverse .navbar-toggler{border-color:rgba(255,255,255,.1)}.navbar-inverse .navbar-toggler-icon{background-image:url("data:image/svg+xml;charset=utf8,%3Csvg viewBox='0 0 32 32' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath stroke='rgba(255, 255, 255, 0.5)' stroke-width='2' stroke-linecap='round' stroke-miterlimit='10' d='M4 8h24M4 16h24M4 24h24'/%3E%3C/svg%3E")}.navbar-inverse .navbar-text{color:rgba(255,255,255,.5)}.card{position:relative;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;background-color:#fff;border:1px solid rgba(0,0,0,.125);border-radius:.25rem}.card-block{-webkit-box-flex:1;-webkit-flex:1 1 auto;-ms-flex:1 1 auto;flex:1 1 auto;padding:1.25rem}.card-title{margin-bottom:.75rem}.card-subtitle{margin-top:-.375rem;margin-bottom:0}.card-text:last-child{margin-bottom:0}.card-link:hover{text-decoration:none}.card-link+.card-link{margin-left:1.25rem}.card>.list-group:first-child .list-group-item:first-child{border-top-right-radius:.25rem;border-top-left-radius:.25rem}.card>.list-group:last-child .list-group-item:last-child{border-bottom-right-radius:.25rem;border-bottom-left-radius:.25rem}.card-header{padding:.75rem 1.25rem;margin-bottom:0;background-color:#f7f7f9;border-bottom:1px solid rgba(0,0,0,.125)}.card-header:first-child{border-radius:calc(.25rem - 1px) calc(.25rem - 1px) 0 0}.card-footer{padding:.75rem 1.25rem;background-color:#f7f7f9;border-top:1px solid rgba(0,0,0,.125)}.card-footer:last-child{border-radius:0 0 calc(.25rem - 1px) calc(.25rem - 1px)}.card-header-tabs{margin-right:-.625rem;margin-bottom:-.75rem;margin-left:-.625rem;border-bottom:0}.card-header-pills{margin-right:-.625rem;margin-left:-.625rem}.card-primary{background-color:#0275d8;border-color:#0275d8}.card-primary .card-footer,.card-primary .card-header{background-color:transparent}.card-success{background-color:#5cb85c;border-color:#5cb85c}.card-success .card-footer,.card-success .card-header{background-color:transparent}.card-info{background-color:#5bc0de;border-color:#5bc0de}.card-info .card-footer,.card-info .card-header{background-color:transparent}.card-warning{background-color:#f0ad4e;border-color:#f0ad4e}.card-warning .card-footer,.card-warning .card-header{background-color:transparent}.card-danger{background-color:#d9534f;border-color:#d9534f}.card-danger .card-footer,.card-danger .card-header{background-color:transparent}.card-outline-primary{background-color:transparent;border-color:#0275d8}.card-outline-secondary{background-color:transparent;border-color:#ccc}.card-outline-info{background-color:transparent;border-color:#5bc0de}.card-outline-success{background-color:transparent;border-color:#5cb85c}.card-outline-warning{background-color:transparent;border-color:#f0ad4e}.card-outline-danger{background-color:transparent;border-color:#d9534f}.card-inverse{color:rgba(255,255,255,.65)}.card-inverse .card-footer,.card-inverse .card-header{background-color:transparent;border-color:rgba(255,255,255,.2)}.card-inverse .card-blockquote,.card-inverse .card-footer,.card-inverse .card-header,.card-inverse .card-title{color:#fff}.card-inverse .card-blockquote .blockquote-footer,.card-inverse .card-link,.card-inverse .card-subtitle,.card-inverse .card-text{color:rgba(255,255,255,.65)}.card-inverse .card-link:focus,.card-inverse .card-link:hover{color:#fff}.card-blockquote{padding:0;margin-bottom:0;border-left:0}.card-img{border-radius:calc(.25rem - 1px)}.card-img-overlay{position:absolute;top:0;right:0;bottom:0;left:0;padding:1.25rem}.card-img-top{border-top-right-radius:calc(.25rem - 1px);border-top-left-radius:calc(.25rem - 1px)}.card-img-bottom{border-bottom-right-radius:calc(.25rem - 1px);border-bottom-left-radius:calc(.25rem - 1px)}@media (min-width:576px){.card-deck{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-flow:row wrap;-ms-flex-flow:row wrap;flex-flow:row wrap}.card-deck .card{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex:1;-webkit-flex:1 0 0%;-ms-flex:1 0 0%;flex:1 0 0%;-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column}.card-deck .card:not(:first-child){margin-left:15px}.card-deck .card:not(:last-child){margin-right:15px}}@media (min-width:576px){.card-group{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-flow:row wrap;-ms-flex-flow:row wrap;flex-flow:row wrap}.card-group .card{-webkit-box-flex:1;-webkit-flex:1 0 0%;-ms-flex:1 0 0%;flex:1 0 0%}.card-group .card+.card{margin-left:0;border-left:0}.card-group .card:first-child{border-bottom-right-radius:0;border-top-right-radius:0}.card-group .card:first-child .card-img-top{border-top-right-radius:0}.card-group .card:first-child .card-img-bottom{border-bottom-right-radius:0}.card-group .card:last-child{border-bottom-left-radius:0;border-top-left-radius:0}.card-group .card:last-child .card-img-top{border-top-left-radius:0}.card-group .card:last-child .card-img-bottom{border-bottom-left-radius:0}.card-group .card:not(:first-child):not(:last-child){border-radius:0}.card-group .card:not(:first-child):not(:last-child) .card-img-bottom,.card-group .card:not(:first-child):not(:last-child) .card-img-top{border-radius:0}}@media (min-width:576px){.card-columns{-webkit-column-count:3;-moz-column-count:3;column-count:3;-webkit-column-gap:1.25rem;-moz-column-gap:1.25rem;column-gap:1.25rem}.card-columns .card{display:inline-block;width:100%;margin-bottom:.75rem}}.breadcrumb{padding:.75rem 1rem;margin-bottom:1rem;list-style:none;background-color:#eceeef;border-radius:.25rem}.breadcrumb::after{display:block;content:"";clear:both}.breadcrumb-item{float:left}.breadcrumb-item+.breadcrumb-item::before{display:inline-block;padding-right:.5rem;padding-left:.5rem;color:#636c72;content:"/"}.breadcrumb-item+.breadcrumb-item:hover::before{text-decoration:underline}.breadcrumb-item+.breadcrumb-item:hover::before{text-decoration:none}.breadcrumb-item.active{color:#636c72}.pagination{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;padding-left:0;list-style:none;border-radius:.25rem}.page-item:first-child .page-link{margin-left:0;border-bottom-left-radius:.25rem;border-top-left-radius:.25rem}.page-item:last-child .page-link{border-bottom-right-radius:.25rem;border-top-right-radius:.25rem}.page-item.active .page-link{z-index:2;color:#fff;background-color:#0275d8;border-color:#0275d8}.page-item.disabled .page-link{color:#636c72;pointer-events:none;cursor:not-allowed;background-color:#fff;border-color:#ddd}.page-link{position:relative;display:block;padding:.5rem .75rem;margin-left:-1px;line-height:1.25;color:#0275d8;background-color:#fff;border:1px solid #ddd}.page-link:focus,.page-link:hover{color:#014c8c;text-decoration:none;background-color:#eceeef;border-color:#ddd}.pagination-lg .page-link{padding:.75rem 1.5rem;font-size:1.25rem}.pagination-lg .page-item:first-child .page-link{border-bottom-left-radius:.3rem;border-top-left-radius:.3rem}.pagination-lg .page-item:last-child .page-link{border-bottom-right-radius:.3rem;border-top-right-radius:.3rem}.pagination-sm .page-link{padding:.25rem .5rem;font-size:.875rem}.pagination-sm .page-item:first-child .page-link{border-bottom-left-radius:.2rem;border-top-left-radius:.2rem}.pagination-sm .page-item:last-child .page-link{border-bottom-right-radius:.2rem;border-top-right-radius:.2rem}.badge{display:inline-block;padding:.25em .4em;font-size:75%;font-weight:700;line-height:1;color:#fff;text-align:center;white-space:nowrap;vertical-align:baseline;border-radius:.25rem}.badge:empty{display:none}.btn .badge{position:relative;top:-1px}a.badge:focus,a.badge:hover{color:#fff;text-decoration:none;cursor:pointer}.badge-pill{padding-right:.6em;padding-left:.6em;border-radius:10rem}.badge-default{background-color:#636c72}.badge-default[href]:focus,.badge-default[href]:hover{background-color:#4b5257}.badge-primary{background-color:#0275d8}.badge-primary[href]:focus,.badge-primary[href]:hover{background-color:#025aa5}.badge-success{background-color:#5cb85c}.badge-success[href]:focus,.badge-success[href]:hover{background-color:#449d44}.badge-info{background-color:#5bc0de}.badge-info[href]:focus,.badge-info[href]:hover{background-color:#31b0d5}.badge-warning{background-color:#f0ad4e}.badge-warning[href]:focus,.badge-warning[href]:hover{background-color:#ec971f}.badge-danger{background-color:#d9534f}.badge-danger[href]:focus,.badge-danger[href]:hover{background-color:#c9302c}.jumbotron{padding:2rem 1rem;margin-bottom:2rem;background-color:#eceeef;border-radius:.3rem}@media (min-width:576px){.jumbotron{padding:4rem 2rem}}.jumbotron-hr{border-top-color:#d0d5d8}.jumbotron-fluid{padding-right:0;padding-left:0;border-radius:0}.alert{padding:.75rem 1.25rem;margin-bottom:1rem;border:1px solid transparent;border-radius:.25rem}.alert-heading{color:inherit}.alert-link{font-weight:700}.alert-dismissible .close{position:relative;top:-.75rem;right:-1.25rem;padding:.75rem 1.25rem;color:inherit}.alert-success{background-color:#dff0d8;border-color:#d0e9c6;color:#3c763d}.alert-success hr{border-top-color:#c1e2b3}.alert-success .alert-link{color:#2b542c}.alert-info{background-color:#d9edf7;border-color:#bcdff1;color:#31708f}.alert-info hr{border-top-color:#a6d5ec}.alert-info .alert-link{color:#245269}.alert-warning{background-color:#fcf8e3;border-color:#faf2cc;color:#8a6d3b}.alert-warning hr{border-top-color:#f7ecb5}.alert-warning .alert-link{color:#66512c}.alert-danger{background-color:#f2dede;border-color:#ebcccc;color:#a94442}.alert-danger hr{border-top-color:#e4b9b9}.alert-danger .alert-link{color:#843534}@-webkit-keyframes progress-bar-stripes{from{background-position:1rem 0}to{background-position:0 0}}@-o-keyframes progress-bar-stripes{from{background-position:1rem 0}to{background-position:0 0}}@keyframes progress-bar-stripes{from{background-position:1rem 0}to{background-position:0 0}}.progress{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;overflow:hidden;font-size:.75rem;line-height:1rem;text-align:center;background-color:#eceeef;border-radius:.25rem}.progress-bar{height:1rem;color:#fff;background-color:#0275d8}.progress-bar-striped{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);-webkit-background-size:1rem 1rem;background-size:1rem 1rem}.progress-bar-animated{-webkit-animation:progress-bar-stripes 1s linear infinite;-o-animation:progress-bar-stripes 1s linear infinite;animation:progress-bar-stripes 1s linear infinite}.media{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-align:start;-webkit-align-items:flex-start;-ms-flex-align:start;align-items:flex-start}.media-body{-webkit-box-flex:1;-webkit-flex:1 1 0%;-ms-flex:1 1 0%;flex:1 1 0%}.list-group{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;padding-left:0;margin-bottom:0}.list-group-item-action{width:100%;color:#464a4c;text-align:inherit}.list-group-item-action .list-group-item-heading{color:#292b2c}.list-group-item-action:focus,.list-group-item-action:hover{color:#464a4c;text-decoration:none;background-color:#f7f7f9}.list-group-item-action:active{color:#292b2c;background-color:#eceeef}.list-group-item{position:relative;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-flow:row wrap;-ms-flex-flow:row wrap;flex-flow:row wrap;-webkit-box-align:center;-webkit-align-items:center;-ms-flex-align:center;align-items:center;padding:.75rem 1.25rem;margin-bottom:-1px;background-color:#fff;border:1px solid rgba(0,0,0,.125)}.list-group-item:first-child{border-top-right-radius:.25rem;border-top-left-radius:.25rem}.list-group-item:last-child{margin-bottom:0;border-bottom-right-radius:.25rem;border-bottom-left-radius:.25rem}.list-group-item:focus,.list-group-item:hover{text-decoration:none}.list-group-item.disabled,.list-group-item:disabled{color:#636c72;cursor:not-allowed;background-color:#fff}.list-group-item.disabled .list-group-item-heading,.list-group-item:disabled .list-group-item-heading{color:inherit}.list-group-item.disabled .list-group-item-text,.list-group-item:disabled .list-group-item-text{color:#636c72}.list-group-item.active{z-index:2;color:#fff;background-color:#0275d8;border-color:#0275d8}.list-group-item.active .list-group-item-heading,.list-group-item.active .list-group-item-heading>.small,.list-group-item.active .list-group-item-heading>small{color:inherit}.list-group-item.active .list-group-item-text{color:#daeeff}.list-group-flush .list-group-item{border-right:0;border-left:0;border-radius:0}.list-group-flush:first-child .list-group-item:first-child{border-top:0}.list-group-flush:last-child .list-group-item:last-child{border-bottom:0}.list-group-item-success{color:#3c763d;background-color:#dff0d8}a.list-group-item-success,button.list-group-item-success{color:#3c763d}a.list-group-item-success .list-group-item-heading,button.list-group-item-success .list-group-item-heading{color:inherit}a.list-group-item-success:focus,a.list-group-item-success:hover,button.list-group-item-success:focus,button.list-group-item-success:hover{color:#3c763d;background-color:#d0e9c6}a.list-group-item-success.active,button.list-group-item-success.active{color:#fff;background-color:#3c763d;border-color:#3c763d}.list-group-item-info{color:#31708f;background-color:#d9edf7}a.list-group-item-info,button.list-group-item-info{color:#31708f}a.list-group-item-info .list-group-item-heading,button.list-group-item-info .list-group-item-heading{color:inherit}a.list-group-item-info:focus,a.list-group-item-info:hover,button.list-group-item-info:focus,button.list-group-item-info:hover{color:#31708f;background-color:#c4e3f3}a.list-group-item-info.active,button.list-group-item-info.active{color:#fff;background-color:#31708f;border-color:#31708f}.list-group-item-warning{color:#8a6d3b;background-color:#fcf8e3}a.list-group-item-warning,button.list-group-item-warning{color:#8a6d3b}a.list-group-item-warning .list-group-item-heading,button.list-group-item-warning .list-group-item-heading{color:inherit}a.list-group-item-warning:focus,a.list-group-item-warning:hover,button.list-group-item-warning:focus,button.list-group-item-warning:hover{color:#8a6d3b;background-color:#faf2cc}a.list-group-item-warning.active,button.list-group-item-warning.active{color:#fff;background-color:#8a6d3b;border-color:#8a6d3b}.list-group-item-danger{color:#a94442;background-color:#f2dede}a.list-group-item-danger,button.list-group-item-danger{color:#a94442}a.list-group-item-danger .list-group-item-heading,button.list-group-item-danger .list-group-item-heading{color:inherit}a.list-group-item-danger:focus,a.list-group-item-danger:hover,button.list-group-item-danger:focus,button.list-group-item-danger:hover{color:#a94442;background-color:#ebcccc}a.list-group-item-danger.active,button.list-group-item-danger.active{color:#fff;background-color:#a94442;border-color:#a94442}.embed-responsive{position:relative;display:block;width:100%;padding:0;overflow:hidden}.embed-responsive::before{display:block;content:""}.embed-responsive .embed-responsive-item,.embed-responsive embed,.embed-responsive iframe,.embed-responsive object,.embed-responsive video{position:absolute;top:0;bottom:0;left:0;width:100%;height:100%;border:0}.embed-responsive-21by9::before{padding-top:42.857143%}.embed-responsive-16by9::before{padding-top:56.25%}.embed-responsive-4by3::before{padding-top:75%}.embed-responsive-1by1::before{padding-top:100%}.close{float:right;font-size:1.5rem;font-weight:700;line-height:1;color:#000;text-shadow:0 1px 0 #fff;opacity:.5}.close:focus,.close:hover{color:#000;text-decoration:none;cursor:pointer;opacity:.75}button.close{padding:0;cursor:pointer;background:0 0;border:0;-webkit-appearance:none}.modal-open{overflow:hidden}.modal{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1050;display:none;overflow:hidden;outline:0}.modal.fade .modal-dialog{-webkit-transition:-webkit-transform .3s ease-out;transition:-webkit-transform .3s ease-out;-o-transition:-o-transform .3s ease-out;transition:transform .3s ease-out;transition:transform .3s ease-out,-webkit-transform .3s ease-out,-o-transform .3s ease-out;-webkit-transform:translate(0,-25%);-o-transform:translate(0,-25%);transform:translate(0,-25%)}.modal.show .modal-dialog{-webkit-transform:translate(0,0);-o-transform:translate(0,0);transform:translate(0,0)}.modal-open .modal{overflow-x:hidden;overflow-y:auto}.modal-dialog{position:relative;width:auto;margin:10px}.modal-content{position:relative;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;background-color:#fff;-webkit-background-clip:padding-box;background-clip:padding-box;border:1px solid rgba(0,0,0,.2);border-radius:.3rem;outline:0}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1040;background-color:#000}.modal-backdrop.fade{opacity:0}.modal-backdrop.show{opacity:.5}.modal-header{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-align:center;-webkit-align-items:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:justify;-webkit-justify-content:space-between;-ms-flex-pack:justify;justify-content:space-between;padding:15px;border-bottom:1px solid #eceeef}.modal-title{margin-bottom:0;line-height:1.5}.modal-body{position:relative;-webkit-box-flex:1;-webkit-flex:1 1 auto;-ms-flex:1 1 auto;flex:1 1 auto;padding:15px}.modal-footer{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-align:center;-webkit-align-items:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:end;-webkit-justify-content:flex-end;-ms-flex-pack:end;justify-content:flex-end;padding:15px;border-top:1px solid #eceeef}.modal-footer>:not(:first-child){margin-left:.25rem}.modal-footer>:not(:last-child){margin-right:.25rem}.modal-scrollbar-measure{position:absolute;top:-9999px;width:50px;height:50px;overflow:scroll}@media (min-width:576px){.modal-dialog{max-width:500px;margin:30px auto}.modal-sm{max-width:300px}}@media (min-width:992px){.modal-lg{max-width:800px}}.tooltip{position:absolute;z-index:1070;display:block;font-family:-apple-system,system-ui,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-style:normal;font-weight:400;letter-spacing:normal;line-break:auto;line-height:1.5;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;white-space:normal;word-break:normal;word-spacing:normal;font-size:.875rem;word-wrap:break-word;opacity:0}.tooltip.show{opacity:.9}.tooltip.bs-tether-element-attached-bottom,.tooltip.tooltip-top{padding:5px 0;margin-top:-3px}.tooltip.bs-tether-element-attached-bottom .tooltip-inner::before,.tooltip.tooltip-top .tooltip-inner::before{bottom:0;left:50%;margin-left:-5px;content:"";border-width:5px 5px 0;border-top-color:#000}.tooltip.bs-tether-element-attached-left,.tooltip.tooltip-right{padding:0 5px;margin-left:3px}.tooltip.bs-tether-element-attached-left .tooltip-inner::before,.tooltip.tooltip-right .tooltip-inner::before{top:50%;left:0;margin-top:-5px;content:"";border-width:5px 5px 5px 0;border-right-color:#000}.tooltip.bs-tether-element-attached-top,.tooltip.tooltip-bottom{padding:5px 0;margin-top:3px}.tooltip.bs-tether-element-attached-top .tooltip-inner::before,.tooltip.tooltip-bottom .tooltip-inner::before{top:0;left:50%;margin-left:-5px;content:"";border-width:0 5px 5px;border-bottom-color:#000}.tooltip.bs-tether-element-attached-right,.tooltip.tooltip-left{padding:0 5px;margin-left:-3px}.tooltip.bs-tether-element-attached-right .tooltip-inner::before,.tooltip.tooltip-left .tooltip-inner::before{top:50%;right:0;margin-top:-5px;content:"";border-width:5px 0 5px 5px;border-left-color:#000}.tooltip-inner{max-width:200px;padding:3px 8px;color:#fff;text-align:center;background-color:#000;border-radius:.25rem}.tooltip-inner::before{position:absolute;width:0;height:0;border-color:transparent;border-style:solid}.popover{position:absolute;top:0;left:0;z-index:1060;display:block;max-width:276px;padding:1px;font-family:-apple-system,system-ui,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-style:normal;font-weight:400;letter-spacing:normal;line-break:auto;line-height:1.5;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;white-space:normal;word-break:normal;word-spacing:normal;font-size:.875rem;word-wrap:break-word;background-color:#fff;-webkit-background-clip:padding-box;background-clip:padding-box;border:1px solid rgba(0,0,0,.2);border-radius:.3rem}.popover.bs-tether-element-attached-bottom,.popover.popover-top{margin-top:-10px}.popover.bs-tether-element-attached-bottom::after,.popover.bs-tether-element-attached-bottom::before,.popover.popover-top::after,.popover.popover-top::before{left:50%;border-bottom-width:0}.popover.bs-tether-element-attached-bottom::before,.popover.popover-top::before{bottom:-11px;margin-left:-11px;border-top-color:rgba(0,0,0,.25)}.popover.bs-tether-element-attached-bottom::after,.popover.popover-top::after{bottom:-10px;margin-left:-10px;border-top-color:#fff}.popover.bs-tether-element-attached-left,.popover.popover-right{margin-left:10px}.popover.bs-tether-element-attached-left::after,.popover.bs-tether-element-attached-left::before,.popover.popover-right::after,.popover.popover-right::before{top:50%;border-left-width:0}.popover.bs-tether-element-attached-left::before,.popover.popover-right::before{left:-11px;margin-top:-11px;border-right-color:rgba(0,0,0,.25)}.popover.bs-tether-element-attached-left::after,.popover.popover-right::after{left:-10px;margin-top:-10px;border-right-color:#fff}.popover.bs-tether-element-attached-top,.popover.popover-bottom{margin-top:10px}.popover.bs-tether-element-attached-top::after,.popover.bs-tether-element-attached-top::before,.popover.popover-bottom::after,.popover.popover-bottom::before{left:50%;border-top-width:0}.popover.bs-tether-element-attached-top::before,.popover.popover-bottom::before{top:-11px;margin-left:-11px;border-bottom-color:rgba(0,0,0,.25)}.popover.bs-tether-element-attached-top::after,.popover.popover-bottom::after{top:-10px;margin-left:-10px;border-bottom-color:#f7f7f7}.popover.bs-tether-element-attached-top .popover-title::before,.popover.popover-bottom .popover-title::before{position:absolute;top:0;left:50%;display:block;width:20px;margin-left:-10px;content:"";border-bottom:1px solid #f7f7f7}.popover.bs-tether-element-attached-right,.popover.popover-left{margin-left:-10px}.popover.bs-tether-element-attached-right::after,.popover.bs-tether-element-attached-right::before,.popover.popover-left::after,.popover.popover-left::before{top:50%;border-right-width:0}.popover.bs-tether-element-attached-right::before,.popover.popover-left::before{right:-11px;margin-top:-11px;border-left-color:rgba(0,0,0,.25)}.popover.bs-tether-element-attached-right::after,.popover.popover-left::after{right:-10px;margin-top:-10px;border-left-color:#fff}.popover-title{padding:8px 14px;margin-bottom:0;font-size:1rem;background-color:#f7f7f7;border-bottom:1px solid #ebebeb;border-top-right-radius:calc(.3rem - 1px);border-top-left-radius:calc(.3rem - 1px)}.popover-title:empty{display:none}.popover-content{padding:9px 14px}.popover::after,.popover::before{position:absolute;display:block;width:0;height:0;border-color:transparent;border-style:solid}.popover::before{content:"";border-width:11px}.popover::after{content:"";border-width:10px}.carousel{position:relative}.carousel-inner{position:relative;width:100%;overflow:hidden}.carousel-item{position:relative;display:none;width:100%}@media (-webkit-transform-3d){.carousel-item{-webkit-transition:-webkit-transform .6s ease-in-out;transition:-webkit-transform .6s ease-in-out;-o-transition:-o-transform .6s ease-in-out;transition:transform .6s ease-in-out;transition:transform .6s ease-in-out,-webkit-transform .6s ease-in-out,-o-transform .6s ease-in-out;-webkit-backface-visibility:hidden;backface-visibility:hidden;-webkit-perspective:1000px;perspective:1000px}}@supports ((-webkit-transform:translate3d(0,0,0)) or (transform:translate3d(0,0,0))){.carousel-item{-webkit-transition:-webkit-transform .6s ease-in-out;transition:-webkit-transform .6s ease-in-out;-o-transition:-o-transform .6s ease-in-out;transition:transform .6s ease-in-out;transition:transform .6s ease-in-out,-webkit-transform .6s ease-in-out,-o-transform .6s ease-in-out;-webkit-backface-visibility:hidden;backface-visibility:hidden;-webkit-perspective:1000px;perspective:1000px}}.carousel-item-next,.carousel-item-prev,.carousel-item.active{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex}.carousel-item-next,.carousel-item-prev{position:absolute;top:0}@media (-webkit-transform-3d){.carousel-item-next.carousel-item-left,.carousel-item-prev.carousel-item-right{-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}.active.carousel-item-right,.carousel-item-next{-webkit-transform:translate3d(100%,0,0);transform:translate3d(100%,0,0)}.active.carousel-item-left,.carousel-item-prev{-webkit-transform:translate3d(-100%,0,0);transform:translate3d(-100%,0,0)}}@supports ((-webkit-transform:translate3d(0,0,0)) or (transform:translate3d(0,0,0))){.carousel-item-next.carousel-item-left,.carousel-item-prev.carousel-item-right{-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}.active.carousel-item-right,.carousel-item-next{-webkit-transform:translate3d(100%,0,0);transform:translate3d(100%,0,0)}.active.carousel-item-left,.carousel-item-prev{-webkit-transform:translate3d(-100%,0,0);transform:translate3d(-100%,0,0)}}.carousel-control-next,.carousel-control-prev{position:absolute;top:0;bottom:0;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-align:center;-webkit-align-items:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;width:15%;color:#fff;text-align:center;opacity:.5}.carousel-control-next:focus,.carousel-control-next:hover,.carousel-control-prev:focus,.carousel-control-prev:hover{color:#fff;text-decoration:none;outline:0;opacity:.9}.carousel-control-prev{left:0}.carousel-control-next{right:0}.carousel-control-next-icon,.carousel-control-prev-icon{display:inline-block;width:20px;height:20px;background:transparent no-repeat center center;-webkit-background-size:100% 100%;background-size:100% 100%}.carousel-control-prev-icon{background-image:url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' viewBox='0 0 8 8'%3E%3Cpath d='M4 0l-4 4 4 4 1.5-1.5-2.5-2.5 2.5-2.5-1.5-1.5z'/%3E%3C/svg%3E")}.carousel-control-next-icon{background-image:url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' viewBox='0 0 8 8'%3E%3Cpath d='M1.5 0l-1.5 1.5 2.5 2.5-2.5 2.5 1.5 1.5 4-4-4-4z'/%3E%3C/svg%3E")}.carousel-indicators{position:absolute;right:0;bottom:10px;left:0;z-index:15;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;padding-left:0;margin-right:15%;margin-left:15%;list-style:none}.carousel-indicators li{position:relative;-webkit-box-flex:1;-webkit-flex:1 0 auto;-ms-flex:1 0 auto;flex:1 0 auto;max-width:30px;height:3px;margin-right:3px;margin-left:3px;text-indent:-999px;cursor:pointer;background-color:rgba(255,255,255,.5)}.carousel-indicators li::before{position:absolute;top:-10px;left:0;display:inline-block;width:100%;height:10px;content:""}.carousel-indicators li::after{position:absolute;bottom:-10px;left:0;display:inline-block;width:100%;height:10px;content:""}.carousel-indicators .active{background-color:#fff}.carousel-caption{position:absolute;right:15%;bottom:20px;left:15%;z-index:10;padding-top:20px;padding-bottom:20px;color:#fff;text-align:center}.align-baseline{vertical-align:baseline!important}.align-top{vertical-align:top!important}.align-middle{vertical-align:middle!important}.align-bottom{vertical-align:bottom!important}.align-text-bottom{vertical-align:text-bottom!important}.align-text-top{vertical-align:text-top!important}.bg-faded{background-color:#f7f7f7}.bg-primary{background-color:#0275d8!important}a.bg-primary:focus,a.bg-primary:hover{background-color:#025aa5!important}.bg-success{background-color:#5cb85c!important}a.bg-success:focus,a.bg-success:hover{background-color:#449d44!important}.bg-info{background-color:#5bc0de!important}a.bg-info:focus,a.bg-info:hover{background-color:#31b0d5!important}.bg-warning{background-color:#f0ad4e!important}a.bg-warning:focus,a.bg-warning:hover{background-color:#ec971f!important}.bg-danger{background-color:#d9534f!important}a.bg-danger:focus,a.bg-danger:hover{background-color:#c9302c!important}.bg-inverse{background-color:#292b2c!important}a.bg-inverse:focus,a.bg-inverse:hover{background-color:#101112!important}.border-0{border:0!important}.border-top-0{border-top:0!important}.border-right-0{border-right:0!important}.border-bottom-0{border-bottom:0!important}.border-left-0{border-left:0!important}.rounded{border-radius:.25rem}.rounded-top{border-top-right-radius:.25rem;border-top-left-radius:.25rem}.rounded-right{border-bottom-right-radius:.25rem;border-top-right-radius:.25rem}.rounded-bottom{border-bottom-right-radius:.25rem;border-bottom-left-radius:.25rem}.rounded-left{border-bottom-left-radius:.25rem;border-top-left-radius:.25rem}.rounded-circle{border-radius:50%}.rounded-0{border-radius:0}.clearfix::after{display:block;content:"";clear:both}.d-none{display:none!important}.d-inline{display:inline!important}.d-inline-block{display:inline-block!important}.d-block{display:block!important}.d-table{display:table!important}.d-table-cell{display:table-cell!important}.d-flex{display:-webkit-box!important;display:-webkit-flex!important;display:-ms-flexbox!important;display:flex!important}.d-inline-flex{display:-webkit-inline-box!important;display:-webkit-inline-flex!important;display:-ms-inline-flexbox!important;display:inline-flex!important}@media (min-width:576px){.d-sm-none{display:none!important}.d-sm-inline{display:inline!important}.d-sm-inline-block{display:inline-block!important}.d-sm-block{display:block!important}.d-sm-table{display:table!important}.d-sm-table-cell{display:table-cell!important}.d-sm-flex{display:-webkit-box!important;display:-webkit-flex!important;display:-ms-flexbox!important;display:flex!important}.d-sm-inline-flex{display:-webkit-inline-box!important;display:-webkit-inline-flex!important;display:-ms-inline-flexbox!important;display:inline-flex!important}}@media (min-width:768px){.d-md-none{display:none!important}.d-md-inline{display:inline!important}.d-md-inline-block{display:inline-block!important}.d-md-block{display:block!important}.d-md-table{display:table!important}.d-md-table-cell{display:table-cell!important}.d-md-flex{display:-webkit-box!important;display:-webkit-flex!important;display:-ms-flexbox!important;display:flex!important}.d-md-inline-flex{display:-webkit-inline-box!important;display:-webkit-inline-flex!important;display:-ms-inline-flexbox!important;display:inline-flex!important}}@media (min-width:992px){.d-lg-none{display:none!important}.d-lg-inline{display:inline!important}.d-lg-inline-block{display:inline-block!important}.d-lg-block{display:block!important}.d-lg-table{display:table!important}.d-lg-table-cell{display:table-cell!important}.d-lg-flex{display:-webkit-box!important;display:-webkit-flex!important;display:-ms-flexbox!important;display:flex!important}.d-lg-inline-flex{display:-webkit-inline-box!important;display:-webkit-inline-flex!important;display:-ms-inline-flexbox!important;display:inline-flex!important}}@media (min-width:1200px){.d-xl-none{display:none!important}.d-xl-inline{display:inline!important}.d-xl-inline-block{display:inline-block!important}.d-xl-block{display:block!important}.d-xl-table{display:table!important}.d-xl-table-cell{display:table-cell!important}.d-xl-flex{display:-webkit-box!important;display:-webkit-flex!important;display:-ms-flexbox!important;display:flex!important}.d-xl-inline-flex{display:-webkit-inline-box!important;display:-webkit-inline-flex!important;display:-ms-inline-flexbox!important;display:inline-flex!important}}.flex-first{-webkit-box-ordinal-group:0;-webkit-order:-1;-ms-flex-order:-1;order:-1}.flex-last{-webkit-box-ordinal-group:2;-webkit-order:1;-ms-flex-order:1;order:1}.flex-unordered{-webkit-box-ordinal-group:1;-webkit-order:0;-ms-flex-order:0;order:0}.flex-row{-webkit-box-orient:horizontal!important;-webkit-box-direction:normal!important;-webkit-flex-direction:row!important;-ms-flex-direction:row!important;flex-direction:row!important}.flex-column{-webkit-box-orient:vertical!important;-webkit-box-direction:normal!important;-webkit-flex-direction:column!important;-ms-flex-direction:column!important;flex-direction:column!important}.flex-row-reverse{-webkit-box-orient:horizontal!important;-webkit-box-direction:reverse!important;-webkit-flex-direction:row-reverse!important;-ms-flex-direction:row-reverse!important;flex-direction:row-reverse!important}.flex-column-reverse{-webkit-box-orient:vertical!important;-webkit-box-direction:reverse!important;-webkit-flex-direction:column-reverse!important;-ms-flex-direction:column-reverse!important;flex-direction:column-reverse!important}.flex-wrap{-webkit-flex-wrap:wrap!important;-ms-flex-wrap:wrap!important;flex-wrap:wrap!important}.flex-nowrap{-webkit-flex-wrap:nowrap!important;-ms-flex-wrap:nowrap!important;flex-wrap:nowrap!important}.flex-wrap-reverse{-webkit-flex-wrap:wrap-reverse!important;-ms-flex-wrap:wrap-reverse!important;flex-wrap:wrap-reverse!important}.justify-content-start{-webkit-box-pack:start!important;-webkit-justify-content:flex-start!important;-ms-flex-pack:start!important;justify-content:flex-start!important}.justify-content-end{-webkit-box-pack:end!important;-webkit-justify-content:flex-end!important;-ms-flex-pack:end!important;justify-content:flex-end!important}.justify-content-center{-webkit-box-pack:center!important;-webkit-justify-content:center!important;-ms-flex-pack:center!important;justify-content:center!important}.justify-content-between{-webkit-box-pack:justify!important;-webkit-justify-content:space-between!important;-ms-flex-pack:justify!important;justify-content:space-between!important}.justify-content-around{-webkit-justify-content:space-around!important;-ms-flex-pack:distribute!important;justify-content:space-around!important}.align-items-start{-webkit-box-align:start!important;-webkit-align-items:flex-start!important;-ms-flex-align:start!important;align-items:flex-start!important}.align-items-end{-webkit-box-align:end!important;-webkit-align-items:flex-end!important;-ms-flex-align:end!important;align-items:flex-end!important}.align-items-center{-webkit-box-align:center!important;-webkit-align-items:center!important;-ms-flex-align:center!important;align-items:center!important}.align-items-baseline{-webkit-box-align:baseline!important;-webkit-align-items:baseline!important;-ms-flex-align:baseline!important;align-items:baseline!important}.align-items-stretch{-webkit-box-align:stretch!important;-webkit-align-items:stretch!important;-ms-flex-align:stretch!important;align-items:stretch!important}.align-content-start{-webkit-align-content:flex-start!important;-ms-flex-line-pack:start!important;align-content:flex-start!important}.align-content-end{-webkit-align-content:flex-end!important;-ms-flex-line-pack:end!important;align-content:flex-end!important}.align-content-center{-webkit-align-content:center!important;-ms-flex-line-pack:center!important;align-content:center!important}.align-content-between{-webkit-align-content:space-between!important;-ms-flex-line-pack:justify!important;align-content:space-between!important}.align-content-around{-webkit-align-content:space-around!important;-ms-flex-line-pack:distribute!important;align-content:space-around!important}.align-content-stretch{-webkit-align-content:stretch!important;-ms-flex-line-pack:stretch!important;align-content:stretch!important}.align-self-auto{-webkit-align-self:auto!important;-ms-flex-item-align:auto!important;-ms-grid-row-align:auto!important;align-self:auto!important}.align-self-start{-webkit-align-self:flex-start!important;-ms-flex-item-align:start!important;align-self:flex-start!important}.align-self-end{-webkit-align-self:flex-end!important;-ms-flex-item-align:end!important;align-self:flex-end!important}.align-self-center{-webkit-align-self:center!important;-ms-flex-item-align:center!important;-ms-grid-row-align:center!important;align-self:center!important}.align-self-baseline{-webkit-align-self:baseline!important;-ms-flex-item-align:baseline!important;align-self:baseline!important}.align-self-stretch{-webkit-align-self:stretch!important;-ms-flex-item-align:stretch!important;-ms-grid-row-align:stretch!important;align-self:stretch!important}@media (min-width:576px){.flex-sm-first{-webkit-box-ordinal-group:0;-webkit-order:-1;-ms-flex-order:-1;order:-1}.flex-sm-last{-webkit-box-ordinal-group:2;-webkit-order:1;-ms-flex-order:1;order:1}.flex-sm-unordered{-webkit-box-ordinal-group:1;-webkit-order:0;-ms-flex-order:0;order:0}.flex-sm-row{-webkit-box-orient:horizontal!important;-webkit-box-direction:normal!important;-webkit-flex-direction:row!important;-ms-flex-direction:row!important;flex-direction:row!important}.flex-sm-column{-webkit-box-orient:vertical!important;-webkit-box-direction:normal!important;-webkit-flex-direction:column!important;-ms-flex-direction:column!important;flex-direction:column!important}.flex-sm-row-reverse{-webkit-box-orient:horizontal!important;-webkit-box-direction:reverse!important;-webkit-flex-direction:row-reverse!important;-ms-flex-direction:row-reverse!important;flex-direction:row-reverse!important}.flex-sm-column-reverse{-webkit-box-orient:vertical!important;-webkit-box-direction:reverse!important;-webkit-flex-direction:column-reverse!important;-ms-flex-direction:column-reverse!important;flex-direction:column-reverse!important}.flex-sm-wrap{-webkit-flex-wrap:wrap!important;-ms-flex-wrap:wrap!important;flex-wrap:wrap!important}.flex-sm-nowrap{-webkit-flex-wrap:nowrap!important;-ms-flex-wrap:nowrap!important;flex-wrap:nowrap!important}.flex-sm-wrap-reverse{-webkit-flex-wrap:wrap-reverse!important;-ms-flex-wrap:wrap-reverse!important;flex-wrap:wrap-reverse!important}.justify-content-sm-start{-webkit-box-pack:start!important;-webkit-justify-content:flex-start!important;-ms-flex-pack:start!important;justify-content:flex-start!important}.justify-content-sm-end{-webkit-box-pack:end!important;-webkit-justify-content:flex-end!important;-ms-flex-pack:end!important;justify-content:flex-end!important}.justify-content-sm-center{-webkit-box-pack:center!important;-webkit-justify-content:center!important;-ms-flex-pack:center!important;justify-content:center!important}.justify-content-sm-between{-webkit-box-pack:justify!important;-webkit-justify-content:space-between!important;-ms-flex-pack:justify!important;justify-content:space-between!important}.justify-content-sm-around{-webkit-justify-content:space-around!important;-ms-flex-pack:distribute!important;justify-content:space-around!important}.align-items-sm-start{-webkit-box-align:start!important;-webkit-align-items:flex-start!important;-ms-flex-align:start!important;align-items:flex-start!important}.align-items-sm-end{-webkit-box-align:end!important;-webkit-align-items:flex-end!important;-ms-flex-align:end!important;align-items:flex-end!important}.align-items-sm-center{-webkit-box-align:center!important;-webkit-align-items:center!important;-ms-flex-align:center!important;align-items:center!important}.align-items-sm-baseline{-webkit-box-align:baseline!important;-webkit-align-items:baseline!important;-ms-flex-align:baseline!important;align-items:baseline!important}.align-items-sm-stretch{-webkit-box-align:stretch!important;-webkit-align-items:stretch!important;-ms-flex-align:stretch!important;align-items:stretch!important}.align-content-sm-start{-webkit-align-content:flex-start!important;-ms-flex-line-pack:start!important;align-content:flex-start!important}.align-content-sm-end{-webkit-align-content:flex-end!important;-ms-flex-line-pack:end!important;align-content:flex-end!important}.align-content-sm-center{-webkit-align-content:center!important;-ms-flex-line-pack:center!important;align-content:center!important}.align-content-sm-between{-webkit-align-content:space-between!important;-ms-flex-line-pack:justify!important;align-content:space-between!important}.align-content-sm-around{-webkit-align-content:space-around!important;-ms-flex-line-pack:distribute!important;align-content:space-around!important}.align-content-sm-stretch{-webkit-align-content:stretch!important;-ms-flex-line-pack:stretch!important;align-content:stretch!important}.align-self-sm-auto{-webkit-align-self:auto!important;-ms-flex-item-align:auto!important;-ms-grid-row-align:auto!important;align-self:auto!important}.align-self-sm-start{-webkit-align-self:flex-start!important;-ms-flex-item-align:start!important;align-self:flex-start!important}.align-self-sm-end{-webkit-align-self:flex-end!important;-ms-flex-item-align:end!important;align-self:flex-end!important}.align-self-sm-center{-webkit-align-self:center!important;-ms-flex-item-align:center!important;-ms-grid-row-align:center!important;align-self:center!important}.align-self-sm-baseline{-webkit-align-self:baseline!important;-ms-flex-item-align:baseline!important;align-self:baseline!important}.align-self-sm-stretch{-webkit-align-self:stretch!important;-ms-flex-item-align:stretch!important;-ms-grid-row-align:stretch!important;align-self:stretch!important}}@media (min-width:768px){.flex-md-first{-webkit-box-ordinal-group:0;-webkit-order:-1;-ms-flex-order:-1;order:-1}.flex-md-last{-webkit-box-ordinal-group:2;-webkit-order:1;-ms-flex-order:1;order:1}.flex-md-unordered{-webkit-box-ordinal-group:1;-webkit-order:0;-ms-flex-order:0;order:0}.flex-md-row{-webkit-box-orient:horizontal!important;-webkit-box-direction:normal!important;-webkit-flex-direction:row!important;-ms-flex-direction:row!important;flex-direction:row!important}.flex-md-column{-webkit-box-orient:vertical!important;-webkit-box-direction:normal!important;-webkit-flex-direction:column!important;-ms-flex-direction:column!important;flex-direction:column!important}.flex-md-row-reverse{-webkit-box-orient:horizontal!important;-webkit-box-direction:reverse!important;-webkit-flex-direction:row-reverse!important;-ms-flex-direction:row-reverse!important;flex-direction:row-reverse!important}.flex-md-column-reverse{-webkit-box-orient:vertical!important;-webkit-box-direction:reverse!important;-webkit-flex-direction:column-reverse!important;-ms-flex-direction:column-reverse!important;flex-direction:column-reverse!important}.flex-md-wrap{-webkit-flex-wrap:wrap!important;-ms-flex-wrap:wrap!important;flex-wrap:wrap!important}.flex-md-nowrap{-webkit-flex-wrap:nowrap!important;-ms-flex-wrap:nowrap!important;flex-wrap:nowrap!important}.flex-md-wrap-reverse{-webkit-flex-wrap:wrap-reverse!important;-ms-flex-wrap:wrap-reverse!important;flex-wrap:wrap-reverse!important}.justify-content-md-start{-webkit-box-pack:start!important;-webkit-justify-content:flex-start!important;-ms-flex-pack:start!important;justify-content:flex-start!important}.justify-content-md-end{-webkit-box-pack:end!important;-webkit-justify-content:flex-end!important;-ms-flex-pack:end!important;justify-content:flex-end!important}.justify-content-md-center{-webkit-box-pack:center!important;-webkit-justify-content:center!important;-ms-flex-pack:center!important;justify-content:center!important}.justify-content-md-between{-webkit-box-pack:justify!important;-webkit-justify-content:space-between!important;-ms-flex-pack:justify!important;justify-content:space-between!important}.justify-content-md-around{-webkit-justify-content:space-around!important;-ms-flex-pack:distribute!important;justify-content:space-around!important}.align-items-md-start{-webkit-box-align:start!important;-webkit-align-items:flex-start!important;-ms-flex-align:start!important;align-items:flex-start!important}.align-items-md-end{-webkit-box-align:end!important;-webkit-align-items:flex-end!important;-ms-flex-align:end!important;align-items:flex-end!important}.align-items-md-center{-webkit-box-align:center!important;-webkit-align-items:center!important;-ms-flex-align:center!important;align-items:center!important}.align-items-md-baseline{-webkit-box-align:baseline!important;-webkit-align-items:baseline!important;-ms-flex-align:baseline!important;align-items:baseline!important}.align-items-md-stretch{-webkit-box-align:stretch!important;-webkit-align-items:stretch!important;-ms-flex-align:stretch!important;align-items:stretch!important}.align-content-md-start{-webkit-align-content:flex-start!important;-ms-flex-line-pack:start!important;align-content:flex-start!important}.align-content-md-end{-webkit-align-content:flex-end!important;-ms-flex-line-pack:end!important;align-content:flex-end!important}.align-content-md-center{-webkit-align-content:center!important;-ms-flex-line-pack:center!important;align-content:center!important}.align-content-md-between{-webkit-align-content:space-between!important;-ms-flex-line-pack:justify!important;align-content:space-between!important}.align-content-md-around{-webkit-align-content:space-around!important;-ms-flex-line-pack:distribute!important;align-content:space-around!important}.align-content-md-stretch{-webkit-align-content:stretch!important;-ms-flex-line-pack:stretch!important;align-content:stretch!important}.align-self-md-auto{-webkit-align-self:auto!important;-ms-flex-item-align:auto!important;-ms-grid-row-align:auto!important;align-self:auto!important}.align-self-md-start{-webkit-align-self:flex-start!important;-ms-flex-item-align:start!important;align-self:flex-start!important}.align-self-md-end{-webkit-align-self:flex-end!important;-ms-flex-item-align:end!important;align-self:flex-end!important}.align-self-md-center{-webkit-align-self:center!important;-ms-flex-item-align:center!important;-ms-grid-row-align:center!important;align-self:center!important}.align-self-md-baseline{-webkit-align-self:baseline!important;-ms-flex-item-align:baseline!important;align-self:baseline!important}.align-self-md-stretch{-webkit-align-self:stretch!important;-ms-flex-item-align:stretch!important;-ms-grid-row-align:stretch!important;align-self:stretch!important}}@media (min-width:992px){.flex-lg-first{-webkit-box-ordinal-group:0;-webkit-order:-1;-ms-flex-order:-1;order:-1}.flex-lg-last{-webkit-box-ordinal-group:2;-webkit-order:1;-ms-flex-order:1;order:1}.flex-lg-unordered{-webkit-box-ordinal-group:1;-webkit-order:0;-ms-flex-order:0;order:0}.flex-lg-row{-webkit-box-orient:horizontal!important;-webkit-box-direction:normal!important;-webkit-flex-direction:row!important;-ms-flex-direction:row!important;flex-direction:row!important}.flex-lg-column{-webkit-box-orient:vertical!important;-webkit-box-direction:normal!important;-webkit-flex-direction:column!important;-ms-flex-direction:column!important;flex-direction:column!important}.flex-lg-row-reverse{-webkit-box-orient:horizontal!important;-webkit-box-direction:reverse!important;-webkit-flex-direction:row-reverse!important;-ms-flex-direction:row-reverse!important;flex-direction:row-reverse!important}.flex-lg-column-reverse{-webkit-box-orient:vertical!important;-webkit-box-direction:reverse!important;-webkit-flex-direction:column-reverse!important;-ms-flex-direction:column-reverse!important;flex-direction:column-reverse!important}.flex-lg-wrap{-webkit-flex-wrap:wrap!important;-ms-flex-wrap:wrap!important;flex-wrap:wrap!important}.flex-lg-nowrap{-webkit-flex-wrap:nowrap!important;-ms-flex-wrap:nowrap!important;flex-wrap:nowrap!important}.flex-lg-wrap-reverse{-webkit-flex-wrap:wrap-reverse!important;-ms-flex-wrap:wrap-reverse!important;flex-wrap:wrap-reverse!important}.justify-content-lg-start{-webkit-box-pack:start!important;-webkit-justify-content:flex-start!important;-ms-flex-pack:start!important;justify-content:flex-start!important}.justify-content-lg-end{-webkit-box-pack:end!important;-webkit-justify-content:flex-end!important;-ms-flex-pack:end!important;justify-content:flex-end!important}.justify-content-lg-center{-webkit-box-pack:center!important;-webkit-justify-content:center!important;-ms-flex-pack:center!important;justify-content:center!important}.justify-content-lg-between{-webkit-box-pack:justify!important;-webkit-justify-content:space-between!important;-ms-flex-pack:justify!important;justify-content:space-between!important}.justify-content-lg-around{-webkit-justify-content:space-around!important;-ms-flex-pack:distribute!important;justify-content:space-around!important}.align-items-lg-start{-webkit-box-align:start!important;-webkit-align-items:flex-start!important;-ms-flex-align:start!important;align-items:flex-start!important}.align-items-lg-end{-webkit-box-align:end!important;-webkit-align-items:flex-end!important;-ms-flex-align:end!important;align-items:flex-end!important}.align-items-lg-center{-webkit-box-align:center!important;-webkit-align-items:center!important;-ms-flex-align:center!important;align-items:center!important}.align-items-lg-baseline{-webkit-box-align:baseline!important;-webkit-align-items:baseline!important;-ms-flex-align:baseline!important;align-items:baseline!important}.align-items-lg-stretch{-webkit-box-align:stretch!important;-webkit-align-items:stretch!important;-ms-flex-align:stretch!important;align-items:stretch!important}.align-content-lg-start{-webkit-align-content:flex-start!important;-ms-flex-line-pack:start!important;align-content:flex-start!important}.align-content-lg-end{-webkit-align-content:flex-end!important;-ms-flex-line-pack:end!important;align-content:flex-end!important}.align-content-lg-center{-webkit-align-content:center!important;-ms-flex-line-pack:center!important;align-content:center!important}.align-content-lg-between{-webkit-align-content:space-between!important;-ms-flex-line-pack:justify!important;align-content:space-between!important}.align-content-lg-around{-webkit-align-content:space-around!important;-ms-flex-line-pack:distribute!important;align-content:space-around!important}.align-content-lg-stretch{-webkit-align-content:stretch!important;-ms-flex-line-pack:stretch!important;align-content:stretch!important}.align-self-lg-auto{-webkit-align-self:auto!important;-ms-flex-item-align:auto!important;-ms-grid-row-align:auto!important;align-self:auto!important}.align-self-lg-start{-webkit-align-self:flex-start!important;-ms-flex-item-align:start!important;align-self:flex-start!important}.align-self-lg-end{-webkit-align-self:flex-end!important;-ms-flex-item-align:end!important;align-self:flex-end!important}.align-self-lg-center{-webkit-align-self:center!important;-ms-flex-item-align:center!important;-ms-grid-row-align:center!important;align-self:center!important}.align-self-lg-baseline{-webkit-align-self:baseline!important;-ms-flex-item-align:baseline!important;align-self:baseline!important}.align-self-lg-stretch{-webkit-align-self:stretch!important;-ms-flex-item-align:stretch!important;-ms-grid-row-align:stretch!important;align-self:stretch!important}}@media (min-width:1200px){.flex-xl-first{-webkit-box-ordinal-group:0;-webkit-order:-1;-ms-flex-order:-1;order:-1}.flex-xl-last{-webkit-box-ordinal-group:2;-webkit-order:1;-ms-flex-order:1;order:1}.flex-xl-unordered{-webkit-box-ordinal-group:1;-webkit-order:0;-ms-flex-order:0;order:0}.flex-xl-row{-webkit-box-orient:horizontal!important;-webkit-box-direction:normal!important;-webkit-flex-direction:row!important;-ms-flex-direction:row!important;flex-direction:row!important}.flex-xl-column{-webkit-box-orient:vertical!important;-webkit-box-direction:normal!important;-webkit-flex-direction:column!important;-ms-flex-direction:column!important;flex-direction:column!important}.flex-xl-row-reverse{-webkit-box-orient:horizontal!important;-webkit-box-direction:reverse!important;-webkit-flex-direction:row-reverse!important;-ms-flex-direction:row-reverse!important;flex-direction:row-reverse!important}.flex-xl-column-reverse{-webkit-box-orient:vertical!important;-webkit-box-direction:reverse!important;-webkit-flex-direction:column-reverse!important;-ms-flex-direction:column-reverse!important;flex-direction:column-reverse!important}.flex-xl-wrap{-webkit-flex-wrap:wrap!important;-ms-flex-wrap:wrap!important;flex-wrap:wrap!important}.flex-xl-nowrap{-webkit-flex-wrap:nowrap!important;-ms-flex-wrap:nowrap!important;flex-wrap:nowrap!important}.flex-xl-wrap-reverse{-webkit-flex-wrap:wrap-reverse!important;-ms-flex-wrap:wrap-reverse!important;flex-wrap:wrap-reverse!important}.justify-content-xl-start{-webkit-box-pack:start!important;-webkit-justify-content:flex-start!important;-ms-flex-pack:start!important;justify-content:flex-start!important}.justify-content-xl-end{-webkit-box-pack:end!important;-webkit-justify-content:flex-end!important;-ms-flex-pack:end!important;justify-content:flex-end!important}.justify-content-xl-center{-webkit-box-pack:center!important;-webkit-justify-content:center!important;-ms-flex-pack:center!important;justify-content:center!important}.justify-content-xl-between{-webkit-box-pack:justify!important;-webkit-justify-content:space-between!important;-ms-flex-pack:justify!important;justify-content:space-between!important}.justify-content-xl-around{-webkit-justify-content:space-around!important;-ms-flex-pack:distribute!important;justify-content:space-around!important}.align-items-xl-start{-webkit-box-align:start!important;-webkit-align-items:flex-start!important;-ms-flex-align:start!important;align-items:flex-start!important}.align-items-xl-end{-webkit-box-align:end!important;-webkit-align-items:flex-end!important;-ms-flex-align:end!important;align-items:flex-end!important}.align-items-xl-center{-webkit-box-align:center!important;-webkit-align-items:center!important;-ms-flex-align:center!important;align-items:center!important}.align-items-xl-baseline{-webkit-box-align:baseline!important;-webkit-align-items:baseline!important;-ms-flex-align:baseline!important;align-items:baseline!important}.align-items-xl-stretch{-webkit-box-align:stretch!important;-webkit-align-items:stretch!important;-ms-flex-align:stretch!important;align-items:stretch!important}.align-content-xl-start{-webkit-align-content:flex-start!important;-ms-flex-line-pack:start!important;align-content:flex-start!important}.align-content-xl-end{-webkit-align-content:flex-end!important;-ms-flex-line-pack:end!important;align-content:flex-end!important}.align-content-xl-center{-webkit-align-content:center!important;-ms-flex-line-pack:center!important;align-content:center!important}.align-content-xl-between{-webkit-align-content:space-between!important;-ms-flex-line-pack:justify!important;align-content:space-between!important}.align-content-xl-around{-webkit-align-content:space-around!important;-ms-flex-line-pack:distribute!important;align-content:space-around!important}.align-content-xl-stretch{-webkit-align-content:stretch!important;-ms-flex-line-pack:stretch!important;align-content:stretch!important}.align-self-xl-auto{-webkit-align-self:auto!important;-ms-flex-item-align:auto!important;-ms-grid-row-align:auto!important;align-self:auto!important}.align-self-xl-start{-webkit-align-self:flex-start!important;-ms-flex-item-align:start!important;align-self:flex-start!important}.align-self-xl-end{-webkit-align-self:flex-end!important;-ms-flex-item-align:end!important;align-self:flex-end!important}.align-self-xl-center{-webkit-align-self:center!important;-ms-flex-item-align:center!important;-ms-grid-row-align:center!important;align-self:center!important}.align-self-xl-baseline{-webkit-align-self:baseline!important;-ms-flex-item-align:baseline!important;align-self:baseline!important}.align-self-xl-stretch{-webkit-align-self:stretch!important;-ms-flex-item-align:stretch!important;-ms-grid-row-align:stretch!important;align-self:stretch!important}}.float-left{float:left!important}.float-right{float:right!important}.float-none{float:none!important}@media (min-width:576px){.float-sm-left{float:left!important}.float-sm-right{float:right!important}.float-sm-none{float:none!important}}@media (min-width:768px){.float-md-left{float:left!important}.float-md-right{float:right!important}.float-md-none{float:none!important}}@media (min-width:992px){.float-lg-left{float:left!important}.float-lg-right{float:right!important}.float-lg-none{float:none!important}}@media (min-width:1200px){.float-xl-left{float:left!important}.float-xl-right{float:right!important}.float-xl-none{float:none!important}}.fixed-top{position:fixed;top:0;right:0;left:0;z-index:1030}.fixed-bottom{position:fixed;right:0;bottom:0;left:0;z-index:1030}.sticky-top{position:-webkit-sticky;position:sticky;top:0;z-index:1030}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);border:0}.sr-only-focusable:active,.sr-only-focusable:focus{position:static;width:auto;height:auto;margin:0;overflow:visible;clip:auto}.w-25{width:25%!important}.w-50{width:50%!important}.w-75{width:75%!important}.w-100{width:100%!important}.h-25{height:25%!important}.h-50{height:50%!important}.h-75{height:75%!important}.h-100{height:100%!important}.mw-100{max-width:100%!important}.mh-100{max-height:100%!important}.m-0{margin:0 0!important}.mt-0{margin-top:0!important}.mr-0{margin-right:0!important}.mb-0{margin-bottom:0!important}.ml-0{margin-left:0!important}.mx-0{margin-right:0!important;margin-left:0!important}.my-0{margin-top:0!important;margin-bottom:0!important}.m-1{margin:.25rem .25rem!important}.mt-1{margin-top:.25rem!important}.mr-1{margin-right:.25rem!important}.mb-1{margin-bottom:.25rem!important}.ml-1{margin-left:.25rem!important}.mx-1{margin-right:.25rem!important;margin-left:.25rem!important}.my-1{margin-top:.25rem!important;margin-bottom:.25rem!important}.m-2{margin:.5rem .5rem!important}.mt-2{margin-top:.5rem!important}.mr-2{margin-right:.5rem!important}.mb-2{margin-bottom:.5rem!important}.ml-2{margin-left:.5rem!important}.mx-2{margin-right:.5rem!important;margin-left:.5rem!important}.my-2{margin-top:.5rem!important;margin-bottom:.5rem!important}.m-3{margin:1rem 1rem!important}.mt-3{margin-top:1rem!important}.mr-3{margin-right:1rem!important}.mb-3{margin-bottom:1rem!important}.ml-3{margin-left:1rem!important}.mx-3{margin-right:1rem!important;margin-left:1rem!important}.my-3{margin-top:1rem!important;margin-bottom:1rem!important}.m-4{margin:1.5rem 1.5rem!important}.mt-4{margin-top:1.5rem!important}.mr-4{margin-right:1.5rem!important}.mb-4{margin-bottom:1.5rem!important}.ml-4{margin-left:1.5rem!important}.mx-4{margin-right:1.5rem!important;margin-left:1.5rem!important}.my-4{margin-top:1.5rem!important;margin-bottom:1.5rem!important}.m-5{margin:3rem 3rem!important}.mt-5{margin-top:3rem!important}.mr-5{margin-right:3rem!important}.mb-5{margin-bottom:3rem!important}.ml-5{margin-left:3rem!important}.mx-5{margin-right:3rem!important;margin-left:3rem!important}.my-5{margin-top:3rem!important;margin-bottom:3rem!important}.p-0{padding:0 0!important}.pt-0{padding-top:0!important}.pr-0{padding-right:0!important}.pb-0{padding-bottom:0!important}.pl-0{padding-left:0!important}.px-0{padding-right:0!important;padding-left:0!important}.py-0{padding-top:0!important;padding-bottom:0!important}.p-1{padding:.25rem .25rem!important}.pt-1{padding-top:.25rem!important}.pr-1{padding-right:.25rem!important}.pb-1{padding-bottom:.25rem!important}.pl-1{padding-left:.25rem!important}.px-1{padding-right:.25rem!important;padding-left:.25rem!important}.py-1{padding-top:.25rem!important;padding-bottom:.25rem!important}.p-2{padding:.5rem .5rem!important}.pt-2{padding-top:.5rem!important}.pr-2{padding-right:.5rem!important}.pb-2{padding-bottom:.5rem!important}.pl-2{padding-left:.5rem!important}.px-2{padding-right:.5rem!important;padding-left:.5rem!important}.py-2{padding-top:.5rem!important;padding-bottom:.5rem!important}.p-3{padding:1rem 1rem!important}.pt-3{padding-top:1rem!important}.pr-3{padding-right:1rem!important}.pb-3{padding-bottom:1rem!important}.pl-3{padding-left:1rem!important}.px-3{padding-right:1rem!important;padding-left:1rem!important}.py-3{padding-top:1rem!important;padding-bottom:1rem!important}.p-4{padding:1.5rem 1.5rem!important}.pt-4{padding-top:1.5rem!important}.pr-4{padding-right:1.5rem!important}.pb-4{padding-bottom:1.5rem!important}.pl-4{padding-left:1.5rem!important}.px-4{padding-right:1.5rem!important;padding-left:1.5rem!important}.py-4{padding-top:1.5rem!important;padding-bottom:1.5rem!important}.p-5{padding:3rem 3rem!important}.pt-5{padding-top:3rem!important}.pr-5{padding-right:3rem!important}.pb-5{padding-bottom:3rem!important}.pl-5{padding-left:3rem!important}.px-5{padding-right:3rem!important;padding-left:3rem!important}.py-5{padding-top:3rem!important;padding-bottom:3rem!important}.m-auto{margin:auto!important}.mt-auto{margin-top:auto!important}.mr-auto{margin-right:auto!important}.mb-auto{margin-bottom:auto!important}.ml-auto{margin-left:auto!important}.mx-auto{margin-right:auto!important;margin-left:auto!important}.my-auto{margin-top:auto!important;margin-bottom:auto!important}@media (min-width:576px){.m-sm-0{margin:0 0!important}.mt-sm-0{margin-top:0!important}.mr-sm-0{margin-right:0!important}.mb-sm-0{margin-bottom:0!important}.ml-sm-0{margin-left:0!important}.mx-sm-0{margin-right:0!important;margin-left:0!important}.my-sm-0{margin-top:0!important;margin-bottom:0!important}.m-sm-1{margin:.25rem .25rem!important}.mt-sm-1{margin-top:.25rem!important}.mr-sm-1{margin-right:.25rem!important}.mb-sm-1{margin-bottom:.25rem!important}.ml-sm-1{margin-left:.25rem!important}.mx-sm-1{margin-right:.25rem!important;margin-left:.25rem!important}.my-sm-1{margin-top:.25rem!important;margin-bottom:.25rem!important}.m-sm-2{margin:.5rem .5rem!important}.mt-sm-2{margin-top:.5rem!important}.mr-sm-2{margin-right:.5rem!important}.mb-sm-2{margin-bottom:.5rem!important}.ml-sm-2{margin-left:.5rem!important}.mx-sm-2{margin-right:.5rem!important;margin-left:.5rem!important}.my-sm-2{margin-top:.5rem!important;margin-bottom:.5rem!important}.m-sm-3{margin:1rem 1rem!important}.mt-sm-3{margin-top:1rem!important}.mr-sm-3{margin-right:1rem!important}.mb-sm-3{margin-bottom:1rem!important}.ml-sm-3{margin-left:1rem!important}.mx-sm-3{margin-right:1rem!important;margin-left:1rem!important}.my-sm-3{margin-top:1rem!important;margin-bottom:1rem!important}.m-sm-4{margin:1.5rem 1.5rem!important}.mt-sm-4{margin-top:1.5rem!important}.mr-sm-4{margin-right:1.5rem!important}.mb-sm-4{margin-bottom:1.5rem!important}.ml-sm-4{margin-left:1.5rem!important}.mx-sm-4{margin-right:1.5rem!important;margin-left:1.5rem!important}.my-sm-4{margin-top:1.5rem!important;margin-bottom:1.5rem!important}.m-sm-5{margin:3rem 3rem!important}.mt-sm-5{margin-top:3rem!important}.mr-sm-5{margin-right:3rem!important}.mb-sm-5{margin-bottom:3rem!important}.ml-sm-5{margin-left:3rem!important}.mx-sm-5{margin-right:3rem!important;margin-left:3rem!important}.my-sm-5{margin-top:3rem!important;margin-bottom:3rem!important}.p-sm-0{padding:0 0!important}.pt-sm-0{padding-top:0!important}.pr-sm-0{padding-right:0!important}.pb-sm-0{padding-bottom:0!important}.pl-sm-0{padding-left:0!important}.px-sm-0{padding-right:0!important;padding-left:0!important}.py-sm-0{padding-top:0!important;padding-bottom:0!important}.p-sm-1{padding:.25rem .25rem!important}.pt-sm-1{padding-top:.25rem!important}.pr-sm-1{padding-right:.25rem!important}.pb-sm-1{padding-bottom:.25rem!important}.pl-sm-1{padding-left:.25rem!important}.px-sm-1{padding-right:.25rem!important;padding-left:.25rem!important}.py-sm-1{padding-top:.25rem!important;padding-bottom:.25rem!important}.p-sm-2{padding:.5rem .5rem!important}.pt-sm-2{padding-top:.5rem!important}.pr-sm-2{padding-right:.5rem!important}.pb-sm-2{padding-bottom:.5rem!important}.pl-sm-2{padding-left:.5rem!important}.px-sm-2{padding-right:.5rem!important;padding-left:.5rem!important}.py-sm-2{padding-top:.5rem!important;padding-bottom:.5rem!important}.p-sm-3{padding:1rem 1rem!important}.pt-sm-3{padding-top:1rem!important}.pr-sm-3{padding-right:1rem!important}.pb-sm-3{padding-bottom:1rem!important}.pl-sm-3{padding-left:1rem!important}.px-sm-3{padding-right:1rem!important;padding-left:1rem!important}.py-sm-3{padding-top:1rem!important;padding-bottom:1rem!important}.p-sm-4{padding:1.5rem 1.5rem!important}.pt-sm-4{padding-top:1.5rem!important}.pr-sm-4{padding-right:1.5rem!important}.pb-sm-4{padding-bottom:1.5rem!important}.pl-sm-4{padding-left:1.5rem!important}.px-sm-4{padding-right:1.5rem!important;padding-left:1.5rem!important}.py-sm-4{padding-top:1.5rem!important;padding-bottom:1.5rem!important}.p-sm-5{padding:3rem 3rem!important}.pt-sm-5{padding-top:3rem!important}.pr-sm-5{padding-right:3rem!important}.pb-sm-5{padding-bottom:3rem!important}.pl-sm-5{padding-left:3rem!important}.px-sm-5{padding-right:3rem!important;padding-left:3rem!important}.py-sm-5{padding-top:3rem!important;padding-bottom:3rem!important}.m-sm-auto{margin:auto!important}.mt-sm-auto{margin-top:auto!important}.mr-sm-auto{margin-right:auto!important}.mb-sm-auto{margin-bottom:auto!important}.ml-sm-auto{margin-left:auto!important}.mx-sm-auto{margin-right:auto!important;margin-left:auto!important}.my-sm-auto{margin-top:auto!important;margin-bottom:auto!important}}@media (min-width:768px){.m-md-0{margin:0 0!important}.mt-md-0{margin-top:0!important}.mr-md-0{margin-right:0!important}.mb-md-0{margin-bottom:0!important}.ml-md-0{margin-left:0!important}.mx-md-0{margin-right:0!important;margin-left:0!important}.my-md-0{margin-top:0!important;margin-bottom:0!important}.m-md-1{margin:.25rem .25rem!important}.mt-md-1{margin-top:.25rem!important}.mr-md-1{margin-right:.25rem!important}.mb-md-1{margin-bottom:.25rem!important}.ml-md-1{margin-left:.25rem!important}.mx-md-1{margin-right:.25rem!important;margin-left:.25rem!important}.my-md-1{margin-top:.25rem!important;margin-bottom:.25rem!important}.m-md-2{margin:.5rem .5rem!important}.mt-md-2{margin-top:.5rem!important}.mr-md-2{margin-right:.5rem!important}.mb-md-2{margin-bottom:.5rem!important}.ml-md-2{margin-left:.5rem!important}.mx-md-2{margin-right:.5rem!important;margin-left:.5rem!important}.my-md-2{margin-top:.5rem!important;margin-bottom:.5rem!important}.m-md-3{margin:1rem 1rem!important}.mt-md-3{margin-top:1rem!important}.mr-md-3{margin-right:1rem!important}.mb-md-3{margin-bottom:1rem!important}.ml-md-3{margin-left:1rem!important}.mx-md-3{margin-right:1rem!important;margin-left:1rem!important}.my-md-3{margin-top:1rem!important;margin-bottom:1rem!important}.m-md-4{margin:1.5rem 1.5rem!important}.mt-md-4{margin-top:1.5rem!important}.mr-md-4{margin-right:1.5rem!important}.mb-md-4{margin-bottom:1.5rem!important}.ml-md-4{margin-left:1.5rem!important}.mx-md-4{margin-right:1.5rem!important;margin-left:1.5rem!important}.my-md-4{margin-top:1.5rem!important;margin-bottom:1.5rem!important}.m-md-5{margin:3rem 3rem!important}.mt-md-5{margin-top:3rem!important}.mr-md-5{margin-right:3rem!important}.mb-md-5{margin-bottom:3rem!important}.ml-md-5{margin-left:3rem!important}.mx-md-5{margin-right:3rem!important;margin-left:3rem!important}.my-md-5{margin-top:3rem!important;margin-bottom:3rem!important}.p-md-0{padding:0 0!important}.pt-md-0{padding-top:0!important}.pr-md-0{padding-right:0!important}.pb-md-0{padding-bottom:0!important}.pl-md-0{padding-left:0!important}.px-md-0{padding-right:0!important;padding-left:0!important}.py-md-0{padding-top:0!important;padding-bottom:0!important}.p-md-1{padding:.25rem .25rem!important}.pt-md-1{padding-top:.25rem!important}.pr-md-1{padding-right:.25rem!important}.pb-md-1{padding-bottom:.25rem!important}.pl-md-1{padding-left:.25rem!important}.px-md-1{padding-right:.25rem!important;padding-left:.25rem!important}.py-md-1{padding-top:.25rem!important;padding-bottom:.25rem!important}.p-md-2{padding:.5rem .5rem!important}.pt-md-2{padding-top:.5rem!important}.pr-md-2{padding-right:.5rem!important}.pb-md-2{padding-bottom:.5rem!important}.pl-md-2{padding-left:.5rem!important}.px-md-2{padding-right:.5rem!important;padding-left:.5rem!important}.py-md-2{padding-top:.5rem!important;padding-bottom:.5rem!important}.p-md-3{padding:1rem 1rem!important}.pt-md-3{padding-top:1rem!important}.pr-md-3{padding-right:1rem!important}.pb-md-3{padding-bottom:1rem!important}.pl-md-3{padding-left:1rem!important}.px-md-3{padding-right:1rem!important;padding-left:1rem!important}.py-md-3{padding-top:1rem!important;padding-bottom:1rem!important}.p-md-4{padding:1.5rem 1.5rem!important}.pt-md-4{padding-top:1.5rem!important}.pr-md-4{padding-right:1.5rem!important}.pb-md-4{padding-bottom:1.5rem!important}.pl-md-4{padding-left:1.5rem!important}.px-md-4{padding-right:1.5rem!important;padding-left:1.5rem!important}.py-md-4{padding-top:1.5rem!important;padding-bottom:1.5rem!important}.p-md-5{padding:3rem 3rem!important}.pt-md-5{padding-top:3rem!important}.pr-md-5{padding-right:3rem!important}.pb-md-5{padding-bottom:3rem!important}.pl-md-5{padding-left:3rem!important}.px-md-5{padding-right:3rem!important;padding-left:3rem!important}.py-md-5{padding-top:3rem!important;padding-bottom:3rem!important}.m-md-auto{margin:auto!important}.mt-md-auto{margin-top:auto!important}.mr-md-auto{margin-right:auto!important}.mb-md-auto{margin-bottom:auto!important}.ml-md-auto{margin-left:auto!important}.mx-md-auto{margin-right:auto!important;margin-left:auto!important}.my-md-auto{margin-top:auto!important;margin-bottom:auto!important}}@media (min-width:992px){.m-lg-0{margin:0 0!important}.mt-lg-0{margin-top:0!important}.mr-lg-0{margin-right:0!important}.mb-lg-0{margin-bottom:0!important}.ml-lg-0{margin-left:0!important}.mx-lg-0{margin-right:0!important;margin-left:0!important}.my-lg-0{margin-top:0!important;margin-bottom:0!important}.m-lg-1{margin:.25rem .25rem!important}.mt-lg-1{margin-top:.25rem!important}.mr-lg-1{margin-right:.25rem!important}.mb-lg-1{margin-bottom:.25rem!important}.ml-lg-1{margin-left:.25rem!important}.mx-lg-1{margin-right:.25rem!important;margin-left:.25rem!important}.my-lg-1{margin-top:.25rem!important;margin-bottom:.25rem!important}.m-lg-2{margin:.5rem .5rem!important}.mt-lg-2{margin-top:.5rem!important}.mr-lg-2{margin-right:.5rem!important}.mb-lg-2{margin-bottom:.5rem!important}.ml-lg-2{margin-left:.5rem!important}.mx-lg-2{margin-right:.5rem!important;margin-left:.5rem!important}.my-lg-2{margin-top:.5rem!important;margin-bottom:.5rem!important}.m-lg-3{margin:1rem 1rem!important}.mt-lg-3{margin-top:1rem!important}.mr-lg-3{margin-right:1rem!important}.mb-lg-3{margin-bottom:1rem!important}.ml-lg-3{margin-left:1rem!important}.mx-lg-3{margin-right:1rem!important;margin-left:1rem!important}.my-lg-3{margin-top:1rem!important;margin-bottom:1rem!important}.m-lg-4{margin:1.5rem 1.5rem!important}.mt-lg-4{margin-top:1.5rem!important}.mr-lg-4{margin-right:1.5rem!important}.mb-lg-4{margin-bottom:1.5rem!important}.ml-lg-4{margin-left:1.5rem!important}.mx-lg-4{margin-right:1.5rem!important;margin-left:1.5rem!important}.my-lg-4{margin-top:1.5rem!important;margin-bottom:1.5rem!important}.m-lg-5{margin:3rem 3rem!important}.mt-lg-5{margin-top:3rem!important}.mr-lg-5{margin-right:3rem!important}.mb-lg-5{margin-bottom:3rem!important}.ml-lg-5{margin-left:3rem!important}.mx-lg-5{margin-right:3rem!important;margin-left:3rem!important}.my-lg-5{margin-top:3rem!important;margin-bottom:3rem!important}.p-lg-0{padding:0 0!important}.pt-lg-0{padding-top:0!important}.pr-lg-0{padding-right:0!important}.pb-lg-0{padding-bottom:0!important}.pl-lg-0{padding-left:0!important}.px-lg-0{padding-right:0!important;padding-left:0!important}.py-lg-0{padding-top:0!important;padding-bottom:0!important}.p-lg-1{padding:.25rem .25rem!important}.pt-lg-1{padding-top:.25rem!important}.pr-lg-1{padding-right:.25rem!important}.pb-lg-1{padding-bottom:.25rem!important}.pl-lg-1{padding-left:.25rem!important}.px-lg-1{padding-right:.25rem!important;padding-left:.25rem!important}.py-lg-1{padding-top:.25rem!important;padding-bottom:.25rem!important}.p-lg-2{padding:.5rem .5rem!important}.pt-lg-2{padding-top:.5rem!important}.pr-lg-2{padding-right:.5rem!important}.pb-lg-2{padding-bottom:.5rem!important}.pl-lg-2{padding-left:.5rem!important}.px-lg-2{padding-right:.5rem!important;padding-left:.5rem!important}.py-lg-2{padding-top:.5rem!important;padding-bottom:.5rem!important}.p-lg-3{padding:1rem 1rem!important}.pt-lg-3{padding-top:1rem!important}.pr-lg-3{padding-right:1rem!important}.pb-lg-3{padding-bottom:1rem!important}.pl-lg-3{padding-left:1rem!important}.px-lg-3{padding-right:1rem!important;padding-left:1rem!important}.py-lg-3{padding-top:1rem!important;padding-bottom:1rem!important}.p-lg-4{padding:1.5rem 1.5rem!important}.pt-lg-4{padding-top:1.5rem!important}.pr-lg-4{padding-right:1.5rem!important}.pb-lg-4{padding-bottom:1.5rem!important}.pl-lg-4{padding-left:1.5rem!important}.px-lg-4{padding-right:1.5rem!important;padding-left:1.5rem!important}.py-lg-4{padding-top:1.5rem!important;padding-bottom:1.5rem!important}.p-lg-5{padding:3rem 3rem!important}.pt-lg-5{padding-top:3rem!important}.pr-lg-5{padding-right:3rem!important}.pb-lg-5{padding-bottom:3rem!important}.pl-lg-5{padding-left:3rem!important}.px-lg-5{padding-right:3rem!important;padding-left:3rem!important}.py-lg-5{padding-top:3rem!important;padding-bottom:3rem!important}.m-lg-auto{margin:auto!important}.mt-lg-auto{margin-top:auto!important}.mr-lg-auto{margin-right:auto!important}.mb-lg-auto{margin-bottom:auto!important}.ml-lg-auto{margin-left:auto!important}.mx-lg-auto{margin-right:auto!important;margin-left:auto!important}.my-lg-auto{margin-top:auto!important;margin-bottom:auto!important}}@media (min-width:1200px){.m-xl-0{margin:0 0!important}.mt-xl-0{margin-top:0!important}.mr-xl-0{margin-right:0!important}.mb-xl-0{margin-bottom:0!important}.ml-xl-0{margin-left:0!important}.mx-xl-0{margin-right:0!important;margin-left:0!important}.my-xl-0{margin-top:0!important;margin-bottom:0!important}.m-xl-1{margin:.25rem .25rem!important}.mt-xl-1{margin-top:.25rem!important}.mr-xl-1{margin-right:.25rem!important}.mb-xl-1{margin-bottom:.25rem!important}.ml-xl-1{margin-left:.25rem!important}.mx-xl-1{margin-right:.25rem!important;margin-left:.25rem!important}.my-xl-1{margin-top:.25rem!important;margin-bottom:.25rem!important}.m-xl-2{margin:.5rem .5rem!important}.mt-xl-2{margin-top:.5rem!important}.mr-xl-2{margin-right:.5rem!important}.mb-xl-2{margin-bottom:.5rem!important}.ml-xl-2{margin-left:.5rem!important}.mx-xl-2{margin-right:.5rem!important;margin-left:.5rem!important}.my-xl-2{margin-top:.5rem!important;margin-bottom:.5rem!important}.m-xl-3{margin:1rem 1rem!important}.mt-xl-3{margin-top:1rem!important}.mr-xl-3{margin-right:1rem!important}.mb-xl-3{margin-bottom:1rem!important}.ml-xl-3{margin-left:1rem!important}.mx-xl-3{margin-right:1rem!important;margin-left:1rem!important}.my-xl-3{margin-top:1rem!important;margin-bottom:1rem!important}.m-xl-4{margin:1.5rem 1.5rem!important}.mt-xl-4{margin-top:1.5rem!important}.mr-xl-4{margin-right:1.5rem!important}.mb-xl-4{margin-bottom:1.5rem!important}.ml-xl-4{margin-left:1.5rem!important}.mx-xl-4{margin-right:1.5rem!important;margin-left:1.5rem!important}.my-xl-4{margin-top:1.5rem!important;margin-bottom:1.5rem!important}.m-xl-5{margin:3rem 3rem!important}.mt-xl-5{margin-top:3rem!important}.mr-xl-5{margin-right:3rem!important}.mb-xl-5{margin-bottom:3rem!important}.ml-xl-5{margin-left:3rem!important}.mx-xl-5{margin-right:3rem!important;margin-left:3rem!important}.my-xl-5{margin-top:3rem!important;margin-bottom:3rem!important}.p-xl-0{padding:0 0!important}.pt-xl-0{padding-top:0!important}.pr-xl-0{padding-right:0!important}.pb-xl-0{padding-bottom:0!important}.pl-xl-0{padding-left:0!important}.px-xl-0{padding-right:0!important;padding-left:0!important}.py-xl-0{padding-top:0!important;padding-bottom:0!important}.p-xl-1{padding:.25rem .25rem!important}.pt-xl-1{padding-top:.25rem!important}.pr-xl-1{padding-right:.25rem!important}.pb-xl-1{padding-bottom:.25rem!important}.pl-xl-1{padding-left:.25rem!important}.px-xl-1{padding-right:.25rem!important;padding-left:.25rem!important}.py-xl-1{padding-top:.25rem!important;padding-bottom:.25rem!important}.p-xl-2{padding:.5rem .5rem!important}.pt-xl-2{padding-top:.5rem!important}.pr-xl-2{padding-right:.5rem!important}.pb-xl-2{padding-bottom:.5rem!important}.pl-xl-2{padding-left:.5rem!important}.px-xl-2{padding-right:.5rem!important;padding-left:.5rem!important}.py-xl-2{padding-top:.5rem!important;padding-bottom:.5rem!important}.p-xl-3{padding:1rem 1rem!important}.pt-xl-3{padding-top:1rem!important}.pr-xl-3{padding-right:1rem!important}.pb-xl-3{padding-bottom:1rem!important}.pl-xl-3{padding-left:1rem!important}.px-xl-3{padding-right:1rem!important;padding-left:1rem!important}.py-xl-3{padding-top:1rem!important;padding-bottom:1rem!important}.p-xl-4{padding:1.5rem 1.5rem!important}.pt-xl-4{padding-top:1.5rem!important}.pr-xl-4{padding-right:1.5rem!important}.pb-xl-4{padding-bottom:1.5rem!important}.pl-xl-4{padding-left:1.5rem!important}.px-xl-4{padding-right:1.5rem!important;padding-left:1.5rem!important}.py-xl-4{padding-top:1.5rem!important;padding-bottom:1.5rem!important}.p-xl-5{padding:3rem 3rem!important}.pt-xl-5{padding-top:3rem!important}.pr-xl-5{padding-right:3rem!important}.pb-xl-5{padding-bottom:3rem!important}.pl-xl-5{padding-left:3rem!important}.px-xl-5{padding-right:3rem!important;padding-left:3rem!important}.py-xl-5{padding-top:3rem!important;padding-bottom:3rem!important}.m-xl-auto{margin:auto!important}.mt-xl-auto{margin-top:auto!important}.mr-xl-auto{margin-right:auto!important}.mb-xl-auto{margin-bottom:auto!important}.ml-xl-auto{margin-left:auto!important}.mx-xl-auto{margin-right:auto!important;margin-left:auto!important}.my-xl-auto{margin-top:auto!important;margin-bottom:auto!important}}.text-justify{text-align:justify!important}.text-nowrap{white-space:nowrap!important}.text-truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.text-left{text-align:left!important}.text-right{text-align:right!important}.text-center{text-align:center!important}@media (min-width:576px){.text-sm-left{text-align:left!important}.text-sm-right{text-align:right!important}.text-sm-center{text-align:center!important}}@media (min-width:768px){.text-md-left{text-align:left!important}.text-md-right{text-align:right!important}.text-md-center{text-align:center!important}}@media (min-width:992px){.text-lg-left{text-align:left!important}.text-lg-right{text-align:right!important}.text-lg-center{text-align:center!important}}@media (min-width:1200px){.text-xl-left{text-align:left!important}.text-xl-right{text-align:right!important}.text-xl-center{text-align:center!important}}.text-lowercase{text-transform:lowercase!important}.text-uppercase{text-transform:uppercase!important}.text-capitalize{text-transform:capitalize!important}.font-weight-normal{font-weight:400}.font-weight-bold{font-weight:700}.font-italic{font-style:italic}.text-white{color:#fff!important}.text-muted{color:#636c72!important}a.text-muted:focus,a.text-muted:hover{color:#4b5257!important}.text-primary{color:#0275d8!important}a.text-primary:focus,a.text-primary:hover{color:#025aa5!important}.text-success{color:#5cb85c!important}a.text-success:focus,a.text-success:hover{color:#449d44!important}.text-info{color:#5bc0de!important}a.text-info:focus,a.text-info:hover{color:#31b0d5!important}.text-warning{color:#f0ad4e!important}a.text-warning:focus,a.text-warning:hover{color:#ec971f!important}.text-danger{color:#d9534f!important}a.text-danger:focus,a.text-danger:hover{color:#c9302c!important}.text-gray-dark{color:#292b2c!important}a.text-gray-dark:focus,a.text-gray-dark:hover{color:#101112!important}.text-hide{font:0/0 a;color:transparent;text-shadow:none;background-color:transparent;border:0}.invisible{visibility:hidden!important}.hidden-xs-up{display:none!important}@media (max-width:575px){.hidden-xs-down{display:none!important}}@media (min-width:576px){.hidden-sm-up{display:none!important}}@media (max-width:767px){.hidden-sm-down{display:none!important}}@media (min-width:768px){.hidden-md-up{display:none!important}}@media (max-width:991px){.hidden-md-down{display:none!important}}@media (min-width:992px){.hidden-lg-up{display:none!important}}@media (max-width:1199px){.hidden-lg-down{display:none!important}}@media (min-width:1200px){.hidden-xl-up{display:none!important}}.hidden-xl-down{display:none!important}.visible-print-block{display:none!important}@media print{.visible-print-block{display:block!important}}.visible-print-inline{display:none!important}@media print{.visible-print-inline{display:inline!important}}.visible-print-inline-block{display:none!important}@media print{.visible-print-inline-block{display:inline-block!important}}@media print{.hidden-print{display:none!important}}/*# sourceMappingURL=bootstrap.min.css.map */ \ No newline at end of file diff --git a/css/font-awesome.css b/css/font-awesome.css deleted file mode 100644 index 8c8370f..0000000 --- a/css/font-awesome.css +++ /dev/null @@ -1,2902 +0,0 @@ -@font-face { - font-family: 'FontAwesome'; - src: url('../fonts/fontawesome-webfont.eot?v=4.7.0'); - src: url('../fonts/fontawesome-webfont.eot?#iefix&v=4.7.0') format('embedded-opentype'), url('../fonts/fontawesome-webfont.woff2?v=4.7.0') format('woff2'), url('../fonts/fontawesome-webfont.woff?v=4.7.0') format('woff'), url('../fonts/fontawesome-webfont.ttf?v=4.7.0') format('truetype'), url('../fonts/fontawesome-webfont.svg?v=4.7.0#fontawesomeregular') format('svg'); - font-weight: normal; - font-style: normal -} - -.fa { - display: inline-block; - font: normal normal normal 14px/1 FontAwesome; - font-size: inherit; - text-rendering: auto; - -webkit-font-smoothing: antialiased; - -moz-osx-font-smoothing: grayscale -} - -.fa-lg { - font-size: 1.33333333em; - line-height: .75em; - vertical-align: -15% -} - -.fa-2x { - font-size: 2em -} - -.fa-3x { - font-size: 3em -} - -.fa-4x { - font-size: 4em -} - -.fa-5x { - font-size: 5em -} - -.fa-fw { - width: 1.28571429em; - text-align: center -} - -.fa-ul { - padding-left: 0; - margin-left: 2.14285714em; - list-style-type: none -} - -.fa-ul > li { - position: relative -} - -.fa-li { - position: absolute; - left: -2.14285714em; - width: 2.14285714em; - top: .14285714em; - text-align: center -} - -.fa-li.fa-lg { - left: -1.85714286em -} - -.fa-border { - padding: .2em .25em .15em; - border: solid .08em #eee; - border-radius: .1em -} - -.fa-pull-left { - float: left -} - -.fa-pull-right { - float: right -} - -.fa.fa-pull-left { - margin-right: .3em -} - -.fa.fa-pull-right { - margin-left: .3em -} - -.pull-right { - float: right -} - -.pull-left { - float: left -} - -.fa.pull-left { - margin-right: .3em -} - -.fa.pull-right { - margin-left: .3em -} - -.fa-spin { - -webkit-animation: fa-spin 2s infinite linear; - animation: fa-spin 2s infinite linear -} - -.fa-pulse { - -webkit-animation: fa-spin 1s infinite steps(8); - animation: fa-spin 1s infinite steps(8) -} - -@-webkit-keyframes fa-spin { - 0% { - -webkit-transform: rotate(0deg); - transform: rotate(0deg) - } - 100% { - -webkit-transform: rotate(359deg); - transform: rotate(359deg) - } -} - -@keyframes fa-spin { - 0% { - -webkit-transform: rotate(0deg); - transform: rotate(0deg) - } - 100% { - -webkit-transform: rotate(359deg); - transform: rotate(359deg) - } -} - -.fa-rotate-90 { - -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=1)"; - -webkit-transform: rotate(90deg); - -ms-transform: rotate(90deg); - transform: rotate(90deg) -} - -.fa-rotate-180 { - -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=2)"; - -webkit-transform: rotate(180deg); - -ms-transform: rotate(180deg); - transform: rotate(180deg) -} - -.fa-rotate-270 { - -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=3)"; - -webkit-transform: rotate(270deg); - -ms-transform: rotate(270deg); - transform: rotate(270deg) -} - -.fa-flip-horizontal { - -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1)"; - -webkit-transform: scale(-1, 1); - -ms-transform: scale(-1, 1); - transform: scale(-1, 1) -} - -.fa-flip-vertical { - -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)"; - -webkit-transform: scale(1, -1); - -ms-transform: scale(1, -1); - transform: scale(1, -1) -} - -:root .fa-rotate-90, :root .fa-rotate-180, :root .fa-rotate-270, :root .fa-flip-horizontal, :root .fa-flip-vertical { - filter: none -} - -.fa-stack { - position: relative; - display: inline-block; - width: 2em; - height: 2em; - line-height: 2em; - vertical-align: middle -} - -.fa-stack-1x, .fa-stack-2x { - position: absolute; - left: 0; - width: 100%; - text-align: center -} - -.fa-stack-1x { - line-height: inherit -} - -.fa-stack-2x { - font-size: 2em -} - -.fa-inverse { - color: #fff -} - -.fa-glass:before { - content: "\f000" -} - -.fa-music:before { - content: "\f001" -} - -.fa-search:before { - content: "\f002" -} - -.fa-envelope-o:before { - content: "\f003" -} - -.fa-heart:before { - content: "\f004" -} - -.fa-star:before { - content: "\f005" -} - -.fa-star-o:before { - content: "\f006" -} - -.fa-user:before { - content: "\f007" -} - -.fa-film:before { - content: "\f008" -} - -.fa-th-large:before { - content: "\f009" -} - -.fa-th:before { - content: "\f00a" -} - -.fa-th-list:before { - content: "\f00b" -} - -.fa-check:before { - content: "\f00c" -} - -.fa-remove:before, .fa-close:before, .fa-times:before { - content: "\f00d" -} - -.fa-search-plus:before { - content: "\f00e" -} - -.fa-search-minus:before { - content: "\f010" -} - -.fa-power-off:before { - content: "\f011" -} - -.fa-signal:before { - content: "\f012" -} - -.fa-gear:before, .fa-cog:before { - content: "\f013" -} - -.fa-trash-o:before { - content: "\f014" -} - -.fa-home:before { - content: "\f015" -} - -.fa-file-o:before { - content: "\f016" -} - -.fa-clock-o:before { - content: "\f017" -} - -.fa-road:before { - content: "\f018" -} - -.fa-download:before { - content: "\f019" -} - -.fa-arrow-circle-o-down:before { - content: "\f01a" -} - -.fa-arrow-circle-o-up:before { - content: "\f01b" -} - -.fa-inbox:before { - content: "\f01c" -} - -.fa-play-circle-o:before { - content: "\f01d" -} - -.fa-rotate-right:before, .fa-repeat:before { - content: "\f01e" -} - -.fa-refresh:before { - content: "\f021" -} - -.fa-list-alt:before { - content: "\f022" -} - -.fa-lock:before { - content: "\f023" -} - -.fa-flag:before { - content: "\f024" -} - -.fa-headphones:before { - content: "\f025" -} - -.fa-volume-off:before { - content: "\f026" -} - -.fa-volume-down:before { - content: "\f027" -} - -.fa-volume-up:before { - content: "\f028" -} - -.fa-qrcode:before { - content: "\f029" -} - -.fa-barcode:before { - content: "\f02a" -} - -.fa-tag:before { - content: "\f02b" -} - -.fa-tags:before { - content: "\f02c" -} - -.fa-book:before { - content: "\f02d" -} - -.fa-bookmark:before { - content: "\f02e" -} - -.fa-print:before { - content: "\f02f" -} - -.fa-camera:before { - content: "\f030" -} - -.fa-font:before { - content: "\f031" -} - -.fa-bold:before { - content: "\f032" -} - -.fa-italic:before { - content: "\f033" -} - -.fa-text-height:before { - content: "\f034" -} - -.fa-text-width:before { - content: "\f035" -} - -.fa-align-left:before { - content: "\f036" -} - -.fa-align-center:before { - content: "\f037" -} - -.fa-align-right:before { - content: "\f038" -} - -.fa-align-justify:before { - content: "\f039" -} - -.fa-list:before { - content: "\f03a" -} - -.fa-dedent:before, .fa-outdent:before { - content: "\f03b" -} - -.fa-indent:before { - content: "\f03c" -} - -.fa-video-camera:before { - content: "\f03d" -} - -.fa-photo:before, .fa-image:before, .fa-picture-o:before { - content: "\f03e" -} - -.fa-pencil:before { - content: "\f040" -} - -.fa-map-marker:before { - content: "\f041" -} - -.fa-adjust:before { - content: "\f042" -} - -.fa-tint:before { - content: "\f043" -} - -.fa-edit:before, .fa-pencil-square-o:before { - content: "\f044" -} - -.fa-share-square-o:before { - content: "\f045" -} - -.fa-check-square-o:before { - content: "\f046" -} - -.fa-arrows:before { - content: "\f047" -} - -.fa-step-backward:before { - content: "\f048" -} - -.fa-fast-backward:before { - content: "\f049" -} - -.fa-backward:before { - content: "\f04a" -} - -.fa-play:before { - content: "\f04b" -} - -.fa-pause:before { - content: "\f04c" -} - -.fa-stop:before { - content: "\f04d" -} - -.fa-forward:before { - content: "\f04e" -} - -.fa-fast-forward:before { - content: "\f050" -} - -.fa-step-forward:before { - content: "\f051" -} - -.fa-eject:before { - content: "\f052" -} - -.fa-chevron-left:before { - content: "\f053" -} - -.fa-chevron-right:before { - content: "\f054" -} - -.fa-plus-circle:before { - content: "\f055" -} - -.fa-minus-circle:before { - content: "\f056" -} - -.fa-times-circle:before { - content: "\f057" -} - -.fa-check-circle:before { - content: "\f058" -} - -.fa-question-circle:before { - content: "\f059" -} - -.fa-info-circle:before { - content: "\f05a" -} - -.fa-crosshairs:before { - content: "\f05b" -} - -.fa-times-circle-o:before { - content: "\f05c" -} - -.fa-check-circle-o:before { - content: "\f05d" -} - -.fa-ban:before { - content: "\f05e" -} - -.fa-arrow-left:before { - content: "\f060" -} - -.fa-arrow-right:before { - content: "\f061" -} - -.fa-arrow-up:before { - content: "\f062" -} - -.fa-arrow-down:before { - content: "\f063" -} - -.fa-mail-forward:before, .fa-share:before { - content: "\f064" -} - -.fa-expand:before { - content: "\f065" -} - -.fa-compress:before { - content: "\f066" -} - -.fa-plus:before { - content: "\f067" -} - -.fa-minus:before { - content: "\f068" -} - -.fa-asterisk:before { - content: "\f069" -} - -.fa-exclamation-circle:before { - content: "\f06a" -} - -.fa-gift:before { - content: "\f06b" -} - -.fa-leaf:before { - content: "\f06c" -} - -.fa-fire:before { - content: "\f06d" -} - -.fa-eye:before { - content: "\f06e" -} - -.fa-eye-slash:before { - content: "\f070" -} - -.fa-warning:before, .fa-exclamation-triangle:before { - content: "\f071" -} - -.fa-plane:before { - content: "\f072" -} - -.fa-calendar:before { - content: "\f073" -} - -.fa-random:before { - content: "\f074" -} - -.fa-comment:before { - content: "\f075" -} - -.fa-magnet:before { - content: "\f076" -} - -.fa-chevron-up:before { - content: "\f077" -} - -.fa-chevron-down:before { - content: "\f078" -} - -.fa-retweet:before { - content: "\f079" -} - -.fa-shopping-cart:before { - content: "\f07a" -} - -.fa-folder:before { - content: "\f07b" -} - -.fa-folder-open:before { - content: "\f07c" -} - -.fa-arrows-v:before { - content: "\f07d" -} - -.fa-arrows-h:before { - content: "\f07e" -} - -.fa-bar-chart-o:before, .fa-bar-chart:before { - content: "\f080" -} - -.fa-twitter-square:before { - content: "\f081" -} - -.fa-facebook-square:before { - content: "\f082" -} - -.fa-camera-retro:before { - content: "\f083" -} - -.fa-key:before { - content: "\f084" -} - -.fa-gears:before, .fa-cogs:before { - content: "\f085" -} - -.fa-comments:before { - content: "\f086" -} - -.fa-thumbs-o-up:before { - content: "\f087" -} - -.fa-thumbs-o-down:before { - content: "\f088" -} - -.fa-star-half:before { - content: "\f089" -} - -.fa-heart-o:before { - content: "\f08a" -} - -.fa-sign-out:before { - content: "\f08b" -} - -.fa-linkedin-square:before { - content: "\f08c" -} - -.fa-thumb-tack:before { - content: "\f08d" -} - -.fa-external-link:before { - content: "\f08e" -} - -.fa-sign-in:before { - content: "\f090" -} - -.fa-trophy:before { - content: "\f091" -} - -.fa-github-square:before { - content: "\f092" -} - -.fa-upload:before { - content: "\f093" -} - -.fa-lemon-o:before { - content: "\f094" -} - -.fa-phone:before { - content: "\f095" -} - -.fa-square-o:before { - content: "\f096" -} - -.fa-bookmark-o:before { - content: "\f097" -} - -.fa-phone-square:before { - content: "\f098" -} - -.fa-twitter:before { - content: "\f099" -} - -.fa-facebook-f:before, .fa-facebook:before { - content: "\f09a" -} - -.fa-github:before { - content: "\f09b" -} - -.fa-unlock:before { - content: "\f09c" -} - -.fa-credit-card:before { - content: "\f09d" -} - -.fa-feed:before, .fa-rss:before { - content: "\f09e" -} - -.fa-hdd-o:before { - content: "\f0a0" -} - -.fa-bullhorn:before { - content: "\f0a1" -} - -.fa-bell:before { - content: "\f0f3" -} - -.fa-certificate:before { - content: "\f0a3" -} - -.fa-hand-o-right:before { - content: "\f0a4" -} - -.fa-hand-o-left:before { - content: "\f0a5" -} - -.fa-hand-o-up:before { - content: "\f0a6" -} - -.fa-hand-o-down:before { - content: "\f0a7" -} - -.fa-arrow-circle-left:before { - content: "\f0a8" -} - -.fa-arrow-circle-right:before { - content: "\f0a9" -} - -.fa-arrow-circle-up:before { - content: "\f0aa" -} - -.fa-arrow-circle-down:before { - content: "\f0ab" -} - -.fa-globe:before { - content: "\f0ac" -} - -.fa-wrench:before { - content: "\f0ad" -} - -.fa-tasks:before { - content: "\f0ae" -} - -.fa-filter:before { - content: "\f0b0" -} - -.fa-briefcase:before { - content: "\f0b1" -} - -.fa-arrows-alt:before { - content: "\f0b2" -} - -.fa-group:before, .fa-users:before { - content: "\f0c0" -} - -.fa-chain:before, .fa-link:before { - content: "\f0c1" -} - -.fa-cloud:before { - content: "\f0c2" -} - -.fa-flask:before { - content: "\f0c3" -} - -.fa-cut:before, .fa-scissors:before { - content: "\f0c4" -} - -.fa-copy:before, .fa-files-o:before { - content: "\f0c5" -} - -.fa-paperclip:before { - content: "\f0c6" -} - -.fa-save:before, .fa-floppy-o:before { - content: "\f0c7" -} - -.fa-square:before { - content: "\f0c8" -} - -.fa-navicon:before, .fa-reorder:before, .fa-bars:before { - content: "\f0c9" -} - -.fa-list-ul:before { - content: "\f0ca" -} - -.fa-list-ol:before { - content: "\f0cb" -} - -.fa-strikethrough:before { - content: "\f0cc" -} - -.fa-underline:before { - content: "\f0cd" -} - -.fa-table:before { - content: "\f0ce" -} - -.fa-magic:before { - content: "\f0d0" -} - -.fa-truck:before { - content: "\f0d1" -} - -.fa-pinterest:before { - content: "\f0d2" -} - -.fa-pinterest-square:before { - content: "\f0d3" -} - -.fa-google-plus-square:before { - content: "\f0d4" -} - -.fa-google-plus:before { - content: "\f0d5" -} - -.fa-money:before { - content: "\f0d6" -} - -.fa-caret-down:before { - content: "\f0d7" -} - -.fa-caret-up:before { - content: "\f0d8" -} - -.fa-caret-left:before { - content: "\f0d9" -} - -.fa-caret-right:before { - content: "\f0da" -} - -.fa-columns:before { - content: "\f0db" -} - -.fa-unsorted:before, .fa-sort:before { - content: "\f0dc" -} - -.fa-sort-down:before, .fa-sort-desc:before { - content: "\f0dd" -} - -.fa-sort-up:before, .fa-sort-asc:before { - content: "\f0de" -} - -.fa-envelope:before { - content: "\f0e0" -} - -.fa-linkedin:before { - content: "\f0e1" -} - -.fa-rotate-left:before, .fa-undo:before { - content: "\f0e2" -} - -.fa-legal:before, .fa-gavel:before { - content: "\f0e3" -} - -.fa-dashboard:before, .fa-tachometer:before { - content: "\f0e4" -} - -.fa-comment-o:before { - content: "\f0e5" -} - -.fa-comments-o:before { - content: "\f0e6" -} - -.fa-flash:before, .fa-bolt:before { - content: "\f0e7" -} - -.fa-sitemap:before { - content: "\f0e8" -} - -.fa-umbrella:before { - content: "\f0e9" -} - -.fa-paste:before, .fa-clipboard:before { - content: "\f0ea" -} - -.fa-lightbulb-o:before { - content: "\f0eb" -} - -.fa-exchange:before { - content: "\f0ec" -} - -.fa-cloud-download:before { - content: "\f0ed" -} - -.fa-cloud-upload:before { - content: "\f0ee" -} - -.fa-user-md:before { - content: "\f0f0" -} - -.fa-stethoscope:before { - content: "\f0f1" -} - -.fa-suitcase:before { - content: "\f0f2" -} - -.fa-bell-o:before { - content: "\f0a2" -} - -.fa-coffee:before { - content: "\f0f4" -} - -.fa-cutlery:before { - content: "\f0f5" -} - -.fa-file-text-o:before { - content: "\f0f6" -} - -.fa-building-o:before { - content: "\f0f7" -} - -.fa-hospital-o:before { - content: "\f0f8" -} - -.fa-ambulance:before { - content: "\f0f9" -} - -.fa-medkit:before { - content: "\f0fa" -} - -.fa-fighter-jet:before { - content: "\f0fb" -} - -.fa-beer:before { - content: "\f0fc" -} - -.fa-h-square:before { - content: "\f0fd" -} - -.fa-plus-square:before { - content: "\f0fe" -} - -.fa-angle-double-left:before { - content: "\f100" -} - -.fa-angle-double-right:before { - content: "\f101" -} - -.fa-angle-double-up:before { - content: "\f102" -} - -.fa-angle-double-down:before { - content: "\f103" -} - -.fa-angle-left:before { - content: "\f104" -} - -.fa-angle-right:before { - content: "\f105" -} - -.fa-angle-up:before { - content: "\f106" -} - -.fa-angle-down:before { - content: "\f107" -} - -.fa-desktop:before { - content: "\f108" -} - -.fa-laptop:before { - content: "\f109" -} - -.fa-tablet:before { - content: "\f10a" -} - -.fa-mobile-phone:before, .fa-mobile:before { - content: "\f10b" -} - -.fa-circle-o:before { - content: "\f10c" -} - -.fa-quote-left:before { - content: "\f10d" -} - -.fa-quote-right:before { - content: "\f10e" -} - -.fa-spinner:before { - content: "\f110" -} - -.fa-circle:before { - content: "\f111" -} - -.fa-mail-reply:before, .fa-reply:before { - content: "\f112" -} - -.fa-github-alt:before { - content: "\f113" -} - -.fa-folder-o:before { - content: "\f114" -} - -.fa-folder-open-o:before { - content: "\f115" -} - -.fa-smile-o:before { - content: "\f118" -} - -.fa-frown-o:before { - content: "\f119" -} - -.fa-meh-o:before { - content: "\f11a" -} - -.fa-gamepad:before { - content: "\f11b" -} - -.fa-keyboard-o:before { - content: "\f11c" -} - -.fa-flag-o:before { - content: "\f11d" -} - -.fa-flag-checkered:before { - content: "\f11e" -} - -.fa-terminal:before { - content: "\f120" -} - -.fa-code:before { - content: "\f121" -} - -.fa-mail-reply-all:before, .fa-reply-all:before { - content: "\f122" -} - -.fa-star-half-empty:before, .fa-star-half-full:before, .fa-star-half-o:before { - content: "\f123" -} - -.fa-location-arrow:before { - content: "\f124" -} - -.fa-crop:before { - content: "\f125" -} - -.fa-code-fork:before { - content: "\f126" -} - -.fa-unlink:before, .fa-chain-broken:before { - content: "\f127" -} - -.fa-question:before { - content: "\f128" -} - -.fa-info:before { - content: "\f129" -} - -.fa-exclamation:before { - content: "\f12a" -} - -.fa-superscript:before { - content: "\f12b" -} - -.fa-subscript:before { - content: "\f12c" -} - -.fa-eraser:before { - content: "\f12d" -} - -.fa-puzzle-piece:before { - content: "\f12e" -} - -.fa-microphone:before { - content: "\f130" -} - -.fa-microphone-slash:before { - content: "\f131" -} - -.fa-shield:before { - content: "\f132" -} - -.fa-calendar-o:before { - content: "\f133" -} - -.fa-fire-extinguisher:before { - content: "\f134" -} - -.fa-rocket:before { - content: "\f135" -} - -.fa-maxcdn:before { - content: "\f136" -} - -.fa-chevron-circle-left:before { - content: "\f137" -} - -.fa-chevron-circle-right:before { - content: "\f138" -} - -.fa-chevron-circle-up:before { - content: "\f139" -} - -.fa-chevron-circle-down:before { - content: "\f13a" -} - -.fa-html5:before { - content: "\f13b" -} - -.fa-css3:before { - content: "\f13c" -} - -.fa-anchor:before { - content: "\f13d" -} - -.fa-unlock-alt:before { - content: "\f13e" -} - -.fa-bullseye:before { - content: "\f140" -} - -.fa-ellipsis-h:before { - content: "\f141" -} - -.fa-ellipsis-v:before { - content: "\f142" -} - -.fa-rss-square:before { - content: "\f143" -} - -.fa-play-circle:before { - content: "\f144" -} - -.fa-ticket:before { - content: "\f145" -} - -.fa-minus-square:before { - content: "\f146" -} - -.fa-minus-square-o:before { - content: "\f147" -} - -.fa-level-up:before { - content: "\f148" -} - -.fa-level-down:before { - content: "\f149" -} - -.fa-check-square:before { - content: "\f14a" -} - -.fa-pencil-square:before { - content: "\f14b" -} - -.fa-external-link-square:before { - content: "\f14c" -} - -.fa-share-square:before { - content: "\f14d" -} - -.fa-compass:before { - content: "\f14e" -} - -.fa-toggle-down:before, .fa-caret-square-o-down:before { - content: "\f150" -} - -.fa-toggle-up:before, .fa-caret-square-o-up:before { - content: "\f151" -} - -.fa-toggle-right:before, .fa-caret-square-o-right:before { - content: "\f152" -} - -.fa-euro:before, .fa-eur:before { - content: "\f153" -} - -.fa-gbp:before { - content: "\f154" -} - -.fa-dollar:before, .fa-usd:before { - content: "\f155" -} - -.fa-rupee:before, .fa-inr:before { - content: "\f156" -} - -.fa-cny:before, .fa-rmb:before, .fa-yen:before, .fa-jpy:before { - content: "\f157" -} - -.fa-ruble:before, .fa-rouble:before, .fa-rub:before { - content: "\f158" -} - -.fa-won:before, .fa-krw:before { - content: "\f159" -} - -.fa-bitcoin:before, .fa-btc:before { - content: "\f15a" -} - -.fa-file:before { - content: "\f15b" -} - -.fa-file-text:before { - content: "\f15c" -} - -.fa-sort-alpha-asc:before { - content: "\f15d" -} - -.fa-sort-alpha-desc:before { - content: "\f15e" -} - -.fa-sort-amount-asc:before { - content: "\f160" -} - -.fa-sort-amount-desc:before { - content: "\f161" -} - -.fa-sort-numeric-asc:before { - content: "\f162" -} - -.fa-sort-numeric-desc:before { - content: "\f163" -} - -.fa-thumbs-up:before { - content: "\f164" -} - -.fa-thumbs-down:before { - content: "\f165" -} - -.fa-youtube-square:before { - content: "\f166" -} - -.fa-youtube:before { - content: "\f167" -} - -.fa-xing:before { - content: "\f168" -} - -.fa-xing-square:before { - content: "\f169" -} - -.fa-youtube-play:before { - content: "\f16a" -} - -.fa-dropbox:before { - content: "\f16b" -} - -.fa-stack-overflow:before { - content: "\f16c" -} - -.fa-instagram:before { - content: "\f16d" -} - -.fa-flickr:before { - content: "\f16e" -} - -.fa-adn:before { - content: "\f170" -} - -.fa-bitbucket:before { - content: "\f171" -} - -.fa-bitbucket-square:before { - content: "\f172" -} - -.fa-tumblr:before { - content: "\f173" -} - -.fa-tumblr-square:before { - content: "\f174" -} - -.fa-long-arrow-down:before { - content: "\f175" -} - -.fa-long-arrow-up:before { - content: "\f176" -} - -.fa-long-arrow-left:before { - content: "\f177" -} - -.fa-long-arrow-right:before { - content: "\f178" -} - -.fa-apple:before { - content: "\f179" -} - -.fa-windows:before { - content: "\f17a" -} - -.fa-android:before { - content: "\f17b" -} - -.fa-linux:before { - content: "\f17c" -} - -.fa-dribbble:before { - content: "\f17d" -} - -.fa-skype:before { - content: "\f17e" -} - -.fa-foursquare:before { - content: "\f180" -} - -.fa-trello:before { - content: "\f181" -} - -.fa-female:before { - content: "\f182" -} - -.fa-male:before { - content: "\f183" -} - -.fa-gittip:before, .fa-gratipay:before { - content: "\f184" -} - -.fa-sun-o:before { - content: "\f185" -} - -.fa-moon-o:before { - content: "\f186" -} - -.fa-archive:before { - content: "\f187" -} - -.fa-bug:before { - content: "\f188" -} - -.fa-vk:before { - content: "\f189" -} - -.fa-weibo:before { - content: "\f18a" -} - -.fa-renren:before { - content: "\f18b" -} - -.fa-pagelines:before { - content: "\f18c" -} - -.fa-stack-exchange:before { - content: "\f18d" -} - -.fa-arrow-circle-o-right:before { - content: "\f18e" -} - -.fa-arrow-circle-o-left:before { - content: "\f190" -} - -.fa-toggle-left:before, .fa-caret-square-o-left:before { - content: "\f191" -} - -.fa-dot-circle-o:before { - content: "\f192" -} - -.fa-wheelchair:before { - content: "\f193" -} - -.fa-vimeo-square:before { - content: "\f194" -} - -.fa-turkish-lira:before, .fa-try:before { - content: "\f195" -} - -.fa-plus-square-o:before { - content: "\f196" -} - -.fa-space-shuttle:before { - content: "\f197" -} - -.fa-slack:before { - content: "\f198" -} - -.fa-envelope-square:before { - content: "\f199" -} - -.fa-wordpress:before { - content: "\f19a" -} - -.fa-openid:before { - content: "\f19b" -} - -.fa-institution:before, .fa-bank:before, .fa-university:before { - content: "\f19c" -} - -.fa-mortar-board:before, .fa-graduation-cap:before { - content: "\f19d" -} - -.fa-yahoo:before { - content: "\f19e" -} - -.fa-google:before { - content: "\f1a0" -} - -.fa-reddit:before { - content: "\f1a1" -} - -.fa-reddit-square:before { - content: "\f1a2" -} - -.fa-stumbleupon-circle:before { - content: "\f1a3" -} - -.fa-stumbleupon:before { - content: "\f1a4" -} - -.fa-delicious:before { - content: "\f1a5" -} - -.fa-digg:before { - content: "\f1a6" -} - -.fa-pied-piper-pp:before { - content: "\f1a7" -} - -.fa-pied-piper-alt:before { - content: "\f1a8" -} - -.fa-drupal:before { - content: "\f1a9" -} - -.fa-joomla:before { - content: "\f1aa" -} - -.fa-language:before { - content: "\f1ab" -} - -.fa-fax:before { - content: "\f1ac" -} - -.fa-building:before { - content: "\f1ad" -} - -.fa-child:before { - content: "\f1ae" -} - -.fa-paw:before { - content: "\f1b0" -} - -.fa-spoon:before { - content: "\f1b1" -} - -.fa-cube:before { - content: "\f1b2" -} - -.fa-cubes:before { - content: "\f1b3" -} - -.fa-behance:before { - content: "\f1b4" -} - -.fa-behance-square:before { - content: "\f1b5" -} - -.fa-steam:before { - content: "\f1b6" -} - -.fa-steam-square:before { - content: "\f1b7" -} - -.fa-recycle:before { - content: "\f1b8" -} - -.fa-automobile:before, .fa-car:before { - content: "\f1b9" -} - -.fa-cab:before, .fa-taxi:before { - content: "\f1ba" -} - -.fa-tree:before { - content: "\f1bb" -} - -.fa-spotify:before { - content: "\f1bc" -} - -.fa-deviantart:before { - content: "\f1bd" -} - -.fa-soundcloud:before { - content: "\f1be" -} - -.fa-database:before { - content: "\f1c0" -} - -.fa-file-pdf-o:before { - content: "\f1c1" -} - -.fa-file-word-o:before { - content: "\f1c2" -} - -.fa-file-excel-o:before { - content: "\f1c3" -} - -.fa-file-powerpoint-o:before { - content: "\f1c4" -} - -.fa-file-photo-o:before, .fa-file-picture-o:before, .fa-file-image-o:before { - content: "\f1c5" -} - -.fa-file-zip-o:before, .fa-file-archive-o:before { - content: "\f1c6" -} - -.fa-file-sound-o:before, .fa-file-audio-o:before { - content: "\f1c7" -} - -.fa-file-movie-o:before, .fa-file-video-o:before { - content: "\f1c8" -} - -.fa-file-code-o:before { - content: "\f1c9" -} - -.fa-vine:before { - content: "\f1ca" -} - -.fa-codepen:before { - content: "\f1cb" -} - -.fa-jsfiddle:before { - content: "\f1cc" -} - -.fa-life-bouy:before, .fa-life-buoy:before, .fa-life-saver:before, .fa-support:before, .fa-life-ring:before { - content: "\f1cd" -} - -.fa-circle-o-notch:before { - content: "\f1ce" -} - -.fa-ra:before, .fa-resistance:before, .fa-rebel:before { - content: "\f1d0" -} - -.fa-ge:before, .fa-empire:before { - content: "\f1d1" -} - -.fa-git-square:before { - content: "\f1d2" -} - -.fa-git:before { - content: "\f1d3" -} - -.fa-y-combinator-square:before, .fa-yc-square:before, .fa-hacker-news:before { - content: "\f1d4" -} - -.fa-tencent-weibo:before { - content: "\f1d5" -} - -.fa-qq:before { - content: "\f1d6" -} - -.fa-wechat:before, .fa-weixin:before { - content: "\f1d7" -} - -.fa-send:before, .fa-paper-plane:before { - content: "\f1d8" -} - -.fa-send-o:before, .fa-paper-plane-o:before { - content: "\f1d9" -} - -.fa-history:before { - content: "\f1da" -} - -.fa-circle-thin:before { - content: "\f1db" -} - -.fa-header:before { - content: "\f1dc" -} - -.fa-paragraph:before { - content: "\f1dd" -} - -.fa-sliders:before { - content: "\f1de" -} - -.fa-share-alt:before { - content: "\f1e0" -} - -.fa-share-alt-square:before { - content: "\f1e1" -} - -.fa-bomb:before { - content: "\f1e2" -} - -.fa-soccer-ball-o:before, .fa-futbol-o:before { - content: "\f1e3" -} - -.fa-tty:before { - content: "\f1e4" -} - -.fa-binoculars:before { - content: "\f1e5" -} - -.fa-plug:before { - content: "\f1e6" -} - -.fa-slideshare:before { - content: "\f1e7" -} - -.fa-twitch:before { - content: "\f1e8" -} - -.fa-yelp:before { - content: "\f1e9" -} - -.fa-newspaper-o:before { - content: "\f1ea" -} - -.fa-wifi:before { - content: "\f1eb" -} - -.fa-calculator:before { - content: "\f1ec" -} - -.fa-paypal:before { - content: "\f1ed" -} - -.fa-google-wallet:before { - content: "\f1ee" -} - -.fa-cc-visa:before { - content: "\f1f0" -} - -.fa-cc-mastercard:before { - content: "\f1f1" -} - -.fa-cc-discover:before { - content: "\f1f2" -} - -.fa-cc-amex:before { - content: "\f1f3" -} - -.fa-cc-paypal:before { - content: "\f1f4" -} - -.fa-cc-stripe:before { - content: "\f1f5" -} - -.fa-bell-slash:before { - content: "\f1f6" -} - -.fa-bell-slash-o:before { - content: "\f1f7" -} - -.fa-trash:before { - content: "\f1f8" -} - -.fa-copyright:before { - content: "\f1f9" -} - -.fa-at:before { - content: "\f1fa" -} - -.fa-eyedropper:before { - content: "\f1fb" -} - -.fa-paint-brush:before { - content: "\f1fc" -} - -.fa-birthday-cake:before { - content: "\f1fd" -} - -.fa-area-chart:before { - content: "\f1fe" -} - -.fa-pie-chart:before { - content: "\f200" -} - -.fa-line-chart:before { - content: "\f201" -} - -.fa-lastfm:before { - content: "\f202" -} - -.fa-lastfm-square:before { - content: "\f203" -} - -.fa-toggle-off:before { - content: "\f204" -} - -.fa-toggle-on:before { - content: "\f205" -} - -.fa-bicycle:before { - content: "\f206" -} - -.fa-bus:before { - content: "\f207" -} - -.fa-ioxhost:before { - content: "\f208" -} - -.fa-angellist:before { - content: "\f209" -} - -.fa-cc:before { - content: "\f20a" -} - -.fa-shekel:before, .fa-sheqel:before, .fa-ils:before { - content: "\f20b" -} - -.fa-meanpath:before { - content: "\f20c" -} - -.fa-buysellads:before { - content: "\f20d" -} - -.fa-connectdevelop:before { - content: "\f20e" -} - -.fa-dashcube:before { - content: "\f210" -} - -.fa-forumbee:before { - content: "\f211" -} - -.fa-leanpub:before { - content: "\f212" -} - -.fa-sellsy:before { - content: "\f213" -} - -.fa-shirtsinbulk:before { - content: "\f214" -} - -.fa-simplybuilt:before { - content: "\f215" -} - -.fa-skyatlas:before { - content: "\f216" -} - -.fa-cart-plus:before { - content: "\f217" -} - -.fa-cart-arrow-down:before { - content: "\f218" -} - -.fa-diamond:before { - content: "\f219" -} - -.fa-ship:before { - content: "\f21a" -} - -.fa-user-secret:before { - content: "\f21b" -} - -.fa-motorcycle:before { - content: "\f21c" -} - -.fa-street-view:before { - content: "\f21d" -} - -.fa-heartbeat:before { - content: "\f21e" -} - -.fa-venus:before { - content: "\f221" -} - -.fa-mars:before { - content: "\f222" -} - -.fa-mercury:before { - content: "\f223" -} - -.fa-intersex:before, .fa-transgender:before { - content: "\f224" -} - -.fa-transgender-alt:before { - content: "\f225" -} - -.fa-venus-double:before { - content: "\f226" -} - -.fa-mars-double:before { - content: "\f227" -} - -.fa-venus-mars:before { - content: "\f228" -} - -.fa-mars-stroke:before { - content: "\f229" -} - -.fa-mars-stroke-v:before { - content: "\f22a" -} - -.fa-mars-stroke-h:before { - content: "\f22b" -} - -.fa-neuter:before { - content: "\f22c" -} - -.fa-genderless:before { - content: "\f22d" -} - -.fa-facebook-official:before { - content: "\f230" -} - -.fa-pinterest-p:before { - content: "\f231" -} - -.fa-whatsapp:before { - content: "\f232" -} - -.fa-server:before { - content: "\f233" -} - -.fa-user-plus:before { - content: "\f234" -} - -.fa-user-times:before { - content: "\f235" -} - -.fa-hotel:before, .fa-bed:before { - content: "\f236" -} - -.fa-viacoin:before { - content: "\f237" -} - -.fa-train:before { - content: "\f238" -} - -.fa-subway:before { - content: "\f239" -} - -.fa-medium:before { - content: "\f23a" -} - -.fa-yc:before, .fa-y-combinator:before { - content: "\f23b" -} - -.fa-optin-monster:before { - content: "\f23c" -} - -.fa-opencart:before { - content: "\f23d" -} - -.fa-expeditedssl:before { - content: "\f23e" -} - -.fa-battery-4:before, .fa-battery:before, .fa-battery-full:before { - content: "\f240" -} - -.fa-battery-3:before, .fa-battery-three-quarters:before { - content: "\f241" -} - -.fa-battery-2:before, .fa-battery-half:before { - content: "\f242" -} - -.fa-battery-1:before, .fa-battery-quarter:before { - content: "\f243" -} - -.fa-battery-0:before, .fa-battery-empty:before { - content: "\f244" -} - -.fa-mouse-pointer:before { - content: "\f245" -} - -.fa-i-cursor:before { - content: "\f246" -} - -.fa-object-group:before { - content: "\f247" -} - -.fa-object-ungroup:before { - content: "\f248" -} - -.fa-sticky-note:before { - content: "\f249" -} - -.fa-sticky-note-o:before { - content: "\f24a" -} - -.fa-cc-jcb:before { - content: "\f24b" -} - -.fa-cc-diners-club:before { - content: "\f24c" -} - -.fa-clone:before { - content: "\f24d" -} - -.fa-balance-scale:before { - content: "\f24e" -} - -.fa-hourglass-o:before { - content: "\f250" -} - -.fa-hourglass-1:before, .fa-hourglass-start:before { - content: "\f251" -} - -.fa-hourglass-2:before, .fa-hourglass-half:before { - content: "\f252" -} - -.fa-hourglass-3:before, .fa-hourglass-end:before { - content: "\f253" -} - -.fa-hourglass:before { - content: "\f254" -} - -.fa-hand-grab-o:before, .fa-hand-rock-o:before { - content: "\f255" -} - -.fa-hand-stop-o:before, .fa-hand-paper-o:before { - content: "\f256" -} - -.fa-hand-scissors-o:before { - content: "\f257" -} - -.fa-hand-lizard-o:before { - content: "\f258" -} - -.fa-hand-spock-o:before { - content: "\f259" -} - -.fa-hand-pointer-o:before { - content: "\f25a" -} - -.fa-hand-peace-o:before { - content: "\f25b" -} - -.fa-trademark:before { - content: "\f25c" -} - -.fa-registered:before { - content: "\f25d" -} - -.fa-creative-commons:before { - content: "\f25e" -} - -.fa-gg:before { - content: "\f260" -} - -.fa-gg-circle:before { - content: "\f261" -} - -.fa-tripadvisor:before { - content: "\f262" -} - -.fa-odnoklassniki:before { - content: "\f263" -} - -.fa-odnoklassniki-square:before { - content: "\f264" -} - -.fa-get-pocket:before { - content: "\f265" -} - -.fa-wikipedia-w:before { - content: "\f266" -} - -.fa-safari:before { - content: "\f267" -} - -.fa-chrome:before { - content: "\f268" -} - -.fa-firefox:before { - content: "\f269" -} - -.fa-opera:before { - content: "\f26a" -} - -.fa-internet-explorer:before { - content: "\f26b" -} - -.fa-tv:before, .fa-television:before { - content: "\f26c" -} - -.fa-contao:before { - content: "\f26d" -} - -.fa-500px:before { - content: "\f26e" -} - -.fa-amazon:before { - content: "\f270" -} - -.fa-calendar-plus-o:before { - content: "\f271" -} - -.fa-calendar-minus-o:before { - content: "\f272" -} - -.fa-calendar-times-o:before { - content: "\f273" -} - -.fa-calendar-check-o:before { - content: "\f274" -} - -.fa-industry:before { - content: "\f275" -} - -.fa-map-pin:before { - content: "\f276" -} - -.fa-map-signs:before { - content: "\f277" -} - -.fa-map-o:before { - content: "\f278" -} - -.fa-map:before { - content: "\f279" -} - -.fa-commenting:before { - content: "\f27a" -} - -.fa-commenting-o:before { - content: "\f27b" -} - -.fa-houzz:before { - content: "\f27c" -} - -.fa-vimeo:before { - content: "\f27d" -} - -.fa-black-tie:before { - content: "\f27e" -} - -.fa-fonticons:before { - content: "\f280" -} - -.fa-reddit-alien:before { - content: "\f281" -} - -.fa-edge:before { - content: "\f282" -} - -.fa-credit-card-alt:before { - content: "\f283" -} - -.fa-codiepie:before { - content: "\f284" -} - -.fa-modx:before { - content: "\f285" -} - -.fa-fort-awesome:before { - content: "\f286" -} - -.fa-usb:before { - content: "\f287" -} - -.fa-product-hunt:before { - content: "\f288" -} - -.fa-mixcloud:before { - content: "\f289" -} - -.fa-scribd:before { - content: "\f28a" -} - -.fa-pause-circle:before { - content: "\f28b" -} - -.fa-pause-circle-o:before { - content: "\f28c" -} - -.fa-stop-circle:before { - content: "\f28d" -} - -.fa-stop-circle-o:before { - content: "\f28e" -} - -.fa-shopping-bag:before { - content: "\f290" -} - -.fa-shopping-basket:before { - content: "\f291" -} - -.fa-hashtag:before { - content: "\f292" -} - -.fa-bluetooth:before { - content: "\f293" -} - -.fa-bluetooth-b:before { - content: "\f294" -} - -.fa-percent:before { - content: "\f295" -} - -.fa-gitlab:before { - content: "\f296" -} - -.fa-wpbeginner:before { - content: "\f297" -} - -.fa-wpforms:before { - content: "\f298" -} - -.fa-envira:before { - content: "\f299" -} - -.fa-universal-access:before { - content: "\f29a" -} - -.fa-wheelchair-alt:before { - content: "\f29b" -} - -.fa-question-circle-o:before { - content: "\f29c" -} - -.fa-blind:before { - content: "\f29d" -} - -.fa-audio-description:before { - content: "\f29e" -} - -.fa-volume-control-phone:before { - content: "\f2a0" -} - -.fa-braille:before { - content: "\f2a1" -} - -.fa-assistive-listening-systems:before { - content: "\f2a2" -} - -.fa-asl-interpreting:before, .fa-american-sign-language-interpreting:before { - content: "\f2a3" -} - -.fa-deafness:before, .fa-hard-of-hearing:before, .fa-deaf:before { - content: "\f2a4" -} - -.fa-glide:before { - content: "\f2a5" -} - -.fa-glide-g:before { - content: "\f2a6" -} - -.fa-signing:before, .fa-sign-language:before { - content: "\f2a7" -} - -.fa-low-vision:before { - content: "\f2a8" -} - -.fa-viadeo:before { - content: "\f2a9" -} - -.fa-viadeo-square:before { - content: "\f2aa" -} - -.fa-snapchat:before { - content: "\f2ab" -} - -.fa-snapchat-ghost:before { - content: "\f2ac" -} - -.fa-snapchat-square:before { - content: "\f2ad" -} - -.fa-pied-piper:before { - content: "\f2ae" -} - -.fa-first-order:before { - content: "\f2b0" -} - -.fa-yoast:before { - content: "\f2b1" -} - -.fa-themeisle:before { - content: "\f2b2" -} - -.fa-google-plus-circle:before, .fa-google-plus-official:before { - content: "\f2b3" -} - -.fa-fa:before, .fa-font-awesome:before { - content: "\f2b4" -} - -.fa-handshake-o:before { - content: "\f2b5" -} - -.fa-envelope-open:before { - content: "\f2b6" -} - -.fa-envelope-open-o:before { - content: "\f2b7" -} - -.fa-linode:before { - content: "\f2b8" -} - -.fa-address-book:before { - content: "\f2b9" -} - -.fa-address-book-o:before { - content: "\f2ba" -} - -.fa-vcard:before, .fa-address-card:before { - content: "\f2bb" -} - -.fa-vcard-o:before, .fa-address-card-o:before { - content: "\f2bc" -} - -.fa-user-circle:before { - content: "\f2bd" -} - -.fa-user-circle-o:before { - content: "\f2be" -} - -.fa-user-o:before { - content: "\f2c0" -} - -.fa-id-badge:before { - content: "\f2c1" -} - -.fa-drivers-license:before, .fa-id-card:before { - content: "\f2c2" -} - -.fa-drivers-license-o:before, .fa-id-card-o:before { - content: "\f2c3" -} - -.fa-quora:before { - content: "\f2c4" -} - -.fa-free-code-camp:before { - content: "\f2c5" -} - -.fa-telegram:before { - content: "\f2c6" -} - -.fa-thermometer-4:before, .fa-thermometer:before, .fa-thermometer-full:before { - content: "\f2c7" -} - -.fa-thermometer-3:before, .fa-thermometer-three-quarters:before { - content: "\f2c8" -} - -.fa-thermometer-2:before, .fa-thermometer-half:before { - content: "\f2c9" -} - -.fa-thermometer-1:before, .fa-thermometer-quarter:before { - content: "\f2ca" -} - -.fa-thermometer-0:before, .fa-thermometer-empty:before { - content: "\f2cb" -} - -.fa-shower:before { - content: "\f2cc" -} - -.fa-bathtub:before, .fa-s15:before, .fa-bath:before { - content: "\f2cd" -} - -.fa-podcast:before { - content: "\f2ce" -} - -.fa-window-maximize:before { - content: "\f2d0" -} - -.fa-window-minimize:before { - content: "\f2d1" -} - -.fa-window-restore:before { - content: "\f2d2" -} - -.fa-times-rectangle:before, .fa-window-close:before { - content: "\f2d3" -} - -.fa-times-rectangle-o:before, .fa-window-close-o:before { - content: "\f2d4" -} - -.fa-bandcamp:before { - content: "\f2d5" -} - -.fa-grav:before { - content: "\f2d6" -} - -.fa-etsy:before { - content: "\f2d7" -} - -.fa-imdb:before { - content: "\f2d8" -} - -.fa-ravelry:before { - content: "\f2d9" -} - -.fa-eercast:before { - content: "\f2da" -} - -.fa-microchip:before { - content: "\f2db" -} - -.fa-snowflake-o:before { - content: "\f2dc" -} - -.fa-superpowers:before { - content: "\f2dd" -} - -.fa-wpexplorer:before { - content: "\f2de" -} - -.fa-meetup:before { - content: "\f2e0" -} \ No newline at end of file diff --git a/fonts/FontAwesome.otf b/fonts/FontAwesome.otf deleted file mode 100644 index 401ec0f..0000000 Binary files a/fonts/FontAwesome.otf and /dev/null differ diff --git a/fonts/fontawesome-webfont.eot b/fonts/fontawesome-webfont.eot deleted file mode 100644 index e9f60ca..0000000 Binary files a/fonts/fontawesome-webfont.eot and /dev/null differ diff --git a/fonts/fontawesome-webfont.svg b/fonts/fontawesome-webfont.svg deleted file mode 100644 index 855c845..0000000 --- a/fonts/fontawesome-webfont.svg +++ /dev/null @@ -1,2671 +0,0 @@ -<?xml version="1.0" standalone="no"?> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" > -<svg> -<metadata> -Created by FontForge 20120731 at Mon Oct 24 17:37:40 2016 - By ,,, -Copyright Dave Gandy 2016. All rights reserved. -</metadata> -<defs> -<font id="FontAwesome" horiz-adv-x="1536" > - <font-face - font-family="FontAwesome" - font-weight="400" - font-stretch="normal" - units-per-em="1792" - panose-1="0 0 0 0 0 0 0 0 0 0" - ascent="1536" - descent="-256" - bbox="-1.02083 -256.962 2304.6 1537.02" - underline-thickness="0" - underline-position="0" - unicode-range="U+0020-F500" - /> -<missing-glyph horiz-adv-x="896" -d="M224 112h448v1312h-448v-1312zM112 0v1536h672v-1536h-672z" /> - <glyph glyph-name=".notdef" horiz-adv-x="896" -d="M224 112h448v1312h-448v-1312zM112 0v1536h672v-1536h-672z" /> - <glyph glyph-name=".null" horiz-adv-x="0" - /> - <glyph glyph-name="nonmarkingreturn" horiz-adv-x="597" - /> - <glyph glyph-name="space" unicode=" " horiz-adv-x="448" - /> - <glyph glyph-name="dieresis" unicode="&#xa8;" horiz-adv-x="1792" - /> - <glyph glyph-name="copyright" unicode="&#xa9;" horiz-adv-x="1792" - /> - <glyph glyph-name="registered" unicode="&#xae;" horiz-adv-x="1792" - /> - <glyph glyph-name="acute" unicode="&#xb4;" horiz-adv-x="1792" - /> - <glyph glyph-name="AE" unicode="&#xc6;" horiz-adv-x="1792" - /> - <glyph glyph-name="Oslash" unicode="&#xd8;" horiz-adv-x="1792" - /> - <glyph glyph-name="trademark" unicode="&#x2122;" horiz-adv-x="1792" - /> - <glyph glyph-name="infinity" unicode="&#x221e;" horiz-adv-x="1792" - /> - <glyph glyph-name="notequal" unicode="&#x2260;" horiz-adv-x="1792" - /> - <glyph glyph-name="glass" unicode="&#xf000;" horiz-adv-x="1792" -d="M1699 1350q0 -35 -43 -78l-632 -632v-768h320q26 0 45 -19t19 -45t-19 -45t-45 -19h-896q-26 0 -45 19t-19 45t19 45t45 19h320v768l-632 632q-43 43 -43 78q0 23 18 36.5t38 17.5t43 4h1408q23 0 43 -4t38 -17.5t18 -36.5z" /> - <glyph glyph-name="music" unicode="&#xf001;" -d="M1536 1312v-1120q0 -50 -34 -89t-86 -60.5t-103.5 -32t-96.5 -10.5t-96.5 10.5t-103.5 32t-86 60.5t-34 89t34 89t86 60.5t103.5 32t96.5 10.5q105 0 192 -39v537l-768 -237v-709q0 -50 -34 -89t-86 -60.5t-103.5 -32t-96.5 -10.5t-96.5 10.5t-103.5 32t-86 60.5t-34 89 -t34 89t86 60.5t103.5 32t96.5 10.5q105 0 192 -39v967q0 31 19 56.5t49 35.5l832 256q12 4 28 4q40 0 68 -28t28 -68z" /> - <glyph glyph-name="search" unicode="&#xf002;" horiz-adv-x="1664" -d="M1152 704q0 185 -131.5 316.5t-316.5 131.5t-316.5 -131.5t-131.5 -316.5t131.5 -316.5t316.5 -131.5t316.5 131.5t131.5 316.5zM1664 -128q0 -52 -38 -90t-90 -38q-54 0 -90 38l-343 342q-179 -124 -399 -124q-143 0 -273.5 55.5t-225 150t-150 225t-55.5 273.5 -t55.5 273.5t150 225t225 150t273.5 55.5t273.5 -55.5t225 -150t150 -225t55.5 -273.5q0 -220 -124 -399l343 -343q37 -37 37 -90z" /> - <glyph glyph-name="envelope" unicode="&#xf003;" horiz-adv-x="1792" -d="M1664 32v768q-32 -36 -69 -66q-268 -206 -426 -338q-51 -43 -83 -67t-86.5 -48.5t-102.5 -24.5h-1h-1q-48 0 -102.5 24.5t-86.5 48.5t-83 67q-158 132 -426 338q-37 30 -69 66v-768q0 -13 9.5 -22.5t22.5 -9.5h1472q13 0 22.5 9.5t9.5 22.5zM1664 1083v11v13.5t-0.5 13 -t-3 12.5t-5.5 9t-9 7.5t-14 2.5h-1472q-13 0 -22.5 -9.5t-9.5 -22.5q0 -168 147 -284q193 -152 401 -317q6 -5 35 -29.5t46 -37.5t44.5 -31.5t50.5 -27.5t43 -9h1h1q20 0 43 9t50.5 27.5t44.5 31.5t46 37.5t35 29.5q208 165 401 317q54 43 100.5 115.5t46.5 131.5z -M1792 1120v-1088q0 -66 -47 -113t-113 -47h-1472q-66 0 -113 47t-47 113v1088q0 66 47 113t113 47h1472q66 0 113 -47t47 -113z" /> - <glyph glyph-name="heart" unicode="&#xf004;" horiz-adv-x="1792" -d="M896 -128q-26 0 -44 18l-624 602q-10 8 -27.5 26t-55.5 65.5t-68 97.5t-53.5 121t-23.5 138q0 220 127 344t351 124q62 0 126.5 -21.5t120 -58t95.5 -68.5t76 -68q36 36 76 68t95.5 68.5t120 58t126.5 21.5q224 0 351 -124t127 -344q0 -221 -229 -450l-623 -600 -q-18 -18 -44 -18z" /> - <glyph glyph-name="star" unicode="&#xf005;" horiz-adv-x="1664" -d="M1664 889q0 -22 -26 -48l-363 -354l86 -500q1 -7 1 -20q0 -21 -10.5 -35.5t-30.5 -14.5q-19 0 -40 12l-449 236l-449 -236q-22 -12 -40 -12q-21 0 -31.5 14.5t-10.5 35.5q0 6 2 20l86 500l-364 354q-25 27 -25 48q0 37 56 46l502 73l225 455q19 41 49 41t49 -41l225 -455 -l502 -73q56 -9 56 -46z" /> - <glyph glyph-name="star_empty" unicode="&#xf006;" horiz-adv-x="1664" -d="M1137 532l306 297l-422 62l-189 382l-189 -382l-422 -62l306 -297l-73 -421l378 199l377 -199zM1664 889q0 -22 -26 -48l-363 -354l86 -500q1 -7 1 -20q0 -50 -41 -50q-19 0 -40 12l-449 236l-449 -236q-22 -12 -40 -12q-21 0 -31.5 14.5t-10.5 35.5q0 6 2 20l86 500 -l-364 354q-25 27 -25 48q0 37 56 46l502 73l225 455q19 41 49 41t49 -41l225 -455l502 -73q56 -9 56 -46z" /> - <glyph glyph-name="user" unicode="&#xf007;" horiz-adv-x="1280" -d="M1280 137q0 -109 -62.5 -187t-150.5 -78h-854q-88 0 -150.5 78t-62.5 187q0 85 8.5 160.5t31.5 152t58.5 131t94 89t134.5 34.5q131 -128 313 -128t313 128q76 0 134.5 -34.5t94 -89t58.5 -131t31.5 -152t8.5 -160.5zM1024 1024q0 -159 -112.5 -271.5t-271.5 -112.5 -t-271.5 112.5t-112.5 271.5t112.5 271.5t271.5 112.5t271.5 -112.5t112.5 -271.5z" /> - <glyph glyph-name="film" unicode="&#xf008;" horiz-adv-x="1920" -d="M384 -64v128q0 26 -19 45t-45 19h-128q-26 0 -45 -19t-19 -45v-128q0 -26 19 -45t45 -19h128q26 0 45 19t19 45zM384 320v128q0 26 -19 45t-45 19h-128q-26 0 -45 -19t-19 -45v-128q0 -26 19 -45t45 -19h128q26 0 45 19t19 45zM384 704v128q0 26 -19 45t-45 19h-128 -q-26 0 -45 -19t-19 -45v-128q0 -26 19 -45t45 -19h128q26 0 45 19t19 45zM1408 -64v512q0 26 -19 45t-45 19h-768q-26 0 -45 -19t-19 -45v-512q0 -26 19 -45t45 -19h768q26 0 45 19t19 45zM384 1088v128q0 26 -19 45t-45 19h-128q-26 0 -45 -19t-19 -45v-128q0 -26 19 -45 -t45 -19h128q26 0 45 19t19 45zM1792 -64v128q0 26 -19 45t-45 19h-128q-26 0 -45 -19t-19 -45v-128q0 -26 19 -45t45 -19h128q26 0 45 19t19 45zM1408 704v512q0 26 -19 45t-45 19h-768q-26 0 -45 -19t-19 -45v-512q0 -26 19 -45t45 -19h768q26 0 45 19t19 45zM1792 320v128 -q0 26 -19 45t-45 19h-128q-26 0 -45 -19t-19 -45v-128q0 -26 19 -45t45 -19h128q26 0 45 19t19 45zM1792 704v128q0 26 -19 45t-45 19h-128q-26 0 -45 -19t-19 -45v-128q0 -26 19 -45t45 -19h128q26 0 45 19t19 45zM1792 1088v128q0 26 -19 45t-45 19h-128q-26 0 -45 -19 -t-19 -45v-128q0 -26 19 -45t45 -19h128q26 0 45 19t19 45zM1920 1248v-1344q0 -66 -47 -113t-113 -47h-1600q-66 0 -113 47t-47 113v1344q0 66 47 113t113 47h1600q66 0 113 -47t47 -113z" /> - <glyph glyph-name="th_large" unicode="&#xf009;" horiz-adv-x="1664" -d="M768 512v-384q0 -52 -38 -90t-90 -38h-512q-52 0 -90 38t-38 90v384q0 52 38 90t90 38h512q52 0 90 -38t38 -90zM768 1280v-384q0 -52 -38 -90t-90 -38h-512q-52 0 -90 38t-38 90v384q0 52 38 90t90 38h512q52 0 90 -38t38 -90zM1664 512v-384q0 -52 -38 -90t-90 -38 -h-512q-52 0 -90 38t-38 90v384q0 52 38 90t90 38h512q52 0 90 -38t38 -90zM1664 1280v-384q0 -52 -38 -90t-90 -38h-512q-52 0 -90 38t-38 90v384q0 52 38 90t90 38h512q52 0 90 -38t38 -90z" /> - <glyph glyph-name="th" unicode="&#xf00a;" horiz-adv-x="1792" -d="M512 288v-192q0 -40 -28 -68t-68 -28h-320q-40 0 -68 28t-28 68v192q0 40 28 68t68 28h320q40 0 68 -28t28 -68zM512 800v-192q0 -40 -28 -68t-68 -28h-320q-40 0 -68 28t-28 68v192q0 40 28 68t68 28h320q40 0 68 -28t28 -68zM1152 288v-192q0 -40 -28 -68t-68 -28h-320 -q-40 0 -68 28t-28 68v192q0 40 28 68t68 28h320q40 0 68 -28t28 -68zM512 1312v-192q0 -40 -28 -68t-68 -28h-320q-40 0 -68 28t-28 68v192q0 40 28 68t68 28h320q40 0 68 -28t28 -68zM1152 800v-192q0 -40 -28 -68t-68 -28h-320q-40 0 -68 28t-28 68v192q0 40 28 68t68 28 -h320q40 0 68 -28t28 -68zM1792 288v-192q0 -40 -28 -68t-68 -28h-320q-40 0 -68 28t-28 68v192q0 40 28 68t68 28h320q40 0 68 -28t28 -68zM1152 1312v-192q0 -40 -28 -68t-68 -28h-320q-40 0 -68 28t-28 68v192q0 40 28 68t68 28h320q40 0 68 -28t28 -68zM1792 800v-192 -q0 -40 -28 -68t-68 -28h-320q-40 0 -68 28t-28 68v192q0 40 28 68t68 28h320q40 0 68 -28t28 -68zM1792 1312v-192q0 -40 -28 -68t-68 -28h-320q-40 0 -68 28t-28 68v192q0 40 28 68t68 28h320q40 0 68 -28t28 -68z" /> - <glyph glyph-name="th_list" unicode="&#xf00b;" horiz-adv-x="1792" -d="M512 288v-192q0 -40 -28 -68t-68 -28h-320q-40 0 -68 28t-28 68v192q0 40 28 68t68 28h320q40 0 68 -28t28 -68zM512 800v-192q0 -40 -28 -68t-68 -28h-320q-40 0 -68 28t-28 68v192q0 40 28 68t68 28h320q40 0 68 -28t28 -68zM1792 288v-192q0 -40 -28 -68t-68 -28h-960 -q-40 0 -68 28t-28 68v192q0 40 28 68t68 28h960q40 0 68 -28t28 -68zM512 1312v-192q0 -40 -28 -68t-68 -28h-320q-40 0 -68 28t-28 68v192q0 40 28 68t68 28h320q40 0 68 -28t28 -68zM1792 800v-192q0 -40 -28 -68t-68 -28h-960q-40 0 -68 28t-28 68v192q0 40 28 68t68 28 -h960q40 0 68 -28t28 -68zM1792 1312v-192q0 -40 -28 -68t-68 -28h-960q-40 0 -68 28t-28 68v192q0 40 28 68t68 28h960q40 0 68 -28t28 -68z" /> - <glyph glyph-name="ok" unicode="&#xf00c;" horiz-adv-x="1792" -d="M1671 970q0 -40 -28 -68l-724 -724l-136 -136q-28 -28 -68 -28t-68 28l-136 136l-362 362q-28 28 -28 68t28 68l136 136q28 28 68 28t68 -28l294 -295l656 657q28 28 68 28t68 -28l136 -136q28 -28 28 -68z" /> - <glyph glyph-name="remove" unicode="&#xf00d;" horiz-adv-x="1408" -d="M1298 214q0 -40 -28 -68l-136 -136q-28 -28 -68 -28t-68 28l-294 294l-294 -294q-28 -28 -68 -28t-68 28l-136 136q-28 28 -28 68t28 68l294 294l-294 294q-28 28 -28 68t28 68l136 136q28 28 68 28t68 -28l294 -294l294 294q28 28 68 28t68 -28l136 -136q28 -28 28 -68 -t-28 -68l-294 -294l294 -294q28 -28 28 -68z" /> - <glyph glyph-name="zoom_in" unicode="&#xf00e;" horiz-adv-x="1664" -d="M1024 736v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-224v-224q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v224h-224q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h224v224q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5v-224h224 -q13 0 22.5 -9.5t9.5 -22.5zM1152 704q0 185 -131.5 316.5t-316.5 131.5t-316.5 -131.5t-131.5 -316.5t131.5 -316.5t316.5 -131.5t316.5 131.5t131.5 316.5zM1664 -128q0 -53 -37.5 -90.5t-90.5 -37.5q-54 0 -90 38l-343 342q-179 -124 -399 -124q-143 0 -273.5 55.5 -t-225 150t-150 225t-55.5 273.5t55.5 273.5t150 225t225 150t273.5 55.5t273.5 -55.5t225 -150t150 -225t55.5 -273.5q0 -220 -124 -399l343 -343q37 -37 37 -90z" /> - <glyph glyph-name="zoom_out" unicode="&#xf010;" horiz-adv-x="1664" -d="M1024 736v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-576q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h576q13 0 22.5 -9.5t9.5 -22.5zM1152 704q0 185 -131.5 316.5t-316.5 131.5t-316.5 -131.5t-131.5 -316.5t131.5 -316.5t316.5 -131.5t316.5 131.5t131.5 316.5z -M1664 -128q0 -53 -37.5 -90.5t-90.5 -37.5q-54 0 -90 38l-343 342q-179 -124 -399 -124q-143 0 -273.5 55.5t-225 150t-150 225t-55.5 273.5t55.5 273.5t150 225t225 150t273.5 55.5t273.5 -55.5t225 -150t150 -225t55.5 -273.5q0 -220 -124 -399l343 -343q37 -37 37 -90z -" /> - <glyph glyph-name="off" unicode="&#xf011;" -d="M1536 640q0 -156 -61 -298t-164 -245t-245 -164t-298 -61t-298 61t-245 164t-164 245t-61 298q0 182 80.5 343t226.5 270q43 32 95.5 25t83.5 -50q32 -42 24.5 -94.5t-49.5 -84.5q-98 -74 -151.5 -181t-53.5 -228q0 -104 40.5 -198.5t109.5 -163.5t163.5 -109.5 -t198.5 -40.5t198.5 40.5t163.5 109.5t109.5 163.5t40.5 198.5q0 121 -53.5 228t-151.5 181q-42 32 -49.5 84.5t24.5 94.5q31 43 84 50t95 -25q146 -109 226.5 -270t80.5 -343zM896 1408v-640q0 -52 -38 -90t-90 -38t-90 38t-38 90v640q0 52 38 90t90 38t90 -38t38 -90z" /> - <glyph glyph-name="signal" unicode="&#xf012;" horiz-adv-x="1792" -d="M256 96v-192q0 -14 -9 -23t-23 -9h-192q-14 0 -23 9t-9 23v192q0 14 9 23t23 9h192q14 0 23 -9t9 -23zM640 224v-320q0 -14 -9 -23t-23 -9h-192q-14 0 -23 9t-9 23v320q0 14 9 23t23 9h192q14 0 23 -9t9 -23zM1024 480v-576q0 -14 -9 -23t-23 -9h-192q-14 0 -23 9t-9 23 -v576q0 14 9 23t23 9h192q14 0 23 -9t9 -23zM1408 864v-960q0 -14 -9 -23t-23 -9h-192q-14 0 -23 9t-9 23v960q0 14 9 23t23 9h192q14 0 23 -9t9 -23zM1792 1376v-1472q0 -14 -9 -23t-23 -9h-192q-14 0 -23 9t-9 23v1472q0 14 9 23t23 9h192q14 0 23 -9t9 -23z" /> - <glyph glyph-name="cog" unicode="&#xf013;" -d="M1024 640q0 106 -75 181t-181 75t-181 -75t-75 -181t75 -181t181 -75t181 75t75 181zM1536 749v-222q0 -12 -8 -23t-20 -13l-185 -28q-19 -54 -39 -91q35 -50 107 -138q10 -12 10 -25t-9 -23q-27 -37 -99 -108t-94 -71q-12 0 -26 9l-138 108q-44 -23 -91 -38 -q-16 -136 -29 -186q-7 -28 -36 -28h-222q-14 0 -24.5 8.5t-11.5 21.5l-28 184q-49 16 -90 37l-141 -107q-10 -9 -25 -9q-14 0 -25 11q-126 114 -165 168q-7 10 -7 23q0 12 8 23q15 21 51 66.5t54 70.5q-27 50 -41 99l-183 27q-13 2 -21 12.5t-8 23.5v222q0 12 8 23t19 13 -l186 28q14 46 39 92q-40 57 -107 138q-10 12 -10 24q0 10 9 23q26 36 98.5 107.5t94.5 71.5q13 0 26 -10l138 -107q44 23 91 38q16 136 29 186q7 28 36 28h222q14 0 24.5 -8.5t11.5 -21.5l28 -184q49 -16 90 -37l142 107q9 9 24 9q13 0 25 -10q129 -119 165 -170q7 -8 7 -22 -q0 -12 -8 -23q-15 -21 -51 -66.5t-54 -70.5q26 -50 41 -98l183 -28q13 -2 21 -12.5t8 -23.5z" /> - <glyph glyph-name="trash" unicode="&#xf014;" horiz-adv-x="1408" -d="M512 800v-576q0 -14 -9 -23t-23 -9h-64q-14 0 -23 9t-9 23v576q0 14 9 23t23 9h64q14 0 23 -9t9 -23zM768 800v-576q0 -14 -9 -23t-23 -9h-64q-14 0 -23 9t-9 23v576q0 14 9 23t23 9h64q14 0 23 -9t9 -23zM1024 800v-576q0 -14 -9 -23t-23 -9h-64q-14 0 -23 9t-9 23v576 -q0 14 9 23t23 9h64q14 0 23 -9t9 -23zM1152 76v948h-896v-948q0 -22 7 -40.5t14.5 -27t10.5 -8.5h832q3 0 10.5 8.5t14.5 27t7 40.5zM480 1152h448l-48 117q-7 9 -17 11h-317q-10 -2 -17 -11zM1408 1120v-64q0 -14 -9 -23t-23 -9h-96v-948q0 -83 -47 -143.5t-113 -60.5h-832 -q-66 0 -113 58.5t-47 141.5v952h-96q-14 0 -23 9t-9 23v64q0 14 9 23t23 9h309l70 167q15 37 54 63t79 26h320q40 0 79 -26t54 -63l70 -167h309q14 0 23 -9t9 -23z" /> - <glyph glyph-name="home" unicode="&#xf015;" horiz-adv-x="1664" -d="M1408 544v-480q0 -26 -19 -45t-45 -19h-384v384h-256v-384h-384q-26 0 -45 19t-19 45v480q0 1 0.5 3t0.5 3l575 474l575 -474q1 -2 1 -6zM1631 613l-62 -74q-8 -9 -21 -11h-3q-13 0 -21 7l-692 577l-692 -577q-12 -8 -24 -7q-13 2 -21 11l-62 74q-8 10 -7 23.5t11 21.5 -l719 599q32 26 76 26t76 -26l244 -204v195q0 14 9 23t23 9h192q14 0 23 -9t9 -23v-408l219 -182q10 -8 11 -21.5t-7 -23.5z" /> - <glyph glyph-name="file_alt" unicode="&#xf016;" -d="M1468 1156q28 -28 48 -76t20 -88v-1152q0 -40 -28 -68t-68 -28h-1344q-40 0 -68 28t-28 68v1600q0 40 28 68t68 28h896q40 0 88 -20t76 -48zM1024 1400v-376h376q-10 29 -22 41l-313 313q-12 12 -41 22zM1408 -128v1024h-416q-40 0 -68 28t-28 68v416h-768v-1536h1280z -" /> - <glyph glyph-name="time" unicode="&#xf017;" -d="M896 992v-448q0 -14 -9 -23t-23 -9h-320q-14 0 -23 9t-9 23v64q0 14 9 23t23 9h224v352q0 14 9 23t23 9h64q14 0 23 -9t9 -23zM1312 640q0 148 -73 273t-198 198t-273 73t-273 -73t-198 -198t-73 -273t73 -273t198 -198t273 -73t273 73t198 198t73 273zM1536 640 -q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" /> - <glyph glyph-name="road" unicode="&#xf018;" horiz-adv-x="1920" -d="M1111 540v4l-24 320q-1 13 -11 22.5t-23 9.5h-186q-13 0 -23 -9.5t-11 -22.5l-24 -320v-4q-1 -12 8 -20t21 -8h244q12 0 21 8t8 20zM1870 73q0 -73 -46 -73h-704q13 0 22 9.5t8 22.5l-20 256q-1 13 -11 22.5t-23 9.5h-272q-13 0 -23 -9.5t-11 -22.5l-20 -256 -q-1 -13 8 -22.5t22 -9.5h-704q-46 0 -46 73q0 54 26 116l417 1044q8 19 26 33t38 14h339q-13 0 -23 -9.5t-11 -22.5l-15 -192q-1 -14 8 -23t22 -9h166q13 0 22 9t8 23l-15 192q-1 13 -11 22.5t-23 9.5h339q20 0 38 -14t26 -33l417 -1044q26 -62 26 -116z" /> - <glyph glyph-name="download_alt" unicode="&#xf019;" horiz-adv-x="1664" -d="M1280 192q0 26 -19 45t-45 19t-45 -19t-19 -45t19 -45t45 -19t45 19t19 45zM1536 192q0 26 -19 45t-45 19t-45 -19t-19 -45t19 -45t45 -19t45 19t19 45zM1664 416v-320q0 -40 -28 -68t-68 -28h-1472q-40 0 -68 28t-28 68v320q0 40 28 68t68 28h465l135 -136 -q58 -56 136 -56t136 56l136 136h464q40 0 68 -28t28 -68zM1339 985q17 -41 -14 -70l-448 -448q-18 -19 -45 -19t-45 19l-448 448q-31 29 -14 70q17 39 59 39h256v448q0 26 19 45t45 19h256q26 0 45 -19t19 -45v-448h256q42 0 59 -39z" /> - <glyph glyph-name="download" unicode="&#xf01a;" -d="M1120 608q0 -12 -10 -24l-319 -319q-11 -9 -23 -9t-23 9l-320 320q-15 16 -7 35q8 20 30 20h192v352q0 14 9 23t23 9h192q14 0 23 -9t9 -23v-352h192q14 0 23 -9t9 -23zM768 1184q-148 0 -273 -73t-198 -198t-73 -273t73 -273t198 -198t273 -73t273 73t198 198t73 273 -t-73 273t-198 198t-273 73zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" /> - <glyph glyph-name="upload" unicode="&#xf01b;" -d="M1118 660q-8 -20 -30 -20h-192v-352q0 -14 -9 -23t-23 -9h-192q-14 0 -23 9t-9 23v352h-192q-14 0 -23 9t-9 23q0 12 10 24l319 319q11 9 23 9t23 -9l320 -320q15 -16 7 -35zM768 1184q-148 0 -273 -73t-198 -198t-73 -273t73 -273t198 -198t273 -73t273 73t198 198 -t73 273t-73 273t-198 198t-273 73zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" /> - <glyph glyph-name="inbox" unicode="&#xf01c;" -d="M1023 576h316q-1 3 -2.5 8.5t-2.5 7.5l-212 496h-708l-212 -496q-1 -3 -2.5 -8.5t-2.5 -7.5h316l95 -192h320zM1536 546v-482q0 -26 -19 -45t-45 -19h-1408q-26 0 -45 19t-19 45v482q0 62 25 123l238 552q10 25 36.5 42t52.5 17h832q26 0 52.5 -17t36.5 -42l238 -552 -q25 -61 25 -123z" /> - <glyph glyph-name="play_circle" unicode="&#xf01d;" -d="M1184 640q0 -37 -32 -55l-544 -320q-15 -9 -32 -9q-16 0 -32 8q-32 19 -32 56v640q0 37 32 56q33 18 64 -1l544 -320q32 -18 32 -55zM1312 640q0 148 -73 273t-198 198t-273 73t-273 -73t-198 -198t-73 -273t73 -273t198 -198t273 -73t273 73t198 198t73 273zM1536 640 -q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" /> - <glyph glyph-name="repeat" unicode="&#xf01e;" -d="M1536 1280v-448q0 -26 -19 -45t-45 -19h-448q-42 0 -59 40q-17 39 14 69l138 138q-148 137 -349 137q-104 0 -198.5 -40.5t-163.5 -109.5t-109.5 -163.5t-40.5 -198.5t40.5 -198.5t109.5 -163.5t163.5 -109.5t198.5 -40.5q119 0 225 52t179 147q7 10 23 12q15 0 25 -9 -l137 -138q9 -8 9.5 -20.5t-7.5 -22.5q-109 -132 -264 -204.5t-327 -72.5q-156 0 -298 61t-245 164t-164 245t-61 298t61 298t164 245t245 164t298 61q147 0 284.5 -55.5t244.5 -156.5l130 129q29 31 70 14q39 -17 39 -59z" /> - <glyph glyph-name="refresh" unicode="&#xf021;" -d="M1511 480q0 -5 -1 -7q-64 -268 -268 -434.5t-478 -166.5q-146 0 -282.5 55t-243.5 157l-129 -129q-19 -19 -45 -19t-45 19t-19 45v448q0 26 19 45t45 19h448q26 0 45 -19t19 -45t-19 -45l-137 -137q71 -66 161 -102t187 -36q134 0 250 65t186 179q11 17 53 117 -q8 23 30 23h192q13 0 22.5 -9.5t9.5 -22.5zM1536 1280v-448q0 -26 -19 -45t-45 -19h-448q-26 0 -45 19t-19 45t19 45l138 138q-148 137 -349 137q-134 0 -250 -65t-186 -179q-11 -17 -53 -117q-8 -23 -30 -23h-199q-13 0 -22.5 9.5t-9.5 22.5v7q65 268 270 434.5t480 166.5 -q146 0 284 -55.5t245 -156.5l130 129q19 19 45 19t45 -19t19 -45z" /> - <glyph glyph-name="list_alt" unicode="&#xf022;" horiz-adv-x="1792" -d="M384 352v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5zM384 608v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5z -M384 864v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5zM1536 352v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-960q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h960q13 0 22.5 -9.5t9.5 -22.5z -M1536 608v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-960q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h960q13 0 22.5 -9.5t9.5 -22.5zM1536 864v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-960q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h960q13 0 22.5 -9.5 -t9.5 -22.5zM1664 160v832q0 13 -9.5 22.5t-22.5 9.5h-1472q-13 0 -22.5 -9.5t-9.5 -22.5v-832q0 -13 9.5 -22.5t22.5 -9.5h1472q13 0 22.5 9.5t9.5 22.5zM1792 1248v-1088q0 -66 -47 -113t-113 -47h-1472q-66 0 -113 47t-47 113v1088q0 66 47 113t113 47h1472q66 0 113 -47 -t47 -113z" /> - <glyph glyph-name="lock" unicode="&#xf023;" horiz-adv-x="1152" -d="M320 768h512v192q0 106 -75 181t-181 75t-181 -75t-75 -181v-192zM1152 672v-576q0 -40 -28 -68t-68 -28h-960q-40 0 -68 28t-28 68v576q0 40 28 68t68 28h32v192q0 184 132 316t316 132t316 -132t132 -316v-192h32q40 0 68 -28t28 -68z" /> - <glyph glyph-name="flag" unicode="&#xf024;" horiz-adv-x="1792" -d="M320 1280q0 -72 -64 -110v-1266q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v1266q-64 38 -64 110q0 53 37.5 90.5t90.5 37.5t90.5 -37.5t37.5 -90.5zM1792 1216v-763q0 -25 -12.5 -38.5t-39.5 -27.5q-215 -116 -369 -116q-61 0 -123.5 22t-108.5 48 -t-115.5 48t-142.5 22q-192 0 -464 -146q-17 -9 -33 -9q-26 0 -45 19t-19 45v742q0 32 31 55q21 14 79 43q236 120 421 120q107 0 200 -29t219 -88q38 -19 88 -19q54 0 117.5 21t110 47t88 47t54.5 21q26 0 45 -19t19 -45z" /> - <glyph glyph-name="headphones" unicode="&#xf025;" horiz-adv-x="1664" -d="M1664 650q0 -166 -60 -314l-20 -49l-185 -33q-22 -83 -90.5 -136.5t-156.5 -53.5v-32q0 -14 -9 -23t-23 -9h-64q-14 0 -23 9t-9 23v576q0 14 9 23t23 9h64q14 0 23 -9t9 -23v-32q71 0 130 -35.5t93 -95.5l68 12q29 95 29 193q0 148 -88 279t-236.5 209t-315.5 78 -t-315.5 -78t-236.5 -209t-88 -279q0 -98 29 -193l68 -12q34 60 93 95.5t130 35.5v32q0 14 9 23t23 9h64q14 0 23 -9t9 -23v-576q0 -14 -9 -23t-23 -9h-64q-14 0 -23 9t-9 23v32q-88 0 -156.5 53.5t-90.5 136.5l-185 33l-20 49q-60 148 -60 314q0 151 67 291t179 242.5 -t266 163.5t320 61t320 -61t266 -163.5t179 -242.5t67 -291z" /> - <glyph glyph-name="volume_off" unicode="&#xf026;" horiz-adv-x="768" -d="M768 1184v-1088q0 -26 -19 -45t-45 -19t-45 19l-333 333h-262q-26 0 -45 19t-19 45v384q0 26 19 45t45 19h262l333 333q19 19 45 19t45 -19t19 -45z" /> - <glyph glyph-name="volume_down" unicode="&#xf027;" horiz-adv-x="1152" -d="M768 1184v-1088q0 -26 -19 -45t-45 -19t-45 19l-333 333h-262q-26 0 -45 19t-19 45v384q0 26 19 45t45 19h262l333 333q19 19 45 19t45 -19t19 -45zM1152 640q0 -76 -42.5 -141.5t-112.5 -93.5q-10 -5 -25 -5q-26 0 -45 18.5t-19 45.5q0 21 12 35.5t29 25t34 23t29 36 -t12 56.5t-12 56.5t-29 36t-34 23t-29 25t-12 35.5q0 27 19 45.5t45 18.5q15 0 25 -5q70 -27 112.5 -93t42.5 -142z" /> - <glyph glyph-name="volume_up" unicode="&#xf028;" horiz-adv-x="1664" -d="M768 1184v-1088q0 -26 -19 -45t-45 -19t-45 19l-333 333h-262q-26 0 -45 19t-19 45v384q0 26 19 45t45 19h262l333 333q19 19 45 19t45 -19t19 -45zM1152 640q0 -76 -42.5 -141.5t-112.5 -93.5q-10 -5 -25 -5q-26 0 -45 18.5t-19 45.5q0 21 12 35.5t29 25t34 23t29 36 -t12 56.5t-12 56.5t-29 36t-34 23t-29 25t-12 35.5q0 27 19 45.5t45 18.5q15 0 25 -5q70 -27 112.5 -93t42.5 -142zM1408 640q0 -153 -85 -282.5t-225 -188.5q-13 -5 -25 -5q-27 0 -46 19t-19 45q0 39 39 59q56 29 76 44q74 54 115.5 135.5t41.5 173.5t-41.5 173.5 -t-115.5 135.5q-20 15 -76 44q-39 20 -39 59q0 26 19 45t45 19q13 0 26 -5q140 -59 225 -188.5t85 -282.5zM1664 640q0 -230 -127 -422.5t-338 -283.5q-13 -5 -26 -5q-26 0 -45 19t-19 45q0 36 39 59q7 4 22.5 10.5t22.5 10.5q46 25 82 51q123 91 192 227t69 289t-69 289 -t-192 227q-36 26 -82 51q-7 4 -22.5 10.5t-22.5 10.5q-39 23 -39 59q0 26 19 45t45 19q13 0 26 -5q211 -91 338 -283.5t127 -422.5z" /> - <glyph glyph-name="qrcode" unicode="&#xf029;" horiz-adv-x="1408" -d="M384 384v-128h-128v128h128zM384 1152v-128h-128v128h128zM1152 1152v-128h-128v128h128zM128 129h384v383h-384v-383zM128 896h384v384h-384v-384zM896 896h384v384h-384v-384zM640 640v-640h-640v640h640zM1152 128v-128h-128v128h128zM1408 128v-128h-128v128h128z -M1408 640v-384h-384v128h-128v-384h-128v640h384v-128h128v128h128zM640 1408v-640h-640v640h640zM1408 1408v-640h-640v640h640z" /> - <glyph glyph-name="barcode" unicode="&#xf02a;" horiz-adv-x="1792" -d="M63 0h-63v1408h63v-1408zM126 1h-32v1407h32v-1407zM220 1h-31v1407h31v-1407zM377 1h-31v1407h31v-1407zM534 1h-62v1407h62v-1407zM660 1h-31v1407h31v-1407zM723 1h-31v1407h31v-1407zM786 1h-31v1407h31v-1407zM943 1h-63v1407h63v-1407zM1100 1h-63v1407h63v-1407z -M1226 1h-63v1407h63v-1407zM1352 1h-63v1407h63v-1407zM1446 1h-63v1407h63v-1407zM1635 1h-94v1407h94v-1407zM1698 1h-32v1407h32v-1407zM1792 0h-63v1408h63v-1408z" /> - <glyph glyph-name="tag" unicode="&#xf02b;" -d="M448 1088q0 53 -37.5 90.5t-90.5 37.5t-90.5 -37.5t-37.5 -90.5t37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5zM1515 512q0 -53 -37 -90l-491 -492q-39 -37 -91 -37q-53 0 -90 37l-715 716q-38 37 -64.5 101t-26.5 117v416q0 52 38 90t90 38h416q53 0 117 -26.5t102 -64.5 -l715 -714q37 -39 37 -91z" /> - <glyph glyph-name="tags" unicode="&#xf02c;" horiz-adv-x="1920" -d="M448 1088q0 53 -37.5 90.5t-90.5 37.5t-90.5 -37.5t-37.5 -90.5t37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5zM1515 512q0 -53 -37 -90l-491 -492q-39 -37 -91 -37q-53 0 -90 37l-715 716q-38 37 -64.5 101t-26.5 117v416q0 52 38 90t90 38h416q53 0 117 -26.5t102 -64.5 -l715 -714q37 -39 37 -91zM1899 512q0 -53 -37 -90l-491 -492q-39 -37 -91 -37q-36 0 -59 14t-53 45l470 470q37 37 37 90q0 52 -37 91l-715 714q-38 38 -102 64.5t-117 26.5h224q53 0 117 -26.5t102 -64.5l715 -714q37 -39 37 -91z" /> - <glyph glyph-name="book" unicode="&#xf02d;" horiz-adv-x="1664" -d="M1639 1058q40 -57 18 -129l-275 -906q-19 -64 -76.5 -107.5t-122.5 -43.5h-923q-77 0 -148.5 53.5t-99.5 131.5q-24 67 -2 127q0 4 3 27t4 37q1 8 -3 21.5t-3 19.5q2 11 8 21t16.5 23.5t16.5 23.5q23 38 45 91.5t30 91.5q3 10 0.5 30t-0.5 28q3 11 17 28t17 23 -q21 36 42 92t25 90q1 9 -2.5 32t0.5 28q4 13 22 30.5t22 22.5q19 26 42.5 84.5t27.5 96.5q1 8 -3 25.5t-2 26.5q2 8 9 18t18 23t17 21q8 12 16.5 30.5t15 35t16 36t19.5 32t26.5 23.5t36 11.5t47.5 -5.5l-1 -3q38 9 51 9h761q74 0 114 -56t18 -130l-274 -906 -q-36 -119 -71.5 -153.5t-128.5 -34.5h-869q-27 0 -38 -15q-11 -16 -1 -43q24 -70 144 -70h923q29 0 56 15.5t35 41.5l300 987q7 22 5 57q38 -15 59 -43zM575 1056q-4 -13 2 -22.5t20 -9.5h608q13 0 25.5 9.5t16.5 22.5l21 64q4 13 -2 22.5t-20 9.5h-608q-13 0 -25.5 -9.5 -t-16.5 -22.5zM492 800q-4 -13 2 -22.5t20 -9.5h608q13 0 25.5 9.5t16.5 22.5l21 64q4 13 -2 22.5t-20 9.5h-608q-13 0 -25.5 -9.5t-16.5 -22.5z" /> - <glyph glyph-name="bookmark" unicode="&#xf02e;" horiz-adv-x="1280" -d="M1164 1408q23 0 44 -9q33 -13 52.5 -41t19.5 -62v-1289q0 -34 -19.5 -62t-52.5 -41q-19 -8 -44 -8q-48 0 -83 32l-441 424l-441 -424q-36 -33 -83 -33q-23 0 -44 9q-33 13 -52.5 41t-19.5 62v1289q0 34 19.5 62t52.5 41q21 9 44 9h1048z" /> - <glyph glyph-name="print" unicode="&#xf02f;" horiz-adv-x="1664" -d="M384 0h896v256h-896v-256zM384 640h896v384h-160q-40 0 -68 28t-28 68v160h-640v-640zM1536 576q0 26 -19 45t-45 19t-45 -19t-19 -45t19 -45t45 -19t45 19t19 45zM1664 576v-416q0 -13 -9.5 -22.5t-22.5 -9.5h-224v-160q0 -40 -28 -68t-68 -28h-960q-40 0 -68 28t-28 68 -v160h-224q-13 0 -22.5 9.5t-9.5 22.5v416q0 79 56.5 135.5t135.5 56.5h64v544q0 40 28 68t68 28h672q40 0 88 -20t76 -48l152 -152q28 -28 48 -76t20 -88v-256h64q79 0 135.5 -56.5t56.5 -135.5z" /> - <glyph glyph-name="camera" unicode="&#xf030;" horiz-adv-x="1920" -d="M960 864q119 0 203.5 -84.5t84.5 -203.5t-84.5 -203.5t-203.5 -84.5t-203.5 84.5t-84.5 203.5t84.5 203.5t203.5 84.5zM1664 1280q106 0 181 -75t75 -181v-896q0 -106 -75 -181t-181 -75h-1408q-106 0 -181 75t-75 181v896q0 106 75 181t181 75h224l51 136 -q19 49 69.5 84.5t103.5 35.5h512q53 0 103.5 -35.5t69.5 -84.5l51 -136h224zM960 128q185 0 316.5 131.5t131.5 316.5t-131.5 316.5t-316.5 131.5t-316.5 -131.5t-131.5 -316.5t131.5 -316.5t316.5 -131.5z" /> - <glyph glyph-name="font" unicode="&#xf031;" horiz-adv-x="1664" -d="M725 977l-170 -450q33 0 136.5 -2t160.5 -2q19 0 57 2q-87 253 -184 452zM0 -128l2 79q23 7 56 12.5t57 10.5t49.5 14.5t44.5 29t31 50.5l237 616l280 724h75h53q8 -14 11 -21l205 -480q33 -78 106 -257.5t114 -274.5q15 -34 58 -144.5t72 -168.5q20 -45 35 -57 -q19 -15 88 -29.5t84 -20.5q6 -38 6 -57q0 -5 -0.5 -13.5t-0.5 -12.5q-63 0 -190 8t-191 8q-76 0 -215 -7t-178 -8q0 43 4 78l131 28q1 0 12.5 2.5t15.5 3.5t14.5 4.5t15 6.5t11 8t9 11t2.5 14q0 16 -31 96.5t-72 177.5t-42 100l-450 2q-26 -58 -76.5 -195.5t-50.5 -162.5 -q0 -22 14 -37.5t43.5 -24.5t48.5 -13.5t57 -8.5t41 -4q1 -19 1 -58q0 -9 -2 -27q-58 0 -174.5 10t-174.5 10q-8 0 -26.5 -4t-21.5 -4q-80 -14 -188 -14z" /> - <glyph glyph-name="bold" unicode="&#xf032;" horiz-adv-x="1408" -d="M555 15q74 -32 140 -32q376 0 376 335q0 114 -41 180q-27 44 -61.5 74t-67.5 46.5t-80.5 25t-84 10.5t-94.5 2q-73 0 -101 -10q0 -53 -0.5 -159t-0.5 -158q0 -8 -1 -67.5t-0.5 -96.5t4.5 -83.5t12 -66.5zM541 761q42 -7 109 -7q82 0 143 13t110 44.5t74.5 89.5t25.5 142 -q0 70 -29 122.5t-79 82t-108 43.5t-124 14q-50 0 -130 -13q0 -50 4 -151t4 -152q0 -27 -0.5 -80t-0.5 -79q0 -46 1 -69zM0 -128l2 94q15 4 85 16t106 27q7 12 12.5 27t8.5 33.5t5.5 32.5t3 37.5t0.5 34v35.5v30q0 982 -22 1025q-4 8 -22 14.5t-44.5 11t-49.5 7t-48.5 4.5 -t-30.5 3l-4 83q98 2 340 11.5t373 9.5q23 0 68 -0.5t68 -0.5q70 0 136.5 -13t128.5 -42t108 -71t74 -104.5t28 -137.5q0 -52 -16.5 -95.5t-39 -72t-64.5 -57.5t-73 -45t-84 -40q154 -35 256.5 -134t102.5 -248q0 -100 -35 -179.5t-93.5 -130.5t-138 -85.5t-163.5 -48.5 -t-176 -14q-44 0 -132 3t-132 3q-106 0 -307 -11t-231 -12z" /> - <glyph glyph-name="italic" unicode="&#xf033;" horiz-adv-x="1024" -d="M0 -126l17 85q22 7 61.5 16.5t72 19t59.5 23.5q28 35 41 101q1 7 62 289t114 543.5t52 296.5v25q-24 13 -54.5 18.5t-69.5 8t-58 5.5l19 103q33 -2 120 -6.5t149.5 -7t120.5 -2.5q48 0 98.5 2.5t121 7t98.5 6.5q-5 -39 -19 -89q-30 -10 -101.5 -28.5t-108.5 -33.5 -q-8 -19 -14 -42.5t-9 -40t-7.5 -45.5t-6.5 -42q-27 -148 -87.5 -419.5t-77.5 -355.5q-2 -9 -13 -58t-20 -90t-16 -83.5t-6 -57.5l1 -18q17 -4 185 -31q-3 -44 -16 -99q-11 0 -32.5 -1.5t-32.5 -1.5q-29 0 -87 10t-86 10q-138 2 -206 2q-51 0 -143 -9t-121 -11z" /> - <glyph glyph-name="text_height" unicode="&#xf034;" horiz-adv-x="1792" -d="M1744 128q33 0 42 -18.5t-11 -44.5l-126 -162q-20 -26 -49 -26t-49 26l-126 162q-20 26 -11 44.5t42 18.5h80v1024h-80q-33 0 -42 18.5t11 44.5l126 162q20 26 49 26t49 -26l126 -162q20 -26 11 -44.5t-42 -18.5h-80v-1024h80zM81 1407l54 -27q12 -5 211 -5q44 0 132 2 -t132 2q36 0 107.5 -0.5t107.5 -0.5h293q6 0 21 -0.5t20.5 0t16 3t17.5 9t15 17.5l42 1q4 0 14 -0.5t14 -0.5q2 -112 2 -336q0 -80 -5 -109q-39 -14 -68 -18q-25 44 -54 128q-3 9 -11 48t-14.5 73.5t-7.5 35.5q-6 8 -12 12.5t-15.5 6t-13 2.5t-18 0.5t-16.5 -0.5 -q-17 0 -66.5 0.5t-74.5 0.5t-64 -2t-71 -6q-9 -81 -8 -136q0 -94 2 -388t2 -455q0 -16 -2.5 -71.5t0 -91.5t12.5 -69q40 -21 124 -42.5t120 -37.5q5 -40 5 -50q0 -14 -3 -29l-34 -1q-76 -2 -218 8t-207 10q-50 0 -151 -9t-152 -9q-3 51 -3 52v9q17 27 61.5 43t98.5 29t78 27 -q19 42 19 383q0 101 -3 303t-3 303v117q0 2 0.5 15.5t0.5 25t-1 25.5t-3 24t-5 14q-11 12 -162 12q-33 0 -93 -12t-80 -26q-19 -13 -34 -72.5t-31.5 -111t-42.5 -53.5q-42 26 -56 44v383z" /> - <glyph glyph-name="text_width" unicode="&#xf035;" -d="M81 1407l54 -27q12 -5 211 -5q44 0 132 2t132 2q70 0 246.5 1t304.5 0.5t247 -4.5q33 -1 56 31l42 1q4 0 14 -0.5t14 -0.5q2 -112 2 -336q0 -80 -5 -109q-39 -14 -68 -18q-25 44 -54 128q-3 9 -11 47.5t-15 73.5t-7 36q-10 13 -27 19q-5 2 -66 2q-30 0 -93 1t-103 1 -t-94 -2t-96 -7q-9 -81 -8 -136l1 -152v52q0 -55 1 -154t1.5 -180t0.5 -153q0 -16 -2.5 -71.5t0 -91.5t12.5 -69q40 -21 124 -42.5t120 -37.5q5 -40 5 -50q0 -14 -3 -29l-34 -1q-76 -2 -218 8t-207 10q-50 0 -151 -9t-152 -9q-3 51 -3 52v9q17 27 61.5 43t98.5 29t78 27 -q7 16 11.5 74t6 145.5t1.5 155t-0.5 153.5t-0.5 89q0 7 -2.5 21.5t-2.5 22.5q0 7 0.5 44t1 73t0 76.5t-3 67.5t-6.5 32q-11 12 -162 12q-41 0 -163 -13.5t-138 -24.5q-19 -12 -34 -71.5t-31.5 -111.5t-42.5 -54q-42 26 -56 44v383zM1310 125q12 0 42 -19.5t57.5 -41.5 -t59.5 -49t36 -30q26 -21 26 -49t-26 -49q-4 -3 -36 -30t-59.5 -49t-57.5 -41.5t-42 -19.5q-13 0 -20.5 10.5t-10 28.5t-2.5 33.5t1.5 33t1.5 19.5h-1024q0 -2 1.5 -19.5t1.5 -33t-2.5 -33.5t-10 -28.5t-20.5 -10.5q-12 0 -42 19.5t-57.5 41.5t-59.5 49t-36 30q-26 21 -26 49 -t26 49q4 3 36 30t59.5 49t57.5 41.5t42 19.5q13 0 20.5 -10.5t10 -28.5t2.5 -33.5t-1.5 -33t-1.5 -19.5h1024q0 2 -1.5 19.5t-1.5 33t2.5 33.5t10 28.5t20.5 10.5z" /> - <glyph glyph-name="align_left" unicode="&#xf036;" horiz-adv-x="1792" -d="M1792 192v-128q0 -26 -19 -45t-45 -19h-1664q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h1664q26 0 45 -19t19 -45zM1408 576v-128q0 -26 -19 -45t-45 -19h-1280q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h1280q26 0 45 -19t19 -45zM1664 960v-128q0 -26 -19 -45 -t-45 -19h-1536q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h1536q26 0 45 -19t19 -45zM1280 1344v-128q0 -26 -19 -45t-45 -19h-1152q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h1152q26 0 45 -19t19 -45z" /> - <glyph glyph-name="align_center" unicode="&#xf037;" horiz-adv-x="1792" -d="M1792 192v-128q0 -26 -19 -45t-45 -19h-1664q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h1664q26 0 45 -19t19 -45zM1408 576v-128q0 -26 -19 -45t-45 -19h-896q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h896q26 0 45 -19t19 -45zM1664 960v-128q0 -26 -19 -45t-45 -19 -h-1408q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h1408q26 0 45 -19t19 -45zM1280 1344v-128q0 -26 -19 -45t-45 -19h-640q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h640q26 0 45 -19t19 -45z" /> - <glyph glyph-name="align_right" unicode="&#xf038;" horiz-adv-x="1792" -d="M1792 192v-128q0 -26 -19 -45t-45 -19h-1664q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h1664q26 0 45 -19t19 -45zM1792 576v-128q0 -26 -19 -45t-45 -19h-1280q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h1280q26 0 45 -19t19 -45zM1792 960v-128q0 -26 -19 -45 -t-45 -19h-1536q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h1536q26 0 45 -19t19 -45zM1792 1344v-128q0 -26 -19 -45t-45 -19h-1152q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h1152q26 0 45 -19t19 -45z" /> - <glyph glyph-name="align_justify" unicode="&#xf039;" horiz-adv-x="1792" -d="M1792 192v-128q0 -26 -19 -45t-45 -19h-1664q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h1664q26 0 45 -19t19 -45zM1792 576v-128q0 -26 -19 -45t-45 -19h-1664q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h1664q26 0 45 -19t19 -45zM1792 960v-128q0 -26 -19 -45 -t-45 -19h-1664q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h1664q26 0 45 -19t19 -45zM1792 1344v-128q0 -26 -19 -45t-45 -19h-1664q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h1664q26 0 45 -19t19 -45z" /> - <glyph glyph-name="list" unicode="&#xf03a;" horiz-adv-x="1792" -d="M256 224v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-192q-13 0 -22.5 9.5t-9.5 22.5v192q0 13 9.5 22.5t22.5 9.5h192q13 0 22.5 -9.5t9.5 -22.5zM256 608v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-192q-13 0 -22.5 9.5t-9.5 22.5v192q0 13 9.5 22.5t22.5 9.5h192q13 0 22.5 -9.5 -t9.5 -22.5zM256 992v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-192q-13 0 -22.5 9.5t-9.5 22.5v192q0 13 9.5 22.5t22.5 9.5h192q13 0 22.5 -9.5t9.5 -22.5zM1792 224v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-1344q-13 0 -22.5 9.5t-9.5 22.5v192q0 13 9.5 22.5t22.5 9.5h1344 -q13 0 22.5 -9.5t9.5 -22.5zM256 1376v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-192q-13 0 -22.5 9.5t-9.5 22.5v192q0 13 9.5 22.5t22.5 9.5h192q13 0 22.5 -9.5t9.5 -22.5zM1792 608v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-1344q-13 0 -22.5 9.5t-9.5 22.5v192q0 13 9.5 22.5 -t22.5 9.5h1344q13 0 22.5 -9.5t9.5 -22.5zM1792 992v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-1344q-13 0 -22.5 9.5t-9.5 22.5v192q0 13 9.5 22.5t22.5 9.5h1344q13 0 22.5 -9.5t9.5 -22.5zM1792 1376v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-1344q-13 0 -22.5 9.5t-9.5 22.5v192 -q0 13 9.5 22.5t22.5 9.5h1344q13 0 22.5 -9.5t9.5 -22.5z" /> - <glyph glyph-name="indent_left" unicode="&#xf03b;" horiz-adv-x="1792" -d="M384 992v-576q0 -13 -9.5 -22.5t-22.5 -9.5q-14 0 -23 9l-288 288q-9 9 -9 23t9 23l288 288q9 9 23 9q13 0 22.5 -9.5t9.5 -22.5zM1792 224v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-1728q-13 0 -22.5 9.5t-9.5 22.5v192q0 13 9.5 22.5t22.5 9.5h1728q13 0 22.5 -9.5 -t9.5 -22.5zM1792 608v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-1088q-13 0 -22.5 9.5t-9.5 22.5v192q0 13 9.5 22.5t22.5 9.5h1088q13 0 22.5 -9.5t9.5 -22.5zM1792 992v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-1088q-13 0 -22.5 9.5t-9.5 22.5v192q0 13 9.5 22.5t22.5 9.5h1088 -q13 0 22.5 -9.5t9.5 -22.5zM1792 1376v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-1728q-13 0 -22.5 9.5t-9.5 22.5v192q0 13 9.5 22.5t22.5 9.5h1728q13 0 22.5 -9.5t9.5 -22.5z" /> - <glyph glyph-name="indent_right" unicode="&#xf03c;" horiz-adv-x="1792" -d="M352 704q0 -14 -9 -23l-288 -288q-9 -9 -23 -9q-13 0 -22.5 9.5t-9.5 22.5v576q0 13 9.5 22.5t22.5 9.5q14 0 23 -9l288 -288q9 -9 9 -23zM1792 224v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-1728q-13 0 -22.5 9.5t-9.5 22.5v192q0 13 9.5 22.5t22.5 9.5h1728q13 0 22.5 -9.5 -t9.5 -22.5zM1792 608v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-1088q-13 0 -22.5 9.5t-9.5 22.5v192q0 13 9.5 22.5t22.5 9.5h1088q13 0 22.5 -9.5t9.5 -22.5zM1792 992v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-1088q-13 0 -22.5 9.5t-9.5 22.5v192q0 13 9.5 22.5t22.5 9.5h1088 -q13 0 22.5 -9.5t9.5 -22.5zM1792 1376v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-1728q-13 0 -22.5 9.5t-9.5 22.5v192q0 13 9.5 22.5t22.5 9.5h1728q13 0 22.5 -9.5t9.5 -22.5z" /> - <glyph glyph-name="facetime_video" unicode="&#xf03d;" horiz-adv-x="1792" -d="M1792 1184v-1088q0 -42 -39 -59q-13 -5 -25 -5q-27 0 -45 19l-403 403v-166q0 -119 -84.5 -203.5t-203.5 -84.5h-704q-119 0 -203.5 84.5t-84.5 203.5v704q0 119 84.5 203.5t203.5 84.5h704q119 0 203.5 -84.5t84.5 -203.5v-165l403 402q18 19 45 19q12 0 25 -5 -q39 -17 39 -59z" /> - <glyph glyph-name="picture" unicode="&#xf03e;" horiz-adv-x="1920" -d="M640 960q0 -80 -56 -136t-136 -56t-136 56t-56 136t56 136t136 56t136 -56t56 -136zM1664 576v-448h-1408v192l320 320l160 -160l512 512zM1760 1280h-1600q-13 0 -22.5 -9.5t-9.5 -22.5v-1216q0 -13 9.5 -22.5t22.5 -9.5h1600q13 0 22.5 9.5t9.5 22.5v1216 -q0 13 -9.5 22.5t-22.5 9.5zM1920 1248v-1216q0 -66 -47 -113t-113 -47h-1600q-66 0 -113 47t-47 113v1216q0 66 47 113t113 47h1600q66 0 113 -47t47 -113z" /> - <glyph glyph-name="pencil" unicode="&#xf040;" -d="M363 0l91 91l-235 235l-91 -91v-107h128v-128h107zM886 928q0 22 -22 22q-10 0 -17 -7l-542 -542q-7 -7 -7 -17q0 -22 22 -22q10 0 17 7l542 542q7 7 7 17zM832 1120l416 -416l-832 -832h-416v416zM1515 1024q0 -53 -37 -90l-166 -166l-416 416l166 165q36 38 90 38 -q53 0 91 -38l235 -234q37 -39 37 -91z" /> - <glyph glyph-name="map_marker" unicode="&#xf041;" horiz-adv-x="1024" -d="M768 896q0 106 -75 181t-181 75t-181 -75t-75 -181t75 -181t181 -75t181 75t75 181zM1024 896q0 -109 -33 -179l-364 -774q-16 -33 -47.5 -52t-67.5 -19t-67.5 19t-46.5 52l-365 774q-33 70 -33 179q0 212 150 362t362 150t362 -150t150 -362z" /> - <glyph glyph-name="adjust" unicode="&#xf042;" -d="M768 96v1088q-148 0 -273 -73t-198 -198t-73 -273t73 -273t198 -198t273 -73zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" /> - <glyph glyph-name="tint" unicode="&#xf043;" horiz-adv-x="1024" -d="M512 384q0 36 -20 69q-1 1 -15.5 22.5t-25.5 38t-25 44t-21 50.5q-4 16 -21 16t-21 -16q-7 -23 -21 -50.5t-25 -44t-25.5 -38t-15.5 -22.5q-20 -33 -20 -69q0 -53 37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5zM1024 512q0 -212 -150 -362t-362 -150t-362 150t-150 362 -q0 145 81 275q6 9 62.5 90.5t101 151t99.5 178t83 201.5q9 30 34 47t51 17t51.5 -17t33.5 -47q28 -93 83 -201.5t99.5 -178t101 -151t62.5 -90.5q81 -127 81 -275z" /> - <glyph glyph-name="edit" unicode="&#xf044;" horiz-adv-x="1792" -d="M888 352l116 116l-152 152l-116 -116v-56h96v-96h56zM1328 1072q-16 16 -33 -1l-350 -350q-17 -17 -1 -33t33 1l350 350q17 17 1 33zM1408 478v-190q0 -119 -84.5 -203.5t-203.5 -84.5h-832q-119 0 -203.5 84.5t-84.5 203.5v832q0 119 84.5 203.5t203.5 84.5h832 -q63 0 117 -25q15 -7 18 -23q3 -17 -9 -29l-49 -49q-14 -14 -32 -8q-23 6 -45 6h-832q-66 0 -113 -47t-47 -113v-832q0 -66 47 -113t113 -47h832q66 0 113 47t47 113v126q0 13 9 22l64 64q15 15 35 7t20 -29zM1312 1216l288 -288l-672 -672h-288v288zM1756 1084l-92 -92 -l-288 288l92 92q28 28 68 28t68 -28l152 -152q28 -28 28 -68t-28 -68z" /> - <glyph glyph-name="share" unicode="&#xf045;" horiz-adv-x="1664" -d="M1408 547v-259q0 -119 -84.5 -203.5t-203.5 -84.5h-832q-119 0 -203.5 84.5t-84.5 203.5v832q0 119 84.5 203.5t203.5 84.5h255v0q13 0 22.5 -9.5t9.5 -22.5q0 -27 -26 -32q-77 -26 -133 -60q-10 -4 -16 -4h-112q-66 0 -113 -47t-47 -113v-832q0 -66 47 -113t113 -47h832 -q66 0 113 47t47 113v214q0 19 18 29q28 13 54 37q16 16 35 8q21 -9 21 -29zM1645 1043l-384 -384q-18 -19 -45 -19q-12 0 -25 5q-39 17 -39 59v192h-160q-323 0 -438 -131q-119 -137 -74 -473q3 -23 -20 -34q-8 -2 -12 -2q-16 0 -26 13q-10 14 -21 31t-39.5 68.5t-49.5 99.5 -t-38.5 114t-17.5 122q0 49 3.5 91t14 90t28 88t47 81.5t68.5 74t94.5 61.5t124.5 48.5t159.5 30.5t196.5 11h160v192q0 42 39 59q13 5 25 5q26 0 45 -19l384 -384q19 -19 19 -45t-19 -45z" /> - <glyph glyph-name="check" unicode="&#xf046;" horiz-adv-x="1664" -d="M1408 606v-318q0 -119 -84.5 -203.5t-203.5 -84.5h-832q-119 0 -203.5 84.5t-84.5 203.5v832q0 119 84.5 203.5t203.5 84.5h832q63 0 117 -25q15 -7 18 -23q3 -17 -9 -29l-49 -49q-10 -10 -23 -10q-3 0 -9 2q-23 6 -45 6h-832q-66 0 -113 -47t-47 -113v-832 -q0 -66 47 -113t113 -47h832q66 0 113 47t47 113v254q0 13 9 22l64 64q10 10 23 10q6 0 12 -3q20 -8 20 -29zM1639 1095l-814 -814q-24 -24 -57 -24t-57 24l-430 430q-24 24 -24 57t24 57l110 110q24 24 57 24t57 -24l263 -263l647 647q24 24 57 24t57 -24l110 -110 -q24 -24 24 -57t-24 -57z" /> - <glyph glyph-name="move" unicode="&#xf047;" horiz-adv-x="1792" -d="M1792 640q0 -26 -19 -45l-256 -256q-19 -19 -45 -19t-45 19t-19 45v128h-384v-384h128q26 0 45 -19t19 -45t-19 -45l-256 -256q-19 -19 -45 -19t-45 19l-256 256q-19 19 -19 45t19 45t45 19h128v384h-384v-128q0 -26 -19 -45t-45 -19t-45 19l-256 256q-19 19 -19 45 -t19 45l256 256q19 19 45 19t45 -19t19 -45v-128h384v384h-128q-26 0 -45 19t-19 45t19 45l256 256q19 19 45 19t45 -19l256 -256q19 -19 19 -45t-19 -45t-45 -19h-128v-384h384v128q0 26 19 45t45 19t45 -19l256 -256q19 -19 19 -45z" /> - <glyph glyph-name="step_backward" unicode="&#xf048;" horiz-adv-x="1024" -d="M979 1395q19 19 32 13t13 -32v-1472q0 -26 -13 -32t-32 13l-710 710q-9 9 -13 19v-678q0 -26 -19 -45t-45 -19h-128q-26 0 -45 19t-19 45v1408q0 26 19 45t45 19h128q26 0 45 -19t19 -45v-678q4 10 13 19z" /> - <glyph glyph-name="fast_backward" unicode="&#xf049;" horiz-adv-x="1792" -d="M1747 1395q19 19 32 13t13 -32v-1472q0 -26 -13 -32t-32 13l-710 710q-9 9 -13 19v-710q0 -26 -13 -32t-32 13l-710 710q-9 9 -13 19v-678q0 -26 -19 -45t-45 -19h-128q-26 0 -45 19t-19 45v1408q0 26 19 45t45 19h128q26 0 45 -19t19 -45v-678q4 10 13 19l710 710 -q19 19 32 13t13 -32v-710q4 10 13 19z" /> - <glyph glyph-name="backward" unicode="&#xf04a;" horiz-adv-x="1664" -d="M1619 1395q19 19 32 13t13 -32v-1472q0 -26 -13 -32t-32 13l-710 710q-9 9 -13 19v-710q0 -26 -13 -32t-32 13l-710 710q-19 19 -19 45t19 45l710 710q19 19 32 13t13 -32v-710q4 10 13 19z" /> - <glyph glyph-name="play" unicode="&#xf04b;" horiz-adv-x="1408" -d="M1384 609l-1328 -738q-23 -13 -39.5 -3t-16.5 36v1472q0 26 16.5 36t39.5 -3l1328 -738q23 -13 23 -31t-23 -31z" /> - <glyph glyph-name="pause" unicode="&#xf04c;" -d="M1536 1344v-1408q0 -26 -19 -45t-45 -19h-512q-26 0 -45 19t-19 45v1408q0 26 19 45t45 19h512q26 0 45 -19t19 -45zM640 1344v-1408q0 -26 -19 -45t-45 -19h-512q-26 0 -45 19t-19 45v1408q0 26 19 45t45 19h512q26 0 45 -19t19 -45z" /> - <glyph glyph-name="stop" unicode="&#xf04d;" -d="M1536 1344v-1408q0 -26 -19 -45t-45 -19h-1408q-26 0 -45 19t-19 45v1408q0 26 19 45t45 19h1408q26 0 45 -19t19 -45z" /> - <glyph glyph-name="forward" unicode="&#xf04e;" horiz-adv-x="1664" -d="M45 -115q-19 -19 -32 -13t-13 32v1472q0 26 13 32t32 -13l710 -710q9 -9 13 -19v710q0 26 13 32t32 -13l710 -710q19 -19 19 -45t-19 -45l-710 -710q-19 -19 -32 -13t-13 32v710q-4 -10 -13 -19z" /> - <glyph glyph-name="fast_forward" unicode="&#xf050;" horiz-adv-x="1792" -d="M45 -115q-19 -19 -32 -13t-13 32v1472q0 26 13 32t32 -13l710 -710q9 -9 13 -19v710q0 26 13 32t32 -13l710 -710q9 -9 13 -19v678q0 26 19 45t45 19h128q26 0 45 -19t19 -45v-1408q0 -26 -19 -45t-45 -19h-128q-26 0 -45 19t-19 45v678q-4 -10 -13 -19l-710 -710 -q-19 -19 -32 -13t-13 32v710q-4 -10 -13 -19z" /> - <glyph glyph-name="step_forward" unicode="&#xf051;" horiz-adv-x="1024" -d="M45 -115q-19 -19 -32 -13t-13 32v1472q0 26 13 32t32 -13l710 -710q9 -9 13 -19v678q0 26 19 45t45 19h128q26 0 45 -19t19 -45v-1408q0 -26 -19 -45t-45 -19h-128q-26 0 -45 19t-19 45v678q-4 -10 -13 -19z" /> - <glyph glyph-name="eject" unicode="&#xf052;" horiz-adv-x="1538" -d="M14 557l710 710q19 19 45 19t45 -19l710 -710q19 -19 13 -32t-32 -13h-1472q-26 0 -32 13t13 32zM1473 0h-1408q-26 0 -45 19t-19 45v256q0 26 19 45t45 19h1408q26 0 45 -19t19 -45v-256q0 -26 -19 -45t-45 -19z" /> - <glyph glyph-name="chevron_left" unicode="&#xf053;" horiz-adv-x="1280" -d="M1171 1235l-531 -531l531 -531q19 -19 19 -45t-19 -45l-166 -166q-19 -19 -45 -19t-45 19l-742 742q-19 19 -19 45t19 45l742 742q19 19 45 19t45 -19l166 -166q19 -19 19 -45t-19 -45z" /> - <glyph glyph-name="chevron_right" unicode="&#xf054;" horiz-adv-x="1280" -d="M1107 659l-742 -742q-19 -19 -45 -19t-45 19l-166 166q-19 19 -19 45t19 45l531 531l-531 531q-19 19 -19 45t19 45l166 166q19 19 45 19t45 -19l742 -742q19 -19 19 -45t-19 -45z" /> - <glyph glyph-name="plus_sign" unicode="&#xf055;" -d="M1216 576v128q0 26 -19 45t-45 19h-256v256q0 26 -19 45t-45 19h-128q-26 0 -45 -19t-19 -45v-256h-256q-26 0 -45 -19t-19 -45v-128q0 -26 19 -45t45 -19h256v-256q0 -26 19 -45t45 -19h128q26 0 45 19t19 45v256h256q26 0 45 19t19 45zM1536 640q0 -209 -103 -385.5 -t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" /> - <glyph glyph-name="minus_sign" unicode="&#xf056;" -d="M1216 576v128q0 26 -19 45t-45 19h-768q-26 0 -45 -19t-19 -45v-128q0 -26 19 -45t45 -19h768q26 0 45 19t19 45zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5 -t103 -385.5z" /> - <glyph glyph-name="remove_sign" unicode="&#xf057;" -d="M1149 414q0 26 -19 45l-181 181l181 181q19 19 19 45q0 27 -19 46l-90 90q-19 19 -46 19q-26 0 -45 -19l-181 -181l-181 181q-19 19 -45 19q-27 0 -46 -19l-90 -90q-19 -19 -19 -46q0 -26 19 -45l181 -181l-181 -181q-19 -19 -19 -45q0 -27 19 -46l90 -90q19 -19 46 -19 -q26 0 45 19l181 181l181 -181q19 -19 45 -19q27 0 46 19l90 90q19 19 19 46zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" /> - <glyph glyph-name="ok_sign" unicode="&#xf058;" -d="M1284 802q0 28 -18 46l-91 90q-19 19 -45 19t-45 -19l-408 -407l-226 226q-19 19 -45 19t-45 -19l-91 -90q-18 -18 -18 -46q0 -27 18 -45l362 -362q19 -19 45 -19q27 0 46 19l543 543q18 18 18 45zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103 -t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" /> - <glyph glyph-name="question_sign" unicode="&#xf059;" -d="M896 160v192q0 14 -9 23t-23 9h-192q-14 0 -23 -9t-9 -23v-192q0 -14 9 -23t23 -9h192q14 0 23 9t9 23zM1152 832q0 88 -55.5 163t-138.5 116t-170 41q-243 0 -371 -213q-15 -24 8 -42l132 -100q7 -6 19 -6q16 0 25 12q53 68 86 92q34 24 86 24q48 0 85.5 -26t37.5 -59 -q0 -38 -20 -61t-68 -45q-63 -28 -115.5 -86.5t-52.5 -125.5v-36q0 -14 9 -23t23 -9h192q14 0 23 9t9 23q0 19 21.5 49.5t54.5 49.5q32 18 49 28.5t46 35t44.5 48t28 60.5t12.5 81zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5 -t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" /> - <glyph glyph-name="info_sign" unicode="&#xf05a;" -d="M1024 160v160q0 14 -9 23t-23 9h-96v512q0 14 -9 23t-23 9h-320q-14 0 -23 -9t-9 -23v-160q0 -14 9 -23t23 -9h96v-320h-96q-14 0 -23 -9t-9 -23v-160q0 -14 9 -23t23 -9h448q14 0 23 9t9 23zM896 1056v160q0 14 -9 23t-23 9h-192q-14 0 -23 -9t-9 -23v-160q0 -14 9 -23 -t23 -9h192q14 0 23 9t9 23zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" /> - <glyph glyph-name="screenshot" unicode="&#xf05b;" -d="M1197 512h-109q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h109q-32 108 -112.5 188.5t-188.5 112.5v-109q0 -26 -19 -45t-45 -19h-128q-26 0 -45 19t-19 45v109q-108 -32 -188.5 -112.5t-112.5 -188.5h109q26 0 45 -19t19 -45v-128q0 -26 -19 -45t-45 -19h-109 -q32 -108 112.5 -188.5t188.5 -112.5v109q0 26 19 45t45 19h128q26 0 45 -19t19 -45v-109q108 32 188.5 112.5t112.5 188.5zM1536 704v-128q0 -26 -19 -45t-45 -19h-143q-37 -161 -154.5 -278.5t-278.5 -154.5v-143q0 -26 -19 -45t-45 -19h-128q-26 0 -45 19t-19 45v143 -q-161 37 -278.5 154.5t-154.5 278.5h-143q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h143q37 161 154.5 278.5t278.5 154.5v143q0 26 19 45t45 19h128q26 0 45 -19t19 -45v-143q161 -37 278.5 -154.5t154.5 -278.5h143q26 0 45 -19t19 -45z" /> - <glyph glyph-name="remove_circle" unicode="&#xf05c;" -d="M1097 457l-146 -146q-10 -10 -23 -10t-23 10l-137 137l-137 -137q-10 -10 -23 -10t-23 10l-146 146q-10 10 -10 23t10 23l137 137l-137 137q-10 10 -10 23t10 23l146 146q10 10 23 10t23 -10l137 -137l137 137q10 10 23 10t23 -10l146 -146q10 -10 10 -23t-10 -23 -l-137 -137l137 -137q10 -10 10 -23t-10 -23zM1312 640q0 148 -73 273t-198 198t-273 73t-273 -73t-198 -198t-73 -273t73 -273t198 -198t273 -73t273 73t198 198t73 273zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5 -t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" /> - <glyph glyph-name="ok_circle" unicode="&#xf05d;" -d="M1171 723l-422 -422q-19 -19 -45 -19t-45 19l-294 294q-19 19 -19 45t19 45l102 102q19 19 45 19t45 -19l147 -147l275 275q19 19 45 19t45 -19l102 -102q19 -19 19 -45t-19 -45zM1312 640q0 148 -73 273t-198 198t-273 73t-273 -73t-198 -198t-73 -273t73 -273t198 -198 -t273 -73t273 73t198 198t73 273zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" /> - <glyph glyph-name="ban_circle" unicode="&#xf05e;" -d="M1312 643q0 161 -87 295l-754 -753q137 -89 297 -89q111 0 211.5 43.5t173.5 116.5t116 174.5t43 212.5zM313 344l755 754q-135 91 -300 91q-148 0 -273 -73t-198 -199t-73 -274q0 -162 89 -299zM1536 643q0 -157 -61 -300t-163.5 -246t-245 -164t-298.5 -61t-298.5 61 -t-245 164t-163.5 246t-61 300t61 299.5t163.5 245.5t245 164t298.5 61t298.5 -61t245 -164t163.5 -245.5t61 -299.5z" /> - <glyph glyph-name="arrow_left" unicode="&#xf060;" -d="M1536 640v-128q0 -53 -32.5 -90.5t-84.5 -37.5h-704l293 -294q38 -36 38 -90t-38 -90l-75 -76q-37 -37 -90 -37q-52 0 -91 37l-651 652q-37 37 -37 90q0 52 37 91l651 650q38 38 91 38q52 0 90 -38l75 -74q38 -38 38 -91t-38 -91l-293 -293h704q52 0 84.5 -37.5 -t32.5 -90.5z" /> - <glyph glyph-name="arrow_right" unicode="&#xf061;" -d="M1472 576q0 -54 -37 -91l-651 -651q-39 -37 -91 -37q-51 0 -90 37l-75 75q-38 38 -38 91t38 91l293 293h-704q-52 0 -84.5 37.5t-32.5 90.5v128q0 53 32.5 90.5t84.5 37.5h704l-293 294q-38 36 -38 90t38 90l75 75q38 38 90 38q53 0 91 -38l651 -651q37 -35 37 -90z" /> - <glyph glyph-name="arrow_up" unicode="&#xf062;" horiz-adv-x="1664" -d="M1611 565q0 -51 -37 -90l-75 -75q-38 -38 -91 -38q-54 0 -90 38l-294 293v-704q0 -52 -37.5 -84.5t-90.5 -32.5h-128q-53 0 -90.5 32.5t-37.5 84.5v704l-294 -293q-36 -38 -90 -38t-90 38l-75 75q-38 38 -38 90q0 53 38 91l651 651q35 37 90 37q54 0 91 -37l651 -651 -q37 -39 37 -91z" /> - <glyph glyph-name="arrow_down" unicode="&#xf063;" horiz-adv-x="1664" -d="M1611 704q0 -53 -37 -90l-651 -652q-39 -37 -91 -37q-53 0 -90 37l-651 652q-38 36 -38 90q0 53 38 91l74 75q39 37 91 37q53 0 90 -37l294 -294v704q0 52 38 90t90 38h128q52 0 90 -38t38 -90v-704l294 294q37 37 90 37q52 0 91 -37l75 -75q37 -39 37 -91z" /> - <glyph glyph-name="share_alt" unicode="&#xf064;" horiz-adv-x="1792" -d="M1792 896q0 -26 -19 -45l-512 -512q-19 -19 -45 -19t-45 19t-19 45v256h-224q-98 0 -175.5 -6t-154 -21.5t-133 -42.5t-105.5 -69.5t-80 -101t-48.5 -138.5t-17.5 -181q0 -55 5 -123q0 -6 2.5 -23.5t2.5 -26.5q0 -15 -8.5 -25t-23.5 -10q-16 0 -28 17q-7 9 -13 22 -t-13.5 30t-10.5 24q-127 285 -127 451q0 199 53 333q162 403 875 403h224v256q0 26 19 45t45 19t45 -19l512 -512q19 -19 19 -45z" /> - <glyph glyph-name="resize_full" unicode="&#xf065;" -d="M755 480q0 -13 -10 -23l-332 -332l144 -144q19 -19 19 -45t-19 -45t-45 -19h-448q-26 0 -45 19t-19 45v448q0 26 19 45t45 19t45 -19l144 -144l332 332q10 10 23 10t23 -10l114 -114q10 -10 10 -23zM1536 1344v-448q0 -26 -19 -45t-45 -19t-45 19l-144 144l-332 -332 -q-10 -10 -23 -10t-23 10l-114 114q-10 10 -10 23t10 23l332 332l-144 144q-19 19 -19 45t19 45t45 19h448q26 0 45 -19t19 -45z" /> - <glyph glyph-name="resize_small" unicode="&#xf066;" -d="M768 576v-448q0 -26 -19 -45t-45 -19t-45 19l-144 144l-332 -332q-10 -10 -23 -10t-23 10l-114 114q-10 10 -10 23t10 23l332 332l-144 144q-19 19 -19 45t19 45t45 19h448q26 0 45 -19t19 -45zM1523 1248q0 -13 -10 -23l-332 -332l144 -144q19 -19 19 -45t-19 -45 -t-45 -19h-448q-26 0 -45 19t-19 45v448q0 26 19 45t45 19t45 -19l144 -144l332 332q10 10 23 10t23 -10l114 -114q10 -10 10 -23z" /> - <glyph glyph-name="plus" unicode="&#xf067;" horiz-adv-x="1408" -d="M1408 800v-192q0 -40 -28 -68t-68 -28h-416v-416q0 -40 -28 -68t-68 -28h-192q-40 0 -68 28t-28 68v416h-416q-40 0 -68 28t-28 68v192q0 40 28 68t68 28h416v416q0 40 28 68t68 28h192q40 0 68 -28t28 -68v-416h416q40 0 68 -28t28 -68z" /> - <glyph glyph-name="minus" unicode="&#xf068;" horiz-adv-x="1408" -d="M1408 800v-192q0 -40 -28 -68t-68 -28h-1216q-40 0 -68 28t-28 68v192q0 40 28 68t68 28h1216q40 0 68 -28t28 -68z" /> - <glyph glyph-name="asterisk" unicode="&#xf069;" horiz-adv-x="1664" -d="M1482 486q46 -26 59.5 -77.5t-12.5 -97.5l-64 -110q-26 -46 -77.5 -59.5t-97.5 12.5l-266 153v-307q0 -52 -38 -90t-90 -38h-128q-52 0 -90 38t-38 90v307l-266 -153q-46 -26 -97.5 -12.5t-77.5 59.5l-64 110q-26 46 -12.5 97.5t59.5 77.5l266 154l-266 154 -q-46 26 -59.5 77.5t12.5 97.5l64 110q26 46 77.5 59.5t97.5 -12.5l266 -153v307q0 52 38 90t90 38h128q52 0 90 -38t38 -90v-307l266 153q46 26 97.5 12.5t77.5 -59.5l64 -110q26 -46 12.5 -97.5t-59.5 -77.5l-266 -154z" /> - <glyph glyph-name="exclamation_sign" unicode="&#xf06a;" -d="M768 1408q209 0 385.5 -103t279.5 -279.5t103 -385.5t-103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103zM896 161v190q0 14 -9 23.5t-22 9.5h-192q-13 0 -23 -10t-10 -23v-190q0 -13 10 -23t23 -10h192 -q13 0 22 9.5t9 23.5zM894 505l18 621q0 12 -10 18q-10 8 -24 8h-220q-14 0 -24 -8q-10 -6 -10 -18l17 -621q0 -10 10 -17.5t24 -7.5h185q14 0 23.5 7.5t10.5 17.5z" /> - <glyph glyph-name="gift" unicode="&#xf06b;" -d="M928 180v56v468v192h-320v-192v-468v-56q0 -25 18 -38.5t46 -13.5h192q28 0 46 13.5t18 38.5zM472 1024h195l-126 161q-26 31 -69 31q-40 0 -68 -28t-28 -68t28 -68t68 -28zM1160 1120q0 40 -28 68t-68 28q-43 0 -69 -31l-125 -161h194q40 0 68 28t28 68zM1536 864v-320 -q0 -14 -9 -23t-23 -9h-96v-416q0 -40 -28 -68t-68 -28h-1088q-40 0 -68 28t-28 68v416h-96q-14 0 -23 9t-9 23v320q0 14 9 23t23 9h440q-93 0 -158.5 65.5t-65.5 158.5t65.5 158.5t158.5 65.5q107 0 168 -77l128 -165l128 165q61 77 168 77q93 0 158.5 -65.5t65.5 -158.5 -t-65.5 -158.5t-158.5 -65.5h440q14 0 23 -9t9 -23z" /> - <glyph glyph-name="leaf" unicode="&#xf06c;" horiz-adv-x="1792" -d="M1280 832q0 26 -19 45t-45 19q-172 0 -318 -49.5t-259.5 -134t-235.5 -219.5q-19 -21 -19 -45q0 -26 19 -45t45 -19q24 0 45 19q27 24 74 71t67 66q137 124 268.5 176t313.5 52q26 0 45 19t19 45zM1792 1030q0 -95 -20 -193q-46 -224 -184.5 -383t-357.5 -268 -q-214 -108 -438 -108q-148 0 -286 47q-15 5 -88 42t-96 37q-16 0 -39.5 -32t-45 -70t-52.5 -70t-60 -32q-43 0 -63.5 17.5t-45.5 59.5q-2 4 -6 11t-5.5 10t-3 9.5t-1.5 13.5q0 35 31 73.5t68 65.5t68 56t31 48q0 4 -14 38t-16 44q-9 51 -9 104q0 115 43.5 220t119 184.5 -t170.5 139t204 95.5q55 18 145 25.5t179.5 9t178.5 6t163.5 24t113.5 56.5l29.5 29.5t29.5 28t27 20t36.5 16t43.5 4.5q39 0 70.5 -46t47.5 -112t24 -124t8 -96z" /> - <glyph glyph-name="fire" unicode="&#xf06d;" horiz-adv-x="1408" -d="M1408 -160v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-1344q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h1344q13 0 22.5 -9.5t9.5 -22.5zM1152 896q0 -78 -24.5 -144t-64 -112.5t-87.5 -88t-96 -77.5t-87.5 -72t-64 -81.5t-24.5 -96.5q0 -96 67 -224l-4 1l1 -1 -q-90 41 -160 83t-138.5 100t-113.5 122.5t-72.5 150.5t-27.5 184q0 78 24.5 144t64 112.5t87.5 88t96 77.5t87.5 72t64 81.5t24.5 96.5q0 94 -66 224l3 -1l-1 1q90 -41 160 -83t138.5 -100t113.5 -122.5t72.5 -150.5t27.5 -184z" /> - <glyph glyph-name="eye_open" unicode="&#xf06e;" horiz-adv-x="1792" -d="M1664 576q-152 236 -381 353q61 -104 61 -225q0 -185 -131.5 -316.5t-316.5 -131.5t-316.5 131.5t-131.5 316.5q0 121 61 225q-229 -117 -381 -353q133 -205 333.5 -326.5t434.5 -121.5t434.5 121.5t333.5 326.5zM944 960q0 20 -14 34t-34 14q-125 0 -214.5 -89.5 -t-89.5 -214.5q0 -20 14 -34t34 -14t34 14t14 34q0 86 61 147t147 61q20 0 34 14t14 34zM1792 576q0 -34 -20 -69q-140 -230 -376.5 -368.5t-499.5 -138.5t-499.5 139t-376.5 368q-20 35 -20 69t20 69q140 229 376.5 368t499.5 139t499.5 -139t376.5 -368q20 -35 20 -69z" /> - <glyph glyph-name="eye_close" unicode="&#xf070;" horiz-adv-x="1792" -d="M555 201l78 141q-87 63 -136 159t-49 203q0 121 61 225q-229 -117 -381 -353q167 -258 427 -375zM944 960q0 20 -14 34t-34 14q-125 0 -214.5 -89.5t-89.5 -214.5q0 -20 14 -34t34 -14t34 14t14 34q0 86 61 147t147 61q20 0 34 14t14 34zM1307 1151q0 -7 -1 -9 -q-106 -189 -316 -567t-315 -566l-49 -89q-10 -16 -28 -16q-12 0 -134 70q-16 10 -16 28q0 12 44 87q-143 65 -263.5 173t-208.5 245q-20 31 -20 69t20 69q153 235 380 371t496 136q89 0 180 -17l54 97q10 16 28 16q5 0 18 -6t31 -15.5t33 -18.5t31.5 -18.5t19.5 -11.5 -q16 -10 16 -27zM1344 704q0 -139 -79 -253.5t-209 -164.5l280 502q8 -45 8 -84zM1792 576q0 -35 -20 -69q-39 -64 -109 -145q-150 -172 -347.5 -267t-419.5 -95l74 132q212 18 392.5 137t301.5 307q-115 179 -282 294l63 112q95 -64 182.5 -153t144.5 -184q20 -34 20 -69z -" /> - <glyph glyph-name="warning_sign" unicode="&#xf071;" horiz-adv-x="1792" -d="M1024 161v190q0 14 -9.5 23.5t-22.5 9.5h-192q-13 0 -22.5 -9.5t-9.5 -23.5v-190q0 -14 9.5 -23.5t22.5 -9.5h192q13 0 22.5 9.5t9.5 23.5zM1022 535l18 459q0 12 -10 19q-13 11 -24 11h-220q-11 0 -24 -11q-10 -7 -10 -21l17 -457q0 -10 10 -16.5t24 -6.5h185 -q14 0 23.5 6.5t10.5 16.5zM1008 1469l768 -1408q35 -63 -2 -126q-17 -29 -46.5 -46t-63.5 -17h-1536q-34 0 -63.5 17t-46.5 46q-37 63 -2 126l768 1408q17 31 47 49t65 18t65 -18t47 -49z" /> - <glyph glyph-name="plane" unicode="&#xf072;" horiz-adv-x="1408" -d="M1376 1376q44 -52 12 -148t-108 -172l-161 -161l160 -696q5 -19 -12 -33l-128 -96q-7 -6 -19 -6q-4 0 -7 1q-15 3 -21 16l-279 508l-259 -259l53 -194q5 -17 -8 -31l-96 -96q-9 -9 -23 -9h-2q-15 2 -24 13l-189 252l-252 189q-11 7 -13 23q-1 13 9 25l96 97q9 9 23 9 -q6 0 8 -1l194 -53l259 259l-508 279q-14 8 -17 24q-2 16 9 27l128 128q14 13 30 8l665 -159l160 160q76 76 172 108t148 -12z" /> - <glyph glyph-name="calendar" unicode="&#xf073;" horiz-adv-x="1664" -d="M128 -128h288v288h-288v-288zM480 -128h320v288h-320v-288zM128 224h288v320h-288v-320zM480 224h320v320h-320v-320zM128 608h288v288h-288v-288zM864 -128h320v288h-320v-288zM480 608h320v288h-320v-288zM1248 -128h288v288h-288v-288zM864 224h320v320h-320v-320z -M512 1088v288q0 13 -9.5 22.5t-22.5 9.5h-64q-13 0 -22.5 -9.5t-9.5 -22.5v-288q0 -13 9.5 -22.5t22.5 -9.5h64q13 0 22.5 9.5t9.5 22.5zM1248 224h288v320h-288v-320zM864 608h320v288h-320v-288zM1248 608h288v288h-288v-288zM1280 1088v288q0 13 -9.5 22.5t-22.5 9.5h-64 -q-13 0 -22.5 -9.5t-9.5 -22.5v-288q0 -13 9.5 -22.5t22.5 -9.5h64q13 0 22.5 9.5t9.5 22.5zM1664 1152v-1280q0 -52 -38 -90t-90 -38h-1408q-52 0 -90 38t-38 90v1280q0 52 38 90t90 38h128v96q0 66 47 113t113 47h64q66 0 113 -47t47 -113v-96h384v96q0 66 47 113t113 47 -h64q66 0 113 -47t47 -113v-96h128q52 0 90 -38t38 -90z" /> - <glyph glyph-name="random" unicode="&#xf074;" horiz-adv-x="1792" -d="M666 1055q-60 -92 -137 -273q-22 45 -37 72.5t-40.5 63.5t-51 56.5t-63 35t-81.5 14.5h-224q-14 0 -23 9t-9 23v192q0 14 9 23t23 9h224q250 0 410 -225zM1792 256q0 -14 -9 -23l-320 -320q-9 -9 -23 -9q-13 0 -22.5 9.5t-9.5 22.5v192q-32 0 -85 -0.5t-81 -1t-73 1 -t-71 5t-64 10.5t-63 18.5t-58 28.5t-59 40t-55 53.5t-56 69.5q59 93 136 273q22 -45 37 -72.5t40.5 -63.5t51 -56.5t63 -35t81.5 -14.5h256v192q0 14 9 23t23 9q12 0 24 -10l319 -319q9 -9 9 -23zM1792 1152q0 -14 -9 -23l-320 -320q-9 -9 -23 -9q-13 0 -22.5 9.5t-9.5 22.5 -v192h-256q-48 0 -87 -15t-69 -45t-51 -61.5t-45 -77.5q-32 -62 -78 -171q-29 -66 -49.5 -111t-54 -105t-64 -100t-74 -83t-90 -68.5t-106.5 -42t-128 -16.5h-224q-14 0 -23 9t-9 23v192q0 14 9 23t23 9h224q48 0 87 15t69 45t51 61.5t45 77.5q32 62 78 171q29 66 49.5 111 -t54 105t64 100t74 83t90 68.5t106.5 42t128 16.5h256v192q0 14 9 23t23 9q12 0 24 -10l319 -319q9 -9 9 -23z" /> - <glyph glyph-name="comment" unicode="&#xf075;" horiz-adv-x="1792" -d="M1792 640q0 -174 -120 -321.5t-326 -233t-450 -85.5q-70 0 -145 8q-198 -175 -460 -242q-49 -14 -114 -22q-17 -2 -30.5 9t-17.5 29v1q-3 4 -0.5 12t2 10t4.5 9.5l6 9t7 8.5t8 9q7 8 31 34.5t34.5 38t31 39.5t32.5 51t27 59t26 76q-157 89 -247.5 220t-90.5 281 -q0 130 71 248.5t191 204.5t286 136.5t348 50.5q244 0 450 -85.5t326 -233t120 -321.5z" /> - <glyph glyph-name="magnet" unicode="&#xf076;" -d="M1536 704v-128q0 -201 -98.5 -362t-274 -251.5t-395.5 -90.5t-395.5 90.5t-274 251.5t-98.5 362v128q0 26 19 45t45 19h384q26 0 45 -19t19 -45v-128q0 -52 23.5 -90t53.5 -57t71 -30t64 -13t44 -2t44 2t64 13t71 30t53.5 57t23.5 90v128q0 26 19 45t45 19h384 -q26 0 45 -19t19 -45zM512 1344v-384q0 -26 -19 -45t-45 -19h-384q-26 0 -45 19t-19 45v384q0 26 19 45t45 19h384q26 0 45 -19t19 -45zM1536 1344v-384q0 -26 -19 -45t-45 -19h-384q-26 0 -45 19t-19 45v384q0 26 19 45t45 19h384q26 0 45 -19t19 -45z" /> - <glyph glyph-name="chevron_up" unicode="&#xf077;" horiz-adv-x="1792" -d="M1683 205l-166 -165q-19 -19 -45 -19t-45 19l-531 531l-531 -531q-19 -19 -45 -19t-45 19l-166 165q-19 19 -19 45.5t19 45.5l742 741q19 19 45 19t45 -19l742 -741q19 -19 19 -45.5t-19 -45.5z" /> - <glyph glyph-name="chevron_down" unicode="&#xf078;" horiz-adv-x="1792" -d="M1683 728l-742 -741q-19 -19 -45 -19t-45 19l-742 741q-19 19 -19 45.5t19 45.5l166 165q19 19 45 19t45 -19l531 -531l531 531q19 19 45 19t45 -19l166 -165q19 -19 19 -45.5t-19 -45.5z" /> - <glyph glyph-name="retweet" unicode="&#xf079;" horiz-adv-x="1920" -d="M1280 32q0 -13 -9.5 -22.5t-22.5 -9.5h-960q-8 0 -13.5 2t-9 7t-5.5 8t-3 11.5t-1 11.5v13v11v160v416h-192q-26 0 -45 19t-19 45q0 24 15 41l320 384q19 22 49 22t49 -22l320 -384q15 -17 15 -41q0 -26 -19 -45t-45 -19h-192v-384h576q16 0 25 -11l160 -192q7 -10 7 -21 -zM1920 448q0 -24 -15 -41l-320 -384q-20 -23 -49 -23t-49 23l-320 384q-15 17 -15 41q0 26 19 45t45 19h192v384h-576q-16 0 -25 12l-160 192q-7 9 -7 20q0 13 9.5 22.5t22.5 9.5h960q8 0 13.5 -2t9 -7t5.5 -8t3 -11.5t1 -11.5v-13v-11v-160v-416h192q26 0 45 -19t19 -45z -" /> - <glyph glyph-name="shopping_cart" unicode="&#xf07a;" horiz-adv-x="1664" -d="M640 0q0 -52 -38 -90t-90 -38t-90 38t-38 90t38 90t90 38t90 -38t38 -90zM1536 0q0 -52 -38 -90t-90 -38t-90 38t-38 90t38 90t90 38t90 -38t38 -90zM1664 1088v-512q0 -24 -16.5 -42.5t-40.5 -21.5l-1044 -122q13 -60 13 -70q0 -16 -24 -64h920q26 0 45 -19t19 -45 -t-19 -45t-45 -19h-1024q-26 0 -45 19t-19 45q0 11 8 31.5t16 36t21.5 40t15.5 29.5l-177 823h-204q-26 0 -45 19t-19 45t19 45t45 19h256q16 0 28.5 -6.5t19.5 -15.5t13 -24.5t8 -26t5.5 -29.5t4.5 -26h1201q26 0 45 -19t19 -45z" /> - <glyph glyph-name="folder_close" unicode="&#xf07b;" horiz-adv-x="1664" -d="M1664 928v-704q0 -92 -66 -158t-158 -66h-1216q-92 0 -158 66t-66 158v960q0 92 66 158t158 66h320q92 0 158 -66t66 -158v-32h672q92 0 158 -66t66 -158z" /> - <glyph glyph-name="folder_open" unicode="&#xf07c;" horiz-adv-x="1920" -d="M1879 584q0 -31 -31 -66l-336 -396q-43 -51 -120.5 -86.5t-143.5 -35.5h-1088q-34 0 -60.5 13t-26.5 43q0 31 31 66l336 396q43 51 120.5 86.5t143.5 35.5h1088q34 0 60.5 -13t26.5 -43zM1536 928v-160h-832q-94 0 -197 -47.5t-164 -119.5l-337 -396l-5 -6q0 4 -0.5 12.5 -t-0.5 12.5v960q0 92 66 158t158 66h320q92 0 158 -66t66 -158v-32h544q92 0 158 -66t66 -158z" /> - <glyph glyph-name="resize_vertical" unicode="&#xf07d;" horiz-adv-x="768" -d="M704 1216q0 -26 -19 -45t-45 -19h-128v-1024h128q26 0 45 -19t19 -45t-19 -45l-256 -256q-19 -19 -45 -19t-45 19l-256 256q-19 19 -19 45t19 45t45 19h128v1024h-128q-26 0 -45 19t-19 45t19 45l256 256q19 19 45 19t45 -19l256 -256q19 -19 19 -45z" /> - <glyph glyph-name="resize_horizontal" unicode="&#xf07e;" horiz-adv-x="1792" -d="M1792 640q0 -26 -19 -45l-256 -256q-19 -19 -45 -19t-45 19t-19 45v128h-1024v-128q0 -26 -19 -45t-45 -19t-45 19l-256 256q-19 19 -19 45t19 45l256 256q19 19 45 19t45 -19t19 -45v-128h1024v128q0 26 19 45t45 19t45 -19l256 -256q19 -19 19 -45z" /> - <glyph glyph-name="bar_chart" unicode="&#xf080;" horiz-adv-x="2048" -d="M640 640v-512h-256v512h256zM1024 1152v-1024h-256v1024h256zM2048 0v-128h-2048v1536h128v-1408h1920zM1408 896v-768h-256v768h256zM1792 1280v-1152h-256v1152h256z" /> - <glyph glyph-name="twitter_sign" unicode="&#xf081;" -d="M1280 926q-56 -25 -121 -34q68 40 93 117q-65 -38 -134 -51q-61 66 -153 66q-87 0 -148.5 -61.5t-61.5 -148.5q0 -29 5 -48q-129 7 -242 65t-192 155q-29 -50 -29 -106q0 -114 91 -175q-47 1 -100 26v-2q0 -75 50 -133.5t123 -72.5q-29 -8 -51 -8q-13 0 -39 4 -q21 -63 74.5 -104t121.5 -42q-116 -90 -261 -90q-26 0 -50 3q148 -94 322 -94q112 0 210 35.5t168 95t120.5 137t75 162t24.5 168.5q0 18 -1 27q63 45 105 109zM1536 1120v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5 -t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" /> - <glyph glyph-name="facebook_sign" unicode="&#xf082;" -d="M1248 1408q119 0 203.5 -84.5t84.5 -203.5v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-188v595h199l30 232h-229v148q0 56 23.5 84t91.5 28l122 1v207q-63 9 -178 9q-136 0 -217.5 -80t-81.5 -226v-171h-200v-232h200v-595h-532q-119 0 -203.5 84.5t-84.5 203.5v960 -q0 119 84.5 203.5t203.5 84.5h960z" /> - <glyph glyph-name="camera_retro" unicode="&#xf083;" horiz-adv-x="1792" -d="M928 704q0 14 -9 23t-23 9q-66 0 -113 -47t-47 -113q0 -14 9 -23t23 -9t23 9t9 23q0 40 28 68t68 28q14 0 23 9t9 23zM1152 574q0 -106 -75 -181t-181 -75t-181 75t-75 181t75 181t181 75t181 -75t75 -181zM128 0h1536v128h-1536v-128zM1280 574q0 159 -112.5 271.5 -t-271.5 112.5t-271.5 -112.5t-112.5 -271.5t112.5 -271.5t271.5 -112.5t271.5 112.5t112.5 271.5zM256 1216h384v128h-384v-128zM128 1024h1536v118v138h-828l-64 -128h-644v-128zM1792 1280v-1280q0 -53 -37.5 -90.5t-90.5 -37.5h-1536q-53 0 -90.5 37.5t-37.5 90.5v1280 -q0 53 37.5 90.5t90.5 37.5h1536q53 0 90.5 -37.5t37.5 -90.5z" /> - <glyph glyph-name="key" unicode="&#xf084;" horiz-adv-x="1792" -d="M832 1024q0 80 -56 136t-136 56t-136 -56t-56 -136q0 -42 19 -83q-41 19 -83 19q-80 0 -136 -56t-56 -136t56 -136t136 -56t136 56t56 136q0 42 -19 83q41 -19 83 -19q80 0 136 56t56 136zM1683 320q0 -17 -49 -66t-66 -49q-9 0 -28.5 16t-36.5 33t-38.5 40t-24.5 26 -l-96 -96l220 -220q28 -28 28 -68q0 -42 -39 -81t-81 -39q-40 0 -68 28l-671 671q-176 -131 -365 -131q-163 0 -265.5 102.5t-102.5 265.5q0 160 95 313t248 248t313 95q163 0 265.5 -102.5t102.5 -265.5q0 -189 -131 -365l355 -355l96 96q-3 3 -26 24.5t-40 38.5t-33 36.5 -t-16 28.5q0 17 49 66t66 49q13 0 23 -10q6 -6 46 -44.5t82 -79.5t86.5 -86t73 -78t28.5 -41z" /> - <glyph glyph-name="cogs" unicode="&#xf085;" horiz-adv-x="1920" -d="M896 640q0 106 -75 181t-181 75t-181 -75t-75 -181t75 -181t181 -75t181 75t75 181zM1664 128q0 52 -38 90t-90 38t-90 -38t-38 -90q0 -53 37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5zM1664 1152q0 52 -38 90t-90 38t-90 -38t-38 -90q0 -53 37.5 -90.5t90.5 -37.5 -t90.5 37.5t37.5 90.5zM1280 731v-185q0 -10 -7 -19.5t-16 -10.5l-155 -24q-11 -35 -32 -76q34 -48 90 -115q7 -11 7 -20q0 -12 -7 -19q-23 -30 -82.5 -89.5t-78.5 -59.5q-11 0 -21 7l-115 90q-37 -19 -77 -31q-11 -108 -23 -155q-7 -24 -30 -24h-186q-11 0 -20 7.5t-10 17.5 -l-23 153q-34 10 -75 31l-118 -89q-7 -7 -20 -7q-11 0 -21 8q-144 133 -144 160q0 9 7 19q10 14 41 53t47 61q-23 44 -35 82l-152 24q-10 1 -17 9.5t-7 19.5v185q0 10 7 19.5t16 10.5l155 24q11 35 32 76q-34 48 -90 115q-7 11 -7 20q0 12 7 20q22 30 82 89t79 59q11 0 21 -7 -l115 -90q34 18 77 32q11 108 23 154q7 24 30 24h186q11 0 20 -7.5t10 -17.5l23 -153q34 -10 75 -31l118 89q8 7 20 7q11 0 21 -8q144 -133 144 -160q0 -8 -7 -19q-12 -16 -42 -54t-45 -60q23 -48 34 -82l152 -23q10 -2 17 -10.5t7 -19.5zM1920 198v-140q0 -16 -149 -31 -q-12 -27 -30 -52q51 -113 51 -138q0 -4 -4 -7q-122 -71 -124 -71q-8 0 -46 47t-52 68q-20 -2 -30 -2t-30 2q-14 -21 -52 -68t-46 -47q-2 0 -124 71q-4 3 -4 7q0 25 51 138q-18 25 -30 52q-149 15 -149 31v140q0 16 149 31q13 29 30 52q-51 113 -51 138q0 4 4 7q4 2 35 20 -t59 34t30 16q8 0 46 -46.5t52 -67.5q20 2 30 2t30 -2q51 71 92 112l6 2q4 0 124 -70q4 -3 4 -7q0 -25 -51 -138q17 -23 30 -52q149 -15 149 -31zM1920 1222v-140q0 -16 -149 -31q-12 -27 -30 -52q51 -113 51 -138q0 -4 -4 -7q-122 -71 -124 -71q-8 0 -46 47t-52 68 -q-20 -2 -30 -2t-30 2q-14 -21 -52 -68t-46 -47q-2 0 -124 71q-4 3 -4 7q0 25 51 138q-18 25 -30 52q-149 15 -149 31v140q0 16 149 31q13 29 30 52q-51 113 -51 138q0 4 4 7q4 2 35 20t59 34t30 16q8 0 46 -46.5t52 -67.5q20 2 30 2t30 -2q51 71 92 112l6 2q4 0 124 -70 -q4 -3 4 -7q0 -25 -51 -138q17 -23 30 -52q149 -15 149 -31z" /> - <glyph glyph-name="comments" unicode="&#xf086;" horiz-adv-x="1792" -d="M1408 768q0 -139 -94 -257t-256.5 -186.5t-353.5 -68.5q-86 0 -176 16q-124 -88 -278 -128q-36 -9 -86 -16h-3q-11 0 -20.5 8t-11.5 21q-1 3 -1 6.5t0.5 6.5t2 6l2.5 5t3.5 5.5t4 5t4.5 5t4 4.5q5 6 23 25t26 29.5t22.5 29t25 38.5t20.5 44q-124 72 -195 177t-71 224 -q0 139 94 257t256.5 186.5t353.5 68.5t353.5 -68.5t256.5 -186.5t94 -257zM1792 512q0 -120 -71 -224.5t-195 -176.5q10 -24 20.5 -44t25 -38.5t22.5 -29t26 -29.5t23 -25q1 -1 4 -4.5t4.5 -5t4 -5t3.5 -5.5l2.5 -5t2 -6t0.5 -6.5t-1 -6.5q-3 -14 -13 -22t-22 -7 -q-50 7 -86 16q-154 40 -278 128q-90 -16 -176 -16q-271 0 -472 132q58 -4 88 -4q161 0 309 45t264 129q125 92 192 212t67 254q0 77 -23 152q129 -71 204 -178t75 -230z" /> - <glyph glyph-name="thumbs_up_alt" unicode="&#xf087;" -d="M256 192q0 26 -19 45t-45 19t-45 -19t-19 -45t19 -45t45 -19t45 19t19 45zM1408 768q0 51 -39 89.5t-89 38.5h-352q0 58 48 159.5t48 160.5q0 98 -32 145t-128 47q-26 -26 -38 -85t-30.5 -125.5t-59.5 -109.5q-22 -23 -77 -91q-4 -5 -23 -30t-31.5 -41t-34.5 -42.5 -t-40 -44t-38.5 -35.5t-40 -27t-35.5 -9h-32v-640h32q13 0 31.5 -3t33 -6.5t38 -11t35 -11.5t35.5 -12.5t29 -10.5q211 -73 342 -73h121q192 0 192 167q0 26 -5 56q30 16 47.5 52.5t17.5 73.5t-18 69q53 50 53 119q0 25 -10 55.5t-25 47.5q32 1 53.5 47t21.5 81zM1536 769 -q0 -89 -49 -163q9 -33 9 -69q0 -77 -38 -144q3 -21 3 -43q0 -101 -60 -178q1 -139 -85 -219.5t-227 -80.5h-36h-93q-96 0 -189.5 22.5t-216.5 65.5q-116 40 -138 40h-288q-53 0 -90.5 37.5t-37.5 90.5v640q0 53 37.5 90.5t90.5 37.5h274q36 24 137 155q58 75 107 128 -q24 25 35.5 85.5t30.5 126.5t62 108q39 37 90 37q84 0 151 -32.5t102 -101.5t35 -186q0 -93 -48 -192h176q104 0 180 -76t76 -179z" /> - <glyph glyph-name="thumbs_down_alt" unicode="&#xf088;" -d="M256 1088q0 26 -19 45t-45 19t-45 -19t-19 -45t19 -45t45 -19t45 19t19 45zM1408 512q0 35 -21.5 81t-53.5 47q15 17 25 47.5t10 55.5q0 69 -53 119q18 31 18 69q0 37 -17.5 73.5t-47.5 52.5q5 30 5 56q0 85 -49 126t-136 41h-128q-131 0 -342 -73q-5 -2 -29 -10.5 -t-35.5 -12.5t-35 -11.5t-38 -11t-33 -6.5t-31.5 -3h-32v-640h32q16 0 35.5 -9t40 -27t38.5 -35.5t40 -44t34.5 -42.5t31.5 -41t23 -30q55 -68 77 -91q41 -43 59.5 -109.5t30.5 -125.5t38 -85q96 0 128 47t32 145q0 59 -48 160.5t-48 159.5h352q50 0 89 38.5t39 89.5z -M1536 511q0 -103 -76 -179t-180 -76h-176q48 -99 48 -192q0 -118 -35 -186q-35 -69 -102 -101.5t-151 -32.5q-51 0 -90 37q-34 33 -54 82t-25.5 90.5t-17.5 84.5t-31 64q-48 50 -107 127q-101 131 -137 155h-274q-53 0 -90.5 37.5t-37.5 90.5v640q0 53 37.5 90.5t90.5 37.5 -h288q22 0 138 40q128 44 223 66t200 22h112q140 0 226.5 -79t85.5 -216v-5q60 -77 60 -178q0 -22 -3 -43q38 -67 38 -144q0 -36 -9 -69q49 -73 49 -163z" /> - <glyph glyph-name="star_half" unicode="&#xf089;" horiz-adv-x="896" -d="M832 1504v-1339l-449 -236q-22 -12 -40 -12q-21 0 -31.5 14.5t-10.5 35.5q0 6 2 20l86 500l-364 354q-25 27 -25 48q0 37 56 46l502 73l225 455q19 41 49 41z" /> - <glyph glyph-name="heart_empty" unicode="&#xf08a;" horiz-adv-x="1792" -d="M1664 940q0 81 -21.5 143t-55 98.5t-81.5 59.5t-94 31t-98 8t-112 -25.5t-110.5 -64t-86.5 -72t-60 -61.5q-18 -22 -49 -22t-49 22q-24 28 -60 61.5t-86.5 72t-110.5 64t-112 25.5t-98 -8t-94 -31t-81.5 -59.5t-55 -98.5t-21.5 -143q0 -168 187 -355l581 -560l580 559 -q188 188 188 356zM1792 940q0 -221 -229 -450l-623 -600q-18 -18 -44 -18t-44 18l-624 602q-10 8 -27.5 26t-55.5 65.5t-68 97.5t-53.5 121t-23.5 138q0 220 127 344t351 124q62 0 126.5 -21.5t120 -58t95.5 -68.5t76 -68q36 36 76 68t95.5 68.5t120 58t126.5 21.5 -q224 0 351 -124t127 -344z" /> - <glyph glyph-name="signout" unicode="&#xf08b;" horiz-adv-x="1664" -d="M640 96q0 -4 1 -20t0.5 -26.5t-3 -23.5t-10 -19.5t-20.5 -6.5h-320q-119 0 -203.5 84.5t-84.5 203.5v704q0 119 84.5 203.5t203.5 84.5h320q13 0 22.5 -9.5t9.5 -22.5q0 -4 1 -20t0.5 -26.5t-3 -23.5t-10 -19.5t-20.5 -6.5h-320q-66 0 -113 -47t-47 -113v-704 -q0 -66 47 -113t113 -47h288h11h13t11.5 -1t11.5 -3t8 -5.5t7 -9t2 -13.5zM1568 640q0 -26 -19 -45l-544 -544q-19 -19 -45 -19t-45 19t-19 45v288h-448q-26 0 -45 19t-19 45v384q0 26 19 45t45 19h448v288q0 26 19 45t45 19t45 -19l544 -544q19 -19 19 -45z" /> - <glyph glyph-name="linkedin_sign" unicode="&#xf08c;" -d="M237 122h231v694h-231v-694zM483 1030q-1 52 -36 86t-93 34t-94.5 -34t-36.5 -86q0 -51 35.5 -85.5t92.5 -34.5h1q59 0 95 34.5t36 85.5zM1068 122h231v398q0 154 -73 233t-193 79q-136 0 -209 -117h2v101h-231q3 -66 0 -694h231v388q0 38 7 56q15 35 45 59.5t74 24.5 -q116 0 116 -157v-371zM1536 1120v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" /> - <glyph glyph-name="pushpin" unicode="&#xf08d;" horiz-adv-x="1152" -d="M480 672v448q0 14 -9 23t-23 9t-23 -9t-9 -23v-448q0 -14 9 -23t23 -9t23 9t9 23zM1152 320q0 -26 -19 -45t-45 -19h-429l-51 -483q-2 -12 -10.5 -20.5t-20.5 -8.5h-1q-27 0 -32 27l-76 485h-404q-26 0 -45 19t-19 45q0 123 78.5 221.5t177.5 98.5v512q-52 0 -90 38 -t-38 90t38 90t90 38h640q52 0 90 -38t38 -90t-38 -90t-90 -38v-512q99 0 177.5 -98.5t78.5 -221.5z" /> - <glyph glyph-name="external_link" unicode="&#xf08e;" horiz-adv-x="1792" -d="M1408 608v-320q0 -119 -84.5 -203.5t-203.5 -84.5h-832q-119 0 -203.5 84.5t-84.5 203.5v832q0 119 84.5 203.5t203.5 84.5h704q14 0 23 -9t9 -23v-64q0 -14 -9 -23t-23 -9h-704q-66 0 -113 -47t-47 -113v-832q0 -66 47 -113t113 -47h832q66 0 113 47t47 113v320 -q0 14 9 23t23 9h64q14 0 23 -9t9 -23zM1792 1472v-512q0 -26 -19 -45t-45 -19t-45 19l-176 176l-652 -652q-10 -10 -23 -10t-23 10l-114 114q-10 10 -10 23t10 23l652 652l-176 176q-19 19 -19 45t19 45t45 19h512q26 0 45 -19t19 -45z" /> - <glyph glyph-name="signin" unicode="&#xf090;" -d="M1184 640q0 -26 -19 -45l-544 -544q-19 -19 -45 -19t-45 19t-19 45v288h-448q-26 0 -45 19t-19 45v384q0 26 19 45t45 19h448v288q0 26 19 45t45 19t45 -19l544 -544q19 -19 19 -45zM1536 992v-704q0 -119 -84.5 -203.5t-203.5 -84.5h-320q-13 0 -22.5 9.5t-9.5 22.5 -q0 4 -1 20t-0.5 26.5t3 23.5t10 19.5t20.5 6.5h320q66 0 113 47t47 113v704q0 66 -47 113t-113 47h-288h-11h-13t-11.5 1t-11.5 3t-8 5.5t-7 9t-2 13.5q0 4 -1 20t-0.5 26.5t3 23.5t10 19.5t20.5 6.5h320q119 0 203.5 -84.5t84.5 -203.5z" /> - <glyph glyph-name="trophy" unicode="&#xf091;" horiz-adv-x="1664" -d="M458 653q-74 162 -74 371h-256v-96q0 -78 94.5 -162t235.5 -113zM1536 928v96h-256q0 -209 -74 -371q141 29 235.5 113t94.5 162zM1664 1056v-128q0 -71 -41.5 -143t-112 -130t-173 -97.5t-215.5 -44.5q-42 -54 -95 -95q-38 -34 -52.5 -72.5t-14.5 -89.5q0 -54 30.5 -91 -t97.5 -37q75 0 133.5 -45.5t58.5 -114.5v-64q0 -14 -9 -23t-23 -9h-832q-14 0 -23 9t-9 23v64q0 69 58.5 114.5t133.5 45.5q67 0 97.5 37t30.5 91q0 51 -14.5 89.5t-52.5 72.5q-53 41 -95 95q-113 5 -215.5 44.5t-173 97.5t-112 130t-41.5 143v128q0 40 28 68t68 28h288v96 -q0 66 47 113t113 47h576q66 0 113 -47t47 -113v-96h288q40 0 68 -28t28 -68z" /> - <glyph glyph-name="github_sign" unicode="&#xf092;" -d="M519 336q4 6 -3 13q-9 7 -14 2q-4 -6 3 -13q9 -7 14 -2zM491 377q-5 7 -12 4q-6 -4 0 -12q7 -8 12 -5q6 4 0 13zM450 417q2 4 -5 8q-7 2 -8 -2q-3 -5 4 -8q8 -2 9 2zM471 394q2 1 1.5 4.5t-3.5 5.5q-6 7 -10 3t1 -11q6 -6 11 -2zM557 319q2 7 -9 11q-9 3 -13 -4 -q-2 -7 9 -11q9 -3 13 4zM599 316q0 8 -12 8q-10 0 -10 -8t11 -8t11 8zM638 323q-2 7 -13 5t-9 -9q2 -8 12 -6t10 10zM1280 640q0 212 -150 362t-362 150t-362 -150t-150 -362q0 -167 98 -300.5t252 -185.5q18 -3 26.5 5t8.5 20q0 52 -1 95q-6 -1 -15.5 -2.5t-35.5 -2t-48 4 -t-43.5 20t-29.5 41.5q-23 59 -57 74q-2 1 -4.5 3.5l-8 8t-7 9.5t4 7.5t19.5 3.5q6 0 15 -2t30 -15.5t33 -35.5q16 -28 37.5 -42t43.5 -14t38 3.5t30 9.5q7 47 33 69q-49 6 -86 18.5t-73 39t-55.5 76t-19.5 119.5q0 79 53 137q-24 62 5 136q19 6 54.5 -7.5t60.5 -29.5l26 -16 -q58 17 128 17t128 -17q11 7 28.5 18t55.5 26t57 9q29 -74 5 -136q53 -58 53 -137q0 -57 -14 -100.5t-35.5 -70t-53.5 -44.5t-62.5 -26t-68.5 -12q35 -31 35 -95q0 -40 -0.5 -89t-0.5 -51q0 -12 8.5 -20t26.5 -5q154 52 252 185.5t98 300.5zM1536 1120v-960 -q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" /> - <glyph glyph-name="upload_alt" unicode="&#xf093;" horiz-adv-x="1664" -d="M1280 64q0 26 -19 45t-45 19t-45 -19t-19 -45t19 -45t45 -19t45 19t19 45zM1536 64q0 26 -19 45t-45 19t-45 -19t-19 -45t19 -45t45 -19t45 19t19 45zM1664 288v-320q0 -40 -28 -68t-68 -28h-1472q-40 0 -68 28t-28 68v320q0 40 28 68t68 28h427q21 -56 70.5 -92 -t110.5 -36h256q61 0 110.5 36t70.5 92h427q40 0 68 -28t28 -68zM1339 936q-17 -40 -59 -40h-256v-448q0 -26 -19 -45t-45 -19h-256q-26 0 -45 19t-19 45v448h-256q-42 0 -59 40q-17 39 14 69l448 448q18 19 45 19t45 -19l448 -448q31 -30 14 -69z" /> - <glyph glyph-name="lemon" unicode="&#xf094;" -d="M1407 710q0 44 -7 113.5t-18 96.5q-12 30 -17 44t-9 36.5t-4 48.5q0 23 5 68.5t5 67.5q0 37 -10 55q-4 1 -13 1q-19 0 -58 -4.5t-59 -4.5q-60 0 -176 24t-175 24q-43 0 -94.5 -11.5t-85 -23.5t-89.5 -34q-137 -54 -202 -103q-96 -73 -159.5 -189.5t-88 -236t-24.5 -248.5 -q0 -40 12.5 -120t12.5 -121q0 -23 -11 -66.5t-11 -65.5t12 -36.5t34 -14.5q24 0 72.5 11t73.5 11q57 0 169.5 -15.5t169.5 -15.5q181 0 284 36q129 45 235.5 152.5t166 245.5t59.5 275zM1535 712q0 -165 -70 -327.5t-196 -288t-281 -180.5q-124 -44 -326 -44 -q-57 0 -170 14.5t-169 14.5q-24 0 -72.5 -14.5t-73.5 -14.5q-73 0 -123.5 55.5t-50.5 128.5q0 24 11 68t11 67q0 40 -12.5 120.5t-12.5 121.5q0 111 18 217.5t54.5 209.5t100.5 194t150 156q78 59 232 120q194 78 316 78q60 0 175.5 -24t173.5 -24q19 0 57 5t58 5 -q81 0 118 -50.5t37 -134.5q0 -23 -5 -68t-5 -68q0 -13 2 -25t3.5 -16.5t7.5 -20.5t8 -20q16 -40 25 -118.5t9 -136.5z" /> - <glyph glyph-name="phone" unicode="&#xf095;" horiz-adv-x="1408" -d="M1408 296q0 -27 -10 -70.5t-21 -68.5q-21 -50 -122 -106q-94 -51 -186 -51q-27 0 -53 3.5t-57.5 12.5t-47 14.5t-55.5 20.5t-49 18q-98 35 -175 83q-127 79 -264 216t-216 264q-48 77 -83 175q-3 9 -18 49t-20.5 55.5t-14.5 47t-12.5 57.5t-3.5 53q0 92 51 186 -q56 101 106 122q25 11 68.5 21t70.5 10q14 0 21 -3q18 -6 53 -76q11 -19 30 -54t35 -63.5t31 -53.5q3 -4 17.5 -25t21.5 -35.5t7 -28.5q0 -20 -28.5 -50t-62 -55t-62 -53t-28.5 -46q0 -9 5 -22.5t8.5 -20.5t14 -24t11.5 -19q76 -137 174 -235t235 -174q2 -1 19 -11.5t24 -14 -t20.5 -8.5t22.5 -5q18 0 46 28.5t53 62t55 62t50 28.5q14 0 28.5 -7t35.5 -21.5t25 -17.5q25 -15 53.5 -31t63.5 -35t54 -30q70 -35 76 -53q3 -7 3 -21z" /> - <glyph glyph-name="check_empty" unicode="&#xf096;" horiz-adv-x="1408" -d="M1120 1280h-832q-66 0 -113 -47t-47 -113v-832q0 -66 47 -113t113 -47h832q66 0 113 47t47 113v832q0 66 -47 113t-113 47zM1408 1120v-832q0 -119 -84.5 -203.5t-203.5 -84.5h-832q-119 0 -203.5 84.5t-84.5 203.5v832q0 119 84.5 203.5t203.5 84.5h832 -q119 0 203.5 -84.5t84.5 -203.5z" /> - <glyph glyph-name="bookmark_empty" unicode="&#xf097;" horiz-adv-x="1280" -d="M1152 1280h-1024v-1242l423 406l89 85l89 -85l423 -406v1242zM1164 1408q23 0 44 -9q33 -13 52.5 -41t19.5 -62v-1289q0 -34 -19.5 -62t-52.5 -41q-19 -8 -44 -8q-48 0 -83 32l-441 424l-441 -424q-36 -33 -83 -33q-23 0 -44 9q-33 13 -52.5 41t-19.5 62v1289 -q0 34 19.5 62t52.5 41q21 9 44 9h1048z" /> - <glyph glyph-name="phone_sign" unicode="&#xf098;" -d="M1280 343q0 11 -2 16t-18 16.5t-40.5 25t-47.5 26.5t-45.5 25t-28.5 15q-5 3 -19 13t-25 15t-21 5q-15 0 -36.5 -20.5t-39.5 -45t-38.5 -45t-33.5 -20.5q-7 0 -16.5 3.5t-15.5 6.5t-17 9.5t-14 8.5q-99 55 -170 126.5t-127 170.5q-2 3 -8.5 14t-9.5 17t-6.5 15.5 -t-3.5 16.5q0 13 20.5 33.5t45 38.5t45 39.5t20.5 36.5q0 10 -5 21t-15 25t-13 19q-3 6 -15 28.5t-25 45.5t-26.5 47.5t-25 40.5t-16.5 18t-16 2q-48 0 -101 -22q-46 -21 -80 -94.5t-34 -130.5q0 -16 2.5 -34t5 -30.5t9 -33t10 -29.5t12.5 -33t11 -30q60 -164 216.5 -320.5 -t320.5 -216.5q6 -2 30 -11t33 -12.5t29.5 -10t33 -9t30.5 -5t34 -2.5q57 0 130.5 34t94.5 80q22 53 22 101zM1536 1120v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z -" /> - <glyph glyph-name="twitter" unicode="&#xf099;" horiz-adv-x="1664" -d="M1620 1128q-67 -98 -162 -167q1 -14 1 -42q0 -130 -38 -259.5t-115.5 -248.5t-184.5 -210.5t-258 -146t-323 -54.5q-271 0 -496 145q35 -4 78 -4q225 0 401 138q-105 2 -188 64.5t-114 159.5q33 -5 61 -5q43 0 85 11q-112 23 -185.5 111.5t-73.5 205.5v4q68 -38 146 -41 -q-66 44 -105 115t-39 154q0 88 44 163q121 -149 294.5 -238.5t371.5 -99.5q-8 38 -8 74q0 134 94.5 228.5t228.5 94.5q140 0 236 -102q109 21 205 78q-37 -115 -142 -178q93 10 186 50z" /> - <glyph glyph-name="facebook" unicode="&#xf09a;" horiz-adv-x="1024" -d="M959 1524v-264h-157q-86 0 -116 -36t-30 -108v-189h293l-39 -296h-254v-759h-306v759h-255v296h255v218q0 186 104 288.5t277 102.5q147 0 228 -12z" /> - <glyph glyph-name="github" unicode="&#xf09b;" -d="M768 1408q209 0 385.5 -103t279.5 -279.5t103 -385.5q0 -251 -146.5 -451.5t-378.5 -277.5q-27 -5 -40 7t-13 30q0 3 0.5 76.5t0.5 134.5q0 97 -52 142q57 6 102.5 18t94 39t81 66.5t53 105t20.5 150.5q0 119 -79 206q37 91 -8 204q-28 9 -81 -11t-92 -44l-38 -24 -q-93 26 -192 26t-192 -26q-16 11 -42.5 27t-83.5 38.5t-85 13.5q-45 -113 -8 -204q-79 -87 -79 -206q0 -85 20.5 -150t52.5 -105t80.5 -67t94 -39t102.5 -18q-39 -36 -49 -103q-21 -10 -45 -15t-57 -5t-65.5 21.5t-55.5 62.5q-19 32 -48.5 52t-49.5 24l-20 3q-21 0 -29 -4.5 -t-5 -11.5t9 -14t13 -12l7 -5q22 -10 43.5 -38t31.5 -51l10 -23q13 -38 44 -61.5t67 -30t69.5 -7t55.5 3.5l23 4q0 -38 0.5 -88.5t0.5 -54.5q0 -18 -13 -30t-40 -7q-232 77 -378.5 277.5t-146.5 451.5q0 209 103 385.5t279.5 279.5t385.5 103zM291 305q3 7 -7 12 -q-10 3 -13 -2q-3 -7 7 -12q9 -6 13 2zM322 271q7 5 -2 16q-10 9 -16 3q-7 -5 2 -16q10 -10 16 -3zM352 226q9 7 0 19q-8 13 -17 6q-9 -5 0 -18t17 -7zM394 184q8 8 -4 19q-12 12 -20 3q-9 -8 4 -19q12 -12 20 -3zM451 159q3 11 -13 16q-15 4 -19 -7t13 -15q15 -6 19 6z -M514 154q0 13 -17 11q-16 0 -16 -11q0 -13 17 -11q16 0 16 11zM572 164q-2 11 -18 9q-16 -3 -14 -15t18 -8t14 14z" /> - <glyph glyph-name="unlock" unicode="&#xf09c;" horiz-adv-x="1664" -d="M1664 960v-256q0 -26 -19 -45t-45 -19h-64q-26 0 -45 19t-19 45v256q0 106 -75 181t-181 75t-181 -75t-75 -181v-192h96q40 0 68 -28t28 -68v-576q0 -40 -28 -68t-68 -28h-960q-40 0 -68 28t-28 68v576q0 40 28 68t68 28h672v192q0 185 131.5 316.5t316.5 131.5 -t316.5 -131.5t131.5 -316.5z" /> - <glyph glyph-name="credit_card" unicode="&#xf09d;" horiz-adv-x="1920" -d="M1760 1408q66 0 113 -47t47 -113v-1216q0 -66 -47 -113t-113 -47h-1600q-66 0 -113 47t-47 113v1216q0 66 47 113t113 47h1600zM160 1280q-13 0 -22.5 -9.5t-9.5 -22.5v-224h1664v224q0 13 -9.5 22.5t-22.5 9.5h-1600zM1760 0q13 0 22.5 9.5t9.5 22.5v608h-1664v-608 -q0 -13 9.5 -22.5t22.5 -9.5h1600zM256 128v128h256v-128h-256zM640 128v128h384v-128h-384z" /> - <glyph glyph-name="rss" unicode="&#xf09e;" horiz-adv-x="1408" -d="M384 192q0 -80 -56 -136t-136 -56t-136 56t-56 136t56 136t136 56t136 -56t56 -136zM896 69q2 -28 -17 -48q-18 -21 -47 -21h-135q-25 0 -43 16.5t-20 41.5q-22 229 -184.5 391.5t-391.5 184.5q-25 2 -41.5 20t-16.5 43v135q0 29 21 47q17 17 43 17h5q160 -13 306 -80.5 -t259 -181.5q114 -113 181.5 -259t80.5 -306zM1408 67q2 -27 -18 -47q-18 -20 -46 -20h-143q-26 0 -44.5 17.5t-19.5 42.5q-12 215 -101 408.5t-231.5 336t-336 231.5t-408.5 102q-25 1 -42.5 19.5t-17.5 43.5v143q0 28 20 46q18 18 44 18h3q262 -13 501.5 -120t425.5 -294 -q187 -186 294 -425.5t120 -501.5z" /> - <glyph glyph-name="hdd" unicode="&#xf0a0;" -d="M1040 320q0 -33 -23.5 -56.5t-56.5 -23.5t-56.5 23.5t-23.5 56.5t23.5 56.5t56.5 23.5t56.5 -23.5t23.5 -56.5zM1296 320q0 -33 -23.5 -56.5t-56.5 -23.5t-56.5 23.5t-23.5 56.5t23.5 56.5t56.5 23.5t56.5 -23.5t23.5 -56.5zM1408 160v320q0 13 -9.5 22.5t-22.5 9.5 -h-1216q-13 0 -22.5 -9.5t-9.5 -22.5v-320q0 -13 9.5 -22.5t22.5 -9.5h1216q13 0 22.5 9.5t9.5 22.5zM178 640h1180l-157 482q-4 13 -16 21.5t-26 8.5h-782q-14 0 -26 -8.5t-16 -21.5zM1536 480v-320q0 -66 -47 -113t-113 -47h-1216q-66 0 -113 47t-47 113v320q0 25 16 75 -l197 606q17 53 63 86t101 33h782q55 0 101 -33t63 -86l197 -606q16 -50 16 -75z" /> - <glyph glyph-name="bullhorn" unicode="&#xf0a1;" horiz-adv-x="1792" -d="M1664 896q53 0 90.5 -37.5t37.5 -90.5t-37.5 -90.5t-90.5 -37.5v-384q0 -52 -38 -90t-90 -38q-417 347 -812 380q-58 -19 -91 -66t-31 -100.5t40 -92.5q-20 -33 -23 -65.5t6 -58t33.5 -55t48 -50t61.5 -50.5q-29 -58 -111.5 -83t-168.5 -11.5t-132 55.5q-7 23 -29.5 87.5 -t-32 94.5t-23 89t-15 101t3.5 98.5t22 110.5h-122q-66 0 -113 47t-47 113v192q0 66 47 113t113 47h480q435 0 896 384q52 0 90 -38t38 -90v-384zM1536 292v954q-394 -302 -768 -343v-270q377 -42 768 -341z" /> - <glyph glyph-name="bell" unicode="&#xf0a2;" horiz-adv-x="1792" -d="M912 -160q0 16 -16 16q-59 0 -101.5 42.5t-42.5 101.5q0 16 -16 16t-16 -16q0 -73 51.5 -124.5t124.5 -51.5q16 0 16 16zM246 128h1300q-266 300 -266 832q0 51 -24 105t-69 103t-121.5 80.5t-169.5 31.5t-169.5 -31.5t-121.5 -80.5t-69 -103t-24 -105q0 -532 -266 -832z -M1728 128q0 -52 -38 -90t-90 -38h-448q0 -106 -75 -181t-181 -75t-181 75t-75 181h-448q-52 0 -90 38t-38 90q50 42 91 88t85 119.5t74.5 158.5t50 206t19.5 260q0 152 117 282.5t307 158.5q-8 19 -8 39q0 40 28 68t68 28t68 -28t28 -68q0 -20 -8 -39q190 -28 307 -158.5 -t117 -282.5q0 -139 19.5 -260t50 -206t74.5 -158.5t85 -119.5t91 -88z" /> - <glyph glyph-name="certificate" unicode="&#xf0a3;" -d="M1376 640l138 -135q30 -28 20 -70q-12 -41 -52 -51l-188 -48l53 -186q12 -41 -19 -70q-29 -31 -70 -19l-186 53l-48 -188q-10 -40 -51 -52q-12 -2 -19 -2q-31 0 -51 22l-135 138l-135 -138q-28 -30 -70 -20q-41 11 -51 52l-48 188l-186 -53q-41 -12 -70 19q-31 29 -19 70 -l53 186l-188 48q-40 10 -52 51q-10 42 20 70l138 135l-138 135q-30 28 -20 70q12 41 52 51l188 48l-53 186q-12 41 19 70q29 31 70 19l186 -53l48 188q10 41 51 51q41 12 70 -19l135 -139l135 139q29 30 70 19q41 -10 51 -51l48 -188l186 53q41 12 70 -19q31 -29 19 -70 -l-53 -186l188 -48q40 -10 52 -51q10 -42 -20 -70z" /> - <glyph glyph-name="hand_right" unicode="&#xf0a4;" horiz-adv-x="1792" -d="M256 192q0 26 -19 45t-45 19t-45 -19t-19 -45t19 -45t45 -19t45 19t19 45zM1664 768q0 51 -39 89.5t-89 38.5h-576q0 20 15 48.5t33 55t33 68t15 84.5q0 67 -44.5 97.5t-115.5 30.5q-24 0 -90 -139q-24 -44 -37 -65q-40 -64 -112 -145q-71 -81 -101 -106 -q-69 -57 -140 -57h-32v-640h32q72 0 167 -32t193.5 -64t179.5 -32q189 0 189 167q0 26 -5 56q30 16 47.5 52.5t17.5 73.5t-18 69q53 50 53 119q0 25 -10 55.5t-25 47.5h331q52 0 90 38t38 90zM1792 769q0 -105 -75.5 -181t-180.5 -76h-169q-4 -62 -37 -119q3 -21 3 -43 -q0 -101 -60 -178q1 -139 -85 -219.5t-227 -80.5q-133 0 -322 69q-164 59 -223 59h-288q-53 0 -90.5 37.5t-37.5 90.5v640q0 53 37.5 90.5t90.5 37.5h288q10 0 21.5 4.5t23.5 14t22.5 18t24 22.5t20.5 21.5t19 21.5t14 17q65 74 100 129q13 21 33 62t37 72t40.5 63t55 49.5 -t69.5 17.5q125 0 206.5 -67t81.5 -189q0 -68 -22 -128h374q104 0 180 -76t76 -179z" /> - <glyph glyph-name="hand_left" unicode="&#xf0a5;" horiz-adv-x="1792" -d="M1376 128h32v640h-32q-35 0 -67.5 12t-62.5 37t-50 46t-49 54q-8 9 -12 14q-72 81 -112 145q-14 22 -38 68q-1 3 -10.5 22.5t-18.5 36t-20 35.5t-21.5 30.5t-18.5 11.5q-71 0 -115.5 -30.5t-44.5 -97.5q0 -43 15 -84.5t33 -68t33 -55t15 -48.5h-576q-50 0 -89 -38.5 -t-39 -89.5q0 -52 38 -90t90 -38h331q-15 -17 -25 -47.5t-10 -55.5q0 -69 53 -119q-18 -32 -18 -69t17.5 -73.5t47.5 -52.5q-4 -24 -4 -56q0 -85 48.5 -126t135.5 -41q84 0 183 32t194 64t167 32zM1664 192q0 26 -19 45t-45 19t-45 -19t-19 -45t19 -45t45 -19t45 19t19 45z -M1792 768v-640q0 -53 -37.5 -90.5t-90.5 -37.5h-288q-59 0 -223 -59q-190 -69 -317 -69q-142 0 -230 77.5t-87 217.5l1 5q-61 76 -61 178q0 22 3 43q-33 57 -37 119h-169q-105 0 -180.5 76t-75.5 181q0 103 76 179t180 76h374q-22 60 -22 128q0 122 81.5 189t206.5 67 -q38 0 69.5 -17.5t55 -49.5t40.5 -63t37 -72t33 -62q35 -55 100 -129q2 -3 14 -17t19 -21.5t20.5 -21.5t24 -22.5t22.5 -18t23.5 -14t21.5 -4.5h288q53 0 90.5 -37.5t37.5 -90.5z" /> - <glyph glyph-name="hand_up" unicode="&#xf0a6;" -d="M1280 -64q0 26 -19 45t-45 19t-45 -19t-19 -45t19 -45t45 -19t45 19t19 45zM1408 700q0 189 -167 189q-26 0 -56 -5q-16 30 -52.5 47.5t-73.5 17.5t-69 -18q-50 53 -119 53q-25 0 -55.5 -10t-47.5 -25v331q0 52 -38 90t-90 38q-51 0 -89.5 -39t-38.5 -89v-576 -q-20 0 -48.5 15t-55 33t-68 33t-84.5 15q-67 0 -97.5 -44.5t-30.5 -115.5q0 -24 139 -90q44 -24 65 -37q64 -40 145 -112q81 -71 106 -101q57 -69 57 -140v-32h640v32q0 72 32 167t64 193.5t32 179.5zM1536 705q0 -133 -69 -322q-59 -164 -59 -223v-288q0 -53 -37.5 -90.5 -t-90.5 -37.5h-640q-53 0 -90.5 37.5t-37.5 90.5v288q0 10 -4.5 21.5t-14 23.5t-18 22.5t-22.5 24t-21.5 20.5t-21.5 19t-17 14q-74 65 -129 100q-21 13 -62 33t-72 37t-63 40.5t-49.5 55t-17.5 69.5q0 125 67 206.5t189 81.5q68 0 128 -22v374q0 104 76 180t179 76 -q105 0 181 -75.5t76 -180.5v-169q62 -4 119 -37q21 3 43 3q101 0 178 -60q139 1 219.5 -85t80.5 -227z" /> - <glyph glyph-name="hand_down" unicode="&#xf0a7;" -d="M1408 576q0 84 -32 183t-64 194t-32 167v32h-640v-32q0 -35 -12 -67.5t-37 -62.5t-46 -50t-54 -49q-9 -8 -14 -12q-81 -72 -145 -112q-22 -14 -68 -38q-3 -1 -22.5 -10.5t-36 -18.5t-35.5 -20t-30.5 -21.5t-11.5 -18.5q0 -71 30.5 -115.5t97.5 -44.5q43 0 84.5 15t68 33 -t55 33t48.5 15v-576q0 -50 38.5 -89t89.5 -39q52 0 90 38t38 90v331q46 -35 103 -35q69 0 119 53q32 -18 69 -18t73.5 17.5t52.5 47.5q24 -4 56 -4q85 0 126 48.5t41 135.5zM1280 1344q0 26 -19 45t-45 19t-45 -19t-19 -45t19 -45t45 -19t45 19t19 45zM1536 580 -q0 -142 -77.5 -230t-217.5 -87l-5 1q-76 -61 -178 -61q-22 0 -43 3q-54 -30 -119 -37v-169q0 -105 -76 -180.5t-181 -75.5q-103 0 -179 76t-76 180v374q-54 -22 -128 -22q-121 0 -188.5 81.5t-67.5 206.5q0 38 17.5 69.5t49.5 55t63 40.5t72 37t62 33q55 35 129 100 -q3 2 17 14t21.5 19t21.5 20.5t22.5 24t18 22.5t14 23.5t4.5 21.5v288q0 53 37.5 90.5t90.5 37.5h640q53 0 90.5 -37.5t37.5 -90.5v-288q0 -59 59 -223q69 -190 69 -317z" /> - <glyph glyph-name="circle_arrow_left" unicode="&#xf0a8;" -d="M1280 576v128q0 26 -19 45t-45 19h-502l189 189q19 19 19 45t-19 45l-91 91q-18 18 -45 18t-45 -18l-362 -362l-91 -91q-18 -18 -18 -45t18 -45l91 -91l362 -362q18 -18 45 -18t45 18l91 91q18 18 18 45t-18 45l-189 189h502q26 0 45 19t19 45zM1536 640 -q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" /> - <glyph glyph-name="circle_arrow_right" unicode="&#xf0a9;" -d="M1285 640q0 27 -18 45l-91 91l-362 362q-18 18 -45 18t-45 -18l-91 -91q-18 -18 -18 -45t18 -45l189 -189h-502q-26 0 -45 -19t-19 -45v-128q0 -26 19 -45t45 -19h502l-189 -189q-19 -19 -19 -45t19 -45l91 -91q18 -18 45 -18t45 18l362 362l91 91q18 18 18 45zM1536 640 -q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" /> - <glyph glyph-name="circle_arrow_up" unicode="&#xf0aa;" -d="M1284 641q0 27 -18 45l-362 362l-91 91q-18 18 -45 18t-45 -18l-91 -91l-362 -362q-18 -18 -18 -45t18 -45l91 -91q18 -18 45 -18t45 18l189 189v-502q0 -26 19 -45t45 -19h128q26 0 45 19t19 45v502l189 -189q19 -19 45 -19t45 19l91 91q18 18 18 45zM1536 640 -q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" /> - <glyph glyph-name="circle_arrow_down" unicode="&#xf0ab;" -d="M1284 639q0 27 -18 45l-91 91q-18 18 -45 18t-45 -18l-189 -189v502q0 26 -19 45t-45 19h-128q-26 0 -45 -19t-19 -45v-502l-189 189q-19 19 -45 19t-45 -19l-91 -91q-18 -18 -18 -45t18 -45l362 -362l91 -91q18 -18 45 -18t45 18l91 91l362 362q18 18 18 45zM1536 640 -q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" /> - <glyph glyph-name="globe" unicode="&#xf0ac;" -d="M768 1408q209 0 385.5 -103t279.5 -279.5t103 -385.5t-103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103zM1042 887q-2 -1 -9.5 -9.5t-13.5 -9.5q2 0 4.5 5t5 11t3.5 7q6 7 22 15q14 6 52 12q34 8 51 -11 -q-2 2 9.5 13t14.5 12q3 2 15 4.5t15 7.5l2 22q-12 -1 -17.5 7t-6.5 21q0 -2 -6 -8q0 7 -4.5 8t-11.5 -1t-9 -1q-10 3 -15 7.5t-8 16.5t-4 15q-2 5 -9.5 11t-9.5 10q-1 2 -2.5 5.5t-3 6.5t-4 5.5t-5.5 2.5t-7 -5t-7.5 -10t-4.5 -5q-3 2 -6 1.5t-4.5 -1t-4.5 -3t-5 -3.5 -q-3 -2 -8.5 -3t-8.5 -2q15 5 -1 11q-10 4 -16 3q9 4 7.5 12t-8.5 14h5q-1 4 -8.5 8.5t-17.5 8.5t-13 6q-8 5 -34 9.5t-33 0.5q-5 -6 -4.5 -10.5t4 -14t3.5 -12.5q1 -6 -5.5 -13t-6.5 -12q0 -7 14 -15.5t10 -21.5q-3 -8 -16 -16t-16 -12q-5 -8 -1.5 -18.5t10.5 -16.5 -q2 -2 1.5 -4t-3.5 -4.5t-5.5 -4t-6.5 -3.5l-3 -2q-11 -5 -20.5 6t-13.5 26q-7 25 -16 30q-23 8 -29 -1q-5 13 -41 26q-25 9 -58 4q6 1 0 15q-7 15 -19 12q3 6 4 17.5t1 13.5q3 13 12 23q1 1 7 8.5t9.5 13.5t0.5 6q35 -4 50 11q5 5 11.5 17t10.5 17q9 6 14 5.5t14.5 -5.5 -t14.5 -5q14 -1 15.5 11t-7.5 20q12 -1 3 17q-4 7 -8 9q-12 4 -27 -5q-8 -4 2 -8q-1 1 -9.5 -10.5t-16.5 -17.5t-16 5q-1 1 -5.5 13.5t-9.5 13.5q-8 0 -16 -15q3 8 -11 15t-24 8q19 12 -8 27q-7 4 -20.5 5t-19.5 -4q-5 -7 -5.5 -11.5t5 -8t10.5 -5.5t11.5 -4t8.5 -3 -q14 -10 8 -14q-2 -1 -8.5 -3.5t-11.5 -4.5t-6 -4q-3 -4 0 -14t-2 -14q-5 5 -9 17.5t-7 16.5q7 -9 -25 -6l-10 1q-4 0 -16 -2t-20.5 -1t-13.5 8q-4 8 0 20q1 4 4 2q-4 3 -11 9.5t-10 8.5q-46 -15 -94 -41q6 -1 12 1q5 2 13 6.5t10 5.5q34 14 42 7l5 5q14 -16 20 -25 -q-7 4 -30 1q-20 -6 -22 -12q7 -12 5 -18q-4 3 -11.5 10t-14.5 11t-15 5q-16 0 -22 -1q-146 -80 -235 -222q7 -7 12 -8q4 -1 5 -9t2.5 -11t11.5 3q9 -8 3 -19q1 1 44 -27q19 -17 21 -21q3 -11 -10 -18q-1 2 -9 9t-9 4q-3 -5 0.5 -18.5t10.5 -12.5q-7 0 -9.5 -16t-2.5 -35.5 -t-1 -23.5l2 -1q-3 -12 5.5 -34.5t21.5 -19.5q-13 -3 20 -43q6 -8 8 -9q3 -2 12 -7.5t15 -10t10 -10.5q4 -5 10 -22.5t14 -23.5q-2 -6 9.5 -20t10.5 -23q-1 0 -2.5 -1t-2.5 -1q3 -7 15.5 -14t15.5 -13q1 -3 2 -10t3 -11t8 -2q2 20 -24 62q-15 25 -17 29q-3 5 -5.5 15.5 -t-4.5 14.5q2 0 6 -1.5t8.5 -3.5t7.5 -4t2 -3q-3 -7 2 -17.5t12 -18.5t17 -19t12 -13q6 -6 14 -19.5t0 -13.5q9 0 20 -10.5t17 -19.5q5 -8 8 -26t5 -24q2 -7 8.5 -13.5t12.5 -9.5l16 -8t13 -7q5 -2 18.5 -10.5t21.5 -11.5q10 -4 16 -4t14.5 2.5t13.5 3.5q15 2 29 -15t21 -21 -q36 -19 55 -11q-2 -1 0.5 -7.5t8 -15.5t9 -14.5t5.5 -8.5q5 -6 18 -15t18 -15q6 4 7 9q-3 -8 7 -20t18 -10q14 3 14 32q-31 -15 -49 18q0 1 -2.5 5.5t-4 8.5t-2.5 8.5t0 7.5t5 3q9 0 10 3.5t-2 12.5t-4 13q-1 8 -11 20t-12 15q-5 -9 -16 -8t-16 9q0 -1 -1.5 -5.5t-1.5 -6.5 -q-13 0 -15 1q1 3 2.5 17.5t3.5 22.5q1 4 5.5 12t7.5 14.5t4 12.5t-4.5 9.5t-17.5 2.5q-19 -1 -26 -20q-1 -3 -3 -10.5t-5 -11.5t-9 -7q-7 -3 -24 -2t-24 5q-13 8 -22.5 29t-9.5 37q0 10 2.5 26.5t3 25t-5.5 24.5q3 2 9 9.5t10 10.5q2 1 4.5 1.5t4.5 0t4 1.5t3 6q-1 1 -4 3 -q-3 3 -4 3q7 -3 28.5 1.5t27.5 -1.5q15 -11 22 2q0 1 -2.5 9.5t-0.5 13.5q5 -27 29 -9q3 -3 15.5 -5t17.5 -5q3 -2 7 -5.5t5.5 -4.5t5 0.5t8.5 6.5q10 -14 12 -24q11 -40 19 -44q7 -3 11 -2t4.5 9.5t0 14t-1.5 12.5l-1 8v18l-1 8q-15 3 -18.5 12t1.5 18.5t15 18.5q1 1 8 3.5 -t15.5 6.5t12.5 8q21 19 15 35q7 0 11 9q-1 0 -5 3t-7.5 5t-4.5 2q9 5 2 16q5 3 7.5 11t7.5 10q9 -12 21 -2q8 8 1 16q5 7 20.5 10.5t18.5 9.5q7 -2 8 2t1 12t3 12q4 5 15 9t13 5l17 11q3 4 0 4q18 -2 31 11q10 11 -6 20q3 6 -3 9.5t-15 5.5q3 1 11.5 0.5t10.5 1.5 -q15 10 -7 16q-17 5 -43 -12zM879 10q206 36 351 189q-3 3 -12.5 4.5t-12.5 3.5q-18 7 -24 8q1 7 -2.5 13t-8 9t-12.5 8t-11 7q-2 2 -7 6t-7 5.5t-7.5 4.5t-8.5 2t-10 -1l-3 -1q-3 -1 -5.5 -2.5t-5.5 -3t-4 -3t0 -2.5q-21 17 -36 22q-5 1 -11 5.5t-10.5 7t-10 1.5t-11.5 -7 -q-5 -5 -6 -15t-2 -13q-7 5 0 17.5t2 18.5q-3 6 -10.5 4.5t-12 -4.5t-11.5 -8.5t-9 -6.5t-8.5 -5.5t-8.5 -7.5q-3 -4 -6 -12t-5 -11q-2 4 -11.5 6.5t-9.5 5.5q2 -10 4 -35t5 -38q7 -31 -12 -48q-27 -25 -29 -40q-4 -22 12 -26q0 -7 -8 -20.5t-7 -21.5q0 -6 2 -16z" /> - <glyph glyph-name="wrench" unicode="&#xf0ad;" horiz-adv-x="1664" -d="M384 64q0 26 -19 45t-45 19t-45 -19t-19 -45t19 -45t45 -19t45 19t19 45zM1028 484l-682 -682q-37 -37 -90 -37q-52 0 -91 37l-106 108q-38 36 -38 90q0 53 38 91l681 681q39 -98 114.5 -173.5t173.5 -114.5zM1662 919q0 -39 -23 -106q-47 -134 -164.5 -217.5 -t-258.5 -83.5q-185 0 -316.5 131.5t-131.5 316.5t131.5 316.5t316.5 131.5q58 0 121.5 -16.5t107.5 -46.5q16 -11 16 -28t-16 -28l-293 -169v-224l193 -107q5 3 79 48.5t135.5 81t70.5 35.5q15 0 23.5 -10t8.5 -25z" /> - <glyph glyph-name="tasks" unicode="&#xf0ae;" horiz-adv-x="1792" -d="M1024 128h640v128h-640v-128zM640 640h1024v128h-1024v-128zM1280 1152h384v128h-384v-128zM1792 320v-256q0 -26 -19 -45t-45 -19h-1664q-26 0 -45 19t-19 45v256q0 26 19 45t45 19h1664q26 0 45 -19t19 -45zM1792 832v-256q0 -26 -19 -45t-45 -19h-1664q-26 0 -45 19 -t-19 45v256q0 26 19 45t45 19h1664q26 0 45 -19t19 -45zM1792 1344v-256q0 -26 -19 -45t-45 -19h-1664q-26 0 -45 19t-19 45v256q0 26 19 45t45 19h1664q26 0 45 -19t19 -45z" /> - <glyph glyph-name="filter" unicode="&#xf0b0;" horiz-adv-x="1408" -d="M1403 1241q17 -41 -14 -70l-493 -493v-742q0 -42 -39 -59q-13 -5 -25 -5q-27 0 -45 19l-256 256q-19 19 -19 45v486l-493 493q-31 29 -14 70q17 39 59 39h1280q42 0 59 -39z" /> - <glyph glyph-name="briefcase" unicode="&#xf0b1;" horiz-adv-x="1792" -d="M640 1280h512v128h-512v-128zM1792 640v-480q0 -66 -47 -113t-113 -47h-1472q-66 0 -113 47t-47 113v480h672v-160q0 -26 19 -45t45 -19h320q26 0 45 19t19 45v160h672zM1024 640v-128h-256v128h256zM1792 1120v-384h-1792v384q0 66 47 113t113 47h352v160q0 40 28 68 -t68 28h576q40 0 68 -28t28 -68v-160h352q66 0 113 -47t47 -113z" /> - <glyph glyph-name="fullscreen" unicode="&#xf0b2;" -d="M1283 995l-355 -355l355 -355l144 144q29 31 70 14q39 -17 39 -59v-448q0 -26 -19 -45t-45 -19h-448q-42 0 -59 40q-17 39 14 69l144 144l-355 355l-355 -355l144 -144q31 -30 14 -69q-17 -40 -59 -40h-448q-26 0 -45 19t-19 45v448q0 42 40 59q39 17 69 -14l144 -144 -l355 355l-355 355l-144 -144q-19 -19 -45 -19q-12 0 -24 5q-40 17 -40 59v448q0 26 19 45t45 19h448q42 0 59 -40q17 -39 -14 -69l-144 -144l355 -355l355 355l-144 144q-31 30 -14 69q17 40 59 40h448q26 0 45 -19t19 -45v-448q0 -42 -39 -59q-13 -5 -25 -5q-26 0 -45 19z -" /> - <glyph glyph-name="group" unicode="&#xf0c0;" horiz-adv-x="1920" -d="M593 640q-162 -5 -265 -128h-134q-82 0 -138 40.5t-56 118.5q0 353 124 353q6 0 43.5 -21t97.5 -42.5t119 -21.5q67 0 133 23q-5 -37 -5 -66q0 -139 81 -256zM1664 3q0 -120 -73 -189.5t-194 -69.5h-874q-121 0 -194 69.5t-73 189.5q0 53 3.5 103.5t14 109t26.5 108.5 -t43 97.5t62 81t85.5 53.5t111.5 20q10 0 43 -21.5t73 -48t107 -48t135 -21.5t135 21.5t107 48t73 48t43 21.5q61 0 111.5 -20t85.5 -53.5t62 -81t43 -97.5t26.5 -108.5t14 -109t3.5 -103.5zM640 1280q0 -106 -75 -181t-181 -75t-181 75t-75 181t75 181t181 75t181 -75 -t75 -181zM1344 896q0 -159 -112.5 -271.5t-271.5 -112.5t-271.5 112.5t-112.5 271.5t112.5 271.5t271.5 112.5t271.5 -112.5t112.5 -271.5zM1920 671q0 -78 -56 -118.5t-138 -40.5h-134q-103 123 -265 128q81 117 81 256q0 29 -5 66q66 -23 133 -23q59 0 119 21.5t97.5 42.5 -t43.5 21q124 0 124 -353zM1792 1280q0 -106 -75 -181t-181 -75t-181 75t-75 181t75 181t181 75t181 -75t75 -181z" /> - <glyph glyph-name="link" unicode="&#xf0c1;" horiz-adv-x="1664" -d="M1456 320q0 40 -28 68l-208 208q-28 28 -68 28q-42 0 -72 -32q3 -3 19 -18.5t21.5 -21.5t15 -19t13 -25.5t3.5 -27.5q0 -40 -28 -68t-68 -28q-15 0 -27.5 3.5t-25.5 13t-19 15t-21.5 21.5t-18.5 19q-33 -31 -33 -73q0 -40 28 -68l206 -207q27 -27 68 -27q40 0 68 26 -l147 146q28 28 28 67zM753 1025q0 40 -28 68l-206 207q-28 28 -68 28q-39 0 -68 -27l-147 -146q-28 -28 -28 -67q0 -40 28 -68l208 -208q27 -27 68 -27q42 0 72 31q-3 3 -19 18.5t-21.5 21.5t-15 19t-13 25.5t-3.5 27.5q0 40 28 68t68 28q15 0 27.5 -3.5t25.5 -13t19 -15 -t21.5 -21.5t18.5 -19q33 31 33 73zM1648 320q0 -120 -85 -203l-147 -146q-83 -83 -203 -83q-121 0 -204 85l-206 207q-83 83 -83 203q0 123 88 209l-88 88q-86 -88 -208 -88q-120 0 -204 84l-208 208q-84 84 -84 204t85 203l147 146q83 83 203 83q121 0 204 -85l206 -207 -q83 -83 83 -203q0 -123 -88 -209l88 -88q86 88 208 88q120 0 204 -84l208 -208q84 -84 84 -204z" /> - <glyph glyph-name="cloud" unicode="&#xf0c2;" horiz-adv-x="1920" -d="M1920 384q0 -159 -112.5 -271.5t-271.5 -112.5h-1088q-185 0 -316.5 131.5t-131.5 316.5q0 132 71 241.5t187 163.5q-2 28 -2 43q0 212 150 362t362 150q158 0 286.5 -88t187.5 -230q70 62 166 62q106 0 181 -75t75 -181q0 -75 -41 -138q129 -30 213 -134.5t84 -239.5z -" /> - <glyph glyph-name="beaker" unicode="&#xf0c3;" horiz-adv-x="1664" -d="M1527 88q56 -89 21.5 -152.5t-140.5 -63.5h-1152q-106 0 -140.5 63.5t21.5 152.5l503 793v399h-64q-26 0 -45 19t-19 45t19 45t45 19h512q26 0 45 -19t19 -45t-19 -45t-45 -19h-64v-399zM748 813l-272 -429h712l-272 429l-20 31v37v399h-128v-399v-37z" /> - <glyph glyph-name="cut" unicode="&#xf0c4;" horiz-adv-x="1792" -d="M960 640q26 0 45 -19t19 -45t-19 -45t-45 -19t-45 19t-19 45t19 45t45 19zM1260 576l507 -398q28 -20 25 -56q-5 -35 -35 -51l-128 -64q-13 -7 -29 -7q-17 0 -31 8l-690 387l-110 -66q-8 -4 -12 -5q14 -49 10 -97q-7 -77 -56 -147.5t-132 -123.5q-132 -84 -277 -84 -q-136 0 -222 78q-90 84 -79 207q7 76 56 147t131 124q132 84 278 84q83 0 151 -31q9 13 22 22l122 73l-122 73q-13 9 -22 22q-68 -31 -151 -31q-146 0 -278 84q-82 53 -131 124t-56 147q-5 59 15.5 113t63.5 93q85 79 222 79q145 0 277 -84q83 -52 132 -123t56 -148 -q4 -48 -10 -97q4 -1 12 -5l110 -66l690 387q14 8 31 8q16 0 29 -7l128 -64q30 -16 35 -51q3 -36 -25 -56zM579 836q46 42 21 108t-106 117q-92 59 -192 59q-74 0 -113 -36q-46 -42 -21 -108t106 -117q92 -59 192 -59q74 0 113 36zM494 91q81 51 106 117t-21 108 -q-39 36 -113 36q-100 0 -192 -59q-81 -51 -106 -117t21 -108q39 -36 113 -36q100 0 192 59zM672 704l96 -58v11q0 36 33 56l14 8l-79 47l-26 -26q-3 -3 -10 -11t-12 -12q-2 -2 -4 -3.5t-3 -2.5zM896 480l96 -32l736 576l-128 64l-768 -431v-113l-160 -96l9 -8q2 -2 7 -6 -q4 -4 11 -12t11 -12l26 -26zM1600 64l128 64l-520 408l-177 -138q-2 -3 -13 -7z" /> - <glyph glyph-name="copy" unicode="&#xf0c5;" horiz-adv-x="1792" -d="M1696 1152q40 0 68 -28t28 -68v-1216q0 -40 -28 -68t-68 -28h-960q-40 0 -68 28t-28 68v288h-544q-40 0 -68 28t-28 68v672q0 40 20 88t48 76l408 408q28 28 76 48t88 20h416q40 0 68 -28t28 -68v-328q68 40 128 40h416zM1152 939l-299 -299h299v299zM512 1323l-299 -299 -h299v299zM708 676l316 316v416h-384v-416q0 -40 -28 -68t-68 -28h-416v-640h512v256q0 40 20 88t48 76zM1664 -128v1152h-384v-416q0 -40 -28 -68t-68 -28h-416v-640h896z" /> - <glyph glyph-name="paper_clip" unicode="&#xf0c6;" horiz-adv-x="1408" -d="M1404 151q0 -117 -79 -196t-196 -79q-135 0 -235 100l-777 776q-113 115 -113 271q0 159 110 270t269 111q158 0 273 -113l605 -606q10 -10 10 -22q0 -16 -30.5 -46.5t-46.5 -30.5q-13 0 -23 10l-606 607q-79 77 -181 77q-106 0 -179 -75t-73 -181q0 -105 76 -181 -l776 -777q63 -63 145 -63q64 0 106 42t42 106q0 82 -63 145l-581 581q-26 24 -60 24q-29 0 -48 -19t-19 -48q0 -32 25 -59l410 -410q10 -10 10 -22q0 -16 -31 -47t-47 -31q-12 0 -22 10l-410 410q-63 61 -63 149q0 82 57 139t139 57q88 0 149 -63l581 -581q100 -98 100 -235 -z" /> - <glyph glyph-name="save" unicode="&#xf0c7;" -d="M384 0h768v384h-768v-384zM1280 0h128v896q0 14 -10 38.5t-20 34.5l-281 281q-10 10 -34 20t-39 10v-416q0 -40 -28 -68t-68 -28h-576q-40 0 -68 28t-28 68v416h-128v-1280h128v416q0 40 28 68t68 28h832q40 0 68 -28t28 -68v-416zM896 928v320q0 13 -9.5 22.5t-22.5 9.5 -h-192q-13 0 -22.5 -9.5t-9.5 -22.5v-320q0 -13 9.5 -22.5t22.5 -9.5h192q13 0 22.5 9.5t9.5 22.5zM1536 896v-928q0 -40 -28 -68t-68 -28h-1344q-40 0 -68 28t-28 68v1344q0 40 28 68t68 28h928q40 0 88 -20t76 -48l280 -280q28 -28 48 -76t20 -88z" /> - <glyph glyph-name="sign_blank" unicode="&#xf0c8;" -d="M1536 1120v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" /> - <glyph glyph-name="reorder" unicode="&#xf0c9;" -d="M1536 192v-128q0 -26 -19 -45t-45 -19h-1408q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h1408q26 0 45 -19t19 -45zM1536 704v-128q0 -26 -19 -45t-45 -19h-1408q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h1408q26 0 45 -19t19 -45zM1536 1216v-128q0 -26 -19 -45 -t-45 -19h-1408q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h1408q26 0 45 -19t19 -45z" /> - <glyph glyph-name="ul" unicode="&#xf0ca;" horiz-adv-x="1792" -d="M384 128q0 -80 -56 -136t-136 -56t-136 56t-56 136t56 136t136 56t136 -56t56 -136zM384 640q0 -80 -56 -136t-136 -56t-136 56t-56 136t56 136t136 56t136 -56t56 -136zM1792 224v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-1216q-13 0 -22.5 9.5t-9.5 22.5v192q0 13 9.5 22.5 -t22.5 9.5h1216q13 0 22.5 -9.5t9.5 -22.5zM384 1152q0 -80 -56 -136t-136 -56t-136 56t-56 136t56 136t136 56t136 -56t56 -136zM1792 736v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-1216q-13 0 -22.5 9.5t-9.5 22.5v192q0 13 9.5 22.5t22.5 9.5h1216q13 0 22.5 -9.5t9.5 -22.5z -M1792 1248v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-1216q-13 0 -22.5 9.5t-9.5 22.5v192q0 13 9.5 22.5t22.5 9.5h1216q13 0 22.5 -9.5t9.5 -22.5z" /> - <glyph glyph-name="ol" unicode="&#xf0cb;" horiz-adv-x="1792" -d="M381 -84q0 -80 -54.5 -126t-135.5 -46q-106 0 -172 66l57 88q49 -45 106 -45q29 0 50.5 14.5t21.5 42.5q0 64 -105 56l-26 56q8 10 32.5 43.5t42.5 54t37 38.5v1q-16 0 -48.5 -1t-48.5 -1v-53h-106v152h333v-88l-95 -115q51 -12 81 -49t30 -88zM383 543v-159h-362 -q-6 36 -6 54q0 51 23.5 93t56.5 68t66 47.5t56.5 43.5t23.5 45q0 25 -14.5 38.5t-39.5 13.5q-46 0 -81 -58l-85 59q24 51 71.5 79.5t105.5 28.5q73 0 123 -41.5t50 -112.5q0 -50 -34 -91.5t-75 -64.5t-75.5 -50.5t-35.5 -52.5h127v60h105zM1792 224v-192q0 -13 -9.5 -22.5 -t-22.5 -9.5h-1216q-13 0 -22.5 9.5t-9.5 22.5v192q0 14 9 23t23 9h1216q13 0 22.5 -9.5t9.5 -22.5zM384 1123v-99h-335v99h107q0 41 0.5 121.5t0.5 121.5v12h-2q-8 -17 -50 -54l-71 76l136 127h106v-404h108zM1792 736v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-1216 -q-13 0 -22.5 9.5t-9.5 22.5v192q0 14 9 23t23 9h1216q13 0 22.5 -9.5t9.5 -22.5zM1792 1248v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-1216q-13 0 -22.5 9.5t-9.5 22.5v192q0 13 9.5 22.5t22.5 9.5h1216q13 0 22.5 -9.5t9.5 -22.5z" /> - <glyph glyph-name="strikethrough" unicode="&#xf0cc;" horiz-adv-x="1792" -d="M1760 640q14 0 23 -9t9 -23v-64q0 -14 -9 -23t-23 -9h-1728q-14 0 -23 9t-9 23v64q0 14 9 23t23 9h1728zM483 704q-28 35 -51 80q-48 98 -48 188q0 181 134 309q133 127 393 127q50 0 167 -19q66 -12 177 -48q10 -38 21 -118q14 -123 14 -183q0 -18 -5 -45l-12 -3l-84 6 -l-14 2q-50 149 -103 205q-88 91 -210 91q-114 0 -182 -59q-67 -58 -67 -146q0 -73 66 -140t279 -129q69 -20 173 -66q58 -28 95 -52h-743zM990 448h411q7 -39 7 -92q0 -111 -41 -212q-23 -56 -71 -104q-37 -35 -109 -81q-80 -48 -153 -66q-80 -21 -203 -21q-114 0 -195 23 -l-140 40q-57 16 -72 28q-8 8 -8 22v13q0 108 -2 156q-1 30 0 68l2 37v44l102 2q15 -34 30 -71t22.5 -56t12.5 -27q35 -57 80 -94q43 -36 105 -57q59 -22 132 -22q64 0 139 27q77 26 122 86q47 61 47 129q0 84 -81 157q-34 29 -137 71z" /> - <glyph glyph-name="underline" unicode="&#xf0cd;" -d="M48 1313q-37 2 -45 4l-3 88q13 1 40 1q60 0 112 -4q132 -7 166 -7q86 0 168 3q116 4 146 5q56 0 86 2l-1 -14l2 -64v-9q-60 -9 -124 -9q-60 0 -79 -25q-13 -14 -13 -132q0 -13 0.5 -32.5t0.5 -25.5l1 -229l14 -280q6 -124 51 -202q35 -59 96 -92q88 -47 177 -47 -q104 0 191 28q56 18 99 51q48 36 65 64q36 56 53 114q21 73 21 229q0 79 -3.5 128t-11 122.5t-13.5 159.5l-4 59q-5 67 -24 88q-34 35 -77 34l-100 -2l-14 3l2 86h84l205 -10q76 -3 196 10l18 -2q6 -38 6 -51q0 -7 -4 -31q-45 -12 -84 -13q-73 -11 -79 -17q-15 -15 -15 -41 -q0 -7 1.5 -27t1.5 -31q8 -19 22 -396q6 -195 -15 -304q-15 -76 -41 -122q-38 -65 -112 -123q-75 -57 -182 -89q-109 -33 -255 -33q-167 0 -284 46q-119 47 -179 122q-61 76 -83 195q-16 80 -16 237v333q0 188 -17 213q-25 36 -147 39zM1536 -96v64q0 14 -9 23t-23 9h-1472 -q-14 0 -23 -9t-9 -23v-64q0 -14 9 -23t23 -9h1472q14 0 23 9t9 23z" /> - <glyph glyph-name="table" unicode="&#xf0ce;" horiz-adv-x="1664" -d="M512 160v192q0 14 -9 23t-23 9h-320q-14 0 -23 -9t-9 -23v-192q0 -14 9 -23t23 -9h320q14 0 23 9t9 23zM512 544v192q0 14 -9 23t-23 9h-320q-14 0 -23 -9t-9 -23v-192q0 -14 9 -23t23 -9h320q14 0 23 9t9 23zM1024 160v192q0 14 -9 23t-23 9h-320q-14 0 -23 -9t-9 -23 -v-192q0 -14 9 -23t23 -9h320q14 0 23 9t9 23zM512 928v192q0 14 -9 23t-23 9h-320q-14 0 -23 -9t-9 -23v-192q0 -14 9 -23t23 -9h320q14 0 23 9t9 23zM1024 544v192q0 14 -9 23t-23 9h-320q-14 0 -23 -9t-9 -23v-192q0 -14 9 -23t23 -9h320q14 0 23 9t9 23zM1536 160v192 -q0 14 -9 23t-23 9h-320q-14 0 -23 -9t-9 -23v-192q0 -14 9 -23t23 -9h320q14 0 23 9t9 23zM1024 928v192q0 14 -9 23t-23 9h-320q-14 0 -23 -9t-9 -23v-192q0 -14 9 -23t23 -9h320q14 0 23 9t9 23zM1536 544v192q0 14 -9 23t-23 9h-320q-14 0 -23 -9t-9 -23v-192 -q0 -14 9 -23t23 -9h320q14 0 23 9t9 23zM1536 928v192q0 14 -9 23t-23 9h-320q-14 0 -23 -9t-9 -23v-192q0 -14 9 -23t23 -9h320q14 0 23 9t9 23zM1664 1248v-1088q0 -66 -47 -113t-113 -47h-1344q-66 0 -113 47t-47 113v1088q0 66 47 113t113 47h1344q66 0 113 -47t47 -113 -z" /> - <glyph glyph-name="magic" unicode="&#xf0d0;" horiz-adv-x="1664" -d="M1190 955l293 293l-107 107l-293 -293zM1637 1248q0 -27 -18 -45l-1286 -1286q-18 -18 -45 -18t-45 18l-198 198q-18 18 -18 45t18 45l1286 1286q18 18 45 18t45 -18l198 -198q18 -18 18 -45zM286 1438l98 -30l-98 -30l-30 -98l-30 98l-98 30l98 30l30 98zM636 1276 -l196 -60l-196 -60l-60 -196l-60 196l-196 60l196 60l60 196zM1566 798l98 -30l-98 -30l-30 -98l-30 98l-98 30l98 30l30 98zM926 1438l98 -30l-98 -30l-30 -98l-30 98l-98 30l98 30l30 98z" /> - <glyph glyph-name="truck" unicode="&#xf0d1;" horiz-adv-x="1792" -d="M640 128q0 52 -38 90t-90 38t-90 -38t-38 -90t38 -90t90 -38t90 38t38 90zM256 640h384v256h-158q-13 0 -22 -9l-195 -195q-9 -9 -9 -22v-30zM1536 128q0 52 -38 90t-90 38t-90 -38t-38 -90t38 -90t90 -38t90 38t38 90zM1792 1216v-1024q0 -15 -4 -26.5t-13.5 -18.5 -t-16.5 -11.5t-23.5 -6t-22.5 -2t-25.5 0t-22.5 0.5q0 -106 -75 -181t-181 -75t-181 75t-75 181h-384q0 -106 -75 -181t-181 -75t-181 75t-75 181h-64q-3 0 -22.5 -0.5t-25.5 0t-22.5 2t-23.5 6t-16.5 11.5t-13.5 18.5t-4 26.5q0 26 19 45t45 19v320q0 8 -0.5 35t0 38 -t2.5 34.5t6.5 37t14 30.5t22.5 30l198 198q19 19 50.5 32t58.5 13h160v192q0 26 19 45t45 19h1024q26 0 45 -19t19 -45z" /> - <glyph glyph-name="pinterest" unicode="&#xf0d2;" -d="M1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103q-111 0 -218 32q59 93 78 164q9 34 54 211q20 -39 73 -67.5t114 -28.5q121 0 216 68.5t147 188.5t52 270q0 114 -59.5 214t-172.5 163t-255 63q-105 0 -196 -29t-154.5 -77t-109 -110.5t-67 -129.5t-21.5 -134 -q0 -104 40 -183t117 -111q30 -12 38 20q2 7 8 31t8 30q6 23 -11 43q-51 61 -51 151q0 151 104.5 259.5t273.5 108.5q151 0 235.5 -82t84.5 -213q0 -170 -68.5 -289t-175.5 -119q-61 0 -98 43.5t-23 104.5q8 35 26.5 93.5t30 103t11.5 75.5q0 50 -27 83t-77 33 -q-62 0 -105 -57t-43 -142q0 -73 25 -122l-99 -418q-17 -70 -13 -177q-206 91 -333 281t-127 423q0 209 103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" /> - <glyph glyph-name="pinterest_sign" unicode="&#xf0d3;" -d="M1248 1408q119 0 203.5 -84.5t84.5 -203.5v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-725q85 122 108 210q9 34 53 209q21 -39 73.5 -67t112.5 -28q181 0 295.5 147.5t114.5 373.5q0 84 -35 162.5t-96.5 139t-152.5 97t-197 36.5q-104 0 -194.5 -28.5t-153 -76.5 -t-107.5 -109.5t-66.5 -128t-21.5 -132.5q0 -102 39.5 -180t116.5 -110q13 -5 23.5 0t14.5 19q10 44 15 61q6 23 -11 42q-50 62 -50 150q0 150 103.5 256.5t270.5 106.5q149 0 232.5 -81t83.5 -210q0 -168 -67.5 -286t-173.5 -118q-60 0 -97 43.5t-23 103.5q8 34 26.5 92.5 -t29.5 102t11 74.5q0 49 -26.5 81.5t-75.5 32.5q-61 0 -103.5 -56.5t-42.5 -139.5q0 -72 24 -121l-98 -414q-24 -100 -7 -254h-183q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960z" /> - <glyph glyph-name="google_plus_sign" unicode="&#xf0d4;" -d="M917 631q0 26 -6 64h-362v-132h217q-3 -24 -16.5 -50t-37.5 -53t-66.5 -44.5t-96.5 -17.5q-99 0 -169 71t-70 171t70 171t169 71q92 0 153 -59l104 101q-108 100 -257 100q-160 0 -272 -112.5t-112 -271.5t112 -271.5t272 -112.5q165 0 266.5 105t101.5 270zM1262 585 -h109v110h-109v110h-110v-110h-110v-110h110v-110h110v110zM1536 1120v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" /> - <glyph glyph-name="google_plus" unicode="&#xf0d5;" horiz-adv-x="2304" -d="M1437 623q0 -208 -87 -370.5t-248 -254t-369 -91.5q-149 0 -285 58t-234 156t-156 234t-58 285t58 285t156 234t234 156t285 58q286 0 491 -192l-199 -191q-117 113 -292 113q-123 0 -227.5 -62t-165.5 -168.5t-61 -232.5t61 -232.5t165.5 -168.5t227.5 -62 -q83 0 152.5 23t114.5 57.5t78.5 78.5t49 83t21.5 74h-416v252h692q12 -63 12 -122zM2304 745v-210h-209v-209h-210v209h-209v210h209v209h210v-209h209z" /> - <glyph glyph-name="money" unicode="&#xf0d6;" horiz-adv-x="1920" -d="M768 384h384v96h-128v448h-114l-148 -137l77 -80q42 37 55 57h2v-288h-128v-96zM1280 640q0 -70 -21 -142t-59.5 -134t-101.5 -101t-138 -39t-138 39t-101.5 101t-59.5 134t-21 142t21 142t59.5 134t101.5 101t138 39t138 -39t101.5 -101t59.5 -134t21 -142zM1792 384 -v512q-106 0 -181 75t-75 181h-1152q0 -106 -75 -181t-181 -75v-512q106 0 181 -75t75 -181h1152q0 106 75 181t181 75zM1920 1216v-1152q0 -26 -19 -45t-45 -19h-1792q-26 0 -45 19t-19 45v1152q0 26 19 45t45 19h1792q26 0 45 -19t19 -45z" /> - <glyph glyph-name="caret_down" unicode="&#xf0d7;" horiz-adv-x="1024" -d="M1024 832q0 -26 -19 -45l-448 -448q-19 -19 -45 -19t-45 19l-448 448q-19 19 -19 45t19 45t45 19h896q26 0 45 -19t19 -45z" /> - <glyph glyph-name="caret_up" unicode="&#xf0d8;" horiz-adv-x="1024" -d="M1024 320q0 -26 -19 -45t-45 -19h-896q-26 0 -45 19t-19 45t19 45l448 448q19 19 45 19t45 -19l448 -448q19 -19 19 -45z" /> - <glyph glyph-name="caret_left" unicode="&#xf0d9;" horiz-adv-x="640" -d="M640 1088v-896q0 -26 -19 -45t-45 -19t-45 19l-448 448q-19 19 -19 45t19 45l448 448q19 19 45 19t45 -19t19 -45z" /> - <glyph glyph-name="caret_right" unicode="&#xf0da;" horiz-adv-x="640" -d="M576 640q0 -26 -19 -45l-448 -448q-19 -19 -45 -19t-45 19t-19 45v896q0 26 19 45t45 19t45 -19l448 -448q19 -19 19 -45z" /> - <glyph glyph-name="columns" unicode="&#xf0db;" horiz-adv-x="1664" -d="M160 0h608v1152h-640v-1120q0 -13 9.5 -22.5t22.5 -9.5zM1536 32v1120h-640v-1152h608q13 0 22.5 9.5t9.5 22.5zM1664 1248v-1216q0 -66 -47 -113t-113 -47h-1344q-66 0 -113 47t-47 113v1216q0 66 47 113t113 47h1344q66 0 113 -47t47 -113z" /> - <glyph glyph-name="sort" unicode="&#xf0dc;" horiz-adv-x="1024" -d="M1024 448q0 -26 -19 -45l-448 -448q-19 -19 -45 -19t-45 19l-448 448q-19 19 -19 45t19 45t45 19h896q26 0 45 -19t19 -45zM1024 832q0 -26 -19 -45t-45 -19h-896q-26 0 -45 19t-19 45t19 45l448 448q19 19 45 19t45 -19l448 -448q19 -19 19 -45z" /> - <glyph glyph-name="sort_down" unicode="&#xf0dd;" horiz-adv-x="1024" -d="M1024 448q0 -26 -19 -45l-448 -448q-19 -19 -45 -19t-45 19l-448 448q-19 19 -19 45t19 45t45 19h896q26 0 45 -19t19 -45z" /> - <glyph glyph-name="sort_up" unicode="&#xf0de;" horiz-adv-x="1024" -d="M1024 832q0 -26 -19 -45t-45 -19h-896q-26 0 -45 19t-19 45t19 45l448 448q19 19 45 19t45 -19l448 -448q19 -19 19 -45z" /> - <glyph glyph-name="envelope_alt" unicode="&#xf0e0;" horiz-adv-x="1792" -d="M1792 826v-794q0 -66 -47 -113t-113 -47h-1472q-66 0 -113 47t-47 113v794q44 -49 101 -87q362 -246 497 -345q57 -42 92.5 -65.5t94.5 -48t110 -24.5h1h1q51 0 110 24.5t94.5 48t92.5 65.5q170 123 498 345q57 39 100 87zM1792 1120q0 -79 -49 -151t-122 -123 -q-376 -261 -468 -325q-10 -7 -42.5 -30.5t-54 -38t-52 -32.5t-57.5 -27t-50 -9h-1h-1q-23 0 -50 9t-57.5 27t-52 32.5t-54 38t-42.5 30.5q-91 64 -262 182.5t-205 142.5q-62 42 -117 115.5t-55 136.5q0 78 41.5 130t118.5 52h1472q65 0 112.5 -47t47.5 -113z" /> - <glyph glyph-name="linkedin" unicode="&#xf0e1;" -d="M349 911v-991h-330v991h330zM370 1217q1 -73 -50.5 -122t-135.5 -49h-2q-82 0 -132 49t-50 122q0 74 51.5 122.5t134.5 48.5t133 -48.5t51 -122.5zM1536 488v-568h-329v530q0 105 -40.5 164.5t-126.5 59.5q-63 0 -105.5 -34.5t-63.5 -85.5q-11 -30 -11 -81v-553h-329 -q2 399 2 647t-1 296l-1 48h329v-144h-2q20 32 41 56t56.5 52t87 43.5t114.5 15.5q171 0 275 -113.5t104 -332.5z" /> - <glyph glyph-name="undo" unicode="&#xf0e2;" -d="M1536 640q0 -156 -61 -298t-164 -245t-245 -164t-298 -61q-172 0 -327 72.5t-264 204.5q-7 10 -6.5 22.5t8.5 20.5l137 138q10 9 25 9q16 -2 23 -12q73 -95 179 -147t225 -52q104 0 198.5 40.5t163.5 109.5t109.5 163.5t40.5 198.5t-40.5 198.5t-109.5 163.5 -t-163.5 109.5t-198.5 40.5q-98 0 -188 -35.5t-160 -101.5l137 -138q31 -30 14 -69q-17 -40 -59 -40h-448q-26 0 -45 19t-19 45v448q0 42 40 59q39 17 69 -14l130 -129q107 101 244.5 156.5t284.5 55.5q156 0 298 -61t245 -164t164 -245t61 -298z" /> - <glyph glyph-name="legal" unicode="&#xf0e3;" horiz-adv-x="1792" -d="M1771 0q0 -53 -37 -90l-107 -108q-39 -37 -91 -37q-53 0 -90 37l-363 364q-38 36 -38 90q0 53 43 96l-256 256l-126 -126q-14 -14 -34 -14t-34 14q2 -2 12.5 -12t12.5 -13t10 -11.5t10 -13.5t6 -13.5t5.5 -16.5t1.5 -18q0 -38 -28 -68q-3 -3 -16.5 -18t-19 -20.5 -t-18.5 -16.5t-22 -15.5t-22 -9t-26 -4.5q-40 0 -68 28l-408 408q-28 28 -28 68q0 13 4.5 26t9 22t15.5 22t16.5 18.5t20.5 19t18 16.5q30 28 68 28q10 0 18 -1.5t16.5 -5.5t13.5 -6t13.5 -10t11.5 -10t13 -12.5t12 -12.5q-14 14 -14 34t14 34l348 348q14 14 34 14t34 -14 -q-2 2 -12.5 12t-12.5 13t-10 11.5t-10 13.5t-6 13.5t-5.5 16.5t-1.5 18q0 38 28 68q3 3 16.5 18t19 20.5t18.5 16.5t22 15.5t22 9t26 4.5q40 0 68 -28l408 -408q28 -28 28 -68q0 -13 -4.5 -26t-9 -22t-15.5 -22t-16.5 -18.5t-20.5 -19t-18 -16.5q-30 -28 -68 -28 -q-10 0 -18 1.5t-16.5 5.5t-13.5 6t-13.5 10t-11.5 10t-13 12.5t-12 12.5q14 -14 14 -34t-14 -34l-126 -126l256 -256q43 43 96 43q52 0 91 -37l363 -363q37 -39 37 -91z" /> - <glyph glyph-name="dashboard" unicode="&#xf0e4;" horiz-adv-x="1792" -d="M384 384q0 53 -37.5 90.5t-90.5 37.5t-90.5 -37.5t-37.5 -90.5t37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5zM576 832q0 53 -37.5 90.5t-90.5 37.5t-90.5 -37.5t-37.5 -90.5t37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5zM1004 351l101 382q6 26 -7.5 48.5t-38.5 29.5 -t-48 -6.5t-30 -39.5l-101 -382q-60 -5 -107 -43.5t-63 -98.5q-20 -77 20 -146t117 -89t146 20t89 117q16 60 -6 117t-72 91zM1664 384q0 53 -37.5 90.5t-90.5 37.5t-90.5 -37.5t-37.5 -90.5t37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5zM1024 1024q0 53 -37.5 90.5 -t-90.5 37.5t-90.5 -37.5t-37.5 -90.5t37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5zM1472 832q0 53 -37.5 90.5t-90.5 37.5t-90.5 -37.5t-37.5 -90.5t37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5zM1792 384q0 -261 -141 -483q-19 -29 -54 -29h-1402q-35 0 -54 29 -q-141 221 -141 483q0 182 71 348t191 286t286 191t348 71t348 -71t286 -191t191 -286t71 -348z" /> - <glyph glyph-name="comment_alt" unicode="&#xf0e5;" horiz-adv-x="1792" -d="M896 1152q-204 0 -381.5 -69.5t-282 -187.5t-104.5 -255q0 -112 71.5 -213.5t201.5 -175.5l87 -50l-27 -96q-24 -91 -70 -172q152 63 275 171l43 38l57 -6q69 -8 130 -8q204 0 381.5 69.5t282 187.5t104.5 255t-104.5 255t-282 187.5t-381.5 69.5zM1792 640 -q0 -174 -120 -321.5t-326 -233t-450 -85.5q-70 0 -145 8q-198 -175 -460 -242q-49 -14 -114 -22h-5q-15 0 -27 10.5t-16 27.5v1q-3 4 -0.5 12t2 10t4.5 9.5l6 9t7 8.5t8 9q7 8 31 34.5t34.5 38t31 39.5t32.5 51t27 59t26 76q-157 89 -247.5 220t-90.5 281q0 174 120 321.5 -t326 233t450 85.5t450 -85.5t326 -233t120 -321.5z" /> - <glyph glyph-name="comments_alt" unicode="&#xf0e6;" horiz-adv-x="1792" -d="M704 1152q-153 0 -286 -52t-211.5 -141t-78.5 -191q0 -82 53 -158t149 -132l97 -56l-35 -84q34 20 62 39l44 31l53 -10q78 -14 153 -14q153 0 286 52t211.5 141t78.5 191t-78.5 191t-211.5 141t-286 52zM704 1280q191 0 353.5 -68.5t256.5 -186.5t94 -257t-94 -257 -t-256.5 -186.5t-353.5 -68.5q-86 0 -176 16q-124 -88 -278 -128q-36 -9 -86 -16h-3q-11 0 -20.5 8t-11.5 21q-1 3 -1 6.5t0.5 6.5t2 6l2.5 5t3.5 5.5t4 5t4.5 5t4 4.5q5 6 23 25t26 29.5t22.5 29t25 38.5t20.5 44q-124 72 -195 177t-71 224q0 139 94 257t256.5 186.5 -t353.5 68.5zM1526 111q10 -24 20.5 -44t25 -38.5t22.5 -29t26 -29.5t23 -25q1 -1 4 -4.5t4.5 -5t4 -5t3.5 -5.5l2.5 -5t2 -6t0.5 -6.5t-1 -6.5q-3 -14 -13 -22t-22 -7q-50 7 -86 16q-154 40 -278 128q-90 -16 -176 -16q-271 0 -472 132q58 -4 88 -4q161 0 309 45t264 129 -q125 92 192 212t67 254q0 77 -23 152q129 -71 204 -178t75 -230q0 -120 -71 -224.5t-195 -176.5z" /> - <glyph glyph-name="bolt" unicode="&#xf0e7;" horiz-adv-x="896" -d="M885 970q18 -20 7 -44l-540 -1157q-13 -25 -42 -25q-4 0 -14 2q-17 5 -25.5 19t-4.5 30l197 808l-406 -101q-4 -1 -12 -1q-18 0 -31 11q-18 15 -13 39l201 825q4 14 16 23t28 9h328q19 0 32 -12.5t13 -29.5q0 -8 -5 -18l-171 -463l396 98q8 2 12 2q19 0 34 -15z" /> - <glyph glyph-name="sitemap" unicode="&#xf0e8;" horiz-adv-x="1792" -d="M1792 288v-320q0 -40 -28 -68t-68 -28h-320q-40 0 -68 28t-28 68v320q0 40 28 68t68 28h96v192h-512v-192h96q40 0 68 -28t28 -68v-320q0 -40 -28 -68t-68 -28h-320q-40 0 -68 28t-28 68v320q0 40 28 68t68 28h96v192h-512v-192h96q40 0 68 -28t28 -68v-320 -q0 -40 -28 -68t-68 -28h-320q-40 0 -68 28t-28 68v320q0 40 28 68t68 28h96v192q0 52 38 90t90 38h512v192h-96q-40 0 -68 28t-28 68v320q0 40 28 68t68 28h320q40 0 68 -28t28 -68v-320q0 -40 -28 -68t-68 -28h-96v-192h512q52 0 90 -38t38 -90v-192h96q40 0 68 -28t28 -68 -z" /> - <glyph glyph-name="umbrella" unicode="&#xf0e9;" horiz-adv-x="1664" -d="M896 708v-580q0 -104 -76 -180t-180 -76t-180 76t-76 180q0 26 19 45t45 19t45 -19t19 -45q0 -50 39 -89t89 -39t89 39t39 89v580q33 11 64 11t64 -11zM1664 681q0 -13 -9.5 -22.5t-22.5 -9.5q-11 0 -23 10q-49 46 -93 69t-102 23q-68 0 -128 -37t-103 -97 -q-7 -10 -17.5 -28t-14.5 -24q-11 -17 -28 -17q-18 0 -29 17q-4 6 -14.5 24t-17.5 28q-43 60 -102.5 97t-127.5 37t-127.5 -37t-102.5 -97q-7 -10 -17.5 -28t-14.5 -24q-11 -17 -29 -17q-17 0 -28 17q-4 6 -14.5 24t-17.5 28q-43 60 -103 97t-128 37q-58 0 -102 -23t-93 -69 -q-12 -10 -23 -10q-13 0 -22.5 9.5t-9.5 22.5q0 5 1 7q45 183 172.5 319.5t298 204.5t360.5 68q140 0 274.5 -40t246.5 -113.5t194.5 -187t115.5 -251.5q1 -2 1 -7zM896 1408v-98q-42 2 -64 2t-64 -2v98q0 26 19 45t45 19t45 -19t19 -45z" /> - <glyph glyph-name="paste" unicode="&#xf0ea;" horiz-adv-x="1792" -d="M768 -128h896v640h-416q-40 0 -68 28t-28 68v416h-384v-1152zM1024 1312v64q0 13 -9.5 22.5t-22.5 9.5h-704q-13 0 -22.5 -9.5t-9.5 -22.5v-64q0 -13 9.5 -22.5t22.5 -9.5h704q13 0 22.5 9.5t9.5 22.5zM1280 640h299l-299 299v-299zM1792 512v-672q0 -40 -28 -68t-68 -28 -h-960q-40 0 -68 28t-28 68v160h-544q-40 0 -68 28t-28 68v1344q0 40 28 68t68 28h1088q40 0 68 -28t28 -68v-328q21 -13 36 -28l408 -408q28 -28 48 -76t20 -88z" /> - <glyph glyph-name="light_bulb" unicode="&#xf0eb;" horiz-adv-x="1024" -d="M736 960q0 -13 -9.5 -22.5t-22.5 -9.5t-22.5 9.5t-9.5 22.5q0 46 -54 71t-106 25q-13 0 -22.5 9.5t-9.5 22.5t9.5 22.5t22.5 9.5q50 0 99.5 -16t87 -54t37.5 -90zM896 960q0 72 -34.5 134t-90 101.5t-123 62t-136.5 22.5t-136.5 -22.5t-123 -62t-90 -101.5t-34.5 -134 -q0 -101 68 -180q10 -11 30.5 -33t30.5 -33q128 -153 141 -298h228q13 145 141 298q10 11 30.5 33t30.5 33q68 79 68 180zM1024 960q0 -155 -103 -268q-45 -49 -74.5 -87t-59.5 -95.5t-34 -107.5q47 -28 47 -82q0 -37 -25 -64q25 -27 25 -64q0 -52 -45 -81q13 -23 13 -47 -q0 -46 -31.5 -71t-77.5 -25q-20 -44 -60 -70t-87 -26t-87 26t-60 70q-46 0 -77.5 25t-31.5 71q0 24 13 47q-45 29 -45 81q0 37 25 64q-25 27 -25 64q0 54 47 82q-4 50 -34 107.5t-59.5 95.5t-74.5 87q-103 113 -103 268q0 99 44.5 184.5t117 142t164 89t186.5 32.5 -t186.5 -32.5t164 -89t117 -142t44.5 -184.5z" /> - <glyph glyph-name="exchange" unicode="&#xf0ec;" horiz-adv-x="1792" -d="M1792 352v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-1376v-192q0 -13 -9.5 -22.5t-22.5 -9.5q-12 0 -24 10l-319 320q-9 9 -9 22q0 14 9 23l320 320q9 9 23 9q13 0 22.5 -9.5t9.5 -22.5v-192h1376q13 0 22.5 -9.5t9.5 -22.5zM1792 896q0 -14 -9 -23l-320 -320q-9 -9 -23 -9 -q-13 0 -22.5 9.5t-9.5 22.5v192h-1376q-13 0 -22.5 9.5t-9.5 22.5v192q0 13 9.5 22.5t22.5 9.5h1376v192q0 14 9 23t23 9q12 0 24 -10l319 -319q9 -9 9 -23z" /> - <glyph glyph-name="cloud_download" unicode="&#xf0ed;" horiz-adv-x="1920" -d="M1280 608q0 14 -9 23t-23 9h-224v352q0 13 -9.5 22.5t-22.5 9.5h-192q-13 0 -22.5 -9.5t-9.5 -22.5v-352h-224q-13 0 -22.5 -9.5t-9.5 -22.5q0 -14 9 -23l352 -352q9 -9 23 -9t23 9l351 351q10 12 10 24zM1920 384q0 -159 -112.5 -271.5t-271.5 -112.5h-1088 -q-185 0 -316.5 131.5t-131.5 316.5q0 130 70 240t188 165q-2 30 -2 43q0 212 150 362t362 150q156 0 285.5 -87t188.5 -231q71 62 166 62q106 0 181 -75t75 -181q0 -76 -41 -138q130 -31 213.5 -135.5t83.5 -238.5z" /> - <glyph glyph-name="cloud_upload" unicode="&#xf0ee;" horiz-adv-x="1920" -d="M1280 672q0 14 -9 23l-352 352q-9 9 -23 9t-23 -9l-351 -351q-10 -12 -10 -24q0 -14 9 -23t23 -9h224v-352q0 -13 9.5 -22.5t22.5 -9.5h192q13 0 22.5 9.5t9.5 22.5v352h224q13 0 22.5 9.5t9.5 22.5zM1920 384q0 -159 -112.5 -271.5t-271.5 -112.5h-1088 -q-185 0 -316.5 131.5t-131.5 316.5q0 130 70 240t188 165q-2 30 -2 43q0 212 150 362t362 150q156 0 285.5 -87t188.5 -231q71 62 166 62q106 0 181 -75t75 -181q0 -76 -41 -138q130 -31 213.5 -135.5t83.5 -238.5z" /> - <glyph glyph-name="user_md" unicode="&#xf0f0;" horiz-adv-x="1408" -d="M384 192q0 -26 -19 -45t-45 -19t-45 19t-19 45t19 45t45 19t45 -19t19 -45zM1408 131q0 -121 -73 -190t-194 -69h-874q-121 0 -194 69t-73 190q0 68 5.5 131t24 138t47.5 132.5t81 103t120 60.5q-22 -52 -22 -120v-203q-58 -20 -93 -70t-35 -111q0 -80 56 -136t136 -56 -t136 56t56 136q0 61 -35.5 111t-92.5 70v203q0 62 25 93q132 -104 295 -104t295 104q25 -31 25 -93v-64q-106 0 -181 -75t-75 -181v-89q-32 -29 -32 -71q0 -40 28 -68t68 -28t68 28t28 68q0 42 -32 71v89q0 52 38 90t90 38t90 -38t38 -90v-89q-32 -29 -32 -71q0 -40 28 -68 -t68 -28t68 28t28 68q0 42 -32 71v89q0 68 -34.5 127.5t-93.5 93.5q0 10 0.5 42.5t0 48t-2.5 41.5t-7 47t-13 40q68 -15 120 -60.5t81 -103t47.5 -132.5t24 -138t5.5 -131zM1088 1024q0 -159 -112.5 -271.5t-271.5 -112.5t-271.5 112.5t-112.5 271.5t112.5 271.5t271.5 112.5 -t271.5 -112.5t112.5 -271.5z" /> - <glyph glyph-name="stethoscope" unicode="&#xf0f1;" horiz-adv-x="1408" -d="M1280 832q0 26 -19 45t-45 19t-45 -19t-19 -45t19 -45t45 -19t45 19t19 45zM1408 832q0 -62 -35.5 -111t-92.5 -70v-395q0 -159 -131.5 -271.5t-316.5 -112.5t-316.5 112.5t-131.5 271.5v132q-164 20 -274 128t-110 252v512q0 26 19 45t45 19q6 0 16 -2q17 30 47 48 -t65 18q53 0 90.5 -37.5t37.5 -90.5t-37.5 -90.5t-90.5 -37.5q-33 0 -64 18v-402q0 -106 94 -181t226 -75t226 75t94 181v402q-31 -18 -64 -18q-53 0 -90.5 37.5t-37.5 90.5t37.5 90.5t90.5 37.5q35 0 65 -18t47 -48q10 2 16 2q26 0 45 -19t19 -45v-512q0 -144 -110 -252 -t-274 -128v-132q0 -106 94 -181t226 -75t226 75t94 181v395q-57 21 -92.5 70t-35.5 111q0 80 56 136t136 56t136 -56t56 -136z" /> - <glyph glyph-name="suitcase" unicode="&#xf0f2;" horiz-adv-x="1792" -d="M640 1152h512v128h-512v-128zM288 1152v-1280h-64q-92 0 -158 66t-66 158v832q0 92 66 158t158 66h64zM1408 1152v-1280h-1024v1280h128v160q0 40 28 68t68 28h576q40 0 68 -28t28 -68v-160h128zM1792 928v-832q0 -92 -66 -158t-158 -66h-64v1280h64q92 0 158 -66 -t66 -158z" /> - <glyph glyph-name="bell_alt" unicode="&#xf0f3;" horiz-adv-x="1792" -d="M912 -160q0 16 -16 16q-59 0 -101.5 42.5t-42.5 101.5q0 16 -16 16t-16 -16q0 -73 51.5 -124.5t124.5 -51.5q16 0 16 16zM1728 128q0 -52 -38 -90t-90 -38h-448q0 -106 -75 -181t-181 -75t-181 75t-75 181h-448q-52 0 -90 38t-38 90q50 42 91 88t85 119.5t74.5 158.5 -t50 206t19.5 260q0 152 117 282.5t307 158.5q-8 19 -8 39q0 40 28 68t68 28t68 -28t28 -68q0 -20 -8 -39q190 -28 307 -158.5t117 -282.5q0 -139 19.5 -260t50 -206t74.5 -158.5t85 -119.5t91 -88z" /> - <glyph glyph-name="coffee" unicode="&#xf0f4;" horiz-adv-x="1920" -d="M1664 896q0 80 -56 136t-136 56h-64v-384h64q80 0 136 56t56 136zM0 128h1792q0 -106 -75 -181t-181 -75h-1280q-106 0 -181 75t-75 181zM1856 896q0 -159 -112.5 -271.5t-271.5 -112.5h-64v-32q0 -92 -66 -158t-158 -66h-704q-92 0 -158 66t-66 158v736q0 26 19 45 -t45 19h1152q159 0 271.5 -112.5t112.5 -271.5z" /> - <glyph glyph-name="food" unicode="&#xf0f5;" horiz-adv-x="1408" -d="M640 1472v-640q0 -61 -35.5 -111t-92.5 -70v-779q0 -52 -38 -90t-90 -38h-128q-52 0 -90 38t-38 90v779q-57 20 -92.5 70t-35.5 111v640q0 26 19 45t45 19t45 -19t19 -45v-416q0 -26 19 -45t45 -19t45 19t19 45v416q0 26 19 45t45 19t45 -19t19 -45v-416q0 -26 19 -45 -t45 -19t45 19t19 45v416q0 26 19 45t45 19t45 -19t19 -45zM1408 1472v-1600q0 -52 -38 -90t-90 -38h-128q-52 0 -90 38t-38 90v512h-224q-13 0 -22.5 9.5t-9.5 22.5v800q0 132 94 226t226 94h256q26 0 45 -19t19 -45z" /> - <glyph glyph-name="file_text_alt" unicode="&#xf0f6;" -d="M1468 1156q28 -28 48 -76t20 -88v-1152q0 -40 -28 -68t-68 -28h-1344q-40 0 -68 28t-28 68v1600q0 40 28 68t68 28h896q40 0 88 -20t76 -48zM1024 1400v-376h376q-10 29 -22 41l-313 313q-12 12 -41 22zM1408 -128v1024h-416q-40 0 -68 28t-28 68v416h-768v-1536h1280z -M384 736q0 14 9 23t23 9h704q14 0 23 -9t9 -23v-64q0 -14 -9 -23t-23 -9h-704q-14 0 -23 9t-9 23v64zM1120 512q14 0 23 -9t9 -23v-64q0 -14 -9 -23t-23 -9h-704q-14 0 -23 9t-9 23v64q0 14 9 23t23 9h704zM1120 256q14 0 23 -9t9 -23v-64q0 -14 -9 -23t-23 -9h-704 -q-14 0 -23 9t-9 23v64q0 14 9 23t23 9h704z" /> - <glyph glyph-name="building" unicode="&#xf0f7;" horiz-adv-x="1408" -d="M384 224v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5zM384 480v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5z -M640 480v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5zM384 736v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5z -M1152 224v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5zM896 480v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5z -M640 736v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5zM384 992v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5z -M1152 480v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5zM896 736v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5z -M640 992v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5zM384 1248v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5z -M1152 736v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5zM896 992v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5z -M640 1248v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5zM1152 992v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5z -M896 1248v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5zM1152 1248v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5z -M896 -128h384v1536h-1152v-1536h384v224q0 13 9.5 22.5t22.5 9.5h320q13 0 22.5 -9.5t9.5 -22.5v-224zM1408 1472v-1664q0 -26 -19 -45t-45 -19h-1280q-26 0 -45 19t-19 45v1664q0 26 19 45t45 19h1280q26 0 45 -19t19 -45z" /> - <glyph glyph-name="hospital" unicode="&#xf0f8;" horiz-adv-x="1408" -d="M384 224v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5zM384 480v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5z -M640 480v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5zM384 736v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5z -M1152 224v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5zM896 480v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5z -M640 736v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5zM1152 480v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5z -M896 736v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5zM1152 736v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5z -M896 -128h384v1152h-256v-32q0 -40 -28 -68t-68 -28h-448q-40 0 -68 28t-28 68v32h-256v-1152h384v224q0 13 9.5 22.5t22.5 9.5h320q13 0 22.5 -9.5t9.5 -22.5v-224zM896 1056v320q0 13 -9.5 22.5t-22.5 9.5h-64q-13 0 -22.5 -9.5t-9.5 -22.5v-96h-128v96q0 13 -9.5 22.5 -t-22.5 9.5h-64q-13 0 -22.5 -9.5t-9.5 -22.5v-320q0 -13 9.5 -22.5t22.5 -9.5h64q13 0 22.5 9.5t9.5 22.5v96h128v-96q0 -13 9.5 -22.5t22.5 -9.5h64q13 0 22.5 9.5t9.5 22.5zM1408 1088v-1280q0 -26 -19 -45t-45 -19h-1280q-26 0 -45 19t-19 45v1280q0 26 19 45t45 19h320 -v288q0 40 28 68t68 28h448q40 0 68 -28t28 -68v-288h320q26 0 45 -19t19 -45z" /> - <glyph glyph-name="ambulance" unicode="&#xf0f9;" horiz-adv-x="1920" -d="M640 128q0 53 -37.5 90.5t-90.5 37.5t-90.5 -37.5t-37.5 -90.5t37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5zM256 640h384v256h-158q-14 -2 -22 -9l-195 -195q-7 -12 -9 -22v-30zM1536 128q0 53 -37.5 90.5t-90.5 37.5t-90.5 -37.5t-37.5 -90.5t37.5 -90.5t90.5 -37.5 -t90.5 37.5t37.5 90.5zM1664 800v192q0 14 -9 23t-23 9h-224v224q0 14 -9 23t-23 9h-192q-14 0 -23 -9t-9 -23v-224h-224q-14 0 -23 -9t-9 -23v-192q0 -14 9 -23t23 -9h224v-224q0 -14 9 -23t23 -9h192q14 0 23 9t9 23v224h224q14 0 23 9t9 23zM1920 1344v-1152 -q0 -26 -19 -45t-45 -19h-192q0 -106 -75 -181t-181 -75t-181 75t-75 181h-384q0 -106 -75 -181t-181 -75t-181 75t-75 181h-128q-26 0 -45 19t-19 45t19 45t45 19v416q0 26 13 58t32 51l198 198q19 19 51 32t58 13h160v320q0 26 19 45t45 19h1152q26 0 45 -19t19 -45z" /> - <glyph glyph-name="medkit" unicode="&#xf0fa;" horiz-adv-x="1792" -d="M1280 416v192q0 14 -9 23t-23 9h-224v224q0 14 -9 23t-23 9h-192q-14 0 -23 -9t-9 -23v-224h-224q-14 0 -23 -9t-9 -23v-192q0 -14 9 -23t23 -9h224v-224q0 -14 9 -23t23 -9h192q14 0 23 9t9 23v224h224q14 0 23 9t9 23zM640 1152h512v128h-512v-128zM256 1152v-1280h-32 -q-92 0 -158 66t-66 158v832q0 92 66 158t158 66h32zM1440 1152v-1280h-1088v1280h160v160q0 40 28 68t68 28h576q40 0 68 -28t28 -68v-160h160zM1792 928v-832q0 -92 -66 -158t-158 -66h-32v1280h32q92 0 158 -66t66 -158z" /> - <glyph glyph-name="fighter_jet" unicode="&#xf0fb;" horiz-adv-x="1920" -d="M1920 576q-1 -32 -288 -96l-352 -32l-224 -64h-64l-293 -352h69q26 0 45 -4.5t19 -11.5t-19 -11.5t-45 -4.5h-96h-160h-64v32h64v416h-160l-192 -224h-96l-32 32v192h32v32h128v8l-192 24v128l192 24v8h-128v32h-32v192l32 32h96l192 -224h160v416h-64v32h64h160h96 -q26 0 45 -4.5t19 -11.5t-19 -11.5t-45 -4.5h-69l293 -352h64l224 -64l352 -32q128 -28 200 -52t80 -34z" /> - <glyph glyph-name="beer" unicode="&#xf0fc;" horiz-adv-x="1664" -d="M640 640v384h-256v-256q0 -53 37.5 -90.5t90.5 -37.5h128zM1664 192v-192h-1152v192l128 192h-128q-159 0 -271.5 112.5t-112.5 271.5v320l-64 64l32 128h480l32 128h960l32 -192l-64 -32v-800z" /> - <glyph glyph-name="h_sign" unicode="&#xf0fd;" -d="M1280 192v896q0 26 -19 45t-45 19h-128q-26 0 -45 -19t-19 -45v-320h-512v320q0 26 -19 45t-45 19h-128q-26 0 -45 -19t-19 -45v-896q0 -26 19 -45t45 -19h128q26 0 45 19t19 45v320h512v-320q0 -26 19 -45t45 -19h128q26 0 45 19t19 45zM1536 1120v-960 -q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" /> - <glyph glyph-name="f0fe" unicode="&#xf0fe;" -d="M1280 576v128q0 26 -19 45t-45 19h-320v320q0 26 -19 45t-45 19h-128q-26 0 -45 -19t-19 -45v-320h-320q-26 0 -45 -19t-19 -45v-128q0 -26 19 -45t45 -19h320v-320q0 -26 19 -45t45 -19h128q26 0 45 19t19 45v320h320q26 0 45 19t19 45zM1536 1120v-960 -q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" /> - <glyph glyph-name="double_angle_left" unicode="&#xf100;" horiz-adv-x="1024" -d="M627 160q0 -13 -10 -23l-50 -50q-10 -10 -23 -10t-23 10l-466 466q-10 10 -10 23t10 23l466 466q10 10 23 10t23 -10l50 -50q10 -10 10 -23t-10 -23l-393 -393l393 -393q10 -10 10 -23zM1011 160q0 -13 -10 -23l-50 -50q-10 -10 -23 -10t-23 10l-466 466q-10 10 -10 23 -t10 23l466 466q10 10 23 10t23 -10l50 -50q10 -10 10 -23t-10 -23l-393 -393l393 -393q10 -10 10 -23z" /> - <glyph glyph-name="double_angle_right" unicode="&#xf101;" horiz-adv-x="1024" -d="M595 576q0 -13 -10 -23l-466 -466q-10 -10 -23 -10t-23 10l-50 50q-10 10 -10 23t10 23l393 393l-393 393q-10 10 -10 23t10 23l50 50q10 10 23 10t23 -10l466 -466q10 -10 10 -23zM979 576q0 -13 -10 -23l-466 -466q-10 -10 -23 -10t-23 10l-50 50q-10 10 -10 23t10 23 -l393 393l-393 393q-10 10 -10 23t10 23l50 50q10 10 23 10t23 -10l466 -466q10 -10 10 -23z" /> - <glyph glyph-name="double_angle_up" unicode="&#xf102;" horiz-adv-x="1152" -d="M1075 224q0 -13 -10 -23l-50 -50q-10 -10 -23 -10t-23 10l-393 393l-393 -393q-10 -10 -23 -10t-23 10l-50 50q-10 10 -10 23t10 23l466 466q10 10 23 10t23 -10l466 -466q10 -10 10 -23zM1075 608q0 -13 -10 -23l-50 -50q-10 -10 -23 -10t-23 10l-393 393l-393 -393 -q-10 -10 -23 -10t-23 10l-50 50q-10 10 -10 23t10 23l466 466q10 10 23 10t23 -10l466 -466q10 -10 10 -23z" /> - <glyph glyph-name="double_angle_down" unicode="&#xf103;" horiz-adv-x="1152" -d="M1075 672q0 -13 -10 -23l-466 -466q-10 -10 -23 -10t-23 10l-466 466q-10 10 -10 23t10 23l50 50q10 10 23 10t23 -10l393 -393l393 393q10 10 23 10t23 -10l50 -50q10 -10 10 -23zM1075 1056q0 -13 -10 -23l-466 -466q-10 -10 -23 -10t-23 10l-466 466q-10 10 -10 23 -t10 23l50 50q10 10 23 10t23 -10l393 -393l393 393q10 10 23 10t23 -10l50 -50q10 -10 10 -23z" /> - <glyph glyph-name="angle_left" unicode="&#xf104;" horiz-adv-x="640" -d="M627 992q0 -13 -10 -23l-393 -393l393 -393q10 -10 10 -23t-10 -23l-50 -50q-10 -10 -23 -10t-23 10l-466 466q-10 10 -10 23t10 23l466 466q10 10 23 10t23 -10l50 -50q10 -10 10 -23z" /> - <glyph glyph-name="angle_right" unicode="&#xf105;" horiz-adv-x="640" -d="M595 576q0 -13 -10 -23l-466 -466q-10 -10 -23 -10t-23 10l-50 50q-10 10 -10 23t10 23l393 393l-393 393q-10 10 -10 23t10 23l50 50q10 10 23 10t23 -10l466 -466q10 -10 10 -23z" /> - <glyph glyph-name="angle_up" unicode="&#xf106;" horiz-adv-x="1152" -d="M1075 352q0 -13 -10 -23l-50 -50q-10 -10 -23 -10t-23 10l-393 393l-393 -393q-10 -10 -23 -10t-23 10l-50 50q-10 10 -10 23t10 23l466 466q10 10 23 10t23 -10l466 -466q10 -10 10 -23z" /> - <glyph glyph-name="angle_down" unicode="&#xf107;" horiz-adv-x="1152" -d="M1075 800q0 -13 -10 -23l-466 -466q-10 -10 -23 -10t-23 10l-466 466q-10 10 -10 23t10 23l50 50q10 10 23 10t23 -10l393 -393l393 393q10 10 23 10t23 -10l50 -50q10 -10 10 -23z" /> - <glyph glyph-name="desktop" unicode="&#xf108;" horiz-adv-x="1920" -d="M1792 544v832q0 13 -9.5 22.5t-22.5 9.5h-1600q-13 0 -22.5 -9.5t-9.5 -22.5v-832q0 -13 9.5 -22.5t22.5 -9.5h1600q13 0 22.5 9.5t9.5 22.5zM1920 1376v-1088q0 -66 -47 -113t-113 -47h-544q0 -37 16 -77.5t32 -71t16 -43.5q0 -26 -19 -45t-45 -19h-512q-26 0 -45 19 -t-19 45q0 14 16 44t32 70t16 78h-544q-66 0 -113 47t-47 113v1088q0 66 47 113t113 47h1600q66 0 113 -47t47 -113z" /> - <glyph glyph-name="laptop" unicode="&#xf109;" horiz-adv-x="1920" -d="M416 256q-66 0 -113 47t-47 113v704q0 66 47 113t113 47h1088q66 0 113 -47t47 -113v-704q0 -66 -47 -113t-113 -47h-1088zM384 1120v-704q0 -13 9.5 -22.5t22.5 -9.5h1088q13 0 22.5 9.5t9.5 22.5v704q0 13 -9.5 22.5t-22.5 9.5h-1088q-13 0 -22.5 -9.5t-9.5 -22.5z -M1760 192h160v-96q0 -40 -47 -68t-113 -28h-1600q-66 0 -113 28t-47 68v96h160h1600zM1040 96q16 0 16 16t-16 16h-160q-16 0 -16 -16t16 -16h160z" /> - <glyph glyph-name="tablet" unicode="&#xf10a;" horiz-adv-x="1152" -d="M640 128q0 26 -19 45t-45 19t-45 -19t-19 -45t19 -45t45 -19t45 19t19 45zM1024 288v960q0 13 -9.5 22.5t-22.5 9.5h-832q-13 0 -22.5 -9.5t-9.5 -22.5v-960q0 -13 9.5 -22.5t22.5 -9.5h832q13 0 22.5 9.5t9.5 22.5zM1152 1248v-1088q0 -66 -47 -113t-113 -47h-832 -q-66 0 -113 47t-47 113v1088q0 66 47 113t113 47h832q66 0 113 -47t47 -113z" /> - <glyph glyph-name="mobile_phone" unicode="&#xf10b;" horiz-adv-x="768" -d="M464 128q0 33 -23.5 56.5t-56.5 23.5t-56.5 -23.5t-23.5 -56.5t23.5 -56.5t56.5 -23.5t56.5 23.5t23.5 56.5zM672 288v704q0 13 -9.5 22.5t-22.5 9.5h-512q-13 0 -22.5 -9.5t-9.5 -22.5v-704q0 -13 9.5 -22.5t22.5 -9.5h512q13 0 22.5 9.5t9.5 22.5zM480 1136 -q0 16 -16 16h-160q-16 0 -16 -16t16 -16h160q16 0 16 16zM768 1152v-1024q0 -52 -38 -90t-90 -38h-512q-52 0 -90 38t-38 90v1024q0 52 38 90t90 38h512q52 0 90 -38t38 -90z" /> - <glyph glyph-name="circle_blank" unicode="&#xf10c;" -d="M768 1184q-148 0 -273 -73t-198 -198t-73 -273t73 -273t198 -198t273 -73t273 73t198 198t73 273t-73 273t-198 198t-273 73zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103 -t279.5 -279.5t103 -385.5z" /> - <glyph glyph-name="quote_left" unicode="&#xf10d;" horiz-adv-x="1664" -d="M768 576v-384q0 -80 -56 -136t-136 -56h-384q-80 0 -136 56t-56 136v704q0 104 40.5 198.5t109.5 163.5t163.5 109.5t198.5 40.5h64q26 0 45 -19t19 -45v-128q0 -26 -19 -45t-45 -19h-64q-106 0 -181 -75t-75 -181v-32q0 -40 28 -68t68 -28h224q80 0 136 -56t56 -136z -M1664 576v-384q0 -80 -56 -136t-136 -56h-384q-80 0 -136 56t-56 136v704q0 104 40.5 198.5t109.5 163.5t163.5 109.5t198.5 40.5h64q26 0 45 -19t19 -45v-128q0 -26 -19 -45t-45 -19h-64q-106 0 -181 -75t-75 -181v-32q0 -40 28 -68t68 -28h224q80 0 136 -56t56 -136z" /> - <glyph glyph-name="quote_right" unicode="&#xf10e;" horiz-adv-x="1664" -d="M768 1216v-704q0 -104 -40.5 -198.5t-109.5 -163.5t-163.5 -109.5t-198.5 -40.5h-64q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h64q106 0 181 75t75 181v32q0 40 -28 68t-68 28h-224q-80 0 -136 56t-56 136v384q0 80 56 136t136 56h384q80 0 136 -56t56 -136zM1664 1216 -v-704q0 -104 -40.5 -198.5t-109.5 -163.5t-163.5 -109.5t-198.5 -40.5h-64q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h64q106 0 181 75t75 181v32q0 40 -28 68t-68 28h-224q-80 0 -136 56t-56 136v384q0 80 56 136t136 56h384q80 0 136 -56t56 -136z" /> - <glyph glyph-name="spinner" unicode="&#xf110;" horiz-adv-x="1792" -d="M526 142q0 -53 -37.5 -90.5t-90.5 -37.5q-52 0 -90 38t-38 90q0 53 37.5 90.5t90.5 37.5t90.5 -37.5t37.5 -90.5zM1024 -64q0 -53 -37.5 -90.5t-90.5 -37.5t-90.5 37.5t-37.5 90.5t37.5 90.5t90.5 37.5t90.5 -37.5t37.5 -90.5zM320 640q0 -53 -37.5 -90.5t-90.5 -37.5 -t-90.5 37.5t-37.5 90.5t37.5 90.5t90.5 37.5t90.5 -37.5t37.5 -90.5zM1522 142q0 -52 -38 -90t-90 -38q-53 0 -90.5 37.5t-37.5 90.5t37.5 90.5t90.5 37.5t90.5 -37.5t37.5 -90.5zM558 1138q0 -66 -47 -113t-113 -47t-113 47t-47 113t47 113t113 47t113 -47t47 -113z -M1728 640q0 -53 -37.5 -90.5t-90.5 -37.5t-90.5 37.5t-37.5 90.5t37.5 90.5t90.5 37.5t90.5 -37.5t37.5 -90.5zM1088 1344q0 -80 -56 -136t-136 -56t-136 56t-56 136t56 136t136 56t136 -56t56 -136zM1618 1138q0 -93 -66 -158.5t-158 -65.5q-93 0 -158.5 65.5t-65.5 158.5 -q0 92 65.5 158t158.5 66q92 0 158 -66t66 -158z" /> - <glyph glyph-name="circle" unicode="&#xf111;" -d="M1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" /> - <glyph glyph-name="reply" unicode="&#xf112;" horiz-adv-x="1792" -d="M1792 416q0 -166 -127 -451q-3 -7 -10.5 -24t-13.5 -30t-13 -22q-12 -17 -28 -17q-15 0 -23.5 10t-8.5 25q0 9 2.5 26.5t2.5 23.5q5 68 5 123q0 101 -17.5 181t-48.5 138.5t-80 101t-105.5 69.5t-133 42.5t-154 21.5t-175.5 6h-224v-256q0 -26 -19 -45t-45 -19t-45 19 -l-512 512q-19 19 -19 45t19 45l512 512q19 19 45 19t45 -19t19 -45v-256h224q713 0 875 -403q53 -134 53 -333z" /> - <glyph glyph-name="github_alt" unicode="&#xf113;" horiz-adv-x="1664" -d="M640 320q0 -40 -12.5 -82t-43 -76t-72.5 -34t-72.5 34t-43 76t-12.5 82t12.5 82t43 76t72.5 34t72.5 -34t43 -76t12.5 -82zM1280 320q0 -40 -12.5 -82t-43 -76t-72.5 -34t-72.5 34t-43 76t-12.5 82t12.5 82t43 76t72.5 34t72.5 -34t43 -76t12.5 -82zM1440 320 -q0 120 -69 204t-187 84q-41 0 -195 -21q-71 -11 -157 -11t-157 11q-152 21 -195 21q-118 0 -187 -84t-69 -204q0 -88 32 -153.5t81 -103t122 -60t140 -29.5t149 -7h168q82 0 149 7t140 29.5t122 60t81 103t32 153.5zM1664 496q0 -207 -61 -331q-38 -77 -105.5 -133t-141 -86 -t-170 -47.5t-171.5 -22t-167 -4.5q-78 0 -142 3t-147.5 12.5t-152.5 30t-137 51.5t-121 81t-86 115q-62 123 -62 331q0 237 136 396q-27 82 -27 170q0 116 51 218q108 0 190 -39.5t189 -123.5q147 35 309 35q148 0 280 -32q105 82 187 121t189 39q51 -102 51 -218 -q0 -87 -27 -168q136 -160 136 -398z" /> - <glyph glyph-name="folder_close_alt" unicode="&#xf114;" horiz-adv-x="1664" -d="M1536 224v704q0 40 -28 68t-68 28h-704q-40 0 -68 28t-28 68v64q0 40 -28 68t-68 28h-320q-40 0 -68 -28t-28 -68v-960q0 -40 28 -68t68 -28h1216q40 0 68 28t28 68zM1664 928v-704q0 -92 -66 -158t-158 -66h-1216q-92 0 -158 66t-66 158v960q0 92 66 158t158 66h320 -q92 0 158 -66t66 -158v-32h672q92 0 158 -66t66 -158z" /> - <glyph glyph-name="folder_open_alt" unicode="&#xf115;" horiz-adv-x="1920" -d="M1781 605q0 35 -53 35h-1088q-40 0 -85.5 -21.5t-71.5 -52.5l-294 -363q-18 -24 -18 -40q0 -35 53 -35h1088q40 0 86 22t71 53l294 363q18 22 18 39zM640 768h768v160q0 40 -28 68t-68 28h-576q-40 0 -68 28t-28 68v64q0 40 -28 68t-68 28h-320q-40 0 -68 -28t-28 -68 -v-853l256 315q44 53 116 87.5t140 34.5zM1909 605q0 -62 -46 -120l-295 -363q-43 -53 -116 -87.5t-140 -34.5h-1088q-92 0 -158 66t-66 158v960q0 92 66 158t158 66h320q92 0 158 -66t66 -158v-32h544q92 0 158 -66t66 -158v-160h192q54 0 99 -24.5t67 -70.5q15 -32 15 -68z -" /> - <glyph glyph-name="expand_alt" unicode="&#xf116;" horiz-adv-x="1792" - /> - <glyph glyph-name="collapse_alt" unicode="&#xf117;" horiz-adv-x="1792" - /> - <glyph glyph-name="smile" unicode="&#xf118;" -d="M1134 461q-37 -121 -138 -195t-228 -74t-228 74t-138 195q-8 25 4 48.5t38 31.5q25 8 48.5 -4t31.5 -38q25 -80 92.5 -129.5t151.5 -49.5t151.5 49.5t92.5 129.5q8 26 32 38t49 4t37 -31.5t4 -48.5zM640 896q0 -53 -37.5 -90.5t-90.5 -37.5t-90.5 37.5t-37.5 90.5 -t37.5 90.5t90.5 37.5t90.5 -37.5t37.5 -90.5zM1152 896q0 -53 -37.5 -90.5t-90.5 -37.5t-90.5 37.5t-37.5 90.5t37.5 90.5t90.5 37.5t90.5 -37.5t37.5 -90.5zM1408 640q0 130 -51 248.5t-136.5 204t-204 136.5t-248.5 51t-248.5 -51t-204 -136.5t-136.5 -204t-51 -248.5 -t51 -248.5t136.5 -204t204 -136.5t248.5 -51t248.5 51t204 136.5t136.5 204t51 248.5zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" /> - <glyph glyph-name="frown" unicode="&#xf119;" -d="M1134 307q8 -25 -4 -48.5t-37 -31.5t-49 4t-32 38q-25 80 -92.5 129.5t-151.5 49.5t-151.5 -49.5t-92.5 -129.5q-8 -26 -31.5 -38t-48.5 -4q-26 8 -38 31.5t-4 48.5q37 121 138 195t228 74t228 -74t138 -195zM640 896q0 -53 -37.5 -90.5t-90.5 -37.5t-90.5 37.5 -t-37.5 90.5t37.5 90.5t90.5 37.5t90.5 -37.5t37.5 -90.5zM1152 896q0 -53 -37.5 -90.5t-90.5 -37.5t-90.5 37.5t-37.5 90.5t37.5 90.5t90.5 37.5t90.5 -37.5t37.5 -90.5zM1408 640q0 130 -51 248.5t-136.5 204t-204 136.5t-248.5 51t-248.5 -51t-204 -136.5t-136.5 -204 -t-51 -248.5t51 -248.5t136.5 -204t204 -136.5t248.5 -51t248.5 51t204 136.5t136.5 204t51 248.5zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" /> - <glyph glyph-name="meh" unicode="&#xf11a;" -d="M1152 448q0 -26 -19 -45t-45 -19h-640q-26 0 -45 19t-19 45t19 45t45 19h640q26 0 45 -19t19 -45zM640 896q0 -53 -37.5 -90.5t-90.5 -37.5t-90.5 37.5t-37.5 90.5t37.5 90.5t90.5 37.5t90.5 -37.5t37.5 -90.5zM1152 896q0 -53 -37.5 -90.5t-90.5 -37.5t-90.5 37.5 -t-37.5 90.5t37.5 90.5t90.5 37.5t90.5 -37.5t37.5 -90.5zM1408 640q0 130 -51 248.5t-136.5 204t-204 136.5t-248.5 51t-248.5 -51t-204 -136.5t-136.5 -204t-51 -248.5t51 -248.5t136.5 -204t204 -136.5t248.5 -51t248.5 51t204 136.5t136.5 204t51 248.5zM1536 640 -q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" /> - <glyph glyph-name="gamepad" unicode="&#xf11b;" horiz-adv-x="1920" -d="M832 448v128q0 14 -9 23t-23 9h-192v192q0 14 -9 23t-23 9h-128q-14 0 -23 -9t-9 -23v-192h-192q-14 0 -23 -9t-9 -23v-128q0 -14 9 -23t23 -9h192v-192q0 -14 9 -23t23 -9h128q14 0 23 9t9 23v192h192q14 0 23 9t9 23zM1408 384q0 53 -37.5 90.5t-90.5 37.5t-90.5 -37.5 -t-37.5 -90.5t37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5zM1664 640q0 53 -37.5 90.5t-90.5 37.5t-90.5 -37.5t-37.5 -90.5t37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5zM1920 512q0 -212 -150 -362t-362 -150q-192 0 -338 128h-220q-146 -128 -338 -128q-212 0 -362 150 -t-150 362t150 362t362 150h896q212 0 362 -150t150 -362z" /> - <glyph glyph-name="keyboard" unicode="&#xf11c;" horiz-adv-x="1920" -d="M384 368v-96q0 -16 -16 -16h-96q-16 0 -16 16v96q0 16 16 16h96q16 0 16 -16zM512 624v-96q0 -16 -16 -16h-224q-16 0 -16 16v96q0 16 16 16h224q16 0 16 -16zM384 880v-96q0 -16 -16 -16h-96q-16 0 -16 16v96q0 16 16 16h96q16 0 16 -16zM1408 368v-96q0 -16 -16 -16 -h-864q-16 0 -16 16v96q0 16 16 16h864q16 0 16 -16zM768 624v-96q0 -16 -16 -16h-96q-16 0 -16 16v96q0 16 16 16h96q16 0 16 -16zM640 880v-96q0 -16 -16 -16h-96q-16 0 -16 16v96q0 16 16 16h96q16 0 16 -16zM1024 624v-96q0 -16 -16 -16h-96q-16 0 -16 16v96q0 16 16 16 -h96q16 0 16 -16zM896 880v-96q0 -16 -16 -16h-96q-16 0 -16 16v96q0 16 16 16h96q16 0 16 -16zM1280 624v-96q0 -16 -16 -16h-96q-16 0 -16 16v96q0 16 16 16h96q16 0 16 -16zM1664 368v-96q0 -16 -16 -16h-96q-16 0 -16 16v96q0 16 16 16h96q16 0 16 -16zM1152 880v-96 -q0 -16 -16 -16h-96q-16 0 -16 16v96q0 16 16 16h96q16 0 16 -16zM1408 880v-96q0 -16 -16 -16h-96q-16 0 -16 16v96q0 16 16 16h96q16 0 16 -16zM1664 880v-352q0 -16 -16 -16h-224q-16 0 -16 16v96q0 16 16 16h112v240q0 16 16 16h96q16 0 16 -16zM1792 128v896h-1664v-896 -h1664zM1920 1024v-896q0 -53 -37.5 -90.5t-90.5 -37.5h-1664q-53 0 -90.5 37.5t-37.5 90.5v896q0 53 37.5 90.5t90.5 37.5h1664q53 0 90.5 -37.5t37.5 -90.5z" /> - <glyph glyph-name="flag_alt" unicode="&#xf11d;" horiz-adv-x="1792" -d="M1664 491v616q-169 -91 -306 -91q-82 0 -145 32q-100 49 -184 76.5t-178 27.5q-173 0 -403 -127v-599q245 113 433 113q55 0 103.5 -7.5t98 -26t77 -31t82.5 -39.5l28 -14q44 -22 101 -22q120 0 293 92zM320 1280q0 -35 -17.5 -64t-46.5 -46v-1266q0 -14 -9 -23t-23 -9 -h-64q-14 0 -23 9t-9 23v1266q-29 17 -46.5 46t-17.5 64q0 53 37.5 90.5t90.5 37.5t90.5 -37.5t37.5 -90.5zM1792 1216v-763q0 -39 -35 -57q-10 -5 -17 -9q-218 -116 -369 -116q-88 0 -158 35l-28 14q-64 33 -99 48t-91 29t-114 14q-102 0 -235.5 -44t-228.5 -102 -q-15 -9 -33 -9q-16 0 -32 8q-32 19 -32 56v742q0 35 31 55q35 21 78.5 42.5t114 52t152.5 49.5t155 19q112 0 209 -31t209 -86q38 -19 89 -19q122 0 310 112q22 12 31 17q31 16 62 -2q31 -20 31 -55z" /> - <glyph glyph-name="flag_checkered" unicode="&#xf11e;" horiz-adv-x="1792" -d="M832 536v192q-181 -16 -384 -117v-185q205 96 384 110zM832 954v197q-172 -8 -384 -126v-189q215 111 384 118zM1664 491v184q-235 -116 -384 -71v224q-20 6 -39 15q-5 3 -33 17t-34.5 17t-31.5 15t-34.5 15.5t-32.5 13t-36 12.5t-35 8.5t-39.5 7.5t-39.5 4t-44 2 -q-23 0 -49 -3v-222h19q102 0 192.5 -29t197.5 -82q19 -9 39 -15v-188q42 -17 91 -17q120 0 293 92zM1664 918v189q-169 -91 -306 -91q-45 0 -78 8v-196q148 -42 384 90zM320 1280q0 -35 -17.5 -64t-46.5 -46v-1266q0 -14 -9 -23t-23 -9h-64q-14 0 -23 9t-9 23v1266 -q-29 17 -46.5 46t-17.5 64q0 53 37.5 90.5t90.5 37.5t90.5 -37.5t37.5 -90.5zM1792 1216v-763q0 -39 -35 -57q-10 -5 -17 -9q-218 -116 -369 -116q-88 0 -158 35l-28 14q-64 33 -99 48t-91 29t-114 14q-102 0 -235.5 -44t-228.5 -102q-15 -9 -33 -9q-16 0 -32 8 -q-32 19 -32 56v742q0 35 31 55q35 21 78.5 42.5t114 52t152.5 49.5t155 19q112 0 209 -31t209 -86q38 -19 89 -19q122 0 310 112q22 12 31 17q31 16 62 -2q31 -20 31 -55z" /> - <glyph glyph-name="terminal" unicode="&#xf120;" horiz-adv-x="1664" -d="M585 553l-466 -466q-10 -10 -23 -10t-23 10l-50 50q-10 10 -10 23t10 23l393 393l-393 393q-10 10 -10 23t10 23l50 50q10 10 23 10t23 -10l466 -466q10 -10 10 -23t-10 -23zM1664 96v-64q0 -14 -9 -23t-23 -9h-960q-14 0 -23 9t-9 23v64q0 14 9 23t23 9h960q14 0 23 -9 -t9 -23z" /> - <glyph glyph-name="code" unicode="&#xf121;" horiz-adv-x="1920" -d="M617 137l-50 -50q-10 -10 -23 -10t-23 10l-466 466q-10 10 -10 23t10 23l466 466q10 10 23 10t23 -10l50 -50q10 -10 10 -23t-10 -23l-393 -393l393 -393q10 -10 10 -23t-10 -23zM1208 1204l-373 -1291q-4 -13 -15.5 -19.5t-23.5 -2.5l-62 17q-13 4 -19.5 15.5t-2.5 24.5 -l373 1291q4 13 15.5 19.5t23.5 2.5l62 -17q13 -4 19.5 -15.5t2.5 -24.5zM1865 553l-466 -466q-10 -10 -23 -10t-23 10l-50 50q-10 10 -10 23t10 23l393 393l-393 393q-10 10 -10 23t10 23l50 50q10 10 23 10t23 -10l466 -466q10 -10 10 -23t-10 -23z" /> - <glyph glyph-name="reply_all" unicode="&#xf122;" horiz-adv-x="1792" -d="M640 454v-70q0 -42 -39 -59q-13 -5 -25 -5q-27 0 -45 19l-512 512q-19 19 -19 45t19 45l512 512q29 31 70 14q39 -17 39 -59v-69l-397 -398q-19 -19 -19 -45t19 -45zM1792 416q0 -58 -17 -133.5t-38.5 -138t-48 -125t-40.5 -90.5l-20 -40q-8 -17 -28 -17q-6 0 -9 1 -q-25 8 -23 34q43 400 -106 565q-64 71 -170.5 110.5t-267.5 52.5v-251q0 -42 -39 -59q-13 -5 -25 -5q-27 0 -45 19l-512 512q-19 19 -19 45t19 45l512 512q29 31 70 14q39 -17 39 -59v-262q411 -28 599 -221q169 -173 169 -509z" /> - <glyph glyph-name="star_half_empty" unicode="&#xf123;" horiz-adv-x="1664" -d="M1186 579l257 250l-356 52l-66 10l-30 60l-159 322v-963l59 -31l318 -168l-60 355l-12 66zM1638 841l-363 -354l86 -500q5 -33 -6 -51.5t-34 -18.5q-17 0 -40 12l-449 236l-449 -236q-23 -12 -40 -12q-23 0 -34 18.5t-6 51.5l86 500l-364 354q-32 32 -23 59.5t54 34.5 -l502 73l225 455q20 41 49 41q28 0 49 -41l225 -455l502 -73q45 -7 54 -34.5t-24 -59.5z" /> - <glyph glyph-name="location_arrow" unicode="&#xf124;" horiz-adv-x="1408" -d="M1401 1187l-640 -1280q-17 -35 -57 -35q-5 0 -15 2q-22 5 -35.5 22.5t-13.5 39.5v576h-576q-22 0 -39.5 13.5t-22.5 35.5t4 42t29 30l1280 640q13 7 29 7q27 0 45 -19q15 -14 18.5 -34.5t-6.5 -39.5z" /> - <glyph glyph-name="crop" unicode="&#xf125;" horiz-adv-x="1664" -d="M557 256h595v595zM512 301l595 595h-595v-595zM1664 224v-192q0 -14 -9 -23t-23 -9h-224v-224q0 -14 -9 -23t-23 -9h-192q-14 0 -23 9t-9 23v224h-864q-14 0 -23 9t-9 23v864h-224q-14 0 -23 9t-9 23v192q0 14 9 23t23 9h224v224q0 14 9 23t23 9h192q14 0 23 -9t9 -23 -v-224h851l246 247q10 9 23 9t23 -9q9 -10 9 -23t-9 -23l-247 -246v-851h224q14 0 23 -9t9 -23z" /> - <glyph glyph-name="code_fork" unicode="&#xf126;" horiz-adv-x="1024" -d="M288 64q0 40 -28 68t-68 28t-68 -28t-28 -68t28 -68t68 -28t68 28t28 68zM288 1216q0 40 -28 68t-68 28t-68 -28t-28 -68t28 -68t68 -28t68 28t28 68zM928 1088q0 40 -28 68t-68 28t-68 -28t-28 -68t28 -68t68 -28t68 28t28 68zM1024 1088q0 -52 -26 -96.5t-70 -69.5 -q-2 -287 -226 -414q-67 -38 -203 -81q-128 -40 -169.5 -71t-41.5 -100v-26q44 -25 70 -69.5t26 -96.5q0 -80 -56 -136t-136 -56t-136 56t-56 136q0 52 26 96.5t70 69.5v820q-44 25 -70 69.5t-26 96.5q0 80 56 136t136 56t136 -56t56 -136q0 -52 -26 -96.5t-70 -69.5v-497 -q54 26 154 57q55 17 87.5 29.5t70.5 31t59 39.5t40.5 51t28 69.5t8.5 91.5q-44 25 -70 69.5t-26 96.5q0 80 56 136t136 56t136 -56t56 -136z" /> - <glyph glyph-name="unlink" unicode="&#xf127;" horiz-adv-x="1664" -d="M439 265l-256 -256q-11 -9 -23 -9t-23 9q-9 10 -9 23t9 23l256 256q10 9 23 9t23 -9q9 -10 9 -23t-9 -23zM608 224v-320q0 -14 -9 -23t-23 -9t-23 9t-9 23v320q0 14 9 23t23 9t23 -9t9 -23zM384 448q0 -14 -9 -23t-23 -9h-320q-14 0 -23 9t-9 23t9 23t23 9h320 -q14 0 23 -9t9 -23zM1648 320q0 -120 -85 -203l-147 -146q-83 -83 -203 -83q-121 0 -204 85l-334 335q-21 21 -42 56l239 18l273 -274q27 -27 68 -27.5t68 26.5l147 146q28 28 28 67q0 40 -28 68l-274 275l18 239q35 -21 56 -42l336 -336q84 -86 84 -204zM1031 1044l-239 -18 -l-273 274q-28 28 -68 28q-39 0 -68 -27l-147 -146q-28 -28 -28 -67q0 -40 28 -68l274 -274l-18 -240q-35 21 -56 42l-336 336q-84 86 -84 204q0 120 85 203l147 146q83 83 203 83q121 0 204 -85l334 -335q21 -21 42 -56zM1664 960q0 -14 -9 -23t-23 -9h-320q-14 0 -23 9 -t-9 23t9 23t23 9h320q14 0 23 -9t9 -23zM1120 1504v-320q0 -14 -9 -23t-23 -9t-23 9t-9 23v320q0 14 9 23t23 9t23 -9t9 -23zM1527 1353l-256 -256q-11 -9 -23 -9t-23 9q-9 10 -9 23t9 23l256 256q10 9 23 9t23 -9q9 -10 9 -23t-9 -23z" /> - <glyph glyph-name="question" unicode="&#xf128;" horiz-adv-x="1024" -d="M704 280v-240q0 -16 -12 -28t-28 -12h-240q-16 0 -28 12t-12 28v240q0 16 12 28t28 12h240q16 0 28 -12t12 -28zM1020 880q0 -54 -15.5 -101t-35 -76.5t-55 -59.5t-57.5 -43.5t-61 -35.5q-41 -23 -68.5 -65t-27.5 -67q0 -17 -12 -32.5t-28 -15.5h-240q-15 0 -25.5 18.5 -t-10.5 37.5v45q0 83 65 156.5t143 108.5q59 27 84 56t25 76q0 42 -46.5 74t-107.5 32q-65 0 -108 -29q-35 -25 -107 -115q-13 -16 -31 -16q-12 0 -25 8l-164 125q-13 10 -15.5 25t5.5 28q160 266 464 266q80 0 161 -31t146 -83t106 -127.5t41 -158.5z" /> - <glyph glyph-name="_279" unicode="&#xf129;" horiz-adv-x="640" -d="M640 192v-128q0 -26 -19 -45t-45 -19h-512q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h64v384h-64q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h384q26 0 45 -19t19 -45v-576h64q26 0 45 -19t19 -45zM512 1344v-192q0 -26 -19 -45t-45 -19h-256q-26 0 -45 19t-19 45v192 -q0 26 19 45t45 19h256q26 0 45 -19t19 -45z" /> - <glyph glyph-name="exclamation" unicode="&#xf12a;" horiz-adv-x="640" -d="M512 288v-224q0 -26 -19 -45t-45 -19h-256q-26 0 -45 19t-19 45v224q0 26 19 45t45 19h256q26 0 45 -19t19 -45zM542 1344l-28 -768q-1 -26 -20.5 -45t-45.5 -19h-256q-26 0 -45.5 19t-20.5 45l-28 768q-1 26 17.5 45t44.5 19h320q26 0 44.5 -19t17.5 -45z" /> - <glyph glyph-name="superscript" unicode="&#xf12b;" -d="M897 167v-167h-248l-159 252l-24 42q-8 9 -11 21h-3q-1 -3 -2.5 -6.5t-3.5 -8t-3 -6.5q-10 -20 -25 -44l-155 -250h-258v167h128l197 291l-185 272h-137v168h276l139 -228q2 -4 23 -42q8 -9 11 -21h3q3 9 11 21l25 42l140 228h257v-168h-125l-184 -267l204 -296h109z -M1534 846v-206h-514l-3 27q-4 28 -4 46q0 64 26 117t65 86.5t84 65t84 54.5t65 54t26 64q0 38 -29.5 62.5t-70.5 24.5q-51 0 -97 -39q-14 -11 -36 -38l-105 92q26 37 63 66q83 65 188 65q110 0 178 -59.5t68 -158.5q0 -56 -24.5 -103t-62 -76.5t-81.5 -58.5t-82 -50.5 -t-65.5 -51.5t-30.5 -63h232v80h126z" /> - <glyph glyph-name="subscript" unicode="&#xf12c;" -d="M897 167v-167h-248l-159 252l-24 42q-8 9 -11 21h-3q-1 -3 -2.5 -6.5t-3.5 -8t-3 -6.5q-10 -20 -25 -44l-155 -250h-258v167h128l197 291l-185 272h-137v168h276l139 -228q2 -4 23 -42q8 -9 11 -21h3q3 9 11 21l25 42l140 228h257v-168h-125l-184 -267l204 -296h109z -M1536 -50v-206h-514l-4 27q-3 45 -3 46q0 64 26 117t65 86.5t84 65t84 54.5t65 54t26 64q0 38 -29.5 62.5t-70.5 24.5q-51 0 -97 -39q-14 -11 -36 -38l-105 92q26 37 63 66q80 65 188 65q110 0 178 -59.5t68 -158.5q0 -66 -34.5 -118.5t-84 -86t-99.5 -62.5t-87 -63t-41 -73 -h232v80h126z" /> - <glyph glyph-name="_283" unicode="&#xf12d;" horiz-adv-x="1920" -d="M896 128l336 384h-768l-336 -384h768zM1909 1205q15 -34 9.5 -71.5t-30.5 -65.5l-896 -1024q-38 -44 -96 -44h-768q-38 0 -69.5 20.5t-47.5 54.5q-15 34 -9.5 71.5t30.5 65.5l896 1024q38 44 96 44h768q38 0 69.5 -20.5t47.5 -54.5z" /> - <glyph glyph-name="puzzle_piece" unicode="&#xf12e;" horiz-adv-x="1664" -d="M1664 438q0 -81 -44.5 -135t-123.5 -54q-41 0 -77.5 17.5t-59 38t-56.5 38t-71 17.5q-110 0 -110 -124q0 -39 16 -115t15 -115v-5q-22 0 -33 -1q-34 -3 -97.5 -11.5t-115.5 -13.5t-98 -5q-61 0 -103 26.5t-42 83.5q0 37 17.5 71t38 56.5t38 59t17.5 77.5q0 79 -54 123.5 -t-135 44.5q-84 0 -143 -45.5t-59 -127.5q0 -43 15 -83t33.5 -64.5t33.5 -53t15 -50.5q0 -45 -46 -89q-37 -35 -117 -35q-95 0 -245 24q-9 2 -27.5 4t-27.5 4l-13 2q-1 0 -3 1q-2 0 -2 1v1024q2 -1 17.5 -3.5t34 -5t21.5 -3.5q150 -24 245 -24q80 0 117 35q46 44 46 89 -q0 22 -15 50.5t-33.5 53t-33.5 64.5t-15 83q0 82 59 127.5t144 45.5q80 0 134 -44.5t54 -123.5q0 -41 -17.5 -77.5t-38 -59t-38 -56.5t-17.5 -71q0 -57 42 -83.5t103 -26.5q64 0 180 15t163 17v-2q-1 -2 -3.5 -17.5t-5 -34t-3.5 -21.5q-24 -150 -24 -245q0 -80 35 -117 -q44 -46 89 -46q22 0 50.5 15t53 33.5t64.5 33.5t83 15q82 0 127.5 -59t45.5 -143z" /> - <glyph glyph-name="microphone" unicode="&#xf130;" horiz-adv-x="1152" -d="M1152 832v-128q0 -221 -147.5 -384.5t-364.5 -187.5v-132h256q26 0 45 -19t19 -45t-19 -45t-45 -19h-640q-26 0 -45 19t-19 45t19 45t45 19h256v132q-217 24 -364.5 187.5t-147.5 384.5v128q0 26 19 45t45 19t45 -19t19 -45v-128q0 -185 131.5 -316.5t316.5 -131.5 -t316.5 131.5t131.5 316.5v128q0 26 19 45t45 19t45 -19t19 -45zM896 1216v-512q0 -132 -94 -226t-226 -94t-226 94t-94 226v512q0 132 94 226t226 94t226 -94t94 -226z" /> - <glyph glyph-name="microphone_off" unicode="&#xf131;" horiz-adv-x="1408" -d="M271 591l-101 -101q-42 103 -42 214v128q0 26 19 45t45 19t45 -19t19 -45v-128q0 -53 15 -113zM1385 1193l-361 -361v-128q0 -132 -94 -226t-226 -94q-55 0 -109 19l-96 -96q97 -51 205 -51q185 0 316.5 131.5t131.5 316.5v128q0 26 19 45t45 19t45 -19t19 -45v-128 -q0 -221 -147.5 -384.5t-364.5 -187.5v-132h256q26 0 45 -19t19 -45t-19 -45t-45 -19h-640q-26 0 -45 19t-19 45t19 45t45 19h256v132q-125 13 -235 81l-254 -254q-10 -10 -23 -10t-23 10l-82 82q-10 10 -10 23t10 23l1234 1234q10 10 23 10t23 -10l82 -82q10 -10 10 -23 -t-10 -23zM1005 1325l-621 -621v512q0 132 94 226t226 94q102 0 184.5 -59t116.5 -152z" /> - <glyph glyph-name="shield" unicode="&#xf132;" horiz-adv-x="1280" -d="M1088 576v640h-448v-1137q119 63 213 137q235 184 235 360zM1280 1344v-768q0 -86 -33.5 -170.5t-83 -150t-118 -127.5t-126.5 -103t-121 -77.5t-89.5 -49.5t-42.5 -20q-12 -6 -26 -6t-26 6q-16 7 -42.5 20t-89.5 49.5t-121 77.5t-126.5 103t-118 127.5t-83 150 -t-33.5 170.5v768q0 26 19 45t45 19h1152q26 0 45 -19t19 -45z" /> - <glyph glyph-name="calendar_empty" unicode="&#xf133;" horiz-adv-x="1664" -d="M128 -128h1408v1024h-1408v-1024zM512 1088v288q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23v-288q0 -14 9 -23t23 -9h64q14 0 23 9t9 23zM1280 1088v288q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23v-288q0 -14 9 -23t23 -9h64q14 0 23 9t9 23zM1664 1152v-1280 -q0 -52 -38 -90t-90 -38h-1408q-52 0 -90 38t-38 90v1280q0 52 38 90t90 38h128v96q0 66 47 113t113 47h64q66 0 113 -47t47 -113v-96h384v96q0 66 47 113t113 47h64q66 0 113 -47t47 -113v-96h128q52 0 90 -38t38 -90z" /> - <glyph glyph-name="fire_extinguisher" unicode="&#xf134;" horiz-adv-x="1408" -d="M512 1344q0 26 -19 45t-45 19t-45 -19t-19 -45t19 -45t45 -19t45 19t19 45zM1408 1376v-320q0 -16 -12 -25q-8 -7 -20 -7q-4 0 -7 1l-448 96q-11 2 -18 11t-7 20h-256v-102q111 -23 183.5 -111t72.5 -203v-800q0 -26 -19 -45t-45 -19h-512q-26 0 -45 19t-19 45v800 -q0 106 62.5 190.5t161.5 114.5v111h-32q-59 0 -115 -23.5t-91.5 -53t-66 -66.5t-40.5 -53.5t-14 -24.5q-17 -35 -57 -35q-16 0 -29 7q-23 12 -31.5 37t3.5 49q5 10 14.5 26t37.5 53.5t60.5 70t85 67t108.5 52.5q-25 42 -25 86q0 66 47 113t113 47t113 -47t47 -113 -q0 -33 -14 -64h302q0 11 7 20t18 11l448 96q3 1 7 1q12 0 20 -7q12 -9 12 -25z" /> - <glyph glyph-name="rocket" unicode="&#xf135;" horiz-adv-x="1664" -d="M1440 1088q0 40 -28 68t-68 28t-68 -28t-28 -68t28 -68t68 -28t68 28t28 68zM1664 1376q0 -249 -75.5 -430.5t-253.5 -360.5q-81 -80 -195 -176l-20 -379q-2 -16 -16 -26l-384 -224q-7 -4 -16 -4q-12 0 -23 9l-64 64q-13 14 -8 32l85 276l-281 281l-276 -85q-3 -1 -9 -1 -q-14 0 -23 9l-64 64q-17 19 -5 39l224 384q10 14 26 16l379 20q96 114 176 195q188 187 358 258t431 71q14 0 24 -9.5t10 -22.5z" /> - <glyph glyph-name="maxcdn" unicode="&#xf136;" horiz-adv-x="1792" -d="M1745 763l-164 -763h-334l178 832q13 56 -15 88q-27 33 -83 33h-169l-204 -953h-334l204 953h-286l-204 -953h-334l204 953l-153 327h1276q101 0 189.5 -40.5t147.5 -113.5q60 -73 81 -168.5t0 -194.5z" /> - <glyph glyph-name="chevron_sign_left" unicode="&#xf137;" -d="M909 141l102 102q19 19 19 45t-19 45l-307 307l307 307q19 19 19 45t-19 45l-102 102q-19 19 -45 19t-45 -19l-454 -454q-19 -19 -19 -45t19 -45l454 -454q19 -19 45 -19t45 19zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5 -t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" /> - <glyph glyph-name="chevron_sign_right" unicode="&#xf138;" -d="M717 141l454 454q19 19 19 45t-19 45l-454 454q-19 19 -45 19t-45 -19l-102 -102q-19 -19 -19 -45t19 -45l307 -307l-307 -307q-19 -19 -19 -45t19 -45l102 -102q19 -19 45 -19t45 19zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5 -t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" /> - <glyph glyph-name="chevron_sign_up" unicode="&#xf139;" -d="M1165 397l102 102q19 19 19 45t-19 45l-454 454q-19 19 -45 19t-45 -19l-454 -454q-19 -19 -19 -45t19 -45l102 -102q19 -19 45 -19t45 19l307 307l307 -307q19 -19 45 -19t45 19zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5 -t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" /> - <glyph glyph-name="chevron_sign_down" unicode="&#xf13a;" -d="M813 237l454 454q19 19 19 45t-19 45l-102 102q-19 19 -45 19t-45 -19l-307 -307l-307 307q-19 19 -45 19t-45 -19l-102 -102q-19 -19 -19 -45t19 -45l454 -454q19 -19 45 -19t45 19zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5 -t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" /> - <glyph glyph-name="html5" unicode="&#xf13b;" horiz-adv-x="1408" -d="M1130 939l16 175h-884l47 -534h612l-22 -228l-197 -53l-196 53l-13 140h-175l22 -278l362 -100h4v1l359 99l50 544h-644l-15 181h674zM0 1408h1408l-128 -1438l-578 -162l-574 162z" /> - <glyph glyph-name="css3" unicode="&#xf13c;" horiz-adv-x="1792" -d="M275 1408h1505l-266 -1333l-804 -267l-698 267l71 356h297l-29 -147l422 -161l486 161l68 339h-1208l58 297h1209l38 191h-1208z" /> - <glyph glyph-name="anchor" unicode="&#xf13d;" horiz-adv-x="1792" -d="M960 1280q0 26 -19 45t-45 19t-45 -19t-19 -45t19 -45t45 -19t45 19t19 45zM1792 352v-352q0 -22 -20 -30q-8 -2 -12 -2q-12 0 -23 9l-93 93q-119 -143 -318.5 -226.5t-429.5 -83.5t-429.5 83.5t-318.5 226.5l-93 -93q-9 -9 -23 -9q-4 0 -12 2q-20 8 -20 30v352 -q0 14 9 23t23 9h352q22 0 30 -20q8 -19 -7 -35l-100 -100q67 -91 189.5 -153.5t271.5 -82.5v647h-192q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h192v163q-58 34 -93 92.5t-35 128.5q0 106 75 181t181 75t181 -75t75 -181q0 -70 -35 -128.5t-93 -92.5v-163h192q26 0 45 -19 -t19 -45v-128q0 -26 -19 -45t-45 -19h-192v-647q149 20 271.5 82.5t189.5 153.5l-100 100q-15 16 -7 35q8 20 30 20h352q14 0 23 -9t9 -23z" /> - <glyph glyph-name="unlock_alt" unicode="&#xf13e;" horiz-adv-x="1152" -d="M1056 768q40 0 68 -28t28 -68v-576q0 -40 -28 -68t-68 -28h-960q-40 0 -68 28t-28 68v576q0 40 28 68t68 28h32v320q0 185 131.5 316.5t316.5 131.5t316.5 -131.5t131.5 -316.5q0 -26 -19 -45t-45 -19h-64q-26 0 -45 19t-19 45q0 106 -75 181t-181 75t-181 -75t-75 -181 -v-320h736z" /> - <glyph glyph-name="bullseye" unicode="&#xf140;" -d="M1024 640q0 -106 -75 -181t-181 -75t-181 75t-75 181t75 181t181 75t181 -75t75 -181zM1152 640q0 159 -112.5 271.5t-271.5 112.5t-271.5 -112.5t-112.5 -271.5t112.5 -271.5t271.5 -112.5t271.5 112.5t112.5 271.5zM1280 640q0 -212 -150 -362t-362 -150t-362 150 -t-150 362t150 362t362 150t362 -150t150 -362zM1408 640q0 130 -51 248.5t-136.5 204t-204 136.5t-248.5 51t-248.5 -51t-204 -136.5t-136.5 -204t-51 -248.5t51 -248.5t136.5 -204t204 -136.5t248.5 -51t248.5 51t204 136.5t136.5 204t51 248.5zM1536 640 -q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" /> - <glyph glyph-name="ellipsis_horizontal" unicode="&#xf141;" horiz-adv-x="1408" -d="M384 800v-192q0 -40 -28 -68t-68 -28h-192q-40 0 -68 28t-28 68v192q0 40 28 68t68 28h192q40 0 68 -28t28 -68zM896 800v-192q0 -40 -28 -68t-68 -28h-192q-40 0 -68 28t-28 68v192q0 40 28 68t68 28h192q40 0 68 -28t28 -68zM1408 800v-192q0 -40 -28 -68t-68 -28h-192 -q-40 0 -68 28t-28 68v192q0 40 28 68t68 28h192q40 0 68 -28t28 -68z" /> - <glyph glyph-name="ellipsis_vertical" unicode="&#xf142;" horiz-adv-x="384" -d="M384 288v-192q0 -40 -28 -68t-68 -28h-192q-40 0 -68 28t-28 68v192q0 40 28 68t68 28h192q40 0 68 -28t28 -68zM384 800v-192q0 -40 -28 -68t-68 -28h-192q-40 0 -68 28t-28 68v192q0 40 28 68t68 28h192q40 0 68 -28t28 -68zM384 1312v-192q0 -40 -28 -68t-68 -28h-192 -q-40 0 -68 28t-28 68v192q0 40 28 68t68 28h192q40 0 68 -28t28 -68z" /> - <glyph glyph-name="_303" unicode="&#xf143;" -d="M512 256q0 53 -37.5 90.5t-90.5 37.5t-90.5 -37.5t-37.5 -90.5t37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5zM863 162q-13 233 -176.5 396.5t-396.5 176.5q-14 1 -24 -9t-10 -23v-128q0 -13 8.5 -22t21.5 -10q154 -11 264 -121t121 -264q1 -13 10 -21.5t22 -8.5h128 -q13 0 23 10t9 24zM1247 161q-5 154 -56 297.5t-139.5 260t-205 205t-260 139.5t-297.5 56q-14 1 -23 -9q-10 -10 -10 -23v-128q0 -13 9 -22t22 -10q204 -7 378 -111.5t278.5 -278.5t111.5 -378q1 -13 10 -22t22 -9h128q13 0 23 10q11 9 9 23zM1536 1120v-960 -q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" /> - <glyph glyph-name="play_sign" unicode="&#xf144;" -d="M768 1408q209 0 385.5 -103t279.5 -279.5t103 -385.5t-103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103zM1152 585q32 18 32 55t-32 55l-544 320q-31 19 -64 1q-32 -19 -32 -56v-640q0 -37 32 -56 -q16 -8 32 -8q17 0 32 9z" /> - <glyph glyph-name="ticket" unicode="&#xf145;" horiz-adv-x="1792" -d="M1024 1084l316 -316l-572 -572l-316 316zM813 105l618 618q19 19 19 45t-19 45l-362 362q-18 18 -45 18t-45 -18l-618 -618q-19 -19 -19 -45t19 -45l362 -362q18 -18 45 -18t45 18zM1702 742l-907 -908q-37 -37 -90.5 -37t-90.5 37l-126 126q56 56 56 136t-56 136 -t-136 56t-136 -56l-125 126q-37 37 -37 90.5t37 90.5l907 906q37 37 90.5 37t90.5 -37l125 -125q-56 -56 -56 -136t56 -136t136 -56t136 56l126 -125q37 -37 37 -90.5t-37 -90.5z" /> - <glyph glyph-name="minus_sign_alt" unicode="&#xf146;" -d="M1280 576v128q0 26 -19 45t-45 19h-896q-26 0 -45 -19t-19 -45v-128q0 -26 19 -45t45 -19h896q26 0 45 19t19 45zM1536 1120v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5 -t84.5 -203.5z" /> - <glyph glyph-name="check_minus" unicode="&#xf147;" horiz-adv-x="1408" -d="M1152 736v-64q0 -14 -9 -23t-23 -9h-832q-14 0 -23 9t-9 23v64q0 14 9 23t23 9h832q14 0 23 -9t9 -23zM1280 288v832q0 66 -47 113t-113 47h-832q-66 0 -113 -47t-47 -113v-832q0 -66 47 -113t113 -47h832q66 0 113 47t47 113zM1408 1120v-832q0 -119 -84.5 -203.5 -t-203.5 -84.5h-832q-119 0 -203.5 84.5t-84.5 203.5v832q0 119 84.5 203.5t203.5 84.5h832q119 0 203.5 -84.5t84.5 -203.5z" /> - <glyph glyph-name="level_up" unicode="&#xf148;" horiz-adv-x="1024" -d="M1018 933q-18 -37 -58 -37h-192v-864q0 -14 -9 -23t-23 -9h-704q-21 0 -29 18q-8 20 4 35l160 192q9 11 25 11h320v640h-192q-40 0 -58 37q-17 37 9 68l320 384q18 22 49 22t49 -22l320 -384q27 -32 9 -68z" /> - <glyph glyph-name="level_down" unicode="&#xf149;" horiz-adv-x="1024" -d="M32 1280h704q13 0 22.5 -9.5t9.5 -23.5v-863h192q40 0 58 -37t-9 -69l-320 -384q-18 -22 -49 -22t-49 22l-320 384q-26 31 -9 69q18 37 58 37h192v640h-320q-14 0 -25 11l-160 192q-13 14 -4 34q9 19 29 19z" /> - <glyph glyph-name="check_sign" unicode="&#xf14a;" -d="M685 237l614 614q19 19 19 45t-19 45l-102 102q-19 19 -45 19t-45 -19l-467 -467l-211 211q-19 19 -45 19t-45 -19l-102 -102q-19 -19 -19 -45t19 -45l358 -358q19 -19 45 -19t45 19zM1536 1120v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5 -t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" /> - <glyph glyph-name="edit_sign" unicode="&#xf14b;" -d="M404 428l152 -152l-52 -52h-56v96h-96v56zM818 818q14 -13 -3 -30l-291 -291q-17 -17 -30 -3q-14 13 3 30l291 291q17 17 30 3zM544 128l544 544l-288 288l-544 -544v-288h288zM1152 736l92 92q28 28 28 68t-28 68l-152 152q-28 28 -68 28t-68 -28l-92 -92zM1536 1120 -v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" /> - <glyph glyph-name="_312" unicode="&#xf14c;" -d="M1280 608v480q0 26 -19 45t-45 19h-480q-42 0 -59 -39q-17 -41 14 -70l144 -144l-534 -534q-19 -19 -19 -45t19 -45l102 -102q19 -19 45 -19t45 19l534 534l144 -144q18 -19 45 -19q12 0 25 5q39 17 39 59zM1536 1120v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960 -q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" /> - <glyph glyph-name="share_sign" unicode="&#xf14d;" -d="M1005 435l352 352q19 19 19 45t-19 45l-352 352q-30 31 -69 14q-40 -17 -40 -59v-160q-119 0 -216 -19.5t-162.5 -51t-114 -79t-76.5 -95.5t-44.5 -109t-21.5 -111.5t-5 -110.5q0 -181 167 -404q11 -12 25 -12q7 0 13 3q22 9 19 33q-44 354 62 473q46 52 130 75.5 -t224 23.5v-160q0 -42 40 -59q12 -5 24 -5q26 0 45 19zM1536 1120v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" /> - <glyph glyph-name="compass" unicode="&#xf14e;" -d="M640 448l256 128l-256 128v-256zM1024 1039v-542l-512 -256v542zM1312 640q0 148 -73 273t-198 198t-273 73t-273 -73t-198 -198t-73 -273t73 -273t198 -198t273 -73t273 73t198 198t73 273zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103 -t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" /> - <glyph glyph-name="collapse" unicode="&#xf150;" -d="M1145 861q18 -35 -5 -66l-320 -448q-19 -27 -52 -27t-52 27l-320 448q-23 31 -5 66q17 35 57 35h640q40 0 57 -35zM1280 160v960q0 13 -9.5 22.5t-22.5 9.5h-960q-13 0 -22.5 -9.5t-9.5 -22.5v-960q0 -13 9.5 -22.5t22.5 -9.5h960q13 0 22.5 9.5t9.5 22.5zM1536 1120 -v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" /> - <glyph glyph-name="collapse_top" unicode="&#xf151;" -d="M1145 419q-17 -35 -57 -35h-640q-40 0 -57 35q-18 35 5 66l320 448q19 27 52 27t52 -27l320 -448q23 -31 5 -66zM1280 160v960q0 13 -9.5 22.5t-22.5 9.5h-960q-13 0 -22.5 -9.5t-9.5 -22.5v-960q0 -13 9.5 -22.5t22.5 -9.5h960q13 0 22.5 9.5t9.5 22.5zM1536 1120v-960 -q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" /> - <glyph glyph-name="_317" unicode="&#xf152;" -d="M1088 640q0 -33 -27 -52l-448 -320q-31 -23 -66 -5q-35 17 -35 57v640q0 40 35 57q35 18 66 -5l448 -320q27 -19 27 -52zM1280 160v960q0 14 -9 23t-23 9h-960q-14 0 -23 -9t-9 -23v-960q0 -14 9 -23t23 -9h960q14 0 23 9t9 23zM1536 1120v-960q0 -119 -84.5 -203.5 -t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" /> - <glyph glyph-name="eur" unicode="&#xf153;" horiz-adv-x="1024" -d="M976 229l35 -159q3 -12 -3 -22.5t-17 -14.5l-5 -1q-4 -2 -10.5 -3.5t-16 -4.5t-21.5 -5.5t-25.5 -5t-30 -5t-33.5 -4.5t-36.5 -3t-38.5 -1q-234 0 -409 130.5t-238 351.5h-95q-13 0 -22.5 9.5t-9.5 22.5v113q0 13 9.5 22.5t22.5 9.5h66q-2 57 1 105h-67q-14 0 -23 9 -t-9 23v114q0 14 9 23t23 9h98q67 210 243.5 338t400.5 128q102 0 194 -23q11 -3 20 -15q6 -11 3 -24l-43 -159q-3 -13 -14 -19.5t-24 -2.5l-4 1q-4 1 -11.5 2.5l-17.5 3.5t-22.5 3.5t-26 3t-29 2.5t-29.5 1q-126 0 -226 -64t-150 -176h468q16 0 25 -12q10 -12 7 -26 -l-24 -114q-5 -26 -32 -26h-488q-3 -37 0 -105h459q15 0 25 -12q9 -12 6 -27l-24 -112q-2 -11 -11 -18.5t-20 -7.5h-387q48 -117 149.5 -185.5t228.5 -68.5q18 0 36 1.5t33.5 3.5t29.5 4.5t24.5 5t18.5 4.5l12 3l5 2q13 5 26 -2q12 -7 15 -21z" /> - <glyph glyph-name="gbp" unicode="&#xf154;" horiz-adv-x="1024" -d="M1020 399v-367q0 -14 -9 -23t-23 -9h-956q-14 0 -23 9t-9 23v150q0 13 9.5 22.5t22.5 9.5h97v383h-95q-14 0 -23 9.5t-9 22.5v131q0 14 9 23t23 9h95v223q0 171 123.5 282t314.5 111q185 0 335 -125q9 -8 10 -20.5t-7 -22.5l-103 -127q-9 -11 -22 -12q-13 -2 -23 7 -q-5 5 -26 19t-69 32t-93 18q-85 0 -137 -47t-52 -123v-215h305q13 0 22.5 -9t9.5 -23v-131q0 -13 -9.5 -22.5t-22.5 -9.5h-305v-379h414v181q0 13 9 22.5t23 9.5h162q14 0 23 -9.5t9 -22.5z" /> - <glyph glyph-name="usd" unicode="&#xf155;" horiz-adv-x="1024" -d="M978 351q0 -153 -99.5 -263.5t-258.5 -136.5v-175q0 -14 -9 -23t-23 -9h-135q-13 0 -22.5 9.5t-9.5 22.5v175q-66 9 -127.5 31t-101.5 44.5t-74 48t-46.5 37.5t-17.5 18q-17 21 -2 41l103 135q7 10 23 12q15 2 24 -9l2 -2q113 -99 243 -125q37 -8 74 -8q81 0 142.5 43 -t61.5 122q0 28 -15 53t-33.5 42t-58.5 37.5t-66 32t-80 32.5q-39 16 -61.5 25t-61.5 26.5t-62.5 31t-56.5 35.5t-53.5 42.5t-43.5 49t-35.5 58t-21 66.5t-8.5 78q0 138 98 242t255 134v180q0 13 9.5 22.5t22.5 9.5h135q14 0 23 -9t9 -23v-176q57 -6 110.5 -23t87 -33.5 -t63.5 -37.5t39 -29t15 -14q17 -18 5 -38l-81 -146q-8 -15 -23 -16q-14 -3 -27 7q-3 3 -14.5 12t-39 26.5t-58.5 32t-74.5 26t-85.5 11.5q-95 0 -155 -43t-60 -111q0 -26 8.5 -48t29.5 -41.5t39.5 -33t56 -31t60.5 -27t70 -27.5q53 -20 81 -31.5t76 -35t75.5 -42.5t62 -50 -t53 -63.5t31.5 -76.5t13 -94z" /> - <glyph glyph-name="inr" unicode="&#xf156;" horiz-adv-x="898" -d="M898 1066v-102q0 -14 -9 -23t-23 -9h-168q-23 -144 -129 -234t-276 -110q167 -178 459 -536q14 -16 4 -34q-8 -18 -29 -18h-195q-16 0 -25 12q-306 367 -498 571q-9 9 -9 22v127q0 13 9.5 22.5t22.5 9.5h112q132 0 212.5 43t102.5 125h-427q-14 0 -23 9t-9 23v102 -q0 14 9 23t23 9h413q-57 113 -268 113h-145q-13 0 -22.5 9.5t-9.5 22.5v133q0 14 9 23t23 9h832q14 0 23 -9t9 -23v-102q0 -14 -9 -23t-23 -9h-233q47 -61 64 -144h171q14 0 23 -9t9 -23z" /> - <glyph glyph-name="jpy" unicode="&#xf157;" horiz-adv-x="1027" -d="M603 0h-172q-13 0 -22.5 9t-9.5 23v330h-288q-13 0 -22.5 9t-9.5 23v103q0 13 9.5 22.5t22.5 9.5h288v85h-288q-13 0 -22.5 9t-9.5 23v104q0 13 9.5 22.5t22.5 9.5h214l-321 578q-8 16 0 32q10 16 28 16h194q19 0 29 -18l215 -425q19 -38 56 -125q10 24 30.5 68t27.5 61 -l191 420q8 19 29 19h191q17 0 27 -16q9 -14 1 -31l-313 -579h215q13 0 22.5 -9.5t9.5 -22.5v-104q0 -14 -9.5 -23t-22.5 -9h-290v-85h290q13 0 22.5 -9.5t9.5 -22.5v-103q0 -14 -9.5 -23t-22.5 -9h-290v-330q0 -13 -9.5 -22.5t-22.5 -9.5z" /> - <glyph glyph-name="rub" unicode="&#xf158;" horiz-adv-x="1280" -d="M1043 971q0 100 -65 162t-171 62h-320v-448h320q106 0 171 62t65 162zM1280 971q0 -193 -126.5 -315t-326.5 -122h-340v-118h505q14 0 23 -9t9 -23v-128q0 -14 -9 -23t-23 -9h-505v-192q0 -14 -9.5 -23t-22.5 -9h-167q-14 0 -23 9t-9 23v192h-224q-14 0 -23 9t-9 23v128 -q0 14 9 23t23 9h224v118h-224q-14 0 -23 9t-9 23v149q0 13 9 22.5t23 9.5h224v629q0 14 9 23t23 9h539q200 0 326.5 -122t126.5 -315z" /> - <glyph glyph-name="krw" unicode="&#xf159;" horiz-adv-x="1792" -d="M514 341l81 299h-159l75 -300q1 -1 1 -3t1 -3q0 1 0.5 3.5t0.5 3.5zM630 768l35 128h-292l32 -128h225zM822 768h139l-35 128h-70zM1271 340l78 300h-162l81 -299q0 -1 0.5 -3.5t1.5 -3.5q0 1 0.5 3t0.5 3zM1382 768l33 128h-297l34 -128h230zM1792 736v-64q0 -14 -9 -23 -t-23 -9h-213l-164 -616q-7 -24 -31 -24h-159q-24 0 -31 24l-166 616h-209l-167 -616q-7 -24 -31 -24h-159q-11 0 -19.5 7t-10.5 17l-160 616h-208q-14 0 -23 9t-9 23v64q0 14 9 23t23 9h175l-33 128h-142q-14 0 -23 9t-9 23v64q0 14 9 23t23 9h109l-89 344q-5 15 5 28 -q10 12 26 12h137q26 0 31 -24l90 -360h359l97 360q7 24 31 24h126q24 0 31 -24l98 -360h365l93 360q5 24 31 24h137q16 0 26 -12q10 -13 5 -28l-91 -344h111q14 0 23 -9t9 -23v-64q0 -14 -9 -23t-23 -9h-145l-34 -128h179q14 0 23 -9t9 -23z" /> - <glyph glyph-name="btc" unicode="&#xf15a;" horiz-adv-x="1280" -d="M1167 896q18 -182 -131 -258q117 -28 175 -103t45 -214q-7 -71 -32.5 -125t-64.5 -89t-97 -58.5t-121.5 -34.5t-145.5 -15v-255h-154v251q-80 0 -122 1v-252h-154v255q-18 0 -54 0.5t-55 0.5h-200l31 183h111q50 0 58 51v402h16q-6 1 -16 1v287q-13 68 -89 68h-111v164 -l212 -1q64 0 97 1v252h154v-247q82 2 122 2v245h154v-252q79 -7 140 -22.5t113 -45t82.5 -78t36.5 -114.5zM952 351q0 36 -15 64t-37 46t-57.5 30.5t-65.5 18.5t-74 9t-69 3t-64.5 -1t-47.5 -1v-338q8 0 37 -0.5t48 -0.5t53 1.5t58.5 4t57 8.5t55.5 14t47.5 21t39.5 30 -t24.5 40t9.5 51zM881 827q0 33 -12.5 58.5t-30.5 42t-48 28t-55 16.5t-61.5 8t-58 2.5t-54 -1t-39.5 -0.5v-307q5 0 34.5 -0.5t46.5 0t50 2t55 5.5t51.5 11t48.5 18.5t37 27t27 38.5t9 51z" /> - <glyph glyph-name="file" unicode="&#xf15b;" -d="M1024 1024v472q22 -14 36 -28l408 -408q14 -14 28 -36h-472zM896 992q0 -40 28 -68t68 -28h544v-1056q0 -40 -28 -68t-68 -28h-1344q-40 0 -68 28t-28 68v1600q0 40 28 68t68 28h800v-544z" /> - <glyph glyph-name="file_text" unicode="&#xf15c;" -d="M1468 1060q14 -14 28 -36h-472v472q22 -14 36 -28zM992 896h544v-1056q0 -40 -28 -68t-68 -28h-1344q-40 0 -68 28t-28 68v1600q0 40 28 68t68 28h800v-544q0 -40 28 -68t68 -28zM1152 160v64q0 14 -9 23t-23 9h-704q-14 0 -23 -9t-9 -23v-64q0 -14 9 -23t23 -9h704 -q14 0 23 9t9 23zM1152 416v64q0 14 -9 23t-23 9h-704q-14 0 -23 -9t-9 -23v-64q0 -14 9 -23t23 -9h704q14 0 23 9t9 23zM1152 672v64q0 14 -9 23t-23 9h-704q-14 0 -23 -9t-9 -23v-64q0 -14 9 -23t23 -9h704q14 0 23 9t9 23z" /> - <glyph glyph-name="sort_by_alphabet" unicode="&#xf15d;" horiz-adv-x="1664" -d="M1191 1128h177l-72 218l-12 47q-2 16 -2 20h-4l-3 -20q0 -1 -3.5 -18t-7.5 -29zM736 96q0 -12 -10 -24l-319 -319q-10 -9 -23 -9q-12 0 -23 9l-320 320q-15 16 -7 35q8 20 30 20h192v1376q0 14 9 23t23 9h192q14 0 23 -9t9 -23v-1376h192q14 0 23 -9t9 -23zM1572 -23 -v-233h-584v90l369 529q12 18 21 27l11 9v3q-2 0 -6.5 -0.5t-7.5 -0.5q-12 -3 -30 -3h-232v-115h-120v229h567v-89l-369 -530q-6 -8 -21 -26l-11 -11v-2l14 2q9 2 30 2h248v119h121zM1661 874v-106h-288v106h75l-47 144h-243l-47 -144h75v-106h-287v106h70l230 662h162 -l230 -662h70z" /> - <glyph glyph-name="_329" unicode="&#xf15e;" horiz-adv-x="1664" -d="M1191 104h177l-72 218l-12 47q-2 16 -2 20h-4l-3 -20q0 -1 -3.5 -18t-7.5 -29zM736 96q0 -12 -10 -24l-319 -319q-10 -9 -23 -9q-12 0 -23 9l-320 320q-15 16 -7 35q8 20 30 20h192v1376q0 14 9 23t23 9h192q14 0 23 -9t9 -23v-1376h192q14 0 23 -9t9 -23zM1661 -150 -v-106h-288v106h75l-47 144h-243l-47 -144h75v-106h-287v106h70l230 662h162l230 -662h70zM1572 1001v-233h-584v90l369 529q12 18 21 27l11 9v3q-2 0 -6.5 -0.5t-7.5 -0.5q-12 -3 -30 -3h-232v-115h-120v229h567v-89l-369 -530q-6 -8 -21 -26l-11 -10v-3l14 3q9 1 30 1h248 -v119h121z" /> - <glyph glyph-name="sort_by_attributes" unicode="&#xf160;" horiz-adv-x="1792" -d="M736 96q0 -12 -10 -24l-319 -319q-10 -9 -23 -9q-12 0 -23 9l-320 320q-15 16 -7 35q8 20 30 20h192v1376q0 14 9 23t23 9h192q14 0 23 -9t9 -23v-1376h192q14 0 23 -9t9 -23zM1792 -32v-192q0 -14 -9 -23t-23 -9h-832q-14 0 -23 9t-9 23v192q0 14 9 23t23 9h832 -q14 0 23 -9t9 -23zM1600 480v-192q0 -14 -9 -23t-23 -9h-640q-14 0 -23 9t-9 23v192q0 14 9 23t23 9h640q14 0 23 -9t9 -23zM1408 992v-192q0 -14 -9 -23t-23 -9h-448q-14 0 -23 9t-9 23v192q0 14 9 23t23 9h448q14 0 23 -9t9 -23zM1216 1504v-192q0 -14 -9 -23t-23 -9h-256 -q-14 0 -23 9t-9 23v192q0 14 9 23t23 9h256q14 0 23 -9t9 -23z" /> - <glyph glyph-name="sort_by_attributes_alt" unicode="&#xf161;" horiz-adv-x="1792" -d="M1216 -32v-192q0 -14 -9 -23t-23 -9h-256q-14 0 -23 9t-9 23v192q0 14 9 23t23 9h256q14 0 23 -9t9 -23zM736 96q0 -12 -10 -24l-319 -319q-10 -9 -23 -9q-12 0 -23 9l-320 320q-15 16 -7 35q8 20 30 20h192v1376q0 14 9 23t23 9h192q14 0 23 -9t9 -23v-1376h192 -q14 0 23 -9t9 -23zM1408 480v-192q0 -14 -9 -23t-23 -9h-448q-14 0 -23 9t-9 23v192q0 14 9 23t23 9h448q14 0 23 -9t9 -23zM1600 992v-192q0 -14 -9 -23t-23 -9h-640q-14 0 -23 9t-9 23v192q0 14 9 23t23 9h640q14 0 23 -9t9 -23zM1792 1504v-192q0 -14 -9 -23t-23 -9h-832 -q-14 0 -23 9t-9 23v192q0 14 9 23t23 9h832q14 0 23 -9t9 -23z" /> - <glyph glyph-name="sort_by_order" unicode="&#xf162;" -d="M1346 223q0 63 -44 116t-103 53q-52 0 -83 -37t-31 -94t36.5 -95t104.5 -38q50 0 85 27t35 68zM736 96q0 -12 -10 -24l-319 -319q-10 -9 -23 -9q-12 0 -23 9l-320 320q-15 16 -7 35q8 20 30 20h192v1376q0 14 9 23t23 9h192q14 0 23 -9t9 -23v-1376h192q14 0 23 -9t9 -23 -zM1486 165q0 -62 -13 -121.5t-41 -114t-68 -95.5t-98.5 -65.5t-127.5 -24.5q-62 0 -108 16q-24 8 -42 15l39 113q15 -7 31 -11q37 -13 75 -13q84 0 134.5 58.5t66.5 145.5h-2q-21 -23 -61.5 -37t-84.5 -14q-106 0 -173 71.5t-67 172.5q0 105 72 178t181 73q123 0 205 -94.5 -t82 -252.5zM1456 882v-114h-469v114h167v432q0 7 0.5 19t0.5 17v16h-2l-7 -12q-8 -13 -26 -31l-62 -58l-82 86l192 185h123v-654h165z" /> - <glyph glyph-name="sort_by_order_alt" unicode="&#xf163;" -d="M1346 1247q0 63 -44 116t-103 53q-52 0 -83 -37t-31 -94t36.5 -95t104.5 -38q50 0 85 27t35 68zM736 96q0 -12 -10 -24l-319 -319q-10 -9 -23 -9q-12 0 -23 9l-320 320q-15 16 -7 35q8 20 30 20h192v1376q0 14 9 23t23 9h192q14 0 23 -9t9 -23v-1376h192q14 0 23 -9 -t9 -23zM1456 -142v-114h-469v114h167v432q0 7 0.5 19t0.5 17v16h-2l-7 -12q-8 -13 -26 -31l-62 -58l-82 86l192 185h123v-654h165zM1486 1189q0 -62 -13 -121.5t-41 -114t-68 -95.5t-98.5 -65.5t-127.5 -24.5q-62 0 -108 16q-24 8 -42 15l39 113q15 -7 31 -11q37 -13 75 -13 -q84 0 134.5 58.5t66.5 145.5h-2q-21 -23 -61.5 -37t-84.5 -14q-106 0 -173 71.5t-67 172.5q0 105 72 178t181 73q123 0 205 -94.5t82 -252.5z" /> - <glyph glyph-name="_334" unicode="&#xf164;" horiz-adv-x="1664" -d="M256 192q0 26 -19 45t-45 19q-27 0 -45.5 -19t-18.5 -45q0 -27 18.5 -45.5t45.5 -18.5q26 0 45 18.5t19 45.5zM416 704v-640q0 -26 -19 -45t-45 -19h-288q-26 0 -45 19t-19 45v640q0 26 19 45t45 19h288q26 0 45 -19t19 -45zM1600 704q0 -86 -55 -149q15 -44 15 -76 -q3 -76 -43 -137q17 -56 0 -117q-15 -57 -54 -94q9 -112 -49 -181q-64 -76 -197 -78h-36h-76h-17q-66 0 -144 15.5t-121.5 29t-120.5 39.5q-123 43 -158 44q-26 1 -45 19.5t-19 44.5v641q0 25 18 43.5t43 20.5q24 2 76 59t101 121q68 87 101 120q18 18 31 48t17.5 48.5 -t13.5 60.5q7 39 12.5 61t19.5 52t34 50q19 19 45 19q46 0 82.5 -10.5t60 -26t40 -40.5t24 -45t12 -50t5 -45t0.5 -39q0 -38 -9.5 -76t-19 -60t-27.5 -56q-3 -6 -10 -18t-11 -22t-8 -24h277q78 0 135 -57t57 -135z" /> - <glyph glyph-name="_335" unicode="&#xf165;" horiz-adv-x="1664" -d="M256 960q0 -26 -19 -45t-45 -19q-27 0 -45.5 19t-18.5 45q0 27 18.5 45.5t45.5 18.5q26 0 45 -18.5t19 -45.5zM416 448v640q0 26 -19 45t-45 19h-288q-26 0 -45 -19t-19 -45v-640q0 -26 19 -45t45 -19h288q26 0 45 19t19 45zM1545 597q55 -61 55 -149q-1 -78 -57.5 -135 -t-134.5 -57h-277q4 -14 8 -24t11 -22t10 -18q18 -37 27 -57t19 -58.5t10 -76.5q0 -24 -0.5 -39t-5 -45t-12 -50t-24 -45t-40 -40.5t-60 -26t-82.5 -10.5q-26 0 -45 19q-20 20 -34 50t-19.5 52t-12.5 61q-9 42 -13.5 60.5t-17.5 48.5t-31 48q-33 33 -101 120q-49 64 -101 121 -t-76 59q-25 2 -43 20.5t-18 43.5v641q0 26 19 44.5t45 19.5q35 1 158 44q77 26 120.5 39.5t121.5 29t144 15.5h17h76h36q133 -2 197 -78q58 -69 49 -181q39 -37 54 -94q17 -61 0 -117q46 -61 43 -137q0 -32 -15 -76z" /> - <glyph glyph-name="youtube_sign" unicode="&#xf166;" -d="M919 233v157q0 50 -29 50q-17 0 -33 -16v-224q16 -16 33 -16q29 0 29 49zM1103 355h66v34q0 51 -33 51t-33 -51v-34zM532 621v-70h-80v-423h-74v423h-78v70h232zM733 495v-367h-67v40q-39 -45 -76 -45q-33 0 -42 28q-6 17 -6 54v290h66v-270q0 -24 1 -26q1 -15 15 -15 -q20 0 42 31v280h67zM985 384v-146q0 -52 -7 -73q-12 -42 -53 -42q-35 0 -68 41v-36h-67v493h67v-161q32 40 68 40q41 0 53 -42q7 -21 7 -74zM1236 255v-9q0 -29 -2 -43q-3 -22 -15 -40q-27 -40 -80 -40q-52 0 -81 38q-21 27 -21 86v129q0 59 20 86q29 38 80 38t78 -38 -q21 -29 21 -86v-76h-133v-65q0 -51 34 -51q24 0 30 26q0 1 0.5 7t0.5 16.5v21.5h68zM785 1079v-156q0 -51 -32 -51t-32 51v156q0 52 32 52t32 -52zM1318 366q0 177 -19 260q-10 44 -43 73.5t-76 34.5q-136 15 -412 15q-275 0 -411 -15q-44 -5 -76.5 -34.5t-42.5 -73.5 -q-20 -87 -20 -260q0 -176 20 -260q10 -43 42.5 -73t75.5 -35q137 -15 412 -15t412 15q43 5 75.5 35t42.5 73q20 84 20 260zM563 1017l90 296h-75l-51 -195l-53 195h-78q7 -23 23 -69l24 -69q35 -103 46 -158v-201h74v201zM852 936v130q0 58 -21 87q-29 38 -78 38 -q-51 0 -78 -38q-21 -29 -21 -87v-130q0 -58 21 -87q27 -38 78 -38q49 0 78 38q21 27 21 87zM1033 816h67v370h-67v-283q-22 -31 -42 -31q-15 0 -16 16q-1 2 -1 26v272h-67v-293q0 -37 6 -55q11 -27 43 -27q36 0 77 45v-40zM1536 1120v-960q0 -119 -84.5 -203.5t-203.5 -84.5 -h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" /> - <glyph glyph-name="youtube" unicode="&#xf167;" -d="M971 292v-211q0 -67 -39 -67q-23 0 -45 22v301q22 22 45 22q39 0 39 -67zM1309 291v-46h-90v46q0 68 45 68t45 -68zM343 509h107v94h-312v-94h105v-569h100v569zM631 -60h89v494h-89v-378q-30 -42 -57 -42q-18 0 -21 21q-1 3 -1 35v364h-89v-391q0 -49 8 -73 -q12 -37 58 -37q48 0 102 61v-54zM1060 88v197q0 73 -9 99q-17 56 -71 56q-50 0 -93 -54v217h-89v-663h89v48q45 -55 93 -55q54 0 71 55q9 27 9 100zM1398 98v13h-91q0 -51 -2 -61q-7 -36 -40 -36q-46 0 -46 69v87h179v103q0 79 -27 116q-39 51 -106 51q-68 0 -107 -51 -q-28 -37 -28 -116v-173q0 -79 29 -116q39 -51 108 -51q72 0 108 53q18 27 21 54q2 9 2 58zM790 1011v210q0 69 -43 69t-43 -69v-210q0 -70 43 -70t43 70zM1509 260q0 -234 -26 -350q-14 -59 -58 -99t-102 -46q-184 -21 -555 -21t-555 21q-58 6 -102.5 46t-57.5 99 -q-26 112 -26 350q0 234 26 350q14 59 58 99t103 47q183 20 554 20t555 -20q58 -7 102.5 -47t57.5 -99q26 -112 26 -350zM511 1536h102l-121 -399v-271h-100v271q-14 74 -61 212q-37 103 -65 187h106l71 -263zM881 1203v-175q0 -81 -28 -118q-38 -51 -106 -51q-67 0 -105 51 -q-28 38 -28 118v175q0 80 28 117q38 51 105 51q68 0 106 -51q28 -37 28 -117zM1216 1365v-499h-91v55q-53 -62 -103 -62q-46 0 -59 37q-8 24 -8 75v394h91v-367q0 -33 1 -35q3 -22 21 -22q27 0 57 43v381h91z" /> - <glyph glyph-name="xing" unicode="&#xf168;" horiz-adv-x="1408" -d="M597 869q-10 -18 -257 -456q-27 -46 -65 -46h-239q-21 0 -31 17t0 36l253 448q1 0 0 1l-161 279q-12 22 -1 37q9 15 32 15h239q40 0 66 -45zM1403 1511q11 -16 0 -37l-528 -934v-1l336 -615q11 -20 1 -37q-10 -15 -32 -15h-239q-42 0 -66 45l-339 622q18 32 531 942 -q25 45 64 45h241q22 0 31 -15z" /> - <glyph glyph-name="xing_sign" unicode="&#xf169;" -d="M685 771q0 1 -126 222q-21 34 -52 34h-184q-18 0 -26 -11q-7 -12 1 -29l125 -216v-1l-196 -346q-9 -14 0 -28q8 -13 24 -13h185q31 0 50 36zM1309 1268q-7 12 -24 12h-187q-30 0 -49 -35l-411 -729q1 -2 262 -481q20 -35 52 -35h184q18 0 25 12q8 13 -1 28l-260 476v1 -l409 723q8 16 0 28zM1536 1120v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" /> - <glyph glyph-name="youtube_play" unicode="&#xf16a;" horiz-adv-x="1792" -d="M711 408l484 250l-484 253v-503zM896 1270q168 0 324.5 -4.5t229.5 -9.5l73 -4q1 0 17 -1.5t23 -3t23.5 -4.5t28.5 -8t28 -13t31 -19.5t29 -26.5q6 -6 15.5 -18.5t29 -58.5t26.5 -101q8 -64 12.5 -136.5t5.5 -113.5v-40v-136q1 -145 -18 -290q-7 -55 -25 -99.5t-32 -61.5 -l-14 -17q-14 -15 -29 -26.5t-31 -19t-28 -12.5t-28.5 -8t-24 -4.5t-23 -3t-16.5 -1.5q-251 -19 -627 -19q-207 2 -359.5 6.5t-200.5 7.5l-49 4l-36 4q-36 5 -54.5 10t-51 21t-56.5 41q-6 6 -15.5 18.5t-29 58.5t-26.5 101q-8 64 -12.5 136.5t-5.5 113.5v40v136 -q-1 145 18 290q7 55 25 99.5t32 61.5l14 17q14 15 29 26.5t31 19.5t28 13t28.5 8t23.5 4.5t23 3t17 1.5q251 18 627 18z" /> - <glyph glyph-name="dropbox" unicode="&#xf16b;" horiz-adv-x="1792" -d="M402 829l494 -305l-342 -285l-490 319zM1388 274v-108l-490 -293v-1l-1 1l-1 -1v1l-489 293v108l147 -96l342 284v2l1 -1l1 1v-2l343 -284zM554 1418l342 -285l-494 -304l-338 270zM1390 829l338 -271l-489 -319l-343 285zM1239 1418l489 -319l-338 -270l-494 304z" /> - <glyph glyph-name="stackexchange" unicode="&#xf16c;" -d="M1289 -96h-1118v480h-160v-640h1438v640h-160v-480zM347 428l33 157l783 -165l-33 -156zM450 802l67 146l725 -339l-67 -145zM651 1158l102 123l614 -513l-102 -123zM1048 1536l477 -641l-128 -96l-477 641zM330 65v159h800v-159h-800z" /> - <glyph glyph-name="instagram" unicode="&#xf16d;" -d="M1024 640q0 106 -75 181t-181 75t-181 -75t-75 -181t75 -181t181 -75t181 75t75 181zM1162 640q0 -164 -115 -279t-279 -115t-279 115t-115 279t115 279t279 115t279 -115t115 -279zM1270 1050q0 -38 -27 -65t-65 -27t-65 27t-27 65t27 65t65 27t65 -27t27 -65zM768 1270 -q-7 0 -76.5 0.5t-105.5 0t-96.5 -3t-103 -10t-71.5 -18.5q-50 -20 -88 -58t-58 -88q-11 -29 -18.5 -71.5t-10 -103t-3 -96.5t0 -105.5t0.5 -76.5t-0.5 -76.5t0 -105.5t3 -96.5t10 -103t18.5 -71.5q20 -50 58 -88t88 -58q29 -11 71.5 -18.5t103 -10t96.5 -3t105.5 0t76.5 0.5 -t76.5 -0.5t105.5 0t96.5 3t103 10t71.5 18.5q50 20 88 58t58 88q11 29 18.5 71.5t10 103t3 96.5t0 105.5t-0.5 76.5t0.5 76.5t0 105.5t-3 96.5t-10 103t-18.5 71.5q-20 50 -58 88t-88 58q-29 11 -71.5 18.5t-103 10t-96.5 3t-105.5 0t-76.5 -0.5zM1536 640q0 -229 -5 -317 -q-10 -208 -124 -322t-322 -124q-88 -5 -317 -5t-317 5q-208 10 -322 124t-124 322q-5 88 -5 317t5 317q10 208 124 322t322 124q88 5 317 5t317 -5q208 -10 322 -124t124 -322q5 -88 5 -317z" /> - <glyph glyph-name="flickr" unicode="&#xf16e;" -d="M1248 1408q119 0 203.5 -84.5t84.5 -203.5v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960zM698 640q0 88 -62 150t-150 62t-150 -62t-62 -150t62 -150t150 -62t150 62t62 150zM1262 640q0 88 -62 150 -t-150 62t-150 -62t-62 -150t62 -150t150 -62t150 62t62 150z" /> - <glyph glyph-name="adn" unicode="&#xf170;" -d="M768 914l201 -306h-402zM1133 384h94l-459 691l-459 -691h94l104 160h522zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" /> - <glyph glyph-name="f171" unicode="&#xf171;" horiz-adv-x="1408" -d="M815 677q8 -63 -50.5 -101t-111.5 -6q-39 17 -53.5 58t-0.5 82t52 58q36 18 72.5 12t64 -35.5t27.5 -67.5zM926 698q-14 107 -113 164t-197 13q-63 -28 -100.5 -88.5t-34.5 -129.5q4 -91 77.5 -155t165.5 -56q91 8 152 84t50 168zM1165 1240q-20 27 -56 44.5t-58 22 -t-71 12.5q-291 47 -566 -2q-43 -7 -66 -12t-55 -22t-50 -43q30 -28 76 -45.5t73.5 -22t87.5 -11.5q228 -29 448 -1q63 8 89.5 12t72.5 21.5t75 46.5zM1222 205q-8 -26 -15.5 -76.5t-14 -84t-28.5 -70t-58 -56.5q-86 -48 -189.5 -71.5t-202 -22t-201.5 18.5q-46 8 -81.5 18 -t-76.5 27t-73 43.5t-52 61.5q-25 96 -57 292l6 16l18 9q223 -148 506.5 -148t507.5 148q21 -6 24 -23t-5 -45t-8 -37zM1403 1166q-26 -167 -111 -655q-5 -30 -27 -56t-43.5 -40t-54.5 -31q-252 -126 -610 -88q-248 27 -394 139q-15 12 -25.5 26.5t-17 35t-9 34t-6 39.5 -t-5.5 35q-9 50 -26.5 150t-28 161.5t-23.5 147.5t-22 158q3 26 17.5 48.5t31.5 37.5t45 30t46 22.5t48 18.5q125 46 313 64q379 37 676 -50q155 -46 215 -122q16 -20 16.5 -51t-5.5 -54z" /> - <glyph glyph-name="bitbucket_sign" unicode="&#xf172;" -d="M848 666q0 43 -41 66t-77 1q-43 -20 -42.5 -72.5t43.5 -70.5q39 -23 81 4t36 72zM928 682q8 -66 -36 -121t-110 -61t-119 40t-56 113q-2 49 25.5 93t72.5 64q70 31 141.5 -10t81.5 -118zM1100 1073q-20 -21 -53.5 -34t-53 -16t-63.5 -8q-155 -20 -324 0q-44 6 -63 9.5 -t-52.5 16t-54.5 32.5q13 19 36 31t40 15.5t47 8.5q198 35 408 1q33 -5 51 -8.5t43 -16t39 -31.5zM1142 327q0 7 5.5 26.5t3 32t-17.5 16.5q-161 -106 -365 -106t-366 106l-12 -6l-5 -12q26 -154 41 -210q47 -81 204 -108q249 -46 428 53q34 19 49 51.5t22.5 85.5t12.5 71z -M1272 1020q9 53 -8 75q-43 55 -155 88q-216 63 -487 36q-132 -12 -226 -46q-38 -15 -59.5 -25t-47 -34t-29.5 -54q8 -68 19 -138t29 -171t24 -137q1 -5 5 -31t7 -36t12 -27t22 -28q105 -80 284 -100q259 -28 440 63q24 13 39.5 23t31 29t19.5 40q48 267 80 473zM1536 1120 -v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" /> - <glyph glyph-name="tumblr" unicode="&#xf173;" horiz-adv-x="1024" -d="M944 207l80 -237q-23 -35 -111 -66t-177 -32q-104 -2 -190.5 26t-142.5 74t-95 106t-55.5 120t-16.5 118v544h-168v215q72 26 129 69.5t91 90t58 102t34 99t15 88.5q1 5 4.5 8.5t7.5 3.5h244v-424h333v-252h-334v-518q0 -30 6.5 -56t22.5 -52.5t49.5 -41.5t81.5 -14 -q78 2 134 29z" /> - <glyph glyph-name="tumblr_sign" unicode="&#xf174;" -d="M1136 75l-62 183q-44 -22 -103 -22q-36 -1 -62 10.5t-38.5 31.5t-17.5 40.5t-5 43.5v398h257v194h-256v326h-188q-8 0 -9 -10q-5 -44 -17.5 -87t-39 -95t-77 -95t-118.5 -68v-165h130v-418q0 -57 21.5 -115t65 -111t121 -85.5t176.5 -30.5q69 1 136.5 25t85.5 50z -M1536 1120v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" /> - <glyph glyph-name="long_arrow_down" unicode="&#xf175;" horiz-adv-x="768" -d="M765 237q8 -19 -5 -35l-350 -384q-10 -10 -23 -10q-14 0 -24 10l-355 384q-13 16 -5 35q9 19 29 19h224v1248q0 14 9 23t23 9h192q14 0 23 -9t9 -23v-1248h224q21 0 29 -19z" /> - <glyph glyph-name="long_arrow_up" unicode="&#xf176;" horiz-adv-x="768" -d="M765 1043q-9 -19 -29 -19h-224v-1248q0 -14 -9 -23t-23 -9h-192q-14 0 -23 9t-9 23v1248h-224q-21 0 -29 19t5 35l350 384q10 10 23 10q14 0 24 -10l355 -384q13 -16 5 -35z" /> - <glyph glyph-name="long_arrow_left" unicode="&#xf177;" horiz-adv-x="1792" -d="M1792 736v-192q0 -14 -9 -23t-23 -9h-1248v-224q0 -21 -19 -29t-35 5l-384 350q-10 10 -10 23q0 14 10 24l384 354q16 14 35 6q19 -9 19 -29v-224h1248q14 0 23 -9t9 -23z" /> - <glyph glyph-name="long_arrow_right" unicode="&#xf178;" horiz-adv-x="1792" -d="M1728 643q0 -14 -10 -24l-384 -354q-16 -14 -35 -6q-19 9 -19 29v224h-1248q-14 0 -23 9t-9 23v192q0 14 9 23t23 9h1248v224q0 21 19 29t35 -5l384 -350q10 -10 10 -23z" /> - <glyph glyph-name="apple" unicode="&#xf179;" horiz-adv-x="1408" -d="M1393 321q-39 -125 -123 -250q-129 -196 -257 -196q-49 0 -140 32q-86 32 -151 32q-61 0 -142 -33q-81 -34 -132 -34q-152 0 -301 259q-147 261 -147 503q0 228 113 374q113 144 284 144q72 0 177 -30q104 -30 138 -30q45 0 143 34q102 34 173 34q119 0 213 -65 -q52 -36 104 -100q-79 -67 -114 -118q-65 -94 -65 -207q0 -124 69 -223t158 -126zM1017 1494q0 -61 -29 -136q-30 -75 -93 -138q-54 -54 -108 -72q-37 -11 -104 -17q3 149 78 257q74 107 250 148q1 -3 2.5 -11t2.5 -11q0 -4 0.5 -10t0.5 -10z" /> - <glyph glyph-name="windows" unicode="&#xf17a;" horiz-adv-x="1664" -d="M682 530v-651l-682 94v557h682zM682 1273v-659h-682v565zM1664 530v-786l-907 125v661h907zM1664 1408v-794h-907v669z" /> - <glyph glyph-name="android" unicode="&#xf17b;" horiz-adv-x="1408" -d="M493 1053q16 0 27.5 11.5t11.5 27.5t-11.5 27.5t-27.5 11.5t-27 -11.5t-11 -27.5t11 -27.5t27 -11.5zM915 1053q16 0 27 11.5t11 27.5t-11 27.5t-27 11.5t-27.5 -11.5t-11.5 -27.5t11.5 -27.5t27.5 -11.5zM103 869q42 0 72 -30t30 -72v-430q0 -43 -29.5 -73t-72.5 -30 -t-73 30t-30 73v430q0 42 30 72t73 30zM1163 850v-666q0 -46 -32 -78t-77 -32h-75v-227q0 -43 -30 -73t-73 -30t-73 30t-30 73v227h-138v-227q0 -43 -30 -73t-73 -30q-42 0 -72 30t-30 73l-1 227h-74q-46 0 -78 32t-32 78v666h918zM931 1255q107 -55 171 -153.5t64 -215.5 -h-925q0 117 64 215.5t172 153.5l-71 131q-7 13 5 20q13 6 20 -6l72 -132q95 42 201 42t201 -42l72 132q7 12 20 6q12 -7 5 -20zM1408 767v-430q0 -43 -30 -73t-73 -30q-42 0 -72 30t-30 73v430q0 43 30 72.5t72 29.5q43 0 73 -29.5t30 -72.5z" /> - <glyph glyph-name="linux" unicode="&#xf17c;" -d="M663 1125q-11 -1 -15.5 -10.5t-8.5 -9.5q-5 -1 -5 5q0 12 19 15h10zM750 1111q-4 -1 -11.5 6.5t-17.5 4.5q24 11 32 -2q3 -6 -3 -9zM399 684q-4 1 -6 -3t-4.5 -12.5t-5.5 -13.5t-10 -13q-10 -11 -1 -12q4 -1 12.5 7t12.5 18q1 3 2 7t2 6t1.5 4.5t0.5 4v3t-1 2.5t-3 2z -M1254 325q0 18 -55 42q4 15 7.5 27.5t5 26t3 21.5t0.5 22.5t-1 19.5t-3.5 22t-4 20.5t-5 25t-5.5 26.5q-10 48 -47 103t-72 75q24 -20 57 -83q87 -162 54 -278q-11 -40 -50 -42q-31 -4 -38.5 18.5t-8 83.5t-11.5 107q-9 39 -19.5 69t-19.5 45.5t-15.5 24.5t-13 15t-7.5 7 -q-14 62 -31 103t-29.5 56t-23.5 33t-15 40q-4 21 6 53.5t4.5 49.5t-44.5 25q-15 3 -44.5 18t-35.5 16q-8 1 -11 26t8 51t36 27q37 3 51 -30t4 -58q-11 -19 -2 -26.5t30 -0.5q13 4 13 36v37q-5 30 -13.5 50t-21 30.5t-23.5 15t-27 7.5q-107 -8 -89 -134q0 -15 -1 -15 -q-9 9 -29.5 10.5t-33 -0.5t-15.5 5q1 57 -16 90t-45 34q-27 1 -41.5 -27.5t-16.5 -59.5q-1 -15 3.5 -37t13 -37.5t15.5 -13.5q10 3 16 14q4 9 -7 8q-7 0 -15.5 14.5t-9.5 33.5q-1 22 9 37t34 14q17 0 27 -21t9.5 -39t-1.5 -22q-22 -15 -31 -29q-8 -12 -27.5 -23.5 -t-20.5 -12.5q-13 -14 -15.5 -27t7.5 -18q14 -8 25 -19.5t16 -19t18.5 -13t35.5 -6.5q47 -2 102 15q2 1 23 7t34.5 10.5t29.5 13t21 17.5q9 14 20 8q5 -3 6.5 -8.5t-3 -12t-16.5 -9.5q-20 -6 -56.5 -21.5t-45.5 -19.5q-44 -19 -70 -23q-25 -5 -79 2q-10 2 -9 -2t17 -19 -q25 -23 67 -22q17 1 36 7t36 14t33.5 17.5t30 17t24.5 12t17.5 2.5t8.5 -11q0 -2 -1 -4.5t-4 -5t-6 -4.5t-8.5 -5t-9 -4.5t-10 -5t-9.5 -4.5q-28 -14 -67.5 -44t-66.5 -43t-49 -1q-21 11 -63 73q-22 31 -25 22q-1 -3 -1 -10q0 -25 -15 -56.5t-29.5 -55.5t-21 -58t11.5 -63 -q-23 -6 -62.5 -90t-47.5 -141q-2 -18 -1.5 -69t-5.5 -59q-8 -24 -29 -3q-32 31 -36 94q-2 28 4 56q4 19 -1 18q-2 -1 -4 -5q-36 -65 10 -166q5 -12 25 -28t24 -20q20 -23 104 -90.5t93 -76.5q16 -15 17.5 -38t-14 -43t-45.5 -23q8 -15 29 -44.5t28 -54t7 -70.5q46 24 7 92 -q-4 8 -10.5 16t-9.5 12t-2 6q3 5 13 9.5t20 -2.5q46 -52 166 -36q133 15 177 87q23 38 34 30q12 -6 10 -52q-1 -25 -23 -92q-9 -23 -6 -37.5t24 -15.5q3 19 14.5 77t13.5 90q2 21 -6.5 73.5t-7.5 97t23 70.5q15 18 51 18q1 37 34.5 53t72.5 10.5t60 -22.5zM626 1152 -q3 17 -2.5 30t-11.5 15q-9 2 -9 -7q2 -5 5 -6q10 0 7 -15q-3 -20 8 -20q3 0 3 3zM1045 955q-2 8 -6.5 11.5t-13 5t-14.5 5.5q-5 3 -9.5 8t-7 8t-5.5 6.5t-4 4t-4 -1.5q-14 -16 7 -43.5t39 -31.5q9 -1 14.5 8t3.5 20zM867 1168q0 11 -5 19.5t-11 12.5t-9 3q-6 0 -8 -2t0 -4 -t5 -3q14 -4 18 -31q0 -3 8 2q2 2 2 3zM921 1401q0 2 -2.5 5t-9 7t-9.5 6q-15 15 -24 15q-9 -1 -11.5 -7.5t-1 -13t-0.5 -12.5q-1 -4 -6 -10.5t-6 -9t3 -8.5q4 -3 8 0t11 9t15 9q1 1 9 1t15 2t9 7zM1486 60q20 -12 31 -24.5t12 -24t-2.5 -22.5t-15.5 -22t-23.5 -19.5 -t-30 -18.5t-31.5 -16.5t-32 -15.5t-27 -13q-38 -19 -85.5 -56t-75.5 -64q-17 -16 -68 -19.5t-89 14.5q-18 9 -29.5 23.5t-16.5 25.5t-22 19.5t-47 9.5q-44 1 -130 1q-19 0 -57 -1.5t-58 -2.5q-44 -1 -79.5 -15t-53.5 -30t-43.5 -28.5t-53.5 -11.5q-29 1 -111 31t-146 43 -q-19 4 -51 9.5t-50 9t-39.5 9.5t-33.5 14.5t-17 19.5q-10 23 7 66.5t18 54.5q1 16 -4 40t-10 42.5t-4.5 36.5t10.5 27q14 12 57 14t60 12q30 18 42 35t12 51q21 -73 -32 -106q-32 -20 -83 -15q-34 3 -43 -10q-13 -15 5 -57q2 -6 8 -18t8.5 -18t4.5 -17t1 -22q0 -15 -17 -49 -t-14 -48q3 -17 37 -26q20 -6 84.5 -18.5t99.5 -20.5q24 -6 74 -22t82.5 -23t55.5 -4q43 6 64.5 28t23 48t-7.5 58.5t-19 52t-20 36.5q-121 190 -169 242q-68 74 -113 40q-11 -9 -15 15q-3 16 -2 38q1 29 10 52t24 47t22 42q8 21 26.5 72t29.5 78t30 61t39 54 -q110 143 124 195q-12 112 -16 310q-2 90 24 151.5t106 104.5q39 21 104 21q53 1 106 -13.5t89 -41.5q57 -42 91.5 -121.5t29.5 -147.5q-5 -95 30 -214q34 -113 133 -218q55 -59 99.5 -163t59.5 -191q8 -49 5 -84.5t-12 -55.5t-20 -22q-10 -2 -23.5 -19t-27 -35.5 -t-40.5 -33.5t-61 -14q-18 1 -31.5 5t-22.5 13.5t-13.5 15.5t-11.5 20.5t-9 19.5q-22 37 -41 30t-28 -49t7 -97q20 -70 1 -195q-10 -65 18 -100.5t73 -33t85 35.5q59 49 89.5 66.5t103.5 42.5q53 18 77 36.5t18.5 34.5t-25 28.5t-51.5 23.5q-33 11 -49.5 48t-15 72.5 -t15.5 47.5q1 -31 8 -56.5t14.5 -40.5t20.5 -28.5t21 -19t21.5 -13t16.5 -9.5z" /> - <glyph glyph-name="dribble" unicode="&#xf17d;" -d="M1024 36q-42 241 -140 498h-2l-2 -1q-16 -6 -43 -16.5t-101 -49t-137 -82t-131 -114.5t-103 -148l-15 11q184 -150 418 -150q132 0 256 52zM839 643q-21 49 -53 111q-311 -93 -673 -93q-1 -7 -1 -21q0 -124 44 -236.5t124 -201.5q50 89 123.5 166.5t142.5 124.5t130.5 81 -t99.5 48l37 13q4 1 13 3.5t13 4.5zM732 855q-120 213 -244 378q-138 -65 -234 -186t-128 -272q302 0 606 80zM1416 536q-210 60 -409 29q87 -239 128 -469q111 75 185 189.5t96 250.5zM611 1277q-1 0 -2 -1q1 1 2 1zM1201 1132q-185 164 -433 164q-76 0 -155 -19 -q131 -170 246 -382q69 26 130 60.5t96.5 61.5t65.5 57t37.5 40.5zM1424 647q-3 232 -149 410l-1 -1q-9 -12 -19 -24.5t-43.5 -44.5t-71 -60.5t-100 -65t-131.5 -64.5q25 -53 44 -95q2 -5 6.5 -17t7.5 -17q36 5 74.5 7t73.5 2t69 -1.5t64 -4t56.5 -5.5t48 -6.5t36.5 -6 -t25 -4.5zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" /> - <glyph glyph-name="skype" unicode="&#xf17e;" -d="M1173 473q0 50 -19.5 91.5t-48.5 68.5t-73 49t-82.5 34t-87.5 23l-104 24q-30 7 -44 10.5t-35 11.5t-30 16t-16.5 21t-7.5 30q0 77 144 77q43 0 77 -12t54 -28.5t38 -33.5t40 -29t48 -12q47 0 75.5 32t28.5 77q0 55 -56 99.5t-142 67.5t-182 23q-68 0 -132 -15.5 -t-119.5 -47t-89 -87t-33.5 -128.5q0 -61 19 -106.5t56 -75.5t80 -48.5t103 -32.5l146 -36q90 -22 112 -36q32 -20 32 -60q0 -39 -40 -64.5t-105 -25.5q-51 0 -91.5 16t-65 38.5t-45.5 45t-46 38.5t-54 16q-50 0 -75.5 -30t-25.5 -75q0 -92 122 -157.5t291 -65.5 -q73 0 140 18.5t122.5 53.5t88.5 93.5t33 131.5zM1536 256q0 -159 -112.5 -271.5t-271.5 -112.5q-130 0 -234 80q-77 -16 -150 -16q-143 0 -273.5 55.5t-225 150t-150 225t-55.5 273.5q0 73 16 150q-80 104 -80 234q0 159 112.5 271.5t271.5 112.5q130 0 234 -80 -q77 16 150 16q143 0 273.5 -55.5t225 -150t150 -225t55.5 -273.5q0 -73 -16 -150q80 -104 80 -234z" /> - <glyph glyph-name="foursquare" unicode="&#xf180;" horiz-adv-x="1280" -d="M1000 1102l37 194q5 23 -9 40t-35 17h-712q-23 0 -38.5 -17t-15.5 -37v-1101q0 -7 6 -1l291 352q23 26 38 33.5t48 7.5h239q22 0 37 14.5t18 29.5q24 130 37 191q4 21 -11.5 40t-36.5 19h-294q-29 0 -48 19t-19 48v42q0 29 19 47.5t48 18.5h346q18 0 35 13.5t20 29.5z -M1227 1324q-15 -73 -53.5 -266.5t-69.5 -350t-35 -173.5q-6 -22 -9 -32.5t-14 -32.5t-24.5 -33t-38.5 -21t-58 -10h-271q-13 0 -22 -10q-8 -9 -426 -494q-22 -25 -58.5 -28.5t-48.5 5.5q-55 22 -55 98v1410q0 55 38 102.5t120 47.5h888q95 0 127 -53t10 -159zM1227 1324 -l-158 -790q4 17 35 173.5t69.5 350t53.5 266.5z" /> - <glyph glyph-name="trello" unicode="&#xf181;" -d="M704 192v1024q0 14 -9 23t-23 9h-480q-14 0 -23 -9t-9 -23v-1024q0 -14 9 -23t23 -9h480q14 0 23 9t9 23zM1376 576v640q0 14 -9 23t-23 9h-480q-14 0 -23 -9t-9 -23v-640q0 -14 9 -23t23 -9h480q14 0 23 9t9 23zM1536 1344v-1408q0 -26 -19 -45t-45 -19h-1408 -q-26 0 -45 19t-19 45v1408q0 26 19 45t45 19h1408q26 0 45 -19t19 -45z" /> - <glyph glyph-name="female" unicode="&#xf182;" horiz-adv-x="1280" -d="M1280 480q0 -40 -28 -68t-68 -28q-51 0 -80 43l-227 341h-45v-132l247 -411q9 -15 9 -33q0 -26 -19 -45t-45 -19h-192v-272q0 -46 -33 -79t-79 -33h-160q-46 0 -79 33t-33 79v272h-192q-26 0 -45 19t-19 45q0 18 9 33l247 411v132h-45l-227 -341q-29 -43 -80 -43 -q-40 0 -68 28t-28 68q0 29 16 53l256 384q73 107 176 107h384q103 0 176 -107l256 -384q16 -24 16 -53zM864 1280q0 -93 -65.5 -158.5t-158.5 -65.5t-158.5 65.5t-65.5 158.5t65.5 158.5t158.5 65.5t158.5 -65.5t65.5 -158.5z" /> - <glyph glyph-name="male" unicode="&#xf183;" horiz-adv-x="1024" -d="M1024 832v-416q0 -40 -28 -68t-68 -28t-68 28t-28 68v352h-64v-912q0 -46 -33 -79t-79 -33t-79 33t-33 79v464h-64v-464q0 -46 -33 -79t-79 -33t-79 33t-33 79v912h-64v-352q0 -40 -28 -68t-68 -28t-68 28t-28 68v416q0 80 56 136t136 56h640q80 0 136 -56t56 -136z -M736 1280q0 -93 -65.5 -158.5t-158.5 -65.5t-158.5 65.5t-65.5 158.5t65.5 158.5t158.5 65.5t158.5 -65.5t65.5 -158.5z" /> - <glyph glyph-name="gittip" unicode="&#xf184;" -d="M773 234l350 473q16 22 24.5 59t-6 85t-61.5 79q-40 26 -83 25.5t-73.5 -17.5t-54.5 -45q-36 -40 -96 -40q-59 0 -95 40q-24 28 -54.5 45t-73.5 17.5t-84 -25.5q-46 -31 -60.5 -79t-6 -85t24.5 -59zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103 -t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" /> - <glyph glyph-name="sun" unicode="&#xf185;" horiz-adv-x="1792" -d="M1472 640q0 117 -45.5 223.5t-123 184t-184 123t-223.5 45.5t-223.5 -45.5t-184 -123t-123 -184t-45.5 -223.5t45.5 -223.5t123 -184t184 -123t223.5 -45.5t223.5 45.5t184 123t123 184t45.5 223.5zM1748 363q-4 -15 -20 -20l-292 -96v-306q0 -16 -13 -26q-15 -10 -29 -4 -l-292 94l-180 -248q-10 -13 -26 -13t-26 13l-180 248l-292 -94q-14 -6 -29 4q-13 10 -13 26v306l-292 96q-16 5 -20 20q-5 17 4 29l180 248l-180 248q-9 13 -4 29q4 15 20 20l292 96v306q0 16 13 26q15 10 29 4l292 -94l180 248q9 12 26 12t26 -12l180 -248l292 94 -q14 6 29 -4q13 -10 13 -26v-306l292 -96q16 -5 20 -20q5 -16 -4 -29l-180 -248l180 -248q9 -12 4 -29z" /> - <glyph glyph-name="_366" unicode="&#xf186;" -d="M1262 233q-54 -9 -110 -9q-182 0 -337 90t-245 245t-90 337q0 192 104 357q-201 -60 -328.5 -229t-127.5 -384q0 -130 51 -248.5t136.5 -204t204 -136.5t248.5 -51q144 0 273.5 61.5t220.5 171.5zM1465 318q-94 -203 -283.5 -324.5t-413.5 -121.5q-156 0 -298 61 -t-245 164t-164 245t-61 298q0 153 57.5 292.5t156 241.5t235.5 164.5t290 68.5q44 2 61 -39q18 -41 -15 -72q-86 -78 -131.5 -181.5t-45.5 -218.5q0 -148 73 -273t198 -198t273 -73q118 0 228 51q41 18 72 -13q14 -14 17.5 -34t-4.5 -38z" /> - <glyph glyph-name="archive" unicode="&#xf187;" horiz-adv-x="1792" -d="M1088 704q0 26 -19 45t-45 19h-256q-26 0 -45 -19t-19 -45t19 -45t45 -19h256q26 0 45 19t19 45zM1664 896v-960q0 -26 -19 -45t-45 -19h-1408q-26 0 -45 19t-19 45v960q0 26 19 45t45 19h1408q26 0 45 -19t19 -45zM1728 1344v-256q0 -26 -19 -45t-45 -19h-1536 -q-26 0 -45 19t-19 45v256q0 26 19 45t45 19h1536q26 0 45 -19t19 -45z" /> - <glyph glyph-name="bug" unicode="&#xf188;" horiz-adv-x="1664" -d="M1632 576q0 -26 -19 -45t-45 -19h-224q0 -171 -67 -290l208 -209q19 -19 19 -45t-19 -45q-18 -19 -45 -19t-45 19l-198 197q-5 -5 -15 -13t-42 -28.5t-65 -36.5t-82 -29t-97 -13v896h-128v-896q-51 0 -101.5 13.5t-87 33t-66 39t-43.5 32.5l-15 14l-183 -207 -q-20 -21 -48 -21q-24 0 -43 16q-19 18 -20.5 44.5t15.5 46.5l202 227q-58 114 -58 274h-224q-26 0 -45 19t-19 45t19 45t45 19h224v294l-173 173q-19 19 -19 45t19 45t45 19t45 -19l173 -173h844l173 173q19 19 45 19t45 -19t19 -45t-19 -45l-173 -173v-294h224q26 0 45 -19 -t19 -45zM1152 1152h-640q0 133 93.5 226.5t226.5 93.5t226.5 -93.5t93.5 -226.5z" /> - <glyph glyph-name="vk" unicode="&#xf189;" horiz-adv-x="1920" -d="M1917 1016q23 -64 -150 -294q-24 -32 -65 -85q-40 -51 -55 -72t-30.5 -49.5t-12 -42t13 -34.5t32.5 -43t57 -53q4 -2 5 -4q141 -131 191 -221q3 -5 6.5 -12.5t7 -26.5t-0.5 -34t-25 -27.5t-59 -12.5l-256 -4q-24 -5 -56 5t-52 22l-20 12q-30 21 -70 64t-68.5 77.5t-61 58 -t-56.5 15.5q-3 -1 -8 -3.5t-17 -14.5t-21.5 -29.5t-17 -52t-6.5 -77.5q0 -15 -3.5 -27.5t-7.5 -18.5l-4 -5q-18 -19 -53 -22h-115q-71 -4 -146 16.5t-131.5 53t-103 66t-70.5 57.5l-25 24q-10 10 -27.5 30t-71.5 91t-106 151t-122.5 211t-130.5 272q-6 16 -6 27t3 16l4 6 -q15 19 57 19l274 2q12 -2 23 -6.5t16 -8.5l5 -3q16 -11 24 -32q20 -50 46 -103.5t41 -81.5l16 -29q29 -60 56 -104t48.5 -68.5t41.5 -38.5t34 -14t27 5q2 1 5 5t12 22t13.5 47t9.5 81t0 125q-2 40 -9 73t-14 46l-6 12q-25 34 -85 43q-13 2 5 24q16 19 38 30q53 26 239 24 -q82 -1 135 -13q20 -5 33.5 -13.5t20.5 -24t10.5 -32t3.5 -45.5t-1 -55t-2.5 -70.5t-1.5 -82.5q0 -11 -1 -42t-0.5 -48t3.5 -40.5t11.5 -39t22.5 -24.5q8 -2 17 -4t26 11t38 34.5t52 67t68 107.5q60 104 107 225q4 10 10 17.5t11 10.5l4 3l5 2.5t13 3t20 0.5l288 2 -q39 5 64 -2.5t31 -16.5z" /> - <glyph glyph-name="weibo" unicode="&#xf18a;" horiz-adv-x="1792" -d="M675 252q21 34 11 69t-45 50q-34 14 -73 1t-60 -46q-22 -34 -13 -68.5t43 -50.5t74.5 -2.5t62.5 47.5zM769 373q8 13 3.5 26.5t-17.5 18.5q-14 5 -28.5 -0.5t-21.5 -18.5q-17 -31 13 -45q14 -5 29 0.5t22 18.5zM943 266q-45 -102 -158 -150t-224 -12 -q-107 34 -147.5 126.5t6.5 187.5q47 93 151.5 139t210.5 19q111 -29 158.5 -119.5t2.5 -190.5zM1255 426q-9 96 -89 170t-208.5 109t-274.5 21q-223 -23 -369.5 -141.5t-132.5 -264.5q9 -96 89 -170t208.5 -109t274.5 -21q223 23 369.5 141.5t132.5 264.5zM1563 422 -q0 -68 -37 -139.5t-109 -137t-168.5 -117.5t-226 -83t-270.5 -31t-275 33.5t-240.5 93t-171.5 151t-65 199.5q0 115 69.5 245t197.5 258q169 169 341.5 236t246.5 -7q65 -64 20 -209q-4 -14 -1 -20t10 -7t14.5 0.5t13.5 3.5l6 2q139 59 246 59t153 -61q45 -63 0 -178 -q-2 -13 -4.5 -20t4.5 -12.5t12 -7.5t17 -6q57 -18 103 -47t80 -81.5t34 -116.5zM1489 1046q42 -47 54.5 -108.5t-6.5 -117.5q-8 -23 -29.5 -34t-44.5 -4q-23 8 -34 29.5t-4 44.5q20 63 -24 111t-107 35q-24 -5 -45 8t-25 37q-5 24 8 44.5t37 25.5q60 13 119 -5.5t101 -65.5z -M1670 1209q87 -96 112.5 -222.5t-13.5 -241.5q-9 -27 -34 -40t-52 -4t-40 34t-5 52q28 82 10 172t-80 158q-62 69 -148 95.5t-173 8.5q-28 -6 -52 9.5t-30 43.5t9.5 51.5t43.5 29.5q123 26 244 -11.5t208 -134.5z" /> - <glyph glyph-name="renren" unicode="&#xf18b;" -d="M1133 -34q-171 -94 -368 -94q-196 0 -367 94q138 87 235.5 211t131.5 268q35 -144 132.5 -268t235.5 -211zM638 1394v-485q0 -252 -126.5 -459.5t-330.5 -306.5q-181 215 -181 495q0 187 83.5 349.5t229.5 269.5t325 137zM1536 638q0 -280 -181 -495 -q-204 99 -330.5 306.5t-126.5 459.5v485q179 -30 325 -137t229.5 -269.5t83.5 -349.5z" /> - <glyph glyph-name="_372" unicode="&#xf18c;" horiz-adv-x="1408" -d="M1402 433q-32 -80 -76 -138t-91 -88.5t-99 -46.5t-101.5 -14.5t-96.5 8.5t-86.5 22t-69.5 27.5t-46 22.5l-17 10q-113 -228 -289.5 -359.5t-384.5 -132.5q-19 0 -32 13t-13 32t13 31.5t32 12.5q173 1 322.5 107.5t251.5 294.5q-36 -14 -72 -23t-83 -13t-91 2.5t-93 28.5 -t-92 59t-84.5 100t-74.5 146q114 47 214 57t167.5 -7.5t124.5 -56.5t88.5 -77t56.5 -82q53 131 79 291q-7 -1 -18 -2.5t-46.5 -2.5t-69.5 0.5t-81.5 10t-88.5 23t-84 42.5t-75 65t-54.5 94.5t-28.5 127.5q70 28 133.5 36.5t112.5 -1t92 -30t73.5 -50t56 -61t42 -63t27.5 -56 -t16 -39.5l4 -16q12 122 12 195q-8 6 -21.5 16t-49 44.5t-63.5 71.5t-54 93t-33 112.5t12 127t70 138.5q73 -25 127.5 -61.5t84.5 -76.5t48 -85t20.5 -89t-0.5 -85.5t-13 -76.5t-19 -62t-17 -42l-7 -15q1 -4 1 -50t-1 -72q3 7 10 18.5t30.5 43t50.5 58t71 55.5t91.5 44.5 -t112 14.5t132.5 -24q-2 -78 -21.5 -141.5t-50 -104.5t-69.5 -71.5t-81.5 -45.5t-84.5 -24t-80 -9.5t-67.5 1t-46.5 4.5l-17 3q-23 -147 -73 -283q6 7 18 18.5t49.5 41t77.5 52.5t99.5 42t117.5 20t129 -23.5t137 -77.5z" /> - <glyph glyph-name="stack_exchange" unicode="&#xf18d;" horiz-adv-x="1280" -d="M1259 283v-66q0 -85 -57.5 -144.5t-138.5 -59.5h-57l-260 -269v269h-529q-81 0 -138.5 59.5t-57.5 144.5v66h1238zM1259 609v-255h-1238v255h1238zM1259 937v-255h-1238v255h1238zM1259 1077v-67h-1238v67q0 84 57.5 143.5t138.5 59.5h846q81 0 138.5 -59.5t57.5 -143.5z -" /> - <glyph glyph-name="_374" unicode="&#xf18e;" -d="M1152 640q0 -14 -9 -23l-320 -320q-9 -9 -23 -9q-13 0 -22.5 9.5t-9.5 22.5v192h-352q-13 0 -22.5 9.5t-9.5 22.5v192q0 13 9.5 22.5t22.5 9.5h352v192q0 14 9 23t23 9q12 0 24 -10l319 -319q9 -9 9 -23zM1312 640q0 148 -73 273t-198 198t-273 73t-273 -73t-198 -198 -t-73 -273t73 -273t198 -198t273 -73t273 73t198 198t73 273zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" /> - <glyph glyph-name="arrow_circle_alt_left" unicode="&#xf190;" -d="M1152 736v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-352v-192q0 -14 -9 -23t-23 -9q-12 0 -24 10l-319 319q-9 9 -9 23t9 23l320 320q9 9 23 9q13 0 22.5 -9.5t9.5 -22.5v-192h352q13 0 22.5 -9.5t9.5 -22.5zM1312 640q0 148 -73 273t-198 198t-273 73t-273 -73t-198 -198 -t-73 -273t73 -273t198 -198t273 -73t273 73t198 198t73 273zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" /> - <glyph glyph-name="_376" unicode="&#xf191;" -d="M1024 960v-640q0 -26 -19 -45t-45 -19q-20 0 -37 12l-448 320q-27 19 -27 52t27 52l448 320q17 12 37 12q26 0 45 -19t19 -45zM1280 160v960q0 13 -9.5 22.5t-22.5 9.5h-960q-13 0 -22.5 -9.5t-9.5 -22.5v-960q0 -13 9.5 -22.5t22.5 -9.5h960q13 0 22.5 9.5t9.5 22.5z -M1536 1120v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" /> - <glyph glyph-name="dot_circle_alt" unicode="&#xf192;" -d="M1024 640q0 -106 -75 -181t-181 -75t-181 75t-75 181t75 181t181 75t181 -75t75 -181zM768 1184q-148 0 -273 -73t-198 -198t-73 -273t73 -273t198 -198t273 -73t273 73t198 198t73 273t-73 273t-198 198t-273 73zM1536 640q0 -209 -103 -385.5t-279.5 -279.5 -t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" /> - <glyph glyph-name="_378" unicode="&#xf193;" horiz-adv-x="1664" -d="M1023 349l102 -204q-58 -179 -210 -290t-339 -111q-156 0 -288.5 77.5t-210 210t-77.5 288.5q0 181 104.5 330t274.5 211l17 -131q-122 -54 -195 -165.5t-73 -244.5q0 -185 131.5 -316.5t316.5 -131.5q126 0 232.5 65t165 175.5t49.5 236.5zM1571 249l58 -114l-256 -128 -q-13 -7 -29 -7q-40 0 -57 35l-239 477h-472q-24 0 -42.5 16.5t-21.5 40.5l-96 779q-2 17 6 42q14 51 57 82.5t97 31.5q66 0 113 -47t47 -113q0 -69 -52 -117.5t-120 -41.5l37 -289h423v-128h-407l16 -128h455q40 0 57 -35l228 -455z" /> - <glyph glyph-name="vimeo_square" unicode="&#xf194;" -d="M1292 898q10 216 -161 222q-231 8 -312 -261q44 19 82 19q85 0 74 -96q-4 -57 -74 -167t-105 -110q-43 0 -82 169q-13 54 -45 255q-30 189 -160 177q-59 -7 -164 -100l-81 -72l-81 -72l52 -67q76 52 87 52q57 0 107 -179q15 -55 45 -164.5t45 -164.5q68 -179 164 -179 -q157 0 383 294q220 283 226 444zM1536 1120v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" /> - <glyph glyph-name="_380" unicode="&#xf195;" horiz-adv-x="1152" -d="M1152 704q0 -191 -94.5 -353t-256.5 -256.5t-353 -94.5h-160q-14 0 -23 9t-9 23v611l-215 -66q-3 -1 -9 -1q-10 0 -19 6q-13 10 -13 26v128q0 23 23 31l233 71v93l-215 -66q-3 -1 -9 -1q-10 0 -19 6q-13 10 -13 26v128q0 23 23 31l233 71v250q0 14 9 23t23 9h160 -q14 0 23 -9t9 -23v-181l375 116q15 5 28 -5t13 -26v-128q0 -23 -23 -31l-393 -121v-93l375 116q15 5 28 -5t13 -26v-128q0 -23 -23 -31l-393 -121v-487q188 13 318 151t130 328q0 14 9 23t23 9h160q14 0 23 -9t9 -23z" /> - <glyph glyph-name="plus_square_o" unicode="&#xf196;" horiz-adv-x="1408" -d="M1152 736v-64q0 -14 -9 -23t-23 -9h-352v-352q0 -14 -9 -23t-23 -9h-64q-14 0 -23 9t-9 23v352h-352q-14 0 -23 9t-9 23v64q0 14 9 23t23 9h352v352q0 14 9 23t23 9h64q14 0 23 -9t9 -23v-352h352q14 0 23 -9t9 -23zM1280 288v832q0 66 -47 113t-113 47h-832 -q-66 0 -113 -47t-47 -113v-832q0 -66 47 -113t113 -47h832q66 0 113 47t47 113zM1408 1120v-832q0 -119 -84.5 -203.5t-203.5 -84.5h-832q-119 0 -203.5 84.5t-84.5 203.5v832q0 119 84.5 203.5t203.5 84.5h832q119 0 203.5 -84.5t84.5 -203.5z" /> - <glyph glyph-name="_382" unicode="&#xf197;" horiz-adv-x="2176" -d="M620 416q-110 -64 -268 -64h-128v64h-64q-13 0 -22.5 23.5t-9.5 56.5q0 24 7 49q-58 2 -96.5 10.5t-38.5 20.5t38.5 20.5t96.5 10.5q-7 25 -7 49q0 33 9.5 56.5t22.5 23.5h64v64h128q158 0 268 -64h1113q42 -7 106.5 -18t80.5 -14q89 -15 150 -40.5t83.5 -47.5t22.5 -40 -t-22.5 -40t-83.5 -47.5t-150 -40.5q-16 -3 -80.5 -14t-106.5 -18h-1113zM1739 668q53 -36 53 -92t-53 -92l81 -30q68 48 68 122t-68 122zM625 400h1015q-217 -38 -456 -80q-57 0 -113 -24t-83 -48l-28 -24l-288 -288q-26 -26 -70.5 -45t-89.5 -19h-96l-93 464h29 -q157 0 273 64zM352 816h-29l93 464h96q46 0 90 -19t70 -45l288 -288q4 -4 11 -10.5t30.5 -23t48.5 -29t61.5 -23t72.5 -10.5l456 -80h-1015q-116 64 -273 64z" /> - <glyph glyph-name="_383" unicode="&#xf198;" horiz-adv-x="1664" -d="M1519 760q62 0 103.5 -40.5t41.5 -101.5q0 -97 -93 -130l-172 -59l56 -167q7 -21 7 -47q0 -59 -42 -102t-101 -43q-47 0 -85.5 27t-53.5 72l-55 165l-310 -106l55 -164q8 -24 8 -47q0 -59 -42 -102t-102 -43q-47 0 -85 27t-53 72l-55 163l-153 -53q-29 -9 -50 -9 -q-61 0 -101.5 40t-40.5 101q0 47 27.5 85t71.5 53l156 53l-105 313l-156 -54q-26 -8 -48 -8q-60 0 -101 40.5t-41 100.5q0 47 27.5 85t71.5 53l157 53l-53 159q-8 24 -8 47q0 60 42 102.5t102 42.5q47 0 85 -27t53 -72l54 -160l310 105l-54 160q-8 24 -8 47q0 59 42.5 102 -t101.5 43q47 0 85.5 -27.5t53.5 -71.5l53 -161l162 55q21 6 43 6q60 0 102.5 -39.5t42.5 -98.5q0 -45 -30 -81.5t-74 -51.5l-157 -54l105 -316l164 56q24 8 46 8zM725 498l310 105l-105 315l-310 -107z" /> - <glyph glyph-name="_384" unicode="&#xf199;" -d="M1248 1408q119 0 203.5 -84.5t84.5 -203.5v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960zM1280 352v436q-31 -35 -64 -55q-34 -22 -132.5 -85t-151.5 -99q-98 -69 -164 -69v0v0q-66 0 -164 69 -q-47 32 -142 92.5t-142 92.5q-12 8 -33 27t-31 27v-436q0 -40 28 -68t68 -28h832q40 0 68 28t28 68zM1280 925q0 41 -27.5 70t-68.5 29h-832q-40 0 -68 -28t-28 -68q0 -37 30.5 -76.5t67.5 -64.5q47 -32 137.5 -89t129.5 -83q3 -2 17 -11.5t21 -14t21 -13t23.5 -13 -t21.5 -9.5t22.5 -7.5t20.5 -2.5t20.5 2.5t22.5 7.5t21.5 9.5t23.5 13t21 13t21 14t17 11.5l267 174q35 23 66.5 62.5t31.5 73.5z" /> - <glyph glyph-name="_385" unicode="&#xf19a;" horiz-adv-x="1792" -d="M127 640q0 163 67 313l367 -1005q-196 95 -315 281t-119 411zM1415 679q0 -19 -2.5 -38.5t-10 -49.5t-11.5 -44t-17.5 -59t-17.5 -58l-76 -256l-278 826q46 3 88 8q19 2 26 18.5t-2.5 31t-28.5 13.5l-205 -10q-75 1 -202 10q-12 1 -20.5 -5t-11.5 -15t-1.5 -18.5t9 -16.5 -t19.5 -8l80 -8l120 -328l-168 -504l-280 832q46 3 88 8q19 2 26 18.5t-2.5 31t-28.5 13.5l-205 -10q-7 0 -23 0.5t-26 0.5q105 160 274.5 253.5t367.5 93.5q147 0 280.5 -53t238.5 -149h-10q-55 0 -92 -40.5t-37 -95.5q0 -12 2 -24t4 -21.5t8 -23t9 -21t12 -22.5t12.5 -21 -t14.5 -24t14 -23q63 -107 63 -212zM909 573l237 -647q1 -6 5 -11q-126 -44 -255 -44q-112 0 -217 32zM1570 1009q95 -174 95 -369q0 -209 -104 -385.5t-279 -278.5l235 678q59 169 59 276q0 42 -6 79zM896 1536q182 0 348 -71t286 -191t191 -286t71 -348t-71 -348t-191 -286 -t-286 -191t-348 -71t-348 71t-286 191t-191 286t-71 348t71 348t191 286t286 191t348 71zM896 -215q173 0 331.5 68t273 182.5t182.5 273t68 331.5t-68 331.5t-182.5 273t-273 182.5t-331.5 68t-331.5 -68t-273 -182.5t-182.5 -273t-68 -331.5t68 -331.5t182.5 -273 -t273 -182.5t331.5 -68z" /> - <glyph glyph-name="_386" unicode="&#xf19b;" horiz-adv-x="1792" -d="M1086 1536v-1536l-272 -128q-228 20 -414 102t-293 208.5t-107 272.5q0 140 100.5 263.5t275 205.5t391.5 108v-172q-217 -38 -356.5 -150t-139.5 -255q0 -152 154.5 -267t388.5 -145v1360zM1755 954l37 -390l-525 114l147 83q-119 70 -280 99v172q277 -33 481 -157z" /> - <glyph glyph-name="_387" unicode="&#xf19c;" horiz-adv-x="2048" -d="M960 1536l960 -384v-128h-128q0 -26 -20.5 -45t-48.5 -19h-1526q-28 0 -48.5 19t-20.5 45h-128v128zM256 896h256v-768h128v768h256v-768h128v768h256v-768h128v768h256v-768h59q28 0 48.5 -19t20.5 -45v-64h-1664v64q0 26 20.5 45t48.5 19h59v768zM1851 -64 -q28 0 48.5 -19t20.5 -45v-128h-1920v128q0 26 20.5 45t48.5 19h1782z" /> - <glyph glyph-name="_388" unicode="&#xf19d;" horiz-adv-x="2304" -d="M1774 700l18 -316q4 -69 -82 -128t-235 -93.5t-323 -34.5t-323 34.5t-235 93.5t-82 128l18 316l574 -181q22 -7 48 -7t48 7zM2304 1024q0 -23 -22 -31l-1120 -352q-4 -1 -10 -1t-10 1l-652 206q-43 -34 -71 -111.5t-34 -178.5q63 -36 63 -109q0 -69 -58 -107l58 -433 -q2 -14 -8 -25q-9 -11 -24 -11h-192q-15 0 -24 11q-10 11 -8 25l58 433q-58 38 -58 107q0 73 65 111q11 207 98 330l-333 104q-22 8 -22 31t22 31l1120 352q4 1 10 1t10 -1l1120 -352q22 -8 22 -31z" /> - <glyph glyph-name="_389" unicode="&#xf19e;" -d="M859 579l13 -707q-62 11 -105 11q-41 0 -105 -11l13 707q-40 69 -168.5 295.5t-216.5 374.5t-181 287q58 -15 108 -15q44 0 111 15q63 -111 133.5 -229.5t167 -276.5t138.5 -227q37 61 109.5 177.5t117.5 190t105 176t107 189.5q54 -14 107 -14q56 0 114 14v0 -q-28 -39 -60 -88.5t-49.5 -78.5t-56.5 -96t-49 -84q-146 -248 -353 -610z" /> - <glyph glyph-name="uniF1A0" unicode="&#xf1a0;" -d="M768 750h725q12 -67 12 -128q0 -217 -91 -387.5t-259.5 -266.5t-386.5 -96q-157 0 -299 60.5t-245 163.5t-163.5 245t-60.5 299t60.5 299t163.5 245t245 163.5t299 60.5q300 0 515 -201l-209 -201q-123 119 -306 119q-129 0 -238.5 -65t-173.5 -176.5t-64 -243.5 -t64 -243.5t173.5 -176.5t238.5 -65q87 0 160 24t120 60t82 82t51.5 87t22.5 78h-436v264z" /> - <glyph glyph-name="f1a1" unicode="&#xf1a1;" horiz-adv-x="1792" -d="M1095 369q16 -16 0 -31q-62 -62 -199 -62t-199 62q-16 15 0 31q6 6 15 6t15 -6q48 -49 169 -49q120 0 169 49q6 6 15 6t15 -6zM788 550q0 -37 -26 -63t-63 -26t-63.5 26t-26.5 63q0 38 26.5 64t63.5 26t63 -26.5t26 -63.5zM1183 550q0 -37 -26.5 -63t-63.5 -26t-63 26 -t-26 63t26 63.5t63 26.5t63.5 -26t26.5 -64zM1434 670q0 49 -35 84t-85 35t-86 -36q-130 90 -311 96l63 283l200 -45q0 -37 26 -63t63 -26t63.5 26.5t26.5 63.5t-26.5 63.5t-63.5 26.5q-54 0 -80 -50l-221 49q-19 5 -25 -16l-69 -312q-180 -7 -309 -97q-35 37 -87 37 -q-50 0 -85 -35t-35 -84q0 -35 18.5 -64t49.5 -44q-6 -27 -6 -56q0 -142 140 -243t337 -101q198 0 338 101t140 243q0 32 -7 57q30 15 48 43.5t18 63.5zM1792 640q0 -182 -71 -348t-191 -286t-286 -191t-348 -71t-348 71t-286 191t-191 286t-71 348t71 348t191 286t286 191 -t348 71t348 -71t286 -191t191 -286t71 -348z" /> - <glyph glyph-name="_392" unicode="&#xf1a2;" -d="M939 407q13 -13 0 -26q-53 -53 -171 -53t-171 53q-13 13 0 26q5 6 13 6t13 -6q42 -42 145 -42t145 42q5 6 13 6t13 -6zM676 563q0 -31 -23 -54t-54 -23t-54 23t-23 54q0 32 22.5 54.5t54.5 22.5t54.5 -22.5t22.5 -54.5zM1014 563q0 -31 -23 -54t-54 -23t-54 23t-23 54 -q0 32 22.5 54.5t54.5 22.5t54.5 -22.5t22.5 -54.5zM1229 666q0 42 -30 72t-73 30q-42 0 -73 -31q-113 78 -267 82l54 243l171 -39q1 -32 23.5 -54t53.5 -22q32 0 54.5 22.5t22.5 54.5t-22.5 54.5t-54.5 22.5q-48 0 -69 -43l-189 42q-17 5 -21 -13l-60 -268q-154 -6 -265 -83 -q-30 32 -74 32q-43 0 -73 -30t-30 -72q0 -30 16 -55t42 -38q-5 -25 -5 -48q0 -122 120 -208.5t289 -86.5q170 0 290 86.5t120 208.5q0 25 -6 49q25 13 40.5 37.5t15.5 54.5zM1536 1120v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960 -q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" /> - <glyph glyph-name="_393" unicode="&#xf1a3;" -d="M866 697l90 27v62q0 79 -58 135t-138 56t-138 -55.5t-58 -134.5v-283q0 -20 -14 -33.5t-33 -13.5t-32.5 13.5t-13.5 33.5v120h-151v-122q0 -82 57.5 -139t139.5 -57q81 0 138.5 56.5t57.5 136.5v280q0 19 13.5 33t33.5 14q19 0 32.5 -14t13.5 -33v-54zM1199 502v122h-150 -v-126q0 -20 -13.5 -33.5t-33.5 -13.5q-19 0 -32.5 14t-13.5 33v123l-90 -26l-60 28v-123q0 -80 58 -137t139 -57t138.5 57t57.5 139zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103 -t385.5 -103t279.5 -279.5t103 -385.5z" /> - <glyph glyph-name="f1a4" unicode="&#xf1a4;" horiz-adv-x="1920" -d="M1062 824v118q0 42 -30 72t-72 30t-72 -30t-30 -72v-612q0 -175 -126 -299t-303 -124q-178 0 -303.5 125.5t-125.5 303.5v266h328v-262q0 -43 30 -72.5t72 -29.5t72 29.5t30 72.5v620q0 171 126.5 292t301.5 121q176 0 302 -122t126 -294v-136l-195 -58zM1592 602h328 -v-266q0 -178 -125.5 -303.5t-303.5 -125.5q-177 0 -303 124.5t-126 300.5v268l131 -61l195 58v-270q0 -42 30 -71.5t72 -29.5t72 29.5t30 71.5v275z" /> - <glyph glyph-name="_395" unicode="&#xf1a5;" -d="M1472 160v480h-704v704h-480q-93 0 -158.5 -65.5t-65.5 -158.5v-480h704v-704h480q93 0 158.5 65.5t65.5 158.5zM1536 1120v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5 -t84.5 -203.5z" /> - <glyph glyph-name="_396" unicode="&#xf1a6;" horiz-adv-x="2048" -d="M328 1254h204v-983h-532v697h328v286zM328 435v369h-123v-369h123zM614 968v-697h205v697h-205zM614 1254v-204h205v204h-205zM901 968h533v-942h-533v163h328v82h-328v697zM1229 435v369h-123v-369h123zM1516 968h532v-942h-532v163h327v82h-327v697zM1843 435v369h-123 -v-369h123z" /> - <glyph glyph-name="_397" unicode="&#xf1a7;" -d="M1046 516q0 -64 -38 -109t-91 -45q-43 0 -70 15v277q28 17 70 17q53 0 91 -45.5t38 -109.5zM703 944q0 -64 -38 -109.5t-91 -45.5q-43 0 -70 15v277q28 17 70 17q53 0 91 -45t38 -109zM1265 513q0 134 -88 229t-213 95q-20 0 -39 -3q-23 -78 -78 -136q-87 -95 -211 -101 -v-636l211 41v206q51 -19 117 -19q125 0 213 95t88 229zM922 940q0 134 -88.5 229t-213.5 95q-74 0 -141 -36h-186v-840l211 41v206q55 -19 116 -19q125 0 213.5 95t88.5 229zM1536 1120v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960 -q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" /> - <glyph glyph-name="_398" unicode="&#xf1a8;" horiz-adv-x="2038" -d="M1222 607q75 3 143.5 -20.5t118 -58.5t101 -94.5t84 -108t75.5 -120.5q33 -56 78.5 -109t75.5 -80.5t99 -88.5q-48 -30 -108.5 -57.5t-138.5 -59t-114 -47.5q-44 37 -74 115t-43.5 164.5t-33 180.5t-42.5 168.5t-72.5 123t-122.5 48.5l-10 -2l-6 -4q4 -5 13 -14 -q6 -5 28 -23.5t25.5 -22t19 -18t18 -20.5t11.5 -21t10.5 -27.5t4.5 -31t4 -40.5l1 -33q1 -26 -2.5 -57.5t-7.5 -52t-12.5 -58.5t-11.5 -53q-35 1 -101 -9.5t-98 -10.5q-39 0 -72 10q-2 16 -2 47q0 74 3 96q2 13 31.5 41.5t57 59t26.5 51.5q-24 2 -43 -24 -q-36 -53 -111.5 -99.5t-136.5 -46.5q-25 0 -75.5 63t-106.5 139.5t-84 96.5q-6 4 -27 30q-482 -112 -513 -112q-16 0 -28 11t-12 27q0 15 8.5 26.5t22.5 14.5l486 106q-8 14 -8 25t5.5 17.5t16 11.5t20 7t23 4.5t18.5 4.5q4 1 15.5 7.5t17.5 6.5q15 0 28 -16t20 -33 -q163 37 172 37q17 0 29.5 -11t12.5 -28q0 -15 -8.5 -26t-23.5 -14l-182 -40l-1 -16q-1 -26 81.5 -117.5t104.5 -91.5q47 0 119 80t72 129q0 36 -23.5 53t-51 18.5t-51 11.5t-23.5 34q0 16 10 34l-68 19q43 44 43 117q0 26 -5 58q82 16 144 16q44 0 71.5 -1.5t48.5 -8.5 -t31 -13.5t20.5 -24.5t15.5 -33.5t17 -47.5t24 -60l50 25q-3 -40 -23 -60t-42.5 -21t-40 -6.5t-16.5 -20.5zM1282 842q-5 5 -13.5 15.5t-12 14.5t-10.5 11.5t-10 10.5l-8 8t-8.5 7.5t-8 5t-8.5 4.5q-7 3 -14.5 5t-20.5 2.5t-22 0.5h-32.5h-37.5q-126 0 -217 -43 -q16 30 36 46.5t54 29.5t65.5 36t46 36.5t50 55t43.5 50.5q12 -9 28 -31.5t32 -36.5t38 -13l12 1v-76l22 -1q247 95 371 190q28 21 50 39t42.5 37.5t33 31t29.5 34t24 31t24.5 37t23 38t27 47.5t29.5 53l7 9q-2 -53 -43 -139q-79 -165 -205 -264t-306 -142q-14 -3 -42 -7.5 -t-50 -9.5t-39 -14q3 -19 24.5 -46t21.5 -34q0 -11 -26 -30zM1061 -79q39 26 131.5 47.5t146.5 21.5q9 0 22.5 -15.5t28 -42.5t26 -50t24 -51t14.5 -33q-121 -45 -244 -45q-61 0 -125 11zM822 568l48 12l109 -177l-73 -48zM1323 51q3 -15 3 -16q0 -7 -17.5 -14.5t-46 -13 -t-54 -9.5t-53.5 -7.5t-32 -4.5l-7 43q21 2 60.5 8.5t72 10t60.5 3.5h14zM866 679l-96 -20l-6 17q10 1 32.5 7t34.5 6q19 0 35 -10zM1061 45h31l10 -83l-41 -12v95zM1950 1535v1v-1zM1950 1535l-1 -5l-2 -2l1 3zM1950 1535l1 1z" /> - <glyph glyph-name="_399" unicode="&#xf1a9;" -d="M1167 -50q-5 19 -24 5q-30 -22 -87 -39t-131 -17q-129 0 -193 49q-5 4 -13 4q-11 0 -26 -12q-7 -6 -7.5 -16t7.5 -20q34 -32 87.5 -46t102.5 -12.5t99 4.5q41 4 84.5 20.5t65 30t28.5 20.5q12 12 7 29zM1128 65q-19 47 -39 61q-23 15 -76 15q-47 0 -71 -10 -q-29 -12 -78 -56q-26 -24 -12 -44q9 -8 17.5 -4.5t31.5 23.5q3 2 10.5 8.5t10.5 8.5t10 7t11.5 7t12.5 5t15 4.5t16.5 2.5t20.5 1q27 0 44.5 -7.5t23 -14.5t13.5 -22q10 -17 12.5 -20t12.5 1q23 12 14 34zM1483 346q0 22 -5 44.5t-16.5 45t-34 36.5t-52.5 14 -q-33 0 -97 -41.5t-129 -83.5t-101 -42q-27 -1 -63.5 19t-76 49t-83.5 58t-100 49t-111 19q-115 -1 -197 -78.5t-84 -178.5q-2 -112 74 -164q29 -20 62.5 -28.5t103.5 -8.5q57 0 132 32.5t134 71t120 70.5t93 31q26 -1 65 -31.5t71.5 -67t68 -67.5t55.5 -32q35 -3 58.5 14 -t55.5 63q28 41 42.5 101t14.5 106zM1536 506q0 -164 -62 -304.5t-166 -236t-242.5 -149.5t-290.5 -54t-293 57.5t-247.5 157t-170.5 241.5t-64 302q0 89 19.5 172.5t49 145.5t70.5 118.5t78.5 94t78.5 69.5t64.5 46.5t42.5 24.5q14 8 51 26.5t54.5 28.5t48 30t60.5 44 -q36 28 58 72.5t30 125.5q129 -155 186 -193q44 -29 130 -68t129 -66q21 -13 39 -25t60.5 -46.5t76 -70.5t75 -95t69 -122t47 -148.5t19.5 -177.5z" /> - <glyph glyph-name="_400" unicode="&#xf1aa;" -d="M1070 463l-160 -160l-151 -152l-30 -30q-65 -64 -151.5 -87t-171.5 -2q-16 -70 -72 -115t-129 -45q-85 0 -145 60.5t-60 145.5q0 72 44.5 128t113.5 72q-22 86 1 173t88 152l12 12l151 -152l-11 -11q-37 -37 -37 -89t37 -90q37 -37 89 -37t89 37l30 30l151 152l161 160z -M729 1145l12 -12l-152 -152l-12 12q-37 37 -89 37t-89 -37t-37 -89.5t37 -89.5l29 -29l152 -152l160 -160l-151 -152l-161 160l-151 152l-30 30q-68 67 -90 159.5t5 179.5q-70 15 -115 71t-45 129q0 85 60 145.5t145 60.5q76 0 133.5 -49t69.5 -123q84 20 169.5 -3.5 -t149.5 -87.5zM1536 78q0 -85 -60 -145.5t-145 -60.5q-74 0 -131 47t-71 118q-86 -28 -179.5 -6t-161.5 90l-11 12l151 152l12 -12q37 -37 89 -37t89 37t37 89t-37 89l-30 30l-152 152l-160 160l152 152l160 -160l152 -152l29 -30q64 -64 87.5 -150.5t2.5 -171.5 -q76 -11 126.5 -68.5t50.5 -134.5zM1534 1202q0 -77 -51 -135t-127 -69q26 -85 3 -176.5t-90 -158.5l-12 -12l-151 152l12 12q37 37 37 89t-37 89t-89 37t-89 -37l-30 -30l-152 -152l-160 -160l-152 152l161 160l152 152l29 30q67 67 159 89.5t178 -3.5q11 75 68.5 126 -t135.5 51q85 0 145 -60.5t60 -145.5z" /> - <glyph glyph-name="f1ab" unicode="&#xf1ab;" -d="M654 458q-1 -3 -12.5 0.5t-31.5 11.5l-20 9q-44 20 -87 49q-7 5 -41 31.5t-38 28.5q-67 -103 -134 -181q-81 -95 -105 -110q-4 -2 -19.5 -4t-18.5 0q6 4 82 92q21 24 85.5 115t78.5 118q17 30 51 98.5t36 77.5q-8 1 -110 -33q-8 -2 -27.5 -7.5t-34.5 -9.5t-17 -5 -q-2 -2 -2 -10.5t-1 -9.5q-5 -10 -31 -15q-23 -7 -47 0q-18 4 -28 21q-4 6 -5 23q6 2 24.5 5t29.5 6q58 16 105 32q100 35 102 35q10 2 43 19.5t44 21.5q9 3 21.5 8t14.5 5.5t6 -0.5q2 -12 -1 -33q0 -2 -12.5 -27t-26.5 -53.5t-17 -33.5q-25 -50 -77 -131l64 -28 -q12 -6 74.5 -32t67.5 -28q4 -1 10.5 -25.5t4.5 -30.5zM449 944q3 -15 -4 -28q-12 -23 -50 -38q-30 -12 -60 -12q-26 3 -49 26q-14 15 -18 41l1 3q3 -3 19.5 -5t26.5 0t58 16q36 12 55 14q17 0 21 -17zM1147 815l63 -227l-139 42zM39 15l694 232v1032l-694 -233v-1031z -M1280 332l102 -31l-181 657l-100 31l-216 -536l102 -31l45 110l211 -65zM777 1294l573 -184v380zM1088 -29l158 -13l-54 -160l-40 66q-130 -83 -276 -108q-58 -12 -91 -12h-84q-79 0 -199.5 39t-183.5 85q-8 7 -8 16q0 8 5 13.5t13 5.5q4 0 18 -7.5t30.5 -16.5t20.5 -11 -q73 -37 159.5 -61.5t157.5 -24.5q95 0 167 14.5t157 50.5q15 7 30.5 15.5t34 19t28.5 16.5zM1536 1050v-1079l-774 246q-14 -6 -375 -127.5t-368 -121.5q-13 0 -18 13q0 1 -1 3v1078q3 9 4 10q5 6 20 11q107 36 149 50v384l558 -198q2 0 160.5 55t316 108.5t161.5 53.5 -q20 0 20 -21v-418z" /> - <glyph glyph-name="_402" unicode="&#xf1ac;" horiz-adv-x="1792" -d="M288 1152q66 0 113 -47t47 -113v-1088q0 -66 -47 -113t-113 -47h-128q-66 0 -113 47t-47 113v1088q0 66 47 113t113 47h128zM1664 989q58 -34 93 -93t35 -128v-768q0 -106 -75 -181t-181 -75h-864q-66 0 -113 47t-47 113v1536q0 40 28 68t68 28h672q40 0 88 -20t76 -48 -l152 -152q28 -28 48 -76t20 -88v-163zM928 0v128q0 14 -9 23t-23 9h-128q-14 0 -23 -9t-9 -23v-128q0 -14 9 -23t23 -9h128q14 0 23 9t9 23zM928 256v128q0 14 -9 23t-23 9h-128q-14 0 -23 -9t-9 -23v-128q0 -14 9 -23t23 -9h128q14 0 23 9t9 23zM928 512v128q0 14 -9 23 -t-23 9h-128q-14 0 -23 -9t-9 -23v-128q0 -14 9 -23t23 -9h128q14 0 23 9t9 23zM1184 0v128q0 14 -9 23t-23 9h-128q-14 0 -23 -9t-9 -23v-128q0 -14 9 -23t23 -9h128q14 0 23 9t9 23zM1184 256v128q0 14 -9 23t-23 9h-128q-14 0 -23 -9t-9 -23v-128q0 -14 9 -23t23 -9h128 -q14 0 23 9t9 23zM1184 512v128q0 14 -9 23t-23 9h-128q-14 0 -23 -9t-9 -23v-128q0 -14 9 -23t23 -9h128q14 0 23 9t9 23zM1440 0v128q0 14 -9 23t-23 9h-128q-14 0 -23 -9t-9 -23v-128q0 -14 9 -23t23 -9h128q14 0 23 9t9 23zM1440 256v128q0 14 -9 23t-23 9h-128 -q-14 0 -23 -9t-9 -23v-128q0 -14 9 -23t23 -9h128q14 0 23 9t9 23zM1440 512v128q0 14 -9 23t-23 9h-128q-14 0 -23 -9t-9 -23v-128q0 -14 9 -23t23 -9h128q14 0 23 9t9 23zM1536 896v256h-160q-40 0 -68 28t-28 68v160h-640v-512h896z" /> - <glyph glyph-name="_403" unicode="&#xf1ad;" -d="M1344 1536q26 0 45 -19t19 -45v-1664q0 -26 -19 -45t-45 -19h-1280q-26 0 -45 19t-19 45v1664q0 26 19 45t45 19h1280zM512 1248v-64q0 -14 9 -23t23 -9h64q14 0 23 9t9 23v64q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23zM512 992v-64q0 -14 9 -23t23 -9h64q14 0 23 9 -t9 23v64q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23zM512 736v-64q0 -14 9 -23t23 -9h64q14 0 23 9t9 23v64q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23zM512 480v-64q0 -14 9 -23t23 -9h64q14 0 23 9t9 23v64q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23zM384 160v64 -q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23v-64q0 -14 9 -23t23 -9h64q14 0 23 9t9 23zM384 416v64q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23v-64q0 -14 9 -23t23 -9h64q14 0 23 9t9 23zM384 672v64q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23v-64q0 -14 9 -23t23 -9h64 -q14 0 23 9t9 23zM384 928v64q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23v-64q0 -14 9 -23t23 -9h64q14 0 23 9t9 23zM384 1184v64q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23v-64q0 -14 9 -23t23 -9h64q14 0 23 9t9 23zM896 -96v192q0 14 -9 23t-23 9h-320q-14 0 -23 -9 -t-9 -23v-192q0 -14 9 -23t23 -9h320q14 0 23 9t9 23zM896 416v64q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23v-64q0 -14 9 -23t23 -9h64q14 0 23 9t9 23zM896 672v64q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23v-64q0 -14 9 -23t23 -9h64q14 0 23 9t9 23zM896 928v64 -q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23v-64q0 -14 9 -23t23 -9h64q14 0 23 9t9 23zM896 1184v64q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23v-64q0 -14 9 -23t23 -9h64q14 0 23 9t9 23zM1152 160v64q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23v-64q0 -14 9 -23t23 -9h64 -q14 0 23 9t9 23zM1152 416v64q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23v-64q0 -14 9 -23t23 -9h64q14 0 23 9t9 23zM1152 672v64q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23v-64q0 -14 9 -23t23 -9h64q14 0 23 9t9 23zM1152 928v64q0 14 -9 23t-23 9h-64q-14 0 -23 -9 -t-9 -23v-64q0 -14 9 -23t23 -9h64q14 0 23 9t9 23zM1152 1184v64q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23v-64q0 -14 9 -23t23 -9h64q14 0 23 9t9 23z" /> - <glyph glyph-name="_404" unicode="&#xf1ae;" horiz-adv-x="1280" -d="M1188 988l-292 -292v-824q0 -46 -33 -79t-79 -33t-79 33t-33 79v384h-64v-384q0 -46 -33 -79t-79 -33t-79 33t-33 79v824l-292 292q-28 28 -28 68t28 68q29 28 68.5 28t67.5 -28l228 -228h368l228 228q28 28 68 28t68 -28q28 -29 28 -68.5t-28 -67.5zM864 1152 -q0 -93 -65.5 -158.5t-158.5 -65.5t-158.5 65.5t-65.5 158.5t65.5 158.5t158.5 65.5t158.5 -65.5t65.5 -158.5z" /> - <glyph glyph-name="uniF1B1" unicode="&#xf1b0;" horiz-adv-x="1664" -d="M780 1064q0 -60 -19 -113.5t-63 -92.5t-105 -39q-76 0 -138 57.5t-92 135.5t-30 151q0 60 19 113.5t63 92.5t105 39q77 0 138.5 -57.5t91.5 -135t30 -151.5zM438 581q0 -80 -42 -139t-119 -59q-76 0 -141.5 55.5t-100.5 133.5t-35 152q0 80 42 139.5t119 59.5 -q76 0 141.5 -55.5t100.5 -134t35 -152.5zM832 608q118 0 255 -97.5t229 -237t92 -254.5q0 -46 -17 -76.5t-48.5 -45t-64.5 -20t-76 -5.5q-68 0 -187.5 45t-182.5 45q-66 0 -192.5 -44.5t-200.5 -44.5q-183 0 -183 146q0 86 56 191.5t139.5 192.5t187.5 146t193 59zM1071 819 -q-61 0 -105 39t-63 92.5t-19 113.5q0 74 30 151.5t91.5 135t138.5 57.5q61 0 105 -39t63 -92.5t19 -113.5q0 -73 -30 -151t-92 -135.5t-138 -57.5zM1503 923q77 0 119 -59.5t42 -139.5q0 -74 -35 -152t-100.5 -133.5t-141.5 -55.5q-77 0 -119 59t-42 139q0 74 35 152.5 -t100.5 134t141.5 55.5z" /> - <glyph glyph-name="_406" unicode="&#xf1b1;" horiz-adv-x="768" -d="M704 1008q0 -145 -57 -243.5t-152 -135.5l45 -821q2 -26 -16 -45t-44 -19h-192q-26 0 -44 19t-16 45l45 821q-95 37 -152 135.5t-57 243.5q0 128 42.5 249.5t117.5 200t160 78.5t160 -78.5t117.5 -200t42.5 -249.5z" /> - <glyph glyph-name="_407" unicode="&#xf1b2;" horiz-adv-x="1792" -d="M896 -93l640 349v636l-640 -233v-752zM832 772l698 254l-698 254l-698 -254zM1664 1024v-768q0 -35 -18 -65t-49 -47l-704 -384q-28 -16 -61 -16t-61 16l-704 384q-31 17 -49 47t-18 65v768q0 40 23 73t61 47l704 256q22 8 44 8t44 -8l704 -256q38 -14 61 -47t23 -73z -" /> - <glyph glyph-name="_408" unicode="&#xf1b3;" horiz-adv-x="2304" -d="M640 -96l384 192v314l-384 -164v-342zM576 358l404 173l-404 173l-404 -173zM1664 -96l384 192v314l-384 -164v-342zM1600 358l404 173l-404 173l-404 -173zM1152 651l384 165v266l-384 -164v-267zM1088 1030l441 189l-441 189l-441 -189zM2176 512v-416q0 -36 -19 -67 -t-52 -47l-448 -224q-25 -14 -57 -14t-57 14l-448 224q-4 2 -7 4q-2 -2 -7 -4l-448 -224q-25 -14 -57 -14t-57 14l-448 224q-33 16 -52 47t-19 67v416q0 38 21.5 70t56.5 48l434 186v400q0 38 21.5 70t56.5 48l448 192q23 10 50 10t50 -10l448 -192q35 -16 56.5 -48t21.5 -70 -v-400l434 -186q36 -16 57 -48t21 -70z" /> - <glyph glyph-name="_409" unicode="&#xf1b4;" horiz-adv-x="2048" -d="M1848 1197h-511v-124h511v124zM1596 771q-90 0 -146 -52.5t-62 -142.5h408q-18 195 -200 195zM1612 186q63 0 122 32t76 87h221q-100 -307 -427 -307q-214 0 -340.5 132t-126.5 347q0 208 130.5 345.5t336.5 137.5q138 0 240.5 -68t153 -179t50.5 -248q0 -17 -2 -47h-658 -q0 -111 57.5 -171.5t166.5 -60.5zM277 236h296q205 0 205 167q0 180 -199 180h-302v-347zM277 773h281q78 0 123.5 36.5t45.5 113.5q0 144 -190 144h-260v-294zM0 1282h594q87 0 155 -14t126.5 -47.5t90 -96.5t31.5 -154q0 -181 -172 -263q114 -32 172 -115t58 -204 -q0 -75 -24.5 -136.5t-66 -103.5t-98.5 -71t-121 -42t-134 -13h-611v1260z" /> - <glyph glyph-name="_410" unicode="&#xf1b5;" -d="M1248 1408q119 0 203.5 -84.5t84.5 -203.5v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960zM499 1041h-371v-787h382q117 0 197 57.5t80 170.5q0 158 -143 200q107 52 107 164q0 57 -19.5 96.5 -t-56.5 60.5t-79 29.5t-97 8.5zM477 723h-176v184h163q119 0 119 -90q0 -94 -106 -94zM486 388h-185v217h189q124 0 124 -113q0 -104 -128 -104zM1136 356q-68 0 -104 38t-36 107h411q1 10 1 30q0 132 -74.5 220.5t-203.5 88.5q-128 0 -210 -86t-82 -216q0 -135 79 -217 -t213 -82q205 0 267 191h-138q-11 -34 -47.5 -54t-75.5 -20zM1126 722q113 0 124 -122h-254q4 56 39 89t91 33zM964 988h319v-77h-319v77z" /> - <glyph glyph-name="_411" unicode="&#xf1b6;" horiz-adv-x="1792" -d="M1582 954q0 -101 -71.5 -172.5t-172.5 -71.5t-172.5 71.5t-71.5 172.5t71.5 172.5t172.5 71.5t172.5 -71.5t71.5 -172.5zM812 212q0 104 -73 177t-177 73q-27 0 -54 -6l104 -42q77 -31 109.5 -106.5t1.5 -151.5q-31 -77 -107 -109t-152 -1q-21 8 -62 24.5t-61 24.5 -q32 -60 91 -96.5t130 -36.5q104 0 177 73t73 177zM1642 953q0 126 -89.5 215.5t-215.5 89.5q-127 0 -216.5 -89.5t-89.5 -215.5q0 -127 89.5 -216t216.5 -89q126 0 215.5 89t89.5 216zM1792 953q0 -189 -133.5 -322t-321.5 -133l-437 -319q-12 -129 -109 -218t-229 -89 -q-121 0 -214 76t-118 192l-230 92v429l389 -157q79 48 173 48q13 0 35 -2l284 407q2 187 135.5 319t320.5 132q188 0 321.5 -133.5t133.5 -321.5z" /> - <glyph glyph-name="_412" unicode="&#xf1b7;" -d="M1242 889q0 80 -57 136.5t-137 56.5t-136.5 -57t-56.5 -136q0 -80 56.5 -136.5t136.5 -56.5t137 56.5t57 136.5zM632 301q0 -83 -58 -140.5t-140 -57.5q-56 0 -103 29t-72 77q52 -20 98 -40q60 -24 120 1.5t85 86.5q24 60 -1.5 120t-86.5 84l-82 33q22 5 42 5 -q82 0 140 -57.5t58 -140.5zM1536 1120v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v153l172 -69q20 -92 93.5 -152t168.5 -60q104 0 181 70t87 173l345 252q150 0 255.5 105.5t105.5 254.5q0 150 -105.5 255.5t-255.5 105.5 -q-148 0 -253 -104.5t-107 -252.5l-225 -322q-9 1 -28 1q-75 0 -137 -37l-297 119v468q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5zM1289 887q0 -100 -71 -170.5t-171 -70.5t-170.5 70.5t-70.5 170.5t70.5 171t170.5 71q101 0 171.5 -70.5t70.5 -171.5z -" /> - <glyph glyph-name="_413" unicode="&#xf1b8;" horiz-adv-x="1792" -d="M836 367l-15 -368l-2 -22l-420 29q-36 3 -67 31.5t-47 65.5q-11 27 -14.5 55t4 65t12 55t21.5 64t19 53q78 -12 509 -28zM449 953l180 -379l-147 92q-63 -72 -111.5 -144.5t-72.5 -125t-39.5 -94.5t-18.5 -63l-4 -21l-190 357q-17 26 -18 56t6 47l8 18q35 63 114 188 -l-140 86zM1680 436l-188 -359q-12 -29 -36.5 -46.5t-43.5 -20.5l-18 -4q-71 -7 -219 -12l8 -164l-230 367l211 362l7 -173q170 -16 283 -5t170 33zM895 1360q-47 -63 -265 -435l-317 187l-19 12l225 356q20 31 60 45t80 10q24 -2 48.5 -12t42 -21t41.5 -33t36 -34.5 -t36 -39.5t32 -35zM1550 1053l212 -363q18 -37 12.5 -76t-27.5 -74q-13 -20 -33 -37t-38 -28t-48.5 -22t-47 -16t-51.5 -14t-46 -12q-34 72 -265 436l313 195zM1407 1279l142 83l-220 -373l-419 20l151 86q-34 89 -75 166t-75.5 123.5t-64.5 80t-47 46.5l-17 13l405 -1 -q31 3 58 -10.5t39 -28.5l11 -15q39 -61 112 -190z" /> - <glyph glyph-name="_414" unicode="&#xf1b9;" horiz-adv-x="2048" -d="M480 448q0 66 -47 113t-113 47t-113 -47t-47 -113t47 -113t113 -47t113 47t47 113zM516 768h1016l-89 357q-2 8 -14 17.5t-21 9.5h-768q-9 0 -21 -9.5t-14 -17.5zM1888 448q0 66 -47 113t-113 47t-113 -47t-47 -113t47 -113t113 -47t113 47t47 113zM2048 544v-384 -q0 -14 -9 -23t-23 -9h-96v-128q0 -80 -56 -136t-136 -56t-136 56t-56 136v128h-1024v-128q0 -80 -56 -136t-136 -56t-136 56t-56 136v128h-96q-14 0 -23 9t-9 23v384q0 93 65.5 158.5t158.5 65.5h28l105 419q23 94 104 157.5t179 63.5h768q98 0 179 -63.5t104 -157.5 -l105 -419h28q93 0 158.5 -65.5t65.5 -158.5z" /> - <glyph glyph-name="_415" unicode="&#xf1ba;" horiz-adv-x="2048" -d="M1824 640q93 0 158.5 -65.5t65.5 -158.5v-384q0 -14 -9 -23t-23 -9h-96v-64q0 -80 -56 -136t-136 -56t-136 56t-56 136v64h-1024v-64q0 -80 -56 -136t-136 -56t-136 56t-56 136v64h-96q-14 0 -23 9t-9 23v384q0 93 65.5 158.5t158.5 65.5h28l105 419q23 94 104 157.5 -t179 63.5h128v224q0 14 9 23t23 9h448q14 0 23 -9t9 -23v-224h128q98 0 179 -63.5t104 -157.5l105 -419h28zM320 160q66 0 113 47t47 113t-47 113t-113 47t-113 -47t-47 -113t47 -113t113 -47zM516 640h1016l-89 357q-2 8 -14 17.5t-21 9.5h-768q-9 0 -21 -9.5t-14 -17.5z -M1728 160q66 0 113 47t47 113t-47 113t-113 47t-113 -47t-47 -113t47 -113t113 -47z" /> - <glyph glyph-name="_416" unicode="&#xf1bb;" -d="M1504 64q0 -26 -19 -45t-45 -19h-462q1 -17 6 -87.5t5 -108.5q0 -25 -18 -42.5t-43 -17.5h-320q-25 0 -43 17.5t-18 42.5q0 38 5 108.5t6 87.5h-462q-26 0 -45 19t-19 45t19 45l402 403h-229q-26 0 -45 19t-19 45t19 45l402 403h-197q-26 0 -45 19t-19 45t19 45l384 384 -q19 19 45 19t45 -19l384 -384q19 -19 19 -45t-19 -45t-45 -19h-197l402 -403q19 -19 19 -45t-19 -45t-45 -19h-229l402 -403q19 -19 19 -45z" /> - <glyph glyph-name="_417" unicode="&#xf1bc;" -d="M1127 326q0 32 -30 51q-193 115 -447 115q-133 0 -287 -34q-42 -9 -42 -52q0 -20 13.5 -34.5t35.5 -14.5q5 0 37 8q132 27 243 27q226 0 397 -103q19 -11 33 -11q19 0 33 13.5t14 34.5zM1223 541q0 40 -35 61q-237 141 -548 141q-153 0 -303 -42q-48 -13 -48 -64 -q0 -25 17.5 -42.5t42.5 -17.5q7 0 37 8q122 33 251 33q279 0 488 -124q24 -13 38 -13q25 0 42.5 17.5t17.5 42.5zM1331 789q0 47 -40 70q-126 73 -293 110.5t-343 37.5q-204 0 -364 -47q-23 -7 -38.5 -25.5t-15.5 -48.5q0 -31 20.5 -52t51.5 -21q11 0 40 8q133 37 307 37 -q159 0 309.5 -34t253.5 -95q21 -12 40 -12q29 0 50.5 20.5t21.5 51.5zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" /> - <glyph glyph-name="_418" unicode="&#xf1bd;" horiz-adv-x="1024" -d="M1024 1233l-303 -582l24 -31h279v-415h-507l-44 -30l-142 -273l-30 -30h-301v303l303 583l-24 30h-279v415h507l44 30l142 273l30 30h301v-303z" /> - <glyph glyph-name="_419" unicode="&#xf1be;" horiz-adv-x="2304" -d="M784 164l16 241l-16 523q-1 10 -7.5 17t-16.5 7q-9 0 -16 -7t-7 -17l-14 -523l14 -241q1 -10 7.5 -16.5t15.5 -6.5q22 0 24 23zM1080 193l11 211l-12 586q0 16 -13 24q-8 5 -16 5t-16 -5q-13 -8 -13 -24l-1 -6l-10 -579q0 -1 11 -236v-1q0 -10 6 -17q9 -11 23 -11 -q11 0 20 9q9 7 9 20zM35 533l20 -128l-20 -126q-2 -9 -9 -9t-9 9l-17 126l17 128q2 9 9 9t9 -9zM121 612l26 -207l-26 -203q-2 -9 -10 -9q-9 0 -9 10l-23 202l23 207q0 9 9 9q8 0 10 -9zM401 159zM213 650l25 -245l-25 -237q0 -11 -11 -11q-10 0 -12 11l-21 237l21 245 -q2 12 12 12q11 0 11 -12zM307 657l23 -252l-23 -244q-2 -13 -14 -13q-13 0 -13 13l-21 244l21 252q0 13 13 13q12 0 14 -13zM401 639l21 -234l-21 -246q-2 -16 -16 -16q-6 0 -10.5 4.5t-4.5 11.5l-20 246l20 234q0 6 4.5 10.5t10.5 4.5q14 0 16 -15zM784 164zM495 785 -l21 -380l-21 -246q0 -7 -5 -12.5t-12 -5.5q-16 0 -18 18l-18 246l18 380q2 18 18 18q7 0 12 -5.5t5 -12.5zM589 871l19 -468l-19 -244q0 -8 -5.5 -13.5t-13.5 -5.5q-18 0 -20 19l-16 244l16 468q2 19 20 19q8 0 13.5 -5.5t5.5 -13.5zM687 911l18 -506l-18 -242 -q-2 -21 -22 -21q-19 0 -21 21l-16 242l16 506q0 9 6.5 15.5t14.5 6.5q9 0 15 -6.5t7 -15.5zM1079 169v0v0v0zM881 915l15 -510l-15 -239q0 -10 -7.5 -17.5t-17.5 -7.5t-17 7t-8 18l-14 239l14 510q0 11 7.5 18t17.5 7t17.5 -7t7.5 -18zM980 896l14 -492l-14 -236 -q0 -11 -8 -19t-19 -8t-19 8t-9 19l-12 236l12 492q1 12 9 20t19 8t18.5 -8t8.5 -20zM1192 404l-14 -231v0q0 -13 -9 -22t-22 -9t-22 9t-10 22l-6 114l-6 117l12 636v3q2 15 12 24q9 7 20 7q8 0 15 -5q14 -8 16 -26zM2304 423q0 -117 -83 -199.5t-200 -82.5h-786 -q-13 2 -22 11t-9 22v899q0 23 28 33q85 34 181 34q195 0 338 -131.5t160 -323.5q53 22 110 22q117 0 200 -83t83 -201z" /> - <glyph glyph-name="uniF1C0" unicode="&#xf1c0;" -d="M768 768q237 0 443 43t325 127v-170q0 -69 -103 -128t-280 -93.5t-385 -34.5t-385 34.5t-280 93.5t-103 128v170q119 -84 325 -127t443 -43zM768 0q237 0 443 43t325 127v-170q0 -69 -103 -128t-280 -93.5t-385 -34.5t-385 34.5t-280 93.5t-103 128v170q119 -84 325 -127 -t443 -43zM768 384q237 0 443 43t325 127v-170q0 -69 -103 -128t-280 -93.5t-385 -34.5t-385 34.5t-280 93.5t-103 128v170q119 -84 325 -127t443 -43zM768 1536q208 0 385 -34.5t280 -93.5t103 -128v-128q0 -69 -103 -128t-280 -93.5t-385 -34.5t-385 34.5t-280 93.5 -t-103 128v128q0 69 103 128t280 93.5t385 34.5z" /> - <glyph glyph-name="uniF1C1" unicode="&#xf1c1;" -d="M1468 1156q28 -28 48 -76t20 -88v-1152q0 -40 -28 -68t-68 -28h-1344q-40 0 -68 28t-28 68v1600q0 40 28 68t68 28h896q40 0 88 -20t76 -48zM1024 1400v-376h376q-10 29 -22 41l-313 313q-12 12 -41 22zM1408 -128v1024h-416q-40 0 -68 28t-28 68v416h-768v-1536h1280z -M894 465q33 -26 84 -56q59 7 117 7q147 0 177 -49q16 -22 2 -52q0 -1 -1 -2l-2 -2v-1q-6 -38 -71 -38q-48 0 -115 20t-130 53q-221 -24 -392 -83q-153 -262 -242 -262q-15 0 -28 7l-24 12q-1 1 -6 5q-10 10 -6 36q9 40 56 91.5t132 96.5q14 9 23 -6q2 -2 2 -4q52 85 107 197 -q68 136 104 262q-24 82 -30.5 159.5t6.5 127.5q11 40 42 40h21h1q23 0 35 -15q18 -21 9 -68q-2 -6 -4 -8q1 -3 1 -8v-30q-2 -123 -14 -192q55 -164 146 -238zM318 54q52 24 137 158q-51 -40 -87.5 -84t-49.5 -74zM716 974q-15 -42 -2 -132q1 7 7 44q0 3 7 43q1 4 4 8 -q-1 1 -1 2q-1 2 -1 3q-1 22 -13 36q0 -1 -1 -2v-2zM592 313q135 54 284 81q-2 1 -13 9.5t-16 13.5q-76 67 -127 176q-27 -86 -83 -197q-30 -56 -45 -83zM1238 329q-24 24 -140 24q76 -28 124 -28q14 0 18 1q0 1 -2 3z" /> - <glyph glyph-name="_422" unicode="&#xf1c2;" -d="M1468 1156q28 -28 48 -76t20 -88v-1152q0 -40 -28 -68t-68 -28h-1344q-40 0 -68 28t-28 68v1600q0 40 28 68t68 28h896q40 0 88 -20t76 -48zM1024 1400v-376h376q-10 29 -22 41l-313 313q-12 12 -41 22zM1408 -128v1024h-416q-40 0 -68 28t-28 68v416h-768v-1536h1280z -M233 768v-107h70l164 -661h159l128 485q7 20 10 46q2 16 2 24h4l3 -24q1 -3 3.5 -20t5.5 -26l128 -485h159l164 661h70v107h-300v-107h90l-99 -438q-5 -20 -7 -46l-2 -21h-4q0 3 -0.5 6.5t-1.5 8t-1 6.5q-1 5 -4 21t-5 25l-144 545h-114l-144 -545q-2 -9 -4.5 -24.5 -t-3.5 -21.5l-4 -21h-4l-2 21q-2 26 -7 46l-99 438h90v107h-300z" /> - <glyph glyph-name="_423" unicode="&#xf1c3;" -d="M1468 1156q28 -28 48 -76t20 -88v-1152q0 -40 -28 -68t-68 -28h-1344q-40 0 -68 28t-28 68v1600q0 40 28 68t68 28h896q40 0 88 -20t76 -48zM1024 1400v-376h376q-10 29 -22 41l-313 313q-12 12 -41 22zM1408 -128v1024h-416q-40 0 -68 28t-28 68v416h-768v-1536h1280z -M429 106v-106h281v106h-75l103 161q5 7 10 16.5t7.5 13.5t3.5 4h2q1 -4 5 -10q2 -4 4.5 -7.5t6 -8t6.5 -8.5l107 -161h-76v-106h291v106h-68l-192 273l195 282h67v107h-279v-107h74l-103 -159q-4 -7 -10 -16.5t-9 -13.5l-2 -3h-2q-1 4 -5 10q-6 11 -17 23l-106 159h76v107 -h-290v-107h68l189 -272l-194 -283h-68z" /> - <glyph glyph-name="_424" unicode="&#xf1c4;" -d="M1468 1156q28 -28 48 -76t20 -88v-1152q0 -40 -28 -68t-68 -28h-1344q-40 0 -68 28t-28 68v1600q0 40 28 68t68 28h896q40 0 88 -20t76 -48zM1024 1400v-376h376q-10 29 -22 41l-313 313q-12 12 -41 22zM1408 -128v1024h-416q-40 0 -68 28t-28 68v416h-768v-1536h1280z -M416 106v-106h327v106h-93v167h137q76 0 118 15q67 23 106.5 87t39.5 146q0 81 -37 141t-100 87q-48 19 -130 19h-368v-107h92v-555h-92zM769 386h-119v268h120q52 0 83 -18q56 -33 56 -115q0 -89 -62 -120q-31 -15 -78 -15z" /> - <glyph glyph-name="_425" unicode="&#xf1c5;" -d="M1468 1156q28 -28 48 -76t20 -88v-1152q0 -40 -28 -68t-68 -28h-1344q-40 0 -68 28t-28 68v1600q0 40 28 68t68 28h896q40 0 88 -20t76 -48zM1024 1400v-376h376q-10 29 -22 41l-313 313q-12 12 -41 22zM1408 -128v1024h-416q-40 0 -68 28t-28 68v416h-768v-1536h1280z -M1280 320v-320h-1024v192l192 192l128 -128l384 384zM448 512q-80 0 -136 56t-56 136t56 136t136 56t136 -56t56 -136t-56 -136t-136 -56z" /> - <glyph glyph-name="_426" unicode="&#xf1c6;" -d="M640 1152v128h-128v-128h128zM768 1024v128h-128v-128h128zM640 896v128h-128v-128h128zM768 768v128h-128v-128h128zM1468 1156q28 -28 48 -76t20 -88v-1152q0 -40 -28 -68t-68 -28h-1344q-40 0 -68 28t-28 68v1600q0 40 28 68t68 28h896q40 0 88 -20t76 -48zM1024 1400 -v-376h376q-10 29 -22 41l-313 313q-12 12 -41 22zM1408 -128v1024h-416q-40 0 -68 28t-28 68v416h-128v-128h-128v128h-512v-1536h1280zM781 593l107 -349q8 -27 8 -52q0 -83 -72.5 -137.5t-183.5 -54.5t-183.5 54.5t-72.5 137.5q0 25 8 52q21 63 120 396v128h128v-128h79 -q22 0 39 -13t23 -34zM640 128q53 0 90.5 19t37.5 45t-37.5 45t-90.5 19t-90.5 -19t-37.5 -45t37.5 -45t90.5 -19z" /> - <glyph glyph-name="_427" unicode="&#xf1c7;" -d="M1468 1156q28 -28 48 -76t20 -88v-1152q0 -40 -28 -68t-68 -28h-1344q-40 0 -68 28t-28 68v1600q0 40 28 68t68 28h896q40 0 88 -20t76 -48zM1024 1400v-376h376q-10 29 -22 41l-313 313q-12 12 -41 22zM1408 -128v1024h-416q-40 0 -68 28t-28 68v416h-768v-1536h1280z -M620 686q20 -8 20 -30v-544q0 -22 -20 -30q-8 -2 -12 -2q-12 0 -23 9l-166 167h-131q-14 0 -23 9t-9 23v192q0 14 9 23t23 9h131l166 167q16 15 35 7zM1037 -3q31 0 50 24q129 159 129 363t-129 363q-16 21 -43 24t-47 -14q-21 -17 -23.5 -43.5t14.5 -47.5 -q100 -123 100 -282t-100 -282q-17 -21 -14.5 -47.5t23.5 -42.5q18 -15 40 -15zM826 145q27 0 47 20q87 93 87 219t-87 219q-18 19 -45 20t-46 -17t-20 -44.5t18 -46.5q52 -57 52 -131t-52 -131q-19 -20 -18 -46.5t20 -44.5q20 -17 44 -17z" /> - <glyph glyph-name="_428" unicode="&#xf1c8;" -d="M1468 1156q28 -28 48 -76t20 -88v-1152q0 -40 -28 -68t-68 -28h-1344q-40 0 -68 28t-28 68v1600q0 40 28 68t68 28h896q40 0 88 -20t76 -48zM1024 1400v-376h376q-10 29 -22 41l-313 313q-12 12 -41 22zM1408 -128v1024h-416q-40 0 -68 28t-28 68v416h-768v-1536h1280z -M768 768q52 0 90 -38t38 -90v-384q0 -52 -38 -90t-90 -38h-384q-52 0 -90 38t-38 90v384q0 52 38 90t90 38h384zM1260 766q20 -8 20 -30v-576q0 -22 -20 -30q-8 -2 -12 -2q-14 0 -23 9l-265 266v90l265 266q9 9 23 9q4 0 12 -2z" /> - <glyph glyph-name="_429" unicode="&#xf1c9;" -d="M1468 1156q28 -28 48 -76t20 -88v-1152q0 -40 -28 -68t-68 -28h-1344q-40 0 -68 28t-28 68v1600q0 40 28 68t68 28h896q40 0 88 -20t76 -48zM1024 1400v-376h376q-10 29 -22 41l-313 313q-12 12 -41 22zM1408 -128v1024h-416q-40 0 -68 28t-28 68v416h-768v-1536h1280z -M480 768q8 11 21 12.5t24 -6.5l51 -38q11 -8 12.5 -21t-6.5 -24l-182 -243l182 -243q8 -11 6.5 -24t-12.5 -21l-51 -38q-11 -8 -24 -6.5t-21 12.5l-226 301q-14 19 0 38zM1282 467q14 -19 0 -38l-226 -301q-8 -11 -21 -12.5t-24 6.5l-51 38q-11 8 -12.5 21t6.5 24l182 243 -l-182 243q-8 11 -6.5 24t12.5 21l51 38q11 8 24 6.5t21 -12.5zM662 6q-13 2 -20.5 13t-5.5 24l138 831q2 13 13 20.5t24 5.5l63 -10q13 -2 20.5 -13t5.5 -24l-138 -831q-2 -13 -13 -20.5t-24 -5.5z" /> - <glyph glyph-name="_430" unicode="&#xf1ca;" -d="M1497 709v-198q-101 -23 -198 -23q-65 -136 -165.5 -271t-181.5 -215.5t-128 -106.5q-80 -45 -162 3q-28 17 -60.5 43.5t-85 83.5t-102.5 128.5t-107.5 184t-105.5 244t-91.5 314.5t-70.5 390h283q26 -218 70 -398.5t104.5 -317t121.5 -235.5t140 -195q169 169 287 406 -q-142 72 -223 220t-81 333q0 192 104 314.5t284 122.5q178 0 273 -105.5t95 -297.5q0 -159 -58 -286q-7 -1 -19.5 -3t-46 -2t-63 6t-62 25.5t-50.5 51.5q31 103 31 184q0 87 -29 132t-79 45q-53 0 -85 -49.5t-32 -140.5q0 -186 105 -293.5t267 -107.5q62 0 121 14z" /> - <glyph glyph-name="_431" unicode="&#xf1cb;" horiz-adv-x="1792" -d="M216 367l603 -402v359l-334 223zM154 511l193 129l-193 129v-258zM973 -35l603 402l-269 180l-334 -223v-359zM896 458l272 182l-272 182l-272 -182zM485 733l334 223v359l-603 -402zM1445 640l193 -129v258zM1307 733l269 180l-603 402v-359zM1792 913v-546 -q0 -41 -34 -64l-819 -546q-21 -13 -43 -13t-43 13l-819 546q-34 23 -34 64v546q0 41 34 64l819 546q21 13 43 13t43 -13l819 -546q34 -23 34 -64z" /> - <glyph glyph-name="_432" unicode="&#xf1cc;" horiz-adv-x="2048" -d="M1800 764q111 -46 179.5 -145.5t68.5 -221.5q0 -164 -118 -280.5t-285 -116.5q-4 0 -11.5 0.5t-10.5 0.5h-1209h-1h-2h-5q-170 10 -288 125.5t-118 280.5q0 110 55 203t147 147q-12 39 -12 82q0 115 82 196t199 81q95 0 172 -58q75 154 222.5 248t326.5 94 -q166 0 306 -80.5t221.5 -218.5t81.5 -301q0 -6 -0.5 -18t-0.5 -18zM468 498q0 -122 84 -193t208 -71q137 0 240 99q-16 20 -47.5 56.5t-43.5 50.5q-67 -65 -144 -65q-55 0 -93.5 33.5t-38.5 87.5q0 53 38.5 87t91.5 34q44 0 84.5 -21t73 -55t65 -75t69 -82t77 -75t97 -55 -t121.5 -21q121 0 204.5 71.5t83.5 190.5q0 121 -84 192t-207 71q-143 0 -241 -97l93 -108q66 64 142 64q52 0 92 -33t40 -84q0 -57 -37 -91.5t-94 -34.5q-43 0 -82.5 21t-72 55t-65.5 75t-69.5 82t-77.5 75t-96.5 55t-118.5 21q-122 0 -207 -70.5t-85 -189.5z" /> - <glyph glyph-name="_433" unicode="&#xf1cd;" horiz-adv-x="1792" -d="M896 1536q182 0 348 -71t286 -191t191 -286t71 -348t-71 -348t-191 -286t-286 -191t-348 -71t-348 71t-286 191t-191 286t-71 348t71 348t191 286t286 191t348 71zM896 1408q-190 0 -361 -90l194 -194q82 28 167 28t167 -28l194 194q-171 90 -361 90zM218 279l194 194 -q-28 82 -28 167t28 167l-194 194q-90 -171 -90 -361t90 -361zM896 -128q190 0 361 90l-194 194q-82 -28 -167 -28t-167 28l-194 -194q171 -90 361 -90zM896 256q159 0 271.5 112.5t112.5 271.5t-112.5 271.5t-271.5 112.5t-271.5 -112.5t-112.5 -271.5t112.5 -271.5 -t271.5 -112.5zM1380 473l194 -194q90 171 90 361t-90 361l-194 -194q28 -82 28 -167t-28 -167z" /> - <glyph glyph-name="_434" unicode="&#xf1ce;" horiz-adv-x="1792" -d="M1760 640q0 -176 -68.5 -336t-184 -275.5t-275.5 -184t-336 -68.5t-336 68.5t-275.5 184t-184 275.5t-68.5 336q0 213 97 398.5t265 305.5t374 151v-228q-221 -45 -366.5 -221t-145.5 -406q0 -130 51 -248.5t136.5 -204t204 -136.5t248.5 -51t248.5 51t204 136.5 -t136.5 204t51 248.5q0 230 -145.5 406t-366.5 221v228q206 -31 374 -151t265 -305.5t97 -398.5z" /> - <glyph glyph-name="uniF1D0" unicode="&#xf1d0;" horiz-adv-x="1792" -d="M19 662q8 217 116 406t305 318h5q0 -1 -1 -3q-8 -8 -28 -33.5t-52 -76.5t-60 -110.5t-44.5 -135.5t-14 -150.5t39 -157.5t108.5 -154q50 -50 102 -69.5t90.5 -11.5t69.5 23.5t47 32.5l16 16q39 51 53 116.5t6.5 122.5t-21 107t-26.5 80l-14 29q-10 25 -30.5 49.5t-43 41 -t-43.5 29.5t-35 19l-13 6l104 115q39 -17 78 -52t59 -61l19 -27q1 48 -18.5 103.5t-40.5 87.5l-20 31l161 183l160 -181q-33 -46 -52.5 -102.5t-22.5 -90.5l-4 -33q22 37 61.5 72.5t67.5 52.5l28 17l103 -115q-44 -14 -85 -50t-60 -65l-19 -29q-31 -56 -48 -133.5t-7 -170 -t57 -156.5q33 -45 77.5 -60.5t85 -5.5t76 26.5t57.5 33.5l21 16q60 53 96.5 115t48.5 121.5t10 121.5t-18 118t-37 107.5t-45.5 93t-45 72t-34.5 47.5l-13 17q-14 13 -7 13l10 -3q40 -29 62.5 -46t62 -50t64 -58t58.5 -65t55.5 -77t45.5 -88t38 -103t23.5 -117t10.5 -136 -q3 -259 -108 -465t-312 -321t-456 -115q-185 0 -351 74t-283.5 198t-184 293t-60.5 353z" /> - <glyph glyph-name="uniF1D1" unicode="&#xf1d1;" horiz-adv-x="1792" -d="M874 -102v-66q-208 6 -385 109.5t-283 275.5l58 34q29 -49 73 -99l65 57q148 -168 368 -212l-17 -86q65 -12 121 -13zM276 428l-83 -28q22 -60 49 -112l-57 -33q-98 180 -98 385t98 385l57 -33q-30 -56 -49 -112l82 -28q-35 -100 -35 -212q0 -109 36 -212zM1528 251 -l58 -34q-106 -172 -283 -275.5t-385 -109.5v66q56 1 121 13l-17 86q220 44 368 212l65 -57q44 50 73 99zM1377 805l-233 -80q14 -42 14 -85t-14 -85l232 -80q-31 -92 -98 -169l-185 162q-57 -67 -147 -85l48 -241q-52 -10 -98 -10t-98 10l48 241q-90 18 -147 85l-185 -162 -q-67 77 -98 169l232 80q-14 42 -14 85t14 85l-233 80q33 93 99 169l185 -162q59 68 147 86l-48 240q44 10 98 10t98 -10l-48 -240q88 -18 147 -86l185 162q66 -76 99 -169zM874 1448v-66q-65 -2 -121 -13l17 -86q-220 -42 -368 -211l-65 56q-38 -42 -73 -98l-57 33 -q106 172 282 275.5t385 109.5zM1705 640q0 -205 -98 -385l-57 33q27 52 49 112l-83 28q36 103 36 212q0 112 -35 212l82 28q-19 56 -49 112l57 33q98 -180 98 -385zM1585 1063l-57 -33q-35 56 -73 98l-65 -56q-148 169 -368 211l17 86q-56 11 -121 13v66q209 -6 385 -109.5 -t282 -275.5zM1748 640q0 173 -67.5 331t-181.5 272t-272 181.5t-331 67.5t-331 -67.5t-272 -181.5t-181.5 -272t-67.5 -331t67.5 -331t181.5 -272t272 -181.5t331 -67.5t331 67.5t272 181.5t181.5 272t67.5 331zM1792 640q0 -182 -71 -348t-191 -286t-286 -191t-348 -71 -t-348 71t-286 191t-191 286t-71 348t71 348t191 286t286 191t348 71t348 -71t286 -191t191 -286t71 -348z" /> - <glyph glyph-name="uniF1D2" unicode="&#xf1d2;" -d="M582 228q0 -66 -93 -66q-107 0 -107 63q0 64 98 64q102 0 102 -61zM546 694q0 -85 -74 -85q-77 0 -77 84q0 90 77 90q36 0 55 -25.5t19 -63.5zM712 769v125q-78 -29 -135 -29q-50 29 -110 29q-86 0 -145 -57t-59 -143q0 -50 29.5 -102t73.5 -67v-3q-38 -17 -38 -85 -q0 -53 41 -77v-3q-113 -37 -113 -139q0 -45 20 -78.5t54 -51t72 -25.5t81 -8q224 0 224 188q0 67 -48 99t-126 46q-27 5 -51.5 20.5t-24.5 39.5q0 44 49 52q77 15 122 70t45 134q0 24 -10 52q37 9 49 13zM771 350h137q-2 27 -2 82v387q0 46 2 69h-137q3 -23 3 -71v-392 -q0 -50 -3 -75zM1280 366v121q-30 -21 -68 -21q-53 0 -53 82v225h52q9 0 26.5 -1t26.5 -1v117h-105q0 82 3 102h-140q4 -24 4 -55v-47h-60v-117q36 3 37 3q3 0 11 -0.5t12 -0.5v-2h-2v-217q0 -37 2.5 -64t11.5 -56.5t24.5 -48.5t43.5 -31t66 -12q64 0 108 24zM924 1072 -q0 36 -24 63.5t-60 27.5t-60.5 -27t-24.5 -64q0 -36 25 -62.5t60 -26.5t59.5 27t24.5 62zM1536 1120v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" /> - <glyph glyph-name="_438" unicode="&#xf1d3;" horiz-adv-x="1792" -d="M595 22q0 100 -165 100q-158 0 -158 -104q0 -101 172 -101q151 0 151 105zM536 777q0 61 -30 102t-89 41q-124 0 -124 -145q0 -135 124 -135q119 0 119 137zM805 1101v-202q-36 -12 -79 -22q16 -43 16 -84q0 -127 -73 -216.5t-197 -112.5q-40 -8 -59.5 -27t-19.5 -58 -q0 -31 22.5 -51.5t58 -32t78.5 -22t86 -25.5t78.5 -37.5t58 -64t22.5 -98.5q0 -304 -363 -304q-69 0 -130 12.5t-116 41t-87.5 82t-32.5 127.5q0 165 182 225v4q-67 41 -67 126q0 109 63 137v4q-72 24 -119.5 108.5t-47.5 165.5q0 139 95 231.5t235 92.5q96 0 178 -47 -q98 0 218 47zM1123 220h-222q4 45 4 134v609q0 94 -4 128h222q-4 -33 -4 -124v-613q0 -89 4 -134zM1724 442v-196q-71 -39 -174 -39q-62 0 -107 20t-70 50t-39.5 78t-18.5 92t-4 103v351h2v4q-7 0 -19 1t-18 1q-21 0 -59 -6v190h96v76q0 54 -6 89h227q-6 -41 -6 -165h171 -v-190q-15 0 -43.5 2t-42.5 2h-85v-365q0 -131 87 -131q61 0 109 33zM1148 1389q0 -58 -39 -101.5t-96 -43.5q-58 0 -98 43.5t-40 101.5q0 59 39.5 103t98.5 44q58 0 96.5 -44.5t38.5 -102.5z" /> - <glyph glyph-name="_439" unicode="&#xf1d4;" -d="M809 532l266 499h-112l-157 -312q-24 -48 -44 -92l-42 92l-155 312h-120l263 -493v-324h101v318zM1536 1120v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" /> - <glyph glyph-name="uniF1D5" unicode="&#xf1d5;" horiz-adv-x="1280" -d="M842 964q0 -80 -57 -136.5t-136 -56.5q-60 0 -111 35q-62 -67 -115 -146q-247 -371 -202 -859q1 -22 -12.5 -38.5t-34.5 -18.5h-5q-20 0 -35 13.5t-17 33.5q-14 126 -3.5 247.5t29.5 217t54 186t69 155.5t74 125q61 90 132 165q-16 35 -16 77q0 80 56.5 136.5t136.5 56.5 -t136.5 -56.5t56.5 -136.5zM1223 953q0 -158 -78 -292t-212.5 -212t-292.5 -78q-64 0 -131 14q-21 5 -32.5 23.5t-6.5 39.5q5 20 23 31.5t39 7.5q51 -13 108 -13q97 0 186 38t153 102t102 153t38 186t-38 186t-102 153t-153 102t-186 38t-186 -38t-153 -102t-102 -153 -t-38 -186q0 -114 52 -218q10 -20 3.5 -40t-25.5 -30t-39.5 -3t-30.5 26q-64 123 -64 265q0 119 46.5 227t124.5 186t186 124t226 46q158 0 292.5 -78t212.5 -212.5t78 -292.5z" /> - <glyph glyph-name="uniF1D6" unicode="&#xf1d6;" horiz-adv-x="1792" -d="M270 730q-8 19 -8 52q0 20 11 49t24 45q-1 22 7.5 53t22.5 43q0 139 92.5 288.5t217.5 209.5q139 66 324 66q133 0 266 -55q49 -21 90 -48t71 -56t55 -68t42 -74t32.5 -84.5t25.5 -89.5t22 -98l1 -5q55 -83 55 -150q0 -14 -9 -40t-9 -38q0 -1 1.5 -3.5t3.5 -5t2 -3.5 -q77 -114 120.5 -214.5t43.5 -208.5q0 -43 -19.5 -100t-55.5 -57q-9 0 -19.5 7.5t-19 17.5t-19 26t-16 26.5t-13.5 26t-9 17.5q-1 1 -3 1l-5 -4q-59 -154 -132 -223q20 -20 61.5 -38.5t69 -41.5t35.5 -65q-2 -4 -4 -16t-7 -18q-64 -97 -302 -97q-53 0 -110.5 9t-98 20 -t-104.5 30q-15 5 -23 7q-14 4 -46 4.5t-40 1.5q-41 -45 -127.5 -65t-168.5 -20q-35 0 -69 1.5t-93 9t-101 20.5t-74.5 40t-32.5 64q0 40 10 59.5t41 48.5q11 2 40.5 13t49.5 12q4 0 14 2q2 2 2 4l-2 3q-48 11 -108 105.5t-73 156.5l-5 3q-4 0 -12 -20q-18 -41 -54.5 -74.5 -t-77.5 -37.5h-1q-4 0 -6 4.5t-5 5.5q-23 54 -23 100q0 275 252 466z" /> - <glyph glyph-name="uniF1D7" unicode="&#xf1d7;" horiz-adv-x="2048" -d="M580 1075q0 41 -25 66t-66 25q-43 0 -76 -25.5t-33 -65.5q0 -39 33 -64.5t76 -25.5q41 0 66 24.5t25 65.5zM1323 568q0 28 -25.5 50t-65.5 22q-27 0 -49.5 -22.5t-22.5 -49.5q0 -28 22.5 -50.5t49.5 -22.5q40 0 65.5 22t25.5 51zM1087 1075q0 41 -24.5 66t-65.5 25 -q-43 0 -76 -25.5t-33 -65.5q0 -39 33 -64.5t76 -25.5q41 0 65.5 24.5t24.5 65.5zM1722 568q0 28 -26 50t-65 22q-27 0 -49.5 -22.5t-22.5 -49.5q0 -28 22.5 -50.5t49.5 -22.5q39 0 65 22t26 51zM1456 965q-31 4 -70 4q-169 0 -311 -77t-223.5 -208.5t-81.5 -287.5 -q0 -78 23 -152q-35 -3 -68 -3q-26 0 -50 1.5t-55 6.5t-44.5 7t-54.5 10.5t-50 10.5l-253 -127l72 218q-290 203 -290 490q0 169 97.5 311t264 223.5t363.5 81.5q176 0 332.5 -66t262 -182.5t136.5 -260.5zM2048 404q0 -117 -68.5 -223.5t-185.5 -193.5l55 -181l-199 109 -q-150 -37 -218 -37q-169 0 -311 70.5t-223.5 191.5t-81.5 264t81.5 264t223.5 191.5t311 70.5q161 0 303 -70.5t227.5 -192t85.5 -263.5z" /> - <glyph glyph-name="_443" unicode="&#xf1d8;" horiz-adv-x="1792" -d="M1764 1525q33 -24 27 -64l-256 -1536q-5 -29 -32 -45q-14 -8 -31 -8q-11 0 -24 5l-453 185l-242 -295q-18 -23 -49 -23q-13 0 -22 4q-19 7 -30.5 23.5t-11.5 36.5v349l864 1059l-1069 -925l-395 162q-37 14 -40 55q-2 40 32 59l1664 960q15 9 32 9q20 0 36 -11z" /> - <glyph glyph-name="_444" unicode="&#xf1d9;" horiz-adv-x="1792" -d="M1764 1525q33 -24 27 -64l-256 -1536q-5 -29 -32 -45q-14 -8 -31 -8q-11 0 -24 5l-527 215l-298 -327q-18 -21 -47 -21q-14 0 -23 4q-19 7 -30 23.5t-11 36.5v452l-472 193q-37 14 -40 55q-3 39 32 59l1664 960q35 21 68 -2zM1422 26l221 1323l-1434 -827l336 -137 -l863 639l-478 -797z" /> - <glyph glyph-name="_445" unicode="&#xf1da;" -d="M1536 640q0 -156 -61 -298t-164 -245t-245 -164t-298 -61q-172 0 -327 72.5t-264 204.5q-7 10 -6.5 22.5t8.5 20.5l137 138q10 9 25 9q16 -2 23 -12q73 -95 179 -147t225 -52q104 0 198.5 40.5t163.5 109.5t109.5 163.5t40.5 198.5t-40.5 198.5t-109.5 163.5 -t-163.5 109.5t-198.5 40.5q-98 0 -188 -35.5t-160 -101.5l137 -138q31 -30 14 -69q-17 -40 -59 -40h-448q-26 0 -45 19t-19 45v448q0 42 40 59q39 17 69 -14l130 -129q107 101 244.5 156.5t284.5 55.5q156 0 298 -61t245 -164t164 -245t61 -298zM896 928v-448q0 -14 -9 -23 -t-23 -9h-320q-14 0 -23 9t-9 23v64q0 14 9 23t23 9h224v352q0 14 9 23t23 9h64q14 0 23 -9t9 -23z" /> - <glyph glyph-name="_446" unicode="&#xf1db;" -d="M768 1280q-130 0 -248.5 -51t-204 -136.5t-136.5 -204t-51 -248.5t51 -248.5t136.5 -204t204 -136.5t248.5 -51t248.5 51t204 136.5t136.5 204t51 248.5t-51 248.5t-136.5 204t-204 136.5t-248.5 51zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103 -t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" /> - <glyph glyph-name="_447" unicode="&#xf1dc;" horiz-adv-x="1792" -d="M1682 -128q-44 0 -132.5 3.5t-133.5 3.5q-44 0 -132 -3.5t-132 -3.5q-24 0 -37 20.5t-13 45.5q0 31 17 46t39 17t51 7t45 15q33 21 33 140l-1 391q0 21 -1 31q-13 4 -50 4h-675q-38 0 -51 -4q-1 -10 -1 -31l-1 -371q0 -142 37 -164q16 -10 48 -13t57 -3.5t45 -15 -t20 -45.5q0 -26 -12.5 -48t-36.5 -22q-47 0 -139.5 3.5t-138.5 3.5q-43 0 -128 -3.5t-127 -3.5q-23 0 -35.5 21t-12.5 45q0 30 15.5 45t36 17.5t47.5 7.5t42 15q33 23 33 143l-1 57v813q0 3 0.5 26t0 36.5t-1.5 38.5t-3.5 42t-6.5 36.5t-11 31.5t-16 18q-15 10 -45 12t-53 2 -t-41 14t-18 45q0 26 12 48t36 22q46 0 138.5 -3.5t138.5 -3.5q42 0 126.5 3.5t126.5 3.5q25 0 37.5 -22t12.5 -48q0 -30 -17 -43.5t-38.5 -14.5t-49.5 -4t-43 -13q-35 -21 -35 -160l1 -320q0 -21 1 -32q13 -3 39 -3h699q25 0 38 3q1 11 1 32l1 320q0 139 -35 160 -q-18 11 -58.5 12.5t-66 13t-25.5 49.5q0 26 12.5 48t37.5 22q44 0 132 -3.5t132 -3.5q43 0 129 3.5t129 3.5q25 0 37.5 -22t12.5 -48q0 -30 -17.5 -44t-40 -14.5t-51.5 -3t-44 -12.5q-35 -23 -35 -161l1 -943q0 -119 34 -140q16 -10 46 -13.5t53.5 -4.5t41.5 -15.5t18 -44.5 -q0 -26 -12 -48t-36 -22z" /> - <glyph glyph-name="_448" unicode="&#xf1dd;" horiz-adv-x="1280" -d="M1278 1347v-73q0 -29 -18.5 -61t-42.5 -32q-50 0 -54 -1q-26 -6 -32 -31q-3 -11 -3 -64v-1152q0 -25 -18 -43t-43 -18h-108q-25 0 -43 18t-18 43v1218h-143v-1218q0 -25 -17.5 -43t-43.5 -18h-108q-26 0 -43.5 18t-17.5 43v496q-147 12 -245 59q-126 58 -192 179 -q-64 117 -64 259q0 166 88 286q88 118 209 159q111 37 417 37h479q25 0 43 -18t18 -43z" /> - <glyph glyph-name="_449" unicode="&#xf1de;" -d="M352 128v-128h-352v128h352zM704 256q26 0 45 -19t19 -45v-256q0 -26 -19 -45t-45 -19h-256q-26 0 -45 19t-19 45v256q0 26 19 45t45 19h256zM864 640v-128h-864v128h864zM224 1152v-128h-224v128h224zM1536 128v-128h-736v128h736zM576 1280q26 0 45 -19t19 -45v-256 -q0 -26 -19 -45t-45 -19h-256q-26 0 -45 19t-19 45v256q0 26 19 45t45 19h256zM1216 768q26 0 45 -19t19 -45v-256q0 -26 -19 -45t-45 -19h-256q-26 0 -45 19t-19 45v256q0 26 19 45t45 19h256zM1536 640v-128h-224v128h224zM1536 1152v-128h-864v128h864z" /> - <glyph glyph-name="uniF1E0" unicode="&#xf1e0;" -d="M1216 512q133 0 226.5 -93.5t93.5 -226.5t-93.5 -226.5t-226.5 -93.5t-226.5 93.5t-93.5 226.5q0 12 2 34l-360 180q-92 -86 -218 -86q-133 0 -226.5 93.5t-93.5 226.5t93.5 226.5t226.5 93.5q126 0 218 -86l360 180q-2 22 -2 34q0 133 93.5 226.5t226.5 93.5 -t226.5 -93.5t93.5 -226.5t-93.5 -226.5t-226.5 -93.5q-126 0 -218 86l-360 -180q2 -22 2 -34t-2 -34l360 -180q92 86 218 86z" /> - <glyph glyph-name="_451" unicode="&#xf1e1;" -d="M1280 341q0 88 -62.5 151t-150.5 63q-84 0 -145 -58l-241 120q2 16 2 23t-2 23l241 120q61 -58 145 -58q88 0 150.5 63t62.5 151t-62.5 150.5t-150.5 62.5t-151 -62.5t-63 -150.5q0 -7 2 -23l-241 -120q-62 57 -145 57q-88 0 -150.5 -62.5t-62.5 -150.5t62.5 -150.5 -t150.5 -62.5q83 0 145 57l241 -120q-2 -16 -2 -23q0 -88 63 -150.5t151 -62.5t150.5 62.5t62.5 150.5zM1536 1120v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" /> - <glyph glyph-name="_452" unicode="&#xf1e2;" horiz-adv-x="1792" -d="M571 947q-10 25 -34 35t-49 0q-108 -44 -191 -127t-127 -191q-10 -25 0 -49t35 -34q13 -5 24 -5q42 0 60 40q34 84 98.5 148.5t148.5 98.5q25 11 35 35t0 49zM1513 1303l46 -46l-244 -243l68 -68q19 -19 19 -45.5t-19 -45.5l-64 -64q89 -161 89 -343q0 -143 -55.5 -273.5 -t-150 -225t-225 -150t-273.5 -55.5t-273.5 55.5t-225 150t-150 225t-55.5 273.5t55.5 273.5t150 225t225 150t273.5 55.5q182 0 343 -89l64 64q19 19 45.5 19t45.5 -19l68 -68zM1521 1359q-10 -10 -22 -10q-13 0 -23 10l-91 90q-9 10 -9 23t9 23q10 9 23 9t23 -9l90 -91 -q10 -9 10 -22.5t-10 -22.5zM1751 1129q-11 -9 -23 -9t-23 9l-90 91q-10 9 -10 22.5t10 22.5q9 10 22.5 10t22.5 -10l91 -90q9 -10 9 -23t-9 -23zM1792 1312q0 -14 -9 -23t-23 -9h-96q-14 0 -23 9t-9 23t9 23t23 9h96q14 0 23 -9t9 -23zM1600 1504v-96q0 -14 -9 -23t-23 -9 -t-23 9t-9 23v96q0 14 9 23t23 9t23 -9t9 -23zM1751 1449l-91 -90q-10 -10 -22 -10q-13 0 -23 10q-10 9 -10 22.5t10 22.5l90 91q10 9 23 9t23 -9q9 -10 9 -23t-9 -23z" /> - <glyph glyph-name="_453" unicode="&#xf1e3;" horiz-adv-x="1792" -d="M609 720l287 208l287 -208l-109 -336h-355zM896 1536q182 0 348 -71t286 -191t191 -286t71 -348t-71 -348t-191 -286t-286 -191t-348 -71t-348 71t-286 191t-191 286t-71 348t71 348t191 286t286 191t348 71zM1515 186q149 203 149 454v3l-102 -89l-240 224l63 323 -l134 -12q-150 206 -389 282l53 -124l-287 -159l-287 159l53 124q-239 -76 -389 -282l135 12l62 -323l-240 -224l-102 89v-3q0 -251 149 -454l30 132l326 -40l139 -298l-116 -69q117 -39 240 -39t240 39l-116 69l139 298l326 40z" /> - <glyph glyph-name="_454" unicode="&#xf1e4;" horiz-adv-x="1792" -d="M448 224v-192q0 -14 -9 -23t-23 -9h-192q-14 0 -23 9t-9 23v192q0 14 9 23t23 9h192q14 0 23 -9t9 -23zM256 608v-192q0 -14 -9 -23t-23 -9h-192q-14 0 -23 9t-9 23v192q0 14 9 23t23 9h192q14 0 23 -9t9 -23zM832 224v-192q0 -14 -9 -23t-23 -9h-192q-14 0 -23 9t-9 23 -v192q0 14 9 23t23 9h192q14 0 23 -9t9 -23zM640 608v-192q0 -14 -9 -23t-23 -9h-192q-14 0 -23 9t-9 23v192q0 14 9 23t23 9h192q14 0 23 -9t9 -23zM66 768q-28 0 -47 19t-19 46v129h514v-129q0 -27 -19 -46t-46 -19h-383zM1216 224v-192q0 -14 -9 -23t-23 -9h-192 -q-14 0 -23 9t-9 23v192q0 14 9 23t23 9h192q14 0 23 -9t9 -23zM1024 608v-192q0 -14 -9 -23t-23 -9h-192q-14 0 -23 9t-9 23v192q0 14 9 23t23 9h192q14 0 23 -9t9 -23zM1600 224v-192q0 -14 -9 -23t-23 -9h-192q-14 0 -23 9t-9 23v192q0 14 9 23t23 9h192q14 0 23 -9t9 -23 -zM1408 608v-192q0 -14 -9 -23t-23 -9h-192q-14 0 -23 9t-9 23v192q0 14 9 23t23 9h192q14 0 23 -9t9 -23zM1792 1016v-13h-514v10q0 104 -382 102q-382 -1 -382 -102v-10h-514v13q0 17 8.5 43t34 64t65.5 75.5t110.5 76t160 67.5t224 47.5t293.5 18.5t293 -18.5t224 -47.5 -t160.5 -67.5t110.5 -76t65.5 -75.5t34 -64t8.5 -43zM1792 608v-192q0 -14 -9 -23t-23 -9h-192q-14 0 -23 9t-9 23v192q0 14 9 23t23 9h192q14 0 23 -9t9 -23zM1792 962v-129q0 -27 -19 -46t-46 -19h-384q-27 0 -46 19t-19 46v129h514z" /> - <glyph glyph-name="_455" unicode="&#xf1e5;" horiz-adv-x="1792" -d="M704 1216v-768q0 -26 -19 -45t-45 -19v-576q0 -26 -19 -45t-45 -19h-512q-26 0 -45 19t-19 45v512l249 873q7 23 31 23h424zM1024 1216v-704h-256v704h256zM1792 320v-512q0 -26 -19 -45t-45 -19h-512q-26 0 -45 19t-19 45v576q-26 0 -45 19t-19 45v768h424q24 0 31 -23z -M736 1504v-224h-352v224q0 14 9 23t23 9h288q14 0 23 -9t9 -23zM1408 1504v-224h-352v224q0 14 9 23t23 9h288q14 0 23 -9t9 -23z" /> - <glyph glyph-name="_456" unicode="&#xf1e6;" horiz-adv-x="1792" -d="M1755 1083q37 -38 37 -90.5t-37 -90.5l-401 -400l150 -150l-160 -160q-163 -163 -389.5 -186.5t-411.5 100.5l-362 -362h-181v181l362 362q-124 185 -100.5 411.5t186.5 389.5l160 160l150 -150l400 401q38 37 91 37t90 -37t37 -90.5t-37 -90.5l-400 -401l234 -234 -l401 400q38 37 91 37t90 -37z" /> - <glyph glyph-name="_457" unicode="&#xf1e7;" horiz-adv-x="1792" -d="M873 796q0 -83 -63.5 -142.5t-152.5 -59.5t-152.5 59.5t-63.5 142.5q0 84 63.5 143t152.5 59t152.5 -59t63.5 -143zM1375 796q0 -83 -63 -142.5t-153 -59.5q-89 0 -152.5 59.5t-63.5 142.5q0 84 63.5 143t152.5 59q90 0 153 -59t63 -143zM1600 616v667q0 87 -32 123.5 -t-111 36.5h-1112q-83 0 -112.5 -34t-29.5 -126v-673q43 -23 88.5 -40t81 -28t81 -18.5t71 -11t70 -4t58.5 -0.5t56.5 2t44.5 2q68 1 95 -27q6 -6 10 -9q26 -25 61 -51q7 91 118 87q5 0 36.5 -1.5t43 -2t45.5 -1t53 1t54.5 4.5t61 8.5t62 13.5t67 19.5t67.5 27t72 34.5z -M1763 621q-121 -149 -372 -252q84 -285 -23 -465q-66 -113 -183 -148q-104 -32 -182 15q-86 51 -82 164l-1 326v1q-8 2 -24.5 6t-23.5 5l-1 -338q4 -114 -83 -164q-79 -47 -183 -15q-117 36 -182 150q-105 180 -22 463q-251 103 -372 252q-25 37 -4 63t60 -1q4 -2 11.5 -7 -t10.5 -8v694q0 72 47 123t114 51h1257q67 0 114 -51t47 -123v-694l21 15q39 27 60 1t-4 -63z" /> - <glyph glyph-name="_458" unicode="&#xf1e8;" horiz-adv-x="1792" -d="M896 1102v-434h-145v434h145zM1294 1102v-434h-145v434h145zM1294 342l253 254v795h-1194v-1049h326v-217l217 217h398zM1692 1536v-1013l-434 -434h-326l-217 -217h-217v217h-398v1158l109 289h1483z" /> - <glyph glyph-name="_459" unicode="&#xf1e9;" -d="M773 217v-127q-1 -292 -6 -305q-12 -32 -51 -40q-54 -9 -181.5 38t-162.5 89q-13 15 -17 36q-1 12 4 26q4 10 34 47t181 216q1 0 60 70q15 19 39.5 24.5t49.5 -3.5q24 -10 37.5 -29t12.5 -42zM624 468q-3 -55 -52 -70l-120 -39q-275 -88 -292 -88q-35 2 -54 36 -q-12 25 -17 75q-8 76 1 166.5t30 124.5t56 32q13 0 202 -77q71 -29 115 -47l84 -34q23 -9 35.5 -30.5t11.5 -48.5zM1450 171q-7 -54 -91.5 -161t-135.5 -127q-37 -14 -63 7q-14 10 -184 287l-47 77q-14 21 -11.5 46t19.5 46q35 43 83 26q1 -1 119 -40q203 -66 242 -79.5 -t47 -20.5q28 -22 22 -61zM778 803q5 -102 -54 -122q-58 -17 -114 71l-378 598q-8 35 19 62q41 43 207.5 89.5t224.5 31.5q40 -10 49 -45q3 -18 22 -305.5t24 -379.5zM1440 695q3 -39 -26 -59q-15 -10 -329 -86q-67 -15 -91 -23l1 2q-23 -6 -46 4t-37 32q-30 47 0 87 -q1 1 75 102q125 171 150 204t34 39q28 19 65 2q48 -23 123 -133.5t81 -167.5v-3z" /> - <glyph glyph-name="_460" unicode="&#xf1ea;" horiz-adv-x="2048" -d="M1024 1024h-384v-384h384v384zM1152 384v-128h-640v128h640zM1152 1152v-640h-640v640h640zM1792 384v-128h-512v128h512zM1792 640v-128h-512v128h512zM1792 896v-128h-512v128h512zM1792 1152v-128h-512v128h512zM256 192v960h-128v-960q0 -26 19 -45t45 -19t45 19 -t19 45zM1920 192v1088h-1536v-1088q0 -33 -11 -64h1483q26 0 45 19t19 45zM2048 1408v-1216q0 -80 -56 -136t-136 -56h-1664q-80 0 -136 56t-56 136v1088h256v128h1792z" /> - <glyph glyph-name="_461" unicode="&#xf1eb;" horiz-adv-x="2048" -d="M1024 13q-20 0 -93 73.5t-73 93.5q0 32 62.5 54t103.5 22t103.5 -22t62.5 -54q0 -20 -73 -93.5t-93 -73.5zM1294 284q-2 0 -40 25t-101.5 50t-128.5 25t-128.5 -25t-101 -50t-40.5 -25q-18 0 -93.5 75t-75.5 93q0 13 10 23q78 77 196 121t233 44t233 -44t196 -121 -q10 -10 10 -23q0 -18 -75.5 -93t-93.5 -75zM1567 556q-11 0 -23 8q-136 105 -252 154.5t-268 49.5q-85 0 -170.5 -22t-149 -53t-113.5 -62t-79 -53t-31 -22q-17 0 -92 75t-75 93q0 12 10 22q132 132 320 205t380 73t380 -73t320 -205q10 -10 10 -22q0 -18 -75 -93t-92 -75z -M1838 827q-11 0 -22 9q-179 157 -371.5 236.5t-420.5 79.5t-420.5 -79.5t-371.5 -236.5q-11 -9 -22 -9q-17 0 -92.5 75t-75.5 93q0 13 10 23q187 186 445 288t527 102t527 -102t445 -288q10 -10 10 -23q0 -18 -75.5 -93t-92.5 -75z" /> - <glyph glyph-name="_462" unicode="&#xf1ec;" horiz-adv-x="1792" -d="M384 0q0 53 -37.5 90.5t-90.5 37.5t-90.5 -37.5t-37.5 -90.5t37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5zM768 0q0 53 -37.5 90.5t-90.5 37.5t-90.5 -37.5t-37.5 -90.5t37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5zM384 384q0 53 -37.5 90.5t-90.5 37.5t-90.5 -37.5 -t-37.5 -90.5t37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5zM1152 0q0 53 -37.5 90.5t-90.5 37.5t-90.5 -37.5t-37.5 -90.5t37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5zM768 384q0 53 -37.5 90.5t-90.5 37.5t-90.5 -37.5t-37.5 -90.5t37.5 -90.5t90.5 -37.5t90.5 37.5 -t37.5 90.5zM384 768q0 53 -37.5 90.5t-90.5 37.5t-90.5 -37.5t-37.5 -90.5t37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5zM1152 384q0 53 -37.5 90.5t-90.5 37.5t-90.5 -37.5t-37.5 -90.5t37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5zM768 768q0 53 -37.5 90.5t-90.5 37.5 -t-90.5 -37.5t-37.5 -90.5t37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5zM1536 0v384q0 52 -38 90t-90 38t-90 -38t-38 -90v-384q0 -52 38 -90t90 -38t90 38t38 90zM1152 768q0 53 -37.5 90.5t-90.5 37.5t-90.5 -37.5t-37.5 -90.5t37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5z -M1536 1088v256q0 26 -19 45t-45 19h-1280q-26 0 -45 -19t-19 -45v-256q0 -26 19 -45t45 -19h1280q26 0 45 19t19 45zM1536 768q0 53 -37.5 90.5t-90.5 37.5t-90.5 -37.5t-37.5 -90.5t37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5zM1664 1408v-1536q0 -52 -38 -90t-90 -38 -h-1408q-52 0 -90 38t-38 90v1536q0 52 38 90t90 38h1408q52 0 90 -38t38 -90z" /> - <glyph glyph-name="_463" unicode="&#xf1ed;" -d="M1519 890q18 -84 -4 -204q-87 -444 -565 -444h-44q-25 0 -44 -16.5t-24 -42.5l-4 -19l-55 -346l-2 -15q-5 -26 -24.5 -42.5t-44.5 -16.5h-251q-21 0 -33 15t-9 36q9 56 26.5 168t26.5 168t27 167.5t27 167.5q5 37 43 37h131q133 -2 236 21q175 39 287 144q102 95 155 246 -q24 70 35 133q1 6 2.5 7.5t3.5 1t6 -3.5q79 -59 98 -162zM1347 1172q0 -107 -46 -236q-80 -233 -302 -315q-113 -40 -252 -42q0 -1 -90 -1l-90 1q-100 0 -118 -96q-2 -8 -85 -530q-1 -10 -12 -10h-295q-22 0 -36.5 16.5t-11.5 38.5l232 1471q5 29 27.5 48t51.5 19h598 -q34 0 97.5 -13t111.5 -32q107 -41 163.5 -123t56.5 -196z" /> - <glyph glyph-name="_464" unicode="&#xf1ee;" horiz-adv-x="1792" -d="M441 864q33 0 52 -26q266 -364 362 -774h-446q-127 441 -367 749q-12 16 -3 33.5t29 17.5h373zM1000 507q-49 -199 -125 -393q-79 310 -256 594q40 221 44 449q211 -340 337 -650zM1099 1216q235 -324 384.5 -698.5t184.5 -773.5h-451q-41 665 -553 1472h435zM1792 640 -q0 -424 -101 -812q-67 560 -359 1083q-25 301 -106 584q-4 16 5.5 28.5t25.5 12.5h359q21 0 38.5 -13t22.5 -33q115 -409 115 -850z" /> - <glyph glyph-name="uniF1F0" unicode="&#xf1f0;" horiz-adv-x="2304" -d="M1975 546h-138q14 37 66 179l3 9q4 10 10 26t9 26l12 -55zM531 611l-58 295q-11 54 -75 54h-268l-2 -13q311 -79 403 -336zM710 960l-162 -438l-17 89q-26 70 -85 129.5t-131 88.5l135 -510h175l261 641h-176zM849 318h166l104 642h-166zM1617 944q-69 27 -149 27 -q-123 0 -201 -59t-79 -153q-1 -102 145 -174q48 -23 67 -41t19 -39q0 -30 -30 -46t-69 -16q-86 0 -156 33l-22 11l-23 -144q74 -34 185 -34q130 -1 208.5 59t80.5 160q0 106 -140 174q-49 25 -71 42t-22 38q0 22 24.5 38.5t70.5 16.5q70 1 124 -24l15 -8zM2042 960h-128 -q-65 0 -87 -54l-246 -588h174l35 96h212q5 -22 20 -96h154zM2304 1280v-1280q0 -52 -38 -90t-90 -38h-2048q-52 0 -90 38t-38 90v1280q0 52 38 90t90 38h2048q52 0 90 -38t38 -90z" /> - <glyph glyph-name="_466" unicode="&#xf1f1;" horiz-adv-x="2304" -d="M1119 1195q-128 85 -281 85q-103 0 -197.5 -40.5t-162.5 -108.5t-108.5 -162t-40.5 -197q0 -104 40.5 -198t108.5 -162t162 -108.5t198 -40.5q153 0 281 85q-131 107 -178 265.5t0.5 316.5t177.5 265zM1152 1171q-126 -99 -172 -249.5t-0.5 -300.5t172.5 -249 -q127 99 172.5 249t-0.5 300.5t-172 249.5zM1185 1195q130 -107 177.5 -265.5t0.5 -317t-178 -264.5q128 -85 281 -85q104 0 198 40.5t162 108.5t108.5 162t40.5 198q0 103 -40.5 197t-108.5 162t-162.5 108.5t-197.5 40.5q-153 0 -281 -85zM1926 473h7v3h-17v-3h7v-17h3v17z -M1955 456h4v20h-5l-6 -13l-6 13h-5v-20h3v15l6 -13h4l5 13v-15zM1947 16v-2h-2h-3v3h3h2v-1zM1947 7h3l-4 5h2l1 1q1 1 1 3t-1 3l-1 1h-3h-6v-13h3v5h1zM685 75q0 19 11 31t30 12q18 0 29 -12.5t11 -30.5q0 -19 -11 -31t-29 -12q-19 0 -30 12t-11 31zM1158 119q30 0 35 -32 -h-70q5 32 35 32zM1514 75q0 19 11 31t29 12t29.5 -12.5t11.5 -30.5q0 -19 -11 -31t-30 -12q-18 0 -29 12t-11 31zM1786 75q0 18 11.5 30.5t29.5 12.5t29.5 -12.5t11.5 -30.5q0 -19 -11.5 -31t-29.5 -12t-29.5 12.5t-11.5 30.5zM1944 3q-2 0 -4 1q-1 0 -3 2t-2 3q-1 2 -1 4 -q0 3 1 4q0 2 2 4l1 1q2 0 2 1q2 1 4 1q3 0 4 -1l4 -2l2 -4v-1q1 -2 1 -3l-1 -1v-3t-1 -1l-1 -2q-2 -2 -4 -2q-1 -1 -4 -1zM599 7h30v85q0 24 -14.5 38.5t-39.5 15.5q-32 0 -47 -24q-14 24 -45 24q-24 0 -39 -20v16h-30v-135h30v75q0 36 33 36q30 0 30 -36v-75h29v75 -q0 36 33 36q30 0 30 -36v-75zM765 7h29v68v67h-29v-16q-17 20 -43 20q-29 0 -48 -20t-19 -51t19 -51t48 -20q28 0 43 20v-17zM943 48q0 34 -47 40l-14 2q-23 4 -23 14q0 15 25 15q23 0 43 -11l12 24q-22 14 -55 14q-26 0 -41 -12t-15 -32q0 -33 47 -39l13 -2q24 -4 24 -14 -q0 -17 -31 -17q-25 0 -45 14l-13 -23q25 -17 58 -17q29 0 45.5 12t16.5 32zM1073 14l-8 25q-13 -7 -26 -7q-19 0 -19 22v61h48v27h-48v41h-30v-41h-28v-27h28v-61q0 -50 47 -50q21 0 36 10zM1159 146q-29 0 -48 -20t-19 -51q0 -32 19.5 -51.5t49.5 -19.5q33 0 55 19l-14 22 -q-18 -15 -39 -15q-34 0 -41 33h101v12q0 32 -18 51.5t-46 19.5zM1318 146q-23 0 -35 -20v16h-30v-135h30v76q0 35 29 35q10 0 18 -4l9 28q-9 4 -21 4zM1348 75q0 -31 19.5 -51t52.5 -20q29 0 48 16l-14 24q-18 -13 -35 -12q-18 0 -29.5 12t-11.5 31t11.5 31t29.5 12 -q19 0 35 -12l14 24q-20 16 -48 16q-33 0 -52.5 -20t-19.5 -51zM1593 7h30v68v67h-30v-16q-15 20 -42 20q-29 0 -48.5 -20t-19.5 -51t19.5 -51t48.5 -20q28 0 42 20v-17zM1726 146q-23 0 -35 -20v16h-29v-135h29v76q0 35 29 35q10 0 18 -4l9 28q-8 4 -21 4zM1866 7h29v68v122 -h-29v-71q-15 20 -43 20t-47.5 -20.5t-19.5 -50.5t19.5 -50.5t47.5 -20.5q29 0 43 20v-17zM1944 27l-2 -1h-3q-2 -1 -4 -3q-3 -1 -3 -4q-1 -2 -1 -6q0 -3 1 -5q0 -2 3 -4q2 -2 4 -3t5 -1q4 0 6 1q0 1 2 2l2 1q1 1 3 4q1 2 1 5q0 4 -1 6q-1 1 -3 4q0 1 -2 2l-2 1q-1 0 -3 0.5 -t-3 0.5zM2304 1280v-1280q0 -52 -38 -90t-90 -38h-2048q-52 0 -90 38t-38 90v1280q0 52 38 90t90 38h2048q52 0 90 -38t38 -90z" /> - <glyph glyph-name="_467" unicode="&#xf1f2;" horiz-adv-x="2304" -d="M313 759q0 -51 -36 -84q-29 -26 -89 -26h-17v220h17q61 0 89 -27q36 -31 36 -83zM2089 824q0 -52 -64 -52h-19v101h20q63 0 63 -49zM380 759q0 74 -50 120.5t-129 46.5h-95v-333h95q74 0 119 38q60 51 60 128zM410 593h65v333h-65v-333zM730 694q0 40 -20.5 62t-75.5 42 -q-29 10 -39.5 19t-10.5 23q0 16 13.5 26.5t34.5 10.5q29 0 53 -27l34 44q-41 37 -98 37q-44 0 -74 -27.5t-30 -67.5q0 -35 18 -55.5t64 -36.5q37 -13 45 -19q19 -12 19 -34q0 -20 -14 -33.5t-36 -13.5q-48 0 -71 44l-42 -40q44 -64 115 -64q51 0 83 30.5t32 79.5zM1008 604 -v77q-37 -37 -78 -37q-49 0 -80.5 32.5t-31.5 82.5q0 48 31.5 81.5t77.5 33.5q43 0 81 -38v77q-40 20 -80 20q-74 0 -125.5 -50.5t-51.5 -123.5t51 -123.5t125 -50.5q42 0 81 19zM2240 0v527q-65 -40 -144.5 -84t-237.5 -117t-329.5 -137.5t-417.5 -134.5t-504 -118h1569 -q26 0 45 19t19 45zM1389 757q0 75 -53 128t-128 53t-128 -53t-53 -128t53 -128t128 -53t128 53t53 128zM1541 584l144 342h-71l-90 -224l-89 224h-71l142 -342h35zM1714 593h184v56h-119v90h115v56h-115v74h119v57h-184v-333zM2105 593h80l-105 140q76 16 76 94q0 47 -31 73 -t-87 26h-97v-333h65v133h9zM2304 1274v-1268q0 -56 -38.5 -95t-93.5 -39h-2040q-55 0 -93.5 39t-38.5 95v1268q0 56 38.5 95t93.5 39h2040q55 0 93.5 -39t38.5 -95z" /> - <glyph glyph-name="f1f3" unicode="&#xf1f3;" horiz-adv-x="2304" -d="M119 854h89l-45 108zM740 328l74 79l-70 79h-163v-49h142v-55h-142v-54h159zM898 406l99 -110v217zM1186 453q0 33 -40 33h-84v-69h83q41 0 41 36zM1475 457q0 29 -42 29h-82v-61h81q43 0 43 32zM1197 923q0 29 -42 29h-82v-60h81q43 0 43 31zM1656 854h89l-44 108z -M699 1009v-271h-66v212l-94 -212h-57l-94 212v-212h-132l-25 60h-135l-25 -60h-70l116 271h96l110 -257v257h106l85 -184l77 184h108zM1255 453q0 -20 -5.5 -35t-14 -25t-22.5 -16.5t-26 -10t-31.5 -4.5t-31.5 -1t-32.5 0.5t-29.5 0.5v-91h-126l-80 90l-83 -90h-256v271h260 -l80 -89l82 89h207q109 0 109 -89zM964 794v-56h-217v271h217v-57h-152v-49h148v-55h-148v-54h152zM2304 235v-229q0 -55 -38.5 -94.5t-93.5 -39.5h-2040q-55 0 -93.5 39.5t-38.5 94.5v678h111l25 61h55l25 -61h218v46l19 -46h113l20 47v-47h541v99l10 1q10 0 10 -14v-86h279 -v23q23 -12 55 -18t52.5 -6.5t63 0.5t51.5 1l25 61h56l25 -61h227v58l34 -58h182v378h-180v-44l-25 44h-185v-44l-23 44h-249q-69 0 -109 -22v22h-172v-22q-24 22 -73 22h-628l-43 -97l-43 97h-198v-44l-22 44h-169l-78 -179v391q0 55 38.5 94.5t93.5 39.5h2040 -q55 0 93.5 -39.5t38.5 -94.5v-678h-120q-51 0 -81 -22v22h-177q-55 0 -78 -22v22h-316v-22q-31 22 -87 22h-209v-22q-23 22 -91 22h-234l-54 -58l-50 58h-349v-378h343l55 59l52 -59h211v89h21q59 0 90 13v-102h174v99h8q8 0 10 -2t2 -10v-87h529q57 0 88 24v-24h168 -q60 0 95 17zM1546 469q0 -23 -12 -43t-34 -29q25 -9 34 -26t9 -46v-54h-65v45q0 33 -12 43.5t-46 10.5h-69v-99h-65v271h154q48 0 77 -15t29 -58zM1269 936q0 -24 -12.5 -44t-33.5 -29q26 -9 34.5 -25.5t8.5 -46.5v-53h-65q0 9 0.5 26.5t0 25t-3 18.5t-8.5 16t-17.5 8.5 -t-29.5 3.5h-70v-98h-64v271l153 -1q49 0 78 -14.5t29 -57.5zM1798 327v-56h-216v271h216v-56h-151v-49h148v-55h-148v-54zM1372 1009v-271h-66v271h66zM2065 357q0 -86 -102 -86h-126v58h126q34 0 34 25q0 16 -17 21t-41.5 5t-49.5 3.5t-42 22.5t-17 55q0 39 26 60t66 21 -h130v-57h-119q-36 0 -36 -25q0 -16 17.5 -20.5t42 -4t49 -2.5t42 -21.5t17.5 -54.5zM2304 407v-101q-24 -35 -88 -35h-125v58h125q33 0 33 25q0 13 -12.5 19t-31 5.5t-40 2t-40 8t-31 24t-12.5 48.5q0 39 26.5 60t66.5 21h129v-57h-118q-36 0 -36 -25q0 -20 29 -22t68.5 -5 -t56.5 -26zM2139 1008v-270h-92l-122 203v-203h-132l-26 60h-134l-25 -60h-75q-129 0 -129 133q0 138 133 138h63v-59q-7 0 -28 1t-28.5 0.5t-23 -2t-21.5 -6.5t-14.5 -13.5t-11.5 -23t-3 -33.5q0 -38 13.5 -58t49.5 -20h29l92 213h97l109 -256v256h99l114 -188v188h66z" /> - <glyph glyph-name="_469" unicode="&#xf1f4;" horiz-adv-x="2304" -d="M745 630q0 -37 -25.5 -61.5t-62.5 -24.5q-29 0 -46.5 16t-17.5 44q0 37 25 62.5t62 25.5q28 0 46.5 -16.5t18.5 -45.5zM1530 779q0 -42 -22 -57t-66 -15l-32 -1l17 107q2 11 13 11h18q22 0 35 -2t25 -12.5t12 -30.5zM1881 630q0 -36 -25.5 -61t-61.5 -25q-29 0 -47 16 -t-18 44q0 37 25 62.5t62 25.5q28 0 46.5 -16.5t18.5 -45.5zM513 801q0 59 -38.5 85.5t-100.5 26.5h-160q-19 0 -21 -19l-65 -408q-1 -6 3 -11t10 -5h76q20 0 22 19l18 110q1 8 7 13t15 6.5t17 1.5t19 -1t14 -1q86 0 135 48.5t49 134.5zM822 489l41 261q1 6 -3 11t-10 5h-76 -q-14 0 -17 -33q-27 40 -95 40q-72 0 -122.5 -54t-50.5 -127q0 -59 34.5 -94t92.5 -35q28 0 58 12t48 32q-4 -12 -4 -21q0 -16 13 -16h69q19 0 22 19zM1269 752q0 5 -4 9.5t-9 4.5h-77q-11 0 -18 -10l-106 -156l-44 150q-5 16 -22 16h-75q-5 0 -9 -4.5t-4 -9.5q0 -2 19.5 -59 -t42 -123t23.5 -70q-82 -112 -82 -120q0 -13 13 -13h77q11 0 18 10l255 368q2 2 2 7zM1649 801q0 59 -38.5 85.5t-100.5 26.5h-159q-20 0 -22 -19l-65 -408q-1 -6 3 -11t10 -5h82q12 0 16 13l18 116q1 8 7 13t15 6.5t17 1.5t19 -1t14 -1q86 0 135 48.5t49 134.5zM1958 489 -l41 261q1 6 -3 11t-10 5h-76q-14 0 -17 -33q-26 40 -95 40q-72 0 -122.5 -54t-50.5 -127q0 -59 34.5 -94t92.5 -35q29 0 59 12t47 32q0 -1 -2 -9t-2 -12q0 -16 13 -16h69q19 0 22 19zM2176 898v1q0 14 -13 14h-74q-11 0 -13 -11l-65 -416l-1 -2q0 -5 4 -9.5t10 -4.5h66 -q19 0 21 19zM392 764q-5 -35 -26 -46t-60 -11l-33 -1l17 107q2 11 13 11h19q40 0 58 -11.5t12 -48.5zM2304 1280v-1280q0 -52 -38 -90t-90 -38h-2048q-52 0 -90 38t-38 90v1280q0 52 38 90t90 38h2048q52 0 90 -38t38 -90z" /> - <glyph glyph-name="_470" unicode="&#xf1f5;" horiz-adv-x="2304" -d="M1597 633q0 -69 -21 -106q-19 -35 -52 -35q-23 0 -41 9v224q29 30 57 30q57 0 57 -122zM2035 669h-110q6 98 56 98q51 0 54 -98zM476 534q0 59 -33 91.5t-101 57.5q-36 13 -52 24t-16 25q0 26 38 26q58 0 124 -33l18 112q-67 32 -149 32q-77 0 -123 -38q-48 -39 -48 -109 -q0 -58 32.5 -90.5t99.5 -56.5q39 -14 54.5 -25.5t15.5 -27.5q0 -31 -48 -31q-29 0 -70 12.5t-72 30.5l-18 -113q72 -41 168 -41q81 0 129 37q51 41 51 117zM771 749l19 111h-96v135l-129 -21l-18 -114l-46 -8l-17 -103h62v-219q0 -84 44 -120q38 -30 111 -30q32 0 79 11v118 -q-32 -7 -44 -7q-42 0 -42 50v197h77zM1087 724v139q-15 3 -28 3q-32 0 -55.5 -16t-33.5 -46l-10 56h-131v-471h150v306q26 31 82 31q16 0 26 -2zM1124 389h150v471h-150v-471zM1746 638q0 122 -45 179q-40 52 -111 52q-64 0 -117 -56l-8 47h-132v-645l150 25v151 -q36 -11 68 -11q83 0 134 56q61 65 61 202zM1278 986q0 33 -23 56t-56 23t-56 -23t-23 -56t23 -56.5t56 -23.5t56 23.5t23 56.5zM2176 629q0 113 -48 176q-50 64 -144 64q-96 0 -151.5 -66t-55.5 -180q0 -128 63 -188q55 -55 161 -55q101 0 160 40l-16 103q-57 -31 -128 -31 -q-43 0 -63 19q-23 19 -28 66h248q2 14 2 52zM2304 1280v-1280q0 -52 -38 -90t-90 -38h-2048q-52 0 -90 38t-38 90v1280q0 52 38 90t90 38h2048q52 0 90 -38t38 -90z" /> - <glyph glyph-name="_471" unicode="&#xf1f6;" horiz-adv-x="2048" -d="M1558 684q61 -356 298 -556q0 -52 -38 -90t-90 -38h-448q0 -106 -75 -181t-181 -75t-180.5 74.5t-75.5 180.5zM1024 -176q16 0 16 16t-16 16q-59 0 -101.5 42.5t-42.5 101.5q0 16 -16 16t-16 -16q0 -73 51.5 -124.5t124.5 -51.5zM2026 1424q8 -10 7.5 -23.5t-10.5 -22.5 -l-1872 -1622q-10 -8 -23.5 -7t-21.5 11l-84 96q-8 10 -7.5 23.5t10.5 21.5l186 161q-19 32 -19 66q50 42 91 88t85 119.5t74.5 158.5t50 206t19.5 260q0 152 117 282.5t307 158.5q-8 19 -8 39q0 40 28 68t68 28t68 -28t28 -68q0 -20 -8 -39q124 -18 219 -82.5t148 -157.5 -l418 363q10 8 23.5 7t21.5 -11z" /> - <glyph glyph-name="_472" unicode="&#xf1f7;" horiz-adv-x="2048" -d="M1040 -160q0 16 -16 16q-59 0 -101.5 42.5t-42.5 101.5q0 16 -16 16t-16 -16q0 -73 51.5 -124.5t124.5 -51.5q16 0 16 16zM503 315l877 760q-42 88 -132.5 146.5t-223.5 58.5q-93 0 -169.5 -31.5t-121.5 -80.5t-69 -103t-24 -105q0 -384 -137 -645zM1856 128 -q0 -52 -38 -90t-90 -38h-448q0 -106 -75 -181t-181 -75t-180.5 74.5t-75.5 180.5l149 129h757q-166 187 -227 459l111 97q61 -356 298 -556zM1942 1520l84 -96q8 -10 7.5 -23.5t-10.5 -22.5l-1872 -1622q-10 -8 -23.5 -7t-21.5 11l-84 96q-8 10 -7.5 23.5t10.5 21.5l186 161 -q-19 32 -19 66q50 42 91 88t85 119.5t74.5 158.5t50 206t19.5 260q0 152 117 282.5t307 158.5q-8 19 -8 39q0 40 28 68t68 28t68 -28t28 -68q0 -20 -8 -39q124 -18 219 -82.5t148 -157.5l418 363q10 8 23.5 7t21.5 -11z" /> - <glyph glyph-name="_473" unicode="&#xf1f8;" horiz-adv-x="1408" -d="M512 160v704q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23v-704q0 -14 9 -23t23 -9h64q14 0 23 9t9 23zM768 160v704q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23v-704q0 -14 9 -23t23 -9h64q14 0 23 9t9 23zM1024 160v704q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23v-704 -q0 -14 9 -23t23 -9h64q14 0 23 9t9 23zM480 1152h448l-48 117q-7 9 -17 11h-317q-10 -2 -17 -11zM1408 1120v-64q0 -14 -9 -23t-23 -9h-96v-948q0 -83 -47 -143.5t-113 -60.5h-832q-66 0 -113 58.5t-47 141.5v952h-96q-14 0 -23 9t-9 23v64q0 14 9 23t23 9h309l70 167 -q15 37 54 63t79 26h320q40 0 79 -26t54 -63l70 -167h309q14 0 23 -9t9 -23z" /> - <glyph glyph-name="_474" unicode="&#xf1f9;" -d="M1150 462v-109q0 -50 -36.5 -89t-94 -60.5t-118 -32.5t-117.5 -11q-205 0 -342.5 139t-137.5 346q0 203 136 339t339 136q34 0 75.5 -4.5t93 -18t92.5 -34t69 -56.5t28 -81v-109q0 -16 -16 -16h-118q-16 0 -16 16v70q0 43 -65.5 67.5t-137.5 24.5q-140 0 -228.5 -91.5 -t-88.5 -237.5q0 -151 91.5 -249.5t233.5 -98.5q68 0 138 24t70 66v70q0 7 4.5 11.5t10.5 4.5h119q6 0 11 -4.5t5 -11.5zM768 1280q-130 0 -248.5 -51t-204 -136.5t-136.5 -204t-51 -248.5t51 -248.5t136.5 -204t204 -136.5t248.5 -51t248.5 51t204 136.5t136.5 204t51 248.5 -t-51 248.5t-136.5 204t-204 136.5t-248.5 51zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" /> - <glyph glyph-name="_475" unicode="&#xf1fa;" -d="M972 761q0 108 -53.5 169t-147.5 61q-63 0 -124 -30.5t-110 -84.5t-79.5 -137t-30.5 -180q0 -112 53.5 -173t150.5 -61q96 0 176 66.5t122.5 166t42.5 203.5zM1536 640q0 -111 -37 -197t-98.5 -135t-131.5 -74.5t-145 -27.5q-6 0 -15.5 -0.5t-16.5 -0.5q-95 0 -142 53 -q-28 33 -33 83q-52 -66 -131.5 -110t-173.5 -44q-161 0 -249.5 95.5t-88.5 269.5q0 157 66 290t179 210.5t246 77.5q87 0 155 -35.5t106 -99.5l2 19l11 56q1 6 5.5 12t9.5 6h118q5 0 13 -11q5 -5 3 -16l-120 -614q-5 -24 -5 -48q0 -39 12.5 -52t44.5 -13q28 1 57 5.5t73 24 -t77 50t57 89.5t24 137q0 292 -174 466t-466 174q-130 0 -248.5 -51t-204 -136.5t-136.5 -204t-51 -248.5t51 -248.5t136.5 -204t204 -136.5t248.5 -51q228 0 405 144q11 9 24 8t21 -12l41 -49q8 -12 7 -24q-2 -13 -12 -22q-102 -83 -227.5 -128t-258.5 -45q-156 0 -298 61 -t-245 164t-164 245t-61 298t61 298t164 245t245 164t298 61q344 0 556 -212t212 -556z" /> - <glyph glyph-name="_476" unicode="&#xf1fb;" horiz-adv-x="1792" -d="M1698 1442q94 -94 94 -226.5t-94 -225.5l-225 -223l104 -104q10 -10 10 -23t-10 -23l-210 -210q-10 -10 -23 -10t-23 10l-105 105l-603 -603q-37 -37 -90 -37h-203l-256 -128l-64 64l128 256v203q0 53 37 90l603 603l-105 105q-10 10 -10 23t10 23l210 210q10 10 23 10 -t23 -10l104 -104l223 225q93 94 225.5 94t226.5 -94zM512 64l576 576l-192 192l-576 -576v-192h192z" /> - <glyph glyph-name="f1fc" unicode="&#xf1fc;" horiz-adv-x="1792" -d="M1615 1536q70 0 122.5 -46.5t52.5 -116.5q0 -63 -45 -151q-332 -629 -465 -752q-97 -91 -218 -91q-126 0 -216.5 92.5t-90.5 219.5q0 128 92 212l638 579q59 54 130 54zM706 502q39 -76 106.5 -130t150.5 -76l1 -71q4 -213 -129.5 -347t-348.5 -134q-123 0 -218 46.5 -t-152.5 127.5t-86.5 183t-29 220q7 -5 41 -30t62 -44.5t59 -36.5t46 -17q41 0 55 37q25 66 57.5 112.5t69.5 76t88 47.5t103 25.5t125 10.5z" /> - <glyph glyph-name="_478" unicode="&#xf1fd;" horiz-adv-x="1792" -d="M1792 128v-384h-1792v384q45 0 85 14t59 27.5t47 37.5q30 27 51.5 38t56.5 11q24 0 44 -7t31 -15t33 -27q29 -25 47 -38t58 -27t86 -14q45 0 85 14.5t58 27t48 37.5q21 19 32.5 27t31 15t43.5 7q35 0 56.5 -11t51.5 -38q28 -24 47 -37.5t59 -27.5t85 -14t85 14t59 27.5 -t47 37.5q30 27 51.5 38t56.5 11q34 0 55.5 -11t51.5 -38q28 -24 47 -37.5t59 -27.5t85 -14zM1792 448v-192q-24 0 -44 7t-31 15t-33 27q-29 25 -47 38t-58 27t-85 14q-46 0 -86 -14t-58 -27t-47 -38q-22 -19 -33 -27t-31 -15t-44 -7q-35 0 -56.5 11t-51.5 38q-29 25 -47 38 -t-58 27t-86 14q-45 0 -85 -14.5t-58 -27t-48 -37.5q-21 -19 -32.5 -27t-31 -15t-43.5 -7q-35 0 -56.5 11t-51.5 38q-28 24 -47 37.5t-59 27.5t-85 14q-46 0 -86 -14t-58 -27t-47 -38q-30 -27 -51.5 -38t-56.5 -11v192q0 80 56 136t136 56h64v448h256v-448h256v448h256v-448 -h256v448h256v-448h64q80 0 136 -56t56 -136zM512 1312q0 -77 -36 -118.5t-92 -41.5q-53 0 -90.5 37.5t-37.5 90.5q0 29 9.5 51t23.5 34t31 28t31 31.5t23.5 44.5t9.5 67q38 0 83 -74t45 -150zM1024 1312q0 -77 -36 -118.5t-92 -41.5q-53 0 -90.5 37.5t-37.5 90.5 -q0 29 9.5 51t23.5 34t31 28t31 31.5t23.5 44.5t9.5 67q38 0 83 -74t45 -150zM1536 1312q0 -77 -36 -118.5t-92 -41.5q-53 0 -90.5 37.5t-37.5 90.5q0 29 9.5 51t23.5 34t31 28t31 31.5t23.5 44.5t9.5 67q38 0 83 -74t45 -150z" /> - <glyph glyph-name="_479" unicode="&#xf1fe;" horiz-adv-x="2048" -d="M2048 0v-128h-2048v1536h128v-1408h1920zM1664 1024l256 -896h-1664v576l448 576l576 -576z" /> - <glyph glyph-name="_480" unicode="&#xf200;" horiz-adv-x="1792" -d="M768 646l546 -546q-106 -108 -247.5 -168t-298.5 -60q-209 0 -385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103v-762zM955 640h773q0 -157 -60 -298.5t-168 -247.5zM1664 768h-768v768q209 0 385.5 -103t279.5 -279.5t103 -385.5z" /> - <glyph glyph-name="_481" unicode="&#xf201;" horiz-adv-x="2048" -d="M2048 0v-128h-2048v1536h128v-1408h1920zM1920 1248v-435q0 -21 -19.5 -29.5t-35.5 7.5l-121 121l-633 -633q-10 -10 -23 -10t-23 10l-233 233l-416 -416l-192 192l585 585q10 10 23 10t23 -10l233 -233l464 464l-121 121q-16 16 -7.5 35.5t29.5 19.5h435q14 0 23 -9 -t9 -23z" /> - <glyph glyph-name="_482" unicode="&#xf202;" horiz-adv-x="1792" -d="M1292 832q0 -6 10 -41q10 -29 25 -49.5t41 -34t44 -20t55 -16.5q325 -91 325 -332q0 -146 -105.5 -242.5t-254.5 -96.5q-59 0 -111.5 18.5t-91.5 45.5t-77 74.5t-63 87.5t-53.5 103.5t-43.5 103t-39.5 106.5t-35.5 95q-32 81 -61.5 133.5t-73.5 96.5t-104 64t-142 20 -q-96 0 -183 -55.5t-138 -144.5t-51 -185q0 -160 106.5 -279.5t263.5 -119.5q177 0 258 95q56 63 83 116l84 -152q-15 -34 -44 -70l1 -1q-131 -152 -388 -152q-147 0 -269.5 79t-190.5 207.5t-68 274.5q0 105 43.5 206t116 176.5t172 121.5t204.5 46q87 0 159 -19t123.5 -50 -t95 -80t72.5 -99t58.5 -117t50.5 -124.5t50 -130.5t55 -127q96 -200 233 -200q81 0 138.5 48.5t57.5 128.5q0 42 -19 72t-50.5 46t-72.5 31.5t-84.5 27t-87.5 34t-81 52t-65 82t-39 122.5q-3 16 -3 33q0 110 87.5 192t198.5 78q78 -3 120.5 -14.5t90.5 -53.5h-1 -q12 -11 23 -24.5t26 -36t19 -27.5l-129 -99q-26 49 -54 70v1q-23 21 -97 21q-49 0 -84 -33t-35 -83z" /> - <glyph glyph-name="_483" unicode="&#xf203;" -d="M1432 484q0 173 -234 239q-35 10 -53 16.5t-38 25t-29 46.5q0 2 -2 8.5t-3 12t-1 7.5q0 36 24.5 59.5t60.5 23.5q54 0 71 -15h-1q20 -15 39 -51l93 71q-39 54 -49 64q-33 29 -67.5 39t-85.5 10q-80 0 -142 -57.5t-62 -137.5q0 -7 2 -23q16 -96 64.5 -140t148.5 -73 -q29 -8 49 -15.5t45 -21.5t38.5 -34.5t13.5 -46.5v-5q1 -58 -40.5 -93t-100.5 -35q-97 0 -167 144q-23 47 -51.5 121.5t-48 125.5t-54 110.5t-74 95.5t-103.5 60.5t-147 24.5q-101 0 -192 -56t-144 -148t-50 -192v-1q4 -108 50.5 -199t133.5 -147.5t196 -56.5q186 0 279 110 -q20 27 31 51l-60 109q-42 -80 -99 -116t-146 -36q-115 0 -191 87t-76 204q0 105 82 189t186 84q112 0 170 -53.5t104 -172.5q8 -21 25.5 -68.5t28.5 -76.5t31.5 -74.5t38.5 -74t45.5 -62.5t55.5 -53.5t66 -33t80 -13.5q107 0 183 69.5t76 174.5zM1536 1120v-960 -q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" /> - <glyph glyph-name="_484" unicode="&#xf204;" horiz-adv-x="2048" -d="M1152 640q0 104 -40.5 198.5t-109.5 163.5t-163.5 109.5t-198.5 40.5t-198.5 -40.5t-163.5 -109.5t-109.5 -163.5t-40.5 -198.5t40.5 -198.5t109.5 -163.5t163.5 -109.5t198.5 -40.5t198.5 40.5t163.5 109.5t109.5 163.5t40.5 198.5zM1920 640q0 104 -40.5 198.5 -t-109.5 163.5t-163.5 109.5t-198.5 40.5h-386q119 -90 188.5 -224t69.5 -288t-69.5 -288t-188.5 -224h386q104 0 198.5 40.5t163.5 109.5t109.5 163.5t40.5 198.5zM2048 640q0 -130 -51 -248.5t-136.5 -204t-204 -136.5t-248.5 -51h-768q-130 0 -248.5 51t-204 136.5 -t-136.5 204t-51 248.5t51 248.5t136.5 204t204 136.5t248.5 51h768q130 0 248.5 -51t204 -136.5t136.5 -204t51 -248.5z" /> - <glyph glyph-name="_485" unicode="&#xf205;" horiz-adv-x="2048" -d="M0 640q0 130 51 248.5t136.5 204t204 136.5t248.5 51h768q130 0 248.5 -51t204 -136.5t136.5 -204t51 -248.5t-51 -248.5t-136.5 -204t-204 -136.5t-248.5 -51h-768q-130 0 -248.5 51t-204 136.5t-136.5 204t-51 248.5zM1408 128q104 0 198.5 40.5t163.5 109.5 -t109.5 163.5t40.5 198.5t-40.5 198.5t-109.5 163.5t-163.5 109.5t-198.5 40.5t-198.5 -40.5t-163.5 -109.5t-109.5 -163.5t-40.5 -198.5t40.5 -198.5t109.5 -163.5t163.5 -109.5t198.5 -40.5z" /> - <glyph glyph-name="_486" unicode="&#xf206;" horiz-adv-x="2304" -d="M762 384h-314q-40 0 -57.5 35t6.5 67l188 251q-65 31 -137 31q-132 0 -226 -94t-94 -226t94 -226t226 -94q115 0 203 72.5t111 183.5zM576 512h186q-18 85 -75 148zM1056 512l288 384h-480l-99 -132q105 -103 126 -252h165zM2176 448q0 132 -94 226t-226 94 -q-60 0 -121 -24l174 -260q15 -23 10 -49t-27 -40q-15 -11 -36 -11q-35 0 -53 29l-174 260q-93 -95 -93 -225q0 -132 94 -226t226 -94t226 94t94 226zM2304 448q0 -185 -131.5 -316.5t-316.5 -131.5t-316.5 131.5t-131.5 316.5q0 97 39.5 183.5t109.5 149.5l-65 98l-353 -469 -q-18 -26 -51 -26h-197q-23 -164 -149 -274t-294 -110q-185 0 -316.5 131.5t-131.5 316.5t131.5 316.5t316.5 131.5q114 0 215 -55l137 183h-224q-26 0 -45 19t-19 45t19 45t45 19h384v-128h435l-85 128h-222q-26 0 -45 19t-19 45t19 45t45 19h256q33 0 53 -28l267 -400 -q91 44 192 44q185 0 316.5 -131.5t131.5 -316.5z" /> - <glyph glyph-name="_487" unicode="&#xf207;" -d="M384 320q0 53 -37.5 90.5t-90.5 37.5t-90.5 -37.5t-37.5 -90.5t37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5zM1408 320q0 53 -37.5 90.5t-90.5 37.5t-90.5 -37.5t-37.5 -90.5t37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5zM1362 716l-72 384q-5 23 -22.5 37.5t-40.5 14.5 -h-918q-23 0 -40.5 -14.5t-22.5 -37.5l-72 -384q-5 -30 14 -53t49 -23h1062q30 0 49 23t14 53zM1136 1328q0 20 -14 34t-34 14h-640q-20 0 -34 -14t-14 -34t14 -34t34 -14h640q20 0 34 14t14 34zM1536 603v-603h-128v-128q0 -53 -37.5 -90.5t-90.5 -37.5t-90.5 37.5 -t-37.5 90.5v128h-768v-128q0 -53 -37.5 -90.5t-90.5 -37.5t-90.5 37.5t-37.5 90.5v128h-128v603q0 112 25 223l103 454q9 78 97.5 137t230 89t312.5 30t312.5 -30t230 -89t97.5 -137l105 -454q23 -102 23 -223z" /> - <glyph glyph-name="_488" unicode="&#xf208;" horiz-adv-x="2048" -d="M1463 704q0 -35 -25 -60.5t-61 -25.5h-702q-36 0 -61 25.5t-25 60.5t25 60.5t61 25.5h702q36 0 61 -25.5t25 -60.5zM1677 704q0 86 -23 170h-982q-36 0 -61 25t-25 60q0 36 25 61t61 25h908q-88 143 -235 227t-320 84q-177 0 -327.5 -87.5t-238 -237.5t-87.5 -327 -q0 -86 23 -170h982q36 0 61 -25t25 -60q0 -36 -25 -61t-61 -25h-908q88 -143 235.5 -227t320.5 -84q132 0 253 51.5t208 139t139 208t52 253.5zM2048 959q0 -35 -25 -60t-61 -25h-131q17 -85 17 -170q0 -167 -65.5 -319.5t-175.5 -263t-262.5 -176t-319.5 -65.5 -q-246 0 -448.5 133t-301.5 350h-189q-36 0 -61 25t-25 61q0 35 25 60t61 25h132q-17 85 -17 170q0 167 65.5 319.5t175.5 263t262.5 176t320.5 65.5q245 0 447.5 -133t301.5 -350h188q36 0 61 -25t25 -61z" /> - <glyph glyph-name="_489" unicode="&#xf209;" horiz-adv-x="1280" -d="M953 1158l-114 -328l117 -21q165 451 165 518q0 56 -38 56q-57 0 -130 -225zM654 471l33 -88q37 42 71 67l-33 5.5t-38.5 7t-32.5 8.5zM362 1367q0 -98 159 -521q17 10 49 10q15 0 75 -5l-121 351q-75 220 -123 220q-19 0 -29 -17.5t-10 -37.5zM283 608q0 -36 51.5 -119 -t117.5 -153t100 -70q14 0 25.5 13t11.5 27q0 24 -32 102q-13 32 -32 72t-47.5 89t-61.5 81t-62 32q-20 0 -45.5 -27t-25.5 -47zM125 273q0 -41 25 -104q59 -145 183.5 -227t281.5 -82q227 0 382 170q152 169 152 427q0 43 -1 67t-11.5 62t-30.5 56q-56 49 -211.5 75.5 -t-270.5 26.5q-37 0 -49 -11q-12 -5 -12 -35q0 -34 21.5 -60t55.5 -40t77.5 -23.5t87.5 -11.5t85 -4t70 0h23q24 0 40 -19q15 -19 19 -55q-28 -28 -96 -54q-61 -22 -93 -46q-64 -46 -108.5 -114t-44.5 -137q0 -31 18.5 -88.5t18.5 -87.5l-3 -12q-4 -12 -4 -14 -q-137 10 -146 216q-8 -2 -41 -2q2 -7 2 -21q0 -53 -40.5 -89.5t-94.5 -36.5q-82 0 -166.5 78t-84.5 159q0 34 33 67q52 -64 60 -76q77 -104 133 -104q12 0 26.5 8.5t14.5 20.5q0 34 -87.5 145t-116.5 111q-43 0 -70 -44.5t-27 -90.5zM11 264q0 101 42.5 163t136.5 88 -q-28 74 -28 104q0 62 61 123t122 61q29 0 70 -15q-163 462 -163 567q0 80 41 130.5t119 50.5q131 0 325 -581q6 -17 8 -23q6 16 29 79.5t43.5 118.5t54 127.5t64.5 123t70.5 86.5t76.5 36q71 0 112 -49t41 -122q0 -108 -159 -550q61 -15 100.5 -46t58.5 -78t26 -93.5 -t7 -110.5q0 -150 -47 -280t-132 -225t-211 -150t-278 -55q-111 0 -223 42q-149 57 -258 191.5t-109 286.5z" /> - <glyph glyph-name="_490" unicode="&#xf20a;" horiz-adv-x="2048" -d="M785 528h207q-14 -158 -98.5 -248.5t-214.5 -90.5q-162 0 -254.5 116t-92.5 316q0 194 93 311.5t233 117.5q148 0 232 -87t97 -247h-203q-5 64 -35.5 99t-81.5 35q-57 0 -88.5 -60.5t-31.5 -177.5q0 -48 5 -84t18 -69.5t40 -51.5t66 -18q95 0 109 139zM1497 528h206 -q-14 -158 -98 -248.5t-214 -90.5q-162 0 -254.5 116t-92.5 316q0 194 93 311.5t233 117.5q148 0 232 -87t97 -247h-204q-4 64 -35 99t-81 35q-57 0 -88.5 -60.5t-31.5 -177.5q0 -48 5 -84t18 -69.5t39.5 -51.5t65.5 -18q49 0 76.5 38t33.5 101zM1856 647q0 207 -15.5 307 -t-60.5 161q-6 8 -13.5 14t-21.5 15t-16 11q-86 63 -697 63q-625 0 -710 -63q-5 -4 -17.5 -11.5t-21 -14t-14.5 -14.5q-45 -60 -60 -159.5t-15 -308.5q0 -208 15 -307.5t60 -160.5q6 -8 15 -15t20.5 -14t17.5 -12q44 -33 239.5 -49t470.5 -16q610 0 697 65q5 4 17 11t20.5 14 -t13.5 16q46 60 61 159t15 309zM2048 1408v-1536h-2048v1536h2048z" /> - <glyph glyph-name="_491" unicode="&#xf20b;" -d="M992 912v-496q0 -14 -9 -23t-23 -9h-160q-14 0 -23 9t-9 23v496q0 112 -80 192t-192 80h-272v-1152q0 -14 -9 -23t-23 -9h-160q-14 0 -23 9t-9 23v1344q0 14 9 23t23 9h464q135 0 249 -66.5t180.5 -180.5t66.5 -249zM1376 1376v-880q0 -135 -66.5 -249t-180.5 -180.5 -t-249 -66.5h-464q-14 0 -23 9t-9 23v960q0 14 9 23t23 9h160q14 0 23 -9t9 -23v-768h272q112 0 192 80t80 192v880q0 14 9 23t23 9h160q14 0 23 -9t9 -23z" /> - <glyph glyph-name="_492" unicode="&#xf20c;" -d="M1311 694v-114q0 -24 -13.5 -38t-37.5 -14h-202q-24 0 -38 14t-14 38v114q0 24 14 38t38 14h202q24 0 37.5 -14t13.5 -38zM821 464v250q0 53 -32.5 85.5t-85.5 32.5h-133q-68 0 -96 -52q-28 52 -96 52h-130q-53 0 -85.5 -32.5t-32.5 -85.5v-250q0 -22 21 -22h55 -q22 0 22 22v230q0 24 13.5 38t38.5 14h94q24 0 38 -14t14 -38v-230q0 -22 21 -22h54q22 0 22 22v230q0 24 14 38t38 14h97q24 0 37.5 -14t13.5 -38v-230q0 -22 22 -22h55q21 0 21 22zM1410 560v154q0 53 -33 85.5t-86 32.5h-264q-53 0 -86 -32.5t-33 -85.5v-410 -q0 -21 22 -21h55q21 0 21 21v180q31 -42 94 -42h191q53 0 86 32.5t33 85.5zM1536 1176v-1072q0 -96 -68 -164t-164 -68h-1072q-96 0 -164 68t-68 164v1072q0 96 68 164t164 68h1072q96 0 164 -68t68 -164z" /> - <glyph glyph-name="_493" unicode="&#xf20d;" -d="M915 450h-294l147 551zM1001 128h311l-324 1024h-440l-324 -1024h311l383 314zM1536 1120v-960q0 -118 -85 -203t-203 -85h-960q-118 0 -203 85t-85 203v960q0 118 85 203t203 85h960q118 0 203 -85t85 -203z" /> - <glyph glyph-name="_494" unicode="&#xf20e;" horiz-adv-x="2048" -d="M2048 641q0 -21 -13 -36.5t-33 -19.5l-205 -356q3 -9 3 -18q0 -20 -12.5 -35.5t-32.5 -19.5l-193 -337q3 -8 3 -16q0 -23 -16.5 -40t-40.5 -17q-25 0 -41 18h-400q-17 -20 -43 -20t-43 20h-399q-17 -20 -43 -20q-23 0 -40 16.5t-17 40.5q0 8 4 20l-193 335 -q-20 4 -32.5 19.5t-12.5 35.5q0 9 3 18l-206 356q-20 5 -32.5 20.5t-12.5 35.5q0 21 13.5 36.5t33.5 19.5l199 344q0 1 -0.5 3t-0.5 3q0 36 34 51l209 363q-4 10 -4 18q0 24 17 40.5t40 16.5q26 0 44 -21h396q16 21 43 21t43 -21h398q18 21 44 21q23 0 40 -16.5t17 -40.5 -q0 -6 -4 -18l207 -358q23 -1 39 -17.5t16 -38.5q0 -13 -7 -27l187 -324q19 -4 31.5 -19.5t12.5 -35.5zM1063 -158h389l-342 354h-143l-342 -354h360q18 16 39 16t39 -16zM112 654q1 -4 1 -13q0 -10 -2 -15l208 -360l15 -6l188 199v347l-187 194q-13 -8 -29 -10zM986 1438 -h-388l190 -200l554 200h-280q-16 -16 -38 -16t-38 16zM1689 226q1 6 5 11l-64 68l-17 -79h76zM1583 226l22 105l-252 266l-296 -307l63 -64h463zM1495 -142l16 28l65 310h-427l333 -343q8 4 13 5zM578 -158h5l342 354h-373v-335l4 -6q14 -5 22 -13zM552 226h402l64 66 -l-309 321l-157 -166v-221zM359 226h163v189l-168 -177q4 -8 5 -12zM358 1051q0 -1 0.5 -2t0.5 -2q0 -16 -8 -29l171 -177v269zM552 1121v-311l153 -157l297 314l-223 236zM556 1425l-4 -8v-264l205 74l-191 201q-6 -2 -10 -3zM1447 1438h-16l-621 -224l213 -225zM1023 946 -l-297 -315l311 -319l296 307zM688 634l-136 141v-284zM1038 270l-42 -44h85zM1374 618l238 -251l132 624l-3 5l-1 1zM1718 1018q-8 13 -8 29v2l-216 376q-5 1 -13 5l-437 -463l310 -327zM522 1142v223l-163 -282zM522 196h-163l163 -283v283zM1607 196l-48 -227l130 227h-82 -zM1729 266l207 361q-2 10 -2 14q0 1 3 16l-171 296l-129 -612l77 -82q5 3 15 7z" /> - <glyph glyph-name="f210" unicode="&#xf210;" -d="M0 856q0 131 91.5 226.5t222.5 95.5h742l352 358v-1470q0 -132 -91.5 -227t-222.5 -95h-780q-131 0 -222.5 95t-91.5 227v790zM1232 102l-176 180v425q0 46 -32 79t-78 33h-484q-46 0 -78 -33t-32 -79v-492q0 -46 32.5 -79.5t77.5 -33.5h770z" /> - <glyph glyph-name="_496" unicode="&#xf211;" -d="M934 1386q-317 -121 -556 -362.5t-358 -560.5q-20 89 -20 176q0 208 102.5 384.5t278.5 279t384 102.5q82 0 169 -19zM1203 1267q93 -65 164 -155q-389 -113 -674.5 -400.5t-396.5 -676.5q-93 72 -155 162q112 386 395 671t667 399zM470 -67q115 356 379.5 622t619.5 384 -q40 -92 54 -195q-292 -120 -516 -345t-343 -518q-103 14 -194 52zM1536 -125q-193 50 -367 115q-135 -84 -290 -107q109 205 274 370.5t369 275.5q-21 -152 -101 -284q65 -175 115 -370z" /> - <glyph glyph-name="f212" unicode="&#xf212;" horiz-adv-x="2048" -d="M1893 1144l155 -1272q-131 0 -257 57q-200 91 -393 91q-226 0 -374 -148q-148 148 -374 148q-193 0 -393 -91q-128 -57 -252 -57h-5l155 1272q224 127 482 127q233 0 387 -106q154 106 387 106q258 0 482 -127zM1398 157q129 0 232 -28.5t260 -93.5l-124 1021 -q-171 78 -368 78q-224 0 -374 -141q-150 141 -374 141q-197 0 -368 -78l-124 -1021q105 43 165.5 65t148.5 39.5t178 17.5q202 0 374 -108q172 108 374 108zM1438 191l-55 907q-211 -4 -359 -155q-152 155 -374 155q-176 0 -336 -66l-114 -941q124 51 228.5 76t221.5 25 -q209 0 374 -102q172 107 374 102z" /> - <glyph glyph-name="_498" unicode="&#xf213;" horiz-adv-x="2048" -d="M1500 165v733q0 21 -15 36t-35 15h-93q-20 0 -35 -15t-15 -36v-733q0 -20 15 -35t35 -15h93q20 0 35 15t15 35zM1216 165v531q0 20 -15 35t-35 15h-101q-20 0 -35 -15t-15 -35v-531q0 -20 15 -35t35 -15h101q20 0 35 15t15 35zM924 165v429q0 20 -15 35t-35 15h-101 -q-20 0 -35 -15t-15 -35v-429q0 -20 15 -35t35 -15h101q20 0 35 15t15 35zM632 165v362q0 20 -15 35t-35 15h-101q-20 0 -35 -15t-15 -35v-362q0 -20 15 -35t35 -15h101q20 0 35 15t15 35zM2048 311q0 -166 -118 -284t-284 -118h-1244q-166 0 -284 118t-118 284 -q0 116 63 214.5t168 148.5q-10 34 -10 73q0 113 80.5 193.5t193.5 80.5q102 0 180 -67q45 183 194 300t338 117q149 0 275 -73.5t199.5 -199.5t73.5 -275q0 -66 -14 -122q135 -33 221 -142.5t86 -247.5z" /> - <glyph glyph-name="_499" unicode="&#xf214;" -d="M0 1536h1536v-1392l-776 -338l-760 338v1392zM1436 209v926h-1336v-926l661 -294zM1436 1235v201h-1336v-201h1336zM181 937v-115h-37v115h37zM181 789v-115h-37v115h37zM181 641v-115h-37v115h37zM181 493v-115h-37v115h37zM181 345v-115h-37v115h37zM207 202l15 34 -l105 -47l-15 -33zM343 142l15 34l105 -46l-15 -34zM478 82l15 34l105 -46l-15 -34zM614 23l15 33l104 -46l-15 -34zM797 10l105 46l15 -33l-105 -47zM932 70l105 46l15 -34l-105 -46zM1068 130l105 46l15 -34l-105 -46zM1203 189l105 47l15 -34l-105 -46zM259 1389v-36h-114 -v36h114zM421 1389v-36h-115v36h115zM583 1389v-36h-115v36h115zM744 1389v-36h-114v36h114zM906 1389v-36h-114v36h114zM1068 1389v-36h-115v36h115zM1230 1389v-36h-115v36h115zM1391 1389v-36h-114v36h114zM181 1049v-79h-37v115h115v-36h-78zM421 1085v-36h-115v36h115z -M583 1085v-36h-115v36h115zM744 1085v-36h-114v36h114zM906 1085v-36h-114v36h114zM1068 1085v-36h-115v36h115zM1230 1085v-36h-115v36h115zM1355 970v79h-78v36h115v-115h-37zM1355 822v115h37v-115h-37zM1355 674v115h37v-115h-37zM1355 526v115h37v-115h-37zM1355 378 -v115h37v-115h-37zM1355 230v115h37v-115h-37zM760 265q-129 0 -221 91.5t-92 221.5q0 129 92 221t221 92q130 0 221.5 -92t91.5 -221q0 -130 -91.5 -221.5t-221.5 -91.5zM595 646q0 -36 19.5 -56.5t49.5 -25t64 -7t64 -2t49.5 -9t19.5 -30.5q0 -49 -112 -49q-97 0 -123 51 -h-3l-31 -63q67 -42 162 -42q29 0 56.5 5t55.5 16t45.5 33t17.5 53q0 46 -27.5 69.5t-67.5 27t-79.5 3t-67 5t-27.5 25.5q0 21 20.5 33t40.5 15t41 3q34 0 70.5 -11t51.5 -34h3l30 58q-3 1 -21 8.5t-22.5 9t-19.5 7t-22 7t-20 4.5t-24 4t-23 1q-29 0 -56.5 -5t-54 -16.5 -t-43 -34t-16.5 -53.5z" /> - <glyph glyph-name="_500" unicode="&#xf215;" horiz-adv-x="2048" -d="M863 504q0 112 -79.5 191.5t-191.5 79.5t-191 -79.5t-79 -191.5t79 -191t191 -79t191.5 79t79.5 191zM1726 505q0 112 -79 191t-191 79t-191.5 -79t-79.5 -191q0 -113 79.5 -192t191.5 -79t191 79.5t79 191.5zM2048 1314v-1348q0 -44 -31.5 -75.5t-76.5 -31.5h-1832 -q-45 0 -76.5 31.5t-31.5 75.5v1348q0 44 31.5 75.5t76.5 31.5h431q44 0 76 -31.5t32 -75.5v-161h754v161q0 44 32 75.5t76 31.5h431q45 0 76.5 -31.5t31.5 -75.5z" /> - <glyph glyph-name="_501" unicode="&#xf216;" horiz-adv-x="2048" -d="M1430 953zM1690 749q148 0 253 -98.5t105 -244.5q0 -157 -109 -261.5t-267 -104.5q-85 0 -162 27.5t-138 73.5t-118 106t-109 126t-103.5 132.5t-108.5 126.5t-117 106t-136 73.5t-159 27.5q-154 0 -251.5 -91.5t-97.5 -244.5q0 -157 104 -250t263 -93q100 0 208 37.5 -t193 98.5q5 4 21 18.5t30 24t22 9.5q14 0 24.5 -10.5t10.5 -24.5q0 -24 -60 -77q-101 -88 -234.5 -142t-260.5 -54q-133 0 -245.5 58t-180 165t-67.5 241q0 205 141.5 341t347.5 136q120 0 226.5 -43.5t185.5 -113t151.5 -153t139 -167.5t133.5 -153.5t149.5 -113 -t172.5 -43.5q102 0 168.5 61.5t66.5 162.5q0 95 -64.5 159t-159.5 64q-30 0 -81.5 -18.5t-68.5 -18.5q-20 0 -35.5 15t-15.5 35q0 18 8.5 57t8.5 59q0 159 -107.5 263t-266.5 104q-58 0 -111.5 -18.5t-84 -40.5t-55.5 -40.5t-33 -18.5q-15 0 -25.5 10.5t-10.5 25.5 -q0 19 25 46q59 67 147 103.5t182 36.5q191 0 318 -125.5t127 -315.5q0 -37 -4 -66q57 15 115 15z" /> - <glyph glyph-name="_502" unicode="&#xf217;" horiz-adv-x="1664" -d="M1216 832q0 26 -19 45t-45 19h-128v128q0 26 -19 45t-45 19t-45 -19t-19 -45v-128h-128q-26 0 -45 -19t-19 -45t19 -45t45 -19h128v-128q0 -26 19 -45t45 -19t45 19t19 45v128h128q26 0 45 19t19 45zM640 0q0 -53 -37.5 -90.5t-90.5 -37.5t-90.5 37.5t-37.5 90.5 -t37.5 90.5t90.5 37.5t90.5 -37.5t37.5 -90.5zM1536 0q0 -53 -37.5 -90.5t-90.5 -37.5t-90.5 37.5t-37.5 90.5t37.5 90.5t90.5 37.5t90.5 -37.5t37.5 -90.5zM1664 1088v-512q0 -24 -16 -42.5t-41 -21.5l-1044 -122q1 -7 4.5 -21.5t6 -26.5t2.5 -22q0 -16 -24 -64h920 -q26 0 45 -19t19 -45t-19 -45t-45 -19h-1024q-26 0 -45 19t-19 45q0 14 11 39.5t29.5 59.5t20.5 38l-177 823h-204q-26 0 -45 19t-19 45t19 45t45 19h256q16 0 28.5 -6.5t20 -15.5t13 -24.5t7.5 -26.5t5.5 -29.5t4.5 -25.5h1201q26 0 45 -19t19 -45z" /> - <glyph glyph-name="_503" unicode="&#xf218;" horiz-adv-x="1664" -d="M1280 832q0 26 -19 45t-45 19t-45 -19l-147 -146v293q0 26 -19 45t-45 19t-45 -19t-19 -45v-293l-147 146q-19 19 -45 19t-45 -19t-19 -45t19 -45l256 -256q19 -19 45 -19t45 19l256 256q19 19 19 45zM640 0q0 -53 -37.5 -90.5t-90.5 -37.5t-90.5 37.5t-37.5 90.5 -t37.5 90.5t90.5 37.5t90.5 -37.5t37.5 -90.5zM1536 0q0 -53 -37.5 -90.5t-90.5 -37.5t-90.5 37.5t-37.5 90.5t37.5 90.5t90.5 37.5t90.5 -37.5t37.5 -90.5zM1664 1088v-512q0 -24 -16 -42.5t-41 -21.5l-1044 -122q1 -7 4.5 -21.5t6 -26.5t2.5 -22q0 -16 -24 -64h920 -q26 0 45 -19t19 -45t-19 -45t-45 -19h-1024q-26 0 -45 19t-19 45q0 14 11 39.5t29.5 59.5t20.5 38l-177 823h-204q-26 0 -45 19t-19 45t19 45t45 19h256q16 0 28.5 -6.5t20 -15.5t13 -24.5t7.5 -26.5t5.5 -29.5t4.5 -25.5h1201q26 0 45 -19t19 -45z" /> - <glyph glyph-name="_504" unicode="&#xf219;" horiz-adv-x="2048" -d="M212 768l623 -665l-300 665h-323zM1024 -4l349 772h-698zM538 896l204 384h-262l-288 -384h346zM1213 103l623 665h-323zM683 896h682l-204 384h-274zM1510 896h346l-288 384h-262zM1651 1382l384 -512q14 -18 13 -41.5t-17 -40.5l-960 -1024q-18 -20 -47 -20t-47 20 -l-960 1024q-16 17 -17 40.5t13 41.5l384 512q18 26 51 26h1152q33 0 51 -26z" /> - <glyph glyph-name="_505" unicode="&#xf21a;" horiz-adv-x="2048" -d="M1811 -19q19 19 45 19t45 -19l128 -128l-90 -90l-83 83l-83 -83q-18 -19 -45 -19t-45 19l-83 83l-83 -83q-19 -19 -45 -19t-45 19l-83 83l-83 -83q-19 -19 -45 -19t-45 19l-83 83l-83 -83q-19 -19 -45 -19t-45 19l-83 83l-83 -83q-19 -19 -45 -19t-45 19l-83 83l-83 -83 -q-19 -19 -45 -19t-45 19l-83 83l-83 -83q-19 -19 -45 -19t-45 19l-128 128l90 90l83 -83l83 83q19 19 45 19t45 -19l83 -83l83 83q19 19 45 19t45 -19l83 -83l83 83q19 19 45 19t45 -19l83 -83l83 83q19 19 45 19t45 -19l83 -83l83 83q19 19 45 19t45 -19l83 -83l83 83 -q19 19 45 19t45 -19l83 -83zM237 19q-19 -19 -45 -19t-45 19l-128 128l90 90l83 -82l83 82q19 19 45 19t45 -19l83 -82l64 64v293l-210 314q-17 26 -7 56.5t40 40.5l177 58v299h128v128h256v128h256v-128h256v-128h128v-299l177 -58q30 -10 40 -40.5t-7 -56.5l-210 -314 -v-293l19 18q19 19 45 19t45 -19l83 -82l83 82q19 19 45 19t45 -19l128 -128l-90 -90l-83 83l-83 -83q-18 -19 -45 -19t-45 19l-83 83l-83 -83q-19 -19 -45 -19t-45 19l-83 83l-83 -83q-19 -19 -45 -19t-45 19l-83 83l-83 -83q-19 -19 -45 -19t-45 19l-83 83l-83 -83 -q-19 -19 -45 -19t-45 19l-83 83l-83 -83q-19 -19 -45 -19t-45 19l-83 83zM640 1152v-128l384 128l384 -128v128h-128v128h-512v-128h-128z" /> - <glyph glyph-name="_506" unicode="&#xf21b;" -d="M576 0l96 448l-96 128l-128 64zM832 0l128 640l-128 -64l-96 -128zM992 1010q-2 4 -4 6q-10 8 -96 8q-70 0 -167 -19q-7 -2 -21 -2t-21 2q-97 19 -167 19q-86 0 -96 -8q-2 -2 -4 -6q2 -18 4 -27q2 -3 7.5 -6.5t7.5 -10.5q2 -4 7.5 -20.5t7 -20.5t7.5 -17t8.5 -17t9 -14 -t12 -13.5t14 -9.5t17.5 -8t20.5 -4t24.5 -2q36 0 59 12.5t32.5 30t14.5 34.5t11.5 29.5t17.5 12.5h12q11 0 17.5 -12.5t11.5 -29.5t14.5 -34.5t32.5 -30t59 -12.5q13 0 24.5 2t20.5 4t17.5 8t14 9.5t12 13.5t9 14t8.5 17t7.5 17t7 20.5t7.5 20.5q2 7 7.5 10.5t7.5 6.5 -q2 9 4 27zM1408 131q0 -121 -73 -190t-194 -69h-874q-121 0 -194 69t-73 190q0 61 4.5 118t19 125.5t37.5 123.5t63.5 103.5t93.5 74.5l-90 220h214q-22 64 -22 128q0 12 2 32q-194 40 -194 96q0 57 210 99q17 62 51.5 134t70.5 114q32 37 76 37q30 0 84 -31t84 -31t84 31 -t84 31q44 0 76 -37q36 -42 70.5 -114t51.5 -134q210 -42 210 -99q0 -56 -194 -96q7 -81 -20 -160h214l-82 -225q63 -33 107.5 -96.5t65.5 -143.5t29 -151.5t8 -148.5z" /> - <glyph glyph-name="_507" unicode="&#xf21c;" horiz-adv-x="2304" -d="M2301 500q12 -103 -22 -198.5t-99 -163.5t-158.5 -106t-196.5 -31q-161 11 -279.5 125t-134.5 274q-12 111 27.5 210.5t118.5 170.5l-71 107q-96 -80 -151 -194t-55 -244q0 -27 -18.5 -46.5t-45.5 -19.5h-256h-69q-23 -164 -149 -274t-294 -110q-185 0 -316.5 131.5 -t-131.5 316.5t131.5 316.5t316.5 131.5q76 0 152 -27l24 45q-123 110 -304 110h-64q-26 0 -45 19t-19 45t19 45t45 19h128q78 0 145 -13.5t116.5 -38.5t71.5 -39.5t51 -36.5h512h115l-85 128h-222q-30 0 -49 22.5t-14 52.5q4 23 23 38t43 15h253q33 0 53 -28l70 -105 -l114 114q19 19 46 19h101q26 0 45 -19t19 -45v-128q0 -26 -19 -45t-45 -19h-179l115 -172q131 63 275 36q143 -26 244 -134.5t118 -253.5zM448 128q115 0 203 72.5t111 183.5h-314q-35 0 -55 31q-18 32 -1 63l147 277q-47 13 -91 13q-132 0 -226 -94t-94 -226t94 -226 -t226 -94zM1856 128q132 0 226 94t94 226t-94 226t-226 94q-60 0 -121 -24l174 -260q15 -23 10 -49t-27 -40q-15 -11 -36 -11q-35 0 -53 29l-174 260q-93 -95 -93 -225q0 -132 94 -226t226 -94z" /> - <glyph glyph-name="_508" unicode="&#xf21d;" -d="M1408 0q0 -63 -61.5 -113.5t-164 -81t-225 -46t-253.5 -15.5t-253.5 15.5t-225 46t-164 81t-61.5 113.5q0 49 33 88.5t91 66.5t118 44.5t131 29.5q26 5 48 -10.5t26 -41.5q5 -26 -10.5 -48t-41.5 -26q-58 -10 -106 -23.5t-76.5 -25.5t-48.5 -23.5t-27.5 -19.5t-8.5 -12 -q3 -11 27 -26.5t73 -33t114 -32.5t160.5 -25t201.5 -10t201.5 10t160.5 25t114 33t73 33.5t27 27.5q-1 4 -8.5 11t-27.5 19t-48.5 23.5t-76.5 25t-106 23.5q-26 4 -41.5 26t-10.5 48q4 26 26 41.5t48 10.5q71 -12 131 -29.5t118 -44.5t91 -66.5t33 -88.5zM1024 896v-384 -q0 -26 -19 -45t-45 -19h-64v-384q0 -26 -19 -45t-45 -19h-256q-26 0 -45 19t-19 45v384h-64q-26 0 -45 19t-19 45v384q0 53 37.5 90.5t90.5 37.5h384q53 0 90.5 -37.5t37.5 -90.5zM928 1280q0 -93 -65.5 -158.5t-158.5 -65.5t-158.5 65.5t-65.5 158.5t65.5 158.5t158.5 65.5 -t158.5 -65.5t65.5 -158.5z" /> - <glyph glyph-name="_509" unicode="&#xf21e;" horiz-adv-x="1792" -d="M1280 512h305q-5 -6 -10 -10.5t-9 -7.5l-3 -4l-623 -600q-18 -18 -44 -18t-44 18l-624 602q-5 2 -21 20h369q22 0 39.5 13.5t22.5 34.5l70 281l190 -667q6 -20 23 -33t39 -13q21 0 38 13t23 33l146 485l56 -112q18 -35 57 -35zM1792 940q0 -145 -103 -300h-369l-111 221 -q-8 17 -25.5 27t-36.5 8q-45 -5 -56 -46l-129 -430l-196 686q-6 20 -23.5 33t-39.5 13t-39 -13.5t-22 -34.5l-116 -464h-423q-103 155 -103 300q0 220 127 344t351 124q62 0 126.5 -21.5t120 -58t95.5 -68.5t76 -68q36 36 76 68t95.5 68.5t120 58t126.5 21.5q224 0 351 -124 -t127 -344z" /> - <glyph glyph-name="venus" unicode="&#xf221;" horiz-adv-x="1280" -d="M1152 960q0 -221 -147.5 -384.5t-364.5 -187.5v-260h224q14 0 23 -9t9 -23v-64q0 -14 -9 -23t-23 -9h-224v-224q0 -14 -9 -23t-23 -9h-64q-14 0 -23 9t-9 23v224h-224q-14 0 -23 9t-9 23v64q0 14 9 23t23 9h224v260q-150 16 -271.5 103t-186 224t-52.5 292 -q11 134 80.5 249t182 188t245.5 88q170 19 319 -54t236 -212t87 -306zM128 960q0 -185 131.5 -316.5t316.5 -131.5t316.5 131.5t131.5 316.5t-131.5 316.5t-316.5 131.5t-316.5 -131.5t-131.5 -316.5z" /> - <glyph glyph-name="_511" unicode="&#xf222;" -d="M1472 1408q26 0 45 -19t19 -45v-416q0 -14 -9 -23t-23 -9h-64q-14 0 -23 9t-9 23v262l-382 -383q126 -156 126 -359q0 -117 -45.5 -223.5t-123 -184t-184 -123t-223.5 -45.5t-223.5 45.5t-184 123t-123 184t-45.5 223.5t45.5 223.5t123 184t184 123t223.5 45.5 -q203 0 359 -126l382 382h-261q-14 0 -23 9t-9 23v64q0 14 9 23t23 9h416zM576 0q185 0 316.5 131.5t131.5 316.5t-131.5 316.5t-316.5 131.5t-316.5 -131.5t-131.5 -316.5t131.5 -316.5t316.5 -131.5z" /> - <glyph glyph-name="_512" unicode="&#xf223;" horiz-adv-x="1280" -d="M830 1220q145 -72 233.5 -210.5t88.5 -305.5q0 -221 -147.5 -384.5t-364.5 -187.5v-132h96q14 0 23 -9t9 -23v-64q0 -14 -9 -23t-23 -9h-96v-96q0 -14 -9 -23t-23 -9h-64q-14 0 -23 9t-9 23v96h-96q-14 0 -23 9t-9 23v64q0 14 9 23t23 9h96v132q-217 24 -364.5 187.5 -t-147.5 384.5q0 167 88.5 305.5t233.5 210.5q-165 96 -228 273q-6 16 3.5 29.5t26.5 13.5h69q21 0 29 -20q44 -106 140 -171t214 -65t214 65t140 171q8 20 37 20h61q17 0 26.5 -13.5t3.5 -29.5q-63 -177 -228 -273zM576 256q185 0 316.5 131.5t131.5 316.5t-131.5 316.5 -t-316.5 131.5t-316.5 -131.5t-131.5 -316.5t131.5 -316.5t316.5 -131.5z" /> - <glyph glyph-name="_513" unicode="&#xf224;" -d="M1024 1504q0 14 9 23t23 9h288q26 0 45 -19t19 -45v-288q0 -14 -9 -23t-23 -9h-64q-14 0 -23 9t-9 23v134l-254 -255q126 -158 126 -359q0 -221 -147.5 -384.5t-364.5 -187.5v-132h96q14 0 23 -9t9 -23v-64q0 -14 -9 -23t-23 -9h-96v-96q0 -14 -9 -23t-23 -9h-64 -q-14 0 -23 9t-9 23v96h-96q-14 0 -23 9t-9 23v64q0 14 9 23t23 9h96v132q-149 16 -270.5 103t-186.5 223.5t-53 291.5q16 204 160 353.5t347 172.5q118 14 228 -19t198 -103l255 254h-134q-14 0 -23 9t-9 23v64zM576 256q185 0 316.5 131.5t131.5 316.5t-131.5 316.5 -t-316.5 131.5t-316.5 -131.5t-131.5 -316.5t131.5 -316.5t316.5 -131.5z" /> - <glyph glyph-name="_514" unicode="&#xf225;" horiz-adv-x="1792" -d="M1280 1504q0 14 9 23t23 9h288q26 0 45 -19t19 -45v-288q0 -14 -9 -23t-23 -9h-64q-14 0 -23 9t-9 23v134l-254 -255q126 -158 126 -359q0 -221 -147.5 -384.5t-364.5 -187.5v-132h96q14 0 23 -9t9 -23v-64q0 -14 -9 -23t-23 -9h-96v-96q0 -14 -9 -23t-23 -9h-64 -q-14 0 -23 9t-9 23v96h-96q-14 0 -23 9t-9 23v64q0 14 9 23t23 9h96v132q-217 24 -364.5 187.5t-147.5 384.5q0 201 126 359l-52 53l-101 -111q-9 -10 -22 -10.5t-23 7.5l-48 44q-10 8 -10.5 21.5t8.5 23.5l105 115l-111 112v-134q0 -14 -9 -23t-23 -9h-64q-14 0 -23 9 -t-9 23v288q0 26 19 45t45 19h288q14 0 23 -9t9 -23v-64q0 -14 -9 -23t-23 -9h-133l106 -107l86 94q9 10 22 10.5t23 -7.5l48 -44q10 -8 10.5 -21.5t-8.5 -23.5l-90 -99l57 -56q158 126 359 126t359 -126l255 254h-134q-14 0 -23 9t-9 23v64zM832 256q185 0 316.5 131.5 -t131.5 316.5t-131.5 316.5t-316.5 131.5t-316.5 -131.5t-131.5 -316.5t131.5 -316.5t316.5 -131.5z" /> - <glyph glyph-name="_515" unicode="&#xf226;" horiz-adv-x="1792" -d="M1790 1007q12 -155 -52.5 -292t-186 -224t-271.5 -103v-260h224q14 0 23 -9t9 -23v-64q0 -14 -9 -23t-23 -9h-224v-224q0 -14 -9 -23t-23 -9h-64q-14 0 -23 9t-9 23v224h-512v-224q0 -14 -9 -23t-23 -9h-64q-14 0 -23 9t-9 23v224h-224q-14 0 -23 9t-9 23v64q0 14 9 23 -t23 9h224v260q-150 16 -271.5 103t-186 224t-52.5 292q17 206 164.5 356.5t352.5 169.5q206 21 377 -94q171 115 377 94q205 -19 352.5 -169.5t164.5 -356.5zM896 647q128 131 128 313t-128 313q-128 -131 -128 -313t128 -313zM576 512q115 0 218 57q-154 165 -154 391 -q0 224 154 391q-103 57 -218 57q-185 0 -316.5 -131.5t-131.5 -316.5t131.5 -316.5t316.5 -131.5zM1152 128v260q-137 15 -256 94q-119 -79 -256 -94v-260h512zM1216 512q185 0 316.5 131.5t131.5 316.5t-131.5 316.5t-316.5 131.5q-115 0 -218 -57q154 -167 154 -391 -q0 -226 -154 -391q103 -57 218 -57z" /> - <glyph glyph-name="_516" unicode="&#xf227;" horiz-adv-x="1920" -d="M1536 1120q0 14 9 23t23 9h288q26 0 45 -19t19 -45v-288q0 -14 -9 -23t-23 -9h-64q-14 0 -23 9t-9 23v134l-254 -255q76 -95 107.5 -214t9.5 -247q-31 -182 -166 -312t-318 -156q-210 -29 -384.5 80t-241.5 300q-117 6 -221 57.5t-177.5 133t-113.5 192.5t-32 230 -q9 135 78 252t182 191.5t248 89.5q118 14 227.5 -19t198.5 -103l255 254h-134q-14 0 -23 9t-9 23v64q0 14 9 23t23 9h288q26 0 45 -19t19 -45v-288q0 -14 -9 -23t-23 -9h-64q-14 0 -23 9t-9 23v134l-254 -255q59 -74 93 -169q182 -9 328 -124l255 254h-134q-14 0 -23 9 -t-9 23v64zM1024 704q0 20 -4 58q-162 -25 -271 -150t-109 -292q0 -20 4 -58q162 25 271 150t109 292zM128 704q0 -168 111 -294t276 -149q-3 29 -3 59q0 210 135 369.5t338 196.5q-53 120 -163.5 193t-245.5 73q-185 0 -316.5 -131.5t-131.5 -316.5zM1088 -128 -q185 0 316.5 131.5t131.5 316.5q0 168 -111 294t-276 149q3 -28 3 -59q0 -210 -135 -369.5t-338 -196.5q53 -120 163.5 -193t245.5 -73z" /> - <glyph glyph-name="_517" unicode="&#xf228;" horiz-adv-x="2048" -d="M1664 1504q0 14 9 23t23 9h288q26 0 45 -19t19 -45v-288q0 -14 -9 -23t-23 -9h-64q-14 0 -23 9t-9 23v134l-254 -255q76 -95 107.5 -214t9.5 -247q-32 -180 -164.5 -310t-313.5 -157q-223 -34 -409 90q-117 -78 -256 -93v-132h96q14 0 23 -9t9 -23v-64q0 -14 -9 -23 -t-23 -9h-96v-96q0 -14 -9 -23t-23 -9h-64q-14 0 -23 9t-9 23v96h-96q-14 0 -23 9t-9 23v64q0 14 9 23t23 9h96v132q-155 17 -279.5 109.5t-187 237.5t-39.5 307q25 187 159.5 322.5t320.5 164.5q224 34 410 -90q146 97 320 97q201 0 359 -126l255 254h-134q-14 0 -23 9 -t-9 23v64zM896 391q128 131 128 313t-128 313q-128 -131 -128 -313t128 -313zM128 704q0 -185 131.5 -316.5t316.5 -131.5q117 0 218 57q-154 167 -154 391t154 391q-101 57 -218 57q-185 0 -316.5 -131.5t-131.5 -316.5zM1216 256q185 0 316.5 131.5t131.5 316.5 -t-131.5 316.5t-316.5 131.5q-117 0 -218 -57q154 -167 154 -391t-154 -391q101 -57 218 -57z" /> - <glyph glyph-name="_518" unicode="&#xf229;" -d="M1472 1408q26 0 45 -19t19 -45v-416q0 -14 -9 -23t-23 -9h-64q-14 0 -23 9t-9 23v262l-213 -214l140 -140q9 -10 9 -23t-9 -22l-46 -46q-9 -9 -22 -9t-23 9l-140 141l-78 -79q126 -156 126 -359q0 -117 -45.5 -223.5t-123 -184t-184 -123t-223.5 -45.5t-223.5 45.5 -t-184 123t-123 184t-45.5 223.5t45.5 223.5t123 184t184 123t223.5 45.5q203 0 359 -126l78 78l-172 172q-9 10 -9 23t9 22l46 46q9 9 22 9t23 -9l172 -172l213 213h-261q-14 0 -23 9t-9 23v64q0 14 9 23t23 9h416zM576 0q185 0 316.5 131.5t131.5 316.5t-131.5 316.5 -t-316.5 131.5t-316.5 -131.5t-131.5 -316.5t131.5 -316.5t316.5 -131.5z" /> - <glyph glyph-name="_519" unicode="&#xf22a;" horiz-adv-x="1280" -d="M640 892q217 -24 364.5 -187.5t147.5 -384.5q0 -167 -87 -306t-236 -212t-319 -54q-133 15 -245.5 88t-182 188t-80.5 249q-12 155 52.5 292t186 224t271.5 103v132h-160q-14 0 -23 9t-9 23v64q0 14 9 23t23 9h160v165l-92 -92q-10 -9 -23 -9t-22 9l-46 46q-9 9 -9 22 -t9 23l202 201q19 19 45 19t45 -19l202 -201q9 -10 9 -23t-9 -22l-46 -46q-9 -9 -22 -9t-23 9l-92 92v-165h160q14 0 23 -9t9 -23v-64q0 -14 -9 -23t-23 -9h-160v-132zM576 -128q185 0 316.5 131.5t131.5 316.5t-131.5 316.5t-316.5 131.5t-316.5 -131.5t-131.5 -316.5 -t131.5 -316.5t316.5 -131.5z" /> - <glyph glyph-name="_520" unicode="&#xf22b;" horiz-adv-x="2048" -d="M1901 621q19 -19 19 -45t-19 -45l-294 -294q-9 -10 -22.5 -10t-22.5 10l-45 45q-10 9 -10 22.5t10 22.5l185 185h-294v-224q0 -14 -9 -23t-23 -9h-64q-14 0 -23 9t-9 23v224h-132q-24 -217 -187.5 -364.5t-384.5 -147.5q-167 0 -306 87t-212 236t-54 319q15 133 88 245.5 -t188 182t249 80.5q155 12 292 -52.5t224 -186t103 -271.5h132v224q0 14 9 23t23 9h64q14 0 23 -9t9 -23v-224h294l-185 185q-10 9 -10 22.5t10 22.5l45 45q9 10 22.5 10t22.5 -10zM576 128q185 0 316.5 131.5t131.5 316.5t-131.5 316.5t-316.5 131.5t-316.5 -131.5 -t-131.5 -316.5t131.5 -316.5t316.5 -131.5z" /> - <glyph glyph-name="_521" unicode="&#xf22c;" horiz-adv-x="1280" -d="M1152 960q0 -221 -147.5 -384.5t-364.5 -187.5v-612q0 -14 -9 -23t-23 -9h-64q-14 0 -23 9t-9 23v612q-217 24 -364.5 187.5t-147.5 384.5q0 117 45.5 223.5t123 184t184 123t223.5 45.5t223.5 -45.5t184 -123t123 -184t45.5 -223.5zM576 512q185 0 316.5 131.5 -t131.5 316.5t-131.5 316.5t-316.5 131.5t-316.5 -131.5t-131.5 -316.5t131.5 -316.5t316.5 -131.5z" /> - <glyph glyph-name="_522" unicode="&#xf22d;" horiz-adv-x="1280" -d="M1024 576q0 185 -131.5 316.5t-316.5 131.5t-316.5 -131.5t-131.5 -316.5t131.5 -316.5t316.5 -131.5t316.5 131.5t131.5 316.5zM1152 576q0 -117 -45.5 -223.5t-123 -184t-184 -123t-223.5 -45.5t-223.5 45.5t-184 123t-123 184t-45.5 223.5t45.5 223.5t123 184t184 123 -t223.5 45.5t223.5 -45.5t184 -123t123 -184t45.5 -223.5z" /> - <glyph glyph-name="_523" unicode="&#xf22e;" horiz-adv-x="1792" - /> - <glyph glyph-name="_524" unicode="&#xf22f;" horiz-adv-x="1792" - /> - <glyph glyph-name="_525" unicode="&#xf230;" -d="M1451 1408q35 0 60 -25t25 -60v-1366q0 -35 -25 -60t-60 -25h-391v595h199l30 232h-229v148q0 56 23.5 84t91.5 28l122 1v207q-63 9 -178 9q-136 0 -217.5 -80t-81.5 -226v-171h-200v-232h200v-595h-735q-35 0 -60 25t-25 60v1366q0 35 25 60t60 25h1366z" /> - <glyph glyph-name="_526" unicode="&#xf231;" horiz-adv-x="1280" -d="M0 939q0 108 37.5 203.5t103.5 166.5t152 123t185 78t202 26q158 0 294 -66.5t221 -193.5t85 -287q0 -96 -19 -188t-60 -177t-100 -149.5t-145 -103t-189 -38.5q-68 0 -135 32t-96 88q-10 -39 -28 -112.5t-23.5 -95t-20.5 -71t-26 -71t-32 -62.5t-46 -77.5t-62 -86.5 -l-14 -5l-9 10q-15 157 -15 188q0 92 21.5 206.5t66.5 287.5t52 203q-32 65 -32 169q0 83 52 156t132 73q61 0 95 -40.5t34 -102.5q0 -66 -44 -191t-44 -187q0 -63 45 -104.5t109 -41.5q55 0 102 25t78.5 68t56 95t38 110.5t20 111t6.5 99.5q0 173 -109.5 269.5t-285.5 96.5 -q-200 0 -334 -129.5t-134 -328.5q0 -44 12.5 -85t27 -65t27 -45.5t12.5 -30.5q0 -28 -15 -73t-37 -45q-2 0 -17 3q-51 15 -90.5 56t-61 94.5t-32.5 108t-11 106.5z" /> - <glyph glyph-name="_527" unicode="&#xf232;" -d="M985 562q13 0 97.5 -44t89.5 -53q2 -5 2 -15q0 -33 -17 -76q-16 -39 -71 -65.5t-102 -26.5q-57 0 -190 62q-98 45 -170 118t-148 185q-72 107 -71 194v8q3 91 74 158q24 22 52 22q6 0 18 -1.5t19 -1.5q19 0 26.5 -6.5t15.5 -27.5q8 -20 33 -88t25 -75q0 -21 -34.5 -57.5 -t-34.5 -46.5q0 -7 5 -15q34 -73 102 -137q56 -53 151 -101q12 -7 22 -7q15 0 54 48.5t52 48.5zM782 32q127 0 243.5 50t200.5 134t134 200.5t50 243.5t-50 243.5t-134 200.5t-200.5 134t-243.5 50t-243.5 -50t-200.5 -134t-134 -200.5t-50 -243.5q0 -203 120 -368l-79 -233 -l242 77q158 -104 345 -104zM782 1414q153 0 292.5 -60t240.5 -161t161 -240.5t60 -292.5t-60 -292.5t-161 -240.5t-240.5 -161t-292.5 -60q-195 0 -365 94l-417 -134l136 405q-108 178 -108 389q0 153 60 292.5t161 240.5t240.5 161t292.5 60z" /> - <glyph glyph-name="_528" unicode="&#xf233;" horiz-adv-x="1792" -d="M128 128h1024v128h-1024v-128zM128 640h1024v128h-1024v-128zM1696 192q0 40 -28 68t-68 28t-68 -28t-28 -68t28 -68t68 -28t68 28t28 68zM128 1152h1024v128h-1024v-128zM1696 704q0 40 -28 68t-68 28t-68 -28t-28 -68t28 -68t68 -28t68 28t28 68zM1696 1216 -q0 40 -28 68t-68 28t-68 -28t-28 -68t28 -68t68 -28t68 28t28 68zM1792 384v-384h-1792v384h1792zM1792 896v-384h-1792v384h1792zM1792 1408v-384h-1792v384h1792z" /> - <glyph glyph-name="_529" unicode="&#xf234;" horiz-adv-x="2048" -d="M704 640q-159 0 -271.5 112.5t-112.5 271.5t112.5 271.5t271.5 112.5t271.5 -112.5t112.5 -271.5t-112.5 -271.5t-271.5 -112.5zM1664 512h352q13 0 22.5 -9.5t9.5 -22.5v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-352v-352q0 -13 -9.5 -22.5t-22.5 -9.5h-192q-13 0 -22.5 9.5 -t-9.5 22.5v352h-352q-13 0 -22.5 9.5t-9.5 22.5v192q0 13 9.5 22.5t22.5 9.5h352v352q0 13 9.5 22.5t22.5 9.5h192q13 0 22.5 -9.5t9.5 -22.5v-352zM928 288q0 -52 38 -90t90 -38h256v-238q-68 -50 -171 -50h-874q-121 0 -194 69t-73 190q0 53 3.5 103.5t14 109t26.5 108.5 -t43 97.5t62 81t85.5 53.5t111.5 20q19 0 39 -17q79 -61 154.5 -91.5t164.5 -30.5t164.5 30.5t154.5 91.5q20 17 39 17q132 0 217 -96h-223q-52 0 -90 -38t-38 -90v-192z" /> - <glyph glyph-name="_530" unicode="&#xf235;" horiz-adv-x="2048" -d="M704 640q-159 0 -271.5 112.5t-112.5 271.5t112.5 271.5t271.5 112.5t271.5 -112.5t112.5 -271.5t-112.5 -271.5t-271.5 -112.5zM1781 320l249 -249q9 -9 9 -23q0 -13 -9 -22l-136 -136q-9 -9 -22 -9q-14 0 -23 9l-249 249l-249 -249q-9 -9 -23 -9q-13 0 -22 9l-136 136 -q-9 9 -9 22q0 14 9 23l249 249l-249 249q-9 9 -9 23q0 13 9 22l136 136q9 9 22 9q14 0 23 -9l249 -249l249 249q9 9 23 9q13 0 22 -9l136 -136q9 -9 9 -22q0 -14 -9 -23zM1283 320l-181 -181q-37 -37 -37 -91q0 -53 37 -90l83 -83q-21 -3 -44 -3h-874q-121 0 -194 69 -t-73 190q0 53 3.5 103.5t14 109t26.5 108.5t43 97.5t62 81t85.5 53.5t111.5 20q19 0 39 -17q154 -122 319 -122t319 122q20 17 39 17q28 0 57 -6q-28 -27 -41 -50t-13 -56q0 -54 37 -91z" /> - <glyph glyph-name="_531" unicode="&#xf236;" horiz-adv-x="2048" -d="M256 512h1728q26 0 45 -19t19 -45v-448h-256v256h-1536v-256h-256v1216q0 26 19 45t45 19h128q26 0 45 -19t19 -45v-704zM832 832q0 106 -75 181t-181 75t-181 -75t-75 -181t75 -181t181 -75t181 75t75 181zM2048 576v64q0 159 -112.5 271.5t-271.5 112.5h-704 -q-26 0 -45 -19t-19 -45v-384h1152z" /> - <glyph glyph-name="_532" unicode="&#xf237;" -d="M1536 1536l-192 -448h192v-192h-274l-55 -128h329v-192h-411l-357 -832l-357 832h-411v192h329l-55 128h-274v192h192l-192 448h256l323 -768h378l323 768h256zM768 320l108 256h-216z" /> - <glyph glyph-name="_533" unicode="&#xf238;" -d="M1088 1536q185 0 316.5 -93.5t131.5 -226.5v-896q0 -130 -125.5 -222t-305.5 -97l213 -202q16 -15 8 -35t-30 -20h-1056q-22 0 -30 20t8 35l213 202q-180 5 -305.5 97t-125.5 222v896q0 133 131.5 226.5t316.5 93.5h640zM768 192q80 0 136 56t56 136t-56 136t-136 56 -t-136 -56t-56 -136t56 -136t136 -56zM1344 768v512h-1152v-512h1152z" /> - <glyph glyph-name="_534" unicode="&#xf239;" -d="M1088 1536q185 0 316.5 -93.5t131.5 -226.5v-896q0 -130 -125.5 -222t-305.5 -97l213 -202q16 -15 8 -35t-30 -20h-1056q-22 0 -30 20t8 35l213 202q-180 5 -305.5 97t-125.5 222v896q0 133 131.5 226.5t316.5 93.5h640zM288 224q66 0 113 47t47 113t-47 113t-113 47 -t-113 -47t-47 -113t47 -113t113 -47zM704 768v512h-544v-512h544zM1248 224q66 0 113 47t47 113t-47 113t-113 47t-113 -47t-47 -113t47 -113t113 -47zM1408 768v512h-576v-512h576z" /> - <glyph glyph-name="_535" unicode="&#xf23a;" horiz-adv-x="1792" -d="M597 1115v-1173q0 -25 -12.5 -42.5t-36.5 -17.5q-17 0 -33 8l-465 233q-21 10 -35.5 33.5t-14.5 46.5v1140q0 20 10 34t29 14q14 0 44 -15l511 -256q3 -3 3 -5zM661 1014l534 -866l-534 266v600zM1792 996v-1054q0 -25 -14 -40.5t-38 -15.5t-47 13l-441 220zM1789 1116 -q0 -3 -256.5 -419.5t-300.5 -487.5l-390 634l324 527q17 28 52 28q14 0 26 -6l541 -270q4 -2 4 -6z" /> - <glyph glyph-name="_536" unicode="&#xf23b;" -d="M809 532l266 499h-112l-157 -312q-24 -48 -44 -92l-42 92l-155 312h-120l263 -493v-324h101v318zM1536 1408v-1536h-1536v1536h1536z" /> - <glyph glyph-name="_537" unicode="&#xf23c;" horiz-adv-x="2296" -d="M478 -139q-8 -16 -27 -34.5t-37 -25.5q-25 -9 -51.5 3.5t-28.5 31.5q-1 22 40 55t68 38q23 4 34 -21.5t2 -46.5zM1819 -139q7 -16 26 -34.5t38 -25.5q25 -9 51.5 3.5t27.5 31.5q2 22 -39.5 55t-68.5 38q-22 4 -33 -21.5t-2 -46.5zM1867 -30q13 -27 56.5 -59.5t77.5 -41.5 -q45 -13 82 4.5t37 50.5q0 46 -67.5 100.5t-115.5 59.5q-40 5 -63.5 -37.5t-6.5 -76.5zM428 -30q-13 -27 -56 -59.5t-77 -41.5q-45 -13 -82 4.5t-37 50.5q0 46 67.5 100.5t115.5 59.5q40 5 63 -37.5t6 -76.5zM1158 1094h1q-41 0 -76 -15q27 -8 44 -30.5t17 -49.5 -q0 -35 -27 -60t-65 -25q-52 0 -80 43q-5 -23 -5 -42q0 -74 56 -126.5t135 -52.5q80 0 136 52.5t56 126.5t-56 126.5t-136 52.5zM1462 1312q-99 109 -220.5 131.5t-245.5 -44.5q27 60 82.5 96.5t118 39.5t121.5 -17t99.5 -74.5t44.5 -131.5zM2212 73q8 -11 -11 -42 -q7 -23 7 -40q1 -56 -44.5 -112.5t-109.5 -91.5t-118 -37q-48 -2 -92 21.5t-66 65.5q-687 -25 -1259 0q-23 -41 -66.5 -65t-92.5 -22q-86 3 -179.5 80.5t-92.5 160.5q2 22 7 40q-19 31 -11 42q6 10 31 1q14 22 41 51q-7 29 2 38q11 10 39 -4q29 20 59 34q0 29 13 37 -q23 12 51 -16q35 5 61 -2q18 -4 38 -19v73q-11 0 -18 2q-53 10 -97 44.5t-55 87.5q-9 38 0 81q15 62 93 95q2 17 19 35.5t36 23.5t33 -7.5t19 -30.5h13q46 -5 60 -23q3 -3 5 -7q10 1 30.5 3.5t30.5 3.5q-15 11 -30 17q-23 40 -91 43q0 6 1 10q-62 2 -118.5 18.5t-84.5 47.5 -q-32 36 -42.5 92t-2.5 112q16 126 90 179q23 16 52 4.5t32 -40.5q0 -1 1.5 -14t2.5 -21t3 -20t5.5 -19t8.5 -10q27 -14 76 -12q48 46 98 74q-40 4 -162 -14l47 46q61 58 163 111q145 73 282 86q-20 8 -41 15.5t-47 14t-42.5 10.5t-47.5 11t-43 10q595 126 904 -139 -q98 -84 158 -222q85 -10 121 9h1q5 3 8.5 10t5.5 19t3 19.5t3 21.5l1 14q3 28 32 40t52 -5q73 -52 91 -178q7 -57 -3.5 -113t-42.5 -91q-28 -32 -83.5 -48.5t-115.5 -18.5v-10q-71 -2 -95 -43q-14 -5 -31 -17q11 -1 32 -3.5t30 -3.5q1 5 5 8q16 18 60 23h13q5 18 19 30t33 8 -t36 -23t19 -36q79 -32 93 -95q9 -40 1 -81q-12 -53 -56 -88t-97 -44q-10 -2 -17 -2q0 -49 -1 -73q20 15 38 19q26 7 61 2q28 28 51 16q14 -9 14 -37q33 -16 59 -34q27 13 38 4q10 -10 2 -38q28 -30 41 -51q23 8 31 -1zM1937 1025q0 -29 -9 -54q82 -32 112 -132 -q4 37 -9.5 98.5t-41.5 90.5q-20 19 -36 17t-16 -20zM1859 925q35 -42 47.5 -108.5t-0.5 -124.5q67 13 97 45q13 14 18 28q-3 64 -31 114.5t-79 66.5q-15 -15 -52 -21zM1822 921q-30 0 -44 1q42 -115 53 -239q21 0 43 3q16 68 1 135t-53 100zM258 839q30 100 112 132 -q-9 25 -9 54q0 18 -16.5 20t-35.5 -17q-28 -29 -41.5 -90.5t-9.5 -98.5zM294 737q29 -31 97 -45q-13 58 -0.5 124.5t47.5 108.5v0q-37 6 -52 21q-51 -16 -78.5 -66t-31.5 -115q9 -17 18 -28zM471 683q14 124 73 235q-19 -4 -55 -18l-45 -19v1q-46 -89 -20 -196q25 -3 47 -3z -M1434 644q8 -38 16.5 -108.5t11.5 -89.5q3 -18 9.5 -21.5t23.5 4.5q40 20 62 85.5t23 125.5q-24 2 -146 4zM1152 1285q-116 0 -199 -82.5t-83 -198.5q0 -117 83 -199.5t199 -82.5t199 82.5t83 199.5q0 116 -83 198.5t-199 82.5zM1380 646q-105 2 -211 0v1q-1 -27 2.5 -86 -t13.5 -66q29 -14 93.5 -14.5t95.5 10.5q9 3 11 39t-0.5 69.5t-4.5 46.5zM1112 447q8 4 9.5 48t-0.5 88t-4 63v1q-212 -3 -214 -3q-4 -20 -7 -62t0 -83t14 -46q34 -15 101 -16t101 10zM718 636q-16 -59 4.5 -118.5t77.5 -84.5q15 -8 24 -5t12 21q3 16 8 90t10 103 -q-69 -2 -136 -6zM591 510q3 -23 -34 -36q132 -141 271.5 -240t305.5 -154q172 49 310.5 146t293.5 250q-33 13 -30 34q0 2 0.5 3.5t1.5 3t1 2.5v1v-1q-17 2 -50 5.5t-48 4.5q-26 -90 -82 -132q-51 -38 -82 1q-5 6 -9 14q-7 13 -17 62q-2 -5 -5 -9t-7.5 -7t-8 -5.5t-9.5 -4 -l-10 -2.5t-12 -2l-12 -1.5t-13.5 -1t-13.5 -0.5q-106 -9 -163 11q-4 -17 -10 -26.5t-21 -15t-23 -7t-36 -3.5q-6 -1 -9 -1q-179 -17 -203 40q-2 -63 -56 -54q-47 8 -91 54q-12 13 -20 26q-17 29 -26 65q-58 -6 -87 -10q1 -2 4 -10zM507 -118q3 14 3 30q-17 71 -51 130 -t-73 70q-41 12 -101.5 -14.5t-104.5 -80t-39 -107.5q35 -53 100 -93t119 -42q51 -2 94 28t53 79zM510 53q23 -63 27 -119q195 113 392 174q-98 52 -180.5 120t-179.5 165q-6 -4 -29 -13q0 -1 -1 -4t-1 -5q31 -18 22 -37q-12 -23 -56 -34q-10 -13 -29 -24h-1q-2 -83 1 -150 -q19 -34 35 -73zM579 -113q532 -21 1145 0q-254 147 -428 196q-76 -35 -156 -57q-8 -3 -16 0q-65 21 -129 49q-208 -60 -416 -188h-1v-1q1 0 1 1zM1763 -67q4 54 28 120q14 38 33 71l-1 -1q3 77 3 153q-15 8 -30 25q-42 9 -56 33q-9 20 22 38q-2 4 -2 9q-16 4 -28 12 -q-204 -190 -383 -284q198 -59 414 -176zM2155 -90q5 54 -39 107.5t-104 80t-102 14.5q-38 -11 -72.5 -70.5t-51.5 -129.5q0 -16 3 -30q10 -49 53 -79t94 -28q54 2 119 42t100 93z" /> - <glyph glyph-name="_538" unicode="&#xf23d;" horiz-adv-x="2304" -d="M1524 -25q0 -68 -48 -116t-116 -48t-116.5 48t-48.5 116t48.5 116.5t116.5 48.5t116 -48.5t48 -116.5zM775 -25q0 -68 -48.5 -116t-116.5 -48t-116 48t-48 116t48 116.5t116 48.5t116.5 -48.5t48.5 -116.5zM0 1469q57 -60 110.5 -104.5t121 -82t136 -63t166 -45.5 -t200 -31.5t250 -18.5t304 -9.5t372.5 -2.5q139 0 244.5 -5t181 -16.5t124 -27.5t71 -39.5t24 -51.5t-19.5 -64t-56.5 -76.5t-89.5 -91t-116 -104.5t-139 -119q-185 -157 -286 -247q29 51 76.5 109t94 105.5t94.5 98.5t83 91.5t54 80.5t13 70t-45.5 55.5t-116.5 41t-204 23.5 -t-304 5q-168 -2 -314 6t-256 23t-204.5 41t-159.5 51.5t-122.5 62.5t-91.5 66.5t-68 71.5t-50.5 69.5t-40 68t-36.5 59.5z" /> - <glyph glyph-name="_539" unicode="&#xf23e;" horiz-adv-x="1792" -d="M896 1472q-169 0 -323 -66t-265.5 -177.5t-177.5 -265.5t-66 -323t66 -323t177.5 -265.5t265.5 -177.5t323 -66t323 66t265.5 177.5t177.5 265.5t66 323t-66 323t-177.5 265.5t-265.5 177.5t-323 66zM896 1536q182 0 348 -71t286 -191t191 -286t71 -348t-71 -348 -t-191 -286t-286 -191t-348 -71t-348 71t-286 191t-191 286t-71 348t71 348t191 286t286 191t348 71zM496 704q16 0 16 -16v-480q0 -16 -16 -16h-32q-16 0 -16 16v480q0 16 16 16h32zM896 640q53 0 90.5 -37.5t37.5 -90.5q0 -35 -17.5 -64t-46.5 -46v-114q0 -14 -9 -23 -t-23 -9h-64q-14 0 -23 9t-9 23v114q-29 17 -46.5 46t-17.5 64q0 53 37.5 90.5t90.5 37.5zM896 1408q209 0 385.5 -103t279.5 -279.5t103 -385.5t-103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103zM544 928v-96 -q0 -14 9 -23t23 -9h64q14 0 23 9t9 23v96q0 93 65.5 158.5t158.5 65.5t158.5 -65.5t65.5 -158.5v-96q0 -14 9 -23t23 -9h64q14 0 23 9t9 23v96q0 146 -103 249t-249 103t-249 -103t-103 -249zM1408 192v512q0 26 -19 45t-45 19h-896q-26 0 -45 -19t-19 -45v-512 -q0 -26 19 -45t45 -19h896q26 0 45 19t19 45z" /> - <glyph glyph-name="_540" unicode="&#xf240;" horiz-adv-x="2304" -d="M1920 1024v-768h-1664v768h1664zM2048 448h128v384h-128v288q0 14 -9 23t-23 9h-1856q-14 0 -23 -9t-9 -23v-960q0 -14 9 -23t23 -9h1856q14 0 23 9t9 23v288zM2304 832v-384q0 -53 -37.5 -90.5t-90.5 -37.5v-160q0 -66 -47 -113t-113 -47h-1856q-66 0 -113 47t-47 113 -v960q0 66 47 113t113 47h1856q66 0 113 -47t47 -113v-160q53 0 90.5 -37.5t37.5 -90.5z" /> - <glyph glyph-name="_541" unicode="&#xf241;" horiz-adv-x="2304" -d="M256 256v768h1280v-768h-1280zM2176 960q53 0 90.5 -37.5t37.5 -90.5v-384q0 -53 -37.5 -90.5t-90.5 -37.5v-160q0 -66 -47 -113t-113 -47h-1856q-66 0 -113 47t-47 113v960q0 66 47 113t113 47h1856q66 0 113 -47t47 -113v-160zM2176 448v384h-128v288q0 14 -9 23t-23 9 -h-1856q-14 0 -23 -9t-9 -23v-960q0 -14 9 -23t23 -9h1856q14 0 23 9t9 23v288h128z" /> - <glyph glyph-name="_542" unicode="&#xf242;" horiz-adv-x="2304" -d="M256 256v768h896v-768h-896zM2176 960q53 0 90.5 -37.5t37.5 -90.5v-384q0 -53 -37.5 -90.5t-90.5 -37.5v-160q0 -66 -47 -113t-113 -47h-1856q-66 0 -113 47t-47 113v960q0 66 47 113t113 47h1856q66 0 113 -47t47 -113v-160zM2176 448v384h-128v288q0 14 -9 23t-23 9 -h-1856q-14 0 -23 -9t-9 -23v-960q0 -14 9 -23t23 -9h1856q14 0 23 9t9 23v288h128z" /> - <glyph glyph-name="_543" unicode="&#xf243;" horiz-adv-x="2304" -d="M256 256v768h512v-768h-512zM2176 960q53 0 90.5 -37.5t37.5 -90.5v-384q0 -53 -37.5 -90.5t-90.5 -37.5v-160q0 -66 -47 -113t-113 -47h-1856q-66 0 -113 47t-47 113v960q0 66 47 113t113 47h1856q66 0 113 -47t47 -113v-160zM2176 448v384h-128v288q0 14 -9 23t-23 9 -h-1856q-14 0 -23 -9t-9 -23v-960q0 -14 9 -23t23 -9h1856q14 0 23 9t9 23v288h128z" /> - <glyph glyph-name="_544" unicode="&#xf244;" horiz-adv-x="2304" -d="M2176 960q53 0 90.5 -37.5t37.5 -90.5v-384q0 -53 -37.5 -90.5t-90.5 -37.5v-160q0 -66 -47 -113t-113 -47h-1856q-66 0 -113 47t-47 113v960q0 66 47 113t113 47h1856q66 0 113 -47t47 -113v-160zM2176 448v384h-128v288q0 14 -9 23t-23 9h-1856q-14 0 -23 -9t-9 -23 -v-960q0 -14 9 -23t23 -9h1856q14 0 23 9t9 23v288h128z" /> - <glyph glyph-name="_545" unicode="&#xf245;" horiz-adv-x="1280" -d="M1133 493q31 -30 14 -69q-17 -40 -59 -40h-382l201 -476q10 -25 0 -49t-34 -35l-177 -75q-25 -10 -49 0t-35 34l-191 452l-312 -312q-19 -19 -45 -19q-12 0 -24 5q-40 17 -40 59v1504q0 42 40 59q12 5 24 5q27 0 45 -19z" /> - <glyph glyph-name="_546" unicode="&#xf246;" horiz-adv-x="1024" -d="M832 1408q-320 0 -320 -224v-416h128v-128h-128v-544q0 -224 320 -224h64v-128h-64q-272 0 -384 146q-112 -146 -384 -146h-64v128h64q320 0 320 224v544h-128v128h128v416q0 224 -320 224h-64v128h64q272 0 384 -146q112 146 384 146h64v-128h-64z" /> - <glyph glyph-name="_547" unicode="&#xf247;" horiz-adv-x="2048" -d="M2048 1152h-128v-1024h128v-384h-384v128h-1280v-128h-384v384h128v1024h-128v384h384v-128h1280v128h384v-384zM1792 1408v-128h128v128h-128zM128 1408v-128h128v128h-128zM256 -128v128h-128v-128h128zM1664 0v128h128v1024h-128v128h-1280v-128h-128v-1024h128v-128 -h1280zM1920 -128v128h-128v-128h128zM1280 896h384v-768h-896v256h-384v768h896v-256zM512 512h640v512h-640v-512zM1536 256v512h-256v-384h-384v-128h640z" /> - <glyph glyph-name="_548" unicode="&#xf248;" horiz-adv-x="2304" -d="M2304 768h-128v-640h128v-384h-384v128h-896v-128h-384v384h128v128h-384v-128h-384v384h128v640h-128v384h384v-128h896v128h384v-384h-128v-128h384v128h384v-384zM2048 1024v-128h128v128h-128zM1408 1408v-128h128v128h-128zM128 1408v-128h128v128h-128zM256 256 -v128h-128v-128h128zM1536 384h-128v-128h128v128zM384 384h896v128h128v640h-128v128h-896v-128h-128v-640h128v-128zM896 -128v128h-128v-128h128zM2176 -128v128h-128v-128h128zM2048 128v640h-128v128h-384v-384h128v-384h-384v128h-384v-128h128v-128h896v128h128z" /> - <glyph glyph-name="_549" unicode="&#xf249;" -d="M1024 288v-416h-928q-40 0 -68 28t-28 68v1344q0 40 28 68t68 28h1344q40 0 68 -28t28 -68v-928h-416q-40 0 -68 -28t-28 -68zM1152 256h381q-15 -82 -65 -132l-184 -184q-50 -50 -132 -65v381z" /> - <glyph glyph-name="_550" unicode="&#xf24a;" -d="M1400 256h-248v-248q29 10 41 22l185 185q12 12 22 41zM1120 384h288v896h-1280v-1280h896v288q0 40 28 68t68 28zM1536 1312v-1024q0 -40 -20 -88t-48 -76l-184 -184q-28 -28 -76 -48t-88 -20h-1024q-40 0 -68 28t-28 68v1344q0 40 28 68t68 28h1344q40 0 68 -28t28 -68 -z" /> - <glyph glyph-name="_551" unicode="&#xf24b;" horiz-adv-x="2304" -d="M1951 538q0 -26 -15.5 -44.5t-38.5 -23.5q-8 -2 -18 -2h-153v140h153q10 0 18 -2q23 -5 38.5 -23.5t15.5 -44.5zM1933 751q0 -25 -15 -42t-38 -21q-3 -1 -15 -1h-139v129h139q3 0 8.5 -0.5t6.5 -0.5q23 -4 38 -21.5t15 -42.5zM728 587v308h-228v-308q0 -58 -38 -94.5 -t-105 -36.5q-108 0 -229 59v-112q53 -15 121 -23t109 -9l42 -1q328 0 328 217zM1442 403v113q-99 -52 -200 -59q-108 -8 -169 41t-61 142t61 142t169 41q101 -7 200 -58v112q-48 12 -100 19.5t-80 9.5l-28 2q-127 6 -218.5 -14t-140.5 -60t-71 -88t-22 -106t22 -106t71 -88 -t140.5 -60t218.5 -14q101 4 208 31zM2176 518q0 54 -43 88.5t-109 39.5v3q57 8 89 41.5t32 79.5q0 55 -41 88t-107 36q-3 0 -12 0.5t-14 0.5h-455v-510h491q74 0 121.5 36.5t47.5 96.5zM2304 1280v-1280q0 -52 -38 -90t-90 -38h-2048q-52 0 -90 38t-38 90v1280q0 52 38 90 -t90 38h2048q52 0 90 -38t38 -90z" /> - <glyph glyph-name="_552" unicode="&#xf24c;" horiz-adv-x="2304" -d="M858 295v693q-106 -41 -172 -135.5t-66 -211.5t66 -211.5t172 -134.5zM1362 641q0 117 -66 211.5t-172 135.5v-694q106 41 172 135.5t66 211.5zM1577 641q0 -159 -78.5 -294t-213.5 -213.5t-294 -78.5q-119 0 -227.5 46.5t-187 125t-125 187t-46.5 227.5q0 159 78.5 294 -t213.5 213.5t294 78.5t294 -78.5t213.5 -213.5t78.5 -294zM1960 634q0 139 -55.5 261.5t-147.5 205.5t-213.5 131t-252.5 48h-301q-176 0 -323.5 -81t-235 -230t-87.5 -335q0 -171 87 -317.5t236 -231.5t323 -85h301q129 0 251.5 50.5t214.5 135t147.5 202.5t55.5 246z -M2304 1280v-1280q0 -52 -38 -90t-90 -38h-2048q-52 0 -90 38t-38 90v1280q0 52 38 90t90 38h2048q52 0 90 -38t38 -90z" /> - <glyph glyph-name="_553" unicode="&#xf24d;" horiz-adv-x="1792" -d="M1664 -96v1088q0 13 -9.5 22.5t-22.5 9.5h-1088q-13 0 -22.5 -9.5t-9.5 -22.5v-1088q0 -13 9.5 -22.5t22.5 -9.5h1088q13 0 22.5 9.5t9.5 22.5zM1792 992v-1088q0 -66 -47 -113t-113 -47h-1088q-66 0 -113 47t-47 113v1088q0 66 47 113t113 47h1088q66 0 113 -47t47 -113 -zM1408 1376v-160h-128v160q0 13 -9.5 22.5t-22.5 9.5h-1088q-13 0 -22.5 -9.5t-9.5 -22.5v-1088q0 -13 9.5 -22.5t22.5 -9.5h160v-128h-160q-66 0 -113 47t-47 113v1088q0 66 47 113t113 47h1088q66 0 113 -47t47 -113z" /> - <glyph glyph-name="_554" unicode="&#xf24e;" horiz-adv-x="2304" -d="M1728 1088l-384 -704h768zM448 1088l-384 -704h768zM1269 1280q-14 -40 -45.5 -71.5t-71.5 -45.5v-1291h608q14 0 23 -9t9 -23v-64q0 -14 -9 -23t-23 -9h-1344q-14 0 -23 9t-9 23v64q0 14 9 23t23 9h608v1291q-40 14 -71.5 45.5t-45.5 71.5h-491q-14 0 -23 9t-9 23v64 -q0 14 9 23t23 9h491q21 57 70 92.5t111 35.5t111 -35.5t70 -92.5h491q14 0 23 -9t9 -23v-64q0 -14 -9 -23t-23 -9h-491zM1088 1264q33 0 56.5 23.5t23.5 56.5t-23.5 56.5t-56.5 23.5t-56.5 -23.5t-23.5 -56.5t23.5 -56.5t56.5 -23.5zM2176 384q0 -73 -46.5 -131t-117.5 -91 -t-144.5 -49.5t-139.5 -16.5t-139.5 16.5t-144.5 49.5t-117.5 91t-46.5 131q0 11 35 81t92 174.5t107 195.5t102 184t56 100q18 33 56 33t56 -33q4 -7 56 -100t102 -184t107 -195.5t92 -174.5t35 -81zM896 384q0 -73 -46.5 -131t-117.5 -91t-144.5 -49.5t-139.5 -16.5 -t-139.5 16.5t-144.5 49.5t-117.5 91t-46.5 131q0 11 35 81t92 174.5t107 195.5t102 184t56 100q18 33 56 33t56 -33q4 -7 56 -100t102 -184t107 -195.5t92 -174.5t35 -81z" /> - <glyph glyph-name="_555" unicode="&#xf250;" -d="M1408 1408q0 -261 -106.5 -461.5t-266.5 -306.5q160 -106 266.5 -306.5t106.5 -461.5h96q14 0 23 -9t9 -23v-64q0 -14 -9 -23t-23 -9h-1472q-14 0 -23 9t-9 23v64q0 14 9 23t23 9h96q0 261 106.5 461.5t266.5 306.5q-160 106 -266.5 306.5t-106.5 461.5h-96q-14 0 -23 9 -t-9 23v64q0 14 9 23t23 9h1472q14 0 23 -9t9 -23v-64q0 -14 -9 -23t-23 -9h-96zM874 700q77 29 149 92.5t129.5 152.5t92.5 210t35 253h-1024q0 -132 35 -253t92.5 -210t129.5 -152.5t149 -92.5q19 -7 30.5 -23.5t11.5 -36.5t-11.5 -36.5t-30.5 -23.5q-77 -29 -149 -92.5 -t-129.5 -152.5t-92.5 -210t-35 -253h1024q0 132 -35 253t-92.5 210t-129.5 152.5t-149 92.5q-19 7 -30.5 23.5t-11.5 36.5t11.5 36.5t30.5 23.5z" /> - <glyph glyph-name="_556" unicode="&#xf251;" -d="M1408 1408q0 -261 -106.5 -461.5t-266.5 -306.5q160 -106 266.5 -306.5t106.5 -461.5h96q14 0 23 -9t9 -23v-64q0 -14 -9 -23t-23 -9h-1472q-14 0 -23 9t-9 23v64q0 14 9 23t23 9h96q0 261 106.5 461.5t266.5 306.5q-160 106 -266.5 306.5t-106.5 461.5h-96q-14 0 -23 9 -t-9 23v64q0 14 9 23t23 9h1472q14 0 23 -9t9 -23v-64q0 -14 -9 -23t-23 -9h-96zM1280 1408h-1024q0 -66 9 -128h1006q9 61 9 128zM1280 -128q0 130 -34 249.5t-90.5 208t-126.5 152t-146 94.5h-230q-76 -31 -146 -94.5t-126.5 -152t-90.5 -208t-34 -249.5h1024z" /> - <glyph glyph-name="_557" unicode="&#xf252;" -d="M1408 1408q0 -261 -106.5 -461.5t-266.5 -306.5q160 -106 266.5 -306.5t106.5 -461.5h96q14 0 23 -9t9 -23v-64q0 -14 -9 -23t-23 -9h-1472q-14 0 -23 9t-9 23v64q0 14 9 23t23 9h96q0 261 106.5 461.5t266.5 306.5q-160 106 -266.5 306.5t-106.5 461.5h-96q-14 0 -23 9 -t-9 23v64q0 14 9 23t23 9h1472q14 0 23 -9t9 -23v-64q0 -14 -9 -23t-23 -9h-96zM1280 1408h-1024q0 -206 85 -384h854q85 178 85 384zM1223 192q-54 141 -145.5 241.5t-194.5 142.5h-230q-103 -42 -194.5 -142.5t-145.5 -241.5h910z" /> - <glyph glyph-name="_558" unicode="&#xf253;" -d="M1408 1408q0 -261 -106.5 -461.5t-266.5 -306.5q160 -106 266.5 -306.5t106.5 -461.5h96q14 0 23 -9t9 -23v-64q0 -14 -9 -23t-23 -9h-1472q-14 0 -23 9t-9 23v64q0 14 9 23t23 9h96q0 261 106.5 461.5t266.5 306.5q-160 106 -266.5 306.5t-106.5 461.5h-96q-14 0 -23 9 -t-9 23v64q0 14 9 23t23 9h1472q14 0 23 -9t9 -23v-64q0 -14 -9 -23t-23 -9h-96zM874 700q77 29 149 92.5t129.5 152.5t92.5 210t35 253h-1024q0 -132 35 -253t92.5 -210t129.5 -152.5t149 -92.5q19 -7 30.5 -23.5t11.5 -36.5t-11.5 -36.5t-30.5 -23.5q-137 -51 -244 -196 -h700q-107 145 -244 196q-19 7 -30.5 23.5t-11.5 36.5t11.5 36.5t30.5 23.5z" /> - <glyph glyph-name="_559" unicode="&#xf254;" -d="M1504 -64q14 0 23 -9t9 -23v-128q0 -14 -9 -23t-23 -9h-1472q-14 0 -23 9t-9 23v128q0 14 9 23t23 9h1472zM130 0q3 55 16 107t30 95t46 87t53.5 76t64.5 69.5t66 60t70.5 55t66.5 47.5t65 43q-43 28 -65 43t-66.5 47.5t-70.5 55t-66 60t-64.5 69.5t-53.5 76t-46 87 -t-30 95t-16 107h1276q-3 -55 -16 -107t-30 -95t-46 -87t-53.5 -76t-64.5 -69.5t-66 -60t-70.5 -55t-66.5 -47.5t-65 -43q43 -28 65 -43t66.5 -47.5t70.5 -55t66 -60t64.5 -69.5t53.5 -76t46 -87t30 -95t16 -107h-1276zM1504 1536q14 0 23 -9t9 -23v-128q0 -14 -9 -23t-23 -9 -h-1472q-14 0 -23 9t-9 23v128q0 14 9 23t23 9h1472z" /> - <glyph glyph-name="_560" unicode="&#xf255;" -d="M768 1152q-53 0 -90.5 -37.5t-37.5 -90.5v-128h-32v93q0 48 -32 81.5t-80 33.5q-46 0 -79 -33t-33 -79v-429l-32 30v172q0 48 -32 81.5t-80 33.5q-46 0 -79 -33t-33 -79v-224q0 -47 35 -82l310 -296q39 -39 39 -102q0 -26 19 -45t45 -19h640q26 0 45 19t19 45v25 -q0 41 10 77l108 436q10 36 10 77v246q0 48 -32 81.5t-80 33.5q-46 0 -79 -33t-33 -79v-32h-32v125q0 40 -25 72.5t-64 40.5q-14 2 -23 2q-46 0 -79 -33t-33 -79v-128h-32v122q0 51 -32.5 89.5t-82.5 43.5q-5 1 -13 1zM768 1280q84 0 149 -50q57 34 123 34q59 0 111 -27 -t86 -76q27 7 59 7q100 0 170 -71.5t70 -171.5v-246q0 -51 -13 -108l-109 -436q-6 -24 -6 -71q0 -80 -56 -136t-136 -56h-640q-84 0 -138 58.5t-54 142.5l-308 296q-76 73 -76 175v224q0 99 70.5 169.5t169.5 70.5q11 0 16 -1q6 95 75.5 160t164.5 65q52 0 98 -21 -q72 69 174 69z" /> - <glyph glyph-name="_561" unicode="&#xf256;" horiz-adv-x="1792" -d="M880 1408q-46 0 -79 -33t-33 -79v-656h-32v528q0 46 -33 79t-79 33t-79 -33t-33 -79v-528v-256l-154 205q-38 51 -102 51q-53 0 -90.5 -37.5t-37.5 -90.5q0 -43 26 -77l384 -512q38 -51 102 -51h688q34 0 61 22t34 56l76 405q5 32 5 59v498q0 46 -33 79t-79 33t-79 -33 -t-33 -79v-272h-32v528q0 46 -33 79t-79 33t-79 -33t-33 -79v-528h-32v656q0 46 -33 79t-79 33zM880 1536q68 0 125.5 -35.5t88.5 -96.5q19 4 42 4q99 0 169.5 -70.5t70.5 -169.5v-17q105 6 180.5 -64t75.5 -175v-498q0 -40 -8 -83l-76 -404q-14 -79 -76.5 -131t-143.5 -52 -h-688q-60 0 -114.5 27.5t-90.5 74.5l-384 512q-51 68 -51 154q0 106 75 181t181 75q78 0 128 -34v434q0 99 70.5 169.5t169.5 70.5q23 0 42 -4q31 61 88.5 96.5t125.5 35.5z" /> - <glyph glyph-name="_562" unicode="&#xf257;" horiz-adv-x="1792" -d="M1073 -128h-177q-163 0 -226 141q-23 49 -23 102v5q-62 30 -98.5 88.5t-36.5 127.5q0 38 5 48h-261q-106 0 -181 75t-75 181t75 181t181 75h113l-44 17q-74 28 -119.5 93.5t-45.5 145.5q0 106 75 181t181 75q46 0 91 -17l628 -239h401q106 0 181 -75t75 -181v-668 -q0 -88 -54 -157.5t-140 -90.5l-339 -85q-92 -23 -186 -23zM1024 583l-155 -71l-163 -74q-30 -14 -48 -41.5t-18 -60.5q0 -46 33 -79t79 -33q26 0 46 10l338 154q-49 10 -80.5 50t-31.5 90v55zM1344 272q0 46 -33 79t-79 33q-26 0 -46 -10l-290 -132q-28 -13 -37 -17 -t-30.5 -17t-29.5 -23.5t-16 -29t-8 -40.5q0 -50 31.5 -82t81.5 -32q20 0 38 9l352 160q30 14 48 41.5t18 60.5zM1112 1024l-650 248q-24 8 -46 8q-53 0 -90.5 -37.5t-37.5 -90.5q0 -40 22.5 -73t59.5 -47l526 -200v-64h-640q-53 0 -90.5 -37.5t-37.5 -90.5t37.5 -90.5 -t90.5 -37.5h535l233 106v198q0 63 46 106l111 102h-69zM1073 0q82 0 155 19l339 85q43 11 70 45.5t27 78.5v668q0 53 -37.5 90.5t-90.5 37.5h-308l-136 -126q-36 -33 -36 -82v-296q0 -46 33 -77t79 -31t79 35t33 81v208h32v-208q0 -70 -57 -114q52 -8 86.5 -48.5t34.5 -93.5 -q0 -42 -23 -78t-61 -53l-310 -141h91z" /> - <glyph glyph-name="_563" unicode="&#xf258;" horiz-adv-x="2048" -d="M1151 1536q61 0 116 -28t91 -77l572 -781q118 -159 118 -359v-355q0 -80 -56 -136t-136 -56h-384q-80 0 -136 56t-56 136v177l-286 143h-546q-80 0 -136 56t-56 136v32q0 119 84.5 203.5t203.5 84.5h420l42 128h-686q-100 0 -173.5 67.5t-81.5 166.5q-65 79 -65 182v32 -q0 80 56 136t136 56h959zM1920 -64v355q0 157 -93 284l-573 781q-39 52 -103 52h-959q-26 0 -45 -19t-19 -45q0 -32 1.5 -49.5t9.5 -40.5t25 -43q10 31 35.5 50t56.5 19h832v-32h-832q-26 0 -45 -19t-19 -45q0 -44 3 -58q8 -44 44 -73t81 -29h640h91q40 0 68 -28t28 -68 -q0 -15 -5 -30l-64 -192q-10 -29 -35 -47.5t-56 -18.5h-443q-66 0 -113 -47t-47 -113v-32q0 -26 19 -45t45 -19h561q16 0 29 -7l317 -158q24 -13 38.5 -36t14.5 -50v-197q0 -26 19 -45t45 -19h384q26 0 45 19t19 45z" /> - <glyph glyph-name="_564" unicode="&#xf259;" horiz-adv-x="2048" -d="M459 -256q-77 0 -137.5 47.5t-79.5 122.5l-101 401q-13 57 -13 108q0 45 -5 67l-116 477q-7 27 -7 57q0 93 62 161t155 78q17 85 82.5 139t152.5 54q83 0 148 -51.5t85 -132.5l83 -348l103 428q20 81 85 132.5t148 51.5q89 0 155.5 -57.5t80.5 -144.5q92 -10 152 -79 -t60 -162q0 -24 -7 -59l-123 -512q10 7 37.5 28.5t38.5 29.5t35 23t41 20.5t41.5 11t49.5 5.5q105 0 180 -74t75 -179q0 -62 -28.5 -118t-78.5 -94l-507 -380q-68 -51 -153 -51h-694zM1104 1408q-38 0 -68.5 -24t-39.5 -62l-164 -682h-127l-145 602q-9 38 -39.5 62t-68.5 24 -q-48 0 -80 -33t-32 -80q0 -15 3 -28l132 -547h-26l-99 408q-9 37 -40 62.5t-69 25.5q-47 0 -80 -33t-33 -79q0 -14 3 -26l116 -478q7 -28 9 -86t10 -88l100 -401q8 -32 34 -52.5t59 -20.5h694q42 0 76 26l507 379q56 43 56 110q0 52 -37.5 88.5t-89.5 36.5q-43 0 -77 -26 -l-307 -230v227q0 4 32 138t68 282t39 161q4 18 4 29q0 47 -32 81t-79 34q-39 0 -69.5 -24t-39.5 -62l-116 -482h-26l150 624q3 14 3 28q0 48 -31.5 82t-79.5 34z" /> - <glyph glyph-name="_565" unicode="&#xf25a;" horiz-adv-x="1792" -d="M640 1408q-53 0 -90.5 -37.5t-37.5 -90.5v-512v-384l-151 202q-41 54 -107 54q-52 0 -89 -38t-37 -90q0 -43 26 -77l384 -512q38 -51 102 -51h718q22 0 39.5 13.5t22.5 34.5l92 368q24 96 24 194v217q0 41 -28 71t-68 30t-68 -28t-28 -68h-32v61q0 48 -32 81.5t-80 33.5 -q-46 0 -79 -33t-33 -79v-64h-32v90q0 55 -37 94.5t-91 39.5q-53 0 -90.5 -37.5t-37.5 -90.5v-96h-32v570q0 55 -37 94.5t-91 39.5zM640 1536q107 0 181.5 -77.5t74.5 -184.5v-220q22 2 32 2q99 0 173 -69q47 21 99 21q113 0 184 -87q27 7 56 7q94 0 159 -67.5t65 -161.5 -v-217q0 -116 -28 -225l-92 -368q-16 -64 -68 -104.5t-118 -40.5h-718q-60 0 -114.5 27.5t-90.5 74.5l-384 512q-51 68 -51 154q0 105 74.5 180.5t179.5 75.5q71 0 130 -35v547q0 106 75 181t181 75zM768 128v384h-32v-384h32zM1024 128v384h-32v-384h32zM1280 128v384h-32 -v-384h32z" /> - <glyph glyph-name="_566" unicode="&#xf25b;" -d="M1288 889q60 0 107 -23q141 -63 141 -226v-177q0 -94 -23 -186l-85 -339q-21 -86 -90.5 -140t-157.5 -54h-668q-106 0 -181 75t-75 181v401l-239 628q-17 45 -17 91q0 106 75 181t181 75q80 0 145.5 -45.5t93.5 -119.5l17 -44v113q0 106 75 181t181 75t181 -75t75 -181 -v-261q27 5 48 5q69 0 127.5 -36.5t88.5 -98.5zM1072 896q-33 0 -60.5 -18t-41.5 -48l-74 -163l-71 -155h55q50 0 90 -31.5t50 -80.5l154 338q10 20 10 46q0 46 -33 79t-79 33zM1293 761q-22 0 -40.5 -8t-29 -16t-23.5 -29.5t-17 -30.5t-17 -37l-132 -290q-10 -20 -10 -46 -q0 -46 33 -79t79 -33q33 0 60.5 18t41.5 48l160 352q9 18 9 38q0 50 -32 81.5t-82 31.5zM128 1120q0 -22 8 -46l248 -650v-69l102 111q43 46 106 46h198l106 233v535q0 53 -37.5 90.5t-90.5 37.5t-90.5 -37.5t-37.5 -90.5v-640h-64l-200 526q-14 37 -47 59.5t-73 22.5 -q-53 0 -90.5 -37.5t-37.5 -90.5zM1180 -128q44 0 78.5 27t45.5 70l85 339q19 73 19 155v91l-141 -310q-17 -38 -53 -61t-78 -23q-53 0 -93.5 34.5t-48.5 86.5q-44 -57 -114 -57h-208v32h208q46 0 81 33t35 79t-31 79t-77 33h-296q-49 0 -82 -36l-126 -136v-308 -q0 -53 37.5 -90.5t90.5 -37.5h668z" /> - <glyph glyph-name="_567" unicode="&#xf25c;" horiz-adv-x="1973" -d="M857 992v-117q0 -13 -9.5 -22t-22.5 -9h-298v-812q0 -13 -9 -22.5t-22 -9.5h-135q-13 0 -22.5 9t-9.5 23v812h-297q-13 0 -22.5 9t-9.5 22v117q0 14 9 23t23 9h793q13 0 22.5 -9.5t9.5 -22.5zM1895 995l77 -961q1 -13 -8 -24q-10 -10 -23 -10h-134q-12 0 -21 8.5 -t-10 20.5l-46 588l-189 -425q-8 -19 -29 -19h-120q-20 0 -29 19l-188 427l-45 -590q-1 -12 -10 -20.5t-21 -8.5h-135q-13 0 -23 10q-9 10 -9 24l78 961q1 12 10 20.5t21 8.5h142q20 0 29 -19l220 -520q10 -24 20 -51q3 7 9.5 24.5t10.5 26.5l221 520q9 19 29 19h141 -q13 0 22 -8.5t10 -20.5z" /> - <glyph glyph-name="_568" unicode="&#xf25d;" horiz-adv-x="1792" -d="M1042 833q0 88 -60 121q-33 18 -117 18h-123v-281h162q66 0 102 37t36 105zM1094 548l205 -373q8 -17 -1 -31q-8 -16 -27 -16h-152q-20 0 -28 17l-194 365h-155v-350q0 -14 -9 -23t-23 -9h-134q-14 0 -23 9t-9 23v960q0 14 9 23t23 9h294q128 0 190 -24q85 -31 134 -109 -t49 -180q0 -92 -42.5 -165.5t-115.5 -109.5q6 -10 9 -16zM896 1376q-150 0 -286 -58.5t-234.5 -157t-157 -234.5t-58.5 -286t58.5 -286t157 -234.5t234.5 -157t286 -58.5t286 58.5t234.5 157t157 234.5t58.5 286t-58.5 286t-157 234.5t-234.5 157t-286 58.5zM1792 640 -q0 -182 -71 -348t-191 -286t-286 -191t-348 -71t-348 71t-286 191t-191 286t-71 348t71 348t191 286t286 191t348 71t348 -71t286 -191t191 -286t71 -348z" /> - <glyph glyph-name="_569" unicode="&#xf25e;" horiz-adv-x="1792" -d="M605 303q153 0 257 104q14 18 3 36l-45 82q-6 13 -24 17q-16 2 -27 -11l-4 -3q-4 -4 -11.5 -10t-17.5 -13.5t-23.5 -14.5t-28.5 -13t-33.5 -9.5t-37.5 -3.5q-76 0 -125 50t-49 127q0 76 48 125.5t122 49.5q37 0 71.5 -14t50.5 -28l16 -14q11 -11 26 -10q16 2 24 14l53 78 -q13 20 -2 39q-3 4 -11 12t-30 23.5t-48.5 28t-67.5 22.5t-86 10q-148 0 -246 -96.5t-98 -240.5q0 -146 97 -241.5t247 -95.5zM1235 303q153 0 257 104q14 18 4 36l-45 82q-8 14 -25 17q-16 2 -27 -11l-4 -3q-4 -4 -11.5 -10t-17.5 -13.5t-23.5 -14.5t-28.5 -13t-33.5 -9.5 -t-37.5 -3.5q-76 0 -125 50t-49 127q0 76 48 125.5t122 49.5q37 0 71.5 -14t50.5 -28l16 -14q11 -11 26 -10q16 2 24 14l53 78q13 20 -2 39q-3 4 -11 12t-30 23.5t-48.5 28t-67.5 22.5t-86 10q-147 0 -245.5 -96.5t-98.5 -240.5q0 -146 97 -241.5t247 -95.5zM896 1376 -q-150 0 -286 -58.5t-234.5 -157t-157 -234.5t-58.5 -286t58.5 -286t157 -234.5t234.5 -157t286 -58.5t286 58.5t234.5 157t157 234.5t58.5 286t-58.5 286t-157 234.5t-234.5 157t-286 58.5zM896 1536q182 0 348 -71t286 -191t191 -286t71 -348t-71 -348t-191 -286t-286 -191 -t-348 -71t-348 71t-286 191t-191 286t-71 348t71 348t191 286t286 191t348 71z" /> - <glyph glyph-name="f260" unicode="&#xf260;" horiz-adv-x="2048" -d="M736 736l384 -384l-384 -384l-672 672l672 672l168 -168l-96 -96l-72 72l-480 -480l480 -480l193 193l-289 287zM1312 1312l672 -672l-672 -672l-168 168l96 96l72 -72l480 480l-480 480l-193 -193l289 -287l-96 -96l-384 384z" /> - <glyph glyph-name="f261" unicode="&#xf261;" horiz-adv-x="1792" -d="M717 182l271 271l-279 279l-88 -88l192 -191l-96 -96l-279 279l279 279l40 -40l87 87l-127 128l-454 -454zM1075 190l454 454l-454 454l-271 -271l279 -279l88 88l-192 191l96 96l279 -279l-279 -279l-40 40l-87 -88zM1792 640q0 -182 -71 -348t-191 -286t-286 -191 -t-348 -71t-348 71t-286 191t-191 286t-71 348t71 348t191 286t286 191t348 71t348 -71t286 -191t191 -286t71 -348z" /> - <glyph glyph-name="_572" unicode="&#xf262;" horiz-adv-x="2304" -d="M651 539q0 -39 -27.5 -66.5t-65.5 -27.5q-39 0 -66.5 27.5t-27.5 66.5q0 38 27.5 65.5t66.5 27.5q38 0 65.5 -27.5t27.5 -65.5zM1805 540q0 -39 -27.5 -66.5t-66.5 -27.5t-66.5 27.5t-27.5 66.5t27.5 66t66.5 27t66.5 -27t27.5 -66zM765 539q0 79 -56.5 136t-136.5 57 -t-136.5 -56.5t-56.5 -136.5t56.5 -136.5t136.5 -56.5t136.5 56.5t56.5 136.5zM1918 540q0 80 -56.5 136.5t-136.5 56.5q-79 0 -136 -56.5t-57 -136.5t56.5 -136.5t136.5 -56.5t136.5 56.5t56.5 136.5zM850 539q0 -116 -81.5 -197.5t-196.5 -81.5q-116 0 -197.5 82t-81.5 197 -t82 196.5t197 81.5t196.5 -81.5t81.5 -196.5zM2004 540q0 -115 -81.5 -196.5t-197.5 -81.5q-115 0 -196.5 81.5t-81.5 196.5t81.5 196.5t196.5 81.5q116 0 197.5 -81.5t81.5 -196.5zM1040 537q0 191 -135.5 326.5t-326.5 135.5q-125 0 -231 -62t-168 -168.5t-62 -231.5 -t62 -231.5t168 -168.5t231 -62q191 0 326.5 135.5t135.5 326.5zM1708 1110q-254 111 -556 111q-319 0 -573 -110q117 0 223 -45.5t182.5 -122.5t122 -183t45.5 -223q0 115 43.5 219.5t118 180.5t177.5 123t217 50zM2187 537q0 191 -135 326.5t-326 135.5t-326.5 -135.5 -t-135.5 -326.5t135.5 -326.5t326.5 -135.5t326 135.5t135 326.5zM1921 1103h383q-44 -51 -75 -114.5t-40 -114.5q110 -151 110 -337q0 -156 -77 -288t-209 -208.5t-287 -76.5q-133 0 -249 56t-196 155q-47 -56 -129 -179q-11 22 -53.5 82.5t-74.5 97.5 -q-80 -99 -196.5 -155.5t-249.5 -56.5q-155 0 -287 76.5t-209 208.5t-77 288q0 186 110 337q-9 51 -40 114.5t-75 114.5h365q149 100 355 156.5t432 56.5q224 0 421 -56t348 -157z" /> - <glyph glyph-name="f263" unicode="&#xf263;" horiz-adv-x="1280" -d="M640 629q-188 0 -321 133t-133 320q0 188 133 321t321 133t321 -133t133 -321q0 -187 -133 -320t-321 -133zM640 1306q-92 0 -157.5 -65.5t-65.5 -158.5q0 -92 65.5 -157.5t157.5 -65.5t157.5 65.5t65.5 157.5q0 93 -65.5 158.5t-157.5 65.5zM1163 574q13 -27 15 -49.5 -t-4.5 -40.5t-26.5 -38.5t-42.5 -37t-61.5 -41.5q-115 -73 -315 -94l73 -72l267 -267q30 -31 30 -74t-30 -73l-12 -13q-31 -30 -74 -30t-74 30q-67 68 -267 268l-267 -268q-31 -30 -74 -30t-73 30l-12 13q-31 30 -31 73t31 74l267 267l72 72q-203 21 -317 94 -q-39 25 -61.5 41.5t-42.5 37t-26.5 38.5t-4.5 40.5t15 49.5q10 20 28 35t42 22t56 -2t65 -35q5 -4 15 -11t43 -24.5t69 -30.5t92 -24t113 -11q91 0 174 25.5t120 50.5l38 25q33 26 65 35t56 2t42 -22t28 -35z" /> - <glyph glyph-name="_574" unicode="&#xf264;" -d="M927 956q0 -66 -46.5 -112.5t-112.5 -46.5t-112.5 46.5t-46.5 112.5t46.5 112.5t112.5 46.5t112.5 -46.5t46.5 -112.5zM1141 593q-10 20 -28 32t-47.5 9.5t-60.5 -27.5q-10 -8 -29 -20t-81 -32t-127 -20t-124 18t-86 36l-27 18q-31 25 -60.5 27.5t-47.5 -9.5t-28 -32 -q-22 -45 -2 -74.5t87 -73.5q83 -53 226 -67l-51 -52q-142 -142 -191 -190q-22 -22 -22 -52.5t22 -52.5l9 -9q22 -22 52.5 -22t52.5 22l191 191q114 -115 191 -191q22 -22 52.5 -22t52.5 22l9 9q22 22 22 52.5t-22 52.5l-191 190l-52 52q141 14 225 67q67 44 87 73.5t-2 74.5 -zM1092 956q0 134 -95 229t-229 95t-229 -95t-95 -229t95 -229t229 -95t229 95t95 229zM1536 1120v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" /> - <glyph glyph-name="_575" unicode="&#xf265;" horiz-adv-x="1720" -d="M1565 1408q65 0 110 -45.5t45 -110.5v-519q0 -176 -68 -336t-182.5 -275t-274 -182.5t-334.5 -67.5q-176 0 -335.5 67.5t-274.5 182.5t-183 275t-68 336v519q0 64 46 110t110 46h1409zM861 344q47 0 82 33l404 388q37 35 37 85q0 49 -34.5 83.5t-83.5 34.5q-47 0 -82 -33 -l-323 -310l-323 310q-35 33 -81 33q-49 0 -83.5 -34.5t-34.5 -83.5q0 -51 36 -85l405 -388q33 -33 81 -33z" /> - <glyph glyph-name="_576" unicode="&#xf266;" horiz-adv-x="2304" -d="M1494 -103l-295 695q-25 -49 -158.5 -305.5t-198.5 -389.5q-1 -1 -27.5 -0.5t-26.5 1.5q-82 193 -255.5 587t-259.5 596q-21 50 -66.5 107.5t-103.5 100.5t-102 43q0 5 -0.5 24t-0.5 27h583v-50q-39 -2 -79.5 -16t-66.5 -43t-10 -64q26 -59 216.5 -499t235.5 -540 -q31 61 140 266.5t131 247.5q-19 39 -126 281t-136 295q-38 69 -201 71v50l513 -1v-47q-60 -2 -93.5 -25t-12.5 -69q33 -70 87 -189.5t86 -187.5q110 214 173 363q24 55 -10 79.5t-129 26.5q1 7 1 25v24q64 0 170.5 0.5t180 1t92.5 0.5v-49q-62 -2 -119 -33t-90 -81 -l-213 -442q13 -33 127.5 -290t121.5 -274l441 1017q-14 38 -49.5 62.5t-65 31.5t-55.5 8v50l460 -4l1 -2l-1 -44q-139 -4 -201 -145q-526 -1216 -559 -1291h-49z" /> - <glyph glyph-name="_577" unicode="&#xf267;" horiz-adv-x="1792" -d="M949 643q0 -26 -16.5 -45t-41.5 -19q-26 0 -45 16.5t-19 41.5q0 26 17 45t42 19t44 -16.5t19 -41.5zM964 585l350 581q-9 -8 -67.5 -62.5t-125.5 -116.5t-136.5 -127t-117 -110.5t-50.5 -51.5l-349 -580q7 7 67 62t126 116.5t136 127t117 111t50 50.5zM1611 640 -q0 -201 -104 -371q-3 2 -17 11t-26.5 16.5t-16.5 7.5q-13 0 -13 -13q0 -10 59 -44q-74 -112 -184.5 -190.5t-241.5 -110.5l-16 67q-1 10 -15 10q-5 0 -8 -5.5t-2 -9.5l16 -68q-72 -15 -146 -15q-199 0 -372 105q1 2 13 20.5t21.5 33.5t9.5 19q0 13 -13 13q-6 0 -17 -14.5 -t-22.5 -34.5t-13.5 -23q-113 75 -192 187.5t-110 244.5l69 15q10 3 10 15q0 5 -5.5 8t-10.5 2l-68 -15q-14 72 -14 139q0 206 109 379q2 -1 18.5 -12t30 -19t17.5 -8q13 0 13 12q0 6 -12.5 15.5t-32.5 21.5l-20 12q77 112 189 189t244 107l15 -67q2 -10 15 -10q5 0 8 5.5 -t2 10.5l-15 66q71 13 134 13q204 0 379 -109q-39 -56 -39 -65q0 -13 12 -13q11 0 48 64q111 -75 187.5 -186t107.5 -241l-56 -12q-10 -2 -10 -16q0 -5 5.5 -8t9.5 -2l57 13q14 -72 14 -140zM1696 640q0 163 -63.5 311t-170.5 255t-255 170.5t-311 63.5t-311 -63.5 -t-255 -170.5t-170.5 -255t-63.5 -311t63.5 -311t170.5 -255t255 -170.5t311 -63.5t311 63.5t255 170.5t170.5 255t63.5 311zM1792 640q0 -182 -71 -348t-191 -286t-286 -191t-348 -71t-348 71t-286 191t-191 286t-71 348t71 348t191 286t286 191t348 71t348 -71t286 -191 -t191 -286t71 -348z" /> - <glyph glyph-name="_578" unicode="&#xf268;" horiz-adv-x="1792" -d="M893 1536q240 2 451 -120q232 -134 352 -372l-742 39q-160 9 -294 -74.5t-185 -229.5l-276 424q128 159 311 245.5t383 87.5zM146 1131l337 -663q72 -143 211 -217t293 -45l-230 -451q-212 33 -385 157.5t-272.5 316t-99.5 411.5q0 267 146 491zM1732 962 -q58 -150 59.5 -310.5t-48.5 -306t-153 -272t-246 -209.5q-230 -133 -498 -119l405 623q88 131 82.5 290.5t-106.5 277.5zM896 942q125 0 213.5 -88.5t88.5 -213.5t-88.5 -213.5t-213.5 -88.5t-213.5 88.5t-88.5 213.5t88.5 213.5t213.5 88.5z" /> - <glyph glyph-name="_579" unicode="&#xf269;" horiz-adv-x="1792" -d="M903 -256q-283 0 -504.5 150.5t-329.5 398.5q-58 131 -67 301t26 332.5t111 312t179 242.5l-11 -281q11 14 68 15.5t70 -15.5q42 81 160.5 138t234.5 59q-54 -45 -119.5 -148.5t-58.5 -163.5q25 -8 62.5 -13.5t63 -7.5t68 -4t50.5 -3q15 -5 9.5 -45.5t-30.5 -75.5 -q-5 -7 -16.5 -18.5t-56.5 -35.5t-101 -34l15 -189l-139 67q-18 -43 -7.5 -81.5t36 -66.5t65.5 -41.5t81 -6.5q51 9 98 34.5t83.5 45t73.5 17.5q61 -4 89.5 -33t19.5 -65q-1 -2 -2.5 -5.5t-8.5 -12.5t-18 -15.5t-31.5 -10.5t-46.5 -1q-60 -95 -144.5 -135.5t-209.5 -29.5 -q74 -61 162.5 -82.5t168.5 -6t154.5 52t128 87.5t80.5 104q43 91 39 192.5t-37.5 188.5t-78.5 125q87 -38 137 -79.5t77 -112.5q15 170 -57.5 343t-209.5 284q265 -77 412 -279.5t151 -517.5q2 -127 -40.5 -255t-123.5 -238t-189 -196t-247.5 -135.5t-288.5 -49.5z" /> - <glyph glyph-name="_580" unicode="&#xf26a;" horiz-adv-x="1792" -d="M1493 1308q-165 110 -359 110q-155 0 -293 -73t-240 -200q-75 -93 -119.5 -218t-48.5 -266v-42q4 -141 48.5 -266t119.5 -218q102 -127 240 -200t293 -73q194 0 359 110q-121 -108 -274.5 -168t-322.5 -60q-29 0 -43 1q-175 8 -333 82t-272 193t-181 281t-67 339 -q0 182 71 348t191 286t286 191t348 71h3q168 -1 320.5 -60.5t273.5 -167.5zM1792 640q0 -192 -77 -362.5t-213 -296.5q-104 -63 -222 -63q-137 0 -255 84q154 56 253.5 233t99.5 405q0 227 -99 404t-253 234q119 83 254 83q119 0 226 -65q135 -125 210.5 -295t75.5 -361z -" /> - <glyph glyph-name="_581" unicode="&#xf26b;" horiz-adv-x="1792" -d="M1792 599q0 -56 -7 -104h-1151q0 -146 109.5 -244.5t257.5 -98.5q99 0 185.5 46.5t136.5 130.5h423q-56 -159 -170.5 -281t-267.5 -188.5t-321 -66.5q-187 0 -356 83q-228 -116 -394 -116q-237 0 -237 263q0 115 45 275q17 60 109 229q199 360 475 606 -q-184 -79 -427 -354q63 274 283.5 449.5t501.5 175.5q30 0 45 -1q255 117 433 117q64 0 116 -13t94.5 -40.5t66.5 -76.5t24 -115q0 -116 -75 -286q101 -182 101 -390zM1722 1239q0 83 -53 132t-137 49q-108 0 -254 -70q121 -47 222.5 -131.5t170.5 -195.5q51 135 51 216z -M128 2q0 -86 48.5 -132.5t134.5 -46.5q115 0 266 83q-122 72 -213.5 183t-137.5 245q-98 -205 -98 -332zM632 715h728q-5 142 -113 237t-251 95q-144 0 -251.5 -95t-112.5 -237z" /> - <glyph glyph-name="_582" unicode="&#xf26c;" horiz-adv-x="2048" -d="M1792 288v960q0 13 -9.5 22.5t-22.5 9.5h-1600q-13 0 -22.5 -9.5t-9.5 -22.5v-960q0 -13 9.5 -22.5t22.5 -9.5h1600q13 0 22.5 9.5t9.5 22.5zM1920 1248v-960q0 -66 -47 -113t-113 -47h-736v-128h352q14 0 23 -9t9 -23v-64q0 -14 -9 -23t-23 -9h-832q-14 0 -23 9t-9 23 -v64q0 14 9 23t23 9h352v128h-736q-66 0 -113 47t-47 113v960q0 66 47 113t113 47h1600q66 0 113 -47t47 -113z" /> - <glyph glyph-name="_583" unicode="&#xf26d;" horiz-adv-x="1792" -d="M138 1408h197q-70 -64 -126 -149q-36 -56 -59 -115t-30 -125.5t-8.5 -120t10.5 -132t21 -126t28 -136.5q4 -19 6 -28q51 -238 81 -329q57 -171 152 -275h-272q-48 0 -82 34t-34 82v1304q0 48 34 82t82 34zM1346 1408h308q48 0 82 -34t34 -82v-1304q0 -48 -34 -82t-82 -34 -h-178q212 210 196 565l-469 -101q-2 -45 -12 -82t-31 -72t-59.5 -59.5t-93.5 -36.5q-123 -26 -199 40q-32 27 -53 61t-51.5 129t-64.5 258q-35 163 -45.5 263t-5.5 139t23 77q20 41 62.5 73t102.5 45q45 12 83.5 6.5t67 -17t54 -35t43 -48t34.5 -56.5l468 100 -q-68 175 -180 287z" /> - <glyph glyph-name="_584" unicode="&#xf26e;" -d="M1401 -11l-6 -6q-113 -113 -259 -175q-154 -64 -317 -64q-165 0 -317 64q-148 63 -259 175q-113 112 -175 258q-42 103 -54 189q-4 28 48 36q51 8 56 -20q1 -1 1 -4q18 -90 46 -159q50 -124 152 -226q98 -98 226 -152q132 -56 276 -56q143 0 276 56q128 55 225 152l6 6 -q10 10 25 6q12 -3 33 -22q36 -37 17 -58zM929 604l-66 -66l63 -63q21 -21 -7 -49q-17 -17 -32 -17q-10 0 -19 10l-62 61l-66 -66q-5 -5 -15 -5q-15 0 -31 16l-2 2q-18 15 -18 29q0 7 8 17l66 65l-66 66q-16 16 14 45q18 18 31 18q6 0 13 -5l65 -66l65 65q18 17 48 -13 -q27 -27 11 -44zM1400 547q0 -118 -46 -228q-45 -105 -126 -186q-80 -80 -187 -126t-228 -46t-228 46t-187 126q-82 82 -125 186q-15 33 -15 40h-1q-9 27 43 44q50 16 60 -12q37 -99 97 -167h1v339v2q3 136 102 232q105 103 253 103q147 0 251 -103t104 -249 -q0 -147 -104.5 -251t-250.5 -104q-58 0 -112 16q-28 11 -13 61q16 51 44 43l14 -3q14 -3 33 -6t30 -3q104 0 176 71.5t72 174.5q0 101 -72 171q-71 71 -175 71q-107 0 -178 -80q-64 -72 -64 -160v-413q110 -67 242 -67q96 0 185 36.5t156 103.5t103.5 155t36.5 183 -q0 198 -141 339q-140 140 -339 140q-200 0 -340 -140q-53 -53 -77 -87l-2 -2q-8 -11 -13 -15.5t-21.5 -9.5t-38.5 3q-21 5 -36.5 16.5t-15.5 26.5v680q0 15 10.5 26.5t27.5 11.5h877q30 0 30 -55t-30 -55h-811v-483h1q40 42 102 84t108 61q109 46 231 46q121 0 228 -46 -t187 -126q81 -81 126 -186q46 -112 46 -229zM1369 1128q9 -8 9 -18t-5.5 -18t-16.5 -21q-26 -26 -39 -26q-9 0 -16 7q-106 91 -207 133q-128 56 -276 56q-133 0 -262 -49q-27 -10 -45 37q-9 25 -8 38q3 16 16 20q130 57 299 57q164 0 316 -64q137 -58 235 -152z" /> - <glyph glyph-name="_585" unicode="&#xf270;" horiz-adv-x="1792" -d="M1551 60q15 6 26 3t11 -17.5t-15 -33.5q-13 -16 -44 -43.5t-95.5 -68t-141 -74t-188 -58t-229.5 -24.5q-119 0 -238 31t-209 76.5t-172.5 104t-132.5 105t-84 87.5q-8 9 -10 16.5t1 12t8 7t11.5 2t11.5 -4.5q192 -117 300 -166q389 -176 799 -90q190 40 391 135z -M1758 175q11 -16 2.5 -69.5t-28.5 -102.5q-34 -83 -85 -124q-17 -14 -26 -9t0 24q21 45 44.5 121.5t6.5 98.5q-5 7 -15.5 11.5t-27 6t-29.5 2.5t-35 0t-31.5 -2t-31 -3t-22.5 -2q-6 -1 -13 -1.5t-11 -1t-8.5 -1t-7 -0.5h-5.5h-4.5t-3 0.5t-2 1.5l-1.5 3q-6 16 47 40t103 30 -q46 7 108 1t76 -24zM1364 618q0 -31 13.5 -64t32 -58t37.5 -46t33 -32l13 -11l-227 -224q-40 37 -79 75.5t-58 58.5l-19 20q-11 11 -25 33q-38 -59 -97.5 -102.5t-127.5 -63.5t-140 -23t-137.5 21t-117.5 65.5t-83 113t-31 162.5q0 84 28 154t72 116.5t106.5 83t122.5 57 -t130 34.5t119.5 18.5t99.5 6.5v127q0 65 -21 97q-34 53 -121 53q-6 0 -16.5 -1t-40.5 -12t-56 -29.5t-56 -59.5t-48 -96l-294 27q0 60 22 119t67 113t108 95t151.5 65.5t190.5 24.5q100 0 181 -25t129.5 -61.5t81 -83t45 -86t12.5 -73.5v-589zM692 597q0 -86 70 -133 -q66 -44 139 -22q84 25 114 123q14 45 14 101v162q-59 -2 -111 -12t-106.5 -33.5t-87 -71t-32.5 -114.5z" /> - <glyph glyph-name="_586" unicode="&#xf271;" horiz-adv-x="1792" -d="M1536 1280q52 0 90 -38t38 -90v-1280q0 -52 -38 -90t-90 -38h-1408q-52 0 -90 38t-38 90v1280q0 52 38 90t90 38h128v96q0 66 47 113t113 47h64q66 0 113 -47t47 -113v-96h384v96q0 66 47 113t113 47h64q66 0 113 -47t47 -113v-96h128zM1152 1376v-288q0 -14 9 -23t23 -9 -h64q14 0 23 9t9 23v288q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23zM384 1376v-288q0 -14 9 -23t23 -9h64q14 0 23 9t9 23v288q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23zM1536 -128v1024h-1408v-1024h1408zM896 448h224q14 0 23 -9t9 -23v-64q0 -14 -9 -23t-23 -9h-224 -v-224q0 -14 -9 -23t-23 -9h-64q-14 0 -23 9t-9 23v224h-224q-14 0 -23 9t-9 23v64q0 14 9 23t23 9h224v224q0 14 9 23t23 9h64q14 0 23 -9t9 -23v-224z" /> - <glyph glyph-name="_587" unicode="&#xf272;" horiz-adv-x="1792" -d="M1152 416v-64q0 -14 -9 -23t-23 -9h-576q-14 0 -23 9t-9 23v64q0 14 9 23t23 9h576q14 0 23 -9t9 -23zM128 -128h1408v1024h-1408v-1024zM512 1088v288q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23v-288q0 -14 9 -23t23 -9h64q14 0 23 9t9 23zM1280 1088v288q0 14 -9 23 -t-23 9h-64q-14 0 -23 -9t-9 -23v-288q0 -14 9 -23t23 -9h64q14 0 23 9t9 23zM1664 1152v-1280q0 -52 -38 -90t-90 -38h-1408q-52 0 -90 38t-38 90v1280q0 52 38 90t90 38h128v96q0 66 47 113t113 47h64q66 0 113 -47t47 -113v-96h384v96q0 66 47 113t113 47h64q66 0 113 -47 -t47 -113v-96h128q52 0 90 -38t38 -90z" /> - <glyph glyph-name="_588" unicode="&#xf273;" horiz-adv-x="1792" -d="M1111 151l-46 -46q-9 -9 -22 -9t-23 9l-188 189l-188 -189q-10 -9 -23 -9t-22 9l-46 46q-9 9 -9 22t9 23l189 188l-189 188q-9 10 -9 23t9 22l46 46q9 9 22 9t23 -9l188 -188l188 188q10 9 23 9t22 -9l46 -46q9 -9 9 -22t-9 -23l-188 -188l188 -188q9 -10 9 -23t-9 -22z -M128 -128h1408v1024h-1408v-1024zM512 1088v288q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23v-288q0 -14 9 -23t23 -9h64q14 0 23 9t9 23zM1280 1088v288q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23v-288q0 -14 9 -23t23 -9h64q14 0 23 9t9 23zM1664 1152v-1280 -q0 -52 -38 -90t-90 -38h-1408q-52 0 -90 38t-38 90v1280q0 52 38 90t90 38h128v96q0 66 47 113t113 47h64q66 0 113 -47t47 -113v-96h384v96q0 66 47 113t113 47h64q66 0 113 -47t47 -113v-96h128q52 0 90 -38t38 -90z" /> - <glyph glyph-name="_589" unicode="&#xf274;" horiz-adv-x="1792" -d="M1303 572l-512 -512q-10 -9 -23 -9t-23 9l-288 288q-9 10 -9 23t9 22l46 46q9 9 22 9t23 -9l220 -220l444 444q10 9 23 9t22 -9l46 -46q9 -9 9 -22t-9 -23zM128 -128h1408v1024h-1408v-1024zM512 1088v288q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23v-288q0 -14 9 -23 -t23 -9h64q14 0 23 9t9 23zM1280 1088v288q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23v-288q0 -14 9 -23t23 -9h64q14 0 23 9t9 23zM1664 1152v-1280q0 -52 -38 -90t-90 -38h-1408q-52 0 -90 38t-38 90v1280q0 52 38 90t90 38h128v96q0 66 47 113t113 47h64q66 0 113 -47 -t47 -113v-96h384v96q0 66 47 113t113 47h64q66 0 113 -47t47 -113v-96h128q52 0 90 -38t38 -90z" /> - <glyph glyph-name="_590" unicode="&#xf275;" horiz-adv-x="1792" -d="M448 1536q26 0 45 -19t19 -45v-891l536 429q17 14 40 14q26 0 45 -19t19 -45v-379l536 429q17 14 40 14q26 0 45 -19t19 -45v-1152q0 -26 -19 -45t-45 -19h-1664q-26 0 -45 19t-19 45v1664q0 26 19 45t45 19h384z" /> - <glyph glyph-name="_591" unicode="&#xf276;" horiz-adv-x="1024" -d="M512 448q66 0 128 15v-655q0 -26 -19 -45t-45 -19h-128q-26 0 -45 19t-19 45v655q62 -15 128 -15zM512 1536q212 0 362 -150t150 -362t-150 -362t-362 -150t-362 150t-150 362t150 362t362 150zM512 1312q14 0 23 9t9 23t-9 23t-23 9q-146 0 -249 -103t-103 -249 -q0 -14 9 -23t23 -9t23 9t9 23q0 119 84.5 203.5t203.5 84.5z" /> - <glyph glyph-name="_592" unicode="&#xf277;" horiz-adv-x="1792" -d="M1745 1239q10 -10 10 -23t-10 -23l-141 -141q-28 -28 -68 -28h-1344q-26 0 -45 19t-19 45v256q0 26 19 45t45 19h576v64q0 26 19 45t45 19h128q26 0 45 -19t19 -45v-64h512q40 0 68 -28zM768 320h256v-512q0 -26 -19 -45t-45 -19h-128q-26 0 -45 19t-19 45v512zM1600 768 -q26 0 45 -19t19 -45v-256q0 -26 -19 -45t-45 -19h-1344q-40 0 -68 28l-141 141q-10 10 -10 23t10 23l141 141q28 28 68 28h512v192h256v-192h576z" /> - <glyph glyph-name="_593" unicode="&#xf278;" horiz-adv-x="2048" -d="M2020 1525q28 -20 28 -53v-1408q0 -20 -11 -36t-29 -23l-640 -256q-24 -11 -48 0l-616 246l-616 -246q-10 -5 -24 -5q-19 0 -36 11q-28 20 -28 53v1408q0 20 11 36t29 23l640 256q24 11 48 0l616 -246l616 246q32 13 60 -6zM736 1390v-1270l576 -230v1270zM128 1173 -v-1270l544 217v1270zM1920 107v1270l-544 -217v-1270z" /> - <glyph glyph-name="_594" unicode="&#xf279;" horiz-adv-x="1792" -d="M512 1536q13 0 22.5 -9.5t9.5 -22.5v-1472q0 -20 -17 -28l-480 -256q-7 -4 -15 -4q-13 0 -22.5 9.5t-9.5 22.5v1472q0 20 17 28l480 256q7 4 15 4zM1760 1536q13 0 22.5 -9.5t9.5 -22.5v-1472q0 -20 -17 -28l-480 -256q-7 -4 -15 -4q-13 0 -22.5 9.5t-9.5 22.5v1472 -q0 20 17 28l480 256q7 4 15 4zM640 1536q8 0 14 -3l512 -256q18 -10 18 -29v-1472q0 -13 -9.5 -22.5t-22.5 -9.5q-8 0 -14 3l-512 256q-18 10 -18 29v1472q0 13 9.5 22.5t22.5 9.5z" /> - <glyph glyph-name="_595" unicode="&#xf27a;" horiz-adv-x="1792" -d="M640 640q0 53 -37.5 90.5t-90.5 37.5t-90.5 -37.5t-37.5 -90.5t37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5zM1024 640q0 53 -37.5 90.5t-90.5 37.5t-90.5 -37.5t-37.5 -90.5t37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5zM1408 640q0 53 -37.5 90.5t-90.5 37.5 -t-90.5 -37.5t-37.5 -90.5t37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5zM1792 640q0 -174 -120 -321.5t-326 -233t-450 -85.5q-110 0 -211 18q-173 -173 -435 -229q-52 -10 -86 -13q-12 -1 -22 6t-13 18q-4 15 20 37q5 5 23.5 21.5t25.5 23.5t23.5 25.5t24 31.5t20.5 37 -t20 48t14.5 57.5t12.5 72.5q-146 90 -229.5 216.5t-83.5 269.5q0 174 120 321.5t326 233t450 85.5t450 -85.5t326 -233t120 -321.5z" /> - <glyph glyph-name="_596" unicode="&#xf27b;" horiz-adv-x="1792" -d="M640 640q0 -53 -37.5 -90.5t-90.5 -37.5t-90.5 37.5t-37.5 90.5t37.5 90.5t90.5 37.5t90.5 -37.5t37.5 -90.5zM1024 640q0 -53 -37.5 -90.5t-90.5 -37.5t-90.5 37.5t-37.5 90.5t37.5 90.5t90.5 37.5t90.5 -37.5t37.5 -90.5zM1408 640q0 -53 -37.5 -90.5t-90.5 -37.5 -t-90.5 37.5t-37.5 90.5t37.5 90.5t90.5 37.5t90.5 -37.5t37.5 -90.5zM896 1152q-204 0 -381.5 -69.5t-282 -187.5t-104.5 -255q0 -112 71.5 -213.5t201.5 -175.5l87 -50l-27 -96q-24 -91 -70 -172q152 63 275 171l43 38l57 -6q69 -8 130 -8q204 0 381.5 69.5t282 187.5 -t104.5 255t-104.5 255t-282 187.5t-381.5 69.5zM1792 640q0 -174 -120 -321.5t-326 -233t-450 -85.5q-70 0 -145 8q-198 -175 -460 -242q-49 -14 -114 -22h-5q-15 0 -27 10.5t-16 27.5v1q-3 4 -0.5 12t2 10t4.5 9.5l6 9t7 8.5t8 9q7 8 31 34.5t34.5 38t31 39.5t32.5 51 -t27 59t26 76q-157 89 -247.5 220t-90.5 281q0 130 71 248.5t191 204.5t286 136.5t348 50.5t348 -50.5t286 -136.5t191 -204.5t71 -248.5z" /> - <glyph glyph-name="_597" unicode="&#xf27c;" horiz-adv-x="1024" -d="M512 345l512 295v-591l-512 -296v592zM0 640v-591l512 296zM512 1527v-591l-512 -296v591zM512 936l512 295v-591z" /> - <glyph glyph-name="_598" unicode="&#xf27d;" horiz-adv-x="1792" -d="M1709 1018q-10 -236 -332 -651q-333 -431 -562 -431q-142 0 -240 263q-44 160 -132 482q-72 262 -157 262q-18 0 -127 -76l-77 98q24 21 108 96.5t130 115.5q156 138 241 146q95 9 153 -55.5t81 -203.5q44 -287 66 -373q55 -249 120 -249q51 0 154 161q101 161 109 246 -q13 139 -109 139q-57 0 -121 -26q120 393 459 382q251 -8 236 -326z" /> - <glyph glyph-name="f27e" unicode="&#xf27e;" -d="M0 1408h1536v-1536h-1536v1536zM1085 293l-221 631l221 297h-634l221 -297l-221 -631l317 -304z" /> - <glyph glyph-name="uniF280" unicode="&#xf280;" -d="M0 1408h1536v-1536h-1536v1536zM908 1088l-12 -33l75 -83l-31 -114l25 -25l107 57l107 -57l25 25l-31 114l75 83l-12 33h-95l-53 96h-32l-53 -96h-95zM641 925q32 0 44.5 -16t11.5 -63l174 21q0 55 -17.5 92.5t-50.5 56t-69 25.5t-85 7q-133 0 -199 -57.5t-66 -182.5v-72 -h-96v-128h76q20 0 20 -8v-382q0 -14 -5 -20t-18 -7l-73 -7v-88h448v86l-149 14q-6 1 -8.5 1.5t-3.5 2.5t-0.5 4t1 7t0.5 10v387h191l38 128h-231q-6 0 -2 6t4 9v80q0 27 1.5 40.5t7.5 28t19.5 20t36.5 5.5zM1248 96v86l-54 9q-7 1 -9.5 2.5t-2.5 3t1 7.5t1 12v520h-275 -l-23 -101l83 -22q23 -7 23 -27v-370q0 -14 -6 -18.5t-20 -6.5l-70 -9v-86h352z" /> - <glyph glyph-name="uniF281" unicode="&#xf281;" horiz-adv-x="1792" -d="M1792 690q0 -58 -29.5 -105.5t-79.5 -72.5q12 -46 12 -96q0 -155 -106.5 -287t-290.5 -208.5t-400 -76.5t-399.5 76.5t-290 208.5t-106.5 287q0 47 11 94q-51 25 -82 73.5t-31 106.5q0 82 58 140.5t141 58.5q85 0 145 -63q218 152 515 162l116 521q3 13 15 21t26 5 -l369 -81q18 37 54 59.5t79 22.5q62 0 106 -43.5t44 -105.5t-44 -106t-106 -44t-105.5 43.5t-43.5 105.5l-334 74l-104 -472q300 -9 519 -160q58 61 143 61q83 0 141 -58.5t58 -140.5zM418 491q0 -62 43.5 -106t105.5 -44t106 44t44 106t-44 105.5t-106 43.5q-61 0 -105 -44 -t-44 -105zM1228 136q11 11 11 26t-11 26q-10 10 -25 10t-26 -10q-41 -42 -121 -62t-160 -20t-160 20t-121 62q-11 10 -26 10t-25 -10q-11 -10 -11 -25.5t11 -26.5q43 -43 118.5 -68t122.5 -29.5t91 -4.5t91 4.5t122.5 29.5t118.5 68zM1225 341q62 0 105.5 44t43.5 106 -q0 61 -44 105t-105 44q-62 0 -106 -43.5t-44 -105.5t44 -106t106 -44z" /> - <glyph glyph-name="_602" unicode="&#xf282;" horiz-adv-x="1792" -d="M69 741h1q16 126 58.5 241.5t115 217t167.5 176t223.5 117.5t276.5 43q231 0 414 -105.5t294 -303.5q104 -187 104 -442v-188h-1125q1 -111 53.5 -192.5t136.5 -122.5t189.5 -57t213 -3t208 46.5t173.5 84.5v-377q-92 -55 -229.5 -92t-312.5 -38t-316 53 -q-189 73 -311.5 249t-124.5 372q-3 242 111 412t325 268q-48 -60 -78 -125.5t-46 -159.5h635q8 77 -8 140t-47 101.5t-70.5 66.5t-80.5 41t-75 20.5t-56 8.5l-22 1q-135 -5 -259.5 -44.5t-223.5 -104.5t-176 -140.5t-138 -163.5z" /> - <glyph glyph-name="_603" unicode="&#xf283;" horiz-adv-x="2304" -d="M0 32v608h2304v-608q0 -66 -47 -113t-113 -47h-1984q-66 0 -113 47t-47 113zM640 256v-128h384v128h-384zM256 256v-128h256v128h-256zM2144 1408q66 0 113 -47t47 -113v-224h-2304v224q0 66 47 113t113 47h1984z" /> - <glyph glyph-name="_604" unicode="&#xf284;" horiz-adv-x="1792" -d="M1584 246l-218 111q-74 -120 -196.5 -189t-263.5 -69q-147 0 -271 72t-196 196t-72 270q0 110 42.5 209.5t115 172t172 115t209.5 42.5q131 0 247.5 -60.5t192.5 -168.5l215 125q-110 169 -286.5 265t-378.5 96q-161 0 -308 -63t-253 -169t-169 -253t-63 -308t63 -308 -t169 -253t253 -169t308 -63q213 0 397.5 107t290.5 292zM1030 643l693 -352q-116 -253 -334.5 -400t-492.5 -147q-182 0 -348 71t-286 191t-191 286t-71 348t71 348t191 286t286 191t348 71q260 0 470.5 -133.5t335.5 -366.5zM1543 640h-39v-160h-96v352h136q32 0 54.5 -20 -t28.5 -48t1 -56t-27.5 -48t-57.5 -20z" /> - <glyph glyph-name="uniF285" unicode="&#xf285;" horiz-adv-x="1792" -d="M1427 827l-614 386l92 151h855zM405 562l-184 116v858l1183 -743zM1424 697l147 -95v-858l-532 335zM1387 718l-500 -802h-855l356 571z" /> - <glyph glyph-name="uniF286" unicode="&#xf286;" horiz-adv-x="1792" -d="M640 528v224q0 16 -16 16h-96q-16 0 -16 -16v-224q0 -16 16 -16h96q16 0 16 16zM1152 528v224q0 16 -16 16h-96q-16 0 -16 -16v-224q0 -16 16 -16h96q16 0 16 16zM1664 496v-752h-640v320q0 80 -56 136t-136 56t-136 -56t-56 -136v-320h-640v752q0 16 16 16h96 -q16 0 16 -16v-112h128v624q0 16 16 16h96q16 0 16 -16v-112h128v112q0 16 16 16h96q16 0 16 -16v-112h128v112q0 6 2.5 9.5t8.5 5t9.5 2t11.5 0t9 -0.5v391q-32 15 -32 50q0 23 16.5 39t38.5 16t38.5 -16t16.5 -39q0 -35 -32 -50v-17q45 10 83 10q21 0 59.5 -7.5t54.5 -7.5 -q17 0 47 7.5t37 7.5q16 0 16 -16v-210q0 -15 -35 -21.5t-62 -6.5q-18 0 -54.5 7.5t-55.5 7.5q-40 0 -90 -12v-133q1 0 9 0.5t11.5 0t9.5 -2t8.5 -5t2.5 -9.5v-112h128v112q0 16 16 16h96q16 0 16 -16v-112h128v112q0 16 16 16h96q16 0 16 -16v-624h128v112q0 16 16 16h96 -q16 0 16 -16z" /> - <glyph glyph-name="_607" unicode="&#xf287;" horiz-adv-x="2304" -d="M2288 731q16 -8 16 -27t-16 -27l-320 -192q-8 -5 -16 -5q-9 0 -16 4q-16 10 -16 28v128h-858q37 -58 83 -165q16 -37 24.5 -55t24 -49t27 -47t27 -34t31.5 -26t33 -8h96v96q0 14 9 23t23 9h320q14 0 23 -9t9 -23v-320q0 -14 -9 -23t-23 -9h-320q-14 0 -23 9t-9 23v96h-96 -q-32 0 -61 10t-51 23.5t-45 40.5t-37 46t-33.5 57t-28.5 57.5t-28 60.5q-23 53 -37 81.5t-36 65t-44.5 53.5t-46.5 17h-360q-22 -84 -91 -138t-157 -54q-106 0 -181 75t-75 181t75 181t181 75q88 0 157 -54t91 -138h104q24 0 46.5 17t44.5 53.5t36 65t37 81.5q19 41 28 60.5 -t28.5 57.5t33.5 57t37 46t45 40.5t51 23.5t61 10h107q21 57 70 92.5t111 35.5q80 0 136 -56t56 -136t-56 -136t-136 -56q-62 0 -111 35.5t-70 92.5h-107q-17 0 -33 -8t-31.5 -26t-27 -34t-27 -47t-24 -49t-24.5 -55q-46 -107 -83 -165h1114v128q0 18 16 28t32 -1z" /> - <glyph glyph-name="_608" unicode="&#xf288;" horiz-adv-x="1792" -d="M1150 774q0 -56 -39.5 -95t-95.5 -39h-253v269h253q56 0 95.5 -39.5t39.5 -95.5zM1329 774q0 130 -91.5 222t-222.5 92h-433v-896h180v269h253q130 0 222 91.5t92 221.5zM1792 640q0 -182 -71 -348t-191 -286t-286 -191t-348 -71t-348 71t-286 191t-191 286t-71 348 -t71 348t191 286t286 191t348 71t348 -71t286 -191t191 -286t71 -348z" /> - <glyph glyph-name="_609" unicode="&#xf289;" horiz-adv-x="2304" -d="M1645 438q0 59 -34 106.5t-87 68.5q-7 -45 -23 -92q-7 -24 -27.5 -38t-44.5 -14q-12 0 -24 3q-31 10 -45 38.5t-4 58.5q23 71 23 143q0 123 -61 227.5t-166 165.5t-228 61q-134 0 -247 -73t-167 -194q108 -28 188 -106q22 -23 22 -55t-22 -54t-54 -22t-55 22 -q-75 75 -180 75q-106 0 -181 -74.5t-75 -180.5t75 -180.5t181 -74.5h1046q79 0 134.5 55.5t55.5 133.5zM1798 438q0 -142 -100.5 -242t-242.5 -100h-1046q-169 0 -289 119.5t-120 288.5q0 153 100 267t249 136q62 184 221 298t354 114q235 0 408.5 -158.5t196.5 -389.5 -q116 -25 192.5 -118.5t76.5 -214.5zM2048 438q0 -175 -97 -319q-23 -33 -64 -33q-24 0 -43 13q-26 17 -32 48.5t12 57.5q71 104 71 233t-71 233q-18 26 -12 57t32 49t57.5 11.5t49.5 -32.5q97 -142 97 -318zM2304 438q0 -244 -134 -443q-23 -34 -64 -34q-23 0 -42 13 -q-26 18 -32.5 49t11.5 57q108 164 108 358q0 195 -108 357q-18 26 -11.5 57.5t32.5 48.5q26 18 57 12t49 -33q134 -198 134 -442z" /> - <glyph glyph-name="_610" unicode="&#xf28a;" -d="M1500 -13q0 -89 -63 -152.5t-153 -63.5t-153.5 63.5t-63.5 152.5q0 90 63.5 153.5t153.5 63.5t153 -63.5t63 -153.5zM1267 268q-115 -15 -192.5 -102.5t-77.5 -205.5q0 -74 33 -138q-146 -78 -379 -78q-109 0 -201 21t-153.5 54.5t-110.5 76.5t-76 85t-44.5 83 -t-23.5 66.5t-6 39.5q0 19 4.5 42.5t18.5 56t36.5 58t64 43.5t94.5 18t94 -17.5t63 -41t35.5 -53t17.5 -49t4 -33.5q0 -34 -23 -81q28 -27 82 -42t93 -17l40 -1q115 0 190 51t75 133q0 26 -9 48.5t-31.5 44.5t-49.5 41t-74 44t-93.5 47.5t-119.5 56.5q-28 13 -43 20 -q-116 55 -187 100t-122.5 102t-72 125.5t-20.5 162.5q0 78 20.5 150t66 137.5t112.5 114t166.5 77t221.5 28.5q120 0 220 -26t164.5 -67t109.5 -94t64 -105.5t19 -103.5q0 -46 -15 -82.5t-36.5 -58t-48.5 -36t-49 -19.5t-39 -5h-8h-32t-39 5t-44 14t-41 28t-37 46t-24 70.5 -t-10 97.5q-15 16 -59 25.5t-81 10.5l-37 1q-68 0 -117.5 -31t-70.5 -70t-21 -76q0 -24 5 -43t24 -46t53 -51t97 -53.5t150 -58.5q76 -25 138.5 -53.5t109 -55.5t83 -59t60.5 -59.5t41 -62.5t26.5 -62t14.5 -63.5t6 -62t1 -62.5z" /> - <glyph glyph-name="_611" unicode="&#xf28b;" -d="M704 352v576q0 14 -9 23t-23 9h-256q-14 0 -23 -9t-9 -23v-576q0 -14 9 -23t23 -9h256q14 0 23 9t9 23zM1152 352v576q0 14 -9 23t-23 9h-256q-14 0 -23 -9t-9 -23v-576q0 -14 9 -23t23 -9h256q14 0 23 9t9 23zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103 -t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" /> - <glyph glyph-name="_612" unicode="&#xf28c;" -d="M768 1408q209 0 385.5 -103t279.5 -279.5t103 -385.5t-103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103zM768 96q148 0 273 73t198 198t73 273t-73 273t-198 198t-273 73t-273 -73t-198 -198t-73 -273 -t73 -273t198 -198t273 -73zM864 320q-14 0 -23 9t-9 23v576q0 14 9 23t23 9h192q14 0 23 -9t9 -23v-576q0 -14 -9 -23t-23 -9h-192zM480 320q-14 0 -23 9t-9 23v576q0 14 9 23t23 9h192q14 0 23 -9t9 -23v-576q0 -14 -9 -23t-23 -9h-192z" /> - <glyph glyph-name="_613" unicode="&#xf28d;" -d="M1088 352v576q0 14 -9 23t-23 9h-576q-14 0 -23 -9t-9 -23v-576q0 -14 9 -23t23 -9h576q14 0 23 9t9 23zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5 -t103 -385.5z" /> - <glyph glyph-name="_614" unicode="&#xf28e;" -d="M768 1408q209 0 385.5 -103t279.5 -279.5t103 -385.5t-103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103zM768 96q148 0 273 73t198 198t73 273t-73 273t-198 198t-273 73t-273 -73t-198 -198t-73 -273 -t73 -273t198 -198t273 -73zM480 320q-14 0 -23 9t-9 23v576q0 14 9 23t23 9h576q14 0 23 -9t9 -23v-576q0 -14 -9 -23t-23 -9h-576z" /> - <glyph glyph-name="_615" unicode="&#xf290;" horiz-adv-x="1792" -d="M1757 128l35 -313q3 -28 -16 -50q-19 -21 -48 -21h-1664q-29 0 -48 21q-19 22 -16 50l35 313h1722zM1664 967l86 -775h-1708l86 775q3 24 21 40.5t43 16.5h256v-128q0 -53 37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5v128h384v-128q0 -53 37.5 -90.5t90.5 -37.5 -t90.5 37.5t37.5 90.5v128h256q25 0 43 -16.5t21 -40.5zM1280 1152v-256q0 -26 -19 -45t-45 -19t-45 19t-19 45v256q0 106 -75 181t-181 75t-181 -75t-75 -181v-256q0 -26 -19 -45t-45 -19t-45 19t-19 45v256q0 159 112.5 271.5t271.5 112.5t271.5 -112.5t112.5 -271.5z" /> - <glyph glyph-name="_616" unicode="&#xf291;" horiz-adv-x="2048" -d="M1920 768q53 0 90.5 -37.5t37.5 -90.5t-37.5 -90.5t-90.5 -37.5h-15l-115 -662q-8 -46 -44 -76t-82 -30h-1280q-46 0 -82 30t-44 76l-115 662h-15q-53 0 -90.5 37.5t-37.5 90.5t37.5 90.5t90.5 37.5h1792zM485 -32q26 2 43.5 22.5t15.5 46.5l-32 416q-2 26 -22.5 43.5 -t-46.5 15.5t-43.5 -22.5t-15.5 -46.5l32 -416q2 -25 20.5 -42t43.5 -17h5zM896 32v416q0 26 -19 45t-45 19t-45 -19t-19 -45v-416q0 -26 19 -45t45 -19t45 19t19 45zM1280 32v416q0 26 -19 45t-45 19t-45 -19t-19 -45v-416q0 -26 19 -45t45 -19t45 19t19 45zM1632 27l32 416 -q2 26 -15.5 46.5t-43.5 22.5t-46.5 -15.5t-22.5 -43.5l-32 -416q-2 -26 15.5 -46.5t43.5 -22.5h5q25 0 43.5 17t20.5 42zM476 1244l-93 -412h-132l101 441q19 88 89 143.5t160 55.5h167q0 26 19 45t45 19h384q26 0 45 -19t19 -45h167q90 0 160 -55.5t89 -143.5l101 -441 -h-132l-93 412q-11 44 -45.5 72t-79.5 28h-167q0 -26 -19 -45t-45 -19h-384q-26 0 -45 19t-19 45h-167q-45 0 -79.5 -28t-45.5 -72z" /> - <glyph glyph-name="_617" unicode="&#xf292;" horiz-adv-x="1792" -d="M991 512l64 256h-254l-64 -256h254zM1759 1016l-56 -224q-7 -24 -31 -24h-327l-64 -256h311q15 0 25 -12q10 -14 6 -28l-56 -224q-5 -24 -31 -24h-327l-81 -328q-7 -24 -31 -24h-224q-16 0 -26 12q-9 12 -6 28l78 312h-254l-81 -328q-7 -24 -31 -24h-225q-15 0 -25 12 -q-9 12 -6 28l78 312h-311q-15 0 -25 12q-9 12 -6 28l56 224q7 24 31 24h327l64 256h-311q-15 0 -25 12q-10 14 -6 28l56 224q5 24 31 24h327l81 328q7 24 32 24h224q15 0 25 -12q9 -12 6 -28l-78 -312h254l81 328q7 24 32 24h224q15 0 25 -12q9 -12 6 -28l-78 -312h311 -q15 0 25 -12q9 -12 6 -28z" /> - <glyph glyph-name="_618" unicode="&#xf293;" -d="M841 483l148 -148l-149 -149zM840 1094l149 -149l-148 -148zM710 -130l464 464l-306 306l306 306l-464 464v-611l-255 255l-93 -93l320 -321l-320 -321l93 -93l255 255v-611zM1429 640q0 -209 -32 -365.5t-87.5 -257t-140.5 -162.5t-181.5 -86.5t-219.5 -24.5 -t-219.5 24.5t-181.5 86.5t-140.5 162.5t-87.5 257t-32 365.5t32 365.5t87.5 257t140.5 162.5t181.5 86.5t219.5 24.5t219.5 -24.5t181.5 -86.5t140.5 -162.5t87.5 -257t32 -365.5z" /> - <glyph glyph-name="_619" unicode="&#xf294;" horiz-adv-x="1024" -d="M596 113l173 172l-173 172v-344zM596 823l173 172l-173 172v-344zM628 640l356 -356l-539 -540v711l-297 -296l-108 108l372 373l-372 373l108 108l297 -296v711l539 -540z" /> - <glyph glyph-name="_620" unicode="&#xf295;" -d="M1280 256q0 52 -38 90t-90 38t-90 -38t-38 -90t38 -90t90 -38t90 38t38 90zM512 1024q0 52 -38 90t-90 38t-90 -38t-38 -90t38 -90t90 -38t90 38t38 90zM1536 256q0 -159 -112.5 -271.5t-271.5 -112.5t-271.5 112.5t-112.5 271.5t112.5 271.5t271.5 112.5t271.5 -112.5 -t112.5 -271.5zM1440 1344q0 -20 -13 -38l-1056 -1408q-19 -26 -51 -26h-160q-26 0 -45 19t-19 45q0 20 13 38l1056 1408q19 26 51 26h160q26 0 45 -19t19 -45zM768 1024q0 -159 -112.5 -271.5t-271.5 -112.5t-271.5 112.5t-112.5 271.5t112.5 271.5t271.5 112.5 -t271.5 -112.5t112.5 -271.5z" /> - <glyph glyph-name="_621" unicode="&#xf296;" horiz-adv-x="1792" -d="M104 830l792 -1015l-868 630q-18 13 -25 34.5t0 42.5l101 308v0zM566 830h660l-330 -1015v0zM368 1442l198 -612h-462l198 612q8 23 33 23t33 -23zM1688 830l101 -308q7 -21 0 -42.5t-25 -34.5l-868 -630l792 1015v0zM1688 830h-462l198 612q8 23 33 23t33 -23z" /> - <glyph glyph-name="_622" unicode="&#xf297;" horiz-adv-x="1792" -d="M384 704h160v224h-160v-224zM1221 372v92q-104 -36 -243 -38q-135 -1 -259.5 46.5t-220.5 122.5l1 -96q88 -80 212 -128.5t272 -47.5q129 0 238 49zM640 704h640v224h-640v-224zM1792 736q0 -187 -99 -352q89 -102 89 -229q0 -157 -129.5 -268t-313.5 -111 -q-122 0 -225 52.5t-161 140.5q-19 -1 -57 -1t-57 1q-58 -88 -161 -140.5t-225 -52.5q-184 0 -313.5 111t-129.5 268q0 127 89 229q-99 165 -99 352q0 209 120 385.5t326.5 279.5t449.5 103t449.5 -103t326.5 -279.5t120 -385.5z" /> - <glyph glyph-name="_623" unicode="&#xf298;" -d="M515 625v-128h-252v128h252zM515 880v-127h-252v127h252zM1273 369v-128h-341v128h341zM1273 625v-128h-672v128h672zM1273 880v-127h-672v127h672zM1408 20v1240q0 8 -6 14t-14 6h-32l-378 -256l-210 171l-210 -171l-378 256h-32q-8 0 -14 -6t-6 -14v-1240q0 -8 6 -14 -t14 -6h1240q8 0 14 6t6 14zM553 1130l185 150h-406zM983 1130l221 150h-406zM1536 1260v-1240q0 -62 -43 -105t-105 -43h-1240q-62 0 -105 43t-43 105v1240q0 62 43 105t105 43h1240q62 0 105 -43t43 -105z" /> - <glyph glyph-name="_624" unicode="&#xf299;" horiz-adv-x="1792" -d="M896 720q-104 196 -160 278q-139 202 -347 318q-34 19 -70 36q-89 40 -94 32t34 -38l39 -31q62 -43 112.5 -93.5t94.5 -116.5t70.5 -113t70.5 -131q9 -17 13 -25q44 -84 84 -153t98 -154t115.5 -150t131 -123.5t148.5 -90.5q153 -66 154 -60q1 3 -49 37q-53 36 -81 57 -q-77 58 -179 211t-185 310zM549 177q-76 60 -132.5 125t-98 143.5t-71 154.5t-58.5 186t-52 209t-60.5 252t-76.5 289q273 0 497.5 -36t379 -92t271 -144.5t185.5 -172.5t110 -198.5t56 -199.5t12.5 -198.5t-9.5 -173t-20 -143.5t-13 -107l323 -327h-104l-281 285 -q-22 -2 -91.5 -14t-121.5 -19t-138 -6t-160.5 17t-167.5 59t-179 111z" /> - <glyph glyph-name="_625" unicode="&#xf29a;" horiz-adv-x="1792" -d="M1374 879q-6 26 -28.5 39.5t-48.5 7.5q-261 -62 -401 -62t-401 62q-26 6 -48.5 -7.5t-28.5 -39.5t7.5 -48.5t39.5 -28.5q194 -46 303 -58q-2 -158 -15.5 -269t-26.5 -155.5t-41 -115.5l-9 -21q-10 -25 1 -49t36 -34q9 -4 23 -4q44 0 60 41l8 20q54 139 71 259h42 -q17 -120 71 -259l8 -20q16 -41 60 -41q14 0 23 4q25 10 36 34t1 49l-9 21q-28 71 -41 115.5t-26.5 155.5t-15.5 269q109 12 303 58q26 6 39.5 28.5t7.5 48.5zM1024 1024q0 53 -37.5 90.5t-90.5 37.5t-90.5 -37.5t-37.5 -90.5t37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5z -M1600 640q0 -143 -55.5 -273.5t-150 -225t-225 -150t-273.5 -55.5t-273.5 55.5t-225 150t-150 225t-55.5 273.5t55.5 273.5t150 225t225 150t273.5 55.5t273.5 -55.5t225 -150t150 -225t55.5 -273.5zM896 1408q-156 0 -298 -61t-245 -164t-164 -245t-61 -298t61 -298 -t164 -245t245 -164t298 -61t298 61t245 164t164 245t61 298t-61 298t-164 245t-245 164t-298 61zM1792 640q0 -182 -71 -348t-191 -286t-286 -191t-348 -71t-348 71t-286 191t-191 286t-71 348t71 348t191 286t286 191t348 71t348 -71t286 -191t191 -286t71 -348z" /> - <glyph glyph-name="_626" unicode="&#xf29b;" -d="M1438 723q34 -35 29 -82l-44 -551q-4 -42 -34.5 -70t-71.5 -28q-6 0 -9 1q-44 3 -72.5 36.5t-25.5 77.5l35 429l-143 -8q55 -113 55 -240q0 -216 -148 -372l-137 137q91 101 91 235q0 145 -102.5 248t-247.5 103q-134 0 -236 -92l-137 138q120 114 284 141l264 300 -l-149 87l-181 -161q-33 -30 -77 -27.5t-73 35.5t-26.5 77t34.5 73l239 213q26 23 60 26.5t64 -14.5l488 -283q36 -21 48 -68q17 -67 -26 -117l-205 -232l371 20q49 3 83 -32zM1240 1180q-74 0 -126 52t-52 126t52 126t126 52t126.5 -52t52.5 -126t-52.5 -126t-126.5 -52z -M613 -62q106 0 196 61l139 -139q-146 -116 -335 -116q-148 0 -273.5 73t-198.5 198t-73 273q0 188 116 336l139 -139q-60 -88 -60 -197q0 -145 102.5 -247.5t247.5 -102.5z" /> - <glyph glyph-name="_627" unicode="&#xf29c;" -d="M880 336v-160q0 -14 -9 -23t-23 -9h-160q-14 0 -23 9t-9 23v160q0 14 9 23t23 9h160q14 0 23 -9t9 -23zM1136 832q0 -50 -15 -90t-45.5 -69t-52 -44t-59.5 -36q-32 -18 -46.5 -28t-26 -24t-11.5 -29v-32q0 -14 -9 -23t-23 -9h-160q-14 0 -23 9t-9 23v68q0 35 10.5 64.5 -t24 47.5t39 35.5t41 25.5t44.5 21q53 25 75 43t22 49q0 42 -43.5 71.5t-95.5 29.5q-56 0 -95 -27q-29 -20 -80 -83q-9 -12 -25 -12q-11 0 -19 6l-108 82q-10 7 -12 20t5 23q122 192 349 192q129 0 238.5 -89.5t109.5 -214.5zM768 1280q-130 0 -248.5 -51t-204 -136.5 -t-136.5 -204t-51 -248.5t51 -248.5t136.5 -204t204 -136.5t248.5 -51t248.5 51t204 136.5t136.5 204t51 248.5t-51 248.5t-136.5 204t-204 136.5t-248.5 51zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5 -t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" /> - <glyph glyph-name="_628" unicode="&#xf29d;" horiz-adv-x="1408" -d="M366 1225q-64 0 -110 45.5t-46 110.5q0 64 46 109.5t110 45.5t109.5 -45.5t45.5 -109.5q0 -65 -45.5 -110.5t-109.5 -45.5zM917 583q0 -50 -30 -67.5t-63.5 -6.5t-47.5 34l-367 438q-7 12 -14 15.5t-11 1.5l-3 -3q-7 -8 4 -21l122 -139l1 -354l-161 -457 -q-67 -192 -92 -234q-15 -26 -28 -32q-50 -26 -103 -1q-29 13 -41.5 43t-9.5 57q2 17 197 618l5 416l-85 -164l35 -222q4 -24 -1 -42t-14 -27.5t-19 -16t-17 -7.5l-7 -2q-19 -3 -34.5 3t-24 16t-14 22t-7.5 19.5t-2 9.5l-46 299l211 381q23 34 113 34q75 0 107 -40l424 -521 -q7 -5 14 -17l3 -3l-1 -1q7 -13 7 -29zM514 433q43 -113 88.5 -225t69.5 -168l24 -55q36 -93 42 -125q11 -70 -36 -97q-35 -22 -66 -16t-51 22t-29 35h-1q-6 16 -8 25l-124 351zM1338 -159q31 -49 31 -57q0 -5 -3 -7q-9 -5 -14.5 0.5t-15.5 26t-16 30.5q-114 172 -423 661 -q3 -1 7 1t7 4l3 2q11 9 11 17z" /> - <glyph glyph-name="_629" unicode="&#xf29e;" horiz-adv-x="2304" -d="M504 542h171l-1 265zM1530 641q0 87 -50.5 140t-146.5 53h-54v-388h52q91 0 145 57t54 138zM956 1018l1 -756q0 -14 -9.5 -24t-23.5 -10h-216q-14 0 -23.5 10t-9.5 24v62h-291l-55 -81q-10 -15 -28 -15h-267q-21 0 -30.5 18t3.5 35l556 757q9 14 27 14h332q14 0 24 -10 -t10 -24zM1783 641q0 -193 -125.5 -303t-324.5 -110h-270q-14 0 -24 10t-10 24v756q0 14 10 24t24 10h268q200 0 326 -109t126 -302zM1939 640q0 -11 -0.5 -29t-8 -71.5t-21.5 -102t-44.5 -108t-73.5 -102.5h-51q38 45 66.5 104.5t41.5 112t21 98t9 72.5l1 27q0 8 -0.5 22.5 -t-7.5 60t-20 91.5t-41 111.5t-66 124.5h43q41 -47 72 -107t45.5 -111.5t23 -96t10.5 -70.5zM2123 640q0 -11 -0.5 -29t-8 -71.5t-21.5 -102t-45 -108t-74 -102.5h-51q38 45 66.5 104.5t41.5 112t21 98t9 72.5l1 27q0 8 -0.5 22.5t-7.5 60t-19.5 91.5t-40.5 111.5t-66 124.5 -h43q41 -47 72 -107t45.5 -111.5t23 -96t10.5 -70.5zM2304 640q0 -11 -0.5 -29t-8 -71.5t-21.5 -102t-44.5 -108t-73.5 -102.5h-51q38 45 66 104.5t41 112t21 98t9 72.5l1 27q0 8 -0.5 22.5t-7.5 60t-19.5 91.5t-40.5 111.5t-66 124.5h43q41 -47 72 -107t45.5 -111.5t23 -96 -t9.5 -70.5z" /> - <glyph glyph-name="uniF2A0" unicode="&#xf2a0;" horiz-adv-x="1408" -d="M617 -153q0 11 -13 58t-31 107t-20 69q-1 4 -5 26.5t-8.5 36t-13.5 21.5q-15 14 -51 14q-23 0 -70 -5.5t-71 -5.5q-34 0 -47 11q-6 5 -11 15.5t-7.5 20t-6.5 24t-5 18.5q-37 128 -37 255t37 255q1 4 5 18.5t6.5 24t7.5 20t11 15.5q13 11 47 11q24 0 71 -5.5t70 -5.5 -q36 0 51 14q9 8 13.5 21.5t8.5 36t5 26.5q2 9 20 69t31 107t13 58q0 22 -43.5 52.5t-75.5 42.5q-20 8 -45 8q-34 0 -98 -18q-57 -17 -96.5 -40.5t-71 -66t-46 -70t-45.5 -94.5q-6 -12 -9 -19q-49 -107 -68 -216t-19 -244t19 -244t68 -216q56 -122 83 -161q63 -91 179 -127 -l6 -2q64 -18 98 -18q25 0 45 8q32 12 75.5 42.5t43.5 52.5zM776 760q-26 0 -45 19t-19 45.5t19 45.5q37 37 37 90q0 52 -37 91q-19 19 -19 45t19 45t45 19t45 -19q75 -75 75 -181t-75 -181q-21 -19 -45 -19zM957 579q-27 0 -45 19q-19 19 -19 45t19 45q112 114 112 272 -t-112 272q-19 19 -19 45t19 45t45 19t45 -19q150 -150 150 -362t-150 -362q-18 -19 -45 -19zM1138 398q-27 0 -45 19q-19 19 -19 45t19 45q90 91 138.5 208t48.5 245t-48.5 245t-138.5 208q-19 19 -19 45t19 45t45 19t45 -19q109 -109 167 -249t58 -294t-58 -294t-167 -249 -q-18 -19 -45 -19z" /> - <glyph glyph-name="uniF2A1" unicode="&#xf2a1;" horiz-adv-x="2176" -d="M192 352q-66 0 -113 -47t-47 -113t47 -113t113 -47t113 47t47 113t-47 113t-113 47zM704 352q-66 0 -113 -47t-47 -113t47 -113t113 -47t113 47t47 113t-47 113t-113 47zM704 864q-66 0 -113 -47t-47 -113t47 -113t113 -47t113 47t47 113t-47 113t-113 47zM1472 352 -q-66 0 -113 -47t-47 -113t47 -113t113 -47t113 47t47 113t-47 113t-113 47zM1984 352q-66 0 -113 -47t-47 -113t47 -113t113 -47t113 47t47 113t-47 113t-113 47zM1472 864q-66 0 -113 -47t-47 -113t47 -113t113 -47t113 47t47 113t-47 113t-113 47zM1984 864 -q-66 0 -113 -47t-47 -113t47 -113t113 -47t113 47t47 113t-47 113t-113 47zM1984 1376q-66 0 -113 -47t-47 -113t47 -113t113 -47t113 47t47 113t-47 113t-113 47zM384 192q0 -80 -56 -136t-136 -56t-136 56t-56 136t56 136t136 56t136 -56t56 -136zM896 192q0 -80 -56 -136 -t-136 -56t-136 56t-56 136t56 136t136 56t136 -56t56 -136zM384 704q0 -80 -56 -136t-136 -56t-136 56t-56 136t56 136t136 56t136 -56t56 -136zM896 704q0 -80 -56 -136t-136 -56t-136 56t-56 136t56 136t136 56t136 -56t56 -136zM384 1216q0 -80 -56 -136t-136 -56 -t-136 56t-56 136t56 136t136 56t136 -56t56 -136zM1664 192q0 -80 -56 -136t-136 -56t-136 56t-56 136t56 136t136 56t136 -56t56 -136zM896 1216q0 -80 -56 -136t-136 -56t-136 56t-56 136t56 136t136 56t136 -56t56 -136zM2176 192q0 -80 -56 -136t-136 -56t-136 56 -t-56 136t56 136t136 56t136 -56t56 -136zM1664 704q0 -80 -56 -136t-136 -56t-136 56t-56 136t56 136t136 56t136 -56t56 -136zM2176 704q0 -80 -56 -136t-136 -56t-136 56t-56 136t56 136t136 56t136 -56t56 -136zM1664 1216q0 -80 -56 -136t-136 -56t-136 56t-56 136 -t56 136t136 56t136 -56t56 -136zM2176 1216q0 -80 -56 -136t-136 -56t-136 56t-56 136t56 136t136 56t136 -56t56 -136z" /> - <glyph glyph-name="uniF2A2" unicode="&#xf2a2;" horiz-adv-x="1792" -d="M128 -192q0 -26 -19 -45t-45 -19t-45 19t-19 45t19 45t45 19t45 -19t19 -45zM320 0q0 -26 -19 -45t-45 -19t-45 19t-19 45t19 45t45 19t45 -19t19 -45zM365 365l256 -256l-90 -90l-256 256zM704 384q0 -26 -19 -45t-45 -19t-45 19t-19 45t19 45t45 19t45 -19t19 -45z -M1411 704q0 -59 -11.5 -108.5t-37.5 -93.5t-44 -67.5t-53 -64.5q-31 -35 -45.5 -54t-33.5 -50t-26.5 -64t-7.5 -74q0 -159 -112.5 -271.5t-271.5 -112.5q-26 0 -45 19t-19 45t19 45t45 19q106 0 181 75t75 181q0 57 11.5 105.5t37 91t43.5 66.5t52 63q40 46 59.5 72 -t37.5 74.5t18 103.5q0 185 -131.5 316.5t-316.5 131.5t-316.5 -131.5t-131.5 -316.5q0 -26 -19 -45t-45 -19t-45 19t-19 45q0 117 45.5 223.5t123 184t184 123t223.5 45.5t223.5 -45.5t184 -123t123 -184t45.5 -223.5zM896 576q0 -26 -19 -45t-45 -19t-45 19t-19 45t19 45 -t45 19t45 -19t19 -45zM1184 704q0 -26 -19 -45t-45 -19t-45 19t-19 45q0 93 -65.5 158.5t-158.5 65.5q-92 0 -158 -65.5t-66 -158.5q0 -26 -19 -45t-45 -19t-45 19t-19 45q0 146 103 249t249 103t249 -103t103 -249zM1578 993q10 -25 -1 -49t-36 -34q-9 -4 -23 -4 -q-19 0 -35.5 11t-23.5 30q-68 178 -224 295q-21 16 -25 42t12 47q17 21 43 25t47 -12q183 -137 266 -351zM1788 1074q9 -25 -1.5 -49t-35.5 -34q-11 -4 -23 -4q-44 0 -60 41q-92 238 -297 393q-22 16 -25.5 42t12.5 47q16 22 42 25.5t47 -12.5q235 -175 341 -449z" /> - <glyph glyph-name="uniF2A3" unicode="&#xf2a3;" horiz-adv-x="2304" -d="M1032 576q-59 2 -84 55q-17 34 -48 53.5t-68 19.5q-53 0 -90.5 -37.5t-37.5 -90.5q0 -56 36 -89l10 -8q34 -31 82 -31q37 0 68 19.5t48 53.5q25 53 84 55zM1600 704q0 56 -36 89l-10 8q-34 31 -82 31q-37 0 -68 -19.5t-48 -53.5q-25 -53 -84 -55q59 -2 84 -55 -q17 -34 48 -53.5t68 -19.5q53 0 90.5 37.5t37.5 90.5zM1174 925q-17 -35 -55 -48t-73 4q-62 31 -134 31q-51 0 -99 -17q3 0 9.5 0.5t9.5 0.5q92 0 170.5 -50t118.5 -133q17 -36 3.5 -73.5t-49.5 -54.5q-18 -9 -39 -9q21 0 39 -9q36 -17 49.5 -54.5t-3.5 -73.5 -q-40 -83 -118.5 -133t-170.5 -50h-6q-16 2 -44 4l-290 27l-239 -120q-14 -7 -29 -7q-40 0 -57 35l-160 320q-11 23 -4 47.5t29 37.5l209 119l148 267q17 155 91.5 291.5t195.5 236.5q31 25 70.5 21.5t64.5 -34.5t21.5 -70t-34.5 -65q-70 -59 -117 -128q123 84 267 101 -q40 5 71.5 -19t35.5 -64q5 -40 -19 -71.5t-64 -35.5q-84 -10 -159 -55q46 10 99 10q115 0 218 -50q36 -18 49 -55.5t-5 -73.5zM2137 1085l160 -320q11 -23 4 -47.5t-29 -37.5l-209 -119l-148 -267q-17 -155 -91.5 -291.5t-195.5 -236.5q-26 -22 -61 -22q-45 0 -74 35 -q-25 31 -21.5 70t34.5 65q70 59 117 128q-123 -84 -267 -101q-4 -1 -12 -1q-36 0 -63.5 24t-31.5 60q-5 40 19 71.5t64 35.5q84 10 159 55q-46 -10 -99 -10q-115 0 -218 50q-36 18 -49 55.5t5 73.5q17 35 55 48t73 -4q62 -31 134 -31q51 0 99 17q-3 0 -9.5 -0.5t-9.5 -0.5 -q-92 0 -170.5 50t-118.5 133q-17 36 -3.5 73.5t49.5 54.5q18 9 39 9q-21 0 -39 9q-36 17 -49.5 54.5t3.5 73.5q40 83 118.5 133t170.5 50h6h1q14 -2 42 -4l291 -27l239 120q14 7 29 7q40 0 57 -35z" /> - <glyph glyph-name="uniF2A4" unicode="&#xf2a4;" horiz-adv-x="1792" -d="M1056 704q0 -26 19 -45t45 -19t45 19t19 45q0 146 -103 249t-249 103t-249 -103t-103 -249q0 -26 19 -45t45 -19t45 19t19 45q0 93 66 158.5t158 65.5t158 -65.5t66 -158.5zM835 1280q-117 0 -223.5 -45.5t-184 -123t-123 -184t-45.5 -223.5q0 -26 19 -45t45 -19t45 19 -t19 45q0 185 131.5 316.5t316.5 131.5t316.5 -131.5t131.5 -316.5q0 -55 -18 -103.5t-37.5 -74.5t-59.5 -72q-34 -39 -52 -63t-43.5 -66.5t-37 -91t-11.5 -105.5q0 -106 -75 -181t-181 -75q-26 0 -45 -19t-19 -45t19 -45t45 -19q159 0 271.5 112.5t112.5 271.5q0 41 7.5 74 -t26.5 64t33.5 50t45.5 54q35 41 53 64.5t44 67.5t37.5 93.5t11.5 108.5q0 117 -45.5 223.5t-123 184t-184 123t-223.5 45.5zM591 561l226 -226l-579 -579q-12 -12 -29 -12t-29 12l-168 168q-12 12 -12 29t12 29zM1612 1524l168 -168q12 -12 12 -29t-12 -30l-233 -233 -l-26 -25l-71 -71q-66 153 -195 258l91 91l207 207q13 12 30 12t29 -12z" /> - <glyph glyph-name="uniF2A5" unicode="&#xf2a5;" -d="M866 1021q0 -27 -13 -94q-11 -50 -31.5 -150t-30.5 -150q-2 -11 -4.5 -12.5t-13.5 -2.5q-20 -2 -31 -2q-58 0 -84 49.5t-26 113.5q0 88 35 174t103 124q28 14 51 14q28 0 36.5 -16.5t8.5 -47.5zM1352 597q0 14 -39 75.5t-52 66.5q-21 8 -34 8q-91 0 -226 -77l-2 2 -q3 22 27.5 135t24.5 178q0 233 -242 233q-24 0 -68 -6q-94 -17 -168.5 -89.5t-111.5 -166.5t-37 -189q0 -146 80.5 -225t227.5 -79q25 0 25 -3t-1 -5q-4 -34 -26 -117q-14 -52 -51.5 -101t-82.5 -49q-42 0 -42 47q0 24 10.5 47.5t25 39.5t29.5 28.5t26 20t11 8.5q0 3 -7 10 -q-24 22 -58.5 36.5t-65.5 14.5q-35 0 -63.5 -34t-41 -75t-12.5 -75q0 -88 51.5 -142t138.5 -54q82 0 155 53t117.5 126t65.5 153q6 22 15.5 66.5t14.5 66.5q3 12 14 18q118 60 227 60q48 0 127 -18q1 -1 4 -1q5 0 9.5 4.5t4.5 8.5zM1536 1120v-960q0 -119 -84.5 -203.5 -t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" /> - <glyph glyph-name="uniF2A6" unicode="&#xf2a6;" horiz-adv-x="1535" -d="M744 1231q0 24 -2 38.5t-8.5 30t-21 23t-37.5 7.5q-39 0 -78 -23q-105 -58 -159 -190.5t-54 -269.5q0 -44 8.5 -85.5t26.5 -80.5t52.5 -62.5t81.5 -23.5q4 0 18 -0.5t20 0t16 3t15 8.5t7 16q16 77 48 231.5t48 231.5q19 91 19 146zM1498 575q0 -7 -7.5 -13.5t-15.5 -6.5 -l-6 1q-22 3 -62 11t-72 12.5t-63 4.5q-167 0 -351 -93q-15 -8 -21 -27q-10 -36 -24.5 -105.5t-22.5 -100.5q-23 -91 -70 -179.5t-112.5 -164.5t-154.5 -123t-185 -47q-135 0 -214.5 83.5t-79.5 219.5q0 53 19.5 117t63 116.5t97.5 52.5q38 0 120 -33.5t83 -61.5 -q0 -1 -16.5 -12.5t-39.5 -31t-46 -44.5t-39 -61t-16 -74q0 -33 16.5 -53t48.5 -20q45 0 85 31.5t66.5 78t48 105.5t32.5 107t16 90v9q0 2 -3.5 3.5t-8.5 1.5h-10t-10 -0.5t-6 -0.5q-227 0 -352 122.5t-125 348.5q0 108 34.5 221t96 210t156 167.5t204.5 89.5q52 9 106 9 -q374 0 374 -360q0 -98 -38 -273t-43 -211l3 -3q101 57 182.5 88t167.5 31q22 0 53 -13q19 -7 80 -102.5t61 -116.5z" /> - <glyph glyph-name="uniF2A7" unicode="&#xf2a7;" horiz-adv-x="1664" -d="M831 863q32 0 59 -18l222 -148q61 -40 110 -97l146 -170q40 -46 29 -106l-72 -413q-6 -32 -29.5 -53.5t-55.5 -25.5l-527 -56l-352 -32h-9q-39 0 -67.5 28t-28.5 68q0 37 27 64t65 32l260 32h-448q-41 0 -69.5 30t-26.5 71q2 39 32 65t69 26l442 1l-521 64q-41 5 -66 37 -t-19 73q6 35 34.5 57.5t65.5 22.5h10l481 -60l-351 94q-38 10 -62 41.5t-18 68.5q6 36 33 58.5t62 22.5q6 0 20 -2l448 -96l217 -37q1 0 3 -0.5t3 -0.5q23 0 30.5 23t-12.5 36l-186 125q-35 23 -42 63.5t18 73.5q27 38 76 38zM761 661l186 -125l-218 37l-5 2l-36 38 -l-238 262q-1 1 -2.5 3.5t-2.5 3.5q-24 31 -18.5 70t37.5 64q31 23 68 17.5t64 -33.5l142 -147q-2 -1 -5 -3.5t-4 -4.5q-32 -45 -23 -99t55 -85zM1648 1115l15 -266q4 -73 -11 -147l-48 -219q-12 -59 -67 -87l-106 -54q2 62 -39 109l-146 170q-53 61 -117 103l-222 148 -q-34 23 -76 23q-51 0 -88 -37l-235 312q-25 33 -18 73.5t41 63.5q33 22 71.5 14t62.5 -40l266 -352l-262 455q-21 35 -10.5 75t47.5 59q35 18 72.5 6t57.5 -46l241 -420l-136 337q-15 35 -4.5 74t44.5 56q37 19 76 6t56 -51l193 -415l101 -196q8 -15 23 -17.5t27 7.5t11 26 -l-12 224q-2 41 26 71t69 31q39 0 67 -28.5t30 -67.5z" /> - <glyph glyph-name="uniF2A8" unicode="&#xf2a8;" horiz-adv-x="1792" -d="M335 180q-2 0 -6 2q-86 57 -168.5 145t-139.5 180q-21 30 -21 69q0 9 2 19t4 18t7 18t8.5 16t10.5 17t10 15t12 15.5t11 14.5q184 251 452 365q-110 198 -110 211q0 19 17 29q116 64 128 64q18 0 28 -16l124 -229q92 19 192 19q266 0 497.5 -137.5t378.5 -369.5 -q20 -31 20 -69t-20 -69q-91 -142 -218.5 -253.5t-278.5 -175.5q110 -198 110 -211q0 -20 -17 -29q-116 -64 -127 -64q-19 0 -29 16l-124 229l-64 119l-444 820l7 7q-58 -24 -99 -47q3 -5 127 -234t243 -449t119 -223q0 -7 -9 -9q-13 -3 -72 -3q-57 0 -60 7l-456 841 -q-39 -28 -82 -68q24 -43 214 -393.5t190 -354.5q0 -10 -11 -10q-14 0 -82.5 22t-72.5 28l-106 197l-224 413q-44 -53 -78 -106q2 -3 18 -25t23 -34l176 -327q0 -10 -10 -10zM1165 282l49 -91q273 111 450 385q-180 277 -459 389q67 -64 103 -148.5t36 -176.5 -q0 -106 -47 -200.5t-132 -157.5zM848 896q0 -20 14 -34t34 -14q86 0 147 -61t61 -147q0 -20 14 -34t34 -14t34 14t14 34q0 126 -89 215t-215 89q-20 0 -34 -14t-14 -34zM1214 961l-9 4l7 -7z" /> - <glyph glyph-name="uniF2A9" unicode="&#xf2a9;" horiz-adv-x="1280" -d="M1050 430q0 -215 -147 -374q-148 -161 -378 -161q-232 0 -378 161q-147 159 -147 374q0 147 68 270.5t189 196.5t268 73q96 0 182 -31q-32 -62 -39 -126q-66 28 -143 28q-167 0 -280.5 -123t-113.5 -291q0 -170 112.5 -288.5t281.5 -118.5t281 118.5t112 288.5 -q0 89 -32 166q66 13 123 49q41 -98 41 -212zM846 619q0 -192 -79.5 -345t-238.5 -253l-14 -1q-29 0 -62 5q83 32 146.5 102.5t99.5 154.5t58.5 189t30 192.5t7.5 178.5q0 69 -3 103q55 -160 55 -326zM791 947v-2q-73 214 -206 440q88 -59 142.5 -186.5t63.5 -251.5z -M1035 744q-83 0 -160 75q218 120 290 247q19 37 21 56q-42 -94 -139.5 -166.5t-204.5 -97.5q-35 54 -35 113q0 37 17 79t43 68q46 44 157 74q59 16 106 58.5t74 100.5q74 -105 74 -253q0 -109 -24 -170q-32 -77 -88.5 -130.5t-130.5 -53.5z" /> - <glyph glyph-name="uniF2AA" unicode="&#xf2aa;" -d="M1050 495q0 78 -28 147q-41 -25 -85 -34q22 -50 22 -114q0 -117 -77 -198.5t-193 -81.5t-193.5 81.5t-77.5 198.5q0 115 78 199.5t193 84.5q53 0 98 -19q4 43 27 87q-60 21 -125 21q-154 0 -257.5 -108.5t-103.5 -263.5t103.5 -261t257.5 -106t257.5 106.5t103.5 260.5z -M872 850q2 -24 2 -71q0 -63 -5 -123t-20.5 -132.5t-40.5 -130t-68.5 -106t-100.5 -70.5q21 -3 42 -3h10q219 139 219 411q0 116 -38 225zM872 850q-4 80 -44 171.5t-98 130.5q92 -156 142 -302zM1207 955q0 102 -51 174q-41 -86 -124 -109q-69 -19 -109 -53.5t-40 -99.5 -q0 -40 24 -77q74 17 140.5 67t95.5 115q-4 -52 -74.5 -111.5t-138.5 -97.5q52 -52 110 -52q51 0 90 37t60 90q17 42 17 117zM1536 1120v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5 -t84.5 -203.5z" /> - <glyph glyph-name="uniF2AB" unicode="&#xf2ab;" -d="M1279 388q0 22 -22 27q-67 15 -118 59t-80 108q-7 19 -7 25q0 15 19.5 26t43 17t43 20.5t19.5 36.5q0 19 -18.5 31.5t-38.5 12.5q-12 0 -32 -8t-31 -8q-4 0 -12 2q5 95 5 114q0 79 -17 114q-36 78 -103 121.5t-152 43.5q-199 0 -275 -165q-17 -35 -17 -114q0 -19 5 -114 -q-4 -2 -14 -2q-12 0 -32 7.5t-30 7.5q-21 0 -38.5 -12t-17.5 -32q0 -21 19.5 -35.5t43 -20.5t43 -17t19.5 -26q0 -6 -7 -25q-64 -138 -198 -167q-22 -5 -22 -27q0 -46 137 -68q2 -5 6 -26t11.5 -30.5t23.5 -9.5q12 0 37.5 4.5t39.5 4.5q35 0 67 -15t54 -32.5t57.5 -32.5 -t76.5 -15q43 0 79 15t57.5 32.5t53.5 32.5t67 15q14 0 39.5 -4t38.5 -4q16 0 23 10t11 30t6 25q137 22 137 68zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5 -t103 -385.5z" /> - <glyph glyph-name="uniF2AC" unicode="&#xf2ac;" horiz-adv-x="1664" -d="M848 1408q134 1 240.5 -68.5t163.5 -192.5q27 -58 27 -179q0 -47 -9 -191q14 -7 28 -7q18 0 51 13.5t51 13.5q29 0 56 -18t27 -46q0 -32 -31.5 -54t-69 -31.5t-69 -29t-31.5 -47.5q0 -15 12 -43q37 -82 102.5 -150t144.5 -101q28 -12 80 -23q28 -6 28 -35 -q0 -70 -219 -103q-7 -11 -11 -39t-14 -46.5t-33 -18.5q-20 0 -62 6.5t-64 6.5q-37 0 -62 -5q-32 -5 -63 -22.5t-58 -38t-58 -40.5t-76 -33.5t-99 -13.5q-52 0 -96.5 13.5t-75 33.5t-57.5 40.5t-58 38t-62 22.5q-26 5 -63 5q-24 0 -65.5 -7.5t-58.5 -7.5q-25 0 -35 18.5 -t-14 47.5t-11 40q-219 33 -219 103q0 29 28 35q52 11 80 23q78 32 144.5 101t102.5 150q12 28 12 43q0 28 -31.5 47.5t-69.5 29.5t-69.5 31.5t-31.5 52.5q0 27 26 45.5t55 18.5q15 0 48 -13t53 -13q18 0 32 7q-9 142 -9 190q0 122 27 180q64 137 172 198t264 63z" /> - <glyph glyph-name="uniF2AD" unicode="&#xf2ad;" -d="M1280 388q0 22 -22 27q-67 14 -118 58t-80 109q-7 14 -7 25q0 15 19.5 26t42.5 17t42.5 20.5t19.5 36.5q0 19 -18.5 31.5t-38.5 12.5q-11 0 -31 -8t-32 -8q-4 0 -12 2q5 63 5 115q0 78 -17 114q-36 78 -102.5 121.5t-152.5 43.5q-198 0 -275 -165q-18 -38 -18 -115 -q0 -38 6 -114q-10 -2 -15 -2q-11 0 -31.5 8t-30.5 8q-20 0 -37.5 -12.5t-17.5 -32.5q0 -21 19.5 -35.5t42.5 -20.5t42.5 -17t19.5 -26q0 -11 -7 -25q-64 -138 -198 -167q-22 -5 -22 -27q0 -47 138 -69q2 -5 6 -26t11 -30.5t23 -9.5q13 0 38.5 5t38.5 5q35 0 67.5 -15 -t54.5 -32.5t57.5 -32.5t76.5 -15q43 0 79 15t57.5 32.5t54 32.5t67.5 15q13 0 39 -4.5t39 -4.5q15 0 22.5 9.5t11.5 31t5 24.5q138 22 138 69zM1536 1120v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960 -q119 0 203.5 -84.5t84.5 -203.5z" /> - <glyph glyph-name="uniF2AE" unicode="&#xf2ae;" horiz-adv-x="2304" -d="M2304 1536q-69 -46 -125 -92t-89 -81t-59.5 -71.5t-37.5 -57.5t-22 -44.5t-14 -29.5q-10 -18 -35.5 -136.5t-48.5 -164.5q-15 -29 -50 -60.5t-67.5 -50.5t-72.5 -41t-48 -28q-47 -31 -151 -231q-341 14 -630 -158q-92 -53 -303 -179q47 16 86 31t55 22l15 7 -q71 27 163 64.5t133.5 53.5t108 34.5t142.5 31.5q186 31 465 -7q1 0 10 -3q11 -6 14 -17t-3 -22l-194 -345q-15 -29 -47 -22q-128 24 -354 24q-146 0 -402 -44.5t-392 -46.5q-82 -1 -149 13t-107 37t-61 40t-33 34l-1 1v2q0 6 6 6q138 0 371 55q192 366 374.5 524t383.5 158 -q5 0 14.5 -0.5t38 -5t55 -12t61.5 -24.5t63 -39.5t54 -59t40 -82.5l102 177q2 4 21 42.5t44.5 86.5t61 109.5t84 133.5t100.5 137q66 82 128 141.5t121.5 96.5t92.5 53.5t88 39.5z" /> - <glyph glyph-name="uniF2B0" unicode="&#xf2b0;" -d="M1322 640q0 -45 -5 -76l-236 14l224 -78q-19 -73 -58 -141l-214 103l177 -158q-44 -61 -107 -108l-157 178l103 -215q-61 -37 -140 -59l-79 228l14 -240q-38 -6 -76 -6t-76 6l14 238l-78 -226q-74 19 -140 59l103 215l-157 -178q-59 43 -108 108l178 158l-214 -104 -q-39 69 -58 141l224 79l-237 -14q-5 42 -5 76q0 35 5 77l238 -14l-225 79q19 73 58 140l214 -104l-177 159q46 61 107 108l158 -178l-103 215q67 39 140 58l77 -224l-13 236q36 6 75 6q38 0 76 -6l-14 -237l78 225q74 -19 140 -59l-103 -214l158 178q61 -47 107 -108 -l-177 -159l213 104q37 -62 58 -141l-224 -78l237 14q5 -31 5 -77zM1352 640q0 160 -78.5 295.5t-213 214t-292.5 78.5q-119 0 -227 -46.5t-186.5 -125t-124.5 -187.5t-46 -229q0 -119 46 -228t124.5 -187.5t186.5 -125t227 -46.5q158 0 292.5 78.5t213 214t78.5 294.5z -M1425 1023v-766l-657 -383l-657 383v766l657 383zM768 -183l708 412v823l-708 411l-708 -411v-823zM1536 1088v-896l-768 -448l-768 448v896l768 448z" /> - <glyph glyph-name="uniF2B1" unicode="&#xf2b1;" horiz-adv-x="1664" -d="M339 1318h691l-26 -72h-665q-110 0 -188.5 -79t-78.5 -189v-771q0 -95 60.5 -169.5t153.5 -93.5q23 -5 98 -5v-72h-45q-140 0 -239.5 100t-99.5 240v771q0 140 99.5 240t239.5 100zM1190 1536h247l-482 -1294q-23 -61 -40.5 -103.5t-45 -98t-54 -93.5t-64.5 -78.5 -t-79.5 -65t-95.5 -41t-116 -18.5v195q163 26 220 182q20 52 20 105q0 54 -20 106l-285 733h228l187 -585zM1664 978v-1111h-795q37 55 45 73h678v1038q0 85 -49.5 155t-129.5 99l25 67q101 -34 163.5 -123.5t62.5 -197.5z" /> - <glyph glyph-name="uniF2B2" unicode="&#xf2b2;" horiz-adv-x="1792" -d="M852 1227q0 -29 -17 -52.5t-45 -23.5t-45 23.5t-17 52.5t17 52.5t45 23.5t45 -23.5t17 -52.5zM688 -149v114q0 30 -20.5 51.5t-50.5 21.5t-50 -21.5t-20 -51.5v-114q0 -30 20.5 -52t49.5 -22q30 0 50.5 22t20.5 52zM860 -149v114q0 30 -20 51.5t-50 21.5t-50.5 -21.5 -t-20.5 -51.5v-114q0 -30 20.5 -52t50.5 -22q29 0 49.5 22t20.5 52zM1034 -149v114q0 30 -20.5 51.5t-50.5 21.5t-50.5 -21.5t-20.5 -51.5v-114q0 -30 20.5 -52t50.5 -22t50.5 22t20.5 52zM1208 -149v114q0 30 -20.5 51.5t-50.5 21.5t-50.5 -21.5t-20.5 -51.5v-114 -q0 -30 20.5 -52t50.5 -22t50.5 22t20.5 52zM1476 535q-84 -160 -232 -259.5t-323 -99.5q-123 0 -229.5 51.5t-178.5 137t-113 197.5t-41 232q0 88 21 174q-104 -175 -104 -390q0 -162 65 -312t185 -251q30 57 91 57q56 0 86 -50q32 50 87 50q56 0 86 -50q32 50 87 50t87 -50 -q30 50 86 50q28 0 52.5 -15.5t37.5 -40.5q112 94 177 231.5t73 287.5zM1326 564q0 75 -72 75q-17 0 -47 -6q-95 -19 -149 -19q-226 0 -226 243q0 86 30 204q-83 -127 -83 -275q0 -150 89 -260.5t235 -110.5q111 0 210 70q13 48 13 79zM884 1223q0 50 -32 89.5t-81 39.5 -t-81 -39.5t-32 -89.5q0 -51 31.5 -90.5t81.5 -39.5t81.5 39.5t31.5 90.5zM1513 884q0 96 -37.5 179t-113 137t-173.5 54q-77 0 -149 -35t-127 -94q-48 -159 -48 -268q0 -104 45.5 -157t147.5 -53q53 0 142 19q36 6 53 6q51 0 77.5 -28t26.5 -80q0 -26 -4 -46 -q75 68 117.5 165.5t42.5 200.5zM1792 667q0 -111 -33.5 -249.5t-93.5 -204.5q-58 -64 -195 -142.5t-228 -104.5l-4 -1v-114q0 -43 -29.5 -75t-72.5 -32q-56 0 -86 50q-32 -50 -87 -50t-87 50q-30 -50 -86 -50q-55 0 -87 50q-30 -50 -86 -50q-47 0 -75 33.5t-28 81.5 -q-90 -68 -198 -68q-118 0 -211 80q54 1 106 20q-113 31 -182 127q32 -7 71 -7q89 0 164 46q-192 192 -240 306q-24 56 -24 160q0 57 9 125.5t31.5 146.5t55 141t86.5 105t120 42q59 0 81 -52q19 29 42 54q2 3 12 13t13 16q10 15 23 38t25 42t28 39q87 111 211.5 177 -t260.5 66q35 0 62 -4q59 64 146 64q83 0 140 -57q5 -5 5 -12q0 -5 -6 -13.5t-12.5 -16t-16 -17l-10.5 -10.5q17 -6 36 -18t19 -24q0 -6 -16 -25q157 -138 197 -378q25 30 60 30q45 0 100 -49q90 -80 90 -279z" /> - <glyph glyph-name="uniF2B3" unicode="&#xf2b3;" -d="M917 631q0 33 -6 64h-362v-132h217q-12 -76 -74.5 -120.5t-142.5 -44.5q-99 0 -169 71.5t-70 170.5t70 170.5t169 71.5q93 0 153 -59l104 101q-108 100 -257 100q-160 0 -272 -112.5t-112 -271.5t112 -271.5t272 -112.5q165 0 266.5 105t101.5 270zM1262 585h109v110 -h-109v110h-110v-110h-110v-110h110v-110h110v110zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" /> - <glyph glyph-name="uniF2B4" unicode="&#xf2b4;" -d="M1536 1024v-839q0 -48 -49 -62q-174 -52 -338 -52q-73 0 -215.5 29.5t-227.5 29.5q-164 0 -370 -48v-338h-160v1368q-63 25 -101 81t-38 124q0 91 64 155t155 64t155 -64t64 -155q0 -68 -38 -124t-101 -81v-68q190 44 343 44q99 0 198 -15q14 -2 111.5 -22.5t149.5 -20.5 -q77 0 165 18q11 2 80 21t89 19q26 0 45 -19t19 -45z" /> - <glyph glyph-name="uniF2B5" unicode="&#xf2b5;" horiz-adv-x="2304" -d="M192 384q40 0 56 32t0 64t-56 32t-56 -32t0 -64t56 -32zM1665 442q-10 13 -38.5 50t-41.5 54t-38 49t-42.5 53t-40.5 47t-45 49l-125 -140q-83 -94 -208.5 -92t-205.5 98q-57 69 -56.5 158t58.5 157l177 206q-22 11 -51 16.5t-47.5 6t-56.5 -0.5t-49 -1q-92 0 -158 -66 -l-158 -158h-155v-544q5 0 21 0.5t22 0t19.5 -2t20.5 -4.5t17.5 -8.5t18.5 -13.5l297 -292q115 -111 227 -111q78 0 125 47q57 -20 112.5 8t72.5 85q74 -6 127 44q20 18 36 45.5t14 50.5q10 -10 43 -10q43 0 77 21t49.5 53t12 71.5t-30.5 73.5zM1824 384h96v512h-93l-157 180 -q-66 76 -169 76h-167q-89 0 -146 -67l-209 -243q-28 -33 -28 -75t27 -75q43 -51 110 -52t111 49l193 218q25 23 53.5 21.5t47 -27t8.5 -56.5q16 -19 56 -63t60 -68q29 -36 82.5 -105.5t64.5 -84.5q52 -66 60 -140zM2112 384q40 0 56 32t0 64t-56 32t-56 -32t0 -64t56 -32z -M2304 960v-640q0 -26 -19 -45t-45 -19h-434q-27 -65 -82 -106.5t-125 -51.5q-33 -48 -80.5 -81.5t-102.5 -45.5q-42 -53 -104.5 -81.5t-128.5 -24.5q-60 -34 -126 -39.5t-127.5 14t-117 53.5t-103.5 81l-287 282h-358q-26 0 -45 19t-19 45v672q0 26 19 45t45 19h421 -q14 14 47 48t47.5 48t44 40t50.5 37.5t51 25.5t62 19.5t68 5.5h117q99 0 181 -56q82 56 181 56h167q35 0 67 -6t56.5 -14.5t51.5 -26.5t44.5 -31t43 -39.5t39 -42t41 -48t41.5 -48.5h355q26 0 45 -19t19 -45z" /> - <glyph glyph-name="uniF2B6" unicode="&#xf2b6;" horiz-adv-x="1792" -d="M1792 882v-978q0 -66 -47 -113t-113 -47h-1472q-66 0 -113 47t-47 113v978q0 15 11 24q8 7 39 34.5t41.5 36t45.5 37.5t70 55.5t96 73t143.5 107t192.5 140.5q5 4 52.5 40t71.5 52.5t64 35t69 18.5t69 -18.5t65 -35.5t71 -52t52 -40q110 -80 192.5 -140.5t143.5 -107 -t96 -73t70 -55.5t45.5 -37.5t41.5 -36t39 -34.5q11 -9 11 -24zM1228 297q263 191 345 252q11 8 12.5 20.5t-6.5 23.5l-38 52q-8 11 -21 12.5t-24 -6.5q-231 -169 -343 -250q-5 -3 -52 -39t-71.5 -52.5t-64.5 -35t-69 -18.5t-69 18.5t-64.5 35t-71.5 52.5t-52 39 -q-186 134 -343 250q-11 8 -24 6.5t-21 -12.5l-38 -52q-8 -11 -6.5 -23.5t12.5 -20.5q82 -61 345 -252q10 -8 50 -38t65 -47t64 -39.5t77.5 -33.5t75.5 -11t75.5 11t79 34.5t64.5 39.5t65 47.5t48 36.5z" /> - <glyph glyph-name="uniF2B7" unicode="&#xf2b7;" horiz-adv-x="1792" -d="M1474 623l39 -51q8 -11 6.5 -23.5t-11.5 -20.5q-43 -34 -126.5 -98.5t-146.5 -113t-67 -51.5q-39 -32 -60 -48t-60.5 -41t-76.5 -36.5t-74 -11.5h-1h-1q-37 0 -74 11.5t-76 36.5t-61 41.5t-60 47.5q-5 4 -65 50.5t-143.5 111t-122.5 94.5q-11 8 -12.5 20.5t6.5 23.5 -l37 52q8 11 21.5 13t24.5 -7q94 -73 306 -236q5 -4 43.5 -35t60.5 -46.5t56.5 -32.5t58.5 -17h1h1q24 0 58.5 17t56.5 32.5t60.5 46.5t43.5 35q258 198 313 242q11 8 24 6.5t21 -12.5zM1664 -96v928q-90 83 -159 139q-91 74 -389 304q-3 2 -43 35t-61 48t-56 32.5t-59 17.5 -h-1h-1q-24 0 -59 -17.5t-56 -32.5t-61 -48t-43 -35q-215 -166 -315.5 -245.5t-129.5 -104t-82 -74.5q-14 -12 -21 -19v-928q0 -13 9.5 -22.5t22.5 -9.5h1472q13 0 22.5 9.5t9.5 22.5zM1792 832v-928q0 -66 -47 -113t-113 -47h-1472q-66 0 -113 47t-47 113v928q0 56 41 94 -q123 114 350 290.5t233 181.5q36 30 59 47.5t61.5 42t76 36.5t74.5 12h1h1q37 0 74.5 -12t76 -36.5t61.5 -42t59 -47.5q43 -36 156 -122t226 -177t201 -173q41 -38 41 -94z" /> - <glyph glyph-name="uniF2B8" unicode="&#xf2b8;" -d="M330 1l202 -214l-34 236l-216 213zM556 -225l274 218l-11 245l-300 -215zM245 413l227 -213l-48 327l-245 204zM495 189l317 214l-14 324l-352 -200zM843 178l95 -80l-2 239l-103 79q0 -1 1 -8.5t0 -12t-5 -7.5l-78 -52l85 -70q7 -6 7 -88zM138 930l256 -200l-68 465 -l-279 173zM1173 267l15 234l-230 -164l2 -240zM417 722l373 194l-19 441l-423 -163zM1270 357l20 233l-226 142l-2 -105l144 -95q6 -4 4 -9l-7 -119zM1461 496l30 222l-179 -128l-20 -228zM1273 329l-71 49l-8 -117q0 -5 -4 -8l-234 -187q-7 -5 -14 0l-98 83l7 -161 -q0 -5 -4 -8l-293 -234q-4 -2 -6 -2q-8 2 -8 3l-228 242q-4 4 -59 277q-2 7 5 11l61 37q-94 86 -95 92l-72 351q-2 7 6 12l94 45q-133 100 -135 108l-96 466q-2 10 7 13l433 135q5 0 8 -1l317 -153q6 -4 6 -9l20 -463q0 -7 -6 -10l-118 -61l126 -85q5 -2 5 -8l5 -123l121 74 -q5 4 11 0l84 -56l3 110q0 6 5 9l206 126q6 3 11 0l245 -135q4 -4 5 -7t-6.5 -60t-17.5 -124.5t-10 -70.5q0 -5 -4 -7l-191 -153q-6 -5 -13 0z" /> - <glyph glyph-name="uniF2B9" unicode="&#xf2b9;" horiz-adv-x="1664" -d="M1201 298q0 57 -5.5 107t-21 100.5t-39.5 86t-64 58t-91 22.5q-6 -4 -33.5 -20.5t-42.5 -24.5t-40.5 -20t-49 -17t-46.5 -5t-46.5 5t-49 17t-40.5 20t-42.5 24.5t-33.5 20.5q-51 0 -91 -22.5t-64 -58t-39.5 -86t-21 -100.5t-5.5 -107q0 -73 42 -121.5t103 -48.5h576 -q61 0 103 48.5t42 121.5zM1028 892q0 108 -76.5 184t-183.5 76t-183.5 -76t-76.5 -184q0 -107 76.5 -183t183.5 -76t183.5 76t76.5 183zM1664 352v-192q0 -14 -9 -23t-23 -9h-96v-224q0 -66 -47 -113t-113 -47h-1216q-66 0 -113 47t-47 113v1472q0 66 47 113t113 47h1216 -q66 0 113 -47t47 -113v-224h96q14 0 23 -9t9 -23v-192q0 -14 -9 -23t-23 -9h-96v-128h96q14 0 23 -9t9 -23v-192q0 -14 -9 -23t-23 -9h-96v-128h96q14 0 23 -9t9 -23z" /> - <glyph glyph-name="uniF2BA" unicode="&#xf2ba;" horiz-adv-x="1664" -d="M1028 892q0 -107 -76.5 -183t-183.5 -76t-183.5 76t-76.5 183q0 108 76.5 184t183.5 76t183.5 -76t76.5 -184zM980 672q46 0 82.5 -17t60 -47.5t39.5 -67t24 -81t11.5 -82.5t3.5 -79q0 -67 -39.5 -118.5t-105.5 -51.5h-576q-66 0 -105.5 51.5t-39.5 118.5q0 48 4.5 93.5 -t18.5 98.5t36.5 91.5t63 64.5t93.5 26h5q7 -4 32 -19.5t35.5 -21t33 -17t37 -16t35 -9t39.5 -4.5t39.5 4.5t35 9t37 16t33 17t35.5 21t32 19.5zM1664 928q0 -13 -9.5 -22.5t-22.5 -9.5h-96v-128h96q13 0 22.5 -9.5t9.5 -22.5v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-96v-128h96 -q13 0 22.5 -9.5t9.5 -22.5v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-96v-224q0 -66 -47 -113t-113 -47h-1216q-66 0 -113 47t-47 113v1472q0 66 47 113t113 47h1216q66 0 113 -47t47 -113v-224h96q13 0 22.5 -9.5t9.5 -22.5v-192zM1408 -96v1472q0 13 -9.5 22.5t-22.5 9.5h-1216 -q-13 0 -22.5 -9.5t-9.5 -22.5v-1472q0 -13 9.5 -22.5t22.5 -9.5h1216q13 0 22.5 9.5t9.5 22.5z" /> - <glyph glyph-name="uniF2BB" unicode="&#xf2bb;" horiz-adv-x="2048" -d="M1024 405q0 64 -9 117.5t-29.5 103t-60.5 78t-97 28.5q-6 -4 -30 -18t-37.5 -21.5t-35.5 -17.5t-43 -14.5t-42 -4.5t-42 4.5t-43 14.5t-35.5 17.5t-37.5 21.5t-30 18q-57 0 -97 -28.5t-60.5 -78t-29.5 -103t-9 -117.5t37 -106.5t91 -42.5h512q54 0 91 42.5t37 106.5z -M867 925q0 94 -66.5 160.5t-160.5 66.5t-160.5 -66.5t-66.5 -160.5t66.5 -160.5t160.5 -66.5t160.5 66.5t66.5 160.5zM1792 416v64q0 14 -9 23t-23 9h-576q-14 0 -23 -9t-9 -23v-64q0 -14 9 -23t23 -9h576q14 0 23 9t9 23zM1792 676v56q0 15 -10.5 25.5t-25.5 10.5h-568 -q-15 0 -25.5 -10.5t-10.5 -25.5v-56q0 -15 10.5 -25.5t25.5 -10.5h568q15 0 25.5 10.5t10.5 25.5zM1792 928v64q0 14 -9 23t-23 9h-576q-14 0 -23 -9t-9 -23v-64q0 -14 9 -23t23 -9h576q14 0 23 9t9 23zM2048 1248v-1216q0 -66 -47 -113t-113 -47h-352v96q0 14 -9 23t-23 9 -h-64q-14 0 -23 -9t-9 -23v-96h-768v96q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23v-96h-352q-66 0 -113 47t-47 113v1216q0 66 47 113t113 47h1728q66 0 113 -47t47 -113z" /> - <glyph glyph-name="uniF2BC" unicode="&#xf2bc;" horiz-adv-x="2048" -d="M1024 405q0 -64 -37 -106.5t-91 -42.5h-512q-54 0 -91 42.5t-37 106.5t9 117.5t29.5 103t60.5 78t97 28.5q6 -4 30 -18t37.5 -21.5t35.5 -17.5t43 -14.5t42 -4.5t42 4.5t43 14.5t35.5 17.5t37.5 21.5t30 18q57 0 97 -28.5t60.5 -78t29.5 -103t9 -117.5zM867 925 -q0 -94 -66.5 -160.5t-160.5 -66.5t-160.5 66.5t-66.5 160.5t66.5 160.5t160.5 66.5t160.5 -66.5t66.5 -160.5zM1792 480v-64q0 -14 -9 -23t-23 -9h-576q-14 0 -23 9t-9 23v64q0 14 9 23t23 9h576q14 0 23 -9t9 -23zM1792 732v-56q0 -15 -10.5 -25.5t-25.5 -10.5h-568 -q-15 0 -25.5 10.5t-10.5 25.5v56q0 15 10.5 25.5t25.5 10.5h568q15 0 25.5 -10.5t10.5 -25.5zM1792 992v-64q0 -14 -9 -23t-23 -9h-576q-14 0 -23 9t-9 23v64q0 14 9 23t23 9h576q14 0 23 -9t9 -23zM1920 32v1216q0 13 -9.5 22.5t-22.5 9.5h-1728q-13 0 -22.5 -9.5 -t-9.5 -22.5v-1216q0 -13 9.5 -22.5t22.5 -9.5h352v96q0 14 9 23t23 9h64q14 0 23 -9t9 -23v-96h768v96q0 14 9 23t23 9h64q14 0 23 -9t9 -23v-96h352q13 0 22.5 9.5t9.5 22.5zM2048 1248v-1216q0 -66 -47 -113t-113 -47h-1728q-66 0 -113 47t-47 113v1216q0 66 47 113 -t113 47h1728q66 0 113 -47t47 -113z" /> - <glyph glyph-name="uniF2BD" unicode="&#xf2bd;" horiz-adv-x="1792" -d="M1523 197q-22 155 -87.5 257.5t-184.5 118.5q-67 -74 -159.5 -115.5t-195.5 -41.5t-195.5 41.5t-159.5 115.5q-119 -16 -184.5 -118.5t-87.5 -257.5q106 -150 271 -237.5t356 -87.5t356 87.5t271 237.5zM1280 896q0 159 -112.5 271.5t-271.5 112.5t-271.5 -112.5 -t-112.5 -271.5t112.5 -271.5t271.5 -112.5t271.5 112.5t112.5 271.5zM1792 640q0 -182 -71 -347.5t-190.5 -286t-285.5 -191.5t-349 -71q-182 0 -348 71t-286 191t-191 286t-71 348t71 348t191 286t286 191t348 71t348 -71t286 -191t191 -286t71 -348z" /> - <glyph glyph-name="uniF2BE" unicode="&#xf2be;" horiz-adv-x="1792" -d="M896 1536q182 0 348 -71t286 -191t191 -286t71 -348q0 -181 -70.5 -347t-190.5 -286t-286 -191.5t-349 -71.5t-349 71t-285.5 191.5t-190.5 286t-71 347.5t71 348t191 286t286 191t348 71zM1515 185q149 205 149 455q0 156 -61 298t-164 245t-245 164t-298 61t-298 -61 -t-245 -164t-164 -245t-61 -298q0 -250 149 -455q66 327 306 327q131 -128 313 -128t313 128q240 0 306 -327zM1280 832q0 159 -112.5 271.5t-271.5 112.5t-271.5 -112.5t-112.5 -271.5t112.5 -271.5t271.5 -112.5t271.5 112.5t112.5 271.5z" /> - <glyph glyph-name="uniF2C0" unicode="&#xf2c0;" -d="M1201 752q47 -14 89.5 -38t89 -73t79.5 -115.5t55 -172t22 -236.5q0 -154 -100 -263.5t-241 -109.5h-854q-141 0 -241 109.5t-100 263.5q0 131 22 236.5t55 172t79.5 115.5t89 73t89.5 38q-79 125 -79 272q0 104 40.5 198.5t109.5 163.5t163.5 109.5t198.5 40.5 -t198.5 -40.5t163.5 -109.5t109.5 -163.5t40.5 -198.5q0 -147 -79 -272zM768 1408q-159 0 -271.5 -112.5t-112.5 -271.5t112.5 -271.5t271.5 -112.5t271.5 112.5t112.5 271.5t-112.5 271.5t-271.5 112.5zM1195 -128q88 0 150.5 71.5t62.5 173.5q0 239 -78.5 377t-225.5 145 -q-145 -127 -336 -127t-336 127q-147 -7 -225.5 -145t-78.5 -377q0 -102 62.5 -173.5t150.5 -71.5h854z" /> - <glyph glyph-name="uniF2C1" unicode="&#xf2c1;" horiz-adv-x="1280" -d="M1024 278q0 -64 -37 -107t-91 -43h-512q-54 0 -91 43t-37 107t9 118t29.5 104t61 78.5t96.5 28.5q80 -75 188 -75t188 75q56 0 96.5 -28.5t61 -78.5t29.5 -104t9 -118zM870 797q0 -94 -67.5 -160.5t-162.5 -66.5t-162.5 66.5t-67.5 160.5t67.5 160.5t162.5 66.5 -t162.5 -66.5t67.5 -160.5zM1152 -96v1376h-1024v-1376q0 -13 9.5 -22.5t22.5 -9.5h960q13 0 22.5 9.5t9.5 22.5zM1280 1376v-1472q0 -66 -47 -113t-113 -47h-960q-66 0 -113 47t-47 113v1472q0 66 47 113t113 47h352v-96q0 -14 9 -23t23 -9h192q14 0 23 9t9 23v96h352 -q66 0 113 -47t47 -113z" /> - <glyph glyph-name="uniF2C2" unicode="&#xf2c2;" horiz-adv-x="2048" -d="M896 324q0 54 -7.5 100.5t-24.5 90t-51 68.5t-81 25q-64 -64 -156 -64t-156 64q-47 0 -81 -25t-51 -68.5t-24.5 -90t-7.5 -100.5q0 -55 31.5 -93.5t75.5 -38.5h426q44 0 75.5 38.5t31.5 93.5zM768 768q0 80 -56 136t-136 56t-136 -56t-56 -136t56 -136t136 -56t136 56 -t56 136zM1792 288v64q0 14 -9 23t-23 9h-704q-14 0 -23 -9t-9 -23v-64q0 -14 9 -23t23 -9h704q14 0 23 9t9 23zM1408 544v64q0 14 -9 23t-23 9h-320q-14 0 -23 -9t-9 -23v-64q0 -14 9 -23t23 -9h320q14 0 23 9t9 23zM1792 544v64q0 14 -9 23t-23 9h-192q-14 0 -23 -9t-9 -23 -v-64q0 -14 9 -23t23 -9h192q14 0 23 9t9 23zM1792 800v64q0 14 -9 23t-23 9h-704q-14 0 -23 -9t-9 -23v-64q0 -14 9 -23t23 -9h704q14 0 23 9t9 23zM128 1152h1792v96q0 14 -9 23t-23 9h-1728q-14 0 -23 -9t-9 -23v-96zM2048 1248v-1216q0 -66 -47 -113t-113 -47h-1728 -q-66 0 -113 47t-47 113v1216q0 66 47 113t113 47h1728q66 0 113 -47t47 -113z" /> - <glyph glyph-name="uniF2C3" unicode="&#xf2c3;" horiz-adv-x="2048" -d="M896 324q0 -55 -31.5 -93.5t-75.5 -38.5h-426q-44 0 -75.5 38.5t-31.5 93.5q0 54 7.5 100.5t24.5 90t51 68.5t81 25q64 -64 156 -64t156 64q47 0 81 -25t51 -68.5t24.5 -90t7.5 -100.5zM768 768q0 -80 -56 -136t-136 -56t-136 56t-56 136t56 136t136 56t136 -56t56 -136z -M1792 352v-64q0 -14 -9 -23t-23 -9h-704q-14 0 -23 9t-9 23v64q0 14 9 23t23 9h704q14 0 23 -9t9 -23zM1408 608v-64q0 -14 -9 -23t-23 -9h-320q-14 0 -23 9t-9 23v64q0 14 9 23t23 9h320q14 0 23 -9t9 -23zM1792 608v-64q0 -14 -9 -23t-23 -9h-192q-14 0 -23 9t-9 23v64 -q0 14 9 23t23 9h192q14 0 23 -9t9 -23zM1792 864v-64q0 -14 -9 -23t-23 -9h-704q-14 0 -23 9t-9 23v64q0 14 9 23t23 9h704q14 0 23 -9t9 -23zM1920 32v1120h-1792v-1120q0 -13 9.5 -22.5t22.5 -9.5h1728q13 0 22.5 9.5t9.5 22.5zM2048 1248v-1216q0 -66 -47 -113t-113 -47 -h-1728q-66 0 -113 47t-47 113v1216q0 66 47 113t113 47h1728q66 0 113 -47t47 -113z" /> - <glyph glyph-name="uniF2C4" unicode="&#xf2c4;" horiz-adv-x="1792" -d="M1255 749q0 318 -105 474.5t-330 156.5q-222 0 -326 -157t-104 -474q0 -316 104 -471.5t326 -155.5q74 0 131 17q-22 43 -39 73t-44 65t-53.5 56.5t-63 36t-77.5 14.5q-46 0 -79 -16l-49 97q105 91 276 91q132 0 215.5 -54t150.5 -155q67 149 67 402zM1645 117h117 -q3 -27 -2 -67t-26.5 -95t-58 -100.5t-107 -78t-162.5 -32.5q-71 0 -130.5 19t-105.5 56t-79 78t-66 96q-97 -27 -205 -27q-150 0 -292.5 58t-253 158.5t-178 249t-67.5 317.5q0 170 67.5 319.5t178.5 250.5t253.5 159t291.5 58q121 0 238.5 -36t217 -106t176 -164.5 -t119.5 -219t43 -261.5q0 -190 -80.5 -347.5t-218.5 -264.5q47 -70 93.5 -106.5t104.5 -36.5q61 0 94 37.5t38 85.5z" /> - <glyph glyph-name="uniF2C5" unicode="&#xf2c5;" horiz-adv-x="2304" -d="M453 -101q0 -21 -16 -37.5t-37 -16.5q-1 0 -13 3q-63 15 -162 140q-225 284 -225 676q0 341 213 614q39 51 95 103.5t94 52.5q19 0 35 -13.5t16 -32.5q0 -27 -63 -90q-98 -102 -147 -184q-119 -199 -119 -449q0 -281 123 -491q50 -85 136 -173q2 -3 14.5 -16t19.5 -21 -t17 -20.5t14.5 -23.5t4.5 -21zM1796 33q0 -29 -17.5 -48.5t-46.5 -19.5h-1081q-26 0 -45 19t-19 45q0 29 17.5 48.5t46.5 19.5h1081q26 0 45 -19t19 -45zM1581 644q0 -134 -67 -233q-25 -38 -69.5 -78.5t-83.5 -60.5q-16 -10 -27 -10q-7 0 -15 6t-8 12q0 9 19 30t42 46 -t42 67.5t19 88.5q0 76 -35 130q-29 42 -46 42q-3 0 -3 -5q0 -12 7.5 -35.5t7.5 -36.5q0 -22 -21.5 -35t-44.5 -13q-66 0 -66 76q0 15 1.5 44t1.5 44q0 25 -10 46q-13 25 -42 53.5t-51 28.5q-5 0 -7 -0.5t-3.5 -2.5t-1.5 -6q0 -2 16 -26t16 -54q0 -37 -19 -68t-46 -54 -t-53.5 -46t-45.5 -54t-19 -68q0 -98 42 -160q29 -43 79 -63q16 -5 17 -10q1 -2 1 -5q0 -16 -18 -16q-6 0 -33 11q-119 43 -195 139.5t-76 218.5q0 55 24.5 115.5t60 115t70.5 108.5t59.5 113.5t24.5 111.5q0 53 -25 94q-29 48 -56 64q-19 9 -19 21q0 20 41 20q50 0 110 -29 -q41 -19 71 -44.5t49.5 -51t33.5 -62.5t22 -69t16 -80q0 -1 3 -17.5t4.5 -25t5.5 -25t9 -27t11 -21.5t14.5 -16.5t18.5 -5.5q23 0 37 14t14 37q0 25 -20 67t-20 52t10 10q27 0 93 -70q72 -76 102.5 -156t30.5 -186zM2304 615q0 -274 -138 -503q-19 -32 -48 -72t-68 -86.5 -t-81 -77t-74 -30.5q-16 0 -31 15.5t-15 31.5q0 15 29 50.5t68.5 77t48.5 52.5q183 230 183 531q0 131 -20.5 235t-72.5 211q-58 119 -163 228q-2 3 -13 13.5t-16.5 16.5t-15 17.5t-15 20t-9.5 18.5t-4 19q0 19 16 35.5t35 16.5q70 0 196 -169q98 -131 146 -273t60 -314 -q2 -42 2 -64z" /> - <glyph glyph-name="uniF2C6" unicode="&#xf2c6;" horiz-adv-x="1792" -d="M1189 229l147 693q9 44 -10.5 63t-51.5 7l-864 -333q-29 -11 -39.5 -25t-2.5 -26.5t32 -19.5l221 -69l513 323q21 14 32 6q7 -5 -4 -15l-415 -375v0v0l-16 -228q23 0 45 22l108 104l224 -165q64 -36 81 38zM1792 640q0 -182 -71 -348t-191 -286t-286 -191t-348 -71 -t-348 71t-286 191t-191 286t-71 348t71 348t191 286t286 191t348 71t348 -71t286 -191t191 -286t71 -348z" /> - <glyph glyph-name="uniF2C7" unicode="&#xf2c7;" horiz-adv-x="1024" -d="M640 192q0 -80 -56 -136t-136 -56t-136 56t-56 136q0 60 35 110t93 71v907h128v-907q58 -21 93 -71t35 -110zM768 192q0 77 -34 144t-94 112v768q0 80 -56 136t-136 56t-136 -56t-56 -136v-768q-60 -45 -94 -112t-34 -144q0 -133 93.5 -226.5t226.5 -93.5t226.5 93.5 -t93.5 226.5zM896 192q0 -185 -131.5 -316.5t-316.5 -131.5t-316.5 131.5t-131.5 316.5q0 182 128 313v711q0 133 93.5 226.5t226.5 93.5t226.5 -93.5t93.5 -226.5v-711q128 -131 128 -313zM1024 768v-128h-192v128h192zM1024 1024v-128h-192v128h192zM1024 1280v-128h-192 -v128h192z" /> - <glyph glyph-name="uniF2C8" unicode="&#xf2c8;" horiz-adv-x="1024" -d="M640 192q0 -80 -56 -136t-136 -56t-136 56t-56 136q0 60 35 110t93 71v651h128v-651q58 -21 93 -71t35 -110zM768 192q0 77 -34 144t-94 112v768q0 80 -56 136t-136 56t-136 -56t-56 -136v-768q-60 -45 -94 -112t-34 -144q0 -133 93.5 -226.5t226.5 -93.5t226.5 93.5 -t93.5 226.5zM896 192q0 -185 -131.5 -316.5t-316.5 -131.5t-316.5 131.5t-131.5 316.5q0 182 128 313v711q0 133 93.5 226.5t226.5 93.5t226.5 -93.5t93.5 -226.5v-711q128 -131 128 -313zM1024 768v-128h-192v128h192zM1024 1024v-128h-192v128h192zM1024 1280v-128h-192 -v128h192z" /> - <glyph glyph-name="uniF2C9" unicode="&#xf2c9;" horiz-adv-x="1024" -d="M640 192q0 -80 -56 -136t-136 -56t-136 56t-56 136q0 60 35 110t93 71v395h128v-395q58 -21 93 -71t35 -110zM768 192q0 77 -34 144t-94 112v768q0 80 -56 136t-136 56t-136 -56t-56 -136v-768q-60 -45 -94 -112t-34 -144q0 -133 93.5 -226.5t226.5 -93.5t226.5 93.5 -t93.5 226.5zM896 192q0 -185 -131.5 -316.5t-316.5 -131.5t-316.5 131.5t-131.5 316.5q0 182 128 313v711q0 133 93.5 226.5t226.5 93.5t226.5 -93.5t93.5 -226.5v-711q128 -131 128 -313zM1024 768v-128h-192v128h192zM1024 1024v-128h-192v128h192zM1024 1280v-128h-192 -v128h192z" /> - <glyph glyph-name="uniF2CA" unicode="&#xf2ca;" horiz-adv-x="1024" -d="M640 192q0 -80 -56 -136t-136 -56t-136 56t-56 136q0 60 35 110t93 71v139h128v-139q58 -21 93 -71t35 -110zM768 192q0 77 -34 144t-94 112v768q0 80 -56 136t-136 56t-136 -56t-56 -136v-768q-60 -45 -94 -112t-34 -144q0 -133 93.5 -226.5t226.5 -93.5t226.5 93.5 -t93.5 226.5zM896 192q0 -185 -131.5 -316.5t-316.5 -131.5t-316.5 131.5t-131.5 316.5q0 182 128 313v711q0 133 93.5 226.5t226.5 93.5t226.5 -93.5t93.5 -226.5v-711q128 -131 128 -313zM1024 768v-128h-192v128h192zM1024 1024v-128h-192v128h192zM1024 1280v-128h-192 -v128h192z" /> - <glyph glyph-name="uniF2CB" unicode="&#xf2cb;" horiz-adv-x="1024" -d="M640 192q0 -80 -56 -136t-136 -56t-136 56t-56 136q0 79 56 135.5t136 56.5t136 -56.5t56 -135.5zM768 192q0 77 -34 144t-94 112v768q0 80 -56 136t-136 56t-136 -56t-56 -136v-768q-60 -45 -94 -112t-34 -144q0 -133 93.5 -226.5t226.5 -93.5t226.5 93.5t93.5 226.5z -M896 192q0 -185 -131.5 -316.5t-316.5 -131.5t-316.5 131.5t-131.5 316.5q0 182 128 313v711q0 133 93.5 226.5t226.5 93.5t226.5 -93.5t93.5 -226.5v-711q128 -131 128 -313zM1024 768v-128h-192v128h192zM1024 1024v-128h-192v128h192zM1024 1280v-128h-192v128h192z" /> - <glyph glyph-name="uniF2CC" unicode="&#xf2cc;" horiz-adv-x="1920" -d="M1433 1287q10 -10 10 -23t-10 -23l-626 -626q-10 -10 -23 -10t-23 10l-82 82q-10 10 -10 23t10 23l44 44q-72 91 -81.5 207t46.5 215q-74 71 -176 71q-106 0 -181 -75t-75 -181v-1280h-256v1280q0 104 40.5 198.5t109.5 163.5t163.5 109.5t198.5 40.5q106 0 201 -41 -t166 -115q94 39 197 24.5t185 -79.5l44 44q10 10 23 10t23 -10zM1344 1024q26 0 45 -19t19 -45t-19 -45t-45 -19t-45 19t-19 45t19 45t45 19zM1600 896q-26 0 -45 19t-19 45t19 45t45 19t45 -19t19 -45t-19 -45t-45 -19zM1856 1024q26 0 45 -19t19 -45t-19 -45t-45 -19 -t-45 19t-19 45t19 45t45 19zM1216 896q26 0 45 -19t19 -45t-19 -45t-45 -19t-45 19t-19 45t19 45t45 19zM1408 832q0 26 19 45t45 19t45 -19t19 -45t-19 -45t-45 -19t-45 19t-19 45zM1728 896q26 0 45 -19t19 -45t-19 -45t-45 -19t-45 19t-19 45t19 45t45 19zM1088 768 -q26 0 45 -19t19 -45t-19 -45t-45 -19t-45 19t-19 45t19 45t45 19zM1344 640q-26 0 -45 19t-19 45t19 45t45 19t45 -19t19 -45t-19 -45t-45 -19zM1600 768q26 0 45 -19t19 -45t-19 -45t-45 -19t-45 19t-19 45t19 45t45 19zM1216 512q-26 0 -45 19t-19 45t19 45t45 19t45 -19 -t19 -45t-19 -45t-45 -19zM1472 640q26 0 45 -19t19 -45t-19 -45t-45 -19t-45 19t-19 45t19 45t45 19zM1088 512q26 0 45 -19t19 -45t-19 -45t-45 -19t-45 19t-19 45t19 45t45 19zM1344 512q26 0 45 -19t19 -45t-19 -45t-45 -19t-45 19t-19 45t19 45t45 19zM1216 384 -q26 0 45 -19t19 -45t-19 -45t-45 -19t-45 19t-19 45t19 45t45 19zM1088 256q26 0 45 -19t19 -45t-19 -45t-45 -19t-45 19t-19 45t19 45t45 19z" /> - <glyph glyph-name="uniF2CD" unicode="&#xf2cd;" horiz-adv-x="1792" -d="M1664 448v-192q0 -169 -128 -286v-194q0 -14 -9 -23t-23 -9h-64q-14 0 -23 9t-9 23v118q-63 -22 -128 -22h-768q-65 0 -128 22v-110q0 -17 -9.5 -28.5t-22.5 -11.5h-64q-13 0 -22.5 11.5t-9.5 28.5v186q-128 117 -128 286v192h1536zM704 864q0 -14 -9 -23t-23 -9t-23 9 -t-9 23t9 23t23 9t23 -9t9 -23zM768 928q0 -14 -9 -23t-23 -9t-23 9t-9 23t9 23t23 9t23 -9t9 -23zM704 992q0 -14 -9 -23t-23 -9t-23 9t-9 23t9 23t23 9t23 -9t9 -23zM832 992q0 -14 -9 -23t-23 -9t-23 9t-9 23t9 23t23 9t23 -9t9 -23zM768 1056q0 -14 -9 -23t-23 -9t-23 9 -t-9 23t9 23t23 9t23 -9t9 -23zM704 1120q0 -14 -9 -23t-23 -9t-23 9t-9 23t9 23t23 9t23 -9t9 -23zM1792 608v-64q0 -14 -9 -23t-23 -9h-1728q-14 0 -23 9t-9 23v64q0 14 9 23t23 9h96v640q0 106 75 181t181 75q108 0 184 -78q46 19 98 12t93 -39l22 22q11 11 22 0l42 -42 -q11 -11 0 -22l-314 -314q-11 -11 -22 0l-42 42q-11 11 0 22l22 22q-36 46 -40.5 104t23.5 108q-37 35 -88 35q-53 0 -90.5 -37.5t-37.5 -90.5v-640h1504q14 0 23 -9t9 -23zM896 1056q0 -14 -9 -23t-23 -9t-23 9t-9 23t9 23t23 9t23 -9t9 -23zM832 1120q0 -14 -9 -23t-23 -9 -t-23 9t-9 23t9 23t23 9t23 -9t9 -23zM768 1184q0 -14 -9 -23t-23 -9t-23 9t-9 23t9 23t23 9t23 -9t9 -23zM960 1120q0 -14 -9 -23t-23 -9t-23 9t-9 23t9 23t23 9t23 -9t9 -23zM896 1184q0 -14 -9 -23t-23 -9t-23 9t-9 23t9 23t23 9t23 -9t9 -23zM832 1248q0 -14 -9 -23 -t-23 -9t-23 9t-9 23t9 23t23 9t23 -9t9 -23zM1024 1184q0 -14 -9 -23t-23 -9t-23 9t-9 23t9 23t23 9t23 -9t9 -23zM960 1248q0 -14 -9 -23t-23 -9t-23 9t-9 23t9 23t23 9t23 -9t9 -23zM1088 1248q0 -14 -9 -23t-23 -9t-23 9t-9 23t9 23t23 9t23 -9t9 -23z" /> - <glyph glyph-name="uniF2CE" unicode="&#xf2ce;" -d="M994 344q0 -86 -17 -197q-31 -215 -55 -313q-22 -90 -152 -90t-152 90q-24 98 -55 313q-17 110 -17 197q0 168 224 168t224 -168zM1536 768q0 -240 -134 -434t-350 -280q-8 -3 -15 3t-6 15q7 48 10 66q4 32 6 47q1 9 9 12q159 81 255.5 234t96.5 337q0 180 -91 330.5 -t-247 234.5t-337 74q-124 -7 -237 -61t-193.5 -140.5t-128 -202t-46.5 -240.5q1 -184 99 -336.5t257 -231.5q7 -3 9 -12q3 -21 6 -45q1 -9 5 -32.5t6 -35.5q1 -9 -6.5 -15t-15.5 -2q-148 58 -261 169.5t-173.5 264t-52.5 319.5q7 143 66 273.5t154.5 227t225 157.5t272.5 70 -q164 10 315.5 -46.5t261 -160.5t175 -250.5t65.5 -308.5zM994 800q0 -93 -65.5 -158.5t-158.5 -65.5t-158.5 65.5t-65.5 158.5t65.5 158.5t158.5 65.5t158.5 -65.5t65.5 -158.5zM1282 768q0 -122 -53.5 -228.5t-146.5 -177.5q-8 -6 -16 -2t-10 14q-6 52 -29 92q-7 10 3 20 -q58 54 91 127t33 155q0 111 -58.5 204t-157.5 141.5t-212 36.5q-133 -15 -229 -113t-109 -231q-10 -92 23.5 -176t98.5 -144q10 -10 3 -20q-24 -41 -29 -93q-2 -9 -10 -13t-16 2q-95 74 -148.5 183t-51.5 234q3 131 69 244t177 181.5t241 74.5q144 7 268 -60t196.5 -187.5 -t72.5 -263.5z" /> - <glyph glyph-name="uniF2D0" unicode="&#xf2d0;" horiz-adv-x="1792" -d="M256 128h1280v768h-1280v-768zM1792 1248v-1216q0 -66 -47 -113t-113 -47h-1472q-66 0 -113 47t-47 113v1216q0 66 47 113t113 47h1472q66 0 113 -47t47 -113z" /> - <glyph glyph-name="uniF2D1" unicode="&#xf2d1;" horiz-adv-x="1792" -d="M1792 224v-192q0 -66 -47 -113t-113 -47h-1472q-66 0 -113 47t-47 113v192q0 66 47 113t113 47h1472q66 0 113 -47t47 -113z" /> - <glyph glyph-name="uniF2D2" unicode="&#xf2d2;" horiz-adv-x="2048" -d="M256 0h768v512h-768v-512zM1280 512h512v768h-768v-256h96q66 0 113 -47t47 -113v-352zM2048 1376v-960q0 -66 -47 -113t-113 -47h-608v-352q0 -66 -47 -113t-113 -47h-960q-66 0 -113 47t-47 113v960q0 66 47 113t113 47h608v352q0 66 47 113t113 47h960q66 0 113 -47 -t47 -113z" /> - <glyph glyph-name="uniF2D3" unicode="&#xf2d3;" horiz-adv-x="1792" -d="M1175 215l146 146q10 10 10 23t-10 23l-233 233l233 233q10 10 10 23t-10 23l-146 146q-10 10 -23 10t-23 -10l-233 -233l-233 233q-10 10 -23 10t-23 -10l-146 -146q-10 -10 -10 -23t10 -23l233 -233l-233 -233q-10 -10 -10 -23t10 -23l146 -146q10 -10 23 -10t23 10 -l233 233l233 -233q10 -10 23 -10t23 10zM1792 1248v-1216q0 -66 -47 -113t-113 -47h-1472q-66 0 -113 47t-47 113v1216q0 66 47 113t113 47h1472q66 0 113 -47t47 -113z" /> - <glyph glyph-name="uniF2D4" unicode="&#xf2d4;" horiz-adv-x="1792" -d="M1257 425l-146 -146q-10 -10 -23 -10t-23 10l-169 169l-169 -169q-10 -10 -23 -10t-23 10l-146 146q-10 10 -10 23t10 23l169 169l-169 169q-10 10 -10 23t10 23l146 146q10 10 23 10t23 -10l169 -169l169 169q10 10 23 10t23 -10l146 -146q10 -10 10 -23t-10 -23 -l-169 -169l169 -169q10 -10 10 -23t-10 -23zM256 128h1280v1024h-1280v-1024zM1792 1248v-1216q0 -66 -47 -113t-113 -47h-1472q-66 0 -113 47t-47 113v1216q0 66 47 113t113 47h1472q66 0 113 -47t47 -113z" /> - <glyph glyph-name="uniF2D5" unicode="&#xf2d5;" horiz-adv-x="1792" -d="M1070 358l306 564h-654l-306 -564h654zM1792 640q0 -182 -71 -348t-191 -286t-286 -191t-348 -71t-348 71t-286 191t-191 286t-71 348t71 348t191 286t286 191t348 71t348 -71t286 -191t191 -286t71 -348z" /> - <glyph glyph-name="uniF2D6" unicode="&#xf2d6;" horiz-adv-x="1794" -d="M1291 1060q-15 17 -35 8.5t-26 -28.5t5 -38q14 -17 40 -14.5t34 20.5t-18 52zM895 814q-8 -8 -19.5 -8t-18.5 8q-8 8 -8 19t8 18q7 8 18.5 8t19.5 -8q7 -7 7 -18t-7 -19zM1060 740l-35 -35q-12 -13 -29.5 -13t-30.5 13l-38 38q-12 13 -12 30t12 30l35 35q12 12 29.5 12 -t30.5 -12l38 -39q12 -12 12 -29.5t-12 -29.5zM951 870q-7 -8 -18.5 -8t-19.5 8q-7 8 -7 19t7 19q8 8 19 8t19 -8t8 -19t-8 -19zM1354 968q-34 -64 -107.5 -85.5t-127.5 16.5q-38 28 -61 66.5t-21 87.5t39 92t75.5 53t70.5 -5t70 -51q2 -2 13 -12.5t14.5 -13.5t13 -13.5 -t12.5 -15.5t10 -15.5t8.5 -18t4 -18.5t1 -21t-5 -22t-9.5 -24zM1555 486q3 20 -8.5 34.5t-27.5 21.5t-33 17t-23 20q-40 71 -84 98.5t-113 11.5q19 13 40 18.5t33 4.5l12 -1q2 45 -34 90q6 20 6.5 40.5t-2.5 30.5l-3 10q43 24 71 65t34 91q10 84 -43 150.5t-137 76.5 -q-60 7 -114 -18.5t-82 -74.5q-30 -51 -33.5 -101t14.5 -87t43.5 -64t56.5 -42q-45 4 -88 36t-57 88q-28 108 32 222q-16 21 -29 32q-50 0 -89 -19q19 24 42 37t36 14l13 1q0 50 -13 78q-10 21 -32.5 28.5t-47 -3.5t-37.5 -40q2 4 4 7q-7 -28 -6.5 -75.5t19 -117t48.5 -122.5 -q-25 -14 -47 -36q-35 -16 -85.5 -70.5t-84.5 -101.5l-33 -46q-90 -34 -181 -125.5t-75 -162.5q1 -16 11 -27q-15 -12 -30 -30q-21 -25 -21 -54t21.5 -40t63.5 6q41 19 77 49.5t55 60.5q-2 2 -6.5 5t-20.5 7.5t-33 3.5q23 5 51 12.5t40 10t27.5 6t26 4t23.5 0.5q14 -7 22 34 -q7 37 7 90q0 102 -40 150q106 -103 101 -219q-1 -29 -15 -50t-27 -27l-13 -6q-4 -7 -19 -32t-26 -45.5t-26.5 -52t-25 -61t-17 -63t-6.5 -66.5t10 -63q-35 54 -37 80q-22 -24 -34.5 -39t-33.5 -42t-30.5 -46t-16.5 -41t-0.5 -38t25.5 -27q45 -25 144 64t190.5 221.5 -t122.5 228.5q86 52 145 115.5t86 119.5q47 -93 154 -178q104 -83 167 -80q39 2 46 43zM1794 640q0 -182 -71 -348t-191 -286t-286.5 -191t-348.5 -71t-348.5 71t-286.5 191t-191 286t-71 348t71 348t191 286t286.5 191t348.5 71t348.5 -71t286.5 -191t191 -286t71 -348z" /> - <glyph glyph-name="uniF2D7" unicode="&#xf2d7;" -d="M518 1353v-655q103 -1 191.5 1.5t125.5 5.5l37 3q68 2 90.5 24.5t39.5 94.5l33 142h103l-14 -322l7 -319h-103l-29 127q-15 68 -45 93t-84 26q-87 8 -352 8v-556q0 -78 43.5 -115.5t133.5 -37.5h357q35 0 59.5 2t55 7.5t54 18t48.5 32t46 50.5t39 73l93 216h89 -q-6 -37 -31.5 -252t-30.5 -276q-146 5 -263.5 8t-162.5 4h-44h-628l-376 -12v102l127 25q67 13 91.5 37t25.5 79l8 643q3 402 -8 645q-2 61 -25.5 84t-91.5 36l-127 24v102l376 -12h702q139 0 374 27q-6 -68 -14 -194.5t-12 -219.5l-5 -92h-93l-32 124q-31 121 -74 179.5 -t-113 58.5h-548q-28 0 -35.5 -8.5t-7.5 -30.5z" /> - <glyph glyph-name="uniF2D8" unicode="&#xf2d8;" -d="M922 739v-182q0 -4 0.5 -15t0 -15l-1.5 -12t-3.5 -11.5t-6.5 -7.5t-11 -5.5t-16 -1.5v309q9 0 16 -1t11 -5t6.5 -5.5t3.5 -9.5t1 -10.5v-13.5v-14zM1238 643v-121q0 -1 0.5 -12.5t0 -15.5t-2.5 -11.5t-7.5 -10.5t-13.5 -3q-9 0 -14 9q-4 10 -4 165v7v8.5v9t1.5 8.5l3.5 7 -t5 5.5t8 1.5q6 0 10 -1.5t6.5 -4.5t4 -6t2 -8.5t0.5 -8v-9.5v-9zM180 407h122v472h-122v-472zM614 407h106v472h-159l-28 -221q-20 148 -32 221h-158v-472h107v312l45 -312h76l43 319v-319zM1039 712q0 67 -5 90q-3 16 -11 28.5t-17 20.5t-25 14t-26.5 8.5t-31 4t-29 1.5 -h-29.5h-12h-91v-472h56q169 -1 197 24.5t25 180.5q-1 62 -1 100zM1356 515v133q0 29 -2 45t-9.5 33.5t-24.5 25t-46 7.5q-46 0 -77 -34v154h-117v-472h110l7 30q30 -36 77 -36q50 0 66 30.5t16 83.5zM1536 1248v-1216q0 -66 -47 -113t-113 -47h-1216q-66 0 -113 47t-47 113 -v1216q0 66 47 113t113 47h1216q66 0 113 -47t47 -113z" /> - <glyph glyph-name="uniF2D9" unicode="&#xf2d9;" horiz-adv-x="2176" -d="M1143 -197q-6 1 -11 4q-13 8 -36 23t-86 65t-116.5 104.5t-112 140t-89.5 172.5q-17 3 -175 37q66 -213 235 -362t391 -184zM502 409l168 -28q-25 76 -41 167.5t-19 145.5l-4 53q-84 -82 -121 -224q5 -65 17 -114zM612 1018q-43 -64 -77 -148q44 46 74 68zM2049 584 -q0 161 -62 307t-167.5 252t-250.5 168.5t-304 62.5q-147 0 -281 -52.5t-240 -148.5q-30 -58 -45 -160q60 51 143 83.5t158.5 43t143 13.5t108.5 -1l40 -3q33 -1 53 -15.5t24.5 -33t6.5 -37t-1 -28.5q-126 11 -227.5 0.5t-183 -43.5t-142.5 -71.5t-131 -98.5 -q4 -36 11.5 -92.5t35.5 -178t62 -179.5q123 -6 247.5 14.5t214.5 53.5t162.5 67t109.5 59l37 24q22 16 39.5 20.5t30.5 -5t17 -34.5q14 -97 -39 -121q-208 -97 -467 -134q-135 -20 -317 -16q41 -96 110 -176.5t137 -127t130.5 -79t101.5 -43.5l39 -12q143 -23 263 15 -q195 99 314 289t119 418zM2123 621q-14 -135 -40 -212q-70 -208 -181.5 -346.5t-318.5 -253.5q-48 -33 -82 -44q-72 -26 -163 -16q-36 -3 -73 -3q-283 0 -504.5 173t-295.5 442q-1 0 -4 0.5t-5 0.5q-6 -50 2.5 -112.5t26 -115t36 -98t31.5 -71.5l14 -26q8 -12 54 -82 -q-71 38 -124.5 106.5t-78.5 140t-39.5 137t-17.5 107.5l-2 42q-5 2 -33.5 12.5t-48.5 18t-53 20.5t-57.5 25t-50 25.5t-42.5 27t-25 25.5q19 -10 50.5 -25.5t113 -45.5t145.5 -38l2 32q11 149 94 290q41 202 176 365q28 115 81 214q15 28 32 45t49 32q158 74 303.5 104 -t302 11t306.5 -97q220 -115 333 -336t87 -474z" /> - <glyph glyph-name="uniF2DA" unicode="&#xf2da;" horiz-adv-x="1792" -d="M1341 752q29 44 -6.5 129.5t-121.5 142.5q-58 39 -125.5 53.5t-118 4.5t-68.5 -37q-12 -23 -4.5 -28t42.5 -10q23 -3 38.5 -5t44.5 -9.5t56 -17.5q36 -13 67.5 -31.5t53 -37t40 -38.5t30.5 -38t22 -34.5t16.5 -28.5t12 -18.5t10.5 -6t11 9.5zM1704 178 -q-52 -127 -148.5 -220t-214.5 -141.5t-253 -60.5t-266 13.5t-251 91t-210 161.5t-141.5 235.5t-46.5 303.5q1 41 8.5 84.5t12.5 64t24 80.5t23 73q-51 -208 1 -397t173 -318t291 -206t346 -83t349 74.5t289 244.5q20 27 18 14q0 -4 -4 -14zM1465 627q0 -104 -40.5 -199 -t-108.5 -164t-162 -109.5t-198 -40.5t-198 40.5t-162 109.5t-108.5 164t-40.5 199t40.5 199t108.5 164t162 109.5t198 40.5t198 -40.5t162 -109.5t108.5 -164t40.5 -199zM1752 915q-65 147 -180.5 251t-253 153.5t-292 53.5t-301 -36.5t-275.5 -129t-220 -211.5t-131 -297 -t-10 -373q-49 161 -51.5 311.5t35.5 272.5t109 227t165.5 180.5t207 126t232 71t242.5 9t236 -54t216 -124.5t178 -197q33 -50 62 -121t31 -112zM1690 573q12 244 -136.5 416t-396.5 240q-8 0 -10 5t24 8q125 -4 230 -50t173 -120t116 -168.5t58.5 -199t-1 -208 -t-61.5 -197.5t-122.5 -167t-185 -117.5t-248.5 -46.5q108 30 201.5 80t174 123t129.5 176.5t55 225.5z" /> - <glyph glyph-name="uniF2DB" unicode="&#xf2db;" -d="M192 256v-128h-112q-16 0 -16 16v16h-48q-16 0 -16 16v32q0 16 16 16h48v16q0 16 16 16h112zM192 512v-128h-112q-16 0 -16 16v16h-48q-16 0 -16 16v32q0 16 16 16h48v16q0 16 16 16h112zM192 768v-128h-112q-16 0 -16 16v16h-48q-16 0 -16 16v32q0 16 16 16h48v16 -q0 16 16 16h112zM192 1024v-128h-112q-16 0 -16 16v16h-48q-16 0 -16 16v32q0 16 16 16h48v16q0 16 16 16h112zM192 1280v-128h-112q-16 0 -16 16v16h-48q-16 0 -16 16v32q0 16 16 16h48v16q0 16 16 16h112zM1280 1440v-1472q0 -40 -28 -68t-68 -28h-832q-40 0 -68 28 -t-28 68v1472q0 40 28 68t68 28h832q40 0 68 -28t28 -68zM1536 208v-32q0 -16 -16 -16h-48v-16q0 -16 -16 -16h-112v128h112q16 0 16 -16v-16h48q16 0 16 -16zM1536 464v-32q0 -16 -16 -16h-48v-16q0 -16 -16 -16h-112v128h112q16 0 16 -16v-16h48q16 0 16 -16zM1536 720v-32 -q0 -16 -16 -16h-48v-16q0 -16 -16 -16h-112v128h112q16 0 16 -16v-16h48q16 0 16 -16zM1536 976v-32q0 -16 -16 -16h-48v-16q0 -16 -16 -16h-112v128h112q16 0 16 -16v-16h48q16 0 16 -16zM1536 1232v-32q0 -16 -16 -16h-48v-16q0 -16 -16 -16h-112v128h112q16 0 16 -16v-16 -h48q16 0 16 -16z" /> - <glyph glyph-name="uniF2DC" unicode="&#xf2dc;" horiz-adv-x="1664" -d="M1566 419l-167 -33l186 -107q23 -13 29.5 -38.5t-6.5 -48.5q-14 -23 -39 -29.5t-48 6.5l-186 106l55 -160q13 -38 -12 -63.5t-60.5 -20.5t-48.5 42l-102 300l-271 156v-313l208 -238q16 -18 17 -39t-11 -36.5t-28.5 -25t-37 -5.5t-36.5 22l-112 128v-214q0 -26 -19 -45 -t-45 -19t-45 19t-19 45v214l-112 -128q-16 -18 -36.5 -22t-37 5.5t-28.5 25t-11 36.5t17 39l208 238v313l-271 -156l-102 -300q-13 -37 -48.5 -42t-60.5 20.5t-12 63.5l55 160l-186 -106q-23 -13 -48 -6.5t-39 29.5q-13 23 -6.5 48.5t29.5 38.5l186 107l-167 33 -q-29 6 -42 29t-8.5 46.5t25.5 40t50 10.5l310 -62l271 157l-271 157l-310 -62q-4 -1 -13 -1q-27 0 -44 18t-19 40t11 43t40 26l167 33l-186 107q-23 13 -29.5 38.5t6.5 48.5t39 30t48 -7l186 -106l-55 160q-13 38 12 63.5t60.5 20.5t48.5 -42l102 -300l271 -156v313 -l-208 238q-16 18 -17 39t11 36.5t28.5 25t37 5.5t36.5 -22l112 -128v214q0 26 19 45t45 19t45 -19t19 -45v-214l112 128q16 18 36.5 22t37 -5.5t28.5 -25t11 -36.5t-17 -39l-208 -238v-313l271 156l102 300q13 37 48.5 42t60.5 -20.5t12 -63.5l-55 -160l186 106 -q23 13 48 6.5t39 -29.5q13 -23 6.5 -48.5t-29.5 -38.5l-186 -107l167 -33q27 -5 40 -26t11 -43t-19 -40t-44 -18q-9 0 -13 1l-310 62l-271 -157l271 -157l310 62q29 6 50 -10.5t25.5 -40t-8.5 -46.5t-42 -29z" /> - <glyph glyph-name="uniF2DD" unicode="&#xf2dd;" horiz-adv-x="1792" -d="M1473 607q7 118 -33 226.5t-113 189t-177 131t-221 57.5q-116 7 -225.5 -32t-192 -110.5t-135 -175t-59.5 -220.5q-7 -118 33 -226.5t113 -189t177.5 -131t221.5 -57.5q155 -9 293 59t224 195.5t94 283.5zM1792 1536l-349 -348q120 -117 180.5 -272t50.5 -321 -q-11 -183 -102 -339t-241 -255.5t-332 -124.5l-999 -132l347 347q-120 116 -180.5 271.5t-50.5 321.5q11 184 102 340t241.5 255.5t332.5 124.5q167 22 500 66t500 66z" /> - <glyph glyph-name="uniF2DE" unicode="&#xf2de;" horiz-adv-x="1792" -d="M948 508l163 -329h-51l-175 350l-171 -350h-49l179 374l-78 33l21 49l240 -102l-21 -50zM563 1100l304 -130l-130 -304l-304 130zM907 915l240 -103l-103 -239l-239 102zM1188 765l191 -81l-82 -190l-190 81zM1680 640q0 159 -62 304t-167.5 250.5t-250.5 167.5t-304 62 -t-304 -62t-250.5 -167.5t-167.5 -250.5t-62 -304t62 -304t167.5 -250.5t250.5 -167.5t304 -62t304 62t250.5 167.5t167.5 250.5t62 304zM1792 640q0 -182 -71 -348t-191 -286t-286 -191t-348 -71t-348 71t-286 191t-191 286t-71 348t71 348t191 286t286 191t348 71t348 -71 -t286 -191t191 -286t71 -348z" /> - <glyph glyph-name="uniF2E0" unicode="&#xf2e0;" horiz-adv-x="1920" -d="M1334 302q-4 24 -27.5 34t-49.5 10.5t-48.5 12.5t-25.5 38q-5 47 33 139.5t75 181t32 127.5q-14 101 -117 103q-45 1 -75 -16l-3 -2l-5 -2.5t-4.5 -2t-5 -2t-5 -0.5t-6 1.5t-6 3.5t-6.5 5q-3 2 -9 8.5t-9 9t-8.5 7.5t-9.5 7.5t-9.5 5.5t-11 4.5t-11.5 2.5q-30 5 -48 -3 -t-45 -31q-1 -1 -9 -8.5t-12.5 -11t-15 -10t-16.5 -5.5t-17 3q-54 27 -84 40q-41 18 -94 -5t-76 -65q-16 -28 -41 -98.5t-43.5 -132.5t-40 -134t-21.5 -73q-22 -69 18.5 -119t110.5 -46q30 2 50.5 15t38.5 46q7 13 79 199.5t77 194.5q6 11 21.5 18t29.5 0q27 -15 21 -53 -q-2 -18 -51 -139.5t-50 -132.5q-6 -38 19.5 -56.5t60.5 -7t55 49.5q4 8 45.5 92t81.5 163.5t46 88.5q20 29 41 28q29 0 25 -38q-2 -16 -65.5 -147.5t-70.5 -159.5q-12 -53 13 -103t74 -74q17 -9 51 -15.5t71.5 -8t62.5 14t20 48.5zM383 86q3 -15 -5 -27.5t-23 -15.5 -q-14 -3 -26.5 5t-15.5 23q-3 14 5 27t22 16t27 -5t16 -23zM953 -177q12 -17 8.5 -37.5t-20.5 -32.5t-37.5 -8t-32.5 21q-11 17 -7.5 37.5t20.5 32.5t37.5 8t31.5 -21zM177 635q-18 -27 -49.5 -33t-57.5 13q-26 18 -32 50t12 58q18 27 49.5 33t57.5 -12q26 -19 32 -50.5 -t-12 -58.5zM1467 -42q19 -28 13 -61.5t-34 -52.5t-60.5 -13t-51.5 34t-13 61t33 53q28 19 60.5 13t52.5 -34zM1579 562q69 -113 42.5 -244.5t-134.5 -207.5q-90 -63 -199 -60q-20 -80 -84.5 -127t-143.5 -44.5t-140 57.5q-12 -9 -13 -10q-103 -71 -225 -48.5t-193 126.5 -q-50 73 -53 164q-83 14 -142.5 70.5t-80.5 128t-2 152t81 138.5q-36 60 -38 128t24.5 125t79.5 98.5t121 50.5q32 85 99 148t146.5 91.5t168 17t159.5 -66.5q72 21 140 17.5t128.5 -36t104.5 -80t67.5 -115t17.5 -140.5q52 -16 87 -57t45.5 -89t-5.5 -99.5t-58 -87.5z -M455 1222q14 -20 9.5 -44.5t-24.5 -38.5q-19 -14 -43.5 -9.5t-37.5 24.5q-14 20 -9.5 44.5t24.5 38.5q19 14 43.5 9.5t37.5 -24.5zM614 1503q4 -16 -5 -30.5t-26 -18.5t-31 5.5t-18 26.5q-3 17 6.5 31t25.5 18q17 4 31 -5.5t17 -26.5zM1800 555q4 -20 -6.5 -37t-30.5 -21 -q-19 -4 -36 6.5t-21 30.5t6.5 37t30.5 22q20 4 36.5 -7.5t20.5 -30.5zM1136 1448q16 -27 8.5 -58.5t-35.5 -47.5q-27 -16 -57.5 -8.5t-46.5 34.5q-16 28 -8.5 59t34.5 48t58 9t47 -36zM1882 792q4 -15 -4 -27.5t-23 -16.5q-15 -3 -27.5 5.5t-15.5 22.5q-3 15 5 28t23 16 -q14 3 26.5 -5t15.5 -23zM1691 1033q15 -22 10.5 -49t-26.5 -43q-22 -15 -49 -10t-42 27t-10 49t27 43t48.5 11t41.5 -28z" /> - <glyph glyph-name="uniF2E1" unicode="&#xf2e1;" horiz-adv-x="1792" - /> - <glyph glyph-name="uniF2E2" unicode="&#xf2e2;" horiz-adv-x="1792" - /> - <glyph glyph-name="uniF2E3" unicode="&#xf2e3;" horiz-adv-x="1792" - /> - <glyph glyph-name="uniF2E4" unicode="&#xf2e4;" horiz-adv-x="1792" - /> - <glyph glyph-name="uniF2E5" unicode="&#xf2e5;" horiz-adv-x="1792" - /> - <glyph glyph-name="uniF2E6" unicode="&#xf2e6;" horiz-adv-x="1792" - /> - <glyph glyph-name="uniF2E7" unicode="&#xf2e7;" horiz-adv-x="1792" - /> - <glyph glyph-name="_698" unicode="&#xf2e8;" horiz-adv-x="1792" - /> - <glyph glyph-name="uniF2E9" unicode="&#xf2e9;" horiz-adv-x="1792" - /> - <glyph glyph-name="uniF2EA" unicode="&#xf2ea;" horiz-adv-x="1792" - /> - <glyph glyph-name="uniF2EB" unicode="&#xf2eb;" horiz-adv-x="1792" - /> - <glyph glyph-name="uniF2EC" unicode="&#xf2ec;" horiz-adv-x="1792" - /> - <glyph glyph-name="uniF2ED" unicode="&#xf2ed;" horiz-adv-x="1792" - /> - <glyph glyph-name="uniF2EE" unicode="&#xf2ee;" horiz-adv-x="1792" - /> - <glyph glyph-name="lessequal" unicode="&#xf500;" horiz-adv-x="1792" - /> - </font> -</defs></svg> diff --git a/fonts/fontawesome-webfont.ttf b/fonts/fontawesome-webfont.ttf deleted file mode 100644 index 35acda2..0000000 Binary files a/fonts/fontawesome-webfont.ttf and /dev/null differ diff --git a/fonts/fontawesome-webfont.woff b/fonts/fontawesome-webfont.woff deleted file mode 100644 index 400014a..0000000 Binary files a/fonts/fontawesome-webfont.woff and /dev/null differ diff --git a/fonts/fontawesome-webfont.woff2 b/fonts/fontawesome-webfont.woff2 deleted file mode 100644 index 4d13fc6..0000000 Binary files a/fonts/fontawesome-webfont.woff2 and /dev/null differ diff --git a/fonts/roboto-v18-latin-ext-700.eot b/fonts/roboto-v18-latin-ext-700.eot deleted file mode 100644 index 99ae4b5..0000000 Binary files a/fonts/roboto-v18-latin-ext-700.eot and /dev/null differ diff --git a/fonts/roboto-v18-latin-ext-700.svg b/fonts/roboto-v18-latin-ext-700.svg deleted file mode 100644 index 11db87d..0000000 --- a/fonts/roboto-v18-latin-ext-700.svg +++ /dev/null @@ -1,309 +0,0 @@ -<?xml version="1.0" standalone="no"?> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg xmlns="http://www.w3.org/2000/svg"> -<defs > -<font id="Roboto" horiz-adv-x="1191" ><font-face - font-family="Roboto" - units-per-em="2048" - panose-1="2 0 0 0 0 0 0 0 0 0" - ascent="1900" - descent="-500" - alphabetic="0" /> -<glyph unicode=" " horiz-adv-x="510" /> -<glyph unicode="!" horiz-adv-x="557" d="M405 447H165L131 1456H439L405 447ZM285 289Q358 289 402 246T447 136Q447 70 403 27T285 -16Q213 -16 169 27T124 136T168 245T285 289Z" /> -<glyph unicode="&quot;" horiz-adv-x="657" d="M266 1398L226 987H64V1536H266V1398ZM591 1398L552 987H390V1536H591V1398Z" /> -<glyph unicode="#" horiz-adv-x="1220" d="M667 410H474L402 0H219L291 410H64V582H321L371 866H139V1040H402L475 1456H657L584 1040H778L851 1456H1034L961 1040H1180V866H930L880 582H1104V410H850L778 0H595L667 410ZM504 582H697L747 866H553L504 582Z" /> -<glyph unicode="$" horiz-adv-x="1175" d="M790 383Q790 465 745 513T590 603T402 684T267 777T179 901T147 1070Q147 1239 255 1347T542 1473V1687H702V1470Q879 1445 979 1323T1079 1005H790Q790 1125 741 1184T608 1244Q526 1244 481 1198T436 1069Q436 993 -480 947T643 853T840 763T970 667T1051 545T1079 385Q1079 215 973 109T681 -16V-215H522V-17Q317 5 205 128T92 457H381Q381 338 437 275T600 211Q688 211 739 257T790 383Z" /> -<glyph unicode="%" horiz-adv-x="1512" d="M95 1176Q95 1310 182 1393T410 1477Q553 1477 640 1395T727 1171V1099Q727 964 640 882T412 800Q270 800 183 882T95 1105V1176ZM287 1099Q287 1039 321 1003T412 966T501 1003T534 1102V1176Q534 1236 501 1273T410 -1310Q355 1310 321 1274T287 1172V1099ZM791 357Q791 492 879 574T1107 657Q1249 657 1336 576T1424 351V279Q1424 145 1338 63T1109 -20Q965 -20 878 63T791 283V357ZM983 279Q983 224 1019 185T1109 146Q1231 146 1231 281V357Q1231 417 1197 453T1107 490T1017 -454T983 354V279ZM469 109L328 185L1039 1323L1180 1247L469 109Z" /> -<glyph unicode="&amp;" horiz-adv-x="1344" d="M71 392Q71 493 127 579T335 770Q270 857 233 933T196 1093Q196 1263 303 1369T593 1476Q756 1476 860 1379T965 1137Q965 963 789 830L677 749L928 457Q987 573 987 713H1233Q1233 429 1102 253L1320 0H992L917 -86Q756 -20 547 -20Q331 -20 201 93T71 392ZM561 212Q665 212 758 270L471 602L450 587Q361 511 361 408Q361 321 416 267T561 212ZM455 1097Q455 1022 543 908L620 959Q679 997 701 1033T724 1119T687 1206T592 1243Q530 1243 493 1203T455 1097Z" /> -<glyph unicode="&apos;" horiz-adv-x="331" d="M275 1389L246 985H63V1536H275V1389Z" /> -<glyph unicode="(" horiz-adv-x="719" d="M124 592Q124 821 185 1028T365 1394T623 1616L679 1460Q533 1352 451 1126T369 598V567Q369 264 450 37T679 -302L623 -455Q487 -394 370 -240T190 117T124 539V592Z" /> -<glyph unicode=")" horiz-adv-x="722" d="M609 569Q609 343 544 134T357 -235T96 -455L40 -302Q182 -195 264 28T349 541V594Q349 893 268 1121T40 1463L96 1616Q232 1557 352 1402T539 1041T609 614V569Z" /> -<glyph unicode="*" horiz-adv-x="928" d="M341 962L27 1051L86 1232L397 1107L377 1456H573L553 1100L856 1223L915 1040L595 951L805 685L646 572L464 864L284 582L125 690L341 962Z" /> -<glyph unicode="+" horiz-adv-x="1118" d="M694 815H1055V554H694V146H419V554H57V815H419V1206H694V815Z" /> -<glyph unicode="," horiz-adv-x="500" d="M186 -365L35 -286L71 -221Q138 -99 140 22V246H384L383 46Q382 -65 327 -178T186 -365Z" /> -<glyph unicode="-" horiz-adv-x="794" d="M673 507H110V740H673V507Z" /> -<glyph unicode="." horiz-adv-x="595" d="M126 142Q126 211 172 254T289 297Q360 297 406 254T453 142Q453 74 407 32T289 -11Q218 -11 172 31T126 142Z" /> -<glyph unicode="/" horiz-adv-x="765" d="M202 -125H-13L523 1456H738L202 -125Z" /> -<glyph unicode="0" horiz-adv-x="1175" d="M1079 602Q1079 300 954 140T588 -20Q350 -20 224 137T95 587V855Q95 1160 221 1318T586 1476T950 1320T1079 870V602ZM790 896Q790 1077 741 1159T586 1242Q484 1242 436 1164T384 918V564Q384 386 432 300T588 213Q694 -213 741 296T790 550V896Z" /> -<glyph unicode="1" horiz-adv-x="1175" d="M801 0H512V1114L167 1007V1242L770 1458H801V0Z" /> -<glyph unicode="2" horiz-adv-x="1175" d="M1097 0H99V198L570 700Q667 806 713 885T760 1035Q760 1132 711 1187T571 1243Q473 1243 417 1176T360 998H70Q70 1131 133 1241T313 1413T576 1476Q801 1476 925 1368T1050 1063Q1050 955 994 843T802 582L471 233H1097V0Z" /> -<glyph unicode="3" horiz-adv-x="1175" d="M393 856H547Q657 856 710 911T763 1057Q763 1145 711 1194T566 1243Q483 1243 427 1198T371 1079H82Q82 1193 143 1283T315 1425T559 1476Q790 1476 921 1366T1052 1061Q1052 961 991 877T831 748Q954 704 1014 616T1075 -408Q1075 214 934 97T559 -20Q341 -20 203 95T64 399H353Q353 317 414 265T566 213Q669 213 727 267T786 412Q786 630 546 630H393V856Z" /> -<glyph unicode="4" horiz-adv-x="1175" d="M954 548H1119V315H954V0H665V315H68L55 497L662 1456H954V548ZM343 548H665V1062L646 1029L343 548Z" /> -<glyph unicode="5" horiz-adv-x="1175" d="M142 716L226 1456H1042V1215H463L427 902Q530 957 646 957Q854 957 972 828T1090 467Q1090 326 1031 215T860 42T598 -20Q466 -20 353 33T175 184T105 405H391Q400 314 454 264T597 213Q695 213 748 283T801 483Q801 -607 740 673T567 739Q464 739 400 685L372 659L142 716Z" /> -<glyph unicode="6" horiz-adv-x="1175" d="M883 1471V1233H855Q659 1230 540 1131T396 856Q512 974 689 974Q879 974 991 838T1103 480Q1103 338 1042 223T868 44T613 -20Q383 -20 242 140T100 567V671Q100 908 189 1089T446 1370T835 1471H883ZM601 742Q531 742 -474 706T390 609V521Q390 376 447 295T607 213Q700 213 757 286T815 477Q815 596 757 669T601 742Z" /> -<glyph unicode="7" horiz-adv-x="1175" d="M1089 1294L526 0H221L785 1222H61V1456H1089V1294Z" /> -<glyph unicode="8" horiz-adv-x="1175" d="M1048 1069Q1048 963 995 881T849 750Q955 699 1017 610T1079 399Q1079 205 947 93T588 -20T228 93T95 399Q95 520 157 610T324 750Q231 799 179 881T126 1069Q126 1255 250 1365T587 1476Q799 1476 923 1367T1048 1069ZM789 -420Q789 515 734 572T586 629Q494 629 439 573T384 420Q384 327 438 270T588 213Q682 213 735 268T789 420ZM759 1055Q759 1140 714 1191T587 1243Q506 1243 461 1193T416 1055Q416 968 461 915T588 862T714 915T759 1055Z" /> -<glyph unicode="9" horiz-adv-x="1175" d="M775 582Q662 471 511 471Q318 471 202 603T86 961Q86 1104 148 1223T323 1409T575 1476Q719 1476 831 1404T1005 1197T1068 888V781Q1068 417 887 209T374 -13L303 -14V227L367 228Q744 245 775 582ZM582 692Q652 692 -702 728T779 815V934Q779 1081 723 1162T573 1243Q486 1243 430 1164T374 964Q374 845 428 769T582 692Z" /> -<glyph unicode=":" horiz-adv-x="578" d="M381 142Q381 211 427 254T544 297Q615 297 661 254T708 142Q708 74 662 32T544 -11Q473 -11 427 31T381 142ZM125 961Q125 1030 171 1073T288 1116Q359 1116 405 1073T452 961Q452 893 406 851T288 808Q217 808 171 850T125 -961Z" /> -<glyph unicode=";" horiz-adv-x="537" d="M108 961Q108 1030 154 1073T271 1116Q342 1116 388 1073T435 961Q435 893 389 851T271 808Q200 808 154 850T108 961ZM208 -365L57 -286L93 -221Q160 -99 162 22V246H406L405 46Q404 -65 349 -178T208 -365Z" /> -<glyph unicode="&lt;" horiz-adv-x="1042" d="M345 618L915 417V137L54 502V738L915 1103V823L345 618Z" /> -<glyph unicode="=" horiz-adv-x="1172" d="M1030 746H136V982H1030V746ZM1030 313H136V549H1030V313Z" /> -<glyph unicode="&gt;" horiz-adv-x="1058" d="M701 621L120 824V1102L991 737V502L120 136V415L701 621Z" /> -<glyph unicode="?" horiz-adv-x="1019" d="M347 447Q347 587 381 670T505 833T626 964T656 1071Q656 1240 500 1240Q426 1240 382 1195T335 1069H45Q47 1260 168 1368T500 1476Q712 1476 829 1374T946 1084Q946 999 908 924T775 756L694 679Q618 606 607 508L603 -447H347ZM318 140Q318 207 363 250T480 294T596 251T642 140Q642 74 598 31T480 -12T363 31T318 140Z" /> -<glyph unicode="@" horiz-adv-x="1833" d="M1749 536Q1738 280 1623 130T1312 -21Q1226 -21 1164 16T1069 122Q969 -18 808 -18Q662 -18 582 105T522 430Q540 595 605 723T771 921T987 990Q1130 990 1231 924L1294 881L1243 303Q1233 224 1260 182T1348 140Q1440 -140 1502 247T1570 529Q1587 878 1430 1065T963 1253Q770 1253 619 1155T381 877T283 463Q267 109 425 -84T898 -278Q981 -278 1072 -260T1229 -210L1267 -364Q1206 -404 1103 -428T894 -453Q630 -453 444 -347T167 -33T87 463Q99 739 213 958T523 1296T967 1416Q1218 -1416 1399 1309T1670 1001T1749 536ZM744 430Q733 298 767 230T877 161Q926 161 970 204T1043 328L1085 801Q1046 814 1005 814Q890 814 827 716T744 430Z" /> -<glyph unicode="A" horiz-adv-x="1378" d="M952 300H426L326 0H7L549 1456H827L1372 0H1053L952 300ZM507 543H871L688 1088L507 543Z" /> -<glyph unicode="B" horiz-adv-x="1307" d="M130 0V1456H640Q905 1456 1042 1355T1179 1057Q1179 950 1124 869T971 749Q1083 721 1147 636T1212 428Q1212 218 1078 110T696 0H130ZM430 634V241H687Q793 241 852 291T912 431Q912 631 705 634H430ZM430 846H652Q879 -850 879 1027Q879 1126 822 1169T640 1213H430V846Z" /> -<glyph unicode="C" horiz-adv-x="1340" d="M1273 485Q1256 250 1100 115T687 -20Q407 -20 247 168T86 686V775Q86 985 160 1145T371 1390T691 1476Q943 1476 1097 1341T1275 962H975Q964 1103 897 1166T691 1230Q541 1230 467 1123T390 789V679Q390 443 461 334T687 -225Q826 225 894 288T973 485H1273Z" /> -<glyph unicode="D" horiz-adv-x="1331" d="M130 0V1456H578Q770 1456 921 1370T1158 1124T1243 761V694Q1243 491 1160 333T924 88T581 0H130ZM430 1213V241H575Q751 241 844 356T939 685V762Q939 984 847 1098T578 1213H430Z" /> -<glyph unicode="E" horiz-adv-x="1152" d="M1006 631H430V241H1106V0H130V1456H1104V1213H430V866H1006V631Z" /> -<glyph unicode="F" horiz-adv-x="1122" d="M1006 595H430V0H130V1456H1078V1213H430V837H1006V595Z" /> -<glyph unicode="G" horiz-adv-x="1395" d="M1282 184Q1201 87 1053 34T725 -20Q536 -20 394 62T174 302T94 671V770Q94 988 167 1147T379 1391T704 1476Q963 1476 1109 1353T1282 993H990Q970 1118 902 1176T713 1234Q560 1234 480 1119T399 777V684Q399 455 486 -338T741 221Q910 221 982 293V544H709V765H1282V184Z" /> -<glyph unicode="H" horiz-adv-x="1447" d="M1315 0H1015V624H430V0H130V1456H430V866H1015V1456H1315V0Z" /> -<glyph unicode="I" horiz-adv-x="597" d="M449 0H149V1456H449V0Z" /> -<glyph unicode="J" horiz-adv-x="1144" d="M717 1456H1017V448Q1017 309 956 203T782 38T529 -20Q298 -20 169 97T40 430H342Q342 323 387 272T529 221Q615 221 666 280T717 448V1456Z" /> -<glyph unicode="K" horiz-adv-x="1300" d="M586 584L430 416V0H130V1456H430V796L562 977L933 1456H1302L785 809L1317 0H960L586 584Z" /> -<glyph unicode="L" horiz-adv-x="1109" d="M430 241H1067V0H130V1456H430V241Z" /> -<glyph unicode="M" horiz-adv-x="1794" d="M522 1456L896 400L1268 1456H1662V0H1361V398L1391 1085L998 0H792L400 1084L430 398V0H130V1456H522Z" /> -<glyph unicode="N" horiz-adv-x="1446" d="M1314 0H1014L430 958V0H130V1456H430L1015 496V1456H1314V0Z" /> -<glyph unicode="O" horiz-adv-x="1414" d="M1326 695Q1326 480 1250 318T1033 68T708 -20Q527 -20 385 67T165 315T86 687V759Q86 974 163 1137T382 1388T706 1476T1029 1389T1248 1138T1326 760V695ZM1022 761Q1022 990 940 1109T706 1228Q555 1228 473 1111T390 -766V695Q390 472 472 349T708 226Q859 226 940 344T1022 690V761Z" /> -<glyph unicode="P" horiz-adv-x="1321" d="M430 513V0H130V1456H698Q862 1456 986 1396T1178 1226T1245 974Q1245 760 1099 637T693 513H430ZM430 756H698Q817 756 879 812T942 972Q942 1079 879 1145T705 1213H430V756Z" /> -<glyph unicode="Q" horiz-adv-x="1414" d="M1324 695Q1324 491 1258 341T1075 99L1317 -91L1126 -260L816 -11Q763 -20 706 -20Q525 -20 383 67T163 315T84 687V759Q84 974 161 1137T380 1388T704 1476T1027 1389T1246 1138T1324 760V695ZM1020 761Q1020 990 938 -1109T704 1228Q553 1228 471 1111T388 766V695Q388 472 470 349T706 226Q857 226 938 344T1020 690V761Z" /> -<glyph unicode="R" horiz-adv-x="1307" d="M669 533H430V0H130V1456H671Q929 1456 1069 1341T1209 1016Q1209 867 1145 768T949 609L1264 14V0H942L669 533ZM430 776H672Q785 776 847 833T909 992Q909 1095 851 1154T671 1213H430V776Z" /> -<glyph unicode="S" horiz-adv-x="1259" d="M885 382Q885 467 825 512T609 608T362 708Q114 842 114 1069Q114 1187 180 1279T371 1424T651 1476Q807 1476 929 1420T1118 1260T1186 1026H886Q886 1126 823 1181T646 1237Q536 1237 475 1191T414 1068Q414 997 485 -949T696 859Q952 782 1069 668T1186 384Q1186 195 1043 88T658 -20Q490 -20 352 41T142 210T69 458H370Q370 217 658 217Q765 217 825 260T885 382Z" /> -<glyph unicode="T" horiz-adv-x="1267" d="M1226 1213H780V0H480V1213H40V1456H1226V1213Z" /> -<glyph unicode="U" horiz-adv-x="1348" d="M1232 1456V497Q1232 258 1083 119T674 -20Q419 -20 269 115T116 486V1456H416V495Q416 352 484 287T674 221Q927 221 931 487V1456H1232Z" /> -<glyph unicode="V" horiz-adv-x="1339" d="M668 361L998 1456H1332L825 0H512L7 1456H340L668 361Z" /> -<glyph unicode="W" horiz-adv-x="1791" d="M1264 420L1460 1456H1759L1436 0H1134L897 974L660 0H358L35 1456H334L531 422L771 1456H1025L1264 420Z" /> -<glyph unicode="X" horiz-adv-x="1301" d="M651 954L924 1456H1269L845 734L1280 0H931L651 510L371 0H22L457 734L33 1456H378L651 954Z" /> -<glyph unicode="Y" horiz-adv-x="1266" d="M632 800L935 1456H1263L785 528V0H480V528L2 1456H331L632 800Z" /> -<glyph unicode="Z" horiz-adv-x="1241" d="M448 241H1182V0H73V176L793 1213H74V1456H1166V1284L448 241Z" /> -<glyph unicode="[" horiz-adv-x="569" d="M552 1471H410V-116H552V-339H120V1694H552V1471Z" /> -<glyph unicode="\" horiz-adv-x="864" d="M0 1456H295L903 -125H607L0 1456Z" /> -<glyph unicode="]" horiz-adv-x="569" d="M13 1694H445V-339H13V-116H156V1471H13V1694Z" /> -<glyph unicode="^" horiz-adv-x="895" d="M448 1186L274 729H44L343 1456H553L852 729H623L448 1186Z" /> -<glyph unicode="_" horiz-adv-x="914" d="M912 -226H1V0H912V-226Z" /> -<glyph unicode="`" horiz-adv-x="677" d="M565 1226H328L52 1536H367L565 1226Z" /> -<glyph unicode="a" horiz-adv-x="1098" d="M738 0Q718 39 709 97Q604 -20 436 -20Q277 -20 173 72T68 304Q68 476 195 568T564 661H697V723Q697 798 659 843T537 888Q464 888 423 853T381 757H92Q92 851 150 931T314 1056T552 1102Q752 1102 869 1002T987 719V250Q988 -96 1030 17V0H738ZM499 201Q563 201 617 229T697 306V492H589Q372 492 358 342L357 325Q357 271 395 236T499 201Z" /> -<glyph unicode="b" horiz-adv-x="1153" d="M1086 531Q1086 271 975 126T665 -20Q489 -20 384 115L371 0H111V1536H400V985Q500 1102 663 1102Q861 1102 973 957T1086 547V531ZM797 552Q797 716 745 791T590 867Q452 867 400 754V327Q453 213 592 213Q732 213 776 -351Q797 417 797 552Z" /> -<glyph unicode="c" horiz-adv-x="1068" d="M561 213Q641 213 691 257T743 374H1014Q1013 264 954 173T793 31T566 -20Q334 -20 200 127T66 535V554Q66 804 199 953T564 1102Q767 1102 889 987T1014 679H743Q741 763 691 815T559 868Q458 868 407 795T355 556V526Q355 -359 406 286T561 213Z" /> -<glyph unicode="d" horiz-adv-x="1154" d="M66 549Q66 802 179 952T490 1102Q648 1102 751 984V1536H1041V0H780L766 115Q658 -20 488 -20Q297 -20 182 130T66 549ZM355 528Q355 376 408 295T562 214Q696 214 751 327V754Q697 867 564 867Q355 867 355 528Z" /> -<glyph unicode="e" horiz-adv-x="1107" d="M609 -20Q371 -20 222 126T72 515V543Q72 706 135 834T313 1032T577 1102Q799 1102 926 962T1054 565V447H365Q379 341 449 277T628 213Q795 213 889 334L1031 175Q966 83 855 32T609 -20ZM576 868Q490 868 437 810T368 -644H770V667Q768 763 718 815T576 868Z" /> -<glyph unicode="f" horiz-adv-x="734" d="M190 0V870H29V1082H190V1174Q190 1356 294 1456T587 1557Q647 1557 734 1537L731 1313Q695 1322 643 1322Q480 1322 480 1169V1082H695V870H480V0H190Z" /> -<glyph unicode="g" horiz-adv-x="1169" d="M69 549Q69 798 187 950T507 1102Q685 1102 784 980L796 1082H1058V36Q1058 -106 994 -211T812 -371T538 -426Q419 -426 306 -379T135 -256L263 -80Q371 -201 525 -201Q640 -201 704 -140T768 35V93Q668 -20 505 -20Q310 --20 190 132T69 537V549ZM358 528Q358 381 417 298T579 214Q711 214 768 313V768Q710 867 581 867Q477 867 418 782T358 528Z" /> -<glyph unicode="h" horiz-adv-x="1146" d="M393 964Q508 1102 682 1102Q1034 1102 1039 693V0H750V685Q750 778 710 822T577 867Q450 867 393 769V0H104V1536H393V964Z" /> -<glyph unicode="i" horiz-adv-x="543" d="M416 0H126V1082H416V0ZM109 1362Q109 1427 152 1469T271 1511Q345 1511 389 1469T433 1362Q433 1296 389 1254T271 1212T154 1254T109 1362Z" /> -<glyph unicode="j" horiz-adv-x="532" d="M417 1082V-59Q417 -238 322 -337T48 -437Q-27 -437 -95 -420V-191Q-43 -200 -4 -200Q127 -200 127 -61V1082H417ZM104 1362Q104 1427 147 1469T266 1511T384 1469T428 1362Q428 1296 384 1254T266 1212T149 1254T104 1362Z" /> -<glyph unicode="k" horiz-adv-x="1094" d="M504 434L400 330V0H111V1536H400V685L456 757L733 1082H1080L689 631L1114 0H782L504 434Z" /> -<glyph unicode="l" horiz-adv-x="543" d="M416 0H126V1536H416V0Z" /> -<glyph unicode="m" horiz-adv-x="1773" d="M382 1082L391 961Q506 1102 702 1102Q911 1102 989 937Q1103 1102 1314 1102Q1490 1102 1576 1000T1662 691V0H1372V690Q1372 782 1336 824T1209 867Q1079 867 1029 743L1030 0H741V689Q741 783 704 825T578 867Q455 -867 400 765V0H111V1082H382Z" /> -<glyph unicode="n" horiz-adv-x="1147" d="M377 1082L386 957Q502 1102 697 1102Q869 1102 953 1001T1039 699V0H750V692Q750 784 710 825T577 867Q455 867 394 763V0H105V1082H377Z" /> -<glyph unicode="o" horiz-adv-x="1158" d="M66 551Q66 712 128 838T306 1033T577 1102Q796 1102 934 968T1089 604L1091 530Q1091 281 952 131T579 -20T206 130T66 538V551ZM355 530Q355 376 413 295T579 213Q684 213 743 293T802 551Q802 702 743 785T577 868Q471 -868 413 786T355 530Z" /> -<glyph unicode="p" horiz-adv-x="1153" d="M1085 531Q1085 281 972 131T665 -20Q501 -20 400 94V-416H111V1082H379L389 976Q494 1102 663 1102Q863 1102 974 954T1085 546V531ZM796 552Q796 703 743 785T587 867Q451 867 400 763V320Q453 213 589 213Q796 213 796 552Z" /> -<glyph unicode="q" horiz-adv-x="1157" d="M66 551Q66 806 179 954T491 1102Q665 1102 768 969L787 1082H1041V-416H751V93Q651 -20 489 -20Q296 -20 181 130T66 551ZM355 530Q355 375 409 294T563 213Q696 213 751 319V766Q697 868 565 868Q465 868 410 787T355 530Z" /> -<glyph unicode="r" horiz-adv-x="747" d="M719 811Q660 819 615 819Q451 819 400 708V0H111V1082H384L392 953Q479 1102 633 1102Q681 1102 723 1089L719 811Z" /> -<glyph unicode="s" horiz-adv-x="1053" d="M697 299Q697 352 645 382T476 437Q90 518 90 765Q90 909 209 1005T522 1102Q728 1102 851 1005T975 753H686Q686 815 646 855T521 896Q448 896 408 863T368 779Q368 731 413 702T567 651T749 602Q978 518 978 311Q978 -163 851 72T523 -20Q387 -20 282 28T116 161T56 344H330Q334 267 387 226T529 185Q612 185 654 216T697 299Z" /> -<glyph unicode="t" horiz-adv-x="692" d="M457 1348V1082H642V870H457V330Q457 270 480 244T568 218Q616 218 653 225V6Q568 -20 478 -20Q174 -20 168 287V870H10V1082H168V1348H457Z" /> -<glyph unicode="u" horiz-adv-x="1146" d="M759 110Q652 -20 463 -20Q289 -20 198 80T104 373V1082H393V383Q393 214 547 214Q694 214 749 316V1082H1039V0H767L759 110Z" /> -<glyph unicode="v" horiz-adv-x="1035" d="M516 353L717 1082H1019L654 0H378L13 1082H315L516 353Z" /> -<glyph unicode="w" horiz-adv-x="1505" d="M1052 393L1194 1082H1473L1197 0H955L750 681L545 0H304L28 1082H307L448 394L646 1082H855L1052 393Z" /> -<glyph unicode="x" horiz-adv-x="1042" d="M523 759L705 1082H1014L706 552L1027 0H717L524 340L332 0H21L342 552L35 1082H345L523 759Z" /> -<glyph unicode="y" horiz-adv-x="1028" d="M515 409L715 1082H1025L590 -168L566 -225Q469 -437 246 -437Q183 -437 118 -418V-199L162 -200Q244 -200 284 -175T348 -92L382 -3L3 1082H314L515 409Z" /> -<glyph unicode="z" horiz-adv-x="1042" d="M443 233H972V0H74V176L583 848H89V1082H956V911L443 233Z" /> -<glyph unicode="{" horiz-adv-x="676" d="M586 -360Q226 -259 226 105V304Q226 515 48 515V722Q222 722 226 921V1133Q226 1318 316 1432T586 1597L642 1436Q566 1408 527 1339T486 1146V936Q486 710 307 619Q486 527 486 300V88Q491 -146 642 -198L586 -360Z" /> -<glyph unicode="|" horiz-adv-x="518" d="M348 -270H173V1456H348V-270Z" /> -<glyph unicode="}" horiz-adv-x="676" d="M34 -198Q186 -144 190 92V304Q190 530 373 618Q190 706 190 937V1146Q186 1379 34 1436L90 1597Q269 1547 359 1434T450 1136V921Q454 722 628 722V515Q450 515 450 306V89Q442 -261 90 -360L34 -198Z" /> -<glyph unicode="~" horiz-adv-x="1328" d="M1221 793Q1221 607 1128 491T888 375Q814 375 751 403T604 511T451 591Q393 591 357 541T321 413L106 415Q106 601 196 714T437 827Q515 827 579 797T724 690T873 612Q932 612 969 665T1007 794L1221 793Z" /> -<glyph unicode="&#xa0;" horiz-adv-x="510" /> -<glyph unicode="&#xa1;" horiz-adv-x="578" d="M170 639H411L444 -369H137L170 639ZM452 948Q452 881 406 838T290 795T174 838T128 948T172 1058T290 1101T407 1058T452 948Z" /> -<glyph unicode="&#xa2;" horiz-adv-x="1178" d="M594 213Q674 213 724 257T776 374H1048Q1046 229 950 124T698 -11V-245H498V-12Q311 18 205 162T99 532V554Q99 772 204 917T498 1094V1318H698V1093Q861 1064 953 953T1048 679H776Q774 765 724 816T593 868Q491 -868 440 794T388 559V526Q388 358 439 286T594 213Z" /> -<glyph unicode="&#xa3;" horiz-adv-x="1217" d="M564 576L570 437Q570 314 508 241H1161V0H102V241H194Q266 259 266 420L261 576H99V812H253L246 1039Q246 1241 369 1358T700 1475Q912 1475 1033 1363T1154 1058H867Q867 1143 824 1188T699 1233Q633 1233 590 -1184T546 1039L555 812H864V576H564Z" /> -<glyph unicode="&#xa4;" horiz-adv-x="1418" d="M1073 107Q914 -20 712 -20Q509 -20 351 106L222 -26L81 118L216 255Q116 411 116 608Q116 812 225 973L81 1120L222 1264L364 1119Q519 1234 712 1234Q906 1234 1061 1117L1205 1265L1347 1120L1199 969Q1306 810 -1306 608Q1306 415 1208 259L1347 118L1205 -27L1073 107ZM302 608Q302 490 356 389T505 229T712 170Q822 170 917 228T1067 388T1121 608Q1121 727 1067 827T918 986T712 1044Q600 1044 505 986T356 828T302 608Z" /> -<glyph unicode="&#xa5;" horiz-adv-x="1098" d="M550 892L774 1456H1087L765 742H983V567H695V452H983V278H695V0H395V278H89V452H395V567H89V742H333L10 1456H325L550 892Z" /> -<glyph unicode="&#xa6;" horiz-adv-x="516" d="M128 -270V525H388V-270H128ZM388 698H128V1456H388V698Z" /> -<glyph unicode="&#xa7;" horiz-adv-x="1287" d="M1180 481Q1180 299 1018 210Q1153 108 1153 -78Q1153 -253 1016 -352T636 -452Q379 -452 236 -345T92 -35L381 -34Q381 -123 445 -170T636 -218Q748 -218 806 -181T864 -80Q864 -15 800 26T553 117T278 223T140 -353T94 534Q94 714 256 807Q120 910 120 1095Q120 1266 260 1371T640 1476Q887 1476 1023 1363T1159 1049H870Q870 1136 809 1189T640 1243Q530 1243 470 1204T410 1097Q410 1024 465 987T706 901T988 797T1133 666T1180 481ZM458 704Q383 662 383 563Q383 494 -424 457T590 379L812 312Q894 359 894 452Q894 514 849 553T685 633L458 704Z" /> -<glyph unicode="&#xa8;" horiz-adv-x="956" d="M371 1365Q371 1312 332 1276T232 1239Q170 1239 132 1276T94 1365T132 1454T232 1492T332 1455T371 1365ZM581 1365Q581 1419 621 1455T720 1492Q779 1492 818 1455T858 1365Q858 1313 820 1276T720 1238T620 1275T581 -1365Z" /> -<glyph unicode="&#xa9;" horiz-adv-x="1606" d="M1117 596Q1117 444 1030 363T782 282T528 388T433 675V788Q433 962 528 1068T782 1175Q945 1175 1031 1093T1118 861H962Q962 957 916 998T782 1040Q690 1040 640 973T588 792V669Q588 552 639 485T782 417Q871 -417 916 457T961 596H1117ZM1383 729Q1383 895 1308 1037T1096 1265T796 1351Q637 1351 501 1269T286 1043T208 729T285 415T499 188T796 104T1093 189T1307 418T1383 729ZM86 729Q86 931 179 1104T438 1376T796 1476T1153 1377T1412 1104T1506 729Q1506 525 1411 -352T1152 79T796 -20Q603 -20 439 80T180 353T86 729Z" /> -<glyph unicode="&#xaa;" horiz-adv-x="909" d="M604 705Q594 732 587 773Q510 691 386 691Q268 691 203 752T137 919Q137 1029 221 1089T478 1150H580V1201Q580 1328 464 1328Q399 1328 363 1303T326 1229L153 1243Q153 1347 240 1411T464 1476Q599 1476 677 1404T755 -1199V883Q755 786 781 705H604ZM429 835Q469 835 511 853T580 897V1033H474Q398 1032 355 1002T312 923Q312 835 429 835Z" /> -<glyph unicode="&#xab;" horiz-adv-x="1023" d="M559 524L799 125H613L333 515V534L613 924H799L559 524ZM688 524L928 125H742L462 515V534L742 924H928L688 524Z" /> -<glyph unicode="&#xac;" horiz-adv-x="1129" d="M961 374H761V634H126V805H961V374Z" /> -<glyph unicode="&#xad;" horiz-adv-x="794" d="M673 507H110V740H673V507Z" /> -<glyph unicode="&#xae;" horiz-adv-x="1606" d="M86 729Q86 931 179 1104T438 1376T796 1476T1153 1377T1412 1104T1506 729Q1506 525 1411 352T1152 79T796 -20Q603 -20 439 80T180 353T86 729ZM1383 729Q1383 895 1308 1037T1096 1265T796 1351Q637 1351 501 -1269T286 1043T208 729T285 415T499 188T796 104T1093 189T1307 418T1383 729ZM652 653V316H501V1166H782Q933 1166 1020 1098T1107 903Q1107 791 994 729Q1055 698 1079 643T1104 505T1107 389T1121 332V316H966Q953 350 953 510Q953 586 920 619T810 653H652ZM652 -787H788Q862 787 909 819T957 903Q957 973 922 1002T793 1033H652V787Z" /> -<glyph unicode="&#xaf;" horiz-adv-x="1026" d="M858 1287H168V1454H858V1287Z" /> -<glyph unicode="&#xb0;" horiz-adv-x="795" d="M126 1200Q126 1314 207 1395T398 1476Q507 1476 586 1396T666 1200T587 1007T398 928Q290 928 208 1006T126 1200ZM398 1076Q451 1076 485 1111T520 1200Q520 1252 486 1290T398 1328T309 1290T273 1200T309 1112T398 -1076Z" /> -<glyph unicode="&#xb1;" horiz-adv-x="1100" d="M677 942H1005V701H677V337H424V701H89V942H424V1285H677V942ZM977 1H113V236H977V1Z" /> -<glyph unicode="&#xb2;" horiz-adv-x="763" d="M693 667H73V805L360 1062Q416 1111 440 1153T465 1218Q465 1302 370 1302Q320 1302 291 1271T261 1193H55Q55 1309 140 1388T361 1467Q509 1467 589 1403T670 1219Q670 1149 634 1091T490 946L342 831H693V667Z" /> -<glyph unicode="&#xb3;" horiz-adv-x="763" d="M273 1137H355Q474 1137 474 1225Q474 1260 446 1281T368 1302Q326 1302 297 1287T267 1242H62Q62 1344 146 1405T362 1467Q507 1467 592 1408T678 1241Q678 1122 543 1072Q693 1031 693 888Q693 783 602 720T362 -656Q220 656 134 722T48 903H254Q254 869 288 845T374 820Q434 820 460 846T487 908Q487 1000 365 1001H273V1137Z" /> -<glyph unicode="&#xb4;" horiz-adv-x="679" d="M298 1536H613L336 1226H101L298 1536Z" /> -<glyph unicode="&#xb5;" horiz-adv-x="1261" d="M428 1082V459Q428 333 468 274T608 214Q757 214 813 319V1082H1102V0H833L827 68Q738 -21 602 -21Q500 -21 428 24V-416H139V1082H428Z" /> -<glyph unicode="&#xb6;" horiz-adv-x="1003" d="M650 0V520H570Q340 520 208 647T75 988Q75 1201 208 1328T571 1456H869V0H650Z" /> -<glyph unicode="&#xb7;" horiz-adv-x="617" d="M140 697Q140 766 186 809T303 852T420 809T467 697T420 586T303 543Q231 543 186 586T140 697Z" /> -<glyph unicode="&#xb8;" horiz-adv-x="548" d="M345 7L334 -51Q484 -78 484 -224Q484 -334 393 -398T135 -462L128 -295Q240 -295 240 -214Q240 -172 207 -157T98 -136L129 7H345Z" /> -<glyph unicode="&#xb9;" horiz-adv-x="763" d="M528 667H324V1215L135 1174V1332L509 1453H528V667Z" /> -<glyph unicode="&#xba;" horiz-adv-x="936" d="M118 1121Q118 1281 213 1378T464 1476T715 1379T811 1116V1044Q811 885 717 788T466 690Q308 690 213 788T118 1049V1121ZM293 1044Q293 946 339 891T466 836Q544 836 589 890T636 1041V1121Q636 1218 590 1273T464 -1328Q386 1328 340 1274T293 1117V1044Z" /> -<glyph unicode="&#xbb;" horiz-adv-x="1023" d="M272 923L552 533V514L272 124H85L325 523L85 923H272ZM665 923L945 533V514L665 124H478L718 523L478 923H665Z" /> -<glyph unicode="&#xbc;" horiz-adv-x="1470" d="M494 664H290V1212L101 1171V1329L475 1450H494V664ZM458 117L317 193L1028 1331L1169 1255L458 117ZM1302 326H1390V159H1302V0H1097V159H751L739 294L1096 789H1302V326ZM935 326H1097V538L1083 516L935 326Z" /> -<glyph unicode="&#xbd;" horiz-adv-x="1559" d="M416 117L275 193L986 1331L1127 1255L416 117ZM477 670H273V1218L84 1177V1335L458 1456H477V670ZM1477 0H857V138L1144 395Q1200 444 1224 486T1249 551Q1249 635 1154 635Q1104 635 1075 604T1045 526H839Q839 -642 924 721T1145 800Q1293 800 1373 736T1454 552Q1454 482 1418 424T1274 279L1126 164H1477V0Z" /> -<glyph unicode="&#xbe;" horiz-adv-x="1655" d="M619 117L478 193L1189 1331L1330 1255L619 117ZM1460 326H1548V159H1460V0H1255V159H909L897 294L1254 789H1460V326ZM1093 326H1255V538L1241 516L1093 326ZM319 1137H401Q520 1137 520 1225Q520 1260 492 1281T414 -1302Q372 1302 343 1287T313 1242H108Q108 1344 192 1405T408 1467Q553 1467 638 1408T724 1241Q724 1122 589 1072Q739 1031 739 888Q739 783 648 720T408 656Q266 656 180 722T94 903H300Q300 869 334 845T420 820Q480 820 506 846T533 908Q533 1000 411 1001H319V1137Z" -/> -<glyph unicode="&#xbf;" horiz-adv-x="1019" d="M666 643Q666 510 635 428T525 272T417 162T374 89T359 8Q359 -149 513 -149Q590 -149 635 -104T683 22H972Q970 -170 849 -277T518 -385Q305 -385 187 -284T69 6Q69 165 222 318L319 411Q369 456 388 505T410 643H666ZM702 -949Q702 882 656 839T540 796T424 839T378 949T422 1059T540 1102T657 1059T702 949Z" /> -<glyph unicode="&#xc0;" horiz-adv-x="1378" d="M952 300H426L326 0H7L549 1456H827L1372 0H1053L952 300ZM507 543H871L688 1088L507 543ZM836 1536H599L323 1846H638L836 1536Z" /> -<glyph unicode="&#xc1;" horiz-adv-x="1378" d="M952 300H426L326 0H7L549 1456H827L1372 0H1053L952 300ZM507 543H871L688 1088L507 543ZM750 1846H1065L788 1536H553L750 1846Z" /> -<glyph unicode="&#xc2;" horiz-adv-x="1378" d="M952 300H426L326 0H7L549 1456H827L1372 0H1053L952 300ZM507 543H871L688 1088L507 543ZM1076 1566V1554H846L692 1699L538 1554H312V1570L608 1846H776L1076 1566Z" /> -<glyph unicode="&#xc3;" horiz-adv-x="1378" d="M952 300H426L326 0H7L549 1456H827L1372 0H1053L952 300ZM507 543H871L688 1088L507 543ZM1068 1832Q1068 1719 1002 1643T841 1566Q803 1566 774 1574T692 1611T617 1645T567 1652Q532 1652 508 1627T483 1556L315 -1566Q315 1677 380 1755T541 1833Q571 1833 597 1826T684 1789T767 1754T815 1748Q850 1748 875 1772T901 1843L1068 1832Z" /> -<glyph unicode="&#xc4;" horiz-adv-x="1378" d="M952 300H426L326 0H7L549 1456H827L1372 0H1053L952 300ZM507 543H871L688 1088L507 543ZM587 1675Q587 1622 548 1586T448 1549Q386 1549 348 1586T310 1675T348 1764T448 1802T548 1765T587 1675ZM797 1675Q797 -1729 837 1765T936 1802Q995 1802 1034 1765T1074 1675Q1074 1623 1036 1586T936 1548T836 1585T797 1675Z" /> -<glyph unicode="&#xc5;" horiz-adv-x="1378" d="M952 300H426L326 0H7L549 1456H827L1372 0H1053L952 300ZM507 543H871L688 1088L507 543ZM470 1730Q470 1816 535 1875T693 1935Q785 1935 850 1877T916 1730Q916 1645 852 1587T693 1529Q596 1529 533 1588T470 -1730ZM585 1730Q585 1686 614 1655T693 1623T772 1654T801 1730Q801 1776 772 1807T693 1839T615 1808T585 1730Z" /> -<glyph unicode="&#xc6;" horiz-adv-x="1925" d="M1865 0H968L954 333H508L341 0H2L788 1456H1804V1220H1206L1221 865H1723V629H1231L1247 235H1865V0ZM633 580H944L920 1150L633 580Z" /> -<glyph unicode="&#xc7;" horiz-adv-x="1340" d="M1273 485Q1256 250 1100 115T687 -20Q407 -20 247 168T86 686V775Q86 985 160 1145T371 1390T691 1476Q943 1476 1097 1341T1275 962H975Q964 1103 897 1166T691 1230Q541 1230 467 1123T390 789V679Q390 443 461 -334T687 225Q826 225 894 288T973 485H1273ZM797 6L786 -52Q936 -79 936 -225Q936 -335 845 -399T587 -463L580 -296Q692 -296 692 -215Q692 -173 659 -158T550 -137L581 6H797Z" /> -<glyph unicode="&#xc8;" horiz-adv-x="1152" d="M1006 631H430V241H1106V0H130V1456H1104V1213H430V866H1006V631ZM779 1539H542L266 1849H581L779 1539Z" /> -<glyph unicode="&#xc9;" horiz-adv-x="1152" d="M1006 631H430V241H1106V0H130V1456H1104V1213H430V866H1006V631ZM693 1849H1008L731 1539H496L693 1849Z" /> -<glyph unicode="&#xca;" horiz-adv-x="1152" d="M1006 631H430V241H1106V0H130V1456H1104V1213H430V866H1006V631ZM1019 1569V1557H789L635 1702L481 1557H255V1573L551 1849H719L1019 1569Z" /> -<glyph unicode="&#xcb;" horiz-adv-x="1152" d="M1006 631H430V241H1106V0H130V1456H1104V1213H430V866H1006V631ZM530 1678Q530 1625 491 1589T391 1552Q329 1552 291 1589T253 1678T291 1767T391 1805T491 1768T530 1678ZM740 1678Q740 1732 780 1768T879 1805Q938 -1805 977 1768T1017 1678Q1017 1626 979 1589T879 1551T779 1588T740 1678Z" /> -<glyph unicode="&#xcc;" horiz-adv-x="597" d="M449 0H149V1456H449V0ZM443 1539H206L-70 1849H245L443 1539Z" /> -<glyph unicode="&#xcd;" horiz-adv-x="597" d="M449 0H149V1456H449V0ZM356 1849H671L394 1539H159L356 1849Z" /> -<glyph unicode="&#xce;" horiz-adv-x="597" d="M449 0H149V1456H449V0ZM683 1569V1557H453L299 1702L145 1557H-81V1573L215 1849H383L683 1569Z" /> -<glyph unicode="&#xcf;" horiz-adv-x="597" d="M449 0H149V1456H449V0ZM194 1678Q194 1625 155 1589T55 1552Q-7 1552 -45 1589T-83 1678T-45 1767T55 1805T155 1768T194 1678ZM404 1678Q404 1732 444 1768T543 1805Q602 1805 641 1768T681 1678Q681 1626 643 -1589T543 1551T443 1588T404 1678Z" /> -<glyph unicode="&#xd0;" horiz-adv-x="1361" d="M160 0V642H-20V825H160V1456H608Q800 1456 951 1370T1188 1124T1273 761V694Q1273 491 1190 333T954 88T611 0H160ZM679 642H460V241H605Q783 241 876 358T969 694V762Q969 984 877 1098T608 1213H460V825H679V642Z" /> -<glyph unicode="&#xd1;" horiz-adv-x="1446" d="M1314 0H1014L430 958V0H130V1456H430L1015 496V1456H1314V0ZM1102 1832Q1102 1719 1036 1643T875 1566Q837 1566 808 1574T726 1611T651 1645T601 1652Q566 1652 542 1627T517 1556L349 1566Q349 1677 414 1755T575 -1833Q605 1833 631 1826T718 1789T801 1754T849 1748Q884 1748 909 1772T935 1843L1102 1832Z" /> -<glyph unicode="&#xd2;" horiz-adv-x="1414" d="M1326 695Q1326 480 1250 318T1033 68T708 -20Q527 -20 385 67T165 315T86 687V759Q86 974 163 1137T382 1388T706 1476T1029 1389T1248 1138T1326 760V695ZM1022 761Q1022 990 940 1109T706 1228Q555 1228 473 -1111T390 766V695Q390 472 472 349T708 226Q859 226 940 344T1022 690V761ZM850 1536H613L337 1846H652L850 1536Z" /> -<glyph unicode="&#xd3;" horiz-adv-x="1414" d="M1326 695Q1326 480 1250 318T1033 68T708 -20Q527 -20 385 67T165 315T86 687V759Q86 974 163 1137T382 1388T706 1476T1029 1389T1248 1138T1326 760V695ZM1022 761Q1022 990 940 1109T706 1228Q555 1228 473 -1111T390 766V695Q390 472 472 349T708 226Q859 226 940 344T1022 690V761ZM764 1846H1079L802 1536H567L764 1846Z" /> -<glyph unicode="&#xd4;" horiz-adv-x="1414" d="M1326 695Q1326 480 1250 318T1033 68T708 -20Q527 -20 385 67T165 315T86 687V759Q86 974 163 1137T382 1388T706 1476T1029 1389T1248 1138T1326 760V695ZM1022 761Q1022 990 940 1109T706 1228Q555 1228 473 -1111T390 766V695Q390 472 472 349T708 226Q859 226 940 344T1022 690V761ZM1090 1566V1554H860L706 1699L552 1554H326V1570L622 1846H790L1090 1566Z" /> -<glyph unicode="&#xd5;" horiz-adv-x="1414" d="M1326 695Q1326 480 1250 318T1033 68T708 -20Q527 -20 385 67T165 315T86 687V759Q86 974 163 1137T382 1388T706 1476T1029 1389T1248 1138T1326 760V695ZM1022 761Q1022 990 940 1109T706 1228Q555 1228 473 -1111T390 766V695Q390 472 472 349T708 226Q859 226 940 344T1022 690V761ZM1082 1832Q1082 1719 1016 1643T855 1566Q817 1566 788 1574T706 1611T631 1645T581 1652Q546 1652 522 1627T497 1556L329 1566Q329 1677 394 1755T555 1833Q585 1833 611 1826T698 1789T781 -1754T829 1748Q864 1748 889 1772T915 1843L1082 1832Z" /> -<glyph unicode="&#xd6;" horiz-adv-x="1414" d="M1326 695Q1326 480 1250 318T1033 68T708 -20Q527 -20 385 67T165 315T86 687V759Q86 974 163 1137T382 1388T706 1476T1029 1389T1248 1138T1326 760V695ZM1022 761Q1022 990 940 1109T706 1228Q555 1228 473 -1111T390 766V695Q390 472 472 349T708 226Q859 226 940 344T1022 690V761ZM601 1675Q601 1622 562 1586T462 1549Q400 1549 362 1586T324 1675T362 1764T462 1802T562 1765T601 1675ZM811 1675Q811 1729 851 1765T950 1802Q1009 1802 1048 1765T1088 1675Q1088 -1623 1050 1586T950 1548T850 1585T811 1675Z" /> -<glyph unicode="&#xd7;" horiz-adv-x="1088" d="M65 373L372 686L65 999L235 1167L539 856L844 1167L1014 999L707 686L1014 373L844 205L539 515L235 205L65 373Z" /> -<glyph unicode="&#xd8;" horiz-adv-x="1411" d="M1333 695Q1333 480 1257 318T1040 68T715 -20Q551 -20 420 50L335 -95H147L290 147Q93 342 93 702V759Q93 974 170 1137T389 1388T713 1476Q888 1476 1027 1394L1101 1518H1288L1154 1291Q1333 1093 1333 754V695ZM397 -695Q397 523 446 410L893 1167Q820 1228 713 1228Q562 1228 480 1111T397 766V695ZM1030 761Q1030 912 992 1017L552 273Q622 226 715 226Q866 226 947 344T1030 690V761Z" /> -<glyph unicode="&#xd9;" horiz-adv-x="1348" d="M1232 1456V497Q1232 258 1083 119T674 -20Q419 -20 269 115T116 486V1456H416V495Q416 352 484 287T674 221Q927 221 931 487V1456H1232ZM814 1536H577L301 1846H616L814 1536Z" /> -<glyph unicode="&#xda;" horiz-adv-x="1348" d="M1232 1456V497Q1232 258 1083 119T674 -20Q419 -20 269 115T116 486V1456H416V495Q416 352 484 287T674 221Q927 221 931 487V1456H1232ZM728 1846H1043L766 1536H531L728 1846Z" /> -<glyph unicode="&#xdb;" horiz-adv-x="1348" d="M1232 1456V497Q1232 258 1083 119T674 -20Q419 -20 269 115T116 486V1456H416V495Q416 352 484 287T674 221Q927 221 931 487V1456H1232ZM1054 1566V1554H824L670 1699L516 1554H290V1570L586 1846H754L1054 1566Z" /> -<glyph unicode="&#xdc;" horiz-adv-x="1348" d="M1232 1456V497Q1232 258 1083 119T674 -20Q419 -20 269 115T116 486V1456H416V495Q416 352 484 287T674 221Q927 221 931 487V1456H1232ZM565 1675Q565 1622 526 1586T426 1549Q364 1549 326 1586T288 1675T326 -1764T426 1802T526 1765T565 1675ZM775 1675Q775 1729 815 1765T914 1802Q973 1802 1012 1765T1052 1675Q1052 1623 1014 1586T914 1548T814 1585T775 1675Z" /> -<glyph unicode="&#xdd;" horiz-adv-x="1266" d="M632 800L935 1456H1263L785 528V0H480V528L2 1456H331L632 800ZM693 1846H1008L731 1536H496L693 1846Z" /> -<glyph unicode="&#xde;" horiz-adv-x="1246" d="M422 1456V1189H652Q814 1188 933 1133T1117 975T1181 738Q1181 536 1043 414T664 287H422V0H133V1456H422ZM422 956V520H645Q762 520 827 579T892 736T829 894T653 956H422Z" /> -<glyph unicode="&#xdf;" horiz-adv-x="1292" d="M424 0H135V1101Q135 1321 259 1440T609 1559Q800 1559 915 1460T1031 1189Q1031 1081 978 994T924 830Q924 793 954 754T1073 636Q1224 502 1224 354Q1224 177 1109 79T779 -20Q698 -20 619 -4T500 36L554 265Q652 -213 773 213Q852 213 894 249T936 349Q936 395 902 438T785 548Q635 668 635 818Q635 914 690 1004T745 1174Q745 1244 701 1285T588 1327Q429 1327 424 1114V0Z" /> -<glyph unicode="&#xe0;" horiz-adv-x="1098" d="M738 0Q718 39 709 97Q604 -20 436 -20Q277 -20 173 72T68 304Q68 476 195 568T564 661H697V723Q697 798 659 843T537 888Q464 888 423 853T381 757H92Q92 851 150 931T314 1056T552 1102Q752 1102 869 1002T987 -719V250Q988 96 1030 17V0H738ZM499 201Q563 201 617 229T697 306V492H589Q372 492 358 342L357 325Q357 271 395 236T499 201ZM695 1226H458L182 1536H497L695 1226Z" /> -<glyph unicode="&#xe1;" horiz-adv-x="1098" d="M738 0Q718 39 709 97Q604 -20 436 -20Q277 -20 173 72T68 304Q68 476 195 568T564 661H697V723Q697 798 659 843T537 888Q464 888 423 853T381 757H92Q92 851 150 931T314 1056T552 1102Q752 1102 869 1002T987 -719V250Q988 96 1030 17V0H738ZM499 201Q563 201 617 229T697 306V492H589Q372 492 358 342L357 325Q357 271 395 236T499 201ZM609 1536H924L647 1226H412L609 1536Z" /> -<glyph unicode="&#xe2;" horiz-adv-x="1098" d="M738 0Q718 39 709 97Q604 -20 436 -20Q277 -20 173 72T68 304Q68 476 195 568T564 661H697V723Q697 798 659 843T537 888Q464 888 423 853T381 757H92Q92 851 150 931T314 1056T552 1102Q752 1102 869 1002T987 -719V250Q988 96 1030 17V0H738ZM499 201Q563 201 617 229T697 306V492H589Q372 492 358 342L357 325Q357 271 395 236T499 201ZM935 1256V1244H705L551 1389L397 1244H171V1260L467 1536H635L935 1256Z" /> -<glyph unicode="&#xe3;" horiz-adv-x="1098" d="M738 0Q718 39 709 97Q604 -20 436 -20Q277 -20 173 72T68 304Q68 476 195 568T564 661H697V723Q697 798 659 843T537 888Q464 888 423 853T381 757H92Q92 851 150 931T314 1056T552 1102Q752 1102 869 1002T987 -719V250Q988 96 1030 17V0H738ZM499 201Q563 201 617 229T697 306V492H589Q372 492 358 342L357 325Q357 271 395 236T499 201ZM927 1779Q927 1666 861 1590T700 1513Q662 1513 633 1521T551 1558T476 1592T426 1599Q391 1599 367 1574T342 1503L174 1513Q174 1624 -239 1702T400 1780Q430 1780 456 1773T543 1736T626 1701T674 1695Q709 1695 734 1719T760 1790L927 1779Z" /> -<glyph unicode="&#xe4;" horiz-adv-x="1098" d="M738 0Q718 39 709 97Q604 -20 436 -20Q277 -20 173 72T68 304Q68 476 195 568T564 661H697V723Q697 798 659 843T537 888Q464 888 423 853T381 757H92Q92 851 150 931T314 1056T552 1102Q752 1102 869 1002T987 -719V250Q988 96 1030 17V0H738ZM499 201Q563 201 617 229T697 306V492H589Q372 492 358 342L357 325Q357 271 395 236T499 201ZM446 1365Q446 1312 407 1276T307 1239Q245 1239 207 1276T169 1365T207 1454T307 1492T407 1455T446 1365ZM656 1365Q656 1419 696 -1455T795 1492Q854 1492 893 1455T933 1365Q933 1313 895 1276T795 1238T695 1275T656 1365Z" /> -<glyph unicode="&#xe5;" horiz-adv-x="1098" d="M738 0Q718 39 709 97Q604 -20 436 -20Q277 -20 173 72T68 304Q68 476 195 568T564 661H697V723Q697 798 659 843T537 888Q464 888 423 853T381 757H92Q92 851 150 931T314 1056T552 1102Q752 1102 869 1002T987 -719V250Q988 96 1030 17V0H738ZM499 201Q563 201 617 229T697 306V492H589Q372 492 358 342L357 325Q357 271 395 236T499 201ZM329 1420Q329 1506 394 1565T552 1625Q644 1625 709 1567T775 1420Q775 1335 711 1277T552 1219Q455 1219 392 1278T329 1420ZM444 -1420Q444 1376 473 1345T552 1313T631 1344T660 1420Q660 1466 631 1497T552 1529T474 1498T444 1420Z" /> -<glyph unicode="&#xe6;" horiz-adv-x="1729" d="M1246 -20Q999 -20 860 127Q796 58 694 19T466 -20Q280 -20 173 69T66 319Q66 476 190 562T557 649H725V706Q725 782 685 825T567 868Q485 868 438 833T390 745L101 764Q101 913 231 1007T570 1102Q781 1102 897 -992Q1023 1104 1223 1102Q1435 1102 1556 971T1677 607V450H1009Q1020 334 1089 273T1276 212Q1353 212 1418 228T1571 289L1648 100Q1575 44 1468 12T1246 -20ZM521 192Q570 192 628 214T725 272V461H561Q466 460 411 418T355 315Q355 259 395 226T521 192ZM1223 -868Q1133 868 1079 811T1011 644H1393V672Q1393 766 1350 817T1223 868Z" /> -<glyph unicode="&#xe7;" horiz-adv-x="1068" d="M561 213Q641 213 691 257T743 374H1014Q1013 264 954 173T793 31T566 -20Q334 -20 200 127T66 535V554Q66 804 199 953T564 1102Q767 1102 889 987T1014 679H743Q741 763 691 815T559 868Q458 868 407 795T355 -556V526Q355 359 406 286T561 213ZM666 6L655 -52Q805 -79 805 -225Q805 -335 714 -399T456 -463L449 -296Q561 -296 561 -215Q561 -173 528 -158T419 -137L450 6H666Z" /> -<glyph unicode="&#xe8;" horiz-adv-x="1107" d="M609 -20Q371 -20 222 126T72 515V543Q72 706 135 834T313 1032T577 1102Q799 1102 926 962T1054 565V447H365Q379 341 449 277T628 213Q795 213 889 334L1031 175Q966 83 855 32T609 -20ZM576 868Q490 868 437 -810T368 644H770V667Q768 763 718 815T576 868ZM688 1226H451L175 1536H490L688 1226Z" /> -<glyph unicode="&#xe9;" horiz-adv-x="1107" d="M609 -20Q371 -20 222 126T72 515V543Q72 706 135 834T313 1032T577 1102Q799 1102 926 962T1054 565V447H365Q379 341 449 277T628 213Q795 213 889 334L1031 175Q966 83 855 32T609 -20ZM576 868Q490 868 437 -810T368 644H770V667Q768 763 718 815T576 868ZM602 1536H917L640 1226H405L602 1536Z" /> -<glyph unicode="&#xea;" horiz-adv-x="1107" d="M609 -20Q371 -20 222 126T72 515V543Q72 706 135 834T313 1032T577 1102Q799 1102 926 962T1054 565V447H365Q379 341 449 277T628 213Q795 213 889 334L1031 175Q966 83 855 32T609 -20ZM576 868Q490 868 437 -810T368 644H770V667Q768 763 718 815T576 868ZM928 1256V1244H698L544 1389L390 1244H164V1260L460 1536H628L928 1256Z" /> -<glyph unicode="&#xeb;" horiz-adv-x="1107" d="M609 -20Q371 -20 222 126T72 515V543Q72 706 135 834T313 1032T577 1102Q799 1102 926 962T1054 565V447H365Q379 341 449 277T628 213Q795 213 889 334L1031 175Q966 83 855 32T609 -20ZM576 868Q490 868 437 -810T368 644H770V667Q768 763 718 815T576 868ZM439 1365Q439 1312 400 1276T300 1239Q238 1239 200 1276T162 1365T200 1454T300 1492T400 1455T439 1365ZM649 1365Q649 1419 689 1455T788 1492Q847 1492 886 1455T926 1365Q926 1313 888 1276T788 1238T688 1275T649 -1365Z" /> -<glyph unicode="&#xec;" horiz-adv-x="561" d="M423 0H134V1082H423V0ZM425 1211H188L-88 1521H227L425 1211Z" /> -<glyph unicode="&#xed;" horiz-adv-x="561" d="M423 0H134V1082H423V0ZM338 1777H653L376 1467H141L338 1777Z" /> -<glyph unicode="&#xee;" horiz-adv-x="561" d="M423 0H134V1082H423V0ZM665 1241V1229H435L281 1374L127 1229H-99V1245L197 1521H365L665 1241Z" /> -<glyph unicode="&#xef;" horiz-adv-x="561" d="M423 0H134V1082H423V0ZM176 1350Q176 1297 137 1261T37 1224Q-25 1224 -63 1261T-101 1350T-63 1439T37 1477T137 1440T176 1350ZM386 1350Q386 1404 426 1440T525 1477Q584 1477 623 1440T663 1350Q663 1298 625 -1261T525 1223T425 1260T386 1350Z" /> -<glyph unicode="&#xf0;" horiz-adv-x="1178" d="M849 1305Q1104 1043 1105 651V577Q1105 405 1039 268T853 56T587 -20Q443 -20 328 43T149 219T84 468Q84 699 207 832T536 966Q672 966 780 890Q731 1042 614 1155L423 1033L345 1147L497 1244Q381 1316 233 1355L324 -1579Q562 1531 740 1399L911 1508L988 1394L849 1305ZM816 663Q748 746 601 746Q488 746 431 672T373 468Q373 356 433 285T591 213Q694 213 755 303T816 552V663Z" /> -<glyph unicode="&#xf1;" horiz-adv-x="1147" d="M377 1082L386 957Q502 1102 697 1102Q869 1102 953 1001T1039 699V0H750V692Q750 784 710 825T577 867Q455 867 394 763V0H105V1082H377ZM951 1779Q951 1666 885 1590T724 1513Q686 1513 657 1521T575 1558T500 -1592T450 1599Q415 1599 391 1574T366 1503L198 1513Q198 1624 263 1702T424 1780Q454 1780 480 1773T567 1736T650 1701T698 1695Q733 1695 758 1719T784 1790L951 1779Z" /> -<glyph unicode="&#xf2;" horiz-adv-x="1158" d="M66 551Q66 712 128 838T306 1033T577 1102Q796 1102 934 968T1089 604L1091 530Q1091 281 952 131T579 -20T206 130T66 538V551ZM355 530Q355 376 413 295T579 213Q684 213 743 293T802 551Q802 702 743 785T577 -868Q471 868 413 786T355 530ZM720 1226H483L207 1536H522L720 1226Z" /> -<glyph unicode="&#xf3;" horiz-adv-x="1158" d="M66 551Q66 712 128 838T306 1033T577 1102Q796 1102 934 968T1089 604L1091 530Q1091 281 952 131T579 -20T206 130T66 538V551ZM355 530Q355 376 413 295T579 213Q684 213 743 293T802 551Q802 702 743 785T577 -868Q471 868 413 786T355 530ZM634 1536H949L672 1226H437L634 1536Z" /> -<glyph unicode="&#xf4;" horiz-adv-x="1158" d="M66 551Q66 712 128 838T306 1033T577 1102Q796 1102 934 968T1089 604L1091 530Q1091 281 952 131T579 -20T206 130T66 538V551ZM355 530Q355 376 413 295T579 213Q684 213 743 293T802 551Q802 702 743 785T577 -868Q471 868 413 786T355 530ZM960 1256V1244H730L576 1389L422 1244H196V1260L492 1536H660L960 1256Z" /> -<glyph unicode="&#xf5;" horiz-adv-x="1158" d="M66 551Q66 712 128 838T306 1033T577 1102Q796 1102 934 968T1089 604L1091 530Q1091 281 952 131T579 -20T206 130T66 538V551ZM355 530Q355 376 413 295T579 213Q684 213 743 293T802 551Q802 702 743 785T577 -868Q471 868 413 786T355 530ZM952 1779Q952 1666 886 1590T725 1513Q687 1513 658 1521T576 1558T501 1592T451 1599Q416 1599 392 1574T367 1503L199 1513Q199 1624 264 1702T425 1780Q455 1780 481 1773T568 1736T651 1701T699 1695Q734 1695 759 1719T785 1790L952 -1779Z" /> -<glyph unicode="&#xf6;" horiz-adv-x="1158" d="M66 551Q66 712 128 838T306 1033T577 1102Q796 1102 934 968T1089 604L1091 530Q1091 281 952 131T579 -20T206 130T66 538V551ZM355 530Q355 376 413 295T579 213Q684 213 743 293T802 551Q802 702 743 785T577 -868Q471 868 413 786T355 530ZM471 1365Q471 1312 432 1276T332 1239Q270 1239 232 1276T194 1365T232 1454T332 1492T432 1455T471 1365ZM681 1365Q681 1419 721 1455T820 1492Q879 1492 918 1455T958 1365Q958 1313 920 1276T820 1238T720 1275T681 1365Z" /> -<glyph unicode="&#xf7;" horiz-adv-x="1168" d="M1091 571H63V801H1091V571ZM415 1089Q415 1157 460 1199T578 1241Q649 1241 695 1200T742 1089Q742 1022 697 981T578 939Q503 939 459 981T415 1089ZM415 277Q415 345 460 387T578 429Q649 429 695 388T742 277Q742 -210 697 169T578 127Q503 127 459 169T415 277Z" /> -<glyph unicode="&#xf8;" horiz-adv-x="1156" d="M66 551Q66 712 128 838T306 1033T577 1102Q678 1102 763 1073L833 1216H994L891 1005Q1091 856 1091 530Q1091 281 952 131T579 -20Q484 -20 403 6L331 -142H170L273 70Q66 216 66 551ZM355 530Q355 400 396 322L656 -854Q620 868 577 868Q471 868 413 786T355 530ZM802 551Q802 665 765 747L509 223Q539 213 579 213Q684 213 743 293T802 551Z" /> -<glyph unicode="&#xf9;" horiz-adv-x="1146" d="M759 110Q652 -20 463 -20Q289 -20 198 80T104 373V1082H393V383Q393 214 547 214Q694 214 749 316V1082H1039V0H767L759 110ZM716 1226H479L203 1536H518L716 1226Z" /> -<glyph unicode="&#xfa;" horiz-adv-x="1146" d="M759 110Q652 -20 463 -20Q289 -20 198 80T104 373V1082H393V383Q393 214 547 214Q694 214 749 316V1082H1039V0H767L759 110ZM630 1536H945L668 1226H433L630 1536Z" /> -<glyph unicode="&#xfb;" horiz-adv-x="1146" d="M759 110Q652 -20 463 -20Q289 -20 198 80T104 373V1082H393V383Q393 214 547 214Q694 214 749 316V1082H1039V0H767L759 110ZM956 1256V1244H726L572 1389L418 1244H192V1260L488 1536H656L956 1256Z" /> -<glyph unicode="&#xfc;" horiz-adv-x="1146" d="M759 110Q652 -20 463 -20Q289 -20 198 80T104 373V1082H393V383Q393 214 547 214Q694 214 749 316V1082H1039V0H767L759 110ZM467 1365Q467 1312 428 1276T328 1239Q266 1239 228 1276T190 1365T228 1454T328 1492T428 -1455T467 1365ZM677 1365Q677 1419 717 1455T816 1492Q875 1492 914 1455T954 1365Q954 1313 916 1276T816 1238T716 1275T677 1365Z" /> -<glyph unicode="&#xfd;" horiz-adv-x="1028" d="M515 409L715 1082H1025L590 -168L566 -225Q469 -437 246 -437Q183 -437 118 -418V-199L162 -200Q244 -200 284 -175T348 -92L382 -3L3 1082H314L515 409ZM578 1536H893L616 1226H381L578 1536Z" /> -<glyph unicode="&#xfe;" horiz-adv-x="1162" d="M1087 531Q1087 281 974 131T667 -20Q503 -20 403 93V-416H113V1536H403V989Q503 1102 665 1102Q863 1102 975 955T1087 545V531ZM798 552Q798 703 745 785T589 867Q457 867 403 765V318Q457 213 591 213Q798 213 798 552Z" /> -<glyph unicode="&#xff;" horiz-adv-x="1028" d="M515 409L715 1082H1025L590 -168L566 -225Q469 -437 246 -437Q183 -437 118 -418V-199L162 -200Q244 -200 284 -175T348 -92L382 -3L3 1082H314L515 409ZM415 1365Q415 1312 376 1276T276 1239Q214 1239 176 1276T138 -1365T176 1454T276 1492T376 1455T415 1365ZM625 1365Q625 1419 665 1455T764 1492Q823 1492 862 1455T902 1365Q902 1313 864 1276T764 1238T664 1275T625 1365Z" /> -<glyph unicode="&#x2013;" horiz-adv-x="1294" d="M1444 596H408V832H1444V596Z" /> -<glyph unicode="&#x2014;" horiz-adv-x="1563" d="M1746 596H365V832H1746V596Z" /> -<glyph unicode="&#x2018;" horiz-adv-x="479" d="M286 1570L422 1491Q336 1355 333 1215V1048H104V1198Q104 1292 156 1398T286 1570Z" /> -<glyph unicode="&#x2019;" horiz-adv-x="470" d="M194 1009L58 1088Q144 1223 147 1367V1536H377V1381Q377 1291 327 1186T194 1009Z" /> -<glyph unicode="&#x201a;" horiz-adv-x="508" d="M202 -305L66 -226Q144 -100 147 48V229H385L384 63Q383 -26 334 -129T202 -305Z" /> -<glyph unicode="&#x201c;" horiz-adv-x="831" d="M294 1570L430 1491Q344 1355 341 1215V1048H112V1198Q112 1292 164 1398T294 1570ZM637 1570L773 1491Q687 1355 684 1215V1048H455V1198Q455 1292 507 1398T637 1570Z" /> -<glyph unicode="&#x201d;" horiz-adv-x="837" d="M208 1009L72 1088Q158 1223 161 1367V1536H391V1381Q391 1291 341 1186T208 1009ZM555 1009L419 1088Q505 1223 508 1367V1536H738V1381Q738 1291 688 1186T555 1009Z" /> -<glyph unicode="&#x201e;" horiz-adv-x="825" d="M209 -325L66 -246Q144 -112 147 47V263H385L384 64Q383 -33 336 -142T209 -325ZM545 -325L402 -246Q488 -98 491 48V263H729L728 60Q726 -36 676 -145T545 -325Z" /> -<glyph unicode="&#x2022;" horiz-adv-x="736" d="M135 766Q135 870 201 933T371 996Q479 996 543 934T610 771V728Q610 625 545 563T373 500Q268 500 202 562T135 731V766Z" /> -<glyph unicode="&#x2039;" horiz-adv-x="638" d="M334 524L574 125H388L108 515V534L388 924H574L334 524Z" /> -<glyph unicode="&#x203a;" horiz-adv-x="618" d="M267 923L547 533V514L267 124H80L320 523L80 923H267Z" /> -</font> -</defs> -</svg> diff --git a/fonts/roboto-v18-latin-ext-700.ttf b/fonts/roboto-v18-latin-ext-700.ttf deleted file mode 100644 index ee27365..0000000 Binary files a/fonts/roboto-v18-latin-ext-700.ttf and /dev/null differ diff --git a/fonts/roboto-v18-latin-ext-700.woff b/fonts/roboto-v18-latin-ext-700.woff deleted file mode 100644 index c101344..0000000 Binary files a/fonts/roboto-v18-latin-ext-700.woff and /dev/null differ diff --git a/fonts/roboto-v18-latin-ext-700.woff2 b/fonts/roboto-v18-latin-ext-700.woff2 deleted file mode 100644 index 44b4599..0000000 Binary files a/fonts/roboto-v18-latin-ext-700.woff2 and /dev/null differ diff --git a/fonts/roboto-v18-latin-ext-700italic.eot b/fonts/roboto-v18-latin-ext-700italic.eot deleted file mode 100644 index f18a9e9..0000000 Binary files a/fonts/roboto-v18-latin-ext-700italic.eot and /dev/null differ diff --git a/fonts/roboto-v18-latin-ext-700italic.svg b/fonts/roboto-v18-latin-ext-700italic.svg deleted file mode 100644 index 050bee0..0000000 --- a/fonts/roboto-v18-latin-ext-700italic.svg +++ /dev/null @@ -1,325 +0,0 @@ -<?xml version="1.0" standalone="no"?> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg xmlns="http://www.w3.org/2000/svg"> -<defs > -<font id="Roboto" horiz-adv-x="1167" ><font-face - font-family="Roboto" - units-per-em="2048" - panose-1="2 0 0 0 0 0 0 0 0 0" - ascent="1900" - descent="-500" - alphabetic="0" /> -<glyph unicode=" " horiz-adv-x="505" /> -<glyph unicode="!" horiz-adv-x="550" d="M369 447H134L276 1456H577L369 447ZM41 131Q39 197 83 242T195 290Q259 292 306 251T355 142Q357 76 313 30T200 -18Q130 -18 86 26T41 131Z" /> -<glyph unicode="&quot;" horiz-adv-x="647" d="M381 1382L282 987H121L208 1536H406L381 1382ZM697 1382L598 987H438L524 1536H721L697 1382Z" /> -<glyph unicode="#" horiz-adv-x="1193" d="M611 410H432L290 0H104L246 410H28L58 582H305L402 866H180L211 1040H462L606 1456H790L647 1040H827L970 1456H1156L1013 1040H1222L1192 866H953L855 582H1069L1039 410H796L655 0H469L611 410ZM490 582H669L767 866H587L490 -582Z" /> -<glyph unicode="$" horiz-adv-x="1150" d="M737 390Q747 460 714 511T579 608T409 699Q204 837 219 1062Q230 1234 348 1343T657 1473L698 1687H855L813 1467Q965 1435 1044 1315T1119 1004L836 1005Q848 1241 697 1244Q618 1246 564 1196T499 1063Q490 999 521 -950T642 858T793 778Q1032 634 1016 392Q1005 218 888 111T576 -16L537 -215H381L420 -15Q244 11 152 136T65 458L347 457Q342 336 386 275T520 212Q605 210 665 259T737 390Z" /> -<glyph unicode="%" horiz-adv-x="1477" d="M525 1478Q659 1474 736 1389T806 1176L800 1099Q786 962 692 879T465 800Q335 802 257 885T184 1099L189 1166Q200 1308 292 1394T525 1478ZM373 1095Q368 1039 391 1003T466 965T556 999T608 1099L618 1177Q625 1236 -601 1272T526 1311Q471 1313 432 1274T383 1176L373 1095ZM723 357Q735 493 829 576T1059 658Q1192 654 1270 570T1340 357L1335 290Q1324 145 1230 60T999 -21Q871 -19 791 64T718 279L723 357ZM904 277Q899 222 925 185T999 145Q1057 143 1094 179T1142 279L1152 -359Q1159 418 1134 453T1060 491Q1006 493 967 457T915 357L904 277ZM386 111L247 196L1125 1320L1262 1237L386 111Z" /> -<glyph unicode="&amp;" horiz-adv-x="1314" d="M41 385Q51 568 258 710L356 773L316 863Q264 989 271 1086Q279 1201 336 1291T488 1430T695 1476Q842 1472 936 1379T1024 1145Q1014 956 797 813L683 738L871 456Q955 576 972 714H1211Q1192 432 1018 249L1186 -0H884L829 84Q649 -23 458 -19Q268 -17 149 95T41 385ZM480 213Q567 210 689 272L475 602L451 586Q345 507 330 399Q319 316 362 266T480 213ZM518 1090Q514 1066 517 1043Q524 990 566 909L648 959Q772 1034 781 1128Q787 1178 759 1211T681 1244Q619 1246 573 -1201T518 1090Z" /> -<glyph unicode="&apos;" horiz-adv-x="331" d="M389 1373L301 985H120L207 1536H414L389 1373Z" /> -<glyph unicode="(" horiz-adv-x="707" d="M122 588Q170 945 335 1226T751 1619L799 1458Q457 1197 366 619Q335 423 333 267Q328 -144 521 -304L458 -455Q242 -335 156 -40Q99 158 105 384Q107 479 118 564L122 588Z" /> -<glyph unicode=")" horiz-adv-x="710" d="M-56 -458L-104 -300Q239 -35 329 548Q358 735 360 893Q365 1304 174 1465L237 1616Q355 1552 439 1430T564 1134T603 778Q597 500 507 238T272 -203T-56 -458Z" /> -<glyph unicode="*" horiz-adv-x="910" d="M392 966L100 1058L185 1228L472 1100L515 1456H707L627 1109L934 1227L960 1034L632 945L793 673L632 569L506 862L284 584L135 703L392 966Z" /> -<glyph unicode="+" horiz-adv-x="1094" d="M712 815H1062L1016 554H667L596 146H327L398 554H46L92 815H443L511 1206H780L712 815Z" /> -<glyph unicode="," horiz-adv-x="495" d="M31 -365L-118 -284L-45 -167Q19 -60 37 34L74 246H312L283 62Q242 -197 31 -365Z" /> -<glyph unicode="-" horiz-adv-x="780" d="M638 507H90L130 740H679L638 507Z" /> -<glyph unicode="." horiz-adv-x="587" d="M200 298Q267 300 314 257T362 147Q364 81 318 35T205 -12Q138 -14 92 28T44 137T87 250T200 298Z" /> -<glyph unicode="/" horiz-adv-x="752" d="M77 -125H-145L649 1456H872L77 -125Z" /> -<glyph unicode="0" horiz-adv-x="1150" d="M485 -20Q296 -16 193 108T87 454Q86 528 95 602L136 875Q185 1173 329 1327T698 1476Q887 1472 990 1349T1097 1004Q1098 929 1089 855L1047 584Q997 284 855 130T485 -20ZM824 1038Q824 1237 684 1244Q482 1253 427 -936L377 598Q361 492 361 422Q356 219 500 212Q703 199 758 529L811 885Q824 972 824 1038Z" /> -<glyph unicode="1" horiz-adv-x="1150" d="M674 0H392L584 1108L230 1001L274 1248L882 1458L919 1459L674 0Z" /> -<glyph unicode="2" horiz-adv-x="1150" d="M971 0H1L34 210L551 695Q710 844 762 937T801 1119Q780 1243 658 1246Q562 1248 498 1179T419 998L137 997Q145 1133 218 1244T412 1416T675 1477Q878 1473 991 1363T1091 1070Q1075 864 848 640L704 503L406 235L1008 -233L971 0Z" /> -<glyph unicode="3" horiz-adv-x="1150" d="M422 856L557 855Q660 855 729 912T810 1065Q820 1146 779 1194T656 1245T516 1201T444 1080L162 1078Q171 1254 313 1366T660 1477Q866 1473 986 1362T1095 1068Q1081 860 830 742Q928 695 973 609T1013 416Q1006 284 -932 184T734 31T466 -20Q271 -18 148 97T27 400H307Q305 319 352 268T485 214Q583 212 653 269T735 420Q748 520 700 573T552 629L386 630L422 856Z" /> -<glyph unicode="4" horiz-adv-x="1150" d="M918 548H1078L1037 315H877L822 0H540L595 315H17L37 512L780 1456H1075L918 548ZM330 550L636 548L735 1066L709 1030L330 550Z" /> -<glyph unicode="5" horiz-adv-x="1150" d="M154 720L350 1456H1146L1108 1215H549L453 900Q542 956 663 956Q850 956 952 824T1039 474Q1027 330 955 215T764 38T504 -21Q381 -20 281 35T124 188T67 406H344Q348 317 393 267T515 214Q615 211 679 287T757 491Q769 -605 723 671T581 739Q475 741 385 661L154 720Z" /> -<glyph unicode="6" horiz-adv-x="1150" d="M991 1472L969 1233L914 1232Q571 1214 419 854Q544 977 712 973Q830 971 911 907T1031 732T1058 487Q1046 344 973 226T780 42T523 -21Q380 -17 278 59T128 269T97 559L108 649Q155 1025 383 1248T953 1472H991ZM616 -743Q543 745 485 707T389 610L376 520Q371 475 372 422Q374 328 415 271T531 213Q605 210 666 261T756 398T775 573Q766 651 725 696T616 743Z" /> -<glyph unicode="7" horiz-adv-x="1150" d="M1164 1279L424 0H113L851 1222H155L192 1456H1191L1164 1279Z" /> -<glyph unicode="8" horiz-adv-x="1150" d="M1104 1077Q1090 864 854 744Q939 685 981 598T1016 408Q1005 212 857 94T491 -20Q292 -18 172 94T62 390Q76 632 347 756Q200 873 210 1061Q217 1185 283 1281T460 1428T704 1476Q893 1472 1004 1364T1104 1077ZM738 -428Q749 514 707 571T583 630Q492 632 427 571T348 411Q337 325 378 270T504 212Q596 210 660 270T738 428ZM819 1063Q828 1145 793 1193T689 1244Q610 1246 555 1192T489 1047Q480 966 513 915T618 861Q696 859 752 915T819 1063Z" /> -<glyph unicode="9" horiz-adv-x="1150" d="M763 583Q640 469 500 471Q380 472 296 535T172 710T143 954Q157 1115 245 1245T474 1437Q567 1478 678 1476Q858 1472 965 1350T1086 1023Q1090 952 1083 882L1072 796Q1023 415 801 200T230 -15H209L231 227H246Q443 -224 570 312T763 583ZM578 691Q698 687 790 814L807 935Q812 977 812 1030Q810 1126 772 1184T662 1244Q590 1245 533 1193T446 1049T424 868Q431 788 471 740T578 691Z" /> -<glyph unicode=":" horiz-adv-x="571" d="M455 298Q522 300 569 257T617 147Q619 81 573 35T460 -12Q393 -14 347 28T299 137T342 250T455 298ZM340 1117Q407 1119 454 1076T502 966Q504 900 458 854T345 807Q278 805 232 847T184 956T227 1069T340 1117Z" /> -<glyph unicode=";" horiz-adv-x="531" d="M323 1117Q390 1119 437 1076T485 966Q487 900 441 854T328 807Q261 805 215 847T167 956T210 1069T323 1117ZM52 -365L-97 -284L-24 -167Q40 -60 58 34L95 246H333L304 62Q263 -197 52 -365Z" /> -<glyph unicode="&lt;" horiz-adv-x="1021" d="M337 612L856 411L810 144L36 509L77 745L978 1110L926 817L337 612Z" /> -<glyph unicode="=" horiz-adv-x="1147" d="M1025 746H156L198 982H1067L1025 746ZM950 313H81L123 549H992L950 313Z" /> -<glyph unicode="&gt;" horiz-adv-x="1036" d="M685 627L155 830L202 1095L985 730L944 495L33 129L85 421L685 627Z" /> -<glyph unicode="?" horiz-adv-x="998" d="M321 446Q330 576 374 665T512 830T638 941Q724 1036 713 1143Q703 1240 600 1243Q529 1245 480 1198T415 1070L132 1068Q145 1258 278 1369T614 1477Q803 1473 909 1369T1002 1092Q990 922 808 769L680 663Q588 578 568 -447L321 446ZM228 134Q226 201 271 247T384 295Q448 297 495 255T544 145Q546 82 502 35T388 -14Q321 -14 276 27T228 134Z" /> -<glyph unicode="@" horiz-adv-x="1788" d="M1194 -21Q1022 -16 976 122Q850 -22 708 -19Q588 -17 526 78T471 330Q477 485 554 648T748 902T1008 991Q1081 989 1145 966T1301 883L1167 301L1160 248Q1149 143 1234 138Q1360 133 1438 286T1533 663L1536 714Q1541 -875 1491 998T1333 1185T1068 1253Q904 1256 757 1184T493 970T311 647T237 277Q228 66 311 -76Q428 -274 708 -277Q869 -279 1046 -209L1074 -367Q945 -453 709 -453Q508 -451 371 -377T154 -178T54 111Q24 336 90 582T305 1023T650 1318T1065 1416Q1358 1411 -1527 1238T1710 765Q1716 596 1670 429T1534 147Q1398 -26 1194 -21ZM690 320Q679 160 780 157Q834 154 889 206T969 326L1096 804Q1065 815 1027 817Q901 822 817 709T696 378L690 320Z" /> -<glyph unicode="A" horiz-adv-x="1347" d="M877 300H369L219 0H-104L674 1456H945L1222 0H923L877 300ZM489 543H840L758 1085L489 543Z" /> -<glyph unicode="B" horiz-adv-x="1278" d="M21 0L274 1456L728 1455Q981 1454 1108 1352T1223 1065Q1209 844 968 742Q1055 712 1103 630T1144 435Q1130 229 983 115T580 0H21ZM425 634L356 241L587 240Q695 240 768 293T855 438Q869 528 831 578T701 633L425 -634ZM461 846L660 844Q771 846 841 896T926 1035Q951 1211 741 1212L525 1213L461 846Z" /> -<glyph unicode="C" horiz-adv-x="1310" d="M1208 486Q1191 335 1105 219T881 40T583 -20Q439 -17 332 46T164 230T94 508Q87 631 119 814T235 1139T434 1364Q596 1480 804 1476Q1030 1472 1162 1337T1308 960L1016 961Q1016 1099 961 1163T790 1231Q640 1236 544 -1124T414 797Q382 588 386 484Q391 352 445 290T596 224Q730 219 810 287T917 484L1208 486Z" /> -<glyph unicode="D" horiz-adv-x="1301" d="M21 0L274 1456L692 1455Q839 1452 956 1389T1147 1206T1235 938Q1243 851 1233 760L1226 707Q1182 387 975 194T471 0H21ZM525 1213L356 241L478 240Q680 240 802 388T943 835L945 867Q948 1032 882 1120T685 1212L525 1213Z" /> -<glyph unicode="E" horiz-adv-x="1127" d="M982 631H424L356 241H1012L970 0H21L274 1456H1221L1178 1213H525L464 866H1024L982 631Z" /> -<glyph unicode="F" horiz-adv-x="1098" d="M976 595H418L314 0H21L274 1456H1196L1153 1213H525L459 837H1019L976 595Z" /> -<glyph unicode="G" horiz-adv-x="1363" d="M1188 184Q1110 85 960 32T620 -19Q471 -18 358 46T180 232T106 508Q96 652 136 846T275 1187T512 1406T818 1476Q1046 1472 1175 1348T1322 991L1040 992Q1029 1114 975 1172T814 1234Q629 1240 523 1072T401 583Q391 -412 453 318T644 222Q793 218 898 293L947 544H681L720 765H1276L1188 184Z" /> -<glyph unicode="H" horiz-adv-x="1414" d="M1173 0H880L988 624H423L314 0H21L274 1456H567L464 866H1030L1132 1456H1425L1173 0Z" /> -<glyph unicode="I" horiz-adv-x="589" d="M333 0H40L292 1456H585L333 0Z" /> -<glyph unicode="J" horiz-adv-x="1120" d="M846 1456H1139L968 448Q950 310 876 201T686 34T431 -21Q225 -17 113 101T7 431L302 430Q287 224 447 221Q534 218 595 279T674 448L846 1456Z" /> -<glyph unicode="K" horiz-adv-x="1271" d="M576 581L384 403L314 0H21L274 1456H567L455 814L604 982L1042 1456H1424L795 794L1170 0H836L576 581Z" /> -<glyph unicode="L" horiz-adv-x="1086" d="M356 241H974L932 0H21L274 1456H567L356 241Z" /> -<glyph unicode="M" horiz-adv-x="1750" d="M650 1456L829 403L1372 1456H1762L1509 0H1215L1287 415L1429 1063L871 0H670L475 1100L381 383L314 0H21L274 1456H650Z" /> -<glyph unicode="N" horiz-adv-x="1413" d="M1172 0H888L483 971L314 0H21L274 1456H557L963 483L1132 1456H1424L1172 0Z" /> -<glyph unicode="O" horiz-adv-x="1382" d="M606 -20Q461 -17 351 48T176 237T101 521Q90 685 136 871T284 1198T523 1409T821 1476Q968 1473 1078 1407T1251 1216T1323 933Q1333 757 1285 571T1136 249T900 45T606 -20ZM1021 768L1029 863Q1039 1041 982 1133T807 -1229Q624 1235 517 1067T395 597Q385 420 442 325T619 225Q776 218 879 347T1014 714L1021 768Z" /> -<glyph unicode="P" horiz-adv-x="1291" d="M404 513L314 0H21L274 1456L784 1455Q1020 1455 1155 1324T1273 982Q1257 768 1095 640T680 512L404 513ZM445 756L689 754Q807 754 885 815T978 980T945 1146T801 1212L525 1213L445 756Z" /> -<glyph unicode="Q" horiz-adv-x="1382" d="M958 95L1160 -103L960 -260L705 -12Q648 -21 599 -19Q381 -17 247 129T98 522Q89 645 116 796T206 1075T360 1293T569 1431T817 1476Q963 1473 1073 1407T1247 1217T1320 933Q1325 846 1315 759L1298 644Q1231 272 958 -95ZM1026 863Q1033 1048 976 1136T803 1229Q620 1235 513 1067T391 597Q381 420 438 325T615 225Q772 218 875 347T1010 714Q1023 810 1026 863Z" /> -<glyph unicode="R" horiz-adv-x="1278" d="M645 533H407L314 0H21L274 1456L756 1455Q998 1455 1128 1341T1244 1024Q1223 724 924 607L1129 16V0H817L645 533ZM449 776L667 774Q783 776 858 836T949 1001Q963 1098 918 1153T775 1212L525 1213L449 776Z" /> -<glyph unicode="S" horiz-adv-x="1231" d="M822 389Q843 508 705 571L512 648Q176 798 193 1061Q200 1183 273 1277T478 1424T763 1476Q974 1472 1104 1351T1232 1025H940Q945 1124 897 1179T746 1236Q646 1238 572 1191T484 1060Q465 951 630 887L762 837L838 -802Q1133 656 1114 392Q1105 263 1032 170T832 26T553 -21Q398 -18 277 44T93 219Q34 324 38 459L331 458Q317 221 564 217Q671 217 740 264T822 389Z" /> -<glyph unicode="T" horiz-adv-x="1239" d="M1296 1213H864L654 0H361L571 1213H144L187 1456H1339L1296 1213Z" /> -<glyph unicode="U" horiz-adv-x="1318" d="M1349 1456L1185 496Q1151 255 985 115T573 -21Q419 -18 306 46T138 228T101 495L264 1456H557L394 494Q387 438 393 389Q413 227 586 221Q710 217 789 289T891 495L1055 1456H1349Z" /> -<glyph unicode="V" horiz-adv-x="1309" d="M606 364L1096 1456H1432L713 0H407L145 1456H460L606 364Z" /> -<glyph unicode="W" horiz-adv-x="1747" d="M1195 423L1546 1456H1845L1304 0H1009L932 970L551 0H256L170 1456H456L485 428L877 1456H1126L1195 423Z" /> -<glyph unicode="X" horiz-adv-x="1272" d="M679 956L1022 1456H1374L839 720L1141 0H817L626 508L275 0H-81L466 748L173 1456H493L679 956Z" /> -<glyph unicode="Y" horiz-adv-x="1238" d="M640 802L1047 1456H1383L747 512L659 0H361L456 545L154 1455L463 1456L640 802Z" /> -<glyph unicode="Z" horiz-adv-x="1214" d="M378 243L1086 241L1044 0H-34L-1 191L870 1211L177 1213L220 1456H1281L1248 1269L378 243Z" /> -<glyph unicode="[" horiz-adv-x="562" d="M673 1471H535L287 -116H425L390 -339H-31L287 1694H708L673 1471Z" /> -<glyph unicode="\" horiz-adv-x="848" d="M154 1456H429L745 -125H469L154 1456Z" /> -<glyph unicode="]" horiz-adv-x="562" d="M183 1694H604L286 -339H-135L-100 -116H39L287 1471H148L183 1694Z" /> -<glyph unicode="^" horiz-adv-x="878" d="M543 1183L296 729H57L474 1456H679L843 729H632L543 1183Z" /> -<glyph unicode="_" horiz-adv-x="897" d="M743 -226H-143L-103 0H782L743 -226Z" /> -<glyph unicode="`" horiz-adv-x="667" d="M638 1226L427 1227L204 1534L495 1536L638 1226Z" /> -<glyph unicode="a" horiz-adv-x="1075" d="M629 0Q616 41 618 98Q496 -24 342 -20Q200 -18 107 72T19 296Q26 473 167 567T547 662L679 660L693 725Q699 758 696 788Q691 835 661 861T580 889Q514 891 468 857T409 757L126 756Q133 911 268 1007T603 1102Q787 -1098 891 993T978 721L895 203L890 139Q888 68 907 19L906 0H629ZM412 199Q534 195 625 305L660 492L562 493Q406 489 337 398Q312 365 306 317Q298 263 328 232T412 199Z" /> -<glyph unicode="b" horiz-adv-x="1128" d="M1043 538Q1013 282 887 128T561 -21Q390 -17 301 117L260 0H3L269 1536H552L443 983Q557 1106 707 1102Q864 1100 953 990T1049 684Q1051 622 1043 538ZM763 559Q772 644 769 691Q758 865 625 868Q500 872 418 755L340 -325Q378 217 502 213Q710 207 757 515L763 559Z" /> -<glyph unicode="c" horiz-adv-x="1046" d="M477 212Q555 210 607 254T675 373L940 374Q933 260 869 169T697 27T470 -21Q273 -18 158 115T47 469L50 524L51 535Q78 799 229 953T602 1102Q785 1098 892 983T998 678H735Q735 765 697 815T583 869Q381 875 338 574Q323 -465 327 390Q337 215 477 212Z" /> -<glyph unicode="d" horiz-adv-x="1129" d="M540 1103Q691 1099 784 982L890 1536H1173L907 0H655L671 116Q550 -25 389 -21Q288 -20 212 32T95 181T49 399Q46 462 52 521L58 566Q82 732 150 858T318 1045T540 1103ZM335 521Q327 445 330 393Q340 217 472 214Q591 -209 679 326L756 756Q717 863 600 868Q497 871 429 789T335 521Z" /> -<glyph unicode="e" horiz-adv-x="1084" d="M517 -20Q375 -19 266 49T102 237T60 501L63 541Q78 699 155 831T353 1034T621 1102Q830 1098 937 949T1019 570L1003 447H340Q336 342 391 279T541 214Q695 210 811 333L940 173Q879 81 764 30T517 -20ZM607 869Q529 -871 469 820T360 643H748L754 669Q760 709 755 745Q745 803 706 835T607 869Z" /> -<glyph unicode="f" horiz-adv-x="722" d="M79 0L230 870H74L111 1082L267 1083L281 1191Q307 1364 422 1462T715 1559Q776 1557 868 1538L843 1313Q795 1325 760 1325Q685 1326 632 1287T565 1170L550 1082H759L722 870H514L363 0H79Z" /> -<glyph unicode="g" horiz-adv-x="1144" d="M57 542Q87 793 220 949T557 1103Q730 1099 815 978L852 1083L1111 1082L934 37Q905 -179 750 -305T366 -427Q254 -425 152 -379T-16 -251L124 -79Q218 -198 360 -202Q470 -206 548 -145T654 29L670 94Q552 -24 405 -20Q247 --18 154 97T52 398Q49 459 57 542ZM334 424Q334 330 373 274T488 214Q603 210 692 312L776 770Q733 864 617 868Q509 871 434 781T340 542Q333 469 334 424Z" /> -<glyph unicode="h" horiz-adv-x="1122" d="M433 962Q560 1104 726 1102Q887 1098 962 987T1019 682L905 0H623L738 685Q743 724 740 757Q730 865 614 868Q500 872 414 770L278 0H-4L262 1536H545L433 962Z" /> -<glyph unicode="i" horiz-adv-x="537" d="M301 0H17L205 1082H489L301 0ZM238 1357Q236 1424 282 1468T393 1512Q457 1514 504 1473T553 1367Q555 1305 512 1259T398 1211Q335 1209 288 1249T238 1357Z" /> -<glyph unicode="j" horiz-adv-x="526" d="M490 1082L296 -59Q273 -240 166 -341T-112 -440Q-180 -438 -262 -421L-239 -191Q-189 -202 -152 -204Q-19 -206 10 -60L206 1082H490ZM233 1357Q231 1423 275 1466T388 1512Q457 1512 501 1471T548 1367Q550 1300 506 -1257T393 1211Q330 1209 283 1249T233 1357Z" /> -<glyph unicode="k" horiz-adv-x="1071" d="M471 431L340 317L285 0H3L269 1536H552L406 702L461 761L782 1082H1144L671 617L972 0H663L471 431Z" /> -<glyph unicode="l" horiz-adv-x="537" d="M301 0H17L284 1536H567L301 0Z" /> -<glyph unicode="m" horiz-adv-x="1730" d="M453 1083L430 960Q561 1106 747 1102Q847 1100 913 1056T1002 937Q1145 1106 1338 1102Q1487 1099 1562 1000T1626 714L1624 689L1509 0H1226L1341 691Q1345 728 1344 760Q1337 865 1224 868Q1108 868 1025 744L1022 -721L896 0H614L729 689Q733 726 732 758Q725 864 613 867Q506 870 420 766L285 0H3L190 1082L453 1083Z" /> -<glyph unicode="n" horiz-adv-x="1123" d="M449 1083L425 955Q555 1106 740 1102Q893 1099 966 990T1019 688L905 0H623L739 691Q744 730 741 762Q728 864 613 867Q502 871 414 764L279 0H-3L185 1082L449 1083Z" /> -<glyph unicode="o" horiz-adv-x="1133" d="M622 1102Q765 1100 868 1029T1020 832T1055 553Q1032 295 876 136T489 -20Q348 -18 245 52T93 248T58 524Q84 792 240 950T622 1102ZM337 421Q339 325 382 270T503 212Q633 208 707 331T776 656Q772 752 730 809T608 -869Q482 873 407 751T337 421Z" /> -<glyph unicode="p" horiz-adv-x="1128" d="M1042 538Q1021 368 953 236T784 40T560 -21Q403 -17 312 96L213 -416H-69L190 1082L450 1083L431 974Q548 1106 707 1102T954 987T1048 684Q1050 622 1042 538ZM762 559L768 655Q770 752 733 809T623 868Q500 872 420 -764L339 318Q376 217 498 213Q600 210 668 292T762 559Z" /> -<glyph unicode="q" horiz-adv-x="1132" d="M540 1103Q708 1099 797 967L843 1083L1095 1082L835 -416H551L652 95Q539 -24 389 -20Q288 -19 212 33T95 183T49 400Q46 463 52 523L58 567Q82 735 150 861T318 1046T540 1103ZM331 394Q341 216 473 213Q592 209 677 -318L759 768Q720 865 602 869Q496 872 427 786T338 544Q328 441 331 394Z" /> -<glyph unicode="r" horiz-adv-x="735" d="M744 811Q686 821 649 821Q498 825 410 708L285 0H3L191 1082L456 1083L430 951Q532 1104 682 1104Q724 1104 780 1090L744 811Z" /> -<glyph unicode="s" horiz-adv-x="1031" d="M630 305Q646 385 519 421L428 444Q105 533 114 758Q119 911 249 1007T564 1102Q747 1100 860 1005T975 752L695 753Q697 892 557 894Q491 894 443 861T383 772Q368 692 504 659L544 650Q682 617 755 575T867 469T904 -318Q901 215 838 138T664 19T431 -20Q251 -18 131 83T9 346L275 344Q279 189 441 187Q519 187 569 219T630 305Z" /> -<glyph unicode="t" horiz-adv-x="681" d="M575 1348L528 1082H708L671 870H491L399 328Q393 277 407 250T475 221Q491 220 561 226L541 5Q466 -20 379 -18Q240 -16 172 69T116 299L209 870H56L93 1082H246L292 1348H575Z" /> -<glyph unicode="u" horiz-adv-x="1122" d="M673 112Q553 -23 375 -20Q219 -18 139 92T77 382L194 1082H476L357 379Q353 346 356 317Q366 217 467 214Q598 210 684 315L819 1082H1103L915 0H652L673 112Z" /> -<glyph unicode="v" horiz-adv-x="1014" d="M458 357L766 1082H1070L547 0H277L92 1082H378L458 357Z" /> -<glyph unicode="w" horiz-adv-x="1470" d="M980 394L1237 1082H1518L1063 0H827L747 677L431 0H195L115 1082H379L396 401L705 1082H909L980 394Z" /> -<glyph unicode="x" horiz-adv-x="1021" d="M524 761L751 1082H1068L676 538L895 0H609L476 338L237 0H-82L326 566L117 1082H403L524 761Z" /> -<glyph unicode="y" horiz-adv-x="1007" d="M462 412L771 1082H1085L452 -163Q384 -306 293 -373T81 -440Q34 -440 -55 -419L-34 -199L5 -201Q143 -205 207 -100L269 15L92 1082H384L462 412Z" /> -<glyph unicode="z" horiz-adv-x="1021" d="M371 235L881 233L840 0H-33L0 191L603 846L128 848L169 1082H1012L980 897L371 235Z" /> -<glyph unicode="{" horiz-adv-x="666" d="M438 -360Q280 -307 203 -187Q126 -66 144 106L172 311Q177 353 174 389Q164 502 39 513L58 720Q243 728 273 942L305 1172Q364 1497 709 1601L756 1435Q588 1370 555 1131L523 902Q489 709 300 613Q369 562 401 485T424 -309L393 73L389 16Q382 -146 499 -199L438 -360Z" /> -<glyph unicode="|" horiz-adv-x="512" d="M203 -270H31L301 1456H473L203 -270Z" /> -<glyph unicode="}" horiz-adv-x="666" d="M-94 -197Q74 -132 107 107L139 337Q173 530 365 624Q293 673 261 752T238 929L269 1165L273 1222Q280 1383 164 1437L228 1595Q389 1541 462 1421T518 1132L490 928Q485 885 488 850Q498 735 623 724L604 517Q418 507 -389 296L362 97Q311 -256 -47 -364L-94 -197Z" /> -<glyph unicode="~" horiz-adv-x="1298" d="M1203 795Q1197 677 1151 579T1027 426T848 374Q771 376 711 409T593 501T507 576T443 593Q384 593 344 546T289 413L80 415Q92 601 189 716T438 828Q515 826 576 793T710 685T841 610Q903 610 945 660T1001 794L1203 795Z" /> -<glyph unicode="&#xa0;" horiz-adv-x="505" /> -<glyph unicode="&#xa1;" horiz-adv-x="571" d="M171 639H406L263 -369H-37L171 639ZM499 953Q501 884 455 839T344 794Q281 792 234 834T184 943Q182 1008 226 1054T339 1102Q403 1104 450 1063T499 953Z" /> -<glyph unicode="&#xa2;" horiz-adv-x="1153" d="M518 212Q596 210 649 254T717 373L983 375Q972 224 866 121T592 -11L543 -245H347L397 -9Q233 29 154 173T96 523Q121 769 246 915T572 1094L619 1318H815L768 1090Q901 1058 975 951T1048 678H784L783 712Q770 -863 636 869Q535 874 469 795T381 552Q369 442 372 391Q377 215 518 212Z" /> -<glyph unicode="&#xa3;" horiz-adv-x="1190" d="M544 576L527 429Q511 320 426 237L1066 241L1023 0H-6L37 240L112 238Q160 257 187 297T228 421L249 576H91L132 812H282L309 1033Q335 1241 471 1360T807 1475Q998 1471 1103 1359T1205 1057L925 1058Q930 1232 -789 1235Q719 1237 669 1184T603 1040L576 812H876L835 576H544Z" /> -<glyph unicode="&#xa4;" horiz-adv-x="1385" d="M972 105Q790 -24 603 -20Q403 -16 272 106L119 -26L-3 132L151 257Q94 442 114 602Q140 817 285 977L170 1134L318 1264L427 1121Q604 1237 781 1233Q966 1231 1102 1117L1272 1265L1395 1106L1226 967Q1288 781 -1268 615Q1244 412 1111 255L1222 104L1073 -27L972 105ZM295 599Q280 489 314 390T424 231T605 168Q719 164 824 224T999 390T1088 617Q1103 727 1069 826T959 983T779 1045Q664 1049 558 989T382 824T295 599Z" /> -<glyph unicode="&#xa5;" horiz-adv-x="1075" d="M578 894L892 1456H1212L773 744L981 741L948 567H670L650 452H930L899 278H620L571 0H278L327 278H29L60 452H356L377 567H80L110 742H354L165 1456H458L578 894Z" /> -<glyph unicode="&#xa6;" horiz-adv-x="511" d="M-28 -270L111 525H365L227 -270H-28ZM394 698H140L272 1456H526L394 698Z" /> -<glyph unicode="&#xa7;" horiz-adv-x="1258" d="M1126 489Q1119 387 1064 319T921 205Q1016 94 1005 -70Q997 -187 930 -273T738 -407T458 -452Q228 -450 100 -340T-24 -34H257Q253 -125 308 -171T468 -217Q577 -217 643 -179T723 -73Q743 25 587 82L490 113Q262 -183 168 280T83 526Q93 703 288 812Q192 925 202 1087Q214 1253 345 1356T686 1474L753 1476Q971 1472 1092 1360T1210 1048H930Q933 1139 884 1189T743 1242Q640 1245 571 1204T486 1090Q464 973 639 925T906 830T1050 725Q1135 629 1126 489ZM479 705Q389 650 -372 555Q348 434 516 379L595 354L725 311Q820 367 840 460Q861 570 700 630L479 705Z" /> -<glyph unicode="&#xa8;" horiz-adv-x="937" d="M211 1362Q209 1414 247 1452T342 1493T440 1458T481 1368Q483 1315 445 1278T349 1238Q296 1236 255 1271T211 1362ZM684 1362Q682 1414 720 1452T815 1493Q871 1495 911 1459T954 1368Q954 1313 917 1276T823 1237Q768 -1235 726 1271T684 1362Z" /> -<glyph unicode="&#xa9;" horiz-adv-x="1568" d="M1089 597Q1079 447 988 363T744 282Q596 286 514 395T444 669L455 779Q474 963 577 1070T836 1176Q981 1172 1061 1089T1139 859L987 861Q1000 1038 841 1042Q748 1044 686 973T609 777T594 632T595 584Q598 511 -635 466T737 417Q906 410 937 596L1089 597ZM235 722Q213 563 264 420T429 191T692 104Q853 100 998 182T1245 413T1371 736Q1393 895 1342 1037T1178 1263T914 1351Q752 1355 603 1270T355 1036T235 722ZM114 722Q131 874 200 1014T380 1262T625 1424T902 1476Q1085 -1472 1227 1374T1441 1102T1493 735Q1472 546 1373 379T1118 107Q924 -24 705 -20Q520 -16 379 83T165 357T114 722Z" /> -<glyph unicode="&#xaa;" horiz-adv-x="892" d="M619 702L616 774Q527 691 415 691Q310 691 249 751T187 911Q189 1026 281 1088T542 1151L648 1149L660 1204L664 1250Q661 1325 583 1328Q463 1332 436 1229L263 1242Q270 1352 357 1415T577 1477Q698 1475 770 -1400T832 1200L779 853L775 794Q774 750 783 702H619ZM448 833Q517 833 609 896L637 1033H557Q473 1030 422 999T362 915Q355 877 377 855T448 833Z" /> -<glyph unicode="&#xab;" horiz-adv-x="1002" d="M534 508L696 126L529 125L316 513L317 534L647 924H850L534 508ZM651 508L813 126L646 125L433 513L434 534L764 924H967L651 508Z" /> -<glyph unicode="&#xac;" horiz-adv-x="1105" d="M894 374H698L744 634H127L157 805H969L894 374Z" /> -<glyph unicode="&#xad;" horiz-adv-x="780" d="M638 507H90L130 740H679L638 507Z" /> -<glyph unicode="&#xae;" horiz-adv-x="1568" d="M114 722Q131 874 200 1014T380 1262T625 1424T902 1476Q1085 1472 1227 1374T1441 1102T1493 735Q1472 546 1373 379T1118 107Q924 -24 705 -20Q520 -16 379 83T165 357T114 722ZM235 722Q213 562 265 418T429 -191T692 104Q849 100 996 182T1245 412T1371 736Q1393 895 1342 1037T1178 1263T914 1351Q752 1355 603 1270T355 1036T235 722ZM653 653L600 316H452L585 1166L841 1165Q983 1160 1059 1092T1131 910Q1128 852 1095 807T994 723Q1062 674 1068 574Q1069 545 1063 -485T1058 396L1062 333L1061 314L913 315Q907 352 909 388Q910 431 921 516Q928 579 907 613T820 651L653 653ZM674 787L790 786Q872 789 924 821T987 909Q998 967 970 998T853 1032L712 1033L674 787Z" /> -<glyph unicode="&#xaf;" horiz-adv-x="1005" d="M940 1287H269L296 1454H967L940 1287Z" /> -<glyph unicode="&#xb0;" horiz-adv-x="781" d="M228 1191Q230 1308 314 1393T510 1477Q614 1475 683 1395T751 1209Q749 1093 667 1009T473 927Q368 929 297 1006T228 1191ZM371 1193Q365 1148 391 1112T465 1076Q516 1076 558 1113T609 1207Q615 1256 590 1292T518 -1329Q467 1329 424 1289T371 1193Z" /> -<glyph unicode="&#xb1;" horiz-adv-x="1077" d="M711 942H1030L992 701H674L617 337H369L426 701H101L139 942H464L518 1285H765L711 942ZM855 1H15L52 236H892L855 1Z" /> -<glyph unicode="&#xb2;" horiz-adv-x="750" d="M684 667H81L107 817L442 1087Q537 1166 549 1228Q557 1264 539 1285T485 1306Q388 1306 364 1194L160 1192Q168 1318 256 1394T473 1469Q604 1467 680 1403T755 1227Q750 1089 586 972L508 917L378 833L714 831L684 667Z" /> -<glyph unicode="&#xb3;" horiz-adv-x="750" d="M350 1137H431Q485 1139 521 1163T567 1232Q572 1266 549 1284T490 1303Q410 1303 382 1243L174 1242Q181 1348 263 1409T476 1468Q612 1465 690 1407T766 1249Q763 1131 608 1066Q666 1046 695 1001T723 895Q721 -784 626 719T386 656Q257 658 178 725T96 905L291 904Q298 822 393 822Q445 822 482 847T528 915Q544 995 434 1000H340L350 1137Z" /> -<glyph unicode="&#xb4;" horiz-adv-x="669" d="M426 1536H753L435 1226H186L426 1536Z" /> -<glyph unicode="&#xb5;" horiz-adv-x="1233" d="M500 1082L397 460L391 377Q384 217 516 214Q649 210 737 318L872 1082H1154L966 0H718L726 69Q620 -24 496 -22Q403 -22 327 26L240 -416H-42L218 1082H500Z" /> -<glyph unicode="&#xb6;" horiz-adv-x="983" d="M535 0L625 520L573 521Q362 524 247 651T149 980Q168 1194 317 1325T689 1457L1002 1456L749 0H535Z" /> -<glyph unicode="&#xb7;" horiz-adv-x="608" d="M154 692Q152 759 197 805T310 853Q375 855 422 812T472 702Q474 637 429 590T314 542Q250 540 203 581T154 692Z" /> -<glyph unicode="&#xb8;" horiz-adv-x="542" d="M222 9L202 -55Q264 -68 295 -111T327 -217Q327 -332 231 -396T-45 -465L-37 -295Q74 -290 91 -207Q103 -146 5 -139L-30 -136L13 6L222 9Z" /> -<glyph unicode="&#xb9;" horiz-adv-x="750" d="M524 667H324L419 1210L228 1170L258 1338L627 1453L652 1454L524 667Z" /> -<glyph unicode="&#xba;" horiz-adv-x="918" d="M581 1477Q729 1473 810 1372T881 1121L875 1055Q859 884 755 785T501 689Q357 693 273 792T200 1044L205 1107Q218 1274 322 1377T581 1477ZM372 1041Q369 1005 372 969Q377 908 410 872T500 834Q576 831 631 887T701 -1044L712 1145L711 1194Q696 1326 583 1329Q506 1332 451 1277T381 1121L372 1041Z" /> -<glyph unicode="&#xbb;" horiz-adv-x="1002" d="M311 923L524 536L523 514L193 124H-10L305 539L144 922L311 923ZM692 923L905 536L904 514L574 124H371L686 539L525 922L692 923Z" /> -<glyph unicode="&#xbc;" horiz-adv-x="1436" d="M490 664H290L385 1207L194 1167L224 1335L593 1450L618 1451L490 664ZM374 119L235 204L1113 1328L1250 1245L374 119ZM1208 324L1304 325L1273 159H1188L1159 0H959L987 159H652L666 309L1085 788L1288 790L1208 -324ZM866 328L1018 325L1062 541L1044 516L866 328Z" /> -<glyph unicode="&#xbd;" horiz-adv-x="1522" d="M333 119L194 204L1072 1328L1209 1245L333 119ZM474 670H274L369 1213L178 1173L208 1341L577 1456L602 1457L474 670ZM1329 0H726L752 150L1087 420Q1182 499 1194 561Q1202 597 1184 618T1130 639Q1033 639 1009 -527L805 525Q813 651 901 727T1118 802Q1249 800 1325 736T1400 560Q1395 422 1231 305L1153 250L1023 166L1359 164L1329 0Z" /> -<glyph unicode="&#xbe;" horiz-adv-x="1615" d="M530 119L391 204L1269 1328L1406 1245L530 119ZM1362 324L1458 325L1427 159H1342L1313 0H1113L1141 159H806L820 309L1239 788L1442 790L1362 324ZM1020 328L1172 325L1216 541L1198 516L1020 328ZM395 1137H476Q530 -1139 566 1163T612 1232Q617 1266 594 1284T535 1303Q455 1303 427 1243L219 1242Q226 1348 308 1409T521 1468Q657 1465 735 1407T811 1249Q808 1131 653 1066Q711 1046 740 1001T768 895Q766 784 671 719T431 656Q302 658 223 725T141 905L336 904Q343 822 438 -822Q490 822 527 847T573 915Q589 995 479 1000H385L395 1137Z" /> -<glyph unicode="&#xbf;" horiz-adv-x="998" d="M648 644Q640 522 598 433T470 271L402 214Q275 108 258 -2Q249 -66 275 -108T370 -152Q441 -154 490 -110T559 21L841 23Q828 -168 696 -278T360 -385Q174 -383 66 -281T-31 -2Q-20 159 148 309L293 430Q379 509 -402 643L648 644ZM747 954Q749 885 703 840T592 795Q528 793 481 834T432 944Q430 1013 476 1058T587 1103Q651 1105 698 1064T747 954Z" /> -<glyph unicode="&#xc0;" horiz-adv-x="1347" d="M877 300H369L219 0H-104L674 1456H945L1222 0H923L877 300ZM489 543H840L758 1085L489 543ZM966 1536L755 1537L532 1844L823 1846L966 1536Z" /> -<glyph unicode="&#xc1;" horiz-adv-x="1347" d="M877 300H369L219 0H-104L674 1456H945L1222 0H923L877 300ZM489 543H840L758 1085L489 543ZM930 1846H1257L939 1536H690L930 1846Z" /> -<glyph unicode="&#xc2;" horiz-adv-x="1347" d="M877 300H369L219 0H-104L674 1456H945L1222 0H923L877 300ZM489 543H840L758 1085L489 543ZM1214 1570V1549L998 1554L875 1698L700 1555L471 1551V1574L792 1846L953 1847L1214 1570Z" /> -<glyph unicode="&#xc3;" horiz-adv-x="1347" d="M877 300H369L219 0H-104L674 1456H945L1222 0H923L877 300ZM489 543H840L758 1085L489 543ZM1236 1834Q1229 1716 1166 1640T1005 1563Q977 1563 952 1571T875 1608T799 1646T744 1654Q668 1651 643 1556L477 1566Q484 -1682 550 1760T713 1836Q739 1836 762 1829T841 1791T921 1753T974 1746Q1051 1749 1075 1844L1236 1834Z" /> -<glyph unicode="&#xc4;" horiz-adv-x="1347" d="M877 300H369L219 0H-104L674 1456H945L1222 0H923L877 300ZM489 543H840L758 1085L489 543ZM486 1672Q484 1724 522 1762T617 1803T715 1768T756 1678Q758 1625 720 1588T624 1548Q571 1546 530 1581T486 1672ZM959 -1672Q957 1724 995 1762T1090 1803Q1146 1805 1186 1769T1229 1678Q1229 1623 1192 1586T1098 1547Q1043 1545 1001 1581T959 1672Z" /> -<glyph unicode="&#xc5;" horiz-adv-x="1347" d="M877 300H369L219 0H-104L674 1456H945L1222 0H923L877 300ZM489 543H840L758 1085L489 543ZM651 1723Q651 1813 717 1874T874 1936Q961 1936 1022 1878T1084 1737Q1086 1651 1021 1590T861 1528Q775 1528 714 1584T651 -1723ZM764 1723Q757 1683 779 1653T844 1623Q891 1623 927 1655T972 1737Q978 1780 955 1809T892 1839Q845 1839 808 1805T764 1723Z" /> -<glyph unicode="&#xc6;" horiz-adv-x="1877" d="M1706 0H835L879 333H456L236 0H-111L904 1456H1900L1858 1220H1278L1231 865H1719L1677 629H1200L1147 235H1747L1706 0ZM615 582L913 580L986 1132L615 582Z" /> -<glyph unicode="&#xc7;" horiz-adv-x="1310" d="M1208 486Q1191 335 1105 219T881 40T583 -20Q439 -17 332 46T164 230T94 508Q87 631 119 814T235 1139T434 1364Q596 1480 804 1476Q1030 1472 1162 1337T1308 960L1016 961Q1016 1099 961 1163T790 1231Q640 1236 -544 1124T414 797Q382 588 386 484Q391 352 445 290T596 224Q730 219 810 287T917 484L1208 486ZM660 8L640 -56Q702 -69 733 -112T765 -218Q765 -333 669 -397T393 -466L401 -296Q512 -291 529 -208Q541 -147 443 -140L408 -137L451 5L660 8Z" /> -<glyph unicode="&#xc8;" horiz-adv-x="1127" d="M982 631H424L356 241H1012L970 0H21L274 1456H1221L1178 1213H525L464 866H1024L982 631ZM911 1539L700 1540L477 1847L768 1849L911 1539Z" /> -<glyph unicode="&#xc9;" horiz-adv-x="1127" d="M982 631H424L356 241H1012L970 0H21L274 1456H1221L1178 1213H525L464 866H1024L982 631ZM875 1849H1202L884 1539H635L875 1849Z" /> -<glyph unicode="&#xca;" horiz-adv-x="1127" d="M982 631H424L356 241H1012L970 0H21L274 1456H1221L1178 1213H525L464 866H1024L982 631ZM1159 1573V1552L943 1557L820 1701L645 1558L416 1554V1577L737 1849L898 1850L1159 1573Z" /> -<glyph unicode="&#xcb;" horiz-adv-x="1127" d="M982 631H424L356 241H1012L970 0H21L274 1456H1221L1178 1213H525L464 866H1024L982 631ZM431 1675Q429 1727 467 1765T562 1806T660 1771T701 1681Q703 1628 665 1591T569 1551Q516 1549 475 1584T431 1675ZM904 -1675Q902 1727 940 1765T1035 1806Q1091 1808 1131 1772T1174 1681Q1174 1626 1137 1589T1043 1550Q988 1548 946 1584T904 1675Z" /> -<glyph unicode="&#xcc;" horiz-adv-x="589" d="M333 0H40L292 1456H585L333 0ZM585 1539L374 1540L151 1847L442 1849L585 1539Z" /> -<glyph unicode="&#xcd;" horiz-adv-x="589" d="M333 0H40L292 1456H585L333 0ZM548 1849H875L557 1539H308L548 1849Z" /> -<glyph unicode="&#xce;" horiz-adv-x="589" d="M333 0H40L292 1456H585L333 0ZM833 1573V1552L617 1557L494 1701L319 1558L90 1554V1577L411 1849L572 1850L833 1573Z" /> -<glyph unicode="&#xcf;" horiz-adv-x="589" d="M333 0H40L292 1456H585L333 0ZM105 1675Q103 1727 141 1765T236 1806T334 1771T375 1681Q377 1628 339 1591T243 1551Q190 1549 149 1584T105 1675ZM578 1675Q576 1727 614 1765T709 1806Q765 1808 805 1772T848 -1681Q848 1626 811 1589T717 1550Q662 1548 620 1584T578 1675Z" /> -<glyph unicode="&#xd0;" horiz-adv-x="1331" d="M51 0L162 642H-13L20 825H194L304 1456L720 1455Q867 1453 985 1389T1177 1206T1265 938Q1273 851 1263 760L1256 707Q1212 387 1005 194T501 0H51ZM667 642H455L386 241L508 240Q710 240 832 388T973 835L975 -867Q978 1032 912 1120T715 1212L555 1213L487 825H700L667 642Z" /> -<glyph unicode="&#xd1;" horiz-adv-x="1413" d="M1172 0H888L483 971L314 0H21L274 1456H557L963 483L1132 1456H1424L1172 0ZM1269 1834Q1262 1716 1199 1640T1038 1563Q1010 1563 985 1571T908 1608T832 1646T777 1654Q701 1651 676 1556L510 1566Q517 1682 -583 1760T746 1836Q772 1836 795 1829T874 1791T954 1753T1007 1746Q1084 1749 1108 1844L1269 1834Z" /> -<glyph unicode="&#xd2;" horiz-adv-x="1382" d="M606 -20Q461 -17 351 48T176 237T101 521Q90 685 136 871T284 1198T523 1409T821 1476Q968 1473 1078 1407T1251 1216T1323 933Q1333 757 1285 571T1136 249T900 45T606 -20ZM1021 768L1029 863Q1039 1041 982 -1133T807 1229Q624 1235 517 1067T395 597Q385 420 442 325T619 225Q776 218 879 347T1014 714L1021 768ZM980 1536L769 1537L546 1844L837 1846L980 1536Z" /> -<glyph unicode="&#xd3;" horiz-adv-x="1382" d="M606 -20Q461 -17 351 48T176 237T101 521Q90 685 136 871T284 1198T523 1409T821 1476Q968 1473 1078 1407T1251 1216T1323 933Q1333 757 1285 571T1136 249T900 45T606 -20ZM1021 768L1029 863Q1039 1041 982 -1133T807 1229Q624 1235 517 1067T395 597Q385 420 442 325T619 225Q776 218 879 347T1014 714L1021 768ZM944 1846H1271L953 1536H704L944 1846Z" /> -<glyph unicode="&#xd4;" horiz-adv-x="1382" d="M606 -20Q461 -17 351 48T176 237T101 521Q90 685 136 871T284 1198T523 1409T821 1476Q968 1473 1078 1407T1251 1216T1323 933Q1333 757 1285 571T1136 249T900 45T606 -20ZM1021 768L1029 863Q1039 1041 982 -1133T807 1229Q624 1235 517 1067T395 597Q385 420 442 325T619 225Q776 218 879 347T1014 714L1021 768ZM1228 1570V1549L1012 1554L889 1698L714 1555L485 1551V1574L806 1846L967 1847L1228 1570Z" /> -<glyph unicode="&#xd5;" horiz-adv-x="1382" d="M606 -20Q461 -17 351 48T176 237T101 521Q90 685 136 871T284 1198T523 1409T821 1476Q968 1473 1078 1407T1251 1216T1323 933Q1333 757 1285 571T1136 249T900 45T606 -20ZM1021 768L1029 863Q1039 1041 982 -1133T807 1229Q624 1235 517 1067T395 597Q385 420 442 325T619 225Q776 218 879 347T1014 714L1021 768ZM1250 1834Q1243 1716 1180 1640T1019 1563Q991 1563 966 1571T889 1608T813 1646T758 1654Q682 1651 657 1556L491 1566Q498 1682 564 1760T727 1836Q753 -1836 776 1829T855 1791T935 1753T988 1746Q1065 1749 1089 1844L1250 1834Z" /> -<glyph unicode="&#xd6;" horiz-adv-x="1382" d="M606 -20Q461 -17 351 48T176 237T101 521Q90 685 136 871T284 1198T523 1409T821 1476Q968 1473 1078 1407T1251 1216T1323 933Q1333 757 1285 571T1136 249T900 45T606 -20ZM1021 768L1029 863Q1039 1041 982 -1133T807 1229Q624 1235 517 1067T395 597Q385 420 442 325T619 225Q776 218 879 347T1014 714L1021 768ZM500 1672Q498 1724 536 1762T631 1803T729 1768T770 1678Q772 1625 734 1588T638 1548Q585 1546 544 1581T500 1672ZM973 1672Q971 1724 1009 1762T1104 -1803Q1160 1805 1200 1769T1243 1678Q1243 1623 1206 1586T1112 1547Q1057 1545 1015 1581T973 1672Z" /> -<glyph unicode="&#xd7;" horiz-adv-x="1065" d="M25 386L378 699L134 1012L314 1167L556 857L904 1168L1052 986L699 672L943 360L764 204L521 514L173 205L25 386Z" /> -<glyph unicode="&#xd8;" horiz-adv-x="1379" d="M606 -21Q451 -19 327 51L215 -95L12 -94L206 150Q68 382 107 695L115 753Q145 967 244 1135T493 1391T824 1477Q993 1473 1118 1393L1217 1518L1419 1517L1236 1288Q1356 1056 1320 759L1315 719Q1273 386 1081 -181T606 -21ZM387 552Q382 480 390 408L965 1172Q914 1226 813 1231Q655 1236 551 1109T411 749Q392 621 387 552ZM1044 1020L479 268Q530 228 618 223Q765 218 867 331T1010 660T1044 1020Z" /> -<glyph unicode="&#xd9;" horiz-adv-x="1318" d="M1349 1456L1185 496Q1151 255 985 115T573 -21Q419 -18 306 46T138 228T101 495L264 1456H557L394 494Q387 438 393 389Q413 227 586 221Q710 217 789 289T891 495L1055 1456H1349ZM945 1536L734 1537L511 1844L802 -1846L945 1536Z" /> -<glyph unicode="&#xda;" horiz-adv-x="1318" d="M1349 1456L1185 496Q1151 255 985 115T573 -21Q419 -18 306 46T138 228T101 495L264 1456H557L394 494Q387 438 393 389Q413 227 586 221Q710 217 789 289T891 495L1055 1456H1349ZM909 1846H1236L918 1536H669L909 1846Z" /> -<glyph unicode="&#xdb;" horiz-adv-x="1318" d="M1349 1456L1185 496Q1151 255 985 115T573 -21Q419 -18 306 46T138 228T101 495L264 1456H557L394 494Q387 438 393 389Q413 227 586 221Q710 217 789 289T891 495L1055 1456H1349ZM1193 1570V1549L977 1554L854 -1698L679 1555L450 1551V1574L771 1846L932 1847L1193 1570Z" /> -<glyph unicode="&#xdc;" horiz-adv-x="1318" d="M1349 1456L1185 496Q1151 255 985 115T573 -21Q419 -18 306 46T138 228T101 495L264 1456H557L394 494Q387 438 393 389Q413 227 586 221Q710 217 789 289T891 495L1055 1456H1349ZM465 1672Q463 1724 501 1762T596 -1803T694 1768T735 1678Q737 1625 699 1588T603 1548Q550 1546 509 1581T465 1672ZM938 1672Q936 1724 974 1762T1069 1803Q1125 1805 1165 1769T1208 1678Q1208 1623 1171 1586T1077 1547Q1022 1545 980 1581T938 1672Z" /> -<glyph unicode="&#xdd;" horiz-adv-x="1238" d="M640 802L1047 1456H1383L747 512L659 0H361L456 545L154 1455L463 1456L640 802ZM875 1846H1202L884 1536H635L875 1846Z" /> -<glyph unicode="&#xde;" horiz-adv-x="1219" d="M559 1456L512 1189L689 1188Q923 1187 1054 1066T1170 746Q1159 605 1082 501T876 342T590 286L357 287L306 0H24L277 1456H559ZM473 956L397 520L595 519Q708 519 789 578T888 744Q902 839 852 895T705 955L473 956Z" /> -<glyph unicode="&#xdf;" horiz-adv-x="1263" d="M308 0H26L214 1101Q243 1319 382 1442T734 1559Q908 1555 1009 1455T1099 1197Q1096 1151 1080 1111T1019 995T961 889T941 821Q933 775 953 727T1034 604T1120 473T1145 363Q1136 184 1006 81T670 -21Q504 -19 -391 38L467 265Q556 210 672 212Q744 212 799 250T867 357Q875 405 854 453T766 576T674 712Q654 758 657 808Q660 853 676 892T734 1002T792 1109T812 1184Q820 1246 790 1287T696 1331Q614 1334 563 1275T495 1098L308 0Z" /> -<glyph unicode="&#xe0;" horiz-adv-x="1075" d="M629 0Q616 41 618 98Q496 -24 342 -20Q200 -18 107 72T19 296Q26 473 167 567T547 662L679 660L693 725Q699 758 696 788Q691 835 661 861T580 889Q514 891 468 857T409 757L126 756Q133 911 268 1007T603 1102Q787 -1098 891 993T978 721L895 203L890 139Q888 68 907 19L906 0H629ZM412 199Q534 195 625 305L660 492L562 493Q406 489 337 398Q312 365 306 317Q298 263 328 232T412 199ZM776 1226L565 1227L342 1534L633 1536L776 1226Z" /> -<glyph unicode="&#xe1;" horiz-adv-x="1075" d="M629 0Q616 41 618 98Q496 -24 342 -20Q200 -18 107 72T19 296Q26 473 167 567T547 662L679 660L693 725Q699 758 696 788Q691 835 661 861T580 889Q514 891 468 857T409 757L126 756Q133 911 268 1007T603 1102Q787 -1098 891 993T978 721L895 203L890 139Q888 68 907 19L906 0H629ZM412 199Q534 195 625 305L660 492L562 493Q406 489 337 398Q312 365 306 317Q298 263 328 232T412 199ZM740 1536H1067L749 1226H500L740 1536Z" /> -<glyph unicode="&#xe2;" horiz-adv-x="1075" d="M629 0Q616 41 618 98Q496 -24 342 -20Q200 -18 107 72T19 296Q26 473 167 567T547 662L679 660L693 725Q699 758 696 788Q691 835 661 861T580 889Q514 891 468 857T409 757L126 756Q133 911 268 1007T603 1102Q787 -1098 891 993T978 721L895 203L890 139Q888 68 907 19L906 0H629ZM412 199Q534 195 625 305L660 492L562 493Q406 489 337 398Q312 365 306 317Q298 263 328 232T412 199ZM1024 1260V1239L808 1244L685 1388L510 1245L281 1241V1264L602 1536L763 1537L1024 1260Z" -/> -<glyph unicode="&#xe3;" horiz-adv-x="1075" d="M629 0Q616 41 618 98Q496 -24 342 -20Q200 -18 107 72T19 296Q26 473 167 567T547 662L679 660L693 725Q699 758 696 788Q691 835 661 861T580 889Q514 891 468 857T409 757L126 756Q133 911 268 1007T603 1102Q787 -1098 891 993T978 721L895 203L890 139Q888 68 907 19L906 0H629ZM412 199Q534 195 625 305L660 492L562 493Q406 489 337 398Q312 365 306 317Q298 263 328 232T412 199ZM1046 1781Q1039 1663 976 1587T815 1510Q787 1510 762 1518T685 1555T609 1593T554 1601Q478 -1598 453 1503L287 1513Q294 1629 360 1707T523 1783Q549 1783 572 1776T651 1738T731 1700T784 1693Q861 1696 885 1791L1046 1781Z" /> -<glyph unicode="&#xe4;" horiz-adv-x="1075" d="M629 0Q616 41 618 98Q496 -24 342 -20Q200 -18 107 72T19 296Q26 473 167 567T547 662L679 660L693 725Q699 758 696 788Q691 835 661 861T580 889Q514 891 468 857T409 757L126 756Q133 911 268 1007T603 1102Q787 -1098 891 993T978 721L895 203L890 139Q888 68 907 19L906 0H629ZM412 199Q534 195 625 305L660 492L562 493Q406 489 337 398Q312 365 306 317Q298 263 328 232T412 199ZM296 1362Q294 1414 332 1452T427 1493T525 1458T566 1368Q568 1315 530 1278T434 1238Q381 -1236 340 1271T296 1362ZM769 1362Q767 1414 805 1452T900 1493Q956 1495 996 1459T1039 1368Q1039 1313 1002 1276T908 1237Q853 1235 811 1271T769 1362Z" /> -<glyph unicode="&#xe5;" horiz-adv-x="1075" d="M629 0Q616 41 618 98Q496 -24 342 -20Q200 -18 107 72T19 296Q26 473 167 567T547 662L679 660L693 725Q699 758 696 788Q691 835 661 861T580 889Q514 891 468 857T409 757L126 756Q133 911 268 1007T603 1102Q787 -1098 891 993T978 721L895 203L890 139Q888 68 907 19L906 0H629ZM412 199Q534 195 625 305L660 492L562 493Q406 489 337 398Q312 365 306 317Q298 263 328 232T412 199ZM461 1413Q461 1503 527 1564T684 1626Q771 1626 832 1568T894 1427Q896 1341 831 1280T671 -1218Q585 1218 524 1274T461 1413ZM574 1413Q567 1373 589 1343T654 1313Q701 1313 737 1345T782 1427Q788 1470 765 1499T702 1529Q655 1529 618 1495T574 1413Z" /> -<glyph unicode="&#xe6;" horiz-adv-x="1687" d="M1123 -20Q880 -15 771 126Q601 -24 367 -20Q261 -19 178 22T52 137T15 311Q22 475 159 562T537 650L704 648L717 708Q722 741 719 770Q705 866 604 869Q534 871 481 839T415 745L134 763Q142 923 282 1015T620 -1103Q824 1098 922 993Q1073 1105 1253 1101Q1445 1097 1548 962T1628 612L1603 450H961Q951 342 1003 279T1159 214Q1240 212 1313 234T1458 290L1519 97Q1384 -20 1123 -20ZM426 191Q522 191 642 271L680 461L541 462Q442 459 376 417T299 307Q289 254 324 223T426 -191ZM1237 869Q1066 875 981 643H1350L1357 674Q1363 710 1361 745Q1354 863 1237 869Z" /> -<glyph unicode="&#xe7;" horiz-adv-x="1046" d="M477 212Q555 210 607 254T675 373L940 374Q933 260 869 169T697 27T470 -21Q273 -18 158 115T47 469L50 524L51 535Q78 799 229 953T602 1102Q785 1098 892 983T998 678H735Q735 765 697 815T583 869Q381 875 338 -574Q323 465 327 390Q337 215 477 212ZM544 8L524 -56Q586 -69 617 -112T649 -218Q649 -333 553 -397T277 -466L285 -296Q396 -291 413 -208Q425 -147 327 -140L292 -137L335 5L544 8Z" /> -<glyph unicode="&#xe8;" horiz-adv-x="1084" d="M517 -20Q375 -19 266 49T102 237T60 501L63 541Q78 699 155 831T353 1034T621 1102Q830 1098 937 949T1019 570L1003 447H340Q336 342 391 279T541 214Q695 210 811 333L940 173Q879 81 764 30T517 -20ZM607 869Q529 -871 469 820T360 643H748L754 669Q760 709 755 745Q745 803 706 835T607 869ZM757 1226L546 1227L323 1534L614 1536L757 1226Z" /> -<glyph unicode="&#xe9;" horiz-adv-x="1084" d="M517 -20Q375 -19 266 49T102 237T60 501L63 541Q78 699 155 831T353 1034T621 1102Q830 1098 937 949T1019 570L1003 447H340Q336 342 391 279T541 214Q695 210 811 333L940 173Q879 81 764 30T517 -20ZM607 869Q529 -871 469 820T360 643H748L754 669Q760 709 755 745Q745 803 706 835T607 869ZM721 1536H1048L730 1226H481L721 1536Z" /> -<glyph unicode="&#xea;" horiz-adv-x="1084" d="M517 -20Q375 -19 266 49T102 237T60 501L63 541Q78 699 155 831T353 1034T621 1102Q830 1098 937 949T1019 570L1003 447H340Q336 342 391 279T541 214Q695 210 811 333L940 173Q879 81 764 30T517 -20ZM607 869Q529 -871 469 820T360 643H748L754 669Q760 709 755 745Q745 803 706 835T607 869ZM1005 1260V1239L789 1244L666 1388L491 1245L262 1241V1264L583 1536L744 1537L1005 1260Z" /> -<glyph unicode="&#xeb;" horiz-adv-x="1084" d="M517 -20Q375 -19 266 49T102 237T60 501L63 541Q78 699 155 831T353 1034T621 1102Q830 1098 937 949T1019 570L1003 447H340Q336 342 391 279T541 214Q695 210 811 333L940 173Q879 81 764 30T517 -20ZM607 869Q529 -871 469 820T360 643H748L754 669Q760 709 755 745Q745 803 706 835T607 869ZM277 1362Q275 1414 313 1452T408 1493T506 1458T547 1368Q549 1315 511 1278T415 1238Q362 1236 321 1271T277 1362ZM750 1362Q748 1414 786 1452T881 1493Q937 1495 977 1459T1020 -1368Q1020 1313 983 1276T889 1237Q834 1235 792 1271T750 1362Z" /> -<glyph unicode="&#xec;" horiz-adv-x="554" d="M307 0H25L213 1082H495L307 0ZM767 1467L556 1468L333 1775L624 1777L767 1467Z" /> -<glyph unicode="&#xed;" horiz-adv-x="554" d="M307 0H25L213 1082H495L307 0ZM474 1777H801L483 1467H234L474 1777Z" /> -<glyph unicode="&#xee;" horiz-adv-x="554" d="M307 0H25L213 1082H495L307 0ZM759 1245V1224L543 1229L420 1373L245 1230L16 1226V1249L337 1521L498 1522L759 1245Z" /> -<glyph unicode="&#xef;" horiz-adv-x="554" d="M307 0H25L213 1082H495L307 0ZM31 1347Q29 1399 67 1437T162 1478T260 1443T301 1353Q303 1300 265 1263T169 1223Q116 1221 75 1256T31 1347ZM504 1347Q502 1399 540 1437T635 1478Q691 1480 731 1444T774 1353Q774 -1298 737 1261T643 1222Q588 1220 546 1256T504 1347Z" /> -<glyph unicode="&#xf0;" horiz-adv-x="1153" d="M948 1302Q1035 1147 1069 989T1082 653L1076 601Q1042 320 879 147T488 -21Q359 -18 258 44T104 218T64 460Q77 608 144 726T319 906T565 967Q694 963 802 889Q796 1029 710 1154L499 1031L437 1159L598 1248Q517 -1315 363 1357L471 1579Q694 1526 842 1399L1034 1511L1094 1382L948 1302ZM809 665Q782 706 732 727T621 748Q509 750 435 670T346 460Q334 351 377 283T506 211Q607 208 679 289T783 526L806 652L809 665Z" /> -<glyph unicode="&#xf1;" horiz-adv-x="1123" d="M449 1083L425 955Q555 1106 740 1102Q893 1099 966 990T1019 688L905 0H623L739 691Q744 730 741 762Q728 864 613 867Q502 871 414 764L279 0H-3L185 1082L449 1083ZM1069 1781Q1062 1663 999 1587T838 1510Q810 -1510 785 1518T708 1555T632 1593T577 1601Q501 1598 476 1503L310 1513Q317 1629 383 1707T546 1783Q572 1783 595 1776T674 1738T754 1700T807 1693Q884 1696 908 1791L1069 1781Z" /> -<glyph unicode="&#xf2;" horiz-adv-x="1133" d="M622 1102Q765 1100 868 1029T1020 832T1055 553Q1032 295 876 136T489 -20Q348 -18 245 52T93 248T58 524Q84 792 240 950T622 1102ZM337 421Q339 325 382 270T503 212Q633 208 707 331T776 656Q772 752 730 809T608 -869Q482 873 407 751T337 421ZM788 1226L577 1227L354 1534L645 1536L788 1226Z" /> -<glyph unicode="&#xf3;" horiz-adv-x="1133" d="M622 1102Q765 1100 868 1029T1020 832T1055 553Q1032 295 876 136T489 -20Q348 -18 245 52T93 248T58 524Q84 792 240 950T622 1102ZM337 421Q339 325 382 270T503 212Q633 208 707 331T776 656Q772 752 730 809T608 -869Q482 873 407 751T337 421ZM752 1536H1079L761 1226H512L752 1536Z" /> -<glyph unicode="&#xf4;" horiz-adv-x="1133" d="M622 1102Q765 1100 868 1029T1020 832T1055 553Q1032 295 876 136T489 -20Q348 -18 245 52T93 248T58 524Q84 792 240 950T622 1102ZM337 421Q339 325 382 270T503 212Q633 208 707 331T776 656Q772 752 730 809T608 -869Q482 873 407 751T337 421ZM1036 1260V1239L820 1244L697 1388L522 1245L293 1241V1264L614 1536L775 1537L1036 1260Z" /> -<glyph unicode="&#xf5;" horiz-adv-x="1133" d="M622 1102Q765 1100 868 1029T1020 832T1055 553Q1032 295 876 136T489 -20Q348 -18 245 52T93 248T58 524Q84 792 240 950T622 1102ZM337 421Q339 325 382 270T503 212Q633 208 707 331T776 656Q772 752 730 809T608 -869Q482 873 407 751T337 421ZM1058 1781Q1051 1663 988 1587T827 1510Q799 1510 774 1518T697 1555T621 1593T566 1601Q490 1598 465 1503L299 1513Q306 1629 372 1707T535 1783Q561 1783 584 1776T663 1738T743 1700T796 1693Q873 1696 897 1791L1058 1781Z" -/> -<glyph unicode="&#xf6;" horiz-adv-x="1133" d="M622 1102Q765 1100 868 1029T1020 832T1055 553Q1032 295 876 136T489 -20Q348 -18 245 52T93 248T58 524Q84 792 240 950T622 1102ZM337 421Q339 325 382 270T503 212Q633 208 707 331T776 656Q772 752 730 809T608 -869Q482 873 407 751T337 421ZM308 1362Q306 1414 344 1452T439 1493T537 1458T578 1368Q580 1315 542 1278T446 1238Q393 1236 352 1271T308 1362ZM781 1362Q779 1414 817 1452T912 1493Q968 1495 1008 1459T1051 1368Q1051 1313 1014 1276T920 1237Q865 1235 -823 1271T781 1362Z" /> -<glyph unicode="&#xf7;" horiz-adv-x="1143" d="M1054 571H55L95 801H1095L1054 571ZM487 1084Q485 1150 530 1196T644 1242Q711 1244 757 1202T805 1094T762 983T649 938Q581 936 535 977T487 1084ZM346 272Q344 338 389 384T503 430Q570 432 616 390T664 282T621 -171T508 126Q440 124 394 165T346 272Z" /> -<glyph unicode="&#xf8;" horiz-adv-x="1131" d="M55 545Q75 707 153 837T353 1037T627 1104Q718 1103 807 1072L907 1216L1081 1215L931 1001Q1045 867 1054 673Q1056 615 1048 532Q1028 370 951 243T750 46T475 -22Q388 -21 304 7L201 -142L27 -141L177 74Q58 -205 50 402Q47 459 55 545ZM320 423Q316 371 326 320L682 860Q650 872 616 872Q489 874 412 761T320 423ZM782 651Q785 699 778 749L425 218Q455 210 484 209Q592 207 666 289T768 532Q779 608 782 651Z" /> -<glyph unicode="&#xf9;" horiz-adv-x="1122" d="M673 112Q553 -23 375 -20Q219 -18 139 92T77 382L194 1082H476L357 379Q353 346 356 317Q366 217 467 214Q598 210 684 315L819 1082H1103L915 0H652L673 112ZM796 1226L585 1227L362 1534L653 1536L796 1226Z" /> -<glyph unicode="&#xfa;" horiz-adv-x="1122" d="M673 112Q553 -23 375 -20Q219 -18 139 92T77 382L194 1082H476L357 379Q353 346 356 317Q366 217 467 214Q598 210 684 315L819 1082H1103L915 0H652L673 112ZM760 1536H1087L769 1226H520L760 1536Z" /> -<glyph unicode="&#xfb;" horiz-adv-x="1122" d="M673 112Q553 -23 375 -20Q219 -18 139 92T77 382L194 1082H476L357 379Q353 346 356 317Q366 217 467 214Q598 210 684 315L819 1082H1103L915 0H652L673 112ZM1044 1260V1239L828 1244L705 1388L530 1245L301 -1241V1264L622 1536L783 1537L1044 1260Z" /> -<glyph unicode="&#xfc;" horiz-adv-x="1122" d="M673 112Q553 -23 375 -20Q219 -18 139 92T77 382L194 1082H476L357 379Q353 346 356 317Q366 217 467 214Q598 210 684 315L819 1082H1103L915 0H652L673 112ZM316 1362Q314 1414 352 1452T447 1493T545 1458T586 -1368Q588 1315 550 1278T454 1238Q401 1236 360 1271T316 1362ZM789 1362Q787 1414 825 1452T920 1493Q976 1495 1016 1459T1059 1368Q1059 1313 1022 1276T928 1237Q873 1235 831 1271T789 1362Z" /> -<glyph unicode="&#xfd;" horiz-adv-x="1007" d="M462 412L771 1082H1085L452 -163Q384 -306 293 -373T81 -440Q34 -440 -55 -419L-34 -199L5 -201Q143 -205 207 -100L269 15L92 1082H384L462 412ZM710 1536H1037L719 1226H470L710 1536Z" /> -<glyph unicode="&#xfe;" horiz-adv-x="1137" d="M1044 538Q1023 365 955 234T786 40T562 -21Q408 -17 314 95L216 -416H-67L271 1536H555L447 987Q560 1106 709 1102Q865 1100 954 990T1050 684Q1052 622 1044 538ZM764 559L770 655Q772 752 735 809T625 868Q505 -872 423 766L341 316Q378 215 500 213Q598 210 665 287T758 517L764 559Z" /> -<glyph unicode="&#xff;" horiz-adv-x="1007" d="M462 412L771 1082H1085L452 -163Q384 -306 293 -373T81 -440Q34 -440 -55 -419L-34 -199L5 -201Q143 -205 207 -100L269 15L92 1082H384L462 412ZM266 1362Q264 1414 302 1452T397 1493T495 1458T536 1368Q538 -1315 500 1278T404 1238Q351 1236 310 1271T266 1362ZM739 1362Q737 1414 775 1452T870 1493Q926 1495 966 1459T1009 1368Q1009 1313 972 1276T878 1237Q823 1235 781 1271T739 1362Z" /> -<glyph unicode="&#x2013;" horiz-adv-x="1265" d="M1409 596H402L451 832H1459L1409 596Z" /> -<glyph unicode="&#x2014;" horiz-adv-x="1526" d="M1702 596H360L425 832H1769L1702 596Z" /> -<glyph unicode="&#x2018;" horiz-adv-x="475" d="M428 1570L562 1488Q516 1420 480 1351T428 1199L402 1048H178L198 1180Q234 1412 428 1570Z" /> -<glyph unicode="&#x2019;" horiz-adv-x="466" d="M285 1007L142 1091Q245 1239 271 1351L304 1536H529L506 1388Q472 1167 285 1007Z" /> -<glyph unicode="&#x201a;" horiz-adv-x="503" d="M57 -305L-77 -223Q19 -79 44 38L78 229H310L288 86Q252 -146 57 -305Z" /> -<glyph unicode="&#x201c;" horiz-adv-x="816" d="M436 1570L570 1488Q524 1420 488 1351T436 1199L410 1048H186L206 1180Q242 1412 436 1570ZM768 1570L902 1488Q856 1420 820 1351T768 1199L742 1048H518L538 1180Q574 1412 768 1570Z" /> -<glyph unicode="&#x201d;" horiz-adv-x="822" d="M299 1007L156 1091Q259 1239 285 1351L318 1536H543L520 1388Q486 1167 299 1007ZM635 1007L492 1091Q595 1239 621 1351L654 1536H879L856 1388Q822 1167 635 1007Z" /> -<glyph unicode="&#x201e;" horiz-adv-x="810" d="M60 -325L-80 -244Q16 -96 44 38L84 263H316L285 72Q246 -166 60 -325ZM386 -325L245 -244Q350 -83 377 35L417 263H649L622 86Q584 -158 386 -325Z" /> -<glyph unicode="&#x2022;" horiz-adv-x="724" d="M399 997Q498 995 557 933T617 769L616 729Q610 624 543 560T374 498Q275 500 216 563T156 720L157 754Q160 862 226 929T399 997Z" /> -<glyph unicode="&#x2039;" horiz-adv-x="629" d="M308 508L470 126L303 125L90 513L91 534L421 924H624L308 508Z" /> -<glyph unicode="&#x203a;" horiz-adv-x="609" d="M306 923L519 536L518 514L188 124H-15L300 539L139 922L306 923Z" /> -</font> -</defs> -</svg> diff --git a/fonts/roboto-v18-latin-ext-700italic.ttf b/fonts/roboto-v18-latin-ext-700italic.ttf deleted file mode 100644 index 795119a..0000000 Binary files a/fonts/roboto-v18-latin-ext-700italic.ttf and /dev/null differ diff --git a/fonts/roboto-v18-latin-ext-700italic.woff b/fonts/roboto-v18-latin-ext-700italic.woff deleted file mode 100644 index e364f68..0000000 Binary files a/fonts/roboto-v18-latin-ext-700italic.woff and /dev/null differ diff --git a/fonts/roboto-v18-latin-ext-700italic.woff2 b/fonts/roboto-v18-latin-ext-700italic.woff2 deleted file mode 100644 index fb161a8..0000000 Binary files a/fonts/roboto-v18-latin-ext-700italic.woff2 and /dev/null differ diff --git a/fonts/roboto-v18-latin-ext-italic.eot b/fonts/roboto-v18-latin-ext-italic.eot deleted file mode 100644 index ebdad6d..0000000 Binary files a/fonts/roboto-v18-latin-ext-italic.eot and /dev/null differ diff --git a/fonts/roboto-v18-latin-ext-italic.svg b/fonts/roboto-v18-latin-ext-italic.svg deleted file mode 100644 index 4d59797..0000000 --- a/fonts/roboto-v18-latin-ext-italic.svg +++ /dev/null @@ -1,323 +0,0 @@ -<?xml version="1.0" standalone="no"?> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg xmlns="http://www.w3.org/2000/svg"> -<defs > -<font id="Roboto" horiz-adv-x="1135" ><font-face - font-family="Roboto" - units-per-em="2048" - panose-1="2 0 0 0 0 0 0 0 0 0" - ascent="1900" - descent="-500" - alphabetic="0" /> -<glyph unicode=" " horiz-adv-x="502" /> -<glyph unicode="!" horiz-adv-x="521" d="M305 411H141L310 1456H500L305 411ZM67 90Q68 137 97 167T174 200Q220 202 250 172T280 96Q280 49 250 20T173 -12T97 15T67 90Z" /> -<glyph unicode="&quot;" horiz-adv-x="645" d="M393 1390L310 1042L200 1041L280 1544L416 1535L393 1390ZM655 1390L572 1042H462L542 1544L678 1535L655 1390Z" /> -<glyph unicode="#" horiz-adv-x="1233" d="M707 410H457L307 0H163L312 410H82L106 547H361L489 901H241L265 1040H539L691 1456H836L683 1040H934L1086 1456H1232L1079 1040H1275L1251 901H1029L901 547H1117L1093 410H852L703 0H557L707 410ZM505 547H755L884 -901H634L505 547Z" /> -<glyph unicode="$" horiz-adv-x="1126" d="M801 382Q811 468 758 532T579 644T377 754Q229 875 243 1071Q254 1235 361 1342T646 1473L685 1692H831L791 1470Q939 1441 1011 1321T1069 1008H890Q898 1155 847 1233T695 1315Q582 1317 509 1252T423 1075Q414 989 -460 927T644 811T852 697T955 560T981 384Q968 213 854 108T550 -17L516 -208H371L406 -15Q242 9 158 126T85 429H266Q255 298 313 220T490 140Q617 138 702 204T801 382Z" /> -<glyph unicode="%" horiz-adv-x="1465" d="M525 1478Q646 1474 717 1390T781 1176L775 1099Q760 965 670 880T454 799Q333 801 260 887T195 1099L201 1163Q214 1307 305 1393T525 1478ZM330 1097Q325 1016 359 969T458 919Q526 917 576 967T638 1099L647 1177Q654 -1253 621 1304T521 1357Q452 1359 401 1308T339 1176L330 1097ZM1070 658Q1194 654 1265 569T1328 357L1322 290Q1309 149 1219 62T1000 -22Q880 -20 807 65T741 279L747 347Q760 486 849 573T1070 658ZM876 277Q871 197 904 149T1004 98Q1074 96 1123 147T1184 -279L1193 358Q1200 433 1167 484T1067 537Q996 539 946 488T885 357L876 277ZM360 112L261 184L1142 1312L1241 1241L360 112Z" /> -<glyph unicode="&amp;" horiz-adv-x="1245" d="M71 384Q86 570 293 716L407 792L364 869Q292 1001 300 1114Q312 1279 420 1379T692 1476Q827 1474 915 1389T995 1176Q986 1004 782 861L635 763L884 382Q975 517 998 672H1159Q1132 417 978 245L1135 0H933L860 -113Q686 -23 477 -19Q288 -17 173 95T71 384ZM483 131Q617 128 767 244L496 668L453 638Q274 514 255 383Q240 275 303 204T483 131ZM478 1121Q470 1037 527 936L554 889L707 992Q814 1072 825 1177Q831 1241 790 1283T681 1325Q598 1325 542 1265T478 1121Z" /> -<glyph unicode="&apos;" horiz-adv-x="356" d="M374 1418L298 1057H170L247 1536H393L374 1418Z" /> -<glyph unicode="(" horiz-adv-x="689" d="M133 587Q166 818 255 1037T475 1410T765 1644L792 1520Q635 1403 523 1215T349 767T290 255Q290 48 343 -109T498 -358L453 -470Q286 -354 198 -127T117 393Q119 489 131 576L133 587Z" /> -<glyph unicode=")" horiz-adv-x="701" d="M547 585Q512 341 420 124T200 -243T-85 -471L-113 -356Q230 -98 345 473Q391 703 389 916Q384 1345 181 1531L228 1643Q340 1565 417 1436T531 1135T564 779Q561 682 549 596L547 585Z" /> -<glyph unicode="*" horiz-adv-x="866" d="M384 987L107 1077L175 1221L453 1108L504 1456H654L584 1112L887 1220L906 1061L591 970L738 695L610 607L479 897L257 617L143 715L384 987Z" /> -<glyph unicode="+" horiz-adv-x="1136" d="M682 781H1076L1045 606H652L572 146H390L470 606H76L107 781H500L574 1206H756L682 781Z" /> -<glyph unicode="," horiz-adv-x="400" d="M-9 -291L-113 -216Q3 -73 31 68L57 219H234L213 84Q177 -144 -9 -291Z" /> -<glyph unicode="-" horiz-adv-x="558" d="M500 543H25L52 694H527L500 543Z" /> -<glyph unicode="." horiz-adv-x="533" d="M164 210Q213 211 245 180T276 100T243 21T163 -12T84 15T53 94T84 175T164 210Z" /> -<glyph unicode="/" horiz-adv-x="829" d="M51 -125H-113L751 1456H914L51 -125Z" /> -<glyph unicode="0" horiz-adv-x="1126" d="M472 -20Q288 -16 196 110T112 475Q114 549 123 621L159 864Q207 1175 342 1328T698 1476Q884 1472 975 1349T1060 990Q1057 915 1048 843L1013 608Q960 279 826 127T472 -20ZM873 876Q887 997 886 1064Q881 1318 689 -1325Q549 1330 463 1222T342 881L299 591Q285 475 286 402Q291 137 482 130Q615 124 701 228T825 558L873 876Z" /> -<glyph unicode="1" horiz-adv-x="1126" d="M604 0H422L636 1228L249 1092L280 1268L820 1463H852L604 0Z" /> -<glyph unicode="2" horiz-adv-x="1126" d="M950 0H23L45 141L582 663L680 760Q849 929 867 1072Q880 1182 824 1251T666 1325Q535 1329 447 1249T340 1028L161 1027Q174 1161 243 1264T426 1423T673 1476Q854 1472 960 1367T1052 1093Q1035 901 831 689L739 596L271 -151H974L950 0Z" /> -<glyph unicode="3" horiz-adv-x="1126" d="M416 818L536 817Q668 817 758 886T862 1075Q875 1191 819 1257T656 1326Q542 1328 463 1260T365 1075L186 1074Q203 1254 339 1366T665 1477Q848 1473 952 1363T1043 1071Q1034 968 964 883T770 742Q869 702 918 616T959 -413Q943 216 803 96T461 -20Q274 -16 163 96T60 385L241 384Q235 272 295 204T469 131Q597 127 682 204T779 410Q790 529 725 595T531 666L392 667L416 818Z" /> -<glyph unicode="4" horiz-adv-x="1126" d="M857 489H1053L1026 338H831L772 0H590L649 338H5L26 457L826 1456H1024L857 489ZM243 489H675L805 1205L776 1163L243 489Z" /> -<glyph unicode="5" horiz-adv-x="1126" d="M219 733L404 1456H1130L1103 1285H533L421 887Q531 952 659 950Q840 948 937 814T1016 471Q997 247 857 111T508 -21Q334 -19 227 91T114 384H283Q290 264 351 198T516 130Q644 126 731 221T835 470Q849 605 788 692T609 -784Q536 786 480 762T367 693L219 733Z" /> -<glyph unicode="6" horiz-adv-x="1126" d="M955 1458L939 1301H904Q704 1297 562 1177T342 823Q478 959 660 955Q775 953 857 892T977 722T1004 482Q984 261 846 118T505 -20Q343 -16 239 99T120 407Q112 512 145 691Q214 1064 417 1261T935 1458H955ZM621 802Q524 -804 439 746T308 598L301 531L299 450Q299 368 324 291T398 174T513 133Q634 128 720 223T824 473Q834 563 813 638T744 756T621 802Z" /> -<glyph unicode="7" horiz-adv-x="1126" d="M1146 1342L355 0H157L944 1304H184L208 1456H1164L1146 1342Z" /> -<glyph unicode="8" horiz-adv-x="1126" d="M1064 1085Q1055 976 987 889T800 744Q894 690 939 600T977 402Q962 209 819 93T474 -20Q285 -16 175 97T80 385Q91 510 168 603T378 755Q300 809 263 891T233 1067Q247 1252 378 1366T700 1476Q874 1472 976 1363T1064 -1085ZM798 406Q810 519 750 594T576 674Q452 676 364 596T262 388Q250 272 310 202T482 130Q608 126 696 203T798 406ZM882 1082Q893 1183 841 1252T691 1325Q579 1327 502 1254T412 1064Q401 960 454 893T605 824Q714 822 791 894T882 1082Z" /> -<glyph unicode="9" horiz-adv-x="1126" d="M823 640Q749 562 666 524T501 487Q386 489 305 552T186 725T160 965Q173 1109 241 1229T418 1414T660 1476Q834 1472 933 1350T1040 1023Q1043 916 1015 757Q949 383 755 194T255 -2H210L226 154H263Q478 158 615 274T823 -640ZM539 640Q630 636 714 691T852 841L860 914L863 995Q859 1150 806 1234T652 1322Q528 1327 441 1227T339 975Q332 914 341 851T377 740Q431 643 539 640Z" /> -<glyph unicode=":" horiz-adv-x="491" d="M410 210Q459 211 491 180T522 100T489 21T409 -12T330 15T299 94T330 175T410 210ZM307 1093Q356 1094 388 1063T419 983T386 904T306 871T227 898T196 977T227 1058T307 1093Z" /> -<glyph unicode=";" horiz-adv-x="430" d="M284 1093Q333 1094 365 1063T396 983T363 904T283 871T204 898T173 977T204 1058T284 1093ZM3 -291L-101 -216Q15 -73 43 68L69 219H246L225 84Q189 -144 3 -291Z" /> -<glyph unicode="&lt;" horiz-adv-x="1020" d="M263 640L828 387L795 200L65 579L91 725L952 1103L916 898L263 640Z" /> -<glyph unicode="=" horiz-adv-x="1100" d="M994 814H184L212 975H1023L994 814ZM922 399H112L140 559H951L922 399Z" /> -<glyph unicode="&gt;" horiz-adv-x="1048" d="M781 654L183 913L216 1095L980 716L954 571L58 191L94 392L781 654Z" /> -<glyph unicode="?" horiz-adv-x="948" d="M321 409Q334 524 382 612T538 796L619 867Q744 978 760 1100Q772 1194 729 1253T595 1316Q493 1318 428 1262T345 1116L165 1115Q184 1280 306 1379T606 1477Q774 1473 866 1371T945 1104Q928 922 741 754L619 650Q521 -561 498 410L321 409ZM250 90Q251 137 280 167T357 200Q403 201 433 172T463 95Q463 49 433 19T356 -12Q309 -14 280 15T250 90Z" /> -<glyph unicode="@" horiz-adv-x="1794" d="M1199 -20Q1110 -18 1056 26T988 148Q852 -24 709 -21Q593 -19 537 72T493 319Q503 480 579 647T765 903T1005 990Q1144 987 1277 885L1144 327Q1134 261 1134 234Q1129 99 1226 96Q1373 90 1464 261T1566 702Q1573 882 -1520 1019T1352 1226T1067 1299Q846 1303 657 1176T346 806T211 284Q203 103 258 -39T425 -253T699 -327Q868 -331 1038 -249L1065 -366Q926 -453 697 -453Q506 -452 365 -369T147 -125T70 246Q68 463 147 688T368 1085T690 1345T1071 1431Q1265 1428 1404 1344T1617 -1099T1691 734Q1691 509 1626 333T1450 67T1199 -20ZM649 294Q644 123 761 120Q868 115 961 264L993 317L994 328L1127 834Q1075 862 1020 863Q881 868 785 728T654 351L649 294Z" /> -<glyph unicode="A" horiz-adv-x="1306" d="M909 380H319L120 0H-81L710 1456H875L1163 0H978L909 380ZM402 538H881L760 1217L402 538Z" /> -<glyph unicode="B" horiz-adv-x="1247" d="M59 0L312 1456L739 1455Q962 1455 1073 1355T1170 1076Q1152 867 907 761Q1005 723 1053 631T1093 428Q1078 231 935 116T565 0H59ZM365 681L274 157L571 156Q707 156 799 229T906 426Q920 544 865 610T692 680L365 -681ZM392 835L663 834Q790 834 877 899T980 1078Q993 1184 939 1238T758 1297L472 1298L392 835Z" /> -<glyph unicode="C" horiz-adv-x="1303" d="M1169 464Q1127 238 965 106T575 -20Q440 -17 339 46T182 229T120 494Q116 576 127 654L144 774Q191 1102 374 1291T821 1476Q1026 1472 1146 1344T1273 987H1086Q1073 1293 846 1317L813 1319Q624 1324 498 1179T334 -781L312 630L306 542Q300 358 371 250T584 137Q736 132 835 210T987 461L1169 464Z" /> -<glyph unicode="D" horiz-adv-x="1313" d="M59 0L312 1456L690 1455Q868 1455 996 1366T1181 1121T1214 770L1204 697Q1160 379 957 190T447 0H59ZM472 1298L274 157L459 156Q671 156 818 288T1010 650Q1045 834 1034 963Q1019 1118 931 1205T695 1297L472 1298Z" /> -<glyph unicode="E" horiz-adv-x="1139" d="M976 673H364L274 157H986L958 0H59L312 1456H1201L1173 1298H472L391 830H1003L976 673Z" /> -<glyph unicode="F" horiz-adv-x="1108" d="M951 643H359L247 0H59L312 1456H1188L1160 1298H472L386 800H979L951 643Z" /> -<glyph unicode="G" horiz-adv-x="1363" d="M1147 192Q1074 89 935 34T616 -20Q473 -17 366 47T198 230T128 502Q121 621 157 824T285 1175T512 1401T825 1476Q1028 1472 1148 1356T1286 1028H1100Q1089 1166 1017 1240T818 1318Q630 1325 504 1183T337 768L318 -628L315 552Q315 355 396 248T623 138Q834 133 958 242L1018 569H690L718 725H1230L1147 192Z" /> -<glyph unicode="H" horiz-adv-x="1426" d="M1146 0H958L1075 673H364L247 0H59L312 1456H500L391 830H1101L1210 1456H1399L1146 0Z" /> -<glyph unicode="I" horiz-adv-x="550" d="M260 0H73L326 1456H513L260 0Z" /> -<glyph unicode="J" horiz-adv-x="1106" d="M910 1456H1098L923 425Q894 219 756 97T412 -22Q220 -18 115 94T22 402H209Q198 282 254 211T422 137Q545 133 630 214T734 424L910 1456Z" /> -<glyph unicode="K" horiz-adv-x="1255" d="M544 675L331 484L247 0H59L312 1456H500L376 747L1118 1456H1360L683 804L1136 0H927L544 675Z" /> -<glyph unicode="L" horiz-adv-x="1079" d="M275 157H945L917 0H59L312 1456H501L275 157Z" /> -<glyph unicode="M" horiz-adv-x="1744" d="M549 1456L804 270L1472 1456H1719L1466 0H1279L1379 576L1498 1162L838 0H694L434 1185L344 557L247 0H59L312 1456H549Z" /> -<glyph unicode="N" horiz-adv-x="1426" d="M1146 0H964L444 1130L248 0H59L312 1456H494L1015 321L1212 1456H1399L1146 0Z" /> -<glyph unicode="O" horiz-adv-x="1376" d="M593 -20Q454 -17 352 47T190 235T125 515Q119 636 152 814T266 1135T463 1364Q620 1480 821 1476Q1034 1472 1157 1329T1289 940Q1293 835 1268 673T1177 372T1010 139Q834 -25 593 -20ZM1104 894Q1110 1091 1035 1199T812 -1312Q678 1316 573 1240T400 1013T314 629L311 564Q305 368 381 257T602 142Q791 137 915 278T1081 676Q1101 802 1104 894Z" /> -<glyph unicode="P" horiz-adv-x="1263" d="M346 570L247 0H59L312 1456L798 1455Q1023 1455 1145 1336T1250 1018Q1232 809 1084 689T692 569L346 570ZM373 727L697 726Q850 726 948 803T1063 1017Q1079 1140 1012 1216T817 1297L472 1298L373 727Z" /> -<glyph unicode="Q" horiz-adv-x="1376" d="M907 76L1124 -133L985 -246L731 -3Q657 -19 583 -19Q446 -18 342 47T181 236T117 516Q111 642 143 816T255 1131T446 1358Q606 1480 812 1476Q953 1473 1057 1408T1218 1220T1281 940Q1284 856 1274 773L1262 688Q1200 -257 907 76ZM1095 894Q1102 1094 1026 1201T804 1312Q670 1316 565 1240T392 1013T306 629L303 564Q299 449 330 349T428 197T594 142Q778 135 903 275T1071 670Q1092 797 1095 894Z" /> -<glyph unicode="R" horiz-adv-x="1233" d="M685 589H349L247 0H58L311 1456L749 1455Q978 1454 1098 1339T1199 1026Q1188 889 1100 785T864 628L1090 13L1089 0H889L685 589ZM376 746L652 745Q796 745 895 821T1011 1026Q1026 1151 961 1222T763 1297L472 1298L376 746Z" /> -<glyph unicode="S" horiz-adv-x="1189" d="M877 375Q899 535 711 609L538 672L480 697Q188 830 207 1071Q217 1192 290 1285T483 1428T740 1476Q872 1473 975 1417T1133 1261T1181 1034L992 1035Q1002 1169 932 1242T732 1318Q595 1320 503 1254T397 1074Q377 -925 580 848L729 795L804 763Q1086 633 1065 377Q1054 254 982 165T787 26T521 -20Q384 -19 271 38T98 196T46 423L234 422Q225 292 304 216T529 137T768 200T877 375Z" /> -<glyph unicode="T" horiz-adv-x="1195" d="M1261 1298H808L583 0H396L621 1298H168L196 1456H1289L1261 1298Z" /> -<glyph unicode="U" horiz-adv-x="1298" d="M1312 1456L1144 471Q1110 244 948 110T557 -21Q414 -18 309 43T153 216T120 470L288 1456H473L306 469Q289 316 358 229T567 137Q719 131 823 219T955 468L1123 1456H1312Z" /> -<glyph unicode="V" horiz-adv-x="1274" d="M574 257L1165 1456H1377L625 0H459L164 1456H361L574 257Z" /> -<glyph unicode="W" horiz-adv-x="1772" d="M446 449L442 273L510 445L945 1456H1104L1219 432L1229 266L1292 467L1664 1456H1857L1287 0H1116L990 1069L986 1169L944 1053L480 0H309L195 1456H378L446 449Z" /> -<glyph unicode="X" horiz-adv-x="1255" d="M666 899L1091 1456H1323L756 725L1095 0H884L626 567L188 0H-44L535 743L205 1456H413L666 899Z" /> -<glyph unicode="Y" horiz-adv-x="1203" d="M611 726L1106 1456H1330L677 533L584 0H397L493 554L168 1456H372L611 726Z" /> -<glyph unicode="Z" horiz-adv-x="1199" d="M234 157H1036L1008 0H-21L6 154L972 1298H216L244 1456H1230L1204 1305L234 157Z" /> -<glyph unicode="[" horiz-adv-x="537" d="M650 1512H465L204 -160H390L366 -312H-1L307 1664H675L650 1512Z" /> -<glyph unicode="\" horiz-adv-x="825" d="M191 1456H355L670 -125H507L191 1456Z" /> -<glyph unicode="]" horiz-adv-x="537" d="M175 1664H543L234 -312H-134L-110 -160H77L338 1512H150L175 1664Z" /> -<glyph unicode="^" horiz-adv-x="840" d="M524 1209L256 729H79L496 1456H620L783 729H625L524 1209Z" /> -<glyph unicode="_" horiz-adv-x="906" d="M763 -151H-127L-100 0H790L763 -151Z" /> -<glyph unicode="`" horiz-adv-x="624" d="M555 1242H413L208 1536H413L555 1242Z" /> -<glyph unicode="a" horiz-adv-x="1091" d="M693 0Q686 29 686 57L689 114Q540 -24 373 -20Q230 -18 141 70T59 292Q69 464 209 560T579 657L768 656L780 742Q790 839 743 895T600 954Q507 956 436 909T348 783L166 782Q175 877 240 950T407 1064T618 1103Q787 -1099 881 1001T960 739L872 203L867 126Q865 71 879 17L877 0H693ZM409 140Q496 138 573 181T707 302L746 525L609 526Q438 526 347 472T244 319Q235 243 279 193T409 140Z" /> -<glyph unicode="b" horiz-adv-x="1125" d="M1013 536Q993 370 922 237T750 40T526 -21Q330 -17 235 126L198 0H31L298 1536H479L370 962Q500 1106 686 1102Q842 1098 929 987T1021 681Q1022 617 1015 557L1013 536ZM841 641Q844 787 792 864T633 946Q464 950 347 -776L266 305Q326 140 491 136Q597 132 676 199T797 386T841 641Z" /> -<glyph unicode="c" horiz-adv-x="1050" d="M488 130Q585 128 663 186T765 340L936 341Q921 239 855 155T687 24T480 -20Q345 -18 252 50T114 241T84 517L89 567Q108 723 180 846T368 1037T624 1102Q794 1098 896 988T998 709L829 710Q827 816 770 881T616 951Q475 -954 382 846T265 544L262 518Q256 454 260 386Q267 269 326 201T488 130Z" /> -<glyph unicode="d" horiz-adv-x="1130" d="M83 543Q103 708 174 841T349 1040T578 1103Q759 1099 856 971L960 1536H1141L875 0H710L729 116Q601 -24 413 -20Q263 -16 174 97T78 402Q75 461 83 543ZM257 439Q254 296 308 217T466 136Q623 129 745 294L831 794Q771 -942 613 946Q506 949 425 882T301 693T257 439Z" /> -<glyph unicode="e" horiz-adv-x="1062" d="M499 -20Q297 -16 183 129T87 500L92 543Q109 704 187 837T379 1037T623 1102Q790 1098 885 991T989 701Q992 636 985 571L974 488H267Q249 341 315 238T514 131Q674 127 810 275L914 187Q846 89 739 34T499 -20ZM614 -951Q502 954 419 875T286 640L812 639L816 655Q832 781 776 864T614 951Z" /> -<glyph unicode="f" horiz-adv-x="700" d="M119 0L283 939H116L141 1082H307L325 1210Q351 1373 451 1465Q556 1561 719 1559Q770 1559 848 1542L826 1391Q778 1401 729 1403Q635 1403 577 1345T504 1189L488 1082H712L687 939H463L300 0H119Z" /> -<glyph unicode="g" horiz-adv-x="1125" d="M84 543Q108 720 179 850T353 1043T578 1103Q766 1099 862 961L898 1082H1064L884 23Q855 -184 716 -308T373 -427Q263 -425 163 -375T4 -238L107 -127Q205 -272 366 -276Q495 -280 584 -204T703 12L723 108Q591 -24 -414 -20Q313 -17 239 34T123 183T78 401Q76 460 84 543ZM259 440Q256 297 308 219T467 136Q629 132 746 295L831 792Q771 940 614 946Q467 950 373 826T261 491L259 440Z" /> -<glyph unicode="h" horiz-adv-x="1104" d="M369 950Q511 1105 696 1101Q848 1099 921 997T976 709L858 0H677L796 712Q802 761 797 803Q780 943 632 946Q466 950 346 772L212 0H31L298 1536H479L369 950Z" /> -<glyph unicode="i" horiz-adv-x="492" d="M227 0H47L235 1082H415L227 0ZM376 1477Q422 1479 452 1450T483 1372Q482 1325 453 1295T376 1263T299 1290T270 1366T300 1444T376 1477Z" /> -<glyph unicode="j" horiz-adv-x="484" d="M406 1082L201 -129Q181 -282 99 -362T-117 -440Q-170 -438 -236 -420L-220 -272Q-183 -281 -137 -283Q-8 -283 18 -129L225 1082H406ZM256 1366Q257 1413 285 1444T362 1477Q408 1479 438 1449T469 1372Q468 1325 438 -1295T361 1263Q316 1261 286 1291T256 1366Z" /> -<glyph unicode="k" horiz-adv-x="1017" d="M419 499L277 372L213 0H32L299 1536H480L320 618L431 730L815 1082H1050L553 621L895 0H697L419 499Z" /> -<glyph unicode="l" horiz-adv-x="492" d="M227 0H47L313 1536H494L227 0Z" /> -<glyph unicode="m" horiz-adv-x="1751" d="M388 1083L365 962Q501 1106 694 1102Q797 1100 868 1055T967 928Q1119 1106 1326 1102Q1488 1098 1565 993T1622 711L1503 0H1323L1441 713Q1447 765 1441 808Q1422 944 1263 947Q1164 949 1084 886T980 719L857 0H675L795 -712Q808 823 762 883T617 945Q448 949 348 791L211 0H30L218 1082L388 1083Z" /> -<glyph unicode="n" horiz-adv-x="1106" d="M390 1083L364 946Q510 1106 696 1102Q849 1098 922 996T976 709L858 0H677L796 712Q802 761 797 803Q780 943 632 946Q469 949 346 772L212 0H31L219 1082L390 1083Z" /> -<glyph unicode="o" horiz-adv-x="1143" d="M632 1102Q768 1100 865 1028T1008 830T1040 553L1038 531Q1019 373 944 246T750 47T489 -20Q354 -18 257 54T114 250T82 523Q97 691 173 825T368 1032T632 1102ZM264 522Q257 459 264 391Q274 273 334 203T496 130Q586 -127 662 174T790 318T857 531Q865 623 860 686Q848 807 787 877T625 951Q485 954 387 841T266 545L264 522Z" /> -<glyph unicode="p" horiz-adv-x="1125" d="M1011 536Q991 371 922 239T751 42T525 -21Q337 -17 237 106L140 -416H-41L219 1082L383 1083L363 962Q497 1106 684 1102Q840 1098 927 987T1019 681Q1020 617 1014 557L1011 536ZM833 557L838 641Q838 787 783 864T622 -946Q465 950 351 797L260 278Q321 134 479 130Q614 127 708 235T833 557Z" /> -<glyph unicode="q" horiz-adv-x="1139" d="M585 1103Q768 1099 864 972L897 1082H1064L804 -416H624L722 100Q592 -24 420 -20Q268 -18 177 95T79 400Q73 524 108 661T212 901T377 1055T585 1103ZM265 522L260 438Q257 293 312 213T472 130Q625 126 743 276L837 -808Q771 947 621 951Q484 954 390 846T265 522Z" /> -<glyph unicode="r" horiz-adv-x="682" d="M704 917L619 926Q445 926 345 769L212 0H31L219 1082L394 1083L367 957Q482 1108 638 1104Q671 1104 724 1089L704 917Z" /> -<glyph unicode="s" horiz-adv-x="1034" d="M701 293Q716 405 578 451L390 506Q152 588 160 778Q167 921 290 1012T581 1102Q745 1100 847 1007T946 763L766 764Q768 845 715 896T574 949Q480 951 412 903Q349 858 339 785Q326 691 454 648L545 623Q731 575 809 -498T881 307Q875 206 815 131T655 17T442 -20Q270 -18 158 80T50 334L231 333Q231 242 289 187T448 132Q547 130 619 173T701 293Z" /> -<glyph unicode="t" horiz-adv-x="659" d="M509 1344L463 1082H660L635 939H439L326 266Q323 240 325 218Q332 140 410 140Q443 140 498 150L484 -1Q419 -19 352 -19Q244 -17 190 60T148 269L258 939H67L92 1082H283L329 1344H509Z" /> -<glyph unicode="u" horiz-adv-x="1105" d="M718 107Q591 -24 395 -20Q240 -16 166 91T110 383L226 1082H407L290 380Q285 336 288 294Q293 222 331 181T437 137Q631 131 737 294L873 1082H1054L866 0H695L718 107Z" /> -<glyph unicode="v" horiz-adv-x="972" d="M424 253L814 1082H1005L460 0H322L110 1082H288L424 253Z" /> -<glyph unicode="w" horiz-adv-x="1503" d="M1002 256L1347 1082H1534L1041 0H894L782 818L392 0H245L128 1082H301L367 276L751 1082H897L1002 256Z" /> -<glyph unicode="x" horiz-adv-x="995" d="M496 688L790 1082H1012L578 538L842 0H645L466 404L161 0H-60L387 556L131 1082H329L496 688Z" /> -<glyph unicode="y" horiz-adv-x="950" d="M419 273L804 1082H1004L362 -180Q228 -443 18 -440Q-19 -439 -91 -422L-75 -272L-28 -277Q58 -281 120 -239T231 -101L296 23L109 1082H298L419 273Z" /> -<glyph unicode="z" horiz-adv-x="995" d="M234 151H842L815 0H-19L6 145L715 929H150L178 1082H974L950 942L234 151Z" /> -<glyph unicode="{" horiz-adv-x="682" d="M478 -365Q320 -312 246 -193T191 99L219 306Q225 355 220 397Q203 533 56 541L72 686Q289 696 321 931L352 1159Q411 1498 762 1599L789 1482Q577 1412 532 1145L498 905Q465 705 287 611Q390 534 400 392Q403 348 399 -305L368 62L366 -9L368 -40Q385 -199 519 -252L478 -365Z" /> -<glyph unicode="|" horiz-adv-x="494" d="M179 -270H33L303 1456H449L179 -270Z" /> -<glyph unicode="}" horiz-adv-x="682" d="M-116 -251Q101 -180 144 93L175 319Q206 527 401 620Q288 689 275 836Q271 878 276 923L307 1169L309 1240Q306 1424 157 1482L202 1595Q358 1542 430 1423T483 1132L456 924Q450 874 455 833Q471 698 618 690L603 545Q385 -535 353 297L325 90Q274 -264 -88 -368L-116 -251Z" /> -<glyph unicode="~" horiz-adv-x="1361" d="M1245 778Q1231 615 1134 507T896 400Q770 403 647 515L587 573Q515 640 449 640Q313 643 269 476L261 439L105 436Q121 598 218 702T457 803Q576 800 684 707L773 624Q841 563 904 563Q979 563 1031 618T1102 775L1245 778Z" /> -<glyph unicode="&#xa0;" horiz-adv-x="502" /> -<glyph unicode="&#xa1;" horiz-adv-x="494" d="M179 684H344L175 -360H-15L179 684ZM416 999Q416 952 387 921T310 888T233 917T203 993Q204 1041 233 1070T310 1102Q356 1103 386 1074T416 999Z" /> -<glyph unicode="&#xa2;" horiz-adv-x="1096" d="M489 130Q586 128 664 185T770 340L942 341Q921 207 817 113T552 -12L506 -245H325L372 -9Q253 21 181 115T94 350Q82 461 104 594T186 833T340 1004T552 1092L597 1318H778L733 1093Q864 1061 937 960T1011 709H841Q841 -815 785 881T632 951Q480 957 381 829T268 473L267 431Q264 289 322 211T489 130Z" /> -<glyph unicode="&#xa3;" horiz-adv-x="1164" d="M440 622L412 410Q392 257 304 154L1019 157L990 0H-13L16 156L83 154Q196 195 225 416L252 622H92L119 779H275L306 1032Q331 1236 470 1359T801 1476Q969 1472 1065 1368T1153 1086L966 1087Q973 1193 924 1254T774 -1319Q664 1323 587 1241T494 1030L462 779H772L745 622H440Z" /> -<glyph unicode="&#xa4;" horiz-adv-x="1426" d="M996 110Q809 -24 619 -20Q420 -16 284 110L127 -26L18 118L177 252Q147 337 137 424Q118 574 162 718T311 980L194 1137L335 1264L449 1116Q628 1238 810 1234Q998 1232 1135 1113L1310 1265L1421 1119L1248 972Q1280 -885 1292 796Q1310 652 1270 511T1130 250L1245 100L1102 -27L996 110ZM304 599Q289 485 326 381T442 216T630 150Q747 146 854 209T1034 383T1123 617Q1137 732 1101 835T985 998T798 1063Q680 1067 572 1004T392 831T304 599Z" /> -<glyph unicode="&#xa5;" horiz-adv-x="1053" d="M552 794L965 1456H1183L702 736H950L928 611H614L585 446H900L878 322H564L508 0H319L376 322H67L89 446H397L426 611H117L139 736H399L168 1456H368L552 794Z" /> -<glyph unicode="&#xa6;" horiz-adv-x="486" d="M-9 -270L129 521H311L173 -270H-9ZM341 698H159L291 1456H473L341 698Z" /> -<glyph unicode="&#xa7;" horiz-adv-x="1228" d="M1087 439Q1069 248 858 152Q961 49 948 -120Q934 -294 790 -396T424 -496Q207 -492 86 -377T-24 -63L157 -62Q151 -147 182 -210T279 -307T432 -343Q515 -345 589 -318T709 -242T764 -123Q776 -46 723 9T531 109T312 -192Q70 307 90 543Q104 727 314 830Q215 936 228 1102Q236 1210 303 1296T489 1430Q612 1478 753 1476Q960 1472 1072 1358T1173 1045H993Q1001 1171 935 1246T745 1325Q610 1327 519 1269T412 1105Q401 1024 449 970T632 873T839 800Q1108 684 1087 439ZM616 691L462 -743Q295 696 273 545Q259 445 334 384Q384 343 513 303T707 237Q881 289 903 436Q914 509 867 565T700 663L616 691Z" /> -<glyph unicode="&#xa8;" horiz-adv-x="840" d="M218 1369Q219 1415 248 1445T325 1478Q371 1479 401 1450T431 1373Q431 1327 401 1297T324 1265Q277 1264 248 1293T218 1369ZM635 1367Q636 1413 665 1444T741 1477Q789 1478 819 1449T848 1371Q848 1324 818 1295T741 -1263Q695 1262 665 1291T635 1367Z" /> -<glyph unicode="&#xa9;" horiz-adv-x="1571" d="M1093 597Q1079 446 986 363T744 283Q599 287 519 395T453 670L463 768Q483 957 586 1066T847 1174Q989 1170 1066 1089T1138 859L995 860Q1001 945 967 994T842 1045Q747 1047 684 975T606 775T592 617L594 582Q601 -505 640 460T748 412Q918 405 953 596L1093 597ZM230 570Q252 363 382 232T702 98Q889 94 1055 205T1313 507T1385 888Q1363 1093 1235 1222T914 1356Q725 1360 559 1248T301 948T230 570ZM119 722Q141 921 255 1099T544 1378T913 1476Q1091 1474 1233 1376T1446 -1105T1496 735Q1473 532 1359 355T1073 78T713 -21H703Q520 -17 380 81T169 352T119 722Z" /> -<glyph unicode="&#xaa;" horiz-adv-x="898" d="M630 703L626 777Q534 691 420 691Q315 691 255 752T199 911Q204 1026 297 1088T557 1150L668 1149L677 1203Q680 1230 678 1254Q671 1333 586 1336Q530 1337 487 1313T428 1232L272 1243Q283 1352 371 1415T590 -1477Q713 1473 779 1399T836 1200L782 853L778 795Q777 750 785 704L630 703ZM460 826Q535 826 626 894L654 1037H561Q473 1034 421 1002T361 915Q356 872 383 849T460 826Z" /> -<glyph unicode="&#xab;" horiz-adv-x="942" d="M517 794L695 407H570L345 794L347 814L694 1203H846L517 794ZM581 538L759 151H634L409 538L411 558L758 947H910L581 538Z" /> -<glyph unicode="&#xac;" horiz-adv-x="1110" d="M891 375H709L756 639H129L158 800H965L891 375Z" /> -<glyph unicode="&#xad;" horiz-adv-x="558" d="M500 543H25L52 694H527L500 543Z" /> -<glyph unicode="&#xae;" horiz-adv-x="1572" d="M118 722Q140 921 254 1099T543 1378T912 1476Q1087 1474 1228 1379T1443 1110T1495 735Q1472 531 1357 354T1069 75T703 -22Q524 -18 384 77T171 348T118 722ZM229 569Q241 438 305 328T472 159T701 97Q888 93 -1053 203T1311 503T1385 888Q1371 1021 1307 1129T1141 1295T913 1356Q728 1360 563 1253T304 956T229 569ZM654 654L601 316H463L596 1165L853 1164Q992 1159 1066 1095T1134 916Q1131 858 1097 810T982 716Q1059 672 1068 575L1067 514Q1056 427 1058 396L1061 -332L1059 315H921Q915 352 917 388L924 460L930 514Q937 580 913 614T821 653L654 654ZM673 782L816 781Q888 783 938 817T998 910Q1008 973 976 1004T854 1038H714L673 782Z" /> -<glyph unicode="&#xaf;" horiz-adv-x="920" d="M900 1302H247L270 1445H923L900 1302Z" /> -<glyph unicode="&#xb0;" horiz-adv-x="752" d="M236 1207Q240 1318 320 1398T504 1477Q601 1475 664 1401T726 1225Q722 1113 643 1035T461 959Q363 961 298 1033T236 1207ZM357 1209Q351 1160 381 1124T461 1087Q515 1087 557 1127T606 1223Q612 1271 584 1310T504 -1350Q450 1350 407 1308T357 1209Z" /> -<glyph unicode="&#xb1;" horiz-adv-x="1071" d="M670 854H1023L999 703H647L582 289H418L483 703H109L134 854H507L572 1267H735L670 854ZM848 0H37L61 152H872L848 0Z" /> -<glyph unicode="&#xb2;" horiz-adv-x="738" d="M674 667H92L112 783L467 1081Q566 1165 578 1239Q585 1287 559 1314T484 1342Q418 1343 378 1306T324 1206L170 1205Q181 1322 268 1396T483 1469Q603 1467 672 1404T737 1239Q729 1116 578 991L514 940L318 795H697L674 -667Z" /> -<glyph unicode="&#xb3;" horiz-adv-x="738" d="M343 1126L421 1125Q487 1127 533 1157T587 1242Q593 1291 562 1315T481 1340Q369 1340 340 1247H184Q195 1348 274 1408T479 1469Q605 1466 676 1407T742 1251Q735 1132 583 1066Q701 1023 697 894Q692 783 602 -719T378 656Q259 658 185 720T110 890H261Q261 840 294 813T385 785Q449 785 494 817T547 902Q560 1004 419 1009L332 1010L343 1126Z" /> -<glyph unicode="&#xb4;" horiz-adv-x="633" d="M447 1536H678L372 1242H213L447 1536Z" /> -<glyph unicode="&#xb5;" d="M414 1082L311 458Q301 374 304 316Q314 133 460 130Q643 124 740 281L879 1082H1061L873 0H711L730 115Q619 -23 457 -21Q322 -21 242 54L153 -416H-27L233 1082H414Z" /> -<glyph unicode="&#xb6;" horiz-adv-x="981" d="M532 0L623 520L559 521Q348 524 236 651T143 980Q157 1122 231 1231T425 1398T689 1457L966 1456L714 0H532Z" /> -<glyph unicode="&#xb7;" horiz-adv-x="528" d="M165 726Q166 775 196 807T277 842Q325 844 357 813T389 732Q388 683 356 652T275 618Q230 616 198 645T165 726Z" /> -<glyph unicode="&#xb8;" horiz-adv-x="502" d="M167 0L146 -55Q275 -84 271 -218Q268 -320 181 -377T-56 -437L-52 -329Q114 -323 130 -222Q142 -151 38 -139L-8 -133L38 0H167Z" /> -<glyph unicode="&#xb9;" horiz-adv-x="738" d="M492 667H338L442 1264L222 1208L246 1343L602 1456H623L492 667Z" /> -<glyph unicode="&#xba;" horiz-adv-x="913" d="M589 1477Q730 1473 810 1375T878 1123L871 1052Q854 886 750 786T495 689Q353 693 273 793T205 1043L212 1113Q229 1281 334 1381T589 1477ZM365 1041Q355 945 391 888T504 828Q583 825 639 882T710 1043L719 1124Q727 -1226 690 1280T581 1337Q499 1339 443 1281T373 1123L365 1041Z" /> -<glyph unicode="&#xbb;" horiz-adv-x="941" d="M291 949L516 562L514 541L167 152H15L343 560L166 949H291ZM629 949L854 562L852 541L505 152H353L681 560L504 949H629Z" /> -<glyph unicode="&#xbc;" horiz-adv-x="1465" d="M455 664H301L405 1261L185 1205L209 1340L565 1453H586L455 664ZM354 120L256 192L1137 1320L1235 1248L354 120ZM1227 299H1331L1308 169H1205L1175 0H1021L1051 169H688L701 281L1148 789H1312L1227 299ZM865 -299H1073L1131 590L1109 560L865 299Z" /> -<glyph unicode="&#xbd;" horiz-adv-x="1551" d="M311 120L213 192L1094 1320L1192 1248L311 120ZM450 664H296L400 1261L180 1205L204 1340L560 1453H581L450 664ZM1333 0H751L771 116L1126 414Q1225 498 1237 572Q1244 620 1218 647T1143 675Q1077 676 1037 639T983 -539L829 538Q840 655 927 729T1142 802Q1262 800 1331 737T1396 572Q1388 449 1237 324L1173 273L977 128H1356L1333 0Z" /> -<glyph unicode="&#xbe;" horiz-adv-x="1555" d="M477 120L379 192L1260 1320L1358 1248L477 120ZM1316 299H1420L1397 169H1294L1264 0H1110L1140 169H777L790 281L1237 789H1401L1316 299ZM954 299H1162L1220 590L1198 560L954 299ZM391 1126L469 1125Q535 1127 -581 1157T635 1242Q641 1291 610 1315T529 1340Q417 1340 388 1247H232Q243 1348 322 1408T527 1469Q653 1466 724 1407T790 1251Q783 1132 631 1066Q749 1023 745 894Q740 783 650 719T426 656Q307 658 233 720T158 890H309Q309 840 342 813T433 785Q497 785 542 -817T595 902Q608 1004 467 1009L380 1010L391 1126Z" /> -<glyph unicode="&#xbf;" horiz-adv-x="950" d="M584 681Q572 572 531 492T384 311L287 220Q168 105 155 -10Q142 -108 189 -166T329 -226Q427 -228 493 -172T578 -21L758 -20Q739 -187 617 -288T318 -386Q145 -382 50 -281T-30 -14Q-15 169 176 344L292 446Q383 -531 408 680L584 681ZM654 1000Q654 953 625 922T548 889Q500 887 471 918T441 994Q442 1041 472 1070T548 1102Q594 1103 624 1075T654 1000Z" /> -<glyph unicode="&#xc0;" horiz-adv-x="1306" d="M909 380H319L120 0H-81L710 1456H875L1163 0H978L909 380ZM402 538H881L760 1217L402 538ZM916 1552H774L569 1846H774L916 1552Z" /> -<glyph unicode="&#xc1;" horiz-adv-x="1306" d="M909 380H319L120 0H-81L710 1456H875L1163 0H978L909 380ZM402 538H881L760 1217L402 538ZM946 1846H1177L871 1552H712L946 1846Z" /> -<glyph unicode="&#xc2;" horiz-adv-x="1306" d="M909 380H319L120 0H-81L710 1456H875L1163 0H978L909 380ZM402 538H881L760 1217L402 538ZM1117 1574V1560L970 1562L857 1731L681 1563L528 1560V1576L806 1846H912L1117 1574Z" /> -<glyph unicode="&#xc3;" horiz-adv-x="1306" d="M909 380H319L120 0H-81L710 1456H875L1163 0H978L909 380ZM402 538H881L760 1217L402 538ZM1199 1815Q1187 1704 1126 1637T972 1570Q935 1570 905 1585T844 1620T783 1654T716 1668Q631 1665 600 1556L478 1563Q490 -1673 552 1743T708 1811Q735 1811 758 1803T835 1762T912 1720T964 1712Q1050 1712 1082 1825L1199 1815Z" /> -<glyph unicode="&#xc4;" horiz-adv-x="1306" d="M909 380H319L120 0H-81L710 1456H875L1163 0H978L909 380ZM402 538H881L760 1217L402 538ZM525 1679Q526 1725 555 1755T632 1788Q678 1789 708 1760T738 1683Q738 1637 708 1607T631 1575Q584 1574 555 1603T525 -1679ZM942 1677Q943 1723 972 1754T1048 1787Q1096 1788 1126 1759T1155 1681Q1155 1634 1125 1605T1048 1573Q1002 1572 972 1601T942 1677Z" /> -<glyph unicode="&#xc5;" horiz-adv-x="1306" d="M909 380H319L120 0H-81L710 1456H875L1163 0H978L909 380ZM402 538H881L760 1217L402 538ZM641 1721Q643 1812 707 1875T861 1938Q943 1938 1000 1880T1058 1737Q1056 1648 992 1586T838 1524Q754 1524 697 1581T641 -1721ZM737 1723Q733 1677 760 1646T830 1614Q876 1614 915 1649T961 1735Q967 1781 939 1814T869 1847Q823 1847 783 1811T737 1723Z" /> -<glyph unicode="&#xc6;" horiz-adv-x="1867" d="M1719 0H862L909 353H369L108 0H-124L982 1456H1912L1885 1304H1215L1152 833H1726L1699 682H1132L1061 151H1746L1719 0ZM496 527H932L1028 1249L496 527Z" /> -<glyph unicode="&#xc7;" horiz-adv-x="1303" d="M1169 464Q1127 238 965 106T575 -20Q440 -17 339 46T182 229T120 494Q116 576 127 654L144 774Q191 1102 374 1291T821 1476Q1026 1472 1146 1344T1273 987H1086Q1073 1293 846 1317L813 1319Q624 1324 498 1179T334 -781L312 630L306 542Q300 358 371 250T584 137Q736 132 835 210T987 461L1169 464ZM617 -9L596 -64Q725 -93 721 -227Q718 -329 631 -386T394 -446L398 -338Q564 -332 580 -231Q592 -160 488 -148L442 -142L488 -9H617Z" /> -<glyph unicode="&#xc8;" horiz-adv-x="1139" d="M976 673H364L274 157H986L958 0H59L312 1456H1201L1173 1298H472L391 830H1003L976 673ZM866 1564H724L519 1858H724L866 1564Z" /> -<glyph unicode="&#xc9;" horiz-adv-x="1139" d="M976 673H364L274 157H986L958 0H59L312 1456H1201L1173 1298H472L391 830H1003L976 673ZM896 1858H1127L821 1564H662L896 1858Z" /> -<glyph unicode="&#xca;" horiz-adv-x="1139" d="M976 673H364L274 157H986L958 0H59L312 1456H1201L1173 1298H472L391 830H1003L976 673ZM1067 1586V1572L920 1574L807 1743L631 1575L478 1572V1588L756 1858H862L1067 1586Z" /> -<glyph unicode="&#xcb;" horiz-adv-x="1139" d="M976 673H364L274 157H986L958 0H59L312 1456H1201L1173 1298H472L391 830H1003L976 673ZM475 1691Q476 1737 505 1767T582 1800Q628 1801 658 1772T688 1695Q688 1649 658 1619T581 1587Q534 1586 505 1615T475 -1691ZM892 1689Q893 1735 922 1766T998 1799Q1046 1800 1076 1771T1105 1693Q1105 1646 1075 1617T998 1585Q952 1584 922 1613T892 1689Z" /> -<glyph unicode="&#xcc;" horiz-adv-x="550" d="M260 0H73L326 1456H513L260 0ZM537 1564H395L190 1858H395L537 1564Z" /> -<glyph unicode="&#xcd;" horiz-adv-x="550" d="M260 0H73L326 1456H513L260 0ZM566 1858H797L491 1564H332L566 1858Z" /> -<glyph unicode="&#xce;" horiz-adv-x="550" d="M260 0H73L326 1456H513L260 0ZM738 1586V1572L591 1574L478 1743L302 1575L149 1572V1588L427 1858H533L738 1586Z" /> -<glyph unicode="&#xcf;" horiz-adv-x="550" d="M260 0H73L326 1456H513L260 0ZM146 1691Q147 1737 176 1767T253 1800Q299 1801 329 1772T359 1695Q359 1649 329 1619T252 1587Q205 1586 176 1615T146 1691ZM563 1689Q564 1735 593 1766T669 1799Q717 1800 747 -1771T776 1693Q776 1646 746 1617T669 1585Q623 1584 593 1613T563 1689Z" /> -<glyph unicode="&#xd0;" horiz-adv-x="1343" d="M89 0L204 666H17L44 817H231L342 1456L720 1455Q898 1455 1026 1366T1211 1121T1244 770L1234 697Q1190 379 987 190T477 0H89ZM635 666H392L304 157L489 156Q701 156 848 288T1040 650Q1075 834 1064 963Q1049 -1118 961 1205T725 1297L502 1298L418 817H662L635 666Z" /> -<glyph unicode="&#xd1;" horiz-adv-x="1426" d="M1146 0H964L444 1130L248 0H59L312 1456H494L1015 321L1212 1456H1399L1146 0ZM1251 1815Q1239 1704 1178 1637T1024 1570Q987 1570 957 1585T896 1620T835 1654T768 1668Q683 1665 652 1556L530 1563Q542 1673 -604 1743T760 1811Q787 1811 810 1803T887 1762T964 1720T1016 1712Q1102 1712 1134 1825L1251 1815Z" /> -<glyph unicode="&#xd2;" horiz-adv-x="1376" d="M593 -20Q454 -17 352 47T190 235T125 515Q119 636 152 814T266 1135T463 1364Q620 1480 821 1476Q1034 1472 1157 1329T1289 940Q1293 835 1268 673T1177 372T1010 139Q834 -25 593 -20ZM1104 894Q1110 1091 1035 -1199T812 1312Q678 1316 573 1240T400 1013T314 629L311 564Q305 368 381 257T602 142Q791 137 915 278T1081 676Q1101 802 1104 894ZM949 1554H807L602 1848H807L949 1554Z" /> -<glyph unicode="&#xd3;" horiz-adv-x="1376" d="M593 -20Q454 -17 352 47T190 235T125 515Q119 636 152 814T266 1135T463 1364Q620 1480 821 1476Q1034 1472 1157 1329T1289 940Q1293 835 1268 673T1177 372T1010 139Q834 -25 593 -20ZM1104 894Q1110 1091 1035 -1199T812 1312Q678 1316 573 1240T400 1013T314 629L311 564Q305 368 381 257T602 142Q791 137 915 278T1081 676Q1101 802 1104 894ZM979 1848H1210L904 1554H745L979 1848Z" /> -<glyph unicode="&#xd4;" horiz-adv-x="1376" d="M593 -20Q454 -17 352 47T190 235T125 515Q119 636 152 814T266 1135T463 1364Q620 1480 821 1476Q1034 1472 1157 1329T1289 940Q1293 835 1268 673T1177 372T1010 139Q834 -25 593 -20ZM1104 894Q1110 1091 1035 -1199T812 1312Q678 1316 573 1240T400 1013T314 629L311 564Q305 368 381 257T602 142Q791 137 915 278T1081 676Q1101 802 1104 894ZM1150 1576V1562L1003 1564L890 1733L714 1565L561 1562V1578L839 1848H945L1150 1576Z" /> -<glyph unicode="&#xd5;" horiz-adv-x="1376" d="M593 -20Q454 -17 352 47T190 235T125 515Q119 636 152 814T266 1135T463 1364Q620 1480 821 1476Q1034 1472 1157 1329T1289 940Q1293 835 1268 673T1177 372T1010 139Q834 -25 593 -20ZM1104 894Q1110 1091 1035 -1199T812 1312Q678 1316 573 1240T400 1013T314 629L311 564Q305 368 381 257T602 142Q791 137 915 278T1081 676Q1101 802 1104 894ZM1232 1817Q1220 1706 1159 1639T1005 1572Q968 1572 938 1587T877 1622T816 1656T749 1670Q664 1667 633 1558L511 1565Q523 -1675 585 1745T741 1813Q768 1813 791 1805T868 1764T945 1722T997 1714Q1083 1714 1115 1827L1232 1817Z" /> -<glyph unicode="&#xd6;" horiz-adv-x="1376" d="M593 -20Q454 -17 352 47T190 235T125 515Q119 636 152 814T266 1135T463 1364Q620 1480 821 1476Q1034 1472 1157 1329T1289 940Q1293 835 1268 673T1177 372T1010 139Q834 -25 593 -20ZM1104 894Q1110 1091 1035 -1199T812 1312Q678 1316 573 1240T400 1013T314 629L311 564Q305 368 381 257T602 142Q791 137 915 278T1081 676Q1101 802 1104 894ZM558 1681Q559 1727 588 1757T665 1790Q711 1791 741 1762T771 1685Q771 1639 741 1609T664 1577Q617 1576 588 1605T558 1681ZM975 -1679Q976 1725 1005 1756T1081 1789Q1129 1790 1159 1761T1188 1683Q1188 1636 1158 1607T1081 1575Q1035 1574 1005 1603T975 1679Z" /> -<glyph unicode="&#xd7;" horiz-adv-x="1069" d="M40 338L419 673L158 1009L286 1123L548 789L925 1123L1026 992L650 656L912 320L784 206L521 542L142 206L40 338Z" /> -<glyph unicode="&#xd8;" horiz-adv-x="1376" d="M590 -21Q424 -17 307 63L183 -92H32L221 140Q115 311 120 541Q121 638 145 788T229 1067T378 1289T580 1430T820 1476Q1026 1472 1155 1350L1286 1515H1436L1228 1259Q1277 1143 1287 1021Q1301 852 1258 630T1102 -249T830 23Q718 -24 590 -21ZM302 487Q304 379 335 296L1045 1204Q968 1308 812 1313Q630 1318 504 1180T334 798Q300 606 302 487ZM1109 933Q1113 1011 1102 1089L411 203Q485 145 599 141Q790 136 916 283T1083 700Q1105 847 1109 933Z" /> -<glyph unicode="&#xd9;" horiz-adv-x="1298" d="M1312 1456L1144 471Q1110 244 948 110T557 -21Q414 -18 309 43T153 216T120 470L288 1456H473L306 469Q289 316 358 229T567 137Q719 131 823 219T955 468L1123 1456H1312ZM911 1552H769L564 1846H769L911 1552Z" /> -<glyph unicode="&#xda;" horiz-adv-x="1298" d="M1312 1456L1144 471Q1110 244 948 110T557 -21Q414 -18 309 43T153 216T120 470L288 1456H473L306 469Q289 316 358 229T567 137Q719 131 823 219T955 468L1123 1456H1312ZM941 1846H1172L866 1552H707L941 1846Z" /> -<glyph unicode="&#xdb;" horiz-adv-x="1298" d="M1312 1456L1144 471Q1110 244 948 110T557 -21Q414 -18 309 43T153 216T120 470L288 1456H473L306 469Q289 316 358 229T567 137Q719 131 823 219T955 468L1123 1456H1312ZM1112 1574V1560L965 1562L852 1731L676 -1563L523 1560V1576L801 1846H907L1112 1574Z" /> -<glyph unicode="&#xdc;" horiz-adv-x="1298" d="M1312 1456L1144 471Q1110 244 948 110T557 -21Q414 -18 309 43T153 216T120 470L288 1456H473L306 469Q289 316 358 229T567 137Q719 131 823 219T955 468L1123 1456H1312ZM520 1679Q521 1725 550 1755T627 1788Q673 -1789 703 1760T733 1683Q733 1637 703 1607T626 1575Q579 1574 550 1603T520 1679ZM937 1677Q938 1723 967 1754T1043 1787Q1091 1788 1121 1759T1150 1681Q1150 1634 1120 1605T1043 1573Q997 1572 967 1601T937 1677Z" /> -<glyph unicode="&#xdd;" horiz-adv-x="1203" d="M611 726L1106 1456H1330L677 533L584 0H397L493 554L168 1456H372L611 726ZM892 1846H1123L817 1552H658L892 1846Z" /> -<glyph unicode="&#xde;" horiz-adv-x="1184" d="M491 1456L440 1163L678 1162Q886 1161 1004 1048T1107 746Q1096 616 1026 518T836 366T572 312L293 313L238 0H56L309 1456H491ZM414 1011L319 465L576 464Q715 464 812 540T926 744Q940 864 876 935T693 1010L414 1011Z" /> -<glyph unicode="&#xdf;" horiz-adv-x="1191" d="M211 0H30L220 1111Q238 1245 297 1348T449 1504T663 1555Q822 1551 909 1462T983 1225Q974 1130 893 1008T800 810Q791 755 818 701T918 573T1020 443T1046 326Q1036 162 920 69T631 -21Q453 -19 339 54L398 207Q504 -132 617 130Q718 130 787 179T868 315Q875 372 848 425T747 554T643 688T618 811Q623 870 651 918T711 1012T772 1105T809 1211Q819 1293 781 1347T662 1405Q557 1408 489 1333T400 1112L211 0Z" /> -<glyph unicode="&#xe0;" horiz-adv-x="1091" d="M693 0Q686 29 686 57L689 114Q540 -24 373 -20Q230 -18 141 70T59 292Q69 464 209 560T579 657L768 656L780 742Q790 839 743 895T600 954Q507 956 436 909T348 783L166 782Q175 877 240 950T407 1064T618 1103Q787 -1099 881 1001T960 739L872 203L867 126Q865 71 879 17L877 0H693ZM409 140Q496 138 573 181T707 302L746 525L609 526Q438 526 347 472T244 319Q235 243 279 193T409 140ZM774 1242H632L427 1536H632L774 1242Z" /> -<glyph unicode="&#xe1;" horiz-adv-x="1091" d="M693 0Q686 29 686 57L689 114Q540 -24 373 -20Q230 -18 141 70T59 292Q69 464 209 560T579 657L768 656L780 742Q790 839 743 895T600 954Q507 956 436 909T348 783L166 782Q175 877 240 950T407 1064T618 1103Q787 -1099 881 1001T960 739L872 203L867 126Q865 71 879 17L877 0H693ZM409 140Q496 138 573 181T707 302L746 525L609 526Q438 526 347 472T244 319Q235 243 279 193T409 140ZM804 1536H1035L729 1242H570L804 1536Z" /> -<glyph unicode="&#xe2;" horiz-adv-x="1091" d="M693 0Q686 29 686 57L689 114Q540 -24 373 -20Q230 -18 141 70T59 292Q69 464 209 560T579 657L768 656L780 742Q790 839 743 895T600 954Q507 956 436 909T348 783L166 782Q175 877 240 950T407 1064T618 1103Q787 -1099 881 1001T960 739L872 203L867 126Q865 71 879 17L877 0H693ZM409 140Q496 138 573 181T707 302L746 525L609 526Q438 526 347 472T244 319Q235 243 279 193T409 140ZM975 1264V1250L828 1252L715 1421L539 1253L386 1250V1266L664 1536H770L975 1264Z" /> -<glyph unicode="&#xe3;" horiz-adv-x="1091" d="M693 0Q686 29 686 57L689 114Q540 -24 373 -20Q230 -18 141 70T59 292Q69 464 209 560T579 657L768 656L780 742Q790 839 743 895T600 954Q507 956 436 909T348 783L166 782Q175 877 240 950T407 1064T618 1103Q787 -1099 881 1001T960 739L872 203L867 126Q865 71 879 17L877 0H693ZM409 140Q496 138 573 181T707 302L746 525L609 526Q438 526 347 472T244 319Q235 243 279 193T409 140ZM1057 1505Q1045 1394 984 1327T830 1260Q793 1260 763 1275T702 1310T641 1344T574 1358Q489 -1355 458 1246L336 1253Q348 1363 410 1433T566 1501Q593 1501 616 1493T693 1452T770 1410T822 1402Q908 1402 940 1515L1057 1505Z" /> -<glyph unicode="&#xe4;" horiz-adv-x="1091" d="M693 0Q686 29 686 57L689 114Q540 -24 373 -20Q230 -18 141 70T59 292Q69 464 209 560T579 657L768 656L780 742Q790 839 743 895T600 954Q507 956 436 909T348 783L166 782Q175 877 240 950T407 1064T618 1103Q787 -1099 881 1001T960 739L872 203L867 126Q865 71 879 17L877 0H693ZM409 140Q496 138 573 181T707 302L746 525L609 526Q438 526 347 472T244 319Q235 243 279 193T409 140ZM383 1369Q384 1415 413 1445T490 1478Q536 1479 566 1450T596 1373Q596 1327 566 1297T489 -1265Q442 1264 413 1293T383 1369ZM800 1367Q801 1413 830 1444T906 1477Q954 1478 984 1449T1013 1371Q1013 1324 983 1295T906 1263Q860 1262 830 1291T800 1367Z" /> -<glyph unicode="&#xe5;" horiz-adv-x="1091" d="M693 0Q686 29 686 57L689 114Q540 -24 373 -20Q230 -18 141 70T59 292Q69 464 209 560T579 657L768 656L780 742Q790 839 743 895T600 954Q507 956 436 909T348 783L166 782Q175 877 240 950T407 1064T618 1103Q787 -1099 881 1001T960 739L872 203L867 126Q865 71 879 17L877 0H693ZM409 140Q496 138 573 181T707 302L746 525L609 526Q438 526 347 472T244 319Q235 243 279 193T409 140ZM499 1411Q501 1502 565 1565T719 1628Q801 1628 858 1570T916 1427Q914 1338 850 1276T696 -1214Q612 1214 555 1271T499 1411ZM595 1413Q591 1367 618 1336T688 1304Q734 1304 773 1339T819 1425Q825 1471 797 1504T727 1537Q681 1537 641 1501T595 1413Z" /> -<glyph unicode="&#xe6;" horiz-adv-x="1687" d="M1136 -20Q1015 -18 923 28T779 160Q610 -24 334 -20Q188 -18 104 68T29 296Q39 456 166 546T510 636L736 635L748 721Q760 825 717 885T584 950Q480 952 408 899T321 759L142 778Q158 929 284 1017T596 1103Q705 -1101 786 1058T902 937Q1064 1106 1258 1102Q1385 1100 1472 1037T1596 864T1616 615L1598 497H896Q887 429 896 365Q909 258 973 196T1142 132Q1232 130 1310 160T1463 237L1516 100Q1378 -20 1136 -20ZM375 129Q445 127 524 163T670 257L713 495L510 496Q390 -496 307 440T212 292Q203 218 248 175T375 129ZM1248 952Q1138 955 1053 877T915 640H1437L1443 672Q1452 727 1445 777Q1434 857 1383 903T1248 952Z" /> -<glyph unicode="&#xe7;" horiz-adv-x="1050" d="M488 130Q585 128 663 186T765 340L936 341Q921 239 855 155T687 24T480 -20Q345 -18 252 50T114 241T84 517L89 567Q108 723 180 846T368 1037T624 1102Q794 1098 896 988T998 709L829 710Q827 816 770 881T616 -951Q475 954 382 846T265 544L262 518Q256 454 260 386Q267 269 326 201T488 130ZM485 -9L464 -64Q593 -93 589 -227Q586 -329 499 -386T262 -446L266 -338Q432 -332 448 -231Q460 -160 356 -148L310 -142L356 -9H485Z" /> -<glyph unicode="&#xe8;" horiz-adv-x="1062" d="M499 -20Q297 -16 183 129T87 500L92 543Q109 704 187 837T379 1037T623 1102Q790 1098 885 991T989 701Q992 636 985 571L974 488H267Q249 341 315 238T514 131Q674 127 810 275L914 187Q846 89 739 34T499 -20ZM614 -951Q502 954 419 875T286 640L812 639L816 655Q832 781 776 864T614 951ZM747 1242H605L400 1536H605L747 1242Z" /> -<glyph unicode="&#xe9;" horiz-adv-x="1062" d="M499 -20Q297 -16 183 129T87 500L92 543Q109 704 187 837T379 1037T623 1102Q790 1098 885 991T989 701Q992 636 985 571L974 488H267Q249 341 315 238T514 131Q674 127 810 275L914 187Q846 89 739 34T499 -20ZM614 -951Q502 954 419 875T286 640L812 639L816 655Q832 781 776 864T614 951ZM777 1536H1008L702 1242H543L777 1536Z" /> -<glyph unicode="&#xea;" horiz-adv-x="1062" d="M499 -20Q297 -16 183 129T87 500L92 543Q109 704 187 837T379 1037T623 1102Q790 1098 885 991T989 701Q992 636 985 571L974 488H267Q249 341 315 238T514 131Q674 127 810 275L914 187Q846 89 739 34T499 -20ZM614 -951Q502 954 419 875T286 640L812 639L816 655Q832 781 776 864T614 951ZM948 1264V1250L801 1252L688 1421L512 1253L359 1250V1266L637 1536H743L948 1264Z" /> -<glyph unicode="&#xeb;" horiz-adv-x="1062" d="M499 -20Q297 -16 183 129T87 500L92 543Q109 704 187 837T379 1037T623 1102Q790 1098 885 991T989 701Q992 636 985 571L974 488H267Q249 341 315 238T514 131Q674 127 810 275L914 187Q846 89 739 34T499 -20ZM614 -951Q502 954 419 875T286 640L812 639L816 655Q832 781 776 864T614 951ZM356 1369Q357 1415 386 1445T463 1478Q509 1479 539 1450T569 1373Q569 1327 539 1297T462 1265Q415 1264 386 1293T356 1369ZM773 1367Q774 1413 803 1444T879 1477Q927 1478 957 1449T986 -1371Q986 1324 956 1295T879 1263Q833 1262 803 1291T773 1367Z" /> -<glyph unicode="&#xec;" horiz-adv-x="501" d="M227 0H46L234 1082H415L227 0ZM711 1497H569L364 1791H569L711 1497Z" /> -<glyph unicode="&#xed;" horiz-adv-x="501" d="M227 0H46L234 1082H415L227 0ZM484 1791H715L409 1497H250L484 1791Z" /> -<glyph unicode="&#xee;" horiz-adv-x="501" d="M227 0H46L234 1082H415L227 0ZM656 1263V1249L509 1251L396 1420L220 1252L67 1249V1265L345 1535H451L656 1263Z" /> -<glyph unicode="&#xef;" horiz-adv-x="501" d="M227 0H46L234 1082H415L227 0ZM64 1368Q65 1414 94 1444T171 1477Q217 1478 247 1449T277 1372Q277 1326 247 1296T170 1264Q123 1263 94 1292T64 1368ZM481 1366Q482 1412 511 1443T587 1476Q635 1477 665 1448T694 -1370Q694 1323 664 1294T587 1262Q541 1261 511 1290T481 1366Z" /> -<glyph unicode="&#xf0;" horiz-adv-x="1174" d="M926 1299Q1103 1004 1053 633L1040 542Q1016 375 938 242T747 43T504 -21Q316 -17 204 120T111 459Q125 603 194 724T374 914T617 978Q771 974 882 863Q878 1045 772 1198L533 1050L474 1158L681 1284Q579 1370 -401 1422L471 1579Q691 1523 841 1387L1050 1517L1108 1408L926 1299ZM877 695Q821 821 651 826Q507 830 409 729T292 458Q277 319 341 226T517 129Q644 124 735 233T857 535L877 695Z" /> -<glyph unicode="&#xf1;" horiz-adv-x="1106" d="M390 1083L364 946Q510 1106 696 1102Q849 1098 922 996T976 709L858 0H677L796 712Q802 761 797 803Q780 943 632 946Q469 949 346 772L212 0H31L219 1082L390 1083ZM1048 1505Q1036 1394 975 1327T821 1260Q784 -1260 754 1275T693 1310T632 1344T565 1358Q480 1355 449 1246L327 1253Q339 1363 401 1433T557 1501Q584 1501 607 1493T684 1452T761 1410T813 1402Q899 1402 931 1515L1048 1505Z" /> -<glyph unicode="&#xf2;" horiz-adv-x="1143" d="M632 1102Q768 1100 865 1028T1008 830T1040 553L1038 531Q1019 373 944 246T750 47T489 -20Q354 -18 257 54T114 250T82 523Q97 691 173 825T368 1032T632 1102ZM264 522Q257 459 264 391Q274 273 334 203T496 -130Q586 127 662 174T790 318T857 531Q865 623 860 686Q848 807 787 877T625 951Q485 954 387 841T266 545L264 522ZM756 1242H614L409 1536H614L756 1242Z" /> -<glyph unicode="&#xf3;" horiz-adv-x="1143" d="M632 1102Q768 1100 865 1028T1008 830T1040 553L1038 531Q1019 373 944 246T750 47T489 -20Q354 -18 257 54T114 250T82 523Q97 691 173 825T368 1032T632 1102ZM264 522Q257 459 264 391Q274 273 334 203T496 -130Q586 127 662 174T790 318T857 531Q865 623 860 686Q848 807 787 877T625 951Q485 954 387 841T266 545L264 522ZM786 1536H1017L711 1242H552L786 1536Z" /> -<glyph unicode="&#xf4;" horiz-adv-x="1143" d="M632 1102Q768 1100 865 1028T1008 830T1040 553L1038 531Q1019 373 944 246T750 47T489 -20Q354 -18 257 54T114 250T82 523Q97 691 173 825T368 1032T632 1102ZM264 522Q257 459 264 391Q274 273 334 203T496 -130Q586 127 662 174T790 318T857 531Q865 623 860 686Q848 807 787 877T625 951Q485 954 387 841T266 545L264 522ZM957 1264V1250L810 1252L697 1421L521 1253L368 1250V1266L646 1536H752L957 1264Z" /> -<glyph unicode="&#xf5;" horiz-adv-x="1143" d="M632 1102Q768 1100 865 1028T1008 830T1040 553L1038 531Q1019 373 944 246T750 47T489 -20Q354 -18 257 54T114 250T82 523Q97 691 173 825T368 1032T632 1102ZM264 522Q257 459 264 391Q274 273 334 203T496 -130Q586 127 662 174T790 318T857 531Q865 623 860 686Q848 807 787 877T625 951Q485 954 387 841T266 545L264 522ZM1039 1505Q1027 1394 966 1327T812 1260Q775 1260 745 1275T684 1310T623 1344T556 1358Q471 1355 440 1246L318 1253Q330 1363 392 1433T548 -1501Q575 1501 598 1493T675 1452T752 1410T804 1402Q890 1402 922 1515L1039 1505Z" /> -<glyph unicode="&#xf6;" horiz-adv-x="1143" d="M632 1102Q768 1100 865 1028T1008 830T1040 553L1038 531Q1019 373 944 246T750 47T489 -20Q354 -18 257 54T114 250T82 523Q97 691 173 825T368 1032T632 1102ZM264 522Q257 459 264 391Q274 273 334 203T496 -130Q586 127 662 174T790 318T857 531Q865 623 860 686Q848 807 787 877T625 951Q485 954 387 841T266 545L264 522ZM365 1369Q366 1415 395 1445T472 1478Q518 1479 548 1450T578 1373Q578 1327 548 1297T471 1265Q424 1264 395 1293T365 1369ZM782 1367Q783 1413 -812 1444T888 1477Q936 1478 966 1449T995 1371Q995 1324 965 1295T888 1263Q842 1262 812 1291T782 1367Z" /> -<glyph unicode="&#xf7;" horiz-adv-x="1144" d="M1038 600H68L101 784H1070L1038 600ZM534 1095Q534 1144 564 1176T645 1211Q693 1213 725 1182T757 1101Q756 1052 725 1021T644 988T564 1016T534 1095ZM392 278Q393 327 423 359T504 394Q552 396 584 365T616 -284Q615 235 583 204T502 171T423 199T392 278Z" /> -<glyph unicode="&#xf8;" d="M638 1104Q741 1102 832 1059L934 1208L1066 1207L922 1000Q1032 870 1039 672Q1041 617 1033 531Q1014 375 935 244T735 44T473 -22Q384 -20 291 15L189 -134L57 -133L198 72Q80 196 73 401Q71 462 77 522L79 538Q115 801 270 954T638 -1104ZM249 447Q239 315 290 224L749 922Q694 951 630 953Q473 957 369 820T249 447ZM863 701Q860 775 829 844L373 152Q423 129 480 127Q620 124 720 234T852 531Q865 626 863 701Z" /> -<glyph unicode="&#xf9;" horiz-adv-x="1105" d="M718 107Q591 -24 395 -20Q240 -16 166 91T110 383L226 1082H407L290 380Q285 336 288 294Q293 222 331 181T437 137Q631 131 737 294L873 1082H1054L866 0H695L718 107ZM760 1242H618L413 1536H618L760 1242Z" /> -<glyph unicode="&#xfa;" horiz-adv-x="1105" d="M718 107Q591 -24 395 -20Q240 -16 166 91T110 383L226 1082H407L290 380Q285 336 288 294Q293 222 331 181T437 137Q631 131 737 294L873 1082H1054L866 0H695L718 107ZM790 1536H1021L715 1242H556L790 1536Z" /> -<glyph unicode="&#xfb;" horiz-adv-x="1105" d="M718 107Q591 -24 395 -20Q240 -16 166 91T110 383L226 1082H407L290 380Q285 336 288 294Q293 222 331 181T437 137Q631 131 737 294L873 1082H1054L866 0H695L718 107ZM961 1264V1250L814 1252L701 1421L525 1253L372 -1250V1266L650 1536H756L961 1264Z" /> -<glyph unicode="&#xfc;" horiz-adv-x="1105" d="M718 107Q591 -24 395 -20Q240 -16 166 91T110 383L226 1082H407L290 380Q285 336 288 294Q293 222 331 181T437 137Q631 131 737 294L873 1082H1054L866 0H695L718 107ZM369 1369Q370 1415 399 1445T476 1478Q522 -1479 552 1450T582 1373Q582 1327 552 1297T475 1265Q428 1264 399 1293T369 1369ZM786 1367Q787 1413 816 1444T892 1477Q940 1478 970 1449T999 1371Q999 1324 969 1295T892 1263Q846 1262 816 1291T786 1367Z" /> -<glyph unicode="&#xfd;" horiz-adv-x="950" d="M419 273L804 1082H1004L362 -180Q228 -443 18 -440Q-19 -439 -91 -422L-75 -272L-28 -277Q58 -281 120 -239T231 -101L296 23L109 1082H298L419 273ZM733 1536H964L658 1242H499L733 1536Z" /> -<glyph unicode="&#xfe;" horiz-adv-x="1155" d="M1020 536Q1000 370 930 237T759 40T533 -22Q347 -18 246 106L149 -416H-32L307 1536H487L381 969Q512 1106 693 1102Q851 1098 937 984T1027 681Q1028 620 1020 536ZM842 558L847 642Q847 787 791 865T631 945Q471 -949 359 797L269 278Q330 135 487 130Q624 127 718 236T842 558Z" /> -<glyph unicode="&#xff;" horiz-adv-x="950" d="M419 273L804 1082H1004L362 -180Q228 -443 18 -440Q-19 -439 -91 -422L-75 -272L-28 -277Q58 -281 120 -239T231 -101L296 23L109 1082H298L419 273ZM312 1369Q313 1415 342 1445T419 1478Q465 1479 495 1450T525 -1373Q525 1327 495 1297T418 1265Q371 1264 342 1293T312 1369ZM729 1367Q730 1413 759 1444T835 1477Q883 1478 913 1449T942 1371Q942 1324 912 1295T835 1263Q789 1262 759 1291T729 1367Z" /> -<glyph unicode="&#x2013;" horiz-adv-x="1314" d="M1396 651H423L456 802H1429L1396 651Z" /> -<glyph unicode="&#x2014;" horiz-adv-x="1561" d="M1707 651H410L453 802H1750L1707 651Z" /> -<glyph unicode="&#x2018;" horiz-adv-x="407" d="M417 1555L517 1481Q405 1341 378 1207L354 1073H174L192 1185Q228 1407 417 1555Z" /> -<glyph unicode="&#x2019;" horiz-adv-x="407" d="M237 1046L137 1120Q255 1267 279 1405L302 1536H480L461 1415Q425 1190 237 1046Z" /> -<glyph unicode="&#x201a;" horiz-adv-x="405" d="M-5 -283L-104 -208Q11 -64 35 75L53 181H234L219 85Q184 -135 -5 -283Z" /> -<glyph unicode="&#x201c;" horiz-adv-x="712" d="M425 1555L525 1481Q413 1341 386 1207L362 1073H182L200 1185Q236 1407 425 1555ZM730 1555L830 1481Q718 1341 691 1207L667 1073H487L505 1185Q541 1407 730 1555Z" /> -<glyph unicode="&#x201d;" horiz-adv-x="719" d="M249 1046L149 1120Q267 1267 291 1405L314 1536H492L473 1415Q437 1190 249 1046ZM546 1046L446 1120Q564 1267 588 1405L611 1536H789L770 1415Q734 1190 546 1046Z" /> -<glyph unicode="&#x201e;" horiz-adv-x="694" d="M-4 -302L-108 -227Q8 -76 35 75L65 246H245L220 90Q181 -151 -4 -302ZM283 -302L180 -227Q296 -73 322 75L352 246H533L508 90Q469 -150 283 -302Z" /> -<glyph unicode="&#x2022;" horiz-adv-x="679" d="M161 765Q167 859 225 915T370 972Q451 972 503 918T556 775L554 733Q548 643 492 588T345 533Q263 533 212 586T160 724L161 765Z" /> -<glyph unicode="&#x2039;" horiz-adv-x="606" d="M267 540L445 153H320L95 540L97 560L444 949H596L267 540Z" /> -<glyph unicode="&#x203a;" horiz-adv-x="606" d="M278 949L503 562L501 541L154 152H2L330 560L153 949H278Z" /> -</font> -</defs> -</svg> diff --git a/fonts/roboto-v18-latin-ext-italic.ttf b/fonts/roboto-v18-latin-ext-italic.ttf deleted file mode 100644 index 9fbbef7..0000000 Binary files a/fonts/roboto-v18-latin-ext-italic.ttf and /dev/null differ diff --git a/fonts/roboto-v18-latin-ext-italic.woff b/fonts/roboto-v18-latin-ext-italic.woff deleted file mode 100644 index 1594ec0..0000000 Binary files a/fonts/roboto-v18-latin-ext-italic.woff and /dev/null differ diff --git a/fonts/roboto-v18-latin-ext-italic.woff2 b/fonts/roboto-v18-latin-ext-italic.woff2 deleted file mode 100644 index 904092d..0000000 Binary files a/fonts/roboto-v18-latin-ext-italic.woff2 and /dev/null differ diff --git a/fonts/roboto-v18-latin-ext-regular.eot b/fonts/roboto-v18-latin-ext-regular.eot deleted file mode 100644 index 748c0e6..0000000 Binary files a/fonts/roboto-v18-latin-ext-regular.eot and /dev/null differ diff --git a/fonts/roboto-v18-latin-ext-regular.svg b/fonts/roboto-v18-latin-ext-regular.svg deleted file mode 100644 index 627f5a3..0000000 --- a/fonts/roboto-v18-latin-ext-regular.svg +++ /dev/null @@ -1,308 +0,0 @@ -<?xml version="1.0" standalone="no"?> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg xmlns="http://www.w3.org/2000/svg"> -<defs > -<font id="Roboto" horiz-adv-x="1158" ><font-face - font-family="Roboto" - units-per-em="2048" - panose-1="2 0 0 0 0 0 0 0 0 0" - ascent="1900" - descent="-500" - alphabetic="0" /> -<glyph unicode=" " horiz-adv-x="507" /> -<glyph unicode="!" horiz-adv-x="527" d="M347 411H180L167 1456H361L347 411ZM160 93Q160 138 187 168T269 199T351 169T379 93T351 19T269 -11T188 18T160 93Z" /> -<glyph unicode="&quot;" horiz-adv-x="655" d="M277 1400L247 1042H136L137 1536H277V1400ZM547 1400L517 1042H406L407 1536H547V1400Z" /> -<glyph unicode="#" horiz-adv-x="1261" d="M765 410H501L421 0H278L358 410H119V547H384L453 901H195V1040H480L562 1456H705L623 1040H887L969 1456H1113L1031 1040H1235V901H1004L935 547H1160V410H909L829 0H685L765 410ZM527 547H791L860 901H596L527 547Z" /> -<glyph unicode="$" horiz-adv-x="1150" d="M856 375Q856 467 792 530T574 644Q361 709 264 813T166 1079Q166 1243 261 1348T524 1473V1692H673V1472Q841 1449 934 1331T1028 1008H844Q844 1149 777 1232T596 1315Q477 1315 414 1254T351 1082Q351 980 417 920T636 -810T874 701T1000 562T1041 377Q1041 208 940 105T655 -17V-208H507V-17Q321 0 216 115T110 429H295Q295 290 368 215T575 140Q706 140 781 203T856 375Z" /> -<glyph unicode="%" horiz-adv-x="1500" d="M105 1176Q105 1307 188 1392T403 1477Q536 1477 618 1392T701 1170V1099Q701 967 618 884T405 800Q275 800 190 883T105 1106V1176ZM243 1099Q243 1021 287 971T405 920Q476 920 519 969T563 1103V1176Q563 1254 520 -1305T403 1356T286 1305T243 1172V1099ZM814 357Q814 488 897 572T1112 657T1327 573T1411 350V279Q1411 148 1328 64T1114 -21T899 62T814 285V357ZM952 279Q952 200 996 150T1114 99Q1186 99 1229 148T1272 283V357Q1272 436 1229 486T1112 536Q1041 536 997 -487T952 353V279ZM447 110L342 176L1053 1314L1158 1248L447 110Z" /> -<glyph unicode="&amp;" horiz-adv-x="1273" d="M101 391Q101 496 159 584T383 789Q286 907 253 979T220 1122Q220 1288 318 1382T584 1476Q734 1476 832 1389T930 1168Q930 1080 886 1006T730 849L623 770L947 383Q1015 513 1015 672H1182Q1182 417 1059 249L1267 -0H1045L948 115Q874 49 775 15T572 -20Q359 -20 230 93T101 391ZM572 131Q719 131 841 243L486 668L453 644Q286 521 286 391Q286 273 362 202T572 131ZM405 1128Q405 1032 523 888L641 971Q709 1019 734 1062T759 1168Q759 1235 709 1279T583 1324Q501 1324 453 -1269T405 1128Z" /> -<glyph unicode="&apos;" horiz-adv-x="357" d="M253 1425L232 1057H103L104 1536H253V1425Z" /> -<glyph unicode="(" horiz-adv-x="700" d="M133 591Q133 817 193 1025T374 1403T623 1643L661 1521Q515 1409 422 1179T319 664L318 579Q318 193 459 -91Q544 -261 661 -357L623 -470Q490 -396 369 -222Q133 118 133 591Z" /> -<glyph unicode=")" horiz-adv-x="712" d="M567 581Q567 358 509 154T330 -224T77 -470L38 -357Q192 -239 285 9T381 561V593Q381 803 337 983T215 1307T38 1530L77 1643Q209 1570 328 1399T507 1022T567 581Z" /> -<glyph unicode="*" horiz-adv-x="882" d="M330 983L28 1073L74 1224L376 1112L367 1456H520L510 1107L807 1217L853 1065L546 974L744 703L620 609L434 897L254 616L129 707L330 983Z" /> -<glyph unicode="+" horiz-adv-x="1161" d="M670 781H1076V606H670V146H484V606H78V781H484V1206H670V781Z" /> -<glyph unicode="," horiz-adv-x="402" d="M134 -290L29 -218Q123 -87 127 52V219H308V74Q308 -27 259 -128T134 -290Z" /> -<glyph unicode="-" horiz-adv-x="565" d="M525 543H37V694H525V543Z" /> -<glyph unicode="." horiz-adv-x="539" d="M144 97Q144 145 172 177T258 209T344 177T374 97Q374 51 345 20T258 -11T173 20T144 97Z" /> -<glyph unicode="/" horiz-adv-x="844" d="M177 -125H18L626 1456H784L177 -125Z" /> -<glyph unicode="0" horiz-adv-x="1150" d="M1034 621Q1034 296 923 138T576 -20Q343 -20 231 134T115 596V843Q115 1164 226 1320T574 1476Q809 1476 920 1326T1034 861V621ZM849 874Q849 1109 783 1216T574 1324Q432 1324 367 1217T300 888V592Q300 356 368 244T576 -131Q713 131 779 237T849 571V874Z" /> -<glyph unicode="1" horiz-adv-x="1150" d="M729 0H543V1233L170 1096V1264L700 1463H729V0Z" /> -<glyph unicode="2" horiz-adv-x="1150" d="M1075 0H121V133L625 693Q737 820 779 899T822 1064Q822 1178 753 1251T569 1324Q431 1324 355 1246T278 1027H93Q93 1228 222 1352T569 1476Q772 1476 890 1370T1008 1086Q1008 871 734 574L344 151H1075V0Z" /> -<glyph unicode="3" horiz-adv-x="1150" d="M390 818H529Q660 820 735 887T810 1068Q810 1324 555 1324Q435 1324 364 1256T292 1074H107Q107 1247 233 1361T555 1476Q761 1476 878 1367T995 1064Q995 969 934 880T766 747Q886 709 951 621T1017 406Q1017 210 889 -95T556 -20T223 91T94 384H280Q280 269 355 200T556 131Q690 131 761 201T832 402Q832 529 754 597T529 667H390V818Z" /> -<glyph unicode="4" horiz-adv-x="1150" d="M902 489H1104V338H902V0H716V338H53V447L705 1456H902V489ZM263 489H716V1203L694 1163L263 489Z" /> -<glyph unicode="5" horiz-adv-x="1150" d="M206 730L280 1456H1026V1285H437L393 888Q500 951 636 951Q835 951 952 820T1069 464Q1069 239 948 110T608 -20Q415 -20 293 87T154 383H329Q346 258 418 195T608 131Q737 131 810 219T884 462Q884 608 805 696T593 -785Q472 785 403 732L354 692L206 730Z" /> -<glyph unicode="6" horiz-adv-x="1150" d="M847 1457V1300H813Q597 1296 469 1172T321 823Q436 955 635 955Q825 955 938 821T1052 475Q1052 250 930 115T601 -20Q392 -20 262 140T132 554V625Q132 1027 303 1239T814 1457H847ZM604 801Q509 801 429 744T318 601V533Q318 -353 399 243T601 133Q726 133 797 225T869 466Q869 616 797 708T604 801Z" /> -<glyph unicode="7" horiz-adv-x="1150" d="M1061 1352L458 0H264L865 1304H77V1456H1061V1352Z" /> -<glyph unicode="8" horiz-adv-x="1150" d="M1004 1076Q1004 967 947 882T791 749Q905 700 971 606T1038 393Q1038 204 911 92T575 -20Q365 -20 239 92T112 393Q112 511 176 606T355 750Q258 798 202 883T146 1076Q146 1260 264 1368T575 1476Q767 1476 885 1368T1004 -1076ZM853 397Q853 519 776 596T573 673T373 597T297 397T370 202T575 131Q705 131 779 202T853 397ZM575 1324Q466 1324 399 1257T331 1073Q331 962 397 894T575 825T752 893T819 1073T750 1254T575 1324Z" /> -<glyph unicode="9" horiz-adv-x="1150" d="M830 640Q772 571 692 529T515 487Q389 487 296 549T151 723T100 972Q100 1118 155 1235T313 1414T551 1476Q767 1476 891 1315T1016 874V820Q1016 395 848 200T341 -1H305V155H344Q573 159 696 274T830 640ZM545 640Q638 -640 716 697T831 838V912Q831 1094 752 1208T552 1322Q430 1322 356 1229T282 982Q282 833 353 737T545 640Z" /> -<glyph unicode=":" horiz-adv-x="496" d="M390 97Q390 145 418 177T504 209T590 177T620 97Q620 51 591 20T504 -11T419 20T390 97ZM135 980Q135 1028 163 1060T249 1092T335 1060T365 980Q365 934 336 903T249 872T164 903T135 980Z" /> -<glyph unicode=";" horiz-adv-x="433" d="M111 980Q111 1028 139 1060T225 1092T311 1060T341 980Q341 934 312 903T225 872T140 903T111 980ZM146 -290L41 -218Q135 -87 139 52V219H320V74Q320 -27 271 -128T146 -290Z" /> -<glyph unicode="&lt;" horiz-adv-x="1041" d="M264 644L890 391V195L72 574V720L890 1098V902L264 644Z" /> -<glyph unicode="=" horiz-adv-x="1124" d="M986 814H152V975H986V814ZM986 399H152V559H986V399Z" /> -<glyph unicode="&gt;" horiz-adv-x="1070" d="M795 650L134 909V1099L988 721V575L134 196V388L795 650Z" /> -<glyph unicode="?" horiz-adv-x="967" d="M357 410Q359 529 384 598T486 751L617 886Q701 981 701 1090Q701 1195 646 1254T486 1314Q384 1314 322 1260T260 1115H75Q77 1277 190 1376T486 1476Q675 1476 780 1375T886 1096Q886 921 724 751L615 643Q542 562 542 -410H357ZM349 93Q349 138 376 168T458 199T540 169T568 93T540 19T458 -11T377 18T349 93Z" /> -<glyph unicode="@" horiz-adv-x="1839" d="M1738 502Q1726 260 1618 120T1329 -20Q1142 -20 1089 148Q1035 63 966 22T822 -20Q680 -20 607 96T553 417Q568 582 628 711T784 915T985 989Q1066 989 1130 968T1274 883L1222 329Q1203 98 1350 98Q1463 98 1533 210T1609 -502Q1628 891 1465 1095T967 1299Q766 1299 610 1200T364 912T263 478Q251 230 323 48T542 -231T899 -328Q989 -328 1079 -306T1230 -249L1267 -364Q1205 -403 1103 -428T895 -453Q645 -453 465 -341T196 -17T118 478Q130 753 241 972T542 1311T971 1431Q1220 1431 -1398 1319T1663 996T1738 502ZM712 417Q698 275 738 199T867 123Q927 123 982 174T1074 320L1075 329L1121 832Q1065 861 1001 861Q884 861 808 742T712 417Z" /> -<glyph unicode="A" horiz-adv-x="1336" d="M973 380H363L226 0H28L584 1456H752L1309 0H1112L973 380ZM421 538H916L668 1219L421 538Z" /> -<glyph unicode="B" horiz-adv-x="1275" d="M169 0V1456H645Q882 1456 1001 1358T1121 1068Q1121 966 1063 888T905 766Q1023 733 1091 641T1160 420Q1160 224 1033 112T674 0H169ZM361 681V157H678Q812 157 889 226T967 418Q967 681 681 681H361ZM361 835H651Q777 -835 852 898T928 1069Q928 1189 858 1243T645 1298H361V835Z" /> -<glyph unicode="C" horiz-adv-x="1333" d="M1240 462Q1213 231 1070 106T688 -20Q430 -20 275 165T119 660V800Q119 1003 191 1157T397 1393T705 1476Q937 1476 1077 1347T1240 988H1047Q1022 1162 939 1240T705 1318Q521 1318 417 1182T312 795V654Q312 417 411 -277T688 137Q848 137 933 209T1047 462H1240Z" /> -<glyph unicode="D" horiz-adv-x="1343" d="M169 0V1456H580Q770 1456 916 1372T1141 1133T1222 777V684Q1222 478 1143 323T916 85T572 0H169ZM361 1298V157H563Q785 157 908 295T1032 688V773Q1032 1021 916 1158T585 1298H361Z" /> -<glyph unicode="E" horiz-adv-x="1164" d="M992 673H361V157H1094V0H169V1456H1084V1298H361V830H992V673Z" /> -<glyph unicode="F" horiz-adv-x="1132" d="M972 643H361V0H169V1456H1071V1298H361V800H972V643Z" /> -<glyph unicode="G" horiz-adv-x="1395" d="M1244 191Q1170 85 1038 33T729 -20Q551 -20 413 63T200 301T122 658V785Q122 1114 275 1295T707 1476Q935 1476 1074 1360T1244 1029H1052Q998 1318 708 1318Q515 1318 416 1183T315 790V671Q315 426 427 282T730 137Q838 -137 919 161T1053 242V569H716V725H1244V191Z" /> -<glyph unicode="H" horiz-adv-x="1460" d="M1288 0H1095V673H361V0H169V1456H361V830H1095V1456H1288V0Z" /> -<glyph unicode="I" horiz-adv-x="557" d="M375 0H183V1456H375V0Z" /> -<glyph unicode="J" horiz-adv-x="1130" d="M779 1456H972V425Q972 216 847 98T512 -20Q295 -20 174 91T53 402H245Q245 277 313 207T512 137Q631 137 704 212T779 422V1456Z" /> -<glyph unicode="K" horiz-adv-x="1284" d="M539 677L361 492V0H169V1456H361V736L1008 1456H1240L667 813L1285 0H1055L539 677Z" /> -<glyph unicode="L" horiz-adv-x="1102" d="M362 157H1052V0H169V1456H362V157Z" /> -<glyph unicode="M" horiz-adv-x="1788" d="M417 1456L893 268L1369 1456H1618V0H1426V567L1444 1179L966 0H819L342 1176L361 567V0H169V1456H417Z" /> -<glyph unicode="N" horiz-adv-x="1460" d="M1288 0H1095L362 1122V0H169V1456H362L1097 329V1456H1288V0Z" /> -<glyph unicode="O" horiz-adv-x="1408" d="M1289 681Q1289 467 1217 308T1013 64T705 -20Q533 -20 400 64T194 305T118 668V773Q118 983 191 1144T397 1390T703 1476Q878 1476 1011 1392T1217 1147T1289 773V681ZM1098 775Q1098 1034 994 1172T703 1311Q521 1311 -417 1173T309 788V681Q309 430 414 287T705 143Q891 143 993 278T1098 667V775Z" /> -<glyph unicode="P" horiz-adv-x="1292" d="M361 570V0H169V1456H706Q945 1456 1080 1334T1216 1011Q1216 799 1084 685T704 570H361ZM361 727H706Q860 727 942 799T1024 1009Q1024 1139 942 1217T717 1298H361V727Z" /> -<glyph unicode="Q" horiz-adv-x="1408" d="M1281 681Q1281 470 1214 318T1026 79L1286 -125L1155 -246L848 -2Q776 -20 696 -20Q524 -20 391 64T185 305T109 668V773Q109 983 182 1144T388 1390T694 1476Q870 1476 1003 1391T1209 1147T1281 774V681ZM1089 775Q1089 -1032 987 1171T694 1311Q513 1311 409 1173T301 788V681Q301 431 405 287T696 143T984 278T1089 667V775Z" /> -<glyph unicode="R" horiz-adv-x="1261" d="M703 589H361V0H168V1456H650Q896 1456 1028 1344T1161 1018Q1161 882 1088 781T883 630L1225 12V0H1019L703 589ZM361 746H656Q799 746 883 820T968 1018Q968 1153 888 1225T655 1298H361V746Z" /> -<glyph unicode="S" horiz-adv-x="1215" d="M598 649Q351 720 239 823T126 1079Q126 1251 263 1363T621 1476Q771 1476 888 1418T1070 1258T1135 1035H942Q942 1167 858 1242T621 1318Q479 1318 400 1256T320 1082Q320 993 395 932T652 819T936 707T1088 563T1138 -370Q1138 193 1000 87T631 -20Q481 -20 351 37T151 195T80 422H273Q273 290 370 214T631 137Q783 137 864 199T945 368T870 533T598 649Z" /> -<glyph unicode="T" horiz-adv-x="1222" d="M1175 1298H707V0H516V1298H49V1456H1175V1298Z" /> -<glyph unicode="U" horiz-adv-x="1328" d="M1194 1456V466Q1193 260 1065 129T716 -18L665 -20Q426 -20 284 109T140 464V1456H330V470Q330 312 417 225T665 137Q828 137 914 224T1001 469V1456H1194Z" /> -<glyph unicode="V" horiz-adv-x="1303" d="M651 255L1067 1456H1277L737 0H567L28 1456H237L651 255Z" /> -<glyph unicode="W" horiz-adv-x="1817" d="M483 459L511 267L552 440L840 1456H1002L1283 440L1323 264L1354 460L1580 1456H1773L1420 0H1245L945 1061L922 1172L899 1061L588 0H413L61 1456H253L483 459Z" /> -<glyph unicode="X" horiz-adv-x="1284" d="M644 898L993 1456H1219L759 734L1230 0H1002L644 568L284 0H57L529 734L68 1456H293L644 898Z" /> -<glyph unicode="Y" horiz-adv-x="1230" d="M613 725L993 1456H1211L709 543V0H517V543L15 1456H235L613 725Z" /> -<glyph unicode="Z" horiz-adv-x="1226" d="M313 157H1146V0H86V144L884 1298H99V1456H1114V1315L313 157Z" /> -<glyph unicode="[" horiz-adv-x="543" d="M523 1512H332V-160H523V-312H146V1664H523V1512Z" /> -<glyph unicode="\" horiz-adv-x="840" d="M40 1456H216L824 -125H648L40 1456Z" /> -<glyph unicode="]" horiz-adv-x="543" d="M9 1664H387V-312H9V-160H202V1512H9V1664Z" /> -<glyph unicode="^" horiz-adv-x="856" d="M426 1211L236 729H64L363 1456H490L788 729H617L426 1211Z" /> -<glyph unicode="_" horiz-adv-x="924" d="M920 -151H4V0H920V-151Z" /> -<glyph unicode="`" horiz-adv-x="633" d="M474 1242H315L57 1536H280L474 1242Z" /> -<glyph unicode="a" horiz-adv-x="1114" d="M808 0Q792 32 782 114Q653 -20 474 -20Q314 -20 212 70T109 300Q109 469 237 562T599 656H779V741Q779 838 721 895T550 953Q451 953 384 903T317 782H131Q131 863 188 938T344 1058T561 1102Q748 1102 854 1009T964 -751V253Q964 104 1002 16V0H808ZM501 141Q588 141 666 186T779 303V525H634Q294 525 294 326Q294 239 352 190T501 141Z" /> -<glyph unicode="b" horiz-adv-x="1149" d="M1056 529Q1056 281 942 131T636 -20Q431 -20 319 125L310 0H140V1536H325V963Q437 1102 634 1102T943 953T1056 545V529ZM871 550Q871 739 798 842T588 945Q405 945 325 775V307Q410 137 590 137Q723 137 797 240T871 550Z" /> -<glyph unicode="c" horiz-adv-x="1072" d="M574 131Q673 131 747 191T829 341H1004Q999 248 940 164T783 30T574 -20Q353 -20 223 127T92 531V562Q92 720 150 843T316 1034T573 1102Q755 1102 875 993T1004 710H829Q821 815 750 882T573 950Q432 950 355 849T277 -555V520Q277 333 354 232T574 131Z" /> -<glyph unicode="d" horiz-adv-x="1155" d="M95 550Q95 799 213 950T522 1102Q712 1102 823 972V1536H1008V0H838L829 116Q718 -20 520 -20Q332 -20 214 134T95 536V550ZM280 529Q280 345 356 241T566 137Q742 137 823 295V792Q740 945 568 945Q432 945 356 840T280 529Z" /> -<glyph unicode="e" horiz-adv-x="1085" d="M589 -20Q369 -20 231 124T93 511V545Q93 706 154 832T326 1030T566 1102Q777 1102 894 963T1011 565V488H278Q282 328 371 230T599 131Q697 131 765 171T884 277L997 189Q861 -20 589 -20ZM566 950Q454 950 378 869T284 -640H826V654Q818 795 750 872T566 950Z" /> -<glyph unicode="f" horiz-adv-x="711" d="M231 0V939H60V1082H231V1193Q231 1367 324 1462T587 1557Q651 1557 714 1540L704 1390Q657 1399 604 1399Q514 1399 465 1347T416 1196V1082H647V939H416V0H231Z" /> -<glyph unicode="g" horiz-adv-x="1149" d="M96 550Q96 803 213 952T523 1102Q721 1102 832 962L841 1082H1010V26Q1010 -184 886 -305T551 -426Q434 -426 322 -376T151 -239L247 -128Q366 -275 538 -275Q673 -275 748 -199T824 15V108Q713 -20 521 -20Q331 -20 -214 133T96 550ZM282 529Q282 346 357 242T567 137Q742 137 824 296V790Q739 945 569 945Q434 945 358 840T282 529Z" /> -<glyph unicode="h" horiz-adv-x="1128" d="M325 951Q448 1102 645 1102Q988 1102 991 715V0H806V716Q805 833 753 889T589 945Q499 945 431 897T325 771V0H140V1536H325V951Z" /> -<glyph unicode="i" horiz-adv-x="497" d="M341 0H156V1082H341V0ZM141 1369Q141 1414 168 1445T250 1476T332 1445T360 1369T332 1294T250 1264T169 1294T141 1369Z" /> -<glyph unicode="j" horiz-adv-x="489" d="M331 1082V-125Q331 -437 48 -437Q-13 -437 -65 -419V-271Q-33 -279 19 -279Q81 -279 113 -246T146 -129V1082H331ZM127 1369Q127 1413 154 1444T235 1476Q289 1476 317 1445T345 1369T317 1294T235 1264T154 1294T127 1369Z" /> -<glyph unicode="k" horiz-adv-x="1038" d="M442 501L326 380V0H141V1536H326V607L425 726L762 1082H987L566 630L1036 0H819L442 501Z" /> -<glyph unicode="l" horiz-adv-x="497" d="M341 0H156V1536H341V0Z" /> -<glyph unicode="m" horiz-adv-x="1795" d="M314 1082L319 962Q438 1102 640 1102Q867 1102 949 928Q1003 1006 1089 1054T1294 1102Q1650 1102 1656 725V0H1471V714Q1471 830 1418 887T1240 945Q1137 945 1069 884T990 718V0H804V709Q804 945 573 945Q391 945 -324 790V0H139V1082H314Z" /> -<glyph unicode="n" horiz-adv-x="1130" d="M315 1082L321 946Q445 1102 645 1102Q988 1102 991 715V0H806V716Q805 833 753 889T589 945Q499 945 431 897T325 771V0H140V1082H315Z" /> -<glyph unicode="o" horiz-adv-x="1168" d="M91 551Q91 710 153 837T327 1033T582 1102Q803 1102 939 949T1076 542V529Q1076 371 1016 246T843 50T584 -20Q364 -20 228 133T91 538V551ZM277 529Q277 349 360 240T584 131Q725 131 808 241T891 551Q891 729 807 -839T582 950Q445 950 361 841T277 529Z" /> -<glyph unicode="p" horiz-adv-x="1149" d="M1054 529Q1054 282 941 131T635 -20Q438 -20 325 105V-416H140V1082H309L318 962Q431 1102 632 1102Q827 1102 940 955T1054 546V529ZM869 550Q869 733 791 839T577 945Q409 945 325 796V279Q408 131 579 131Q712 131 -790 236T869 550Z" /> -<glyph unicode="q" horiz-adv-x="1164" d="M95 550Q95 805 212 953T526 1102Q718 1102 829 973L837 1082H1007V-416H822V100Q710 -20 524 -20Q328 -20 212 132T95 537V550ZM280 529Q280 343 358 237T570 131Q735 131 822 277V807Q734 950 572 950Q438 950 359 -844T280 529Z" /> -<glyph unicode="r" horiz-adv-x="693" d="M663 916Q621 923 572 923Q390 923 325 768V0H140V1082H320L323 957Q414 1102 581 1102Q635 1102 663 1088V916Z" /> -<glyph unicode="s" horiz-adv-x="1056" d="M770 287Q770 362 714 403T517 475T294 547T172 647T132 785Q132 918 244 1010T532 1102Q716 1102 830 1007T945 764H759Q759 840 695 895T532 950Q431 950 374 906T317 791Q317 724 370 690T561 625T786 551T913 448T955 -300Q955 155 839 68T538 -20Q408 -20 308 26T152 154T95 333H280Q285 240 354 186T538 131Q643 131 706 173T770 287Z" /> -<glyph unicode="t" horiz-adv-x="669" d="M391 1344V1082H593V939H391V268Q391 203 418 171T510 138Q542 138 598 150V0Q525 -20 456 -20Q332 -20 269 55T206 268V939H9V1082H206V1344H391Z" /> -<glyph unicode="u" horiz-adv-x="1129" d="M808 107Q700 -20 491 -20Q318 -20 228 80T136 378V1082H321V383Q321 137 521 137Q733 137 803 295V1082H988V0H812L808 107Z" /> -<glyph unicode="v" horiz-adv-x="992" d="M497 251L765 1082H954L566 0H425L33 1082H222L497 251Z" /> -<glyph unicode="w" horiz-adv-x="1539" d="M1098 255L1306 1082H1491L1176 0H1026L763 820L507 0H357L43 1082H227L440 272L692 1082H841L1098 255Z" /> -<glyph unicode="x" horiz-adv-x="1015" d="M503 687L743 1082H959L605 547L970 0H756L506 405L256 0H41L406 547L52 1082H266L503 687Z" /> -<glyph unicode="y" horiz-adv-x="969" d="M494 271L746 1082H944L509 -167Q408 -437 188 -437L153 -434L84 -421V-271L134 -275Q228 -275 280 -237T367 -98L408 12L22 1082H224L494 271Z" /> -<glyph unicode="z" horiz-adv-x="1015" d="M314 151H947V0H88V136L685 929H97V1082H917V951L314 151Z" /> -<glyph unicode="{" horiz-adv-x="693" d="M632 -366Q455 -316 366 -202T276 101V300Q276 543 64 543V688Q276 688 276 930V1138Q278 1321 365 1433T632 1597L670 1482Q461 1415 461 1133V931Q461 704 294 615Q461 525 461 296V90Q464 -185 670 -251L632 -366Z" /> -<glyph unicode="|" horiz-adv-x="499" d="M324 -270H175V1456H324V-270Z" /> -<glyph unicode="}" horiz-adv-x="693" d="M19 -251Q222 -186 229 80V300Q229 531 410 615Q229 697 229 930V1133Q229 1415 20 1482L58 1597Q235 1547 324 1435T414 1137V927Q414 688 626 688V543Q414 543 414 300V98Q414 -90 324 -203T58 -366L19 -251Z" /> -<glyph unicode="~" horiz-adv-x="1393" d="M1263 777Q1263 619 1170 511T939 402Q867 402 803 428T655 529T533 621T454 639Q376 639 334 586T292 438L131 436Q131 596 223 699T454 802Q530 802 600 770T758 658T910 567L939 565Q1015 565 1062 623T1110 776L1263 777Z" /> -<glyph unicode="&#xa0;" horiz-adv-x="507" /> -<glyph unicode="&#xa1;" horiz-adv-x="499" d="M170 684H338L351 -360H157L170 684ZM358 996Q358 951 331 920T249 889T167 920T139 996T167 1071T249 1101T330 1071T358 996Z" /> -<glyph unicode="&#xa2;" horiz-adv-x="1120" d="M586 131Q686 131 760 191T842 341H1017Q1011 215 912 115T669 -12V-245H484V-11Q305 23 205 165T105 527V562Q105 774 206 916T484 1092V1318H669V1095Q819 1072 915 966T1017 710H842Q834 815 763 882T586 950Q445 -950 368 849T290 555V520Q290 333 367 232T586 131Z" /> -<glyph unicode="&#xa3;" horiz-adv-x="1190" d="M449 622L457 402Q457 248 395 157H1128L1127 0H95V157H172Q212 166 237 231T264 393V401L256 622H91V779H251L242 1039Q242 1238 364 1357T687 1476Q877 1476 988 1370T1099 1087H908Q908 1194 845 1256T670 1318Q565 -1318 500 1241T435 1039L444 779H763V622H449Z" /> -<glyph unicode="&#xa4;" horiz-adv-x="1460" d="M1103 112Q944 -20 735 -20Q528 -20 369 110L235 -26L105 109L244 250Q140 406 140 608Q140 814 252 977L105 1128L235 1264L382 1114Q540 1234 735 1234Q931 1234 1090 1113L1239 1265L1371 1128L1220 974Q1330 -811 1330 608Q1330 412 1228 253L1371 109L1239 -27L1103 112ZM311 608Q311 485 368 379T524 212T735 151T946 212T1100 379T1157 608Q1157 730 1101 835T946 1001T735 1062Q622 1062 524 1002T369 836T311 608Z" /> -<glyph unicode="&#xa5;" horiz-adv-x="1075" d="M539 793L847 1456H1060L693 736H954V611H630V446H954V322H630V0H437V322H119V446H437V611H119V736H382L15 1456H231L539 793Z" /> -<glyph unicode="&#xa6;" horiz-adv-x="491" d="M147 -270V521H333V-270H147ZM333 698H147V1456H333V698Z" /> -<glyph unicode="&#xa7;" horiz-adv-x="1256" d="M1145 431Q1145 242 959 157Q1028 108 1064 40T1100 -128Q1100 -296 970 -395T612 -495Q500 -495 400 -467T229 -382Q90 -269 90 -64L276 -62Q276 -192 366 -267T612 -343Q748 -343 831 -285T914 -130Q914 -41 843 -11T563 126Q381 174 285 229T143 362T96 551Q96 737 278 825Q212 874 177 942T141 1110Q141 1276 274 1376T630 1476Q862 1476 992 1363T1122 1045H937Q937 1170 853 1247T630 1325Q488 1325 408 1268T327 1112Q327 1043 355 1003T450 931T661 858T889 782T1030 -698T1116 585T1145 431ZM602 691Q512 715 437 742Q357 723 320 673T282 553Q282 483 309 443T402 370T611 296T797 238Q875 258 917 308T959 428Q959 516 890 570T602 691Z" /> -<glyph unicode="&#xa8;" horiz-adv-x="856" d="M101 1371Q101 1416 128 1446T210 1477T292 1447T320 1371T292 1296T210 1266T129 1296T101 1371ZM531 1369Q531 1414 558 1445T640 1476T722 1445T750 1369T722 1294T640 1264T559 1294T531 1369Z" /> -<glyph unicode="&#xa9;" horiz-adv-x="1609" d="M1119 597Q1119 444 1033 364T788 283Q631 283 537 388T442 676V786Q442 962 537 1067T788 1173Q948 1173 1034 1091T1120 860H974Q974 959 927 1001T788 1044Q694 1044 640 975T586 783V670Q586 550 640 481T788 -412Q880 412 926 454T973 597H1119ZM206 729Q206 557 286 411T503 181T801 98T1098 181T1315 410T1395 729Q1395 899 1316 1044T1100 1272T801 1356Q641 1356 503 1274T286 1045T206 729ZM91 729Q91 931 184 1104T443 1376T801 1476T1158 1377T1416 1104T1510 729Q1510 -532 1420 360T1165 84T801 -21Q604 -21 439 82T182 358T91 729Z" /> -<glyph unicode="&#xaa;" horiz-adv-x="915" d="M618 705Q606 739 600 777Q524 691 396 691Q277 691 212 753T147 918Q147 1029 230 1089T486 1149H594V1201Q594 1336 470 1336Q401 1336 362 1309T322 1231L161 1243Q161 1346 247 1411T470 1476Q603 1476 680 1405T757 -1199V883Q757 786 783 705H618ZM435 828Q478 828 522 848T594 895V1037H482Q399 1036 355 1005T310 922Q310 828 435 828Z" /> -<glyph unicode="&#xab;" horiz-adv-x="961" d="M536 804L794 407H653L358 795V814L653 1203H794L536 804ZM610 548L868 151H727L432 539V558L727 947H868L610 548Z" /> -<glyph unicode="&#xac;" horiz-adv-x="1134" d="M958 375H772V639H127V800H958V375Z" /> -<glyph unicode="&#xad;" horiz-adv-x="565" d="M525 543H37V694H525V543Z" /> -<glyph unicode="&#xae;" horiz-adv-x="1610" d="M90 729Q90 931 183 1104T442 1376T800 1476T1157 1377T1415 1104T1509 729Q1509 532 1419 360T1164 84T800 -21Q603 -21 438 82T181 358T90 729ZM205 729Q205 557 285 411T502 181T800 98Q961 98 1099 182T1315 -412T1394 729Q1394 900 1316 1044T1099 1272T800 1356Q640 1356 502 1274T285 1045T205 729ZM653 654V316H512V1165H788Q941 1165 1025 1100T1110 909Q1110 786 982 721Q1104 671 1105 517V456Q1105 370 1122 332V316H977Q963 352 963 444T960 554Q944 650 829 -654H653ZM653 782H809Q881 784 925 817T969 904Q969 977 930 1007T791 1038H653V782Z" /> -<glyph unicode="&#xaf;" horiz-adv-x="938" d="M814 1302H142V1445H814V1302Z" /> -<glyph unicode="&#xb0;" horiz-adv-x="765" d="M130 1216Q130 1320 204 1398T385 1476Q489 1476 562 1399T636 1216Q636 1110 563 1035T385 960Q280 960 205 1035T130 1216ZM385 1088Q439 1088 476 1123T513 1216Q513 1274 476 1311T385 1349Q330 1349 293 1310T255 -1216T292 1125T385 1088Z" /> -<glyph unicode="&#xb1;" horiz-adv-x="1094" d="M649 854H1013V703H649V289H482V703H97V854H482V1267H649V854ZM970 0H135V152H970V0Z" /> -<glyph unicode="&#xb2;" horiz-adv-x="751" d="M683 667H84V775L384 1057Q493 1159 493 1228Q493 1277 461 1307T369 1338Q294 1338 259 1300T223 1205H66Q66 1319 149 1393T365 1467T574 1404T651 1230Q651 1126 544 1019L460 940L284 795H683V667Z" /> -<glyph unicode="&#xb3;" horiz-adv-x="751" d="M265 1126H349Q423 1126 459 1156T495 1235Q495 1280 464 1309T362 1338Q305 1338 268 1313T230 1246H73Q73 1344 154 1405T360 1467Q497 1467 575 1407T653 1242Q653 1187 618 1142T517 1071Q666 1030 666 887Q666 -781 581 719T360 656Q228 656 145 719T62 889H220Q220 844 259 814T366 784Q436 784 472 814T509 895Q509 1008 353 1010H265V1126Z" /> -<glyph unicode="&#xb4;" horiz-adv-x="642" d="M316 1536H540L272 1242H123L316 1536Z" /> -<glyph unicode="&#xb5;" horiz-adv-x="1160" d="M339 1082V449Q340 286 391 208T559 130Q758 130 820 282V1082H1006V0H839L830 115Q737 -20 567 -20Q420 -20 339 53V-416H154V1082H339Z" /> -<glyph unicode="&#xb6;" horiz-adv-x="1001" d="M646 0V520H562Q332 520 200 647T67 988Q67 1201 200 1328T563 1456H832V0H646Z" /> -<glyph unicode="&#xb7;" horiz-adv-x="534" d="M147 729Q147 777 175 809T261 841T347 809T377 729Q377 682 348 651T261 619T176 650T147 729Z" /> -<glyph unicode="&#xb8;" horiz-adv-x="507" d="M285 0L273 -52Q426 -79 426 -225Q426 -322 346 -378T123 -435L116 -328Q195 -328 238 -302T282 -229Q282 -185 250 -164T120 -134L152 0H285Z" /> -<glyph unicode="&#xb9;" horiz-adv-x="751" d="M495 667H338V1268L122 1211V1339L477 1456H495V667Z" /> -<glyph unicode="&#xba;" horiz-adv-x="931" d="M122 1123Q122 1281 216 1378T464 1476Q619 1476 713 1380T807 1117V1043Q807 884 714 787T466 690T217 787T122 1049V1123ZM285 1043Q285 943 333 886T466 829Q549 829 596 886T644 1045V1123Q644 1222 596 1279T464 -1336Q383 1336 335 1281T285 1129V1043Z" /> -<glyph unicode="&#xbb;" horiz-adv-x="960" d="M244 949L539 560V541L244 152H102L360 550L102 949H244ZM593 949L888 560V541L593 152H451L709 550L451 949H593Z" /> -<glyph unicode="&#xbc;" horiz-adv-x="1500" d="M458 664H301V1265L85 1208V1336L440 1453H458V664ZM443 118L339 184L1050 1322L1154 1256L443 118ZM1318 299H1425V169H1318V0H1161V169H786L780 271L1157 789H1318V299ZM938 299H1161V588L1144 560L938 299Z" /> -<glyph unicode="&#xbd;" horiz-adv-x="1589" d="M399 118L295 184L1006 1322L1110 1256L399 118ZM453 664H296V1265L80 1208V1336L435 1453H453V664ZM1481 0H882V108L1182 390Q1291 492 1291 561Q1291 610 1259 640T1167 671Q1092 671 1057 633T1021 538H864Q864 -652 947 726T1163 800T1372 737T1449 563Q1449 459 1342 352L1258 273L1082 128H1481V0Z" /> -<glyph unicode="&#xbe;" horiz-adv-x="1593" d="M570 118L466 184L1177 1322L1281 1256L570 118ZM1410 299H1517V169H1410V0H1253V169H878L872 271L1249 789H1410V299ZM1030 299H1253V588L1236 560L1030 299ZM314 1126H398Q472 1126 508 1156T544 1235Q544 1280 -513 1309T411 1338Q354 1338 317 1313T279 1246H122Q122 1344 203 1405T409 1467Q546 1467 624 1407T702 1242Q702 1187 667 1142T566 1071Q715 1030 715 887Q715 781 630 719T409 656Q277 656 194 719T111 889H269Q269 844 308 814T415 784Q485 784 521 814T558 -895Q558 1008 402 1010H314V1126Z" /> -<glyph unicode="&#xbf;" horiz-adv-x="969" d="M588 680Q587 574 567 511T498 388T358 233T255 37L253 0Q253 -109 311 -166T478 -224Q578 -224 640 -168T703 -20H888Q886 -181 774 -283T478 -385Q282 -385 175 -285T68 -5Q68 168 228 343L337 456Q403 534 403 -680H588ZM596 997Q596 952 569 921T487 890T405 921T377 997Q377 1041 405 1071T487 1101T568 1071T596 997Z" /> -<glyph unicode="&#xc0;" horiz-adv-x="1336" d="M973 380H363L226 0H28L584 1456H752L1309 0H1112L973 380ZM421 538H916L668 1219L421 538ZM778 1552H619L361 1846H584L778 1552Z" /> -<glyph unicode="&#xc1;" horiz-adv-x="1336" d="M973 380H363L226 0H28L584 1456H752L1309 0H1112L973 380ZM421 538H916L668 1219L421 538ZM763 1846H987L719 1552H570L763 1846Z" /> -<glyph unicode="&#xc2;" horiz-adv-x="1336" d="M973 380H363L226 0H28L584 1456H752L1309 0H1112L973 380ZM421 538H916L668 1219L421 538ZM975 1572V1562H822L672 1732L523 1562H370V1574L616 1846H728L975 1572Z" /> -<glyph unicode="&#xc3;" horiz-adv-x="1336" d="M973 380H363L226 0H28L584 1456H752L1309 0H1112L973 380ZM421 538H916L668 1219L421 538ZM1027 1814Q1027 1706 966 1639T812 1572Q771 1572 741 1582T663 1623T593 1660T543 1667Q502 1667 473 1636T444 1555L320 -1562Q320 1669 380 1739T534 1809Q569 1809 597 1799T673 1760T746 1722T803 1713Q846 1713 874 1747T903 1826L1027 1814Z" /> -<glyph unicode="&#xc4;" horiz-adv-x="1336" d="M973 380H363L226 0H28L584 1456H752L1309 0H1112L973 380ZM421 538H916L668 1219L421 538ZM350 1681Q350 1726 377 1756T459 1787T541 1757T569 1681T541 1606T459 1576T378 1606T350 1681ZM780 1679Q780 1724 -807 1755T889 1786T971 1755T999 1679T971 1604T889 1574T808 1604T780 1679Z" /> -<glyph unicode="&#xc5;" horiz-adv-x="1336" d="M973 380H363L226 0H28L584 1456H752L1309 0H1112L973 380ZM421 538H916L668 1219L421 538ZM887 1729Q887 1642 825 1584T672 1525Q580 1525 519 1584T457 1729T518 1876T672 1937T825 1876T887 1729ZM556 1729Q556 -1682 589 1648T672 1614Q720 1614 754 1647T788 1729T755 1812T672 1847Q622 1847 589 1812T556 1729Z" /> -<glyph unicode="&#xc6;" horiz-adv-x="1914" d="M1879 0H996L981 353H417L212 0H-14L866 1456H1817V1304H1126L1146 833H1736V682H1152L1174 151H1879V0ZM518 527H974L943 1260L518 527Z" /> -<glyph unicode="&#xc7;" horiz-adv-x="1333" d="M1240 462Q1213 231 1070 106T688 -20Q430 -20 275 165T119 660V800Q119 1003 191 1157T397 1393T705 1476Q937 1476 1077 1347T1240 988H1047Q1022 1162 939 1240T705 1318Q521 1318 417 1182T312 795V654Q312 -417 411 277T688 137Q848 137 933 209T1047 462H1240ZM751 -9L739 -61Q892 -88 892 -234Q892 -331 812 -387T589 -444L582 -337Q661 -337 704 -311T748 -238Q748 -194 716 -173T586 -143L618 -9H751Z" /> -<glyph unicode="&#xc8;" horiz-adv-x="1164" d="M992 673H361V157H1094V0H169V1456H1084V1298H361V830H992V673ZM725 1564H566L308 1858H531L725 1564Z" /> -<glyph unicode="&#xc9;" horiz-adv-x="1164" d="M992 673H361V157H1094V0H169V1456H1084V1298H361V830H992V673ZM710 1858H934L666 1564H517L710 1858Z" /> -<glyph unicode="&#xca;" horiz-adv-x="1164" d="M992 673H361V157H1094V0H169V1456H1084V1298H361V830H992V673ZM922 1584V1574H769L619 1744L470 1574H317V1586L563 1858H675L922 1584Z" /> -<glyph unicode="&#xcb;" horiz-adv-x="1164" d="M992 673H361V157H1094V0H169V1456H1084V1298H361V830H992V673ZM297 1693Q297 1738 324 1768T406 1799T488 1769T516 1693T488 1618T406 1588T325 1618T297 1693ZM727 1691Q727 1736 754 1767T836 1798T918 1767T946 -1691T918 1616T836 1586T755 1616T727 1691Z" /> -<glyph unicode="&#xcc;" horiz-adv-x="557" d="M375 0H183V1456H375V0ZM385 1564H226L-32 1858H191L385 1564Z" /> -<glyph unicode="&#xcd;" horiz-adv-x="557" d="M375 0H183V1456H375V0ZM369 1858H593L325 1564H176L369 1858Z" /> -<glyph unicode="&#xce;" horiz-adv-x="557" d="M375 0H183V1456H375V0ZM582 1584V1574H429L279 1744L130 1574H-23V1586L223 1858H335L582 1584Z" /> -<glyph unicode="&#xcf;" horiz-adv-x="557" d="M375 0H183V1456H375V0ZM-43 1693Q-43 1738 -16 1768T66 1799T148 1769T176 1693T148 1618T66 1588T-15 1618T-43 1693ZM387 1691Q387 1736 414 1767T496 1798T578 1767T606 1691T578 1616T496 1586T415 1616T387 1691Z" /> -<glyph unicode="&#xd0;" horiz-adv-x="1373" d="M199 0V666H7V817H199V1456H610Q800 1456 946 1372T1171 1133T1252 777V684Q1252 478 1173 323T946 85T602 0H199ZM643 666H391V157H592Q814 157 937 294T1062 680V773Q1062 1021 946 1158T615 1298H391V817H643V666Z" /> -<glyph unicode="&#xd1;" horiz-adv-x="1460" d="M1288 0H1095L362 1122V0H169V1456H362L1097 329V1456H1288V0ZM1081 1814Q1081 1706 1020 1639T866 1572Q825 1572 795 1582T717 1623T647 1660T597 1667Q556 1667 527 1636T498 1555L374 1562Q374 1669 434 1739T588 -1809Q623 1809 651 1799T727 1760T800 1722T857 1713Q900 1713 928 1747T957 1826L1081 1814Z" /> -<glyph unicode="&#xd2;" horiz-adv-x="1408" d="M1289 681Q1289 467 1217 308T1013 64T705 -20Q533 -20 400 64T194 305T118 668V773Q118 983 191 1144T397 1390T703 1476Q878 1476 1011 1392T1217 1147T1289 773V681ZM1098 775Q1098 1034 994 1172T703 1311Q521 -1311 417 1173T309 788V681Q309 430 414 287T705 143Q891 143 993 278T1098 667V775ZM812 1554H653L395 1848H618L812 1554Z" /> -<glyph unicode="&#xd3;" horiz-adv-x="1408" d="M1289 681Q1289 467 1217 308T1013 64T705 -20Q533 -20 400 64T194 305T118 668V773Q118 983 191 1144T397 1390T703 1476Q878 1476 1011 1392T1217 1147T1289 773V681ZM1098 775Q1098 1034 994 1172T703 1311Q521 -1311 417 1173T309 788V681Q309 430 414 287T705 143Q891 143 993 278T1098 667V775ZM797 1848H1021L753 1554H604L797 1848Z" /> -<glyph unicode="&#xd4;" horiz-adv-x="1408" d="M1289 681Q1289 467 1217 308T1013 64T705 -20Q533 -20 400 64T194 305T118 668V773Q118 983 191 1144T397 1390T703 1476Q878 1476 1011 1392T1217 1147T1289 773V681ZM1098 775Q1098 1034 994 1172T703 1311Q521 -1311 417 1173T309 788V681Q309 430 414 287T705 143Q891 143 993 278T1098 667V775ZM1009 1574V1564H856L706 1734L557 1564H404V1576L650 1848H762L1009 1574Z" /> -<glyph unicode="&#xd5;" horiz-adv-x="1408" d="M1289 681Q1289 467 1217 308T1013 64T705 -20Q533 -20 400 64T194 305T118 668V773Q118 983 191 1144T397 1390T703 1476Q878 1476 1011 1392T1217 1147T1289 773V681ZM1098 775Q1098 1034 994 1172T703 1311Q521 -1311 417 1173T309 788V681Q309 430 414 287T705 143Q891 143 993 278T1098 667V775ZM1061 1816Q1061 1708 1000 1641T846 1574Q805 1574 775 1584T697 1625T627 1662T577 1669Q536 1669 507 1638T478 1557L354 1564Q354 1671 414 1741T568 1811Q603 1811 631 1801T707 -1762T780 1724T837 1715Q880 1715 908 1749T937 1828L1061 1816Z" /> -<glyph unicode="&#xd6;" horiz-adv-x="1408" d="M1289 681Q1289 467 1217 308T1013 64T705 -20Q533 -20 400 64T194 305T118 668V773Q118 983 191 1144T397 1390T703 1476Q878 1476 1011 1392T1217 1147T1289 773V681ZM1098 775Q1098 1034 994 1172T703 1311Q521 -1311 417 1173T309 788V681Q309 430 414 287T705 143Q891 143 993 278T1098 667V775ZM384 1683Q384 1728 411 1758T493 1789T575 1759T603 1683T575 1608T493 1578T412 1608T384 1683ZM814 1681Q814 1726 841 1757T923 1788T1005 1757T1033 1681T1005 1606T923 -1576T842 1606T814 1681Z" /> -<glyph unicode="&#xd7;" horiz-adv-x="1092" d="M89 329L419 665L91 1000L210 1123L539 788L868 1123L987 1000L659 665L989 329L870 206L539 543L208 206L89 329Z" /> -<glyph unicode="&#xd8;" horiz-adv-x="1408" d="M1289 681Q1289 467 1217 308T1013 64T705 -20Q534 -20 403 62L306 -93H164L308 138Q118 330 118 690V773Q118 983 191 1144T397 1390T703 1476Q917 1476 1065 1351L1168 1516H1309L1150 1261Q1287 1074 1289 780V681ZM309 -681Q309 437 407 296L971 1200Q869 1311 703 1311Q521 1311 417 1173T309 788V681ZM1098 775Q1098 957 1042 1088L493 207Q584 143 705 143Q891 143 993 278T1098 667V775Z" /> -<glyph unicode="&#xd9;" horiz-adv-x="1328" d="M1194 1456V466Q1193 260 1065 129T716 -18L665 -20Q426 -20 284 109T140 464V1456H330V470Q330 312 417 225T665 137Q828 137 914 224T1001 469V1456H1194ZM773 1552H614L356 1846H579L773 1552Z" /> -<glyph unicode="&#xda;" horiz-adv-x="1328" d="M1194 1456V466Q1193 260 1065 129T716 -18L665 -20Q426 -20 284 109T140 464V1456H330V470Q330 312 417 225T665 137Q828 137 914 224T1001 469V1456H1194ZM758 1846H982L714 1552H565L758 1846Z" /> -<glyph unicode="&#xdb;" horiz-adv-x="1328" d="M1194 1456V466Q1193 260 1065 129T716 -18L665 -20Q426 -20 284 109T140 464V1456H330V470Q330 312 417 225T665 137Q828 137 914 224T1001 469V1456H1194ZM970 1572V1562H817L667 1732L518 1562H365V1574L611 -1846H723L970 1572Z" /> -<glyph unicode="&#xdc;" horiz-adv-x="1328" d="M1194 1456V466Q1193 260 1065 129T716 -18L665 -20Q426 -20 284 109T140 464V1456H330V470Q330 312 417 225T665 137Q828 137 914 224T1001 469V1456H1194ZM345 1681Q345 1726 372 1756T454 1787T536 1757T564 -1681T536 1606T454 1576T373 1606T345 1681ZM775 1679Q775 1724 802 1755T884 1786T966 1755T994 1679T966 1604T884 1574T803 1604T775 1679Z" /> -<glyph unicode="&#xdd;" horiz-adv-x="1230" d="M613 725L993 1456H1211L709 543V0H517V543L15 1456H235L613 725ZM708 1846H932L664 1552H515L708 1846Z" /> -<glyph unicode="&#xde;" horiz-adv-x="1210" d="M352 1456V1163H631Q778 1163 888 1111T1057 961T1117 738Q1117 544 985 429T626 313H352V0H166V1456H352ZM352 1011V465H629Q771 465 851 540T931 736Q931 859 851 934T635 1011H352Z" /> -<glyph unicode="&#xdf;" horiz-adv-x="1218" d="M324 0H139V1111Q139 1319 242 1436T532 1554Q712 1554 810 1465T909 1216Q909 1091 845 990T781 819Q781 768 818 721T950 601T1087 461T1130 317Q1130 158 1029 69T745 -20Q664 -20 574 2T445 52L488 207Q537 -175 604 153T725 131Q832 131 888 178T945 307Q945 359 908 407T777 528T639 671T595 821Q595 910 664 1013T734 1201Q734 1295 682 1348T542 1402Q324 1402 324 1109V0Z" /> -<glyph unicode="&#xe0;" horiz-adv-x="1114" d="M808 0Q792 32 782 114Q653 -20 474 -20Q314 -20 212 70T109 300Q109 469 237 562T599 656H779V741Q779 838 721 895T550 953Q451 953 384 903T317 782H131Q131 863 188 938T344 1058T561 1102Q748 1102 854 1009T964 -751V253Q964 104 1002 16V0H808ZM501 141Q588 141 666 186T779 303V525H634Q294 525 294 326Q294 239 352 190T501 141ZM687 1242H528L270 1536H493L687 1242Z" /> -<glyph unicode="&#xe1;" horiz-adv-x="1114" d="M808 0Q792 32 782 114Q653 -20 474 -20Q314 -20 212 70T109 300Q109 469 237 562T599 656H779V741Q779 838 721 895T550 953Q451 953 384 903T317 782H131Q131 863 188 938T344 1058T561 1102Q748 1102 854 1009T964 -751V253Q964 104 1002 16V0H808ZM501 141Q588 141 666 186T779 303V525H634Q294 525 294 326Q294 239 352 190T501 141ZM672 1536H896L628 1242H479L672 1536Z" /> -<glyph unicode="&#xe2;" horiz-adv-x="1114" d="M808 0Q792 32 782 114Q653 -20 474 -20Q314 -20 212 70T109 300Q109 469 237 562T599 656H779V741Q779 838 721 895T550 953Q451 953 384 903T317 782H131Q131 863 188 938T344 1058T561 1102Q748 1102 854 1009T964 -751V253Q964 104 1002 16V0H808ZM501 141Q588 141 666 186T779 303V525H634Q294 525 294 326Q294 239 352 190T501 141ZM884 1262V1252H731L581 1422L432 1252H279V1264L525 1536H637L884 1262Z" /> -<glyph unicode="&#xe3;" horiz-adv-x="1114" d="M808 0Q792 32 782 114Q653 -20 474 -20Q314 -20 212 70T109 300Q109 469 237 562T599 656H779V741Q779 838 721 895T550 953Q451 953 384 903T317 782H131Q131 863 188 938T344 1058T561 1102Q748 1102 854 1009T964 -751V253Q964 104 1002 16V0H808ZM501 141Q588 141 666 186T779 303V525H634Q294 525 294 326Q294 239 352 190T501 141ZM936 1504Q936 1396 875 1329T721 1262Q680 1262 650 1272T572 1313T502 1350T452 1357Q411 1357 382 1326T353 1245L229 1252Q229 1359 289 -1429T443 1499Q478 1499 506 1489T582 1450T655 1412T712 1403Q755 1403 783 1437T812 1516L936 1504Z" /> -<glyph unicode="&#xe4;" horiz-adv-x="1114" d="M808 0Q792 32 782 114Q653 -20 474 -20Q314 -20 212 70T109 300Q109 469 237 562T599 656H779V741Q779 838 721 895T550 953Q451 953 384 903T317 782H131Q131 863 188 938T344 1058T561 1102Q748 1102 854 1009T964 -751V253Q964 104 1002 16V0H808ZM501 141Q588 141 666 186T779 303V525H634Q294 525 294 326Q294 239 352 190T501 141ZM259 1371Q259 1416 286 1446T368 1477T450 1447T478 1371T450 1296T368 1266T287 1296T259 1371ZM689 1369Q689 1414 716 1445T798 1476T880 -1445T908 1369T880 1294T798 1264T717 1294T689 1369Z" /> -<glyph unicode="&#xe5;" horiz-adv-x="1114" d="M808 0Q792 32 782 114Q653 -20 474 -20Q314 -20 212 70T109 300Q109 469 237 562T599 656H779V741Q779 838 721 895T550 953Q451 953 384 903T317 782H131Q131 863 188 938T344 1058T561 1102Q748 1102 854 1009T964 -751V253Q964 104 1002 16V0H808ZM501 141Q588 141 666 186T779 303V525H634Q294 525 294 326Q294 239 352 190T501 141ZM796 1419Q796 1332 734 1274T581 1215Q489 1215 428 1274T366 1419T427 1566T581 1627T734 1566T796 1419ZM465 1419Q465 1372 498 1338T581 -1304Q629 1304 663 1337T697 1419T664 1502T581 1537Q531 1537 498 1502T465 1419Z" /> -<glyph unicode="&#xe6;" horiz-adv-x="1729" d="M1262 -20Q1001 -20 865 160Q800 74 687 27T433 -20Q266 -20 172 66T78 304Q78 461 191 548T526 635H749V720Q749 827 694 888T535 950Q430 950 360 895T290 759L106 778Q106 921 227 1011T535 1102Q650 1102 738 -1061T876 936Q939 1015 1026 1058T1218 1102Q1428 1102 1544 974T1660 612V497H932Q939 321 1026 226T1262 130Q1410 130 1531 206L1578 237L1642 101Q1484 -20 1262 -20ZM469 130Q541 130 620 167T749 258V495H521Q404 493 334 438T264 300Q264 223 317 177T469 -130ZM1218 950Q1103 950 1029 865T937 640H1475V671Q1475 803 1408 876T1218 950Z" /> -<glyph unicode="&#xe7;" horiz-adv-x="1072" d="M574 131Q673 131 747 191T829 341H1004Q999 248 940 164T783 30T574 -20Q353 -20 223 127T92 531V562Q92 720 150 843T316 1034T573 1102Q755 1102 875 993T1004 710H829Q821 815 750 882T573 950Q432 950 355 -849T277 555V520Q277 333 354 232T574 131ZM604 -9L592 -61Q745 -88 745 -234Q745 -331 665 -387T442 -444L435 -337Q514 -337 557 -311T601 -238Q601 -194 569 -173T439 -143L471 -9H604Z" /> -<glyph unicode="&#xe8;" horiz-adv-x="1085" d="M589 -20Q369 -20 231 124T93 511V545Q93 706 154 832T326 1030T566 1102Q777 1102 894 963T1011 565V488H278Q282 328 371 230T599 131Q697 131 765 171T884 277L997 189Q861 -20 589 -20ZM566 950Q454 950 378 -869T284 640H826V654Q818 795 750 872T566 950ZM671 1242H512L254 1536H477L671 1242Z" /> -<glyph unicode="&#xe9;" horiz-adv-x="1085" d="M589 -20Q369 -20 231 124T93 511V545Q93 706 154 832T326 1030T566 1102Q777 1102 894 963T1011 565V488H278Q282 328 371 230T599 131Q697 131 765 171T884 277L997 189Q861 -20 589 -20ZM566 950Q454 950 378 -869T284 640H826V654Q818 795 750 872T566 950ZM656 1536H880L612 1242H463L656 1536Z" /> -<glyph unicode="&#xea;" horiz-adv-x="1085" d="M589 -20Q369 -20 231 124T93 511V545Q93 706 154 832T326 1030T566 1102Q777 1102 894 963T1011 565V488H278Q282 328 371 230T599 131Q697 131 765 171T884 277L997 189Q861 -20 589 -20ZM566 950Q454 950 378 -869T284 640H826V654Q818 795 750 872T566 950ZM868 1262V1252H715L565 1422L416 1252H263V1264L509 1536H621L868 1262Z" /> -<glyph unicode="&#xeb;" horiz-adv-x="1085" d="M589 -20Q369 -20 231 124T93 511V545Q93 706 154 832T326 1030T566 1102Q777 1102 894 963T1011 565V488H278Q282 328 371 230T599 131Q697 131 765 171T884 277L997 189Q861 -20 589 -20ZM566 950Q454 950 378 -869T284 640H826V654Q818 795 750 872T566 950ZM243 1371Q243 1416 270 1446T352 1477T434 1447T462 1371T434 1296T352 1266T271 1296T243 1371ZM673 1369Q673 1414 700 1445T782 1476T864 1445T892 1369T864 1294T782 1264T701 1294T673 1369Z" /> -<glyph unicode="&#xec;" horiz-adv-x="506" d="M341 0H155V1082H341V0ZM615 1497H456L198 1791H421L615 1497Z" /> -<glyph unicode="&#xed;" horiz-adv-x="506" d="M341 0H155V1082H341V0ZM343 1791H567L299 1497H150L343 1791Z" /> -<glyph unicode="&#xee;" horiz-adv-x="506" d="M341 0H155V1082H341V0ZM556 1261V1251H403L253 1421L104 1251H-49V1263L197 1535H309L556 1261Z" /> -<glyph unicode="&#xef;" horiz-adv-x="506" d="M341 0H155V1082H341V0ZM-69 1370Q-69 1415 -42 1445T40 1476T122 1446T150 1370T122 1295T40 1265T-41 1295T-69 1370ZM361 1368Q361 1413 388 1444T470 1475T552 1444T580 1368T552 1293T470 1263T389 1293T361 1368Z" /> -<glyph unicode="&#xf0;" horiz-adv-x="1200" d="M820 1301Q1069 1037 1069 628V535Q1069 377 1011 251T844 52T602 -20Q467 -20 357 44T187 221T126 467Q126 614 182 730T341 912T574 977Q737 977 858 863Q810 1058 669 1199L451 1051L378 1150L570 1281Q438 1372 -255 1421L312 1580Q551 1526 726 1387L915 1516L988 1416L820 1301ZM884 635L882 691Q849 752 780 788T618 825Q473 825 392 730T311 467Q311 327 394 229T606 131Q731 131 807 244T884 541V635Z" /> -<glyph unicode="&#xf1;" horiz-adv-x="1130" d="M315 1082L321 946Q445 1102 645 1102Q988 1102 991 715V0H806V716Q805 833 753 889T589 945Q499 945 431 897T325 771V0H140V1082H315ZM927 1504Q927 1396 866 1329T712 1262Q671 1262 641 1272T563 1313T493 1350T443 -1357Q402 1357 373 1326T344 1245L220 1252Q220 1359 280 1429T434 1499Q469 1499 497 1489T573 1450T646 1412T703 1403Q746 1403 774 1437T803 1516L927 1504Z" /> -<glyph unicode="&#xf2;" horiz-adv-x="1168" d="M91 551Q91 710 153 837T327 1033T582 1102Q803 1102 939 949T1076 542V529Q1076 371 1016 246T843 50T584 -20Q364 -20 228 133T91 538V551ZM277 529Q277 349 360 240T584 131Q725 131 808 241T891 551Q891 729 -807 839T582 950Q445 950 361 841T277 529ZM681 1242H522L264 1536H487L681 1242Z" /> -<glyph unicode="&#xf3;" horiz-adv-x="1168" d="M91 551Q91 710 153 837T327 1033T582 1102Q803 1102 939 949T1076 542V529Q1076 371 1016 246T843 50T584 -20Q364 -20 228 133T91 538V551ZM277 529Q277 349 360 240T584 131Q725 131 808 241T891 551Q891 729 -807 839T582 950Q445 950 361 841T277 529ZM666 1536H890L622 1242H473L666 1536Z" /> -<glyph unicode="&#xf4;" horiz-adv-x="1168" d="M91 551Q91 710 153 837T327 1033T582 1102Q803 1102 939 949T1076 542V529Q1076 371 1016 246T843 50T584 -20Q364 -20 228 133T91 538V551ZM277 529Q277 349 360 240T584 131Q725 131 808 241T891 551Q891 729 -807 839T582 950Q445 950 361 841T277 529ZM878 1262V1252H725L575 1422L426 1252H273V1264L519 1536H631L878 1262Z" /> -<glyph unicode="&#xf5;" horiz-adv-x="1168" d="M91 551Q91 710 153 837T327 1033T582 1102Q803 1102 939 949T1076 542V529Q1076 371 1016 246T843 50T584 -20Q364 -20 228 133T91 538V551ZM277 529Q277 349 360 240T584 131Q725 131 808 241T891 551Q891 729 -807 839T582 950Q445 950 361 841T277 529ZM930 1504Q930 1396 869 1329T715 1262Q674 1262 644 1272T566 1313T496 1350T446 1357Q405 1357 376 1326T347 1245L223 1252Q223 1359 283 1429T437 1499Q472 1499 500 1489T576 1450T649 1412T706 1403Q749 1403 777 -1437T806 1516L930 1504Z" /> -<glyph unicode="&#xf6;" horiz-adv-x="1168" d="M91 551Q91 710 153 837T327 1033T582 1102Q803 1102 939 949T1076 542V529Q1076 371 1016 246T843 50T584 -20Q364 -20 228 133T91 538V551ZM277 529Q277 349 360 240T584 131Q725 131 808 241T891 551Q891 729 -807 839T582 950Q445 950 361 841T277 529ZM253 1371Q253 1416 280 1446T362 1477T444 1447T472 1371T444 1296T362 1266T281 1296T253 1371ZM683 1369Q683 1414 710 1445T792 1476T874 1445T902 1369T874 1294T792 1264T711 1294T683 1369Z" /> -<glyph unicode="&#xf7;" horiz-adv-x="1169" d="M1069 600H71V784H1069V600ZM461 1098Q461 1146 489 1178T575 1210T661 1178T691 1098Q691 1051 662 1020T575 989T490 1020T461 1098ZM461 281Q461 329 489 361T575 393T661 361T691 281Q691 235 662 204T575 172T490 -203T461 281Z" /> -<glyph unicode="&#xf8;" horiz-adv-x="1160" d="M91 551Q91 710 152 836T326 1032T582 1102Q692 1102 786 1060L859 1208H983L881 1003Q1076 849 1076 529Q1076 371 1014 244T840 49T584 -20Q480 -20 394 15L320 -134H196L296 69Q91 218 91 551ZM276 529Q276 335 -373 224L716 918Q654 950 582 950Q444 950 360 841T276 529ZM890 551Q890 733 803 844L463 156Q518 131 584 131Q723 131 806 240T890 535V551Z" /> -<glyph unicode="&#xf9;" horiz-adv-x="1129" d="M808 107Q700 -20 491 -20Q318 -20 228 80T136 378V1082H321V383Q321 137 521 137Q733 137 803 295V1082H988V0H812L808 107ZM673 1242H514L256 1536H479L673 1242Z" /> -<glyph unicode="&#xfa;" horiz-adv-x="1129" d="M808 107Q700 -20 491 -20Q318 -20 228 80T136 378V1082H321V383Q321 137 521 137Q733 137 803 295V1082H988V0H812L808 107ZM658 1536H882L614 1242H465L658 1536Z" /> -<glyph unicode="&#xfb;" horiz-adv-x="1129" d="M808 107Q700 -20 491 -20Q318 -20 228 80T136 378V1082H321V383Q321 137 521 137Q733 137 803 295V1082H988V0H812L808 107ZM870 1262V1252H717L567 1422L418 1252H265V1264L511 1536H623L870 1262Z" /> -<glyph unicode="&#xfc;" horiz-adv-x="1129" d="M808 107Q700 -20 491 -20Q318 -20 228 80T136 378V1082H321V383Q321 137 521 137Q733 137 803 295V1082H988V0H812L808 107ZM245 1371Q245 1416 272 1446T354 1477T436 1447T464 1371T436 1296T354 1266T273 1296T245 -1371ZM675 1369Q675 1414 702 1445T784 1476T866 1445T894 1369T866 1294T784 1264T703 1294T675 1369Z" /> -<glyph unicode="&#xfd;" horiz-adv-x="969" d="M494 271L746 1082H944L509 -167Q408 -437 188 -437L153 -434L84 -421V-271L134 -275Q228 -275 280 -237T367 -98L408 12L22 1082H224L494 271ZM599 1536H823L555 1242H406L599 1536Z" /> -<glyph unicode="&#xfe;" horiz-adv-x="1180" d="M1063 529Q1063 282 950 131T644 -20Q447 -20 334 105V-416H149V1536H334V970Q447 1102 641 1102Q836 1102 949 955T1063 546V529ZM878 550Q878 733 800 839T586 945Q418 945 334 796V279Q417 131 588 131Q721 131 -799 236T878 550Z" /> -<glyph unicode="&#xff;" horiz-adv-x="969" d="M494 271L746 1082H944L509 -167Q408 -437 188 -437L153 -434L84 -421V-271L134 -275Q228 -275 280 -237T367 -98L408 12L22 1082H224L494 271ZM186 1371Q186 1416 213 1446T295 1477T377 1447T405 1371T377 1296T295 -1266T214 1296T186 1371ZM616 1369Q616 1414 643 1445T725 1476T807 1445T835 1369T807 1294T725 1264T644 1294T616 1369Z" /> -<glyph unicode="&#x2013;" horiz-adv-x="1344" d="M1421 651H419V802H1421V651Z" /> -<glyph unicode="&#x2014;" horiz-adv-x="1599" d="M1737 651H401V802H1737V651Z" /> -<glyph unicode="&#x2018;" horiz-adv-x="409" d="M270 1555L376 1483Q283 1356 280 1209V1073H96V1189Q96 1291 144 1391T270 1555Z" /> -<glyph unicode="&#x2019;" horiz-adv-x="409" d="M153 1046L48 1118Q141 1248 144 1392V1536H327V1406Q326 1306 278 1207T153 1046Z" /> -<glyph unicode="&#x201a;" horiz-adv-x="407" d="M141 -283L36 -210Q127 -83 130 63V181H315V81Q315 -20 266 -121T141 -283Z" /> -<glyph unicode="&#x201c;" horiz-adv-x="724" d="M278 1555L384 1483Q291 1356 288 1209V1073H104V1189Q104 1291 152 1391T278 1555ZM593 1555L699 1483Q606 1356 603 1209V1073H419V1189Q419 1291 467 1391T593 1555Z" /> -<glyph unicode="&#x201d;" horiz-adv-x="731" d="M165 1046L60 1118Q153 1248 156 1392V1536H339V1406Q338 1306 290 1207T165 1046ZM472 1046L367 1118Q460 1248 463 1392V1536H646V1406Q645 1306 597 1207T472 1046Z" /> -<glyph unicode="&#x201e;" horiz-adv-x="705" d="M141 -301L36 -229Q127 -92 130 61V246H315V82Q315 -26 266 -131T141 -301ZM437 -301L332 -229Q423 -92 426 61V246H612V82Q612 -25 564 -129T437 -301Z" /> -<glyph unicode="&#x2022;" horiz-adv-x="690" d="M138 772Q138 859 193 915T341 971Q432 971 489 917T546 769V732Q546 645 491 590T342 535Q249 535 194 590T138 734V772Z" /> -<glyph unicode="&#x2039;" horiz-adv-x="614" d="M286 550L544 153H403L108 541V560L403 949H544L286 550Z" /> -<glyph unicode="&#x203a;" horiz-adv-x="614" d="M231 949L526 560V541L231 152H89L347 550L89 949H231Z" /> -</font> -</defs> -</svg> diff --git a/fonts/roboto-v18-latin-ext-regular.ttf b/fonts/roboto-v18-latin-ext-regular.ttf deleted file mode 100644 index 5c3b764..0000000 Binary files a/fonts/roboto-v18-latin-ext-regular.ttf and /dev/null differ diff --git a/fonts/roboto-v18-latin-ext-regular.woff b/fonts/roboto-v18-latin-ext-regular.woff deleted file mode 100644 index 0f128f1..0000000 Binary files a/fonts/roboto-v18-latin-ext-regular.woff and /dev/null differ diff --git a/fonts/roboto-v18-latin-ext-regular.woff2 b/fonts/roboto-v18-latin-ext-regular.woff2 deleted file mode 100644 index ab076be..0000000 Binary files a/fonts/roboto-v18-latin-ext-regular.woff2 and /dev/null differ diff --git a/img/flags/1x1/ad.svg b/img/flags/1x1/ad.svg deleted file mode 100644 index cafda60..0000000 --- a/img/flags/1x1/ad.svg +++ /dev/null @@ -1,152 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" height="512" width="512" viewBox="0 0 512 512"> - <path fill="#d0103a" d="M0 0h512v512H0z"/> - <path fill="#fedf00" d="M0 0h348.16v512H0z"/> - <path fill="#0018a8" d="M0 0h163.84v512H0z"/> - <path d="M240.317 173.302c6.17 0 8.694 5.293 14.863 5.293 3.81 0 6.03-1.244 9.35-3.117 2.316-1.31 3.794-2.01 6.454-2.01 2.723 0 4.393.823 5.786 3.157.787 1.32 1.44 3.906 1.094 5.39-.656 2.81-1.06 4.034-2.182 6.63-.534 1.25-1.038 1.996-1.038 3.363 0 3.274 4.456 4.4 7.486 4.446.66.01 6.216.102 9.634-3.36-1.855-.08-3.93-1.516-3.93-3.37 0-2.1 1.475-3.52 3.474-4.127.38-.108 1.027.227 1.37.047.49-.254.26-.804.695-1.147.995-.796 1.642-1.293 2.918-1.293.833 0 1.32.117 1.99.597.353.254.483.567.917.567.914 0 1.366-.58 2.28-.58.742 0 1.194.1 1.845.436.543.28.53 1.202 1.146 1.202.308 0 1.935-.663 2.785-.663 1.764 0 2.706.64 3.846 1.978.307.36.504 1.094.816 1.094.63 0 2.082.405 2.986 1.31.39.39.562.573.86 1.044.21.334.528 1.15.896 1.293.43.167.792.135 1.36.498 1.292.83 2.287 2.387 2.24 3.897-.015.506-.247 1.212-.384 1.694-1.506 5.265-5.09 6.936-8.708 11.46-1.54 1.926-2.752 3.464-2.752 5.934 0 .597.735 1.69 1.06 2.188-.198-1.16.332-2.586 1.56-2.653 1.68-.09 2.977 1.186 3.203 2.85.045.39-.1 1.062-.265 1.46.905-.597 2.097-1 3.183-1.128a9.9 9.9 0 0 1 1.525-.066c2.686.066 5.65 1.577 7.448 3.105 5.504 4.676 6.17 11.517 5.87 13.417-.67 4.222-.25 11.862-11.04 14.908 1.995.84 3.353 2.34 3.353 4.187 0 2.008-1.537 3.727-3.545 3.727-1.15 0-1.945-.282-2.75-1.087-2.244 2.244-2.68 4.533-2.68 7.708 0 1.9.363 3.023 1.16 4.74.84 1.82 1.447 2.887 2.967 4.2.805-1.213 1.656-2.1 3.112-2.1 1.41 0 2.606.453 3.185 1.737.17.39.017.706.216 1.086.253.49.678.597.94 1.086.408.75.01 1.392.362 2.17.227.507.724.58.94 1.085.345.78.436 1.312.436 2.172 0 2.406-2.19 4.125-4.596 4.125-.724 0-1.122-.29-1.846-.217 1.375 1.375 2.425 1.972 3.474 3.62 1.52 2.378 1.9 4.07 2.244 6.874.063.524.072.84.072 1.375 0 3.6-.56 5.753-2.17 8.974-1.54 3.084-2.85 4.794-5.646 6.802-4.36 3.14-7.536 4.044-12.81 5.066-3.384.652-5.32.94-8.758 1.158-4.397.28-6.903.29-11.29.58-5.755.388-9.744 1.202-13.824 5.283 1.927 1.41 3.256 2.794 3.256 5.173 0 2.443-1.51 4.19-3.835 4.958-.543.182-.94.02-1.448.29-.606.317-.58 1.014-1.158 1.375-1.023.652-1.82.797-3.04.797-2.154 0-3.62-.507-5.14-2.027-1.764 1.466-2.36 2.787-4.342 3.908-.652.362-.986.87-1.737.87-1.184 0-1.727-.752-2.677-1.45-1.51-1.102-2.316-1.835-3.547-3.255-1.8 1.076-2.904 1.954-4.993 1.954-1.285 0-2.1-.18-3.185-.87-.57-.352-.66-.876-1.23-1.23-.597-.37-1.095-.234-1.737-.506-2.415-1.04-3.98-2.832-3.98-5.464 0-2.307 1.457-3.772 3.546-4.74-4.008-4.008-7.952-4.705-13.607-5.067-4.37-.28-6.858-.29-11.22-.58-3.464-.234-5.39-.587-8.83-1.157-2.595-.425-4.133-.56-6.513-1.664-8.187-3.818-13.407-9.056-14.475-18.022-.09-.77-.072-1.212-.072-1.99 0-4.668 1.836-7.518 5.138-10.82-.85-.2-1.42.08-2.243-.217-2.063-.75-3.547-2.18-3.547-4.38 0-.813.037-1.356.435-2.062.28-.497.814-.597.94-1.158.163-.742-.054-1.266.29-1.954.226-.46.65-.55.868-1.012.716-1.484 1.612-2.678 3.258-2.678 1.412 0 2.316.742 3.04 1.954 1.375-.633 1.755-1.665 2.533-2.967 1.295-2.162 1.883-3.673 1.883-6.188 0-1.756-.172-2.788-.724-4.452-.4-1.194-.562-2.01-1.448-2.895-.805.805-1.602 1.085-2.75 1.085-2.3 0-4.054-1.972-4.054-4.27 0-1.71.842-2.976 2.39-3.69-1.24-1.068-2.317-1.16-3.692-2.027-2.09-1.32-2.823-2.713-4.198-4.776-.896-1.348-1.13-2.29-1.592-3.836-.552-1.864-.87-2.976-.87-4.92 0-.508.01-.806.073-1.304.515-3.926 1.22-6.387 3.69-9.48 1.466-1.838 2.46-2.97 4.633-3.91 1.845-.796 2.95-1.375 4.957-1.375.606 0 .96 0 1.557.072.922.117 1.51.2 2.315.65.308.173.87.69.87.327 0-.417-.218-.635-.218-1.05 0-1.665 1.194-3.185 2.86-3.185 1.202 0 1.69 1.058 2.28 2.1.38-.635.578-1.07.578-1.81 0-2.75-1.475-4.153-3.185-6.297-3.727-4.66-8.396-6.84-8.396-12.81 0-1.783.86-2.995 2.39-3.91.443-.26 1.04 0 1.473-.276.37-.236.33-.715.564-1.095.37-.588.7-.84 1.215-1.293.85-.74 1.597-.52 2.538-1.17.47-.326.58-.75.943-1.184 1.05-1.266 1.992-1.878 3.647-1.878.833 0 1.3.005 2.068.31.263.1.753.496.817.42.165-.2.615-.675 1.148-.93.697-.333.98-.463 1.758-.463.887 0 1.468.496 2.355.496.325 0 .4-.325.663-.497.787-.535 1.24-.836 2.2-.836.922 0 1.43.304 2.21.802.732.46.838 1.08 1.59 1.514.415.244.767.135 1.23.29 2.062.687 3.618 2.062 3.618 4.233 0 1.176-.28 2.018-1.158 2.787-.697.615-1.357.506-2.244.796 2.877 2.298 5.38 2.868 9.053 2.868 3.366 0 7.482-1.376 7.482-4.74 0-1.567-.867-2.408-1.482-3.846-1.104-2.56-1.702-4.066-1.702-6.853 0-2.207.24-3.546 1.525-5.338 1.322-1.845 2.935-2.276 5.206-2.276z" fill="#c7b37f"/> - <g fill="none" stroke="#703d29"> - <path d="M217.902 191.212c.22.835.897 1.618 1.956 1.95.637.198 2.11.118 3.065-1.116.774-1 .715-2.24.426-3.224-.188-.637-.703-1.252-1.382-1.776l-4.064 4.125v.042z" stroke-width=".533" stroke-linejoin="round"/> - <path d="M320.824 252.897c-.955-2.308-3.423-1.274-3.575 0-.35 2.935 2.22 3.822 4.052 3.344.907-.236 1.57-.807 1.995-1.55.478-.84.623-1.936.312-2.983a3.92 3.92 0 0 0-.68-1.32 3.978 3.978 0 0 0-1.023-.97c-.704-.45-1.472-.493-2.675-.493-4.458 0-8.36 5.268-9.67 10.74-.43 1.803-1.024 5.822-.202 9.634.876 4.06 2.63 6.87 4.69 9.003 1.114 1.155 2.634 2.183 4.602 3.296.607.343 2.212 1.055 3.327 1.374 1.143.327 2.2.28 3.152.072 2.64-.573 3.87-3.03 2.54-5.544-1.09-2.06-4.3-3.185-5.813-.558a2.6 2.6 0 0 0-.322 1.235c.008.7.3 1.545.8 1.863 1.15.732 2.988.525 2.903-1.505" stroke-width=".531" stroke-linecap="round"/> - <path d="M307.04 283.172c.896-1.053 2.95-2.632 5.297-2.92 2.383-.293 4.454.4 6.568 1.538 4.126 2.22 6.427 4.605 7.96 9.032.39 1.124.713 2.82.668 4.62-.07 2.868-.8 6.005-1.583 7.52-.682 1.324-2.468 7.166-12.26 11.198-5.714 2.352-14.49 2.895-20.54 3.134-8.323.328-16.002.636-20.46 6.13" stroke-width=".653"/> - <g stroke-width=".574"> - <path d="M309.12 292.582c-.24-.875-.018-1.715.677-2.667.928-1.272 2.906-1.71 4.697-.716.6.332 1.35.77 2.03 1.67.257.34.69.89.916 1.275.542.927.765 1.685.872 1.99 1.968 5.595-1.16 11.66-5.25 14.09-3.18 1.89-6.968 2.733-11.505 3.265-2.04.24-3.204.224-5.255.32-1.65.075-3.076.048-4.418.032-1.105-.014-2.153-.01-3.224-.033-1.75-.042-3.56-.083-5.773.078-2.33.17-4.082.23-6.05.558-1.286.214-2.794.42-4.374.775-.474.108-.955.195-1.438.34-.325.098-.646.198-.963.295-2.853.87-5.625 1.93-7.812 3.338-.676.435-1.44.87-1.985 1.387-.34.32-.754.643-1.087.97-1.53 1.507-3.097 3.138-3.463 5.346-.067.407-.067.834-.067 1.283 0 1.432 1.166 3.383 4.31 4.02m4.422-136.094c.66 1.19 1.02 1.914.638 3.145-.433 1.393-1.422 2.228-2.826 2.228-3.184 0-5.058-3.77-3.622-6.17 2.547-4.26 7.444-1.867 11.982.243-.22-1.092-.6-1.447-.562-2.8.1-3.36 2.592-4.886 3.587-7.99.593-1.85.828-3.456-.525-4.77-1.182-1.146-2.55-1.13-4.093-.525-3.082 1.208-6.783 4.68-13.297 4.775-6.515-.096-10.247-3.567-13.328-4.775-1.542-.604-2.91-.62-4.092.525-1.354 1.314-1.118 2.92-.525 4.77.995 3.105 3.487 4.63 3.586 7.99.04 1.353-.342 1.708-.56 2.8 4.537-2.11 9.624-4.716 11.98-.242 1.314 2.493-.437 6.17-3.622 6.17-1.403 0-2.39-.895-2.826-2.23-.39-1.188 0-2.228.637-3.144"/> - <path d="M251.648 191.892c1.23.94 2.1 2.1 1.954 3.98-.157 2.042-.65 2.534-2.243 3.62m1.917-3.038c-.072 1.23-.58 2.027-1.81 2.533" stroke-linecap="round"/> - </g> - <path d="M221.39 186.62l.556.397.597.637.398.796.2.677.04.876-.04.597-.2.676-.397.478-.478.517-.676.36-.877.2-.756.118-.796-.358-.716-.518-.438-.636-.318-.797v-.32l3.9-3.7z" fill="#c7b37f" stroke="none"/> - <path d="M220.165 189.732c-.245-1.322-1.79-1.593-2.388-.812-.922 1.202-.25 3.203 1.626 3.79.637.198 2.11.12 3.065-1.115.774-1 .715-2.24.426-3.224-.187-.636-.7-1.192-1.382-1.71-2.176-1.657-5.692-1.275-6.846 1.51-1.49 3.596 1.75 6.29 4.737 8.32 3.758 2.557 8.04 3.02 11.265 2.986 7.325-.08 12.897-3.582 16.52-5.572.844-.464 1.713-.37 2.15.16.492.595.484 1.557-.2 2.188" stroke-width=".533" stroke-linecap="round"/> - <path d="M198.45 288.947l-1.63.597-1.673 1.274-.716.995-.915 1.592-.398 1.195-.318 1.473-.16 1.114m15.206-8.081l-.12 1.433-.238.994-.716 1.712-1.115 1.473-1.194.954-.876.438-1.234.28" stroke-width=".541"/> - <path d="M255.795 327.286c-.297 1.325-1.538 2.84-4.24 3.388l-.524.108" stroke-width=".613"/> - <path d="M323.374 284.964c1.71 1.594 2.91 3.535 3.834 6.2.39 1.124.712 2.82.667 4.618-.07 2.87-.8 6.006-1.583 7.523-.682 1.323-2.468 7.165-12.26 11.196-5.714 2.354-14.49 2.896-20.54 3.135-8.204.324-15.78.628-20.266 5.896" stroke-width=".694"/> - <path d="M309.99 290.278c.61-.83 2.825-1.88 4.617-.885.59.327 1.288.742 1.9 1.66" stroke-width=".476"/> - <path d="M321.285 283.028c.4.154.8.293 1.15.393 1.144.328 2.22.354 3.152.074 2.264-.68 3.718-2.795 2.54-5.545-.274-.638-.797-1.25-1.39-1.707" stroke-width=".694"/> - <path d="M192.225 223.81c-1.52.942-2.653 1.164-3.836 2.534-1.178 2.33-1.64 3.583-2.1 5.452m36.881-41.352c0 1.375-1.013 2.243-2.388 2.533" stroke-width=".533" stroke-linecap="round"/> - <path d="M317.69 217.615c3.784-.077 14.777 2.888 14.855 15.81.077 12.76-7.876 14.845-11.063 15.695" stroke-width=".51"/> - <path d="M318.684 217.615c6.525-.283 13.257 4.52 13.554 16.505.23 9.364-6.41 13.61-9.596 14.46" stroke-width=".531"/> - <path d="M315.05 262.738l.1-1.28.426-2.036.603-1.582.677-1.307.88-1.055m6.227-2.718l-.1 1.253-.358.856-.557.815-.637.478-.974.358-.856.06-.637-.1m-11.451-42.25l.28-1.352.596-1.254.775-1.254 1.333-1.712 1.055-1.174 1.712-1.732 1.473-1.493.935-1.075 1.234-1.493 1.095-1.652.657-1.353.357-1.752.11-2.172-.2-.63m-9.82 102.541l1.294-.258.974-.518.538-.537.378-.617.26-.995.02-.697M186.85 283.33l.955.08 1.234-.1 1.233-.437m4.001-29.238l-.16 1.114-.258.497-.378.477-.517.398-.578.26-.756.12-.517.038m7.921-12.494l-.28 1.73-.337.758-.697.955-.935.717-.955.477-1.85.458m12.237-31.806l-.358 1.035-.438.755-.597.836-.836.757-.995.478-.837.2-.518-.04m.304-4.958l.02.796" stroke-width=".451"/> - <g stroke-width=".505"> - <path d="M203.428 243.246a5.484 5.484 0 0 1-1.672 1.04m120.414 35.86c.07.074.3.11.38.16 1.134.676 3.367-.168 2.71-1.92" stroke-linecap="round"/> - <path d="M318.228 255.683c.806 1.052 2.324 1.325 3.524 1.012.908-.237 1.57-.808 1.995-1.552.48-.84.623-1.936.313-2.982a3.925 3.925 0 0 0-.68-1.32c-.34-.45-.763-.928-1.09-1.142-.088-.057-.174-.134-.266-.197m5.139 27.214a3.15 3.15 0 0 0 .053-.576c0-.927-.388-1.776-1.03-2.348-.218-.196-.43-.5-.695-.632m.382.376c-.038-1.49-1.258-2.558-2.77-2.823m-3.339 2.27c-.347-.284-.72-.525-1.045-.865-1.96-2.05-3.433-5.08-3.453-8.54-.02-3.313 1.314-6.686 2.866-8m-45.2 67.719l1.433-1.313.995-.757 1.87-1.154 1.753-.836 1.234-.318 2.468-.56 2.866-.437m-23.607 15.492c-1.035 1.593-3.503 3.98-6.09 4.936-2.588-.955-5.056-3.343-6.09-4.936"/> - <path d="M251.535 330.102c-.324 1.202-.914 2.368-1.775 3.303" stroke-linecap="round"/> - <path d="M251.79 328.433l-.357 1.75m-1.869 3.344l-.756.756-1.354.757-1.552.477m-4.514-142.263c.194-.605.392-1.06.363-2.055-.098-3.362-2.59-4.886-3.585-7.99-.593-1.85-.83-3.457.525-4.77 1.18-1.147 2.55-1.13 4.092-.525 3.08 1.207 6.814 4.678 13.33 4.774-6.516-.097-10.25-3.568-13.33-4.775-1.542-.605-3.038-.782-4.22.365-1.353 1.314-.99 3.08-.397 4.93.995 3.104 3.36 4.628 3.46 7.99.028.994-.234 1.45-.428 2.054"/> - <path d="M256.092 182.46c6.41-.337 11.902-4.643 13.674-4.994 1.58-.314 2.462-.172 3.62.88-1.158-1.052-2.478-1.02-3.978-.432-3.08 1.208-6.782 4.68-13.297 4.775m63.679 90.309c-2.667-1.91-4.952-5.558-4.976-9.868-.018-3.315 1.314-6.687 2.866-8m-55.96 78.06c-1.036 1.59-3.504 3.98-6.09 4.935-2.59-.955-5.057-3.344-6.09-4.936"/> - <path d="M245.335 194.94c.667-.37 1.285-.72 1.856-1.035.845-.463 1.86-.366 2.296.162.492.596.568 1.63-.116 2.26" stroke-linecap="round"/> - <path d="M235.766 199.42c4.397-.92 7.98-2.888 10.688-4.403m25.816 131.347c.365.248.598.764.598.764.1.24.23.467.267.68.207 1.217-.592 1.976-1.578 2.09-1.356.16-2.374-.647-2.807-1.622m-33.21-129.082c4.397-.918 7.98-2.887 10.688-4.402m78.062 85.523c-.835.322-1.293.278-2.333-.183-.427-.19-.915-.483-1.488-.81-2.04-1.156-4.46-2.98-6.728-7.24a15.05 15.05 0 0 1-1.368-3.58c-.217-.888-.367-1.766-.4-2.668-.055-1.536.11-3.14.494-4.977.633-3.034 1.395-4.68 3.264-7.245.92-1.26 1.712-2.03 3.424-2.07M204.2 220.1c1.424 1.208 2.11 2.705 2.11 4.576 0 2.48-2.073 6.528-7.168 7.96-1.953.55-3.885.108-5.054-.603"/> - <path d="M205.036 228.495c.915.637 1.273 1.352 1.273 2.596 0 .853-.552 1.958-1.49 3.005-1.534 1.713-4.137 3.17-7.022 3.205-1.565.02-3.19-.308-4.824-1.4-1.747-1.17-2.667-2.747-3.065-4.3"/> - <path d="M204.954 233.836c1.037.953 1.355 2.146 1.355 3.65 0 2.196-.893 3.89-2.944 5.686-.46.402-.976.778-1.553 1.116m103.545-17.661v2.825m-.225-3.522v3.98m.225-12.597v5.215m-.225-6.368v7.127m-1.522 65.568c-.987 1.964-1.777 2.995-3.343 4.538-1.58 1.557-2.674 2.27-4.657 3.264-1.93.968-3.148 1.276-5.255 1.752-2.105.474-3.337.578-5.493.675-1.977.09-3.1.007-5.074-.13-2.113-.146-3.285-.44-5.395-.626-1.743-.154-2.727-.295-4.477-.29-1.798.004-2.83.015-4.6.33-1.65.29-2.586.524-4.14 1.153-2.148.87-4.577 2.39-5.094 3.065-.518-.676-2.946-2.194-5.096-3.065-1.553-.63-2.49-.862-4.14-1.154-1.77-.315-2.8-.326-4.6-.33-1.75-.006-2.733.136-4.476.29-2.11.184-3.282.48-5.395.625-1.975.137-3.096.22-5.074.13-2.155-.097-3.387-.2-5.492-.676-2.107-.478-3.322-.787-5.255-1.753-1.984-.992-3.077-1.707-4.657-3.264-.17-.168-.332-.33-.486-.488m33.735 42.699l1.433-.178m24.218-1.885l1.446-.137 1.378-.552.965-.585 1.31-1.55.274-.585.206-1.344.07-.62m37.528-109.356c.62-2.113-.137-4.343-2.185-4.283m-105.561 37.251c-.518 1.755-1.635 2.954-2.877 3.734m2.913-37.372c-.51 1.48-1.448 2.536-2.93 3.205-1.478.667-3.19.044-4.103-.662"/> - <path d="M195.046 225.894c1.225.642 2.468-.298 2.213-1.892-.12-.746-.925-1.69-2.014-1.758" stroke-linecap="round"/> - <path d="M200.125 293.304c.264.25.32.57.677.637.538.1.956.3 1.493-.417.662-.883.306-2.257-.383-3.122-.737-.924-2.874-1.742-4.665-.747-.6.333-1.35.77-2.03 1.672-.257.34-.692.89-.916 1.274-.54.926-.764 1.684-.87 1.99-1.64 4.657.306 9.555 3.32 12.54"/> - <path d="M272.174 326.262c.327.34.517.637.517.637.102.238.184.465.22.678.207 1.218-.59 1.977-1.578 2.09-1.356.16-2.263-.64-2.697-1.615" stroke-linecap="round"/> - <path d="M311.552 187.807c2.677.326 5.01 2.88 5.01 5.628 0 3.542-1.194 4.862-3.06 7.396-1.996 2.713-8.518 7.684-8.518 13.336 0 3.423.955 5.613 3.423 6.727 1.592.72 3.452-.06 4.3-.824 2.07-1.872 1.242-5.153-.916-5.545-2.626-.478-3.12 3.658-.556 3.383m14.259 55.249c-.236-1.418-1.44-2.498-2.892-2.498-1.62 0-2.933 1.344-2.933 3.004 0 .813.314 1.55.826 2.092"/> - <path d="M307.092 220.1c-1.423 1.208-2.11 2.705-2.11 4.576 0 2.48 2.074 6.528 7.17 7.96 1.952.55 3.818.5 4.986-.212m-124.826-8.27c-1.217.406-2.738 1.166-3.865 2.762-.95 1.346-1.505 3.218-1.848 4.856-.15.717-.33 2.986.128 5.33.34 1.73 1.054 3.342 1.844 4.51.284.417.54.7.83.988.265.265.642.5.908.703m51.211 73.635c3.88 1.72 6.723 3.008 9.134 6.815.756 1.194.956 2.906.956 3.9 0 2.15-.876 4.58-2.668 6.09-1.662 1.405-3.304 1.832-5.334 1.633-1.54-.15-2.985-1.273-3.224-2.07m-37.181-90.004c2.19 1.712 3.105 3.373 3.105 6.01 0 3.026-1.473 4.897-3.185 5.972"/> - <path d="M201.21 253.138c3.265 4.06 4.997 6.47 5.096 11.305.093 4.538-1.353 7.643-4.06 10.907" stroke-linecap="round"/> - <path d="M263.798 199.46c.593-.39 1.03-1.013 1.278-1.784.386-1.19.394-2.206-.243-3.12.786 1.027.858 1.895.637 3.143-.14.794-.647 1.212-1.278 1.783m41.165 68.928v12.924h.034c0 .01-.004 1.223-.107 1.99-.07.504-.14.958-.22 1.384"/> - <path d="M305.132 267.167v13.938h.034c0 .01-.005 1.223-.108 1.99-.11.8-.224 1.478-.374 2.112m.448-34.357v11.623m.225-10.707v9.453m0-21.475v7.087m-.225-7.921v8.736m.225-15.146v2.748m-.225-3.308v3.983m-1.475 52.154c-.085.18-.175.364-.27.555-.99 1.964-1.78 2.995-3.345 4.538-1.58 1.557-2.675 2.27-4.657 3.264-1.932.968-3.148 1.276-5.255 1.752-2.106.475-3.337.58-5.493.676-1.978.09-3.1.006-5.074-.13-2.113-.146-3.285-.44-5.395-.626-1.743-.153-2.727-.294-4.477-.29-1.797.005-2.827.016-4.598.33-1.65.292-2.587.525-4.14 1.154-2.15.87-4.578 2.388-5.095 3.065-.518-.677-2.946-2.194-5.096-3.065-1.552-.63-2.488-.862-4.14-1.154-1.77-.314-2.8-.325-4.598-.33-1.75-.005-2.734.137-4.477.29-2.11.185-3.282.48-5.395.626-1.975.136-3.096.22-5.074.13-2.156-.097-3.388-.2-5.493-.676-2.107-.478-3.322-.786-5.255-1.752-1.984-.992-3.077-1.707-4.657-3.264-.826-.815-1.437-1.488-1.974-2.23m-1.612-2.55c.34 2.53-.723 5.016-1.804 6.16-.676.717-2.15 2.086-3.98 2.11-3.026.04-3.93-2.04-4.112-2.547"/> - <path d="M204.493 287.078a8.23 8.23 0 0 1 1.48 2.03c.757 1.433.524 3.83-.075 4.937a3.73 3.73 0 0 1-.243.383m-16.195 14.41c1.8 1.888 4.52 3.94 8.7 5.66 5.714 2.352 14.49 2.894 20.54 3.133 8.046.318 15.46.65 19.973 5.632m13.891-3.258c1.33 1.31 2.687 2.71 3.26 4.505m-5.876 9.16a6.91 6.91 0 0 1-.554.528c-1.662 1.403-3.304 1.83-5.334 1.632-1.54-.15-3.025-1.305-3.423-2.06m-4.282-2.327c.074.102.152.2.234.295.965 1.126 2.49 1.83 4.083 1.963m21.498-.061c-1.035 1.592-3.504 3.98-6.09 4.936-2.588-.956-5.056-3.344-6.09-4.936l-.243-.372m12.463.362c.185.2.383.39.593.567 1.662 1.404 3.304 1.83 5.334 1.632 1.54-.152 2.762-1.18 3.256-2.07 0 0 .277-.3.354-.583"/> - <path d="M271.232 333.307l-.594.956-.904.75-1.37.567-1.24.052"/> - <path d="M274.447 324.21c.733.56 1.452 1.41 1.843 2.32.25.584.367 1.227.403 1.893a4.684 4.684 0 0 1-1.138 3.315c-1.023 1.19-2.618 1.912-4.315 1.98a4.386 4.386 0 0 1-.376 0m.148-.228c-1.624.066-3.074-.63-4.144-1.727m50.942-54.295c-1.268-1.167-2.58-2.785-3.845-5.16a15.042 15.042 0 0 1-1.368-3.58c-.217-.888-.367-1.766-.4-2.667-.054-1.536.11-3.14.494-4.977.634-3.033 1.764-5.38 3.266-7.245.51-.635 1.103-1.43 1.664-1.785m-1.103-60.654c2.03.16 3.91 2.346 3.887 4.488-.036 3.112-1.08 4.398-3.528 7.447-2.11 2.627-8.44 7.245-8.28 11.663.028.785.45 1.596.923 2.248m-2.53 2.771c.45.444.994.81 1.642 1.103 1.158.523 2.458.254 3.407-.227M295.1 186.317c.68.463 1.374 1.173 1.75 2.08 1.49 3.594-1.752 6.29-4.737 8.32-2.14 1.454-4.452 2.232-6.64 2.625"/> - <path d="M291.68 193.244c-.723-.007-1.583-.213-2.518-1.198-.215-.226-.467-.526-.566-.795m-11.886 3.923c-.378-.19-.784-.465-1.056-.77-.71-.793-1.183-1.868-.636-3.508.506-1.517 2.942-5.773 3.062-8.718.182-4.5-1.55-7.156-4.256-8.192"/> - <path d="M277.852 181.17l-.106 1.693-.458 1.728-.88 2.363-.67 1.516-.706 1.515-.352 1.057-.14.776.105.74m30.41 101.022c.14.34.477.67.477.67.518.863 2.53 2.383 4.36 2.407 3.025.04 3.744-2.078 3.82-2.548.383-2.31-.406-2.94-1.59-3.59 0 0-.698-.363-1.534-.223" stroke-linecap="round"/> - <path d="M189.558 283.48c-1.068.272-2.07.28-2.948.016-2.265-.68-4.1-2.85-3.164-5.545m10.71-25.458c.226.227.3.567.334.855.35 2.935-2.222 3.79-4.053 3.312-.907-.237-1.988-1.08-2.412-1.823a3.765 3.765 0 0 1-.493-1.843m17.648-18.934c.457.422.776.89.988 1.412m-.908-6.812c.426.295.73.67.935 1.045"/> - <path d="M206.29 232.417c-.247.61-.674 1.268-1.244 1.904-1.535 1.714-4.138 3.17-7.023 3.206-1.565.02-3.19-.308-4.824-1.4-1.75-1.17-2.888-2.83-3.266-4.463" stroke-linecap="round"/> - <path d="M204.344 220.227c.886.753 1.567 1.713 1.894 2.71"/> - <path d="M206.264 226.59c-.708 2.343-2.82 5.24-6.898 6.272-1.947.493-4.455-.124-5.31-.852" stroke-linecap="round"/> - <path d="M192.03 226.043c.214 2.11 1.626 3.69 4.302 3.74 3.763.072 6.05-5.412 2.707-9.263"/> - <path d="M183.562 244.424c.55.69 1.197 1.31 1.86 1.862 1.34 1.116 2.923 2.1 4.746 2.638m4.222.394c3.364-.404 5.26-2.91 4.884-5.842-.286-2.234-2.336-3.95-3.73-4.05" stroke-linecap="round"/> - <path d="M199.88 214.487c1.46-.054 2.288 1.27 2.275 2.388"/> - <path d="M199.537 194.463a9.19 9.19 0 0 0 4.024 4.658m115.343 24.771c1.376 1.884.475 5.598-3.266 5.668-1.46.028-2.78-.782-3.552-2.01" stroke-linecap="round"/> - <path d="M305.357 199.296v12.64"/> - <path d="M195.005 225.864c1.155.835 2.637-.576 2.064-2.074-.39-1.01-1.826-2.102-3.816-.75-2.198 1.496-1.592 6.21 2.627 6.29 3.764.07 6.052-5.413 2.708-9.263-3.217-3.704-9.076-2.838-12.897.203-1.625 1.293-4.697 4.682-5.652 9.3-.297 1.437-.49 2.617-.467 4.06.016.95.104 2.015.39 3.343.574 2.683 1.518 4.65 2.46 6.014.36.523.69.958 1.042 1.31.655.656.85 1.003 1.512 1.553 2.163 1.8 4.95 3.21 8.36 3.065 3.74-.16 5.89-2.786 5.493-5.89-.386-3.01-3.425-4.51-5.414-3.106-1.353.954-1.835 3.913.557 4.616 1.354.4 2.548-1.313 1.593-2.308m103.648-57.559c2.16-1.173 3.824-.956 5.055.753 1.338 1.857 1.53 4.328 1.234 5.776-.438 2.15-1.06 3.042-2.768 4.602" stroke-linecap="round"/> - <path d="M304.425 185.626c2.468-1.632 5.14-.94 6.608 1.234 1.075 1.592 1.35 2.924 1.274 4.896-.13 3.38-2.245 6.058-4.578 7.364" stroke-linecap="round"/> - <path d="M316.047 191.32c2.03.158 3.662 1.996 3.662 4.14 0 3.064-.856 4.394-3.304 7.443-2.11 2.627-8.44 7.245-8.28 11.663.06 1.67 1.47 3.245 2.684 3.333"/> - <path d="M316.288 225.864c-1.154.835-2.627-.514-1.99-1.947.44-.99 1.75-2.23 3.742-.876 2.198 1.496 1.592 6.21-2.628 6.29-3.763.07-6.306-5.272-2.707-9.263 3.286-3.643 9.378-2.93 13.2.11 1.625 1.293 4.896 4.846 5.598 9.51.85 5.64.74 12.58-5.088 16.855-2.343 1.718-5.59 2.5-8.456 2.374-3.742-.164-5.892-2.787-5.494-5.892.386-3.01 3.285-4.284 5.414-3.105 2.21 1.224 1.825 4.334-.557 4.617-1.4.166-2.548-1.314-1.593-2.31" stroke-linecap="round"/> - <path d="M314.296 223.918c.62-2.793 3.013-3.053 4.945-3.024 5.273.077 8.918 6.33 8.98 12.38.076 7.64-3.244 12.14-8.828 12.378-1.445.062-3.935-.625-3.977-2.388"/> - <path d="M317.542 222.67c5.56 1.234 7.51 6.243 7.51 11.023 0 3.9-.385 9.227-7.973 11.1" stroke-linecap="square"/> - <path d="M326.712 276.265a3.125 3.125 0 1 0-5.01 1.874"/> - <path d="M315.56 271.53c1.047 1.55 2.313 3.278 4.988 4.73m-1.004 8.438c-2.62-1.72-7.597-3.974-12.095-1.755-1.67.823-2.788 1.84-3.42 3.502-1.135 2.99.135 6.284 1.43 7.653.675.717 2.15 2.086 3.98 2.11 3.024.04 3.744-2.077 3.82-2.547.36-2.19-.915-3.065-1.592-3.303-.52-.184-2.207-.137-2.566 1.057-.12.398-.14 1.092.178 1.61" stroke-linecap="round"/> - <path d="M272.38 326.738c.835 1.712-.116 2.572-1.275 2.707-1.71.2-2.627-1.155-2.747-2.39-.193-2 1.493-3.813 3.504-3.78 1.81.03 3.284 1.197 3.975 2.804.25.583.367 1.225.403 1.892a4.682 4.682 0 0 1-1.138 3.314c-1.023 1.19-2.618 1.912-4.315 1.98-3.38.136-6.01-3.025-6.01-6.25 0-6.17 9.15-9.534 12.777-10.4 4.458-1.064 7.17-1.462 14.33-1.86 2.866-.16 4.965-.078 8.12-.406 2.825-.292 4.3-.43 7.206-1.107 3.626-.844 7.006-2.348 10.03-5.095 2.33-2.115 3.663-3.622 4.742-6.528.93-2.507 1.358-7.473-1-11.146-2.082-3.246-4.975-4.932-8.28-5.41-2.983-.43-5.6.857-7.164 3.818-.756 1.433-.523 3.83.076 4.936.517.956 1.995 2.365 3.825 2.39 3.024.04 3.743-2.08 3.82-2.55.36-2.188-.915-3.064-1.592-3.303-.52-.183-2.208-.136-2.566 1.058-.12.398-.14 1.092.178 1.61" stroke-linecap="round"/> - <path d="M269.773 316.938c-3.88 1.72-6.723 3.008-9.134 6.815-.757 1.194-.956 2.906-.956 3.9 0 2.15.876 4.58 2.667 6.09 1.663 1.405 3.305 1.832 5.335 1.633 1.54-.15 2.986-1.273 3.224-2.07" stroke-linecap="round"/> - <path d="M308.086 243.302c-1.815.606-3.105 3.373-3.105 6.01 0 3.026 1.474 4.897 3.185 5.972"/> - <path d="M310.077 253.138c-3.264 4.06-4.996 6.47-5.095 11.305-.093 4.538 1.354 7.643 4.06 10.907" stroke-linecap="round"/> - <path d="M292.68 185.64l.28-.414c1.353-1.99 3.743-2.514 5.493-1.194 2.11 1.593 2.643 4.302 2.07 7.165-.358 1.792-1.573 3.284-3.238 4.363"/> - <path d="M212.08 184.668c-2.07-.955-3.773-.77-5.055.753-1.473 1.752-1.53 4.328-1.234 5.776.44 2.15 1.06 3.042 2.77 4.602" stroke-linecap="round"/> - <path d="M206.863 185.626c-2.468-1.632-5.14-.94-6.608 1.234-1.074 1.592-1.35 2.924-1.273 4.896.13 3.38 2.244 6.058 4.577 7.364"/> - <path d="M199.74 187.807c-2.675.326-4.812 2.595-4.812 5.34 0 3.544.873 4.977 2.863 7.684 1.996 2.714 8.52 7.684 8.52 13.336 0 3.423-.956 5.613-3.424 6.727-1.59.72-3.452-.06-4.3-.824-2.07-1.872-1.24-5.153.916-5.545 2.628-.478 3.12 3.658.558 3.383"/> - <path d="M195.24 191.32c-2.03.158-4.027 1.905-4.027 4.048 0 3.065 1.22 4.486 3.67 7.534 2.11 2.628 8.07 7.154 7.91 11.573-.06 1.67-1.183 3.713-2.297 3.474"/> - <path d="M190.464 252.897c.955-2.308 3.423-1.274 3.575 0 .35 2.935-2.223 3.822-4.054 3.344-.907-.236-1.57-.807-1.994-1.55-.48-.84-.623-1.936-.313-2.983.14-.474.34-.874.678-1.32a3.98 3.98 0 0 1 1.024-.97c.704-.45 1.47-.493 2.674-.493 4.46 0 8.36 5.268 9.67 10.74.43 1.803 1.025 5.822.203 9.634-.877 4.06-2.632 6.87-4.69 9.003-1.116 1.155-2.636 2.183-4.604 3.296-.607.343-2.212 1.055-3.326 1.374-1.145.327-2.22.352-3.153.072-2.264-.68-3.718-2.795-2.54-5.544.918-2.14 4.3-3.185 5.812-.558.128.223.327.71.32 1.235-.007.7-.298 1.545-.798 1.863-1.15.732-2.99.525-2.904-1.505" stroke-linecap="round"/> - <path d="M187.003 280.315c.836.322 1.293.278 2.333-.183.427-.19.916-.483 1.488-.81 2.038-1.156 4.46-2.98 6.728-7.24a15.1 15.1 0 0 0 1.368-3.58c.216-.888.366-1.766.4-2.668.054-1.536-.11-3.14-.495-4.977-.633-3.034-1.395-4.68-3.264-7.245-.918-1.26-1.71-2.03-3.422-2.07m-7.559 24.723a3.125 3.125 0 1 1 5.012 1.874"/> - <path d="M185.795 273.157c.235-1.418 1.44-2.498 2.89-2.498 1.62 0 2.934 1.344 2.934 3.004a3.04 3.04 0 0 1-.827 2.092"/> - <path d="M191.498 272.998c2.667-1.91 4.952-5.558 4.976-9.868.018-3.315-1.314-6.687-2.866-8"/> - <path d="M195.732 271.53c-1.046 1.55-2.312 3.278-4.987 4.73" stroke-linecap="round"/> - <path d="M203.68 282.947c-.743-1.746-2.218-2.553-4.62-2.81-2.386-.254-4.453.402-6.567 1.54-4.127 2.22-6.428 4.605-7.96 9.032-.39 1.123-.714 2.817-.67 4.617.073 2.87.8 6.006 1.584 7.523.683 1.322 2.468 7.165 12.26 11.196 5.715 2.353 14.49 2.895 20.54 3.134 8.324.328 16.003.637 20.46 6.13"/> - <path d="M191.744 284.698c2.62-1.72 7.597-3.974 12.095-1.755 1.668.823 2.786 1.84 3.417 3.502 1.137 2.99-.134 6.284-1.427 7.653-.677.717-2.15 2.086-3.98 2.11-3.026.04-3.745-2.077-3.822-2.547-.36-2.19.915-3.065 1.592-3.303.52-.184 2.208-.137 2.566 1.057.12.398.14 1.092-.178 1.61" stroke-linecap="round"/> - <path d="M202.168 292.582c.24-.875.116-1.795-.676-2.667-.796-.875-2.906-1.71-4.698-.716-.6.332-1.35.77-2.03 1.67-.257.34-.69.89-.915 1.275-.543.927-.766 1.685-.873 1.99-1.97 5.595 1.235 11.536 5.25 14.09 3.504 2.23 7.086 2.867 11.505 3.265 2.045.185 3.203.224 5.254.32 1.65.075 3.077.048 4.42.032 1.104-.014 2.152-.01 3.223-.033 1.748-.042 3.557-.083 5.77.078 2.33.17 4.083.23 6.052.558 1.286.214 2.794.42 4.374.775.474.108.955.195 1.438.34.325.098.645.198.963.295 2.853.87 5.625 1.93 7.812 3.338.675.435 1.453.856 1.984 1.387.407.407.754.643 1.087.97 1.532 1.507 3.097 3.138 3.464 5.346.067.407.067.834.067 1.283 0 1.432-1.165 3.383-4.31 4.02"/> - <path d="M238.91 326.738c-.837 1.712.114 2.572 1.273 2.707 1.712.2 2.627-1.155 2.747-2.39.194-2-1.493-3.813-3.503-3.78-1.81.03-3.284 1.197-3.976 2.804-.25.583-.366 1.225-.402 1.892a4.683 4.683 0 0 0 1.138 3.314c1.023 1.19 2.618 1.912 4.316 1.98 3.38.136 6.01-3.025 6.01-6.25 0-6.17-9.15-9.534-12.778-10.4-4.458-1.064-7.17-1.462-14.33-1.86-2.866-.16-4.965-.078-8.12-.406-2.824-.292-4.3-.43-7.206-1.107-3.626-.844-7.006-2.348-10.03-5.095-2.33-2.115-3.663-3.622-4.742-6.528-.93-2.507-1.358-7.473 1-11.146 2.082-3.246 4.975-4.932 8.28-5.41 2.984-.43 5.6.857 7.165 3.818.757 1.433.524 3.83-.075 4.936-.518.956-1.996 2.365-3.826 2.39-3.026.04-3.745-2.08-3.822-2.55-.358-2.188.915-3.064 1.592-3.303.52-.183 2.208-.136 2.566 1.058.12.398.14 1.092-.177 1.61"/> - <path d="M218.61 185.64a97.004 97.004 0 0 0-.282-.414c-1.353-1.99-3.743-2.514-5.493-1.194-2.11 1.593-2.642 4.302-2.07 7.165.358 1.792 1.574 3.284 3.238 4.363" stroke-linecap="round"/> - <path d="M293.396 191.677c-3.224 3.503-6.448 4.622-11.265 4.777-1.503.05-4.378-.477-6.05-1.668-1.074-.765-2.27-2.074-1.513-4.343.506-1.516 2.943-5.77 3.062-8.717.18-4.5-1.55-6.967-4.257-7.922-5.004-1.766-10.376 3.18-13.613 4.26-1.693.563-2.555.63-4.1.636-1.546-.006-2.44-.073-4.13-.637-3.24-1.08-8.61-6.025-13.615-4.26-2.707.956-4.438 3.422-4.256 7.923.118 2.945 2.555 7.2 3.06 8.717.757 2.27-.438 3.578-1.512 4.343-1.672 1.19-4.547 1.717-6.05 1.668-4.817-.155-8.042-1.274-11.266-4.777"/> - <path d="M237.865 315.53c.638.25.155-.15 4.196 1.64 3.88 1.72 6.633 3.226 9.044 7.033.757 1.194.955 2.906.955 3.9 0 .643-.078 1.31-.235 1.968" stroke-linecap="round"/> - <path d="M238.126 332.83a6.41 6.41 0 0 0 2.602.66c3.38.136 6.01-3.025 6.01-6.25 0-2.234-1.217-4.117-2.92-5.63"/> - <path d="M238.858 326.733c-.816 1.82.347 2.803 1.506 2.938 1.71.2 2.675-1.154 2.794-2.388.13-1.342-.586-2.647-1.678-3.32" stroke-linecap="round"/> - <path d="M312.08 187.837c2.57 0 4.81 2.86 4.81 5.795 0 3.382-1.8 5.452-3.117 7.017-1.06 1.26-2.21 2.386-3.575 3.76"/> - <path d="M309.033 185.13c.874.403 1.64 1.088 2.225 1.954 1.075 1.593 1.348 2.925 1.274 4.896-.128 3.38-2.56 5.72-4.734 7.148m-3.818-13.998c.177.15.348.323.512.518 1.473 1.752 1.587 4.34 1.234 5.776-.53 2.157-1.243 3.087-2.994 4.377m-4.052-11.558c2.11 1.592 2.737 4.346 2.038 7.182-.5 2.025-1.773 3.24-3.36 4.207m8.9 32.863c.252.74.67.998 1.194 1.548 1.14 1.195 2.814 2.224 4.927 2.818 1.95.55 3.71.137 5.052-.7M187.028 275.39c.992-.018 1.98.65 2.628 1.775a2.6 2.6 0 0 1 .322 1.234c-.008.7-.315 1.45-.815 1.767-1.15.732-3.19.417-3.106-1.613" stroke-linecap="round"/> - <path d="M193.193 249.037c3.944.736 7.74 5.493 8.984 10.683.43 1.802 1.024 5.822.202 9.633-.876 4.06-2.63 6.87-4.69 9.003-.49.506-1.055.987-1.702 1.462l-.84.57m-6.342-9.708c1.62 0 3.038 1.55 3.038 3.21 0 .814-.315 1.55-.827 2.092"/> - <path d="M187.71 272.563c1.687 0 3.293 1.626 3.293 3.352a3.12 3.12 0 0 1-1.185 2.45"/> - <path d="M203.182 255.59c1.55 2.08 2.573 3.872 3.05 6.18m-.055 6.79a13.815 13.815 0 0 1-1.16 3.236c-.65 1.296-1.787 2.738-2.842 3.714" stroke-linecap="round"/> - <path d="M203.428 243.466c1.494 1.168 2.395 2.377 2.816 3.824"/> - <path d="M206.285 239.575c-.393 1.362-1.283 2.393-2.696 3.683m-7.324-13.744l1.725-.454 1.02-.77.66-.932.566-1.452.227-1.18" stroke-linecap="round"/> - <path d="M192.773 223.442c-.544.136-1.234.338-1.958.682-.97.462-1.998 1.18-2.82 2.343-.95 1.346-1.503 3.22-1.846 4.856-.15.717-.33 2.986.128 5.33.338 1.73 1.053 3.342 1.844 4.51.283.417.54.78.83 1.068 1.035 1.036 1.99 1.673 3.582 1.354"/> - <path d="M202.435 215.85c-.28 1.026-.832 2.3-2.445 2.16" stroke-linecap="round"/> - <path d="M196.54 222.822c-1.547-1.513-4.826-1.907-8.087.155-.42.265-.838.606-1.253.952-.45.372-.807.802-1.153 1.27-.376.508-.837 1.372-1.116 1.946-.384.79-.543 1.31-.754 2.12-.596 2.28-.593 4.4-.523 5.005.09.776.164 1.488.29 2.142.433 2.24 1.095 3.81 1.78 4.944.72 1.195 2.512 3.938 6.174 4.3 1.44.142 3.897-.518 3.977-2.39"/> - <path d="M291.01 189.655c.245-1.322 1.838-1.577 2.437-.796.92 1.2.312 3.266-1.563 3.852-.637.2-2.11.12-3.065-1.114-.775-1-.716-2.24-.427-3.224.187-.638.7-1.193 1.382-1.712 2.176-1.656 5.692-1.274 6.846 1.512 1.49 3.595-1.75 6.29-4.736 8.32-3.758 2.556-8.04 3.02-11.265 2.985-7.326-.08-12.9-3.583-16.52-5.573-.845-.464-1.714-.37-2.15.16-.494.595-.486 1.557.198 2.188" stroke-linecap="round"/> - <path d="M292.485 188.416c.776.036.984.34 1.222.65.922 1.2.248 3.267-1.626 3.852m14.269 41.235c-2.79 3.037-.224 8.25 1.862 9.43.722.56 1.03.264 1.608.602" stroke-linecap="round"/> - <path d="M306.5 228.347c-.917.637-1.24 1.352-1.275 2.596-.03 1.04.15 2.195 1.128 3.21 1.52 1.584 4.498 2.962 7.383 3 1.565.018 3.19-.31 4.824-1.402 1.747-1.168 2.667-2.746 3.065-4.298m-16.688 49.43c0 .01-.005 1.223-.108 1.99-.304 2.234-.66 3.52-1.673 5.534-.99 1.963-1.778 2.994-3.344 4.538-1.58 1.557-2.675 2.27-4.658 3.264-1.93.967-3.147 1.274-5.254 1.75-2.105.476-3.336.58-5.492.677-1.978.09-3.1.006-5.074-.13-2.113-.147-3.285-.44-5.396-.626-1.742-.152-2.727-.293-4.476-.29-1.798.006-2.83.017-4.6.33-1.65.293-2.586.525-4.14 1.155-2.15.87-4.577 2.388-5.095 3.065-.517-.677-2.946-2.195-5.095-3.065-1.553-.63-2.49-.862-4.14-1.155-1.77-.313-2.8-.324-4.6-.33-1.75-.004-2.733.138-4.476.29-2.11.186-3.282.48-5.395.627-1.974.136-3.096.22-5.073.13-2.156-.098-3.388-.2-5.493-.677-2.107-.476-3.324-.783-5.255-1.75-1.984-.995-3.08-1.708-4.658-3.265-1.566-1.544-2.356-2.575-3.344-4.538-1.013-2.014-1.37-3.3-1.672-5.534-.104-.767-.108-1.98-.108-1.99v-81.418h98.585v81.418h.035z"/> - </g> - <g fill="#c7b37f" stroke="#c7b37f"> - <path d="M198.354 292.516a2 2 0 1 1 4 0 2 2 0 0 1-4 0zM186.07 278.38c0-.99.634-1.792 1.414-1.792.78 0 1.413.802 1.413 1.792s-.632 1.79-1.413 1.79c-.78 0-1.413-.8-1.413-1.79z" stroke-width=".263"/> - <path d="M193.05 242.872c0-.812.61-1.47 1.364-1.47.754 0 1.364.658 1.364 1.47 0 .813-.61 1.47-1.364 1.47-.753 0-1.364-.657-1.364-1.47zm24.504-52.505c-.086-.815.403-1.535 1.093-1.607.69-.072 1.32.53 1.405 1.345.086.815-.403 1.535-1.093 1.607-.69.072-1.32-.53-1.406-1.345z" stroke="none"/> - </g> - <g stroke="#c7b37f" stroke-width=".505" stroke-linecap="round"> - <path d="M191.447 251.156a1.79 1.79 0 0 0-.677.466c-.21.222-.254.303-.418.665-.12.265-.15.572-.195.95m3.773 21.4c.278-.337.446-.518.713-.864.222-.287.354-.446.55-.752.175-.275.254-.443.41-.732.218-.406.327-.643.537-1.055m-1.012 11.149c-.473.218-.753.314-1.214.558-.35.186-.54.304-.876.514a13.92 13.92 0 0 0-.995.67c-.393.287-.595.475-.975.78m11.972-30.313c-.257-.264-.396-.418-.658-.677-.274-.27-.423-.43-.717-.676-.285-.24-.466-.35-.764-.575"/> - <path d="M203.35 243.953c-.38.17-.58.303-.974.434-.453.15-.76.226-1.198.246" stroke-linecap="butt"/> - <path d="M189.952 230.748c.13.464.16.74.334 1.19.22.565.405.86.74 1.366.35.525.57.816 1.02 1.258.396.388.647.583 1.11.887.44.288.727.388 1.19.636m-.79-4.687c.39.208.59.365.996.534.368.153.586.217.975.306.526.12.834.15 1.373.163.584.015.757 0 1.493-.118m5.737-32.526c-.64-.373-1.03-.536-1.637-.956-.618-.426-.96-.687-1.497-1.213-.387-.378-.605-.6-.927-1.035-.29-.388-.4-.643-.654-1.055m5.999-3.641c.2.535.258.862.514 1.373.347.694.616 1.058 1.138 1.632.725.795 1.338 1.02 2.194 1.672m1.162-4.734c.198.48.26.778.51 1.234.22.404.373.62.664.975.37.454.613.692 1.075 1.054.538.422.92.547 1.505.896"/> - </g> - <path d="M266.64 185.298c-.042-1.356-1.378-1.497-1.89-1.497-1.477 0-1.877.922-3.72 1.912-2.31 1.24-3.305 1.516-5.358 1.535-2.053-.02-3.075-.295-5.385-1.535-1.843-.99-2.153-1.882-3.63-1.882-.802 0-1.838.693-1.8 1.963 0 0-.014.41.05.69.022.104.15.07.19.163-.02-.616.106-.935.41-1.348.39-.53 1.036-.672 1.3-.672 1.477 0 2.024.948 3.867 1.937 2.31 1.24 3.304 1.516 5.358 1.535 2.053-.02 3.075-.294 5.385-1.535 1.843-.99 2.373-2.016 3.85-2.016.512 0 .874.33 1.04.853.105.32.046.535.073.662.013.062.09.056.106.123.05-.24.17-.324.153-.887z" fill="#703d29" stroke-width=".142"/> - </g> - <g fill="#703d29"> - <path d="M211.517 299.223c.415-.447.73-.278.806-.484.057-.153-.066-.17-.235-.232-.226-.084-.465-.133-.69-.217-.234-.086-.446-.206-.68-.294-.096-.036-.32-.15-.383.02-.117.313.82.286.506 1.128-.053.143-.186.45-.652.96l-2.12 2.307c-.048.054-.127.168-.175.15-.048-.02-.042-.16-.043-.23l.03-3.273c.003-.62.056-1.08.157-1.35.14-.375.573-.06.663-.302.057-.152.014-.158-.244-.255-.13-.048-.376-.1-.89-.292-.275-.102-.535-.24-.8-.34-.122-.045-.345-.21-.425.005-.023.063.062.156.083.174.297.213.372.353.38.753l.057 5.958c.005.43.052.55.132.58.09.032.15-.006.325-.206l4.2-4.558z"/> - <path d="M213.99 300.145c.273-.866.785-.344.883-.654.034-.108 0-.14-.247-.217-.467-.147-.774-.204-1.07-.297-.286-.09-.595-.228-.914-.328-.074-.024-.27-.116-.32.04-.1.318.907.355.646 1.184l-1.38 4.373c-.272.865-.788.442-.888.76-.015.047-.02.116.055.14.214.066.578.14.93.252.64.202.932.334 1.235.43.19.06.274.046.306-.054.09-.292-.96-.162-.606-1.283l1.37-4.346zm2.96.875c.163-.55.418-.474.723-.383.833.246 1.093 1.06.828 1.958-.16.54-.36 1.04-1.614.668-.247-.073-.552-.164-.484-.393l.548-1.85zm-2.27 3.94c-.342 1.155-.92.655-1.007.948-.054.183.127.207.217.233.413.124.836.21 1.28.34.347.103.56.206.7.248.188.056.27.02.295-.062.098-.33-.83-.196-.54-1.176l.47-1.585c.095-.32.065-.4.502-.27.412.122.536.25.606.708l.264 1.652c.098.607.19 1.262.842 1.455.33.098.932.058 1.016-.226.022-.074-.01-.143-.085-.165-.082-.026-.18.004-.263-.02-.066-.02-.222-.066-.253-.234-.252-1.33-.56-2.866-.543-2.92.028-.092.292-.104.593-.244.304-.15.644-.417.817-1.003.125-.422.343-1.762-1.462-2.297-.553-.164-1.124-.293-1.676-.457-.52-.154-.575-.21-.954-.322-.1-.03-.195-.008-.222.084-.098.33.9.257.597 1.282l-1.193 4.03zm6.74 1.974c-.266 1.105-1.103.433-1.19.795-.05.203.095.228.245.264.335.08.62.11 1.18.244.56.134.827.238 1.16.318.244.058.404.126.457-.097.063-.26-1.072-.248-.797-1.39l1.008-4.2c.107-.445.2-.472.544-.39l.71.17c.97.195.456 1.162.79 1.242.218.052.213-.332.223-.448l.113-.876c.014-.095.045-.225-.08-.255-.778-.187-1.347-.284-2.567-.577-1.22-.293-1.772-.465-2.55-.65-.125-.032-.156.098-.187.19l-.43 1.193c-.045.116-.144.308.032.35.376.09.417-1.186 1.362-.96l.702.17c.343.08.415.148.308.594l-1.034 4.31zm10.158-2.591c.33-.512.668-.4.71-.617.028-.16-.095-.153-.273-.186-.237-.044-.48-.05-.717-.094-.245-.046-.475-.127-.72-.172-.1-.02-.34-.093-.374.086-.06.328.857.14.693 1.022-.028.15-.106.476-.476 1.058l-1.686 2.64c-.038.062-.096.187-.147.178-.05-.01-.068-.15-.08-.22l-.54-3.227c-.105-.61-.133-1.073-.08-1.355.072-.395.553-.16.6-.413.03-.16-.014-.158-.284-.21-.136-.024-.388-.03-.93-.132-.286-.053-.567-.144-.846-.196-.126-.023-.375-.147-.416.078-.012.066.088.143.112.157.33.157.428.282.504.675l1.09 5.857c.08.423.148.532.232.548.093.018.146-.03.284-.258l3.346-5.22zm.476 5.381c.004.233-.017.307.186.4.47.204.866.503 1.383.59 1.11.185 2.03-.523 2.238-1.757.2-1.197-.29-1.696-1.124-2.29-1.043-.746-1.49-.947-1.384-1.578.106-.632.547-.926 1.107-.833 1.458.244 1.29 2.018 1.486 2.05.187.032.23-.077.25-.287l.117-1.278c.02-.22.07-.357-.06-.378-.11-.018-.346.097-.456.078-.255-.042-.55-.47-1.245-.586-.992-.166-1.803.512-1.984 1.596-.165.99.273 1.44.943 1.92 1.254.898 1.768 1.11 1.634 1.91-.127.754-.71 1.12-1.372 1.01-.942-.157-1.324-1.102-1.444-2.052-.013-.128-.016-.216-.152-.24-.212-.034-.173.253-.17.39l.048 1.334zm12.656-3.568c.276-.544.624-.47.64-.688.014-.162-.11-.143-.29-.157-.24-.018-.482.002-.722-.017-.248-.02-.485-.077-.734-.097-.102-.008-.35-.056-.363.125-.025.334.868.05.798.945-.012.153-.056.485-.363 1.103l-1.402 2.802c-.03.065-.076.195-.127.19-.052-.004-.084-.14-.105-.208l-.87-3.154c-.17-.598-.246-1.054-.224-1.34.032-.4.535-.217.555-.474.014-.162-.03-.155-.304-.177-.137-.01-.39.008-.937-.035-.293-.023-.58-.084-.864-.107-.128-.01-.388-.107-.406.122-.006.066.102.132.126.144.344.124.456.238.573.62l1.697 5.71c.122.413.2.515.286.522.094.007.142-.047.256-.287l2.78-5.54z"/> - <path d="M246.067 310.784c-.008.974-.832.795-.835 1.177 0 .164.17.117.265.118.232 0 .465-.034.74-.032.3.006.593.044 1.014.048.113 0 .327.012.33-.122.002-.45-1.104.19-1.088-1.643l.03-3.25c0-.084.017-.15.07-.15.042 0 .093.048.152.125l4.092 5.003c.06.077.102.135.223.136.102 0 .103-.076.104-.286l.047-5.36c.01-1 .738-.766.74-1.052 0-.03.002-.125-.16-.126-.078 0-.38.035-.92.03-.595-.006-.844-.045-.98-.046-.113 0-.14.094-.14.16-.003.316 1.047.153 1.04 1.022l-.028 3.18c-.002.24-.02.355-.072.354-.05 0-.154-.116-.264-.25l-3.42-4.243c-.153-.183-.05-.25-.324-.25-.456-.007-.68.03-.903.03-.164 0-.32-.042-.482-.044-.103 0-.147.075-.148.16-.004.46.965-.153.95 1.68l-.033 3.63zm8.325-4.301c.008-.907.65-.558.653-.883 0-.114-.042-.134-.3-.136-.49-.005-.8.03-1.11.03-.3 0-.635-.045-.97-.048-.078 0-.292-.03-.294.13 0 .336.924.077.917.946l.008 4.585c-.008.907-.625.654-.628.988 0 .048.016.115.094.115.224.006.594-.032.964-.03.67.006.988.047 1.306.05.198 0 .276-.035.277-.14.002-.306-.964.125-.954-1.05l.04-4.556zm3.605 4.439c.01 1.137-.966.687-.962 1.06.002.21.147.2.302.197.344-.006.627-.044 1.203-.05.576-.004.86.032 1.204.028.25 0 .422.026.42-.204-.003-.267-1.1.02-1.11-1.156l-.038-4.317c-.004-.458.08-.506.434-.51l.73-.005c.99-.047.723 1.016 1.067 1.013.223 0 .125-.374.107-.488l-.102-.878c-.01-.096-.01-.23-.14-.228-.8.007-1.375.05-2.63.06-1.255.01-1.83-.022-2.63-.014-.13 0-.13.134-.137.23l-.126 1.262c-.017.125-.067.335.114.334.387-.006.118-1.253 1.09-1.26l.72-.01c.354-.004.44.045.444.504l.04 4.432zm5.007-1.807c-.154.012-.273.03-.28-.064-.01-.132.032-.24.066-.36l.527-1.736c.034-.11.068-.12.085-.122.043-.005.017 0 .075.07l.838 1.67c.052.11.112.21.122.344.007.095-.113.095-.267.107l-1.166.092zm1.472.402c.223-.018.273.074.614.794.115.25.188.418.205.627.046.58-.57.524-.55.8.01.134.12.106.275.094.25-.02.563-.082.94-.11.566-.046.8-.026 1.11-.05.23-.018.31-.006.296-.168-.025-.314-.458.094-.786-.56l-2.773-5.647c-.134-.277-.152-.295-.23-.29-.11.01-.14.195-.187.352l-1.87 5.944c-.172.55-.613.528-.596.747.01.124.145.094.265.085.248-.02.493-.077.75-.098.275-.02.535-.005.81-.025.18-.015.45.03.434-.17-.02-.256-.934-.03-.988-.717-.018-.228.076-.57.12-.766.15-.644.326-.696.472-.708l1.688-.134zm6.644-3.961c-.087-.653-.054-.667.977-.803 1.646-.216 1.127.98 1.527.927.196-.026.113-.333.088-.455l-.158-.933c-.01-.086-.083-.172-.194-.158-.75.1-1.333.214-1.938.294-1.305.172-1.923.214-2.273.26-.12.016-.178.1-.167.186.05.38.973-.05 1.085.802l.584 4.432c.152 1.155-.563.73-.506 1.165.008.057.065.097.176.083.47-.062.822-.147 1.086-.182.375-.05.695-.053 1.02-.095.212-.03.396-.015.37-.205-.032-.255-.964.108-1.103-.943l-.184-1.402c-.07-.55-.12-.658.272-.71l.63-.083c.887-.116.78.92 1.053.883.205-.027.11-.36.084-.483l-.283-1.678c-.042-.256-.133-.224-.193-.217-.17.023-.08.897-.814.994l-.537.07c-.367.05-.375-.017-.43-.425l-.174-1.325zm3.143 2.171c.353 1.907 1.73 2.964 3.43 2.65 2.695-.5 2.784-2.898 2.54-4.213-.368-1.99-1.852-2.97-3.497-2.645-2.017.392-2.854 2.15-2.473 4.207zm.94-.728c-.252-1.363-.07-2.737 1.354-3.03 1.087-.22 2.32.677 2.705 2.753.29 1.56.05 2.906-1.4 3.203-1.508.31-2.404-1.555-2.658-2.927zm6.667-3.327c-.132-.557.127-.62.436-.694.844-.202 1.478.373 1.696 1.283.132.55.206 1.08-1.064 1.386-.25.06-.56.135-.616-.097l-.45-1.878zm.006 4.548c.28 1.17-.47 1.026-.398 1.323.044.186.213.116.305.094.418-.1.827-.238 1.28-.346.35-.083.584-.1.726-.135.192-.046.245-.118.225-.2-.08-.335-.816.244-1.055-.75l-.386-1.607c-.078-.325-.144-.378.3-.484.417-.1.588-.053.878.31l1.055 1.298c.388.477.797.998 1.457.84.334-.08.837-.418.768-.706-.018-.074-.082-.118-.157-.1-.083.02-.154.096-.237.117-.067.015-.226.054-.337-.077-.882-1.026-1.916-2.202-1.93-2.258-.02-.093.2-.235.392-.506.19-.282.35-.683.206-1.278-.102-.427-.584-1.697-2.415-1.257-.56.134-1.12.308-1.68.442-.526.126-.602.105-.987.197-.1.024-.172.09-.15.184.08.335.91-.228 1.16.813l.98 4.087zm6.897-1.542c.285 1.1-.77.9-.677 1.26.052.204.19.158.34.12.334-.087.6-.195 1.157-.34.558-.143.842-.177 1.175-.264.24-.062.415-.077.357-.3-.067-.258-1.063.286-1.357-.852l-1.08-4.18c-.116-.444-.044-.512.297-.6l.707-.183c.948-.286.947.81 1.28.724.216-.056.032-.393-.014-.5l-.31-.827c-.034-.09-.067-.22-.192-.188-.774.2-1.322.38-2.537.695-1.217.314-1.784.422-2.558.622-.125.032-.09.162-.076.256l.183 1.255c.013.125.016.34.19.296.375-.097-.188-1.244.753-1.487l.7-.18c.34-.09.435-.064.55.38l1.11 4.29zm4.397-5.868c-.24-.874.472-.715.385-1.028-.03-.11-.077-.117-.326-.05-.473.132-.76.252-1.06.334-.29.08-.622.134-.945.223-.075.02-.29.05-.246.206.088.322.953-.195 1.185.643l1.225 4.417c.243.875-.42.8-.33 1.123.012.046.047.106.12.085.216-.06.562-.195.92-.294.645-.178.962-.226 1.268-.31.19-.054.255-.112.227-.213-.082-.295-.892.386-1.206-.746l-1.22-4.39zm1.834 2.135c.615 1.84 2.125 2.694 3.764 2.146 2.6-.87 2.356-3.255 1.93-4.524-.64-1.92-2.247-2.682-3.83-2.132-1.943.67-2.528 2.527-1.864 4.51zm.83-.852c-.44-1.313-.45-2.7.92-3.188 1.045-.37 2.39.348 3.06 2.35.504 1.504.453 2.87-.94 3.367-1.45.515-2.597-1.206-3.04-2.53zm6.103-4.333c-.21-.534.038-.632.334-.75.81-.317 1.516.164 1.86 1.035.205.525.353 1.04-.863 1.52-.24.095-.535.21-.623-.012l-.707-1.795zm.637 4.5c.44 1.12-.323 1.083-.21 1.368.07.177.227.085.315.05.4-.158.785-.35 1.217-.52.336-.133.566-.183.702-.237.183-.07.226-.15.194-.23-.126-.32-.774.357-1.15-.594l-.604-1.538c-.123-.31-.196-.354.228-.52.4-.16.576-.135.914.183l1.225 1.14c.45.42.928.878 1.56.63.32-.127.77-.53.662-.806-.03-.07-.098-.106-.17-.077-.08.03-.14.116-.22.147-.063.026-.215.086-.343-.028-1.017-.893-2.205-1.914-2.226-1.967-.034-.09.167-.262.318-.557.148-.305.25-.725.027-1.294-.162-.41-.815-1.6-2.567-.91-.536.21-1.066.46-1.602.672-.504.198-.582.188-.95.333-.096.038-.158.114-.123.203.126.32.868-.353 1.26.643l1.54 3.91z"/> - </g> - <g fill="#fedf00" transform="matrix(.512 0 0 .512 0 76.8)"> - <path d="M412.66 249.25h82.18v82.023h-82.18z" fill="#d52b1e"/> - <path id="a" d="M451.2 313.83s-.048 2.93-.855 5.287c-.933 2.72-.94 2.72-1.796 4.043-1.153 1.78-2.558 3.082-3.81 3.887-1.96 1.258-3.95 1.888-5.95 1.71-5.49-.486-8.037-6.44-9.282-11.273-1.32-5.13-5.073-7.923-7.463-6.064-1.4 1.09-1.48 2.914-.31 4.665 1.243 1.866 4.098 2.8 4.098 2.8l-2.933 3.73s-6.302-.82-7.535-7.392c-.466-2.488.742-7.134 4.89-8.522 5.298-1.773 8.687 2.005 10.32 5.192 2.245 4.384 3.21 12.434 9.43 11.19 3.383-.677 4.975-5.598 4.975-7.852l2.467-2.644 3.654 1.167.1.078z" fill="#fff"/> - <use height="100%" width="100%" xlink:href="#a" transform="matrix(-1 0 0 1 907.52 0)"/> - <path d="M461.12 278.95l10.76-11.643s1.624-1.31 1.61-3.401l-2.22.345-.496-1.14-.11-1.148 2.98-.63c.05-.484.008-.85.093-1.384.08-.494.19-.76.31-1.244l-3.264.218c.166-.57.128-.875.31-1.406.155-.447.198-.618.504-1.103.606-.09 1.158-.228 1.907-.304.728-.074 1.143-.04 1.873-.086 1.78-3.32 9.19-6.373 14.454-.904 3.81 3.958 2.99 11.22-1.95 13.14-2.798 1.087-5.053.444-6.86-1.11l1.97-3.867c2.72 1.625 4.975-.396 4.82-2.495-.197-2.654-1.92-4.297-4.354-4.51-2.254-.197-3.872 1.093-4.898 3.11-.626 1.23-.336 2.134-.544 3.5-.226 1.482-.1 2.31-.537 3.81-.32 1.087-1.155 2.433-2.37 3.59l-11.03 11.936-42.94 46.445-3.228-2.984 43.21-46.737z"/> - <path d="M429.51 283.04s2.7 13.372 11.874 33.43c4.665-1.71 7.42-2.798 12.362-2.798 4.943 0 7.697.933 12.362 2.8 9.174-20.06 11.874-33.432 11.874-33.432l-24.236-31.177-24.236 31.177z" fill="#fff"/> - <path d="M456.12 262.41l16.82 21.637s-2.243 10.52-9.078 26.354c-2.646-.6-4.916-1.127-7.733-1.318l-.01-46.67zm-4.74 0l-16.82 21.637s2.243 10.52 9.078 26.354c2.646-.6 4.916-1.127 7.733-1.318l.01-46.67z"/> - </g> - <g fill="#d52b1e"> - <path d="M257.843 204.416h42.076v41.996h-42.077z" fill="#fedf00"/> - <path d="M263.736 204.416h6.274v41.996h-6.274zm12.022 0h6.274v41.996h-6.274zm12.022 0h6.273v41.996h-6.273z"/> - </g> - <g fill="#d52b1e" stroke="#d52b1e" stroke-width=".513"> - <path d="M211.44 282.834c.12.756.39 2.054 1.108 3.384.756 1.194.477 1.16 2.19 3.072.842.94 2.157 1.746 3.188 2.3 1.034.56 1.8.832 3.502 1.28 3.337.875 5.68.93 8.486.817 2.19-.087 3.863-.357 5.248-.543 1.975-.266 3.446-.424 5.692-.518a32.348 32.348 0 0 1 3.145 0c1.23.068 2.447.26 3.74.518 2.787.557 5.614 1.632 5.614 1.632l.006-43.856-42.082-.01v29.973s.086 1.464.163 1.95z" fill="#fedf00" stroke="none"/> - <path d="M216.325 290.524l1.972 1.148 2.703.972-.003-41.742h-4.673zm23.378 1.9l.006-41.523h-4.683v42.188s3.204-.41 4.676-.506zm9.339-41.518h-4.666v41.667a30.94 30.94 0 0 1 4.675.86l-.008-42.528zm-18.682 0v42.665c-.047.006-3.125.162-4.698 0v-42.657z" stroke-width=".263"/> - </g> - <g transform="matrix(.512 0 0 .512 0 76.8)"> - <path d="M585.48 402.39c-.233 1.477-.76 4.012-2.163 6.608-1.477 2.333-.932 2.27-4.275 6-1.646 1.838-4.214 3.412-6.228 4.496-2.02 1.09-3.516 1.623-6.84 2.495-6.52 1.71-11.092 1.817-16.575 1.598-4.28-.17-7.545-.698-10.25-1.062-3.858-.518-6.73-.827-11.118-1.01-2.133-.09-4.15-.11-6.142 0-2.406.132-4.782.505-7.31 1.01-5.44 1.09-11.032 3.188-11.032 3.188l.057-85.655 82.193-.024v58.543s-.168 2.86-.318 3.81z" fill="#fedf00"/> - <g id="b"> - <path d="M524.62 346.91s-.366.175-.594.28c-.298.33-.447.52-.78.814-.444.39-.77.503-1.25.843-.23.164-.42.216-.595.438-.25.32-.078.63-.25 1-.185.405-.368.597-.655.938-.366.434-.65.61-1.063 1-.418.395-.587.726-1.093 1-.135.072-.2.142-.345.187-.216.067-.35-.01-.563.062-.388.134-.51.563-.78.72.11.217.106.37.218.593.158.323.705 1.215.812 1.437.21.305.27.7.532.78.537.17.858.155 1.312.126.792.182 1.28.158 2.03.47.614.253.864.574 1.47.843.474.21.772.34 1.28.438.388.074.61.132 1 .094.25-.024.378-.12.626-.156.05-.01.08 0 .125 0l-.03.375c-.006 0 .004.03 0 .032v.062h.062l2.06.906a1.72 1.72 0 0 0-.186.375c-.098.32-.114.69-.063.844.63 1.887 1.16 3.067 1.47 3.187.615.236.806.865 1.156 1.5-.123.132-.227.2-.344.312-.614.59-1.152 1.008-1.656 1.812-.745 1.188-1.248 1.203-.312 2.78.55.926.814 1.1 1.53 2.407.363.658.563 1.172.782 1.968.207.752.278 1.19.313 1.97l.967.374.657-.657.625-1.187.03-.906c-.24-.203-.308-.474-.25-.782.07-.368.514-.29.72-.625.282-.46-.333-.734-.658-1.093-.605-.67-1.43-.833-1.625-1.844-.052-.273.078-.427.375-.72.856-.84 1.13-.972 1.97-1.81.24.14.61.192.968.124.28-.053.53.125 1.406.375.61.173.873.086 1.22.03l.374-.093c.05.21.11.415.125.687.053 1.062-.155 2.996.156 3.5.132.214.187.333.282.564.1.24.214.396.22.656.01.696.046 1.14 0 1.875-.045.69-.104 1.042-.22 1.75-.074.45-.165.714-.437 1.062-.283.364-.595.418-.97.688l-.092 1 1.125.47 1.28.31.688-.28c0-.254.04-.4.156-.625.128-.247.232-.44.47-.53.362-.144.76.128.905-.095.16-.242.06-.338.032-.75-.047-.662-.185-.99-.283-1.657-.164-1.11-.21-1.686-.156-2.75.032-.616.04-.956.157-1.562.172-.883.486-1.31.688-2.188.225-.977.265-1.606.375-2.468 3.17.452 5.807.397 9.344-.375.17-.037.75-.25.75-.25.8.69 1.706 1.264 2.718 1.625-.006.1-.015.845 0 .968.037.288-.04.482.125.72.106.15.197.24.375.28.263.06.455.023.657-.156.225-.2.183-.454.25-.75.03-.14.006-.564 0-.687.365.055.49.062.874.062.357 0 .53.014.875-.03.004.08.02.368.03.467.027.245-.076.435.03.657.112.23.25.36.5.407a.66.66 0 0 0 .532-.094c.296-.185.264-.498.313-.844.015-.11.01-.693 0-.782.212-.067.827-.292 1.03-.375a5.12 5.12 0 0 1-.093.812c-.07.376-.12.58-.25.938-.206.568-.44.856-.75 1.375-.376.634-.572.985-1.03 1.562-.212.266-.358.386-.563.657-.257.337-.343.566-.595.906-.324.438-.51.724-.938 1.062-.693.55-1.15.11-2.093.844l-.22 1.03 1.438.532 1.282.25.437-.25c-.01-.3.033-.514.22-.75.213-.27.44-.35.78-.407.362-.06.748.034 1.032-.218.35-.31.35-.914.625-1.47.86-1.723 1.62-2.562 3-3.905.613-.597 1.138-.758 1.657-1.438.246-.322.52-.47.53-.875.01-.284-.143-.416-.218-.688-.104-.377-.187-1-.187-1 1.52.744.97.646 1.25 1.406.224.615-.034 1.04.06 1.687.112.756.467 1.114.532 1.875.078.905-.143 1.42-.312 2.313-.15.785-.13 1.277-.47 2-.32.69-.57 1.077-1.155 1.562-.21.175-.37.25-.594.407l-.124 1.03 1.125.376 1.626.437.375-.343c.165-.655-.054-1.617.407-1.688.406-.062.693 0 .782-.312.035-.132.057-.326.092-.625.22-1.886.422-3.646.625-4.5.23-.968.215-1.178.407-1.907.175-.664-.086-.282.406-1.687.734-2.097-.208-2.375-1.063-3.656-.462-.693-.622-.944-.687-1.5-.097-.817.164-1.495.125-2.75-.04-1.32-.023-2.16 0-2.875.115-.053.222-.12.344-.188 1.17-.642 1.635-.836 2.374-2.47a3.43 3.43 0 0 0 .312-1.467c-.005-.332-.065-.652-.094-1.032-.03-.4-.19-.637-.312-.937-.13-.318-.325-.56-.563-.844-.772-.924-1.78-1.132-2.718-1.47-1.485-.53-2.506-.433-4.126-.56-1.673-.133-2.607-.16-4.282-.063-2.006.115-3.128.52-5.125.75-1.915.223-2.977.37-4.906.407-2.26.042-4.42-.46-5.78-.344-2.45.21-2.493.762-6.188 1.063a66.916 66.916 0 0 1-3.843.187l-2.158-.687c.857-.306 1.067-.488 1.47-1.03.27-.367.232-.68.562-1.064.266-.312.443-.622.78-.97a2.2 2.2 0 0 0-.937-.436c-.363-.076-.573-.042-.937 0-.494.056-.772.124-1.22.344-.358.177-.623.357-.843.593 0 0-1.285-.828-2.187-1.218-1.12-.485-1.6-.712-3-.907zm1.97 11.906h.06c-.01.01-.018.022-.03.03l-.03-.03z" fill="#d52b1e"/> - <g fill="none" stroke="#fedf00" stroke-width=".987" stroke-linecap="round"> - <path d="M568.77 359.52l-.763.244c-.867.402-1.578.418-2.6.496-2.644.202-4.272-1.057-6.998-.847-1.405.108-2.026 1.19-3.46 1.548a9.247 9.247 0 0 1-1.702.283l.512-1.034s-1.284.26-2.115.263a7.55 7.55 0 0 1-1.523-.13l1.018-.95s-.814-.133-1.294-.336a3.918 3.918 0 0 1-1.06-.63 20.484 20.484 0 0 0 1.69-.353c1.556-.385 2.04-1.147 3.89-1.325 1.15-.112 3.032-.047 7.643.716 3.035.502 4.38.267 5.535-.258.76-.345 1.01-1.01 1.103-1.788.092-.776-.404-1.404-.874-1.81-.123-.106-.444-.335-1.113-.363"/> - <path d="M524.8 350.61c-.53-.066-.884.01-1.34.291-.48.297-.54.698-.888 1.144.445.1.7.36 1.142.253.347-.084.527-.238.76-.507.317-.363.433-.676.43-1.156l-.104-.024z" fill="#fcd900" stroke-width=".513" stroke-linecap="butt"/> - <path d="M536.04 363.79s.264.48.407.8c.248.554.376.878.524 1.467.2.8.115 1.284.242 2.098.022.143.05.263.076.376l-.05 1.13m6.801-6.951s-.22.812-.354 1.333c-.352 1.353-.676 2.087-.944 3.46-.045.23-.078.442-.103.644m-10.859-3.977c.79.176.544 3.36 1.79 4.09"/> - <path d="M560.12 369.78l.384-.25a8.154 8.154 0 0 0 2.686-1.79" stroke-linecap="butt"/> - <path d="M552.38 368.02h.007c3.533-.883 5.885-2.648 7.58-2.87"/> - <path d="M555.97 363.61c.3-.01.585-.033.83-.068 1.467-.21 1.703.687 2.725 1.258 1.857 1.04 2.098 2.307 4.3 3.356.116.055.223.107.32.155l.848.43"/> - <path d="M517.7 354.53c.268.067.432.08.707.054.332-.03.484-.238.817-.25.27-.01.462-.03.684.126.14.1.2.19.28.342.087.166.163.282.124.466-.06.284-.324.418-.614.42-.237 0-.434-.062-.544-.272a.467.467 0 0 1-.04-.39c-.283.108-.49.112-.776.017a1.04 1.04 0 0 1-.638-.513z" fill="#fcd900" stroke-width=".513" stroke-linecap="butt"/> - </g> - <path d="M525.13 364.17c-.797-.237-1.966-.826-1.966-.826.323-.25.587-.265.863-.555.39-.41.373-.79.593-1.32.215-.52.184-.954.67-1.343.29-.23.763-.27 1.12-.165.352.113.758.4.847.766.137.56-.16.886-.246 1.454-.085.568-.292.894-.194 1.46.066.375.227.52.354.907 0 0-1.264-.15-2.04-.38zm-.99.95a.628.628 0 1 1 .64.618.627.627 0 0 1-.64-.618zm-1.76-16.51s-.09-.06-.144-.104c-.383-.31-.42-.653-.6-1.11-.173-.434-.258-.69-.316-1.154-.05-.406 0-.64 0-1.048 0-.37.04-.578 0-.944-.04-.375-.03-.612-.21-.944-.097-.18-.394-.337-.314-.42.094-.096.257-.02.42 0 .4.05.63.166.943.42.376.306.525.57.67 1.05.167.547.25.897.408 1.467.083.295.13.47.284.734.16.275.32.383.524.63l-.01.022c-.3.326-.445.538-.778.833-.305.27-.56.403-.846.573l-.033-.01zm3.6 10.64l2.23 1.03c1.15-.634 2.474-1.923 3.497-3.918.88-1.718 1.02-2.65 1.364-4.313l-1.788-.582-.357.073c-.552 1.724-.693 2.705-1.618 4.193-.802 1.29-1.718 2.305-2.65 3.034l-.677.483zm4.94 18.12c.36-.493.513-.81.922-1.264.456-.505.8-.702 1.312-1.15.155.015.335-.012.48.07-.027.546-.055.95-.18 1.542-.1.48-.186.746-.346 1.21-.135.388-.16.64-.39.98-.154.225-.29.315-.476.517-.51-.742-1.33-1.297-1.322-1.906zm33.01 1.85c.573.21.92.27 1.47.538.61.3.894.576 1.466.944.027.154.104.32.063.483-.532.122-.928.207-1.53.25a8.39 8.39 0 0 1-1.26 0c-.41-.022-.658.025-1.048-.104-.26-.085-.384-.19-.63-.313.573-.696.88-1.637 1.468-1.797zm-9.76-2.04c.573.21.92.27 1.468.538.61.3.896.576 1.468.944.027.154.104.32.063.482-.532.123-.928.208-1.532.252-.49.036-.768.027-1.258 0-.41-.023-.658.024-1.048-.105-.26-.085-.384-.19-.63-.313.573-.696.88-1.637 1.468-1.797zm-17.34 2.13c.573.21.92.27 1.47.538.61.3.894.576 1.467.944.026.154.103.32.063.483-.532.122-.928.207-1.53.25-.49.037-.77.028-1.26 0-.41-.02-.658.025-1.048-.104-.26-.085-.384-.19-.63-.313.573-.696.88-1.637 1.468-1.797zm-8.98-29.8c-.613-.278-1.05-1.045-.66-1.594.155-.22.412-.174.565-.395.19-.272.142-.507.136-.838-.006-.377-.142-.573-.208-.944-.072-.405-.14-.636-.136-1.048.005-.628-.038-1.076.345-1.573.246-.317.662-.592.826-.612.147.136-.057.502-.033.822.036.462.13.717.288 1.153.203.563.48.81.704 1.363.208.516.4.808.42 1.363.015.457-.025.736-.21 1.154-.165.37-.3.58-.61.84-.27.224-.458.324-.796.418a1.15 1.15 0 0 1-.628-.108z" fill="#0065bd"/> - </g> - <use height="100%" width="100%" xlink:href="#b" y="36.591"/> - </g> - <path d="M211.282 204.416h42.076v41.996h-42.076zm46.561 0h42.076v41.996h-42.077zm-46.403 78.418c.12.756.39 2.054 1.108 3.384.756 1.194.477 1.16 2.19 3.072.842.94 2.157 1.746 3.188 2.3 1.034.56 1.8.832 3.502 1.28 3.337.875 5.68.93 8.486.817 2.19-.087 3.863-.357 5.248-.543 1.975-.266 3.446-.424 5.692-.518a32.348 32.348 0 0 1 3.145 0c1.23.068 2.447.26 3.74.518 2.787.557 5.614 1.632 5.614 1.632l.006-43.856-42.082-.01v29.973s.086 1.464.163 1.95zm88.326-.01c-.12.756-.39 2.054-1.107 3.383-.758 1.194-.48 1.162-2.19 3.073-.843.94-2.158 1.746-3.19 2.3-1.034.558-1.8.832-3.502 1.28-3.337.874-5.68.93-8.486.817-2.19-.088-3.862-.357-5.247-.543-1.975-.266-3.446-.424-5.693-.518a32.43 32.43 0 0 0-3.145 0c-1.23.068-2.448.26-3.74.518-2.788.557-5.65 1.632-5.65 1.632l.03-43.856 42.082-.012v29.974s-.088 1.465-.164 1.95z" stroke-width=".408" fill="none" stroke="#703d29"/> -</svg> diff --git a/img/flags/1x1/ae.svg b/img/flags/1x1/ae.svg deleted file mode 100644 index 9ac2866..0000000 --- a/img/flags/1x1/ae.svg +++ /dev/null @@ -1,6 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" height="512" width="512" viewBox="0 0 512 512"> - <path fill="#00732f" d="M0 0h512v170.667H0z"/> - <path fill="#fff" d="M0 170.667h512v170.667H0z"/> - <path d="M0 341.333h512V512H0z"/> - <path fill="red" d="M0 0h180v512H0z"/> -</svg> diff --git a/img/flags/1x1/af.svg b/img/flags/1x1/af.svg deleted file mode 100644 index c278ff3..0000000 --- a/img/flags/1x1/af.svg +++ /dev/null @@ -1,83 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 512 512" width="512" height="512"> - <g stroke-width="1pt" fill-rule="evenodd"> - <path d="M0 0h511.994v512H0z"/> - <path d="M341.332 0h170.67v512h-170.67z" fill="#090"/> - <path d="M170.67 0h170.67v512H170.67z" fill="#bf0000"/> - </g> - <g transform="translate(2.167 86.78) scale(.84611)" fill="#fff" fill-rule="evenodd" stroke="#bd6b00" stroke-width=".5"> - <path d="M319.5 225.84l8.354.001c.031 3.157 1.881 6.549 4.48 8.493h-16.008c2.505-2.271 3.19-4.963 3.174-8.494z"/> - <path d="M266.71 178.53l4.574 5.04 56.934.093 4.668-5.04-14.56-.186-7.094-4.947-22.868-.093-6.627 5.133H266.71z" stroke="none"/> - <path d="M290.02 172.74l19.66-.02c2.662-1.408 3.492-5.902 3.479-8.416-.037-7.429-5.233-10.991-10.447-11.18-.781-.04-1.688-.648-1.895-1.36-.514-1.613-.381-2.641-.944-2.584-.5-.007-.353.94-.799 2.453-.245.752-1.09 1.494-1.934 1.537-6.49.324-10.676 5.062-10.513 11.134.11 4.015.577 6.413 3.393 8.437z"/> - <path d="M257.66 242.83h84.469l-7.56-6.16H265.22l-7.56 6.16z" stroke="none"/> - <path d="M296.39 219.69l1.54 4.62h3.499l-2.799-4.621h-2.24zm-1.96 4.62l.887 4.573 4.106.046-1.493-4.62h-3.5zm6.953.046l2.847 4.527h5.834l-4.573-4.575-4.107.048zm-34.44 10.36c3.095-2.878 5.07-5.335 5.086-8.866h7.56c.015 1.976.73 3.157 1.82 3.08l7.654-.047-.046-4.527h-5.554l-.001-24.688c-.202-8.726 10.609-13.813 15.028-13.767l-26.275-.046v-.793h55.255l.047.793-26.647.046c7.902.016 15.524 7.5 15.587 13.815v7h-1.028l-.046-6.906c0-6.908-8.7-13.363-15.681-13.161-6.037.173-15.4 5.927-15.307 13.115v2.146l14.327.094-.14 2.472 2.25 1.436 4.486 1.43-.065 3.71 3.213.947.028 3.706 3.855 1.654v3.836l2.445 1.507-.112 3.895 3.314 2.333h-7.84l4.9 5.46h-7.234l-3.594-5.46h-4.76l2.147 5.413-5.085-.046-1.215-5.367h-6.206l.046 5.786h-22.214zm22.168-14.98v4.572h5.32l-1.075-4.573h-4.245z"/> - <path fill="none" d="M289.39 211.66h3.313v7.607h-3.313z"/> - <path d="M284.71 219.8h3.234l-.02-5.597c-.042-2.433 2.142-4.885 3.187-4.967 1.159-.044 2.867 2.297 2.924 4.776l.047 5.806 3.43-.007v-14.41l-12.802.067V219.8zm25.59 3.34h4.014v3.127H310.3zm-2.38-5.37h4.014v3.127h-4.014zm-3.87-5.37h4.014v3.127h-4.014zm-3.31-4.52h4.014v3.127h-4.014z" fill="none"/> - <path d="M298.08 219.82l4.106.14 7.327 6.487v-3.827l-2.473-1.773v-3.034l-3.594-2.052v-3.268l-3.5-1.166v-4.434l-1.774-1.447-.092 14.374z" fill="none"/> - <path d="M315.43 210.35h.98v7.047h-.98z"/> - <g id="a"> - <path d="M257.32 186.53c-1.234-1.982-2.712 2.749-7.788 6.27-2.363 1.609-4.009 5.894-4.025 8.713-.077 1.937.216 3.868 0 5.741-.137 1.186-1.372 3.816-.527 4.489 2.234 1.66 5.126 5.43 6.467 6.731 1.16 1.017 2.165-5.248 3.036-8.051.933-3.005.515-6.596 3.102-9.372 1.834-1.875 6.46-3.72 5.94-4.554l-6.205-9.967z"/> - <path d="M257.06 201.88a10.09 10.09 0 0 0-1.656-2.594c-.699-.792-1.525-1.457-2.438-1.781-.881-.325-1.779-.751-2.406-1.531a3.645 3.645 0 0 1-.719-1.469c-.124-.544-.123-1.21-.03-1.969-.11.08-.169.172-.282.25-2.363 1.608-4.016 5.9-4.031 8.719a28.487 28.487 0 0 0 0 2.313c.175.485.343.955.593 1.25.326.383.714.636 1.125.812.824.352 1.775.425 2.657.75.912.324 1.851 1.058 2.656 1.938a10.51 10.51 0 0 1 1.75 2.656c.066-.243.154-.604.219-.813.845-2.721.697-5.889 2.562-8.531z" fill="#bf0000"/> - <path d="M249.82 192.39c-.484 3.356 1.385 4.473 3.148 5.123 1.825.648 3.322 2.606 4.093 4.378M245.3 203.44c.77 2.893 2.798 2.531 4.561 3.181 1.826.649 3.745 2.957 4.516 4.729" fill="none"/> - <path d="M255.61 184.48l.925-.594 17.752 29.898-.924.594-17.753-29.898z"/> - <path d="M257.52 183.29a2.046 2.046 0 1 1-4.092 0 2.046 2.046 0 1 1 4.092 0zm15.18-24.02h7.194v1.65H272.7zm0 3.13h7.194v13.784H272.7zm-.44-5.01l7.98.047c.312-2.706-2.39-5.63-3.966-5.6-1.56.076-4.076 2.956-4.014 5.553z"/> - <path d="M292.62 155.76c-1.521.64-2.688 2.377-3.406 4.375-.719 1.998-.992 4.267-.656 6.094v.031c.127.63.3 1.083.5 1.406.199.324.422.514.687.563.265.049.514-.093.656-.313.143-.22.212-.509.188-.844-.144-1.878-.135-3.732.312-5.406.448-1.674 1.338-3.164 2.97-4.375.294-.216.463-.463.5-.719.035-.255-.1-.474-.282-.625-.364-.301-.938-.407-1.469-.187zm.156.438c.37-.154.842-.064 1.031.093.095.079.106.133.094.219-.012.086-.077.234-.312.406-1.713 1.272-2.657 2.872-3.125 4.625-.47 1.754-.459 3.66-.313 5.563a.927.927 0 0 1-.125.562c-.07.108-.107.14-.187.125-.081-.015-.248-.117-.407-.375-.158-.257-.317-.656-.437-1.25-.315-1.714-.037-3.947.656-5.875.694-1.927 1.803-3.538 3.125-4.094z" fill="#bd6b00" stroke="none"/> - <path d="M295.19 157.73c-1.52.639-2.501 2.292-3.031 4.188-.53 1.895-.614 4.065-.281 5.874.26 1.284.934 1.962 1.593 2.063.33.05.648-.08.844-.344.196-.264.26-.619.156-1.062-.372-1.498-.515-3.366-.25-5.063.266-1.696.94-3.211 2.22-4.125.295-.215.463-.463.5-.719.035-.255-.1-.505-.282-.656-.364-.302-.937-.376-1.469-.156zm.188.438c.37-.154.81-.064 1 .093.094.079.137.134.125.219-.012.085-.109.235-.344.406-1.412 1.009-2.129 2.664-2.406 4.438-.278 1.773-.105 3.664.28 5.218.083.354.001.592-.093.72-.094.127-.214.185-.406.155-.384-.059-.983-.554-1.219-1.718-.318-1.732-.227-3.868.281-5.688.509-1.82 1.457-3.287 2.781-3.844z" fill="#bd6b00" stroke="none"/> - <path d="M272.31 187.39h8.027v11.107h-8.027zm.47 17.46h7.747v2.333h-7.747zm-.19 4.1h7.933v8.68h-7.933zm-.56 10.46h8.68v4.853h-8.68zm1.07-16.65h6.995l1.387-2.31h-9.636l1.254 2.31zm9.43-8.51l.066-6.071h4.818c-1.893 1.561-3.652 3.454-4.884 6.071z"/> - <path d="M273.56 196.74c.048 1.299 1.518.72 1.518.066 0-2.004.027-4.17-.053-5.588-.01-1.045 2.49-.783 2.476-.14.01 1.692.029 4.012.038 5.992-.018.964 1.615.88 1.593 0-.01-2.212-.011-5.425 0-7.052.014-2.096-5.502-2.05-5.545-.047.002 1.645-.03 4.59-.027 6.769zm.01 13.24h5.694v7.094h-5.694z" fill="none"/> - <path d="M277.21 212.92h2.007v1.167h-2.007zm-3.5 0h1.96v1.167h-1.96z"/> - <path d="M275.67 210.07h1.54v2.893h-1.54zm0 3.97h1.54v3.08h-1.54zm-31.68-75.07c.356 5.567-1.371 8.623-4.32 8.158-.812-3.088 1.036-5.16 4.32-8.158zm-6.47 12.34c-2.621-1.333-.73-11.513.276-15.78.744 5.497 1.99 13.309-.276 15.78z"/> - <path d="M238.45 151.79c4.406 1.533 7.894-3.212 9.073-8.708-3.636 5.019-9.554 5.025-9.073 8.708zm-3.34 5.14c-3.445-.91-1.37-11.71-.744-16.03.757 4.462 3.132 14.552.744 16.03zm1.18-.34c.192-3.725 3.905-2.648 6.468-4.636-.418 1.86-1.994 5.16-6.468 4.636zm-4.22 4.99c-3.414-.921-1.362-12.544-1.555-17.329 1 4.135 4.17 16.209 1.555 17.329zm1.59-.5c2.797.91 6.501-.908 6.793-4.239-2.409 1.635-6.254.385-6.793 4.239z"/> - <path d="M229.52 166.71c-3.265.26-1.804-9.638-1.802-18.857 1.2 8.617 4.467 16.505 1.802 18.857z"/> - <path d="M230.65 166.26c2.205 1.106 6.156-.662 7.284-4.387-3.984 1.733-6.648.04-7.284 4.387zm25.63-22.13c-.58 4.829-2.554 7.638-5.503 7.174-.812-3.088 1.579-5.062 5.503-7.174zm-7.8 12.39c4.898.695 6.662-3.064 9.96-7.87-4.621 3.344-10.146 4.039-9.96 7.87z"/> - <path d="M247.09 155.97c-2.67-3.204-.09-7.228 1.95-10.657-.438 5.102 1.3 7.94-1.95 10.657zm-1.18 5.29c-.301-3.134 5.038-3.83 7.452-5.572-.812 1.811-2.043 6.687-7.452 5.572z"/> - <path d="M244.79 161.33c-3.691-.418-2.159-6.686.487-10.17-1.114 4.807 1.95 8.15-.487 10.17z"/> - <path d="M242.01 166.55c-4.202-1.858-1.509-7.127.07-10.238-.673 4.086 2.693 7.196-.07 10.238z"/> - <path d="M242.84 166.06c2.205 2.879 6.501-.859 7.383-5.224-3.738 3.112-6.5 2.6-7.383 5.224zm-9.6 20.26c-.432-4.287 2.793-12.084.504-16.24-.312-.571.685-2.087 1.33-1.167 1.006 1.468 2.04 5.652 2.473 4.107.459-1.68.53-4.65 2.017-5.228.949-.338 2.29-.559 1.924.934-.363 1.436-1.177 3.42-.275 3.547.523.078 2.03-1.954 3.3-2.893 1.022-.838 2.548.473 1.053 1.726-4.861 4.037-9.57 5.854-12.326 15.214zm-8.73 64.53c-.57-.11-1.352-.303-.64.584 5.678 6.996 7.321 8.924 15.602 7.94 8.365-1.102 10.357-3.364 16.214-6.65 3.129-1.836 7.703-2.243 11.17-1.106 1.614.528 2.59.56 1.434-.599-1.158-1.157-2.525-2.73-3.949-3.815-3.118-2.394-8.407-3.432-12.723-2.662-6.104.958-11.148 4.845-17.176 6.313-3.167.723-6.64.614-9.931-.005zm47.79 12.5c1.056.131 1.725 2.177 2.245.792.881-2.242.264-4.026-.727-3.829-1.17.312-3.147 2.934-1.518 3.037z"/> - <path d="M220.6 182.92c-1.215-1.269-.864-1.754.933-1.774 1.425-.09 4.25.873 5.32.093.983-.713.592-3.738 1.028-5.133.19-.778.735-1.999 1.96-.093 3.622 5.804 8.146 12.773 10.08 19.6 1.057 3.826.062 9.8-3.454 13.814.124-3.423-1.152-5.725-2.707-8.587-1.921-3.762-9.057-13.951-13.16-17.92z" stroke="none"/> - <path d="M235.53 213.44c3.983.02 4.667-5.32 4.667-6.813-1.96.373-5.414 3.64-4.667 6.813zm34.42 51.82c2.833.645 2.794-6.178-.1-9.07 1.274 4.382-2.128 8.388.1 9.07zm-1.1-.06c.187 3.243-7.959-.424-10.052-2.946 4.813 2.044 9.815.352 10.052 2.946zm-3.57-4.63c.291 3.141-7.064.38-9.238-2.074 4.83 1.56 8.917-.511 9.238 2.074zm1.35.44c2.833.645 2.374-6.412-.38-8.837 1.322 4.71-1.848 8.155.38 8.837zm-2.98-4.29c2.833.645 1.207-5.431-.893-7.857.341 4.43-1.055 7.502.893 7.857zm-1.5-.02c.292 3.235-5.43.751-7.65-2.309 4.782 1.561 7.329-.276 7.65 2.309zm-1.56-2.46c1.856-1.334-.113-4.863-3.645-4.645.346 2.132 1.566 5.88 3.645 4.645zm13.95 14.63c.187 3.243-7.96 1.63-10.519-1.825 5.139.97 10.281-.769 10.519 1.825zm-32.36-5.8c.292 3.235-8.602-.322-10.823-3.383 4.783 1.561 10.502.798 10.823 3.383zm5.45 1.38c1.856-1.334-1.933-4.77-4.951-5.578.346 2.131 2.872 6.813 4.951 5.578zm.57 2.24c.199 2.908-9.537 1.313-12.084-1.374 8.377 1.514 11.81-1.117 12.084 1.374z"/> - <path d="M252.76 268.63c1.08 2.701-8.264 2.042-11.545.471 5.301-.046 10.802-2.353 11.545-.471z"/> - <path d="M257.13 270.6c1.034 2.421-7.61 2.369-11.824 1.03 5.581-.045 10.801-3.426 11.824-1.03zm6.29 1.3c1.531 2.865-7.588 3.143-10.547 1.733 5.273-.725 9.242-3.988 10.547-1.733zm-10.68-4.9c-2.901 1.83-2.746-3.564-5.053-7.3 3.625 3.302 7.02 5.556 5.053 7.3z"/> - <path d="M257.88 268.94c-2.433 2.156-4.379-5.246-6.594-9.399 3.58 3.954 8.84 7.609 6.594 9.399zm6.8 2.06c-2.06 2.389-8.02-7.018-10.187-11.919 3.3 3.815 11.826 9.895 10.187 11.919zm-5.8 7.18c-1.028 3.632-16.192-3.423-17.885-7.079 8.677 4.598 18.092 3.636 17.885 7.079zm-48.73-73.8c-.355-.46-1.374.012-1.12 1.12.237 1.501 2.45 9.204 6.252 11.854 2.712 1.954 16.965 5.102 23.427 6.439 3.556.715 6.535 2.49 8.868 5.32-.965-3.702-1.74-6.445-2.987-9.8-1.211-2.947-4.421-6.173-7.746-6.346-6.175-.222-14.167-.748-19.974-3.268-2.997-1.252-4.792-2.943-6.72-5.32z"/> - <path d="M245.54 234.87c1.947 1.434 4.096-3.704 1.623-8.588-.078 4.701-3.815 6.28-1.623 8.588z"/> - <path d="M247.41 239.58c2.693.827 3.536-3.937 1.763-7.747.295 4.093-4.234 6.56-1.763 7.747z"/> - <path d="M249.46 243.36c2.6 1.295 3.585-3.518 1.716-7.092.204 4.56-3.72 5.904-1.716 7.092z"/> - <path d="M248.39 243.65c-1.03 3.08-7.007-2.655-8.014-5.775 3.71 3.685 8.757 3.278 8.014 5.775z"/> - <path d="M245.68 238.94c-1.171 3.08-8.687-4.85-10.348-8.668 3.71 3.685 11.184 6.498 10.348 8.668z"/> - <path d="M244.19 234.32c-1.17 3.5-9.34-5.829-11.654-9.135 3.897 3.639 12.537 6.592 11.654 9.135zm-.26-3.46c2.877-.56-.163-2.955-3.69-6.849-.164 4.1.509 6.966 3.69 6.849z"/> - <path d="M239.08 228.53c1.242-1.353-1.19-1.929-4.203-5.31-.444 2.28 2.794 6.454 4.203 5.31zm13.92 15.2c1.574.921 2.652-2.304.69-5.225-.45 3.16-2.133 4.037-.69 5.225zm-34.19-20.35c-3.342 2.004-8.652-5.992-10.068-9.282 2.933 3.776 10.699 7.224 10.068 9.282z"/> - <path d="M221.65 228.04c-1.85 2.05-7.671-3.519-9.694-6.341 3.12 2.702 10.512 3.023 9.694 6.341z"/> - <path d="M224.82 232.22c-.61 2.801-9.106-3.495-11.092-6.476 3.663 3.452 11.649 3.14 11.092 6.476z"/> - <path d="M223.52 235.25c-1.31 2.522-8.22-3.727-9.88-6.987 4.223 3.685 10.95 4.493 9.88 6.987zm-3.55-12.28c2.18-2.299 1.252-3.376-.338-7-.869 3.721-2.18 5.206.338 7zm2.89 4.34c3.954.174.038-4.638-.897-8.68.344 4.607-1.014 8.238.897 8.68z"/> - <path d="M225.38 231.13c2.74-.62 1.95-4.497-.15-9.193.436 5.073-2.321 8.005.15 9.193zm-.93 7.67c-1.03 3.08-8.826-4.056-10.067-6.755 3.943 3.312 10.763 4.445 10.067 6.755z"/> - <path d="M229.12 243.61c-1.17 3.082-9.34-3.167-11.839-6.568 4.922 3.872 12.443 3.513 11.839 6.568z"/> - <path d="M233.88 248.46c-1.31 4.294-9.853-2.56-12.399-5.915 5.436 4.151 13.096 2.86 12.399 5.915zm-8.03-11.03c2.32 1.201 3.258-5.384 1.949-10.033.017 5.074-4.654 8.845-1.949 10.033z"/> - <path d="M229.81 242.66c2.788.828 1.904-6.27-.478-10.873-.309 4.561-2.366 8.892.478 10.873zm4.95 4.9c3.114.174.971-6.084-1.597-9.613.437 4.607-1.013 9.079 1.597 9.613zm-5.46 2.67c-.936 1.586-3.226-1.347-6.986-3.489 3.382.885 7.402 2.019 6.986 3.489zm-1.78-52.74c2.906-2.15.69-6.173 0-9.998-.935 3.628-3.397 8.389 0 9.998zm-.1 5.36c-4.366-.524-3.71-6.171-3.84-9.75 1.312 4.858 4.891 5.679 3.84 9.75zm.69-.73c3.694-.214 3.498-4.417 3.695-8.668-1.872 3.907-4.09 4.514-3.695 8.668z"/> - <path d="M227.96 207.34c-2.873.23-4.366-2.594-5.023-6.993 2.725 4.054 5.203 2.79 5.023 6.993zm1.03-.35c3.694.475 3.104-3.825 2.955-6.995-1.132 3.022-4.136 3.974-2.955 6.995z"/> - <path d="M223.23 205.17c.295 2.807 2.07 7.634 4.926 6.55 1.181-3.448-2.513-4.137-4.926-6.55z"/> - <path d="M229.04 212.02c-1.28-2.462 2.905-3.695 3.792-6.895.509 4.58.082 7.584-3.792 6.895zm-11.91-29.18c2.3-2.477.269-6.406-.42-10.231-.936 3.628-2.557 8.435.42 10.231zm-.07 4.61c-4.039.41-5.016-7.804-5.427-11.337 1.313 4.859 5.965 7.08 5.427 11.337zm.83-.08c2.854-1.474 2.191-4.65 3.088-7.035-1.919 2.928-3.669 3.347-3.088 7.035z"/> - <path d="M217.09 192.75c-4.225.362-6.742-8.739-6.874-12.318 1.313 4.859 7.366 7.5 6.874 12.318zm.81-.14c3.973-.914 3.498-3.483 2.902-7.642-1.265 4.188-3.483 3.3-2.902 7.642z"/> - <path d="M217.04 198c-4.646.788-4.32-6.56-8.009-11.893 3.191 3.96 8.936 8.95 8.009 11.893zm1.05-.25c3.507.102 3.85-5.179 3.656-7.32-.807 2.133-4.93 4.159-3.656 7.32z"/> - <path d="M209.78 192.34c1.742 5.654 4.216 11.32 7.259 10.89 1.46-3.215-2.887-3.624-7.259-10.89z"/> - <path d="M218.14 202.4c-1.28-2.462 2.905-3.695 3.792-6.895.509 4.58.082 7.584-3.792 6.895zm-7.16-3.6c2.487 5.094 3.609 10.948 7.024 10.097 1.275-3.961-3.771-4.79-7.024-10.097z"/> - <path d="M218.71 207.93c-1.467-2.695 2.719-3.648 3.745-7.362.556 4.86.036 8.33-3.745 7.362zm7.16-34.48c2.451.663 5.022-2.09 4.131-6.208-2.801.697-4.087 3.24-4.131 6.208zm-7.84-2.06c.214 1.159 1.623 1.264 1.214-.373-.342-1.328-.4-2.327 0-3.407.548-1.353.365-3.658-.047-4.62-.416-1.015-1.793-.42-1.214.375.638.92.672 2.837.233 3.732-.577 1.32-.42 3.075-.186 4.293zm22.87 15.92c-.947 1.393-2.881.541-1.408-1.372 1.208-1.549 2.928-2.814 3.055-4.414.1-2.029 1.291-5.107 2.373-6.145 1.118-1.106 2.409.45 1.214 1.188-1.342.872-2.214 4.456-2.185 5.836-.045 2.001-2.041 3.447-3.049 4.907zm-2.98-2.24c-.947 1.393-2.457.585-1.601-1.652.722-1.549.8-3.468 1.604-4.6 1.125-1.717 3.03-3.147 4.112-4.186 1.118-1.106 2.046-.04 1.021.908-1.244 1.245-2.595 2.795-3.345 3.97-1.4 2.28-.783 4.1-1.79 5.56zm-15.74-7.21c-.112 1.967 1.47 2.443 1.4-.409-.072-2.978-2.179-5.702-.886-10.235.68-2.217.691-6.281.28-8.441-.363-2.142-1.887-.743-1.308.925.638 1.935-.12 5.645-.607 7.511-1.463 5.434 1.207 8.08 1.121 10.65zm4.32-10.88c-.232 1.81-1.764 1.974-1.319-.582.371-2.075.435-3.635 0-5.321-.596-2.114-.397-5.714.05-7.216.452-1.585 1.95-.656 1.32.584-.694 1.439-.73 4.432-.254 5.83.627 2.063.457 4.802.203 6.705zM210.94 204c.758.902 2.036.298.871-.923-.952-.987-.639-1.298-1.22-2.5-.574-1.343-.544-2.084-1.237-3.044-.613-.91-1.535.019-.917.785.775.906.561 1.574 1.035 2.45.877 1.5.663 2.288 1.468 3.232zm20.4 24.61c2.44 1.2 4.291 4.196 4.413 6.636.207 2.809.612 5.18 1.873 7.176-2.008-.559-2.97-3.76-3.255-6.825-.29-3.173-1.999-4.549-3.031-6.987zm5.08 5.88c1.688 3.116 4.049 4.304 4.17 6.617.204 2.66.406 2.797 1.127 5.413-1.987-.53-2.487-.703-3.024-4.684-.33-2.798-2.57-4.772-2.273-7.346z"/> - <path d="M288.97 263.32c.949 1.788 2.038 4.51 4.013 4.013.03-1.37-2.131-2.318-4.013-4.013zm2.94.61c3.835 1.572 7.147 1.184 7.56 3.595-3.598.388-4.914-1.09-7.56-3.595zm-16.06-12.69c2.583 2.116 4.259 4.531 5.04 7.653.815 2.908 1.96 5.226 3.641 7.84-2.738-1.867-4.46-4.407-5.32-7.467-.757-3.009-1.65-5.257-3.361-8.026zm3.18-.01c2.77 2.21 5.38 4.719 6.16 7.84.815 2.908 1.308 5.134 3.175 8.027-2.925-1.867-4.086-4.688-4.947-7.748-.756-3.007-2.49-5.255-4.388-8.119zm9.14 7.24c-.076-.546.297-1.023.747-1.166a33.429 33.429 0 0 1 2.612-.84c.986-.233 1.538.47 1.541.933.005.77.04 1.423 0 2.006-.053.726-.192.78-.653.888-.738.124-1.685.25-2.426.746-.588.361-1.153.076-1.447-.559-.19-.485-.294-1.433-.374-2.008zm10.63 0c.068-.546-.22-1.07-.621-1.213-.781-.327-1.56-.407-2.38-.374-.912-.014-1.141.192-1.144.654-.004.77-.037 1.516 0 2.099.048.726.032.78.444.888.66.124 1.784.157 2.447.653.525.36 1.124.075 1.153-.606-.013-.513.03-1.526.1-2.101z" stroke="none"/> - </g> - <use height="100%" width="100%" x="-600" xlink:href="#a" transform="scale(-1 1)"/> - <g stroke="none"> - <path d="M328.54 286.65c.047 1.181.188 2.131.888 3.08-4.076-1.633-9.831-.759-13.767 1.074-1.756.838-3.88-.958-1.821-2.66 2.93-2.374 9.706-1.028 14.7-1.494zm-57.505-.062c.057 1.113-.072 2.133-.481 3.106 4.43-1.835 9.187-.31 13.664 1.494 3.077 1.273 3.325-.93 2.782-1.692-.934-1.353-2.742-2.838-5.028-2.87-1.522-.021-7.382-.074-10.937-.038zm3.74-21.642c-1.236-.533-2.672-.02-3.96 1.335-4.327 4.24-9.404 8.371-13.502 11.584-1.529 1.329-3.091 3.712 3.431 6.094.237.09 4.991 1.852 8.004 1.964 1.23-.034 1.227 1.803.999 2.293-.52.978-.143 1.352-1.193 2.293-1.095.924.117 2.12.977 1.307 3.672-3.188 9.627-1.148 15.366.718 1.356.375 3.837.27 3.815-1.6.024-2.038 1.5-3.48 2.404-3.532 2.343.406 13.919.535 17.485.102 2.079-.27 2.204 2.848 3.316 4.077.767.815 3.72 1.031 5.743.137 4-1.858 10.097-1.858 12.582-.082 1.021.778 1.828.147 1.247-.643-.748-1.08-.731-1.58-1.103-2.433-.933-1.898-.188-2.363.79-2.5 11.054-1.426 14.582-5.197 11.202-8.272-4.364-3.828-9.222-7.676-13.408-12.198-1.135-1.2-1.885-1.68-4.247-.699-7.221 3.289-16.388 5.687-25.358 5.862-8.347.072-19.824-3.79-24.589-5.807z"/> - <path d="M326.62 265.54c-.58.058-1.197.238-1.656.406-8.921 3.134-17.117 5.328-25.656 5.313-8.335-.016-17.066-2.31-24.906-5.531-.446-.191-.96-.161-1.469-.032-.509.13-1.012.366-1.344.688-3.64 3.626-7.582 7.148-11.812 10.344-.639.488-.535 1.73.5 2.156h.031c8.305 2.98 16.412 8.532 39.625 8.313 23.433-.222 31.746-5.64 39.188-8.125.525-.2 1.065-.5 1.313-.97a1.03 1.03 0 0 0 .062-.812c-.095-.286-.283-.554-.625-.843h-.03c-4.224-3.453-8.75-6.207-11.72-10.406-.334-.48-.92-.558-1.5-.5zm.031.438c.507-.051.895.027 1.094.312 3.041 4.301 7.621 7.074 11.812 10.5.3.254.442.48.5.656a.498.498 0 0 1-.031.438c-.15.284-.59.57-1.063.75-7.534 2.515-15.668 7.904-39.03 8.125-23.116.218-31.095-5.303-39.47-8.313-.754-.31-.687-1.16-.406-1.375 4.242-3.206 8.227-6.741 11.875-10.375.25-.243.653-.45 1.094-.562.44-.113.912-.131 1.219 0 7.879 3.238 16.613 5.578 25.03 5.594 8.619.015 16.904-2.204 25.845-5.344.445-.163 1.024-.356 1.53-.406z" fill="#bd6b00"/> - <path d="M269.71 114.56c-.068-1.379 2.07-1.484 1.824.412-.313 2.362 4.459 8.342 4.854 12.029.265 2.473-1.453 4.637-3.154 5.984-2.086 1.616-5.293 1.394-6.794.467-.908-.731-1.735-3.234-1.056-4.224.24-.334 1.328 3.673 3.722 3.657 3.258-.02 5.896-2.468 5.993-4.65.167-3.802-5.33-9.81-5.389-13.676zm9.53 9.39c.539-.385 1.399 1.296.792 1.716-.505.337-1.492-1.25-.792-1.716zm1.45-3.41c-.272.132-.814-.056-.652-.287.762-1.089 2.387-2.728 3.565-3.3.362-.176.995.463.776.776-.705 1.007-2.42 2.195-3.689 2.811zm12.59-9.99c.302-.63 2.117-1.344 2.58-1.77.427-.439.631.37.448.751-.302.63-1.868 1.696-2.555 1.724-.37.016-.656-.324-.473-.705zm4.31.2c.393-1.107 1.66-2.786 2.533-3.339.448-.283 1.252-.06 1.101.364-.333.94-1.884 2.581-2.927 3.355-.316.282-.798-.123-.707-.38zm-3.69 2.77c-.263.132-.12.691.133.776.538.18 1.52.214 1.964-.03.645-.398.35-2.845-.513-1.538-.58.806-1.002.547-1.584.792zm-7.29 5.62c-1.318-1.026.355-2.464 1.732-1.46 2.683 2.024-4.003 9.778-7.64 13.403-.666.71-1.25-1.078-.397-1.848 2.608-2.212 5.05-4.855 6.747-7.586.327-.525.64-1.658-.442-2.509zm15.27-6.67c.164-.982-1.589.02-1.621-1.281-.017-.69 1.915-1.173 2.722-.38 1.365 1.384.345 3.718-1.924 3.865-1.891.084-5.046 2.685-4.566 3.232.546.675 5.45 1.121 8.302.675 1.765-.248 1.395 1.331-.414 1.545-1.747.201-3.171.015-4.805.528-1.922.549-2.76 3.13-3.828 4.092-.238.167-.88-.846-.636-1.227.77-1.203 1.996-3.045 3.346-3.572.852-.345-2.348-.454-3.37-.745-.81-.244-.574-1.274-.264-1.848.412-.895 3.429-3.916 4.645-3.867 1.142.049 2.3-.284 2.413-1.017zm5.08.26c.567-.5.858-1.338 1.453-1.848.326-.327.847.065.76.853-.073.621-.907 1.156-1.468 1.623-.456.342-.986-.396-.745-.628zm6.47-2.3c.845-.093 1.055 1.537.131 1.801-.56.187-1.05-1.705-.131-1.801zm-2.13 5.04c-.013 1.404.68 1.275 2.002 1.227 1.283-.049 2.412.033 2.407-1.235-.006-1.314-.727-2.464-.939-1.57-.186.84-.334 2.216-.823 1.617-.46-.515-.278-.628-1.071.217-.44.466-.49-.226-.754-.66-.184-.257-.82.208-.822.404zm-9.22 7.16c-.315 1.858-.026 4.459.925 4.488 1.175.038 3.607-4.061 4.759-6.188.69-1.187 1.877-1.394 1.382-.156-.749 1.91-.682 5.998-.024 7.199.354.647 2.964-.593 3.386-1.515.767-1.675.143-4.762.412-6.647.13-1.237 1.263-1.496 1.203-.349-.112 2.052-.307 5.815-.162 7.524.086.982 2.894 2.432 3.346-.543.238-1.872 1.202-3.719-.047-5.793-.774-1.297 1.136-1.134 2.166.637.72 1.206-.607 3.202-.56 4.744.12 2.373-1.726 3.722-3.066 3.75-1.197.024-1.977-1.446-2.957-1.467-1.089-.07-2.207 1.693-3.106 1.63-3.486-.238-1.64-5.333-2.703-5.395-1.181-.07-2.574 4.994-4.03 4.813-1.434-.172-2.919-4.127-2.322-5.8.54-1.557 1.558-1.922 1.398-.932z"/> - <path d="M318.96 114.6c-1.701-1.038.108-3.736.939-2.788 1.606 1.923 3.224 6.487 4.356 6.864.716.24.683-3.374 1.188-5.016.326-1.213 1.793-.817 1.513.737-.096.52-1.917 6.422-1.777 6.655 1.262 2.522 2.51 5.081 3.3 7.788.326 1.167-1.075.381-1.243.139-.894-1.338-2.46-6.452-2.46-6.219-.72 3.598-.89 4.66-1.655 7.717-.233.98-1.675.802-1.35-.924.313-1.418 2.375-8.392 2.259-8.594-1.621-2.862-3.104-5.125-5.07-6.359z"/> - <path d="M322.03 131.2c-.474-.054-1.21 1.055 1.152 1.49 3.156.572 6.61-.491 7.67-3.586 1.212-3.687 2.013-7.177 2.646-8.493.791-1.535 1.803-1.411 1.056-3.651-.526-1.612-1.51-1.126-1.716-.264-.552 2.35-2.646 9.952-3.3 11.352-1.233 2.555-3.718 3.565-7.508 3.152z"/> - <path d="M328.35 119.07c-.338-.725-1.127-.164-.986.63a1.197 1.197 0 0 0 1.25 1.086c.692-.024 2.155.023 2.159-1.125.002-.807-.632-1.481-1.103-.591-.45.806-1.03.722-1.32 0zm.79-3.04c-.243.168-.025 1.066.264 1.056 1.031-.035 2.492-.363 3.275-.908.229-.16.133-.702-.193-.69-.994.032-2.575.006-3.346.542zm8.76 2.26c.747-1.167 2.806-1.286 2.066.38-.525 1.148-5.652 11.055-6.352 12.315-.764 1.417-1.389.715-.846-.388.73-1.42 4.898-11.962 5.132-12.307z"/> - <path d="M330.18 133.04c-.219-.788-1.442-1.954-1.304.155.243 3.828 5.503 2.618 7.096 1.257 1.445-1.28.19 4.323 2.112 4.922 1.058.34 3.05-1.105 4.03-2.376 2.717-3.525 4.446-8.578 7.058-12.058.987-1.36-.54-2.332-1.157-1.25-2.272 3.81-5.094 11.586-8.176 13.605-2.513 1.608-1.768-2.07-1.856-3.176-.11-.81-1.097-2.003-2.415-.908-.921.72-2.352 1.305-3.648 1.188-.752-.042-1.386-.029-1.74-1.359z"/> - <path d="M339.57 125.93c.028-.216-1.112-.314-1.056.792.04.819 1.019 1.041 1.188.924 1.54-1.12-.328-.562-.132-1.716zm-2.24 4.49c-.303.071-.582 1.04.133 1.095.653.046 3.213-.229 3.92-.187.458-.017.632-.892-.348-.845-1.19.06-2.754-.239-3.705-.063zm-61.96-16.66c.406.02 1.52 1.462 1.447 1.913-.05.213-1.191-.031-1.54-.326-.258-.219-.154-1.599.093-1.587zm-5.369 10.452c-1.017.555.162 1.651.924 1.188 2.86-1.853 7.154-3.799 8.052-7.468.287-1.243 1.443-3.148 2.54-3.573 1.059-.411 2.598 1.917 3.602.085.59-1.047 2.654.687 3.152-.433.607-1.354.318-2.099.343-3.395-.045-.85-.693-1.103-1.164.272-.245.623.043 1.251-.156 1.576-.152.247-.625.486-.9.28-.253-.19-.078-.72-.685-.955-.235-.118-.612-.216-.776.086-.72 1.284-1.12 2.482-2.128 1.117-.898-1.176-1.353-3.209-2.011-.427-.237.982-1.73 2.407-2.61 2.407-1.099 0-.823-2.894-3.237-2.453-1.241.264-1.155 2.64-.97 3.517.305 1.22 3.931.344 3.751 1.141-.62 2.771-4.467 5.406-7.727 7.035zM247.3 137.42c-.154.464.462 1.723 1.101 1.816.628.046.948-1.36.746-1.816-.15-.336-1.737-.329-1.847 0zm3.33 4.88c-.403-.434-1.589.73-.63 1.553.54.436 2.513 1.07 3.053.148.73-1.185-.72-5.488-.078-6.057.502-.444 2.828 2.875 3.976 3.114 2.697.373 2.05-4.619 4.956-4.28 1.98.264 2.198-2.211 1.922-3.756-.22-1.483-2.622-3.624-3.726-4.582-1.452-1.21-2.1.892-1.188 1.584 1.173.94 3.236 2.837 3.565 4.093.155.592-1.434 1.77-2.02 1.451-1.35-.737-2.607-3.898-3.789-4.62-.402-.246-1.393.31-.916 1.296.536 1.057 2.905 2.693 3.044 3.821.125 1.029-1.056 3.253-1.831 3.253-.853 0-3.028-2.688-3.706-3.953-.34-.606-1.515-.547-1.638.29-.195 1.255.182 3.912.481 5.558.238 1.559-.878 1.638-1.475 1.087zm-4.07-8.57c-.34.384.792 1.134 1.017.94.436-.378 2.128-2.308 1.802-2.983-.29-.601-2.618-1.918-2.997-1.266-.702 1.128 2.195 1.634 1.74 1.965-.223.128-1.02.679-1.562 1.344zm4.17-8.46s.728 2.49 1.32 1.452c.48-.719-1.32-1.452-1.32-1.452zm1.19 3.96c-.266.146-1.017.74-.528 1.056.773.457 2.875.82 2.421-.676-.275-.88 3.171.025 2.331-2.36-.22-.66-1.259-1.612-1.77-1.747-.325-.085-1.429.52-.738.854.504.26 2.024 1.154 1.46 1.74-.642.612-1.089-.275-1.887-.132-.401.076-.14 1.218-.366 1.53-.126.172-.706-.383-.923-.265zm5.48-9.46c-.435.217-1.214 1.396-1.242 1.941-.016.291.303.691.552.567.456-.228 1.16-1.344 1.187-1.856.017-.324-.227-.787-.497-.652zm2.84-.31c-.84-1.027.891-2.55 1.67-.496.47 1.29 5.488 7.892 6.514 10.132.727 1.516-.026 2.142-.924 1.056-2.541-3.242-4.626-7.283-7.26-10.692zm5.15.14c.895-.97 2.721-2.95 2.23-4.053-.378-.95-1.488-.856-1.678-.636-1.086 1.296.772.97.504 1.413-.553 1.038-1.104 1.61-1.39 2.608-.066.234.173.843.334.668zm77.78 3.24c-.643-.52.632-3.044 1.494-2.053 2.368 2.74 3.469 11.636 4.153 18.294 0 0-1.064.887-1.073.746 0-3.547-1.425-14.397-4.574-16.987zm-53.1-8.66c-.766-1.76 1.15-2.412 1.436-1.157 1.33 5.783 4.517 10.16 6.942 14.093.73 1.23.145 1.962-1.63.83-1.23-.842-2.478-3.916-3.083-4.037-1.094-.204-3.713 4.993-9.07 3.51-1.385-.388-1.293-4.508-1.32-6.329-.058-.853.885-1.078.917.086.049 1.678-.002 5.164 2.144 5.281 1.75.098 5.627-2.376 6.444-4.31.728-1.99-1.952-5.942-2.78-7.967z"/> - <path d="M344.61 138.38c.428-1.191 6.114-10.735 6.86-12.835.383-1.013 2.015 1.737.421 3.22-1.4 1.26-5.53 8.034-6.301 10.408-.355 1.072-1.432.562-.98-.793z"/> - <path d="M354.28 129.28c1.05-3.935 3.593.607 1.353 2.847-3.458 3.387-4.5 9.854-9.987 10.827-1.479.318-4.082-.666-4.853-1.214-.301-.214.194-1.618 1.119-.933 1.337 1.044 4.098 1.28 5.555.093 3.118-3.06 5.657-7.113 6.813-11.62zm-57.01 12.74c-.247.284-1.004.238-1.072.637-.297 1.48 0 2.23-.326 3.655-.312 1.365-1.259 1.416-1.194.304.086-1.442 1.274-3.478.435-3.618-.56-.13-.99-.879-.413-1.248 1.092-.757 1.679-.641 2.43-.413.26.08.328.464.14.683z"/> - <path d="M296.5 140.09c-1.448 1.266-2.79 1.784-4.123 3.384-.544.656-.529 1.57-.854 2.406-.326.888-1.375 1.062-1.7.877-.543-.357-.465-2.003-1.071-1.117-.515.816-.847 1.94-1.608 1.926-.689-.014-1.987-1.422-1.329-1.49 2.252-.23 2.225-2.033 3.068-2.151.946-.127 1.008 1.488 1.592 1.165.46-.236.675-2.117 1.173-2.625 1.527-1.56 2.735-2.385 4.293-3.531.788-.629 1.35.505.559 1.156zm5.28 4.85c-1.159.234-.962 1.724-.621 1.909.561.262 1.43.372 1.755-1.342.151-.703.289 3.498 1.831 1.88.888-.981 3.087.178 4.008-1.056.66-.822.863-1.396.349-2.61-.15-.369-1.053-.187-1.001.709.045.755-.535 1.687-1.29 1.528-.367-.067.206-1.847-.162-2.33-.203-.265-.511-.236-.713.039-.283.384.284 2.09-.646 2.315-1.174.27-.56-1.141-1.056-1.4-1.599-.806-1.753.21-2.454.358zm9.05-2.86c.85-.239.584-.24 1.921-1.334.52-.395.624.76.569 1.216-.097.775-1.018.228-1.304.91-.418.886-.248 2.948-.388 3.788-.096.431-.787.394-.853.054-.198-1.024.14-2.026.108-3.307-.011-.435-.634-1.117-.053-1.327zm-5-2.62c-.205.927-.19 1.69-.19 2.325.047.514.986.183.982.118-.047-.814.139-1.94-.102-2.253-.13-.17-.642-.365-.69-.19z"/> - <path d="M299.54 130.19l-1.458 5.594-2.03-3.75v3.844l-4.374-5.188 1.521 5.563-3.93-3.344 2.092 3.781-6.975-4.5 4.438 5.188-5.58-2.75 3.995 3.375-9.13-3.438 8.813 4.344c3.223-1.588 7.64-2.563 12.554-2.563 4.896 0 9.335.985 12.554 2.563.012.006.052-.006.064 0l8.75-4.344-9.004 3.469 3.931-3.406-5.516 2.718 4.375-5.156-6.975 4.5 2.093-3.781-3.932 3.344 1.522-5.563-4.375 5.22.063-3.876-2.029 3.75-1.458-5.594z"/> - </g> - </g> - <path d="M249.08 299.688c0 .501-.076 1.226-.227 2.172h-.35c0-.645-.03-1.14-.09-1.488a7.364 7.364 0 0 0-.34-1.239 5.776 5.776 0 0 0-.459-1.03 11.338 11.338 0 0 0-.797-1.143l.701-1.73c.325.414.555.733.69.955.155.257.3.58.436.968a7.45 7.45 0 0 1 .436 2.535m5.5-3.351c0 .528-.1.924-.3 1.188-.2.264-.542.453-1.024.566.14.49.231.873.277 1.149.049.275.073.583.073.922 0 .219-.013.453-.04.702-.022.249-.065.584-.13 1.007h-.316c0-.377-.021-.702-.063-.973a4.398 4.398 0 0 0-.175-.776 28.8 28.8 0 0 0-.3-.797 8.374 8.374 0 0 0-.532-1.183c-.173-.317-.458-.752-.854-1.307l.543-1.63c.287.412.538.696.753.855.215.155.47.232.763.232.642 0 .962-.347.962-1.041h.328c0 .226.006.415.017.566.012.147.017.32.017.52m5.051 3.825l-.407 1.697c-.256-.072-.465-.273-.628-.605-.135-.276-.234-.625-.294-1.047a9.878 9.878 0 0 1-.085-1.313c-.343.09-.615.136-.814.136-.397 0-.725-.104-.985-.311a.99.99 0 0 1-.385-.798c0-.69.177-1.31.532-1.862.358-.554.762-.831 1.21-.831.348 0 .59.098.725.294.151.215.243.46.277.735.034.276.051.808.051 1.596 0 .705.057 1.203.17 1.494.09.226.302.498.634.815m-1.528-2.818c-.068-.43-.294-.645-.679-.645a.825.825 0 0 0-.458.136c-.14.09-.21.17-.21.237 0 .227.272.34.815.34a2.2 2.2 0 0 0 .532-.068m6.875 2.395l-.203 2.06c-.404-.284-.778-.795-1.12-1.534-.36-.773-.721-1.87-1.087-3.288-.313 1.366-.572 2.367-.775 3.005-.2.634-.398 1.082-.594 1.347-.132.177-.344.356-.634.537l.045-1.969c.374-.51.636-.898.787-1.166a6.07 6.07 0 0 0 .548-1.386c.148-.532.28-1.243.396-2.133h.374c.23.894.453 1.605.668 2.133.2.498.433.938.701 1.318.189.268.487.627.894 1.076" fill="#fff"/> - <path d="M280.521 319.165c.275.323.468.639.58.949.108.306.186.744.235 1.314l-.614.05c-.261-.512-.516-.913-.763-1.202a15.15 15.15 0 0 0-.913-.943c-.42-.407-.85-.804-1.29-1.19a27.306 27.306 0 0 0-1.689-1.353c-.24-.178-.392-.306-.457-.382-.096-.112-.171-.333-.227-.663a8.923 8.923 0 0 1-.11-1.245l2.142 1.742a35.26 35.26 0 0 1 2.008 1.764c.408.392.774.78 1.098 1.16m-7.6-4.58l-.128 1.576-2.523-.069.19-1.608 2.462.1m6.637 7.054l-6.012 1.832-1.106-1.529 5.197-1.584a6.28 6.28 0 0 0-.547-.683c-.201-.2-.43-.356-.689-.47a1.132 1.132 0 0 1-.358.761 2.06 2.06 0 0 1-.862.49c-.462.14-.924.16-1.385.058-.462-.102-.8-.303-1.018-.603-.32-.442-.492-1.03-.515-1.764-.026-.806.194-1.28.662-1.422.606-.185 1.426-.016 2.46.506 1.033.522 1.826 1.165 2.38 1.93l1.793 2.478m-4.617-3.21a3.091 3.091 0 0 0-.68-.238.903.903 0 0 0-.459.009.542.542 0 0 0-.358.294.392.392 0 0 0 .049.418c.062.086.167.143.314.171.15.023.31.009.477-.042a.888.888 0 0 0 .346-.195c.1-.094.204-.233.31-.417m-6.44-1.23l-.368 1.56-2.5-.23.38-1.576 2.488.246m5.927 6.089l-1.335.306a4.209 4.209 0 0 1-1.357.1 2.832 2.832 0 0 1-1.203-.402c-.221.402-.61.74-1.165 1.012a5.896 5.896 0 0 1-1.283.439l-.947.217-.868-1.592.947-.217c.5-.115.84-.21 1.022-.287.185-.082.417-.221.696-.417a4.673 4.673 0 0 0-.74-.39c-.228-.084-.43-.106-.604-.066a.32.32 0 0 0-.164.09.485.485 0 0 0-.1.208l-.417.056c-.384-.706-.472-1.253-.263-1.639.213-.391.725-.68 1.537-.866.837-.192 1.55-.235 2.143-.13.596.1.995.336 1.197.707.108.2.15.405.123.617-.028.209-.132.51-.31.902.124.054.27.087.438.097.168.01.318 0 .45-.031l1.335-.307.868 1.593m-6.383 1.485l-1.302.204c-.726.114-1.322.002-1.788-.333-.519-.37-.966-1.06-1.342-2.07l-.641-1.72c-.146-.39-.343-.681-.59-.872-.12-.092-.363-.214-.728-.365l.443-1.667c.48.266.849.544 1.109.836.303.34.561.793.772 1.36l.443 1.19c.314.84.618 1.41.913 1.71.234.24.5.336.797.29l1.302-.205.612 1.642m-5.565-5.978l-.841 1.48-2.38-.549.848-1.494 2.373.563m1.384 6.702l-5.933.538-.36-1.673 4.985-.452a1.847 1.847 0 0 0-.531-.673c-.118-.098-.379-.262-.783-.493l.444-1.532c.549.305.95.641 1.202 1.007.259.365.47.923.63 1.673l.346 1.605m-4.763.76a13.04 13.04 0 0 1-1.77-.159 8.346 8.346 0 0 1-1.37-.362 4.466 4.466 0 0 1-1.021.301c-.291.045-.726.057-1.306.038l-1.558-.052c-.427-.014-.759-.098-.996-.25-.237-.154-.441-.4-.612-.742-.378.335-.79.57-1.235.705-.38.116-.827.165-1.343.148l-1.367-.046.133-1.686 1.367.045c.67.022 1.236-.081 1.702-.31.604-.3.933-.773.984-1.422l.626.083c-.023.132-.048.282-.074.451-.026.17-.048.357-.064.564-.017.21.081.39.293.538.212.148.461.227.748.236l1.176.04c.777.025 1.337-.027 1.68-.156.414-.156.64-.466.676-.929.008-.1.063-.186.165-.262a2.61 2.61 0 0 1 .37-.193l.377-.174c.007.08.008.187.004.324-.005.132-.008.22-.011.26-.018.228-.093.528-.225.9.23.083.49.156.778.22.29.063.595.115.918.154.01-.14-.055-.325-.196-.553-.142-.229-.21-.382-.203-.461a.415.415 0 0 1 .086-.246c.014-.02.09-.082.225-.185l.87-.686c.15.266.253.508.306.725.06.213.077.48.052.798l-.185 2.344m-9.007-6.93l-1.499 1.06-1.13-.698-1.112.83-1.487-.897 1.42-1.01 1.2.67 1.158-.847 1.45.891m-2.356 6.46l-5.809-.951.638-1.638 4.88.8a1.296 1.296 0 0 0-.102-.753c-.052-.12-.198-.336-.438-.649l1.3-1.31c.33.416.507.825.53 1.226.027.401-.102.97-.388 1.704l-.611 1.571m-4.89-.758l-1.256-.302c-.7-.168-1.1-.476-1.197-.924-.112-.495.11-1.23.667-2.203l.948-1.66c.215-.376.302-.689.26-.937-.02-.12-.116-.309-.288-.566l1.8-1.223c.17.394.237.76.202 1.095-.04.392-.217.862-.53 1.41l-.655 1.146c-.464.811-.702 1.394-.714 1.749-.013.284.125.46.412.53l1.256.302-.905 1.583m-2.975-6.286l-2.039.86-1.4-1.364 2.056-.868 1.383 1.372m-.867 5.266c-.424.501-.84.877-1.25 1.128-.405.247-.86.402-1.363.463-.498.064-1.129.035-1.892-.086a11.805 11.805 0 0 1-2.199-.55c-1.359-.485-2.27-1.02-2.735-1.606-.462-.58-.443-1.166.058-1.758a5.588 5.588 0 0 1 1.522-1.256c.648-.37 1.658-.789 3.03-1.258l.31.408c-1.072.416-1.812.73-2.219.944a3.322 3.322 0 0 0-.975.765c-.323.381-.274.805.147 1.271.429.465 1.155.88 2.178 1.244 1.007.36 1.96.536 2.86.53.9-.004 1.503-.188 1.81-.551.19-.225.318-.47.382-.735.07-.264.113-.709.127-1.337l1.982-1.206c.001.6-.027 1.003-.085 1.21-.1.375-.355.806-.766 1.292l-.922 1.088" fill="#bf0000"/> -</svg> diff --git a/img/flags/1x1/ag.svg b/img/flags/1x1/ag.svg deleted file mode 100644 index 0b5d4fd..0000000 --- a/img/flags/1x1/ag.svg +++ /dev/null @@ -1,14 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" height="512" width="512" viewBox="0 0 512 512"> - <defs> - <clipPath id="a"> - <path fill="#25ff01" d="M108.95 47.6h464.86v464.86H108.95z"/> - </clipPath> - </defs> - <g clip-path="url(#a)" fill-rule="evenodd" transform="translate(-120 -52.427) scale(1.1014)"> - <path fill="#fff" d="M0 47.6h693V512H0z"/> - <path d="M1.53 48.16h690.83v196.2H1.53z"/> - <path fill="#0061ff" d="M128.29 232.12h458.52v103.35H128.29z"/> - <path d="M692.53 49.19v463.27H346.86L692.53 49.19zm-691.34 0v463.27h345.67L1.19 49.19z" fill="#e20000"/> - <path d="M508.78 232.22l-69.285-17.58 58.944-44.467-72.388 10.34 37.228-63.08-64.115 37.23L410.54 81.24l-43.432 57.91-17.58-67.217-19.648 69.285-43.433-58.944 12.41 75.49-64.115-39.296 37.228 63.08-70.32-11.375 57.91 43.433-72.387 18.614h321.61z" fill="#ffd600"/> - </g> -</svg> diff --git a/img/flags/1x1/ai.svg b/img/flags/1x1/ai.svg deleted file mode 100644 index bbecfad..0000000 --- a/img/flags/1x1/ai.svg +++ /dev/null @@ -1,767 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" height="512" width="512" viewBox="0 0 512 512"> - <defs> - <clipPath id="a"> - <path fill-opacity=".67" d="M0 0h512v512H0z"/> - </clipPath> - </defs> - <g clip-path="url(#a)"> - <path fill-rule="evenodd" fill="#fff" d="M-167.86.45h429.52v256.07h-429.52z"/> - <path d="M-167.86.45l-.018 19.22 102.5 63.22 38.565 1.34L-167.863.45z" fill="#c00"/> - <path d="M-123.97.45L.29 78.366V.45h-124.26z" fill="#006"/> - <path d="M16.866.45v99.468h-184.73v56.84h184.73v99.467h56.84v-99.468h184.73v-56.84H73.705V.45h-56.84z" fill="#c00"/> - <path d="M90.283.45v73.417L211.853 1.02 90.283.45z" fill="#006"/> - <path d="M94.12 81.87l34.19-.33L261.13 1.02l-35.24.688L94.12 81.87z" fill="#c00"/> - <path d="M259.78 22.495L158.32 82.89l100.11.45v89.995h-85.258l84.47 54.942 1.24 27.948-45.117-.647-123.48-72.77v73.417H.29v-73.417l-115.83 73.22-52.315.197v255.78h852.58V.455l-424.04-.46m-428.54 28.87l-.45 53.12 89.757 1.35-89.307-54.472zm-.005 144.465v54.47l85.258-53.9-85.258-.57z" fill="#006"/> - <path d="M160.45 175.58l-35.543-.33 133.97 80.07-.88-18.318-97.55-61.422zm-295.02 81.09L-8.95 177.5l-32.994.262-125.92 78.79" fill="#c00"/> - <path d="M368.61 245.108l2.165 2.166-2.165-2.166z" fill="#49497d"/> - <path d="M370.775 245.108l2.166 2.166-2.165-2.166z" fill="#0e0e6e"/> - <path d="M364.28 247.274l2.164 2.165-2.165-2.166z" fill="#262678"/> - <path d="M366.444 247.274l2.166 2.165-2.166-2.166z" fill="#808067"/> - <path d="M372.94 247.274l2.166 2.165-2.165-2.166z" fill="#58587b"/> - <path d="M292.817 249.44l2.166 2.165-2.166-2.166z" fill="#0e0e6e"/> - <path d="M359.948 249.44l2.165 2.165-2.165-2.166z" fill="#1b1b74"/> - <path d="M362.113 249.44l2.166 2.165-2.167-2.166z" fill="#6e6c70"/> - <path d="M296.628 253.36c0 55.95-6.45 119.004 35.255 162.823 8.58 9.014 24.9 29.572 38.892 28.783 14.647-.825 33.483-22.5 41.86-33.114 36.304-47.754 30.533-104.713 31.767-160.14-16.393 7.363-24.557 9.788-38.892 9.745-10.618 1.09-26.998-6.045-36.792-10.714-6.4 4.275-15.687 9.373-32.374 9.945-19.273.848-25.38-2.418-39.716-7.33z" fill="#cc3"/> - <path d="M375.106 249.44l2.166 2.165-2.166-2.166z" fill="#99994e"/> - <path d="M377.272 249.44l2.165 2.165-2.165-2.166z" fill="#49497d"/> - <path d="M444.402 249.44l2.166 2.165-2.166-2.166z" fill="#0e0e6e"/> - <path d="M294.983 251.605l2.165 2.165-2.165-2.165z" fill="#a4a43d"/> - <path d="M297.148 251.605l2.166 2.165-2.166-2.165z" fill="#6e6c70"/> - <path d="M299.314 251.605l2.165 2.165-2.166-2.165z" fill="#3a3a7c"/> - <path d="M355.617 251.605l2.165 2.165-2.165-2.165z" fill="#1b1b74"/> - <path d="M357.782 251.605l2.166 2.165-2.166-2.165z" fill="#6e6c70"/> - <path d="M359.948 251.605l2.165 2.165-2.165-2.165z" fill="#a4a43d"/> - <path d="M368.61 251.605l2.165 2.165-2.165-2.165z" fill="#d0d045"/> - <path d="M377.272 251.605l2.165 2.165-2.165-2.165z" fill="#a4a43d"/> - <path d="M379.437 251.605l2.166 2.165-2.166-2.165z" fill="#8d8d5b"/> - <path d="M381.603 251.605l2.165 2.165-2.165-2.165z" fill="#3a3a7c"/> - <path d="M437.906 251.605l2.165 2.165-2.164-2.165z" fill="#262678"/> - <path d="M440.07 251.605l2.167 2.165-2.166-2.165z" fill="#53527c"/> - <path d="M442.237 251.605l2.165 2.165-2.165-2.165z" fill="#8d8d5b"/> - <path d="M303.645 253.77l2.165 2.166-2.165-2.166z" fill="#737370"/> - <path d="M305.81 253.77l2.166 2.166-2.166-2.166z" fill="#53527c"/> - <path d="M307.976 253.77l2.165 2.166-2.164-2.166z" fill="#1b1b74"/> - <path d="M351.286 253.77l2.165 2.166-2.164-2.166z" fill="#262678"/> - <path d="M353.45 253.77l2.167 2.166-2.166-2.166z" fill="#6e6c70"/> - <path d="M355.617 253.77l2.165 2.166-2.165-2.166z" fill="#a4a43d"/> - <path d="M366.444 253.77l2.166 2.166-2.166-2.166z" fill="#e5e59d"/> - <path d="M301.068 259.444c-1.165 29.392-.27 62.49 4.324 93.94 5.08 16.43 4.4 25.454 11.95 35.3l105.67-.822c6.368-10.36 11.09-26.068 11.7-32.313 5.9-31.763 6.04-66.814 6.182-98.164-10.626 5.65-24.542 9.652-38.048 7.895-10.827-.824-20.832-3.296-32.482-9.88-10.107 6.054-13.63 8.818-30.317 9.525-12.993.64-23.518 1.693-38.98-5.482z" fill="#fff"/> - <path d="M370.775 253.77l2.166 2.166-2.165-2.166z" fill="#f2f1d7"/> - <path d="M372.94 253.77l2.166 2.166-2.165-2.166z" fill="#d9d868"/> - <path d="M381.603 253.77l2.165 2.166-2.165-2.166z" fill="#a4a43d"/> - <path d="M383.768 253.77l2.166 2.166-2.166-2.166z" fill="#99994e"/> - <path d="M385.934 253.77l2.165 2.166-2.166-2.166z" fill="#49497d"/> - <path d="M388.1 253.77l2.165 2.166-2.166-2.166z" fill="#0e0e6e"/> - <path d="M431.41 253.77l2.165 2.166-2.166-2.166z" fill="#3a3a7c"/> - <path d="M433.575 253.77l2.165 2.166-2.165-2.166z" fill="#667"/> - <path d="M435.74 253.77l2.166 2.166-2.166-2.166z" fill="#99994e"/> - <path d="M437.906 253.77l2.165 2.166-2.164-2.166m-129.93 2.166l2.165 2.165-2.164-2.164z" fill="#a4a43d"/> - <path d="M310.14 255.936l2.167 2.165-2.166-2.164z" fill="#99994e"/> - <path d="M312.307 255.936l2.165 2.165-2.165-2.164z" fill="#6e6c70"/> - <path d="M314.472 255.936l2.166 2.165-2.166-2.164z" fill="#49497d"/> - <path d="M316.638 255.936l2.165 2.165-2.165-2.164m28.15 0l2.167 2.165-2.166-2.164z" fill="#1b1b74"/> - <path d="M346.955 255.936l2.165 2.165-2.165-2.164z" fill="#53527c"/> - <path d="M349.12 255.936l2.166 2.165-2.166-2.164z" fill="#8d8d5b"/> - <path d="M351.286 255.936l2.165 2.165-2.164-2.164z" fill="#a4a43d"/> - <path d="M362.113 255.936l2.166 2.165-2.167-2.164z" fill="#e5e59d"/> - <path d="M364.28 255.936l2.164 2.165-2.165-2.164z" fill="#fbfaf2"/> - <path d="M375.106 255.936l2.166 2.165-2.166-2.164z" fill="#f2f1d2"/> - <path d="M377.272 255.936l2.165 2.165-2.165-2.164z" fill="#d9d868"/> - <path d="M388.1 255.936l2.165 2.165-2.166-2.164z" fill="#a4a43d"/> - <path d="M390.265 255.936l2.165 2.165-2.165-2.164z" fill="#6e6c70"/> - <path d="M392.43 255.936l2.166 2.165-2.166-2.164z" fill="#3a3a7c"/> - <path d="M420.582 255.936l2.165 2.165-2.165-2.164z" fill="#0e0e6e"/> - <path d="M422.747 255.936l2.166 2.165-2.166-2.164z" fill="#32327b"/> - <path d="M424.913 255.936l2.165 2.165-2.165-2.164z" fill="#58587b"/> - <path d="M427.078 255.936l2.166 2.165-2.166-2.164z" fill="#808067"/> - <path d="M430.694 256.65l1.443.722-1.443-.722z" fill="#a4a43d"/> - <path d="M299.314 258.1l2.165 2.167-2.166-2.166z" fill="#dddc7a"/> - <path d="M301.48 258.1l2.165 2.167-2.166-2.166z" fill="#d0d045"/> - <path d="M318.088 258.816l1.443.722-1.442-.722z" fill="#a4a43d"/> - <path d="M320.97 258.1l2.164 2.167-2.165-2.166z" fill="#808067"/> - <path d="M323.134 258.1l2.166 2.167-2.166-2.166z" fill="#667"/> - <path d="M325.3 258.1l2.165 2.167-2.165-2.166z" fill="#58587b"/> - <path d="M327.465 258.1l2.166 2.167-2.165-2.166z" fill="#49497d"/> - <path d="M340.458 258.1l2.166 2.167-2.166-2.166z" fill="#737370"/> - <path d="M342.624 258.1l2.165 2.167-2.166-2.166z" fill="#99994e"/> - <path d="M344.79 258.1l2.165 2.167-2.166-2.166z" fill="#a4a43d"/> - <path d="M357.782 258.1l2.166 2.167-2.166-2.166z" fill="#e5e59d"/> - <path d="M359.948 258.1l2.165 2.167-2.165-2.166z" fill="#fbfaf2"/> - <path d="M379.437 258.1l2.166 2.167-2.166-2.166z" fill="#f2f1d2"/> - <path d="M381.603 258.1l2.165 2.167-2.165-2.166z" fill="#d9d868"/> - <path d="M393.88 258.816l1.443.722-1.442-.722z" fill="#a4a43d"/> - <path d="M396.76 258.1l2.167 2.167-2.166-2.166z" fill="#808067"/> - <path d="M398.927 258.1l2.165 2.167-2.165-2.166z" fill="#667"/> - <path d="M401.092 258.1l2.166 2.167-2.166-2.166z" fill="#58587b"/> - <path d="M403.258 258.1l2.165 2.167-2.165-2.166z" fill="#3a3a7c"/> - <path d="M413.37 258.816l1.443.722-1.443-.722z" fill="#58587b"/> - <path d="M416.25 258.1l2.166 2.167-2.165-2.166z" fill="#737370"/> - <path d="M418.416 258.1l2.166 2.167-2.166-2.166z" fill="#99994e"/> - <path d="M420.582 258.1l2.165 2.167-2.165-2.166z" fill="#a4a43d"/> - <path d="M437.906 258.1l2.165 2.167-2.164-2.166z" fill="#dddc7a"/> - <path d="M440.07 258.1l2.167 2.167-2.166-2.166z" fill="#d0d045"/> - <path d="M303.645 260.267l2.165 2.165-2.165-2.165z" fill="#f2f1d7"/> - <path d="M305.81 260.267l2.166 2.165-2.166-2.165z" fill="#e0dea1"/> - <path d="M307.976 260.267l2.165 2.165-2.164-2.165z" fill="#dddc7a"/> - <path d="M351.286 260.267l2.165 2.165-2.164-2.165z" fill="#d9d868"/> - <path d="M353.45 260.267l2.167 2.165-2.166-2.165z" fill="#e5e3af"/> - <path d="M383.768 260.267l2.166 2.165-2.166-2.165z" fill="#f6f6e4"/> - <path d="M385.934 260.267l2.165 2.165-2.166-2.165z" fill="#e1e18c"/> - <path d="M429.244 260.267l2.165 2.165-2.166-2.165z" fill="#d4d456"/> - <path d="M431.41 260.267l2.165 2.165-2.166-2.165z" fill="#e1e18c"/> - <path d="M433.575 260.267l2.165 2.165-2.165-2.165z" fill="#eeedc1"/> - <path d="M312.307 262.432l2.165 2.166-2.165-2.166z" fill="#f2f1d2"/> - <path d="M314.472 262.432l2.166 2.166-2.166-2.166z" fill="#e0dea1"/> - <path d="M316.638 262.432l2.165 2.166-2.165-2.166z" fill="#dddc7a"/> - <path d="M318.803 262.432l2.166 2.166-2.167-2.166z" fill="#d0d045"/> - <path d="M344.79 262.432l2.165 2.166-2.166-2.166z" fill="#dddc7a"/> - <path d="M346.955 262.432l2.165 2.166-2.165-2.166z" fill="#e5e3af"/> - <path d="M349.12 262.432l2.166 2.166-2.166-2.166z" fill="#f6f6e4"/> - <path d="M390.265 262.432l2.165 2.166-2.165-2.166z" fill="#eeedc1"/> - <path d="M392.43 262.432l2.166 2.166-2.166-2.166z" fill="#e1e18c"/> - <path d="M394.596 262.432l2.165 2.166-2.164-2.166z" fill="#d4d456"/> - <path d="M420.582 262.432l2.165 2.166-2.165-2.166z" fill="#d9d868"/> - <path d="M422.747 262.432l2.166 2.166-2.166-2.166z" fill="#e1e18c"/> - <path d="M424.913 262.432l2.165 2.166-2.165-2.166z" fill="#eeedc1"/> - <path d="M427.078 262.432l2.166 2.166-2.166-2.166z" fill="#f6f6e4"/> - <path d="M323.134 264.598l2.166 2.165-2.166-2.165z" fill="#f2f1d7"/> - <path d="M325.3 264.598l2.165 2.165-2.165-2.165z" fill="#f2f1d2"/> - <path d="M327.465 264.598l2.166 2.165-2.165-2.165z" fill="#eeedc1"/> - <path d="M337.578 265.312l1.442.722-1.442-.722z" fill="#f2f1d2"/> - <path d="M340.458 264.598l2.166 2.165-2.166-2.165z" fill="#fbfaf2"/> - <path d="M351.286 264.598l4.33 4.33v-4.33h-4.33z" fill="#fef8f1"/> - <path d="M398.927 264.598l2.165 2.165-2.165-2.165z" fill="#f2f1d7"/> - <path d="M401.092 264.598l2.166 2.165-2.166-2.165z" fill="#f2f1d2"/> - <path d="M403.258 264.598l2.165 2.165-2.165-2.165z" fill="#e5e3af"/> - <path d="M406.874 265.312l1.442.722-1.442-.722z" fill="#e5e59d"/> - <path d="M409.754 264.598l2.166 2.165-2.166-2.165z" fill="#e0dea1"/> - <path d="M413.37 265.312l1.443.722-1.443-.722z" fill="#f2f1d2"/> - <path d="M416.25 264.598l2.166 2.165-2.165-2.165z" fill="#fbfaf2"/> - <path d="M346.955 266.763l2.165 2.166-2.165-2.167z" fill="#fef8f1"/> - <path d="M349.12 266.763l2.166 2.166-2.166-2.167z" fill="#fbbe66"/> - <path d="M346.955 268.93l2.165 2.164-2.165-2.165z" fill="#fbc477"/> - <path d="M351.286 268.93l2.165 2.164-2.164-2.165z" fill="#fcb144"/> - <path d="M346.955 271.094l2.165 2.166-2.165-2.166z" fill="#fe9f11"/> - <path d="M351.286 271.094l2.165 2.166-2.164-2.166z" fill="#fea522"/> - <path d="M344.79 273.26l2.165 2.165-2.166-2.165m8.66 0l2.167 2.165-2.166-2.165z" fill="#fae3c9"/> - <path d="M364.28 273.26l2.164 2.165-2.165-2.165z" fill="#fbead6"/> - <path d="M366.444 273.26l2.166 2.165-2.166-2.165z" fill="#f9d6aa"/> - <path d="M375.106 273.26l2.166 2.165-2.166-2.165z" fill="#fae3c9"/> - <path d="M377.272 273.26l2.165 2.165-2.165-2.165z" fill="#fef8f1"/> - <path d="M344.79 275.425l2.165 2.166-2.166-2.165z" fill="#f9d099"/> - <path d="M353.45 275.425l2.167 2.166-2.166-2.165z" fill="#fdab33"/> - <path d="M357.782 275.425l2.166 2.166-2.166-2.165z" fill="#fcf1e4"/> - <path d="M359.948 275.425l2.165 2.166-2.165-2.165z" fill="#fbc477"/> - <path d="M362.113 275.425l2.166 2.166-2.167-2.165z" fill="#fea522"/> - <path d="M379.437 275.425l2.166 2.166-2.166-2.165z" fill="#fcb755"/> - <path d="M381.603 275.425l2.165 2.166-2.165-2.165z" fill="#f9d6aa"/> - <path d="M344.79 277.59l2.165 2.166-2.166-2.165z" fill="#faca88"/> - <path d="M355.617 277.59l2.165 2.166-2.165-2.165m28.15 0l2.167 2.166-2.166-2.165z" fill="#fea522"/> - <path d="M385.934 277.59l2.165 2.166-2.166-2.165z" fill="#f8dcbb"/> - <path d="M299.314 279.756l2.165 2.166-2.166-2.166z" fill="#f6f6e4"/> - <path d="M344.79 279.756l2.165 2.166-2.166-2.166z" fill="#fbc477"/> - <path d="M388.1 279.756l2.165 2.166-2.166-2.166z" fill="#fbbe66"/> - <path d="M390.265 279.756l2.165 2.166-2.165-2.166z" fill="#f8dcbb"/> - <path d="M344.79 281.922l2.165 2.165-2.166-2.165z" fill="#faca88"/> - <path d="M394.596 281.922l2.165 2.165-2.164-2.165z" fill="#fcb755"/> - <path d="M396.76 281.922l2.167 2.165-2.166-2.165z" fill="#f8dcbb"/> - <path d="M342.624 284.087l2.165 2.166-2.166-2.166z" fill="#fef8f1"/> - <path d="M344.79 284.087l2.165 2.166-2.166-2.166z" fill="#fe9f11"/> - <path d="M405.423 284.087l2.166 2.166-2.167-2.166z" fill="#fdab33"/> - <path d="M407.59 284.087l2.164 2.166-2.165-2.166z" fill="#fcb144"/> - <path d="M409.754 284.087l2.166 2.166-2.166-2.166z" fill="#fbc477"/> - <path d="M411.92 284.087l4.33 4.33-4.33-4.33z" fill="#f9d6aa"/> - <path d="M414.085 284.087l2.166 2.166-2.165-2.166z" fill="#fef8f1"/> - <path d="M342.624 286.253l2.165 2.165-2.166-2.165z" fill="#fcb144"/> - <path d="M372.94 286.253l2.166 2.165-2.165-2.165z" fill="#fdab33"/> - <path d="M375.106 286.253l2.166 2.165-2.166-2.165zm8.662 0l2.166 2.165-2.166-2.165z" fill="#fbc477"/> - <path d="M385.934 286.253l2.165 2.165-2.166-2.165z" fill="#fea522"/> - <path d="M340.458 288.418l2.166 2.166-2.166-2.166z" fill="#fae3c9"/> - <path d="M368.61 288.418l2.165 2.166-2.165-2.166z" fill="#fcb144"/> - <path d="M370.775 288.418l2.166 2.166-2.165-2.166z" fill="#fae3c9"/> - <path d="M388.1 288.418l2.165 2.166-2.166-2.166z" fill="#f8dcbb"/> - <path d="M390.265 288.418l2.165 2.166-2.165-2.166z" fill="#fdab33"/> - <path d="M403.258 288.418l2.165 2.166-2.165-2.166z" fill="#fe9f11"/> - <path d="M405.423 288.418l2.166 2.166-2.167-2.166z" fill="#fcb755"/> - <path d="M407.59 288.418l2.164 2.166-2.165-2.166z" fill="#f9d099"/> - <path d="M409.754 288.418l2.166 2.166-2.166-2.166z" fill="#fbead6"/> - <path d="M340.458 290.584l2.166 2.165-2.166-2.166z" fill="#fcb144"/> - <path d="M366.444 290.584l2.166 2.165-2.166-2.166z" fill="#fbbe66"/> - <path d="M392.43 290.584l2.166 2.165-2.166-2.166z" fill="#f9d099"/> - <path d="M401.092 290.584l2.166 2.165-2.166-2.166z" fill="#fbead6"/> - <path d="M338.293 292.75l2.165 2.165-2.165-2.166z" fill="#fcf1e4"/> - <path d="M364.28 292.75l2.164 2.165-2.165-2.166z" fill="#fbbe66"/> - <path d="M394.596 292.75l2.165 2.165-2.164-2.166z" fill="#f9d099"/> - <path d="M401.092 292.75l2.166 2.165-2.166-2.166z" fill="#fae3c9"/> - <path d="M338.293 294.915l2.165 2.165-2.165-2.165z" fill="#fbc477"/> - <path d="M362.113 294.915l2.166 2.165-2.167-2.165m34.648 0l2.167 2.165-2.166-2.165z" fill="#fcb144"/> - <path d="M401.092 294.915l2.166 2.165-2.166-2.165z" fill="#fbbe66"/> - <path d="M299.314 297.08l2.165 2.166-2.166-2.166z" fill="#f6f6e4"/> - <path d="M338.293 297.08l2.165 2.166-2.165-2.166z" fill="#fea522"/> - <path d="M362.113 297.08l2.166 2.166-2.167-2.166z" fill="#fbead6"/> - <path d="M396.76 297.08l2.167 2.166-2.166-2.166z" fill="#fcf1e4"/> - <path d="M403.258 297.08l2.165 2.166-2.165-2.166z" fill="#fef8f1"/> - <path d="M336.127 299.246l2.166 2.165-2.166-2.164z" fill="#fcf1e4"/> - <path d="M359.948 299.246l2.165 2.165-2.165-2.164z" fill="#fbbe66"/> - <path d="M398.927 299.246l2.165 2.165-2.165-2.164z" fill="#faca88"/> - <path d="M403.258 299.246l2.165 2.165-2.165-2.164z" fill="#f9d099"/> - <path d="M336.127 301.41l2.166 2.167-2.166-2.166z" fill="#f9d6aa"/> - <path d="M359.948 301.41l2.165 2.167-2.165-2.166z" fill="#fcf1e4"/> - <path d="M370.775 301.41l2.166 2.167-2.165-2.166z" fill="#fae3c9"/> - <path d="M372.94 301.41l2.166 2.167-2.165-2.166z" fill="#fea522"/> - <path d="M375.106 301.41l2.166 2.167-2.166-2.166z" fill="#fcb144"/> - <path d="M377.272 301.41l2.165 2.167-2.165-2.166z" fill="#f9d6aa"/> - <path d="M398.927 301.41l2.165 2.167-2.165-2.166z" fill="#fef8f1"/> - <path d="M401.092 301.41l2.166 2.167-2.166-2.166z" fill="#fea522"/> - <path d="M403.258 301.41l2.165 2.167-2.165-2.166z" fill="#fdab33"/> - <path d="M336.127 303.577l-2.165 6.496 2.165-6.496z" fill="#faca88"/> - <path d="M357.782 303.577l2.166 2.165-2.166-2.165z" fill="#fea522"/> - <path d="M359.948 303.577l2.165 2.165-2.165-2.165z" fill="#fef8f1"/> - <path d="M370.775 303.577l2.166 2.165-2.165-2.165z" fill="#f9d099"/> - <path d="M379.437 303.577l2.166 2.165-2.166-2.165z" fill="#fdab33"/> - <path d="M381.603 303.577l2.165 2.165-2.165-2.165z" fill="#fae3c9"/> - <path d="M401.092 303.577l2.166 2.165-2.166-2.165z" fill="#f8dcbb"/> - <path d="M403.258 303.577l2.165 2.165-2.165-2.165z" fill="#f90"/> - <path d="M406.138 305.027l.723 1.444-.722-1.443z" fill="#fbead6"/> - <path d="M362.113 305.742l2.166 2.166-2.167-2.166z" fill="#fea522"/> - <path d="M364.28 305.742l2.164 2.166-2.165-2.166z" fill="#fbbe66"/> - <path d="M366.444 305.742l2.166 2.166-2.166-2.166z" fill="#faca88"/> - <path d="M368.61 305.742l2.165 2.166-2.165-2.166z" fill="#fcb144"/> - <path d="M370.775 305.742l2.166 2.166-2.165-2.166z" fill="#fae3c9"/> - <path d="M372.94 305.742l2.166 2.166-2.165-2.166z" fill="#fe9f11"/> - <path d="M383.768 305.742l2.166 2.166-2.166-2.166z" fill="#fdab33"/> - <path d="M385.934 305.742l2.165 2.166-2.166-2.166z" fill="#fbc477"/> - <path d="M388.1 305.742l2.165 2.166-2.166-2.166z" fill="#faca88"/> - <path d="M390.265 305.742l2.165 2.166-2.165-2.166z" fill="#f9d6aa"/> - <path d="M393.88 306.457l1.443.722-1.442-.723z" fill="#fae3c9"/> - <path d="M396.76 305.742l2.167 2.166-2.166-2.166z" fill="#fef8f1"/> - <path d="M403.258 305.742l2.165 2.166-2.165-2.166z" fill="#fbc477"/> - <path d="M310.14 307.908l2.167 2.165-2.166-2.165z" fill="#fef8f1"/> - <path d="M312.307 307.908l2.165 2.165-2.165-2.165z" fill="#fcf1e4"/> - <path d="M368.61 307.908l2.165 2.165-2.165-2.165z" fill="#fcb755"/> - <path d="M372.94 307.908l2.166 2.165-2.165-2.165z" fill="#fbead6"/> - <path d="M375.106 307.908l2.166 2.165-2.166-2.165z" fill="#fea522"/> - <path d="M392.43 307.908l2.166 2.165-2.166-2.165z" fill="#fe9f11"/> - <path d="M394.596 307.908l-2.166 4.33 2.166-4.33z" fill="#fcb144"/> - <path d="M398.927 307.908l2.165 2.165-2.165-2.165z" fill="#fe9f11"/> - <path d="M401.092 307.908l2.166 2.165-2.166-2.165z" fill="#fbbe66"/> - <path d="M403.258 307.908l2.165 2.165-2.165-2.165z" fill="#fcf1e4"/> - <path d="M310.14 310.073l2.167 2.166-2.166-2.167z" fill="#fae3c9"/> - <path d="M312.307 310.073l4.33 4.33-4.33-4.33z" fill="#fe9f11"/> - <path d="M314.472 310.073l2.166 2.166-2.166-2.167zm19.49 0l2.165 2.166-2.165-2.167z" fill="#fbead6"/> - <path d="M336.127 310.073l2.166 2.166-2.166-2.167z" fill="#fae3c9"/> - <path d="M355.617 310.073l2.165 2.166-2.165-2.167z" fill="#fe9f11"/> - <path d="M357.782 310.073l2.166 2.166-2.166-2.167z" fill="#fbc477"/> - <path d="M359.948 310.073l2.165 2.166-2.165-2.167z" fill="#fea522"/> - <path d="M366.444 310.073l2.166 2.166-2.166-2.167z" fill="#fbc477"/> - <path d="M368.61 310.073l2.165 2.166-2.165-2.167z" fill="#fef8f1"/> - <path d="M377.272 310.073l2.165 2.166-2.165-2.167z" fill="#fbc477"/> - <path d="M394.596 310.073l2.165 2.166-2.164-2.167z" fill="#fff"/> - <path d="M396.76 310.073l2.167 2.166-2.166-2.167z" fill="#fdab33"/> - <path d="M405.423 310.073l2.166 2.166-2.167-2.167z" fill="#fbc477"/> - <path d="M310.14 312.24l2.167 2.164-2.166-2.165z" fill="#fef8f1"/> - <path d="M316.638 312.24l2.165 2.164-2.165-2.165z" fill="#fbead6"/> - <path d="M327.465 312.24l2.166 2.164-2.165-2.165z" fill="#f9d6aa"/> - <path d="M338.293 312.24l2.165 2.164-2.165-2.165z" fill="#fe9f11"/> - <path d="M341.91 312.953l1.44.722-1.44-.722z" fill="#f9d6aa"/> - <path d="M355.617 312.24l2.165 2.164-2.165-2.165z" fill="#f8dcbb"/> - <path d="M362.113 312.24l2.166 2.164-2.167-2.165z" fill="#fcf1e4"/> - <path d="M379.437 312.24l2.166 2.164-2.166-2.165z" fill="#f9d6aa"/> - <path d="M394.596 312.24l2.165 2.164-2.164-2.165z" fill="#fdab33"/> - <path d="M407.59 312.24l2.164 2.164-2.165-2.165z" fill="#fcb755"/> - <path d="M409.754 312.24l2.166 2.164-2.166-2.165z" fill="#fef8f1"/> - <path d="M292.817 314.404l2.166 2.166-2.166-2.166z" fill="#53527c"/> - <path d="M312.307 314.404l2.165 2.166-2.165-2.166z" fill="#fcb755"/> - <path d="M316.638 314.404l2.165 2.166-2.165-2.166z" fill="#fea522"/> - <path d="M325.3 314.404l2.165 2.166-2.165-2.166z" fill="#fbead6"/> - <path d="M329.63 314.404l2.166 2.166-2.165-2.166z" fill="#fe9f11"/> - <path d="M331.796 314.404l2.166 2.166-2.166-2.166z" fill="#fcf1e4"/> - <path d="M338.293 314.404l2.165 2.166-2.165-2.166z" fill="#fbbe66"/> - <path d="M340.458 314.404l2.166 2.166-2.166-2.166z" fill="#fbc477"/> - <path d="M342.624 314.404l2.165 2.166-2.166-2.166z" fill="#fbbe66"/> - <path d="M353.45 314.404l2.167 2.166-2.166-2.166z" fill="#fea522"/> - <path d="M381.603 314.404l2.165 2.166-2.165-2.166z" fill="#f9d6aa"/> - <path d="M409.754 314.404l2.166 2.166-2.166-2.166z" fill="#fcb144"/> - <path d="M444.402 314.404l2.166 2.166-2.166-2.166z" fill="#8d8d5b"/> - <path d="M299.314 316.57l2.165 2.165-2.166-2.165z" fill="#e5e3af"/> - <path d="M312.307 316.57l2.165 2.165-2.165-2.165z" fill="#f8dcbb"/> - <path d="M318.803 316.57l2.166 2.165-2.167-2.165z" fill="#fdab33"/> - <path d="M325.3 316.57l2.165 2.165-2.165-2.165z" fill="#fe9f11"/> - <path d="M329.63 316.57l2.166 2.165-2.165-2.165z" fill="#faca88"/> - <path d="M338.293 316.57l2.165 2.165-2.165-2.165z" fill="#fcf1e4"/> - <path d="M353.45 316.57l2.167 2.165-2.166-2.165m30.318 0l2.166 2.165-2.166-2.165z" fill="#f9d099"/> - <path d="M411.92 316.57l2.165 2.165-2.165-2.165z" fill="#fbbe66"/> - <path d="M314.472 318.735l2.166 2.166-2.166-2.165z" fill="#fea522"/> - <path d="M320.97 318.735l2.164 2.166-2.165-2.165z" fill="#fdab33"/> - <path d="M323.134 318.735l2.166 2.166-2.166-2.165z" fill="#fea522"/> - <path d="M327.465 318.735l2.166 2.166-2.165-2.165z" fill="#fe9f11"/> - <path d="M329.63 318.735l2.166 2.166-2.165-2.165z" fill="#fef8f1"/> - <path d="M340.458 318.735l2.166 2.166-2.166-2.165z" fill="#fbbe66"/> - <path d="M353.45 318.735l2.167 2.166-2.166-2.165z" fill="#fef8f1"/> - <path d="M385.934 318.735l2.165 2.166-2.166-2.165z" fill="#fbbe66"/> - <path d="M414.085 318.735l2.166 2.166-2.165-2.165z" fill="#f9d099"/> - <path d="M314.472 320.9l2.166 2.166-2.166-2.165z" fill="#f9d6aa"/> - <path d="M327.465 320.9l2.166 2.166-2.165-2.165z" fill="#f9d099"/> - <path d="M340.458 320.9l2.166 2.166-2.166-2.165z" fill="#fcf1e4"/> - <path d="M351.286 320.9l2.165 2.166-2.164-2.165m36.813 0l2.165 2.166-2.166-2.165z" fill="#fdab33"/> - <path d="M416.25 320.9l2.166 2.166-2.165-2.165z" fill="#fbead6"/> - <path d="M316.638 323.066l2.165 2.166-2.165-2.166z" fill="#fea522"/> - <path d="M325.3 323.066l2.165 2.166-2.165-2.166z" fill="#fe9f11"/> - <path d="M342.624 323.066l2.165 2.166-2.166-2.166z" fill="#fcb144"/> - <path d="M351.286 323.066l2.165 2.166-2.164-2.166z" fill="#faca88"/> - <path d="M388.1 323.066l2.165 2.166-2.166-2.166z" fill="#f8dcbb"/> - <path d="M416.25 323.066l2.166 2.166-2.165-2.166z" fill="#fcb144"/> - <path d="M299.314 325.232l2.165 2.165-2.166-2.165z" fill="#d3d079"/> - <path d="M316.638 325.232l2.165 2.165-2.165-2.165zm25.986 0l2.165 2.165-2.166-2.165z" fill="#faca88"/> - <path d="M351.286 325.232l2.165 2.165-2.164-2.165m36.813 0l2.165 2.165-2.166-2.165z" fill="#fae3c9"/> - <path d="M418.416 325.232l2.166 2.165-2.166-2.165z" fill="#f8dcbb"/> - <path d="M437.906 325.232l2.165 2.165-2.164-2.165z" fill="#f2f1d7"/> - <path d="M445.117 326.682l.723 1.444-.723-1.444z" fill="#58587b"/> - <path d="M300.028 328.848l.723 1.443-.722-1.442z" fill="#d9d868"/> - <path d="M316.638 327.397l2.165 2.166-2.165-2.166z" fill="#f8dcbb"/> - <path d="M385.934 327.397l2.165 2.166-2.166-2.166z" fill="#f9d6aa"/> - <path d="M388.1 327.397l2.165 2.166-2.166-2.166z" fill="#fe9f11"/> - <path d="M418.416 327.397l2.166 2.166-2.166-2.166z" fill="#fcb144"/> - <path d="M438.62 328.848l.723 1.443-.723-1.442z" fill="#f2f1d2"/> - <path d="M316.638 329.563l2.165 2.165-2.165-2.165z" fill="#fcf1e4"/> - <path d="M383.768 329.563l2.166 2.165-2.166-2.165z" fill="#fef8f1"/> - <path d="M385.934 329.563l2.165 2.165-2.166-2.165z" fill="#fe9f11"/> - <path d="M392.43 329.563l-2.165 4.33 2.165-4.33z" fill="#fdab33"/> - <path d="M394.596 329.563l2.165 2.165-2.164-2.165z" fill="#fcb755"/> - <path d="M420.582 329.563l2.165 2.165-2.165-2.165z" fill="#fea522"/> - <path d="M422.747 329.563l2.166 2.165-2.166-2.165z" fill="#f9d099"/> - <path d="M444.402 329.563l2.166 2.165-2.166-2.165z" fill="#53527c"/> - <path d="M295.697 333.18l.723 1.44-.723-1.44z" fill="#808067"/> - <path d="M318.803 331.728l2.166 2.166-2.167-2.166m6.497 0l2.165 2.166-2.165-2.166z" fill="#fea522"/> - <path d="M349.12 331.728l2.166 2.166-2.166-2.166z" fill="#fe9f11"/> - <path d="M383.768 331.728l2.166 2.166-2.166-2.166z" fill="#fae3c9"/> - <path d="M392.43 331.728l2.166 2.166-2.166-2.166z" fill="#fef8f1"/> - <path d="M396.76 331.728l2.167 2.166-2.166-2.166z" fill="#fcb144"/> - <path d="M424.913 331.728l2.165 2.166-2.165-2.166z" fill="#fcb755"/> - <path d="M427.078 331.728l4.33 4.33-4.33-4.33z" fill="#fef8f1"/> - <path d="M438.62 333.18l.723 1.44-.723-1.44z" fill="#e5e59d"/> - <path d="M445.117 333.18l.723 1.44-.723-1.44z" fill="#32327b"/> - <path d="M319.518 335.344l.723 1.443-.722-1.443z" fill="#fcb755"/> - <path d="M327.465 333.894l2.166 2.165-2.165-2.166z" fill="#fef8f1"/> - <path d="M349.12 333.894l2.166 2.165-2.166-2.166z" fill="#fbbe66"/> - <path d="M383.768 333.894l2.166 2.165-2.166-2.166z" fill="#fbead6"/> - <path d="M388.1 333.894l2.165 2.165-2.166-2.166z" fill="#fe9f11"/> - <path d="M390.265 333.894l2.165 2.165-2.165-2.166z" fill="#fcf1e4"/> - <path d="M396.76 333.894l2.167 2.165-2.166-2.166z" fill="#fbead6"/> - <path d="M427.078 333.894l2.166 2.165-2.166-2.166z" fill="#fdab33"/> - <path d="M294.983 336.06l2.165 2.165-2.165-2.166z" fill="#667"/> - <path d="M301.48 336.06l2.165 2.165-2.166-2.166z" fill="#f6f6e4"/> - <path d="M327.465 336.06l2.166 2.165-2.165-2.166z" fill="#f9d6aa"/> - <path d="M344.79 336.06l2.165 2.165-2.166-2.166z" fill="#fdab33"/> - <path d="M346.955 336.06l2.165 2.165-2.165-2.166z" fill="#fe9f11"/> - <path d="M349.12 336.06l2.166 2.165-2.166-2.166z" fill="#fcf1e4"/> - <path d="M385.934 336.06l2.165 2.165-2.166-2.166z" fill="#fea522"/> - <path d="M388.1 336.06l2.165 2.165-2.166-2.166m10.827 0l2.165 2.165-2.165-2.166z" fill="#faca88"/> - <path d="M429.244 336.06l2.165 2.165-2.166-2.166z" fill="#fcb144"/> - <path d="M437.906 336.06l2.165 2.165-2.164-2.166z" fill="#dddc7a"/> - <path d="M294.983 338.225l2.165 2.165-2.165-2.165z" fill="#58587b"/> - <path d="M301.48 338.225l2.165 2.165-2.166-2.165z" fill="#f2f1d2"/> - <path d="M319.518 339.675l.723 1.443-.722-1.443z" fill="#fcb144"/> - <path d="M327.465 338.225l2.166 2.165-2.165-2.165z" fill="#fea522"/> - <path d="M349.12 338.225l2.166 2.165-2.166-2.165z" fill="#fef8f1"/> - <path d="M351.286 338.225l2.165 2.165-2.164-2.165z" fill="#fea522"/> - <path d="M355.617 338.225l2.165 2.165-2.165-2.165z" fill="#fcb144"/> - <path d="M357.782 338.225l2.166 2.165-2.166-2.165z" fill="#fbead6"/> - <path d="M385.934 338.225l2.165 2.165-2.166-2.165z" fill="#f8dcbb"/> - <path d="M388.1 338.225l2.165 2.165-2.166-2.165z" fill="#fcf1e4"/> - <path d="M398.927 338.225l2.165 2.165-2.165-2.165z" fill="#fef8f1"/> - <path d="M401.092 338.225l2.166 2.165-2.166-2.165z" fill="#fe9f11"/> - <path d="M431.41 338.225l2.165 2.165-2.166-2.165z" fill="#fbead6"/> - <path d="M437.906 338.225l2.165 2.165-2.164-2.165z" fill="#d9d868"/> - <path d="M294.983 340.39l2.165 2.166-2.165-2.166z" fill="#3a3a7c"/> - <path d="M301.48 340.39l2.165 2.166-2.166-2.166z" fill="#e5e3af"/> - <path d="M329.63 340.39l2.166 2.166-2.165-2.166z" fill="#faca88"/> - <path d="M351.286 340.39l2.165 2.166-2.164-2.166z" fill="#fbead6"/> - <path d="M357.782 340.39l2.166 2.166-2.166-2.166z" fill="#fe9f11"/> - <path d="M359.948 340.39l2.165 2.166-2.165-2.166z" fill="#fcf1e4"/> - <path d="M383.768 340.39l2.166 2.166-2.166-2.166z" fill="#fbead6"/> - <path d="M385.934 340.39l2.165 2.166-2.166-2.166z" fill="#fae3c9"/> - <path d="M388.1 340.39l2.165 2.166-2.166-2.166z" fill="#fbead6"/> - <path d="M401.092 340.39l2.166 2.166-2.166-2.166m17.324 0l2.166 2.166-2.166-2.166z" fill="#fbbe66"/> - <path d="M420.582 340.39l2.165 2.166-2.165-2.166z" fill="#fcf1e4"/> - <path d="M422.747 340.39l2.166 2.166-2.166-2.166z" fill="#fef8f1"/> - <path d="M424.913 340.39l2.165 2.166-2.165-2.166z" fill="#f8dcbb"/> - <path d="M427.078 340.39l2.166 2.166-2.166-2.166z" fill="#fcb755"/> - <path d="M431.41 340.39l2.165 2.166-2.166-2.166z" fill="#fae3c9"/> - <path d="M442.237 340.39l2.165 2.166-2.165-2.166z" fill="#808067"/> - <path d="M294.983 342.556l2.165 2.165-2.165-2.164z" fill="#32327b"/> - <path d="M297.863 344.006l.723 1.443-.723-1.444z" fill="#a4a43d"/> - <path d="M301.48 342.556l2.165 2.165-2.166-2.164z" fill="#e5e59d"/> - <path d="M318.803 342.556l2.166 2.165-2.167-2.164z" fill="#fbc477"/> - <path d="M331.796 342.556l2.166 2.165-2.166-2.164z" fill="#f9d6aa"/> - <path d="M353.45 342.556l2.167 2.165-2.166-2.164z" fill="#fbbe66"/> - <path d="M359.948 342.556l2.165 2.165-2.165-2.164z" fill="#f9d099"/> - <path d="M379.437 342.556l2.166 2.165-2.166-2.164z" fill="#fae3c9"/> - <path d="M381.603 342.556l2.165 2.165-2.165-2.164z" fill="#fcb144"/> - <path d="M390.265 342.556l2.165 2.165-2.165-2.164z" fill="#fae3c9"/> - <path d="M401.092 342.556l2.166 2.165-2.166-2.164z" fill="#f8dcbb"/> - <path d="M418.416 342.556l2.166 2.165-2.166-2.164z" fill="#f9d099"/> - <path d="M429.244 342.556l2.165 2.165-2.166-2.164z" fill="#fbc477"/> - <path d="M431.41 342.556l2.165 2.165-2.166-2.164z" fill="#fbead6"/> - <path d="M442.237 342.556l2.165 2.165-2.165-2.164z" fill="#737370"/> - <path d="M301.48 344.72l2.165 2.167-2.166-2.166z" fill="#d9d868"/> - <path d="M318.803 344.72l2.166 2.167-2.167-2.166z" fill="#f9d099"/> - <path d="M333.962 344.72l2.165 2.167-2.165-2.166m19.49 0l2.165 2.167-2.166-2.166z" fill="#f9d6aa"/> - <path d="M359.948 344.72l2.165 2.167-2.165-2.166z" fill="#fbc477"/> - <path d="M370.775 344.72l2.166 2.167-2.165-2.166z" fill="#fef8f1"/> - <path d="M372.94 344.72l2.166 2.167-2.165-2.166z" fill="#f8dcbb"/> - <path d="M375.106 344.72l2.166 2.167-2.166-2.166z" fill="#fbc477"/> - <path d="M377.272 344.72l2.165 2.167-2.165-2.166z" fill="#fea522"/> - <path d="M390.265 344.72l2.165 2.167-2.165-2.166z" fill="#fbead6"/> - <path d="M435.74 344.72l2.166 2.167-2.166-2.166z" fill="#f2f1d2"/> - <path d="M442.237 344.72l2.165 2.167-2.165-2.166z" fill="#58587b"/> - <path d="M297.148 346.887l2.166 2.165-2.166-2.165z" fill="#99994e"/> - <path d="M301.48 346.887l2.165 2.165-2.166-2.165z" fill="#d0d045"/> - <path d="M336.127 346.887l2.166 2.165-2.166-2.165z" fill="#fcb144"/> - <path d="M338.293 346.887l2.165 2.165-2.165-2.165z" fill="#fae3c9"/> - <path d="M353.45 346.887l2.167 2.165-2.166-2.165z" fill="#fef8f1"/> - <path d="M362.113 346.887l2.166 2.165-2.167-2.165z" fill="#fcb755"/> - <path d="M364.28 346.887l2.164 2.165-2.165-2.165z" fill="#fbc477"/> - <path d="M366.444 346.887l2.166 2.165-2.166-2.165z" fill="#fcb144"/> - <path d="M368.61 346.887l2.165 2.165-2.165-2.165z" fill="#fea522"/> - <path d="M385.934 346.887l2.165 2.165-2.166-2.165z" fill="#fe9f11"/> - <path d="M388.1 346.887l2.165 2.165-2.166-2.165z" fill="#f9d6aa"/> - <path d="M418.416 346.887l2.166 2.165-2.166-2.165z" fill="#fef8f1"/> - <path d="M435.74 346.887l2.166 2.165-2.166-2.165z" fill="#e0dea1"/> - <path d="M442.237 346.887l2.165 2.165-2.165-2.165z" fill="#3a3a7c"/> - <path d="M297.148 349.052l2.166 2.166-2.166-2.166z" fill="#737370"/> - <path d="M303.645 349.052l2.165 2.166-2.165-2.166z" fill="#fbfaf2"/> - <path d="M320.97 349.052l2.164 2.166-2.165-2.166z" fill="#fea522"/> - <path d="M340.458 349.052l2.166 2.166-2.166-2.166z" fill="#fe9f11"/> - <path d="M342.624 349.052l2.165 2.166-2.166-2.166z" fill="#fcb144"/> - <path d="M344.79 349.052l2.165 2.166-2.166-2.166z" fill="#fbc477"/> - <path d="M346.955 349.052l2.165 2.166-2.165-2.166z" fill="#faca88"/> - <path d="M349.12 349.052l2.166 2.166-2.166-2.166z" fill="#fbc477"/> - <path d="M351.286 349.052l2.165 2.166-2.164-2.166z" fill="#fcb144"/> - <path d="M353.45 349.052l2.167 2.166-2.166-2.166z" fill="#fdab33"/> - <path d="M383.768 349.052l2.166 2.166-2.166-2.166z" fill="#fbc477"/> - <path d="M385.934 349.052l2.165 2.166-2.166-2.166z" fill="#fef8f1"/> - <path d="M416.25 349.052l2.166 2.166-2.165-2.166z" fill="#fdab33"/> - <path d="M435.74 349.052l2.166 2.166-2.166-2.166z" fill="#e1e18c"/> - <path d="M440.786 350.503l.723 1.442-.724-1.442z" fill="#a4a43d"/> - <path d="M442.237 349.052l2.165 2.166-2.165-2.166z" fill="#262678"/> - <path d="M297.148 351.218l2.166 2.165-2.166-2.165z" fill="#58587b"/> - <path d="M303.645 351.218l2.165 2.165-2.165-2.165z" fill="#f2f1d2"/> - <path d="M320.97 351.218l2.164 2.165-2.165-2.165z" fill="#faca88"/> - <path d="M379.437 351.218l2.166 2.165-2.166-2.165z" fill="#fe9f11"/> - <path d="M381.603 351.218l2.165 2.165-2.165-2.165z" fill="#fbead6"/> - <path d="M401.092 351.218l2.166 2.165-2.166-2.165z" fill="#fbc477"/> - <path d="M416.25 351.218l2.166 2.165-2.165-2.165z" fill="#faca88"/> - <path d="M435.74 351.218l2.166 2.165-2.166-2.165z" fill="#d4d456"/> - <path d="M297.148 353.383l2.166 2.166-2.166-2.167z" fill="#32327b"/> - <path d="M303.645 353.383l2.165 2.166-2.165-2.167z" fill="#e5e59d"/> - <path d="M320.97 353.383l2.164 2.166-2.165-2.167z" fill="#fef8f1"/> - <path d="M323.134 353.383l2.166 2.166-2.166-2.167z" fill="#fe9f11"/> - <path d="M379.437 353.383l2.166 2.166-2.166-2.167z" fill="#fbead6"/> - <path d="M401.092 353.383l2.166 2.166-2.166-2.167z" fill="#fea522"/> - <path d="M416.25 353.383l2.166 2.166-2.165-2.167z" fill="#fcf1e4"/> - <path d="M440.07 353.383l2.167 2.166-2.166-2.167z" fill="#808067"/> - <path d="M297.148 355.55l2.166 2.164-2.166-2.165z" fill="#0e0e6e"/> - <path d="M299.314 355.55l2.165 2.164-2.166-2.165z" fill="#a4a43d"/> - <path d="M303.645 355.55l2.165 2.164-2.165-2.165z" fill="#d9d868"/> - <path d="M323.134 355.55l2.166 2.164-2.166-2.165z" fill="#f8dcbb"/> - <path d="M398.927 355.55l2.165 2.164-2.165-2.165z" fill="#f9d6aa"/> - <path d="M414.085 355.55l2.166 2.164-2.165-2.165z" fill="#faca88"/> - <path d="M433.575 355.55l2.165 2.164-2.165-2.165z" fill="#f2f1d2"/> - <path d="M440.07 355.55l2.167 2.164-2.166-2.165z" fill="#58587b"/> - <path d="M299.314 357.714l2.165 2.166-2.166-2.166z" fill="#8d8d5b"/> - <path d="M325.3 357.714l2.165 2.166-2.165-2.166z" fill="#f9d6aa"/> - <path d="M368.61 357.714l2.165 2.166-2.165-2.166z" fill="#fdab33"/> - <path d="M370.775 357.714l2.166 2.166-2.165-2.166z" fill="#fff"/> - <path d="M374.39 358.43l1.444.722-1.443-.723z" fill="#fcb144"/> - <path d="M396.76 357.714l-2.164 4.33 2.165-4.33z" fill="#fef8f1"/> - <path d="M398.927 357.714l2.165 2.166-2.165-2.166z" fill="#fe9f11"/> - <path d="M411.92 357.714l-2.166 4.33 2.166-4.33z" fill="#fdab33"/> - <path d="M433.575 357.714l2.165 2.166-2.165-2.166z" fill="#e5e59d"/> - <path d="M440.07 357.714l2.167 2.166-2.166-2.166z" fill="#3a3a7c"/> - <path d="M299.314 359.88l2.165 2.165-2.166-2.165z" fill="#667"/> - <path d="M305.81 359.88l2.166 2.165-2.166-2.165z" fill="#f2f1d2"/> - <path d="M327.465 359.88l2.166 2.165-2.165-2.165z" fill="#f9d6aa"/> - <path d="M368.61 359.88l2.165 2.165-2.165-2.165z" fill="#fe9f11"/> - <path d="M370.775 359.88l2.166 2.165-2.165-2.165z" fill="#faca88"/> - <path d="M372.94 359.88l2.166 2.165-2.165-2.165z" fill="#fea522"/> - <path d="M375.106 359.88l2.166 2.165-2.166-2.165z" fill="#fcf1e4"/> - <path d="M396.76 359.88l2.167 2.165-2.166-2.165z" fill="#fdab33"/> - <path d="M411.92 359.88l2.165 2.165-2.165-2.165z" fill="#fef8f1"/> - <path d="M433.575 359.88l2.165 2.165-2.165-2.165z" fill="#d9d868"/> - <path d="M437.906 359.88l2.165 2.165-2.164-2.165z" fill="#a4a43d"/> - <path d="M440.07 359.88l2.167 2.165-2.166-2.165z" fill="#0e0e6e"/> - <path d="M299.314 362.045l2.165 2.166-2.166-2.165z" fill="#3a3a7c"/> - <path d="M305.81 362.045l2.166 2.166-2.166-2.165z" fill="#e5e59d"/> - <path d="M329.63 362.045l4.332 4.33-4.33-4.33z" fill="#fae3c9"/> - <path d="M331.796 362.045l2.166 2.166-2.166-2.165z" fill="#fe9f11"/> - <path d="M372.94 362.045l2.166 2.166-2.165-2.165z" fill="#f8dcbb"/> - <path d="M392.43 362.045l2.166 2.166-2.166-2.165z" fill="#fcf1e4"/> - <path d="M394.596 362.045l2.165 2.166-2.164-2.165z" fill="#fdab33"/> - <path d="M407.59 362.045l2.164 2.166-2.165-2.165z" fill="#fcb144"/> - <path d="M409.754 362.045l2.166 2.166-2.166-2.165z" fill="#fef8f1"/> - <path d="M431.41 362.045l2.165 2.166-2.166-2.165z" fill="#fbfaf2"/> - <path d="M437.906 362.045l2.165 2.166-2.164-2.165z" fill="#8d8d5b"/> - <path d="M299.314 364.21l2.165 2.166-2.166-2.165z" fill="#0e0e6e"/> - <path d="M301.48 364.21l2.165 2.166-2.166-2.165z" fill="#a4a43d"/> - <path d="M305.81 364.21l2.166 2.166-2.166-2.165z" fill="#d4d456"/> - <path d="M370.775 364.21l2.166 2.166-2.165-2.165z" fill="#f9d6aa"/> - <path d="M390.265 364.21l2.165 2.166-2.165-2.165z" fill="#f9d099"/> - <path d="M392.43 364.21l2.166 2.166-2.166-2.165z" fill="#fe9f11"/> - <path d="M405.423 364.21l2.166 2.166-2.167-2.165z" fill="#faca88"/> - <path d="M431.41 364.21l2.165 2.166-2.166-2.165z" fill="#eeedc1"/> - <path d="M437.906 364.21l2.165 2.166-2.164-2.165z" fill="#58587b"/> - <path d="M301.48 366.376l2.165 2.166-2.166-2.166z" fill="#737370"/> - <path d="M307.976 366.376l2.165 2.166-2.164-2.166z" fill="#f6f6e4"/> - <path d="M331.796 366.376l2.166 2.166-2.166-2.166z" fill="#fbbe66"/> - <path d="M366.444 366.376l2.166 2.166-2.166-2.166z" fill="#fcb144"/> - <path d="M369.324 367.827l.723 1.442-.723-1.443z" fill="#f8dcbb"/> - <path d="M385.934 366.376l2.165 2.166-2.166-2.166z" fill="#fbbe66"/> - <path d="M388.1 366.376l2.165 2.166-2.166-2.166z" fill="#fe9f11"/> - <path d="M401.092 366.376l2.166 2.166-2.166-2.166z" fill="#fbc477"/> - <path d="M403.258 366.376l2.165 2.166-2.165-2.166z" fill="#fcf1e4"/> - <path d="M431.41 366.376l2.165 2.166-2.166-2.166z" fill="#d3d079"/> - <path d="M435.74 366.376l2.166 2.166-2.166-2.166z" fill="#a4a43d"/> - <path d="M437.906 366.376l2.165 2.166-2.164-2.166z" fill="#262678"/> - <path d="M301.48 368.542l2.165 2.165-2.166-2.165z" fill="#49497d"/> - <path d="M307.976 368.542l2.165 2.165-2.164-2.165z" fill="#e0dea1"/> - <path d="M329.63 368.542l2.166 2.165-2.165-2.165z" fill="#fae3c9"/> - <path d="M359.948 368.542l2.165 2.165-2.165-2.165z" fill="#fdab33"/> - <path d="M362.113 368.542l2.166 2.165-2.167-2.165z" fill="#fbc477"/> - <path d="M364.28 368.542l2.164 2.165-2.165-2.165z" fill="#fbead6"/> - <path d="M370.775 368.542l2.166 2.165-2.165-2.165z" fill="#fcb144"/> - <path d="M398.927 368.542l2.165 2.165-2.165-2.165z" fill="#f9d6aa"/> - <path d="M435.74 368.542l2.166 2.165-2.166-2.165z" fill="#99994e"/> - <path d="M301.48 370.707l2.165 2.166-2.166-2.166z" fill="#0e0e6e"/> - <path d="M303.645 370.707l2.165 2.166-2.165-2.166z" fill="#a4a43d"/> - <path d="M307.976 370.707l2.165 2.166-2.164-2.166z" fill="#d4d456"/> - <path d="M327.465 370.707l2.166 2.166-2.165-2.166z" fill="#f9d099"/> - <path d="M329.63 370.707l2.166 2.166-2.165-2.166m10.828 0l2.166 2.166-2.166-2.166z" fill="#fe9f11"/> - <path d="M342.624 370.707l2.165 2.166-2.166-2.166z" fill="#f9d6aa"/> - <path d="M344.79 370.707l2.165 2.166-2.166-2.166z" fill="#f9d099"/> - <path d="M353.45 370.707l2.167 2.166-2.166-2.166z" fill="#f9d6aa"/> - <path d="M355.617 370.707l2.165 2.166-2.165-2.166z" fill="#fae3c9"/> - <path d="M357.782 370.707l2.166 2.166-2.166-2.166z" fill="#fef8f1"/> - <path d="M375.106 370.707l2.166 2.166-2.166-2.166z" fill="#fbead6"/> - <path d="M377.272 370.707l2.165 2.166-2.165-2.166z" fill="#fae3c9"/> - <path d="M379.437 370.707l2.166 2.166-2.166-2.166z" fill="#faca88"/> - <path d="M381.603 370.707l2.165 2.166-2.165-2.166z" fill="#fbc477"/> - <path d="M383.768 370.707l2.166 2.166-2.166-2.166z" fill="#fdab33"/> - <path d="M394.596 370.707l2.165 2.166-2.164-2.166z" fill="#fe9f11"/> - <path d="M396.76 370.707l2.167 2.166-2.166-2.166z" fill="#f9d6aa"/> - <path d="M429.244 370.707l2.165 2.166-2.166-2.166z" fill="#e5e3af"/> - <path d="M435.74 370.707l2.166 2.166-2.166-2.166z" fill="#667"/> - <path d="M303.645 372.873l2.165 2.165-2.165-2.165z" fill="#737370"/> - <path d="M310.14 372.873l2.167 2.165-2.166-2.165z" fill="#f2f1d7"/> - <path d="M325.3 372.873l2.165 2.165-2.165-2.165z" fill="#fea522"/> - <path d="M336.127 372.873l2.166 2.165-2.166-2.165z" fill="#fe9f11"/> - <path d="M338.293 372.873l2.165 2.165-2.165-2.165z" fill="#fbbe66"/> - <path d="M340.458 372.873l2.166 2.165-2.166-2.165z" fill="#fcf1e4"/> - <path d="M392.43 372.873l2.166 2.165-2.166-2.165z" fill="#fea522"/> - <path d="M394.596 372.873l2.165 2.165-2.164-2.165z" fill="#fbead6"/> - <path d="M429.244 372.873l2.165 2.165-2.166-2.165z" fill="#dddc7a"/> - <path d="M433.575 372.873l2.165 2.165-2.165-2.165z" fill="#a4a43d"/> - <path d="M435.74 372.873l2.166 2.165-2.166-2.165z" fill="#262678"/> - <path d="M303.645 375.038l2.165 2.166-2.165-2.166z" fill="#49497d"/> - <path d="M306.525 376.49l.723 1.44-.723-1.44z" fill="#a4a43d"/> - <path d="M310.14 375.038l2.167 2.166-2.166-2.166z" fill="#d3d079"/> - <path d="M327.465 375.038l2.166 2.166-2.165-2.166z" fill="#f9d099"/> - <path d="M329.63 375.038l2.166 2.166-2.165-2.166z" fill="#fcb144"/> - <path d="M331.796 375.038l2.166 2.166-2.166-2.166z" fill="#faca88"/> - <path d="M333.962 375.038l2.165 2.166-2.165-2.166z" fill="#f8dcbb"/> - <path d="M336.127 375.038l2.166 2.166-2.166-2.166z" fill="#fef8f1"/> - <path d="M383.768 375.038l2.166 2.166-2.166-2.166z" fill="#f8dcbb"/> - <path d="M392.43 375.038l2.166 2.166-2.166-2.166z" fill="#fcf1e4"/> - <path d="M427.078 375.038l2.166 2.166-2.166-2.166z" fill="#f6f6e4"/> - <path d="M433.575 375.038l2.165 2.166-2.165-2.166z" fill="#8d8d5b"/> - <path d="M312.307 377.204l2.165 2.165-2.165-2.166z" fill="#fbfaf2"/> - <path d="M383.768 377.204l2.166 2.165-2.166-2.166z" fill="#fbbe66"/> - <path d="M390.265 377.204l2.165 2.165-2.165-2.166z" fill="#faca88"/> - <path d="M427.078 377.204l2.166 2.165-2.166-2.166z" fill="#e1e18c"/> - <path d="M433.575 377.204l2.165 2.165-2.165-2.166z" fill="#49497d"/> - <path d="M305.81 379.37l2.166 2.165-2.166-2.166z" fill="#58587b"/> - <path d="M312.307 379.37l2.165 2.165-2.165-2.166z" fill="#e5e59d"/> - <path d="M383.768 379.37l2.166 2.165-2.166-2.166z" fill="#fe9f11"/> - <path d="M388.1 379.37l2.165 2.165-2.166-2.166z" fill="#fdab33"/> - <path d="M424.913 379.37l2.165 2.165-2.165-2.166z" fill="#fbfaf2"/> - <path d="M431.41 379.37l2.165 2.165-2.166-2.166z" fill="#a4a43d"/> - <path d="M433.575 379.37l2.165 2.165-2.165-2.166z" fill="#0e0e6e"/> - <path d="M305.81 381.535l2.166 2.165-2.166-2.165z" fill="#1b1b74"/> - <path d="M307.976 381.535l2.165 2.165-2.164-2.165z" fill="#a4a43d"/> - <path d="M312.307 381.535l2.165 2.165-2.165-2.165z" fill="#d0d045"/> - <path d="M381.603 381.535l2.165 2.165-2.165-2.165z" fill="#fbead6"/> - <path d="M385.934 381.535l2.165 2.165-2.166-2.165z" fill="#fe9f11"/> - <path d="M388.1 381.535l2.165 2.165-2.166-2.165z" fill="#fbead6"/> - <path d="M424.913 381.535l2.165 2.165-2.165-2.165z" fill="#e5e59d"/> - <path d="M431.41 381.535l2.165 2.165-2.166-2.165z" fill="#667"/> - <path d="M307.976 383.7l2.165 2.166-2.164-2.166z" fill="#6e6c70"/> - <path d="M314.472 383.7l2.166 2.166-2.166-2.166z" fill="#e5e3af"/> - <path d="M382.317 385.15l.723 1.443-.723-1.442z" fill="#faca88"/> - <path d="M385.934 383.7l2.165 2.166-2.166-2.166z" fill="#fae3c9"/> - <path d="M422.747 383.7l2.166 2.166-2.166-2.166z" fill="#fbfaf2"/> - <path d="M429.244 383.7l2.165 2.166-2.166-2.166z" fill="#a4a43d"/> - <path d="M431.41 383.7l2.165 2.166-2.166-2.166m-123.434 2.166l2.165 2.165-2.164-2.164z" fill="#1b1b74"/> - <path d="M310.14 385.866l2.167 2.165-2.166-2.164z" fill="#a4a43d"/> - <path d="M314.472 385.866l2.166 2.165-2.166-2.164z" fill="#d0d045"/> - <path d="M316.638 385.866l2.165 2.165-2.165-2.164z" fill="#fbfaf2"/> - <path d="M383.768 385.866l2.166 2.165-2.166-2.164z" fill="#f9d6aa"/> - <path d="M422.747 385.866l2.166 2.165-2.166-2.164z" fill="#e5e59d"/> - <path d="M429.244 385.866l2.165 2.165-2.166-2.164M310.14 388.03l2.167 2.167-2.166-2.166z" fill="#6e6c70"/> - <path d="M316.638 388.03l2.165 2.167-2.165-2.166z" fill="#8cbf84"/> - <path d="M317.57 388.03c7.52 15.83 34.12 53.17 54.44 52.443 19.734-.706 42.02-37.14 50.737-52.442H317.57z" fill="#0cf"/> - <path d="M427.078 388.03l2.166 2.167-2.166-2.166z" fill="#a4a43d"/> - <path d="M429.244 388.03l2.165 2.167-2.166-2.166m-119.103 2.167l2.167 2.165-2.166-2.165z" fill="#1b1b74"/> - <path d="M312.307 390.197l2.165 2.165-2.165-2.165z" fill="#a4a43d"/> - <path d="M316.638 390.197l2.165 2.165-2.165-2.165z" fill="#adb333"/> - <path d="M318.803 390.197l2.166 2.165-2.167-2.165z" fill="#1ac5b5"/> - <path d="M420.582 390.197l2.165 2.165-2.165-2.165z" fill="#68b070"/> - <path d="M427.078 390.197l2.166 2.165-2.166-2.165z" fill="#667"/> - <path d="M312.307 392.362l2.165 2.166-2.165-2.166z" fill="#58587b"/> - <path d="M318.803 392.362l2.166 2.166-2.167-2.166z" fill="#7fb15c"/> - <path d="M418.416 392.362l2.166 2.166-2.166-2.166z" fill="#27c2aa"/> - <path d="M424.913 392.362l-2.166 4.33 2.166-4.33z" fill="#a4a43d"/> - <path d="M427.078 392.362l2.166 2.166-2.166-2.166m-114.77 2.166l2.164 2.165-2.165-2.165z" fill="#0e0e6e"/> - <path d="M314.472 394.528l4.33 4.33-4.33-4.33z" fill="#a4a43d"/> - <path d="M320.97 394.528l2.164 2.165-2.165-2.165z" fill="#34be9e"/> - <path d="M418.416 394.528l2.166 2.165-2.166-2.165z" fill="#96b247"/> - <path d="M424.913 394.528l2.165 2.165-2.165-2.165z" fill="#53527c"/> - <path d="M314.472 396.693l2.166 2.166-2.166-2.167z" fill="#3a3a7c"/> - <path d="M320.97 396.693l2.164 2.166-2.165-2.167z" fill="#a2b23d"/> - <path d="M323.134 396.693l2.166 2.166-2.166-2.167z" fill="#0dc9c1"/> - <path d="M416.25 396.693l2.166 2.166-2.165-2.167z" fill="#5bb47c"/> - <path d="M422.747 396.693l2.166 2.166-2.166-2.167z" fill="#8d8d5b"/> - <path d="M316.638 398.86l2.165 2.164-2.165-2.165z" fill="#737370"/> - <path d="M323.134 398.86l2.166 2.164-2.166-2.165z" fill="#74b166"/> - <path d="M414.085 398.86l2.166 2.164-2.165-2.165z" fill="#27c2aa"/> - <path d="M420.582 398.86l-2.166 4.33 2.166-4.33z" fill="#a4a43d"/> - <path d="M422.747 398.86l2.166 2.164-2.166-2.165z" fill="#262678"/> - <path d="M316.638 401.024l2.165 2.166-2.165-2.166z" fill="#0e0e6e"/> - <path d="M318.803 401.024l4.33 4.33-4.33-4.33z" fill="#a4a43d"/> - <path d="M325.3 401.024l2.165 2.166-2.165-2.166z" fill="#42bb92"/> - <path d="M411.92 401.024l2.165 2.166-2.165-2.166z" fill="#0dc9c1"/> - <path d="M414.085 401.024l2.166 2.166-2.165-2.166z" fill="#96b247"/> - <path d="M420.582 401.024l2.165 2.166-2.165-2.166z" fill="#58587b"/> - <path d="M318.803 403.19l2.166 2.165-2.167-2.165z" fill="#3a3a7c"/> - <path d="M325.3 403.19l2.165 2.165-2.165-2.165z" fill="#adb333"/> - <path d="M327.465 403.19l2.166 2.165-2.165-2.165z" fill="#27c2aa"/> - <path d="M411.92 403.19l2.165 2.165-2.165-2.165z" fill="#74b166"/> - <path d="M418.416 403.19l2.166 2.165-2.166-2.165z" fill="#8d8d5b"/> - <path d="M320.97 405.355l2.164 2.166-2.165-2.165z" fill="#6e6c70"/> - <path d="M327.465 405.355l2.166 2.166-2.165-2.165z" fill="#96b247"/> - <path d="M329.63 405.355l2.166 2.166-2.165-2.165z" fill="#0dc9c1"/> - <path d="M409.754 405.355l2.166 2.166-2.166-2.165z" fill="#42bb92"/> - <path d="M416.25 405.355l-4.33 6.497 4.33-6.497z" fill="#a4a43d"/> - <path d="M418.416 405.355l2.166 2.166-2.166-2.165z" fill="#1b1b74"/> - <path d="M320.97 407.52l2.164 2.166-2.165-2.165z" fill="#0e0e6e"/> - <path d="M323.134 407.52l2.166 2.166-2.166-2.165z" fill="#8d8d5b"/> - <path d="M329.63 407.52l2.166 2.166-2.165-2.165z" fill="#7fb15c"/> - <path d="M407.59 407.52l2.164 2.166-2.165-2.165z" fill="#34be9e"/> - <path d="M416.25 407.52l2.166 2.166-2.165-2.165z" fill="#3a3a7c"/> - <path d="M323.134 409.686l2.166 2.166-2.166-2.166z" fill="#1b1b74"/> - <path d="M325.3 409.686l23.82 23.82-23.82-23.82z" fill="#a4a43d"/> - <path d="M331.796 409.686l2.166 2.166-2.166-2.166z" fill="#74b166"/> - <path d="M405.423 409.686l2.166 2.166-2.167-2.166z" fill="#27c2aa"/> - <path d="M407.59 409.686l2.164 2.166-2.165-2.166z" fill="#adb333"/> - <path d="M414.085 409.686l2.166 2.166-2.165-2.166z" fill="#667"/> - <path d="M325.3 411.852l2.165 2.165-2.165-2.165z" fill="#32327b"/> - <path d="M333.962 411.852l2.165 2.165-2.165-2.165z" fill="#42bb92"/> - <path d="M403.258 411.852l-8.662 10.827 8.662-10.828z" fill="#0dc9c1"/> - <path d="M405.423 411.852l2.166 2.165-2.167-2.165z" fill="#adb333"/> - <path d="M411.92 411.852l2.165 2.165-2.165-2.165z" fill="#737370"/> - <path d="M327.465 414.017l2.166 2.166-2.165-2.166z" fill="#49497d"/> - <path d="M336.127 414.017l2.166 2.166-2.166-2.166z" fill="#42bb92"/> - <path d="M403.258 414.017l2.165 2.166-2.165-2.166z" fill="#96b247"/> - <path d="M409.754 414.017l-2.165 4.33 2.164-4.33z" fill="#8d8d5b"/> - <path d="M411.92 414.017l2.165 2.166-2.165-2.166z" fill="#0e0e6e"/> - <path d="M329.63 416.183l2.166 2.165-2.165-2.165z" fill="#53527c"/> - <path d="M338.293 416.183l2.165 2.165-2.165-2.165z" fill="#42bb92"/> - <path d="M401.092 416.183l2.166 2.165-2.166-2.165z" fill="#96b247"/> - <path d="M409.754 416.183l2.166 2.165-2.166-2.165z" fill="#0e0e6e"/> - <path d="M331.796 418.348l2.166 2.166-2.166-2.166z" fill="#6e6c70"/> - <path d="M340.458 418.348l2.166 2.166-2.166-2.166z" fill="#42bb92"/> - <path d="M398.927 418.348l2.165 2.166-2.165-2.166z" fill="#96b247"/> - <path d="M405.423 418.348l-4.33 6.497 4.33-6.497z" fill="#a4a43d"/> - <path d="M407.59 418.348l2.164 2.166-2.165-2.166z" fill="#262678"/> - <path d="M333.962 420.514l2.165 2.165-2.165-2.166z" fill="#6e6c70"/> - <path d="M342.624 420.514l2.165 2.165-2.166-2.166z" fill="#42bb92"/> - <path d="M396.76 420.514l2.167 2.165-2.166-2.166z" fill="#96b247"/> - <path d="M405.423 420.514l2.166 2.165-2.167-2.166z" fill="#262678"/> - <path d="M336.127 422.68l2.166 2.165-2.166-2.166z" fill="#6e6c70"/> - <path d="M344.79 422.68l2.165 2.165-2.166-2.166z" fill="#68b070"/> - <path d="M392.43 422.68l2.166 2.165-2.166-2.166z" fill="#27c2aa"/> - <path d="M394.596 422.68l2.165 2.165-2.164-2.166z" fill="#adb333"/> - <path d="M403.258 422.68l2.165 2.165-2.165-2.166z" fill="#262678"/> - <path d="M338.293 424.845l2.165 2.165-2.165-2.165z" fill="#667"/> - <path d="M346.955 424.845l2.165 2.165-2.165-2.165z" fill="#74b166"/> - <path d="M390.265 424.845l2.165 2.165-2.165-2.165z" fill="#34be9e"/> - <path d="M392.43 424.845l2.166 2.165-2.166-2.165z" fill="#adb333"/> - <path d="M398.927 424.845l-2.166 4.33 2.167-4.33z" fill="#8d8d5b"/> - <path d="M401.092 424.845l2.166 2.165-2.166-2.165z" fill="#262678"/> - <path d="M340.458 427.01l2.166 2.166-2.166-2.166z" fill="#49497d"/> - <path d="M349.12 427.01l2.166 2.166-2.166-2.166z" fill="#96b247"/> - <path d="M351.286 427.01l2.165 2.166-2.164-2.166z" fill="#0dc9c1"/> - <path d="M388.1 427.01l2.165 2.166-2.166-2.166z" fill="#42bb92"/> - <path d="M398.927 427.01l2.165 2.166-2.165-2.166z" fill="#0e0e6e"/> - <path d="M342.624 429.176l2.165 2.165-2.166-2.164z" fill="#49497d"/> - <path d="M351.286 429.176l2.165 2.165-2.164-2.164z" fill="#a2b23d"/> - <path d="M353.45 429.176l2.167 2.165-2.166-2.164z" fill="#27c2aa"/> - <path d="M385.934 429.176l2.165 2.165-2.166-2.164z" fill="#74b166"/> - <path d="M392.43 429.176l-6.496 8.662 6.496-8.662z" fill="#a4a43d"/> - <path d="M394.596 429.176l2.165 2.165-2.164-2.164z" fill="#808067"/> - <path d="M396.76 429.176l2.167 2.165-2.166-2.164z" fill="#0e0e6e"/> - <path d="M344.79 431.34l2.165 2.167-2.166-2.166z" fill="#262678"/> - <path d="M353.45 431.34l2.167 2.167-2.166-2.166z" fill="#adb333"/> - <path d="M355.617 431.34l2.165 2.167-2.165-2.166z" fill="#42bb92"/> - <path d="M381.603 431.34l2.165 2.167-2.165-2.166z" fill="#0dc9c1"/> - <path d="M383.768 431.34l2.166 2.167-2.166-2.166z" fill="#96b247"/> - <path d="M392.43 431.34l2.166 2.167-2.166-2.166z" fill="#6e6c70"/> - <path d="M346.955 433.507l2.165 2.165-2.165-2.165z" fill="#1b1b74"/> - <path d="M349.12 433.507l2.166 2.165-2.166-2.165z" fill="#8d8d5b"/> - <path d="M357.782 433.507l2.166 2.165-2.166-2.165z" fill="#74b166"/> - <path d="M359.948 433.507l2.165 2.165-2.165-2.165z" fill="#0dc9c1"/> - <path d="M379.437 433.507l2.166 2.165-2.166-2.165z" fill="#34be9e"/> - <path d="M381.603 433.507l2.165 2.165-2.165-2.165z" fill="#adb333"/> - <path d="M390.265 433.507l2.165 2.165-2.165-2.165z" fill="#49497d"/> - <path d="M349.12 435.672l2.166 2.166-2.166-2.166z" fill="#0e0e6e"/> - <path d="M351.286 435.672l2.165 2.166-2.164-2.166z" fill="#6e6c70"/> - <path d="M353.45 435.672l4.332 4.33-4.33-4.33z" fill="#a4a43d"/> - <path d="M359.948 435.672l2.165 2.166-2.165-2.166z" fill="#96b247"/> - <path d="M362.113 435.672l2.166 2.166-2.167-2.166z" fill="#27c2aa"/> - <path d="M377.272 435.672l2.165 2.166-2.165-2.166z" fill="#68b070"/> - <path d="M388.1 435.672l2.165 2.166-2.166-2.166z" fill="#32327b"/> - <path d="M353.45 437.838l2.167 2.165-2.166-2.165z" fill="#49497d"/> - <path d="M364.28 437.838l2.164 2.165-2.165-2.165z" fill="#5bb47c"/> - <path d="M372.94 437.838l2.166 2.165-2.165-2.165z" fill="#27c2aa"/> - <path d="M375.106 437.838l2.166 2.165-2.166-2.165z" fill="#96b247"/> - <path d="M381.603 437.838l-2.166 4.33 2.166-4.33z" fill="#a4a43d"/> - <path d="M383.768 437.838l2.166 2.165-2.166-2.165z" fill="#808067"/> - <path d="M385.934 437.838l2.165 2.165-2.166-2.165z" fill="#0e0e6e"/> - <path d="M355.617 440.003l2.165 2.166-2.165-2.167z" fill="#262678"/> - <path d="M357.782 440.003l2.166 2.166-2.166-2.167z" fill="#8d8d5b"/> - <path d="M366.444 440.003l2.166 2.166-2.166-2.167z" fill="#8bb252"/> - <path d="M368.61 440.003l2.165 2.166-2.165-2.167z" fill="#1ac5b5"/> - <path d="M370.775 440.003l2.166 2.166-2.165-2.167z" fill="#5bb47c"/> - <path d="M381.603 440.003l2.165 2.166-2.165-2.167z" fill="#58587b"/> - <path d="M357.782 442.17l2.166 2.164-2.166-2.165z" fill="#0e0e6e"/> - <path d="M359.948 442.17l2.165 2.164-2.165-2.165z" fill="#667"/> - <path d="M362.113 442.17l2.166 2.164-2.167-2.165z" fill="#a4a43d"/> - <path d="M377.272 442.17l2.165 2.164-2.165-2.165z" fill="#99994e"/> - <path d="M379.437 442.17l2.166 2.164-2.166-2.165m-17.324 2.164l2.166 2.166-2.167-2.166z" fill="#32327b"/> - <path d="M364.28 444.334l2.164 2.166-2.165-2.166z" fill="#99994e"/> - <path d="M372.94 444.334l2.166 2.166-2.165-2.166z" fill="#a4a43d"/> - <path d="M375.106 444.334l2.166 2.166-2.166-2.166z" fill="#667"/> - <path d="M377.272 444.334l2.165 2.166-2.165-2.166M364.28 446.5l2.164 2.165-2.165-2.165z" fill="#0e0e6e"/> - <path d="M366.444 446.5l2.166 2.165-2.166-2.165z" fill="#667"/> - <path d="M368.61 446.5l2.165 2.165-2.165-2.165z" fill="#a4a43d"/> - <path d="M370.775 446.5l2.166 2.165-2.165-2.165z" fill="#99994e"/> - <path d="M372.94 446.5l2.166 2.165-2.165-2.165z" fill="#32327b"/> - <path d="M368.61 448.665l2.165 2.166-2.165-2.165z" fill="#262678"/> - <path d="M370.775 448.665l2.166 2.166-2.165-2.165z" fill="#0e0e6e"/> - <path d="M372.94 303.577c3.342 7.86 14.055 16.537 17 20.79-3.75 4.254-4.498 3.79-4.006 11.692 6.518-6.82 6.635-7.532 10.827-6.497 9.185 9.164 1.645 28.846-5.945 33.125-7.588 4.565-6.21-.158-17.584 5.563 5.215 4.46 11.257-.653 16.194.714 2.683 3.183-1.275 8.984.81 14.448 4.364-.42 3.84-9.23 4.855-12.423 3.187-11.704 22.352-19.866 23.326-30.6 4.04-1.897 8.08-.593 12.993 2.166-2.448-10.057-10.543-9.95-12.712-13.09-5.165-7.892-9.743-16.896-20.774-19.23-8.374-1.775-7.748.532-13.114-3.128-3.335-2.603-13.49-7.523-11.867-3.532z" fill="#f90"/> - <path d="M397.017 312.505a1.746 1.746 0 1 1-3.495-.001 1.746 1.746 0 0 1 3.497.001z" fill-rule="evenodd" fill="#fff"/> - <path d="M346.16 336.92c5.386-6.627 8.055-20.153 10.44-24.744 5.512 1.327 5.452 2.206 12.21-1.92-9.076-2.577-9.76-2.348-10.803-6.538 3.812-12.402 24.737-14.93 32.066-10.218 7.58 4.577 2.762 5.566 13.134 12.95 1.506-6.695-5.837-9.648-6.936-14.652 1.563-3.86 8.54-3.07 12.398-7.466-2.41-3.662-9.954.917-13.253 1.51-11.836 2.65-28.005-10.482-37.95-6.33-3.566-2.686-4.3-6.866-4.157-12.5-7.748 6.863-3.87 13.97-5.634 17.355-4.566 8.254-10.388 16.507-7.3 27.352 2.344 8.23 4.09 6.6 3.362 13.055-.744 4.164-.35 15.443 2.42 12.142z" fill="#f90"/> - <path d="M342.805 311.46a1.747 1.747 0 0 1 2.36.728 1.745 1.745 0 1 1-3.087 1.63 1.746 1.746 0 0 1 .727-2.358z" fill-rule="evenodd" fill="#fff"/> - <path d="M389.94 341.57c-8.457-1.184-21.414 3.528-26.576 3.862-1.715-5.403-.932-5.807-7.958-9.455 2.488 9.1 3.037 9.566-.008 12.627-12.586 3.152-25.573-13.45-25.332-22.158-.005-8.856 3.334-5.243 4.288-17.938-6.508 2.173-5.237 9.985-8.95 13.514-4.112.66-7.046-5.72-12.803-6.748-1.886 3.957 5.935 8.045 8.15 10.56 8.39 8.76 5.514 29.39 14.213 35.755-.455 4.44-3.652 7.23-8.548 10.02 9.88 3.083 13.957-3.91 17.767-4.153 9.425-.363 19.5.35 27.184-7.902 5.833-6.265 3.533-6.916 9.435-9.63 3.95-1.518 13.398-7.69 9.14-8.353z" fill="#f90"/> - <path d="M369.887 357.608a1.746 1.746 0 1 1 1.8-2.995 1.746 1.746 0 0 1-1.8 2.996z" fill-rule="evenodd" fill="#fff"/> - </g> -</svg> diff --git a/img/flags/1x1/al.svg b/img/flags/1x1/al.svg deleted file mode 100644 index 93bce4a..0000000 --- a/img/flags/1x1/al.svg +++ /dev/null @@ -1,5 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" height="512" width="512" viewBox="0 0 512 512"> - <path fill="#e41e20" d="M0 0h512v512H0z"/> - <path id="a" d="M204.896 99.537c-4.978-.084-13.24 1.587-13.056 5.408-13.867-2.376-15.31 3.35-14.496 8.448 1.32-2.023 2.926-3.12 4.16-3.328 1.85-.307 3.784.29 5.76 1.504 1.976 1.213 4.153 3.17 5.12 4.383-4.894 1.17-8.675.415-12.512-.256-1.89-.33-4.538-1.395-6.112-2.496-1.573-1.1-2.07-2.137-4.544-4.67-2.918-2.99-6.023-2.148-5.056 2.495 2.238 4.312 5.977 6.235 10.688 7.008 2.267.372 5.645 1.18 9.472 1.184 3.828.004 8.126-.553 10.464-.064-1.404.882-2.994 2.402-6.144 3.008-3.203.617-8.072-1.904-11.04-2.59.377 2.496 3.527 4.83 9.728 6.047 10.19 2.22 18.658 3.905 24.256 6.944 5.598 3.04 9.128 6.844 11.648 9.825 5.017 5.932 5.28 10.486 5.6 11.488 1.032 9.478-2.272 14.81-8.416 16.448-3.07.82-8.527-.723-10.528-3.07-2-2.35-3.946-6.385-3.392-12.705.54-2.48 3.375-8.938.96-10.272-11.122-6.147-24.628-12.364-34.4-16.064-2.67-1.012-4.87 2.618-5.728 4.03-16.6-2.02-31.566-13.254-38.304-25.215-4.588-8.146-12.15.017-10.88 7.712 2.053 8.59 8.597 14.8 16.448 19.2 8.06 4.437 18.13 8.803 28.32 8.576 5.49 1.04 5.436 8.14-1.152 9.472-12.882.082-23.16-.24-32.864-9.6-7.36-6.72-11.503 1.287-9.376 5.824 3.606 13.985 23.56 17.902 43.744 13.375 7.817-1.294 3.136 7.082.928 7.168-8.434 6.048-23.534 11.965-36.832-.064-6.085-4.66-10.2-.744-7.936 5.983 5.9 17.54 28.47 13.855 43.968 5.216 3.99-2.224 7.61 2.95 2.752 6.88-19.272 13.465-28.907 13.618-37.6 8.447-10.882-4.292-11.84 7.78-5.376 11.744 7.185 4.41 25.467 1.104 38.88-7.327 5.75-4.275 6.01 2.41 2.368 5.056-15.917 13.755-22.19 17.378-38.784 15.135-8.228-.64-8.104 9.503-1.632 13.472 8.837 5.42 26.095-3.576 39.488-14.688 5.638-3.013 6.564 1.927 3.776 7.775C159.08 236.71 151.4 242.798 144 245.617c-7.4 2.82-14.515 2.37-19.552.64-6.144-2.11-6.914 4.274-3.52 10.08 2.047 3.5 10.527 4.62 19.68 1.376 9.154-3.245 18.98-10.857 25.728-19.776 5.87-5.14 5.14 1.765 2.464 6.624-13.51 21.36-25.868 29.283-42.144 27.937-7.216-1.226-8.855 4.386-4.256 9.568 8.077 6.698 18.176 6.488 27.008-.128 7.853-7.57 22.874-23.873 30.752-32.61 5.552-4.424 7.325-.06 5.696 8.93-1.48 5.148-5.19 10.57-15.296 14.527-6.904 3.94-1.72 9.372 3.456 9.472 2.848.056 8.632-3.273 13.056-8.255 5.82-6.554 6.167-10.954 9.376-21.15 3.032-4.972 8.448-2.652 8.448 2.56-2.597 10.213-4.83 12.045-10.08 16.223-5.022 4.715 3.498 6.287 6.368 4.352 8.305-5.598 11.337-12.84 14.112-19.424 2.003-4.753 7.814-2.448 5.12 5.313-6.437 18.547-17.014 25.85-35.52 29.6-1.875.333-3.02 1.44-2.368 3.616 2.484 2.577 4.973 4.917 7.456 7.487-11.443 3.33-20.74 5.203-32.192 8.544-5.618-3.683-10.157-6.808-15.776-10.495-1.48-3.463-2.172-8.75-10.464-5.024-5.618-2.594-8.21-1.642-11.328.96 4.5.17 6.46 1.374 8.224 3.425 2.304 6.068 7.618 6.655 13.056 4.928 3.538 2.98 5.423 5.267 8.96 8.256-6.604-.227-11.205-.344-17.792-.545-6.288-6.75-11.307-6.382-15.808-1.088-3.43.527-4.884.6-7.232 4.768 3.692-1.515 6.014-1.97 7.616-.32 6.686 3.876 11.053 3.01 14.368 0 6.45.395 12.262.73 18.72 1.152-2.372 2.017-5.628 3.086-8 5.12-9.687-2.77-14.743.96-16.448 8.865-1.298 3.19-1.906 6.475-1.344 9.888.938-3.122 2.445-5.806 5.216-7.488 8.635 2.193 11.88-1.332 12.352-6.496 4.162-3.396 10.438-4.145 14.592-7.584 4.857 1.554 7.205 2.517 12.096 4.064 1.74 5.284 5.674 7.377 12.064 6.016 7.606.238 6.264 3.36 6.88 5.856 2.022-3.586 1.965-7.072-2.72-10.24-1.704-4.63-5.48-6.738-10.432-4.064-4.66-1.323-5.885-3.225-10.528-4.544 11.744-3.743 20.074-4.586 31.808-8.32 2.938 2.77 5.265 4.76 8.224 7.232 1.56.93 3.052 1.165 3.968 0 7.353-10.643 10.637-20.023 17.472-27.04 2.61-2.904 5.91-6.822 9.568-7.776 1.83-.478 4.072-.187 5.504 1.376 1.432 1.562 2.557 4.44 2.08 8.736-.684 6.165-2.174 8.112-3.904 11.808-1.73 3.696-3.843 5.97-6.016 8.8-4.345 5.66-10.078 8.955-13.472 11.168-6.786 4.425-9.657 2.488-14.912 2.207-6.792.764-8.6 4.072-3.04 8.64 5.197 2.705 9.868 3.04 13.664 2.337 3.26-.602 7.074-4.81 9.792-7.072 3.06-3.534 8.132.658 4.672 4.768-6.286 7.47-12.568 12.395-20.32 12.288-8.145 1.098-6.622 5.674-1.216 7.905 9.73 4.016 18.514-3.505 22.976-8.448 3.443-3.766 5.89-3.913 5.28 1.92-3.418 10.562-8.088 14.64-15.712 15.168-6.183-.574-6.25 4.2-1.728 7.424 10.302 7.13 17.763-5.013 21.248-12.353 2.484-6.62 6.294-3.472 6.688 1.984.052 7.292-3.242 13.244-12.064 20.705 6.75 10.754 14.618 21.692 21.376 32.48l20.485-228.153-20.48-36.047c-2.133-1.97-9.346-10.468-11.23-11.648-.69-.734-1.107-1.253-.097-1.632.976-.366 3.262-.776 4.8-1.056-4.344-4.352-8.066-5.747-16.29-8.128 2.005-.854 3.954-.357 9.857-.64-2.343-3.327-7.577-8.422-14.336-10.88 4.463-3.173 5.332-3.386 9.76-7.104-7.667-.544-14.214-2.005-20.8-4-4.165-1.948-9.95-3.6-12.77-3.648zm.737 8.928c4.05 0 6.56 1.39 6.56 3.072 0 1.713-2.51 3.104-6.56 3.104-4.035 0-6.592-1.517-6.592-3.23 0-1.684 2.558-2.945 6.593-2.945z"/> - <use height="100%" width="100%" xlink:href="#a" transform="matrix(-1 0 0 1 512 0)"/> -</svg> diff --git a/img/flags/1x1/am.svg b/img/flags/1x1/am.svg deleted file mode 100644 index 150db22..0000000 --- a/img/flags/1x1/am.svg +++ /dev/null @@ -1,5 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" height="512" width="512" viewBox="0 0 512 512"> - <path d="M0 0h512v170.667H0z" fill="red"/> - <path d="M0 170.667h512v170.666H0z" fill="#00f"/> - <path d="M0 341.333h512V512H0z" fill="orange"/> -</svg> diff --git a/img/flags/1x1/ao.svg b/img/flags/1x1/ao.svg deleted file mode 100644 index 3bbd6ce..0000000 --- a/img/flags/1x1/ao.svg +++ /dev/null @@ -1,13 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" height="512" width="512" viewBox="0 0 512 512"> - <g fill-rule="evenodd" stroke-width="1pt"> - <path fill="red" d="M0 0h511.993v259.824H0z"/> - <path d="M0 252.2h511.993v259.824H0z"/> - </g> - <path d="M228.67 148.173c165.22 43.304 58.99 255.64-71.216 167.26l-8.817 13.545c76.628 54.658 152.57 10.66 173.9-46.358 22.297-58.788-7.52-141.48-92.51-150.03l-1.356 15.576z" fill-rule="evenodd" fill="#ffec00"/> - <path fill-rule="evenodd" fill="#ffec00" d="M169.955 330.827l21.73 10.125-10.142 21.696-21.73-10.125zm148.985-99.48h23.98v23.942h-23.98zm-11.684-38.892l22.342-8.694 8.707 22.31-22.342 8.693zm-25.894-29.188l17.035-16.85 16.877 17.01-17.035 16.85zm-26.284-39.787l22.434 8.455-8.468 22.4-22.434-8.455zM316.1 270.01l22.265 8.888-8.902 22.23-22.265-8.887zm-69.876 70.05l22.06-9.388 9.402 22.025-22.058 9.39zm-39.504 2.77h23.98v23.94h-23.98zm41.29-115.937l-20.35-15.006-20.245 14.47 8.034-22.92-20.348-14.956 24.447-.17 8.567-22.55 7.782 22.702 24.7-.242-19.586 15.232 6.996 23.44z"/> - <path d="M336.03 346.376c-1.21.418-6.23 12.39-9.675 18.248 1.797.51 2.56.596 3.625 1.025 13.655 4.8 20.384 9.18 26.186 17.504 2.888 2.79 7.032 2.93 10.198.697 0 0 2.795-1.114 6.43-5.02 2.968-4.52 2.194-8.11-1.384-11.16-10.944-7.952-22.9-13.902-35.38-21.295z" fill-rule="evenodd" fill="#fe0"/> - <path d="M365.247 372.842c0 2.388-1.94 4.324-4.33 4.324s-4.333-1.936-4.333-4.324 1.94-4.325 4.332-4.325 4.33 1.936 4.33 4.325zM343.87 359.17c0 2.388-1.94 4.324-4.33 4.324s-4.333-1.936-4.333-4.324 1.94-4.325 4.332-4.325 4.33 1.936 4.33 4.325zm10.898 6.975c0 2.39-1.94 4.325-4.33 4.325s-4.333-1.936-4.333-4.325 1.94-4.324 4.332-4.324 4.33 1.937 4.33 4.325z" fill-rule="evenodd"/> - <path d="M324.47 363.667c-42.57-24.273-87.31-50.52-129.88-74.796-18.75-11.635-19.683-33.384-7.17-49.875 1.302-2.337 2.836-1.758 3.514-.524 1.463 8.03 5.97 16.325 11.37 21.496 44.693 28.383 87.732 55.804 131.71 85.613-3.448 5.767-6.104 12.32-9.55 18.086z" fill-rule="evenodd" fill="#fe0"/> - <path fill-rule="evenodd" fill="#ffec00" d="M297.174 305.457l17.85 15.986-16.01 17.824-17.85-15.986z"/> - <path d="M331.54 348.82L206.58 273.3m109.53 58.093l-42.24-27.28m18.21 42.687l-42.75-24.755" stroke="#000" stroke-width="3.05" fill="none"/> -</svg> diff --git a/img/flags/1x1/aq.svg b/img/flags/1x1/aq.svg deleted file mode 100644 index 043f1e0..0000000 --- a/img/flags/1x1/aq.svg +++ /dev/null @@ -1,13 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" height="512" width="512" viewBox="0 0 512 512"> - <defs> - <clipPath id="a"> - <path fill-opacity=".67" d="M0 0h512v512H0z"/> - </clipPath> - </defs> - <g clip-path="url(#a)"> - <path fill-rule="evenodd" fill="#3a7dce" d="M0 0h512v512H0z"/> - <path d="M95.84 237.9c-3.702-7.57-3.702-7.57-3.702-15.14-1.85 0-2.198.356-3.268.058-1.07-.295-1.475 6.98-4.946 5.56-.578-.71 2.488-5.972-.838-8.16-1.07-.712.26-5.028-.203-6.92 0 0-4.22 2.246-7.403-5.678-1.562-2.07-3.702 1.892-3.702 1.892s.925 2.425-.75 3.017c-2.373-1.776-4.11-.845-7.116-3.284-3.008-2.44.637-5.233-5.09-7.303 3.702-9.462 3.702-7.57 12.956-11.354-5.553-3.786-5.553-3.786-9.254-9.464-5.553-1.893-7.404-3.784-12.957-7.57-7.403-9.47-11.105-28.39-11.105-41.64 4.686-4.435 11.105 15.14 20.36 20.817l12.956 5.677c7.403 3.785 9.254 7.57 14.807 11.354l16.658 5.678c7.403 5.677 11.105 13.247 16.658 15.14 6.016 0 7.175-3.542 9.104-3.763 10.88-.57 16.434-2.004 18.603-5.346 2.197-2.66 7.46 1.538 22.267-4.14l-1.85-7.57s3.932-3.31 9.253-1.892c-.144-3.46-.492-12.685 4.75-16.847-3.183-3.414-1.048-5.86-1.048-5.86s2.95-2.9 3.296-4.437c-1.56-8.34 1.354-8.468 2.008-10.92.653-2.454-2.518-1.614-1.624-4.995.893-3.383 6.255-4.186 6.972-6.972.72-2.785-1.528-4.183-1.4-4.848 1.158-2.66.176-8.93 0-11.355 9.95-2.72 13.19-11 16.66-7.57 1.85-11.355 3.7-15.14 14.806-15.14 1.563-3.49-4.05-6.446-1.85-7.57 3.7-.472 6.535-.236 10.875 5.5 1.37 1.82 1.618-2.66 3.006-3.134 1.387-.473 4.71-.48 5.204-2.72.522-2.307 1.273-5.323 3.124-9.107 1.562-3.076 2.776 1.182 4.164 7.214 7.81.296 25.45 2.07 32.853 4.14 5.553 1.48 9.255-1.478 14.576-2.07 3.934 4.022 7.636 1.006 9.718 9.58 2.94 4.628 7.75.415 8.792 1.775 6.19 17.446 27.474 5.677 29.093 5.973 2.718 0 6.038 7.8 8.178 7.607 3.478-.6 2.494-3.024 5.53-2.048-.81 6.564 5.96 14.134 5.96 19.042 0 0 1.647.827 3.173-.63 1.525-1.455 2.928-5.196 4.287-5.107 3.24.473 4.55.898 8.284 1.565 10.036 3.506 15.148 4.297 19.046 6.094 1.813 3.393 3.57 5.13 7.246 4.496 3.037 2.086.822 4.818 2.615 4.995 3.703-1.892 4.918-3.962 8.62-2.07 3.7 1.893 7.403 5.678 9.254 9.463 0 1.892-1.85 9.462 0 20.816.925 3.785 1.373 6.786 5.35 13.277-1.057 6.667 5.003 17.888 5.003 20.727 0 3.784-2.95 5.737-4.8 9.52 7.402 5.68 0 15.14-3.702 20.818 27.763 5.678 14.807 17.032 37.017 11.354-5.553 13.246-3.587 12.183 1.966 25.43-11.106 7.57-.23 9.874-7.634 19.336-.463.592 4.395 8.22 11.22 8.22-1.85 15.14-7.403 9.463-5.552 32.173-14.576-.296-8.677 16.972-18.51 15.14.58 10.82 5.61 11.768 3.703 22.708-7.403 1.892-7.403 1.892-11.105 7.57l-5.553-1.893c-1.85 9.462-5.552 11.354 0 20.817 0 0-7.172.237-9.254 0-.175 3.253 3.18 4.14 3.702 7.57-.29 1.36-10.528 7.333-18.51 7.57-2.08 4.672 5.553 9.64 5.09 12.005-8.676 1.714-12.493 12.596-12.493 12.596s4.453 1.834 3.702 3.785c-2.37-1.775-3.702-1.893-7.403-1.893-1.85.474-6.36-.115-10.687 7.348-4.748 1.602-6.99 1.023-10.59 5.892-1.595-4.64-3.888.044-6.692 1.843-2.8 1.802-6.575 6.28-7.08 6.09.115-1.302 1.734-6.033 1.734-6.033l-9.254 1.893s-.413.04-1.14.116c-.728.074-.533-5.523-2.288-5.32-1.753.204-6.77 7.04-8.48 7.253-1.71.214-2.25-2.174-3.72-1.966-1.472.21-4.34 7.21-5.383 7.396-1.043.186-5.176-4.255-8.718-3.635-18.22 6.566-21.113-12.95-23.947-1.95-3.817-2.07-3.156-.87-7.035.17-2.475.653-2.7-3.345-4.9-3.284-4.405.127-4.173 4.386-6.574 3.114-1.965-8.872-13.824-7.275-14.98-11.06-.94-3.946 5.137-3.928 7.103-6.602 1.502-3.86-1.57-5.323 4.53-9.046 7.948-5.498 3.378-7.57 4.772-11.703 2.493-5.966 2.507-7.423.425-12.686 0 0-6.19-17.032-7.404-17.032-3.7-1.064-3.7 6.268-9.14 8.28-11.104 3.784-30.71-9.582-34.124-9.582-3.123.06-17.588 3.503-17.042-3.872-2.162 7.17-10.115 1.685-10.605 1.685-7.403 0-4.57 5.855-9.545 5.618-2.256-.768-25.044-2.128-25.044-2.128v3.785l-14.807-7.57-12.956-3.784c-11.104-3.786-5.55-13.248-24.06-7.57v-11.355h-9.254c3.7-22.71 0-11.354-1.85-32.172l-7.405 1.893c-7.402-10.232 10.296-8.28-5.55-15.14 0 0 .288-11.298-3.703-7.57-.81.472 1.85 5.676 1.85 5.676-14.806-1.892-18.508-5.677-18.508-20.817 0 0 12.203 1.774 11.104 0-1.735-2.84-3.99-21.29-3.586-22.532-.173-2.484 11.337-8.752 9.11-14.727 1.417-.53 5.58-.59 5.58-.59" fill="#fff"/> - <path stroke-linejoin="round" d="M595.51 313.51c-.592 1.332-.487 2.662.125 3.612 1.1-1.648.17-2.408-.125-3.612z" stroke="#fff" stroke-linecap="round" stroke-width="2.703" fill="none"/> - <path stroke-linejoin="round" d="M119.51 164.09s-3.104-.38-2.407 2.344c1.014-2.09 2.344-2.217 2.407-2.344zm.7-6.33c-1.71.064-3.8-.253-3.104 2.47 1.014-2.09 3.04-2.343 3.104-2.47zm11.68 36.29s2.66-.19 1.964 2.534c-1.014-2.09-1.9-2.407-1.964-2.534z" stroke="#fff" stroke-width="2.534" fill="none"/> - </g> -</svg> diff --git a/img/flags/1x1/ar.svg b/img/flags/1x1/ar.svg deleted file mode 100644 index e5112be..0000000 --- a/img/flags/1x1/ar.svg +++ /dev/null @@ -1,31 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" height="512" width="512" viewBox="0 0 512 512"> - <path fill="#74acdf" d="M0 0h512v512H0z"/> - <path fill="#fff" d="M0 170.67h512v170.67H0z"/> - <g id="c" transform="translate(-153.6) scale(1.024)"> - <path id="a" d="M396.84 251.31l28.454 61.992s.49 1.185 1.28.859c.79-.327.299-1.512.299-1.512l-23.715-63.956m-.68 24.12c-.347 9.428 5.452 14.613 4.694 23.032-.757 8.42 3.867 13.18 4.94 16.454 1.073 3.274-1.16 5.232-.198 5.698.963.466 3.07-2.12 2.383-6.775-.687-4.655-4.22-6.037-3.39-16.32.83-10.283-4.206-12.678-2.98-22.058" fill="#f6b40e" stroke="#85340a" stroke-width="1.112"/> - <use height="100%" width="100%" xlink:href="#a" transform="rotate(22.5 400 250)"/> - <use height="100%" width="100%" xlink:href="#a" transform="rotate(45 400 250)"/> - <use height="100%" width="100%" xlink:href="#a" transform="rotate(67.5 400 250)"/> - <path id="b" d="M404.31 274.41c.453 9.054 5.587 13.063 4.579 21.314 2.213-6.525-3.124-11.583-2.82-21.22m-7.649-23.757l19.487 42.577-16.329-43.887" fill="#85340a"/> - <use height="100%" width="100%" xlink:href="#b" transform="rotate(22.5 400 250)"/> - <use height="100%" width="100%" xlink:href="#b" transform="rotate(45 400 250)"/> - <use height="100%" width="100%" xlink:href="#b" transform="rotate(67.5 400 250)"/> - </g> - <use height="100%" width="100%" xlink:href="#c" transform="rotate(90 256 256)"/> - <use height="100%" width="100%" xlink:href="#c" transform="rotate(180 256 256)"/> - <use height="100%" width="100%" xlink:href="#c" transform="rotate(-90 256 256)"/> - <circle r="28.445" cy="256" cx="256" fill="#f6b40e" stroke="#85340a" stroke-width="1.536"/> - <path id="h" d="M265.697 249.917c-1.942 0-3.802.842-4.896 2.592 2.188 1.97 7.021 2.183 10.304-.224-1.422-1.53-3.466-2.368-5.408-2.368zm-.032.448c1.89-.034 3.658.834 3.904 1.696-2.188 2.407-5.684 2.198-7.872.448.958-1.531 2.498-2.117 3.968-2.144z" fill="#843511"/> - <use height="100%" width="100%" xlink:href="#d" transform="matrix(-1 0 0 1 512.256 0)"/> - <use height="100%" width="100%" xlink:href="#e" transform="matrix(-1 0 0 1 512.256 0)"/> - <use height="100%" width="100%" xlink:href="#f" transform="translate(19.315)"/> - <use height="100%" width="100%" xlink:href="#g" transform="matrix(-1 0 0 1 512.256 0)"/> - <path d="M251.648 259.932c-.935.17-1.6 1-1.6 1.952 0 1.087.899 1.952 1.984 1.952.642 0 1.231-.304 1.6-.832.757.57 1.807.63 2.368.64.086.002.198 0 .256 0 .561-.01 1.61-.07 2.368-.64.369.528.958.832 1.6.832 1.085 0 1.984-.865 1.984-1.952 0-.951-.665-1.781-1.6-1.952.525.185.864.693.864 1.248a1.31 1.31 0 0 1-1.312 1.312 1.323 1.323 0 0 1-1.312-1.248c-.214.426-1.059 1.695-2.72 1.76-1.661-.065-2.506-1.333-2.72-1.76a1.323 1.323 0 0 1-1.312 1.248 1.31 1.31 0 0 1-1.312-1.312c0-.555.339-1.063.864-1.248zM253.788 265.759c-2.19 0-3.054 1.983-5.024 3.296 1.095-.437 1.956-1.3 3.488-2.176 1.532-.875 2.838.192 3.712.192h.032c.874 0 2.18-1.067 3.712-.192 1.533.876 2.426 1.74 3.52 2.176-1.97-1.313-2.867-3.296-5.056-3.296-.437 0-1.302.236-2.176.672h-.032c-.874-.437-1.739-.672-2.176-.672z" fill="#85340a"/> - <path d="M253.05 268.35c-.863.038-2.006.211-3.647.703 3.94-.874 4.809.448 6.56.448h.032c1.75 0 2.62-1.323 6.56-.448-4.377-1.312-5.248-.448-6.56-.448h-.032c-.82 0-1.472-.32-2.912-.256z" fill="#85340a"/> - <path d="M249.6 269.025c-.254.003-.531.005-.832.032 4.596.438 2.387 3.072 7.2 3.072H256c4.813 0 2.636-2.634 7.232-3.072-4.814-.437-3.292 2.4-7.232 2.4h-.032c-3.694 0-2.556-2.48-6.368-2.432zM259.942 276.132a3.94 3.94 0 0 0-3.938-3.939 3.94 3.94 0 0 0-3.939 3.939 4.05 4.05 0 0 1 3.939-3.112 4.047 4.047 0 0 1 3.938 3.112z" fill="#85340a"/> - <path id="e" d="M238.316 249.876c5.032-4.375 11.376-5.032 14.878-1.75.857 1.148 1.406 2.376 1.632 3.656.44 2.492-.338 5.183-2.29 7.942.22 0 .658.218.877.437 1.737-3.322 2.352-6.734 1.782-9.98a14.147 14.147 0 0 0-.686-2.493c-4.814-3.938-11.377-4.376-16.19 2.189z" fill="#85340a"/> - <path id="d" d="M246.19 248.566c2.843 0 3.5.657 4.814 1.75 1.314 1.095 1.97.875 2.188 1.095.217.22 0 .874-.437.655-.437-.22-1.314-.655-2.625-1.75-1.314-1.095-2.625-1.094-3.939-1.094-3.938 0-6.126 3.282-6.563 3.063-.437-.22 2.188-3.72 6.563-3.72z" fill="#85340a"/> - <use height="100%" width="100%" xlink:href="#h" transform="translate(-19.641)"/> - <circle id="f" cy="252.058" cx="246.313" r="1.969" fill="#85340a"/> - <path id="g" d="M240.937 253.379c3.72 2.845 7.44 2.626 9.627 1.312 2.188-1.312 2.188-1.75 1.751-1.75-.436 0-.873.438-2.624 1.312-1.752.877-4.376.877-8.752-.874z" fill="#85340a"/> -</svg> diff --git a/img/flags/1x1/as.svg b/img/flags/1x1/as.svg deleted file mode 100644 index 81e28e2..0000000 --- a/img/flags/1x1/as.svg +++ /dev/null @@ -1,33 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" height="512" width="512" viewBox="0 0 512 512"> - <defs> - <clipPath id="a"> - <path fill="gray" d="M496.06 15.937h496.06v496.06H496.06z"/> - </clipPath> - </defs> - <g clip-path="url(#a)" transform="translate(-512 -16.45) scale(1.032)"> - <path fill="#006" d="M0 15.937h992.13v496.06H0z"/> - <path d="M0 263.97L992.13 512V15.94L0 263.97z" fill-rule="evenodd" fill="#bd1021"/> - <path d="M992.13 42.512v442.91L106.3 263.962l885.83-221.46z" fill-rule="evenodd" fill="#fff"/> - <g stroke="#000"> - <path stroke-linejoin="round" d="M825.487 319.59s-6.193-5.07 1.127-13.234c-3.942-3.378-.282-9.853-.282-9.853s-6.757-2.534.282-12.95c-5.068-3.38-2.816-10.982-2.816-10.982s-16.61-6.193-.844-12.104c-12.95 5.63-25.058-7.603-25.058-7.603l-18.863.564c-3.2-15.67-28.07-2.06-9.58-47.01-4.787-.846-10.136-2.253-15.485 1.688-5.35 3.94-20.553 12.387-29.562 3.94s5.91-20.552 6.194-20.833c.28-.28 19.99-10.417 22.804-17.173-.28-5.07-6.475-9.01-.845-19.99 6.475-10.418 46.17-20.273 64.2-23.65 8.726-3.943 12.668-11.544 12.668-11.544l1.97 7.32s39.98-11.825 41.95-17.456.846 5.068.846 5.068c15.766-1.408 35.755-14.92 38.57-8.728 13.233-2.534 38.573-13.795 38.573-13.795s8.727-.28 2.533 9.29c3.942 6.195-1.126 11.544-1.407 11.544-.283 0 1.688 6.193-3.38 9.572 1.69 5.35-3.097 9.572-3.097 9.572s2.254 6.476-6.756 9.854c.845 5.63-5.068 6.757-5.068 6.757s.845 5.913-3.097 8.447c0 4.504-4.504 6.757-4.504 6.757s2.815 1.688-1.126 4.503c-3.94 2.816-44.765 27.873-44.765 27.592 0-.282 29.843 5.35 31.813 6.475s24.495 16.05 24.495 16.05l-22.806 28.153s-25.338-2.815-26.464-1.408 5.35 1.97 6.756 4.223c1.41 2.252 3.66 7.603 8.165 7.04 4.504-.565-8.447 8.164-16.893 9.01 0 3.096 10.698 3.377 13.514.844 2.817-2.535-6.757 7.32-7.883 8.727s12.67-1.972 12.67-1.972-2.253 9.29-14.358 12.107c4.784 7.883 2.813 12.95 2.532 12.95s-7.884-7.883-15.204-6.475c1.97 7.602 7.884 14.64 9.574 15.767 1.688 1.126-13.233.844-15.204-3.38s-3.66 10.136 1.69 14.642c-6.194.28-11.544-3.38-11.544-3.38s-3.66 8.445-1.126 12.67c2.534 4.223-8.728-8.448-8.728-8.448l-21.397 9.01-4.787-8.165z" fill-rule="evenodd" stroke-width="1.706" fill="#9c3900"/> - <path d="M660.12 302.828c.5 0 31.083-.502 45.123-8.524 7.02 11.03 16.545 18.55 16.545 18.55l4.512-16.042s11.03.5 12.033 3.008c-1.504 3.007-2.005 7.018-2.005 7.018s7.52.503 8.02 1.504c.503 1.004-2.004 9.526-2.004 9.526l32.087 7.52s2.508-12.533 5.015-11.03c2.507 1.505 13.537 17.047 29.08 18.05s16.544-13.036 16.544-13.036l3.51 2.007s6.516-14.04 7.52-14.04 2.506 2.006 11.03 2.006c2.506 3.008 3.51 10.026 3.51 10.026s-9.528 9.527-6.52 17.048 3.51 5.514 3.51 5.514l69.19 16.545s3.51 5.515-2.507 8.523c0 .5-69.69-16.044-69.69-16.044s-6.52 7.52-11.532 6.015-1.503 3.008-1.503 3.008L906.79 366s5.517 7.02 1.506 9.025c-5.014.5-81.222-5.014-81.222-5.014s-4.512 9.527-9.525 1.505c-3.51 5.515-7.522-1.504-7.522-1.504s-6.517 5.015-7.52-.5c-5.516 4.01-9.025-2.507-9.025-2.507l-32.088-2.006-2.005 3.008s5.515 1.504-3.008 5.015c-8.523 3.51 51.138 2.005 52.643 2.505 1.504.503-4.01 5.015-4.01 5.015s30.583 2.005 36.097-4.512c5.516-6.52-2.005 8.522-2.005 8.522s24.066-1.002 24.066-2.005-.502 7.52-17.046 6.518c10.026 6.518 22.56 10.528 22.56 10.528s-12.534 3.01-27.073-.5c2.506 6.518 13.537 12.534 13.537 12.534s-8.02 7.02-26.07-10.028c5.014 9.025 1.002 12.536.5 11.532-.5-1.003-9.023-13.537-29.078-18.05 12.534 8.023 7.018 11.533 7.018 11.533s-6.517-11.53-17.046 0c-4.01-10.528-19.553-16.544-38.605-17.547-6.017-7.02-9.527-5.014-23.564-9.025-8.022-9.024-19.554-19.05-19.554-19.05s.502-13.54 14.038-12.034c1.504 4.512 1.504 3.008 1.504 3.008s15.042-5.516 19.554 2.005c6.518-11.532 15.542-1.724 17.046 2.286 4.32.633 26.07 1.223 26.07 1.223s-2.506-4.512-1.002-4.01c1.504.5 13.537-4.512 13.036-6.017-.502-1.505-1.003-6.518 1.002-6.017 2.006.5-17.046-2.507-27.575 5.516-3.51-3.512-1.003-13.038-1.003-13.038l-31.084-6.517-1.504 8.022s-9.025 1.504-8.523-.5c.502-2.008-2.005 7.017-2.005 7.017s-12.033-3.008-12.033-3.51 3.51-18.05 3.51-17.548c0 .503-10.028 1.003-24.066 11.532-4.01-12.534-35.597-29.08-35.597-29.58z" fill-rule="evenodd" stroke-width="1.82" fill="#ffc221"/> - <path d="M736.328 307.346l-6.518 29.08m12.533-18.052l-2.005 9.526m34.094-2.005l-3.008 9.025m58.663 52.136c-.5 0-16.043 2.005-18.05 1.504-2.004-.5 24.568 8.022 24.568 11.53m-34.595-9.512s-15.542-10.027-18.048-9.025c-2.507 1.003 15.542-.5 17.046-2.005m-31.088-.504s-16.043.5-17.547-1.003 15.542 11.03 18.55 10.03m-32.089-16.056c-.5 0-11.03-4.01-15.542-5.015 4.01 4.012 7.02 9.527 17.046 11.532m2.508-13.028c-.502-1.003-20.055-7.02-20.055-10.028 4.513 1.505 11.03 3.51 17.047 2.005m106.792-15.043l-2.005 9.023" stroke-width="1.82" fill="none"/> - <path d="M699.226 261.717s-21.058 18.048 0 28.577c1.003-7.02 2.507-8.02 2.507-8.02s17.547 6.516 28.076-9.026c-4.513-6.517-12.535-4.01-12.535-4.01s-16.546 0-18.05-7.52z" fill-rule="evenodd" stroke-width="1.82" fill="#ffc221"/> - <path d="M716.775 269.743l-14.54 12.534m59.319 74.519s3.352 3.695.343 8.207m70.197-4.508l-5.515.502m-39.609-3.517l10.027 1.503m16.943-27.287s.282 10.136-8.164 9.854c-8.446-.282-5.632.282-5.632.282" stroke-width="1.82" fill="none"/> - <path d="M820.424 330.003s3.378 1.126 2.534 3.66c-.845 2.534.844 9.854-9.01 16.893-10.418 2.252-9.29-8.727-9.29-8.727" stroke-width="1.82" fill="none"/> - <path d="M824.082 333.102s6.194-3.66 7.038 2.253c.844 5.91-5.067 16.892-9.29 18.582-4.225 1.688-9.01-.283-8.448-3.097m18.302-15.2s5.632-4.505 7.32 1.408c1.69 5.912-4.504 19.145-7.04 19.426m7.596-19.428s2.815-1.407 4.785.28m-13.795 19.989c-1.125.28-5.91.562-7.6-3.097m-17.73-6.758c-.282 0-5.913.283-5.913.283m27.586 21.965l-.562-9.29-2.25-3.098-3.943 3.942s-.564 9.29-2.252 10.136m2.251-10.425c-.28-.562-3.097-5.91-3.097-5.91l-4.787 5.91s-.562 8.447-2.252 9.292m2.247-9.579c0-.28-1.97-5.63-1.97-5.63s-5.63 3.097-6.195 5.35c-.562 2.25-.845 8.445-2.252 9.01m2.255-10.136s.564-5.067-1.126-5.067-9.29 7.038-9.572 13.232" stroke-width="1.82" fill="none"/> - <path stroke-linejoin="round" d="M699.918 261.868s2.815-2.816 3.66-6.194c.845-3.38-1.126-7.04 2.253-10.136 3.38-3.097 47.862-21.96 51.523-25.62 3.66-3.66 10.417-11.544 11.262-13.233.844-1.69 3.378 8.446-4.224 12.95 8.166-2.252 13.515-4.785 16.893-3.66-3.38 4.787-12.387 12.67-16.61 12.67 9.854-3.66 18.862-6.757 21.397-4.786 2.533 1.97-12.107 11.825-18.02 12.387 9.855-2.533 23.088-6.475 24.776-2.252-5.35 1.69-3.66 3.095-14.64 9.29-1.407 1.128-8.446 1.408-8.446 1.408 8.446-.845 19.99-4.223 21.115 1.97-6.756 2.534-9.29 5.914-14.92 7.32-5.632 1.41-18.583 3.943-26.466 7.04-7.884 3.097-19.428 12.106-19.428 12.106s-25.057.844-25.057.562c0-.282-4.786-11.543-5.068-11.824z" fill-rule="evenodd" stroke-width="1.82" fill="#fff"/> - <path d="M711.742 259.902s.282-5.63 2.816-7.6c2.533-1.972 15.203-6.76 18.02-10.982 2.814-4.223-4.224 7.32-3.098 10.417m-12.67-.284s6.194 2.254 4.786 7.04" stroke-width="1.82" fill="none"/> - <path d="M724.13 254.694a4.646 4.646 0 1 1-9.29.003 4.646 4.646 0 0 1 9.289-.004z" stroke-width="1.58" fill="none"/> - <path d="M914.738 244.697l48.707 9.29s5.35-6.193 2.534-9.57c7.32-1.69 5.348-11.263 5.348-11.263s8.446-3.66 1.408-12.107c4.788-4.786-1.126-8.446-1.126-8.446s1.97-8.445-4.223-9.29c1.69-6.756-10.7-9.01-10.7-9.01s-25.62 7.04-43.638 7.603c5.91 5.912-2.254 9.572-2.254 9.572s4.787 3.38 3.38 6.194c-1.41 2.815.843 5.912-5.35 7.883 8.164 3.66-.845 9.853-.845 9.853s9.01 6.194 6.758 9.29z" fill-rule="evenodd" stroke-width="1.82" fill="#fff"/> - <path d="M909.947 234.283s43.077 5.068 45.048 5.068 9.572 2.535 10.98 5.07M912.2 231.744l59.968 1.407m-59.682-2.813s56.87-3.378 60.813-9.29m-59.134-3.098s57.154-6.193 57.718-5.35m-59.683-1.688s55.464-8.728 56.026-7.32m-214.251-28.435s17.456 19.145 15.766 32.095" stroke-width="1.82" fill="none"/> - <path d="M768.615 197.117s5.63 8.164 7.883 9.01 21.96 1.97 23.087 10.416c1.126 5.35-4.223 3.66-3.378 7.6 1.407 5.07 14.64 11.544 29 3.943m-13.232 3.944s11.824 17.457 29.28-1.406m-9.011 7.603s14.358 7.602 26.183-12.106m-15.209 13.785s7.038 5.913 21.68-1.97m20.277-7.884s21.678 4.504 23.087 5.912m-14.925-10.689c.28 0 15.203.563 15.203.563m-24.498-9.014s25.9-1.69 29.28 3.66M872.78 208.66s36.32 1.407 38.01 3.378m-29.847 33.778s6.194-1.688 7.04-.843M866.87 261.02s8.166 7.04 18.584 3.943m-14.079 7.892s9.29 4.223 20.272 1.688m-17.173 5.341s9.29 6.194 15.485 5.067m-19.703-1.395s6.475 4.786 6.756 7.32m-15.764-1.696s1.97 10.134 9.01 13.794m-13.801-9.291s-3.097 13.233 4.787 21.398m-12.949-10.983c0 .28-.562 6.193-.28 6.757m-50.399-57.995l15.204-.846s5.63-2.252 1.688-5.91m1.972 3.384c.282 0 14.358 1.126 18.02 5.35 3.658 4.222 8.163 12.668 10.697 14.077 2.534 1.407 3.097-.564 3.097-.564m-6.196-2.251s-7.6 12.95-1.688 16.892m-2.543-2.535s-6.756 9.01-1.407 13.514m-1.405-1.134s-5.35 8.73 1.128 14.64m-3.489-37.789c-.363.363-6.54 4.723-8.72 3.634m2.182 10.166s2.543 2.542 4.723 2.18m-4.422 11.032l4.057 2.783m-3.511 7.331l3.51 2.118m-67.101-140.2s7.4 3.85 13.323 0c5.92-3.85 34.343-18.355 41.745-20.724 7.4-2.37 11.546-15.988 13.027-21.908m-5.624 15.987l41.45-12.14s6.81-5.624 7.105-15.986m-2.968 11.249s41.45-4.144 41.45-19.54m-6.508 10.658s43.522-11.842 47.667-16.283" stroke-width="1.82" fill="none"/> - <path d="M785.018 178.206s26.35-13.62 30.495-15.1c4.144-1.48 13.617-13.32-.593-13.32" stroke-width="1.82" fill="none"/> - <path d="M797.753 183.535c.296 0 21.612-13.916 28.717-15.69 3.85-5.33 1.777-10.955-4.736-9.77" stroke-width="1.82" fill="none"/> - <path d="M828.245 164.29c.592-.295 11.547-.59 7.698 7.994-5.624 4.145-29.903 16.284-29.903 16.284m16.58-33.455l46.19-15.396s3.848-7.994-1.776-9.178m38.491-13.915c0 .296 5.923 3.553 2.37 8.882-6.514 3.85-37.304 11.25-37.304 11.25m81.709-24.868l-43.52 12.14m40.258-2.37l-37.895 11.547m34.647-2.073l-33.455 10.066m27.231-.592c-.89 0-24.87 7.4-24.87 7.4m19.547.002l-15.396 6.217m11.547 2.072c-.593 0-13.323 5.625-13.323 5.625m9.474 1.184l-11.842 5.625m-8.591 7.107s1.48.592 1.185 2.368m-31.09 13.914s5.034 1.777.296 6.514c-2.368 3.257-9.177 2.37-13.322 8.29m45.306-81.121s6.22 1.48 1.48 9.474c-12.435 4.737-37.6 12.435-37.6 12.435s-1.183 2.072-4.44 3.85c-3.256 1.775-39.08 11.84-39.08 11.84m81.715-28.422s6.81 2.962 0 7.995c-7.698 4.44-34.64 12.73-34.64 12.73s-.296 2.37-1.48 3.257c-1.184.888-36.71 12.73-36.71 12.73" stroke-width="1.82" fill="none"/> - <path d="M912.336 142.974s7.106 2.072.89 7.993c-7.403 4.44-31.088 12.435-31.088 12.435s-2.368 2.96-6.217 4.145c-3.848 1.184-28.42 11.25-28.42 11.25m66.609-27.829c2.074.888 7.698 1.776.89 7.106-7.994 3.552-27.534 11.25-27.534 11.25l-1.777 3.257-31.086 13.323m61.282-26.942s2.96 3.553-3.553 7.698c-7.106 3.85-22.5 9.77-22.5 9.77m22.504-9.18s3.257 2.074-.887 5.034c-4.74 2.37-23.39 12.14-23.39 12.14l-12.14 7.992" stroke-width="1.82" fill="none"/> - <path d="M869.697 140.013c0 .296 5.033 4.44 3.256 9.178 4.442 3.258 3.553 6.81 3.553 6.81s6.217 3.553 5.33 8.586c6.217 1.48 5.92 5.034 5.92 5.034l-2.072 3.256s6.217-.296.888 7.698c3.257 1.776 1.777 3.85 1.777 3.85m-1.782-3.555c-.89 0-21.612 7.698-26.942 12.435" stroke-width="1.82" fill="none"/> - <path d="M836.543 171.693s6.217-.296 5.33 6.513c7.106-2.37 5.625 4.44 5.625 4.44s8.29-3.256 6.81 7.106c5.328-1.184 4.44 4.145 4.44 4.145s4.737-.296 4.737 2.37c3.257-2.962 6.81-1.482 6.81-1.482s2.368-3.256 5.624-2.368m-33.752-14.507c0 .592-27.83 15.987-27.83 15.987m33.153-10.955l-21.02 13.027m28.13-6.514c0 .297-18.356 10.955-18.356 10.955m22.506-6.81s-13.027 10.66-15.987 10.067m20.423-6.81s-7.402 5.626-13.62 8.29m21.318-10.657s2.368 2.96-12.434 10.657" stroke-width="1.82" fill="none"/> - </g> - </g> -</svg> diff --git a/img/flags/1x1/at.svg b/img/flags/1x1/at.svg deleted file mode 100644 index fc25f26..0000000 --- a/img/flags/1x1/at.svg +++ /dev/null @@ -1,6 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" height="512" width="512" viewBox="0 0 512 512"> - <g fill-rule="evenodd"> - <path fill="#fff" d="M512 512H0V0h512z"/> - <path fill="#df0000" d="M512 512H0V341.33h512zm0-341.2H0V.13h512z"/> - </g> -</svg> diff --git a/img/flags/1x1/au.svg b/img/flags/1x1/au.svg deleted file mode 100644 index b868658..0000000 --- a/img/flags/1x1/au.svg +++ /dev/null @@ -1,9 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" height="512" width="512" viewBox="0 0 512 512"> - <g stroke-width="1pt"> - <path fill="#006" d="M0 0h512v512H0z"/> - <path fill="#fff" d="M0 0v27.95L307.037 250h38.647v-27.95L38.647 0H0zm345.684 0v27.95L38.647 250H0v-27.95L307.037 0h38.647z"/> - <path fill="#fff" d="M144.035 0v250h57.614V0h-57.615zM0 83.333v83.333h345.684V83.333H0z"/> - <path fill="#c00" d="M0 100v50h345.684v-50H0zM155.558 0v250h34.568V0h-34.568zM0 250l115.228-83.334h25.765L25.765 250H0zM0 0l115.228 83.333H89.463L0 18.633V0zm204.69 83.333L319.92 0h25.764L230.456 83.333H204.69zM345.685 250l-115.228-83.334h25.765l89.464 64.7V250z"/> - <path fill-rule="evenodd" fill="#fff" d="M54.886 368.64l40.665 15.4 13.32-41.403 13.32 41.402 40.666-15.4-24.06 36.223 37.395 22.197-43.326 3.767 5.97 43.082-29.963-31.528-29.96 31.527 5.968-43.083-43.327-3.767 37.397-22.197M403.807 476.413l-18.823 1.638 2.597 18.712-13.02-13.692-13.02 13.692 2.598-18.71-18.823-1.64 16.247-9.645-10.458-15.736 17.675 6.693 5.78-17.99 5.783 17.99 17.675-6.692-10.458 15.737m16.247-270.353l-18.823 1.638 2.597 18.71-13.02-13.69-13.02 13.69 2.598-18.71-18.823-1.638 16.247-9.645-10.458-15.737 17.675 6.69 5.78-17.985 5.783 17.986 17.675-6.69-10.458 15.736m-88.752 123.393l-18.823 1.638 2.597 18.71-13.02-13.69-13.02 13.69 2.598-18.71-18.823-1.638 16.247-9.646-10.458-15.736 17.675 6.692 5.783-17.99 5.78 17.99 17.676-6.692-10.46 15.735m214.57-18.352l-18.83 1.638 2.59 18.71-13.02-13.69-13.02 13.69 2.59-18.71-18.795-1.638 16.275-9.646-10.48-15.736 17.69 6.692 5.74-17.99 5.81 17.99 17.64-6.692-10.43 15.736m-64.33 82.494l-10.29 6.377 2.892-11.752-9.247-7.805 12.074-.89 4.57-11.206 4.57 11.207 12.076.89-9.247 7.804 2.89 11.753"/> - </g> -</svg> diff --git a/img/flags/1x1/aw.svg b/img/flags/1x1/aw.svg deleted file mode 100644 index e7994af..0000000 --- a/img/flags/1x1/aw.svg +++ /dev/null @@ -1,186 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" height="512" width="512" viewBox="0 0 512 512"> - <defs> - <clipPath id="a"> - <path fill="gray" d="M0 0h512v512H0z"/> - </clipPath> - </defs> - <g clip-path="url(#a)"> - <path fill="#39c" d="M0 0v512.006h768.01V0H0z"/> - <path fill="#ff0" d="M0 341.338v28.445h768.01v-28.445H0zm0 56.889v28.445h768.01v-28.445H0z"/> - <path fill="#9cc" d="M122.065 28.067l2.38 2.38-2.38-2.38zm-2.38 4.76l2.38 2.38-2.38-2.38m4.76 0l2.38 2.38-2.38-2.38z"/> - <path fill="#ccf" d="M119.685 35.208l2.38 2.38-2.38-2.38m4.76 0l2.38 2.38-2.38-2.38z"/> - <path fill="#6cc" d="M117.305 39.97l2.38 2.38-2.38-2.38z"/> - <path fill="#c66" d="M122.065 39.97l2.38 2.38-2.38-2.38z"/> - <path fill="#6cc" d="M126.826 39.97l2.38 2.38-2.38-2.38z"/> - <path fill="#ccf" d="M117.305 42.35l2.38 2.38-2.38-2.38zm9.521 0l2.38 2.38-2.38-2.38z"/> - <path fill="#fcc" d="M119.685 44.73l2.38 2.38-2.38-2.38m4.76 0l2.38 2.38-2.38-2.38z"/> - <path fill="#6cc" d="M114.924 47.11l2.38 2.38-2.38-2.38z"/> - <path d="M121.673 32.904L104.986 96.16l-63.442 17.23 63.26 16.51 16.87 63.257L138.54 129.9l63.26-16.87-63.26-16.87-16.867-63.256z" stroke="#fff" stroke-width="2.975" fill="#c00"/> - <path fill="#6cc" d="M129.207 47.11l2.38 2.38-2.38-2.38z"/> - <path fill="#9cf" d="M114.924 49.49l2.38 2.38-2.38-2.38m14.283 0l2.38 2.38-2.38-2.38z"/> - <path fill="#fcc" d="M117.305 51.87l2.38 2.38-2.38-2.38m9.52 0l2.382 2.38-2.38-2.38z"/> - <path fill="#69c" d="M112.544 54.25l2.38 2.38-2.38-2.38z"/> - <path fill="#c33" d="M118.097 55.84l.794 1.585-.793-1.586m9.522 0l.793 1.585-.794-1.586z"/> - <path fill="#69c" d="M131.587 54.25l2.38 2.38-2.38-2.38z"/> - <path fill="#9cf" d="M112.544 56.63l2.38 2.382-2.38-2.38m19.043 0l2.38 2.38-2.38-2.38z"/> - <path fill="#fcc" d="M114.924 59.012l2.38 2.38-2.38-2.38m14.283 0l2.38 2.38-2.38-2.38z"/> - <path fill="#69c" d="M110.163 61.392l2.38 2.38-2.38-2.38zm23.805 0l2.38 2.38-2.38-2.38z"/> - <path fill="#9cc" d="M110.163 63.773l2.38 2.38-2.38-2.38m23.805 0l2.38 2.38-2.38-2.38z"/> - <path fill="#cff" d="M110.163 66.153l2.38 2.38-2.38-2.38m23.805 0l2.38 2.38-2.38-2.38z"/> - <path fill="#69c" d="M107.783 68.533l2.38 2.38-2.38-2.38z"/> - <path fill="#fcc" d="M112.544 68.533l2.38 2.38-2.38-2.38m19.043 0l2.38 2.38-2.38-2.38z"/> - <path fill="#69c" d="M136.348 68.533l2.38 2.38-2.38-2.38z"/> - <path fill="#9cc" d="M107.783 70.914l2.38 2.38-2.38-2.38z"/> - <path fill="#c33" d="M113.337 72.502l.793 1.586-.793-1.586m19.043 0l.793 1.586-.793-1.586z"/> - <path fill="#9cc" d="M136.348 70.914l2.38 2.38-2.38-2.38z"/> - <path fill="#cff" d="M107.783 73.294l2.38 2.38-2.38-2.38m28.565 0l2.38 2.38-2.38-2.38z"/> - <path fill="#fcc" d="M110.163 75.675l2.38 2.38-2.38-2.38m23.805 0l2.38 2.38-2.38-2.38z"/> - <path fill="#9cc" d="M105.403 78.055l2.38 2.38-2.38-2.38z"/> - <path fill="#c33" d="M110.956 79.643l.794 1.586-.794-1.587m23.804 0l.794 1.586-.794-1.587z"/> - <path fill="#9cc" d="M138.728 78.055l2.38 2.38-2.38-2.38z"/> - <path fill="#ccf" d="M105.403 80.435l2.38 2.38-2.38-2.38m33.325 0l2.38 2.38-2.38-2.38z"/> - <path fill="#fcc" d="M107.783 82.816l2.38 2.38-2.38-2.38m28.565 0l2.38 2.38-2.38-2.38z"/> - <path fill="#9cc" d="M103.022 85.196l2.38 2.38-2.38-2.38z"/> - <path fill="#c33" d="M108.576 86.784l.793 1.587-.794-1.586m28.565 0l.794 1.587-.793-1.586z"/> - <path fill="#9cc" d="M141.11 85.196l2.38 2.38-2.38-2.38z"/> - <path fill="#ccf" d="M103.022 87.577l2.38 2.38-2.38-2.38m38.087 0l2.38 2.38-2.38-2.38z"/> - <path fill="#fcc" d="M105.403 89.957l2.38 2.38-2.38-2.38m33.325 0l2.38 2.38-2.38-2.38z"/> - <path fill="#9cc" d="M100.642 92.337l2.38 2.38-2.38-2.38z"/> - <path fill="#c33" d="M105.403 92.337l2.38 2.38-2.38-2.38m33.325 0l2.38 2.38-2.38-2.38z"/> - <path fill="#9cc" d="M143.49 92.337l2.38 2.38-2.38-2.38m-49.99 2.38l2.38 2.38-2.38-2.38z"/> - <path fill="#ccf" d="M95.88 94.718l2.382 2.38-2.38-2.38m52.368 0l2.38 2.38-2.38-2.38z"/> - <path fill="#9cc" d="M150.63 94.718l2.38 2.38-2.38-2.38m-64.27 2.38l2.38 2.38-2.38-2.38z"/> - <path fill="#ccf" d="M88.74 97.098l2.38 2.38-2.38-2.38z"/> - <path fill="#fcc" d="M98.26 97.098l2.382 2.38-2.38-2.38z"/> - <path fill="#c33" d="M100.642 97.098l2.38 2.38-2.38-2.38m42.847 0l2.38 2.38-2.38-2.38z"/> - <path fill="#fcc" d="M145.87 97.098l2.38 2.38-2.38-2.38z"/> - <path fill="#ccf" d="M155.39 97.098l2.382 2.38-2.38-2.38z"/> - <path fill="#9cc" d="M157.77 97.098l2.382 2.38-2.38-2.38z"/> - <path fill="#69c" d="M76.838 99.48l2.38 2.38-2.38-2.38z"/> - <path fill="#9cc" d="M79.218 99.48l2.38 2.38-2.38-2.38z"/> - <path fill="#cff" d="M81.6 99.48l2.38 2.38-2.38-2.38z"/> - <path fill="#fcc" d="M91.12 99.48l2.38 2.38-2.38-2.38z"/> - <path fill="#c33" d="M95.088 100.27l1.587.795-1.587-.794m54.75 0l1.586.795-1.586-.794z"/> - <path fill="#fcc" d="M153.01 99.48l2.38 2.38-2.38-2.38z"/> - <path fill="#cff" d="M162.532 99.48l2.38 2.38-2.38-2.38z"/> - <path fill="#9cc" d="M164.913 99.48l2.38 2.38-2.38-2.38z"/> - <path fill="#69c" d="M167.293 99.48l2.38 2.38-2.38-2.38m-97.596 2.38l2.38 2.38-2.38-2.38z"/> - <path fill="#9cc" d="M72.077 101.86l2.38 2.38-2.38-2.38z"/> - <path fill="#cff" d="M74.457 101.86l2.38 2.38-2.38-2.38z"/> - <path fill="#fcc" d="M83.98 101.86l2.38 2.38-2.38-2.38z"/> - <path fill="#c33" d="M87.947 102.652l1.587.793-1.587-.793m69.032 0l1.586.793-1.587-.793z"/> - <path fill="#fcc" d="M160.152 101.86l2.38 2.38-2.38-2.38z"/> - <path fill="#cff" d="M169.673 101.86l2.38 2.38-2.38-2.38z"/> - <path fill="#9cc" d="M172.054 101.86l2.38 2.38-2.38-2.38z"/> - <path fill="#69c" d="M174.434 101.86l2.38 2.38-2.38-2.38m-111.88 2.38l2.382 2.38-2.38-2.38z"/> - <path fill="#9cf" d="M64.936 104.24l2.38 2.38-2.38-2.38z"/> - <path fill="#fcc" d="M76.838 104.24l2.38 2.38-2.38-2.38z"/> - <path fill="#c33" d="M80.806 105.032l1.587.794-1.587-.794m83.314 0l1.587.794-1.587-.794z"/> - <path fill="#fcc" d="M167.293 104.24l2.38 2.38-2.38-2.38z"/> - <path fill="#9cf" d="M179.195 104.24l2.38 2.38-2.38-2.38z"/> - <path fill="#69c" d="M181.575 104.24l2.38 2.38-2.38-2.38z"/> - <path fill="#6cc" d="M55.414 106.62l2.38 2.38-2.38-2.38z"/> - <path fill="#9cf" d="M57.795 106.62l2.38 2.38-2.38-2.38z"/> - <path fill="#fcc" d="M67.316 106.62l2.38 2.38-2.38-2.38zm109.499 0l2.38 2.38-2.38-2.38z"/> - <path fill="#9cf" d="M186.336 106.62l2.38 2.38-2.38-2.38z"/> - <path fill="#6cc" d="M188.717 106.62l2.38 2.38-2.38-2.38M48.273 109l2.38 2.38-2.38-2.38z"/> - <path fill="#ccf" d="M50.654 109l2.38 2.38-2.38-2.38z"/> - <path fill="#fcc" d="M60.175 109l2.38 2.38-2.38-2.38z"/> - <path fill="#c33" d="M64.143 109.793l1.587.793-1.587-.793m116.64 0l1.587.793-1.587-.793z"/> - <path fill="#fcc" d="M183.956 109l2.38 2.38-2.38-2.38z"/> - <path fill="#ccf" d="M193.477 109l2.38 2.38-2.38-2.38z"/> - <path fill="#6cc" d="M195.858 109l2.38 2.38-2.38-2.38z"/> - <path fill="#9cc" d="M41.132 111.38l2.38 2.38-2.38-2.38z"/> - <path fill="#ccf" d="M43.512 111.38l2.38 2.38-2.38-2.38z"/> - <path fill="#fcc" d="M53.034 111.38l2.38 2.38-2.38-2.38zm138.063 0l2.38 2.38-2.38-2.38z"/> - <path fill="#ccf" d="M200.62 111.38l2.38 2.38-2.38-2.38z"/> - <path fill="#9cc" d="M203 111.38l2.38 2.38-2.38-2.38m-166.63 2.38l2.38 2.38-2.38-2.38z"/> - <path fill="#c66" d="M48.273 113.76l2.38 2.38-2.38-2.38zm147.585 0l2.38 2.38-2.38-2.38z"/> - <path fill="#9cc" d="M207.76 113.76l2.38 2.38-2.38-2.38m-166.628 2.38l2.38 2.382-2.38-2.38z"/> - <path fill="#ccf" d="M43.512 116.14l2.38 2.382-2.38-2.38z"/> - <path fill="#fcc" d="M53.034 116.14l2.38 2.382-2.38-2.38m138.063 0l2.38 2.38-2.38-2.38z"/> - <path fill="#ccf" d="M200.62 116.14l2.38 2.382-2.38-2.38z"/> - <path fill="#9cc" d="M203 116.14l2.38 2.382-2.38-2.38z"/> - <path fill="#6cc" d="M48.273 118.522l2.38 2.38-2.38-2.38z"/> - <path fill="#ccf" d="M50.654 118.522l2.38 2.38-2.38-2.38z"/> - <path fill="#fcc" d="M60.175 118.522l2.38 2.38-2.38-2.38z"/> - <path fill="#c33" d="M64.143 119.314l1.587.794-1.587-.794m116.64 0l1.587.794-1.587-.794z"/> - <path fill="#fcc" d="M183.956 118.522l2.38 2.38-2.38-2.38z"/> - <path fill="#ccf" d="M193.477 118.522l2.38 2.38-2.38-2.38z"/> - <path fill="#6cc" d="M195.858 118.522l2.38 2.38-2.38-2.38m-140.444 2.38l2.38 2.38-2.38-2.38z"/> - <path fill="#9cf" d="M57.795 120.902l2.38 2.38-2.38-2.38z"/> - <path fill="#fcc" d="M67.316 120.902l2.38 2.38-2.38-2.38zm109.499 0l2.38 2.38-2.38-2.38z"/> - <path fill="#9cf" d="M186.336 120.902l2.38 2.38-2.38-2.38z"/> - <path fill="#6cc" d="M188.717 120.902l2.38 2.38-2.38-2.38z"/> - <path fill="#69c" d="M62.555 123.283l2.38 2.38-2.38-2.38z"/> - <path fill="#9cf" d="M64.936 123.283l2.38 2.38-2.38-2.38z"/> - <path fill="#fcc" d="M76.838 123.283l2.38 2.38-2.38-2.38z"/> - <path fill="#c33" d="M80.806 124.075l1.587.794-1.587-.795m83.314 0l1.587.794-1.587-.795z"/> - <path fill="#fcc" d="M167.293 123.283l2.38 2.38-2.38-2.38z"/> - <path fill="#9cf" d="M179.195 123.283l2.38 2.38-2.38-2.38z"/> - <path fill="#69c" d="M181.575 123.283l2.38 2.38-2.38-2.38m-111.878 2.38l2.38 2.38-2.38-2.38z"/> - <path fill="#9cc" d="M72.077 125.663l2.38 2.38-2.38-2.38z"/> - <path fill="#cff" d="M74.457 125.663l2.38 2.38-2.38-2.38z"/> - <path fill="#fcc" d="M83.98 125.663l2.38 2.38-2.38-2.38z"/> - <path fill="#c33" d="M87.947 126.456l1.587.793-1.587-.794m69.032 0l1.586.793-1.587-.794z"/> - <path fill="#fcc" d="M160.152 125.663l2.38 2.38-2.38-2.38z"/> - <path fill="#cff" d="M169.673 125.663l2.38 2.38-2.38-2.38z"/> - <path fill="#9cc" d="M172.054 125.663l2.38 2.38-2.38-2.38z"/> - <path fill="#69c" d="M174.434 125.663l2.38 2.38-2.38-2.38m-97.596 2.38l2.38 2.38-2.38-2.38z"/> - <path fill="#9cc" d="M79.218 128.043l2.38 2.38-2.38-2.38z"/> - <path fill="#cff" d="M81.6 128.043l2.38 2.38-2.38-2.38z"/> - <path fill="#fcc" d="M91.12 128.043l2.38 2.38-2.38-2.38z"/> - <path fill="#c33" d="M95.088 128.836l1.587.794-1.587-.794m54.75 0l1.586.794-1.586-.794z"/> - <path fill="#fcc" d="M153.01 128.043l2.38 2.38-2.38-2.38z"/> - <path fill="#cff" d="M162.532 128.043l2.38 2.38-2.38-2.38z"/> - <path fill="#9cc" d="M164.913 128.043l2.38 2.38-2.38-2.38z"/> - <path fill="#69c" d="M167.293 128.043l2.38 2.38-2.38-2.38z"/> - <path fill="#9cc" d="M86.36 130.424l2.38 2.38-2.38-2.38z"/> - <path fill="#ccf" d="M88.74 130.424l2.38 2.38-2.38-2.38z"/> - <path fill="#fcc" d="M98.26 130.424l2.382 2.38-2.38-2.38z"/> - <path fill="#c33" d="M100.642 130.424l2.38 2.38-2.38-2.38m42.847 0l2.38 2.38-2.38-2.38z"/> - <path fill="#fcc" d="M145.87 130.424l2.38 2.38-2.38-2.38z"/> - <path fill="#ccf" d="M155.39 130.424l2.382 2.38-2.38-2.38z"/> - <path fill="#9cc" d="M157.77 130.424l2.382 2.38-2.38-2.38m-64.27 2.38l2.38 2.38-2.38-2.38z"/> - <path fill="#ccf" d="M95.88 132.804l2.382 2.38-2.38-2.38m52.368 0l2.38 2.38-2.38-2.38z"/> - <path fill="#9cc" d="M150.63 132.804l2.38 2.38-2.38-2.38m-49.988 2.38l2.38 2.38-2.38-2.38z"/> - <path fill="#c33" d="M105.403 135.185l2.38 2.38-2.38-2.38m33.325 0l2.38 2.38-2.38-2.38z"/> - <path fill="#9cc" d="M143.49 135.185l2.38 2.38-2.38-2.38z"/> - <path fill="#fcc" d="M105.403 137.565l2.38 2.38-2.38-2.38m33.325 0l2.38 2.38-2.38-2.38z"/> - <path fill="#ccf" d="M103.022 139.945l2.38 2.38-2.38-2.38z"/> - <path fill="#c33" d="M108.576 141.533l.793 1.587-.794-1.587m28.565 0l.794 1.587-.793-1.587z"/> - <path fill="#ccf" d="M141.11 139.945l2.38 2.38-2.38-2.38z"/> - <path fill="#9cc" d="M103.022 142.326l2.38 2.38-2.38-2.38m38.087 0l2.38 2.38-2.38-2.38z"/> - <path fill="#fcc" d="M107.783 144.706l2.38 2.38-2.38-2.38m28.565 0l2.38 2.38-2.38-2.38z"/> - <path fill="#ccf" d="M105.403 147.087l2.38 2.38-2.38-2.38z"/> - <path fill="#c33" d="M110.956 148.674l.794 1.587-.794-1.586m23.804 0l.794 1.587-.794-1.586z"/> - <path fill="#ccf" d="M138.728 147.087l2.38 2.38-2.38-2.38z"/> - <path fill="#9cc" d="M105.403 149.467l2.38 2.38-2.38-2.38m33.325 0l2.38 2.38-2.38-2.38z"/> - <path fill="#fcc" d="M110.163 151.847l2.38 2.38-2.38-2.38m23.805 0l2.38 2.38-2.38-2.38z"/> - <path fill="#cff" d="M107.783 154.228l2.38 2.38-2.38-2.38z"/> - <path fill="#c33" d="M113.337 155.816l.793 1.586-.793-1.586m19.043 0l.793 1.586-.793-1.586z"/> - <path fill="#cff" d="M136.348 154.228l2.38 2.38-2.38-2.38z"/> - <path fill="#9cc" d="M107.783 156.608l2.38 2.38-2.38-2.38m28.565 0l2.38 2.38-2.38-2.38z"/> - <path fill="#69c" d="M107.783 158.99l2.38 2.38-2.38-2.38z"/> - <path fill="#fcc" d="M112.544 158.99l2.38 2.38-2.38-2.38m19.043 0l2.38 2.38-2.38-2.38z"/> - <path fill="#69c" d="M136.348 158.99l2.38 2.38-2.38-2.38z"/> - <path fill="#cff" d="M110.163 161.37l2.38 2.38-2.38-2.38zm23.805 0l2.38 2.38-2.38-2.38z"/> - <path fill="#9cc" d="M110.163 163.75l2.38 2.38-2.38-2.38m23.805 0l2.38 2.38-2.38-2.38z"/> - <path fill="#69c" d="M110.163 166.13l2.38 2.38-2.38-2.38m23.805 0l2.38 2.38-2.38-2.38z"/> - <path fill="#fcc" d="M114.924 168.51l2.38 2.38-2.38-2.38m14.283 0l2.38 2.38-2.38-2.38z"/> - <path fill="#9cf" d="M112.544 170.89l2.38 2.38-2.38-2.38z"/> - <path fill="#c33" d="M118.097 172.478l.794 1.587-.793-1.587m9.522 0l.793 1.587-.794-1.587z"/> - <path fill="#9cf" d="M131.587 170.89l2.38 2.38-2.38-2.38z"/> - <path fill="#69c" d="M112.544 173.27l2.38 2.38-2.38-2.38m19.043 0l2.38 2.38-2.38-2.38z"/> - <path fill="#fcc" d="M117.305 175.65l2.38 2.382-2.38-2.38m9.52 0l2.382 2.38-2.38-2.38z"/> - <path fill="#9cf" d="M114.924 178.032l2.38 2.38-2.38-2.38zm14.283 0l2.38 2.38-2.38-2.38z"/> - <path fill="#6cc" d="M114.924 180.412l2.38 2.38-2.38-2.38m14.283 0l2.38 2.38-2.38-2.38z"/> - <path fill="#fcc" d="M119.685 182.793l2.38 2.38-2.38-2.38m4.76 0l2.38 2.38-2.38-2.38z"/> - <path fill="#ccf" d="M117.305 185.173l2.38 2.38-2.38-2.38m9.52 0l2.382 2.38-2.38-2.38z"/> - <path fill="#6cc" d="M117.305 187.553l2.38 2.38-2.38-2.38z"/> - <path fill="#c66" d="M122.065 187.553l2.38 2.38-2.38-2.38z"/> - <path fill="#6cc" d="M126.826 187.553l2.38 2.38-2.38-2.38z"/> - <path fill="#ccf" d="M119.685 192.314l2.38 2.38-2.38-2.38m4.76 0l2.38 2.38-2.38-2.38z"/> - <path fill="#9cc" d="M119.685 194.695l2.38 2.38-2.38-2.38m4.76 0l2.38 2.38-2.38-2.38m-2.38 4.76l2.38 2.38-2.38-2.38z"/> - </g> -</svg> diff --git a/img/flags/1x1/ax.svg b/img/flags/1x1/ax.svg deleted file mode 100644 index 680dd1d..0000000 --- a/img/flags/1x1/ax.svg +++ /dev/null @@ -1,18 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" height="512" width="512" viewBox="0 0 512 512"> - <defs> - <clipPath id="a"> - <path fill-opacity=".67" d="M166.02 0h850v850h-850z"/> - </clipPath> - </defs> - <g clip-path="url(#a)" transform="translate(-100) scale(.6024)"> - <path fill="#0053a5" d="M0 0h1300v850H0z"/> - <g fill="#ffce00"> - <path d="M400 0h250v850H400z"/> - <path d="M0 300h1300v250H0z"/> - </g> - <g fill="#d21034"> - <path d="M475 0h100v850H475z"/> - <path d="M0 375h1300v100H0z"/> - </g> - </g> -</svg> diff --git a/img/flags/1x1/az.svg b/img/flags/1x1/az.svg deleted file mode 100644 index df5a172..0000000 --- a/img/flags/1x1/az.svg +++ /dev/null @@ -1,8 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" height="512" width="512" viewBox="0 0 512 512"> - <path fill="#3f9c35" d="M0 0h512v512H0z"/> - <path fill="#ed2939" d="M0 0h512v341.333H0z"/> - <path fill="#00b9e4" d="M0 0h512v170.667H0z"/> - <circle cx="238.827" cy="256" r="76.8" fill="#fff"/> - <circle cx="255.893" cy="256" r="64" fill="#ed2939"/> - <path d="M324.16 213.333l8.164 22.958 22.006-10.46-10.46 22.006L366.826 256l-22.958 8.164 10.46 22.006-22.006-10.46-8.164 22.957-8.164-22.958-22.006 10.46 10.46-22.006L281.494 256l22.958-8.164-10.46-22.006 22.006 10.46 8.164-22.957z" fill="#fff"/> -</svg> diff --git a/img/flags/1x1/ba.svg b/img/flags/1x1/ba.svg deleted file mode 100644 index 8e94f6c..0000000 --- a/img/flags/1x1/ba.svg +++ /dev/null @@ -1,12 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" height="512" width="512" viewBox="0 0 512 512"> - <defs> - <clipPath id="a"> - <path fill-opacity=".67" d="M0 0h512v512H0z"/> - </clipPath> - </defs> - <g fill-rule="evenodd" clip-path="url(#a)"> - <path fill="#009" d="M0 0h512v512H0z"/> - <path d="M77 .006l436.91 436.91V.006H77z" fill="#fc0"/> - <path fill="#FFF" d="M461.41 470.395l-26.123-19.086-26.849 18.994 10.151-31.164-26.419-19.246 32.731.066 10.177-31.117 10.055 31.156 32.74.094-26.195 19.365 9.732 30.938zm76.714 10.447l-32.74-.094-10.055-31.156-10.177 31.117-32.731-.066 26.419 19.246-10.151 31.164 26.849-18.994 26.123 19.086-9.731-30.938 26.194-19.365zm-146.32-101.26l26.195-19.365-32.74-.094-10.055-31.156-10.177 31.117-32.731-.066 26.419 19.246-10.151 31.164 26.849-18.994 26.123 19.086-9.732-30.938zm-60.333-60.416l26.195-19.367-32.74-.092-10.055-31.156-10.177 31.117-32.731-.066 26.419 19.244-10.151 31.166 26.849-18.996 26.123 19.088-9.732-30.938zM271.804 259.5l26.195-19.368-32.74-.093-10.055-31.156L245.029 240l-32.732-.066 26.418 19.246-10.151 31.166 26.849-18.996 26.123 19.088-9.732-30.938zm-60.417-60.251l26.195-19.367-32.74-.093-10.055-31.156-10.177 31.117-32.731-.066 26.419 19.245-10.151 31.166 26.849-18.996 26.123 19.088-9.732-30.938zm-59.667-59.917l26.195-19.367-32.74-.093-10.055-31.156-10.177 31.117-32.731-.066 26.419 19.245-10.151 31.166 26.849-18.996 26.123 19.088-9.732-30.938zm-60-60l26.195-19.367-32.74-.093-10.054-31.156-10.177 31.117-32.731-.066 26.419 19.245-10.152 31.165 26.849-18.996 26.123 19.088-9.732-30.937zm-60-60L57.915-.035l-32.74-.093-10.054-31.156L4.944-.167l-32.731-.066 26.419 19.245-10.152 31.165 26.849-18.996 26.123 19.088-9.732-30.937z"/> - </g> -</svg> diff --git a/img/flags/1x1/bb.svg b/img/flags/1x1/bb.svg deleted file mode 100644 index bb0daec..0000000 --- a/img/flags/1x1/bb.svg +++ /dev/null @@ -1,6 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" height="512" width="512" viewBox="0 0 512 512"> - <path fill="#00267f" d="M0-.2h512V512H0z"/> - <path fill="#ffc726" d="M170.667-.2h170.667V512H170.667z"/> - <path id="a" d="M256 173.312c-5.547 15.125-11.2 30.87-23.296 42.923 3.755-1.238 10.325-2.347 14.55-2.24v63.616l-17.963 2.667c-.64-.064-.853-1.066-.853-2.432-1.728-19.754-6.4-36.352-11.776-53.525-.383-2.347-7.188-11.307-1.94-9.728.64.085 7.66 2.944 6.55 1.58-9.558-9.9-23.53-17.025-37.1-19.137-1.194-.3-1.898.298-.83 1.685 18.004 27.712 33.065 60.416 32.937 99.22 6.998 0 23.958-4.137 30.976-4.137v44.885h8.854l2.026-125.355z"/> - <use height="100%" width="100%" xlink:href="#a" transform="matrix(-1 0 0 1 512 0)"/> -</svg> diff --git a/img/flags/1x1/bd.svg b/img/flags/1x1/bd.svg deleted file mode 100644 index b8866da..0000000 --- a/img/flags/1x1/bd.svg +++ /dev/null @@ -1,4 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" height="512" width="512" viewBox="0 0 512 512"> - <path fill="#006a4e" d="M0 0h512v512H0z"/> - <circle cx="230" cy="256" r="170.667" fill="#f42a41"/> -</svg> diff --git a/img/flags/1x1/be.svg b/img/flags/1x1/be.svg deleted file mode 100644 index 92f51fc..0000000 --- a/img/flags/1x1/be.svg +++ /dev/null @@ -1,7 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" height="512" width="512" viewBox="0 0 512 512"> - <g fill-rule="evenodd" stroke-width="1pt"> - <path d="M0 0h170.664v512.01H0z"/> - <path fill="#ffd90c" d="M170.664 0h170.664v512.01H170.664z"/> - <path fill="#f31830" d="M341.328 0h170.665v512.01H341.328z"/> - </g> -</svg> diff --git a/img/flags/1x1/bf.svg b/img/flags/1x1/bf.svg deleted file mode 100644 index 54c86ce..0000000 --- a/img/flags/1x1/bf.svg +++ /dev/null @@ -1,7 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" height="512" width="512" viewBox="0 0 512 512"> - <g fill-rule="evenodd"> - <path fill="#de0000" d="M512.063 511.55H.356V.003h511.707z"/> - <path fill="#35a100" d="M511.774 511.997H.068V256.224h511.706z"/> - </g> - <path fill-rule="evenodd" fill="#fff300" d="M389 223.773l-82.867 56.55 31.708 91.595-82.766-56.685-82.766 56.67 31.722-91.58-82.853-56.577 102.363.095 31.55-91.636 31.548 91.637"/> -</svg> diff --git a/img/flags/1x1/bg.svg b/img/flags/1x1/bg.svg deleted file mode 100644 index e21c614..0000000 --- a/img/flags/1x1/bg.svg +++ /dev/null @@ -1,7 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" height="512" width="512" viewBox="0 0 512 512"> - <g fill-rule="evenodd" stroke-width="1pt"> - <path fill="#d62612" d="M0 341.332h512v170.666H0z"/> - <path fill="#fff" d="M0 0h512v170.666H0z"/> - <path fill="#00966e" d="M0 170.666h512v170.666H0z"/> - </g> -</svg> diff --git a/img/flags/1x1/bh.svg b/img/flags/1x1/bh.svg deleted file mode 100644 index beaefe9..0000000 --- a/img/flags/1x1/bh.svg +++ /dev/null @@ -1,11 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" height="512" width="512" viewBox="0 0 512 512"> - <defs> - <clipPath id="a"> - <path fill="gray" d="M119.03-196.66h708.66V512H119.03z"/> - </clipPath> - </defs> - <g fill-rule="evenodd" clip-path="url(#a)" transform="translate(-86 142.09) scale(.7225)" stroke-width="1pt"> - <path fill="#e10011" d="M0-196.66h1063V512H0z"/> - <path d="M216.66 511.66L0 512v-708.66l215.64.113 139.14 44.743-138.12 43.614 138.12 44.968-138.12 43.615L354.78 25.36 216.66 68.976l138.12 44.968-138.12 43.615 138.12 44.97-138.12 43.613 138.12 44.97-138.12 43.614 138.12 44.968-138.12 43.615 138.12 44.968-138.12 43.615" fill="#fff"/> - </g> -</svg> diff --git a/img/flags/1x1/bi.svg b/img/flags/1x1/bi.svg deleted file mode 100644 index b4268f6..0000000 --- a/img/flags/1x1/bi.svg +++ /dev/null @@ -1,15 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" height="512" width="512" viewBox="0 0 512 512"> - <defs> - <clipPath id="a"> - <path fill="gray" d="M60.84 337h175v175h-175z"/> - </clipPath> - </defs> - <g clip-path="url(#a)" fill-rule="evenodd" transform="translate(-178 -985.97) scale(2.9257)"> - <path d="M0 337l146.56 87.5L0 512zm293.12 0l-146.56 87.5L293.12 512z" fill="#00cf00"/> - <path d="M0 337l146.56 87.5L293.12 337zm0 175l146.56-87.5L293.12 512z" fill="red"/> - <path d="M293.12 337h-27.31L0 495.7v16.305h27.31l265.81-158.7z" fill="#fff"/> - <path d="M197.168 424.496c0 27.948-22.656 50.604-50.604 50.604S95.96 452.444 95.96 424.496s22.656-50.604 50.604-50.604 50.604 22.656 50.604 50.604z" fill="#fff"/> - <path d="M0 337v16.305l265.81 158.7h27.31V495.7L27.31 337z" fill="#fff"/> - <path stroke="#00de00" stroke-width="1pt" fill="red" d="M156.523 405.41l-6.58.11-3.4 5.62-3.39-5.63-6.57-.14 3.18-5.75-3.16-5.768 6.57-.113 3.41-5.626 3.39 5.638 6.57.14-3.19 5.748zm-22.043 38.16l-6.58.11-3.4 5.62-3.39-5.63-6.57-.14 3.18-5.75-3.16-5.768 6.57-.113 3.41-5.626 3.39 5.638 6.57.14-3.19 5.748zm44.627 0l-6.58.11-3.4 5.62-3.39-5.63-6.57-.14 3.18-5.75-3.16-5.768 6.57-.113 3.41-5.626 3.39 5.638 6.57.14-3.19 5.748z"/> - </g> -</svg> diff --git a/img/flags/1x1/bj.svg b/img/flags/1x1/bj.svg deleted file mode 100644 index 0306fd0..0000000 --- a/img/flags/1x1/bj.svg +++ /dev/null @@ -1,14 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" height="512" width="512" viewBox="0 0 512 512"> - <defs> - <clipPath id="a"> - <path fill="gray" d="M67.64-154h666v666h-666z"/> - </clipPath> - </defs> - <g clip-path="url(#a)" transform="translate(-52 118.39) scale(.7688)"> - <g fill-rule="evenodd" stroke-width="1pt"> - <path fill="#319400" d="M0-154h333v666H0z"/> - <path fill="#ffd600" d="M333-154h666v333H333z"/> - <path fill="#de2110" d="M333 179h666v333H333z"/> - </g> - </g> -</svg> diff --git a/img/flags/1x1/bl.svg b/img/flags/1x1/bl.svg deleted file mode 100644 index 2385562..0000000 --- a/img/flags/1x1/bl.svg +++ /dev/null @@ -1,7 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" height="512" width="512" viewBox="0 0 512 512"> - <g fill-rule="evenodd" stroke-width="1pt"> - <path fill="#fff" d="M0 0h512.005v512H0z"/> - <path fill="#00267f" d="M0 0h170.667v512H0z"/> - <path fill="#f31830" d="M341.333 0H512v512H341.333z"/> - </g> -</svg> diff --git a/img/flags/1x1/bm.svg b/img/flags/1x1/bm.svg deleted file mode 100644 index f6239cc..0000000 --- a/img/flags/1x1/bm.svg +++ /dev/null @@ -1,98 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" height="512" width="512" viewBox="0 0 512 512"> - <path fill="#cf142b" d="M0 0h512v512H0z"/> - <path fill="#00247d" d="M0 0h256v128H0z"/> - <path d="M0 0v14.31L227.38 128H256v-14.31L28.62 0H0zm256 0v14.31L28.62 128H0v-14.31L227.38 0H256z" fill="#fff"/> - <path d="M106.667 0v128h42.666V0h-42.666zM0 42.667v42.666h256V42.667H0z" fill="#fff"/> - <path d="M0 51.2v25.6h256V51.2H0zM115.2 0v128h25.6V0h-25.6zM0 128l85.333-42.667h19.08L19.083 128H0zM0 0l85.333 42.667h-19.08L0 9.54V0zm151.586 42.667L236.92 0H256l-85.333 42.667h-19.08zM256 128l-85.333-42.667h19.08L256 118.46V128z" fill="#cf142b"/> - <path d="M443.065 182.61v108.408c0 28.958-57.888 38.366-57.888 38.366s-57.888-9.408-57.888-38.366v-108.41h115.774z" fill="#fff"/> - <path d="M443.065 291.018c0 28.958-57.888 38.366-57.888 38.366s-57.888-9.408-57.888-38.366c0 0 0-2.332 1.176-3.658 0 0-.638 4.817 3.063 8.46 0 0-2.904-5.14-.065-10.19 0 0-1.053 6.498 2.998 10.23 0 0-2.233-5.308.287-11.227 0 0-1.243 9.682 3.16 11.612 0 0 1.21-5.564-.543-9.135 0 0 3.03 1.222 2.87 9.296 0 0 .958-1.19 1.213-7.013 0 0 .127 6.66 2.424 8.203 0 0 .702-.675-.255-3.7-.96-3.023.413-4.084.636-4.02 0 0-.503 3.345 2.3 5.854 0 0-1.215-5.243.476-5.95 0 0-.35 4.438 3.158 5.436 0 0 .256-1.287-.51-2.734 0 0-.67-1.717-.16-3.03 0 0 1.117 4.027 2.648 4.702 0 0-.925-2.36-.064-4.702 0 0 .19 3.35 3.19 4.734 0 0-1.976-2.594-1.195-5.447l19.28.942 9.984.476 29.953-2.118 5.167-4.44s2.042 2.832-1.18 7.303c0 0 3.19-.58 4.21-5.565 0 0 1.308 2.767-.478 5.823 0 0 3.54-3.54 4.05-7.56 0 0 1.373 3.893-1.977 8.075 0 0 2.997-.997 4.274-5.436 0 0 1.02 2.674-1.882 6.452 0 0 5.422-2.88 5.263-8.832 0 0 2.265 3.282-.32 7.785 0 0 2.776-2.477 3.032-6.176 0 0 1.53 1.67-.128 6.27 0 0 3.38-3.184 3.89-6.626 0 0 .735 3.184-2.17 7.205 0 0 1.98-.483 3.86-4.408 0 0 .51 1.544-1.21 4.375 0 0 1.85-.32 3.094-3.86 0 0 .223 2.124-.32 4.022 0 0 1.436-.934 1.755-4.956 0 0 .8 1.32.815 2.96.013 1.64 0 .563 0 .563z" fill="#2f8f22"/> - <path d="M413.255 228.35s-2.01.34-4.595-.447c-2.584-.787-3.628-.467-4.43 0 0 0 1.05-2.076-1.503-3.715 0 0 .83 2.096-.32 3.075 0 0-.51.48-1.116-.244 0 0-.89-.918-1.832-1.626 0 0 2.17-.756 1.77-2.96-.398-2.203-1.578-2.492-2.216-2.766 0 0 .224.997 0 1.672 0 0-2.36-1.32.846-3.185s2.616-2.96 2.04-3.908c-.572-.95-1.8-1.996-2.407-2.366 0 0 .638 1 .526 1.85-.11.854-1.563 1.4-1.276-.095.287-1.496-.016-1.24-.05-2.83 0 0 2.856.964 3.973-1.82 0 0 1.1-2.878-2.504-4.31 0 0 .875 1.175.444 2.06 0 0-.765 1.447-1.675.273-.91-1.173-1.484-1.398-1.388-2.782 0 0 3.27.45 2.377-3.104 0 0-.528 2.365-4.77-.82 0 0 2.76-2.83 1.69-5.115 0 0-.334-1.046-3.333-.435 0 0 2.6-1.64 1.5-3.04 0 0-.56-.933-2.983.29 0 0 .94-1.625-1.436-3.378 0 0-1.596.836-2.44 1.608 0 0-1.628-2.06-2.665-2.88 0 0-1.882.725-2.36 2.88 0 0-.877-1.046-2.87-1.528 0 0-.958 1.77.286 3.313 0 0-.925-.032-2.615-.772 0 0-1.93-.917-1.643.74.286 1.657.43 2.026.813 2.8 0 0-4.33-1.007-4.147 1.333.127 1.626.733 3.025 2.073 4.2 0 0-2.423 3.168-4.497.787 0 0-.718.772.83 2.8 0 0 1.547 1.704.27 2.782 0 0-1.706 1.366-2.535-1.288 0 0-2.76 2.75.495 4.856 0 0 2.09 1.19 4.226-.644 0 0-.654 5.275-2.696 4.262 0 0-1.228-.9.973-1.978 0 0-3.174-.402-3.684 2.67 0 0-.392 2.444 2.376 3.33 0 0 2.136.77-.08 2.428 0 0-1.564 1.19-.543 2.96 0 0 1.228 1.946-1.882 2.14 0 0-1.69-.017-2.297-.242 0 0-.683 1.268-.206 2.717 0 0-1.55-1.155-5.074.122-3.525 1.277-3.254.376-3.54.762-.288.387-.974 1.69-.974 1.69s1.85 2.25 1.882 2.203c.032-.047-.35 2.574-.35 2.574l.91.435 7.256-3.233 7.37-3.84 5.923.363 3.757.895 4.935.36 3.534-1.886h5.12l5.63 2.806 6.428 3.834 3.35.588 2.58-.138v-5.205l-1.255-1.884z" fill="#d40000" stroke="#000" stroke-width=".425" stroke-linejoin="round"/> - <path d="M354.803 234.435s2.807 1.43 3.98-.306c0 0 1.53-2.92-1.83-3.935 0 0 1.83-2.195-.133-4.22 0 0-1.03-1.087-2.823-.29 0 0-.742-1.545-2.49-1.497 0 0-1.53-.025-2.056 1.664 0 0-2.103-.87-3.276.386 0 0-1.937 2.17.766 3.884l1.944.177 1.914-.884 2.137.61c.002 0-.548 2.164 1.868 4.408z" fill="#d40000" stroke="#000" stroke-width=".425" stroke-linejoin="round"/> - <path d="M417.464 229.3c3.382-.318 4.576 2.536 4.576 2.536 1.772 4.16-1.992 6.38-1.992 6.38.287.932.32 2.154.32 2.154 5.294.643 4.368 6.594 4.368 6.594l-1.753-1.447c-3.063-1.19-6.22 1.415-8.485 5.79-2.265 4.375-1.18 6.434-.798 11.613.383 5.18 8.804 8.267 8.804 8.267s-3.988 10.262-6.57 16.856c-2.585 6.595-7.976 3.86-9.54 2.47-1.562-1.388-1.952-.616-2.742 0-.79.62 3.54 3.996-4.338 7.18-7.88 3.185-9.25 5.63-10.56 6.434-1.306.805-6.76.258-7.303-.418-.54-.677-.22-.677-2.263-1.93-2.04-1.257-5.486-2.35-9.25-4.184-3.765-1.834-3.67-4.182-3.637-4.665.03-.48 1.307-4.405-3.102-1.285-4.408 3.12-8.16-1.486-8.16-1.486-.86-1.133-4.53-10.964-4.53-10.964-.988-3.667-2.934-7.946-2.934-7.946.096-.03-.19.452 3.063-1.414 3.253-1.866 4.71-4.97 5.837-8.042 1.126-3.072.032-8.33-.383-9.393-.413-1.06-2.837-5.927-5.84-6.946-3-1.02-5.014 1.51-5.014 1.51s-.926-5.95 4.37-6.593c0 0 .03-1.22.318-2.154 0 0-3.764-2.22-1.99-6.38 0 0 1.193-2.852 4.574-2.534l-.818 1.548s-.852 8.493 11.58 2.8c12.43-5.695 12.056-6.757 19.138-3.186l5.167-.096s7.465-3.453 9.857-1.968c2.392 1.486 11.005 6.31 11.005 6.31s8.325 3.123 9.952-2.636l-.927-2.77z" fill="#64b4d1" stroke="#000" stroke-width=".319"/> - <path stroke-miterlimit="10" d="M380.063 266.12s-.432-2.606-.887-4.294c0 0-.922-2.65.652-4.51l1.95-2.245s1.214-1.63 2.716-1.85c0 0 1.502-.046 1.645-.35.142-.307 1.785-3.01 5.692 0 0 0 1.244-1.996 3.158-2.334 0 0 2.07-.627 3.068.917 0 0 2.324-1.762 4.318 1.074 0 0 2.76-1.552 4.768 1.534 0 0 2.728-1.33 4.403 1.506 1.674 2.835 1.34 3.994 1.34 3.994l1.243 4.502 4.403 5.437-10.24 3.86H403.7l-9.187 2.46-16.315 1.253-4.546-5.356 6.41-5.598z" fill="#fff" stroke="#00247d" stroke-width=".425"/> - <path d="M366.27 293.238s-2.44.145-3.683.772c-1.244.627-2.2 1.303-3.636 2.22 0 0-.67.892-3.49.35 0 0-4.88-1.17-4.88 2.64 0 0-5.84.484-3.447 5.598 0 0 1.627 4.005 4.977 1.16 0 0-2.154 3.086 2.008 4.293 0 0 2.967.726 3.828-2.314 0 0 .48-1.206-.67-2.702 0 0 1.436-.29 2.44-1.834 0 0-3.062 3.87.288 5.263 0 0 4.21 1.057 4.45-3.334 0 0-.345-2.03 1.287-2.753 0 0 3.356-.772 4.887-4.51 0 0-4.823-2.57-4.355-4.85zm-9.853-38.486s-3.764-1.734-5.55 0c0 0-2.49-1.54-5.104 0 0 0-2.49 1.626-4.21 3.417 0 0-1.213 1.036-.766 4.31 0 0 .638 2.304.255 3.462 0 0-.83-.164-2.49 1.8 0 0-2.104 2.44-3.954.288 0 0 .574 2.996 4.05 2.513 0 0-1.69 1.32-.222 4.73 0 0 1.084 2.41-.638 5.435 0 0 3.03-1.222 2.902-4.793 0 0-.255-2.412.638-4.117 0 0-.893 1.55 1.18 4.857 0 0 1.595 2.38.288 4.858 0 0 2.998-1.094 2.71-4.73-.285-3.634-2.104-2.122-.924-5.468 0 0 .287 1.714 1.18 2.578.893.864 2.042 2.312 1.563 4.724 0 0 1.787-2.22 1.372-4.503-.415-2.284-.86-2.975-.86-2.975l5.645-3.203 2.807-5.083.126-8.103z" fill="#d40000" stroke="#000" stroke-width=".425" stroke-linejoin="round"/> - <path stroke-miterlimit="10" d="M347.836 269.096s-2.328-.16-2.71-1.963m-4.084-1.19s.81-.032 1.545.708c0 0 .56.838 1.358.74" fill="none" stroke="#000" stroke-width=".425"/> - <path d="M351.28 262.244s-1.21 0-1.88-.58c0 0-.703-.48-1.118.29 0 0-.638 1.094.543 1.577 0 0 1.467.74-.862 2.22 0 0 2.775-.996 1.66-2.347 0 0-1.213-.868-.766-1.19 0 0 .127-.258.606.064.48.322 1.436.193 1.818-.032z"/> - <path d="M389.33 268.39L380 236.178l-.34.092 8.242 32.602z" fill="#784421" stroke="#000" stroke-width=".319"/> - <path d="M356.846 304.527s-2.202-1.236-4.02.21c0 0 .186-.803 1.577-1.157 0 0 .752-2.123 2.857-1.93 0 0-.86 1.03-2.01 1.898 0 0 1.213.125 1.596.98z"/> - <path stroke-miterlimit="2.613" d="M349.094 309.643s-3.492-2.195-1.603-5.886c0 0 .553-1.062 1.605-.845 0 0 2.177.676.48 3.692 0 0-.863 1.954-.48 3.04zm7.082 3.475s-4.976-2.268-3.445-6.128c0 0 .475-1.303 1.578-1.206 0 0 1.92.096 1.535 2.653 0 0-.575 2.51.334 4.68z" fill="#64b4d1" stroke="#00247d" stroke-width=".319"/> - <path d="M355.123 298.712s-1.495 1.104-2.103 1.844c0 0-.608-.756-1.406-1.214 0 0 .918-.12 1.406.292 0 0 .763-.74 2.103-.922z"/> - <path stroke-miterlimit="2.613" d="M359.55 312.153s3.898-.99 3.18-5.018c0 0-.382-1.762-2.033-1.52 0 0-1.99.507-.693 3.068 0 0 .765 1.83-.455 3.47z" fill="#64b4d1" stroke="#00247d" stroke-width=".319"/> - <path stroke-miterlimit="2.613" d="M377.168 226.916s2.512.77 3.876 1.326c0 0 3.636 1.64 8.254 0 0 0 3.122-1.236 3.54-1.326l-2.392 3.642-.12 1.882 1.496 2.195s-.898.362-3.578-1.278c0 0-2.966-2.292-6.507 0 0 0-1.938 1.312-3.565 1.278l2.297-2.564-.887-2.307-2.416-2.846z" fill="#f5ce00" stroke="#000" stroke-width=".425"/> - <path d="M361.056 307.34s.144-.194-.024-.278c0 0-.167-.072-.287.163 0 0-.407.645-.063 1.53 0 0 .326.61.168 1.25 0 0-.022.18.122.206 0 0 .138-.046.165-.18 0 0 .194-.623-.14-1.234 0 0-.407-.95.06-1.456z" fill="#fff"/> - <path d="M415.072 234.435s-2.808 1.43-3.98-.306c0 0-1.53-2.92 1.83-3.935 0 0-1.83-2.195.132-4.22 0 0 1.03-1.087 2.824-.29 0 0 .742-1.545 2.488-1.497 0 0 1.53-.025 2.057 1.664 0 0 2.106-.87 3.277.386 0 0 1.938 2.17-.765 3.884l-1.946.177-1.915-.884-2.138.61s.55 2.164-1.866 4.408z" fill="#d40000" stroke="#000" stroke-width=".425" stroke-linejoin="round"/> - <path stroke-miterlimit="2.613" d="M392.838 232.167s-.07.58-.645.644c0 0-.6.195-.948-.55 0 0-.04-.17-.05-.253-.04-.348-.16-1.35.925-2.17 0 0 1.77-1.448 5.152.305 0 0 2.68 1.287 4.53 2.38 0 0 4.784 2.574 5.36 2.767 0 0 2.104 1.06 5.326 1.19 0 0 4.402.32 6.268-2.767 0 0 1.42-2.347 0-3.843 0 0-.574-.675-1.52-.55-.395.052-.833.234-1.255.727 0 0-.684.998.113 1.738 0 0 1.037.635 1.404-.708 0 0 .015-.096.047.024.02.08.255 1.103-.295 1.97 0 0-2.657 4.02-9.96-.145l-9.635-5.403s-4.832-2.478-7.72 1.4c0 0-2.328 3.215.67 5.322 0 0 2.234 1.335 3.637-.788 0 0 1.165-2.09-.67-3.007 0 0-1.61-.757-2.247.85-.638 1.61 1.244 2.027 1.42.885 0 0 .047-.274.095-.017z" fill="#f5ce00" stroke="#000" stroke-width=".425"/> - <path stroke-miterlimit="2.613" d="M354.652 248.75v-6.032c0-.474.003-.868.72-1.447.718-.58 1.484-1.495 2.585 1.11 0 0 2.153-2.266 2.87-2.604 0 0 1.245-1.06 2.106.482 0 0 1.148-1.737 2.057-2.17 0 0 2.153-1.4 2.25 2.797l1.673-1.544s1.292-1.06 2.728.387c0 0 2.44 2.365 2.777 3.04 0 0 .538.732.58 1.886 0 0-.006 1.3.664 2.022 0 0 .765.675 1.507.82 0 0 1.747.05 2.37 1.69 0 0 .286-.285 1.147 7.577v14.33l-9.665 11.532-15.504-4.44-6.172-2.557-1.388-4.536 5.98-3.86 3.255-8.78-1.052-6.178-1.485-3.52z" fill="#e4cb5e" stroke="#000" stroke-width=".319"/> - <path d="M397.368 256.357l.734-1.094 1.754-1.35s2.68 7.03 2.807 8.566v2.18s4.02 1.025 4.722 7.202l-3.318 6.11-5.2-2.894-1.498-1.095v-17.628z" fill="#784421" stroke="#000" stroke-width=".319"/> - <path d="M348.125 304.638s.192-.254.06-.362c0 0-.084-.12-.31.17 0 0-1.057 1.18-.216 2.996 0 0 .093.26.26.175 0 0 .144-.072.013-.29 0 0-.753-1.495.19-2.69z" fill="#fff"/> - <path stroke-miterlimit="10" d="M363.8 303.45s.16-.545-.224-1.125c0 0-.255-.418-.16-.965" fill="none" stroke="#000" stroke-width=".425"/> - <path stroke-miterlimit="10" d="M367.24 240.884s.014 1.51.445 2.62c.43 1.11 1.884 3.028 1.98 4.066" fill="none" stroke="#000" stroke-width=".319"/> - <path d="M403.7 293.238s2.44.145 3.684.772c1.244.627 2.2 1.303 3.636 2.22 0 0 .67.892 3.493.35 0 0 4.88-1.17 4.88 2.64 0 0 5.838.484 3.446 5.598 0 0-1.63 4.005-4.978 1.16 0 0 2.153 3.086-2.01 4.293 0 0-2.966.726-3.828-2.314 0 0-.478-1.206.67-2.702 0 0-1.436-.29-2.44-1.834 0 0 3.062 3.87-.287 5.263 0 0-4.21 1.057-4.45-3.334 0 0 .344-2.03-1.287-2.753 0 0-3.353-.772-4.884-4.51 0 0 4.822-2.57 4.354-4.85z" fill="#d40000" stroke="#000" stroke-width=".425" stroke-linejoin="round"/> - <path d="M365.315 247.568l3.982 32.143m-3.062-32.212l4.466 29.962m-3.628-30.1l5.144 29.714" stroke-miterlimit="10" fill="none" stroke="#000" stroke-width=".319"/> - <path d="M376.634 274.033l-9.328-32.21-.342.09 8.243 32.603z" fill="#784421" stroke="#000" stroke-width=".319"/> - <path d="M369.926 246.18l9.42 23.8m-10.05-23.416l9.09 24.864" stroke-miterlimit="10" fill="none" stroke="#000" stroke-width=".319"/> - <path d="M354.374 310.834s-1.093-1.048-.94-2.927c0 0 .063-.402-.138-.458 0 0-.214-.09-.246.375 0 0-.303 1.963 1.02 3.088 0 0 .09.113.238.08 0 0 .156-.034.066-.16z" fill="#fff"/> - <path d="M370.35 245.855l9.713 21.713m-12.37-20.363l5.958 29.24" stroke-miterlimit="10" fill="none" stroke="#000" stroke-width=".319"/> - <path stroke-miterlimit="2.613" d="M416.423 268.872c-4.254-2.414-5.187-7.77-5.187-7.77-1.03-5.332 1.053-9.554 1.053-9.554 2.75-5.814 7.463-6.896 7.463-6.896s-4.618 3.204-5.91 7.523c0 0-1.005 3.643-.43 7.238.573 3.594.358 2.677 1.244 5.452l1.765 4.007z" fill="#f5ce00" stroke="#000" stroke-width=".425"/> - <path d="M398.1 255.263l-17.876 5.645-.975 7.964c-4.244 6.145-12.865 7.236-12.865 7.236l6.707 7.14 12.887 2.704 6.76-5.21 6.126-5.663c-.638-3.026-.287-7.513-.287-7.513 0-.756.286-2.525.286-2.525s-1.053-7.27-.766-9.78z" fill="#784421" stroke="#000" stroke-width=".195"/> - <path stroke-miterlimit="10" d="M379.494 266.87s11.775-3.676 18.796-6.628m-24.448 13.34s14.69-2.653 25.025-8.54l3.796-2.563" fill="none" stroke="#000" stroke-width=".319"/> - <path stroke-miterlimit="10" d="M402.663 264.66l-4.083 2.908s-16.428 7.575-28.936 7.778m28.933-2.396s-12.63 6.504-19.87 6.6" fill="none" stroke="#000" stroke-width=".319"/> - <path d="M413.636 254.752s3.764-1.734 5.55 0c0 0 2.49-1.54 5.104 0 0 0 2.49 1.626 4.21 3.417 0 0 1.213 1.036.766 4.31 0 0-.638 2.304-.255 3.462 0 0 .83-.164 2.49 1.8 0 0 2.106 2.44 3.956.288 0 0-.574 2.996-4.05 2.513 0 0 1.69 1.32.222 4.73 0 0-1.084 2.41.638 5.435 0 0-3.03-1.222-2.902-4.793 0 0 .255-2.412-.638-4.117 0 0 .893 1.55-1.18 4.857 0 0-1.595 2.38-.288 4.858 0 0-2.998-1.094-2.71-4.73.286-3.634 2.104-2.122.924-5.468 0 0-.286 1.713-1.18 2.578-.892.864-2.04 2.312-1.562 4.724 0 0-1.787-2.22-1.372-4.503.415-2.284.86-2.975.86-2.975l-5.645-3.203-2.806-5.083-.128-8.103z" fill="#d40000" stroke="#000" stroke-width=".425" stroke-linejoin="round"/> - <path stroke-miterlimit="10" d="M349.68 275.095s.526-2.493 2.92-1.512c0 0 .812-4.085 5.166-4.23 4.354-.145 4.593 4.246 4.593 4.536 0 0 1.277-1.887 3.413-1.67 0 0 3.682-.216 2.31 5.696l.697.74s2.814-6.602 8.603-4.865c0 0 5.646 1.72 1.962 7.19 0 0 2.787 3.62 5.15 3.28 2.362-.336 4.468-1.06 6.812-5.21 2.345-4.15 7.8-4.776 9.187-4.535 1.388.24 2.484 1.142 2.71 2.123 0 0 2.888-9.64 13.27-8.126l4.164 2.094 1.58.724-2.355 6.642-5.734 12.96-4.355 1.34-4.545-2.606-1.578.846-.13 3.882-5.995 4.316-4.163 1.715-4.593 3.137-1.066 2.804s-2.537-1.07-5.4 0l-.948-2.32-2.68-2.56-10.408-4.91-1.88-6.064-1.9-.846-2.128 2.436-3.11.362-4.642-3.136-4.928-14.235z" fill="#fff" stroke="#00247d" stroke-width=".425"/> - <path stroke-miterlimit="2.613" d="M395.007 227.905s-3.972-.177-3.828 3.94" fill="none" stroke="#000" stroke-width=".425"/> - <path stroke-miterlimit="2.613" d="M421.14 271.645c-6.914-2.123-8.803-9.554-8.803-9.554-1.412-5.57.86-10.444.86-10.444 3.16-7.417 8.502-7.415 8.502-7.415 2.677-.07 3 2.22 3 2.22.252 1.625-.888 2.21-.888 2.21-1.834 1-2.99-.352-2.99-.352-.766-.997-.177-1.882-.177-1.882.47-.66 1.372-.37 1.372-.37.714.22.638 1.114.638 1.114.004.023.02.023.02.023.032-.008.02-.02.02-.02s.16-1.094-.91-1.206c0 0-2.08-.45-4.52 2.59 0 0-3.214 4.1-3.206 9.408 0 0-.408 9.964 9.975 12.546 0 0-1.124 1.618-3.11 7.457 0 0-2.25 7.503-4.395 11.56 0 0-2.853 5.786-9.217 3.422 0 0-3.79-1.666-3.78-4.416 0 0-.263-2.51 2.01-2.703 0 0 2.225-.17 2.2 1.74 0 0 .06 2.06-2.368 1.59 0 0-.85-.18-.694-1.012 0 0 .138-.748 1.16-.423 0 0 .034.004.038-.012 0 0 .012-.018-.024-.028 0 0-.396-.177-.815-.03 0 0-.376.124-.406.71 0 0-.024.47.48.735 0 0 .61.216 1.087.168 0 0 .645 1.3 2.1 1.74 2.028.612 3.698.022 4.72-.793 1.11-.887 1.83-2.437 2.045-2.817.215-.38 2.08-4.56 3.485-9.055 0 0 1.227-3.877 2.207-5.903l.383-.795z" fill="#f5ce00" stroke="#000" stroke-width=".425"/> - <path stroke-miterlimit="2.613" d="M401.63 290.536s1.292-.175 1.292.977c0 0-.08 1.682-2.13 1.314 0 0-2.02-.442-1.303-2.702 0 0 .476-1.592 2.39-1.363 0 0 1.854.085 2.67 2.618 0 0 .62 2.135-.445 3.968-1.188 2.046-4.195 3.39-5.646 3.985 0 0-5.814 2.284-7.548 3.59 0 0-2.66 1.975-1.484 3.813 0 0 .454.7 1.136.7 0 0 .778.036.91-.76 0 0 .003-.016-.01-.036 0 0-.01 0-.015.02 0 0-.055.486-.478.667 0 0-.567.286-1.16-.217 0 0-.63-.603-.104-1.54 0 0 .69-1.154 2.296-.47 0 0 1.416.7.833 2.203 0 0-.52 1.384-2.226 1.38 0 0-1.284-.042-2.106-.904-1.282-1.346-1.352-3.965-.22-5.32 0 0 1.067-1.44 3.213-2.316 1.242-.507 3.588-1.527 6.028-2.484 1.716-.672 3.286-1.477 4.307-2.685 0 0 .91-1.013 1.172-2.75 0 0 .252-1.304-.542-1.59 0 0-.403-.18-.845-.12 0 0-.012 0-.015.008 0 0-.02.02.025.013z" fill="#f5ce00" stroke="#000" stroke-width=".425"/> - <path stroke-miterlimit="2.613" d="M401.738 290.527s1.428-.257 2.32 1.44c0 0 .527 1.094.612 1.727m.465-6.068s-1.43.248-.693 2.27c.693 1.907 1.982 2.532 2.365 2.797" fill="none" stroke="#000" stroke-width=".425"/> - <path stroke-miterlimit="2.613" d="M377.166 232.167s.07.58.645.643c0 0 .6.193.95-.553 0 0 .04-.17.05-.25.04-.35.16-1.352-.925-2.173 0 0-1.77-1.447-5.152.306 0 0-2.68 1.287-4.53 2.38 0 0-4.784 2.574-5.358 2.767 0 0-2.106 1.06-5.327 1.19 0 0-4.402.322-6.268-2.766 0 0-1.42-2.346 0-3.842 0 0 .573-.676 1.517-.55.396.05.834.233 1.257.727 0 0 .686.997-.112 1.737 0 0-1.036.636-1.403-.706 0 0-.018-.097-.05.024-.02.077-.255 1.1.295 1.97 0 0 2.655 4.018 9.96-.146l9.633-5.403s4.832-2.477 7.72 1.4c0 0 2.327 3.216-.67 5.323 0 0-2.234 1.335-3.637-.788 0 0-1.163-2.09.67-3.008 0 0 1.61-.755 2.25.853.64 1.607-1.244 2.025-1.42.884 0 0-.047-.274-.095-.017zm-23.586 36.705c4.256-2.414 5.19-7.77 5.19-7.77 1.027-5.332-1.054-9.554-1.054-9.554-2.752-5.814-7.466-6.896-7.466-6.896s4.62 3.204 5.91 7.523c0 0 1.006 3.643.43 7.238-.573 3.594-.358 2.677-1.243 5.452l-1.766 4.007z" fill="#f5ce00" stroke="#000" stroke-width=".425"/> - <path stroke-miterlimit="2.613" d="M374.997 227.905s3.973-.177 3.83 3.94" fill="none" stroke="#000" stroke-width=".425"/> - <path stroke-miterlimit="2.613" d="M348.864 271.645c6.914-2.123 8.804-9.554 8.804-9.554 1.41-5.57-.86-10.444-.86-10.444-3.16-7.417-8.503-7.415-8.503-7.415-2.68-.07-3 2.22-3 2.22-.253 1.625.887 2.21.887 2.21 1.834 1 2.99-.352 2.99-.352.766-.997.176-1.882.176-1.882-.47-.66-1.372-.37-1.372-.37-.713.22-.638 1.114-.638 1.114-.004.023-.02.023-.02.023-.03-.008-.02-.02-.02-.02s-.16-1.094.91-1.206c0 0 2.08-.45 4.52 2.59 0 0 3.215 4.1 3.207 9.408 0 0 .406 9.964-9.976 12.546 0 0 1.122 1.618 3.107 7.457 0 0 2.25 7.503 4.396 11.56 0 0 2.854 5.786 9.218 3.422 0 0 3.79-1.666 3.78-4.416 0 0 .264-2.51-2.01-2.703 0 0-2.224-.17-2.2 1.74 0 0-.06 2.06 2.368 1.59 0 0 .85-.18.693-1.012 0 0-.134-.748-1.16-.423 0 0-.03.004-.035-.012 0 0-.012-.018.024-.028 0 0 .397-.177.815-.03 0 0 .376.124.405.71 0 0 .025.47-.477.735 0 0-.61.216-1.09.168 0 0-.642 1.3-2.1 1.74-2.026.612-3.695.022-4.717-.793-1.112-.887-1.83-2.437-2.046-2.817-.215-.38-2.08-4.56-3.484-9.055 0 0-1.23-3.877-2.21-5.903l-.382-.795z" fill="#f5ce00" stroke="#000" stroke-width=".425"/> - <path stroke-miterlimit="2.613" d="M368.374 290.536s-1.29-.175-1.29.977c0 0 .077 1.682 2.128 1.314 0 0 2.02-.442 1.304-2.702 0 0-.48-1.592-2.393-1.363 0 0-1.854.085-2.667 2.618 0 0-.622 2.136.442 3.968 1.19 2.046 4.195 3.39 5.646 3.985 0 0 5.814 2.284 7.548 3.59 0 0 2.66 1.975 1.483 3.813 0 0-.454.7-1.136.7 0 0-.78.036-.91-.76 0 0-.006-.016.006-.036 0 0 .012 0 .016.02 0 0 .056.486.48.667 0 0 .565.286 1.16-.217 0 0 .63-.603.102-1.54 0 0-.69-1.154-2.296-.47 0 0-1.417.7-.835 2.203 0 0 .518 1.384 2.225 1.38 0 0 1.285-.042 2.107-.904 1.283-1.346 1.352-3.965.222-5.32 0 0-1.07-1.44-3.215-2.316-1.243-.507-3.59-1.527-6.03-2.484-1.714-.672-3.285-1.477-4.305-2.685 0 0-.91-1.013-1.173-2.75 0 0-.25-1.304.542-1.59 0 0 .402-.18.845-.12 0 0 .013 0 .016.008 0 0 .02.02-.026.013z" fill="#f5ce00" stroke="#000" stroke-width=".425"/> - <path stroke-miterlimit="2.613" d="M368.266 290.527s-1.427-.257-2.32 1.44c0 0-.526 1.094-.61 1.727m-.466-6.068s1.43.248.693 2.27c-.694 1.906-1.983 2.53-2.365 2.797m18.348-61.08s3.456-2.164 6.986.233" fill="none" stroke="#000" stroke-width=".425"/> - <path stroke-miterlimit="2.613" d="M361.88 252.755s.48-1.93-1.722-5.308c0 0-1.435-3.088-2.2-5.066m4.975-2.123s1.246 3.036 1.675 4.395c0 0 1.546 3.808 1.873 4.58" fill="none" stroke="#000" stroke-width=".319"/> - <path stroke-miterlimit="10" d="M363.555 254.877s1.3 1.4 1.152 3.764m-5.457-5.258s1.435.692 1.34 4.503c0 0-.145 2.783 2.008 4.182m-3.544.98s4.493-.49 4.74 2.277c0 0 .096 2.654 1.627 2.944 0 0 2.295.217 2.75 2.34m-7.7-4.488s.788 1.183 1.554 1.69m4.21-4.61s1.14 1.73 1.357 2.743m3.59-23.563s1.052 1.432 2.073 2.107m2.137 6.37s2.233 1.093 1.85 6.723c0 0-.287 3.3.638 5.103" fill="none" stroke="#000" stroke-width=".319"/> - <path d="M364.87 247.037l.145.53s4.003.17 6.164-2.557l-.233-.523s-3.493-.177-6.077 2.55z" fill="#784421" stroke="#000" stroke-width=".319"/> - <path stroke-miterlimit="10" d="M379.293 268.514s13.846-4.128 19.182-6.534" fill="none" stroke="#000" stroke-width=".319"/> - <path d="M377.647 242.525l6.848-2.606.16.457-6.848 2.6z" fill="#784421" stroke="#000" stroke-width=".195"/> - <path d="M378.388 242.758l4.545 22.285m-3.756-22.583l5.206 22.18m-4.32-22.518l5.694 22.02m-3.462-22.867l7.762 16.53m-6.735-16.92l8.278 16.432m-7.518-16.72l8.954 16.266m-10.41 8.357l3.514-1.158m-6.174-1.047s10.3-3.008 18.093-6.152m-18.232 7.28s13.052-3.454 18.23-5.974m-14.247 16.588l.685 2.09 1.868-.597-.638-2.072m3.358-.923l.683 2.09 1.87-.597-.64-2.072m-10.772-11.768l-.16-2.83 17.112-5.195.926 2.38m-10.782.613l.933 2.497m5.05-4.313l1.09 2.374m.33-2.804l1.02 2.246m.334-2.66l1.07 2.35m.029-2.683l1.882-1.06.798 2.09m-1.756-1.553l.96 2.166" stroke-miterlimit="10" fill="none" stroke="#000" stroke-width=".319"/> - <path stroke-miterlimit="10" d="M355.66 284.938s-3.35-3.392 0-6.714c0 0-3.636-1.778-3.062-4.64m9.042 14.042s-3.467.473-2.44-6.282c0 0-1.434 2.677-1.93 4.054-.37 1.03-.124 2.693 1.344 3.592.587.36 3.697 1.17 4.702-.89m-5.55-10.81s-1.412 1.304-.407 3.692m1.865-3.378s.167 2.316 1.316 3.62m-.323-4.536s-.01 2.726 1.95 4.415m-.975-5.356s.02 3.063 2.292 4.945m8.996-.458s1.147-2.51 3.564-2.39c0 0-1.173.532-1.15 1.706 0 0-.142 1.938 1.94 2.13 0 0 1.674.218 2.51-.7" fill="none" stroke="#00247d" stroke-width=".425"/> - <path stroke-miterlimit="10" d="M378.197 291.694s-5.957-2.8-5.335-6.828c0 0 .24-2.46 2.645-3.62m-1.257 2.558s-.527 1.738.646 2.944m.694-4.126s-.72 1.906.478 3.33m.955-4.255s-.86 1.576.17 3m-5.6 7.406s3.254 2.824 5.79 2.848m-6.818-1.954s3.04 2.46 4.94 2.823m-6.088-2.127s3.758 3.308 6.09 3.55m9.197 3.04s-3.695 1.99-.83 4.095m-1.514-6.29s4.186-2.196 6.004-3.017m-4.497 4.15s6.053-3.69 7.847-4.486m-4.737 4.728s5.167-3.45 7.942-4.946m-4.522 4.826s3.564-2.8 7.01-4.826m1.22-3.498s-1.747-2.557-7.488 0c0 0 2.105-1.91 6.268-3.392m5.796-10.986s.47 2.074-.032 3.328" fill="none" stroke="#00247d" stroke-width=".425"/> - <path stroke-miterlimit="10" d="M393.89 286.7s1.197-1.762 4.236-2.63c0 0 .82 2.05 3.182 1.592 0 0 3.564-.7 2.488-4.608 0 0-.74-2.92-4.813-3.208m12.11-4.896s4.14.746 4.067 4.124c0 0 .335 5.066-5 6.055m4.412-8.1s1.137-2.468 3.673-3.482m-3.082-1.448s1.13 1.814 1.903 2.077m-2.494-.627s1.065 1.3 1.424 1.518m-1.77-.265s.562.83 1.06 1.09m-22.352-20.676s.805-1.307 2.807-.752m8.175 10.55s1.268-5.29 5.694-3.337m-1.795-.433s.454-2.438-.646-3.68m-2.37 3.51s.564 1.01.08 1.833" fill="none" stroke="#00247d" stroke-width=".425"/> - <path stroke-miterlimit="2.613" d="M413.796 313.117s4.976-2.267 3.445-6.128c0 0-.47-1.305-1.574-1.208 0 0-1.92.096-1.535 2.654 0 0 .576 2.51-.333 4.68z" fill="#64b4d1" stroke="#00247d" stroke-width=".319"/> - <path d="M415.598 310.834s1.094-1.048.94-2.927c0 0-.063-.402.138-.458 0 0 .214-.09.246.375 0 0 .303 1.962-1.02 3.088 0 0-.09.112-.238.08 0 0-.157-.034-.066-.16z" fill="#fff"/> - <path stroke-miterlimit="2.613" d="M420.877 309.643s3.493-2.195 1.603-5.886c0 0-.55-1.062-1.603-.845 0 0-2.177.676-.478 3.692 0 0 .86 1.954.476 3.04z" fill="#64b4d1" stroke="#00247d" stroke-width=".319"/> - <path d="M421.75 304.637s-.19-.253-.06-.362c0 0 .084-.12.31.17 0 0 1.058 1.18.217 2.997 0 0-.096.26-.263.174 0 0-.144-.072-.012-.29 0 0 .753-1.494-.192-2.69z" fill="#fff"/> - <path stroke-miterlimit="2.613" d="M410.422 312.153s-3.9-.99-3.182-5.018c0 0 .383-1.762 2.034-1.52 0 0 1.99.507.694 3.068 0 0-.766 1.83.454 3.47z" fill="#64b4d1" stroke="#00247d" stroke-width=".319"/> - <path d="M408.915 307.34s-.143-.194.024-.278c0 0 .165-.072.285.163 0 0 .407.645.063 1.53 0 0-.327.61-.17 1.25 0 0 .023.18-.12.206 0 0-.14-.046-.165-.18 0 0-.195-.623.14-1.234 0 0 .407-.95-.06-1.456z" fill="#fff"/> - <path d="M413.22 304.527s2.202-1.236 4.02.21c0 0-.185-.803-1.576-1.157 0 0-.752-2.123-2.857-1.93 0 0 .86 1.03 2.01 1.898 0 0-1.213.125-1.596.98zm1.63-5.815s1.494 1.104 2.102 1.844c0 0 .608-.756 1.405-1.214 0 0-.918-.12-1.405.292 0 0-.764-.74-2.103-.922z"/> - <path stroke-miterlimit="10" d="M406.172 303.45s-.16-.545.223-1.125c0 0 .255-.418.16-.965m15.662-32.264s2.328-.16 2.71-1.963m4.083-1.19s-.81-.032-1.544.708c0 0-.56.838-1.358.74" fill="none" stroke="#000" stroke-width=".425"/> - <path d="M418.772 262.244s1.212 0 1.882-.58c0 0 .702-.48 1.117.29 0 0 .64 1.094-.54 1.577 0 0-1.47.74.86 2.22 0 0-2.774-.996-1.66-2.347 0 0 1.214-.868.767-1.19 0 0-.127-.258-.606.064-.48.322-1.435.193-1.817-.032z"/> - <path stroke-miterlimit="2.613" d="M420.42 232.95s.548-.744.324-2.98c-.224-2.235 1.717-2.492 2.464-1.85 0 0 .772.668.062 2.086-.41.818-1.064 1.878-2.85 2.745z" fill="#64b4d1" stroke="#00247d" stroke-width=".319"/> - <path d="M421.15 231.28s.728-.78.38-2.48c0 0 0-.167.094-.178 0 0 .177-.045.207.123 0 0 .39 1.81-.43 2.794 0 0-.15.143-.25 0 0-.003-.11-.107 0-.26z" fill="#fff"/> - <path stroke-miterlimit="2.613" d="M419.8 232.137s-.057-.9-1.614-2.432c-1.558-1.53-.277-2.943.677-2.93 0 0 .988.015 1.344 1.52.205.87.38 2.073-.406 3.842z" fill="#64b4d1" stroke="#00247d" stroke-width=".319"/> - <path d="M419.558 230.178s.028-1.104-1.382-2.256c0 0-.115-.134-.05-.205 0 0 .105-.15.242-.034 0 0 1.518 1.215 1.555 2.542 0 0-.017.215-.19.162 0 0-.156-.013-.175-.21z" fill="#fff"/> - <path stroke-miterlimit="2.613" d="M417.685 231.46s-.407-.734-2.33-1.417c-1.924-.682-1.404-2.363-.595-2.722 0 0 .84-.37 1.74.758.52.652 1.145 1.594 1.185 3.383z" fill="#64b4d1" stroke="#00247d" stroke-width=".319"/> - <path d="M416.843 230.11s-.437-1.012-2.2-1.455c0 0-.16-.073-.13-.166 0 0 .032-.18.204-.135 0 0 1.886.454 2.475 1.64 0 0 .075.203-.105.23 0 0-.145.054-.244-.116z" fill="#fff"/> - <path stroke-miterlimit="2.613" d="M418.89 232.195s-.896.252-2.956-.742c-2.06-.993-2.962.736-2.6 1.66 0 0 .376.96 1.97.79.92-.096 2.154-.338 3.587-1.708z" fill="#64b4d1" stroke="#00247d" stroke-width=".319"/> - <path d="M414.1 232.852s.935.576 2.63-.08c0 0 .172-.033.2.06 0 0 .077.167-.09.227 0 0-1.804.717-2.962.086 0 0-.176-.122-.043-.248 0 0 .09-.13.266-.048z" fill="#fff"/> - <path stroke-miterlimit="2.613" d="M415.877 225.685s1.03.5.79 1.705" fill="none" stroke="#000" stroke-width=".425"/> - <path stroke-miterlimit="10" d="M420.423 225.854s.402 1.274-.042 1.96" fill="none" stroke="#000" stroke-width=".425"/> - <path stroke-miterlimit="2.613" d="M349.454 232.95s-.547-.744-.323-2.98c.225-2.235-1.716-2.492-2.462-1.85 0 0-.772.668-.062 2.086.41.818 1.063 1.878 2.85 2.745z" fill="#64b4d1" stroke="#00247d" stroke-width=".319"/> - <path d="M348.724 231.28s-.727-.78-.38-2.48c0 0 .002-.167-.094-.178 0 0-.177-.045-.206.123 0 0-.39 1.81.43 2.794 0 0 .15.143.25 0 0-.003.11-.107 0-.26z" fill="#fff"/> - <path stroke-miterlimit="2.613" d="M350.074 232.137s.057-.9 1.615-2.432c1.555-1.53.275-2.943-.68-2.93 0 0-.987.015-1.343 1.52-.205.87-.38 2.073.406 3.842z" fill="#64b4d1" stroke="#00247d" stroke-width=".319"/> - <path d="M350.317 230.178s-.028-1.104 1.382-2.256c0 0 .113-.134.047-.205 0 0-.104-.15-.24-.034 0 0-1.52 1.215-1.556 2.542 0 0 .018.215.19.162 0 0 .157-.013.175-.21z" fill="#fff"/> - <path stroke-miterlimit="2.613" d="M352.19 231.46s.406-.734 2.33-1.417c1.923-.682 1.403-2.363.594-2.722 0 0-.84-.37-1.74.758-.52.652-1.144 1.594-1.185 3.383z" fill="#64b4d1" stroke="#00247d" stroke-width=".319"/> - <path d="M353.032 230.11s.437-1.012 2.198-1.455c0 0 .16-.073.13-.166 0 0-.03-.18-.203-.135 0 0-1.886.454-2.475 1.64 0 0-.075.203.105.23 0 0 .146.054.245-.116z" fill="#fff"/> - <path stroke-miterlimit="2.613" d="M350.984 232.195s.897.252 2.956-.742c2.06-.993 2.962.736 2.6 1.66 0 0-.376.96-1.97.79-.92-.096-2.154-.338-3.586-1.708z" fill="#64b4d1" stroke="#00247d" stroke-width=".319"/> - <path d="M355.773 232.852s-.933.576-2.628-.08c0 0-.173-.033-.2.06 0 0-.078.167.09.227 0 0 1.803.717 2.96.086 0 0 .177-.122.045-.248 0 0-.09-.13-.267-.048z" fill="#fff"/> - <path stroke-miterlimit="2.613" d="M353.997 225.685s-1.028.5-.79 1.705" fill="none" stroke="#000" stroke-width=".425"/> - <path stroke-miterlimit="10" d="M349.452 225.854s-.403 1.274.042 1.96" fill="none" stroke="#000" stroke-width=".425"/> - <path d="M394.106 214.153s.652 1.86.37 3.547c-.25 1.507.093 1.897.637 2.196.472.258 1.565-.194 1.696-1.376 0 0 1.29 2.52-1.22 4.222 0 0-1.808 1.11-3.34-.374-.54-.523-.777-1.966-.514-3.306 0 0 .396-1.815-.263-3.68 0 0 1.03 1.1.766 3.288 0 0-.528 3.927 2.38 3.734 0 0 2.01-.024 2.07-2.46 0 0-.755.867-1.688.578-.66-.205-1.268-.844-1.16-1.852.113-1.057.407-2.9.263-4.517zm-3.293 6.45s-.16 3.104-3 3.86c0 0 .4-.563-.238-2.107 0 0-.622-.9-.574-2.3 0 0-.9.707.13 2.573.62 1.124.08 2.475-.112 2.523-.192.048 4.69-.643 3.796-4.55zm-3.685-3.09s-.685-.77-.733-2.556c-.048-1.786-.383-2.22-.622-2.43 0 0 .35 1.545.255 2.494-.096.95.064 1.498.19 1.948 0 0-1.546.24-2.52-2.01-.93-2.153-1.865-1.98-2.328-1.963 0 0 .54.06 1.627 2.026 1.086 1.966 1.388 2.367 4.13 2.495zm-7.24-4.663s.893 2.14.925 3.265c0 0-2.074-.692-2.632-2.493 0 0-2.215.756-1.4 3.313 0 0-1.915-.675-2.776-2.236 0 0 1.068.803 2.057 1.156 0 0-.11-2.058 2.473-2.83 0 0 .384 1.844 1.675 2.284 0 0-.096-1.157-.32-2.46zm3.412-3.667s.718 1.045 2.186 1.094c.7.023 1.456-.136 2.185-1.094 0 0-.094 1.818-2.183 1.833 0 0-2.185.08-2.185-1.833zm-9.04 12.425s1.09.99 1.317 1.314c0 0 .766.75 1.423-.22 0 0 .838-1.545 1.867-1.504 0 0-.73.506-1.55 1.97 0 0-.22.538-.83.6-.287.027-.647.12-1.193-.45 0 0-.47-.576-1.033-1.71zm11.226-19.71c-2.185 0-.343 1.687-.343 1.687.047 2.678-2.1 3.502-3.565 2.727-1.463-.777-.32-2.727-.32-2.727s-1.65 1.086-.597 2.654c1.055 1.566 3.814.866 4.827-.58 1.013 1.446 3.772 2.146 4.824.58 1.054-1.57-.597-2.656-.597-2.656s1.145 1.95-.32 2.727c-1.462.776-3.61-.05-3.563-2.726-.002 0 1.84-1.69-.344-1.688zM386.81 199s.765 1.303.597 3.28c0 0 .694-1.978-.598-3.28zm-6.7 3.064s-.167-1.424-1.554-1.545c0 0 1.172.847 1.555 1.547zm10.767 0s.167-1.424 1.555-1.545c0 0-1.173.847-1.555 1.547zm-12.967 2.17s1.1.34 1.77-.48c0 0-1.268.336-1.77.48zm-3.565-8.733s1.28-.145 2.56 1.762c0 0-1.268.675-1.58 1.085 0 0 0-.627.623-1.182 0 0-.24-.965-1.603-1.665zm21.435 0s-1.28-.145-2.56 1.762c0 0 1.27.675 1.58 1.085 0 0 0-.627-.622-1.182 0 0 .24-.965 1.603-1.665zm-9.88 1.423s1.15.315 2.584-.482c0 0 1.77-.94 2.895 0 0 0-.983-.436-2.873.482 0 0-1.89 1.036-2.607 0z"/> - <path d="M387.097 198.085s.98-1.72 3.97-1.38c0 0-.812 2.393-3.97 1.38z" fill="#fff"/> - <ellipse cx="389.159" cy="197.551" rx=".591" ry=".75" fill="#784421"/> - <ellipse cx="389.159" cy="197.551" rx=".351" ry=".46"/> - <path d="M380.685 194.418s1.89.12 3.038.844c0 0 1.22.724 2.608-.314 0 0 1.51-.868 2.48-2.074 0 0-2.31 1.592-3.17 1.833 0 0-.79-.603-1.1-1.47 0 0 .117-.653 1.36-1.86 0 0-1.674.508-2.01 1.93 0 0 .31.87.958 1.546 0 0-.31.144-1.124-.362 0 0-1.77-.602-3.038-.07zm4.8 11.352c-1.634 1.41 0 1.266 0 1.266s1.636.145 0-1.267zm-.945-8.844s-1.15.315-2.584-.482c0 0-1.77-.94-2.895 0 0 0 .983-.436 2.873.482 0 0 1.89 1.036 2.608 0z"/> - <path d="M383.344 198.085s-.98-1.72-3.972-1.38c0 0 .814 2.393 3.972 1.38z" fill="#fff"/> - <ellipse cx="381.281" cy="197.551" rx=".591" ry=".75" fill="#784421"/> - <ellipse cx="381.281" cy="197.551" rx=".351" ry=".46"/> - <path d="M443.25 182.61v108.408c0 28.958-57.888 38.366-57.888 38.366s-57.887-9.408-57.887-38.366v-108.41H443.25z" fill="none" stroke="#000" stroke-width="1.024"/> -</svg> diff --git a/img/flags/1x1/bn.svg b/img/flags/1x1/bn.svg deleted file mode 100644 index 2db5f46..0000000 --- a/img/flags/1x1/bn.svg +++ /dev/null @@ -1,36 +0,0 @@ -<svg xmlns:xlink="http://www.w3.org/1999/xlink" xmlns="http://www.w3.org/2000/svg" height="512" width="512" viewBox="0 0 512 512"> - <path fill="#f7e017" d="M0 0h512v512H0z"/> - <path d="M0 35.556V263.11l512 106.667v-120.89z" fill="#fff"/> - <path d="M0 156.444v106.667l512 213.333V369.778z"/> - <g transform="translate(-256) scale(.71111)" fill="#cf1126"> - <path d="M695.74 569.72c-19.36-2.57-37.11-8.73-49.44-17.17-2.39-1.64-4.64-2.98-4.99-2.98-.36 0-.65 1.82-.65 4.07 0 6.37-2.56 9.58-9 11.25-6.16 1.6-15.56-1.63-23.18-7.95-7.89-6.55-17-11.55-24.71-13.55-6.35-1.66-14.78-1.39-20.87.65-2.83.95-6.05 2.29-7.17 2.98-1.11.69-2.36 1.25-2.76 1.25-1.08 0-.93-6.85.2-9.04 1.49-2.87 5.16-5.7 9.44-7.26 2.16-.79 3.93-1.8 3.93-2.25 0-.45-.73-2.1-1.62-3.65-2.9-5.08-1.71-10 3.35-13.87 5.18-3.96 13.95-4.64 21.7-1.69 1.95.74 3.77 1.35 4.04 1.35 1.02 0 .4-1.43-2.41-5.52-3.24-4.74-3.88-7.08-3.48-12.72.52-7.14 6.34-12.98 13.47-13.5 5.82-.42 9.44 1.54 18.03 9.72 25.65 24.46 53.54 37.94 86.07 41.59 8.21.92 24.73.43 34.42-1.03 29.27-4.41 58.76-19.13 81.79-40.82 6.38-6.01 9.45-7.6 14.68-7.62 4.55-.02 7.74 1.45 11 5.05 2.97 3.3 3.98 6.43 3.66 11.44-.21 3.21-.73 4.79-2.64 7.9-2.82 4.59-2.34 5.01 3.24 2.85 7.54-2.94 16.83-1.58 21.84 3.18 4.41 4.19 4.83 8.38 1.4 14.06-1.25 2.08-2.27 4.03-2.27 4.34 0 .57.95.84 5.53 1.58 5.99.96 9.42 5.41 9.42 12.21 0 2.04-.25 3.7-.56 3.7-.3 0-2.57-.83-5.04-1.85-6.98-2.88-10.95-3.62-19.11-3.57-6.21.04-8.35.33-12.68 1.74-6.63 2.17-13.72 6.35-19.5 11.5-6.37 5.68-10.38 7.47-16.58 7.42-5.76-.06-9.7-1.73-11.78-5.02-1.11-1.76-1.27-2.83-1-6.81.18-2.59.14-4.71-.07-4.71-.22 0-2.46 1.42-4.99 3.17-6.64 4.56-10.87 6.82-18.47 9.83-23.18 9.17-56.63 13.14-82.24 9.75z"/> - <path d="M706.34 525.17c-38.58-3.703-75.494-23.798-97.939-55.657-24.37-33.235-32.05-77.117-24.611-117.24 3.954-18.267 11.929-36.546 25.544-49.554-10.85 23.003-14.516 49.369-8.73 74.29 8.99 49.753 51.036 91.87 101.34 99.156 19.9 5.761 40.487-.324 59.496-6.493 41.935-14.78 73.88-54.583 77.777-99.08 3.336-24.077-.36-49.113-11.207-70.915 6.183 3.269 13.987 16.087 18.59 24.707 16.002 31.003 16.733 68.155 7.312 101.24-12.78 42.097-44.965 78.978-87.511 92.382-19.308 6.308-39.842 8.231-60.058 7.167z"/> - <g id="a"> - <path d="M512.02 469.9c-2.528-.396-5.316 2.092-4.363 4.697 1.823 2.633 4.964 3.92 7.798 5.18 6.792 2.722 14.18 3.782 21.471 3.605-2.513-.006.863.026 1.802 0 5.774.017 11.516-1.024 16.944-2.98 3.018-1.062 6.864-2.025 8.1-5.363 1.207-2.175-.98-4.347-3.185-3.911-3.072.67-5.944 2.064-8.99 2.857-6.572 1.854-13.494 2.57-20.303 2.012-4.98-.608-9.804-2.2-14.41-4.143-1.597-.705-3.096-1.733-4.865-1.954z"/> - <path d="M514.83 459.52c-2.556-.38-4.758 2.56-3.692 4.908 1.965 2.848 5.267 4.365 8.356 5.699 5.37 2.148 11.204 3.047 16.975 2.875-2.191-.006.753.026 1.565 0a37.592 37.592 0 0 0 14.325-2.832c2.774-1.078 6.17-2.124 7.325-5.177.896-1.677.212-4.116-1.9-4.247-1.929-.096-3.593 1.132-5.378 1.683-6.485 2.681-13.622 3.818-20.614 3.214-4.357-.56-8.52-2.168-12.47-4.03-1.485-.718-2.82-1.836-4.491-2.093z"/> - <path d="M518.28 449.57c-2.19-.263-3.698 2.209-3.329 4.182.327 1.733 1.883 2.898 3.17 3.96 5.328 3.898 12.082 5.558 18.625 5.34-2.541-.009 3.41.042 1.595-.007 4.144-.017 8.238-1.03 11.966-2.825 2.489-1.082 5.411-2.336 6.25-5.177.401-1.324.652-3.227-.841-3.97-1.564-.874-3.117.47-4.539 1.016-4.789 2.437-10.125 3.793-15.507 3.768-4.65.157-9.033-1.8-13.068-3.907-1.464-.746-2.67-2.043-4.321-2.38z"/> - <path d="M481.53 302.7c-3.257 3.26-.77 9.271-.946 13.543 1.688 13.158 3.785 26.484 8.697 38.87 6.015 12.102 18.79 18.573 26.533 29.268 2.767 5.155 1.785 11.355 2.368 16.994.458 15.366.316 30.743.047 46.111 6.939 3.482 14.474 6.986 22.456 5.647 4.73-1.13 13.512-1.832 14.496-6.543-.383-26.5-.63-53.01-.983-79.506-2.69-8.119-10.951-12.32-17.129-17.515a155.468 155.468 0 0 1-14.188-16.099c-2.622-4.417-12.868-6.009-9.161 1.677 2.173 6.654 7.72 11.61 9.109 18.602.303 3.831 4.877 10.879.973 13.114-2.484-4.222-6.082-7.815-10.682-9.958-4.432-3.304-11.759-4.68-13.359-10.517-1.175-8.28-5.415-15.782-10.887-21.986 1.41-7.436.005-16.737-6.423-21.49l-.921-.212z"/> - <path d="M491.44 304.19c-2.963.478-2.862 4.254-1.491 6.239 1.458 4.288 1.855 8.945 1.066 13.409 5.267 6.166 9.347 13.543 10.576 21.64.03 3.044 3.233 4.051 5.309 5.555 4.871 3.102 10.348 5.351 14.686 9.233.913.976 1.602 2.027.957.035-.677-2.547-1.026-5.358-3.021-7.285-2.735-2.94-6.15-5.563-10.133-6.46-.332-4.114-2.292-7.893-4.102-11.532-2.006-3.479-4.102-7.206-7.54-9.462.138-6.098.038-12.495-2.586-18.122-.77-1.446-1.903-3.163-3.72-3.25z"/> - <path d="M499.73 306.62c-2.064.613-1.67 3.159-1.016 4.716.989 4.316 1.144 8.774 1.063 13.184 3.791 3 6.163 7.35 8.322 11.587 1.353 2.83 2.636 5.751 3.155 8.865 3.076 1.018 5.768 2.946 8.171 5.077-.952-2.882-3.076-5.113-4.504-7.744-1.551-2.737-3.033-5.592-3.69-8.693-2.958-3.157-4.587-7.63-3.941-11.952.133-4.776-1.41-9.71-4.606-13.31-.805-.793-1.766-1.67-2.954-1.73z"/> - <path d="M509.16 307.97c-1.122.198-1.805 1.266-2.406 2.137-.233.873.837 1.812 1.008 2.76a21.771 21.771 0 0 1 1.416 10.426c-.086 2.502.809 4.946 2.084 7.065.368-1.563 1.816-2.687 3.386-2.84.571-.101 1.411.188 1.078-.683-.399-4.786-1.128-9.598-2.8-14.12-.649-1.614-1.385-3.314-2.784-4.42-.284-.201-.623-.374-.982-.325z"/> - </g> - <use height="100%" width="100%" xlink:href="#a" transform="matrix(-1 0 0 1 1440 0)"/> - <path d="M715.67 475.98c-13.493-1.285-25.667-11.12-29.829-24 .224-2.219 2.987 1.241 4.292 1.474 2.45 1.36 5.1 2.48 7.92 2.654 3.558 1.529 5.757 5.035 9.152 6.863 1.577 1.228 7.155 3.64 6.119-.264-1.307-2.04-2.206-4.625-1.081-6.962 1.892-4.15 4.802-7.763 7.73-11.226 2.153-.72 3.595 3.527 5.134 4.957 2.131 3.279 4.7 7.28 3.447 11.352-1.22 1.509-2.021 6.047 1.241 4.522 4.022-1.77 7.316-4.742 10.651-7.517 2.919-2.039 6.654-2.183 9.713-3.97 1.417-.36 4.37-3.195 4.986-1.623-1.676 4.488-4.482 8.507-7.482 12.211-4.86 5.55-11.432 9.725-18.786 10.902-4.346.796-8.806.964-13.207.628z"/> - <path d="M731.53 460.22c.297-2.708-.32-5.473-1.703-7.935-2.123-4.326-5.121-8.166-8.046-11.96-2.757-1.616-4.287 3.657-6.12 5.17-2.857 4.277-6.443 8.657-6.617 14.036-1.607 2.502-4.604-2.04-5.896-3.535-2.468-3.491-4.336-7.62-4.03-11.987-.292-7.036 1.057-14.041 3.62-20.581 1.935-5.583 5.076-11.006 4.757-17.105.224-4.59-.708-9.658-4.426-12.745-3.538-2.776 2.291-3.368 4.143-1.928 3.168.212 4.882 5.448 7.777 4.152 1.153-2.735 1.382-5.997 3.76-8.13 2.333-3.196 4.772 1.356 5.57 3.488 1.648 1.873-.092 6.507 2.583 6.628 3.206-2.247 5.492-6.022 9.591-6.844 1.663-.949 4.504-.127 2.312 1.785-3.034 2.844-5.626 6.4-6.179 10.63-.928 5.308.4 10.69 2.713 15.47 4.446 9.39 7.885 19.997 5.636 30.445-1.043 4.644-4.198 8.645-8.032 11.34-.484.293-1.25.273-1.413-.394z"/> - <path d="M726.73 389.63c-1.456-2.624-3.224-5.21-5.673-6.995-2.381-.005-3.85 2.999-5.468 4.573-1.134 2.11-2.512 5.638-5.305 2.88-4.444-2.594-5.23-8.276-5.202-12.959-.28-7.59 2.777-14.674 5.492-21.587 1.728-4.328 1.302-9.199.248-13.634-1.327-5.092-5.414-8.623-8.56-12.595.214-1.536 4.235-.697 5.748-.405 3.36.852 5.367 3.825 7.87 5.926 1.782-.54 1.055-4.14 1.884-5.833.062-2.382 3.233-5.522 4.541-2.112 1.959 2.168-.062 6.465 2.469 7.815 2.411-.893 3.6-3.529 5.866-4.72 2.23-1.52 5.378-1.69 7.778-.497.845 2.213-2.64 4.055-3.65 5.977-4.051 5.006-5.475 11.91-3.74 18.112 1.377 4.865 3.814 9.406 4.655 14.434 1.013 5.653.98 11.59-.484 17.16-.874 3.38-3.802 5.64-6.825 7.044-.746-.694-1.14-1.714-1.644-2.583z"/> - <path d="M711.61 326.89c-3.36-2.46-4.47-4.81-4.47-9.46 0-2.38.44-3.67 2.01-5.83 2.31-3.2 1.89-4.21-1.38-3.27-5.26 1.51-7.77.13-7.95-4.35-.08-2.19.38-3.12 3.33-6.66 2.36-2.84 3.22-4.33 2.75-4.8-.46-.46-3.25 1.96-8.98 7.79-4.57 4.65-9.71 9.4-11.42 10.56-9.84 6.64-19.24 7.67-23.53 2.56-2.2-2.61-2.08-4.08.46-5.66 1.17-.72 3.14-2.38 4.39-3.69 2.95-3.07 11.74-9.41 16.1-11.61 3.54-1.79 4.38-3 2.08-3-2.98 0-12.54 6.22-19.79 12.88-2.13 1.97-5.2 4.16-6.81 4.87-3.62 1.6-10.73 2.19-13.89 1.15-2.23-.74-6.3-4.58-6.3-5.95 0-.36.93-1.16 2.06-1.77 1.13-.6 3.16-2.07 4.5-3.24 5.8-5.09 16.79-10.33 25.51-12.16 2.77-.58 1.75-1.98-1.34-1.84-5.99.26-17.88 5.83-24.98 11.69-8.32 6.86-20.87 6.21-24.91-1.29-.7-1.29-1.11-2.5-.91-2.69.19-.19 2.66-.93 5.49-1.65 3.06-.77 9.12-3.28 14.91-6.17 9.11-4.54 11.81-5.51 18.08-6.52 2.82-.45 2.97-1.83.23-2.15-3.53-.42-8.94 1.35-18.5 6.05-12.28 6.04-15.72 7.08-22.19 6.7-5.9-.36-9.23-1.87-14.02-6.4-3.13-2.97-7.57-10.51-6.7-11.38.21-.21 1.65 0 3.2.45 1.72.51 6.65.85 12.59.86 8.31.02 10.52-.2 14.95-1.48 7.41-2.14 17.26-7.15 24-12.18 12.89-9.64 23.4-13.51 36.8-13.57 12.37-.05 20.24 2.81 27.21 9.88 2.36 2.39 4.37 3.94 4.7 3.61.31-.31.65-4.49.75-9.29 0 0 3.64-.35 4.41.67 0 7.79.09 8.4 1.22 8.4.74 0 1.53-.76 2.02-1.94 1.06-2.55 4.98-6.04 9.17-8.16 9.05-4.59 24.71-4.73 37.29-.34 5.3 1.86 11.18 5.18 16.78 9.5 5.62 4.32 17.11 10.1 23.9 12.03 6.87 1.95 18.98 2.44 25.19 1.03 2.56-.58 4.96-1.06 5.34-1.06 2.29 0-1.61 7.63-6.19 12.1-8.37 8.18-19.26 8.14-34.58-.12-9.55-5.14-20.97-7.95-20.97-5.15 0 .58.6.97 1.49.97 3.32 0 9.73 2.23 18.67 6.47 9.67 4.6 15.1 6.54 18.32 6.54 2.34 0 2.41 1.45.23 4.65-2.31 3.41-6.23 5.1-11.77 5.09-5.29-.02-8.23-1.18-12.96-5.11-7.91-6.58-27.62-13.92-26.86-10 .15.78 1.1 1.26 3.13 1.57 6.86 1.05 14.91 4.89 23.15 11.06 2.54 1.91 5.18 3.79 5.85 4.19 1.13.66 1.15.86.26 2.53-1.48 2.76-5.21 4.9-9.25 5.32-5.23.54-9.78-1.02-14.49-4.96-9.94-8.32-19.31-14.34-22.31-14.34-2.45 0-1.35 1.35 2.97 3.64 5.68 3.01 11.52 7.08 15.82 11.03 2.03 1.88 4.32 3.74 5.08 4.15 1.8.96 1.73 2.37-.25 4.96-2.02 2.64-5.36 3.8-9.69 3.34-8.64-.91-15.38-5.08-25.97-16.07-4.14-4.29-7.83-7.8-8.21-7.8-1.41 0-.58 1.91 2.15 4.97 3.38 3.78 4.03 5.91 2.75 8.98-1.13 2.72-3.01 3.35-6.87 2.31-3.95-1.07-4.57-.1-1.98 3.12 3.86 4.81 3.29 10.7-1.44 14.75-1.47 1.25-3.01 2.28-3.43 2.28-.41 0-1.45-1.07-2.32-2.38-3.04-4.62-5.71-4.59-8.67.08-1.03 1.63-1.9 2.95-1.93 2.94-.04-.01-1.43-1.01-3.08-2.23z"/> - <path d="M726.67 233.03l-5.13 4.06-4.6-3.47v27.74l9.73.12z"/> - <path d="M694.89 204.25c-1.02 13.11-4.35 22.26-8.98 32.35l11.1-10.29 7.72 9.17 8.36-9.33 8.53 7.88 8.2-8.2 8.52 9.97 7.4-8.2 12.54 9c-4.55-10.09-10.71-18.64-9.94-32.84-12.15 9.03-41.02 10.66-53.45.49z"/> - <path d="M716.95 197.56c-4.46.08-9.16.14-13.39.97-2.93.58-5.59 1.53-7.81 3.1.36 8.53 41 12.09 51.9.16-2.29-1.67-5.09-2.66-8.17-3.26-4.07-.79-8.57-.87-12.84-.94 0 2.34.02 4.69.02 7.04l-9.71-.03v-7.04z"/> - <path d="M724.9 153.97l-6.31.05v49.38l6.44.03z"/> - <path d="M724.89 155.24l-2.41 23.64 24.32 11.88-12.31-16.46 16.81-5.45zm-2.71-6.16c-3.69 0-6.42 1.38-6.42 3.02 0 1.64 2.73 3.03 6.42 3.03s6.4-1.39 6.4-3.03-2.71-3.02-6.4-3.02z"/> - </g> - <g fill="#f7e017"> - <path d="M249.636 400.939c2.837-.939 4.451-2.66 5.61-5.974.576-1.65.967-3.363.868-3.811-.242-1.06-1.465-1.003-2.816.12-.925.776-1.038 1.167-.775 2.746.675 3.982-.74 4.97-8.278 5.78-.746.08-2.908-.049-4.814-.284-3.584-.448-4.864-.092-3.563.989.392.327 1.387.768 2.212.974 2.012.52 9.4.17 11.556-.54zm15.623-.662c.426-.39 1.891-1.066 3.257-1.507 1.82-.583 2.759-1.21 3.527-2.354 2.211-3.292 1.799-6.13-1.451-9.956-1.764-2.076-2.546-2.02-3.954.285-1.216 1.991-1.187 2.119.562 2.574.917.235 1.8.91 2.283 1.742 1.905 3.3 1.344 5.34-1.48 5.362-2.56.021-3.263.384-3.953 2.041-.363.86-.654 1.778-.654 2.04 0 .698.967.577 1.863-.227zm-5.127-3.726c.483-1.308.654-3.662.597-8.462-.036-3.655-.178-6.756-.32-6.898-.427-.427-2.532.932-2.809 1.806-.142.455.092 1.508.52 2.333.653 1.273.739 2.46.54 7.445-.256 6.3.156 7.36 1.472 3.776z"/> - <path d="M248.1 393.55c.256-1.173.583-3.577.732-5.333.15-1.757.512-3.975.796-4.935.726-2.46-.007-3.108-1.948-1.728l-1.444 1.03.3 3.535c.276 3.186-.228 9.124-.96 11.428-.2.611.084.455.888-.484.647-.754 1.387-2.34 1.636-3.513zm-10.674 1.714c2.596-2.172 2.298-5.881 2.873-8.903-.06-2.009 1.282-4.417.416-6.175-2.426.444-3.921 2.742-2.68 5.031.104 2.659.01 5.552-1.357 7.903-1.116 1.537-4.652 1.154-4.49-1.025.888-3.275-3.037-1.681-4.57-.822-1.184.824-3.684.885-2.815-1.179-.574-2.75-4.11-1.03-6.032-1.041-1.814-.034-.15-3.677-2.754-3.038-4.84-.381-10.182.043-14.372-2.88-2.452-1.18-2.088-4.129-.811-6.037 1.524-2.606 1.96-5.866 4.38-7.889 2.395-2.297-2.26-1.327-3.309-.553-2.333 1.278-.165 4.567-2.076 6.392-1.116 1.893-2.585 4.506-5.17 4.146-3.725-.705-5.873-4.171-8.545-6.494-2.288-.457-1.001 3.713.18 4.59 2.338 1.75 5.07 3.026 7.888 3.782 2.804-.449 2.895 3.224 5.294 3.8 4.4 2.05 9.303 2.664 14.103 2.914 1.885.158.825 3.515 3.304 2.852 1.385.359 4.514-.516 4.67 1.094-2.1 2.493 2.016 2.437 3.539 1.99 1.95-.297 4.441-1.043 4.957 1.63 1.628 1.717 4.616 1.463 6.599.482.278-.162.54-.352.777-.57z"/> - <path d="M194.93 373.739c.79-1.003 1.97-3.03 2.624-4.509.647-1.486 1.621-3.171 2.154-3.747 1.252-1.351.555-2.183-1.464-1.735-1.067.234-1.5.625-1.679 1.55-.604 3.015-1.7 6.101-2.673 7.538-1.764 2.602-1.807 2.709-1.081 2.709.377 0 1.33-.81 2.119-1.806zm-26.638-16.697c-1.992 0-2.077 1.258-.136 1.934.94.327 1.736 1.116 2.376 2.404 1.891 3.761 3 4.43 8.02 4.864l3.222.291.157 1.956c.078 1.08.334 1.977.583 1.977.249 0 1.493-.54 2.752-1.18 2.36-1.196 4.6-3.983 4.6-5.711 0-1.13-1.884-2.354-3.598-2.354-.76 0-2.211.612-3.356 1.444-3.584 2.595-7.417 2.069-9.515-1.309-1.72-2.787-3.52-4.316-5.105-4.316zm17.393 6.933c.953 0 1.188.704.669 2.048-.356.925-1.515.953-1.863.043-.413-1.074.163-2.09 1.194-2.09zm134.912-4.373c-1.301.05-1.685.334-2.51 1.557-1.351 2.005-1.486 6.35-.242 7.886.775.953.89.975 2.532.292 2.29-.96 2.674-.925 2.667.306-.015 3.143-4.523 9.201-9.245 12.423-1.273.867-2.41 1.834-2.531 2.154-.342.896 1.408.697 3.555-.398 2.93-1.493 6.777-5.418 8.356-8.512 1.251-2.467 1.429-3.306 1.578-7.623.135-3.975.029-5.141-.647-6.464-.754-1.486-.995-1.621-2.887-1.621-.227 0-.434-.007-.626 0zm.157 2.773c.981 0 1.152.22 1.266 1.629.1 1.166-.107 1.877-.754 2.46-.882.796-.953.79-1.735-.398-1.095-1.678-.42-3.69 1.223-3.69zm-21.59 30.35c4.16-2.048 6.614-4.352 8.192-7.687.747-1.586 1.359-3.079 1.359-3.335 0-.576-2.048-1.529-3.279-1.529-1.223 0-1.472-.846-.945-3.186.512-2.282-.107-5.14-1.11-5.14-.362 0-1.002.532-1.429 1.18-.654 1.002-.69 1.429-.206 2.887.71 2.161.15 3.776-1.785 5.155-.917.654-1.422 1.408-1.422 2.14 0 .62.078 1.124.17 1.124.1 0 1.11-.526 2.247-1.159l2.077-1.159 1.223.96c.668.526 1.223 1.387 1.223 1.913 0 2.531-7.218 6.784-12.174 7.182-2.638.213-3.086.121-4.004-.79-.746-.746-.96-1.372-.775-2.253l.57-2.731c.454-2.205-.492-1.906-2.127.668-1.344 2.127-1.742 4.395-.989 5.59.62.974 4.73 1.905 7.638 1.728 1.827-.107 3.634-.619 5.546-1.558zm27.762-15.488c2.617-2.61 3.726-5.788 3.74-10.702l.008-3.69 2.162-1.025c2.808-1.336 5.468-3.996 5.468-5.475 0-1.522-.676-1.444-1.899.213-.889 1.202-2.076 1.927-6.421 3.926-1.095.504-1.166.775-1.415 5.368-.292 5.298-1.01 7.282-3.968 10.902-1.813 2.204-1.877 2.496-.619 2.496.52 0 1.842-.903 2.944-2.013zm-28.501-2.957c.249-.762-1.195-1.302-1.82-.684-.264.264-.335.719-.157 1.01.412.662 1.72.441 1.977-.327zm39.303-10.177c.256-.76-1.195-1.301-1.813-.683-.27.27-.342.726-.164 1.017.413.662 1.721.441 1.977-.334zm-47.303-27.548c-1.017.484-1.544 1.581-2.25 2.42-.51.345-.102.668.191.994 1.794 1.932 2.553 4.542 3.405 6.975.837 2.873 1.89 5.958 1.016 8.952-.345 1.146-1.246 2.333-2.593 1.952-2.155-.134-4.276-.706-6.437-.683-1.923.1-3.41 1.85-5.377 1.66-1.256.082-1.203-2.573-2.37-1.863-.579 1.385-.294 2.93-.363 4.394.218.21.829.026 1.195.088h3.872c.273 1.337.24 2.87 1.2 3.933 1.344.478 2.856.065 4.132-.457 1.37-.637 1.553-2.284 1.94-3.567.411-1.378 2.216-1.017 3.282-1.558 2.606-.76 4.314-3.47 4.161-6.134-.168-4.07-1.72-7.897-2.898-11.749-.593-1.696-1.003-3.466-1.69-5.123-.081-.142-.247-.262-.416-.234zm-6.45 23.267c1.448-.094 2.077 1.685 1.77 2.866-.541 1.603-2.513.575-2.912-.58-.732-1.033-.28-2.422 1.142-2.286z"/> - <path d="M230.357 346.468c-.647-.015-1.372.227-2.09.732-3.776 2.645-4.743 5.774-2.176 6.997 1.884.903 1.408 1.963-1.558 3.45-4.245 2.118-7.993 1.855-15.11-1.089-1.75-.725-2.205-.448-1.8 1.152.391 1.572 1.828 2.432 5.397 3.243 3.84.882 8.484.597 11.47-.69 1.458-.626 3.186-1.941 4.644-3.527l2.311-2.539 2.688.335c3.314.405 3.378.44 3.378 2.026 0 1.259.071 1.287 3.115 1.572 1.714.163 3.968.313 5.02.313 1.344.007 2.105.241 2.553.867.597.832.953.875 5.96.427 4.678-.427 5.596-.391 7.708.327 1.5.512 3.15.718 4.401.583 3.584-.405 8.527-3.335 9.245-5.49.085-.263 1.387-.725 2.887-1.024 3.62-.725 3.776-1.514.398-1.934-1.465-.185-3.662-.718-4.885-1.202-1.23-.483-2.909-.889-3.733-.889-1.82 0-3.535 1.138-3.535 2.312 0 .768.27.846 2.425.625 2.027-.206 2.617-.092 3.684.754.704.555 1.173 1.209 1.024 1.444-.477.775-4.708 2.702-6.578 3-1.252.2-2.261.065-3.243-.44-1.642-.854-4.06-.982-4.515-.25-.192.32-.711.115-1.422-.554l-1.11-1.045-2.51 1.045c-2.553 1.06-3.492 1.017-3.492-.199 0-.555-.746-.619-4.508-.377-4.146.27-4.58.2-5.355-.668-.718-.797-.732-1.074-.22-1.892.47-.754.47-1.08.021-1.529-.448-.448-1.03-.44-2.666 0-4.125 1.102-5.291.484-5.291-2.738 0-1.934-1.11-3.107-2.532-3.128zm-1.024 2.958c.22 0 .406.135.69.42.363.362.555.995.398 1.4-.37.96-2.119.925-2.489-.042-.177-.47.05-.996.576-1.38.37-.27.605-.405.825-.398z"/> - <path d="M221.938 352.427c2.51-1.593 2.453-1.472 2.816-5.895.249-3.122.206-3.357-.64-3.357-1.23 0-1.87 1.351-1.87 3.925 0 1.65-.256 2.39-1.138 3.264-2.09 2.091-7.282 1.138-7.936-1.457-.22-.89.064-1.693 1.152-3.236 2.268-3.221 1.756-4.01-1.024-1.564-1.913 1.67-2.254 1.72-1.892.277.334-1.33-.362-1.856-1.92-1.465-.796.2-1.23.697-1.422 1.664-.185.946-.619 1.472-1.372 1.657-1.26.32-3.407-.875-3.407-1.892 0-.753 3.215-4.679 7.339-8.96 1.557-1.62 2.83-3.128 2.83-3.356 0-.228-.832-.412-1.849-.412-1.486 0-1.849.163-1.849.853 0 .47-2.076 3.193-4.622 6.059-5.305 5.973-5.746 7.217-3.122 8.81 2.112 1.294 4.822 1.195 6.948-.249l1.72-1.173v2.126c0 2.717.541 3.69 2.675 4.822 2.68 1.415 5.923 1.244 8.583-.441zm111.332-36.914c-1.968 1.175-.429 3.643-.13 5.283-.804 2.237-3.678 2.84-5.773 3.255-2.968.491-5.071 2.974-6.2 5.612-.612 1.713-2.089 4.37-3.698 1.761-1.398-1.417-3.969-2.54-5.623-.886-1.256 1.196-1.575 2.956-2.043 4.553-.742-1.228-1.074-3.056-2.646-3.444-2.508.353-1.602 3.516-.422 4.82 1.072 1.52 2.102 3.526 1.05 5.331-.926 2.17-4.13 3.634-6.013 1.778-1.758-.928-.582-4.242-2.314-4.424-.856.618-.926 4.086-2.297 2.206-.989-1.606-.464-3.806-1.674-5.251-1.43.177-2.58 2.64-2.104 3.961 1.908 2.573 2.692 5.8 3.436 8.866.463 1.228-.068 3.717 1.08 4.203.797-1.976.057-4.217.684-6.212 1.861-.234 3.932.616 5.885.164 2.793-.363 4.952-2.72 5.932-5.23.296-1.888-.056-3.803-.108-5.701 2.206.341 4.5.334 6.622 1.051 1.053 1.615-.334 3.875-.625 5.639-1.108 3.593-3.922 6.2-6.66 8.602-1.145.678-1.299 2.474.392 1.506 3.68-1.573 6.421-4.905 7.999-8.511 1.151-2.775.226-5.865.977-8.703 1.11-2.13 3.784-1.681 5.763-1.674 2.047-.078 3.794-2.464 3.11-4.453-.65-2.31 1.792-3.421 3.461-4.247 2.213-1.116 3.91-3.384 3.738-5.943-.09-1.309-.026-3.792-1.8-3.911zm-7.845 13.333c2.37.63-.429 5.157-1.689 2.29-.388-1.095.534-2.33 1.69-2.29zm-11 3.243c3.084-.18 1.976 4.324-.63 2.279-1.352-.679-.904-2.363.63-2.28zm-111.687 17.408c.085-.448-.142-.768-.548-.768-.86 0-1.38.754-.974 1.408.42.675 1.344.291 1.522-.64zm36.152-4.039c0-.662-.248-.91-.803-.804-1.209.228-1.344 1.764-.156 1.764.661 0 .96-.299.96-.96zm-44.735-21.703c-1.443-.297-2.35.924-2.845 2.089-1.079 1.813-2.397 3.668-4.333 4.628-1.392.387-2.91-.142-4.111-.86-1.433-.713-1.107-2.437-1.721-3.627-1.036-.814-2.874.35-2.833 1.615-.114 1.697 1.473 2.677 2.79 3.333 1.12.686 2.744 1.067 3.191 2.455-.03 1.18.444 2.53 1.88 2.074 1.607-.026 2.023 1.931 1.375 3.106-.661 1.323-1.107 2.874-.791 4.348.768.647 1.552-1.088 2.108-1.583L190 339.82c2.843.155 5.684.517 8.534.416 2.027-.037 3.753-1.288 5.042-2.755 1.823-1.906 3.32-4.146 5.403-5.79 1.482-.362.685-3.153-.863-2.347-1.394.523-1.833 2.099-2.799 3.103-1.646 1.993-3.325 4.015-5.4 5.577-1.511.627-3.25.353-4.803 0-.647-.566 1.287-1.027 1.556-1.657.89-.89 1.948-1.733 2.464-2.902-.494-1.077-2.003-1.164-3.067-1.186-2.621.315-4.623 2.515-7.27 2.722-2.009.07-.963-2.106-.058-2.848 1.772-2.104 3.687-4.086 5.537-6.12.525-.633 2.424-1.232 1.21-2.12-.425-.153-.885-.153-1.33-.16zm1.289 10.644c1.321.744-.844 1.96-1.756 1.794-1.196.359-1.217-.861-.155-1.104.598-.311 1.229-.635 1.91-.69zm-4.067 2.778c.752-.014 2.329.708.848 1.171-1.03.799-2.195-.813-.848-1.171z"/> - <path d="M223.396 339.015c0-1.003-1.8-.86-1.999.157-.128.654.079.81.918.69.597-.086 1.08-.463 1.08-.847zm79.68-7.055c.184-.96-1.152-1.6-1.856-.895-.704.704-.057 2.04.896 1.856.44-.085.874-.52.96-.96zm-124.004-9.763c1.252-1.073 1.266-1.145.725-3.505-.768-3.307-.718-3.663.54-3.976 1.594-.405 5.64 1.764 6.536 3.5.697 1.343.675 1.436-.505 2.53-1.273 1.174-1.266 2.546.007 2.546 1.053 0 3.961-2.752 3.961-3.74 0-1.372-3.228-4.615-5.781-5.803-1.579-.74-3.158-1.08-4.985-1.088-3.271 0-3.712.704-2.83 4.509 1.038 4.458-.37 5.063-3.961 1.7-2.667-2.497-3.72-5.092-3.705-9.181.007-4.388 1.685-6.557 5.468-7.069 2.51-.334 2.446-.924-.135-1.308-3.769-.569-6.955 1.948-8.163 6.443-1.344 4.985 1.735 11.057 7.182 14.186 2.851 1.636 3.99 1.686 5.646.256zm148.508-5.468c.306-.306.555-.996.555-1.529 0-.533.52-1.678 1.152-2.539.64-.86 1.16-1.742 1.16-1.955 0-.875-1.444-.846-2.582.057-1.166.91-2.041.931-2.041.042 0-.22.555-.675 1.237-1.01 1.693-.824 1.835-1.642.406-2.296-1.835-.832-3.677.69-3.869 3.2-.12 1.678.014 1.97 1.309 2.73 1.18.697 1.4 1.067 1.201 2.063-.34 1.728.377 2.332 1.472 1.237zm13.96-1.579c1.024-.917 1.856-1.962 1.856-2.31 0-.35.881-1.274 1.962-2.049 3.065-2.204 3.74-4.43 2.368-7.85-.533-1.345-2.211-3.2-5.86-6.486-2.801-2.531-5.382-4.6-5.717-4.6-.995 0-.817 3.661.192 3.981 1.82.584 2.923 1.33 5.789 3.912 3.328 3.008 4.864 5.816 4.025 7.38-.804 1.516-1.87 1.046-4.807-2.104-1.544-1.657-3.072-3.008-3.385-3.008-.342.007-.583.604-.583 1.444 0 1.052.561 2.055 2.083 3.747 2.482 2.76 2.724 4.416.86 5.881-.668.526-1.358.96-1.528.96-.164 0-.711-.825-1.21-1.828-1.037-2.104-7.388-8.81-8.34-8.81-.434 0-.648.54-.648 1.607 0 1.287.256 1.742 1.28 2.268 1.259.655 4.374 3.79 7.503 7.574.896 1.08 1.777 1.955 1.97 1.962.184 0 1.173-.753 2.19-1.67zm6.229-17.827c-.413-1.33-8.932-10.098-9.806-10.098-.455 0-.598.54-.491 1.934.12 1.693.306 1.984 1.472 2.29.725.192 2.972 1.955 4.985 3.911 2.005 1.956 3.769 3.442 3.911 3.292.142-.142.114-.74-.071-1.33zm-50.88 98.687a1.266 1.16 0 1 1-2.533 0 1.266 1.16 0 1 1 2.533 0zm4.473-1.493a1.266 1.16 0 1 1-2.533 0 1.266 1.16 0 1 1 2.533 0z"/> - </g> -</svg> diff --git a/img/flags/1x1/bo.svg b/img/flags/1x1/bo.svg deleted file mode 100644 index 7b27d90..0000000 --- a/img/flags/1x1/bo.svg +++ /dev/null @@ -1,685 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" height="512" width="512" viewBox="0 0 512 512"> - <path fill="#007934" d="M0 0h512v512H0z"/> - <path fill="#ffe000" d="M0 0h512v341.333H0z"/> - <path fill="#d52b1e" d="M0 0h512v170.667H0z"/> - <path d="M307.817 224.759c-.615.592-104.091 103.949-104.546 104.4a97.808 97.808 0 0 0-1.383-1.038c.426-.435 103.952-103.742 104.558-104.369-.265-.308 1.862 1.304 1.371 1.007z" fill="#a05a2c" stroke="#000" stroke-width=".131"/> - <path d="M314.331 218.167c-.383.733-1.52 2.615-1.077 4.002-.844-.545-1.268-.958-2.078-1.556.545.957.382 1.513-.137 1.859-.339.448-1.501.344-2.243.203.743.453 1.566.922 2.596 1.022 1.03.1 1.388.044 2.015.105-.624.335-2.267.885-3.414 1.063-.574.09-1.685.191-2.176-.106-.615.592-1.977-.38-1.37-1.007-.266-.308-.298-.805-.365-1.461-.076-.741.086-2.022.706-3.222.095.6.285 1.234.517 1.81.228.565.708 1.026 1.183 1.525-.277-.52-.444-1.306.104-1.873.547-.567 1.342-.568 2.089-.273-.665-.514-1.17-.822-1.973-1.407.83-.007 3.486-1.03 4.363-1.554.876-.525 3.66-2.728 5.222-4.058-1.288 1.488-3.587 4.212-3.962 4.928z" fill="#e7e7e7" stroke="#000" stroke-width=".131"/> - <path d="M327.494 237.637c-.781.424-133.475 75.32-134.056 75.646-.256-.344-.751-1.01-.996-1.324.548-.317 133.275-75.154 134.058-75.613-.156-.36 1.37 1.693.994 1.291z" fill="#a05a2c" stroke="#000" stroke-width=".131"/> - <path d="M335.875 232.84c-.604.614-2.302 2.155-2.322 3.593-.636-.724-.91-1.221-1.497-1.987.216 1.048-.119 1.545-.729 1.755-.47.35-1.554-.025-2.222-.336.568.612 1.209 1.257 2.167 1.597.958.34 1.32.37 1.904.577-.709.174-2.465.314-3.625.215-.58-.05-1.68-.215-2.057-.617-.781.424-1.777-.832-.994-1.291-.156-.36-.026-.845.12-1.491.165-.73.732-1.923 1.715-2.93a8.298 8.298 0 0 0-.086 1.861c.038.598.351 1.154.647 1.746-.099-.564-.007-1.36.702-1.776.708-.415 1.473-.228 2.096.232-.473-.652-.86-1.067-1.444-1.82.801.19 3.682-.165 4.693-.462 1.012-.297 4.395-1.757 6.325-2.667-1.717 1.126-4.802 3.201-5.393 3.802z" fill="#e7e7e7" stroke="#000" stroke-width=".131"/> - <path d="M316.079 231.982c-.706.514-119.95 90.516-120.474 90.908-.308-.31-.907-.911-1.2-1.192.491-.38 119.778-90.328 120.48-90.876-.214-.338 1.631 1.513 1.194 1.16z" fill="#a05a2c" stroke="#000" stroke-width=".131"/> - <path d="M323.599 226.232c-.498.68-1.93 2.408-1.716 3.835-.748-.641-1.1-1.1-1.805-1.79.384 1.013.133 1.545-.437 1.825-.41.404-1.543.161-2.255-.067.662.538 1.401 1.1 2.405 1.322 1.003.222 1.368.21 1.979.345-.673.257-2.39.605-3.555.645-.582.02-1.699-.012-2.136-.365-.706.513-1.896-.612-1.195-1.16-.213-.338-.163-.833-.123-1.49.045-.744.413-1.992 1.222-3.107a8.355 8.355 0 0 0 .218 1.853c.134.588.535 1.101.924 1.652-.19-.547-.228-1.346.407-1.842.634-.496 1.421-.402 2.113-.02-.575-.59-1.025-.955-1.725-1.63.824.092 3.619-.603 4.572-1.018.953-.415 4.067-2.264 5.83-3.396-1.517 1.32-4.236 3.743-4.723 4.408z" fill="#e7e7e7" stroke="#000" stroke-width=".131"/> - <path d="M204.183 224.759c.615.592 104.091 103.949 104.546 104.4a97.808 97.808 0 0 1 1.383-1.038c-.426-.435-103.953-103.742-104.558-104.369.265-.308-1.862 1.304-1.371 1.007z" fill="#a05a2c" stroke="#000" stroke-width=".131"/> - <path d="M197.669 218.167c.383.733 1.52 2.615 1.077 4.002.844-.545 1.268-.958 2.078-1.556-.545.957-.382 1.513.137 1.859.339.448 1.501.344 2.243.203-.743.453-1.566.922-2.596 1.022-1.03.1-1.388.044-2.015.105.624.335 2.267.885 3.414 1.063.574.09 1.685.191 2.176-.106.615.592 1.976-.38 1.37-1.007.266-.308.297-.805.365-1.461.076-.741-.086-2.022-.706-3.222a8.544 8.544 0 0 1-.517 1.81c-.228.565-.708 1.026-1.183 1.525.277-.52.444-1.306-.104-1.873-.547-.567-1.342-.568-2.089-.273.665-.514 1.17-.822 1.973-1.407-.83-.007-3.486-1.03-4.363-1.554-.876-.525-3.66-2.728-5.222-4.058 1.288 1.488 3.587 4.212 3.962 4.928z" fill="#e7e7e7" stroke="#000" stroke-width=".131"/> - <path d="M184.506 237.637c.781.424 133.475 75.32 134.056 75.646.256-.344.751-1.01.996-1.324-.548-.317-133.275-75.154-134.058-75.613.156-.36-1.37 1.693-.995 1.291z" fill="#a05a2c" stroke="#000" stroke-width=".131"/> - <path d="M176.125 232.84c.604.614 2.302 2.155 2.322 3.593.636-.724.91-1.221 1.497-1.987-.216 1.048.119 1.545.729 1.755.47.35 1.554-.025 2.222-.336-.568.612-1.209 1.257-2.167 1.597-.958.34-1.32.37-1.904.577.709.174 2.465.314 3.625.215.58-.05 1.68-.215 2.056-.617.782.424 1.778-.832.995-1.291.156-.36.026-.845-.12-1.491-.165-.73-.732-1.923-1.715-2.93.102.6.124 1.253.086 1.861-.038.598-.351 1.154-.647 1.746.099-.564.007-1.36-.702-1.776-.708-.415-1.473-.228-2.096.232.473-.652.86-1.067 1.444-1.82-.801.19-3.682-.165-4.693-.462-1.012-.297-4.395-1.757-6.325-2.667 1.717 1.126 4.802 3.201 5.393 3.802z" fill="#e7e7e7" stroke="#000" stroke-width=".131"/> - <path d="M195.921 231.982c.706.514 119.95 90.516 120.473 90.908.31-.31.908-.911 1.202-1.192-.492-.38-119.779-90.328-120.48-90.876.213-.338-1.632 1.513-1.195 1.16z" fill="#a05a2c" stroke="#000" stroke-width=".131"/> - <path d="M188.401 226.232c.498.68 1.93 2.408 1.716 3.835.748-.641 1.1-1.1 1.805-1.79-.384 1.013-.133 1.545.437 1.825.41.404 1.543.161 2.255-.067-.662.538-1.401 1.1-2.405 1.322-1.004.222-1.368.21-1.979.345.673.257 2.39.605 3.555.645.582.02 1.699-.012 2.136-.365.706.513 1.896-.612 1.195-1.16.213-.338.163-.833.123-1.49-.045-.744-.413-1.992-1.222-3.107a8.355 8.355 0 0 1-.218 1.853c-.134.588-.535 1.101-.924 1.652.19-.547.228-1.346-.407-1.842-.634-.496-1.421-.402-2.113-.02.574-.59 1.025-.955 1.725-1.63-.824.092-3.619-.603-4.572-1.018-.953-.415-4.067-2.264-5.83-3.396 1.517 1.32 4.236 3.743 4.723 4.408z" fill="#e7e7e7" stroke="#000" stroke-width=".131"/> - <path d="M234.813 302.352c4.177-2.846 16.094-4.336 17.771-3.867-8.47 6.451-17.034 6.687-17.771 3.867z" fill="#00e519" stroke="#000" stroke-width=".131"/> - <path d="M234.855 302.369c.738 2.82 9.258 2.567 17.71-3.847-9.05 2.737-16.694 4.323-17.71 3.847z" fill="#ffe533" stroke="#000" stroke-width=".131"/> - <path d="M234.855 302.369c.738 2.82 9.258 2.567 17.71-3.847-9.05 2.737-16.694 4.323-17.71 3.847z" fill="none" stroke="#000" stroke-width=".131" stroke-linecap="round"/> - <path d="M234.831 302.317c4.448-3.026 16.722-4.183 17.803-3.878-8.484 6.425-17.065 6.697-17.803 3.878z" fill="none" stroke="#000" stroke-width=".131"/> - <path d="M285.398 234.841l-27.164 55.81c-1.35 1.044-2.467-.36-2.852-.203-1.628 1.827-3.87 2.205-4.344 2.631-1.89 2.573-.849 4.663-.736 4.836 1.413 1.907-1.67 3.763-1.547 4.352-.605 1.07-2.88.828-3.348 2.123-.102-.147-4.624 8.879-5.1 9.845-.675.523-3.89 6.535-3.89 6.535-2.254-.038-10.916-5.565-11.086-5.48 4.867-7.786 16.54-19.734 16.303-20.497 3.281-5.554 8.52-11.572 10.775-11.533 3.196-1.682 4.755-6.009 4.134-7.005 2.456-.058 3.794-1.519 3.965-1.605l20.051-40.077c1.676-.552 1.423.132 1.96 1.097 0 0 1.068-1.283.997-1.44.948-.462 1.87.195 1.882.611z" fill="#a05a2c" stroke="#000" stroke-width=".131"/> - <path d="M286.448 222.666c-.52 1.102.286 1.107.563 1.256l1.153.312c1.303.02 1.99.695 2.001 1.112l-31.93 65.305c-1.35 1.044-2.64-.273-3.054-.106l21.898-44.619s8.427-15.684 10.635-20.043l-2.897-1.24c-.899-.213-1.168-.815-.773-1.726l13.41-23.059-10.81 22.384-.196.424" fill="#cce5e5" stroke="#000" stroke-width=".131"/> - <path d="M286.448 222.666c-.52 1.102.286 1.107.563 1.256l1.153.312c1.303.02 1.99.695 2.001 1.112l-31.93 65.305c-1.35 1.044-2.64-.273-3.054-.106l21.898-44.619s8.427-15.684 10.635-20.043l-2.897-1.24c-.899-.213-1.168-.815-.773-1.726l13.41-23.059-10.81 22.384-.196.424" fill="#e7e7e7" stroke="#000" stroke-width=".131"/> - <path d="M244.057 290.603c-3.137-.139-4.895 2.182-2.847 4.96m1.47-2.495c-1.126.61-1.838-.356-1.838-.356m16.269-13.942c-1.658 5.98-4.672 9.945-5.279 11.165-2.303 2.35-4.21 7.692-3.862 8.627l-8.64 14.194" fill="none" stroke="#000" stroke-width=".131"/> - <path d="M258.091 290.877c-1.41-.496-6.083-4.843-10.67-4.083-3.495 4.062-5.59 8.204-6.211 8.77 4.267 3.519 7.076 5.266 8.117 5.795.68-.434 1.05-1.637 1.05-1.637.888-.983-.201-1.855-.201-1.855.119-2.622 2.026-4.45 3.962-4.577 2.428-.199 1.746-.395 2.055-.406 1.113-.637 1.898-2.007 1.898-2.007z" fill="#cce5e5" stroke="#000" stroke-width=".131"/> - <path d="M258.091 290.877c-1.41-.496-6.083-4.843-10.67-4.083-3.495 4.062-5.59 8.204-6.211 8.77 4.267 3.519 7.076 5.266 8.117 5.795.68-.434 1.05-1.637 1.05-1.637.888-.983-.201-1.855-.201-1.855.119-2.622 2.026-4.45 3.962-4.577 2.428-.199 1.746-.395 2.055-.406 1.113-.637 1.898-2.007 1.898-2.007z" fill="none" stroke="#000" stroke-width=".131"/> - <path d="M253.447 290.965c-2.151-.042-4.35.981-5.069 2.809l5.069-2.81" fill="#cce5e5" stroke="#000" stroke-width=".131"/> - <path d="M253.447 290.965c-2.151-.042-4.35.981-5.069 2.809m-3.836.722c.2.445.76.681 1.277.51.518-.17.78-.676.58-1.121-.198-.445-.776-.645-1.294-.474-.518.17-.762.64-.563 1.085zm2.67-3.64c.198.445.79.67 1.307.5.517-.17.75-.667.55-1.112-.198-.445-.747-.654-1.265-.484-.517.17-.792.651-.593 1.096z" fill="none" stroke="#000" stroke-width=".131"/> - <path d="M282.996 241.187c.853-.281 1.226-1.244.816-2.16l-5.003-1.806s-.584.102-1.086.777c-.49.701.18 1.262.18 1.262l5.093 1.927" fill="#cce5e5" stroke="#000" stroke-width=".131"/> - <path d="M282.996 241.187c.853-.281 1.226-1.244.816-2.16l-5.003-1.806s-.584.102-1.086.777c-.49.701.18 1.262.18 1.262l5.093 1.927" fill="none" stroke="#000" stroke-width=".131"/> - <path d="M228.832 305.13c4.12-2.91 16.004-4.577 17.69-4.134-8.338 6.577-16.895 6.941-17.69 4.133z" fill="#00e519" stroke="#000" stroke-width=".131"/> - <path d="M228.874 305.145c.796 2.808 9.31 2.428 17.63-4.112-8.993 2.873-16.604 4.572-17.63 4.112z" fill="#ffe533" stroke="#000" stroke-width=".131"/> - <path d="M228.874 305.145c.796 2.808 9.31 2.428 17.63-4.112-8.993 2.873-16.604 4.572-17.63 4.112z" fill="none" stroke="#000" stroke-width=".131" stroke-linecap="round"/> - <path d="M228.85 305.093c4.385-3.092 16.634-4.433 17.72-4.144-8.35 6.551-16.925 6.952-17.72 4.144z" fill="none" stroke="#000" stroke-width=".131"/> - <path d="M278.036 236.871l-26.024 56.207c-1.328 1.065-2.475-.321-2.856-.16-1.59 1.852-3.825 2.263-4.29 2.696-1.836 2.601-.754 4.675-.638 4.847 1.452 1.885-1.593 3.787-1.457 4.374-.583 1.079-2.863.87-3.305 2.173-.104-.145-4.443 8.946-4.899 9.92-.664.532-3.756 6.592-3.756 6.592-2.255-.005-11.027-5.4-11.196-5.312 4.708-7.859 16.136-19.98 15.883-20.739 3.168-5.602 8.284-11.698 10.539-11.693 3.162-1.73 4.632-6.079 3.99-7.066 2.455-.094 3.763-1.575 3.933-1.664l19.232-40.371c1.664-.577 1.425.111 1.98 1.067 0 0 1.043-1.299.97-1.454.937-.476 1.873.167 1.894.583z" fill="#a05a2c" stroke="#000" stroke-width=".131"/> - <path d="M278.036 236.871l-26.024 56.207c-1.328 1.065-2.475-.321-2.856-.16-1.59 1.852-3.825 2.263-4.29 2.696-1.836 2.601-.754 4.675-.638 4.847 1.452 1.885-1.593 3.787-1.457 4.374-.583 1.079-2.863.87-3.305 2.173-.104-.145-4.443 8.946-4.899 9.92-.664.532-3.756 6.592-3.756 6.592-2.255-.005-11.027-5.4-11.196-5.312 4.708-7.859 16.136-19.98 15.883-20.739 3.168-5.602 8.284-11.698 10.539-11.693 3.162-1.73 4.632-6.079 3.99-7.066 2.455-.094 3.763-1.575 3.933-1.664l19.232-40.371c1.664-.577 1.425.111 1.98 1.067 0 0 1.043-1.299.97-1.454.937-.476 1.873.167 1.894.583z" fill="none" stroke="#000" stroke-width=".131"/> - <path d="M278.838 224.681c-.498 1.11.308 1.103.588 1.248l1.159.295c1.303 0 2.004.665 2.024 1.082l-30.597 65.772c-1.328 1.065-2.644-.233-3.055-.06l20.986-44.94s8.107-15.808 10.225-20.199l-2.92-1.195c-.904-.2-1.186-.798-.81-1.716l12.94-23.255-10.354 22.542-.186.426" fill="#cce5e5" stroke="#000" stroke-width=".131"/> - <path d="M278.838 224.681c-.498 1.11.308 1.103.588 1.248l1.159.295c1.303 0 2.004.665 2.024 1.082l-30.597 65.772c-1.328 1.065-2.644-.233-3.055-.06l20.986-44.94s8.106-15.807 10.225-20.199l-2.92-1.195c-.904-.2-1.186-.798-.81-1.716l12.94-23.255-10.354 22.542-.186.426" fill="#e7e7e7" stroke="#000" stroke-width=".131"/> - <path d="M237.835 293.243c-3.139-.092-4.85 2.255-2.745 5.002m1.419-2.517c-1.113.628-1.845-.329-1.845-.329m15.982-14.182c-1.535 6.004-4.468 10.013-5.05 11.242-2.255 2.384-4.054 7.754-3.685 8.683l-8.35 14.321" fill="none" stroke="#000" stroke-width=".131"/> - <path d="M251.874 293.307c-1.421-.474-6.181-4.75-10.753-3.923-3.411 4.114-5.422 8.287-6.031 8.861 4.338 3.455 7.183 5.16 8.234 5.673.67-.444 1.016-1.652 1.016-1.652.868-.996-.238-1.852-.238-1.852.065-2.623 1.935-4.48 3.868-4.635 2.423-.235 1.738-.421 2.046-.437 1.1-.653 1.858-2.035 1.858-2.035z" fill="#cce5e5" stroke="#000" stroke-width=".131"/> - <path d="M251.874 293.307c-1.421-.474-6.181-4.75-10.753-3.923-3.411 4.114-5.422 8.287-6.031 8.861 4.338 3.455 7.183 5.16 8.234 5.673.67-.444 1.016-1.652 1.016-1.652.868-.996-.238-1.852-.238-1.852.065-2.623 1.935-4.48 3.868-4.635 2.423-.235 1.738-.421 2.046-.437 1.1-.653 1.858-2.035 1.858-2.035z" fill="none" stroke="#000" stroke-width=".131"/> - <path d="M247.231 293.464c-2.151-.01-4.328 1.047-5.01 2.885l5.01-2.885" fill="#cce5e5" stroke="#000" stroke-width=".131"/> - <path d="M247.231 293.464c-2.151-.01-4.328 1.047-5.01 2.885m-3.821.78c.208.441.773.669 1.288.49.514-.178.766-.688.557-1.13-.208-.441-.79-.632-1.304-.454-.515.178-.75.652-.541 1.093zm2.595-3.68c.208.441.803.658 1.317.48.514-.178.737-.678.529-1.12-.208-.441-.762-.643-1.276-.465s-.778.663-.57 1.104z" fill="none" stroke="#000" stroke-width=".131"/> - <path d="M275.763 243.251c.847-.293 1.2-1.262.772-2.172l-5.04-1.73s-.581.11-1.069.793c-.475.708.206 1.26.206 1.26l5.131 1.85" fill="#cce5e5" stroke="#000" stroke-width=".131"/> - <path d="M275.763 243.251c.847-.293 1.2-1.262.772-2.172l-5.04-1.73s-.581.11-1.069.793c-.475.708.206 1.26.206 1.26l5.131 1.85" fill="none" stroke="#000" stroke-width=".131"/> - <path d="M277.994 302.167c-4.22-2.875-16.257-4.38-17.951-3.907 8.557 6.516 17.206 6.755 17.951 3.907z" fill="#00e519" stroke="#000" stroke-width=".131"/> - <path d="M277.952 302.183c-.746 2.848-9.352 2.593-17.89-3.886 9.142 2.766 16.863 4.367 17.89 3.886z" fill="#ffe533" stroke="#000" stroke-width=".131"/> - <path d="M277.952 302.183c-.746 2.848-9.352 2.593-17.89-3.886 9.142 2.766 16.863 4.367 17.89 3.886z" fill="none" stroke="#000" stroke-width=".131" stroke-linecap="round"/> - <path d="M277.975 302.13c-4.492-3.056-16.89-4.225-17.982-3.917 8.57 6.49 17.237 6.765 17.982 3.917z" fill="none" stroke="#000" stroke-width=".131"/> - <path d="M226.897 233.974l27.439 56.373c1.363 1.055 2.492-.363 2.88-.205 1.645 1.846 3.91 2.227 4.389 2.658 1.908 2.599.857 4.71.744 4.885-1.428 1.926 1.687 3.8 1.562 4.396.61 1.08 2.91.836 3.382 2.144.102-.148 4.67 8.968 5.151 9.945.682.527 3.93 6.6 3.93 6.6 2.277-.039 11.025-5.621 11.198-5.534-4.917-7.865-16.708-19.935-16.468-20.705-3.314-5.61-8.607-11.689-10.884-11.65-3.229-1.7-4.803-6.069-4.175-7.076-2.481-.058-3.833-1.534-4.006-1.62l-20.254-40.483c-1.692-.557-1.436.134-1.979 1.108 0 0-1.079-1.296-1.008-1.454-.957-.467-1.889.197-1.9.618z" fill="#a05a2c" stroke="#000" stroke-width=".131"/> - <path d="M225.836 221.675c.526 1.114-.288 1.118-.568 1.269l-1.164.315c-1.316.021-2.01.703-2.022 1.124l32.254 65.964c1.363 1.055 2.665-.276 3.084-.107l-22.12-45.07s-8.512-15.842-10.741-20.245l2.925-1.252c.908-.216 1.18-.824.781-1.744l-13.545-23.292 10.92 22.61.196.428" fill="#cce5e5" stroke="#000" stroke-width=".131"/> - <path d="M225.836 221.675c.526 1.114-.288 1.118-.568 1.269l-1.164.315c-1.316.021-2.01.703-2.022 1.124l32.254 65.964c1.363 1.055 2.665-.276 3.084-.107l-22.12-45.07s-8.511-15.842-10.741-20.245l2.925-1.252c.908-.216 1.18-.824.781-1.744l-13.545-23.292 10.92 22.61.196.428" fill="#e7e7e7" stroke="#000" stroke-width=".131"/> - <path d="M268.657 290.298c3.168-.14 4.944 2.204 2.875 5.01m-1.484-2.52c1.136.617 1.855-.36 1.855-.36m-16.432-14.082c1.674 6.04 4.718 10.045 5.331 11.278 2.327 2.373 4.254 7.77 3.901 8.714l8.728 14.337" fill="none" stroke="#000" stroke-width=".131"/> - <path d="M254.48 290.576c1.425-.501 6.145-4.892 10.779-4.125 3.53 4.103 5.646 8.287 6.273 8.858-4.31 3.555-7.148 5.32-8.2 5.854-.686-.439-1.06-1.653-1.06-1.653-.897-.993.204-1.874.204-1.874-.12-2.648-2.047-4.496-4.003-4.624-2.452-.2-1.763-.398-2.075-.41-1.125-.643-1.918-2.026-1.918-2.026z" fill="#cce5e5" stroke="#000" stroke-width=".131"/> - <path d="M254.48 290.576c1.425-.501 6.145-4.892 10.779-4.125 3.53 4.103 5.646 8.287 6.273 8.858-4.31 3.555-7.148 5.32-8.2 5.854-.686-.439-1.06-1.653-1.06-1.653-.897-.993.204-1.874.204-1.874-.12-2.648-2.047-4.496-4.003-4.624-2.452-.2-1.763-.398-2.075-.41-1.125-.643-1.918-2.026-1.918-2.026z" fill="none" stroke="#000" stroke-width=".131"/> - <path d="M259.172 290.664c2.172-.043 4.392.991 5.12 2.838l-5.12-2.838" fill="#cce5e5" stroke="#000" stroke-width=".131"/> - <path d="M259.172 290.664c2.172-.043 4.392.991 5.12 2.838m3.874.729c-.2.45-.766.688-1.29.515-.523-.172-.788-.683-.586-1.133.2-.449.785-.65 1.308-.478.523.172.77.647.568 1.096zm-2.696-3.677c-.201.45-.798.677-1.32.505-.523-.172-.759-.674-.557-1.123.2-.45.755-.66 1.278-.489.523.172.8.658.6 1.107z" fill="none" stroke="#000" stroke-width=".131"/> - <path d="M229.324 240.383c-.862-.283-1.239-1.257-.825-2.182l5.054-1.824s.59.103 1.097.785c.494.708-.182 1.275-.182 1.275l-5.144 1.946" fill="#cce5e5" stroke="#000" stroke-width=".131"/> - <path d="M229.324 240.383c-.862-.283-1.239-1.257-.825-2.182l5.054-1.824s.59.103 1.097.785c.494.708-.182 1.275-.182 1.275l-5.144 1.946" fill="none" stroke="#000" stroke-width=".131"/> - <path d="M283.343 305.13c-4.12-2.91-16.004-4.577-17.69-4.134 8.338 6.577 16.895 6.941 17.69 4.133z" fill="#00e519" stroke="#000" stroke-width=".131"/> - <path d="M283.3 305.145c-.795 2.808-9.309 2.428-17.63-4.112 8.994 2.873 16.604 4.572 17.63 4.112z" fill="#ffe533" stroke="#000" stroke-width=".131"/> - <path d="M283.3 305.145c-.795 2.808-9.309 2.428-17.63-4.112 8.994 2.873 16.604 4.572 17.63 4.112z" fill="none" stroke="#000" stroke-width=".131" stroke-linecap="round"/> - <path d="M283.325 305.093c-4.386-3.092-16.634-4.433-17.721-4.144 8.352 6.551 16.926 6.952 17.72 4.144z" fill="none" stroke="#000" stroke-width=".131"/> - <path d="M234.139 236.871l26.024 56.207c1.328 1.065 2.474-.321 2.855-.16 1.591 1.852 3.826 2.263 4.29 2.696 1.837 2.601.754 4.675.638 4.847-1.452 1.885 1.594 3.787 1.458 4.374.583 1.079 2.863.87 3.305 2.173.104-.145 4.443 8.946 4.899 9.92.663.532 3.756 6.592 3.756 6.592 2.254-.005 11.027-5.4 11.196-5.312-4.709-7.859-16.136-19.98-15.883-20.739-3.168-5.602-8.285-11.698-10.539-11.693-3.162-1.73-4.632-6.079-3.99-7.066-2.455-.094-3.763-1.575-3.933-1.664l-19.232-40.371c-1.664-.577-1.425.111-1.981 1.067 0 0-1.042-1.299-.969-1.454-.937-.476-1.873.167-1.894.583z" fill="#a05a2c" stroke="#000" stroke-width=".131"/> - <path d="M234.139 236.871l26.024 56.207c1.328 1.065 2.474-.321 2.855-.16 1.591 1.852 3.826 2.263 4.29 2.696 1.837 2.601.754 4.675.638 4.847-1.452 1.885 1.594 3.787 1.458 4.374.583 1.079 2.863.87 3.305 2.173.104-.145 4.443 8.946 4.899 9.92.663.532 3.756 6.592 3.756 6.592 2.254-.005 11.027-5.4 11.196-5.312-4.709-7.859-16.136-19.98-15.883-20.739-3.168-5.602-8.285-11.698-10.539-11.693-3.162-1.73-4.632-6.079-3.99-7.066-2.455-.094-3.763-1.575-3.933-1.664l-19.232-40.371c-1.664-.577-1.425.111-1.981 1.067 0 0-1.042-1.299-.969-1.454-.937-.476-1.873.167-1.894.583z" fill="none" stroke="#000" stroke-width=".131"/> - <path d="M233.337 224.681c.497 1.11-.308 1.103-.588 1.248l-1.16.295c-1.302 0-2.003.665-2.023 1.082l30.597 65.772c1.328 1.065 2.644-.233 3.055-.06l-20.986-44.94s-8.107-15.808-10.225-20.199l2.92-1.195c.904-.2 1.186-.798.809-1.716l-12.939-23.255 10.353 22.542.187.426" fill="#cce5e5" stroke="#000" stroke-width=".131"/> - <path d="M233.337 224.681c.497 1.11-.308 1.103-.588 1.248l-1.16.295c-1.302 0-2.003.665-2.023 1.082l30.597 65.772c1.328 1.065 2.644-.233 3.055-.06l-20.986-44.94s-8.107-15.807-10.225-20.199l2.92-1.195c.904-.2 1.186-.798.809-1.716l-12.939-23.255 10.353 22.542.187.426" fill="#e7e7e7" stroke="#000" stroke-width=".131"/> - <path d="M274.34 293.243c3.138-.092 4.849 2.255 2.745 5.002m-1.419-2.517c1.113.628 1.844-.329 1.844-.329m-15.982-14.182c1.536 6.004 4.469 10.013 5.05 11.242 2.256 2.384 4.054 7.754 3.686 8.683l8.35 14.321" fill="none" stroke="#000" stroke-width=".131"/> - <path d="M260.301 293.307c1.42-.474 6.181-4.75 10.753-3.923 3.411 4.114 5.422 8.287 6.031 8.861-4.338 3.455-7.183 5.16-8.235 5.673-.67-.444-1.016-1.652-1.016-1.652-.868-.996.24-1.852.24-1.852-.066-2.623-1.936-4.48-3.87-4.635-2.423-.235-1.737-.421-2.046-.437-1.1-.653-1.857-2.035-1.857-2.035z" fill="#cce5e5" stroke="#000" stroke-width=".131"/> - <path d="M260.301 293.307c1.42-.474 6.181-4.75 10.753-3.923 3.411 4.114 5.422 8.287 6.031 8.861-4.338 3.455-7.183 5.16-8.235 5.673-.67-.444-1.016-1.652-1.016-1.652-.868-.996.24-1.852.24-1.852-.066-2.623-1.936-4.48-3.87-4.635-2.423-.235-1.737-.421-2.046-.437-1.1-.653-1.857-2.035-1.857-2.035z" fill="none" stroke="#000" stroke-width=".131"/> - <path d="M264.944 293.464c2.15-.01 4.328 1.047 5.01 2.885l-5.01-2.885" fill="#cce5e5" stroke="#000" stroke-width=".131"/> - <path d="M264.944 293.464c2.15-.01 4.328 1.047 5.01 2.885m3.82.78c-.207.441-.772.669-1.287.49-.514-.178-.766-.688-.557-1.13.208-.441.79-.632 1.304-.454.515.178.749.652.54 1.093zm-2.594-3.68c-.208.441-.803.658-1.317.48-.514-.178-.737-.678-.529-1.12.208-.441.761-.643 1.275-.465.514.178.78.663.571 1.104z" fill="none" stroke="#000" stroke-width=".131"/> - <path d="M236.412 243.251c-.847-.293-1.2-1.262-.772-2.172l5.04-1.73s.58.11 1.068.793c.476.708-.205 1.26-.205 1.26l-5.131 1.85" fill="#cce5e5" stroke="#000" stroke-width=".131"/> - <path d="M236.412 243.251c-.847-.293-1.2-1.262-.772-2.172l5.04-1.73s.58.11 1.068.793c.476.708-.205 1.26-.205 1.26l-5.131 1.85" fill="none" stroke="#000" stroke-width=".131"/> - <path d="M250.934 267.377c.556-.62 37.479-39.977 37.905-40.438-.38-.256-1.112-.753-1.455-.997-.414.432-37.434 39.832-38.031 40.45-.404-.174 2.016 1.351 1.58.985z" fill="#a05a2c" stroke="#000" stroke-width=".131"/> - <path d="M287.8 226.355c-1.342-1.093-3.678-2.385-5.32-1.961-.554-2.29 2.67-4.677 4.022-4.328-.338 2.51 3.398 4.102 3.328 4.11l-2.03 2.179z" fill="#e7e7e7" fill-rule="evenodd" stroke="#000" stroke-width=".131"/> - <path d="M290.246 224.433c1.043.82 1.492.883 2.976 1.682 1.456.783 3.46-1.189 4.387-1.796 0 0 .994 3.626-1.208 6.017-2.2 2.39-4.858 2.897-6.958 2.194 0 0 2.765-2.709 1.624-3.885-1.105-1.14-1.504-1.232-2.606-1.954" fill="#e7e7e7" stroke="#000" stroke-width=".131"/> - <path transform="matrix(-.67726 .73575 -.82314 -.56784 0 0)" fill="#e7e7e7" stroke="#000" stroke-width=".132" d="M19.355-370.222h4.413v2.415h-4.413z"/> - <path d="M243.38 309.67l-.984 9.64s1.492-1.826 1.85-2.432c.359-.607 1.652-2.23 1.929-7.85 0 0-1.01-3.107-1.486-3.1-.79-.39-1.31 3.741-1.31 3.741zm2.37-21.495s-2.588 15.48-2.85 16.888c0 .482 1.313 1.758 2.262-1.235l1.564-11.254s-.703-2.999-.976-4.399z" fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".131"/> - <path d="M251.602 303.536c-.631-.793-1.42-1.785-1.498-2.185l-.408 3.415s2.154 1.574 1.847 4.587l.418-.607.242-1.207s.442-2.012.446-3.215c0 0-.455-.195-1.047-.788z" fill="#d52b1e" fill-rule="evenodd" stroke="#000" stroke-width=".131"/> - <path d="M242.396 319.309s3.576-3.06 3.779-10.282l.443-2.012s.074 1.603.79.39c.7-1.615.665-3.018.665-3.018s1.293-1.623 1.683.377c0 0-1.201 9.444-1.283 10.247a54.753 54.753 0 0 1-.285 2.21s-.71-1.193-1.427.02c-.777 1.215-2.01 2.837-4.365 2.068zm4.33-26.737l-1.563 11.254s1.246.584 1.455 3.189c.114 1.201.592.593.79.39.261-.806.068-2.408.068-2.408l.68-7.832s-1.354-3.59-1.43-4.593z" fill="#ffe000" fill-rule="evenodd" stroke="#000" stroke-width=".131"/> - <path d="M245.488 318.665l-.228 2.811s1.07-.015 1.788-1.228c.836-1.216 1.14-3.025 1.14-3.025s-.829-1.192-1.427.02c-.578 1.011-1.273 1.422-1.273 1.422zm1.92-11.259c.578-1.01.763-2.819.664-3.018l-.727.61c.234 1.2.063 2.408.063 2.408z" fill="#ffe000" fill-rule="evenodd" stroke="#000" stroke-width=".131"/> - <path d="M250.93 306.273c-.491-.996-1.322-1.586-1.322-1.586l-1.588 12.658s-.447 3.215-2.43 4.046c0 0 1.13 11.015 4.707 7.956.517-.409 1.162-3.827.951-5.83-.25-2.203-.834-5.203-.89-6.406-.034-1.403.164-2.825.509-5.036.14-.804.557-2.567.637-2.769.199-.203-.043-1.838-.574-3.033z" fill="#d52b1e" fill-rule="evenodd" stroke="#000" stroke-width=".131"/> - <path d="M252.65 304.327s.967.989 1.146.986c.237-.003-2.51 20.643-2.51 20.643s.103-2.165-.7-6.368c-.651-3.415.19-8 .925-10.199 0 0 .866-.646 1.139-5.062z" fill="#d52b1e" fill-rule="evenodd" stroke="#000" stroke-width=".131"/> - <path d="M248.076 297.372s-.534 5.824-.66 7.63c0 0 1.812-2.633 2.28-.232l.407-3.416s-1.576-2.585-2.027-3.982z" fill="#f7e214" fill-rule="evenodd" stroke="#000" stroke-width=".131"/> - <path d="M246.689 306.997s-.595-6.523-3.755-1.912c-.122.002-.29 2.592-.108 3.212.099.83.973 1.855 1.339 2.472.69 1.028 1.43-.228 1.43-.228s.718-1.048 1.094-3.544z" fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".131"/> - <path d="M221.652 252.734c-.116-3.712-1.284-9.888-1.342-14.121l-12.807-13.05s-1.58 10.573-6.23 16.618l20.38 10.56" fill="#d52b1e" stroke="#000" stroke-width=".131"/> - <path d="M222.577 253.174c.54-2.582 1.187-5.488 1.616-10.888l-8.244-8.123c.033 3.39-3.806 8.634-4.066 14.968" fill="#ffe000" stroke="#000" stroke-width=".131"/> - <path d="M229.687 260.994c.945-4.53-1.373-5.092 2.075-11.466l-7.618-7.305c-1.42 4.296-2.375 7.06-2.251 10.773l6.49 4.618" fill="#007934" stroke="#000" stroke-width=".131"/> - <path d="M200.055 288.087c-1.543-4.584.551-13.58.319-19.342-.175-3.718 2.559-17.698 2.5-21.927l-15.055-9.403s-.656 15.28-2.389 31.922c-1.559 8.548-1.549 16.36-.428 22.885 1.6 9.275 3.172 13.082 6.92 17.006 6.649 6.881 20.967 2.905 20.967 2.905 12.062-2.495 19.01-10.094 19.01-10.094s-3.923.927-10.28 1.573c-13.931-.976-19.418 2.506-19.852-11.788" fill="#d52b1e" stroke="#000" stroke-width=".131"/> - <path d="M240.404 297.35l.233-.101c-2.612.977-6.253 2.056-6.253 2.056l-8.489.653c-18.413.43-16.108-10.97-15.378-29.364.175-6.98 1.559-15.77 1.202-18.883l-12.343-7.071c-4.026 11.374-2.771 19.332-3.577 25.15-.42 6.269-1.757 18.51.275 23.85 2.877 12.426 12.606 11.92 25.777 10.827 6.533-.542 10.048-2.222 10.048-2.222l8.498-4.89" fill="#f7e214" stroke="#000" stroke-width=".131"/> - <path d="M240.644 297.1c-2.553 1.322-6.311 2.298-6.311 2.298l-8.604.85c-13.348 1.132-21.162-8.244-19.452-29.446.011-7.49.251-10.817 2.836-20.795l7.336 4.304v.691c-.415 2.24-1.465 7.477-1.465 9.872 0 17.023 10.764 30.099 25.427 32.319l.233-.1" fill="#007a3d" stroke="#000" stroke-width=".131"/> - <path d="M191.915 245.917c1.244 2.09 8.672 13.405 12.833 15.545m-11.582-8.153c1.244 2.14 10.338 14.884 14.434 15.601m-16.515 3.874c2.081 2.496 4.154 7.441 10.338 10.648m-7.428 3.518c4.155 3.874 14.434 12.389 24.358 12.739m-24.358-6.364c2.081 2.496 6.592 14.168 25.61 8.87m-28.52-6.73c1.244 2.8 10.753 18.403 27.69 12.382" fill="none" stroke="#000" stroke-width=".131"/> - <path d="M210.933 282.486c-1.542-4.585.552-13.58.32-19.343-.175-3.718 1.578-16.577 1.52-20.806l-14.076-10.524s-.655 15.28-2.388 31.922c-1.56 8.549-2.748 19.02-1.593 25.538 1.891 10.669 7.02 13.67 7.947 14.495 7.19 6.406 23.422 5.776 25.035 5.2 11.6-4.146 16.652-11.515 16.652-11.515s-5.495-.089-11.852.558c-13.932-.976-20.968-.395-21.401-14.69" fill="#d52b1e" stroke="#000" stroke-width=".131"/> - <path d="M251.283 291.747l.233-.1c-2.612.977-6.254 2.056-6.254 2.056l-8.488.654c-18.413.43-16.108-10.97-15.378-29.364.175-6.98.415-13.25.058-16.363l-11.036-8.05c-4.026 11.374-2.934 17.79-3.74 23.61-.42 6.267-1.758 18.508.275 23.849 2.877 12.425 12.606 11.919 25.776 10.826 6.534-.542 10.049-2.221 10.049-2.221l8.497-4.89" fill="#ffe000" stroke="#000" stroke-width=".131"/> - <path d="M251.61 291.581c-2.554 1.322-6.311 2.298-6.311 2.298l-8.604.85c-13.348 1.132-21.163-8.244-19.452-29.446.011-7.49-.239-8.015 2.345-17.993 4.089 2.65 11.904 9.321 11.904 9.321s-2.126 2.993-1.628 7.178c0 17.023 6.85 25.665 21.513 27.885l1.608-13.903" fill="#007934" stroke="#000" stroke-width=".131"/> - <path d="M202.793 240.315c1.244 2.09 8.672 13.406 12.834 15.545m-11.582-8.153c1.244 2.14 10.338 14.884 14.434 15.601m-16.515 3.874c2.08 2.496 4.154 7.442 10.338 10.648m-7.428 3.518c4.154 3.874 14.434 12.39 24.358 12.739m-24.358-6.364c2.08 2.496 6.591 14.168 25.609 8.871m-28.52-6.731c1.245 2.801 10.754 18.403 27.69 12.383" fill="none" stroke="#000" stroke-width=".131"/> - <path d="M187.918 238.894s-.623 5.422-.682 6.394c-.288 4.702-.155 8.26.066 10.475-.014.24.906 5.864.589 6.165-1.08 1.233-1.119 1.37-2.258.457-.163-.187.491-5.948.54-6.74.11-.85.288-7.58.41-10.515.012-1.16 1.01-6.872 1.01-6.872s.132-1.216.319.62" fill="#e8a30e" stroke="#000" stroke-width=".131"/> - <path d="M187.918 238.894s-.623 5.422-.682 6.394c-.288 4.702-.148 8.26.066 10.475-.014.24 1.098 8.069.752 6.172-1.08 1.234-1.302 1.699-2.441.786-.164-.188.511-6.284.56-7.076.11-.85.288-7.58.41-10.515.012-1.16 1.01-6.872 1.01-6.872s.132-1.216.319.62l.006.016z" fill="none" stroke="#000" stroke-width=".131"/> - <path d="M187.801 236.993s-1.228 6.496-1.339 10.224c-.16 4.521-.354 5.8-.282 8.436.047.18-.442 3.405-.586 4.808-.102.722.106.185-.014.239-.923.565-1.551.11-2.114-.335-.167-.127 1.492-4.034 1.54-4.826.877-11.474 2.54-18.198 2.54-18.198s-.663 4.07.255-.348" fill="#f7e214" stroke="#000" stroke-width=".131"/> - <path d="M187.801 236.993s-1.228 6.496-1.332 10.224c-.16 4.521-.354 5.8-.282 8.436.047.18-.441 3.406-.585 4.808-.103.723.105.185-.015.24-.923.564-1.551.11-2.114-.336-.167-.126 1.492-4.034 1.541-4.833.876-11.475 2.533-18.199 2.533-18.199s-.664 4.07.254-.347v.008zm-.532 18.47s-.974.44-1.082.19m-.042-1.337s.832-.022.963-.256m-.049-1.12s-.614.401-.78.146m.765-1.794l-.592.025m.63-1.62l-.649.022m.548-2.291s-.367.164-.41-.078m.526-1.813l-.53-.024m-.508 10.202s-.955.135-1.06-.169m1.137-2.033s-.952.078-.992-.225m1.03-1.362s-.773.025-.828-.037m.98-1.493l-.77-.035m.766-1.802l-.527-.083m.74-1.496s-.48.1-.581-.145m.635-1.697s-.432.282-.414-.018m-.052 9.556s-.948.009-.93-.282m13.603-21.101s-.622 5.421-.682 6.394c-.287 4.702-.155 8.26.067 10.474-.015.24.906 5.865.589 6.165-1.081 1.233-1.12 1.37-2.258.458-.164-.188.49-5.948.54-6.74.11-.852.288-7.581.409-10.515.013-1.16 1.01-6.873 1.01-6.873s.133-1.216.32.621" fill="#e8a30e" stroke="#000" stroke-width=".131"/> - <path d="M198.797 233.293s-.623 5.421-.683 6.394c-.287 4.701-.148 8.26.067 10.474-.015.24 1.098 8.07.752 6.172-1.081 1.234-1.303 1.7-2.442.786-.163-.187.512-6.283.56-7.076.11-.85.289-7.58.41-10.514.013-1.16 1.01-6.873 1.01-6.873s.133-1.216.32.621l.005.016z" fill="none" stroke="#000" stroke-width=".131"/> - <path d="M198.68 231.391s-1.228 6.497-1.34 10.224c-.159 4.521-.354 5.8-.282 8.436.048.18-.441 3.406-.585 4.808-.102.722.105.185-.015.239-.923.565-1.55.11-2.114-.335-.167-.126 1.493-4.034 1.541-4.826.876-11.474 2.54-18.198 2.54-18.198l.255-.348" fill="#e8a30e" stroke="#000" stroke-width=".131"/> - <path d="M198.68 231.391s-1.228 6.497-1.332 10.224c-.16 4.522-.354 5.8-.282 8.437.047.18-.442 3.405-.586 4.807-.102.723.106.185-.014.24-.924.564-1.552.11-2.114-.336-.167-.126 1.492-4.033 1.54-4.833.877-11.474 2.534-18.199 2.534-18.199l.254-.347v.008zm-.532 18.47s-.974.441-1.082.19m-.043-1.337s.832-.022.963-.256m-.048-1.119s-.614.4-.78.145m.764-1.794l-.591.025m.63-1.62l-.65.023m.549-2.292s-.367.164-.41-.078m.525-1.812l-.53-.024m-.507 10.201s-.955.136-1.06-.168m1.136-2.033s-.951.078-.991-.225m1.03-1.363s-.774.025-.828-.037m.98-1.493l-.77-.034m.766-1.802l-.527-.084m.74-1.496s-.48.1-.582-.145m.636-1.696s-.432.281-.414-.019m-.052 9.556s-.948.009-.93-.282" fill="none" stroke="#000" stroke-width=".131"/> - <path d="M207.288 225.346s.49 5.481.19 8.578c-.347 3.759-.295 4.834-.669 7.011-.059.146.066 2.858.045 4.03.015.607-.125.145-.012.2.856.544 1.53.22 2.141-.104.239-.088-1.034-3.464-.993-4.124.41-9.577-.495-15.283-.495-15.283l-.214-.309" fill="#e8a30e" stroke="#000" stroke-width=".131"/> - <path d="M207.288 225.346s.495 5.481.183 8.578c-.345 3.758-.296 4.834-.67 7.011-.059.146.067 2.857.045 4.03.015.607-.124.145-.012.2.857.544 1.531.219 2.142-.104.239-.088-1.034-3.464-.993-4.13.41-9.577-.488-15.283-.488-15.283l-.214-.31zm-.36 15.65s.936.191 1.076-.052m-.839-1.774s.939.143.954-.108m-.873-1.213s.76.084.828.038m-.815-1.318l.77.035m-.562-1.556l.534-.026m-.503-1.297s.401.119.536-.075m-.442-1.457s.392.268.407.018m-1.018 7.92s.943.085.958-.157" fill="#e8a30e" stroke="#000" stroke-width=".131"/> - <path d="M241.08 236.424l.85.063s-1.314-.096-.85-.063z" fill="#005000" stroke="#000" stroke-width=".131"/> - <path d="M252.506 273.494s-.397-.17-.496 0c0 .085.1.17.198.17.1 0 .298-.17.298-.17zm-1.09 1.189s1.684-.17 2.279-.17" fill="#fff" fill-rule="evenodd" stroke="#000" stroke-width=".131"/> - <path d="M226.336 303.15c-.243 3.26-7.845 7.009-13.525.128-6.068-4.804-4.755-12.15.067-13.168l58.255-56.814c2.337-1.276 2.562-2.493 3.726-3.736 2.445 2.596 7.508 7.257 10.27 9.508-1.68 1.406-3.046 2.737-3.418 3.833l-55.375 60.249z" fill="#e8a30e" fill-rule="evenodd" stroke="#000" stroke-width=".132"/> - <path d="M275.006 229.387c2.781-3.816 13.62 6.098 10.724 9.176-2.896 3.077-13.286-5.324-10.724-9.176z" fill="#e7e7e7" fill-rule="evenodd" stroke="#000" stroke-width=".132" stroke-linejoin="round"/> - <path d="M284.76 237.823c-2.041 1.55-9.9-5.104-8.599-7.62 2.168-2.356 10.814 6.091 8.6 7.62z" fill="#cccccf" fill-rule="evenodd" stroke="#000" stroke-width=".132"/> - <path d="M281.63 243.064c-4.882-1.557-8.342-4.805-10.532-9.662m-24.503 47.92c-6.14-1.897-10.345-5.9-12.239-12.42m9.75 15.281c-6.14-1.897-10.345-5.9-12.239-12.42m-2.252 27.515c-6.14-1.897-11.071-6.393-12.965-12.913m10.405 15.776c-6.14-1.898-11.145-6.465-13.038-12.985" fill="none" stroke="#000" stroke-width=".131"/> - <path d="M212.636 304.022c-.305 1.449-1.098 1.901-2.206 1.458m14.667-2.047c-2.305 3.627-4.868 2.535-7.012 2.572" fill="none" stroke="#000" stroke-width=".131" stroke-linecap="round"/> - <path d="M209.484 304.215c0 .97.819 1.753 1.832 1.752 1.013-.001 1.838-.787 1.843-1.756.006-.97-.81-1.757-1.823-1.761-1.013-.004-1.834 1.07-1.844 2.04" fill="#e8a30e" stroke="#000" stroke-width=".131"/> - <path d="M212.81 303.847c-.304 1.449-1.097 1.901-2.205 1.458m14.492-1.872c-2.305 3.627-4.868 2.535-7.012 2.572" fill="none" stroke="#000" stroke-width=".131" stroke-linecap="round"/> - <path d="M268.62 309.67l.984 9.64s-1.492-1.826-1.85-2.432c-.359-.607-1.652-2.23-1.929-7.85 0 0 1.01-3.107 1.486-3.1.79-.39 1.31 3.741 1.31 3.741zm-2.37-21.495s2.588 15.48 2.85 16.888c0 .482-1.313 1.758-2.262-1.235l-1.564-11.254s.703-2.999.976-4.399z" fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".131"/> - <path d="M260.398 303.536c.631-.793 1.42-1.785 1.498-2.185l.408 3.415s-2.154 1.574-1.847 4.587l-.418-.607-.242-1.207s-.442-2.012-.446-3.215c0 0 .455-.195 1.047-.788z" fill="#d52b1e" fill-rule="evenodd" stroke="#000" stroke-width=".131"/> - <path d="M269.604 319.309s-3.576-3.06-3.779-10.282l-.443-2.012s-.074 1.603-.79.39c-.7-1.615-.665-3.018-.665-3.018s-1.293-1.623-1.683.377c0 0 1.201 9.444 1.283 10.247.103 1.004.285 2.21.285 2.21s.71-1.193 1.427.02c.776 1.215 2.01 2.837 4.365 2.068zm-4.33-26.737l1.563 11.254s-1.246.584-1.455 3.189c-.115 1.201-.592.593-.79.39-.261-.806-.068-2.408-.068-2.408l-.68-7.832s1.354-3.59 1.43-4.593z" fill="#ffe000" fill-rule="evenodd" stroke="#000" stroke-width=".131"/> - <path d="M266.512 318.665l.228 2.811s-1.07-.015-1.788-1.228c-.836-1.216-1.14-3.025-1.14-3.025s.829-1.192 1.427.02c.578 1.011 1.273 1.422 1.273 1.422zm-1.92-11.259c-.578-1.01-.763-2.819-.664-3.018l.727.61c-.234 1.2-.063 2.408-.063 2.408z" fill="#ffe000" fill-rule="evenodd" stroke="#000" stroke-width=".131"/> - <path d="M261.07 306.273c.491-.996 1.322-1.586 1.322-1.586l1.588 12.658s.447 3.215 2.43 4.046c0 0-1.13 11.015-4.707 7.956-.517-.409-1.162-3.827-.951-5.83.25-2.203.834-5.203.89-6.406.034-1.403-.164-2.825-.509-5.036-.14-.804-.557-2.567-.637-2.769-.199-.203.043-1.838.574-3.033z" fill="#d52b1e" fill-rule="evenodd" stroke="#000" stroke-width=".131"/> - <path d="M259.35 304.327s-.967.989-1.146.986c-.237-.003 2.51 20.643 2.51 20.643s-.103-2.165.7-6.368c.651-3.415-.19-8-.925-10.199 0 0-.866-.646-1.139-5.062z" fill="#d52b1e" fill-rule="evenodd" stroke="#000" stroke-width=".131"/> - <path d="M263.924 297.372s.534 5.824.66 7.63c0 0-1.812-2.633-2.28-.232l-.407-3.416s1.576-2.585 2.027-3.982z" fill="#f7e214" fill-rule="evenodd" stroke="#000" stroke-width=".131"/> - <path d="M265.311 306.997s.595-6.523 3.755-1.912c.122.002.29 2.592.108 3.212-.099.83-.973 1.855-1.339 2.472-.69 1.028-1.43-.228-1.43-.228s-.718-1.048-1.094-3.544z" fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".131"/> - <path d="M290.348 252.734c.116-3.712 1.284-9.888 1.342-14.121l12.807-13.05s1.58 10.573 6.23 16.618l-20.38 10.56" fill="#d52b1e" stroke="#000" stroke-width=".131"/> - <path d="M289.423 253.174c-.54-2.582-1.187-5.488-1.616-10.888l8.244-8.123c-.033 3.39 3.806 8.634 4.066 14.968" fill="#ffe000" stroke="#000" stroke-width=".131"/> - <path d="M282.313 260.994c-.945-4.53 1.373-5.092-2.075-11.466l7.618-7.305c1.42 4.296 2.375 7.06 2.251 10.773l-6.49 4.618" fill="#007934" stroke="#000" stroke-width=".131"/> - <path d="M311.945 288.087c1.543-4.584-.552-13.58-.319-19.342.175-3.718-2.559-17.698-2.5-21.927l15.055-9.403s.656 15.28 2.389 31.922c1.559 8.548 1.549 16.36.428 22.885-1.6 9.275-3.172 13.082-6.92 17.006-6.649 6.881-20.967 2.905-20.967 2.905-12.062-2.495-19.01-10.094-19.01-10.094s3.923.927 10.28 1.573c13.931-.976 19.418 2.506 19.852-11.788" fill="#d52b1e" stroke="#000" stroke-width=".131"/> - <path d="M271.596 297.35l-.233-.101c2.611.977 6.253 2.056 6.253 2.056l8.489.653c18.413.43 16.108-10.97 15.378-29.364-.175-6.98-1.559-15.77-1.202-18.883l12.343-7.071c4.026 11.374 2.771 19.332 3.577 25.15.42 6.269 1.757 18.51-.275 23.85-2.877 12.426-12.606 11.92-25.777 10.827-6.533-.542-10.048-2.222-10.048-2.222l-8.498-4.89" fill="#f7e214" stroke="#000" stroke-width=".131"/> - <path d="M271.356 297.1c2.553 1.322 6.31 2.298 6.31 2.298l8.605.85c13.348 1.132 21.162-8.244 19.452-29.446-.011-7.49-.251-10.817-2.836-20.795l-7.336 4.304v.691c.415 2.24 1.464 7.477 1.464 9.872 0 17.023-10.763 30.099-25.426 32.319l-.233-.1" fill="#007a3d" stroke="#000" stroke-width=".131"/> - <path d="M320.085 245.917c-1.244 2.09-8.672 13.405-12.833 15.545m11.582-8.153c-1.244 2.14-10.338 14.884-14.434 15.601m16.515 3.874c-2.081 2.496-4.155 7.441-10.338 10.648m7.428 3.518c-4.155 3.874-14.434 12.389-24.358 12.739m24.358-6.364c-2.081 2.496-6.592 14.168-25.61 8.87m28.52-6.73c-1.244 2.8-10.753 18.403-27.69 12.382" fill="none" stroke="#000" stroke-width=".131"/> - <path d="M301.066 282.486c1.543-4.585-.551-13.58-.318-19.343.174-3.718-1.58-16.577-1.521-20.806l14.076-10.524s.655 15.28 2.388 31.922c1.56 8.549 2.748 19.02 1.593 25.538-1.891 10.669-7.02 13.67-7.947 14.495-7.19 6.406-23.422 5.776-25.035 5.2-11.6-4.146-16.652-11.515-16.652-11.515s5.495-.089 11.852.558c13.932-.976 20.968-.395 21.401-14.69" fill="#d52b1e" stroke="#000" stroke-width=".131"/> - <path d="M260.717 291.747l-.233-.1c2.612.977 6.254 2.056 6.254 2.056l8.488.654c18.413.43 16.108-10.97 15.378-29.364-.175-6.98-.415-13.25-.058-16.363l11.036-8.05c4.026 11.374 2.934 17.79 3.74 23.61.42 6.267 1.758 18.508-.275 23.849-2.877 12.425-12.606 11.919-25.776 10.826-6.534-.542-10.049-2.221-10.049-2.221l-8.497-4.89" fill="#ffe000" stroke="#000" stroke-width=".131"/> - <path d="M260.39 291.581c2.554 1.322 6.311 2.298 6.311 2.298l8.604.85c13.348 1.132 21.163-8.244 19.452-29.446-.011-7.49.239-8.015-2.345-17.993-4.089 2.65-11.904 9.321-11.904 9.321s2.126 2.993 1.628 7.178c0 17.023-6.85 25.665-21.513 27.885l-1.609-13.903" fill="#007934" stroke="#000" stroke-width=".131"/> - <path d="M309.207 240.315c-1.244 2.09-8.672 13.406-12.834 15.545m11.582-8.153c-1.244 2.14-10.338 14.884-14.434 15.601m16.515 3.874c-2.08 2.496-4.154 7.442-10.338 10.648m7.428 3.518c-4.154 3.874-14.434 12.39-24.358 12.739m24.358-6.364c-2.08 2.496-6.591 14.168-25.609 8.871m28.52-6.731c-1.245 2.801-10.754 18.403-27.69 12.383" fill="none" stroke="#000" stroke-width=".131"/> - <path d="M324.082 238.894s.623 5.422.682 6.394c.288 4.702.155 8.26-.066 10.475.014.24-.906 5.864-.59 6.165 1.082 1.233 1.12 1.37 2.259.457.163-.187-.491-5.948-.54-6.74-.11-.85-.288-7.58-.41-10.515-.012-1.16-1.01-6.872-1.01-6.872s-.132-1.216-.319.62" fill="#f7e214" stroke="#000" stroke-width=".131"/> - <path d="M324.082 238.894s.623 5.422.682 6.394c.288 4.702.148 8.26-.066 10.475.014.24-1.098 8.069-.752 6.172 1.08 1.234 1.302 1.699 2.441.786.164-.188-.511-6.284-.56-7.076-.11-.85-.288-7.58-.41-10.515-.012-1.16-1.01-6.872-1.01-6.872s-.132-1.216-.319.62l-.006.016z" fill="#e8a30e" stroke="#000" stroke-width=".131"/> - <path d="M324.199 236.993s1.228 6.496 1.339 10.224c.16 4.521.354 5.8.282 8.436-.047.18.442 3.405.585 4.808.103.722-.105.185.015.239.923.565 1.551.11 2.114-.335.167-.127-1.492-4.034-1.54-4.826-.877-11.474-2.54-18.198-2.54-18.198s.663 4.07-.255-.348" fill="#f7e214" stroke="#000" stroke-width=".131"/> - <path d="M324.199 236.993s1.228 6.496 1.332 10.224c.16 4.521.354 5.8.282 8.436-.047.18.441 3.406.585 4.808.103.723-.105.185.015.24.923.564 1.551.11 2.114-.336.167-.126-1.492-4.034-1.541-4.833-.876-11.475-2.533-18.199-2.533-18.199s.664 4.07-.255-.347v.008zm.531 18.47s.975.44 1.083.19m.042-1.337s-.832-.022-.963-.256m.049-1.12s.614.401.78.146m-.765-1.794l.592.025m-.63-1.62l.649.022m-.548-2.291s.367.164.41-.078m-.526-1.813l.53-.024m.508 10.202s.955.135 1.06-.169m-1.137-2.033s.952.078.992-.225m-1.03-1.362s.773.025.828-.037m-.98-1.493l.77-.035m-.766-1.802l.527-.083m-.74-1.496s.48.1.581-.145m-.635-1.697s.432.282.414-.018m.052 9.556s.948.009.93-.282" fill="#e8a30e" stroke="#000" stroke-width=".131"/> - <path d="M313.203 233.293s.623 5.421.683 6.394c.287 4.701.155 8.26-.067 10.474.015.24-.906 5.865-.589 6.165 1.081 1.233 1.12 1.37 2.258.458.164-.188-.491-5.948-.54-6.74-.11-.852-.288-7.581-.409-10.515-.013-1.16-1.01-6.873-1.01-6.873s-.133-1.216-.32.621" fill="#f7e214" stroke="#000" stroke-width=".131"/> - <path d="M313.203 233.293s.623 5.421.683 6.394c.287 4.701.147 8.26-.067 10.474.015.24-1.098 8.07-.752 6.172 1.081 1.234 1.303 1.7 2.442.786.163-.187-.512-6.283-.56-7.076-.11-.85-.289-7.58-.41-10.514-.013-1.16-1.01-6.873-1.01-6.873s-.133-1.216-.32.621l-.005.016z" fill="#e8a30e" stroke="#000" stroke-width=".131"/> - <path d="M313.32 231.391s1.228 6.497 1.34 10.224c.159 4.521.354 5.8.282 8.436-.048.18.441 3.406.585 4.808.102.722-.105.185.014.239.924.565 1.552.11 2.115-.335.167-.126-1.493-4.034-1.541-4.826-.876-11.474-2.54-18.198-2.54-18.198l-.255-.348" fill="#f7e214" stroke="#000" stroke-width=".131"/> - <path d="M313.32 231.391s1.228 6.497 1.332 10.224c.16 4.522.354 5.8.282 8.437-.047.18.442 3.405.586 4.807.102.723-.106.185.014.24.924.564 1.552.11 2.114-.336.167-.126-1.492-4.033-1.54-4.833-.877-11.474-2.534-18.199-2.534-18.199l-.254-.347v.008zm.532 18.47s.974.441 1.082.19m.043-1.337s-.832-.022-.963-.256m.048-1.119s.614.4.78.145m-.764-1.794l.591.025m-.63-1.62l.65.023m-.549-2.292s.367.164.41-.078m-.525-1.812l.53-.024m.507 10.201s.955.136 1.06-.168m-1.136-2.033s.951.078.991-.225m-1.03-1.363s.774.025.828-.037m-.98-1.493l.77-.034m-.766-1.802l.527-.084m-.74-1.496s.48.1.581-.145m-.635-1.696s.432.281.414-.019m.052 9.556s.948.009.93-.282M304.712 225.346s-.49 5.481-.19 8.578c.347 3.759.295 4.834.669 7.011.059.146-.066 2.858-.045 4.03-.015.607.125.145.012.2-.856.544-1.53.22-2.141-.104-.239-.088 1.034-3.464.993-4.124-.41-9.577.495-15.283.495-15.283l.214-.309" fill="#e8a30e" stroke="#000" stroke-width=".131"/> - <path d="M304.712 225.346s-.495 5.481-.183 8.578c.345 3.758.296 4.834.67 7.011.059.146-.067 2.857-.045 4.03-.015.607.124.145.012.2-.857.544-1.531.219-2.142-.104-.239-.088 1.034-3.464.993-4.13-.41-9.577.487-15.283.487-15.283l.215-.31zm.36 15.65s-.936.191-1.076-.052m.839-1.774s-.939.143-.954-.108m.873-1.213s-.76.084-.828.038m.815-1.318l-.77.035m.562-1.556l-.534-.026m.503-1.297s-.401.119-.536-.075m.442-1.457s-.392.268-.407.018m1.018 7.92s-.943.085-.958-.157" fill="#e8a30e" stroke="#000" stroke-width=".131"/> - <path d="M270.92 236.424l-.85.063s1.314-.096.85-.063z" fill="#005000" stroke="#000" stroke-width=".131"/> - <path d="M259.494 273.494s.397-.17.496 0c0 .085-.1.17-.198.17-.1 0-.298-.17-.298-.17zm1.09 1.189s-1.684-.17-2.279-.17" fill="#fff" fill-rule="evenodd" stroke="#000" stroke-width=".131"/> - <path d="M225.777 229.84c-.03-2.24 2.08-3.536 2.404-3.755 1.035-.7 1.74-1.305 3.97-1.597 0 0 .153.462.145.859-.008.397-.494 1.769-2.209 2.928-1.746 1.18-4.31 1.565-4.31 1.565z" fill="#d52b1e" stroke="#000" stroke-width=".131"/> - <path d="M225.753 228.986l31.62 41.045 1.502-1.48-32.256-41.692-.866 2.127z" fill="#a05a2c" fill-rule="evenodd" stroke="#000" stroke-width=".131"/> - <path d="M225.263 220.97s3.42-.355 2.969-2.31c-.484-1.934-2.788-1.898-3.75-1.988-.994-.066-4.131.663-5.062 1.596-.963.956-2.928 2.588-2.291 5.33.637 2.744 1.444 4.632 2.453 6.34 1.002 1.759.75 3.45.483 4.196-.081.316-.397 1.354.46 1.733 1.26.538 1.576.542 2.667-.674 1.117-1.189 2.614-3.114 2.583-5.354-.03-2.239 2.08-3.535 2.404-3.754 1.035-.7 1.739-1.305 3.97-1.597 0 0-.791-1.29-1.98-1.226-1.213.037-3.62-1.03-4.906-2.292z" fill="#d52b1e" stroke="#000" stroke-width=".131"/> - <path d="M225.263 220.97s3.42-.355 2.969-2.31c-.484-1.934-2.788-1.898-3.75-1.988-.994-.066-4.131.663-5.062 1.596-.963.956-2.928 2.588-2.291 5.33.637 2.744 1.444 4.632 2.453 6.34 1.002 1.759.75 3.45.483 4.196-.081.316-.397 1.354.46 1.733 1.26.538 1.576.542 2.667-.674 1.117-1.189 2.614-3.114 2.583-5.354-.03-2.239 2.08-3.535 2.404-3.754 1.035-.7 1.739-1.305 3.97-1.597 0 0-.791-1.29-1.98-1.226-1.213.037-3.62-1.03-4.906-2.292z" fill="none" stroke="#000" stroke-width=".131"/> - <path d="M225.263 220.97c-.46.007-1.826-.591-2.772-.256-.922.362-2.831 1.478-2.524 3.097m11.123-.216s-1.972.812-3.363 1.752c-.583.394-2.516 2.179-3.762 3.456-1.1 1.09-1.344 2.56-3.706 4.156m9.587-9.652c-.405.36-.81.72-1.505 1.103-.662.362-.874.939-1.294 1.397" fill="none" stroke="#000" stroke-width=".131"/> - <path d="M285.664 303.15c.243 3.26 7.845 7.009 13.525.128 6.068-4.804 4.755-12.15-.067-13.168l-58.255-56.814c-2.337-1.276-2.562-2.493-3.726-3.736-2.445 2.596-7.508 7.257-10.27 9.508 1.68 1.406 3.046 2.737 3.418 3.833l55.375 60.249z" fill="#e8a30e" fill-rule="evenodd" stroke="#000" stroke-width=".132"/> - <path d="M236.994 229.387c-2.781-3.816-13.62 6.098-10.724 9.176 2.896 3.077 13.286-5.324 10.724-9.176z" fill="#e7e7e7" fill-rule="evenodd" stroke="#000" stroke-width=".132" stroke-linejoin="round"/> - <path d="M227.24 237.823c2.041 1.55 9.9-5.104 8.599-7.62-2.168-2.356-10.814 6.091-8.6 7.62z" fill="#cccccf" fill-rule="evenodd" stroke="#000" stroke-width=".132"/> - <path d="M230.37 243.064c4.882-1.557 8.342-4.805 10.532-9.662m24.503 47.92c6.14-1.897 10.345-5.9 12.239-12.42m-9.75 15.281c6.14-1.897 10.345-5.9 12.239-12.42m2.252 27.515c6.14-1.897 11.071-6.393 12.965-12.913m-10.405 15.776c6.14-1.898 11.145-6.465 13.038-12.985" fill="none" stroke="#000" stroke-width=".131"/> - <path d="M299.364 304.022c.305 1.449 1.098 1.901 2.206 1.458m-14.667-2.047c2.305 3.627 4.868 2.535 7.012 2.572" fill="none" stroke="#000" stroke-width=".131" stroke-linecap="round"/> - <path d="M302.516 304.215c0 .97-.819 1.753-1.832 1.752-1.013-.001-1.838-.787-1.843-1.756-.006-.97.81-1.757 1.823-1.761 1.013-.004 1.834 1.07 1.844 2.04" fill="#e8a30e" stroke="#000" stroke-width=".131"/> - <path d="M299.19 303.847c.304 1.449 1.097 1.901 2.205 1.458m-14.492-1.872c2.305 3.627 4.868 2.535 7.012 2.572" fill="none" stroke="#000" stroke-width=".131" stroke-linecap="round"/> - <path d="M276.96 187.22c1.893 3.029 4.7 8.493 5.467 12.68 1.413 7.721-.796 16.282-7.523 22.332-5.48 4.929-14.083 6.452-17.674 7.189-3.583.735-6.175 1.887-6.767 2.68-.03-.558-.112-1.116.486-1.674 1.701-.75 4.462-1.193 8.311-1.987 7.735-1.594 15.861-4.494 20.288-12.934 5.773-11.006 2.333-19.655-2.667-28.241l.079-.045z" fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".131"/> - <path d="M279.085 219.98a.462.605 49.857 0 1-.667-.643.462.605 49.857 0 1 .667.644z" fill="#d52b1e" stroke="#000" stroke-width=".131"/> - <path d="M284.348 218.602c-1.15.683-2.29.861-3.204 1.167-.706.235-1.921.618-2.34.776-.4.15-1.024.432-1.558.673-.846.383-1.762 1.446-1.762 1.446s1.288 1.351 2.826 1.16c1.206-.15 1.814-.48 2.419-.775.628-.306.614-.653 1.52-1.306 1.001-.722 1.703-2.147 2.099-3.141zm-6.029 1.276c-.368.578-1.25.533-1.754.454l-.228.289c.692.01 1.638.017 2.112-.606-.012-.093-.068-.138-.13-.137z" fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".131"/> - <path d="M284.332 218.654c-1.041 1.015-2.985 2.143-4.935 2.976-1.953.834-4.234 1.101-5.334 1.095l-.29.306c1.582-.148 3.667-.434 5.434-1.16 2.304-.944 4.196-2.16 5.14-3.156l-.015-.06zm-2.537 4.88c-2.077-.073-3.22.573-5.15.995-1.803.395-3.913-.543-5.08 1.192 4.7 3.047 8.093.997 10.23-2.187z" fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".131"/> - <path d="M277.567 227.803c-.895-.768-8.586-3.37-9.814-.462 1.83 2.023 7.185 2.475 9.814.462z" fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".131"/> - <path d="M275.744 229.85c-.812-.128-1.77-.317-2.705-.425-.94-.108-1.308-.271-2.003-.367-1.137-.157-2.438-1.752-6.444-.534 1.551 3.572 6.844 4.322 11.152 1.326zm1.732-1.99c-4.097.818-8.913-.003-10.817-1.125l-.304.202c4.39 1.871 8.655 1.625 11.121.923zm4.254-4.326c-2.413 1.618-5.523 2.825-12.185 1.932l-.09.231c9.128.783 10.03-.89 12.275-2.163z" fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".131"/> - <path d="M275.714 229.88c-3.185.112-4.978 1.531-10.944-1.405-.487-.24-1.138-.407-1.515-.586l-.547.202c.416.185 1.086.18 1.46.345 7.45 3.287 7.24 1.75 11.546 1.443z" fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".131"/> - <path d="M263.735 225.713a.456.614 66.176 1 0 .468.786.456.614 66.176 1 0-.468-.786z" fill="#d52b1e" stroke="#000" stroke-width=".131"/> - <path d="M263.624 226.404c-.688.177-.885.994-.944 1.475l-.355.129c.18-.635.434-1.5 1.196-1.76.091.036.12.1.103.156z" fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".131"/> - <path d="M283.649 199.268a.474.59 15.75 1 1-.923-.22.474.59 15.75 0 1 .923.22z" fill="#d52b1e" stroke="#000" stroke-width=".131"/> - <path d="M279.063 216.697c-.149-2.225-1.229.859-3.41-4.112-.634-1.445-.629-2.367-1.059-4.535 1.188 1.874 3.173 2.38 3.98 3.829.792 1.425.59 3.716.49 4.818z" fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".131"/> - <path d="M274.637 208.213s1.075 2.508 2.622 4.283c1.556 1.785 1.847 3.956 1.847 3.956" fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".131"/> - <path d="M275.7 210.343c1.37 1.843 3.209 4.027 3.295 6.32l.214.079c-.319-3.015-2.101-4.408-3.2-5.929l-.308-.47zm11.571 2.846c-1.001.824-2.055 1.122-2.879 1.53-.637.315-1.172.733-1.547.938-.36.196-.944.288-1.418.591-.752.482-2.222 2.168-2.222 2.168s1.394 1.142 2.258.955c2.512-.487 3.244-1.484 4.512-2.407.978-.801 1.044-2.704 1.296-3.775z" fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".131"/> - <path d="M278.075 218.492l-.236.347c1.441-.142 3.738-1.526 5.269-2.297 2.06-1.036 3.213-1.825 4.081-3.299-.983 1.474-2.268 2.31-4.202 3.245-1.623.785-3.932 2.113-4.912 2.004z" fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".131"/> - <path d="M288.126 208.317c-.84.973-1.825 1.437-2.564 1.971-.572.413-1.024.911-1.357 1.174-.319.251-.879.436-1.292.811-.654.596-1.625 2.336-1.625 2.336s.696.744 1.514.42c2.532-.314 3.276-1.515 4.218-3.675.527-1.121 1.048-1.941 1.106-3.037z" fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".131"/> - <path d="M278.975 212.745a.594.471 61.956 1 0 .864-.376.594.471 61.956 0 0-.864.376z" fill="#d52b1e" stroke="#000" stroke-width=".131"/> - <path d="M280.012 215.025l-.171.38c3.035-1.384 7.017-4.175 8.32-7.017-1.853 3.066-4.915 5.087-8.15 6.637zm8.806-11.398c-.721 1.013-1.616 1.535-2.275 2.11-.509.445-.9.966-1.194 1.246-.283.269-.797.488-1.16.885-.573.63-1.363 2.405-1.363 2.405s.926.872 1.674.498c.747-.374 1.75-1.222 2.246-1.665.516-.46.643-1.573 1.25-2.42.705-.987.847-1.978.822-3.06z" fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".131"/> - <path d="M286.633 206.761c-1.473 1.677-3.284 3.276-4.98 4.007l-.134.385c2.762-1.566 3.926-2.981 5.148-4.338l-.034-.054zm1.14-6.022c-.502.984-1.256 1.567-1.776 2.162-.403.46-.68.968-.909 1.255-.22.274-.667.539-.94.936-.43.63-.863 2.285-.863 2.285s.628.668 1.268.235c.64-.433 1.558-1.318 1.948-1.774.407-.475.612-1.503 1.035-2.327.492-.958.452-1.839.238-2.772zm-4.66-1.167c-.267.577-.374 1.143-.547 1.738l-.068-.425c.142-.466.256-.957.478-1.385.046-.01.091-.012.137.072z" fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".131"/> - <path d="M286.262 203.776c-1.095 1.669-2.525 3.32-3.999 4.201l-.058.353c2.333-1.76 3.184-3.158 4.099-4.513l-.042-.041zm-5.995 10.555c-.122-.532-.22-.95-.569-1.428-.052-.003-.09.013-.101.062.318.515.452.967.54 1.59l.13-.224z" fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".131"/> - <path d="M279.345 193.406a.458.35 39.522 0 1-.52.472.458.35 39.522 0 1 .52-.472z" fill="#d52b1e" stroke="#000" stroke-width=".131"/> - <path d="M280.693 194.699c-.38-.331-.852-.628-1.332-.921-.055.019-.06.057-.045.105.551.348 1.035.686 1.445 1.073l-.068-.257zm5.89.38c-1.206 2.544-4.107 4.322-2.943 8.055 2.998 2.708 3.19-4.845 2.944-8.056z" fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".131"/> - <path d="M283.833 189.51c-.493 2.601-2.802 4.752-1.289 8.2 4.25 1.068 2.225-4.66 1.29-8.2z" fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".131"/> - <path d="M281.32 185.615c2.135 3.971 2.648 6.268.128 8.872 0 0-1.323-1.244-1.638-3.532-.268-1.935 1.311-4.252 1.51-5.34z" fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".131"/> - <path d="M277.774 183.31c.567 2.518-1.612 3.672 1.504 6.914 2.224-2.645 1.162-3.306-1.504-6.914z" fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".131"/> - <path d="M276.936 187.716c-3.592.383-2.193-2.73-3.217-5.606 2.116 1.577 4.982 2.211 3.217 5.606zm2.342 4.752c-1.01-4.684-4.233-2.852-6.016-4.916.922 3.02 2.277 5.083 6.016 4.916zm1.45 4.357c-2.807-.185-5.083-1.567-6.594-4.673 2.879 1.286 6.07 1.416 6.594 4.673z" fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".131"/> - <path d="M281.153 200.892c-1.107-1.272-1.135-2.092-1.556-2.94-.698-1.403-1.439-2.645-3.245-3.954.013 3.313.484 6.973 4.801 6.894z" fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".131"/> - <path d="M281.791 204.353c-1.723-2.4-3.32-4.44-5.925-6.115 1.08 2.357.581 6.717 5.925 6.115z" fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".131"/> - <path d="M281.305 209.112c-5.288-.148-4.788-5.137-4.832-7.47.955 1.428 2.123 2.67 2.993 3.697.95 1.122 1.866 2.388 1.839 3.773z" fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".131"/> - <path d="M280.667 212.083c-.428-1.082-.1-1.519-1.043-2.469-1.02-1.026-2.977-2.864-4.001-4.973-.148 1.865-.172 4.743 1.272 5.706 1.093.729 2.046.934 3.772 1.736zm-4.619 7.73c-4.15-3.228-1.655-5.95-1.307-8.365 1.055 2.722 4.023 5.07 1.307 8.365zm1.702-31.122c-1.334-2.502-2.144-3.873-3.923-6.483 2.054 2.969 2.94 4.854 4.12 6.887" fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".131"/> - <path d="M276.109 220.62c.169-3.286-.727-6.118-1.307-9.085.549 3.133 1.327 6.285 1.033 9.345l.274-.26zm4.926-7.88c-.433-2.01-4.393-3.344-5.382-8.012.811 4.641 4.826 5.812 5.23 8.424l.152-.411zm.886-2.732l-.107.51c-.586-3.147-4.282-4.696-5.35-8.893 1.561 4.548 4.574 5.149 5.457 8.383zm.73-4.712c-1.818-2.774-4.361-3.82-6.768-7.077 2.251 3.2 5.09 4.7 6.812 7.506l-.043-.429zm-.064-3.65c-2.002-.857-4.079-3.259-6.252-7.649 1.425 3.249 3.232 6.187 6.252 8.138v-.49z" fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".131"/> - <path d="M281.663 197.363c-2.335-1.847-5.364-3.074-7.541-5.242 1.81 2.064 5.286 3.507 7.606 5.547l-.065-.305zm-1.805-4.59c-2.36-1.603-4.634-2.103-6.596-5.139 1.576 2.97 4.084 3.723 6.682 5.364l-.086-.224zm6.726 2.366c-.846 3.278-1.56 6.723-3.803 8.934l.021-.429c1.025-.574 2.645-3.988 3.782-8.505zm-2.73-5.506c-.153 3.387-.094 6.97-1.847 8.892l-.129-.387c1.787-1.447 1.638-5.276 1.977-8.505zm-2.406-3.855c.6 2.981.644 5.738-.15 10.198l-.172-.327c.498-2.627 1.063-5.318.322-9.871zm-3.61-2.366c1.199 2.529 2.116 5.088 1.333 7.832l-.215-.306c.928-2.509-.157-5.017-1.117-7.526zM273.206 216.696c1.417 3.409-.456 5.884-2.67 7.318-1.723-4.953 1.868-4.398 2.67-7.318z" fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".131"/> - <path d="M273.266 216.686c.243 2.108-2.05 4.469-2.76 8.036l-.32.29c1.053-4.35 3.275-6.024 3.08-8.326z" fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".131"/> - <path d="M281.3 193.296a.35.458 1.848 1 1-.691-.124.35.458 1.848 0 1 .69.124z" fill="#d52b1e" stroke="#000" stroke-width=".131"/> - <path d="M281.095 195.152c.03-.503-.024-1.058-.085-1.616-.048-.032-.082-.013-.11.028.06.65.088 1.238.033 1.8l.162-.212z" fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".131"/> - <path d="M280.339 192.94a.282.408 1.944 0 1-.537.267.282.408 1.944 0 1 .537-.267z" fill="#d52b1e" stroke="#000" stroke-width=".131"/> - <path d="M280.7 194.51c-.116-.412-.307-.82-.504-1.229-.044 0-.064.033-.073.08.222.48.403.93.516 1.401l.06-.251z" fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".131"/> - <path d="M282.35 199.333a.458.35 80.536 0 1-.703.014.458.35 80.536 1 1 .702-.014z" fill="#d52b1e" stroke="#000" stroke-width=".131"/> - <path d="M282.514 201.194c-.069-.5-.23-1.033-.4-1.57-.053-.021-.083.004-.102.05.187.625.33 1.198.385 1.758l.117-.238z" fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".131"/> - <path d="M281.185 199.71a.472.353 57.082 1 1-.489.524.472.353 57.082 0 1 .488-.524z" fill="#d52b1e" stroke="#000" stroke-width=".131"/> - <path d="M282.45 201.146c-.358-.368-.801-.696-1.252-1.022-.051.02-.057.063-.042.116.518.387.972.763 1.357 1.192l-.064-.286z" fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".131"/> - <path d="M280.91 212.406a.35.458 12.73 1 1-.656-.252.35.458 12.73 0 1 .655.252z" fill="#d52b1e" stroke="#000" stroke-width=".131"/> - <path d="M280.362 214.19c.124-.488.176-1.043.222-1.603-.042-.04-.079-.028-.114.007-.063.649-.147 1.233-.307 1.773l.199-.177z" fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".131"/> - <path d="M281.579 213.201a.35.458 50.478 0 0 .52.472.35.458 50.478 1 0-.52-.472z" fill="#d52b1e" stroke="#000" stroke-width=".131"/> - <path d="M280.23 214.495c.38-.332.853-.628 1.333-.921.054.018.06.057.044.105-.55.348-1.034.686-1.444 1.073l.068-.257z" fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".131"/> - <path d="M278.094 218.572a.35.458 40.348 0 1-.464-.527.35.458 40.348 0 1 .464.527z" fill="#d52b1e" stroke="#000" stroke-width=".131"/> - <path d="M276.78 219.902c.336-.375.64-.843.94-1.318-.018-.055-.057-.062-.105-.046-.356.545-.701 1.024-1.094 1.428l.258-.064z" fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".131"/> - <path d="M276.1 218.148a.475.59 10.023 0 0 .944.105.475.59 10.023 1 0-.945-.105z" fill="#d52b1e" stroke="#000" stroke-width=".131"/> - <path d="M276.67 218.744c-.25.643-.072.893.076 1.173l-.156.329c-.221-.369-.305-.777-.11-1.544.093-.035.16-.01.19.042zM263.75 228.752c-.71.06-1.065-.335-1.297-.767l-.38-.003c.402.535.827.958 1.637.95.072-.064.076-.133.04-.18z" fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".131"/> - <path d="M263.798 229.489a.619.452 9.459 0 1 .209-.881.619.452 9.459 1 1-.209.88z" fill="#d52b1e" stroke="#000" stroke-width=".131"/> - <path d="M269.54 219.819c.537 3.288-1.38 5.96-4.273 6.788-.945-4.238 2.963-4.39 4.274-6.788z" fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".131"/> - <path d="M269.546 219.845c-1.062 2.58-2.498 4.98-5.072 7.627l-.554.072c2.865-2.266 4.437-5.21 5.626-7.699z" fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".131"/> - <path d="M264.32 227.522a.543.403 9.82 0 1-.428-.777.543.403 9.82 1 1 .428.777z" fill="#d52b1e" stroke="#000" stroke-width=".131"/> - <path d="M262.305 228.046c.526-.167 1.036-.443 1.546-.728-.007-.063-.053-.092-.117-.105-.599.32-1.165.582-1.769.746l.34.087zM265.105 222.72c-.139 1.32-1.177 2.508-2.136 3.435-.957.926-1.064 1.274-2.415 1.674-1.298-2.955 3.043-3.54 4.55-5.109z" fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".131"/> - <path d="M265.092 222.689c-1.448 2.71-3.753 4.041-5.01 5.79l-.178-.016c1.8-2.373 3.33-2.824 5.188-5.774zM235.117 187.22c-1.893 3.029-4.7 8.493-5.467 12.68-1.414 7.721.796 16.282 7.523 22.332 5.48 4.929 14.082 6.452 17.674 7.189 3.582.735 6.175 1.887 6.767 2.68.03-.558.111-1.116-.486-1.674-1.702-.75-4.463-1.193-8.312-1.987-7.734-1.594-15.86-4.494-20.287-12.934-5.773-11.006-2.333-19.655 2.667-28.241l-.079-.045z" fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".131"/> - <path d="M249.71 227.82c-.237.44-4.279 3.986-7.954 3.72-2.691-.194-3.136-.842-3.136-.842s-.251-.668 2.138-1.157c2.414-.493 6.599-2.142 8.952-1.722z" fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".131"/> - <path d="M238.752 230.714c2.89.327 5.833-.84 8.138-1.72" fill="#007934" stroke="#000" stroke-width=".131"/> - <path d="M246.603 222.561c.31.054 3.628 1.753 4.905 3.984.935 1.633.783 2.024.783 2.024s-.237.28-1.397-1.04c-1.171-1.334-3.598-3.49-4.29-4.968z" fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".131"/> - <path d="M252.248 228.487c-.945-1.776-2.656-3.292-3.978-4.485" fill="#007934" stroke="#000" stroke-width=".131"/> - <path d="M234.949 187.574c-.078-.327.316-3.656 2.185-4.71 1.368-.772 1.861-.551 1.861-.551s.409.295-.52 1.354c-.938 1.07-2.221 3.374-3.526 3.907z" fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".131"/> - <path d="M238.925 182.347c-1.52.762-2.42 2.386-3.139 3.639" fill="#007934" stroke="#000" stroke-width=".131"/> - <path d="M234.007 189.266c-.167-.221-1.088-3.145-.248-5.047.615-1.392 1.013-1.49 1.013-1.49s.37.012.141 1.392c-.23 1.394-.248 3.982-.906 5.145z" fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".131"/> - <path d="M234.738 182.797c-.717 1.47-.726 3.292-.75 4.711" fill="#007934" stroke="#000" stroke-width=".131"/> - <path d="M234 189.293c.234.004 2.896-.778 4.14-2.232.911-1.065.854-1.372.854-1.372s-.134-.238-1.166.567c-1.042.813-3.117 2.053-3.829 3.037z" fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".131"/> - <path d="M238.951 185.743c-.938 1.168-2.4 2.039-3.532 2.728" fill="#007934" stroke="#000" stroke-width=".131"/> - <path d="M232.727 191.562c-.176-.22-1.39-3.32-.925-5.569.34-1.646.674-1.818.674-1.818s.324-.048.319 1.522c-.005 1.587.342 4.466-.068 5.865z" fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".131"/> - <path d="M232.456 184.255c-.419 1.748-.17 3.775.008 5.356" fill="#007934" stroke="#000" stroke-width=".131"/> - <path d="M231.788 193.681c-.272-.185-2.431-3.113-2.22-5.571.155-1.8.564-2.062.564-2.062s.42-.13.694 1.507c.278 1.653 1.253 4.567.962 6.126z" fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".131"/> - <path d="M230.12 186.136c-.24 1.925.451 3.975.971 5.578" fill="#007934" stroke="#000" stroke-width=".131"/> - <path d="M230.627 196.417c-.235-.156-2.334-2.74-2.574-5.023-.176-1.673.09-1.938.09-1.938s.293-.143.766 1.354c.477 1.512 1.684 4.15 1.718 5.607z" fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".131"/> - <path d="M228.148 189.539c.132 1.793.984 3.648 1.636 5.1" fill="#007934" stroke="#000" stroke-width=".131"/> - <path d="M232.786 191.592c.276.065 3.403-.265 4.848-1.833 1.057-1.149.986-1.563.986-1.563s-.162-.342-1.366.437c-1.217.787-3.643 1.864-4.468 2.959z" fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".131"/> - <path d="M238.57 188.256c-1.088 1.275-2.798 2.03-4.123 2.633" fill="#007934" stroke="#000" stroke-width=".131"/> - <path d="M231.773 193.696c.271.086 3.413-.018 4.968-1.479 1.137-1.069 1.096-1.487 1.096-1.487s-.137-.354-1.394.337c-1.27.697-3.768 1.597-4.67 2.63z" fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".131"/> - <path d="M237.783 190.786c-1.177 1.193-2.937 1.823-4.303 2.33" fill="#007934" stroke="#000" stroke-width=".131"/> - <path d="M230.781 196.452c.294.08 3.652-.165 5.253-1.793 1.172-1.193 1.11-1.638 1.11-1.638s-.161-.373-1.477.42c-1.33.8-3.965 1.868-4.886 3.01z" fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".131"/> - <path d="M237.089 193.083c-1.21 1.327-3.066 2.075-4.506 2.675" fill="#007934" stroke="#000" stroke-width=".131"/> - <path d="M231.29 195.211s-.305-.59-.309-1.137c-.004-.547.136-.83.136-.83l-.213-.132s-.107.587-.106.87c.001.282.01.353.01.353s-.383-.328-.466-.515c-.083-.186-.19-.464-.19-.464l-.187.084s.174.578.322.69c.515.396.828 1.187.828 1.187" fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".131"/> - <path d="M229.968 192.326a.58.393 83.534 1 1 .13 1.152.58.393 83.534 1 1-.13-1.152z" style="marker:none" overflow="visible" fill="#000" fill-rule="evenodd" stroke="#000" stroke-width=".131"/> - <path d="M231.294 192.317a.393.58 19.29 1 1-.383 1.095.393.58 19.29 1 1 .383-1.095z" style="marker:none" overflow="visible" fill="#000" fill-rule="evenodd" stroke="#000" stroke-width=".131"/> - <path d="M231.175 195.15s.609-.267.957-.689c.349-.421.418-.73.418-.73l.249.033s-.288.522-.467.74c-.179.22-.23.269-.23.269s.504-.013.686-.105c.182-.092.44-.24.44-.24l.093.182s-.5.339-.686.334c-.649-.019-1.391.397-1.391.397" fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".131"/> - <path d="M234.02 193.743a.393.58 45.57 1 0-.828.812.393.58 45.57 1 0 .828-.812z" style="marker:none" overflow="visible" fill="#000" fill-rule="evenodd" stroke="#000" stroke-width=".131"/> - <path d="M233.006 192.904a.393.58 19.818 1 0-.393 1.09.393.58 19.818 1 0 .393-1.09z" style="marker:none" overflow="visible" fill="#000" fill-rule="evenodd" stroke="#000" stroke-width=".131"/> - <path d="M229.808 199.329c-.254-.146-2.607-2.694-3.007-5.053-.293-1.726-.034-2.02-.034-2.02s.296-.168.886 1.357c.595 1.541 2.024 4.203 2.155 5.716z" fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".131"/> - <path d="M226.778 192.342c.255 1.855 1.264 3.727 2.036 5.194" fill="#007934" stroke="#000" stroke-width=".131"/> - <path d="M229.971 199.353c.31.064 3.785-.411 5.343-2.21 1.14-1.316 1.045-1.775 1.045-1.775s-.191-.377-1.507.533c-1.33.92-3.999 2.203-4.88 3.452z" fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".131"/> - <path d="M236.306 195.435c-1.17 1.46-3.05 2.36-4.507 3.078" fill="#007934" stroke="#000" stroke-width=".131"/> - <path d="M229.518 202.269c.304.005 3.751-.984 5.363-2.827 1.18-1.349 1.107-1.738 1.107-1.738s-.173-.301-1.51.718c-1.35 1.03-4.037 2.6-4.96 3.847z" fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".131"/> - <path d="M235.933 197.772c-1.216 1.48-3.109 2.583-4.577 3.456" fill="#007934" stroke="#000" stroke-width=".131"/> - <path d="M229.42 202.269c-.355-.11-3.604-2.399-4.092-4.843-.357-1.79.02-2.15.02-2.15s.425-.234 1.21 1.286c.792 1.536 2.727 4.116 2.862 5.707z" fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".131"/> - <path d="M225.36 195.365c.3 1.933 1.666 3.748 2.712 5.172" fill="#007934" stroke="#000" stroke-width=".131"/> - <path d="M229.52 205.943c.308-.052 3.612-1.705 4.899-3.88.942-1.593.795-1.976.795-1.976s-.232-.273-1.394 1.014c-1.174 1.3-3.6 3.401-4.3 4.842z" fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".131"/> - <path d="M235.171 200.167c-.954 1.733-2.663 3.21-3.986 4.372" fill="#007934" stroke="#000" stroke-width=".131"/> - <path d="M229.359 206.066c-.358-.045-3.86-1.793-4.756-4.23-.656-1.783-.36-2.228-.36-2.228s.365-.323 1.38 1.1c1.027 1.438 3.327 3.738 3.736 5.358z" fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".131"/> - <path d="M224.27 199.698c.627 1.943 2.25 3.56 3.498 4.834" fill="#007934" stroke="#000" stroke-width=".131"/> - <path d="M229.413 204.378s-.479-.544-.629-1.122c-.15-.578-.076-.914-.076-.914l-.261-.083s.043.65.12.948c.076.298.104.371.104.371s-.493-.245-.63-.42c-.138-.176-.325-.44-.325-.44l-.175.137s.338.565.524.646c.65.281 1.192 1.034 1.192 1.034" fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".131"/> - <path d="M227.22 201.66a.632.43 69.444 1 1 .444 1.185.632.43 69.444 1 1-.444-1.184z" style="marker:none" overflow="visible" fill="#000" fill-rule="evenodd" stroke="#000" stroke-width=".131"/> - <path d="M228.62 201.302a.43.632 5.202 1 1-.115 1.26.43.632 5.202 1 1 .114-1.26z" style="marker:none" overflow="visible" fill="#000" fill-rule="evenodd" stroke="#000" stroke-width=".131"/> - <path d="M229.375 204.324s.574-.443.83-.982c.257-.54.25-.883.25-.883l.27-.032s-.165.63-.296.908a4.234 4.234 0 0 1-.173.345s.53-.148.699-.294c.168-.146.402-.37.402-.37l.146.168s-.439.49-.637.535c-.692.153-1.367.79-1.367.79" fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".131"/> - <path d="M232.027 202.084a.43.632 31.485 1 0-.66 1.079.43.632 31.485 1 0 .66-1.079z" style="marker:none" overflow="visible" fill="#000" fill-rule="evenodd" stroke="#000" stroke-width=".131"/> - <path d="M230.713 201.457a.43.632 5.73 1 0-.127 1.258.43.632 5.73 1 0 .126-1.258z" style="marker:none" overflow="visible" fill="#000" fill-rule="evenodd" stroke="#000" stroke-width=".131"/> - <path d="M229.79 209.306c-.345-.058-4.045-1.91-5.487-4.347-1.055-1.784-.89-2.212-.89-2.212s.259-.307 1.56 1.135c1.316 1.456 4.033 3.81 4.818 5.424z" fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".131"/> - <path d="M223.46 202.837c1.069 1.94 2.984 3.594 4.465 4.896" fill="#007934" stroke="#000" stroke-width=".131"/> - <path d="M230.028 209.243c.392-.05 4.228-1.964 5.21-4.631.718-1.953.394-2.44.394-2.44s-.399-.355-1.512 1.204c-1.125 1.574-3.643 4.093-4.092 5.867z" fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".131"/> - <path d="M235.602 202.27c-.687 2.128-2.464 3.898-3.83 5.293" fill="#007934" stroke="#000" stroke-width=".131"/> - <path d="M231.028 212.53c.363-.092 3.918-2.384 4.84-5.086.676-1.978.38-2.414.38-2.414s-.366-.3-1.404 1.34c-1.049 1.656-3.39 4.387-3.816 6.16z" fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".131"/> - <path d="M236.22 205.128c-.647 2.145-2.3 4.065-3.571 5.574" fill="#007934" stroke="#000" stroke-width=".131"/> - <path d="M230.76 212.532c-.44.023-5.029-1.31-6.637-4.04-1.177-2-.92-2.597-.92-2.597s.368-.469 1.9 1.018c1.546 1.503 4.81 3.763 5.656 5.619z" fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".131"/> - <path d="M223.257 205.996c1.177 2.197 3.478 3.783 5.256 5.04" fill="#007934" stroke="#000" stroke-width=".131"/> - <path d="M234.828 219.404c.283-.191 2.767-3.28 2.966-5.937.147-1.945-.193-2.24-.193-2.24s-.369-.153-.889 1.603c-.525 1.774-1.903 4.884-1.884 6.574z" fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".131"/> - <path d="M237.598 211.322c-.087 2.083-1.06 4.271-1.803 5.983" fill="#007934" stroke="#000" stroke-width=".131"/> - <path d="M234.615 219.328c-.456.14-5.653.021-8.106-2.274-1.795-1.68-1.69-2.344-1.69-2.344s.255-.564 2.28.514c2.046 1.088 6.11 2.478 7.516 4.104z" fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".131"/> - <path d="M224.902 214.797c1.85 1.878 4.714 2.851 6.934 3.634" fill="#007934" stroke="#000" stroke-width=".131"/> - <path d="M232.705 216.621c-.404.022-5.04-1.097-7.264-3.42-1.628-1.702-1.546-2.214-1.546-2.214s.218-.401 2.041.862c1.842 1.276 5.488 3.191 6.77 4.772z" fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".131"/> - <path d="M223.97 211.074c1.682 1.87 4.25 3.215 6.242 4.28" fill="#007934" stroke="#000" stroke-width=".131"/> - <path d="M232.96 216.482c.383-.14 3.806-2.98 4.197-5.952.286-2.176-.147-2.604-.147-2.604s-.48-.275-1.25 1.583c-.778 1.877-2.745 5.043-2.8 6.973z" fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".131"/> - <path d="M237.001 208.034c-.215 2.349-1.604 4.575-2.666 6.322" fill="#007934" stroke="#000" stroke-width=".131"/> - <path d="M231.938 214.892s-.735-.344-1.148-.87c-.412-.526-.488-.904-.488-.904l-.304.032s.335.646.546.919c.212.272.274.334.274.334s-.616-.031-.835-.15c-.22-.118-.531-.306-.531-.306l-.118.22s.6.429.827.428c.793-.002 1.687.529 1.687.529" fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".131"/> - <path d="M228.501 213.102a.708.48 45.889 1 1 .986 1.017.708.48 45.889 1 1-.986-1.017z" style="marker:none" overflow="visible" fill="#000" fill-rule="evenodd" stroke="#000" stroke-width=".131"/> - <path d="M229.777 212.105a.708.48 71.645 1 1 .446 1.344.708.48 71.645 1 1-.446-1.344z" style="marker:none" overflow="visible" fill="#000" fill-rule="evenodd" stroke="#000" stroke-width=".131"/> - <path d="M232.033 214.867s.39-.712.413-1.38c.022-.668-.14-1.018-.14-1.018l.265-.154s.111.72.101 1.065c-.01.345-.023.432-.023.432s.478-.39.586-.615c.107-.225.247-.56.247-.56l.225.107s-.23.7-.415.835c-.64.466-1.05 1.422-1.05 1.422" fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".131"/> - <path d="M233.742 211.384a.48.708 7.93 1 0-.195 1.403.48.708 7.93 1 0 .195-1.403z" style="marker:none" overflow="visible" fill="#000" fill-rule="evenodd" stroke="#000" stroke-width=".131"/> - <path d="M232.124 211.33a.708.48 72.174 1 0 .434 1.348.708.48 72.174 1 0-.434-1.349z" style="marker:none" overflow="visible" fill="#000" fill-rule="evenodd" stroke="#000" stroke-width=".131"/> - <path d="M236.556 221.433c-.323.204-4.534 1.136-7.218-.255-1.966-1.018-2.089-1.582-2.089-1.582s.03-.51 1.992-.031c1.982.485 5.678.817 7.315 1.868z" fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".131"/> - <path d="M227.344 219.651c2.07 1.169 4.673 1.398 6.7 1.599" fill="#007934" stroke="#000" stroke-width=".131"/> - <path d="M236.81 221.36c.228-.147 2.084-2.744 2.004-5.186-.058-1.788-.38-2.098-.38-2.098s-.334-.182-.617 1.39c-.287 1.589-1.184 4.324-1.006 5.893z" fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".131"/> - <path d="M238.44 214.164c.123 1.922-.512 3.846-.992 5.354" fill="#007934" stroke="#000" stroke-width=".131"/> - <path d="M240.575 224.36c-.397.244-5.448 1.559-8.512.26-2.244-.95-2.345-1.548-2.345-1.548s.075-.553 2.356-.182c2.306.376 6.649.46 8.501 1.47z" fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".131"/> - <path d="M229.825 223.124c2.357 1.104 5.416 1.158 7.796 1.225" fill="#007934" stroke="#000" stroke-width=".131"/> - <path d="M240.815 224.33c.217-.32 1.302-4.083 0-6.027-.952-1.424-1.514-1.399-1.514-1.399s-.514.143-.102 1.687c.417 1.56.62 4.6 1.616 5.739z" fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".131"/> - <path d="M239.353 216.972c1.1 1.478 1.238 3.62 1.368 5.282" fill="#007934" stroke="#000" stroke-width=".131"/> - <path d="M238.23 222.558s-.62.486-1.287.1c-.667-.387-.91-.76-.91-.76l-.312.165s.636.55.979.75c.343.2.436.241.436.241s-.673.23-.959.197c-.285-.033-.699-.101-.699-.101l-.032.286s.807.122 1.069.105c.261-.017 1.632-.55 1.632-.55" fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".131"/> - <path d="M234.095 222.65a.816.554 24.117 1 1 1.49.666.816.554 24.117 1 1-1.49-.667z" style="marker:none" overflow="visible" fill="#000" fill-rule="evenodd" stroke="#000" stroke-width=".131"/> - <path d="M235.028 221.042a.816.554 49.87 1 1 1.052 1.248.816.554 49.87 1 1-1.052-1.248z" style="marker:none" overflow="visible" fill="#000" fill-rule="evenodd" stroke="#000" stroke-width=".131"/> - <path d="M238.348 222.969s.524-.59.18-1.28c-.345-.689-.701-.954-.701-.954l.183-.302s.509.669.688 1.023c.179.355.214.45.214.45s.27-.656.256-.944a17.5 17.5 0 0 0-.058-.704l.287-.014s.072.813.039 1.073c-.033.26-.65 1.596-.65 1.596" fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".131"/> - <path d="M238.635 218.814a.816.554 69.449 1 0 .573 1.529.816.554 69.449 1 0-.573-1.53zM236.966 219.65a.816.554 43.692 1 0 1.18 1.129.816.554 43.692 1 0-1.18-1.128z" style="marker:none" overflow="visible" fill="#000" fill-rule="evenodd" stroke="#000" stroke-width=".131"/> - <path d="M243.529 225.978c-.278.373-4.5 3.125-7.88 2.455-2.475-.49-2.804-1.132-2.804-1.132s-.145-.636 2.14-.802c2.307-.167 6.413-1.178 8.544-.521z" fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".131"/> - <path d="M232.967 227.332c2.641.633 5.53-.084 7.787-.615" fill="#007934" stroke="#000" stroke-width=".131"/> - <path d="M246.156 226.716s-.498.76-1.368.584c-.87-.176-1.272-.493-1.272-.493l-.28.295s.895.364 1.344.457c.448.092.565.102.565.102s-.65.499-.973.569c-.324.07-.8.147-.8.147l.07.324s.926-.165 1.205-.28c.279-.115 1.578-1.202 1.578-1.202" fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".131"/> - <path d="M241.674 228.327a.94.638 5.412 1 1 1.872.178.94.638 5.412 1 1-1.872-.178zM242.1 226.224a.94.638 31.167 1 1 1.61.973.94.638 31.167 1 1-1.61-.973z" style="marker:none" overflow="visible" fill="#000" fill-rule="evenodd" stroke="#000" stroke-width=".131"/> - <path d="M244.775 226.356c.193-.344.816-4.206-.958-5.949-1.298-1.276-1.926-1.174-1.926-1.174s-.556.21.153 1.678c.717 1.483 1.428 4.457 2.731 5.445z" fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".131"/> - <path d="M241.96 219.292c1.473 1.31 1.968 3.405 2.379 5.028" fill="#007934" stroke="#000" stroke-width=".131"/> - <path d="M246.789 227.282s.233-.878-.478-1.409c-.711-.53-1.216-.619-1.216-.619l.033-.405s.87.424 1.237.696c.368.273.453.353.453.353s-.061-.816-.225-1.104c-.164-.288-.424-.695-.424-.695l.288-.163s.494.8.595 1.084c.1.284.157 1.978.157 1.978" fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".131"/> - <path d="M244.981 222.856a.94.638 42.736 1 0 1.381 1.276.94.638 42.736 1 0-1.381-1.276zM243.698 224.58a.94.638 16.98 1 0 1.798.548.94.638 16.98 1 0-1.798-.549z" style="marker:none" overflow="visible" fill="#000" fill-rule="evenodd" stroke="#000" stroke-width=".131"/> - <path d="M255.045 222.92s-2.497 5.8-1.634 6.375c0 0 2.533-4.502 4.757-6.205 1.157-1.091 1.86.009 2.009-.95.148-.959-3.043-2.335-3.043-2.335l-2.044 2.876" fill="#452c25"/> - <path d="M255.045 222.92s-2.497 5.8-1.634 6.375c0 0 2.533-4.502 4.757-6.206 1.157-1.09 1.86.01 2.009-.949.148-.96-3.043-2.335-3.043-2.335l-2.044 2.876" fill="none" stroke="#000" stroke-width=".175"/> - <path d="M245.936 227.336s-3.63 6.319-2.678 6.393c.952.075 4.833-8.057 4.833-8.057l-1.323.227-.832 1.437z" fill="#452c25"/> - <path d="M245.936 227.336s-3.63 6.319-2.678 6.393c.952.075 4.833-8.057 4.833-8.057l-1.323.227-.832 1.437z" fill="none" stroke="#000" stroke-width=".142"/> - <path d="M247.032 225.575s-3.793 6.217-2.844 6.317c.949.1 5.042-7.922 5.042-7.922l-1.329.19-.869 1.415z" fill="#452c25"/> - <path d="M247.032 225.575s-3.793 6.217-2.844 6.317c.949.1 5.042-7.922 5.042-7.922l-1.329.19-.869 1.415z" fill="none" stroke="#000" stroke-width=".142"/> - <path d="M247.8 224.494s-4.32 5.847-3.383 6.034c.936.186 5.71-7.433 5.71-7.433l-1.339.069-.988 1.33z" fill="#452c25"/> - <path d="M247.8 224.494s-4.32 5.847-3.383 6.034c.936.186 5.71-7.433 5.71-7.433l-1.339.069-.988 1.33z" fill="none" stroke="#000" stroke-width=".142"/> - <path d="M248.955 223.466s-5.058 5.193-4.155 5.508c.903.315 6.647-6.57 6.647-6.57l-1.336-.118-1.156 1.18z" fill="#452c25"/> - <path d="M248.955 223.466s-5.058 5.193-4.155 5.508c.903.315 6.647-6.57 6.647-6.57l-1.336-.118-1.156 1.18z" fill="none" stroke="#000" stroke-width=".142"/> - <path d="M249.135 221.578s-4.414 5.774-3.48 5.976c.933.202 5.83-7.335 5.83-7.335l-1.34.046-1.01 1.313z" fill="#452c25"/> - <path d="M249.135 221.578s-4.414 5.774-3.48 5.976c.933.202 5.83-7.335 5.83-7.335l-1.34.046-1.01 1.313z" fill="none" stroke="#000" stroke-width=".142"/> - <path d="M248.01 226.54s-4.32 5.847-3.383 6.034c.936.186 5.71-7.433 5.71-7.433l-1.34.069-.988 1.33z" fill="#452c25"/> - <path d="M248.01 226.54s-4.32 5.847-3.383 6.034c.936.186 5.71-7.433 5.71-7.433l-1.34.069-.988 1.33z" fill="none" stroke="#000" stroke-width=".142"/> - <path d="M250.44 225.384s-2.529 4.76-2.24 4.957c.29.197 3.36-2.715 4.877-5.547 1.518-2.833-2.745.472-2.745.472" fill="#452c25"/> - <path d="M250.44 225.384s-2.529 4.76-2.24 4.957c.29.197 3.36-2.715 4.877-5.547 1.518-2.833-2.745.472-2.745.472" fill="none" stroke="#000" stroke-width=".142"/> - <path d="M250.71 224.912s-2.496 5.799-1.634 6.374c0 0 3.133-3.499 3.95-6.278.818-2.78 0-.192 0-.192l-.227-3.02-2.043 2.876" fill="#452c25"/> - <path d="M250.71 224.912s-2.496 5.799-1.634 6.374c0 0 3.133-3.499 3.95-6.278.818-2.78 0-.192 0-.192l-.227-3.02-2.043 2.876" fill="none" stroke="#000" stroke-width=".175"/> - <path d="M249.414 224.405s-5.058 5.193-4.155 5.507c.902.315 6.648-6.57 6.648-6.57l-1.337-.118-1.156 1.18z" fill="#452c25"/> - <path d="M249.414 224.405s-5.058 5.193-4.155 5.507c.902.315 6.648-6.57 6.648-6.57l-1.337-.118-1.156 1.18z" fill="none" stroke="#000" stroke-width=".142"/> - <path d="M249.816 225.108s-5.058 5.194-4.155 5.508c.903.315 6.648-6.57 6.648-6.57l-1.337-.118-1.156 1.18z" fill="#452c25"/> - <path d="M249.816 225.108s-5.058 5.194-4.155 5.508c.903.315 6.648-6.57 6.648-6.57l-1.337-.118-1.156 1.18z" fill="none" stroke="#000" stroke-width=".142"/> - <path d="M250.217 225.93s-5.057 5.192-4.155 5.507c.903.315 6.648-6.57 6.648-6.57l-1.336-.118-1.157 1.18z" fill="#452c25"/> - <path d="M250.217 225.93s-5.057 5.192-4.155 5.507c.903.315 6.648-6.57 6.648-6.57l-1.336-.118-1.157 1.18z" fill="none" stroke="#000" stroke-width=".142"/> - <path d="M250.596 218.8s-3.758 4.8-3.216 5.626c.542.826 3.974-2.204 5.058-4.328 1.084-2.124-1.807-1.455-1.807-1.455" fill="#452c25"/> - <path d="M250.596 218.8s-3.758 4.8-3.216 5.626c.542.826 3.974-2.204 5.058-4.328 1.084-2.124-1.807-1.455-1.807-1.455" fill="none" stroke="#000" stroke-width=".142"/> - <path d="M250.475 223.898s-3.221 6.164-2.39 5.81c.831-.354 4.096-4.99 4.457-6.013.362-1.023.24-2.091.24-2.091l-2.493 1.534.214 1.194" fill="#452c25"/> - <path d="M250.475 223.898s-3.221 6.164-2.39 5.81c.831-.354 4.096-4.99 4.457-6.013.362-1.023.24-2.091.24-2.091l-2.493 1.534.214 1.194" fill="none" stroke="#000" stroke-width=".142"/> - <path d="M250.497 221.87s2.673-4.913-.019.926c-2.69 5.839-3.697 4.875-3.697 4.875-.208-.333 2.34-4.289 2.34-4.289s1.892-3.044 2.345-3.333" fill="#452c25"/> - <path d="M250.497 221.87s2.673-4.913-.019.926c-2.69 5.839-3.697 4.875-3.697 4.875-.208-.333 2.34-4.289 2.34-4.289s1.892-3.044 2.345-3.333" fill="none" stroke="#000" stroke-width=".121"/> - <path d="M253.363 221.218s2.973-4.88-.007.926c-2.98 5.807-4.142 4.825-4.142 4.825-.242-.336 2.603-4.259 2.603-4.259s2.11-3.019 2.623-3.302" fill="#452c25"/> - <path d="M253.363 221.218s2.973-4.88-.007.926c-2.98 5.807-4.142 4.825-4.142 4.825-.242-.336 2.603-4.259 2.603-4.259s2.11-3.019 2.623-3.302" fill="none" stroke="#000" stroke-width=".129"/> - <path d="M252.273 219.158s-3.758 4.8-3.216 5.626c.542.826 3.974-2.203 5.058-4.327 1.084-2.125-1.806-1.456-1.806-1.456" fill="#452c25" stroke="#000" stroke-width=".142"/> - <path d="M291.01 267.815a35.007 39.384 0 1 1-70.015 0 35.007 39.384 0 1 1 70.014 0z" fill="#e8a30e"/> - <path d="M227.945 267.813c0-18.296 12.873-32.338 28.052-32.338 15.18 0 28.052 14.042 28.052 32.338" style="line-height:normal;-inkscape-font-specification:Sans;text-indent:0;text-align:start;text-decoration-line:none;text-transform:none;block-progression:tb;marker:none" font-weight="400" overflow="visible" color="#000" font-family="Sans" fill="none" stroke="#390" stroke-width=".875"/> - <path d="M221.037 269.877c.955 20.791 16.243 37.319 34.961 37.319s34.003-16.528 34.958-37.319h-69.919z" fill="#007934" stroke="#eee" stroke-width=".088"/> - <path d="M291.01 267.814a35.007 39.384 0 1 1-70.015 0 35.007 39.384 0 1 1 70.014 0z" fill="none" stroke="#000" stroke-width=".394"/> - <path d="M250.14 240.388c-.383 1.5.04 2.733.772 3.896.566.9.938 1.857.92 2.887a8.391 8.391 0 0 0-.74.47l-5.92-3.932 3.974 5.855a8.606 8.606 0 0 0-.208.303c-1.127-.508-2.185-.609-3.194-.414-1.425.276-2.636-.023-3.9-.776.79 1.331 1.966 1.905 3.307 2.209 1.038.236 1.977.65 2.693 1.393-.078.28-.142.563-.191.85l-6.97 1.414 6.954 1.33c.02.12.042.238.067.358-1.157.438-1.98 1.113-2.554 1.964-.814 1.203-1.875 1.848-3.301 2.21 1.499.383 2.731-.045 3.894-.777.899-.567 1.857-.94 2.887-.921.145.257.302.503.47.74l-3.93 5.926 5.858-3.982c.098.07.197.143.297.21-.507 1.127-.606 2.19-.41 3.199.275 1.426-.026 2.631-.779 3.895 1.331-.79 1.905-1.966 2.209-3.306.235-1.039.65-1.978 1.392-2.694.281.078.563.142.851.191l1.414 6.97 1.33-6.954c.119-.02.238-.042.358-.067.437 1.157 1.113 1.98 1.964 2.555 1.203.813 1.848 1.874 2.21 3.3.382-1.499-.045-2.73-.778-3.894-.567-.9-.935-1.856-.916-2.889.256-.144.5-.3.736-.468l5.925 3.93-3.976-5.86a8.6 8.6 0 0 0 .205-.295c1.127.509 2.19.606 3.199.411 1.425-.276 2.63.025 3.895.778-.79-1.33-1.964-1.9-3.305-2.204-1.037-.235-1.975-.657-2.69-1.4.078-.279.137-.561.186-.848l6.971-1.408-6.955-1.335a8.284 8.284 0 0 0-.067-.358c1.158-.438 1.979-1.113 2.554-1.965.813-1.203 1.877-1.843 3.303-2.204-1.499-.383-2.733.04-3.896.772-.9.568-1.856.936-2.889.916a8.39 8.39 0 0 0-.468-.736l3.932-5.92-5.862 3.972a8.596 8.596 0 0 0-.296-.205c.51-1.128.609-2.186.414-3.195-.276-1.425.023-2.636.776-3.9-1.331.79-1.9 1.965-2.204 3.305-.236 1.04-.657 1.981-1.403 2.697a8.481 8.481 0 0 0-.846-.193l-1.408-6.97-1.334 6.954c-.12.02-.24.042-.359.067-.437-1.157-1.113-1.979-1.964-2.554-1.203-.813-1.843-1.877-2.204-3.303z" style="marker:none" overflow="visible" fill="#d52b1e" stroke="#000" stroke-width=".131"/> - <use height="330" width="330" transform="scale(.15213) rotate(22.5 -3210.896 5291.813)" fill="#fcbf49" stroke-width="1.112"/> - <use height="330" width="330" transform="matrix(-.15213 0 0 .15213 270.886 248.204)" fill="#fcbf49" stroke-width="1.112"/> - <path d="M262.237 252.484c-1.75-1.521-3.955-1.75-5.172-.608-.883 1.18-.805 2.571.228 4.031-.076 0-.228.076-.304.152-.767-1.46-.9-2.965-.38-4.335 1.673-1.37 3.955-1.522 5.628.76" fill="#000"/> - <path d="M259.499 252.028c-.989 0-1.217.228-1.673.608-.457.38-.685.305-.761.38-.076.077 0 .305.152.229.152-.076.456-.228.913-.609.456-.38.913-.38 1.369-.38 1.369 0 2.13 1.141 2.282 1.065.152-.076-.76-1.293-2.282-1.293" fill="#000"/> - <path d="M261.248 253.321c-.988-1.065-2.814-1.141-3.575.076h.305c.76-1.217 2.586-.685 2.738-.152v.152" fill="#000"/> - <circle r=".685" cy="253.245" cx="259.347" fill="#000"/> - <path d="M257.673 253.397c.761.685 2.434.76 3.575-.076l-.532-.076c-.76.837-1.978.76-2.738.152v-.152" fill="#000"/> - <path d="M261.324 253.701c-1.293.99-2.586.913-3.346.457-.761-.457-.761-.609-.609-.609.152 0 .304.152.913.457.608.304 1.521.304 3.042-.305m-3.727 2.282a.456.456 0 1 1-.608.457c-.076.152-.38.608-.989.608h-.152l.152.228c.152 0 .609 0 .913-.228a.685.685 0 1 0 .684-1.065m.913 3.195c-.684-.457-.989-1.141-1.75-1.141-.151 0-.456.076-.76.228h-.152l.152.228c.304 0 .76-.38 1.293-.076.533.304.837.609 1.217.76m-.228 0c-1.521-.456-1.826-.151-2.282-.151h-.152l.152.304c.609 0 .913-.456 2.282-.152" fill="#000"/> - <path d="M258.51 259.178c-1.673-.152-1.14.836-2.51.836h-.152l.152.229c1.673 0 .913-.913 2.51-1.065M249.762 252.484c1.75-1.521 3.956-1.75 5.173-.608.883 1.18.804 2.571-.229 4.031.076 0 .229.076.305.152.767-1.46.899-2.965.38-4.335-1.673-1.37-3.955-1.522-5.629.76" fill="#000"/> - <path d="M252.5 252.028c.99 0 1.218.228 1.674.608.456.38.684.305.76.38.077.077 0 .305-.152.229-.152-.076-.456-.228-.912-.609-.457-.38-.913-.38-1.37-.38-1.369 0-2.13 1.141-2.281 1.065-.152-.076.76-1.293 2.282-1.293" fill="#000"/> - <path d="M250.751 253.321c.989-1.065 2.814-1.141 3.575.076h-.304c-.76-1.217-2.586-.685-2.738-.152v.152" fill="#000"/> - <circle transform="scale(-1 1)" r=".685" cy="253.245" cx="-252.653" fill="#000"/> - <path d="M254.326 253.397c-.76.685-2.434.76-3.575-.076l.533-.076c.76.837 1.977.76 2.738.152v-.152" fill="#000"/> - <path d="M250.675 253.701c1.293.99 2.586.913 3.347.457.76-.457.76-.609.608-.609-.152 0-.304.152-.912.457-.609.304-1.522.304-3.043-.305m3.727 2.282a.456.456 0 1 0 .609.457c.076.152.38.608.988.608h.153l-.153.228c-.152 0-.608 0-.912-.228a.685.685 0 1 1-.685-1.065m-.913 3.195c.685-.457.99-1.141 1.75-1.141.152 0 .456.076.76.228h.153l-.153.228c-.304 0-.76-.38-1.293-.076-.532.304-.836.609-1.217.76m.229 0c1.52-.456 1.825-.151 2.281-.151h.153l-.153.304c-.608 0-.912-.456-2.281-.152" fill="#000"/> - <path d="M253.49 259.178c1.673-.152 1.14.836 2.51.836h.152l-.153.229c-1.673 0-.912-.913-2.51-1.065" fill="#000"/> - <path d="M259.431 275.652c1.71.217 3.497.164 5.042-.317 1.412-.492 2.952-.82 4.476-.664.007-.213.456-.363.205-.532-.558-.344-1.261-.308-1.952-.658-1.129-.524-1.793-1.417-2.918-2.054-.124-.05-.62-.341-.612-.614 2.369 3.41 7.965 1.668 12.757 1.292.44.122 1.598-.212 2.56-.508 1.16-.392 3.949-.083 4.666-.552.119-.042-1.18-.848-1.43-1.076-.666-.835-2.393-.726-3.252-1.627-1.346-1.51-3.43-1.959-5.12-3.214-.374-.225-1.14-.154-1.706-.286-.695-.587-.016-.568-5.327-4.944-4.808-1.98-4.524-3.482-7.51-4.633-1.058-.521-2.026-1.454-2.923-1.21-1.606.433-5.086 2.211-6.646 3.139-1.297.769-2.924 2.15-4.037 3.04-.293.232-3.678 3.102-7.513 5.209-3.835 2.106-9.386 4.992-9.863 5.03 8.655-.433-7.738 2.453 31.103 5.179z" fill="#007934" stroke="#000" stroke-width=".131" stroke-linecap="round"/> - <path d="M238.195 265.683c2.192-1.19 10.579-5.781 13.18-9.01-.354.023.706 1.004.62 1.403.812-.029.394-.91 1.07-.945.52.018.9-.196 1.352-.357.523-.095.211.233.205.41-.709 1.302-2.22 2.056-3.447 3.053.141.118.283.235.205.409.435.064.954.081 1.264-.184.075-.054.08-.23.084-.343.441.185.275.525.121.752-.314.682-1.578.576-1.973 1.198-.46.669-.925 1.232-1.616 1.731.534-.44 1.145-.999 1.82-1.033 1.043-.078 1.44-.756 2.34-.952.972-.193 1.591-.984 2.36-1.594-.308.449-.922.83-.712 1.36.071.059.305.23.61.12-.696.902-2.079 1.553-2.562 2.63-.44-.184-.743.145-1.045.192-.443.154-.32.85-.629 1.072-1.281.706-1.923 1.898-2.476 2.91-.077.11-1.062.656-1.439.757-.674.266-4.903 3.534-4.96 3.073-.365-2.2-4.639 1.771-14.179-1.655m32.585-.091c-.07-.088-.214-.134-.213-.176.157-.338-.506-.403-.495-.75 1.111.037 1.962 1.31 2.662.558.152-.17-.277-.436.386-.63.147-.032-.14-.174-.064-.26-.365-.013-.667.019-.892-.068-.288-.094-.44-.183-.801-.285-.362-.096-.504-.486.02-.6.97-.142 1.987.535 2.747.176.602-.28 1.197-.345 1.796-.541.294-.075 1.267.005.957.285-.225.166-.742.102-1.046.176-.524.151-.979.394-1.505.593.365-.03.278.394.729.283.672-.189 1.354-.425 2.095-.49-.068-.17.156-.295.161-.469l.219.007c-.348-.523.675-.272 1.062-.692-.003.084.061.087.142.131-.526.194-.31.544-.465.802-.075.082-.295.117-.227.251.285.22.297-.159.522-.067.217.05.515.144.662.107.364.012.743-.144.526-.457-.283-.263-.576-.489-.565-.831.001-.042-.07-.087-.214-.134.592.02 1.032.208 1.242.469.283.267.343.654.795.76.88.155.82-.274.835-.706.664.064 1.62.355 1.463.692-.072.251-.607.45-1.128.48-.365.024-.156.295-.376.33-.437-.015-.968.052-1.12.22-.154.254.048.773.333.955.43.226 1.333-.04 2.004.067.077-.382.536-.493.918-.744.446-.238-.203-.476-.57-.662-.289-.094-.067-.171.085-.382.227-.246.894-.013.974-.221.154-.253-.124-.648.173-.812.224-.16.515.144.426.357.292-.027.371-.198.673-.23.366-.03.584.272.426.357-.447.285-.828.484-.697.92-.007.216-.529.283-.307.465.427.314.417.615.56.962.133.39.95.502 1.694.358-.267-.738 1.426-.38 2.18-.571.063.002.067-.125.005-.169-.357-.222-.427-.31-.344-.612.001-.037-.132-.131-.213-.176 1.1.38 3.051.9 3.85 1.57-1.046.175-2.999-.297-4.046-.074-1.268.3-2.548.685-3.896.64-.592-.02-1.175-.292-1.767-.312m-11.964-.743c.145.042-.363-.054-.434-.1" fill="#007934" stroke="#000" stroke-width=".131"/> - <path d="M257.248 276.425c2.068-.117 2.391 1.489 3.746.085 1.239.228 2.386-.187 2.403-.365 2.886.604 11.85-.226 11.258-.86-.924-1.056-2.427-1.454-3.611-2.36-.265-.167-.818-.257-1.225-.371-.679-.208-1.582-.05-2.16-.353-.93-.522-1.917-.975-2.741-1.631-.52-.372-.698-.964-1.268-1.415-.61-.451-1.489-.538-2.115-.814-.944-.378-1.463-1.29-2.339-1.951-.303-.241-.82-.221-1.172-.436-.753-.394-1.33-1.242-1.994-1.127-1.188.204-1.889 1.175-3.062 1.705-.976.44-1.427 1.256-2.274 1.783-.222.138-2.802 1.852-5.681 3.042-2.88 1.19-6.655 2.631-7.004 2.632 0 0 2.543 1.871 8.462 1.62l3.619 1.167 2.023-.356s5.039-.004 5.135.005z" fill="#007934" stroke="#000" stroke-width=".131"/> - <path d="M245.075 271.83c1.33-.637 6.418-3.098 7.988-4.827-.217.014.434.537.384.75.495-.016.236-.487.648-.506.316.01.547-.105.822-.192.318-.051.13.125.127.219-.425.697-1.343 1.101-2.086 1.635.087.063.174.126.127.219.266.033.583.042.77-.1.045-.028.048-.123.05-.183.27.098.17.28.077.402-.188.364-.959.309-1.196.642-.277.358-.558.66-.977.927.324-.236.693-.535 1.105-.554.635-.043.873-.406 1.42-.51.592-.105.966-.528 1.43-.855-.184.24-.557.445-.426.728.044.031.217.19.402.132-.42.482-1.289.763-1.577 1.34-.27-.099-.453.077-.637.102-.269.083-.19.455-.377.574-.778.378-1.163 1.017-1.495 1.558-.046.059-.643.351-.873.406-.41.143-2.97 1.893-3.008 1.646-.233-1.175-2.72.56-8.553-1.265" fill="#007934" stroke="#000" stroke-width=".131"/> - <path overflow="visible" font-weight="400" style="line-height:normal;-inkscape-font-specification:Sans;text-indent:0;text-align:start;text-decoration-line:none;text-transform:none;block-progression:tb;marker:none" d="M255.997 228.43c-19.334 0-35.007 17.632-35.007 39.383 0 21.75 15.673 39.383 35.007 39.383 19.334 0 35.007-17.633 35.007-39.383 0-21.751-15.673-39.383-35.007-39.383zm0 8.795c14.095 0 26.302 13.107 26.302 30.588 0 17.48-12.207 30.584-26.302 30.584-14.094 0-26.302-13.103-26.302-30.584s12.208-30.588 26.302-30.588z" color="#000" font-family="Sans" fill="#00a6de" stroke="#000" stroke-width=".131"/> - <path d="M261.041 284.577c.004.215-.075.223-.478.277-.395.054-.47.055-.476-.149-.004-.215.084-.223.479-.277.373-.05.47-.077.475.15z" fill="#e8a30e" stroke="#000" stroke-width=".044"/> - <path d="M261.126 284.565c.005.135-.252.168-.562.21-.31.04-.555.07-.56-.058-.007-.134.25-.167.562-.209.31-.042.554-.083.56.057zm-3.02 9.582c.85-2.27 1.072-3.985-.143-6.419 2.016-1.924 3.496-1.256 4.832.11-1.271 2.403-.939 4.116-.212 6.326-1.58.836-2.958.812-4.476-.017z" fill="#e8a30e" stroke="#000" stroke-width=".044"/> - <path d="M260.335 286.532c-.042 0-.084.002-.126.005.14 2.76.022 5.498-.003 8.239.055.002.112.003.168.003-.01-2.758.15-5.428-.032-8.248h-.008z" fill="#e8a30e" stroke="#000" stroke-width=".044"/> - <path d="M260.717 286.56c-.357 2.513-.49 5.052-.403 8.22l.148-.001c-.02-3.127.089-5.668.394-8.191a2.952 2.952 0 0 0-.139-.028zm.684-2.627c-.358.394-.556.39-.376 1.002.396-.27.385-.493.376-1.002z" fill="#e8a30e" stroke="#000" stroke-width=".044"/> - <path d="M260.606 284.197c.234.246.576.375.358 1.04-.427-.37-.371-.407-.358-1.04z" fill="#e8a30e" stroke="#000" stroke-width=".044"/> - <path d="M260.533 284.876c.31.225.593.272.381.852-.271-.325-.389-.297-.38-.852z" fill="#e8a30e" stroke="#000" stroke-width=".044"/> - <path d="M260.448 285.238c.235.242.577.368.36 1.019-.426-.362-.37-.398-.36-1.02z" fill="#e8a30e" stroke="#000" stroke-width=".044"/> - <path d="M260.312 285.765c.274.238.671.365.428.993-.474-.4-.24-.493-.428-.993z" fill="#e8a30e" stroke="#000" stroke-width=".044"/> - <path d="M260.259 286.297c.257.23.662.365.432.972-.366-.335-.413-.388-.432-.972zm1.378-1.809c-.186.156-.616.14-.634.805.53-.305.525-.247.634-.805z" fill="#e8a30e" stroke="#000" stroke-width=".044"/> - <path d="M261.609 284.96c-.199.144-.658.127-.673.749.565-.28.56-.226.673-.748z" fill="#e8a30e" stroke="#000" stroke-width=".044"/> - <path d="M261.541 285.388c-.205.156-.68.137-.697.809.585-.304.578-.246.697-.81z" fill="#e8a30e" stroke="#000" stroke-width=".044"/> - <path d="M261.506 285.975c-.216.08-.721-.079-.725.754.432-.115.402-.368.725-.754z" fill="#e8a30e" stroke="#000" stroke-width=".044"/> - <path d="M261.266 286.483c-.302.126-.472.1-.527.77.436-.295.43-.24.527-.77zm.33.394c-.761 2.184-.922 4.252-.847 7.882a6.85 6.85 0 0 0 .186-.023c-.038-3.6.1-5.592.8-7.779a2.956 2.956 0 0 0-.138-.08zm1.244-2.406c-.435.308-.627.263-.581.896.446-.177.482-.398.58-.896z" fill="#e8a30e" stroke="#000" stroke-width=".044"/> - <path d="M262.003 284.56c.179.29.487.486.133 1.088-.34-.45-.279-.475-.133-1.088z" fill="#e8a30e" stroke="#000" stroke-width=".044"/> - <path d="M261.789 285.205c.256.284.524.39.193.91-.198-.374-.32-.372-.193-.91z" fill="#e8a30e" stroke="#000" stroke-width=".044"/> - <path d="M261.63 285.54c.177.285.487.48.136 1.067-.342-.442-.28-.466-.137-1.068z" fill="#e8a30e" stroke="#000" stroke-width=".044"/> - <path d="M261.382 286.022c.219.29.582.499.21 1.058-.38-.49-.13-.53-.21-1.058z" fill="#e8a30e" stroke="#000" stroke-width=".044"/> - <path d="M261.217 286.53c.205.278.573.496.219 1.038-.288-.405-.323-.466-.219-1.038zm1.738-1.468c-.217.112-.635.005-.794.648.584-.183.567-.128.794-.648z" fill="#e8a30e" stroke="#000" stroke-width=".044"/> - <path d="M262.826 285.516c-.225.098-.673-.018-.819.585.614-.152.596-.102.82-.585z" fill="#e8a30e" stroke="#000" stroke-width=".044"/> - <path d="M262.67 285.917c-.236.108-.698-.01-.857.639.639-.17.62-.116.857-.639z" fill="#e8a30e" stroke="#000" stroke-width=".044"/> - <path d="M262.51 286.481c-.23.032-.69-.23-.871.58.448-.02.472-.273.871-.58z" fill="#e8a30e" stroke="#000" stroke-width=".044"/> - <path d="M262.166 286.924c-.322.058-.484-.002-.68.637.492-.193.474-.142.68-.637zm.145.46c-.99 1.985-1.2 3.803-.708 7.195.072-.022.145-.047.218-.073-.49-3.24-.297-5.053.612-7.016a3.48 3.48 0 0 0-.122-.107zm1.653-2.376c-.473.247-.658.178-.695.81.467-.118.533-.33.695-.81z" fill="#e8a30e" stroke="#000" stroke-width=".044"/> - <path d="M263.12 284.986c.14.31.421.545-.008 1.093-.281-.488-.216-.505.009-1.093z" fill="#e8a30e" stroke="#000" stroke-width=".044"/> - <path d="M262.824 285.597c.217.315.47.454.074.925-.147-.396-.269-.409-.074-.925z" fill="#e8a30e" stroke="#000" stroke-width=".044"/> - <path d="M262.62 285.907c.143.306.424.54 0 1.074-.283-.482-.218-.497 0-1.074z" fill="#e8a30e" stroke="#000" stroke-width=".044"/> - <path d="M262.314 286.353c.18.316.514.568.072 1.073-.315-.534-.061-.542-.072-1.073z" fill="#e8a30e" stroke="#000" stroke-width=".044"/> - <path d="M262.084 286.833c.168.303.506.566.083 1.055-.233-.437-.26-.503-.083-1.055zm1.916-1.225c-.228.081-.63-.078-.871.537.604-.105.58-.054.871-.537z" fill="#e8a30e" stroke="#000" stroke-width=".044"/> - <path d="M263.815 286.04c-.236.067-.667-.105-.89.471.63-.07.607-.022.89-.471z" fill="#e8a30e" stroke="#000" stroke-width=".044"/> - <path d="M263.607 286.416c-.247.075-.692-.102-.933.52.656-.086.63-.034.933-.52z" fill="#e8a30e" stroke="#000" stroke-width=".044"/> - <path d="M263.376 286.953c-.232.002-.656-.317-.942.46.449.038.506-.208.942-.46z" fill="#e8a30e" stroke="#000" stroke-width=".044"/> - <path d="M262.976 287.346c-.328.016-.48-.064-.758.542.514-.128.49-.077.758-.542zm-3.174-.745c-.044.01-.09.024-.136.037.327 2.514.536 5.052.496 8.136.042.002.083.004.125.004.108-3.147-.112-5.67-.485-8.178zm-.687-2.72c.355.41.552.416.368 1.02-.394-.288-.382-.511-.368-1.02z" fill="#e8a30e" stroke="#000" stroke-width=".044"/> - <path d="M259.908 284.18c-.237.237-.58.35-.367 1.025.429-.35.375-.39.367-1.025z" fill="#e8a30e" stroke="#000" stroke-width=".044"/> - <path d="M259.975 284.863c-.312.21-.596.245-.388.835.275-.313.39-.28.388-.835z" fill="#e8a30e" stroke="#000" stroke-width=".044"/> - <path d="M260.058 285.229c-.237.232-.58.342-.37 1.003.432-.342.376-.382.37-1.003z" fill="#e8a30e" stroke="#000" stroke-width=".044"/> - <path d="M260.19 285.762c-.276.226-.674.335-.435.974.477-.378.243-.482.435-.974z" fill="#e8a30e" stroke="#000" stroke-width=".044"/> - <path d="M260.239 286.297c-.26.218-.665.335-.44.953.368-.32.415-.37.44-.953zm-1.365-1.871c.185.163.615.169.628.833-.528-.33-.523-.271-.628-.833z" fill="#e8a30e" stroke="#000" stroke-width=".044"/> - <path d="M258.898 284.9c.198.152.658.155.668.777-.564-.304-.557-.25-.668-.778z" fill="#e8a30e" stroke="#000" stroke-width=".044"/> - <path d="M258.963 285.329c.204.165.68.169.692.841-.582-.33-.577-.273-.692-.841z" fill="#e8a30e" stroke="#000" stroke-width=".044"/> - <path d="M258.994 285.918c.216.09.722-.046.72.787-.432-.135-.4-.387-.72-.787z" fill="#e8a30e" stroke="#000" stroke-width=".044"/> - <path d="M259.23 286.437c.302.139.47.122.522.793-.435-.313-.43-.259-.521-.793zm-.267.515a4.03 4.03 0 0 0-.135.084c.705 2.168.965 4.174.903 7.693.054.01.11.017.163.023.1-3.56-.17-5.629-.93-7.8zm-1.292-2.597c.434.326.626.29.576.922-.445-.2-.481-.42-.576-.922z" fill="#e8a30e" stroke="#000" stroke-width=".044"/> - <path d="M258.508 284.48c-.18.282-.49.465-.14 1.082.344-.434.282-.461.14-1.082z" fill="#e8a30e" stroke="#000" stroke-width=".044"/> - <path d="M258.717 285.135c-.258.273-.527.367-.2.902.2-.365.322-.358.2-.902z" fill="#e8a30e" stroke="#000" stroke-width=".044"/> - <path d="M258.875 285.477c-.18.278-.491.459-.146 1.061.346-.427.284-.453.146-1.061z" fill="#e8a30e" stroke="#000" stroke-width=".044"/> - <path d="M259.117 285.97c-.22.281-.585.473-.217 1.048.383-.472.135-.523.217-1.047z" fill="#e8a30e" stroke="#000" stroke-width=".044"/> - <path d="M259.278 286.486c-.205.27-.576.47-.226 1.028.29-.391.326-.45.226-1.028zm-1.724-1.545c.215.12.634.034.788.683-.584-.21-.567-.155-.788-.683z" fill="#e8a30e" stroke="#000" stroke-width=".044"/> - <path d="M257.678 285.4c.224.107.673.012.814.621-.612-.18-.596-.128-.814-.621z" fill="#e8a30e" stroke="#000" stroke-width=".044"/> - <path d="M257.83 285.808c.235.118.7.02.852.678-.636-.2-.619-.145-.851-.678z" fill="#e8a30e" stroke="#000" stroke-width=".044"/> - <path d="M257.986 286.378c.23.043.693-.198.868.62-.449-.04-.47-.294-.868-.62z" fill="#e8a30e" stroke="#000" stroke-width=".044"/> - <path d="M258.327 286.837c.321.073.483.02.675.668-.49-.216-.473-.162-.675-.668zm-.068.624l-.11.095c.897 2.013 1.042 3.738.75 6.945l.041.023.14.049c.333-3.254.17-5.014-.82-7.112zm-1.715-2.621c.47.269.657.207.688.843-.465-.14-.53-.356-.688-.843z" fill="#e8a30e" stroke="#000" stroke-width=".044"/> - <path d="M257.388 284.856c-.142.304-.425.526 0 1.094.284-.476.22-.495 0-1.094z" fill="#e8a30e" stroke="#000" stroke-width=".044"/> - <path d="M257.68 285.48c-.22.305-.475.434-.082.923.152-.39.272-.397.082-.923z" fill="#e8a30e" stroke="#000" stroke-width=".044"/> - <path d="M257.88 285.8c-.144.3-.427.52-.007 1.074.287-.47.222-.488.007-1.074z" fill="#e8a30e" stroke="#000" stroke-width=".044"/> - <path d="M258.184 286.26c-.183.307-.518.545-.08 1.07.319-.52.065-.54.08-1.07z" fill="#e8a30e" stroke="#000" stroke-width=".044"/> - <path d="M258.41 286.75c-.17.295-.51.542-.091 1.052.236-.427.263-.491.09-1.052zm-1.907-1.312c.228.092.632-.048.867.577-.604-.133-.578-.08-.867-.577z" fill="#e8a30e" stroke="#000" stroke-width=".044"/> - <path d="M256.685 285.878c.237.078.668-.075.886.513-.63-.1-.605-.05-.886-.513z" fill="#e8a30e" stroke="#000" stroke-width=".044"/> - <path d="M256.89 286.263c.246.088.692-.07.93.564-.657-.116-.63-.063-.93-.564z" fill="#e8a30e" stroke="#000" stroke-width=".044"/> - <path d="M257.117 286.811c.233.012.66-.287.938.503-.448.018-.504-.23-.938-.503z" fill="#e8a30e" stroke="#000" stroke-width=".044"/> - <path d="M257.513 287.222c.329.032.481-.041.756.577-.514-.15-.49-.1-.756-.577zm2.324-3.383c.333.43.529.445.311 1.037-.377-.309-.352-.531-.31-1.037z" fill="#e8a30e" stroke="#000" stroke-width=".044"/> - <path d="M260.613 284.183c-.249.222-.599.314-.423.999.449-.324.396-.367.423-1z" fill="#e8a30e" stroke="#000" stroke-width=".044"/> - <path d="M260.643 284.866c-.323.193-.61.212-.434.811.29-.297.405-.256.434-.81z" fill="#e8a30e" stroke="#000" stroke-width=".044"/> - <path d="M260.704 285.236c-.25.218-.598.309-.423.98.448-.317.396-.36.423-.98z" fill="#e8a30e" stroke="#000" stroke-width=".044"/> - <path d="M260.808 285.775c-.29.21-.694.296-.49.946.498-.35.27-.467.49-.946z" fill="#e8a30e" stroke="#000" stroke-width=".044"/> - <path d="M260.826 286.312c-.271.202-.683.297-.493.924.385-.298.437-.345.493-.924zm-1.26-1.943c.177.173.605.201.582.866-.51-.358-.507-.3-.582-.866z" fill="#e8a30e" stroke="#000" stroke-width=".044"/> - <path d="M259.564 284.842c.19.163.649.192.625.813-.546-.336-.543-.281-.625-.813z" fill="#e8a30e" stroke="#000" stroke-width=".044"/> - <path d="M259.605 285.274c.195.176.67.206.645.878-.564-.363-.563-.304-.645-.878z" fill="#e8a30e" stroke="#000" stroke-width=".044"/> - <path d="M259.602 285.863c.212.102.725-.005.677.826-.424-.16-.378-.408-.677-.826z" fill="#e8a30e" stroke="#000" stroke-width=".044"/> - <path d="M259.81 286.394c.294.157.464.149.477.82-.417-.337-.414-.282-.477-.82zm-.4.335c-.05.02-.098.042-.148.065.624 2.552.77 4.908.716 7.968a.934.934 0 0 1 .053.004l.071-.013c.09-2.73 0-5.399-.692-8.024zm-1.066-2.549c.412.354.607.33.516.957-.432-.227-.452-.45-.516-.957z" fill="#e8a30e" stroke="#000" stroke-width=".044"/> - <path d="M259.171 284.359c-.197.27-.519.433-.21 1.07.372-.41.313-.442.21-1.07z" fill="#e8a30e" stroke="#000" stroke-width=".044"/> - <path d="M259.34 285.026c-.275.256-.551.332-.258.886.223-.352.343-.336.258-.886z" fill="#e8a30e" stroke="#000" stroke-width=".044"/> - <path d="M259.475 285.377c-.198.265-.52.425-.213 1.049.373-.404.312-.434.213-1.049z" fill="#e8a30e" stroke="#000" stroke-width=".044"/> - <path d="M259.686 285.885c-.24.266-.615.433-.285 1.03.415-.446.169-.515.285-1.03z" fill="#e8a30e" stroke="#000" stroke-width=".044"/> - <path d="M259.814 286.408c-.224.255-.606.432-.291 1.01.314-.371.354-.428.291-1.01zm-1.625-1.65c.207.134.63.074.743.73-.569-.246-.555-.189-.743-.73z" fill="#e8a30e" stroke="#000" stroke-width=".044"/> - <path d="M258.284 285.222c.217.122.671.056.774.673-.602-.219-.588-.166-.774-.673z" fill="#e8a30e" stroke="#000" stroke-width=".044"/> - <path d="M258.412 285.639c.226.134.694.066.807.73-.625-.24-.61-.183-.807-.73z" fill="#e8a30e" stroke="#000" stroke-width=".044"/> - <path d="M258.53 286.219c.226.057.705-.154.828.672-.446-.069-.453-.323-.829-.672z" fill="#e8a30e" stroke="#000" stroke-width=".044"/> - <path d="M258.84 286.697c.318.093.483.052.633.71-.476-.247-.463-.194-.633-.71zm-.82.978a2.787 2.787 0 0 0-.057.053c.74 1.483.947 2.698.804 3.935v.002c-.027.81-.15 1.681-.357 2.638l.157.071.03.009c.582-2.738.527-4.761-.577-6.708z" fill="#e8a30e" stroke="#000" stroke-width=".044"/> - <path d="M258.648 287.158c-.046.032-.093.066-.139.101.846 2.262.962 4.347.84 7.388l.113.03c.016.004.032.008.048.01.161-3.094.057-5.257-.862-7.53zm-1.53-2.563c.46.289.648.236.652.87-.46-.16-.513-.377-.651-.87z" fill="#e8a30e" stroke="#000" stroke-width=".044"/> - <path d="M257.96 284.648c-.153.297-.447.508-.045 1.093.305-.463.24-.485.046-1.093z" fill="#e8a30e" stroke="#000" stroke-width=".044"/> - <path d="M258.227 285.285c-.234.294-.493.41-.123.916.169-.381.289-.384.123-.916z" fill="#e8a30e" stroke="#000" stroke-width=".044"/> - <path d="M258.412 285.611c-.157.293-.45.501-.054 1.073.308-.456.244-.478.054-1.073z" fill="#e8a30e" stroke="#000" stroke-width=".044"/> - <path d="M258.696 286.085c-.196.298-.542.52-.127 1.064.341-.504.089-.536.127-1.064z" fill="#e8a30e" stroke="#000" stroke-width=".044"/> - <path d="M258.9 286.584c-.183.286-.533.519-.137 1.046.256-.417.285-.479.137-1.046zm-1.849-1.393c.225.102.634-.021.842.613-.597-.16-.576-.105-.842-.613z" fill="#e8a30e" stroke="#000" stroke-width=".044"/> - <path d="M257.215 285.638c.232.087.67-.046.863.55-.625-.127-.604-.077-.863-.55z" fill="#e8a30e" stroke="#000" stroke-width=".044"/> - <path d="M257.403 286.031c.241.099.695-.04.905.604-.651-.146-.628-.091-.905-.604z" fill="#e8a30e" stroke="#000" stroke-width=".044"/> - <path d="M257.605 286.589c.233.022.672-.259.916.542-.45-.002-.493-.253-.916-.542z" fill="#e8a30e" stroke="#000" stroke-width=".044"/> - <path d="M257.984 287.016c.327.046.482-.02.73.608-.507-.173-.486-.121-.73-.608zm-2.029-1.75c.502.206.676.122.79.749-.479-.08-.57-.285-.79-.749z" fill="#e8a30e" stroke="#000" stroke-width=".044"/> - <path d="M256.792 285.173c-.102.321-.353.579.142 1.088.22-.51.152-.521-.142-1.088z" fill="#e8a30e" stroke="#000" stroke-width=".044"/> - <path d="M257.162 285.756c-.18.331-.413.492.038.927.098-.406.217-.43-.038-.927z" fill="#e8a30e" stroke="#000" stroke-width=".044"/> - <path d="M257.4 286.048c-.103.316-.354.572.132 1.068.223-.504.157-.514-.132-1.068z" fill="#e8a30e" stroke="#000" stroke-width=".044"/> - <path d="M257.76 286.465c-.14.33-.441.61.059 1.074.248-.558-.004-.545-.058-1.074z" fill="#e8a30e" stroke="#000" stroke-width=".044"/> - <path d="M258.047 286.924c-.13.315-.434.605.046 1.056.178-.454.197-.521-.046-1.056zm-2.055-1.058c.238.062.619-.13.932.461-.615-.054-.582-.004-.932-.461z" fill="#e8a30e" stroke="#000" stroke-width=".044"/> - <path d="M256.23 286.28c.243.047.65-.161.941.394-.635-.017-.605.03-.941-.394z" fill="#e8a30e" stroke="#000" stroke-width=".044"/> - <path d="M256.481 286.637c.255.055.677-.16.993.44-.665-.031-.632.018-.993-.44z" fill="#e8a30e" stroke="#000" stroke-width=".044"/> - <path d="M256.777 287.152c.231-.018.615-.37.993.378-.442.076-.528-.164-.993-.378z" fill="#e8a30e" stroke="#000" stroke-width=".044"/> - <path d="M257.221 287.51c.329-.012.47-.105.822.475-.527-.083-.497-.036-.822-.476zm4.04-.795c-.72 2.613-.821 5.315-.75 8.061.055-.002.11-.005.166-.01-.03-3.09.091-5.441.733-7.985-.05-.023-.1-.046-.15-.066zm1.065-2.445c-.415.336-.608.303-.523.934.434-.207.457-.43.523-.934z" fill="#e8a30e" stroke="#000" stroke-width=".044"/> - <path d="M261.498 284.412c.196.279.516.455.201 1.079-.369-.427-.308-.456-.201-1.08z" fill="#e8a30e" stroke="#000" stroke-width=".044"/> - <path d="M261.325 285.071c.274.268.549.356.251.897-.221-.36-.341-.351-.25-.897z" fill="#e8a30e" stroke="#000" stroke-width=".044"/> - <path d="M261.187 285.415c.196.274.518.45.206 1.059-.37-.421-.31-.448-.206-1.059z" fill="#e8a30e" stroke="#000" stroke-width=".044"/> - <path d="M260.972 285.914c.237.276.613.46.277 1.043-.41-.465-.164-.522-.277-1.043z" fill="#e8a30e" stroke="#000" stroke-width=".044"/> - <path d="M260.841 286.431c.22.266.603.46.284 1.024-.312-.386-.351-.445-.284-1.024zm1.637-1.577c-.208.125-.631.046-.749.698.572-.221.557-.165.749-.698z" fill="#e8a30e" stroke="#000" stroke-width=".044"/> - <path d="M262.379 285.316c-.218.111-.672.025-.778.636.602-.192.587-.139.778-.636z" fill="#e8a30e" stroke="#000" stroke-width=".044"/> - <path d="M262.25 285.727c-.228.121-.697.032-.814.693.625-.212.61-.157.813-.693z" fill="#e8a30e" stroke="#000" stroke-width=".044"/> - <path d="M262.126 286.3c-.227.047-.704-.186-.832.635.446-.05.454-.302.832-.635z" fill="#e8a30e" stroke="#000" stroke-width=".044"/> - <path d="M261.812 286.764c-.318.08-.483.03-.638.68.478-.224.465-.171.638-.68zm.2.382c-.99 2.24-1.122 4.407-.891 7.557.074-.015.149-.032.223-.05-.255-3.187-.128-5.226.79-7.415a4.408 4.408 0 0 0-.121-.093zm1.537-2.406c-.462.269-.648.207-.658.842.46-.14.516-.355.658-.842z" fill="#e8a30e" stroke="#000" stroke-width=".044"/> - <path d="M262.706 284.756c.153.304.445.527.04 1.094-.302-.476-.239-.496-.04-1.094z" fill="#e8a30e" stroke="#000" stroke-width=".044"/> - <path d="M262.437 285.38c.231.305.49.433.115.922-.165-.39-.287-.397-.115-.922z" fill="#e8a30e" stroke="#000" stroke-width=".044"/> - <path d="M262.248 285.7c.154.298.446.519.046 1.073-.304-.47-.24-.488-.046-1.074z" fill="#e8a30e" stroke="#000" stroke-width=".044"/> - <path d="M261.961 286.158c.194.308.538.546.12 1.07-.338-.52-.086-.54-.12-1.07z" fill="#e8a30e" stroke="#000" stroke-width=".044"/> - <path d="M261.753 286.65c.18.294.529.542.129 1.05-.252-.427-.281-.49-.129-1.05zm1.858-1.311c-.224.092-.632-.05-.846.575.599-.132.576-.079.846-.575z" fill="#e8a30e" stroke="#000" stroke-width=".044"/> - <path d="M263.445 285.78c-.232.076-.669-.078-.867.51.627-.099.604-.05.867-.51z" fill="#e8a30e" stroke="#000" stroke-width=".044"/> - <path d="M263.255 286.164c-.244.086-.695-.07-.91.562.653-.115.629-.063.91-.562z" fill="#e8a30e" stroke="#000" stroke-width=".044"/> - <path d="M263.048 286.712c-.233.012-.67-.289-.92.501.45.018.496-.23.92-.501z" fill="#e8a30e" stroke="#000" stroke-width=".044"/> - <path d="M262.667 287.123c-.327.03-.484-.043-.734.575.507-.15.485-.1.734-.575zm.016.601c-1.157 2.03-1.058 4.188-.581 6.67.06-.025.118-.052.178-.079-.204-1.073-.335-2.057-.33-2.99v-.004c-.06-1.084.157-2.182.847-3.482a11.75 11.75 0 0 0-.114-.114zm2.024-2.26c-.503.184-.677.092-.794.713.478-.057.571-.26.794-.712z" fill="#e8a30e" stroke="#000" stroke-width=".044"/> - <path d="M263.872 285.334c.099.325.347.593-.151 1.08-.215-.52-.149-.528.151-1.08z" fill="#e8a30e" stroke="#000" stroke-width=".044"/> - <path d="M263.498 285.9c.175.338.41.51-.046.924-.096-.41-.214-.439.046-.924z" fill="#e8a30e" stroke="#000" stroke-width=".044"/> - <path d="M263.256 286.18c.101.321.351.587-.14 1.063-.22-.514-.152-.522.14-1.063z" fill="#e8a30e" stroke="#000" stroke-width=".044"/> - <path d="M262.894 286.581c.138.336.436.63-.068 1.07-.243-.567.01-.543.068-1.07z" fill="#e8a30e" stroke="#000" stroke-width=".044"/> - <path d="M262.603 287.027c.127.32.43.625-.054 1.054-.175-.462-.193-.53.054-1.054zm2.064-.964c-.238.05-.618-.158-.937.418.615-.026.584.022.937-.418z" fill="#e8a30e" stroke="#000" stroke-width=".044"/> - <path d="M264.426 286.465c-.243.036-.649-.19-.946.353.637.01.606.056.946-.353z" fill="#e8a30e" stroke="#000" stroke-width=".044"/> - <path d="M264.17 286.811c-.255.043-.674-.19-.995.395.665-.001.632.047.996-.395z" fill="#e8a30e" stroke="#000" stroke-width=".044"/> - <path d="M263.872 287.312c-.231-.028-.612-.398-.996.334.44.096.53-.141.996-.334z" fill="#e8a30e" stroke="#000" stroke-width=".044"/> - <path d="M263.423 287.65c-.328-.027-.468-.126-.824.438.529-.06.499-.014.824-.438zm-3.72 2.919l1.215.027c.735.016 1.326.184 1.325.377 0 .192-.592.333-1.327.317l-1.215-.028c-.735-.016-1.326-.184-1.324-.377 0-.191.592-.334 1.327-.316z" fill="#e8a30e" stroke="#000" stroke-width=".044"/> - <path d="M258.862 290.549l-.364.611a.333.333 0 0 0 .208.08l.22.004.407-.684-.471-.011zm.946.022l-.407.685.47.01.408-.685-.471-.01zm.947.02l-.408.686.47.01.408-.684-.47-.011zm.946.023l-.408.684.471.011.358-.602a.338.338 0 0 0-.219-.09l-.202-.003z" fill="#e8a30e" stroke="#000" stroke-width=".044"/> - <path d="M252.303 286.729c.009-.002.278 1.902.493 2.829.027.113.161.175.2.286.04.119.011.25.02.374 0 .014.004.028.003.042-.01.172-.138.332-.096.502.025.097.142.144.185.234.253.525.261 1.16.401 1.697.06.227-.042-.043.39.593.043.064.21.067.21.067l.166.006.168.167-.215.234-.715.093-.341-.212s.086-.19.018-.28c-.049-.065-.2-.017-.214-.097-.026-.148-.074-.55-.08-.55-.012 0-.009-.026-.016-.037 0 0-.578-.63-.791-1.002-.11-.192-.124-.433-.244-.619-.076-.119-.23-.174-.293-.301-.529-1.056-1.14-3.102-1.14-3.09m-6.809-1.193l1.903.447-.515 2.784c-.327.884-.295.915-.188 1.162.22.476.39 1.191 1.161 2.315.27.284.556.31.66.426.051.124.279.306.47.379l.598-.016c.098-.145.1-.098.125-.206-.044-.13-.328-.077-.528-.251-.107-.337-.552-.847-.616-1.202-.246-.774-.178-.799-.124-1.592.025-.408.35-1.316.47-1.809.277-.53.552-1.447.506-2.104l-.823-1.814-.48-.735m-1.796-1.16c-3.036.98-1.741 3.775-.88 3.806m9.81-8.652l.447-1.017.03-.372-.043-.077-.806.981-.01.064" fill="#e7e7e7" stroke="#000" stroke-width=".131"/> - <path d="M255.126 279.888c.194.073.44.144.483.029.053-.143.077-.244-.072-.355-.072-.062.037-.162-.047-.343-.533-.373-.899-.382-1.03-.68l-.02-.205c-.028-.26-.794-.368-.98-.495 0 0-.323-.16-.494-.198-.073-.015-.222-.009-.222-.009-.777-.007-1.134.81-1.263 1.308 0 0-.153 2.267-.531 3.293a.755.755 0 0 1-.155.25c-.064.068-.132.17-.226.164-2.154-.148-3.62-.245-4.495-.213s-1.874.71-1.936.784c0 0-.973.639-1.187 1.68-.07.348.015.759.151 1.168.969 2.75 1.923-.01 2.27.022l.427.04c.502.047 1.424 1.588 2.833 1.896 4.25.93 5.416-1.294 5.325-6.235l.051-.07-.013-.17.216-.393-.04-.546-.077-.26.008-.1 1.198-.155.206-.096" fill="#e7e7e7" stroke="#000" stroke-width=".131"/> - <path d="M253.063 278.487l.513-1.165.033-.425-.05-.089-.92 1.124-.012.073m-9.525 8.06c.272.816.762 1.627.728 1.927-.053.451-.305.659-.324.701-.018.04-.112.097-.142.125-.13.122-.217.368-.276.544-.073.218-.114.412-.09.625.09.79.544 2.414.567 2.438 0 0 .258.152.331.302.075.152.05.3.041.467-.013.229-.142.74-.142.74s.01.099.039.128c.081.082.356.225.356.225l.575-.016s-.32-.324-.345-.397a.381.381 0 0 1-.018-.235c.041-.17.203-.37.256-.472.058-.109-.005-.393-.005-.393-.006-.104-.09-.152-.095-.196a8.802 8.802 0 0 1-.084-.928c-.013-.3.038-1.199.038-1.199s.136-.116.19-.188c.05-.066.119-.22.119-.22s.696-.4.995-.67c.354-.318.928-1.103.928-1.103s.165-.319.19-.498a.559.559 0 0 0-.015-.187 4.068 4.068 0 0 0-.354-.964 3.42 3.42 0 0 0-.554-.822c-.023-.024-.08-.058-.08-.058m6.335 1.986c-.57.378-1.921.689-1.943.962 0 0-.04 1.712-.235 2.395-.076.269-.204.348-.304.607-.103.27-.097.476-.187.745-.096.287-.269.545-.294 1.043l.014.414.415.246-.43.146-.672-.268-.055-.63.147-.654.007-.105-.166-.396-.108-1.422.114-1.06-.148-3.903m4.988-5.701c.27.217.626.358 1.438.094.155.1.32.224.667-.255m-.367-.56c.005-.006.157.104.213.104.044 0 .098-.089.063-.118-.04-.032-.112-.069-.146-.045-.05.035-.128.068-.13.059z" fill="#e7e7e7" stroke="#000" stroke-width=".131"/> - <path d="M253.63 278.843s.077.002.105.066c.096.216.33.253.516.025a.354.354 0 0 1 .088-.07c-.038-.002-.063.001-.093-.029-.206-.206-.42-.032-.491-.017-.047.01-.08.018-.125.025z" fill="#000"/> - <path d="M265.741 291.1l.001.006a2.037 2.037 0 0 0-.015.794 2.076 2.076 0 0 0-.015.8 2.076 2.076 0 0 0-.013.762 2.14 2.14 0 0 0-.011.722c.263.201 1.009.225 1.342.042.04-.229.04-.505-.002-.757a2.076 2.076 0 0 0-.003-.762c.05-.233.05-.511-.004-.8a2.038 2.038 0 0 0-.005-.794 2.391 2.391 0 0 0-.006-.827 2.234 2.234 0 0 0-.006-.796 2.362 2.362 0 0 0-.007-.827l.001-.007c.038-.245.04-.521-.006-.834a2.524 2.524 0 0 0-.007-.844c.041-.257.044-.53-.006-.834a2.329 2.329 0 0 0-.006-.835c.07-.26.042-.586-.008-.843v-.003c.043-.302.04-.575-.003-.832a2.486 2.486 0 0 0-.006-.834c.033-.276.03-.556-.006-.844.035-.275.03-.544-.01-.833a3.126 3.126 0 0 0-.008-.833c.038-.265.05-.547 0-.846.038-.272.034-.55-.01-.836.038-.258.04-.534-.01-.833.045-.3.036-.569-.01-.817.036-.277.034-.48.002-.756a2.12 2.12 0 0 0-.01-.328l-.841-.012c-.036.058-.046.174-.023.331-.042.12-.04.64.009.76-.049.249-.061.518-.02.818a2.67 2.67 0 0 0-.02.833 2.856 2.856 0 0 0-.021.835c-.053.3-.045.58-.01.846a3.11 3.11 0 0 0-.02.833 3.095 3.095 0 0 0-.02.833 3.46 3.46 0 0 0-.018.844 2.486 2.486 0 0 0-.017.834 2.636 2.636 0 0 0-.014.831c-.053.258-.085.585-.02.847-.056.319-.06.589-.016.834a2.599 2.599 0 0 0-.017.834c-.05.27-.06.546-.017.844-.05.315-.052.593-.016.841-.055.308-.06.583-.017.826a2.227 2.227 0 0 0-.017.797 2.396 2.396 0 0 0-.017.82z" fill="#e7e7e7" fill-rule="evenodd" stroke="#000" stroke-width=".131"/> - <path d="M265.732 291.89c.31.144 1.103.12 1.289.024m-1.296-.82c.296.125 1.004.119 1.29.023m-1.25-.858c.286.144.967.107 1.245.024m-1.229-.815c.317.144 1.008.104 1.223.021m-1.207-.837c.34.097.938.093 1.2.004m-1.184-.839c.35.084.899.087 1.179.004m-1.163-.85c.32.082.938.087 1.156.007m-1.14-.835c.278.089.865.081 1.134 0m-1.11-.837c.355.086.847.093 1.104.003m-1.088-.85c.361.085.874.075 1.082.005m-1.07-.838c.358.08.919.051 1.064.004m-1.043-.817c.333.06.895.029 1.037-.017m-1.02-.846c.328.088.872.047 1.014.002m-.992-.817c.312.08.803.047.986-.018m-.96-.832c.306.067.819.042.954-.002m-.942-.837c.306.063.803.036.935-.007m-.906-.825c.333.04.758.037.884-.004m-.864-.848c.276.058.736.053.858.014m-.84-.83c.301.047.717.044.837.005m-.87-.762c.226.023.78.038.873.009m-1.185 16.483c.315.144 1.119.119 1.308.023m-1.323.736c.32.144 1.134.119 1.326.023" fill="#e7e7e7" fill-rule="evenodd" stroke="#000" stroke-width=".131" stroke-linejoin="round"/> - <path d="M268.277 274.21c.509-.11 1.241-.126 2.252-.153a14.585 14.585 0 0 0-.92-.273c.591-.081 1.997-.063 2.358-.066-.244-.15-.85-.389-1.011-.421.773-.128 1.697-.006 2.347.098-.304-.17-.647-.39-1.082-.508.928-.063 1.296.011 2.158.127a2.791 2.791 0 0 0-.941-.516c1.031-.189 1.61-.229 2.62-.148-2.92-1.336-6.463-.64-8.596.83.214-.336.675-.845 1.125-1.229a2.692 2.692 0 0 0-.739.041c.312-.342.9-.8 1.298-.958-.29-.015-.536-.022-.797.03.391-.364.982-.748 1.483-1.003a3.318 3.318 0 0 0-.897.02c.396-.465 1.087-.942 1.698-1.232a4.182 4.182 0 0 0-.998.077c.508-.463 1.188-.95 2.082-1.4-3.543.396-5.498 2.95-5.665 5.113-.944-2.035-3.515-3.982-7.055-3.834 1.057.323 1.896.715 2.55 1.112a4.638 4.638 0 0 0-1.073.081c.718.202 1.568.583 2.103 1a3.583 3.583 0 0 0-.952.123c.594.183 1.314.485 1.818.798-.288-.012-.546.034-.849.097.46.099 1.196.477 1.612.78a2.913 2.913 0 0 0-.79.078c1.066.415 1.134.602 1.369.743-2.21-.472-5.403.257-7.858 3.11.356-.3 1.877-.867 2.36-.997-.252.302-.34.46-.538.838.552-.446 1.385-.815 2.18-1.131-.167.253-.349.583-.432.794.579-.359.755-.41 1.94-.974-.085.145-.321.46-.434.758.362-.206 1.223-.52 1.806-.73.04-.015-.351.32-.528.721.133-.05.943-.343.973-.351-1.868 1.304-3.26 3.493-2.979 6.155.108-.416.602-1.611.881-2.089-.03.317.042.843.1 1.078a9.068 9.068 0 0 1 1.028-2.118c-.037.425-.027.894.031 1.087.252-.588.45-1.093 1.068-2.182-.04.163-.048.622-.01 1.027a14.19 14.19 0 0 1 1.142-1.984c-.022.24-.066.647-.048.816.05-.086.196-.327.366-.596.266-.419.59-.907.695-.985.08.082.158.182.23.298.29.466.499 1.179.564 1.917.155-.362.222-.732.241-.927.332.742.705 1.901.732 2.54.112-.339.17-.55.21-1.081.345.554.645 1.92.673 2.513.135-.232.246-.522.327-.955.338.763.471 1.713.553 2.369.868-3.158-.377-5.199-1.895-6.756.381.207.864.632 1.336 1.144a5.202 5.202 0 0 0-.28-.932c.56.399 1.387 1.22 1.618 1.458-.04-.312-.085-.478-.25-.876.662.459 1.254 1.245 1.589 1.678-.027-.2-.08-.575-.218-1.005.604.451 1.205 1.358 1.48 1.87-.008-.35-.106-.72-.188-1.1.822.695 1.126 1.43 1.386 1.875.007-2.851-3.293-5.416-6.359-5.683z" fill="#007934" fill-rule="evenodd" stroke="#e7e7e7" stroke-width=".131"/> - <path d="M267.007 274.24c3.343-.478 7.637 2.401 7.63 5.654-.26-.445-.565-1.18-1.387-1.876.082.381.18.751.187 1.1-.274-.51-.875-1.418-1.48-1.87.138.431.192.806.219 1.006-.336-.433-.927-1.22-1.59-1.678.166.399.21.564.25.876-.23-.237-1.057-1.06-1.618-1.458.107.24.238.694.281.932-.472-.512-.955-.937-1.337-1.144m-1.904-1.582c-2.001-1.29-6.248-1.055-9.33 2.527.355-.3 1.876-.866 2.359-.997-.252.302-.34.46-.538.838.552-.446 1.385-.814 2.18-1.131a5.1 5.1 0 0 0-.432.794c.578-.359.755-.41 1.94-.974-.086.145-.322.46-.434.758.362-.206 1.222-.52 1.806-.73.04-.015-.351.32-.528.721.133-.05.943-.343.973-.351" fill="none" stroke="#e7e7e7" stroke-width=".131" stroke-linecap="round" stroke-linejoin="round"/> - <path d="M266.392 273.692c-.425-2.353-3.243-5.06-7.395-4.887 1.057.323 1.896.715 2.55 1.112a4.625 4.625 0 0 0-1.073.081c.718.202 1.567.583 2.103 1a3.584 3.584 0 0 0-.952.123c.594.183 1.313.485 1.818.798-.288-.012-.546.034-.849.097.46.1 1.196.477 1.612.78a2.92 2.92 0 0 0-.79.078c1.065.415 1.134.602 1.369.744m1.578 1.002c-2.782.85-5.47 3.586-5.088 7.19.108-.416.602-1.611.881-2.089-.03.317.041.843.1 1.077a9.08 9.08 0 0 1 1.028-2.117c-.037.425-.027.894.031 1.087.252-.588.45-1.093 1.068-2.182-.04.163-.048.621-.01 1.027.204-.448.678-1.33 1.142-1.984-.023.24-.066.647-.048.816.126-.22.887-1.453 1.06-1.581m-1.73.174c-.194.548-.352 1.14-.414 1.548m-.603-.853c-.189.49-.422 1.38-.497 1.948m-.525-.974a9.507 9.507 0 0 0-.602 2.014" fill="none" stroke="#e7e7e7" stroke-width=".131" stroke-linecap="round" stroke-linejoin="round"/> - <path class="fil1 str2" fill="none" stroke="#e7e7e7" stroke-width=".131" stroke-linecap="round" stroke-linejoin="round" d="M266.527 275.864l.011-.643"/> - <path d="M269.408 278.666c.085.508.127.775.096 1.503m-1.154-3.258c.11.566.156.942.154 1.7m-1.139-2.838c.122.35.197.8.198 1.38m5.064-.422c.371.476.551 1.012.623 1.287m-2.127-2.332c.364.428.718 1.189.834 1.563m-2.097-1.986c.313.407.526.839.727 1.313m-11.3-.846c.343-.366.876-.879 1.845-1.275m-.203.982c.414-.524.626-.853 1.711-1.326m-.203 1.146c.342-.437.89-.931 1.722-1.227m-.35 1.254c.542-.494 1.042-.758 1.708-1.04m-3.97-4.327c.716.079 1.704.327 2.308.726m-1.278.355c.651.011 1.54.206 1.998.454m-1.132.467c.645.012 1.452.277 2.112.656m-1.349.222c.863.076 1.455.39 1.84.625m.897.153c2.037-1.731 5.944-2.676 9.115-1.225-1.01-.081-1.589-.041-2.62.148.423.12.823.41.94.516-.86-.116-1.229-.19-2.157-.127.435.118.778.338 1.081.508-.65-.104-1.573-.226-2.346-.098.16.032.766.271 1.01.42-.36.004-1.766-.014-2.356.067.405.108.675.192.919.273-1.011.027-1.743.042-2.252.154m5.16-1.713c-.627-.254-1.724-.37-2.287-.333m1.07.722c-1.11-.368-2.164-.348-2.694-.268m1.43.678c-.977-.275-2.122-.282-2.652-.202m1.306.69c-.94-.227-1.613-.196-2.143-.115m.891 1.141c.385.326.66.708.86 1.183" fill="none" stroke="#e7e7e7" stroke-width=".131" stroke-linecap="round" stroke-linejoin="round"/> - <path d="M266.052 272.639c.167-2.163 2.122-4.717 5.664-5.114-.893.452-1.573.938-2.081 1.401.355-.07.6-.083.998-.077-.61.29-1.302.767-1.698 1.232.295-.053.6-.048.897-.02-.501.255-1.092.64-1.483 1.003.261-.052.507-.046.797-.03-.398.158-.986.615-1.298.958a2.69 2.69 0 0 1 .738-.04c-.45.383-.91.892-1.124 1.227m2.173-4.253c-.518.143-1.174.415-1.65.758m.95.397a4.825 4.825 0 0 0-1.493.549m.907.434c-.508.09-1.086.374-1.568.74m1.067.188a3.43 3.43 0 0 0-1.542.845m-.482 2.555a6.423 6.423 0 0 0-.309 1.237m1.248-2.144c1.972 1.723 4.425 3.942 3.295 8.053-.082-.656-.215-1.606-.553-2.37-.081.434-.193.724-.327.956-.028-.593-.328-1.958-.674-2.513-.04.531-.098.742-.21 1.082-.026-.64-.4-1.8-.73-2.54-.02.194-.087.564-.242.926-.081-.92-.385-1.802-.795-2.215" fill="none" stroke="#e7e7e7" stroke-width=".131" stroke-linecap="round" stroke-linejoin="round"/> - <path d="M227.516 249.077l1.344.73.327-.601c.167-.308.217-.55.15-.726-.065-.178-.244-.346-.537-.505-.323-.176-.581-.241-.774-.197-.195.043-.355.18-.48.41-.162.298-.241.504-.237.616.005.11.074.2.207.273m1.754.952l1.727.938c.133.072.251.077.355.017.106-.062.23-.225.372-.488.136-.25.226-.461.27-.632.043-.174.037-.318-.018-.432a.761.761 0 0 0-.193-.27 2.01 2.01 0 0 0-.356-.233c-.806-.437-1.396-.309-1.77.386l-.387.714m-2.772-.824c.098-.18.222-.418.372-.712.15-.295.244-.477.282-.547.184-.338.38-.61.59-.818.209-.21.41-.346.605-.406.192-.061.368-.087.528-.078.16.01.312.053.455.13.2.11.352.294.457.555.106.259.152.523.138.794.307-.31.636-.518.987-.626a1.3 1.3 0 0 1 1.04.117c.38.207.621.563.723 1.069.099.504-.043 1.108-.425 1.811-.13.24-.271.492-.423.753-.15.259-.273.476-.368.651l-.332.666-.027-.005a12.05 12.05 0 0 0-1.488-.93l-1.882-1.021c-.59-.321-1.121-.569-1.59-.742l-.015-.028c.153-.247.278-.458.373-.633m9.473-11.55c-.765.64-.632 1.577.4 2.813.52.623 1.038.992 1.556 1.105.516.111.984-.008 1.404-.359.38-.317.541-.7.483-1.149-.06-.448-.34-.973-.841-1.574-.58-.694-1.105-1.104-1.58-1.232-.473-.131-.947 0-1.422.397m3.977-.197c.564.676.81 1.403.735 2.181-.074.774-.467 1.459-1.18 2.054-.667.557-1.39.818-2.167.784-.778-.033-1.429-.364-1.953-.992-.556-.667-.803-1.405-.74-2.214.062-.81.432-1.497 1.108-2.06.713-.596 1.451-.87 2.215-.82.765.044 1.426.4 1.982 1.067m8.538-2.78c.16.574.282.93.368 1.069.338-.094.703-.212 1.095-.354.395-.143.705-.263.929-.36l.337-.143.026.028c.014.093.053.256.117.486.022.08.06.196.115.35l-.01.029c-.139.02-.31.06-.513.116l-2.565.714-.688.219-.02-.021c-.051-.397-.179-.968-.383-1.712l-.575-2.063c-.19-.686-.38-1.24-.564-1.661l.013-.03c.257-.054.48-.108.67-.16l.693-.22.015.022c.048.386.177.956.388 1.711l.551 1.98m9.862-3.054c.073-.668.102-1.252.088-1.753l.02-.023c.275.047.512.081.71.103l.725.053.006.027c-.12.45-.219 1.027-.296 1.73l-.231 2.128c-.072.66-.1 1.244-.084 1.753l-.02.024a12.062 12.062 0 0 0-.71-.103l-.726-.053-.006-.027c.122-.462.22-1.04.292-1.73l.232-2.129m10.506 5.584c1.762-1.395 2.881-2.348 3.359-2.858.054.05.2.137.436.263.185.1.312.159.38.176-2.446 1.852-4.107 3.128-4.984 3.828l-.531-.285c.047-.486.122-1.218.225-2.198.102-.98.187-1.816.254-2.507a28.16 28.16 0 0 0 .12-1.478c.08.062.335.21.767.44.304.164.502.26.596.292-.257 1.188-.464 2.63-.622 4.327m9.031 4.102a13.01 13.01 0 0 0 1.226-1.256l.03-.005c.176.218.331.4.465.548l.508.52-.013.024c-.389.258-.845.625-1.367 1.1l-1.583 1.442c-.49.447-.898.866-1.223 1.259l-.03.005c-.176-.218-.331-.401-.465-.548l-.508-.52.013-.024c.397-.266.852-.634 1.364-1.104l1.583-1.441m5.318 10.672a46.226 46.226 0 0 0 1.413-1.51l-.023-.05-2.077.065c.095.23.218.508.37.836.078.166.183.385.317.66m-1.223-1.473c-.908.046-1.593.11-2.054.192a1.975 1.975 0 0 0-.143-.367 2.79 2.79 0 0 0-.23-.435 326.8 326.8 0 0 0 6.292-.08l.331.713c-2.145 2.251-3.542 3.784-4.19 4.598-.027-.098-.132-.343-.314-.735-.158-.339-.265-.55-.323-.633.399-.339.896-.81 1.493-1.41-.141-.324-.26-.59-.356-.796-.14-.3-.308-.649-.506-1.047" style="line-height:125%;-inkscape-font-specification:'Linux Biolinum Bold';text-align:center" font-size="100" font-weight="700" letter-spacing="60" font-family="Linux Biolinum" word-spacing="0" text-anchor="middle" fill="#e8a30e" stroke="#000" stroke-width=".131"/> - <path d="M261.251 299.316l-.819 2.356-2.493.05 1.987 1.507-.722 2.387 2.047-1.424 2.047 1.424-.722-2.387 1.987-1.507-2.493-.05zM270.996 295.165l-.818 2.355-2.494.051 1.987 1.507-.722 2.387 2.047-1.425 2.047 1.425-.722-2.387 1.987-1.507-2.493-.05zM286.048 268.54l-.819 2.356-2.493.051 1.987 1.507-.722 2.387 2.047-1.425 2.047 1.425-.722-2.387 1.987-1.507-2.493-.05zM278.902 287.535l.819 2.355 2.493.051-1.987 1.507.722 2.387-2.047-1.425-2.047 1.425.722-2.387-1.987-1.507 2.493-.05zM283.95 278.85l.82 2.356 2.493.05-1.987 1.507.722 2.387-2.047-1.424-2.047 1.424.722-2.387-1.987-1.506 2.493-.051zM250.749 299.316l.819 2.356 2.493.05-1.987 1.507.722 2.387-2.047-1.424-2.047 1.424.722-2.387-1.987-1.507 2.493-.05zM241.004 295.165l.818 2.355 2.494.051-1.988 1.507.723 2.387-2.047-1.425-2.047 1.425.722-2.387-1.987-1.507 2.493-.05zM225.953 268.54l.819 2.356 2.493.051-1.987 1.507.722 2.387-2.047-1.425-2.047 1.425.722-2.387-1.987-1.507 2.493-.05zM233.098 287.535l-.819 2.355-2.493.051 1.987 1.507-.722 2.387 2.047-1.425 2.047 1.425-.722-2.387 1.987-1.507-2.493-.05zM228.05 278.85l-.82 2.356-2.493.05 1.987 1.507-.722 2.387 2.047-1.424 2.047 1.424-.722-2.387 1.987-1.506-2.493-.051z" fill="#e8a30e" stroke="#000" stroke-width=".131" stroke-linecap="square" stroke-linejoin="round"/> - <path d="M257.15 264.632l-.004-.514h.071l-.882-.508h-.71l-.877.507h.07l.003.514 2.328.001" fill="#e7e7e7" stroke="#000" stroke-width=".046"/> - <path d="M257.15 264.632l-.004-.514h.071l-.882-.508-.067-.773h-.575l-.067.773-.878.507h.07l.003.514 2.328.001zm.27.676v.16l-2.84-.002-.002-.16 2.843.001" fill="#e7e7e7" stroke="#000" stroke-width=".046"/> - <path d="M257.42 265.308v.16l-2.84-.002-.002-.16 2.843.001zm-2.652-.01l-.002-.545h.115l-.006.55.007-.546-.166-.004v-.117l2.54.002v.116h-.156l.003.552-.006-.552h.117l.003.545" fill="#e7e7e7" stroke="#000" stroke-width=".046"/> - <path d="M254.768 265.298l-.002-.545h.115l-.006.551.007-.546-.166-.004v-.117l2.54.002v.115h-.156l.003.552-.006-.552h.117l.003.546" fill="#e7e7e7" stroke="#000" stroke-width=".046"/> - <path d="M255.314 265.164l-.002-.38h-.341l.002.38h.34" fill="#e7e7e7" stroke="#000" stroke-width=".046"/> - <path d="M255.064 264.863v.22h.157v-.22h-.157m1.917.302l-.002-.38h-.34l.002.38h.34" fill="#e7e7e7" stroke="#000" stroke-width=".046"/> - <path d="M256.73 264.865l.003.22h.156l-.001-.22h-.157m.248-.318l-.002-.38h-.34v.38h.342z" fill="#e7e7e7" stroke="#000" stroke-width=".046"/> - <path d="M256.728 264.247l.001.22h.156v-.22h-.157m-1.417.298l-.002-.379h-.34l.002.379h.34z" fill="#e7e7e7" stroke="#000" stroke-width=".046"/> - <path d="M255.061 264.245v.22h.157v-.22h-.157m.867.3l-.002-.378h-.34v.379h.341" fill="#e7e7e7" stroke="#000" stroke-width=".046"/> - <path d="M255.678 264.246l.001.22h.156v-.22h-.157m.726.3l-.002-.38h-.34l.001.38h.341" fill="#e7e7e7" stroke="#000" stroke-width=".046"/> - <path d="M256.154 264.246v.22h.157l-.001-.22h-.157" fill="#e7e7e7" stroke="#000" stroke-width=".046"/> - <path d="M256.488 264.43l.004.876-.987-.001-.004-.875h.987" fill="#e7e7e7" stroke="#000" stroke-width=".046"/> - <path d="M256.488 264.43l.004.876-.987-.001-.004-.875h.987zm-.992.25h.993m-.87.625l-.003-.619m.756.62l-.003-.619m.48-.63l-.556-.361-.624-.001-.551.36 1.731.002m-1.131-.441h.525m-.384-.166l.001.11h.241v-.11h-.242" fill="#e7e7e7" stroke="#000" stroke-width=".046"/> - <path d="M255.548 264.455h.072l-.021.034s.034.04 0 .085l.019.032h-.07l.02-.03s-.036-.053.001-.087l-.02-.034m.146 0h.071l-.02.034s.034.039 0 .085l.019.032h-.07l.019-.03s-.035-.053.002-.087l-.021-.034m.16 0h.071l-.021.034s.035.04 0 .085l.02.032h-.07l.019-.03s-.035-.053.001-.087l-.021-.034zm.18 0h.072l-.02.035s.034.039 0 .084l.019.033h-.07l.019-.03s-.035-.054.002-.087l-.022-.035zm.16 0h.072l-.021.035s.035.039 0 .084l.02.033h-.07l.018-.03s-.035-.053.003-.087l-.021-.035m.159 0h.072l-.022.035s.036.039.001.084l.018.033h-.069l.019-.03s-.035-.053.002-.087l-.021-.035" fill="#e7e7e7" stroke="#000" stroke-width=".046"/> - <path d="M255.832 262.432h.342v.4h-.342v-.4z" fill="#e7e7e7" fill-rule="evenodd" stroke="#000" stroke-width=".034"/> - <path d="M256.006 261.943l-.007.51" fill="none" stroke="#000" stroke-width=".079"/> - <path d="M255.816 262.134l.374.005" fill="none" stroke="#000" stroke-width=".1"/> - <path d="M252.95 224.325s-2.498 5.8-1.635 6.375c0 0 3.133-3.499 3.95-6.279.817-2.78 0-.192 0-.192l-.227-3.02-2.043 2.876" fill="#452c25"/> - <path d="M252.95 224.325s-2.498 5.8-1.635 6.375c0 0 3.132-3.499 3.95-6.279.817-2.78 0-.192 0-.192l-.227-3.02-2.043 2.876" fill="none" stroke="#000" stroke-width=".175"/> - <path d="M253.477 221.553s-3 6.388-2.314 6.86c0 0 2.493-2.872 3.143-5.154.65-2.282 0-.157 0-.157l.833-4.106" fill="#452c25"/> - <path d="M253.477 221.553s-3 6.388-2.314 6.86c0 0 2.493-2.872 3.143-5.154.65-2.282 0-.157 0-.157l.833-4.106" fill="none" stroke="#000" stroke-width=".142"/> - <path d="M256.569 220.13s-3.001 6.388-2.315 6.86c0 0 2.493-2.872 3.144-5.154.65-2.282 0-.157 0-.157l.833-4.106" fill="#452c25"/> - <path d="M256.569 220.13s-3.001 6.388-2.315 6.86c0 0 2.493-2.872 3.144-5.154.65-2.282 0-.157 0-.157l.833-4.106" fill="none" stroke="#000" stroke-width=".142"/> - <path d="M295.294 208.646l3.562 2.022s.87.72-1.039.296c-1.907-.424-5.976-1.828-13.661-6.774-3.475-2.237-4.572-2.174-4.572-2.174l4.844.132 10.866 6.498z" fill="#452c25"/> - <path d="M295.294 208.646l3.562 2.022s.87.72-1.039.296c-1.907-.424-5.976-1.828-13.661-6.774-3.475-2.237-4.572-2.174-4.572-2.174l4.844.132 10.866 6.498z" fill="none" stroke="#000" stroke-width=".128"/> - <path d="M296.471 207.767l3.563 2.022s.869.72-1.04.296c-1.907-.424-5.975-1.828-13.66-6.774-3.476-2.237-.68 1.845-.68 1.845l.589-2.684 11.228 5.295z" fill="#452c25"/> - <path d="M296.471 207.767l3.563 2.022s.869.72-1.04.296c-1.907-.424-5.975-1.828-13.66-6.774-3.476-2.237-.68 1.845-.68 1.845l.589-2.684 11.228 5.295z" fill="none" stroke="#000" stroke-width=".128"/> - <path d="M302.397 209.713s-4.254-.79-5.803-1.924c0 0 .272.49-1.808-.458 0 0 .802 1.824-5.055-2.166-5.857-3.99-3.81-1.985-3.81-1.985l1.64-.423s8.99 3.593 9.977 3.969c.986.375 4.86 2.987 4.86 2.987" fill="#452c25"/> - <path d="M302.397 209.713s-4.254-.79-5.803-1.924c0 0 .272.49-1.808-.458 0 0 .802 1.824-5.055-2.166-5.857-3.99-3.81-1.985-3.81-1.985l1.64-.423s8.99 3.593 9.977 3.969c.986.375 4.86 2.987 4.86 2.987z" fill="none" stroke="#000" stroke-width=".125"/> - <path d="M280.154 211.307l1.426 2.033s-.474 1.905-5.422-1.802c-4.948-3.708-4.687-3.401-4.687-3.401l2.733-.381 6 3.405" fill="#452c25"/> - <path d="M280.154 211.307l1.426 2.033s-.474 1.905-5.422-1.802c-4.948-3.708-4.687-3.401-4.687-3.401l2.733-.381 6 3.405" fill="none" stroke="#000" stroke-width=".142"/> - <path d="M273.728 212.326s2.298 3.006 1.786 3.38c-.511.374-3.225.213-5.163-2.729-1.937-2.942-.04-.15-.04-.15l.18-4.757 3.287 4.11" fill="#452c25"/> - <path d="M273.728 212.326s2.298 3.006 1.786 3.38c-.511.374-3.225.213-5.163-2.729-1.937-2.942-.04-.15-.04-.15l.18-4.757 3.287 4.11" fill="none" stroke="#000" stroke-width=".142"/> - <path d="M276.088 210.942s2.212 2.855 1.97 3.29c-.24.434-3.36.158-5.845-2.66-2.486-2.816-.37-3.716-.37-3.716l4.205 2.937" fill="#452c25"/> - <path d="M276.068 210.868s2.232 2.929 1.99 3.363c-.24.435-3.36.159-5.845-2.658-2.486-2.817-.37-3.717-.37-3.717l4.225 3.012z" fill="none" stroke="#000" stroke-width=".142"/> - <path d="M288.694 209.257s6.306 2.712 1.63 2.535c0 0-9.16-2.467-13.9-6.527l1.34-1.772 10.857 5.606" fill="#452c25"/> - <path d="M288.694 209.257s6.306 2.712 1.63 2.535c0 0-9.16-2.467-13.9-6.527l1.34-1.772 10.857 5.606" fill="none" stroke="#000" stroke-width=".142"/> - <path d="M292.003 208.475s3.413 2.07 3.667 2.857c.254.787-10.605-2.028-16.334-6.798l2.559-1.253 10.108 5.194z" fill="#452c25"/> - <path d="M292.003 208.475s3.413 2.07 3.667 2.857c.254.787-10.605-2.028-16.334-6.798l2.559-1.253 10.108 5.194z" fill="none" stroke="#000" stroke-width=".142"/> - <path d="M282.091 210.35s2.468 2.026 2.188 2.262c-.28.235-5.285-.514-9.214-3.538l.47-1.807 6.605 2.986" fill="#452c25"/> - <path d="M282.091 210.35s2.468 2.026 2.188 2.262c-.28.235-5.285-.514-9.214-3.538l.47-1.807 6.605 2.986" fill="none" stroke="#000" stroke-width=".142"/> - <path d="M286.312 210.178s2.435 1.68 1.93 1.856c-.505.177-2.414 1.678-11.477-3.63l-1.068-.587 1.439-2.26 9.181 4.474" fill="#452c25"/> - <path d="M286.315 210.105s2.432 1.753 1.927 1.93c-.505.176-2.414 1.677-11.477-3.631l-1.068-.587 1.439-2.26 9.179 4.548z" fill="none" stroke="#000" stroke-width=".142"/> - <path d="M277.012 205.206s2.945 2.638 2.57 3.018c-.377.379-3.883-.456-5.43-1.605-1.546-1.15-2.672-2.623-2.672-2.623l3.287-.708 2.245 1.918z" fill="#452c25"/> - <path d="M277.012 205.206s2.945 2.638 2.57 3.018c-.377.379-3.883-.456-5.43-1.605-1.546-1.15-2.672-2.623-2.672-2.623l3.287-.708 2.245 1.918z" fill="none" stroke="#000" stroke-width=".142"/> - <path d="M273.5 200.8l5.367 3.2s4.38 3.091 3.917 3.368c-.463.277-3.915-.802-6.362-2.137-2.447-1.334-5.285-4.208-5.285-4.208" fill="#452c25"/> - <path d="M273.5 200.8l5.367 3.2s4.38 3.091 3.917 3.368c-.463.277-3.915-.802-6.362-2.137-2.447-1.334-5.285-4.208-5.285-4.208" fill="none" stroke="#000" stroke-width=".142"/> - <path d="M270.113 215.928s1 2.558.402 2.78c-.597.223-2.077-.233-3.266-2.552-1.188-2.319 1.036-1.339 1.036-1.339l1.828 1.111z" fill="#452c25"/> - <path d="M270.113 215.928s1 2.558.402 2.78c-.597.223-2.077-.233-3.266-2.552-1.188-2.319.807-1.288.807-1.288l2.057 1.06z" fill="none" stroke="#000" stroke-width=".142"/> - <path d="M271.893 214.274s1.5 2.48 1.173 2.763c-.327.283-2.305 1.139-4.461-2.06-2.155-3.197 2.218-2.524 2.218-2.524l1.07 1.821z" fill="#452c25"/> - <path d="M271.893 214.274s1.5 2.48 1.173 2.763c-.327.283-2.305 1.139-4.461-2.06-2.155-3.197 2.218-2.524 2.218-2.524l1.07 1.821z" fill="none" stroke="#000" stroke-width=".142"/> - <path d="M267.409 203.084s5.118 9.884 4.692 10.409c-.426.526-2.447-.002-3.58-2.615-1.133-2.613-2.06-6.006-2.06-6.006l.948-1.788z" fill="#452c25"/> - <path d="M267.409 203.084s5.118 9.884 4.692 10.409c-.426.526-2.447-.002-3.58-2.615-1.133-2.613-2.06-6.005-2.06-6.005l.948-1.789z" fill="none" stroke="#000" stroke-width=".142"/> - <path d="M273.372 205.6s4.27 3.63 3.394 4.087c-.877.458-2.576-.204-5.074-2.676-2.498-2.472 1.64-1.561 1.64-1.561" fill="#452c25"/> - <path d="M273.352 205.525s4.29 3.705 3.414 4.162c-.877.458-2.576-.204-5.074-2.676-2.498-2.472 1.66-1.486 1.66-1.486z" fill="none" stroke="#000" stroke-width=".142"/> - <path d="M271.302 205.66s3.052 5.606 2.671 6.133c-.38.528-2.67-1.393-3.8-2.821-1.129-1.428-1.983-3.505-1.983-3.505" fill="#452c25"/> - <path d="M271.302 205.66s3.052 5.606 2.671 6.133c-.38.528-2.67-1.393-3.8-2.821-1.129-1.428-1.983-3.505-1.983-3.505" fill="none" stroke="#000" stroke-width=".142"/> - <path d="M248.426 217.172s-.18 3.304 0 3.551c.181.246 1.857.246 1.947-2.22.091-2.466-.362-2.564-.362-2.564l-1.63 1.134" fill="#452c25"/> - <path d="M248.426 217.172s-.18 3.304 0 3.551c.181.246 1.857.246 1.947-2.22.091-2.466-.362-2.564-.362-2.564l-1.63 1.134" fill="none" stroke="#000" stroke-width=".142"/> - <path d="M249.429 213.19s-1.178 3.699-.045 4.439c1.132.74 2.038-3.65 2.083-4.636.045-.987-2.038.197-2.038.197" fill="#452c25"/> - <path d="M249.429 213.19s-1.178 3.699-.045 4.439c1.132.74 2.038-3.65 2.083-4.636.045-.987-2.038.197-2.038.197z" fill="none" stroke="#000" stroke-width=".142"/> - <path d="M250.238 217.912s.226 3.452.86 3.6c.634.148 1.676-.986 1.676-1.874 0-.888-1.087-2.96-1.087-2.96l-1.495 1.086" fill="#452c25"/> - <path d="M250.238 217.912s.226 3.452.86 3.6c.634.148 1.676-.986 1.676-1.874 0-.888-1.087-2.96-1.087-2.96l-1.495 1.086" fill="none" stroke="#000" stroke-width=".142"/> - <path d="M250.268 213.777s-1.178 3.7-.045 4.439c1.132.74 2.038-3.65 2.083-4.636.045-.986-2.038.197-2.038.197z" fill="#452c25" stroke="#000" stroke-width=".142"/> - <path d="M250.36 207.841s-1.722 1.776-1.676 2.763c.045.986 2.536-1.332 2.763-1.776.226-.444-1.087-.987-1.087-.987" fill="#452c25"/> - <path d="M250.36 207.841s-1.722 1.776-1.676 2.763c.045.986 2.536-1.332 2.763-1.776.226-.444-1.087-.987-1.087-.987z" fill="none" stroke="#000" stroke-width=".142"/> - <path d="M249.176 206.847s-1.359 2.515-.996 3.304c.362.789 1.675-.592 2.31-1.48.634-.887-1.314-1.824-1.314-1.824" fill="#452c25"/> - <path d="M249.176 206.847s-1.359 2.515-.996 3.304c.362.789 1.675-.592 2.31-1.48.634-.887-1.314-1.824-1.314-1.824z" fill="none" stroke="#000" stroke-width=".142"/> - <path d="M268.277 203.514s2.17 4.087 1.573 4.31c-.596.222-1.513-.803-2.422-2.025-.91-1.222.85-2.285.85-2.285" fill="#452c25"/> - <path d="M268.277 203.514s2.17 4.087 1.573 4.31c-.596.222-1.513-.803-2.422-2.025-.91-1.222.85-2.285.85-2.285z" fill="none" stroke="#000" stroke-width=".142"/> - <path d="M268.327 211.873s.788 3.438.097 3.755c-1.352.62-2.106-2.444-2.187-3.594-.092-1.287 2.09-.161 2.09-.161zm-2.704 5.45s.183 2.574-.188 2.806c-.37.231-1.28.293-2.292-1.871-1.013-2.164-.542-1.355-.542-1.355l2.49-1.23.54 1.404" fill="#452c25" stroke="#000" stroke-width=".142"/> - <path d="M268.113 216.735s.291 2.726-.256 2.803c-.546.076-2-.846-2.633-2.478-.73-1.881 2.539-1.327 2.539-1.327l.35 1.002z" fill="#452c25" stroke="#000" stroke-width=".142"/> - <path d="M265.55 208.373s2.798 6.262 2.348 7.154c-.882 1.745-3.424-3.814-4.192-5.984-.859-2.427 1.843-1.17 1.843-1.17z" fill="#452c25" stroke="#000" stroke-width=".142"/> - <path d="M264.252 209.42s3.815 6.891 2.206 7.052c-1.609.16-4.534-4.999-5.024-6.198-.491-1.2 2.818-.855 2.818-.855z" fill="#452c25" stroke="#000" stroke-width=".142"/> - <path d="M264.024 210.85s1.877 6.605.668 6.02c-1.21-.583-2.666-5.558-2.864-6.632-.199-1.074 2.196.612 2.196.612zm6.595-9.391s2.893 4.42 1.955 4.55c-.939.132-4.37-2.952-4.402-3.463-.03-.51 2.447-1.087 2.447-1.087z" fill="#452c25" stroke="#000" stroke-width=".142"/> - <path d="M268.81 201.645s3.69 5.036 2.577 5.292c-1.113.255-1.197-.532-1.197-.532s-2.944-2.654-3.141-3.325c-.198-.671 1.652-1.5 1.652-1.5m3.764.143s2.537 2.617 1.871 3.503c-.665.886-4.19-3.314-4.67-3.847-.48-.534 3.074.241 3.074.241m-6.426 3.74s4.085 7.958 3.333 8.767c-.752.81-5.293-5.967-5.451-6.95-.158-.982 2.16-1.967 2.16-1.967" fill="#452c25" stroke="#000" stroke-width=".142"/> - <path d="M263.964 206.08s1.634 2.49 1.542 3.831c-.093 1.341-2.47-1.92-2.676-2.534-.205-.614 1.134-1.298 1.134-1.298z" fill="#452c25" stroke="#000" stroke-width=".165"/> - <path d="M267.325 204.79s1.27 2.569.88 3.342c-.388.774-2.12-1.56-2.723-2.474-.603-.913 1.843-.869 1.843-.869z" fill="#452c25" stroke="#000" stroke-width=".142"/> - <path d="M261.43 207.315s1.994 2.212 1.898 3.391c-.095 1.18-2.99-1.72-3.245-2.263-.253-.543 1.347-1.128 1.347-1.128z" fill="#452c25" stroke="#000" stroke-width=".17"/> - <path d="M274.32 200.932s3.018 2.708 2.55 3.133c-.468.425-4.552-2.5-5.167-3.068-.615-.568 2.617-.065 2.617-.065z" fill="#452c25" stroke="#000" stroke-width=".142"/> - <path d="M271.767 200.736l2.361 1.989s2.194 1.465 1.818 1.845c-.375.38-3.811-1.193-4.42-1.91-.61-.715-.54-1.453-.54-1.453l.781-.47zm7.78.626s8.94 3.625 8.592 4.499c-.348.874-9.372-2.902-10.788-3.898-1.416-.996 2.062-.656 2.062-.656" fill="#452c25" stroke="#000" stroke-width=".142"/> - <path d="M279.87 202.51s6.713 3.78 5.93 4.143c-.783.363-5.588-.92-8.068-2.602-2.48-1.681-3.536-2.613-3.536-2.613l3.061-.713 2.613 1.785zm-16.526 4.594s1.271 2.57.882 3.344c-.39.773-1.655-.66-2.257-1.574-.604-.913 1.375-1.77 1.375-1.77zm.302 5.795s1.049 3.744-.108 4.437c-1.157.693-1.91-3.73-1.921-4.718-.012-.988 2.03.28 2.03.28z" fill="#452c25" stroke="#000" stroke-width=".142"/> - <path d="M258.45 206.73s3.732-1.639 4.394-1.508c0 0 .783-.196 1.204-.524.421-.328 1.384-1.114 1.384-1.114s-.662-4.523 4.094-4.064c4.756.458 11.016 1.048 12.28 1.245 1.265.197 5.9 1.508 6.984 2.032 1.083.524 8.144 3.72 9.588 4.245.856.31 2.744 1.49 4.14 2.402.963.627-.029.178-.029.178s-11.435-6.07-15.477-6.882c-1.011-.203.07 1.158.07 1.158s-2.627-1.036-3.71-1.494c-1.084-.459-1.987-.656-3.01-.59-1.024.065-1.806-.131-2.408-.328-.603-.197-4.034-.328-4.636-.393a7.81 7.81 0 0 1-1.083-.197l.24.393-1.685-.262-.482.721s-1.625.328-1.746-.197c-.12-.524-.963 2.36-1.384 3.212-.422.853-1.987.852-2.469 1.377-.48.525-.782.852-1.022.983-.241.131-1.445.852-1.867.852-.421 0-3.01.197-3.01.197l-.662-1.049.301-.393zm4.907 10.599s.066 3.31-.123 3.548c-.19.24-1.865.17-1.87-2.297-.005-2.468.45-2.548.45-2.548l1.59 1.2" fill="#452c25" stroke="#000" stroke-width=".142"/> - <path d="M263.759 214.79s-.317-1.433-.544-1.63c-.226-.198.09-.396.09-.396s-.588-1.433-.95-1.68c-.363-.246.045-.444.045-.444s-.634-.988-1.087-1.285c-.453-.296 0-.346 0-.346s-.473-1.326-1.577-1.934c0 0-.732-.77-1.478-.982-.747-.212-2.598-.41-4.836-.368-2.357.043-3.356 1.677-3.356 1.677l-.151 1.895.34-.231-.499 2.36c-.079.54.423 1.478.45 2.606.01.357.031.73.072 1.113.107 1.013.344 2.087.804 3.078.036.078.07.307.113.233.116-.198.374.668.607.979 0 0 .14 1.177.25.74.044-.169.422.668.656 1.193.085.19.53 1.487.514.897-.019-.646.391 1.376.391 1.666l.544-.79.272.889.452-.05-.135.84s1.268-1.037 1.313-1.433c.045-.395.09-.691.09-.691l.408-.396.635-.988s1.585 1.235 1.766 1.68c.181.445.363.84.363.84l.407-.395.363.889.226-.445.22.618.02-.038.144.407c.11.103.363.155.839-.64.679-1.137.634-2.026.679-2.224.045-.198.317.346.317.346s.589-1.087.498-1.779c-.09-.692.363-.445.363-.445s.09-1.828 0-2.273c-.091-.444.317-.345.317-.345s-.136-2.174-.272-2.421c-.136-.247.317-.297.317-.297z" fill="#452c25" stroke="#000" stroke-width=".142"/> - <path d="M260.585 209.76c.32.096.476.457.612.736-.009-.017.02-.098.004-.133-.136-.28-.296-.645-.616-.74.003 0-.021.13 0 .137m.29 1.366c.59.5.64 1.182.608 1.928 0 .022.008.154.011.07.035-.79.026-1.59-.62-2.135.015.012-.027.114 0 .137m1.227.7c.326.534.356 1.124.357 1.742 0 .078.013.078.013 0 0-.656-.016-1.3-.366-1.876.009.014-.023.102-.003.133m.43 2.58c-.036.383-.105.758-.179 1.135a.478.478 0 0 0 .007.118c.075-.383.145-.766.182-1.155.003-.018-.005-.151-.01-.097m-.397 1.98c.03.25.062.499.036.752-.003.018.004.151.01.097.034-.318.003-.63-.036-.946-.007-.054-.012.08-.01.097m-.761-2.485c0 .423.003.845.038 1.267.005.054.011-.08.01-.098a14.26 14.26 0 0 1-.034-1.17c0-.078-.014-.078-.014 0m-.323 2.745c.033.401.034.804.034 1.206 0 .079.013.079.013 0 0-.435-.003-.87-.038-1.303-.005-.054-.01.079-.01.097m1.812-.35a1.2 1.2 0 0 1 .322.656c.004.026.009-.02.009-.025a.33.33 0 0 0-.003-.094 1.242 1.242 0 0 0-.329-.674c.017.017-.026.11 0 .138m-.108-2.77c.18.15.326.333.47.517-.017-.021.025-.106 0-.137a3.31 3.31 0 0 0-.47-.517c.015.012-.027.115 0 .137m-1.489 2.073a6.366 6.366 0 0 1-.105 1.122.398.398 0 0 0 .007.119c.077-.41.11-.824.112-1.241 0-.078-.013-.078-.013 0m-.793.824c.03.337.03.673 0 1.01 0 .018.005.152.01.098a6.642 6.642 0 0 0 0-1.205c-.005-.054-.011.08-.01.097"/> - <path d="M246.122 207.281s-.906 3.403-.226 3.749c1.33.675 2.188-2.356 2.31-3.502.135-1.283-2.084-.247-2.084-.247" fill="#452c25"/> - <path d="M246.122 207.281s-.906 3.403-.226 3.749c1.33.675 2.188-2.356 2.31-3.502.135-1.283-2.084-.247-2.084-.247z" fill="none" stroke="#000" stroke-width=".142"/> - <path d="M248.082 207.254s-1.721 1.776-1.676 2.762c.045.986 2.537-1.332 2.763-1.776.227-.443-1.087-.986-1.087-.986" fill="#452c25"/> - <path d="M248.082 207.254s-1.721 1.776-1.676 2.762c.045.986 2.537-1.332 2.763-1.776.227-.443-1.087-.986-1.087-.986z" fill="none" stroke="#000" stroke-width=".142"/> - <path d="M218.726 207.504s-3.556 1.785-3.867 2.549c-.312.763 10.726-1.157 16.791-5.444l-2.46-1.457-10.464 4.352z" fill="#452c25"/> - <path d="M218.726 207.504s-3.556 1.785-3.867 2.549c-.312.763 10.726-1.157 16.791-5.444l-2.46-1.457-10.464 4.352z" fill="none" stroke="#000" stroke-width=".142"/> - <path d="M222.883 208.221s-6.436 2.342-1.756 2.436c0 0 9.275-1.93 14.216-5.707l-1.248-1.847-11.13 4.965" fill="#452c25"/> - <path d="M222.924 208.145s-6.477 2.418-1.797 2.512c0 0 9.275-1.93 14.216-5.707l-1.248-1.847-11.171 5.042z" fill="none" stroke="#000" stroke-width=".142"/> - <path d="M232.438 201.685s-6.84 3.502-6.07 3.897c.77.394 5.617-.69 8.153-2.269 2.537-1.578 3.624-2.466 3.624-2.466l-3.035-.838-2.672 1.676z" fill="#452c25"/> - <path d="M232.438 201.685s-6.84 3.502-6.07 3.897c.77.394 5.617-.69 8.153-2.269 2.537-1.578 3.624-2.466 3.624-2.466l-3.035-.838-2.672 1.676z" fill="none" stroke="#000" stroke-width=".142"/> - <path d="M229.855 209.366s-2.443 2.046-2.16 2.278c.283.234 5.279-.554 9.171-3.608l-.492-1.803-6.57 3.037" fill="#452c25"/> - <path d="M229.855 209.366s-2.443 2.046-2.16 2.278c.283.234 5.279-.554 9.171-3.608l-.492-1.803-6.57 3.037" fill="none" stroke="#000" stroke-width=".142"/> - <path d="M225.603 209.049s-2.348 1.792-1.835 1.945c.513.152 2.497 1.56 11.284-4.171l1.036-.637-1.55-2.189-8.948 4.904" fill="#452c25"/> - <path d="M225.596 208.975s-2.341 1.866-1.828 2.019c.513.152 2.497 1.56 11.284-4.171l1.036-.637-1.55-2.189-8.942 4.978z" fill="none" stroke="#000" stroke-width=".142"/> - <path d="M223.789 202.232c-7.39 2.585-14.799 7.734-14.799 7.734.724-.247 19.014-7.61 19.014-7.61M240 213.77s-1.585 2.416-1.268 2.712c.317.296 2.265 1.233 4.53-1.874 2.264-3.107-2.13-2.614-2.13-2.614l-1.132 1.776z" fill="#452c25"/> - <path d="M240.001 213.769s-1.585 2.416-1.268 2.712c.317.296 2.265 1.233 4.53-1.874 2.264-3.107-2.13-2.614-2.13-2.614l-1.132 1.776z" fill="none" stroke="#000" stroke-width=".142"/> - <path d="M241.723 215.495s-1.087 2.515-.498 2.762c.588.247 2.083-.148 3.351-2.417 1.269-2.269-.589-1.134-.589-1.134l-2.264.789zm-3.488-3.748s-2.4 2.91-1.902 3.304c.498.395 3.216.346 5.254-2.515 2.038-2.86.045-.148.045-.148l-.589-2.614-2.853 1.825" fill="#452c25"/> - <path d="M241.723 215.495s-1.087 2.515-.498 2.762c.588.247 2.083-.148 3.351-2.417 1.269-2.269-.589-1.134-.589-1.134l-2.264.789zm-3.488-3.748s-2.4 2.91-1.902 3.304c.498.395 3.216.346 5.254-2.515 2.038-2.86.045-.148.045-.148l-.589-2.614-2.853 1.825" fill="none" stroke="#000" stroke-width=".142"/> - <path d="M235.925 210.267s-2.31 2.762-2.083 3.206c.226.444 3.352.296 5.933-2.417 2.582-2.713.499-3.699.499-3.699l-4.303 2.762" fill="#452c25"/> - <path d="M235.925 210.267s-2.31 2.762-2.083 3.206c.226.444 3.352.296 5.933-2.417 2.582-2.713.499-3.699.499-3.699l-4.303 2.762" fill="none" stroke="#000" stroke-width=".142"/> - <path d="M231.849 210.465l-1.495 1.972s.408 1.923 5.48-1.578c5.073-3.502 4.802-3.206 4.802-3.206l-2.718-.493-6.115 3.156" fill="#452c25"/> - <path d="M231.826 210.39l-1.472 2.047s.408 1.923 5.48-1.578c5.073-3.502 4.802-3.206 4.802-3.206l-2.718-.493-6.092 3.23z" fill="none" stroke="#000" stroke-width=".142"/> - <path d="M215.669 207.443l-3.215 1.446s-.727.637 1.161.684c1.889.048 5.79-.474 12.578-4.323 3.069-1.74 5.013-3.4 5.013-3.4l-2.473-.918-13.064 6.511z" fill="#452c25"/> - <path d="M215.669 207.443l-3.215 1.446s-.727.637 1.161.684c1.889.048 5.79-.474 12.578-4.323 3.069-1.74 5.013-3.4 5.013-3.4l-2.473-.918-13.064 6.511z" fill="none" stroke="#000" stroke-width=".142"/> - <path d="M210.162 209.471s4.626-.503 6.465-1.708c0 0-.376.562 1.99-.361 0 0-1.178 2.118 5.72-2.08 6.897-4.2.056-.086.056-.086l7.66-4.389-.447-.875s-14.637 6.269-15.745 6.618c-1.107.35-5.699 2.881-5.699 2.881" fill="#452c25"/> - <path d="M224.365 205.279l7.689-4.432-.448-.875s-14.637 6.269-15.745 6.618c-1.107.35-5.699 2.881-5.699 2.881s4.626-.503 6.465-1.708c0 0-.376.562 1.99-.361 0 0-1.15 2.075 5.748-2.123z" fill="none" stroke="#000" stroke-width=".142"/> - <path d="M243.761 215.388s-.453 3.667.09 3.803c.544.136 2.084-1.018 2.718-3.26.634-2.24-2.49-1.968-2.49-1.968l-.453 1.29" fill="#452c25"/> - <path d="M243.761 215.388s-.453 3.667.09 3.803c.544.136 2.084-1.018 2.718-3.26.634-2.24-2.49-1.968-2.49-1.968l-.453 1.29" fill="none" stroke="#000" stroke-width=".166"/> - <path d="M246.161 217.073s-.271 2.565.091 2.811c.363.247 1.268.346 2.355-1.775 1.087-2.12.589-1.332.589-1.332l-2.446-1.331-.589 1.38" fill="#452c25"/> - <path d="M246.161 216.95s-.271 2.688.091 2.934c.363.247 1.268.346 2.355-1.775 1.087-2.12.589-1.332.589-1.332l-2.446-1.331-.589 1.504z" fill="none" stroke="#000" stroke-width=".142"/> - <path d="M246.84 212.29s-1.992 4.34-.86 4.29c1.133-.05 2.673-3.304 2.899-4.044.227-.74-2.038-.247-2.038-.247" fill="#452c25"/> - <path d="M246.84 212.29s-1.992 4.34-.86 4.29c1.132-.05 2.673-3.304 2.899-4.044.227-.74-2.038-.247-2.038-.247z" fill="none" stroke="#000" stroke-width=".142"/> - <path d="M246.668 212.251s-.75 4.783.32 4.378c1.07-.405 1.677-4.007 1.696-4.786.02-.78-2.016.408-2.016.408" fill="#452c25"/> - <path d="M246.668 212.251s-.75 4.783.32 4.378c1.07-.405 1.677-4.007 1.696-4.786.02-.78-2.016.408-2.016.408z" fill="none" stroke="#000" stroke-width=".142"/> - <path d="M248.29 212.733s-1.177 3.699-.045 4.439c1.132.74 2.038-3.65 2.083-4.636.046-.987-2.038.197-2.038.197" fill="#452c25"/> - <path d="M248.29 212.733s-1.177 3.699-.045 4.439c1.132.74 2.038-3.65 2.083-4.636.046-.987-2.038.197-2.038.197z" fill="none" stroke="#000" stroke-width=".142"/> - <path d="M243.648 211.516s-1.133 3.403-.453 3.748c1.33.675 2.415-2.356 2.536-3.502.136-1.282-2.083-.246-2.083-.246zm-8.447-7.02s-3.035 2.516-2.673 2.91c.363.395 3.896-.295 5.48-1.38 1.586-1.085 2.22-1.677 2.22-1.677l-2.718-1.677-2.31 1.825z" fill="#452c25" stroke="#000" stroke-width=".142"/> - <path d="M237.873 201.932s-1.947 1.578-1.585 1.973c.362.395 3.85-1.036 4.483-1.726.635-.69.59-1.43.59-1.43l-3.488 1.183z" fill="none" stroke="#000" stroke-width=".142"/> - <path d="M239.866 201.685s-2.627 2.17-1.993 2.96c.634.789 4.303-2.713 4.8-3.157.499-.444-3.08.099-3.08.099" fill="#452c25" stroke="#000" stroke-width=".142"/> - <path d="M238.688 200.7l-5.299 2.515s-4.484 2.91-4.031 3.205c.453.296 3.94-.64 6.431-1.874 2.491-1.233 5.255-3.304 5.255-3.304m-.88 2.32s-5.733 4.93-4.873 5.423c.86.493 4.695-1.572 7.277-3.94" fill="#452c25" stroke="#000" stroke-width=".142"/> - <path d="M240.891 205.185s-3.245 5.477-2.882 6.019c.362.543 2.717-1.282 3.895-2.663 1.178-1.381 2.104-3.42 2.104-3.42" fill="#452c25" stroke="#000" stroke-width=".142"/> - <path d="M242.757 205.669s-3.516 6.534-3.109 7.076c.408.542 2.446.099 3.67-2.466 1.222-2.565 1.117-4.219 1.117-4.219l-1.678-.391z" fill="#452c25" stroke="#000" stroke-width=".142"/> - <path d="M244.8 205.982s-3.908 8.064-3.138 8.853c.77.79 5.097-6.116 5.295-7.091.348-1.715-2.203-1.91-2.203-1.91m-8.195-5.184s-3.532 1.677-2.808 2.022c.725.345 4.031-1.134 4.484-1.282.454-.148-1.676-.74-1.676-.74z" fill="#452c25" stroke="#000" stroke-width=".142"/> - <path d="M237.103 201.193s-2.174 1.726-1.721 2.17c.452.444 3.76-1.332 4.393-1.875.634-.542-2.672-.295-2.672-.295z" fill="#452c25" stroke="#000" stroke-width=".142"/> - <path d="M241.664 201.33s-2.97 3.995-2.06 4.153c.91.158 4.36-2.576 4.408-3.049.048-.473-2.348-1.104-2.348-1.104z" fill="#452c25" stroke="#000" stroke-width=".15"/> - <path d="M242.991 202.228s-3.17 3.995-2.265 4.242c.906.246.997-.395.997-.395s2.49-2.071 2.672-2.614c.181-.543-1.314-1.282-1.314-1.282" fill="#452c25" stroke="#000" stroke-width=".142"/> - <path d="M243.988 203.165s-2.31 3.995-1.722 4.242c.59.246 1.54-.74 2.491-1.924.951-1.183-.77-2.318-.77-2.318z" fill="#452c25" stroke="#000" stroke-width=".142"/> - <path d="M244.576 204.99s-1.359 2.515-.996 3.304c.362.79 1.676-.591 2.31-1.479.634-.888-1.314-1.825-1.314-1.825zm.57 6.982s-.906 3.403-.226 3.749c1.33.675 2.188-2.356 2.31-3.502.136-1.282-2.084-.247-2.084-.247z" fill="#452c25" stroke="#000" stroke-width=".142"/> - <path d="M251.37 207.37s-.906-.296-1.585-.296c0 0-1.993-1.578-3.08-1.726-1.087-.148-.159-.173-.159-.173s-.113-2.589-.43-2.786c0 0-.181-2.663-1.857-2.86-1.676-.198-5.435.147-6.115-.1-.679-.246-2.76-1.114-6.703-.049-4.034 1.091-11.971 4.655-12.379 4.753-.407.1 9.118-2.09 11.79-3.273 0 0 2.672-.197 3.488-.444 0 0-3.034 1.48-.227.839 2.809-.642 2.174 0 2.174 0s-.271.64 1.314.295c1.585-.345 1.585 0 1.585 0s1.812.641 3.216-.197c0 0 .725 2.516 1.63 2.86 0 0 1.077 2.305 3.342 2.75 0 0 1.076.762 1.302.91l1.28.42 1.369-1.071" fill="#452c25" stroke="#000" stroke-width=".142"/> - <path d="M232.8 200.551s-9.058 3.255-8.742 4.143c.317.888 9.466-2.515 10.916-3.452 1.45-.937-2.038-.74-2.038-.74" fill="#452c25" stroke="#000" stroke-width=".142"/> - <path d="M257.877 207.57c.207.035.382.129.568.224.006.003.085.052.1.032.014-.02-.056-.083-.06-.087a1.641 1.641 0 0 0-.386-.286c-.237-.122-.468-.25-.734-.294-.052-.008.143.179.157.19.095.076.23.2.355.221m-7.052 6.84c.134.258.155.555.29.813-.01-.017.02-.1.003-.133-.134-.258-.155-.555-.29-.813.009.017-.02.1-.003.133m1.23-6.976c.304-.108.625-.11.94-.148.015-.002.005-.138 0-.138-.315.038-.636.04-.94.148-.022.008.004.136 0 .138m1.808-.148c.287-.136.592-.147.903-.147.01 0 .01-.138 0-.138-.311 0-.616.011-.903.147-.025.012.008.135 0 .138m-3.145 1.598c-.037.007-.04.037-.042.071a.33.33 0 0 0 .003.094c.004.027.009-.02.009-.024-.003.025.014 0 .03-.003.018-.003.003-.138 0-.138m-.187 4.869c0 .254.003.509.04.76.003.027.008-.02.01-.024a.333.333 0 0 0-.004-.094 4.26 4.26 0 0 1-.032-.642c0-.078-.014-.078-.014 0"/> - <path d="M252.36 228.153s-1.025.793-1.14 1.166c-.116.374-.148.734-.148.734s.917-.111.805.395c0 0 .297.171.77-.927.473-1.098.92-1.572 1.255-1.54.335.032.762.358.978.587.215.23.512.4.885.293 0 0-.392-.597-.144-.728.247-.13.624-.105.624-.105s-.312-.744-.984-.852c-.672-.108-1.137-.295-.978-.587.16-.293 1.02-2.563 1.02-2.563l-1.14-1.673-.456 1.456s.148.86.154 1.08c.006.22-.905 2.101-1.028 2.21-.123.11-2.565 1.054-2.855 1.146-.29.094-.898.816-.898.816l-.07.543s.41-.335.54-.136c0 0 .284-.357.538-.223.254.134.214.185.214.185s.452-.298.532-.444c.08-.146.101-.128.101-.128s.229-.06.562-.117" fill="#bd8759"/> - <path d="M252.36 228.153s-1.025.793-1.14 1.166c-.116.374-.148.734-.148.734s.917-.111.805.395c0 0 .297.171.77-.927.473-1.098.92-1.572 1.255-1.54.335.032.762.358.978.587.215.23.512.4.885.293 0 0-.392-.598-.144-.728.247-.13.624-.105.624-.105s-.312-.744-.984-.852c-.672-.108-1.137-.295-.978-.587.16-.293 1.02-2.563 1.02-2.563l-1.14-1.673-.456 1.456s.148.86.154 1.08c.006.22-.905 2.101-1.028 2.21-.123.11-2.565 1.054-2.855 1.146-.29.094-.898.816-.898.816l-.07.543s.41-.335.54-.136c0 0 .284-.357.538-.223.254.134.214.185.214.185s.452-.298.532-.444c.08-.146.101-.128.101-.128s.229-.06.562-.117" fill="none" stroke="#000" stroke-width=".142"/> - <path d="M259.325 223.115s.042 1.926.042 2.285c0 .358-.042.895-.247 1.209-.206.314-.412.493-.74.493-.33 0-1.194-.045-1.358.268a5.361 5.361 0 0 1-.289.493s.535-.313.617 0c.083.314-.205.583-.205.583s.494.09.946-.18c.452-.268.7-.313.905-.313.206 0 .37.224.37.224s.124.672.083 1.075c-.042.403-.124 1.21.329 1.21 0 0 .164-.404.329-.449.164-.044.617.403.535.538 0 0 .082-.851-.083-1.344-.164-.493-.247-1.03-.247-1.03s1.4.493 1.523.672c.123.179.452.493.576.448.123-.045 0-.448.246-.538.247-.09.37.134.37.134s-.41-.94-1.028-1.254c-.617-.313-1.028-.313-1.275-.582-.247-.269-.289-.582-.33-.896-.04-.314.012-3.021.012-3.021l-1.04-.204" fill="#bd8759"/> - <path d="M259.346 222.974s.02 2.067.02 2.426c0 .358-.04.895-.246 1.209-.206.314-.412.493-.74.493-.33 0-1.194-.045-1.358.268a5.195 5.195 0 0 1-.289.493s.535-.313.617 0c.083.314-.205.583-.205.583s.494.09.946-.18c.452-.268.7-.313.905-.313.206 0 .37.224.37.224s.124.672.083 1.075c-.042.403-.124 1.21.329 1.21 0 0 .164-.404.329-.449.164-.044.617.403.535.538 0 0 .082-.851-.083-1.344-.164-.493-.247-1.03-.247-1.03s1.4.493 1.523.672c.123.179.452.493.576.448.123-.045 0-.448.246-.538.247-.09.37.134.37.134s-.41-.94-1.028-1.254c-.617-.313-1.028-.313-1.275-.582-.247-.269-.289-.582-.33-.896-.04-.314.012-3.021.012-3.021l-1.06-.166z" fill="none" stroke="#000" stroke-width=".142"/> - <path d="M250.74 210.474s-.136-1.372.249-1.52c0 0 .136-1.258 1.812-1.085 0 0 .566-.937 1.472-.444 0 0 .86-.42 1.359-.173.498.247 1.11.666 1.154.765 0 0 .725-.148 1.065.123.34.271.181 1.16.181 1.16s.815.623.883 1.174c.068.551.068.773-.113.921 0 0 .362.296.294.715-.068.42-.408 1.028-.476 1.028-.067 0 .046 1.093-.316 1.463-.363.37-.702.444-.86.493-.16.05-.567.641-.952.715-.385.074-.906-.592-.951-.789-.045-.197-.566-.42-.566-.42s-1.178 1.259-1.97 1.061c-.793-.197-1.178-.863-1.246-.986-.068-.123-.294-1.036-.294-1.036s-.883-.518-.816-1.01c.068-.494.43-1.086.43-1.086l-.34-1.069z" fill="#dcddde"/> - <path d="M253.684 226.07a.31.31 0 0 1-.253-.045m.645-.95a.854.854 0 0 1-.339-.12m-.066.63c.076.044.163.06.252.047m-1.089 1.512a.34.34 0 0 0 .169.06m6.857-.998c.168.03.321.119.494.134m-.206-.627c-.133.033-.247.007-.329-.09m.411-.492a.924.924 0 0 1-.452-.045m-.124 2.016c.157.02.302.098.453.134m-.411.493a.23.23 0 0 1 .205.044m-.082 1.658a.43.43 0 0 1 .288.045m-5.43-2.245a.363.363 0 0 0-.287.225m1.125-.146c-.18.104-.34.25-.364.46m-4.839.463c.14.127.347.202.468.32m10.56-1.003a.375.375 0 0 0-.205.269m.782-.09a.197.197 0 0 0-.123.179" fill="none" stroke="#000" stroke-width=".142"/> - <path d="M249.014 229.412l.587-.152.057.023s-.385.744-.28.924c.104.18-.526-.326-.364-.795" fill="#d9c0b9"/> - <path d="M249.014 229.412l.587-.152.057.023s-.385.744-.28.924c.104.18-.526-.326-.364-.795z" fill="none" stroke="#000" stroke-width=".142"/> - <path d="M251.248 229.851s-.65 1.085.193 1.628c0 0-.052-1.012.608-1.23l-.8-.398z" fill="#d9c0b9"/> - <path d="M251.248 229.851s-.65 1.085.193 1.628c0 0-.052-1.012.608-1.23l-.8-.398z" fill="none" stroke="#000" stroke-width=".142"/> - <path d="M255.56 228.84l-.197-.587.228-.308.461-.005.196.092s.37.846.046 1.29c0 0-.137-.478-.294-.543 0 0-.344-.054-.44.06" fill="#d9c0b9"/> - <path d="M255.56 228.84l-.197-.587.228-.308.461-.005.196.092s.37.846.046 1.29c0 0-.137-.478-.294-.543 0 0-.344-.054-.44.06z" fill="none" stroke="#000" stroke-width=".142"/> - <path d="M257 227.599h.386l.147.36-.055.333-.333.154s-.55-.14-.414.513c0 0-.257-1.2.27-1.36" fill="#d9c0b9"/> - <path d="M257 227.599h.386l.147.36-.055.333-.333.154s-.549-.14-.414.513c0 0-.257-1.2.27-1.36z" fill="none" stroke="#000" stroke-width=".142"/> - <path d="M259.725 230.286l.398-.44.429.226s-.178 1.16-.245 1.247c-.067.087-.08.1-.08.134 0 .033-.067-.22-.196-.367-.128-.147-.263-.787-.306-.8" fill="#d9c0b9"/> - <path d="M259.725 230.286l.398-.44.429.226s-.178 1.16-.245 1.247c-.067.087-.08.1-.08.134 0 .033-.067-.22-.196-.367-.128-.147-.263-.787-.306-.8z" fill="none" stroke="#000" stroke-width=".142"/> - <path d="M262.321 229.12s.643.8.563 1.06c0 0 .662-.667-.19-1.614l-.373.553z" fill="#d9c0b9"/> - <path d="M262.321 229.12s.643.8.563 1.06c0 0 .662-.667-.19-1.614l-.373.553z" fill="none" stroke="#000" stroke-width=".142"/> - <path d="M259.5 208.948c.128.036.208.13.252.256.003.006.008-.042.008-.048 0-.026.004-.06-.005-.085-.044-.127-.125-.223-.255-.26.003 0-.02.131 0 .137m.145 2.215c.2.21.349.455.432.736-.007-.022.015-.094.004-.133a1.81 1.81 0 0 0-.436-.74c.016.017-.026.11 0 .137m-.47-1.624c.196.17.362.368.542.553-.016-.017.027-.11 0-.137-.18-.186-.346-.385-.542-.554.015.013-.027.114 0 .138m.539 3.682c.057.332-.02.615-.143.908-.015.037.012.114.004.133a2.04 2.04 0 0 0 .146-1.16.437.437 0 0 0-.007.12m.506 1.144c.026.17.03.339 0 .51a.493.493 0 0 0-.003.093c0 .004.004.051.009.025.044-.247.037-.5 0-.746-.004-.027-.009.02-.009.024a.331.331 0 0 0 .003.094m1.953 4.032c.13.462.14.933.14 1.41 0 .079.014.079.014 0 0-.52-.01-1.039-.15-1.543.007.023-.014.094-.004.133m-.325.938a7.903 7.903 0 0 1-.362.96c-.016.035.013.115.004.133a7.85 7.85 0 0 0 .362-.96c.012-.038-.01-.112-.003-.133m-10.913-3.114c.302.394.466.866.72 1.29-.008-.015.023-.102.005-.133-.256-.425-.42-.9-.725-1.295.017.022-.025.106 0 .138m1.916.047c-.276.036-.344-.36-.579-.443.004 0-.022.13 0 .137.234.083.303.48.579.443.015-.002.004-.138 0-.137m-1.087 1.833c.199.348.33.732.543 1.071-.01-.014.023-.102.004-.133-.214-.34-.345-.722-.543-1.07.01.015-.022.1-.004.132m1.267.446c.223.268.424.55.54.884-.007-.021.017-.096.004-.133-.117-.336-.32-.62-.544-.889.017.02-.026.107 0 .138m-.11 1.327c.112.231.213.47.325.701-.008-.017.02-.098.004-.133-.112-.232-.213-.47-.325-.701.008.018-.02.098-.004.133m1.193.258c.065.244.101.493.103.746 0 .078.014.078.014 0a3.517 3.517 0 0 0-.114-.879c.006.024-.014.094-.004.133m-.507 1.101c.078.35.18.694.363 1.004-.008-.015.022-.101.004-.133-.18-.306-.283-.644-.36-.99a.357.357 0 0 0-.007.12m.292-4.68c.286.108.572.216.868.295 0 0 .02-.133 0-.138a8.62 8.62 0 0 1-.868-.296c.005.002-.022.13 0 .138m.217 1.219c.341.19.7.34 1.048.516-.009-.004.025-.125 0-.137-.348-.176-.707-.327-1.048-.517.01.006-.026.123 0 .138m.326 1.366c.176.214.368.41.578.59-.015-.012.027-.114 0-.137a4.765 4.765 0 0 1-.578-.591c.016.02-.026.107 0 .138m.36 1.696c.146.234.215.494.25.768.005.027.01-.02.01-.025a.33.33 0 0 0-.003-.094c-.037-.278-.105-.544-.255-.782.008.014-.023.102-.004.133m1.01-4.217c.033.164.071.326.11.487-.005-.024.014-.093.005-.132a10.767 10.767 0 0 1-.107-.473c-.005-.027-.01.02-.01.024a.297.297 0 0 0 .004.094m2.53-1.012c-.07.18-.155.351-.252.517-.019.032.012.118.004.133a3.79 3.79 0 0 0 .253-.517c.015-.036-.012-.113-.003-.133m1.043-.044c0 .29-.005.58-.069.864a.396.396 0 0 0 .007.119c.073-.323.076-.653.076-.983 0-.078-.014-.078-.014 0m.219 1.6c.026.249 0 .494-.035.74a.611.611 0 0 0 .007.12c.044-.319.071-.637.038-.958-.006-.054-.012.08-.01.098m.796 1.516c-.047.343-.254.617-.502.84-.027.024.015.124 0 .138.254-.229.46-.508.509-.86a.538.538 0 0 0-.007-.118m-2.564-1.484c-.072.143-.166.273-.253.406-.013.019-.005.065-.005.085 0 .005.004.055.008.048.088-.133.18-.263.253-.406.01-.022.005-.062.005-.085 0-.005-.004-.054-.008-.048m.29 2.029a2.016 2.016 0 0 1-.36.406c-.028.021.014.126 0 .137.143-.113.252-.258.36-.406.012-.015.007-.05.007-.069 0-.008-.01-.065-.006-.068m-.904 1.07c-.353-.349-.519-.797-.36-1.304.012-.039-.01-.111-.003-.133-.178.564-.06 1.156.363 1.575-.016-.016.027-.111 0-.138m-1.196-1.127c.027.21.026.412-.035.613-.011.038.01.11.004.133.084-.28.076-.577.038-.864-.004-.027-.009.02-.009.024a.33.33 0 0 0 .003.094m2.748 1.351c-.075.25-.21.47-.326.702-.016.034.013.116.004.133.116-.232.251-.452.326-.702.011-.038-.01-.11-.004-.133m1.77.739c-.152.27-.329.523-.505.775-.02.03.012.121.004.133a9.68 9.68 0 0 0 .505-.775c.019-.033-.012-.118-.003-.133m.866.93c-.074.473-.111.95-.147 1.427-.003.023.006.155.012.07.034-.461.07-.921.142-1.379a.482.482 0 0 0-.007-.118m1.117-1.658c.003.161.034.32.036.48.003.097.014.007.013-.036-.003-.161-.034-.32-.036-.48-.003-.097-.014-.007-.013.036m-11.887-5.21c-.068.475-.01.929.146 1.382-.007-.022.016-.096.004-.133-.128-.371-.2-.723-.143-1.13a.612.612 0 0 0-.007-.119"/> - <path d="M254.739 209.435c.763-.7 1.77-1.438 2.853-1.18 0 0 .019-.133 0-.137-1.082-.258-2.09.48-2.853 1.18-.027.024.015.123 0 .137m3.668.835c-.765-.521-2.103-.712-2.853-.07-.027.023.015.125 0 .138.75-.642 2.088-.451 2.853.07-.012-.01.027-.12 0-.138m-2.923 1.176c.314 1.016.72 2.05.542 3.136a.54.54 0 0 0 .007.12c.192-1.178-.203-2.28-.545-3.39.007.023-.016.096-.003.134m-1.225.618c.188 1.027.068 2.065-.003 3.098-.003.023.006.154.012.07.074-1.096.196-2.198-.003-3.287a.437.437 0 0 0-.007.119m1.634-.755c.998.237 1.974.903 2.512 1.802-.01-.014.022-.1.004-.132-.539-.903-1.514-1.57-2.516-1.808 0 0-.02.134 0 .138m-.89 1.39c.004.63.053 1.263-.13 1.876-.012.039.01.11.003.133.197-.656.145-1.333.141-2.01 0-.078-.014-.078-.014 0m1.57-.14c.627.52 1.124 1.303 1.218 2.132.006.054.011-.08.009-.097-.096-.847-.585-1.64-1.228-2.172.015.012-.026.115 0 .138m-4.617 1.732c.207-.296.465-.634.813-.76.023-.008-.004-.137 0-.139-.35.128-.607.468-.817.766-.02.03.012.121.004.133m1.495-5.4c-.133-.565-.556-.898-1.01-1.201.01.007-.025.106 0 .122.45.302.874.635 1.006 1.197-.005-.021.012-.083.004-.118m-.885-.01c-.523-.248-1.063-.277-1.63-.278-.01 0-.01.138 0 .138.567 0 1.107.03 1.63.278-.008-.004.025-.126 0-.138m1.634-.087c.069-.543-.011-1.055-.479-1.39.012.009-.023.104 0 .121.393.281.536.672.473 1.165a.496.496 0 0 0 .006.104m1.967.641c.491-.261 1.026-.212 1.562-.208.01 0 .01-.138 0-.138-.536-.004-1.07-.053-1.562.208-.026.014.01.133 0 .138m.883 1.318c.758.08 1.336.47 1.834 1.042-.033-.039.052-.217 0-.276-.498-.571-1.076-.961-1.834-1.041-.011-.001-.029.272 0 .275m-3.332 2.09c-.18.724-.042 1.641-.88 1.938-.045.016.008.273 0 .276.848-.301.706-1.217.887-1.949.02-.078-.019-.218-.007-.265" fill="#fff"/> - <path d="M255.482 212.276c.291.762.697 1.54.54 2.386a.931.931 0 0 0 .014.237c.192-1.042-.181-1.932-.547-2.889.016.04-.035.192-.007.266m1.09-.134c.74.094 1.39.752 1.488 1.508.007.053.019-.042.019-.05a1.08 1.08 0 0 0-.005-.188c-.1-.77-.744-1.45-1.501-1.546-.01 0-.03.272 0 .276m-.006 1.091c.116.634.295 1.267.07 1.9-.026.075.023.224.008.266.28-.79.08-1.607-.065-2.404a.996.996 0 0 0-.013.238m-.402-2.757c.814-.137 1.674-.26 2.378.278-.028-.022.054-.235 0-.276-.704-.537-1.564-.415-2.378-.278-.033.006-.006.277 0 .276m-1.487-1.615c.097-.673.69-1.153 1.284-1.37.045-.016-.009-.272 0-.275-.614.223-1.198.717-1.298 1.407a.991.991 0 0 0-.005.188c0 .008.011.103.019.05m-.743.404c-.02-.746-.346-1.346-.668-1.998.015.03-.036.174-.006.235.289.584.634 1.154.652 1.827.005.172.025.014.023-.064m-.685.399c-.145-.664-.583-1.104-1.161-1.407.018.01-.051.249 0 .275.559.293 1.006.724 1.148 1.37.006.025.025-.184.013-.238m-1.093-.266c-.38-.264-.779-.513-1.24-.584-.007-.001-.026.211 0 .215.461.07.86.32 1.24.584-.02-.014.042-.186 0-.215m2.368 3.12c.065.705.153 1.417-.198 2.06-.036.066.025.235.007.266.42-.77.288-1.682.21-2.52-.01-.109-.022.158-.019.194" fill="#fff"/> - <path d="M255.346 212.137c.236.663.514 1.368.468 2.088-.003.045.012.309.023.14.057-.877-.193-1.678-.483-2.494.014.042-.034.191-.007.266m.546-.967c.675.207 1.344.428 1.834.972-.033-.037.053-.218 0-.276-.49-.544-1.16-.764-1.834-.972.005.002-.042.263 0 .276m-1.824-1.498c.071-.587.134-1.171.14-1.763.003-.157-.026-.157-.027 0-.005.526-.069 1.047-.133 1.568-.004.036.006.303.02.195m-1.233-.374c-.498-.226-.94-.55-1.359-.902.03.025-.054.23 0 .276.419.352.861.676 1.36.902-.016-.007.048-.254 0-.276m-.205 3.54c-.32.202-.54.485-.683.838-.02.048-.01.12-.01.17 0 .01.012.108.017.095.141-.349.36-.628.675-.827.054-.034-.023-.261 0-.276m.871.518c-.012.483-.278.883-.599 1.217-.052.055.033.241 0 .276.386-.403.61-.852.625-1.42.003-.088-.02-.267-.026-.073m2.28-3.801c.402-.633 1.37-.686 2.018-.863.04-.01-.003-.275 0-.275-.655.179-1.619.232-2.024.872-.04.062.024.239.007.266m-4.456-.01a2.21 2.21 0 0 1-.44-.206c.013.007-.031.152 0 .17.142.08.284.16.44.206-.003 0 .026-.162 0-.17m.088 3.24c-.14.058-.285.116-.381.24-.023.03-.014.104-.014.138 0 .032 0 .065.004.097 0-.005.006.044.01.04.097-.123.241-.182.381-.239.022-.009.014-.12.014-.138a.766.766 0 0 0-.014-.137m.586.149c-.287.129-.497.378-.676.632-.032.046.018.19.006.209.178-.252.386-.498.67-.625.038-.017-.011-.21 0-.216m1.11.275c-.251.611-.935 1.287-.44 1.971-.017-.023.05-.209.008-.265-.344-.474.261-1.007.439-1.44.03-.073-.023-.228-.007-.266m.781-.01c.02.623-.09 1.238-.199 1.849a.966.966 0 0 0 .014.238c.127-.717.233-1.43.212-2.16-.006-.194-.03-.015-.027.072m2.005-.736c.455.595.857 1.235 1.051 1.97-.012-.047.028-.188.007-.266-.195-.739-.601-1.382-1.058-1.98.034.044-.049.211 0 .276m.235-.48c.747.57 1.579 1.105 2.105 1.91-.018-.025.047-.204.007-.265-.529-.81-1.361-1.348-2.113-1.92.029.022-.053.235 0 .276" fill="#fff"/> - <path d="M256.57 211c.28-.026.538-.016.803.082.237.087.433.283.648.413.217.13.437.25.614.436.232.244.234.66.303.974a.76.76 0 0 0 .011-.203c-.056-.257-.085-.518-.173-.767-.085-.244-.296-.393-.501-.525-.246-.157-.487-.316-.73-.476-.29-.19-.643-.2-.974-.168-.024.002-.01.235 0 .235" fill="#fff"/> - <path d="M258.4 212.53c.082.242.179.478.262.719-.01-.028.02-.124.005-.173-.083-.24-.18-.477-.262-.718.01.028-.021.124-.005.173m-2.093-3.809c.526-.145 1.065-.24 1.582-.42.044-.014-.007-.272 0-.274-.517.178-1.056.274-1.582.418-.04.012.003.275 0 .276m-2.193.264c.074-.279.193-.506.352-.744.196-.293.223-.66.464-.927.052-.057-.033-.238 0-.275-.198.22-.267.503-.381.771-.136.322-.35.56-.442.91-.021.078.02.219.007.265m-1.797 4.926c-.094.453-.077.926.09 1.359-.015-.04.036-.192.008-.266a1.457 1.457 0 0 1-.085-.855c.013-.06.008-.128.005-.189 0-.009-.008-.101-.018-.05m1.09.858c-.188.257-.19.648-.09.943.003.01.015-.08.015-.09.003-.05.007-.112-.009-.16-.056-.165-.014-.3.085-.434.02-.029.012-.096.012-.13 0-.014-.018-.122-.012-.129m.81-.435c-.009.26-.148.509-.257.738-.023.05.018.166.006.192.135-.285.26-.557.27-.878.003-.063-.014-.191-.019-.052m.025-1.53v.329c0 .01-.003.137.014.137.016 0 .014-.128.014-.137v-.33c0-.008.003-.137-.014-.137-.016 0-.014.128-.014.138m-.37.192c.02.04.038.078.052.12.01.058.014.062.014.01a.844.844 0 0 0-.016.257c0 .008.008.101.019.048.041-.225.05-.494-.062-.7-.007-.013-.017.086-.017.096 0 .044-.013.128.01.17m-.527-.176a3.697 3.697 0 0 0-.12.522.841.841 0 0 0-.006.189c0 .008.01.102.019.05.027-.169.062-.333.114-.496.016-.051.01-.116.009-.169a.443.443 0 0 0-.017-.096m-.406.025c-.247.301-.575.501-.908.688-.052.029.02.264 0 .275.333-.186.661-.386.908-.688.022-.028.013-.104.013-.138 0-.014-.018-.132-.013-.137m-.703.12c-.15.119-.319.205-.499.268-.044.016.008.273 0 .276.18-.063.348-.15.499-.27.023-.018.013-.112.013-.137a3.31 3.31 0 0 0-.013-.138m-.996-.245c-.146.065-.294.12-.44.186-.038.017.012.215 0 .22.146-.064.294-.12.44-.185.038-.017-.012-.216 0-.22m3.033-.12c.003.18.03.355.065.531.01.052.018-.04.018-.05a.847.847 0 0 0-.005-.188c-.023-.12-.05-.243-.052-.367a.417.417 0 0 0-.017-.096c-.018.05-.01.118-.01.17m.469-.216c.003.21.022.413.097.611a.413.413 0 0 0 .017-.096c.003-.05.009-.12-.01-.17a1.02 1.02 0 0 1-.078-.345c0-.01.003-.138-.014-.138-.015 0-.013.128-.013.138m.361-.047c.063.088.134.21.137.323 0 .011.013.107.017.096.018-.05.01-.118.01-.17a.886.886 0 0 0-.156-.515c-.01-.013-.017.087-.017.097 0 .038-.014.135.01.169m.443-.175a.815.815 0 0 1 .41.21c-.002-.002.014-.127.014-.138 0-.029.01-.115-.013-.138a.814.814 0 0 0-.41-.21c-.004 0-.037.269 0 .276m.234-.359c.18.151.381.264.615.3.007 0 .032-.27 0-.276a1.248 1.248 0 0 1-.615-.3l-.014.139c0 .026-.01.118.014.137m.497-1.197c.16.002.314.028.469.06.003 0 .036-.268 0-.275a2.468 2.468 0 0 0-.469-.06c-.02 0-.021.275 0 .275m-.23-.573c.095-.156.238-.271.377-.385.023-.019.014-.111.014-.137a5.69 5.69 0 0 0-.014-.138c-.142.116-.287.234-.385.394-.023.038-.01.127-.01.17 0 .008.01.109.017.096m-.436-.553c.028-.182.087-.343.198-.49.023-.03.014-.103.014-.137 0-.015-.018-.132-.014-.138a1.114 1.114 0 0 0-.216.716c0 .008.01.102.018.05m-.355-.256c.18-.254.302-.545.469-.808.024-.037.01-.128.01-.17 0-.008-.008-.11-.017-.095-.167.262-.288.553-.469.807-.024.035-.01.13-.009.17 0 .009.007.11.017.096" fill="#fff"/> - <path d="M254.448 208.322c.007.309.029.618.094.92.012.052.018-.04.019-.05a.698.698 0 0 0-.005-.188c-.055-.25-.077-.5-.082-.756-.004-.193-.028-.014-.026.074m-1.309.216c.048.112.11.217.165.324.035.068.067.137.094.208.01.027.02.055.027.083-.017-.056.012-.042-.022.017-.037.064.024.236.007.265.08-.136.067-.358.031-.508-.056-.238-.201-.434-.295-.655.016.038-.037.194-.007.266m-.26.537a4.81 4.81 0 0 0-.586-.479 1.625 1.625 0 0 0-.014.138c0 .024-.01.12.014.138.203.149.406.299.585.479-.003-.002.014-.127.014-.138 0-.03.01-.114-.014-.138m.857.287c.121-.605.098-1.21-.15-1.778.017.037-.038.194-.008.265.18.414.235.82.144 1.275-.012.06-.008.127-.005.188 0 .01.008.102.018.05m1.282-.79c.02 0 .02-.275 0-.275s-.02.276 0 .276" fill="#fff"/> - <path d="M253.568 209.389c.032-.342.112-.676.146-1.018.01-.096.01-.196 0-.292-.006-.07-.021-.07-.029 0-.034.341-.114.676-.146 1.018a1.584 1.584 0 0 0 0 .292c.007.069.022.07.029 0m3.706 2.125c.296.097.589.298.726.591.01.02.025-.13.025-.144.003-.071.018-.188-.014-.254-.141-.3-.434-.507-.737-.606.01.003-.065.392 0 .413m-1.002 2.057c.053.177.058.339.025.52-.017.092-.013.191-.007.283 0 .013.014.153.028.074.075-.411.087-.871-.034-1.275a.685.685 0 0 0-.025.144c-.003.08-.01.176.014.254m-.835-.558c0 .342.02.682-.05 1.019-.017.09-.011.191-.006.283 0 .013.012.152.028.074.092-.454.07-.916.068-1.376 0-.014.003-.206-.02-.206s-.02.192-.02.206m-.425.37c-.118.453-.235.907-.327 1.367-.018.09-.013.192-.007.283 0 .014.012.152.028.074.09-.446.202-.886.317-1.326.03-.117-.03-.328-.01-.398m.57.289c.004.39.049.782.006 1.17-.01.096-.009.197 0 .292.007.07.02.07.029 0 .054-.489.01-.972.006-1.462 0-.014.003-.207-.02-.207-.024 0-.021.192-.021.207m-2.743.208c.008-.123.007-.147-.004-.074a.74.74 0 0 1-.08.205c-.034.061-.016.188-.014.254 0 .014.014.165.025.145.144-.26.133-.6.093-.887-.012-.08-.027.062-.028.075-.006.093-.006.189.007.282m1.206-.817c.08.155.074.29.073.46 0 .013-.003.206.02.206s.02-.193.02-.207c.003-.285.032-.597-.103-.858-.01-.02-.024.13-.024.145-.003.068-.019.19.014.254m.328-.142a.39.39 0 0 1 .145.194c.01.025.012.1.01.013 0 .041.003.083.01.124 0-.002.006.045.015.02.027-.075.016-.176.015-.254-.004-.2-.033-.381-.196-.51-.006-.006-.014.066-.014.06a1.43 1.43 0 0 0-.006.146c0 .049 0 .098.006.146.003.012.003.05.014.06m.405-.366c.065.132.14.258.205.39.01.02.015-.018.016-.022.006-.04.008-.082.009-.123 0-.053 0-.106-.003-.16-.003-.026 0-.07-.012-.094-.065-.132-.14-.258-.205-.39-.01-.02-.015.018-.016.022-.006.04-.008.082-.009.123 0 .053 0 .106.003.159.003.026 0 .07.012.095m.908-.329c.16.228.326.452.503.666-.006-.007.02-.186.02-.207 0-.05.015-.165-.02-.206a9.95 9.95 0 0 1-.492-.651c-.014-.02-.025.13-.025.144-.003.058-.022.202.014.254m.469-.778c.121.214.261.415.415.606-.006-.008.02-.186.02-.207 0-.05.015-.164-.02-.207a4.393 4.393 0 0 1-.405-.59c-.01-.02-.024.13-.024.144-.003.065-.02.194.014.254m-4.564-2.082a1.83 1.83 0 0 0-.44-.27c-.01-.004-.02.197-.02.207 0 .026-.012.194.02.207.16.067.305.16.44.27 0 0 .02-.194.02-.207 0-.039.015-.178-.02-.207m1.43-.492l.028.07c.006.018.01.035.014.053.005.033.006.034.003.002 0 .041.003.084.01.124 0-.002.006.046.015.02.027-.075.016-.175.015-.254a1.084 1.084 0 0 0-.073-.413c-.01-.023-.016.02-.016.02-.006.041-.008.083-.009.124-.003.074-.016.185.014.254m1.128-1.072c.007.272-.022.557-.162.794-.034.058-.016.19-.014.254 0 .014.013.164.025.144.22-.372.201-.882.19-1.302 0-.017-.019-.16-.025-.144-.026.075-.016.177-.014.254m.254 1.529c.24-.162.404-.409.532-.666.033-.065.016-.185.014-.254 0-.015-.015-.164-.024-.145-.126.253-.287.493-.522.651-.035.024-.02.173-.02.207 0 .012.016.21.02.207m.702-.03c.083-.086.153-.183.235-.27.012-.013.012-.044.014-.06.005-.048.006-.097.006-.146 0-.049 0-.098-.006-.146 0 .007-.009-.066-.014-.06-.082.085-.152.182-.235.268-.012.014-.012.045-.014.061a1.431 1.431 0 0 0-.006.146c0 .049 0 .098.006.146 0-.007.01.066.014.06m1.055.186a8.344 8.344 0 0 1-.79-.03c-.019-.002-.044.409 0 .413.262.026.526.03.79.03.03 0 .03-.413 0-.413m-.234.952c.351.21.692.44 1.055.628-.028-.014.075-.373 0-.413-.363-.19-.704-.418-1.055-.629.033.02-.079.366 0 .414" fill="#fff"/> - <path d="M255.955 211.155c.313.2.655.353.938.599 0 0 .02-.192.02-.207 0-.04.015-.176-.02-.207-.283-.246-.625-.399-.938-.598a2.25 2.25 0 0 0-.02.207c0 .032-.014.184.02.206m-2.015-1.504c.045-.15.044-.312.044-.468 0-.014.003-.207-.02-.207-.024 0-.02.193-.02.207 0 .056 0 .009.002 0a.466.466 0 0 1-.015.07c-.024.078-.016.173-.014.254.003.04.003.083.009.123 0-.005.007.048.015.021m-2.467-1.1c.275.337.623.58.962.845.251.195.437.527.708.682-.031-.018.078-.37 0-.413-.244-.14-.407-.434-.624-.615-.358-.3-.746-.545-1.046-.912.05.062-.076.32 0 .413m.586 1.114a8.184 8.184 0 0 1-.468-.54c-.005-.004-.016.068-.015.061a1.774 1.774 0 0 0-.006.146c0 .05-.014.165.02.207.15.185.303.368.469.539-.004-.004.02-.19.02-.207 0-.045.015-.17-.02-.206m-.328 2.73c-.11.2-.204.411-.346.591-.034.043-.02.156-.02.207 0 .021.027.198.02.206.146-.185.243-.4.357-.605.033-.062.016-.188.014-.254 0-.015-.014-.165-.025-.145m.308.414c-.005.23-.083.459-.112.686a1.368 1.368 0 0 0 0 .293c.007.07.02.068.029 0 .036-.293.116-.572.122-.87.003-.077.013-.179-.014-.254-.006-.016-.024.128-.025.145m1.08 1.9c.195-.654.174-1.344.16-2.02-.006-.29-.041-.022-.039.11.01.511.016 1.017-.132 1.511-.034.115.03.331.01.399m.635-1.586c.074.226.09.433.053.67-.014.092-.012.189-.007.282 0 .012.016.154.028.074.07-.468.086-.97-.063-1.425a.689.689 0 0 0-.025.145c-.003.078-.011.177.014.254m.62-.233c.228.28.297.65.275 1.006-.004.068.02.463.035.209.033-.538.047-1.19-.31-1.628.006.008-.02.186-.02.207 0 .05-.014.164.02.206" fill="#fff"/> - <path d="M254.544 212.614c.143.594.253 1.193.314 1.802.016.162.033-.238.028-.292a14.24 14.24 0 0 0-.331-1.908c.017.072-.04.28-.01.398m.585-.15c.26.359.487.737.615 1.167a.683.683 0 0 0 .025-.144c.003-.08.009-.176-.015-.254-.127-.43-.354-.809-.615-1.167.026.034-.073.313-.01.398m1.212-.997c-.12-.209-.376-.234-.592-.216-.04.003-.02.414 0 .413.204-.017.466.002.58.202.012.02.025-.13.026-.145.003-.065.02-.194-.014-.254" fill="#fff"/> - <path d="M255.721 211.304c.38-.055.76-.06 1.142-.06.031 0 .031-.413 0-.413-.382 0-.762.005-1.142.06-.048.007-.012.416 0 .413m.703-3.136c-.303.363-.464.856-.567 1.315-.02.089-.012.193-.007.283 0 .015.01.151.028.074.097-.436.259-.914.546-1.259.035-.041.02-.157.02-.206 0-.02-.026-.2-.02-.207m-1.65.355c.056.35.2.671.297 1.009a.751.751 0 0 0 .025-.145c.003-.08.009-.175-.014-.254-.094-.323-.234-.632-.288-.966-.013-.08-.027.061-.028.074-.005.092-.008.19.007.282m-.312.603a1.652 1.652 0 0 1-.316-.561c-.008-.027-.017.025-.016.02-.006.04-.008.083-.009.124-.003.08-.009.176.014.254a1.7 1.7 0 0 0 .327.576c.005.005.015-.068.015-.06.005-.05.006-.098.006-.147 0-.05.014-.163-.02-.206m-.557.27c-.46-.15-.9-.333-1.29-.63.043.033-.08.352 0 .414.39.296.83.48 1.29.628-.01-.003.065-.392 0-.413" fill="#fff"/> - <path d="M254.411 209.28s-1.822.311-2.303.421c-.48.11-1.57.22-1.948.22-.38 0-.962-.302-1.367-.385-.405-.083-1.72-.22-2.202.275-.48.496-.784.662-.936.827-.152.165-.761.706-.785.946-.024.239.153.597.456.597.304 0 .942.646.941.781-.003.225.834.468 1.62.463 1.42-.008 2.119-.723 4.246-.472 1.159.136 3.29-.772 3.67-1.323.38-.551.607-1.13.227-1.763-.38-.634-1.517-.57-1.619-.588" fill="#dba05f"/> - <path d="M254.411 209.28s-1.822.311-2.303.421c-.48.11-1.57.22-1.948.22-.38 0-.962-.302-1.367-.385-.405-.083-1.72-.22-2.202.275-.48.496-.784.662-.936.827-.152.165-.761.706-.785.946-.024.239.153.597.456.597.304 0 .942.646.941.781-.003.225.834.468 1.62.463 1.42-.008 2.119-.723 4.246-.472 1.159.136 3.29-.772 3.67-1.323.38-.551.607-1.13.227-1.763-.38-.634-1.517-.57-1.619-.588z" fill="none" stroke="#000" stroke-width=".142"/> - <path d="M246.782 211.323s-.005.04-.013-.022l-.01-.049-.014-.033-.003-.038c-.008-.013.039.01.186-.135 0 .003.044-.07.124-.19a.889.889 0 0 1 .46-.299c.277-.065.534-.018.57-.016.012-.015-.63-.022-.672.053.003-.05.619-.072.652-.029.008-.014-.582-.02-.625.062 0-.037.534-.063.592-.013 0 0-.1-.011-.126-.008l.046.008-.075-.001-.043-.004c0-.001.117.014.125.025 0 .002.053-.015-.157-.004 0 0-.128-.024-.337.043-.274.04-.265.412-.68.65"/> - <path d="M246.735 211.168c.025.002.203-.07.375-.388-.049-.086.644-.356.715-.27.003-.002.189 0 .298.018" fill="none"/> - <path d="M247.421 210.569c-.07-.01-.422.286-.39.303-.076.182-.273.3-.296.296m.716-.558c0-.023.475-.068.57-.033M247.363 210.738c-.013-.05.495-.12.542-.085" fill="none"/> - <path d="M247.893 211.06s.022.014-.008-.015l-.022-.025-.012-.021-.018-.016s-.016.007-.144.12c0-.001-.056.041-.121.103-.003-.005-.124.103-.26.178-.146.021-.357.116-.357.153-.013-.056.418-.17.412-.176.03.02-.382.096-.39.18-.014-.05.379-.15.395-.15.02.022-.347.083-.358.162 0 .002.05-.05.071-.05l-.026.019c.013-.013.03-.016.046-.022l.027-.012s-.073.032-.07.048c.003.008-.043-.005.094-.042.003.013.347-.07.74-.433"/> - <path d="M247.829 210.973c-.003-.006-.153.15-.31.26.004.026-.32.215-.405.192-.005-.01-.138.056-.193.124" fill="none"/> - <path d="M247.35 211.357c.024-.024.227-.163.227-.165.072-.076.252-.22.252-.22m-.472.42c.016.017-.303.06-.354.138M247.449 211.383c.02.041-.342.138-.357.149" fill="none"/> - <path d="M248.397 209.586s-.026-.578-.582-.799c-.557-.22-1.19-.248-1.417-.22-.228.028-.266.13-.55.175a2.702 2.702 0 0 0-.589.183s0-.027-.152.248c-.152.276-.404.413-.278.661.126.248.043.292.198.339.156.047-.077-.085-.077-.085s-.975.315-.738.912c.237.598.475.374.546.362.071-.012.552-.26.552-.26l.79-.738s.93-.364 1.031-.392c.102-.027.542.01.542.01l.724-.396z" fill="#c6262c"/> - <path d="M248.397 209.586s-.026-.578-.582-.799c-.557-.22-1.19-.248-1.417-.22-.228.028-.266.13-.55.175a2.702 2.702 0 0 0-.589.183s0-.027-.152.248c-.152.276-.404.413-.278.661.126.248.043.292.198.339.156.047-.077-.085-.077-.085s-.975.315-.738.912c.237.598.475.374.546.362.071-.012.552-.26.552-.26l.79-.739s.93-.363 1.031-.39c.102-.028.542.01.542.01l.724-.397z" fill="none" stroke="#000" stroke-width=".142"/> - <path d="M247.69 210.944c0 .144-.147.33-.328.416-.18.085-.327.037-.327-.107s.146-.33.327-.416c.18-.085.327-.037.327.107"/> - <path d="M243.824 213.587s-.763-1.314 1.355-1.958c0 0 .64.349.788.59 0 0-.37.617-1.576.778 0 0-.542.16-.567.59" fill="#d9c0b9"/> - <path d="M243.824 213.587s-.763-1.314 1.355-1.958c0 0 .64.349.788.59 0 0-.37.617-1.576.778 0 0-.542.16-.567.59z" fill="none" stroke="#000" stroke-width=".142"/> - <path d="M244.046 213.372s.852.18 1.428-.241c.472-.346.64-.188.763-.161 0 0 .025-.43-.27-.751 0 0-.599.494-1.042.628-.443.134-.743.09-.88.525" fill="#d9c0b9"/> - <path d="M244.046 213.372s.852.18 1.428-.241c.472-.346.64-.188.763-.161 0 0 .025-.43-.27-.751 0 0-.599.494-1.042.628-.443.134-.743.09-.88.525z" fill="none" stroke="#000" stroke-width=".142"/> - <path d="M246.416 212.94c.159 0 .32.003.476-.034.018-.004 0-.138 0-.138-.156.037-.317.035-.476.035-.01 0-.01.138 0 .138m-.299-2.207c-.13 0-.091.158-.17.224-.012.01-.007.055-.007.068l.007.07c.079-.066.042-.224.17-.224.01 0 .01-.138 0-.138m.44.297c.066-.124.197-.174.314-.234.025-.012-.009-.133 0-.137-.12.06-.25.112-.318.238-.01.021-.006.062-.005.085 0 .005.005.055.008.048m.57.76a.277.277 0 0 0 .256-.124c.01-.015.006-.051.006-.069 0-.008-.01-.065-.006-.069a.277.277 0 0 1-.256.125c-.007 0-.013.136 0 .137m.45-.161a.804.804 0 0 0 .403-.35c.012-.02.006-.063.005-.085 0-.005-.005-.055-.008-.048a.793.793 0 0 1-.4.345c-.023.01.007.135 0 .138m-.707-.744c-.1.167-.288.253-.401.41-.02.028.012.121.004.133.113-.158.301-.242.401-.41.012-.02.006-.064.005-.085 0-.005-.005-.055-.009-.048m.306 2.198c.36.02.71-.03 1.058-.124.02-.006-.003-.138 0-.138a3.317 3.317 0 0 1-1.058.124c-.008 0-.013.137 0 .138m1.666-.062c.472-.343.87-.635 1.023-1.233.01-.04-.01-.11-.004-.133-.153.593-.553.89-1.02 1.228-.026.02.014.128 0 .138m.28-.82c.336-.2.576-.515.708-.885.013-.037-.011-.112-.004-.133-.131.369-.37.682-.704.88-.026.015.011.131 0 .138m-.158-2.088c.257-.031.537.183.718.348-.016-.014.027-.113 0-.138-.18-.165-.461-.379-.718-.348-.015.002-.005.139 0 .138m6.68 1.041c.292-.472.132-1.064-.17-1.487.007.012-.025.104-.005.133.256.358.426.809.17 1.221-.02.031.012.12.003.133m-5.098-.668c.296.214 1.109.759.887 1.207-.018.034.012.116.004.132.304-.612-.481-1.18-.89-1.477.013.01-.027.118 0 .138m2.292 2.2a1.55 1.55 0 0 0 .076-.391.526.526 0 0 0 0-.097c-.003-.024-.007-.024-.01 0-.012.121-.028.24-.07.354-.01.025-.005.06-.005.085 0 .005.006.054.008.048" fill="#7a2e26"/> - <path d="M253.716 212.47c.177-.03.353-.12.53-.24m-9.023-.258c-.346.212-.892.215-1 .693-.003.007 0 .033.003.03.108-.476.655-.478.998-.688.006-.005-.003-.033 0-.035" fill="#5e3f17"/> - <path d="M244.99 210.442c.148.003.323.081.3.264a.454.454 0 0 0 0 .097c.003.024.006.023.01 0a.713.713 0 0 0-.023-.346c-.048-.117-.174-.15-.287-.153-.01 0-.011.138 0 .138m.715.275a.697.697 0 0 0-.068-.619c.008.013-.024.104-.004.133.076.11.115.22.068.353-.014.038.01.112.004.133m.579-.612c-.037-.24-.121-.509-.343-.634.01.006-.026.123 0 .138.216.122.3.38.336.615.004.027.01-.02.01-.024a.33.33 0 0 0-.004-.095m.51-.124c.031-.224.012-.464-.173-.614.014.012-.028.116 0 .138.103.083.186.217.166.358a.589.589 0 0 0-.003.093c0 .004.006.052.01.025m-.853-.754c.498-.252 1.512-.365 1.902.139-.017-.022.025-.106 0-.138-.39-.503-1.404-.391-1.902-.139-.025.013.009.134 0 .138" fill="#842116"/> - <path d="M244.753 211.307c.113-.168.077-.392-.034-.55.008.012-.024.104-.004.134.03.04.055.083.074.13.024.057-.009.107-.04.153-.012.018-.004.065-.004.085 0 .005.004.055.008.048m5.085 1.46a.67.67 0 0 0 .308-.446c.006-.03.004-.063.003-.094 0-.005-.004-.05-.009-.024a.651.651 0 0 1-.302.426c-.026.017.012.13 0 .138m.763-.062a.405.405 0 0 0 .098-.27c0-.024.004-.06-.005-.084-.003-.006-.008.043-.008.048-.003.059-.048.127-.085.168-.012.013-.006.053-.006.069 0 .006.008.067.006.069m4.606-2.528a.98.98 0 0 1 .09.716.397.397 0 0 0 .007.119c.071-.315.068-.682-.094-.968.01.015-.021.1-.003.133m-.457.468c.09.224.084.457.058.695-.003.018.004.151.01.097.034-.315.056-.626-.064-.925.008.02-.018.096-.004.133m-.432.4c0 .168.003.336-.056.495-.014.038.011.113.004.133.072-.199.066-.418.066-.627 0-.078-.014-.078-.014 0" fill="#7a2e26"/> - <path d="M260.537 224.5l.096.271s.021.053.068.097l-.145-.406-.02.037z" fill="#452c25"/> - <path d="M250.082 207.946c-1.828.105-3.631-1.11-3.631-1.11-2.266-.444-2.397-2.492-2.397-2.492-.907-.345-1.686-2.672-1.686-2.672-1.404.838-3.161.009-3.161.009s0-.346-1.585 0c-1.586.345-1.314-.296-1.314-.296s.634-.642-2.174 0c-2.808.64.227-.839.227-.839-.816.247-3.488.444-3.488.444-.98.044-1.976.528-3.06.837-.675.192-1.829.416-2.412.666-1.557.665-4.677 2.095-7.254 3.107-3.388 1.33-6.073 2.34-5.896 2.298.211-.051 3.678-2.247 8.021-4.216 4.033-1.83 8.662-3.521 10.995-4.184 3.029-1.004 5.509-.524 6.916-.014.68.247 4.427-.115 6.102.082 1.676.197 1.85 2.953 1.85 2.953.318.197.431 2.787.431 2.787s-.928.024.159.172 3.08 1.726 3.08 1.726c.679 0 .756-.024.756-.024s.395-.497.939-.705c.543-.209 1.041-.417 1.653-.463.611-.047 1.474-.052 2.085.017.612.07 1.334.075 2.195.237.86.162.95.209 1.222.301.272.093.516.033.516.033 1.119-.468 3.194-1.295 3.672-1.2 0 0 .783-.197 1.204-.524a112.08 112.08 0 0 0 1.384-1.115s-.664-4.681 4.091-4.222c4.756.459 11.061 1.07 12.326 1.266 1.264.196 5.792 1.49 6.875 2.014 1.084.525 4.197 1.92 5.583 2.533.563.248 2.705 1.197 4.29 1.824 2.38.94 4.158 2.504 4.158 2.504-1.491-.63-2.697-1.352-3.878-1.865-.955-.414-1.954-.607-2.731-.952-1.649-.733-2.919-1.4-3.918-1.865-3.683-1.716-3.65-1.784-5.141-1.901-1.028-.081.739 1.254.739 1.254s-3.371-1.31-4.455-1.77c-1.083-.459-1.986-.655-3.01-.59-1.023.066-1.806-.13-2.407-.327-.602-.197-4.034-.328-4.636-.394a7.812 7.812 0 0 1-1.083-.196l.24.393-1.685-.262-.482.72s-1.625.328-1.745-.196c-.12-.524-.964 2.36-1.385 3.212-.422.852-2.344.57-2.826 1.094-.482.524-1.509.875-1.75 1.006-.24.132-.97.07-1.392.07-.627 0-.093.009-1.121.205 0 0-.889-.008-1.229-.147-.34-.14-1.087-.354-1.463-.462-.514-.147-3.373-.212-3.78-.189-.409.023-1.098.234-1.55.42-.453.184-1.246.67-1.246.786" fill="#dcddde"/> - <path d="M250.082 207.946c-1.828.105-3.631-1.11-3.631-1.11-2.266-.444-2.397-2.492-2.397-2.492-.907-.345-1.686-2.672-1.686-2.672-1.404.838-3.161.009-3.161.009s0-.346-1.585 0c-1.586.345-1.314-.296-1.314-.296s.634-.642-2.174 0c-2.808.64.227-.839.227-.839-.816.247-3.488.444-3.488.444-.98.044-1.976.528-3.06.837-.675.192-1.829.416-2.412.666-1.557.665-4.677 2.095-7.254 3.107-3.388 1.33-6.073 2.34-5.896 2.298.211-.051 3.678-2.247 8.021-4.216 4.033-1.83 8.662-3.521 10.995-4.184 3.029-1.004 5.509-.524 6.916-.014.68.247 4.427-.115 6.102.082 1.676.197 1.85 2.953 1.85 2.953.318.197.431 2.787.431 2.787s-.928.024.159.172 3.08 1.726 3.08 1.726c.679 0 .756-.024.756-.024s.395-.497.939-.705c.543-.209 1.041-.417 1.653-.463.611-.047 1.474-.052 2.085.017.612.07 1.334.075 2.195.237.86.162.95.209 1.222.301.272.093.516.033.516.033 1.119-.468 3.194-1.295 3.672-1.2 0 0 .783-.197 1.204-.524.421-.328 1.384-1.115 1.384-1.115s-.664-4.681 4.091-4.222c4.756.459 11.061 1.07 12.326 1.266 1.264.196 5.792 1.49 6.875 2.014 1.084.525 4.197 1.92 5.583 2.533.563.248 2.705 1.197 4.29 1.824 2.38.94 4.158 2.504 4.158 2.504-1.491-.63-2.697-1.352-3.878-1.865-.955-.414-1.954-.607-2.731-.952-1.649-.733-2.919-1.4-3.918-1.865-3.683-1.716-3.65-1.784-5.141-1.901-1.028-.081.739 1.254.739 1.254s-3.371-1.31-4.455-1.77c-1.083-.459-1.986-.655-3.01-.59-1.023.066-1.806-.13-2.407-.327-.602-.197-4.034-.328-4.636-.394a7.812 7.812 0 0 1-1.083-.196l.24.393-1.685-.262-.482.72s-1.625.328-1.745-.196c-.12-.524-.964 2.36-1.385 3.212-.422.852-2.344.57-2.826 1.094-.482.524-1.509.875-1.75 1.006-.24.132-.97.07-1.392.07-.627 0-.093.009-1.121.205 0 0-.889-.008-1.229-.147-.34-.14-1.087-.354-1.463-.462-.514-.147-3.373-.212-3.78-.189-.409.023-1.098.234-1.55.42-.453.184-1.246.67-1.246.786" fill="#e7e7e7" stroke="#000" stroke-width=".069"/> - <path d="M250.27 207.398s-.192.148-.24.516c-.048.368-.024.22-.024.22" fill="#452c25"/> - <path d="M259.51 206.86c.243.18.493.364.708.58.007.007.076.07.053.02a.579.579 0 0 0-.114-.151 6.973 6.973 0 0 0-.782-.647c-.044-.033.004.048.01.057.035.05.076.104.126.14" fill="#574f4c"/> -</svg> diff --git a/img/flags/1x1/bq.svg b/img/flags/1x1/bq.svg deleted file mode 100644 index 29b5af6..0000000 --- a/img/flags/1x1/bq.svg +++ /dev/null @@ -1,5 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" height="512" width="512" viewBox="0 0 512 512"> - <path d="M0 0h512v512H0z" fill="#21468b"/> - <path d="M0 0h512v341.3H0z" fill="#fff"/> - <path d="M0 0h512v170.7H0z" fill="#ae1c28"/> -</svg> diff --git a/img/flags/1x1/br.svg b/img/flags/1x1/br.svg deleted file mode 100644 index 3421e38..0000000 --- a/img/flags/1x1/br.svg +++ /dev/null @@ -1,45 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" height="512" width="512" viewBox="0 0 512 512"> - <g stroke-width="1pt"> - <path fill-rule="evenodd" fill="#229e45" d="M0 0h512v512H0z"/> - <path d="M261.358 405.394L491.23 256.2 259.967 106.605 29.34 256.56l232.018 148.834z" fill-rule="evenodd" fill="#f8e509"/> - <path d="M361.52 256.004c0 53.622-43.54 97.093-97.25 97.093s-97.248-43.47-97.248-97.093 43.54-97.093 97.25-97.093 97.248 43.47 97.248 97.094z" fill-rule="evenodd" fill="#2b49a3"/> - <path fill-rule="evenodd" fill="#ffffef" d="M232.302 314.156l-3.004-1.734-3.12 1.544.698-3.468-2.41-2.542 3.446-.403 1.62-3.11 1.443 3.216 3.4.617-2.55 2.387m65.648 19.995l-3.005-1.734-3.12 1.544.698-3.468-2.41-2.54 3.446-.405 1.62-3.11 1.443 3.217 3.4.617-2.55 2.387m-27.613-22.869l-2.595-1.498-2.696 1.333.604-2.996-2.082-2.196 2.978-.348 1.398-2.687 1.248 2.78 2.937.533-2.203 2.062m66.231-6.462l-2.55-1.47-2.646 1.31.593-2.943-2.046-2.156 2.924-.343 1.373-2.638 1.226 2.728 2.884.523-2.163 2.026m-66.604-16.77l-3.005-1.734-3.12 1.545.698-3.468-2.41-2.542 3.447-.404 1.618-3.11 1.445 3.218 3.4.618-2.55 2.387M187.95 244.96l-3.005-1.735-3.12 1.544.698-3.47-2.41-2.54 3.447-.404 1.618-3.11 1.444 3.216 3.4.618-2.55 2.387m10.128 43.568l-3.005-1.734-3.12 1.544.698-3.468-2.41-2.542 3.447-.403 1.618-3.11 1.444 3.218 3.4.617-2.55 2.387m100.612-51.337l-2.654-1.53-2.757 1.363.617-3.065-2.13-2.245 3.046-.357 1.43-2.748 1.275 2.843 3.005.545-2.253 2.11m-5.083 29.158l-2.09-1.208-2.17 1.074.485-2.412-1.677-1.77 2.398-.28 1.126-2.164 1.005 2.24 2.366.428-1.775 1.66m-108.421 38.448l-2.006-1.158-2.083 1.03.467-2.314-1.61-1.697 2.302-.27 1.08-2.077.964 2.148 2.27.413-1.702 1.595m152.599 11.561l-1.634-.866-1.698.772.38-1.732-1.31-1.27 1.874-.2.88-1.555.786 1.607 1.85.31-1.387 1.19"/> - <path fill-rule="evenodd" fill="#ffffef" d="M183.477 292.296l-2.006-1.158-2.083 1.03.467-2.314-1.61-1.697 2.302-.27 1.08-2.077.964 2.148 2.27.413-1.702 1.595"/> - <path fill-rule="evenodd" fill="#ffffef" d="M183.477 292.296l-2.006-1.158-2.083 1.03.467-2.314-1.61-1.697 2.302-.27 1.08-2.077.964 2.148 2.27.413-1.702 1.595m32.251 2.322l-2.007-1.157-2.083 1.03.466-2.314-1.61-1.697 2.302-.27 1.08-2.077.965 2.148 2.27.413-1.703 1.594m-3.65 12.952l-2.004-1.157-2.084 1.03.466-2.314-1.61-1.698 2.302-.27 1.08-2.077.965 2.148 2.27.413-1.702 1.594m66.625-17.006l-2.006-1.157-2.083 1.03.465-2.315-1.61-1.696 2.302-.27 1.08-2.076.965 2.148 2.27.412-1.703 1.594m-19.138 2.323l-2.005-1.158-2.083 1.03.466-2.314-1.61-1.697 2.302-.27 1.08-2.077.965 2.15 2.27.41-1.703 1.595m-52.457-4.452l-1.257-.726-1.305.646.292-1.45-1.008-1.064 1.442-.17.676-1.3.604 1.345 1.423.258-1.067 1m127.97 34.606l-2.005-1.158-2.084 1.03.466-2.315-1.61-1.697 2.302-.27 1.08-2.076.965 2.148 2.27.413-1.703 1.593m-15.883 4.454l-1.662-.96-1.724.855.386-1.923-1.333-1.41 1.905-.223.895-1.725.8 1.783 1.88.343-1.41 1.324m7.907 1.752l-1.548-.894-1.608.796.36-1.788-1.242-1.31 1.775-.21.834-1.603.743 1.66 1.75.318-1.312 1.23m22.197-17.353l-1.49-.86-1.55.766.347-1.72-1.196-1.262 1.71-.2.804-1.543.717 1.596 1.687.305-1.265 1.185m-29.55 31.881l-1.946-1.063-2.022.947.453-2.126-1.562-1.557 2.233-.246 1.05-1.906.935 1.97 2.204.38-1.653 1.462m.418 10.861l-1.775-1.062-1.844.946.414-2.125-1.425-1.557 2.036-.247.957-1.906.853 1.97 2.01.38-1.508 1.463m-14.432-17.581l-1.49-.86-1.55.765.347-1.72-1.195-1.26 1.71-.202.803-1.543.717 1.596 1.687.306-1.265 1.184m-13.56 1.734l-1.49-.86-1.547.765.346-1.72-1.197-1.26 1.71-.202.803-1.543.717 1.596 1.687.306-1.265 1.184M265.07 291.38l-1.492-.86-1.548.766.347-1.72-1.196-1.26 1.71-.2.804-1.545.716 1.598 1.687.306-1.265 1.184m2.847 43.477l-1.264-.73-1.31.65.293-1.457-1.014-1.07 1.448-.17.68-1.306.607 1.352 1.43.26-1.072 1.002m-35.176-66.052l-3.004-1.734-3.12 1.545.698-3.468-2.41-2.542 3.446-.404 1.62-3.11 1.443 3.218 3.4.618-2.55 2.387"/> - <path d="M355.113 290.934c1.482-3.876 3.394-9.72 4.41-15.086-51.653-45.375-109.233-68.618-181.99-63.836-2.607 5-4.695 10.236-6.456 15.9 86.207-8.223 149.396 29.943 184.038 63.022z" fill-rule="evenodd" fill="#fff"/> - <path d="M331.893 265.425l1.845 1.008c-.29.654-.367 1.226-.236 1.714.137.493.476.922 1.017 1.288.573.392 1.086.564 1.537.518.457-.046.797-.233 1.018-.56.14-.21.196-.43.17-.658-.02-.23-.146-.503-.377-.82-.16-.213-.548-.665-1.165-1.354-.794-.884-1.267-1.63-1.42-2.24-.212-.854-.083-1.63.39-2.332.304-.45.713-.786 1.228-1.005.524-.22 1.095-.27 1.71-.15.618.12 1.268.41 1.944.87 1.107.753 1.776 1.562 2.004 2.427.233.87.09 1.72-.43 2.55l-1.833-1.13c.23-.507.286-.944.166-1.313-.11-.37-.418-.725-.92-1.066-.517-.35-.994-.518-1.43-.504a.776.776 0 0 0-.654.357.833.833 0 0 0-.098.718c.098.343.51.91 1.24 1.704.726.793 1.222 1.44 1.486 1.943.27.5.393 1.02.367 1.562-.017.538-.216 1.087-.592 1.647a3.133 3.133 0 0 1-1.38 1.138c-.58.252-1.2.314-1.86.182-.657-.134-1.368-.462-2.133-.983-1.115-.756-1.8-1.596-2.05-2.517-.245-.924-.094-1.923.458-2.992zm-8.753-5.745l1.886.93c-.263.665-.318 1.24-.167 1.723.157.486.51.903 1.066 1.247.59.368 1.108.52 1.557.455.457-.066.79-.264.995-.6a.957.957 0 0 0 .146-.664c-.03-.228-.167-.497-.412-.805-.167-.207-.572-.64-1.218-1.306-.828-.853-1.33-1.58-1.508-2.18-.246-.848-.148-1.63.293-2.348a2.767 2.767 0 0 1 1.188-1.053c.515-.24 1.083-.316 1.702-.222.623.097 1.284.36 1.978.794 1.138.705 1.837 1.487 2.1 2.343.267.86.16 1.713-.326 2.566l-1.88-1.056c.21-.514.25-.954.115-1.317-.128-.366-.45-.708-.963-1.028-.532-.332-1.015-.48-1.45-.448a.773.773 0 0 0-.638.384c-.132.215-.156.453-.07.72.112.338.546.888 1.306 1.653.757.76 1.28 1.388 1.563 1.878.29.49.434 1.005.43 1.546.005.54-.173 1.096-.525 1.672-.322.52-.77.917-1.336 1.193-.568.275-1.186.36-1.85.256-.66-.108-1.384-.41-2.17-.897-1.144-.713-1.86-1.523-2.148-2.434-.285-.914-.174-1.916.335-3.006zm-10.83-2.903l5.547-9.123 6.738 4.13-.94 1.544-4.9-3.006-1.232 2.022 4.562 2.797-.935 1.537-4.562-2.795-1.51 2.483 5.077 3.11-.936 1.54-6.91-4.238zm-15.778-12.957l.823-1.6 4.118 2.13-1.94 3.785c-.603.182-1.36.225-2.275.13-.907-.1-1.75-.35-2.53-.753-.99-.512-1.746-1.163-2.268-1.96-.52-.8-.77-1.68-.743-2.647.03-.97.277-1.91.745-2.822.507-.99 1.167-1.76 1.976-2.317.805-.555 1.714-.83 2.72-.83.77-.004 1.605.232 2.51.696 1.175.61 1.965 1.332 2.366 2.17.41.836.486 1.738.227 2.71l-2.08-.626a2.226 2.226 0 0 0-.19-1.492c-.225-.462-.614-.835-1.163-1.12-.837-.433-1.637-.51-2.406-.233-.762.278-1.41.938-1.947 1.984-.58 1.128-.766 2.104-.557 2.93.212.817.72 1.437 1.532 1.857.4.207.84.336 1.32.387.486.05.93.037 1.335-.038l.62-1.207-2.19-1.132zm-68.807-17.062l1.55-10.574 3.182.47.856 7.494 2.944-6.933 3.192.47-1.55 10.576-1.976-.29 1.222-8.325-3.312 8.015-2.047-.303-.865-8.632-1.22 8.323-1.977-.29zm-10.757-1.25l.995-10.644 7.86.743-.166 1.8-5.72-.54-.223 2.36 5.32.502-.166 1.793-5.322-.502-.27 2.897 5.92.557-.166 1.795-8.062-.76z" fill="#309e3a"/> - <g stroke-opacity=".502"> - <path d="M181.37 218.85c.03-1.087.216-1.997.56-2.726.257-.538.6-1.017 1.027-1.438.432-.42.9-.73 1.407-.924.67-.263 1.44-.384 2.304-.36 1.57.043 2.81.565 3.72 1.567.92 1.002 1.354 2.373 1.307 4.112-.047 1.724-.55 3.063-1.512 4.014-.96.946-2.222 1.398-3.784 1.355-1.585-.042-2.83-.56-3.737-1.552-.908-.998-1.34-2.347-1.292-4.047z" fill="#309e3a"/> - <path d="M183.592 218.83c-.033 1.21.22 2.137.76 2.778.54.638 1.238.968 2.095.99.856.025 1.567-.265 2.13-.866.568-.608.87-1.53.903-2.77.033-1.224-.21-2.145-.73-2.762-.518-.617-1.218-.937-2.104-.962-.885-.024-1.607.263-2.167.86-.56.593-.856 1.504-.888 2.733z" fill="#f7ffff"/> - </g> - <g stroke-opacity=".502"> - <path d="M193.99 224.365l.125-10.688 4.524.054c1.137.015 1.96.12 2.472.322.516.195.926.54 1.23 1.035s.452 1.057.445 1.69c-.01.8-.252 1.462-.728 1.98-.476.516-1.182.835-2.12.96.463.278.844.582 1.14.91.3.33.702.913 1.206 1.75l1.276 2.1-2.57-.03-1.528-2.344c-.54-.837-.914-1.364-1.114-1.58a1.607 1.607 0 0 0-.642-.453c-.226-.084-.586-.13-1.08-.135l-.435-.006-.053 4.46-2.15-.025z" fill="#309e3a"/> - <path d="M196.22 218.223l1.59.02c1.032.012 1.676-.025 1.934-.11.257-.084.46-.232.607-.444s.224-.48.23-.8c.003-.36-.09-.65-.282-.87-.186-.227-.453-.372-.8-.434-.175-.026-.7-.044-1.57-.055l-1.677-.018-.03 2.71z" fill="#fff"/> - </g> - <g stroke-opacity=".502"> - <path d="M206.153 214.207l3.924.2c.885.045 1.555.147 2.012.307.613.216 1.132.57 1.552 1.065.422.492.73 1.086.93 1.783.196.692.27 1.537.22 2.536-.044.878-.192 1.63-.44 2.255-.307.764-.717 1.372-1.236 1.828-.39.345-.907.603-1.55.775-.482.127-1.12.17-1.913.13l-4.038-.206.538-10.675z" fill="#309e3a"/> - <path d="M208.213 216.11l-.356 7.072 1.603.08c.6.033 1.034.02 1.303-.034.352-.07.648-.204.886-.4.242-.198.447-.53.615-1 .17-.47.276-1.12.318-1.945s0-1.464-.122-1.913c-.122-.45-.308-.803-.557-1.065a2.043 2.043 0 0 0-.967-.552c-.297-.084-.883-.148-1.758-.192l-.965-.05z" fill="#fff"/> - </g> - <g stroke-opacity=".502"> - <path d="M258.478 233.293l2.486-10.393 3.355.81c1.27.305 2.086.557 2.447.755.556.298.97.758 1.246 1.38.275.615.313 1.337.116 2.164-.153.637-.396 1.146-.732 1.525-.333.38-.71.65-1.128.816a3.08 3.08 0 0 1-1.198.23c-.522-.022-1.257-.147-2.203-.375l-1.363-.33-.938 3.922-2.092-.504z" fill="#309e3a"/> - <path d="M262.64 225.16l-.707 2.95 1.144.275c.825.198 1.388.277 1.69.234.306-.043.562-.16.773-.354.215-.193.36-.443.433-.75.09-.38.055-.717-.107-1.016-.164-.3-.407-.52-.73-.663-.24-.108-.734-.252-1.487-.434l-1.01-.244z" fill="#fff"/> - </g> - <g stroke-opacity=".502"> - <path d="M268.373 236.257l3.538-10.08 4.27 1.51c1.072.38 1.82.746 2.238 1.1.426.353.703.81.833 1.378s.09 1.148-.12 1.743c-.264.757-.705 1.303-1.322 1.642-.615.334-1.386.41-2.312.226.348.412.61.82.785 1.228.182.41.375 1.092.585 2.046l.536 2.4-2.424-.857-.695-2.712c-.245-.967-.428-1.585-.55-1.856a1.623 1.623 0 0 0-.462-.635c-.187-.155-.513-.313-.98-.48l-.41-.144-1.477 4.21-2.027-.72z" fill="#309e3a"/> - <path d="M272.438 231.163l1.5.53c.973.344 1.593.518 1.864.52.27.003.51-.07.72-.225.207-.152.363-.38.47-.683.118-.34.123-.645.013-.915-.104-.274-.31-.496-.62-.668-.157-.08-.646-.267-1.468-.557l-1.582-.56-.897 2.558z" fill="#fff"/> - </g> - <g stroke-opacity=".502"> - <path d="M280.88 235.87c.323-1.04.75-1.863 1.276-2.47.394-.45.85-.817 1.378-1.105a4.166 4.166 0 0 1 1.602-.507c.718-.072 1.49.022 2.317.28 1.498.47 2.55 1.31 3.157 2.524.612 1.214.66 2.653.144 4.314-.51 1.648-1.358 2.798-2.54 3.452-1.18.65-2.516.74-4.01.272-1.51-.472-2.57-1.31-3.174-2.512-.605-1.208-.654-2.623-.15-4.247z" fill="#309e3a"/> - <path d="M283.027 236.47c-.36 1.154-.366 2.114-.02 2.88.348.76.93 1.267 1.75 1.524.817.255 1.578.17 2.283-.256.712-.428 1.252-1.235 1.62-2.418.362-1.17.376-2.122.04-2.86-.328-.733-.917-1.233-1.762-1.497-.846-.265-1.618-.186-2.317.237-.697.418-1.228 1.214-1.593 2.39z" fill="#fff"/> - </g> - <g stroke-opacity=".502"> - <path d="M301.692 250.754l4.89-9.494 4.02 2.087c1.01.526 1.7.992 2.067 1.402.37.406.584.9.634 1.48s-.07 1.147-.358 1.71c-.367.71-.88 1.192-1.538 1.44-.655.247-1.427.214-2.32-.096.288.456.49.9.61 1.326.12.43.22 1.132.295 2.107l.2 2.45-2.283-1.184-.316-2.782c-.11-.993-.206-1.63-.29-1.914a1.611 1.611 0 0 0-.37-.694c-.163-.178-.466-.38-.904-.61l-.387-.2-2.04 3.963-1.91-.99z" fill="#309e3a"/> - <path d="M306.418 246.26l1.412.733c.916.477 1.508.734 1.776.775.267.04.516 0 .743-.123.226-.123.41-.327.56-.613.164-.32.21-.62.138-.903-.065-.287-.24-.537-.522-.75-.144-.1-.603-.353-1.378-.755l-1.488-.774-1.242 2.41z" fill="#fff"/> - </g> - <g stroke-opacity=".502"> - <path d="M341.19 270.26c.607-.9 1.25-1.567 1.933-1.996a5.027 5.027 0 0 1 1.636-.658 4.17 4.17 0 0 1 1.678-.02c.708.14 1.42.453 2.138.94 1.3.883 2.065 1.993 2.298 3.33.237 1.34-.13 2.73-1.103 4.172-.962 1.428-2.102 2.286-3.42 2.57-1.318.278-2.623-.022-3.92-.9-1.31-.892-2.083-2-2.317-3.327-.232-1.33.127-2.7 1.077-4.11z" fill="#309e3a"/> - <path d="M343.073 271.443c-.675 1.003-.958 1.92-.847 2.752.115.83.526 1.483 1.235 1.966.712.483 1.465.622 2.263.42.805-.206 1.553-.82 2.245-1.848.683-1.014.97-1.923.86-2.724-.104-.8-.523-1.447-1.257-1.946s-1.495-.647-2.285-.444c-.79.198-1.525.807-2.212 1.825z" fill="#fff"/> - </g> - <path d="M246.427 228.95l1.714-7.504 5.543 1.278-.288 1.267-4.032-.927-.384 1.663 3.754.866-.29 1.262-3.75-.863-.47 2.042 4.176.962-.288 1.265-5.685-1.31z" fill="#309e3a"/> - </g> -</svg> diff --git a/img/flags/1x1/bs.svg b/img/flags/1x1/bs.svg deleted file mode 100644 index d4e24ad..0000000 --- a/img/flags/1x1/bs.svg +++ /dev/null @@ -1,13 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" height="512" width="512" viewBox="0 0 512 512"> - <defs> - <clipPath id="a"> - <path fill-opacity=".67" d="M56.618 26.364h480.31v480.31H56.618z"/> - </clipPath> - </defs> - <g fill-rule="evenodd" clip-path="url(#a)" transform="matrix(1.066 0 0 1.067 -60.354 -28.133)"> - <path fill="#fff" d="M990.01 506.18H9.39V27.64h980.62z"/> - <path fill="#ffe900" d="M990.01 370.57H9.39V169.25h980.62z"/> - <path fill="#08ced6" d="M990.01 506.18H9.39V346.67h980.62zm0-318.89H9.39V27.78h980.62z"/> - <path d="M8.925 25.872c2.177 0 392.37 236.97 392.37 236.97L7.835 505.382 8.92 25.872z"/> - </g> -</svg> diff --git a/img/flags/1x1/bt.svg b/img/flags/1x1/bt.svg deleted file mode 100644 index 37f60c9..0000000 --- a/img/flags/1x1/bt.svg +++ /dev/null @@ -1,91 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" height="512" width="512" viewBox="0 0 512 512"> - <path fill="#ffd520" d="M0 0h512v512H0z"/> - <path d="M0 512h512V0z" fill="#ff4e12"/> - <g stroke="#000" stroke-width=".521"> - <g fill="#fff"> - <path d="M281.885 162.5c-3.89-1.382-6.403.628-6.276 5.65.123 5.023 2.762 7.91 6.653 6.027l-.377-11.677z" stroke-width=".40638"/> - <path d="M285.301 153.093c-3.24-2.558-6.263-1.462-7.758 3.335-1.495 4.796.075 8.379 4.365 7.845l3.393-11.18z" stroke-width=".40638"/> - <path d="M290.699 143.99c-2.792-3.045-5.951-2.448-8.197 2.048-2.242 4.495-1.267 8.282 3.055 8.443l5.142-10.491zM287.157 188.24c-4.77 1.758-5.274 8.287-2.258 12.305 3.012 4.018 8.538 4.771 11.55 0l-9.29-12.308z" stroke-width=".40638"/> - <path d="M281.635 174.426c-4.52-1.507-8.593 4.565-9.292 10.045-.878 6.906-10.673 9.165-5.272 19.588 1.128-6.655 5.525-10.296 9.04-10.547 3.516-.252 8.79-1.005 11.05-5.274l-5.526-13.812zM295.948 201.297c-5.275 1.255-6.029 8.287-2.262 13.31 3.224 4.3 13.31 3.264 13.059-1.005l-10.797-12.305zM310.893 243.612c.25-4.52-7.03-6.278-10.547-5.4-3.516.88-10.234-.125-11.803-3.892-1.255 3.014.565 6.278 5.651 7.91 3.848 1.237 3.767 4.019 2.636 5.275 2.89.502 11.427.502 14.063-3.893z" stroke-width=".40638"/> - <path d="M306.751 214.736c-5.148-2.26-8.2 1.183-10.17 4.52-2.889 4.897-11.803-1.38-14.816 5.149 4.081-1.758 8.235 1.99 10.17 3.264 5.524 3.641 16.197 2.511 17.705-6.027l-2.89-6.906z" stroke-width=".40638"/> - <path d="M309.762 220.758c-5.148 3.892-7.157 8.538-7.03 11.677.127 3.14 4.52 10.045 9.292 10.422 2.763-5.65 4.144-17.58-2.262-22.1zM288.421 244.992c0-1.883 2.763-2.636 4.644-2.009 1.885.628 4.771 2.512 3.767 4.52l-8.41-2.51zM260.037 234.696c-.5-2.26 3.14-6.152 8.037-4.018 4.894 2.135 5.525 6.279 3.513 7.911l-11.55-3.892z" stroke-width=".40638"/> - <path d="M271.963 238.838c-.377-1.256 3.15-3.764 9.168-2.26 6.026 1.507 7.504 5.387 7.283 8.413l-16.451-6.153zM259.413 234.696c3.14-2.385 1.95-6.907-.88-8.287-5.149-2.511-3.264-9.04-6.53-10.296-3.263-1.256-6.403-3.516-6.53-5.776-1.63 3.139-.627 6.027 1.635 8.036 2.26 2.01-1.758 10.17 1.128 12.306l11.177 4.018zM192.107 232.941c-2.637-4.143-8.916-3.39-11.552-.502-2.637 2.888-2.26 7.157.251 9.04l11.3-8.538zM207.176 226.787c-1.004-5.524-7.66-6.152-11.3-4.771-3.641 1.381-6.153 6.906-3.767 10.924l15.068-6.153z" stroke-width=".40638"/> - <path d="M217.223 226.03c2.385-4.645-2.26-11.551-7.534-12.556-4.403-.837-9.606-.816-11.3-5.148-1.068 3.767 1.758 6.153 5.022 8.288 3.264 2.134-.628 7.66 4.646 10.798l9.166-1.381z" stroke-width=".40638"/> - <path d="M216.724 226.194c-1.1-3.328 1.13-7.755 5.64-7.445 4.513.31 7.083 3.589 5.094 7.687l-10.735-.242z" stroke-width=".40638"/> - <path d="M226.762 226.444c-.62-3.45 2.208-7.52 6.63-6.58 4.424.94 6.507 4.548 3.966 8.327l-10.596-1.747z" stroke-width=".40638"/> - <path d="M236.738 228.027c-.448-3.476 2.58-7.4 6.952-6.24 4.371 1.16 6.273 4.867 3.543 8.513l-10.495-2.273zM160.97 285.552c-8.414 0-10.468 2.003-11.678 10.673-1.507 10.798 13.184 12.054 11.677-10.673z" stroke-width=".40638"/> - <path d="M164.737 274.25c-12.933-4.897-19.964 15.57-32.772 11.929 4.583 7.282 15.692.013 19.839.753 7.031 1.256 22.224-1.381 12.933-12.682zM156.32 302.252c-6.403-2.888-13.31 6.906-12.054 11.175 1.595 5.423 16.198 1.005 12.054-11.175zM126.439 344.442c3.516 1.001 7.784 3.013 7.031 9.792-.753 6.78-13.56 20.592-25.112 21.346-11.552.754-15.696 14.69-25.615 10.797 9.291-1.755 9.291-12.304 16.574-15.567-5.274-1.885-8.036 10.046-14.816 10.046-6.78 0-10.045 10.796-18.332 10.042-8.288-.75-9.16 13.146-25.74 13.312-12.682.124-28.377 14.94-34.028 8.538 12.306-1.758 17.271-8.577 24.61-16.074 11.804-12.051 25.114-6.653 29.634-17.326a30.86 30.86 0 0 1-17.83 5.275c-7.723-.16-16.198 12.304-24.862 6.78 5.023-.628 8.288-2.763 13.561-8.288 5.4-5.659 13.325-2.002 19.588-7.784 9.794-9.042 18.207-1.508 27.624-12.808-2.637-1.255-8.288-.377-13.561 2.385-5.274 2.763-12.054-1.885-18.081 1.381.753-7.407 14.816-3.169 23.606-8.287 9.92-5.776 18.144-4.082 25.992-3.39-10.924-.062-15.193-10.423-30.26-7.41-6.572 1.316-11.803-9.039-18.333-3.767.188-3.89 7.032-7.03 14.064-3.263 7.03 3.767 9.865-3.296 23.857 5.525 5.775 3.64 15.695-2.262 21.973 1.632-.816-2.386-4.395-3.894-8.601-3.578 2.637-5.399 19.65-4.71 27.059.692z" stroke-width=".40638"/> - <path d="M137.616 336.276c-5.525-4.27-13.184.88-18.458-1.13 0 3.514 1.758 8.79 7.534 10.798 1.758-1.255 9.668-8.161 10.924-9.668z" stroke-width=".40638"/> - <path d="M146.282 324.1c-8.664-4.395-10.17 6.529-16.951 4.269.251 3.14 2.763 7.032 8.287 7.91l8.665-12.179z" stroke-width=".40638"/> - <path d="M151.43 314.178c-12.808-5.022-14.44 7.283-21.973 4.897 1.758 4.27 12.556 6.53 18.08 5.023l3.893-9.92zM169.003 260.312c-3.39-4.772-10.547-.88-11.677 4.77-1.13 5.651 1.632 13.562 6.404 11.804l5.273-16.574z" stroke-width=".40638"/> - <path d="M177.67 245.242c-5.902-1.381-12.683-.753-11.93 5.023-2.26 1.004-2.887 8.413 3.265 10.044l8.664-15.068z" stroke-width=".40638"/> - <path d="M181.561 241.35c-5.776-6.78-12.217-6.623-15.82-3.767-6.655 5.273-13.122 2.26-13.31 7.534 4.018-3.077 7.533.627 10.798-.503 3.265-1.13 5.65 5.148 14.691 2.512l3.641-5.776zM167.623 342.687c.879 1.632 6.278 2.386 8.915-.377 3.495-3.663-.377-13.813-5.902-14.566-5.524-.754-6.026 11.427-3.013 14.943z" stroke-width=".40638"/> - <path d="M161.344 342.937c7.91 2.886 11.3-3.643 7.031-7.786-1.13 1.382-5.274 6.404-7.031 7.786z" stroke-width=".40638"/> - <path d="M131.712 353.732c-1.507 4.52-9.293 5.275-18.082 19.338-8.79 14.062-17.202 8.16-19.337 17.829 10.548-8.538 18.831-2.867 25.113-11.3 9.543-12.81 17.4-10.97 21.095-19.589 5.273-12.304 28.377-12.054 29.632-31.39-7.785-1.507-32.395 19.336-38.421 25.111zM329.855 163.88c10.045 3.265 10.296 16.323 21.846 20.592 11.554 4.27 12.685 14.565 22.1 12.054-8.789-2.385-8.162-12.556-17.327-15.068-10.75-2.945-14.817-19.337-23.357-21.847M375.937 232.06c1.758 4.018 1.508 11.175-4.771 13.059 3.39 2.134 8.41.125 11.173-4.52-4.143 9.165-1.38 17.453 5.148 19.085-3.14-6.403 3.894-9.417 1.635-13.56 4.144 1.757 7.784 7.408 7.657 10.923 5.402-6.027-4.017-14.063-2.259-19.713l-18.583-5.273zM310.893 296.597c-6.152-5.4-8.778 1.412-11.804-.942-2.824-2.197-6.59-2.511-8.034-.314 5.275.189 2.698 4.27 12.932 5.274-10.235.69-8.35 12.117-15.194 11.552 7.283 6.906 11.05-6.153 16.952-4.018-1.758.502 2.762 4.646-.377 10.17 5.086-.125 7.156-7.157 7.787-10.798l-2.262-10.924zM175.407 355.237c-2.26-1.881-8.79-2.762-11.3-1.254-2.512 1.505-1.633 1.882 1.38 2.135 3.014.25 6.906 5.125.377 5.398-3.013.124-2.008 7.407-8.287 7.911 2.574 3.14 9.92 1.066 12.556-2.385-.502 2.824 3.265 5.398 1.758 8.788 4.646.504 1.946-9.416 9.292-8.915-3.013.377-1.758 7.157 3.516 5.398-3.139 1.508-1.507 5.148 2.009 4.27-2.26.755-3.014 3.641.125 5.276 3.014-4.144-.376-18.96-11.426-26.62zM448.89 216.694c9.61 0 17.4-7.792 17.4-17.403 0-9.61-7.79-17.402-17.4-17.402-9.613 0-17.404 7.792-17.404 17.402 0 9.61 7.79 17.403 17.404 17.403z" stroke-width=".40638"/> - <path d="M357.981 237.715c5.275-5.023 13.313-7.534 18.834-3.767 5.525 3.767 23.859 8.287 32.9 2.009 9.038-6.278 13.309-9.543 17.326-8.79 3.016 4.52 6.656 6.655 11.176 7.032 1.382 1.507 6.28 2.762 9.042 2.385 4.017 1.005 8.915-.25 12.805-4.52 6.03.88 11.678-3.641 13.813-10.421 6.402-.754 6.78-7.911 2.762-12.682-3.767-.754-.877-13.436-14.566-10.924 5.778 3.515 1.38 10.547 6.155 13.812-3.266 0-7.472 1.381-8.476 6.278 1.254-3.39-.189-5.65-1.07-6.403.127-2.888-6.275-9.983-12.304-7.409 4.332.942 1.885 7.911 5.025 10.547-2.262.126-4.648 1.256-6.029 3.265-1.632-2.888-7.407-5.901-10.923-6.153 0-1.004-.189-3.013-.627-4.017-1.57-3.014-2.89-6.592-2.262-11.175-3.013 3.264-5.525 7.785-7.03 11.049-4.771-3.265-16.575 1.507-22.1 2.762-5.525 1.256-24.108-1.757-28.378-6.278-4.268-4.52-12.555-7.283-20.339-9.542-10.705-3.107-10.8-14.817-22.604-22.853-.25 14.566 21.85 60.773 26.871 65.795zM234.929 348.709c9.292 0 16.825-7.534 16.825-16.826 0-9.291-7.533-16.824-16.825-16.824-9.292 0-16.826 7.533-16.826 16.824 0 9.293 7.533 16.826 16.826 16.826z" stroke-width=".40638"/> - <path d="M194.743 335.776c3.39 4.395 9.166 4.145 11.552 3.768 2.01 5.272 8.412 5.148 11.175 8.034 2.763 2.89 12.178 2.639 14.94 1.004-2.508-.25-5.774-1.755-8.913-4.394-3.79-3.181-2.009-9.542-5.022-11.802 2.26-2.511 2.636-6.655 2.134-8.287 2.386-1.382 4.144-3.642 4.395-4.772 4.144-.25 7.784-2.385 9.292-4.018 2.135 2.01 7.533-.627 10.423 2.763.627-8.288-7.283-12.682-12.558-9.92-2.135-1.13-7.785-.376-8.789 1.13-1.758-.753-6.655 1.758-8.915 3.39 2.511-1.38 2.888-5.524 1.883-7.03 2.135-.88 4.52-3.768 4.771-5.902 3.014.502 7.533-1.507 9.542-1.005-3.263-4.269-8.662-5.776-14.187-5.399-5.714.314-8.161 4.332-8.915 8.664-3.39 2.009-4.52 8.79-3.264 11.175-1.947-.062-3.768 1.821-4.52 2.888-2.638-1.13-6.405-1.946-9.104-1.946M191.857 307.275c-1.13-3.264.367-6.203 1.13-8.789 1.946-6.591.754-8.287-5.148-7.408-.502 3.139 2.512 13.436 4.018 16.198z" stroke-width=".40638"/> - <path d="M187.528 291.45c1.507 1.506 6.844 2.197 7.409-2.575.648-5.477-1.57-7.597-6.341-5.462-.377 1.256-.817 6.404-1.068 8.036z" stroke-width=".40638"/> - <path d="M188.66 283.228c2.008.816 6.34 2.448 8.726-2.198 2.001-3.896-.628-6.906-4.771-6.655-1.005 1.13-3.014 5.149-3.956 8.853z" stroke-width=".40638"/> - <path d="M192.364 274c.502 1.507 5.65 6.53 9.417 2.888 3.767-3.64 3.767-9.04-1.883-11.049-1.507.25-6.027 5.525-7.534 8.161z" stroke-width=".40638"/> - <path d="M199.891 265.842c1.13 3.139 4.646 8.538 11.175 6.027 6.53-2.512 3.767-10.673.754-12.306-1.758.126-8.915 3.39-11.929 6.279z" stroke-width=".40638"/> - <path d="M211.825 259.563c-.502 2.762 0 10.296 8.915 10.17 8.914-.125 6.405-10.547 4.144-12.054-3.642 0-9.794.125-13.06 1.883z" stroke-width=".40638"/> - <path d="M225.257 258.05c-1.005 2.134-3.268 16.184 14.189 12.305 2.258-.502 8.16-13.436-14.19-12.305z" stroke-width=".40638"/> - <path d="M234.796 259.305c-1.755 1.758 2.763 15.947 14.567 13.56 11.803-2.385 1.885-15.82-14.567-13.56z" stroke-width=".40638"/> - <path d="M244.843 261.443c-1.882 3.892.945 15.443 15.508 15.443 13.199 0-.692-15.192-15.508-15.443z" stroke-width=".40638"/> - <path d="M256.27 264.836c-.946 2.157-2.103 14.405 15.067 15.443 12.431.754 9.418-16.825-15.067-15.443z" stroke-width=".40638"/> - <path d="M274.732 269.983c-2.132 3.768-4.394 13.185 14.44 13.938 12.068.483 4.648-13.686-14.44-13.938z" stroke-width=".40638"/> - <path d="M290.426 272.87c-2.763 3.767-.728 11.156 6.275 12.556 8.792 1.758 10.046-6.53 4.02-10.547-6.028-4.018-10.295-2.01-10.295-2.01z" stroke-width=".40638"/> - <path d="M298.967 274.624c-2.009 3.516-.764 12.055 12.554 12.055 2.763 0 13.313-10.799-12.554-12.055zM195.882 438.37c10.787 0 19.533-8.747 19.533-19.533 0-10.79-8.746-19.536-19.533-19.536-10.788 0-19.533 8.746-19.533 19.536 0 10.786 8.745 19.533 19.533 19.533z" stroke-width=".40638"/> - <path d="M339.144 154.34c-1.508 1.508-4.644 6.028-5.274 7.786-6.53 19.588 10.9 34.219 21.095 55.247 8.038 16.574 7.033 42.692-5.525 59.266-4.296 5.669-3.012 7.282-8.537 13.058-2.12 2.216-4.521 5.023-3.767 13.06 3.516-1.257 8.538 2.008 9.542 4.77 2.512-1.255 6.028-.753 7.283.754 4.267-2.009 7.784-1.005 11.55 3.014 3.266-.503 6.783 0 10.046 3.515 1.758-3.515 5.274-4.771 7.783-4.018-.25-4.52 4.27-7.784 8.288-6.027-1.255-6.027 4.27-10.547 9.545-8.79 4.518-3.515 13.56-3.766 18.08 1.507-8.037-2.26-7.784 6.279-14.566 5.525 1.758 5.023-2.763 7.911-7.28 9.543 2.886-1.381 6.025-3.014 7.03-1.256 2.512-2.197 7.533-1.38 8.79-.25 3.325-1.068 6.53-.252 8.035 3.766 4.52 2.762 7.533 9.794 4.27 15.068-1.004-5.525-4.77-5.274-6.279-7.534-3.516 1.256-7.033 1.256-8.037-1.005-2.008 2.01-8.788 3.768-11.8.754-1.132 4.52-5.025 8.287-9.546 8.287 1.258 3.516-2.259 9.544-5.021 12.557 4.27 2.258 3.012 7.283 2.008 10.296 6.53 1.004 1.004 6.78 12.305 10.546-5.522 1.758-16.322 0-17.83-6.78-5.525-.25-9.292-5.775-9.038-11.554-4.27-4.017-4.898-9.792 1.004-13.81-5.025 1.507-7.787-6.529-15.07-3.264-3.62 1.624-13.182-1.13-13.056-4.52-1.508 2.51-10.673 1.507-11.93-2.763-3.014 1.633-10.046-1.13-9.92-5.273-3.894 1.758-9.165-1.382-8.915-5.4-3.64-.502-4.017-3.766-3.766-6.529-3.267-1.507-2.386-4.646-1.131-8.412-2.26-2.511-1.255-6.027.503-9.292-2.512-2.511-2.008-5.525-1.257-9.04-12.055-1.005-27.155-3.912-61.776-14.565-52.234-16.072-66.298 21.596-54.746 45.202 13.328 27.237-1.507 33.15 3.014 53.492 4.771 1.004 7.282 5.02 7.031 9.292 2.825.123 4.834 2.76 3.83 7.784 2.385-.44 5.462.25 7.47 2.258 1.759-3.263 7.535-4.017 10.549-.25 6.527-.504 9.793 4.771 9.543 11.3 3.513 6.28 2.259 13.94-1.508 18.834.377-2.635 0-6.402-.124-8.66-.234-4.157-6.028-5.025-5.4-8.415-3.014.25-5.902-1.381-6.906-3.64-1.758 1.505-4.27 2.008-6.404 1.254 3.39 1.508 6.027 7.534 5.022 11.55 1.758 3.016 1.382 8.541-.753 10.927-1.005 4.894-4.771 6.652-9.668 4.517 2.762-1.755 3.767-4.894 3.641-7.533-1.758-1.505-2.637-4.394-2.762-6.153-4.897.754-11.678-3.39-12.928-5.027-10.788 0-19.534 8.746-19.534 19.536-.502-4.02-5.583-7.979-4.956-11.369-3.013-9.292 1.256-17.956 13.561-19.711-1.506-3.517 3.767-7.16 1.758-11.177-2.566-5.132-7.282-11.804-14.314-19.588 4.27-7.283 3.014-17.076.503-23.103-3.607-8.655-7.032-6.53-19.84 7.533-20.872 22.918-48.718 16.575-73.329 31.642-6.54 4.004-13.058 5.525-6.027-1.505 7.032-7.033 25.615-14.062 37.669-20.091 22.573-11.287 41.687-30.135 49.22-66.8 17.704-86.158 82.868-57.758 124.052-41.686 38.665 15.09 31.642-19.086 12.054-39.678-23.543-24.75-18.834-44.198-7.784-59.768 19.838-2.762 57.886 4.144 50.226 10.799z" stroke-width=".40638"/> - <path d="M409.087 365.994c11.869 0 21.492-9.62 21.492-21.49s-9.624-21.492-21.492-21.492c-11.87 0-21.492 9.623-21.492 21.493 0 11.869 9.623 21.489 21.492 21.489z" stroke-width=".40638"/> - </g> - <g fill="none"> - <path d="M327.093 155.34c-4.77 21.094-.754 30.637 6.28 39.928 14.53 19.205 26.116 63.033 9.541 91.658" stroke-width=".40638"/> - <g stroke-linecap="round"> - <path d="M352.202 262.2c2.008-.754 5.775-3.14 6.655-7.283M353.707 253.034c.627-3.641 6.276-5.21 6.402-9.102M353.832 238.838c-.377-3.767 5.651-7.157 4.77-10.924M350.571 225.282c-.503-2.135 5.022-6.153 3.517-9.543M346.43 212.1c-1.131-2.386 2.635-5.148 1.004-7.66M340.4 201.546c-.377-1.632 1.947-5.21.692-7.344M334.37 189.121c.501-.628 2.513-2.135 1.694-4.018M330.229 180.018c.816-.44 3.263-1.193 2.95-3.013" stroke-width=".40638"/> - <path d="M204.54 416.764c-5.023-1.759-11.3.754-12.556 5.024M195.75 425.679c.627-4.267 7.157-6.152 9.165-4.144-4.143-2.258-6.152 5.776-2.511 6.029M236.185 326.362c-3.013 1.507-3.89 7.031 0 11.176M240.7 327.618c-2.131 1.758-2.008 7.031 1.132 8.287-2.636-1.883 0-5.148 1.885-5.274 1.881-.125 3.136 2.135.877 4.395M417.12 340.043c-7.029-1.882-12.68 6.279-6.278 13.563-.124-7.033 4.898-11.678 11.05-10.424M419.063 348.046c-1.729 0-2.7 1.352-2.7 2.668 0 1.381 1.192 2.7 3.139 2.7 1.257 0 2.262-1.442 2.262-2.573M443.86 193.887c1.13 4.269 7.032 6.027 11.676 5.022M455.536 196.149c-3.64.126-6.653-3.265-6.403-6.153 0 2.135 4.898 3.14 6.403 1.758" stroke-linejoin="round" stroke-width=".40638"/> - <path d="M206.295 339.544c-1.004-2.512 3.014-5.024 3.14-7.41.125-2.385 4.52-4.268 9.04.252M216.341 305.645c-.878.377-1.632.879-2.385 1.13M225.007 319.326c-1.067.064-3.264-.062-4.458-.879M220.616 324.1c-.88.44-2.826 1.193-3.956 1.444M177.544 399.939c-.126 2.262 2.135 5.525 3.39 6.53M187.341 394.541c-1.256 1.882-2.009 5.148-1.256 7.407M206.045 402.076c-2.26-1.508-.753-5.401-1.004-7.91-.251-2.513 2.637-6.53 8.287-3.14M184.954 387.763c2.26-.377 4.646-.253 6.153.374M213.58 380.603c-1.004 1.381-1.255 2.89-1.38 3.893M224.126 380.353c-1.758 0-3.265 1.255-4.018 2.512M199.766 316.066c2.01.69 7.22 3.892 7.409 7.22M221.115 299.74c-6.152-.125-8.538-6.403-3.892-6.403M232.168 308.149c-2.386 1.004-1.255 5.148 2.135 7.157M217.472 347.578c-1.193-1.505.377-5.899 4.27-4.583M226.637 393.41c.25-3.828 5.086-6.09 7.033-1.758M208.807 404.33c-.315-4.205 1.82-5.586 3.703-5.837 1.884-.25 4.584 1.317 5.84 4.08M171.39 407.474c.251-2.512 2.386-5.148 4.646-4.771M401.17 295.973c-1.635 1.193-2.7 6.53 3.513 7.032M391.63 304.764c0 .627.816 1.506 1.32 1.883M421.263 314.81c-1.632-1.255-5.84 3.83-2.009 7.534M381.334 357c-.942-3.578 2.386-4.52 5.525-3.767M373.3 331.635c1.882-1.256 3.767-2.637 6.153-3.265M372.294 345.44c0-3.012 1.505-5.521 2.886-6.275M383.339 310.793c-.25 3.641 1.258 7.157 2.389 9.04M413.229 311.043c-1.824.565-3.455 1.255-4.144 2.762M411.216 321.339c.881-.754 1.885-1.633 2.324-2.26M458.68 211.718c0 3.515-4.395 5.399-7.28 3.138M468.226 211.842c1.944 1.507 8.661.064 7.092-3.829M460.06 232.06c-1.382-.251-3.767-1.758-4.771-3.013M473.873 221.64c-2.258.501-3.766 0-4.897-.503M438.212 234.197c1.254 0 4.267-.502 6.34-1.569M434.445 211.975c-1.632-.188-2.828.126-3.767.753M459.748 218.121c-.44 1.57-1.57 4.018-2.951 5.086" stroke-width=".40638"/> - <path d="M430.178 223.652c3.14-1.382 7.033 9.29 14.566 5.524M445.372 218.121c-1.004 1.382-1.631 3.516-1.758 5.4" stroke-linejoin="round" stroke-width=".40638"/> - </g> - <path d="M295.2 201.804c1.003-.126 2.762-.502 3.139-1.758M165.992 318.702c3.768 2.135 6.405 5.776 4.772 11.175M338.637 190.252c1.131.753 5.402.753 7.787-.125M349.44 192.764c-.126 1.758.377 8.412-3.012 9.793M347.685 201.679c3.14 1.005 9.419.628 11.427-5.148M354.713 201.422c1.632 2.51 2.132 7.408-2.762 10.044M355.969 205.571c3.64 1.256 12.054 1.381 11.173-5.776M364.26 205.571c2.513 3.516 13.563 7.66 11.804.377M354.09 215.735c4.266 1.004 10.295-1.884 7.783-9.417M373.924 210.087c.628 2.888 14.69 5.902 12.809-.627M384.096 213.23c2.639 6.028 16.575 5.525 12.18-2.51M394.017 216.99c2.763 3.39 15.07 1.382 10.173-6.78M404.056 216.866c7.66 5.775 16.575-2.512 6.906-8.539M415.358 214.986c6.783 5.399 15.07-4.395 9.168-7.157M361.74 212.724c2.136.628 6.657.376 7.661-3.516M367.708 211.842c-.25 5.714 9.357 7.911 11.804 1.32M376.311 216.74c1.759 3.768 10.17 5.274 11.55-.125M386.482 219.128c1.382 3.767 8.665 3.39 10.673-.503M394.516 221.14c2.26 4.897 11.55 4.897 13.686-2.26M406.575 222.014c3.64 2.26 11.427 1.38 10.797-5.65M415.865 221.39c5.398 4.395 13.059.125 9.292-7.283M424.78 227.162c2.89-.503 4.394-6.278 1.382-7.785M357.856 228.168c6.026-3.265 7.157-8.79 3.013-14.188M363.004 222.645c3.767 2.26 10.924-.125 12.179-5.65M368.152 223.27c2.132 2.762 2.51 6.152-.253 9.29M369.907 226.787c6.653-4.143 14.94 3.516 8.789 8.162M377.567 226.413c1.508-.377 4.144-3.14 4.394-6.278M380.578 229.299c2.762-2.888 21.6 3.014 9.669 9.04M389.368 221.39c3.64 1.38 5.525 6.53 0 8.287M394.142 233.948c4.017-4.144 16.575-1.507 12.054 3.767M403.182 232.31c2.259-7.66 15.695-2.888 11.3.25M400.421 224.65c.377 1.507.5 5.274-2.008 7.283M411.723 223.145c.5 1.255.377 3.64-.754 5.148M420.256 223.27c.754 1.38 2.009 4.017-.754 6.152M312.78 165.51c.124 7.157 2.636 11.929 12.305 7.409M315.791 174.051c-4.77 6.404.627 13.31 10.046 6.404M301.096 177.187c6.53 7.031 18.207 1.883 10.673-8.79M319.683 183.216c-1.257 6.906 4.394 8.288 9.039 5.148M295.324 178.318c1.19 6.943 8.288 12.43 15.194 8.162M303.865 187.865c0 9.92 13.686 11.05 16.825.754M315.791 194.893c4.394 9.04 13.936 5.4 17.076-.125M306.12 180.455c1.757 4.395 5.274 9.292 13.435 5.65M281.011 178.318c1.131 3.641 7.66 8.036 15.194 3.013M285.652 182.967c-4.02 5.901 4.017 11.426 13.686 2.637M290.426 190.252c1.631 8.288 4.894 14.942 16.698 4.27M301.22 198.785c4.271 5.274 10.8 8.538 16.953-.376" stroke-width=".40638"/> - <path d="M322.694 200.29c-.377 6.279.878 9.418 5.775 9.166 3.861-.197 7.534-3.264 9.67-6.529M327.593 209.463c-.127 7.158 5.521 12.808 16.07 5.525M331.984 217.872c-2.009 5.399 4.017 14.188 15.82 9.668M307 203.559c-.75 6.906 5.652 11.552 15.948 2.637M312.024 211.218c.377 5.65 6.78 12.431 16.198 2.637M316.54 218.379c-.754 9.668 8.161 12.43 15.694 5.022M303.108 211.218c2.009.126 3.64-1.632 4.645-2.888M307.375 218.246c1.758.377 4.774-1.256 5.778-3.264M311.774 229.673c2.009 2.135 8.788.628 9.666-2.26M319.309 229.548c3.767 8.79 13.81 8.413 17.953-1.506M335.377 231.56c1.882 5.149 6.656 8.413 14.44 6.655M339.144 236.834c-4.394 7.157 1.382 15.57 11.174 7.282M341.531 247.504c-.5 4.52 3.643 9.668 9.292 10.296M322.944 234.322c-1.508 10.17 5.775 15.068 14.943 9.668M312.273 239.22c2.386 1.884 6.656 2.135 10.673.628M327.842 245.749c-2.262 8.539 6.53 14.691 14.063 5.148M315.666 240.601c.127 4.395 4.398 9.166 11.804 7.785M348.185 257.176c-5.025 3.39-6.03 9.417 1.004 13.309M335.876 255.413c.254 5.148 2.64 8.036 8.288 8.538M328.474 252.777c-7.534 6.906-.127 14.942 8.788 8.162M333.747 263.073c-2.512 7.91 6.906 12.682 11.927 4.646M318.178 246.248c-2.763 7.785.754 12.933 7.156 12.431M308.256 244.743c.377 4.646 4.394 6.278 8.915 5.273M311.142 249.641c-3.39 6.53 1.759 10.045 8.541 7.534M340.275 271.738c-1.13 4.144-.503 7.158 5.649 8.54M340.65 277.643c-7.41 3.39-8.037 10.548-2.262 15.193M334.683 269.672c-3.89 3.515-3.14 9.604 1.13 11.99M301.728 246.755c-4.27 4.207-.189 15.82 9.226 9.481M326.212 261.443c-5.779 4.771-3.14 13.435 6.402 11.049M316.665 257.8c-3.013 8.539-.124 11.552 6.656 11.677" stroke-width=".40638"/> - <path d="M295.449 246.373c-5.148 3.892-3.767 9.417-1.505 11.928 2.259 2.512 6.526 1.382 7.908-1.883M284.646 242.988c-5.775 7.408 0 16.197 8.164 13.56M315.542 264.96c-5.902 2.135-10.404 7.494-6.783 12.18 2.135 2.763 11.427 3.14 14.062-7.534M304.863 258.05c-3.39 4.897-2.262 9.543 4.017 11.928M304.489 267.222c-3.643 2.01-6.029 4.395-5.148 8.79M296.33 259.563c-1.381 5.901.25 9.543 3.89 11.3M296.205 266.59c-5.651-.376-8.537 2.01-6.656 7.534M290.051 267.971c-5.525-2.009-6.406-6.78-4.02-11.803M285.278 263.58c-6.03.25-8.665 3.264-8.665 7.408" stroke-width=".40638"/> - <path d="M277.111 240.094c-4.394 1.883-5.775 7.785-4.144 11.05 1.635 3.264 6.783 3.515 9.923 1.38M264.81 235.453c-4.017 4.52.628 13.31 7.788 11.175M254.515 231.935c-3.767 5.274.377 14.064 10.045 11.552M265.06 267.971c-1.004-6.278 5.525-10.421 13.563-2.26M274.732 253.034c-2.385 2.135-3.513 5.525-3.14 8.288M244.219 228.924c-4.144 7.032.88 13.436 9.795 10.924M267.447 246.373c-5.902 5.901-3.894 11.803.5 15.193M263.68 253.284c-8.915.125-9.416 10.421-2.132 13.686M256.901 242.988c-3.64 2.511-4.77 9.417 1.508 12.18M256.652 258.432c-3.767-1.758-8.288.376-7.911 4.771M250.997 258.557c-3.39-8.037-13.31-6.655-12.428 1.632M253.758 248.635c-2.132.377-6.403 1.632-8.034 4.897M246.356 239.595c-4.017 4.52-.881 9.919 2.385 11.05M234.43 226.912c-.754 5.4 1.38 8.036 8.16 7.534M236.809 233.823c-2.64 6.529.877 9.417 7.657 9.04M238.314 241.857c-4.017 4.771-1.255 9.92 2.636 12.054M236.434 247.886c-7.156-.879-8.287 7.408-5.902 11.3" stroke-width=".40638"/> - <path d="M230.654 226.288c-4.393 1.883-6.904 7.408-4.518 10.798 2.386 3.39 7.157 2.26 9.793.502M227.644 238.589c-3.641 5.524-.377 9.668 3.516 11.3" stroke-width=".40638"/> - <path d="M213.58 225.656c-2.887 3.014-1.13 9.167 5.902 9.292 5.661.102 8.538-5.273 6.78-9.04M218.479 234.946c-2.26 5.023-.88 10.422 7.659 9.542M229.78 252.402c-5.273-2.385-12.305 0-9.29 6.279M219.734 243.487c-2.134 3.013-1.38 7.283 1.005 9.92M219.36 251.52c-3.516.629-6.906 2.512-4.772 8.037M214.08 255.039c-4.52-1.381-10.297 1.883-6.781 6.529M206.552 257.176c-3.892-.628-8.537 3.515-4.77 7.66M200.273 261.443c-3.515.879-7.659 4.897-4.018 8.036M217.98 241.732c-5.023 2.26-5.526 7.91-3.14 12.054M212.699 231.311c-7.534 2.888-7.408 12.933.879 16.072M210.062 245.117c-4.52 2.637-5.399 7.66-2.385 10.924M202.153 227.544c-3.014 1.004-2.762 10.296 5.274 10.045M193.87 230.68c-6.028 4.017 1.255 14.188 11.05 6.905M199.517 240.094c-.879 4.144.251 8.664 6.906 9.167M199.891 245.624c-4.771 1.758-5.65 11.552 3.014 12.305M184.705 236.709c-6.153 5.65 5.022 10.547 9.166 2.386M176.164 246.123c-3.014 3.642 7.533 13.185 12.18-2.762M189.47 243.113c.251 3.766 2.512 6.026 7.157 6.278M196.506 253.034c-7.408 1.13-9.794 10.422-1.507 12.431M182.817 251.778c-.251 3.516 3.39 6.404 7.534 5.776M194.12 265.21c-6.78 1.507-7.66 10.296-1.633 9.794M189.346 283.165c-5.651-1.694-5.777-8.413-.754-10.923" stroke-width=".40638"/> - <path d="M184.705 277.26c-4.771 2.889-2.888 9.795-.377 10.8 2.511 1.004 4.52-.252 4.772-2.386M188.722 295.341c.502 3.265-11.615 2.01-5.4-8.16M183.254 295.91c-4.08 6.404 2.574 11.615 6.78 6.154M183.823 303.633c-1.632 5.148 4.583 8.853 8.6 4.834M170.26 255.413c-2.261 4.646 9.04 6.404 9.793-3.14M167.123 262.324c-2.26 9.04 14.817 7.157 10.422-4.52M177.919 263.83c2.385 1.38 9.543 1.506 11.3-6.153M184.073 264.079c.502 2.385 2.637 5.273 4.645 6.152M175.914 266.466c-.753 4.897 4.143 8.915 9.794 8.538M176.788 271.24c-2.762 3.766-3.642 11.049 5.023 11.551M163.606 272.495c-1.382 3.893 6.78 7.91 11.551 1.507M161.094 282.409c-.691 2.951 6.655 6.906 10.798-5.65M168.629 283.165c1.758 3.14 7.66 5.65 11.3-.502M174.026 286.434c-1.506 4.394 2.637 8.538 7.66 7.282M164.612 285.427c-1.005 6.279 6.278 9.92 10.798 6.655M159.838 288.189c-2.134 8.036 8.162 11.05 12.054 5.022M169.26 295.599c.378 4.52 7.41 8.412 12.934 4.646M156.703 299.366c-.502 2.009 7.91 4.018 9.165-3.014M161.601 301.121c2.009 5.148 8.79 6.404 12.682.126M172.022 303.757c.879 4.772 7.032 7.408 12.43 4.144M186.71 309.787c-1.382 6.404 5.273 11.552 9.416 8.036M176.039 308.656c-2.009 7.032 6.78 11.05 11.677 7.157M165.493 305.138c-.502 6.53 4.646 10.422 10.547 7.533M154.316 305.77c-1.758 4.269 7.534 7.785 11.928 4.144M148.536 317.446c2.386 2.763 10.673 0 11.426-6.152M157.709 315.808c3.013 3.516 10.17 5.4 13.059-2.134M168.254 317.571c-.125 5.4 9.544 9.292 12.682-.628M192.294 318.89c-.88 2.636 1.193 6.842 5.525 7.344M184.322 317.26c-.627 3.013 3.768 7.218 8.414 5.524M193.62 324.037c-1.255 3.265-.189 7.973 4.206 7.91M194.057 330.13c-3.265 2.761-1.884 7.66 2.826 7.848M192.364 334.77c-4.646 3.138-3.013 10.044 3.14 9.67M178.3 321.463c0 6.78 8.413 7.785 10.046 1.507M185.079 326.986c-1.256 4.018 2.009 7.91 7.157 6.78M186.085 375.455c1.13 1.635 5.776-1.128 4.52-3.89-1.255-2.763-6.176-1.261-5.65 1.631M189.47 370.432c.628-5.525-5.901-6.403-7.533-1.632M184.322 366.04c1.633-2.762-3.892-6.529-6.152-2.512M180.18 361.89c1.507-4.02-4.77-5.775-5.273-2.135M173.527 354.48c.754-2.008 7.785-.753 4.772 3.39M183.698 362.897c2.763-2.512-1.883-7.66-4.77-5.775M202.278 370.556c-2.198.25-4.458 1.694-2.826 6.341 1.132 3.224 5.965 3.39 6.655 1.443" stroke-width=".40638"/> - <path d="M199.08 372.88c-2.135-1.38-6.78.943-4.646 5.464 1.607 3.403 5.65 2.009 6.278.25M187.084 379.347c1.066 1.882 6.402 1.07 7.345-1.004M190.726 373.13c1.13-.754 3.202.186 3.641 1.128M190.352 342.18c-3.641 2.386-1.381 9.669 4.269 7.784M189.22 348.085c-2.887 2.258-.25 9.292 5.149 6.656M190.102 354.738c-2.009 2.009-.063 7.595 5.149 6.53M189.346 357.5c-1.13-.504-4.082-.127-5.338 1.754M186.085 332.071c-2.762 2.637-1.444 8.037 3.704 8.476M185.079 337.594c-3.956 1.946-3.956 9.792 3.955 10.107M184.767 346.447c-2.197 1.758-1.13 8.538 4.52 7.657M186.584 353.857c-.816.815-.942 2.889-.25 3.767M184.073 351.283c-2.009.062-4.646 1.508-5.337 3.578M175.095 347.578c.753-2.009 6.97-1.882 7.408 4.02M183.129 344.567c-.88.188-2.574 1.004-3.013 2.7M180.43 326.175c-2.7 2.448-4.018 10.17 4.206 11.676M174.97 342.118c0-2.074 5.588-3.832 7.534-.754M171.39 330.878c.816 1.57 4.708 3.705 7.094 1.947M151.173 318.577c-.126 3.642 2.888 6.906 7.031 6.404 4.144-.502 5.023-4.144 3.767-6.53M158.832 325.106c-2.762 3.39.628 8.162 3.767 6.78M161.975 322.72c1.633-.629 7.032-1.382 8.665 1.13M144.52 323.725c-1.257 1.884 6.529 3.767 9.165.126M151.048 325.73c-.252 2.511 1.004 6.78 7.408 5.023" stroke-width=".40638"/> - <path d="M159.464 334.645c1.004-2.134-3.767-5.65-7.408-1.758-3.642 3.893.502 8.288 2.762 6.78M142.764 326.237c-1.883 3.265 5.4 9.23 9.543 3.705" stroke-width=".40638"/> - <path d="M137.928 331.884c-2.637 2.7.628 7.66 4.584 6.152 3.955-1.506 3.578-5.65 2.637-6.716" stroke-width=".40638"/> - <path d="M132.843 336.907c-2.135 1.946-.064 6.528 2.887 6.528 2.95 0 4.772-2.32 4.206-5.271M144.831 336.533c-.377 2.888 3.892 4.896 6.655 2.199M151.617 333.452c.377-.628.064-1.696-.564-2.198M128.264 340.8c-2.448 1.946 2.826 7.345 6.153 2.385M147.156 339.731c-1.57 1.505.94 5.46 3.452 4.267M138.56 342.492c.377 2.698 5.65 4.706 8.978.566M141.446 345.191c-.816 1.696.817 4.397 2.825 4.02M191.42 360.705c-1.945 3.829 4.27 8.288 8.79 3.64M195.937 366.415c-.942 2.07.188 4.96 1.883 6.025M190.04 370.744c.44-1.885 3.139-3.644 5.588-2.763M186.772 365.783c.376-1.693 2.636-3.39 4.332-2.948M334.62 287.432c-8.914.126-5.148 14.44 2.513 11.552M331.734 297.985c-1.758 2.888 1.632 7.472 5.399 4.772M336.134 303.32c-2.64 4.395 6.78 11.112 10.546 4.206M343.668 310.161c.124 4.144 12.178 6.78 10.423-1.507M352.958 313.172c2.886 4.897 13.686 5.4 12.555-1.883M363.13 316.315c2.261 3.265 12.808 5.274 12.43-1.507M320.307 275.007c1.505 3.892 6.653 5.273 12.305 3.013M317.047 277.768c3.516 2.26-1.632 12.556-7.03 8.412M317.047 284.172c3.893 1.883 8.664.502 10.046-5.023M324.707 283.415c.377 2.888 4.52 5.148 9.919 4.018M315.035 286.434c5.024 4.269-2.26 13.058-5.525 9.04M316.922 289.694c2.386 1.758 8.538.753 9.165-3.892M323.326 289.694c.504 3.013 2.89 4.143 6.279 4.27M315.542 293.836c2.509 3.516 8.788 4.52 11.55-.126M324.324 296.347c-.25 3.39 3.517 6.153 7.41 5.4M310.643 303.882c3.263 1.632 6.78-4.52 4.017-8.789M314.41 310.41c3.894.252 4.395-5.65.755-8.915M323.326 315.808c3.266-.753 2.259-7.91-5.652-8.538M333.24 321.089c3.14-.88.627-8.79-8.034-8.287M345.174 323.85c2.132-3.264-4.898-8.789-10.673-5.901M351.07 328.366c3.894 1.13 6.53-9.165-5.775-7.533M358.23 328.366c3.394-.878 5.78-7.031-4.14-5.022M365.766 328.873c3.012 1.507 4.394-7.282-4.775-4.896M315.16 301.495c3.766 2.135 9.668-.376 9.164-5.148M322.819 300.497c1.258 2.26.754 6.655-1.632 7.785M323.193 305.77c2.513 1.004 5.902.126 7.911-3.892M327.593 305.77c.75 1.758 1.004 5.274-.63 7.032M328.224 308.78c2.763 1.507 6.026-.502 7.407-3.39M333.872 307.9c2.008 1.255 3.766 7.156.377 9.543M336.134 314.685c2.385.126 5.902.126 8.16-2.888M342.662 313.43c2.135.627 4.644 4.143 3.767 7.282M346.554 319.576c2.39-.251 6.53-1.884 7.66-4.772M353.083 316.69c2.012 1.13 3.393 3.515 3.14 6.278M356.219 320.956c2.385-.125 4.52-1.38 5.147-4.018M360.742 318.702c1.759.628 3.894 2.637 4.02 5.023M364.51 322.212c1.758-.251 3.013-1.381 4.144-3.139M373.425 318.827c2.262 2.26-.75 9.794-5.398 8.413M325.206 166.642c-4.648 2.762-17.833 1.883-11.304-9.04M326.462 159.232c-9.165 3.64-20.47-3.39-8.665-11.05M314.66 145.675c-7.66 0-12.808 12.305-2.509 16.574M284.903 150.823c-2.008 3.892 5.148 8.161 10.046 4.27 3.793-3.016 3.513-11.176 1.254-14.315M281.011 160.113c-2.512 8.287 15.948 8.789 13.059-4.395M280.005 172.421c.627 6.278 17.706 4.27 12.178-8.413M294.193 160.487c1.381 1.884 5.148 5.148 11.55 4.52M297.204 151.572c.565 2.26 4.394 4.018 9.292 2.323M125.877 342.617c-4.331 3.078 2.324 7.91 4.771 2.574M122.484 345.004c-4.331 3.074 2.324 7.907 4.772 2.57M118.904 347.328c-4.333 3.078 2.322 7.91 4.771 2.574M115.137 349.465c-4.144 2.197.69 7.596 4.896 2.825M111.057 351.54c-4.144 2.194.691 7.595 4.897 2.824M132.094 345.066c-.064 3.201 6.027 4.52 8.223-.253M135.924 348.022c-1.884 2.386 1.57 5.337 3.453 4.268M127.82 347.578c-.19 2.7 5.084 4.27 7.659 1.32M130.713 350.41c-1.695 2.196 1.632 5.147 3.767 4.266M124.31 350.027c.187 2.135 3.2 4.582 6.466 3.201M126.252 352.913c-1.256 1.13-.628 3.77 1.13 4.586M119.723 352.726c-.502 1.946 2.826 5.401 6.216 3.14M120.41 354.988c-2.01 1.57-1.759 3.955.815 4.267M115.581 354.738c-.25 1.316 1.445 3.452 3.58 3.201M104.84 354.613c-2.008 1.066 3.14 6.53 6.341 1.443M99.88 356.868c-2.511 1.195 3.704 7.221 6.467 1.069M116.143 356.618c-1.947.439-3.202 3.266-1.57 4.394M109.801 357.624c-.25 1.131 2.135 3.013 4.082 2.324M108.171 358.131c-1.883 1.193-.879 4.518 1.319 4.017M101.455 360.323c-1.758 1.316-.565 3.955 1.884 3.328M104.653 360.136c.064.689 1.633 1.758 2.952 1.32M95.364 359.005c-2.197.942-2.072 6.467 5.337 3.454M90.403 361.204c-3.077 1.508-2.072 5.652 4.646 1.697M95.613 363.217c-.816.627-1.694 3.39 1.381 2.32M89.966 364.527c-1.255 1.131-.439 3.455 2.324 2.574M83.5 364.91c-2.26 1.319 2.699 3.077 6.027-.44M85.005 366.54c-1.005 1.004-1.005 3.955 1.632 2.889M78.601 367.733c-1.506 1.13 1.067 2.639 5.776.565M80.481 369.363c-1.758 1.443-1.57 3.263 1.004 2.698M75.27 370.182c-1.945 1.758.88 2.951 4.27 1.505M75.333 372.132c-3.328 1.505-1.883 4.267.188 3.201M186.46 381.734c-.772 1.66 1.758 3.013 4.143 2.636 2.292-.361 4.484-2.25 2.763-4.895M193.487 382.74c2.26 1.758 6.278-.25 6.278-2.89" stroke-width=".40638"/> - </g> - <g fill="#fff"> - <path d="M331.984 116.667c-10.046-5.023-30.888-14.315-36.79-6.78 5.398-2.26 21.219.125 34.278 12.18l2.512-5.4z" stroke-width=".40638"/> - <path d="M338.076 116.137c-11.616-13.531-18.457-10.502-26.81-15.163-7.845-4.379-20.341-5.274-22.762 1.69 11.463-5.582 21.986 3.003 28.45 4.041 8.879 1.426 13.89 8.29 16.488 11.447l4.634-2.015zM381.834 114.405c-6.03-13.812-18.918-10.205-24.612-16.072-8.285-8.538-29.253-16.448-37.918-10.547 19.084-1.005 27.212 13.155 37.417 18.081 7.283 3.516 15.067 11.05 25.113 8.539z" stroke-width=".40638"/> - <path d="M359.237 112.9c-10.296-12.808-26.12-24.109-33.4-19.84 9.542.502 12.555 7.157 19.338 11.427 6.779 4.269 3.766 10.421 14.062 8.413zM310.261 135.504c-10.8-4.018-31.893-6.027-41.688 6.278 16.325 2.763 40.934 1.256 41.688-6.278z" stroke-width=".40638"/> - <path d="M308.256 140.278c-10.8-5.023-19.233 1.992-29.383 1.004-19.335-1.884-33.147-.754-34.905 8.538 11.05-9.919 29.634-1.758 37.167-3.766 7.534-2.01 35.409-.252 44.197 3.515-4.52-5.524-11.55-7.031-17.076-9.291zM342.155 111.519c-2.509-8.287-2.385-17.076 10.046-16.449-3.14-3.892-14.69-5.9-16.575 8.665-13.686-10.045-28.63-11.803-31.389-3.14 7.03-6.026 17.953-1.632 31.011 13.185 1.131-.628 4.144-1.883 6.907-2.26z" stroke-width=".40638"/> - <path d="M323.326 122.946c-7.784-5.022-18.333-13.184.127-16.449-7.911-4.269-19.464-2.385-18.207 12.18-21.096-8.539-36.244-5.657-39.429 2.762-3.516 9.292 9.546 14.44 11.804 8.539-2.386 1.004-10.547-1.758-6.28-7.032 4.271-5.273 26.15-1.314 46.963 9.544 5.775 3.013 25.614 2.51 5.021-9.544z" stroke-width=".40638"/> - <path d="M317.796 136.76c-6.006-12.263-25.49-1.13-29.416-13.009-5.366 17.403 27.706 7.773 29.416 13.009zM441.73 150.067c4.085 2.03 7.618-1.162 1.368-3.665 4.089 2.03 7.654-1.086 1.404-3.59 4.089 2.029 7.654-1.086 1.404-3.59-1.667 1.678-4.053 7.831-4.176 10.844zM443.86 126.464c9.04-9.543-.752-12.808 10.295-22.601 9.042-8.013 1.726-13.354 10.3-19.589 2.762-2.008 8.787-6.026 9.291-10.044 3.64 9.04-11.303 10.296-10.299 24.861.64 9.274-5.629 8.464-8.034 24.108-.504 3.265-2.762 10.548-11.554 3.265z" stroke-width=".40638"/> - <path d="M447.884 130.73c5.021-10.798 10.787-10.59 13.559-14.816 5.274-8.036 16.448 1.382 25.867-5.776-1.632 10.17-14.313 6.53-19.838 13.06-5.525 6.528-10.046 9.542-19.588 7.533z" stroke-width=".40638"/> - <path d="M449.14 134.248c8.791-7.032 15.268-2.34 21.346-6.027 15.318-9.292 21.473 1.883 35.158-2.511-3.643 8.789-23.858 1.256-32.646 7.785-8.791 6.529-39.679 12.807-23.858.753zM423.525 184.347c-.127-4.018-3.894-9.166-9.169-9.793-5.271-.628-7.533-6.153-11.55-6.404-4.017-.251-6.656-8.287-12.181-8.162-5.525.126-7.784 7.283 5.148 13.812 12.935 6.53 27.248 14.064 27.752 10.548zM407.2 187.74c-5.526.252-6.28 8.288-11.551 8.54 7.28 3.892 12.555-1.759 16.321-6.781l-4.77-1.758z" stroke-width=".40638"/> - <path d="M411.723 188.739c-4.77 4.018-6.152 12.43.754 14.816-4.144-5.713 7.283-8.288 3.767-13.561l-4.52-1.256z" stroke-width=".40638"/> - <path d="M416.489 188.996c-3.767 7.283 5.902 8.161 3.39 13.687 5.525-1.256 6.405-11.677 1.38-14.44l-4.77.753z" stroke-width=".40638"/> - <path d="M379.572 173.42c9.041-.502 17.31 4.389 22.854 12.305 3.516 5.022 15.317 7.031 19.337 3.013 4.017-4.018 1.759-12.556-8.287-9.793-2.512-4.27-9.795-2.763-13.31-6.279-3.516-3.515-17.078-13.56-20.594.754z" stroke-width=".40638"/> - <path d="M413.478 178.95c-2.385.502-3.14 4.646-1.635 6.78M418.626 181.461c.754 1.256.25 3.014-.127 3.893M393.892 173.802c4.645.251 5.525 3.642 10.547 4.897" stroke-linecap="round" stroke-width=".40638"/> - <path d="M390.82 162.375c16.045 4.018 28.775 7.534 36.67 12.054 7.894 4.52 20.117 5.776 30.812 2.763 10.696-3.014 31.32-5.776 30.303 7.533 5.607-6.655-1.527-13.812-15.788-15.068.256-6.529-6.731-12.43-11.756-8.538 4.648-.628 8.658 8.036-.507 11.552 1.781-6.53-4.712-12.431-11.46-9.543 4.33 1.255 8.708 8.515-.978 11.3-6.113 1.759-15.025-.502-21.645-4.52-6.62-4.018-43.8-18.583-35.652-7.533z" stroke-width=".40638"/> - <path d="M431.309 155.846c-5.021 2.26-1.758 7.534-9.542 10.547-7.787 3.014-13.185 9.92-11.427 15.821 5.275-11.552 14.567-11.05 17.83-15.57 3.266-4.52 8.037-11.174 3.139-10.798z" stroke-width=".40638"/> - <path d="M432.69 156.595c-.25 9.166-7.466 5.827-4.648 18.71.88 4.017 2.512 10.546-.25 17.076 8.099-5.902 2.89-18.3 6.529-22.978 1.758-2.26 4.017-5.776 4.898-8.79-1.885 5.274-1.758 15.069 3.39 17.58-4.144-9.795 11.176-17.83.627-29.131-1.505 2.762-6.28 7.66-10.547 7.534zM407.074 147.43c1.258 1.884 2.513 6.655 1.382 9.292 2.512-1.506 6.155-5.399 7.283-8.036 5.148.753 7.156 7.157 2.262 9.92 3.013 0 8.161 0 11.047-3.39-3.513-3.893-14.436-9.92-21.973-7.786z" stroke-width=".40638"/> - <path d="M328.973 129.42c-.812-.74-2.184-1.444-4.644-1.95-7.602-1.559-3.676-8.411 2.795-8.35 13.809-15.068 21.564-3.453 38.389-8.224 5.889-1.67 9.932-1.176 13.14.212 7.533-5.023 16.37-3.62 22.776 2.282.712-1.132 1.667-1.996 3.01-2.368 5.898-1.639 10.669 3.39 12.3 9.92 4.6-.852 9.851 1.425 13.306 4.564 4.784-2.457 8.08-2.567 9.292-.04 4.27-2.01 9.802-3.27 12.564 3.511 2.763 6.78-6.529 4.772-8.037 19.086-.93 8.83-10.797 12.305-18.583 7.032-12.455-8.437-24.61-9.795-30.638 3.013-6.025 12.808-10.748 20.249-25.363 16.072-5.272-1.507-12.054.502-16.322 6.278-4.27 5.776-10.8.377-18.583 1.005 9.792-1.507 6.042-3.97 14.566-4.52 7.784-.503 5.776-7.785 10.797-8.79-19.588 5.023-18.834-2.26-34.905 2.762 7.03-9.04 18.08-4.018 23.605-9.291-14.566-.251-21.08-9.767-27.625-5.776-10.296 6.278-5.778 24.153-32.646 22.601-13.059-.753-21.346 1.005-29.13 8.79 13.563-28.126 32.01-12.674 40.934-21.596 5.275-5.274 9.292-9.293 12.054-14.315.972-1.768 2.288-2.778 3.932-3.169-22.35-7.032-8.833-17.985 13.017-18.738z" stroke-width=".40638"/> - <path d="M439.327 125.465c.342.707.517 1.623.517 2.756 0 5.524-8.287 5.776-8.788 13.938-.263 4.269-.754 6.654-3.643 6.152-2.886-.502-5.399-5.022-2.636-10.296" stroke-linecap="round" stroke-width=".40638"/> - <path d="M333.115 121.191c-2.08-1.462-4.16-2.055-6.026-2.073M378.604 111.067c6.65 2.878 9.893 9.785 19.553 10.124 9.298.326 15.07 13.812 30.637 5.022.423-.238.835-.46 1.235-.666M401.427 113.391c-1.388 2.207-1.703 5.287-1.323 7.99M371.038 141.783c-11.8 0-14.816 6.027-14.816 11.803 0 5.776 5.525 13.31 15.32 13.31 9.792 0 15.068-6.027 15.068-12.557s-6.03-12.556-15.572-12.556z" stroke-width=".40638"/> - <path d="M373.168 166.642c-.25-3.265-6.152-2.763-5.902-5.274.25-2.512 3.266-3.516 3.266-7.032s5.272-3.767 7.03-1.004c1.758 2.762 7.033 8.16 8.164 5.399M377.567 153.335c-2.762 2.762-4.017 8.412-.377 12.807M381.334 157.601c-.877 1.884-1.127 4.772-.123 6.53" stroke-width=".40638"/> - <path d="M428.228 148.374c9.23.753 10.8-9.418 3.893-10.045M416.871 120.941c-3.201-4.08-10.546-5.461-10.673 3.203" fill="none" stroke-width=".40638"/> - <path d="M405.32 133.999c-3.14-7.785-11.177-8.916-15.448-5.023-3.552 3.24-3.64 11.677 4.02 13.435 2.636-3.138 7.784-7.282 11.428-8.412zM401.864 129.1c-4.52-4.018-11.177 3.579-5.148 10.547M315.87 148.124c3.025-.718 7.448.763 14.231 3.953 4.27 2.01 17.079 6.278 25.113 2.01-8.288 3.012-14.563-9.544-20.842-8.037-6.28 1.507-17.768 3.83-22.6-.754 11.8.754 18.147-8.596 31.638-.502 3.77 2.26 8.541 3.767 12.809 3.516-11.048-13.31-25.614-4.772-27.122-15.57 6.656 7.157 22.916-1.632 31.203 11.803M331.485 134.747c-1.554-1.933-.852-3.86-2.519-5.386" stroke-width=".40638"/> - </g> - <path d="M416.871 120.941c-2.762-2.95-8.788-.628-7.095 5.337 1.32-2.762 4.144-5.085 7.095-5.337zM399.797 137.025c1.901-1.38 3.864-2.514 5.519-3.028-.904-2.234-2.207-3.92-3.712-5.097-1.436-.992-5.564 4.559-1.807 8.125z" stroke="none"/> - <g fill="none" stroke-linecap="round"> - <path d="M392.38 126.838c-4.521-3.013-8.665-2.762-10.046-.25-3.263-.126-5.964 2.26-6.09 7.03M383.214 135.629c-5.398-3.704-12.808-2.323-12.304 5.964M367.645 146.3c2.636-2.135 6.403-3.642 9.293.125M407.956 138.14c-1.004 1.381-1.758 3.516-.127 6.78-2.008-2.636-7.03-2.636-12.432 4.395M419.882 137.766c-6.53.753-6.402 5.022-1.131 6.906M373.425 121.815c-5.525-1.13-9.541 2.135-1.881 4.897M383.97 118.048c-7.786-1.884-10.925.125-7.41 1.883M361.491 149.318c-.25 2.762 1.255 6.404 5.776 2.26M363.004 157.601c0 .754-.126 1.632-.63 2.26M344.916 120.809c-4.77-1.381-5.648-5.776-.123-5.4M343.286 130.98c-5.275-1.758-5.275-6.906-.88-6.404M353.083 128.344c-6.152-1.507-6.403-5.777-1.755-5.149M353.832 115.286c-3.263-.25-8.288 3.39.126 5.525M363.004 122.572c-7.66-1.13-7.533 2.009-3.016 4.018M368.776 115.286c-5.902-1.13-7.91 2.386-3.893 3.893M350.197 137.01c-1.446-1.193-2.636-6.907 4.267-5.211M364.51 135.254c-4.644-1.255-9.039 3.265-4.771 5.902M370.656 129.857c-4.894-.88-9.038.502-6.402 2.26" stroke-width=".40638"/> - </g> - <path d="M416.606 120.941c-2.76.512-5.232 2.133-6.835 5.335" fill="#fff" stroke-width=".40638"/> - </g> -</svg> diff --git a/img/flags/1x1/bv.svg b/img/flags/1x1/bv.svg deleted file mode 100644 index 6dd0007..0000000 --- a/img/flags/1x1/bv.svg +++ /dev/null @@ -1,13 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" height="512" width="512" viewBox="0 0 512 512"> - <defs> - <clipPath id="a"> - <path fill-opacity=".67" d="M0 0h512v512H0z"/> - </clipPath> - </defs> - <g fill-rule="evenodd" stroke-width="1pt" clip-path="url(#a)"> - <path fill="#fff" d="M-68 0h699.74v512H-68z"/> - <path fill="#d72828" d="M-92.992-77.837h218.72v276.26h-218.72zM249.42-.572h380.91v199H249.42zM-67.545 320.01h190.33v190.33h-190.33zM252 322.12h378.34v188.21H252z"/> - <path fill="#003897" d="M156.65-25.447h64.425v535.78H156.65z"/> - <path fill="#003897" d="M-67.545 224.84h697.88v63.444h-697.88z"/> - </g> -</svg> diff --git a/img/flags/1x1/bw.svg b/img/flags/1x1/bw.svg deleted file mode 100644 index fa886bb..0000000 --- a/img/flags/1x1/bw.svg +++ /dev/null @@ -1,7 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" height="512" width="512" viewBox="0 0 512 512"> - <g fill-rule="evenodd"> - <path fill="#00cbff" d="M0 0h511.993v511.984H0z"/> - <path fill="#fff" d="M0 191.99h511.993v128.002H0z"/> - <path d="M0 212.675h511.993v86.438H0z"/> - </g> -</svg> diff --git a/img/flags/1x1/by.svg b/img/flags/1x1/by.svg deleted file mode 100644 index e0ba400..0000000 --- a/img/flags/1x1/by.svg +++ /dev/null @@ -1,59 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" height="512" width="512" viewBox="0 0 512 512"> - <defs> - <clipPath id="a"> - <path fill-opacity=".67" d="M0 0h496.06v496.06H0z"/> - </clipPath> - </defs> - <g fill-rule="evenodd" clip-path="url(#a)" transform="scale(1.032)"> - <path fill="#b20000" d="M0 0h992.13v329.53H0z"/> - <path fill="#429f00" d="M0 329.53h992.13v166.54H0z"/> - <path fill="#fff" d="M0 0h109.84v496.06H0z"/> - <g stroke-width="1pt" fill="#b20000"> - <path d="M5.23 8.402h5.23v8.41H5.23zm15.693 0h15.692v8.41H20.923zM26.148-.01h5.23V8.4h-5.23zm26.159 0h5.23V8.4h-5.23zm20.917 8.412h15.692v8.41H73.224zM78.465-.01h5.23V8.4h-5.23z"/> - <path d="M15.697 16.81H26.16v8.41H15.696zm15.693 0h10.46v8.41H31.39zm36.61 0h10.46v8.41H68zm15.69 0h10.463v8.41H83.69zm-73.234 8.41h10.462v8.408H10.456zm26.159 0h10.46v8.408h-10.46zm26.158 0h10.462v8.408H62.773zm26.143 0h10.462v8.408H88.916zM99.383 8.402h5.23v8.41h-5.23zM5.23 33.628h10.462v8.408H5.232zm36.61 0h10.462v8.408H41.84zm52.317 0h10.462v8.408H94.156zM10.456 58.85h10.462v8.41H10.456zm5.241 8.41H26.16v8.407H15.696zm20.918-8.41h10.46v8.41h-10.46zm-5.225 8.41h10.46v8.407H31.39zm-10.467 8.407h15.692v8.408H20.923z"/> - <path d="M26.148 84.074h5.23v8.41h-5.23zm36.625-25.222h10.462v8.408H62.773zM68 67.26h10.46v8.407H68zm20.916-8.41h10.462v8.41H88.916zm-5.226 8.41h10.463v8.407H83.69zm-10.466 8.407h15.692v8.408H73.224z"/> - <path d="M78.465 84.074h5.23v8.41h-5.23zm-26.158-8.407h5.23v8.408h-5.23zm-52.302 0h5.23v8.408H.005zm104.603 0h5.23v8.408h-5.23zm-78.46 42.04h5.23v8.408h-5.23z"/> - <path d="M20.923 126.114h15.692v8.408H20.923zm-5.226 8.408H41.85v8.408H15.698zm62.768-16.815h5.23v8.408h-5.23z"/> - <path d="M73.224 126.114h15.692v8.408H73.224zM68 134.522h26.153v8.408H68zm5.224 42.04h26.154v8.408H73.224zM62.773 142.93h36.614v8.41H62.773zm-52.317 0H47.07v8.41H10.457zm5.241 42.04H31.39v8.408H15.696zm-5.241-8.408H36.61v8.408H10.456zm73.234-16.816h26.155v8.408H83.69zm-5.225 25.224h15.692v8.408H78.465z"/> - <path d="M20.923 193.377h5.23v8.41h-5.23zm62.767 0h5.23v8.41h-5.23zM.005 159.746H26.16v8.408H.004zm47.075 16.816h15.693v8.408H47.08zm5.227 8.408h5.23v8.408h-5.23zm-15.692-25.224H73.23v8.408H36.614zM57.532 33.628h10.462v8.408H57.532z"/> - <path d="M47.08 42.035h15.693v8.408H47.08zm-5.24 8.408h10.462v8.41H41.84zm15.692 0h10.462v8.41H57.532zM.005 42.035h10.462v8.408H.005zm5.225 8.408h10.462v8.41H5.232zm94.153-8.408h10.462v8.408H99.383zm-5.226 8.408h10.462v8.41H94.156zM.005 126.114h5.23v8.408H.005zm104.603 0h5.23v8.408h-5.23zM47.08 193.377h15.693v8.41H47.08z"/> - <path d="M41.84 201.786h10.462v8.408H41.84zm15.692 0h10.462v8.408H57.532zm-20.917 8.408h10.46v8.408h-10.46zm26.158 0h10.462v8.408H62.773z"/> - <path d="M31.39 218.6h10.46v8.41H31.39zm36.61 0h10.46v8.41H68zm-41.852 8.41H36.61v8.408H26.148zm47.076 0h10.462v8.408H73.224z"/> - <path d="M15.697 235.417H31.39v8.408H15.696zm62.768 0h15.692v8.408H78.465z"/> - <path d="M88.916 227.01h10.462v8.408H88.916zm5.241-8.41h10.462v8.41H94.156z"/> - <path d="M99.383 210.194h10.462v8.408H99.383zM10.456 227.01h10.462v8.408H10.456zM5.23 218.6h10.462v8.41H5.232z"/> - <path d="M.005 210.194h10.462v8.408H.005zm20.918 33.631h5.23v8.408h-5.23zm62.767 0h5.23v8.408h-5.23zM52.307 218.6h5.23v8.41h-5.23zm-15.692 25.225h5.23v8.408h-5.23zm31.385 0h5.23v8.408H68zm-15.693 0h5.23v8.408h-5.23zm-52.302 0h5.23v8.408H.005zm104.603 0h5.23v8.408h-5.23zM52.307 126.114h5.23v8.408h-5.23zM26.148 42.035h5.23v8.408h-5.23zm52.317 0h5.23v8.408h-5.23zM47.08 100.89h15.693v8.41H47.08z"/> - <path d="M36.615 109.298h15.692v8.41H36.615z"/> - <path d="M41.84 117.707h5.23v8.408h-5.23zM31.39 100.89h10.46v8.41H31.39z"/> - <path d="M36.615 92.483h15.692v8.408H36.615z"/> - <path d="M41.84 84.074h5.23v8.41h-5.23zm15.692 8.409h15.692v8.408H57.532z"/> - <path d="M62.773 84.074h5.23v8.41h-5.23zM68 100.89h10.46v8.41H68z"/> - <path d="M57.532 109.298h15.692v8.41H57.532z"/> - <path d="M62.773 117.707h5.23v8.408h-5.23zM83.69 100.89h10.463v8.41H83.69z"/> - <path d="M88.916 92.483h15.692v8.408H88.916z"/> - <path d="M99.383 100.89h10.462v8.41H99.383z"/> - <path d="M88.916 109.298h15.692v8.41H88.916z"/> - <path d="M94.157 117.707h5.23v8.408h-5.23zm0-33.633h5.23v8.41h-5.23zM.005 100.89h10.462v8.41H.005z"/> - <path d="M5.23 92.483h15.693v8.408H5.23z"/> - <path d="M15.697 100.89H26.16v8.41H15.696z"/> - <path d="M5.23 109.298h15.693v8.41H5.23z"/> - <path d="M10.456 117.707h5.23v8.408h-5.23zm0-33.633h5.23v8.41h-5.23zM5.23 151.338h20.923v8.408H5.23zm26.16 0h20.92v8.408H31.39zm26.142 0h20.923v8.408H57.532zm26.158 0h20.923v8.408H83.69zm-41.85 16.815h26.154v8.41H41.84zm-36.61 0h26.154v8.41H5.23zm73.235 0h26.154v8.41H78.464zm26.143 33.633h5.23v8.408h-5.23zm-104.603 0h5.23v8.408H.005zM5.23 487.657h5.23v-8.408H5.23zm15.693 0h15.692v-8.408H20.923z"/> - <path d="M26.148 496.057h5.23v-8.408h-5.23zm26.159 0h5.23v-8.408h-5.23zm20.917-8.4h15.692v-8.408H73.224z"/> - <path d="M78.465 496.057h5.23v-8.408h-5.23zm-62.768-16.812H26.16v-8.408H15.696zm15.693 0h10.46v-8.408H31.39zm36.61 0h10.46v-8.408H68zm15.69 0h10.463v-8.408H83.69zm-47.075-8.412h10.46v-8.408h-10.46zm26.158 0h10.462v-8.408H62.773zm26.143 0h10.462v-8.408H88.916zm10.467 16.824h5.23v-8.408h-5.23zM5.23 462.433h10.462v-8.408H5.232z"/> - <path d="M41.84 462.433h10.462v-8.408H41.84zm52.317 0h10.462v-8.408H94.156zM10.456 437.21h10.462v-8.41H10.456zm5.241-8.413H26.16v-8.408H15.696zm20.918 8.413h10.46v-8.41h-10.46zm-5.225-8.413h10.46v-8.408H31.39zm-10.467-8.412h15.692v-8.408H20.923z"/> - <path d="M26.148 411.985h5.23v-8.408h-5.23zm36.625 25.225h10.462v-8.41H62.773zM68 428.797h10.46v-8.408H68zm20.916 8.413h10.462v-8.41H88.916zm-5.226-8.413h10.463v-8.408H83.69zm-10.466-8.412h15.692v-8.408H73.224z"/> - <path d="M78.465 411.985h5.23v-8.408h-5.23zm-26.158 8.4h5.23v-8.408h-5.23zm-52.302 0h5.23v-8.408H.005zm104.603 0h5.23v-8.408h-5.23zm-78.46-42.035h5.23v-8.41h-5.23z"/> - <path d="M20.923 369.95h15.692v-8.41H20.923zm-5.226-8.413H41.85v-8.408H15.698zm62.768 16.813h5.23v-8.41h-5.23z"/> - <path d="M73.224 369.95h15.692v-8.41H73.224zM68 361.537h26.153v-8.408H68zm5.224-42.035h26.154v-8.41H73.224zm-10.451 33.624h36.614v-8.41H62.773zm-52.317 0H47.07v-8.41H10.457zm5.241-42.036H31.39v-8.412H15.696zm-5.241 8.412H36.61v-8.41H10.456zm73.234 16.812h26.155v-8.41H83.69zm-5.225-25.224h15.692v-8.41H78.465zM.005 336.314H26.16v-8.41H.004zm47.075-16.812h15.693v-8.41H47.08zm5.227-8.412h5.23v-8.41h-5.23zm-15.692 25.224H73.23v-8.41H36.614zm20.917 126.119h10.462v-8.408H57.532zM47.08 454.02h15.693v-8.407H47.08zm-5.24-8.41h10.462v-8.41H41.84zm15.692 0h10.462v-8.41H57.532zM.005 454.02h10.462v-8.407H.005zm5.225-8.41h10.462v-8.41H5.232zm94.153 8.41h10.462v-8.407H99.383zm-5.226-8.41h10.462v-8.41H94.156zM.005 369.95h5.23v-8.41H.005zm104.603 0h5.23v-8.41h-5.23zM41.84 294.278h10.462v-8.41H41.84zm15.692 0h10.462v-8.41H57.532zm-20.917-8.412h10.46v-8.41h-10.46zm26.158 0h10.462v-8.41H62.773zm-31.383-8.412h10.46v-8.41H31.39zm36.61 0h10.46v-8.41H68z"/> - <path d="M26.148 269.054H36.61v-8.41H26.148zm47.076 0h10.462v-8.41H73.224zm-57.527-8.412H31.39v-8.41H15.696zm62.768 0h15.692v-8.41H78.465zm10.451 8.412h10.462v-8.41H88.916z"/> - <path d="M94.157 277.454h10.462v-8.41H94.156zm5.226 8.412h10.462v-8.41H99.383zm-88.927-16.812h10.462v-8.41H10.456z"/> - <path d="M5.23 277.454h10.462v-8.41H5.232zm-5.225 8.412h10.462v-8.41H.005zm20.918-33.633h5.23v-8.408h-5.23zm31.384 25.221h5.23v-8.41h-5.23zm0 92.496h5.23v-8.41h-5.23zm-26.159 84.07h5.23v-8.407h-5.23zm52.317 0h5.23v-8.407h-5.23zM47.08 395.173h15.693v-8.408H47.08zm-10.465-8.413h15.692v-8.407H36.615zm5.225-8.41h5.23v-8.41h-5.23zm-10.45 16.823h10.46v-8.408H31.39z"/> - <path d="M36.615 403.573h15.692v-8.408H36.615zm5.225 8.412h5.23v-8.408h-5.23zm15.692-8.412h15.692v-8.408H57.532zm5.241 8.412h5.23v-8.408h-5.23z"/> - <path d="M68 395.173h10.46v-8.408H68zm-10.468-8.413h15.692v-8.407H57.532zm5.241-8.41h5.23v-8.41h-5.23zm20.917 16.823h10.463v-8.408H83.69z"/> - <path d="M88.916 403.573h15.692v-8.408H88.916z"/> - <path d="M99.383 395.173h10.462v-8.408H99.383zm-10.467-8.413h15.692v-8.407H88.916zm5.241-8.41h5.23v-8.41h-5.23zm0 33.635h5.23v-8.408h-5.23zM.005 395.173h10.462v-8.408H.005z"/> - <path d="M5.23 403.573h15.693v-8.408H5.23z"/> - <path d="M15.697 395.173H26.16v-8.408H15.696zM5.23 386.76h15.693v-8.407H5.23zm5.226-8.41h5.23v-8.41h-5.23zm0 33.635h5.23v-8.408h-5.23zm-5.226-67.26h20.923v-8.408H5.23zm26.16 0h20.92v-8.408H31.39zm26.142 0h20.923v-8.408H57.532zm26.158 0h20.923v-8.408H83.69zm-41.85-16.823h26.154v-8.41H41.84zm-36.61 0h26.154v-8.41H5.23zm73.235 0h26.154v-8.41H78.464zm26.143-33.624h5.23v-8.41h-5.23zm-104.603 0h5.23v-8.41H.005zm47.075-42.045h5.23v8.41h-5.23zm10.452 0h5.23v8.41h-5.23zm0-16.816h5.23v8.408h-5.23zm-10.452 0h5.23v8.408h-5.23zM10.456 462.433h10.462v8.41H10.456zM83.69 302.678h5.23v-8.41h-5.23zm-62.767 0h5.23v-8.41h-5.23zm26.155-8.404H62.77v8.407H47.078z"/> - </g> - </g> -</svg> diff --git a/img/flags/1x1/bz.svg b/img/flags/1x1/bz.svg deleted file mode 100644 index 1d8d6b3..0000000 --- a/img/flags/1x1/bz.svg +++ /dev/null @@ -1,166 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" height="512" width="512" viewBox="0 0 512 512"> - <defs> - <radialGradient id="a"> - <stop offset="0" stop-color="#ffef5d"/> - <stop offset="1" stop-color="#ea5700"/> - </radialGradient> - <radialGradient id="b"> - <stop offset="0" stop-color="#952d1a"/> - <stop offset="1" stop-color="#570a00"/> - </radialGradient> - <radialGradient xlink:href="#a" id="c" gradientTransform="scale(1.22624 .8155)" cx="247.075" cy="238.328" fx="247.075" fy="238.328" r="35.95" gradientUnits="userSpaceOnUse"/> - <radialGradient xlink:href="#a" id="d" gradientTransform="scale(.93615 1.06821)" cx="321.991" cy="152.954" fx="321.991" fy="152.954" r="10.578" gradientUnits="userSpaceOnUse"/> - <radialGradient xlink:href="#b" id="e" gradientTransform="scale(1.2242 .81686)" cx="364.21" cy="237.789" fx="364.21" fy="237.789" r="36.034" gradientUnits="userSpaceOnUse"/> - <radialGradient xlink:href="#b" id="f" gradientTransform="scale(.95596 1.04607)" cx="468.154" cy="156.129" fx="468.154" fy="156.129" r="10.739" gradientUnits="userSpaceOnUse"/> - </defs> - <path fill="#ce1126" d="M0 0h512v512H0z"/> - <path fill="#003f87" d="M0 36.571h512v438.856H0z"/> - <circle cx="256" cy="256" r="201.143" fill="#fff"/> - <circle r="166.719" cy="254.976" cx="256" fill="none" stroke="#552300" stroke-width="4.201"/> - <path d="M236.739 78.07c15.078-16.176 28.712 2.51 28.348 11.267-.364 8.756-15.572 28.074-29.334 12.527 14.257 3.65 18.517-12.29 25.728-12.448-7.21.159-10.157-15.626-24.742-11.344zM79.79 204.923c-7.928-20.585 14.996-24.429 22.741-20.225 7.748 4.204 18.454 26.297-1.687 31.65 9.615-11.066-2.892-21.923.16-28.407-3.052 6.484-18.615 2.11-21.214 16.983zM418.079 184.566c20.652 8.094 8.035 27.47-.322 30.304-8.356 2.834-32.006-4.243-22.386-22.604 1.732 14.511 18.249 12.685 21.007 19.299-2.76-6.615 11-15.054 1.7-27zM148.05 402.575c-22.094-2.196-15.28-24.253-8.02-29.241 7.26-4.988 31.96-4.582 27.75 15.686-5.655-13.49-21.042-7.262-25.514-12.878 4.47 5.615-6.446 17.459 5.784 26.433zM371.343 386.611c.316 22.034-22.54 17.826-28.362 11.237-5.82-6.59-8.225-30.989 12.545-29.147-12.86 7.112-4.875 21.575-9.988 26.622 5.114-5.047 18.215 4.369 25.805-8.71zM95.887 163.062c-2.014-21.946 21.1-19.486 27.41-13.357 6.312 6.128 10.591 30.273-10.26 30.013 12.277-8.067 3.198-21.882 7.907-27.303-4.709 5.422-18.496-2.97-25.057 10.648zM119.562 368.937c-21.895-3.673-13.594-25.222-6.012-29.714 7.583-4.49 32.199-2.43 26.618 17.51-4.723-13.841-20.5-8.656-24.579-14.56 4.08 5.905-7.618 16.992 3.973 26.763zM292.577 78.978c19.884-9.808 25.941 12.466 22.467 20.524-3.472 8.057-24.603 20.756-31.905 1.37 12.02 8.438 21.71-4.962 28.507-2.568-6.797-2.394-3.903-18.188-19.069-19.326zM334.889 414.198c-9.857 19.746-28.256 5.644-30.402-2.857-2.145-8.502 6.943-31.297 24.572-20.243-14.714.496-14.264 16.984-21.135 19.157 6.87-2.174 14.194 12.138 26.965 3.942zM431.442 223.621c16.708 14.517-1.746 28.552-10.573 28.43-8.83-.12-28.703-14.68-13.418-28.76-3.288 14.243 12.885 18.037 13.241 25.186-.358-7.149 15.46-10.504 10.75-24.856zM150.938 107.561c4.985-21.474 26.172-11.98 30.243-4.201 4.07 7.777.543 32.04-19.184 25.337 14.199-3.863 9.918-19.799 16.095-23.49-6.178 3.691-16.639-8.553-27.153 2.354zM85.268 291.564c-19.456-10.622-4.47-28.259 4.18-30.022 8.649-1.763 31.209 8.226 19.324 25.231.132-14.608-16.485-14.871-18.379-21.777 1.894 6.906-12.828 13.552-5.125 26.568zM366.387 121.324c21.977-3.16 20.726 19.877 14.893 26.457-5.833 6.579-29.9 12.1-30.743-8.579 8.767 11.74 22.185 2.01 27.891 6.389-5.703-4.38 2.01-18.488-12.04-24.267zM241.388 435.323c-20.274 8.99-25.404-13.512-21.6-21.422 3.802-7.908 25.442-19.735 31.934-.068-11.662-8.92-21.897 4.072-28.59 1.405 6.693 2.667 3.15 18.328 18.256 20.084zM423.29 312.402c9.155 20.076-13.495 25.274-21.482 21.539-7.987-3.736-20.007-25.155-.221-31.692-8.932 11.614 4.208 21.71 1.55 28.364 2.658-6.655 18.457-3.21 20.154-18.21zM76.452 247.736c-12.737-18.052 8.555-27.315 17.1-25.107 8.546 2.207 24.35 21.051 6.122 31.106 6.615-13.054-8.18-20.565-6.807-27.592-1.373 7.025-17.54 6.54-16.416 21.593zM196.23 421.97c-20.84 7.612-24.427-15.187-20.094-22.82 4.334-7.637 26.727-17.984 31.867 2.072-11.028-9.682-22.122 2.595-28.62-.516 6.496 3.11 1.893 18.497 16.846 21.263zM190.218 86.978c12.348-18.317 28.754-1.972 29.774 6.732 1.02 8.705-10.96 30.144-27.002 16.922 14.656 1.395 16.357-15.011 23.453-16.284-7.097 1.272-12.493-13.86-26.225-7.37zM403.732 355.963c1.333 21.997-21.695 18.831-27.811 12.511-6.12-6.319-9.646-30.585 11.189-29.685-12.523 7.686-3.877 21.773-8.752 27.046 4.876-5.273 18.396 3.538 25.375-9.872zM398.07 148.562c21.767 4.36 12.78 25.639 5.057 29.887-7.723 4.25-32.26 1.413-26.044-18.343 4.276 13.983 20.212 9.3 24.1 15.329-3.887-6.028 8.16-16.74-3.113-26.873zM122.409 133.059c.21-22.037 22.961-17.29 28.62-10.565 5.662 6.727 7.482 31.176-13.239 28.842 13.029-6.806 5.39-21.453 10.623-26.38-5.232 4.927-18.103-4.794-26.004 8.103zM94.884 331.684c-19.81-9.956-5.439-28.09 3.145-30.145 8.585-2.053 31.473 7.165 20.181 24.563-.372-14.606-16.988-14.304-19.117-21.144 2.13 6.84-12.355 13.98-4.21 26.726zM332.8 97.081c20.774-7.782 24.551 14.984 20.284 22.655-4.268 7.672-26.574 18.205-31.883-1.809 11.109 9.59 22.102-2.778 28.623.28-6.523-3.059-2.049-18.484-17.024-21.126zM288.707 432.855c-16.156 15.15-28.47-4.4-27.507-13.112.964-8.715 17.463-26.99 30.124-10.568-13.973-4.582-19.318 11.046-26.524 10.726 7.206.318 9.062 16.264 23.906 12.954zM430.264 264.325c15.158 16.106-4.619 28.234-13.39 27.236-8.773-.996-27.077-17.462-10.447-29.95-4.709 13.845 10.998 19.23 10.63 26.377.369-7.149 16.445-8.915 13.207-23.663z" fill="#007f00"/> - <path d="M235.756 101.864c14.254 3.649 17.827-12.098 25.036-12.256-4.208 5.027-15.186 17.84-25.036 12.256zM236.739 78.07c15.078-16.176 28.712 2.51 28.348 11.267-12.237-21.333-16.067-18.043-28.344-11.266zM100.844 216.34c9.615-11.065-3.023-21.224.028-27.709 2.677 5.972 9.38 21.422-.028 27.71zM79.79 204.923c-7.928-20.585 14.996-24.429 22.741-20.225-24.694 1.433-23.419 6.298-22.74 20.225zM395.377 192.266c1.732 14.511 17.817 12.117 20.576 18.73-6.246-2.075-22.256-7.597-20.576-18.73zM418.079 184.566c20.652 8.094 8.035 27.47-.322 30.304 15.605-19.047 11.13-21.397.322-30.304zM167.782 389.028c-5.653-13.491-20.471-6.835-24.942-12.45 6.578.306 23.499 1.286 24.942 12.45zM148.05 402.575c-22.094-2.196-15.28-24.253-8.02-29.241-9.78 22.547-4.826 23.597 8.02 29.241zM355.523 368.701c-12.86 7.112-4.51 20.965-9.623 26.012-.444-6.521-1.39-23.315 9.623-26.012zM371.343 386.611c.316 22.034-22.54 17.826-28.362 11.237 23.688 7.076 24.176 2.072 28.362-11.237zM113.04 179.712c12.277-8.067 2.879-21.245 7.59-26.666.945 6.47 3.182 23.142-7.59 26.666zM95.887 163.062c-2.014-21.946 21.1-19.486 27.41-13.357-24.163-5.256-24.262-.231-27.41 13.357zM140.165 356.73c-4.722-13.838-19.96-8.189-24.04-14.091 6.542.744 23.358 2.856 24.04 14.092zM119.562 368.937c-21.895-3.673-13.594-25.222-6.012-29.714-11.29 21.843-6.422 23.222 6.012 29.714zM283.146 100.872c12.02 8.438 20.998-5.024 27.795-2.63-5.733 3.216-20.586 11.32-27.795 2.63zM292.577 78.978c19.884-9.808 25.941 12.466 22.467 20.524-3.808-24.256-8.565-22.531-22.467-20.524zM329.062 391.096c-14.713.496-13.659 16.607-20.529 18.778 2.605-6.002 9.491-21.371 20.53-18.778zM334.889 414.198c-9.857 19.746-28.256 5.644-30.402-2.857 17.819 17.03 20.554 12.801 30.402 2.857zM407.45 223.293c-3.288 14.243 12.672 17.36 13.028 24.508-5.178-4.039-18.383-14.585-13.028-24.508zM431.442 223.621c16.708 14.517-1.746 28.552-10.573 28.43 21.152-12.725 17.733-16.434 10.573-28.43zM161.997 128.696c14.199-3.862 9.417-19.29 15.595-22.983-1.137 6.438-4.253 22.972-15.595 22.983zM150.938 107.561c4.985-21.474 26.172-11.98 30.243-4.201-21.305-12.477-22.98-7.734-30.243 4.201zM108.77 286.771c.13-14.61-16.132-14.254-18.023-21.16 5.93 2.84 21.109 10.327 18.022 21.16zM85.268 291.564c-19.456-10.622-4.47-28.259 4.18-30.022-17.907 16.937-13.767 19.83-4.18 30.022zM350.536 139.203c8.767 11.739 21.53 1.73 27.234 6.108-6.459 1.28-23.119 4.38-27.234-6.108zM366.387 121.324c21.977-3.16 20.726 19.877 14.893 26.457 4.01-24.225-1.052-24.057-14.893-26.457zM251.72 413.84c-11.662-8.92-21.189 4.164-27.88 1.493 5.863-2.977 21.037-10.471 27.88-1.494zM241.388 435.323c-20.274 8.99-25.404-13.512-21.6-21.422 2.802 24.391 7.627 22.86 21.6 21.422zM401.582 302.254c-8.932 11.616 4.298 21.008 1.64 27.662-3.03-5.803-10.653-20.827-1.64-27.662zM423.29 312.402c9.155 20.076-13.495 25.274-21.482 21.539 24.566-2.899 22.998-7.679 21.483-21.54zM99.676 253.737c6.615-13.054-8.135-19.857-6.763-26.883 4.057 5.147 14.348 18.514 6.763 26.883zM76.452 247.736c-12.737-18.052 8.555-27.315 17.1-25.107-23.6 7.353-21.17 11.763-17.1 25.107zM207.995 401.224c-11.029-9.682-21.423 2.733-27.917-.376 6.05-2.58 21.7-9.04 27.917.376zM196.23 421.97c-20.84 7.612-24.427-15.187-20.094-22.82 1.136 24.522 6.053 23.319 20.093 22.82zM192.993 110.633c14.656 1.396 15.706-14.714 22.803-15.988-3.365 5.619-12.196 19.976-22.803 15.988zM190.218 86.978c12.348-18.317 28.754-1.972 29.774 6.732-15.451-19.172-18.715-15.33-29.774-6.732zM387.103 338.79c-12.523 7.686-3.54 21.146-8.416 26.42-.744-6.494-2.463-23.228 8.416-26.42zM403.732 355.963c1.333 21.997-21.695 18.831-27.811 12.511 23.989 5.993 24.245.975 27.811-12.511zM377.078 160.102c4.276 13.982 19.688 8.817 23.575 14.845-6.514-.95-23.254-3.591-23.575-14.845zM398.07 148.562c21.767 4.36 12.78 25.639 5.057 29.887 11.989-21.474 7.165-23.006-5.057-29.887zM137.8 151.327c13.028-6.806 5.011-20.852 10.242-25.777.288 6.53.831 23.342-10.242 25.777zM122.409 133.059c.21-22.037 22.961-17.29 28.62-10.565-23.51-7.632-24.116-2.642-28.62 10.565zM118.21 326.103c-.372-14.606-16.61-13.7-18.742-20.537 6.025 2.637 21.452 9.607 18.743 20.537zM94.884 331.684c-19.81-9.956-5.439-28.09 3.145-30.145-17.315 17.532-13.077 20.284-3.145 30.145zM321.198 117.924c11.108 9.59 21.398-2.91 27.92.147-6.029 2.63-21.625 9.218-27.92-.147zM332.8 97.081c20.774-7.782 24.551 14.984 20.284 22.655-1.343-24.514-6.248-23.27-20.284-22.655zM291.328 409.18c-13.972-4.582-18.618 10.899-25.821 10.58 4.542-4.74 16.378-16.802 25.821-10.58zM288.707 432.855c-16.156 15.15-28.47-4.4-27.507-13.112 10.749 22.094 14.793 19.064 27.507 13.112zM406.426 261.612c-4.708 13.844 10.856 18.532 10.487 25.68-4.744-4.533-16.818-16.34-10.487-25.68zM430.264 264.325c15.158 16.106-4.619 28.234-13.39 27.236 22.332-10.559 19.304-14.588 13.39-27.236z" fill="#005800"/> - <g fill="#730000" stroke="#000" stroke-width=".509"> - <path d="M286.986 128.348s.625-1.46 1.772-.624c1.042.831 1.352 4.48 1.352 4.48l-1.667.831c.001.001.94-1.35-1.457-4.687zM277.514 161.065s.833-1.145-.312-3.649l1.667-.52s.624 1.979-.209 4.17l-1.146-.001M306.37 155.33l-3.957 2.399 1.98.938 4.792-2.814-2.814-.522M253.338 170.854c-1.044.835-1.147 2.294-1.772 3.126-.518.833-2.083 1.978-2.186 3.23-.208 1.249-.311 2.082.209 3.751.621 1.665 3.227 9.064 2.186 14.692-1.147 5.624-.727 8.02-.31 8.856.413.834 1.666 3.124 2.395 3.124 1.667-.207.938-.728 1.561-1.77 1.563-2.71 0-23.652-.729-29.487-.519-4.48-2.606-8.545-2.81-8.96-.208-.523-.624-1.876-.939-2.71-1.561-3.753-3.437-6.98-3.437-14.799 0 0-5.106 1.15-9.48-8.752-2.291-5-5.626-4.48-9.583-6.145l1.77-1.149s3.335 1.668 5.002 1.668c1.667 0 1.147-3.334 1.147-3.334l1.667-1.669v7.297c0 3.334 4.583 7.918 7.292 9.273 1.667.831 3.855-2.607 3.335-5.939-.521-3.334 0-7.814 0-7.814l2.292 1.353s-.834 1.458-.625 2.292c.31.835 1.456-.833 2.29-1.668 0 0 .207.21 1.042.21 0 0-1.667 2.81-2.499 4.272-.831 1.355-.831 6.67-.831 8.65 0 1.98.73 6.562.73 8.02 0 1.046 1.976 5.315 3.542 7.922.52 1.04 1.77 3.749 1.77 3.749 1.25 1.98 1.352 3.334 2.083 5.003.416.832 1.147 3.229 1.667 7.399.21 1.04.416 5 .732 7.603.31 2.5 2.396.523 4.893-1.249 2.5-1.876 2.5-6.356 2.5-6.356s1.981-1.667 1.668-.729c-.209 1.043 1.043 2.084 1.043 2.084-1.561 3.541-.623 3.125.938 3.021 1.562-.21 6.978-4.272 6.978-4.272.73-.21 3.96-.21 3.439 0-.625.313-1.46 1.876-1.46 1.876l3.543-.418c-1.25.938-5.94 3.647-6.978 4.272-1.147.731-6.77 3.442-9.167 4.377-2.396 1.04-7.085 3.334-7.293 5.73-.105 2.398.311 8.857 0 10.94-.209 2.083-1.043 11.359-1.043 11.359h-11.148s2.189-8.128-.105-10.315c-2.187-2.292-7.293-8.962-10.626-11.256-3.335-2.186 2.186-.517 2.186-.517v-2.294l5.104 6.15s8.854-7.815 0-18.443c-2.812-3.334-5.626-8.439-7.812-8.962-2.292-.625-3.439-1.146-7.294 0-3.96 1.145-13.44 1.145-17.398-5.108l3.335-.52 2.81-1.146s-1.145 3.96 6.772 3.96c7.814 0 8.959 0 8.334-7.294l2.292-1.146 1.668 1.67s-1.147 3.958-.521 5.624c.52 1.666 3.335 2.814 5.522 4.48.938.73 1.667.835 2.292.835.937-.105 1.145-.105 2.395-1.356 1.876-2.084 1.458-1.98 3.334-3.644 0 0 .938-1.46 1.147-1.67l1.147 3.023h-.006z" stroke-width=".521216"/> - <path d="M255.007 165.335c.414-.414 1.25-1.98 1.98-3.334 1.25-2.084 2.709-3.334 4.374-5.94 1.561-2.396 2.188-5.937 1.561-8.437l1.458.833.107 3.96s1.98-1.67 2.814-2.085l.831.415s-6.25 6.462-12.085 16.88l-1.042-2.29.002-.002zM200.212 143.667c.834 1.455 1.669 4.272 4.168 6.459l1.667-.52s-3.854-4.48-3.854-6.459l-1.98.52M210.002 141.158s.52 5.315-.832 7.294l1.666-.83s1.146-3.647.833-5.628l-1.667-.832v-.004zM264.909 124.385s-.315 7.501 1.146 12.087l1.978-.623s-.311-1.359 1.354-1.984c1.668-.52 5.626-2.186 7.604-3.855l-.623-1.665s-3.02 2.396-4.48 3.02c-1.353.522-2.187 1.146-3.334.835-1.147-.313-2.498-2.189-1.667-6.462l-1.978-1.353M286.986 159.396s-.519 5.313-.207 7.607l1.77.418s-.413-6.356.73-6.877l-2.293-1.148M294.912 163.359s-1.98 3.438-4.27 3.752l3.646-.731s1.044-.52 2.605-2.187l-1.981-.834" stroke-width=".521216"/> - </g> - <g fill="#289400" stroke="#030" stroke-width=".509"> - <path d="M263.035 147.62l1.353.83 1.458.211s1.561 1.458 3.334 2.811c1.353 1.149 1.353-.207 1.353-.207l.831 3.334h1.147s-.313 2.188-.313 3.335l1.98-1.669 2.292 1.98s1.667-1.457 2.5-1.457c.83 0 1.144-.832 1.144-.832h.107c-5.523-2.607-7.917-5.314-6.25-8.128 2.709-4.688 7.188-1.668 8.645-1.04l20.21 10.834s1.354-.833.416-1.669c-1.043-.83-1.459-2.916-1.147-3.749.314-.833 2.605 2.603 3.75 2.916 1.147.313 3.75.73 3.75.73l-.105-1.042s3.334 2.291 3.334 3.439c0 0 2.397-1.25 1.561-1.98-.832-.728 3.648 1.772 3.96 3.128l.936-1.046c-.105 0 .313-3.334 1.458-4.896 1.044-1.561 2.189-1.98 2.189-1.98s1.043-1.772 2.082-1.772c0 0-1.043-.727-1.459-1.561-.52-.836-1.77-1.251-1.77-1.251s1.561-1.145 1.98-1.667c.416-.623.834-.732.834-.732s-2.399-1.978-4.066-2.288c0 0-.104-2.712-2.187-2.919h.938s-1.563-2.917-3.022-3.02c0 0 .938-1.042 1.772-1.146 0 0-1.772-2.292-4.166-1.458l1.562-.623s-1.146-1.25-4.686-.625c0 0 .31-1.458-1.25-2.606 0 0-1.354.103-1.354 1.145 0 0-1.25-1.145-2.812-1.145-1.563 0 .52 1.668.52 1.668s-2.083-1.355-3.334-.938c0 0 .52-2.396-.833-3.648 0 0-1.56.834-1.98 1.876l-.416-1.042s-2.084 2.501-2.5 1.772c-.312-.416-.623-2.186-.623-2.186l-1.248 1.876.207-2.607s-1.458.834-2.604 3.54c0 0-1.46 1.356-1.46 2.604 0 0-1.145-1.352-2.188 0-.938 1.458 0 1.149 0 1.149s-.416.517-1.458.727l.209.831s-1.353-.727-2.395-.414l.519 1.249s-2.708.21-2.81-1.977c0 0-2.293-1.148-2.606.104l-1.667 1.042s-.521-1.042-1.46-1.25c-1.043-.312-.208 1.353-.208 1.353s-.311-1.249-1.562-1.876c-1.248-.518-.208 1.149-.208 1.149s-1.667-1.356-.831-2.397c0 0-1.563 1.459-.834 2.814l-1.042.728s-.521-.52-.418-.938c.107-.417-1.77 1.249-1.77 1.249s-1.146-2.707 0-2.707c.104 0-1.98-.104-2.291 2.294 0 0-1.354.103-2.605.517-1.354.418.938 1.356.938 1.356s-1.98-.418-3.126.209l.73.938s-.73-.73-2.5-.107c-1.877.52.415.834.415.834s-1.876-.416-2.813 0c-.938.418.312 1.146.312 1.146s-3.437-1.042-3.958-.727c-.52.31 1.146 1.98 1.146 1.98s-2.083.52-2.498 2.084l1.875.727s-.832.416-1.252 1.251c-.412.834 1.252.415 1.252.415s-2.29 1.67-2.29 2.917c0 0 1.665.52 2.915-.728s.416-.833.416-.833l.105.833s2.397-1.04 2.397-1.665c0-.52-.416.832-.416.832l2.397-1.25 1.56 1.043v-.002h.002z" stroke-width=".521216"/> - <path d="M261.048 115.118l-.52-2.292 5.312.623.937-2.186s2.5 1.145 3.334 1.975c0 0 4.895-1.248 6.356-.727l-.625 2.294s4.478.31 5.938.831c1.354.52-.623 1.67-.623 1.67s5.103.622 7.293 1.978c2.291 1.352 2.291 2.5 1.146 2.81l2.81 4.48s-4.478.52-5.311 1.666c-.834 1.145-1.667-1.145-1.667-1.145l-.834 3.125s-2.812-1.46-3.958-2.5c0 0-1.352 1.668-.52 2.5l-5.105-3.334s-2.189-.311-2.189 1.669c0 0-2.497-2.814-3.124-3.649l-2.814.835s-.831-1.145-1.874-1.46c-1.147-.206-.313 1.46-.313 1.46l-1.667-1.98-1.666-1.976s-1.46 1.976-2.605 1.976c-1.045 0-1.045-1.353-.834-2.291.312-.834-3.334-1.04-3.646 0 0 0-1.044-4.168 2.812-5.313l3.958-1.042v.003zM240.845 129.393l-1.77 1.668-1.044-.52-2.083 2.29-.417-1.252-1.146 1.876-1.77-.624-.834 1.354-1.561-.313s-1.354 1.25-2.189 1.562c-.832.211 0-1.873 0-1.873s-1.25 2.083-2.188 2.083c-.831 0-.519-.938-.519-.938s-.52 1.35-1.562 1.562c-.938.104-.522-1.042-.522-1.042l-1.668 1.249v-1.042l-.729-.311s.416-1.876 1.147-2.292c.729-.418-.73-1.665-.73-1.665l.73-.834s-2.085-.52-2.085-.104c0 0 1.043-2.81 2.5-3.336l.105-3.124s1.46-1.248 2.813-1.356c1.457-.208-.416-2.396-.416-2.396l3.333-1.975.416-2.397 5.104.413 1.042-2.186 4.064 1.04 3.437-1.771 2.5 2.917 3.75.314s-.105 2.603-.105 3.335c0 0 4.478 1.352 5 1.771 0 0-.833 2.709-.833 3.229 0 0 3.127-.834 4.065-.625 0 0 .313 2.919.415 3.647 0 0 5.312 1.669 5.626 2.607 0 0-1.147.727-1.771 1.665 0 0 .623 3.231.623 4.272l-.416.624s-1.563-1.458-2.813-1.666l-1.044 2.291-1.873-1.25-1.146.105s-.938-1.146-1.668-1.146l-.106-1.042-1.458.938s-2.29-1.147-2.29-1.876c0-.624.104-1.67.104-1.67l-2.396 1.67s-.52-1.248-.415-1.772c.105-.52-.937 1.252-.937 1.252s-1.251-2.19-1.147-2.607l-.313 1.773s-2.5-.831-2.811-2.5v-.002z" stroke-width=".521216"/> - <path d="M207.503 139.602s4.377 2.191 4.377 3.232c0 0 1.147-2.294.52-3.128l1.668 1.15s.518-2.084-.105-2.711c-.521-.52 3.748-2.289 4.686.522 0 0 2.606-2.708-2.396-5.002 0 0-.414-1.665 2.605-1.248 0 0-.207-1.043-.937-1.459h2.917s-1.77-1.46-4.376-1.876c-2.498-.417-.938-.728-1.042-1.253-.209-.52 0-2.396 0-2.396s-1.458-.52-2.605.104l.416-.522s-2.71-.727-3.75-.103c0 0-1.562-.625-1.353-2.294 0 0-1.563-.103-2.29 1.562 0 0-1.459 1.669-3.437 1.669-.416 0-1.876-.835-1.876-.835l-1.252 2.918-1.978-.104.624 1.145s-3.021-.83-3.96 0c0 0 1.148 1.773.833 3.022 0 0-2.397.417-2.917.834-.625.413.833.727.833.727s-2.709.834-3.336 1.67l1.045.83-1.251 1.67 1.043.206s-1.77.522-2.707.834c-.938.31 1.666.52 1.666.52l-1.249 1.145 1.98.31s-1.562 4.17-1.667 6.15c0 0 2.397-2.918 3.02-3.124l-1.874 3.125s3.543-1.145 3.856-1.67c.311-.623.624-1.144.624-1.144l.105 1.771s1.354-1.876 1.562-2.606c.105-.727 2.187.73 2.187.73v-1.044s1.876.624 2.5.731c.729.103.832-.313.832-.313l1.77-.208-.313 1.455s1.25-.832 1.562-1.666c.209-.835.832 0 .832 0l.832-3.334h1.77l.006.008zM193.229 154.399l1.667 3.438c-1.354.103-3.334 1.665-3.334 1.665.311 5.732-1.145 5.418-1.145 5.418.413 1.043-.265 2.975-.265 2.975l8.286-4.953.104-.52 9.794-4.588.31.52 2.814-1.56 1.98 5.207-1.98 1.146c.106 1.771 2.188 4.899 2.188 4.899l2.605-.623 2.813-1.046s.106 1.563.106 1.046c0-.42 3.02-1.458 3.02-1.458l1.353 1.354c1.045-.104 2.917-2.608 2.917-2.608l2.188.836s.73-1.25.73-2.187c0-.834 2.708-.834 2.708-.834l1.876 1.353 2.396-1.977s.729 1.458 1.667 1.665c1.043.104 3.646 2.082 3.646 1.669 0-.416 1.147-2.71 1.147-2.71l4.374 1.772c-.623-1.98-2.081-4.376-2.081-4.376s2.08-1.665 1.666-2.083c-.415-.417-1.666 0-1.666 0l1.248-2.5h-1.666l.52-.623-2.71-1.145 1.458-2.918c-.625-.731-7.812-2.19-7.812-2.19l1.667-1.562s-.834-1.248-1.667-1.248c-.834 0-5.21.104-5.418-.31-.106-.418-1.876-1.984-1.876-1.984l-2.71 1.983-1.353-.417-2.397.938s0 1.352-.314.414c-.31-.835-2.498-3.021-2.498-3.021-.416.727-3.23 4.062-3.23 4.062s-.415 1.773-1.353.52c-1.043-1.248-3.23-2.603-3.543-1.56-.312 1.147-2.29 2.186-2.71 1.875-.414-.315-2.708-.104-2.917.52-.104.728-2.605 2.604-2.605 2.604-1.562-.728-4.064-.31-4.064-.31s-.73 1.145-.832 2.083l-5.103 1.35h.004v-.001zM240.323 196.598v-2.19l2.498 1.669 1.46-1.669 1.875 1.874 1.146-1.874v3.023l2.813-2.498 1.665.727v-2.396s1.982-3.337 1.147-3.96l1.667-.52s-2.814-2.813-3.647-3.336c-.832-.622-1.979-.622-1.979-.622s-2.188-2.192-3.646-2.814c-1.354-.52-2.19.622-2.19.622s-.832-1.665-2.29-1.979c-1.352-.31-1.352 1.146-1.352 1.146s-1.044-1.042-2.397-1.563c-1.354-.622-.417 1.25-.417 1.25l-4.793-1.457.623 1.457-4.478-1.142.519 1.666-3.125-.524-.208 1.357-4.48.832.834 1.458-2.813-1.146v1.98l-3.125 1.145 1.146 1.045s-4.166 1.98-5.002 2.604c-.831.52 1.669 1.665 1.669 1.665l-4.48-.625 1.668 1.46-3.96 3.648 2.813 1.98-1.667 2.5 4.166.83 1.667 2.815 3.438-.625v3.124l5.001-3.958s3.648 3.23 3.959 2.292c.208-.833.208-3.647.208-3.647h1.77v-2.811l1.354 1.145 2.292-3.337 3.02 4.17 2.29-5.312 3.334.52h.007zM260.741 183.992l-.52-4.792-1.457 1.458.621-4.48-2.288-.418.831-4.374-1.666-.836.414-2.083 1.668-1.248 3.02-2.918 6.978.107.833-2.293 5.002.834c.832.938 3.436-1.876 3.436-1.876h1.043l1.147 2.185s3.646-.52 5.312.625l-1.98 2.71 3.646.31 2.499.525 2.605-.835 3.335-.211.833 1.355h3.126l-1.043 1.249 4.063 1.876-.832.834s2.291.834 3.958.834h.833s.832 1.977-.315 2.81c0 0 1.147 2.814 3.648 3.337 2.5.52 2.5.52 2.812 1.144.314.522 0 3.336-2.812 3.336v2.814s-2.189 1.98-2.5 2.81l-1.668-1.145s-1.456 1.669-1.456 2.814c0 0-3.648-4.795-5.002-5.005-1.459-.31-1.147 2.71-1.147 2.71l-3.957-3.333-.521 2.29-3.334-2.81-1.98 1.35-3.544-3.644-3.437.418 1.352-1.773h-4.166l-.832-3.644-.624 3.02-2.499-1.666-3.23 3.541s-.415-.418-.938-2.084c-.519-1.668-1.98 1.978-1.98 1.978l-1.146-2.603-1.354 2.603s-1.147-1.978-2.291-2.603c-1.043-.52-2.187 3.124-2.498 4.793l.002.004zM261.366 194.929l.208-1.665 5.937-2.294 5.002-1.876 2.498-1.145 1.146 1.978 1.459-2.81 2.291 2.915 1.25-1.563 1.979 1.458h1.667l.312 2.192s4.168.31 4.48-.52c.312-.835.83 2.81.83 2.81l3.959.52.833 4.48s1.977 4.17 1.354 5.836c-.522 1.772-2.19-2.187-2.19-2.187s-.31 3.125-.623 3.959c-.208.831-5.313-.834-5.313-.834l-2.187 4.168s-2.29-3.334-3.333-3.334c-1.147 0-1.147 3.334-1.147 3.334s-3.334-3.96-4.793-5.628c-1.354-1.665-1.667 1.668-1.667 1.668s-2.188-3.647-2.188-4.688c0-1.145-1.98-2.293-1.98-2.293s-3.439 3.96-5.94 5.003c0 0 .313-2.5-.52-3.334-.832-.835-3.334 1.665-3.334 1.665s-1.771-3.855 0-7.814l.01-.001z" stroke-width=".521216"/> - </g> - <g fill="none" stroke="#004b00" stroke-width=".509"> - <path d="M288.87 132.823l.522 2.084s1.874-.418 3.126-.312c0 0-.312 1.666-.73 2.396 0 0 2.5-.416 3.647.311l-.521 1.248 2.917 1.252-2.708 2.187s4.373 1.56 5.209 2.814c0 0-2.812 1.978-3.23 1.876-.415-.211-.104.83.625 1.768l-2.397-.103s.938 2.19.832 3.02c-.104.834-3.958.624-3.958.624M307.2 146.37s.73-4.167-.414-5.21c0 0 2.708 2.294 4.478 2.397 1.876.107-.105-3.438-.105-3.438s2.605 1.354 3.855 1.666c1.25.21-.938-2.604-.938-2.604s.73-1.356 2.812-.104M268.452 122.511s.102-.938-.316-1.458c-2.498-3.438 2.607 2.606 3.647 2.814M276.572 123.863s1.667 1.248 2.5 1.248-.52-3.334-.937-3.749c-.416-.417 3.02 1.353 4.272 1.563 1.25.31 1.457-2.084 1.457-2.084s3.855.624 4.689 1.146M261.775 121.262s-.312-2.187-.414-3.125M235.53 131.686c-.209-.417 1.045-2.293.521-3.127 0 0 .73.627 1.459.731.624.104.413-2.398.413-2.398l.834.311s2.188-1.042 1.77-1.876c-.417-.831 1.459 1.249 1.459 1.249s1.25-1.249 1.25-1.769c0-.525 1.457 1.248 1.457 1.248s1.562-.313 1.562-1.248c0-.938 1.98.31 1.98.31s.831-1.144.73-1.876M227.922 133.663s.936-2.187-.106-3.645M202.609 140.534c.105-1.04.623-3.855.105-4.272-.52-.413 1.044.417 2.292.73M214.897 136.581c-1.25-1.252-1.98-1.876-3.957-1.876M193.751 143.555c.313-.727.833-2.5.52-3.541M220.938 195.236l1.354-2.814 1.667 3.959 1.145-2.5.416.834 2.5-2.709 2.709 4.063M274.176 178.463l1.77-3.541 2.399 1.251 1.147-3.439 2.497 1.563 1.458-3.229 2.813.728.207-2.291s1.98 1.145 2.5 1.978c.623.836 0-2.81 0-2.81l2.291 1.04s1.667-1.668-.623-2.606" stroke-width=".521216"/> - <path d="M281.16 173.988l2.5 3.647 2.081-2.396 1.876 4.062 2.396-1.458 3.437 1.98 1.561-1.249 3.75 2.709 1.563-3.229 3.334 1.042 2.186-3.75M215.839 165.55s1.459-2.504.938-3.65c-.626-1.145 3.02 1.981 3.02 1.981s.832-2.501.312-3.646c-.626-1.145 4.168 3.334 4.168 3.334s.834-3.854 0-4.69c-.834-.833 4.584 1.149 4.584 1.149s2.188-.624 1.354-1.772c-.834-1.146 3.644 1.666 3.644 1.666s1.042-2.81 0-3.856c-1.146-1.144 3.334 1.355 3.334 1.355l-1.666-3.021 3.646.207-.312-3.334M271.155 199.404l2.396-1.146 2.084 2.084 2.292-3.646 2.812 2.708.416-2.708 3.02 1.252.626-1.67 3.333 1.774.312-2.502 1.666.522.314-1.668" stroke-width=".521216"/> - </g> - <path d="M216.668 317.983a74.491 74.491 0 0 1-6.356-13.856l45.11-39.7 45.112 39.593c-1.563 4.583-3.648 9.483-6.563 14.173l-.36.576c-.832-.31-3.392-1.306-3.392-1.306s-1.46 1.355-2.602 1.458c-1.563.21-2.917-1.352-2.917-1.352s-1.98 1.666-3.96 1.352c-1.98-.206-2.813-1.458-2.813-1.458s-2.083 1.668-3.542 1.355c-1.354-.316-2.292-1.254-2.292-1.254s-1.25 1.566-3.02 1.254c-1.667-.316-3.23-1.254-3.23-1.254s-2.601 1.144-4.27 1.354c-1.665.315-3.126-1.459-3.126-1.459s-2.187 1.459-3.02 1.459c-.833 0-3.958-1.459-3.958-1.459s-3.23 1.043-4.375 1.043c-1.043 0-4.27-1.353-4.27-1.353s-3.022.832-4.374.832c-1.46 0-3.542-.832-3.542-.832s-2.497 1.146-3.855.832c-1.458-.31-2.605-.832-2.605-.832s-2.708 1.146-4.48.832c-1.667-.31-3.646-1.454-3.646-1.454s-.313.831-3.541 1.454h-.107" fill="#9dd7ff"/> - <path d="M255.427 218.788v45.635l-45.11 39.91c-4.375-12.712-4.688-24.068-4.688-28.964v-56.58h49.798" fill="#fff" stroke="#000" stroke-width=".729"/> - <path d="M255.427 218.788v45.635l45.005 39.91c4.374-12.712 4.687-24.068 4.687-28.964v-56.58h-49.692" fill="#ffd83c" stroke="#000" stroke-width=".729"/> - <g stroke="#000" stroke-width=".509"> - <path d="M226.324 308.5c3.392 1.839 2.243 1.259 9.273 3.748 5.731 1.984 12.396 2.918 22.084 2.918 8.477 0 13.249-.672 15.934-1.413 2.784-.8 3.444-1.922 3.444-1.922l-6.978 7.086s-28.051 1.514-33.13-1.77c-1.978-1.044-6.251-4.48-10.626-8.648v.001z" fill="#730000" stroke-width=".521216"/> - <g fill="none"> - <path d="M267.479 295.27s8.96 5.104 0 14.899M227.164 309.023l12.918-12.299-1.458 16.464M245.391 314.644V287.14M267.479 314.644v-29.172M256.328 315.167v-31.36" stroke-width=".521216"/> - </g> - <g fill="#ff0018"> - <path d="M245.391 288.604l-5.834 1.876 5.834.625v-2.5M256.328 284.324l-6.145 2.294 6.145.207v-2.501M267.479 285.993l-6.146 2.294 6.146.31v-2.607.003zM271.124 299.233c-.312-1.251 3.648-1.145 3.648-1.145s1.147 4.166 0 6.77l-3.333-.624s.312-2.811-.315-5z" stroke-width=".521216"/> - </g> - <g fill="#fff"> - <path d="M229.14 307.354l10.94-10.629-.521 6.356s-5.625 3.645-5.625 6.251l-4.794-1.978M234.967 309.545s1.147-3.334 4.271-5l-.312 6.668-3.957-1.668h-.002zM250.706 291.103s4.478-.625 7.813 0c0 0-.521 4.48 0 5.312 0 0-6.147-1.459-8.646.832 0 0-.834-4.167.833-6.144zM241.224 292.25s4.48-.625 7.812 0c0 0-.832 5.003-.313 5.835 0 0-5.002-2.814-7.5-.524 0 0-1.667-3.435 0-5.311z" stroke-width=".521216"/> - <path d="M240.906 298.076s4.48-.52 7.814 0c0 0-.52 4.48 0 5.316 0 0-5.834-1.356-8.336.831.001.001-1.146-4.166.522-6.147zM249.866 297.247s6.46-.83 9.792-.31c0 0-1.354 3.646.314 6.145 0 0-6.98-1.875-9.586.31 0 0-2.186-4.166-.52-6.145zM240.394 304.23l8.645.624s-.832 6.356-.312 7.19c0 0-6.979-1.669-8.337.622 0 0-2.292-5.833 0-8.439h.003v.003zM250.184 304.23s7.497-.522 10.938 0c0 0-1.982 4.796.209 8.96 0 0-9.795-2.81-11.15-.522 0 0-2.289-5.834 0-8.438h.003zM261.642 291.103s4.478-.625 7.813 0c0 0-.519 4.48 0 5.312 0 0-6.146-1.459-8.644.832-.002 0-.836-4.167.831-6.144zM261.642 297.247s4.478-.52 7.813 0c0 0-.519 4.48 0 5.313 0 0-6.146-1.353-8.644.835-.002 0-.836-4.169.831-6.148zM262.164 303.708s4.478-.621 7.916 0c0 0-1.146 6.98-.624 7.814 0 0-5.101-2.396-7.5-.31 0 0-1.457-5.521.208-7.504z" stroke-width=".521216"/> - <path d="M271.432 304.23s1.456 5.312 3.332 5.939l-2.499 3.021s-3.02-2.188-3.334-4.685c0 0 1.978-2.295 2.5-4.275z" stroke-width=".521216"/> - </g> - </g> - <g stroke="#000" stroke-width=".61"> - <path d="M293.765 318.607c-7.187 11.984-18.96 23.234-38.336 30.214-19.69-7.081-31.67-18.855-38.756-30.736l.106-.104c3.228-.628 3.542-1.459 3.542-1.459s1.98 1.146 3.646 1.459c1.77.31 4.48-.834 4.48-.834s1.145.522 2.603.834c1.354.31 3.856-.834 3.856-.834s2.082.834 3.54.834c1.354 0 4.376-.834 4.376-.834s3.229 1.352 4.27 1.352c1.147 0 4.375-1.043 4.375-1.043s3.126 1.46 3.959 1.46c.831 0 3.02-1.46 3.02-1.46s1.457 1.77 3.125 1.46c1.667-.207 4.27-1.352 4.27-1.352s1.562.938 3.23 1.25c1.77.314 3.021-1.25 3.021-1.25s.938.938 2.292 1.25c1.458.314 3.54-1.355 3.54-1.355s.833 1.252 2.815 1.459c1.98.313 3.959-1.352 3.959-1.352s1.351 1.562 2.916 1.352c1.147-.105 2.603-1.459 2.603-1.459s2.605.832 3.542 1.148" fill="#006ac8" stroke="none"/> - <path d="M291.994 321.321c-1.562.106-1.77-.938-1.77-.938s-2.082 1.773-4.063 1.46c-2.083-.311-3.02-1.667-3.02-1.667s-2.19 1.772-3.648 1.458c-1.458-.208-2.498-1.251-2.498-1.251s-1.354 1.565-3.126 1.251c-1.77-.208-3.335-1.251-3.335-1.251s-2.812 1.149-4.585 1.46c-1.77.314-3.228-1.667-3.228-1.667s-4.064 1.356-4.896 1.356c-.938 0-3.857-1.356-3.857-1.356s-1.978 1.252-3.124 1.252c-1.25 0-4.583-1.46-4.583-1.46s-3.128.836-4.586.836c-1.459 0-3.646-.836-3.646-.836s-2.709 1.146-4.167.836a14.294 14.294 0 0 1-2.605-.836s-2.917 1.146-4.688.836c-1.77-.315-3.855-1.458-3.855-1.458s-.311.726-3.749 1.458h-.105" fill="none" stroke-width=".521216"/> - <path d="M227.297 325.57s-.291.682-3.008 1.28c-.058-.004-.736.16-.736.16.25-.045.454-.08.672-.127-.096.036-.31.114-.768.256 3.072 4.438 7.674 8.466 12.47 11.697 4.795 3.23 10.306 7.087 19.69 9.839 9.866-3.852 12.499-5.318 18.947-9.636 6.448-4.71 9.808-7.644 13.404-12.477-2.816 1.6-2.411 1.618-3.872 1.408-1.458-.31-2.528-1.376-2.528-1.376s-1.331 1.586-3.104 1.376c-1.77-.31-3.328-1.376-3.328-1.376s-2.314 1.575-4.608 1.472c-1.771-.106-3.232-1.664-3.232-1.664s-4.064 1.344-4.896 1.344c-.938 0-3.84-1.344-3.84-1.344s-1.99 1.248-3.136 1.248c-1.249 0-4.576-1.472-4.576-1.472s-3.118.832-4.576.832c-1.459 0-3.648-.832-3.648-.832s-2.598 1.145-4.16.832c-1.459-.31-2.624-.832-2.624-.832s-2.902 1.145-4.672.832c-1.771-.31-3.872-1.44-3.872-1.44z" fill="#5ac800" stroke-width=".62464"/> - <path d="M255.621 348.682c10.192-4.242 12.033-5.396 18.198-9.166-1.076.03-4.203-.98-3.071-1.302 0 0-1.254 1.13-2.503 1.13-1.147 0-4.48-1.455-4.48-1.455s-3.124.83-4.583.83c-1.46 0-3.647-.83-3.647-.83s-2.71 1.143-4.168.83c-1.459-.31-2.605-.83-2.605-.83s-3.02 1.143-4.686.83c-1.771-.31-3.856-1.457-3.856-1.457s-2.564 1.36-4.174 1.516c4.925 3.607 10.11 7.128 19.575 9.904z" fill="#ffd800" stroke-width=".62464"/> - </g> - <g stroke="#000" stroke-width=".509"> - <path d="M248.71 265.564c2.024-1.648 3.186-3.235 2.51-4.467-.76-1.057-1.95.662-3.291.259 0 0-2.024-1.252-2.576-2.149-1.18-1.312-2.699-2.492-3.573-3.62-.927-1.045-4.414-5.654-9.72-10.96-1.526-.996-1.177-4.762-2.27-5.932-.093-.815-10.607-11.223-14.359-14.988-1.516-1.116-2.316-1.84-4.982.577-2.104 1.898-2.86 3.857-.1 6.222l13.677 12.436c1.997 1.941 4.788 2.295 5.958 3.3l13.902 14.216c1.75 1.513 2.59 2.585 1.6 3.878-1.098 2.127.077 2.414.327 2.478.16.089 1.142.086 1.797-.42l1.1-.83z" fill="#b34b00" stroke-width=".521216"/> - <path d="M214.036 228.27l14.293 14.123" fill="none" stroke-width=".512"/> - <path d="M233.39 234.721c.221-.425.705-1.508 1.216-2.69.2-.467 4.045-6.598 5.962-6.779 0 0 11.958 8.7 11.967 8.814.04.469-5.187 8.287-5.641 7.693-.002 0-14.009-5.88-13.504-7.038z" fill="#fff" stroke-width=".584704"/> - <path d="M241.009 236.77c-1.638-1.273-4.344-2.513-6.528-3.969l-.981 2.048c.79.884 10.738 5.51 12.373 6.4 0 0-1.896-2.173-4.864-4.48z" fill="#ccb8c8" stroke="none"/> - <path d="M234.476 232.54c1.28.896 3.712 2.432 5.248 3.328 2.944 2.048 4.807 4.304 6.912 5.504" fill="none" stroke-width=".4096"/> - <path d="M210.248 269.804l27.225-33.694c.51-.467 3.034-.493 3.376 2.117l-25.783 35.139s-2.937-.29-4.818-3.562z" fill="#782121" stroke-width=".521216"/> - <path d="M301.507 270.172c-.938.732-2.533.922-2.533.922-1.77-2.084-3.232-4.272-5.731-6.98l-27.192-33.447 2.812-2.708 24.481 28.652c.73.728 5.004 5.21 9.067 10.52.002.003.356 2.082-.904 3.041z" fill="#730000" stroke-width=".521216"/> - <path d="M275.323 234.936l-4.377-5.21s-3.333.416-3.956 2.19c0 0-2.398 3.96-8.753 4.376 0 0 1.77 7.396 9.168 11.355 0 0 2.71-7.607 5.313-8.962-.001.001 2.707-1.98 2.605-3.749z" fill="#fff" stroke-width=".521216"/> - <path d="M264.387 258.068c-.624-.21-1.25 0-2.189.522-.831.522-1.874.311-1.77-.731.104-.938 0-.832 1.146-1.561 1.668-.938 3.855-1.043 5.209-.522l-2.396 2.292M294.072 228.475c-.209-.727-.414-1.455.313-2.393.73-.834.73-2.294-1.044-1.565-1.77.731-2.395 2.71-.936 5.731l1.665-1.773h.002z" fill="#730000" stroke-width=".521216"/> - <path d="M263.762 258.693l30.837-30.633 7.603 8.128s-1.56-.627-2.187-.211c-.52.417.624 1.98.624 1.98s-1.458-.52-2.083-.104c-.729.414 0 2.187 0 2.187s-1.25-.938-1.876-.522c-.52.417 0 2.395 0 2.395s-1.667-.52-2.081-.105c-.418.418 0 2.19 0 2.19s-1.668-.834-2.501 0c-.831.831.416 1.98.416 1.98s-2.083-.834-2.917.415c-.832 1.251.105 2.396.105 2.396s-1.666-.832-2.082-.418c-.417.418 0 2.396 0 2.396s-1.458-.833-2.396.211c-.938 1.146.104 2.084.104 2.084s-1.352-.835-2.084-.42c-.73.42.208 2.395.208 2.395s-1.352-.938-2.29 0c-.938 1.046 0 2.084 0 2.084s-1.147-1.042-2.292 0c-1.043 1.148 0 2.293 0 2.293s-1.665-.833-2.29 0c-.729.831.207 1.981.207 1.981s-1.248-.73-2.082-.316c-.831.418 0 2.294 0 2.294s-1.249-1.356-1.77-.624c-.625.728.104 2.5.104 2.5s-1.147-1.356-1.77-.624c-.73.624.415 2.188.415 2.188s-2.083-.938-1.562-.938z" fill="#fff" stroke-width=".521216"/> - <g fill="#7e4b7e" stroke="none"> - <path d="M292.823 230.564l-2.396 2.396.52 8.232s.521-2.396 1.25-.731c0 0 .21-1.979.73-1.665-.42-.211-.105-8.232-.104-8.232M288.348 235.039l-1.77 1.665.623 8.232s.523-3.125 1.25-.624c0 0-.105-2.083-.105-2.814.002.521.002-6.46.002-6.46M269.701 253.491l-1.667 1.769.418 5.003s.52-3.229 1.25-.731c0 0-.21-2.08-.21-2.812 0 .521.21-3.23.21-3.23"/> - </g> - <g fill="none" stroke="#7e4b7e" stroke-width=".916"> - <path d="M267.612 232.858c1.147 1.145 4.377 5.311 4.377 5.311M269.076 235.151c-.206.627-.621 2.397-1.56 3.334M269.588 235.561c-.104.416-.104 1.771-1.56 3.127M270.11 236.196c-.208.727-.312 1.25-.83 1.772M270.428 236.82c0 .52-.31.625-.415.938M266.578 234.834c-.416.415-3.439 2.394-5.105 3.02M265.738 235.98c-.416.419-2.291 1.877-3.334 2.295M265.431 237.23c-.624.42-1.667 1.458-2.5 1.772M264.806 238.48c-.415.52-1.042.937-1.561 1.25" stroke-width=".937984"/> - <path d="M246.723 239.626c.34-.627.932-1.86 1.707-2.987.982-1.43 1.404-1.672 1.92-2.176" stroke-linecap="square" stroke-width=".937984"/> - </g> - </g> - <path d="M146.145 323.615c1.563.728 0-5.107.52-7.294.624-2.292 5.103 5.626 7.293 6.67 2.292 1.145 16.251-5.524 16.251-5.524l3.334-6.25 1.772 5.104s3.853-4.48 5-6.146c1.146-1.666 0 3.335-1.147 5-1.147 1.669 3.334 2.294 2.812 5.628-.52 3.335 4.48-2.293 4.48-2.293l12.918 1.146s2.186-7.815 5.625-12.295l1.042 5.004 5.313-5.417c5.938 15.63 18.44 32.613 44.068 41.885 24.065-8.752 36.462-24.278 42.918-39.075l7.19 7.401s5.626-1.67 6.667-2.291c1.145-.523 13.23 4.272 13.23 4.272s2.188.833 3.334 1.669c1.145.831.312-3.649.312-3.649s6.147 1.145 5.625 4.48c0 0 1.353-3.124 2.5-3.645 1.147-.521 3.853 2.814 4.48 3.959.52 1.044 13.752 2.71 15.626 3.855 0 0 1.46 1.67 1.46 2.814 0 0 2.814-.313 5.002-.313 0 0-1.667.83-1.667 2.604 0 1.668-.834 3.024-2.5 3.854-1.668.836 0 1.458 2.187 1.67 2.292.31 0 3.125-4.48 4.795 0 0-1.042 2.497.834 3.33 0 0-3.856.315-4.48-.832 0 0-1.352 2.604-1.352 3.96 0 0-4.166-1.356-5.312-1.98 0 0-1.668 1.665-.522 2.498 0 0-7.604-.83-9.064-3.644 0 0-2.71.832-2.188 1.77 0 0-5.313-3.645-6.979-3.645l-1.146 1.872s-3.646-2.187-4.793-2.187c-1.044 0-.209 1.666-.209 1.666l-5.102-3.126-1.98 3.126s-4.167-1.981-5.312-2.811c-1.044-.833-1.352 1.666-2.188 1.977 0 0-1.667-2.289-3.958-1.977 0 0-.833 2.811-.52 3.646 0 0-6.46-1.354-7.605-1.67-1.147-.31-.52 1.356 0 2.504 0 0-4.793-1.355-5.835-2.19l-.312 2.19s-3.957-.315-4.791-1.148l-2.5 3.436h-3.647l-.832 3.021s-6.978-1.976-7.605-.83c-.52 1.143.313 2.81.313 2.81l-6.146-.832-.519 2.5s-7.085-2.19-8.752-1.148c0 0-2.188 2.293-3.647 2.814-1.351.624 0-.834 0-.834l-2.187-3.02s-2.5 1.354-3.958.834c-1.353-.628-5.834 2.186-7.294 1.351 0 0 0-1.981-1.144-2.5-1.044-.521-3.021-.521-3.857.834 0 0-.831-1.147-2.29-3.335-1.354-2.292-3.335.208-3.335.208l-.313-2.71-3.855-.314c-2.292-.312-2.812-2.294-2.812-2.294s-5.938.626-6.772.316l1.457-1.356s-8.125 1.671-9.791 1.046c-1.772-.52 1.876-2.814 1.876-2.814s-7.503-1.872-8.961-2.187c-1.353-.312-9.48 1.35-10.627 1.35-1.146 0-1.667-1.876-1.667-1.876s-1.982 1.67-3.648 2.192c0 0-1.354-3.334-.519-3.648 0 0-5.312 1.458-5.626 2.814 0 0-1.354-2.187-1.147-3.125 0 0-2.5 3.96-3.646 4.79-1.147.836-.209-1.978-.209-1.978s-3.123 3.957-4.27 4.272v-2.814s-8.961 4.793-11.46 4.17c0 0 0-1.983.833-2.501l-5.626-.313c-1.352-.208-3.02-.832-4.478-1.146-1.354-.21 1.98-1.666 4.271-1.043 0 0-6.25-2.291-8.127-1.148 0 0-.834-2.29 2.498-3.125 0 0-4.272-4.167-6.773-3.855 0 0 2.814-1.666 5.106-.835 0 0-2.605-7.083-4.272-7.916 0 0 5.94-1.043 7.605-.206l.002-.002z" fill="#289400" stroke="#060" stroke-width=".521"/> - <path d="M137.492 201.39l75.842-39.282c.364-2.03-.79-3.625-1.978-5.21-21.689 10.637-41.427 23.544-65.528 31.363-1.354.523-13.335 5.523-19.482 12.922-1.948 1.954-2.092 4.838-2.092 4.838s.15 3.308.845 4.202c0 0 .18.908 1.313 1.634-.013 0 .7.35 1.194.173.55.104 1.447.097 2.698-2.094 1.251-2.086 5.314-6.877 7.188-8.546z" fill="#730000" stroke="#000" stroke-width=".521216"/> - <path d="M198.543 162.53l9.792-4.69s3.335 2.5 3.022 5.314c0 0 .729 6.458 8.752 10.938 0 0-6.774 8.44-18.648 9.17 0 0 1.362-11.137-1.137-14.369 0 0-.416.399-.235-.153.355-1.084-.241-4.8-1.762-5.619-.185-.101.121-.405.216-.592z" fill="#fff" stroke="#000" stroke-width=".521216"/> - <g fill="none" stroke="#7e4b7e" stroke-width=".814"> - <path d="M210.002 163.881c-2.083.833-8.855 4.374-8.855 4.374M206.776 165.96c-.105 1.041-.73 3.542 0 5.313M205.834 166.277c0 .52-.832 2.396.106 4.898M204.8 166.8c-.209 1.045-.416 1.668 0 2.816M203.96 167.424c-.208.624 0 .938 0 1.353M210.104 167.107c.312.831 3.126 5.208 4.793 6.98M210.524 169.083c.315.833 1.876 3.855 3.022 5.003M210.32 170.854c.415 1.043 1.25 2.919 2.082 3.96M210.32 172.943c.208.835.624 1.876 1.25 2.607" stroke-width=".8335359999999999"/> - </g> - <g stroke="#000" stroke-width=".509"> - <path d="M279.777 158.167l27.86 13.642c5.582 2.713 7.59.207 10.739 1.576l54.983 28.007c4.716 2.06 7.357 2.72 6.68 5.16-.116 3.877 1.832 3.935 2.365 3.976.385.104 2.243-.169 3.02-1.2.581-.672.602-.741.602-.741.623-.623.51-.68.704-.957 2.312-3.327 3.593-6.21 1.173-8.094-2.766-1.297-3.085 1.645-5.998 1.335 0 0-5.21-1.98-7.085-3.334-3.455-1.881-8.278-4.112-9.375-5.336-3.51-.658-29.934-15.521-44.904-22.98-1.606-1.345-2.48-6.315-5.635-7.978-.926-1.343-21.191-10.595-31.788-15.892-3.906-1.46-6.092-2.459-8.906 2.334-2.456 4.7-1.859 7.265 5.565 10.482z" fill="#b34b00" stroke-width=".521216"/> - <path d="M282.132 152.33l31.19 15.573" fill="none" stroke-width=".521216"/> - </g> - <g transform="translate(-128) scale(1.024)" fill="#ffa54b" stroke="#000" stroke-width=".509"> - <path d="M309.73 165.12c-.203.61-.712.203-.712.408-.405 2.135-.305 3.253-.813 4.475-.712 1.424-3.256 2.748-3.154 2.645-2.034.609-4.475 3.054-8.442.814-.204-.101-.406-.306-.61-.508 0 0 1.117 4.169-2.95 6.204-1.424.713-15.77 8.244-15.77 8.244s-1.526 2.748-.509 6.512c.103.61.305 1.118-.305 1.526-.916.71-2.646 2.748-3.662 6.004 0 0-3.053-1.324-3.053-3.256 0-1.934 1.221-2.951 1.526-4.378.304-1.321 1.117-4.679.712-5.698-.406-1.119-2.238-1.526-2.95-1.933-.61-.408-1.425.406-1.322 1.322.103 1.018.813.812 1.628 1.018 0 0-.916 1.932-.813 3.356l-9.258 4.783s1.22 1.626 1.627 2.34c.405.712 1.321 10.175 4.069 14.653 2.747 4.477 3.663 3.256 4.273 3.866.508.508 1.321 1.321 2.034 1.934.712.508 3.865.811 4.477-.916.712-1.631 1.22-2.647 3.154-4.174 1.933-1.524 5.899-5.391 5.899-7.123 0 0 2.34 6.716 2.034 12.313 0 0 8.546 1.731 16.177 1.932 7.632.105 11.497-1.524 11.497-1.524s1.018-6.409.608-7.631c0 0 1.221 4.172 2.137 5.596 1.019 1.727 2.136 5.288 4.374 5.493 2.137.101 3.969-2.135 4.171-3.051v-6.716h8.647c0-.101 3.866 1.424 5.086 1.22 1.221-.102 1.933-1.22.813-1.628l-.405-.303c1.117 0 2.543.71 2.543.71h4.271c.103-.101 0-.408-.103-.508-.305-1.222-2.544-2.24-4.17-2.95-1.629-.609-3.459-1.324-4.681-1.424-1.932-.206-3.256-.101-6.206.408-.813.101-3.865.405-5.799 1.321-.509.306-1.019.406-.813-.916.306-1.426.204-7.835-1.32-10.583-1.12-1.932-1.018-3.562-.814-5.188.104-1.63.204-7.225 0-8.854-.306-1.627-2.544-3.867-6.611-4.375-3.866-.511-7.123-3.664-7.325-6.207-.305-2.542.408-7.223.814-9.257" fill="url(#c)"/> - <g fill="none"> - <path d="M292.44 153.63c-.712 3.253-.712 6.104-.609 9.257.102 2.135 1.118 4.577 2.034 6.715.609 1.426 1.425 3.052 2.746 3.867 3.562 2.34 6.919-.203 8.852-1.017.916-.308 2.341-1.626 2.747-2.442.508-1.219.303-2.135.812-4.475-.103.1.813-.408.712-.408.916-1.526.712-2.034 1.221-3.054.509-1.018-.609-2.136-1.832-1.931.609-1.933 1.019-4.072.405-5.904-.202-.608.51-2.235-.608-1.832-4.579 1.832-9.97 1.426-14.854 1.426-.406 0-.712-.815-1.321-.71-.103 0-.204.303-.307.505" fill="url(#d)"/> - <path d="M292.03 155.35c-.508-.406-.61-1.319 0-3.256.712-1.929 0-2.034 1.119-3.153 1.12-1.12.814-1.629 1.526-1.932.712-.206 2.849-.206 3.562-.508.609-.308 1.525-.714 2.947-.916 1.526-.308 4.579-.206 6.003.608 1.526.812 2.544 2.85 3.46 3.561 1.02.71 1.63 3.661 1.426 7.938-.307 4.272-1.12 3.458-1.12 3.458s-1.222-2.034-2.238-.308c0 0 0-1.626.204-2.848.102-1.219-.61-3.458.102-4.985 0 0-5.8 1.832-8.751 1.729-3.051-.202-7.322-.916-7.526-1.626l-.714 2.238" fill="#000"/> - <path d="M294.98 151.8c-.305-.61-1.832-2.85-.609-3.561 1.12-.612.406 2.745 1.935 3.458 0 0-.509 1.526-1.321.102l-.005.001z" fill="#fff" stroke="#fff"/> - <path d="M298.34 160.14c-.508 1.732-.712 2.138-.916 3.156M308.01 164.92c.204.61.404.303.914.405M309.33 161.36c.509-.609 1.221-.303.813 1.223"/> - <path d="M292.44 157.7c.916.303 1.832.608 2.748 1.02 1.526.61.61 2.845.204 4.271-.204.714-1.019 1.933-.609 2.546.508.811 1.119.303 2.035.403 0-.303.609-.508.813-.508.712-.1 1.12.508 1.627.308.61-.308.51-1.224.306-1.731M299.46 159.53c.102-.403 1.018-.811 1.526-.915 2.136-.405 3.661-.712 5.393.511M300.68 170.21c-1.729.408-3.561.71-5.188-.206M295.49 169.2c.813-.408 1.12-.816 2.137-.308 0-.101 1.12-.405 1.12-.405.812 0 1.322.304 2.136.812M295.39 169.6c.916-.306 3.358-.306 5.394.102"/> - <path d="M292.34 160.14c.713-.1 1.526-.916 3.154.306 1.12.712-1.832 1.426-1.322 1.324-1.32.202-1.729-.508-1.828-1.122 0-.202-.204-.508 0-.508h-.004zM300.68 160.95c.712-1.426 1.832-1.119 2.849-.816 1.019.306.713.105 1.629.613-1.12.203-.814.303-1.629.71-.916.408-1.729.61-2.341.206-.204-.206-.712-.508-.712-.916-.001.101.102.203.204.203z" fill="#fff" stroke-width=".305"/> - <path d="M293.76 161.36c.406 0 .712-.406.712-.814 0-.508-.306-.916-.712-.916-.507 0-.812.408-.812.916 0 .408.303.814.812.814zM302.41 161.56c.405 0 .712-.403.712-.916 0-.508-.407-.811-.813-.811-.405 0-.712.303-.712.811-.001.514.407.916.813.916z" fill="#000" stroke-width=".305"/> - </g> - <g id="g"> - <g fill="none"> - <path d="M345.85 213.66c-.608-.714-1.018-1.02-1.83-1.324l-2.036-1.016c-.712-.408-1.729-.508-2.34-.916M340.05 213.05c-.306-.203-.508-.304-.812-.51-.306-.101-.712-.101-1.02-.203-.102 0-.102-.204-.203-.204-.915-.102-1.831-.51-2.44-1.321M272.8 201.45c.914.71 3.152 2.24 3.356 5.19.204 1.525 1.019 3.051 1.019 3.051M264.05 201.86c.51 1.727.61 7.425 6.003 13.43M265.07 193.92c-.408 1.119-.916 2.137.202 2.951M279.72 207.56c1.12-2.545 4.578-2.342 4.578-4.782"/> - <path d="M284.81 207.25c-.306-2.849-.916-4.475-.405-8.647.203-1.223.405-5.9 0-8.141 0 0 1.629 7.833-3.662 9.363M315.13 212.34c0-3.97.916-6.209.916-6.209 1.221-5.593-1.119-7.731-.203-9.155.812-1.221 2.035-3.766.407-8.854 0 0 2.847 10.484-4.478 10.484-7.425 0-7.121-2.748-7.121-2.748"/> - <path d="M284.4 190.46c0 2.135 0 8.447 9.055 8.447 2.746 0 5.698-1.933 7.324-3.256M303.02 192.9c-.306-1.934-.306-4.375-.306-6.92M289.08 182.53c2.441-.308 4.376-.61 8.955-.61M298.34 175.6c.509 2.24-.304 5.8 3.866 6.309M306.58 174.79c-.61 1.629-.61 3.256-.814 4.375M305.97 181.92c1.73 0 4.985-1.121 9.054-.306M316.45 204.4c.813 1.63 1.018 3.765 3.561 6.207M288.27 199.21c.204 1.324-1.729 5.698-.306 9.262 1.322 3.559 1.12 7.631-1.12 11.089M293.46 200.54c-.813 1.626-2.238 3.256-2.544 4.68M297.52 203.59c0 1.018-2.744 8.749-4.68 10.886 0 0 3.561 1.424 3.051 6.614M303.22 200.03c0 1.324-.204 1.63.916 2.44M306.58 202.47c1.32 1.628 5.492 6.514 4.576 9.259M303.83 205.22c.306 1.018.306 6.309-.61 8.955M301.09 213.97c-1.12 0-2.746.814-3.052 2.747M306.78 213.66c1.118-.306 3.355 1.626 3.355 7.123M325.81 210.51c-2.136.61-3.052 1.732-2.44 1.119-1.12.916-2.138 1.526-2.138 1.526"/> - </g> - <path d="M289.79 197.99c.608 0 1.118-.408 1.118-.916 0-.411-.507-.816-1.118-.816-.509 0-1.02.405-1.02.816 0 .505.508.916 1.02.916zM312.89 198.3c.51 0 1.02-.405 1.02-.916 0-.505-.508-.811-1.02-.811-.607 0-1.118.306-1.118.811-.001.511.51.916 1.118.916z" fill="#000" stroke-width=".305"/> - <path d="M280.54 239.81c1.22-7.937 4.985-14.551 5.086-15.162 0 0 3.865.816 10.58 1.424 6.612.71 8.444.408 11.496.202 2.949-.303 6.815-.811 6.815-.811s1.221 2.44 1.322 4.883c.305 5.188 2.236 27.677 2.439 33.679 0 0 .814 3.562.814 12.312 0 9.567 2.645 28.999 2.645 39.381l-2.645.51s-14.446 1.119-14.446-.814c0-2.135-.813-27.066 1.322-42.126 0 0-.508-2.95-1.322-5.496-.813-2.442-4.375-10.073-4.375-11.698 0 0-5.695 16.072-6.001 18.824-.304 2.543-1.12 38.357-1.628 41.312 0 0-8.241 6.308-9.36 6.92-1.118.509-9.054-3.36-9.258-4.375-.306-1.118.814-13.229 4.578-33.176 1.425-7.123.61-8.44.61-10.375 0-1.934.103-27.474 1.322-35.412l.006-.002z" fill="#fff"/> - <g fill="none"> - <path d="M294.27 274.92c-.609 2.24-1.628 4.375-3.559 5.803M287.96 227.09c-.304 1.322-2.238 7.325-7.122 10.887M295.08 228.21c-1.12 3.562-5.493 22.693-6.309 45.383M288.47 280.72c-.204 2.135-1.322 18.012-1.628 20.756M286.03 304.53c-.509 1.117-2.746 10.375-2.746 18.619M315.53 287.23c-.204 1.933-1.019 15.668 3.561 27.98M300.58 229.23c-.305 2.237-.813 16.688-.813 17.806 0 1.117 1.628 2.747 2.441 3.054 0 0-1.628.509-1.933 6.003M296.2 243.17c-.308 1.727-1.934 8.547-3.054 11.295M306.27 229.03s4.884 1.018 5.188 0c0 0 1.628 29.512 3.866 45.891M304.14 232.79c0 1.934-.609 16.485-.609 16.485M305.97 251.41s1.931 2.745 1.425 4.066M289.59 227.4c1.629.508 3.053.812 3.053.812M297.83 229.84c-.307.814-.61 4.58-.61 4.58M305.97 273.29c.61.814 1.425 1.936.814 4.377"/> - </g> - <path d="M284.91 224.45s0-3.256 1.22-4.886c0 0 3.457.714 8.342 1.222 4.984.508 8.951.916 12.615.508 3.663-.406 7.428-1.322 7.428-1.322s1.017 4.784.506 5.496c0 0-3.968.814-8.341 1.016-4.477.303-11.902-.408-14.445-.812-3.359-.408-6.31-1.02-7.325-1.222z" fill="#9b5f00"/> - <path d="M288.06 224.85l.608-4.883 1.019.1-.203 5.088-1.424-.305M310.14 220.78l.103 5.496 1.221-.206-.102-5.597-1.222.307M294.47 220.78l-.406 5.291h.713l.712-5.291h-1.019" fill="#fff"/> - <path d="M276.77 320.81c-.305 1.322-.812 3.154-1.018 5.496 0 .508-.507 3.256 1.018 3.356 1.12.103 1.425-2.849 1.425-2.849s-1.019 3.256.305 3.664c1.832.403 2.034-3.562 2.034-3.562-.204 1.119-1.425 3.969.306 4.271 1.831.307 2.339-3.867 2.339-3.867s-1.525 4.174.305 4.275c1.729.1 1.729-4.072 1.729-4.072s-.916 4.988 1.526 4.58c1.321-.203 1.628-1.934 1.933-2.951.406-1.524 1.322-3.457.204-6.612-.812-2.341-.507-2.951-.507-2.951s-2.85 2.138-5.087 3.562c-1.019.609-6.514-2.34-6.514-2.34zM306.48 316.43c-.508-.307-.406 1.832-.609 2.846-.103 1.021.204 3.257 3.663 3.055 3.355-.307 6.715-1.018 8.851-.509 2.137.61 5.289.711 7.021.711 1.729 0 2.849-.202 3.661-.509.713-.303 2.238.408 2.95.408.713 0 1.831-1.119 1.73-1.832-.103-1.324-1.322-1.324-3.054-1.424-1.628-.203-3.865-.511-4.983-.916-1.12-.408-3.154-1.527-5.698-2.035 0 0-4.883.205-5.898.205-1.019 0-7.022.303-7.634 0z"/> - </g> - <g fill="none"> - <path d="M255.71 189.85c-.507.306-1.12-2.035.406-2.951 0 0 .406-1.931 2.035-2.136 0 0 1.321-1.832 3.257-1.626 0 0 2.235-1.525 3.051-1.324.812.102 2.849 2.136 2.95 2.85.204.711 0 1.933-.511 2.442-.609.608-1.018-.102-1.119-.916 0 0 .407 1.524-.813 2.135-1.219.714-1.119.206-1.219-.61 0 0-.308 1.63-1.12 1.832-.814.305-1.322-.408-1.935-.408 0 0 1.019.816.307 1.426-.713.508-1.526.303-2.036-.102-.509-.508-1.12-1.832-3.257-.61l.004-.002z" fill="#ffb366"/> - <path d="M265.68 186.09c-.51-1.629-2.137-3.054-4.069-2.848M263.85 187.61c-.306-.408-.408-.816-.712-1.22-.916-1.528-2.849-1.424-4.477-1.832M261.1 189.14c-.609-.406-.813-1.222-1.425-1.524-1.018-.408-2.034-.916-3.255-.714"/> - </g> - </g> - <g transform="translate(-128) scale(1.024)" stroke="#000" stroke-width=".509"> - <path d="M439.14 165.12c.712-.306.51.61.61.916.306 1.321.306 2.748.813 3.967.608 1.119.812 1.526 1.83 2.035 1.627.916 6.407 3.562 9.767 1.424a3.11 3.11 0 0 0 .712-.508s-1.221 4.172 2.95 6.207c1.321.71 15.668 8.241 15.668 8.241s1.525 2.748.609 6.512c-.204.61-.405 1.118.204 1.526 1.019.71 2.644 2.748 3.766 6.004 0 0 2.947-1.324 2.947-3.256 0-1.934-1.219-2.951-1.525-4.375-.202-1.324-1.017-4.682-.608-5.698.405-1.118 2.135-1.526 2.847-1.936.714-.408 1.526.406 1.322 1.322-.102 1.018-.812.816-1.628 1.018 0 0 1.02 1.932.814 3.356l9.358 4.783s-1.221 1.629-1.628 2.34c-.509.715-1.425 10.175-4.171 14.653-2.748 4.477-3.663 3.256-4.171 3.866-.61.508-1.424 1.324-2.137 1.934-.608.508-3.764.814-4.476-.916-.712-1.628-1.221-2.647-3.153-4.174-1.934-1.524-5.9-5.391-5.9-7.123 0 0-2.341 6.719-2.035 12.313 0 0-8.443 1.731-16.176 1.936-7.631.102-11.497-1.528-11.497-1.528s-1.018-6.409-.61-7.631c0 0-1.22 4.172-2.033 5.596-1.118 1.727-2.236 5.291-4.375 5.493-2.236.104-3.968-2.135-4.271-3.051v-6.716h-8.646c0-.101-3.766 1.424-5.087 1.223-1.221-.105-1.832-1.223-.813-1.631l.407-.303c-1.119 0-2.544.71-2.544.71h-4.272c0-.101.103-.408.103-.508.307-1.219 2.545-2.24 4.272-2.95 1.628-.609 3.356-1.324 4.578-1.424 1.933-.203 3.256-.101 6.206.408.812.101 3.967.408 5.798 1.322.508.304 1.118.405.813-.915-.305-1.426-1.221-5.598.307-8.346 1.018-1.933.916-3.559.813-5.189-.204-1.729-1.118-5.598-1.118-7.325 0-5.699 4.375-8.039 8.24-9.262 4.272-1.319 7.121-2.748 6.92-5.288-.104-2.646.608-7.021.202-9.058" fill="url(#e)"/> - <g fill="none"> - <path d="M456.34 153.63c.916 3.356 1.12 4.169 1.12 5.291 0 1.219-.509 1.424-.104 2.748.713 2.441-.712 5.088-2.441 7.937-.813 1.32-1.424 3.052-2.746 3.866-3.356 2.135-7.427-.408-9.563-1.327-1.117-.505-1.729-1.319-2.033-2.135-.407-1.219-.509-2.34-.813-3.967 0-.306.103-1.219-.609-.916-1.22-1.424-1.018-2.034-1.524-3.051-.509-1.021.916-2.139 2.034-1.934-.61-1.933-.916-4.072-.306-5.904.204-.608-.508-2.235.51-1.832 4.577 1.832 9.969 1.426 14.854 1.426.404 0 .71-.812 1.32-.71.098-.001.2.305.301.508" fill="url(#f)"/> - <path d="M456.75 155.35c.508-.406.204-2.34-.306-4.375-.203-1.017-1.018-1.424-2.136-2.542-1.12-1.122-1.525-1.122-2.236-1.424-.609-.206-2.034-.206-2.746-.508-.61-.308-2.238-.105-3.766.101-2.036.304-3.153.202-4.679 1.018-1.526.814-2.746 1.73-3.256 3.256-.406 1.118-1.12 2.542-.814 6.817.204 4.272 1.019 3.458 1.019 3.458s1.12-1.628 1.832-.61c0 0-.103-2.24-.305-3.561-.103-1.222 0-2.748.509-4.58 0 0 4.679 1.732 9.054 1.732 3.053 0 7.021-.306 7.123-1.017l.71 2.235h-.003z" fill="#000"/> - <path d="M450.44 160.14c.61 1.732.104 1.222.408 2.34M440.57 164.51c0 .812-.61.61-1.019.61"/> - <path d="M456.85 158.82c-.916-.713-2.645-.204-3.46.102-1.525.71-.712 2.24-.204 3.664.204.71 1.02 1.727.511 2.441-.407.812-.713.408-1.629.51.104-.308-.812 0-1.117 0-.61-.102-.916.403-1.426.202-.608-.304-.508-1.22-.306-1.729M449.32 159.53c0-.403-1.321-.811-2.745-.915-2.238-.102-2.442.104-4.172 1.322M453.9 168.89c-.405-.608-1.018-.916-2.137-.405 0-.204-1.524-.406-1.524-.406-.812 0-1.321.303-2.136.71M453.69 169.4c-.916-.609-3.256-.201-5.596-.201M448.3 170.01c1.73.512 3.46.816 5.188 0"/> - <path d="M456.44 160.14c-.712-.1-1.018-.916-3.153.306-1.119.61 1.832 1.426 1.425 1.324 1.22.202 1.628-.508 1.729-1.122-.001-.203.203-.508-.001-.508zM448.1 160.95c0-.816-1.829-1.119-2.847-.816-1.019.306-.61.105-1.526.613 1.02.203.712.303 1.526.71.914.408 1.12.814 2.339.206.306-.105.712-.508.813-.916-.101.101-.202.203-.305.203z" fill="#fff" stroke-width=".305"/> - <path d="M455.12 161.36a.802.802 0 0 1-.813-.814c0-.508.307-.916.813-.916.405 0 .712.408.712.916 0 .408-.307.814-.712.814zM446.37 161.56c-.406 0-.712-.403-.712-.916 0-.508.403-.811.812-.811.409 0 .712.303.712.811 0 .514-.303.916-.812.916z" fill="#000" stroke-width=".305"/> - </g> - <use height="100%" width="100%" xlink:href="#g" transform="matrix(-1 0 0 1 748.816 0)" fill="#730000"/> - <g fill="none"> - <path d="M491.64 193.51c.508.206 1.934-2.033.508-3.051 0 0-.508-1.932-2.136-2.034 0 0-1.322-1.933-3.257-1.63 0 0-2.136-1.524-2.948-1.421-.916.202-2.951 2.237-3.053 2.95-.102.609 0 1.832.508 2.441.61.51 1.02-.104 1.119-1.02 0 0-.405 1.529.813 2.24 1.221.71 1.119.1 1.221-.71 0 0 .306 1.626 1.12 1.932.812.303 1.321-.408 1.934-.408 0 0-1.018.815-.305 1.324.713.61 1.525.303 2.035-.104.61-.404.306-1.727 2.441-.509z" fill="#730000"/> - <path d="M482.49 189.75c.506-1.73 2.235-3.153 4.067-2.849M484.42 191.28c.203-.411.305-.816.61-1.224.915-1.524 2.948-1.524 4.576-1.832M487.06 192.7c.61-.408.814-1.118 1.426-1.421 1.018-.512 2.136-.916 3.256-.714"/> - <path d="M482.31 186.77c-.896.716-1.837 1.798-1.906 2.281-.103.61-.008 1.827.5 2.438.551.461.949-.017 1.095-.781-.059.463-.071 1.465.844 2 1.22.71 1.118.095 1.219-.719 0 0 .312 1.635 1.125 1.938.813.306 1.325-.406 1.938-.406 0 0-1.026.804-.312 1.312.712.61 1.522.309 2.031-.094.61-.408.3-1.722 2.438-.5.267.106.804-.452 1.031-1.156l-7.688-5.531-2.315-.782z" fill="#730000" stroke="none"/> - <path d="M480.68 188.19c-1.502 2.582.5 4.132 1.164 2.619-.193 2.386 1.606 2.292 2.285 1.538.658 2.512 1.83 1.395 2.909 1.164-1.223 2.29 1.479 1.609 2.12 1.081.924-1.362 1.356-.277 2.036-.416l1.164-1.247M484.38 187.23c-1.686.896-2.512 2.137-2.535 3.699M486.71 188.73c-1.687.896-2.512 2.137-2.535 3.699M489.58 190.68c-1.687.897-1.765 1.722-2.493 2.826"/> - </g> - </g> - <g fill="#5ac800"> - <path d="M169.062 331.428l-.209-4.792 1.98 1.668.521-3.648c.833-.21 2.188 1.46 2.188 1.46l-.209-3.65 3.021 3.336s-.208-2.814.832-4.482c0 0 2.29 1.981 2.29 4.272 0 1.985 1.98-2.814 1.98-2.814.522 1.67 1.668 5.315 1.668 5.315l1.353-1.98 1.147 4.167 2.5-3.648 1.977 4.275 4.48-.315.522 2.498 1.98-2.186 2.604 1.666s2.188-.624 3.334-.624 2.5 1.46 2.5 1.46.833-1.46 1.668-1.984c.831-.518 1.981.835 2.29 1.669l1.668-3.021s2.188 2.188 2.5 3.02c0 0 .31-2.498.832-3.334.522-.833 1.353.314 1.98 1.355l1.353-4.48s1.46.31 2.5 1.98c1.143 1.666 1.143-2.499 1.143-2.499s2.5 3.334 3.126 5.625c0 0-17.25 5.923-29.416 4.304-14.318-1.907-26.113-4.615-26.113-4.615M287.304 330.906s.832-2.293 1.981-3.441c0 0 2.187 2.607 2.187 3.44 0 0 .623-.312 1.77-1.147l1.668 1.666 1.981-1.352 1.876 1.665 3.437-1.458 1.354 1.458 5.312-.62 1.98.831 1.875-2.397 1.772 1.876 2.812-2.814s1.354 1.145 1.667 1.981c0 0 2.292-1.144 2.813-1.981 0 0 2.187-.833 2.498.521 0 0 1.354-1.042 1.252-2.186-.105-1.145 1.561-.315 2.083 1.144 0 0 .623-2.289 2.29-2.499 0 0 1.144 1.35.832 3.857 0 0 2.5-1.984 3.646-2.192 0 0 .52 2.814-.312 5.318 0 0 2.604-4.274 3.126-2.814.21.831.834 3.646.21 5.624l2.29-1.459.832 2.814 2.499-.52s-14.789 2.264-28.723.935c-13.934-1.33-27.01-6.25-27.008-6.25M277.002 341.248c.677-.418-4.655 10.965-17.582 11.57-17.984.843-33.359-8.13-33.359-8.13s1.876-3.125 3.02-3.96c0 0 2.5 1.982 3.334 4.48 0 0 .314-1.666 1.147-3.124 0 0 3.125 1.456 3.647 3.438 0 0 1.146-1.981 1.98-2.5.831-.627 1.667 2.186 1.667 3.856 0 0 1.978-2.087 3.125-2.19 0 0 2.189 1.041 2.813 4.69 0 0 2.084-1.98 2.812-1.67 0 0 2.5 1.67 1.874 3.96-.311 1.252 2.5-1.456 5.94-2.29l3.02 2.29s2.812-3.749 3.647-5.003c0 0 2.291.836 2.291 2.192 0 0 1.044-3.962 1.876-4.377.832-.52 1.978 1.249 1.978 2.398 0 0 .314-3.023 1.981-3.648 0 0 1.667 1.145 1.667 2.294-.003-.002 1.767-3.44 3.122-4.276z"/> - </g> - <g fill="none" stroke="#060" stroke-width=".509"> - <path d="M169.062 331.428l-.209-4.792 1.98 1.668.521-3.648c.833-.208 2.188 1.46 2.188 1.46l-.209-3.646 3.021 3.334s-.208-2.814.832-4.48c0 0 2.29 1.98 2.29 4.272 0 1.983 1.98-2.814 1.98-2.814.522 1.67 1.668 5.316 1.668 5.316l1.353-1.983 1.146 4.167 2.5-3.645 1.978 4.272 4.48-.315.522 2.502 1.98-2.188 2.604 1.668s2.186-.624 3.333-.624c1.147 0 2.5 1.456 2.5 1.456s.832-1.456 1.668-1.977c.831-.521 1.98.831 2.289 1.665l1.668-3.02s2.188 2.188 2.5 3.02c0 0 .312-2.498.833-3.334.522-.832 1.353.314 1.98 1.356l1.353-4.48s1.458.31 2.498 1.979c1.147 1.665 1.147-2.503 1.147-2.503s2.499 3.336 3.128 5.627M287.304 330.906s.831-2.289 1.98-3.437c0 0 2.186 2.606 2.186 3.437 0 0 .625-.313 1.772-1.144l1.667 1.665 1.98-1.352 1.875 1.666 3.439-1.458 1.35 1.458 5.313-.622 1.981.831 1.874-2.393 1.772 1.872 2.812-2.81s1.354 1.142 1.667 1.978c0 0 2.292-1.145 2.813-1.978 0 0 2.186-.834 2.497.517 0 0 1.354-1.041 1.25-2.186-.105-1.145 1.562-.311 2.083 1.149 0 0 .624-2.294 2.292-2.504 0 0 1.145 1.355.832 3.857 0 0 2.5-1.979 3.646-2.189 0 0 .521 2.811-.311 5.314 0 0 2.605-4.272 3.125-2.813.209.831.834 3.647.209 5.625l2.292-1.459.832 2.814 2.499-.522M225.976 344.71s1.876-3.125 3.02-3.96c0 0 2.5 1.98 3.334 4.48 0 0 .316-1.666 1.147-3.124 0 0 3.126 1.454 3.647 3.438 0 0 1.146-1.98 1.98-2.5.833-.628 1.667 2.186 1.667 3.854 0 0 1.98-2.085 3.126-2.189 0 0 2.188 1.042 2.812 4.69 0 0 2.085-1.98 2.812-1.67 0 0 2.5 1.67 1.875 3.96-.312 1.251 2.5-1.455 5.94-2.29l3.02 2.29s2.811-3.75 3.646-5.002c0 0 2.291.834 2.291 2.19 0 0 1.044-3.961 1.876-4.375.832-.52 1.978 1.249 1.978 2.396 0 0 .314-3.021 1.982-3.647 0 0 1.667 1.145 1.667 2.293 0 0 1.77-3.437 3.125-4.275" stroke-width=".521216"/> - </g> - <g fill="#fff"> - <path d="M255.427 386.028c23.441.21 37.298-8.337 44.903-13.443 17.813-11.98 21.564-12.397 24.482-12.191 3.335.316 8.228 1.461 8.438 4.38.313 4.48-6.979 6.458-11.148 6.458-4.27 0-15.42-2.814-15.42-2.814l-2.918 1.982c1.98.938 24.797 8.542 29.172 1.355 4.477-7.293 8.96-19.069 8.96-19.069s-5.001-8.961-16.15-8.961c-11.251 0-22.191 7.088-29.482 12.397-7.294 5.314-16.46 12.607-40.84 12.607-24.379 0-33.65-7.293-40.941-12.607-7.292-5.313-18.232-12.397-29.378-12.397-11.25 0-16.253 8.961-16.253 8.961s4.48 11.776 8.96 19.069c4.374 7.187 27.192-.417 29.168-1.355l-2.812-1.982s-11.25 2.814-15.42 2.814c-4.27 0-11.563-1.979-11.25-6.459.209-2.918 5.104-4.065 8.439-4.38 2.916-.205 6.667.213 24.48 12.192 7.61 5.106 21.466 13.338 45.01 13.443"/> - <path d="M217.713 358.41s0-1.984-.316-4.898c-.416-3.751-2.603-4.69-4.373-4.168-1.145.412-3.437 3.23-3.437 3.23v.106a33.14 33.14 0 0 0-3.23-1.982c.834-.937 5.626-3.854 6.772-3.854 1.044 0 15.42 5.834 20.001 9.792 1.147 1.045 1.981 7.504 1.354 9.585-7.709-1.98-12.71-4.895-16.774-7.71v-.104M210.831 373.002s-3.126 3.124-3.228 8.856c-.107 6.771 4.792 7.086 8.02 6.98 3.856-.107 6.98-2.292 6.877-9.482 0 0-6.356-2.71-11.67-6.356M293.038 358.41s.106-1.984.418-4.898c.413-3.751 2.498-4.69 4.27-4.168 1.146.412 3.436 3.23 3.436 3.23v.106a32.985 32.985 0 0 1 3.228-1.982c-.831-.937-5.623-3.854-6.666-3.854-1.145 0-15.52 5.834-20.105 9.792-1.045 1.045-1.876 7.504-1.354 9.585 7.814-1.98 12.709-4.895 16.773-7.71v-.104M299.91 373.002s3.125 3.124 3.229 8.856c.209 6.771-4.795 7.086-8.021 6.98-3.857-.107-6.876-2.292-6.876-9.482 0 0 6.356-2.71 11.67-6.356"/> - </g> - <g fill="#69f"> - <path d="M204.063 368.415s-11.149 2.814-15.315 2.814c-4.27 0-11.564-1.977-11.25-6.46.208-2.918 5.104-4.062 8.438-4.374 2.5-.212 5.73.103 18.127 8.02M306.688 368.415s11.146 2.814 15.42 2.814c4.167 0 11.459-1.977 11.146-6.46-.207-2.918-5.103-4.062-8.437-4.374-2.503-.212-5.732.103-18.129 8.02M217.713 358.513c-1.146-.834-2.292-1.67-3.337-2.5-1.561-1.148-3.125-2.19-4.793-3.334 0 0 2.292-2.918 3.438-3.232 1.77-.623 3.957.31 4.373 4.062.314 2.919.314 5.005.314 5.005M210.104 387.901c1.983 1.148 4.168 1.045 5.524.938 3.855-.104 6.98-2.291 6.876-9.48 0 0 4.79 2.396 12.604 4.272 0 0 1.252 1.562 1.459 4.686.315 2.608-1.459 5.418-3.54 5.212 0 0-10.94-1.98-17.605-3.124-3.856-.728-5.314-2.502-5.314-2.502M293.038 358.513c1.145-.834 2.292-1.67 3.436-2.5 1.46-1.148 3.02-2.19 4.688-3.334 0 0-2.29-2.918-3.436-3.232-1.77-.623-3.855.31-4.27 4.062-.315 2.916-.418 5.004-.418 5.004M300.636 387.901c-1.98 1.148-4.168 1.045-5.522.938-3.856-.104-6.876-2.291-6.876-9.48 0 0-4.794 2.396-12.502 4.272 0 0-1.354 1.562-1.563 4.686-.209 2.608 1.563 5.418 3.542 5.212 0 0 11.042-1.98 17.606-3.124 3.855-.728 5.312-2.502 5.312-2.502"/> - </g> - <g fill="none" stroke="#000" stroke-width=".712"> - <path d="M255.427 386.028c23.442.207 37.298-8.339 44.903-13.443 17.813-11.981 21.564-12.396 24.48-12.19 3.336.313 8.233 1.46 8.439 4.376.314 4.48-6.98 6.459-11.149 6.459-4.27 0-15.418-2.81-15.418-2.81l-2.917 1.981c1.98.938 24.794 8.544 29.17 1.352 4.48-7.293 8.957-19.066 8.957-19.066s-5-8.964-16.148-8.964c-11.25 0-22.19 7.088-29.483 12.4-7.292 5.314-16.458 12.608-40.839 12.608-24.378 0-33.647-7.294-40.94-12.607-7.292-5.313-18.233-12.401-29.379-12.401-11.25 0-16.25 8.964-16.25 8.964s4.477 11.773 8.958 19.066c4.376 7.19 27.193-.414 29.17-1.352l-2.81-1.98s-11.254 2.809-15.418 2.809c-4.273 0-11.565-1.975-11.253-6.459.209-2.918 5.104-4.062 8.439-4.375 2.915-.207 6.665.21 24.48 12.19 7.608 5.107 21.464 13.34 45.008 13.442z" stroke-width=".729088"/> - <path d="M204.063 368.415s-11.15 2.814-15.313 2.814c-4.272 0-11.564-1.98-11.253-6.46.209-2.918 5.105-4.065 8.439-4.374 2.497-.212 5.73.103 18.127 8.02zM306.678 368.415s11.148 2.814 15.42 2.814c4.166 0 11.459-1.98 11.146-6.46-.208-2.918-5.102-4.065-8.435-4.374-2.5-.212-5.733.104-18.127 8.02h-.004zM217.713 358.513c-1.147-.834-2.292-1.67-3.337-2.5-1.56-1.148-3.124-2.19-4.79-3.334 0 0 2.29-2.918 3.436-3.232 1.77-.623 3.957.31 4.373 4.066.318 2.912.318 5 .318 5z" stroke-width=".729088"/> - <path d="M217.713 358.41s0-1.982-.316-4.898c-.413-3.751-2.603-4.69-4.373-4.168-1.147.417-3.439 3.23-3.439 3.23v.106a34.006 34.006 0 0 0-3.23-1.982c.834-.937 5.626-3.854 6.773-3.854 1.045 0 15.419 5.834 20.002 9.795 1.147 1.043 1.98 7.5 1.354 9.586-7.71-1.983-12.711-4.9-16.776-7.71M210.831 373.002s-3.124 3.124-3.227 8.856c-.106 6.767 4.791 7.084 8.02 6.98 3.856-.107 6.978-2.292 6.879-9.486 0 0-6.356-2.71-11.67-6.356l-.002.006z" stroke-width=".729088"/> - <path d="M213.443 374.559s-2.498 2.604-2.916 6.876c-.209 3.335 1.979 5.208 4.792 5 3.958-.206 5.523-5.624 3.647-8.646l-5.523-3.23" stroke-width=".729088"/> - <path d="M210.104 387.901c1.98 1.146 4.166 1.043 5.522.938 3.855-.106 6.977-2.293 6.878-9.482 0 0 4.791 2.396 12.605 4.272 0 0 1.252 1.562 1.458 4.69.314 2.604-1.458 5.418-3.54 5.208 0 0-10.94-1.98-17.606-3.124-3.859-.732-5.317-2.502-5.317-2.502zM293.038 358.513c1.147-.834 2.292-1.67 3.438-2.5 1.459-1.148 3.02-2.19 4.688-3.334 0 0-2.291-2.918-3.438-3.232-1.77-.623-3.855.31-4.27 4.066-.313 2.915-.416 5-.416 5h-.002z" stroke-width=".729088"/> - <path d="M293.038 358.41s.106-1.982.418-4.898c.415-3.751 2.498-4.69 4.27-4.168 1.147.417 3.436 3.23 3.436 3.23v.106a34.006 34.006 0 0 1 3.23-1.982c-.833-.937-5.625-3.854-6.668-3.854-1.146 0-15.52 5.834-20.105 9.795-1.045 1.043-1.876 7.5-1.354 9.586 7.814-1.983 12.709-4.9 16.773-7.71M299.91 373.002s3.125 3.124 3.229 8.856c.209 6.767-4.795 7.084-8.023 6.98-3.855-.107-6.874-2.292-6.874-9.486 0 0 6.354-2.71 11.667-6.356v.006z" stroke-width=".729088"/> - <path d="M297.308 374.559s2.5 2.604 2.918 6.876c.314 3.335-1.982 5.208-4.794 5-3.958-.206-5.416-5.624-3.646-8.646l5.522-3.23" stroke-width=".729088"/> - <path d="M300.636 387.901c-1.98 1.146-4.168 1.043-5.522.938-3.855-.106-6.874-2.293-6.874-9.482 0 0-4.795 2.396-12.501 4.272 0 0-1.354 1.562-1.563 4.69-.208 2.604 1.563 5.418 3.542 5.208 0 0 11.044-1.98 17.605-3.124 3.856-.732 5.313-2.502 5.313-2.502z" stroke-width=".729088"/> - </g> - <g fill="none" stroke="#fff" stroke-width=".712"> - <path d="M234.281 385.505s3.438 2.504-.73 5.628M223.97 383.836l10.52 4.586M225.73 386.232l7.707 3.332M228.444 384.256l5.834 2.608M276.572 385.505s-3.543 2.504.625 5.628M286.781 383.836l-10.522 4.586M285.112 386.232l-7.707 3.332M282.307 384.256l-5.73 2.608" stroke-width=".729088"/> - </g> - <g stroke="#000" stroke-width=".7"> - <path d="M193.085 353.454c.15.242.245.495.292.754.04.264.03.56-.03.885-.149.775-.564 1.354-1.235 1.754-.676.397-1.451.506-2.308.343a3.926 3.926 0 0 1-1.16-.412 4.638 4.638 0 0 1-.946-.634c-.115.135-.235.265-.356.402-.167-.031-.334-.064-.5-.096.16-1.008.32-2.018.487-3.025.164.031.334.064.506.099.032.39.096.745.179 1.073.077.329.213.638.393.946.17.283.387.528.654.726.261.199.586.338.969.409.289.057.547.066.781.031.226-.034.425-.103.579-.216a1.4 1.4 0 0 0 .393-.426c.098-.168.169-.368.216-.615a1.824 1.824 0 0 0-.115-1.038c-.138-.345-.402-.628-.766-.86-.246-.156-.54-.339-.866-.536-.327-.2-.607-.37-.84-.54-.456-.318-.796-.677-1-1.099-.209-.412-.263-.909-.152-1.492a2.18 2.18 0 0 1 .386-.891 2.44 2.44 0 0 1 .737-.662c.283-.176.602-.282.957-.346.353-.055.71-.05 1.068.018a3.1 3.1 0 0 1 1.068.396c.297.187.57.38.804.6.112-.121.226-.245.337-.369l.503.097c-.17.973-.336 1.949-.505 2.923-.17-.034-.338-.065-.51-.098-.027-.352-.069-.69-.122-1.018a3.794 3.794 0 0 0-.295-.915 2.073 2.073 0 0 0-.549-.7c-.227-.194-.535-.322-.915-.395a1.47 1.47 0 0 0-1.088.187c-.325.204-.527.476-.596.84-.07.376-.039.708.095.994.129.288.352.539.664.766.278.206.558.382.834.546.273.163.532.326.787.5.23.153.455.32.66.504.198.18.372.378.505.59M205.865 355.246a3.847 3.847 0 0 0-.496-.186 1.5 1.5 0 0 0-.593-.09c-.174.014-.356.142-.55.377-.195.238-.4.55-.61.932-.625 1.134-1.253 2.268-1.878 3.404-.24.432-.538.758-.899.978-.36.222-.746.348-1.156.39a3.49 3.49 0 0 1-1.167-.08 4.441 4.441 0 0 1-1.009-.392c-.474-.262-.87-.554-1.173-.884-.305-.336-.533-.671-.663-1.022a2.374 2.374 0 0 1-.165-1.036c.022-.34.116-.654.278-.946.85-1.544 1.703-3.087 2.554-4.63a.964.964 0 0 0 .115-.362c.002-.105-.046-.235-.132-.38a1.597 1.597 0 0 0-.287-.325c-.132-.106-.234-.192-.327-.251.07-.13.144-.263.215-.392 1.104.61 2.202 1.217 3.305 1.822-.07.13-.145.263-.216.391a3.312 3.312 0 0 0-.419-.165c-.175-.063-.309-.1-.397-.111-.15-.024-.277 0-.374.084a.937.937 0 0 0-.25.298c-.796 1.441-1.594 2.883-2.389 4.326-.114.21-.213.443-.287.696a1.91 1.91 0 0 0-.083.796c.03.286.142.552.32.818.18.266.49.52.924.76.405.225.79.353 1.138.38.345.021.657-.022.933-.143a2.12 2.12 0 0 0 .665-.446c.182-.182.335-.384.456-.602l1.771-3.212c.227-.41.383-.76.464-1.054.085-.293.088-.503.02-.652-.074-.166-.219-.336-.411-.508a3.806 3.806 0 0 0-.473-.376l.216-.39 3.245 1.79c-.07.133-.142.263-.215.393M210.463 363.203c.138.284.219.597.224.927.006.334-.09.678-.294 1.035-.206.358-.463.625-.778.801a2.31 2.31 0 0 1-.999.296 3.132 3.132 0 0 1-1.053-.096 4.3 4.3 0 0 1-1.046-.426c-1.24-.714-2.48-1.43-3.718-2.142l.224-.388c.093.046.228.102.414.174.185.075.322.115.412.128a.575.575 0 0 0 .364-.068.76.76 0 0 0 .26-.285c1.068-1.856 2.137-3.715 3.206-5.57.071-.126.113-.245.128-.363.01-.117-.031-.241-.121-.375a1.79 1.79 0 0 0-.3-.34c-.122-.107-.22-.193-.312-.252.073-.128.15-.258.224-.386l3.624 2.088c.281.161.534.342.761.543.222.204.41.44.565.71.143.254.228.534.236.83.01.299-.066.609-.247.92-.155.27-.347.482-.569.636-.22.16-.468.26-.738.31a2.647 2.647 0 0 1-.792.03 3.546 3.546 0 0 1-.848-.176c-.01.017-.02.033-.028.05.212.16.432.356.662.6.23.25.413.511.539.789zm-.668-1.94c.231-.08.422-.192.582-.348.155-.156.312-.357.46-.615.243-.425.317-.828.223-1.209-.092-.384-.4-.716-.908-1.008-.116-.066-.267-.152-.447-.25a20.412 20.412 0 0 0-.453-.242l-1.719 2.982.697.401c.306.176.585.287.844.335.262.045.5.036.721-.046zm-.652 2.915c.263-.455.32-.92.183-1.395-.14-.478-.503-.878-1.086-1.215-.236-.136-.438-.25-.598-.338-.164-.088-.288-.151-.372-.195l-1.573 2.732a.662.662 0 0 0-.02.68c.12.224.349.432.688.625.545.317 1.06.406 1.534.256.475-.155.886-.529 1.244-1.15zM229.315 368.783a3.685 3.685 0 0 0-.511-.135 1.524 1.524 0 0 0-.6-.03c-.17.031-.338.178-.51.432a6.258 6.258 0 0 0-.513.988l-1.53 3.574c-.195.453-.461.807-.796 1.063a2.743 2.743 0 0 1-1.112.502 3.441 3.441 0 0 1-1.17.034 4.374 4.374 0 0 1-1.044-.288c-.497-.212-.918-.465-1.255-.764-.336-.304-.595-.614-.762-.95a2.374 2.374 0 0 1-.266-1.014 2.22 2.22 0 0 1 .178-.97l2.082-4.86a.963.963 0 0 0 .081-.369c-.009-.104-.067-.23-.169-.365a1.704 1.704 0 0 0-.32-.295c-.14-.093-.25-.17-.35-.219.06-.136.118-.275.176-.408l3.47 1.486c-.06.136-.117.274-.177.408a3.681 3.681 0 0 0-.433-.123 2.462 2.462 0 0 0-.406-.071c-.153-.01-.276.026-.364.12a1.008 1.008 0 0 0-.22.321c-.648 1.515-1.298 3.028-1.944 4.544-.095.219-.169.46-.221.717a1.911 1.911 0 0 0-.001.803c.06.28.196.534.401.781.206.246.537.47.995.663.428.185.823.273 1.173.265.343-.013.651-.084.913-.234.244-.143.46-.308.62-.508.16-.197.295-.414.394-.644l1.443-3.372c.186-.43.306-.794.36-1.094.052-.302.036-.51-.048-.65-.093-.16-.25-.315-.46-.466a3.97 3.97 0 0 0-.506-.327l.175-.408c1.133.486 2.271.971 3.405 1.458-.062.132-.121.27-.178.405M239.114 380.293l-3.845-1.112.125-.43c.142.034.323.072.55.112.222.034.385.046.48.028a.864.864 0 0 0 .358-.187.76.76 0 0 0 .193-.344l1.807-6.249a1.47 1.47 0 0 0-.094-.025c-1.681 2.163-3.403 4.295-5.087 6.461-.1-.028-.2-.06-.305-.088-.205-2.764-.464-5.525-.669-8.287a.76.76 0 0 0-.079-.023c-.493 1.708-.989 3.416-1.481 5.129-.145.493-.22.874-.23 1.159-.016.277.032.488.126.64.065.112.23.242.49.404.26.16.433.25.517.28l-.125.43-3.515-1.014.125-.432c.19.034.395.063.61.076.214.017.387-.002.526-.064.173-.075.32-.212.446-.436.12-.218.259-.6.416-1.148l1.27-4.396c.074-.254.103-.468.09-.648a1.012 1.012 0 0 0-.15-.472 1.31 1.31 0 0 0-.398-.376 2.175 2.175 0 0 0-.522-.25l.124-.428 2.963.856c.195 2.392.443 4.781.635 7.175 1.217-1.6 2.468-3.177 3.687-4.779.136-.177.267-.362.383-.568a3.02 3.02 0 0 0 .213-.407c.945.274 1.894.547 2.837.822-.04.142-.083.285-.124.428a4.114 4.114 0 0 0-.45-.07 2.566 2.566 0 0 0-.418-.023.469.469 0 0 0-.352.162 1 1 0 0 0-.18.348c-.597 2.066-1.194 4.128-1.79 6.194a.844.844 0 0 0-.03.377c.021.111.09.22.208.335.063.064.183.137.362.224.18.092.32.15.43.19-.043.137-.085.282-.127.426M248.422 377.467c.236.21.434.466.567.77.132.306.183.66.13 1.066a2.15 2.15 0 0 1-.406 1.042c-.221.282-.49.496-.805.66-.309.163-.647.263-1.011.32a4.245 4.245 0 0 1-1.129.01c-1.42-.178-2.837-.357-4.256-.534.019-.15.036-.298.056-.445.103.007.249.007.45 0 .197-.002.343-.018.431-.042a.557.557 0 0 0 .309-.203.77.77 0 0 0 .13-.364c.268-2.124.533-4.25.801-6.376.02-.146.006-.274-.021-.384a.607.607 0 0 0-.258-.3 1.772 1.772 0 0 0-.406-.196c-.156-.052-.278-.094-.385-.111.019-.149.036-.296.056-.445 1.382.174 2.766.35 4.151.523.32.041.62.109.914.21.282.102.546.243.79.436a1.8 1.8 0 0 1 .543.671c.124.273.168.586.123.945-.04.31-.133.58-.274.806a1.85 1.85 0 0 1-.561.574c-.216.146-.459.25-.718.334-.27.09-.55.14-.85.166l-.009.056c.256.065.533.16.843.296.303.14.573.31.795.515zm-1.366-1.53c.182-.162.318-.342.406-.546.083-.203.147-.448.184-.746.063-.487-.025-.882-.262-1.2-.234-.319-.642-.504-1.227-.578a29.08 29.08 0 0 0-.505-.06l-.519-.048c-.143 1.14-.284 2.278-.429 3.416.269.032.534.065.799.1.347.044.652.038.912-.018a1.38 1.38 0 0 0 .641-.32zm.527 2.942c.064-.525-.062-.974-.369-1.36-.315-.386-.805-.614-1.471-.698-.274-.034-.5-.063-.684-.08-.188-.02-.325-.03-.422-.038l-.394 3.13a.667.667 0 0 0 .247.634c.197.16.49.263.876.311.627.08 1.132-.035 1.511-.359.381-.329.617-.833.706-1.54zM259.779 381.696h-2.445c-.531-.845-1.029-1.554-1.457-2.17-.437-.612-.917-1.228-1.425-1.882h-.927v2.835c0 .146.027.278.07.383.046.114.148.2.302.26.074.03.21.055.401.082.193.024.354.038.487.045v.448h-3.83v-.448c.1-.007.248-.024.447-.045.193-.021.326-.052.403-.081a.546.546 0 0 0 .278-.24c.062-.107.084-.238.084-.404v-6.464c0-.142-.02-.277-.062-.392-.046-.11-.144-.199-.302-.256a2.375 2.375 0 0 0-.415-.107c-.172-.028-.312-.053-.433-.057v-.448h4.183c.382 0 .74.035 1.08.113.337.084.638.204.911.38.262.17.478.38.632.654.156.27.237.598.237.982 0 .349-.054.649-.159.915a1.9 1.9 0 0 1-.474.686c-.188.187-.423.332-.69.468a5.637 5.637 0 0 1-.885.34c.44.588.822 1.072 1.117 1.472.289.4.663.879 1.085 1.455a2.694 2.694 0 0 0 .96.853c.107.06.249.096.414.124.167.031.307.046.415.053-.002.146-.002.295-.002.446zm-3.36-6.662c0-.54-.163-.965-.47-1.29-.31-.319-.76-.475-1.334-.475h-1.088v3.832h.838c.586 0 1.083-.177 1.468-.555.384-.377.587-.874.587-1.512zM270.213 381.03c-1.252.097-2.502.19-3.757.286l-.034-.448c.331-.044.602-.107.822-.189.21-.082.314-.164.307-.257-.003-.038-.016-.08-.024-.138a.495.495 0 0 0-.049-.142c-.295-.649-.606-1.292-.903-1.94l-3.173.239c-.097.304-.176.562-.228.79-.058.227-.114.43-.157.618-.042.186-.071.33-.081.448-.01.116-.019.208-.012.278.013.168.155.282.43.36.276.074.579.1.919.094l.034.449-3.403.258-.034-.449c.11-.014.245-.048.408-.104a1.36 1.36 0 0 0 .396-.192c.163-.128.283-.253.368-.39.087-.127.162-.3.234-.53.36-1.153.785-2.443 1.217-3.883.43-1.437.843-2.715 1.18-3.836l.51-.037c1.18 2.496 2.41 4.964 3.595 7.457.075.16.16.284.246.382.091.096.207.185.36.267.102.053.232.092.394.117.162.032.292.042.401.038.013.154.024.305.034.454zm-3.91-3.37c-.535-1.118-1.095-2.228-1.634-3.35-.352 1.19-.732 2.37-1.087 3.556l2.721-.207zM283.064 370.606c-.15.04-.308.082-.456.124-.177-.3-.45-.587-.82-.883-.37-.292-.69-.42-.95-.39-.135.02-.289.045-.462.085-.179.044-.377.092-.602.152l-1.466.398.94 3.465 1.002-.273c.302-.082.538-.174.687-.288.145-.106.27-.243.35-.402.057-.116.098-.277.113-.485.018-.202.01-.415-.027-.638l.461-.126c.309 1.136.616 2.267.92 3.396-.15.04-.306.082-.46.126a3.056 3.056 0 0 0-.29-.576c-.14-.204-.263-.348-.372-.426a.932.932 0 0 0-.542-.189 2.438 2.438 0 0 0-.703.107l-1.003.273.806 2.972a.774.774 0 0 0 .182.336c.08.092.194.146.35.178.069.016.214.01.427-.01.214-.012.38-.04.486-.063l.117.433-3.79 1.028c-.038-.143-.08-.29-.117-.433.123-.039.285-.1.483-.176.196-.077.327-.13.382-.178a.543.543 0 0 0 .206-.306.862.862 0 0 0-.018-.399c-.564-2.073-1.127-4.15-1.689-6.226a1.172 1.172 0 0 0-.164-.34c-.073-.088-.193-.142-.354-.172a2.59 2.59 0 0 0-.48-.018 2.518 2.518 0 0 0-.472.05l-.117-.434 6.857-1.859c.193.723.39 1.447.585 2.167M293.161 369.838c.332.825.656 1.654.987 2.478-2.13 1.03-4.254 2.054-6.378 3.08a75.845 75.845 0 0 0-.196-.404c.09-.05.214-.128.384-.235.16-.101.271-.185.323-.246a.54.54 0 0 0 .151-.341.828.828 0 0 0-.101-.396l-2.785-5.766a.997.997 0 0 0-.228-.31c-.091-.076-.217-.113-.38-.107a1.7 1.7 0 0 0-.436.04c-.182.032-.324.07-.429.114l-.194-.404 3.443-1.663.195.405c-.109.058-.237.14-.386.254-.158.118-.27.208-.328.274a.438.438 0 0 0-.154.36.848.848 0 0 0 .097.387l2.612 5.41c.119.245.222.434.317.558.095.13.204.212.332.24.116.03.27.01.455-.063a6.04 6.04 0 0 0 .747-.32c.143-.066.284-.145.438-.224.152-.079.288-.17.414-.254.124-.09.23-.185.326-.278a.628.628 0 0 0 .176-.269c.069-.251.135-.599.17-1.06.032-.451.047-.805.02-1.065.137-.063.273-.13.408-.195M297.933 360.98c.55.158 1.08.418 1.563.804.49.398.918.888 1.277 1.496a5.27 5.27 0 0 1 .686 1.838c.1.615.064 1.202-.071 1.765a4.182 4.182 0 0 1-.714 1.504c-.336.458-.76.832-1.275 1.134-.542.32-1.099.522-1.681.585-.583.064-1.139.03-1.679-.14a4.317 4.317 0 0 1-1.534-.818 5.361 5.361 0 0 1-1.231-1.438 5.3 5.3 0 0 1-.695-1.854 4.643 4.643 0 0 1 .064-1.755 4.229 4.229 0 0 1 .728-1.521c.34-.462.76-.832 1.26-1.127a4.256 4.256 0 0 1 1.632-.576 4.1 4.1 0 0 1 1.67.103zm2.403 5.947a4.195 4.195 0 0 0-.21-1.387 7.355 7.355 0 0 0-.683-1.472 7.694 7.694 0 0 0-1.013-1.366 4.19 4.19 0 0 0-1.13-.852 2.55 2.55 0 0 0-1.186-.272c-.4.002-.806.127-1.197.358-.436.258-.755.575-.94.961-.186.384-.289.8-.284 1.243.009.428.086.877.251 1.357.164.483.383.957.662 1.429.306.518.636.96.972 1.326.34.363.717.644 1.109.852.39.206.78.294 1.19.3.406 0 .82-.116 1.239-.363.389-.23.695-.537.9-.9a2.53 2.53 0 0 0 .32-1.214zM311.572 360.827l-1.994 1.414c-.918-.382-1.738-.672-2.44-.926-.713-.252-1.465-.47-2.248-.711l-.761.537 1.64 2.313c.083.116.186.204.278.272.106.065.237.073.395.036a1.87 1.87 0 0 0 .377-.166c.174-.09.308-.172.42-.246l.26.366c-1.041.74-2.083 1.476-3.124 2.214-.086-.118-.174-.244-.26-.364.08-.064.19-.16.34-.294a1.67 1.67 0 0 0 .28-.302.52.52 0 0 0 .085-.354.794.794 0 0 0-.16-.376c-1.248-1.758-2.495-3.52-3.74-5.276a1.125 1.125 0 0 0-.277-.28c-.101-.067-.231-.083-.39-.037a3.275 3.275 0 0 0-.79.357c-.085-.12-.173-.246-.26-.365 1.137-.806 2.273-1.61 3.41-2.418.313-.22.628-.398.947-.53a2.9 2.9 0 0 1 .963-.22c.316-.017.61.037.891.165.29.13.542.354.763.666.203.284.337.56.398.838.07.278.073.551.017.833-.046.26-.153.51-.294.778a5.18 5.18 0 0 1-.529.79c.703.226 1.293.398 1.766.554.464.16 1.05.334 1.725.56a2.671 2.671 0 0 0 1.276.141c.123-.014.256-.067.41-.138.155-.069.278-.142.367-.199l.26.368zm-6.589-3.492c-.313-.442-.696-.694-1.131-.78-.44-.078-.895.05-1.365.384l-.888.628 2.218 3.13c.23-.162.456-.323.686-.487.479-.339.779-.773.872-1.301.096-.533-.024-1.057-.392-1.574zM319.037 355.195c.25.842.5 1.687.753 2.528l-7.056 2.617a29.36 29.36 0 0 1-.156-.42c.119-.05.277-.124.46-.229.19-.1.312-.168.362-.222a.625.625 0 0 0 .183-.329.787.787 0 0 0-.059-.388l-2.236-6.03a1.04 1.04 0 0 0-.194-.322c-.082-.08-.206-.121-.367-.139-.125-.012-.286 0-.479.026a2.353 2.353 0 0 0-.465.09c-.053-.138-.107-.28-.156-.42l6.576-2.44.749 2.022c-.151.058-.304.112-.449.168-.188-.276-.486-.522-.87-.763-.396-.244-.714-.33-.967-.273a4.56 4.56 0 0 0-.452.128c-.179.061-.372.126-.595.208l-1.333.494c.41 1.108.825 2.221 1.234 3.33l.96-.357c.304-.112.522-.222.646-.338a.935.935 0 0 0 .264-.418c.05-.148.063-.326.057-.546a3.068 3.068 0 0 0-.079-.583c.148-.054.298-.109.449-.166l1.219 3.288c-.151.057-.304.112-.449.166a3.383 3.383 0 0 0-.351-.558c-.148-.18-.276-.307-.392-.374a.927.927 0 0 0-.53-.142c-.182.008-.396.063-.654.16-.322.12-.642.237-.96.356.312.842.62 1.678.933 2.52.094.25.187.438.278.575.09.137.198.212.328.251.13.04.293.03.478-.014.188-.052.45-.132.779-.254.132-.05.303-.112.521-.193.217-.08.398-.15.536-.229.143-.075.296-.16.442-.262.145-.107.242-.2.278-.296.114-.258.205-.619.26-1.076.056-.458.089-.787.072-.984.145-.056.285-.108.432-.162M326.615 348.99c.449.36.834.805 1.125 1.352.296.556.496 1.175.588 1.876a5.193 5.193 0 0 1-.089 1.96 4.415 4.415 0 0 1-.755 1.596 4.13 4.13 0 0 1-1.246 1.102c-.49.29-1.025.466-1.613.544-.63.084-1.22.05-1.775-.12-.56-.168-1.065-.416-1.494-.784-.428-.36-.801-.8-1.087-1.352a5.191 5.191 0 0 1-.575-1.806c-.095-.722-.063-1.38.087-1.979.15-.593.412-1.12.751-1.59a4.243 4.243 0 0 1 2.867-1.659 4.334 4.334 0 0 1 1.726.109 4.15 4.15 0 0 1 1.49.75zm-.116 6.412a4.21 4.21 0 0 0 .354-1.36c.039-.49.021-1.03-.058-1.621a7.449 7.449 0 0 0-.398-1.652c-.184-.49-.423-.9-.7-1.227a2.584 2.584 0 0 0-.986-.713c-.372-.155-.791-.199-1.24-.14-.508.066-.925.233-1.248.518-.32.278-.58.62-.748 1.032a4.42 4.42 0 0 0-.295 1.344 7.422 7.422 0 0 0 .044 1.574c.079.596.209 1.13.38 1.6.164.469.407.873.688 1.216.273.346.597.577.973.745.373.16.804.214 1.285.15.448-.06.845-.223 1.175-.475a2.54 2.54 0 0 0 .774-.991z" stroke-width=".7168"/> - </g> - <path d="M305.121 218.788v56.576c0 11.252-1.561 56.058-49.694 73.46-48.235-17.402-49.798-62.204-49.798-73.46v-56.576h99.492" fill="none" stroke="#000" stroke-width="1.042"/> -</svg> diff --git a/img/flags/1x1/ca.svg b/img/flags/1x1/ca.svg deleted file mode 100644 index acc3a3f..0000000 --- a/img/flags/1x1/ca.svg +++ /dev/null @@ -1,6 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" height="512" width="512" viewBox="0 0 512 512"> - <g transform="translate(-.182 -3.025)"> - <path fill="#fff" d="M81.32 3.025h362.275v512H81.32z"/> - <path fill="#bf0a30" d="M-99.818 3.025H81.32v512H-99.818zm543.413 0h181.138v512H443.595zM135.49 250.44l-14.067 4.808 65.456 57.446c4.95 14.764-1.72 19.116-5.97 26.86l71.06-9.02-1.85 71.512 14.718-.423-3.21-70.918 71.13 8.432c-4.402-9.297-8.32-14.233-4.247-29.098l65.414-54.426-11.447-4.144c-9.36-7.222 4.044-34.784 6.066-52.178 0 0-38.195 13.135-40.698 6.262l-9.727-18.685-34.747 38.17c-3.796.91-5.413-.6-6.304-3.808l16.053-79.766-25.42 14.297c-2.128.91-4.256.125-5.658-2.355l-24.445-49.073-25.21 50.952c-1.9 1.826-3.802 2.037-5.38.796L202.8 142.505l14.53 79.143c-1.156 3.142-3.924 4.026-7.18 2.325l-33.216-37.737c-4.345 6.962-7.29 18.336-13.033 20.885-5.744 2.388-24.98-4.822-37.873-7.636 4.404 15.895 18.176 42.302 9.46 50.957z"/> - </g> -</svg> diff --git a/img/flags/1x1/cc.svg b/img/flags/1x1/cc.svg deleted file mode 100644 index e2ab9cd..0000000 --- a/img/flags/1x1/cc.svg +++ /dev/null @@ -1,19 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" height="512" width="512" viewBox="0 0 512 512"> - <defs> - <path d="M0-360l69.42 215.845 212.04-80.3L155.987-35.604l194.986 115.71-225.88 19.65 31.104 224.592L0 160l-156.198 164.35 31.105-224.592-225.88-19.65 194.985-115.71-125.47-188.854 212.037 80.3z" id="a"/> - <path d="M0-210L54.86-75.508l144.862 10.614L88.765 28.842l34.67 141.052L0 93.334l-123.435 76.56 34.67-141.052-110.957-93.736L-54.86-75.508z" id="b"/> - </defs> - <path fill="green" d="M0 0h512v512H0z"/> - <circle cx="268.22" cy="250.446" r="61.243" fill="#ffe000"/> - <circle cx="287.316" cy="250.446" r="50.394" fill="green"/> - <circle cx="75.159" cy="189.203" r="64.159" fill="#ffe000"/> - <path d="M70.732 237.58h16.02s.724-1.47-.16-2.204c-.885-.734-4.33-.896-3.4-3.493 1.914-5.34 2.18-3.694 3.383-16.376 1.2-12.683 1.78-32.575 1.78-32.575H86.04s.446 6.185-.89 14.24c-1.334 8.055-1.735 8.767-3.203 14.952-1.47 6.186-1.69 6.72-3.026 10.325-1.334 3.603-1.468 3.78-3.56 7.12-2.09 3.336-1.334 2.09-2.49 4.093-.58 1-1.292.734-1.68 1.463-.39.728-.458 2.453-.458 2.453z" fill="#802000" stroke="#7b3100" stroke-width="1.361"/> - <path d="M82.957 142.46c.134 2.488-.117 5.783-1.148 8.463-1.047 2.988-2.184 5.965-2.127 9.06-1.663.564-3.376-3.598-4.976-1.15 1.203 3.385 3.98 6.064 5.883 9.112.32.946 3.058 3.414 1.474 3.988-3.998-1.37-4.967-6.434-7.447-9.51-2.88-5.177-8.25-8.836-14.232-9.09-2.247.06-9.552-.556-7.652 3.292 2.8 1.903 6.25 3.144 9.014 5.28 2.06.193 5.792 3.63 5.574 4.93-3.62-1.467-5.316-3.225-9.22-4.77-5.287-2.04-12.6-.812-15.528 4.436-.546 1.367-1.352 5.35.365 5.73 2.005-3.13 4.874-6.63 9.125-5.692 3.34.26-3.726 6.22-1.024 5.02.857-.38 2.834-1.677 4.206-1.813 1.372-.135 2.138.892 3.178 1.034 2.082.283 2.655 1.155 2.462 1.663-.227.6-.89.088-3.005.76-1.06.334-1.61 1.264-2.846 1.69-1.234.425-3.8.455-4.76.078-3.357-1.457-8.86-1.203-9.906 3.003 0 1.85-1.647-.205-2.407.594-.57 2.02-.717 4.09-3.71 3.908-1.818 1.906-3.68 3.88-5.986 5.236 1.354 3.11 6.72-3.12 6.468-.493-2.345 3.198 1.207 3.87 2.762 1.41 2.63-2.78 5.887-6.162 9.81-3.362 1.87 1.76 2.956-.93 4.31-.786.85 2.185 1.923.107 2.89-.51 1.584-.2 1.14 1.977 3.02.637 3.75-2.482 8.364-.397 12.027-2.81 3.9-1.778.55 1.43-.528 2.683-1.713 3.323-.227 7.685-3.943 9.75-1.494 3.96 1.762 9.18-1.56 12.11-.482 1.836 4.273 1.626 5.607 2.38 2.338.093-.1-5.35 2.22-6.08 3.11 1.925 2.965-3.445 2.323-5.1.3-3.766.514-7.883 2.385-11.293 1.99-4.18 3.83 1.702 1.603 3.357-1.264 3.843-3.106 8.653-.23 12.227.83.187 1.51 2.196 2.583 2.813 1.074.618 2.54-.156 2.808-1.984 1.376-5.505.683-11.424 2.648-16.777 1.388-1.66 3.302-.268 4.162 1.257 2.755 3.198 4.692 7.196 8.027 9.832 3.036 1.42 5.722 3.57 7.12 6.696-.017 2.412 6.852 2.782 4.8.1-1.97-2.61-.67-5.22 1.324-6.955 1.067.263.752-1.65-.086-.893-1.34-.317-1.427-2.772.437-1.605 3.14 1.014-.243-2.272-1.378-2.373-2.655-1.646-5.706-3.54-7.01-6.4 3.455.036 7.043 1.9 10.575.743 2.83-1.454 5.702.122 6.69 2.617 2.19-.35 1.256-2.544 0-3.275 1.6-.66 2.708-2.03.768-3.238-1.025-1.338 1.374-3.62-1.575-3.525.096-2.253-.79-4.314-3.247-5.093-2.46-2.083-9.68 3.07-9.47-1.626-.727-2.556 2.933-.342 3.956-1.617 1.055-2.695-5.037-2.432-3.027-4.52 1.313-.846 7.475-2.06 2.643-2.965-2.412.663-4.482.172-6.38-1.022-1.73 2.894-6.668-1.57-5.788 3.573-.676 1.938-5.09 6.974-6.286 3.116 1.016-3.024 6.247-4.013 4.625-8.09-.25-2.545-2.36.443-3.353.253-.504-1.584 1.522-3.452 2.934-3.828 2.802 2.155 2.887-2.72 5.552-2.322 1.945-.432-.628-1.267-1.17-1.633.532-1.424 3.52-2.152.59-3.388-2.584-1.918-4.5 1.908-6.63 2.112-2.046-2.31 1.857-3.42 2.934-4.636.058-.906-2.276-.273-1.574-1.063.61-1.09 4.743-1.17 2.807-2.807-2.914-1-6.674-.75-9.47.545-1.762.57-2.28 4.554-3.8 4.39-.713-1.774.233-5.272-2.21-5.785zm13.78 38.915c2.22-.376.047 3.372-1.02 3.317.094-1.347-3.212-1.217-1.16-2.39a6.685 6.685 0 0 1 2.18-.927z" fill="green"/> - <g transform="translate(-25.746 103.463) scale(.05833)" fill="#ffe000"> - <use height="100%" width="100%" xlink:href="#a" x="7560" y="4200"/> - <use height="100%" width="100%" xlink:href="#a" x="6300" y="2205"/> - <use height="100%" width="100%" xlink:href="#a" x="7560" y="840"/> - <use height="100%" width="100%" xlink:href="#a" x="8680" y="1869"/> - <use height="100%" width="100%" xlink:href="#b" x="8064" y="2730"/> - </g> -</svg> diff --git a/img/flags/1x1/cd.svg b/img/flags/1x1/cd.svg deleted file mode 100644 index 44b3c09..0000000 --- a/img/flags/1x1/cd.svg +++ /dev/null @@ -1,12 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" height="512" width="512" viewBox="0 0 512 512"> - <defs> - <clipPath id="a"> - <path fill="#fff" d="M0-88h600v600H0z"/> - </clipPath> - </defs> - <g clip-path="url(#a)" transform="matrix(.853 0 0 .853 0 75.093)"> - <path fill="#007fff" d="M0-88h800v600H0z"/> - <path d="M36 32h84l26-84 26 84h84l-68 52 26 84-68-52-68 52 26-84-68-52zM750-88L0 362v150h50L800 62V-88h-50" fill="#f7d618"/> - <path d="M800-88L0 392v120L800 32V-88" fill="#ce1021"/> - </g> -</svg> diff --git a/img/flags/1x1/cf.svg b/img/flags/1x1/cf.svg deleted file mode 100644 index d48e669..0000000 --- a/img/flags/1x1/cf.svg +++ /dev/null @@ -1,15 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" height="512" width="512" viewBox="0 0 512 512"> - <defs> - <clipPath id="a"> - <path fill-opacity=".67" d="M0 0h512v512H0z"/> - </clipPath> - </defs> - <g fill-rule="evenodd" clip-path="url(#a)"> - <path fill="#00f" d="M-52-.506h768v127H-52z"/> - <path fill="#ff0" d="M-52 383.5h768V512H-52z"/> - <path fill="#009a00" d="M-52 255h768v128.5H-52z"/> - <path fill="#fff" d="M-52 126.49h768v128.5H-52z"/> - <path fill="red" d="M268 0h128v512H268z"/> - <path fill="#ff0" d="M109.493 112.306L75.95 89.11l-33.434 23.424L54.12 73.33 21.604 48.645l40.723-1.034L75.66 8.937l13.562 38.56 40.758.782-32.336 24.866"/> - </g> -</svg> diff --git a/img/flags/1x1/cg.svg b/img/flags/1x1/cg.svg deleted file mode 100644 index 021f36d..0000000 --- a/img/flags/1x1/cg.svg +++ /dev/null @@ -1,12 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" height="512" width="512" viewBox="0 0 512 512"> - <defs> - <clipPath id="a"> - <path fill-opacity=".67" d="M115.74 0H611.8v496.06H115.74z"/> - </clipPath> - </defs> - <g fill-rule="evenodd" clip-path="url(#a)" transform="translate(-119.46) scale(1.032)" stroke-width="1pt"> - <path fill="#ff0" d="M0 0h744.09v496.06H0z"/> - <path d="M0 0v496.06L496.06 0H0z" fill="#00ca00"/> - <path d="M248.03 496.06h496.06V0L248.03 496.06z" fill="red"/> - </g> -</svg> diff --git a/img/flags/1x1/ch.svg b/img/flags/1x1/ch.svg deleted file mode 100644 index 2009774..0000000 --- a/img/flags/1x1/ch.svg +++ /dev/null @@ -1,9 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" height="512" width="512" viewBox="0 0 512 512"> - <g fill-rule="evenodd" stroke-width="1pt"> - <path fill="#d52b1e" d="M0 0h511.984v511.983H0z"/> - <g fill="#fff"> - <path d="M95.994 207.993h319.99v95.994H95.993z"/> - <path d="M207.99 95.995h95.995v319.99H207.99z"/> - </g> - </g> -</svg> diff --git a/img/flags/1x1/ci.svg b/img/flags/1x1/ci.svg deleted file mode 100644 index 048e8b5..0000000 --- a/img/flags/1x1/ci.svg +++ /dev/null @@ -1,7 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" height="512" width="512" viewBox="0 0 512 512"> - <g fill-rule="evenodd"> - <path fill="#00cd00" d="M341.46 0h170.533v511.984H341.46z"/> - <path fill="#ff9a00" d="M0 0h170.3v511.984H0z"/> - <path fill="#fff" d="M170.3 0h171.16v511.984H170.3z"/> - </g> -</svg> diff --git a/img/flags/1x1/ck.svg b/img/flags/1x1/ck.svg deleted file mode 100644 index cfb93b9..0000000 --- a/img/flags/1x1/ck.svg +++ /dev/null @@ -1,9 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" height="512" width="512" viewBox="0 0 512 512"> - <path fill="#006" d="M0 0h512v512H0z"/> - <g stroke-width="1pt"> - <path d="M0 0v20.46L325.08 183H366v-20.46L40.92 0H0zm366 0v20.46L40.92 183H0v-20.46L325.08 0H366z" fill="#fff"/> - <path d="M152.5 0v183h61V0h-61zM0 61v61h366V61H0z" fill="#fff"/> - <path d="M0 73.2v36.6h366V73.2H0zM164.7 0v183h36.6V0h-36.6zM0 183l122-61h27.28l-122 61H0zM0 0l122 61H94.72L0 13.64V0zm216.72 61l122-61H366L244 61h-27.28zM366 183l-122-61h27.28L366 169.36V183z" fill="#c00"/> - </g> - <path d="M336.822 250.103l5.71-18.307-15.39-11.693 19.39-.247 6.46-18.053 6.27 18.15 19.392.533-15.516 11.463 5.522 18.39-15.86-11.07m29.706 14.431l11.434-15.3-10.633-16.252 18.35 6.364 12.054-14.81-.094 19.233 18.093 7.1-18.41 5.52-.878 19.202-11.28-15.822m-108.066 16.443l-.762-19.185-18.39-5.694 18.153-6.915.03-19.206 11.976 14.91 18.416-6.183-10.754 16.13 11.353 15.392-18.625-4.946m-43.593 44.883l-8.053-17.376-19.127 2.004 14.078-13.528-7.332-17.707 16.748 9.017 14.6-12.957-3.728 19.1 16.358 9.707-19.054 2.786m-19.19 61.043l-14.618-12.198-16.433 10.127 7-18.342-14.107-12.81 18.942.864 7.714-18.054 4.703 18.877 18.88 1.657-16.036 10.802m3.605 66.357l-18.195-5.29-11.105 15.923-.77-19.654-17.97-6.058 17.718-6.852-.005-19.677 11.72 15.42 17.973-6.1-10.475 16.382m32.416 55.849l-18.75 2.63-3.804 19.12-8.545-17.658-18.848 1.834 13.47-13.537-7.855-17.993 16.87 9.292 14.002-12.955-3.045 19.28M300.1 455.57l-16.704 9.035 2.938 19.275-14.03-13.578-17.065 8.32 8.032-17.42-13.495-14.136 18.995 2.812 8.732-17.062 3.705 19.162m59.126 9.852l-9.115 16.827 12.85 14.51-19.067-3.59-9.802 16.433-2.664-19.042-18.92-4.35 17.42-8.18-1.886-19.13 13.432 13.99m62.938-14.418l-.568 19.194 17.952 6.99-18.588 5.604-1.358 19.156-10.915-15.727-18.8 4.857 11.844-15.324-10.26-16.162 18.235 6.257m59.811-223.19l13.118 13.842 17.487-8.116-9.062 17.39 12.54 14.39-18.714-3.096-9.734 17.02-2.504-19.305-18.562-3.878 17.17-8.833m37.542 23.181l5.955 18.225 19.225.323-15.567 11.73 5.2 18.466-15.57-10.977-16.017 11.1 5.946-18.513-15.102-11.615 19.246-.464m21.447 36.475l-2.204 19.07 17.29 8.538-18.998 3.952-2.987 18.965-9.532-16.626-19.143 3.188 13.106-14.227-8.844-17.002 17.633 7.835m3.28 43.705l-8.53 17.14 13.34 14.046-19.177-2.91-9.23 16.767-3.32-18.935-19.056-3.68 17.128-8.79-2.542-19.05 13.904 13.505m-10.825 42.954l-16.116 10.07 4.114 19.054-14.835-12.668-16.52 9.382 6.948-17.895-14.334-13.258 19.13 1.608 7.67-17.58 4.872 18.892" fill-rule="evenodd" fill="#fff"/> -</svg> diff --git a/img/flags/1x1/cl.svg b/img/flags/1x1/cl.svg deleted file mode 100644 index fd2f344..0000000 --- a/img/flags/1x1/cl.svg +++ /dev/null @@ -1,13 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" height="512" width="512" viewBox="0 0 512 512"> - <defs> - <clipPath id="a"> - <path fill-opacity=".67" d="M0 0h708.66v708.66H0z"/> - </clipPath> - </defs> - <g fill-rule="evenodd" clip-path="url(#a)" transform="scale(.722)" fill-opacity=".996"> - <path fill="#fff" d="M354.31 0h708.68v354.34H354.31z"/> - <path fill="#0039a6" d="M0 0h354.34v354.34H0z"/> - <path d="M232.273 265.338l-54.883-41.16-54.615 41.564 20.312-67.543-54.514-41.708 67.444-.582 20.92-67.338 21.366 67.183 67.444.09-54.234 42.1 20.76 67.393z" fill="#fff"/> - <path fill="#d52b1e" d="M0 354.34h1063v354.32H0z"/> - </g> -</svg> diff --git a/img/flags/1x1/cm.svg b/img/flags/1x1/cm.svg deleted file mode 100644 index 72a7c8a..0000000 --- a/img/flags/1x1/cm.svg +++ /dev/null @@ -1,15 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" height="512" width="512" viewBox="0 0 512 512"> - <path fill="#007a5e" d="M0 0h170.667v512H0z"/> - <path fill="#ce1126" d="M170.667 0h170.667v512H170.667z"/> - <path fill="#fcd116" d="M341.333 0H512v512H341.333z"/> - <g transform="translate(256 256) scale(5.6889)" fill="#fcd116"> - <g id="b"> - <path id="a" d="M0-8L-2.472-.392 1.332.845z"/> - <use height="100%" width="100%" xlink:href="#a" transform="scale(-1 1)"/> - </g> - <use height="100%" width="100%" xlink:href="#b" transform="rotate(72)"/> - <use height="100%" width="100%" xlink:href="#b" transform="rotate(144)"/> - <use height="100%" width="100%" xlink:href="#b" transform="rotate(-144)"/> - <use height="100%" width="100%" xlink:href="#b" transform="rotate(-72)"/> - </g> -</svg> diff --git a/img/flags/1x1/cn.svg b/img/flags/1x1/cn.svg deleted file mode 100644 index 36a7f81..0000000 --- a/img/flags/1x1/cn.svg +++ /dev/null @@ -1,11 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" height="512" width="512" viewBox="0 0 512 512"> - <defs> - <path id="a" fill="#ffde00" d="M.95-.31L-.587.81 0-1 .588.81-.952-.31z"/> - </defs> - <path d="M0 0h512v512H0z" fill="#de2910"/> - <use xlink:href="#a" transform="matrix(76.8 0 0 76.8 128 128)" width="30" height="20"/> - <use xlink:href="#a" transform="matrix(-13.1584 -21.9392 21.9392 -13.1584 256 51.2)" width="30" height="20"/> - <use xlink:href="#a" transform="rotate(-98.106 198.016 -82.078) scale(25.6)" width="30" height="20"/> - <use xlink:href="#a" transform="matrix(7.04 -24.6272 24.6272 7.04 307.2 179.2)" width="30" height="20"/> - <use xlink:href="#a" transform="matrix(16 -19.968 19.968 16 256 230.4)" width="30" height="20"/> -</svg> diff --git a/img/flags/1x1/co.svg b/img/flags/1x1/co.svg deleted file mode 100644 index ccaa606..0000000 --- a/img/flags/1x1/co.svg +++ /dev/null @@ -1,7 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" height="512" width="512" viewBox="0 0 512 512"> - <g fill-rule="evenodd" stroke-width="1pt"> - <path fill="#ffe800" d="M0 0h512.005v512H0z"/> - <path fill="#00148e" d="M0 256h512.005v256H0z"/> - <path fill="#da0010" d="M0 384.003h512.005V512H0z"/> - </g> -</svg> diff --git a/img/flags/1x1/cr.svg b/img/flags/1x1/cr.svg deleted file mode 100644 index e100d16..0000000 --- a/img/flags/1x1/cr.svg +++ /dev/null @@ -1,7 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" height="512" width="512" viewBox="0 0 512 512"> - <g fill-rule="evenodd" stroke-width="1pt"> - <path fill="#0000b4" d="M0 0h511.993v511.984H0z"/> - <path fill="#fff" d="M0 80.455h511.993v343.762H0z"/> - <path fill="#d90000" d="M0 168.222h511.993v168.222H0z"/> - </g> -</svg> diff --git a/img/flags/1x1/cu.svg b/img/flags/1x1/cu.svg deleted file mode 100644 index 2fadf06..0000000 --- a/img/flags/1x1/cu.svg +++ /dev/null @@ -1,13 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" height="512" width="512" viewBox="0 0 512 512"> - <defs> - <clipPath id="a"> - <path fill-opacity=".67" d="M0 0h512v512H0z"/> - </clipPath> - </defs> - <g fill-rule="evenodd" clip-path="url(#a)"> - <path fill="#0050f0" d="M-32 0h768v512H-32z"/> - <path fill="#fff" d="M-32 102.4h768v102.4H-32zm0 204.8h768v102.4H-32z"/> - <path d="M-32 0l440.69 255.67L-32 511.01V0z" fill="#ed0000"/> - <path d="M161.75 325.47l-47.447-35.432-47.214 35.78 17.56-58.144-47.13-35.904 58.306-.5 18.084-57.97 18.472 57.836 58.305.077-46.886 36.243 17.948 58.016z" fill="#fff"/> - </g> -</svg> diff --git a/img/flags/1x1/cv.svg b/img/flags/1x1/cv.svg deleted file mode 100644 index 03610d2..0000000 --- a/img/flags/1x1/cv.svg +++ /dev/null @@ -1,13 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" height="512" width="512" viewBox="0 0 512 512"> - <defs> - <clipPath id="a"> - <path fill-opacity=".67" d="M0 0h512v512H0z"/> - </clipPath> - </defs> - <g fill-rule="evenodd" clip-path="url(#a)"> - <path fill="#fff" d="M-123.43 233.05H723.1v205.97h-846.53z"/> - <path fill="#081873" d="M-122.76 0h845.95v256.64h-845.95zm.24 385.87H729.6V512h-852.12z"/> - <path fill="#de3929" d="M-122.52 302.55h845.95v39.65h-845.95z"/> - <path fill="#ffce08" d="M130.92 399.168l6.65 20.468h21.522l-17.412 12.65 6.65 20.47-17.41-12.65-17.41 12.65 6.65-20.47-17.412-12.65h21.522m192.64-169.138l6.65 20.468h21.522l-17.412 12.65 6.65 20.47-17.41-12.65-17.41 12.65 6.65-20.47-17.412-12.65h21.522M88.27 335.448l6.65 20.468h21.523l-17.412 12.65 6.652 20.47-17.41-12.65-17.412 12.65 6.65-20.47-17.41-12.65h21.52m235.289-26.458l6.65 20.468h21.522l-17.412 12.65 6.65 20.47-17.41-12.65-17.41 12.65 6.65-20.47-17.412-12.65h21.522m-40.44-161.748l6.65 20.468h21.522l-17.412 12.65 6.65 20.47-17.41-12.65-17.41 12.65 6.65-20.47-17.412-12.65h21.522m-64.43-45.218l6.65 20.468h21.522l-17.412 12.65 6.65 20.47-17.41-12.65-17.41 12.65 6.65-20.47-17.412-12.65h21.522m-64.44 2.892l6.65 20.468h21.522l-17.412 12.65 6.65 20.47-17.41-12.65-17.41 12.65 6.65-20.47-17.412-12.65H121m-34.816 43.242l6.65 20.468h21.522l-17.412 12.65 6.65 20.47-17.41-12.65-17.41 12.65 6.65-20.47-17.412-12.65h21.522M198.74 420.408l6.65 20.468h21.522l-17.412 12.65 6.65 20.47-17.41-12.65-17.41 12.65 6.65-20.47-17.412-12.65h21.522m82.17-41.708l6.65 20.468h21.522l-17.412 12.65 6.65 20.47-17.41-12.65-17.41 12.65 6.65-20.47-17.412-12.65h21.522"/> - </g> -</svg> diff --git a/img/flags/1x1/cw.svg b/img/flags/1x1/cw.svg deleted file mode 100644 index 3c8803a..0000000 --- a/img/flags/1x1/cw.svg +++ /dev/null @@ -1,14 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" height="512" width="512" viewBox="0 0 512 512"> - <defs> - <path id="b" d="M0-1l.225.69H.95L.364.12l.225.69L0 .383-.588.81l.225-.692L-.95-.31h.725z"/> - <clipPath id="a"> - <path fill-opacity=".67" d="M0 0h9000v9000H0z"/> - </clipPath> - </defs> - <g clip-path="url(#a)" transform="scale(.057)"> - <path fill="#002b7f" d="M0 0h13500v9000H0z"/> - <path fill="#f9e814" d="M0 5625h13500v1125H0z"/> - <use xlink:href="#b" transform="scale(750)" height="9000" width="13500" y="2" x="2" fill="#fff"/> - <use xlink:href="#b" transform="scale(1000)" height="9000" width="13500" y="3" x="3" fill="#fff"/> - </g> -</svg> diff --git a/img/flags/1x1/cx.svg b/img/flags/1x1/cx.svg deleted file mode 100644 index c151611..0000000 --- a/img/flags/1x1/cx.svg +++ /dev/null @@ -1,15 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" height="512" width="512" viewBox="0 0 512 512"> - <path fill="#0021ad" d="M0 0h512v512H0z"/> - <path d="M0 0h512v512z" fill="#1c8a42"/> - <circle cx="256" cy="256" r="61.658" fill="#ffc639"/> - <path d="M218.344 228.304c4.218 5.787 10.61 15.49 15.75 12.957 4.012.014 6.083.296 6.627 2.966 9.462 1.61 25.364-2.38 35.26-15.268 0 0 .83.11.542-4.79.055-2.132 2.918-1.706 2.986-1.01.4 1.06.33 1.85.867 1.878 1.218-.406 2.883-3.138 4.28-4.872.38-.764.172-1.57.262-2.532.736-1.81 2.573-1.418 2.958-.468.35.612.358 1.08.702 1.693 1.865 1.245 5.23.082 5.49.082.33-1.522 1.31-1.377 1.31-1.377 1.244-.275.755-.165 1.574.26-.72 8.197 1.61 8.56 1.42 12.765.08 4.693-1.42 6.028-1.42 7.817.476 2.188 7.398 2.264 4.962 4.114-2.14 1.142.007 3.282-3.213 4.114-9.373 4.755-11.17 8.835-11.17 8.835s-2.352 4.444-2.613 4.444c-1.57 2.966-3.558 1.35-4.666 2.794-.55 1.817-1.168 5.842-.067 7.934.55 2.876-.07 4.445-.757 7.32-.62 6-3 6.91-3.276 9.015-1.1 2.25.234 12.82-.812 12.82-6.976.137-12.323-1.336-15.082-1.886 2.69-11.594 1.644-21.777 1.644-22.823-.688-8.292-12.42-6.275-14.216-7.376-1.486-.316-2.422-1.527-2.945-2.05-1.66-.18-2.278-.557-3.937-.73-.825.414-.33.84-2.174 1.412-4.68.564-6.744-4.08-6.744-4.08.227-1.563-10.52.316-16.363-1.04-2.395 1.335-3.44 5.285-5.402 5.753-.054 1.224-3.226-1.005-3.866-2.21-.13-3.502 3.055-5.05 3.055-5.05 2.532-1.782 4.032-2.07 5.25-3.303.612-3.048.302-5.305 1.603-7.596 1.1-1.748 2.725-.93 3.826-1.714 1.182-.784 1.684-5.917.59-7.32 0 0-4.734-4.274-4.995-4.535-1.54-4.417 1.803-7.266 2.76-6.943z" fill="#1c8a42"/> - <path d="M452.254 63.723c-2.793-11.055-27.798-34.865-46.59-50.016-4.486-3.056-7.41-1.236-6.825 3.122 2.338 3.9 4.093 8.19 6.432 12.093.654 2.6 1.886 4.422 2.54 7.022 0 0 .192 4.487.584 4.877 5.85 6.44 6.633 11.9 6.633 11.9 3.378 6.503 6.37 11.25 12.29 16.582 6.632 4.163 1.753 17.1 1.946 23.994 0 4.355-3.117 3.84-5.85 3.316-21.522-19.768-42.852-19.83-61.644-25.555-7.35-.78-7.48 2.73-5.07 4.678 13.135 14.05 25.485 23.608 41.744 31.603l8.196 5.08c3.117 2.6 6.24 5.2 9.358 7.802 7.218 4.68 7.81 8.972 7.81 9.358.192 8.78-4.494 15.606-5.856 18.337-2.463 9.31-7.41 10.927-7.41 10.927-40.192 27.118-61.26 34.136-126.417 25.748-.977-.516-7.217.523 0 3.124 16.583 5.525 57.318 14.388 96.727-4.273 9.46-6.633 15.792-4.46 22.645-8.43 11.256-6.942 27.33-15.584 30.254-16.554 8.78-4.687 33.36-9.95 39.02-14.637 6.497-.523 13.24-1.376 13.694-6.963 2.133-1.383 5.257-.372 7.576-4.927 5.154-.894 4.287-2.738 4.287-2.738-1.3-3.64-6.116-5.14-9.557-7.803-5.078-1.693-8.587-2.216-12.296-.392-1.17.523-2.34 1.04-3.51 1.562 0 0-5.462-.785-5.462-1.17-12.138-.668-10.955-40.893-15.248-57.67z" fill="#ffc639"/> - <path d="M542.467 217.777a3.005 1.878 15.947 1 1-5.73-1.8 3.005 1.878 15.947 0 1 5.73 1.8z" fill="#1c8a42"/> - <g transform="translate(-11.826 182.362) scale(.68267)" fill="#fff"> - <path id="a" d="M188.16 190.94l-12.75-11.936-12.905 11.77 1.383-17.405-17.25-2.754 14.476-9.774-8.606-15.197 16.668 5.22 6.518-16.205 6.31 16.287 16.734-5.007-8.8 15.086 14.348 9.96-17.283 2.53 1.158 17.424z"/> - <path d="M233.39 335.53l-13.752-9.167-13.39 9.664 4.71-15.568-13.58-9.416 16.666-.446 4.988-15.496 5.595 15.3 16.667-.156-13.21 9.902 5.307 15.382z"/> - <use height="100%" width="100%" xlink:href="#a" x="2.522" y="269.061"/> - <use height="100%" width="100%" xlink:href="#a" x="-112.066" y="123.223"/> - <use height="100%" width="100%" xlink:href="#a" x="108.427" y="85.027"/> - </g> -</svg> diff --git a/img/flags/1x1/cy.svg b/img/flags/1x1/cy.svg deleted file mode 100644 index 8721029..0000000 --- a/img/flags/1x1/cy.svg +++ /dev/null @@ -1,6 +0,0 @@ -<svg xmlns:xlink="http://www.w3.org/1999/xlink" xmlns="http://www.w3.org/2000/svg" height="512" width="512" viewBox="0 0 512 512"> - <path fill="#fff" d="M0 0h512v512H0z"/> - <path id="a" d="M243.03 425.173a.87.87 0 0 1-.297-.21l-.106-.1c-.277-.252-.735-.7-1.35-1.4-1.137-1.292-2.662-3.182-4.003-4.852-2.658-3.312-4.854-6.167-5.268-6.704l-.677-.88-6.63-2.045-4.838-2.255 2.586-2.906 8.88 3.8 6.63 1.36 12.256 9.016-.01.007c-.025.02-1.783 1.483-3.53 3.07-.78.71-1.76 1.62-2.455 2.376-.32.347-.602.693-.794.972a2.18 2.18 0 0 0-.216.402l.762-.474.825.642-1.68.157-.076.016zm-45.517-13.67c-5.784 0-11.496-1.6-16.978-4.75l-.006-.004v-.007s.718-1.366 2.457-2.64c1.657-1.217 4.644-2.67 9.472-2.69h.1c5.717 0 12.715 1.944 20.797 5.778-.273.182-6.618 4.314-15.843 4.314l.01.01zm-25.063-5.555c-1.07 0-2.03-.405-2.705-1.138-.554-.602-.95-1.404-1.213-2.456-.43-1.722-.312-3.434-.3-3.598a3.71 3.71 0 0 1 1.333-.302l.096-.002c2.143 0 3.832 1.858 4.556 3.7.41 1.048.49 1.928.234 2.618s-1.06 1.17-1.997 1.17zm44.1-5.112c-14.813-2.115-21.09-7.47-23.75-11.59-2.836-4.394-2.254-8.46-2.248-8.5l.002-.012.01-.003c.005 0 .906-.242 2.27-.25 3.94 0 14.02 1.984 23.72 20.346l.006.012-.017-.01zm-30.36-2.935c-6.33 0-11.147-1.09-14.322-3.245-1.824-1.238-2.717-2.597-3.145-3.52a5.768 5.768 0 0 1-.507-1.727c.167-.076 2.758-1.227 6.626-1.408.327-.015.656-.024 1.002-.025 4.89 0 12.33 1.596 20.178 9.2l.007.006-.01.002c-3.585.47-6.896.716-9.84.716zm-30.644-1.177c-6.673 0-15.84-2.038-21.558-7.754l-.006-.007.017-.004c.06-.016 6.264-1.59 13.245-1.76.417-.01.836-.017 1.26-.017 6.256 0 11.044 1.214 14.234 3.606 1.113.834 1.72 1.61 1.858 2.373.114.637-.222 1.323-.9 1.835-1.438 1.085-4.005 1.663-7.634 1.72l-.512.018zm-21.624-11.093a2.736 2.736 0 0 1-2.115-.996c-.432-.524-.732-1.208-.946-2.152-.355-1.577-.248-3.12-.247-3.135v-.016c.31-.145.66-.224 1.04-.233.99 0 1.74.537 2.21.988a5.942 5.942 0 0 1 1.44 2.257c.312.88.363 1.614.155 2.248-.17.504-.75 1.033-1.536 1.033zm49.946-1.127c-1.07 0-2.03-.404-2.705-1.137-.554-.602-.95-1.405-1.214-2.456-.43-1.722-.312-3.435-.3-3.598a3.71 3.71 0 0 1 1.333-.303l.095-.002c2.143 0 3.832 1.858 4.555 3.7.41 1.047.49 1.928.234 2.618-.256.7-1.067 1.17-1.997 1.17zm-24.33-1.006c-13.428-.473-20.397-4.29-23.878-7.41-1.96-1.756-3.05-3.497-3.62-4.648-.535-1.088-.738-1.92-.773-2.08l.017-.008c.002 0 1.27-.454 3.316-.495l.314-.003c4.528 0 13.748 1.903 24.62 14.638v.01zm14.585-1.357c-10.804-1.645-16.925-6.283-20.158-9.886-3.388-3.776-4.403-7.293-4.448-7.457.02-.006 1.34-.35 3.328-.4a16.2 16.2 0 0 1 .92 0c5.433.12 15.303 2.58 20.355 17.737h.01zm-55.467-5.19c-3.54 0-6.975-.408-10.208-1.216-5.656-1.415-8.083-3.575-9.123-5.138-.59-.888-.804-1.666-.88-2.163a3.642 3.642 0 0 1-.026-.915l.026-.01c.014-.003 3.754-1.054 8.93-1.133a37.36 37.36 0 0 1 7.927.703c8.99 1.798 13.652 8.584 13.697 8.653l.004.008-.01.002c-.052.01-4.336 1.21-10.343 1.21zm25.08-9.112c-1.083 0-2.044-.395-2.707-1.113-.547-.59-.943-1.402-1.213-2.48-.432-1.72-.312-3.416-.3-3.573a3.71 3.71 0 0 1 1.333-.302l.096-.002c2.138 0 3.83 1.86 4.556 3.702.4 1.014.47 1.884.207 2.59-.265.716-1.042 1.177-1.972 1.177zm-18.86-2.586c-.08-.02-5.1-1.31-10.21-4.458-4.732-2.913-10.52-8.064-11.225-16.07v-.003l.013-.002s.44-.106 1.09-.13c.09-.004.186-.006.286-.006 1.412 0 4.305.398 7.804 3.058 4.454 3.397 8.568 9.32 12.245 17.622zm12.314-.452c-.03-.013-3.608-1.445-8.08-5.192-4.166-3.492-10.023-9.78-14.264-19.908.002 0 .974-.52 2.463-.613a3.71 3.71 0 0 1 .26-.007c.128 0 .26.004.395.007 2.057.058 5.19.913 8.665 4.662 3.99 4.306 7.552 11.383 10.584 21.035l.01.027-.026-.01zm-31.906-.93c-4.114 0-5.522-2.232-5.936-3.192-.68-1.577-.475-3.148-.473-3.163l.002-.017a9.065 9.065 0 0 1 2.046-.268h.14c3.243 0 5.802 1.645 6.9 3.277.217.323.884 1.445.332 2.322-.444.69-1.45 1.04-3.012 1.04zm-9.113-11.495c-2.297 0-5.81-.14-9.506-.812-3.665-.666-5.742-3.782-6.838-6.277-1.194-2.718-1.53-5.31-1.534-5.337h.01c11.334.332 16.687 3.644 19.182 6.363 2.575 2.807 2.728 5.722 2.735 5.906h-.008c-.017 0-1.613.154-4.045.154zm11.802-11.793a45.616 45.616 0 0 1-2.588-3.607c-1.342-2.087-2.584-4.264-2.584-6.046 0-1.72-.404-5.347-.646-7.355-.305-2.548-.614-4.728-.64-4.913l.01.003c.29.105 7.09 2.657 7.09 9.038 0 6.39-.63 12.812-.635 12.876l-.002.01h-.01zm-8.815-.605c-.07 0-.142-.006-.213-.018-2.01-.337-5.543-1.874-9.45-4.113-4.336-2.486-7.857-5.15-9.915-7.5-1.876-2.145-2.99-5.51-3.312-10.008-.227-3.19.046-5.85.075-6.113a3.532 3.532 0 0 1 1.122-.174c1.505.025 3.112.702 5.28 2.196 1.69 1.164 3.555 2.748 5.54 4.705a84.457 84.457 0 0 1 6.142 6.802l.028.034c.226.406 2.165 3.9 3.675 7.304.96 2.16 1.508 3.718 1.727 4.903.126.675.162 1.118-.003 1.52-.07.166-.2.32-.33.382a.924.924 0 0 1-.374.076z" fill="#435125"/> - <use height="100%" width="100%" xlink:href="#a" transform="matrix(-1 0 0 1 462.66 0)"/> - <path d="M468.335 81.473l-2.01.8-.787.314-2.436-.134-2.28 1.095-4.045 2.764-.18.128-1.507.393-1.4-.604-.795.36-.274 1.64-.756 1.176-.932.655-3.228.33-2.722 1.405-3.542-.948-1.645.644-3.498 3.15-1.787.848-.625-.036-2.37-.122-1 .328-1.497 1.445-2.828.22-.882.61-1.38 2.782-1.496 1.542-.856.18-.928-.338-.697.122-.315 1.78-.676.746-1.895.65-1.513 1.262-1.328.682-1.778-.045h-.41l-1.77.978-3.333.292-1.385 1.322-.306.28-.647.392-1.058.632-.26.157-1.275-.227-1.493.59-.606-.928-1.033.62-1.368.06-1.705-.76-1.298-.578-.95.137-.33 1.656-.035.176-.998 1.328-1.864 1.13-.253.33-2.12 2.737-4.03 4.24-3.408 1.73-3.532 1.073-2.472 2.03-6.484 3.216L357.79 135l-2.094.67-3.004.48-5.357 1.974-4.727 1.426-.263.08-.935.283-6.664 2.017-3.102-.328-1.838.667-4.782-.53-3.326.064-2.105.438-3.957 1.898-6.68 3.21-2.206 2.02-3.436 1.792-4.024 1.274.01-1.69-.023-.072-1.397.44-1.007.32-3.264.503h-1.817l-1.127-.328-.175.058-6.67 2.198-7.44.72-3.723 1.193-2.782-.046-1.74.518-3.408.417-1.22-.327-.274-.075-10.026.435-4.584-.517-2.188.497-3.666-1.233-5.35-.62-1.25-.375-2.813-.835-1.272.733-.952.102-2.276-.825-.82-.022-1.878.68-1.083-.278-1.004-.8-2.356-.35-1.435-1.207-8.023 1.063-2.178-.64-7.3-2.127-1.16.058-1.448 1.085-2.174.793-1.888.49-2.57.09-2.984-.783-3.078-1.492-1.137-.27-2.538.256-.776.07-4.666-2.5-6.01-3.76-4.076-1.958-1.53-.248-.207.727.76 2.394.26 2.368-.078 2.187-.042 1.355.38 1.216 1.472 1.63.614 1.64.45 4.51-.006 4.574-.716 7.297-.242 1.11-.854 3.78-.78 3.473-3.026 9.245-.83 1.146-2.04 1.392-4.625 3.148-3.405 1.963-1.078.446-2.764.208-1.722-.09-2.144-1.16-2.105-.542-2.76-1.984-3.067-.634-3.363-1.944-.876-1.053-1.83-.17-2.54-.763.002-.004-.933-.28-.644-.187-3.24-.09-3.02-1.394-1.592-.384-2.173-.11-2.275 1.058v-.003l-1.154.536-1.457-.58-1.055.066-1.193 1.805-.18.28-.82.436-1.025-.014-.802-.022-.867.38-1.167.505v.002l-1.03.45-.503.218-.01-.01-.31.063-.55.096-.682.13-1.203-.703-.64-.376-1.073-.22-.58.42-.112 1.962-.528 1.176-1.673 1.48-1.7 1.497-1.186 1.746-3.136 7.16-1.965 2.888-.61.673-2.056 2.267-1.823 1.414-4.2 3.255-3.974 1.486-3.425.7-1.664.005-3.154-.42-2.835-.87-3.115-1.948-3.416-2.745-4.944-4.885-.7-.42-.146-.098-1.557-.996-1.156.03-.453.745-.246 1.077-.21.956-.566 5.433.042.315.298 2.238 3.755 5.248 1.16 2.788.19.318.774 1.302.59.992.06.1 1.282 3.83-.903 2.163.456 1.447-1.14.885-.21 1.25 3.372 4.227.736 1.863-.82 2.585-1.312 1.426-.366.39.185 1.092 1.55 1.395 2.637 2.348 1.405 3.487 1.07.935 1.24-.264.692.527 1.048-.018 1.03 1.03.668.324 1.055.525.834 1.085.184 3.338 1.556 4.147.024 2.248.008.32.968 1.662.304 1.312-.516 3.473 1.233 1.114 1.337-.273.864.137 1.388 1.156 1.68 2.56 1.643-.24 1.042.503 5.036 4.55 1.143.578.064.036.822.412 1.02 1.03 1.585-1.05.177-.018 1.722-.152.755.51 1.454.98 1.905-.025 4.134 1.267 1.807.464 3.636 2.26 1.546.955.913.743 1.216.99 2.426 1.045 2.082.5 1.13.268.848.327.02-.052.013.003-.022.053 4.51 1.726 2.442.57 2.26.832 1.644.6 1.206.02 1.707-1.436 1.653-.096 1.373.342 1.34-.224 2.12-1.306.414-.614 1.503-.716 5.073-.63 1.482.482 3.806-1.656 2.55.71 2.258-.8 4.93 1.094 1.312.923 1.465 1.678.18.007 1.63.03-.68 1.137 2.152 2.26 1.945 2.94.13.387 1.415 4.15 1.05 1.47.737 2.052.036 1.338-1.144.872-.188.498-.064.184.232.56.43-.237.823-.454.994-.155 1.763.188 1.164.122 1.84-.912 1.217-.606 1.957.842 2.15-.024.903.402 2.556 1.16 1.304.122.482-.317.307-.73-.158-.85-.978-1.13-2.16-2.506-.884-1.29-.673-1.865-.21-2.384-.148-1.608.268-2.114.58-.754.427-1.68h.007l.11-.44 1.2-1.59 3.177-2.043 3.413-3.056 2.698-1.78 2.782-1.204.074-.338.31.125 7.076-2.406.117-.012 3.15-.55 21.265 1.5.79-.24.002-.004.708-1.99.382-.367.253-.24 2.338-1.03 1.093-.156 3.035.75 1.242.306 1.99-1.115 1.412.025 2.915-1.592 1.802.045.685-.274 3.508-2.522 3.38-.968.88-.468.31-.17 3.463-1.83 2.202-1.69 1.9-1.01 2.08-.536 5.444-.383 1.095-1.825 2.342-.312 1.414-1.596 1.618-.658 1.16-1.67.972-1.4 1.358-.787 4.352-.274 5.158.64.682-.414 1.166-4.16 1.22-.78 3.286-4.79.01-1.745.004-1.458.54-2.076-.367-3.747.436-3.794 2.043-4.82 1.8-1.946 2.902-1.963 1.476-.643 2.09-.35v-.006l.308-.052.532-.09 7.196-.1c.1-.074 2.618-.036 2.618-.036l2.4-.032 6.07 1.08.43.075 2.054.664 2.367 1.84 2.505 2.448.47.456 1.624.684.49.214 1.34-.214 1.91-.994 1.44-1.218 1.964-1.072.047-.07 1.105-1.66.034-.035.024.006.002-.01-.02-.005.437-.662 3.795-1.478 4.463-.26.5-.27.28-.15 1.18-1.385 1.105-.01 2.675.967 1.88-.373 1.494.597 1.16-.137 2.188-.26 2.35 1.655 1.37.175 4.828 2.824.25.04.13.025.277.045.573-.17.852-.246.112-.032.108.148.548.774.753.108.89-1.19-.354-.538-.134-.197-1.725-.35-1.55-2.648 1.476-1.588-2.313-2.838-.384-.472-.13-.2-.8-1.214-4.05-6.174-5.276-4.21-.002.002-1.847-1.478-.01-.01-.648-.507-2.818-2.866-2.012-2.67-.264-.575-.415-.906-1.206-2.628-2.1-1.618-1.713-1.87-.083-.11-3.532-4.8-.58-.805-.835-.483-1.763-.012-.166-.167-.1-.103.06-.063.846-.84.943-.238.406-.93-1.8-5.208-.012-.182-.134-1.664 1.466-7.556.188-.92 2.5-5.085 1.547-1.27 1.69-3.32 1.447-2.124 1.386-1.35.243-.143 2.504-1.515 2.104-.297 2.003-.28 3.5 1.078 3.328-.065.65-.07 1.51-.173 2.484-.782 1.172-.724.61-.932 1.268-4.256.408-1.354.782-1.47 4.528-5.214 3.423-3.165 7.696-5.643 3.766-2.252 1.924-1.15 17.174-7.634 4.463-4.524 2.325-2.353 4.114-2.76 4.814-1.972 4.142-3.28.904-1.137 1.14-3.672.95-.23.858-1.855.244-.526 3.38-2.383.382-.19L456 94.953l1.91.262 1.02-1.53 3.82-.64.704-.12.942-.47.802-1.365v-.27l.11-3.647.815-.986.445-2.403.42-.554.437-.577 1.082-.76-.188-.454z" fill="#d47600"/> -</svg> diff --git a/img/flags/1x1/cz.svg b/img/flags/1x1/cz.svg deleted file mode 100644 index c8ad655..0000000 --- a/img/flags/1x1/cz.svg +++ /dev/null @@ -1,12 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" height="512" width="512" viewBox="0 0 512 512"> - <defs> - <clipPath id="a"> - <path fill-opacity=".67" d="M102.42 0h708.66v708.66H102.42z"/> - </clipPath> - </defs> - <g fill-rule="evenodd" clip-path="url(#a)" transform="translate(-74) scale(.722)" stroke-width="1pt"> - <path fill="#e80000" d="M0 0h1063v708.66H0z"/> - <path fill="#fff" d="M0 0h1063v354.33H0z"/> - <path d="M0 0l529.732 353.88L0 707.3V0z" fill="#00006f"/> - </g> -</svg> diff --git a/img/flags/1x1/de.svg b/img/flags/1x1/de.svg deleted file mode 100644 index 7af71b9..0000000 --- a/img/flags/1x1/de.svg +++ /dev/null @@ -1,5 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" height="512" width="512" viewBox="0 0 512 512"> - <path fill="#ffce00" d="M0 341.338h512.005v170.67H0z"/> - <path d="M0 0h512.005v170.67H0z"/> - <path fill="#d00" d="M0 170.67h512.005v170.668H0z"/> -</svg> diff --git a/img/flags/1x1/dj.svg b/img/flags/1x1/dj.svg deleted file mode 100644 index 2cf2b9f..0000000 --- a/img/flags/1x1/dj.svg +++ /dev/null @@ -1,13 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" height="512" width="512" viewBox="0 0 512 512"> - <defs> - <clipPath id="a"> - <path fill-opacity=".67" d="M55.364 0h708.66v708.66H55.364z"/> - </clipPath> - </defs> - <g clip-path="url(#a)" fill-rule="evenodd" transform="translate(-40) scale(.722)"> - <path fill="#0c0" d="M0 0h1063v708.66H0z"/> - <path fill="#69f" d="M0 0h1063v354.33H0z"/> - <path d="M0 0l529.732 353.88L0 707.3V0z" fill="#fffefe"/> - <path d="M221.193 404.247l-42.66-30.71-42.45 31.012 15.79-50.395-42.374-31.118 52.422-.434 16.26-50.24 16.607 50.125 52.422.066-42.156 31.41 16.137 50.283z" fill="red"/> - </g> -</svg> diff --git a/img/flags/1x1/dk.svg b/img/flags/1x1/dk.svg deleted file mode 100644 index 0b4ee37..0000000 --- a/img/flags/1x1/dk.svg +++ /dev/null @@ -1,5 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" height="512" width="512" viewBox="0 0 512 512"> - <path fill="#c60c30" d="M0 0h512.1v512H0z"/> - <path fill="#fff" d="M144 0h73.143v512H144z"/> - <path fill="#fff" d="M0 219.43h512.1v73.142H0z"/> -</svg> diff --git a/img/flags/1x1/dm.svg b/img/flags/1x1/dm.svg deleted file mode 100644 index 54f6732..0000000 --- a/img/flags/1x1/dm.svg +++ /dev/null @@ -1,152 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" height="512" width="512" viewBox="0 0 512 512"> - <defs> - <clipPath id="a"> - <path fill-opacity=".67" d="M0 0h512v512H0z"/> - </clipPath> - </defs> - <g fill-rule="evenodd" clip-path="url(#a)"> - <path fill="#108c00" d="M-258.27 0h1027.5v512h-1027.5z"/> - <path fill="#ffd600" d="M-260 178.16H772.6v50.162H-260z"/> - <path fill="#ffd600" d="M181.08 0h48.432v512H181.08z"/> - <path d="M227.78 0h48.432v512H227.78z"/> - <path d="M-260 226.59H772.6v50.162H-260z"/> - <path fill="#fff" d="M-260 276.76H772.6v50.162H-260z"/> - <path fill="#fff" d="M276.22 0h48.432v512H276.22z"/> - <rect transform="scale(-1)" ry="137.51" width="273.75" y="-393.87" x="-394.56" height="275.03" fill="#e72910"/> - <g stroke-width="1pt"> - <path d="M250.51 136.92c0-.258 5.61-15.997 5.61-15.997l5.098 15.74s17.08.515 17.08.257-13.51 10.32-13.51 10.32 6.373 18.062 6.118 17.546c-.255-.516-14.787-10.837-14.787-10.837s-14.787 10.32-14.532 10.32 5.608-17.03 5.608-17.03l-13.256-10.063 16.57-.258z"/> - <path d="M251.274 137.72c0-.224 4.857-13.855 4.857-13.855l4.417 13.63s14.794.448 14.794.225-11.7 8.938-11.7 8.938 5.52 15.643 5.298 15.196c-.22-.447-12.807-9.386-12.807-9.386s-12.805 8.94-12.584 8.94 4.857-14.75 4.857-14.75l-11.48-8.716 14.35-.223z" fill="#ffe700"/> - <path d="M253.328 139.987c0-.13 2.8-7.99 2.8-7.99l2.547 7.86s8.53.26 8.53.13-6.747 5.154-6.747 5.154 3.182 9.02 3.055 8.762c-.127-.257-7.384-5.41-7.384-5.41s-7.385 5.153-7.257 5.153 2.8-8.504 2.8-8.504l-6.62-5.025 8.275-.13z" fill="#108c00"/> - </g> - <g stroke-width="1pt"> - <path d="M356.875 211.8c0-.258 5.608-15.997 5.608-15.997l5.1 15.74s17.08.515 17.08.257-13.512 10.32-13.512 10.32 6.375 18.062 6.12 17.546c-.255-.516-14.787-10.837-14.787-10.837s-14.786 10.32-14.53 10.32 5.607-17.03 5.607-17.03l-13.256-10.063 16.57-.258z"/> - <path d="M357.638 212.6c0-.224 4.857-13.855 4.857-13.855l4.416 13.63s14.795.448 14.795.225-11.702 8.938-11.702 8.938 5.52 15.643 5.3 15.196c-.222-.447-12.808-9.386-12.808-9.386s-12.806 8.94-12.585 8.94 4.857-14.75 4.857-14.75l-11.48-8.716 14.35-.223z" fill="#ffe700"/> - <path d="M359.692 214.867c0-.13 2.8-7.99 2.8-7.99l2.547 7.86s8.53.26 8.53.13-6.748 5.154-6.748 5.154 3.182 9.02 3.055 8.762c-.127-.257-7.384-5.41-7.384-5.41s-7.384 5.153-7.256 5.153 2.8-8.504 2.8-8.504l-6.62-5.025 8.275-.13z" fill="#108c00"/> - </g> - <g stroke-width="1pt"> - <path d="M325.875 330.65c0-.258 5.608-15.997 5.608-15.997l5.1 15.74s17.08.515 17.08.257-13.512 10.32-13.512 10.32 6.375 18.062 6.12 17.546c-.255-.516-14.787-10.837-14.787-10.837S316.697 358 316.953 358s5.607-17.03 5.607-17.03l-13.256-10.063 16.57-.258z"/> - <path d="M326.638 331.45c0-.224 4.857-13.855 4.857-13.855l4.416 13.63s14.795.448 14.795.225-11.702 8.938-11.702 8.938 5.52 15.643 5.3 15.196c-.222-.447-12.808-9.386-12.808-9.386s-12.806 8.94-12.585 8.94 4.857-14.75 4.857-14.75l-11.48-8.716 14.35-.223z" fill="#ffe700"/> - <path d="M328.692 333.717c0-.13 2.8-7.99 2.8-7.99l2.547 7.86s8.53.26 8.53.13-6.748 5.154-6.748 5.154 3.182 9.02 3.055 8.762c-.127-.257-7.384-5.41-7.384-5.41s-7.384 5.153-7.256 5.153 2.8-8.504 2.8-8.504l-6.62-5.025 8.275-.13z" fill="#108c00"/> - </g> - <g stroke-width="1pt"> - <path d="M177.167 330.65c0-.258 5.608-15.997 5.608-15.997l5.1 15.74s17.08.515 17.08.257-13.512 10.32-13.512 10.32 6.374 18.062 6.12 17.546c-.256-.516-14.788-10.837-14.788-10.837S167.99 358 168.245 358s5.607-17.03 5.607-17.03l-13.256-10.063 16.57-.258z"/> - <path d="M177.93 331.45c0-.224 4.857-13.855 4.857-13.855l4.416 13.63s14.794.448 14.794.225-11.702 8.938-11.702 8.938 5.52 15.643 5.3 15.196c-.222-.447-12.808-9.386-12.808-9.386s-12.806 8.94-12.585 8.94 4.857-14.75 4.857-14.75l-11.482-8.716 14.352-.223z" fill="#ffe700"/> - <path d="M179.984 333.717c0-.13 2.8-7.99 2.8-7.99l2.547 7.86s8.53.26 8.53.13-6.746 5.154-6.746 5.154 3.182 9.02 3.055 8.762c-.128-.257-7.385-5.41-7.385-5.41s-7.384 5.153-7.256 5.153 2.8-8.504 2.8-8.504l-6.62-5.025 8.274-.13z" fill="#108c00"/> - </g> - <g stroke-width="1pt"> - <path d="M150.01 208.74c0-.258 5.608-15.997 5.608-15.997l5.1 15.74s17.08.515 17.08.257-13.512 10.32-13.512 10.32 6.374 18.062 6.12 17.546c-.256-.516-14.788-10.837-14.788-10.837s-14.786 10.32-14.53 10.32 5.607-17.03 5.607-17.03l-13.256-10.063 16.57-.258z"/> - <path d="M150.773 209.54c0-.224 4.857-13.855 4.857-13.855l4.416 13.63s14.794.448 14.794.225-11.702 8.938-11.702 8.938 5.52 15.643 5.3 15.196c-.222-.447-12.808-9.386-12.808-9.386s-12.806 8.94-12.585 8.94 4.857-14.75 4.857-14.75l-11.48-8.716 14.35-.223z" fill="#ffe700"/> - <path d="M152.827 211.807c0-.13 2.8-7.99 2.8-7.99l2.547 7.86s8.53.26 8.53.13-6.747 5.154-6.747 5.154 3.182 9.02 3.055 8.762c-.127-.257-7.384-5.41-7.384-5.41s-7.384 5.153-7.256 5.153 2.8-8.504 2.8-8.504l-6.62-5.025 8.275-.13z" fill="#108c00"/> - </g> - <g stroke-width="1pt"> - <path d="M324.615 174.14c0 .258-5.608 15.997-5.608 15.997l-5.1-15.74s-17.08-.515-17.08-.257 13.512-10.32 13.512-10.32-6.375-18.062-6.12-17.546c.255.516 14.787 10.837 14.787 10.837s14.786-10.32 14.53-10.32-5.607 17.03-5.607 17.03l13.256 10.063-16.57.258z"/> - <path d="M323.852 173.34c0 .224-4.857 13.855-4.857 13.855l-4.416-13.63s-14.795-.448-14.795-.225 11.702-8.938 11.702-8.938-5.52-15.643-5.3-15.196c.222.447 12.808 9.386 12.808 9.386s12.806-8.94 12.585-8.94-4.857 14.75-4.857 14.75l11.48 8.716-14.35.223z" fill="#ffe700"/> - <path d="M321.798 171.073c0 .13-2.8 7.99-2.8 7.99l-2.547-7.86s-8.53-.26-8.53-.13 6.748-5.154 6.748-5.154-3.182-9.02-3.055-8.762c.127.257 7.384 5.41 7.384 5.41s7.384-5.153 7.256-5.153-2.8 8.504-2.8 8.504l6.62 5.025-8.275.13z" fill="#108c00"/> - </g> - <g stroke-width="1pt"> - <path d="M367.315 290.28c0 .258-5.608 15.997-5.608 15.997l-5.1-15.74s-17.08-.515-17.08-.257 13.512-10.32 13.512-10.32-6.375-18.062-6.12-17.546c.255.516 14.787 10.837 14.787 10.837s14.786-10.32 14.53-10.32-5.607 17.03-5.607 17.03l13.256 10.063-16.57.258z"/> - <path d="M366.552 289.48c0 .224-4.857 13.855-4.857 13.855l-4.416-13.63s-14.795-.448-14.795-.225 11.702-8.938 11.702-8.938-5.52-15.643-5.3-15.196c.222.447 12.808 9.386 12.808 9.386s12.806-8.94 12.585-8.94-4.857 14.75-4.857 14.75l11.48 8.716-14.35.223z" fill="#ffe700"/> - <path d="M364.498 287.213c0 .13-2.8 7.99-2.8 7.99l-2.547-7.86s-8.53-.26-8.53-.13 6.748-5.154 6.748-5.154-3.182-9.02-3.055-8.762c.127.257 7.384 5.41 7.384 5.41s7.384-5.153 7.256-5.153-2.8 8.504-2.8 8.504l6.62 5.025-8.275.13z" fill="#108c00"/> - </g> - <g stroke-width="1pt"> - <path d="M261.425 375.25c0 .258-5.608 15.997-5.608 15.997l-5.1-15.74s-17.08-.515-17.08-.257 13.512-10.32 13.512-10.32-6.375-18.062-6.12-17.546c.255.516 14.787 10.837 14.787 10.837s14.786-10.32 14.53-10.32-5.607 17.03-5.607 17.03l13.256 10.063-16.57.258z"/> - <path d="M260.662 374.45c0 .224-4.857 13.855-4.857 13.855l-4.416-13.63s-14.795-.448-14.795-.225 11.702-8.938 11.702-8.938-5.52-15.643-5.3-15.196c.222.447 12.808 9.386 12.808 9.386s12.806-8.94 12.585-8.94-4.857 14.75-4.857 14.75l11.48 8.716-14.35.223z" fill="#ffe700"/> - <path d="M258.608 372.183c0 .13-2.8 7.99-2.8 7.99l-2.547-7.86s-8.53-.26-8.53-.13 6.748-5.154 6.748-5.154-3.182-9.02-3.055-8.762c.127.257 7.384 5.41 7.384 5.41s7.384-5.153 7.256-5.153-2.8 8.504-2.8 8.504l6.62 5.025-8.275.13z" fill="#108c00"/> - </g> - <g stroke-width="1pt"> - <path d="M161.935 290.28c0 .258-5.608 15.997-5.608 15.997l-5.1-15.74s-17.08-.515-17.08-.257 13.512-10.32 13.512-10.32-6.375-18.062-6.12-17.546c.255.516 14.787 10.837 14.787 10.837s14.786-10.32 14.53-10.32-5.607 17.03-5.607 17.03l13.256 10.063-16.57.258z"/> - <path d="M161.172 289.48c0 .224-4.857 13.855-4.857 13.855l-4.416-13.63s-14.795-.448-14.795-.225 11.702-8.938 11.702-8.938-5.52-15.643-5.3-15.196c.222.447 12.808 9.386 12.808 9.386s12.806-8.94 12.585-8.94-4.857 14.75-4.857 14.75l11.48 8.716-14.35.223z" fill="#ffe700"/> - <path d="M159.118 287.213c0 .13-2.8 7.99-2.8 7.99l-2.547-7.86s-8.53-.26-8.53-.13 6.748-5.154 6.748-5.154-3.182-9.02-3.055-8.762c.127.257 7.384 5.41 7.384 5.41s7.384-5.153 7.256-5.153-2.8 8.504-2.8 8.504l6.62 5.025-8.275.13z" fill="#108c00"/> - </g> - <g stroke-width="1pt"> - <path d="M198.655 175.85c0 .258-5.608 15.997-5.608 15.997l-5.1-15.74s-17.08-.515-17.08-.257 13.512-10.32 13.512-10.32-6.375-18.062-6.12-17.546c.255.516 14.787 10.837 14.787 10.837s14.786-10.32 14.53-10.32-5.607 17.03-5.607 17.03l13.256 10.063-16.57.258z"/> - <path d="M197.892 175.05c0 .224-4.857 13.855-4.857 13.855l-4.416-13.63s-14.795-.448-14.795-.225 11.702-8.938 11.702-8.938-5.52-15.643-5.3-15.196c.222.447 12.808 9.386 12.808 9.386s12.806-8.94 12.585-8.94-4.857 14.75-4.857 14.75l11.48 8.716-14.35.223z" fill="#ffe700"/> - <path d="M195.838 172.783c0 .13-2.8 7.99-2.8 7.99l-2.547-7.86s-8.53-.26-8.53-.13 6.748-5.154 6.748-5.154-3.182-9.02-3.055-8.762c.127.257 7.384 5.41 7.384 5.41s7.384-5.153 7.256-5.153-2.8 8.504-2.8 8.504l6.62 5.025-8.275.13z" fill="#108c00"/> - </g> - <g transform="translate(-250.6 359.43) scale(1.036)"> - <g transform="matrix(.164 -.016 .012 .184 429.84 -215.63)" stroke="#000" stroke-width="2.5" fill="#009200"> - <ellipse rx="30.805" ry="189.82" transform="matrix(1.405 -.006 .008 1 -534.29 263.72)" cy="586.13" cx="680.21"/> - <ellipse rx="30.805" ry="189.82" transform="matrix(1.486 -.006 .01 1 -547.22 267.05)" cy="586.13" cx="680.21"/> - <ellipse rx="30.805" ry="189.82" transform="matrix(1.19 -.006 .007 1.105 -364.93 214.1)" cy="586.13" cx="680.21"/> - </g> - <g stroke="#000" transform="translate(72.865 -9.797)"> - <path d="M238.34 971.79c29.972-1.665 16.65-16.652 31.637-24.977 14.986-8.326 36.633-3.33 43.293 6.66 6.66 9.99 1.666 19.982 9.99 19.982 8.327 0 234.56-12.675 242.88-4.35 8.327 8.326 9.992 24.978 1.666 31.635-8.325 6.66-294.5 14.34-304.49 7.68-9.99-6.66-24.977-34.965-24.977-36.63z" transform="matrix(.202 .003 -.004 .214 340.86 -247.31)" stroke-width="2.505" fill="#a95600"/> - <path d="M529.59 405.46c0 39.983 45.562 27.88 46.81 61.25-.724 35.407-76.706 3.466-78.635-61.25 1.93-64.716 75.107-97.93 76.705-61.01 1.246 30.685-44.88 21.027-44.88 61.01z" transform="matrix(.148 .002 -.003 .115 340.42 -81.69)" stroke-width="3.853" fill="#ff0"/> - <path d="M529.59 405.46c0 39.983 45.562 27.88 46.81 61.25-.724 35.407-76.706 3.466-78.635-61.25 1.93-64.716 75.107-97.93 76.705-61.01 1.246 30.685-44.88 21.027-44.88 61.01z" transform="matrix(.148 .002 -.003 .115 344.42 -81.638)" stroke-width="3.853" fill="#ff0"/> - <path d="M529.59 405.46c0 39.983 45.562 27.88 46.81 61.25-.724 35.407-76.706 3.466-78.635-61.25 1.93-64.716 75.107-97.93 76.705-61.01 1.246 30.685-44.88 21.027-44.88 61.01z" transform="matrix(.148 .002 -.003 .115 348.71 -81.8)" stroke-width="3.853" fill="#ff0"/> - <path d="M529.59 405.46c0 39.983 45.562 27.88 46.81 61.25-.724 35.407-76.706 3.466-78.635-61.25 1.93-64.716 75.107-97.93 76.705-61.01 1.246 30.685-44.88 21.027-44.88 61.01z" transform="matrix(.148 .002 -.003 .115 352.71 -81.747)" stroke-width="3.853" fill="#ff0"/> - <ellipse rx="3.534" ry="3.403" transform="matrix(1.095 .016 -.024 1.154 -75.57 4.678)" cy="-41.086" cx="478.38" stroke-width=".399" fill="#a95600"/> - </g> - <g transform="rotate(-5.8 688.37 -625.218)" stroke="#000" stroke-width="2.5" fill="#009200"> - <ellipse rx="20.814" ry="24.144" transform="matrix(.166 -.008 .002 .315 369.8 -361.65)" cy="905" cx="427.11"/> - <ellipse rx="20.814" ry="24.144" transform="matrix(.166 -.008 .002 .315 364.04 -362.7)" cy="905" cx="427.11"/> - <ellipse rx="20.814" ry="24.144" transform="matrix(.166 -.008 .002 .315 360.64 -370.55)" cy="905" cx="427.11"/> - <ellipse rx="20.814" ry="24.144" transform="matrix(.16 -.01 .002 .348 369.3 -399.35)" cy="905" cx="427.11"/> - <ellipse rx="20.814" ry="24.144" transform="matrix(.16 -.008 .002 .326 377.41 -379.07)" cy="905" cx="427.11"/> - <ellipse rx="20.814" ry="24.144" transform="matrix(.16 -.008 .002 .326 373.22 -382.21)" cy="905" cx="427.11"/> - <ellipse rx="20.814" ry="24.144" transform="matrix(.16 -.008 .002 .326 367.99 -386.66)" cy="905" cx="427.11"/> - <ellipse rx="20.814" ry="24.144" transform="matrix(.16 -.008 .002 .326 363.01 -389.54)" cy="905" cx="427.11"/> - </g> - <path d="M173.17 346.35s-54.198 64.893-21.252 208.82c33.958 144.59 178.96 189.78 178.96 189.78s26.496-47.423 1.726-164.04c-39.96-169.85-116.14-234.56-116.14-234.56H173.17z" transform="matrix(.177 .032 -.03 .182 461.79 -208.61)" stroke="#000" stroke-width="2.5" fill="#804bff"/> - <g transform="rotate(4.47 180.984 769.886)" stroke="#000" stroke-width="2.5" fill="#009200"> - <ellipse rx="20.814" ry="24.144" transform="matrix(.166 -.008 .002 .315 369.8 -361.65)" cy="905" cx="427.11"/> - <ellipse rx="20.814" ry="24.144" transform="matrix(.166 -.008 .002 .315 364.04 -362.7)" cy="905" cx="427.11"/> - <ellipse rx="20.814" ry="24.144" transform="matrix(.166 -.008 .002 .315 360.64 -370.55)" cy="905" cx="427.11"/> - <ellipse rx="20.814" ry="24.144" transform="matrix(.16 -.01 .002 .348 369.3 -399.35)" cy="905" cx="427.11"/> - <ellipse rx="20.814" ry="24.144" transform="matrix(.16 -.008 .002 .326 377.41 -379.07)" cy="905" cx="427.11"/> - <ellipse rx="20.814" ry="24.144" transform="matrix(.16 -.008 .002 .326 373.22 -382.21)" cy="905" cx="427.11"/> - <ellipse rx="20.814" ry="24.144" transform="matrix(.16 -.008 .002 .326 367.99 -386.66)" cy="905" cx="427.11"/> - <ellipse rx="20.814" ry="24.144" transform="matrix(.16 -.008 .002 .326 363.01 -389.54)" cy="905" cx="427.11"/> - </g> - <ellipse rx="58.28" ry="186.49" stroke="#000" transform="matrix(.157 -.06 .064 .148 369.61 -145.05)" cy="606.11" cx="624.42" stroke-width="1pt" fill="#c90000"/> - <g stroke="#000" fill="#009200" transform="rotate(1.025 242.403 -1957.802)"> - <ellipse rx="10.823" ry="12.905" transform="matrix(.395 0 0 .293 445.07 -230.53)" cy="356.75" cx="218.13" stroke-width="1.464"/> - <ellipse rx="10.823" ry="12.905" transform="matrix(.354 0 0 .293 457.17 -235.92)" cy="356.75" cx="218.13" stroke-width="1.546"/> - <ellipse rx="10.823" ry="12.905" transform="matrix(.354 0 0 .293 452 -235.92)" cy="356.75" cx="218.13" stroke-width="1.546"/> - <ellipse rx="10.823" ry="12.905" transform="matrix(.37 0 0 .275 449.48 -233.46)" cy="356.75" cx="218.13" stroke-width="1.56"/> - <ellipse rx="10.823" ry="12.905" transform="matrix(.37 0 0 .275 448.95 -237.93)" cy="356.75" cx="218.13" stroke-width="1.56"/> - <ellipse rx="10.823" ry="12.905" transform="matrix(.354 0 0 .293 447.01 -238.85)" cy="356.75" cx="218.13" stroke-width="1.546"/> - <ellipse rx="10.823" ry="12.905" transform="matrix(.354 0 0 .287 448.08 -241.58)" cy="356.75" cx="218.13" stroke-width="1.562"/> - <ellipse rx="10.823" ry="12.905" transform="matrix(.395 0 0 .293 432.77 -243.48)" cy="356.75" cx="218.13" stroke-width="1.464"/> - <ellipse rx="10.823" ry="12.905" transform="matrix(.37 0 0 .275 445.92 -243.48)" cy="356.75" cx="218.13" stroke-width="1.56"/> - <ellipse rx="10.823" ry="12.905" transform="matrix(.354 0 0 .287 444.16 -246.97)" cy="356.75" cx="218.13" stroke-width="1.562"/> - <ellipse rx="10.823" ry="12.905" transform="matrix(.354 0 0 .293 436.14 -243.17)" cy="356.75" cx="218.13" stroke-width="1.546"/> - <ellipse rx="10.823" ry="12.905" transform="matrix(.354 0 0 .287 437.42 -243.88)" cy="356.75" cx="218.13" stroke-width="1.562"/> - <ellipse rx="10.823" ry="12.905" transform="matrix(.354 0 0 .287 438.99 -247.02)" cy="356.75" cx="218.13" stroke-width="1.562"/> - </g> - <g stroke="#000" fill="#009200" transform="matrix(.18 -.005 .004 .185 420.99 -216.8)"> - <ellipse rx="67.438" ry="205.64" transform="matrix(.976 -.308 .363 .874 -245.81 324.4)" cy="564.48" cx="528.68" stroke-width="2.545"/> - <ellipse rx="13.321" ry="40.796" transform="rotate(-23.382 630.518 660.85)" cy="646.07" cx="528.68" stroke-width="2.5"/> - <path d="M139.87 643.99c0 57.677-18.755 86.17-34.55 110.32 7.516-32.47 12.904-52.637 12.904-110.31 0-57.677 29.58-85.337 40.38-101.99-4.187 16.652-18.734 44.312-18.734 101.99z" transform="matrix(1.883 -.456 .953 1.182 -352.26 -10.02)" stroke-width="1.533"/> - <path d="M139.87 643.99c0 57.677-18.755 86.17-34.55 110.32 7.516-32.47 12.904-52.637 12.904-110.31 0-57.677 29.58-85.337 40.38-101.99-4.187 16.652-18.734 44.312-18.734 101.99z" transform="matrix(1.883 -.456 .953 1.182 -348.42 44.058)" stroke-width="1.533"/> - <path d="M139.87 643.99c0 57.677-18.755 86.17-34.55 110.32 7.516-32.47 12.904-52.637 12.904-110.31 0-57.677 29.58-85.337 40.38-101.99-4.187 16.652-18.734 44.312-18.734 101.99z" transform="matrix(1.873 -.495 .978 1.162 -361.92 105.78)" stroke-width="1.533"/> - <ellipse rx="13.321" ry="40.796" transform="matrix(1.81 -.4 .7 1.635 -915.63 -221.01)" cy="646.07" cx="528.68" stroke-width="1.389"/> - <ellipse rx="13.321" ry="40.796" transform="matrix(1.626 -.23 .542 1.353 -739.49 -91.775)" cy="646.07" cx="528.68" stroke-width="1.64"/> - <ellipse rx="13.321" ry="40.796" transform="matrix(1.63 -.197 .513 1.363 -750.62 -91.826)" cy="646.07" cx="528.68" stroke-width="1.64"/> - <ellipse rx="13.321" ry="40.796" transform="matrix(1.314 -.2 .47 1.01 -531.06 47.568)" cy="646.07" cx="528.68" stroke-width="2.097"/> - <ellipse rx="13.321" ry="40.796" transform="matrix(1.326 -.13 .403 1.033 -517.87 12.21)" cy="646.07" cx="528.68" stroke-width="2.097"/> - <path d="M145.7 569.47c0 34.006-6.712 61.61-14.985 61.61-8.272 0-14.986-27.604-14.986-61.61" transform="matrix(1.025 -.493 .464 1.177 12.767 -14.52)" stroke-width="2.086"/> - <ellipse rx="13.321" ry="40.796" transform="matrix(1.326 -.13 .403 1.033 -519.53 -34.412)" cy="646.07" cx="528.68" stroke-width="2.097"/> - <ellipse rx="13.321" ry="40.796" transform="matrix(1.33 -.105 .38 1.04 -533.98 -40.12)" cy="646.07" cx="528.68" stroke-width="2.097"/> - <path d="M145.7 569.47c0 34.006-6.712 61.61-14.985 61.61-8.272 0-14.986-27.604-14.986-61.61" transform="matrix(.672 -.472 .46 .8 39.486 143.28)" stroke-width="2.88"/> - <path d="M145.7 569.47c0 34.006-6.712 61.61-14.985 61.61-8.272 0-14.986-27.604-14.986-61.61" transform="matrix(.672 -.472 .46 .8 51.142 125.79)" stroke-width="2.88"/> - <path d="M145.7 569.47c0 34.006-6.712 61.61-14.985 61.61-8.272 0-14.986-27.604-14.986-61.61" transform="matrix(.937 -.645 .64 1.092 -40.198 -10.744)" stroke-width="2.086"/> - <path d="M145.7 569.47c0 34.006-6.712 61.61-14.985 61.61-8.272 0-14.986-27.604-14.986-61.61" transform="matrix(.672 -.52 .46 .88 68.626 71.18)" stroke-width="2.742"/> - </g> - <g stroke="#000" stroke-width="2.5" fill="#804bff"> - <path d="M276.27 345.41c-12.278 9.174.41 25.144 12.022 30.68 13.06 7.67 86.603 58.184 136.32 11.998-40.795.833-118.66-63.183-148.34-42.678z" transform="matrix(.156 .007 -.004 .225 457.948 -214.274)"/> - <path d="M276.27 345.41c-12.278 9.174.41 25.144 12.022 30.68 13.06 7.67 86.603 58.184 136.32 11.998-40.795.833-118.66-63.183-148.34-42.678z" transform="matrix(.156 .007 -.004 .225 456.55 -220.15)"/> - <path d="M276.27 345.41c-12.278 9.174.41 25.144 12.022 30.68 13.06 7.67 86.603 58.184 136.32 11.998-40.795.833-118.66-63.183-148.34-42.678z" transform="matrix(.156 .007 -.004 .225 454.775 -225.77)"/> - <path d="M276.27 345.41c-12.278 9.174.41 25.144 12.022 30.68 13.06 7.67 86.603 58.184 136.32 11.998-40.795.833-118.66-63.183-148.34-42.678z" transform="matrix(.156 .007 -.004 .225 450.905 -232.203)"/> - </g> - <g transform="rotate(1.025 -589.593 681.628)"> - <path d="M211.17 247.3c21.773-12.065 56.618-9.75 79.734 11.165 19.36 16.943 45.307 75.194 70.322 92.834-20.227.018-31.298-5.77-42.24-15.18-28.768 15.44-38.128 16.723-63.89 15.63-35.882-1.333-62.46-17.653-68.18-40.603-6.165-21.804 4.926-52.498 24.254-63.847z" transform="matrix(.21 -.04 .047 .18 407.8 -213.64)" stroke="#000" stroke-width="2.5" fill="#804bff"/> - <ellipse rx="14.154" ry="14.986" stroke="#000" transform="matrix(.245 0 0 .134 401.82 -215.18)" cy="323.04" cx="287.23" stroke-width="2.5" fill="red"/> - <ellipse rx="23.254" ry="15.895" stroke="#000" transform="matrix(.194 -.076 .068 .173 398.66 -208.06)" cy="348.26" cx="204.58" stroke-width="2.5" fill="#ff0"/> - <ellipse rx="5.828" ry="5.828" transform="matrix(.214 0 0 .185 411.29 -233.74)" cy="333.86" cx="283.9"/> - <path d="M516.8 260.29c4.425 18.107-6.674 43.083-33.133 52.61-26.775 13.172-46.08 41.83-55.64 88.016-47.245-103.27-23.108-148.28 20.6-160.35 37.376-14.363 60.42-13.37 68.173 19.72z" transform="matrix(.092 0 -.003 .085 417.85 -191.49)" stroke="#000" stroke-width="6.56" fill="#ff0"/> - <ellipse rx="4.71" ry="4.71" transform="matrix(.187 -.013 .014 .19 418.69 -234.98)" cy="362.39" cx="198.98"/> - </g> - </g> - </g> -</svg> diff --git a/img/flags/1x1/do.svg b/img/flags/1x1/do.svg deleted file mode 100644 index 428e564..0000000 --- a/img/flags/1x1/do.svg +++ /dev/null @@ -1,6745 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" height="512" width="512" viewBox="0 0 512 512"> - <defs> - <clipPath id="a"> - <path fill-opacity=".67" d="M83.69 80.338h364.87v364.87H83.69z"/> - </clipPath> - </defs> - <g clip-path="url(#a)" transform="translate(-117.44 -112.73) scale(1.403)"> - <path fill-rule="evenodd" fill="#00319c" d="M313.18 314.79h318.16v195.18H313.18z"/> - <path fill-rule="evenodd" fill="#d62918" d="M-99.223 315.39h317.25v194.58h-317.25z"/> - <path fill-rule="evenodd" fill="#00319c" d="M-98.615-1.78h317.25v217.63h-317.25z"/> - <path fill-rule="evenodd" fill="#d62918" d="M315.01.045h315.73v217.85H315.01z"/> - <path fill-rule="evenodd" fill="#fff" d="M-99.038 215.83h731.12V316.8h-731.12z"/> - <path fill-rule="evenodd" fill="#fff" d="M217.25-.71h98.537v510.93H217.25z"/> - <path fill="#cecece" d="M259.33 218.79l.5.477-.5-.477z"/> - <path fill="#bdbdbd" d="M259.83 218.79l.5.477-.5-.477z"/> - <path fill="#ada5a5" d="M260.33 218.79l.5.477-.5-.477z"/> - <path fill="#848c9c" d="M263.84 218.79l.5.477-.5-.477z"/> - <path fill="#848ca5" d="M264.67 218.95l.334.16-.334-.16z"/> - <path fill="#848c9c" d="M265.34 218.79l.5.477-.5-.477z"/> - <path fill="#9c9494" d="M268.85 218.79l.5.477-.5-.477z"/> - <path fill="#bdbdbd" d="M269.35 218.79l.5.477-.5-.477z"/> - <path fill="#cecece" d="M269.85 218.79l.5.477-.5-.477z"/> - <path fill="#efefef" d="M255.82 219.26l.5.477-.5-.477z"/> - <path fill="#bdbdbd" d="M256.32 219.26l.5.477-.5-.477z"/> - <path fill="#8c8c8c" d="M256.82 219.26l.5.477-.5-.477z"/> - <path fill="#42425a" d="M257.32 219.26l.5.477-.5-.477z"/> - <path fill="#425a84" d="M257.82 219.26l.5.477-.5-.477z"/> - <path fill="#00184a" d="M258.66 219.42l.334.16-.334-.16z"/> - <path fill="#002984" d="M259.66 219.42l.334.16-.334-.16z"/> - <path fill="#003994" d="M251.68 223.92c-5.925.116-13.854.515-19.04 3.513-3.455 1.996-3.083 7.598 1.493 7.46v.476h-1.002v.476l7.52-1.908v-.477h-3.007v-.476h3.51l-1.004-1.91 18.047-1.907-1.002-3.34c6.736-.81 12.07-.214 18.55 1.432v.476l-4.012-.954c.465 2.065 2.81 1.546 4.512.954l-5.014.954v.477l11.532 1.036 12.032 2.78v.478l-6.517-.953v.477l8.022 2.385-1.506-1.432v-.477l2.006 2.386c3.18.132 5.57.85 7.52 3.34l-7.02-2.863 4.012 9.063h.5v-1.43h.502v1.43l4.512-.954c-1.168-4.804-3.176-10.482-8.02-12.88.426-1.83-.005-2.625-1.505-3.816 1.862 3.663-1.243 5.184-4.01 2.385l-1.002.955 1.002-3.34-3.008 2.863.502-3.34h-.502l-.5 2.863-1.505-1.43-.5 1.43-8.023-.953v-4.293l1.003 1.43h.502v-1.43l2.505 1.43h.502l10.027.478.5 3.816h.502l1.504-3.34c-5.795-2.44-12.756-3.214-19.05-3.338.327-3.243-3.24-3.83-6.017-4.23-4.785-.688-19.517-2.373-20.053 4.23z"/> - <path fill="#002984" d="M269.69 219.42l.334.16-.334-.16z"/> - <path fill="#00184a" d="M270.69 219.42l.334.16-.334-.16z"/> - <path fill="#314a7b" d="M271.36 219.26l.5.477-.5-.477z"/> - <path fill="#42425a" d="M271.86 219.26l.5.477-.5-.477z"/> - <path fill="#8c8c8c" d="M272.36 219.26l.5.477-.5-.477z"/> - <path fill="#ada5a5" d="M272.86 219.26l.5.477-.5-.477z"/> - <path fill="#dedede" d="M273.36 219.26l.5.477-.5-.477z"/> - <path fill="#ada5a5" d="M254.31 219.74l.5.477-.5-.477z"/> - <path fill="#63636b" d="M254.81 219.74l.5.477-.5-.477z"/> - <path fill="#21315a" d="M255.32 219.74l.5.477-.5-.477z"/> - <path fill="#00215a" d="M255.82 219.74l.5.477-.5-.477z"/> - <path fill="#002984" d="M256.32 219.74l.5.477-.5-.477m16.544 0l.5.477-.5-.477z"/> - <path fill="#00216b" d="M273.36 219.74l.5.477-.5-.477z"/> - <path fill="#10295a" d="M273.86 219.74l.5.477-.5-.477z"/> - <path fill="#636b7b" d="M274.37 219.74l.5.477-.5-.477z"/> - <path fill="#ada5a5" d="M274.87 219.74l.5.477-.5-.477z"/> - <path fill="#efefef" d="M252.81 220.22l.5.477-.5-.477z"/> - <path fill="#8c8c8c" d="M253.31 220.22l.5.477-.5-.477z"/> - <path fill="#10214a" d="M253.81 220.22l.5.477-.5-.477z"/> - <path fill="#00216b" d="M254.31 220.22l.5.477-.5-.477z"/> - <path fill="#184a8c" d="M259.33 220.22l.5.477-.5-.477z"/> - <path fill="#5a6b63" d="M259.83 220.22l.5.477-.5-.477z"/> - <path fill="#295284" d="M260.33 220.22l.5.477-.5-.477m1.003 0l.5.477-.5-.477zm3.007 0l.5.477-.5-.477z"/> - <path fill="#4a636b" d="M267.35 220.22l.5.477-.5-.477z"/> - <path fill="#7b7b52" d="M268.85 220.22l.5.477-.5-.477z"/> - <path fill="#5a6b63" d="M269.35 220.22l.5.477-.5-.477z"/> - <path fill="#002984" d="M274.87 220.22l.5.477-.5-.477z"/> - <path fill="#10295a" d="M275.37 220.22l.5.477-.5-.477z"/> - <path fill="#63636b" d="M275.87 220.22l.5.477-.5-.477z"/> - <path fill="#dedede" d="M276.37 220.22l.5.477-.5-.477z"/> - <path fill="#efefef" d="M251.81 220.7l-.5.954.5-.954z"/> - <path fill="#8c8c8c" d="M252.31 220.7l.5.477-.5-.477z"/> - <path fill="#10295a" d="M252.81 220.7l.5.477-.5-.477z"/> - <path fill="#5a6b63" d="M255.82 220.7l.5.477-.5-.477z"/> - <path fill="#7b7b52" d="M256.32 220.7l.5.477-.5-.477z"/> - <path fill="#ad9431" d="M256.82 220.7l.5.477-.5-.477z"/> - <path fill="#9c8c42" d="M257.32 220.7l.5.477-.5-.477z"/> - <path fill="#395273" d="M257.82 220.7l.5.477-.5-.477z"/> - <path fill="#8c8442" d="M259.33 220.7l.5.477-.5-.477z"/> - <path fill="#9c8c42" d="M260.33 220.7l.5.477-.5-.477z"/> - <path fill="#395273" d="M261.33 220.7l.5.477-.5-.477zm3.01 0l.5.477-.5-.477z"/> - <path fill="#9c8c42" d="M269.35 220.7l.5.477-.5-.477z"/> - <path fill="#bd9c29" d="M271.69 220.85l.334.16-.334-.16z"/> - <path fill="#295284" d="M272.36 220.7l.5.477-.5-.477z"/> - <path fill="#00184a" d="M276.37 220.7l.5.477-.5-.477z"/> - <path fill="#63636b" d="M276.87 220.7l.5.477-.5-.477z"/> - <path fill="#dedede" d="M277.37 220.7l.5.477-.5-.477z"/> - <path fill="#31394a" d="M251.81 221.17l.5.477-.5-.477z"/> - <path fill="#deb518" d="M255.82 221.17l.5.477-.5-.477z"/> - <path fill="#efbd08" d="M257.82 221.17l.5.477-.5-.477z"/> - <path fill="#bd9c29" d="M259.33 221.17l.5.477-.5-.477z"/> - <path fill="#efbd08" d="M260.33 221.17l.5.477-.5-.477z"/> - <path fill="#7b7b52" d="M265.84 221.17l.5.477-.5-.477z"/> - <path fill="#003994" d="M266.34 221.17l.5.477-.5-.477z"/> - <path fill="#4a636b" d="M266.85 221.17l.5.477-.5-.477z"/> - <path fill="#395273" d="M267.85 221.17l.5.477-.5-.477z"/> - <path fill="#184a8c" d="M270.86 221.17l.5.477-.5-.477z"/> - <path fill="#4a636b" d="M272.36 221.17l.5.477-.5-.477z"/> - <path fill="#10214a" d="M277.37 221.17l1.003.954-1.003-.954z"/> - <path fill="#cecece" d="M277.88 221.17l.5.477-.5-.477z"/> - <path fill="#212139" d="M251.3 221.65l.5.477-.5-.477z"/> - <path fill="#bd9c29" d="M255.82 221.65l.5.477-.5-.477z"/> - <path fill="#cead21" d="M256.32 221.65l.5.477-.5-.477z"/> - <path fill="#003994" d="M256.99 221.97l.167.318-.167-.318z"/> - <path fill="#395273" d="M257.49 221.97l.167.318-.167-.318z"/> - <path fill="#6b735a" d="M258.32 221.65l.5.477-.5-.477z"/> - <path fill="#cead21" d="M259.83 221.65l.5.477-.5-.477z"/> - <path fill="#5a6b63" d="M260.83 221.65l.5.477-.5-.477z"/> - <path fill="#9c8c42" d="M265.84 221.65l.5.477-.5-.477z"/> - <path fill="#395273" d="M266.34 221.65l.5.477-.5-.477z"/> - <path fill="#9c8c42" d="M266.85 221.65l.5.477-.5-.477z"/> - <path fill="#184a8c" d="M267.85 221.65l.5.477-.5-.477z"/> - <path fill="#295284" d="M268.35 221.65l.5.477-.5-.477z"/> - <path fill="#8c8442" d="M270.86 221.65l.5.477-.5-.477z"/> - <path fill="#7b7b52" d="M272.36 221.65l.5.477-.5-.477z"/> - <path fill="#efefef" d="M278.38 221.65l.5.477-.5-.477z"/> - <path fill="#cecece" d="M250.8 222.13l.5.477-.5-.477z"/> - <path fill="#00216b" d="M251.3 222.13l.5.477-.5-.477z"/> - <path fill="#7b7b52" d="M255.82 222.13l.5.477-.5-.477z"/> - <path fill="#395273" d="M258.32 222.13l.5.477-.5-.477z"/> - <path fill="#295284" d="M258.82 222.13l.5.477-.5-.477z"/> - <path fill="#4a636b" d="M259.83 222.13l.5.477-.5-.477z"/> - <path fill="#deb518" d="M260.33 222.13l.5.477-.5-.477z"/> - <path fill="#ad9431" d="M260.83 222.13l.5.477-.5-.477m6.517 0l.502.477-.503-.477z"/> - <path fill="#395273" d="M268.52 222.44l.167.318-.167-.318z"/> - <path fill="#efbd08" d="M270.86 222.13l.5.477-.5-.477z"/> - <path fill="#ad9431" d="M271.36 222.13l.5.477-.5-.477z"/> - <path fill="#cead21" d="M271.86 222.13l.5.477-.5-.477z"/> - <path fill="#ad9431" d="M272.36 222.13l.5.477-.5-.477z"/> - <path fill="#002984" d="M277.88 222.13l.5.477-.5-.477z"/> - <path fill="#9c9494" d="M278.38 222.13l.5.477-.5-.477m-27.573.477l.5.477-.5-.477z"/> - <path fill="#002984" d="M251.47 222.92l.167.318-.167-.318z"/> - <path fill="#6b735a" d="M255.82 222.6l.5.477-.5-.477z"/> - <path fill="#bd9c29" d="M256.82 222.6l.5.477-.5-.477z"/> - <path fill="#184a8c" d="M258.32 222.6l.5.477-.5-.477z"/> - <path fill="#5a6b63" d="M258.82 222.6l.5.477-.5-.477z"/> - <path fill="#7b7b52" d="M259.83 222.6l.5.477-.5-.477z"/> - <path fill="#cead21" d="M260.33 222.6l.5.477-.5-.477z"/> - <path fill="#9c8c42" d="M265.84 222.6l.5.477-.5-.477z"/> - <path fill="#4a636b" d="M266.34 222.6l.5.477-.5-.477z"/> - <path fill="#deb518" d="M266.85 222.6l.5.477-.5-.477z"/> - <path fill="#5a6b63" d="M270.36 222.6l.5.477-.5-.477z"/> - <path fill="#4a636b" d="M271.36 222.6l.5.477-.5-.477z"/> - <path fill="#bd9c29" d="M272.19 222.76l.334.16-.334-.16z"/> - <path fill="#bdbdbd" d="M250.8 223.08l.5.477-.5-.477z"/> - <path fill="#395273" d="M255.82 223.08l.5.477-.5-.477z"/> - <path fill="#cead21" d="M256.82 223.08l.5.477-.5-.477z"/> - <path fill="#8c8442" d="M257.32 223.08l.5.477-.5-.477z"/> - <path fill="#395273" d="M257.82 223.08l.5.477-.5-.477z"/> - <path fill="#8c8442" d="M258.82 223.08l.5.477-.5-.477z"/> - <path fill="#5a6b63" d="M261.33 223.08l.5.477-.5-.477z"/> - <path fill="#7b7b52" d="M266.01 223.4l.167.318-.167-.318m.836-.318l1.002 1.43-1.002-1.43z"/> - <path fill="#4a636b" d="M268.35 223.08l.5.477-.5-.477z"/> - <path fill="#bd9c29" d="M270.36 223.08l.5.477-.5-.477z"/> - <path fill="#deb518" d="M271.86 223.08l.5.477-.5-.477z"/> - <path fill="#ada5a5" d="M248.8 223.56l.5.477-.5-.477z"/> - <path fill="#42425a" d="M250.8 223.56l.5.477-.5-.477z"/> - <path fill="#00216b" d="M251.3 223.56l.5.477-.5-.477z"/> - <path fill="#7b7b52" d="M256.82 223.56l.5.477-.5-.477z"/> - <path fill="#bd9c29" d="M258.82 223.56l.5.477-.5-.477z"/> - <path fill="#cead21" d="M259.33 223.56l.5.477-.5-.477z"/> - <path fill="#395273" d="M259.83 223.56l.5.477-.5-.477z"/> - <path fill="#295284" d="M260.33 223.56l.5.477-.5-.477z"/> - <path fill="#deb518" d="M260.83 223.56l.5.477-.5-.477z"/> - <path fill="#bd9c29" d="M261.33 223.56l.5.477-.5-.477z"/> - <path fill="#7b7b52" d="M268.35 223.56l.5.477-.5-.477z"/> - <path fill="#ad9431" d="M270.86 223.56l.5.477-.5-.477z"/> - <path fill="#cead21" d="M271.86 223.56l.5.477-.5-.477z"/> - <path fill="#184a8c" d="M272.86 223.56l.5.477-.5-.477z"/> - <path fill="#002984" d="M277.88 223.56l.5.477-.5-.477z"/> - <path fill="#42425a" d="M278.38 223.56l.5.477-.5-.477z"/> - <path fill="#9c9494" d="M280.38 223.56l.5.477-.5-.477z"/> - <path fill="#efefef" d="M282.39 223.56l.5.477-.5-.477z"/> - <path fill="#cecece" d="M242.78 224.03l.5.477-.5-.477z"/> - <path fill="#bdbdbd" d="M243.28 224.03l.5.477-.5-.477z"/> - <path fill="#8c8c8c" d="M244.12 224.19l.334.16-.334-.16z"/> - <path fill="#42425a" d="M244.79 224.03l.5.477-.5-.477z"/> - <path fill="#314a7b" d="M245.29 224.03l.5.477-.5-.477z"/> - <path fill="#00184a" d="M246.12 224.19l.334.16-.334-.16z"/> - <path fill="#00216b" d="M246.79 224.03l.5.477-.5-.477z"/> - <path fill="#9c8c42" d="M256.82 224.03l.5.477-.5-.477z"/> - <path fill="#ffce08" d="M258.82 224.03l.5.477-.5-.477z"/> - <path fill="#8c8442" d="M259.33 224.03l.5.477-.5-.477z"/> - <path fill="#6b735a" d="M260.83 224.03l.5.477-.5-.477z"/> - <path fill="#8c8442" d="M261.33 224.03l.5.477-.5-.477z"/> - <path fill="#184a8c" d="M262.33 224.03l.5.477-.5-.477z"/> - <path fill="#7b7b52" d="M262.84 224.03l.5.477-.5-.477z"/> - <path fill="#184a8c" d="M263.34 224.03l.5.477-.5-.477z"/> - <path fill="#395273" d="M265.34 224.03l.5.477-.5-.477m1.504 0l.5.477-.5-.477z"/> - <path fill="#5a6b63" d="M268.35 224.03l.5.477-.5-.477z"/> - <path fill="#bd9c29" d="M268.85 224.03l.5.477-.5-.477z"/> - <path fill="#8c8442" d="M269.85 224.03l.5.477-.5-.477z"/> - <path fill="#184a8c" d="M270.86 224.03l.5.477-.5-.477z"/> - <path fill="#395273" d="M271.86 224.03l.5.477-.5-.477m1.003 0l.5.477-.5-.477z"/> - <path fill="#00216b" d="M282.39 224.03l.5.477-.5-.477z"/> - <path fill="#00184a" d="M283.22 224.19l.334.16-.334-.16z"/> - <path fill="#314a7b" d="M283.89 224.03l.5.477-.5-.477z"/> - <path fill="#42425a" d="M284.39 224.03l.5.477-.5-.477z"/> - <path fill="#7b7373" d="M284.89 224.03l.5.477-.5-.477z"/> - <path fill="#8c8c8c" d="M285.4 224.03l.5.477-.5-.477z"/> - <path fill="#bdbdbd" d="M285.9 224.03l.5.477-.5-.477z"/> - <path fill="#cecece" d="M286.4 224.03l.5.477-.5-.477m-46.624.477l.5.477-.5-.477z"/> - <path fill="#9c9494" d="M240.28 224.51l.5.477-.5-.477z"/> - <path fill="#7b7373" d="M240.78 224.51l.5.477-.5-.477z"/> - <path fill="#42425a" d="M241.28 224.51l.5.477-.5-.477z"/> - <path fill="#29396b" d="M241.78 224.51l.5.477-.5-.477z"/> - <path fill="#00184a" d="M242.28 224.51l.5.477-.5-.477z"/> - <path fill="#00216b" d="M242.78 224.51l.5.477-.5-.477z"/> - <path fill="#002984" d="M243.28 224.51l.5.477-.5-.477z"/> - <path fill="#00216b" d="M250.8 224.51l.5.477-.5-.477z"/> - <path fill="#8c8442" d="M256.32 224.51l.5.477-.5-.477z"/> - <path fill="#7b7b52" d="M256.82 224.51l.5.477-.5-.477z"/> - <path fill="#184a8c" d="M271.86 224.51l.5.477-.5-.477z"/> - <path fill="#7b7b52" d="M272.36 224.51l.5.477-.5-.477z"/> - <path fill="#295284" d="M272.86 224.51l.5.477-.5-.477z"/> - <path fill="#00184a" d="M277.37 224.51l.5.477-.5-.477z"/> - <path fill="#002984" d="M286.23 224.67l.334.16-.334-.16z"/> - <path fill="#00184a" d="M286.9 224.51l.5.477-.5-.477z"/> - <path fill="#10295a" d="M287.4 224.51l.5.477-.5-.477z"/> - <path fill="#42425a" d="M287.9 224.51l.5.477-.5-.477z"/> - <path fill="#636b7b" d="M288.4 224.51l.5.477-.5-.477z"/> - <path fill="#8c8c8c" d="M288.9 224.51l.5.477-.5-.477z"/> - <path fill="#cecece" d="M289.41 224.51l.5.477-.5-.477z"/> - <path fill="#bdbdbd" d="M237.77 224.99l.5.477-.5-.477z"/> - <path fill="#8c8c8c" d="M238.27 224.99l.5.477-.5-.477z"/> - <path fill="#525a6b" d="M238.77 224.99l.5.477-.5-.477z"/> - <path fill="#10295a" d="M239.27 224.99l.5.477-.5-.477z"/> - <path fill="#00216b" d="M239.77 224.99l.5.477-.5-.477z"/> - <path fill="#395273" d="M245.29 224.99l.5.477-.5-.477z"/> - <path fill="#00184a" d="M250.8 224.99l.5.477-.5-.477z"/> - <path fill="#00215a" d="M277.37 224.99l-.5.954.5-.954z"/> - <path fill="#395273" d="M279.88 224.99l.5.477-.5-.477z"/> - <path fill="#184a8c" d="M280.38 224.99l.5.477-.5-.477z"/> - <path fill="#395273" d="M281.38 224.99l.5.477-.5-.477z"/> - <path fill="#00216b" d="M289.41 224.99l.5.477-.5-.477z"/> - <path fill="#00184a" d="M289.91 224.99l.5.477-.5-.477z"/> - <path fill="#42425a" d="M290.41 224.99l.5.477-.5-.477z"/> - <path fill="#8c8c8c" d="M290.91 224.99l.5.477-.5-.477z"/> - <path fill="#ada5a5" d="M291.41 224.99l.5.477-.5-.477z"/> - <path fill="#efefef" d="M291.91 224.99l.5.477-.5-.477z"/> - <path fill="#dedede" d="M235.76 225.47l.5.477-.5-.477z"/> - <path fill="#7b7373" d="M236.26 225.47l.5.477-.5-.477z"/> - <path fill="#314a7b" d="M236.77 225.47l.5.477-.5-.477z"/> - <path fill="#00184a" d="M237.27 225.47l.5.477-.5-.477z"/> - <path fill="#002984" d="M237.77 225.47l.5.477-.5-.477z"/> - <path fill="#184a8c" d="M241.28 225.47l.5.477-.5-.477z"/> - <path fill="#6b735a" d="M241.78 225.47l.5.477-.5-.477z"/> - <path fill="#395273" d="M242.28 225.47l.5.477-.5-.477z"/> - <path fill="#5a6b63" d="M244.29 225.47l.5.477-.5-.477z"/> - <path fill="#efbd08" d="M244.79 225.47l.5.477-.5-.477z"/> - <path fill="#ffce08" d="M245.62 225.62l.334.16-.334-.16z"/> - <path fill="#4a636b" d="M246.29 225.47l.5.477-.5-.477z"/> - <path fill="#00215a" d="M250.8 225.47l.5.477-.5-.477z"/> - <path fill="#002984" d="M259.16 225.62l.334.16-.334-.16z"/> - <path fill="#00215a" d="M259.83 225.47l.5.477-.5-.477z"/> - <path fill="#00184a" d="M260.33 225.47l.5.477-.5-.477z"/> - <path fill="#29396b" d="M260.83 225.47l.5.477-.5-.477z"/> - <path fill="#425a84" d="M261.33 225.47l.5.477-.5-.477z"/> - <path fill="#636b7b" d="M264.34 225.47l.5.477-.5-.477z"/> - <path fill="#737b94" d="M264.84 225.47l.5.477-.5-.477z"/> - <path fill="#29396b" d="M268.35 225.47l.5.477-.5-.477z"/> - <path fill="#00184a" d="M269.19 225.62l.334.16-.334-.16z"/> - <path fill="#002984" d="M270.19 225.62l.334.16-.334-.16z"/> - <path fill="#6b6b4a" d="M277.37 225.47l.5.477-.5-.477z"/> - <path fill="#7b7b52" d="M280.38 225.47l1.003 3.816-1.003-3.816z"/> - <path fill="#cead21" d="M282.89 225.47l.5.477-.5-.477z"/> - <path fill="#4a636b" d="M283.39 225.47l.5.477-.5-.477z"/> - <path fill="#8c8442" d="M284.39 225.47l.5.477-.5-.477z"/> - <path fill="#395273" d="M286.4 225.47l-.5 1.908.5-1.908z"/> - <path fill="#002984" d="M291.41 225.47l.5.477-.5-.477z"/> - <path fill="#00215a" d="M291.91 225.47l.5.477-.5-.477z"/> - <path fill="#314a7b" d="M292.41 225.47l.5.477-.5-.477z"/> - <path fill="#7b7373" d="M292.92 225.47l.5.477-.5-.477z"/> - <path fill="#cecece" d="M293.42 225.47l.5.477-.5-.477z"/> - <path fill="#efefef" d="M234.26 225.94l.5.477-.5-.477z"/> - <path fill="#8c8c8c" d="M234.76 225.94l.5.477-.5-.477z"/> - <path fill="#31425a" d="M235.26 225.94l.5.477-.5-.477z"/> - <path fill="#00216b" d="M235.76 225.94l.5.477-.5-.477z"/> - <path fill="#5a6b63" d="M240.78 225.94l.5.477-.5-.477z"/> - <path fill="#cead21" d="M242.78 225.94l.5.477-.5-.477z"/> - <path fill="#deb518" d="M244.62 226.1l.334.16-.334-.16z"/> - <path fill="#7b7b52" d="M245.29 225.94l.5.477-.5-.477z"/> - <path fill="#deb518" d="M246.12 226.1l.334.16-.334-.16z"/> - <path fill="#00216b" d="M251.3 225.94l.5.477-.5-.477m6.016 0l.5.477-.5-.477z"/> - <path fill="#63636b" d="M257.82 225.94l.5.477-.5-.477z"/> - <path fill="#cecece" d="M269.85 225.94l.5.477-.5-.477z"/> - <path fill="#bdbdbd" d="M270.36 225.94l.5.477-.5-.477z"/> - <path fill="#ada5a5" d="M270.86 225.94l.5.477-.5-.477z"/> - <path fill="#8c8c8c" d="M271.36 225.94l.5.477-.5-.477z"/> - <path fill="#00184a" d="M272.03 226.26l.167.318-.167-.318z"/> - <path fill="#001039" d="M276.87 225.94l.5.477-.5-.477z"/> - <path fill="#deb518" d="M277.37 225.94l.5.477-.5-.477z"/> - <path fill="#bd9c29" d="M281.89 225.94l.5.477-.5-.477z"/> - <path fill="#7b7b52" d="M282.39 225.94l-.5.954.5-.954z"/> - <path fill="#deb518" d="M282.89 225.94l.5.477-.5-.477z"/> - <path fill="#bd9c29" d="M284.39 225.94l1.003.954-1.003-.954zm3.01 0l.5.477-.5-.477z"/> - <path fill="#ffce08" d="M287.9 225.94l.5.477-.5-.477z"/> - <path fill="#bd9c29" d="M288.4 225.94l.5.477-.5-.477z"/> - <path fill="#ad9431" d="M288.9 225.94l.5.477-.5-.477z"/> - <path fill="#4a636b" d="M289.41 225.94l.5.477-.5-.477z"/> - <path fill="#00216b" d="M293.42 225.94l.5.477-.5-.477z"/> - <path fill="#21315a" d="M293.92 225.94l.5.477-.5-.477z"/> - <path fill="#8c8c8c" d="M294.42 225.94l.5.477-.5-.477z"/> - <path fill="#dedede" d="M294.92 225.94l.5.477-.5-.477z"/> - <path fill="#9c9494" d="M233.26 226.42l.5.477-.5-.477z"/> - <path fill="#525a6b" d="M233.76 226.42l.5.477-.5-.477z"/> - <path fill="#00215a" d="M234.26 226.42l.5.477-.5-.477z"/> - <path fill="#bd9c29" d="M238.77 226.42l.5.477-.5-.477z"/> - <path fill="#deb518" d="M241.28 226.42l.5.477-.5-.477z"/> - <path fill="#4a636b" d="M241.78 226.42l.5.477-.5-.477z"/> - <path fill="#9c8c42" d="M242.28 226.42l.5.477-.5-.477z"/> - <path fill="#7b7b52" d="M243.28 226.42l.5.477-.5-.477z"/> - <path fill="#ffce08" d="M244.29 226.42l1.003.954-1.003-.954z"/> - <path fill="#8c8442" d="M244.79 226.42l.5.477-.5-.477z"/> - <path fill="#003994" d="M245.29 226.42l.5.477-.5-.477z"/> - <path fill="#295284" d="M245.79 226.42l.5.477-.5-.477z"/> - <path fill="#5a6b63" d="M246.29 226.42l.5.477-.5-.477z"/> - <path fill="#001039" d="M251.3 226.42l.5.477-.5-.477z"/> - <path fill="#00216b" d="M255.82 226.42l.5.477-.5-.477z"/> - <path fill="#00184a" d="M256.32 226.42l.5.477-.5-.477z"/> - <path fill="#00216b" d="M256.82 226.42l.5.477-.5-.477z"/> - <path fill="#8c8c8c" d="M257.82 226.42l.5.477-.5-.477z"/> - <path fill="#dedede" d="M270.86 226.42l.5.477-.5-.477z"/> - <path fill="#63636b" d="M271.52 226.74l.167.318-.167-.318z"/> - <path fill="#002984" d="M272.53 226.74l.167.318-.167-.318z"/> - <path fill="#313931" d="M276.87 226.42l.5.477-.5-.477z"/> - <path fill="#295284" d="M280.88 226.42l.5.477-.5-.477z"/> - <path fill="#003994" d="M282.39 226.42l.5.477-.5-.477z"/> - <path fill="#8c8442" d="M282.89 226.42l.5.477-.5-.477z"/> - <path fill="#184a8c" d="M283.89 226.42l.5.477-.5-.477z"/> - <path fill="#efbd08" d="M284.39 226.42l.5.477-.5-.477z"/> - <path fill="#003994" d="M285.4 226.42l.5.477-.5-.477m1.67.318l.168.318-.167-.318z"/> - <path fill="#cead21" d="M287.4 226.42l.5.477-.5-.477z"/> - <path fill="#efbd08" d="M287.9 226.42l.5.477-.5-.477z"/> - <path fill="#cead21" d="M288.4 226.42l.5.477-.5-.477z"/> - <path fill="#295284" d="M289.91 226.42l.5.477-.5-.477z"/> - <path fill="#ffce08" d="M290.41 226.42l.5.477-.5-.477z"/> - <path fill="#cead21" d="M290.91 226.42l.5.477-.5-.477z"/> - <path fill="#8c8442" d="M291.41 226.42l.5.477-.5-.477z"/> - <path fill="#5a6b63" d="M291.91 226.42l.5.477-.5-.477z"/> - <path fill="#184a8c" d="M292.41 226.42l.5.477-.5-.477z"/> - <path fill="#00216b" d="M294.92 226.42l.5.477-.5-.477z"/> - <path fill="#31394a" d="M295.42 226.42l.5.477-.5-.477z"/> - <path fill="#9c9494" d="M295.92 226.42l.5.477-.5-.477z"/> - <path fill="#efefef" d="M296.42 226.42l.5.477-.5-.477z"/> - <path fill="#ada5a5" d="M232.25 226.9l.5.477-.5-.477z"/> - <path fill="#212139" d="M232.76 226.9l.5.477-.5-.477z"/> - <path fill="#002984" d="M233.26 226.9l.5.477-.5-.477z"/> - <path fill="#5a6b63" d="M235.26 226.9l.5.477-.5-.477z"/> - <path fill="#9c8c42" d="M235.76 226.9l.5.477-.5-.477z"/> - <path fill="#deb518" d="M236.26 226.9l.5.477-.5-.477z"/> - <path fill="#bd9c29" d="M237.27 226.9l.5.477-.5-.477z"/> - <path fill="#7b7b52" d="M238.77 226.9l.5.477-.5-.477z"/> - <path fill="#184a8c" d="M239.77 226.9l.5.477-.5-.477z"/> - <path fill="#395273" d="M240.28 226.9l.5 1.43-.5-1.43z"/> - <path fill="#7b7b52" d="M241.28 226.9l.5.477-.5-.477z"/> - <path fill="#003994" d="M241.78 226.9v1.908h1.003V226.9h-1.003z"/> - <path fill="#efbd08" d="M242.78 226.9l.5.477-.5-.477z"/> - <path fill="#deb518" d="M243.28 226.9l.5.477-.5-.477z"/> - <path fill="#bd9c29" d="M244.29 226.9l.5.477-.5-.477z"/> - <path fill="#efbd08" d="M245.29 226.9l.5.477-.5-.477z"/> - <path fill="#bd9c29" d="M245.79 226.9l-.5.954.5-.954z"/> - <path fill="#7b7b52" d="M246.29 226.9l.5.477-.5-.477z"/> - <path fill="#00215a" d="M251.3 226.9l.5.477-.5-.477z"/> - <path fill="#002984" d="M253.31 226.9l.5.477-.5-.477z"/> - <path fill="#00184a" d="M254.52 227.57v1.15h2.368l-2.368-1.15z"/> - <path fill="#00215a" d="M255.32 226.9l.5.477-.5-.477z"/> - <path fill="#002984" d="M255.82 226.9l.5.477-.5-.477z"/> - <path fill="#31394a" d="M257.82 226.9l.5.477-.5-.477z"/> - <path fill="#00216b" d="M274.37 226.9l1.003.954-1.003-.954z"/> - <path fill="#002984" d="M274.87 226.9l.5.477-.5-.477z"/> - <path fill="#00184a" d="M276.54 227.21l.167.318-.167-.318z"/> - <path fill="#8c8442" d="M276.87 226.9l.5.477-.5-.477z"/> - <path fill="#9c8c42" d="M283.39 226.9l.5.477-.5-.477z"/> - <path fill="#003994" d="M284.06 227.21l.167.318-.167-.318z"/> - <path fill="#deb518" d="M284.89 226.9l.5.477-.5-.477z"/> - <path fill="#6b735a" d="M285.4 226.9l.5.477-.5-.477z"/> - <path fill="#295284" d="M286.4 226.9l.5.477-.5-.477z"/> - <path fill="#ad9431" d="M287.9 226.9l.5.477-.5-.477z"/> - <path fill="#003994" d="M288.4 226.9l.5.477-.5-.477z"/> - <path fill="#295284" d="M288.9 226.9l.5.477-.5-.477z"/> - <path fill="#8c8442" d="M289.91 226.9l.5.477-.5-.477z"/> - <path fill="#9c8c42" d="M290.41 226.9l.5.477-.5-.477z"/> - <path fill="#deb518" d="M290.91 226.9l.5.477-.5-.477z"/> - <path fill="#ffce08" d="M291.41 227.85l1.504-.477-1.504.477z"/> - <path fill="#6b735a" d="M292.92 226.9l.5.477-.5-.477z"/> - <path fill="#295284" d="M293.92 226.9l-.5.954.5-.954z"/> - <path fill="#10214a" d="M296.42 226.9l.5.477-.5-.477z"/> - <path fill="#9c9494" d="M296.93 226.9l.5.477-.5-.477z"/> - <path fill="#bdbdbd" d="M231.25 227.37l.5.477-.5-.477z"/> - <path fill="#42425a" d="M231.75 227.37l.5.477-.5-.477z"/> - <path fill="#002984" d="M232.25 227.37l.5.477-.5-.477z"/> - <path fill="#ad9431" d="M235.26 227.37l.5.477-.5-.477z"/> - <path fill="#bd9c29" d="M236.6 227.53l.334.16-.334-.16m1.17-.16l.5.478-.5-.477z"/> - <path fill="#6b735a" d="M238.77 227.37l.5.477-.5-.477z"/> - <path fill="#395273" d="M241.28 227.37l.5.477-.5-.477z"/> - <path fill="#184a8c" d="M244.45 227.69l.167.318-.167-.318z"/> - <path fill="#9c8c42" d="M244.79 227.37l.5.477-.5-.477z"/> - <path fill="#ffce08" d="M246.12 227.53l.334.16-.334-.16z"/> - <path fill="#8c8442" d="M246.79 227.37l.5.477-.5-.477z"/> - <path fill="#00184a" d="M251.97 227.69l.167.318-.167-.318z"/> - <path fill="#002984" d="M252.31 227.37l.5.477-.5-.477z"/> - <path fill="#001039" d="M252.81 227.37l.5.477-.5-.477z"/> - <path fill="#00216b" d="M253.31 227.37l.5.477-.5-.477z"/> - <path fill="#00215a" d="M257.82 227.37l.5.477-.5-.477z"/> - <path fill="#efefef" d="M258.32 227.37l.5.477-.5-.477z"/> - <path fill="#21315a" d="M271.36 227.37l.5.477-.5-.477z"/> - <path fill="#00184a" d="M275.37 227.37l.5.477-.5-.477z"/> - <path fill="#9c8c42" d="M281.89 227.37l.5.477-.5-.477z"/> - <path fill="#bd9c29" d="M282.39 227.37l.5.477-.5-.477z"/> - <path fill="#efbd08" d="M282.89 227.37l.5.477-.5-.477z"/> - <path fill="#deb518" d="M283.39 227.37l.5.477-.5-.477z"/> - <path fill="#8c8442" d="M286.4 227.37l.5.477-.5-.477z"/> - <path fill="#184a8c" d="M286.9 227.37l.5.477-.5-.477z"/> - <path fill="#bd9c29" d="M287.9 227.37l.5.477-.5-.477z"/> - <path fill="#4a636b" d="M288.4 227.37l.5.477-.5-.477z"/> - <path fill="#7b7b52" d="M288.9 227.37l.5.477-.5-.477z"/> - <path fill="#4a636b" d="M289.91 227.37l.5.477-.5-.477z"/> - <path fill="#5a6b63" d="M290.91 227.37l.5.477-.5-.477z"/> - <path fill="#6b735a" d="M291.91 227.37l.5.477-.5-.477z"/> - <path fill="#7b7b52" d="M292.41 227.37l.5.477-.5-.477z"/> - <path fill="#184a8c" d="M292.92 227.37l.5.477-.5-.477z"/> - <path fill="#efbd08" d="M294.42 227.37l.5.477-.5-.477z"/> - <path fill="#002984" d="M296.93 227.37l.5.477-.5-.477z"/> - <path fill="#212139" d="M297.43 227.37l.5.477-.5-.477z"/> - <path fill="#ada5a5" d="M297.93 227.37l.5.477-.5-.477z"/> - <path fill="#9c9494" d="M230.75 227.85l-.5.954.5-.954z"/> - <path fill="#00215a" d="M231.25 227.85l.5.477-.5-.477z"/> - <path fill="#6b735a" d="M235.26 227.85l.5.477-.5-.477z"/> - <path fill="#295284" d="M236.26 227.85l.5.477-.5-.477z"/> - <path fill="#003994" d="M236.77 227.85v1.908h.5l-.5-1.908z"/> - <path fill="#9c8c42" d="M237.27 227.85l.5.477-.5-.477z"/> - <path fill="#184a8c" d="M238.27 227.85l1.003.954-1.003-.954z"/> - <path fill="#395273" d="M238.77 227.85l.5.477-.5-.477zm6.02 0l.5.477-.5-.477z"/> - <path fill="#003994" d="M245.62 228.01l.334.16-.334-.16z"/> - <path fill="#deb518" d="M246.29 227.85l.5.477-.5-.477z"/> - <path fill="#bd9c29" d="M246.79 227.85l.5.477-.5-.477z"/> - <path fill="#001039" d="M252.47 228.17l.167.318-.167-.318z"/> - <path fill="#002984" d="M257.82 227.85l.5.477-.5-.477z"/> - <path fill="#9c9494" d="M258.32 227.85l.5.477-.5-.477z"/> - <path fill="#cecece" d="M270.86 227.85l.5.477-.5-.477z"/> - <path fill="#00216b" d="M271.36 227.85l.5.477-.5-.477z"/> - <path fill="#000818" d="M275.87 227.85l.5.477-.5-.477z"/> - <path fill="#395273" d="M281.89 227.85l.5.477-.5-.477z"/> - <path fill="#003994" d="M282.39 227.85l.5.477-.5-.477z"/> - <path fill="#7b7b52" d="M282.89 227.85l-.5.954.5-.954z"/> - <path fill="#ffce08" d="M283.39 227.85l.5.477-.5-.477z"/> - <path fill="#9c8c42" d="M284.89 227.85l.5.477-.5-.477z"/> - <path fill="#7b7b52" d="M285.9 227.85l.5.477-.5-.477z"/> - <path fill="#395273" d="M286.73 228.01l.334.16-.334-.16z"/> - <path fill="#9c8c42" d="M290.91 227.85l.5.477-.5-.477z"/> - <path fill="#efbd08" d="M291.41 227.85l.5.477-.5-.477z"/> - <path fill="#cead21" d="M293.42 227.85l.5.477-.5-.477z"/> - <path fill="#395273" d="M296.42 227.85l.5.477-.5-.477z"/> - <path fill="#184a8c" d="M296.93 227.85l.5.477-.5-.477z"/> - <path fill="#00216b" d="M297.93 227.85l.5.477-.5-.477z"/> - <path fill="#63636b" d="M298.43 227.85l1.003.954-1.003-.954z"/> - <path fill="#00216b" d="M230.75 228.33l.5.477-.5-.477z"/> - <path fill="#295284" d="M235.26 228.33l.5.477-.5-.477z"/> - <path fill="#184a8c" d="M237.27 228.33l.5.477-.5-.477z"/> - <path fill="#5a6b63" d="M238.27 228.33l.5.477-.5-.477z"/> - <path fill="#7b7b52" d="M239.77 228.33l.5.477-.5-.477z"/> - <path fill="#cead21" d="M241.28 228.33l.5.477-.5-.477m1.504 0l.5.477-.5-.477z"/> - <path fill="#7b7b52" d="M244.29 228.33l.5.477-.5-.477z"/> - <path fill="#6b735a" d="M245.29 228.33l.5.477-.5-.477z"/> - <path fill="#efbd08" d="M246.46 228.65l.167.318-.167-.318z"/> - <path fill="#ad9431" d="M246.79 228.33l.5.477-.5-.477z"/> - <path fill="#00216b" d="M252.81 228.33l.5.477-.5-.477z"/> - <path fill="#002984" d="M252.81 229.28l1.504-.954-1.504.954z"/> - <path fill="#00216b" d="M254.31 228.33l.5.477-.5-.477z"/> - <path fill="#525a6b" d="M258.32 228.33l.5.477-.5-.477z"/> - <path fill="#63636b" d="M270.86 228.33l.5.477-.5-.477z"/> - <path fill="#00216b" d="M273.86 228.33l.5.477-.5-.477z"/> - <path fill="#002984" d="M273.86 229.28l1.504-.954-1.504.954z"/> - <path fill="#00184a" d="M275.37 228.33l.5.477-.5-.477z"/> - <path fill="#00216b" d="M275.87 228.33l.5.477-.5-.477z"/> - <path fill="#5a6b63" d="M280.88 228.33l.5.477-.5-.477z"/> - <path fill="#9c8c42" d="M281.89 228.33l.5.477-.5-.477z"/> - <path fill="#efbd08" d="M282.89 228.33l.5.477-.5-.477z"/> - <path fill="#deb518" d="M283.39 228.33l.5.477-.5-.477z"/> - <path fill="#6b735a" d="M284.89 228.33l.5.477-.5-.477zm2.01 0l.5.477-.5-.477m1.003 0l.5.477-.5-.477z"/> - <path fill="#5a6b63" d="M288.4 228.33l.5.477-.5-.477z"/> - <path fill="#efbd08" d="M288.9 228.33l.5.477-.5-.477z"/> - <path fill="#cead21" d="M290.91 228.33l.5.477-.5-.477z"/> - <path fill="#bd9c29" d="M291.41 228.33l.5.477-.5-.477z"/> - <path fill="#6b735a" d="M292.92 228.33l.5.477-.5-.477z"/> - <path fill="#9c8c42" d="M297.43 228.33l.5.477-.5-.477z"/> - <path fill="#002984" d="M298.43 228.33l.5.477-.5-.477z"/> - <path fill="#ada5a5" d="M229.75 228.8l.5.477-.5-.477z"/> - <path fill="#00216b" d="M230.25 228.8l.5.477-.5-.477z"/> - <path fill="#efbd08" d="M235.76 228.8l.5.477-.5-.477z"/> - <path fill="#9c8c42" d="M236.26 228.8l.5.477-.5-.477z"/> - <path fill="#7b7b52" d="M238.44 229.12l.167.318-.167-.318z"/> - <path fill="#ad9431" d="M239.77 228.8l.5.477-.5-.477z"/> - <path fill="#8c8442" d="M240.78 228.8l.5.477-.5-.477z"/> - <path fill="#ad9431" d="M242.11 228.96l.334.16-.334-.16m1.17-.16l.5.478-.5-.477z"/> - <path fill="#efbd08" d="M244.79 228.8l.5.477-.5-.477z"/> - <path fill="#4a636b" d="M246.79 228.8l.5.477-.5-.477z"/> - <path fill="#00184a" d="M257.32 228.8l.5.477-.5-.477z"/> - <path fill="#636b7b" d="M258.32 228.8l.5.477-.5-.477z"/> - <path fill="#8c8c8c" d="M270.36 228.8l.5.477-.5-.477z"/> - <path fill="#424242" d="M270.86 228.8l.5.477-.5-.477z"/> - <path fill="#8c8442" d="M276.87 228.8l.5.477-.5-.477z"/> - <path fill="#5a6b63" d="M283.39 228.8l.5.477-.5-.477z"/> - <path fill="#8c8442" d="M286.4 228.8l.5.477-.5-.477z"/> - <path fill="#7b7b52" d="M286.9 228.8l.5.477-.5-.477z"/> - <path fill="#184a8c" d="M287.9 228.8l.5.477-.5-.477z"/> - <path fill="#7b7b52" d="M291.41 228.8l.5.477-.5-.477z"/> - <path fill="#184a8c" d="M292.41 228.8l.5.477-.5-.477z"/> - <path fill="#efbd08" d="M292.92 228.8l.5.477-.5-.477z"/> - <path fill="#bd9c29" d="M293.42 228.8l.5.477-.5-.477z"/> - <path fill="#7b7b52" d="M293.92 228.8l-.5.954.5-.954z"/> - <path fill="#5a6b63" d="M295.92 228.8l.5.477-.5-.477z"/> - <path fill="#ffce08" d="M296.42 228.8l.5.477-.5-.477z"/> - <path fill="#efbd08" d="M297.93 228.8l.5.477-.5-.477z"/> - <path fill="#002984" d="M298.93 228.8l.5.477-.5-.477z"/> - <path fill="#8c8c8c" d="M299.43 228.8l.5.477-.5-.477z"/> - <path fill="#525a6b" d="M229.75 229.28l.5.477-.5-.477z"/> - <path fill="#bd9c29" d="M235.76 229.28l.5.477-.5-.477z"/> - <path fill="#deb518" d="M236.26 229.28l.5.477-.5-.477z"/> - <path fill="#184a8c" d="M237.27 229.28l.5.477-.5-.477z"/> - <path fill="#cead21" d="M239.27 229.28l.5.477-.5-.477z"/> - <path fill="#bd9c29" d="M239.77 229.28l-.5.954.5-.954z"/> - <path fill="#ad9431" d="M241.28 229.28l.5.477-.5-.477z"/> - <path fill="#bd9c29" d="M242.78 229.28l.5.477-.5-.477z"/> - <path fill="#4a636b" d="M245.29 229.28l.5.477-.5-.477z"/> - <path fill="#5a6b63" d="M245.79 229.28l.5.477-.5-.477z"/> - <path fill="#184a8c" d="M246.29 229.28l.5.477-.5-.477z"/> - <path fill="#292921" d="M257.82 229.28l.5.477-.5-.477z"/> - <path fill="#cecece" d="M258.32 229.28l.5.477-.5-.477m12.032 0l.5.477-.5-.477z"/> - <path fill="#efefef" d="M270.86 229.28l1.003.954-1.003-.954z"/> - <path fill="#31394a" d="M271.36 229.28l.5.477-.5-.477z"/> - <path fill="#7b7b52" d="M284.39 229.28l.5.477-.5-.477z"/> - <path fill="#9c8c42" d="M284.89 229.28l.5.477-.5-.477z"/> - <path fill="#6b735a" d="M286.4 229.28l.5.477-.5-.477z"/> - <path fill="#ad9431" d="M286.9 229.28l.5.477-.5-.477z"/> - <path fill="#deb518" d="M288.9 229.28l.5.477-.5-.477z"/> - <path fill="#395273" d="M290.41 229.28l.5.477-.5-.477m1.003 0l.5.477-.5-.477z"/> - <path fill="#bd9c29" d="M292.41 229.28l.5.477-.5-.477z"/> - <path fill="#8c8442" d="M293.92 229.28l.5.477-.5-.477z"/> - <path fill="#cead21" d="M294.42 229.28l.5.477-.5-.477z"/> - <path fill="#003994" d="M296.93 229.28l-.5 1.908h.5v-1.908z"/> - <path fill="#7b7b52" d="M297.43 229.28l.5.477-.5-.477z"/> - <path fill="#5a6b63" d="M298.43 229.28l.5.477-.5-.477z"/> - <path fill="#425a84" d="M299.6 229.6l.167.318-.167-.318z"/> - <path fill="#42425a" d="M229.75 229.76l.5.477-.5-.477z"/> - <path fill="#7b7b52" d="M235.76 229.76l.5.477-.5-.477m1.003 0l.5.477-.5-.477z"/> - <path fill="#deb518" d="M237.27 229.76l.5.477-.5-.477z"/> - <path fill="#5a6b63" d="M238.27 229.76l.5.477-.5-.477z"/> - <path fill="#ffce08" d="M239.77 229.76l.5.477-.5-.477z"/> - <path fill="#00216b" d="M256.32 229.76l.5.477-.5-.477z"/> - <path fill="#21315a" d="M256.82 229.76l.5.477-.5-.477z"/> - <path fill="#63636b" d="M257.32 229.76l.5.477-.5-.477z"/> - <path fill="#efefef" d="M257.82 229.76l.5.477-.5-.477z"/> - <path fill="#8c8c8c" d="M271.86 229.76l.5.477-.5-.477z"/> - <path fill="#21315a" d="M272.36 229.76l.5.477-.5-.477z"/> - <path fill="#00216b" d="M272.86 229.76l.5.477-.5-.477z"/> - <path fill="#395273" d="M287.4 229.76l.5.477-.5-.477z"/> - <path fill="#8c8442" d="M288.9 229.76l.5.477-.5-.477z"/> - <path fill="#6b735a" d="M289.41 229.76l.5.477-.5-.477z"/> - <path fill="#7b7b52" d="M290.41 229.76l.5.477-.5-.477z"/> - <path fill="#6b735a" d="M291.91 229.76l.5.477-.5-.477z"/> - <path fill="#bd9c29" d="M294.42 229.76l-.5 1.43.5-1.43z"/> - <path fill="#5a6b63" d="M295.42 229.76l.5.477-.5-.477z"/> - <path fill="#ffce08" d="M295.92 229.76l.5.477-.5-.477z"/> - <path fill="#5a6b63" d="M296.42 229.76l.5.477-.5-.477z"/> - <path fill="#395273" d="M297.43 229.76l.5.477-.5-.477z"/> - <path fill="#6b735a" d="M298.43 229.76l.5.477-.5-.477z"/> - <path fill="#7b7373" d="M229.75 230.24l.5.477-.5-.477z"/> - <path fill="#395273" d="M235.76 230.24l.5.477-.5-.477z"/> - <path fill="#9c8c42" d="M237.77 230.24l.5.477-.5-.477z"/> - <path fill="#184a8c" d="M239.27 230.24l.5.477-.5-.477z"/> - <path fill="#002984" d="M245.29 230.24l.5.477-.5-.477z"/> - <path fill="#00216b" d="M245.79 230.24l.5.477-.5-.477z"/> - <path fill="#00184a" d="M246.29 230.24l.5.477-.5-.477z"/> - <path fill="#10295a" d="M246.79 230.24l.5.477-.5-.477z"/> - <path fill="#525a6b" d="M253.31 230.24l.5.477-.5-.477z"/> - <path fill="#848c9c" d="M253.81 230.24l.5.477-.5-.477z"/> - <path fill="#cecece" d="M256.32 230.24l.5.477-.5-.477z"/> - <path fill="#dedede" d="M272.86 230.24l.5.477-.5-.477z"/> - <path fill="#848c9c" d="M275.37 230.24l.5.477-.5-.477z"/> - <path fill="#636b7b" d="M275.87 230.24l.5.477-.5-.477z"/> - <path fill="#10295a" d="M282.39 230.24l.5.477-.5-.477z"/> - <path fill="#00184a" d="M282.89 230.24l.5.477-.5-.477z"/> - <path fill="#00216b" d="M283.39 230.24l.5.477-.5-.477z"/> - <path fill="#002984" d="M283.89 230.24l.5.477-.5-.477z"/> - <path fill="#4a636b" d="M290.41 230.24l.5.477-.5-.477z"/> - <path fill="#6b735a" d="M290.91 230.24l.5.477-.5-.477z"/> - <path fill="#efbd08" d="M291.91 230.24l.5.477-.5-.477z"/> - <path fill="#cead21" d="M292.41 230.24l.5.477-.5-.477z"/> - <path fill="#4a636b" d="M293.42 230.24l.5.477-.5-.477z"/> - <path fill="#deb518" d="M293.92 230.24l.5.477-.5-.477m1.838.16l.334.158-.334-.16z"/> - <path fill="#8c8442" d="M297.43 230.24l.5.477-.5-.477z"/> - <path fill="#184a8c" d="M298.43 230.24l.5.477-.5-.477z"/> - <path fill="#525a6b" d="M299.43 230.24l.5.477-.5-.477z"/> - <path fill="#cecece" d="M229.75 230.71l.5.477-.5-.477z"/> - <path fill="#00216b" d="M230.25 230.71l.5.477-.5-.477z"/> - <path fill="#7b7b52" d="M236.26 230.71l.5.477-.5-.477z"/> - <path fill="#4a636b" d="M236.77 230.71l.5.477-.5-.477z"/> - <path fill="#002984" d="M240.28 231.67l1.504-.477-1.504.477z"/> - <path fill="#00215a" d="M241.78 230.71l.5.477-.5-.477z"/> - <path fill="#00184a" d="M242.28 230.71l.5.477-.5-.477z"/> - <path fill="#314a7b" d="M242.78 230.71l.5.477-.5-.477z"/> - <path fill="#42425a" d="M243.28 230.71l.5.477-.5-.477z"/> - <path fill="#636b7b" d="M243.78 230.71l.5.477-.5-.477z"/> - <path fill="#8c8c8c" d="M244.29 230.71l.5.477-.5-.477z"/> - <path fill="#9c9494" d="M244.79 230.71l.5.477-.5-.477z"/> - <path fill="#bdbdbd" d="M245.29 230.71l.5.477-.5-.477z"/> - <path fill="#cecece" d="M245.79 230.71l.5.477-.5-.477z"/> - <path fill="#dedede" d="M283.39 230.71l.5.477-.5-.477z"/> - <path fill="#bdbdbd" d="M283.89 230.71l.5.477-.5-.477z"/> - <path fill="#9c9494" d="M284.39 230.71l.5.477-.5-.477z"/> - <path fill="#8c8c8c" d="M284.89 230.71l.5.477-.5-.477z"/> - <path fill="#7b7373" d="M285.4 230.71l.5.477-.5-.477z"/> - <path fill="#42425a" d="M285.9 230.71l.5.477-.5-.477z"/> - <path fill="#314a7b" d="M286.4 230.71l.5.477-.5-.477z"/> - <path fill="#00184a" d="M286.9 230.71l.5.477-.5-.477z"/> - <path fill="#00215a" d="M287.4 230.71l.5.477-.5-.477z"/> - <path fill="#002984" d="M288.24 230.87l.334.16-.334-.16z"/> - <path fill="#184a8c" d="M292.41 230.71l.5.477-.5-.477z"/> - <path fill="#5a6b63" d="M294.92 230.71l.5.477-.5-.477zm1 0l.5.477-.5-.477z"/> - <path fill="#295284" d="M296.93 230.71l.5.477-.5-.477z"/> - <path fill="#bd9c29" d="M297.93 230.71l.5.477-.5-.477z"/> - <path fill="#9c9494" d="M299.43 230.71l.5.477-.5-.477z"/> - <path fill="#dedede" d="M229.75 231.19l.5.477-.5-.477z"/> - <path fill="#001039" d="M230.25 231.19l.5.477-.5-.477z"/> - <path fill="#63636b" d="M240.78 231.19l.5.477-.5-.477z"/> - <path fill="#bdbdbd" d="M241.28 231.19l.5.477-.5-.477z"/> - <path fill="#efefef" d="M241.78 231.19l-.5.954.5-.954z"/> - <path fill="#bdbdbd" d="M287.9 231.19l.5.477-.5-.477z"/> - <path fill="#8c8c8c" d="M288.4 231.19l.5.477-.5-.477z"/> - <path fill="#00216b" d="M288.9 231.19l.5.477-.5-.477z"/> - <path fill="#395273" d="M293.92 231.19l.5.477-.5-.477z"/> - <path fill="#6b735a" d="M294.42 231.19l.5.477-.5-.477z"/> - <path fill="#deb518" d="M294.92 231.19l.5.477-.5-.477z"/> - <path fill="#bd9c29" d="M295.92 231.19l.5.477-.5-.477z"/> - <path fill="#7b7b52" d="M296.42 231.19l.5.477-.5-.477z"/> - <path fill="#00215a" d="M298.93 231.19l.5.477-.5-.477z"/> - <path fill="#bdbdbd" d="M299.43 231.19l.5.477-.5-.477z"/> - <path fill="#dedede" d="M228.74 231.67l.5.477-.5-.477z"/> - <path fill="#63636b" d="M229.25 231.67l.5.477-.5-.477z"/> - <path fill="#001039" d="M229.91 231.98l.167.318-.167-.318z"/> - <path fill="#00216b" d="M238.77 231.67l-.5.954.5-.954z"/> - <path fill="#00184a" d="M239.27 231.67l.5.477-.5-.477z"/> - <path fill="#00216b" d="M239.77 231.67l.5.477-.5-.477z"/> - <path fill="#10214a" d="M240.78 231.67l.5.477-.5-.477z"/> - <path fill="#dedede" d="M287.9 231.67l.5.477-.5-.477z"/> - <path fill="#212139" d="M288.4 231.67l.5.477-.5-.477z"/> - <path fill="#00184a" d="M288.9 231.67l.5.477-.5-.477z"/> - <path fill="#002984" d="M289.57 231.98l.167.318-.167-.318z"/> - <path fill="#184a8c" d="M294.92 231.67l.5.477-.5-.477z"/> - <path fill="#9c8c42" d="M295.42 231.67l.5.477-.5-.477z"/> - <path fill="#295284" d="M297.43 231.67l.5.477-.5-.477z"/> - <path fill="#00216b" d="M299.43 231.67l.5.477-.5-.477z"/> - <path fill="#42425a" d="M299.93 231.67l.5.477-.5-.477z"/> - <path fill="#bdbdbd" d="M300.44 231.67l.5.477-.5-.477z"/> - <path fill="#cecece" d="M228.24 232.14l-1.003 1.43 1.003-1.43z"/> - <path fill="#10214a" d="M228.74 232.14l-1.003 1.43 1.003-1.43z"/> - <path fill="#003994" d="M229.25 232.14c-1.44 1.502-3.482 3.17-2.507 5.247-2.66 1.437-3.133 4.547-4.01 7.156l5.514.954 4.01-9.064-5.514.477v-.477l5.014-.477-2.507-3.816z"/> - <path fill="#002984" d="M236.26 232.14l.5.477-.5-.477z"/> - <path fill="#00215a" d="M236.77 232.14l.5.477-.5-.477z"/> - <path fill="#00184a" d="M237.6 232.3l.334.16-.334-.16z"/> - <path fill="#002984" d="M238.77 232.14l.5.477-.5-.477z"/> - <path fill="#63636b" d="M241.28 232.14l.5.477-.5-.477z"/> - <path fill="#8c8c8c" d="M287.9 232.14l.5.477-.5-.477z"/> - <path fill="#002984" d="M288.4 232.14l.5.477-.5-.477z"/> - <path fill="#00216b" d="M291.41 232.14l.5.477-.5-.477z"/> - <path fill="#184a8c" d="M295.92 232.14l.5.477-.5-.477z"/> - <path fill="#395273" d="M296.42 232.14l.5.477-.5-.477z"/> - <path fill="#00215a" d="M300.44 232.14l.5.477-.5-.477z"/> - <path fill="#9c9494" d="M300.94 232.14l1.504 1.43-1.504-1.43z"/> - <path fill="#00216b" d="M229.75 232.62l.5.477-.5-.477z"/> - <path fill="#002984" d="M230.25 232.62l.5.477-.5-.477z"/> - <path fill="#00216b" d="M234.76 232.62l.5.477-.5-.477z"/> - <path fill="#00184a" d="M235.6 232.78l.334.16-.334-.16z"/> - <path fill="#00216b" d="M236.26 232.62l.5.477-.5-.477z"/> - <path fill="#42425a" d="M241.28 232.62l.5.477-.5-.477z"/> - <path fill="#636b7b" d="M287.9 232.62l.5.477-.5-.477z"/> - <path fill="#002984" d="M291.41 232.62l.5.477-.5-.477z"/> - <path fill="#00215a" d="M291.91 232.62l.5.477-.5-.477z"/> - <path fill="#00184a" d="M292.75 232.78l.334.16-.334-.16z"/> - <path fill="#00216b" d="M293.58 232.94l.167.318-.167-.318m7.353-.318l.5.477-.5-.478z"/> - <path fill="#001039" d="M230.25 233.1l.5.477-.5-.477z"/> - <path fill="#00216b" d="M233.42 233.42l.167.318-.167-.318z"/> - <path fill="#00184a" d="M234.09 233.26l.334.16-.334-.16z"/> - <path fill="#00215a" d="M237.77 233.1l.5.477-.5-.477z"/> - <path fill="#002984" d="M240.78 233.1l.5.477-.5-.477z"/> - <path fill="#21315a" d="M241.28 233.1l.5.477-.5-.477z"/> - <path fill="#8c8c8c" d="M287.4 233.1l.5.477-.5-.477z"/> - <path fill="#101810" d="M287.9 233.1l.5.477-.5-.477z"/> - <path fill="#00184a" d="M288.74 233.26l.334.16-.334-.16z"/> - <path fill="#00215a" d="M289.41 233.1l.5.477-.5-.477z"/> - <path fill="#00184a" d="M289.91 233.1l.5.477-.5-.477z"/> - <path fill="#00216b" d="M290.41 233.1l.5.477-.5-.477z"/> - <path fill="#00184a" d="M294.25 233.26l.334.16-.334-.16z"/> - <path fill="#00216b" d="M301.44 233.1l.5.477-.5-.477z"/> - <path fill="#efefef" d="M226.74 233.57l.5.477-.5-.477z"/> - <path fill="#212139" d="M227.24 233.57l.5.477-.5-.477z"/> - <path fill="#00216b" d="M230.25 233.57l.5.477-.5-.477z"/> - <path fill="#002984" d="M230.75 233.57l.5.477-.5-.477z"/> - <path fill="#00184a" d="M232.59 233.73l.334.16-.334-.16z"/> - <path fill="#00216b" d="M236.26 233.57l.5.477-.5-.477z"/> - <path fill="#00184a" d="M236.77 233.57l.5.477-.5-.477z"/> - <path fill="#00216b" d="M237.27 233.57l.5.477-.5-.477z"/> - <path fill="#001039" d="M240.78 233.57l.5.477-.5-.477z"/> - <path fill="#8c8c8c" d="M241.28 233.57l-.5.954.5-.954z"/> - <path fill="#7b7373" d="M287.4 233.57l.5.477-.5-.477z"/> - <path fill="#bdbdbd" d="M287.9 233.57l.5.477-.5-.477z"/> - <path fill="#00215a" d="M288.4 233.57l.5.477-.5-.477z"/> - <path fill="#002984" d="M290.41 233.57l.5.477-.5-.477z"/> - <path fill="#00184a" d="M291.24 233.73l.334.16-.334-.16z"/> - <path fill="#002984" d="M291.91 233.57l.5.477-.5-.477z"/> - <path fill="#00216b" d="M294.92 233.57l.5.477-.5-.477z"/> - <path fill="#00184a" d="M295.42 233.57l.5.477-.5-.477z"/> - <path fill="#002984" d="M295.92 233.57l.5.477-.5-.477z"/> - <path fill="#00184a" d="M301.94 233.57l.5.477-.5-.477z"/> - <path fill="#cecece" d="M302.44 233.57l.5.477-.5-.477z"/> - <path fill="#52525a" d="M226.74 234.05l.5.477-.5-.477z"/> - <path fill="#002984" d="M232.25 234.05l.5.477-.5-.477z"/> - <path fill="#00184a" d="M235.6 234.21l.334.16-.334-.16z"/> - <path fill="#002984" d="M236.26 234.05l.5.477-.5-.477z"/> - <path fill="#10214a" d="M240.28 234.05l.5.477-.5-.477z"/> - <path fill="#ada5a5" d="M288.4 234.05l.5.477-.5-.477z"/> - <path fill="#21315a" d="M288.9 234.05l.5.477-.5-.477z"/> - <path fill="#00216b" d="M291.91 234.05l.5.477-.5-.477z"/> - <path fill="#001039" d="M292.41 234.05l.5.477-.5-.477z"/> - <path fill="#002984" d="M292.92 234.05l.5.477-.5-.477z"/> - <path fill="#31425a" d="M302.44 234.05l.5.477-.5-.477z"/> - <path fill="#efefef" d="M302.94 234.05l.5.477-.5-.477z"/> - <path fill="#ada5a5" d="M226.24 234.53l.5.477-.5-.477z"/> - <path fill="#00216b" d="M226.74 234.53l.5.477-.5-.477m4.01 0l.502.477-.5-.477z"/> - <path fill="#00184a" d="M234.59 234.69l.334.16-.334-.16z"/> - <path fill="#00216b" d="M238.77 234.53l.5.477-.5-.477z"/> - <path fill="#21315a" d="M239.27 234.53l.5.477-.5-.477z"/> - <path fill="#8c8c8c" d="M239.77 234.53l.5.477-.5-.477z"/> - <path fill="#efefef" d="M240.28 234.53l.5.477-.5-.477m48.63 0l.5.477-.5-.477z"/> - <path fill="#8c8c8c" d="M289.41 234.53l.5.477-.5-.477z"/> - <path fill="#314a7b" d="M289.91 234.53l.5.477-.5-.477z"/> - <path fill="#00216b" d="M290.41 234.53l.5.477-.5-.477m2.507 0l-.502.954.502-.954z"/> - <path fill="#001039" d="M293.42 234.53l.5.477-.5-.477z"/> - <path fill="#002984" d="M293.92 234.53l.5.477-.5-.477z"/> - <path fill="#7b7373" d="M302.94 234.53l.5.477-.5-.477z"/> - <path fill="#efefef" d="M225.74 235.01l.5.477-.5-.477z"/> - <path fill="#10214a" d="M226.24 235.01l.5.477-.5-.477z"/> - <path fill="#002984" d="M231.75 235.01l.5.477-.5-.477m1.003 0l.5.477-.5-.477z"/> - <path fill="#00184a" d="M233.59 235.17l.334.16-.334-.16z"/> - <path fill="#002984" d="M236.26 235.01l.5.477-.5-.477z"/> - <path fill="#00216b" d="M236.77 235.01l.5.477-.5-.477z"/> - <path fill="#00184a" d="M237.27 235.01l.5.477-.5-.477z"/> - <path fill="#42425a" d="M237.77 235.01l.5.477-.5-.477z"/> - <path fill="#8c8c8c" d="M238.27 235.01l.5.477-.5-.477z"/> - <path fill="#cecece" d="M238.77 235.01l.5.477-.5-.477z"/> - <path fill="#dedede" d="M290.41 235.01l.5.477-.5-.477z"/> - <path fill="#8c8c8c" d="M290.91 235.01l.5.477-.5-.477z"/> - <path fill="#525a6b" d="M291.41 235.01l.5.477-.5-.477z"/> - <path fill="#10295a" d="M291.91 235.01l.5.477-.5-.477z"/> - <path fill="#002984" d="M292.92 235.01l.5.477-.5-.477z"/> - <path fill="#003994" d="M293.42 235.01l.5.477-.5-.477z"/> - <path fill="#00216b" d="M293.92 235.01l.5.477-.5-.477z"/> - <path fill="#001039" d="M294.42 235.01l.5.477-.5-.477z"/> - <path fill="#00216b" d="M294.92 235.01l.5.477-.5-.477m2.005 0l.502.477-.502-.477m6.016 0l.503.477-.502-.477z"/> - <path fill="#bdbdbd" d="M303.44 235.01l.5.477-.5-.477z"/> - <path fill="#8c8c8c" d="M225.74 235.48l.5.477-.5-.477z"/> - <path fill="#00215a" d="M231.75 235.48l.5.477-.5-.477z"/> - <path fill="#00216b" d="M232.76 235.48l.5.477-.5-.477m1.504 0l.5.477-.5-.477z"/> - <path fill="#21315a" d="M234.76 235.48l.5.477-.5-.477z"/> - <path fill="#525a6b" d="M235.26 235.48l.5.477-.5-.477z"/> - <path fill="#ada5a5" d="M236.26 235.48l.5.477-.5-.477z"/> - <path fill="#dedede" d="M236.77 235.48l.5.477-.5-.477m55.648 0l.5.477-.5-.477z"/> - <path fill="#bdbdbd" d="M292.92 235.48l.5.477-.5-.477z"/> - <path fill="#525a6b" d="M293.92 235.48l.5.477-.5-.477z"/> - <path fill="#21315a" d="M294.42 235.48l.5.477-.5-.477z"/> - <path fill="#002984" d="M296.42 235.48l.5.477-.5-.477z"/> - <path fill="#42425a" d="M303.44 235.48l.5.477-.5-.477z"/> - <path fill="#dedede" d="M225.24 235.96l.5.477-.5-.477z"/> - <path fill="#10295a" d="M225.74 235.96l.5.477-.5-.477z"/> - <path fill="#00215a" d="M229.75 235.96l.5.477-.5-.477z"/> - <path fill="#21315a" d="M233.26 235.96l.5.477-.5-.477z"/> - <path fill="#52525a" d="M233.76 235.96l.5.477-.5-.477z"/> - <path fill="#7b7373" d="M234.26 235.96l.5.477-.5-.477z"/> - <path fill="#9c9494" d="M236.26 235.96l.5.477-.5-.477z"/> - <path fill="#8c8c8c" d="M291.91 235.96l.5.477-.5-.477z"/> - <path fill="#9c9494" d="M292.41 235.96l.5.477-.5-.477z"/> - <path fill="#bdbdbd" d="M294.25 236.12l.334.16-.334-.16z"/> - <path fill="#8c8c8c" d="M294.92 235.96l.5.477-.5-.477z"/> - <path fill="#292921" d="M295.42 235.96l.5.477-.5-.477z"/> - <path fill="#080829" d="M295.92 235.96l.5.477-.5-.477z"/> - <path fill="#00216b" d="M298.43 235.96l.5.477-.5-.477z"/> - <path fill="#ada5a5" d="M303.94 235.96l.5.477-.5-.477z"/> - <path fill="#63636b" d="M225.24 236.44l.5.477-.5-.477z"/> - <path fill="#00215a" d="M226.74 236.44l.5.477-.5-.477z"/> - <path fill="#00184a" d="M227.57 236.6l.334.16-.334-.16z"/> - <path fill="#00216b" d="M228.24 236.44l.5.477-.5-.477z"/> - <path fill="#8c8c8c" d="M232.76 236.44l.5.477-.5-.477z"/> - <path fill="#efefef" d="M233.26 236.44l.5.477-.5-.477z"/> - <path fill="#8c8c8c" d="M296.42 236.44l.5.477-.5-.477z"/> - <path fill="#10295a" d="M296.93 236.44l.5.477-.5-.477z"/> - <path fill="#00216b" d="M299.93 236.44l.5.477-.5-.477z"/> - <path fill="#00184a" d="M300.77 236.6l.334.16-.334-.16z"/> - <path fill="#002984" d="M301.6 236.76l.167.318-.167-.318z"/> - <path fill="#212139" d="M303.94 236.44l.5.477-.5-.477z"/> - <path fill="#dedede" d="M224.73 236.91l.5.477-.5-.477z"/> - <path fill="#10214a" d="M231.75 236.91l.5.477-.5-.477z"/> - <path fill="#cecece" d="M232.25 236.91l-.5.954.5-.954m64.672 0l1.003.954-1.003-.954z"/> - <path fill="#10214a" d="M297.43 236.91l.5.477-.5-.477z"/> - <path fill="#00184a" d="M301.94 236.91l.5.477-.5-.477z"/> - <path fill="#00216b" d="M302.44 236.91l2.005 1.908-2.005-1.908z"/> - <path fill="#002984" d="M303.94 236.91l.5.477-.5-.477z"/> - <path fill="#9c9494" d="M304.45 236.91l.5.477-.5-.477z"/> - <path fill="#8c8c8c" d="M224.73 237.39l.5.477-.5-.477z"/> - <path fill="#001039" d="M225.24 237.39l.5.477-.5-.477z"/> - <path fill="#10295a" d="M231.25 237.39l.5.477-.5-.477z"/> - <path fill="#101831" d="M297.93 237.39l.5.477-.5-.477z"/> - <path fill="#42425a" d="M304.45 237.39l.5.477-.5-.477z"/> - <path fill="#efefef" d="M224.23 237.87l.5.477-.5-.477z"/> - <path fill="#101829" d="M224.73 237.87l.5.477-.5-.477z"/> - <path fill="#002984" d="M230.75 237.87l.5.477-.5-.477z"/> - <path fill="#9c9494" d="M231.25 237.87l.5.477-.5-.477z"/> - <path fill="#cecece" d="M235.76 237.87l.5.477-.5-.477z"/> - <path fill="#bdbdbd" d="M236.26 237.87v.477h57.653l-17.547-.477H236.26m61.663 0l.5.477-.5-.477z"/> - <path fill="#00215a" d="M298.43 237.87l.5.477-.5-.477z"/> - <path fill="#00216b" d="M304.45 237.87l.5.477-.5-.477z"/> - <path fill="#dedede" d="M304.95 237.87l.5.477-.5-.477z"/> - <path fill="#424242" d="M224.23 238.35l.5.477-.5-.477z"/> - <path fill="#002984" d="M224.73 238.35l.5.477-.5-.477z"/> - <path fill="#52525a" d="M230.75 238.35l.5.477-.5-.477z"/> - <path fill="#9c9494" d="M235.76 238.35l2.507 2.385-2.507-2.385z"/> - <path fill="#00216b" d="M236.26 238.35l1.504 1.43-1.504-1.43z"/> - <path fill="#003994" d="M236.77 238.35l4.21 5.247.302 18.604h4.512c0-5.938 1.325-12.01-3.008-16.695l6.016 3.817-2.507-7.156 14.037 13.357-10.528-16.22 10.027 12.88h.503V238.35H236.77z"/> - <path fill="#00184a" d="M260.33 238.35v14.31h.5l-.5-14.31z"/> - <path fill="#631808" d="M268.85 238.35v14.31h.5l-.5-14.31z"/> - <path fill="#de2110" d="M269.35 238.35v13.357l10.528-12.403-10.528 16.22 14.54-13.358-3.01 6.678 6.017-3.816c-3.243 5.94-3.008 10.374-3.008 17.173h4.51l.303-18.603 4.21-5.247H269.35z"/> - <path fill="#b51010" d="M292.92 238.35l.5.477-.5-.477z"/> - <path fill="#63636b" d="M293.42 238.35l-1.003 1.43 1.003-1.43z"/> - <path fill="#8c8c8c" d="M298.43 238.35l.5.477-.5-.477z"/> - <path fill="#002984" d="M298.93 238.35l.5.477-.5-.477z"/> - <path fill="#63636b" d="M304.95 238.35l.5.477-.5-.477z"/> - <path fill="#ada5a5" d="M223.73 238.82l.5.477-.5-.477z"/> - <path fill="#000818" d="M224.23 238.82l.5.477-.5-.477z"/> - <path fill="#00184a" d="M230.25 238.82l.5.477-.5-.477z"/> - <path fill="#efefef" d="M230.75 238.82l.5.477-.5-.477z"/> - <path fill="#ad1810" d="M292.41 238.82l.5.477-.5-.477z"/> - <path fill="#21315a" d="M298.93 238.82l.5.477-.5-.477z"/> - <path fill="#00184a" d="M303.94 238.82l.5.477-.5-.477z"/> - <path fill="#10214a" d="M304.95 238.82l.5.477-.5-.477z"/> - <path fill="#efefef" d="M305.45 238.82l.5.477-.5-.477z"/> - <path fill="#313931" d="M223.73 239.3l.5.477-.5-.477z"/> - <path fill="#00216b" d="M224.23 239.3l.5.477-.5-.477z"/> - <path fill="#63636b" d="M230.25 239.3l.5.477-.5-.477z"/> - <path fill="#002984" d="M249.8 239.3l.5.477-.5-.477z"/> - <path fill="#8c8c8c" d="M298.93 239.3l.5.477-.5-.477z"/> - <path fill="#00184a" d="M304.61 239.62l.167.318-.167-.318z"/> - <path fill="#9c9494" d="M305.45 239.3l.5.477-.5-.477m-82.05.795l.166.318-.167-.318z"/> - <path fill="#292921" d="M223.73 239.78l.5.477-.5-.477z"/> - <path fill="#00216b" d="M229.75 239.78l.5.477-.5-.477z"/> - <path fill="#cecece" d="M230.25 239.78l.5.477-.5-.477z"/> - <path fill="#00215a" d="M237.77 239.78l.5.477-.5-.477z"/> - <path fill="#001039" d="M249.8 239.78l.5.477-.5-.477z"/> - <path fill="#212139" d="M250.3 239.78l1.003.954-1.003-.954z"/> - <path fill="#100808" d="M279.38 239.78l.5.477-.5-.477z"/> - <path fill="#9c9494" d="M291.91 239.78l-3.008 3.34 3.008-3.34z"/> - <path fill="#efefef" d="M298.93 239.78l.5.477-.5-.477z"/> - <path fill="#10295a" d="M299.43 239.78l.5.477-.5-.477z"/> - <path fill="#31425a" d="M305.45 239.78l.5.477-.5-.477z"/> - <path fill="#10295a" d="M223.73 240.25l.5.477-.5-.477z"/> - <path fill="#42425a" d="M229.75 240.25l.5.477-.5-.477z"/> - <path fill="#001039" d="M238.27 240.25l.5.477-.5-.477z"/> - <path fill="#002984" d="M249.8 240.25l.5.477-.5-.477z"/> - <path fill="#6b5a00" d="M250.3 240.25l.5.477-.5-.477z"/> - <path fill="#5a1008" d="M278.38 240.25l.5.477-.5-.477z"/> - <path fill="#7b5a00" d="M278.88 240.25l.5.477-.5-.477z"/> - <path fill="#63636b" d="M299.43 240.25l.5.477-.5-.477z"/> - <path fill="#00216b" d="M305.45 240.25l.5.477-.5-.477z"/> - <path fill="#bdbdbd" d="M305.95 240.25l.5.477-.5-.477z"/> - <path fill="#8c8c8c" d="M223.23 240.73l.5.477-.5-.477z"/> - <path fill="#002984" d="M229.25 240.73l.5.477-.5-.477z"/> - <path fill="#9c9494" d="M229.75 240.73l.5.477-.5-.477z"/> - <path fill="#cecece" d="M238.27 240.73l2.507 2.385-2.507-2.385z"/> - <path fill="#10214a" d="M238.77 240.73l.5.477-.5-.477z"/> - <path fill="#392121" d="M250.3 240.73l.5.477-.5-.477z"/> - <path fill="#cea508" d="M250.97 241.05l.167.318-.167-.318z"/> - <path fill="#293129" d="M251.3 240.73l1.003.954-1.003-.954z"/> - <path fill="#631808" d="M277.88 240.73l.5.477-.5-.477z"/> - <path fill="#634a00" d="M278.88 240.73l.5.477-.5-.477z"/> - <path fill="#ce2110" d="M279.38 240.73l.5.477-.5-.477z"/> - <path fill="#dedede" d="M299.43 240.73l.5.477-.5-.477z"/> - <path fill="#00216b" d="M299.93 240.73l.5.477-.5-.477z"/> - <path fill="#636b7b" d="M305.95 240.73l.5.477-.5-.477z"/> - <path fill="#42425a" d="M223.23 241.21l.5.477-.5-.477z"/> - <path fill="#21315a" d="M229.25 241.21l.5.477-.5-.477z"/> - <path fill="#10214a" d="M239.27 241.21l.5.477-.5-.477z"/> - <path fill="#00216b" d="M250.3 241.21l.5.477-.5-.477z"/> - <path fill="#efbd08" d="M251.3 241.21l.5.477-.5-.477z"/> - <path fill="#5a2908" d="M277.37 241.21l.5.477-.5-.477z"/> - <path fill="#efbd08" d="M278.38 241.21l.5.477-.5-.477z"/> - <path fill="#631808" d="M278.88 241.21l.5.477-.5-.477z"/> - <path fill="#42425a" d="M299.93 241.21l.5.477-.5-.477z"/> - <path fill="#10214a" d="M305.95 241.21l.5.477-.5-.477z"/> - <path fill="#efefef" d="M222.73 241.68l.5.477-.5-.477z"/> - <path fill="#00215a" d="M223.23 241.68l.5.477-.5-.477z"/> - <path fill="#8c8c8c" d="M229.25 241.68l.5.477-.5-.477z"/> - <path fill="#10214a" d="M239.77 241.68l.5.477-.5-.477z"/> - <path fill="#634a00" d="M250.8 241.68l.5.477-.5-.477z"/> - <path fill="#deb508" d="M251.3 241.68l.5.477-.5-.477z"/> - <path fill="#292100" d="M251.81 241.68l.5.477-.5-.477z"/> - <path fill="#211800" d="M277.37 241.68l.5.477-.5-.477z"/> - <path fill="#bd2110" d="M278.88 241.68l.5.477-.5-.477z"/> - <path fill="#9c9494" d="M299.93 241.68l.5.477-.5-.477z"/> - <path fill="#002984" d="M300.44 241.68l.5.477-.5-.477z"/> - <path fill="#00216b" d="M305.95 241.68l.5.477-.5-.477z"/> - <path fill="#bdbdbd" d="M306.45 241.68l.5.477-.5-.477z"/> - <path fill="#9c9494" d="M222.73 242.16l.5.477-.5-.477z"/> - <path fill="#002984" d="M223.23 242.16l.5.477-.5-.477z"/> - <path fill="#00216b" d="M228.74 242.16l.5.477-.5-.477z"/> - <path fill="#cecece" d="M229.25 242.16l.5.477-.5-.477z"/> - <path fill="#10214a" d="M240.28 242.16l.5.477-.5-.477z"/> - <path fill="#00184a" d="M246.46 242.48l.167.318-.167-.318z"/> - <path fill="#10295a" d="M250.8 242.16l.5.477-.5-.477z"/> - <path fill="#000818" d="M251.3 242.16l.5.477-.5-.477z"/> - <path fill="#392100" d="M251.81 242.16l1.003.954-1.003-.954z"/> - <path fill="#00184a" d="M252.31 242.16l.5.477-.5-.477z"/> - <path fill="#7b1008" d="M276.87 242.16l.5.477-.5-.477z"/> - <path fill="#392100" d="M277.37 242.16l.5.477-.5-.477z"/> - <path fill="#210800" d="M277.88 242.16l.5.477-.5-.477z"/> - <path fill="#5a1008" d="M278.38 242.16l.5.477-.5-.477z"/> - <path fill="#631808" d="M282.89 242.16l.5.477-.5-.477z"/> - <path fill="#ce2110" d="M283.39 242.16l.5.477-.5-.477z"/> - <path fill="#7b1008" d="M288.9 242.16l.5.477-.5-.477z"/> - <path fill="#00184a" d="M300.44 242.16l.5.477-.5-.477z"/> - <path fill="#7b7373" d="M306.45 242.16l.5.477-.5-.477z"/> - <path fill="#636b7b" d="M222.73 242.64l.5.477-.5-.477z"/> - <path fill="#21315a" d="M228.74 242.64l.5.477-.5-.477z"/> - <path fill="#10295a" d="M240.78 242.64l.5.477-.5-.477z"/> - <path fill="#102110" d="M246.79 242.64l.5.477-.5-.477z"/> - <path fill="#002984" d="M247.29 242.64l.5.477-.5-.477z"/> - <path fill="#101810" d="M251.81 242.64l.5.477-.5-.477z"/> - <path fill="#00216b" d="M252.81 242.64l.5.477-.5-.477z"/> - <path fill="#b51010" d="M276.37 242.64l.5.477-.5-.477z"/> - <path fill="#211800" d="M277.21 242.8l.334.16-.334-.16z"/> - <path fill="#b51010" d="M277.88 242.64l.5.477-.5-.477z"/> - <path fill="#bd2110" d="M281.89 242.64l.5.477-.5-.477z"/> - <path fill="#5a2908" d="M282.39 242.64l.5.477-.5-.477z"/> - <path fill="#310000" d="M282.89 242.64l.5.477-.5-.477z"/> - <path fill="#7b1008" d="M288.4 242.64l.5.477-.5-.477z"/> - <path fill="#42425a" d="M300.44 242.64l.5.477-.5-.477z"/> - <path fill="#314a7b" d="M306.45 242.64l.5.477-.5-.477z"/> - <path fill="#10214a" d="M222.73 243.12l.5.477-.5-.477z"/> - <path fill="#636b7b" d="M228.74 243.12l.5.477-.5-.477z"/> - <path fill="#42425a" d="M240.78 243.12v19.558h.5c0-5.58 1.76-14.43-.5-19.558z"/> - <path fill="#634a00" d="M246.79 243.12l.5.477-.5-.477z"/> - <path fill="#8c7300" d="M247.29 243.12l.5.477-.5-.477z"/> - <path fill="#10214a" d="M247.8 243.12l.5.477-.5-.477z"/> - <path fill="#002984" d="M251.81 243.12l.5.477-.5-.477z"/> - <path fill="#211800" d="M252.31 243.12l.5.477-.5-.477z"/> - <path fill="#181000" d="M252.81 243.12l.5.477-.5-.477z"/> - <path fill="#ce2110" d="M275.87 243.12l.5.477-.5-.477z"/> - <path fill="#311000" d="M276.37 243.12l.5.477-.5-.477z"/> - <path fill="#392100" d="M276.87 243.12l-1.003 1.43 1.003-1.43z"/> - <path fill="#7b1008" d="M277.37 243.12l.5.477-.5-.477m4.01 0l.502.477-.5-.477z"/> - <path fill="#7b5a00" d="M281.89 243.12l.5.477-.5-.477z"/> - <path fill="#6b5a00" d="M282.39 243.12l.5.477-.5-.477z"/> - <path fill="#b51010" d="M282.89 243.12l.5.477-.5-.477z"/> - <path fill="#631808" d="M288.4 243.12v19.08h.5c0-5.453 1.71-14.066-.5-19.08z"/> - <path fill="#8c8c8c" d="M300.44 243.12l.5.477-.5-.477z"/> - <path fill="#00216b" d="M306.45 243.12l.5.477-.5-.477z"/> - <path fill="#dedede" d="M306.95 243.12l.5.477-.5-.477z"/> - <path fill="#bdbdbd" d="M222.23 243.59l.5.477-.5-.477z"/> - <path fill="#00216b" d="M222.73 243.59l.5.477-.5-.477z"/> - <path fill="#002984" d="M228.24 243.59l.5.477-.5-.477z"/> - <path fill="#9c9494" d="M228.74 243.59l.5.477-.5-.477z"/> - <path fill="#00215a" d="M246.79 243.59l.5.477-.5-.477z"/> - <path fill="#bd9408" d="M247.29 243.59l.5.477-.5-.477z"/> - <path fill="#cea508" d="M247.8 243.59l.5.477-.5-.477z"/> - <path fill="#293129" d="M248.3 243.59l.5.477-.5-.477z"/> - <path fill="#002984" d="M248.8 243.59l.5.477-.5-.477z"/> - <path fill="#00184a" d="M252.31 243.59l.5.477-.5-.477z"/> - <path fill="#392100" d="M252.81 243.59l1.003.954-1.003-.954z"/> - <path fill="#101829" d="M253.31 243.59l.5.477-.5-.477z"/> - <path fill="#5a1008" d="M275.87 243.59l.5.477-.5-.477z"/> - <path fill="#420000" d="M276.87 243.59l.5.477-.5-.477z"/> - <path fill="#ce2110" d="M280.38 243.59l.5.477-.5-.477z"/> - <path fill="#5a2908" d="M280.88 243.59l.5.477-.5-.477z"/> - <path fill="#bd9408" d="M281.38 243.59l.5.477-.5-.477z"/> - <path fill="#efbd08" d="M281.89 243.59l.5.477-.5-.477z"/> - <path fill="#631808" d="M282.39 243.59l.5.477-.5-.477z"/> - <path fill="#cecece" d="M300.44 243.59l.5.477-.5-.477z"/> - <path fill="#00216b" d="M300.94 243.59l.5.477-.5-.477z"/> - <path fill="#8c8c8c" d="M306.95 243.59l.5.477-.5-.477m-84.725.477l.5.477-.5-.477z"/> - <path fill="#00215a" d="M228.24 244.07l.5.477-.5-.477z"/> - <path fill="#dedede" d="M228.74 244.07l.5.477-.5-.477z"/> - <path fill="#313918" d="M247.29 244.07l.5.477-.5-.477z"/> - <path fill="#ffce08" d="M247.8 244.07l.5.477-.5-.477z"/> - <path fill="#ad8c08" d="M248.3 244.07l.5.477-.5-.477z"/> - <path fill="#00215a" d="M248.8 244.07l.5.477-.5-.477z"/> - <path fill="#101829" d="M252.81 244.07l.5.477-.5-.477z"/> - <path fill="#00184a" d="M253.81 244.07l.5.477-.5-.477z"/> - <path fill="#941808" d="M275.37 244.07l.5.477-.5-.477z"/> - <path fill="#ce2110" d="M276.87 244.07l.5.477-.5-.477z"/> - <path fill="#ad1810" d="M280.38 244.07l.5.477-.5-.477z"/> - <path fill="#7b5a00" d="M280.88 244.07l.5.477-.5-.477z"/> - <path fill="#ffce08" d="M281.38 244.07l.5.477-.5-.477z"/> - <path fill="#634a00" d="M281.89 244.07l-.5.954.5-.954z"/> - <path fill="#ce2110" d="M282.39 244.07l.5.477-.5-.477z"/> - <path fill="#10214a" d="M300.94 244.07l.5.477-.5-.477z"/> - <path fill="#00216b" d="M301.94 244.07l.5.477-.5-.477z"/> - <path fill="#525a6b" d="M306.95 244.07l.5.477-.5-.477z"/> - <path fill="#bdbdbd" d="M221.73 244.55l.5.477-.5-.477z"/> - <path fill="#dedede" d="M222.23 244.55l.5.477-.5-.477z"/> - <path fill="#9c9494" d="M222.73 244.55l.5.477-.5-.477z"/> - <path fill="#7b7373" d="M223.23 244.55l.5.477-.5-.477z"/> - <path fill="#42425a" d="M223.73 244.55l.5.477-.5-.477z"/> - <path fill="#00184a" d="M224.23 244.55l.5.477-.5-.477z"/> - <path fill="#002984" d="M224.73 244.55l.5.477-.5-.477z"/> - <path fill="#314a7b" d="M228.24 244.55l.5.477-.5-.477z"/> - <path fill="#002984" d="M247.29 244.55l.5.477-.5-.477z"/> - <path fill="#423100" d="M247.8 244.55l.5.477-.5-.477z"/> - <path fill="#211800" d="M248.3 244.55l.5.477-.5-.477z"/> - <path fill="#181000" d="M248.8 244.55l.5.477-.5-.477z"/> - <path fill="#002984" d="M249.3 244.55l.5.477-.5-.477z"/> - <path fill="#181000" d="M253.31 244.55l.5.477-.5-.477z"/> - <path fill="#211800" d="M253.81 244.55l.5.477-.5-.477z"/> - <path fill="#002984" d="M254.31 244.55l.5.477-.5-.477z"/> - <path fill="#bd2110" d="M274.87 244.55l.5.477-.5-.477z"/> - <path fill="#ad1810" d="M276.37 244.55l.5.477-.5-.477z"/> - <path fill="#ce2110" d="M279.88 244.55l-.5.954.5-.954z"/> - <path fill="#211800" d="M280.88 244.55l.5.477-.5-.477z"/> - <path fill="#631808" d="M281.89 244.55l.5.477-.5-.477z"/> - <path fill="#636b7b" d="M300.94 244.55l.5.477-.5-.477z"/> - <path fill="#000818" d="M301.94 244.55l.5.477-.5-.477z"/> - <path fill="#002984" d="M304.45 244.55l.5.477-.5-.477z"/> - <path fill="#00184a" d="M304.95 244.55l.5.477-.5-.477z"/> - <path fill="#314a7b" d="M305.45 244.55l.5.477-.5-.477z"/> - <path fill="#636b7b" d="M305.95 244.55l.5.477-.5-.477z"/> - <path fill="#63636b" d="M306.45 244.55l.5.477-.5-.477z"/> - <path fill="#cecece" d="M306.95 244.55l.5.477-.5-.477z"/> - <path fill="#bdbdbd" d="M222.73 245.02l.5.477-.5-.477z"/> - <path fill="#dedede" d="M223.23 245.02l.5.477-.5-.477z"/> - <path fill="#bdbdbd" d="M223.73 245.02l.5.477-.5-.477m1.003 0l.5.477-.5-.477z"/> - <path fill="#8c8c8c" d="M225.24 245.02l.5.477-.5-.477z"/> - <path fill="#314a7b" d="M225.74 245.02l.5.477-.5-.477z"/> - <path fill="#00216b" d="M226.24 245.02l.5.477-.5-.477z"/> - <path fill="#7b7373" d="M228.24 245.02l.5.477-.5-.477z"/> - <path fill="#cecece" d="M229.25 245.02l.5.477-.5-.477z"/> - <path fill="#efefef" d="M229.75 245.02l.5.477-.5-.477z"/> - <path fill="#001039" d="M248.3 245.02l1.504 1.43-1.504-1.43z"/> - <path fill="#392100" d="M248.8 245.02l3.51 3.34-3.51-3.34z"/> - <path fill="#001010" d="M249.3 245.02l.5.477-.5-.477z"/> - <path fill="#00216b" d="M253.31 245.02l.5.477-.5-.477z"/> - <path fill="#392100" d="M253.81 245.02l1.504 1.43-1.504-1.43z"/> - <path fill="#101810" d="M254.31 245.02l.5.477-.5-.477z"/> - <path fill="#310000" d="M274.87 245.02l1.003.954-1.003-.954z"/> - <path fill="#392100" d="M275.37 245.02l.5.477-.5-.477z"/> - <path fill="#631808" d="M275.87 245.02l.5.477-.5-.477z"/> - <path fill="#420000" d="M280.88 245.02l.5.477-.5-.477z"/> - <path fill="#ce2110" d="M281.38 245.02l.5.477-.5-.477m5.013 0l.502.477-.502-.477z"/> - <path fill="#9c9494" d="M300.94 245.02l.5.477-.5-.477z"/> - <path fill="#001000" d="M301.94 245.02l.5.477-.5-.477z"/> - <path fill="#00216b" d="M302.94 245.02l.5.477-.5-.477z"/> - <path fill="#21315a" d="M303.44 245.02l.5.477-.5-.477z"/> - <path fill="#7b7373" d="M303.94 245.02l.5.477-.5-.477z"/> - <path fill="#bdbdbd" d="M305.78 245.18l.334.16-.334-.16z"/> - <path fill="#cecece" d="M221.22 245.5l.5.477-.5-.477z"/> - <path fill="#ada5a5" d="M221.73 245.5l.5.477-.5-.477z"/> - <path fill="#cecece" d="M223.23 245.5l1.003.954-1.003-.954z"/> - <path fill="#ada5a5" d="M223.73 245.5l.5.477-.5-.477z"/> - <path fill="#8c8c8c" d="M224.23 245.5l1.504 1.908-1.504-1.908z"/> - <path fill="#9c9494" d="M224.73 245.5l.5.477-.5-.477z"/> - <path fill="#efefef" d="M225.57 245.66l.334.16-.334-.16z"/> - <path fill="#dedede" d="M226.24 245.5l-.5.954.5-.954z"/> - <path fill="#8c8c8c" d="M226.74 245.5l1.504 2.385-1.504-2.385z"/> - <path fill="#314a7b" d="M227.24 245.5l.5.477-.5-.477z"/> - <path fill="#00184a" d="M227.74 245.5l.5.477-.5-.477z"/> - <path fill="#ada5a5" d="M228.24 245.5l.5.477-.5-.477z"/> - <path fill="#6b735a" d="M229.25 245.5l.5.477-.5-.477z"/> - <path fill="#63636b" d="M229.75 245.5l.5.477-.5-.477z"/> - <path fill="#002984" d="M286.09 245.17l.5.477-.5-.477z"/> - <path fill="#000818" d="M243.28 245.5l.5.477-.5-.477z"/> - <path fill="#00216b" d="M243.78 245.5l.5.477-.5-.477z"/> - <path fill="#001010" d="M249.8 245.5l.5.477-.5-.477z"/> - <path fill="#001039" d="M253.81 245.5l.5.477-.5-.477m1.003 0l.5.477-.5-.477z"/> - <path fill="#631808" d="M274.37 245.5l.5.477-.5-.477z"/> - <path fill="#392100" d="M274.87 245.5l.5.477-.5-.477z"/> - <path fill="#5a1008" d="M279.38 245.5l-1.003 1.43 1.003-1.43z"/> - <path fill="#392100" d="M279.88 245.5l-1.504 1.908 1.504-1.908z"/> - <path fill="#ce2110" d="M280.88 245.5l.5.477-.5-.477z"/> - <path fill="#ad1810" d="M285.4 245.5l.5.477-.5-.477z"/> - <path fill="#310000" d="M285.9 245.5l.5.477-.5-.477z"/> - <path fill="#941808" d="M286.4 245.5l.5.477-.5-.477z"/> - <path fill="#8c8c8c" d="M295.09 245.82l.167.318-.167-.318z"/> - <path fill="#dedede" d="M297.43 245.5l.5.477-.5-.477z"/> - <path fill="#7b7373" d="M297.93 245.5l.5.477-.5-.477z"/> - <path fill="#dedede" d="M300.94 245.5l.5.477-.5-.477z"/> - <path fill="#080829" d="M301.44 245.5l.5.477-.5-.477z"/> - <path fill="#184a00" d="M301.94 245.5l.5.477-.5-.477z"/> - <path fill="#424242" d="M302.44 245.5l.5.477-.5-.477z"/> - <path fill="#9c9494" d="M302.94 245.5l1.003.954-1.003-.954z"/> - <path fill="#cecece" d="M303.44 245.5l.5.477-.5-.477z"/> - <path fill="#424242" d="M304.95 245.5l.5.477-.5-.477z"/> - <path fill="#cecece" d="M305.45 245.5l.5.477-.5-.477z"/> - <path fill="#9c9494" d="M221.22 245.98l.5.477-.5-.477z"/> - <path fill="#dedede" d="M221.73 245.98l.5.477-.5-.477z"/> - <path fill="#9c9494" d="M223.23 245.98l.5.477-.5-.477m3.51 0l.5.477-.5-.477z"/> - <path fill="#dedede" d="M227.57 246.14l.334.16-.334-.16z"/> - <path fill="#cecece" d="M228.74 245.98l.5.477-.5-.477z"/> - <path fill="#294200" d="M229.25 245.98l.5.477-.5-.477z"/> - <path fill="#295200" d="M229.75 245.98l.5.477-.5-.477z"/> - <path fill="#bdbdbd" d="M230.25 245.98l.5.477-.5-.477z"/> - <path fill="#00184a" d="M243.28 245.98l.5.477-.5-.477z"/> - <path fill="#8c7300" d="M243.78 245.98l.5.477-.5-.477z"/> - <path fill="#392121" d="M244.29 245.98l.5.477-.5-.477z"/> - <path fill="#002984" d="M244.79 245.98l.5.477-.5-.477z"/> - <path fill="#00184a" d="M248.8 245.98v3.34h.5l-.5-3.34z"/> - <path fill="#001010" d="M250.3 245.98l.5.477-.5-.477m4.01 0l.502.477-.5-.477z"/> - <path fill="#00215a" d="M255.32 245.98l.5.477-.5-.477z"/> - <path fill="#ad1810" d="M273.86 245.98l.5.477-.5-.477z"/> - <path fill="#211800" d="M273.86 246.93l1.504-.477-1.504.477z"/> - <path fill="#bd2110" d="M275.37 245.98l.5.477-.5-.477z"/> - <path fill="#001010" d="M279.88 245.98l-.5.954.5-.954z"/> - <path fill="#6b1821" d="M280.38 245.98l.5.477-.5-.477z"/> - <path fill="#ad1810" d="M284.39 245.98l.5.477-.5-.477z"/> - <path fill="#5a2908" d="M284.89 245.98l1.003.954-1.003-.954z"/> - <path fill="#8c7300" d="M285.4 245.98l.5.477-.5-.477z"/> - <path fill="#5a1008" d="M285.9 245.98l.5.477-.5-.477z"/> - <path fill="#ada5a5" d="M295.42 245.98l-.5.954.5-.954z"/> - <path fill="#101810" d="M297.93 245.98l.5.477-.5-.477z"/> - <path fill="#efefef" d="M298.43 245.98l.5.477-.5-.477m2.34.16l.334.158-.334-.16z"/> - <path d="M301.44 245.98l.5.477-.5-.477z"/> - <path fill="#297b00" d="M301.94 245.98l.5.477-.5-.477z"/> - <path fill="#313931" d="M302.44 245.98l.5.477-.5-.477z"/> - <path fill="#cecece" d="M302.94 245.98l.5.477-.5-.477z"/> - <path fill="#52525a" d="M304.95 245.98l.5.477-.5-.477z"/> - <path fill="#9c9494" d="M305.45 245.98l.5.477-.5-.477z"/> - <path fill="#7b7373" d="M221.22 246.45l.5.477-.5-.477z"/> - <path fill="#bdbdbd" d="M222.06 246.61l.334.16-.334-.16m2.005 0l.334.16-.335-.16z"/> - <path fill="#ada5a5" d="M225.74 246.45l.5.477-.5-.477z"/> - <path fill="#9c9494" d="M226.24 246.45l.5.477-.5-.477z"/> - <path fill="#7b7373" d="M227.24 246.45l.5.477-.5-.477z"/> - <path fill="#efefef" d="M228.24 246.45l.5.477-.5-.477z"/> - <path fill="#314231" d="M228.74 246.45l.5.477-.5-.477z"/> - <path fill="#397b00" d="M229.25 246.45l.5.477-.5-.477z"/> - <path fill="#428c00" d="M229.75 246.45l-1.003 3.816h-.5l1.002-3.34h-.503l-.5 3.817 2.004-.954-2.505 3.815 2.005-1.43-2.507 1.907-.5 2.386h.5l5.014-5.725-1.504.477v-.477l1.504-.477v-.477h-2.006l-.5-3.34z"/> - <path fill="#5a6b52" d="M230.25 246.45l.5.477-.5-.477z"/> - <path fill="#102121" d="M243.78 246.45l.5.477-.5-.477z"/> - <path fill="#efbd08" d="M244.29 246.45l.5.477-.5-.477z"/> - <path fill="#ad8c08" d="M244.79 246.45l.5.477-.5-.477z"/> - <path fill="#102121" d="M245.29 246.45l.5.477-.5-.477z"/> - <path fill="#002984" d="M245.79 246.45l.5.477-.5-.477z"/> - <path fill="#003994" d="M249.3 246.45c.048 3.826 2.298 5.608 5.515 7.633-.255-3.214-2.978-5.686-5.515-7.633z"/> - <path fill="#001010" d="M249.8 246.45l.5.477-.5-.477z"/> - <path fill="#001039" d="M250.8 246.45l.5.477-.5-.477z"/> - <path fill="#002984" d="M254.31 246.45l.5.477-.5-.477z"/> - <path fill="#211800" d="M255.15 246.61l.334.16-.334-.16z"/> - <path fill="#002984" d="M255.82 246.45l.5.477-.5-.477z"/> - <path fill="#ce2110" d="M273.36 246.45l.5.477-.5-.477z"/> - <path fill="#392100" d="M274.37 246.45l-1.003 1.43 1.003-1.43z"/> - <path fill="#941808" d="M274.87 246.45l.5.477-.5-.477z"/> - <path fill="#003994" d="M279.88 246.45l-5.013 7.633c2.775-1.652 6.545-4.118 5.013-7.633z"/> - <path fill="#ce2110" d="M283.39 246.45l.5.477-.5-.477z"/> - <path fill="#6b2908" d="M283.89 246.45l.5.477-.5-.477z"/> - <path fill="#9c7b08" d="M284.39 246.45l.5.477-.5-.477z"/> - <path fill="#ffce08" d="M284.89 246.45l-.5.954.5-.954z"/> - <path fill="#ce2110" d="M285.9 246.45l.5.477-.5-.477z"/> - <path fill="#294221" d="M297.93 246.45l1.003.954-1.003-.954z"/> - <path fill="#8c8c8c" d="M298.43 246.45l.5.477-.5-.477z"/> - <path fill="#bdbdbd" d="M300.77 246.61l.334.16-.334-.16z"/> - <path fill="#103910" d="M301.44 246.45l.5.477-.5-.477z"/> - <path fill="#319400" d="M301.94 246.45l.5 10.018h.503l1.504-8.587h-.502l-1.002 5.726h-.502l-.5-7.156z"/> - <path fill="#424242" d="M302.44 246.45l.5.477-.5-.477z"/> - <path fill="#bdbdbd" d="M302.94 246.45l.5.477-.5-.477z"/> - <path fill="#185200" d="M304.45 246.45l.5.477-.5-.477z"/> - <path fill="#7b7373" d="M305.45 246.45l.5.477-.5-.477z"/> - <path fill="#ada5a5" d="M306.45 246.45l.5.477-.5-.477z"/> - <path fill="#cecece" d="M306.95 246.45l-.5.954.5-.954z"/> - <path fill="#ada5a5" d="M308.46 246.45l.5.477-.5-.477z"/> - <path fill="#8c8c8c" d="M221.22 246.93l1.504 1.43-1.504-1.43z"/> - <path fill="#cecece" d="M222.23 246.93l.5 1.43h.503l-1.003-1.43z"/> - <path fill="#9c9494" d="M222.73 246.93l.5.477-.5-.477z"/> - <path fill="#dedede" d="M224.23 246.93l.5.477-.5-.477z"/> - <path fill="#9c9494" d="M224.73 246.93l-.5.954.5-.954z"/> - <path fill="#425242" d="M225.74 246.93l.5.477-.5-.477z"/> - <path fill="#213918" d="M226.24 246.93l.5.477-.5-.477z"/> - <path fill="#ada5a5" d="M226.74 246.93l.5.477-.5-.477z"/> - <path fill="#63636b" d="M228.24 246.93l.5.477-.5-.477z"/> - <path fill="#294200" d="M229.41 247.25l.167.318-.167-.318z"/> - <path fill="#295200" d="M230.25 246.93l.5.477-.5-.477z"/> - <path fill="#dedede" d="M230.75 246.93l.5.477-.5-.477z"/> - <path fill="#4a4208" d="M244.29 246.93l.5.477-.5-.477z"/> - <path fill="#ffce08" d="M244.79 246.93l.5.477-.5-.477z"/> - <path fill="#bd9408" d="M245.29 246.93l.5.477-.5-.477z"/> - <path fill="#00184a" d="M245.79 246.93l.5.477-.5-.477z"/> - <path fill="#001010" d="M250.3 246.93l.5.477-.5-.477z"/> - <path fill="#001039" d="M251.3 246.93l.5.477-.5-.477z"/> - <path fill="#00215a" d="M254.81 246.93l.5.477-.5-.477z"/> - <path fill="#392100" d="M255.32 246.93l1.003.954-1.003-.954z"/> - <path fill="#001010" d="M255.82 246.93l.5.477-.5-.477z"/> - <path fill="#efefef" d="M265.84 246.93l.5.477-.5-.477z"/> - <path fill="#420000" d="M273.36 246.93l.5.477-.5-.477z"/> - <path fill="#5a1008" d="M274.37 246.93l.5.477-.5-.477z"/> - <path fill="#7b1008" d="M277.88 246.93l.5.477-.5-.477z"/> - <path fill="#181000" d="M278.88 246.93l-1.003 1.43 1.003-1.43z"/> - <path fill="#002984" d="M279.38 246.93l.5.477-.5-.477z"/> - <path fill="#941808" d="M283.39 246.93l.5.477-.5-.477z"/> - <path fill="#7b5a00" d="M283.89 246.93l.5.477-.5-.477m1.003 0l.5.477-.5-.477z"/> - <path fill="#b51010" d="M285.4 246.93l.5.477-.5-.477z"/> - <path fill="#bdbdbd" d="M294.92 246.93l.5.477-.5-.477z"/> - <path fill="#103910" d="M295.42 246.93l.5.477-.5-.477z"/> - <path fill="#dedede" d="M295.92 246.93l.5.477-.5-.477z"/> - <path fill="#4a6342" d="M297.93 246.93l.5.477-.5-.477z"/> - <path fill="#7b7373" d="M300.94 246.93l.5.477-.5-.477z"/> - <path fill="#185200" d="M301.44 246.93l.5.477-.5-.477z"/> - <path fill="#7b8c73" d="M302.44 246.93l.5.477-.5-.477z"/> - <path fill="#395231" d="M303.94 246.93l.5.477-.5-.477z"/> - <path fill="#319400" d="M304.45 246.93l.5.477-.5-.477z"/> - <path fill="#9c9494" d="M306.95 246.93l.5.477-.5-.477z"/> - <path fill="#63636b" d="M307.96 246.93l.5.477-.5-.477z"/> - <path fill="#9c9494" d="M308.46 246.93l.5.477-.5-.477z"/> - <path fill="#7b7373" d="M221.22 247.41l.5.477-.5-.477z"/> - <path fill="#cecece" d="M224.73 247.41l.5.477-.5-.477z"/> - <path fill="#424242" d="M225.24 247.41l.5.477-.5-.477z"/> - <path fill="#295200" d="M225.74 247.41l.5.477-.5-.477z"/> - <path fill="#294200" d="M226.24 247.41l.5.477-.5-.477z"/> - <path fill="#9c9494" d="M226.74 247.41l1.003.954-1.003-.954z"/> - <path fill="#397b00" d="M228.24 247.41l.5.477-.5-.477z"/> - <path fill="#9c9494" d="M230.75 247.41l.5.477-.5-.477z"/> - <path fill="#002984" d="M244.29 247.41l1.003.954-1.003-.954z"/> - <path fill="#6b5a00" d="M244.79 247.41l.5.477-.5-.477z"/> - <path fill="#211800" d="M245.29 247.41l1.504.954-1.504-.954z"/> - <path fill="#00216b" d="M246.29 247.41l.5.477-.5-.477z"/> - <path fill="#001010" d="M250.8 247.41l.5.477-.5-.477z"/> - <path fill="#001039" d="M251.81 247.41l.5.477-.5-.477m3.51 0l.5.477-.5-.477z"/> - <path fill="#00184a" d="M256.32 247.41l.5.477-.5-.477z"/> - <path fill="#bd9408" d="M264.34 247.41v.477l1.003 1.908h.5l-1.503-2.385z"/> - <path fill="#7b1008" d="M272.86 247.41l.5.477-.5-.477z"/> - <path fill="#311000" d="M273.86 247.41l.5.477-.5-.477z"/> - <path fill="#ce2110" d="M274.37 247.41l.5.477-.5-.477z"/> - <path fill="#941808" d="M277.37 247.41l-.5.954.5-.954z"/> - <path fill="#211800" d="M277.88 247.41l.5.477-.5-.477z"/> - <path fill="#002984" d="M278.88 247.41l.5.477-.5-.477z"/> - <path fill="#ad1810" d="M282.89 247.41l.5.477-.5-.477z"/> - <path fill="#211800" d="M283.39 247.41l-1.003 1.43 1.003-1.43z"/> - <path fill="#181000" d="M283.89 247.41l.5.477-.5-.477z"/> - <path fill="#6b5a00" d="M284.39 247.41l.5.477-.5-.477z"/> - <path fill="#7b1008" d="M284.89 247.41l.5.477-.5-.477z"/> - <path fill="#dedede" d="M294.92 247.41l.5.477-.5-.477z"/> - <path fill="#185200" d="M295.42 247.41l.5.477-.5-.477z"/> - <path fill="#425242" d="M295.92 247.41l.5.477-.5-.477z"/> - <path fill="#6b735a" d="M297.93 247.41l.5.477-.5-.477z"/> - <path fill="#296300" d="M298.43 247.41l.5.477-.5-.477z"/> - <path fill="#ada5a5" d="M298.93 247.41l.5.477-.5-.477z"/> - <path fill="#313931" d="M300.94 247.41l.5.477-.5-.477z"/> - <path fill="#297b00" d="M301.44 247.41l.5.477-.5-.477z"/> - <path fill="#4a6342" d="M302.44 247.41v2.385h.5l-.5-2.385z"/> - <path fill="#7b7373" d="M303.44 247.41l.5.477-.5-.477z"/> - <path fill="#297b00" d="M304.28 247.57l.334.16-.334-.16z"/> - <path fill="#63636b" d="M304.95 247.41l.5.477-.5-.477z"/> - <path fill="#7b7373" d="M305.45 247.41l.5.477-.5-.477z"/> - <path fill="#bdbdbd" d="M306.28 247.57l.334.16-.334-.16z"/> - <path fill="#8c8c8c" d="M306.95 247.41l-.5.954.5-.954z"/> - <path fill="#7b7373" d="M307.45 247.41l.5.477-.5-.477z"/> - <path fill="#103910" d="M307.96 247.41l.5.477-.5-.477z"/> - <path fill="#efefef" d="M308.46 247.41l.5.477-.5-.477z"/> - <path fill="#cecece" d="M220.72 247.89l.5.477-.5-.477z"/> - <path fill="#9c9494" d="M221.22 247.89l.5.477-.5-.477z"/> - <path fill="#ada5a5" d="M223.23 247.89l.5.477-.5-.477z"/> - <path fill="#bdbdbd" d="M224.73 247.89l.5.477-.5-.477z"/> - <path fill="#001000" d="M225.24 247.89l.5.477-.5-.477z"/> - <path fill="#397b00" d="M225.74 247.89v1.43l1.504-.476v-.477l-1.504-.477z"/> - <path fill="#213918" d="M226.74 247.89l.5.477-.5-.477z"/> - <path fill="#294200" d="M227.74 247.89l.5.477-.5-.477z"/> - <path fill="#397b00" d="M229.08 248.04l.334.16-.334-.16z"/> - <path fill="#8c8c8c" d="M230.75 247.89l.5.477-.5-.477z"/> - <path fill="#00216b" d="M245.29 247.89l.5.477-.5-.477z"/> - <path fill="#00184a" d="M246.79 247.89l.5.477-.5-.477z"/> - <path fill="#002984" d="M250.8 247.89l1.504 1.43-1.504-1.43z"/> - <path fill="#181000" d="M251.3 247.89l.5.477-.5-.477z"/> - <path fill="#00184a" d="M252.31 247.89l.5.477-.5-.477z"/> - <path fill="#181000" d="M255.82 247.89l.5.477-.5-.477z"/> - <path fill="#211800" d="M256.48 248.2l.167.318-.167-.318z"/> - <path fill="#00216b" d="M256.82 247.89l.5.477-.5-.477z"/> - <path fill="#7b5a00" d="M263.84 247.89v1.908h.5l-.5-1.908z"/> - <path fill="#ffce08" d="M264.34 247.89v2.385h-2.005v1.43h2.005v5.725h.5l.503-5.724h2.506v-1.43h-2.507v-2.386h-1.003z"/> - <path fill="#b51010" d="M272.36 247.89l.5.477-.5-.477z"/> - <path fill="#211800" d="M273.2 248.04l.334.16-.334-.16z"/> - <path fill="#b51010" d="M273.86 247.89l.5.477-.5-.477z"/> - <path fill="#211800" d="M277.37 247.89l-1.504 1.908 1.504-1.908z"/> - <path fill="#002984" d="M278.38 247.89l.5.477-.5-.477z"/> - <path fill="#941808" d="M282.39 247.89l.5.477-.5-.477z"/> - <path fill="#7b1008" d="M283.89 247.89l.5.477-.5-.477z"/> - <path fill="#b51010" d="M284.39 247.89l.5.477-.5-.477z"/> - <path fill="#214210" d="M295.42 247.89l.5.477-.5-.477z"/> - <path fill="#296300" d="M295.92 247.89l.5.477-.5-.477z"/> - <path fill="#ada5a5" d="M296.42 247.89l.5.477-.5-.477z"/> - <path fill="#8c8c8c" d="M297.93 247.89l.5.477-.5-.477z"/> - <path fill="#319400" d="M298.43 247.89l.5.477-.5-.477z"/> - <path fill="#425242" d="M298.93 247.89l.5.477-.5-.477z"/> - <path fill="#52525a" d="M300.94 247.89l.5.477-.5-.477z"/> - <path fill="#395231" d="M303.44 247.89l.5.477-.5-.477z"/> - <path fill="#296300" d="M304.45 247.89l.5.477-.5-.477z"/> - <path fill="#424242" d="M304.95 247.89l.5.477-.5-.477z"/> - <path fill="#9c9494" d="M305.45 247.89l.5.477-.5-.477z"/> - <path fill="#cecece" d="M305.95 247.89l.5.477-.5-.477z"/> - <path fill="#52525a" d="M306.95 247.89l.5.477-.5-.477z"/> - <path fill="#185200" d="M307.45 247.89l.5.477-.5-.477z"/> - <path fill="#63636b" d="M307.96 247.89l.5.477-.5-.477z"/> - <path fill="#dedede" d="M221.73 248.36l.5.477-.5-.477z"/> - <path fill="#efefef" d="M222.23 248.36l.5.477-.5-.477z"/> - <path fill="#dedede" d="M223.06 248.52l.334.16-.334-.16z"/> - <path fill="#9c9494" d="M223.73 248.36l.5.477-.5-.477z"/> - <path fill="#424242" d="M224.73 248.36l.5.477-.5-.477z"/> - <path fill="#428c00" d="M225.24 248.36c-1.362 2.92-1.188 4.692 0 7.633h1.003l1.002-7.156h-.5l-.502 5.724h-1.003v-6.2z"/> - <path fill="#313931" d="M227.24 248.36l.5.477-.5-.477z"/> - <path fill="#294200" d="M228.91 248.68l.167.318-.167-.318z"/> - <path fill="#6b735a" d="M230.75 248.36l.5.477-.5-.477z"/> - <path fill="#00216b" d="M245.79 248.36l1.003.954-1.003-.954z"/> - <path fill="#100808" d="M246.29 248.36l.5.477-.5-.477z"/> - <path fill="#392100" d="M246.79 248.36l2.005 1.908-2.005-1.908z"/> - <path fill="#001039" d="M247.29 248.36l.5.477-.5-.477z"/> - <path fill="#181000" d="M251.81 248.36l1.003.954-1.003-.954z"/> - <path fill="#211800" d="M252.31 248.36l2.005 2.385-2.005-2.385z"/> - <path fill="#00216b" d="M252.81 248.36l.5.477-.5-.477z"/> - <path fill="#002984" d="M255.82 248.36l.5.477-.5-.477z"/> - <path fill="#181000" d="M256.82 248.36l.5.477-.5-.477z"/> - <path fill="#311000" d="M272.36 248.36l.5.477-.5-.477z"/> - <path fill="#392100" d="M272.86 248.36l-.5.954.5-.954z"/> - <path fill="#7b1008" d="M273.36 248.36l.5.477-.5-.477z"/> - <path fill="#ad1810" d="M276.37 248.36l.5.477-.5-.477z"/> - <path fill="#00216b" d="M277.88 248.36l.5.477-.5-.477z"/> - <path fill="#631808" d="M281.89 248.36l.5.477-.5-.477z"/> - <path fill="#5a1008" d="M283.39 248.36l.5.477-.5-.477z"/> - <path fill="#5a6b52" d="M295.42 248.36l.5.477-.5-.477z"/> - <path fill="#319400" d="M295.92 248.36l.5.477-.5-.477z"/> - <path fill="#103910" d="M296.42 248.36l.5.477-.5-.477z"/> - <path fill="#efefef" d="M296.93 248.36l.5.477-.5-.477z"/> - <path fill="#9c9494" d="M297.93 248.36l.5.477-.5-.477z"/> - <path fill="#297b00" d="M298.43 248.36l.5.477-.5-.477z"/> - <path fill="#185200" d="M298.93 248.36l.5.477-.5-.477z"/> - <path fill="#cecece" d="M299.43 248.36l.5.477-.5-.477z"/> - <path fill="#315221" d="M300.94 248.36l.5.477-.5-.477z"/> - <path fill="#185200" d="M303.44 248.36l.5.477-.5-.477m1.003 0l.5.477-.5-.477z"/> - <path fill="#ada5a5" d="M304.95 248.36l.5.477-.5-.477z"/> - <path fill="#efefef" d="M305.78 248.52l.334.16-.334-.16z"/> - <path fill="#ada5a5" d="M306.45 248.36l.5.477-.5-.477z"/> - <path fill="#214210" d="M306.95 248.36l.5.477-.5-.477z"/> - <path fill="#296300" d="M307.45 248.36l.5.477-.5-.477z"/> - <path fill="#bdbdbd" d="M307.96 248.36l.5.477-.5-.477z"/> - <path fill="#397b00" d="M224.73 248.84l.5.477-.5-.477z"/> - <path fill="#103900" d="M227.24 248.84l.5.477-.5-.477z"/> - <path fill="#8c8c8c" d="M230.75 248.84l.5.477-.5-.477z"/> - <path fill="#002984" d="M245.79 248.84v13.357h-4.512v.477l5.013-.477v2.385h.503c0-4.117 1.645-12.417-1.003-15.742z"/> - <path fill="#001010" d="M246.79 248.84l.5.477-.5-.477m1.003 0l.5.477-.5-.477z"/> - <path fill="#00216b" d="M253.31 248.84l.5.477-.5-.477z"/> - <path fill="#00184a" d="M256.32 248.84l.5.477-.5-.477z"/> - <path fill="#392100" d="M256.82 248.84l1.003.954-1.003-.954z"/> - <path fill="#101829" d="M257.32 248.84l.5.477-.5-.477z"/> - <path fill="#631808" d="M271.86 248.84l.5.477-.5-.477z"/> - <path fill="#420000" d="M272.86 248.84l.5.477-.5-.477z"/> - <path fill="#b51010" d="M275.87 248.84l.5.477-.5-.477z"/> - <path fill="#00216b" d="M277.37 248.84l.5.477-.5-.477z"/> - <path fill="#ce2110" d="M280.88 248.84l.5.477-.5-.477z"/> - <path fill="#5a1008" d="M281.38 248.84l.5.477-.5-.477z"/> - <path fill="#392100" d="M281.89 248.84l-1.504 1.908 1.504-1.908z"/> - <path fill="#181000" d="M282.39 248.84l.5.477-.5-.477z"/> - <path fill="#002984" d="M282.89 248.84l.5.477-.5-.477z"/> - <path fill="#631808" d="M283.39 248.84v13.357h.5l-.5-13.357z"/> - <path fill="#8c8c8c" d="M295.42 248.84l.5.477-.5-.477z"/> - <path fill="#297b00" d="M296.26 249l.334.16-.334-.16z"/> - <path fill="#52525a" d="M296.93 248.84l.5.477-.5-.477z"/> - <path fill="#bdbdbd" d="M297.93 248.84l.5.477-.5-.477z"/> - <path fill="#296300" d="M298.43 248.84l.5.477-.5-.477z"/> - <path fill="#319400" d="M298.93 248.84l2.005 11.926h.502c.83-4.254.04-8.275-2.507-11.926z"/> - <path fill="#63636b" d="M299.43 248.84l.5.477-.5-.477z"/> - <path fill="#cecece" d="M300.44 248.84l.5.477-.5-.477z"/> - <path fill="#185200" d="M300.94 248.84l.5.477-.5-.477z"/> - <path fill="#297b00" d="M303.44 248.84l.5.477-.5-.477z"/> - <path fill="#184a00" d="M304.45 248.84l.5.477-.5-.477z"/> - <path fill="#314231" d="M306.45 248.84l.5.477-.5-.477z"/> - <path fill="#319400" d="M306.95 248.84l.5.477-.5-.477z"/> - <path fill="#294221" d="M307.45 248.84l.5.477-.5-.477z"/> - <path fill="#efefef" d="M223.73 249.32l.5.477-.5-.477z"/> - <path fill="#214210" d="M224.23 249.32l.5.477-.5-.477z"/> - <path fill="#295200" d="M225.9 249.63l.167.318-.167-.318z"/> - <path fill="#294200" d="M227.24 249.32l.5.477-.5-.477z"/> - <path fill="#397b00" d="M228.58 249.48l.334.16-.334-.16z"/> - <path fill="#294200" d="M230.25 249.32l.5.477-.5-.477z"/> - <path fill="#315221" d="M231.08 249.48l.334.16-.334-.16z"/> - <path fill="#294200" d="M231.75 249.32l.5.477-.5-.477z"/> - <path fill="#8c8442" d="M232.25 249.32l.5.477-.5-.477z"/> - <path fill="#63636b" d="M232.76 249.32l.5.477-.5-.477z"/> - <path fill="#bdbdbd" d="M233.26 249.32l.5.477-.5-.477z"/> - <path fill="#003994" d="M246.79 249.32c0 3.607-1.78 12.99.515 15.884 1.008 1.27 3.493 1.394 5 1.766 0-7.3 1.478-13.1-5.515-17.65z"/> - <path fill="#101829" d="M247.29 249.32l.5.477-.5-.477z"/> - <path fill="#100808" d="M248.3 249.32l.5.477-.5-.477z"/> - <path fill="#001039" d="M248.8 249.32l.5.477-.5-.477z"/> - <path fill="#00216b" d="M252.31 249.32l.5.477-.5-.477m1.504 0l.5.477-.5-.477z"/> - <path fill="#001010" d="M256.82 249.32l.5.477-.5-.477z"/> - <path fill="#00184a" d="M257.82 249.32l.5.477-.5-.477z"/> - <path fill="#941808" d="M271.36 249.32l.5.477-.5-.477z"/> - <path fill="#211800" d="M271.36 250.27l1.504-.954-1.504.954z"/> - <path fill="#ce2110" d="M272.86 249.32l.5.477-.5-.477z"/> - <path fill="#b51010" d="M275.37 249.32l.5.477-.5-.477z"/> - <path fill="#00216b" d="M276.87 249.32l.5.477-.5-.477z"/> - <path fill="#5a1831" d="M280.38 249.32l.5.477-.5-.477z"/> - <path fill="#311000" d="M280.88 249.32l.5.477-.5-.477z"/> - <path fill="#001010" d="M281.89 249.32l.5.477-.5-.477z"/> - <path fill="#003994" d="M277.37 266.97c1.632-.403 3.99-.547 5.212-1.766 2.583-2.578.804-12.41.804-15.884-7.824 3.45-6.016 10.735-6.016 17.65z"/> - <path fill="#dedede" d="M295.42 249.32l.5.477-.5-.477z"/> - <path fill="#185200" d="M295.92 249.32l.5.477-.5-.477z"/> - <path fill="#319400" d="M296.42 249.32l4.01 15.265h-.5c-.798-2.673-3.967-12.84-8.022-9.063 5.372.22 7.147 9.323 8.02 13.356h.503l6.518-19.08h-.5l-5.015 12.402h-.5c-1.357-4.06-1.248-9.78-4.513-12.88z"/> - <path fill="#296300" d="M296.93 249.32l.5.477-.5-.477z"/> - <path fill="#ada5a5" d="M297.43 249.32l.5.477-.5-.477z"/> - <path fill="#dedede" d="M297.93 249.32l.5.477-.5-.477z"/> - <path fill="#185200" d="M298.43 249.32l.5.477-.5-.477z"/> - <path fill="#184a00" d="M299.43 249.32l.5.477-.5-.477z"/> - <path fill="#dedede" d="M299.93 249.32l.5.477-.5-.477z"/> - <path fill="#8c8c8c" d="M300.44 249.32l-.5.954.5-.954z"/> - <path fill="#297b00" d="M300.94 249.32l.5.477-.5-.477z"/> - <path fill="#395231" d="M302.94 249.32l.5.477-.5-.477z"/> - <path fill="#4a6342" d="M304.45 249.32l.5.477-.5-.477z"/> - <path fill="#8c8c8c" d="M305.95 249.32l.5.477-.5-.477z"/> - <path fill="#297b00" d="M306.79 249.48l.334.16-.334-.16z"/> - <path fill="#8c8c8c" d="M307.45 249.32l.5.477-.5-.477z"/> - <path fill="#7b7373" d="M223.73 249.79l.5.477-.5-.477z"/> - <path fill="#295200" d="M227.24 249.79l.5.477-.5-.477z"/> - <path fill="#294200" d="M228.24 249.79l.5.477-.5-.477z"/> - <path fill="#397b00" d="M229.25 249.79l-2.005.477v.477l2.005-.954z"/> - <path fill="#103900" d="M229.75 249.79l.5.477-.5-.477z"/> - <path fill="#397b00" d="M232.42 250.11l.167.318-.167-.318z"/> - <path fill="#428c00" d="M232.76 249.79l.5.477-.5-.477z"/> - <path fill="#294200" d="M233.26 249.79l.5.477-.5-.477z"/> - <path fill="#313931" d="M233.76 249.79l.5.477-.5-.477z"/> - <path fill="#001039" d="M247.8 249.79l.5.477-.5-.477z"/> - <path fill="#181000" d="M248.8 249.79l.5.477-.5-.477z"/> - <path fill="#00216b" d="M249.3 249.79l1.003.954-1.003-.954m3.51 0l.5.477-.5-.477z"/> - <path fill="#181000" d="M253.81 249.79l1.504 1.43-1.504-1.43z"/> - <path fill="#002984" d="M254.31 249.79l.5.477-.5-.477z"/> - <path fill="#211800" d="M257.65 249.95l.334.16-.334-.16z"/> - <path fill="#002984" d="M258.32 249.79l.5.477-.5-.477z"/> - <path fill="#dedede" d="M261.33 249.79l.5.477-.5-.477z"/> - <path fill="#ada584" d="M261.83 249.79l.5.477-.5-.477z"/> - <path fill="#9c7b08" d="M263.84 249.79l.5.477-.5-.477z"/> - <path fill="#cea508" d="M265.34 249.79l.5.477-.5-.477z"/> - <path fill="#9c9463" d="M265.84 249.79l.5.477-.5-.477z"/> - <path fill="#bdb584" d="M266.34 249.79v.477h1.504l-1.504-.477z"/> - <path fill="#bdbdbd" d="M267.85 249.79l.5.477-.5-.477z"/> - <path fill="#ce2110" d="M270.86 249.79l.5.477-.5-.477z"/> - <path fill="#ad1810" d="M272.36 249.79l.5.477-.5-.477z"/> - <path fill="#bd2110" d="M274.87 249.79l.5.477-.5-.477z"/> - <path fill="#210800" d="M275.37 249.79l.5.477-.5-.477z"/> - <path fill="#392100" d="M275.87 249.79l-1.003 1.43 1.003-1.43z"/> - <path fill="#00184a" d="M276.37 249.79l.5.477-.5-.477z"/> - <path fill="#002984" d="M279.88 249.79l.5.477-.5-.477z"/> - <path fill="#100808" d="M280.38 249.79l.5.477-.5-.477z"/> - <path fill="#101829" d="M281.38 249.79l.5.477-.5-.477z"/> - <path fill="#bdbdbd" d="M293.42 249.79l.5.477-.5-.477z"/> - <path fill="#8c8c8c" d="M293.92 249.79l.5.477-.5-.477z"/> - <path fill="#315221" d="M295.92 249.79l.5.477-.5-.477z"/> - <path fill="#103910" d="M297.43 249.79l.5.477-.5-.477z"/> - <path fill="#efefef" d="M297.93 249.79l.5.477-.5-.477z"/> - <path fill="#184a00" d="M298.43 249.79l.5.477-.5-.477z"/> - <path fill="#297b00" d="M299.43 249.79l.5.477-.5-.477z"/> - <path fill="#5a6b52" d="M300.44 249.79l.5.477-.5-.477z"/> - <path fill="#294221" d="M302.44 249.79l.5.477-.5-.477z"/> - <path fill="#185200" d="M302.94 249.79l.5.477-.5-.477z"/> - <path fill="#5a6b52" d="M304.45 249.79l.5.477-.5-.477z"/> - <path fill="#dedede" d="M305.45 249.79l.5.477-.5-.477z"/> - <path fill="#184a00" d="M305.95 249.79l.5.477-.5-.477m1.003 0l.5.477-.5-.477z"/> - <path fill="#efefef" d="M307.45 249.79l.5.477-.5-.477z"/> - <path fill="#5a5231" d="M223.73 250.27l.5.477-.5-.477z"/> - <path fill="#294200" d="M225.74 250.27v1.43h.5l-.5-1.43m3.51 0l.5.477-.5-.477m2.34.16l.333.158-.334-.16z"/> - <path fill="#214210" d="M232.76 250.27l.5.477-.5-.477z"/> - <path fill="#9c9494" d="M233.26 250.27l.5.477-.5-.477z"/> - <path fill="#00215a" d="M248.3 250.27l.5.477-.5-.477z"/> - <path fill="#211800" d="M248.8 250.27v.477l1.504.477-1.504-.954z"/> - <path fill="#00216b" d="M253.31 250.27l.5.477-.5-.477z"/> - <path fill="#002984" d="M254.81 250.27l.5.477-.5-.477z"/> - <path fill="#00216b" d="M257.32 250.27l.5.477-.5-.477z"/> - <path fill="#392100" d="M257.82 250.27l1.504 1.43-1.504-1.43z"/> - <path fill="#101810" d="M258.32 250.27l.5.477-.5-.477z"/> - <path fill="#bd9408" d="M261.83 250.27v1.43h.5l-.5-1.43z"/> - <path fill="#310000" d="M270.86 250.27l.5.477-.5-.477z"/> - <path fill="#392100" d="M271.36 250.27l-.5.954.5-.954z"/> - <path fill="#631808" d="M271.86 250.27l.5.477-.5-.477z"/> - <path fill="#ce2110" d="M274.37 250.27l-.5.954.5-.954z"/> - <path fill="#311000" d="M274.87 250.27l.5.477-.5-.477z"/> - <path fill="#001039" d="M275.87 250.27l.5.477-.5-.477z"/> - <path fill="#00216b" d="M279.38 250.27l-.5.954.5-.954z"/> - <path fill="#181000" d="M279.88 250.27l.5.477-.5-.477z"/> - <path fill="#001039" d="M280.88 250.27l.5.477-.5-.477z"/> - <path fill="#101810" d="M293.92 250.27l.5.477-.5-.477z"/> - <path fill="#efefef" d="M294.42 250.27l.5.477-.5-.477z"/> - <path fill="#63636b" d="M295.92 250.27l.5.477-.5-.477z"/> - <path fill="#297b00" d="M297.43 250.27l.5.477-.5-.477z"/> - <path fill="#7b7373" d="M297.93 250.27l.5.477-.5-.477z"/> - <path fill="#315221" d="M298.43 250.27l.5.477-.5-.477z"/> - <path fill="#214210" d="M299.93 250.27l.5.477-.5-.477z"/> - <path fill="#103900" d="M300.44 250.27l.5.477-.5-.477z"/> - <path fill="#184a00" d="M302.44 250.27v2.862h.5l-.5-2.862z"/> - <path fill="#297b00" d="M302.94 250.27l.5.477-.5-.477z"/> - <path fill="#8c8c8c" d="M304.45 250.27l.5.477-.5-.477z"/> - <path fill="#63636b" d="M305.45 250.27l.5.477-.5-.477z"/> - <path fill="#297b00" d="M305.95 250.27l.5.477-.5-.477z"/> - <path fill="#5a6b52" d="M306.95 250.27l.5.477-.5-.477z"/> - <path fill="#294200" d="M223.73 250.75l.5.477-.5-.477m4.01 0l.502.477-.5-.477m1 0l.503.477-.502-.477z"/> - <path fill="#103900" d="M230.75 250.75l.5.477-.5-.477z"/> - <path fill="#397b00" d="M231.25 250.75l.5.477-.5-.477z"/> - <path fill="#294200" d="M232.25 250.75l.5.477-.5-.477z"/> - <path fill="#cecece" d="M232.76 250.75l.5.477-.5-.477z"/> - <path fill="#00216b" d="M248.8 250.75l.5.477-.5-.477z"/> - <path fill="#001039" d="M250.3 250.75l1.003.954-1.003-.954z"/> - <path fill="#00184a" d="M253.81 250.75l.5.477-.5-.477z"/> - <path fill="#392100" d="M254.31 250.75l4.01 3.816-4.01-3.816z"/> - <path fill="#001039" d="M257.82 250.75l.5.477-.5-.477m1.003 0l.5.477-.5-.477z"/> - <path fill="#631808" d="M270.36 250.75l.5.477-.5-.477z"/> - <path fill="#311000" d="M271.36 250.75l.5.477-.5-.477m3.008 0l.5.477-.5-.477z"/> - <path fill="#001039" d="M275.37 250.75l.5.477-.5-.477z"/> - <path fill="#211800" d="M278.88 251.7l1.504-.477-1.504.477z"/> - <path fill="#00215a" d="M280.38 250.75l.5.477-.5-.477z"/> - <path fill="#103900" d="M293.92 250.75l.5.477-.5-.477z"/> - <path fill="#8c8c8c" d="M294.42 250.75l.5.477-.5-.477z"/> - <path fill="#ada5a5" d="M295.92 250.75l.5.477-.5-.477z"/> - <path fill="#297b00" d="M296.42 250.75l.5.477-.5-.477z"/> - <path fill="#295210" d="M297.93 250.75l.5.477-.5-.477z"/> - <path fill="#395231" d="M298.43 250.75l.5.477-.5-.477z"/> - <path fill="#297b00" d="M299.93 250.75l.5.477-.5-.477z"/> - <path fill="#185200" d="M300.44 250.75l.5.477-.5-.477z"/> - <path fill="#297b00" d="M303.94 250.75l.5.477-.5-.477z"/> - <path fill="#9c9494" d="M304.45 250.75l.5.477-.5-.477z"/> - <path fill="#dedede" d="M304.95 250.75l.5.477-.5-.477z"/> - <path fill="#184a00" d="M305.45 250.75l.5.477-.5-.477z"/> - <path fill="#296300" d="M306.45 250.75l.5.477-.5-.477z"/> - <path fill="#ada5a5" d="M306.95 250.75l.5.477-.5-.477z"/> - <path fill="#cecece" d="M223.23 251.23l.5.477-.5-.477z"/> - <path fill="#397b00" d="M223.73 251.23l.5.477-.5-.477z"/> - <path fill="#295200" d="M227.74 251.23l.5.477-.5-.477z"/> - <path fill="#103900" d="M228.24 251.23l-.5 1.43h.5v-1.43m2.005 0l-.5.954.5-.954z"/> - <path fill="#397b00" d="M231.75 251.23l.5.477-.5-.477z"/> - <path fill="#8c8c8c" d="M232.25 251.23l.5.477-.5-.477m2.005 0l.502.477-.502-.477z"/> - <path fill="#002984" d="M249.3 251.23l.5.477-.5-.477z"/> - <path fill="#392100" d="M250.3 251.23l2.005 1.908-2.005-1.908z"/> - <path fill="#001039" d="M254.31 251.23l.5.477-.5-.477z"/> - <path fill="#001010" d="M255.32 251.23l.5.477-.5-.477z"/> - <path fill="#101810" d="M258.32 251.23l.5.477-.5-.477z"/> - <path fill="#00216b" d="M259.33 251.23l.5.477-.5-.477z"/> - <path fill="#b51010" d="M269.85 251.23l.5.477-.5-.477z"/> - <path fill="#211800" d="M269.85 252.18l1.504-.477-1.504.477z"/> - <path fill="#bd2110" d="M271.36 251.23l.5.477-.5-.477z"/> - <path fill="#310000" d="M273.86 251.23l.5.477-.5-.477z"/> - <path fill="#422100" d="M274.37 251.23l.5.477-.5-.477z"/> - <path fill="#101829" d="M274.87 251.23l.5.477-.5-.477z"/> - <path fill="#001039" d="M278.38 251.23l-.5.954.5-.954z"/> - <path fill="#181000" d="M279.38 251.23l-.5.954.5-.954z"/> - <path fill="#00216b" d="M279.88 251.23l.5.477-.5-.477z"/> - <path fill="#426331" d="M293.92 251.23l.5.477-.5-.477z"/> - <path fill="#214210" d="M294.42 251.23l.5.477-.5-.477z"/> - <path fill="#efefef" d="M294.92 251.23l.5.477-.5-.477z"/> - <path fill="#103900" d="M296.42 251.23l.5.477-.5-.477z"/> - <path fill="#297b00" d="M297.93 251.23l.5.477-.5-.477z"/> - <path fill="#001000" d="M298.43 251.23l.5.477-.5-.477z"/> - <path fill="#103900" d="M300.44 251.23l.5.477-.5-.477z"/> - <path fill="#296300" d="M303.94 251.23l.5.477-.5-.477z"/> - <path fill="#bdbdbd" d="M304.45 251.23l.5.477-.5-.477z"/> - <path fill="#63636b" d="M304.95 251.23l.5.477-.5-.477z"/> - <path fill="#297b00" d="M305.45 251.23l.5.477-.5-.477z"/> - <path fill="#315221" d="M306.45 251.23l.5.477-.5-.477z"/> - <path fill="#9c9494" d="M223.4 252.02l.167.318-.167-.318z"/> - <path fill="#295200" d="M225.74 251.7l.5.477-.5-.477z"/> - <path fill="#397b00" d="M227.41 252.02l.167.318-.167-.318m.836-.318l.5.477-.5-.478z"/> - <path fill="#425242" d="M231.75 251.7l.5.477-.5-.477z"/> - <path fill="#001000" d="M234.26 251.7l.5.477-.5-.477z"/> - <path fill="#bdbdbd" d="M234.76 251.7l.5.477-.5-.477z"/> - <path fill="#ada5a5" d="M238.77 251.7l.5.477-.5-.477z"/> - <path fill="#52525a" d="M239.27 251.7l.5.477-.5-.477z"/> - <path fill="#9c9494" d="M239.77 251.7l.5.477-.5-.477z"/> - <path fill="#001010" d="M250.3 251.7l.5.477-.5-.477m1.003 0l.5.477-.5-.477z"/> - <path fill="#001039" d="M254.81 251.7l.5.477-.5-.477z"/> - <path fill="#001010" d="M255.82 251.7l.5.477-.5-.477z"/> - <path fill="#002984" d="M258.32 251.7l.5.477-.5-.477z"/> - <path fill="#211800" d="M259.16 251.86l.334.16-.334-.16z"/> - <path fill="#dedede" d="M261.33 251.7l.5.477-.5-.477z"/> - <path fill="#ada584" d="M261.83 251.7l.5.477-.5-.477z"/> - <path fill="#9c7b08" d="M263.84 251.7l.5.477-.5-.477z"/> - <path fill="#cea508" d="M265.34 251.7l.5.477-.5-.477z"/> - <path fill="#9c9463" d="M265.84 251.7l.5.477-.5-.477z"/> - <path fill="#bdbdbd" d="M267.85 251.7l.5.477-.5-.477z"/> - <path fill="#ce2110" d="M269.35 251.7l.5.477-.5-.477z"/> - <path fill="#392100" d="M270.36 251.7l-1.003 1.43 1.003-1.43z"/> - <path fill="#941808" d="M270.86 251.7l.5.477-.5-.477z"/> - <path fill="#5a1008" d="M273.36 251.7l-1.003 1.43 1.003-1.43z"/> - <path fill="#392100" d="M273.86 251.7l-1.003 1.43 1.003-1.43z"/> - <path fill="#001010" d="M274.37 251.7l.5.477-.5-.477z"/> - <path fill="#392100" d="M278.38 251.7l-1.504 1.908 1.504-1.908z"/> - <path fill="#002984" d="M279.38 251.7l.5.477-.5-.477z"/> - <path fill="#4a6342" d="M293.92 251.7l.5.477-.5-.477z"/> - <path fill="#297b00" d="M294.42 251.7l.5.477-.5-.477z"/> - <path fill="#52525a" d="M294.92 251.7l.5.477-.5-.477z"/> - <path fill="#5a6b52" d="M296.42 251.7l.5.477-.5-.477z"/> - <path fill="#103900" d="M298.43 251.7l.5.477-.5-.477z"/> - <path fill="#185200" d="M300.44 251.7l.5.477-.5-.477z"/> - <path fill="#297b00" d="M300.94 251.7l-.5.954.5-.954z"/> - <path fill="#185200" d="M303.94 251.7l.5.477-.5-.477z"/> - <path fill="#dedede" d="M304.45 251.7l.5.477-.5-.477z"/> - <path fill="#184a00" d="M304.95 251.7l.5.477-.5-.477z"/> - <path fill="#297b00" d="M305.95 251.7l.5.477-.5-.477z"/> - <path fill="#8c8c8c" d="M306.45 251.7l.5.477-.5-.477z"/> - <path fill="#cecece" d="M307.96 251.7l.5.477-.5-.477z"/> - <path fill="#294221" d="M308.46 251.7l.5.477-.5-.477z"/> - <path fill="#103900" d="M308.96 251.7l.5.477-.5-.477z"/> - <path fill="#9c9494" d="M309.46 251.7l.5.477-.5-.477z"/> - <path fill="#397b00" d="M225.24 252.18v2.385h1.003v-2.385h-1.003z"/> - <path fill="#103900" d="M229.25 252.18l.5.477-.5-.477z"/> - <path fill="#295200" d="M231.25 252.18l.5.477-.5-.477z"/> - <path fill="#bdbdbd" d="M231.75 252.18l.5.477-.5-.477z"/> - <path fill="#efefef" d="M233.76 252.18l.5.477-.5-.477z"/> - <path fill="#295200" d="M234.26 252.18l1.003.954-1.003-.954z"/> - <path fill="#425242" d="M234.76 252.18l.5.477-.5-.477z"/> - <path fill="#bdbdbd" d="M237.77 252.18l.5.477-.5-.477z"/> - <path fill="#5a5231" d="M238.27 252.18l.5.477-.5-.477z"/> - <path fill="#397b00" d="M238.77 252.18l.5.477-.5-.477z"/> - <path fill="#396b10" d="M239.27 252.18l.5.477-.5-.477z"/> - <path fill="#efefef" d="M239.77 252.18l.5.477-.5-.477z"/> - <path fill="#001039" d="M250.8 252.18l.5.477-.5-.477z"/> - <path fill="#181000" d="M251.81 252.18l1.003.954-1.003-.954z"/> - <path fill="#002984" d="M252.31 252.18l.5.477-.5-.477z"/> - <path fill="#52525a" d="M255.32 252.18l.5.477-.5-.477z"/> - <path fill="#001010" d="M256.32 252.18l.5.477-.5-.477z"/> - <path fill="#00184a" d="M258.82 252.18l.5.477-.5-.477z"/> - <path fill="#392100" d="M259.33 252.18l1.003.954-1.003-.954z"/> - <path fill="#001010" d="M259.83 252.18l.5.477-.5-.477z"/> - <path fill="#7b5a00" d="M263.84 252.18v5.247h.5l-.5-5.247z"/> - <path fill="#420000" d="M269.35 252.18l.5.477-.5-.477z"/> - <path fill="#5a1008" d="M270.36 252.18l.5.477-.5-.477z"/> - <path fill="#313931" d="M273.86 252.18l.5.477-.5-.477z"/> - <path fill="#314a7b" d="M274.37 252.18l.5.477-.5-.477z"/> - <path fill="#001010" d="M277.37 252.18l.5.477-.5-.477m1.003 0l.5.477-.5-.477z"/> - <path fill="#8c8c8c" d="M293.92 252.18l.5.477-.5-.477z"/> - <path fill="#319400" d="M294.42 252.18l2.507 4.293h.5l-3.007-4.293z"/> - <path fill="#296300" d="M294.92 252.18l.5.477-.5-.477z"/> - <path fill="#ada5a5" d="M295.42 252.18l.5.477-.5-.477z"/> - <path fill="#9c9494" d="M296.42 252.18l.5.477-.5-.477z"/> - <path fill="#297b00" d="M296.93 252.18l.5.477-.5-.477z"/> - <path fill="#296300" d="M298.43 252.18l1.003.954-1.003-.954z"/> - <path fill="#297b00" d="M298.93 252.18l.5.477-.5-.477z"/> - <path fill="#184a00" d="M300.94 252.18l.5.477-.5-.477z"/> - <path fill="#214210" d="M303.94 252.18l.5.477-.5-.477z"/> - <path fill="#63636b" d="M304.45 252.18l.5.477-.5-.477z"/> - <path fill="#297b00" d="M304.95 252.18l.5.477-.5-.477z"/> - <path fill="#185200" d="M305.95 252.18l.5.477-.5-.477z"/> - <path fill="#dedede" d="M306.45 252.18l.5.477-.5-.477z"/> - <path fill="#8c8c8c" d="M307.45 252.18l.5.477-.5-.477z"/> - <path fill="#184a00" d="M307.96 252.18l.5.477-.5-.477z"/> - <path fill="#319400" d="M305.45 255.52l5.013-1.43-1.002-1.91-4.01 3.34z"/> - <path fill="#214210" d="M309.46 252.18l.5.477-.5-.477z"/> - <path fill="#cecece" d="M309.96 252.18l.5.477-.5-.477m-86.73.477l.5.477-.5-.477z"/> - <path fill="#397b00" d="M223.73 252.66l.5.477-.5-.477z"/> - <path fill="#294200" d="M227.41 252.97l.167.318-.167-.318m1.337-.318l.5.477-.5-.478z"/> - <path fill="#397b00" d="M229.25 252.66l.5.477-.5-.477z"/> - <path fill="#425242" d="M231.25 252.66l.5.477-.5-.477z"/> - <path fill="#bdbdbd" d="M233.76 252.66l.5.477-.5-.477z"/> - <path fill="#397b00" d="M234.26 252.66l.5.477-.5-.477z"/> - <path fill="#cecece" d="M235.26 252.66l.5.477-.5-.477z"/> - <path fill="#7b7373" d="M237.27 252.66l.5.477-.5-.477z"/> - <path fill="#295200" d="M237.77 252.66l.5.477-.5-.477z"/> - <path fill="#428c00" d="M236.26 259.81h-.5v-5.247h-.503l-.5 2.385h-.502v-2.385h-.502l-3.008 10.972h.502l1.002-1.908h.5l-1.002 2.385h.5l2.508-3.34-2.005 4.294h.502l5.067-7.156.948-7.155c-3.278 1.504-3.008 4.076-3.008 7.155z"/> - <path fill="#63636b" d="M239.27 252.66l.5.477-.5-.477z"/> - <path fill="#001039" d="M251.3 252.66l.5.477-.5-.477z"/> - <path fill="#00216b" d="M252.81 252.66l1.003.954-1.003-.954z"/> - <path fill="#efefef" d="M255.32 252.66l1.504 1.43-1.504-1.43z"/> - <path fill="#313931" d="M255.82 252.66l.5.477-.5-.477z"/> - <path fill="#001039" d="M256.82 252.66l.5.477-.5-.477z"/> - <path fill="#101829" d="M259.33 252.66l.5.477-.5-.477z"/> - <path d="M260.33 252.66l.5.477-.5-.477z"/> - <path fill="#210800" d="M268.85 252.66l.5.477-.5-.477z"/> - <path fill="#ce2110" d="M270.36 252.66l.5.477-.5-.477z"/> - <path fill="#292921" d="M273.36 252.66l.5.477-.5-.477z"/> - <path fill="#efefef" d="M273.86 252.66l.5.477-.5-.477z"/> - <path fill="#002984" d="M276.37 252.66l.5.477-.5-.477z"/> - <path fill="#181000" d="M276.87 252.66l.5.477-.5-.477z"/> - <path fill="#001039" d="M277.88 252.66l.5.477-.5-.477z"/> - <path fill="#9c9494" d="M294.08 252.97l.167.318-.167-.318z"/> - <path fill="#297b00" d="M294.42 252.66l.5.477-.5-.477z"/> - <path fill="#103910" d="M295.42 252.66l.5.477-.5-.477z"/> - <path fill="#efefef" d="M295.92 252.66l.5.477-.5-.477z"/> - <path fill="#dedede" d="M296.42 252.66l.5.477-.5-.477z"/> - <path fill="#185200" d="M296.93 252.66l.5.477-.5-.477z"/> - <path fill="#297b00" d="M298.43 252.66l.5.477-.5-.477z"/> - <path fill="#103900" d="M300.94 252.66l.5.477-.5-.477z"/> - <path fill="#294221" d="M303.94 252.66l.5.477-.5-.477z"/> - <path fill="#184a00" d="M304.45 252.66l.5.477-.5-.477z"/> - <path fill="#425242" d="M305.95 252.66l.5.477-.5-.477z"/> - <path fill="#63636b" d="M306.95 252.66l-1.003 1.43 1.003-1.43z"/> - <path fill="#297b00" d="M307.45 252.66l.5.477-.5-.477z"/> - <path fill="#425242" d="M309.96 252.66l.5.477-.5-.477z"/> - <path fill="#396b10" d="M223.73 253.13l.5.477-.5-.477z"/> - <path fill="#295200" d="M228.24 253.13l.5.477-.5-.477z"/> - <path fill="#397b00" d="M228.74 253.13l.5.477-.5-.477z"/> - <path fill="#314231" d="M230.75 253.13l.5.477-.5-.477z"/> - <path fill="#efefef" d="M231.25 253.13l-.5.954.5-.954z"/> - <path fill="#7b7373" d="M233.76 253.13l.5.477-.5-.477z"/> - <path fill="#428c00" d="M234.59 253.29l.334.16-.334-.16z"/> - <path fill="#7b7373" d="M235.26 253.13l.5.477-.5-.477z"/> - <path fill="#63636b" d="M236.77 253.13l-.5.954.5-.954z"/> - <path fill="#397b00" d="M237.27 253.13l.5.477-.5-.477m1.504 0l.5.477-.5-.477z"/> - <path fill="#bdbdbd" d="M239.27 253.13l.5.477-.5-.477z"/> - <path fill="#00216b" d="M251.81 253.13l.5.477-.5-.477z"/> - <path fill="#211800" d="M252.64 253.29l.334.16-.334-.16z"/> - <path fill="#313931" d="M256.32 253.13l.5.477-.5-.477z"/> - <path fill="#001039" d="M257.32 253.13l.5.477-.5-.477z"/> - <path fill="#181000" d="M259.83 253.13l.5.477-.5-.477z"/> - <path fill="#211800" d="M260.5 253.45l.167.318-.167-.318z"/> - <path fill="#bdbdbd" d="M260.83 253.13l.5.477-.5-.477z"/> - <path fill="#dedede" d="M268.35 253.13l.5.477-.5-.477z"/> - <path fill="#b51010" d="M269.85 253.13l.5.477-.5-.477z"/> - <path fill="#941808" d="M271.86 253.13l-1.003 1.43 1.003-1.43z"/> - <path fill="#211800" d="M272.36 253.13l-2.507 2.862 2.507-2.862z"/> - <path fill="#212118" d="M272.86 253.13l-.5.954.5-.954z"/> - <path fill="#cecece" d="M273.36 253.13l-1.003 1.43 1.003-1.43z"/> - <path fill="#00216b" d="M275.87 253.13l-.5.954.5-.954z"/> - <path fill="#181000" d="M276.37 253.13l.5.477-.5-.477z"/> - <path fill="#001039" d="M277.37 253.13l.5.477-.5-.477z"/> - <path fill="#cecece" d="M292.92 253.13l.5.477-.5-.477z"/> - <path fill="#8c8c8c" d="M293.42 253.13l.5.477-.5-.477z"/> - <path fill="#296300" d="M294.42 253.13l.5.477-.5-.477z"/> - <path fill="#297b00" d="M295.42 253.13l.5.477-.5-.477z"/> - <path fill="#52525a" d="M295.92 253.13l.5.477-.5-.477z"/> - <path fill="#395231" d="M296.93 253.13l.5.477-.5-.477z"/> - <path fill="#184a00" d="M298.93 253.13v1.43h.5l-.5-1.43z"/> - <path fill="#296300" d="M301.27 253.29l.334.16-.334-.16m1.17-.16l.5.478-.5-.477z"/> - <path fill="#001000" d="M303.94 253.13l.5.477-.5-.477z"/> - <path fill="#297b00" d="M304.45 253.13l.5.477-.5-.477m1.003 0l.5.477-.5-.477z"/> - <path fill="#9c9494" d="M305.95 253.13l.5.477-.5-.477z"/> - <path fill="#297b00" d="M306.95 253.13l.5.477-.5-.477z"/> - <path fill="#296300" d="M309.96 253.13l.5.477-.5-.477z"/> - <path fill="#9c9494" d="M310.46 253.13l.5.477-.5-.477z"/> - <path fill="#5a6b52" d="M223.73 253.61l.5.477-.5-.477z"/> - <path fill="#397b00" d="M226.74 253.61v.477h1.504l-1.504-.477z"/> - <path fill="#294200" d="M228.24 253.61l.5.477-.5-.477z"/> - <path fill="#295200" d="M229.75 253.61l.5.477-.5-.477z"/> - <path fill="#52525a" d="M230.25 253.61l.5.477-.5-.477z"/> - <path fill="#efefef" d="M233.26 253.61l.5.477-.5-.477z"/> - <path fill="#214210" d="M233.76 253.61l.5.477-.5-.477z"/> - <path fill="#397b00" d="M233.76 254.09v.477l1.504.477v-1.43l-1.504.476z"/> - <path fill="#5a5231" d="M235.26 253.61l.5.477-.5-.477z"/> - <path fill="#397b00" d="M236.77 253.61l.5.477-.5-.477z"/> - <path fill="#295200" d="M238.6 253.77l.334.16-.334-.16z"/> - <path fill="#dedede" d="M239.27 253.61l.5.477-.5-.477z"/> - <path fill="#424242" d="M252.31 253.61l.5.477-.5-.477z"/> - <path fill="#212118" d="M252.81 253.61l.5.477-.5-.477z"/> - <path fill="#392100" d="M253.31 253.61l2.005 1.908-2.005-1.908z"/> - <path fill="#001039" d="M253.81 253.61l.5.477-.5-.477z"/> - <path fill="#292921" d="M256.82 253.61l.5.477-.5-.477z"/> - <path fill="#001039" d="M257.82 253.61l.5.477-.5-.477z"/> - <path fill="#00216b" d="M259.83 253.61l.5.477-.5-.477z"/> - <path fill="#211810" d="M260.83 253.61l.5.477-.5-.477z"/> - <path fill="#efefef" d="M261.33 253.61l.5.477-.5-.477z"/> - <path fill="#313931" d="M268.35 253.61l.5.477-.5-.477z"/> - <path fill="#392100" d="M268.85 253.61l-.5.954.5-.954z"/> - <path fill="#631808" d="M269.35 253.61l.5.477-.5-.477z"/> - <path fill="#211800" d="M276.2 253.77l.334.16-.334-.16z"/> - <path fill="#313931" d="M276.87 253.61l.5.477-.5-.477z"/> - <path fill="#63636b" d="M292.41 253.61l.5.477-.5-.477z"/> - <path fill="#185200" d="M292.92 253.61l.5.477-.5-.477z"/> - <path fill="#297b00" d="M293.42 253.61l.5.477-.5-.477z"/> - <path fill="#295210" d="M293.92 253.61l.5.477-.5-.477z"/> - <path fill="#103900" d="M294.42 253.61l.5.477-.5-.477z"/> - <path fill="#296300" d="M295.92 253.61l.5.477-.5-.477z"/> - <path fill="#9c9494" d="M296.42 253.61l1.003.954-1.003-.954z"/> - <path fill="#8c8c8c" d="M296.93 253.61l.5.477-.5-.477z"/> - <path fill="#103900" d="M301.44 253.61l.5.477-.5-.477z"/> - <path fill="#297b00" d="M303.44 253.61l1.003.954-1.003-.954z"/> - <path fill="#184a00" d="M303.94 253.61l.5.477-.5-.477z"/> - <path fill="#214210" d="M305.45 253.61l.5.477-.5-.477z"/> - <path fill="#297b00" d="M306.45 253.61l.5.477-.5-.477m1.003 0l-3.008 1.908v.477l1.002.477 2.006-2.862z"/> - <path fill="#214210" d="M307.96 253.61l.5.477-.5-.477z"/> - <path fill="#5a6b52" d="M308.46 253.61l.5.477-.5-.477z"/> - <path fill="#214210" d="M308.96 253.61l.5.477-.5-.477z"/> - <path fill="#296300" d="M309.46 253.61l.5.477-.5-.477z"/> - <path fill="#294221" d="M310.46 253.61l-.5.954.5-.954z"/> - <path fill="#bdbdbd" d="M223.73 254.09l.5.477-.5-.477z"/> - <path fill="#295200" d="M224.23 254.09l.5.477-.5-.477z"/> - <path fill="#103900" d="M226.74 254.09l.5.477-.5-.477m1.003 0l.5.477-.5-.477z"/> - <path fill="#397b00" d="M228.74 254.09l-.5.954.5-.954z"/> - <path fill="#5a5231" d="M229.25 254.09l.5.477-.5-.477z"/> - <path fill="#bdbdbd" d="M229.75 254.09l.5.477-.5-.477z"/> - <path fill="#9c9494" d="M233.26 254.09l.5.477-.5-.477z"/> - <path fill="#295200" d="M235.26 254.09l1.003.954-1.003-.954z"/> - <path fill="#52525a" d="M235.76 254.09l.5.477-.5-.477z"/> - <path fill="#397b00" d="M236.26 254.09l.5.477-.5-.477z"/> - <path fill="#294200" d="M237.94 254.41l.167.318-.167-.318m.836-.318v3.34h.5l-.5-3.34z"/> - <path fill-opacity=".481" fill="#8c8c8c" d="M252.31 254.09v12.88h.5l-.5-12.88z"/> - <path fill="#cecece" d="M252.81 254.09l.5.477-.5-.477z"/> - <path fill="#211810" d="M253.31 254.09l.5.477-.5-.477z"/> - <path fill="#001039" d="M254.31 254.09l.5.477-.5-.477z"/> - <path fill="#cecece" d="M256.82 254.09l1.504 1.43-1.504-1.43z"/> - <path fill="#212118" d="M257.32 254.09l.5.477-.5-.477z"/> - <path fill="#00215a" d="M258.32 254.09l.5.477-.5-.477z"/> - <path fill="#001039" d="M260.33 254.09l.5.477-.5-.477z"/> - <path fill="#392100" d="M260.83 254.09l1.003.954-1.003-.954z"/> - <path fill="#424242" d="M261.33 254.09l.5.477-.5-.477z"/> - <path fill="#7b7373" d="M267.85 254.09l.5.477-.5-.477z"/> - <path fill="#310000" d="M268.85 254.09l.5.477-.5-.477z"/> - <path fill="#001039" d="M274.87 254.09l.5.477-.5-.477z"/> - <path fill="#392100" d="M275.37 254.09l-1.504 1.908 1.504-1.908z"/> - <path fill="#212118" d="M275.87 254.09l.5.477-.5-.477z"/> - <path fill="#ada5a5" d="M276.37 254.09l.5.477-.5-.477z"/> - <path fill="#8c8c8c" d="M276.87 254.09v12.88h.5l-.5-12.88m15.04 0l.5.477-.5-.477z"/> - <path fill="#296300" d="M292.41 254.09l.5.477-.5-.477z"/> - <path fill="#185200" d="M294.42 254.09l.5.477-.5-.477z"/> - <path fill="#296300" d="M294.92 254.09l.5.477-.5-.477z"/> - <path fill="#214210" d="M296.42 254.09l.5.477-.5-.477z"/> - <path fill="#296300" d="M297.43 254.09l.5.477-.5-.477z"/> - <path fill="#184a00" d="M301.44 254.09l.5.477-.5-.477z"/> - <path fill="#297b00" d="M301.94 254.09l-.5.954.5-.954z"/> - <path fill="#185200" d="M303.44 254.09l.5.477-.5-.477z"/> - <path fill="#314231" d="M307.45 254.09l-1.003 1.43 1.003-1.43z"/> - <path fill="#efefef" d="M307.96 254.09l-1.504 1.908 1.504-1.908z"/> - <path fill="#bdbdbd" d="M309.46 254.09l.5.477-.5-.477z"/> - <path fill="#185200" d="M310.46 254.09l.5.477-.5-.477z"/> - <path fill="#ada5a5" d="M310.96 254.09l.5.477-.5-.477z"/> - <path fill="#63636b" d="M224.23 254.56l.5.477-.5-.477z"/> - <path fill="#295200" d="M226.74 254.56l.5.477-.5-.477z"/> - <path fill="#397b00" d="M227.24 254.56l.5.477-.5-.477z"/> - <path fill="#63636b" d="M228.74 254.56l-.5.954.5-.954z"/> - <path fill="#7b7373" d="M229.25 254.56l.5.477-.5-.477z"/> - <path fill="#8c8c8c" d="M229.75 254.56l.5.477-.5-.477z"/> - <path fill="#efefef" d="M230.25 254.56l.5.477-.5-.477m2.507 0l.5.477-.5-.477z"/> - <path fill="#214210" d="M233.26 254.56l.5.477-.5-.477z"/> - <path fill="#efefef" d="M253.31 254.56l1.003.954-1.003-.954z"/> - <path fill="#313931" d="M253.81 254.56l.5.477-.5-.477z"/> - <path d="M254.81 254.56l.5.477-.5-.477z"/> - <path fill="#efefef" d="M255.32 254.56l.5.477-.5-.477z"/> - <path fill="#212118" d="M257.82 254.56l1.003.954-1.003-.954z"/> - <path fill="#211800" d="M258.32 254.56l2.005 2.385-2.005-2.385z"/> - <path fill="#00216b" d="M258.82 254.56l.5.477-.5-.477z"/> - <path fill="#00184a" d="M260.33 254.56v1.43h.5l-.5-1.43z"/> - <path fill="#313931" d="M260.83 254.56l.5.477-.5-.477z"/> - <path fill="#8c8c8c" d="M261.83 254.56l.5.477-.5-.477z"/> - <path fill="#bdbdbd" d="M267.35 254.56l.5.477-.5-.477z"/> - <path fill="#211800" d="M268.02 254.88l.167.318-.167-.318z"/> - <path fill="#211810" d="M268.35 254.56l.5.477-.5-.477z"/> - <path fill="#b51010" d="M270.36 254.56l.5.477-.5-.477z"/> - <path fill="#9c9494" d="M271.86 254.56l-1.003 1.43 1.003-1.43z"/> - <path fill="#efefef" d="M273.86 254.56l-.5.954.5-.954z"/> - <path fill="#292921" d="M274.37 254.56l.5.477-.5-.477z"/> - <path fill="#211810" d="M275.37 254.56l.5.477-.5-.477z"/> - <path fill="#cecece" d="M275.87 254.56l.5.477-.5-.477z"/> - <path fill="#bdbdbd" d="M291.41 254.56l.5.477-.5-.477z"/> - <path fill="#185200" d="M291.91 254.56l.5.477-.5-.477z"/> - <path fill="#103900" d="M294.92 254.56l1.504 1.43-1.504-1.43z"/> - <path fill="#297b00" d="M295.42 254.56l.5.477-.5-.477m1.003 0l.5.477-.5-.477z"/> - <path fill="#314231" d="M296.93 254.56l.5.477-.5-.477z"/> - <path fill="#185200" d="M297.43 254.56l.5.477-.5-.477m1.504 0l.5.477-.5-.477z"/> - <path fill="#297b00" d="M299.43 254.56l.5.477-.5-.477z"/> - <path fill="#296300" d="M301.94 254.56l.5.477-.5-.477z"/> - <path fill="#103900" d="M303.44 254.56l.5.477-.5-.477z"/> - <path fill="#185200" d="M304.95 254.56l.5.477-.5-.477z"/> - <path fill="#8c8c8c" d="M310.46 254.56l.5.477-.5-.477z"/> - <path fill="#63636b" d="M310.96 254.56l.5.477-.5-.477z"/> - <path fill="#dedede" d="M224.23 255.04l.5.477-.5-.477z"/> - <path fill="#294200" d="M224.73 255.04l.5.477-.5-.477z"/> - <path fill="#397b00" d="M226.57 255.2l.334.16-.334-.16z"/> - <path fill="#295200" d="M227.74 255.04l.5.477-.5-.477z"/> - <path fill="#6b735a" d="M229.25 255.04l.5.477-.5-.477z"/> - <path fill="#295200" d="M229.75 255.04l.5.477-.5-.477z"/> - <path fill="#396b10" d="M230.25 255.04l.5.477-.5-.477z"/> - <path fill="#7b7373" d="M230.75 255.04l.5.477-.5-.477z"/> - <path fill="#efefef" d="M231.25 255.04l.5.477-.5-.477z"/> - <path fill="#8c8c8c" d="M232.76 255.04l.5.477-.5-.477z"/> - <path fill="#295200" d="M234.26 255.04l.5.477-.5-.477z"/> - <path fill="#294200" d="M235.76 255.04v4.293h.5l-.5-4.293z"/> - <path fill="#397b00" d="M237.6 255.2l.334.16-.334-.16z"/> - <path fill="#52525a" d="M254.31 255.04l.5.477-.5-.477z"/> - <path fill="#211810" d="M255.32 255.04l.5.477-.5-.477z"/> - <path fill="#cecece" d="M255.82 255.04l.5.477-.5-.477z"/> - <path fill="#00216b" d="M259.33 255.04l.5.477-.5-.477z"/> - <path fill="#cecece" d="M260.83 255.04l.5.477-.5-.477z"/> - <path fill="#392121" d="M261.33 255.04l.5.477-.5-.477z"/> - <path fill="#211800" d="M261.83 255.04l.5.477-.5-.477z"/> - <path fill="#cecece" d="M262.33 255.04l.5.477-.5-.477z"/> - <path fill="#efefef" d="M266.85 255.04l.5.477-.5-.477z"/> - <path fill="#211810" d="M267.35 255.04l.5.477-.5-.477z"/> - <path fill="#ada5a5" d="M268.35 255.04l.5.477-.5-.477z"/> - <path fill="#b51010" d="M269.85 255.04l.5.477-.5-.477z"/> - <path fill="#313931" d="M273.86 255.04l.5.477-.5-.477m1.003 0l.5.477-.5-.477z"/> - <path fill="#efefef" d="M275.37 255.04l-.5.954.5-.954z"/> - <path fill="#294221" d="M291.41 255.04l.5.477-.5-.477z"/> - <path fill="#297b00" d="M292.41 255.04l.5.477-.5-.477z"/> - <path fill="#185200" d="M292.92 255.04l.5.477-.5-.477z"/> - <path fill="#184a00" d="M293.42 255.04l.5.477-.5-.477z"/> - <path fill="#297b00" d="M295.92 255.04l.5.477-.5-.477z"/> - <path fill="#296300" d="M296.93 255.04l.5.477-.5-.477z"/> - <path fill="#103900" d="M297.43 255.04l.5.477-.5-.477z"/> - <path fill="#296300" d="M299.27 255.2l.334.16-.334-.16z"/> - <path fill="#184a00" d="M301.94 255.04l.5.477-.5-.477z"/> - <path fill="#297b00" d="M302.94 255.04l.5.477-.5-.477z"/> - <path fill="#185200" d="M303.44 255.04l.5.477-.5-.477z"/> - <path fill="#103900" d="M304.95 255.04l.5.477-.5-.477z"/> - <path fill="#9c9494" d="M308.12 255.36l.167.318-.167-.318z"/> - <path fill="#63636b" d="M224.73 255.52l.5.477-.5-.477z"/> - <path fill="#294200" d="M226.4 255.84l.167.318-.167-.318z"/> - <path fill="#8c8c8c" d="M227.74 255.52l.5.477-.5-.477m1.67.318l.168.318-.167-.318z"/> - <path fill="#397b00" d="M230.08 255.68l.334.16-.334-.16z"/> - <path fill="#428c00" d="M230.75 255.52l.5 4.293h.503l-1.003-4.293z"/> - <path fill="#315221" d="M231.25 255.52l.5.477-.5-.477z"/> - <path fill="#cecece" d="M231.75 255.52l.5.477-.5-.477z"/> - <path fill="#dedede" d="M232.25 255.52l.5.477-.5-.477z"/> - <path fill="#63636b" d="M254.81 255.52l.5.477-.5-.477z"/> - <path fill="#211800" d="M255.32 255.52l1.504.954v-.477l-1.504-.477z"/> - <path fill="#212118" d="M255.82 255.52l.5.477-.5-.477z"/> - <path fill="#9c9494" d="M258.32 255.52l.5.477-.5-.477z"/> - <path fill="#002984" d="M259.83 255.52l.5.477-.5-.477z"/> - <path fill="#8c8c8c" d="M261.33 255.52l.5.477-.5-.477z"/> - <path fill="#392100" d="M261.83 255.52l1.504 1.43-1.504-1.43z"/> - <path fill="#313931" d="M262.33 255.52l.5.477-.5-.477z"/> - <path fill="#efefef" d="M262.84 255.52l.5.477-.5-.477z"/> - <path fill="#424242" d="M266.85 255.52l.5.477-.5-.477z"/> - <path fill="#392100" d="M267.35 255.52l.5.477-.5-.477z"/> - <path fill="#7b7373" d="M267.85 255.52l.5.477-.5-.477z"/> - <path fill="#b51010" d="M269.35 255.52l.5.477-.5-.477z"/> - <path fill="#cecece" d="M272.86 255.52l.5.477-.5-.477z"/> - <path fill="#211810" d="M273.36 255.52l.5.477-.5-.477z"/> - <path fill="#52525a" d="M274.37 255.52l.5.477-.5-.477z"/> - <path fill="#8c8c8c" d="M290.91 255.52l.5.477-.5-.477z"/> - <path fill="#297b00" d="M291.41 255.52l.5.477-.5-.477z"/> - <path fill="#185200" d="M291.91 255.52l.5.477-.5-.477z"/> - <path fill="#63636b" d="M292.41 255.52l.5.477-.5-.477z"/> - <path fill="#dedede" d="M292.92 255.52l.5.477-.5-.477z"/> - <path fill="#cecece" d="M293.42 255.52l.5.477-.5-.477z"/> - <path fill="#214210" d="M293.92 255.52l.5.477-.5-.477z"/> - <path fill="#297b00" d="M295.42 255.52l.5.477-.5-.477z"/> - <path fill="#184a00" d="M297.43 255.52l.5.477-.5-.477z"/> - <path fill="#297b00" d="M298.93 255.52l.5.477-.5-.477z"/> - <path fill="#185200" d="M299.43 255.52l.5.477-.5-.477z"/> - <path fill="#103900" d="M301.94 255.52l.5.477-.5-.477z"/> - <path fill="#184a00" d="M302.94 255.52l.5.477-.5-.477z"/> - <path fill="#185200" d="M304.95 255.52l.5.477-.5-.477z"/> - <path fill="#293129" d="M305.95 255.52l.5.477-.5-.477z"/> - <path fill="#cecece" d="M306.95 255.52l.5.477-.5-.477z"/> - <path fill="#292921" d="M307.45 255.52l.5.477-.5-.477z"/> - <path fill="#424242" d="M222.73 256l1.003.954-1.003-.954z"/> - <path fill="#dedede" d="M223.23 256l.5.477-.5-.477z"/> - <path fill="#bdbdbd" d="M224.73 256l.5.477-.5-.477z"/> - <path fill="#292100" d="M225.24 256l.5.477-.5-.477z"/> - <path fill="#295200" d="M225.74 256l.5.477-.5-.477z"/> - <path fill="#315221" d="M227.24 256l.5.477-.5-.477z"/> - <path fill="#428c00" d="M229.75 256c-.107 2.545-.633 4.77 2.005 6.2l-2.005-6.2z"/> - <path fill="#294200" d="M230.42 256.31l.167.318-.167-.318z"/> - <path fill="#214210" d="M231.75 256l.5.477-.5-.477z"/> - <path fill="#424242" d="M232.25 256l.5.477-.5-.477z"/> - <path fill="#9c9494" d="M255.32 256l.5.477-.5-.477m1.504 0l.5.477-.5-.477z"/> - <path fill="#8c8c8c" d="M258.82 256l.5.477-.5-.477z"/> - <path fill="#181000" d="M259.83 256l1.003.954-1.003-.954z"/> - <path fill="#001039" d="M260.33 256l.5.477-.5-.477z"/> - <path fill="#52525a" d="M261.83 256l.5.477-.5-.477z"/> - <path fill="#63636b" d="M262.84 256l.5.477-.5-.477z"/> - <path fill="#8c8c8c" d="M266.34 256l.5.477-.5-.477z"/> - <path fill="#211800" d="M266.85 256l.5.477-.5-.477z"/> - <path d="M267.35 256l.5.477-.5-.477z"/> - <path fill="#8c8c8c" d="M267.85 256l.5.477-.5-.477z"/> - <path fill="#bdbdbd" d="M268.35 256l-.5 1.43.5-1.43z"/> - <path fill="#5a1008" d="M268.85 256l.5.477-.5-.477z"/> - <path fill="#210800" d="M269.35 256l.5.477-.5-.477z"/> - <path fill="#392100" d="M269.85 256l-.5.954.5-.954z"/> - <path fill="#63636b" d="M270.36 256l.5.477-.5-.477z"/> - <path fill="#ada5a5" d="M272.36 256l.5.477-.5-.477z"/> - <path fill="#212118" d="M272.86 256l.5.477-.5-.477z"/> - <path fill="#211800" d="M273.36 256l-1.003 1.43 1.003-1.43z"/> - <path fill="#63636b" d="M273.86 256l.5.477-.5-.477z"/> - <path fill="#efefef" d="M290.41 256l.5.477-.5-.477z"/> - <path fill="#214210" d="M291.24 256.15l.334.16-.334-.16z"/> - <path fill="#9c9494" d="M291.91 256l.5.477-.5-.477z"/> - <path fill="#ada5a5" d="M293.92 256l.5.477-.5-.477z"/> - <path fill="#296300" d="M294.42 256l.5.477-.5-.477m1.504 0l.5.477-.5-.477z"/> - <path fill="#185200" d="M296.42 256l.5.477-.5-.477m1.003 0l1.002.954-1.002-.954z"/> - <path fill="#297b00" d="M297.93 256l.5.477-.5-.477z"/> - <path fill="#184a00" d="M299.43 256l.5.477-.5-.477m2.507 0l1.002.954-1.003-.954z"/> - <path fill="#103900" d="M302.94 256l.5.477-.5-.477z"/> - <path fill="#184a00" d="M304.45 256l1.003.954-1.003-.954z"/> - <path fill="#214210" d="M305.45 256l.5.477-.5-.477z"/> - <path fill="#cecece" d="M305.95 256l-.5.954.5-.954z"/> - <path fill="#9c9494" d="M306.45 256l.5.477-.5-.477z"/> - <path fill="#184a00" d="M306.95 256l.5.477-.5-.477z"/> - <path fill="#294221" d="M307.45 256l.5.477-.5-.477z"/> - <path fill="#dedede" d="M309.96 256l.5.477-.5-.477z"/> - <path fill="#9c9494" d="M310.46 256l.5.477-.5-.477z"/> - <path fill="#214210" d="M222.73 256.47l.5.477-.5-.477z"/> - <path fill="#efefef" d="M223.73 256.47l.5.477-.5-.477z"/> - <path fill="#5a1010" d="M224.73 256.47l.5.477-.5-.477z"/> - <path fill="#ce2110" d="M225.24 256.47l.5.477-.5-.477z"/> - <path fill="#bd2110" d="M225.74 256.47l.5.477-.5-.477z"/> - <path fill="#311000" d="M226.24 256.47l.5.477-.5-.477z"/> - <path fill="#397b00" d="M226.74 256.47l.5.477-.5-.477z"/> - <path fill="#9c9494" d="M227.24 256.47l.5.477-.5-.477z"/> - <path fill="#5a6b52" d="M229.25 256.47l.5.477-.5-.477z"/> - <path fill="#295200" d="M232.25 256.47l-.5.954.5-.954m2.005 0l.502.477-.502-.477z"/> - <path fill="#ada5a5" d="M255.82 256.47l.5.477-.5-.477z"/> - <path fill="#212118" d="M256.32 256.47l.5.477-.5-.477z"/> - <path fill="#392100" d="M256.82 256.47l2.005 1.908-2.005-1.908z"/> - <path fill="#63636b" d="M257.32 256.47l.5.477-.5-.477z"/> - <path fill="#bdbdbd" d="M258.99 256.79l.167.318-.167-.318z"/> - <path fill="#520808" d="M259.33 256.47l.5.477-.5-.477z"/> - <path fill="#cecece" d="M260.83 256.47l.5.477-.5-.477z"/> - <path fill="#efefef" d="M261.83 256.47l.5.477-.5-.477z"/> - <path fill="#392121" d="M262.33 256.47l.5.477-.5-.477z"/> - <path fill="#ada5a5" d="M263.34 256.47l.5.477-.5-.477z"/> - <path fill="#9c7b08" d="M265.34 256.47l.5.477-.5-.477z"/> - <path fill="#424242" d="M265.84 256.47l.5.477-.5-.477z"/> - <path fill="#9c9494" d="M266.34 256.47l.5.477-.5-.477z"/> - <path fill="#cecece" d="M266.85 256.47l.5.477-.5-.477z"/> - <path d="M268.85 256.47l.5.477-.5-.477z"/> - <path fill="#bdbdbd" d="M270.52 256.79l.167.318-.167-.318z"/> - <path fill="#9c9494" d="M271.86 256.47l.5.477-.5-.477m1.504 0l.5.477-.5-.477z"/> - <path fill="#63636b" d="M290.41 256.47l.5.477-.5-.477z"/> - <path fill="#425242" d="M290.91 256.47l.5.477-.5-.477z"/> - <path fill="#cecece" d="M291.41 256.47l.5.477-.5-.477z"/> - <path fill="#5a6b52" d="M294.42 256.47l.5.477-.5-.477z"/> - <path fill="#297b00" d="M294.92 256.47l.5.477-.5-.477z"/> - <path fill="#184a00" d="M296.42 256.47l.5.477-.5-.477z"/> - <path fill="#297b00" d="M296.42 257.43l1.504-.477-1.504.477z"/> - <path fill="#103900" d="M299.43 256.47l.5.477-.5-.477z"/> - <path fill="#296300" d="M301.94 256.47v1.43h.5l-.5-1.43m1.003 0l.5.477-.5-.477z"/> - <path fill="#103900" d="M304.45 256.47l-.5 1.43.5-1.43z"/> - <path fill="#8c8c8c" d="M305.95 256.47l.5.477-.5-.477z"/> - <path fill="#185200" d="M306.45 256.47l-.5.954.5-.954z"/> - <path fill="#296300" d="M306.95 256.47l.5.477-.5-.477z"/> - <path fill="#9c9494" d="M307.45 256.47l.5.477-.5-.477z"/> - <path fill="#bdbdbd" d="M308.96 256.47l.5.477-.5-.477z"/> - <path fill="#424242" d="M309.46 256.47l.5.477-.5-.477z"/> - <path fill="#313931" d="M309.96 256.47l.5.477-.5-.477z"/> - <path fill="#efefef" d="M310.46 256.47l-1.003 1.43 1.003-1.43z"/> - <path fill="#295200" d="M222.73 256.95l.5.477-.5-.477z"/> - <path fill="#397b00" d="M223.23 256.95l.5.477-.5-.477z"/> - <path fill="#314231" d="M223.73 256.95l.5.477-.5-.477z"/> - <path fill="#8c8c8c" d="M224.23 256.95l.5.477-.5-.477z"/> - <path fill="#ad1810" d="M224.73 256.95l.5.477-.5-.477z"/> - <path fill="#941808" d="M226.24 256.95l.5.477-.5-.477z"/> - <path fill="#313931" d="M226.74 256.95l.5.477-.5-.477z"/> - <path fill="#526b42" d="M229.25 256.95l.5.477-.5-.477z"/> - <path fill="#397b00" d="M230.58 257.11l.334.16-.334-.16m1.67-.16l.502.478-.5-.477z"/> - <path fill="#295200" d="M233.76 256.95l.5.477-.5-.477z"/> - <path fill="#524242" d="M256.32 256.95l.5.477-.5-.477z"/> - <path fill="#210800" d="M256.82 256.95l.5.477-.5-.477z"/> - <path fill="#424242" d="M257.82 256.95l.5.477-.5-.477z"/> - <path fill="#efefef" d="M258.32 256.95l.5.477-.5-.477z"/> - <path fill="#ad1810" d="M259.49 257.27l.167.318-.167-.318z"/> - <path fill="#5a1008" d="M259.83 256.95l1.003.954-1.003-.954z"/> - <path fill="#392100" d="M260.33 256.95l1.003.954-1.003-.954z"/> - <path fill="#211810" d="M260.83 256.95l.5.477-.5-.477z"/> - <path fill="#dedede" d="M261.33 256.95l.5.477-.5-.477z"/> - <path fill="#bdbdbd" d="M262.33 256.95l-.5.954.5-.954z"/> - <path fill="#211800" d="M262.84 256.95l.5.477-.5-.477z"/> - <path fill="#212118" d="M263.34 256.95l.5.477-.5-.477z"/> - <path fill="#6b5a10" d="M264.84 256.95l.5.477-.5-.477z"/> - <path fill="#9c9494" d="M265.34 256.95l.5.477-.5-.477z"/> - <path fill="#bdbdbd" d="M266.34 256.95l.5.477-.5-.477z"/> - <path fill="#7b7373" d="M266.85 256.95l.5.477-.5-.477z"/> - <path fill="#8c8c8c" d="M267.35 256.95l.5.477-.5-.477z"/> - <path fill="#dedede" d="M268.35 256.95l.5.477-.5-.477z"/> - <path fill="#313931" d="M268.85 256.95l.5.477-.5-.477z"/> - <path fill="#de2110" d="M270.02 257.27l.167.318-.167-.318z"/> - <path fill="#63636b" d="M271.36 256.95l.5.477-.5-.477z"/> - <path fill="#392100" d="M271.86 256.95l-1.504 1.908 1.504-1.908z"/> - <path fill="#524242" d="M272.86 256.95l.5.477-.5-.477z"/> - <path fill="#9c9494" d="M290.41 256.95l.5.477-.5-.477z"/> - <path fill="#bdbdbd" d="M292.92 256.95l.5.477-.5-.477z"/> - <path fill="#8c8c8c" d="M293.42 256.95l.5.477-.5-.477z"/> - <path fill="#dedede" d="M294.42 256.95l-.5.954.5-.954z"/> - <path fill="#214210" d="M294.92 256.95l.5.477-.5-.477z"/> - <path fill="#103900" d="M296.93 256.95l.5.477-.5-.477z"/> - <path fill="#319400" d="M297.43 256.95l.5.477-.5-.477z"/> - <path fill="#103900" d="M297.93 256.95l-.5 1.43.5-1.43z"/> - <path fill="#184a00" d="M299.43 256.95l.5.477-.5-.477z"/> - <path fill="#082108" d="M302.44 256.95l.5.477-.5-.477z"/> - <path fill="#297b00" d="M303.94 256.95l.5.477-.5-.477z"/> - <path fill="#8c8c8c" d="M305.11 257.27l.167.318-.167-.318z"/> - <path fill="#63636b" d="M305.45 256.95l.5.477-.5-.477z"/> - <path fill="#319400" d="M306.45 256.95l-3.51 5.247 3.51-5.247z"/> - <path fill="#294221" d="M306.95 256.95l.5.477-.5-.477z"/> - <path fill="#bdbdbd" d="M307.96 256.95l.5.477-.5-.477z"/> - <path fill="#425242" d="M308.46 256.95l.5.477-.5-.477z"/> - <path fill="#184a00" d="M308.96 256.95l.5.477-.5-.477z"/> - <path fill="#314231" d="M309.46 256.95l.5.477-.5-.477z"/> - <path fill="#294200" d="M222.73 257.43v.954l1.003-.954h-1.003z"/> - <path fill="#428c00" d="M223.73 257.43l1.003 1.908-1.504-.954c.49 1.924 1.006 3.09 3.007 3.816v.477l-2.006-.477 1.004 1.43-1.504-.476 4.512 4.294.5-1.908 1.505.954-3.008-2.863v-.476l1.503.477c-.73-2.894-2.22-4.817-5.013-6.2z"/> - <path fill="#294200" d="M224.23 257.43l.5.477-.5-.477z"/> - <path fill="#5a1008" d="M224.73 257.43l.5.477-.5-.477z"/> - <path fill="#ce2110" d="M225.24 257.43l.5.477-.5-.477z"/> - <path fill="#5a1008" d="M226.24 257.43l1.003.954-1.003-.954z"/> - <path fill="#7b7373" d="M226.74 257.43l.5.477-.5-.477z"/> - <path fill="#bdbdbd" d="M227.24 257.43l.5.477-.5-.477z"/> - <path fill="#294200" d="M229.25 257.43l.5.477-.5-.477z"/> - <path fill="#295200" d="M230.75 257.43l.5.477-.5-.477z"/> - <path fill="#294200" d="M231.75 257.43v4.293h.5l-.5-4.293m2.172.318l.168.318-.168-.318z"/> - <path fill="#295200" d="M237.27 257.43l.5.477-.5-.477z"/> - <path fill="#527b31" d="M238.77 257.43l.5.477-.5-.477z"/> - <path fill-opacity=".575" fill="#734a42" d="M256.32 257.43v10.495h.5l-.5-10.495z"/> - <path fill="#ce2110" d="M256.82 257.43l1.003.954-1.003-.954z"/> - <path fill="#311000" d="M257.32 257.43l.5.477-.5-.477z"/> - <path fill="#313931" d="M258.32 257.43l.5.477-.5-.477z"/> - <path fill="#9c9494" d="M258.82 257.43l.5.477-.5-.477z"/> - <path fill="#de2110" d="M259.83 257.43v.954h1.003l-1.003-.954z"/> - <path fill="#313931" d="M261.33 257.43l.5.477-.5-.477z"/> - <path fill="#8c8c8c" d="M262.33 257.43l.5.477-.5-.477z"/> - <path fill="#52525a" d="M262.84 257.43l.5.477-.5-.477z"/> - <path fill="#392121" d="M263.34 257.43l.5.477-.5-.477z"/> - <path fill="#423100" d="M263.84 257.43l.5.477-.5-.477z"/> - <path fill="#5a5231" d="M264.34 257.43l.5.477-.5-.477z"/> - <path fill="#cecece" d="M264.84 257.43l.5.477-.5-.477z"/> - <path fill="#dedede" d="M265.34 257.43l.5.477-.5-.477z"/> - <path fill="#8c8c8c" d="M265.84 257.43l-.5.954.5-.954z"/> - <path fill="#9c9494" d="M266.34 257.43l.5.477-.5-.477z"/> - <path fill="#8c8c8c" d="M268.85 257.43l-2.005.954v.477l2.506-.953-.5-.477z"/> - <path fill="#ada5a5" d="M270.36 257.43l.5.477-.5-.477z"/> - <path fill="#424242" d="M270.86 257.43l.5.477-.5-.477z"/> - <path fill="#210800" d="M271.86 257.43l.5.477-.5-.477z"/> - <path fill="#b51010" d="M272.36 257.43l.5.477-.5-.477z"/> - <path fill="#734a42" d="M272.86 257.43l-.5 10.972h.5c.905-2.913 1.247-8.143 0-10.972z"/> - <path d="M293.42 257.43l.5.477-.5-.477z"/> - <path fill="#8c8c8c" d="M294.92 257.43l.5.477-.5-.477z"/> - <path fill="#297b00" d="M295.42 257.43l.5.477-.5-.477z"/> - <path fill="#296300" d="M296.93 257.43l.5.477-.5-.477z"/> - <path fill="#185200" d="M297.43 257.43l.5.477-.5-.477z"/> - <path fill="#296300" d="M299.77 257.59l.334.16-.334-.16z"/> - <path fill="#103900" d="M302.44 257.43l.5.477-.5-.477z"/> - <path fill="#52525a" d="M304.45 257.43l.5.477-.5-.477z"/> - <path fill="#296300" d="M305.45 257.43l.5.477-.5-.477m1.003 0l.5.477-.5-.477z"/> - <path fill="#bdbdbd" d="M306.95 257.43l.5.477-.5-.477z"/> - <path fill="#7b7373" d="M307.45 257.43l.5.477-.5-.477z"/> - <path fill="#185200" d="M307.96 257.43l.5.477-.5-.477z"/> - <path fill="#297b00" d="M308.46 257.43l-1.003.477v.477l1.003-.954z"/> - <path fill="#52525a" d="M308.96 257.43l.5.477-.5-.477z"/> - <path fill="#397b00" d="M223.23 257.9l.5.477-.5-.477z"/> - <path fill="#295200" d="M223.73 257.9l.5.477-.5-.477z"/> - <path fill="#293100" d="M225.24 257.9l.5.477-.5-.477z"/> - <path fill="#311000" d="M225.74 257.9l.5.477-.5-.477z"/> - <path fill="#103900" d="M226.24 257.9l.5.477-.5-.477z"/> - <path fill="#941808" d="M227.24 257.9l.5.477-.5-.477z"/> - <path fill="#5a2121" d="M227.74 257.9l.5.477-.5-.477z"/> - <path fill="#cecece" d="M228.24 257.9l.5.477-.5-.477z"/> - <path fill="#dedede" d="M228.74 257.9l.5.477-.5-.477z"/> - <path fill="#295200" d="M229.25 257.9l.5.477-.5-.477z"/> - <path fill="#397b00" d="M237.1 258.06l.334.16-.334-.16z"/> - <path fill="#526b42" d="M238.77 257.9l.5.477-.5-.477z"/> - <path fill="#de2110" d="M256.82 257.9v10.018l5.515.954c-1.204-3.52-1.936-9.067-5.515-10.972z"/> - <path fill="#5a1008" d="M257.82 257.9l.5.477-.5-.477z"/> - <path fill="#100808" d="M258.82 257.9l.5.477-.5-.477z"/> - <path fill="#941808" d="M259.33 257.9l.5.477-.5-.477z"/> - <path fill="#310000" d="M260.83 257.9l.5.477-.5-.477z"/> - <path fill="#524242" d="M261.33 257.9l.5.477-.5-.477z"/> - <path fill="#ada5a5" d="M262 258.22l.167.318-.167-.318z"/> - <path fill="#efefef" d="M263.84 257.9l.5.477-.5-.477z"/> - <path fill="#7b7373" d="M264.51 258.22l.167.318-.167-.318z"/> - <path fill="#bdbdbd" d="M264.84 257.9l.5.477-.5-.477z"/> - <path fill="#dedede" d="M266.85 257.9l.5.477-.5-.477z"/> - <path fill="#bdbdbd" d="M268.85 257.9l.5.477-.5-.477z"/> - <path fill="#100808" d="M269.35 257.9l.5.477-.5-.477z"/> - <path fill="#bd2110" d="M269.85 257.9l.5.477-.5-.477z"/> - <path fill="#101810" d="M270.36 257.9l.5.477-.5-.477z"/> - <path fill="#311000" d="M271.36 257.9l.5.477-.5-.477z"/> - <path fill="#ce2110" d="M271.86 257.9l-.5.954.5-.954z"/> - <path fill="#de2110" d="M272.36 257.9l-2.005 1.43 2.005 6.203-3.51.954.502 1.908 3.51-.477-.502-10.018z"/> - <path fill="#214210" d="M293.42 257.9l.5.477-.5-.477z"/> - <path fill="#425242" d="M293.92 257.9l.5.477-.5-.477z"/> - <path fill="#395231" d="M295.42 257.9l.5.477-.5-.477z"/> - <path fill="#184a00" d="M297.93 257.9l.5.477-.5-.477z"/> - <path fill="#297b00" d="M298.43 257.9l.5.477-.5-.477z"/> - <path fill="#184a00" d="M299.93 257.9v1.43h.5l-.5-1.43z"/> - <path fill="#185200" d="M301.94 257.9l.5.477-.5-.477z"/> - <path fill="#297b00" d="M302.44 257.9l.5.477-.5-.477z"/> - <path fill="#292921" d="M303.94 257.9l.5.477-.5-.477z"/> - <path fill="#bdbdbd" d="M304.45 257.9l.5.477-.5-.477z"/> - <path fill="#184a00" d="M304.95 257.9l.5.477-.5-.477z"/> - <path fill="#102110" d="M306.45 257.9l.5.477-.5-.477z"/> - <path fill="#314231" d="M306.95 257.9l.5.477-.5-.477z"/> - <path fill="#63636b" d="M307.96 258.38v.477h1.504l-1.504-.477z"/> - <path fill="#426331" d="M222.73 258.38l.5.477-.5-.477z"/> - <path fill="#294200" d="M223.73 258.38l.5.477-.5-.477z"/> - <path fill="#397b00" d="M224.23 258.38l.5.477-.5-.477z"/> - <path fill="#295200" d="M225.74 258.38l1.504 1.43-1.504-1.43z"/> - <path fill="#211800" d="M226.24 258.38l.5.477-.5-.477z"/> - <path fill="#ce2110" d="M227.91 258.7l.167.318-.167-.318z"/> - <path fill="#7b7373" d="M228.41 258.7l.167.318-.167-.318z"/> - <path fill="#bdbdbd" d="M228.74 258.38l.5.477-.5-.477z"/> - <path fill="#397b00" d="M229.25 258.38l.5.477-.5-.477z"/> - <path fill="#295200" d="M233.76 258.38l.5.477-.5-.477z"/> - <path fill="#6b735a" d="M238.77 258.38l.5.477-.5-.477z"/> - <path fill="#631808" d="M258.32 258.38l.5.477-.5-.477z"/> - <path fill="#211800" d="M258.82 258.38l1.003.954v-.954h-1.003z"/> - <path fill="#631808" d="M259.83 258.38l.5.477-.5-.477z"/> - <path fill="#5a2121" d="M260.33 258.38l.5.477-.5-.477z"/> - <path fill="#9c9494" d="M261 258.7l.167.318-.167-.318z"/> - <path fill="#8c8c8c" d="M262.33 258.38v.477h1.504l-1.504-.477z"/> - <path fill="#bdbdbd" d="M263.84 258.38l.5.477-.5-.477z"/> - <path fill="#dedede" d="M265.84 258.38l.5.477-.5-.477z"/> - <path fill="#7b7373" d="M266.34 258.38l.5.477-.5-.477z"/> - <path fill="#efefef" d="M267.35 258.38l.5.477-.5-.477z"/> - <path fill="#313931" d="M269.35 258.38l.5.477-.5-.477z"/> - <path fill="#211800" d="M269.85 258.38l.5.477-.5-.477z"/> - <path fill="#5a1008" d="M270.86 258.38l.5.477-.5-.477z"/> - <path fill="#4a6342" d="M293.42 258.38l.5.477-.5-.477z"/> - <path fill="#296300" d="M293.92 258.38l.5.477-.5-.477z"/> - <path fill="#bdbdbd" d="M294.42 258.38l.5.477-.5-.477m1.17.318l.167.318-.167-.318z"/> - <path fill="#185200" d="M295.92 258.38l.5.477-.5-.477z"/> - <path fill="#297b00" d="M297.43 258.38l.5.477-.5-.477z"/> - <path fill="#082108" d="M297.93 258.38l.5.477-.5-.477z"/> - <path fill="#185200" d="M298.43 258.38l.5.477-.5-.477z"/> - <path fill="#184a00" d="M302.11 258.7l.167.318-.167-.318z"/> - <path fill="#296300" d="M303.44 258.38l.5.477-.5-.477z"/> - <path fill="#9c9494" d="M303.94 258.38l.5.477-.5-.477z"/> - <path fill="#314231" d="M304.45 258.38l.5.477-.5-.477z"/> - <path fill="#185200" d="M305.95 258.38l.5.477-.5-.477z"/> - <path fill="#184a00" d="M306.45 258.38l.5.477-.5-.477z"/> - <path fill="#319400" d="M306.95 258.38l-.5.954.5-.954z"/> - <path fill="#296300" d="M307.45 258.38l.5.477-.5-.477z"/> - <path fill="#efefef" d="M308.46 258.38l.5.477-.5-.477z"/> - <path fill="#ada5a5" d="M309.46 258.38l.5.477-.5-.477z"/> - <path fill="#6b735a" d="M222.73 258.86l.5.477-.5-.477z"/> - <path fill="#103900" d="M224.23 258.86l.5.477-.5-.477z"/> - <path fill="#941808" d="M226.74 258.86l.5.477-.5-.477z"/> - <path fill="#8c8c8c" d="M228.74 258.86l.5.477-.5-.477z"/> - <path fill="#397b00" d="M233.59 259.02l.334.16-.334-.16z"/> - <path fill="#8c8c8c" d="M238.77 258.86l.5.477-.5-.477z"/> - <path fill="#941808" d="M258.82 258.86l.5.477-.5-.477z"/> - <path d="M259.83 258.86l2.507 9.54c3.053-1.066 7.74-1.487 9.525-4.293l-9.024 2.863-3.008-8.11z"/> - <path fill="#ada5a5" d="M260.33 258.86l.5.477-.5-.477z"/> - <path fill="#63636b" d="M261.33 258.86l.5.477-.5-.477z"/> - <path fill="#bdbdbd" d="M261.83 258.86l.5.477-.5-.477z"/> - <path fill="#9c9494" d="M264.34 258.86l.5.477-.5-.477z"/> - <path fill="#cecece" d="M264.84 258.86l.5.477-.5-.477z"/> - <path fill="#efefef" d="M266.34 258.86l.5.477-.5-.477z"/> - <path fill="#bdbdbd" d="M268.02 259.18l.167.318-.167-.318z"/> - <path fill="#9c9494" d="M268.35 258.86l.5.477-.5-.477z"/> - <path fill="#8c8c8c" d="M269.19 259.02l.334.16-.334-.16z"/> - <path d="M269.85 258.86l.5.477-.5-.477z"/> - <path fill="#631808" d="M270.36 258.86l.5.477-.5-.477z"/> - <path fill="#6b735a" d="M293.42 258.86l.5.477-.5-.477z"/> - <path fill="#319400" d="M293.92 258.86l4.01 15.265h-.5v-.954h-.502l.5 4.294h-.5v-.954h-.5v3.816h-.503c-.042-4.86-1.967-9.208-4.512-13.357l-1.002.953v.477c3.673 3.488 4.798 10.968 5.014 15.742h-1.003l-2.004-10.018h-.5l1.503 13.357h-.503l-2.005-10.017h-.5l1.503 15.265h-.502l-1.002-12.403h-.5l1.002 12.403h-.5l-.503-6.678h-.502l.5 8.11h-.5l-.5-6.68h-.503l-1.504 9.065 5.516-.477v-.477l-3.51-.476v-.477l13.036 3.34v-.478l-6.016-1.91v-.476l9.024 1.908c-2.83-3.43-6.43-2.878-10.528-2.385v-.477l11.53.477v-.477l-8.02-1.908v-.477l8.02.477v-.477c-5.732-1.247-8.607-.53-13.034 3.34l1.002-4.772h-.5l-.502 1.432h-.502l2.507-7.156h.5l-.5 5.246 11.53-4.293v-.477l-10.527 2.862c4.018-3.14 9.828-5.807 15.04-6.2v-.478c-6 0-9.22 1.376-14.037 4.77 3.77-4.68 9.63-5.16 15.04-7.155v-.477c-6.807.51-10.042 2.052-15.542 5.724 3.402-3.234 9.21-8.877 14.54-7.632l-1.004-2.385c-4.616 1.043-8.634 3.593-12.032 6.678 2.335-3.127 10.544-11.767 14.54-11.45-4.055-3.54-11.837 7.26-14.54 9.542l11.03-11.926-9.526 8.108 10.528-13.357v-.476c-4.99 1.752-6.462 7.684-10.027 10.972l7.52-11.926c-3.35 2.3-6.083 6.67-7.018 10.495-2.31.276-1.505 3.916-1.505 5.724h-.502c0-5.8-.7-12.852-4.512-17.65z"/> - <path fill="#314231" d="M294.42 258.86l.5.477-.5-.477z"/> - <path fill="#8c8c8c" d="M294.92 258.86l.5.477-.5-.477z"/> - <path fill="#6b735a" d="M295.92 258.86l.5.477-.5-.477z"/> - <path fill="#184a00" d="M297.93 258.86l.5.477-.5-.477z"/> - <path fill="#103900" d="M298.43 258.86l.5.477-.5-.477m5.013 0l.502.477-.502-.477z"/> - <path fill="#63636b" d="M303.94 258.86l.5.477-.5-.477z"/> - <path fill="#297b00" d="M304.45 258.86l.5.477-.5-.477m1.003 0l1.002.954-1.002-.954z"/> - <path fill="#103900" d="M305.95 258.86l.5.477-.5-.477z"/> - <path fill="#185200" d="M306.95 258.86l-3.008 2.385v.477l3.008-2.862z"/> - <path fill="#8c8c8c" d="M307.45 258.86l-.5.954.5-.954z"/> - <path fill="#ada5a5" d="M307.96 258.86l.5.477-.5-.477z"/> - <path fill="#102110" d="M308.46 258.86l.5.477-.5-.477z"/> - <path fill="#7b7373" d="M308.96 258.86l.5.477-.5-.477z"/> - <path fill="#9c9494" d="M222.73 259.33l.5.477-.5-.477z"/> - <path fill="#397b00" d="M223.23 259.33l.5.477-.5-.477z"/> - <path fill="#103900" d="M224.73 259.33l1.504 1.43-1.504-1.43z"/> - <path fill="#5a1008" d="M227.24 259.33l.5.477-.5-.477z"/> - <path fill="#733939" d="M227.74 259.33l.5.477-.5-.477z"/> - <path fill="#dedede" d="M228.24 259.33l.5.477-.5-.477z"/> - <path fill="#9c9494" d="M228.74 259.33l.5.477-.5-.477z"/> - <path fill="#295200" d="M230.75 259.33l1.003.954-1.003-.954z"/> - <path fill="#294200" d="M233.26 259.33l.5.477-.5-.477z"/> - <path fill="#397b00" d="M235.76 259.33l.5.477-.5-.477m2.507 0l.5.477-.5-.477z"/> - <path fill="#bdbdbd" d="M238.77 259.33l.5.477-.5-.477z"/> - <path fill="#100808" d="M259.33 259.33l.5.477-.5-.477z"/> - <path fill="#63636b" d="M260.33 259.33l.5.477-.5-.477z"/> - <path fill="#cecece" d="M262.33 259.33l.5.477-.5-.477z"/> - <path fill="#8c8c8c" d="M262.84 259.33v.477h1.504l-1.504-.477z"/> - <path fill="#efefef" d="M264.34 259.33l.5.477-.5-.477z"/> - <path fill="#dedede" d="M266.34 259.33l.5.477-.5-.477z"/> - <path fill="#7b7373" d="M267.18 259.49l.334.16-.334-.16z"/> - <path fill="#dedede" d="M268.35 259.33l.5.477-.5-.477m1.003 0l.5.477-.5-.477z"/> - <path fill="#210800" d="M269.85 259.33l.5.477-.5-.477z"/> - <path fill="#bdbdbd" d="M292.41 259.33l.5.477-.5-.477z"/> - <path fill="#efefef" d="M292.92 259.33l.5.477-.5-.477z"/> - <path fill="#8c8c8c" d="M293.42 259.33l-.5.954.5-.954z"/> - <path fill="#185200" d="M294.42 259.33l.5.477-.5-.477z"/> - <path fill="#7b7373" d="M294.92 259.33l.5.477-.5-.477z"/> - <path fill="#292921" d="M295.42 259.33l.5.477-.5-.477z"/> - <path fill="#cecece" d="M295.92 259.33l.5.477-.5-.477z"/> - <path fill="#185200" d="M296.42 259.33l.5.477-.5-.477z"/> - <path fill="#297b00" d="M297.93 259.33l.5.477-.5-.477z"/> - <path fill="#082108" d="M298.43 259.33l.5.477-.5-.477z"/> - <path fill="#185200" d="M299.93 259.33l1.003.954-1.003-.954z"/> - <path fill="#297b00" d="M300.44 259.33l.5.477-.5-.477z"/> - <path fill="#296300" d="M301.77 259.49l.334.16-.334-.16z"/> - <path fill="#102110" d="M303.44 259.33l.5.477-.5-.477z"/> - <path fill="#296300" d="M303.94 259.33l.5.477-.5-.477z"/> - <path fill="#184a00" d="M305.45 259.33l.5.477-.5-.477z"/> - <path fill="#425242" d="M307.45 259.33l.5.477-.5-.477z"/> - <path fill="#185200" d="M307.96 259.33l.5.477-.5-.477z"/> - <path fill="#314231" d="M308.46 259.33l.5.477-.5-.477z"/> - <path fill="#efefef" d="M222.73 259.81l.5.477-.5-.477z"/> - <path fill="#295200" d="M223.23 259.81l.5.477-.5-.477z"/> - <path fill="#214210" d="M227.24 259.81l.5.477-.5-.477z"/> - <path fill="#efefef" d="M227.74 259.81l.5.477-.5-.477z"/> - <path fill="#bdbdbd" d="M228.74 259.81l.5.477-.5-.477z"/> - <path fill="#397b00" d="M229.25 259.81l.5.477-.5-.477m1.504 0l.5.477-.5-.477z"/> - <path fill="#295200" d="M233.26 259.81l.5.477-.5-.477z"/> - <path fill="#103900" d="M235.26 259.81l.5.477-.5-.477z"/> - <path fill="#397b00" d="M236.6 259.97l.334.16-.334-.16z"/> - <path fill="#315221" d="M238.27 259.81l.5.477-.5-.477z"/> - <path fill="#420000" d="M259.33 259.81l.5.477-.5-.477z"/> - <path fill="#101810" d="M260.33 259.81l.5.477-.5-.477z"/> - <path fill="#ada5a5" d="M261.33 259.81l-.5.954.5-.954z"/> - <path fill="#7b7373" d="M261.83 259.81l.5.477-.5-.477z"/> - <path fill="#9c9494" d="M262.33 259.81l.5.477-.5-.477z"/> - <path fill="#8c8c8c" d="M266.18 259.97l.334.16-.334-.16z"/> - <path fill="#efefef" d="M266.85 259.81l1.003 2.862h.5l-1.503-2.862m1.504 0l.5.477-.5-.477z"/> - <path fill="#bdbdbd" d="M269.02 260.13l.167.318-.167-.318z"/> - <path fill="#ada5a5" d="M269.35 259.81l.5.477-.5-.477z"/> - <path fill="#313931" d="M269.85 259.81l.5.477-.5-.477z"/> - <path fill="#bd2110" d="M270.36 259.81l.5.477-.5-.477z"/> - <path fill="#ada5a5" d="M292.41 259.81l.5.477-.5-.477m1.003 0l.5.477-.5-.477z"/> - <path fill="#297b00" d="M293.92 259.81l.5.477-.5-.477z"/> - <path fill="#5a6b52" d="M294.92 259.81l.5.477-.5-.477z"/> - <path fill="#103900" d="M295.42 259.81l.5.477-.5-.477z"/> - <path fill="#7b7373" d="M295.92 259.81l.5.477-.5-.477z"/> - <path fill="#6b735a" d="M296.42 259.81l.5.477-.5-.477z"/> - <path fill="#297b00" d="M296.93 259.81l.5.477-.5-.477z"/> - <path fill="#103900" d="M298.43 259.81l.5.477-.5-.477z"/> - <path fill="#297b00" d="M299.93 259.81l.5.477-.5-.477z"/> - <path fill="#184a00" d="M301.44 259.81l.5.477-.5-.477z"/> - <path fill="#297b00" d="M302.94 259.81l1.003.954-1.003-.954z"/> - <path fill="#103900" d="M303.44 259.81l.5.477-.5-.477z"/> - <path fill="#296300" d="M304.95 259.81l.5.477-.5-.477z"/> - <path fill="#313931" d="M306.45 259.81l.5.477-.5-.477z"/> - <path fill="#214210" d="M306.95 259.81l.5.477-.5-.477z"/> - <path fill="#297b00" d="M307.45 259.81l.5.477-.5-.477z"/> - <path fill="#103910" d="M307.96 259.81l.5.477-.5-.477z"/> - <path fill="#efefef" d="M308.46 259.81l.5.477-.5-.477z"/> - <path fill="#425242" d="M223.23 260.29l.5.477-.5-.477z"/> - <path fill="#63636b" d="M227.74 260.29l.5.477-.5-.477z"/> - <path fill="#dedede" d="M228.74 260.29l-.5.954.5-.954z"/> - <path fill="#396b10" d="M229.25 260.29l.5.477-.5-.477z"/> - <path fill="#397b00" d="M233.26 260.29l.5.477-.5-.477m1.003.954l1.504-.477-1.504.477z"/> - <path fill="#103900" d="M236.26 260.29l.5.477-.5-.477z"/> - <path fill="#8c8c8c" d="M238.27 260.29l.5.477-.5-.477z"/> - <path fill="#941808" d="M259.33 260.29l.5.477-.5-.477z"/> - <path fill="#cecece" d="M261.33 260.29l.5.477-.5-.477z"/> - <path fill="#dedede" d="M262.84 260.29l.5.477-.5-.477z"/> - <path fill="#ada5a5" d="M263.34 260.29l.5.477-.5-.477m1.504 0l.5.477-.5-.477z"/> - <path fill="#cecece" d="M265.34 260.29l.5.477-.5-.477z"/> - <path fill="#7b7373" d="M267.35 260.29l.5.477-.5-.477z"/> - <path fill="#8c8c8c" d="M268.18 260.45l.334.16-.334-.16z"/> - <path fill="#efefef" d="M269.35 260.29l.5.477-.5-.477z"/> - <path fill="#8c8c8c" d="M269.85 260.29l.5.477-.5-.477z"/> - <path fill="#7b1008" d="M270.36 260.29l.5.477-.5-.477z"/> - <path fill="#dedede" d="M292.41 260.29l.5.477-.5-.477z"/> - <path fill="#101810" d="M292.92 260.29l.5.477-.5-.477z"/> - <path fill="#cecece" d="M293.42 260.29l.5.477-.5-.477z"/> - <path fill="#296300" d="M293.92 260.29l.5.477-.5-.477z"/> - <path fill="#184a00" d="M294.92 260.29l.5.477-.5-.477z"/> - <path fill="#082108" d="M295.42 260.29l.5.477-.5-.477z"/> - <path fill="#185200" d="M295.92 260.29l.5.477-.5-.477z"/> - <path fill="#9c9494" d="M296.42 260.29l.5.477-.5-.477z"/> - <path fill="#184a00" d="M296.93 260.29l.5.477-.5-.477z"/> - <path fill="#296300" d="M298.76 260.45l.334.16-.334-.16z"/> - <path fill="#103900" d="M300.44 260.29l.5.477-.5-.477m1.003 0l.5.477-.5-.477m1.504 0l.5.477-.5-.477m2.005 0l.5.477-.5-.477z"/> - <path d="M305.95 260.29l.5.477-.5-.477z"/> - <path fill="#296300" d="M306.45 260.29l.5.477-.5-.477z"/> - <path fill="#184a00" d="M307.45 260.29l.5.477-.5-.477z"/> - <path fill="#cecece" d="M307.96 260.29l.5.477-.5-.477z"/> - <path fill="#dedede" d="M222.73 260.77l.5.477-.5-.477z"/> - <path fill="#bdbdbd" d="M223.23 260.77l.5.477-.5-.477z"/> - <path fill="#295200" d="M223.73 260.77l.5.477-.5-.477z"/> - <path fill="#292100" d="M226.24 260.77l.5.477-.5-.477z"/> - <path fill="#294200" d="M227.74 260.77l.5.477-.5-.477z"/> - <path fill="#8c8c8c" d="M229.25 260.77l.5.477-.5-.477z"/> - <path fill="#397b00" d="M229.75 260.77l.5.477-.5-.477z"/> - <path fill="#294200" d="M234.76 260.77l.5.477-.5-.477z"/> - <path fill="#428c00" d="M235.26 260.77l-.5.954.5-.954z"/> - <path fill="#295200" d="M235.76 260.77l.5.477-.5-.477z"/> - <path fill="#397b00" d="M236.26 260.77l.5.477-.5-.477z"/> - <path fill="#213918" d="M237.77 260.77l.5.477-.5-.477z"/> - <path fill="#efefef" d="M238.27 260.77l.5.477-.5-.477z"/> - <path fill="#ce2110" d="M259.33 260.77l.5.477-.5-.477z"/> - <path fill="#63636b" d="M260.83 260.77l.5.477-.5-.477z"/> - <path fill="#bdbdbd" d="M261.83 260.77l.5.477-.5-.477z"/> - <path fill="#8c8c8c" d="M262.67 260.92l.334.16-.334-.16z"/> - <path fill="#cecece" d="M263.34 260.77l1.504 1.43-1.504-1.43z"/> - <path fill="#8c8c8c" d="M265.34 260.77l.5.477-.5-.477z"/> - <path fill="#efefef" d="M265.84 260.77l1.003 1.43-1.003-1.43z"/> - <path fill="#8c8c8c" d="M266.68 260.92l.334.16-.334-.16z"/> - <path fill="#dedede" d="M269.35 260.77l1.003.954-1.003-.954z"/> - <path fill="#bdbdbd" d="M269.85 260.77l.5.477-.5-.477z"/> - <path fill="#210800" d="M270.36 260.77l.5.477-.5-.477z"/> - <path fill="#103910" d="M292.92 260.77l.5.477-.5-.477z"/> - <path fill="#9c9494" d="M293.42 260.77l.5.477-.5-.477z"/> - <path fill="#184a00" d="M293.92 260.77l.5.477-.5-.477z"/> - <path fill="#297b00" d="M294.92 260.77l.5.477-.5-.477z"/> - <path fill="#001000" d="M295.42 260.77l.5.477-.5-.477z"/> - <path fill="#319400" d="M295.92 260.77l.5.477-.5-.477z"/> - <path fill="#103910" d="M296.42 260.77l.5.477-.5-.477z"/> - <path fill="#425242" d="M296.93 260.77l.5.477-.5-.477z"/> - <path fill="#103900" d="M298.93 260.77l.5.477-.5-.477z"/> - <path fill="#184a00" d="M300.44 260.77l.5.477-.5-.477z"/> - <path fill="#185200" d="M301.44 260.77l.5.477-.5-.477z"/> - <path fill="#297b00" d="M302.44 260.77l1.003.954-1.003-.954z"/> - <path fill="#184a00" d="M302.94 260.77l.5.477-.5-.477z"/> - <path fill="#103900" d="M304.45 260.77l.5.477-.5-.477z"/> - <path fill="#001000" d="M305.45 260.77l-.5.954.5-.954z"/> - <path fill="#297b00" d="M305.95 260.77l.5.477-.5-.477m1.003 0l-.502.954.503-.954z"/> - <path fill="#8c8c8c" d="M307.45 260.77l.5.477-.5-.477z"/> - <path fill="#dedede" d="M307.96 260.77l.5.477-.5-.477z"/> - <path fill="#63636b" d="M308.46 260.77l.5.477-.5-.477z"/> - <path fill="#6b735a" d="M308.96 260.77l.5.477-.5-.477z"/> - <path fill="#8c9c84" d="M309.46 260.77l.5.477-.5-.477z"/> - <path fill="#8c8c8c" d="M309.96 260.77l.5.477-.5-.477z"/> - <path fill="#bdbdbd" d="M310.46 260.77l.5.477-.5-.477z"/> - <path fill="#313931" d="M222.73 261.24l.5.477-.5-.477z"/> - <path fill="#63636b" d="M223.23 261.24l.5.477-.5-.477z"/> - <path fill="#425242" d="M223.73 261.24l.5.477-.5-.477z"/> - <path fill="#397b00" d="M226.24 261.24l.5.477-.5-.477z"/> - <path fill="#294200" d="M226.74 261.24l.5.477-.5-.477z"/> - <path fill="#7b7373" d="M228.24 261.24l.5.477-.5-.477z"/> - <path fill="#425242" d="M229.75 261.24l.5.477-.5-.477z"/> - <path fill="#103900" d="M234.26 261.24l.5.477-.5-.477z"/> - <path fill="#397b00" d="M235.26 261.24l-.5.954.5-.954z"/> - <path fill="#294200" d="M235.76 261.24l.5.477-.5-.477m1.504 0l.5.477-.5-.477z"/> - <path fill="#cecece" d="M237.77 261.24l.5.477-.5-.477z"/> - <path fill="#420000" d="M259.83 261.24l.5.477-.5-.477z"/> - <path fill="#101810" d="M260.83 261.24l.5.477-.5-.477z"/> - <path fill="#dedede" d="M261.33 261.24l.5.477-.5-.477z"/> - <path fill="#9c9494" d="M261.83 261.24l.5.477-.5-.477z"/> - <path fill="#ada5a5" d="M264.34 261.24l.5.477-.5-.477z"/> - <path fill="#9c9494" d="M264.84 261.24l.5.477-.5-.477z"/> - <path fill="#7b7373" d="M265.34 261.24l.5.477-.5-.477z"/> - <path fill="#dedede" d="M266.34 261.24l.5.477-.5-.477z"/> - <path fill="#8c8c8c" d="M267.85 261.24v.477h1.504l-1.504-.477z"/> - <path fill="#ada5a5" d="M269.35 261.24l.5.477-.5-.477z"/> - <path fill="#313931" d="M270.36 261.24l.5.477-.5-.477z"/> - <path fill="#bd2110" d="M270.86 261.24l.5.477-.5-.477z"/> - <path fill="#4a6342" d="M292.92 261.24l.5.477-.5-.477z"/> - <path fill="#294221" d="M293.42 261.24l.5.477-.5-.477z"/> - <path fill="#4a6342" d="M293.92 261.24l.5.477-.5-.477z"/> - <path fill="#103900" d="M295.42 261.24l.5.477-.5-.477z"/> - <path fill="#297b00" d="M295.42 262.2l1.504-.477-1.504.477z"/> - <path fill="#313931" d="M296.93 261.24l.5.477-.5-.477z"/> - <path fill="#296300" d="M297.43 261.24l.5.477-.5-.477z"/> - <path fill="#185200" d="M298.93 261.24l1.003.954-1.003-.954z"/> - <path fill="#297b00" d="M299.43 261.24l.5.477-.5-.477z"/> - <path fill="#103900" d="M302.44 261.24l.5.477-.5-.477z"/> - <path fill="#297b00" d="M305.45 261.24l.5.477-.5-.477z"/> - <path fill="#425242" d="M306.95 261.24l.5.477-.5-.477z"/> - <path fill="#cecece" d="M307.45 261.24l.5.477-.5-.477z"/> - <path fill="#214210" d="M307.96 261.24l.5.477-.5-.477z"/> - <path fill="#297b00" d="M308.46 261.24l.5.477-.5-.477m1.504 0l.5.477-.5-.477z"/> - <path fill="#296300" d="M310.46 261.24l.5.477-.5-.477z"/> - <path fill="#184a00" d="M310.96 261.24l.5.477-.5-.477z"/> - <path fill="#425242" d="M311.46 261.24l.5.477-.5-.477z"/> - <path fill="#9c9494" d="M312.13 261.56l.167.318-.167-.318z"/> - <path fill="#8c8c8c" d="M222.73 261.72l.5.477-.5-.477z"/> - <path fill="#428c00" d="M223.23 261.72l.5.477-.5-.477z"/> - <path fill="#294200" d="M223.73 261.72l.5.477-.5-.477z"/> - <path fill="#103900" d="M224.23 261.72l.5.477-.5-.477z"/> - <path fill="#397b00" d="M224.73 261.72l.5.477-.5-.477z"/> - <path fill="#295200" d="M226.74 261.72l.5.477-.5-.477z"/> - <path fill="#397b00" d="M227.41 262.04l.167.318-.167-.318z"/> - <path fill="#315221" d="M228.24 261.72l.5.477-.5-.477z"/> - <path fill="#cecece" d="M229.75 261.72l.5.477-.5-.477z"/> - <path fill="#294200" d="M230.25 261.72l.5.477-.5-.477z"/> - <path fill="#295200" d="M231.75 261.72l.5.477-.5-.477z"/> - <path fill="#103900" d="M233.76 261.72l.5.477-.5-.477z"/> - <path fill="#294200" d="M235.26 261.72l.5.477-.5-.477z"/> - <path fill="#295200" d="M236.77 261.72l-.5.954.5-.954z"/> - <path fill="#9c9494" d="M237.27 261.72l-.5.954.5-.954z"/> - <path fill="#941808" d="M259.83 261.72l.5.477-.5-.477z"/> - <path fill="#ada5a5" d="M261.33 261.72l.5.477-.5-.477z"/> - <path fill="#dedede" d="M262.33 261.72l.5.477-.5-.477z"/> - <path fill="#7b7373" d="M263.17 261.88l.334.16-.334-.16z"/> - <path fill="#ada5a5" d="M263.84 261.72l.5.477-.5-.477m1.838.16l.334.158-.334-.16z"/> - <path fill="#8c8c8c" d="M266.85 261.72l.5.477-.5-.477z"/> - <path fill="#7b7373" d="M267.35 261.72l.5.477-.5-.477z"/> - <path fill="#8c8c8c" d="M270.36 261.72l-2.005.477v.477l2.506-.477-.5-.477z"/> - <path fill="#7b1008" d="M270.86 261.72l.5.477-.5-.477z"/> - <path fill="#8c8c8c" d="M292.92 261.72l.5.477-.5-.477z"/> - <path fill="#296300" d="M293.42 261.72l.5.477-.5-.477z"/> - <path fill="#001000" d="M293.92 261.72l.5.477-.5-.477z"/> - <path fill="#185200" d="M295.92 261.72l.5.477-.5-.477z"/> - <path fill="#319400" d="M296.42 261.72l2.005 8.11h.502c-.026-2.93-.393-5.855-2.507-8.11z"/> - <path fill="#184a00" d="M296.93 261.72l.5.477-.5-.477z"/> - <path fill="#103900" d="M297.43 261.72l.5.477-.5-.477z"/> - <path fill="#297b00" d="M298.93 261.72l.5.477-.5-.477z"/> - <path fill="#103900" d="M300.94 261.72l.5.477-.5-.477z"/> - <path fill="#184a00" d="M302.44 261.72l.5.477-.5-.477m1.504 0l.5.477-.5-.477z"/> - <path fill="#103900" d="M304.45 261.72l.5.477-.5-.477z"/> - <path fill="#297b00" d="M304.95 261.72l.5.477-.5-.477z"/> - <path fill="#214210" d="M306.45 261.72l.5.477-.5-.477z"/> - <path fill="#bdbdbd" d="M306.95 261.72l.5.477-.5-.477z"/> - <path fill="#214210" d="M307.45 261.72l.5.477-.5-.477z"/> - <path fill="#297b00" d="M308.96 261.72l.5.477-.5-.477z"/> - <path fill="#185200" d="M309.46 261.72l.5.477-.5-.477z"/> - <path fill="#184a00" d="M309.96 261.72l.5.477-.5-.477z"/> - <path fill="#295210" d="M310.46 261.72l.5.477-.5-.477z"/> - <path fill="#4a6342" d="M310.96 261.72l.5.477-.5-.477z"/> - <path fill="#5a6b52" d="M311.46 261.72l.5.477-.5-.477z"/> - <path fill="#dedede" d="M222.73 262.2l.5.477-.5-.477z"/> - <path fill="#295200" d="M223.23 262.2l1.504.954-1.504-.954m1.504 0l.5.477-.5-.477z"/> - <path fill="#103900" d="M225.24 262.2l.5.477-.5-.477z"/> - <path fill="#295200" d="M225.74 262.2l.5.477-.5-.477z"/> - <path fill="#397b00" d="M228.24 262.2l.5.477-.5-.477z"/> - <path fill="#cecece" d="M228.74 262.2l.5.477-.5-.477z"/> - <path fill="#8c8c8c" d="M230.25 262.2l.5.477-.5-.477z"/> - <path fill="#397b00" d="M230.75 262.2v.477h1.504l-1.504-.477z"/> - <path fill="#103900" d="M233.26 262.2l.5.477-.5-.477m1.504 0l.5.477-.5-.477z"/> - <path fill="#00215a" d="M245.79 262.2l.5.477-.5-.477z"/> - <path fill="#ce2110" d="M259.83 262.2l.5.477-.5-.477z"/> - <path fill="#63636b" d="M261.33 262.2l.5.477-.5-.477z"/> - <path fill="#bdbdbd" d="M261.83 262.2l.5.477-.5-.477z"/> - <path fill="#8c8c8c" d="M262.33 262.2l.5.477-.5-.477z"/> - <path fill="#efefef" d="M263 262.51l.167.318-.167-.318z"/> - <path fill="#bdbdbd" d="M265.01 262.51l.167.318-.167-.318z"/> - <path fill="#dedede" d="M265.51 262.51l.167.318-.167-.318z"/> - <path fill="#7b7373" d="M266.01 262.51l.167.318-.167-.318z"/> - <path fill="#bdbdbd" d="M266.34 262.2l.5.477-.5-.477z"/> - <path fill="#dedede" d="M266.85 262.2l.5.477-.5-.477z"/> - <path fill="#cecece" d="M270.36 262.2l.5.477-.5-.477z"/> - <path fill="#210800" d="M270.86 262.2l.5.477-.5-.477z"/> - <path fill="#520808" d="M283.39 262.2l.5.477-.5-.477z"/> - <path fill="#ad1810" d="M283.89 262.2v.477h4.512l-4.512-.477z"/> - <path fill="#520808" d="M288.4 262.2l.5.477-.5-.477z"/> - <path fill="#7b7373" d="M291.41 262.2l.5.477-.5-.477z"/> - <path fill="#ada5a5" d="M292.92 262.2l.5.477-.5-.477z"/> - <path fill="#297b00" d="M293.42 262.2l.5.477-.5-.477z"/> - <path fill="#082108" d="M293.92 262.2l.5.477-.5-.477z"/> - <path fill="#103900" d="M295.92 262.2l.5.477-.5-.477z"/> - <path fill="#297b00" d="M296.93 262.2l.5.477-.5-.477z"/> - <path fill="#001000" d="M297.43 262.2l.5.477-.5-.477z"/> - <path fill="#297b00" d="M297.93 262.2l.5.477-.5-.477z"/> - <path fill="#184a00" d="M299.6 262.51l.167.318-.167-.318z"/> - <path fill="#103900" d="M301.94 262.2l.5.477-.5-.477m1.504 0l1.003.954-1.003-.954z"/> - <path fill="#185200" d="M303.94 262.2l.5.477-.5-.477z"/> - <path fill="#296300" d="M304.45 262.2l.5.477-.5-.477z"/> - <path fill="#297b00" d="M305.95 262.2l.5.477-.5-.477z"/> - <path fill="#7b7373" d="M306.45 262.2l.5.477-.5-.477z"/> - <path fill="#314231" d="M306.95 262.2l-.5.954.5-.954z"/> - <path fill="#297b00" d="M307.45 262.2l.5.477-.5-.477z"/> - <path fill="#214210" d="M308.46 262.2l.5.477-.5-.477z"/> - <path fill="#ada5a5" d="M308.96 262.2l-.5.954.5-.954z"/> - <path fill="#5a5231" d="M223.23 262.67l.5.477-.5-.477z"/> - <path fill="#294200" d="M226.57 262.83l.334.16-.334-.16z"/> - <path fill="#8c8c8c" d="M228.74 262.67l.5.477-.5-.477z"/> - <path fill="#314231" d="M230.75 262.67l.5.477-.5-.477z"/> - <path fill="#294200" d="M231.25 262.67l.5.477-.5-.477z"/> - <path fill="#295200" d="M232.76 262.67l.5.477-.5-.477z"/> - <path fill="#397b00" d="M233.26 262.67l.5.477-.5-.477z"/> - <path fill="#103900" d="M234.26 262.67l.5.477-.5-.477z"/> - <path fill="#214210" d="M235.76 262.67l.5.477-.5-.477z"/> - <path fill="#ada5a5" d="M236.26 262.67l.5.477-.5-.477z"/> - <path fill="#7b7373" d="M240.78 262.67l.5.477-.5-.477z"/> - <path fill-opacity=".309" fill="#bdbdbd" d="M241.28 262.67v.477h4.512v7.155c2.72-4.32.175-7.63-4.512-7.632z"/> - <path fill="#8c8c8c" d="M245.79 262.67l.5.477-.5-.477z"/> - <path fill="#420000" d="M260.33 262.67l.5.477-.5-.477z"/> - <path fill="#101810" d="M261.33 262.67l.5.477-.5-.477z"/> - <path fill="#8c8c8c" d="M262.33 263.15v.477l2.507-.477h-2.507m5.013-.477l.502.477-.502-.477z"/> - <path fill="#7b7373" d="M267.85 262.67l.5.477-.5-.477z"/> - <path fill="#dedede" d="M268.35 262.67l.5.477-.5-.477z"/> - <path fill="#292921" d="M270.86 262.67l.5.477-.5-.477z"/> - <path fill="#bd2110" d="M271.36 262.67l.5.477-.5-.477z"/> - <path fill="#63636b" d="M283.39 262.67l.5.477-.5-.477z"/> - <path fill="#bdbdbd" d="M283.89 262.67v.477h4.512l-4.512-.477z"/> - <path fill="#63636b" d="M288.4 262.67l.5.477-.5-.477z"/> - <path fill="#292921" d="M291.41 262.67l.5.477-.5-.477z"/> - <path fill="#bdbdbd" d="M291.91 262.67l.5.477-.5-.477m1.17.318l.167.318-.167-.318z"/> - <path fill="#296300" d="M293.42 263.63l1.504-.477-1.504.477z"/> - <path fill="#185200" d="M295.92 262.67l1.003.954-1.003-.954z"/> - <path fill="#297b00" d="M296.42 262.67l.5.477-.5-.477z"/> - <path fill="#296300" d="M297.43 262.67l.5.477-.5-.477z"/> - <path fill="#185200" d="M297.93 262.67l.5.477-.5-.477z"/> - <path fill="#184a00" d="M301.94 262.67l.5.477-.5-.477z"/> - <path fill="#319400" d="M302.44 262.67l.5.477-.5-.477z"/> - <path fill="#184a00" d="M302.94 262.67l.5.477-.5-.477z"/> - <path fill="#214210" d="M305.95 262.67l.5.477-.5-.477z"/> - <path fill="#297b00" d="M306.95 262.67l.5.477-.5-.477z"/> - <path fill="#296300" d="M307.96 262.67l.5.477-.5-.477z"/> - <path fill="#8c8c8c" d="M223.23 263.15l.5.477-.5-.477z"/> - <path fill="#397b00" d="M224.23 263.15l.5.477-.5-.477z"/> - <path fill="#294200" d="M224.73 263.15l.5.477-.5-.477m2.84.16l.335.158-.334-.16z"/> - <path fill="#5a6b52" d="M228.74 263.15l.5.477-.5-.477z"/> - <path fill="#9c9494" d="M230.75 263.15l.5.477-.5-.477z"/> - <path fill="#292100" d="M231.25 263.15l.5.477-.5-.477z"/> - <path fill="#294200" d="M232.76 263.15l.5.477-.5-.477m1.003 0l.5.477-.5-.477z"/> - <path fill="#397b00" d="M234.26 263.15l.5.477-.5-.477z"/> - <path fill="#314231" d="M235.26 263.15l.5.477-.5-.477z"/> - <path fill="#cecece" d="M235.76 263.15l.5.477-.5-.477z"/> - <path fill="#8c8c8c" d="M240.78 263.15v3.816h.5l-.5-3.816z"/> - <path fill="#941808" d="M260.33 263.15l.5.477-.5-.477z"/> - <path fill="#ada5a5" d="M261.83 263.15l.5.477-.5-.477z"/> - <path fill="#dedede" d="M263.34 263.15l.5.477-.5-.477z"/> - <path fill="#efefef" d="M265.34 263.15l1.003.954-1.003-.954z"/> - <path fill="#bdbdbd" d="M265.84 263.15l.5.477-.5-.477z"/> - <path fill="#ada5a5" d="M266.68 263.31l.334.16-.334-.16z"/> - <path fill="#dedede" d="M267.35 263.15l.5.477-.5-.477z"/> - <path fill="#efefef" d="M268.35 263.15l.5.477-.5-.477z"/> - <path fill="#ada5a5" d="M268.85 263.15l.5.477-.5-.477z"/> - <path fill="#8c8c8c" d="M269.69 263.31l.334.16-.334-.16z"/> - <path fill="#9c9494" d="M270.36 263.15l.5.477-.5-.477z"/> - <path fill="#7b7373" d="M270.86 263.15l.5.477-.5-.477z"/> - <path fill="#7b1008" d="M271.36 263.15l.5.477-.5-.477z"/> - <path fill="#8c8c8c" d="M283.39 263.15v6.2h.5l-.5-6.2m5.013 0v7.155h.502l-.502-7.155z"/> - <path fill="#6b735a" d="M291.41 263.15l.5.477-.5-.477z"/> - <path fill="#395231" d="M291.91 263.15l.5.477-.5-.477z"/> - <path fill="#319400" d="M293.92 263.15l2.507 8.586h.5l-3.007-8.586z"/> - <path fill="#103900" d="M294.42 263.15l.5.477-.5-.477z"/> - <path fill="#297b00" d="M295.92 263.15l.5.477-.5-.477z"/> - <path fill="#184a00" d="M298.1 263.47l.167.318-.167-.318z"/> - <path fill="#296300" d="M299.43 263.15l.5.477-.5-.477z"/> - <path fill="#297b00" d="M299.93 263.15l-.5.954.5-.954z"/> - <path fill="#184a00" d="M301.44 263.15l.5.477-.5-.477z"/> - <path fill="#296300" d="M302.77 263.31l.334.16-.334-.16z"/> - <path fill="#185200" d="M303.44 263.15l.5.477-.5-.477z"/> - <path fill="#297b00" d="M305.45 263.15l.5.477-.5-.477z"/> - <path d="M305.95 263.15l.5.477-.5-.477z"/> - <path fill="#297b00" d="M306.45 263.15l.5.477-.5-.477z"/> - <path fill="#425242" d="M307.96 263.15l.5.477-.5-.477z"/> - <path fill="#efefef" d="M223.23 263.63l.5.477-.5-.477z"/> - <path fill="#315221" d="M223.73 263.63l.5.477-.5-.477z"/> - <path fill="#103900" d="M225.24 263.63l.5.477-.5-.477z"/> - <path fill="#397b00" d="M225.9 263.95l.167.318-.167-.318m1.838-.318l.502.477-.502-.478z"/> - <path fill="#103900" d="M228.24 263.63l1.003.954-1.003-.954z"/> - <path fill="#213918" d="M228.74 263.63l.5.477-.5-.477z"/> - <path fill="#dedede" d="M230.75 263.63l.5.477-.5-.477z"/> - <path fill="#295200" d="M231.25 263.63l.5.477-.5-.477z"/> - <path fill="#103900" d="M232.25 263.63l.5.477-.5-.477z"/> - <path fill="#397b00" d="M233.26 263.63l.5.477-.5-.477z"/> - <path fill="#295200" d="M233.76 263.63l.5.477-.5-.477z"/> - <path fill="#213918" d="M234.76 263.63l.5.477-.5-.477z"/> - <path fill="#efefef" d="M235.26 263.63l.5.477-.5-.477z"/> - <path fill="#ce2110" d="M260.33 263.63l.5.477-.5-.477z"/> - <path fill="#63636b" d="M261.83 263.63l.5.477-.5-.477z"/> - <path fill="#efefef" d="M263.34 263.63l.5.477-.5-.477z"/> - <path fill="#9c9494" d="M263.84 263.63l.5.477-.5-.477z"/> - <path fill="#8c8c8c" d="M264.34 263.63v.477h1.504l-1.504-.477m2.005 0l-1.504.954v.477l1.505-1.43m1.504 0l.5.477-.5-.477z"/> - <path fill="#7b7373" d="M268.35 263.63l.5.477-.5-.477z"/> - <path fill="#cecece" d="M268.85 263.63l.5.477-.5-.477m2.005 0l-.5.954.5-.954z"/> - <path fill="#210800" d="M271.36 263.63l.5.477-.5-.477z"/> - <path fill="#8c8c8c" d="M291.41 263.63l.5.477-.5-.477z"/> - <path fill="#296300" d="M292.08 263.95l.167.318-.167-.318z"/> - <path fill="#8c8c8c" d="M292.41 263.63l.5.477-.5-.477z"/> - <path fill="#185200" d="M293.42 263.63l.5.477-.5-.477z"/> - <path fill="#184a00" d="M294.42 263.63l.5.477-.5-.477z"/> - <path fill="#297b00" d="M294.92 263.63l-.5.954.5-.954z"/> - <path fill="#103900" d="M296.42 263.63l.5.477-.5-.477z"/> - <path fill="#297b00" d="M298.43 263.63l-.5.954.5-.954z"/> - <path fill="#184a00" d="M300.1 263.95l.167.318-.167-.318z"/> - <path fill="#103900" d="M301.44 263.63l.5.477-.5-.477m1.003 0l.5.477-.5-.477z"/> - <path fill="#184a00" d="M303.44 263.63l.5.477-.5-.477m2.005 0l.502.477-.502-.477z"/> - <path fill="#296300" d="M305.95 263.63l.5.477-.5-.477z"/> - <path fill="#184a00" d="M307.45 263.63l.5.477-.5-.477z"/> - <path fill="#cecece" d="M307.96 263.63l.5.477-.5-.477z"/> - <path fill="#efefef" d="M309.88 265.94l-2.005 3.34c1.344-.938 2.617-1.733 2.005-3.34z"/> - <path fill="#dedede" d="M312.97 263.63l.5.477-.5-.477z"/> - <path fill="#bdbdbd" d="M223.73 264.1l.5.477-.5-.477z"/> - <path fill="#295200" d="M224.23 264.1l.5.477-.5-.477z"/> - <path fill="#294200" d="M226.24 264.1l.5.477-.5-.477z"/> - <path fill="#bdbdbd" d="M229.25 264.1l.5.477-.5-.477z"/> - <path fill="#8c8c8c" d="M230.75 264.1l.5.477-.5-.477z"/> - <path fill="#295200" d="M231.75 264.1l.5.477-.5-.477z"/> - <path fill="#397b00" d="M232.25 264.1l.5.477-.5-.477z"/> - <path fill="#294200" d="M233.26 264.1l.5.477-.5-.477m1.003 0l.5.477-.5-.477z"/> - <path fill="#cecece" d="M234.76 264.1l.5.477-.5-.477z"/> - <path fill="#9c9494" d="M236.6 264.26l.334.16-.334-.16z"/> - <path fill="#420000" d="M260.83 264.1l.5.477-.5-.477z"/> - <path fill="#101810" d="M261.83 264.1l.5.477-.5-.477z"/> - <path fill="#8c8c8c" d="M262.84 264.1l.5.477-.5-.477z"/> - <path fill="#7b7373" d="M263.34 264.1l.5.477-.5-.477z"/> - <path fill="#dedede" d="M263.84 264.1l.5.477-.5-.477z"/> - <path fill="#7b7373" d="M267.35 264.1l.5.477-.5-.477z"/> - <path fill="#cecece" d="M267.85 264.1l.5.477-.5-.477z"/> - <path fill="#8c8c8c" d="M270.86 264.1l.5.477-.5-.477z"/> - <path fill="#ce2110" d="M271.86 264.1l.5.477-.5-.477z"/> - <path fill="#cecece" d="M291.41 264.1l.5.477-.5-.477z"/> - <path fill="#184a00" d="M292.41 264.1l-.5.954.5-.954z"/> - <path fill="#dedede" d="M292.92 264.1l.5.477-.5-.477z"/> - <path fill="#184a00" d="M293.58 264.42l.167.318-.167-.318z"/> - <path fill="#185200" d="M294.92 264.1l.5.477-.5-.477m1.504 0l.5.477-.5-.477z"/> - <path fill="#297b00" d="M296.93 264.1l.5.477-.5-.477z"/> - <path fill="#296300" d="M298.43 264.1l.5.477-.5-.477z"/> - <path fill="#185200" d="M300.94 264.1l.5.477-.5-.477z"/> - <path fill="#296300" d="M301.44 264.1l.5.477-.5-.477z"/> - <path fill="#184a00" d="M301.94 264.1l.5.477-.5-.477z"/> - <path fill="#103900" d="M302.94 264.1l.5.477-.5-.477z"/> - <path fill="#185200" d="M305.45 264.1l.5.477-.5-.477z"/> - <path fill="#297b00" d="M306.95 264.1l.5.477-.5-.477z"/> - <path fill="#7b7373" d="M307.45 264.1l.5.477-.5-.477z"/> - <path fill="#8c8c8c" d="M311.97 264.1l.5.477-.5-.477z"/> - <path fill="#424242" d="M312.47 264.1l.5.477-.5-.477z"/> - <path fill="#7b7373" d="M224.23 264.58l.5.477-.5-.477z"/> - <path fill="#294200" d="M226.74 264.58l1.003.954-1.003-.954z"/> - <path fill="#397b00" d="M227.24 264.58l.5.477-.5-.477z"/> - <path fill="#315221" d="M229.25 264.58l.5.477-.5-.477z"/> - <path fill="#efefef" d="M230.08 264.74l.334.16-.334-.16z"/> - <path fill="#214210" d="M230.75 264.58l.5.477-.5-.477z"/> - <path fill="#103900" d="M231.75 264.58l.5.477-.5-.477z"/> - <path fill="#295200" d="M232.76 264.58l.5.477-.5-.477z"/> - <path fill="#397b00" d="M233.26 264.58l.5.477-.5-.477z"/> - <path fill="#7b7373" d="M234.26 264.58l.5.477-.5-.477z"/> - <path fill="#315221" d="M236.26 264.58l.5.477-.5-.477z"/> - <path fill="#7b7373" d="M236.77 264.58l.5.477-.5-.477z"/> - <path fill="#00216b" d="M246.29 264.58l.5.477-.5-.477z"/> - <path fill="#941808" d="M260.83 264.58l.5.477-.5-.477z"/> - <path fill="#ada5a5" d="M262.33 264.58l.5.477-.5-.477z"/> - <path fill="#9c9494" d="M264.34 264.58l.5.477-.5-.477z"/> - <path fill="#cecece" d="M266.34 264.58l.5.477-.5-.477z"/> - <path fill="#ada5a5" d="M266.85 264.58l.5.477-.5-.477m1.504 0l.5.477-.5-.477z"/> - <path fill="#52525a" d="M268.85 264.58l.5.477-.5-.477z"/> - <path fill="#313931" d="M269.35 264.58l.5.477-.5-.477z"/> - <path fill="#941808" d="M271.86 264.58l.5.477-.5-.477z"/> - <path fill="#319400" d="M292.41 264.58l3.51 11.45h.5c-.034-3.994-1.295-8.33-4.01-11.45z"/> - <path fill="#425242" d="M292.92 264.58l.5.477-.5-.477z"/> - <path fill="#103900" d="M294.92 264.58l.5.477-.5-.477z"/> - <path fill="#184a00" d="M296.93 264.58l.5.477-.5-.477z"/> - <path fill="#103900" d="M298.6 264.9l.167.318-.167-.318m2.34-.318l.5.477-.5-.478z"/> - <path fill="#319400" d="M301.44 264.58l.5.477-.5-.477z"/> - <path fill="#103900" d="M301.94 264.58l.5.477-.5-.477z"/> - <path fill="#184a00" d="M302.94 264.58l.5.477-.5-.477z"/> - <path fill="#103900" d="M304.95 264.58l.5.477-.5-.477z"/> - <path fill="#103910" d="M306.95 264.58l.5.477-.5-.477z"/> - <path fill="#efefef" d="M307.45 264.58l.5.477-.5-.477z"/> - <path fill="#8c8c8c" d="M308.46 264.58l.5.477-.5-.477z"/> - <path fill="#ada5a5" d="M308.96 264.58l.5.477-.5-.477z"/> - <path fill="#bdbdbd" d="M310.96 264.58l.5.477-.5-.477z"/> - <path fill="#314231" d="M311.46 264.58l-1.003 1.908 1.003-1.908z"/> - <path fill="#313931" d="M311.97 264.58l.5.477-.5-.477z"/> - <path fill="#efefef" d="M224.23 265.06l1.504 1.43-1.504-1.43z"/> - <path fill="#314231" d="M224.73 265.06l.5.477-.5-.477z"/> - <path fill="#397b00" d="M227.74 265.06l.5.477-.5-.477z"/> - <path fill="#63636b" d="M229.75 265.06l.5.477-.5-.477z"/> - <path fill="#8c8c8c" d="M230.25 265.06l.5.477-.5-.477z"/> - <path fill="#397b00" d="M231.25 265.06l.5.477-.5-.477z"/> - <path fill="#295200" d="M231.75 265.06l.5.477-.5-.477z"/> - <path fill="#294200" d="M232.76 265.06l.5.477-.5-.477z"/> - <path fill="#295200" d="M233.76 265.06l.5.477-.5-.477z"/> - <path fill="#cecece" d="M234.26 265.06l.5.477-.5-.477z"/> - <path fill="#63636b" d="M235.76 265.06l.5.477-.5-.477z"/> - <path fill="#5a5231" d="M236.77 265.06l.5.477-.5-.477z"/> - <path fill="#101829" d="M246.29 265.06l.5.477-.5-.477z"/> - <path fill="#ce2110" d="M260.83 265.06l.5.477-.5-.477z"/> - <path fill="#63636b" d="M262.33 265.06l.5.477-.5-.477z"/> - <path fill="#efefef" d="M263 265.38l.167.318-.167-.318z"/> - <path fill="#9c9494" d="M263.34 265.06l.5.477-.5-.477z"/> - <path fill="#7b7373" d="M263.84 265.06l.5.477-.5-.477z"/> - <path fill="#bdbdbd" d="M264.34 265.06l.5.477-.5-.477z"/> - <path fill="#7b7373" d="M266.85 265.06l.5.477-.5-.477z"/> - <path fill="#cecece" d="M267.35 265.06l.5.477-.5-.477z"/> - <path fill="#313931" d="M267.85 265.06l.5.477-.5-.477z"/> - <path fill="#210800" d="M271.36 265.06l.5.477-.5-.477z"/> - <path fill="#7b1008" d="M271.86 265.06l.5.477-.5-.477z"/> - <path fill="#10214a" d="M282.89 265.06l.5.477-.5-.477z"/> - <path fill="#4a6342" d="M292.08 265.38l.167.318-.167-.318z"/> - <path fill="#296300" d="M292.92 265.06l.5.477-.5-.477z"/> - <path fill="#103900" d="M293.58 265.38l.167.318-.167-.318z"/> - <path fill="#296300" d="M295.25 265.22l.334.16-.334-.16z"/> - <path fill="#103900" d="M296.93 265.06l.5.477-.5-.477z"/> - <path fill="#185200" d="M301.27 265.22l.334.16-.334-.16m1.17-.16l.5.478-.5-.477z"/> - <path fill="#103900" d="M304.45 265.06l.5.477-.5-.477z"/> - <path fill="#296300" d="M306.45 265.06l.5.477-.5-.477z"/> - <path fill="#9c9494" d="M306.95 265.06l.5.477-.5-.477z"/> - <path fill="#dedede" d="M307.45 265.06l.5.477-.5-.477z"/> - <path fill="#425242" d="M307.96 265.06l.5.477-.5-.477z"/> - <path fill="#313931" d="M308.46 265.06l.5.477-.5-.477z"/> - <path fill="#efefef" d="M308.96 265.06l.5.477-.5-.477m1.003 0l.5.477-.5-.477z"/> - <path fill="#63636b" d="M310.46 265.06l.5.477-.5-.477z"/> - <path fill="#185200" d="M310.96 265.06l.5.477-.5-.477z"/> - <path fill="#ada5a5" d="M218.72 265.54l.5.477-.5-.477z"/> - <path fill="#efefef" d="M219.22 265.54l.5.477-.5-.477z"/> - <path fill="#314231" d="M225.24 265.54l.5.477-.5-.477z"/> - <path fill="#397b00" d="M225.74 265.54l1.003.954-1.003-.954m3.008 0l.5.477-.5-.477m1.003 0l.502.477-.5-.477z"/> - <path fill="#214210" d="M230.25 265.54l.5.477-.5-.477z"/> - <path fill="#295200" d="M230.75 265.54l.5.477-.5-.477z"/> - <path fill="#292100" d="M231.25 265.54l.5.477-.5-.477z"/> - <path fill="#397b00" d="M232.25 265.54v.954h1.003l-1.003-.954z"/> - <path fill="#295200" d="M232.76 265.54l.5.477-.5-.477z"/> - <path fill="#5a5231" d="M233.76 265.54l.5.477-.5-.477z"/> - <path fill="#9c9494" d="M235.26 265.54l.5.477-.5-.477z"/> - <path fill="#294200" d="M236.77 265.54l.5.477-.5-.477z"/> - <path fill="#efefef" d="M237.27 265.54l.5.477-.5-.477z"/> - <path fill="#ada5a5" d="M246.29 265.54l.5.477-.5-.477z"/> - <path fill="#7b7373" d="M246.79 265.54l.5.477-.5-.477z"/> - <path fill="#10214a" d="M247.29 265.54l.5.477-.5-.477z"/> - <path fill="#420000" d="M261.33 265.54l.5.477-.5-.477z"/> - <path fill="#101810" d="M262.33 265.54l.5.477-.5-.477z"/> - <path fill="#dedede" d="M263.34 265.54l.5.477-.5-.477m1.504 0l.5.477-.5-.477z"/> - <path fill="#ada5a5" d="M265.34 265.54l.5.477-.5-.477z"/> - <path fill="#8c8c8c" d="M266.18 265.69l.334.16-.334-.16z"/> - <path fill="#313931" d="M266.85 265.54l.5.477-.5-.477z"/> - <path fill="#101810" d="M267.35 265.54l.5.477-.5-.477z"/> - <path fill="#310000" d="M269.85 265.54l.5.477-.5-.477z"/> - <path fill="#941808" d="M270.36 265.54l.5.477-.5-.477z"/> - <path fill="#00184a" d="M281.89 265.54l.5.477-.5-.477z"/> - <path fill="#636b7b" d="M282.39 265.54l.5.477-.5-.477z"/> - <path fill="#efefef" d="M282.89 265.54l.5.477-.5-.477z"/> - <path fill="#297b00" d="M293.92 265.54l-.5.954.5-.954z"/> - <path fill="#184a00" d="M295.42 265.54l.5.477-.5-.477z"/> - <path fill="#185200" d="M296.93 265.54l1.003.954-1.003-.954z"/> - <path fill="#297b00" d="M297.43 265.54l.5.477-.5-.477z"/> - <path fill="#296300" d="M298.43 265.54l.5.477-.5-.477z"/> - <path fill="#297b00" d="M298.93 265.54l-.5.954.5-.954z"/> - <path fill="#184a00" d="M300.6 265.85l.167.318-.167-.318z"/> - <path fill="#103900" d="M301.44 265.54l.5.477-.5-.477z"/> - <path fill="#319400" d="M301.94 265.54l.5.477-.5-.477z"/> - <path fill="#103900" d="M302.44 265.54l.5.477-.5-.477z"/> - <path fill="#296300" d="M304.28 265.69l.334.16-.334-.16z"/> - <path fill="#425242" d="M306.45 265.54l.5.477-.5-.477z"/> - <path fill="#8c8c8c" d="M306.95 265.54l.5.477-.5-.477z"/> - <path fill="#184a00" d="M307.79 265.69l.334.16-.334-.16z"/> - <path fill="#cecece" d="M308.46 265.54l.5.477-.5-.477z"/> - <path fill="#8c8c8c" d="M309.46 265.54l.5.477-.5-.477z"/> - <path fill="#214210" d="M309.96 265.54l.5.477-.5-.477z"/> - <path fill="#297b00" d="M310.46 265.54l.5.477-.5-.477z"/> - <path fill="#8c9c84" d="M218.72 266.01l.5.477-.5-.477z"/> - <path fill="#7b7373" d="M219.22 266.01l.5.477-.5-.477z"/> - <path fill="#63636b" d="M225.74 266.01l.5.477-.5-.477z"/> - <path fill="#001000" d="M228.74 266.01l.5.477-.5-.477z"/> - <path fill="#295200" d="M229.25 266.01l.5.477-.5-.477z"/> - <path fill="#292100" d="M230.25 266.01l.5.477-.5-.477z"/> - <path fill="#ad1810" d="M231.08 266.17l.334.16-.334-.16z"/> - <path fill="#311000" d="M231.75 266.01l.5.477-.5-.477z"/> - <path fill="#8c8c8c" d="M233.76 266.01l.5.477-.5-.477z"/> - <path fill="#bdbdbd" d="M234.76 266.01l.5.477-.5-.477z"/> - <path fill="#295200" d="M235.26 266.01l.5.477-.5-.477z"/> - <path fill="#428c00" d="M233.14 270.89h-.5c-.095-2.733-1.16-4.483-4.012-5.247.07 1.455 1.116 7.137 3.51 5.247h.5l-1.002 4.293c1.497-1.58 7.68-7.142 5-9.593-2.293-2.097-3.47 4.253-3.496 5.3z"/> - <path fill="#295200" d="M236.26 266.01l.5.477-.5-.477z"/> - <path fill="#bdbdbd" d="M237.27 266.01l.5.477-.5-.477z"/> - <path fill="#efefef" d="M247.29 266.01l.5.477-.5-.477z"/> - <path fill="#9c9494" d="M247.8 266.01l.5.477-.5-.477z"/> - <path fill="#31425a" d="M248.3 266.01l.5.477-.5-.477z"/> - <path fill="#00216b" d="M248.8 266.01l.5.477-.5-.477z"/> - <path fill="#941808" d="M261.33 266.01l.5.477-.5-.477z"/> - <path fill="#9c9494" d="M262.84 266.01l.5.477-.5-.477z"/> - <path fill="#efefef" d="M263.84 266.01l.5.477-.5-.477z"/> - <path fill="#63636b" d="M264.34 266.01l.5.477-.5-.477z"/> - <path fill="#310000" d="M268.85 266.01l.5.477-.5-.477z"/> - <path fill="#ad1810" d="M269.35 266.01l.5.477-.5-.477z"/> - <path fill="#00216b" d="M280.38 266.01l.5.477-.5-.477z"/> - <path fill="#21315a" d="M280.88 266.01l.5.477-.5-.477z"/> - <path fill="#8c8c8c" d="M281.38 266.01l.5.477-.5-.477z"/> - <path fill="#efefef" d="M281.89 266.01l.5.477-.5-.477m8.523 0l.5.477-.5-.477z"/> - <path fill="#8c8c8c" d="M290.91 266.01l.5.477-.5-.477z"/> - <path fill="#cecece" d="M291.41 266.01l.5.477-.5-.477z"/> - <path fill="#8c8c8c" d="M291.91 266.01l.5.477-.5-.477z"/> - <path fill="#184a00" d="M293.92 266.01l.5.477-.5-.477z"/> - <path fill="#103900" d="M295.42 266.01l.5.477-.5-.477z"/> - <path fill="#297b00" d="M295.92 266.01l-.5.954.5-.954m1.003 0l.5.477-.5-.477z"/> - <path fill="#185200" d="M301.44 266.01l.5.477-.5-.477z"/> - <path fill="#103900" d="M303.94 266.01l.5.477-.5-.477z"/> - <path fill="#185200" d="M305.95 266.01l.5.477-.5-.477z"/> - <path fill="#102110" d="M306.45 266.01l.5.477-.5-.477z"/> - <path fill="#296300" d="M307.29 266.17l.334.16-.334-.16z"/> - <path fill="#8c8c8c" d="M307.96 266.01l.5.477-.5-.477z"/> - <path fill="#dedede" d="M308.46 266.01l.5.477-.5-.477z"/> - <path fill="#425242" d="M308.96 266.01l.5.477-.5-.477z"/> - <path fill="#297b00" d="M309.46 266.01l-1.504 2.385 2.507-2.385h-1.003z"/> - <path fill="#295200" d="M219.22 266.49l.5.477-.5-.477z"/> - <path fill="#8c8c8c" d="M219.72 266.49l.5.477-.5-.477z"/> - <path fill="#dedede" d="M225.74 266.49l.5.477-.5-.477z"/> - <path fill="#7b7373" d="M226.24 266.49l.5.477-.5-.477z"/> - <path fill="#295200" d="M226.74 266.49l.5.477-.5-.477z"/> - <path fill="#397b00" d="M228.24 266.49v.477h1.504l-1.504-.477z"/> - <path fill="#294200" d="M229.75 266.49l.5.477-.5-.477z"/> - <path fill="#103900" d="M230.25 266.49l.5.477-.5-.477z"/> - <path fill="#941808" d="M231.92 266.81l.167.318-.167-.318z"/> - <path fill="#292100" d="M232.25 266.49l.5.477-.5-.477z"/> - <path fill="#295200" d="M233.26 266.49l.5.477-.5-.477z"/> - <path fill="#bdbdbd" d="M233.76 266.49l.5.477-.5-.477z"/> - <path fill="#cecece" d="M234.26 266.49l.5.477-.5-.477z"/> - <path fill="#214210" d="M234.76 266.49l.5.477-.5-.477z"/> - <path fill="#294200" d="M235.93 266.81l.167.318-.167-.318z"/> - <path fill="#8c8c8c" d="M237.43 266.81l.167.318-.167-.318z"/> - <path fill="#dedede" d="M248.8 266.49l.5.477-.5-.477z"/> - <path fill="#9c9494" d="M249.3 266.49l.5.477-.5-.477z"/> - <path fill="#636b7b" d="M249.8 266.49l.5.477-.5-.477z"/> - <path fill="#21315a" d="M250.3 266.49l.5.477-.5-.477z"/> - <path fill="#00216b" d="M250.8 266.49l.5.477-.5-.477z"/> - <path fill="#002984" d="M251.3 266.49l.5.477-.5-.477z"/> - <path fill="#ce2110" d="M261.33 266.49l.5.477-.5-.477z"/> - <path fill="#424242" d="M262.84 266.49l.5.477-.5-.477z"/> - <path fill="#7b7373" d="M263.34 266.49l.5.477-.5-.477z"/> - <path fill="#101810" d="M263.84 266.49l.5.477-.5-.477z"/> - <path fill="#100808" d="M267.35 266.49l.5.477-.5-.477z"/> - <path fill="#310000" d="M267.85 266.49l.5.477-.5-.477z"/> - <path fill="#210800" d="M268.35 266.49l.5.477-.5-.477z"/> - <path fill="#002984" d="M277.88 266.49l.5.477-.5-.477z"/> - <path fill="#00216b" d="M278.38 266.49l.5.477-.5-.477z"/> - <path fill="#10295a" d="M278.88 266.49l.5.477-.5-.477z"/> - <path fill="#525a6b" d="M279.38 266.49l.5.477-.5-.477z"/> - <path fill="#8c8c8c" d="M279.88 266.49l.5.477-.5-.477z"/> - <path fill="#cecece" d="M280.38 266.49l.5.477-.5-.477z"/> - <path fill="#63636b" d="M290.41 266.49l.5.477-.5-.477z"/> - <path fill="#297b00" d="M290.91 266.49l1.003.954-1.003-.954z"/> - <path fill="#103910" d="M291.41 266.49l.5.477-.5-.477z"/> - <path fill="#7b7373" d="M291.91 266.49l.5.477-.5-.477z"/> - <path fill="#103900" d="M293.92 266.49l.5.477-.5-.477z"/> - <path fill="#297b00" d="M294.42 266.49l-.5.954.5-.954z"/> - <path fill="#185200" d="M295.92 266.49l.5.477-.5-.477z"/> - <path fill="#103900" d="M297.43 266.49l.5.477-.5-.477z"/> - <path fill="#184a00" d="M300.94 266.49l.5.477-.5-.477z"/> - <path fill="#103900" d="M303.44 266.49l.5.477-.5-.477z"/> - <path fill="#297b00" d="M305.45 266.49v.477h2.005v-.477h-2.005z"/> - <path fill="#425242" d="M307.45 266.49l.5.477-.5-.477z"/> - <path fill="#ada5a5" d="M307.96 266.49l.5.477-.5-.477z"/> - <path fill="#214210" d="M308.46 266.49l.5.477-.5-.477z"/> - <path fill="#52525a" d="M309.96 266.49l.5.477-.5-.477z"/> - <path fill="#428c00" d="M219.22 266.97l.5.477-.5-.477z"/> - <path fill="#397b00" d="M219.89 267.29l.167.318-.167-.318z"/> - <path fill="#314231" d="M220.22 266.97l.5.477-.5-.477z"/> - <path fill="#bdbdbd" d="M220.72 266.97l.5.477-.5-.477z"/> - <path fill="#dedede" d="M222.73 266.97l.5.477-.5-.477z"/> - <path fill="#efefef" d="M225.24 266.97l.5.477-.5-.477z"/> - <path fill="#101810" d="M225.74 266.97l.5.477-.5-.477z"/> - <path fill="#bdbdbd" d="M226.74 266.97l.5.477-.5-.477z"/> - <path fill="#315221" d="M227.24 266.97l.5.477-.5-.477z"/> - <path fill="#295200" d="M228.24 266.97l.5.477-.5-.477z"/> - <path fill="#292100" d="M230.25 266.97l.5.477-.5-.477z"/> - <path fill="#941808" d="M230.75 266.97l.5.477-.5-.477z"/> - <path fill="#103900" d="M232.25 266.97l.5.477-.5-.477z"/> - <path fill="#5a2908" d="M232.76 266.97l-.5.954.5-.954z"/> - <path fill="#7b1008" d="M233.26 266.97l.5.477-.5-.477z"/> - <path fill="#5a3131" d="M233.76 266.97l.5.477-.5-.477z"/> - <path fill="#314231" d="M234.26 266.97l.5.477-.5-.477z"/> - <path fill="#cecece" d="M240.28 266.97l.5.477-.5-.477z"/> - <path fill="#52525a" d="M240.78 266.97l.5.477-.5-.477z"/> - <path fill="#dedede" d="M241.28 266.97l.5.477-.5-.477m9.525 0l.502.477-.502-.477z"/> - <path fill="#bdbdbd" d="M251.3 266.97l.5.477-.5-.477z"/> - <path fill="#9c9494" d="M251.81 266.97l.5.477-.5-.477z"/> - <path fill="#bdbdbd" d="M252.31 266.97l.5.477-.5-.477z"/> - <path fill="#420000" d="M261.83 266.97l.5.477-.5-.477z"/> - <path fill="#100808" d="M266.34 266.97l.5.477-.5-.477z"/> - <path fill="#7b0008" d="M266.85 266.97l.5.477-.5-.477z"/> - <path fill="#de2110" d="M264.84 267.44v.477h1.504c-3.848 5.97-1.042 13.987-.5 20.512h.5c1.404-5.846 1.538-14.243 0-20.036l2.005.954.5-1.908-.5-.477-3.51.477z"/> - <path fill="#940008" d="M268.35 266.97l.5.477-.5-.477z"/> - <path fill="#ad1810" d="M268.85 266.97l.5.477-.5-.477z"/> - <path fill="#bdbdbd" d="M276.87 266.97l.5.477-.5-.477z"/> - <path fill="#9c9494" d="M277.37 266.97l.5.477-.5-.477z"/> - <path fill="#bdbdbd" d="M277.88 266.97l.5.477-.5-.477z"/> - <path fill="#dedede" d="M278.38 266.97l.5.477-.5-.477z"/> - <path fill="#cecece" d="M289.91 266.97l.5.477-.5-.477z"/> - <path fill="#185200" d="M290.41 266.97l.5.477-.5-.477z"/> - <path fill="#313931" d="M291.91 266.97l.5.477-.5-.477z"/> - <path fill="#297b00" d="M292.41 266.97l.5.477-.5-.477z"/> - <path fill="#184a00" d="M294.42 266.97l.5.477-.5-.477z"/> - <path fill="#103900" d="M295.92 266.97l.5.477-.5-.477z"/> - <path fill="#184a00" d="M297.43 266.97l.5.477-.5-.477z"/> - <path fill="#297b00" d="M297.93 266.97l-.5.954.5-.954z"/> - <path fill="#103900" d="M300.94 266.97l.5.477-.5-.477z"/> - <path fill="#185200" d="M302.94 266.97l.5.477-.5-.477z"/> - <path fill="#184a00" d="M305.45 266.97l.5.477-.5-.477z"/> - <path fill="#319400" d="M306.45 266.97l-.5.954.5-.954z"/> - <path fill="#082108" d="M307.12 267.29l.167.318-.167-.318z"/> - <path fill="#52525a" d="M307.45 266.97l.5.477-.5-.477z"/> - <path fill="#296300" d="M307.96 266.97l.5.477-.5-.477z"/> - <path fill="#63636b" d="M309.46 266.97l-1.504 1.908 1.504-1.908z"/> - <path fill="#295200" d="M219.22 267.44l.5.477-.5-.477z"/> - <path fill="#428c00" d="M220.22 267.44l1.003 2.862h.5l.502-1.908-2.005-.954z"/> - <path fill="#295200" d="M220.72 267.44l.5.477-.5-.477z"/> - <path fill="#63636b" d="M221.22 267.44l.5.477-.5-.477z"/> - <path fill="#efefef" d="M221.73 267.44l.5.477-.5-.477z"/> - <path fill="#101810" d="M222.73 267.44l.5.477-.5-.477z"/> - <path fill="#efefef" d="M223.23 267.44l.5.477-.5-.477z"/> - <path fill="#425242" d="M225.24 267.44l.5.477-.5-.477z"/> - <path fill="#294200" d="M225.74 267.44l.5.477-.5-.477z"/> - <path fill="#8c8c8c" d="M227.74 267.44l.5.477-.5-.477z"/> - <path fill="#001000" d="M228.24 267.44l.5.477-.5-.477z"/> - <path fill="#294200" d="M230.75 267.44l.5.477-.5-.477z"/> - <path fill="#4a1000" d="M231.25 267.44l.5.477-.5-.477z"/> - <path fill="#294200" d="M231.75 267.44l.5.477-.5-.477z"/> - <path fill="#631808" d="M233.76 267.44l.5.477-.5-.477z"/> - <path fill="#397b00" d="M235.6 267.6l.334.16-.334-.16z"/> - <path fill="#6b735a" d="M237.27 267.44l.5.477-.5-.477z"/> - <path fill="#efefef" d="M238.27 267.44l.5.477-.5-.477z"/> - <path fill="#8c8c8c" d="M238.77 267.44l.5.477-.5-.477z"/> - <path fill="#526b42" d="M239.27 267.44l.5.477-.5-.477z"/> - <path fill="#396b10" d="M239.77 267.44l.5.477-.5-.477z"/> - <path fill="#295200" d="M240.28 267.44l.5.477-.5-.477z"/> - <path fill="#213918" d="M240.78 267.44l.5.477-.5-.477z"/> - <path fill="#efefef" d="M241.28 267.44l.5.477-.5-.477z"/> - <path fill="#941808" d="M261.83 267.44l.5.477-.5-.477z"/> - <path fill="#520808" d="M263.84 267.44l-.5.954.5-.954z"/> - <path fill="#ad0008" d="M264.34 267.44l.5.477-.5-.477z"/> - <path fill="#520808" d="M268.85 267.44l.5.477-.5-.477z"/> - <path fill="#7b7373" d="M289.91 267.44l.5.477-.5-.477z"/> - <path fill="#297b00" d="M290.41 267.44l.5.477-.5-.477z"/> - <path fill="#184a00" d="M291.91 267.44l.5.477-.5-.477z"/> - <path fill="#296300" d="M292.41 267.44l.5.477-.5-.477z"/> - <path fill="#103900" d="M294.42 267.44l.5.477-.5-.477z"/> - <path fill="#297b00" d="M294.92 267.44l-.5.954.5-.954z"/> - <path fill="#185200" d="M295.92 267.44l1.003.954-1.003-.954z"/> - <path fill="#297b00" d="M296.42 267.44l.5.477-.5-.477z"/> - <path fill="#185200" d="M297.93 267.44l.5.477-.5-.477m1.003 0l.5.477-.5-.477z"/> - <path fill="#297b00" d="M299.43 267.44l.5.477-.5-.477m1.003 0l1.002.954-1.002-.954z"/> - <path fill="#185200" d="M300.94 267.44l.5.477-.5-.477z"/> - <path fill="#297b00" d="M302.44 267.44l.5.477-.5-.477z"/> - <path fill="#184a00" d="M302.94 267.44l.5.477-.5-.477z"/> - <path fill="#297b00" d="M304.95 267.44l1.003.954-1.003-.954zm2.5 0l.5.477-.5-.477z"/> - <path fill="#dedede" d="M309.96 267.44l.5.477-.5-.477z"/> - <path fill="#5a6b52" d="M310.46 267.44l.5.477-.5-.477z"/> - <path fill="#425242" d="M310.96 267.44l.5.477-.5-.477z"/> - <path fill="#ada5a5" d="M311.46 267.44l.5.477-.5-.477z"/> - <path fill="#8c9c84" d="M218.72 267.92l.5.477-.5-.477z"/> - <path fill="#428c00" d="M219.22 267.92l1.504 2.385-1.504-2.385z"/> - <path fill="#103900" d="M219.72 267.92l.5.477-.5-.477z"/> - <path fill="#314231" d="M221.73 267.92l.5.477-.5-.477z"/> - <path fill="#bdbdbd" d="M222.23 267.92l.5.477-.5-.477z"/> - <path fill="#295200" d="M222.73 267.92l.5.477-.5-.477z"/> - <path fill="#314231" d="M223.23 267.92l.5.477-.5-.477z"/> - <path fill="#ada5a5" d="M224.73 267.92l.5.477-.5-.477z"/> - <path fill="#397b00" d="M225.57 268.08l.334.16-.334-.16z"/> - <path fill="#dedede" d="M226.24 267.92l.5.477-.5-.477z"/> - <path fill="#7b8c73" d="M228.24 267.92l.5.477-.5-.477z"/> - <path fill="#295200" d="M231.25 267.92l1.003.954v-.954h-1.003z"/> - <path fill="#4a1000" d="M232.25 267.92l.5.477-.5-.477z"/> - <path fill="#bd2110" d="M233.26 267.92l.5.477-.5-.477z"/> - <path fill="#526b42" d="M237.27 267.92l.5.477-.5-.477z"/> - <path fill="#9c9494" d="M237.77 267.92l.5.477-.5-.477z"/> - <path fill="#214210" d="M238.27 267.92l.5.477-.5-.477z"/> - <path fill="#428c00" d="M236.77 271.74l1.003-.477v.477l-3.51 2.862c3.116-1.18 4.69-2.8 6.016-5.724l-1.505.954 1.003-1.908-3.008 3.816z"/> - <path fill="#294200" d="M239.77 267.92l-.5.954.5-.954z"/> - <path fill="#397b00" d="M240.28 267.92l-.5.954.5-.954z"/> - <path fill="#424242" d="M240.78 267.92l.5.477-.5-.477z"/> - <path fill="#9c9494" d="M256.32 267.92l.5.477-.5-.477z"/> - <path fill="#845a52" d="M256.82 267.92l.5.477-.5-.477z"/> - <path fill="#734a42" d="M257.32 267.92l.5.477-.5-.477z"/> - <path fill="#842118" d="M257.82 267.92l.5.477-.5-.477z"/> - <path fill="#7b1008" d="M258.32 267.92l.5.477-.5-.477z"/> - <path fill="#b51010" d="M258.82 267.92l.5.477-.5-.477z"/> - <path fill="#ce2110" d="M261.83 267.92l.5.477-.5-.477z"/> - <path fill="#310000" d="M262.84 267.92l.5.477-.5-.477z"/> - <path fill="#310010" d="M263.84 267.92l.5.477-.5-.477z"/> - <path fill="#180821" d="M264.34 267.92l.5.477-.5-.477z"/> - <path fill="#310010" d="M264.84 267.92l.5.477-.5-.477z"/> - <path fill="#7b1008" d="M265.34 267.92l.5.477-.5-.477z"/> - <path fill="#b51010" d="M265.84 267.92l.5.477-.5-.477z"/> - <path fill="#7b1008" d="M268.85 267.92l.5.477-.5-.477z"/> - <path fill="#bd2110" d="M270.36 267.92l.5.477-.5-.477z"/> - <path fill="#7b1008" d="M270.86 267.92l.5.477-.5-.477z"/> - <path fill="#631808" d="M271.36 267.92l.5.477-.5-.477z"/> - <path fill="#8c4a4a" d="M271.86 267.92l.5.477-.5-.477z"/> - <path fill="#9c9494" d="M272.86 267.92l.5.477-.5-.477z"/> - <path fill="#214210" d="M289.91 267.92l.5.477-.5-.477z"/> - <path fill="#297b00" d="M291.91 267.92l.5.477-.5-.477z"/> - <path fill="#103900" d="M292.41 267.92l.5.477-.5-.477z"/> - <path fill="#185200" d="M294.92 267.92l.5.477-.5-.477z"/> - <path fill="#297b00" d="M295.92 267.92l.5.477-.5-.477z"/> - <path fill="#184a00" d="M297.93 267.92l.5.477-.5-.477z"/> - <path fill="#103900" d="M300.6 268.24l.167.318-.167-.318m1.838-.318l.502.477-.502-.478z"/> - <path fill="#184a00" d="M306.45 267.92l.5.477-.5-.477z"/> - <path fill="#8c8c8c" d="M309.46 267.92l.5.477-.5-.477z"/> - <path fill="#184a00" d="M309.96 267.92l.5.477-.5-.477z"/> - <path fill="#296300" d="M311.46 267.92l.5.477-.5-.477z"/> - <path fill="#63636b" d="M311.97 267.92l1.003.954-1.003-.954z"/> - <path fill="#8c8c8c" d="M218.89 268.72l.167.318-.167-.318z"/> - <path fill="#295200" d="M219.72 268.4l.5.477-.5-.477z"/> - <path fill="#397b00" d="M220.22 268.4l.5.477-.5-.477z"/> - <path fill="#102110" d="M222.23 268.4l.5.477-.5-.477z"/> - <path fill="#397b00" d="M222.73 268.4v.477l1.504.477-1.504-.954z"/> - <path fill="#63636b" d="M223.73 268.4l.5.477-.5-.477z"/> - <path fill="#7b7373" d="M224.73 268.4l.5.477-.5-.477z"/> - <path fill="#428c00" d="M225.24 268.4v2.385h-.5l-.503-1.43h-.5l.5 4.77h-.5l-.502-5.248h-.502l-.5 3.816h-.502l-2.506-1.908 1.504 2.862h-.5l-2.007-2.385c1.685 5.644 4.09 4.866 8.098 8.038 1.49 1.18 2.433 3.735 3.434 5.32l-2.005-1.432 1.002 1.43-2.507-1.43 3.008 2.862.502-1.43h.5c-1.258 2.283-3.485 2.55-6.015 2.86v-.476l1.003-.954 2.507.477c-1.803-1.802-4.047-2.106-6.517-1.43l3.008 2.384v.478l-3.008 3.34 6.016-.955-.502.954h.502l3.008-1.43-6.016 2.862v.476c5.07-.624 5.68-2.31 8.522-5.725-.394 1.536-.394 2.4 1.003 3.34l-.783-5.698 6.8-7.658-2.508 1.908 2.005-2.863c-2.838.558-4.072 2.557-4.01 5.247l-3.008 2.862h-.503c1.07-3 3.978-4.71 3.008-8.11-2.616 1.855-3.37 4.128-3.51 7.155l-2.004-9.54.502 1.907h-.5v-.954h-.503l.5 6.68h-.5c-1.568-3.656-.198-10.99-3.51-13.358z"/> - <path fill="#9c9494" d="M226.24 268.4l.5.477-.5-.477z"/> - <path fill="#8c8c8c" d="M228.41 268.72l.167.318-.167-.318z"/> - <path fill="#397b00" d="M229.75 268.4l1.003.954-1.003-.954z"/> - <path fill="#5a1008" d="M232.76 268.4l.5.477-.5-.477z"/> - <path fill="#311000" d="M233.26 268.4l.5.477-.5-.477z"/> - <path fill="#213918" d="M237.27 268.4l.5.477-.5-.477z"/> - <path fill="#295200" d="M237.77 268.4l.5.477-.5-.477z"/> - <path fill="#315221" d="M240.28 268.4l.5.477-.5-.477z"/> - <path fill="#efefef" d="M258.32 268.4l.5.477-.5-.477z"/> - <path fill="#9c9494" d="M258.82 268.4l.5.477-.5-.477z"/> - <path fill="#736b6b" d="M259.33 268.4l.5.477-.5-.477z"/> - <path fill="#6b2908" d="M259.83 268.4l.5.477-.5-.477z"/> - <path fill="#941808" d="M260.33 268.4l.5.477-.5-.477z"/> - <path fill="#ad1810" d="M262.33 268.4l.5.477-.5-.477z"/> - <path fill="#000818" d="M262.84 268.4l.5.477-.5-.477z"/> - <path fill="#00216b" d="M263.34 268.4l-.5.954.5-.954z"/> - <path fill="#003994" d="M261.83 285.09h.5c-.808-6.093-.472-11.147 2.508-16.696-5.91 2.883-5.56 11.946-3.008 16.696z"/> - <path fill="#52525a" d="M264.84 268.4l.5.477-.5-.477z"/> - <path fill="#9c2118" d="M265.34 268.4l.5.477-.5-.477z"/> - <path fill="#ce0008" d="M267.35 268.4l.5.477-.5-.477z"/> - <path fill="#bd0008" d="M268.35 268.4l.5.477-.5-.477z"/> - <path fill="#520808" d="M268.85 268.4l.5.477-.5-.477z"/> - <path fill="#5a1008" d="M269.35 268.4l.5.477-.5-.477z"/> - <path fill="#7b5252" d="M269.85 268.4l.5.477-.5-.477z"/> - <path fill="#9c9494" d="M270.36 268.4l.5.477-.5-.477z"/> - <path fill="#dedede" d="M270.86 268.4l.5.477-.5-.477z"/> - <path fill="#efefef" d="M282.89 268.4l.5.477-.5-.477z"/> - <path fill="#9c9494" d="M289.41 268.4l.5.477-.5-.477z"/> - <path fill="#296300" d="M289.91 268.4l.5.477-.5-.477z"/> - <path fill="#314231" d="M290.41 268.4l.5.477-.5-.477z"/> - <path fill="#185200" d="M290.91 268.4l.5.477-.5-.477z"/> - <path fill="#184a00" d="M292.41 268.4l.5.477-.5-.477z"/> - <path fill="#297b00" d="M292.92 268.4l-.5.954.5-.954z"/> - <path fill="#103900" d="M294.92 268.4l.5.477-.5-.477z"/> - <path fill="#184a00" d="M296.59 268.72l.167.318-.167-.318z"/> - <path fill="#185200" d="M297.93 268.4l.5.477-.5-.477z"/> - <path fill="#184a00" d="M302.11 268.72l.167.318-.167-.318z"/> - <path fill="#297b00" d="M302.44 268.4l.5.477-.5-.477m2.005 0l.502.477-.502-.477z"/> - <path fill="#296300" d="M307.45 268.4l.5.477-.5-.477z"/> - <path fill="#dedede" d="M308.46 268.4l.5.477-.5-.477z"/> - <path fill="#425242" d="M308.96 268.4l.5.477-.5-.477z"/> - <path fill="#297b00" d="M309.46 268.4l.5.477-.5-.477m2.507 0l.5.477-.5-.477z"/> - <path fill="#294200" d="M220.22 268.88l.5.477-.5-.477m2.005 0l.502.477-.502-.477z"/> - <path fill="#295200" d="M223.4 269.19l.167.318-.167-.318z"/> - <path fill="#ada5a5" d="M224.23 268.88l.5.477-.5-.477z"/> - <path fill="#526b42" d="M224.73 268.88l.5.477-.5-.477z"/> - <path fill="#5a6b52" d="M226.24 268.88l.5.477-.5-.477z"/> - <path fill="#294200" d="M229.75 268.88l.5.477-.5-.477m2.507 0l.5.477-.5-.477z"/> - <path fill="#397b00" d="M232.76 268.88l.5.477-.5-.477z"/> - <path fill="#295200" d="M233.26 268.88l.5.477-.5-.477z"/> - <path fill="#294200" d="M237.43 269.19l.167.318-.167-.318z"/> - <path fill="#397b00" d="M238.77 268.88l.5.477-.5-.477z"/> - <path fill="#295200" d="M239.27 268.88l.5.477-.5-.477z"/> - <path fill="#9c9494" d="M240.28 268.88l.5.477-.5-.477z"/> - <path fill="#313931" d="M246.29 268.88l.5.477-.5-.477z"/> - <path fill="#bdbdbd" d="M260.33 268.88l.5.477-.5-.477z"/> - <path fill="#7b7373" d="M260.83 268.88l.5.477-.5-.477z"/> - <path fill="#733939" d="M261.33 268.88l.5.477-.5-.477z"/> - <path fill="#7b1008" d="M261.83 268.88l.5.477-.5-.477z"/> - <path fill="#631808" d="M262.33 268.88l.5.477-.5-.477z"/> - <path fill="#00184a" d="M264.34 268.88l.5.477-.5-.477z"/> - <path fill="#6b5252" d="M264.84 268.88l.5.477-.5-.477z"/> - <path fill="#310000" d="M267.35 268.88l.5.477-.5-.477z"/> - <path fill="#5a1010" d="M268.35 268.88l.5.477-.5-.477z"/> - <path fill="#ada5a5" d="M268.85 268.88l.5.477-.5-.477z"/> - <path fill="#63636b" d="M282.89 268.88l.5.477-.5-.477z"/> - <path fill="#5a6b52" d="M289.41 268.88l.5.477-.5-.477z"/> - <path fill="#214210" d="M289.91 268.88l.5.477-.5-.477z"/> - <path fill="#dedede" d="M290.41 268.88l.5.477-.5-.477z"/> - <path fill="#425242" d="M290.91 268.88l.5.477-.5-.477z"/> - <path fill="#103900" d="M292.92 268.88l.5.477-.5-.477z"/> - <path fill="#185200" d="M294.92 268.88l.5.477-.5-.477z"/> - <path fill="#297b00" d="M295.42 268.88l-.5.954.5-.954z"/> - <path fill="#184a00" d="M298.1 269.19l.167.318-.167-.318z"/> - <path fill="#297b00" d="M299.93 268.88l1.003.954-1.003-.954z"/> - <path fill="#185200" d="M300.44 268.88l.5.477-.5-.477z"/> - <path fill="#297b00" d="M301.44 268.88l1.003.954-1.003-.954z"/> - <path fill="#103900" d="M304.95 268.88l.5.477-.5-.477z"/> - <path fill="#185200" d="M306.95 268.88l-2.005 2.385 2.005-2.385z"/> - <path fill="#7b7373" d="M307.45 268.88l.5.477-.5-.477z"/> - <path fill="#ada5a5" d="M307.96 268.88l.5.477-.5-.477z"/> - <path fill="#214210" d="M308.46 268.88l.5.477-.5-.477z"/> - <path fill="#297b00" d="M308.96 268.88l.5.477-.5-.477z"/> - <path fill="#184a00" d="M309.96 268.88l.5.477-.5-.477z"/> - <path fill="#5a6b52" d="M310.46 268.88l.5.477-.5-.477z"/> - <path fill="#395231" d="M310.96 268.88l.5.477-.5-.477z"/> - <path fill="#296300" d="M311.46 268.88l.5.477-.5-.477z"/> - <path fill="#297b00" d="M312.63 269.19l.167.318-.167-.318z"/> - <path fill="#8c8c8c" d="M312.97 268.88l.5.477-.5-.477z"/> - <path fill="#bdbdbd" d="M218.89 269.67l.167.318-.167-.318z"/> - <path fill="#397b00" d="M219.22 269.35l.5.477-.5-.477m1.003 0l.5.477-.5-.477z"/> - <path fill="#295200" d="M220.72 269.35l.5.477-.5-.477z"/> - <path fill="#397b00" d="M222.06 269.51l.334.16-.334-.16z"/> - <path fill="#213918" d="M224.23 269.35l.5.477-.5-.477z"/> - <path fill="#5a5231" d="M224.73 269.35l.5.477-.5-.477z"/> - <path fill="#295200" d="M226.24 269.35l.5.477-.5-.477z"/> - <path fill="#efefef" d="M226.74 269.35l.5.477-.5-.477z"/> - <path fill="#ada5a5" d="M228.24 269.35l.5.477-.5-.477z"/> - <path fill="#397b00" d="M228.74 269.35l.5.477-.5-.477z"/> - <path fill="#103900" d="M230.25 269.35l.5.477-.5-.477z"/> - <path fill="#001000" d="M232.76 269.35l.5.477-.5-.477z"/> - <path fill="#295200" d="M235.26 269.35l-.5.954.5-.954z"/> - <path fill="#103900" d="M238.77 269.35l.5.477-.5-.477z"/> - <path fill="#214210" d="M239.77 269.35l.5.477-.5-.477z"/> - <path fill="#efefef" d="M240.28 269.35l.5.477-.5-.477z"/> - <path fill="#b51010" d="M246.29 269.35l.5.477-.5-.477z"/> - <path fill="#733939" d="M246.79 269.35l.5.477-.5-.477z"/> - <path fill="#cecece" d="M247.29 269.35l.5.477-.5-.477m14.54 0l.5.477-.5-.477z"/> - <path fill="#001039" d="M262.33 269.35l.5.477-.5-.477z"/> - <path fill="#002984" d="M263.84 269.35l.5.477-.5-.477z"/> - <path fill="#8c8c8c" d="M264.34 269.35l.5.477-.5-.477z"/> - <path fill="#842118" d="M264.84 269.35l.5.477-.5-.477z"/> - <path d="M267.35 269.35l.5.477-.5-.477z"/> - <path fill="#ad0008" d="M267.85 269.35l.5.477-.5-.477z"/> - <path fill="#8c8c8c" d="M268.35 269.35l.5.477-.5-.477z"/> - <path fill="#debdb5" d="M281.89 269.35l.5.477-.5-.477z"/> - <path fill="#8c4a4a" d="M282.39 269.35l.5.477-.5-.477z"/> - <path fill="#ce1810" d="M282.89 269.35l.5.477-.5-.477z"/> - <path fill="#946b63" d="M283.56 269.67l.167.318-.167-.318z"/> - <path fill="#001000" d="M289.41 269.35l.5.477-.5-.477z"/> - <path fill="#ada5a5" d="M289.91 269.35l.5.477-.5-.477m1.003 0l.5.477-.5-.477z"/> - <path fill="#296300" d="M291.41 269.35l.5.477-.5-.477z"/> - <path fill="#184a00" d="M292.92 269.35l.5.477-.5-.477z"/> - <path fill="#297b00" d="M293.42 269.35l-.5.954.5-.954z"/> - <path fill="#184a00" d="M295.42 269.35l.5.477-.5-.477z"/> - <path fill="#296300" d="M296.42 269.35l.5.477-.5-.477z"/> - <path fill="#297b00" d="M296.93 269.35l-.5.954.5-.954z"/> - <path fill="#103900" d="M300.1 269.67l.167.318-.167-.318m1.337-.318l.5.477-.5-.478z"/> - <path d="M304.45 269.35l.5.477-.5-.477z"/> - <path fill="#297b00" d="M304.95 269.35l.5.477-.5-.477z"/> - <path fill="#8c8c8c" d="M306.95 269.35l.5.477-.5-.477z"/> - <path fill="#63636b" d="M307.45 269.35l.5.477-.5-.477z"/> - <path fill="#296300" d="M307.96 269.35l.5.477-.5-.477z"/> - <path fill="#103900" d="M309.46 269.35l.5.477-.5-.477z"/> - <path fill="#cecece" d="M309.96 269.35l.5.477-.5-.477z"/> - <path fill="#ada5a5" d="M311.46 269.35l.5.477-.5-.477z"/> - <path fill="#294221" d="M311.97 269.35l.5.477-.5-.477z"/> - <path fill="#184a00" d="M312.97 269.35l.5.477-.5-.477z"/> - <path fill="#cecece" d="M313.47 269.35l.5.477-.5-.477z"/> - <path fill="#ada5a5" d="M216.71 269.83l.5.477-.5-.477z"/> - <path fill="#8c8c8c" d="M217.55 269.99l.334.16-.334-.16z"/> - <path fill="#9c9494" d="M218.22 269.83l.5.477-.5-.477z"/> - <path fill="#294200" d="M219.22 269.83l1.003.954-1.003-.954z"/> - <path fill="#103900" d="M220.72 269.83l.5.477-.5-.477z"/> - <path fill="#294200" d="M221.73 269.83l-.5 1.43.5-1.43m1.504 0v1.43h.5l-.5-1.43z"/> - <path fill="#292100" d="M224.73 269.83l.5.477-.5-.477z"/> - <path fill="#9c9494" d="M226.74 269.83l.5.477-.5-.477z"/> - <path fill="#294200" d="M228.74 269.83l.5.477-.5-.477m2.005 0l.502.477-.502-.477z"/> - <path fill="#103900" d="M232.76 269.83l.5.477-.5-.477z"/> - <path fill="#397b00" d="M235.26 269.83l.5.477-.5-.477m1.838.16l.334.158-.334-.16z"/> - <path fill="#103900" d="M238.27 269.83l.5.477-.5-.477z"/> - <path fill="#7b7373" d="M239.77 269.83l.5.477-.5-.477z"/> - <path fill="#de2110" d="M246.79 269.83v7.633h-.5l-.503-6.68h-4.512v13.835l2.006-.954 1.003 3.34 2.507-1.432.5 5.247 4.513-1.432c2.11 1.433 3.456 1.443 4.512-.954h1.003l3.008 2.862-.5-9.063-9.025-.477v-.477l8.523.476v-1.43c-6.316-.142-7.018-3.95-7.018-9.065l-5.515-1.43z"/> - <path fill="#b51010" d="M247.29 269.83l.5.477-.5-.477z"/> - <path fill="#7b5252" d="M247.8 269.83l.5.477-.5-.477z"/> - <path fill="#cecece" d="M248.3 269.83l.5.477-.5-.477z"/> - <path fill="#7b7373" d="M261.83 269.83l.5.477-.5-.477z"/> - <path fill="#002984" d="M262.33 269.83l.5.477-.5-.477z"/> - <path fill="#10214a" d="M263.84 269.83l.5.477-.5-.477z"/> - <path fill="#c6b5b5" d="M264.34 269.83l.5.477-.5-.477z"/> - <path fill="#ce1810" d="M264.84 269.83l.5.477-.5-.477z"/> - <path fill="#6b0808" d="M266.85 269.83l.5.477-.5-.477z"/> - <path fill="#100808" d="M267.35 269.83l.5.477-.5-.477z"/> - <path fill="#5a3131" d="M267.85 269.83l.5.477-.5-.477z"/> - <path fill="#dedede" d="M280.88 269.83l.5.477-.5-.477z"/> - <path fill="#a56363" d="M281.38 269.83l.5.477-.5-.477z"/> - <path fill="#b51010" d="M281.89 269.83l.5.477-.5-.477z"/> - <path fill="#de2110" d="M277.37 271.26c0 4.812-.467 8.764-6.517 9.063 1.338 3.622 7.82 1.32 9.972-.584 2.988-2.642 2.56-6.378 2.56-9.91l-6.015 1.43z"/> - <path fill="#bdbdbd" d="M288.9 269.83l.5.477-.5-.477z"/> - <path fill="#8c8c8c" d="M289.41 269.83l.5.477-.5-.477z"/> - <path fill="#315221" d="M291.41 269.83l.5.477-.5-.477z"/> - <path fill="#103900" d="M293.42 269.83l.5.477-.5-.477m2.005 0l.502.477-.502-.477z"/> - <path fill="#184a00" d="M296.93 269.83l.5.477-.5-.477z"/> - <path fill="#296300" d="M300.94 269.83l.5.477-.5-.477z"/> - <path fill="#185200" d="M301.44 269.83l.5.477-.5-.477z"/> - <path fill="#297b00" d="M300.44 274.12l4.512-4.293c-2.48.6-3.495 2.178-4.512 4.293z"/> - <path fill="#103900" d="M303.94 269.83l.5.477-.5-.477z"/> - <path fill="#7b7373" d="M306.45 269.83l.5.477-.5-.477z"/> - <path fill="#294221" d="M306.95 269.83l.5.477-.5-.477z"/> - <path fill="#297b00" d="M307.45 269.83l.5.477-.5-.477z"/> - <path fill="#185200" d="M308.96 269.83l.5.477-.5-.477z"/> - <path fill="#9c9494" d="M309.46 269.83l.5.477-.5-.477z"/> - <path fill="#efefef" d="M311.97 269.83l.5.477-.5-.477z"/> - <path fill="#7b7373" d="M312.47 269.83l.5.477-.5-.477z"/> - <path fill="#185200" d="M312.97 269.83l.5.477-.5-.477z"/> - <path fill="#294221" d="M313.47 269.83l.5.477-.5-.477z"/> - <path fill="#efefef" d="M313.97 269.83l.5.477-.5-.477m-97.26.477l.502.477-.5-.477z"/> - <path fill="#293129" d="M217.21 270.31l.5.477-.5-.477z"/> - <path fill="#428c00" d="M218.05 270.47l.334.16-.334-.16z"/> - <path fill="#397b00" d="M218.89 270.62l.167.318-.167-.318z"/> - <path fill="#295200" d="M219.22 270.31l.5.477-.5-.477m1.003 0l.5.477-.5-.477z"/> - <path fill="#397b00" d="M220.72 270.31l.5.477-.5-.477z"/> - <path fill="#294200" d="M224.73 270.31l.5.477-.5-.477z"/> - <path fill="#425242" d="M226.74 270.31l.5.477-.5-.477z"/> - <path fill="#5a6b52" d="M228.74 270.31l.5.477-.5-.477z"/> - <path fill="#295200" d="M230.75 270.31l.5.477-.5-.477z"/> - <path fill="#294200" d="M232.76 270.31v1.43h.5l-.5-1.43m2.172.318l.168.318-.168-.318m1.84-.318l.5.477-.5-.477z"/> - <path fill="#397b00" d="M238.1 270.47l.334.16-.334-.16z"/> - <path fill="#295200" d="M239.27 270.31l.5.477-.5-.477z"/> - <path fill="#dedede" d="M239.77 270.31l.5.477-.5-.477z"/> - <path fill="#52525a" d="M240.78 270.31l.5.477-.5-.477z"/> - <path fill="#5a3131" d="M245.79 270.31l.5.477-.5-.477z"/> - <path fill="#b51010" d="M248.3 270.31l.5.477-.5-.477z"/> - <path fill="#842118" d="M248.8 270.31l.5.477-.5-.477z"/> - <path fill="#8c6363" d="M249.3 270.31l.5.477-.5-.477z"/> - <path fill="#cecece" d="M249.8 270.31l.5.477-.5-.477z"/> - <path fill="#dedede" d="M261.33 270.31l.5.477-.5-.477z"/> - <path fill="#00184a" d="M261.83 270.31l.5.477-.5-.477z"/> - <path fill="#002984" d="M263.34 270.31l.5.477-.5-.477z"/> - <path fill="#8c8c8c" d="M263.84 270.31l.5.477-.5-.477z"/> - <path fill="#8c6363" d="M264.34 270.31l.5.477-.5-.477z"/> - <path fill="#941808" d="M266.85 270.31l.5.477-.5-.477z"/> - <path fill="#4a2129" d="M267.35 270.31l.5.477-.5-.477z"/> - <path fill="#efefef" d="M267.85 270.31l.5.477-.5-.477z"/> - <path fill="#d6a5a5" d="M279.38 270.31l.5.477-.5-.477z"/> - <path fill="#946b63" d="M279.88 270.31l.5.477-.5-.477z"/> - <path fill="#a52921" d="M280.38 270.31l.5.477-.5-.477z"/> - <path fill="#b51010" d="M280.88 270.31l.5.477-.5-.477z"/> - <path fill="#4a2129" d="M283.39 270.31l.5.477-.5-.477z"/> - <path fill="#42425a" d="M283.89 270.31v.477h4.512l-4.512-.477z"/> - <path fill="#212139" d="M288.4 270.31l.5.477-.5-.477z"/> - <path fill="#dedede" d="M290.41 270.31l1.504.954v-.477l-1.504-.477z"/> - <path fill="#8c8c8c" d="M291.41 270.31l.5.477-.5-.477z"/> - <path fill="#297b00" d="M291.91 270.31l.5.477-.5-.477z"/> - <path fill="#184a00" d="M293.42 270.31l.5.477-.5-.477z"/> - <path fill="#297b00" d="M293.92 270.31l-.5.954.5-.954m1.504 0l.5.477-.5-.477z"/> - <path fill="#296300" d="M295.92 270.31l.5.477-.5-.477z"/> - <path fill="#103900" d="M296.93 270.31l.5.477-.5-.477z"/> - <path fill="#297b00" d="M297.93 270.31l.5.477-.5-.477m1.003 0l.5.477-.5-.477z"/> - <path fill="#296300" d="M299.93 270.31l.5.477-.5-.477z"/> - <path fill="#103900" d="M300.94 270.31l.5.477-.5-.477m2.507 0l.5.477-.5-.477z"/> - <path fill="#313931" d="M305.95 270.31l.5.477-.5-.477z"/> - <path fill="#184a00" d="M306.45 270.31l.5.477-.5-.477z"/> - <path fill="#296300" d="M308.46 270.31l.5.477-.5-.477z"/> - <path fill="#8c8c8c" d="M308.96 270.31l.5.477-.5-.477z"/> - <path fill="#bdbdbd" d="M312.97 270.31l.5.477-.5-.477z"/> - <path fill="#424242" d="M313.47 270.31l.5.477-.5-.477z"/> - <path fill="#9c9494" d="M313.97 270.31l.5.477-.5-.477z"/> - <path fill="#cecece" d="M217.21 270.78l.5.477-.5-.477z"/> - <path fill="#294200" d="M217.72 270.78l.5.477-.5-.477z"/> - <path fill="#103900" d="M218.22 270.78l.5.477-.5-.477z"/> - <path fill="#292100" d="M220.72 270.78l.5.477-.5-.477z"/> - <path fill="#295200" d="M221.73 270.78l.5.477-.5-.477m3.676.318l.168.318-.168-.318m1.337-.318l.502.477-.502-.477z"/> - <path fill="#dedede" d="M227.24 270.78l.5.477-.5-.477m1.504 0l.5.477-.5-.477z"/> - <path fill="#294200" d="M229.25 270.78l.5.477-.5-.477m2.005 0l.502.477-.502-.477z"/> - <path fill="#397b00" d="M236.26 270.78l.5.477-.5-.477z"/> - <path fill="#295200" d="M236.77 270.78l.5.477-.5-.477z"/> - <path fill="#294200" d="M237.77 270.78l.5.477-.5-.477z"/> - <path fill="#6b735a" d="M239.27 270.78l.5.477-.5-.477z"/> - <path fill="#ce1810" d="M249.8 270.78l.5.477-.5-.477z"/> - <path fill="#a51008" d="M250.3 270.78l.5.477-.5-.477z"/> - <path fill="#ad1810" d="M250.8 270.78l.5.477-.5-.477z"/> - <path fill="#943131" d="M251.64 270.94l.334.16-.334-.16z"/> - <path fill="#c6b5b5" d="M252.31 270.78l.5.477-.5-.477z"/> - <path fill="#8c8c8c" d="M261.33 270.78l.5.477-.5-.477z"/> - <path fill="#001039" d="M263.34 270.78l.5.477-.5-.477z"/> - <path fill="#efefef" d="M263.84 270.78l.5.477-.5-.477z"/> - <path fill="#943131" d="M264.34 270.78l.5.477-.5-.477z"/> - <path fill="#ce1810" d="M266.34 270.78l1.003 4.293-1.003-4.293z"/> - <path fill="#6b0808" d="M266.85 270.78l1.003.954-1.003-.954z"/> - <path fill="#733939" d="M267.35 270.78l.5.477-.5-.477z"/> - <path fill="#c69c94" d="M276.87 270.78l.5.477-.5-.477z"/> - <path fill="#ad3931" d="M277.71 270.94l.334.16-.334-.16z"/> - <path fill="#bd2110" d="M278.38 270.78l.5.477-.5-.477z"/> - <path fill="#b51010" d="M278.88 270.78l.5.477-.5-.477z"/> - <path fill="#ce1810" d="M279.38 270.78l.5.477-.5-.477z"/> - <path fill="#00184a" d="M283.39 270.78v3.816h.5l-.5-3.816z"/> - <path fill="#003994" d="M283.89 270.78c0 8.845-5.168 12.114-14.037 11.45l-.5 9.062c1.894-.03 4.557.11 5.012-1.908l2.005 1.43 2.006-1.907-.502 1.91 1.003-.956h.5l3.01-.476-.502 1.432 1.504-1.91 1.002.955h1.504v-1.43l1.002.477.502-4.293c2.544-2.115 1.002-10.676 1.002-13.834h-4.512z"/> - <path fill="#424242" d="M290.41 270.78l.5.477-.5-.477z"/> - <path fill="#185200" d="M291.91 270.78l.5.477-.5-.477m2.005 0l.502.477-.502-.477z"/> - <path fill="#184a00" d="M295.92 270.78v1.43h.5l-.5-1.43z"/> - <path fill="#185200" d="M296.93 270.78l.5.477-.5-.477z"/> - <path fill="#184a00" d="M298.43 270.78v2.385h.5l-.5-2.385z"/> - <path fill="#185200" d="M300.44 270.78l.5.477-.5-.477z"/> - <path fill="#296300" d="M300.94 270.78l.5.477-.5-.477z"/> - <path fill="#082108" d="M302.94 270.78l.5.477-.5-.477z"/> - <path d="M305.45 270.78l.5.477-.5-.477z"/> - <path fill="#296300" d="M305.95 270.78l.5.477-.5-.477z"/> - <path fill="#297b00" d="M307.96 270.78l-1.003 1.43 1.003-1.43z"/> - <path fill="#63636b" d="M308.46 270.78l.5.477-.5-.477m-90.74.477l.5.477-.5-.477z"/> - <path fill="#294200" d="M218.72 271.26l1.003.954-1.003-.954z"/> - <path fill="#295200" d="M219.22 271.26l.5.477-.5-.477z"/> - <path fill="#103900" d="M221.22 271.26l.5.477-.5-.477z"/> - <path fill="#397b00" d="M221.73 271.26l.5.477-.5-.477m1.504 0v.954h1.003v-.954h-1.003z"/> - <path fill="#8c8c8c" d="M227.24 271.26l.5.477-.5-.477z"/> - <path fill="#7b7373" d="M229.25 271.26l.5.477-.5-.477z"/> - <path fill="#103900" d="M237.27 271.26l.5.477-.5-.477z"/> - <path fill="#396b10" d="M238.77 271.26l.5.477-.5-.477z"/> - <path fill="#dedede" d="M239.27 271.26l.5.477-.5-.477z"/> - <path fill-opacity=".475" fill="#8c7373" d="M252.31 271.26v4.293h.5l-.5-4.293z"/> - <path fill="#efefef" d="M260.83 271.26l.5.477-.5-.477z"/> - <path fill="#10214a" d="M261.33 271.26l.5.477-.5-.477z"/> - <path fill="#636b7b" d="M263.34 271.26l.5.477-.5-.477z"/> - <path fill="#ad1810" d="M264.34 271.26l.5.477-.5-.477z"/> - <path fill="#420000" d="M266.85 271.26l.5.477-.5-.477z"/> - <path fill="#8c8c8c" d="M290.41 271.26l.5.477-.5-.477z"/> - <path fill="#63636b" d="M290.91 271.26l.5.477-.5-.477z"/> - <path fill="#425242" d="M291.91 271.26l.5.477-.5-.477z"/> - <path fill="#103900" d="M293.92 271.26l.5.477-.5-.477z"/> - <path fill="#184a00" d="M296.93 271.26l.5.477-.5-.477z"/> - <path fill="#297b00" d="M299.93 271.26l1.003.954-1.003-.954z"/> - <path fill="#103900" d="M300.44 271.26l.5.477-.5-.477m2.005 0l.502.477-.502-.477m2.006 0l-2.506 2.862 2.507-2.862z"/> - <path fill="#082108" d="M304.95 271.26l.5.477-.5-.477z"/> - <path fill="#297b00" d="M305.45 271.26l.5.477-.5-.477z"/> - <path fill="#314231" d="M307.96 271.26l-.5.954.5-.954z"/> - <path fill="#bdbdbd" d="M217.72 271.74l.5.477-.5-.477z"/> - <path fill="#397b00" d="M218.22 271.74l.5.477-.5-.477m1.504 0l.5.477-.5-.477z"/> - <path fill="#294200" d="M221.89 272.06l.167.318-.167-.318m3.51 0l.166.318-.167-.318z"/> - <path fill="#526b42" d="M227.24 271.74l.5.477-.5-.477z"/> - <path fill="#efefef" d="M229.25 271.74l.5.477-.5-.477z"/> - <path fill="#314231" d="M229.75 271.74l.5.477-.5-.477z"/> - <path fill="#397b00" d="M232.76 271.74l.5.477-.5-.477m3.008.477v.477h1.504l-1.504-.477m1.504-.477l.5.477-.5-.477m1.003 0l.5.477-.5-.477z"/> - <path fill="#8c8c8c" d="M238.77 271.74l.5.477-.5-.477z"/> - <path fill="#7b7373" d="M256.65 271.9l.334.16-.334-.16z"/> - <path fill="#8c8c8c" d="M257.32 271.74l.5.477-.5-.477z"/> - <path fill="#bdbdbd" d="M257.82 271.74l.5.477-.5-.477z"/> - <path fill="#cecece" d="M258.32 271.74l.5.477-.5-.477z"/> - <path fill="#9c9494" d="M260.83 271.74l.5.477-.5-.477z"/> - <path fill="#00216b" d="M261.33 271.74l.5.477-.5-.477z"/> - <path fill="#00215a" d="M262.84 271.74l.5.477-.5-.477z"/> - <path fill="#ada5a5" d="M263.34 271.74l.5.477-.5-.477z"/> - <path fill="#a51008" d="M264.34 271.74l.5.477-.5-.477z"/> - <path fill="#310000" d="M266.85 271.74l.5.477-.5-.477z"/> - <path fill="#940008" d="M267.35 271.74l.5.477-.5-.477z"/> - <path fill="#bdbdbd" d="M267.85 271.74l.5.477-.5-.477z"/> - <path fill="#cecece" d="M270.86 271.74l.5.477-.5-.477z"/> - <path fill="#bdbdbd" d="M271.36 271.74l.5.477-.5-.477z"/> - <path fill="#8c8c8c" d="M272.19 271.9l.334.16-.334-.16z"/> - <path fill="#7b7373" d="M272.86 271.74l.5.477-.5-.477z"/> - <path fill="#bdbdbd" d="M290.41 271.74l.5.477-.5-.477z"/> - <path fill="#103900" d="M290.91 271.74l.5.477-.5-.477z"/> - <path fill="#bdbdbd" d="M291.41 271.74l.5.477-.5-.477z"/> - <path fill="#9c9494" d="M291.91 271.74l.5.477-.5-.477z"/> - <path fill="#297b00" d="M292.41 271.74l.5.477-.5-.477z"/> - <path fill="#296300" d="M294.25 271.9l.334.16-.334-.16z"/> - <path fill="#297b00" d="M296.42 271.74l.5.477-.5-.477z"/> - <path fill="#185200" d="M296.93 271.74l.5.477-.5-.477z"/> - <path fill="#297b00" d="M297.43 271.74l.5.477-.5-.477z"/> - <path fill="#103900" d="M299.93 271.74l.5.477-.5-.477m2.005 0l.502.477-.502-.477z"/> - <path fill="#efefef" d="M307.96 271.74l.5.477-.5-.477z"/> - <path fill="#396b10" d="M218.22 272.21l.5.477-.5-.477z"/> - <path fill="#103900" d="M219.72 272.21l.5.477-.5-.477z"/> - <path fill="#294200" d="M223.9 272.53l.167.318-.167-.318z"/> - <path fill="#396b10" d="M227.24 272.21l.5.477-.5-.477z"/> - <path fill="#bdbdbd" d="M228.74 272.21l.5.477-.5-.477z"/> - <path fill="#dedede" d="M229.75 272.21l.5.477-.5-.477z"/> - <path fill="#214210" d="M230.25 272.21l1.504 1.43-1.504-1.43z"/> - <path fill="#294200" d="M232.42 272.53l.167.318-.167-.318z"/> - <path fill="#103900" d="M236.26 272.21l.5.477-.5-.477z"/> - <path fill="#314231" d="M238.27 272.21l.5.477-.5-.477z"/> - <path fill="#003994" d="M256.82 272.21c.03 2.393.295 3.615 3.008 3.816.42-2.58-.402-3.27-3.008-3.816z"/> - <path fill="#002984" d="M257.82 272.21l.5.477-.5-.477z"/> - <path fill="#00216b" d="M258.32 272.21l.5.477-.5-.477z"/> - <path fill="#10214a" d="M258.82 272.21l.5.477-.5-.477z"/> - <path fill="#636b7b" d="M259.33 272.21l.5.477-.5-.477z"/> - <path fill="#9c9494" d="M259.83 272.21l.5.477-.5-.477z"/> - <path fill="#efefef" d="M260.33 272.21l.5.477-.5-.477z"/> - <path fill="#31425a" d="M260.83 272.21l.5.477-.5-.477z"/> - <path fill="#21315a" d="M262.84 272.21l.5.477-.5-.477z"/> - <path fill="#bdbdbd" d="M263.84 272.21l.5.477-.5-.477z"/> - <path fill="#ce1810" d="M264.34 272.21l.5.477-.5-.477z"/> - <path fill="#420000" d="M266.85 272.21l.5.477-.5-.477z"/> - <path fill="#ce0008" d="M267.35 272.21l.5.477-.5-.477z"/> - <path fill="#8c8c8c" d="M267.85 272.21l.5.477-.5-.477z"/> - <path fill="#ada5a5" d="M269.35 272.21l.5.477-.5-.477z"/> - <path fill="#63636b" d="M269.85 272.21l.5.477-.5-.477z"/> - <path fill="#21315a" d="M270.36 272.21l.5.477-.5-.477z"/> - <path fill="#00216b" d="M270.86 272.21l.5.477-.5-.477z"/> - <path fill="#002984" d="M271.36 272.21l.5.477-.5-.477z"/> - <path fill="#003994" d="M268.35 273.17c1.174 4.14 4.465 2.81 4.512-.954l-4.512.954z"/> - <path fill="#efefef" d="M290.41 272.21l.5.477-.5-.477z"/> - <path fill="#185200" d="M290.91 272.21l.5.477-.5-.477z"/> - <path fill="#425242" d="M291.41 272.21l.5.477-.5-.477z"/> - <path fill="#efefef" d="M291.91 272.21l.5.477-.5-.477z"/> - <path fill="#103900" d="M292.41 272.21l.5.477-.5-.477m2.005 0l.502.477-.502-.477zm7.025 0l.5.477-.5-.477z"/> - <path fill="#185200" d="M303.94 272.21l.5.477-.5-.477z"/> - <path fill="#214210" d="M306.95 272.21l.5.477-.5-.477z"/> - <path fill="#cecece" d="M307.45 272.21l-.5.954.5-.954z"/> - <path fill="#5a6b52" d="M218.22 272.69l.5.477-.5-.477z"/> - <path fill="#397b00" d="M219.72 272.69l.5.477-.5-.477z"/> - <path fill="#295200" d="M220.22 272.69l.5.477-.5-.477m2.005 0l.502.477-.502-.477m3.008 0l.502.477-.502-.477z"/> - <path fill="#425242" d="M228.74 272.69l.5.477-.5-.477z"/> - <path fill="#cecece" d="M230.25 272.69l1.504 1.43-1.504-1.43z"/> - <path fill="#397b00" d="M235.26 272.69l.5.477-.5-.477z"/> - <path fill="#214210" d="M237.77 272.69l-.5.954.5-.954z"/> - <path fill="#cecece" d="M238.27 272.69l-.5.954.5-.954z"/> - <path fill="#002984" d="M259.83 272.69l.5.477-.5-.477z"/> - <path fill="#001039" d="M260.33 272.69l.5.477-.5-.477z"/> - <path fill="#00184a" d="M260.83 272.69l.5.477-.5-.477z"/> - <path fill="#7b7373" d="M262.84 272.69l.5.477-.5-.477z"/> - <path fill="#b5adad" d="M263.84 272.69l.5.477-.5-.477z"/> - <path fill="#6b0808" d="M266.85 272.69l.5.477-.5-.477z"/> - <path fill="#de2110" d="M267.35 272.69l.5.477-.5-.477z"/> - <path fill="#524242" d="M267.85 272.69l.5.477-.5-.477z"/> - <path fill="#525a6b" d="M268.35 272.69l.5.477-.5-.477z"/> - <path fill="#00184a" d="M268.85 272.69l.5.477-.5-.477z"/> - <path fill="#002984" d="M269.35 272.69l.5.477-.5-.477z"/> - <path fill="#395231" d="M290.91 272.69l.5.477-.5-.477z"/> - <path fill="#296300" d="M291.41 272.69l.5.477-.5-.477z"/> - <path fill="#9c9494" d="M291.91 272.69l.5.477-.5-.477z"/> - <path fill="#5a6b52" d="M292.41 272.69l.5.477-.5-.477z"/> - <path fill="#185200" d="M294.42 272.69l1.003.954-1.003-.954z"/> - <path fill="#297b00" d="M294.92 272.69l.5.477-.5-.477z"/> - <path fill="#103900" d="M296.59 273.01l.167.318-.167-.318z"/> - <path fill="#297b00" d="M296.93 272.69l.5.477-.5-.477z"/> - <path fill="#103900" d="M300.94 272.69l.5.477-.5-.477z"/> - <path fill="#296300" d="M303.44 272.69l.5.477-.5-.477z"/> - <path fill="#103900" d="M306.45 272.69l.5.477-.5-.477z"/> - <path fill="#9c9494" d="M218.22 273.17l.5.477-.5-.477z"/> - <path fill="#294200" d="M220.22 273.17l.5.477-.5-.477m2.172.318l.168.318-.168-.318z"/> - <path fill="#295200" d="M223.73 273.17l.5.477-.5-.477z"/> - <path fill="#9c9494" d="M229.25 273.17l.5.477-.5-.477z"/> - <path fill="#397b00" d="M231.75 273.17l.5.477-.5-.477z"/> - <path fill="#295200" d="M232.25 273.17l.5.477-.5-.477z"/> - <path fill="#397b00" d="M234.76 273.17l.5.477-.5-.477z"/> - <path fill="#00215a" d="M260.33 273.17l.5.477-.5-.477z"/> - <path fill="#002984" d="M260.83 273.17l.5.477-.5-.477z"/> - <path fill="#00216b" d="M262.33 273.17l.5.477-.5-.477z"/> - <path fill="#bdbdbd" d="M262.84 273.17l.5.477-.5-.477z"/> - <path fill="#ad0008" d="M267.35 273.17l.5.477-.5-.477z"/> - <path fill="#390821" d="M267.85 273.17l.5.477-.5-.477z"/> - <path fill="#7b7373" d="M290.91 273.17l.5.477-.5-.477z"/> - <path fill="#319400" d="M291.41 273.17l.5.477-.5-.477z"/> - <path fill="#103910" d="M291.91 273.17l.5.477-.5-.477z"/> - <path fill="#8c8c8c" d="M292.41 273.17l.5.477-.5-.477z"/> - <path fill="#297b00" d="M292.92 273.17l.5.477-.5-.477m1.504 0l.5.477-.5-.477z"/> - <path fill="#184a00" d="M297.43 273.17l.5.477-.5-.477z"/> - <path fill="#185200" d="M298.43 273.17l.5.477-.5-.477z"/> - <path fill="#103900" d="M300.44 273.17l.5.477-.5-.477z"/> - <path fill="#297b00" d="M302.94 273.17l.5.477-.5-.477z"/> - <path fill="#185200" d="M305.95 273.17l.5.477-.5-.477z"/> - <path fill="#9c9494" d="M306.45 273.17l.5.477-.5-.477z"/> - <path fill="#dedede" d="M218.22 273.65l.5.477-.5-.477z"/> - <path fill="#295200" d="M218.72 273.65l.5.477-.5-.477m2.005 0l.502.477-.502-.477z"/> - <path fill="#397b00" d="M223.73 273.65l.5.477-.5-.477z"/> - <path fill="#6b735a" d="M228.24 273.65l.5.477-.5-.477z"/> - <path fill="#214210" d="M229.25 273.65l1.003.954-1.003-.954z"/> - <path fill="#cecece" d="M229.75 273.65l1.003.954-1.003-.954z"/> - <path fill="#001000" d="M231.75 273.65l.5.477-.5-.477z"/> - <path fill="#103900" d="M233.76 273.65l.5.477-.5-.477z"/> - <path fill="#397b00" d="M234.26 273.65l.5.477-.5-.477m1.504 0l.5.477-.5-.477z"/> - <path fill="#214210" d="M236.26 273.65l.5.477-.5-.477z"/> - <path fill="#7b7373" d="M236.77 273.65l.5.477-.5-.477z"/> - <path fill="#dedede" d="M237.27 273.65l.5.477-.5-.477z"/> - <path fill="#001039" d="M260.33 273.65l.5.477-.5-.477z"/> - <path fill="#00184a" d="M262.33 273.65l.5.477-.5-.477z"/> - <path fill="#7b0008" d="M266.85 273.65l.5.477-.5-.477m1.003 0l.5.477-.5-.477z"/> - <path fill="#efefef" d="M289.74 273.8l.334.16-.334-.16z"/> - <path fill="#9c9494" d="M290.91 273.65l.5.477-.5-.477z"/> - <path fill="#297b00" d="M291.75 273.8l.334.16-.334-.16z"/> - <path fill="#7b7373" d="M292.41 273.65l.5.477-.5-.477z"/> - <path fill="#185200" d="M292.92 273.65l.5.477-.5-.477z"/> - <path fill="#184a00" d="M295.09 273.96l.167.318-.167-.318m1.504 0l.167.318-.166-.318z"/> - <path fill="#296300" d="M297.43 273.65l.5.477-.5-.477m1.003 0l.5.477-.5-.477z"/> - <path fill="#184a00" d="M299.93 273.65l.5.477-.5-.477z"/> - <path fill="#297b00" d="M302.44 273.65l.5.477-.5-.477z"/> - <path fill="#296300" d="M305.45 273.65l.5.477-.5-.477z"/> - <path fill="#8c8c8c" d="M305.95 273.65l.5.477-.5-.477z"/> - <path fill="#dedede" d="M307.96 273.65l.5.477-.5-.477z"/> - <path fill="#7b7373" d="M308.46 273.65l.5.477-.5-.477z"/> - <path fill="#214210" d="M308.96 273.65l.5.477-.5-.477z"/> - <path fill="#395231" d="M309.46 273.65l.5.477-.5-.477z"/> - <path fill="#9c9494" d="M309.96 273.65l.5.477-.5-.477z"/> - <path fill="#5a5231" d="M218.72 274.12l.5.477-.5-.477z"/> - <path fill="#294200" d="M220.72 274.12l.5.477-.5-.477z"/> - <path fill="#295200" d="M222.23 274.12l1.003.954-1.003-.954z"/> - <path fill="#397b00" d="M222.73 274.12l.5.477-.5-.477m2.507 0l-.502.954h1.003l-.5-.954z"/> - <path fill="#396b10" d="M227.24 274.12l.5.477-.5-.477z"/> - <path fill="#526b42" d="M228.41 274.44l.167.318-.167-.318z"/> - <path fill="#efefef" d="M231.25 274.12l-.5.954.5-.954z"/> - <path fill="#294200" d="M231.75 274.12l.5.477-.5-.477m1.67.318l.168.318-.167-.318z"/> - <path fill="#295200" d="M233.76 274.12l.5.477-.5-.477z"/> - <path fill="#294200" d="M234.76 274.12l.5.477-.5-.477z"/> - <path fill="#63636b" d="M235.26 274.12l.5.477-.5-.477z"/> - <path fill="#ada5a5" d="M235.76 274.12l.5.477-.5-.477z"/> - <path fill="#00184a" d="M260.33 274.12l.5.477-.5-.477z"/> - <path fill="#31425a" d="M262.33 274.12l.5.477-.5-.477z"/> - <path fill="#6b0808" d="M267.51 274.44l.167.318-.167-.318z"/> - <path fill="#bd0008" d="M267.85 274.12l.5.477-.5-.477z"/> - <path fill="#00215a" d="M268.35 274.12l.5.477-.5-.477z"/> - <path fill="#bdbdbd" d="M289.41 274.12l.5.477-.5-.477z"/> - <path fill="#7b7373" d="M289.91 274.12l.5.477-.5-.477z"/> - <path fill="#dedede" d="M290.91 274.12l.5.477-.5-.477z"/> - <path fill="#185200" d="M291.41 274.12l.5.477-.5-.477z"/> - <path fill="#184a00" d="M292.41 274.12l.5.477-.5-.477z"/> - <path fill="#314231" d="M292.92 274.12l.5.477-.5-.477z"/> - <path fill="#184a00" d="M298.43 274.12v1.908h.5l-.5-1.908z"/> - <path fill="#185200" d="M299.77 274.28l.334.16-.334-.16m1.67-.16l-1.002 1.432 1.003-1.43z"/> - <path fill="#296300" d="M301.94 274.12l.5.477-.5-.477z"/> - <path fill="#297b00" d="M304.95 274.12l-1.003 2.385h.502l.5-2.385z"/> - <path fill="#63636b" d="M305.45 274.12l.5.477-.5-.477z"/> - <path fill="#9c9494" d="M306.95 274.12l.5.477-.5-.477z"/> - <path fill="#425242" d="M307.45 274.12l.5.477-.5-.477z"/> - <path fill="#185200" d="M307.96 274.12l.5.477-.5-.477z"/> - <path fill="#297b00" d="M308.46 274.12l.5.477-.5-.477z"/> - <path fill="#184a00" d="M309.96 274.12l.5.477-.5-.477z"/> - <path fill="#cecece" d="M310.46 274.12l.5.477-.5-.477z"/> - <path fill="#8c8c8c" d="M218.72 274.6l.5.477-.5-.477z"/> - <path fill="#397b00" d="M221.06 274.76l.334.16-.334-.16z"/> - <path fill="#526b42" d="M227.24 274.6l.5.477-.5-.477z"/> - <path fill="#397b00" d="M229.08 274.76l.334.16-.334-.16z"/> - <path fill="#314231" d="M230.25 274.6l.5.477-.5-.477z"/> - <path fill="#8c8c8c" d="M231.25 274.6l-.5.954.5-.954z"/> - <path fill="#397b00" d="M232.76 274.6v1.43l1.504-1.43h-1.504z"/> - <path fill="#5a6b52" d="M234.26 274.6l.5.477-.5-.477z"/> - <path fill="#bdbdbd" d="M234.76 274.6l.5.477-.5-.477z"/> - <path fill="#525a6b" d="M256.32 274.6l.5.477-.5-.477z"/> - <path fill="#00216b" d="M260.16 274.76l.334.16-.334-.16z"/> - <path fill="#7b7373" d="M262.33 274.6l.5.477-.5-.477z"/> - <path fill="#de2110" d="M268.02 274.92l.167.318-.167-.318z"/> - <path fill="#390821" d="M268.35 274.6l.5.477-.5-.477z"/> - <path fill="#00215a" d="M283.39 274.6l.5.477-.5-.477z"/> - <path fill="#292921" d="M289.91 274.6l.5.477-.5-.477z"/> - <path fill="#315221" d="M291.41 274.6l.5.477-.5-.477z"/> - <path fill="#297b00" d="M292.41 274.6l.5.477-.5-.477z"/> - <path fill="#001000" d="M292.92 274.6l.5.477-.5-.477z"/> - <path fill="#297b00" d="M293.42 274.6l.5.477-.5-.477z"/> - <path fill="#296300" d="M295.25 274.76l.334.16-.334-.16z"/> - <path fill="#185200" d="M296.42 274.6l.5.477-.5-.477z"/> - <path fill="#296300" d="M299.43 274.6l.5.477-.5-.477z"/> - <path fill="#425242" d="M304.95 274.6l.5.477-.5-.477z"/> - <path fill="#efefef" d="M305.45 274.6l.5.477-.5-.477z"/> - <path fill="#8c8c8c" d="M305.95 274.6l.5.477-.5-.477z"/> - <path fill="#315221" d="M306.45 274.6l.5.477-.5-.477z"/> - <path fill="#297b00" d="M306.95 274.6l.5.477-.5-.477z"/> - <path fill="#314231" d="M310.46 274.6l.5.477-.5-.477z"/> - <path fill="#dedede" d="M218.72 275.08l.5.477-.5-.477z"/> - <path fill="#295200" d="M219.22 275.08l.5.477-.5-.477z"/> - <path fill="#103900" d="M221.22 275.08l.5.477-.5-.477z"/> - <path fill="#294200" d="M222.73 275.08l.5.477-.5-.477z"/> - <path fill="#295200" d="M224.73 275.08l.5.477-.5-.477z"/> - <path fill="#6b735a" d="M227.24 275.08l.5.477-.5-.477z"/> - <path fill="#7b7373" d="M228.24 275.08l.5.477-.5-.477z"/> - <path fill="#294200" d="M229.41 275.39l.167.318-.167-.318z"/> - <path fill="#315221" d="M231.25 275.08l.5.477-.5-.477z"/> - <path fill="#103900" d="M232.76 275.08l.5.477-.5-.477z"/> - <path fill="#63636b" d="M233.76 275.08l-.5.954.5-.954z"/> - <path fill="#292921" d="M234.76 275.08l.5.477-.5-.477z"/> - <path fill="#dedede" d="M235.26 275.08l.5.477-.5-.477z"/> - <path fill="#733939" d="M240.78 275.08l.5.477-.5-.477z"/> - <path fill="#bd2110" d="M245.79 275.08l.5.477-.5-.477z"/> - <path fill="#8c8c8c" d="M256.32 275.08l.5.477-.5-.477z"/> - <path fill="#002984" d="M261.83 275.08l.5.477-.5-.477z"/> - <path fill="#9c9494" d="M262.33 275.08l.5.477-.5-.477z"/> - <path fill="#b51010" d="M266.85 275.08l.5.477-.5-.477z"/> - <path fill="#520808" d="M267.35 275.08l.5.477-.5-.477z"/> - <path fill="#7b0008" d="M268.35 275.08l.5.477-.5-.477z"/> - <path fill="#636b7b" d="M272.86 275.08l.5.477-.5-.477z"/> - <path fill="#002984" d="M283.56 275.39l.167.318-.167-.318z"/> - <path fill="#001000" d="M289.91 275.08l.5.477-.5-.477z"/> - <path fill="#dedede" d="M290.41 275.08l.5.477-.5-.477z"/> - <path fill="#6b735a" d="M291.41 275.08l.5.477-.5-.477z"/> - <path fill="#185200" d="M293.25 275.24l.334.16-.334-.16z"/> - <path fill="#103900" d="M295.42 275.08l.5.477-.5-.477z"/> - <path fill="#297b00" d="M296.93 275.08l.5.477-.5-.477z"/> - <path fill="#293129" d="M304.45 275.08l.5.477-.5-.477z"/> - <path fill="#7b7373" d="M304.95 275.08l.5.477-.5-.477z"/> - <path fill="#214210" d="M305.45 275.08l.5.477-.5-.477z"/> - <path fill="#297b00" d="M305.95 275.08l.5.477-.5-.477z"/> - <path fill="#185200" d="M310.46 275.08l.5.477-.5-.477z"/> - <path fill="#cecece" d="M310.96 275.08l.5.477-.5-.477z"/> - <path fill="#314231" d="M219.22 275.55l.5.477-.5-.477z"/> - <path fill="#295200" d="M221.22 275.55l.5.477-.5-.477z"/> - <path fill="#397b00" d="M222.73 275.55l.5.477-.5-.477z"/> - <path fill="#295200" d="M223.23 275.55l.5.477-.5-.477z"/> - <path fill="#294200" d="M224.73 275.55l.5.477-.5-.477z"/> - <path fill="#8c8c8c" d="M227.41 275.87l.167.318-.167-.318m.836-.318l.5.477-.5-.478z"/> - <path fill="#294200" d="M230.75 275.55l.5.477-.5-.477z"/> - <path fill="#397b00" d="M231.25 275.55l-.5 2.385h.5v-2.385z"/> - <path fill="#294200" d="M232.42 275.87l.167.318-.167-.318z"/> - <path fill="#bdbdbd" d="M234.26 275.55l.5.477-.5-.477z"/> - <path fill="#294200" d="M234.93 275.87l.167.318-.167-.318z"/> - <path fill="#bdbdbd" d="M235.26 275.55l.5.477-.5-.477m4.01 0l.502.477-.5-.477z"/> - <path fill="#8c8c8c" d="M239.77 275.55l.5.477-.5-.477z"/> - <path fill="#315221" d="M240.28 275.55l.5.477-.5-.477z"/> - <path fill="#310000" d="M240.78 275.55l.5.477-.5-.477z"/> - <path fill="#a51008" d="M246.29 275.55l.5.477-.5-.477z"/> - <path fill="#845a52" d="M252.31 275.55l.5.477-.5-.477z"/> - <path fill="#dedede" d="M256.32 275.55l.5.477-.5-.477z"/> - <path fill="#10214a" d="M256.82 275.55l.5.477-.5-.477z"/> - <path fill="#00216b" d="M261.83 275.55l.5.477-.5-.477z"/> - <path fill="#bdbdbd" d="M262.33 275.55l.5.477-.5-.477z"/> - <path fill="#a51008" d="M266.85 275.55l.5.477-.5-.477z"/> - <path fill="#940008" d="M267.35 275.55l1.003.954-1.003-.954z"/> - <path fill="#bd0008" d="M268.18 275.71l.334.16-.334-.16z"/> - <path fill="#00215a" d="M268.85 275.55l.5.477-.5-.477z"/> - <path fill="#10214a" d="M272.36 275.55l.5.477-.5-.477z"/> - <path fill="#cecece" d="M272.86 275.55l-.5.954.5-.954z"/> - <path fill="#103900" d="M289.91 275.55l.5.477-.5-.477z"/> - <path fill="#8c8c8c" d="M290.41 275.55l.5.477-.5-.477z"/> - <path fill="#9c9494" d="M291.41 275.55l.5.477-.5-.477z"/> - <path fill="#297b00" d="M291.91 275.55l.5.477-.5-.477z"/> - <path fill="#103900" d="M293.42 275.55l.5.477-.5-.477z"/> - <path fill="#184a00" d="M295.42 275.55l.5.477-.5-.477zm5.02 0l.5.477-.5-.477z"/> - <path fill="#103900" d="M303.94 275.55l.5.477-.5-.477z"/> - <path fill="#184a00" d="M304.45 275.55l.5.477-.5-.477z"/> - <path fill="#297b00" d="M304.95 275.55l.5.477-.5-.477m4.345.16l.334.158-.335-.16m1.17-.158l.5.477-.5-.477z"/> - <path fill="#7b7373" d="M310.96 275.55l.5.477-.5-.477z"/> - <path fill="#bdbdbd" d="M219.22 276.03l.5.477-.5-.477z"/> - <path fill="#295200" d="M219.72 276.03l.5.477-.5-.477z"/> - <path fill="#103900" d="M221.73 276.03l.5.477-.5-.477z"/> - <path fill="#294200" d="M223.23 276.03l1.003.954-1.003-.954z"/> - <path fill="#397b00" d="M223.73 276.03l.5.477-.5-.477z"/> - <path fill="#295200" d="M224.73 276.03l-.5 1.43.5-1.43z"/> - <path fill="#bdbdbd" d="M228.24 276.03l.5.477-.5-.477z"/> - <path fill="#397b00" d="M228.74 276.03l.5.477-.5-.477z"/> - <path fill="#295200" d="M229.75 276.03l.5.477-.5-.477z"/> - <path fill="#738c63" d="M232.76 276.03l.5.477-.5-.477z"/> - <path fill="#cecece" d="M233.76 276.03l-2.005 2.385 2.005-2.385z"/> - <path fill="#214210" d="M234.26 276.03l.5.477-.5-.477z"/> - <path fill="#8c8c8c" d="M235.43 276.35l.167.318-.167-.318z"/> - <path fill="#efefef" d="M237.27 276.03l.5.477-.5-.477z"/> - <path fill="#8c8c8c" d="M237.77 276.03l.5.477-.5-.477z"/> - <path fill="#315221" d="M238.27 276.03l.5.477-.5-.477z"/> - <path fill="#294200" d="M238.77 276.03v1.43h.5l-.5-1.43z"/> - <path fill="#397b00" d="M239.61 276.19l.334.16-.334-.16z"/> - <path fill="#214210" d="M240.28 276.03l.5.477-.5-.477z"/> - <path fill="#733939" d="M240.78 276.03l.5.477-.5-.477z"/> - <path fill="#941808" d="M246.29 276.03l.5.477-.5-.477z"/> - <path fill="#943131" d="M252.31 276.03l.5.477-.5-.477z"/> - <path fill="#cecece" d="M256.82 276.03l.5.477-.5-.477z"/> - <path fill="#636b7b" d="M257.32 276.03l.5.477-.5-.477z"/> - <path fill="#10295a" d="M257.82 276.03l.5.477-.5-.477z"/> - <path fill="#00184a" d="M258.66 276.19l.334.16-.334-.16z"/> - <path fill="#001039" d="M259.33 276.03l.5.477-.5-.477z"/> - <path fill="#00215a" d="M261.83 276.03l.5.477-.5-.477z"/> - <path fill="#efefef" d="M262.33 276.03l.5.477-.5-.477z"/> - <path fill="#b51010" d="M266.85 276.03l.5.477-.5-.477z"/> - <path fill="#bd0008" d="M267.35 276.03l.5.477-.5-.477z"/> - <path fill="#de2110" d="M268.35 276.03l2.005 5.247-2.005-5.247z"/> - <path fill="#391810" d="M268.85 276.03l.5.477-.5-.477z"/> - <path fill="#636b7b" d="M269.35 276.03l.5.477-.5-.477z"/> - <path fill="#21315a" d="M269.85 276.03l.5.477-.5-.477z"/> - <path fill="#525a6b" d="M271.86 276.03l.5.477-.5-.477z"/> - <path fill="#9c4a42" d="M276.87 276.03l.5.477-.5-.477z"/> - <path fill="#ce1810" d="M282.89 276.03l.5.477-.5-.477z"/> - <path fill="#184a00" d="M290.07 276.35l.167.318-.167-.318z"/> - <path fill="#395231" d="M290.41 276.03l.5.477-.5-.477z"/> - <path fill="#dedede" d="M291.41 276.03l-.5.954.5-.954z"/> - <path fill="#296300" d="M291.91 276.03l.5.477-.5-.477z"/> - <path fill="#184a00" d="M293.42 276.03l.5.477-.5-.477z"/> - <path fill="#185200" d="M295.42 276.03l.5.477-.5-.477z"/> - <path fill="#103900" d="M299.93 276.03l.5.477-.5-.477z"/> - <path fill="#296300" d="M303.11 276.35l.167.318-.167-.318z"/> - <path fill="#103900" d="M303.44 276.03l.5.477-.5-.477z"/> - <path fill="#185200" d="M307.96 276.03l.5.477-.5-.477z"/> - <path fill="#425242" d="M308.46 276.03l.5.477-.5-.477z"/> - <path fill="#9c9494" d="M308.96 276.03l.5.477-.5-.477z"/> - <path fill="#7b7373" d="M309.46 276.03l.5.477-.5-.477z"/> - <path fill="#185200" d="M309.96 276.03l1.003.954-1.003-.954z"/> - <path fill="#315221" d="M310.96 276.03l.5.477-.5-.477z"/> - <path fill="#7b7373" d="M219.72 276.51l.5.477-.5-.477z"/> - <path fill="#397b00" d="M220.22 276.51l1.003.954-1.003-.954m1.504 0l1.504.954v-.477l-1.504-.477z"/> - <path fill="#294200" d="M222.23 276.51l.5.477-.5-.477z"/> - <path fill="#397b00" d="M224.23 276.51l.5.477-.5-.477z"/> - <path fill="#9c9494" d="M227.24 276.51l.5.477-.5-.477z"/> - <path fill="#efefef" d="M228.24 276.51l.5.477-.5-.477z"/> - <path fill="#295200" d="M228.74 276.51l.5.477-.5-.477z"/> - <path fill="#294200" d="M229.75 276.51v1.43h.5l-.5-1.43z"/> - <path fill="#295200" d="M231.75 276.51l.5.477-.5-.477z"/> - <path fill="#396b10" d="M232.25 276.51l.5.477-.5-.477z"/> - <path fill="#efefef" d="M232.76 276.51l.5.477-.5-.477z"/> - <path fill="#214210" d="M233.76 276.51l.5.477-.5-.477z"/> - <path fill="#295200" d="M234.76 276.51l.5.477-.5-.477z"/> - <path fill="#efefef" d="M236.26 276.51l-.5.954.5-.954z"/> - <path fill="#63636b" d="M236.77 276.51l.5.477-.5-.477z"/> - <path fill="#396b10" d="M237.27 276.51l.5.477-.5-.477z"/> - <path fill="#295200" d="M239.77 276.51l.5.477-.5-.477z"/> - <path fill="#8c8c8c" d="M240.28 276.51l.5.477-.5-.477z"/> - <path fill="#ad1810" d="M246.29 276.51l.5.477-.5-.477z"/> - <path fill="#a51008" d="M252.31 276.51l.5.477-.5-.477z"/> - <path fill="#bdbdbd" d="M259.33 276.51l.5.477-.5-.477z"/> - <path fill="#00216b" d="M259.83 276.51l.5.477-.5-.477z"/> - <path fill="#00184a" d="M261.83 276.51l.5.477-.5-.477z"/> - <path fill="#8c8c8c" d="M263.84 276.51l.5.477-.5-.477z"/> - <path fill="#a51008" d="M266.85 276.51l.5.477-.5-.477z"/> - <path fill="#6b0808" d="M268.02 276.83l.167.318-.167-.318z"/> - <path fill="#7b0008" d="M268.85 276.51l.5.477-.5-.477z"/> - <path fill="#dedede" d="M269.35 276.51l.5.477-.5-.477z"/> - <path fill="#ad3931" d="M276.87 276.51l.5.477-.5-.477z"/> - <path fill="#842118" d="M282.89 276.51l.5.477-.5-.477z"/> - <path fill="#185200" d="M290.41 276.51l.5.477-.5-.477z"/> - <path fill="#184a00" d="M291.91 276.51l.5.477-.5-.477z"/> - <path fill="#296300" d="M293.75 276.67l.334.16-.334-.16z"/> - <path fill="#185200" d="M296.93 276.51l.5.477-.5-.477z"/> - <path fill="#297b00" d="M301.94 276.51l1.003.954-1.003-.954z"/> - <path fill="#103900" d="M302.44 276.51l.5.477-.5-.477z"/> - <path fill="#296300" d="M306.95 276.51l.5.477-.5-.477z"/> - <path fill="#425242" d="M307.45 276.51l.5.477-.5-.477z"/> - <path fill="#bdbdbd" d="M307.96 276.51l.5.477-.5-.477z"/> - <path fill="#9c9494" d="M309.96 276.51l.5.477-.5-.477z"/> - <path fill="#296300" d="M310.96 276.51l.5.477-.5-.477z"/> - <path fill="#cecece" d="M311.46 276.51l.5.477-.5-.477z"/> - <path fill="#dedede" d="M314.97 276.51l.5.477-.5-.477z"/> - <path fill="#8c8c8c" d="M315.64 276.83l.167.318-.167-.318z"/> - <path fill="#63636b" d="M220.22 276.98l.5.477-.5-.477z"/> - <path fill="#001000" d="M224.73 276.98l.5.477-.5-.477z"/> - <path fill="#397b00" d="M226.74 276.98l.5.477-.5-.477z"/> - <path fill="#bdbdbd" d="M227.24 276.98l.5.477-.5-.477z"/> - <path fill="#294200" d="M228.74 276.98l.5.477-.5-.477z"/> - <path fill="#103900" d="M231.75 276.98l.5.477-.5-.477z"/> - <path fill="#bdc6ad" d="M232.25 276.98l.5.477-.5-.477z"/> - <path fill="#214210" d="M233.26 276.98l.5.477-.5-.477z"/> - <path fill="#295200" d="M234.26 276.98l.5.477-.5-.477z"/> - <path fill="#526b42" d="M235.43 277.3l.167.318-.167-.318z"/> - <path fill="#314231" d="M236.26 276.98l.5.477-.5-.477z"/> - <path fill="#397b00" d="M239.27 276.98l.5.477-.5-.477z"/> - <path fill="#214210" d="M239.77 276.98l.5.477-.5-.477z"/> - <path fill="#ce2110" d="M246.29 276.98l.5.477-.5-.477z"/> - <path fill="#ce1810" d="M252.31 276.98l.5.477-.5-.477z"/> - <path fill="#a59494" d="M252.81 276.98l.5.477-.5-.477z"/> - <path fill="#9c9494" d="M259.33 276.98l.5.477-.5-.477z"/> - <path fill="#002984" d="M259.83 276.98l.5.477-.5-.477z"/> - <path fill="#10295a" d="M261.83 276.98l.5.477-.5-.477z"/> - <path fill="#c6b5b5" d="M263.84 276.98l.5.477-.5-.477z"/> - <path fill="#ce1810" d="M264.51 277.3l.167.318-.167-.318z"/> - <path fill="#bd0008" d="M268.85 276.98l.5.477-.5-.477z"/> - <path fill="#8c8c8c" d="M269.35 276.98l.5.477-.5-.477z"/> - <path fill="#debdb5" d="M276.37 276.98l.5.477-.5-.477z"/> - <path fill="#ce1810" d="M276.87 276.98l.5.477-.5-.477z"/> - <path fill="#00184a" d="M282.89 276.98l.5.477-.5-.477z"/> - <path fill="#5a7b42" d="M289.91 276.98l.5.477-.5-.477z"/> - <path fill="#297b00" d="M290.41 276.98l.5.477-.5-.477z"/> - <path fill="#8c8c8c" d="M290.91 276.98l.5.477-.5-.477z"/> - <path fill="#315221" d="M291.91 276.98l.5.477-.5-.477z"/> - <path fill="#297b00" d="M293.42 276.98l.5.477-.5-.477z"/> - <path fill="#184a00" d="M293.92 276.98v1.43h.5l-.5-1.43z"/> - <path fill="#185200" d="M296.09 277.3l.167.318-.167-.318z"/> - <path fill="#296300" d="M296.93 276.98l.5.477-.5-.477z"/> - <path fill="#184a00" d="M298.93 276.98l.5.477-.5-.477z"/> - <path fill="#185200" d="M301.44 276.98l.5.477-.5-.477z"/> - <path fill="#184a00" d="M301.94 276.98l.5.477-.5-.477z"/> - <path fill="#296300" d="M305.95 276.98l.5.477-.5-.477z"/> - <path fill="#395231" d="M306.45 276.98l.5.477-.5-.477z"/> - <path fill="#bdbdbd" d="M306.95 276.98l.5.477-.5-.477z"/> - <path fill="#63636b" d="M310.46 276.98l.5.477-.5-.477z"/> - <path fill="#297b00" d="M310.96 276.98l.5.477-.5-.477z"/> - <path fill="#63636b" d="M311.46 276.98l.5.477-.5-.477z"/> - <path fill="#dedede" d="M313.47 276.98l.5.477-.5-.477z"/> - <path fill="#8c8c8c" d="M313.97 276.98l.5.477-.5-.477z"/> - <path fill="#314231" d="M314.47 276.98l.5.477-.5-.477z"/> - <path fill="#001000" d="M314.97 276.98l.5.477-.5-.477z"/> - <path fill="#8c8c8c" d="M220.72 277.46l.5.477-.5-.477z"/> - <path fill="#214210" d="M221.22 277.46l.5.477-.5-.477z"/> - <path fill="#397b00" d="M224.73 277.46l.5.477-.5-.477z"/> - <path fill="#294200" d="M225.4 277.78l.167.318-.167-.318z"/> - <path fill="#8c8c8c" d="M227.24 277.46l.5.477-.5-.477z"/> - <path fill="#5a5231" d="M228.74 277.46l.5.477-.5-.477z"/> - <path fill="#295200" d="M231.25 277.46l-.5.954.5-.954z"/> - <path fill="#425242" d="M231.75 277.46l.5.477-.5-.477z"/> - <path fill="#214210" d="M232.76 277.46l.5.477-.5-.477z"/> - <path fill="#103900" d="M234.26 277.46l.5.477-.5-.477z"/> - <path fill="#425242" d="M235.76 277.46l.5.477-.5-.477z"/> - <path fill="#103900" d="M238.27 277.46l.5.477-.5-.477z"/> - <path fill="#397b00" d="M238.77 277.46l.5.477-.5-.477z"/> - <path fill="#6b735a" d="M239.77 277.46l.5.477-.5-.477z"/> - <path fill="#a51008" d="M246.79 277.46l.5.477-.5-.477z"/> - <path fill="#842118" d="M252.81 277.46l.5.477-.5-.477z"/> - <path fill="#8c8c8c" d="M259.33 277.46l.5.477-.5-.477z"/> - <path fill="#42425a" d="M261.83 277.46v3.816h.5l-.5-3.816z"/> - <path fill="#bdbdbd" d="M263.84 277.46l.5.477-.5-.477z"/> - <path fill="#a51008" d="M266.85 277.46l.5.477-.5-.477z"/> - <path fill="#ad0008" d="M268.35 277.46l.5.477-.5-.477z"/> - <path fill="#733939" d="M269.35 277.46l.5.477-.5-.477z"/> - <path fill="#9c4239" d="M276.37 277.46l.5.477-.5-.477z"/> - <path fill="#ce1810" d="M282.39 277.46l.5.477-.5-.477z"/> - <path fill="#7b7373" d="M288.9 277.46l1.003.954-1.003-.954z"/> - <path fill="#4a6342" d="M290.07 277.78l.167.318-.167-.318z"/> - <path fill="#314231" d="M290.91 277.46l.5.477-.5-.477z"/> - <path fill="#4a6342" d="M291.91 277.46l.5.477-.5-.477z"/> - <path fill="#296300" d="M298.43 277.46l.5.477-.5-.477z"/> - <path fill="#185200" d="M298.93 277.46l.5.477-.5-.477z"/> - <path fill="#103900" d="M300.94 277.46l.5.477-.5-.477z"/> - <path fill="#296300" d="M301.44 277.46l.5.477-.5-.477m3.51 0l.5.477-.5-.477z"/> - <path fill="#294221" d="M305.45 277.46l.5.477-.5-.477z"/> - <path fill="#9c9494" d="M305.95 277.46l.5.477-.5-.477z"/> - <path fill="#7b7373" d="M310.96 277.46l.5.477-.5-.477z"/> - <path fill="#52525a" d="M311.46 277.46l.5.477-.5-.477z"/> - <path fill="#cecece" d="M311.97 277.46l.5.477-.5-.477z"/> - <path fill="#8c8c8c" d="M312.47 277.46l.5.477-.5-.477z"/> - <path fill="#314231" d="M312.97 277.46l.5.477-.5-.477z"/> - <path fill="#185200" d="M313.64 277.78l.167.318-.167-.318z"/> - <path fill="#296300" d="M313.97 277.46l.5.477-.5-.477z"/> - <path fill="#294221" d="M314.47 277.46l.5.477-.5-.477z"/> - <path fill="#bdbdbd" d="M314.97 277.46l.5.477-.5-.477z"/> - <path fill="#efefef" d="M221.22 277.94l.5.477-.5-.477z"/> - <path fill="#8c8c8c" d="M221.73 277.94l.5.477-.5-.477z"/> - <path fill="#5a5231" d="M222.23 277.94l.5.477-.5-.477z"/> - <path fill="#295200" d="M222.73 277.94l.5.477-.5-.477z"/> - <path fill="#5a6b52" d="M227.24 277.94l.5.477-.5-.477z"/> - <path fill="#526b42" d="M228.74 277.94l.5.477-.5-.477z"/> - <path fill="#213918" d="M231.25 277.94l.5.477-.5-.477z"/> - <path fill="#315221" d="M232.25 277.94l.5.477-.5-.477z"/> - <path fill="#295200" d="M233.76 277.94l.5.477-.5-.477z"/> - <path fill="#397b00" d="M234.26 277.94l.5.477-.5-.477z"/> - <path fill="#292100" d="M235.26 277.94l.5.477-.5-.477z"/> - <path fill="#397b00" d="M235.76 277.94l.5.477-.5-.477z"/> - <path fill="#295200" d="M237.77 277.94l.5.477-.5-.477z"/> - <path fill="#397b00" d="M238.27 277.94l.5.477-.5-.477m1.003 0l.5.477-.5-.477z"/> - <path fill="#ada5a5" d="M239.77 277.94l.5.477-.5-.477z"/> - <path fill="#ad1810" d="M246.79 277.94l.5.477-.5-.477z"/> - <path fill="#ce1810" d="M252.81 277.94l.5.477-.5-.477z"/> - <path fill="#8c8c8c" d="M253.31 277.94l.5.477-.5-.477z"/> - <path fill="#7b7373" d="M259.33 277.94l.5.477-.5-.477z"/> - <path fill="#efefef" d="M263.84 277.94l.5.477-.5-.477z"/> - <path fill="#b51010" d="M264.34 277.94l.5.477-.5-.477z"/> - <path fill="#ad0008" d="M267.35 277.94l.5.477-.5-.477z"/> - <path fill="#bd0008" d="M267.85 277.94l.5.477-.5-.477z"/> - <path fill="#7b0008" d="M268.35 277.94l.5.477-.5-.477z"/> - <path fill="#940008" d="M269.35 277.94l.5.477-.5-.477z"/> - <path fill="#dedede" d="M269.85 277.94l.5.477-.5-.477z"/> - <path fill="#a5847b" d="M275.87 277.94l-.5.954.5-.954z"/> - <path fill="#ce1810" d="M276.37 277.94l.5.477-.5-.477z"/> - <path fill="#392121" d="M282.39 277.94l.5.477-.5-.477z"/> - <path fill="#103910" d="M288.9 277.94l.5.477-.5-.477z"/> - <path fill="#185200" d="M290.91 277.94l.5.477-.5-.477z"/> - <path fill="#efefef" d="M291.41 277.94l.5.477-.5-.477z"/> - <path fill="#6b735a" d="M291.91 277.94l.5.477-.5-.477z"/> - <path fill="#184a00" d="M296.09 278.26l.167.318-.167-.318z"/> - <path fill="#297b00" d="M297.93 277.94l1.003.954-1.003-.954z"/> - <path fill="#103900" d="M298.43 277.94l.5.477-.5-.477m2.005 0l.502.477-.502-.477z"/> - <path fill="#297b00" d="M303.94 277.94l.5.477-.5-.477z"/> - <path fill="#214210" d="M304.45 277.94l.5.477-.5-.477z"/> - <path fill="#9c9494" d="M304.95 277.94l.5.477-.5-.477z"/> - <path fill="#bdbdbd" d="M309.29 278.1l.334.16-.334-.16z"/> - <path fill="#8c8c8c" d="M309.96 277.94l.5.477-.5-.477z"/> - <path fill="#6b735a" d="M310.46 277.94l.5.477-.5-.477z"/> - <path fill="#4a6342" d="M310.96 277.94l.5.477-.5-.477z"/> - <path fill="#184a00" d="M311.46 277.94l.5.477-.5-.477z"/> - <path fill="#296300" d="M311.97 277.94l.5.477-.5-.477z"/> - <path fill="#297b00" d="M312.47 277.94l-.5.954.5-.954z"/> - <path fill="#319400" d="M312.97 277.94l.5.477-.5-.477z"/> - <path fill="#7b7373" d="M313.97 277.94l.5.477-.5-.477z"/> - <path fill="#efefef" d="M314.47 277.94l.5.477-.5-.477z"/> - <path fill="#dedede" d="M222.73 278.42l.5.477-.5-.477z"/> - <path fill="#8c8c8c" d="M223.23 278.42l.5.477-.5-.477z"/> - <path fill="#5a5231" d="M223.73 278.42l.5.477-.5-.477z"/> - <path fill="#295200" d="M224.23 278.42l.5.477-.5-.477m1.504 0l.5.477-.5-.477z"/> - <path fill="#315221" d="M227.24 278.42l.5.477-.5-.477z"/> - <path fill="#292100" d="M230.75 278.42l.5.477-.5-.477z"/> - <path fill="#8c8c8c" d="M231.25 278.42l.5.477-.5-.477z"/> - <path fill="#63636b" d="M231.75 278.42l.5.477-.5-.477z"/> - <path fill="#294200" d="M233.76 278.42l.5.477-.5-.477m1.504 0l.5.477-.5-.477z"/> - <path fill="#397b00" d="M237.27 278.42l.5.477-.5-.477z"/> - <path fill="#294200" d="M237.77 278.42l.5.477-.5-.477m1.504 0l.5.477-.5-.477z"/> - <path fill="#941808" d="M247.29 278.42l.5.477-.5-.477z"/> - <path fill="#b51010" d="M253.31 278.42l1.003.954-1.003-.954z"/> - <path fill="#a59494" d="M253.81 278.42l.5.477-.5-.477z"/> - <path fill="#a51008" d="M264.34 278.42l.5.477-.5-.477z"/> - <path fill="#de2110" d="M267.85 278.42v6.678h1.504l-1.504-6.678z"/> - <path fill="#6b0808" d="M268.52 278.73l.167.318-.167-.318z"/> - <path fill="#ce0008" d="M269.35 278.42l.5.477-.5-.477z"/> - <path fill="#7b7373" d="M269.85 278.42l.5.477-.5-.477z"/> - <path fill="#ce1810" d="M275.87 278.42l.5.477-.5-.477z"/> - <path fill="#ad1810" d="M281.89 278.42l.5.477-.5-.477z"/> - <path fill="#5a6b52" d="M288.9 278.42l.5.477-.5-.477z"/> - <path fill="#185200" d="M289.41 278.42l.5.477-.5-.477z"/> - <path fill="#103910" d="M289.91 278.42l.5.477-.5-.477z"/> - <path fill="#297b00" d="M290.91 278.42l.5.477-.5-.477z"/> - <path fill="#9c9494" d="M291.41 278.42l.5.477-.5-.477z"/> - <path fill="#8c9c84" d="M292.08 278.73l.167.318-.167-.318z"/> - <path fill="#296300" d="M293.92 278.42l.5.477-.5-.477z"/> - <path fill="#297b00" d="M294.42 278.42l-.5.954.5-.954z"/> - <path fill="#185200" d="M297.93 278.42l.5.477-.5-.477m1.504 0l-1.504 1.908 1.504-1.908z"/> - <path fill="#184a00" d="M299.93 278.42l.5.477-.5-.477z"/> - <path fill="#297b00" d="M302.94 278.42l.5.477-.5-.477z"/> - <path fill="#214210" d="M303.44 278.42l.5.477-.5-.477z"/> - <path fill="#8c8c8c" d="M303.94 278.42l.5.477-.5-.477z"/> - <path fill="#cecece" d="M304.45 278.42l.5.477-.5-.477z"/> - <path fill="#bdbdbd" d="M304.95 278.42l.5.477-.5-.477z"/> - <path fill="#8c8c8c" d="M305.78 278.57l.334.16-.334-.16z"/> - <path fill="#6b735a" d="M306.45 278.42l.5.477-.5-.477z"/> - <path fill="#4a6342" d="M306.95 278.42l.5.477-.5-.477z"/> - <path fill="#426331" d="M307.45 278.42l.5.477-.5-.477z"/> - <path fill="#184a00" d="M307.96 278.42l.5.477-.5-.477z"/> - <path fill="#185200" d="M308.46 278.42l.5.477-.5-.477z"/> - <path fill="#296300" d="M309.29 278.57l.334.16-.334-.16z"/> - <path fill="#184a00" d="M312.47 278.42l.5.477-.5-.477z"/> - <path fill="#63636b" d="M312.97 278.42l.5.477-.5-.477z"/> - <path fill="#dedede" d="M313.47 278.42l.5.477-.5-.477m-89.237.477l.5.477-.5-.477z"/> - <path fill="#52525a" d="M224.73 278.89l.5.477-.5-.477z"/> - <path fill="#103900" d="M225.24 278.89l.5.477-.5-.477z"/> - <path fill="#422100" d="M225.74 278.89l.5.477-.5-.477z"/> - <path fill="#294200" d="M226.24 278.89l1.003.954-1.003-.954z"/> - <path fill="#397b00" d="M227.24 278.89l.5.477-.5-.477z"/> - <path fill="#bdbdbd" d="M227.74 278.89l.5.477-.5-.477z"/> - <path fill="#293129" d="M230.75 278.89l.5.477-.5-.477z"/> - <path fill="#dedede" d="M231.25 278.89l.5.477-.5-.477z"/> - <path fill="#295200" d="M231.75 278.89l.5.477-.5-.477z"/> - <path fill="#103900" d="M233.26 278.89l.5.477-.5-.477z"/> - <path fill="#295200" d="M235.26 278.89l.5.477-.5-.477z"/> - <path fill="#103900" d="M237.27 278.89l.5.477-.5-.477z"/> - <path fill="#5a6b52" d="M239.27 278.89l.5.477-.5-.477z"/> - <path fill="#ce2110" d="M247.29 278.89l.5.477-.5-.477z"/> - <path fill="#b51010" d="M247.8 278.89l1.003 1.43-1.003-1.43z"/> - <path fill="#8c7373" d="M254.31 278.89l.5.477-.5-.477z"/> - <path fill="#efefef" d="M254.81 278.89l.5.477-.5-.477z"/> - <path fill="#ad1810" d="M264.34 278.89l.5.477-.5-.477z"/> - <path fill="#a51008" d="M267.51 279.21l.167.318-.167-.318z"/> - <path fill="#6b2131" d="M269.85 278.89l.5.477-.5-.477z"/> - <path fill="#946b63" d="M274.87 278.89l.5.477-.5-.477z"/> - <path fill="#ce1810" d="M275.37 278.89l.5.477-.5-.477m6.016 0l-.5.954.5-.954z"/> - <path fill="#00216b" d="M281.89 278.89l.5.477-.5-.477z"/> - <path fill="#8c8c8c" d="M288.9 278.89l.5.477-.5-.477z"/> - <path fill="#319400" d="M289.41 278.89l.5.477-.5-.477z"/> - <path fill="#103900" d="M289.91 278.89l.5.477-.5-.477z"/> - <path fill="#5a6b52" d="M291.41 278.89l.5.477-.5-.477z"/> - <path fill="#185200" d="M294.59 279.21l.167.318-.167-.318m1.337-.318l.5.477-.5-.478z"/> - <path fill="#297b00" d="M301.94 278.89l.5.477-.5-.477z"/> - <path fill="#184a00" d="M302.44 278.89l.5.477-.5-.477z"/> - <path fill="#001000" d="M302.94 278.89l.5.477-.5-.477z"/> - <path fill="#395231" d="M303.44 278.89l.5.477-.5-.477z"/> - <path fill="#184a00" d="M303.94 278.89l.5.477-.5-.477z"/> - <path fill="#185200" d="M304.45 278.89l.5.477-.5-.477z"/> - <path fill="#296300" d="M304.95 278.89l.5.477-.5-.477z"/> - <path fill="#297b00" d="M310.96 278.89l.5.477-.5-.477z"/> - <path fill="#184a00" d="M311.46 278.89l.5.477-.5-.477z"/> - <path fill="#63636b" d="M311.97 278.89l.5.477-.5-.477z"/> - <path fill="#dedede" d="M312.47 278.89l.5.477-.5-.477z"/> - <path fill="#8c8c8c" d="M224.73 279.37l.5.477-.5-.477z"/> - <path fill="#bd2110" d="M225.24 279.37l.5.477-.5-.477z"/> - <path fill="#ce2110" d="M226.24 279.37l.5.477-.5-.477z"/> - <path fill="#425242" d="M227.74 279.37l.5.477-.5-.477z"/> - <path fill="#397b00" d="M230.25 279.37l.5.477-.5-.477z"/> - <path fill="#ada5a5" d="M230.75 279.37l.5.477-.5-.477z"/> - <path fill="#8c8c8c" d="M231.25 279.37l.5.477-.5-.477z"/> - <path fill="#397b00" d="M233.09 279.53l.334.16-.334-.16m2.005 0l.334.16-.335-.16z"/> - <path fill="#103900" d="M236.77 279.37l.5.477-.5-.477z"/> - <path fill="#397b00" d="M238.77 279.37l.5.477-.5-.477z"/> - <path fill="#9c9494" d="M239.27 279.37l.5.477-.5-.477z"/> - <path fill="#ad1810" d="M254.81 279.37l.5.477-.5-.477z"/> - <path fill="#8c7373" d="M255.32 279.37l.5.477-.5-.477z"/> - <path fill="#efefef" d="M255.82 279.37l.5.477-.5-.477z"/> - <path fill="#943131" d="M264.51 279.69l.167.318-.167-.318z"/> - <path fill="#940008" d="M268.35 279.37l.5.477-.5-.477z"/> - <path fill="#ad0008" d="M268.85 279.37l.5.477-.5-.477z"/> - <path fill="#940008" d="M269.85 279.37l.5.477-.5-.477z"/> - <path fill="#cecece" d="M270.36 279.37l.5.477-.5-.477z"/> - <path fill="#a5847b" d="M273.86 279.37l.5.477-.5-.477z"/> - <path fill="#9c2118" d="M274.37 279.37l.5.477-.5-.477z"/> - <path fill="#00216b" d="M281.38 279.37l.5.477-.5-.477z"/> - <path fill="#bdbdbd" d="M289.07 279.69l.167.318-.167-.318z"/> - <path fill="#297b00" d="M289.41 279.37v.477h1.504v-.477h-1.504z"/> - <path fill="#185200" d="M289.91 279.37l.5.477-.5-.477z"/> - <path fill="#184a00" d="M291.41 279.37l.5.477-.5-.477z"/> - <path fill="#395231" d="M291.91 279.37l.5.477-.5-.477z"/> - <path fill="#184a00" d="M295.92 279.37l.5.477-.5-.477m5.515 0l.5.477-.5-.477z"/> - <path fill="#082108" d="M301.94 279.37l.5.477-.5-.477z"/> - <path fill="#185200" d="M302.44 279.37l.5.477-.5-.477z"/> - <path fill="#297b00" d="M309.96 279.37l.5.477-.5-.477z"/> - <path fill="#214210" d="M310.46 279.37l.5.477-.5-.477z"/> - <path fill="#63636b" d="M310.96 279.37l.5.477-.5-.477z"/> - <path fill="#dedede" d="M311.46 279.37l.5.477-.5-.477z"/> - <path fill="#52525a" d="M224.73 279.85l.5.477-.5-.477z"/> - <path fill="#422100" d="M226.74 279.85l.5.477-.5-.477z"/> - <path fill="#295200" d="M227.74 279.85l.5.477-.5-.477z"/> - <path fill="#bdbdbd" d="M228.24 279.85l.5.477-.5-.477z"/> - <path fill="#214210" d="M230.25 279.85l.5.477-.5-.477z"/> - <path fill="#314231" d="M231.25 279.85l.5.477-.5-.477z"/> - <path fill="#294200" d="M232.76 279.85l.5.477-.5-.477z"/> - <path fill="#103900" d="M234.76 279.85l.5.477-.5-.477z"/> - <path fill="#294200" d="M236.26 279.85l.5.477-.5-.477z"/> - <path fill="#397b00" d="M236.77 279.85l.5.477-.5-.477z"/> - <path fill="#396b10" d="M238.77 279.85l.5.477-.5-.477z"/> - <path fill="#efefef" d="M239.27 279.85l.5.477-.5-.477z"/> - <path fill="#a51008" d="M248.8 279.85l.5.477-.5-.477m7.02 0l.5.477-.5-.477z"/> - <path fill="#9c2929" d="M256.32 279.85l.5.477-.5-.477z"/> - <path fill="#845a52" d="M256.82 279.85l.5.477-.5-.477z"/> - <path fill="#a59494" d="M257.32 279.85l.5.477-.5-.477z"/> - <path fill="#c6b5b5" d="M257.82 279.85l.5.477-.5-.477z"/> - <path fill="#8c7373" d="M258.66 280.01l.334.16-.334-.16z"/> - <path fill="#212139" d="M259.33 279.85l.5.477-.5-.477z"/> - <path fill="#b51010" d="M267.35 279.85l.5.477-.5-.477z"/> - <path fill="#ce0008" d="M268.35 279.85l.5.477-.5-.477z"/> - <path fill="#6b0808" d="M268.85 279.85l.5.477-.5-.477z"/> - <path fill="#ce0008" d="M269.85 279.85l.5.477-.5-.477z"/> - <path fill="#734a42" d="M270.36 279.85l.5.477-.5-.477z"/> - <path fill="#946b63" d="M270.86 279.85l.5.477-.5-.477z"/> - <path fill="#bd8c8c" d="M271.36 279.85l.5.477-.5-.477z"/> - <path fill="#a5847b" d="M271.86 279.85l.5.477-.5-.477z"/> - <path fill="#9c5a52" d="M272.36 279.85l.5.477-.5-.477z"/> - <path fill="#ad3931" d="M272.86 279.85l.5.477-.5-.477z"/> - <path fill="#b51010" d="M273.36 279.85l.5.477-.5-.477m7.02 0l.5.477-.5-.477z"/> - <path fill="#00216b" d="M280.88 279.85l.5.477-.5-.477z"/> - <path fill="#296300" d="M289.41 279.85l.5.477-.5-.477z"/> - <path fill="#103900" d="M290.58 280.16l.167.318-.167-.318z"/> - <path fill="#297b00" d="M291.41 279.85l.5.477-.5-.477z"/> - <path fill="#082108" d="M291.91 279.85l.5.477-.5-.477z"/> - <path fill="#184a00" d="M294.42 279.85v1.43h.5l-.5-1.43z"/> - <path fill="#103900" d="M300.94 279.85l.5.477-.5-.477z"/> - <path fill="#297b00" d="M308.46 279.85l.5.477-.5-.477z"/> - <path fill="#185200" d="M308.96 279.85l.5.477-.5-.477z"/> - <path fill="#425242" d="M309.46 279.85l.5.477-.5-.477z"/> - <path fill="#9c9494" d="M309.96 279.85l.5.477-.5-.477z"/> - <path fill="#efefef" d="M310.46 279.85l.5.477-.5-.477z"/> - <path fill="#ada5a5" d="M224.73 280.32l.5.477-.5-.477z"/> - <path fill="#7b1008" d="M225.24 280.32l.5.477-.5-.477z"/> - <path fill="#941808" d="M226.24 280.32l.5.477-.5-.477z"/> - <path fill="#213918" d="M226.74 280.32l.5.477-.5-.477z"/> - <path fill="#314231" d="M228.24 280.32l.5.477-.5-.477z"/> - <path fill="#5a6b52" d="M230.25 280.32l.5.477-.5-.477z"/> - <path fill="#efefef" d="M230.75 280.32l.5.477-.5-.477z"/> - <path fill="#295200" d="M231.25 280.32l.5.477-.5-.477m1.504 0l.5.477-.5-.477m1.504 0l-1.003 1.908h.502l.5-1.908z"/> - <path fill="#397b00" d="M234.76 280.32l.5.477-.5-.477z"/> - <path fill="#295200" d="M236.1 280.48l.334.16-.334-.16z"/> - <path fill="#397b00" d="M238.27 280.32l.5.477-.5-.477z"/> - <path fill="#8c8c8c" d="M238.77 280.32l.5.477-.5-.477z"/> - <path fill="#ce2110" d="M248.8 280.32l.5.477-.5-.477z"/> - <path fill="#941808" d="M249.3 280.32l.5.477-.5-.477z"/> - <path fill="#7b1008" d="M259.33 280.32l.5.477-.5-.477z"/> - <path fill="#8c6363" d="M264.34 280.32l.5.477-.5-.477z"/> - <path fill="#a51008" d="M267.51 280.64l.167.318-.167-.318z"/> - <path fill="#520808" d="M268.85 280.32l.5.477-.5-.477z"/> - <path fill="#ad1810" d="M270.36 280.32l.5.477-.5-.477z"/> - <path fill="#7b1008" d="M279.88 280.32l.5.477-.5-.477z"/> - <path fill="#002984" d="M280.38 280.32l.5.477-.5-.477z"/> - <path fill="#185200" d="M289.41 280.32l.5.477-.5-.477z"/> - <path fill="#103900" d="M291.91 280.32l.5.477-.5-.477z"/> - <path fill="#297b00" d="M297.93 280.32l.5.477-.5-.477z"/> - <path fill="#296300" d="M299.93 280.32l.5.477-.5-.477z"/> - <path fill="#103900" d="M300.44 280.32l.5.477-.5-.477z"/> - <path fill="#297b00" d="M307.45 280.32l.5.477-.5-.477z"/> - <path fill="#214210" d="M307.96 280.32l.5.477-.5-.477z"/> - <path fill="#7b7373" d="M308.46 280.32l.5.477-.5-.477z"/> - <path fill="#dedede" d="M308.96 280.32l.5.477-.5-.477z"/> - <path fill="#cecece" d="M225.24 280.8l.5.477-.5-.477z"/> - <path fill="#8c8c8c" d="M225.74 280.8l.5.477-.5-.477z"/> - <path fill="#bdbdbd" d="M226.24 280.8l.5.477-.5-.477z"/> - <path fill="#cecece" d="M226.74 280.8l.5.477-.5-.477z"/> - <path fill="#294200" d="M227.24 280.8l.5.477-.5-.477z"/> - <path fill="#397b00" d="M228.24 280.8l.5.477-.5-.477z"/> - <path fill="#292921" d="M228.74 280.8l.5.477-.5-.477z"/> - <path fill="#8c8c8c" d="M230.25 280.8l.5.477-.5-.477z"/> - <path fill="#bdbdbd" d="M230.75 280.8l.5.477-.5-.477z"/> - <path fill="#397b00" d="M231.25 280.8l.5.477-.5-.477z"/> - <path fill="#294200" d="M234.26 280.8l.5.477-.5-.477z"/> - <path fill="#103900" d="M235.26 280.8l.5.477-.5-.477z"/> - <path fill="#397b00" d="M235.76 280.8l.5.477-.5-.477z"/> - <path fill="#314231" d="M238.27 280.8l-1.003 1.43 1.003-1.43z"/> - <path fill="#ad1810" d="M249.8 280.8l.5.477-.5-.477z"/> - <path fill="#941808" d="M250.3 280.8l.5.477-.5-.477z"/> - <path fill="#a51008" d="M259.33 280.8l.5.477-.5-.477z"/> - <path fill="#8c7373" d="M264.34 280.8l.5.477-.5-.477z"/> - <path fill="#6b0808" d="M268.85 280.8l.5.477-.5-.477z"/> - <path fill="#b51010" d="M270.36 280.8l.5.477-.5-.477z"/> - <path fill="#ad1810" d="M278.88 280.8l.5.477-.5-.477z"/> - <path fill="#291029" d="M279.38 280.8l.5.477-.5-.477z"/> - <path fill="#29396b" d="M288.4 280.8l.5.477-.5-.477z"/> - <path fill="#184a00" d="M289.41 280.8l.5.477-.5-.477z"/> - <path fill="#296300" d="M290.41 280.8l.5.477-.5-.477z"/> - <path fill="#297b00" d="M290.91 280.8l.5.477-.5-.477z"/> - <path fill="#184a00" d="M291.91 280.8l.5.477-.5-.477m7.52 0l.5.477-.5-.477z"/> - <path fill="#185200" d="M299.93 280.8l.5.477-.5-.477z"/> - <path fill="#297b00" d="M303.94 280.8l1.003.954-1.003-.954z"/> - <path fill="#185200" d="M304.45 280.8l.5.477-.5-.477z"/> - <path fill="#184a00" d="M304.95 280.8v.477h2.005l-2.005-.477z"/> - <path fill="#185200" d="M306.95 280.8l.5.477-.5-.477z"/> - <path fill="#296300" d="M307.45 280.8l.5.477-.5-.477z"/> - <path fill="#184a00" d="M307.96 280.8v.477h1.504l-1.504-.477z"/> - <path fill="#4a6342" d="M309.46 280.8v.477h1.504l-1.504-.477z"/> - <path fill="#7b8c73" d="M310.96 280.8l.5.477-.5-.477z"/> - <path fill="#8c8c8c" d="M311.46 280.8l.5.477-.5-.477z"/> - <path fill="#bdbdbd" d="M311.97 280.8l.5.477-.5-.477z"/> - <path fill="#efefef" d="M225.24 281.28l.5.477-.5-.477z"/> - <path fill="#7b7373" d="M227.24 281.28l.5.477-.5-.477z"/> - <path fill="#294200" d="M228.74 281.28l.5.477-.5-.477z"/> - <path fill="#295200" d="M229.75 281.28l.5.477-.5-.477z"/> - <path fill="#5a1008" d="M230.25 281.28l.5.477-.5-.477z"/> - <path fill="#733939" d="M230.75 281.28l.5.477-.5-.477z"/> - <path fill="#397b00" d="M234.26 281.28l.5.477-.5-.477z"/> - <path fill="#103900" d="M234.76 281.28l.5.477-.5-.477z"/> - <path fill="#efefef" d="M238.27 281.28l-.5.954.5-.954z"/> - <path fill="#b51010" d="M250.8 281.28l.5.477-.5-.477z"/> - <path fill="#941808" d="M251.3 281.28l.5.477-.5-.477z"/> - <path fill="#b51010" d="M251.81 281.28l1.003.954-1.003-.954z"/> - <path fill="#ce1810" d="M259.33 281.28l.5.477-.5-.477z"/> - <path fill="#00216b" d="M259.83 281.28l.5.477-.5-.477z"/> - <path fill="#425a84" d="M261.83 281.28l.5.477-.5-.477z"/> - <path fill="#b5adad" d="M264.34 281.28l.5.477-.5-.477z"/> - <path fill="#b51010" d="M267.35 281.28l.5.477-.5-.477z"/> - <path fill="#940008" d="M269.19 281.44l.334.16-.334-.16z"/> - <path fill="#ad0008" d="M269.85 281.28l.5.477-.5-.477z"/> - <path fill="#ad1810" d="M270.36 281.28l1.003.954-1.003-.954z"/> - <path fill="#ce1810" d="M277.37 281.28l.5.477-.5-.477z"/> - <path fill="#ad1810" d="M277.88 281.28l.5.477-.5-.477z"/> - <path fill="#00184a" d="M278.38 281.28l.5.477-.5-.477z"/> - <path fill="#42425a" d="M288.4 281.28l.5.477-.5-.477z"/> - <path fill="#396321" d="M289.41 281.28l.5.477-.5-.477z"/> - <path fill="#184a00" d="M290.91 281.28v1.43h.5l-.5-1.43z"/> - <path fill="#296300" d="M291.91 281.28l.5.477-.5-.477z"/> - <path fill="#297b00" d="M292.41 281.28l-.5.954.5-.954z"/> - <path fill="#296300" d="M294.42 281.28v2.385h1.003l-1.003-2.385z"/> - <path fill="#297b00" d="M294.92 281.28l.5.477-.5-.477z"/> - <path fill="#103900" d="M298.93 281.28l-1.003 1.43 1.003-1.43z"/> - <path fill="#297b00" d="M299.43 281.28l.5.477-.5-.477z"/> - <path fill="#296300" d="M303.11 281.6l.167.318-.167-.318z"/> - <path fill="#103900" d="M303.44 281.28l.5.477-.5-.477z"/> - <path fill="#185200" d="M303.94 281.28l.5.477-.5-.477z"/> - <path fill="#297b00" d="M310.96 281.28l.5.477-.5-.477z"/> - <path fill="#184a00" d="M311.46 281.28l.5.477-.5-.477z"/> - <path fill="#313931" d="M311.97 281.28l.5.477-.5-.477z"/> - <path fill="#8c8c8c" d="M225.24 281.75l.5.477-.5-.477z"/> - <path fill="#63636b" d="M225.74 281.75l.5.477-.5-.477z"/> - <path fill="#efefef" d="M226.24 281.75l.5.477-.5-.477z"/> - <path fill="#cecece" d="M227.24 281.75l.5.477-.5-.477z"/> - <path fill="#295200" d="M227.74 281.75l.5.477-.5-.477z"/> - <path fill="#397b00" d="M229.41 282.07l.167.318-.167-.318z"/> - <path fill="#7b1008" d="M229.75 281.75l.5.477-.5-.477z"/> - <path fill="#de2110" d="M230.42 282.07l.167.318-.167-.318z"/> - <path fill="#631808" d="M230.92 282.07l.167.318-.167-.318z"/> - <path fill="#294200" d="M232.76 281.75l.5.477-.5-.477z"/> - <path fill="#397b00" d="M236.77 281.75l.5.477-.5-.477z"/> - <path fill="#946b63" d="M240.78 281.75l.5.477-.5-.477z"/> - <path fill="#bd2110" d="M251.81 281.75l.5.477-.5-.477z"/> - <path fill="#941808" d="M252.81 281.75l.5.477-.5-.477z"/> - <path fill="#ad1810" d="M253.31 281.75l.5.477-.5-.477z"/> - <path fill="#a51008" d="M253.81 281.75l.5.477-.5-.477z"/> - <path fill="#ce1810" d="M254.31 281.75v.477h4.01l-4.01-.477z"/> - <path fill="#941808" d="M258.32 281.75l.5.477-.5-.477z"/> - <path fill="#a51008" d="M258.82 281.75l.5.477-.5-.477z"/> - <path fill="#ad1810" d="M259.33 281.75l.5.477-.5-.477z"/> - <path fill="#00184a" d="M259.83 281.75l.5.477-.5-.477m2.172.318l.168.318-.168-.318z"/> - <path fill="#bdbdbd" d="M264.34 281.75l.5.477-.5-.477z"/> - <path fill="#ce1810" d="M265.01 282.07l.167.318-.167-.318z"/> - <path fill="#000818" d="M269.35 281.75l.5.477-.5-.477z"/> - <path fill="#00184a" d="M269.85 281.75l.5.477-.5-.477z"/> - <path fill="#080829" d="M270.36 281.75l.5.477-.5-.477z"/> - <path fill="#ce1810" d="M271.36 281.75l.5.477-.5-.477z"/> - <path fill="#b51010" d="M275.37 281.75l.5.477-.5-.477z"/> - <path fill="#ad1810" d="M275.87 281.75l.5.477-.5-.477z"/> - <path fill="#5a1021" d="M276.37 281.75l.5.477-.5-.477z"/> - <path fill="#00215a" d="M276.87 281.75l.5.477-.5-.477z"/> - <path fill="#292921" d="M288.4 281.75l.5.477-.5-.477z"/> - <path fill="#5a7b42" d="M289.41 281.75l.5.477-.5-.477z"/> - <path fill="#185200" d="M292.41 281.75l.5.477-.5-.477z"/> - <path fill="#297b00" d="M298.93 281.75l.5.477-.5-.477m2.507 0l1.002.954-1.003-.954z"/> - <path fill="#185200" d="M301.94 281.75l.5.477-.5-.477z"/> - <path fill="#103900" d="M302.44 281.75l.5.477-.5-.477z"/> - <path fill="#297b00" d="M308.46 281.75l.5.477-.5-.477z"/> - <path fill="#296300" d="M308.96 281.75l.5.477-.5-.477z"/> - <path fill="#185200" d="M309.46 281.75l.5.477-.5-.477z"/> - <path fill="#395231" d="M309.96 281.75l.5.477-.5-.477z"/> - <path fill="#63636b" d="M310.46 281.75l.5.477-.5-.477z"/> - <path fill="#9c9494" d="M310.96 281.75l.5.477-.5-.477z"/> - <path fill="#dedede" d="M311.46 281.75l.5.477-.5-.477z"/> - <path fill="#9c9494" d="M225.24 282.23l.5.477-.5-.477z"/> - <path fill="#397b00" d="M225.74 282.23l.5.477-.5-.477z"/> - <path fill="#294200" d="M226.24 282.23l.5.477-.5-.477z"/> - <path fill="#6b735a" d="M226.74 282.23l.5.477-.5-.477z"/> - <path fill="#bdbdbd" d="M227.24 282.23l.5.477-.5-.477z"/> - <path fill="#5a5231" d="M227.74 282.23l.5.477-.5-.477z"/> - <path fill="#ad1810" d="M229.75 282.23l.5.477-.5-.477z"/> - <path fill="#397b00" d="M232.59 282.39l.334.16-.334-.16z"/> - <path fill="#396b10" d="M236.26 282.23l.5.477-.5-.477z"/> - <path fill="#b51010" d="M254.31 282.23l.5.477-.5-.477zm3.51 0l.5.477-.5-.477z"/> - <path fill="#391810" d="M259.83 282.23l.5.477-.5-.477z"/> - <path fill="#dedede" d="M264.34 282.23l.5.477-.5-.477z"/> - <path fill="#291029" d="M269.35 282.23l.5.477-.5-.477z"/> - <path fill="#002984" d="M271.86 282.23v.477h3.51l-3.51-.477z"/> - <path fill="#082108" d="M288.4 282.23l.5.477-.5-.477z"/> - <path fill="#ada5a5" d="M288.9 282.23l.5.477-.5-.477z"/> - <path fill="#4a6342" d="M289.57 282.55l.167.318-.167-.318z"/> - <path fill="#184a00" d="M292.58 282.55l.167.318-.167-.318z"/> - <path fill="#297b00" d="M298.43 282.23l.5.477-.5-.477z"/> - <path fill="#185200" d="M300.94 282.23l.5.477-.5-.477z"/> - <path fill="#103900" d="M301.44 282.23l.5.477-.5-.477z"/> - <path fill="#297b00" d="M305.95 282.23l.5.477-.5-.477z"/> - <path fill="#296300" d="M306.45 282.23l.5.477-.5-.477z"/> - <path fill="#184a00" d="M306.95 282.23l.5.477-.5-.477z"/> - <path fill="#4a6342" d="M307.45 282.23l.5.477-.5-.477z"/> - <path fill="#8c8c8c" d="M307.96 282.23l.5.477-.5-.477z"/> - <path fill="#9c9494" d="M308.46 282.23l.5.477-.5-.477z"/> - <path fill="#bdbdbd" d="M308.96 282.23l.5.477-.5-.477z"/> - <path fill="#cecece" d="M225.24 282.71l.5.477-.5-.477z"/> - <path fill="#295200" d="M225.74 282.71l.5.477-.5-.477z"/> - <path fill="#292100" d="M226.24 282.71l.5.477-.5-.477z"/> - <path fill="#397b00" d="M226.74 282.71l1.003.954v-.954h-1.003z"/> - <path fill="#292100" d="M227.74 282.71l.5.477-.5-.477z"/> - <path fill="#397b00" d="M228.24 282.71l.5.477-.5-.477z"/> - <path fill="#392100" d="M229.75 282.71l.5.477-.5-.477z"/> - <path fill="#b51010" d="M230.25 282.71l.5.477-.5-.477z"/> - <path fill="#5a2908" d="M230.75 282.71l.5.477-.5-.477z"/> - <path fill="#294200" d="M232.25 282.71l.5.477-.5-.477z"/> - <path fill="#214210" d="M235.26 282.71l.5.477-.5-.477z"/> - <path fill="#63636b" d="M235.76 282.71l.5.477-.5-.477z"/> - <path fill="#dedede" d="M236.26 282.71l.5.477-.5-.477z"/> - <path fill="#ad1810" d="M259.83 282.71l.5.477-.5-.477z"/> - <path fill="#00215a" d="M260.33 282.71l.5.477-.5-.477m1.504 0l.5.477-.5-.477z"/> - <path fill="#dedede" d="M262.33 282.71l.5.477-.5-.477z"/> - <path fill="#a51008" d="M264.84 282.71l.5.477-.5-.477z"/> - <path fill="#390821" d="M269.35 282.71l.5.477-.5-.477z"/> - <path fill="#184a00" d="M288.4 282.71l1.003.954-1.003-.954z"/> - <path fill="#5a6b52" d="M288.9 282.71l.5.477-.5-.477z"/> - <path fill="#185200" d="M290.91 282.71l.5.477-.5-.477z"/> - <path fill="#297b00" d="M291.41 282.71l-.5.954.5-.954z"/> - <path fill="#185200" d="M296.93 284.14l1.504-1.43-1.504 1.43z"/> - <path fill="#297b00" d="M299.93 282.71l1.003.954-1.003-.954z"/> - <path fill="#103900" d="M300.44 282.71l.5.477-.5-.477z"/> - <path fill="#296300" d="M300.94 282.71l.5.477-.5-.477m4.01 0l.502.477-.5-.477z"/> - <path fill="#315221" d="M305.45 282.71l.5.477-.5-.477z"/> - <path fill="#8c8c8c" d="M305.95 282.71l.5.477-.5-.477z"/> - <path fill="#bdbdbd" d="M306.45 282.71l.5.477-.5-.477z"/> - <path fill="#dedede" d="M219.72 283.19l.5.477-.5-.477z"/> - <path fill="#efefef" d="M220.22 283.19l.5.477-.5-.477z"/> - <path fill="#315221" d="M225.74 283.19l.5.477-.5-.477z"/> - <path fill="#103900" d="M226.74 283.19l.5.477-.5-.477z"/> - <path fill="#295200" d="M228.24 283.19l.5.477-.5-.477z"/> - <path fill="#294200" d="M228.74 283.19l.5 1.43h.503l-1.003-1.43z"/> - <path fill="#397b00" d="M230.25 283.19l.5.477-.5-.477z"/> - <path fill="#103900" d="M230.75 283.19l.5.477-.5-.477z"/> - <path fill="#397b00" d="M232.09 283.34l.334.16-.334-.16m1.67-.16l.502.478-.5-.477z"/> - <path fill="#315221" d="M234.26 283.19l.5.477-.5-.477z"/> - <path fill="#8c8c8c" d="M234.76 283.19l.5.477-.5-.477z"/> - <path fill="#dedede" d="M235.26 283.19l.5.477-.5-.477z"/> - <path fill="#391810" d="M260.33 283.19l.5.477-.5-.477z"/> - <path fill="#00216b" d="M261.83 283.19l.5.477-.5-.477z"/> - <path fill="#bdbdbd" d="M262.33 283.19l.5.477-.5-.477z"/> - <path fill="#ad1810" d="M264.84 283.19l.5.477-.5-.477z"/> - <path fill="#b51010" d="M267.35 283.19l.5.477-.5-.477z"/> - <path fill="#6b0808" d="M269.35 283.19l.5.477-.5-.477z"/> - <path fill="#395231" d="M289.41 283.19l.5.477-.5-.477z"/> - <path fill="#296300" d="M291.41 283.19l.5.477-.5-.477z"/> - <path fill="#185200" d="M292.41 283.19l.5.477-.5-.477z"/> - <path fill="#297b00" d="M292.92 283.19l-.5.954.5-.954z"/> - <path fill="#296300" d="M299.43 283.19l.5.477-.5-.477z"/> - <path fill="#103900" d="M299.93 283.19l.5.477-.5-.477z"/> - <path fill="#185200" d="M303.94 283.19l.5.477-.5-.477z"/> - <path fill="#425242" d="M304.45 283.19l.5.477-.5-.477z"/> - <path fill="#9c9494" d="M304.95 283.19l.5.477-.5-.477z"/> - <path fill="#8c8c8c" d="M219.72 283.66l.5.477-.5-.477z"/> - <path fill="#293129" d="M220.22 283.66l.5.477-.5-.477z"/> - <path fill="#8c8c8c" d="M220.72 283.66l.5.477-.5-.477z"/> - <path fill="#bdbdbd" d="M221.22 283.66l.5.477-.5-.477z"/> - <path fill="#efefef" d="M221.73 283.66l.5.477-.5-.477z"/> - <path fill="#8c8c8c" d="M225.74 283.66l.5.477-.5-.477z"/> - <path fill="#295200" d="M227.24 283.66l.5.477-.5-.477z"/> - <path fill="#294200" d="M227.74 283.66l.5.477-.5-.477z"/> - <path fill="#397b00" d="M228.74 283.66l.5.477-.5-.477z"/> - <path fill="#294200" d="M231.75 283.66l.5.477-.5-.477z"/> - <path fill="#295200" d="M233.26 283.66l.5.477-.5-.477z"/> - <path fill="#8c8c8c" d="M233.76 283.66l.5.477-.5-.477z"/> - <path fill="#9c9494" d="M234.76 283.66l.5.477-.5-.477z"/> - <path fill="#314231" d="M235.26 283.66l.5.477-.5-.477z"/> - <path fill="#dedede" d="M239.27 283.66l.5.477-.5-.477z"/> - <path fill="#bdbdbd" d="M239.77 283.66l.5.477-.5-.477z"/> - <path fill="#bd2110" d="M242.78 283.66l.5.477-.5-.477z"/> - <path fill="#10214a" d="M260.83 283.66l.5.477-.5-.477z"/> - <path fill="#9c9494" d="M262.33 283.66l.5.477-.5-.477z"/> - <path fill="#943131" d="M265.01 283.98l.167.318-.167-.318z"/> - <path fill="#a51008" d="M267.35 283.66l.5.477-.5-.477z"/> - <path fill="#297b00" d="M288.9 283.66l.5.477-.5-.477z"/> - <path fill="#082108" d="M289.41 283.66l.5.477-.5-.477z"/> - <path fill="#184a00" d="M291.58 283.98l.167.318-.167-.318z"/> - <path fill="#296300" d="M292.92 283.66l.5.477-.5-.477z"/> - <path fill="#297b00" d="M294.75 283.82l.334.16-.334-.16m1.67-.16l.502.478-.5-.477z"/> - <path fill="#184a00" d="M298.93 283.66l.5.477-.5-.477z"/> - <path fill="#185200" d="M299.43 283.66l.5.477-.5-.477z"/> - <path fill="#297b00" d="M302.94 283.66l.5.477-.5-.477z"/> - <path fill="#294221" d="M303.44 283.66l.5.477-.5-.477z"/> - <path fill="#bdbdbd" d="M303.94 283.66l.5.477-.5-.477z"/> - <path fill="#cecece" d="M219.72 284.14l.5.477-.5-.477z"/> - <path fill="#295200" d="M220.22 284.14l.5.477-.5-.477zm1.51 0l.5.477-.5-.477z"/> - <path fill="#294200" d="M222.56 284.3l.334.16-.334-.16z"/> - <path fill="#526b42" d="M223.23 284.14l.5.477-.5-.477z"/> - <path fill="#5a6b52" d="M223.73 284.14l.5.477-.5-.477z"/> - <path fill="#8c8c8c" d="M224.23 284.14l.5.477-.5-.477z"/> - <path fill="#bdbdbd" d="M224.73 284.14l.5.477-.5-.477z"/> - <path fill="#dedede" d="M225.24 284.14l.5.477-.5-.477z"/> - <path fill="#efefef" d="M225.74 284.14l.5.477-.5-.477z"/> - <path fill="#315221" d="M226.24 284.14l-.5.954.5-.954z"/> - <path fill="#397b00" d="M227.74 284.14l.5.477-.5-.477z"/> - <path fill="#103900" d="M228.24 284.14l.5.477-.5-.477z"/> - <path fill="#295200" d="M231.75 284.14l.5.477-.5-.477z"/> - <path fill="#397b00" d="M232.76 284.14l.5.477-.5-.477z"/> - <path fill="#ada5a5" d="M233.26 284.14l.5.477-.5-.477z"/> - <path fill="#5a6b52" d="M234.76 284.14l.5.477-.5-.477z"/> - <path fill="#397b00" d="M235.26 284.14v1.908h.5l-.5-1.908z"/> - <path fill="#63636b" d="M235.76 284.14l.5.477-.5-.477z"/> - <path fill="#ada5a5" d="M239.27 284.14l.5.477-.5-.477z"/> - <path fill="#213918" d="M239.77 284.14l1.003.954-1.003-.954z"/> - <path fill="#cecece" d="M240.28 284.14l.5.477-.5-.477z"/> - <path fill="#941808" d="M242.28 284.14l-1.003 1.43 1.003-1.43z"/> - <path fill="#181000" d="M242.78 284.14l.5.477-.5-.477z"/> - <path fill="#8c8c8c" d="M260.83 284.14l.5.477-.5-.477z"/> - <path fill="#00216b" d="M261.33 284.14l.5.477-.5-.477z"/> - <path fill="#8c8c8c" d="M262.33 284.14l.5.477-.5-.477z"/> - <path fill="#b51010" d="M267.35 284.14l.5.477-.5-.477z"/> - <path fill="#319400" d="M288.9 284.14v1.43h.5l-.5-1.43z"/> - <path fill="#103900" d="M289.41 284.14l.5.477-.5-.477z"/> - <path fill="#184a00" d="M293.08 284.46l.167.318-.167-.318z"/> - <path fill="#297b00" d="M296.93 285.57l2.507-1.43-2.507 1.43z"/> - <path fill="#103900" d="M298.43 284.14l.5.477-.5-.477z"/> - <path fill="#296300" d="M302.44 284.14l.5.477-.5-.477z"/> - <path fill="#52525a" d="M302.94 284.14l.5.477-.5-.477z"/> - <path fill="#efefef" d="M303.44 284.14l.5.477-.5-.477z"/> - <path fill="#315221" d="M220.22 284.62l.5.477-.5-.477z"/> - <path fill="#397b00" d="M224.73 284.62l.5.477-.5-.477z"/> - <path fill="#295200" d="M225.24 284.62l.5.477-.5-.477z"/> - <path fill="#52525a" d="M226.24 284.62l.5.477-.5-.477z"/> - <path fill="#295200" d="M226.74 284.62l1.504 1.43-1.504-1.43z"/> - <path fill="#294200" d="M228.74 284.62l.5.477-.5-.477z"/> - <path fill="#103900" d="M229.75 284.62l.5.477-.5-.477z"/> - <path fill="#52525a" d="M232.76 284.62l.5.477-.5-.477z"/> - <path fill="#dedede" d="M234.26 284.62l.5.477-.5-.477z"/> - <path fill="#294200" d="M234.76 284.62l.5.477-.5-.477z"/> - <path fill="#428c00" d="M235.26 284.62l.5.477-.5-.477z"/> - <path fill="#8c8c8c" d="M236.26 284.62l.5.477-.5-.477z"/> - <path fill="#63636b" d="M239.27 284.62l.5.477-.5-.477z"/> - <path fill="#428c00" d="M239.77 284.62c-1.625 3.332-3.374 6.928 1.003 9.063 0-2.8 1.056-6.905-1.003-9.063z"/> - <path fill="#bd2110" d="M241.28 284.62l.5.477-.5-.477z"/> - <path fill="#295200" d="M242.28 284.62l.5.477-.5-.477z"/> - <path fill="#397b00" d="M242.78 284.62l-.5.954h1l-.5-.954z"/> - <path fill="#b51010" d="M243.28 284.62l.5.477-.5-.477z"/> - <path fill="#31394a" d="M261.33 284.62l.5.477-.5-.477z"/> - <path fill="#525a6b" d="M262.33 284.62l.5.477-.5-.477z"/> - <path fill="#8c7373" d="M265.01 284.94l.167.318-.167-.318z"/> - <path fill="#a51008" d="M267.35 284.62l.5.477-.5-.477z"/> - <path fill="#002984" d="M287.57 284.94l.167.318-.167-.318z"/> - <path fill="#00216b" d="M287.9 284.62l.5.477-.5-.477z"/> - <path fill="#001000" d="M288.4 284.62l.5.477-.5-.477z"/> - <path fill="#184a00" d="M289.41 284.62l.5.477-.5-.477z"/> - <path fill="#185200" d="M291.41 284.62l.5.477-.5-.477z"/> - <path fill="#297b00" d="M294.92 284.62l-.5.954.5-.954z"/> - <path fill="#103900" d="M297.93 284.62l.5.477-.5-.477z"/> - <path fill="#297b00" d="M301.44 284.62l.5.477-.5-.477z"/> - <path fill="#103900" d="M301.94 284.62l.5.477-.5-.477z"/> - <path fill="#7b7373" d="M302.44 284.62l.5.477-.5-.477z"/> - <path fill="#ada5a5" d="M302.94 284.62l.5.477-.5-.477z"/> - <path fill="#8c8c8c" d="M303.78 284.78l.334.16-.334-.16z"/> - <path fill="#4a6342" d="M304.78 284.78l.334.16-.334-.16z"/> - <path fill="#295210" d="M305.45 284.62l.5.477-.5-.477z"/> - <path fill="#184a00" d="M305.95 284.62l.5.477-.5-.477z"/> - <path fill="#296300" d="M306.45 284.62v.477h2.507l-2.507-.477z"/> - <path fill="#184a00" d="M308.96 284.62l.5.477-.5-.477z"/> - <path fill="#082108" d="M309.46 284.62l.5.477-.5-.477z"/> - <path fill="#313931" d="M309.96 284.62l.5.477-.5-.477z"/> - <path fill="#63636b" d="M310.46 284.62l.5.477-.5-.477z"/> - <path fill="#9c9494" d="M310.96 284.62l.5.477-.5-.477m-90.74.477l.5.477-.5-.477z"/> - <path fill="#295200" d="M221.73 285.09l.5.477-.5-.477z"/> - <path fill="#294200" d="M222.56 285.25l.334.16-.334-.16z"/> - <path fill="#397b00" d="M223.4 285.41l.167.318-.167-.318z"/> - <path fill="#292100" d="M226.74 285.09l.5.477-.5-.477z"/> - <path fill="#397b00" d="M229.75 285.09l-.5 1.43h.5v-1.43m2.507 0l.5.477-.5-.477z"/> - <path fill="#8c8c8c" d="M232.76 285.09l.5.477-.5-.477z"/> - <path fill="#425242" d="M234.26 285.09l.5.477-.5-.477z"/> - <path fill="#428c00" d="M234.76 285.09c-1.176 3.072-.87 4.894 1.003 7.633h.5v-7.633h-.5v5.724h-1.003v-5.724z"/> - <path fill="#315221" d="M236.26 285.09l.5.477-.5-.477z"/> - <path fill="#efefef" d="M238.77 285.09l.5.477-.5-.477z"/> - <path fill="#396b10" d="M239.27 285.09l.5.477-.5-.477z"/> - <path fill="#293129" d="M240.78 285.09l.5.477-.5-.477z"/> - <path fill="#293100" d="M241.78 285.09l.5.477-.5-.477z"/> - <path fill="#631808" d="M243.28 285.09l.5.477-.5-.477z"/> - <path fill="#cecece" d="M261.33 285.09l.5.477-.5-.477z"/> - <path fill="#001039" d="M261.83 285.09l.5.477-.5-.477z"/> - <path fill="#42425a" d="M262.33 285.09l.5.477-.5-.477z"/> - <path fill="#520808" d="M267.35 285.09l.5.477-.5-.477z"/> - <path fill="#6b5252" d="M267.85 285.09l.5.477-.5-.477z"/> - <path fill="#8c8c8c" d="M268.35 285.09l.5.477-.5-.477z"/> - <path fill="#290018" d="M268.85 285.09l.5.477-.5-.477z"/> - <path fill="#420000" d="M269.35 285.09l.5.477-.5-.477z"/> - <path fill="#001010" d="M287.9 285.09l.5.477-.5-.477z"/> - <path fill="#292921" d="M288.4 285.09l.5.477-.5-.477z"/> - <path fill="#185200" d="M289.41 285.09l1.003.954-1.003-.954z"/> - <path fill="#297b00" d="M289.91 285.09l.5.477-.5-.477z"/> - <path fill="#184a00" d="M291.41 285.09v1.43h.5l-.5-1.43z"/> - <path fill="#185200" d="M292.92 285.09l.5.477-.5-.477z"/> - <path fill="#103900" d="M297.43 285.09l.5.477-.5-.477z"/> - <path fill="#297b00" d="M299.93 285.09l.5.477-.5-.477z"/> - <path fill="#184a00" d="M300.44 285.09v.477h1.504l-1.504-.477z"/> - <path fill="#296300" d="M302.27 285.25l.334.16-.334-.16z"/> - <path fill="#297b00" d="M302.94 285.09l.5.477-.5-.477m3.51 0l.5.477-.5-.477z"/> - <path fill="#185200" d="M306.95 285.09l.5.477-.5-.477z"/> - <path fill="#315221" d="M307.45 285.09l.5.477-.5-.477z"/> - <path fill="#6b735a" d="M307.96 285.09l.5.477-.5-.477z"/> - <path fill="#8c8c8c" d="M308.46 285.09l.5.477-.5-.477z"/> - <path fill="#bdbdbd" d="M308.96 285.09l.5.477-.5-.477z"/> - <path fill="#425242" d="M220.72 285.57l.5.477-.5-.477z"/> - <path fill="#103900" d="M227.24 285.57l.5.477-.5-.477z"/> - <path fill="#294200" d="M229.75 285.57l.5.477-.5-.477m2.507 0l1.002.954-1.003-.954z"/> - <path fill="#5a5231" d="M232.76 285.57l.5.477-.5-.477z"/> - <path fill="#ada5a5" d="M233.76 285.57l.5.477-.5-.477z"/> - <path fill="#397b00" d="M234.26 285.57l.5.477-.5-.477m2.005 0l.502.477-.502-.477z"/> - <path fill="#9c9494" d="M236.77 285.57l.5.477-.5-.477z"/> - <path fill="#52525a" d="M238.77 285.57l.5.477-.5-.477z"/> - <path fill="#294200" d="M239.94 285.89l.167.318-.167-.318z"/> - <path fill="#295200" d="M240.78 285.57l.5.477-.5-.477z"/> - <path fill="#100808" d="M241.28 285.57l.5.477-.5-.477z"/> - <path fill="#428c00" d="M241.78 285.57l-.5 7.633 1.503-1.432h.5l-.5 1.91c3.922-1.12 4.645-3.654 3.51-7.156l-2.508 5.247h-.5v-6.2h-.502l-1.003 5.247v-5.247z"/> - <path fill="#295200" d="M242.28 285.57l.5.477-.5-.477z"/> - <path fill="#293100" d="M243.28 285.57l.5.477-.5-.477z"/> - <path fill="#ce2110" d="M245.79 285.57l.5.477-.5-.477z"/> - <path fill="#7b1008" d="M246.29 285.57l.5.477-.5-.477z"/> - <path fill="#8c8c8c" d="M261.83 285.57l.5.477-.5-.477z"/> - <path fill="#080829" d="M262.33 285.57l.5.477-.5-.477z"/> - <path fill="#c6b5b5" d="M264.84 285.57l.5.477-.5-.477z"/> - <path fill="#b51010" d="M266.85 285.57l.5.477-.5-.477z"/> - <path fill="#cecece" d="M267.35 285.57l.5.477-.5-.477z"/> - <path fill="#103900" d="M287.9 285.57l.5.477-.5-.477z"/> - <path fill="#63636b" d="M288.4 285.57l.5.477-.5-.477z"/> - <path fill="#297b00" d="M289.24 285.73l.334.16-.334-.16z"/> - <path fill="#184a00" d="M292.92 285.57l.5.477-.5-.477z"/> - <path fill="#185200" d="M294.42 285.57l.5.477-.5-.477z"/> - <path fill="#184a00" d="M296.93 285.57l.5.477-.5-.477z"/> - <path fill="#185200" d="M298.93 285.57l.5.477-.5-.477z"/> - <path fill="#103900" d="M299.43 285.57l.5.477-.5-.477z"/> - <path fill="#185200" d="M299.93 285.57l.5.477-.5-.477z"/> - <path fill="#297b00" d="M304.45 285.57l.5.477-.5-.477z"/> - <path fill="#185200" d="M304.95 285.57l.5.477-.5-.477z"/> - <path fill="#315221" d="M305.45 285.57l.5.477-.5-.477z"/> - <path fill="#6b735a" d="M305.95 285.57l.5.477-.5-.477z"/> - <path fill="#9c9494" d="M306.45 285.57l.5.477-.5-.477z"/> - <path fill="#dedede" d="M306.95 285.57l.5.477-.5-.477z"/> - <path fill="#cecece" d="M220.72 286.05l1.003.954-1.003-.954z"/> - <path fill="#214210" d="M221.22 286.05l.5.477-.5-.477z"/> - <path fill="#397b00" d="M227.74 286.05l1.003.954v-.954h-1.003z"/> - <path fill="#103900" d="M228.74 286.05l.5.477-.5-.477m2.005 0l-.5.954.5-.954z"/> - <path fill="#397b00" d="M231.25 286.05l.5.477-.5-.477z"/> - <path fill="#295200" d="M232.25 286.05l.5.477-.5-.477z"/> - <path fill="#213918" d="M233.76 286.05l.5.477-.5-.477z"/> - <path fill="#294200" d="M235.26 286.05v2.385h.5l-.5-2.385z"/> - <path fill="#526b42" d="M236.77 286.05l.5.477-.5-.477z"/> - <path fill="#ada5a5" d="M238.27 286.05l.5.477-.5-.477z"/> - <path fill="#397b00" d="M238.77 286.05l.5.477-.5-.477z"/> - <path fill="#103900" d="M241.28 286.05l.5.477-.5-.477z"/> - <path fill="#294200" d="M242.28 286.05v1.908h.5l-.5-1.908z"/> - <path fill="#397b00" d="M243.28 286.05l.5.477-.5-.477z"/> - <path fill="#941808" d="M243.78 286.05l.5.477-.5-.477m1.504 0l-.5.954.5-.954z"/> - <path fill="#293100" d="M245.79 286.05l.5.477-.5-.477z"/> - <path fill="#103900" d="M246.29 286.05l.5.477-.5-.477z"/> - <path fill="#efefef" d="M261.83 286.05l.5.477-.5-.477z"/> - <path fill="#292921" d="M262.33 286.05l.5.477-.5-.477z"/> - <path fill="#efefef" d="M262.84 286.05l.5.477-.5-.477z"/> - <path fill="#842118" d="M266.85 286.05l.5.477-.5-.477z"/> - <path fill="#293129" d="M288.4 286.05l.5.477-.5-.477z"/> - <path fill="#296300" d="M288.9 286.05l.5.477-.5-.477z"/> - <path fill="#103900" d="M289.91 286.05l.5.477-.5-.477z"/> - <path fill="#185200" d="M292.92 286.05l.5.477-.5-.477z"/> - <path fill="#103900" d="M294.42 286.05l.5.477-.5-.477z"/> - <path fill="#296300" d="M297.93 286.05l.5.477-.5-.477z"/> - <path fill="#103900" d="M298.43 286.05l.5.477-.5-.477z"/> - <path fill="#296300" d="M298.93 286.05l.5.477-.5-.477z"/> - <path fill="#297b00" d="M302.94 286.05l.5.477-.5-.477z"/> - <path fill="#103900" d="M303.44 286.05l.5.477-.5-.477z"/> - <path fill="#001000" d="M303.94 286.05l.5.477-.5-.477z"/> - <path fill="#101810" d="M304.45 286.05l.5.477-.5-.477z"/> - <path fill="#8c8c8c" d="M304.95 286.05l.5.477-.5-.477z"/> - <path fill="#bdbdbd" d="M305.78 286.21l.334.16-.334-.16z"/> - <path fill="#214210" d="M221.73 286.53l1.003.954-1.003-.954z"/> - <path fill="#397b00" d="M225.9 286.84l.167.318-.167-.318m6.852-.318l.5.477-.5-.478z"/> - <path fill="#63636b" d="M233.26 286.53l.5.477-.5-.477z"/> - <path fill="#397b00" d="M233.76 286.53l.5.477-.5-.477z"/> - <path fill="#294200" d="M236.93 286.84l.167.318-.167-.318z"/> - <path fill="#dedede" d="M237.77 286.53l.5.477-.5-.477z"/> - <path fill="#214210" d="M238.27 286.53l.5.477-.5-.477z"/> - <path fill="#295200" d="M239.77 286.53l.5.477-.5-.477m1.504 0l.5.477-.5-.477z"/> - <path fill="#422100" d="M243.78 286.53l.5.477-.5-.477z"/> - <path fill="#295200" d="M245.29 286.53l.5.477-.5-.477m1.003 0l.5.477-.5-.477z"/> - <path fill="#ce2110" d="M246.79 286.53l.5.477-.5-.477z"/> - <path fill="#bdbdbd" d="M262.33 286.53l.5.477-.5-.477z"/> - <path fill="#8c8c8c" d="M263 286.84l.167.318-.167-.318z"/> - <path fill="#736b6b" d="M266.85 286.53l.5.477-.5-.477z"/> - <path fill="#185200" d="M288.4 286.53l.5.477-.5-.477z"/> - <path fill="#184a00" d="M288.9 286.53l.5.477-.5-.477m1.003 0l.5.477-.5-.477z"/> - <path fill="#296300" d="M291.41 286.53l.5 1.908h.503l-1.003-1.908z"/> - <path fill="#297b00" d="M291.91 286.53l.5.477-.5-.477z"/> - <path fill="#184a00" d="M292.92 286.53l.5.477-.5-.477z"/> - <path fill="#297b00" d="M293.92 286.53l.5.477-.5-.477zm3.01 0l1.003.954-1.003-.954z"/> - <path fill="#184a00" d="M297.43 286.53l.5.477-.5-.477z"/> - <path fill="#185200" d="M297.93 286.53l.5.477-.5-.477z"/> - <path fill="#297b00" d="M301.44 286.53l.5.477-.5-.477z"/> - <path fill="#184a00" d="M301.94 286.53v.477l2.005.477v-.477l-2.005-.477z"/> - <path fill="#103900" d="M302.44 286.53l.5.477-.5-.477z"/> - <path fill="#185200" d="M302.94 286.53l.5.477-.5-.477z"/> - <path fill="#319400" d="M303.44 286.53v.477h1.504l-1.504-.477z"/> - <path fill="#297b00" d="M305.11 286.84l.167.318-.167-.318z"/> - <path fill="#296300" d="M305.45 286.53v.477l2.005.477v-.477l-2.005-.477z"/> - <path fill="#185200" d="M306.45 286.53l.5.477-.5-.477z"/> - <path fill="#103900" d="M306.95 286.53l.5.477-.5-.477z"/> - <path fill="#4a6342" d="M307.45 286.53l.5.477-.5-.477z"/> - <path fill="#8c8c8c" d="M307.96 286.53l.5.477-.5-.477z"/> - <path fill="#bdbdbd" d="M308.46 286.53l.5.477-.5-.477z"/> - <path fill="#ada5a5" d="M221.73 287l.5.477-.5-.477z"/> - <path fill="#294200" d="M224.57 287.16l.334.16-.334-.16z"/> - <path fill="#295200" d="M225.24 287l.5.477-.5-.477z"/> - <path fill="#292100" d="M229.75 287l.5.477-.5-.477z"/> - <path fill="#001000" d="M233.26 287l.5.477-.5-.477z"/> - <path fill="#5a6b52" d="M237.77 287l.5.477-.5-.477z"/> - <path fill="#294200" d="M239.94 287.32l.167.318-.167-.318z"/> - <path fill="#397b00" d="M241.11 287.16l.334.16-.334-.16z"/> - <path fill="#294200" d="M243.78 287l.5.477-.5-.477z"/> - <path fill="#bd2110" d="M244.29 287l.5.477-.5-.477z"/> - <path fill="#294200" d="M244.79 287l.5.477-.5-.477z"/> - <path fill="#397b00" d="M246.29 287l.5.477-.5-.477z"/> - <path fill="#941808" d="M246.79 287l.5.477-.5-.477z"/> - <path fill="#efefef" d="M263.34 287l-.5.954.5-.954z"/> - <path fill="#ce1810" d="M266.34 287l.5.477-.5-.477z"/> - <path fill="#cecece" d="M266.85 287l.5.477-.5-.477z"/> - <path fill="#297b00" d="M288.4 287l.5.477-.5-.477z"/> - <path fill="#082108" d="M288.9 287l.5.477-.5-.477z"/> - <path fill="#185200" d="M289.91 287l.5.477-.5-.477z"/> - <path fill="#297b00" d="M290.41 287l.5.477-.5-.477z"/> - <path fill="#185200" d="M292.92 287l.5.477-.5-.477z"/> - <path fill="#103900" d="M296.93 287l.5.477-.5-.477z"/> - <path fill="#297b00" d="M299.93 287l1.003.954-1.003-.954z"/> - <path fill="#185200" d="M300.44 287l.5.477-.5-.477z"/> - <path fill="#103900" d="M300.94 287l.5.477-.5-.477z"/> - <path fill="#185200" d="M301.77 287.16l.334.16-.334-.16m2.172-.16l.502.478-.502-.477z"/> - <path fill="#296300" d="M304.61 287.32l.167.318-.167-.318z"/> - <path fill="#319400" d="M305.45 287l.5.477-.5-.477z"/> - <path fill="#297b00" d="M305.95 287l.5.477-.5-.477z"/> - <path fill="#185200" d="M307.45 287l.5.477-.5-.477z"/> - <path fill="#184a00" d="M307.96 287l.5.477-.5-.477z"/> - <path fill="#082108" d="M308.46 287l.5.477-.5-.477z"/> - <path d="M308.96 287l.5.477-.5-.477z"/> - <path fill="#313931" d="M309.46 287l.5.477-.5-.477z"/> - <path fill="#7b7373" d="M309.96 287l.5.477-.5-.477z"/> - <path fill="#dedede" d="M222.39 287.8l.167.318-.167-.318z"/> - <path fill="#52525a" d="M222.73 287.48l.5.477-.5-.477z"/> - <path fill="#294200" d="M223.23 287.48l.5.477-.5-.477z"/> - <path fill="#295200" d="M223.73 287.48l.5.477-.5-.477z"/> - <path fill="#294200" d="M229.25 287.48l.5.477-.5-.477z"/> - <path fill="#397b00" d="M229.75 287.48l.5.477-.5-.477m2.34.16l.334.158-.334-.16z"/> - <path fill="#294200" d="M233.42 287.8l.167.318-.167-.318z"/> - <path fill="#397b00" d="M236.77 287.48l.5.477-.5-.477z"/> - <path fill="#ada5a5" d="M237.27 287.48l.5.477-.5-.477z"/> - <path fill="#295200" d="M237.77 287.48l.5.477-.5-.477z"/> - <path fill="#294200" d="M240.78 287.48v1.43h.5l-.5-1.43z"/> - <path fill="#397b00" d="M243.78 287.48v.954h1.003l-1.003-.954z"/> - <path fill="#211800" d="M244.29 287.48l.5.477-.5-.477z"/> - <path fill="#294200" d="M245.79 287.48l.5.477-.5-.477z"/> - <path fill="#5a2908" d="M246.79 287.48l.5.477-.5-.477z"/> - <path fill="#63636b" d="M263.34 287.48l.5.477-.5-.477z"/> - <path fill="#9c2118" d="M266.34 287.48l.5.477-.5-.477z"/> - <path fill="#00216b" d="M287.4 287.48l.5.477-.5-.477z"/> - <path fill="#103910" d="M287.9 287.48l.5.477-.5-.477z"/> - <path fill="#103900" d="M289.07 287.8l.167.318-.167-.318z"/> - <path fill="#296300" d="M290.24 287.64l.334.16-.334-.16z"/> - <path fill="#103900" d="M295.92 287.48l.5.477-.5-.477z"/> - <path fill="#296300" d="M299.1 287.8l.167.318-.167-.318z"/> - <path fill="#103900" d="M299.77 287.64l.334.16-.334-.16z"/> - <path fill="#319400" d="M293.92 293.2c4.806-2.536 8.44-4.293 14.037-4.293-4.637-2.66-12.495-1.07-14.037 4.293z"/> - <path fill="#297b00" d="M303.94 287.48l.5.477-.5-.477z"/> - <path fill="#185200" d="M304.95 287.48l.5.477-.5-.477z"/> - <path fill="#103900" d="M305.45 287.48l.5.477-.5-.477z"/> - <path fill="#293129" d="M305.95 287.48l.5.477-.5-.477z"/> - <path fill="#7b7373" d="M306.45 287.48l.5.477-.5-.477z"/> - <path fill="#ada5a5" d="M306.95 287.48l.5.477-.5-.477z"/> - <path fill="#314231" d="M222.73 287.96l.5.477-.5-.477z"/> - <path fill="#295200" d="M227.24 287.96l.5.477-.5-.477z"/> - <path fill="#294200" d="M227.74 287.96l.5.477-.5-.477z"/> - <path fill="#397b00" d="M228.74 287.96l.5.477-.5-.477z"/> - <path fill="#295200" d="M229.25 287.96l.5.477-.5-.477m2.507 0l.5.477-.5-.477z"/> - <path fill="#294200" d="M236.77 287.96l.5.477-.5-.477z"/> - <path fill="#63636b" d="M237.27 287.96l.5.477-.5-.477z"/> - <path fill="#397b00" d="M239.61 288.12l.334.16-.334-.16m2.674-.16v1.432h.5l-.5-1.43z"/> - <path fill="#295200" d="M245.29 287.96l.5.477-.5-.477z"/> - <path fill="#293100" d="M246.79 287.96l.5.477-.5-.477z"/> - <path fill="#9c9494" d="M263.34 287.96l.5.477-.5-.477z"/> - <path fill="#bdbdbd" d="M263.84 287.96l.5.477-.5-.477z"/> - <path fill="#8c6363" d="M266.34 287.96l.5.477-.5-.477z"/> - <path fill="#00184a" d="M286.9 287.96l.5.477-.5-.477z"/> - <path fill="#21315a" d="M287.4 287.96l.5.477-.5-.477z"/> - <path fill="#5a7b42" d="M287.9 287.96l.5.477-.5-.477z"/> - <path fill="#184a00" d="M290.41 287.96l.5.477-.5-.477z"/> - <path fill="#297b00" d="M291.41 287.96l.5.477-.5-.477z"/> - <path fill="#185200" d="M297.93 287.96l.5.477-.5-.477z"/> - <path fill="#103900" d="M298.43 287.96l.5.477-.5-.477z"/> - <path fill="#297b00" d="M306.45 287.96l.5.477-.5-.477z"/> - <path fill="#103900" d="M306.95 287.96l.5.477-.5-.477z"/> - <path fill="#5a6b52" d="M307.45 287.96l.5.477-.5-.477z"/> - <path fill="#9c9494" d="M307.96 287.96l.5.477-.5-.477z"/> - <path fill="#dedede" d="M308.46 287.96l.5.477-.5-.477z"/> - <path fill="#efefef" d="M221.73 288.43l.5.477-.5-.477z"/> - <path fill="#314231" d="M222.23 288.43l.5.477-.5-.477z"/> - <path fill="#295200" d="M226.24 288.43l.5.477-.5-.477z"/> - <path fill="#103900" d="M226.74 288.43l.5.477-.5-.477z"/> - <path fill="#397b00" d="M227.24 288.43l.5.477-.5-.477z"/> - <path fill="#103900" d="M228.74 288.43l.5.477-.5-.477z"/> - <path fill="#294200" d="M231.92 288.75l.167.318-.167-.318z"/> - <path fill="#295200" d="M233.26 288.43l.5.477-.5-.477m2.005 0l.502.477-.502-.477z"/> - <path fill="#526b42" d="M237.1 288.59l.334.16-.334-.16z"/> - <path fill="#295200" d="M239.27 288.43l.5.477-.5-.477z"/> - <path fill="#294200" d="M243.95 288.75l.167.318-.167-.318m1.504 0l.167.318-.166-.318z"/> - <path fill="#397b00" d="M246.79 288.43l.5.477-.5-.477z"/> - <path fill="#b51010" d="M256.32 288.43l.5.477-.5-.477z"/> - <path fill="#ad1810" d="M256.82 288.43l.5.477-.5-.477z"/> - <path fill="#63636b" d="M263.84 288.43l.5.477-.5-.477z"/> - <path fill="#dedede" d="M266.34 288.43l.5.477-.5-.477z"/> - <path fill="#00216b" d="M285.9 288.43l.5.477-.5-.477z"/> - <path d="M286.9 288.43l.5.477-.5-.477z"/> - <path fill="#ada5a5" d="M287.4 288.43l.5.477-.5-.477z"/> - <path fill="#396321" d="M287.9 288.43l.5.477-.5-.477z"/> - <path fill="#185200" d="M288.9 288.43l.5.477-.5-.477z"/> - <path fill="#297b00" d="M289.41 288.43l.5.477-.5-.477z"/> - <path fill="#185200" d="M290.41 288.43l.5.477-.5-.477m1.504 0l.5.477-.5-.477m2.507 0l.502.477-.5-.477z"/> - <path fill="#296300" d="M296.93 288.43l.5.477-.5-.477z"/> - <path fill="#103900" d="M297.43 288.43l.5.477-.5-.477z"/> - <path fill="#296300" d="M297.93 288.43l.5.477-.5-.477z"/> - <path fill="#297b00" d="M307.96 288.43l.5.477-.5-.477z"/> - <path fill="#185200" d="M308.46 288.43l.5.477-.5-.477z"/> - <path fill="#314231" d="M308.96 288.43l.5.477-.5-.477z"/> - <path fill="#9c9494" d="M309.46 288.43l.5.477-.5-.477z"/> - <path fill="#424242" d="M221.73 288.91l.5.477-.5-.477z"/> - <path fill="#397b00" d="M224.73 288.91l.5.477-.5-.477z"/> - <path fill="#294200" d="M225.57 289.07l.334.16-.334-.16z"/> - <path fill="#397b00" d="M226.24 288.91l.5.477-.5-.477z"/> - <path fill="#103900" d="M228.24 288.91l.5.477-.5-.477z"/> - <path fill="#294200" d="M233.42 289.23l.167.318-.167-.318z"/> - <path fill="#397b00" d="M234.76 288.91v1.908h1.003v-1.908h-1.003z"/> - <path fill="#6b735a" d="M236.77 288.91l.5.477-.5-.477z"/> - <path fill="#396b10" d="M237.27 288.91l.5.477-.5-.477z"/> - <path fill="#294200" d="M239.27 288.91v2.385h.5l-.5-2.385z"/> - <path fill="#295200" d="M240.94 289.23l.167.318-.167-.318z"/> - <path fill="#392100" d="M256.32 288.91l.5.477-.5-.477z"/> - <path fill="#292100" d="M256.82 288.91l.5.477-.5-.477z"/> - <path fill="#9c9494" d="M263.84 288.91l.5.477-.5-.477z"/> - <path fill="#cecece" d="M264.34 288.91l.5.477-.5-.477z"/> - <path fill="#8c8c8c" d="M264.84 288.91l-.5.954.5-.954z"/> - <path fill="#bd0008" d="M265.34 288.91l.5.477-.5-.477z"/> - <path fill="#63636b" d="M265.84 288.91l.5.477-.5-.477z"/> - <path fill="#00216b" d="M277.37 288.91l-.5.954.5-.954z"/> - <path fill="#002984" d="M278.04 289.23l.167.318-.167-.318m5.348-.318l.5.477-.5-.478z"/> - <path fill="#00184a" d="M283.89 288.91l2.005 1.43v-.476l-2.005-.954z"/> - <path fill="#001010" d="M285.9 288.91l.5.477-.5-.477z"/> - <path fill="#002984" d="M286.4 288.91l.5.477-.5-.477z"/> - <path fill="#103900" d="M286.9 288.91l.5.477-.5-.477z"/> - <path fill="#dedede" d="M287.4 288.91l.5.477-.5-.477z"/> - <path fill="#184a00" d="M288.07 289.23l.167.318-.167-.318z"/> - <path fill="#296300" d="M289.24 289.07l.334.16-.334-.16z"/> - <path fill="#184a00" d="M290.41 288.91l.5.477-.5-.477z"/> - <path fill="#297b00" d="M291.41 288.91l.5.477-.5-.477z"/> - <path fill="#296300" d="M291.91 288.91l-.5 1.908.5-1.908z"/> - <path fill="#103900" d="M293.42 288.91l.5.477-.5-.477z"/> - <path fill="#319400" d="M294.08 289.23l.167.318-.167-.318z"/> - <path fill="#103900" d="M294.42 288.91l.5.477-.5-.477z"/> - <path fill="#297b00" d="M295.42 289.39v.477h1.504l-1.504-.477z"/> - <path fill="#103900" d="M296.42 288.91l.5.477-.5-.477z"/> - <path fill="#185200" d="M296.93 288.91l.5.477-.5-.477z"/> - <path fill="#297b00" d="M302.44 288.91l.5.477-.5-.477z"/> - <path fill="#296300" d="M302.94 288.91l.5.477-.5-.477z"/> - <path fill="#184a00" d="M303.44 288.91l-1.003.477v.477l1.003-.954z"/> - <path fill="#315221" d="M303.94 288.91l.5.477-.5-.477z"/> - <path fill="#4a6342" d="M304.45 288.91v.477h3.51l-3.51-.477z"/> - <path fill="#295210" d="M307.96 288.91l.5.477-.5-.477z"/> - <path fill="#184a00" d="M308.46 288.91l.5.477-.5-.477z"/> - <path fill="#296300" d="M308.96 288.91l.5.477-.5-.477z"/> - <path fill="#185200" d="M309.46 288.91l.5.477-.5-.477z"/> - <path fill="#294221" d="M309.96 288.91l.5.477-.5-.477z"/> - <path fill="#9c9494" d="M310.46 288.91l.5.477-.5-.477m-89.237.477l.5.477-.5-.477z"/> - <path fill="#397b00" d="M221.73 289.39l.5.477-.5-.477z"/> - <path fill="#295200" d="M223.73 289.39l.5.477-.5-.477z"/> - <path fill="#294200" d="M224.23 289.39l.5.477-.5-.477z"/> - <path fill="#295200" d="M224.73 289.39l.5.477-.5-.477z"/> - <path fill="#292100" d="M227.74 289.39l.5.477-.5-.477m4.01 0l.502.477-.5-.477z"/> - <path fill="#397b00" d="M236.26 289.39l.5.477-.5-.477z"/> - <path fill="#ada5a5" d="M236.77 289.39l.5.477-.5-.477z"/> - <path fill="#294200" d="M237.27 289.39l.5.477-.5-.477m5.013 0l.502.477-.502-.477z"/> - <path fill="#397b00" d="M243.62 289.55l.334.16-.334-.16z"/> - <path fill="#295200" d="M245.29 289.39l.5.477-.5-.477z"/> - <path fill="#bd2110" d="M251.81 289.39l.5.477-.5-.477z"/> - <path fill="#631808" d="M255.82 289.39l.5.477-.5-.477z"/> - <path fill="#397b00" d="M256.32 289.39l1.003.954-1.003-.954z"/> - <path fill="#428c00" d="M256.82 289.39l.5.477-.5-.477z"/> - <path fill="#631808" d="M257.32 289.39l.5.477-.5-.477z"/> - <path fill="#8c7373" d="M264.84 289.39l.5.477-.5-.477z"/> - <path fill="#6b0808" d="M265.34 289.39l.5.477-.5-.477z"/> - <path fill="#dedede" d="M265.84 289.39l.5.477-.5-.477z"/> - <path fill="#000818" d="M274.37 289.39l.5.477-.5-.477z"/> - <path fill="#082108" d="M277.37 289.39l.5.477-.5-.477z"/> - <path fill="#002984" d="M281.38 289.39l1.003.954v-.954h-1.003z"/> - <path fill="#001039" d="M283.39 289.39l.5.477-.5-.477m1.504 0l.5.477-.5-.477z"/> - <path fill="#103900" d="M285.9 289.39l.5.477-.5-.477z"/> - <path d="M286.4 289.39l.5.477-.5-.477z"/> - <path fill="#296300" d="M286.9 289.39l.5.477-.5-.477z"/> - <path fill="#9c9494" d="M287.4 289.39l.5.477-.5-.477z"/> - <path fill="#185200" d="M290.58 289.71l.167.318-.167-.318z"/> - <path fill="#297b00" d="M292.92 289.39v.477l2.507.954v-.476l-2.507-.954z"/> - <path fill="#185200" d="M293.42 289.39l.5.477-.5-.477z"/> - <path fill="#184a00" d="M294.42 289.39l.5.477-.5-.477z"/> - <path fill="#103900" d="M295.92 289.39l.5.477-.5-.477z"/> - <path fill="#296300" d="M300.94 289.39l.5.477-.5-.477z"/> - <path fill="#103900" d="M301.77 289.55l.334.16-.334-.16z"/> - <path fill="#214210" d="M303.44 289.39l.5.477-.5-.477z"/> - <path fill="#5a6b52" d="M303.94 289.39l.5.477-.5-.477z"/> - <path fill="#8c8c8c" d="M304.45 289.39l.5.477-.5-.477z"/> - <path fill="#cecece" d="M304.95 289.39l.5.477-.5-.477m4.01 0l.502.477-.5-.477z"/> - <path fill="#ada5a5" d="M309.46 289.39l.5.477-.5-.477z"/> - <path fill="#7b7373" d="M309.96 289.39l.5.477-.5-.477z"/> - <path fill="#292921" d="M310.8 289.55l.334.16-.334-.16z"/> - <path fill="#315221" d="M221.22 289.86l.5.477-.5-.477z"/> - <path fill="#295200" d="M222.73 289.86l.5.477-.5-.477z"/> - <path fill="#294200" d="M223.23 289.86l.5.477-.5-.477m4.01 0l.502.477-.5-.477z"/> - <path fill="#397b00" d="M227.74 289.86l.5.477-.5-.477z"/> - <path fill="#294200" d="M229.25 289.86l-.5.954.5-.954z"/> - <path fill="#397b00" d="M229.75 289.86l.5.477-.5-.477z"/> - <path fill="#295200" d="M231.25 289.86l.5.477-.5-.477z"/> - <path fill="#63636b" d="M231.75 289.86l.5.477-.5-.477z"/> - <path fill="#397b00" d="M232.25 289.86l.5.477-.5-.477m1.337.16l.334.158-.333-.16z"/> - <path fill="#295200" d="M236.26 289.86l.5.477-.5-.477z"/> - <path fill="#efefef" d="M236.77 289.86l.5.477-.5-.477z"/> - <path fill="#426331" d="M237.27 289.86l.5.477-.5-.477z"/> - <path fill="#294200" d="M240.94 290.18l.167.318-.167-.318z"/> - <path fill="#295200" d="M242.28 289.86l.5.477-.5-.477m1.003 0l.5.477-.5-.477z"/> - <path fill="#397b00" d="M245.12 290.02l.334.16-.334-.16m1.67-.16l.502.478-.5-.477z"/> - <path fill="#b51010" d="M251.3 289.86l.5.477-.5-.477z"/> - <path fill="#211800" d="M251.81 289.86l.5.477-.5-.477z"/> - <path fill="#ce2110" d="M252.31 289.86l1.003.954-1.003-.954z"/> - <path fill="#b51010" d="M255.32 289.86l.5.477-.5-.477z"/> - <path fill="#294200" d="M255.82 289.86l.5.477-.5-.477z"/> - <path fill="#428c00" d="M256.32 289.86l-1.003 2.862-1.504-.954 1.504 3.816h.502v-1.908h.5v3.34c2.425-1.53 2.112-4.25 1.504-6.68h-.5v4.77h-.503l-.5-5.246z"/> - <path fill="#294200" d="M257.32 289.86l.5.477-.5-.477z"/> - <path fill="#ce2110" d="M257.82 289.86l.5.477-.5-.477z"/> - <path fill="#7b7373" d="M264.34 289.86l.5.477-.5-.477z"/> - <path fill="#6b4242" d="M264.84 289.86l.5.477-.5-.477z"/> - <path fill="#63636b" d="M265.34 289.86l.5.477-.5-.477z"/> - <path fill="#103910" d="M274.37 289.86l.5.477-.5-.477z"/> - <path fill="#10214a" d="M274.87 289.86l.5.477-.5-.477z"/> - <path fill="#002984" d="M276.37 289.86l.5.477-.5-.477z"/> - <path fill="#103900" d="M276.87 289.86l.5.477-.5-.477z"/> - <path fill="#184a00" d="M277.37 289.86l.5.477-.5-.477z"/> - <path fill="#002984" d="M278.88 289.86l.5.477-.5-.477z"/> - <path fill="#001010" d="M281.38 289.86l.5.477-.5-.477z"/> - <path fill="#184a00" d="M283.39 289.86l.5.477-.5-.477z"/> - <path fill="#296300" d="M285.9 289.86l.5.477-.5-.477z"/> - <path fill="#424242" d="M286.4 289.86l.5.477-.5-.477z"/> - <path fill="#319400" d="M286.9 289.86l-3.008 8.586c2.864-1.506 4.278-5.7 3.008-8.586z"/> - <path fill="#293129" d="M287.4 289.86l.5.477-.5-.477z"/> - <path fill="#296300" d="M287.9 289.86l.5.477-.5-.477z"/> - <path fill="#184a00" d="M292.92 289.86l.5.477-.5-.477z"/> - <path fill="#185200" d="M294.75 290.02l.334.16-.334-.16z"/> - <path fill="#184a00" d="M295.42 289.86l.5.477-.5-.477z"/> - <path fill="#185200" d="M299.43 289.86l.5.477-.5-.477z"/> - <path fill="#184a00" d="M299.43 290.34v.477h2.507l-2.507-.477z"/> - <path fill="#297b00" d="M300.94 289.86l.5.477-.5-.477z"/> - <path fill="#319400" d="M301.44 289.86v.477h3.51l-3.51-.477z"/> - <path fill="#296300" d="M304.95 289.86l.5.477-.5-.477z"/> - <path fill="#315221" d="M305.45 289.86l-.5.954.5-.954z"/> - <path fill="#7b7373" d="M305.95 289.86l.5.477-.5-.477z"/> - <path fill="#cecece" d="M306.45 289.86l.5.477-.5-.477z"/> - <path fill="#dedede" d="M310.96 289.86l.5.477-.5-.477z"/> - <path fill="#bdbdbd" d="M220.72 290.34l.5.477-.5-.477z"/> - <path fill="#397b00" d="M221.22 290.34l.5.477-.5-.477z"/> - <path fill="#103900" d="M222.23 290.34l.5.477-.5-.477z"/> - <path fill="#397b00" d="M222.73 290.34l.5.477-.5-.477m3.51 0v1.43h.5l-.5-1.43z"/> - <path fill="#103900" d="M226.74 290.34l.5.477-.5-.477z"/> - <path fill="#295200" d="M229.25 290.34l.5.477-.5-.477z"/> - <path fill="#425242" d="M231.25 290.34l.5.477-.5-.477z"/> - <path fill="#315221" d="M232.25 290.34l.5.477-.5-.477z"/> - <path fill="#103900" d="M233.76 290.34l.5.477-.5-.477z"/> - <path fill="#5a5231" d="M236.26 290.34l.5.477-.5-.477z"/> - <path fill="#526b42" d="M237.27 290.34l.5.477-.5-.477z"/> - <path fill="#397b00" d="M242.11 290.5l.334.16-.334-.16z"/> - <path fill="#294200" d="M243.45 290.66l.167.318-.167-.318m1.337-.318l.5.477-.5-.478m2.005 0l.502.477-.502-.478z"/> - <path fill="#631808" d="M251.3 290.34l.5.477-.5-.477z"/> - <path fill="#397b00" d="M251.81 290.34l1.003 2.385h1.504l-2.507-2.385z"/> - <path fill="#311000" d="M252.31 290.34l.5.477-.5-.477z"/> - <path fill="#422100" d="M255.32 290.34l.5.477-.5-.477z"/> - <path fill="#294200" d="M256.82 290.34v1.908h.5l-.5-1.908z"/> - <path fill="#5a1008" d="M257.82 290.34l.5.477-.5-.477z"/> - <path fill="#9c9494" d="M264.34 290.34l.5.477-.5-.477z"/> - <path fill="#101810" d="M264.84 290.34l.5.477-.5-.477z"/> - <path fill="#dedede" d="M265.34 290.34l.5.477-.5-.477z"/> - <path fill="#083121" d="M274.37 290.34l.5.477-.5-.477z"/> - <path fill="#185200" d="M274.87 290.34l.5.477-.5-.477z"/> - <path fill="#002984" d="M275.37 290.34l.5.477-.5-.477z"/> - <path fill="#102110" d="M276.37 290.34l.5.477-.5-.477z"/> - <path fill="#319400" d="M276.87 290.34l-.5 4.293h.5v-4.293z"/> - <path fill="#083121" d="M277.37 290.34l.5.477-.5-.477z"/> - <path fill="#000818" d="M278.88 290.34l.5.477-.5-.477z"/> - <path fill="#00216b" d="M280.88 290.34l.5.477-.5-.477z"/> - <path fill="#082108" d="M281.38 290.34l-.5.954.5-.954z"/> - <path fill="#00215a" d="M282.89 290.34l.5.477-.5-.477z"/> - <path fill="#297b00" d="M283.39 290.34l.5.477-.5-.477z"/> - <path fill="#00215a" d="M283.89 290.34l.5.477-.5-.477z"/> - <path fill="#103910" d="M284.39 290.34l.5.477-.5-.477z"/> - <path fill="#424242" d="M284.89 290.34l.5.477-.5-.477z"/> - <path fill="#103910" d="M285.4 290.34l.5.477-.5-.477z"/> - <path fill="#185200" d="M285.9 290.34l-.5.954.5-.954z"/> - <path fill="#294221" d="M286.4 290.34l.5.477-.5-.477z"/> - <path fill="#103900" d="M287.4 290.34l.5.477-.5-.477z"/> - <path fill="#297b00" d="M287.9 290.34l.5.477-.5-.477z"/> - <path fill="#296300" d="M290.58 290.66l.167.318-.167-.318z"/> - <path fill="#103900" d="M292.92 290.34l.5.477-.5-.477z"/> - <path fill="#296300" d="M293.92 290.34l.5.477-.5-.477z"/> - <path fill="#185200" d="M298.43 290.34l.5.477-.5-.477z"/> - <path fill="#103900" d="M298.93 290.34l.5.477-.5-.477m3.008 0l.5.477-.5-.477z"/> - <path fill="#082108" d="M302.44 290.34v.477h1.504l-1.504-.477z"/> - <path fill="#4a6342" d="M304.28 290.5l.334.16-.334-.16z"/> - <path fill="#184a00" d="M305.45 290.34l.5.477-.5-.477z"/> - <path fill="#296300" d="M305.95 290.34l.5.477-.5-.477z"/> - <path fill="#103900" d="M306.45 290.34l.5.477-.5-.477z"/> - <path fill="#425242" d="M306.95 290.34l.5.477-.5-.477z"/> - <path fill="#dedede" d="M307.45 290.34l1.003.954-1.003-.954z"/> - <path fill="#7b7373" d="M220.72 290.82l.5.477-.5-.477z"/> - <path fill="#397b00" d="M224.23 290.82l.5 1.908h.503l-1.003-1.908z"/> - <path fill="#294200" d="M225.57 290.98l.334.16-.334-.16z"/> - <path fill="#295200" d="M227.74 290.82l.5.477-.5-.477z"/> - <path fill="#103900" d="M228.24 290.82l.5.477-.5-.477z"/> - <path fill="#397b00" d="M228.74 290.82l.5.477-.5-.477z"/> - <path fill="#213918" d="M230.75 290.82l.5.477-.5-.477z"/> - <path fill="#efefef" d="M231.25 290.82l.5.477-.5-.477z"/> - <path fill="#8c8c8c" d="M232.25 290.82l.5.477-.5-.477z"/> - <path fill="#294200" d="M232.76 290.82l.5.477-.5-.477z"/> - <path fill="#5a2908" d="M233.26 290.82l.5.477-.5-.477z"/> - <path fill="#7b1008" d="M233.76 290.82l.5.477-.5-.477z"/> - <path fill="#292100" d="M234.26 290.82l.5.477-.5-.477z"/> - <path fill="#5a6b52" d="M236.26 290.82l.5.477-.5-.477z"/> - <path fill="#7b7373" d="M237.27 290.82l.5.477-.5-.477z"/> - <path fill="#295200" d="M240.78 290.82l.5.477-.5-.477z"/> - <path fill="#103900" d="M244.79 290.82l.5.477-.5-.477z"/> - <path fill="#181000" d="M246.79 290.82l.5.477-.5-.477z"/> - <path fill="#310000" d="M247.29 290.82l.5.477-.5-.477z"/> - <path fill="#313918" d="M251.3 290.82l.5.477-.5-.477z"/> - <path fill="#295200" d="M251.81 290.82l.5.477-.5-.477z"/> - <path fill="#293100" d="M252.81 290.82l.5.477-.5-.477z"/> - <path fill="#5a1010" d="M253.31 290.82l.5.477-.5-.477z"/> - <path fill="#734a42" d="M254.15 290.98l.334.16-.334-.16z"/> - <path fill="#5a2121" d="M254.81 290.82l.5.477-.5-.477z"/> - <path fill="#397b00" d="M255.32 290.82l.5.477-.5-.477z"/> - <path fill="#295200" d="M257.82 290.82l.5.477-.5-.477z"/> - <path fill="#bd2110" d="M258.32 290.82l.5.477-.5-.477z"/> - <path fill="#bdbdbd" d="M264.34 290.82l.5.477-.5-.477z"/> - <path fill="#8c8c8c" d="M264.84 290.82l.5.477-.5-.477z"/> - <path fill="#002984" d="M271.86 290.82l.5.477-.5-.477z"/> - <path fill="#00216b" d="M272.36 290.82l.5.477-.5-.477z"/> - <path fill="#103921" d="M274.37 290.82l.5.477-.5-.477z"/> - <path fill="#319400" d="M274.87 290.82l-.5 6.2c1.862-1.735 1.816-4.11.5-6.2z"/> - <path fill="#102121" d="M275.37 290.82l.5.477-.5-.477z"/> - <path fill="#212139" d="M275.87 290.82l.5.477-.5-.477z"/> - <path fill="#296300" d="M276.37 290.82l.5.477-.5-.477z"/> - <path fill="#293129" d="M277.37 290.82l.5.477-.5-.477z"/> - <path fill="#42425a" d="M277.88 290.82l.5.477-.5-.477z"/> - <path fill="#31425a" d="M278.38 290.82l.5.477-.5-.477z"/> - <path fill="#103900" d="M278.88 290.82l.5.477-.5-.477z"/> - <path fill="#31425a" d="M279.38 290.82l.5.477-.5-.477z"/> - <path fill="#42425a" d="M280.21 290.98l.334.16-.334-.16z"/> - <path fill="#184a00" d="M281.55 291.14l.167.318-.167-.318z"/> - <path fill="#42425a" d="M281.89 290.82l.5.477-.5-.477z"/> - <path fill="#636b7b" d="M282.39 290.82l.5.477-.5-.477z"/> - <path fill="#082108" d="M282.89 290.82l.5.477-.5-.477z"/> - <path fill="#292921" d="M283.89 290.82l.5.477-.5-.477z"/> - <path fill="#185200" d="M284.39 290.82l.5.477-.5-.477z"/> - <path fill="#9c9494" d="M284.89 290.82l.5.477-.5-.477z"/> - <path fill="#184a00" d="M285.9 290.82l.5.477-.5-.477z"/> - <path fill="#214210" d="M286.4 290.82l.5.477-.5-.477z"/> - <path fill="#185200" d="M291.41 290.82l.5.477-.5-.477m1.003 0l.5.477-.5-.477z"/> - <path fill="#297b00" d="M292.92 290.82l.5.477-.5-.477z"/> - <path fill="#103900" d="M293.92 290.82l.5.477-.5-.477z"/> - <path fill="#185200" d="M297.43 290.82l.5.477-.5-.477z"/> - <path fill="#103900" d="M297.93 290.82l.5.477-.5-.477z"/> - <path fill="#296300" d="M298.43 290.82l.5.477-.5-.477z"/> - <path fill="#297b00" d="M302.94 290.82l.5.477-.5-.477z"/> - <path fill="#296300" d="M303.44 290.82l.5.477-.5-.477z"/> - <path fill="#214210" d="M303.94 290.82l.5.477-.5-.477z"/> - <path fill="#7b7373" d="M304.45 290.82l.5.477-.5-.477z"/> - <path fill="#dedede" d="M304.95 290.82l.5.477-.5-.477z"/> - <path fill="#cecece" d="M305.95 290.82l.5.477-.5-.477z"/> - <path fill="#bdbdbd" d="M306.45 290.82l-.5.954.5-.954z"/> - <path fill="#8c8c8c" d="M306.95 290.82l.5.477-.5-.477z"/> - <path fill="#7b7373" d="M307.45 290.82l.5.477-.5-.477z"/> - <path fill="#314231" d="M220.72 291.3l.5.477-.5-.477z"/> - <path fill="#397b00" d="M221.22 291.3l.5.477-.5-.477z"/> - <path fill="#295200" d="M221.73 291.3l.5.477-.5-.477z"/> - <path fill="#396b10" d="M222.23 291.3l.5.477-.5-.477z"/> - <path fill="#213918" d="M222.73 291.3l.5.477-.5-.477z"/> - <path fill="#294200" d="M223.56 291.45l.334.16-.334-.16z"/> - <path fill="#428c00" d="M225.57 291.45l.334.16-.334-.16z"/> - <path fill="#294200" d="M227.07 291.45l.334.16-.334-.16z"/> - <path fill="#397b00" d="M227.74 291.3l.5.477-.5-.477z"/> - <path fill="#315221" d="M230.25 291.3l.5.477-.5-.477z"/> - <path fill="#cecece" d="M230.75 291.3l.5.477-.5-.477z"/> - <path fill="#420000" d="M232.76 291.3l.5.477-.5-.477z"/> - <path fill="#bd2110" d="M234.43 291.61l.167.318-.167-.318z"/> - <path fill="#295200" d="M234.76 291.3l.5 1.908h.503l-1.003-1.908z"/> - <path fill="#8c8c8c" d="M236.43 291.61l.167.318-.167-.318z"/> - <path fill="#efefef" d="M237.27 291.3l.5.477-.5-.477z"/> - <path fill="#214210" d="M237.77 291.3l.5.477-.5-.477z"/> - <path fill="#294200" d="M240.78 291.3l.5.477-.5-.477z"/> - <path fill="#295200" d="M243.28 291.3l.5.477-.5-.477z"/> - <path fill="#294200" d="M244.29 291.3l.5.477-.5-.477z"/> - <path fill="#295200" d="M246.29 291.3l.5.477-.5-.477z"/> - <path fill="#ada5a5" d="M246.79 291.3l.5.477-.5-.477z"/> - <path fill="#313931" d="M247.29 291.3l.5.477-.5-.477z"/> - <path fill="#213918" d="M247.8 291.3l.5.477-.5-.477z"/> - <path fill="#63636b" d="M248.3 291.3l.5.477-.5-.477z"/> - <path fill="#8c8c8c" d="M248.8 291.3l.5.477-.5-.477z"/> - <path fill="#bdbdbd" d="M249.3 291.3l.5.477-.5-.477z"/> - <path fill="#cecece" d="M249.8 291.3l.5.477-.5-.477z"/> - <path fill="#526b42" d="M251.3 291.3l.5.477-.5-.477z"/> - <path fill="#428c00" d="M251.81 291.3l1.003.954-1.003-.954z"/> - <path fill="#103900" d="M252.31 291.3l.5.477-.5-.477z"/> - <path fill="#425242" d="M253.81 291.3l.5.477-.5-.477z"/> - <path fill="#dedede" d="M254.31 291.3l.5.477-.5-.477z"/> - <path fill="#5a5231" d="M254.81 291.3l.5.477-.5-.477z"/> - <path fill="#313931" d="M258.32 291.3l.5.477-.5-.477z"/> - <path fill="#7b5252" d="M258.82 291.3l.5.477-.5-.477z"/> - <path fill="#5a1008" d="M259.33 291.3l.5.477-.5-.477z"/> - <path fill="#ad1810" d="M259.83 291.3l.5.477-.5-.477z"/> - <path fill="#002984" d="M269.35 291.3l.5.477-.5-.477z"/> - <path fill="#00184a" d="M269.85 291.3l.5.477-.5-.477z"/> - <path fill="#42425a" d="M270.36 291.3l.5.477-.5-.477z"/> - <path fill="#8c8c8c" d="M270.86 291.3l.5.477-.5-.477z"/> - <path fill="#9c9494" d="M271.36 291.3l.5.477-.5-.477z"/> - <path fill="#bdbdbd" d="M271.86 291.3l.5.477-.5-.477z"/> - <path fill="#dedede" d="M272.36 291.3l.5.477-.5-.477z"/> - <path fill="#214210" d="M275.37 291.3l.5.477-.5-.477z"/> - <path fill="#425242" d="M275.87 291.3l.5.477-.5-.477z"/> - <path fill="#63636b" d="M278.38 291.3l.5.477-.5-.477z"/> - <path fill="#9c9494" d="M280.38 291.3l.5.477-.5-.477z"/> - <path fill="#296300" d="M280.88 291.3l.5.477-.5-.477z"/> - <path fill="#bdbdbd" d="M282.39 291.3l.5.477-.5-.477z"/> - <path fill="#103900" d="M283.89 291.3l1.003.954-1.003-.954z"/> - <path fill="#296300" d="M284.39 291.3l.5.477-.5-.477z"/> - <path fill="#313931" d="M284.89 291.3l.5.477-.5-.477z"/> - <path fill="#297b00" d="M285.4 291.3l.5.477-.5-.477z"/> - <path fill="#103900" d="M285.9 291.3l.5.477-.5-.477z"/> - <path fill="#185200" d="M286.4 291.3l.5.477-.5-.477m4.01 0l.502.477-.5-.477z"/> - <path fill="#184a00" d="M291.58 291.61l.167.318-.167-.318m.836-.318l.5.477-.5-.478z"/> - <path fill="#297b00" d="M293.42 291.3l1.003.954-1.003-.954z"/> - <path fill="#184a00" d="M293.92 291.3l.5.477-.5-.477z"/> - <path fill="#297b00" d="M296.42 291.3l.5.477-.5-.477z"/> - <path fill="#103900" d="M296.93 291.3l.5.477-.5-.477z"/> - <path fill="#296300" d="M297.43 291.3l.5.477-.5-.477z"/> - <path fill="#297b00" d="M304.45 291.3l.5.477-.5-.477z"/> - <path fill="#185200" d="M304.95 291.3l.5.477-.5-.477z"/> - <path fill="#5a6b52" d="M305.45 291.3l.5.477-.5-.477z"/> - <path fill="#bdbdbd" d="M221.06 291.93l.334.16-.334-.16z"/> - <path fill="#efefef" d="M222.23 291.77l.5.477-.5-.477z"/> - <path fill="#214210" d="M222.73 291.77l.5.477-.5-.477z"/> - <path fill="#428c00" d="M223.73 293.68l1.003-1.43c-1.297-.286-2.077.465-1.003 1.43z"/> - <path fill="#294200" d="M225.57 291.93l.334.16-.334-.16z"/> - <path fill="#295200" d="M226.24 291.77l.5.477-.5-.477z"/> - <path fill="#397b00" d="M229.25 291.77l.5.477-.5-.477z"/> - <path fill="#63636b" d="M229.75 291.77l.5.477-.5-.477z"/> - <path fill="#efefef" d="M230.25 291.77l.5.477-.5-.477z"/> - <path fill="#5a2121" d="M232.76 291.77l.5.477-.5-.477z"/> - <path fill="#8c8c8c" d="M237.77 291.77l.5.477-.5-.477z"/> - <path fill="#397b00" d="M238.27 291.77l.5.477-.5-.477z"/> - <path fill="#295200" d="M240.94 292.09l.167.318-.167-.318m1.838-.318l.502.477-.502-.478z"/> - <path fill="#63636b" d="M246.29 291.77l.5.477-.5-.477z"/> - <path fill="#dedede" d="M247.29 291.77l.5.477-.5-.477z"/> - <path fill="#294200" d="M247.8 291.77l.5.477-.5-.477z"/> - <path fill="#428c00" d="M248.3 291.77l.5 3.34 2.508 1.907 3.51.477.5-.477c-.37-1.292-4.465-6.87-5.013-3.816l-1.002-1.43H248.3z"/> - <path fill="#397b00" d="M249.3 291.77v.954l1.003-.954H249.3z"/> - <path fill="#295200" d="M250.3 291.77l.5.477-.5-.477z"/> - <path fill="#294200" d="M251.14 291.93l.334.16-.334-.16z"/> - <path fill="#397b00" d="M251.97 292.09l.167.318-.167-.318z"/> - <path fill="#294200" d="M252.81 291.77l.5.477-.5-.477z"/> - <path fill="#214210" d="M254.31 291.77l.5.477-.5-.477z"/> - <path fill="#295200" d="M254.81 291.77l.5.477-.5-.477z"/> - <path fill="#526b42" d="M258.32 291.77l.5.477-.5-.477z"/> - <path fill="#bdbdbd" d="M259.83 291.77l.5.477-.5-.477z"/> - <path fill="#63636b" d="M260.33 291.77l.5.477-.5-.477z"/> - <path fill="#8c8c8c" d="M260.83 291.77l.5.477-.5-.477z"/> - <path fill="#efefef" d="M261.33 291.77l.5.477-.5-.477m6.517 0l.502.477-.503-.477z"/> - <path fill="#8c8c8c" d="M268.35 291.77l.5.477-.5-.477z"/> - <path fill="#63636b" d="M268.85 291.77l.5.477-.5-.477z"/> - <path fill="#ada5a5" d="M269.35 291.77l.5.477-.5-.477z"/> - <path fill="#efefef" d="M269.85 291.77l.5.477-.5-.477z"/> - <path fill="#296300" d="M275.37 291.77l.5.477-.5-.477z"/> - <path fill="#103900" d="M275.87 291.77l.5.477-.5-.477z"/> - <path fill="#dedede" d="M277.88 291.77l.5.477-.5-.477z"/> - <path fill="#184a00" d="M278.38 291.77l.5.477-.5-.477z"/> - <path fill="#efefef" d="M279.88 291.77l.5.477-.5-.477z"/> - <path fill="#294221" d="M280.38 291.77l.5.477-.5-.477z"/> - <path fill="#319400" d="M280.88 291.77l-3.51 5.724c3.933-.044 5.62-2.048 6.017-5.724h-.502l-3.51 5.247 1.505-5.247z"/> - <path fill="#4a6342" d="M281.38 291.77l.5.477-.5-.477z"/> - <path fill="#425242" d="M282.39 291.77l.5.477-.5-.477z"/> - <path fill="#185200" d="M283.39 291.77l.5.477-.5-.477z"/> - <path fill="#297b00" d="M283.89 291.77l.5.477-.5-.477z"/> - <path fill="#184a00" d="M284.89 291.77l.5.477-.5-.477z"/> - <path fill="#319400" d="M285.4 291.77l-3.51 6.2c2.335-1.093 4.07-3.667 3.51-6.2z"/> - <path fill="#082108" d="M285.9 291.77l.5.477-.5-.477z"/> - <path fill="#297b00" d="M286.4 291.77l.5.477-.5-.477z"/> - <path fill="#184a00" d="M290.41 291.77l.5.477-.5-.477z"/> - <path fill="#185200" d="M293.42 291.77l.5.477-.5-.477m2.507 0l.5.477-.5-.477z"/> - <path fill="#184a00" d="M296.42 291.77l.5.477-.5-.477z"/> - <path fill="#185200" d="M298.26 291.93l.334.16-.334-.16z"/> - <path fill="#296300" d="M298.93 291.77l.5.477-.5-.477z"/> - <path fill="#184a00" d="M299.43 291.77v.477h1.504l-1.504-.477z"/> - <path fill="#185200" d="M300.94 291.77l.5.477-.5-.477z"/> - <path fill="#184a00" d="M301.77 291.93l.334.16-.334-.16z"/> - <path fill="#185200" d="M302.44 291.77l.5.477-.5-.477z"/> - <path fill="#296300" d="M303.11 292.09l.167.318-.167-.318z"/> - <path fill="#297b00" d="M303.44 291.77l.5.477-.5-.477z"/> - <path fill="#185200" d="M305.95 291.77l.5.477-.5-.477z"/> - <path fill="#63636b" d="M306.45 291.77l.5.477-.5-.477z"/> - <path fill="#efefef" d="M306.95 291.77l.5.477-.5-.477z"/> - <path fill="#8c8c8c" d="M222.23 292.25l.5.477-.5-.477z"/> - <path fill="#397b00" d="M223.73 292.25l-.5.954h1l-.5-.954z"/> - <path fill="#103900" d="M224.23 292.25l.5.477-.5-.477z"/> - <path fill="#295200" d="M228.24 292.25l.5.477-.5-.477z"/> - <path fill="#5a5231" d="M228.74 292.25l.5.477-.5-.477z"/> - <path fill="#ada5a5" d="M229.25 292.25l.5.477-.5-.477z"/> - <path fill="#bdbdbd" d="M231.25 292.25l.5.477-.5-.477z"/> - <path fill="#8c8c8c" d="M231.75 292.25l.5.477-.5-.477z"/> - <path fill="#8c9c84" d="M232.25 292.25l.5.477-.5-.477z"/> - <path fill="#5a5231" d="M232.76 292.25l.5.477-.5-.477z"/> - <path fill="#422100" d="M233.26 292.25l.5.477-.5-.477z"/> - <path fill="#5a2908" d="M233.76 292.25l.5.477-.5-.477z"/> - <path fill="#311000" d="M234.26 292.25l.5.477-.5-.477z"/> - <path fill="#397b00" d="M235.26 292.25l.5.477-.5-.477z"/> - <path fill="#5a6b52" d="M236.26 292.25l.5.477-.5-.477z"/> - <path fill="#52525a" d="M238.27 292.25l.5.477-.5-.477z"/> - <path fill="#103900" d="M242.78 292.25l.5.477-.5-.477z"/> - <path fill="#314231" d="M245.79 292.25l-.5.954.5-.954z"/> - <path fill="#dedede" d="M246.29 292.25l.5.477-.5-.477z"/> - <path fill="#63636b" d="M247.8 292.25l.5.477-.5-.477z"/> - <path fill="#295200" d="M248.8 292.25l.5.477-.5-.477z"/> - <path fill="#103900" d="M252.31 292.25l.5.477-.5-.477z"/> - <path fill="#294200" d="M253.31 292.25l-.5.954.5-.954z"/> - <path fill="#103900" d="M254.81 292.25l.5.477-.5-.477z"/> - <path fill="#295200" d="M256.99 292.57l.167.318-.167-.318z"/> - <path fill="#294200" d="M258.49 292.57l.167.318-.167-.318z"/> - <path fill="#dedede" d="M260.83 292.25l.5.477-.5-.477z"/> - <path fill="#7b7373" d="M261.33 292.25l.5.477-.5-.477z"/> - <path fill="#8c8c8c" d="M261.83 292.25l.5.477-.5-.477z"/> - <path fill="#9c9494" d="M267.35 292.25l.5.477-.5-.477z"/> - <path fill="#63636b" d="M267.85 292.25l.5.477-.5-.477z"/> - <path fill="#dedede" d="M268.35 292.25l.5.477-.5-.477z"/> - <path fill="#184a00" d="M275.87 292.25l.5.477-.5-.477z"/> - <path fill="#63636b" d="M277.88 292.25l-.5.954.5-.954z"/> - <path fill="#297b00" d="M278.38 292.25l.5.477-.5-.477z"/> - <path fill="#8c8c8c" d="M279.88 292.25l.5.477-.5-.477z"/> - <path fill="#297b00" d="M280.38 292.25l.5.477-.5-.477z"/> - <path fill="#8c8c8c" d="M281.72 292.41l.334.16-.334-.16z"/> - <path fill="#296300" d="M282.39 292.25l.5.477-.5-.477z"/> - <path fill="#103900" d="M283.39 292.25l.5.477-.5-.477z"/> - <path fill="#319400" d="M283.89 292.25l.5.477-.5-.477z"/> - <path fill="#082108" d="M284.39 292.25l.5.477-.5-.477z"/> - <path fill="#297b00" d="M284.89 292.25l.5.477-.5-.477z"/> - <path fill="#103900" d="M285.9 292.25l.5.477-.5-.477z"/> - <path fill="#296300" d="M290.41 292.25l.5.477-.5-.477m1.003 0l.5.477-.5-.477z"/> - <path fill="#103900" d="M293.42 292.25l.5.477-.5-.477z"/> - <path fill="#297b00" d="M294.42 292.73v.477h1.504l-1.504-.477z"/> - <path fill="#103900" d="M295.42 292.25l.5.477-.5-.477z"/> - <path fill="#296300" d="M295.92 292.25l.5.477-.5-.477z"/> - <path fill="#082108" d="M303.44 292.25l.5.477-.5-.477z"/> - <path fill="#001000" d="M303.94 292.25l.5.477-.5-.477z"/> - <path fill="#395231" d="M304.45 292.25l.5.477-.5-.477z"/> - <path fill="#184a00" d="M304.95 292.25l.5.477-.5-.477z"/> - <path fill="#296300" d="M305.45 292.25l.5.477-.5-.477z"/> - <path fill="#297b00" d="M306.28 292.41l.334.16-.334-.16z"/> - <path fill="#214210" d="M306.95 292.25l.5.477-.5-.477z"/> - <path fill="#9c9494" d="M307.45 292.25l.5.477-.5-.477z"/> - <path fill="#5a5231" d="M222.23 292.73l.5.477-.5-.477z"/> - <path fill="#397b00" d="M225.74 292.73l.5.477-.5-.477z"/> - <path fill="#295200" d="M226.24 292.73l.5.477-.5-.477z"/> - <path fill="#294200" d="M226.74 292.73l.5.477-.5-.477z"/> - <path fill="#5a5231" d="M227.24 292.73l.5.477-.5-.477z"/> - <path fill="#7b7373" d="M227.74 292.73l.5.477-.5-.477z"/> - <path fill="#ada5a5" d="M228.24 292.73l.5.477-.5-.477z"/> - <path fill="#efefef" d="M229.08 292.89l.334.16-.334-.16z"/> - <path fill="#9c9494" d="M229.75 292.73l.5.477-.5-.477z"/> - <path fill="#5a6b52" d="M230.25 292.73l.5.477-.5-.477z"/> - <path fill="#396b10" d="M230.75 292.73l.5.477-.5-.477z"/> - <path fill="#397b00" d="M231.25 292.73l.5.477-.5-.477z"/> - <path fill="#428c00" d="M230.25 293.2v.477h4.512v.477h-4.512v.477h1.003v.478c-2.74.143-4.127 1.11-5.515 3.34l8.523-.478v.477c-2.31.698-5.675.45-6.517 2.863 3.2-1.243 7.83-1.67 9.526-4.77l-3.01 1.43 1.505-1.908-4.512-.477v-.477l8.02.477v.477h-1.503v.477l6.517-.478v-.477h-1.504v-.477h3.008v-.477l-4.01.955-11.53-2.385z"/> - <path fill="#294200" d="M235.76 292.73l.5.477-.5-.477z"/> - <path fill="#315221" d="M236.26 292.73l.5.477-.5-.477z"/> - <path fill="#efefef" d="M238.27 292.73l.5.477-.5-.477z"/> - <path fill="#314231" d="M238.77 292.73l.5.477-.5-.477z"/> - <path fill="#294200" d="M240.78 292.73l1.003.954-1.003-.954z"/> - <path fill="#397b00" d="M242.61 292.89l.334.16-.334-.16m2.172-.16l.502.478-.502-.477z"/> - <path fill="#efefef" d="M245.79 292.73l.5.477-.5-.477z"/> - <path fill="#ada5a5" d="M247.8 292.73l.5.477-.5-.477z"/> - <path fill="#397b00" d="M248.3 292.73l.5.477-.5-.477z"/> - <path fill="#294200" d="M249.63 292.89l.334.16-.334-.16z"/> - <path fill="#295200" d="M253.31 292.73l1.504.954v-.477l-1.504-.477z"/> - <path fill="#103900" d="M253.98 293.04l.167.318-.167-.318z"/> - <path fill="#294200" d="M255.32 292.73l.5.477-.5-.477z"/> - <path fill="#bdbdbd" d="M261.83 292.73l.5.477-.5-.477z"/> - <path fill="#52525a" d="M262.33 292.73l.5.477-.5-.477z"/> - <path fill="#cecece" d="M262.84 292.73l.5.477-.5-.477m3.51 0l-1.003 1.43 1.002-1.43z"/> - <path fill="#63636b" d="M266.85 292.73l.5.477-.5-.477z"/> - <path fill="#bdbdbd" d="M267.35 292.73l.5.477-.5-.477z"/> - <path fill="#185200" d="M275.87 292.73l.5.477-.5-.477z"/> - <path fill="#184a00" d="M277.88 292.73l.5.477-.5-.477z"/> - <path fill="#319400" d="M278.38 292.73l-3.008 4.77c1.9-.925 3.604-2.634 3.008-4.77z"/> - <path fill="#184a00" d="M278.88 292.73l.5.477-.5-.477z"/> - <path fill="#cecece" d="M279.38 292.73l.5.477-.5-.477z"/> - <path fill="#184a00" d="M279.88 292.73l.5.477-.5-.477z"/> - <path fill="#296300" d="M280.88 292.73l.5.477-.5-.477z"/> - <path fill="#9c9494" d="M281.38 292.73l.5.477-.5-.477z"/> - <path fill="#214210" d="M281.89 292.73l.5.477-.5-.477z"/> - <path fill="#184a00" d="M283.39 292.73l1.003.954-1.003-.954z"/> - <path fill="#297b00" d="M283.89 292.73l1.003.954-1.003-.954z"/> - <path fill="#103900" d="M284.39 292.73l.5.477-.5-.477z"/> - <path fill="#297b00" d="M285.4 292.73l.5.477-.5-.477z"/> - <path fill="#296300" d="M285.9 292.73l.5.477-.5-.477z"/> - <path fill="#185200" d="M289.41 292.73l.5.477-.5-.477zm4.01 0l.5.477-.5-.477z"/> - <path fill="#103900" d="M294.92 292.73l.5.477-.5-.477z"/> - <path fill="#296300" d="M303.94 292.73l.5.477-.5-.477z"/> - <path fill="#425242" d="M304.45 292.73l.5.477-.5-.477z"/> - <path fill="#efefef" d="M304.95 292.73l.5.477-.5-.477z"/> - <path fill="#bdbdbd" d="M305.45 292.73l.5.477-.5-.477z"/> - <path fill="#8c8c8c" d="M305.95 292.73l.5.477-.5-.477z"/> - <path fill="#5a6b52" d="M306.45 292.73l.5.477-.5-.477z"/> - <path fill="#185200" d="M306.95 292.73l.5.477-.5-.477z"/> - <path fill="#184a00" d="M307.45 292.73l.5.477-.5-.477z"/> - <path fill="#7b7373" d="M307.96 292.73l.5.477-.5-.477z"/> - <path fill="#294200" d="M222.39 293.52l.167.318-.167-.318m1.337-.318l.5.477-.5-.478z"/> - <path fill="#526b42" d="M224.23 293.2l.5.477-.5-.477z"/> - <path fill="#8c8c8c" d="M225.07 293.36l.334.16-.334-.16z"/> - <path fill="#bdbdbd" d="M225.74 293.2l.5.477-.5-.477z"/> - <path fill="#dedede" d="M226.24 293.2l.5.477-.5-.477z"/> - <path fill="#9c9494" d="M228.24 293.2l.5.477-.5-.477z"/> - <path d="M228.74 293.2l.5.477-.5-.477z"/> - <path fill="#295200" d="M229.25 293.2l.5.477-.5-.477z"/> - <path fill="#397b00" d="M229.75 293.2l.5.477-.5-.477z"/> - <path fill="#292100" d="M236.26 293.2l.5.477-.5-.477z"/> - <path fill="#8c8c8c" d="M236.77 293.2l.5.477-.5-.477z"/> - <path fill="#ada5a5" d="M238.27 293.2l.5.477-.5-.477z"/> - <path fill="#63636b" d="M238.77 293.2l.5.477-.5-.477z"/> - <path fill="#103900" d="M239.27 293.2l.5.477-.5-.477z"/> - <path fill="#001000" d="M240.78 293.2l.5.477-.5-.477z"/> - <path fill="#295200" d="M241.78 293.2l.5.477-.5-.477z"/> - <path fill="#103900" d="M242.28 293.2l.5.477-.5-.477z"/> - <path fill="#397b00" d="M243.78 293.2l.5.477-.5-.477z"/> - <path fill="#214210" d="M244.29 293.2l.5.477-.5-.477z"/> - <path fill="#8c8c8c" d="M244.79 293.2l.5.477-.5-.477z"/> - <path fill="#efefef" d="M247.8 293.2l.5.477-.5-.477z"/> - <path fill="#295200" d="M248.3 293.2l.5.477-.5-.477z"/> - <path fill="#103900" d="M250.3 293.2l1.003.954-1.003-.954z"/> - <path fill="#295200" d="M255.32 293.2l.5.477-.5-.477z"/> - <path fill="#294200" d="M256.82 293.2v1.908h.5l-.5-1.908z"/> - <path fill="#295200" d="M258.32 293.2l.5.477-.5-.477z"/> - <path fill="#7b7373" d="M262.84 293.2l.5.477-.5-.477z"/> - <path fill="#9c9494" d="M263.34 293.2l1.504 1.908-1.504-1.908z"/> - <path fill="#7b7373" d="M266.34 293.2l-1.003 1.43 1.003-1.43z"/> - <path fill="#efefef" d="M266.85 293.2l.5.477-.5-.477z"/> - <path fill="#184a00" d="M276.04 293.52l.167.318-.167-.318z"/> - <path d="M277.37 293.2l.5.477-.5-.477z"/> - <path fill="#297b00" d="M277.88 293.2l.5.477-.5-.477z"/> - <path fill="#315221" d="M278.88 293.2l.5.477-.5-.477z"/> - <path fill="#314231" d="M279.38 293.2l.5.477-.5-.477z"/> - <path fill="#103900" d="M280.88 293.2l.5.477-.5-.477z"/> - <path fill="#425242" d="M281.38 293.2l.5.477-.5-.477z"/> - <path fill="#297b00" d="M281.89 293.2l.5.477-.5-.477z"/> - <path fill="#103900" d="M283.39 293.2l.5.477-.5-.477m2.005 0l.502.477-.502-.477z"/> - <path fill="#184a00" d="M289.41 293.2l.5.477-.5-.477z"/> - <path fill="#296300" d="M293.92 293.2l.5.477-.5-.477z"/> - <path fill="#103900" d="M294.42 293.2l.5.477-.5-.477z"/> - <path fill="#297b00" d="M304.45 293.2l.5.477-.5-.477z"/> - <path fill="#103910" d="M304.95 293.2l.5.477-.5-.477z"/> - <path fill="#ada5a5" d="M305.45 293.2l.5.477-.5-.477z"/> - <path fill="#efefef" d="M306.95 293.2l.5.477-.5-.477z"/> - <path fill="#9c9494" d="M307.45 293.2l.5.477-.5-.477z"/> - <path fill="#52525a" d="M307.96 293.2l.5.477-.5-.477z"/> - <path fill="#424242" d="M308.46 293.2l.5.477-.5-.477z"/> - <path fill="#dedede" d="M221.73 293.68l.5.477-.5-.477z"/> - <path fill="#213918" d="M222.73 293.68l.5.477-.5-.477z"/> - <path fill="#9c9494" d="M223.23 293.68l.5.477-.5-.477z"/> - <path fill="#efefef" d="M223.73 293.68l.5.477-.5-.477z"/> - <path fill="#bdbdbd" d="M228.74 293.68l1.003.954-1.003-.954z"/> - <path fill="#214210" d="M229.25 293.68l.5.477-.5-.477z"/> - <path fill="#294200" d="M229.75 293.68v.477h2.507l-2.507-.477z"/> - <path fill="#295200" d="M232.25 293.68l.5.477-.5-.477z"/> - <path fill="#397b00" d="M232.76 293.68l.5.477-.5-.477z"/> - <path fill="#295200" d="M233.26 293.68l.5.477-.5-.477z"/> - <path fill="#294200" d="M233.76 293.68l.5.477-.5-.477z"/> - <path fill="#295200" d="M234.26 293.68l.5.477-.5-.477z"/> - <path fill="#213918" d="M236.77 293.68l.5.477-.5-.477z"/> - <path fill="#cecece" d="M237.27 293.68l.5.477-.5-.477z"/> - <path fill="#7b7373" d="M237.77 293.68l.5.477-.5-.477z"/> - <path fill="#ad1810" d="M238.27 293.68l.5.477-.5-.477z"/> - <path fill="#941808" d="M239.27 293.68l.5.477-.5-.477z"/> - <path fill="#397b00" d="M239.77 293.68l.5.477-.5-.477z"/> - <path fill="#295200" d="M240.28 293.68l.5.477-.5-.477z"/> - <path fill="#941808" d="M240.78 293.68l.5.477-.5-.477z"/> - <path fill="#de2110" d="M241.28 293.68l-.5.954.5-.954z"/> - <path fill="#b51010" d="M241.78 293.68l.5.477-.5-.477z"/> - <path fill="#294200" d="M242.28 293.68l.5.477-.5-.477z"/> - <path fill="#295200" d="M242.78 293.68l.5.477-.5-.477z"/> - <path fill="#102110" d="M243.28 293.68l.5.477-.5-.477z"/> - <path fill="#63636b" d="M243.78 293.68l.5.477-.5-.477z"/> - <path fill="#bdbdbd" d="M244.29 293.68l.5.477-.5-.477z"/> - <path fill="#315221" d="M248.3 293.68l.5.477-.5-.477z"/> - <path fill="#397b00" d="M251.3 293.68l1.504 1.43-1.504-1.43m3.008 0l.5.477-.5-.477z"/> - <path fill="#294200" d="M255.98 294l.167.318-.167-.318m2.34-.318l.5.477-.5-.478z"/> - <path fill="#6b735a" d="M274.37 293.68l.5.477-.5-.477z"/> - <path fill="#297b00" d="M276.87 293.68l.5.477-.5-.477z"/> - <path fill="#184a00" d="M277.37 293.68l.5.477-.5-.477z"/> - <path fill="#101810" d="M278.88 293.68l.5.477-.5-.477z"/> - <path fill="#297b00" d="M279.38 293.68l.5.477-.5-.477z"/> - <path fill="#001000" d="M280.88 293.68l.5.477-.5-.477z"/> - <path fill="#296300" d="M281.38 293.68l.5.477-.5-.477m1.504 0l.5.477-.5-.477z"/> - <path fill="#185200" d="M283.72 293.84l.334.16-.334-.16z"/> - <path fill="#184a00" d="M285.4 293.68l.5.477-.5-.477z"/> - <path fill="#297b00" d="M286.9 293.68l1.003.954-1.003-.954z"/> - <path fill="#184a00" d="M293.92 293.68l.5.477-.5-.477z"/> - <path fill="#297b00" d="M295.42 293.68l1.003.954-1.003-.954z"/> - <path fill="#185200" d="M295.92 293.68l.5.477-.5-.477z"/> - <path fill="#184a00" d="M296.42 293.68v.477h1.504l-1.504-.477z"/> - <path fill="#296300" d="M297.93 293.68l.5.477-.5-.477z"/> - <path fill="#184a00" d="M298.43 293.68v.477h2.507l-2.507-.477z"/> - <path fill="#296300" d="M300.94 293.68l.5.477-.5-.477z"/> - <path fill="#184a00" d="M301.44 293.68l.5.477-.5-.477z"/> - <path fill="#296300" d="M301.94 293.68l.5.477-.5-.477z"/> - <path fill="#297b00" d="M302.44 293.68l.5.477-.5-.477z"/> - <path fill="#185200" d="M305.45 293.68l1.003.954-1.003-.954z"/> - <path fill="#9c9494" d="M305.95 293.68l.5.477-.5-.477z"/> - <path fill="#bdbdbd" d="M221.73 294.16l.5.477-.5-.477z"/> - <path fill="#313931" d="M222.23 294.16l.5.477-.5-.477z"/> - <path fill="#efefef" d="M222.73 294.16l-1.003.477v.477l1.003-.954z"/> - <path fill="#103900" d="M229.75 294.16l.5.477-.5-.477z"/> - <path fill="#295200" d="M234.76 294.16l.5.477-.5-.477z"/> - <path fill="#294200" d="M235.26 294.16l.5.477-.5-.477m2.005 0l.502.477-.502-.477z"/> - <path fill="#391810" d="M237.77 294.16l.5.477-.5-.477z"/> - <path fill="#423100" d="M240.11 294.32l.334.16-.334-.16z"/> - <path fill="#ce2110" d="M241.28 294.16l.5.477-.5-.477z"/> - <path fill="#631808" d="M241.78 294.16l.5.477-.5-.477z"/> - <path fill="#293100" d="M242.28 294.16l.5.477-.5-.477z"/> - <path fill="#397b00" d="M242.78 294.16v.477h2.005l-2.005-.477z"/> - <path fill="#294200" d="M244.79 294.16l.5.477-.5-.477z"/> - <path fill="#315221" d="M245.29 294.16l.5.477-.5-.477z"/> - <path fill="#5a6b52" d="M245.79 294.16l.5.477-.5-.477z"/> - <path fill="#ada5a5" d="M246.29 294.16l.5.477-.5-.477z"/> - <path fill="#6b735a" d="M248.3 294.16l.5.477-.5-.477z"/> - <path fill="#294200" d="M251.3 294.16l.5.477-.5-.477m3.008 0l.5 1.43h.503l-1.002-1.43z"/> - <path fill="#315221" d="M258.32 294.16l.5.477-.5-.477z"/> - <path fill="#bdbdbd" d="M264.84 294.16l.5.477-.5-.477z"/> - <path fill="#4a6342" d="M274.37 294.16l.5.477-.5-.477z"/> - <path fill="#103900" d="M276.87 294.16l.5.477-.5-.477z"/> - <path fill="#185200" d="M278.38 294.16l.5.477-.5-.477z"/> - <path fill="#103900" d="M278.88 294.16l-.5.954.5-.954z"/> - <path fill="#297b00" d="M280.38 294.16l1.003.954-1.003-.954z"/> - <path fill="#103900" d="M280.88 294.16l.5.477-.5-.477z"/> - <path fill="#184a00" d="M282.89 294.16l.5.477-.5-.477z"/> - <path fill="#103900" d="M283.39 294.16l.5.477-.5-.477z"/> - <path fill="#297b00" d="M284.89 294.16l1.003.954-1.003-.954z"/> - <path fill="#185200" d="M285.4 294.16l.5.477-.5-.477m1.504 0l.5.477-.5-.477z"/> - <path fill="#297b00" d="M294.42 294.16l.5.477-.5-.477z"/> - <path fill="#184a00" d="M294.92 294.16l.5.477-.5-.477z"/> - <path fill="#185200" d="M295.42 294.16l.5.477-.5-.477z"/> - <path fill="#297b00" d="M301.44 294.16l.5.477-.5-.477z"/> - <path fill="#103900" d="M301.94 294.16l.5.477-.5-.477z"/> - <path fill="#101810" d="M302.44 294.16l.5.477-.5-.477z"/> - <path fill="#425242" d="M302.94 294.16l.5.477-.5-.477z"/> - <path fill="#315221" d="M303.44 294.16l.5.477-.5-.477z"/> - <path fill="#185200" d="M303.94 294.16l.5.477-.5-.477z"/> - <path fill="#296300" d="M304.45 294.16l.5.477-.5-.477z"/> - <path fill="#8c8c8c" d="M306.45 294.16l.5.477-.5-.477z"/> - <path fill="#ada5a5" d="M228.24 294.63l.5.477-.5-.477z"/> - <path fill="#5a5231" d="M228.74 294.63l.5.477-.5-.477z"/> - <path fill="#295200" d="M229.25 294.63l.5.477-.5-.477z"/> - <path fill="#397b00" d="M229.75 294.63l.5.477-.5-.477z"/> - <path fill="#294200" d="M230.58 294.79l.334.16-.334-.16z"/> - <path fill="#397b00" d="M237.77 294.63l.5.477-.5-.477z"/> - <path fill="#293100" d="M238.27 294.63l.5.477-.5-.477z"/> - <path fill="#631808" d="M238.77 294.63l.5.477-.5-.477z"/> - <path fill="#941808" d="M239.27 294.63l.5.477-.5-.477z"/> - <path fill="#295200" d="M239.77 294.63l.5.477-.5-.477z"/> - <path fill="#294200" d="M240.28 294.63l.5.477-.5-.477z"/> - <path fill="#ad1810" d="M240.78 294.63l.5.477-.5-.477z"/> - <path fill="#392100" d="M241.28 294.63l.5.477-.5-.477z"/> - <path fill="#397b00" d="M245.79 294.63l-1.504 1.43 1.504-1.43z"/> - <path fill="#294200" d="M246.29 294.63v.954h1.003l-1.003-.954z"/> - <path fill="#213918" d="M246.79 294.63l.5.477-.5-.477z"/> - <path fill="#9c9494" d="M247.29 294.63l1.003.954-1.003-.954z"/> - <path fill="#8c8c8c" d="M248.3 294.63l.5.477-.5-.477z"/> - <path fill="#294200" d="M251.81 294.63l.5.477-.5-.477z"/> - <path fill="#397b00" d="M254.31 294.63l.5.477-.5-.477z"/> - <path fill="#295200" d="M255.82 294.63l.5.477-.5-.477z"/> - <path fill="#8c8c8c" d="M258.32 294.63l.5.477-.5-.477m6.517 0l.502.477-.503-.477z"/> - <path fill="#294221" d="M274.37 294.63l.5.477-.5-.477z"/> - <path fill="#296300" d="M276.87 294.63l.5.477-.5-.477z"/> - <path fill="#297b00" d="M278.88 294.63l.5.477-.5-.477z"/> - <path fill="#184a00" d="M280.38 294.63l.5.477-.5-.477z"/> - <path fill="#297b00" d="M282.39 294.63l.5.477-.5-.477z"/> - <path d="M282.89 294.63l.5.477-.5-.477z"/> - <path fill="#297b00" d="M283.39 294.63l.5.477-.5-.477z"/> - <path fill="#185200" d="M284.89 294.63l.5.477-.5-.477z"/> - <path fill="#103900" d="M286.9 294.63l.5.477-.5-.477z"/> - <path fill="#296300" d="M288.9 294.63l.5.477-.5-.477z"/> - <path fill="#184a00" d="M289.74 294.79l.334.16-.334-.16z"/> - <path fill="#185200" d="M290.41 294.63l.5.477-.5-.477z"/> - <path fill="#297b00" d="M290.91 294.63l-.5.954.5-.954m2.005 0l.502.477-.502-.477m9.526 0l.502.477-.5-.477z"/> - <path fill="#103910" d="M302.94 294.63l.5.477-.5-.477z"/> - <path fill="#bdbdbd" d="M303.44 294.63l.5.477-.5-.477z"/> - <path fill="#efefef" d="M303.94 294.63l.5.477-.5-.477z"/> - <path fill="#bdbdbd" d="M304.45 294.63l.5.477-.5-.477z"/> - <path fill="#8c8c8c" d="M304.95 294.63l.5.477-.5-.477z"/> - <path fill="#294221" d="M305.45 294.63l.5.477-.5-.477z"/> - <path fill="#296300" d="M305.95 294.63l.5.477-.5-.477z"/> - <path fill="#297b00" d="M306.45 294.63l.5.477-.5-.477z"/> - <path fill="#63636b" d="M306.95 294.63l1.003.954-1.003-.954z"/> - <path fill="#efefef" d="M227.24 295.11l-1.003 1.43 1.003-1.43z"/> - <path fill="#425242" d="M227.74 295.11l.5.477-.5-.477z"/> - <path fill="#397b00" d="M228.24 295.11l.5.477-.5-.477z"/> - <path fill="#294200" d="M231.59 295.27l.334.16-.334-.16z"/> - <path fill="#397b00" d="M232.42 295.43l.167.318-.167-.318z"/> - <path fill="#294200" d="M239.61 295.27l.334.16-.334-.16z"/> - <path d="M240.78 295.11l.5.477-.5-.477z"/> - <path fill="#397b00" d="M241.28 295.11l.5.477-.5-.477z"/> - <path fill="#294200" d="M242.78 295.11v.477h1.504l-1.504-.477z"/> - <path fill="#103900" d="M247.29 295.11l.5.477-.5-.477z"/> - <path fill="#bdbdbd" d="M248.3 295.11l.5.477-.5-.477z"/> - <path fill="#397b00" d="M248.8 295.11l.5.477-.5-.477z"/> - <path fill="#294200" d="M249.3 295.11l.5.477-.5-.477z"/> - <path fill="#422100" d="M249.8 295.11l.5.477-.5-.477z"/> - <path fill="#4a4208" d="M250.3 295.11l.5.477-.5-.477z"/> - <path fill="#103900" d="M252.31 295.11l.5.477-.5-.477z"/> - <path fill="#295200" d="M252.81 295.11v.954h1.003l-1.003-.954zm5.01 0l.5.477-.5-.477z"/> - <path fill="#dedede" d="M258.32 295.11l.5.477-.5-.477z"/> - <path fill="#cecece" d="M273.86 295.11l.5.477-.5-.477z"/> - <path fill="#185200" d="M274.37 295.11l.5.477-.5-.477z"/> - <path fill="#297b00" d="M275.87 295.11l1.003.954-1.003-.954z"/> - <path fill="#185200" d="M277.88 295.11l.5.477-.5-.477z"/> - <path fill="#296300" d="M278.38 295.11l.5.477-.5-.477z"/> - <path fill="#297b00" d="M279.88 295.11l1.003.954-1.003-.954z"/> - <path fill="#103900" d="M280.38 295.11l.5.477-.5-.477z"/> - <path fill="#184a00" d="M282.72 295.27l.334.16-.334-.16m2.172-.16l.502.478-.502-.477z"/> - <path fill="#297b00" d="M286.4 295.11l1.003.954-1.003-.954z"/> - <path fill="#185200" d="M286.9 295.11l.5.477-.5-.477z"/> - <path fill="#296300" d="M290.91 295.11l.5.477-.5-.477z"/> - <path fill="#184a00" d="M291.41 295.11l.5.477-.5-.477z"/> - <path fill="#103900" d="M291.91 295.11l.5.477-.5-.477z"/> - <path fill="#296300" d="M292.41 295.11l.5.477-.5-.477z"/> - <path fill="#185200" d="M295.92 295.11l.5.477-.5-.477z"/> - <path fill="#184a00" d="M296.42 295.11l.5.477-.5-.477z"/> - <path fill="#296300" d="M296.93 295.11v.954h1.003l-1.003-.954z"/> - <path fill="#297b00" d="M297.43 295.11l.5.477-.5-.477z"/> - <path fill="#185200" d="M303.44 295.11l.5.477-.5-.477z"/> - <path fill="#8c8c8c" d="M303.94 295.11l.5.477-.5-.477z"/> - <path fill="#bdbdbd" d="M305.95 295.11l.5.477-.5-.477z"/> - <path fill="#6b735a" d="M306.45 295.11l.5.477-.5-.477z"/> - <path fill="#082108" d="M306.95 295.11l.5.477-.5-.477z"/> - <path fill="#efefef" d="M307.96 295.11l.5.477-.5-.477z"/> - <path fill="#314231" d="M227.24 295.59l.5.477-.5-.477z"/> - <path fill="#295200" d="M232.76 295.59l.5.477-.5-.477z"/> - <path fill="#294200" d="M233.26 295.59v.477h2.005l-2.005-.477z"/> - <path fill="#295200" d="M235.26 295.59l.5.477-.5-.477z"/> - <path fill="#397b00" d="M235.76 295.59v1.43l2.005-1.43h-2.005z"/> - <path fill="#294200" d="M238.1 295.75l.334.16-.334-.16z"/> - <path fill="#397b00" d="M238.77 295.59l.5.477-.5-.477z"/> - <path fill="#103900" d="M241.78 295.59l.5.477-.5-.477z"/> - <path fill="#295200" d="M242.28 295.59l.5.477-.5-.477z"/> - <path fill="#214210" d="M244.79 295.59l.5.477-.5-.477z"/> - <path fill="#63636b" d="M245.29 295.59l.5.477-.5-.477z"/> - <path fill="#8c8c8c" d="M245.79 295.59l-.5.954.5-.954z"/> - <path fill="#bdbdbd" d="M246.29 295.59v.954h1.003l-1.003-.954z"/> - <path fill="#cecece" d="M247.63 295.75l.334.16-.334-.16z"/> - <path d="M248.8 295.59l.5.477-.5-.477z"/> - <path fill="#bd2110" d="M249.3 295.59l.5.477-.5-.477zm1 0l.5.477-.5-.477z"/> - <path fill="#294200" d="M250.8 295.59l.5.477-.5-.477z"/> - <path fill="#397b00" d="M255.15 295.75l.334.16-.334-.16z"/> - <path fill="#5a6b52" d="M257.82 295.59l.5.477-.5-.477z"/> - <path fill="#7b7373" d="M273.86 295.59l.5.477-.5-.477z"/> - <path fill="#103900" d="M275.87 295.59l.5.477-.5-.477z"/> - <path fill="#297b00" d="M277.37 295.59l1.003.954-1.003-.954z"/> - <path fill="#103900" d="M277.88 295.59l.5.477-.5-.477z"/> - <path fill="#184a00" d="M280.05 295.91l.167.318-.167-.318z"/> - <path fill="#297b00" d="M281.89 295.59l1.003.954-1.003-.954z"/> - <path fill="#082108" d="M282.39 295.59l.5.477-.5-.477z"/> - <path fill="#296300" d="M284.73 295.75l.334.16-.334-.16z"/> - <path fill="#185200" d="M286.4 295.59l.5.477-.5-.477m6.183.318l.167.318-.167-.318z"/> - <path fill="#103900" d="M293.08 295.91l.167.318-.167-.318z"/> - <path fill="#297b00" d="M293.42 295.59l.5.477-.5-.477z"/> - <path fill="#296300" d="M294.92 295.59l.5.477-.5-.477z"/> - <path fill="#297b00" d="M295.42 295.59l-1.003 1.43 1.003-1.43z"/> - <path fill="#184a00" d="M297.93 295.59v.477h1.504l-1.504-.477z"/> - <path fill="#185200" d="M299.43 295.59l1.003.954v-.954h-1.003z"/> - <path fill="#297b00" d="M300.44 295.59l.5.477-.5-.477m3.51 0l1.503 1.43-1.504-1.43z"/> - <path fill="#63636b" d="M304.45 295.59l1.504 1.43-1.504-1.43z"/> - <path fill="#efefef" d="M306.95 295.59l.5.477-.5-.477z"/> - <path fill="#8c8c8c" d="M307.79 295.75l.334.16-.334-.16z"/> - <path fill="#314231" d="M226.74 296.07l.5.477-.5-.477z"/> - <path fill="#292100" d="M235.76 296.07l.5.477-.5-.477z"/> - <path fill="#397b00" d="M242.78 296.07l2.005.954v-.477l-2.005-.477z"/> - <path fill="#103900" d="M243.28 296.07l.5.477-.5-.477z"/> - <path fill="#292921" d="M243.78 296.07l.5.477-.5-.477z"/> - <path fill="#7b7373" d="M244.29 296.07l.5.477-.5-.477z"/> - <path fill="#bdbdbd" d="M244.79 296.07l.5.477-.5-.477z"/> - <path fill="#9c9494" d="M245.79 296.07l.5.477-.5-.477z"/> - <path fill="#dedede" d="M247.29 296.07l.5.477-.5-.477z"/> - <path fill="#734a42" d="M248.8 296.07l.5.477-.5-.477z"/> - <path fill="#423100" d="M250.8 296.07l.5.477-.5-.477z"/> - <path fill="#295200" d="M255.48 296.38l.167.318-.167-.318z"/> - <path fill="#397b00" d="M257.32 296.07l.5.477-.5-.477z"/> - <path fill="#9c9494" d="M257.82 296.07l.5.477-.5-.477z"/> - <path fill="#315221" d="M273.86 296.07l.5.477-.5-.477z"/> - <path fill="#185200" d="M275.54 296.38l.167.318-.167-.318z"/> - <path fill="#296300" d="M275.87 296.07l.5.477-.5-.477z"/> - <path fill="#103900" d="M277.37 296.07l.5.477-.5-.477z"/> - <path fill="#297b00" d="M279.38 296.07l.5.477-.5-.477z"/> - <path fill="#184a00" d="M282.05 296.38l.167.318-.167-.318m2.34-.318l.5.477-.5-.478z"/> - <path fill="#103900" d="M286.4 296.07l.5.477-.5-.477z"/> - <path fill="#297b00" d="M287.9 296.07l.5.477-.5-.477z"/> - <path fill="#185200" d="M288.4 296.07l.5.477-.5-.477z"/> - <path fill="#184a00" d="M287.4 296.54v.477l4.512-.477H287.4z"/> - <path fill="#296300" d="M291.91 296.07l-.5.954.5-.954z"/> - <path d="M293.42 296.07l.5.477-.5-.477z"/> - <path fill="#103900" d="M293.92 296.07l.5.477-.5-.477z"/> - <path fill="#185200" d="M295.42 296.07l.5.477-.5-.477z"/> - <path fill="#103900" d="M295.92 296.07l.5.477-.5-.477z"/> - <path fill="#296300" d="M296.42 296.07l.5.477-.5-.477z"/> - <path d="M300.44 296.07l.5.477-.5-.477z"/> - <path fill="#52525a" d="M300.94 296.07l.5.477-.5-.477z"/> - <path fill="#315221" d="M301.44 296.07l.5.477-.5-.477z"/> - <path fill="#185200" d="M301.94 296.07l.5.477-.5-.477z"/> - <path fill="#297b00" d="M302.44 296.07l.5.477-.5-.477z"/> - <path fill="#314231" d="M226.24 296.54l.5.477-.5-.477z"/> - <path fill="#295200" d="M232.76 296.54l-.5.954.5-.954z"/> - <path fill="#294200" d="M233.26 296.54l.5.477-.5-.477z"/> - <path fill="#295200" d="M235.26 296.54l-.5 1.43.5-1.43z"/> - <path fill="#103900" d="M237.27 296.54l.5.477-.5-.477z"/> - <path fill="#6b735a" d="M237.77 296.54l.5.477-.5-.477z"/> - <path fill="#315221" d="M238.27 296.54l.5.477-.5-.477z"/> - <path fill="#295200" d="M238.77 296.54l.5.477-.5-.477z"/> - <path fill="#397b00" d="M239.27 296.54v.477h2.005l-2.005-.477z"/> - <path fill="#294200" d="M241.28 296.54l.5.477-.5-.477z"/> - <path fill="#103900" d="M241.78 296.54l.5.477-.5-.477z"/> - <path fill="#292100" d="M242.28 296.54l.5.477-.5-.477z"/> - <path fill="#428c00" d="M240.28 298.93l10.528-1.43c-3.274-1.31-8.092-1.2-10.528 1.43z"/> - <path fill="#397b00" d="M246.29 296.54v.477h1.504l-1.504-.477z"/> - <path fill="#294200" d="M247.8 296.54v.477h1.504l-1.504-.477z"/> - <path fill="#422100" d="M249.3 296.54l.5.477-.5-.477z"/> - <path fill="#5a2908" d="M249.8 296.54l.5.477-.5-.477z"/> - <path fill="#5a1008" d="M250.3 296.54l.5.477-.5-.477z"/> - <path fill="#294200" d="M250.8 296.54l1.003.954-1.003-.954z"/> - <path fill="#214210" d="M257.32 296.54l.5.477-.5-.477z"/> - <path fill="#bdbdbd" d="M273.36 296.54l.5.477-.5-.477z"/> - <path fill="#185200" d="M276.37 297.5l1.504-.954-1.504.954z"/> - <path fill="#103900" d="M279.38 296.54l.5.477-.5-.477z"/> - <path fill="#297b00" d="M281.38 296.54l-1.003 1.43h1.504l-.5-1.43z"/> - <path fill="#296300" d="M284.23 296.7l.334.16-.334-.16z"/> - <path fill="#185200" d="M285.9 296.54l.5.477-.5-.477z"/> - <path fill="#296300" d="M286.73 296.7l.334.16-.334-.16z"/> - <path fill="#185200" d="M290.41 296.54l.5.477-.5-.477z"/> - <path fill="#297b00" d="M291.91 296.54l-.5.954.5-.954z"/> - <path fill="#319400" d="M292.41 296.54v.477l7.02 1.908v-.477l-7.02-1.908z"/> - <path fill="#296300" d="M293.92 296.54l.5.477-.5-.477z"/> - <path fill="#185200" d="M296.42 296.54l.5.477-.5-.477z"/> - <path fill="#103900" d="M296.93 296.54l.5.477-.5-.477z"/> - <path fill="#185200" d="M297.43 296.54l.5.477-.5-.477z"/> - <path fill="#297b00" d="M300.44 296.54l1.003.954-1.003-.954z"/> - <path fill="#314231" d="M300.94 296.54l.5.477-.5-.477z"/> - <path fill="#cecece" d="M301.44 296.54l1.003.954-1.003-.954z"/> - <path fill="#dedede" d="M301.94 296.54l.5.477-.5-.477z"/> - <path fill="#9c9494" d="M302.44 296.54l.5.477-.5-.477z"/> - <path fill="#6b735a" d="M302.94 296.54l.5.477-.5-.477z"/> - <path fill="#214210" d="M303.44 296.54l.5.477-.5-.477z"/> - <path fill="#297b00" d="M303.94 296.54l.5.477-.5-.477z"/> - <path fill="#63636b" d="M225.74 297.02l.5.477-.5-.477z"/> - <path fill="#397b00" d="M226.24 297.02l.5.477-.5-.477m2.005 0v.954h1.504v-.954h-1.505z"/> - <path fill="#295200" d="M229.75 297.02l.5.477-.5-.477z"/> - <path fill="#294200" d="M230.25 297.02l.5.477-.5-.477z"/> - <path fill="#295200" d="M230.75 297.02l.5.477-.5-.477z"/> - <path fill="#294200" d="M231.59 297.18l.334.16-.334-.16z"/> - <path fill="#8c8c8c" d="M237.27 297.02l.5.477-.5-.477z"/> - <path fill="#dedede" d="M238.77 297.02l.5.477-.5-.477z"/> - <path fill="#bdbdbd" d="M239.27 297.02v.477h2.005l-2.005-.477z"/> - <path fill="#52525a" d="M241.28 297.02l.5.477-.5-.477z"/> - <path fill="#397b00" d="M241.78 297.02l.5.477-.5-.477m9.024 0l.5.477-.5-.477z"/> - <path fill="#292100" d="M251.81 297.02v.477h1.504l-1.504-.477z"/> - <path fill="#295200" d="M253.31 297.02l.5.477-.5-.477z"/> - <path fill="#397b00" d="M254.81 297.02l.5.477-.5-.477z"/> - <path fill="#103900" d="M255.32 297.02l.5.477-.5-.477z"/> - <path fill="#313931" d="M257.32 297.02l.5.477-.5-.477z"/> - <path fill="#bd8c8c" d="M258.16 297.18l.334.16-.334-.16z"/> - <path fill="#845a52" d="M258.82 297.02l.5.477-.5-.477z"/> - <path fill="#9c4a42" d="M264.34 297.02l.5.477-.5-.477z"/> - <path fill="#ad524a" d="M264.84 297.02l.5.477-.5-.477z"/> - <path fill="#845a52" d="M270.36 297.02l.5.477-.5-.477z"/> - <path fill="#bd8c8c" d="M271.19 297.18l.334.16-.334-.16z"/> - <path fill="#293129" d="M273.36 297.02l.5.477-.5-.477z"/> - <path fill="#082108" d="M274.87 297.02l.5.477-.5-.477z"/> - <path fill="#103900" d="M281.38 297.02l.5.477-.5-.477z"/> - <path fill="#297b00" d="M283.39 297.02l-.5.954.5-.954z"/> - <path fill="#103900" d="M283.89 297.02l.5.477-.5-.477z"/> - <path fill="#297b00" d="M285.4 297.02l1.003.954-1.003-.954z"/> - <path fill="#184a00" d="M285.9 297.02l.5.477-.5-.477z"/> - <path fill="#319400" d="M285.9 298.45l12.533 1.908v1.908c1.42-4.19-10.154-6.955-12.533-3.816z"/> - <path fill="#103900" d="M291.91 297.02l.5.477-.5-.477z"/> - <path fill="#184a00" d="M292.41 297.02l.5.477-.5-.477z"/> - <path fill="#185200" d="M292.92 297.02l1.003.954-1.003-.954z"/> - <path fill="#297b00" d="M293.42 297.02l.5.477-.5-.477z"/> - <path fill="#296300" d="M297.43 297.02l.5.477-.5-.477z"/> - <path fill="#082108" d="M297.93 297.02l.5.477-.5-.477z"/> - <path fill="#103900" d="M298.43 297.02l.5.477-.5-.477z"/> - <path fill="#296300" d="M298.93 297.02l.5.477-.5-.477z"/> - <path fill="#214210" d="M301.44 297.02l.5.477-.5-.477z"/> - <path fill="#9c9494" d="M303.94 297.02l.5.477-.5-.477z"/> - <path fill="#425242" d="M304.45 297.02l.5.477-.5-.477z"/> - <path fill="#185200" d="M305.28 297.18l.334.16-.334-.16z"/> - <path fill="#9c9494" d="M305.95 297.02l.5.477-.5-.477m-80.715.477l-1.003 1.43 1.003-1.43z"/> - <path fill="#397b00" d="M225.74 297.5l.5.477-.5-.477z"/> - <path fill="#295200" d="M226.74 297.5l.5.477-.5-.477z"/> - <path fill="#294200" d="M227.57 297.66l.334.16-.334-.16m6.684-.16l.502.478-.502-.477z"/> - <path fill="#315221" d="M236.77 297.5l.5.477-.5-.477z"/> - <path fill="#efefef" d="M240.28 297.5l-.5.954.5-.954z"/> - <path fill="#293129" d="M240.78 297.5l.5.477-.5-.477z"/> - <path fill="#397b00" d="M249.63 297.66l.334.16-.334-.16z"/> - <path fill="#294200" d="M250.3 297.5l.5.477-.5-.477z"/> - <path fill="#423100" d="M250.8 297.5l.5.477-.5-.477z"/> - <path fill="#422100" d="M251.64 297.66l.334.16-.334-.16z"/> - <path fill="#5a2908" d="M252.31 297.5l.5.477-.5-.477z"/> - <path fill="#631808" d="M252.81 297.5v.477h1.504l-1.504-.477z"/> - <path fill="#ad1810" d="M254.31 297.5v.477h1.504l-1.504-.477z"/> - <path fill="#bd2110" d="M255.82 297.5l.5.477-.5-.477z"/> - <path fill="#de2110" d="M244.29 306.08v-.477l-3.008.477v-.477c13.567-4.093 33.56-4.093 47.125 0v.477l-2.507-.477c2.474 3.59 9.242 1.364 6.996-2.812-1.916-3.56-8.896-3.98-12.51-4.472-10.188-1.382-21.416-1.496-31.584.09-3.62.566-8.025.867-10.914 3.278-2.058 1.718-1.308 5.194 1.436 5.964 1.696.476 3.582-.805 4.966-1.57z"/> - <path fill="#ce2110" d="M273.36 297.5l.5.477-.5-.477z"/> - <path fill="#7b1008" d="M275.37 297.5l.5.477-.5-.477z"/> - <path fill="#631808" d="M276.2 297.66l.334.16-.334-.16z"/> - <path fill="#6b2908" d="M276.87 297.5l.5.477-.5-.477z"/> - <path fill="#184a00" d="M278.88 297.5l.5.477-.5-.477z"/> - <path fill="#185200" d="M279.38 297.5l.5.477-.5-.477z"/> - <path fill="#296300" d="M279.88 297.5l.5.477-.5-.477z"/> - <path fill="#103900" d="M280.88 297.5l.5.477-.5-.477m2.507 0l-.502.954.502-.954m2.005 0l.5.477-.5-.477z"/> - <path fill="#297b00" d="M292.92 297.5l.5.477-.5-.477z"/> - <path fill="#184a00" d="M294.25 297.66l.334.16-.334-.16z"/> - <path fill="#297b00" d="M294.92 297.5l-.5.954.5-.954m3.008 0l.5.477-.5-.477z"/> - <path fill="#214210" d="M298.43 297.5l.5.477-.5-.477z"/> - <path fill="#8c8c8c" d="M298.93 297.5l1.003.954-1.003-.954z"/> - <path fill="#7b7373" d="M299.43 297.5l.5.477-.5-.477z"/> - <path fill="#315221" d="M299.93 297.5l.5.477-.5-.477z"/> - <path fill="#185200" d="M300.44 297.5l.5.477-.5-.477z"/> - <path fill="#103910" d="M301.94 297.5l.5.477-.5-.477z"/> - <path fill="#efefef" d="M302.44 297.5l1.003.954-1.003-.954z"/> - <path fill="#cecece" d="M304.95 297.5l.5.477-.5-.477z"/> - <path fill="#63636b" d="M305.45 297.5l.5.477-.5-.477z"/> - <path fill="#102110" d="M305.95 297.5l.5.477-.5-.477z"/> - <path fill="#cecece" d="M306.45 297.5l.5.477-.5-.477z"/> - <path fill="#294200" d="M225.24 297.97l3.008 1.43-3.008-1.43z"/> - <path fill="#397b00" d="M233.42 298.29l.167.318-.167-.318z"/> - <path fill="#294200" d="M233.76 297.97l.5.477-.5-.477z"/> - <path fill="#214210" d="M236.26 297.97l.5.477-.5-.477z"/> - <path fill="#cecece" d="M236.77 297.97l.5.477-.5-.477z"/> - <path fill="#314231" d="M240.28 297.97l.5.477-.5-.477z"/> - <path fill="#397b00" d="M246.29 297.97l.5.477-.5-.477z"/> - <path fill="#295200" d="M246.79 297.97l.5.477-.5-.477z"/> - <path fill="#294200" d="M247.29 297.97l.5.477-.5-.477z"/> - <path fill="#422100" d="M247.8 297.97l.5.477-.5-.477z"/> - <path fill="#520808" d="M248.3 297.97l.5.477-.5-.477z"/> - <path fill="#631808" d="M248.8 297.97l.5.477-.5-.477z"/> - <path fill="#ad1810" d="M249.3 297.97l.5.477-.5-.477z"/> - <path fill="#bd2110" d="M249.8 297.97l.5.477-.5-.477m29.58 0l.5.477-.5-.477z"/> - <path fill="#ad1810" d="M279.88 297.97l.5.477-.5-.477z"/> - <path fill="#7b1008" d="M280.38 297.97l.5.477-.5-.477z"/> - <path fill="#631808" d="M280.88 297.97l.5.477-.5-.477z"/> - <path fill="#422100" d="M281.38 297.97l.5.477-.5-.477z"/> - <path fill="#4a4208" d="M281.89 297.97l.5.477-.5-.477z"/> - <path fill="#184a00" d="M282.39 297.97l.5.477-.5-.477z"/> - <path fill="#296300" d="M283.39 297.97l.5.477-.5-.477z"/> - <path fill="#297b00" d="M284.89 297.97l.5.477-.5-.477z"/> - <path fill="#296300" d="M285.4 297.97l.5.477-.5-.477m1.003 0l2.506.477-2.507-.477z"/> - <path fill="#297b00" d="M288.4 297.97l.5.477-.5-.477z"/> - <path fill="#185200" d="M294.92 297.97l.5.477-.5-.477z"/> - <path fill="#082108" d="M295.42 297.97l.5.477-.5-.477z"/> - <path fill="#103900" d="M295.92 297.97l.5.477-.5-.477z"/> - <path fill="#297b00" d="M296.42 297.97l.5.477-.5-.477z"/> - <path fill="#185200" d="M298.93 297.97l.5.477-.5-.477z"/> - <path fill="#bdbdbd" d="M300.44 297.97l.5.477-.5-.477z"/> - <path fill="#6b735a" d="M300.94 297.97l.5.477-.5-.477z"/> - <path fill="#184a00" d="M301.44 297.97l.5.477-.5-.477z"/> - <path fill="#297b00" d="M301.94 297.97l.5.477-.5-.477z"/> - <path fill="#314231" d="M302.44 297.97l.5.477-.5-.477z"/> - <path fill="#efefef" d="M305.95 297.97l.5.477-.5-.477z"/> - <path fill="#dedede" d="M306.45 297.97l.5.477-.5-.477z"/> - <path fill="#292100" d="M224.73 298.45l.5.477-.5-.477z"/> - <path fill="#397b00" d="M228.24 298.45v.954h1.003v-.954h-1.003m3.676.318l.168.318-.168-.318z"/> - <path fill="#294200" d="M232.59 298.61l.334.16-.334-.16z"/> - <path fill="#397b00" d="M235.26 298.45l.5.477-.5-.477z"/> - <path fill="#314231" d="M235.76 298.45l.5.477-.5-.477z"/> - <path fill="#dedede" d="M236.26 298.45l.5.477-.5-.477z"/> - <path fill="#425242" d="M239.77 298.45l.5.477-.5-.477z"/> - <path fill="#397b00" d="M242.11 298.61l.334.16-.334-.16z"/> - <path fill="#294200" d="M243.12 298.61l.334.16-.334-.16z"/> - <path fill="#292100" d="M243.78 298.45l.5.477-.5-.477z"/> - <path fill="#181000" d="M244.29 298.45l.5.477-.5-.477z"/> - <path fill="#310000" d="M244.79 298.45l.5.477-.5-.477z"/> - <path fill="#631808" d="M245.29 298.45l.5.477-.5-.477z"/> - <path fill="#941808" d="M245.79 298.45l.5.477-.5-.477z"/> - <path fill="#ad1810" d="M246.29 298.45l.5.477-.5-.477z"/> - <path fill="#ce2110" d="M246.79 298.45l.5.477-.5-.477z"/> - <path fill="#de3110" d="M257.82 298.45l.5.477-.5-.477z"/> - <path fill="#e75a10" d="M258.32 298.45l.5.477-.5-.477z"/> - <path fill="#de3110" d="M258.82 298.45l.5.477-.5-.477z"/> - <path fill="#e75a10" d="M260.83 298.45l.5.477-.5-.477z"/> - <path fill="#de3110" d="M261.33 298.45l.5.477-.5-.477z"/> - <path fill="#e75a10" d="M265.17 298.61l.334.16-.334-.16z"/> - <path fill="#de3110" d="M265.84 298.45l.5.477-.5-.477z"/> - <path fill="#e75a10" d="M268.68 298.61l.334.16-.334-.16z"/> - <path fill="#de3110" d="M269.35 298.45l.5.477-.5-.477z"/> - <path fill="#ad1810" d="M282.89 298.45l.5.477-.5-.477z"/> - <path fill="#941808" d="M283.39 298.45l.5.477-.5-.477z"/> - <path fill="#631808" d="M283.89 298.45l.5.477-.5-.477z"/> - <path fill="#5a2908" d="M284.39 298.45l.5.477-.5-.477z"/> - <path fill="#293100" d="M284.89 298.45l.5.477-.5-.477z"/> - <path fill="#185200" d="M285.4 298.45l.5.477-.5-.477z"/> - <path fill="#297b00" d="M285.9 298.45l.5.477-.5-.477z"/> - <path fill="#184a00" d="M288.9 298.45v.477h1.504l-1.504-.477z"/> - <path fill="#185200" d="M290.41 298.45l1.003.954-1.003-.954z"/> - <path fill="#297b00" d="M290.91 298.45l.5.477-.5-.477z"/> - <path fill="#185200" d="M295.92 298.45l.5.477-.5-.477z"/> - <path fill="#001000" d="M296.42 298.45l.5.477-.5-.477z"/> - <path fill="#293129" d="M296.93 298.45l.5.477-.5-.477z"/> - <path fill="#214210" d="M297.43 298.45l.5.477-.5-.477z"/> - <path fill="#296300" d="M297.93 298.45l.5.477-.5-.477m1.504 0l1.003.954-1.003-.954z"/> - <path fill="#63636b" d="M299.93 298.45l.5.477-.5-.477z"/> - <path fill="#dedede" d="M301.44 298.45l.5.477-.5-.477z"/> - <path fill="#63636b" d="M301.94 298.45l.5.477-.5-.477z"/> - <path fill="#214210" d="M302.44 298.45l.5.477-.5-.477z"/> - <path fill="#63636b" d="M302.94 298.45l.5.477-.5-.477z"/> - <path fill="#cecece" d="M224.23 298.93l.5.477-.5-.477z"/> - <path fill="#295200" d="M229.25 298.93l.5.477-.5-.477z"/> - <path fill="#294200" d="M229.75 298.93l.5.477-.5-.477z"/> - <path fill="#295200" d="M230.25 298.93l.5.477-.5-.477z"/> - <path fill="#294200" d="M231.08 299.09l.334.16-.334-.16z"/> - <path fill="#397b00" d="M234.26 298.93l.5.477-.5-.477z"/> - <path fill="#214210" d="M234.76 298.93l.5.477-.5-.477z"/> - <path fill="#8c8c8c" d="M235.26 298.93l.5.477-.5-.477z"/> - <path fill="#7b7373" d="M239.27 298.93l.5.477-.5-.477z"/> - <path fill="#397b00" d="M240.11 299.09l.334.16-.334-.16z"/> - <path fill="#294200" d="M239.27 299.88v.477l3.008-.954-3.008.477z"/> - <path fill="#293100" d="M242.28 298.93l.5.477-.5-.477z"/> - <path fill="#5a2908" d="M242.78 298.93l.5.477-.5-.477z"/> - <path fill="#7b1008" d="M243.28 298.93l.5.477-.5-.477z"/> - <path fill="#b51010" d="M243.78 298.93l.5.477-.5-.477z"/> - <path fill="#de3110" d="M250.3 298.93l.5.477-.5-.477zm2.01 0l1.003.954-1.003-.954z"/> - <path fill="#e75a10" d="M257.32 298.93l.5.477-.5-.477zm2.01 0l.5.477-.5-.477z"/> - <path fill="#f7b508" d="M261.33 298.93l.5.477-.5-.477z"/> - <path fill="#de3110" d="M266.85 298.93l1.003.954-1.003-.954z"/> - <path fill="#ef9408" d="M267.85 298.93l1.003.954-1.003-.954z"/> - <path fill="#e75a10" d="M269.85 298.93l1.003.954-1.003-.954z"/> - <path fill="#de3110" d="M270.36 298.93l.5.477-.5-.477z"/> - <path fill="#e75a10" d="M272.36 298.93l.5.477-.5-.477z"/> - <path fill="#ef9408" d="M273.36 298.93l-.5 3.34.5-3.34z"/> - <path fill="#e75a10" d="M273.86 298.93l.5.477-.5-.477z"/> - <path fill="#de3110" d="M274.87 298.93l.5.477-.5-.477z"/> - <path fill="#ef9408" d="M275.37 298.93l.5.477-.5-.477z"/> - <path fill="#ef7b08" d="M275.87 298.93l.5.477-.5-.477z"/> - <path fill="#e75a10" d="M276.87 298.93l.5.477-.5-.477z"/> - <path fill="#de3110" d="M278.88 298.93l.5.477-.5-.477z"/> - <path fill="#bd2110" d="M285.4 298.93l.5.477-.5-.477z"/> - <path fill="#941808" d="M285.9 298.93l.5.477-.5-.477z"/> - <path fill="#4a1000" d="M286.4 298.93l.5.477-.5-.477z"/> - <path fill="#293100" d="M286.9 298.93l.5.477-.5-.477z"/> - <path fill="#297b00" d="M287.9 298.93l.5.477-.5-.477z"/> - <path fill="#319400" d="M288.4 298.93v.477l5.013.954-5.013-1.43z"/> - <path fill="#297b00" d="M290.41 298.93l.5.477-.5-.477z"/> - <path fill="#184a00" d="M291.41 298.93l.5.477-.5-.477z"/> - <path fill="#103900" d="M291.91 298.93l.5.477-.5-.477z"/> - <path fill="#296300" d="M292.58 299.25l.167.318-.167-.318m4.345-.318l.5.477-.5-.478z"/> - <path fill="#425242" d="M297.43 298.93l.5.477-.5-.477z"/> - <path fill="#8c8c8c" d="M297.93 298.93l.5.477-.5-.477z"/> - <path fill="#63636b" d="M298.43 298.93l.5.477-.5-.477z"/> - <path fill="#184a00" d="M298.93 298.93l.5.477-.5-.477z"/> - <path fill="#297b00" d="M299.43 298.93l.5.477-.5-.477z"/> - <path fill="#8c8c8c" d="M300.44 298.93l.5.477-.5-.477z"/> - <path fill="#efefef" d="M302.44 298.93l.5.477-.5-.477z"/> - <path fill="#8c8c8c" d="M302.94 298.93l.5.477-.5-.477z"/> - <path fill="#cecece" d="M303.44 298.93l.5.477-.5-.477z"/> - <path fill="#bdbdbd" d="M227.24 299.4l.5.477-.5-.477z"/> - <path fill="#397b00" d="M227.74 299.4l.5.477-.5-.477m4.512 0l.5.477-.5-.477z"/> - <path fill="#295200" d="M232.76 299.4l.5.477-.5-.477z"/> - <path fill="#396b10" d="M233.26 299.4l.5.477-.5-.477z"/> - <path fill="#5a6b52" d="M233.76 299.4l.5.477-.5-.477z"/> - <path fill="#ada5a5" d="M234.26 299.4l.5.477-.5-.477m4.512 0l.5.477-.5-.477z"/> - <path fill="#295200" d="M239.27 299.4l.5.477-.5-.477z"/> - <path fill="#5a1008" d="M241.28 299.4l.5.477-.5-.477z"/> - <path fill="#941808" d="M241.78 299.4l.5.477-.5-.477z"/> - <path fill="#ef9408" d="M247.8 299.4l.5.477-.5-.477z"/> - <path fill="#f7b508" d="M252.31 299.4l.5.477-.5-.477m1.504 0l.5.477-.5-.477m3.844.16l.334.158-.334-.16z"/> - <path fill="#e75a10" d="M258.32 299.4l.5.477-.5-.477z"/> - <path fill="#f7b508" d="M259.16 299.56l.334.16-.334-.16z"/> - <path fill="#ef9408" d="M266.85 299.4l.5.477-.5-.477z"/> - <path fill="#f7b508" d="M269.69 299.56l.334.16-.334-.16z"/> - <path fill="#de3110" d="M271.86 299.4l.5.477-.5-.477z"/> - <path fill="#de2110" d="M275.03 299.72l.167.318-.167-.318z"/> - <path fill="#ef9408" d="M279.88 299.4l1.003.954-1.003-.954z"/> - <path fill="#ef7b08" d="M281.38 299.4l.5.477-.5-.477z"/> - <path fill="#de3110" d="M283.39 299.4l.5.477-.5-.477z"/> - <path fill="#b51010" d="M287.4 299.4l.5.477-.5-.477z"/> - <path fill="#631808" d="M287.9 299.4l.5.477-.5-.477z"/> - <path fill="#293100" d="M288.4 299.4l.5.477-.5-.477z"/> - <path fill="#296300" d="M288.9 299.4l.5.477-.5-.477z"/> - <path fill="#103900" d="M292.92 299.4l.5.477-.5-.477z"/> - <path fill="#001000" d="M293.42 299.4l.5.477-.5-.477z"/> - <path fill="#103900" d="M293.92 299.4l.5.477-.5-.477z"/> - <path fill="#185200" d="M294.42 299.4l.5.477-.5-.477z"/> - <path fill="#297b00" d="M294.92 299.4l.5.477-.5-.477m2.507 0l.5.477-.5-.477z"/> - <path fill="#184a00" d="M297.93 299.4l.5.477-.5-.477z"/> - <path fill="#7b7373" d="M298.43 299.4l.5.477-.5-.477z"/> - <path fill="#cecece" d="M298.93 299.4l.5.477-.5-.477z"/> - <path fill="#63636b" d="M299.43 299.4l.5.477-.5-.477z"/> - <path fill="#184a00" d="M300.27 299.56l.334.16-.334-.16z"/> - <path fill="#bdbdbd" d="M300.94 299.4l.5.477-.5-.477z"/> - <path fill="#9c9494" d="M227.24 299.88l.5.477-.5-.477z"/> - <path fill="#397b00" d="M230.25 299.88l.5.477-.5-.477z"/> - <path fill="#396b10" d="M230.75 299.88l.5.477-.5-.477z"/> - <path fill="#526b42" d="M231.25 299.88l.5.477-.5-.477z"/> - <path fill="#8c8c8c" d="M231.75 299.88l.5.477-.5-.477z"/> - <path fill="#ada5a5" d="M232.25 299.88l.5.477-.5-.477z"/> - <path fill="#dedede" d="M232.76 299.88l.5.477-.5-.477z"/> - <path fill="#efefef" d="M238.27 299.88l.5.477-.5-.477z"/> - <path fill="#213918" d="M238.77 299.88l.5.477-.5-.477z"/> - <path fill="#4a1000" d="M239.77 299.88l.5.477-.5-.477z"/> - <path fill="#941808" d="M240.28 299.88l.5.477-.5-.477z"/> - <path fill="#de3110" d="M243.62 300.04l.334.16-.334-.16z"/> - <path fill="#ef7b08" d="M247.29 299.88l.5.477-.5-.477zm2.68.32l.167.318-.167-.318z"/> - <path fill="#de2110" d="M251.3 299.88l.5.477-.5-.477z"/> - <path fill="#de3110" d="M251.81 299.88l.5.477-.5-.477z"/> - <path fill="#e75a10" d="M252.81 299.88l.5.477-.5-.477z"/> - <path fill="#de3110" d="M258.82 299.88l.5.477-.5-.477z"/> - <path fill="#ef7b08" d="M259.33 299.88l.5.477-.5-.477m1.003 0l.5.477-.5-.477zm1.497 0l.5.477-.5-.477z"/> - <path fill="#de2110" d="M265.84 299.88v1.43h.5l-.5-1.43z"/> - <path fill="#ef9408" d="M266.34 299.88l.5.477-.5-.477z"/> - <path fill="#de3110" d="M268.35 299.88l.5.477-.5-.477z"/> - <path fill="#de2110" d="M268.85 299.88l.5 1.43-.5-1.43z"/> - <path fill="#e75a10" d="M271.86 299.88l.5.477-.5-.477z"/> - <path fill="#ef9408" d="M272.36 299.88l.5.477-.5-.477z"/> - <path fill="#ef7b08" d="M279.38 299.88l.5.477-.5-.477z"/> - <path fill="#ffce08" d="M279.88 299.88l.5.477-.5-.477z"/> - <path fill="#f7b508" d="M280.88 299.88l.5.477-.5-.477z"/> - <path fill="#de3110" d="M281.89 299.88l.5.477-.5-.477z"/> - <path fill="#ef7b08" d="M282.89 299.88l.5.477-.5-.477z"/> - <path fill="#ffce08" d="M283.39 299.88l-.5 1.43.5-1.43z"/> - <path fill="#ef7b08" d="M284.06 300.2l.167.318-.167-.318z"/> - <path fill="#e75a10" d="M285.4 299.88l.5.477-.5-.477z"/> - <path fill="#de3110" d="M285.9 299.88l.5.477-.5-.477z"/> - <path fill="#941808" d="M288.9 299.88l.5.477-.5-.477z"/> - <path fill="#5a2908" d="M289.41 299.88l.5.477-.5-.477z"/> - <path fill="#184a00" d="M289.91 299.88l.5.477-.5-.477z"/> - <path fill="#297b00" d="M290.41 299.88l.5.477-.5-.477m3.175.318l.167.318-.167-.318z"/> - <path fill="#184a00" d="M293.92 299.88l.5.477-.5-.477z"/> - <path fill="#424242" d="M294.42 299.88l.5.477-.5-.477z"/> - <path fill="#8c8c8c" d="M294.92 299.88l.5.477-.5-.477z"/> - <path fill="#5a6b52" d="M295.42 299.88l.5.477-.5-.477z"/> - <path fill="#214210" d="M295.92 299.88l.5.477-.5-.477z"/> - <path fill="#296300" d="M296.42 299.88l.5.477-.5-.477z"/> - <path fill="#297b00" d="M298.43 299.88l1.003.954-1.003-.954z"/> - <path fill="#314231" d="M298.93 299.88l.5.477-.5-.477z"/> - <path fill="#dedede" d="M299.93 299.88l.5.477-.5-.477z"/> - <path fill="#63636b" d="M300.44 299.88l.5.477-.5-.477z"/> - <path fill="#101810" d="M300.94 299.88l.5.477-.5-.477z"/> - <path fill="#8c8c8c" d="M227.24 300.36l.5.477-.5-.477z"/> - <path fill="#294200" d="M229.25 300.36l.5.477-.5-.477z"/> - <path fill="#6b735a" d="M229.75 300.36l.5.477-.5-.477z"/> - <path fill="#bdbdbd" d="M230.25 300.36l.5.477-.5-.477z"/> - <path fill="#52525a" d="M238.27 300.36l.5.477-.5-.477z"/> - <path fill="#311000" d="M238.77 300.36l.5.477-.5-.477z"/> - <path fill="#b51010" d="M239.27 300.36l.5.477-.5-.477z"/> - <path fill="#ef7b08" d="M241.78 300.36l.5.477-.5-.477z"/> - <path fill="#ef9408" d="M242.28 300.36l.5.477-.5-.477z"/> - <path fill="#f7b508" d="M242.78 300.36l.5.477-.5-.477z"/> - <path fill="#ffce08" d="M243.28 300.36l.5.477-.5-.477z"/> - <path fill="#ef9408" d="M243.78 300.36l.5.477-.5-.477z"/> - <path fill="#de3110" d="M248.3 300.36l.5.477-.5-.477zm4.51 0l.5.477-.5-.477z"/> - <path fill="#ef9408" d="M261.16 300.52l.334.16-.334-.16z"/> - <path fill="#ef7b08" d="M266.34 300.36l.5.477-.5-.477m5.515 0l.5.477-.5-.477z"/> - <path fill="#de3110" d="M274.87 300.36l.5.477-.5-.477z"/> - <path fill="#ef9408" d="M275.87 300.36l.5.477-.5-.477z"/> - <path fill="#de2110" d="M280.38 300.36v1.908l2.005-.477-2.005-1.43z"/> - <path fill="#e75a10" d="M281.89 300.36l.5.477-.5-.477z"/> - <path fill="#f7b508" d="M282.89 300.36l.5.477-.5-.477m2.84.16l.335.158-.334-.16z"/> - <path fill="#de3110" d="M286.9 300.36l.5.477-.5-.477z"/> - <path fill="#e75a10" d="M287.4 300.36l.5.477-.5-.477z"/> - <path fill="#bd2110" d="M289.91 300.36l.5.477-.5-.477z"/> - <path fill="#5a1008" d="M290.41 300.36l.5.477-.5-.477z"/> - <path fill="#184a00" d="M291.24 300.52l.334.16-.334-.16z"/> - <path fill="#185200" d="M291.91 300.36l.5.477-.5-.477z"/> - <path fill="#296300" d="M292.75 300.52l.334.16-.334-.16z"/> - <path fill="#319400" d="M293.92 300.36l.5.477-.5-.477z"/> - <path fill="#297b00" d="M294.42 300.36l.5.477-.5-.477z"/> - <path fill="#185200" d="M294.92 300.36l.5.477-.5-.477z"/> - <path fill="#7b7373" d="M295.42 300.36l.5.477-.5-.477z"/> - <path fill="#efefef" d="M295.92 300.36l.5.477-.5-.477z"/> - <path fill="#ada5a5" d="M296.42 300.36l1.003 1.43-1.003-1.43z"/> - <path fill="#63636b" d="M296.93 300.36l.5.477-.5-.477z"/> - <path fill="#214210" d="M297.43 300.36l.5.477-.5-.477z"/> - <path fill="#297b00" d="M297.93 300.36l.5.477-.5-.477z"/> - <path fill="#ada5a5" d="M299.43 300.36l.5.477-.5-.477z"/> - <path fill="#397b00" d="M228.24 300.84l.5.477-.5-.477z"/> - <path fill="#425242" d="M228.74 300.84l.5.477-.5-.477z"/> - <path fill="#dedede" d="M229.25 300.84l.5.477-.5-.477m8.02 0l.503.477-.502-.477z"/> - <path fill="#524242" d="M237.77 300.84l.5.477-.5-.477z"/> - <path fill="#941808" d="M238.27 300.84l.5.477-.5-.477z"/> - <path fill="#de3110" d="M240.11 300.99l.334.16-.334-.16z"/> - <path fill="#f7b508" d="M241.78 300.84l.5.477-.5-.477z"/> - <path fill="#ef7b08" d="M242.78 300.84l.5.477-.5-.477z"/> - <path fill="#de2110" d="M245.79 300.84l.5.477-.5-.477z"/> - <path fill="#ef7b08" d="M246.29 300.84l.5.477-.5-.477z"/> - <path fill="#e75a10" d="M248.46 301.15l.167.318-.167-.318z"/> - <path fill="#ef7b08" d="M259.33 300.84l.5.477-.5-.477z"/> - <path fill="#de3110" d="M259.83 300.84l.5.477-.5-.477z"/> - <path fill="#ffce08" d="M260.5 301.15l.167.318-.167-.318m1.504 0l.167.318-.166-.318z"/> - <path fill="#ef9408" d="M266.68 300.99l.334.16-.334-.16z"/> - <path fill="#de3110" d="M268.35 300.84l.5.477-.5-.477z"/> - <path fill="#ef9408" d="M271.36 300.84l.5.477-.5-.477zm6.01 0l-.5 1.908.5-1.908z"/> - <path fill="#de3110" d="M278.88 300.84l.5.477-.5-.477z"/> - <path fill="#ffce08" d="M279.55 301.15l.167.318-.167-.318z"/> - <path fill="#ef7b08" d="M280.05 301.15l.167.318-.167-.318z"/> - <path fill="#e75a10" d="M282.39 300.84l.5.477-.5-.477z"/> - <path fill="#f7b508" d="M283.39 300.84l.5.477-.5-.477z"/> - <path fill="#ef9408" d="M284.06 301.15l.167.318-.167-.318z"/> - <path fill="#de3110" d="M284.89 300.84l.5.477-.5-.477z"/> - <path fill="#ef7b08" d="M286.9 300.84l.5.477-.5-.477z"/> - <path fill="#ffce08" d="M287.4 300.84l.5.477-.5-.477z"/> - <path fill="#ad1810" d="M290.91 300.84l.5.477-.5-.477z"/> - <path fill="#210800" d="M291.41 300.84l.5.477-.5-.477z"/> - <path fill="#292921" d="M291.91 300.84l.5.477-.5-.477z"/> - <path fill="#313931" d="M292.41 300.84l.5.477-.5-.477z"/> - <path fill="#8c8c8c" d="M292.92 300.84l.5.477-.5-.477z"/> - <path fill="#9c9494" d="M293.42 300.84l1.003.954-1.003-.954z"/> - <path fill="#8c8c8c" d="M293.92 300.84l.5.477-.5-.477z"/> - <path fill="#5a6b52" d="M294.42 300.84l.5.477-.5-.477z"/> - <path fill="#214210" d="M294.92 300.84l.5.477-.5-.477z"/> - <path fill="#184a00" d="M295.42 300.84l.5.477-.5-.477z"/> - <path fill="#293129" d="M295.92 300.84l.5.477-.5-.477z"/> - <path fill="#efefef" d="M297.43 300.84l.5.477-.5-.477z"/> - <path fill="#294221" d="M297.93 300.84l.5.477-.5-.477z"/> - <path fill="#296300" d="M298.93 300.84l.5.477-.5-.477z"/> - <path fill="#bdbdbd" d="M299.43 300.84l.5.477-.5-.477z"/> - <path fill="#295200" d="M227.74 301.31l.5.477-.5-.477z"/> - <path fill="#63636b" d="M228.24 301.31l.5.477-.5-.477z"/> - <path fill="#9c9494" d="M236.77 301.31l.5.477-.5-.477z"/> - <path fill="#631808" d="M237.27 301.31l.5.477-.5-.477z"/> - <path fill="#ce2110" d="M237.77 301.31l.5.477-.5-.477z"/> - <path fill="#e75a10" d="M238.77 301.31l.5.477-.5-.477z"/> - <path fill="#ef9408" d="M239.27 301.31l.5.477-.5-.477zm1.51 0l.5.477-.5-.477z"/> - <path fill="#ef7b08" d="M241.78 301.31l.5.477-.5-.477z"/> - <path fill="#de3110" d="M242.78 301.31l.5.477-.5-.477z"/> - <path fill="#ef7b08" d="M244.79 301.31l.5.477-.5-.477z"/> - <path fill="#de3110" d="M247.29 301.31l.5.477-.5-.477z"/> - <path fill="#e75a10" d="M251.3 301.31l.5.477-.5-.477z"/> - <path fill="#de2110" d="M251.81 301.31l.5.477-.5-.477z"/> - <path fill="#f7b508" d="M257.65 301.47l.334.16-.334-.16m1.504 0l.334.16-.334-.16z"/> - <path fill="#e75a10" d="M259.83 301.31l-.5.954.5-.954z"/> - <path fill="#ef9408" d="M261.16 301.47l.334.16-.334-.16z"/> - <path fill="#e75a10" d="M262.33 301.31l.5.477-.5-.477z"/> - <path fill="#ef7b08" d="M265.84 301.31l.5.477-.5-.477z"/> - <path fill="#e75a10" d="M266.85 301.31l.5.477-.5-.477z"/> - <path fill="#de3110" d="M267.35 301.31l.5.477-.5-.477z"/> - <path fill="#f7b508" d="M269.69 301.47l.334.16-.334-.16z"/> - <path fill="#ef7b08" d="M271.36 301.31l.5.477-.5-.477z"/> - <path fill="#f7b508" d="M272.36 301.31l.5.477-.5-.477z"/> - <path fill="#ef9408" d="M276.37 301.31l.5.477-.5-.477zm6.52 0l.5.477-.5-.477z"/> - <path fill="#ef7b08" d="M283.39 301.31l.5.477-.5-.477z"/> - <path fill="#e75a10" d="M284.89 301.31l.5.477-.5-.477m1.504 0l.5.477-.5-.477z"/> - <path fill="#f7b508" d="M286.9 301.31l.5.477-.5-.477z"/> - <path fill="#ef9408" d="M287.4 301.31l.5.477-.5-.477z"/> - <path fill="#e75a10" d="M288.9 301.31l.5.477-.5-.477z"/> - <path fill="#ffce08" d="M289.57 301.63l.167.318-.167-.318z"/> - <path fill="#7b1008" d="M291.91 301.31l.5.477-.5-.477z"/> - <path fill="#185200" d="M292.41 301.31l1.003.954v-.954h-1.003z"/> - <path fill="#314231" d="M293.42 301.31l.5.477-.5-.477z"/> - <path fill="#dedede" d="M295.42 301.31l.5.477-.5-.477z"/> - <path fill="#9c9494" d="M295.92 301.31l.5.477-.5-.477z"/> - <path fill="#63636b" d="M296.42 301.31l.5.477-.5-.477z"/> - <path fill="#6b735a" d="M297.93 301.31l.5.477-.5-.477z"/> - <path fill="#184a00" d="M298.93 301.31l.5.477-.5-.477z"/> - <path fill="#52525a" d="M227.74 301.79l.5.477-.5-.477z"/> - <path fill="#cecece" d="M236.26 301.79l.5.477-.5-.477z"/> - <path fill="#631818" d="M236.77 301.79l.5.477-.5-.477z"/> - <path fill="#de3110" d="M238.27 301.79l.5.477-.5-.477z"/> - <path fill="#ffce08" d="M238.77 301.79l.5.477-.5-.477z"/> - <path fill="#ef7b08" d="M239.77 301.79l.5.477-.5-.477z"/> - <path fill="#ef9408" d="M240.28 301.79l.5.477-.5-.477z"/> - <path fill="#e75a10" d="M241.78 301.79l.5.477-.5-.477m3.008 0l.5.477-.5-.477z"/> - <path fill="#f7b508" d="M245.79 301.79l.5.477-.5-.477z"/> - <path fill="#e75a10" d="M246.29 301.79l.5.477-.5-.477z"/> - <path fill="#f7b508" d="M247.8 301.79l.5.477-.5-.477z"/> - <path fill="#ef9408" d="M248.3 301.79l-.5.954.5-.954zm7.02 0l.5.477-.5-.477z"/> - <path fill="#e75a10" d="M257.32 301.79l.5.477-.5-.477z"/> - <path fill="#ef9408" d="M259.83 301.79l.5.477-.5-.477z"/> - <path fill="#f7b508" d="M260.33 301.79l.5.477-.5-.477m1.504 0l.5.477-.5-.477z"/> - <path fill="#ef9408" d="M262.33 301.79l.5.477-.5-.477z"/> - <path fill="#f7b508" d="M266.34 301.79l.5.477-.5-.477z"/> - <path fill="#ef9408" d="M267.85 301.79l.5.477-.5-.477z"/> - <path fill="#e75a10" d="M271.36 301.79l.5.477-.5-.477z"/> - <path fill="#ef7b08" d="M272.36 301.79l.5.477-.5-.477z"/> - <path fill="#f7b508" d="M279.38 301.79l.5.477-.5-.477z"/> - <path fill="#ef9408" d="M279.88 301.79l.5.477-.5-.477z"/> - <path fill="#ef7b08" d="M280.88 301.79l1.003.954-1.003-.954z"/> - <path fill="#e75a10" d="M281.89 301.79l.5.477-.5-.477z"/> - <path fill="#ffce08" d="M282.39 301.79l.5.477-.5-.477z"/> - <path fill="#f7b508" d="M285.4 301.79l.5.477-.5-.477z"/> - <path fill="#ef7b08" d="M286.4 301.79l-.5.954.5-.954zm1 0l.5.477-.5-.477z"/> - <path fill="#de3110" d="M288.4 301.79l.5.477-.5-.477z"/> - <path fill="#941808" d="M292.41 301.79l.5.477-.5-.477z"/> - <path fill="#319400" d="M293.42 301.79l.5.477-.5-.477z"/> - <path fill="#296300" d="M294.08 302.11l.167.318-.167-.318z"/> - <path fill="#314231" d="M294.42 301.79l.5.477-.5-.477z"/> - <path fill="#cecece" d="M294.92 301.79l.5.477-.5-.477z"/> - <path fill="#8c8c8c" d="M297.93 301.79l.5.477-.5-.477z"/> - <path fill="#4a6342" d="M298.93 301.79l.5.477-.5-.477z"/> - <path fill="#dedede" d="M235.76 302.27l.5.477-.5-.477z"/> - <path fill="#631818" d="M236.26 302.27l.5.477-.5-.477z"/> - <path fill="#de2110" d="M239.77 302.27l.5.477-.5-.477z"/> - <path fill="#e75a10" d="M240.28 302.27l.5.477-.5-.477z"/> - <path fill="#de3110" d="M241.28 302.27l.5.477-.5-.477z"/> - <path fill="#de2110" d="M241.95 302.59l.167.318-.167-.318z"/> - <path fill="#ef9408" d="M242.95 302.59l.167.318-.167-.318z"/> - <path fill="#e75a10" d="M243.28 302.27l1.003.954-1.003-.954z"/> - <path fill="#de3110" d="M244.79 302.27l.5.477-.5-.477z"/> - <path fill="#e75a10" d="M245.79 302.27l.5.477-.5-.477zm4.01 0l.5.477-.5-.477z"/> - <path fill="#de3110" d="M253.31 302.27l.5.477-.5-.477zm4.51 0l.5.477-.5-.477z"/> - <path fill="#e75a10" d="M258.32 302.27l.5.477-.5-.477z"/> - <path fill="#de3110" d="M258.82 302.27l.5.477-.5-.477m1.337.16l.334.158-.333-.16m2.005 0l.334.16-.334-.16zm6.187-.158l.5.477-.5-.477z"/> - <path fill="#e75a10" d="M268.85 302.27l.5.477-.5-.477z"/> - <path fill="#de3110" d="M269.35 302.27l.5.477-.5-.477z"/> - <path fill="#e75a10" d="M270.86 302.27l.5.477-.5-.477m1.003 0l.5.477-.5-.477z"/> - <path fill="#de3110" d="M272.36 302.27v.477h1.504l-1.504-.477m2.507 0l.5.477-.5-.477z"/> - <path fill="#ef9408" d="M275.37 302.27l.5.477-.5-.477z"/> - <path fill="#ef7b08" d="M279.38 302.27l.5.477-.5-.477z"/> - <path fill="#ef9408" d="M282.89 302.27l.5.477-.5-.477z"/> - <path fill="#ffce08" d="M284.06 302.59l.167.318-.167-.318z"/> - <path fill="#f7b508" d="M284.89 302.27l.5.477-.5-.477m1.504 0l.5.477-.5-.477z"/> - <path fill="#e75a10" d="M287.4 302.27l.5.477-.5-.477z"/> - <path fill="#5a1008" d="M292.92 302.27l.5.477-.5-.477z"/> - <path fill="#103900" d="M293.42 302.27l.5.477-.5-.477z"/> - <path fill="#297b00" d="M294.42 302.27l.5.477-.5-.477z"/> - <path fill="#185200" d="M294.92 302.27l.5.477-.5-.477z"/> - <path fill="#7b7373" d="M295.42 302.27l.5.477-.5-.477z"/> - <path fill="#bdbdbd" d="M298.1 302.59l.167.318-.167-.318z"/> - <path fill="#296300" d="M298.43 302.27l.5.477-.5-.477z"/> - <path fill="#8c8c8c" d="M298.93 302.27l.5.477-.5-.477m-63.168.477l.5.477-.5-.477z"/> - <path fill="#ce2110" d="M236.26 302.74l.5.477-.5-.477z"/> - <path fill="#e75a10" d="M238.77 302.74l.5.477-.5-.477z"/> - <path fill="#ffce08" d="M239.27 302.74l.5.477-.5-.477z"/> - <path fill="#ef7b08" d="M241.28 302.74l.5.477-.5-.477z"/> - <path fill="#f7b508" d="M242.28 302.74l.5.477-.5-.477z"/> - <path fill="#de2110" d="M243.28 302.74l.5.477-.5-.477z"/> - <path fill="#ef7b08" d="M244.29 302.74l.5.477-.5-.477z"/> - <path fill="#f7b508" d="M245.29 302.74l.5.477-.5-.477z"/> - <path fill="#ef7b08" d="M245.79 302.74l.5.477-.5-.477z"/> - <path fill="#e75a10" d="M248.3 302.74l.5.477-.5-.477z"/> - <path fill="#ef7b08" d="M248.8 302.74l.5.477-.5-.477z"/> - <path fill="#e75a10" d="M249.3 302.74l.5.477-.5-.477m30.58 0l.502.477-.5-.477z"/> - <path fill="#ef9408" d="M280.38 302.74l.5.477-.5-.477z"/> - <path fill="#e75a10" d="M280.88 302.74l.5.477-.5-.477z"/> - <path fill="#de3110" d="M281.38 302.74l.5.477-.5-.477z"/> - <path fill="#e75a10" d="M282.39 302.74l.5.477-.5-.477m1.003 0l.5.477-.5-.477z"/> - <path fill="#de3110" d="M284.39 302.74l.5.477-.5-.477z"/> - <path fill="#ffce08" d="M285.06 303.06l.167.318-.167-.318z"/> - <path fill="#e75a10" d="M285.73 302.9l.334.16-.334-.16z"/> - <path fill="#de2110" d="M287.4 302.74l.5.477-.5-.477z"/> - <path fill="#ef7b08" d="M287.9 302.74l.5.477-.5-.477z"/> - <path fill="#e75a10" d="M288.9 302.74l.5.477-.5-.477zm1.17.32l.167.318-.167-.318z"/> - <path fill="#736b6b" d="M293.42 302.74l.5.477-.5-.477z"/> - <path fill="#cecece" d="M293.92 302.74l.5.477-.5-.477z"/> - <path fill="#8c8c8c" d="M294.42 302.74l.5.477-.5-.477z"/> - <path fill="#294221" d="M294.92 302.74l.5.477-.5-.477z"/> - <path fill="#082108" d="M295.42 302.74l.5.477-.5-.477z"/> - <path fill="#8c8c8c" d="M295.92 302.74l.5.477-.5-.477z"/> - <path fill="#103900" d="M298.43 302.74l.5.477-.5-.477z"/> - <path fill="#dedede" d="M298.93 302.74l.5.477-.5-.477z"/> - <path fill="#6b4242" d="M235.76 303.22l.5.477-.5-.477z"/> - <path fill="#ef7b08" d="M240.28 303.22l.5.477-.5-.477z"/> - <path fill="#ef9408" d="M240.78 303.22l.5.477-.5-.477z"/> - <path fill="#ef7b08" d="M242.28 303.22l.5.477-.5-.477z"/> - <path fill="#f7b508" d="M244.29 303.22l.5.477-.5-.477z"/> - <path fill="#e75a10" d="M245.29 303.22l.5.477-.5-.477z"/> - <path fill="#de3110" d="M245.79 303.22l.5.477-.5-.477z"/> - <path fill="#ad1810" d="M256.82 303.22v.477h3.008l-3.008-.477z"/> - <path fill="#7b1008" d="M259.83 303.22l.5.477-.5-.477z"/> - <path fill="#631808" d="M260.33 303.22v.477h9.525l-9.525-.477z"/> - <path fill="#ad1810" d="M269.85 303.22v.477h3.008l-3.008-.477z"/> - <path fill="#ce2110" d="M272.86 303.22l.5.477-.5-.477z"/> - <path fill="#de3110" d="M283.39 303.22l.5.477-.5-.477z"/> - <path fill="#ef7b08" d="M283.89 303.22l.5.477-.5-.477z"/> - <path fill="#e75a10" d="M284.39 303.22l.5.477-.5-.477z"/> - <path fill="#de3110" d="M285.73 303.38l.334.16-.334-.16z"/> - <path fill="#f7b508" d="M286.9 303.22l1.003.954-1.003-.954z"/> - <path fill="#e75a10" d="M287.4 303.22l.5.477-.5-.477z"/> - <path fill="#ef9408" d="M288.9 303.22l.5.477-.5-.477z"/> - <path fill="#631818" d="M293.42 303.22l.5.477-.5-.477z"/> - <path fill="#cecece" d="M295.59 303.54l.167.318-.167-.318z"/> - <path fill="#7b7373" d="M295.92 303.22l.5.477-.5-.477z"/> - <path fill="#dedede" d="M296.42 303.22l.5.477-.5-.477m1.504 0l.5.477-.5-.477z"/> - <path fill="#52525a" d="M298.43 303.22l.5.477-.5-.477z"/> - <path fill="#dedede" d="M229.75 303.7l.5.477-.5-.477z"/> - <path fill="#8c8c8c" d="M230.25 303.7l.5.477-.5-.477z"/> - <path fill="#6b4242" d="M230.75 303.7l.5.477-.5-.477z"/> - <path fill="#8c8c8c" d="M232.76 303.7l.5.477-.5-.477z"/> - <path fill="#9c9494" d="M233.26 303.7l.5.477-.5-.477z"/> - <path fill="#bdbdbd" d="M233.76 303.7l.5.477-.5-.477z"/> - <path fill="#6b2908" d="M235.76 303.7l.5.477-.5-.477z"/> - <path fill="#ef9408" d="M239.27 303.7l.5.477-.5-.477z"/> - <path fill="#ffce08" d="M239.94 304.02l.167.318-.167-.318z"/> - <path fill="#f7b508" d="M241.28 303.7l.5.477-.5-.477z"/> - <path fill="#e75a10" d="M243.28 303.7l.5.477-.5-.477z"/> - <path fill="#de3110" d="M243.78 303.7l.5.477-.5-.477z"/> - <path fill="#ad1810" d="M250.64 303.86l.334.16-.334-.16z"/> - <path fill="#941808" d="M251.3 303.7l.5.477-.5-.477z"/> - <path fill="#631808" d="M251.81 303.7l.5.477-.5-.477z"/> - <path fill="#733129" d="M252.31 303.7l.5.477-.5-.477z"/> - <path fill="#734a42" d="M253.14 303.86l.334.16-.334-.16z"/> - <path fill="#845a52" d="M253.81 303.7l.5.477-.5-.477z"/> - <path fill="#8c8c8c" d="M254.31 303.7v.477h2.005l-2.005-.477z"/> - <path fill="#ada5a5" d="M256.32 303.7l.5.477-.5-.477z"/> - <path fill="#bdbdbd" d="M256.82 303.7v.477h1.504l-1.504-.477z"/> - <path fill="#cecece" d="M258.32 303.7l.5.477-.5-.477z"/> - <path fill="#63636b" d="M258.82 303.7l.5.477-.5-.477z"/> - <path fill="#295200" d="M259.33 303.7l1.504 1.43-1.504-1.43z"/> - <path fill="#428c00" d="M259.83 303.7c1.32 1.583 2.382 2.282 4.512 1.908l-4.512-1.908z"/> - <path fill="#397b00" d="M262.84 303.7l1.003 2.385h1.002l-2.005-2.385z"/> - <path fill="#63636b" d="M263.34 303.7l1.504 1.43-1.504-1.43z"/> - <path fill="#cecece" d="M265.34 303.7l-.5.954.5-.954z"/> - <path fill="#214210" d="M265.84 303.7l.5.477-.5-.477z"/> - <path fill="#319400" d="M266.34 306.08l4.01-1.908c-2.042-.814-4.41-.584-4.01 1.908z"/> - <path fill="#185200" d="M270.36 303.7l.5.477-.5-.477z"/> - <path fill="#8c8c8c" d="M270.86 303.7l.5.477-.5-.477z"/> - <path fill="#946b63" d="M275.37 303.7l.5.477-.5-.477z"/> - <path fill="#734a42" d="M276.2 303.86l.334.16-.334-.16z"/> - <path fill="#8c3939" d="M276.87 303.7l.5.477-.5-.477z"/> - <path fill="#631808" d="M277.37 303.7l.5.477-.5-.477z"/> - <path fill="#7b1008" d="M277.88 303.7l.5.477-.5-.477z"/> - <path fill="#ad1810" d="M278.71 303.86l.334.16-.334-.16z"/> - <path fill="#ce2110" d="M279.38 303.7l.5.477-.5-.477z"/> - <path fill="#ef9408" d="M286.73 303.86l.334.16-.334-.16m1.17-.16l.5.478-.5-.477z"/> - <path fill="#ef7b08" d="M288.4 303.7l.5.477-.5-.477z"/> - <path fill="#f7b508" d="M288.9 303.7l.5.477-.5-.477z"/> - <path fill="#de3110" d="M289.91 303.7l.5.477-.5-.477z"/> - <path fill="#631808" d="M293.42 303.7l.5.477-.5-.477z"/> - <path fill="#9c9494" d="M295.92 303.7l.5.477-.5-.477z"/> - <path fill="#8c8c8c" d="M296.42 303.7l.5.477-.5-.477zm2.51 0l.5.477-.5-.477z"/> - <path fill="#cecece" d="M299.43 303.7l.5.477-.5-.477z"/> - <path fill="#bdbdbd" d="M229.25 304.18l.5.477-.5-.477z"/> - <path fill="#631818" d="M229.75 304.18l.5.477-.5-.477z"/> - <path fill="#bd2110" d="M230.25 304.18l.5.477-.5-.477z"/> - <path fill="#de2110" d="M229.75 308.47c5.233-3 11.967 5.274 16.043-1.43l-.5-.478c-1.667.584-3.682 1.96-5.514 1.705-1.227-.172-13.884-8.372-10.03.203z"/> - <path fill="#bd2110" d="M233.26 304.18l.5.477-.5-.477z"/> - <path fill="#ad1810" d="M233.76 304.18l.5.477-.5-.477z"/> - <path fill="#631818" d="M234.26 304.18l.5.477-.5-.477z"/> - <path fill="#63636b" d="M234.76 304.18l.5.477-.5-.477z"/> - <path fill="#ada5a5" d="M235.26 304.18l.5.477-.5-.477z"/> - <path fill="#734a42" d="M235.76 304.18l.5.477-.5-.477z"/> - <path fill="#de3110" d="M239.27 304.18l.5.477-.5-.477z"/> - <path fill="#ef7b08" d="M240.28 304.18l.5.477-.5-.477z"/> - <path fill="#ce2110" d="M246.29 304.18l.5.477-.5-.477z"/> - <path fill="#ad1810" d="M246.79 304.18l.5.477-.5-.477z"/> - <path fill="#631808" d="M247.29 304.18l.5.477-.5-.477z"/> - <path fill="#733129" d="M247.8 304.18l.5.477-.5-.477z"/> - <path fill="#734a42" d="M248.3 304.18l.5.477-.5-.477z"/> - <path fill="#8c6363" d="M248.8 304.18l.5.477-.5-.477z"/> - <path fill="#8c8c8c" d="M249.63 304.33l.334.16-.334-.16z"/> - <path fill="#bdbdbd" d="M250.64 304.33l.334.16-.334-.16z"/> - <path fill="#efefef" d="M251.3 304.18l.5.477-.5-.477z"/> - <path fill="#9c9494" d="M259.33 304.18l1.504 1.43-1.504-1.43z"/> - <path fill="#103910" d="M265.34 304.18l.5.477-.5-.477z"/> - <path fill="#214210" d="M269.85 304.18l.5.477-.5-.477z"/> - <path fill="#ada5a5" d="M270.36 304.18l.5.477-.5-.477z"/> - <path fill="#bdbdbd" d="M278.71 304.33l.334.16-.334-.16z"/> - <path fill="#8c8c8c" d="M279.71 304.33l.334.16-.334-.16z"/> - <path fill="#8c7373" d="M280.38 304.18l.5.477-.5-.477z"/> - <path fill="#734a42" d="M280.88 304.18l.5.477-.5-.477z"/> - <path fill="#733939" d="M281.38 304.18l.5.477-.5-.477z"/> - <path fill="#631808" d="M281.89 304.18l.5.477-.5-.477z"/> - <path fill="#ad1810" d="M282.39 304.18l.5.477-.5-.477z"/> - <path fill="#bd2110" d="M282.89 304.18l.5.477-.5-.477z"/> - <path fill="#e75a10" d="M287.4 304.18l.5.477-.5-.477m1.67.318l.168.318-.167-.318z"/> - <path fill="#6b2908" d="M293.42 304.18l.5.477-.5-.477z"/> - <path fill="#cecece" d="M293.92 304.18l.5.477-.5-.477z"/> - <path fill="#7b7373" d="M294.42 304.18l.5.477-.5-.477z"/> - <path fill="#733129" d="M294.92 304.18l.5.477-.5-.477z"/> - <path fill="#941808" d="M295.42 304.18l.5.477-.5-.477z"/> - <path fill="#bd2110" d="M295.92 304.18l.5.477-.5-.477z"/> - <path fill="#de2110" d="M284.89 306.56c-.694 6.672 11.805.054 15.04 1.908 1.724-3.644-2.3-5.268-5.422-3.37-1.496.91-2.242 2.783-4.123 3.113-1.855.326-3.85-1-5.495-1.65z"/> - <path fill="#ce2110" d="M298.93 304.18l.5.477-.5-.477z"/> - <path fill="#7b1008" d="M299.43 304.18l.5.477-.5-.477z"/> - <path fill="#9c9494" d="M299.93 304.18l.5.477-.5-.477m-71.19.477l.502.477-.5-.477z"/> - <path fill="#631808" d="M229.25 304.65l.5.477-.5-.477z"/> - <path fill="#941808" d="M235.26 304.65l.5.477-.5-.477z"/> - <path fill="#310000" d="M235.76 304.65l.5.477-.5-.477z"/> - <path fill="#ce2110" d="M236.26 304.65l.5.477-.5-.477z"/> - <path fill="#ef9408" d="M239.77 304.65l.5.477-.5-.477z"/> - <path fill="#e75a10" d="M240.28 304.65l.5.477-.5-.477z"/> - <path fill="#ce2110" d="M243.28 304.65l.5.477-.5-.477z"/> - <path fill="#ad1810" d="M243.78 304.65l.5.477-.5-.477z"/> - <path fill="#7b1008" d="M244.29 304.65l.5.477-.5-.477z"/> - <path fill="#6b2908" d="M244.79 304.65l.5.477-.5-.477z"/> - <path fill="#734a42" d="M245.29 304.65l.5.477-.5-.477z"/> - <path fill="#7b7373" d="M245.79 304.65l.5.477-.5-.477z"/> - <path fill="#9c9494" d="M246.29 304.65l.5.477-.5-.477z"/> - <path fill="#bdbdbd" d="M246.79 304.65l.5.477-.5-.477z"/> - <path fill="#293129" d="M264.84 304.65l.5.477-.5-.477z"/> - <path fill="#297b00" d="M265.34 304.65l1.003 1.43-1.003-1.43m3.51 0l-.502.954.5-.954z"/> - <path fill="#103910" d="M269.35 304.65l.5.477-.5-.477z"/> - <path fill="#cecece" d="M269.85 304.65l-.5.954.5-.954z"/> - <path fill="#bdbdbd" d="M282.39 304.65l.5.477-.5-.477z"/> - <path fill="#9c9494" d="M282.89 304.65l.5.477-.5-.477z"/> - <path fill="#8c8c8c" d="M283.39 304.65l.5.477-.5-.477z"/> - <path fill="#734a42" d="M283.89 304.65l.5.477-.5-.477z"/> - <path fill="#733129" d="M284.39 304.65l.5.477-.5-.477z"/> - <path fill="#7b1008" d="M284.89 304.65l.5.477-.5-.477z"/> - <path fill="#ad1810" d="M285.4 304.65l.5.477-.5-.477z"/> - <path fill="#ce2110" d="M285.9 304.65l.5.477-.5-.477z"/> - <path fill="#f7b508" d="M289.41 304.65l.5.477-.5-.477z"/> - <path fill="#420000" d="M293.42 304.65l.5.477-.5-.477z"/> - <path fill="#941808" d="M293.92 304.65l.5.477-.5-.477m6.016 0l.5.477-.5-.477z"/> - <path fill="#8c8c8c" d="M300.44 304.65l.5.477-.5-.477z"/> - <path fill="#efefef" d="M228.24 305.13l.5.477-.5-.477z"/> - <path fill="#842118" d="M228.74 305.13l.5.477-.5-.477z"/> - <path fill="#bd2110" d="M235.76 305.13l.5.477-.5-.477z"/> - <path fill="#631808" d="M236.26 305.13l.5.477-.5-.477z"/> - <path fill="#ad1810" d="M241.78 305.13l.5.477-.5-.477z"/> - <path fill="#520808" d="M243.78 305.13l.5.477-.5-.477z"/> - <path fill="#bdbdbd" d="M244.29 305.13l.5.477-.5-.477z"/> - <path fill="#214210" d="M260.83 305.13l.5.477-.5-.477z"/> - <path fill="#103900" d="M264.84 305.13l.5.477-.5-.477z"/> - <path fill="#293129" d="M268.85 305.13l.5.477-.5-.477z"/> - <path fill="#dedede" d="M284.89 305.13l.5.477-.5-.477z"/> - <path fill="#391810" d="M285.4 305.13l.5.477-.5-.477z"/> - <path fill="#7b1008" d="M285.9 305.13l.5.477-.5-.477z"/> - <path fill="#5a1008" d="M286.4 305.13l.5.477-.5-.477z"/> - <path fill="#631808" d="M286.9 305.13l.5.477-.5-.477z"/> - <path fill="#941808" d="M287.4 305.13l1.003.954-1.003-.954m5.515 0l.5.477-.5-.477z"/> - <path fill="#ad1810" d="M293.42 305.13l.5.477-.5-.477z"/> - <path fill="#7b1008" d="M300.44 305.13l.5.477-.5-.477z"/> - <path fill="#bdbdbd" d="M300.94 305.13l.5.477-.5-.477z"/> - <path fill="#8c8c8c" d="M228.24 305.61l.5.477-.5-.477z"/> - <path fill="#bd2110" d="M228.74 305.61l.5.477-.5-.477z"/> - <path fill="#7b1008" d="M236.26 305.61l.5.477-.5-.477z"/> - <path fill="#b51010" d="M236.77 305.61l.5.477-.5-.477z"/> - <path fill="#941808" d="M241.61 305.77l.334.16-.334-.16z"/> - <path fill="#631818" d="M244.29 305.61l.5.477-.5-.477z"/> - <path fill="#ada5a5" d="M244.79 305.61l.5.477-.5-.477z"/> - <path fill="#cecece" d="M258.82 305.61l.5.477-.5-.477z"/> - <path fill="#7b7373" d="M259.33 305.61l.5.477-.5-.477z"/> - <path fill="#734a42" d="M259.83 305.61v.477h1.504l-1.504-.477z"/> - <path fill="#293100" d="M261.33 305.61l.5.477-.5-.477z"/> - <path fill="#397b00" d="M261.83 305.61l.5.477-.5-.477z"/> - <path fill="#295200" d="M264.84 305.61l.5.477-.5-.477z"/> - <path fill="#082108" d="M265.34 305.61l.5.477-.5-.477z"/> - <path fill="#296300" d="M267.35 305.61l.5.477-.5-.477z"/> - <path fill="#184a00" d="M267.85 305.61l.5.477-.5-.477z"/> - <path fill="#392100" d="M268.35 305.61l.5.477-.5-.477z"/> - <path fill="#733939" d="M268.85 305.61l.5.477-.5-.477z"/> - <path fill="#734a42" d="M269.35 305.61l.5.477-.5-.477z"/> - <path fill="#736b6b" d="M269.85 305.61l.5.477-.5-.477z"/> - <path fill="#ada5a5" d="M270.36 305.61l.5.477-.5-.477z"/> - <path fill="#cecece" d="M284.39 305.61l-.5.954.5-.954z"/> - <path fill="#5a1010" d="M284.89 305.61l.5.477-.5-.477z"/> - <path fill="#ce2110" d="M285.4 305.61l.5.477-.5-.477z"/> - <path fill="#ad1810" d="M287.4 305.61l.5.477-.5-.477z"/> - <path fill="#ce2110" d="M292.41 305.61l1.003.954-1.003-.954z"/> - <path fill="#5a1008" d="M292.92 305.61l.5.477-.5-.477z"/> - <path fill="#736b6b" d="M300.94 305.61l.5.477-.5-.477z"/> - <path fill="#8c6363" d="M228.24 306.08l.5.477-.5-.477z"/> - <path fill="#520808" d="M236.77 306.08l.5.477-.5-.477z"/> - <path fill="#ce2110" d="M237.27 306.08l.5.477-.5-.477z"/> - <path fill="#bd2110" d="M243.78 306.08l.5.477-.5-.477z"/> - <path fill="#7b1008" d="M244.29 306.08l-.5.954.5-.954z"/> - <path fill="#100808" d="M244.79 306.08l.5.477-.5-.477z"/> - <path fill="#9c9494" d="M245.29 306.08l.5.477-.5-.477z"/> - <path fill="#bdbdbd" d="M256.82 306.08l.5.477-.5-.477z"/> - <path fill="#ada5a5" d="M257.32 306.08l.5.477-.5-.477z"/> - <path fill="#8c8c8c" d="M257.82 306.08l.5.477-.5-.477z"/> - <path fill="#52525a" d="M258.32 306.08l.5.477-.5-.477z"/> - <path fill="#7b1008" d="M258.82 306.08l.5.477-.5-.477z"/> - <path fill="#ce2110" d="M259.33 306.08l.5.477-.5-.477z"/> - <path fill="#de2110" d="M258.82 308.47l4.01.477c-.245-2.927-3.433-3.64-4.01-.477z"/> - <path fill="#b51010" d="M261.83 306.08l.5.477-.5-.477z"/> - <path fill="#7b1008" d="M262.33 306.08l.5.477-.5-.477z"/> - <path fill="#292100" d="M262.84 306.08l.5.477-.5-.477z"/> - <path fill="#422100" d="M263.34 306.08l.5.477-.5-.477z"/> - <path fill="#941808" d="M263.84 306.08l.5.477-.5-.477z"/> - <path fill="#ad1810" d="M264.34 306.08v.477h1.504l-1.504-.477z"/> - <path fill="#311000" d="M265.84 306.08l.5.477-.5-.477z"/> - <path fill="#293100" d="M266.34 306.08l.5.477-.5-.477z"/> - <path fill="#631808" d="M266.85 306.08l.5.477-.5-.477z"/> - <path fill="#941808" d="M267.35 306.08l.5.477-.5-.477z"/> - <path fill="#de2110" d="M266.85 306.56l.5 2.385 3.51-.477c-.41-2.34-1.796-2.387-4.01-1.908z"/> - <path fill="#b51010" d="M270.36 306.08l.5.477-.5-.477z"/> - <path fill="#423131" d="M270.86 306.08l.5.477-.5-.477z"/> - <path fill="#8c8c8c" d="M271.36 306.08l.5.477-.5-.477z"/> - <path fill="#9c9494" d="M271.86 306.08l.5.477-.5-.477z"/> - <path fill="#bdbdbd" d="M272.36 306.08l.5.477-.5-.477z"/> - <path fill="#efefef" d="M272.86 306.08l.5.477-.5-.477z"/> - <path fill="#101810" d="M284.39 306.08l.5.477-.5-.477z"/> - <path fill="#631808" d="M284.89 306.08l.5.477-.5-.477z"/> - <path fill="#b51010" d="M285.4 306.08l.5.477-.5-.477z"/> - <path fill="#520808" d="M292.41 306.08l.5.477-.5-.477z"/> - <path fill="#734a42" d="M301.1 306.4l.167.318-.167-.318z"/> - <path fill="#8c8c8c" d="M228.24 306.56l.5.477-.5-.477z"/> - <path fill="#bd2110" d="M236.77 306.56l.5.477-.5-.477z"/> - <path fill="#631808" d="M237.27 306.56l.5.477-.5-.477z"/> - <path fill="#ad1810" d="M242.78 306.56l.5.477-.5-.477z"/> - <path fill="#5a1008" d="M243.28 306.56l.5.477-.5-.477z"/> - <path fill="#ce2110" d="M244.29 306.56l.5.477-.5-.477z"/> - <path fill="#5a1008" d="M245.29 306.56l.5.477-.5-.477z"/> - <path fill="#cecece" d="M245.79 306.56l.5.477-.5-.477z"/> - <path fill="#efefef" d="M254.81 306.56l.5.477-.5-.477z"/> - <path fill="#ada5a5" d="M255.32 306.56l.5.477-.5-.477z"/> - <path fill="#736b6b" d="M255.82 306.56l.5.477-.5-.477z"/> - <path fill="#631818" d="M256.32 306.56l.5.477-.5-.477z"/> - <path fill="#941808" d="M256.82 306.56l.5.477-.5-.477z"/> - <path fill="#b51010" d="M257.32 306.56l.5.477-.5-.477z"/> - <path fill="#de2110" d="M257.82 306.56l-2.005.477v2.862c1.733-.7 2.734-1.513 2.005-3.34z"/> - <path fill="#5a1008" d="M258.32 306.56l.5.477-.5-.477z"/> - <path fill="#520808" d="M262.84 306.56l.5.477-.5-.477z"/> - <path fill="#de2110" d="M263.34 306.56v2.862h3.008v-2.862h-3.008z"/> - <path fill="#520808" d="M266.34 306.56l.5.477-.5-.477z"/> - <path fill="#941808" d="M270.86 306.56l.5.477-.5-.477z"/> - <path fill="#b51010" d="M271.36 306.56l.5.477-.5-.477z"/> - <path fill="#bd2110" d="M271.86 306.56l.5.477-.5-.477z"/> - <path fill="#ad1810" d="M272.36 306.56l.5.477-.5-.477z"/> - <path fill="#7b1008" d="M272.86 306.56l.5.477-.5-.477z"/> - <path fill="#6b4242" d="M273.36 306.56l.5.477-.5-.477z"/> - <path fill="#8c8c8c" d="M273.86 306.56l.5.477-.5-.477z"/> - <path fill="#dedede" d="M274.37 306.56l.5.477-.5-.477z"/> - <path fill="#efefef" d="M283.39 306.56l.5.477-.5-.477z"/> - <path fill="#5a1010" d="M283.89 306.56l.5.477-.5-.477z"/> - <path fill="#ce2110" d="M284.39 306.56l.5.477-.5-.477z"/> - <path fill="#941808" d="M285.4 306.56l.5.477-.5-.477z"/> - <path fill="#5a1008" d="M285.9 306.56l.5.477-.5-.477z"/> - <path fill="#941808" d="M286.4 306.56l.5.477-.5-.477z"/> - <path fill="#7b1008" d="M291.91 306.56l.5.477-.5-.477z"/> - <path fill="#ad1810" d="M292.41 306.56l.5.477-.5-.477z"/> - <path fill="#bdbdbd" d="M228.41 307.36l.167.318-.167-.318z"/> - <path fill="#ad1810" d="M228.74 307.04l.5.477-.5-.477z"/> - <path fill="#ce2110" d="M231.25 307.04l.5.477-.5-.477z"/> - <path fill="#bd2110" d="M231.75 307.04l.5.477-.5-.477z"/> - <path fill="#7b1008" d="M237.27 307.04l.5.477-.5-.477z"/> - <path fill="#ad1810" d="M237.77 307.04l.5.477-.5-.477z"/> - <path fill="#bd2110" d="M241.78 307.04l.5.477-.5-.477z"/> - <path fill="#520808" d="M242.28 307.04l.5.477-.5-.477z"/> - <path fill="#941808" d="M242.78 307.04l.5.477-.5-.477z"/> - <path fill="#ada5a5" d="M245.79 307.04l.5.477-.5-.477z"/> - <path fill="#bdbdbd" d="M254.98 307.36l.167.318-.167-.318z"/> - <path fill="#941808" d="M255.32 307.04l.5.477-.5-.477z"/> - <path fill="#631808" d="M258.32 307.04v1.908h.5l-.5-1.908m4.512 0v1.908h.5l-.5-1.908z"/> - <path fill="#941808" d="M266.34 307.04l.5.477-.5-.477z"/> - <path fill="#bd2110" d="M266.85 307.04l.5.477-.5-.477z"/> - <path fill="#ad1810" d="M270.86 307.04l-1.504 2.385h1.504v-.954l1.003.478v-1.908h-1.003z"/> - <path fill="#de2110" d="M271.86 307.04v2.385l2.005.477.502-2.385-2.507-.477z"/> - <path fill="#bd2110" d="M273.86 307.04l.5.477-.5-.477z"/> - <path fill="#6b4242" d="M274.37 307.04l.5.477-.5-.477z"/> - <path fill="#bdbdbd" d="M283.39 307.04l.5.477-.5-.477z"/> - <path fill="#ad1810" d="M283.89 307.04l.5.477-.5-.477m2.507 0l.5.477-.5-.477z"/> - <path fill="#520808" d="M286.9 307.04l.5.477-.5-.477z"/> - <path fill="#ad1810" d="M287.4 307.04l.5.477-.5-.477z"/> - <path fill="#bd2110" d="M291.41 307.04l.5.477-.5-.477z"/> - <path fill="#631808" d="M291.91 307.04l.5.477-.5-.477z"/> - <path fill="#bd2110" d="M297.76 307.2l.334.16-.334-.16m2.674-.16l.5.478-.5-.477z"/> - <path fill="#8c8c8c" d="M300.94 307.04l.5.477-.5-.477z"/> - <path fill="#cecece" d="M224.73 307.51l.5.477-.5-.477z"/> - <path fill="#bdbdbd" d="M225.24 307.51l.5.477-.5-.477z"/> - <path fill="#9c9494" d="M227.74 307.51l.5.477-.5-.477z"/> - <path fill="#5a1010" d="M228.74 307.51l.5.477-.5-.477z"/> - <path fill="#bd2110" d="M230.25 307.51l.5.477-.5-.477z"/> - <path fill="#5a1008" d="M230.75 307.51l.5.477-.5-.477z"/> - <path fill="#631808" d="M231.25 307.51l.5.477-.5-.477z"/> - <path fill="#941808" d="M231.75 307.51l.5.477-.5-.477z"/> - <path fill="#631808" d="M232.25 307.51l.5.477-.5-.477z"/> - <path fill="#7b1008" d="M232.76 307.51l.5.477-.5-.477z"/> - <path fill="#5a1008" d="M233.26 307.51l.5.477-.5-.477z"/> - <path fill="#bd2110" d="M233.76 307.51l.5.477-.5-.477z"/> - <path fill="#5a1008" d="M237.77 307.51l.5.477-.5-.477z"/> - <path fill="#941808" d="M238.44 307.83l.167.318-.167-.318z"/> - <path fill="#b51010" d="M240.78 307.51l.5.477-.5-.477z"/> - <path fill="#5a1008" d="M241.28 307.51l.5.477-.5-.477z"/> - <path fill="#631808" d="M241.78 307.51l.5.477-.5-.477z"/> - <path fill="#ce2110" d="M242.28 307.51l.5.477-.5-.477z"/> - <path fill="#941808" d="M245.29 307.51l.5.477-.5-.477z"/> - <path fill="#cecece" d="M245.79 307.51l.5.477-.5-.477z"/> - <path fill="#ad1810" d="M255.32 307.51l.5.477-.5-.477m11.03 0v.954h1.002v-.954h-1.003z"/> - <path fill="#8c8c8c" d="M274.53 307.83l.167.318-.167-.318z"/> - <path fill="#dedede" d="M283.39 307.51l.5.477-.5-.477z"/> - <path fill="#631808" d="M283.89 307.51l.5.477-.5-.477z"/> - <path fill="#941808" d="M287.4 307.51l.5.477-.5-.477z"/> - <path fill="#5a1008" d="M287.9 307.51l.5.477-.5-.477z"/> - <path fill="#ad1810" d="M288.4 307.51l.5.477-.5-.477z"/> - <path fill="#b51010" d="M290.91 307.51l.5.477-.5-.477z"/> - <path fill="#520808" d="M291.41 307.51l.5.477-.5-.477z"/> - <path fill="#ce2110" d="M291.91 307.51l.5.477-.5-.477m3.51 0l.5.477-.5-.477z"/> - <path fill="#7b1008" d="M295.92 307.51l.5.477-.5-.477z"/> - <path fill="#631808" d="M296.76 307.67l.334.16-.334-.16z"/> - <path fill="#941808" d="M297.43 307.51l.5.477-.5-.477z"/> - <path fill="#7b1008" d="M297.93 307.51l.5.477-.5-.477z"/> - <path fill="#5a1008" d="M298.43 307.51l.5.477-.5-.477z"/> - <path fill="#b51010" d="M298.93 307.51l.5.477-.5-.477z"/> - <path fill="#520808" d="M300.44 307.51l.5.477-.5-.477z"/> - <path fill="#ada5a5" d="M301.27 307.67l.334.16-.334-.16z"/> - <path fill="#bdbdbd" d="M304.28 307.67l.334.16-.334-.16z"/> - <path fill="#ada5a5" d="M223.23 307.99l.5.477-.5-.477z"/> - <path fill="#63636b" d="M223.73 307.99l.5.477-.5-.477z"/> - <path fill="#733129" d="M224.23 307.99l.5.477-.5-.477z"/> - <path fill="#941808" d="M224.73 307.99l.5.477-.5-.477z"/> - <path fill="#de2110" d="M222.23 309.42c2.015 4.108 12.55 5.25 15.04.954-5.83.7-9.585-3.675-15.04-.954z"/> - <path fill="#ce2110" d="M227.74 307.99l.5.477-.5-.477z"/> - <path fill="#ad1810" d="M228.24 307.99l.5.477-.5-.477z"/> - <path fill="#7b1008" d="M228.74 307.99l.5.477-.5-.477z"/> - <path fill="#ce2110" d="M230.75 307.99l.5.477-.5-.477z"/> - <path fill="#de2110" d="M236.77 309.9c-4.703-3.61-7.752.932 0 0z"/> - <path fill="#ce2110" d="M233.26 307.99l.5.477-.5-.477z"/> - <path fill="#7b1008" d="M233.76 307.99l.5.477-.5-.477z"/> - <path fill="#520808" d="M234.26 307.99l.5.477-.5-.477z"/> - <path fill="#941808" d="M234.76 307.99l.5.477-.5-.477zm6.02 0l.5.477-.5-.477z"/> - <path fill="#ce2110" d="M241.28 307.99l.5.477-.5-.477z"/> - <path fill="#5a2121" d="M245.29 307.99l.5.477-.5-.477z"/> - <path fill="#7b1008" d="M255.32 307.99l.5.477-.5-.477z"/> - <path fill="#736b6b" d="M283.89 307.99l.5.477-.5-.477z"/> - <path fill="#ce2110" d="M284.39 307.99l.5.477-.5-.477z"/> - <path fill="#941808" d="M288.4 307.99l.5.477-.5-.477z"/> - <path fill="#5a1008" d="M288.9 307.99l.5.477-.5-.477z"/> - <path fill="#ad1810" d="M294.42 307.99l.5.477-.5-.477z"/> - <path fill="#631808" d="M295.25 308.15l.334.16-.334-.16z"/> - <path fill="#bd2110" d="M295.92 307.99l.5.477-.5-.477z"/> - <path fill="#de2110" d="M292.92 309.42v.477c2.59.312 5.465 1.236 6.016-1.908l-6.016 1.43z"/> - <path fill="#520808" d="M298.93 307.99l.5.477-.5-.477z"/> - <path fill="#b51010" d="M299.93 307.99l.5.477-.5-.477z"/> - <path fill="#5a1008" d="M300.44 307.99l-.5.954.5-.954z"/> - <path fill="#ad1810" d="M300.94 307.99l.5.477-.5-.477z"/> - <path fill="#ce2110" d="M301.44 307.99l.5.477-.5-.477z"/> - <path fill="#de2110" d="M292.41 310.38c2.477 4.274 13.046 3.11 15.04-.954-5.455-2.72-9.21 1.655-15.04.954z"/> - <path fill="#941808" d="M304.45 307.99l.5.477-.5-.477z"/> - <path fill="#6b2908" d="M304.95 307.99l.5.477-.5-.477z"/> - <path fill="#736b6b" d="M305.45 307.99l.5.477-.5-.477z"/> - <path fill="#9c9494" d="M305.95 307.99l.5.477-.5-.477z"/> - <path fill="#efefef" d="M306.45 307.99l.5.477-.5-.477z"/> - <path fill="#cecece" d="M222.23 308.47l-1.003 1.43 1.003-1.43z"/> - <path fill="#5a3131" d="M222.73 308.47l.5.477-.5-.477z"/> - <path fill="#941808" d="M223.23 308.47l.5.477-.5-.477z"/> - <path fill="#631808" d="M229.25 308.47l.5.477-.5-.477z"/> - <path fill="#ad1810" d="M234.76 308.47l.5.477-.5-.477z"/> - <path fill="#5a1008" d="M235.6 308.63l.334.16-.334-.16z"/> - <path fill="#bd2110" d="M236.26 308.47l.5.477-.5-.477z"/> - <path fill="#631818" d="M244.79 308.47l.5.477-.5-.477z"/> - <path fill="#cecece" d="M245.29 308.47l-.5.954.5-.954z"/> - <path fill="#631808" d="M255.32 308.47l.5.477-.5-.477z"/> - <path fill="#ad1810" d="M258.82 308.47v.477l2.005.477-2.005-.954z"/> - <path fill="#941808" d="M266.34 308.47l1.003.954-1.003-.954z"/> - <path fill="#ce2110" d="M266.85 308.47l.5.477-.5-.477z"/> - <path fill="#b51010" d="M268.85 308.47l.5.477-.5-.477z"/> - <path fill="#941808" d="M270.86 308.47l1.003.954-1.003-.954z"/> - <path fill="#ad1810" d="M273.86 308.47l.5.477-.5-.477z"/> - <path fill="#bdbdbd" d="M274.37 308.47l.5.477-.5-.477z"/> - <path fill="#efefef" d="M283.89 308.47l.5.477-.5-.477z"/> - <path fill="#5a2121" d="M284.39 308.47l1.003.954-1.003-.954z"/> - <path fill="#ce2110" d="M292.92 308.47l.5.477-.5-.477z"/> - <path fill="#7b1008" d="M293.42 308.47l-.5.954.5-.954z"/> - <path fill="#5a1008" d="M293.92 308.47l.5.477-.5-.477z"/> - <path fill="#941808" d="M294.42 308.47l.5.477-.5-.477z"/> - <path fill="#b51010" d="M298.93 308.47l.5.477-.5-.477z"/> - <path fill="#631808" d="M299.43 308.47l.5.477-.5-.477z"/> - <path fill="#b51010" d="M305.95 308.47l.5.477-.5-.477z"/> - <path fill="#5a2121" d="M306.45 308.47l.5.477-.5-.477z"/> - <path fill="#bdbdbd" d="M306.95 308.47l.5.477-.5-.477z"/> - <path fill="#631818" d="M222.23 308.95l.5.477-.5-.477z"/> - <path fill="#ce2110" d="M229.25 308.95l.5.477-.5-.477z"/> - <path fill="#210800" d="M229.75 308.95l.5.477-.5-.477z"/> - <path fill="#ad1810" d="M230.25 308.95l-.5.954.5-.954z"/> - <path fill="#ce2110" d="M235.76 308.95l.5.477-.5-.477z"/> - <path fill="#7b1008" d="M236.26 308.95l.5.477-.5-.477z"/> - <path fill="#420000" d="M236.77 308.95l.5.477-.5-.477z"/> - <path fill="#ad1810" d="M237.27 308.95l.5.477-.5-.477z"/> - <path fill="#bd2110" d="M243.78 308.95l.5.477-.5-.477z"/> - <path fill="#5a1010" d="M244.29 308.95l.5.477-.5-.477z"/> - <path fill="#734a42" d="M255.32 308.95l.5.477-.5-.477z"/> - <path fill="#ce2110" d="M257.82 308.95l.5.477-.5-.477z"/> - <path fill="#310000" d="M258.32 308.95l.5.477-.5-.477z"/> - <path fill="#941808" d="M258.99 309.26l.167.318-.167-.318z"/> - <path fill="#b51010" d="M259.66 309.1l.334.16-.334-.16z"/> - <path fill="#7b1008" d="M260.83 308.95l.5.477-.5-.477z"/> - <path fill="#5a1008" d="M261.33 308.95l.5.477-.5-.477z"/> - <path fill="#631808" d="M261.83 308.95l.5.477-.5-.477z"/> - <path fill="#7b1008" d="M262.33 308.95l.5.477-.5-.477z"/> - <path fill="#520808" d="M262.84 308.95l.5.477-.5-.477z"/> - <path fill="#420000" d="M266.34 308.95l.5.477-.5-.477z"/> - <path fill="#631808" d="M267.35 308.95v.477h1.504l-1.504-.477z"/> - <path fill="#941808" d="M268.85 308.95l.5.477-.5-.477z"/> - <path fill="#bd2110" d="M269.85 308.95l.5.477-.5-.477z"/> - <path fill="#310000" d="M270.86 308.95l.5.477-.5-.477z"/> - <path fill="#941808" d="M273.86 308.95l.5.477-.5-.477z"/> - <path fill="#cecece" d="M274.37 308.95l.5.477-.5-.477m10.027 0l.5.477-.5-.477z"/> - <path fill="#b51010" d="M285.4 308.95l.5.477-.5-.477m6.517 0l.502.477-.503-.477z"/> - <path fill="#520808" d="M292.41 308.95l.5.477-.5-.477z"/> - <path fill="#bd2110" d="M293.42 308.95l.5.477-.5-.477m5.515 0l.5.477-.5-.477z"/> - <path fill="#210800" d="M299.43 308.95l.5.477-.5-.477z"/> - <path fill="#bd2110" d="M299.93 308.95l.5.477-.5-.477z"/> - <path fill="#7b1008" d="M306.95 308.95l.5.477-.5-.477z"/> - <path fill="#9c9494" d="M307.45 308.95l.5.477-.5-.477z"/> - <path fill="#631818" d="M221.73 309.42l2.507 2.862-2.507-2.862z"/> - <path fill="#420000" d="M230.25 309.42l.5.477-.5-.477z"/> - <path fill="#842118" d="M236.77 309.42l.5.477-.5-.477z"/> - <path fill="#8c8c8c" d="M237.27 309.42l.5.477-.5-.477z"/> - <path fill="#524242" d="M237.77 309.42l.5.477-.5-.477z"/> - <path fill="#7b1008" d="M238.27 309.42l.5.477-.5-.477z"/> - <path fill="#b51010" d="M238.77 309.42l.5.477-.5-.477m4.01 0l.502.477-.5-.477z"/> - <path fill="#5a1008" d="M243.28 309.42l.5.477-.5-.477z"/> - <path fill="#7b7373" d="M243.78 309.42l.5.477-.5-.477z"/> - <path fill="#efefef" d="M244.29 309.42l.5.477-.5-.477z"/> - <path fill="#845a52" d="M255.32 309.42l.5.477-.5-.477z"/> - <path fill="#bd2110" d="M256.32 309.42l.5.477-.5-.477z"/> - <path fill="#631818" d="M256.82 309.42l.5.477-.5-.477z"/> - <path fill="#7b5252" d="M257.32 309.42l.5.477-.5-.477z"/> - <path fill="#8c8c8c" d="M257.82 309.42l.5.477-.5-.477z"/> - <path fill="#63636b" d="M258.32 309.42l.5.477-.5-.477z"/> - <path fill="#de2110" d="M259.33 309.42v.477h2.005l-2.005-.477z"/> - <path fill="#b51010" d="M261.33 309.42l.5.477-.5-.477z"/> - <path fill="#941808" d="M261.83 309.42l.5.477-.5-.477z"/> - <path fill="#5a1008" d="M262.33 309.42l.5.477-.5-.477z"/> - <path fill="#392100" d="M262.84 309.42l.5.477-.5-.477z"/> - <path fill="#292100" d="M263.34 309.42l.5.477-.5-.477z"/> - <path fill="#7b1008" d="M263.84 309.42l.5.477-.5-.477z"/> - <path fill="#ad1810" d="M264.67 309.58l.334.16-.334-.16z"/> - <path fill="#941808" d="M265.34 309.42l.5.477-.5-.477z"/> - <path fill="#311000" d="M265.84 309.42l.5.477-.5-.477z"/> - <path fill="#292100" d="M266.34 309.42l.5.477-.5-.477z"/> - <path fill="#4a1000" d="M266.85 309.42l.5.477-.5-.477z"/> - <path fill="#7b1008" d="M267.35 309.42l.5.477-.5-.477z"/> - <path fill="#ad1810" d="M267.85 309.42l.5.477-.5-.477z"/> - <path fill="#de2110" d="M268.35 309.42v.477h2.005l-2.005-.477z"/> - <path fill="#b51010" d="M270.36 309.42l.5.477-.5-.477z"/> - <path fill="#5a1010" d="M270.86 309.42l.5.477-.5-.477z"/> - <path fill="#9c9494" d="M271.36 309.42l.5.477-.5-.477z"/> - <path fill="#7b7373" d="M271.86 309.42l.5.477-.5-.477z"/> - <path fill="#6b2131" d="M272.36 309.42l.5.477-.5-.477z"/> - <path fill="#941808" d="M272.86 309.42l.5.477-.5-.477z"/> - <path fill="#631808" d="M273.86 309.42l.5.477-.5-.477z"/> - <path fill="#8c8c8c" d="M285.4 309.42l.5.477-.5-.477z"/> - <path fill="#631818" d="M285.9 309.42l.5.477-.5-.477z"/> - <path fill="#ad1810" d="M286.4 309.42l.5.477-.5-.477z"/> - <path fill="#b51010" d="M290.41 309.42l.5.477-.5-.477z"/> - <path fill="#7b1008" d="M290.91 309.42l.5.477-.5-.477z"/> - <path fill="#733939" d="M291.41 309.42l.5.477-.5-.477z"/> - <path fill="#8c8c8c" d="M291.91 309.42l.5.477-.5-.477z"/> - <path fill="#631818" d="M292.41 309.42l.5.477-.5-.477z"/> - <path fill="#941808" d="M307.45 309.42l.5.477-.5-.477z"/> - <path fill="#ada5a5" d="M307.96 309.42l.5.477-.5-.477z"/> - <path fill="#63636b" d="M221.22 309.9l2.005 1.908-2.005-1.908z"/> - <path fill="#941808" d="M230.25 309.9l.5.477-.5-.477z"/> - <path fill="#5a1008" d="M230.75 309.9l1.003.954-1.003-.954z"/> - <path fill="#ce2110" d="M234.76 309.9l.5.477-.5-.477z"/> - <path fill="#ad1810" d="M235.43 310.22l.167.318-.167-.318z"/> - <path fill="#631808" d="M236.1 310.06l.334.16-.334-.16z"/> - <path fill="#7b1008" d="M236.77 309.9l.5.477-.5-.477z"/> - <path fill="#392121" d="M237.27 309.9l.5.477-.5-.477z"/> - <path fill="#efefef" d="M238.27 309.9l.5.477-.5-.477z"/> - <path fill="#ada5a5" d="M238.77 309.9l.5.477-.5-.477z"/> - <path fill="#7b7373" d="M239.27 309.9l.5.477-.5-.477z"/> - <path fill="#6b2131" d="M239.77 309.9l.5.477-.5-.477z"/> - <path fill="#631808" d="M240.28 309.9l.5.477-.5-.477z"/> - <path fill="#9c4239" d="M240.78 309.9l.5.477-.5-.477z"/> - <path fill="#ad524a" d="M241.28 309.9l.5.477-.5-.477z"/> - <path fill="#734a42" d="M241.78 309.9l.5.477-.5-.477z"/> - <path fill="#63636b" d="M242.28 309.9l.5.477-.5-.477z"/> - <path fill="#ada5a5" d="M242.78 309.9l.5.477-.5-.477z"/> - <path fill="#efefef" d="M243.28 309.9l.5.477-.5-.477z"/> - <path fill="#8c8c8c" d="M255.32 309.9l.5.477-.5-.477z"/> - <path fill="#6b2131" d="M255.82 309.9l.5.477-.5-.477z"/> - <path fill="#8c8c8c" d="M256.32 309.9l.5.477-.5-.477z"/> - <path fill="#efefef" d="M256.82 309.9l.5.477-.5-.477m1.504 0l.5.477-.5-.477z"/> - <path fill="#313931" d="M258.82 309.9l.5.477-.5-.477z"/> - <path fill="#184a00" d="M259.33 309.9v.477h2.005l-2.005-.477z"/> - <path fill="#296300" d="M261.33 309.9l.5.477-.5-.477z"/> - <path fill="#297b00" d="M261.83 309.9l-.5 1.908.5-1.908z"/> - <path fill="#319400" d="M262.67 310.06l.334.16-.334-.16z"/> - <path fill="#214210" d="M263.34 309.9l-.5.954.5-.954z"/> - <path fill="#9c9494" d="M263.84 309.9l.5.477-.5-.477z"/> - <path fill="#bdbdbd" d="M264.67 310.06l.334.16-.334-.16z"/> - <path fill="#efefef" d="M265.34 309.9l.5.477-.5-.477z"/> - <path fill="#63636b" d="M265.84 309.9l.5.477-.5-.477z"/> - <path fill="#397b00" d="M266.34 309.9l.5.477-.5-.477z"/> - <path fill="#428c00" d="M266.85 309.9c1.83 2.139 4.956 4.796 7.52 2.385l-7.52-2.385z"/> - <path fill="#397b00" d="M267.85 309.9l.5.477-.5-.477z"/> - <path fill="#294200" d="M268.35 309.9v.477h2.005l-2.005-.477z"/> - <path fill="#103900" d="M270.36 309.9l.5.477-.5-.477z"/> - <path fill="#8c8c8c" d="M270.86 309.9l.5.477-.5-.477z"/> - <path fill="#bdbdbd" d="M272.86 309.9l.5.477-.5-.477z"/> - <path fill="#524242" d="M273.36 309.9l.5.477-.5-.477z"/> - <path fill="#5a1010" d="M273.86 309.9l.5.477-.5-.477z"/> - <path fill="#bdbdbd" d="M286.4 309.9l.5.477-.5-.477z"/> - <path fill="#7b7373" d="M286.9 309.9l.5.477-.5-.477z"/> - <path fill="#734a42" d="M287.4 309.9l.5.477-.5-.477z"/> - <path fill="#ad524a" d="M288.24 310.06l.334.16-.334-.16z"/> - <path fill="#631808" d="M288.9 309.9l.5.477-.5-.477z"/> - <path fill="#733129" d="M289.41 309.9l.5.477-.5-.477z"/> - <path fill="#736b6b" d="M289.91 309.9l.5.477-.5-.477z"/> - <path fill="#9c9494" d="M290.41 309.9l.5.477-.5-.477z"/> - <path fill="#dedede" d="M290.91 309.9l.5.477-.5-.477z"/> - <path fill="#52525a" d="M291.91 309.9l.5.477-.5-.477z"/> - <path fill="#5a1008" d="M292.41 309.9l.5.477-.5-.477z"/> - <path fill="#631808" d="M293.25 310.06l.334.16-.334-.16z"/> - <path fill="#ad1810" d="M294.08 310.22l.167.318-.167-.318z"/> - <path fill="#ce2110" d="M294.42 309.9l.5.477-.5-.477z"/> - <path fill="#941808" d="M298.43 309.9l.5.477-.5-.477z"/> - <path fill="#631818" d="M307.45 309.9l.5.477-.5-.477z"/> - <path fill="#63636b" d="M307.96 309.9l-.5.954.5-.954z"/> - <path fill="#efefef" d="M308.46 309.9l.5.477-.5-.477z"/> - <path fill="#8c8c8c" d="M220.72 310.38l2.005 1.908-2.005-1.908z"/> - <path fill="#cecece" d="M221.22 310.38l.5.477-.5-.477z"/> - <path fill="#b51010" d="M230.75 310.38l.5.477-.5-.477z"/> - <path fill="#631808" d="M232.09 310.54l.334.16-.334-.16z"/> - <path fill="#941808" d="M232.76 310.38l.5.477-.5-.477z"/> - <path fill="#ad1810" d="M233.26 310.38l.5.477-.5-.477z"/> - <path fill="#941808" d="M233.76 310.38l.5.477-.5-.477z"/> - <path fill="#631808" d="M234.59 310.54l.334.16-.334-.16z"/> - <path fill="#5a1008" d="M237.27 310.38l.5.477-.5-.477z"/> - <path fill="#cecece" d="M237.77 310.38l.5.477-.5-.477z"/> - <path fill="#dedede" d="M255.32 310.38l.5.477-.5-.477z"/> - <path fill="#cecece" d="M257.82 310.38l.5.477-.5-.477z"/> - <path fill="#294221" d="M258.32 310.38l.5.477-.5-.477z"/> - <path fill="#297b00" d="M258.82 310.38l.5.477-.5-.477z"/> - <path fill="#319400" d="M255.82 312.28c2.356 2.212 4.845.153 6.517-1.908l-6.517 1.908z"/> - <path fill="#cecece" d="M263.34 310.38l-.5.954.5-.954z"/> - <path fill="#8c8c8c" d="M266.34 310.38l.5.477-.5-.477z"/> - <path fill="#294200" d="M266.85 310.38l.5.477-.5-.477z"/> - <path fill="#397b00" d="M270.86 310.38l.5.477-.5-.477z"/> - <path fill="#52525a" d="M271.36 310.38l.5.477-.5-.477z"/> - <path fill="#efefef" d="M271.86 310.38l.5.477-.5-.477z"/> - <path fill="#dedede" d="M273.86 310.38l.5.477-.5-.477z"/> - <path fill="#420000" d="M291.91 310.38l.5.477-.5-.477z"/> - <path fill="#7b1008" d="M294.42 310.38l.5.477-.5-.477z"/> - <path fill="#631808" d="M294.92 310.38l.5.477-.5-.477z"/> - <path fill="#7b1008" d="M295.42 310.38l.5.477-.5-.477z"/> - <path fill="#ad1810" d="M295.92 310.38l.5.477-.5-.477z"/> - <path fill="#941808" d="M296.42 310.38l.5.477-.5-.477z"/> - <path fill="#631808" d="M296.93 310.38v.477h1.504l-1.504-.477z"/> - <path fill="#ad1810" d="M298.43 310.38l.5.477-.5-.477z"/> - <path fill="#520808" d="M306.95 310.38l.5.477-.5-.477z"/> - <path fill="#cecece" d="M307.96 310.38l-1.003 1.43 1.003-1.43z"/> - <path fill="#8c8c8c" d="M308.46 310.38l.5.477-.5-.477z"/> - <path fill="#dedede" d="M220.22 310.85l.5.477-.5-.477z"/> - <path fill="#cecece" d="M221.73 310.85l.5.477-.5-.477z"/> - <path fill="#7b1008" d="M237.27 310.85l.5.477-.5-.477z"/> - <path fill="#dedede" d="M237.77 310.85l.5.477-.5-.477z"/> - <path fill="#8c8c8c" d="M257.32 310.85l.5.477-.5-.477z"/> - <path fill="#184a00" d="M257.82 310.85l.5.477-.5-.477z"/> - <path fill="#314231" d="M262.33 310.85l-.5.954.5-.954z"/> - <path fill="#bdbdbd" d="M266.85 310.85l.5.477-.5-.477z"/> - <path fill="#213918" d="M267.35 310.85l.5.477-.5-.477m4.512 0l.5.477-.5-.477z"/> - <path fill="#bdbdbd" d="M272.36 310.85l.5.477-.5-.477z"/> - <path fill="#5a1008" d="M291.91 310.85l.5.477-.5-.477z"/> - <path fill="#631808" d="M306.45 310.85l.5.477-.5-.477z"/> - <path fill="#424242" d="M306.95 310.85l.5.477-.5-.477z"/> - <path fill="#7b7373" d="M307.96 310.85l-1.003 1.43 1.003-1.43z"/> - <path fill="#9c9494" d="M308.46 310.85l-.5.954.5-.954z"/> - <path fill="#cecece" d="M220.72 311.33l.5.477-.5-.477m1.504 0l.5.477-.5-.477z"/> - <path fill="#b51010" d="M236.77 311.33l-.5.954.5-.954z"/> - <path fill="#63636b" d="M237.27 311.33l.5.477-.5-.477z"/> - <path fill="#bdbdbd" d="M256.32 311.33l.5.477-.5-.477z"/> - <path fill="#294221" d="M256.82 311.33l.5.477-.5-.477z"/> - <path fill="#296300" d="M257.32 311.33l.5.477-.5-.477z"/> - <path fill="#efefef" d="M262.33 311.33l.5.477-.5-.477m5.013 0l.502.477-.502-.477z"/> - <path fill="#425242" d="M267.85 311.33l.5.477-.5-.477z"/> - <path fill="#397b00" d="M268.35 311.33l.5.477-.5-.477z"/> - <path fill="#295200" d="M272.36 311.33l.5.477-.5-.477z"/> - <path fill="#425242" d="M272.86 311.33l.5.477-.5-.477z"/> - <path fill="#bdbdbd" d="M273.36 311.33l.5.477-.5-.477z"/> - <path fill="#8c8c8c" d="M291.91 311.33l.5.477-.5-.477z"/> - <path fill="#ad1810" d="M292.41 311.33l.5.477-.5-.477z"/> - <path fill="#941808" d="M305.95 311.33l-1.003 1.43 1.003-1.43z"/> - <path fill="#424242" d="M306.45 311.33l-1.003 1.43 1.003-1.43z"/> - <path fill="#7b7373" d="M308.96 311.33l.5.477-.5-.477z"/> - <path fill="#dedede" d="M220.22 311.81l.5.477-.5-.477z"/> - <path fill="#cecece" d="M221.22 311.81l1.003.954-1.003-.954z"/> - <path fill="#7b7373" d="M221.73 311.81l.5.477-.5-.477z"/> - <path fill="#cecece" d="M222.73 311.81l.5.477-.5-.477z"/> - <path fill="#7b7373" d="M223.23 311.81l1.003.954-1.003-.954z"/> - <path fill="#5a3131" d="M236.77 311.81l.5.477-.5-.477z"/> - <path fill="#bdbdbd" d="M255.32 311.81l.5.477-.5-.477z"/> - <path fill="#425242" d="M255.82 311.81l.5.477-.5-.477z"/> - <path fill="#296300" d="M256.32 311.81l.5.477-.5-.477z"/> - <path fill="#185200" d="M260.83 311.81l.5.477-.5-.477z"/> - <path fill="#7b7373" d="M261.33 311.81l.5.477-.5-.477z"/> - <path fill="#8c8c8c" d="M268.35 311.81l.5.477-.5-.477z"/> - <path fill="#295200" d="M268.85 311.81l.5.477-.5-.477m4.512 0l.5.477-.5-.477z"/> - <path fill="#63636b" d="M273.86 311.81l.5.477-.5-.477z"/> - <path fill="#dedede" d="M274.37 311.81l.5.477-.5-.477z"/> - <path fill="#63636b" d="M292.41 311.81l.5.477-.5-.477z"/> - <path fill="#941808" d="M292.92 311.81l.5.477-.5-.477z"/> - <path fill="#dedede" d="M306.45 311.81l.5.477-.5-.477z"/> - <path fill="#a59494" d="M307.45 311.81l.5.477-.5-.477z"/> - <path fill="#63636b" d="M308.46 311.81l.5.477-.5-.477z"/> - <path fill="#dedede" d="M308.96 311.81l-.5 1.43.5-1.43z"/> - <path fill="#bdbdbd" d="M220.72 312.28l.5.477-.5-.477z"/> - <path fill="#7b7373" d="M222.23 312.28l.5.477-.5-.477z"/> - <path fill="#ada5a5" d="M222.73 312.28l3.51 2.862-3.51-2.862z"/> - <path fill="#9c9494" d="M223.23 312.28l.5.477-.5-.477z"/> - <path fill="#7b1008" d="M224.23 312.28l.5.477-.5-.477z"/> - <path fill="#941808" d="M228.74 312.28l.5.477-.5-.477z"/> - <path fill="#631808" d="M229.25 312.28l.5.477-.5-.477z"/> - <path fill="#8c3939" d="M229.75 312.28l.5.477-.5-.477z"/> - <path fill="#843129" d="M233.26 312.28l.5.477-.5-.477z"/> - <path fill="#6b5252" d="M235.76 312.28l.5.477-.5-.477z"/> - <path fill="#9c9494" d="M236.26 312.28l.5.477-.5-.477m18.55 0l.5.477-.5-.477z"/> - <path fill="#184a00" d="M255.32 312.28l.5.477-.5-.477z"/> - <path fill="#297b00" d="M259.83 312.28l.5.477-.5-.477z"/> - <path fill="#294221" d="M260.33 312.28l.5.477-.5-.477z"/> - <path fill="#bdbdbd" d="M260.83 312.28l.5.477-.5-.477z"/> - <path fill="#ada5a5" d="M268.85 312.28l.5.477-.5-.477z"/> - <path fill="#213918" d="M269.35 312.28l.5.477-.5-.477z"/> - <path fill="#103900" d="M274.37 312.28l.5.477-.5-.477z"/> - <path fill="#9c9494" d="M274.87 312.28l.5.477-.5-.477z"/> - <path fill="#ada5a5" d="M292.92 312.28l.5.477-.5-.477z"/> - <path fill="#736b6b" d="M293.42 312.28l.5.477-.5-.477z"/> - <path fill="#5a1008" d="M293.92 312.28l.5.477-.5-.477z"/> - <path fill="#842118" d="M295.92 312.28l.5.477-.5-.477z"/> - <path fill="#8c4a4a" d="M296.42 312.28l.5.477-.5-.477zm3.01 0l.5.477-.5-.477z"/> - <path fill="#631808" d="M299.93 312.28l.5.477-.5-.477z"/> - <path fill="#941808" d="M300.44 312.28l.5.477-.5-.477z"/> - <path fill="#ce2110" d="M300.94 312.28l.5.477-.5-.477z"/> - <path fill="#cecece" d="M305.95 312.28l-1.504 1.908 1.504-1.908z"/> - <path fill="#8c8c8c" d="M306.45 312.28l-2.507 3.34 2.507-3.34z"/> - <path fill="#ada5a5" d="M307.29 312.44l.334.16-.334-.16z"/> - <path fill="#dedede" d="M220.72 312.76l.5.477-.5-.477z"/> - <path fill="#cecece" d="M221.22 312.76l1.003 1.43-1.003-1.43z"/> - <path fill="#efefef" d="M222.23 312.76l.5.477-.5-.477z"/> - <path fill="#9c9494" d="M223.73 312.76l.5.477-.5-.477z"/> - <path fill="#52525a" d="M224.23 312.76l.5.477-.5-.477z"/> - <path fill="#941808" d="M224.73 312.76l.5.477-.5-.477z"/> - <path fill="#bd2110" d="M227.24 312.76l.5.477-.5-.477z"/> - <path fill="#5a1008" d="M227.74 312.76l.5.477-.5-.477z"/> - <path fill="#736b6b" d="M228.24 312.76l.5.477-.5-.477z"/> - <path fill="#bdbdbd" d="M228.74 312.76l.5.477-.5-.477z"/> - <path fill="#efefef" d="M254.81 312.76l.5.477-.5-.477z"/> - <path fill="#314231" d="M255.32 312.76l.5.477-.5-.477z"/> - <path fill="#297b00" d="M255.82 312.76l1.003.954-1.003-.954z"/> - <path fill="#185200" d="M259.33 312.76l.5.477-.5-.477z"/> - <path fill="#7b7373" d="M259.83 312.76l.5.477-.5-.477z"/> - <path fill="#efefef" d="M260.33 312.76l.5.477-.5-.477m9.024 0l.5.477-.5-.477z"/> - <path fill="#7b7373" d="M269.85 312.76l.5.477-.5-.477z"/> - <path fill="#294200" d="M270.36 312.76l.5.477-.5-.477z"/> - <path fill="#397b00" d="M273.86 312.76l-.5.954.5-.954z"/> - <path fill="#52525a" d="M274.37 312.76l.5.477-.5-.477z"/> - <path fill="#efefef" d="M274.87 312.76l.5.477-.5-.477z"/> - <path fill="#cecece" d="M300.44 312.76l.5.477-.5-.477z"/> - <path fill="#7b7373" d="M300.94 312.76l.5.477-.5-.477z"/> - <path fill="#631818" d="M301.44 312.76l.5.477-.5-.477z"/> - <path fill="#b51010" d="M301.94 312.76l.5.477-.5-.477m2.507 0l-.502.954.502-.954z"/> - <path fill="#292921" d="M304.95 312.76l.5.477-.5-.477z"/> - <path fill="#cecece" d="M306.95 312.76l.5.477-.5-.477m1.003 0l-1.504 1.908 1.503-1.908z"/> - <path fill="#bdbdbd" d="M221.73 313.24l.5.477-.5-.477z"/> - <path fill="#dedede" d="M222.73 313.24l.5.477-.5-.477z"/> - <path fill="#424242" d="M224.73 313.24l.5.477-.5-.477z"/> - <path fill="#ad1810" d="M225.24 313.24l.5.477-.5-.477m1.504 0l.5.477-.5-.477z"/> - <path fill="#63636b" d="M227.24 313.24l.5.477-.5-.477z"/> - <path fill="#efefef" d="M227.74 313.24l.5.477-.5-.477z"/> - <path fill="#63636b" d="M255.82 313.24l.5.477-.5-.477z"/> - <path fill="#296300" d="M258.32 313.24l.5.477-.5-.477z"/> - <path fill="#425242" d="M258.82 313.24l.5.477-.5-.477z"/> - <path fill="#bdbdbd" d="M259.33 313.24l.5.477-.5-.477z"/> - <path fill="#dedede" d="M270.36 313.24l.5.477-.5-.477z"/> - <path fill="#425242" d="M270.86 313.24l.5.477-.5-.477z"/> - <path fill="#295200" d="M271.36 313.24l.5.477-.5-.477z"/> - <path fill="#63636b" d="M273.86 313.24l.5.477-.5-.477z"/> - <path fill="#8c8c8c" d="M301.94 313.24l.5.477-.5-.477z"/> - <path fill="#941808" d="M302.44 313.24l.5.477-.5-.477z"/> - <path fill="#292921" d="M304.45 313.24l.5.477-.5-.477z"/> - <path fill="#cecece" d="M306.45 313.24l.5.477-.5-.477z"/> - <path fill="#ada5a5" d="M307.96 313.24l-1.003 1.43 1.003-1.43z"/> - <path fill="#cecece" d="M223.23 313.72l2.005 1.908-2.005-1.908z"/> - <path fill="#7b7373" d="M223.73 313.72l.5.477-.5-.477z"/> - <path fill="#292921" d="M225.24 313.72l.5.477-.5-.477z"/> - <path fill="#b51010" d="M225.74 313.72l.5.477-.5-.477z"/> - <path fill="#941808" d="M226.24 313.72l.5.477-.5-.477z"/> - <path fill="#8c8c8c" d="M226.74 313.72l.5.477-.5-.477m29.58 0l.5.477-.5-.477z"/> - <path fill="#185200" d="M256.82 313.72l.5.477-.5-.477z"/> - <path fill="#296300" d="M257.32 313.72l.5.477-.5-.477z"/> - <path fill="#395231" d="M257.82 313.72l.5.477-.5-.477z"/> - <path fill="#bdbdbd" d="M258.32 313.72l.5.477-.5-.477m13.035 0l.5.477-.5-.477z"/> - <path fill="#5a5231" d="M271.86 313.72l.5.477-.5-.477z"/> - <path fill="#397b00" d="M272.36 313.72l.5.477-.5-.477z"/> - <path fill="#295200" d="M272.86 313.72l.5.477-.5-.477z"/> - <path fill="#9c9494" d="M273.36 313.72l.5.477-.5-.477m29.077 0l.5.477-.5-.477z"/> - <path fill="#5a1008" d="M302.94 313.72l.5.477-.5-.477z"/> - <path fill="#ce2110" d="M303.44 313.72l.5.477-.5-.477z"/> - <path fill="#391810" d="M303.94 313.72l.5.477-.5-.477z"/> - <path fill="#cecece" d="M305.95 313.72l.5.477-.5-.477z"/> - <path fill="#7b7373" d="M224.23 314.19l.5.477-.5-.477z"/> - <path fill="#313931" d="M225.74 314.19l.5.477-.5-.477z"/> - <path fill="#9c9494" d="M226.24 314.19l.5.477-.5-.477z"/> - <path fill="#ada5a5" d="M256.82 314.19l.5.477-.5-.477z"/> - <path fill="#9c9494" d="M257.32 314.19l.5.477-.5-.477m15.04 0l.5.477-.5-.477z"/> - <path fill="#ada5a5" d="M272.86 314.19l.5.477-.5-.477z"/> - <path fill="#cecece" d="M302.94 314.19l1.003.954-1.003-.954z"/> - <path fill="#292921" d="M303.44 314.19l.5.477-.5-.477z"/> - <path fill="#bdbdbd" d="M303.94 314.19l.5.477-.5-.477m1.504 0l.5.477-.5-.477z"/> - <path fill="#8c8c8c" d="M222.73 314.67l.5.477-.5-.477z"/> - <path fill="#cecece" d="M223.23 314.67l2.005 1.908-2.005-1.908z"/> - <path fill="#7b7373" d="M224.73 314.67l.5.477-.5-.477z"/> - <path fill="#bdbdbd" d="M304.95 314.67l.5.477-.5-.477z"/> - <path fill="#dedede" d="M305.95 314.67l-.5.954.5-.954z"/> - <path fill="#7b7373" d="M306.45 314.67l-.5.954.5-.954m-83.22.477l.5.477-.5-.477z"/> - <path fill="#8c8c8c" d="M225.24 315.15l.5.477-.5-.477z"/> - <path fill="#bdbdbd" d="M304.45 315.15l.5.477-.5-.477z"/> - <path fill="#8c8c8c" d="M223.73 315.62l1.003.954-1.003-.954z"/> - <path fill="#efefef" d="M225.24 315.62l.5.477-.5-.477z"/> - <path fill="#dedede" d="M304.95 315.62l.5.477-.5-.477m-81.216.477l1.003.954-1.003-.953z"/> - <path fill="#efefef" d="M304.45 316.1l.5.477-.5-.477z"/> - <path fill="#dedede" d="M305.45 316.1l-.5.954.5-.954z"/> - <path opacity=".99" d="M248.23 228.22l.807-.215c.054.148.14.255.257.322.117.066.272.087.464.065.212-.025.367-.08.464-.167a.235.235 0 0 0 .08-.22.195.195 0 0 0-.076-.14c-.045-.033-.14-.057-.287-.072-.68-.062-1.115-.14-1.306-.234a.765.765 0 0 1-.453-.62.806.806 0 0 1 .236-.682c.19-.198.507-.323.952-.375.424-.05.747-.02.97.087.223.107.39.285.5.533l-.754.226a.468.468 0 0 0-.224-.243c-.1-.05-.234-.065-.405-.045-.216.025-.367.07-.453.14a.183.183 0 0 0-.073.168c.006.056.04.1.1.132.08.044.344.087.79.13.45.044.77.125.96.24.19.12.3.304.332.55.035.27-.054.517-.266.74-.212.22-.55.36-1.015.413-.42.05-.766.006-1.034-.128a1.156 1.156 0 0 1-.566-.607zm-3.635-.262c-.033-.26.002-.517.105-.775s.268-.465.497-.62c.23-.157.497-.253.8-.288.47-.055.872.046 1.208.3.337.255.533.603.59 1.045.057.446-.047.833-.313 1.163-.263.327-.625.517-1.083.57a1.895 1.895 0 0 1-.838-.088 1.33 1.33 0 0 1-.655-.467c-.165-.222-.27-.5-.312-.84zm.845-.056c.038.292.14.508.305.646.166.14.355.195.57.17a.695.695 0 0 0 .506-.295c.127-.172.17-.406.133-.702-.037-.288-.14-.5-.305-.64a.714.714 0 0 0-.566-.17.704.704 0 0 0-.51.295c-.125.173-.17.405-.132.697zm-2.55-1.604l-.092-.722.82-.095.092.723-.82.095zm.43 3.346l-.378-2.947.82-.095.377 2.947-.82.094zm-4.832-3.567l1.578-.183c.355-.042.63-.047.823-.017.26.04.49.14.69.3.203.158.368.363.494.613.127.248.215.562.264.943.043.335.036.63-.02.88-.07.31-.19.567-.366.773-.132.156-.32.288-.565.395-.183.08-.434.14-.753.176l-1.624.19-.522-4.07zm.952.588l.345 2.694.645-.076c.24-.028.413-.06.517-.1a.804.804 0 0 0 .325-.21c.083-.09.142-.23.177-.417.034-.19.03-.442-.01-.756s-.1-.552-.18-.713a.944.944 0 0 0-.295-.366.867.867 0 0 0-.424-.144c-.123-.012-.36.003-.712.044l-.388.045z" fill="#ecca5e"/> - <path fill-rule="evenodd" fill="#ecca5e" d="M250.007 239.54l12.19 15.242-.592.684-12.19-15.24zm31.367-1.163l-13.62 18.012-1.044-.36 13.62-18.013zm-34.514 4.173l14.425 13.357-.478.76-14.425-13.358zm-3.34 3.09l15.84 11.818-.39.804-15.84-11.82zm39.906-2.308l-14.278 13.498-.79-.467 14.278-13.5zm3.154 2.498l-15.987 11.635-.72-.56 15.987-11.637z"/> - <path fill-opacity=".564" fill="#7b5a00" d="M277 243.98l3.305-4.2-.4-.286L277 243.98z"/> - <path fill-opacity=".475" fill="#7b5a00" d="M269.5 253.88l3.305-4.2-.4-.286-2.905 4.486z"/> - <path fill-opacity=".68" fill="#7b5a00" d="M273.25 249.12l3.305-4.2-.4-.286-2.905 4.486z"/> - <path fill-opacity=".525" fill="#7b5a00" d="M280.97 249.63l4.627-2.855-.273-.4-4.354 3.255z"/> - <path fill-opacity=".398" fill="#7b5a00" d="M274.91 251.34l4.112-3.497-.334-.356-3.778 3.853z"/> - <path fill="#428c00" d="M235.93 286.02h-.5c-.095-2.733-1.16-4.483-4.012-5.247.07 1.455 1.116 7.136 3.51 5.247h.5l-1.002 4.293c1.497-1.58 7.68-7.142 5-9.593-2.293-2.097-3.47 4.253-3.496 5.3zm-3.83-34.13h-.5c-.095-2.733-1.16-4.483-4.012-5.247.07 1.455 1.116 7.136 3.51 5.247h.5l-1.002 4.293c1.497-1.58 7.68-7.142 5-9.593-2.293-2.097-3.47 4.253-3.496 5.3z"/> - <path opacity=".99" d="M297.13 230.59l-.76-.084.052-.433a1.256 1.256 0 0 1-.496.327 1.21 1.21 0 0 1-1.4-.445c-.22-.302-.3-.697-.24-1.186.06-.5.23-.866.51-1.098.28-.233.607-.33.985-.287.347.038.63.208.85.51l.178-1.466.82.09-.498 4.07zm-2-1.78c-.038.314-.02.547.054.698a.62.62 0 0 0 .516.366.63.63 0 0 0 .51-.174c.15-.14.245-.36.282-.664.042-.338.007-.59-.103-.75a.615.615 0 0 0-.466-.28.643.643 0 0 0-.518.167c-.148.132-.24.344-.276.637zm-3.3-.884l-.73-.21c.12-.276.288-.47.51-.585s.532-.15.935-.104c.365.04.633.112.802.215.168.103.28.22.338.357.058.134.066.37.025.71l-.12.91a3.04 3.04 0 0 0-.032.578c.012.125.045.262.1.41l-.81-.09a2.428 2.428 0 0 1-.052-.24c-.008-.047-.013-.078-.018-.094a1.367 1.367 0 0 1-1.007.283c-.318-.035-.56-.145-.724-.33a.793.793 0 0 1-.198-.655.805.805 0 0 1 .566-.69c.16-.055.386-.092.676-.112.392-.026.665-.06.82-.104l.01-.077c.02-.15-.007-.26-.077-.332-.07-.074-.213-.123-.43-.146a.61.61 0 0 0-.35.045.567.567 0 0 0-.234.264zm1.018.754c-.11.022-.28.043-.513.065-.234.02-.388.05-.463.086-.116.06-.18.147-.195.258-.013.11.018.21.094.298.077.09.18.14.313.155a.735.735 0 0 0 .44-.09.515.515 0 0 0 .228-.237c.03-.065.056-.19.08-.377l.018-.156zm-2.09-1.785l-.077.622-.56-.062-.145 1.19c-.03.24-.04.38-.037.422.007.04.027.075.06.105.037.03.082.05.137.055a1.08 1.08 0 0 0 .338-.04l-.004.614c-.2.058-.422.073-.663.046a1.079 1.079 0 0 1-.39-.113.592.592 0 0 1-.24-.213.702.702 0 0 1-.078-.318 3.463 3.463 0 0 1 .04-.552l.157-1.286-.376-.042.078-.62.375.04.072-.586.88-.364-.128 1.04.56.064zm-3.323 2.62l-.82-.09.36-2.95.762.086-.05.42c.153-.184.286-.3.396-.353a.7.7 0 0 1 .368-.055c.188.02.362.09.523.207l-.337.652a.731.731 0 0 0-.37-.17.466.466 0 0 0-.303.058c-.087.05-.163.152-.23.304-.063.153-.125.48-.187.98l-.11.912zm-2.2-1.194l.802.222c-.14.273-.333.472-.58.597-.243.122-.535.165-.875.127-.54-.06-.918-.27-1.135-.635-.172-.29-.232-.64-.182-1.05.06-.49.24-.856.543-1.102.302-.248.658-.35 1.07-.304.46.05.806.237 1.037.557.23.318.304.776.22 1.372l-2.055-.227c-.022.232.022.42.132.563.11.143.26.224.45.245a.528.528 0 0 0 .336-.064.622.622 0 0 0 .238-.3zm.144-.782c.02-.227-.02-.405-.122-.534a.57.57 0 0 0-.405-.225.593.593 0 0 0-.466.136c-.132.11-.21.273-.234.486l1.226.136zm-5.74 1.114l.5-4.07.82.09-.18 1.467c.286-.247.602-.35.95-.313.376.042.672.207.887.496.216.286.293.673.234 1.16-.06.503-.235.877-.52 1.12a1.225 1.225 0 0 1-1.477.125 1.25 1.25 0 0 1-.398-.424l-.053.434-.76-.085zm1.003-1.448c-.037.306-.014.537.07.694a.647.647 0 0 0 .527.374.6.6 0 0 0 .488-.168c.147-.134.24-.36.278-.676.04-.336.007-.586-.104-.748a.613.613 0 0 0-.465-.28.637.637 0 0 0-.517.165c-.148.13-.24.343-.277.64zm-2.218-2.08l.09-.722.82.09-.09.723-.82-.09zm-.41 3.348l.36-2.948.822.09-.36 2.95-.82-.092zm-3.62-.4l.494-4.038.862.096-.41 3.35 2.148.24-.084.684-3.01-.333z" fill="#ecca5e"/> - <path fill="#428c00" d="M226.99 261.39h-.5c-.095-2.733-1.16-4.483-4.012-5.247.07 1.455 1.116 7.137 3.51 5.247h.5l-1.002 4.293c1.497-1.58 7.68-7.142 5-9.593-2.293-2.097-3.47 4.253-3.496 5.3z"/> - <path d="M244.7 246.23c0 .366-.415.662-.928.662s-.93-.296-.93-.663c0-.367.417-.663.93-.663s.93.296.93.662zm3.13-3.31c0 .366-.415.662-.928.662s-.93-.296-.93-.663c0-.367.417-.663.93-.663s.93.296.93.662zm2.91-3.09c0 .366-.415.662-.928.662s-.93-.296-.93-.663c0-.367.417-.663.93-.663s.93.296.93.662zm30.88-1.22c0 .366-.415.662-.928.662s-.93-.296-.93-.663c0-.367.417-.663.93-.663s.93.296.93.662zm2.21 4.31c0 .366-.415.662-.928.662s-.93-.296-.93-.663c0-.367.417-.663.93-.663s.93.296.93.662zm3.25 2.76c0 .366-.415.662-.928.662s-.93-.296-.93-.663c0-.367.417-.663.93-.663s.93.296.93.662z" fill-rule="evenodd" fill="#fac349"/> - <path opacity=".99" d="M270.82 222.37l-.748-.135c.087-.287.234-.498.44-.634.208-.135.514-.2.92-.197.368.003.642.048.82.133.18.084.306.19.377.32.072.127.107.36.103.702l-.018.917c-.003.26.008.453.032.578.027.124.075.256.146.4l-.816-.008a3.164 3.164 0 0 1-.077-.233c-.013-.047-.023-.077-.028-.092-.143.13-.294.225-.456.29-.16.063-.333.094-.515.092-.32-.003-.573-.088-.757-.256a.808.808 0 0 1-.27-.63.803.803 0 0 1 .487-.747c.153-.07.373-.13.66-.178.386-.066.654-.127.803-.186v-.078c.003-.15-.036-.258-.114-.323-.078-.065-.226-.1-.443-.1a.596.596 0 0 0-.345.08.564.564 0 0 0-.202.285zm1.098.647a5.7 5.7 0 0 1-.504.116c-.23.044-.38.09-.45.133-.11.07-.164.163-.165.275-.002.11.04.206.126.287.085.08.194.122.327.123.15 0 .292-.044.428-.135.1-.07.168-.156.2-.26.022-.065.035-.193.036-.38l.002-.158zm-3.373-1.976l.007-.726.825.008-.007.727-.825-.01zm-.034 3.372l.03-2.968.826.008-.03 2.968-.825-.008zm-1.55-.014l-.825-.008.03-2.968.766.007-.003.42c.133-.198.252-.328.356-.39a.685.685 0 0 1 .36-.092c.188.002.368.053.542.153l-.263.683a.756.756 0 0 0-.386-.132.481.481 0 0 0-.295.09c-.08.06-.144.168-.193.326-.047.158-.073.49-.078.995l-.01.917zm-1.333-2.98l-.006.625-.563-.005-.012 1.196c-.002.243 0 .384.01.425a.18.18 0 0 0 .073.098.25.25 0 0 0 .14.04c.077 0 .188-.023.333-.072l.065.61c-.192.076-.41.113-.653.11-.15 0-.282-.025-.4-.072a.614.614 0 0 1-.264-.187.729.729 0 0 1-.11-.31 3.356 3.356 0 0 1-.022-.552l.013-1.294-.38-.002.006-.626.38.003.005-.59.834-.45-.01 1.047.563.005zm-4.168.867l-.75-.135c.088-.287.235-.498.442-.634.207-.136.513-.202.918-.198.37.003.642.048.822.133.18.085.304.19.375.32.074.128.108.362.105.703l-.018.916c-.003.26.008.453.032.578.027.124.075.256.146.4l-.816-.008a3.164 3.164 0 0 1-.077-.233c-.015-.047-.024-.078-.03-.093-.142.13-.294.226-.455.29-.16.064-.333.095-.515.093-.32-.003-.574-.088-.76-.256a.813.813 0 0 1-.268-.63.81.81 0 0 1 .13-.446.826.826 0 0 1 .356-.3c.153-.068.373-.128.66-.177.386-.066.654-.128.804-.186v-.077c.002-.15-.036-.26-.114-.323-.078-.066-.225-.1-.442-.1a.596.596 0 0 0-.345.08.564.564 0 0 0-.202.285zm1.097.647a5.79 5.79 0 0 1-.504.116c-.23.044-.38.09-.45.133-.11.072-.164.164-.165.276 0 .11.04.205.126.286.086.08.195.122.328.123.15 0 .29-.044.427-.136.1-.07.166-.156.2-.26.02-.066.033-.193.035-.38l.002-.158zm-5.743 1.373l.04-4.097 1.397.013c.53.006.874.03 1.034.072.246.063.45.2.616.408.164.206.245.473.24.8-.002.25-.05.46-.15.632a1.15 1.15 0 0 1-.37.402 1.299 1.299 0 0 1-.45.188 5.04 5.04 0 0 1-.904.05l-.567-.004-.016 1.546-.87-.008zm.904-3.396l-.012 1.162.476.004c.343.003.572-.016.688-.058a.552.552 0 0 0 .375-.517.517.517 0 0 0-.134-.37.61.61 0 0 0-.347-.184 4.37 4.37 0 0 0-.625-.033l-.42-.004zm1.722 78.86l-.57-.015a.817.817 0 0 1 .246-.52c.136-.124.355-.207.655-.25.274-.04.483-.038.626.004.143.04.25.106.318.193.07.086.126.256.166.508l.102.682c.03.194.063.335.097.425.034.088.087.18.157.278l-.605.088a2.738 2.738 0 0 1-.119-.23 1.011 1.011 0 0 1-.67.394c-.24.034-.437 0-.594-.103a.618.618 0 0 1-.28-.437.589.589 0 0 1 .266-.607c.105-.067.26-.137.466-.206.278-.093.47-.17.572-.23l-.01-.057c-.017-.112-.06-.187-.124-.226-.066-.04-.18-.047-.34-.024a.458.458 0 0 0-.246.1.415.415 0 0 0-.114.234zm.894.354a3.868 3.868 0 0 1-.358.143c-.164.06-.27.11-.317.15-.072.065-.1.14-.088.222a.29.29 0 0 0 .13.197c.073.05.16.068.258.054a.547.547 0 0 0 .3-.148.368.368 0 0 0 .114-.214c.008-.052 0-.148-.02-.288l-.02-.116zm-1.82-.242l-.585.19a.433.433 0 0 0-.182-.238.433.433 0 0 0-.293-.046.47.47 0 0 0-.342.204c-.074.113-.092.286-.055.52.042.262.117.44.226.534.11.095.243.13.398.108a.427.427 0 0 0 .27-.135c.065-.074.1-.19.105-.35l.617.012c-.02.272-.108.487-.264.647-.156.158-.383.26-.68.303-.34.05-.625-.014-.86-.187-.232-.175-.377-.44-.435-.8-.058-.364-.002-.66.168-.892.17-.232.426-.373.77-.423.282-.04.515-.014.7.078.184.09.332.25.442.474zm-3.407-.478l-.086-.54.613-.087.086.538-.613.09zm.4 2.5l-.352-2.202.612-.088.352 2.2-.613.09zm-1.24.18l-.485-3.04.612-.088.485 3.038-.613.09zm-2.75.396l-.486-3.038.613-.088.175 1.094a.879.879 0 0 1 .622-.404.95.95 0 0 1 .745.19c.216.168.352.433.41.796.06.376.012.68-.144.91a.889.889 0 0 1-.634.404.894.894 0 0 1-.407-.037.964.964 0 0 1-.377-.232l.052.323-.57.082zm.423-1.236c.037.228.102.39.195.49.13.14.283.196.46.17.134-.02.24-.09.317-.213.078-.123.1-.303.06-.54-.04-.25-.116-.425-.23-.522a.476.476 0 0 0-.395-.115.466.466 0 0 0-.34.217c-.08.122-.102.293-.067.514zm-1.6 1.406l-.053-.33a.84.84 0 0 1-.29.327.95.95 0 0 1-.416.164.893.893 0 0 1-.433-.036.6.6 0 0 1-.31-.235 1.164 1.164 0 0 1-.162-.476l-.222-1.393.612-.087.162 1.01c.05.31.09.5.123.566a.333.333 0 0 0 .15.147.502.502 0 0 0 .505-.094.417.417 0 0 0 .137-.227c.018-.086 0-.287-.05-.602l-.147-.928.612-.09.35 2.202-.567.082zm-4.616-1.584l.57-.083.052.324a.86.86 0 0 1 .661-.477c.27-.04.513.028.732.2.22.175.357.44.414.798.06.367.01.667-.146.9a.901.901 0 0 1-.638.403.832.832 0 0 1-.36-.02 1.252 1.252 0 0 1-.366-.203l.177 1.11-.61.087-.486-3.038zm.775.975c.038.25.12.425.24.528a.496.496 0 0 0 .406.122.45.45 0 0 0 .33-.213c.076-.123.095-.308.056-.555-.037-.23-.113-.395-.228-.493a.47.47 0 0 0-.39-.117.477.477 0 0 0-.345.22c-.082.123-.105.293-.07.508zm-1.66.69l.625.008a.949.949 0 0 1-.295.54c-.15.136-.353.222-.607.26-.402.057-.72-.026-.953-.248-.185-.178-.3-.42-.35-.725-.058-.365-.004-.665.164-.9.167-.236.404-.376.71-.42.345-.05.633.02.867.208.234.186.382.503.445.95l-1.533.223c.03.172.102.3.212.382a.49.49 0 0 0 .376.093.379.379 0 0 0 .23-.11.453.453 0 0 0 .11-.26zm-.06-.595c-.03-.168-.097-.29-.198-.363a.44.44 0 0 0-.34-.087.434.434 0 0 0-.308.187.518.518 0 0 0-.068.396l.914-.133zm-4.383 1.953l-.485-3.038 1.357-.197c.34-.05.592-.057.755-.024.164.03.303.11.418.235.116.126.188.28.216.46a.792.792 0 0 1-.122.595c-.117.168-.313.292-.587.37.153.058.28.127.386.206.107.08.255.226.447.44l.485.537-.77.11-.573-.593a4.425 4.425 0 0 0-.41-.396.535.535 0 0 0-.215-.1 1.181 1.181 0 0 0-.33.013l-.13.02.202 1.268-.645.093zm.365-1.847l.477-.068c.308-.045.5-.085.572-.12.073-.037.126-.088.16-.155s.044-.146.03-.238a.368.368 0 0 0-.127-.235.41.41 0 0 0-.26-.085c-.055 0-.212.02-.473.058l-.503.072.122.77zm47.779.318l-.542-.17a.846.846 0 0 1 .393-.43c.168-.082.403-.103.704-.063.273.036.472.095.597.175.126.08.208.17.248.272.04.102.044.28.006.532l-.107.68c-.03.194-.04.338-.035.434.007.094.03.197.068.31l-.607-.08a2.91 2.91 0 0 1-.033-.182l-.012-.07c-.12.082-.24.14-.368.172a1.01 1.01 0 0 1-.392.022c-.24-.032-.418-.12-.54-.26a.605.605 0 0 1-.135-.495.607.607 0 0 1 .438-.508c.122-.04.292-.063.51-.073a3.7 3.7 0 0 0 .617-.064l.01-.058c.015-.112-.002-.196-.053-.25-.05-.057-.157-.096-.32-.117a.457.457 0 0 0-.264.028.44.44 0 0 0-.18.194zm.75.583c-.08.014-.21.027-.386.04-.174.01-.29.03-.348.056-.088.043-.138.106-.15.19-.013.08.01.155.065.223.056.068.133.11.232.122.11.015.22-.006.33-.06a.382.382 0 0 0 .176-.175c.023-.048.045-.14.066-.28l.017-.117zm-2.056.805l-.613-.082.167-1.125c.035-.237.045-.392.03-.465a.32.32 0 0 0-.106-.18.354.354 0 0 0-.202-.088.514.514 0 0 0-.298.045.45.45 0 0 0-.207.197c-.044.086-.084.253-.12.5l-.147.998-.614-.082.325-2.204.57.076-.048.323a.964.964 0 0 1 .818-.27.929.929 0 0 1 .36.12c.106.06.18.13.227.21.048.08.076.166.084.26.01.095 0 .228-.024.398l-.202 1.37zm-3.908-2.083l-.542-.17c.094-.205.224-.35.392-.43.168-.082.402-.104.703-.064.273.038.472.096.597.177.124.078.207.17.247.272.04.1.043.278.006.53l-.107.68c-.03.195-.04.34-.035.435.007.093.03.197.068.31l-.607-.082c-.01-.04-.023-.1-.035-.18-.005-.036-.01-.06-.01-.07-.12.082-.243.14-.37.172a.99.99 0 0 1-.392.02c-.24-.03-.418-.117-.537-.26a.59.59 0 0 1-.137-.493.605.605 0 0 1 .437-.51c.12-.037.29-.06.508-.07.294-.014.5-.035.617-.065l.01-.058c.016-.113-.002-.196-.053-.25-.052-.057-.158-.096-.32-.118a.445.445 0 0 0-.264.03.416.416 0 0 0-.18.193zm.75.582c-.082.014-.21.028-.386.04-.175.012-.292.03-.35.057-.087.043-.137.106-.15.19-.01.08.01.156.066.224.055.068.132.11.23.122a.56.56 0 0 0 .333-.062c.08-.043.14-.1.174-.173.023-.048.045-.142.065-.28l.016-.118zm-1.67-.726l-.62.024a.409.409 0 0 0-.1-.278.43.43 0 0 0-.267-.125.483.483 0 0 0-.39.104c-.105.087-.175.25-.21.484-.038.262-.02.453.056.573.077.12.194.192.35.213a.44.44 0 0 0 .3-.056c.082-.054.15-.155.204-.305l.588.178c-.102.255-.25.437-.448.548-.197.11-.445.146-.743.106-.34-.045-.594-.183-.767-.413-.17-.23-.23-.525-.176-.884.053-.364.196-.634.428-.81.232-.175.52-.24.865-.195.282.04.498.127.647.265.15.138.244.33.282.576zm-3.122-1.385l.08-.54.613.082-.08.54-.613-.082zm-.37 2.504l.326-2.206.613.082-.324 2.204-.615-.08zm-.62-.084l-.614-.082.166-1.126c.035-.238.045-.393.03-.466a.324.324 0 0 0-.106-.18.367.367 0 0 0-.203-.087.514.514 0 0 0-.298.045.442.442 0 0 0-.208.197c-.044.087-.084.253-.12.5l-.148 1-.613-.083.326-2.205.57.075-.048.324a.966.966 0 0 1 .82-.273.958.958 0 0 1 .36.12c.104.06.18.13.226.21a.6.6 0 0 1 .084.26c.01.096.002.228-.023.398l-.202 1.37zm-2.98-2.95l.08-.54.612.08-.08.54-.613-.08zm-.37 2.503l.325-2.206.613.082-.325 2.205-.613-.08zm-3.694-2.742l.565.076-.044.3c.238-.206.496-.29.775-.254.15.02.273.066.374.14.1.07.176.17.228.298.12-.104.242-.177.368-.22a.872.872 0 0 1 .39-.037c.17.024.31.077.418.16a.59.59 0 0 1 .22.322c.03.1.028.256-.003.466l-.206 1.41-.613-.082.186-1.26c.032-.22.032-.363 0-.432-.045-.09-.126-.144-.244-.16a.441.441 0 0 0-.45.24c-.048.09-.087.24-.117.45l-.156 1.057-.614-.08.178-1.21c.032-.213.042-.353.03-.418a.264.264 0 0 0-.083-.153.325.325 0 0 0-.178-.072.464.464 0 0 0-.266.04.412.412 0 0 0-.194.187c-.046.087-.084.237-.115.448l-.158 1.072-.614-.082.325-2.205zm-2.983.694c.03-.193.107-.374.234-.542a1.04 1.04 0 0 1 .487-.358c.2-.072.412-.092.64-.062.35.047.62.194.813.44.192.247.264.536.215.866a1.14 1.14 0 0 1-.463.785c-.257.19-.558.26-.9.215-.214-.028-.41-.1-.59-.218a.966.966 0 0 1-.38-.46 1.299 1.299 0 0 1-.055-.665zm.624.115c-.03.22 0 .394.09.525.093.13.22.206.378.228a.55.55 0 0 0 .428-.12c.126-.103.205-.264.238-.486.032-.216.002-.39-.09-.52a.525.525 0 0 0-.376-.228.557.557 0 0 0-.43.12c-.125.103-.205.262-.237.48zm-3.424-2.436l1.18.16c.266.034.466.08.6.138.18.078.327.192.44.345.115.152.193.33.234.535.04.203.04.447 0 .732-.038.25-.102.462-.195.634-.112.21-.253.375-.422.492-.127.09-.29.15-.49.183-.148.022-.342.02-.58-.013l-1.215-.162.448-3.044zm.57.602l-.297 2.016.48.064c.18.024.313.032.396.024a.636.636 0 0 0 .278-.092.63.63 0 0 0 .213-.27c.064-.132.114-.315.148-.55.035-.236.04-.42.014-.55a.69.69 0 0 0-.14-.32.625.625 0 0 0-.278-.183 3.363 3.363 0 0 0-.526-.1l-.29-.038z" fill="#ecca5e"/> - </g> -</svg> diff --git a/img/flags/1x1/dz.svg b/img/flags/1x1/dz.svg deleted file mode 100644 index d2d436a..0000000 --- a/img/flags/1x1/dz.svg +++ /dev/null @@ -1,5 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" height="512" width="512" viewBox="0 0 512 512"> - <path fill="#fff" d="M256 0h256v512H256z"/> - <path fill="#006233" d="M0 0h256v512H0z"/> - <path d="M366.933 192a128 128 0 1 0 0 128 102.4 102.4 0 1 1 0-128m4.267 64L256 218.453l71.68 98.134V195.413L256 293.547z" fill="#d21034"/> -</svg> diff --git a/img/flags/1x1/ec.svg b/img/flags/1x1/ec.svg deleted file mode 100644 index 715c301..0000000 --- a/img/flags/1x1/ec.svg +++ /dev/null @@ -1,143 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" height="512" width="512" viewBox="0 0 512 512"> - <g fill-rule="evenodd" stroke-width="1pt"> - <path fill="#ffe800" d="M0 0h511.993v511.984H0z"/> - <path fill="#00148e" d="M0 255.992h511.993v255.992H0z"/> - <path fill="#da0010" d="M0 383.993h511.993v128H0z"/> - </g> - <g fill-rule="evenodd"> - <path d="M213.47 244.16l-54.66 57.728-.964-1.24 54.662-57.728.963 1.24zm38.082 9.434L180.018 329l-1.254-1.186 71.533-75.407 1.255 1.187z"/> - <path d="M478.35 60.236v88.583l17.717 88.582 17.717-88.583V60.235H478.35z" transform="matrix(-.052 -.05 -.067 .068 210.06 348.857)" stroke="#000" stroke-width="4.104" fill="gray"/> - <path d="M478.35 60.236v88.583l17.717 88.582 17.717-88.583V60.235H478.35z" transform="matrix(-.052 -.05 -.067 .068 191.615 319.402)" stroke="#000" stroke-width="4.104" fill="gray"/> - </g> - <path d="M301.18 272.84s-17.716 336.61 53.15 336.61 106.3-35.433 106.3-35.433l-.86-185.03-158.59-116.15z" fill-rule="evenodd" transform="matrix(.34 0 0 .486 64.646 -20.46)" stroke="#000" stroke-width="1pt" fill="#ffdf00"/> - <path d="M344.46 304.2c0 17.717-7.846 269.82 27.587 269.82s88.583-17.717 88.583-17.717l-.86-167.31-115.31-84.79z" fill-rule="evenodd" transform="matrix(.34 0 0 .486 64.646 -20.46)" stroke="#000" stroke-width="1pt" fill="#0000c4"/> - <path d="M367.52 321.16c0 17.717 4.525 217.42 39.958 217.42h53.15l-.86-149.59-92.248-67.833z" fill-rule="evenodd" transform="matrix(.34 0 0 .486 64.646 -20.46)" stroke="#000" stroke-width="1pt" fill="#e10000"/> - <path d="M165.66 112.217l54.66 57.728.965-1.24-54.662-57.728-.964 1.24z" fill-rule="evenodd"/> - <path d="M301.18 272.84s-35.433 336.61 70.866 336.61c88.583 0 88.583-53.15 106.3-53.15l-17.72-124.02-159.45-159.44z" fill-rule="evenodd" stroke="#000" stroke-width="1pt" fill="#ffdf00" transform="matrix(.44 0 0 .465 17.296 16.967)"/> - <g stroke="#000"> - <path d="M269.59 155.24c1.133 0 28.318-94.016 118.94-147.25" transform="matrix(.29 -.02 -.038 .265 112.022 135.874)" stroke-width="2.305" fill="none"/> - <path d="M421.37-20.327c0 18.133-4.567 31.716-11.328 45.31-5.627-18.125-9.06-27.177-9.06-45.31s6.83-35.114 12.458-48.707c2.23 12.46 7.93 30.574 7.93 48.707z" fill-rule="evenodd" transform="matrix(.105 -.166 .22 .105 142.767 218.893)" stroke-width="1pt" fill="#005b00"/> - <path d="M454.22-169.28c0 4.066-3.804 7.363-8.495 7.363s-8.496-3.297-8.496-7.363 3.803-7.363 8.495-7.363 8.495 3.297 8.495 7.363z" fill-rule="evenodd" transform="matrix(.137 -.076 .067 .132 144.082 218.38)" stroke-width="1pt" fill="red"/> - <path d="M421.37-20.327c0 18.133-4.567 31.716-11.328 45.31-5.627-18.125-9.06-27.177-9.06-45.31s6.83-35.114 12.458-48.707c2.23 12.46 7.93 30.574 7.93 48.707z" fill-rule="evenodd" transform="matrix(.133 .09 -.096 .25 146.638 97.413)" stroke-width="1pt" fill="#005b00"/> - <path d="M421.37-20.327c0 18.133-4.567 31.716-11.328 45.31-5.627-18.125-9.06-27.177-9.06-45.31s6.83-35.114 12.458-48.707c2.23 12.46 7.93 30.574 7.93 48.707z" fill-rule="evenodd" transform="matrix(.132 -.023 -.023 .245 145.367 144.856)" stroke-width="1pt" fill="#005b00"/> - <path d="M421.37-20.327c0 18.133-4.567 31.716-11.328 45.31-5.627-18.125-9.06-27.177-9.06-45.31s6.83-35.114 12.458-48.707c2.23 12.46 7.93 30.574 7.93 48.707z" fill-rule="evenodd" transform="matrix(.048 .19 -.13 .146 182.098 58.956)" stroke-width="1pt" fill="#005b00"/> - <path d="M421.37-20.327c0 18.133-4.567 31.716-11.328 45.31-5.627-18.125-9.06-27.177-9.06-45.31s6.83-35.114 12.458-48.707c2.23 12.46 7.93 30.574 7.93 48.707z" fill-rule="evenodd" transform="matrix(.156 -.14 .14 .178 123.442 206.61)" stroke-width="1pt" fill="#005b00"/> - <path d="M421.37-20.327c0 18.133-4.567 31.716-11.328 45.31-5.627-18.125-9.06-27.177-9.06-45.31s6.83-35.114 12.458-48.707c2.23 12.46 7.93 30.574 7.93 48.707z" fill-rule="evenodd" transform="matrix(.164 -.17 .19 .153 112.346 237.575)" stroke-width="1pt" fill="#005b00"/> - <path d="M421.37-20.327c0 18.133-4.567 31.716-11.328 45.31-5.627-18.125-9.06-27.177-9.06-45.31s6.83-35.114 12.458-48.707c2.23 12.46 7.93 30.574 7.93 48.707z" fill-rule="evenodd" transform="matrix(.194 .072 -.145 .24 108.735 136.094)" stroke-width="1pt" fill="#005b00"/> - <path d="M421.37-20.327c0 18.133-4.567 31.716-11.328 45.31-5.627-18.125-9.06-27.177-9.06-45.31s6.83-35.114 12.458-48.707c2.23 12.46 7.93 30.574 7.93 48.707z" fill-rule="evenodd" transform="matrix(.114 .158 -.242 .167 144.75 102.653)" stroke-width="1pt" fill="#005b00"/> - <path d="M421.37-20.327c0 18.133-4.567 31.716-11.328 45.31-5.627-18.125-9.06-27.177-9.06-45.31s6.83-35.114 12.458-48.707c2.23 12.46 7.93 30.574 7.93 48.707z" fill-rule="evenodd" transform="matrix(.06 .066 -.102 .123 199.228 102.117)" stroke-width="1pt" fill="#005b00"/> - <path d="M421.37-20.327c0 18.133-4.567 31.716-11.328 45.31-5.627-18.125-9.06-27.177-9.06-45.31s6.83-35.114 12.458-48.707c2.23 12.46 7.93 30.574 7.93 48.707z" fill-rule="evenodd" transform="matrix(.08 .004 -.06 .13 189.73 127.605)" stroke-width="1pt" fill="#005b00"/> - <path d="M421.37-20.327c0 18.133-4.567 31.716-11.328 45.31-5.627-18.125-9.06-27.177-9.06-45.31s6.83-35.114 12.458-48.707c2.23 12.46 7.93 30.574 7.93 48.707z" fill-rule="evenodd" transform="matrix(-.007 .11 -.103 .062 226.927 85.88)" stroke-width="1pt" fill="#005b00"/> - <path d="M421.37-20.327c0 18.133-4.567 31.716-11.328 45.31-5.627-18.125-9.06-27.177-9.06-45.31s6.83-35.114 12.458-48.707c2.23 12.46 7.93 30.574 7.93 48.707z" fill-rule="evenodd" transform="matrix(.05 .087 -.19 .115 176.592 111.9)" stroke-width="1pt" fill="#005b00"/> - <path d="M421.37-20.327c0 18.133-4.567 31.716-11.328 45.31-5.627-18.125-9.06-27.177-9.06-45.31s6.83-35.114 12.458-48.707c2.23 12.46 7.93 30.574 7.93 48.707z" fill-rule="evenodd" transform="matrix(.098 .168 -.252 .15 166.287 77.567)" stroke-width="1pt" fill="#005b00"/> - <path d="M269.59 155.24c1.133 0 28.318-94.016 118.94-147.25" transform="matrix(.266 -.148 .107 .21 94.38 196.598)" stroke-width="2.37" fill="none"/> - <path d="M454.22-169.28c0 4.066-3.804 7.363-8.495 7.363s-8.496-3.297-8.496-7.363 3.803-7.363 8.495-7.363 8.495 3.297 8.495 7.363z" fill-rule="evenodd" transform="matrix(.137 -.076 .067 .132 161.236 194.184)" stroke-width="1pt" fill="red"/> - <path d="M454.22-169.28c0 4.066-3.804 7.363-8.495 7.363s-8.496-3.297-8.496-7.363 3.803-7.363 8.495-7.363 8.495 3.297 8.495 7.363z" fill-rule="evenodd" transform="matrix(.137 -.076 .067 .132 169.374 189.382)" stroke-width="1pt" fill="red"/> - <path d="M454.22-169.28c0 4.066-3.804 7.363-8.495 7.363s-8.496-3.297-8.496-7.363 3.803-7.363 8.495-7.363 8.495 3.297 8.495 7.363z" fill-rule="evenodd" transform="matrix(.14 -.08 .05 .1 135.93 200.28)" stroke-width="1pt" fill="red"/> - <path d="M454.22-169.28c0 4.066-3.804 7.363-8.495 7.363s-8.496-3.297-8.496-7.363 3.803-7.363 8.495-7.363 8.495 3.297 8.495 7.363z" fill-rule="evenodd" transform="matrix(.14 -.08 .05 .1 138.282 199.258)" stroke-width="1pt" fill="red"/> - <path d="M454.22-169.28c0 4.066-3.804 7.363-8.495 7.363s-8.496-3.297-8.496-7.363 3.803-7.363 8.495-7.363 8.495 3.297 8.495 7.363z" fill-rule="evenodd" transform="matrix(.14 -.08 .05 .1 136.93 201.448)" stroke-width="1pt" fill="red"/> - <path d="M454.22-169.28c0 4.066-3.804 7.363-8.495 7.363s-8.496-3.297-8.496-7.363 3.803-7.363 8.495-7.363 8.495 3.297 8.495 7.363z" fill-rule="evenodd" transform="matrix(.152 -.084 .074 .147 144.922 210.722)" stroke-width="1pt" fill="red"/> - <path d="M454.22-169.28c0 4.066-3.804 7.363-8.495 7.363s-8.496-3.297-8.496-7.363 3.803-7.363 8.495-7.363 8.495 3.297 8.495 7.363z" fill-rule="evenodd" transform="matrix(.152 -.084 .074 .147 146.656 208.927)" stroke-width="1pt" fill="red"/> - <path d="M454.22-169.28c0 4.066-3.804 7.363-8.495 7.363s-8.496-3.297-8.496-7.363 3.803-7.363 8.495-7.363 8.495 3.297 8.495 7.363z" fill-rule="evenodd" transform="matrix(.152 -.084 .074 .147 147.092 209.79)" stroke-width="1pt" fill="red"/> - </g> - <path d="M336.61 308.27c0 17.717-35.433 212.6 53.15 265.75 35.433 17.716 88.582-17.717 88.582 0l-17.71-141.74-124.02-124.01z" fill-rule="evenodd" transform="matrix(.44 0 0 .465 17.296 16.967)" stroke="#000" stroke-width="1pt" fill="#0000c4"/> - <path d="M372.05 343.7c0 17.717-17.716 159.45 35.433 194.88 35.433 35.433 124.02 25.822 124.02 25.822l-70.87-132.12-88.58-88.58z" fill-rule="evenodd" stroke="#000" stroke-width="1pt" fill="#e10000" transform="matrix(.44 0 0 .465 17.296 16.967)"/> - <path d="M148.788 143.962l71.534 75.408 1.255-1.187-71.534-75.407-1.255 1.186z" fill-rule="evenodd"/> - <path d="M460.63 184.25l17.716 35.433V237.4c-.865-1.305 0 17.716-17.716 17.716-17.717 0-17.717-35.433-17.717-35.433s-17.716 35.433-17.716 70.866 17.716 53.15 17.716 53.15-2.61-36.704 17.717-35.434c20.328 1.27 17.716 17.716 17.716 17.716v35.433h17.717v-141.73l17.717-35.433-27.136-53.15-26.014 53.15z" fill-rule="evenodd" transform="matrix(.102 -.107 .08 .082 75.203 169.68)" stroke="#000" stroke-width="1pt" fill="#cececc"/> - <path d="M557.82 95.67l-26.323 70.865 17.717 53.15-35.433-17.716 35.434 53.148v35.433h17.716v-35.43l35.433-53.15-35.433 17.717 17.717-53.15L557.82 95.67z" fill-rule="evenodd" transform="matrix(.08 -.12 .105 .07 96.06 163.395)" stroke="#000" stroke-width="1pt" fill="#cececc"/> - <path d="M422.53 136.96c0 2.068-1.958 3.746-4.37 3.746-2.413 0-4.372-1.678-4.372-3.746s1.96-3.747 4.37-3.747c2.414 0 4.372 1.68 4.372 3.747zm-6.244 7.91c0 35.8 20.917 187.81 22.582 191.56.14 4.44-4.718 6.382-7.077.832-6.55-17.342-20.743-159.91-21.332-193.22-.244-13.734 3.76-14.8 8.326-14.57 3.76.21 8.325 3.725 8.325 7.91 0 4.995-5.83 8.74-10.824 7.492z" fill-rule="evenodd" transform="matrix(.303 0 0 .234 43.048 77.33)" stroke="#000" stroke-width="1pt" fill="#e10000"/> - <path d="M422.53 136.96c0 2.068-1.958 3.746-4.37 3.746-2.413 0-4.372-1.678-4.372-3.746s1.96-3.747 4.37-3.747c2.414 0 4.372 1.68 4.372 3.747zm-6.244 7.91c31.488 61.414 48.722 166.77 50.387 170.52.14 4.44-4.718 6.382-7.077.832-2.48-3.315-12.667-100.18-49.138-172.18-.244-13.734 3.76-14.8 8.326-14.57 3.76.21 8.325 3.725 8.325 7.91 0 4.995-5.83 8.74-10.824 7.492z" fill-rule="evenodd" transform="matrix(.285 .07 -.114 .22 67.428 53.448)" stroke="#000" stroke-width="1pt" fill="#0000c4"/> - <path d="M422.53 136.96c0 2.068-1.958 3.746-4.37 3.746-2.413 0-4.372-1.678-4.372-3.746s1.96-3.747 4.37-3.747c2.414 0 4.372 1.68 4.372 3.747zm-6.244 7.91c0 35.8 20.917 187.81 22.582 191.56.14 4.44-4.718 6.382-7.077.832-6.55-17.342-20.743-159.91-21.332-193.22-.244-13.734 3.76-14.8 8.326-14.57 3.76.21 8.325 3.725 8.325 7.91 0 4.995-5.83 8.74-10.824 7.492z" fill-rule="evenodd" transform="matrix(.387 0 0 .38 -8.547 87.337)" stroke="#000" stroke-width="1pt" fill="#e10000"/> - <path d="M422.53 136.96c0 2.068-1.958 3.746-4.37 3.746-2.413 0-4.372-1.678-4.372-3.746s1.96-3.747 4.37-3.747c2.414 0 4.372 1.68 4.372 3.747zm-6.244 7.91c31.488 61.414 48.722 166.77 50.387 170.52.14 4.44-4.718 6.382-7.077.832-2.48-3.315-12.667-100.18-49.138-172.18-.244-13.734 3.76-14.8 8.326-14.57 3.76.21 8.325 3.725 8.325 7.91 0 4.995-5.83 8.74-10.824 7.492z" fill-rule="evenodd" transform="matrix(.365 .112 -.145 .36 22.607 48.482)" stroke="#000" stroke-width="1pt" fill="#0000c4"/> - <g fill-rule="evenodd"> - <path d="M289.63 244.16l54.663 57.728.963-1.24-54.66-57.728-.965 1.24zm-38.08 9.434L323.086 329l1.254-1.186-71.535-75.407-1.254 1.187z"/> - <path d="M478.35 60.236v88.583l17.717 88.582 17.717-88.583V60.235H478.35z" transform="matrix(.052 -.05 .067 .068 293.042 348.857)" stroke="#000" stroke-width="4.104" fill="gray"/> - <path d="M478.35 60.236v88.583l17.717 88.582 17.717-88.583V60.235H478.35z" transform="matrix(.052 -.05 .067 .068 311.488 319.402)" stroke="#000" stroke-width="4.104" fill="gray"/> - </g> - <g fill-rule="evenodd" stroke-width="1pt"> - <path d="M301.18 272.84s-17.716 336.61 53.15 336.61 106.3-35.433 106.3-35.433l-.86-185.03-158.59-116.15z" transform="matrix(-.34 0 0 .486 438.465 -20.46)" stroke="#000" fill="#ffdf00"/> - <path d="M344.46 304.2c0 17.717-7.846 269.82 27.587 269.82s88.583-17.717 88.583-17.717l-.86-167.31-115.31-84.79z" transform="matrix(-.34 0 0 .486 438.465 -20.46)" stroke="#000" fill="#0000c4"/> - <path d="M367.52 321.16c0 17.717 4.525 217.42 39.958 217.42h53.15l-.86-149.59-92.248-67.833z" transform="matrix(-.34 0 0 .486 438.465 -20.46)" stroke="#000" fill="#e10000"/> - <path d="M337.452 112.217l-54.662 57.728-.963-1.24 54.662-57.728.962 1.24z"/> - <g stroke="#000" fill="#005b00"> - <path d="M428.17-16.928s81.556 90.618 111.01 154.05c29.45 63.432 54.37 156.32 54.37 156.32s2.266-86.086-36.246-163.11c-52.1-97.42-131.4-142.73-129.13-147.26z" transform="matrix(.124 -.056 .06 .266 243.637 183.89)"/> - <path d="M428.17-16.928s81.556 90.618 111.01 154.05c29.45 63.432 54.37 156.32 54.37 156.32s2.266-86.086-36.246-163.11c-52.1-97.42-131.4-142.73-129.13-147.26z" transform="matrix(.148 -.04 .052 .294 230.03 162.45)"/> - <path d="M428.17-16.928s81.556 90.618 111.01 154.05c29.45 63.432 54.37 156.32 54.37 156.32s2.266-86.086-36.246-163.11c-52.1-97.42-131.4-142.73-129.13-147.26z" transform="matrix(.175 .107 -.022 .3 233.795 77.035)"/> - <path d="M428.17-16.928s81.556 90.618 111.01 154.05c29.45 63.432 54.37 156.32 54.37 156.32s2.266-86.086-36.246-163.11c-52.1-97.42-131.4-142.73-129.13-147.26z" transform="matrix(.186 .023 .012 .333 217.135 111.378)"/> - <path d="M428.17-16.928s81.556 90.618 111.01 154.05c29.45 63.432 54.37 156.32 54.37 156.32s2.266-86.086-36.246-163.11c-52.1-97.42-131.4-142.73-129.13-147.26z" transform="matrix(.136 .126 -.028 .268 259.09 75.2)"/> - <path d="M428.17-16.928s81.556 90.618 111.01 154.05c29.45 63.432 54.37 156.32 54.37 156.32s2.266-86.086-36.246-163.11c-52.1-97.42-131.4-142.73-129.13-147.26z" transform="matrix(.17 0 .026 .304 221.8 131.72)"/> - <path d="M428.17-16.928s81.556 90.618 111.01 154.05c29.45 63.432 54.37 156.32 54.37 156.32s2.266-86.086-36.246-163.11c-52.1-97.42-131.4-142.73-129.13-147.26z" transform="matrix(.15 -.054 .05 .29 229.01 173.214)"/> - <path d="M428.17-16.928s81.556 90.618 111.01 154.05c29.45 63.432 54.37 156.32 54.37 156.32s2.266-86.086-36.246-163.11c-52.1-97.42-131.4-142.73-129.13-147.26z" transform="matrix(.15 -.025 .038 .298 230.934 150.527)"/> - <path d="M428.17-16.928s81.556 90.618 111.01 154.05c29.45 63.432 54.37 156.32 54.37 156.32s2.266-86.086-36.246-163.11c-52.1-97.42-131.4-142.73-129.13-147.26z" transform="matrix(.168 .115 -.038 .285 240.29 74.095)"/> - <path d="M428.17-16.928s81.556 90.618 111.01 154.05c29.45 63.432 54.37 156.32 54.37 156.32s2.266-86.086-36.246-163.11c-52.1-97.42-131.4-142.73-129.13-147.26z" transform="matrix(.184 .04 -.004 .333 220.513 98.363)"/> - <path d="M428.17-16.928s81.556 90.618 111.01 154.05c29.45 63.432 54.37 156.32 54.37 156.32s2.266-86.086-36.246-163.11c-52.1-97.42-131.4-142.73-129.13-147.26z" transform="matrix(.128 .128 -.043 .25 265.86 77.48)"/> - <path d="M428.17-16.928s81.556 90.618 111.01 154.05c29.45 63.432 54.37 156.32 54.37 156.32s2.266-86.086-36.246-163.11c-52.1-97.42-131.4-142.73-129.13-147.26z" transform="matrix(.18 .01 .006 .31 218.663 121.27)"/> - </g> - <path d="M301.18 272.84s-35.433 336.61 70.866 336.61c88.583 0 88.583-53.15 106.3-53.15l-17.72-124.02-159.45-159.44z" transform="matrix(-.44 0 0 .465 485.82 16.967)" stroke="#000" fill="#ffdf00"/> - <path d="M336.61 308.27c0 17.717-35.433 212.6 53.15 265.75 35.433 17.716 88.582-17.717 88.582 0l-17.71-141.74-124.02-124.01z" transform="matrix(-.44 0 0 .465 485.82 16.967)" stroke="#000" fill="#0000c4"/> - <path d="M372.05 343.7c0 17.717-17.716 159.45 35.433 194.88 35.433 35.433 124.02 25.822 124.02 25.822l-70.87-132.12-88.58-88.58z" transform="matrix(-.44 0 0 .465 485.82 16.967)" stroke="#000" fill="#e10000"/> - <path d="M354.328 143.963l-71.534 75.407-1.254-1.187 71.533-75.407 1.255 1.186z"/> - <path d="M460.63 184.25l17.716 35.433V237.4c-.865-1.305 0 17.716-17.716 17.716-17.717 0-17.717-35.433-17.717-35.433s-17.716 35.433-17.716 70.866 17.716 53.15 17.716 53.15-2.61-36.704 17.717-35.434c20.328 1.27 17.716 17.716 17.716 17.716v35.433h17.717v-141.73l17.717-35.433-27.136-53.15-26.014 53.15z" transform="matrix(-.102 -.107 -.08 .082 427.91 169.68)" stroke="#000" fill="#cececc"/> - <path d="M557.82 95.67l-26.323 70.865 17.717 53.15-35.433-17.716 35.434 53.148v35.433h17.716v-35.43l35.433-53.15-35.433 17.717 17.717-53.15L557.82 95.67z" transform="matrix(-.08 -.12 -.105 .07 407.057 163.395)" stroke="#000" fill="#cececc"/> - <path d="M422.53 136.96c0 2.068-1.958 3.746-4.37 3.746-2.413 0-4.372-1.678-4.372-3.746s1.96-3.747 4.37-3.747c2.414 0 4.372 1.68 4.372 3.747zm-6.244 7.91c0 35.8 20.917 187.81 22.582 191.56.14 4.44-4.718 6.382-7.077.832-6.55-17.342-20.743-159.91-21.332-193.22-.244-13.734 3.76-14.8 8.326-14.57 3.76.21 8.325 3.725 8.325 7.91 0 4.995-5.83 8.74-10.824 7.492z" transform="matrix(-.303 0 0 .234 460.08 77.33)" stroke="#000" fill="#e10000"/> - <path d="M422.53 136.96c0 2.068-1.958 3.746-4.37 3.746-2.413 0-4.372-1.678-4.372-3.746s1.96-3.747 4.37-3.747c2.414 0 4.372 1.68 4.372 3.747zm-6.244 7.91c31.488 61.414 48.722 166.77 50.387 170.52.14 4.44-4.718 6.382-7.077.832-2.48-3.315-12.667-100.18-49.138-172.18-.244-13.734 3.76-14.8 8.326-14.57 3.76.21 8.325 3.725 8.325 7.91 0 4.995-5.83 8.74-10.824 7.492z" transform="matrix(-.285 .07 .114 .22 435.684 53.448)" stroke="#000" fill="#0000c4"/> - <path d="M422.53 136.96c0 2.068-1.958 3.746-4.37 3.746-2.413 0-4.372-1.678-4.372-3.746s1.96-3.747 4.37-3.747c2.414 0 4.372 1.68 4.372 3.747zm-6.244 7.91c0 35.8 20.917 187.81 22.582 191.56.14 4.44-4.718 6.382-7.077.832-6.55-17.342-20.743-159.91-21.332-193.22-.244-13.734 3.76-14.8 8.326-14.57 3.76.21 8.325 3.725 8.325 7.91 0 4.995-5.83 8.74-10.824 7.492z" transform="matrix(-.387 0 0 .38 511.648 87.337)" stroke="#000" fill="#e10000"/> - <path d="M422.53 136.96c0 2.068-1.958 3.746-4.37 3.746-2.413 0-4.372-1.678-4.372-3.746s1.96-3.747 4.37-3.747c2.414 0 4.372 1.68 4.372 3.747zm-6.244 7.91c31.488 61.414 48.722 166.77 50.387 170.52.14 4.44-4.718 6.382-7.077.832-2.48-3.315-12.667-100.18-49.138-172.18-.244-13.734 3.76-14.8 8.326-14.57 3.76.21 8.325 3.725 8.325 7.91 0 4.995-5.83 8.74-10.824 7.492z" transform="matrix(-.365 .112 .145 .36 480.487 48.482)" stroke="#000" fill="#0000c4"/> - </g> - <g fill-rule="evenodd" stroke="#000" stroke-width="1pt"> - <path d="M478.35 698.03c17.717 10.652 37.09 8.268 53.15 0V556.3h-35.433c17.717 53.15 17.717 106.3-17.717 141.73z" fill="#e10000" transform="matrix(.44 0 0 .465 17.296 16.967)"/> - <path d="M513.78 609.45c0 88.582-42.466 108.27-42.466 125.98 17.716 0 29.465-8.248 42.466-19.685 17.716-17.717 19.426-107.68 17.716-106.3H513.78z" transform="matrix(.265 0 0 .524 103.226 -43.228)" fill="#0000c4"/> - <path d="M478.35 609.45c-.81 51.77-44.794 99.64-36.497 110.24 9.474 9.475 36.497-21.654 71.93-3.937 17.717-17.717 19.427-107.68 17.717-106.3h-53.15z" transform="matrix(.265 0 0 .524 103.226 -43.228)" fill="#0000c4"/> - <path d="M513.78 609.45c0 88.582-40.696 94.47-40.696 118.09 17.717 0 40.603-12.912 40.696-11.79 17.716-17.718 19.426-107.68 17.716-106.3H513.78z" transform="matrix(.265 0 0 .35 94.948 63.145)" fill="#ffdf00"/> - <path d="M478.35 609.45c-.81 51.77-43.73 95.702-35.433 106.3 9.474 9.475 35.433-17.717 70.867 0 17.716-17.717 19.426-107.68 17.716-106.3h-53.15z" transform="matrix(.265 0 0 .35 94.948 63.145)" fill="#ffdf00"/> - <path d="M478.35 698.03c17.717 10.652 37.09 8.252 53.15-.015v-141.72h-35.433c17.717 53.15 17.717 106.3-17.717 141.73z" transform="matrix(-.44 0 0 .465 485.82 16.974)" fill="#e10000"/> - <path d="M513.78 609.45c0 88.582-42.466 108.27-42.466 125.98 17.716 0 29.465-8.248 42.466-19.685 17.716-17.717 19.426-107.68 17.716-106.3H513.78z" transform="matrix(-.265 0 0 .524 399.886 -43.223)" fill="#0000c4"/> - <path d="M478.35 609.45c-.81 51.77-44.794 99.64-36.497 110.24 9.474 9.475 36.497-21.654 71.93-3.937 17.717-17.717 19.427-107.68 17.717-106.3h-53.15z" transform="matrix(-.265 0 0 .524 399.886 -43.223)" fill="#0000c4"/> - <path d="M513.78 609.45c0 88.582-40.696 94.47-40.696 118.09 17.717 0 40.603-12.912 40.696-11.79 17.716-17.718 19.426-107.68 17.716-106.3H513.78z" transform="matrix(-.265 0 0 .35 408.168 63.152)" fill="#ffdf00"/> - <path d="M478.35 609.45c-.81 51.77-43.73 95.702-35.433 106.3 9.474 9.475 35.433-17.717 70.867 0 17.716-17.717 19.426-107.68 17.716-106.3h-53.15z" transform="matrix(-.265 0 0 .35 408.168 63.145)" fill="#ffdf00"/> - </g> - <g stroke="#000" fill-rule="evenodd"> - <path d="M198.56 77.952l-89.676 35.434 89.676 35.434 44.837-17.717 22.42 17.717 22.418 35.433 22.42-35.433 22.418-17.717 1201.9-.002V95.668l-1201.9.002-22.42-17.718c0-17.716 4.704-35.433 22.42-35.433 17.717 0 54.242-.003 89.675-.003 0-17.716-44.838-53.15-134.51-53.15-89.675 0-134.51 35.434-134.51 53.15l89.675.002c17.716 0 22.42 17.716 22.42 35.432l-22.44 17.717-44.84-17.717z" transform="matrix(.09 0 0 .17 174.417 269.463)" stroke-width="4.467" fill="#908f8a"/> - <path transform="matrix(.21 0 0 .207 173.1 277.19)" stroke-width="1.838" fill="#b74d00" d="M204.35 95.67h336.61v17.718H204.35z"/> - <path transform="matrix(.21 0 0 .207 173.1 277.19)" stroke-width="1.838" fill="#b74d00" d="M204.35 77.955h336.61v17.717H204.35zm0-17.718h336.61v17.717H204.35z"/> - <path transform="matrix(.21 0 0 .207 173.1 277.19)" stroke-width="1.838" fill="#b74d00" d="M204.35 42.522h336.61V60.24H204.35zm0-17.717h336.61v17.717H204.35z"/> - <path transform="matrix(.21 0 0 .207 173.1 277.19)" stroke-width="1.838" fill="#b74d00" d="M204.35 7.09h336.61v17.716H204.35zm0-17.718h336.61V7.09H204.35z"/> - <path d="M423.23 60.236l137.8 124.02h19.686l-137.8-124.02H423.23z" transform="matrix(.19 0 0 .207 139.765 262.532)" stroke-width="3.255" fill="#908f8a"/> - <path d="M423.23 60.236l137.8 124.02h19.686l-137.8-124.02H423.23z" transform="matrix(.19 0 0 -.207 139.765 313.11)" stroke-width="3.255" fill="#908f8a"/> - <path d="M425.2 60.236v124.02h17.716V60.236H425.2z" transform="matrix(.21 0 0 .207 130.46 262.532)" stroke-width="3.087" fill="#908f8a"/> - <path d="M423.23 60.236l137.8 124.02h19.686l-137.8-124.02H423.23z" transform="matrix(.19 0 0 .207 173.23 262.532)" stroke-width="3.255" fill="#908f8a"/> - <path d="M423.23 60.236l137.8 124.02h19.686l-137.8-124.02H423.23z" transform="matrix(.19 0 0 -.207 173.23 313.11)" stroke-width="3.255" fill="#908f8a"/> - <path d="M425.2 60.236v124.02h17.716V60.236H425.2z" transform="matrix(.21 0 0 .207 189.958 262.532)" stroke-width="3.087" fill="#908f8a"/> - <path d="M425.2 60.236v124.02h17.716V60.236H425.2z" transform="matrix(.21 0 0 .207 163.927 262.532)" stroke-width="3.087" fill="#908f8a"/> - <path d="M425.2 60.236v124.02h17.716V60.236H425.2z" transform="matrix(.21 0 0 .207 156.49 262.532)" stroke-width="3.087" fill="#908f8a"/> - </g> - <g stroke="#000" stroke-width="1pt" fill="#ffdf00" fill-rule="evenodd"> - <path d="M655.51 396.85c0 88.016-55.56 159.45-124.02 159.45-68.456 0-124.02-71.433-124.02-159.45 0-88.015 55.56-159.45 124.02-159.45 68.457 0 124.02 71.433 124.02 159.45zm-17.717 0c0 78.237-47.622 141.73-106.3 141.73-58.677 0-106.3-63.495-106.3-141.73 0-78.236 47.622-141.73 106.3-141.73 58.677 0 106.3 63.497 106.3 141.73z" transform="matrix(.44 0 0 .465 17.296 16.967)"/> - <path d="M579.75 249.94c-14.836-8.072-31.144-12.537-48.258-12.537s-33.422 4.465-48.257 12.537l6.893 16.323c12.716-7.175 26.695-11.144 41.364-11.144s28.648 3.968 41.364 11.143l6.894-16.323z" transform="matrix(.44 0 0 .465 17.296 16.967)"/> - <path d="M579.75 249.94c-14.836-8.072-31.144-12.537-48.258-12.537s-33.422 4.465-48.257 12.537l6.893 16.323c12.716-7.175 26.695-11.144 41.364-11.144s28.648 3.968 41.364 11.143l6.894-16.323z" transform="matrix(.44 0 0 -.465 17.386 386.413)"/> - </g> - <path d="M297.928 201.502c0 36.4-20.94 65.905-46.772 65.905-25.83 0-46.772-29.507-46.772-65.905 0-36.4 20.94-65.904 46.772-65.904 25.83 0 46.772 29.507 46.772 65.904z" fill-rule="evenodd" fill="#a7cfff"/> - <path d="M637.8 396.85c1.133 26.658-4.634 39.635-11.89 67.356-1.912 2.98-10.966-6.537-16.447-11.236s-7.812 4.24-14.537-3.046c-6.725-7.284-11.05 2.058-15.983-4.095s-51.3-7.057-51.366-7.586c4.59-2.276 28.27.152 24.474-11.193-4.3-11.72-31.093-.35-34.69-15.364-2.44-14.907-53.567-15.543-57.22-19.225 1.444 5.665 39.728 8.05 38.814 22.57-.833 5.916-37.693 7.645-41.247 12.652-3.045 6.295 28.927-1.707 30.114 6.032-.077 3.185-4.704.068-21.357 4.99-8.326 2.46 15.454 10.33 6.41 14.637-9.045 4.308-28.26 6.188-27.433 7.998 2.94 8.908 44.693 19.536 40.535 21.065-14.754 6.56-22.552 10.872-29.627 14.652-19.24-25.653-31.146-61.087-31.146-100.2 31.716-11.405 24.968-13.735 83.645-13.735s77.98 2.33 128.95 13.735z" fill-rule="evenodd" stroke="#000" stroke-width="1pt" fill="#afff7b" transform="matrix(.44 0 0 .465 17.296 16.967)"/> - <path d="M637.8 396.85c-8.07 0-16.454 3.4-25.07 3.4-8.617 0-17.465-3.4-26.466-3.4s-19.287 4.532-28.512 4.532c-9.224 0-17.388-4.53-26.676-4.53-9.287 0-18.566 3.397-27.755 3.397s-18.288-3.4-27.218-3.4-17.69 3.4-26.2 3.4-16.77-3.4-24.7-3.4c0-19.56 2.976-38.197 8.358-55.15 27.075 2 11.042-15.716 27.075-15.716 8.655 0 17.434 1.86 25.238 9.788 2.447 0 14.48-11.373 27.912-9.788 13.432 1.586 8.492 27.272 26.37 28.637 9.063 6.797 14.393 11.134 26.78 13.872 17.716 1.606 68.35-2.5 68.704-.194a188.21 188.21 0 0 1 2.16 28.552z" fill-rule="evenodd" stroke="#000" stroke-width="1pt" fill="#fff" transform="matrix(.44 0 0 .465 17.296 16.967)"/> - <path d="M549.85 473.94c0-5.664 13.512-9.462 13.512-18.524s-11.914-9.35-12.38-17.86c-.2-3.46 10.32-7.046 14.915-7.335s8.493 7.42 8.493 9.12-4.662-4.192-8.578-4.378-12.313.63-12.313 2.33c0 3.4 14.85 7.598 13.717 18.925-1.132 11.327-12.71 14.657-12.71 18.055s5.056 12.86 5.056 12.86-9.713-7.53-9.713-13.192z" fill-rule="evenodd" transform="matrix(.155 0 0 .363 173.98 69.56)" stroke="#000" stroke-width="1pt"/> - <path d="M549.85 473.94c0-5.664 13.512-9.462 13.512-18.524s-11.95-9.348-12.38-17.86c-.946-3.962 11.814-6.544 16.41-6.833s9.985 7.92 9.985 9.62-5.41-5.195-9.325-5.38-14.553.63-14.553 2.33c0 3.398 14.85 7.597 13.717 18.924-1.132 11.327-12.71 14.657-12.71 18.055s5.056 12.86 5.056 12.86-9.713-7.53-9.713-13.192z" fill-rule="evenodd" transform="matrix(-.155 0 0 .363 346.52 69.267)" stroke="#000" stroke-width="1pt"/> - <path d="M261.336 224.545c0 1.006-.492 1.82-1.098 1.82-.606 0-1.098-.814-1.098-1.82s.492-1.822 1.098-1.822c.606 0 1.098.816 1.098 1.822zm14.108 5.415h.352v14.712h-.352zm3.172-1.116h.353v14.712h-.354z" fill-rule="evenodd"/> - <path fill-rule="evenodd" d="M276.153 236.91l.003-.37 3.002.515-.003.372z"/> - <path d="M497.26 478.07s26.052 11.328 31.716 18.124c5.664 6.797 3.398 6.796 3.398 6.796l57.77 2.266c0-3.398 10.193-3.4 12.46-11.328 2.264-7.93 2.264-10.194 2.264-10.194l-18.123 5.664 1.132-10.194H572.02l-2.266 10.194-33.982-1.133 2.266-27.186-6.796 1.132-1.133 26.053c-1.134 0-31.718-7.93-32.85-10.195z" fill-rule="evenodd" transform="matrix(.44 0 0 .465 15.3 17.494)" stroke="#000" stroke-width="1pt" fill="#b74d00"/> - <path d="M440.53 316.28s37.645-11.214 92.11-10.413 92.11 12.815 91.31 12.815-10.414-18.422-10.414-18.422-38.446-10.412-81.697-11.213c-43.253-.8-80.898 8.01-80.097 8.81L440.53 316.28z" fill-rule="evenodd" stroke="#fede00" stroke-width="1pt" fill="#fede00" transform="matrix(.44 0 0 .465 17.296 16.967)"/> - <path fill-rule="evenodd" fill="#38a9f9" d="M241.038 152.85l10.236-.2.103 5.965-10.236.198zm-23.622 3.245l-3.61 5.875 12.2-1.503-.978-5.874-7.612 1.502zm10.399-2.26l10.203-.897.468 5.944-10.202.897zm36.86-.609l-10.217-.686-.36 5.953 10.218.686zm22.025 3.738l3.713 7.313-11.05-2.727 1.23-5.822 6.108 1.236zm-8.857-2.126l-10.154-1.382-.723 5.916 10.154 1.382z"/> - <path fill="#ffdf00" fill-rule="evenodd" stroke="#000" stroke-width="1pt" d="M532.64 323.49l-2.58-13.47-7.54 11.46 2.77-13.43-11.34 7.7 7.7-11.35-13.43 2.78 11.45-7.54-13.47-2.58 13.47-2.58-11.45-7.53 13.43 2.77-7.7-11.35 11.34 7.7-2.77-13.43 7.54 11.46 2.58-13.47 2.57 13.47 7.54-11.46-2.77 13.43 11.35-7.7-7.71 11.35 13.44-2.77-11.46 7.53 13.47 2.58-13.47 2.58 11.46 7.54-13.44-2.78 7.71 11.35-11.35-7.7 2.77 13.43-7.54-11.46z" transform="matrix(.44 0 0 .465 17.296 16.967)"/> - <path d="M547.05 293.86c0 9.29-6.634 16.82-14.818 16.82s-14.818-7.53-14.818-16.82 6.634-16.82 14.818-16.82 14.818 7.53 14.818 16.82z" fill-rule="evenodd" transform="matrix(.43 0 0 .388 23.813 41.07)" stroke="#000" stroke-width="1pt" fill="#ffdf00"/> - <path d="M252.06 153.375c0 .412-.948.746-2.118.746s-2.118-.333-2.118-.745.948-.746 2.118-.746 2.118.333 2.118.745zm4.588-.001c0 .412-.71.746-1.588.746s-1.59-.334-1.59-.746c0-.41.712-.745 1.59-.745s1.588.333 1.588.744z" fill-rule="evenodd"/> - <path d="M529.43 297.86l.8.8c-1.9-1.9-.995-1.125 1.603 3.204 2.393-.495 3.09-1.39 4.806-2.403" transform="matrix(.423 -.132 .125 .446 -10.137 93.053)" stroke="#000" stroke-width="1pt" fill="none"/> - <path d="M527.83 304.27l.8.8c-1.9-1.9-1.123-.994 3.205 1.603 4.027.544 8.092-1.196 10.412-4.005" transform="matrix(.44 0 0 .465 16.59 16.967)" stroke="#000" stroke-width="1pt" fill="none"/> - <path d="M223.462 170.743s.705 5.958-3.876 13.407c-4.582 7.45-3.877 4.842-3.877 4.842s2.114 4.097 1.76 4.097-3.523-3.725-3.523-3.725l-3.876 4.096s3.525-6.33 3.173-6.33-1.058-2.235-1.058-2.235l2.82-1.117s4.23-7.82 4.23-7.45-12.69 8.567-12.69 8.567l16.917-14.152zm2.821 2.237c-.353 0 1.762 5.96 3.524 8.938 1.762 2.98 1.762 6.704 1.762 6.704l5.99 2.98-7.753-11.546 4.934 1.862-8.457-8.94zm0 15.642s4.23 4.47 4.58 5.96.354 4.84.354 4.84l-1.762-3.724-2.467 3.352s1.762-5.214 1.41-5.587-2.82 1.863-2.82 1.863 1.057-2.98 1.057-3.353 0-2.234-.352-3.35zm-21.147 10.425c1.41-1.117 4.23-1.862 4.23-1.862s-1.763 2.98-2.115 2.98-1.41 0-2.114-1.118zm48.634-16.387s9.162 5.587 9.162 5.96-5.99-2.607-5.99-2.607l-3.172-3.353zm-16.562-11.545c.705.372 13.392 10.8 13.04 10.8s-5.64-2.98-5.64-2.607v2.607l-2.82-5.96-.704 2.236-3.876-7.075zm3.168 16.758l3.524 7.076 3.524-.745s-6.696-6.332-7.048-6.332zm10.93-4.469c0 1.118.352 6.704.352 6.704s2.115 1.863 2.115 1.49-2.115-7.82-2.467-8.194z" fill-rule="evenodd" fill="#b7e1ff"/> - <g> - <path d="M147.855 92.216s15.836-8.76 33.865-15.286c18.03-6.525 38.253-10.812 40.925-10.812 5.343 0 14.5 13.422 16.027 13.422 1.526 0 7.63-3.728 15.263-3.728s12.21 5.965 13.737 5.965h13.737c1.525 0-4.58-14.914 0-14.168 2.288.372 21.75 3.355 39.875 9.227 18.124 5.872 43.854 16.24 43.854 16.24s-42.052 5.615-53.203 3.954c-1.526.746-.075 9.864-2.214 5.853-3.513-.802-16.41-2.813-18.7-2.813s-6.56 2.586-12.665 4.078c-6.105 1.49-13.737 3.728-13.737 3.728l9.922 15.66-12.21 5.965s-7.632-17.896-10.684-17.896-4.58 12.677-8.395 11.93c-3.816-.744-5.342-11.93-8.395-14.912-3.053-2.983-19.147-4.07-25.253-5.56-6.105-1.49-15.96-2.643-21.3-4.134-5.343-1.492-10.685 3.728-12.974 3.728-2.29 0 3.053-4.474.764-5.22s-3.816 2.238-5.342 2.238c-1.527 0-17.553-2.983-19.08-3.73-1.526-.745 3.817-3.727 2.29-3.727h-6.105z" fill-rule="evenodd" fill="#984000"/> - <path d="M462.91-64.94c0 21.15-20.5 38.298-45.79 38.298S371.327-43.79 371.327-64.94s20.5-38.298 45.79-38.298S462.91-86.09 462.91-64.94z" fill-rule="evenodd" transform="matrix(.165 0 0 .2 184.85 97.497)" stroke="#772600" stroke-width="3.706" fill="gray"/> - <path d="M284.74-59.945c6.66-6.66 14.987-16.65 36.633-16.65 4.996-1.666 4.996-11.657 16.65-11.657 11.657 0 8.327 9.99 16.653 13.32 8.325 3.33 76.596-3.33 76.596-3.33s6.66 4.996 6.66 11.657c0 6.66-4.995 11.656-6.66 11.656s-68.27-4.995-73.266-3.33c-4.995 1.666-8.326 3.33-19.982 3.33-11.655 0-14.986-11.655-23.31-11.655-8.327 0-16.653-1.665-29.974 6.66z" fill-rule="evenodd" transform="matrix(.206 0 0 .24 165.048 100.617)" stroke="#772600" stroke-width="5.25" fill="#984000"/> - <path d="M487.88-76.597h26.642c9.572.114 12.873 3.005 21.647 3.33h23.31c8.476-.314 12.952-2.295 21.648-3.33 14.504-.175 9.555-1.306 6.66-9.99-2.625-6.565-2.95-9.61-6.66-13.322-1.396-7.944-4.655-10.77-4.996-19.98-1.527-7.027-4.342-11.753-1.665-19.983 3.84 5.647 5.387 7.97 14.986 8.326 10.045 0 13.937-.206 19.982 3.33 4.663 4.89 10.886 3.33 19.982 3.33 7.677 1.406 8.96 5.313 14.986 8.326 7.103 3.935 11.694 4.995 21.646 4.995 7.967 1.422 14.88 2.578 19.98 4.995 4.25 5.08 10.952 6.338 19.983 6.66 5.05 0 8.95-.524 13.32-1.665 7.678.37 15.474 0 24.978 0 6.163 7.21 7.587 9.862 18.317 9.99 7.338 5.155 13.527 6.037 19.982 8.327h24.976c8.928.687 11.79 4.35 19.98 6.66 8.115 3.768 15.722 6.35 21.648 8.326 5.89 1.28 13.574 1.665 21.646 1.665 6.183 3.175 13.61 3.46 18.317 6.66 6.89 1.477 16.302 3.215 21.647 4.996 8.816 1.168 12.187 3.94 19.98 4.995 6.704 1.915-2.223 3.56-6.66 4.995-9.826-.364-10.536-3.946-19.98-4.995-5.024-2.94-12.64-2.548-19.982-4.996h-1.666c6.6 3.903 12.948 6.422 9.99 13.32-8.49 0-15.366-1.097-23.31-1.665-8.385-1.616-12.227-3.33-21.647-3.33 9.394-2.264 11.854.27 18.315 3.33 2.396 8.06-2.725 4.996-11.656 4.996-7.61-2.73-12.174-5.983-21.648-6.66h-19.98c9.89.366 11.976 4.1 18.315 8.326.518 2.59-.132 2.472-4.995 3.33-5.16-4.478-11.89-6.013-19.982-8.326-7.88-.28-16.217-.965-23.31-3.33-4.868-.304-4.117-6.177 6.66 3.33 6.532 3.843 8.832 6.946 8.325 9.99-8.576-2.143-12.825-5.58-18.317-8.324-7.736-2.855-14.128-3.33-23.312-3.33-8.61-2.266.894-3.574 6.66 4.995 12.38 8.77-1.632 5.007-6.66 3.33-7.507-2.144-15.284-5.184-21.646-6.66-5.046-1.44-9.44-2.855-14.986-3.33 8.63.785 11.57 3.823 14.986 9.99 8.755 6.032-.384 3.1-8.326 1.666-5.07-4.402-11.487-6.658-14.986-11.656-8.35-4.176-8.563-8.982-3.33 1.665 1.363 3.407 1.11 10.795 1.665 11.656-6.136-6.625-4.825-8.325-11.656-8.325-4.634-3.244-11.496-5.765-14.986-9.99-6.435-.604-6.84-2.9-13.32-4.996 5.34 6.273 12.39 12.478 16.65 18.315 7.598 4.242 9.7 8.06 14.987 11.656 2.14 3.64 7.904 6.657 1.665 1.666-7.144-7.043-12.46-8.67-23.312-13.32-6.15-4.96-8.37-7.045-14.986-11.657-9.003-2.905-5.508-4.543 0 4.995 6.318 5.77 11.17 12.23 16.652 16.65 3.767 4.908 10.136 10.12 14.986 13.322 1.5 2.25 5.99 2.664 0 3.33-5.09-4.598-12.398-7.53-18.317-11.656-8.302-2.34-12.19-6.652-18.316-11.655-3.9-5.85-10.383-10.38-14.987-14.986-9.63-3.77 1.9 3.636 4.995 8.325 2.153 6.068 4.788 11.035 6.66 16.65 2.78 5.56-8.47-1.327-11.655-3.33-7.32-4.157-12.674-6.937-21.647-8.325-5.98-1.3-13.602-2.468-19.982-3.33-7.614-2.05 4.042 4.8 8.326 11.656 8.418 7.908-8.332 1.425-13.32 0-8.224-1.645-16.288-1.666-24.978-1.666-10.67.628-3.05 1.947 0 6.66 3.287 2.53 5.637 7.855 4.995 9.992-7.032-.95-13.025-3.023-21.646-3.33-6.96 2.32-15.344 1.665-23.31 1.665-.382 4.19 1.443.654 4.994 4.995 5.763 2.34 9.585 5.177 8.326 8.326H497.87c-5.29 1.447 1.14.704 5 6.663-2.16 5.403-4.95 3.332-11.655 3.332-4.545-1.818-13.598-2.636-18.317-4.996-4.69 0-4.336-1.22-8.325-1.665 14.035 9.93 7.073 7.45 14.986 14.987 1.366.456 4.523 1.665 1.664 1.665M371.32 73.265c-.997 0-3.2-5.375-6.66-9.99-2.327-6.05-5.392-2.59-8.326-11.657.348-9.402.684-11.094 0-19.982-6.863-4.783-9.714-6.27-14.986-14.986-8.46-7.078 1.236-19.063 2.845-27.85-7.375-1.638-11 11.477-22.34 16.194-8.156 5.492-.912-11.354-4.892-21.188-2.774-13.872-10.825 6.956-13.91 12.862-5.467 3.718-7.128 8.542-14.986 1.665 0-5.144 4.937-19.49 2.845-22.28-7.815 3.815-18.088 15.49-26.158 17.284-8.13-1.767 1.77-14.828 1.77-24.518-2.938-.98-14.696 25.755-19.52 26.002-4.824.248-2.713-25.993-4.972-25.428-3.542 4.96-10.65 15.43-15.576 18.948-9.454-1.22 1.398-17.435 2.845-23.427 1.628-7.168-8.905 13.75-14.502 15.102-4.1 3.554-12.237 6.072-14.986 6.66 3.24-6.13 19.076-18.712 17.935-22.278-9.21.34-23.31 12.556-31.256 13.952-5.19 0-12.387 1.758-13.32 1.665.448-7.926 19.418-14.65 22.445-19.465-9.306 1.494-27.186 9.706-32.436 16.135-6.146 1.336-13.944 3.02-19.983 0 .897-7.475 14.856-21.998 17.936-26.758-8.396 3.697-12.642 6.59-21.647 8.325-1.652 1.652-6.524 5.23-4.995 1.665 2.656-6.945 6.676-10.11 9.99-14.986-7.45 1.364-10.28 5.634-18.315 9.99-5.094.222-19.646 14.855-24.596 15.103-11.45 8.382-16.01 9.807-28.308 13.32-7.587 1.356-11.26 2.934-14.986 6.66 3.796-6.687 9.597-13.092 14.986-16.65 3.677-5.567 7.12-10.195 14.986-13.32 1.897-2.32 7.188-2.906 1.665-3.33-4.746 4.236-12.696 8.965-16.65 11.655-5.102 3.207-11.01 6.48-13.322 4.995 2.62-7.197 7.438-8.902 11.657-14.986 8.81-5.604.042-1.914-6.66 0-4.338 3.868-12.122 6.727-18.316 9.992-7.113 1.856-11.703 6.132-19.98 8.326 0 2.375 2.364-4.25 3.33-6.66 6.83-7.41 8.656-9.476 16.65-11.657 1.912-2.866 4.42-1.664-1.665-1.664-4.514 4.024-10.81 6.212-16.65 9.99-5.892 1.282-13.575 1.666-21.648 1.666-10.355 1.243-9.46 2.025 0-3.33 5.357-5.042 9.77-3.775 9.99-9.99C10.394-40.43 2.78-37.1-4.998-33.304c-6.434.19-8.133 1.665-14.985 1.665 3.298-3.415 5.277-7.633 9.99-9.99 6.896-7.663-4.377-1.478-6.66 0H-41.63c-4.465 5.58-.23.05 3.33-3.33 4.306-2.24 8.756-5.155 8.326-6.66-4.972 4.314-10.726 6.297-14.986 9.99-4.64 1.39-9.99 2.084-9.99 3.33 3.626-5.346 9.524-8.576 13.32-13.32 5.612-1.22 10.396-2.936 11.656-4.996h-23.312 16.65c8.4 0 15.63-.75 23.313-1.665 13.263-2.21-1.16-3.33-8.326-3.33-1.39-2.548 4.11-3.987 9.99-4.995 5.024-2.38 11.233-4.493 16.65-6.66 5.257-1.434 12.707-5.81 13.322-6.66-5.015.263-4.975 1.4-9.99 1.664 7.446-.574 12.8-1.666 21.646-1.666 8.028-2.58 14.906-5.41 21.647-8.326 2.936-3.588 4.24-3.33-3.33-3.33 6.713-2.158 16.238-3.193 21.647-4.995 7.872-1.687 14.9-4.253 19.982-6.66 4.876-3.316 7.69-7.176 13.32-9.99 6.528 4.437 6.602 4.994 18.318 4.994 9.41-.112 15.17-2.373 19.98-6.66 7.208-1.966 8.483-5.43 16.652-6.66 7.444 1.328 15.03 1.664 23.312 1.664 8.096-2.12 15.677-6.01 21.647-9.99 5.093-2.502 11.14-6.12 16.65-8.326 6.07 3.133 10.844 5.65 18.318 6.66 7.728-1.148 11.747-4.868 18.317-6.66 3.577-4.33 8.777-6.632 14.986-8.325 9.67-4.75 8.913 1.573 13.32 6.66 4.896 5.132 11.374 2.68 18.318 4.995 3.83 5.893 6.647 9.914 11.657 13.32 3.89 4.71 8.508 6.035 16.65 6.66 2.968 3.958.602 6.812 6.662 8.327 2.387 2.53 6.517 3.606 9.99 4.995" transform="matrix(.206 0 0 .24 165.048 103.825)" stroke="#772600" stroke-width="3.5" fill="none"/> - <path d="M468.74 30.803v.833c0-2.327-.103-1.09 1.665 3.33.595 3.64-.81 3.22-2.498 5.828-.286 3.723-.832 6.4-.832 10.823-.537 3.612-2.57 7.04-4.163 9.99-1.604 3.133-8.555 4.87-8.326 9.16-3.99 1.14-4.084-1.445-4.162-5.83-2.386-2.726-3.212-6.466-4.996-9.99-1.108-3.476-3.47-6.032-4.995-9.99-2.46-3.787-4.546-4.876-6.66-9.16-.827-2.065-.683-4.617-2.498-5.827-2.72-3.438-4.49-3.99-9.16-4.163-3.59.845-4.97 2.416-8.324 3.33-2.57.857-7.57.58-10.823 1.666-.808 1.314 1.6 1.94 2.498 4.995-2.135 1.764-2.926 4.883-4.163 7.493-1.965 2.487-3.283 3.706-4.163 7.494 1.362 2.316.2 5.387-1.666 7.493-.574 3.864-2.434 5.874-3.33 9.16-2.686 1.825-3.652 3.537-5.828 6.66-1.914 2.678-3.636 2.497-8.326 2.497-3.667-1-4.18-2.988-7.493-4.163-.352-1.056-.608-1.312-1.665-1.664" transform="matrix(.206 0 0 .24 165.048 103.825)" stroke="#782600" stroke-width="3.125" fill="none"/> - <path d="M242.23 119.397s-.345 3.74-2.75 6.233-7.393 5.402-7.393 5.402 6.704-3.186 7.392-2.493c.686.69-4.3 6.232-4.3 6.232s6.534-5.818 7.393-5.818 2.75 5.68 3.438 5.54c.69-.138-1.546-7.202-1.202-8.31.343-1.108 0-7.064 0-7.064l-2.58.277zm15.468-.507s-.344 3.998-2.75 6.663-7.392 5.774-7.392 5.774 6.704-3.405 7.392-2.665c.687.74-4.298 6.663-4.298 6.663s6.532-6.22 7.392-6.22 2.75 6.072 3.438 5.924c.687-.15-1.547-7.7-1.203-8.885.343-1.184 0-7.55 0-7.55l-2.58.295zm-21.656-36.262c0 .745-.73 1.35-1.63 1.35s-1.63-.605-1.63-1.35.73-1.35 1.63-1.35 1.63.605 1.63 1.35z" fill-rule="evenodd" fill="#812e00"/> - </g> -</svg> diff --git a/img/flags/1x1/ee.svg b/img/flags/1x1/ee.svg deleted file mode 100644 index 42d5807..0000000 --- a/img/flags/1x1/ee.svg +++ /dev/null @@ -1,7 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" height="512" width="512" viewBox="0 0 512 512"> - <g fill-rule="evenodd" transform="scale(.482 .72)" stroke-width="1pt"> - <rect rx="0" ry="0" height="708.66" width="1063"/> - <rect rx="0" ry="0" height="236.22" width="1063" y="475.56" fill="#fff"/> - <path fill="#1291ff" d="M0 0h1063v236.22H0z"/> - </g> -</svg> diff --git a/img/flags/1x1/eg.svg b/img/flags/1x1/eg.svg deleted file mode 100644 index b138d58..0000000 --- a/img/flags/1x1/eg.svg +++ /dev/null @@ -1,38 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" height="512" width="512" viewBox="0 0 512 512"> - <path d="M0 341.333h512V512H0z"/> - <path fill="#fff" d="M0 170.667h512v170.667H0z"/> - <path fill="#ce1126" d="M0 0h512v170.667H0z"/> - <g transform="translate(-128.004 .002) scale(.85333)" fill="#fff" stroke="#c09300"> - <path d="M450.81 302.4l68.488 63.58-4.876-115.47c-.716-17.5-15.924-13.486-26.97-7.173-11.192 7.172-23.96 7.172-37.447 2.437-13.485 4.735-26.253 4.735-37.444-2.437-11.045-6.313-26.25-10.328-26.97 7.172l-4.878 115.47 70.098-63.58z" stroke-width="1.27" stroke-linejoin="round"/> - <path d="M393.47 246.49l-4.734 112.32-8.035 7.168 4.88-115.47c2.294-1.578 6.313-4.017 7.89-4.017zm9.62 8.04l-4.017 93.955-8.032 8.22 4.878-108.49c1.58 1.577 6.314 5.45 7.172 6.31zm8.75 7.17l-3.155 78.362-6.455 6.31 4.018-89.406c1.574 1.578 4.73 3.874 5.592 4.734zm9.47 4.02l-3.156 66.787-6.313 5.12 3.157-74.345c1.58.717 4.735 2.438 6.313 2.438zm8.75 0l-2.297 55.657-6.455 6.313 2.44-61.252c1.575 0 5.593 0 6.312-.718z" id="a" fill="#c09300" stroke="none"/> - <use height="100%" width="100%" xlink:href="#a" transform="matrix(-1 0 0 1 900 0)"/> - <path d="M453.16 315.06l9.613 43.755-3.158 3.155-3.3-2.44-5.45-39.017 2.294 39.018-3.157 4.017-3.157-4.016 2.296-39.017-5.45 39.018-3.303 2.44-3.155-3.155 9.61-43.755h6.315z" fill="#c09300" stroke-width="1.074"/> - <g id="b" fill="none" stroke-width="1.27" stroke-linejoin="round"> - <path d="M428.48 295.84l-19.08 67.705 26.255 4.018 11.188-50.924-18.363-20.8z" fill="#fff" stroke-width="1.189"/> - <path d="M422.17 318.94l2.296 5.593 12.405-11.848"/> - <path d="M430.76 304.92l2.596 24.346 7.89-10.328m-3.156 4.012l4.31 14.875m1.69-5.465l-8.718 13.24m2.72 13.217l-2.79-13.198-2.437-13.424-5.84 7.91-2.562-9.12-8.174 8.385 4.156 15.252 5.738-9.435 3.155 9.612 5.89-9.163"/> - <path d="M414.99 361.97l5.3-7.444 3.452 11.457 4.735-8.032 3.157 9.615"/> - </g> - <use height="100%" width="100%" xlink:href="#b" transform="matrix(-1 0 0 1 900 0)"/> - <g stroke-width="1.27" stroke-linecap="round" stroke-linejoin="round"> - <path d="M450 393.81c19.943 0 39.024-1.578 50.213-4.734 4.735-.86 4.735-3.298 4.735-6.455 4.736-1.577 2.295-7.17 5.595-7.17-3.3.863-4.016-5.594-8.033-4.73 0-5.598-5.596-6.314-10.33-4.74-9.47 3.16-26.255 3.876-42.18 3.876-15.924-.717-32.567-.717-42.18-3.875-4.733-1.574-10.326-.858-10.326 4.74-4.018-.864-4.736 5.593-8.034 4.73 3.3 0 .86 5.593 5.594 7.17 0 3.158 0 5.597 4.878 6.456 11.045 3.156 30.128 4.734 50.068 4.734z" stroke-width="2.378"/> - <path d="M422.89 363.54c6.454.86 13.628 1.578 19.225.86 3.153 0 5.45 5.452-.863 6.314-5.593.715-14.345 0-19.08-.862-4.017-.718-12.768-2.295-18.364-3.876-5.594-2.436-1.576-7.168 1.578-6.452 4.88 1.577 11.192 3.157 17.505 4.016zm54.23 0c-6.457.86-13.628 1.578-19.08.86-3.302 0-5.597 5.452.716 6.314 5.596.715 14.347 0 19.078-.862 4.02-.718 12.77-2.295 18.364-3.876 5.597-2.436 1.58-7.168-1.577-6.452-4.877 1.577-11.19 3.157-17.5 4.016z"/> - <path d="M403.09 360.39c-4.877-.86-7.172 4.732-5.593 7.887.717-1.578 4.017-1.578 4.735-3.155.858-2.437-.718-2.437.858-4.732zm19.08 14.67c0-3.153 3.155-2.765 3.155-5.921 0-1.578-.86-4.02-2.437-4.02-1.58 0-3.158 1.58-3.158 3.157-.718 3.157 2.44 3.63 2.44 6.783zm22.71-9.08c4.73 0 4.262 6.314 1.966 9.47 0-2.295-4.017-3.156-4.017-4.732 0-2.442 3.625-2.442 2.05-4.738zm52.03-5.59c4.878-.86 7.174 4.732 5.595 7.887-.718-1.578-4.017-1.578-4.734-3.155-.86-2.437.72-2.437-.86-4.732zm-19.08 14.67c0-3.153-3.153-2.765-3.153-5.921 0-1.578.86-4.02 2.438-4.02 1.577 0 3.156 1.58 3.156 3.157.72 3.157-2.44 3.63-2.44 6.783zm-22.71-9.08c-4.732 0-4.263 6.314-1.967 9.47 0-2.295 4.015-3.156 4.015-4.732 0-2.442-3.626-2.442-2.048-4.738z"/> - <path d="M404.67 361.97c1.58 0 4.018.718 4.735 1.577l-4.74-1.58zm7.88 2.44c.862 0 4.018.716 5.596 1.575l-5.6-1.58zm28.7 3.15c-1.578 0-4.734 0-5.593.715l5.59-.72zm-8.75 0c-.86-.862-4.016-.862-5.593 0h5.59zm62.84-5.59c-1.578 0-3.875.718-4.735 1.577l4.735-1.577zm-7.89 2.44c-.86 0-4.017.716-5.595 1.575l5.6-1.58zm-28.7 3.15c1.58 0 4.735 0 5.595.715l-5.6-.72zm8.75 0c.86-.862 4.018-.862 5.595 0h-5.6z" stroke-width=".891"/> - <g fill="#c09300" stroke="none"> - <path d="M403.34 374.58c-.534-.102-.815-.525-.68-1.025.164-.61.65-.957 1.112-.794.294.105.83.646.832.84.003.222-.28.752-.402.754-.053 0-.135.046-.182.102-.1.118-.413.175-.68.124zm54.93 3.92c-.2-.074-.515-.518-.515-.724.002-.387.574-1.018.93-1.02.174-.002.654.247.833.433.325.337.254.892-.154 1.207-.2.155-.8.212-1.094.103zm.36 2.48c-.42-.142-.574-.348-.608-.814-.036-.485.012-.56.525-.84l.365-.2.347.155c.478.215.692.446.71.768.017.348-.24.704-.64.883-.353.16-.374.16-.7.05z"/> - <path d="M407.75 370.09c-.346-.01-.82.307-1.094.47-.65.15-1.404.55-2.03.124-.618-.19-1.44-.04-1.532.718.158.652 1.07 1.025 1.625.594.41-.537 1.53-.853 1.655.063-.457.69-.405 1.608-.78 2.343-.062.457-.253.892-.5 1.28-.463.047-.955-.007-1.345.282-.626.034-1.265.345-1.625.875-.403.578-.79 1.165-.906 1.875.106.725.936.933 1.56.97.668.182 1.336.423 2 .624 1.087.242 2.103.634 3.19.874 1.583.477 3.247.697 4.842 1.125.168.054.325.103.5.124.663.137 1.008-.583 1.063-1.125.33-1.16.58-2.34.906-3.5.226-.467.498-1.518-.405-1.282-.515.308-.952.773-1.594.812-.873.05-.374.945-.03 1.313.076.587-.11 1.288-.5 1.75-.52.33-1.172-.057-1.72-.188-.573.01-1.722-.283-1.186-1.062.19-.577.207-1.21.437-1.782.295-.613.337-1.284.47-1.936-.36-.777-.98.256-1.47.344-.337.234-1.604.334-.936.937.575.437.134 1.197.03 1.75-.036.77-.837.954-1.468.78-.628-.03-1.5-.496-.97-1.186.122-.576.323-1.14.44-1.72.236-.698.436-1.363.686-2.062.11-.62.33-1.208.625-1.75.018-.686.478-1.276.47-1.97-.048-.338-.2-.46-.407-.468zm-3.594 7.25a.353.353 0 0 1 .22.03c.25.107.256.31 0 .532-.113.097-.24.19-.282.188-.468-.04-.606-.11-.625-.28-.02-.152.03-.196.342-.345a1.45 1.45 0 0 1 .344-.125zm-1.036 5.02c-.496-.466-.416-.806.317-1.353.314-.234.505-.208.863.12.553.504.575.823.087 1.255-.24.213-.346.257-.627.26-.293.003-.376-.034-.64-.282zm3.05.92a.86.86 0 0 1-.623-1.088c.13-.434.203-.477.84-.483.716-.008.854.11.86.74.005.355-.022.437-.2.6a1.07 1.07 0 0 1-.877.23zm89.11.08c-.227-.19-.273-.274-.275-.515-.003-.41.233-.712.746-.944.683-.307.96-.265 1.217.187.342.6.325.847-.084 1.252-.225.223-.268.236-.785.24-.507.004-.565-.01-.818-.22zm-85.06 1.15c-.364-.097-.552-.37-.557-.807-.004-.334.02-.387.253-.57.152-.118.39-.22.58-.245.266-.037.363-.013.578.138.55.387.668.77.35 1.14-.34.397-.663.488-1.204.344zm21.92.98c-.08-.1-.26-.16-.278-.287.032-.555.06-1.117.236-1.648.096-.523.012-1.07.194-1.58.187-.926.187-1.88.402-2.802.01-.475.055-.95.193-1.406.157-.722.013-1.476.226-2.19-.023-.267.285-.983.556-.56.393.578.91 1.046 1.42 1.517.438.252.036.624-.266.75-.416.163-.517.62-.487 1.022-.058.414-.225.806-.242 1.23-.087.622-.07 1.254-.15 1.876-.183.61-.114 1.26-.174 1.888.01.398-.18.76-.155 1.16-.048.406-.066.894-.407 1.172-.33.166-.804.138-1.068-.142zm29.7-9.8c-.482.365-.914.795-1.344 1.22-.592.448.487.71.625 1.093.158.586.15 1.21.19 1.812.178.552.257 1.138.217 1.72-.05.62-.863.49-1.218.843-.493.207-.69.69-1.064 1.03-.246.484-.312 1.077-.344 1.626.036.448-.302.95 0 1.344.04.055.086.132.125.187.102.145.343.03.5.063.504-.03 1.03.047 1.5-.157 1.21-.208 2.432-.225 3.657-.28.75.024 1.47-.237 2.218-.22.587.13.85-.505.844-.967-.332-.654-.045-1.43-.312-2.094-.235-.674-.143-1.43-.25-2.126-.015-.55-.71-.752-1.063-.344-.34.345-.892.414-1.155.844-.297.602.627.603.78 1.062.177.465.12.98.157 1.47.115.592-.53.625-.937.687-.537.2-1.29.336-1.594-.313-.19-.48-.164-.993-.218-1.5-.013-.892-.227-1.768-.28-2.656-.052-1.097-.242-2.187-.313-3.28-.01-.457-.072-1.2-.72-1.064zm-.625 8.25l.313.03.03.376.032.375-.406.126a3.28 3.28 0 0 1-.407.094 2.55 2.55 0 0 1-.187-.125c-.22-.16-.164-.385.125-.688.163-.17.24-.203.5-.187zm-29.965-9.28c-.38.135-.862.693-1.25.688-.88.062-.757.92-.125 1.218.083.26.005.588.03.875.124.79-.374 1.426-.28 2.22-.044.87-.307 1.718-.344 2.594-.246.903-.25 1.832-.405 2.75-.104.823-.7.533-1.22.312-.003-.356-.026-.705-.03-1.062.216-.817-.44-1.056-1.094-1.156-.685.065-1.022-.523-.874-1.125.295-.35 1.036-.254 1.5-.313.98.204.942-1.112.438-1.562-.345-.636-1.2-.91-1.438-1.563.096-.866-.48-1.732-1.187-2.156-1.09-.077-1.912.862-2.314 1.78-.452.13-.904.267-1.344.438-.71.177-1.72 1.407-.75 1.875.545.15 2.2.528 1.47 1.28-.413.708-1.202.72-1.907.532-.724 0-1.53-.352-1.5-1.187-.148-.75-.123-1.558-.47-2.25-.147-.84-1.1-.643-1.155.125-.733.534-.636 1.397-.125 2.03.32.73.003 1.578-.313 2.25-.19.876-1.155.906-1.843 1.188-.34.132-1.63-.077-1.158.658.754.265 1.653.505 2.438.312.823-.102 1.538-.665 1.938-1.375.552-.56 1.502-.267 2.218-.28.773-.003 1.563.54 2.313.186.216-.563 1.22-1.494 1.53-.53-.053.863.71 1.326 1.5 1.22.864-.05.544.61.53 1.124.058.934.66 1.425 1.44 1.812.264.072.544.048.81 0 .75-.235 1.555-.568 1.782-1.406.304-.68.31-1.45.532-2.156.177-1.13.406-2.26.437-3.406.277-1.04.198-2.136.407-3.188.133-.782.23-1.563.313-2.344-.092-.417-.272-.487-.5-.406zm-6.78 4.156c.15.02.234.204.25.53.015.366.205.662.436.72.183.046.167.24-.03.375-.116.08-.322.128-.688.126-.578-.003-.937-.153-1.25-.47l-.188-.186.28-.188c.143-.108.4-.332.564-.5.285-.29.473-.424.625-.406zm66.03-7.876a8.365 8.365 0 0 0-1.656.25c-1.04-.065-1.563 1.027-.563 1.563.603 1.534 1.542-.317 2.5-.188 1.44.28 1.56 1.832 1.783 3 .08 1.157.414 2.282.75 3.375.962 1.07-.72 1.74-1.438.906-.61-.664-1.92-1.48-2.656-.562-.905.382-.942 1.59-1.69 1.937-1.208.37-1.36-1.118-2-1.75-.586-.823-1.71-.895-2.624-1.186-.43-.87-.205-2.346-1.094-2.938-.745.304-2.113 1.702-.968 2.344 1.117.96-.488 1.4-1 2.063-.732.814-.85 1.936-.97 2.968-1.258.697-1.503-.786-1.655-1.717-.1-1.112-1.037-.786-1.69-.375-.95.385-1.427 1.29-2.092 2-.08.647.037 1.356.03 2.03.217.812 1.203.43 1.813.376.98-.41 1.38.627.595 1.22-.532.675-2.22.32-2.063 1.405.544.062 1.11.042 1.657 0 1.09-.3 2.26-1.07 2.374-2.282.143-1.06 1.667-.866 2.5-1.094 1.04-.3 2.294-.377 2.53.937.71.746 2.25 1.585 3.032.564.795-.485 1.176-1.338 1.125-2.25-.16-.785 1.27-.813 1.626-.375.52.857 2.15.604 2.938.124.836-.617 1.017-1.705 2.218-1.72 1.783-.533 3.635-.84 5.375-1.5 1.41-.306-.21-1.197-.562-1.718-1.074-.53-2.008 1.642-3.22.563-.935-.717-.87-2.078-1.218-3.126-.237-1.358-.177-2.923-1.156-4-.67-.715-1.585-.887-2.53-.844zm-6.813 9.47c.126-.004.268.058.5.186.44.242.75.643.75.97 0 .212-.054.226-.375.374-.197.09-.42.19-.5.188-.18-.002-.624-.357-.625-.5 0-.06-.058-.287-.125-.47-.117-.32-.1-.316.063-.53.103-.138.187-.216.313-.22zm6.532.343c.37-.025.592.09.75.375.18.33.057.58-.408.78-.203.09-.407.16-.437.157-.03-.003-.198-.102-.375-.22-.27-.176-.31-.263-.313-.467-.003-.316.35-.597.782-.625zm-8.94.093c.11-.017.21.04.345.156.18.155.237.28.28.594.033.22.028.502 0 .625-.047.227-.052.217-.56.22-.642.006-.7-.064-.69-.656.01-.377.013-.478.22-.688.16-.162.297-.233.406-.25zm-5.5 1.438a.57.57 0 0 1 .44.437c.064.32.007.463-.25.595-.223.113-.735.15-.876.063a.613.613 0 0 1-.188-.188c-.068-.12-.055-.18.03-.25.062-.05.127-.12.126-.156 0-.037.068-.163.157-.28a.543.543 0 0 1 .56-.22zm9.25 1.187c.18 0 .33.062.44.157.184.163.178.4-.033.563-.135.104-.87.095-1.125 0-.112-.042-.155-.1-.156-.22-.002-.14.038-.226.28-.343.206-.097.417-.155.595-.156zm-17.169 4.819c-.096-.063-.238-.117-.095-.222.173-.302.518-.407.825-.52a3.436 3.436 0 0 0 1.373-1.118c.05-.333.424-.513.422-.86.003-.476.032-.963-.084-1.427-.128-.426-.45-.752-.826-.974-.256-.203-.674-.26-.768-.615-.053-.343.253-.604.36-.91.223-.42.41-.863.65-1.275.26-.288.66-.015.794.263.19.277.357.576.45.897.303.332.57.72.68 1.162.148.31.383.602.37.966 0 .416.234.787.22 1.206.013.56.012 1.145-.192 1.674-.14.294-.42.47-.607.733-.318.296-.67.58-1.08.737-.288.092-.456.426-.818.345-.514.01-1.037.08-1.547-.004.032.054-.156-.092-.125-.058zm-6.85.45c-.243-.25-.295-.355-.298-.6-.003-.248.045-.346.282-.586.44-.443.653-.453 1.41-.07.722.365.967.4 1.032.14.062-.25.478-.48.874-.48a.82.82 0 0 1 .592.202c.25.196.263.227.27.68.004.463-.002.48-.29.736-.278.244-.323.26-.666.224-.437-.043-.7-.244-.77-.588-.052-.25-.14-.31-.206-.14-.02.055-.13.122-.24.15-.203.05-.548.268-.793.5-.093.087-.255.128-.52.13-.354.004-.404-.017-.677-.298zm-19.82-8.9c-.665.007-1.38.566-1.47 1.22.153.75.778 1.488.376 2.28.278 1.013-.76 1.397-1.47.813-.426-.972-.642-2.036-1.28-2.907-.804-.227-1.154 1.057-1.72 1.5.28.755 1.097 1.433 1.19 2.375.194.916-.362 1.932-1.157 2.407-.687.655-1.627.42-2.47.563-1.024.6.752.818 1.22.844 1.046.106 2.134-.032 2.905-.813.77-.366.71-1.696 1.625-1.843 1.588-.07 3.163.244 4.75.282.85.202 2.163-.102 2.75.53.002 1.107.94 1.79 1.844 2.22.498.137 1.024-.48 1.53-.595.966-.308.673-1.502 1.25-1.97 1.65-.088 3.317-.07 4.97-.093.314.008.407-.44.625-.625-.038-.638-.06-1.272-.158-1.906-.318-.805.052-1.843-.53-2.53-.83-.226-1.537.534-2.376.594-.926.412-1.706 1.268-1.75 2.312-.548.897-1.427-.16-1.125-.906-.033-.325.072-.704-.03-1-.507-.608-1.395-.41-2.094-.5-1.018.04-2.012-.18-3.03-.156-.894-.068-1.823.078-2.688-.156-1.032-.03-.89-1.04-1.063-1.75a1.018 1.018 0 0 0-.625-.188zm2 3.688c.343.006.667.05 1 .093.43.072.89-.147 1.313 0 .976.167 1.953.128 2.937.22.26-.004.446.185.625.344.002.683 0 1.38 0 2.062-.03.258.076.598-.156.78a.7.7 0 0 1-.25.126c-.272-.07-.56-.247-.69-.5-.04-.357.02-.704.032-1.062-.007-.093.04-.237 0-.313a1.248 1.248 0 0 0-.718-.25c-.85-.03-1.682-.09-2.53-.125-.708-.044-1.435.06-2.127-.125-.268-.097-.617-.064-.78-.343-.235-.273.103-.597.343-.72a2.28 2.28 0 0 1 1-.187zm11.28.25c.16-.003.21.05.282.343.046.19.1.418.125.5.037.12-.022.157-.187.22-.494.186-.986.168-1.156-.063-.078-.104.012-.434.156-.562.29-.26.61-.437.78-.438z"/> - </g> - </g> - <path d="M449.98 327.23c32.642-25.106 29.843-61.883 29.843-61.883-.86.172-1.68.258-2.54.258-6.848 0-23.18-3.917-26.99-8.892-4.08 4.503-20.77 8.892-27.573 8.892-.86 0-1.722-.086-2.54-.258 0 0-2.843 36.776 29.8 61.883z" stroke-width="1.15"/> - <path d="M477.22 268.04c-.28.018-.563.026-.848.026-6.205 0-20.62-3.183-26.175-7.957-5.82 4.41-20.47 7.956-26.576 7.956a4.7 4.7 0 0 1-.848-.086c-.015 1.39.058 2.832.144 4.144.323 4.9 1.183 9.82 2.488 14.552 4.108 14.895 12.516 27.553 24.572 37.155 12.066-9.61 20.484-22.28 24.6-37.185 1.308-4.732 2.17-9.65 2.496-14.55.086-1.285.157-2.692.148-4.055z" stroke-width=".916"/> - <path d="M439.38 265.03c-5.872 1.845-12.23 3.03-15.75 3.03-.286 0-.563-.04-.844-.093-.014 1.39.07 2.846.156 4.157a72.77 72.77 0 0 0 2.47 14.53c2.764 10.026 7.506 19.033 13.968 26.782V265.03zm20.62-.09v49.25c6.794-7.92 11.733-17.206 14.594-27.562a72.952 72.952 0 0 0 2.47-14.53c.084-1.285.165-2.7.155-4.064-.282.018-.56.032-.845.032-3.73 0-10.42-1.17-16.375-3.125z" fill="#c09300" stroke="none"/> - <g stroke-width="1.27"> - <path d="M462.31 253.09c.667.04-.902-3.568-.902-3.568 1.765 1.804 8.43 2.235 8.43 2.235-4-1.766-7.998-15.096-7.528-25.72.432-10.665-1.528-14.86-3.097-16.43-2-2-8.43-3.763-12.664-3.998-2.393-.12-2 1.802-2 1.802-4.43-1.137-8.86-1.568-10.862-.235-1.882 1.255-2.274 7.528-.9 6.43 3.33-2.666 6.233-.235 8.232 2.666 1.764 2.55 1.647 9.763-.902 18.192-2.666 8.86-9.96 17.722-9.96 17.722 3.96 0 9.53-3.528 9.53-3.528l-1.334 5.527c4.195-2 7.528-5.097 7.528-5.097l4 4.195c1.332-1.764 3.998-4.195 3.998-4.195s3.333 3.53 8.43 4z" stroke-width="1.218"/> - <path d="M446.12 227.57s-2.235 16.428-6.43 21.094m9.96-21.524s-.863 16.623-3.764 21.956m6.894-21.286s0 18.192 1.098 21.29m2.862-20.39s.902 15.29 4.666 20.82" fill="none"/> - <path d="M442.08 219.61c-.196-1.45-.55-2.588-1.06-3.333-1.998-2.9-4.9-5.332-8.232-2.666 0 0 1.137-3.528 3.568-3.645 1.882-.118 6.155 1.41 9.92 7.84 0 0-2.784-.626-3.45-.038-1.256 1.098-.746 1.843-.746 1.843z" fill="#c09300" stroke-width=".354"/> - <path d="M432.44 209.26c.274-.902.706-1.725 1.255-2.078 2-1.333 6.43-.902 10.86.235 0 0-.392-1.92 2-1.803 4.234.235 10.664 2 12.663 4 .47.51 1.02 1.254 1.49 2.39h-.078c-.98-1.372-3.764-1.293-4.43-1.215-1.06.117-1.726.077-3.138.43-.666.157-1.686.353-2.235.784-.43.353-.784 1.647-1.45 1.647-1.06 0-.98-.273-1.255-.587-.353-.43-.55-1.06-.902-1.02-1.097.197-2.862-.666-5.096-2.43-2.235-1.765-3.098-2.196-6-2-2.86.235-3.763 1.843-3.763 1.843l.08-.196z" fill="#c09300" stroke-width=".354"/> - <circle cx="448.824" cy="210.672" r="1.176" stroke="none"/> - </g> - </g> -</svg> diff --git a/img/flags/1x1/eh.svg b/img/flags/1x1/eh.svg deleted file mode 100644 index 29eb21e..0000000 --- a/img/flags/1x1/eh.svg +++ /dev/null @@ -1,15 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" height="512" width="512" viewBox="0 0 512 512"> - <defs> - <clipPath id="a"> - <path fill-opacity=".67" d="M0 0h512v512H0z"/> - </clipPath> - </defs> - <g fill-rule="evenodd" clip-path="url(#a)"> - <path d="M-180 0H844v256H-180z"/> - <path fill="#107b00" d="M-180 256H844v256H-180z"/> - <path fill="#fff" d="M-180 169.31H844v176.13H-180z"/> - <path d="M309.98 195.55c-45.202-19.423-84.107 20.644-84.063 58.085.046 39.158 38.02 80.92 86.168 62.43-34.087-10.037-48.156-35.215-48.15-60.68-.245-25.216 15.887-54.54 46.045-59.835z" fill="#f0f"/> - <path fill="#ff1800" d="M363.145 294.214l-25.835-18.868-25.993 18.898 9.963-30.403-26-18.87 31.984.07 9.93-30.552 9.816 30.435 32.115.005-25.924 18.735"/> - <path d="M314.34 315.65c-50.517 17.536-88.554-20.48-89.216-59.456-.66-38.976 37.59-79.167 89.473-60.865-29.355 4.352-50.912 30.08-51.17 59.168-.196 21.994 12.812 53.345 50.913 61.152zM-179.98 0l348.61 256.62L-180 512l.002-509.38.015-2.622z" fill="red"/> - </g> -</svg> diff --git a/img/flags/1x1/er.svg b/img/flags/1x1/er.svg deleted file mode 100644 index ef48578..0000000 --- a/img/flags/1x1/er.svg +++ /dev/null @@ -1,13 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" height="512" width="512" viewBox="0 0 512 512"> - <defs> - <clipPath id="a"> - <path fill-opacity=".67" d="M0 0h512v512H0z"/> - </clipPath> - </defs> - <g fill-rule="evenodd" clip-path="url(#a)"> - <path fill="#be0027" d="M-48 0h591.45v512H-48z"/> - <path d="M-48 512l591.45-.32-.03-255.68L-48 512z" fill="#b4d7f4"/> - <path d="M-48 0l591.45.32-.03 255.68L-48 0z" fill="#239e46"/> - <path d="M148.76 351.44c-8.705 2.404-13.695 9.157-13.568 15.53l42.847-.173c.384-6.847-5.25-13.18-13.824-15.673 41.95-.867 78.396-16.58 85.018-26.663-6.554-2.843-14.13 1.734-19.533.68 12.826-5.927 51.252-30.798 45.005-57.46-4.856 14.81-19.567 27.062-25.833 30.352 14.354-21.796 33.954-44.487 16.95-62.06.858 10.185-6.473 21.394-9.71 22.236 8.326-23.03 16.27-51.944-1.77-71.005 2.37 6.89 1.413 26.324-1.85 27.197-1.004-15.66-3.676-48.598-20.17-48.13 5.24 4.663 7.532 17.39 7.648 30.245-3.76-8.806-8.03-15.437-17.166-21.94-7.39-14.174-20.54-25.918-33.692-34.33 1.476 10.316 2.698 18.456 17.103 29.156-7.51-.466-15.02-14.704-23.046-15.1-6.386-.307-11.396 5.786-21.83 2.28 1.156 3.444 6.024 4.97 7.05 7.517-2.234 1.543-7.54-.24-11.95-2.538 6.068 8.263 15.47 13.123 23.45 11.483 9.49-1.825 19.667-.86 29.373 4.663-2.48 1.273-12.127 1.265-18.32.49 5.63 5.698 9.404 9.475 19.19 9.412 8.74-.057 13.323-4.663 15.568-1.81 5.483 6.496 9.173 12.99 13.76 20.637-10.13 1.12-7.077-11.457-18.36-17.89-6.338 13.12 7.292 28.674 16.57 35.14.124 9.86 1.566 18.112 5.75 25.62 2.82 5.294 6.464 10.712 5.09 22.66-5.555-4.046-10.982-17.69-8.985-28.52-6.952 1.897-9.67 14.12-6.393 20.275 2.447 4.684 4.08 13.65 1.258 17.657-2.75 3.734-3.04 3.316-3.003 11.33.098 4.796-2.58 10.466-6.944 14.42.91-3.378 1.95-9.19.94-12.825-3.448 5.85-12.1 11.905-14.825 18.194-2.676 6.305-3.354 17.224-16.302 19.743-16.658 3.305-22.407 6.192-33.125 10.578-1.19-8.14 2.37-25.118 9.18-24.15 6.646 1.183 26.798-6.944 19.59-23.92-1.425 5.35-6.175 10.572-11.31 10.803 5.55-7.197 15.45-14.65 10.628-26.71-2.68 5.127-6.896 11.28-13.29 14.74 6.854-13.132.797-17.06-7.34-6.245-3.074 4.173-4.93 12.535-6.884 23.156-3.196-8.636-2.985-20.007-6.773-29.24-3.956-9.984 5.252-12.62 9.586-11.82 10.61 2.834 28.343 2.833 27.025-14.697-4.582 5.93-12.618 7.76-21.297 5.627 9.747-7.118 17.442-20.505 6.58-27.494-.36 7.412-6.097 15.722-13.755 19.55-1.792-6.255-1.792-12.892-.255-20.168-4.277 4.5-7.4 13.866-9.883 24.512-.187-10.523 1.804-18.106 3.28-23.767 2.238-8.27 7.8-2.89 16.315-2.28 8.2.466 19.49-4.066 17.333-15.185-2.8 4.4-8.548 6.11-14.42 5.646 7.07-4.283 19.387-11.893 12.632-23.6-2.838 4.433-3.757 8.226-11.97 9.586 2.15-4.948 2.508-11.944 8.883-14.716-11.372-2.264-17.883 5.198-21.193 16.887-1.342-8.103-2.94-11.086-3.257-17.014 6.147-6.827 6.79-20.183-6.517-23.17-.79 6.89-.556 8.53.958 14.14-6.247-3.71-15.052-5.758-20.914-.51 3.972 4.286 10.12 8.06 19.594 3.385-2.238 7.323-8.06 6.07-16.058 3.277 4.89 9.184 11.06 10.815 17.868 9.757 3.565 9.4 3.722 16.54-6.696 30.23.482-8.506-.123-14.844-6.88-21.722-5.793-5.672-10.5.243-1.45 12.853-5.49-4.043-11.705-12.25-13.576-20.455-1.81 10.137-.18 22.084 5.432 28.782-2.655 2.836-5.673-.3-10.137-7.24 1.69 22.205 11.162 26.49 23.894 21.54.363 12.188.363 23.473 1.087 38.196-7.424-10.68-16.835-18.645-22.086-20.636-1.628 5.974 4.528 13.756 7.967 18.1-5.25-1.085-16.654-9.774-16.654-9.774-1.147 9.896 11.647 19.068 19.913 23.17-9.714-.422-14-4.102-20.275-10.137.122 27.456 29.748 22.688 35.3 18.464.724 13.517 1.756 29.142 2.48 42.66-8.375-1.462-7.717-3.98-14.883-4.644-19.89-.775-35.668-23.876-40.893-40.87-1.5 2.797-.31 5.723-1.68 9.16-3.23-8.342-7.356-19.115-12.89-24.128 1.41 4.863 1.56 9.804 1.07 18.892-1.9-5.89-3.666-7.694-3.793-14.606.122-5.307 5.12-9.223 4.844-16.687-.205-5.448-5.176-17.26-5.907-26.403-2.407 9.41-3.917 19.33-7.604 25.158 1.832-10.05 1.245-16.985 4.344-23.75 3.58-7.12 6.624-13.476 4.24-20.663-2.286 2.775-1.5 5.297-7.242 12.04-1.247-7.333 7.426-19.07 15.842-23.79 5.936-3.127 13.418-14.314 8.545-21.98-5.582 4.008-8.09 9.425-15.974 18.68 5.624-21.987 20.24-27.74 37.736-27.815 3.87-.018 11.677-1.416 13.867-6.54-4.93 1.905-10.762 2.147-15.95 1.11 3.776-5.546 11.73-4.825 19.14-4.858 5.813-.028 14.888-.817 18.557-9.095-7.09 3.072-18.15 3.71-25.113 1.535 11.074-5.738 28.42-6.356 37.316-13.885-10.14-7.568-35.514 1.763-51.54 12.755 4.478-4.096 11.558-11.362 15.464-17.228-8.766-4.203-30.933 20.355-38.57 34.947-7.253 4.095-10.155 10.516-12.97 14.997 3.864-13.06 4.273-22.536 7.498-33.29-24.863 8.558-14.53 54.497-19.937 65.487.636-12.134.12-27.722-4.875-35.76-7.658 5.842-8.276 40.23-1.086 68.857-2.597-7.66-7.497-14.812-9.07-24.136-11.333 20.672 6.645 45.06 21.68 64.324-11.32-5.895-22.51-18.575-29.86-29.204 2.03 36.998 40.665 44.686 46.664 53.78-8.14-3.79-23.705-11.29-30.31-3.432 10.752 2.482 19.328 5.35 26.238 9.88 10.027 12.52 29.014 17.996 62.082 19.378z" fill="#f3e295"/> - </g> -</svg> diff --git a/img/flags/1x1/es-ct.svg b/img/flags/1x1/es-ct.svg deleted file mode 100644 index 832ca53..0000000 --- a/img/flags/1x1/es-ct.svg +++ /dev/null @@ -1,4 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" height="512" width="512" viewBox="0 0 512 512"> - <path fill="#fcdd09" d="M0 0h512v512H0z"/> - <path d="M0 90h810m0 120H0m0 120h810m0 120H0" stroke="#da121a" stroke-width="60" transform="matrix(.6321 0 0 .94815 0 0)"/> -</svg> diff --git a/img/flags/1x1/es.svg b/img/flags/1x1/es.svg deleted file mode 100644 index 9a7e10c..0000000 --- a/img/flags/1x1/es.svg +++ /dev/null @@ -1,581 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" height="512" width="512" viewBox="0 0 512 512"> - <path fill="#c60b1e" d="M0 0h512v512H0z"/> - <path fill="#ffc400" d="M0 128h512v256H0z"/> - <path d="M171.727 227.575s-.523 0-.81-.164c-.29-.166-1.156-.987-1.156-.987l-.694-.496-.633-.876s-.753-1.198-.408-2.133c.345-.93.925-1.262 1.448-1.534.52-.274 1.616-.603 1.616-.603s.87-.383 1.158-.44c.288-.055 1.333-.328 1.333-.328s.29-.163.577-.273c.292-.11.695-.11.93-.168.23-.055.81-.24 1.155-.26.538-.02 1.39.096 1.68.096.29 0 1.273.058 1.676.058s1.85-.113 2.256-.113c.404 0 .696-.05 1.16 0 .46.055 1.27.327 1.505.44.23.11 1.62.604 2.14.767.52.16 1.795.382 2.376.656.574.276.93.738 1.216 1.122.292.383.345.8.46 1.076.112.274.116.863.005 1.136-.117.272-.526.837-.526.837l-.637 1.04-.81.653s-.58.553-1.04.495c-.465-.047-5.153-.877-8.163-.877-3.01 0-7.817.877-7.817.877" fill="#ad1519"/> - <path d="M171.727 227.575s-.523 0-.81-.164c-.29-.166-1.156-.987-1.156-.987l-.694-.496-.633-.876s-.753-1.198-.408-2.133c.345-.93.925-1.262 1.448-1.534.52-.274 1.616-.603 1.616-.603s.87-.383 1.158-.44c.288-.055 1.333-.328 1.333-.328s.29-.163.577-.273c.292-.11.695-.11.93-.168.23-.055.81-.24 1.155-.26.538-.02 1.39.096 1.68.096.29 0 1.273.058 1.676.058s1.85-.113 2.256-.113c.404 0 .696-.05 1.16 0 .46.055 1.27.327 1.505.44.23.11 1.62.604 2.14.767.52.16 1.795.382 2.376.656.574.276.93.738 1.216 1.122.292.383.345.8.46 1.076.112.274.116.863.005 1.136-.117.272-.526.837-.526.837l-.637 1.04-.81.653s-.58.553-1.04.495c-.465-.047-5.153-.877-8.163-.877-3.01 0-7.817.877-7.817.877h.004z" fill="none" stroke="#000" stroke-width=".266" stroke-linejoin="round"/> - <path d="M178.166 220.858c0-1.414.633-2.556 1.412-2.556.78 0 1.413 1.142 1.413 2.556 0 1.408-.633 2.553-1.412 2.553-.78 0-1.412-1.144-1.412-2.552" fill="#c8b100"/> - <path d="M178.166 220.858c0-1.414.633-2.556 1.412-2.556.78 0 1.413 1.142 1.413 2.556 0 1.408-.633 2.553-1.412 2.553-.78 0-1.412-1.144-1.412-2.552z" fill="none" stroke="#000" stroke-width=".266"/> - <path d="M178.957 220.858c0-1.3.29-2.355.648-2.355.36 0 .65 1.055.65 2.355 0 1.292-.29 2.346-.65 2.346-.357 0-.648-1.054-.648-2.346" fill="#c8b100"/> - <path d="M178.957 220.858c0-1.3.29-2.355.648-2.355.36 0 .65 1.055.65 2.355 0 1.292-.29 2.346-.65 2.346-.357 0-.648-1.054-.648-2.346z" fill="none" stroke="#000" stroke-width=".266"/> - <path d="M178.652 218.157c0-.49.423-.898.946-.898.522 0 .945.407.945.897 0 .495-.423.89-.945.89-.523 0-.946-.395-.946-.89" fill="#c8b100"/> - <path d="M180.265 217.84v.597h-1.462v-.596h.48v-1.34h-.634v-.594h.632v-.58h.622v.58h.63v.593h-.63v1.34h.36" fill="#c8b100"/> - <path d="M180.265 217.84v.597h-1.462v-.596h.48v-1.34h-.634v-.594h.632v-.58h.622v.58h.63v.593h-.63v1.34h.36" fill="none" stroke="#000" stroke-width=".307"/> - <path d="M180.92 217.84v.597h-2.597v-.596h.96v-1.34h-.634v-.594h.632v-.58h.622v.58h.63v.593h-.63v1.34h1.015" fill="#c8b100"/> - <path d="M180.92 217.84v.597h-2.597v-.596h.96v-1.34h-.634v-.594h.632v-.58h.622v.58h.63v.593h-.63v1.34h1.015" fill="none" stroke="#000" stroke-width=".307"/> - <path d="M179.87 217.296a.9.9 0 0 1 .673.86c0 .496-.423.892-.945.892-.523 0-.946-.396-.946-.89 0-.415.296-.768.7-.866" fill="none" stroke="#000" stroke-width=".266"/> - <path d="M179.6 227.41h-4.922l-.113-1.206-.232-1.258-.245-1.57c-1.356-1.79-2.604-2.965-3.022-2.713.1-.33.22-.58.48-.73 1.206-.718 3.693 1.002 5.564 3.827.168.258.33.516.472.776h4.066c.146-.255.307-.513.476-.776 1.867-2.825 4.357-4.545 5.56-3.828.26.152.38.4.483.73-.42-.247-1.666.923-3.03 2.713l-.24 1.57-.232 1.26-.11 1.206h-4.95" fill="#c8b100"/> - <path d="M179.6 227.41h-4.922l-.113-1.206-.232-1.258-.245-1.57c-1.356-1.79-2.604-2.965-3.022-2.713.1-.33.22-.58.48-.73 1.206-.718 3.693 1.002 5.564 3.827.168.258.33.516.472.776h4.066c.146-.255.307-.513.476-.776 1.867-2.825 4.357-4.545 5.56-3.828.26.152.38.4.483.73-.42-.247-1.666.923-3.03 2.713l-.24 1.57-.232 1.26-.11 1.206H179.6z" fill="none" stroke="#000" stroke-width=".266"/> - <path d="M171.282 220.616c.924-.546 3.086 1.167 4.84 3.827m11.826-3.827c-.928-.546-3.086 1.167-4.84 3.827" fill="none" stroke="#000" stroke-width=".266"/> - <path d="M172.33 229.633a4.794 4.794 0 0 0-.592-1.11c1.993-.585 4.77-.952 7.855-.96 3.084.008 5.883.375 7.872.96 0 0-.223.393-.53.94-.174.3-.4.827-.384.827-1.8-.552-4.12-.835-6.972-.838-2.85.003-5.59.352-7.018.875.015 0-.1-.33-.242-.694h.01" fill="#c8b100"/> - <path d="M172.33 229.633a4.794 4.794 0 0 0-.592-1.11c1.993-.585 4.77-.952 7.855-.96 3.084.008 5.883.375 7.872.96 0 0-.223.393-.53.94-.174.3-.4.827-.384.827-1.8-.552-4.12-.835-6.972-.838-2.85.003-5.59.352-7.018.875.015 0-.1-.33-.242-.694h.01" fill="none" stroke="#000" stroke-width=".266"/> - <path d="M179.593 232.167c2.49-.004 5.233-.382 6.244-.643.68-.197 1.074-.502 1.002-.855-.036-.168-.18-.313-.378-.397-1.49-.476-4.166-.814-6.87-.818-2.698.004-5.393.342-6.88.818-.194.084-.34.23-.375.396-.073.352.323.657.998.854 1.014.26 3.77.64 6.258.643" fill="#c8b100"/> - <path d="M179.593 232.167c2.49-.004 5.233-.382 6.244-.643.68-.197 1.074-.502 1.002-.855-.036-.168-.18-.313-.378-.397-1.49-.476-4.166-.814-6.87-.818-2.698.004-5.393.342-6.88.818-.194.084-.34.23-.375.396-.073.352.323.657.998.854 1.014.26 3.77.64 6.258.643z" fill="none" stroke="#000" stroke-width=".266"/> - <path d="M187.592 227.41l-.61-.547s-.577.355-1.303.246c-.723-.11-.956-.985-.956-.985s-.81.68-1.475.63c-.665-.06-1.1-.63-1.1-.63s-.72.515-1.358.465c-.637-.06-1.245-.85-1.245-.85s-.637.82-1.273.878c-.638.052-1.16-.553-1.16-.553s-.288.605-1.1.74c-.808.137-1.5-.63-1.5-.63s-.464.74-1.013.934c-.548.19-1.274-.278-1.274-.278s-.116.277-.2.44c-.088.165-.318.194-.318.194l.18.49c1.984-.574 4.672-.93 7.713-.933 3.046.003 5.807.36 7.796.938l.203-.55" fill="#c8b100"/> - <path d="M187.592 227.41l-.61-.547s-.577.355-1.303.246c-.723-.11-.956-.985-.956-.985s-.81.68-1.475.63c-.665-.06-1.1-.63-1.1-.63s-.72.515-1.358.465c-.637-.06-1.245-.85-1.245-.85s-.637.82-1.273.878c-.638.052-1.16-.553-1.16-.553s-.288.605-1.1.74c-.808.137-1.5-.63-1.5-.63s-.464.74-1.013.934c-.548.19-1.274-.278-1.274-.278s-.116.277-.2.44c-.088.165-.318.194-.318.194l.18.49c1.984-.574 4.672-.93 7.713-.933 3.046.003 5.807.36 7.796.938l.203-.55h-.008z" fill="none" stroke="#000" stroke-width=".266"/> - <path d="M179.61 224.76l.287.052c-.047.12-.058.246-.058.38 0 .597.51 1.08 1.144 1.08.506 0 .933-.312 1.082-.744.02.01.112-.393.158-.386.034 0 .03.42.05.41.07.542.568.914 1.13.914.628 0 1.133-.483 1.133-1.08 0-.044 0-.088-.006-.13l.36-.358.194.455a.923.923 0 0 0-.107.47c0 .57.488 1.032 1.086 1.032.38 0 .71-.185.906-.462l.23-.29-.004.36c0 .355.153.676.504.734 0 0 .394.03.933-.393.53-.418.82-.767.82-.767l.035.43s-.522.857-.998 1.13c-.258.152-.658.313-.972.257-.33-.05-.567-.32-.69-.624a1.59 1.59 0 0 1-.815.22c-.645 0-1.225-.355-1.454-.882a1.59 1.59 0 0 1-1.192.512c-.515 0-.987-.23-1.282-.59a1.65 1.65 0 0 1-1.12.435c-.57 0-1.08-.285-1.368-.703-.29.418-.795.703-1.363.703a1.64 1.64 0 0 1-1.12-.434c-.296.36-.77.59-1.285.59a1.59 1.59 0 0 1-1.19-.512c-.23.524-.81.883-1.454.883-.3 0-.58-.08-.815-.22-.12.305-.36.574-.69.624-.314.056-.71-.105-.97-.258-.477-.272-1.038-1.13-1.038-1.13l.073-.43s.296.35.822.768c.535.422.933.393.933.393.35-.058.504-.38.504-.734l-.004-.36.23.29c.195.277.527.462.905.462.6 0 1.087-.462 1.087-1.032a.965.965 0 0 0-.103-.47l.19-.455.357.358a.808.808 0 0 0-.01.13c0 .597.507 1.08 1.14 1.08.56 0 1.056-.372 1.13-.913.015.007.01-.41.048-.41.047-.008.143.396.158.385.15.432.58.745 1.087.745.628 0 1.14-.484 1.14-1.08a.98.98 0 0 0-.058-.38l.3-.053" fill="#c8b100"/> - <path d="M179.61 224.76l.287.052c-.047.12-.058.246-.058.38 0 .597.51 1.08 1.144 1.08.506 0 .933-.312 1.082-.744.02.01.112-.393.158-.386.034 0 .03.42.05.41.07.542.568.914 1.13.914.628 0 1.133-.483 1.133-1.08 0-.044 0-.088-.006-.13l.36-.358.194.455a.923.923 0 0 0-.107.47c0 .57.488 1.032 1.086 1.032.38 0 .71-.185.906-.462l.23-.29-.004.36c0 .355.153.676.504.734 0 0 .394.03.933-.393.53-.418.82-.767.82-.767l.035.43s-.522.857-.998 1.13c-.258.152-.658.313-.972.257-.33-.05-.567-.32-.69-.624a1.59 1.59 0 0 1-.815.22c-.645 0-1.225-.355-1.454-.882a1.59 1.59 0 0 1-1.192.512c-.515 0-.987-.23-1.282-.59a1.65 1.65 0 0 1-1.12.435c-.57 0-1.08-.285-1.368-.703-.29.418-.795.703-1.363.703a1.64 1.64 0 0 1-1.12-.434c-.296.36-.77.59-1.285.59a1.59 1.59 0 0 1-1.19-.512c-.23.524-.81.883-1.454.883-.3 0-.58-.08-.815-.22-.12.305-.36.574-.69.624-.314.056-.71-.105-.97-.258-.477-.272-1.038-1.13-1.038-1.13l.073-.43s.296.35.822.768c.535.422.933.393.933.393.35-.058.504-.38.504-.734l-.004-.36.23.29c.195.277.527.462.905.462.6 0 1.087-.462 1.087-1.032a.965.965 0 0 0-.103-.47l.19-.455.357.358a.808.808 0 0 0-.01.13c0 .597.507 1.08 1.14 1.08.56 0 1.056-.372 1.13-.913.015.007.01-.41.048-.41.047-.008.143.396.158.385.15.432.58.745 1.087.745.628 0 1.14-.484 1.14-1.08a.98.98 0 0 0-.058-.38l.3-.053h.008z" fill="none" stroke="#000" stroke-width=".266"/> - <path d="M179.593 227.568c-3.086.003-5.862.37-7.85.96-.136.043-.3-.06-.343-.18-.043-.125.054-.282.185-.326 2-.61 4.844-.996 8.008-1 3.16.004 6.017.39 8.017 1 .13.044.227.2.185.327-.038.12-.207.22-.338.178-1.992-.59-4.78-.957-7.864-.96" fill="#c8b100"/> - <path d="M179.593 227.568c-3.086.003-5.862.37-7.85.96-.136.043-.3-.06-.343-.18-.043-.125.054-.282.185-.326 2-.61 4.844-.996 8.008-1 3.16.004 6.017.39 8.017 1 .13.044.227.2.185.327-.038.12-.207.22-.338.178-1.992-.59-4.78-.957-7.864-.96z" fill="none" stroke="#000" stroke-width=".266" stroke-linejoin="round"/> - <path d="M176.606 228.662c0-.232.2-.422.45-.422.246 0 .444.19.444.422 0 .236-.198.42-.445.42-.25 0-.45-.184-.45-.42" fill="#fff"/> - <path d="M176.606 228.662c0-.232.2-.422.45-.422.246 0 .444.19.444.422 0 .236-.198.42-.445.42-.25 0-.45-.184-.45-.42z" fill="none" stroke="#000" stroke-width=".266"/> - <path d="M179.628 228.845h-.99c-.184 0-.338-.146-.338-.32 0-.173.15-.313.33-.313h2.01a.32.32 0 0 1 .333.312.33.33 0 0 1-.335.32h-1.01" fill="#ad1519"/> - <path d="M179.628 228.845h-.99c-.184 0-.338-.146-.338-.32 0-.173.15-.313.33-.313h2.01a.32.32 0 0 1 .333.312.33.33 0 0 1-.335.32h-1.01" fill="none" stroke="#000" stroke-width=".266"/> - <path d="M174.656 229.186l-.71.105c-.18.027-.357-.09-.384-.264a.316.316 0 0 1 .277-.357l.712-.106.73-.113c.18-.02.35.092.38.263.023.17-.1.334-.28.36l-.726.113" fill="#058e6e"/> - <path d="M174.656 229.186l-.71.105c-.18.027-.357-.09-.384-.264a.316.316 0 0 1 .277-.357l.712-.106.73-.113c.18-.02.35.092.38.263.023.17-.1.334-.28.36l-.726.113" fill="none" stroke="#000" stroke-width=".266"/> - <path d="M171.788 229.683l.315-.508.672.127-.393.572-.594-.19" fill="#ad1519"/> - <path d="M171.788 229.683l.315-.508.672.127-.393.572-.594-.19" fill="none" stroke="#000" stroke-width=".266"/> - <path d="M181.69 228.662c0-.232.2-.422.45-.422.245 0 .445.19.445.422 0 .236-.2.42-.446.42-.25 0-.45-.184-.45-.42" fill="#fff"/> - <path d="M181.69 228.662c0-.232.2-.422.45-.422.245 0 .445.19.445.422 0 .236-.2.42-.446.42-.25 0-.45-.184-.45-.42z" fill="none" stroke="#000" stroke-width=".266"/> - <path d="M184.534 229.186l.715.105c.18.027.35-.09.38-.264a.313.313 0 0 0-.273-.357l-.718-.106-.727-.113c-.185-.02-.353.092-.38.263-.03.17.096.334.28.36l.72.113" fill="#058e6e"/> - <path d="M184.534 229.186l.715.105c.18.027.35-.09.38-.264a.313.313 0 0 0-.273-.357l-.718-.106-.727-.113c-.185-.02-.353.092-.38.263-.03.17.096.334.28.36l.72.113" fill="none" stroke="#000" stroke-width=".266"/> - <path d="M187.345 229.713l-.253-.542-.69.06.33.606.613-.123" fill="#ad1519"/> - <path d="M187.345 229.713l-.253-.542-.69.06.33.606.613-.123" fill="none" stroke="#000" stroke-width=".266"/> - <path d="M179.585 231.59c-2.49-.004-4.744-.222-6.457-.666 1.713-.44 3.967-.712 6.457-.72 2.493.003 4.758.277 6.475.72-1.717.444-3.982.662-6.475.665" fill="#ad1519"/> - <path d="M179.585 231.59c-2.49-.004-4.744-.222-6.457-.666 1.713-.44 3.967-.712 6.457-.72 2.493.003 4.758.277 6.475.72-1.717.444-3.982.662-6.475.665z" fill="none" stroke="#000" stroke-width=".266" stroke-linejoin="round"/> - <path d="M187.446 226.186c.064-.192.004-.383-.135-.43-.137-.04-.306.085-.37.27-.067.196-.01.39.133.433.138.04.303-.08.373-.274" fill="#c8b100"/> - <path d="M187.446 226.186c.064-.192.004-.383-.135-.43-.137-.04-.306.085-.37.27-.067.196-.01.39.133.433.138.04.303-.08.373-.274z" fill="none" stroke="#000" stroke-width=".266"/> - <path d="M182.485 225.227c.023-.2-.073-.38-.22-.398-.145-.018-.284.135-.306.334-.028.2.07.378.214.397.146.015.285-.138.31-.333" fill="#c8b100"/> - <path d="M182.485 225.227c.023-.2-.073-.38-.22-.398-.145-.018-.284.135-.306.334-.028.2.07.378.214.397.146.015.285-.138.31-.333z" fill="none" stroke="#000" stroke-width=".266"/> - <path d="M176.72 225.227c-.02-.2.075-.38.22-.398.147-.018.285.135.312.334.023.2-.073.378-.22.397-.142.015-.284-.138-.31-.333" fill="#c8b100"/> - <path d="M176.72 225.227c-.02-.2.075-.38.22-.398.147-.018.285.135.312.334.023.2-.073.378-.22.397-.142.015-.284-.138-.31-.333z" fill="none" stroke="#000" stroke-width=".266"/> - <path d="M171.76 226.186c-.064-.192-.003-.383.136-.43.138-.04.306.085.372.27.065.196.007.39-.135.433-.138.04-.304-.08-.372-.274" fill="#c8b100"/> - <path d="M171.76 226.186c-.064-.192-.003-.383.136-.43.138-.04.306.085.372.27.065.196.007.39-.135.433-.138.04-.304-.08-.372-.274z" fill="none" stroke="#000" stroke-width=".266"/> - <path d="M179.585 222.36l-.878.53.653 1.415.225.15.224-.15.655-1.414-.88-.53" fill="#c8b100"/> - <path d="M179.585 222.36l-.878.53.653 1.415.225.15.224-.15.655-1.414-.88-.53" fill="none" stroke="#000" stroke-width=".266"/> - <path d="M177.662 224.5l.4.58 1.374-.422.142-.19-.146-.2-1.37-.4-.4.63" fill="#c8b100"/> - <path d="M177.662 224.5l.4.58 1.374-.422.142-.19-.146-.2-1.37-.4-.4.63" fill="none" stroke="#000" stroke-width=".266"/> - <path d="M181.52 224.5l-.398.58-1.375-.422-.146-.19.15-.2 1.372-.4.4.63" fill="#c8b100"/> - <path d="M181.52 224.5l-.398.58-1.375-.422-.146-.19.15-.2 1.372-.4.4.63" fill="none" stroke="#000" stroke-width=".266"/> - <path d="M173.872 222.99l-.69.65.882 1.165.235.093.17-.178.31-1.406-.908-.324" fill="#c8b100"/> - <path d="M173.872 222.99l-.69.65.882 1.165.235.093.17-.178.31-1.406-.908-.324" fill="none" stroke="#000" stroke-width=".266"/> - <path d="M172.424 225.324l.52.486 1.25-.675.097-.217-.18-.165-1.432-.123-.254.694" fill="#c8b100"/> - <path d="M172.424 225.324l.52.486 1.25-.675.097-.217-.18-.165-1.432-.123-.254.694" fill="none" stroke="#000" stroke-width=".266"/> - <path d="M176.204 224.564l-.265.643-1.438-.13-.184-.165.1-.22 1.256-.662.53.534" fill="#c8b100"/> - <path d="M176.204 224.564l-.265.643-1.438-.13-.184-.165.1-.22 1.256-.662.53.534" fill="none" stroke="#000" stroke-width=".266"/> - <path d="M171.043 225.505l-.116.68-1.43.15-.216-.124.047-.23 1.08-.896.636.42" fill="#c8b100"/> - <path d="M171.043 225.505l-.116.68-1.43.15-.216-.124.047-.23 1.08-.896.636.42" fill="none" stroke="#000" stroke-width=".266"/> - <path d="M173.808 224.92c0-.265.226-.48.503-.48s.503.215.503.48a.492.492 0 0 1-.502.477.492.492 0 0 1-.502-.476" fill="#c8b100"/> - <path d="M173.808 224.92c0-.265.226-.48.503-.48s.503.215.503.48a.492.492 0 0 1-.502.477.492.492 0 0 1-.502-.476z" fill="none" stroke="#000" stroke-width=".266"/> - <path d="M185.327 222.99l.69.65-.884 1.165-.237.093-.168-.178-.31-1.406.91-.324" fill="#c8b100"/> - <path d="M185.327 222.99l.69.65-.884 1.165-.237.093-.168-.178-.31-1.406.91-.324" fill="none" stroke="#000" stroke-width=".266"/> - <path d="M186.77 225.324l-.518.486-1.253-.675-.1-.217.188-.165 1.433-.123.25.694" fill="#c8b100"/> - <path d="M186.77 225.324l-.518.486-1.253-.675-.1-.217.188-.165 1.433-.123.25.694" fill="none" stroke="#000" stroke-width=".266"/> - <path d="M182.995 224.564l.265.643 1.428-.13.19-.165-.105-.22-1.25-.662-.528.534" fill="#c8b100"/> - <path d="M182.995 224.564l.265.643 1.428-.13.19-.165-.105-.22-1.25-.662-.528.534" fill="none" stroke="#000" stroke-width=".266"/> - <path d="M187.955 225.505l.12.68 1.433.15.214-.124-.05-.23-1.078-.896-.64.42" fill="#c8b100"/> - <path d="M187.955 225.505l.12.68 1.433.15.214-.124-.05-.23-1.078-.896-.64.42" fill="none" stroke="#000" stroke-width=".266"/> - <path d="M179.09 224.47c0-.27.228-.48.503-.48.28 0 .504.21.504.48a.49.49 0 0 1-.504.476c-.275 0-.502-.215-.502-.476" fill="#c8b100"/> - <path d="M179.09 224.47c0-.27.228-.48.503-.48.28 0 .504.21.504.48a.49.49 0 0 1-.504.476c-.275 0-.502-.215-.502-.476z" fill="none" stroke="#000" stroke-width=".266"/> - <path d="M184.393 224.92c0-.265.226-.48.503-.48a.49.49 0 0 1 .503.48.49.49 0 0 1-.504.477.492.492 0 0 1-.503-.476" fill="#c8b100"/> - <path d="M184.393 224.92c0-.265.226-.48.503-.48a.49.49 0 0 1 .503.48.49.49 0 0 1-.504.477.492.492 0 0 1-.503-.476z" fill="none" stroke="#000" stroke-width=".266"/> - <path d="M169.108 226.302c-.016.01-.387-.495-.672-.75-.204-.177-.69-.33-.69-.33 0-.09.283-.294.594-.294.184 0 .357.075.456.204l.042-.197s.25.047.366.328c.116.29.042.73.042.73s-.046.203-.138.31" fill="#c8b100"/> - <path d="M169.108 226.302c-.016.01-.387-.495-.672-.75-.204-.177-.69-.33-.69-.33 0-.09.283-.294.594-.294.184 0 .357.075.456.204l.042-.197s.25.047.366.328c.116.29.042.73.042.73s-.046.203-.138.31z" fill="none" stroke="#000" stroke-width=".266"/> - <path d="M169.127 226.05c.12-.123.365-.097.545.06.184.156.24.384.12.512-.12.127-.366.1-.546-.058-.184-.157-.238-.39-.12-.513" fill="#c8b100"/> - <path d="M169.127 226.05c.12-.123.365-.097.545.06.184.156.24.384.12.512-.12.127-.366.1-.546-.058-.184-.157-.238-.39-.12-.513z" fill="none" stroke="#000" stroke-width=".266"/> - <path d="M189.895 226.302c.01.01.388-.495.673-.75.194-.177.69-.33.69-.33 0-.09-.288-.294-.6-.294a.59.59 0 0 0-.456.204l-.042-.197s-.25.047-.364.328c-.112.29-.04.73-.04.73s.044.203.14.31" fill="#c8b100"/> - <path d="M189.895 226.302c.01.01.388-.495.673-.75.194-.177.69-.33.69-.33 0-.09-.288-.294-.6-.294a.59.59 0 0 0-.456.204l-.042-.197s-.25.047-.364.328c-.112.29-.04.73-.04.73s.044.203.14.31z" fill="none" stroke="#000" stroke-width=".266"/> - <path d="M189.906 226.05c-.118-.123-.364-.097-.548.06-.185.156-.238.384-.12.512.12.127.365.1.55-.058.184-.157.234-.39.118-.513" fill="#c8b100"/> - <path d="M189.906 226.05c-.118-.123-.364-.097-.548.06-.185.156-.238.384-.12.512.12.127.365.1.55-.058.184-.157.234-.39.118-.513z" fill="none" stroke="#000" stroke-width=".266"/> - <path d="M168.236 237.946h22.822v-5.982h-22.822v5.982z" fill="#c8b100"/> - <path d="M168.236 237.946h22.822v-5.982h-22.822v5.982z" fill="none" stroke="#000" stroke-width=".399"/> - <path d="M170.63 241.926c.144-.057.248-.064.424-.064h17.09c.17 0 .33.028.465.083-.585-.196-1.007-.726-1.007-1.353 0-.625.457-1.166 1.048-1.37a1.798 1.798 0 0 1-.494.084h-17.102a1.51 1.51 0 0 1-.48-.056l.093.015c.61.19.96.73.96 1.327 0 .574-.388 1.15-.996 1.334" fill="#c8b100"/> - <path d="M170.63 241.926c.144-.057.248-.064.424-.064h17.09c.17 0 .33.028.465.083-.585-.196-1.007-.726-1.007-1.353 0-.625.457-1.166 1.048-1.37a1.798 1.798 0 0 1-.494.084h-17.102a1.51 1.51 0 0 1-.48-.056l.093.015c.61.19.96.73.96 1.327 0 .574-.388 1.15-.996 1.334z" fill="none" stroke="#000" stroke-width=".399" stroke-linejoin="round"/> - <path d="M171.054 241.862h17.09c.58 0 1.048.36 1.048.8 0 .443-.47.803-1.047.803h-17.09c-.58 0-1.05-.36-1.05-.804 0-.44.47-.798 1.05-.798" fill="#c8b100"/> - <path d="M171.054 241.862h17.09c.58 0 1.048.36 1.048.8 0 .443-.47.803-1.047.803h-17.09c-.58 0-1.05-.36-1.05-.804 0-.44.47-.798 1.05-.798z" fill="none" stroke="#000" stroke-width=".399"/> - <path d="M171.054 237.946h17.102c.576 0 1.05.305 1.05.676 0 .378-.474.684-1.05.684h-17.102c-.58 0-1.048-.306-1.048-.684 0-.37.47-.676 1.048-.676" fill="#c8b100"/> - <path d="M171.054 237.946h17.102c.576 0 1.05.305 1.05.676 0 .378-.474.684-1.05.684h-17.102c-.58 0-1.048-.306-1.048-.684 0-.37.47-.676 1.048-.676z" fill="none" stroke="#000" stroke-width=".399"/> - <path d="M195.577 338.612c-1.577 0-2.983-.33-4.02-.883-1.03-.525-2.422-.845-3.958-.845-1.544 0-2.973.324-4.002.85-1.033.543-2.46.877-4.02.877-1.578 0-2.983-.367-4.02-.92-1.02-.502-2.388-.807-3.885-.807-1.547 0-2.922.295-3.95.83-1.038.55-2.474.897-4.048.897v2.472c1.574 0 3.01-.36 4.047-.905 1.03-.53 2.404-.833 3.95-.833 1.494 0 2.862.31 3.886.815 1.033.548 2.442.922 4.02.922 1.56 0 2.987-.34 4.02-.878 1.03-.535 2.458-.86 4-.86 1.537 0 2.93.325 3.96.852 1.036.552 2.42.886 4 .886l.02-2.472" fill="#005bbf"/> - <path d="M195.577 338.612c-1.577 0-2.983-.33-4.02-.883-1.03-.525-2.422-.845-3.958-.845-1.544 0-2.973.324-4.002.85-1.033.543-2.46.877-4.02.877-1.578 0-2.983-.367-4.02-.92-1.02-.502-2.388-.807-3.885-.807-1.547 0-2.922.295-3.95.83-1.038.55-2.474.897-4.048.897v2.472c1.574 0 3.01-.36 4.047-.905 1.03-.53 2.404-.833 3.95-.833 1.494 0 2.862.31 3.886.815 1.033.548 2.442.922 4.02.922 1.56 0 2.987-.34 4.02-.878 1.03-.535 2.458-.86 4-.86 1.537 0 2.93.325 3.96.852 1.036.552 2.42.886 4 .886l.02-2.472z" fill="none" stroke="#000" stroke-width=".399"/> - <path d="M195.577 341.084c-1.577 0-2.983-.334-4.02-.886-1.03-.527-2.422-.85-3.958-.85-1.544 0-2.973.323-4.002.858-1.033.537-2.46.878-4.02.878-1.578 0-2.983-.374-4.02-.922-1.02-.506-2.388-.815-3.885-.815-1.547 0-2.922.302-3.95.832-1.038.545-2.474.904-4.048.904v2.466c1.574 0 3.01-.352 4.047-.898 1.03-.54 2.404-.837 3.95-.837 1.494 0 2.862.31 3.886.815 1.033.55 2.442.92 4.02.92 1.56 0 2.987-.34 4.02-.88 1.03-.53 2.458-.855 4-.855 1.537 0 2.93.325 3.96.85 1.036.55 2.42.885 4 .885l.02-2.466" fill="#ccc"/> - <path d="M195.577 341.084c-1.577 0-2.983-.334-4.02-.886-1.03-.527-2.422-.85-3.958-.85-1.544 0-2.973.323-4.002.858-1.033.537-2.46.878-4.02.878-1.578 0-2.983-.374-4.02-.922-1.02-.506-2.388-.815-3.885-.815-1.547 0-2.922.302-3.95.832-1.038.545-2.474.904-4.048.904v2.466c1.574 0 3.01-.352 4.047-.898 1.03-.54 2.404-.837 3.95-.837 1.494 0 2.862.31 3.886.815 1.033.55 2.442.92 4.02.92 1.56 0 2.987-.34 4.02-.88 1.03-.53 2.458-.855 4-.855 1.537 0 2.93.325 3.96.85 1.036.55 2.42.885 4 .885l.02-2.466" fill="none" stroke="#000" stroke-width=".399"/> - <path d="M195.577 343.55c-1.577 0-2.983-.334-4.02-.884-1.03-.526-2.422-.85-3.958-.85-1.544 0-2.973.324-4.002.854-1.033.54-2.46.88-4.02.88-1.578 0-2.983-.37-4.02-.92-1.02-.505-2.388-.815-3.885-.815-1.547 0-2.922.298-3.95.837-1.038.546-2.474.898-4.048.898v2.465c1.574 0 3.01-.353 4.047-.9 1.03-.532 2.404-.83 3.95-.83 1.494 0 2.862.31 3.886.81 1.033.553 2.442.92 4.02.92 1.56 0 2.987-.337 4.02-.875 1.03-.53 2.458-.855 4-.855 1.537 0 2.93.32 3.96.848 1.036.555 2.42.882 4 .882l.02-2.465" fill="#005bbf"/> - <path d="M195.577 343.55c-1.577 0-2.983-.334-4.02-.884-1.03-.526-2.422-.85-3.958-.85-1.544 0-2.973.324-4.002.854-1.033.54-2.46.88-4.02.88-1.578 0-2.983-.37-4.02-.92-1.02-.505-2.388-.815-3.885-.815-1.547 0-2.922.298-3.95.837-1.038.546-2.474.898-4.048.898v2.465c1.574 0 3.01-.353 4.047-.9 1.03-.532 2.404-.83 3.95-.83 1.494 0 2.862.31 3.886.81 1.033.553 2.442.92 4.02.92 1.56 0 2.987-.337 4.02-.875 1.03-.53 2.458-.855 4-.855 1.537 0 2.93.32 3.96.848 1.036.555 2.42.882 4 .882l.02-2.465" fill="none" stroke="#000" stroke-width=".399"/> - <path d="M195.56 348.485c-1.583 0-2.966-.334-4.003-.887-1.03-.523-2.422-.845-3.958-.845-1.544 0-2.973.322-4.002.852-1.033.54-2.46.88-4.02.88-1.578 0-2.983-.372-4.02-.924-1.02-.5-2.388-.807-3.885-.807-1.547 0-2.922.3-3.95.83-1.038.55-2.474.902-4.048.902v-2.454c1.574 0 3.01-.368 4.047-.916 1.03-.53 2.404-.83 3.95-.83 1.494 0 2.862.31 3.886.81 1.033.554 2.442.92 4.02.92 1.56 0 2.987-.336 4.02-.874 1.03-.53 2.458-.855 4-.855 1.537 0 2.93.32 3.96.848 1.036.555 2.442.882 4.02.882l-.02 2.47" fill="#ccc"/> - <path d="M195.56 348.485c-1.583 0-2.966-.334-4.003-.887-1.03-.523-2.422-.845-3.958-.845-1.544 0-2.973.322-4.002.852-1.033.54-2.46.88-4.02.88-1.578 0-2.983-.372-4.02-.924-1.02-.5-2.388-.807-3.885-.807-1.547 0-2.922.3-3.95.83-1.038.55-2.474.902-4.048.902v-2.454c1.574 0 3.01-.368 4.047-.916 1.03-.53 2.404-.83 3.95-.83 1.494 0 2.862.31 3.886.81 1.033.554 2.442.92 4.02.92 1.56 0 2.987-.336 4.02-.874 1.03-.53 2.458-.855 4-.855 1.537 0 2.93.32 3.96.848 1.036.555 2.442.882 4.02.882l-.02 2.47" fill="none" stroke="#000" stroke-width=".399"/> - <path d="M195.56 350.953c-1.583 0-2.966-.334-4.003-.882-1.03-.53-2.422-.854-3.958-.854-1.544 0-2.973.326-4.002.858-1.033.537-2.46.88-4.02.88-1.578 0-2.983-.375-4.02-.924-1.02-.505-2.388-.814-3.885-.814-1.547 0-2.922.302-3.95.835-1.038.547-2.474.903-4.048.903v-2.447c1.574 0 3.01-.374 4.047-.924 1.03-.53 2.404-.825 3.95-.825 1.494 0 2.862.305 3.886.808 1.033.548 2.442.92 4.02.92 1.56 0 2.987-.34 4.02-.88 1.03-.53 2.458-.848 4-.848 1.537 0 2.93.318 3.96.844 1.036.55 2.434.885 4.015.885l-.014 2.468" fill="#005bbf"/> - <path d="M195.56 350.953c-1.583 0-2.966-.334-4.003-.882-1.03-.53-2.422-.854-3.958-.854-1.544 0-2.973.326-4.002.858-1.033.537-2.46.88-4.02.88-1.578 0-2.983-.375-4.02-.924-1.02-.505-2.388-.814-3.885-.814-1.547 0-2.922.302-3.95.835-1.038.547-2.474.903-4.048.903v-2.447c1.574 0 3.01-.374 4.047-.924 1.03-.53 2.404-.825 3.95-.825 1.494 0 2.862.305 3.886.808 1.033.548 2.442.92 4.02.92 1.56 0 2.987-.34 4.02-.88 1.03-.53 2.458-.848 4-.848 1.537 0 2.93.318 3.96.844 1.036.55 2.434.885 4.015.885l-.014 2.468z" fill="none" stroke="#000" stroke-width=".399"/> - <path d="M170.63 328.482c.057.208.132.41.132.633 0 1.498-1.293 2.69-2.875 2.69h23.487c-1.583 0-2.877-1.192-2.877-2.69 0-.218.042-.425.097-.633a1.377 1.377 0 0 1-.45.055h-17.09c-.138 0-.3-.015-.423-.055" fill="#c8b100"/> - <path d="M170.63 328.482c.057.208.132.41.132.633 0 1.498-1.293 2.69-2.875 2.69h23.487c-1.583 0-2.877-1.192-2.877-2.69 0-.218.042-.425.097-.633a1.377 1.377 0 0 1-.45.055h-17.09c-.138 0-.3-.015-.423-.055z" fill="none" stroke="#000" stroke-width=".399" stroke-linejoin="round"/> - <path d="M171.054 326.93h17.09c.58 0 1.048.363 1.048.803 0 .444-.47.804-1.047.804h-17.09c-.58 0-1.05-.36-1.05-.804 0-.44.47-.804 1.05-.804" fill="#c8b100"/> - <path d="M171.054 326.93h17.09c.58 0 1.048.363 1.048.803 0 .444-.47.804-1.047.804h-17.09c-.58 0-1.05-.36-1.05-.804 0-.44.47-.804 1.05-.804z" fill="none" stroke="#000" stroke-width=".399"/> - <path d="M167.918 337.78h23.425v-5.975h-23.425v5.975z" fill="#c8b100"/> - <path d="M167.918 337.78h23.425v-5.975h-23.425v5.975z" fill="none" stroke="#000" stroke-width=".399"/> - <path d="M166.086 305.785c-2.318 1.338-3.89 2.708-3.635 3.392.128.63.864 1.098 1.916 1.796 1.655 1.153 2.66 3.212 1.873 4.16 1.37-1.104 2.238-2.756 2.238-4.592 0-1.92-.913-3.65-2.392-4.755" fill="#ad1519"/> - <path d="M166.086 305.785c-2.318 1.338-3.89 2.708-3.635 3.392.128.63.864 1.098 1.916 1.796 1.655 1.153 2.66 3.212 1.873 4.16 1.37-1.104 2.238-2.756 2.238-4.592 0-1.92-.913-3.65-2.392-4.755z" fill="none" stroke="#000" stroke-width=".399"/> - <path d="M171.273 325.962h16.645v-81.548h-16.645v81.548z" fill="#ccc"/> - <path d="M183.138 244.527v81.37m1.87-81.37v81.37m-13.735.065h16.645v-81.548h-16.645v81.548z" fill="none" stroke="#000" stroke-width=".399"/> - <path d="M204.92 274.917c-3.633-1.5-9.807-2.614-16.89-2.846-2.443.02-5.165.248-7.976.717-9.955 1.66-17.54 5.636-16.936 8.872.012.068.034.21.05.272 0 0-3.73-8.41-3.793-8.73-.664-3.593 7.748-8.008 18.798-9.85a57.01 57.01 0 0 1 9.787-.776c7.07 0 13.212.905 16.912 2.28l.047 10.06" fill="#ad1519"/> - <path d="M204.92 274.917c-3.633-1.5-9.807-2.614-16.89-2.846-2.443.02-5.165.248-7.976.717-9.955 1.66-17.54 5.636-16.936 8.872.012.068.034.21.05.272 0 0-3.73-8.41-3.793-8.73-.664-3.593 7.748-8.008 18.798-9.85a57.01 57.01 0 0 1 9.787-.776c7.07 0 13.212.905 16.912 2.28l.047 10.06" fill="none" stroke="#000" stroke-width=".399" stroke-linejoin="round"/> - <path d="M171.247 285.153c-4.615-.33-7.767-1.563-8.13-3.494-.283-1.54 1.276-3.24 4.064-4.786 1.245.134 2.646.305 4.093.305l-.026 7.973" fill="#ad1519"/> - <path d="M171.247 285.153c-4.615-.33-7.767-1.563-8.13-3.494-.283-1.54 1.276-3.24 4.064-4.786 1.245.134 2.646.305 4.093.305l-.026 7.973" fill="none" stroke="#000" stroke-width=".399"/> - <path d="M187.948 278.92c2.884.437 5.05 1.153 6.128 2.034l.096.177c.514 1.057-2.02 3.3-6.25 5.805l.026-8.014" fill="#ad1519"/> - <path d="M187.948 278.92c2.884.437 5.05 1.153 6.128 2.034l.096.177c.514 1.057-2.02 3.3-6.25 5.805l.026-8.014" fill="none" stroke="#000" stroke-width=".399"/> - <path d="M160.906 300.884c-.438-1.317 4.064-3.953 10.425-6.286 2.908-1.04 5.307-2.125 8.282-3.437 8.836-3.905 15.363-8.39 14.56-10.024l-.088-.168c.472.382 1.2 8.436 1.2 8.436.808 1.498-5.166 5.916-13.303 9.814-2.602 1.244-8.1 3.276-10.695 4.185-4.642 1.61-9.257 4.648-8.834 5.774l-1.544-8.29" fill="#ad1519"/> - <path d="M160.906 300.884c-.438-1.317 4.064-3.953 10.425-6.286 2.908-1.04 5.307-2.125 8.282-3.437 8.836-3.905 15.363-8.39 14.56-10.024l-.088-.168c.472.382 1.2 8.436 1.2 8.436.808 1.498-5.166 5.916-13.303 9.814-2.602 1.244-8.1 3.276-10.695 4.185-4.642 1.61-9.257 4.648-8.834 5.774l-1.544-8.29v-.003z" fill="none" stroke="#000" stroke-width=".399" stroke-linejoin="round"/> - <path d="M170.126 271.006c2.035-.743 3.368-1.62 2.714-3.223-.41-1.018-1.463-1.214-3.033-.64l-2.784 1.012 2.508 6.178c.273-.124.545-.252.83-.357.28-.102.576-.18.863-.262l-1.097-2.705v-.004zm-1.21-2.982l.703-.255c.582-.215 1.243.094 1.535.814.218.55.16 1.16-.51 1.588a4.69 4.69 0 0 1-.72.335l-1.01-2.483m7.716-2.583c-.292.078-.584.166-.88.223-.295.06-.6.092-.898.132l1.443 6.425 4.488-.902c-.053-.127-.123-.262-.15-.393-.03-.134-.026-.284-.034-.418-.787.225-1.648.47-2.68.677l-1.286-5.745m8.987 5.541c.847-2.33 1.872-4.564 2.88-6.825a5.394 5.394 0 0 1-1.109.072c-.535 1.64-1.204 3.28-1.906 4.913-.845-1.55-1.778-3.062-2.49-4.623-.348.045-.705.096-1.06.12-.347.023-.712.02-1.062.023 1.295 2.108 2.542 4.21 3.725 6.386.165-.03.334-.07.513-.08.166-.013.34.004.51.01m9.381-4.941c.156-.313.315-.62.49-.91-.24-.228-.982-.562-1.85-.65-1.83-.182-2.883.632-3.006 1.738-.258 2.313 3.394 2.113 3.226 3.647-.074.662-.776.93-1.52.858-.834-.084-1.44-.542-1.55-1.222l-.224-.02c-.12.402-.296.79-.486 1.18.534.346 1.23.542 1.894.607 1.866.186 3.29-.562 3.425-1.79.244-2.2-3.443-2.326-3.3-3.62.06-.545.48-.902 1.43-.807.684.07 1.107.44 1.29.97l.182.02" fill="#c8b100"/> - <path d="M332.35 225.713s-.754.793-1.304.905c-.548.11-1.243-.493-1.243-.493s-.495.515-1.102.653c-.605.138-1.448-.684-1.448-.684s-.578.822-1.097 1.015c-.522.19-1.156-.247-1.156-.247s-.23.407-.665.632c-.184.087-.49-.058-.49-.058l-.613-.382-.695-.742-.636-.248s-.287-.93-.318-1.093c-.022-.164-.085-.58-.085-.58-.13-.663.895-1.435 2.358-1.766.84-.196 1.573-.18 2.112-.015.584-.496 1.82-.842 3.275-.842 1.317 0 2.473.28 3.11.712.63-.433 1.786-.712 3.107-.712 1.445 0 2.68.346 3.266.843.54-.165 1.27-.177 2.116.016 1.458.33 2.487 1.103 2.356 1.767 0 0-.06.415-.087.58-.03.162-.318 1.092-.318 1.092l-.637.248-.696.742-.603.382s-.307.145-.49.058c-.436-.222-.67-.632-.67-.632s-.637.438-1.156.246c-.52-.194-1.1-1.016-1.1-1.016s-.838.822-1.45.684c-.605-.138-1.098-.653-1.098-.653s-.695.603-1.242.493c-.553-.112-1.297-.905-1.297-.905" fill="#ad1519"/> - <path d="M332.35 225.713s-.754.793-1.304.905c-.548.11-1.243-.493-1.243-.493s-.495.515-1.102.653c-.605.138-1.448-.684-1.448-.684s-.578.822-1.097 1.015c-.522.19-1.156-.247-1.156-.247s-.23.407-.665.632c-.184.087-.49-.058-.49-.058l-.613-.382-.695-.742-.636-.248s-.287-.93-.318-1.093c-.022-.164-.085-.58-.085-.58-.13-.663.895-1.435 2.358-1.766.84-.196 1.573-.18 2.112-.015.584-.496 1.82-.842 3.275-.842 1.317 0 2.473.28 3.11.712.63-.433 1.786-.712 3.107-.712 1.445 0 2.68.346 3.266.843.54-.165 1.27-.177 2.116.016 1.458.33 2.487 1.103 2.356 1.767 0 0-.06.415-.087.58-.03.162-.318 1.092-.318 1.092l-.637.248-.696.742-.603.382s-.307.145-.49.058c-.436-.222-.67-.632-.67-.632s-.637.438-1.156.246c-.52-.194-1.1-1.016-1.1-1.016s-.838.822-1.45.684c-.605-.138-1.098-.653-1.098-.653s-.695.603-1.242.493c-.553-.112-1.297-.905-1.297-.905h-.004z" fill="none" stroke="#000" stroke-width=".276"/> - <path d="M330.916 221.386c0-1.11.63-2.007 1.41-2.007.778 0 1.412.897 1.412 2.006 0 1.113-.634 2.014-1.413 2.014-.778 0-1.41-.9-1.41-2.014" fill="#c8b100"/> - <path d="M330.916 221.386c0-1.11.63-2.007 1.41-2.007.778 0 1.412.897 1.412 2.006 0 1.113-.634 2.014-1.413 2.014-.778 0-1.41-.9-1.41-2.014z" fill="none" stroke="#000" stroke-width=".266"/> - <path d="M331.704 221.386c0-1.018.29-1.847.65-1.847.358 0 .647.828.647 1.846 0 1.022-.288 1.85-.647 1.85-.358 0-.65-.828-.65-1.85" fill="#c8b100"/> - <path d="M331.704 221.386c0-1.018.29-1.847.65-1.847.358 0 .647.828.647 1.846 0 1.022-.288 1.85-.647 1.85-.358 0-.65-.828-.65-1.85z" fill="none" stroke="#000" stroke-width=".266"/> - <path d="M325.08 229.633a4.838 4.838 0 0 0-.597-1.11c1.995-.585 4.77-.952 7.857-.96 3.088.008 5.882.375 7.876.96l-.534.94c-.172.3-.4.827-.384.827-1.802-.552-4.12-.835-6.97-.838-2.852.003-5.594.352-7.022.875.02 0-.1-.33-.242-.694h.015" fill="#c8b100"/> - <path d="M325.08 229.633a4.838 4.838 0 0 0-.597-1.11c1.995-.585 4.77-.952 7.857-.96 3.088.008 5.882.375 7.876.96l-.534.94c-.172.3-.4.827-.384.827-1.802-.552-4.12-.835-6.97-.838-2.852.003-5.594.352-7.022.875.02 0-.1-.33-.242-.694h.015" fill="none" stroke="#000" stroke-width=".266"/> - <path d="M332.34 232.167c2.492-.004 5.234-.382 6.248-.643.675-.197 1.07-.502.997-.855-.034-.168-.18-.313-.377-.397-1.485-.476-4.164-.814-6.868-.818-2.698.004-5.39.342-6.88.818-.19.084-.342.23-.374.396-.075.352.32.657 1 .854 1.01.26 3.765.64 6.254.643" fill="#c8b100"/> - <path d="M332.34 232.167c2.492-.004 5.234-.382 6.248-.643.675-.197 1.07-.502.997-.855-.034-.168-.18-.313-.377-.397-1.485-.476-4.164-.814-6.868-.818-2.698.004-5.39.342-6.88.818-.19.084-.342.23-.374.396-.075.352.32.657 1 .854 1.01.26 3.765.64 6.254.643z" fill="none" stroke="#000" stroke-width=".266"/> - <path d="M338.38 222.285a.45.45 0 0 1 .46-.44c.258 0 .466.195.466.44 0 .244-.208.436-.466.436a.448.448 0 0 1-.46-.435" fill="#fff"/> - <path d="M338.38 222.285a.45.45 0 0 1 .46-.44c.258 0 .466.195.466.44 0 .244-.208.436-.466.436a.448.448 0 0 1-.46-.435zm-.26-1.535a.45.45 0 0 1 .46-.44c.256 0 .465.196.465.44 0 .24-.21.437-.464.437a.45.45 0 0 1-.46-.437zm-1.16-.96a.45.45 0 0 1 .465-.44c.252 0 .46.197.46.44 0 .244-.208.44-.46.44a.45.45 0 0 1-.465-.44zm-1.45-.463c0-.246.21-.443.466-.443a.45.45 0 0 1 .462.443.45.45 0 0 1-.462.438c-.256 0-.465-.2-.465-.438zm-1.473.052a.45.45 0 0 1 .46-.44c.26 0 .467.195.467.44 0 .242-.208.435-.466.435a.448.448 0 0 1-.46-.436z" fill="none" stroke="#000" stroke-width=".215"/> - <path d="M342.957 225.266a2.92 2.92 0 0 0 .225-1.102c0-1.628-1.292-2.952-2.893-2.952a2.82 2.82 0 0 0-1.41.378" fill="none" stroke="#000" stroke-width=".266" stroke-linecap="round"/> - <path d="M337.805 223.193c.15-.265.257-.59.257-.894 0-1.175-1.214-2.128-2.707-2.128-.638 0-1.22.174-1.68.46" fill="none" stroke="#000" stroke-width=".266"/> - <path d="M343.357 223.928c0-.24.21-.44.465-.44.256 0 .463.2.463.44 0 .244-.207.437-.463.437-.254 0-.465-.193-.465-.437zm-.175-1.615c0-.244.21-.436.465-.436.254 0 .462.192.462.436 0 .24-.21.437-.463.437-.256 0-.465-.196-.465-.437zm-1.04-1.235a.45.45 0 0 1 .462-.437c.257 0 .464.197.464.438 0 .242-.207.44-.464.44a.45.45 0 0 1-.46-.44zm-1.39-.66c0-.24.21-.435.465-.435.254 0 .46.196.46.435a.454.454 0 0 1-.46.444.455.455 0 0 1-.464-.444zm-1.477.06c0-.244.208-.44.464-.44s.465.196.465.44c0 .24-.21.436-.466.436-.257 0-.465-.197-.465-.437z" fill="none" stroke="#000" stroke-width=".215"/> - <path d="M340.337 227.41l-.605-.547s-.58.355-1.305.246c-.722-.11-.953-.985-.953-.985s-.813.68-1.475.63c-.664-.06-1.098-.63-1.098-.63s-.727.515-1.363.465c-.638-.06-1.246-.85-1.246-.85s-.637.82-1.274.878c-.637.052-1.157-.553-1.157-.553s-.29.605-1.1.74c-.81.137-1.506-.63-1.506-.63s-.456.74-1.01.934c-.548.19-1.27-.278-1.27-.278s-.116.277-.204.44c-.088.165-.32.194-.32.194l.182.49c1.983-.574 4.673-.93 7.714-.933 3.043.003 5.807.36 7.788.938l.204-.55" fill="#c8b100"/> - <path d="M340.337 227.41l-.605-.547s-.58.355-1.305.246c-.722-.11-.953-.985-.953-.985s-.813.68-1.475.63c-.664-.06-1.098-.63-1.098-.63s-.727.515-1.363.465c-.638-.06-1.246-.85-1.246-.85s-.637.82-1.274.878c-.637.052-1.157-.553-1.157-.553s-.29.605-1.1.74c-.81.137-1.506-.63-1.506-.63s-.456.74-1.01.934c-.548.19-1.27-.278-1.27-.278s-.116.277-.204.44c-.088.165-.32.194-.32.194l.182.49c1.983-.574 4.673-.93 7.714-.933 3.043.003 5.807.36 7.788.938l.204-.55h-.005z" fill="none" stroke="#000" stroke-width=".266"/> - <path d="M325.315 222.285a.45.45 0 0 1 .464-.44.45.45 0 0 1 .46.44.448.448 0 0 1-.46.436c-.26 0-.465-.19-.465-.435" fill="#fff"/> - <path d="M325.315 222.285a.45.45 0 0 1 .464-.44.45.45 0 0 1 .46.44.448.448 0 0 1-.46.436c-.26 0-.465-.19-.465-.435zm.261-1.535a.45.45 0 0 1 .464-.44.45.45 0 0 1 .46.44.45.45 0 0 1-.46.437c-.257 0-.464-.198-.464-.437zm1.155-.96c0-.243.21-.44.466-.44.257 0 .465.197.465.44 0 .244-.207.44-.464.44a.452.452 0 0 1-.465-.44zm1.45-.463c0-.246.207-.443.463-.443.258 0 .465.197.465.443 0 .238-.207.438-.465.438-.256 0-.464-.2-.464-.438zm1.477.052a.45.45 0 0 1 .46-.44.45.45 0 0 1 .465.44c0 .242-.207.435-.465.435a.448.448 0 0 1-.46-.436z" fill="none" stroke="#000" stroke-width=".215"/> - <path d="M321.66 225.266a2.98 2.98 0 0 1-.223-1.102c0-1.628 1.293-2.952 2.893-2.952.512 0 .99.138 1.41.378" fill="none" stroke="#000" stroke-width=".266" stroke-linecap="round"/> - <path d="M326.85 223.157c-.15-.262-.293-.553-.293-.858 0-1.175 1.214-2.128 2.707-2.128.634 0 1.222.174 1.683.46" fill="none" stroke="#000" stroke-width=".266"/> - <path d="M320.335 223.928c0-.24.206-.44.465-.44.25 0 .46.2.46.44a.45.45 0 0 1-.46.437c-.26 0-.465-.193-.465-.437zm.172-1.615c0-.244.21-.436.465-.436.258 0 .465.192.465.436 0 .24-.207.437-.465.437-.254 0-.465-.196-.465-.437zm1.045-1.235c0-.24.206-.437.465-.437a.45.45 0 0 1 .46.438.45.45 0 0 1-.46.44.452.452 0 0 1-.465-.44zm1.39-.66a.45.45 0 0 1 .46-.435c.258 0 .464.196.464.435a.454.454 0 0 1-.465.444c-.252 0-.46-.2-.46-.444zm1.474.06c0-.244.207-.44.465-.44a.45.45 0 0 1 .46.44c0 .24-.202.436-.46.436-.257 0-.464-.197-.464-.437z" fill="none" stroke="#000" stroke-width=".215"/> - <path d="M332.356 224.76l.288.052c-.045.12-.055.246-.055.38 0 .597.51 1.08 1.14 1.08.508 0 .938-.312 1.084-.744.018.01.11-.393.156-.386.043 0 .036.42.046.41.076.542.572.914 1.133.914.63 0 1.138-.483 1.138-1.08a.737.737 0 0 0-.01-.13l.36-.358.192.455a.955.955 0 0 0-.108.47c0 .57.49 1.032 1.088 1.032a1.1 1.1 0 0 0 .906-.462l.23-.29-.004.36c0 .355.155.676.502.734 0 0 .404.03.934-.393.534-.418.826-.767.826-.767l.03.43s-.522.857-.994 1.13c-.26.152-.658.313-.97.257-.336-.05-.57-.32-.693-.624a1.59 1.59 0 0 1-.817.22c-.645 0-1.224-.355-1.45-.882a1.6 1.6 0 0 1-1.196.512 1.67 1.67 0 0 1-1.283-.59c-.29.27-.685.435-1.12.435a1.667 1.667 0 0 1-1.366-.703c-.29.418-.79.703-1.364.703-.434 0-.828-.164-1.12-.434a1.66 1.66 0 0 1-1.282.59c-.483 0-.895-.192-1.19-.512-.228.524-.81.883-1.452.883-.3 0-.577-.08-.814-.22-.123.305-.36.574-.69.624-.316.056-.712-.105-.972-.258-.477-.272-1.04-1.13-1.04-1.13l.072-.43s.29.35.823.768c.532.422.935.393.935.393.35-.058.498-.38.498-.734v-.36l.23.29c.194.277.527.462.904.462.604 0 1.09-.462 1.09-1.032a.955.955 0 0 0-.107-.47l.192-.455.357.358c-.007.043-.007.086-.007.13 0 .597.507 1.08 1.13 1.08.566 0 1.062-.372 1.135-.913.015.007.01-.41.05-.41.05-.008.14.396.157.385.148.432.578.745 1.085.745.63 0 1.14-.484 1.14-1.08 0-.135-.006-.26-.052-.38l.296-.053" fill="#c8b100"/> - <path d="M332.356 224.76l.288.052c-.045.12-.055.246-.055.38 0 .597.51 1.08 1.14 1.08.508 0 .938-.312 1.084-.744.018.01.11-.393.156-.386.043 0 .036.42.046.41.076.542.572.914 1.133.914.63 0 1.138-.483 1.138-1.08a.737.737 0 0 0-.01-.13l.36-.358.192.455a.955.955 0 0 0-.108.47c0 .57.49 1.032 1.088 1.032a1.1 1.1 0 0 0 .906-.462l.23-.29-.004.36c0 .355.155.676.502.734 0 0 .404.03.934-.393.534-.418.826-.767.826-.767l.03.43s-.522.857-.994 1.13c-.26.152-.658.313-.97.257-.336-.05-.57-.32-.693-.624a1.59 1.59 0 0 1-.817.22c-.645 0-1.224-.355-1.45-.882a1.6 1.6 0 0 1-1.196.512 1.67 1.67 0 0 1-1.283-.59c-.29.27-.685.435-1.12.435a1.667 1.667 0 0 1-1.366-.703c-.29.418-.79.703-1.364.703-.434 0-.828-.164-1.12-.434a1.66 1.66 0 0 1-1.282.59c-.483 0-.895-.192-1.19-.512-.228.524-.81.883-1.452.883-.3 0-.577-.08-.814-.22-.123.305-.36.574-.69.624-.316.056-.712-.105-.972-.258-.477-.272-1.04-1.13-1.04-1.13l.072-.43s.29.35.823.768c.532.422.935.393.935.393.35-.058.498-.38.498-.734v-.36l.23.29c.194.277.527.462.904.462.604 0 1.09-.462 1.09-1.032a.955.955 0 0 0-.107-.47l.192-.455.357.358c-.007.043-.007.086-.007.13 0 .597.507 1.08 1.13 1.08.566 0 1.062-.372 1.135-.913.015.007.01-.41.05-.41.05-.008.14.396.157.385.148.432.578.745 1.085.745.63 0 1.14-.484 1.14-1.08 0-.135-.006-.26-.052-.38l.296-.053h.006z" fill="none" stroke="#000" stroke-width=".266"/> - <path d="M332.34 227.568c-3.087.003-5.86.37-7.852.96-.133.043-.297-.06-.34-.18-.044-.125.054-.282.182-.326 2.006-.61 4.847-.996 8.01-1 3.16.004 6.016.39 8.018 1 .133.044.23.2.188.327-.042.12-.212.22-.34.178-1.995-.59-4.778-.957-7.866-.96" fill="#c8b100"/> - <path d="M332.34 227.568c-3.087.003-5.86.37-7.852.96-.133.043-.297-.06-.34-.18-.044-.125.054-.282.182-.326 2.006-.61 4.847-.996 8.01-1 3.16.004 6.016.39 8.018 1 .133.044.23.2.188.327-.042.12-.212.22-.34.178-1.995-.59-4.778-.957-7.866-.96z" fill="none" stroke="#000" stroke-width=".266"/> - <path d="M329.353 228.662c0-.232.2-.422.45-.422.246 0 .445.19.445.422 0 .236-.2.42-.445.42-.25 0-.45-.184-.45-.42" fill="#fff"/> - <path d="M329.353 228.662c0-.232.2-.422.45-.422.246 0 .445.19.445.422 0 .236-.2.42-.445.42-.25 0-.45-.184-.45-.42z" fill="none" stroke="#000" stroke-width=".266"/> - <path d="M332.378 228.845h-.993c-.185 0-.34-.146-.34-.32 0-.173.15-.313.336-.313h2.01a.32.32 0 0 1 .328.312c0 .175-.15.32-.333.32h-1.007" fill="#ad1519"/> - <path d="M332.378 228.845h-.993c-.185 0-.34-.146-.34-.32 0-.173.15-.313.336-.313h2.01a.32.32 0 0 1 .328.312c0 .175-.15.32-.333.32h-1.007" fill="none" stroke="#000" stroke-width=".266"/> - <path d="M327.404 229.186l-.71.105a.337.337 0 0 1-.385-.264.314.314 0 0 1 .275-.357l.713-.106.73-.113c.182-.02.35.092.38.263.028.17-.1.334-.28.36l-.724.113" fill="#058e6e"/> - <path d="M327.404 229.186l-.71.105a.337.337 0 0 1-.385-.264.314.314 0 0 1 .275-.357l.713-.106.73-.113c.182-.02.35.092.38.263.028.17-.1.334-.28.36l-.724.113" fill="none" stroke="#000" stroke-width=".266"/> - <path d="M324.535 229.683l.315-.508.676.127-.392.572-.6-.19" fill="#ad1519"/> - <path d="M324.535 229.683l.315-.508.676.127-.392.572-.6-.19" fill="none" stroke="#000" stroke-width=".266"/> - <path d="M334.438 228.662c0-.232.202-.422.448-.422.247 0 .45.19.45.422 0 .236-.203.42-.45.42-.246 0-.448-.184-.448-.42" fill="#fff"/> - <path d="M334.438 228.662c0-.232.202-.422.448-.422.247 0 .45.19.45.422 0 .236-.203.42-.45.42-.246 0-.448-.184-.448-.42z" fill="none" stroke="#000" stroke-width=".266"/> - <path d="M337.282 229.186l.715.105c.18.027.348-.09.38-.264a.312.312 0 0 0-.272-.357l-.715-.106-.73-.113c-.184-.02-.354.092-.38.263-.03.17.1.334.28.36l.722.113" fill="#058e6e"/> - <path d="M337.282 229.186l.715.105c.18.027.348-.09.38-.264a.312.312 0 0 0-.272-.357l-.715-.106-.73-.113c-.184-.02-.354.092-.38.263-.03.17.1.334.28.36l.722.113" fill="none" stroke="#000" stroke-width=".266"/> - <path d="M340.093 229.713l-.254-.542-.694.06.333.606.613-.123" fill="#ad1519"/> - <path d="M340.093 229.713l-.254-.542-.694.06.333.606.613-.123" fill="none" stroke="#000" stroke-width=".266"/> - <path d="M332.336 231.59c-2.49-.004-4.745-.222-6.46-.666 1.715-.44 3.97-.712 6.46-.72 2.493.003 4.758.277 6.47.72-1.712.444-3.977.662-6.47.665" fill="#ad1519"/> - <path d="M332.336 231.59c-2.49-.004-4.745-.222-6.46-.666 1.715-.44 3.97-.712 6.46-.72 2.493.003 4.758.277 6.47.72-1.712.444-3.977.662-6.47.665z" fill="none" stroke="#000" stroke-width=".266" stroke-linejoin="round"/> - <path d="M340.193 226.186c.065-.192.01-.383-.136-.43-.138-.04-.302.085-.367.27-.07.196-.01.39.13.433.138.04.307-.08.373-.274" fill="#c8b100"/> - <path d="M340.193 226.186c.065-.192.01-.383-.136-.43-.138-.04-.302.085-.367.27-.07.196-.01.39.13.433.138.04.307-.08.373-.274z" fill="none" stroke="#000" stroke-width=".266"/> - <path d="M335.23 225.227c.028-.2-.07-.38-.217-.398-.142-.018-.285.135-.307.334-.027.2.07.378.215.397.146.015.285-.138.31-.333" fill="#c8b100"/> - <path d="M335.23 225.227c.028-.2-.07-.38-.217-.398-.142-.018-.285.135-.307.334-.027.2.07.378.215.397.146.015.285-.138.31-.333z" fill="none" stroke="#000" stroke-width=".266"/> - <path d="M329.473 225.227c-.026-.2.068-.38.214-.398.147-.018.284.135.312.334.02.2-.074.378-.216.397-.146.015-.285-.138-.31-.333" fill="#c8b100"/> - <path d="M329.473 225.227c-.026-.2.068-.38.214-.398.147-.018.284.135.312.334.02.2-.074.378-.216.397-.146.015-.285-.138-.31-.333z" fill="none" stroke="#000" stroke-width=".266"/> - <path d="M324.512 226.186c-.07-.192-.007-.383.13-.43.137-.04.307.085.373.27.064.196.007.39-.13.433-.143.04-.308-.08-.373-.274" fill="#c8b100"/> - <path d="M324.512 226.186c-.07-.192-.007-.383.13-.43.137-.04.307.085.373.27.064.196.007.39-.13.433-.143.04-.308-.08-.373-.274z" fill="none" stroke="#000" stroke-width=".266"/> - <path d="M332.336 222.36l-.878.53.65 1.415.228.15.224-.15.656-1.414-.88-.53" fill="#c8b100"/> - <path d="M332.336 222.36l-.878.53.65 1.415.228.15.224-.15.656-1.414-.88-.53" fill="none" stroke="#000" stroke-width=".266"/> - <path d="M330.408 224.5l.402.58 1.37-.422.145-.19-.145-.2-1.37-.4-.402.63" fill="#c8b100"/> - <path d="M330.408 224.5l.402.58 1.37-.422.145-.19-.145-.2-1.37-.4-.402.63" fill="none" stroke="#000" stroke-width=".266"/> - <path d="M334.272 224.5l-.404.58-1.37-.422-.145-.19.145-.2 1.37-.4.404.63" fill="#c8b100"/> - <path d="M334.272 224.5l-.404.58-1.37-.422-.145-.19.145-.2 1.37-.4.404.63" fill="none" stroke="#000" stroke-width=".266"/> - <path d="M326.618 222.99l-.69.65.884 1.165.234.093.173-.178.31-1.406-.912-.324" fill="#c8b100"/> - <path d="M326.618 222.99l-.69.65.884 1.165.234.093.173-.178.31-1.406-.912-.324" fill="none" stroke="#000" stroke-width=".266"/> - <path d="M325.172 225.324l.518.486 1.252-.675.095-.217-.18-.165-1.43-.123-.254.694" fill="#c8b100"/> - <path d="M325.172 225.324l.518.486 1.252-.675.095-.217-.18-.165-1.43-.123-.254.694" fill="none" stroke="#000" stroke-width=".266"/> - <path d="M328.95 224.564l-.264.643-1.434-.13-.186-.165.098-.22 1.257-.662.53.534" fill="#c8b100"/> - <path d="M328.95 224.564l-.264.643-1.434-.13-.186-.165.098-.22 1.257-.662.53.534" fill="none" stroke="#000" stroke-width=".266"/> - <path d="M323.794 225.505l-.12.68-1.433.15-.216-.124.054-.23 1.078-.896.638.42" fill="#c8b100"/> - <path d="M323.794 225.505l-.12.68-1.433.15-.216-.124.054-.23 1.078-.896.638.42" fill="none" stroke="#000" stroke-width=".266"/> - <path d="M326.555 224.92c0-.265.226-.48.503-.48a.49.49 0 0 1 .502.48.49.49 0 0 1-.502.477.492.492 0 0 1-.503-.476" fill="#c8b100"/> - <path d="M326.555 224.92c0-.265.226-.48.503-.48a.49.49 0 0 1 .502.48.49.49 0 0 1-.502.477.492.492 0 0 1-.503-.476z" fill="none" stroke="#000" stroke-width=".266"/> - <path d="M338.073 222.99l.69.65-.883 1.165-.234.093-.172-.178-.31-1.406.91-.324" fill="#c8b100"/> - <path d="M338.073 222.99l.69.65-.883 1.165-.234.093-.172-.178-.31-1.406.91-.324" fill="none" stroke="#000" stroke-width=".266"/> - <path d="M339.52 225.324l-.517.486-1.253-.675-.1-.217.185-.165 1.432-.123.254.694" fill="#c8b100"/> - <path d="M339.52 225.324l-.517.486-1.253-.675-.1-.217.185-.165 1.432-.123.254.694" fill="none" stroke="#000" stroke-width=".266"/> - <path d="M335.742 224.564l.264.643 1.434-.13.183-.165-.095-.22-1.255-.662-.53.534" fill="#c8b100"/> - <path d="M335.742 224.564l.264.643 1.434-.13.183-.165-.095-.22-1.255-.662-.53.534" fill="none" stroke="#000" stroke-width=".266"/> - <path d="M340.707 225.505l.115.68 1.43.15.217-.124-.055-.23-1.075-.896-.633.42" fill="#c8b100"/> - <path d="M340.707 225.505l.115.68 1.43.15.217-.124-.055-.23-1.075-.896-.633.42" fill="none" stroke="#000" stroke-width=".266"/> - <path d="M331.842 224.47c0-.27.22-.48.503-.48.272 0 .502.21.502.48 0 .26-.227.476-.502.476a.49.49 0 0 1-.503-.476" fill="#c8b100"/> - <path d="M331.842 224.47c0-.27.22-.48.503-.48.272 0 .502.21.502.48 0 .26-.227.476-.502.476a.49.49 0 0 1-.503-.476z" fill="none" stroke="#000" stroke-width=".266"/> - <path d="M337.14 224.92c0-.265.226-.48.503-.48.28 0 .508.215.508.48 0 .262-.228.477-.507.477a.492.492 0 0 1-.503-.476" fill="#c8b100"/> - <path d="M337.14 224.92c0-.265.226-.48.503-.48.28 0 .508.215.508.48 0 .262-.228.477-.507.477a.492.492 0 0 1-.503-.476z" fill="none" stroke="#000" stroke-width=".266"/> - <path d="M331.4 219.09c0-.497.422-.896.945-.896.52 0 .948.4.948.895 0 .492-.428.893-.948.893-.523 0-.945-.4-.945-.894" fill="#c8b100"/> - <path d="M333.012 218.77v.594h-1.46v-.593h.478v-1.337h-.634v-.596h.634v-.585h.626v.585h.62v.596h-.62v1.338h.352" fill="#c8b100"/> - <path d="M333.012 218.77v.594h-1.46v-.593h.478v-1.337h-.634v-.596h.634v-.585h.626v.585h.62v.596h-.62v1.338h.356z" fill="none" stroke="#000" stroke-width=".307"/> - <path d="M333.666 218.77v.594h-2.596v-.593h.96v-1.337h-.634v-.596h.634v-.585h.626v.585h.625v.596h-.624v1.338h1.01" fill="#c8b100"/> - <path d="M332.617 218.23a.9.9 0 0 1 .676.86c0 .492-.422.893-.948.893-.523 0-.945-.4-.945-.894 0-.416.296-.762.7-.867" fill="none" stroke="#000" stroke-width=".266"/> - <path d="M321.855 226.302c-.012.01-.388-.495-.672-.75-.2-.177-.69-.33-.69-.33 0-.09.288-.294.6-.294.18 0 .35.075.453.204l.036-.197s.254.047.365.328c.116.29.043.73.043.73s-.047.203-.135.31" fill="#c8b100"/> - <path d="M321.855 226.302c-.012.01-.388-.495-.672-.75-.2-.177-.69-.33-.69-.33 0-.09.288-.294.6-.294.18 0 .35.075.453.204l.036-.197s.254.047.365.328c.116.29.043.73.043.73s-.047.203-.135.31z" fill="none" stroke="#000" stroke-width=".266"/> - <path d="M321.874 226.05c.12-.123.365-.097.546.06.184.156.238.384.117.512-.117.127-.36.1-.543-.058-.185-.157-.24-.39-.12-.513" fill="#c8b100"/> - <path d="M321.874 226.05c.12-.123.365-.097.546.06.184.156.238.384.117.512-.117.127-.36.1-.543-.058-.185-.157-.24-.39-.12-.513z" fill="none" stroke="#000" stroke-width=".266"/> - <path d="M342.64 226.302c.016.01.388-.495.674-.75.196-.177.69-.33.69-.33 0-.09-.287-.294-.598-.294a.59.59 0 0 0-.457.204l-.04-.197s-.254.047-.364.328c-.115.29-.043.73-.043.73s.046.203.138.31" fill="#c8b100"/> - <path d="M342.64 226.302c.016.01.388-.495.674-.75.196-.177.69-.33.69-.33 0-.09-.287-.294-.598-.294a.59.59 0 0 0-.457.204l-.04-.197s-.254.047-.364.328c-.115.29-.043.73-.043.73s.046.203.138.31z" fill="none" stroke="#000" stroke-width=".266"/> - <path d="M342.654 226.05c-.12-.123-.364-.097-.55.06-.184.156-.233.384-.12.512.12.127.366.1.55-.058.184-.157.24-.39.12-.513" fill="#c8b100"/> - <path d="M342.654 226.05c-.12-.123-.364-.097-.55.06-.184.156-.233.384-.12.512.12.127.366.1.55-.058.184-.157.24-.39.12-.513z" fill="none" stroke="#000" stroke-width=".266"/> - <path d="M320.95 237.946h22.82v-5.982h-22.82v5.982z" fill="#c8b100"/> - <path d="M320.95 237.946h22.82v-5.982h-22.82v5.982z" fill="none" stroke="#000" stroke-width=".399"/> - <path d="M341.375 241.926a1.007 1.007 0 0 0-.422-.064h-17.09c-.17 0-.33.028-.472.083.59-.196 1.01-.726 1.01-1.353 0-.625-.46-1.166-1.05-1.37.14.043.332.084.5.084h17.103c.17 0 .334-.007.48-.056l-.097.015c-.61.19-.96.73-.96 1.327 0 .574.388 1.15 1 1.334" fill="#c8b100"/> - <path d="M341.375 241.926a1.007 1.007 0 0 0-.422-.064h-17.09c-.17 0-.33.028-.472.083.59-.196 1.01-.726 1.01-1.353 0-.625-.46-1.166-1.05-1.37.14.043.332.084.5.084h17.103c.17 0 .334-.007.48-.056l-.097.015c-.61.19-.96.73-.96 1.327 0 .574.388 1.15 1 1.334z" fill="none" stroke="#000" stroke-width=".399" stroke-linejoin="round"/> - <path d="M323.863 241.862h17.09c.575 0 1.045.36 1.045.8 0 .443-.47.803-1.045.803h-17.09c-.58 0-1.05-.36-1.05-.804 0-.44.47-.798 1.05-.798" fill="#c8b100"/> - <path d="M323.863 241.862h17.09c.575 0 1.045.36 1.045.8 0 .443-.47.803-1.045.803h-17.09c-.58 0-1.05-.36-1.05-.804 0-.44.47-.798 1.05-.798z" fill="none" stroke="#000" stroke-width=".399"/> - <path d="M323.85 237.946h17.103c.575 0 1.045.305 1.045.676 0 .378-.47.684-1.045.684H323.85c-.578 0-1.047-.306-1.047-.684 0-.37.47-.676 1.048-.676" fill="#c8b100"/> - <path d="M323.85 237.946h17.103c.575 0 1.045.305 1.045.676 0 .378-.47.684-1.045.684H323.85c-.578 0-1.047-.306-1.047-.684 0-.37.47-.676 1.048-.676z" fill="none" stroke="#000" stroke-width=".399"/> - <path d="M316.426 338.612c1.582 0 2.985-.33 4.023-.883 1.03-.525 2.423-.845 3.958-.845 1.54 0 2.972.324 4 .85 1.03.543 2.458.877 4.017.877 1.574 0 2.987-.367 4.024-.92 1.02-.502 2.383-.807 3.884-.807 1.548 0 2.918.295 3.95.83 1.034.55 2.473.897 4.047.897v2.472c-1.573 0-3.012-.36-4.045-.905-1.033-.53-2.403-.833-3.95-.833-1.502 0-2.865.31-3.886.815-1.033.548-2.45.922-4.025.922-1.555 0-2.983-.34-4.016-.878-1.03-.535-2.458-.86-4.002-.86-1.535 0-2.93.325-3.96.852-1.037.552-2.42.886-4 .886l-.02-2.472" fill="#005bbf"/> - <path d="M316.426 338.612c1.582 0 2.985-.33 4.023-.883 1.03-.525 2.423-.845 3.958-.845 1.54 0 2.972.324 4 .85 1.03.543 2.458.877 4.017.877 1.574 0 2.987-.367 4.024-.92 1.02-.502 2.383-.807 3.884-.807 1.548 0 2.918.295 3.95.83 1.034.55 2.473.897 4.047.897v2.472c-1.573 0-3.012-.36-4.045-.905-1.033-.53-2.403-.833-3.95-.833-1.502 0-2.865.31-3.886.815-1.033.548-2.45.922-4.025.922-1.555 0-2.983-.34-4.016-.878-1.03-.535-2.458-.86-4.002-.86-1.535 0-2.93.325-3.96.852-1.037.552-2.42.886-4 .886l-.02-2.472z" fill="none" stroke="#000" stroke-width=".399"/> - <path d="M316.426 341.084c1.582 0 2.985-.334 4.023-.886 1.03-.527 2.423-.85 3.958-.85 1.54 0 2.972.323 4 .858 1.03.537 2.458.878 4.017.878 1.574 0 2.987-.374 4.024-.922 1.02-.506 2.383-.815 3.884-.815 1.548 0 2.918.302 3.95.832 1.034.545 2.473.904 4.047.904v2.466c-1.573 0-3.012-.352-4.045-.898-1.033-.54-2.403-.837-3.95-.837-1.502 0-2.865.31-3.886.815-1.033.55-2.45.92-4.025.92-1.555 0-2.983-.34-4.016-.88-1.03-.53-2.458-.855-4.002-.855-1.535 0-2.93.325-3.96.85-1.037.55-2.42.885-4 .885l-.02-2.466" fill="#ccc"/> - <path d="M316.426 341.084c1.582 0 2.985-.334 4.023-.886 1.03-.527 2.423-.85 3.958-.85 1.54 0 2.972.323 4 .858 1.03.537 2.458.878 4.017.878 1.574 0 2.987-.374 4.024-.922 1.02-.506 2.383-.815 3.884-.815 1.548 0 2.918.302 3.95.832 1.034.545 2.473.904 4.047.904v2.466c-1.573 0-3.012-.352-4.045-.898-1.033-.54-2.403-.837-3.95-.837-1.502 0-2.865.31-3.886.815-1.033.55-2.45.92-4.025.92-1.555 0-2.983-.34-4.016-.88-1.03-.53-2.458-.855-4.002-.855-1.535 0-2.93.325-3.96.85-1.037.55-2.42.885-4 .885l-.02-2.466" fill="none" stroke="#000" stroke-width=".399"/> - <path d="M316.426 343.55c1.582 0 2.985-.334 4.023-.884 1.03-.526 2.423-.85 3.958-.85 1.54 0 2.972.324 4 .854 1.03.54 2.458.88 4.017.88 1.574 0 2.987-.37 4.024-.92 1.02-.505 2.383-.815 3.884-.815 1.548 0 2.918.298 3.95.837 1.034.546 2.473.898 4.047.898v2.465c-1.573 0-3.012-.353-4.045-.9-1.033-.532-2.403-.83-3.95-.83-1.502 0-2.865.31-3.886.81-1.033.553-2.45.92-4.025.92-1.555 0-2.983-.337-4.016-.875-1.03-.53-2.458-.855-4.002-.855-1.535 0-2.93.32-3.96.848-1.037.555-2.42.882-4 .882l-.02-2.465" fill="#005bbf"/> - <path d="M316.426 343.55c1.582 0 2.985-.334 4.023-.884 1.03-.526 2.423-.85 3.958-.85 1.54 0 2.972.324 4 .854 1.03.54 2.458.88 4.017.88 1.574 0 2.987-.37 4.024-.92 1.02-.505 2.383-.815 3.884-.815 1.548 0 2.918.298 3.95.837 1.034.546 2.473.898 4.047.898v2.465c-1.573 0-3.012-.353-4.045-.9-1.033-.532-2.403-.83-3.95-.83-1.502 0-2.865.31-3.886.81-1.033.553-2.45.92-4.025.92-1.555 0-2.983-.337-4.016-.875-1.03-.53-2.458-.855-4.002-.855-1.535 0-2.93.32-3.96.848-1.037.555-2.42.882-4 .882l-.02-2.465" fill="none" stroke="#000" stroke-width=".399"/> - <path d="M316.45 348.485c1.577 0 2.96-.334 4-.887 1.03-.523 2.423-.845 3.958-.845 1.54 0 2.972.322 4 .852 1.03.54 2.458.88 4.017.88 1.574 0 2.987-.372 4.024-.924 1.02-.5 2.383-.807 3.884-.807 1.548 0 2.918.3 3.95.83 1.034.55 2.473.902 4.047.902v-2.454c-1.573 0-3.012-.368-4.045-.916-1.033-.53-2.403-.83-3.95-.83-1.502 0-2.865.31-3.886.81-1.033.554-2.45.92-4.025.92-1.555 0-2.983-.336-4.016-.874-1.03-.53-2.458-.855-4.002-.855-1.535 0-2.93.32-3.96.848-1.037.555-2.44.882-4.022.882l.023 2.47" fill="#ccc"/> - <path d="M316.45 348.485c1.577 0 2.96-.334 4-.887 1.03-.523 2.423-.845 3.958-.845 1.54 0 2.972.322 4 .852 1.03.54 2.458.88 4.017.88 1.574 0 2.987-.372 4.024-.924 1.02-.5 2.383-.807 3.884-.807 1.548 0 2.918.3 3.95.83 1.034.55 2.473.902 4.047.902v-2.454c-1.573 0-3.012-.368-4.045-.916-1.033-.53-2.403-.83-3.95-.83-1.502 0-2.865.31-3.886.81-1.033.554-2.45.92-4.025.92-1.555 0-2.983-.336-4.016-.874-1.03-.53-2.458-.855-4.002-.855-1.535 0-2.93.32-3.96.848-1.037.555-2.44.882-4.022.882l.023 2.47" fill="none" stroke="#000" stroke-width=".399"/> - <path d="M316.45 350.953c1.577 0 2.96-.334 4-.882 1.03-.53 2.423-.854 3.958-.854 1.54 0 2.972.326 4 .858 1.03.537 2.458.88 4.017.88 1.574 0 2.987-.375 4.024-.924 1.02-.505 2.383-.814 3.884-.814 1.548 0 2.918.302 3.95.835 1.034.547 2.473.903 4.047.903v-2.447c-1.573 0-3.012-.374-4.045-.924-1.033-.53-2.403-.825-3.95-.825-1.502 0-2.865.305-3.886.808-1.033.548-2.45.92-4.025.92-1.555 0-2.983-.34-4.016-.88-1.03-.53-2.458-.848-4.002-.848-1.535 0-2.93.318-3.96.844-1.037.55-2.436.885-4.014.885l.015 2.468" fill="#005bbf"/> - <path d="M316.45 350.953c1.577 0 2.96-.334 4-.882 1.03-.53 2.423-.854 3.958-.854 1.54 0 2.972.326 4 .858 1.03.537 2.458.88 4.017.88 1.574 0 2.987-.375 4.024-.924 1.02-.505 2.383-.814 3.884-.814 1.548 0 2.918.302 3.95.835 1.034.547 2.473.903 4.047.903v-2.447c-1.573 0-3.012-.374-4.045-.924-1.033-.53-2.403-.825-3.95-.825-1.502 0-2.865.305-3.886.808-1.033.548-2.45.92-4.025.92-1.555 0-2.983-.34-4.016-.88-1.03-.53-2.458-.848-4.002-.848-1.535 0-2.93.318-3.96.844-1.037.55-2.436.885-4.014.885l.015 2.468z" fill="none" stroke="#000" stroke-width=".399"/> - <path d="M341.37 328.482c-.052.208-.125.41-.125.633 0 1.498 1.292 2.69 2.87 2.69h-23.482c1.578 0 2.87-1.192 2.87-2.69a2.84 2.84 0 0 0-.09-.633c.127.048.29.055.446.055h17.09c.136 0 .298-.015.417-.055" fill="#c8b100"/> - <path d="M341.37 328.482c-.052.208-.125.41-.125.633 0 1.498 1.292 2.69 2.87 2.69h-23.482c1.578 0 2.87-1.192 2.87-2.69a2.84 2.84 0 0 0-.09-.633c.127.048.29.055.446.055h17.09c.136 0 .298-.015.417-.055h.004z" fill="none" stroke="#000" stroke-width=".399" stroke-linejoin="round"/> - <path d="M323.863 326.93h17.09c.575 0 1.045.363 1.045.803 0 .444-.47.804-1.045.804h-17.09c-.58 0-1.05-.36-1.05-.804 0-.44.47-.804 1.05-.804" fill="#c8b100"/> - <path d="M323.863 326.93h17.09c.575 0 1.045.363 1.045.803 0 .444-.47.804-1.045.804h-17.09c-.58 0-1.05-.36-1.05-.804 0-.44.47-.804 1.05-.804z" fill="none" stroke="#000" stroke-width=".399"/> - <path d="M320.66 337.78h23.427v-5.975H320.66v5.975z" fill="#c8b100"/> - <path d="M320.66 337.78h23.427v-5.975H320.66v5.975z" fill="none" stroke="#000" stroke-width=".399"/> - <path d="M345.917 305.785c2.32 1.338 3.894 2.708 3.64 3.392-.128.63-.864 1.098-1.916 1.796-1.654 1.153-2.664 3.212-1.876 4.16-1.367-1.104-2.23-2.756-2.23-4.592 0-1.92.91-3.65 2.383-4.755" fill="#ad1519"/> - <path d="M345.917 305.785c2.32 1.338 3.894 2.708 3.64 3.392-.128.63-.864 1.098-1.916 1.796-1.654 1.153-2.664 3.212-1.876 4.16-1.367-1.104-2.23-2.756-2.23-4.592 0-1.92.91-3.65 2.383-4.755z" fill="none" stroke="#000" stroke-width=".399"/> - <path d="M324.086 325.962h16.644v-81.548h-16.644v81.548z" fill="#ccc"/> - <path d="M336.16 244.385v81.373m1.87-81.373v81.373m-13.944.204h16.644v-81.548h-16.644v81.548z" fill="none" stroke="#000" stroke-width=".399"/> - <path d="M307.085 274.917c3.634-1.5 9.81-2.614 16.893-2.846 2.44.02 5.164.248 7.974.717 9.953 1.66 17.536 5.636 16.933 8.872-.012.068-.03.21-.05.272 0 0 3.735-8.41 3.79-8.73.668-3.593-7.74-8.008-18.79-9.85a57.043 57.043 0 0 0-9.788-.776c-7.072 0-13.216.905-16.916 2.28l-.045 10.06" fill="#ad1519"/> - <path d="M307.085 274.917c3.634-1.5 9.81-2.614 16.893-2.846 2.44.02 5.164.248 7.974.717 9.953 1.66 17.536 5.636 16.933 8.872-.012.068-.03.21-.05.272 0 0 3.735-8.41 3.79-8.73.668-3.593-7.74-8.008-18.79-9.85a57.043 57.043 0 0 0-9.788-.776c-7.072 0-13.216.905-16.916 2.28l-.045 10.06" fill="none" stroke="#000" stroke-width=".399" stroke-linejoin="round"/> - <path d="M340.76 285.153c4.616-.33 7.768-1.563 8.125-3.494.29-1.54-1.275-3.24-4.06-4.786-1.246.134-2.648.305-4.095.305l.03 7.973" fill="#ad1519"/> - <path d="M340.76 285.153c4.616-.33 7.768-1.563 8.125-3.494.29-1.54-1.275-3.24-4.06-4.786-1.246.134-2.648.305-4.095.305l.03 7.973" fill="none" stroke="#000" stroke-width=".399"/> - <path d="M324.06 278.92c-2.888.437-5.05 1.153-6.133 2.034l-.096.177c-.518 1.057 2.02 3.3 6.252 5.805l-.023-8.014" fill="#ad1519"/> - <path d="M324.06 278.92c-2.888.437-5.05 1.153-6.133 2.034l-.096.177c-.518 1.057 2.02 3.3 6.252 5.805l-.023-8.014" fill="none" stroke="#000" stroke-width=".399"/> - <path d="M351.096 300.884c.437-1.317-4.063-3.953-10.423-6.286-2.907-1.04-5.308-2.125-8.282-3.437-8.834-3.905-15.36-8.39-14.555-10.024l.086-.168c-.465.382-1.193 8.436-1.193 8.436-.807 1.498 5.167 5.916 13.293 9.814 2.605 1.244 8.106 3.276 10.702 4.185 4.642 1.61 9.254 4.648 8.835 5.774l1.54-8.29" fill="#ad1519"/> - <path d="M351.096 300.884c.437-1.317-4.063-3.953-10.423-6.286-2.907-1.04-5.308-2.125-8.282-3.437-8.834-3.905-15.36-8.39-14.555-10.024l.086-.168c-.465.382-1.193 8.436-1.193 8.436-.807 1.498 5.167 5.916 13.293 9.814 2.605 1.244 8.106 3.276 10.702 4.185 4.642 1.61 9.254 4.648 8.835 5.774l1.54-8.29v-.003z" fill="none" stroke="#000" stroke-width=".399" stroke-linejoin="round"/> - <path d="M317.458 271.344c.63-2.39 1.444-4.698 2.242-7.036a5.675 5.675 0 0 1-.545.112 5.39 5.39 0 0 1-.556.05c-.38 1.68-.896 3.368-1.45 5.055-.982-1.476-2.053-2.91-2.905-4.4-.34.07-.696.152-1.044.205-.34.05-.707.075-1.06.11a140.003 140.003 0 0 1 4.302 6.052c.165-.043.324-.098.507-.124.164-.02.336-.017.508-.024m6.33-6.989c-.304.014-.607.037-.91.032-.303-.003-.607-.04-.907-.062l-.122 6.567 4.59.078c-.022-.135-.056-.28-.052-.42 0-.134.042-.275.064-.41a31.97 31.97 0 0 1-2.77.088l.107-5.873m7.209 1.08c.734.062 1.44.19 2.147.317-.013-.14-.034-.277-.023-.42.01-.133.062-.27.1-.4l-6.217-.515c.016.14.04.273.024.407-.012.145-.06.276-.097.41.634-.014 1.398-.02 2.255.052l-.542 5.908c.303.007.606.004.906.03.3.02.602.076.9.12l.543-5.91m2.548 6.473c.3.047.6.083.898.15.295.06.583.156.87.24l.738-3.02.08.02c.172.413.397.918.51 1.21l.923 2.28c.36.058.72.105 1.074.182.364.08.713.184 1.063.282l-.32-.684c-.495-1.03-1.016-2.054-1.446-3.096 1.145.05 2.032-.365 2.254-1.284.158-.64-.096-1.143-.7-1.572-.443-.317-1.307-.484-1.864-.607l-2.506-.55-1.575 6.447m3.215-5.552c.723.16 1.625.276 1.625 1.097a2.032 2.032 0 0 1-.057.484c-.235.964-.964 1.298-2.18.935l.612-2.515m8.624 7.52c-.055.713-.182 1.404-.32 2.152.314.15.625.284.928.45.303.17.583.354.876.536l.614-7.403a3.632 3.632 0 0 1-.8-.436l-6.526 4.144c.172.084.35.16.52.25.168.096.31.196.48.292.547-.462 1.123-.837 1.784-1.328l2.442 1.34.002.002zm-1.85-1.69l2.174-1.408-.253 2.455-1.92-1.047" fill="#c8b100"/> - <path d="M230.31 205.26c0-1.165.994-2.106 2.22-2.106 1.22 0 2.218.94 2.218 2.106 0 1.16-.994 2.1-2.22 2.1-1.224 0-2.218-.94-2.218-2.1z" fill="none" stroke="#000" stroke-width=".051"/> - <path d="M255.347 187.108c6.804 0 12.858 1.007 16.802 2.57 2.256 1.02 5.287 1.772 8.603 2.216 2.527.337 4.927.406 7.015.246 2.792-.054 6.83.763 10.87 2.542 3.344 1.484 6.135 3.287 7.99 5.033l-1.606 1.43-.464 4.056-4.4 5.04-2.2 1.867-5.21 4.17-2.662.218-.81 2.303-33.707-3.95-33.81 3.95-.81-2.303-2.667-.217-5.21-4.17-2.198-1.867-4.4-5.04-.458-4.056-1.613-1.43c1.863-1.745 4.654-3.548 7.99-5.032 4.04-1.78 8.08-2.596 10.87-2.542 2.087.16 4.488.09 7.014-.246 3.32-.444 6.352-1.197 8.605-2.215 3.948-1.565 9.665-2.572 16.464-2.572z" fill="#ad1519" stroke="#000" stroke-width=".266"/> - <path d="M255.864 231.607c-12.558-.018-23.808-1.505-31.835-3.923-.59-.178-.896-.716-.862-1.273-.01-.54.293-1.03.86-1.203 8.028-2.414 19.278-3.9 31.836-3.92 12.556.02 23.8 1.506 31.827 3.92.57.172.867.663.857 1.203.03.558-.272 1.096-.856 1.274-8.027 2.418-19.27 3.905-31.826 3.923" fill="#c8b100" stroke="#000" stroke-width=".399"/> - <path d="M255.833 229.96c-11.333-.015-21.576-1.323-29.374-3.338 7.797-2.018 18.04-3.25 29.373-3.272 11.332.02 21.63 1.254 29.428 3.272-7.797 2.015-18.095 3.323-29.427 3.338" fill="#ad1519"/> - <path d="M256.675 230.028v-6.724" fill="none" stroke="#000" stroke-width=".092"/> - <path d="M254.848 230.028v-6.724" fill="none" stroke="#000" stroke-width=".143"/> - <path d="M253.124 230.028v-6.724" fill="none" stroke="#000" stroke-width=".184"/> - <path d="M251.415 230.028v-6.724" fill="none" stroke="#000" stroke-width=".236"/> - <path d="M249.89 230.028v-6.724" fill="none" stroke="#000" stroke-width=".287"/> - <path d="M246.986 229.666l-.04-6.12m1.417 6.2v-6.402" fill="none" stroke="#000" stroke-width=".338"/> - <path d="M244.304 229.39v-5.64m1.36 5.802l-.04-6.002" fill="none" stroke="#000" stroke-width=".379"/> - <path d="M240.707 229.07v-4.956m1.18 5.035v-5.197m1.216 5.357v-5.398" fill="none" stroke="#000" stroke-width=".43"/> - <path d="M239.445 229.028v-4.793" fill="none" stroke="#000" stroke-width=".471"/> - <path d="M238.27 228.786v-4.47" fill="none" stroke="#000" stroke-width=".522"/> - <path d="M237.008 228.665v-4.15" fill="none" stroke="#000" stroke-width=".573"/> - <path d="M234.427 228.304l-.04-3.304m1.363 3.465v-3.706" fill="none" stroke="#000" stroke-width=".614"/> - <path d="M233.104 228.02v-2.9" fill="none" stroke="#000" stroke-width=".645"/> - <path d="M231.89 227.786v-2.416" fill="none" stroke="#000" stroke-width=".696"/> - <path d="M230.568 227.464v-1.892" fill="none" stroke="#000" stroke-width=".748"/> - <path d="M229.208 227.303v-1.41" fill="none" stroke="#000" stroke-width=".788"/> - <path d="M227.77 226.98v-.683" fill="none" stroke="#000" stroke-width=".932"/> - <path d="M263.942 229.666v-6.16m-3.094 6.362l.04-6.524m-2.296 6.604v-6.644" fill="none" stroke="#000" stroke-width=".051"/> - <path d="M255.777 221.277c-12.71.025-24.115 1.618-32.144 4.09.666-.316.607-1.138-.224-3.275-1.002-2.586-2.565-2.473-2.565-2.473 8.877-2.622 21.233-4.263 34.985-4.28 13.758.018 26.214 1.658 35.09 4.28 0 0-1.563-.114-2.564 2.472-.83 2.137-.89 2.96-.224 3.276-8.027-2.473-19.647-4.066-32.355-4.09" fill="#c8b100" stroke="#000" stroke-width=".399"/> - <path d="M255.83 215.342c-13.752.023-26.108 1.66-34.985 4.285-.592.177-1.217-.055-1.41-.615-.19-.56.128-1.204.72-1.385 8.914-2.735 21.59-4.452 35.678-4.48 14.094.025 26.817 1.745 35.732 4.48.592.18.91.824.72 1.385-.194.56-.82.792-1.41.615-8.878-2.626-21.287-4.262-35.045-4.285" fill="#c8b100" stroke="#000" stroke-width=".399"/> - <path d="M255.833 229.96c-11.333-.015-21.576-1.323-29.374-3.338 7.797-2.018 18.04-3.25 29.373-3.272 11.332.02 21.63 1.254 29.428 3.272-7.797 2.015-18.095 3.323-29.427 3.338z" fill="none" stroke="#000" stroke-width=".399" stroke-linejoin="round"/> - <path d="M246.02 218.466c0-.585.503-1.062 1.122-1.062.622 0 1.126.477 1.126 1.062 0 .585-.504 1.065-1.126 1.065-.62 0-1.12-.48-1.12-1.064" fill="#fff" stroke="#000" stroke-width=".399"/> - <path d="M255.858 219.303h-3.365c-.62 0-1.136-.473-1.136-1.062 0-.585.504-1.064 1.123-1.064h6.8c.62 0 1.124.48 1.124 1.065 0 .59-.515 1.063-1.138 1.063h-3.408" fill="#ad1519" stroke="#000" stroke-width=".399"/> - <path d="M238.953 220.23l-2.42.28c-.618.073-1.19-.342-1.268-.92-.075-.585.363-1.117.98-1.185l2.435-.284 2.476-.283c.614-.072 1.175.334 1.252.92.072.582-.376 1.116-.99 1.185l-2.465.288" fill="#058e6e" stroke="#000" stroke-width=".399"/> - <path d="M229.116 220.442c0-.586.503-1.063 1.12-1.063.623 0 1.126.476 1.126 1.062 0 .588-.503 1.065-1.126 1.065-.617 0-1.12-.477-1.12-1.065" fill="#fff" stroke="#000" stroke-width=".399"/> - <path d="M221.633 222.376l1.248-1.633 3.45.436-2.76 2.01-1.937-.814" fill="#ad1519" stroke="#000" stroke-width=".399"/> - <path d="M272.767 220.23l2.42.28c.612.073 1.19-.342 1.266-.92.07-.585-.365-1.117-.98-1.185l-2.433-.284-2.476-.283c-.62-.072-1.18.334-1.253.92-.076.582.378 1.116.99 1.185l2.467.288" fill="#058e6e" stroke="#000" stroke-width=".399"/> - <path d="M263.452 218.466c0-.585.504-1.062 1.122-1.062.622 0 1.125.477 1.125 1.062 0 .585-.504 1.065-1.126 1.065-.618 0-1.122-.48-1.122-1.064m16.906 1.975c0-.586.504-1.063 1.122-1.063.62 0 1.124.476 1.124 1.062 0 .588-.503 1.065-1.125 1.065-.62 0-1.123-.477-1.123-1.065" fill="#fff" stroke="#000" stroke-width=".399"/> - <path d="M290.086 222.376l-1.247-1.633-3.45.436 2.758 2.01 1.938-.814" fill="#ad1519" stroke="#000" stroke-width=".399"/> - <path d="M225.104 226.982c7.94-2.23 18.736-3.61 30.73-3.632 11.99.02 22.842 1.403 30.782 3.632" fill="none" stroke="#000" stroke-width=".399"/> - <path d="M230.452 196.013l1.42 1.14 2.13-3.48c-2.31-1.416-3.896-3.874-3.896-6.674 0-.318.02-.626.06-.932.22-4.44 5.63-8.11 12.5-8.11 3.562 0 6.78.976 9.046 2.54.06-.688.123-1.276.218-1.902-2.496-1.455-5.733-2.33-9.265-2.33-7.897 0-14.075 4.485-14.375 9.8-.03.308-.046.62-.046.933 0 2.832 1.294 5.384 3.34 7.16l-1.132 1.853" fill="#c8b100"/> - <path d="M230.452 196.013l1.42 1.14 2.13-3.48c-2.31-1.416-3.896-3.874-3.896-6.674 0-.318.02-.626.06-.932.22-4.44 5.63-8.11 12.5-8.11 3.562 0 6.78.976 9.046 2.54.06-.688.123-1.276.218-1.902-2.496-1.455-5.733-2.33-9.265-2.33-7.897 0-14.075 4.485-14.375 9.8-.03.308-.046.62-.046.933 0 2.832 1.294 5.384 3.34 7.16l-1.132 1.853" fill="none" stroke="#000" stroke-width=".399"/> - <path d="M230.544 196.052c-2.696-2.01-4.37-4.744-4.37-7.755 0-3.47 2.27-6.563 5.717-8.614-2.126 1.708-3.416 3.916-3.6 6.382-.03.31-.046.62-.046.934 0 2.832 1.294 5.384 3.34 7.16l-1.04 1.892" fill="#c8b100"/> - <path d="M230.544 196.052c-2.696-2.01-4.37-4.744-4.37-7.755 0-3.47 2.27-6.563 5.717-8.614-2.126 1.708-3.416 3.916-3.6 6.382-.03.31-.046.62-.046.934 0 2.832 1.294 5.384 3.34 7.16l-1.04 1.892" fill="none" stroke="#000" stroke-width=".399"/> - <path d="M206.766 199.565c-1.51-1.69-2.434-3.876-2.434-6.265 0-1.44.333-2.818.936-4.046 2.18-4.488 9.023-7.753 17.155-7.753 2.216 0 4.336.242 6.294.688-.434.473-.775.992-1.108 1.517a27.215 27.215 0 0 0-5.187-.488c-7.444 0-13.672 2.895-15.476 6.807a7.54 7.54 0 0 0-.75 3.276c0 2.378 1.114 4.51 2.857 5.964l-2.695 4.402-1.444-1.147 1.85-2.95" fill="#c8b100"/> - <path d="M206.766 199.565c-1.51-1.69-2.434-3.876-2.434-6.265 0-1.44.333-2.818.936-4.046 2.18-4.488 9.023-7.753 17.155-7.753 2.216 0 4.336.242 6.294.688-.434.473-.775.992-1.108 1.517a27.215 27.215 0 0 0-5.187-.488c-7.444 0-13.672 2.895-15.476 6.807a7.54 7.54 0 0 0-.75 3.276c0 2.378 1.114 4.51 2.857 5.964l-2.695 4.402-1.444-1.147 1.85-2.95v-.005z" fill="none" stroke="#000" stroke-width=".399"/> - <path d="M209.527 184.814c-1.96 1.232-3.44 2.75-4.26 4.44a9.17 9.17 0 0 0-.935 4.046c0 2.39.925 4.575 2.434 6.265l-1.636 2.656c-1.566-2.012-2.476-4.36-2.476-6.858 0-4.302 2.737-8.06 6.873-10.548" fill="#c8b100"/> - <path d="M209.527 184.814c-1.96 1.232-3.44 2.75-4.26 4.44a9.17 9.17 0 0 0-.935 4.046c0 2.39.925 4.575 2.434 6.265l-1.636 2.656c-1.566-2.012-2.476-4.36-2.476-6.858 0-4.302 2.737-8.06 6.873-10.548z" fill="none" stroke="#000" stroke-width=".399"/> - <path d="M255.746 175.377c1.805 0 3.356 1.193 3.726 2.794.24 1.415.39 3.026.425 4.742.003.178-.013.352-.013.527.005.202.044.42.047.628.063 3.6.578 6.778 1.31 8.724l-5.497 5.258-5.557-5.258c.737-1.946 1.248-5.125 1.317-8.724.004-.207.044-.426.044-.63 0-.174-.012-.348-.01-.526.028-1.716.18-3.327.423-4.74.365-1.602 1.98-2.795 3.782-2.795" fill="#c8b100"/> - <path d="M255.746 175.377c1.805 0 3.356 1.193 3.726 2.794.24 1.415.39 3.026.425 4.742.003.178-.013.352-.013.527.005.202.044.42.047.628.063 3.6.578 6.778 1.31 8.724l-5.497 5.258-5.557-5.258c.737-1.946 1.248-5.125 1.317-8.724.004-.207.044-.426.044-.63 0-.174-.012-.348-.01-.526.028-1.716.18-3.327.423-4.74.365-1.602 1.98-2.795 3.782-2.795h.003z" fill="none" stroke="#000" stroke-width=".399"/> - <path d="M255.746 177.09c.937 0 1.727.598 1.92 1.425a30.65 30.65 0 0 1 .403 4.48c0 .168-.01.335-.01.498 0 .2.035.4.04.604.057 3.4.544 6.396 1.243 8.24l-3.625 3.432-3.628-3.433c.692-1.84 1.18-4.84 1.24-8.24.005-.204.04-.404.043-.604 0-.163-.01-.33-.01-.498.03-1.614.175-3.142.404-4.48.19-.827 1.045-1.424 1.978-1.424" fill="#c8b100"/> - <path d="M255.746 177.09c.937 0 1.727.598 1.92 1.425a30.65 30.65 0 0 1 .403 4.48c0 .168-.01.335-.01.498 0 .2.035.4.04.604.057 3.4.544 6.396 1.243 8.24l-3.625 3.432-3.628-3.433c.692-1.84 1.18-4.84 1.24-8.24.005-.204.04-.404.043-.604 0-.163-.01-.33-.01-.498.03-1.614.175-3.142.404-4.48.19-.827 1.045-1.424 1.978-1.424z" fill="none" stroke="#000" stroke-width=".399"/> - <path d="M281 196.013l-1.422 1.14-2.13-3.48c2.31-1.416 3.896-3.874 3.896-6.674 0-.318-.018-.626-.056-.932-.22-4.44-5.637-8.11-12.5-8.11-3.57 0-6.784.976-9.052 2.54a24.522 24.522 0 0 0-.22-1.902c2.497-1.455 5.733-2.33 9.273-2.33 7.894 0 14.07 4.485 14.374 9.8.027.308.042.62.042.933 0 2.832-1.292 5.384-3.34 7.16l1.133 1.853" fill="#c8b100"/> - <path d="M281 196.013l-1.422 1.14-2.13-3.48c2.31-1.416 3.896-3.874 3.896-6.674 0-.318-.018-.626-.056-.932-.22-4.44-5.637-8.11-12.5-8.11-3.57 0-6.784.976-9.052 2.54a24.522 24.522 0 0 0-.22-1.902c2.497-1.455 5.733-2.33 9.273-2.33 7.894 0 14.07 4.485 14.374 9.8.027.308.042.62.042.933 0 2.832-1.292 5.384-3.34 7.16l1.133 1.853" fill="none" stroke="#000" stroke-width=".399"/> - <path d="M280.907 196.052c2.695-2.01 4.37-4.744 4.37-7.755 0-3.47-2.27-6.563-5.713-8.614 2.122 1.708 3.41 3.916 3.6 6.382.027.31.042.62.042.934 0 2.832-1.292 5.384-3.34 7.16l1.04 1.892" fill="#c8b100"/> - <path d="M280.907 196.052c2.695-2.01 4.37-4.744 4.37-7.755 0-3.47-2.27-6.563-5.713-8.614 2.122 1.708 3.41 3.916 3.6 6.382.027.31.042.62.042.934 0 2.832-1.292 5.384-3.34 7.16l1.04 1.892" fill="none" stroke="#000" stroke-width=".399"/> - <path d="M304.688 199.565c1.506-1.69 2.43-3.876 2.43-6.265 0-1.44-.333-2.818-.93-4.046-2.187-4.488-9.028-7.753-17.162-7.753a28.4 28.4 0 0 0-6.292.688c.438.473.776.992 1.11 1.517 1.62-.317 3.37-.488 5.178-.488 7.447 0 13.678 2.895 15.478 6.807.483.997.75 2.11.75 3.276 0 2.378-1.115 4.51-2.857 5.964l2.695 4.402 1.447-1.147-1.85-2.95" fill="#c8b100"/> - <path d="M304.688 199.565c1.506-1.69 2.43-3.876 2.43-6.265 0-1.44-.333-2.818-.93-4.046-2.187-4.488-9.028-7.753-17.162-7.753a28.4 28.4 0 0 0-6.292.688c.438.473.776.992 1.11 1.517 1.62-.317 3.37-.488 5.178-.488 7.447 0 13.678 2.895 15.478 6.807.483.997.75 2.11.75 3.276 0 2.378-1.115 4.51-2.857 5.964l2.695 4.402 1.447-1.147-1.85-2.95.003-.005z" fill="none" stroke="#000" stroke-width=".399"/> - <path d="M301.925 184.814c1.957 1.232 3.44 2.75 4.26 4.44a9.28 9.28 0 0 1 .932 4.046c0 2.39-.923 4.575-2.43 6.265l1.634 2.656c1.566-2.012 2.473-4.36 2.473-6.858 0-4.302-2.733-8.06-6.868-10.548" fill="#c8b100"/> - <path d="M301.925 184.814c1.957 1.232 3.44 2.75 4.26 4.44a9.28 9.28 0 0 1 .932 4.046c0 2.39-.923 4.575-2.43 6.265l1.634 2.656c1.566-2.012 2.473-4.36 2.473-6.858 0-4.302-2.733-8.06-6.868-10.548z" fill="none" stroke="#000" stroke-width=".399"/> - <path d="M253.793 193.467c0-1.017.874-1.84 1.95-1.84 1.075 0 1.95.823 1.95 1.84 0 1.022-.875 1.85-1.95 1.85-1.076 0-1.95-.828-1.95-1.85" fill="#fff"/> - <path d="M253.793 193.467c0-1.017.874-1.84 1.95-1.84 1.075 0 1.95.823 1.95 1.84 0 1.022-.875 1.85-1.95 1.85-1.076 0-1.95-.828-1.95-1.85z" fill="none" stroke="#000" stroke-width=".399"/> - <path d="M253.793 189.85c0-1.018.874-1.848 1.95-1.848 1.075 0 1.95.83 1.95 1.848 0 1.018-.875 1.843-1.95 1.843-1.076 0-1.95-.825-1.95-1.843m.391-3.892c0-.815.7-1.472 1.56-1.472.854 0 1.554.657 1.554 1.472 0 .814-.7 1.474-1.555 1.474-.86 0-1.56-.66-1.56-1.474m.437-3.508c0-.585.505-1.062 1.123-1.062.622 0 1.12.477 1.12 1.06 0 .59-.498 1.068-1.12 1.068-.618 0-1.122-.477-1.122-1.067m.223-3.069c0-.472.402-.85.9-.85.494 0 .897.378.897.85 0 .47-.402.852-.897.852-.497 0-.9-.382-.9-.85" fill="#fff" stroke="#000" stroke-width=".399"/> - <path d="M255.908 204.572l1.267.233c-.204.512-.246 1.072-.246 1.662 0 2.63 2.257 4.767 5.036 4.767 2.23 0 4.132-1.382 4.784-3.29.074.05.48-1.725.69-1.702.178.018.16 1.843.224 1.81.323 2.404 2.52 4.03 4.992 4.03 2.775 0 5.025-2.128 5.025-4.76 0-.196-.01-.393-.036-.583l1.577-1.564.848 1.993c-.337.624-.47 1.327-.47 2.08 0 2.512 2.15 4.544 4.803 4.544 1.67 0 3.136-.803 3.998-2.022l1.01-1.284-.008 1.575c0 1.58.668 3 2.212 3.25 0 0 1.772.11 4.12-1.733 2.35-1.844 3.643-3.37 3.643-3.37l.203 1.845s-1.95 3.016-4.073 4.245c-1.16.675-2.922 1.384-4.323 1.156-1.483-.24-2.54-1.43-3.083-2.8a7.167 7.167 0 0 1-3.642.984c-2.87 0-5.452-1.574-6.473-3.944-1.32 1.425-3.16 2.3-5.317 2.3-2.293 0-4.394-1.03-5.71-2.617a7.397 7.397 0 0 1-4.992 1.905c-2.538 0-4.802-1.244-6.085-3.12-1.28 1.876-3.543 3.12-6.078 3.12-1.937 0-3.7-.727-4.995-1.906-1.312 1.585-3.416 2.617-5.71 2.617-2.156 0-3.995-.876-5.317-2.3-1.02 2.37-3.6 3.943-6.473 3.943a7.145 7.145 0 0 1-3.635-.984c-.55 1.37-1.606 2.56-3.084 2.8-1.4.228-3.164-.48-4.326-1.156-2.125-1.23-4.072-4.245-4.072-4.245l.204-1.846s1.295 1.526 3.64 3.37c2.35 1.846 4.12 1.733 4.12 1.733 1.544-.25 2.21-1.67 2.21-3.25l-.006-1.575 1.01 1.284c.86 1.22 2.33 2.022 3.997 2.022 2.654 0 4.803-2.032 4.803-4.545 0-.753-.135-1.456-.472-2.08l.847-1.994 1.58 1.563c-.024.19-.038.386-.038.58 0 2.634 2.248 4.762 5.025 4.762 2.477 0 4.67-1.626 4.992-4.03.068.033.05-1.792.225-1.81.21-.023.618 1.752.688 1.702.656 1.908 2.554 3.29 4.792 3.29 2.78 0 5.03-2.138 5.03-4.767 0-.59-.035-1.15-.242-1.662l1.313-.233" fill="#c8b100" stroke="#000" stroke-width=".399"/> - <path d="M290.478 210.855c.29-.853.03-1.698-.583-1.882-.614-.193-1.352.345-1.643 1.196-.293.85-.03 1.69.584 1.882.613.185 1.35-.35 1.642-1.197m-21.888-4.238c.114-.89-.312-1.67-.953-1.742-.64-.076-1.255.58-1.37 1.47-.116.886.31 1.668.95 1.745.643.07 1.258-.587 1.373-1.474m-25.414.001c-.115-.89.315-1.67.952-1.742.64-.076 1.255.58 1.37 1.47.112.886-.31 1.668-.95 1.745-.643.07-1.258-.587-1.372-1.474m-21.886 4.24c-.29-.853-.03-1.698.584-1.882.615-.193 1.348.345 1.64 1.196.288.85.027 1.69-.584 1.882-.614.185-1.347-.35-1.64-1.197" fill="#fff" stroke="#000" stroke-width=".399"/> - <path d="M230.798 196.25c1.086.686 2.034 1.828 2.364 3.105 0 0 .127-.262.725-.608.604-.338 1.114-.328 1.114-.328s-.17.993-.256 1.35c-.087.348-.095 1.414-.326 2.374-.23.96-.65 1.727-.65 1.727a2.026 2.026 0 0 0-1.612-.425c-.6.103-1.082.455-1.358.92 0 0-.673-.585-1.233-1.41-.565-.827-.95-1.823-1.164-2.125-.21-.305-.73-1.185-.73-1.185s.478-.178 1.166-.05c.686.127.902.334.902.334-.146-1.313.29-2.685 1.06-3.68" fill="#c8b100" stroke="#000" stroke-width=".399"/> - <path d="M231.258 206.704a1.862 1.862 0 0 1-.69-1.106 1.74 1.74 0 0 1 .238-1.255s-.908-.457-1.88-.712c-.737-.192-2.033-.2-2.425-.206-.39-.012-1.174-.03-1.174-.03s.066.18.288.567c.268.47.507.764.507.764-1.297.3-2.403 1.153-3.102 2.143 1.015.7 2.363 1.127 3.686.992 0 0-.115.353-.2.886-.068.44-.064.623-.064.623l1.094-.404c.365-.136 1.582-.557 2.208-.98.817-.558 1.516-1.28 1.516-1.28m2.91-.491a1.76 1.76 0 0 0 .248-1.257 1.835 1.835 0 0 0-.675-1.105s.683-.724 1.5-1.28c.623-.422 1.843-.848 2.208-.978.366-.134 1.096-.408 1.096-.408s.003.186-.066.626c-.083.53-.2.884-.2.884 1.326-.14 2.676.305 3.69 1.01-.698.985-1.812 1.825-3.105 2.124a7.094 7.094 0 0 0 .795 1.331l-1.176-.023c-.39-.007-1.69-.01-2.426-.208-.97-.26-1.89-.71-1.89-.71" fill="#c8b100" stroke="#000" stroke-width=".399"/> - <path d="M230.31 205.26c0-1.165.994-2.106 2.22-2.106 1.22 0 2.218.94 2.218 2.106 0 1.16-.994 2.1-2.22 2.1-1.224 0-2.218-.94-2.218-2.1" fill="#ad1519" stroke="#000" stroke-width=".399"/> - <path d="M255.823 192.886c1.067.967 1.89 2.413 1.994 3.9 0 0 .19-.267.933-.536.74-.27 1.308-.164 1.308-.164s-.395 1.08-.568 1.457c-.172.38-.395 1.565-.857 2.587a8.78 8.78 0 0 1-1.074 1.803 2.272 2.272 0 0 0-1.714-.767c-.687 0-1.3.302-1.708.767 0 0-.626-.774-1.08-1.803-.456-1.022-.683-2.208-.852-2.587-.172-.377-.572-1.457-.572-1.457s.572-.106 1.31.164c.74.27.937.537.937.537.104-1.488.88-2.934 1.943-3.9" fill="#c8b100" stroke="#000" stroke-width=".399"/> - <path d="M254.168 204.627a2.044 2.044 0 0 1-.54-1.36c0-.513.195-.992.525-1.353 0 0-.913-.684-1.943-1.15-.78-.355-2.227-.602-2.66-.683l-1.307-.245s.036.206.204.683c.204.578.408.95.408.95-1.504.09-2.923.84-3.906 1.81.982.963 2.395 1.694 3.905 1.793 0 0-.204.368-.408.95-.168.47-.204.68-.204.68l1.306-.24c.433-.088 1.88-.33 2.66-.69 1.03-.467 1.958-1.14 1.958-1.14m3.347-.005c.33-.368.54-.844.54-1.36a2 2 0 0 0-.525-1.353s.914-.684 1.944-1.15c.782-.355 2.23-.602 2.663-.683l1.297-.245s-.03.206-.202.683a7.6 7.6 0 0 1-.404.95c1.506.09 2.922.84 3.9 1.81-.978.963-2.39 1.694-3.9 1.793 0 0 .2.368.404.95.17.47.202.68.202.68l-1.297-.24c-.434-.088-1.88-.33-2.663-.69a12.963 12.963 0 0 1-1.96-1.14m23.455-8.382c-1.082.686-2.03 1.828-2.36 3.105 0 0-.132-.262-.73-.608-.598-.338-1.114-.328-1.114-.328s.173.993.262 1.35c.09.348.092 1.414.322 2.374.23.96.648 1.727.648 1.727a2.037 2.037 0 0 1 1.614-.425 1.97 1.97 0 0 1 1.362.92s.668-.585 1.233-1.41c.56-.827.948-1.823 1.154-2.125.21-.305.734-1.185.734-1.185s-.48-.178-1.168-.05c-.687.127-.903.334-.903.334.154-1.313-.283-2.685-1.056-3.68" fill="#c8b100" stroke="#000" stroke-width=".399"/> - <path d="M280.51 206.704c.344-.274.608-.656.688-1.106a1.747 1.747 0 0 0-.234-1.255s.902-.457 1.873-.712c.74-.192 2.04-.2 2.426-.206.393-.012 1.176-.03 1.176-.03s-.063.18-.288.567c-.27.47-.507.764-.507.764 1.296.3 2.402 1.153 3.102 2.143-1.01.7-2.357 1.127-3.686.992 0 0 .12.353.2.886.066.44.06.623.06.623l-1.088-.404c-.365-.136-1.582-.557-2.21-.98a11.48 11.48 0 0 1-1.51-1.28m-2.915-.491a1.785 1.785 0 0 1-.25-1.257c.086-.45.334-.833.68-1.105 0 0-.688-.724-1.505-1.28-.622-.422-1.844-.848-2.207-.978-.366-.134-1.09-.408-1.09-.408s-.004.186.063.626c.082.53.197.884.197.884-1.325-.14-2.677.305-3.686 1.01.698.985 1.808 1.825 3.1 2.124 0 0-.232.295-.502.764a3.99 3.99 0 0 0-.287.567l1.17-.023c.39-.007 1.695-.01 2.427-.208.97-.26 1.886-.71 1.886-.71" fill="#c8b100" stroke="#000" stroke-width=".399"/> - <path d="M277.018 205.26c0-1.165.993-2.106 2.22-2.106 1.228 0 2.222.94 2.222 2.106 0 1.16-.994 2.1-2.223 2.1-1.226 0-2.22-.94-2.22-2.1m24.823 4.668c-.524-.552-1.606-.436-2.415.255-.81.687-1.045 1.698-.523 2.247.523.553 1.605.433 2.414-.254.81-.694 1.046-1.702.524-2.248" fill="#ad1519" stroke="#000" stroke-width=".399"/> - <path d="M298.688 211.267c.11-.378.364-.764.737-1.084.81-.69 1.89-.807 2.415-.255.064.074.138.17.18.258 0 0 1.125-2.134 2.457-2.842 1.334-.717 3.588-.536 3.588-.536 0-1.636-1.34-2.958-3.07-2.958-1.013 0-1.973.42-2.538 1.133l-.232-1.097s-1.39.276-2.03 1.864c-.632 1.594.06 3.895.06 3.895-.002 0-.347-.99-.868-1.648-.52-.653-1.85-1.37-2.545-1.697-.696-.323-1.406-.81-1.406-.81s-.03.177-.058.618c-.027.526.016.85.016.85-1.275-.167-2.762.04-3.92.49.494.975 1.438 1.89 2.675 2.36 0 0-.446.368-.854.77-.336.343-.444.503-.444.503l1.31.187c.432.058 1.88.286 2.744.23a15.693 15.693 0 0 0 1.782-.23m-85.609-.001c-.11-.378-.362-.764-.737-1.084-.81-.69-1.888-.807-2.415-.255a1.13 1.13 0 0 0-.18.258s-1.13-2.134-2.46-2.842c-1.33-.717-3.582-.536-3.582-.536 0-1.636 1.34-2.958 3.066-2.958 1.017 0 1.97.42 2.54 1.133l.232-1.097s1.39.276 2.027 1.864c.635 1.594-.06 3.895-.06 3.895s.347-.99.87-1.648c.52-.653 1.853-1.37 2.548-1.697.692-.323 1.405-.81 1.405-.81s.027.177.055.618c.027.526-.016.85-.016.85 1.27-.167 2.76.04 3.92.49-.495.975-1.436 1.89-2.675 2.36 0 0 .445.368.85.77.34.343.45.503.45.503l-1.308.187c-.44.058-1.883.286-2.747.23a15.646 15.646 0 0 1-1.785-.23" fill="#c8b100" stroke="#000" stroke-width=".399"/> - <path d="M209.925 209.928c.527-.552 1.606-.436 2.416.255.815.687 1.044 1.698.523 2.247-.522.553-1.605.433-2.414-.254-.812-.694-1.046-1.702-.525-2.248m43.703-6.661c0-1.163.993-2.1 2.218-2.1s2.223.937 2.223 2.1-.995 2.105-2.224 2.105c-1.225 0-2.218-.942-2.218-2.105" fill="#ad1519" stroke="#000" stroke-width=".399"/> - <path d="M251.226 171.316c0-2.38 2.033-4.3 4.536-4.3 2.503 0 4.534 1.92 4.534 4.3 0 2.37-2.03 4.29-4.534 4.29-2.503 0-4.536-1.92-4.536-4.29" fill="#005bbf" stroke="#000" stroke-width=".266"/> - <path d="M254.574 159.27v2.32h-2.48v2.35h2.48v6.77h-3.125c-.038.22-.227.382-.227.612 0 .593.124 1.163.355 1.676.006.014.025.018.03.032h8.314c.006-.014.027-.018.033-.032a4.1 4.1 0 0 0 .354-1.676c0-.23-.19-.392-.226-.612h-3.03v-6.77h2.482v-2.35h-2.48v-2.32h-2.482z" fill="#c8b100" stroke="#000" stroke-width=".266"/> - <path d="M256.21 352.597c-13.395 0-26.672-3.283-37.834-8.745-8.227-4.075-13.683-12.293-13.683-21.696v-34.1h102.833v34.1c0 9.403-5.455 17.62-13.685 21.696-11.16 5.462-24.23 8.745-37.63 8.745" fill="#ccc"/> - <path d="M256.21 352.597c-13.395 0-26.672-3.283-37.834-8.745-8.227-4.075-13.683-12.293-13.683-21.696v-34.1h102.833v34.1c0 9.403-5.455 17.62-13.685 21.696-11.16 5.462-24.23 8.745-37.63 8.745z" fill="none" stroke="#000" stroke-width=".532"/> - <path d="M255.992 287.997h51.53v-57.05h-51.53v57.05z" fill="#ccc"/> - <path d="M255.992 287.997h51.53v-57.05h-51.53v57.05z" fill="none" stroke="#000" stroke-width=".532"/> - <path d="M256.03 322.116c0 13.475-11.42 24.398-25.643 24.398-14.23 0-25.763-10.923-25.763-24.398v-34.152h51.407v34.152" fill="#ad1519"/> - <path d="M215.854 342.25c1.607.854 3.813 2.273 6.17 2.84l-.15-58.33h-6.02v55.49z" fill="#c8b100" stroke="#000" stroke-width=".532"/> - <path d="M204.54 321.656c.156 7.196 3.013 12.546 5.87 16.05v-50.66h-5.798l-.073 34.61z" fill="#c8b100" stroke="#000" stroke-width=".512" stroke-linejoin="round"/> - <path d="M227.316 346.37c2.355.237 4.112.19 6.02 0v-59.61h-6.02v59.61z" fill="#c7b500" stroke="#000" stroke-width=".532"/> - <path d="M238.63 345.09c2.356-.472 5.014-1.94 6.17-2.697V286.76h-6.02l-.15 58.33z" fill="#c8b100" stroke="#000" stroke-width=".532"/> - <path d="M204.627 287.997h51.383v-57.05h-51.383v57.05z" fill="#ad1519"/> - <path d="M204.627 287.997h51.383v-57.05h-51.383v57.05z" fill="none" stroke="#000" stroke-width=".532"/> - <path d="M250.395 337.138c2.507-2.225 4.863-7.292 5.72-13.068l.15-37.31h-6.02l.15 50.378z" fill="#c8b100" stroke="#000" stroke-width=".532"/> - <path d="M256.03 322.116c0 13.475-11.42 24.398-25.643 24.398-14.23 0-25.763-10.923-25.763-24.398v-34.152h51.407v34.152" fill="none" stroke="#000" stroke-width=".532"/> - <path d="M307.572 287.964v34.152c0 13.475-11.55 24.398-25.778 24.398-14.226 0-25.763-10.923-25.763-24.398v-34.152h51.542" fill="#ad1519"/> - <path d="M307.572 287.964v34.152c0 13.475-11.55 24.398-25.778 24.398-14.226 0-25.763-10.923-25.763-24.398v-34.152h51.542" fill="none" stroke="#000" stroke-width=".532"/> - <path d="M265.406 313.74c.082.175.128.35.128.536 0 .63-.534 1.13-1.2 1.13-.66 0-1.196-.5-1.196-1.13 0-.185.046-.36.13-.513l-1.674-.022c-.034.172-.055.35-.055.536 0 1.185.818 2.19 1.95 2.527l-.003 4.11 1.755.01.003-4.138a2.73 2.73 0 0 0 1.737-1.655h4.713v-1.388h-6.29m23.123 0v1.388l-4.24.012a2.72 2.72 0 0 1-.27.52l4.92 5.592-1.32 1.07-4.9-5.6c-.09.028-.134.064-.23.09l-.01 9.254h-1.736l-.004-9.294c-.074-.018-.135-.054-.204-.087l-5.1 5.636-1.32-1.07 5.096-5.657a2.27 2.27 0 0 1-.212-.466h-4.38v-1.388h13.914-.004zm2.823 0v1.388h4.718c.28.78.915 1.39 1.736 1.655l.003 4.138 1.752-.01-.005-4.11c1.133-.338 1.955-1.342 1.955-2.527 0-.185-.02-.364-.063-.535h-1.666c.082.175.124.35.124.536 0 .63-.53 1.13-1.194 1.13-.66 0-1.198-.5-1.198-1.13 0-.185.046-.36.13-.513l-6.29-.022m-7.125 23.595a16.58 16.58 0 0 0 3.894-1.122l.86 1.465a18.773 18.773 0 0 1-4.607 1.305c-.27 1.196-1.385 2.094-2.73 2.094-1.34 0-2.457-.887-2.734-2.075a18.662 18.662 0 0 1-4.845-1.324l.864-1.465c1.316.556 2.72.927 4.18 1.13a2.66 2.66 0 0 1 1.613-1.425l.015-7.174h1.73l.017 7.15c.768.228 1.416.75 1.74 1.44h.002zm-11.77-2.406l-.853 1.47a17.764 17.764 0 0 1-3.89-3.29c-.89.262-1.897.107-2.657-.512-1.175-.953-1.317-2.625-.31-3.734l.146-.156a16.29 16.29 0 0 1-1.352-5.124l1.752.007a14.01 14.01 0 0 0 1.12 4.38 3.1 3.1 0 0 1 1.49.163l4.38-4.847 1.32 1.066-4.352 4.84a2.506 2.506 0 0 1-.108 2.926 16.184 16.184 0 0 0 3.316 2.81zm-6.494-5.084a1.243 1.243 0 0 1 1.69-.128c.503.407.565 1.127.134 1.6a1.246 1.246 0 0 1-1.69.127 1.096 1.096 0 0 1-.134-1.6zm-2.208-4.794l-1.8-.402-.254-4.56 1.787-.59.002 2.616c0 1.013.09 1.974.265 2.936zm1.494-5.653l1.792.42s.092 2.93.054 2.273c-.047-.767.196 2.292.196 2.292l-1.808.596c-.18-.93-.242-1.883-.242-2.864l.003-2.717h.004zm5.91 14.587a16.71 16.71 0 0 0 5.163 2.74l.4-1.733a14.61 14.61 0 0 1-4.275-2.145l-1.287 1.137m-.867 1.498a18.56 18.56 0 0 0 5.16 2.717l-1.34 1.254a19.954 19.954 0 0 1-4.218-2.164l.398-1.807m2.34-10.05l1.712.727 3.133-3.476-1.03-1.48-3.815 4.23m-1.328-1.074l-1.027-1.487 3.134-3.476 1.707.73-3.815 4.232m19.285 10.567l.856 1.47a17.812 17.812 0 0 0 3.89-3.29c.886.262 1.897.107 2.655-.512 1.177-.953 1.312-2.625.312-3.734l-.15-.156c.712-1.6 1.192-3.32 1.35-5.124l-1.743.007a14.152 14.152 0 0 1-1.123 4.38 3.11 3.11 0 0 0-1.493.163l-4.377-4.847-1.32 1.066 4.35 4.84a2.518 2.518 0 0 0 .107 2.926 16.09 16.09 0 0 1-3.314 2.81zm6.492-5.084a1.236 1.236 0 0 0-1.684-.128 1.093 1.093 0 0 0-.136 1.6c.43.476 1.187.535 1.69.127.504-.41.56-1.123.13-1.6zm2.21-4.794l1.8-.402.253-4.56-1.782-.59-.004 2.616c0 1.013-.09 1.974-.27 2.936zm-1.49-5.653l-1.794.42s-.097 2.93-.058 2.273c.05-.767-.196 2.292-.196 2.292l1.808.596c.182-.93.242-1.883.242-2.864l-.003-2.717m-5.913 14.587a16.77 16.77 0 0 1-5.16 2.74l-.4-1.733a14.586 14.586 0 0 0 4.27-2.145l1.29 1.137m.87 1.498a18.616 18.616 0 0 1-5.162 2.717l1.34 1.254a19.962 19.962 0 0 0 4.22-2.164l-.4-1.807m-2.338-10.05l-1.712.727-3.134-3.476 1.03-1.48 3.817 4.23m1.327-1.074l1.027-1.487-3.132-3.476-1.708.73 3.814 4.232m-21.446-9.228l.527 1.708h4.826l.52-1.708H270.3m22.545 0l-.53 1.708h-4.823l-.52-1.708h5.873m-12.397 23.293c0-.63.537-1.138 1.198-1.138.66 0 1.193.507 1.193 1.137 0 .626-.533 1.13-1.193 1.13s-1.198-.504-1.198-1.13zm2.03-8.27l1.802-.504v-4.564l-1.8-.495v5.563m-1.747 0l-1.796-.505v-4.564l1.797-.495v5.563" fill="#c8b100"/> - <path d="M261.594 313.78c.207-.95.95-1.722 1.91-2.01l-.015-5.635h1.737l.003 5.665c.857.27 1.516.903 1.78 1.72l4.685.006v.255h-6.29a1.237 1.237 0 0 0-1.07-.603 1.21 1.21 0 0 0-1.067.626l-1.674-.022m13.02 0v-.254h4.35c.05-.142.114-.28.188-.412l-5.368-5.982 1.32-1.07 5.3 5.884c.09-.045.19-.085.283-.118l.005-7.84h1.734v7.792c.078.023.196.044.274.067l5.176-5.894 1.33 1.055-5.196 5.87c.134.197.225.416.3.648h4.214v.255H274.61h.003zm23.03 0a1.23 1.23 0 0 1 1.066-.603c.47 0 .873.258 1.07.626l1.667-.022c-.207-.95-.944-1.722-1.903-2.01l.01-5.632h-1.732l-.007 5.665c-.852.27-1.512.9-1.777 1.716l-4.687.006v.255h6.293m-32.136-15.912l6.457 7.24 1.322-1.072-6.493-7.21c.13-.194.222-.404.3-.63h4.722v-1.648h-4.726c-.363-1.067-1.422-1.832-2.67-1.832-1.543 0-2.8 1.188-2.8 2.653 0 1.16.787 2.152 1.885 2.51l-.01 5.584h1.734v-5.548c.073-.02.206-.02.277-.048zm34.068.037l-.016 5.56h-1.737v-5.582a2.61 2.61 0 0 1-.39-.158l-6.42 7.248-1.328-1.057 6.544-7.39a2.42 2.42 0 0 1-.15-.33h-4.75v-1.648h4.735c.365-1.067 1.414-1.832 2.657-1.832 1.543 0 2.8 1.188 2.8 2.653 0 1.19-.812 2.195-1.947 2.535zm-17.13-.022l-.014 3.424h-1.734l.004-3.395a2.743 2.743 0 0 1-1.83-1.717h-4.234v-1.647h4.235c.367-1.067 1.41-1.832 2.655-1.832 1.244 0 2.295.765 2.66 1.832h4.32v1.647h-4.33a2.696 2.696 0 0 1-1.73 1.688zm-18.935 4.156l-1.8.506v4.576l1.8.496v-5.58m1.747 0l1.796.508v4.576l-1.796.496v-5.58m32.55 0l-1.796.508v4.576l1.797.496v-5.58m1.748 0l1.8.508v4.576l-1.8.496v-5.58m-27.25.904l1.714-.727 3.132 3.483-1.03 1.485-3.817-4.24m-1.327 1.078l-1.025 1.492 3.133 3.48 1.708-.733-3.816-4.24m19.674-1.212l-1.717-.714-3.102 3.508 1.04 1.476 3.78-4.27m1.335 1.068l1.04 1.478-3.102 3.51-1.713-.72 3.775-4.268m-21.69 9.646l.527-1.71h4.826l.52 1.71h-5.87m-7.077-18.15c0-.626.536-1.137 1.198-1.137.66 0 1.195.51 1.195 1.137s-.535 1.133-1.194 1.133c-.66 0-1.197-.506-1.197-1.133zm12.907.826l-.53 1.714h-4.822l-.52-1.714h5.872m0-1.657l-.53-1.707h-4.822l-.52 1.708h5.872m16.713 18.982l-.53-1.71h-4.822l-.52 1.71h5.873m4.682-18.15c0-.626.533-1.137 1.197-1.137.66 0 1.195.51 1.195 1.137s-.534 1.133-1.195 1.133c-.664 0-1.197-.506-1.197-1.133zm-17.197 0c0-.626.537-1.137 1.197-1.137s1.195.51 1.195 1.137-.534 1.133-1.195 1.133c-.66 0-1.197-.506-1.197-1.133zm6.683.826l.532 1.714h4.822l.522-1.714h-5.875m0-1.657l.532-1.707h4.822l.522 1.708h-5.875m-6.298 5.346l-1.797.506v4.576l1.797.496v-5.578m1.727 0l1.795.506v4.576l-1.796.496v-5.578" fill="#c8b100"/> - <path d="M284.227 337.335a16.58 16.58 0 0 0 3.894-1.122l.86 1.465a18.773 18.773 0 0 1-4.607 1.305c-.27 1.196-1.385 2.094-2.73 2.094-1.34 0-2.457-.887-2.734-2.075a18.662 18.662 0 0 1-4.845-1.324l.864-1.465c1.316.556 2.72.927 4.18 1.13a2.66 2.66 0 0 1 1.613-1.425l.015-7.174h1.73l.017 7.148c.768.23 1.416.753 1.74 1.443h.002zm-5.02-21.736a2.434 2.434 0 0 1-.213-.47h-4.38v-1.644h4.35c.05-.138.12-.276.19-.407l-5.37-5.975 1.32-1.07 5.304 5.873a2.16 2.16 0 0 1 .284-.115l.004-7.826h1.73v7.778c.078.02.196.044.274.07l5.176-5.89 1.33 1.06-5.196 5.855c.134.196.225.414.3.646h4.214v1.644l-4.24.01c-.06.187-.168.358-.267.52l4.922 5.598-1.322 1.07-4.9-5.605c-.09.033-.134.07-.233.095l-.012 9.253h-1.735l-.005-9.292c-.073-.022-.133-.06-.203-.092l-5.1 5.64-1.318-1.068 5.094-5.66m-13.7-17.74l6.457 7.226 1.322-1.07-6.492-7.196c.13-.193.22-.403.3-.63h4.722v-1.642h-4.726c-.363-1.065-1.422-1.83-2.67-1.83-1.544 0-2.8 1.186-2.8 2.65 0 1.158.786 2.147 1.885 2.502l-.01 5.576h1.734v-5.538c.073-.02.206-.02.277-.048zm6.952 37.07l-.854 1.474a17.764 17.764 0 0 1-3.89-3.292c-.89.263-1.897.107-2.656-.512-1.176-.953-1.318-2.625-.312-3.734l.147-.156a16.29 16.29 0 0 1-1.352-5.124l1.752.007c.137 1.54.52 3.006 1.12 4.38a3.1 3.1 0 0 1 1.49.164l4.38-4.848 1.32 1.066-4.352 4.84a2.506 2.506 0 0 1-.108 2.926 16.184 16.184 0 0 0 3.316 2.81zm-8.97-14.015v-4.11c-1.13-.335-1.952-1.342-1.952-2.527 0-1.183.833-2.2 1.967-2.543l-.014-5.62h1.736l.003 5.653c.857.27 1.516.898 1.78 1.713l4.685.006v1.644h-4.713a2.73 2.73 0 0 1-1.737 1.655l-.003 4.138-1.755-.01m2.476 8.932a1.243 1.243 0 0 1 1.69-.128c.503.408.565 1.128.135 1.6a1.246 1.246 0 0 1-1.69.128 1.095 1.095 0 0 1-.135-1.6zm-2.208-4.793l-1.8-.403-.254-4.56 1.787-.59.002 2.615c0 1.014.09 1.974.265 2.937zm1.494-5.654l1.792.422s.092 2.93.054 2.273c-.047-.767.196 2.29.196 2.29l-1.808.597c-.18-.93-.242-1.884-.242-2.865l.003-2.717h.004zm5.91 14.588a16.71 16.71 0 0 0 5.163 2.742l.4-1.734a14.61 14.61 0 0 1-4.275-2.145l-1.287 1.136m-.867 1.498a18.56 18.56 0 0 0 5.16 2.717l-1.34 1.256a19.954 19.954 0 0 1-4.218-2.164l.398-1.808" fill="none" stroke="#c8b100" stroke-width=".266"/> - <path d="M272.633 325.435l1.712.727 3.133-3.476-1.03-1.48-3.815 4.23m-1.328-1.074l-1.027-1.487 3.134-3.476 1.707.73-3.815 4.232m-8.167-10.086c0-.63.536-1.138 1.197-1.138.66 0 1.195.508 1.195 1.138 0 .63-.534 1.13-1.195 1.13-.66 0-1.197-.5-1.197-1.13zm27.452 20.653l.856 1.47a17.812 17.812 0 0 0 3.89-3.29c.886.262 1.897.107 2.655-.512 1.177-.953 1.312-2.625.312-3.734l-.15-.156c.712-1.6 1.192-3.32 1.35-5.124l-1.743.007a14.152 14.152 0 0 1-1.123 4.38 3.11 3.11 0 0 0-1.493.163l-4.377-4.847-1.32 1.066 4.35 4.84a2.518 2.518 0 0 0 .107 2.926 16.09 16.09 0 0 1-3.314 2.81zm8.973-14.018l-.004-4.11c1.132-.334 1.953-1.34 1.953-2.526 0-1.183-.832-2.2-1.965-2.543l.01-5.62h-1.735l-.007 5.653c-.852.27-1.513.898-1.778 1.713l-4.687.006v1.644h4.72c.28.778.913 1.39 1.734 1.654l.003 4.138 1.752-.01h.003zm-2.48 8.934a1.236 1.236 0 0 0-1.685-.128 1.093 1.093 0 0 0-.136 1.6c.43.476 1.187.535 1.69.127.504-.41.56-1.123.13-1.6zm2.208-4.794l1.8-.402.255-4.56-1.782-.59-.004 2.616c0 1.013-.09 1.974-.27 2.936zm-1.49-5.653l-1.792.42s-.097 2.932-.057 2.273c.05-.767-.196 2.292-.196 2.292l1.808.596c.182-.93.242-1.883.242-2.864l-.003-2.717m1.775-21.505l-.016 5.55h-1.738v-5.573a2.4 2.4 0 0 1-.388-.156l-6.42 7.233-1.33-1.055 6.545-7.375a2.535 2.535 0 0 1-.15-.33h-4.75v-1.645h4.735c.365-1.065 1.413-1.828 2.657-1.828 1.543 0 2.8 1.185 2.8 2.648 0 1.188-.812 2.19-1.947 2.53zm-17.13-.023l-.014 3.42h-1.734l.004-3.39a2.74 2.74 0 0 1-1.83-1.713h-4.234v-1.645h4.235c.367-1.065 1.41-1.828 2.654-1.828 1.245 0 2.296.763 2.662 1.828h4.32v1.644h-4.332a2.69 2.69 0 0 1-1.728 1.682zm9.442 36.115a16.77 16.77 0 0 1-5.16 2.74l-.4-1.733a14.586 14.586 0 0 0 4.27-2.145l1.29 1.137m.87 1.498a18.617 18.617 0 0 1-5.162 2.717l1.34 1.254a19.962 19.962 0 0 0 4.22-2.164l-.4-1.807m-29.245-33.463l-1.8.506v4.567l1.8.493v-5.566m1.747 0l1.796.506v4.567l-1.796.493v-5.566m32.55 0l-1.796.506v4.567l1.797.493v-5.566" fill="none" stroke="#c8b100" stroke-width=".266"/> - <path d="M299.555 302.022l1.8.505v4.568l-1.8.493v-5.566m-9.138 23.413l-1.712.727-3.134-3.476 1.03-1.48 3.817 4.23m1.327-1.074l1.027-1.487-3.132-3.476-1.708.73 3.814 4.232m-19.44-21.44l1.715-.726 3.132 3.477-1.03 1.483-3.818-4.233M270.978 304l-1.025 1.487 3.133 3.473 1.708-.73-3.816-4.23m19.673-1.21l-1.715-.713-3.103 3.5 1.04 1.474 3.78-4.26m1.336 1.064l1.04 1.476-3.103 3.502-1.712-.717 3.775-4.26m-21.69 9.628l.527-1.706h4.826l.52 1.706H270.3m0 1.65l.527 1.71h4.826l.52-1.71H270.3m-7.075-19.765c0-.625.536-1.135 1.198-1.135.66 0 1.195.51 1.195 1.135s-.535 1.13-1.194 1.13c-.66 0-1.197-.505-1.197-1.13zm12.907.825l-.53 1.71h-4.822l-.522-1.71h5.874m0-1.655l-.53-1.705h-4.822l-.522 1.705h5.874m21.382 19.738c0-.63.54-1.138 1.198-1.138.665 0 1.194.508 1.194 1.138 0 .63-.53 1.13-1.194 1.13-.66 0-1.198-.5-1.198-1.13zm-4.67-.793l-.53-1.706h-4.822l-.52 1.706h5.873m0 1.65l-.53 1.71h-4.823l-.52-1.71h5.873m-12.397 23.294c0-.63.537-1.138 1.198-1.138.66 0 1.193.507 1.193 1.137 0 .626-.533 1.13-1.193 1.13s-1.198-.504-1.198-1.13zm2.03-8.27l1.802-.504v-4.564l-1.8-.495v5.563m-1.747 0l-1.796-.505v-4.564l1.797-.495v5.563m16.794-34.79c0-.625.534-1.135 1.198-1.135.66 0 1.195.51 1.195 1.135s-.534 1.13-1.195 1.13c-.664 0-1.198-.505-1.198-1.13zm-17.197 0c0-.625.538-1.135 1.197-1.135.662 0 1.195.51 1.195 1.135s-.534 1.13-1.196 1.13c-.66 0-1.197-.505-1.197-1.13zm6.684.825l.53 1.71h4.824l.522-1.71h-5.875m0-1.655l.53-1.705h4.824l.522 1.705h-5.875m-6.307 5.336l-1.796.505v4.567l1.797.495v-5.567m1.73 0l1.795.505v4.567l-1.796.495v-5.567" fill="none" stroke="#c8b100" stroke-width=".266"/> - <path d="M278.84 314.305c0-1.47 1.257-2.658 2.804-2.658 1.543 0 2.8 1.19 2.8 2.658 0 1.462-1.257 2.647-2.8 2.647-1.547 0-2.803-1.185-2.803-2.647" fill="#058e6e"/> - <path d="M282.258 245.003l.057-.633.088-.353s-1.65.135-2.518-.108c-.868-.248-1.65-.606-2.462-1.29-.81-.687-1.128-1.116-1.708-1.202-1.39-.222-2.46.408-2.46.408s1.044.384 1.828 1.34c.778.965 1.628 1.45 1.995 1.568.608.185 2.72.054 3.3.077.578.03 1.88.196 1.88.196" fill="#db4446"/> - <path d="M282.258 245.003l.057-.633.088-.353s-1.65.135-2.518-.108c-.868-.248-1.65-.606-2.462-1.29-.81-.687-1.128-1.116-1.708-1.202-1.39-.222-2.46.408-2.46.408s1.044.384 1.828 1.34c.778.965 1.628 1.45 1.995 1.568.608.185 2.72.054 3.3.077.578.03 1.88.196 1.88.196v-.003z" fill="none" stroke="#000" stroke-width=".399"/> - <path d="M289.972 242.683s.004.738.076 1.444c.07.677-.218 1.268-.107 1.643.108.38.16.677.308.948.138.274.215.965.215.965s-.395-.28-.76-.553c-.36-.276-.62-.447-.62-.447s.074.738.108 1.054c.04.317.225.913.524 1.266.296.345.888.912 1.07 1.367.19.46.152 1.47.152 1.47s-.48-.77-.893-.906c-.405-.142-1.296-.637-1.296-.637s.817.81.817 1.582c0 .77-.333 1.646-.333 1.646s-.37-.698-.848-1.156c-.483-.455-1.152-.912-1.152-.912s.522 1.19.522 1.995c0 .81-.145 2.53-.145 2.53s-.408-.664-.815-.988c-.41-.312-.89-.592-1.04-.8-.146-.21.485.662.552 1.19.073.527.323 2.406 1.967 4.806.96 1.405 2.447 3.86 5.63 3.052 3.186-.804 2.003-5.086 1.336-7.087-.67-1.996-1.003-4.21-.964-4.985.035-.767.59-3.047.518-3.473-.073-.417-.246-2.047.15-3.36.407-1.366.745-1.897.963-2.46.22-.56.403-.878.477-1.368.073-.492.073-1.41.073-1.41s.59 1.093.74 1.478c.147.39.147 1.542.147 1.542s.11-1.153 1.003-1.713c.89-.568 1.926-1.16 2.186-1.477.258-.32.334-.526.334-.526s-.076 1.967-.63 2.74c-.368.503-1.82 2.14-1.82 2.14s.746-.285 1.263-.313c.52-.04.888 0 .888 0s-.63.492-1.444 1.684c-.813 1.19-.48 1.294-1.073 2.276-.596.98-1.077 1.018-1.818 1.615-1.114.894-.514 4.45-.37 4.978.15.523 2.075 4.878 2.113 5.93.034 1.055.223 3.404-1.632 4.912-1.193.98-3.147.986-3.593 1.266-.446.277-1.33 1.154-1.33 2.98 0 1.828.663 2.105 1.18 2.563.523.457 1.188.21 1.336.564.15.348.223.56.447.77.223.207.372.455.296.835-.073.39-.926 1.267-1.222 1.903-.3.625-.89 2.28-.89 2.523 0 .248-.07 1.02.183 1.407 0 0 .926 1.082.295 1.29-.406.14-.805-.254-.997-.208-.553.145-.842.486-1.002.457-.37-.07-.37-.25-.407-.77-.034-.525-.015-.74-.18-.74-.224 0-.335.183-.373.46-.04.28-.04.908-.296.908-.26 0-.63-.455-.852-.556-.223-.107-.852-.21-.888-.49-.038-.28.37-.877.776-.984.408-.105.78-.312.52-.522-.26-.212-.52-.212-.777 0-.26.21-.814.032-.78-.284.04-.316.113-.7.073-.876-.035-.17-.48-.524.107-.845.595-.312.852.285 1.444.178.596-.1.892-.32 1.114-.664.224-.35.185-1.09-.222-1.542-.407-.46-.814-.532-.964-.812-.15-.28-.368-.946-.368-.946s.107 1.226.034 1.404c-.072.175-.034.91-.034.91s-.408-.456-.74-.804c-.33-.352-.666-1.403-.666-1.403s-.035.98-.035 1.37c0 .38.44.734.295.877-.15.138-.85-.74-1.036-.877-.19-.14-.78-.596-1.042-1.09-.257-.492-.446-1.19-.518-1.44-.075-.245-.195-1.34-.075-1.615.186-.42.483-1.157.483-1.157h-1.445c-.775 0-1.332-.243-1.628.28-.295.528-.15 1.582.22 2.95.372 1.362.59 2.032.483 2.28-.108.243-.59.807-.775.908-.19.11-.707.073-.93-.03-.22-.105-.587-.283-1.294-.283-.704 0-1.15.033-1.406-.03-.26-.07-.89-.388-1.19-.318-.297.07-.808.333-.67.738.228.632-.218.774-.517.738-.296-.037-.55-.142-.925-.245-.368-.108-.926 0-.85-.424.07-.423.22-.456.404-.768.188-.32.257-.524.05-.546-.26-.026-.522-.055-.725.112-.195.164-.514.518-.775.386-.262-.138-.465-.44-.465-1.102 0-.658-.695-1.232-.057-1.204.637.03 1.448.496 1.593.14.143-.36.055-.52-.29-.8-.35-.273-.78-.437-.317-.794.46-.353.576-.353.753-.55.173-.188.42-.805.745-.653.636.303.03.743.667 1.45.638.714 1.04.966 2.112.852 1.07-.108 1.363-.247 1.363-.55 0-.3-.09-.846-.12-1.068-.026-.218.148-1.015.148-1.015s-.493.305-.638.602c-.14.303-.43.82-.43.82s-.12-.615-.085-1.117c.02-.294.124-.807.112-.91-.028-.27-.23-.958-.23-.958s-.175.74-.29.96c-.114.217-.172 1.098-.172 1.098s-.68-.593-.49-1.59c.14-.767-.117-1.78.113-2.112.228-.33.777-1.673 2.11-1.73 1.33-.05 2.37.057 2.837.032.463-.033 2.112-.33 2.112-.33s-3.04-1.56-3.733-2.03c-.695-.462-1.766-1.67-2.115-2.218-.348-.55-.666-1.615-.666-1.615s-.546.025-1.04.298a5.25 5.25 0 0 0-1.27 1.01c-.294.332-.754 1.074-.754 1.074s.084-.96.084-1.26c0-.296-.057-.88-.057-.88s-.346 1.315-1.04 1.805c-.696.497-1.506 1.18-1.506 1.18s.09-.733.09-.9c0-.164.172-1.015.172-1.015s-.49.734-1.244.88c-.752.135-1.854.106-1.942.575-.084.46.203 1.094.03 1.42-.174.33-.548.55-.548.55s-.434-.36-.81-.386c-.377-.028-.726.167-.726.167s-.32-.413-.204-.685c.12-.273.695-.684.553-.85-.145-.165-.61.058-.897.192-.288.138-.898.272-.84-.193.057-.466.202-.738.057-1.07-.144-.322-.058-.545.176-.628.23-.076 1.155.025 1.244-.185.085-.22-.23-.495-.84-.633-.608-.134-.9-.493-.58-.795.32-.303.406-.382.55-.658.145-.276.202-.77.754-.52.546.244.43.847 1.015 1.04.57.195 1.934-.08 2.22-.244.294-.168 1.218-.85 1.537-1.018.32-.16 1.647-1.15 1.647-1.15s-.78-.542-1.07-.82c-.29-.274-.807-.93-1.064-1.067-.262-.142-1.536-.63-1.97-.658-.434-.03-1.766-.49-1.766-.49s.607-.197.81-.36c.203-.165.66-.58.898-.55.227.03.283.03.283.03s-1.24-.06-1.5-.135c-.26-.088-1.014-.553-1.3-.553-.293 0-.87.112-.87.112s.78-.494 1.418-.604c.637-.105 1.13-.084 1.13-.084s-.984-.273-1.218-.6c-.23-.33-.46-.818-.638-1.04-.172-.217-.288-.578-.607-.603-.318-.028-.87.387-1.186.357-.315-.024-.55-.222-.58-.684-.023-.468 0-.305-.11-.55-.116-.25-.58-.824-.147-.958.438-.138 1.363.08 1.447-.084.09-.163-.49-.657-.866-.85-.377-.19-.984-.52-.666-.793.32-.272.636-.38.81-.628.174-.248.377-.932.754-.715.375.22.897 1.29 1.186 1.208.292-.084.314-.85.26-1.177-.057-.332 0-.906.285-.852.292.054.522.437.987.47.46.024 1.155-.11 1.097.214-.056.327-.318.734-.636 1.094-.31.36-.457 1.07-.257 1.534.203.47.726 1.212 1.187 1.51.46.3 1.328.524 1.88.876.55.36 1.825 1.37 2.26 1.48.432.113.866.33.866.33s.49-.217 1.16-.217c.664 0 2.196.108 2.775-.14.58-.25 1.333-.657 1.1-1.18-.227-.518-1.503-.987-1.387-1.393.115-.41.58-.44 1.358-.47.78-.025 1.85.14 2.052-.96.202-1.093.26-1.727-.834-1.97-1.102-.248-1.914-.272-2.11-1.07-.206-.792-.41-.984-.18-1.206.236-.215.638-.328 1.45-.378.81-.058 1.734-.058 1.996-.255.26-.185.315-.71.633-.93.317-.215 1.567-.412 1.567-.412s1.487.73 2.868 1.754c1.236.923 2.354 2.287 2.354 2.287" fill="#ed72aa" stroke="#000" stroke-width=".399"/> - <path d="M279.305 241.912s-.173-.494-.202-.632c-.027-.135-.117-.302-.117-.302s.9 0 .87.272c-.028.277-.29.277-.347.382-.058.113-.205.28-.205.28"/> - <path d="M279.305 241.912s-.173-.494-.202-.632c-.027-.135-.117-.302-.117-.302s.9 0 .87.272c-.028.277-.29.277-.347.382-.058.113-.205.28-.205.28z" fill="none" stroke="#000" stroke-width=".266"/> - <path d="M283.418 240.483l-.062-.44s.784.008 1.16.273c.58.41.952 1.043.925 1.07-.1.097-.548-.274-.867-.382 0 0-.23.054-.464.054-.23 0-.347-.11-.378-.218-.025-.113.03-.302.03-.302l-.344-.05"/> - <path d="M283.418 240.483l-.062-.44s.784.008 1.16.273c.58.41.952 1.043.925 1.07-.1.097-.548-.274-.867-.382 0 0-.23.054-.464.054-.23 0-.347-.11-.378-.218-.025-.113.03-.302.03-.302l-.344-.05v-.004z" fill="none" stroke="#000" stroke-width=".051"/> - <path d="M289.062 246.68s-.35-.495-.434-.662a7.966 7.966 0 0 1-.235-.49" fill="none" stroke="#000" stroke-width=".266"/> - <path d="M267.87 241.745s.493.352.87.407c.376.058.783.058.84.058.058 0 .177-.553.115-.93-.203-1.236-1.332-1.51-1.332-1.51s.337.75.173 1.095c-.23.494-.665.88-.665.88" fill="#db4446"/> - <path d="M267.87 241.745s.493.352.87.407c.376.058.783.058.84.058.058 0 .177-.553.115-.93-.203-1.236-1.332-1.51-1.332-1.51s.337.75.173 1.095c-.23.494-.665.88-.665.88z" fill="none" stroke="#000" stroke-width=".399"/> - <path d="M265.526 242.814s-.435-.796-1.36-.687c-.925.108-1.535.825-1.535.825s1.023-.032 1.275.134c.377.248.492.88.492.88s.553-.33.725-.55c.173-.22.403-.602.403-.602" fill="#db4446"/> - <path d="M265.526 242.814s-.435-.796-1.36-.687c-.925.108-1.535.825-1.535.825s1.023-.032 1.275.134c.377.248.492.88.492.88s.553-.33.725-.55c.173-.22.403-.602.403-.602z" fill="none" stroke="#000" stroke-width=".399"/> - <path d="M264.397 246.018s-.78.112-1.213.607c-.44.494-.376 1.425-.376 1.425s.517-.545.982-.545c.466 0 1.187.164 1.187.164s-.23-.583-.23-.828-.35-.824-.35-.824" fill="#db4446"/> - <path d="M264.397 246.018s-.78.112-1.213.607c-.44.494-.376 1.425-.376 1.425s.517-.545.982-.545c.466 0 1.187.164 1.187.164s-.23-.583-.23-.828-.35-.824-.35-.824z" fill="none" stroke="#000" stroke-width=".399"/> - <path d="M279.336 245.908l.345-.545.342.495-.686.05"/> - <path d="M279.336 245.908l.345-.545.342.495-.686.05" fill="none" stroke="#000" stroke-width=".266"/> - <path d="M280.173 245.883l.406-.546.435.49-.842.056"/> - <path d="M280.173 245.883l.406-.546.435.49-.842.056" fill="none" stroke="#000" stroke-width=".266"/> - <path d="M279.798 242.512l.84.302-.753.382-.087-.684"/> - <path d="M279.798 242.512l.84.302-.753.382-.087-.684" fill="none" stroke="#000" stroke-width=".266"/> - <path d="M280.81 242.788l.752.19-.606.465-.146-.655"/> - <path d="M280.81 242.788l.752.19-.606.465-.146-.655" fill="none" stroke="#000" stroke-width=".266"/> - <path d="M275.165 249.228s-.824.24-1.128.684c-.376.548-.348 1.098-.348 1.098s.693-.574 1.59-.33c.9.246.984.33 1.364.304.377-.028 1.303-.36 1.303-.36s-.753.877-.668 1.484c.086.6.198.872.174 1.178-.062.742-.61 1.647-.61 1.647s.32-.196 1.072-.36a4.884 4.884 0 0 0 1.793-.822c.402-.304.924-1.042.924-1.042s-.168 1.015 0 1.454c.173.44.23 1.702.23 1.702s.484-.428.867-.633c.205-.11.727-.384.932-.71.14-.234.32-1.092.32-1.092s.113.923.4 1.37c.293.433.722 1.783.722 1.783s.293-.876.61-1.235c.317-.357.697-.822.723-1.098.027-.273-.084-.874-.084-.874l.403.874m-11.69.63s.49-.85.955-1.126c.466-.274 1.103-.766 1.275-.82.17-.055.926-.47.926-.47m1.014 5.295s1.115-.57 1.447-.77c.697-.408 1.188-1.15 1.188-1.15" fill="none" stroke="#000" stroke-width=".399"/> - <path d="M267.03 256.38s-.433-.46-1.186-.327c-.753.14-1.244.99-1.244.99s.637-.17 1.015-.085c.374.084.637.466.637.466s.345-.302.46-.466c.116-.162.315-.577.315-.577" fill="#db4446"/> - <path d="M267.03 256.38s-.433-.46-1.186-.327c-.753.14-1.244.99-1.244.99s.637-.17 1.015-.085c.374.084.637.466.637.466s.345-.302.46-.466c.116-.162.315-.577.315-.577h.003z" fill="none" stroke="#000" stroke-width=".399"/> - <path d="M266.162 259.423s-.637-.107-1.185.332c-.55.44-.58 1.287-.58 1.287s.522-.44.93-.38c.402.05.894.27.894.27s.09-.523.115-.657c.09-.383-.173-.852-.173-.852" fill="#db4446"/> - <path d="M266.162 259.423s-.637-.107-1.185.332c-.55.44-.58 1.287-.58 1.287s.522-.44.93-.38c.402.05.894.27.894.27s.09-.523.115-.657c.09-.383-.173-.852-.173-.852z" fill="none" stroke="#000" stroke-width=".399"/> - <path d="M267.64 262.224s-.04.814.347 1.313c.407.523 1.16.604 1.16.604s-.254-.545-.292-.822c-.058-.41.346-.767.346-.767s-.372-.38-.748-.38c-.378 0-.81.054-.81.054" fill="#db4446"/> - <path d="M267.64 262.224s-.04.814.347 1.313c.407.523 1.16.604 1.16.604s-.254-.545-.292-.822c-.058-.41.346-.767.346-.767s-.372-.38-.748-.38c-.378 0-.81.054-.81.054zm17.08 1.366s2.084 1.292 2.027 2.36c-.062 1.07-1.16 2.47-1.16 2.47" fill="none" stroke="#000" stroke-width=".399"/> - <path d="M275.165 269.434s-.52-.658-1.243-.632c-.726.03-1.48.71-1.48.71s.9-.078 1.13.22c.235.306.465.684.465.684s.404-.215.58-.353c.174-.134.548-.63.548-.63" fill="#db4446"/> - <path d="M275.165 269.434s-.52-.658-1.243-.632c-.726.03-1.48.71-1.48.71s.9-.078 1.13.22c.235.306.465.684.465.684s.404-.215.58-.353c.174-.134.548-.63.548-.63z" fill="none" stroke="#000" stroke-width=".399"/> - <path d="M272.936 272.31s-.952-.137-1.417.357c-.466.49-.435 1.396-.435 1.396s.58-.628 1.1-.575c.52.055 1.1.332 1.1.332s-.09-.55-.146-.797a14.064 14.064 0 0 0-.204-.713" fill="#db4446"/> - <path d="M272.936 272.31s-.952-.137-1.417.357c-.466.49-.435 1.396-.435 1.396s.58-.628 1.1-.575c.52.055 1.1.332 1.1.332s-.09-.55-.146-.797a14.064 14.064 0 0 0-.204-.713z" fill="none" stroke="#000" stroke-width=".399"/> - <path d="M274.993 275.355s-.464.657-.114 1.177c.344.523 1.067.77 1.067.77s-.258-.38-.143-.825c.092-.348.695-.82.695-.82l-1.507-.3" fill="#db4446"/> - <path d="M274.993 275.355s-.464.657-.114 1.177c.344.523 1.067.77 1.067.77s-.258-.38-.143-.825c.092-.348.695-.82.695-.82l-1.507-.3v-.002z" fill="none" stroke="#000" stroke-width=".399"/> - <path d="M287.698 276.59s-.835-.196-1.3.08c-.46.273-.838 1.426-.838 1.426s.753-.63 1.303-.553c.547.087.955.306.955.306s.084-.47.026-.794a2.756 2.756 0 0 0-.146-.465" fill="#db4446"/> - <path d="M287.698 276.59s-.835-.196-1.3.08c-.46.273-.838 1.426-.838 1.426s.753-.63 1.303-.553c.547.087.955.306.955.306s.084-.47.026-.794a2.756 2.756 0 0 0-.146-.465z" fill="none" stroke="#000" stroke-width=".399"/> - <path d="M288.106 279.656s-.637.658-.408 1.207a7.32 7.32 0 0 0 .638 1.123s-.023-.817.235-1.04c.373-.327 1.068-.384 1.068-.384s-.55-.492-.725-.546c-.17-.058-.807-.36-.807-.36" fill="#db4446"/> - <path d="M288.106 279.656s-.637.658-.408 1.207a7.32 7.32 0 0 0 .638 1.123s-.023-.817.235-1.04c.373-.327 1.068-.384 1.068-.384s-.55-.492-.725-.546c-.17-.058-.807-.36-.807-.36z" fill="none" stroke="#000" stroke-width=".399"/> - <path d="M291.288 280.62s-.318.792.292 1.312c.606.523 1.13.578 1.13.578s-.465-.826-.32-1.262c.15-.455.55-.74.55-.74s-.754-.248-.868-.22c-.115.026-.784.33-.784.33" fill="#db4446"/> - <path d="M291.288 280.62s-.318.792.292 1.312c.606.523 1.13.578 1.13.578s-.465-.826-.32-1.262c.15-.455.55-.74.55-.74s-.754-.248-.868-.22c-.115.026-.784.33-.784.33z" fill="none" stroke="#000" stroke-width=".399"/> - <path d="M258.683 337.46c2.143.644 3.23 2.24 3.23 4.11 0 2.432-2.362 4.278-5.425 4.278-3.064 0-5.548-1.846-5.548-4.28 0-1.84 1.02-3.894 3.152-4.042 0 0-.066-.194-.25-.51-.22-.236-.656-.676-.656-.676s.813-.153 1.282.026c.472.178.783.476.783.476s.224-.436.535-.774c.315-.335.722-.546.722-.546s.47.396.626.66c.153.275.254.598.254.598s.433-.357.81-.502c.375-.15.86-.265.86-.265s-.14.47-.232.708-.142.74-.142.74" fill="#ffd691" stroke="#000" stroke-width=".532"/> - <path d="M256.035 348.49s-4.074-2.747-5.84-3.118c-2.26-.476-4.796-.09-5.894-.15.032.033 1.318.95 1.882 1.517.564.563 2.446 1.69 3.51 1.956 3.305.83 6.343-.207 6.343-.207m1.161.24s2.61-2.713 5.342-3.087c3.227-.447 5.34.267 6.593.594.03 0-1.036.505-1.598.89-.567.386-2.02 1.604-4.244 1.63-2.226.033-4.683-.234-5.09-.17-.408.053-1.003.144-1.003.144" fill="#058e6e" stroke="#000" stroke-width=".532"/> - <path d="M256.415 345.372a5.175 5.175 0 0 1 .003-7.607 5.168 5.168 0 0 1 1.655 3.8 5.19 5.19 0 0 1-1.658 3.807" fill="#ad1519" stroke="#000" stroke-width=".532"/> - <path d="M255.378 350.935s.63-1.555.69-2.894c.054-1.118-.157-2.224-.157-2.224h.815s.408 1.19.408 2.225c0 1.04-.19 2.423-.19 2.423s-.563.087-.75.174c-.186.09-.815.298-.815.298" fill="#058e6e" stroke="#000" stroke-width=".532"/> - <path d="M306.91 203.442c0-.59.504-1.06 1.123-1.06.622 0 1.12.47 1.12 1.06 0 .59-.498 1.06-1.12 1.06-.62 0-1.122-.47-1.122-1.06" fill="#fff"/> - <path d="M306.91 203.442c0-.59.504-1.06 1.123-1.06.622 0 1.12.47 1.12 1.06 0 .59-.498 1.06-1.12 1.06-.62 0-1.122-.47-1.122-1.06z" fill="none" stroke="#000" stroke-width=".399"/> - <path d="M308.446 200.722c0-.585.5-1.058 1.123-1.058.616 0 1.12.473 1.12 1.058 0 .593-.504 1.065-1.12 1.065-.624 0-1.124-.472-1.124-1.065" fill="#fff"/> - <path d="M308.446 200.722c0-.585.5-1.058 1.123-1.058.616 0 1.12.473 1.12 1.058 0 .593-.504 1.065-1.12 1.065-.624 0-1.124-.472-1.124-1.065z" fill="none" stroke="#000" stroke-width=".399"/> - <path d="M309.467 197.574c0-.586.504-1.062 1.128-1.062.617 0 1.12.476 1.12 1.062 0 .588-.503 1.065-1.12 1.065-.624 0-1.128-.478-1.128-1.066" fill="#fff"/> - <path d="M309.467 197.574c0-.586.504-1.062 1.128-1.062.617 0 1.12.476 1.12 1.062 0 .588-.503 1.065-1.12 1.065-.624 0-1.128-.478-1.128-1.066z" fill="none" stroke="#000" stroke-width=".399"/> - <path d="M309.6 194.194c0-.588.5-1.06 1.12-1.06.617 0 1.12.472 1.12 1.06 0 .59-.503 1.062-1.12 1.062-.62 0-1.12-.472-1.12-1.062" fill="#fff"/> - <path d="M309.6 194.194c0-.588.5-1.06 1.12-1.06.617 0 1.12.472 1.12 1.06 0 .59-.503 1.062-1.12 1.062-.62 0-1.12-.472-1.12-1.062z" fill="none" stroke="#000" stroke-width=".399"/> - <path d="M308.766 190.868c0-.585.504-1.058 1.12-1.058.623 0 1.126.473 1.126 1.058 0 .592-.503 1.065-1.126 1.065-.616 0-1.12-.473-1.12-1.065" fill="#fff"/> - <path d="M308.766 190.868c0-.585.504-1.058 1.12-1.058.623 0 1.126.473 1.126 1.058 0 .592-.503 1.065-1.126 1.065-.616 0-1.12-.473-1.12-1.065z" fill="none" stroke="#000" stroke-width=".399"/> - <path d="M307.038 187.85c0-.59.503-1.062 1.122-1.062.62 0 1.123.473 1.123 1.062 0 .59-.502 1.066-1.123 1.066-.62 0-1.122-.476-1.122-1.066" fill="#fff"/> - <path d="M307.038 187.85c0-.59.503-1.062 1.122-1.062.62 0 1.123.473 1.123 1.062 0 .59-.502 1.066-1.123 1.066-.62 0-1.122-.476-1.122-1.066z" fill="none" stroke="#000" stroke-width=".399"/> - <path d="M304.734 185.37c0-.59.503-1.065 1.122-1.065.622 0 1.124.476 1.124 1.065 0 .585-.502 1.06-1.124 1.06-.62 0-1.122-.475-1.122-1.06" fill="#fff"/> - <path d="M304.734 185.37c0-.59.503-1.065 1.122-1.065.622 0 1.124.476 1.124 1.065 0 .585-.502 1.06-1.124 1.06-.62 0-1.122-.475-1.122-1.06z" fill="none" stroke="#000" stroke-width=".399"/> - <path d="M302.058 183.308c0-.59.504-1.066 1.126-1.066.618 0 1.12.476 1.12 1.066 0 .585-.502 1.06-1.12 1.06-.622 0-1.126-.475-1.126-1.06" fill="#fff"/> - <path d="M302.058 183.308c0-.59.504-1.066 1.126-1.066.618 0 1.12.476 1.12 1.066 0 .585-.502 1.06-1.12 1.06-.622 0-1.126-.475-1.126-1.06z" fill="none" stroke="#000" stroke-width=".399"/> - <path d="M298.86 181.62c0-.588.503-1.057 1.122-1.057.622 0 1.124.47 1.124 1.058 0 .59-.502 1.067-1.124 1.067-.62 0-1.12-.476-1.12-1.066" fill="#fff"/> - <path d="M298.86 181.62c0-.588.503-1.057 1.122-1.057.622 0 1.124.47 1.124 1.058 0 .59-.502 1.067-1.124 1.067-.62 0-1.12-.476-1.12-1.066z" fill="none" stroke="#000" stroke-width=".399"/> - <path d="M295.543 180.418c0-.586.503-1.062 1.124-1.062.618 0 1.123.476 1.123 1.062 0 .588-.505 1.064-1.123 1.064-.62 0-1.124-.476-1.124-1.064" fill="#fff"/> - <path d="M295.543 180.418c0-.586.503-1.062 1.124-1.062.618 0 1.123.476 1.123 1.062 0 .588-.505 1.064-1.123 1.064-.62 0-1.124-.476-1.124-1.064z" fill="none" stroke="#000" stroke-width=".399"/> - <path d="M291.834 179.755c0-.585.502-1.065 1.12-1.065.624 0 1.125.48 1.125 1.065 0 .586-.502 1.063-1.125 1.063-.62 0-1.12-.477-1.12-1.063" fill="#fff"/> - <path d="M291.834 179.755c0-.585.502-1.065 1.12-1.065.624 0 1.125.48 1.125 1.065 0 .586-.502 1.063-1.125 1.063-.62 0-1.12-.477-1.12-1.063z" fill="none" stroke="#000" stroke-width=".399"/> - <path d="M288.313 179.57c0-.586.503-1.058 1.125-1.058.618 0 1.122.472 1.122 1.058 0 .59-.504 1.066-1.122 1.066-.622 0-1.125-.477-1.125-1.066" fill="#fff"/> - <path d="M288.313 179.57c0-.586.503-1.058 1.125-1.058.618 0 1.122.472 1.122 1.058 0 .59-.504 1.066-1.122 1.066-.622 0-1.125-.477-1.125-1.066z" fill="none" stroke="#000" stroke-width=".399"/> - <path d="M284.857 179.69c0-.585.504-1.06 1.125-1.06.623 0 1.12.475 1.12 1.06 0 .59-.497 1.065-1.12 1.065-.62 0-1.125-.476-1.125-1.064" fill="#fff"/> - <path d="M284.857 179.69c0-.585.504-1.06 1.125-1.06.623 0 1.12.475 1.12 1.06 0 .59-.497 1.065-1.12 1.065-.62 0-1.125-.476-1.125-1.064z" fill="none" stroke="#000" stroke-width=".399"/> - <path d="M281.406 179.69c0-.585.502-1.06 1.12-1.06.618 0 1.12.475 1.12 1.06 0 .59-.502 1.065-1.12 1.065-.618 0-1.12-.476-1.12-1.064" fill="#fff"/> - <path d="M281.406 179.69c0-.585.502-1.06 1.12-1.06.618 0 1.12.475 1.12 1.06 0 .59-.502 1.065-1.12 1.065-.618 0-1.12-.476-1.12-1.064z" fill="none" stroke="#000" stroke-width=".399"/> - <path d="M283.134 182.654c0-.59.503-1.065 1.12-1.065.623 0 1.122.475 1.122 1.064 0 .586-.5 1.065-1.122 1.065-.617 0-1.12-.48-1.12-1.066m.703 3.275c0-.59.502-1.066 1.12-1.066.623 0 1.126.478 1.126 1.067 0 .58-.503 1.057-1.125 1.057-.62 0-1.12-.476-1.12-1.057m.125 3.26c0-.593.503-1.066 1.125-1.066.62 0 1.12.473 1.12 1.066 0 .585-.5 1.062-1.12 1.062-.622 0-1.125-.477-1.125-1.062m-1.021 2.967c0-.586.502-1.065 1.12-1.065.623 0 1.122.48 1.122 1.065 0 .588-.5 1.062-1.122 1.062-.618 0-1.12-.474-1.12-1.062m-1.909 2.728c0-.586.504-1.065 1.12-1.065.622 0 1.123.48 1.123 1.065s-.5 1.06-1.122 1.06c-.617 0-1.12-.475-1.12-1.06" fill="#fff" stroke="#000" stroke-width=".399"/> - <path d="M278.79 177.632c0-.585.504-1.06 1.126-1.06.618 0 1.12.475 1.12 1.06 0 .59-.502 1.065-1.12 1.065-.622 0-1.125-.476-1.125-1.065" fill="#fff"/> - <path d="M278.79 177.632c0-.585.504-1.06 1.126-1.06.618 0 1.12.475 1.12 1.06 0 .59-.502 1.065-1.12 1.065-.622 0-1.125-.476-1.125-1.065z" fill="none" stroke="#000" stroke-width=".399"/> - <path d="M275.723 175.938c0-.586.5-1.065 1.122-1.065.618 0 1.12.48 1.12 1.065s-.502 1.06-1.12 1.06c-.622 0-1.123-.475-1.123-1.06" fill="#fff"/> - <path d="M275.723 175.938c0-.586.5-1.065 1.122-1.065.618 0 1.12.48 1.12 1.065s-.502 1.06-1.12 1.06c-.622 0-1.123-.475-1.123-1.06z" fill="none" stroke="#000" stroke-width=".399"/> - <path d="M272.34 174.916c0-.586.504-1.058 1.125-1.058.618 0 1.122.472 1.122 1.058 0 .588-.504 1.066-1.122 1.066-.62 0-1.124-.478-1.124-1.066" fill="#fff"/> - <path d="M272.34 174.916c0-.586.504-1.058 1.125-1.058.618 0 1.122.472 1.122 1.058 0 .588-.504 1.066-1.122 1.066-.62 0-1.124-.478-1.124-1.066z" fill="none" stroke="#000" stroke-width=".399"/> - <path d="M268.824 174.312c0-.585.504-1.06 1.12-1.06.623 0 1.122.475 1.122 1.06 0 .585-.5 1.062-1.12 1.062-.618 0-1.122-.477-1.122-1.062" fill="#fff"/> - <path d="M268.824 174.312c0-.585.504-1.06 1.12-1.06.623 0 1.122.475 1.122 1.06 0 .585-.5 1.062-1.12 1.062-.618 0-1.122-.477-1.122-1.062z" fill="none" stroke="#000" stroke-width=".399"/> - <path d="M265.38 174.37c0-.585.502-1.065 1.12-1.065.623 0 1.126.48 1.126 1.065 0 .59-.503 1.063-1.125 1.063-.618 0-1.12-.473-1.12-1.063" fill="#fff"/> - <path d="M265.38 174.37c0-.585.502-1.065 1.12-1.065.623 0 1.126.48 1.126 1.065 0 .59-.503 1.063-1.125 1.063-.618 0-1.12-.473-1.12-1.063z" fill="none" stroke="#000" stroke-width=".399"/> - <path d="M261.797 174.974c0-.585.504-1.06 1.122-1.06.62 0 1.124.475 1.124 1.06 0 .592-.503 1.066-1.125 1.066-.62 0-1.123-.474-1.123-1.066" fill="#fff"/> - <path d="M261.797 174.974c0-.585.504-1.06 1.122-1.06.62 0 1.124.475 1.124 1.06 0 .592-.503 1.066-1.125 1.066-.62 0-1.123-.474-1.123-1.066z" fill="none" stroke="#000" stroke-width=".399"/> - <path d="M258.48 176.12c0-.59.503-1.066 1.12-1.066.623 0 1.126.476 1.126 1.066 0 .585-.503 1.065-1.125 1.065-.617 0-1.12-.48-1.12-1.065" fill="#fff"/> - <path d="M258.48 176.12c0-.59.503-1.066 1.12-1.066.623 0 1.126.476 1.126 1.066 0 .585-.503 1.065-1.125 1.065-.617 0-1.12-.48-1.12-1.065z" fill="none" stroke="#000" stroke-width=".399"/> - <path d="M202.297 203.442c0-.59.503-1.06 1.12-1.06.623 0 1.122.47 1.122 1.06 0 .59-.5 1.06-1.122 1.06-.618 0-1.12-.47-1.12-1.06" fill="#fff"/> - <path d="M202.297 203.442c0-.59.503-1.06 1.12-1.06.623 0 1.122.47 1.122 1.06 0 .59-.5 1.06-1.122 1.06-.618 0-1.12-.47-1.12-1.06z" fill="none" stroke="#000" stroke-width=".399"/> - <path d="M200.76 200.722c0-.585.503-1.058 1.122-1.058.622 0 1.125.473 1.125 1.058 0 .593-.503 1.065-1.125 1.065-.62 0-1.12-.472-1.12-1.065" fill="#fff"/> - <path d="M200.76 200.722c0-.585.503-1.058 1.122-1.058.622 0 1.125.473 1.125 1.058 0 .593-.503 1.065-1.125 1.065-.62 0-1.12-.472-1.12-1.065z" fill="none" stroke="#000" stroke-width=".399"/> - <path d="M199.736 197.574c0-.586.502-1.062 1.125-1.062.62 0 1.122.476 1.122 1.062 0 .588-.503 1.065-1.12 1.065-.624 0-1.126-.478-1.126-1.066" fill="#fff"/> - <path d="M199.736 197.574c0-.586.502-1.062 1.125-1.062.62 0 1.122.476 1.122 1.062 0 .588-.503 1.065-1.12 1.065-.624 0-1.126-.478-1.126-1.066z" fill="none" stroke="#000" stroke-width=".399"/> - <path d="M199.61 194.194c0-.588.502-1.06 1.12-1.06.622 0 1.125.472 1.125 1.06 0 .59-.503 1.062-1.124 1.062-.618 0-1.12-.472-1.12-1.062" fill="#fff"/> - <path d="M199.61 194.194c0-.588.502-1.06 1.12-1.06.622 0 1.125.472 1.125 1.06 0 .59-.503 1.062-1.124 1.062-.618 0-1.12-.472-1.12-1.062z" fill="none" stroke="#000" stroke-width=".399"/> - <path d="M200.442 190.868c0-.585.503-1.058 1.12-1.058.62 0 1.123.473 1.123 1.058 0 .592-.504 1.065-1.123 1.065-.617 0-1.12-.473-1.12-1.065" fill="#fff"/> - <path d="M200.442 190.868c0-.585.503-1.058 1.12-1.058.62 0 1.123.473 1.123 1.058 0 .592-.504 1.065-1.123 1.065-.617 0-1.12-.473-1.12-1.065z" fill="none" stroke="#000" stroke-width=".399"/> - <path d="M202.166 187.85c0-.59.503-1.062 1.126-1.062.617 0 1.12.473 1.12 1.062 0 .59-.503 1.066-1.12 1.066-.623 0-1.127-.476-1.127-1.066" fill="#fff"/> - <path d="M202.166 187.85c0-.59.503-1.062 1.126-1.062.617 0 1.12.473 1.12 1.062 0 .59-.503 1.066-1.12 1.066-.623 0-1.127-.476-1.127-1.066z" fill="none" stroke="#000" stroke-width=".399"/> - <path d="M204.47 185.37c0-.59.503-1.065 1.125-1.065.617 0 1.12.476 1.12 1.065 0 .585-.503 1.06-1.12 1.06-.622 0-1.124-.475-1.124-1.06" fill="#fff"/> - <path d="M204.47 185.37c0-.59.503-1.065 1.125-1.065.617 0 1.12.476 1.12 1.065 0 .585-.503 1.06-1.12 1.06-.622 0-1.124-.475-1.124-1.06z" fill="none" stroke="#000" stroke-width=".399"/> - <path d="M207.146 183.308c0-.59.503-1.066 1.125-1.066.62 0 1.123.476 1.123 1.066 0 .585-.504 1.06-1.122 1.06-.62 0-1.124-.475-1.124-1.06" fill="#fff"/> - <path d="M207.146 183.308c0-.59.503-1.066 1.125-1.066.62 0 1.123.476 1.123 1.066 0 .585-.504 1.06-1.122 1.06-.62 0-1.124-.475-1.124-1.06z" fill="none" stroke="#000" stroke-width=".399"/> - <path d="M210.344 181.62c0-.588.503-1.057 1.126-1.057.618 0 1.12.47 1.12 1.058 0 .59-.502 1.067-1.12 1.067-.623 0-1.126-.476-1.126-1.066" fill="#fff"/> - <path d="M210.344 181.62c0-.588.503-1.057 1.126-1.057.618 0 1.12.47 1.12 1.058 0 .59-.502 1.067-1.12 1.067-.623 0-1.126-.476-1.126-1.066z" fill="none" stroke="#000" stroke-width=".399"/> - <path d="M213.662 180.418c0-.586.503-1.062 1.12-1.062.623 0 1.126.476 1.126 1.062 0 .588-.503 1.064-1.125 1.064-.618 0-1.12-.476-1.12-1.064" fill="#fff"/> - <path d="M213.662 180.418c0-.586.503-1.062 1.12-1.062.623 0 1.126.476 1.126 1.062 0 .588-.503 1.064-1.125 1.064-.618 0-1.12-.476-1.12-1.064z" fill="none" stroke="#000" stroke-width=".399"/> - <path d="M217.375 179.755c0-.585.502-1.065 1.12-1.065.62 0 1.122.48 1.122 1.065 0 .586-.503 1.063-1.12 1.063-.62 0-1.122-.477-1.122-1.063" fill="#fff"/> - <path d="M217.375 179.755c0-.585.502-1.065 1.12-1.065.62 0 1.122.48 1.122 1.065 0 .586-.503 1.063-1.12 1.063-.62 0-1.122-.477-1.122-1.063z" fill="none" stroke="#000" stroke-width=".399"/> - <path d="M220.892 179.57c0-.586.502-1.058 1.125-1.058.617 0 1.12.472 1.12 1.058 0 .59-.503 1.066-1.12 1.066-.623 0-1.125-.477-1.125-1.066" fill="#fff"/> - <path d="M220.892 179.57c0-.586.502-1.058 1.125-1.058.617 0 1.12.472 1.12 1.058 0 .59-.503 1.066-1.12 1.066-.623 0-1.125-.477-1.125-1.066z" fill="none" stroke="#000" stroke-width=".399"/> - <path d="M224.346 179.69c0-.585.504-1.06 1.122-1.06.622 0 1.125.475 1.125 1.06 0 .59-.503 1.065-1.125 1.065-.618 0-1.122-.476-1.122-1.064" fill="#fff"/> - <path d="M224.346 179.69c0-.585.504-1.06 1.122-1.06.622 0 1.125.475 1.125 1.06 0 .59-.503 1.065-1.125 1.065-.618 0-1.122-.476-1.122-1.064z" fill="none" stroke="#000" stroke-width=".399"/> - <path d="M227.802 179.69c0-.585.503-1.06 1.122-1.06.62 0 1.125.475 1.125 1.06 0 .59-.505 1.065-1.126 1.065-.62 0-1.122-.476-1.122-1.064" fill="#fff"/> - <path d="M227.802 179.69c0-.585.503-1.06 1.122-1.06.62 0 1.125.475 1.125 1.06 0 .59-.505 1.065-1.126 1.065-.62 0-1.122-.476-1.122-1.064z" fill="none" stroke="#000" stroke-width=".399"/> - <path d="M226.075 182.654c0-.59.503-1.065 1.12-1.065.623 0 1.126.475 1.126 1.064 0 .586-.502 1.065-1.124 1.065-.618 0-1.12-.48-1.12-1.066m-.705 3.275c0-.59.5-1.066 1.122-1.066.617 0 1.12.478 1.12 1.067 0 .58-.503 1.057-1.12 1.057-.623 0-1.122-.476-1.122-1.057m-.13 3.26c0-.593.503-1.066 1.125-1.066.617 0 1.12.473 1.12 1.066 0 .585-.503 1.062-1.12 1.062-.622 0-1.125-.477-1.125-1.062m1.025 2.967c0-.586.503-1.065 1.12-1.065.623 0 1.126.48 1.126 1.065 0 .588-.503 1.062-1.125 1.062-.618 0-1.12-.474-1.12-1.062m1.906 2.728c0-.586.505-1.065 1.12-1.065.624 0 1.127.48 1.127 1.065s-.502 1.06-1.125 1.06c-.616 0-1.12-.475-1.12-1.06" fill="#fff" stroke="#000" stroke-width=".399"/> - <path d="M230.414 177.632c0-.585.503-1.06 1.12-1.06.622 0 1.125.475 1.125 1.06 0 .59-.504 1.065-1.125 1.065-.618 0-1.12-.476-1.12-1.065" fill="#fff"/> - <path d="M230.414 177.632c0-.585.503-1.06 1.12-1.06.622 0 1.125.475 1.125 1.06 0 .59-.504 1.065-1.125 1.065-.618 0-1.12-.476-1.12-1.065z" fill="none" stroke="#000" stroke-width=".399"/> - <path d="M233.486 175.938c0-.586.502-1.065 1.12-1.065.62 0 1.125.48 1.125 1.065s-.503 1.06-1.124 1.06c-.618 0-1.12-.475-1.12-1.06" fill="#fff"/> - <path d="M233.486 175.938c0-.586.502-1.065 1.12-1.065.62 0 1.125.48 1.125 1.065s-.503 1.06-1.124 1.06c-.618 0-1.12-.475-1.12-1.06z" fill="none" stroke="#000" stroke-width=".399"/> - <path d="M236.863 174.916c0-.586.505-1.058 1.125-1.058s1.12.472 1.12 1.058c0 .588-.5 1.066-1.12 1.066-.62 0-1.125-.478-1.125-1.066" fill="#fff"/> - <path d="M236.863 174.916c0-.586.505-1.058 1.125-1.058s1.12.472 1.12 1.058c0 .588-.5 1.066-1.12 1.066-.62 0-1.125-.478-1.125-1.066z" fill="none" stroke="#000" stroke-width=".399"/> - <path d="M240.383 174.312c0-.585.504-1.06 1.122-1.06.623 0 1.126.475 1.126 1.06 0 .585-.502 1.062-1.125 1.062-.618 0-1.122-.477-1.122-1.062" fill="#fff"/> - <path d="M240.383 174.312c0-.585.504-1.06 1.122-1.06.623 0 1.126.475 1.126 1.06 0 .585-.502 1.062-1.125 1.062-.618 0-1.122-.477-1.122-1.062z" fill="none" stroke="#000" stroke-width=".399"/> - <path d="M243.83 174.37c0-.585.497-1.065 1.12-1.065.618 0 1.12.48 1.12 1.065 0 .59-.502 1.063-1.12 1.063-.623 0-1.12-.473-1.12-1.063" fill="#fff"/> - <path d="M243.83 174.37c0-.585.497-1.065 1.12-1.065.618 0 1.12.48 1.12 1.065 0 .59-.502 1.063-1.12 1.063-.623 0-1.12-.473-1.12-1.063z" fill="none" stroke="#000" stroke-width=".399"/> - <path d="M247.41 174.974c0-.585.504-1.06 1.12-1.06.625 0 1.124.475 1.124 1.06 0 .592-.5 1.066-1.123 1.066-.616 0-1.12-.474-1.12-1.066" fill="#fff"/> - <path d="M247.41 174.974c0-.585.504-1.06 1.12-1.06.625 0 1.124.475 1.124 1.06 0 .592-.5 1.066-1.123 1.066-.616 0-1.12-.474-1.12-1.066z" fill="none" stroke="#000" stroke-width=".399"/> - <path d="M250.725 176.12c0-.59.5-1.066 1.124-1.066.617 0 1.12.476 1.12 1.066 0 .585-.503 1.065-1.12 1.065-.624 0-1.125-.48-1.125-1.065" fill="#fff"/> - <path d="M250.725 176.12c0-.59.5-1.066 1.124-1.066.617 0 1.12.476 1.12 1.066 0 .585-.503 1.065-1.12 1.065-.624 0-1.125-.48-1.125-1.065z" fill="none" stroke="#000" stroke-width=".399"/> - <path d="M222.264 244.134h-.947v-.946h-1.656v3.785h1.657v2.602h-3.55v7.573h1.894v15.143h-3.785v7.81h29.104v-7.81h-3.787V257.15h1.893v-7.573h-3.55v-2.602h1.657v-3.785h-1.657v.946h-.946v-.946h-1.657v.946h-1.182v-.946h-1.656v3.785h1.657v2.602h-3.55v-8.28h1.894v-3.786H232.2v.945h-.945v-.946h-1.657v.945h-.946v-.946h-1.893v3.784h1.892v8.28h-3.55v-2.6h1.657v-3.786h-1.657v.946h-.947v-.946h-1.892v.946zm-6.39 35.966h29.105m-29.105-1.894h29.104m-29.105-1.893h29.104m-29.105-1.892h29.104m-29.105-2.13h29.104m-25.32-1.655h21.533m-21.532-1.893h21.533m-21.532-2.13h21.533m-21.532-1.893h21.533m-21.532-1.894h21.533m-21.532-1.892h21.533m-21.532-1.894h21.533m-23.425-1.892h25.318m-25.318-1.893h25.318m-25.318-1.893h25.318m-25.318-1.893h25.318m-21.77-1.895h18.22m-10.884-1.892h3.55m-3.55-1.893h3.55m-3.55-1.893h3.55m-3.55-1.893h3.55m-5.443-2.365h7.334m-12.777 8.043h3.786m-5.442-2.366h7.1m-7.1 34.783v-1.894m0-1.893v-1.892m-1.892 1.893v1.893m3.55 0v-1.893m1.892 3.787v-1.894m0-1.893v-1.892m0-2.13v-1.655m0-1.893v-2.13m-1.893 7.81v-2.13m-3.55 2.13v-2.13m7.336 0v2.13m1.656-2.13v-1.657m-5.443-1.893v1.893m3.786-1.893v1.893m3.55-1.893v1.893m-1.894-1.893v-2.13m1.892-1.893v1.893m0-5.68v1.893m-1.893-3.786v1.894m1.892-3.786v1.892m-3.55-1.892v1.892m-3.785-1.892v1.892m-1.656-3.785v1.893m3.55-1.893v1.893m3.55-1.893v1.893m1.892-3.786v1.893m-3.55-1.893v1.893m-3.785-1.893v1.893m-1.656-3.786v1.892m7.1-1.893v1.892m-3.55-5.68v1.893m16.326-1.892h-3.785m5.443-2.366h-7.1m7.1 34.783v-1.894m0-1.893v-1.892m1.893 1.893v1.893m-3.55 0v-1.893m-1.893 3.787v-1.894m0-1.893v-1.892m0-2.13v-1.655m0-1.893v-2.13m1.893 7.81v-2.13m3.55 2.13v-2.13m-7.335 0v2.13m-1.656-2.13v-1.657m5.442-1.893v1.893m-3.785-1.893v1.893m-3.55-1.893v1.893m1.894-1.893v-2.13m-1.893-1.893v1.893m0-5.68v1.893m1.894-3.786v1.894m-1.893-3.786v1.892m3.55-1.892v1.892m3.786-1.892v1.892m1.657-3.785v1.893m-3.55-1.893v1.893m-3.55-1.893v1.893m-1.892-3.786v1.893m3.55-1.893v1.893m3.786-1.893v1.893m1.657-3.786v1.892m-7.1-1.893v1.892m3.55-5.68v1.893m-7.335 19.167v-2.13m0-5.678v-1.894m0 5.68v-1.894m0-5.678v-1.893m0-1.893v-1.893m0-3.787v-1.893m0-1.893v-1.893m-8.99 4.97h3.785m3.55-5.68h3.548m3.55 5.68h3.786" fill="#c8b100" stroke="#000" stroke-width=".471"/> - <path d="M235.278 280.1v-4.97c0-.946-.474-3.785-4.97-3.785-4.26 0-4.732 2.84-4.732 3.785v4.97h9.702z" fill="#c8b100" stroke="#000" stroke-width=".471"/> - <path d="M227.232 275.367l-2.365-.237c0-.946.236-2.366.946-2.84l2.13 1.658c-.237.236-.71.946-.71 1.42zm6.388 0l2.367-.237c0-.946-.236-2.366-.946-2.84l-2.13 1.658c.238.236.71.946.71 1.42zM231.255 273l1.183-2.128c-.473-.237-1.42-.474-2.13-.474-.473 0-1.42.237-1.892.474l1.182 2.128h1.657zm-4.495-5.914v-5.206c0-1.42-.947-2.603-2.604-2.603-1.656 0-2.602 1.184-2.602 2.603v5.206h5.205zm7.334 0v-5.206c0-1.42.947-2.603 2.603-2.603 1.657 0 2.603 1.184 2.603 2.603v5.206h-5.206zm-1.894-12.778l.475-4.733h-4.496l.236 4.733h3.785zm3.55 0l-.472-4.733h4.73l-.472 4.733h-3.785zm-10.647 0l.237-4.733h-4.497l.474 4.733h3.786z" fill="#c8b100" stroke="#000" stroke-width=".471"/> - <path d="M233.62 280.1v-4.26c0-.71-.472-2.84-3.312-2.84-2.602 0-3.076 2.13-3.076 2.84v4.26h6.39zm-7.334-13.487v-4.497c0-1.182-.71-2.366-2.13-2.366s-2.13 1.184-2.13 2.366v4.497h4.26zm8.282 0v-4.497c0-1.182.71-2.366 2.13-2.366s2.13 1.184 2.13 2.366v4.497h-4.26z" fill="#0039f0"/> - <path d="M239.502 287.75c0-10.344 7.452-18.73 16.644-18.73 9.195 0 16.648 8.386 16.648 18.73 0 10.345-7.453 18.73-16.648 18.73-9.192 0-16.644-8.385-16.644-18.73" fill="#ad1519"/> - <path d="M239.502 287.75c0-10.344 7.452-18.73 16.644-18.73 9.195 0 16.648 8.386 16.648 18.73 0 10.345-7.453 18.73-16.648 18.73-9.192 0-16.644-8.385-16.644-18.73z" fill="none" stroke="#000" stroke-width=".625"/> - <path d="M244.44 287.714c0-7.585 5.24-13.734 11.713-13.734 6.47 0 11.71 6.15 11.71 13.734 0 7.588-5.24 13.74-11.71 13.74-6.473 0-11.714-6.152-11.714-13.74" fill="#005bbf"/> - <path d="M244.44 287.714c0-7.585 5.24-13.734 11.713-13.734 6.47 0 11.71 6.15 11.71 13.734 0 7.588-5.24 13.74-11.71 13.74-6.473 0-11.714-6.152-11.714-13.74z" fill="none" stroke="#000" stroke-width=".625"/> - <path d="M250.62 278.26s-1.39 1.522-1.39 2.933c0 1.42.587 2.596.587 2.596-.21-.56-.778-.963-1.447-.963-.843 0-1.53.647-1.53 1.45 0 .233.14.597.248.796l.5 1.008c.164-.37.553-.578 1.006-.578.605 0 1.097.462 1.097 1.038 0 .086-.01.174-.032.253l-1.25.004v1.062h1.114l-.828 1.642 1.098-.428.828.934.86-.934 1.095.428-.825-1.643h1.113v-1.063l-1.252-.004a.936.936 0 0 1-.025-.253c0-.576.483-1.038 1.09-1.038.452 0 .84.207 1.01.58l.493-1.01c.11-.198.25-.562.25-.794 0-.804-.683-1.45-1.53-1.45-.67 0-1.233.402-1.444.96 0 0 .583-1.176.583-2.595 0-1.41-1.42-2.934-1.42-2.934" fill="#c8b100"/> - <path d="M250.62 278.26s-1.39 1.522-1.39 2.933c0 1.42.587 2.596.587 2.596-.21-.56-.778-.963-1.447-.963-.843 0-1.53.647-1.53 1.45 0 .233.14.597.248.796l.5 1.008c.164-.37.553-.578 1.006-.578.605 0 1.097.462 1.097 1.038 0 .086-.01.174-.032.253l-1.25.004v1.062h1.114l-.828 1.642 1.098-.428.828.934.86-.934 1.095.428-.825-1.643h1.113v-1.063l-1.252-.004a.936.936 0 0 1-.025-.253c0-.576.483-1.038 1.09-1.038.452 0 .84.207 1.01.58l.493-1.01c.11-.198.25-.562.25-.794 0-.804-.683-1.45-1.53-1.45-.67 0-1.233.402-1.444.96 0 0 .583-1.176.583-2.595 0-1.41-1.42-2.934-1.42-2.934h.003z" fill="none" stroke="#000" stroke-width=".348" stroke-linejoin="round"/> - <path d="M248.41 287.86h4.456v-1.063h-4.457v1.062z" fill="#c8b100"/> - <path d="M248.41 287.86h4.456v-1.063h-4.457v1.062z" fill="none" stroke="#000" stroke-width=".348"/> - <path d="M261.505 278.26s-1.39 1.522-1.39 2.933c0 1.42.584 2.596.584 2.596-.208-.56-.776-.963-1.444-.963-.85 0-1.532.647-1.532 1.45 0 .233.142.597.25.796l.494 1.008c.17-.37.558-.578 1.01-.578.607 0 1.094.462 1.094 1.038a.93.93 0 0 1-.03.253l-1.25.004v1.062h1.116l-.83 1.642 1.095-.428.832.934.857-.934 1.098.428-.83-1.643h1.114v-1.063l-1.247-.004a.895.895 0 0 1-.03-.253c0-.576.486-1.038 1.093-1.038.453 0 .84.207 1.006.58l.5-1.01c.107-.198.248-.562.248-.794 0-.804-.687-1.45-1.532-1.45-.667 0-1.237.402-1.446.96 0 0 .587-1.176.587-2.595 0-1.41-1.42-2.934-1.42-2.934" fill="#c8b100"/> - <path d="M261.505 278.26s-1.39 1.522-1.39 2.933c0 1.42.584 2.596.584 2.596-.208-.56-.776-.963-1.444-.963-.85 0-1.532.647-1.532 1.45 0 .233.142.597.25.796l.494 1.008c.17-.37.558-.578 1.01-.578.607 0 1.094.462 1.094 1.038a.93.93 0 0 1-.03.253l-1.25.004v1.062h1.116l-.83 1.642 1.095-.428.832.934.857-.934 1.098.428-.83-1.643h1.114v-1.063l-1.247-.004a.895.895 0 0 1-.03-.253c0-.576.486-1.038 1.093-1.038.453 0 .84.207 1.006.58l.5-1.01c.107-.198.248-.562.248-.794 0-.804-.687-1.45-1.532-1.45-.667 0-1.237.402-1.446.96 0 0 .587-1.176.587-2.595 0-1.41-1.42-2.934-1.42-2.934h.002z" fill="none" stroke="#000" stroke-width=".348" stroke-linejoin="round"/> - <path d="M259.293 287.86h4.455v-1.063h-4.455v1.062z" fill="#c8b100"/> - <path d="M259.293 287.86h4.455v-1.063h-4.455v1.062z" fill="none" stroke="#000" stroke-width=".348"/> - <path d="M256.062 287.622s-1.39 1.524-1.39 2.94c0 1.413.587 2.59.587 2.59-.212-.56-.777-.963-1.448-.963-.845 0-1.533.647-1.533 1.45 0 .237.14.596.25.796l.498 1.007c.17-.37.553-.58 1.005-.58.607 0 1.1.464 1.1 1.04a.92.92 0 0 1-.036.257l-1.247.003v1.062h1.117l-.83 1.644 1.095-.433.83.933.86-.933 1.098.432-.834-1.645h1.117v-1.062l-1.248-.003a.96.96 0 0 1-.03-.258c0-.575.488-1.04 1.095-1.04.452 0 .836.21 1.006.58l.5-1.006c.105-.2.248-.56.248-.796 0-.803-.687-1.45-1.532-1.45a1.54 1.54 0 0 0-1.448.963s.588-1.178.588-2.592c0-1.414-1.424-2.938-1.424-2.938" fill="#c8b100"/> - <path d="M256.062 287.622s-1.39 1.524-1.39 2.94c0 1.413.587 2.59.587 2.59-.212-.56-.777-.963-1.448-.963-.845 0-1.533.647-1.533 1.45 0 .237.14.596.25.796l.498 1.007c.17-.37.553-.58 1.005-.58.607 0 1.1.464 1.1 1.04a.92.92 0 0 1-.036.257l-1.247.003v1.062h1.117l-.83 1.644 1.095-.433.83.933.86-.933 1.098.432-.834-1.645h1.117v-1.062l-1.248-.003a.96.96 0 0 1-.03-.258c0-.575.488-1.04 1.095-1.04.452 0 .836.21 1.006.58l.5-1.006c.105-.2.248-.56.248-.796 0-.803-.687-1.45-1.532-1.45a1.54 1.54 0 0 0-1.448.963s.588-1.178.588-2.592c0-1.414-1.424-2.938-1.424-2.938h.004z" fill="none" stroke="#000" stroke-width=".348" stroke-linejoin="round"/> - <path d="M253.85 297.225h4.457v-1.062h-4.457v1.062z" fill="#c8b100"/> - <path d="M253.85 297.225h4.457v-1.062h-4.457v1.062z" fill="none" stroke="#000" stroke-width=".348"/> - <path d="M289.378 238.29l-.296.022a1.58 1.58 0 0 1-.273.365c-.263.25-.658.28-.88.07a.504.504 0 0 1-.143-.42.533.533 0 0 1-.523-.007c-.264-.153-.33-.516-.137-.818.03-.06.06-.135.107-.18l-.02-.33-.356.085-.104.195c-.222.252-.553.317-.718.168a.592.592 0 0 1-.134-.27c.003.01-.085.088-.177.11-.548.134-.767-1.073-.78-1.385l-.18.255s.162.722.08 1.334a6.93 6.93 0 0 1-.296 1.222c.764.195 1.91.817 3.045 1.693 1.136.87 2.03 1.814 2.4 2.476 0 0 .588-.328 1.205-.524.612-.2 1.39-.204 1.39-.204l.222-.218c-.327.048-1.62.103-1.593-.44.004-.086.068-.18.08-.18a.72.72 0 0 1-.308-.07c-.187-.124-.183-.44.025-.702l.18-.13.01-.35-.345.048c-.032.043-.11.094-.157.138-.272.236-.664.254-.88.032a.45.45 0 0 1-.114-.477.584.584 0 0 1-.46-.048c-.265-.16-.315-.534-.11-.825a1.57 1.57 0 0 1 .315-.327l-.07-.306" fill="#c8b100"/> - <path d="M289.378 238.29l-.296.022a1.58 1.58 0 0 1-.273.365c-.263.25-.658.28-.88.07a.504.504 0 0 1-.143-.42.533.533 0 0 1-.523-.007c-.264-.153-.33-.516-.137-.818.03-.06.06-.135.107-.18l-.02-.33-.356.085-.104.195c-.222.252-.553.317-.718.168a.592.592 0 0 1-.134-.27c.003.01-.085.088-.177.11-.548.134-.767-1.073-.78-1.385l-.18.255s.162.722.08 1.334a6.93 6.93 0 0 1-.296 1.222c.764.195 1.91.817 3.045 1.693 1.136.87 2.03 1.814 2.4 2.476 0 0 .588-.328 1.205-.524.612-.2 1.39-.204 1.39-.204l.222-.218c-.327.048-1.62.103-1.593-.44.004-.086.068-.18.08-.18a.72.72 0 0 1-.308-.07c-.187-.124-.183-.44.025-.702l.18-.13.01-.35-.345.048c-.032.043-.11.094-.157.138-.272.236-.664.254-.88.032a.45.45 0 0 1-.114-.477.584.584 0 0 1-.46-.048c-.265-.16-.315-.534-.11-.825a1.57 1.57 0 0 1 .315-.327l-.07-.306-.007-.003z" fill="none" stroke="#000" stroke-width=".266"/> - <path d="M287.073 238.996c.05-.062.157-.06.238.003.08.06.104.16.054.218-.05.058-.153.058-.237-.007-.077-.057-.104-.156-.055-.213"/> - <path d="M287.073 238.996c.05-.062.157-.06.238.003.08.06.104.16.054.218-.05.058-.153.058-.237-.007-.077-.057-.104-.156-.055-.213z" fill="none" stroke="#000" stroke-width=".051"/> - <path d="M288.044 239.814l-.335-.258c-.06-.048-.08-.123-.042-.167.038-.04.12-.04.18.002l.334.262.342.26c.058.042.08.12.042.166-.042.04-.122.036-.184-.007l-.338-.26"/> - <path d="M288.044 239.814l-.335-.258c-.06-.048-.08-.123-.042-.167.038-.04.12-.04.18.002l.334.262.342.26c.058.042.08.12.042.166-.042.04-.122.036-.184-.007l-.338-.26" fill="none" stroke="#000" stroke-width=".051"/> - <path d="M286.26 238.592l-.266-.156c-.065-.04-.1-.116-.068-.167.026-.056.106-.063.172-.023l.263.157.27.156c.067.036.097.113.07.167-.03.047-.107.058-.175.02l-.265-.155"/> - <path d="M286.26 238.592l-.266-.156c-.065-.04-.1-.116-.068-.167.026-.056.106-.063.172-.023l.263.157.27.156c.067.036.097.113.07.167-.03.047-.107.058-.175.02l-.265-.155" fill="none" stroke="#000" stroke-width=".051"/> - <path d="M285.203 237.862c.05-.054.158-.054.238.007.082.06.105.16.056.217-.052.058-.158.054-.24-.003-.08-.067-.103-.16-.053-.222"/> - <path d="M285.203 237.862c.05-.054.158-.054.238.007.082.06.105.16.056.217-.052.058-.158.054-.24-.003-.08-.067-.103-.16-.053-.222z" fill="none" stroke="#000" stroke-width=".051"/> - <path d="M289.12 240.563c.05-.058.025-.152-.054-.218-.08-.062-.188-.065-.238-.003-.05.058-.027.156.053.217.08.062.188.062.24.003"/> - <path d="M289.12 240.563c.05-.058.025-.152-.054-.218-.08-.062-.188-.065-.238-.003-.05.058-.027.156.053.217.08.062.188.062.24.003z" fill="none" stroke="#000" stroke-width=".051"/> - <path d="M289.707 241.236l.218.21c.055.05.14.07.186.03.047-.036.04-.11-.012-.16l-.215-.214-.223-.22c-.053-.05-.137-.064-.184-.024-.05.032-.042.113.015.163l.217.216"/> - <path d="M289.707 241.236l.218.21c.055.05.14.07.186.03.047-.036.04-.11-.012-.16l-.215-.214-.223-.22c-.053-.05-.137-.064-.184-.024-.05.032-.042.113.015.163l.217.216" fill="none" stroke="#000" stroke-width=".051"/> - <path d="M290.677 242.064c.05-.06.028-.155-.052-.22-.08-.063-.19-.066-.24-.004-.05.062-.026.156.055.22.08.06.19.064.237.004"/> - <path d="M290.677 242.064c.05-.06.028-.155-.052-.22-.08-.063-.19-.066-.24-.004-.05.062-.026.156.055.22.08.06.19.064.237.004z" fill="none" stroke="#000" stroke-width=".051"/> - <path d="M287.862 235.884l-.605.018-.118.89.064.142.157-.01.776-.522-.274-.52" fill="#c8b100"/> - <path d="M287.862 235.884l-.605.018-.118.89.064.142.157-.01.776-.522-.274-.52" fill="none" stroke="#000" stroke-width=".266"/> - <path d="M286.222 236.378l-.018.556.942.117.147-.062-.013-.152-.548-.73-.51.272" fill="#c8b100"/> - <path d="M286.222 236.378l-.018.556.942.117.147-.062-.013-.152-.548-.73-.51.272" fill="none" stroke="#000" stroke-width=".266"/> - <path d="M288.167 237.487l-.503.28-.55-.734-.01-.15.146-.062.945.114-.028.553" fill="#c8b100"/> - <path d="M288.167 237.487l-.503.28-.55-.734-.01-.15.146-.062.945.114-.028.553" fill="none" stroke="#000" stroke-width=".266"/> - <path d="M286.95 236.8a.298.298 0 0 1 .402-.095.268.268 0 0 1 .1.38.306.306 0 0 1-.402.097.272.272 0 0 1-.1-.382" fill="#c8b100"/> - <path d="M286.95 236.8a.298.298 0 0 1 .402-.095.268.268 0 0 1 .1.38.306.306 0 0 1-.402.097.272.272 0 0 1-.1-.382z" fill="none" stroke="#000" stroke-width=".266"/> - <path d="M284.747 235.88c-.015.003-.132-.47-.262-.73-.088-.19-.4-.437-.4-.437.03-.058.423-.2.89.094.38.314-.03.888-.03.888s-.1.138-.195.185" fill="#c8b100"/> - <path d="M284.747 235.88c-.015.003-.132-.47-.262-.73-.088-.19-.4-.437-.4-.437.03-.058.423-.2.89.094.38.314-.03.888-.03.888s-.1.138-.195.185h-.003z" fill="none" stroke="#000" stroke-width=".266"/> - <path d="M285.805 236.2l-.43.37-.7-.607.063-.087.024-.15.947-.07.095.544" fill="#c8b100"/> - <path d="M285.805 236.2l-.43.37-.7-.607.063-.087.024-.15.947-.07.095.544" fill="none" stroke="#000" stroke-width=".266"/> - <path d="M284.62 235.82c.053-.152.187-.242.295-.21.106.04.15.19.1.34-.054.152-.188.24-.296.21-.112-.04-.154-.19-.1-.34" fill="#c8b100"/> - <path d="M284.62 235.82c.053-.152.187-.242.295-.21.106.04.15.19.1.34-.054.152-.188.24-.296.21-.112-.04-.154-.19-.1-.34z" fill="none" stroke="#000" stroke-width=".266"/> - <path d="M290.182 237.335l-.603-.066-.254.868.047.15.158.003.845-.41-.193-.546" fill="#c8b100"/> - <path d="M290.182 237.335l-.603-.066-.254.868.047.15.158.003.845-.41-.193-.546" fill="none" stroke="#000" stroke-width=".266"/> - <path d="M288.482 237.603l-.096.55.914.24.153-.045.012-.148-.435-.804-.548.207" fill="#c8b100"/> - <path d="M288.482 237.603l-.096.55.914.24.153-.045.012-.148-.435-.804-.548.207" fill="none" stroke="#000" stroke-width=".266"/> - <path d="M290.248 238.956l-.54.215-.435-.8.01-.153.155-.04.913.24-.102.54" fill="#c8b100"/> - <path d="M290.248 238.956l-.54.215-.435-.8.01-.153.155-.04.913.24-.102.54" fill="none" stroke="#000" stroke-width=".266"/> - <path d="M289.142 238.12c.1-.124.29-.134.412-.04a.267.267 0 0 1 .046.39.31.31 0 0 1-.416.038.266.266 0 0 1-.042-.388" fill="#c8b100"/> - <path d="M289.142 238.12c.1-.124.29-.134.412-.04a.267.267 0 0 1 .046.39.31.31 0 0 1-.416.038.266.266 0 0 1-.042-.388z" fill="none" stroke="#000" stroke-width=".266"/> - <path d="M292.207 239.215l.11.57-.895.298-.157-.032-.02-.148.374-.827.587.14" fill="#c8b100"/> - <path d="M292.207 239.215l.11.57-.895.298-.157-.032-.02-.148.374-.827.587.14" fill="none" stroke="#000" stroke-width=".266"/> - <path d="M292.045 240.847l-.57.127-.318-.85.036-.147.158-.02.872.355-.177.535" fill="#c8b100"/> - <path d="M292.045 240.847l-.57.127-.318-.85.036-.147.158-.02.872.355-.177.535" fill="none" stroke="#000" stroke-width=".266"/> - <path d="M290.494 239.268l-.185.528.872.352.16-.02.03-.147-.31-.845-.568.133" fill="#c8b100"/> - <path d="M290.494 239.268l-.185.528.872.352.16-.02.03-.147-.31-.845-.568.133" fill="none" stroke="#000" stroke-width=".266"/> - <path d="M291.458 240.258a.277.277 0 0 0 .016-.397.318.318 0 0 0-.42-.014.274.274 0 0 0-.01.398.308.308 0 0 0 .414.014" fill="#c8b100"/> - <path d="M291.458 240.258a.277.277 0 0 0 .016-.397.318.318 0 0 0-.42-.014.274.274 0 0 0-.01.398.308.308 0 0 0 .414.014z" fill="none" stroke="#000" stroke-width=".266"/> - <path d="M292.866 242.104c-.003.016.51.027.807.09.21.045.538.282.538.282.058-.043.117-.433-.287-.807-.403-.29-.907.217-.907.217s-.122.12-.15.217" fill="#c8b100"/> - <path d="M292.866 242.104c-.003.016.51.027.807.09.21.045.538.282.538.282.058-.043.117-.433-.287-.807-.403-.29-.907.217-.907.217s-.122.12-.15.217z" fill="none" stroke="#000" stroke-width=".266"/> - <path d="M292.313 241.188l-.295.477.776.523.095-.084.126-.043-.12-.894-.583.022" fill="#c8b100"/> - <path d="M292.313 241.188l-.295.477.776.523.095-.084.126-.043-.12-.894-.583.022" fill="none" stroke="#000" stroke-width=".266"/> - <path d="M292.95 242.21c.143-.08.212-.224.155-.316-.063-.095-.226-.106-.37-.025-.14.082-.21.22-.148.318.056.09.222.103.364.022" fill="#c8b100"/> - <path d="M292.95 242.21c.143-.08.212-.224.155-.316-.063-.095-.226-.106-.37-.025-.14.082-.21.22-.148.318.056.09.222.103.364.022z" fill="none" stroke="#000" stroke-width=".266"/> - <path d="M333.666 218.77v.594h-2.596v-.593h.96v-1.337h-.634v-.596h.634v-.585h.626v.585h.625v.596h-.624v1.338h1.01" fill="none" stroke="#000" stroke-width=".307"/> - <path d="M179.352 231.578v-1.298" fill="none" stroke="#000" stroke-width=".02"/> - <path d="M179 231.578v-1.298" fill="none" stroke="#000" stroke-width=".031"/> - <path d="M178.667 231.578v-1.298m-.331 1.298v-1.298" fill="none" stroke="#000" stroke-width=".041"/> - <path d="M178.042 231.578v-1.298" fill="none" stroke="#000" stroke-width=".051"/> - <path d="M177.482 231.508l-.01-1.182m.274 1.197v-1.236" fill="none" stroke="#000" stroke-width=".061"/> - <path d="M176.964 231.455v-1.09m.262 1.12l-.007-1.158" fill="none" stroke="#000" stroke-width=".072"/> - <path d="M176.27 231.392v-.956m.228.972v-1.003m.234 1.034v-1.043" fill="none" stroke="#000" stroke-width=".082"/> - <path d="M176.026 231.385v-.926" fill="none" stroke="#000" stroke-width=".092"/> - <path d="M175.8 231.338v-.863" fill="none" stroke="#000" stroke-width=".102"/> - <path d="M175.556 231.314v-.8" fill="none" stroke="#000" stroke-width=".113"/> - <path d="M175.058 231.245l-.01-.638m.264.67v-.716m-.51.629v-.56" fill="none" stroke="#000" stroke-width=".123"/> - <path d="M174.57 231.144v-.465" fill="none" stroke="#000" stroke-width=".133"/> - <path d="M174.313 231.083v-.366" fill="none" stroke="#000" stroke-width=".143"/> - <path d="M174.05 231.052v-.272" fill="none" stroke="#000" stroke-width=".154"/> - <path d="M173.773 230.99v-.132" fill="none" stroke="#000" stroke-width=".184"/> - <path d="M180.755 231.508v-1.19m-.598 1.23l.01-1.26m-.445 1.274v-1.282" fill="none" stroke="#000" stroke-width=".01"/> - <path d="M332.27 231.6v-1.298" fill="none" stroke="#000" stroke-width=".02"/> - <path d="M331.917 231.6v-1.298" fill="none" stroke="#000" stroke-width=".031"/> - <path d="M331.584 231.6v-1.298m-.33 1.298v-1.298" fill="none" stroke="#000" stroke-width=".041"/> - <path d="M330.96 231.6v-1.298" fill="none" stroke="#000" stroke-width=".051"/> - <path d="M330.4 231.53l-.01-1.182m.274 1.197v-1.235" fill="none" stroke="#000" stroke-width=".061"/> - <path d="M329.88 231.476v-1.088m.264 1.12l-.01-1.16" fill="none" stroke="#000" stroke-width=".072"/> - <path d="M329.187 231.415v-.957m.228.972v-1.003m.234 1.034v-1.04" fill="none" stroke="#000" stroke-width=".082"/> - <path d="M328.944 231.407v-.925" fill="none" stroke="#000" stroke-width=".092"/> - <path d="M328.717 231.36v-.863" fill="none" stroke="#000" stroke-width=".102"/> - <path d="M328.473 231.337v-.8" fill="none" stroke="#000" stroke-width=".113"/> - <path d="M327.975 231.266l-.01-.637m.264.668v-.716m-.509.631v-.56" fill="none" stroke="#000" stroke-width=".123"/> - <path d="M327.486 231.167v-.466" fill="none" stroke="#000" stroke-width=".133"/> - <path d="M327.23 231.105v-.365" fill="none" stroke="#000" stroke-width=".143"/> - <path d="M326.968 231.074v-.273" fill="none" stroke="#000" stroke-width=".154"/> - <path d="M326.69 231.01v-.13" fill="none" stroke="#000" stroke-width=".184"/> - <path d="M333.672 231.53v-1.19m-.597 1.228l.007-1.258m-.443 1.274v-1.282" fill="none" stroke="#000" stroke-width=".01"/> -</svg> diff --git a/img/flags/1x1/et.svg b/img/flags/1x1/et.svg deleted file mode 100644 index 7b07563..0000000 --- a/img/flags/1x1/et.svg +++ /dev/null @@ -1,14 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" height="512" width="512" viewBox="0 0 512 512"> - <defs> - <clipPath id="a"> - <path fill-opacity=".67" d="M229.34 6.346H718.6v489.26H229.34z"/> - </clipPath> - </defs> - <g fill-rule="evenodd" clip-path="url(#a)" transform="translate(-240 -6.64) scale(1.046)" stroke-width="1pt"> - <path fill="#ffc621" d="M1.923 9.69h991.84v475.89H1.923z"/> - <path fill="#ef2118" d="M0 333.64h993.18v161.97H0z"/> - <path fill="#298c08" d="M1.923 6.346h991.93v172H1.923z"/> - <ellipse cx="534.22" rx="199.65" cy="352.97" transform="matrix(.515 0 0 .515 204.68 77.013)" ry="199.65" fill="#006bc6"/> - <path d="M434.08 186.19l-6.148 4.322 22.45 31.555 5.99-3.82-22.293-32.056zm28.103 74.482l-9.232-6.437 3.816-12.113-45.985.642-13.31-10.19 62.775-.677 11.642-35.27 6.253 14.26-15.957 49.785zm73.126-67.54l-5.978-4.553-23.295 30.935 5.45 4.554 23.822-30.938zm-62.507 49.296l3.347-10.745 12.7-.023-14.508-43.642 5.693-15.768 19.613 59.636 37.138.44-11.704 10.27-52.278-.167zm86.646 48.894l2.497-7.086-36.594-12.673-2.66 6.585 36.756 13.174zm-66.11-44.355l11.255-.113 3.922 12.08 37.08-27.206 16.754.577-50.733 36.974 10.983 35.48-13.368-7.987-15.89-49.806zm-18.87 97.55l7.51.11.348-38.726-7.09-.422-.77 39.038zm20.968-76.795l3.695 10.63-10.2 7.568 37.606 26.475 4.793 16.063-51.218-36.302-30.128 21.72 3.31-15.217 42.14-30.938zm-98.682 12.41l2.22 7.177 36.93-11.663-1.792-6.872-37.358 11.356zm79.514-3.842l-8.964 6.805-10.353-7.354-13.528 43.955-13.79 9.532 18.658-59.94-29.982-21.922 15.494-1.566 42.466 30.49z" fill="#ffc621"/> - </g> -</svg> diff --git a/img/flags/1x1/eu.svg b/img/flags/1x1/eu.svg deleted file mode 100644 index c7ebfd4..0000000 --- a/img/flags/1x1/eu.svg +++ /dev/null @@ -1,28 +0,0 @@ -<svg xmlns:xlink="http://www.w3.org/1999/xlink" xmlns="http://www.w3.org/2000/svg" height="512" width="512" viewBox="0 0 512 512"> - <defs> - <g id="d"> - <g id="b"> - <path d="M0-1l-.31.95.477.156z" id="a"/> - <use transform="scale(-1 1)" xlink:href="#a"/> - </g> - <g id="c"> - <use transform="rotate(72)" xlink:href="#b"/> - <use transform="rotate(144)" xlink:href="#b"/> - </g> - <use transform="scale(-1 1)" xlink:href="#c"/> - </g> - </defs> - <path fill="#039" d="M0 0h512v512H0z"/> - <g transform="translate(256 258.414) scale(25.28395)" fill="#fc0"> - <use height="100%" width="100%" xlink:href="#d" y="-6"/> - <use height="100%" width="100%" xlink:href="#d" y="6"/> - <g id="e"> - <use height="100%" width="100%" xlink:href="#d" x="-6"/> - <use height="100%" width="100%" xlink:href="#d" transform="rotate(-144 -2.344 -2.11)"/> - <use height="100%" width="100%" xlink:href="#d" transform="rotate(144 -2.11 -2.344)"/> - <use height="100%" width="100%" xlink:href="#d" transform="rotate(72 -4.663 -2.076)"/> - <use height="100%" width="100%" xlink:href="#d" transform="rotate(72 -5.076 .534)"/> - </g> - <use height="100%" width="100%" xlink:href="#e" transform="scale(-1 1)"/> - </g> -</svg> diff --git a/img/flags/1x1/fi.svg b/img/flags/1x1/fi.svg deleted file mode 100644 index 736a548..0000000 --- a/img/flags/1x1/fi.svg +++ /dev/null @@ -1,5 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" height="512" width="512" viewBox="0 0 512 512"> - <path fill="#fff" d="M0 0h512v512H0z"/> - <path fill="#003580" d="M0 186.182h512v139.636H0z"/> - <path fill="#003580" d="M123.152 0h139.636v512H123.152z"/> -</svg> diff --git a/img/flags/1x1/fj.svg b/img/flags/1x1/fj.svg deleted file mode 100644 index 04486bd..0000000 --- a/img/flags/1x1/fj.svg +++ /dev/null @@ -1,126 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" height="512" width="512" viewBox="0 0 512 512"> - <path d="M0 0v512.078h511.99v-85.197h.012V.084H321.955V0H0z" fill="#68bfe5"/> - <g stroke-miterlimit="4.8"> - <path d="M310.243 254.06v136.357c0 44.599 80.581 71.08 80.581 71.08s80.582-26.483 80.582-71.08V254.06z" fill="#fff"/> - <path d="M379.655 301.97v61.396h-69.412v22.34h69.412v71.538l11.17 4.253 11.17-4.253v-71.539h69.41v-22.339h-69.41V301.97z" fill="#d21034"/> - <path d="M310.243 254.06h161.163v52.657H310.243z" fill="#d21034"/> - <g stroke-miterlimit="3"> - <g fill="#fff" stroke="#000" stroke-width=".805" transform="translate(-207.55 158.36) scale(.66486)"> - <ellipse ry="10.962" rx="13.623" cy="192.212" cx="798.23" stroke-width=".803"/> - <ellipse ry="6.123" rx="12.114" cy="186.525" cx="798.23"/> - <ellipse ry="6.123" rx="12.114" cy="198.769" cx="798.23"/> - <ellipse ry="6.123" rx="12.114" cy="192.213" cx="798.23"/> - </g> - <path d="M467.416 296.272l-1.32-3.64s-3.612-1.474-3.887-3.393c-.643-5.115-2.47-7.033-5.206-7.764-2.742-.73-4.566.458-4.566.458-.825 1.188-4.937 1.188-7.22 1.277-2.283.094-2.322-.991-2.322-.991-1.774.012-2.52-1.291-2.52-1.291-1.16-2.319-2.025-3.186-2.598-3.48 2.963.044 5.194-1.323 8.54-4.833 3.652-3.837 6.259-2.353 6.259-2.353-1.773 3.583.59 3.266.59 3.266 4.84-2.464.638-8.677-.823-8.403-1.46.273-1.878-.71-1.878-.71.045 1.115-1.622 1.559-1.622 1.559 1.25-7.097-2.985-8.979-2.985-8.979-.64.64-1.007 1.917-1.007 1.917-1.186 4.294-5.114 3.655-9.501 1.553-4.384-2.1-16.076 2.194-19.728 3.655-3.657 1.461-10.324 3.746-16.353.365-6.027-3.382-7.492-2.742-9.866-2.101-2.377.638-6.574 1.646-8.126.822-1.555-.822-3.326-.873-3.326-.873.423-.236-.238-1.228-.238-1.228-1.826-2.465.238-3.977.238-3.977s-3.4.958-2.048 6.761l.622.87s.455 1.826 1.463 2.375l-.037.4s.86-.4 1.13.787c.278 1.187 1.556.091 2.105-.912 0 0-.916 5.298 5.663 6.576 0 0-.735-.822-.46-1.37.273-.549-.82-1.009-.728-1.828.09-.82-1.642-1.186-.275-1.828 1.368-.64 2.011-1.919 4.933-.183 2.922 1.736 5.208 1.372 5.208 1.372s-1.782-3.658-.8-3.655c.982.001 5.4 5.471 7.576 5.2 2.175-.267 6.377-2.734 8.48-1.82 0 0 .18-1.097 8.217-2.468 8.04-1.37 17.955-5.376 21.674-1.866 0 0 .435 2.78 1.985 3.512 0 0-.277 5.754-10.228 2.555l-3.61-.95s-.555-1.747-19.484 3.121c0 0-1.113.389-1.844.938-.733.546-1.739-.275-5.484 1.094-3.742 1.373-17.721 5.94-26.304 4.295l-.012.023c-1.89-.565-3.662-.273-3.733-.571-.093-.366 1.006.092 1.006.092-.639-.732-.914-.791-.914-.791-7.217-.792-5.941-4.052-5.941-4.052l.368 1.006c1.187-1.552-.46-5.206-.46-5.206l-.07.012a3.776 3.776 0 0 0-.067-.333l.597-.412c3.472-2.924 7.492-3.472 7.492-3.472-2.377-2.921-7.403-1.368-7.403-1.368.093-3.562-1.368-7.674-1.368-7.674-4.935.548-7.764 4.658-7.764 4.658-.183-3.653-4.843-5.753-4.843-5.753 1.734 2.1.64 7.124.64 7.124l.183.092c-.289-.008-.458 0-.458 0l-.103 1.077-.171-.072s-1.734.638-3.743 5.206c0 0-.203 1.08-.98 2.053-.007-.127.007-.24-.01-.372 0 0-2.243 2.94-7.43 0 0 0-7.046-4.18-9.522-4.026-2.477.154-4.105 1.315-3.947 2.012 0 0-5.655-.465-7.588 2.785 0 0-4.258 1.549-.619 5.033 0 0 .488 1.514 1.547 2.326 0 0-.15-3.181.62-2.246 0 0 .2.313.581.533.101.446.443 1.685 1.2 2.316l.544-.173c.083-.793.255-1.795.431-2.217.083.011.15.021.18.023-.024.024-.047.037-.07.058l1.006 1.548 1.16-.619c.544-.079 1.24.465 1.24.465l1.316-1.084c-.008-.012-.016-.014-.024-.027 1.296.217 1.65-2.296 1.65-2.296 1.165.306 2.254-.037 3.181-.598.565 2.083 5.18 4.318 5.18 4.318l.2-.017c-.392.25-.624.438-.624.438 2.1 1.464 6.029 1.098 6.029 1.098-1.643.64-1.413 3.68-1.413 3.68-.96.395-1.054 1.343-1.054 1.343 3.198 1.275 5.382.22 5.382.22.176 1.04-.083 1.15-.083 1.15-1.278 2.74-1.826 5.389-1.826 5.389.028.012.06.018.088.028-.04.072-.088.141-.119.215 0 0-5.573 1.935-8.05 4.645 0 0-.233-.775-.93-.775-.697 0-2.865-1.779-3.872-2.09-1.004-.308-2.476.311-2.864-.152-.35-.423-.193-3.594-.863-4.106l.013.003-.698-1.935c-.464 1.005-2.399.772-2.399.772a21.9 21.9 0 0 0-.795.578c-.386.02-.83-.112-.83-.112-.2.04-.396.598-.54 1.14a12.04 12.04 0 0 0-.235.177v-.544c-.385.31-1.16-.154-1.47-.154-.152 0-.34.443-.492.899-.788.146-1.831.185-1.831.185-.31.155-.08 2.555-.08 2.555-2.243 1.24-1.16 3.096-1.16 3.096 1.239 6.039 11.535 3.329 12.31 4.105.772.775 2.554.927 3.484.927.927 0 2.087 2.246 3.405 2.478 1.317.233 0-1.78 6.105-3.238 6.103-1.459 8.137-3.962 8.137-3.962 1.912-.368 2.444-2.692 2.587-3.63.018.433.07.911.139 1.456.275 2.102-1.177 2.867-1.177 2.867l5.289-1.588c2.099-.548 1.826-2.377 1.826-2.377 2.009 5.756 5.664 6.121 5.664 6.121.73-2.193.64-2.833.64-2.833l1.644-.09c.067-1.238-1.027-2.144-1.66-2.565l2.573 1.56 1.003-.182c0 .913 1.37 1.734 1.37 1.734l.185-1.185c1.188 1.552 3.38 1.004 3.38 1.004a7.34 7.34 0 0 0-.194-.853c4.68 2.889 12.158-.791 12.158-.791 2.009.456 2.283-.732 2.283-.732 2.283.273 2.813-1.287 2.813-1.287 5.374-.465 9.157-4.286 9.157-4.286 2.646-.183 2.732-2.075 2.732-2.075s2.654.523 5.213-2.675c5.935-8.493 14.813-4.071 14.813-4.071l-5.133.325c-13.426-.09-7.86 9.04-7.86 9.04l.828-.087c1.278.273 5.661 3.745 4.045 6.33-.025.046-.06.087-.09.129-2.737 3.747-7.807.173-9.251-2.989-1.464-3.196-4.388-2.464-4.388-2.464s-7.58 1.279-4.475 7.307l.114.003c.057 1.472.98 3.148 3.684 4.814 1.52 2.148 6.512 2.373 10.179 1.578 1.707-.373 10.712-4.245 10.712-4.245.66-1.96 2.899-1.509 4.908-4.34 2.009-2.832-2.833-3.838-3.928-5.39-1.098-1.554.275-1.279.275-1.279 4.383 2.375 4.748-5.207 4.748-5.207.458 4.383 4.293 5.571 4.293 5.571 2.377-2.372.643-7.215.643-7.215 5.664 10.139 9.094 8.525 9.094 8.525-3.049-1.888-1.514-4.415-1.514-4.415 2.737 10.778 13.977 1.371 13.977 1.371-.548 1.551.002 2.464 1.006 3.469s2.191 1.462 1.646 3.29c-.55 1.826-5.753 1.462-5.753 1.462s-5.119-.273-4.659 4.02c.268 1.003 3.65 1.368 4.93 1.096 0 0-.528.114 1.363.367.633.082 1.398.095 2.177.07 2.18-.067 4.501-.437 4.501-.437 2.92-.638 2.465-1.646 2.465-1.646 4.472-.825 4.931-3.84 4.931-3.84z" fill="#ffd100" stroke="#000" stroke-width=".798"/> - <path d="M318.989 277.566c.003-.004.24-.564.69-.63.349-.053.77.205 1.217.747l.244-.184c-.01-.018-1.206-1.759-.73-2.988.213-.548.74-.924 1.567-1.11l-.067-.3c-.932.213-1.532.651-1.785 1.3a2.09 2.09 0 0 0-.134.756c0 .6.211 1.21.428 1.677-.27-.17-.533-.24-.786-.202-.46.07-.682.4-.804.615zm140.981 23.925c-3.052.485-7.532.753-7.888-.17-.062-.165-.073-.824 2.425-2.45l-.29-.448c-2.085 1.358-2.925 2.34-2.634 3.09.64 1.661 7.18.712 8.486.503zm-58.375 1.762c-.696-1.064-.383-2.522.93-4.337l-.433-.312c-1.458 2.007-1.776 3.673-.945 4.943z"/> - <path d="M397.473 298.66c.067 1.84 1.367 3.549 3.856 5.073l.28-.456c-2.33-1.425-3.54-2.985-3.602-4.636-.092-2.535 2.586-4.49 2.612-4.51l-.312-.435c-.12.085-2.938 2.138-2.834 4.963zm52.052.684c-.837 1.236-.557 2.733-.546 2.796l.524-.103c-.004-.015-.247-1.347.468-2.396.43-.631 1.12-1.04 2.06-1.219l-.097-.525c-1.087.206-1.895.692-2.409 1.447zm-119.256-23.377l-.165-.041-.023.17c-.004.017-.237 1.638-.973 2.079-.206.123-.428.136-.684.043l-1.248-.76c-.25-.219-.463-.38-.823-.275a1.801 1.801 0 0 1-.343-1.323c.089-.732.6-1.437 1.522-2.095l-.175-.25c-1 .715-1.554 1.491-1.652 2.314-.111.952.44 1.6.464 1.627l.074.086.101-.047c.278-.123.359-.05.629.19l1.348.819c.342.126.659.103.945-.068.761-.456 1.028-1.782 1.09-2.151 3.242.697 5.852-3.244 5.965-3.414l-.26-.168c-.022.042-2.685 4.079-5.792 3.264z"/> - <path d="M322.497 275.362c-.162.657-.051 1.302.324 1.917.358.583.71.893 1.078.942.449.062.807-.27 1.123-.562.23-.215.448-.415.628-.402l.278.193.24-.191-.497-.307c-.313-.023-.577.221-.857.483-.28.257-.568.528-.874.485-.266-.036-.553-.307-.858-.802-.33-.541-.43-1.11-.29-1.682.35-1.447 2.08-2.51 2.098-2.52l-.157-.26c-.077.044-1.856 1.135-2.236 2.706zm-4.462 20.651c.155-.56.585-1.036 1.276-1.42-.136.013.677.676 1.376.601l.453-.245c.185.16 1.394 1.26 1.394 2.654 0 .294-.054.594-.186.9l.284.119c.884-2.094-1.34-3.952-1.36-3.972l-.082-.064-.137.089-.397.215c-.571.06-1.315-.544-1.32-.55-.94.41-1.419.952-1.597 1.596zm10.325-5.345c-.667.056-2.527.411-3.134 1.377-.22.35-.252.735-.093 1.152l.245.65c.579 1.557 1.18 3.167 1.836 3.531l.149-.266c-.557-.31-1.164-1.937-1.7-3.372l-.242-.65c-.125-.328-.104-.617.063-.883.498-.791 2.17-1.173 2.902-1.234.426-.034.565 1.538.65 2.478l.304-.028c-.122-1.385-.25-2.816-.98-2.755z"/> - <path d="M323.261 292.197c-.39.35-.312.876-.307.899.003.144.177 4.034 2.024 4.838l.121-.28c-1.671-.729-1.84-4.551-1.842-4.588 0-.024-.055-.41.21-.643.28-.249.838-.268 1.61-.056l.081-.293c-.89-.246-1.529-.205-1.897.123z"/> - <path d="M321.799 292.516c-.817.569-.784 2.192-.783 2.26l.305-.005c0-.017-.03-1.531.652-2.004.255-.176.59-.183.998-.019l.114-.282c-.51-.208-.943-.19-1.286.05z"/> - <g transform="translate(-207.55 158.36) scale(.66486)"> - <path d="M862.33 169.49c.022.038 1.31 2.945 1.31 5.305 0 .419-.198.717-.291 1.081-.052-.135-.5-1.366-.5-1.366l-.39.987c-.017.055-.525 1.384.382 2.883 1.2 1.977 4.187 3.243 8.884 3.758h-.002c0 .004.059.055.066.065-.195.026-.341.08-.385.122l-.189.16.025.4c.122.488.678.512 1.784.554.187.01.49.055.705.066.275.077.557.153.557.153l-.094-.108c1.07.074 2.274.338 3.581.826-.289.076-.995.252-.995.252l1.162.458c.088.035 8.648 3.474 12.191 6.303-1.006.872-5.3 4.08-12.736 2.247l-1.246-.306.845.965c.052.058 4.896 5.614 5.9 8.983-1.687.017-8.185-.042-10.455-1.971l-.588.535c.03.05 3.115 4.576 3.804 8.105-.884.116-3 .203-4.252-1.433l-.577-.751-.313 2.037c-.605-.456-1.367-1.137-1.367-1.867v-.48l-1.833.333-3.765-2.283a7.975 7.975 0 0 0-.605-.365c-.004-.004-.035-.022-.035-.022l-.027-.016-.39.706s.448.267.577.348c.806.525 2.186 1.67 2.325 3.188-.595.035-2.448.136-2.448.136l.046.426v.067c0 .252-.08 1.304-.848 3.679-1.158-.276-5.37-1.744-7.858-8.874l-.775.192c.004.02.013.114.013.265 0 .65-.23 2.279-2.465 2.86-.013.004-4.15 1.248-6.452 1.937.43-.616.824-1.46.824-2.685 0-.26-.017-.54-.051-.837-.14-1.036-.224-1.899-.224-2.619 0-1.501.369-2.395 1.406-3.031l-.362-.716c-.097.038-9.618 3.82-14.339 2.25.216-.922 1.016-4.162 2.628-7.616l-.208.198c.31-.132.625-.615.364-2.166l-.086-.528-.484.233c-.03.015-3.052 1.363-7.417-.236.089-.358.32-1.001 1.235-1.38l.268-.108-.026-.292c0-.01-.01-.213-.01-.531 0-1.179.184-3.94 1.88-4.602l-.18-.777c-.055.007-5.161.415-8.257-1.307.812-.56 2.519-1.592 4.505-1.878l.318-.045.022-.318c.004-.016.011-.11.011-.26 0-.403-.156-1.219-.511-2.04 1.178.328 2.59.625 3.091.249l.17-.128-.146-3.099-.803.039.123 2.562c-.504.027-1.788-.23-3.035-.626l-1.234-.392.795 1.024c.645.829.727 1.858.737 2.331-2.79.519-4.976 2.251-5.07 2.33l-.41.337.435.303c2.4 1.672 6.153 1.817 8.08 1.775-1.136 1.28-1.328 3.421-1.328 4.492 0 .22.007.278.011.386-1.363.736-1.568 2.118-1.577 2.182l-.03.3.282.116c4.125 1.644 6.941.85 7.897.497.007.128.035.302.035.393 0 .378-.07.494-.07.494-2.026 4.248-2.875 8.286-2.885 8.324l-.066.334.313.124c3.828 1.53 10.705-.559 13.75-1.634-.399.689-.632 1.464-.632 2.429 0 .809.098 1.718.233 2.731.035.257.05.494.05.724 0 2.28-1.541 3.142-1.615 3.18l.306.741 7.955-2.389c1.84-.478 2.531-1.565 2.824-2.489 3.139 7.444 8.066 8.115 8.285 8.14l.32.027.1-.302c.766-2.287.943-3.449.978-4.01a439.55 439.55 0 0 0 2.462-.131l.02-.361c.004-.063.004-.123.004-.182 0-.658-.205-1.24-.49-1.764.498.3 1.377.834 1.377.834l1.318-.24c.344 1.33 1.923 2.374 2.127 2.499l.512.307s.188-1.212.267-1.74c1.965 1.758 4.753 1.235 4.885 1.202l.352-.09-.052-.357c-.4-2.688-2.204-5.886-3.265-7.596 3.491 1.587 9.85 1.471 10.163 1.461l.474-.016-.093-.465c-.564-2.825-4.094-7.272-5.57-9.04 8.201 1.541 12.606-2.714 12.795-2.907l.288-.306-.317-.278c-2.757-2.402-9.112-5.19-11.665-6.257l.894-.226-.883-.494c-2.135-1.2-4.398-1.349-5.928-1.415l-.007-.012c-.97-1.111-1.464-1.289-1.589-1.316-5.546-.612-7.579-2.166-8.317-3.366-.062-.099-.031-.166-.077-.262.12-.16.244-.318.244-.318.535-.697.726-1.63.726-2.617 0-2.547-1.294-5.457-1.367-5.625l-.738.334z"/> - <path d="M836.8 167.86c-.017.08-.608 3.119-3.196 4.543-1.947 1.07-4.52.982-7.639-.266l-.351-.14.037.376c.008.078.213 1.864 1.897 3.172 1.402 1.092 3.408 1.475 5.922 1.2-.841.998-3.544 4.452-3.544 7.802 0 .177.011.354.028.528.344.247 4.58 1.395 6.544-1.116.07 1.077.379 4.522 1.724 5.87.737.733.91 1.804.91 2.66 0 .771-.146 1.367-.146 1.379l-.152.613.511-.372c.163-.119 4.057-2.971 5.302-6.707-.004.01.623-.937 1.825-1.325-.025.163-.046.33-.046.563 0 1.444.633 4.064 4.836 5.671l.345.132-.031-.367a7.135 7.135 0 0 1-.028-.726c0-1.055.146-2.993 1.15-3.997.662-.66.86-1.404.86-2.049 0-.507-.112-.918-.226-1.22.849.215 2.855.862 3.672 2.39 1.186 2.223 5.338.454 5.516.38l-.143-.437c-.017.004-1.746.391-2.837-.358-.48-.33-.768-.837-.869-1.51l-.192-2.31c-.042-1.047-.187-1.712-.713-2.271.55-.05 1.652-.031 2.118 1 .734 1.617 3.251 1.774 3.356 1.783l.861.045-.723-.468c-.024-.014-2.198-1.456-1.822-3.336l.313-1.376c.595-2.48 1.585-6.632.779-9.181l-.438.14c.2.636.282 1.39.282 2.196 0 2.26-.64 4.944-1.072 6.738l-.316 1.395a2.608 2.608 0 0 0-.052.538c0 1.217.79 2.146 1.405 2.705-.74-.16-1.766-.512-2.151-1.37-.605-1.326-2.229-1.387-3.004-1.23l-.542.109.462.307c.73.487.75 1.054.802 2.293l.195 2.358c.115.804.473 1.419 1.06 1.824.515.35 1.117.4 1.666.44-1.233.321-2.924.522-3.531-.62-1.145-2.132-4.292-2.702-4.424-2.727l-.48-.083.24.421c.026.046.358.652.358 1.422 0 .546-.167 1.171-.733 1.735-1.116 1.126-1.287 3.167-1.287 4.296 0 .221.011.252.015.387-3.595-1.511-4.231-3.749-4.231-5.016 0-.539.104-.898.118-.945l.105-.354-.365.062c-1.746.288-2.472 1.71-2.503 1.77-.999 2.991-3.71 5.359-4.691 6.148a6.88 6.88 0 0 0 .066-.895c0-.935-.202-2.126-1.05-2.976-1.43-1.429-1.624-5.973-1.624-6.019l-.03-.82-.4.712c-1.582 2.833-6.2 1.472-6.245 1.46-.195-3.58 3.866-8.16 3.908-8.206l.425-.472-.626.092c-2.652.384-4.712.03-6.123-1.06a4.63 4.63 0 0 1-1.644-2.499c3.076 1.146 5.656 1.21 7.642.113 2.774-1.534 3.383-4.675 3.407-4.807 2.913-6.606 5.458-7.649 5.486-7.656l-.16-.431c-.115.04-2.74 1.073-5.768 7.95z"/> - <path d="M843.45 158.07l-.194.007-2.364 3.24.702.07c12.829 1.248 19.613 8.988 19.679 9.068l.296.344 2.326-2.527-.17-.26c-6.506-10.244-20.136-9.947-20.275-9.942zm.22.804c1.585.004 13.27.365 19.189 9.331-.29.313-.935 1.019-1.28 1.397-1.387-1.438-7.962-7.582-19.237-8.906a631.23 631.23 0 0 1 1.328-1.822z"/> - <path d="M841.6 164.84c-1.096 1.495-2.114 3.707-2.114 4.742 0 .198.038.354.122.453.007.01.046.013.059.029-1.336 1.197-2.131 3.196-2.131 5.456 0 1.243.22 2.538.681 3.773l.257.695c1.259 3.424 2.344 6.384 7.788 4.641 5.244-1.675 5.45-2.011 6.77-4.189l.345-.564c.72-1.17 1.506-1.404 2.343-1.652.999-.3 2.034-.608 2.942-2.4l.883-1.324c.953-1.313 2.142-2.94 2.285-5.023l-.46-.031c-.132 1.95-1.28 3.518-2.197 4.78l-.922 1.388c-.82 1.616-1.715 1.884-2.664 2.167-.883.263-1.79.534-2.604 1.853l-.348.566c-1.27 2.096-1.431 2.366-6.512 3.994-5.027 1.606-5.946-.9-7.218-4.364l-.257-.702c-1.433-3.818-.313-7.669 1.55-9.049l.64-.475-.887.1c-.01-.038-.02-.071-.02-.131 0-.624.681-2.611 2.037-4.464 1.158-1.578 3.89-3.142 3.92-3.157l-.23-.399c-.115.069-2.845 1.63-4.058 3.287z"/> - <path d="M839.16 178.65c.9.624 2.166.58 3.692 0 .007.544.129 1.7 1.078 2.538 1.116.988 2.965 1.178 5.5.574l-.108-.446c-2.375.567-4.089.407-5.087-.469-1.072-.945-.922-2.45-.918-2.463l.042-.394-.365.155c-1.537.662-2.74.702-3.575.125-1.495-1.04-1.383-3.755-1.38-3.786l-.46-.022c-.001.124-.127 3.002 1.581 4.188z"/> - <path d="M842.07 174.99c-.656.156-.827.706-.827 1.13 0 .102.011.197.024.279.115 1.182 1.398 1.969 2.563 2.306 1.133.328 2.528.35 3.077-.356.22-.282.38-.79-.1-1.61-1.75-2.977-4.581-1.811-4.737-1.749zm1.888 3.271c-1.02-.291-2.142-.953-2.232-1.933-.022-.094-.132-.752.448-.89l.046-.015c.104-.047 2.611-1.136 4.19 1.55.281.48.327.845.132 1.093-.338.44-1.454.526-2.584.195zm-1.934-3.254c.004-.004.046-.018.046-.018l-.046.018zm1.626 5.973c-.295 2.514-.115 2.574.066 2.63l.16.05.18-.212 1.456-1.92-1.828-.866-.034.318zm.421.376l.737.348c-.198.253-.566.744-.845 1.11.007-.378.053-.912.108-1.458zm-4.211-2.396l-.097 2.376 1.995-2.413-1.887-.209-.011.246zm.449.266l.552.06c-.195.233-.324.392-.585.706.02-.37.027-.575.033-.766z"/> - <path d="M838.53 178.2c.017.031 1.484 2.9 1.745 3.947.167.665 1.015 1.422 2.027 1.797 1.008.38 1.953.318 2.659-.174l1.325-1.101c.441-.425.588-.544.945-.483l.077-.453c-.601-.101-.894.179-1.34.603l-1.269 1.058c-.782.546-1.739.313-2.239.12-.946-.35-1.63-1.028-1.742-1.48-.275-1.094-1.721-3.92-1.78-4.04l-.408.206zm1.91-8.6c-1.62.748-2.305 2.713-2.333 2.796l.435.151c.007-.019.654-1.87 2.092-2.53.702-.322 1.488-.311 2.344.025l.17-.425c-.973-.393-1.884-.396-2.708-.017zm10.89 5.16c.128.096 3.188 2.414 1.43 5.243l.39.243c1.984-3.188-1.514-5.83-1.545-5.858l-.275.372zm-9.2.45s-.476 1.73 1.957 2.34c0 0-2.288-.02-2.433-.61-.154-.591.013-1.9.476-1.73zm7.44 2.07c0 .15-.122.274-.271.274a.275.275 0 0 1-.271-.274c0-.148.124-.271.27-.271.15 0 .272.123.272.271zm.27 1.08c0 .15-.122.275-.271.275a.272.272 0 0 1-.268-.275.27.27 0 0 1 .268-.27c.149 0 .271.125.271.27z"/> - <circle r=".27" cy="177.825" cx="848.01"/> - <path d="M848.75 179.45a.27.27 0 1 1-.539 0c0-.151.123-.275.268-.275.149 0 .271.123.271.275zm-7.1-7.32a.273.273 0 0 1-.546 0c0-.146.125-.271.271-.271.154 0 .275.125.275.271z"/> - <circle r=".27" cy="173.22" cx="841.65"/> - <circle r=".27" cy="172.68" cx="840.09"/> - <path d="M840.83 174.3a.276.276 0 0 1-.275.271.273.273 0 0 1 0-.546.278.278 0 0 1 .275.275zm4.74-9.55s3.518 2.165.132 6.228c0 0 1.666-1.237 1.836-3.362.178-2.123-1.207-3.816-1.968-2.866zm13.5 5.84c-1.133.582-2.764-.496-3.58-1.514-.814-1.02-2.5-1.28-3.55.58-1.048 1.864-2.56 2.562-2.56 2.562s1.477-.872 2.998-2.503c1.512-1.627 2.385-.32 3.87.466 1.484.786 1.717.959 2.763.552l.059-.143z"/> - <path d="M858.78 170.86c-.463.348-1.312.64-2.212-.09-.9-.727-1.658-1.715-2.792-1.134-1.138.584-3.293 2.212-3.293 2.212s3.495-2.417 4.165-1.892c.668.526 2.243 1.805 3.202 1.43.961-.383.93-.526.93-.526z"/> - <path d="M856.1 172.34c-1.105-.844-2.212.989-3.143.76-.931-.237-1.69-1.779-1.69-1.779s.877 1.631 2.097 1.252c1.224-.377 2.069-1.135 2.824-.555.757.585-.088.322-.088.322z"/> - <path d="M854.37 172.57c-2.183.226-2.399-1.813-2.399-1.834 0 0 .689 1.78 2.619 1.457l-.22.377z"/> - <path d="M854.3 171.18c.143.552.112.803-.473.803-.588 0-.987-.196-.987-.766 0-.571 1.374-.392 1.46-.037zm-7.84-3.03c0 .38-.313.685-.7.685-.386 0-.462-.26-.462-.636 0-.375.076-.73.462-.73.387 0 .7.307.7.681z"/> - <path d="M844.05 165.71s3.74.04 1.888 4.72c0 0 1.425-2.33.531-4.006-.897-1.674-2.305-1.252-2.305-1.252s-.343.317-.114.538z"/> - <path d="M843.94 167.58c-.01.938.616 1.907 1.856 2.876l.286-.36c-1.123-.876-1.69-1.72-1.682-2.506.007-.786.612-1.253.619-1.26l-.275-.37c-.032.026-.79.604-.804 1.62z"/> - <path d="M844.77 168.37c.16.539.577.946 1.244 1.212l.17-.425c-.527-.21-.855-.518-.972-.913-.237-.796.403-1.724.41-1.732l-.372-.267c-.036.048-.779 1.12-.48 2.125zm5.13 2.6s.696 1.512-.32 3.143c-1.02 1.63-.992 1.544-.992 1.544s1.224-2.241.759-3.175c-.462-.931.553-1.512.553-1.512zm14.55 15.79c3.842.724 12.51 7.52 12.6 7.59l.498-.636c-.365-.282-8.915-6.985-12.948-7.744l-.15.79zm3.41 9.59c.257 3.41 3.967 5.528 4.127 5.614l.392-.7c-.038-.018-3.49-1.996-3.72-4.975l-.799.061zm-9.21.71c0 3.824 3.584 8.45 3.738 8.647l.632-.497c-.034-.043-3.567-4.602-3.567-8.15h-.803zm-12.15.43c.632 1.262.566 1.902.403 2.215-.19.353-.58.407-.594.41l.094.801c.295-.035.887-.24 1.2-.816.383-.7.253-1.7-.383-2.964l-.72.354z"/> - </g> - <g fill="#fff" stroke="#000" stroke-width=".36"> - <path d="M318.926 277.124s.155 1.702 1.47 2.712c0 0-.154-1.861.234-2.633 0 0-.696-.774-1.704-.079zm2.627 1.084s.31 1.546 1.24 2.244l.544-.154s.232-1.938.541-2.169c.31-.23-1.315.697-2.325.079z" stroke-width=".239"/> - <path d="M323.88 278.128l1.006 1.549 1.16-.62-.232-1.856s-.695-.157-1.934.927z" stroke-width=".239"/> - <path d="M328.6 278.44l-1.316 1.085s-.696-.543-1.24-.465l.234-1.704s.929-.696 2.322 1.085zm-9.368 16.024s-.231-2.4.08-2.555c0 0 .926.31 1.314-.079 0 0 .542 1.937.387 2.711-.154.773-1.083.466-1.78-.077zm5.964-2.48s-.077-2.013.31-2.247c0 0 1.934.233 2.399-.772l.697 1.935s-2.168-.233-3.406 1.084z" stroke-width=".239"/> - <path d="M323.108 292.37s.386-2.09.775-2.167c0 0 1.006.308 1.316-.08l-.077 2.557s.077-1.085-2.014-.31zm-2.247.312s.464-1.858.775-1.858c.31 0 1.085.464 1.471.155v1.393s-1.706-.386-1.936 1.935l-.31-1.625z" stroke-width=".233"/> - </g> - </g> - <g fill="#00a651" stroke="#000" stroke-width=".78"> - <path d="M351.04 331.224s5.26 4.887 3.885 9.147c0 0 3.382-7.268-.25-9.399-3.636-2.13-3.76-.497-3.636.252z" stroke-width=".519"/> - <path d="M344.397 335.978s-1.376 1.883.125 3.261c0 0-1.627 2.377-.372 4.385 0 0-1.005 2.13-.753 4.386 0 0-.879 3.507 1 5.139 0 0 2.007 1.003 2.885.125 0 0 1.753-2.63.624-5.39 0 0 1.253-2.255-.124-5.137 0 0 .376-1.63-.752-3.507 0 0 .752-1.255.124-2.256 0 0-2.505-2.634-2.757-1.006z" fill="#964b36" stroke-width=".519"/> - <path d="M345.9 329.841s-6.265-12.027-10.651-12.531c-4.387-.502-4.636-4.76-4.636-4.76s.5 2.004 4.01 2.004c3.509 0 10.276 4.886 11.027 8.645.75 3.759 1.505 3.26 1.505 3.26l-1.255 3.382z" stroke-width=".519"/> - <path d="M345.9 328.964s2.256-15.163 12.157-15.415c9.897-.252 6.642.752 9.02-.878 0 0-6.638 3.511-10.776 4.01-4.133.502-7.518 8.519-7.392 10.026.124 1.502-2.255 4.386-3.383 3.385-1.128-1.003.374-1.129.374-1.129z" stroke-width=".519"/> - <path d="M348.154 334.608s2.254-6.015 6.14-4.008c0 0-3.01-5.767-8.397-.754 0 0 2.382 3.257 2.256 4.762zm-7.52-6.023s3.26 13.41-1.754 17.543c0 0 .124-6.888-2.883-11.024-3.005-4.138 3.007-8.646 4.637-6.52z" stroke-width=".519"/> - <path d="M341.013 330.971s5.891 5.641 6.268 7.52c.376 1.88 1.753-5.638-1.003-7.767-2.757-2.133-5.764-2.508-5.764-2.508l.499 2.755z" stroke-width=".519"/> - <path d="M330.15 345.751s.533 2.367 1.986 2.825c0 0 .075 1.76 1.374 2.293 0 0-.689 1.452.46 2.368 0 0-.231 2.903.84 3.516 0 0 2.6-.153 3.513-.918 0 0 .536-1.907-.914-3.82 0 0 .227-1.834-1.225-2.826 0 0 .459-2.448-1.375-3.363 0 0-.304-1.988-1.453-2.98.001 0-2.214 3.132-3.207 2.905z" fill="#964b36" stroke-width=".519"/> - <path d="M333.048 342.846s-7.716-2.827-11.995 1.223c0 0 6.569.917 7.41 2.216.84 1.297 4.89-2.138 4.585-3.44z" stroke-width=".519"/> - <path d="M330.681 347.66s-.61-.534-1.374-1.07c-.764-.534-7.257-2.292-8.177 3.973 0 0-2.37-6.188 1.07-7.03 3.44-.842 6.19 1.147 8.48 4.127m-5.078-12.806s2.378 5.137 3.257 5.391c.877.247 1.502-.626 1.502-.626s-3.131-4.637-4.76-4.765zm-1.756-7.892s-2.006-6.64-4.385-4.886c-2.381 1.754-1.755 6.514-1.755 6.514s-4.762-4.884-2.006-8.771c2.76-3.884 8.146.377 8.146 7.143z" stroke-width=".519"/> - <path d="M329.238 340.619s0 1.253.878 1.627c.878.377 2.506 1 2.506.252 0-.751-1.252-3.634-1.756-3.257-.502.377-1.376.372-1.628 1.378z" fill="#964b36" stroke-width=".519"/> - <path d="M327.736 332.853s-.25-5.763 3.506-7.896c0 0 .754.13 1.13-.998 0 0-3.01 7.265-2.132 10.899l-.124.502" stroke-width=".519"/> - <path d="M328.487 325.832s6.766-14.037 15.038-9.15c0 0-8.646 1.755-11.778 7.896l-3.134 4.632-.125-3.379z" stroke-width=".519"/> - <path d="M324.85 330.971s-2.006-9.397-3.258-10.648c-1.254-1.254-3.385-2.632-5.891-.503 0 0 4.387-3.886 9.023-.626 4.635 3.258 3.633 8.396 3.633 8.396l-.5 6.517-3.133-2.883" stroke-width=".519"/> - <path d="M332.117 342.121s-8.27-15.659-13.657-4.508c0 0-1.006 2.88.122 4.006 0 0-3.008-2.254-1.629-7.767 1.377-5.511 10.524-3.007 13.158 1.505 2.63 4.51 3.384 6.768 3.008 7.016-.378.252-1.002-.252-1.002-.252zm23.31 4.515s6.017-12.407 9.524-6.769c0 0 1 2.756-.504 3.886 0 0-2.378-2.882-4.508.627-2.13 3.507-1.253 3.259-1.253 3.259s-2.256.626-3.26-1.004z" stroke-width=".519"/> - <path d="M364.443 343.75s3.257 1.752 2.133 5.26c0 0 4.383-8.393-1.63-9.146 0 0 1.13 2.633-.503 3.886zm.379-8.517s7.896 2.254 8.146 5.64c0 0 1.38-6.518-3.133-8.523 0 .001-5.39.88-5.013 2.883z" stroke-width=".519"/> - <path d="M368.332 324.828c3.385-6.641 7.645 2.13 7.645 2.13s1.502-6.89-2.756-8.146c-4.263-1.252-7.018 14.66-7.018 14.66l-5.014 1.129s1.38-13.907 8.897-15.162l.876.126" stroke-width=".519"/> - <path d="M362.315 328.837s-4.76-9.773-8.019-10.775c-3.259-1.002 1.757-2.506 3.761-.627 2.002 1.878 5.761 4.26 5.386 9.273l-1.128 2.13zm-4.887 13.41s1.378-6.638 5.137-8.645c3.758-2.006 7.268-1.252 7.268-1.252s-4.512 1-5.262 3.259c-.753 2.254-2.006 2.378-2.006 2.378l-5.137 4.26z" stroke-width=".519"/> - <path d="M355.427 346.636s-2.13 4.01-1.63 4.635c0 0-2.254 3.257-1.378 4.887 0 0 2.257 1.754 3.26 1 0 0 2.628-3.63 1.877-5.637 0 0 1.754-2.379 1.13-3.882 0 0-2.63.125-3.259-1.003z" fill="#964b36" stroke-width=".519"/> - <path d="M344.404 339.475c.141.072 1.406.686 2.258.402l.608-.52-.478-.238c-.312.62-1.69.109-2.15-.12l-.238.476zm-.206 3.889l-.104.525c.108.021 2.65.513 3.863-.564l-.356-.398c-1.013.9-3.378.445-3.403.437zm-.645 4.428l-.314.433c.03.023 2.985 2.127 4.876-.17l-.414-.34c-1.57 1.906-4.043.154-4.148.077zm-11.476.638l.111.287c.106-.044 2.61-1.05 2.769-2.88l-.304-.028c-.143 1.643-2.552 2.612-2.576 2.622zm1.416 2.288l.022.305c.097-.008 2.409-.18 2.812-1.796l-.298-.077c-.348 1.401-2.513 1.565-2.536 1.568zm.479 2.367l-.017.307c.111.004 2.7.139 3.579-1.295l-.261-.162c-.785 1.281-3.275 1.152-3.3 1.15zm19.633-1.623c.047.05 1.163 1.152 2.467 1.103.638-.023 1.204-.317 1.682-.866l-.404-.351c-.377.434-.814.665-1.295.683-1.068.04-2.064-.936-2.074-.948l-.376.38z" fill="#000" stroke="none"/> - </g> - <g fill="#964b36" stroke="#000" stroke-width=".279"> - <path d="M431.42 360.624a1.104 1.104 0 0 0-.404.268l.405-.268zm9.216-2.307c-.09-.229-.148-.132-.266-.234-.168-.138-.266-.582-.414-.748-.088-.101-.189-.003-.284-.028-.215-.474-.47-.973-.696-1.43a.397.397 0 0 0 .063-.213 7.61 7.61 0 0 0-.114-.4c-.064-.102-.167-.042-.229-.199-.07-.157-.016-.467-.041-.652-.019-.154-.08-.24-.07-.458.01-.189.111-.409.1-.575-.005-.104-.128-.337-.164-.425-.149-.358-.273-.696-.291-1.138-.019-.4.062-.644.091-.992.038-.415-.182-.617-.182-1 .002-.294.126-.625.162-.888.048-.36.052-.883.022-1.253-.027-.353-.127-.566-.072-.963.014-.098.06-.176.072-.312-.003-.098-.003-.192-.003-.287v-.57c0-.185.019-.394.003-.574-.016-.15-.104-.305-.104-.423 0-.203.13-.3.101-.576-.017-.198-.046-.245-.091-.418-.088-.328-.028-.659-.082-1.01-.025-.168-.079-.222-.095-.414-.022-.227.047-.305.07-.465.023-.16.047-.37.025-.539-.025-.203-.122-.347-.095-.568l-.074 2.514c-.062-2.194-.15-4.225-.15-4.225l-3.336-1.567s-.283 6.126-.211 6.978c.067.856.353 6.7.21 7.412-.143.712-.494 4.274-.494 4.274s-1.632 1.14-2.27 2.42c-.64 1.283-.497 1.71-.712 1.71l1.585-.247-1.18.789a.721.721 0 0 1 .735.114c.027.022.203.173.226.173.062 0 .148-.159.224-.187.246-.083.453.378.686.343.125-.019.296-.15.398-.284.085-.114.117-.312.206-.388.081-.07.28.01.365.01.233 0 .47.008.702 0 .31-.008.562-.445.848-.692.267-.225.463-.304.748-.287.312.023.594.315.911.333.24.012.407.041.601-.21.134-.176.229-.437.356-.62l.788-.122c.156.065.316.136.45.132.201-.01.41-.035.609-.003.076.01.226.188.288.144.042-.033.114-.273.157-.345-.018-.097-.047-.337-.082-.417z"/> - <path d="M433.887 360.511c.202 0 .386-.046.555.102l.079.154a.173.173 0 0 0 .167.023c.113.077.136.12.26.149.116.025.243-.005.359-.003.146.005.217.055.353.111.238.097.395.005.601-.144.239-.175.326-.041.555.18.171.163.136.148.29.036a1.72 1.72 0 0 1 .077-.149c.077-.031.155-.052.233-.067.128-.06.255-.052.375-.098.127-.05.22-.19.354-.165.115.023.248.117.358.153a.747.747 0 0 1 .24.122c.16-.328.511-.426.736-.584.233-.162.45.034.707.036.137 0 .192-.079.29-.11.108-.04.232.017.337-.026.11-.042.131-.149.253-.162.227-.028.48.341.706.41.127.043.715.175.628-.258-.083-.411-.452-.127-.531-.415-.042-.165.044-.398-.007-.583-.044-.168-.23-.363-.34-.4-.139-.043-.22.102-.338-.011-.097-.09-.134-.428-.219-.562-.114.083-.185.16-.335.13-.172-.042-.155-.1-.282-.263-.278-.347-.438.209-.694.12-.194-.061-.375-.551-.527-.75-.082-.107-.31-.451-.428-.375-.198.13-.018.504-.122.67-.074.116-.337-.002-.432.016-.15.033-.178.072-.287.252-.22.363-.347.652-.688.61-.162-.018-.284-.182-.442-.122-.169.064-.264.245-.449.266a.977.977 0 0 1-.42-.035c-.13-.058-.275-.3-.393-.368a.153.153 0 0 0-.16-.03c-.014-.007-.191-.11-.194-.11-.206-.06-.189-.053-.273.219-.048.168-.067.342-.129.501-.06.134-.191.3-.268.39-.144.155-.213.114-.4.17-.15.048-.35.282-.43-.019-.12-.453.333-1.13-.171-1.012-.132.03-.211.055-.292.25-.089.224-.017.37-.057.615-.053.31-.643.83-.527 1.11.08.197.343-.107.415-.058.12.083.085.28.17.412.179.273.708-.423.738-.046m-2.141-2.709c-.002-.039-.01-.076-.012-.117-.14-.025-.3-.175-.43-.178-.122-.007-.36.291-.444.434-.258.428-.187 1.01-.622 1.002-.106-.003-.355-.075-.449-.01-.163.116-.06.458-.06.69 0 .22.1 0-.017.286-.035.078-.141.103-.17.208-.087.372.223.254.359.25.351-.003.7-.003 1.048 0 .21.004.337-.07.533-.146.13-.044.405-.042.514-.158a2.21 2.21 0 0 0 .184-.406c.028-.144-.027-.317.008-.437.055-.21.243-.13.277-.414.09-.696-.653-.175-.536-.86"/> - </g> - <g stroke="#000" stroke-width=".519"> - <path d="M440.164 338.724c0 .901-.617 1.627-1.382 1.627-.756 0-1.378-.726-1.378-1.627 0-.9.622-1.63 1.378-1.63.764 0 1.382.73 1.382 1.63zm-4.508-2.008c0 .899-.618 1.627-1.379 1.627-.762 0-1.382-.728-1.382-1.627 0-.9.62-1.63 1.382-1.63.761 0 1.379.73 1.379 1.63z"/> - <path d="M438.036 337.34c0 .902-.617 1.628-1.378 1.628-.762 0-1.378-.726-1.378-1.627 0-.902.616-1.63 1.378-1.63.76 0 1.378.729 1.378 1.63z"/> - <path d="M435.73 338.83c0 .902-.62 1.632-1.381 1.632-.76 0-1.378-.731-1.378-1.632 0-.9.617-1.628 1.378-1.628.761 0 1.38.728 1.38 1.628z"/> - <path d="M437.87 340.073c0 .9-.622 1.632-1.38 1.632-.76 0-1.38-.733-1.38-1.632 0-.899.62-1.627 1.38-1.627.758 0 1.38.728 1.38 1.627z"/> - </g> - <path d="M438.535 322.302s13.907-19.42 28.82.754c0 0 .125 2.006-1.253 4.135l-.377-1.628-.877.25-.25-1.003-1.632-.124.505-2.131-1.757 1.378.252-1.505-2.005 2.009.252-4.263-2.132 3.634.25-2.504-.75 1.125-.453-1.46-.674 1.46-1.005-.75v1.002l-1.752-1.504-.626 2.005-.877-2.129-.251 1.502-.88-1.754-.122 1.88-2.885-1.254.627 1.755-1.376-1 .25 1-1.877-.375.123 1.127-2.005-.377.377 1.002-2.758-.374.999 1.128-.278.458s15.066-4.968 16.068 13.827l-2.757 1.378.753-1.5-.753-.504-2.254-1.752.627-2.383-.751.252-.127-1.378-.375.25-.88-1.378-.249.502-.626-1.631-.627 1.13-.377-2.758-1 1.757-.128-1.003-.377.626-1.252-1.505-.373 1.003-.504-.751-.374.876-1.379-1.255v1.006l-.876-.754-.38.502-2.126-1.128-.13 1-1.125-1-.377 1s13.662 7.772 9.399 20.428l-.754 1.628-.247-4.258-1.253 2.253.871-4.886-.871.876-.13-1.878-1.123 1.878-.382-2.129-.497.626-.755-3.259-.627 1.38-1.001-3.634-.75 1.503-.503-3.13-.501 1.879-1.505-2.758-.248 1.125-.876-2.254-.504.754s-2.506-.127-3.257-.754c-.752-.623-2.883 3.761-2.883 3.761l.251-2.632-.876 1.752v-1.752l-1.63 5.261-.376-3.758-.877 3.257-.377-1-.25 1.38-.502-.504-.437 1.479-.818-.6v2.003l-.75-1.003-.627 3.008-.375-1.25v1.376l-.626-.749-.629 3.008-.876-1.253-.123 2.127.373 1.632-1.001-.502.377 2.628s-3.886-7.265.753-14.284c4.633-7.013 10.9-8.895 10.9-8.895l-.63-.624-.124-.628-3.759 1.879.127-1.131-1.003.878-.25-1.252-.629 1.128-.122-.502-.88 1.38-.503-2.006-.624 2.383-.591-1.667-1.288 3.543v-2.63l-1.003 2.758-.375-3.008-.75 3.507v-3.133l-1.131 3.133-.751-3.006-.502 2.88-.75-2.253-.755 3.382-1.125-3.008-.627 4.512-.75-1.757-.127 3.26-.875-2.005.875 4.259-1.128-1.628.377 2.63-1.628-2.882.125 3.387-.879-1.13-.377 1.252s-.373-13.03 8.52-15.539c8.9-2.505 14.664.754 14.664.754l-3.382-2.756.375-.879h-1.252l.5-1.003-2.63.127.751-1.003-2.006.25v-.625l-1.253 1 .502-1.126-1.755 1.125-.106-1.666-.897 1.42-.497-1.506-4.013 4.008 1.128-4.134-.751.879-.125-.879-1.128 1.756-.251-1.254-.502 1.502-.377-1.752-.874 1.752-.879-1.626-.374 2.131-.629-1.13-.751 1.63-1-1.005-.128 1.004-2.005-.878.502 1.505-1.505-1.252-.377 2.004-.874-1.003-.627 2.508-.626-2.382-.626 1.88s7.836-20.136 27.661-6.999c0 0 2.16 2.111 2.661 3.615.502 1.504.127.252.127.252l-.378-13.91.752 6.016.501-2.131-.124 3.133 2.002-4.387s-2.378 7.27-1.503 9.9c0 0 .88-8.394 3.889-9.398l-2.758 6.014.876-.126-.627 1.255h.752l-.909 1.988-.47 1.02.5 1 .757-.758z" fill="#00a651" stroke="#000" stroke-width=".519"/> - <path d="M436.474 330.473l.395.356c.053-.055 1.292-1.376 3.373.38l.345-.408c-2.488-2.104-4.102-.347-4.113-.328zm-.605-6.822l-.082.482.967-.412c-.155.276-.664 1.162-.664 1.162l1.44-.48c-.628.824-1.787 2.34-1.787 2.34l.426.328 2.843-3.725-1.766.59c.184-.32.758-1.333.758-1.333l-1.528.657c.101-.618.316-1.911.316-1.911l-.53-.089-.393 2.391z"/> - <path d="M433.216 323.804s.351.777.615 1.356c-.114-.047-.98-.394-.98-.394l2.89 5.115.371-.474c-.291.747-.582 1.5-.582 1.5l.5.195 1.245-3.207-.46-.26-1.003 1.285c-.27-.481-1.27-2.252-1.746-3.089l.803.322-.8-1.764 1.084.677v-1.906h-.534v.943l-1.77-1.105.367.806zm-1.822 6.423l.213.49c.783-.335 1.428-.391 1.918-.158.574.276.747.867.749.872l.515-.14c-.007-.033-.234-.829-1.026-1.21-.633-.305-1.43-.256-2.369.146zm2.245 5.418l-.44-2.802.53-.083.44 2.802zm3.848-.461l-.713-2.14.508-.17.714 2.14zm1.413 1.582l-.536-2.138.52-.13.536 2.138z"/> - <path d="M331.924 401.061s-2.35-1.067-3.42-.286c-1.068.785-.922 1.923-1.85 1.851 0 0 3.56.784 4.343-.143.783-.923.927-1.21.927-1.21m.433.772s-1.547 2.067-1.012 3.278c.533 1.211 1.677 1.315 1.406 2.204 0 0 1.53-3.307.796-4.272-.735-.96-.98-1.16-.98-1.16m-2.817-5.775s-2.467.766-2.743 2.058c-.283 1.294.584 2.052-.154 2.614 0 0 3.179-1.782 3.15-2.996-.031-1.212-.11-1.518-.11-1.518m1.307.694s1.17-2.305.433-3.403c-.735-1.106-1.883-1.011-1.77-1.93 0 0-.94 3.52-.048 4.345.892.818 1.172.976 1.172.976m-2.207-.826s.056-2.577-1.085-3.25c-1.14-.675-2.134-.095-2.432-.976 0 0 .682 3.583 1.843 3.941 1.161.35 1.481.37 1.481.37m4.408 4.21s2.704-.929 2.92 1.993c.213 2.92-.144 1.923-.144 1.923s-1.424-3.133-2.99-3.632l.214-.284z" stroke-width=".519" fill="#00a651" stroke="#000"/> - <path d="M332.31 402.092c0 .062.283 2.27.283 2.27l.38-.05-.286-2.208c.01.003.925-4.854.925-4.854l-.377-.07-.925 4.912z"/> - <path d="M329.85 401.374l-.126.36c1.293.455 3.099-.967 3.174-1.027l-.24-.297c-.016.01-1.713 1.352-2.808.964zm3.39-2.85l-6.052-3.062.24-.477 6.053 3.062z"/> - <path d="M328.852 397.836l-.377-.377 1.211-1.21.377.378zm2.118-.588l-1.281-2.779.485-.223 1.281 2.779zm1.792 3.401l.034.534c1.646-.111 2.048.955 2.05.967l.526-.11c-.062-.305-.721-1.518-2.61-1.391z"/> - <path d="M360.527 401.879c2.017-1.13 2.422-5.091 2.422-5.091-.483 1.457-4.196 2.909-4.196 2.909 2.744-1.7 6.052-9.364 6.052-9.364-.888 2.745-8.07 5.004-12.673 7.587-4.603 2.581-2.18 10.011-2.18 10.011-1.29-.889-3.794-4.842-4.276-8.317-.488-3.47-1.86-4.84-5.008-5.245-3.15-.404-5.005 3.146-5.005 3.146l-4.681 2.425 4.76.16s3.395 1.132 3.395 3.795c0 2.666-2.987 13.321 1.934 19.296 3.426 4.152 16.067 6.538 16.067 6.538" fill="#fff" stroke="#000" stroke-width=".665"/> - <path d="M351.245 410.11s.969-4.764 4.117-4.602c3.148.161 4.036-3.55 5.893-4.117 1.856-.564 11.463-3.146 12.513-7.75 0 0-.888 7.59-9.686 11.384 0 0 7.102-2.342 7.911-3.876 0 0-3.15 6.781-10.819 7.83 0 0 7.185-.564 8.235-2.5 0 0-3.23 4.277-8.556 4.844 0 0 4.923 2.017 6.216.321 0 0-2.665 3.148-5.976 3.388l.89.244s-3.148 3.714-6.62 1.21c-3.47-2.503-3.553.649-3.553.649" fill="#fff" stroke="#000" stroke-width=".665"/> - <path d="M358.412 417.29s4.055 6.783 4.46 10.415c0 0 7.75 8.558 10.656 9.04 0 0-1.373.563-3.877-1.533 0 0 2.1 2.18 2.504 2.26.402.084-1.696-.161-2.02-.728 0 0 .89 1.295 1.453 1.456l-.564-.161s-1.051-.162-1.535-.566c-.485-.403-.162 1.047-.162 1.047s-1.21-.323-1.613-.726c-.404-.402.162.89.162.89l-1.05-.243-.725.483s-.082.485-.569.081c-.481-.4-1.37 0-1.37 0s-.649.567-.97.162c-.32-.403-1.544 1.553-1.544 1.553l-5.083-12.27" fill="#fff" stroke="#000" stroke-width=".665"/> - <path d="M363.236 439.548l-6.424-12.228.674-.354 6.425 12.228zm5.613-.824l-10.991-12.306.57-.51 10.992 12.306zm2.507-1.085l-12.542-11.688.52-.56 12.543 11.689z"/> - <g transform="translate(-207.55 158.36) scale(.66486)"> - <path d="M823.44 360.84s-1.231-2.204-2.303-1.376c-1.069.825-1.685.976-1.87.919 0 0 1.076.059 1.687-.522.613-.586 1.656-.216 2.486.979zm-6.66-1.01s.676 1.398.685 1.422c-.068.004-.763 2.257-.763 2.257l.553.17.75-2.453c-.013-.213-.703-1.642-.703-1.642l-.522.246z"/> - <path d="M823.16 360.5s-.918 1.075-2.176.766l-1.252-.306s1.066.06 1.776.093c.7.029 1.618-.337 1.652-.553z"/> - <path d="M822.86 360.72s-1.132-1.195-1.9-.858c0 0 1.35-.43 2.116.73l-.216.128z"/> - <path d="M822.67 360.5s-1.286.887-2.699-.09l-.086-.066.183-.059c.001.001 1.778.735 2.602.215z"/> - <circle r=".383" cy="360.284" cx="821.573"/> - </g> - <path d="M339.37 420.448s-.661 1.22-.315 1.954c.35.734 1.922 1.114 2.13 2.092.211.98.736.978 1.469.842.735-.141.874-.176.874-.176s-3.075-1.644-3.88-4.295l-.277-.417z"/> - <g> - <g fill="#964b36" stroke="#000" stroke-width=".48"> - <path d="M438.754 395.616s5.597-7.38 10.56-5.441c4.963 1.94 8.188 2.873 8.188 2.873s.094 4.97-2.545 4.97c-2.633 0-5.157-4.964-7.557-3.489-2.404 1.473-4.378 3.49-4.533 4.186-.155.697-6.357.853-4.112-3.1z" stroke-width=".319"/> - <path d="M417.512 431.2s-1.548 1.624-.85 2.015c.7.386 2.092-.082 2.092-.622 0-.546-.928-1.549-1.242-1.394z" stroke-width=".519"/> - <path d="M416.275 432.748s-2.866-1.632-5.115 2.245c-2.252 3.876-4.11 10.157-5.428 11.01-1.317.852 12.793-6.202 12.948-9.147 0 0 .929-3.8-.543-3.725-1.473.082-1.551.237-1.862-.383z" stroke-width=".519"/> - <path d="M416.66 433.214s-2.944.693-3.564 4.878c-.62 4.19-4.73 6.36-4.962 6.513m49.376-51.555s-4.48 1.558-3.706 4.66" stroke-width=".319"/> - </g> - <path d="M423.097 402.125s.154-10.622 8.832-10.157c1.644.152.86 2.092.86 2.092s1.877-1.315 2.735.774c0 0 2.737-1.239 3.048 1.476 0 0 2.971-.387 2.58 2.015 0 0 2.032-.464 1.956 1.241 0 0 2.344-.93 2.108 1.473 0 0 2.58-1.706 2.192 1.394 0 0 2.658-1.858 3.592 1.242.938 3.1-2.656 9.69-6.174 11.395" fill="#fff200" stroke="#000" stroke-width=".319"/> - <path d="M447.211 402.77c.012.083 1.17 8.31-3.495 11.32l.164.259c4.834-3.119 3.645-11.54 3.634-11.624l-.303.045zm-5.618 9.009l.216.219c2.954-2.875 3.59-10.622 3.612-10.95l-.302-.025c-.007.081-.65 7.96-3.526 10.755zm-2.759-1.842l.305.025c.38-4.784 4.119-10.256 4.159-10.312l-.252-.171c-.04.054-3.824 5.593-4.212 10.458zm-2.167-1.397l.304.031c.532-5.77 4.344-10.103 4.381-10.144l-.226-.205c-.04.043-3.917 4.447-4.46 10.319zm-3.026-1.927l.305.01c.303-6.813 4.774-10.158 4.818-10.19l-.18-.248c-.044.034-4.633 3.458-4.943 10.428zm-2.792-1.696l.307-.01c-.223-6.2 4.545-9.914 4.594-9.952l-.185-.242c-.049.04-4.943 3.843-4.716 10.204zm-5.033-2.267l.302.038c.831-6.714 6.806-8.46 6.866-8.477l-.083-.294c-.06.016-6.232 1.814-7.085 8.733z"/> - <path d="M417.977 414.997s-1.47-9.849 4.42-12.947c0 0 1.089-.233 1.706 1.163 0 0 3.103-1.317 3.181 1.315 0 0 1.549-1.24 1.937.465 0 0 3.334-.696 2.714 1.784 0 0 2.79-.775 2.557 1.626 0 0 2.792-1.007 2.325 1.086 0 0 2.944-.695 2.249 1.707 0 0 3.645-.386 2.56 2.17 0 0 2.713-.696 2.091 1.397 0 0 3.567.622 1.937 2.869-1.627 2.246-5.737 5.657-9.764 7.13" fill="#00a651" stroke="#000" stroke-width=".319"/> - <path d="M414.8 424.916s-2.405-8.214 2.173-10.311c0 0 .848-.234 1.003.621 0 0 1.01-1.32 1.787-.154 0 0 2.323-1.086 2.869.619 0 0 1.548-1.32 2.325.617 0 0 1.473-.617 1.473.931 0 0 2.015-.853 2.015 1.009 0 0 1.935-.775 1.549 1.317 0 0 2.947.464 2.094 1.86 0 0 2.64.696 1.628 1.784 0 0 2.867-.31 1.317 1.627 0 0 2.171-.695.932 1.71-1.242 2.4-5.116 5.036-7.83 5.346" fill="#00a651" stroke="#000" stroke-width=".319"/> - <path d="M417.665 431.425s-5.116-4.96-2.71-6.433c0 0 1.081.307 1.47 1.394 0 0 1.24-1.782 1.94.077 0 0 1.862-.62 1.862.624l1.47 1.085s1.708-.156 1.399.93c0 0 1.86-.234 1.781.775 0 0 1.63.076 1.475 1.16 0 0 2.788.465 1.549 1.863 0 0-4.884 1.006-8.294-.388 0 0-1.787-.622-1.942-1.087z" fill="#00a651" stroke="#000" stroke-width=".319"/> - <path d="M435.21 423.228l.11.284c3.03-1.168 8.296-8.354 8.52-8.66l-.247-.182c-.055.077-5.434 7.422-8.382 8.557zm-1.721-1.31l.148.265c2.638-1.47 7.89-8.427 8.111-8.723l-.243-.185c-.053.075-5.435 7.204-8.017 8.642zm-1.496-.612l.197.234c2.785-2.312 6.842-9.95 7.015-10.274l-.27-.143c-.04.078-4.202 7.909-6.942 10.183zm-1.37-1.762l.303.042c.53-3.86 5.953-9.937 6.005-9.997l-.226-.204c-.224.252-5.541 6.207-6.082 10.16zm-10.857-4.694l.305-.027c-.455-5.453 4.11-11.46 4.156-11.52l-.242-.184c-.049.059-4.684 6.157-4.22 11.731zm2.872.479l.303-.053c-.755-4.373 4.408-10.59 4.462-10.65l-.234-.2c-.217.26-5.308 6.386-4.531 10.903zm4.415 1.609l.305-.009c-.15-4.991 4.639-9.994 4.688-10.045l-.22-.213c-.048.05-4.929 5.147-4.773 10.267zm-10.532 9.042l.287-.107c-1.74-4.611 1.28-10.517 1.31-10.574l-.275-.142c-.03.06-3.11 6.083-1.322 10.823zm2.009.3l.29-.095c-1.516-4.698 1.054-10.993 1.081-11.055l-.284-.118c-.024.062-2.636 6.464-1.088 11.267zm8.31 4.693l.104.289c4.947-1.78 8.182-6.29 8.213-6.333l-.25-.179c-.03.045-3.207 4.48-8.067 6.223zm-1.017-1.077l.124.28c3.945-1.78 7.624-6.746 7.659-6.797l-.245-.178c-.038.049-3.667 4.948-7.538 6.695zm-.958-.372l.179.248c3.086-2.236 7.05-7.966 7.092-8.025l-.251-.17c-.04.058-3.974 5.742-7.02 7.946zm-4.946-2.879l.303-.044c-.682-4.929 2.508-10.776 2.543-10.834l-.268-.148c-.035.06-3.274 5.995-2.578 11.026zm2.147 1.336l.206.227c3.183-2.874 4.268-10.62 4.312-10.947l-.304-.042c-.01.079-1.112 7.965-4.214 10.762z"/> - <path d="M424.247 428.899l.179.247c4.493-3.25 5.711-9.49 5.72-9.55l-.297-.058c-.012.06-1.208 6.18-5.602 9.361zm.519-13.45c0 .29.014.581.041.876-.005-.025-3.408 11.025-3.408 11.025l.292.09 3.416-11.086c-.527-5.359 4.186-11.209 4.233-11.266l-.236-.191c-.047.052-4.338 5.38-4.338 10.552z"/> - <path d="M428.33 418.148c-.045.155-1.083 7.724-5.165 10.517l.173.252c4.198-2.872 5.218-10.335 5.26-10.65 1.811-2.156 5.986-9.716 6.029-9.792l-.269-.148c-.042.076-4.2 7.613-6.029 9.82zm-12.055 8.271c.03.159.713 3.92 1.494 5.246l.263-.154c-.755-1.28-1.446-5.106-1.454-5.146l-.303.054zm1.935.046c.033 1.873.042 4.945-.062 5.217l.284.112c.157-.393.097-4.51.085-5.331l-.307.003z"/> - <path d="M418.383 431.83l.278.125c1.31-2.852 1.714-4.82 1.719-4.838l-.3-.06c-.005.016-.4 1.956-1.697 4.774z"/> - <path d="M418.675 431.917l.155.264c2.432-1.413 2.996-3.87 3.016-3.974l-.298-.067c-.007.025-.559 2.435-2.873 3.777z"/> - <path d="M419.128 432.13l.03.302c2.383-.237 4.006-3.132 4.075-3.254l-.269-.148c-.015.03-1.614 2.877-3.836 3.1z"/> - <path d="M419.367 432.283l.018.305c3.826-.236 5.548-2.522 5.617-2.619l-.247-.18c-.016.02-1.713 2.27-5.388 2.494z"/> - <path d="M419.64 432.363l-.063.298c.206.047 5.08 1.08 6.75-1.46l-.256-.167c-1.552 2.365-6.384 1.338-6.432 1.329z"/> - </g> - <path d="M310.243 254.06v136.357c0 44.599 80.581 71.08 80.581 71.08s80.582-26.483 80.582-71.08V254.06z" fill="none" stroke="#000" stroke-width="2.792"/> - </g> - <path d="M0 0v209.756h312.477V0H0z" fill="#002868"/> - <path style="line-height:normal;text-indent:0;text-align:start;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000;text-transform:none;block-progression:tb;isolation:auto;mix-blend-mode:normal" d="M0 0v23.452l121.304 81.425L0 186.304v23.452h34.936l121.303-81.425 121.304 81.425h34.934v-23.452l-121.302-81.427 121.302-81.425V0h-34.934L156.24 81.427 34.936 0H0z" color="#000" font-weight="400" font-family="sans-serif" white-space="normal" overflow="visible" fill="#fff"/> - <path d="M0 0v14.867L169.725 99.73 0 184.592v14.867h29.732l169.725-84.863 169.727 84.863h29.732V184.59L229.191 99.729l169.725-84.862V0h-29.732L199.457 84.861 29.732 0H0z" style="line-height:normal;text-indent:0;text-align:start;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000;text-transform:none;block-progression:tb;isolation:auto;mix-blend-mode:normal" color="#000" font-weight="400" font-family="sans-serif" white-space="normal" overflow="visible" fill="#ce1126" transform="scale(.78332 1.05163)"/> - <path style="line-height:normal;text-indent:0;text-align:start;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000;text-transform:none;block-progression:tb;isolation:auto;mix-blend-mode:normal" d="M130.199 0v69.919H0v69.918h130.199v69.92h52.08v-69.92h130.198V69.92H182.278V0h-52.08z" color="#000" font-weight="400" font-family="sans-serif" white-space="normal" overflow="visible" fill="#fff"/> - <path style="line-height:normal;text-indent:0;text-align:start;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000;text-transform:none;block-progression:tb;isolation:auto;mix-blend-mode:normal" d="M140.614 0v83.902H0v41.952h140.614v83.902h31.249v-83.902h140.614V83.902H171.863V0h-31.249z" color="#000" font-weight="400" font-family="sans-serif" white-space="normal" overflow="visible" fill="#ce1126"/> -</svg> diff --git a/img/flags/1x1/fk.svg b/img/flags/1x1/fk.svg deleted file mode 100644 index 9e1c388..0000000 --- a/img/flags/1x1/fk.svg +++ /dev/null @@ -1,90 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" height="512" width="512" viewBox="0 0 512 512"> - <defs> - <linearGradient id="a"> - <stop stop-color="#a43907" stop-opacity=".996" offset="0"/> - <stop stop-color="#fff" offset="1"/> - </linearGradient> - <linearGradient id="b" y2="577.14" xlink:href="#a" gradientUnits="userSpaceOnUse" x2="470.9" gradientTransform="scale(1.003 .997)" y1="592.2" x1="444.4"/> - <linearGradient id="c" y2="552.83" xlink:href="#a" gradientUnits="userSpaceOnUse" x2="520.55" gradientTransform="scale(.936 1.068)" y1="562.51" x1="458.24"/> - <linearGradient id="d" y2="580.2" xlink:href="#a" gradientUnits="userSpaceOnUse" x2="445.28" gradientTransform="scale(1.003 .997)" y1="578.68" x1="472.38"/> - <linearGradient id="e" y2="558.12" xlink:href="#a" gradientUnits="userSpaceOnUse" x2="456.44" gradientTransform="scale(.936 1.068)" y1="553.74" x1="517.97"/> - <linearGradient id="f" y2="369.94" xlink:href="#a" gradientUnits="userSpaceOnUse" x2="646.19" y1="369.94" x1="851.78"/> - <linearGradient id="g" y2="508.75" xlink:href="#a" gradientUnits="userSpaceOnUse" x2="677.4" gradientTransform="scale(.823 1.215)" y1="507.23" x1="388.53"/> - <linearGradient id="h" y2="505.86" xlink:href="#a" gradientUnits="userSpaceOnUse" x2="556.8" gradientTransform="scale(.835 1.198)" y1="504.94" x1="579.84"/> - <linearGradient id="i" y2="514.33" xlink:href="#a" gradientUnits="userSpaceOnUse" x2="558.88" gradientTransform="scale(.823 1.215)" y1="512.01" x1="581.43"/> - <linearGradient id="j" y2="503.9" xlink:href="#a" gradientUnits="userSpaceOnUse" x2="589.77" gradientTransform="scale(.835 1.198)" y1="517.88" x1="552"/> - </defs> - <path fill="#006" d="M0 0h512v512H0z"/> - <path fill-rule="evenodd" fill="#006" d="M0 0h512v256H0z"/> - <g stroke-width="1pt"> - <path d="M0 0v28.623L454.756 256h57.242v-28.62L57.24.002H0zm511.998 0v28.622L57.24 256H0v-28.62L454.756 0h57.242z" fill="#fff"/> - <path d="M213.332 0v256h85.333V0h-85.333zM0 85.335v85.333h511.998V85.334H0z" fill="#fff"/> - <path d="M0 102.4v51.2h511.998v-51.2H0zM230.4 0v256h51.2V0h-51.2zM0 256l170.666-85.333h38.16L38.162 256H0zM0 0l170.666 85.334h-38.16L0 19.082V.002zm303.17 85.334L473.838 0h38.16L341.333 85.335h-38.16zM512 256l-170.666-85.333h38.16L512 236.92V256z" fill="#c00"/> - </g> - <path d="M670.97 321.56a13.22 13.22 0 0 0-2.03.188c-3.39.59-8.734 11.63-11.69 18.094-4.62 5.644-7.088 10.03-9.03 13.28-.755 1.263-1.92 2.728-1.563 4.407-6.996 1.718-7.344 7.724-7.344 10.06 0 2.48.782 3.72.782 3.72l4.187 7.843.03.094c4.458 9.216 11.058 21.626 14.75 22.656 5.244 1.462 18.822-3.55 29-12.156 16.69 6.875 38.073 12.562 61.97 12.562 23.896 0 45.248-5.69 61.938-12.563 10.18 8.606 23.758 13.618 29 12.156 3.705-1.033 10.324-13.525 14.78-22.75l4.19-7.844s.78-1.24.78-3.72c0-2.338-.377-8.344-7.375-10.062.35-1.678-.776-3.143-1.53-4.406-1.958-3.274-4.42-7.7-9.095-13.406-2.966-6.48-8.29-17.382-11.656-17.97-4.742-.825-14.97 1.58-14.97 2.407 0 .02-.057.45-.062.5l-20.54 19.4c0 .557 1.09 14.594 4.938 27-13.75 5.006-30.626 8.532-50.406 8.532-19.793 0-36.715-3.52-50.47-8.532 3.85-12.406 4.97-26.443 4.97-27l-20.53-19.4c-.005-.05-.063-.48-.063-.5 0-.723-7.83-2.675-12.968-2.593zm5.25 24.094c2.582-.032 5.332 2.095 7.594 4.47-.078.465-.157.943-.25 1.374-.624 2.872-1.696 6.663-3.188 10.625-5.87-3.43-10.66-6.996-14.312-10.312 2.228-2.37 5.806-5.596 9.594-6.124.185-.026.375-.03.563-.03zm147.56 0c.187.002.377.005.563.03 3.788.53 7.397 3.757 9.625 6.126-3.66 3.324-8.457 6.91-14.344 10.344-1.498-3.97-2.563-7.778-3.188-10.656-.094-.432-.172-.907-.25-1.375 2.265-2.38 5.006-4.5 7.594-4.47zm-166 27.375c2.73 2.09 6.296 4.475 10.594 7-1.19.755-2.456 1.316-3.78 1.624-1.766.41-3.622.33-5.5-.063-.588-1.45-1.083-3.274-1.22-5.717a70.286 70.286 0 0 1-.094-2.844zm184.47 0c-.014.877-.068 1.825-.125 2.843-.137 2.443-.6 4.267-1.188 5.72-1.88.392-3.766.47-5.53.06-1.326-.307-2.56-.868-3.75-1.624 4.3-2.525 7.862-4.908 10.593-7z" fill-rule="evenodd" transform="translate(-509.228 18.036) scale(1.168)" stroke="#fff" stroke-width="10" fill="url(#b)"/> - <path d="M445.63 595.48s5.625-8.75 10.313-8.125c4.687.625 9.062 6.25 9.375 6.562.312.313 7.187-7.187 6.875-7.5-.313-.312-7.188-16.562-10.938-17.187s-11.847 1.196-11.847 1.82-3.778 24.43-3.778 24.43z" fill-rule="evenodd" transform="matrix(-1.477 0 0 1.545 953.61 -485.428)" stroke="#000" stroke-width="1.16" fill="url(#b)"/> - <path d="M433.13 586.11c0 .625 1.875 23.75 10 31.875s21.25 13.125 25.938 11.875c4.687-1.25 15.312-24.687 15.312-24.687s-11.25 11.25-19.687 9.375c-8.438-1.875-13.438-15.938-15-22.813-1.563-6.875-.313-20.313-.313-20.313l-16.25 14.688z" fill-rule="evenodd" transform="matrix(-1.477 0 0 1.545 953.61 -485.428)" stroke="#000" stroke-width="1.16" fill="url(#c)"/> - <path d="M445.63 595.48s5.625-8.75 10.313-8.125c4.687.625 9.062 6.25 9.375 6.562.312.313 7.187-7.187 6.875-7.5-.313-.312-7.188-16.562-10.938-17.187s-11.847 1.196-11.847 1.82-3.778 24.43-3.778 24.43z" fill-rule="evenodd" transform="matrix(1.477 0 0 1.545 -219.777 -485.428)" stroke="#000" stroke-width="1.16" fill="url(#d)"/> - <path d="M433.13 586.11c0 .625 1.875 23.75 10 31.875s21.25 13.125 25.938 11.875c4.687-1.25 15.312-24.687 15.312-24.687s-11.25 11.25-19.687 9.375c-8.438-1.875-13.438-15.938-15-22.813-1.563-6.875-.313-20.313-.313-20.313l-16.25 14.688z" fill-rule="evenodd" transform="matrix(1.477 0 0 1.545 -219.777 -485.428)" stroke="#000" stroke-width="1.16" fill="url(#e)"/> - <path d="M656.44 338.56c-4.742 5.785-7.274 10.257-9.25 13.562-1.976 3.306-.814 7.906 3.75 14.47 4.92 7.072 45.374 34.718 98.062 34.718 52.69 0 93.142-27.646 98.062-34.72 4.564-6.562 5.695-11.162 3.72-14.468-1.977-3.306-4.478-7.777-9.22-13.562 0 8.677-33.512 40.03-92.562 40.03s-92.562-31.353-92.562-40.03z" fill-rule="evenodd" transform="translate(-508.04 19.21) scale(1.168)" stroke="#000" stroke-width="1.5" fill="url(#f)"/> - <path d="M467.82 625.48c.625-.937 7.187-11.875 7.187-11.875l-3.598-2.538c-1.106 3.094-5.153 4.1-5.778 7.85s2.813 7.5 2.188 6.563z" fill-rule="evenodd" transform="matrix(1.477 0 0 1.545 -218.795 -484.06)" stroke="#000" stroke-width="1.16" fill="url(#g)"/> - <path d="M475 622.98s1.25-5.312-2.812-5.937c-4.063-.625-6.214 2.973-5.625 1.562.654-1.567 3.125-3.125 3.437-8.437.313-5.313-.312-8.125-.312-8.125s1.562-6.876 8.125-5.938c6.562.938 6.875 5.938 6.875 7.813s-.625 2.812-.625 2.812L475 622.98z" fill-rule="evenodd" transform="matrix(1.477 0 0 1.545 -219.777 -485.428)" stroke="#000" stroke-width="1.16" fill="url(#h)"/> - <path d="M448.3 446.338l1.973 3.453 1.332-.83-.884-2.28.165-.448 2.318-1.446 6.067 10.608-.15.516-1.2.88.546.957 5.777-3.606-.547-.954-1.31.686-.507-.106-6.068-10.61 2.32-1.447.434.072 1.52 1.883 1.335-.833-1.973-3.452-11.148 6.958zm-14.253 8.169l.48.993 1.216-.513.478.155 5.21 10.764-.165.494-1.117.716.48.993 5.687-3.002-.48-.993-1.256.536-.48-.154-2.47-5.108 5.806-3.065 2.47 5.11-.143.482-1.158.737.48.993 5.667-2.99-.48-.993-1.215.514-.478-.154-5.21-10.765.165-.493 1.116-.718-.48-.993-5.665 2.99.48.994 1.256-.535.46.165 2.147 4.44-5.807 3.064-2.148-4.438.165-.494 1.157-.74-.48-.992-5.687 3zm-3.337 9.151l.305 1.066 1.628-.39.432.198 1.275 4.437c-.55.217-.952.368-1.168.435-3.32 1.037-6.004-.613-7.128-4.53-1.093-3.806.24-6.687 3.455-7.692a4.747 4.747 0 0 1 1.89-.21l.434.29 1.072 2.177 1.574-.492-1.06-3.697c-1.735.02-3.334.26-4.758.704-4.787 1.496-7.015 5.44-5.734 9.9 1.3 4.523 5.26 6.7 9.788 5.285 1.574-.493 3.083-1.296 4.575-2.403l-1.454-5.068.257-.413 1.22-.5-.306-1.066-6.298 1.968zm-13.338 12.512l6.428-2.024-.32-1.064-1.473.346-.45-.24-3.483-11.577.253-.412 1.407-.563-.32-1.064-6.428 2.025.32 1.064 1.452-.338.435.196 3.484 11.578-.24.456-1.385.554.32 1.064zm-34.8 5.693l11.316-1.036-.345-4.047-1.433.13-.155 2.432-.243.387-4.888.446-.502-5.88 2.74-.252.322.29.35 1.61 1.242-.115-.447-5.25-1.243.115-.073 1.65-.268.34-2.74.252-.458-5.383 4.194-.384.3.27.484 1.962 1.475-.136-.3-3.55-10.622.97.095 1.11 1.295-.005.364.287 1.028 12.056-.307.392-1.276.23.095 1.108zm-16.845-14.916l.02 1.112 1.228.092.345.357.21 12.053-.332.37-1.225.133.02 1.112 5.985-.104-.02-1.112-1.27-.09-.345-.358-.1-5.72 6.112-.107.1 5.72-.31.37-1.267.134.02 1.113 5.965-.104-.02-1.113-1.23-.092-.343-.357-.21-12.054.33-.37 1.226-.135-.02-1.113-5.965.104.02 1.113 1.272.092.323.358.087 4.97-6.113.108-.087-4.97.332-.37 1.267-.136-.02-1.112-5.985.105zm-12.847-.431l-.038 4.02 1.46.017.36-2.426.342-.29 2.54.03-.117 12.35-.364.36-1.376.095-.01 1.112 6.326.076.01-1.112-1.375-.13-.356-.367.116-12.35 2.54.03.314.3.337 2.434 1.458.017.038-4.018-12.206-.146zm-19.483 12.839l11.06.548.18-4.058-1.402-.07-.456 2.387-.285.35-4.778-.237.258-5.897 2.677.132.275.333.135 1.642 1.215.06.23-5.26-1.214-.06-.278 1.623-.303.302-2.677-.133.236-5.397 4.1.203.256.308.22 2.013 1.442.07.156-3.56-10.38-.514-.05 1.11 1.252.176.316.334-.53 12.088-.345.346-1.262.05-.048 1.11zm-25.347-6.559l5.87 1.98.324-1.06-1.282-.55-.208-.45 3.536-11.518.407-.197 1.35.336.324-1.058-5.87-1.98-.324 1.06 1.262.544.22.41-3.535 11.515-.42.24-1.33-.33-.324 1.06zm-10.438-4.054a11.392 11.392 0 0 0 3.572 1.99c3.22 1.086 5.773-.103 6.563-2.674.39-1.275.12-2.654-.772-3.838-.906-1.21-1.848-1.887-2.33-2.502-.828-1.04-1.18-1.875-.874-2.87.366-1.188 1.514-1.753 2.948-1.27.628.212 1.047.47 1.34.784l.183.396-.355 2.36 1.413.477 1.074-3.5c-1.09-.893-2.247-1.57-3.465-1.98-2.807-.946-5.204.296-5.94 2.694-.326 1.06-.18 2.276.465 3.423.618 1.09 1.43 1.77 2.08 2.466 1.156 1.247 1.625 2.263 1.267 3.43-.366 1.188-1.574 1.735-3.165 1.2a5.534 5.534 0 0 1-1.634-.887l-.155-.41.482-2.698-1.494-.504-1.2 3.912zm-13.266-5.554l9.996 4.997 1.672-3.665-1.265-.632-1.308 2.013-.392.207-4.318-2.158 2.43-5.327 2.42 1.21.13.417-.49 1.567 1.1.55 2.167-4.753-1.1-.55-.858 1.384-.39.155-2.42-1.21 2.223-4.873 3.703 1.85.12.388-.54 1.943 1.3.653 1.468-3.216-9.383-4.69-.458 1.002 1.09.67.166.436-4.977 10.916-.448.18-1.182-.467-.457 1.003zm-1.684-18.191l-5.03-3.466-.585.93.99.82.086.493-6.333 10.065-.466.113-1.11-.63-.585.93 5.03 3.465c1.723 1.187 3.194 1.793 4.835 1.62 2.136-.214 3.957-1.46 5.364-3.695 2.504-3.98 1.8-7.888-2.198-10.643zm-2.098.076l1 .69c2.74 1.886 2.98 4.526.74 8.09s-4.667 4.39-7.407 2.504l-1-.69 6.667-10.594zm40.078 15.69l-.224 1.088 1.167.376.258.383-2.438 11.837-.395.284-1.213-.152-.224 1.088 5.685 1.257.224-1.088-1.207-.382-.25-.426 1.03-4.998.343.075c2.035.45 2.363 1.52 2.553 3.77.104 1.135.08 2.176.945 3.296.398.53 1.088.96 1.956 1.152a13.78 13.78 0 0 0 2.052.27l.22-1.068-.262-.058c-1.35-.298-1.886-.764-2.06-2.08-.153-1.195-.067-2.43-.49-3.546-.317-.813-.917-1.386-1.834-1.845 2.374.037 3.83-.987 4.25-3.03.508-2.467-.83-4.156-3.955-4.847l-6.128-1.355zm3.872 2.18l.928.205c1.954.432 2.772 1.68 2.397 3.502-.422 2.045-1.642 2.75-3.798 2.273-.223-.05-.464-.102-.722-.183l1.194-5.797zm74.094 1.29l.173 1.098 1.33-.11.406.253 1.883 11.943-.3.42-1.294.334.173 1.098 6.265-1.07-.173-1.098-1.373.12-.413-.297-.795-5.042.378-.064c2.244-.383 2.973.482 3.997 2.493.525 1.013.886 1.988 2.18 2.687.602.334 1.466.462 2.422.3a16.52 16.52 0 0 0 2.192-.56l-.17-1.075-.29.05c-1.487.253-2.206.03-2.868-1.122-.598-1.047-.966-2.227-1.81-3.096-.624-.63-1.448-.925-2.552-.99 2.436-.9 3.542-2.423 3.217-4.484-.393-2.488-2.382-3.53-5.827-2.94l-6.755 1.153zm4.757.5l1.022-.175c2.155-.368 3.45.47 3.74 2.306.325 2.063-.66 3.197-3.036 3.603-.244.042-.51.087-.803.114l-.922-5.847z"/> - <path d="M467.82 625.48c.625-.937 7.187-11.875 7.187-11.875l-3.598-2.538c-1.106 3.094-5.153 4.1-5.778 7.85s2.813 7.5 2.188 6.563z" fill-rule="evenodd" transform="matrix(-1.477 0 0 1.545 952.675 -484.06)" stroke="#000" stroke-width="1.16" fill="url(#i)"/> - <path d="M475 622.98s1.25-5.312-2.812-5.937c-4.063-.625-6.214 2.973-5.625 1.562.654-1.567 3.125-3.125 3.437-8.437.313-5.313-.312-8.125-.312-8.125s1.562-6.876 8.125-5.938c6.562.938 6.875 5.938 6.875 7.813s-.625 2.812-.625 2.812L475 622.98z" fill-rule="evenodd" transform="matrix(-1.477 0 0 1.545 953.61 -485.428)" stroke="#000" stroke-width="1.16" fill="url(#j)"/> - <path d="M396.85 605.91s-75.43-21.26-74.99-102.14l.58-106.91h148.82l.584 106.3c.44 80.882-74.993 102.76-74.993 102.76z" fill-rule="evenodd" fill-opacity=".996" transform="matrix(1.477 0 0 1.545 -219.333 -481.456)" stroke="#fff" stroke-width="3.867" fill="#0072c4"/> - <g fill-rule="evenodd"> - <path d="M272.306 168.963c.184 0 1.534-1.282 2.77-2.412 1.727-.864 3.324-2.08 5.08-2.896 1.307-.757 3.89-1.344 5.077-1.93 1.555-.815 2.824-1.752 4.156-3.38.158-2.16.46-3.71.46-6.275 1.837-.885 3.467-1.742 5.078-2.415 2.31-.65 2.812-1.574 5.08-1.93 1.46-.51 3.87-.485 6-.485 2.297 0 3.747 1.633 5.81 2.02 2.447.986 3.59 1.67 5.54 3.38 1.102 1.394 1.788 2.528 3.667 3.578 1.488.763 2.88 1.92 4.617 2.413 1.905 1.105 3.597 1.745 5.077 3.38 1.355.965 1.915 2.397 3.23 3.38 1.526 1.264 2.972 2.403 4.618 3.38 1.978 1.324 3.94 2.33 7.143 2.043 1.697-.1 3.523-.296 5.54.08 2.26 0 4.464-.04 6.464.485 2.355 0 4.26.318 6.463.482 2.064.386 4.168.483 6.463.483 2.002.522 4.205.482 6.464.482h12.926c2.352 0 4.733.096 6.463.484 2.33 0 4.333-.22 6.463-.485 2.507 0 4.42-.46 6.926-.482h7.85c2.014.552 4.59.93 6 1.93 1.848.528 2.768 1.404 4.616 1.932 1.416.726 3.565 1.875 4.617 3.378 1.303 1.363 2.64 3.314 3.693 5.31 1.285 1.855 1.774 3.974 2.77 6.276.528 2.205.895 4.302.923 6.757.502 2.093.464 4.396.464 6.758-.528 2.2-.643 4.65-1.386 6.758-.08 2.356-.55 4.487-.923 6.276-.41 1.975-.894 3.246-.924 5.792v6.758c-.16 2.217-.646 3.845-.922 6.275-1.117 2.108-2.186 4.573-3.23 7.24-1.537 1.072-2.87 2.595-3.694 3.863-.985.61-1.556 1.532-1.386 1.93 1.845.643 1.386 1.927 1.386 4.345.24 1.86.42 4.17.923 6.276.17 2.303.662 3.712 1.385 5.308.728.95.87.483-.924.483-1.334 1.047-2.684.5-3.23-1.448-1.078-1.3-1.432-2.87-1.847-5.31-.255-2.234-.612-4.412-1.385-5.79-.236-2.722-.96-2.694-3.693-2.898-1.3-1.152-3.017-1.45-5.54-1.45-2.513 0-2.724-.255-2.77 2.416v6.758c-.434 1.96-1.387 3.547-1.847 5.31-1.377 1.008-2.093 2.7-3.693 3.86-.762 2.193-1.87 2.574-4.156 2.897-.8-.998-2.102-2.3-2.77-3.378 1.293-2.17 2.422-2.496 3.233-4.827.98-1.922 1.556-3.17 2.306-4.828-.985-1.516-1.87-2.2-2.77-4.345-.76-1.168-1.81-3.68-2.307-5.31-1.517-.527-3.904-.612-5.08-1.448-2.24-.522-2.866 1.93-5.54 1.93h-6.462c-2.858 0-3.572 1.596-6.002 1.45-.714.23-2.445-.103-5.08 0-1.928.67-4.252.48-6.462.48-2.342-.03-4.258-.568-6-.965-2.122-.58-4.232-1.17-6.464-1.447-2.71 0-3.72.216-5.54 1.447-1.44.855-3.528 2.807-5.08 3.862-.655 1.602-.996 4.313-1.846 6.276-.49 1.883-1.288 3.077-1.846 4.828-.625 1.633-1.216 3.314-1.385 5.793-.156 3.253-.867 2.855-2.77 1.93-.793-1.346-2.057-2.827-2.77-4.344.42-2.457.893-3.68.924-6.276-.45-1.874-1.498-1.813-2.77-.483 0 2.528.117 4.477-.924 5.793-.52 1.995-1.356 2.857-2.77 3.862-.69 1.792-2.226 2.612-3.693 3.38-.235-.082 0-.647 0-1.93-1.106-2.208-.08-4.04-.08-6.76.03-2.437-.11-4.052.597-6.275 0-2.34-1.085-4.566-1.44-6.275-.858-1.793-1.353-2.68-3.693-3.38-1.645-.653-4.014-1.537-5.08-2.896-1.34-1.74-2.195-2.454-4.153-3.38-2.124-.77-3.155-1.473-4.616-2.414-1.427-1.574-2.587-2.256-3.232-4.343-.964-1.485-1.13-4.242-1.847-6.277-.157-2.12-.764-4.088-1.384-5.792-.274-2.12-.608-3.67-1.385-5.793-.257-1.984-.83-4.06-1.384-6.273 0-2.362.04-4.667-.462-6.76v-6.757c-.332-1.95-.455-4.807-.923-6.276 0-2.626-.28-4.11-.923-5.793-1.056-1.704-1.142-2.47-2.77-2.895-1.176 1.5-3.114 2.112-5.54 2.415-1.695-.387-4.086-.638-6.002-1.45-1.85-.455-3.117-1.187-4.617-1.93-.82-1.262-1.8-2.69-2.77-3.862-.286-2.52-.836-3.82-.923-6.275 0-1.843.044-.865 1.846-3.38z" fill="#bcbcbc"/> - <path d="M299.65 186.357l.328-.34c-.742.774-.47.4 1.306-.343.993-.625 2.88-1.727 3.59-2.39.854-.39 2.21-.9 2.938-1.705.91-.97 1.82-1.776 2.938-2.732 1.293-1.097 2.498-1.457 3.918-2.39 1.847-.137 2.516-.928 4.243-.34 1.622.367 2.294.377 3.592-1.025 1.31-.84 2.753-1.654 3.265-3.073v-2.046c-.025 2.23-.427 2.953-1.96 3.753-1.067 1.224-2.398 2.608-2.937 3.756-1.037 1.5-1.257 2.34-2.285 3.072-.844 1.075-2.292 1.644-2.61 3.412.464.813.04 1.258.977 1.366.946.812 1.93.466 3.265 0 1.328-1.537 1.925-2.53 2.612-4.095 1.095-1.497 1.708-2.21 2.284-3.414 1.135-.823 1.856-1.464 2.286-2.73 1.313-.77 2.393-1.578 3.263-2.39.976-.628 1.494-1.138 2.938-1.366-.02 1.833-.29 2.7-.978 3.755-.325 1.9-.26 2.802.326 4.096.938.58.772 1.084 1.306 2.39.532-1.13.802-3.415.98-4.78v-.342c0 1.493.136 3.473-.327 4.438.022 1.99.464 2.878.98 4.437.55.752.938 1.24 1.632 1.707.064-1.97.556-3.267.652-5.12.455 1.43.303 3.32.653 4.778.118 1.607.7 2.852 1.306 4.097.744.46.997 1.813 1.305.683.773-2.402.792-5.03 1.306-7.51.094-1.26.195-3.133.654-4.096l-.653 4.095c.094-1.26.195-3.132.654-4.095v-.34c.305 1.797.593 3.533.653 5.46 0 1.536-.1 3.1.327 4.437 1.086-.503 1.715-1.68 2.285-3.073.87-1.65 1.465-2.382 2.61-3.754l-2.61 3.754c.87-1.65 1.465-2.382 2.61-3.754v-.34c-.18 1.573-.325 3.056-.325 4.777 0 1.574-.018 3.358.326 4.438.385 1.81.91 2.145.98 4.095 0 .95-.124 1.92.327 2.39 1.406.367 1.41-.452 1.632-2.39.017-2.202.58-3.703.65-5.802 0-2.59.367.316.654 1.366.66 1.52.864 2.872.98 4.437 0 .95-.123 1.92.326 2.39 1.26-.523 1.76-1.996 2.612-2.732.65-1.616 1.322-2.33 1.96-3.41 1.69-.355 1.607-1.05 1.63-3.073 0-1.633-.127-3.352.328-4.78.523-1.483 1.016-3.134 1.305-4.436.61-.364 1.27.538 1.63 1.366.716 1.1.654 2.705.654 4.437.314 1.51.942 2.69 1.632 4.096.818 1.577 1.483 2.533 2.285 3.413.344 1.08.327 2.864.327 4.437 1.272-1.445 1.515-3.598 1.632-5.802-.17-1.5-.202-3.368-.653-4.78-.052-1.503-.32-3.055-.653-4.095-1.102-.53-1.276-1-.326-2.39 1.05-.908 2.185-.557 3.918-.34.876.915 1.236 1.405 1.305 3.41 0 1.82.077 3.218.653 4.44.64.982 1.272 1.657 1.63 3.413.502.428.89 1.12 1.634.342.41-1 .65-3.062.98-4.097.318-1.295.893-1.93 1.632-2.39 0 1.9-.022 3.066.653 4.44.638 1.524 1.082 2.097 1.63 3.755.697.485.786 1.53 1.633 2.046.2-1.602.327-3.437.327-5.46v-4.78c.12-1.625.514-2.54.98-3.752 1.05 1.31.98 1.852.98 3.753 1.073-.4 1.253-1.17 1.63-2.387.767-.675.976-.99 1.306.68.23 1.787.665 3.395.98 5.122.67.788 1.447 2.696 2.285 3.414.575.975 1.22 1.92 1.96 2.73.508 1.123.638 1.71 1.958 2.047 0-2.31.077-4.627-.326-6.826 0-1.96-.428-2.66-.653-4.437-.545-1.177-.865-2.912-.654-3.412 1.53 1.517 2.22 2.398 2.938 4.096.766 1.64 1.41 2.743 1.958 4.437.755.648 2.092 2.59 2.612 3.414 1.165 1.04 1.733 2.126 2.938 3.07.623.588 1.94.916 2.285.684-.06-2-.364-3.72-.98-5.46-.02-1.91-.458-2.948-.978-4.096-1.285-1.108-2.26-1.863-2.94-3.414-.505-.432-.604-.755-.653-1.705 1.876 1.552 3.187 2.936 4.57 4.777.936 1.213 1.412 1.763 2.613 2.39.65.73 2.545 1.638 3.916 2.048.823 1.09 1.922 1.718 3.265 2.05l-3.264-2.05c.823 1.09 1.922 1.718 3.265 2.05v.34c-.163-2.135-.947-3.695-1.958-5.462-.85-1.868-1.63-2.56-2.938-3.755-.854-1.352-1.81-2.15-3.264-3.07-.9-1.06-2.25-2.82-2.938-3.415 1.392-.874 3.027.592 4.57 1.366 1.274 1.38 2.465 3.18 3.264 4.095.87 1.753 1.537 2.838 2.94 4.437 1.405.834 2.38 1.66 3.59 2.73 1.87.518 1.124-.166.653-1.706-.647-1.926-.072-1.956 1.305-.682.908.647 1.92 1.725 3.263 2.39.58.752 1.457 1.17 2.286.682.345-.482.326-.427.326-1.024-.687-2.118-1.325-3.767-2.938-4.438-.74-.942-1.942-2.063-2.937-3.072-.65-1-1.408-1.576-1.96-2.73l1.96 2.73c-.65-1-1.408-1.576-1.96-2.73h-.326c1.97.073 2.672.573 4.242 1.366 1.12.408 2.327 1.475 2.94 2.388.635.845 1.655 1.753 2.284 2.73 1.003.773 2.11 1.652 3.265 2.39 1.087 1.425 1.282 2.352 1.307 4.44.626.964.738 2.938.978 4.094-.24 1.877-.882.403-.978-.683-.277-1.507-.85-1.428-1.96-1.023 0 2.062.228 2.626.98 4.096-.204 1.41-.672 2.44-1.306 3.414-.76.454-.925-1.004-1.63-1.707-.076-2.11-.67-2.343-1.96-3.414v1.366c.728 1.457 1.497 2.785 1.632 4.78.504 1.52.653 2.482.653 4.436 0 1.67.027 3.3-.326 4.78 0 1.85-.307 2.645-.328 4.437v9.558c-.25 1.207-.326 2.78-.326 4.436l.326-4.438c-.25 1.208-.326 2.782-.326 4.437v.34c-.62-1.715-1.296-3.267-1.632-5.12-1.058-1.047-1.73-2.126-2.286-3.413-.25-1.464-.406-3.253-.653-4.438-.46-1.203-.947-2.486-1.96-1.706-.4 2.544.106 4.06.98 6.484.513 1.608.457 2.872.98 4.438.757 1.805 1.365 2.064 0 4.095-.673 1.084-1.034 1.427-1.306 2.732-1.208.632-1.51.913-1.632 2.39-.406-1.328-1.393-2.884-1.96-4.438-.584-1.634-1.306-3.313-1.63-4.778-.793-1.143-1.722-2.992-2.613-3.755-.82-1.102-1.997-2.94-2.612-4.095-1.25-1.457-1.526-2.3-2.61-3.07-.28-.683-.612-1.534-1.306-1.025 0 1.632-.13 3.35.326 4.777.33 2.013.91 3.13.98 5.12v3.756c-.785-1.923-1.622-3.64-2.286-5.462-.713-1.018-1.41-3.003-2.285-3.754-.555-1.324-.988-2.422-1.632-3.412-.167-.992-.606-.98-.98-1.707.022 1.935.61 2.613.98 4.095.636 1.3.84 3.48.653 4.096-.823-2.392-1.568-5.008-2.612-7.167-.99-1.402-1.955-3.204-2.61-4.437-.972-1.172-1.97-1.21-2.938-2.048-.882-.437-1.726-.926-2.285-1.707.257 1.8.927 2.924 1.305 4.438.215 1.716.97 3.09 1.306 4.438-.363 2.335-.89-.648-1.306-1.707-.344-1.922-.98-2.99-1.632-4.097-.875-.622-1.67-1.727-2.612-2.39-.916-.367-.653.067-.653 1.366 0 2.112.077 3.507.653 4.78.652 1 .653 2.306.653 4.094-.056 1.68-.325 3.03-.325 4.78V228c-.75-1.45-1.46-2.275-1.96-4.096-1.132-1.55-1.468-2.688-2.285-4.436-.724-.305-1.902-.556-2.61 0 .127 1.727.89 2.487.98 4.436-1.302 1.333-1.067 1.713-1.96-.34-.744-1.557-1.61-1.484-2.61-2.39-1.64-.214-1.12-1.263-1.634-2.73 0-1.315.13-2.642-.326-3.756-1.79 0-2.816-.064-3.917 1.025-.518 1.08-.335 3.033 0 4.436v4.778c-.372 1.196-1.11 1.26-1.306 2.73-.63 1.458-.84 3.066-1.305 4.098-1.163 1.05-.658 1.182-1.306-.683v-10.925c0-1.854.267-2.758.326-4.435-.677-1.415-.86-1.68-2.938-1.707-.506.882-.313 2.52 0 3.414 0 1.654.075 3.23.326 4.436 0 1.813.214 2.912.327 4.438-.062 1.81-.4 3.25-1.306 4.096-1.177.308-.128 1.057-1.305 1.366-1.18-.592-2.568-1.396-3.59-2.39-1.27-.404-2.466-.682-4.244-.682-2.164-.028-2.2-.29-2.938-2.05-.662-1.88-.973-3.514-1.306-5.46-.718-1.598-.886-2.687-1.306-4.437-.548-1.043-1.133-1.83-1.957-2.39-.473 1.726-.917 3.17-.98 5.12-.382.8-.462 2.834-.652 3.754-.655-1.01-.912-2.995-1.305-4.435-.62-2.07-1.148-3.414-3.265-2.73-2.197.027-2.26.09-2.286 2.39.946 1.48 1.956 2.918 2.612 4.094v4.778c0 1.973.115 2.544-1.306 3.072-.54-2.048-1.688-4.003-2.938-5.803-.17-1.392-.6-1.024-1.957-1.024-.91 0-1.837-.128-2.286.34 0 1.19.097 2.842 0 3.074-.788.145-1.106-.008-1.633-.683-.57.993-.14 2.393 0 3.755-.415 1.518-.91 2.905-1.633 3.753-.144-.454-.47-.342 0-.342-2.24-.86-3.993-1.39-5.875-2.045-1.134.146-1.957 1.19-2.613 2.046-1.66.56-2.393 1.002-4.244 1.025-1.776 0-2.64.28-4.244.342-1.155.262-2.662.34-4.244.34-.878-.26-2.41-.268-2.94-.682.675-1.005 1.426-1.513 1.96-3.07.894-.637 1.732-1.452 2.612-2.39.86-.613 1.87-1.883 2.61-2.73.51-1.645 1.21-1.93 2.286-2.732 1.94.076 2.32.692 4.244 1.024 1.88.712 2.92.922 3.918-.34 1.56-.66 2.882-1.69 4.57-2.05 1.307-.653 2.144-1.288 3.264-2.048 1.39-.837 2.05-1.696 3.265-2.73.347-1.392 1.33-2.467.98-4.097-1.767-.462-2.89-.277-3.918.683-1.43 1.177-1.7 1.666-3.265 2.73-1.352.385-1.93.98-3.59 1.366-1.365.476-3.01.342-4.57.342-1.428 0-3.322-.142-4.245.34 1.452-.977 3.197-1.993 4.57-2.39 1.318-.884 1.816-1.332 3.592-1.364.823-1.078 1.673-1.105 1.956-2.73.553-2.02-1.204-1.38-2.61-.684-1.327.244-2.79 1.183-3.918 1.707-1.09.38-2.68.663-4.244.683-.412-.615.322-1.106.653-2.05 1.525-.54 1.77-.738 1.96-2.388-1.73.24-2.39.808-3.92 1.024-1.665.436-3.394.63-5.22.683h-4.572c-1.604-.062-2.47-.342-4.243-.342-1.3-.68-1.306-1.002-1.306-3.072 1.024-1.176 2.02-1.022 3.917-1.022 1.46-.718 2.597-1.1 3.59-1.707 1.183-.254 1.99-.76 1.633-1.364h-4.57c-1.76-.745-.08-1.086.98-1.707 1.587 0 3.225.093 4.243.682 1.963-.076 2.647-.697 4.242-2.05 1.25-1.03 1.864-1.687 3.265-2.388 1.006-1.11 1.956-1.723 2.612-2.73 1.342-1.28 2.23-1.988 2.937-3.072.864-.476 1.392-1.09.98-1.707-2.046.25-2.874.993-4.245 2.048-.796.793-1.57 1.503-2.612 2.048-1.47.874-2.385 1.228-4.242 1.365-1.676 0-2.964-.28-4.57-.34-1.774-.186-.142-.6.325-1.365.686-.48 1.22-1.542.653-2.39-1.365-.475-3.008-.34-4.57-.34h-4.57c-1.725-.067-2.455-.463-3.59-1.025-.353-.958.062-.683 1.305-.683 1.574-.062 2.69-.276 4.245-.683 1.535-.438 1.727-.95 1.958-2.732-1.506 0-3.21.02-4.243-.34h-2.94zm-28.274-7.739c-.287-2.52-.836-3.82-.924-6.275 0-1.843.045-.865 1.847-3.38.182 0 1.532-1.282 2.77-2.412 1.726-.864 3.323-2.08 5.078-2.896 1.307-.757 3.89-1.344 5.077-1.93 1.556-.815 2.825-1.752 4.156-3.38.16-2.16.464-3.71.464-6.275 1.836-.885 3.465-1.742 5.077-2.415 2.312-.65 2.812-1.574 5.08-1.93 1.46-.51 3.872-.485 6-.485 2.298 0 3.747 1.633 5.81 2.02 2.447.986 3.59 1.67 5.54 3.38 1.103 1.394 1.788 2.528 3.668 3.578 1.487.763 2.88 1.92 4.616 2.413.015 1.743.386 1.442-.858 1.442-.132 1.786-.56 1.675-2.286 1.707a8.002 8.002 0 0 1-2.938-2.732c.653-1.773.22 1.435 0 2.048-.84.69-1.338 1.426-2.285.683-.53-1.666-.978-2.817-.978-4.78-.25-2.132-.846-.584-1.307.343-.442 1.72-.24 2.343.326 3.753-1.666 0-2.942-.157-4.245-.34-1.21-.302-2.572.068-3.918.682-1.71 1.073-1.177 1.08-.326 2.39 1.51.444 2.593 1.28 3.92 2.048 1.505-.3 3.08-.635 4.57-1.025 1.555-.54 2.98-.196 4.57 0 .788.414 1.825.497 2.284 1.026 0 1.055.084 2.158-.326 2.73-.68.452-1.324 1.7-2.286 2.047-1.44.825-2.95 1.344-4.57 1.707-2 .076-2.73.515-4.243 1.366-.25 1.725-.753 2.212-2.287 2.73-1.526.667-2.74 1.025-4.57 1.025-.908 0-1.835.13-2.285-.34 1.454-1.66 1.89-2.44 2.612-4.097.282-.69.873-1.134.327-1.707-1.934.076-2.44.063-2.612 2.048-.22 1.798-.91 2.1-2.285 2.73.37-1.664.432-2.943.98-4.436-1.156.262-2.662.34-4.245.34-.99.628-1.4.872-.98 2.05-1.312.456-2.91.175-4.57 0-1.386-.076-.62-.705-1.63-1.366-.663-1.3-1.424-1.616-2.94-1.707-.752.94-2.145 1.33-2.938 2.048-1.43.5-2.34.085-3.59-.683-1.63.05-1.412.576-.98 1.707.622.434-.038.907.98 1.024.938.852 1.74 1.025 3.59 1.025 1.415-.37 2.974-.34 4.57-.34 1.612.05 1.307.43 1.307 2.047-1.054.746-2.59.683-4.245.683-1.576-.196-2.784-.604-3.917-1.024-1.53-.113-2.752-.405-3.918 0-.526.583-2.11.838-.326 1.025.7.66 4.478.342 4.747 1.466.89.99.692 2.29-.83 2.29-.925-.483-1.64-.364-2.286 0-1.086.285-2.377.078-4.274.22 2.477.204-1.8-2.69-2.77-3.862z" fill="#fefefe"/> - <path d="M281.687 167.25c-.108 0-1.083.677-1.96 1.364-1.433.768-2.965 2.075-3.916 2.73-.748.6-.744.862-1.63 1.026 1.555-.22 2.248-.617 3.59-1.366 1.695-.204 3.338-.564 4.244-1.365.85-.298-.064-1.66-.327-2.39zm15.025-16.05c.187 0 .57 1.067 1.304 1.706.47 1.31.903 2.235.98 3.755.4-1.667 1.084-3.008 1.305-4.778-.507-.9-.54-1.32-1.958-1.365 0 .922.108.32-1.63.682z" fill="#bcbcbc"/> - <path d="M349.36 417.73c-.494 0 .87-.492 1.326-.663.364-.767.653-1.31 1.326-1.767 1.107.085 1.65.404 2.21 1.104.93.254 1.265.697 2.43.884.434.366 1.02.408 0 .663-.692.367-1.563.443-2.65.443-1.14.082-1.955.333-2.653.663-1.48 0-1.243.05-1.99-1.326z" transform="matrix(1.477 0 0 1.545 -229.52 -480.078)" stroke="#000" stroke-width=".875" fill="#c4c4c2"/> - <path d="M302.576 151.54v.34c0-.92-.02-.45.327 1.366.54 1.145.653 2.373.653 4.097.857-.64 1.572-1.916 1.96-3.073 0-2.695-.366-2.536-2.94-2.73zm12.084 39.25h.327c-.96 0-.42.06 1.306-1.024 1.117-.778 2.03-1.93 3.592-2.39 1.51-1.24 2.673-1.82 4.242-2.388.766-.367 1.44-1.005 2.286-.34-.243 1.683-.522 2.32-1.96 3.07-.742.973-1.912 1.54-2.936 2.048-1.062.488-2.23.513-2.612 1.707-1.776.817-1.994.68-4.244-.683zm6.205 9.902c.583-.46 2.627-2.592 3.59-3.412 1.09-1.503 2.193-2.653 3.265-3.414.952-1.465 2.17-2.446 2.94-3.755.906-1.147 1.573-2.12 2.61-3.412 0 1.492-.136 3.47.325 4.437 0 2.062-.227 2.626-.978 4.096-.74 1.21-1.294 2.01-2.938 2.732-1.484.822-2.373 1.11-3.592 2.047-.93.597-1.897 1.192-2.94 1.706-.932.42-.504.236-2.283-1.024zm-10.119 7.848h.326c-.96 0-.42.058 1.306-1.025 1.393-1.457 2.503-1.963 4.245-2.73 1.325-.108 2.928-.452 3.917-1.025.79-.146 1.34-.648 1.958 0 1.025 1.45 1.307 1.858-.327 2.73-.78.694-2.158 1.392-3.262 1.708-.815.702-2.43.746-3.918 1.024-1.334 0-2.075.157-2.612-.683l2.612.682c-1.334 0-2.075.157-4.244-.683zm14.034 0v-.342c0 .953-.04.448.653-1.366 1.224-1.91 1.684-2.963 3.265-3.414.74-.936 2.023-1.178 3.59-1.707.59 1.027.137 2.223 0 3.415-.425 1.275-1.59 2.174-2.284 3.073-1.018.723-1.433 1.418-2.938 1.706-1.246 0-.585-.032-2.286-1.365z" fill="#bcbcbc"/> - <path d="M292.788 164.16c0 .942-.73 1.706-1.632 1.706-.9 0-1.632-.764-1.632-1.707 0-.944.73-1.708 1.632-1.708.902 0 1.632.764 1.632 1.707z"/> - </g> - <g stroke-opacity=".996" fill-rule="evenodd" fill-opacity=".996" stroke="#002b0d" stroke-width="1pt" fill="#005120"> - <path d="M351.79 479.6h.884c-2.77 0-1.115-.185 3.535 3.535 1.947-1.623 1.924-1.842 3.535.884.93 1.55 1.203-.16 2.65-1.768.7 3.21 1.146 6.578 3.537 3.535 2.73 0 5.59-.227 7.07.884 1.79 3.326 1.205-.563 2.653.885 3.892.467 3.818-3.338 8.057-4.322 2.635 3.293 3.79.76 7.072-.883 2.438.682 4.736 4.38 5.2.785 1.996-3.256 2.17-2.98 3.536 0 1.94 1.748 2.76-.874 4.42-1.767 2.958 1.73 6.258 1.97 10.606.884.736 2.944 2.592 1.667 4.42.883 3.91 1.643 5.273 2.146 9.722 0 2.204-2.604.956.073 2.65 1.768 3.297-1.023 2.387-1.24 6.19-.884 3.82 0 4.13-.093 5.302-2.652 1.92 1.92 2.614 3.304 5.303.884 4.12.12 2.846.52 5.304-.884 1.818 4.026 2.245 1.117 4.42 2.65-1.433 3.632-3.633 5.335-6.188 7.072-1.7 2.816-2.764 5.857-6.188 7.072-2.498 2.548-5.16 4.025-7.955 6.187-3.832.957-8.05.883-12.375.883h-37.12c-2.64 1.32-6.96 1.948-10.608 2.65-4.075 0-8.694.05-11.49-.883-1.895-1.894-5.22-4.01-7.07-6.187-1.875-1.51-1.93-4.46-3.537-6.187-1.48-2.53-1.936-6.486-3.535-8.84V479.6z" transform="matrix(1.477 0 0 1.545 -222.997 -481.43)"/> - <path d="M437.52 487.56v.884c0-2.47.11-1.158-1.768 3.535-.38 1.14-1.212 1.407-2.652 1.767m-3.53-2.656h.884c-3.273 3.09-5.476 4.515-6.188 7.955l6.188-7.955c-3.273 3.09-5.476 4.515-6.188 7.955m-7.076-12.365c0 .08-.124 3.153-.884 4.42m-2.646 1.76v.884-.884zm-7.07-5.3h.884-.884c.294 0 .59 0 0 0zm-49.5 0c.422 0 2.16 2.806 4.42 4.42-.563 2.585-1.427 5.577 0 7.954m2.65-7.074c.422 0 2.16 2.807 4.42 4.42l-4.42-4.42c.422 0 2.16 2.807 4.42 4.42v.884c0-2.73-.227-5.59.883-7.072.983 1.663 2.224 4.337 2.652 1.768 4.978-.178 7.38-1.576 10.607-2.65 0 1.3-.21.674.884 1.766m60.104-3.536h.884c-1.667 1.39-2.946 4.222-4.42 6.187m-32.704-8.837h7.07" transform="matrix(1.477 0 0 1.545 -222.997 -481.43)"/> - </g> - <path d="M293.61 279.342c-15.702 0-20.906 16.41-36.61 16.41-.302 0-.588-.024-.883-.035v.993c-.06 11.375.835 21.97 2.466 31.864 14.485-1.058 19.866-16.41 35.028-16.41 15.704 0 20.945 16.446 36.65 16.446s20.943-16.447 36.646-16.447 20.944 16.447 36.648 16.447 20.944-16.447 36.647-16.447c15.123 0 20.52 15.244 34.92 16.373 1.724-10.158 2.635-21.07 2.574-32.784v-.037c-.294.012-.58.037-.883.037-15.702 0-20.906-16.41-36.61-16.41s-20.944 16.41-36.647 16.41-20.944-16.41-36.648-16.41-20.944 16.41-36.647 16.41-20.944-16.41-36.647-16.41zm0 64.064c-12.214 0-18.09 9.902-27.485 14.313a151.431 151.431 0 0 0 11.664 24.836c4.46-3.374 9.202-6.292 15.822-6.292 15.695-.012 20.934 16.4 36.64 16.4 15.705 0 20.945-16.41 36.65-16.41 15.702 0 20.943 16.41 36.646 16.41s20.944-16.41 36.648-16.41c6.472 0 11.15 2.794 15.527 6.07a152.782 152.782 0 0 0 11.7-24.725c-9.244-4.47-15.123-14.203-27.227-14.203-15.703 0-20.944 16.41-36.647 16.41s-20.945-16.41-36.65-16.41c-15.702 0-20.943 16.41-36.646 16.41s-20.944-16.41-36.648-16.41zm73.284 64.052c-15.703 0-20.944 16.448-36.647 16.448-14.85 0-20.347-14.703-34.182-16.3 18.49 20.597 39.458 33.068 53.757 39.92 4.836-3.752 9.844 4.564 17.072 4.564 7.178 0 12.16-8.36 16.963-4.636 14.14-6.885 34.853-19.375 53.242-39.775-13.384 1.956-18.932 16.225-33.558 16.225-15.703 0-20.944-16.447-36.648-16.447z" fill-rule="evenodd" fill="#fff"/> - <g transform="translate(-526.915 21.78) scale(1.177)"> - <path d="M332.54 541.35c1.744-.58 10.173-3.197 10.464-2.907.29.29 16.278 15.697 16.278 15.697l-13.37 2.616-13.372-15.406z" stroke-opacity=".996" transform="matrix(1.255 0 0 1.312 259.35 -430)" stroke="#512007" stroke-width=".475" fill="none"/> - <path d="M413.64 471.01c.29-4.65 8.72-31.103 8.72-31.103m-5.82 31.413c0-.29 6.686-31.127 6.686-31.127m-4.396 31.177c.29-1.744 5.558-31.175 5.558-31.175M413.93 467.23c1.453-.872 5.813-2.035 5.813-2.035m-3.783-2.615c1.453 0 4.36-1.163 4.36-1.163m-3.49-2.327c0-.29 4.36-1.163 4.36-1.163m-3.78-3.197l4.65-.872m-2.61-2.908c0 .29 3.197.29 3.197.29m-2.327-3.78c.58 0 3.197.58 3.197.58" stroke-opacity=".996" transform="matrix(1.063 0 0 1.03 276.8 -177.96)" stroke="#512007" stroke-width=".594" fill="none"/> - <path d="M413.64 471.01c.29-4.65 8.72-31.103 8.72-31.103m-5.82 30.223c0-.29 6.686-29.94 6.686-29.94m-3.776 27.62c.29-1.744 4.94-27.614 4.94-27.614m-10.46 27.034c1.453-.872 5.813-2.035 5.813-2.035m-3.783-2.615c1.453 0 4.36-1.163 4.36-1.163m-3.49-2.327c0-.29 4.36-1.163 4.36-1.163m-3.78-3.197l4.65-.872m-2.61-2.908c0 .29 3.197.29 3.197.29m-2.327-3.78c.58 0 3.197.58 3.197.58" stroke-opacity=".996" transform="matrix(-1.255 0 0 1.762 1290.4 -502.06)" stroke="#512007" stroke-width=".41" fill="none"/> - <path d="M413.64 471.01c.29-4.65 8.72-31.103 8.72-31.103m-5.82 30.223c0-.29 6.686-29.94 6.686-29.94m-3.776 27.62c.29-1.744 4.94-27.614 4.94-27.614m-10.46 27.034c1.453-.872 5.813-2.035 5.813-2.035m-3.783-2.615c1.453 0 4.36-1.163 4.36-1.163m-3.49-2.327c0-.29 4.36-1.163 4.36-1.163m-3.78-3.197l4.65-.872m-2.61-2.908c0 .29 3.197.29 3.197.29m-2.327-3.78c.58 0 3.197.58 3.197.58" stroke-opacity=".996" transform="matrix(-1.255 0 0 1.312 1321.3 -301.92)" stroke="#512007" stroke-width=".475" fill="none"/> - <path d="M395.32 572.16c0-.29.872-72.96.872-72.96s2.616-.29 2.616 0-.29 72.67-.58 72.96-3.2.58-2.908 0zm28.49-69.76c0 .582-.582 61.333-.582 61.333l-2.035 2.326.582-63.66h2.035z" stroke-opacity=".996" fill-rule="evenodd" transform="matrix(1.255 0 0 1.312 259.35 -430)" stroke="#512007" stroke-width=".475" fill="#dd8b59"/> - <path d="M363.06 560.24s2.907 29.94 36.335 29.068 42.73-30.23 42.73-30.23-14.244-.582-14.535-.582c-.29 0-11.627 13.953-26.16 13.662s-19.185-3.78-22.383-6.685c-3.197-2.907-6.104-7.267-6.104-7.267l-16.86-6.686.873 6.395 6.104 2.325zm90.24-3.11c-.29-.872-1.007-3.866-1.007-3.866v-3.488l1.61-3.532s-25.29 3.623-25.29 3.914c0-.335-.156 6.885-.156 6.885l24.843.087z" stroke-opacity=".996" fill-rule="evenodd" transform="matrix(1.255 0 0 1.312 259.35 -430)" stroke="#512007" stroke-width=".475" fill="#dd8b59"/> - <path d="M448.52 549.78l-.58 6.104h4.068l-.29-6.104h-3.198zm-4.36.29l-.29 6.394 2.615-.29.29-6.104h-2.615zm-4.36 6.39v-4.94l2.616-.873.29 4.94-2.906.873zm-4.95-.28l.582-4.36 2.906.29.29 4.65-3.778-.58zm-5.52 0l.29-3.78 2.908-.29v4.36l-3.198-.29zm-67.44 3.77c.872 0 7.558 1.453 7.558 1.453l6.976 9.302" stroke-opacity=".996" transform="matrix(1.255 0 0 1.312 259.35 -430)" stroke="#512007" stroke-width=".475" fill="none"/> - <path d="M366.84 561.12c.29.29 6.104 19.766 34.01 19.766s34.59-22.09 34.59-22.09" stroke-opacity=".996" transform="matrix(1.255 0 0 1.312 259.35 -430)" stroke="#512007" stroke-width=".475" fill="none"/> - <path d="M439.8 559.37s-13.37 29.068-38.95 27.033c-25.58-2.034-29.65-11.627-31.685-16.568-2.035-4.942-3.197-9.01-3.197-9.01" stroke-opacity=".996" transform="matrix(1.255 0 0 1.312 259.35 -430)" stroke="#512007" stroke-width=".475" fill="none"/> - <path d="M373.23 558.21c.29-1.745.29-54.357.29-54.357l-1.744-.29-.29 53.775 1.744.872zm-41.57-17.15l22.09 10.755-.58 1.453s-21.22-9.883-21.22-10.174c0-.29.29-1.453-.29-2.034z" stroke-opacity=".996" fill-rule="evenodd" transform="matrix(1.255 0 0 1.312 259.35 -430)" stroke="#512007" stroke-width=".475" fill="#dd8b59"/> - <path d="M341.84 537.86c0 .872 3.198 18.603 3.198 18.603s2.035.29 2.035 0-3.49-18.312-3.49-18.312l-1.743-.29zm20.34.58c1.163 0 20.93-3.197 20.93-3.197l-.292 3.197-19.475 2.035-1.163-2.035z" stroke-opacity=".996" fill-rule="evenodd" transform="matrix(1.255 0 0 1.312 259.35 -430)" stroke="#512007" stroke-width=".475" fill="#dd8b59"/> - <path d="M365.09 514.32c.58 0 6.976 3.198 9.592 2.326s.872-2.907 1.453-2.907c.582 0 2.616 1.452 3.78.29 1.162-1.163 2.034-4.65 1.453-4.36-.582.29-15.988 5.813-16.278 4.65z" stroke-opacity=".996" fill-rule="evenodd" transform="matrix(1.255 0 0 1.312 259.35 -430)" stroke="#512007" stroke-width=".475" fill="#fecf3e"/> - <path d="M362.48 521.58c1.163.29 23.836-6.104 23.836-6.104s0 2.035-.29 2.035-23.546 6.105-23.546 6.105v-2.035z" stroke-opacity=".996" fill-rule="evenodd" transform="matrix(1.255 0 0 1.312 259.35 -430)" stroke="#512007" stroke-width=".475" fill="#dd8b59"/> - <path d="M415.09 512.57s1.454 3.488 2.907 2.907 2.907-1.744 2.907-1.744 1.163 2.907 3.197 2.325c2.036-.58 3.2-3.78 3.2-3.78s2.033.583 2.905.292c.873-.29 2.035-4.94 2.035-4.94l-17.15 4.94zm-1.75 28.2c-.29.58 1.454 2.035 2.907 2.035s2.035-2.035 2.325-1.454c.29.583.29 3.2 4.07 2.327s3.78-3.488 3.78-3.488-1.164.87 1.452 1.16c2.616.292 5.232-3.778 4.942-3.778-.29 0-18.894 3.49-19.476 3.198z" stroke-opacity=".996" fill-rule="evenodd" transform="matrix(1.255 0 0 1.312 259.35 -430)" stroke="#512007" stroke-width=".475" fill="#fecf3e"/> - <path d="M363.35 513.15c-.29 1.163.29 2.617.29 2.617l18.894-6.395s.872-1.454 0-1.454-19.475 5.814-19.184 5.232zm25-4.07c.58 0 19.475-6.104 19.475-6.104s.29 2.616 0 2.616-17.73 5.232-17.73 5.232l-1.745-1.744z" stroke-opacity=".996" fill-rule="evenodd" transform="matrix(1.255 0 0 1.312 259.35 -430)" stroke="#512007" stroke-width=".475" fill="#dd8b59"/> - <path d="M413.34 521.88s-2.907 3.197-2.035 7.557c.872 4.36 2.035 8.14 2.326 8.14s3.49-5.814 6.977-6.105 9.883 3.198 9.883 3.198-.872-6.977-.58-10.174c.29-3.198 5.23-8.72 5.23-8.72l-21.8 6.104z" stroke-opacity=".996" fill-rule="evenodd" transform="matrix(1.255 0 0 1.312 259.35 -430)" stroke="#512007" stroke-width=".475" fill="#fecf3e"/> - <path d="M386.89 516.64s-.58 2.616-.29 2.616 24.707-6.395 24.707-6.395v-1.743l-24.417 5.523z" stroke-opacity=".996" fill-rule="evenodd" transform="matrix(1.255 0 0 1.312 259.35 -430)" stroke="#512007" stroke-width=".475" fill="#dd8b59"/> - <path d="M355.5 551.82s-5.813-.872-5.523.58c.29 1.454 2.907 2.908 3.198 3.78.29.872-.872 4.07.872 3.78 1.744-.292 3.488-1.455 3.488-2.327s-.29-4.94-.29-4.94l-1.745-.873z" stroke-opacity=".996" fill-rule="evenodd" fill-opacity=".996" transform="matrix(1.255 0 0 1.312 259.35 -430)" stroke="#512007" stroke-width=".475" fill="#b6b6b4"/> - <path d="M387.76 537.28v2.034l20.93-2.906-.582-1.454-20.348 2.326z" stroke-opacity=".996" fill-rule="evenodd" transform="matrix(1.255 0 0 1.312 259.35 -430)" stroke="#512007" stroke-width=".475" fill="#dd8b59"/> - <path d="M363.06 540.77c.29 0 0 2.616 2.325 2.035 2.326-.582 2.907-2.035 2.907-2.035s.58 3.197 3.78 2.907c3.196-.29 4.94-3.78 4.94-3.78s.29 2.617 2.326 1.745 2.616-2.907 2.616-2.907l-18.313 2.616-.58-.58zm0-17.15s-2.616.872-1.744 6.104 2.907 8.14 3.197 8.14c.29 0 2.616-4.942 6.104-5.814 3.49-.873 9.593 2.616 9.593 2.616s-.582-4.65.29-9.01c.873-4.362 3.78-7.56 3.78-7.56s-20.348 5.524-21.22 5.524z" stroke-opacity=".996" fill-rule="evenodd" transform="matrix(1.255 0 0 1.312 259.35 -430)" stroke="#512007" stroke-width=".475" fill="#fecf3e"/> - <path d="M411.89 538.73l.29 1.744s20.93-2.616 20.93-2.907c0-.29 0-2.034-.29-2.034-.292 0-20.64 3.488-20.93 3.197zm-.29-18.6l.29 2.034 24.708-6.685s.582-1.745.29-1.745-24.707 7.267-25.288 6.395z" stroke-opacity=".996" fill-rule="evenodd" transform="matrix(1.255 0 0 1.312 259.35 -430)" stroke="#512007" stroke-width=".475" fill="#dd8b59"/> - <path d="M414.22 510.83s-.29 1.744 0 1.744 18.313-4.36 18.313-4.65c0-.29 1.744-2.036.29-1.745-1.453.29-18.02 5.522-18.603 4.65zm38.66 33.72l-18.03-28.49m-2.32 19.77c.29-.872 1.163-18.312 1.163-18.312" stroke-opacity=".996" transform="matrix(1.255 0 0 1.312 259.35 -430)" stroke="#512007" stroke-width=".475" fill="none"/> - <path d="M388.93 509.96c1.163.29 3.198 3.197 4.36 2.616 1.163-.58 2.907-2.325 2.907-2.325s-.29 3.49 2.035 2.907c2.325-.58 2.616-2.906 2.616-2.906s1.744.873 3.197 0c1.454-.87 2.907-5.232 2.326-5.232s-16.858 5.233-17.44 4.942zm-.58 8.43c0 .58-2.907 5.232-2.035 9.592s2.616 8.43 2.907 8.43 4.65-4.65 8.43-5.523c3.778-.873 9.3 2.906 9.01 2.906-.29 0-1.453-4.36-1.453-7.558 0-3.198 4.36-13.08 4.36-13.08l-21.22 5.232zm0 20.93c0 .29.872 2.326 2.907 2.326 2.034 0 2.325-2.035 2.325-2.035s-.29 3.49 2.907 3.2c3.196-.292 4.36-3.49 4.36-3.49s.29 1.745 2.906.873c2.616-.873 6.104-3.78 5.813-3.78-.29 0-20.93 3.78-21.22 2.907z" stroke-opacity=".996" fill-rule="evenodd" transform="matrix(1.255 0 0 1.312 259.35 -430)" stroke="#512007" stroke-width=".475" fill="#fecf3e"/> - <use xlink:href="#k" transform="translate(-6.564 7.275)" height="496.063" width="992.126"/> - <use xlink:href="#k" transform="translate(6.564 3.758)" height="496.063" width="992.126"/> - <use xlink:href="#k" transform="translate(0 11.033)" height="496.063" width="992.126"/> - <path id="k" d="M408.98 476.96a1.89 1.89 0 1 1-3.78 0 1.89 1.89 0 0 1 3.78 0z" stroke-opacity=".996" fill-rule="evenodd" fill-opacity=".996" transform="matrix(.04 -1.072 1.024 .043 251.6 667.92)" stroke="#512007" stroke-width=".581" fill="#be0f17"/> - <path d="M398.23 500.07c0-.29 9.01 3.78 9.01 4.07 0 .29 31.975 42.73 32.266 42.73m-15.986-42.73l8.14 3.49 2.615 6.393M372.94 503.56c-.29 0 9.01 6.976 9.01 6.976l1.164 5.814M341.26 546c4.07-1.744 32.265-26.452 32.265-26.452M333.7 541.35c3.49-2.907 31.684-26.742 31.684-26.742m21.216 4.072l29.94 49.706m-3.53-29.156s3.532 11.71 7.02 13.455 7.557 4.65 7.557 4.65" stroke-opacity=".996" transform="matrix(1.255 0 0 1.312 259.35 -430)" stroke="#512007" stroke-width=".475" fill="none"/> - <path d="M412.61 539.48s2.48 13.793 5.97 16.41 6.976 5.522 6.976 5.522" stroke-opacity=".996" transform="matrix(1.255 0 0 1.312 259.35 -430)" stroke="#512007" stroke-width=".475" fill="none"/> - <path d="M390.96 439.03s3.488 19.185 10.465 23.545c6.976 4.36 12.79 8.14 12.79 8.14" stroke-opacity=".996" transform="matrix(1.255 0 0 1.312 256.26 -299.49)" stroke="#512007" stroke-width=".475" fill="none"/> - <path d="M390.67 438.74s7.557 15.116 13.952 19.767c6.395 4.65 15.115 9.01 15.115 9.01M366.26 439.9c2.034 3.488 1.744 10.174 4.07 12.5 2.324 2.325 5.813 7.557 5.813 7.557" stroke-opacity=".996" transform="matrix(1.255 0 0 1.312 256.26 -299.49)" stroke="#512007" stroke-width=".475" fill="none"/> - <path d="M366.84 440.19c1.163 1.744 4.406 10.428 6.395 13.08 1.454 2.326 16.278 17.15 16.278 17.15" stroke-opacity=".996" transform="matrix(1.255 0 0 1.312 256.26 -299.49)" stroke="#512007" stroke-width=".475" fill="none"/> - <path d="M384.57 471.15a2.18 2.18 0 1 1-4.36 0 2.18 2.18 0 0 1 4.36 0zm10.75 4.65a1.89 1.89 0 1 1-3.78 0 1.89 1.89 0 0 1 3.78 0zm13.66 1.16a1.89 1.89 0 1 1-3.78 0 1.89 1.89 0 0 1 3.78 0zm11.92-4.5c0 .963-.716 1.744-1.6 1.744-.882 0-1.597-.78-1.597-1.744 0-.963.715-1.744 1.598-1.744.884 0 1.6.78 1.6 1.744zm9.59-5.67c0 .883-.846 1.6-1.89 1.6s-1.89-.717-1.89-1.6c0-.883.847-1.6 1.89-1.6s1.89.717 1.89 1.6z" stroke-opacity=".996" fill-rule="evenodd" transform="matrix(1.255 0 0 1.312 256.26 -299.49)" stroke="#512007" stroke-width=".475"/> - <path d="M374.1 404.44c-.872.582-15.406 4.07-13.37 3.78 2.033-.29 13.66 2.906 13.37 2.034s0-5.232 0-5.814zm24.71-4.36c-.582 0-9.012 3.198-8.72 3.198s9.592 2.616 9.3 2.034c-.29-.58-.29-4.36-.58-5.232zm25.29 2.91c-.582.29-10.465 2.616-8.72 2.907s8.43 2.616 8.43 2.035c0-.582 0-4.65.29-4.942z" stroke-opacity=".996" fill-rule="evenodd" fill-opacity=".996" transform="matrix(1.255 0 0 1.312 256.26 -299.49)" stroke="#512007" stroke-width=".475" fill="red"/> - <path d="M413.64 471.01c.29-4.65 8.72-31.103 8.72-31.103m-5.82 30.223c0-.29 6.686-29.94 6.686-29.94m-3.776 27.62c.29-1.744 4.94-27.614 4.94-27.614m-10.46 27.034c1.453-.872 5.813-2.035 5.813-2.035m-3.783-2.615c1.453 0 4.36-1.163 4.36-1.163m-3.49-2.327c0-.29 4.36-1.163 4.36-1.163m-3.78-3.197l4.65-.872m-2.61-2.908c0 .29 3.197.29 3.197.29m-2.327-3.78c.58 0 3.197.58 3.197.58" stroke-opacity=".996" transform="matrix(1.255 0 0 1.312 256.26 -299.49)" stroke="#512007" stroke-width=".475" fill="none"/> - <path d="M413.64 471.01c.29-4.65 8.72-31.103 8.72-31.103m-5.82 31.413c0-.29 6.686-31.127 6.686-31.127m-4.396 31.177c.29-1.744 5.558-31.175 5.558-31.175M413.93 467.23c1.453-.872 5.813-2.035 5.813-2.035m-3.783-2.615c1.453 0 4.36-1.163 4.36-1.163m-3.49-2.327c0-.29 4.36-1.163 4.36-1.163m-3.78-3.197l4.65-.872m-2.61-2.908c0 .29 3.197.29 3.197.29m-2.327-3.78c.58 0 3.197.58 3.197.58" stroke-opacity=".996" transform="matrix(1.255 0 0 1.363 225.31 -323.36)" stroke="#512007" stroke-width=".475" fill="none"/> - <path d="M413.64 471.01c.29-4.65 8.72-31.103 8.72-31.103m-5.82 30.223c0-.29 6.686-29.94 6.686-29.94m-3.776 27.62c.29-1.744 4.94-27.614 4.94-27.614m-10.46 27.034c1.453-.872 5.813-2.035 5.813-2.035m-3.783-2.615c1.453 0 4.36-1.163 4.36-1.163m-3.49-2.327c0-.29 4.36-1.163 4.36-1.163m-3.78-3.197l4.65-.872m-2.61-2.908c0 .29 3.197.29 3.197.29m-2.327-3.78c.58 0 3.197.58 3.197.58" stroke-opacity=".996" transform="matrix(-1.255 0 0 1.32 1259.2 -307.28)" stroke="#512007" stroke-width=".474" fill="none"/> - <path d="M426.42 558.5l27.614.582.29-2.035-28.486-.29.582 1.743zm1.17-7.27c3.198 0 27.324-4.65 27.324-4.65s.872-2.907 0-2.907-27.324 5.523-27.324 5.523v2.034z" stroke-opacity=".996" fill-rule="evenodd" transform="matrix(1.255 0 0 1.312 259.35 -430)" stroke="#512007" stroke-width=".475" fill="#dd8b59"/> - <use xlink:href="#k" transform="translate(0 5.516)" height="496.063" width="992.126"/> - </g> -</svg> diff --git a/img/flags/1x1/fm.svg b/img/flags/1x1/fm.svg deleted file mode 100644 index ee33a4c..0000000 --- a/img/flags/1x1/fm.svg +++ /dev/null @@ -1,11 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" height="512" width="512" viewBox="0 0 512 512"> - <defs> - <clipPath id="a"> - <path fill-opacity=".67" d="M244.16 0h496.06v496.06H244.16z"/> - </clipPath> - </defs> - <g fill-rule="evenodd" clip-path="url(#a)" transform="translate(-252) scale(1.032)" stroke-width="1pt"> - <path fill="#6797d6" d="M0 0h992.13v496.06H0z"/> - <path fill="#fff" d="M507.845 84.45l38.874-.027-31.47 21.477 12.04 34.786-31.43-21.528-31.433 21.523 12.047-34.78-31.464-21.487 38.874.036 11.98-34.804m11.982 362.97l38.874.026-31.47-21.477 12.04-34.786-31.43 21.527-31.433-21.523 12.047 34.78-31.464 21.488 38.874-.036 11.98 34.803M346.08 230.102l37.168-11.39-23.816 29.738 21.685 29.747-36.352-11.398L321 296.57l1.35-36.783-36.37-11.35 37.185-11.33 1.283-36.784m321.102 29.779l-37.17-11.39 23.817 29.738-21.686 29.747 36.353-11.398 23.766 29.77-1.352-36.783 36.37-11.35-37.184-11.33-1.283-36.784"/> - </g> -</svg> diff --git a/img/flags/1x1/fo.svg b/img/flags/1x1/fo.svg deleted file mode 100644 index 8be250d..0000000 --- a/img/flags/1x1/fo.svg +++ /dev/null @@ -1,12 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" height="512" width="512" viewBox="0 0 512 512"> - <defs> - <clipPath id="a"> - <path fill-opacity=".67" d="M0 0h512v512H0z"/> - </clipPath> - </defs> - <g clip-path="url(#a)" fill-rule="evenodd" stroke-width="0"> - <path fill="#fff" d="M-78.015 0h708.18v512h-708.18z"/> - <path d="M-75.9 199.11h198.29V0H235.7v199.11h396.58v113.78H235.7V512H122.39V312.89H-75.9V199.11z" fill="#003897"/> - <path d="M-75.9 227.56h226.62V0h56.653v227.56h424.91v56.89h-424.91v227.56H150.72V284.45H-75.9v-56.89z" fill="#d72828"/> - </g> -</svg> diff --git a/img/flags/1x1/fr.svg b/img/flags/1x1/fr.svg deleted file mode 100644 index 2385562..0000000 --- a/img/flags/1x1/fr.svg +++ /dev/null @@ -1,7 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" height="512" width="512" viewBox="0 0 512 512"> - <g fill-rule="evenodd" stroke-width="1pt"> - <path fill="#fff" d="M0 0h512.005v512H0z"/> - <path fill="#00267f" d="M0 0h170.667v512H0z"/> - <path fill="#f31830" d="M341.333 0H512v512H341.333z"/> - </g> -</svg> diff --git a/img/flags/1x1/ga.svg b/img/flags/1x1/ga.svg deleted file mode 100644 index 621ef95..0000000 --- a/img/flags/1x1/ga.svg +++ /dev/null @@ -1,7 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" height="512" width="512" viewBox="0 0 512 512"> - <g fill-rule="evenodd"> - <path fill="#ffe700" d="M512.004 511.993H0V0h512.004z"/> - <path fill="#36a100" d="M512.004 170.664H0V0h512.004z"/> - <path fill="#006dbc" d="M512.004 511.993H0V341.33h512.004z"/> - </g> -</svg> diff --git a/img/flags/1x1/gb-eng.svg b/img/flags/1x1/gb-eng.svg deleted file mode 100644 index 0141bfd..0000000 --- a/img/flags/1x1/gb-eng.svg +++ /dev/null @@ -1,5 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" height="512" width="512" viewBox="0 0 512 512"> - <path fill="#fff" d="M0 0h512v512H0z"/> - <path fill="#ce1124" d="M215.04 0h81.92v512h-81.92z"/> - <path fill="#ce1124" d="M0 215.04h512v81.92H0z"/> -</svg> diff --git a/img/flags/1x1/gb-nir.svg b/img/flags/1x1/gb-nir.svg deleted file mode 100644 index f35c38d..0000000 --- a/img/flags/1x1/gb-nir.svg +++ /dev/null @@ -1,158 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" height="512" width="512" viewBox="0 0 512 512"> - <rect height="512" width="512" rx="0" ry="0" fill="#fff" fill-rule="evenodd"/> - <rect id="a" y="204.8" ry="0" rx="0" height="102.4" width="512" fill="#c00" fill-rule="evenodd"/> - <use xlink:href="#a" height="300" width="600" transform="matrix(0 1 -.9375 0 496 0)"/> - <path d="M291.205 156.384c3.08-5.142 1.239-8.462-3.42-9.488 0 0-14.867 5.084-30.924 5.642-16.056.558-35.132-4.308-35.132-4.308-3.421 2.29-2.586 7.724-.89 11.116 0 0 16.809 5.957 35.944 5.372 12.153-.371 23.67-3.68 30.13-5.872 3.712-1.26 4.294-2.404 4.292-2.462z" fill="#ebeae3" fill-rule="evenodd" stroke="#000" stroke-width=".539"/> - <path d="M320 389.552l-30.857-64.106-70.946 5.33L258.285 272l-40.088-58.776 70.946 5.33L320 154.448l30.857 64.106 70.946-5.33L381.715 272l40.088 58.776-70.946-5.33z" transform="matrix(1 0 0 1.06667 -64 -34.133)" fill="#fff" stroke="#161111" stroke-width="1.6"/> - <path d="M255.54 130.376c38.763 6.816 37.378 8.747 37.378 8.747l10.117-32.26s1.065-6.362-1.704-10.224-10.543-1.704-10.543-1.704-1.065-5.225-4.472-6.475c-3.408-1.25-16.08 4.885-20.021 6.248-3.94 1.363-5.964 2.726-11.501 2.613-5.538-.114-15.442-5.34-17.252-6.362-1.81-1.022-4.473-2.044-6.922-1.93-2.45.113-5.005.794-6.283 2.612-1.278 1.817-1.278 4.09-1.278 4.09s-2.024-1.364-5.218-1.364c-3.195 0-5.006.455-6.497 2.272-1.49 1.818-3.407 6.93-3.407 6.93l3.62 8.746.213 12.04 7.561 12.723 36.208-6.702z" fill="#b02320" fill-rule="evenodd" stroke="#000" stroke-width="1.347"/> - <path d="M291.674 148.602s1.952 2.483 1.877 3.364c-.075.88-.901 1.681-.901 1.681s.6.64.45 1.602c-.15.96-1.35 1.04-1.35 1.04s.224.881-.526 1.282c-.751.4-3.829 1.12-3.829 1.12s-15.014-4.563-31.078-4.563c-16.065 0-34.983 5.525-34.983 5.525s-1.951-.721-2.026-2.082c-.075-1.362.225-2.322.225-2.322s-1.069.118-1.351-.881c-.396-1.398.15-2.483.15-2.483s-.745.256.075-1.601c.6-1.361 1.501-1.842 1.501-1.842s16.815-6.406 35.958-6.486c19.143-.08 35.808 6.486 35.808 6.646z" fill="#ebeae3" fill-rule="evenodd" stroke="#000" stroke-width=".539"/> - <path d="M212.229 108.262s-.641-2.325.769-4.376c1.41-2.052 3.974-1.915 4.744-1.505.769.41.64 1.368 1.666 1.641 1.026.274 1.795-.547 1.795-.547" fill="none" stroke="#000" stroke-width="1.185"/> - <path d="M305.824 113.705l-5.822 12.849-2.289.428s-1.396-.895-5.38-.6c-2.851.215-3.694.986-3.694.986l5.18-12.807s.403 2.752 1.003 4.37c.763 2.055 3.654 3.982 3.654 3.982s.4-2.459-.361-5.44c-.843-3.297-2.81-7.751-2.81-7.751l10.52 3.983z" fill="#fc0" fill-opacity=".941" fill-rule="evenodd" stroke="#000" stroke-width="1.239"/> - <path fill="#121116" stroke="#121116" stroke-width="1.208" stroke-linejoin="round" d="M252.492 73.771h6.516v29.541h-6.516z"/> - <path d="M212.56 128.251l4.185 9.551s17.81-7.405 38.833-7.267c31.534.208 40.489 6.956 40.489 6.956l4.671-11.835-3.503 2.18-3.602 2.388-4.087 1.66-4.964-.415-4.38-3.425-2.238-4.984-3.699 3.634-6.52 1.557-6.424-1.765-5.645-7.578s-4.205 8.424-9.539 8.928c-7.688.727-12.165-3.945-12.165-3.945s-2.859 6.852-7.592 8.098c-7.494 1.972-13.723-3.738-13.82-3.738z" fill="#f6ca1f" fill-rule="evenodd" stroke="#000" stroke-width="1.023"/> - <g stroke-width="2.243"> - <path d="M430.628 247.41c0 3.607-2.88 6.533-6.44 6.54-3.558.007-6.45-2.907-6.465-6.515-.014-3.607 2.856-6.545 6.415-6.566 3.558-.021 6.462 2.882 6.49 6.49" fill="#eee" stroke="#1e1e1e" stroke-linejoin="round" transform="matrix(.52155 0 0 .55632 59.851 -67.617)"/> - <path d="M279.512 71.89s2.72-.049 2.997-1.229c.276-1.18-.185-2.704-.185-2.704s1.291 1.524.922 2.704c-.368 1.18-.73 1.485-1.66 1.721-.629.16-1.566-.098-2.074-.492z" fill="#a3afb8" fill-rule="evenodd"/> - <path d="M430.628 247.41c0 3.607-2.88 6.533-6.44 6.54-3.558.007-6.45-2.907-6.465-6.515-.014-3.607 2.856-6.545 6.415-6.566 3.558-.021 6.462 2.882 6.49 6.49" fill="#eee" stroke="#1e1e1e" stroke-linejoin="round" transform="matrix(.52155 0 0 .55632 51.676 -63.54)"/> - <path d="M271.337 75.967s2.72-.049 2.997-1.229c.276-1.18-.185-2.704-.185-2.704s1.291 1.524.922 2.704c-.368 1.18-.73 1.485-1.66 1.721-.629.16-1.566-.098-2.074-.492z" fill="#a3afb8" fill-rule="evenodd"/> - <path d="M430.628 247.41c0 3.607-2.88 6.533-6.44 6.54-3.558.007-6.45-2.907-6.465-6.515-.014-3.607 2.856-6.545 6.415-6.566 3.558-.021 6.462 2.882 6.49 6.49" fill="#eee" stroke="#1e1e1e" stroke-linejoin="round" transform="matrix(.52155 0 0 .55632 69.343 -70.008)"/> - <path d="M289.004 69.5s2.72-.05 2.997-1.23c.276-1.18-.185-2.704-.185-2.704s1.291 1.524.922 2.704c-.368 1.18-.73 1.485-1.66 1.721-.629.16-1.566-.098-2.074-.492z" fill="#a3afb8" fill-rule="evenodd"/> - <path d="M430.628 247.41c0 3.607-2.88 6.533-6.44 6.54-3.558.007-6.45-2.907-6.465-6.515-.014-3.607 2.856-6.545 6.415-6.566 3.558-.021 6.462 2.882 6.49 6.49" fill="#eee" stroke="#1e1e1e" stroke-linejoin="round" transform="matrix(.52155 0 0 .55632 80.035 -67.713)"/> - <path d="M299.696 71.794s2.72-.049 2.997-1.229c.276-1.18-.185-2.704-.185-2.704s1.291 1.524.922 2.704c-.368 1.18-.73 1.485-1.66 1.721-.629.16-1.566-.098-2.074-.492z" fill="#a3afb8" fill-rule="evenodd"/> - <path d="M430.628 247.41c0 3.607-2.88 6.533-6.44 6.54-3.558.007-6.45-2.907-6.465-6.515-.014-3.607 2.856-6.545 6.415-6.566 3.558-.021 6.462 2.882 6.49 6.49" fill="#eee" stroke="#1e1e1e" stroke-linejoin="round" transform="matrix(.52155 0 0 .55632 88.184 -60.55)"/> - <path d="M307.845 78.957s2.72-.049 2.997-1.229c.276-1.18-.185-2.704-.185-2.704s1.291 1.524.922 2.704c-.368 1.18-.73 1.485-1.66 1.721-.629.16-1.566-.098-2.074-.492z" fill="#a3afb8" fill-rule="evenodd"/> - <path d="M430.628 247.41c0 3.607-2.88 6.533-6.44 6.54-3.558.007-6.45-2.907-6.465-6.515-.014-3.607 2.856-6.545 6.415-6.566 3.558-.021 6.462 2.882 6.49 6.49" fill="#eee" stroke="#1e1e1e" stroke-linejoin="round" transform="matrix(.52155 0 0 .55632 91.705 -48.798)"/> - <path d="M311.366 90.71s2.72-.05 2.997-1.23c.276-1.18-.185-2.704-.185-2.704s1.291 1.524.922 2.704c-.368 1.18-.73 1.485-1.66 1.721-.629.16-1.566-.098-2.074-.492z" fill="#a3afb8" fill-rule="evenodd"/> - <path d="M430.628 247.41c0 3.607-2.88 6.533-6.44 6.54-3.558.007-6.45-2.907-6.465-6.515-.014-3.607 2.856-6.545 6.415-6.566 3.558-.021 6.462 2.882 6.49 6.49" fill="#eee" stroke="#1e1e1e" stroke-linejoin="round" transform="matrix(.52155 0 0 .55632 90.401 -36.906)"/> - <path d="M310.062 102.601s2.72-.049 2.997-1.229c.276-1.18-.185-2.704-.185-2.704s1.291 1.524.922 2.704c-.368 1.18-.73 1.485-1.66 1.721-.629.16-1.566-.098-2.074-.492z" fill="#a3afb8" fill-rule="evenodd"/> - <path d="M430.628 247.41c0 3.607-2.88 6.533-6.44 6.54-3.558.007-6.45-2.907-6.465-6.515-.014-3.607 2.856-6.545 6.415-6.566 3.558-.021 6.462 2.882 6.49 6.49" fill="#eee" stroke="#1e1e1e" stroke-linejoin="round" transform="matrix(.52155 0 0 .55632 85.446 -26.475)"/> - <path d="M305.107 113.032s2.72-.049 2.997-1.229c.276-1.18-.185-2.704-.185-2.704s1.291 1.524.922 2.704c-.368 1.18-.73 1.485-1.66 1.721-.629.16-1.566-.098-2.074-.492z" fill="#a3afb8" fill-rule="evenodd"/> - <path d="M430.628 247.41c0 3.607-2.88 6.533-6.44 6.54-3.558.007-6.45-2.907-6.465-6.515-.014-3.607 2.856-6.545 6.415-6.566 3.558-.021 6.462 2.882 6.49 6.49" fill="#eee" stroke="#1e1e1e" stroke-linejoin="round" transform="matrix(.52155 0 0 .55632 43.722 -60.41)"/> - <path d="M263.383 79.097s2.72-.049 2.997-1.229c.276-1.18-.185-2.704-.185-2.704s1.291 1.524.922 2.704c-.368 1.18-.73 1.485-1.66 1.721-.629.16-1.566-.098-2.074-.492z" fill="#a3afb8" fill-rule="evenodd"/> - <g stroke-width="2.682"> - <path d="M430.628 247.41c0 3.607-2.88 6.533-6.44 6.54-3.558.007-6.45-2.907-6.465-6.515-.014-3.607 2.856-6.545 6.415-6.566 3.558-.021 6.462 2.882 6.49 6.49" fill="#eee" stroke="#1e1e1e" stroke-linejoin="round" transform="matrix(.43616 0 0 .46523 70.33 -38.804)"/> - <path d="M254.028 77.86s2.274-.04 2.506-1.027c.23-.987-.155-2.262-.155-2.262s1.08 1.275.771 2.262c-.308.987-.61 1.242-1.387 1.44-.527.133-1.311-.083-1.735-.412z" fill="#a3afb8" fill-rule="evenodd"/> - </g> - <g stroke-width="2.682"> - <path d="M430.628 247.41c0 3.607-2.88 6.533-6.44 6.54-3.558.007-6.45-2.907-6.465-6.515-.014-3.607 2.856-6.545 6.415-6.566 3.558-.021 6.462 2.882 6.49 6.49" fill="#eee" stroke="#1e1e1e" stroke-linejoin="round" transform="matrix(.43616 0 0 .46523 70.363 -35.023)"/> - <path d="M254.06 81.642s2.275-.041 2.507-1.028c.23-.987-.155-2.262-.155-2.262s1.08 1.275.771 2.262c-.308.987-.61 1.242-1.387 1.44-.527.133-1.311-.083-1.735-.412z" fill="#a3afb8" fill-rule="evenodd"/> - </g> - <g stroke-width="2.682"> - <path d="M430.628 247.41c0 3.607-2.88 6.533-6.44 6.54-3.558.007-6.45-2.907-6.465-6.515-.014-3.607 2.856-6.545 6.415-6.566 3.558-.021 6.462 2.882 6.49 6.49" fill="#eee" stroke="#1e1e1e" stroke-linejoin="round" transform="matrix(.43616 0 0 .46523 70.558 -29.46)"/> - <path d="M254.256 87.205s2.274-.041 2.506-1.028c.23-.987-.155-2.262-.155-2.262s1.08 1.275.771 2.262c-.308.987-.61 1.242-1.387 1.44-.527.133-1.311-.083-1.735-.412z" fill="#a3afb8" fill-rule="evenodd"/> - </g> - <g stroke-width="2.48"> - <path d="M430.628 247.41c0 3.607-2.88 6.533-6.44 6.54-3.558.007-6.45-2.907-6.465-6.515-.014-3.607 2.856-6.545 6.415-6.566 3.558-.021 6.462 2.882 6.49 6.49" fill="#eee" stroke="#1e1e1e" stroke-linejoin="round" transform="matrix(.47168 0 0 .50313 55.552 -32.923)"/> - <path d="M254.21 93.246s2.46-.044 2.71-1.112c.25-1.067-.167-2.446-.167-2.446s1.167 1.379.834 2.446c-.334 1.068-.661 1.343-1.501 1.557-.57.144-1.418-.09-1.876-.445z" fill="#a3afb8" fill-rule="evenodd"/> - </g> - <path d="M430.628 247.41c0 3.607-2.88 6.533-6.44 6.54-3.558.007-6.45-2.907-6.465-6.515-.014-3.607 2.856-6.545 6.415-6.566 3.558-.021 6.462 2.882 6.49 6.49" fill="#eee" stroke="#1e1e1e" stroke-linejoin="round" transform="matrix(.52155 0 0 .55632 34.4 -38.158)"/> - <path d="M254.061 101.35s2.72-.05 2.997-1.23c.276-1.18-.185-2.704-.185-2.704s1.291 1.524.922 2.704c-.368 1.18-.73 1.485-1.66 1.721-.629.16-1.566-.098-2.074-.492z" fill="#a3afb8" fill-rule="evenodd"/> - <g stroke-width="2.388"> - <path d="M430.628 247.41c0 3.607-2.88 6.533-6.44 6.54-3.558.007-6.45-2.907-6.465-6.515-.014-3.607 2.856-6.545 6.415-6.566 3.558-.021 6.462 2.882 6.49 6.49" fill="#eee" stroke="#1e1e1e" stroke-linejoin="round" transform="matrix(.48982 0 0 .52248 47.727 -13.514)"/> - <path d="M254.025 117.507s2.554-.046 2.814-1.154c.26-1.108-.173-2.54-.173-2.54s1.212 1.432.866 2.54c-.347 1.108-.687 1.395-1.559 1.616-.591.15-1.472-.092-1.948-.462z" fill="#a3afb8" fill-rule="evenodd"/> - </g> - <path d="M430.628 247.41c0 3.607-2.88 6.533-6.44 6.54-3.558.007-6.45-2.907-6.465-6.515-.014-3.607 2.856-6.545 6.415-6.566 3.558-.021 6.462 2.882 6.49 6.49" fill="#eee" stroke="#1e1e1e" stroke-linejoin="round" transform="matrix(.52155 0 0 .55632 24.956 -60.507)"/> - <path d="M244.617 79s2.72-.049 2.997-1.229c.276-1.18-.185-2.704-.185-2.704s1.291 1.524.922 2.704c-.368 1.18-.73 1.485-1.66 1.721-.629.16-1.566-.098-2.074-.492z" fill="#a3afb8" fill-rule="evenodd"/> - <g> - <path d="M430.628 247.41c0 3.607-2.88 6.533-6.44 6.54-3.558.007-6.45-2.907-6.465-6.515-.014-3.607 2.856-6.545 6.415-6.566 3.558-.021 6.462 2.882 6.49 6.49" fill="#eee" stroke="#1e1e1e" stroke-linejoin="round" transform="matrix(.52155 0 0 .55632 16.613 -64.017)"/> - <path d="M236.274 75.49s2.72-.049 2.997-1.229c.276-1.18-.185-2.704-.185-2.704s1.291 1.524.922 2.704c-.368 1.18-.73 1.485-1.66 1.721-.629.16-1.566-.098-2.074-.492z" fill="#a3afb8" fill-rule="evenodd"/> - </g> - <g> - <path d="M430.628 247.41c0 3.607-2.88 6.533-6.44 6.54-3.558.007-6.45-2.907-6.465-6.515-.014-3.607 2.856-6.545 6.415-6.566 3.558-.021 6.462 2.882 6.49 6.49" fill="#eee" stroke="#1e1e1e" stroke-linejoin="round" transform="matrix(.52155 0 0 .55632 8.622 -68.028)"/> - <path d="M228.283 71.48s2.72-.05 2.997-1.23c.276-1.18-.185-2.704-.185-2.704s1.291 1.524.922 2.704c-.368 1.18-.73 1.485-1.66 1.721-.629.16-1.566-.098-2.074-.492z" fill="#a3afb8" fill-rule="evenodd"/> - </g> - <g> - <path d="M430.628 247.41c0 3.607-2.88 6.533-6.44 6.54-3.558.007-6.45-2.907-6.465-6.515-.014-3.607 2.856-6.545 6.415-6.566 3.558-.021 6.462 2.882 6.49 6.49" fill="#eee" stroke="#1e1e1e" stroke-linejoin="round" transform="matrix(.52155 0 0 .55632 -.544 -70.16)"/> - <path d="M219.117 69.347s2.72-.049 2.997-1.229c.276-1.18-.185-2.704-.185-2.704s1.291 1.524.922 2.704c-.368 1.18-.73 1.485-1.66 1.721-.629.16-1.566-.098-2.074-.492z" fill="#a3afb8" fill-rule="evenodd"/> - </g> - <g> - <path d="M430.628 247.41c0 3.607-2.88 6.533-6.44 6.54-3.558.007-6.45-2.907-6.465-6.515-.014-3.607 2.856-6.545 6.415-6.566 3.558-.021 6.462 2.882 6.49 6.49" fill="#eee" stroke="#1e1e1e" stroke-linejoin="round" transform="matrix(.52155 0 0 .55632 -11.355 -67.402)"/> - <path d="M208.306 72.105s2.72-.049 2.997-1.229c.276-1.18-.185-2.704-.185-2.704s1.291 1.524.922 2.704c-.368 1.18-.73 1.485-1.66 1.721-.629.16-1.566-.098-2.074-.492z" fill="#a3afb8" fill-rule="evenodd"/> - </g> - <g> - <path d="M430.628 247.41c0 3.607-2.88 6.533-6.44 6.54-3.558.007-6.45-2.907-6.465-6.515-.014-3.607 2.856-6.545 6.415-6.566 3.558-.021 6.462 2.882 6.49 6.49" fill="#eee" stroke="#1e1e1e" stroke-linejoin="round" transform="matrix(.52155 0 0 .55632 -18.994 -59.254)"/> - <path d="M200.667 80.253s2.72-.049 2.997-1.229c.276-1.18-.185-2.704-.185-2.704s1.291 1.524.922 2.704c-.368 1.18-.73 1.485-1.66 1.721-.629.16-1.566-.098-2.074-.492z" fill="#a3afb8" fill-rule="evenodd"/> - </g> - <g> - <path d="M430.628 247.41c0 3.607-2.88 6.533-6.44 6.54-3.558.007-6.45-2.907-6.465-6.515-.014-3.607 2.856-6.545 6.415-6.566 3.558-.021 6.462 2.882 6.49 6.49" fill="#eee" stroke="#1e1e1e" stroke-linejoin="round" transform="matrix(.52155 0 0 .55632 -22.166 -47.847)"/> - <path d="M197.495 91.66s2.72-.049 2.997-1.229c.276-1.18-.185-2.704-.185-2.704s1.291 1.524.922 2.704c-.368 1.18-.73 1.485-1.66 1.721-.629.16-1.566-.098-2.074-.492z" fill="#a3afb8" fill-rule="evenodd"/> - </g> - <g> - <path d="M430.628 247.41c0 3.607-2.88 6.533-6.44 6.54-3.558.007-6.45-2.907-6.465-6.515-.014-3.607 2.856-6.545 6.415-6.566 3.558-.021 6.462 2.882 6.49 6.49" fill="#eee" stroke="#1e1e1e" stroke-linejoin="round" transform="matrix(.52155 0 0 .55632 -20.756 -35.94)"/> - <path d="M198.905 103.567s2.72-.049 2.997-1.229c.276-1.18-.185-2.704-.185-2.704s1.291 1.524.922 2.704c-.368 1.18-.73 1.485-1.66 1.721-.629.16-1.566-.098-2.074-.492z" fill="#a3afb8" fill-rule="evenodd"/> - </g> - <g> - <path d="M430.628 247.41c0 3.607-2.88 6.533-6.44 6.54-3.558.007-6.45-2.907-6.465-6.515-.014-3.607 2.856-6.545 6.415-6.566 3.558-.021 6.462 2.882 6.49 6.49" fill="#eee" stroke="#1e1e1e" stroke-linejoin="round" transform="matrix(.52155 0 0 .55632 -15.586 -25.16)"/> - <path d="M204.075 114.347s2.72-.049 2.997-1.229c.276-1.18-.185-2.704-.185-2.704s1.291 1.524.922 2.704c-.368 1.18-.73 1.485-1.66 1.721-.629.16-1.566-.098-2.074-.492z" fill="#a3afb8" fill-rule="evenodd"/> - </g> - <g stroke-width="2.832"> - <path d="M430.628 247.41c0 3.607-2.88 6.533-6.44 6.54-3.558.007-6.45-2.907-6.465-6.515-.014-3.607 2.856-6.545 6.415-6.566 3.558-.021 6.462 2.882 6.49 6.49" fill="#eee" stroke="#1e1e1e" stroke-linejoin="round" transform="matrix(.31597 -.0903 .13499 .53737 45.39 32)"/> - <path d="M212.318 128.724s1.636-.519 1.517-1.707c-.118-1.187-.767-2.58-.767-2.58s1.151 1.249 1.214 2.453c.063 1.204-.082 1.56-.587 1.95-.343.263-.974.176-1.377-.116z" fill="#a3afb8" fill-rule="evenodd"/> - </g> - <g stroke-width="2.832"> - <path d="M430.628 247.41c0 3.607-2.88 6.533-6.44 6.54-3.558.007-6.45-2.907-6.465-6.515-.014-3.607 2.856-6.545 6.415-6.566 3.558-.021 6.462 2.882 6.49 6.49" fill="#eee" stroke="#1e1e1e" stroke-linejoin="round" transform="matrix(.31758 .08362 -.125 .54011 195.933 -42.884)"/> - <path d="M298.342 127.777s1.667.388 2.101-.713c.434-1.102.495-2.656.495-2.656s.444 1.687-.046 2.774-.778 1.325-1.397 1.405c-.42.054-.932-.347-1.153-.81z" fill="#a3afb8" fill-rule="evenodd"/> - </g> - </g> - <path d="M252.722 57.4l.243 6.078s-6.757.633-7.033 1.293c-1.313 3.139 1.576 7.373 1.576 7.373s2.272-1.81 8.003-1.81c5.457 0 8.246 1.422 8.246 1.422s1.455-2.458 1.455-4.268c0-1.811-.606-3.622-.606-3.622s-2.79-.388-3.638-.388h-2.425l-.243-6.208-5.578.13z" fill="#b3a192" fill-rule="evenodd" stroke="#000" stroke-width="1.208"/> - <path d="M262.359 66.83c0 .682-.54 1.235-1.207 1.236-.667.002-1.209-.549-1.211-1.23a1.223 1.223 0 0 1 1.201-1.242c.667-.004 1.212.545 1.217 1.226M265.144 67.492c0 .711-.563 1.289-1.26 1.29-.695.002-1.26-.573-1.264-1.284-.003-.712.559-1.291 1.255-1.296.695-.004 1.263.569 1.269 1.28M259.57 66.783c0 .682-.54 1.235-1.207 1.236-.666.002-1.209-.55-1.211-1.23a1.223 1.223 0 0 1 1.201-1.242c.667-.004 1.212.544 1.217 1.226M253.98 66.85c0 .71-.56 1.285-1.255 1.286-.694.002-1.258-.571-1.26-1.28-.004-.71.556-1.288 1.25-1.292.694-.005 1.26.566 1.266 1.276M250.878 67.07c0 .71-.561 1.286-1.255 1.287-.694.002-1.259-.572-1.261-1.281-.003-.71.556-1.287 1.25-1.292.694-.004 1.26.567 1.266 1.276M256.573 63.349c0 .598-.474 1.084-1.06 1.085a1.074 1.074 0 0 1-1.063-1.08 1.074 1.074 0 0 1 1.055-1.09 1.073 1.073 0 0 1 1.068 1.076M256.573 58.305c0 .598-.474 1.084-1.06 1.085a1.074 1.074 0 0 1-1.063-1.08 1.074 1.074 0 0 1 1.055-1.09 1.073 1.073 0 0 1 1.068 1.076M256.573 61.02c0 .6-.474 1.085-1.06 1.086a1.074 1.074 0 0 1-1.063-1.08 1.074 1.074 0 0 1 1.055-1.09 1.073 1.073 0 0 1 1.068 1.076M247.734 67.972c0 .684-.542 1.24-1.212 1.241-.67.002-1.214-.551-1.217-1.236-.003-.685.538-1.242 1.207-1.246.67-.005 1.217.546 1.222 1.23" fill="#f0ddcb" stroke="#121116" stroke-width=".616" stroke-linejoin="round"/> - <path d="M256.845 66.518c0 .749-.595 1.356-1.331 1.358a1.346 1.346 0 0 1-1.336-1.353 1.346 1.346 0 0 1 1.325-1.363 1.346 1.346 0 0 1 1.342 1.347" fill="#916c68" stroke="#4d3126" stroke-width=".616" stroke-linejoin="round"/> - <g stroke-width="2.534"> - <path d="M430.628 247.41c0 3.607-2.88 6.533-6.44 6.54-3.558.007-6.45-2.907-6.465-6.515-.014-3.607 2.856-6.545 6.415-6.566 3.558-.021 6.462 2.882 6.49 6.49" transform="matrix(.386 0 0 .41173 91.842 -53.386)" fill="#eee" stroke="#1e1e1e" stroke-width="3.031" stroke-linejoin="round"/> - <path d="M254.412 49.862s2.013-.036 2.218-.91c.204-.873-.137-2.001-.137-2.001s.955 1.128.683 2.002c-.273.873-.541 1.099-1.229 1.273-.466.119-1.16-.073-1.535-.364z" fill="#a3afb8" fill-rule="evenodd"/> - </g> - <path d="M215.967 138.811s2.222 2.212 2.815 4.188c.592 1.975 1.481 7.269 1.481 7.269s23.259-6.874 34.666-6.321c11.407.553 37.702 6.716 37.702 6.716s.444-3.003.963-6.163c.518-3.16 2.666-6.637 2.666-6.637s-25.11-8.375-40.961-7.585c-15.851.79-23.777 2.607-27.332 3.793-3.556 1.185-12.222 4.82-12 4.74z" fill="#fc0" fill-rule="evenodd" stroke="#000" stroke-width=".539"/> - <path d="M250.661 38.45h10.004s-2.469 1.823-2.971 3.558c-.432 1.493-.303 3.945-.303 3.945s2.728 0 3.94-1.1c1.213-1.1 3.76-3.04 3.76-3.04v13.581s-2.456-2.532-3.941-3.362c-1.785-.998-3.577-1.359-3.577-1.359s0 2.2.848 3.493c.85 1.293 4.244 6.208 4.244 6.208l-14.308.582s3.394-3.817 4.79-6.596c.91-1.811.545-3.687.545-3.687s-2.425 0-3.637.906c-1.213.905-3.335 3.621-3.335 3.621V42.137s.91 2.522 2.91 3.492c2.001.97 3.88.453 3.88.453s.389-2.6-.424-4.204c-.838-1.654-2.607-3.492-2.425-3.427z" fill="#fc0" fill-rule="evenodd" stroke="#000" stroke-width="1.208"/> - <path d="M249.877 81.545s-7.116-.091-13.204-3.933c-6.088-3.84-12.228-7.864-21.264-5.578-1.85.468-8.66 3.658-11.66 13.992-2.106 7.252.343 16.005 2.486 19.938 2.144 3.933 5.6 7.919 5.6 7.919l3.676-2.656s-9.362-8.464-8.247-19.439c1.115-10.975 6.259-13.535 6.259-13.535s6.345-5.305 14.833-.275c8.489 5.03 16.805 7.317 16.805 7.317s7.803 2.012 8.489 1.92c.686-.091-3.944-5.761-3.773-5.67z" fill="#fc0" fill-rule="evenodd" stroke="#121116" stroke-width="1.208"/> - <path d="M210.515 122.709l-3.78-7.928 11.343-4.729s-2.738 3.895-3.39 6.676c-.796 3.398-.522 6.259-.522 6.259s1.043-.835 2.347-3.06c.99-1.689 2.608-7.789 2.608-7.789l5.085 17.386c.04.046-2.614-2.789-4.48-3.125-2.103-.38-4.647.343-4.647.343l-2.999.974-1.565-5.007z" fill="#fc0" fill-rule="evenodd" stroke="#000" stroke-width="1.239"/> - <path d="M262.703 81.402s7.117-.091 13.204-3.933c6.088-3.84 12.228-7.864 21.264-5.578 1.85.468 8.66 3.658 11.66 13.992 2.106 7.252-.342 16.005-2.486 19.938-2.143 3.933-3.601 6.246-3.601 6.246l-4.419-1.692s8.106-7.755 6.991-18.73c-1.114-10.975-6.259-13.535-6.259-13.535s-6.345-5.305-14.833-.275c-8.488 5.03-16.805 7.317-16.805 7.317s-7.803 2.012-8.489 1.92c-.685-.091 3.945-5.761 3.773-5.67z" fill="#fc0" fill-rule="evenodd" stroke="#121116" stroke-width="1.208"/> - <path fill="#fc0" stroke="#121116" stroke-width="1.208" stroke-linejoin="round" d="M259.028 73.89h2.971v29.554h-2.971zM249.024 73.761h3.516v29.554h-3.516z"/> - <path d="M265.212 66.906c0 5.243-4.331 9.496-9.681 9.506-5.35.011-9.699-4.225-9.72-9.468-.021-5.243 4.293-9.513 9.643-9.544 5.35-.031 9.715 4.188 9.758 9.431" fill="#fc0" stroke="#121116" stroke-width="1.208" stroke-linejoin="round"/> - <path d="M246.907 103.197l16.681-.147s-1.956 1.245-3.638 4.43c-1.682 3.186-1.442 5.2-1.442 5.2s2.54-.037 4.325-1.428c1.785-1.392 3.776-3.991 3.776-3.991l-.069 16.402s-1.201-2.087-3.192-3.332c-1.99-1.244-4.805-1.244-4.805-1.244h-5.698s-2.605.164-3.776.988c-1.65 1.163-3.707 3.405-3.707 3.405l-.274-15.487s.823 2.71 3.5 3.808c2.678 1.098 4.188.952 4.188.952s0-3.478-1.373-5.272-4.496-4.21-4.496-4.284z" fill="#fc0" fill-rule="evenodd" stroke="#000" stroke-width="1.023"/> - <path d="M256.201 116.076s2.441 6.075 5.279 8.756c1.652 1.56 6.619 2.736 8.864 2.124 5.047-1.374 8.515-5.68 8.515-5.68s-.18 4.717 2.979 7.317c3.16 2.6 5.687 3.274 8.304 2.504 2.618-.77 10.02-6.644 10.02-6.644l1.535 1.444s-4.245 4.398-8.707 6.732c-2.297 1.202-9.27.534-11.527-1.392-2.257-1.926-3.597-6.592-3.597-6.592s-1.39 3-4.368 4.06c-2.98 1.058-7.073 1.012-10.874-.172-2.558-.798-5.881-4.562-6.513-5.813-.632-1.252-.451-1.926-.451-1.926s-1.875 5.731-5.777 7.295c-3.686 1.476-7.887 1.488-11.457.393-3.608-1.107-3.89-3.259-3.89-3.259s-.27 6.066-8.123 7.8c-7.854 1.733-14.082-4.43-14.082-4.43l1.083-1.733s4.423 5.296 11.193 4.814c6.77-.481 9.027-9.725 9.027-9.725s2.979 4.815 10.923 4.911c7.943.096 10.2-10.977 10.2-10.977l1.444.193z" fill="#f6ca1f" fill-rule="evenodd" stroke="#000" stroke-width=".97"/> - <g fill="#fc0" stroke="#000" stroke-width="2.2"> - <path d="M338.569 336.292s.114-5.3 1.253-6.894c1.616-2.259 3.814-2.35 4.935-2.036 1.384.387 2.82 1.645 2.585 5.326-.235 3.682-1.253 5.484-.156 6.894 1.096 1.41 1.253 2.35 3.368 2.037 2.115-.314 3.055-1.019 2.585-2.977-.47-1.958-1.097.157-1.488-1.488-.392-1.645 2.046-8.752 1.645-13.16-.392-4.31-2.037-7.756-5.327-8.618-3.092-.81-5.719-.783-8.617 1.332-2.78 2.028-6.345 8.695-6.345 8.695l-.079 14.257 5.797-.313-.156-3.055z" fill-rule="evenodd" transform="matrix(.52155 0 0 .55632 60.047 -67.478)"/> - <path d="M327.77 340.13s-2.217-4.816-3.897-5.823c-2.382-1.428-4.435-.636-5.338.099-1.114.907-1.93 2.633-.248 5.916 1.683 3.283 3.335 4.53 2.891 6.26-.443 1.73-.212 2.654-2.277 3.21s-3.208.284-3.557-1.7c-.35-1.983 1.068-.293.771-1.958-.296-1.665-5.364-7.21-6.754-11.414-1.358-4.108-1.223-7.925 1.451-10.026 2.513-1.975 4.933-2.998 8.434-2.213 3.358.752 9.285 5.445 9.285 5.445l5.755 13.045-5.442 2.023-1.074-2.864z" fill-rule="evenodd" transform="matrix(.52155 0 0 .55632 60.047 -67.478)"/> - <path d="M326.662 297.907s-5.64 9.479-4.387 16.764c1.253 7.285 8.773 22.953 8.773 22.953l.079 2.115 4.057-.439-.924-2.146s2.027-18.756.783-24.676c-.924-4.401-8.303-14.492-8.381-14.57zM335.67 341.305s2.818 3.373 6.189 5.014c3.682 1.793 5.195 1.805 6.658.705 1.072-.806.705-4.23-.548-5.17-1.253-.94-2.675-.463-2.898.47-.377 1.574-.89 1.47-2.037.861-1.674-.887-5.562-3.29-5.562-3.29l-1.802 1.41zM331.304 342.07s-1.186 4.233-3.586 7.112c-2.622 3.146-3.997 3.778-5.783 3.376-1.308-.295-2.379-3.569-1.621-4.94.757-1.372 2.25-1.52 2.836-.761.99 1.281 1.415.975 2.21-.05 1.163-1.496 3.723-5.283 3.723-5.283l2.221.547z" fill-rule="evenodd" transform="matrix(.52155 0 0 .55632 60.047 -67.478)"/> - <path d="M342.094 341.932c0 1.253-3.953 2.27-8.835 2.272-4.882.002-8.85-1.01-8.87-2.263-.018-1.253 3.92-2.273 8.801-2.28 4.882-.008 8.865 1 8.904 2.253" transform="matrix(.51436 -.09206 .0863 .54866 32.973 -35.18)" stroke-linejoin="round"/> - </g> - <g fill="#fc0" stroke="#000" stroke-width="2.2"> - <path d="M338.569 336.292s.114-5.3 1.253-6.894c1.616-2.259 3.814-2.35 4.935-2.036 1.384.387 2.82 1.645 2.585 5.326-.235 3.682-1.253 5.484-.156 6.894 1.096 1.41 1.253 2.35 3.368 2.037 2.115-.314 3.055-1.019 2.585-2.977-.47-1.958-1.097.157-1.488-1.488-.392-1.645 2.046-8.752 1.645-13.16-.392-4.31-2.037-7.756-5.327-8.618-3.092-.81-5.719-.783-8.617 1.332-2.78 2.028-6.345 8.695-6.345 8.695l-.079 14.257 5.797-.313-.156-3.055z" fill-rule="evenodd" transform="matrix(.48843 .1951 -.1829 .521 177.775 -120.468)"/> - <path d="M327.77 340.13s-2.217-4.816-3.897-5.823c-2.382-1.428-4.435-.636-5.338.099-1.114.907-1.93 2.633-.248 5.916 1.683 3.283 3.335 4.53 2.891 6.26-.443 1.73-.212 2.654-2.277 3.21s-3.208.284-3.557-1.7c-.35-1.983 1.068-.293.771-1.958-.296-1.665-5.364-7.21-6.754-11.414-1.358-4.108-1.223-7.925 1.451-10.026 2.513-1.975 4.933-2.998 8.434-2.213 3.358.752 9.285 5.445 9.285 5.445l5.755 13.045-5.442 2.023-1.074-2.864z" fill-rule="evenodd" transform="matrix(.48843 .1951 -.1829 .521 177.775 -120.468)"/> - <path d="M326.662 297.907s-5.64 9.479-4.387 16.764c1.253 7.285 8.773 22.953 8.773 22.953l.079 2.115 4.057-.439-.924-2.146s2.027-18.756.783-24.676c-.924-4.401-8.303-14.492-8.381-14.57zM335.67 341.305s2.818 3.373 6.189 5.014c3.682 1.793 5.195 1.805 6.658.705 1.072-.806.705-4.23-.548-5.17-1.253-.94-2.675-.463-2.898.47-.377 1.574-.89 1.47-2.037.861-1.674-.887-5.562-3.29-5.562-3.29l-1.802 1.41zM331.304 342.07s-1.186 4.233-3.586 7.112c-2.622 3.146-3.997 3.778-5.783 3.376-1.308-.295-2.379-3.569-1.621-4.94.757-1.372 2.25-1.52 2.836-.761.99 1.281 1.415.975 2.21-.05 1.163-1.496 3.723-5.283 3.723-5.283l2.221.547z" fill-rule="evenodd" transform="matrix(.48843 .1951 -.1829 .521 177.775 -120.468)"/> - <path d="M342.094 341.932c0 1.253-3.953 2.27-8.835 2.272-4.882.002-8.85-1.01-8.87-2.263-.018-1.253 3.92-2.273 8.801-2.28 4.882-.008 8.865 1 8.904 2.253" transform="matrix(.51196 .1062 -.09955 .5461 141.803 -100.348)" stroke-linejoin="round"/> - </g> - <path d="M215.09 138.529s.487 2.18 1.655 1.038c1.167-1.142 17.227-7.89 39.904-7.89 22.677 0 37.568 6.644 38.444 7.06.876.415 1.266.934 2.044 0 .779-.935-.778-2.388-.778-2.388s-15.767-7.163-40.391-7.06c-24.624.104-40.586 7.579-40.586 7.579s-1.07.83-.292 1.661z" fill="#cca715" fill-rule="evenodd" stroke="#000" stroke-width=".539"/> - <path d="M243.846 148.59s.724-2.145 1.987-2.558c1.007-.329 2.598.728 2.598.728s-1.916-.188-2.516.175c-.541.329-.705 1.304-.705 1.304s.411-.777 1.881-.702c1.47.075 1.634.075 1.634.075s-2.492.201-3.068.966c-.576.765 2.351 1.116 2.351 1.116s-4.48.025-5.067-.263c-.588-.289-.964-1.267-1.964-.966-.999.301-2.022 1.254-2.022 1.254s1.14-2.044 1.858-2.056c.717-.013 1.14-.05 1.787.263s1.246.665 1.246.665zM227.097 152.46s.339-2.25 1.509-2.905c.933-.523 2.68.202 2.68.202s-1.917.193-2.443.669c-.475.43-.467 1.42-.467 1.42s.27-.845 1.727-1.06c1.457-.217 1.62-.249 1.62-.249s-2.416.689-2.85 1.554c-.433.866 2.505.633 2.505.633s-4.398.908-5.025.74c-.628-.167-1.167-1.054-2.097-.56-.93.492-1.77 1.63-1.77 1.63s.766-2.233 1.469-2.387c.703-.154 1.112-.274 1.802-.094.69.18 1.34.408 1.34.408zM257.972 147.797s.84-2.097 2.123-2.43c1.024-.267 2.554.886 2.554.886s-1.903-.306-2.52.02c-.56.294-.776 1.258-.776 1.258s.453-.75 1.916-.585c1.463.166 1.627.176 1.627.176s-2.499.047-3.115.775c-.617.728 2.286 1.26 2.286 1.26s-4.473-.252-5.044-.577c-.571-.324-.894-1.324-1.908-1.085-1.014.239-2.086 1.127-2.086 1.127s1.25-1.97 1.966-1.938c.716.031 1.14.02 1.77.373.628.353 1.207.74 1.207.74zM272.116 149.504s1.062-1.978 2.374-2.15c1.045-.138 2.44 1.198 2.44 1.198s-1.857-.54-2.507-.294c-.587.223-.907 1.153-.907 1.153s.532-.689 1.967-.342c1.435.347 1.597.377 1.597.377s-2.487-.265-3.18.382c-.691.646 2.134 1.535 2.134 1.535s-4.415-.807-4.947-1.2c-.532-.393-.742-1.426-1.776-1.315-1.033.11-2.196.86-2.196.86s1.457-1.802 2.165-1.68c.709.12 1.131.161 1.717.59.586.429 1.119.886 1.119.886zM286.16 152.178s.99-1.506 2.055-1.542c.85-.029 1.879 1.154 1.879 1.154s-1.455-.58-1.994-.432c-.487.133-.808.855-.808.855s.475-.512 1.604-.121c1.129.39 1.257.428 1.257.428s-1.98-.407-2.58.058c-.601.465 1.608 1.4 1.608 1.4s-3.492-.993-3.893-1.35c-.4-.358-.499-1.204-1.336-1.196-.838.01-1.824.52-1.824.52s1.294-1.334 1.855-1.182c.56.152.898.219 1.339.61.441.39.838.798.838.798z" fill-rule="evenodd"/> - <path d="M241.022 138.37c.338 1.788-1.634 3.717-4.402 4.309-2.768.591-5.283-.38-5.617-2.168-.338-1.787 1.633-3.716 4.401-4.308 2.768-.591 5.284.38 5.618 2.167z" fill="#0f6545" stroke="#000" stroke-width=".719" stroke-linejoin="round"/> - <path d="M234.753 138.078c.081.434-.347.89-.956 1.02-.61.13-1.17-.115-1.25-.548-.082-.433.346-.89.955-1.02.61-.13 1.17.115 1.25.548z" fill="#cecfc1"/> - <path d="M280.14 140.533c-.51 1.74-3.108 2.42-5.802 1.518-2.693-.902-4.46-3.044-3.947-4.783.51-1.74 3.108-2.42 5.802-1.518 2.693.902 4.46 3.044 3.947 4.783z" fill="#0f6545" stroke="#000" stroke-width=".719" stroke-linejoin="round"/> - <path d="M274.776 137.06c-.124.421-.705.602-1.298.403-.593-.198-.973-.7-.849-1.122.124-.422.705-.603 1.298-.404.593.198.973.701.849 1.123z" fill="#cecfc1"/> - <path fill="#1f2d86" stroke="#000" stroke-width="1.023" stroke-linejoin="round" d="M250.603 134.34h10.14v5.452h-10.14z"/> - <path d="M254.877 135.502c0 .246-.432.446-.964.446s-.963-.2-.963-.446c0-.247.431-.447.963-.447s.964.2.964.447z" fill="#707c8b"/> - <path d="M221.944 139.792l1.676 5.274-3.1 1.787s-1.425 1.073-2.85.269c-1.424-.805-2.264-3.214-1.508-4.202 1.501-1.958 5.782-3.217 5.782-3.128z" fill="#9f1209" fill-rule="evenodd" stroke="#000" stroke-width=".539"/> - <path d="M219.347 143.546c0 .89-.638 1.61-1.425 1.61s-1.425-.72-1.425-1.61c0-.889.638-1.61 1.425-1.61s1.425.721 1.425 1.61z" fill="#8f322f"/> - <path d="M217.999 142.916c.044.284-.019.565-.163.736-.145.17-.35.207-.538.094-.189-.114-.331-.358-.374-.642-.044-.284.018-.565.163-.736.144-.171.35-.207.538-.094.188.113.33.358.374.642z" fill="#e2a494"/> - <path d="M289.88 140.478l-1.665 4.697 3.947 2.206s1.745.83 2.846-.2c.941-.882 1.155-2.922.403-3.953-.712-.976-5.585-2.778-5.531-2.75z" fill="#9f1209" fill-rule="evenodd" stroke="#000" stroke-width=".539"/> - <path d="M294.605 144.245c0 .577-.565 1.045-1.262 1.045-.696 0-1.261-.468-1.261-1.045 0-.578.565-1.046 1.261-1.046.697 0 1.262.468 1.262 1.046z" fill="#aa675d"/> - <path d="M293.397 144.087c0 .277-.112.532-.295.67a.473.473 0 0 1-.591 0c-.183-.138-.296-.393-.295-.67 0-.276.112-.532.295-.67a.473.473 0 0 1 .591 0c.183.138.295.394.295.67z" fill="#e2a494"/> - <g fill="#f5d8bc"> - <path d="M264.55 134.806a.72.72 0 0 1-.713.727.72.72 0 0 1-.714-.727.72.72 0 0 1 .714-.727.72.72 0 0 1 .713.727zM268.865 135.071a.72.72 0 0 1-.714.727.72.72 0 0 1-.713-.727.72.72 0 0 1 .713-.726.72.72 0 0 1 .714.726zM266.678 136.86a.905.905 0 0 1-.897.913.905.905 0 0 1-.897-.914c0-.504.401-.913.897-.913s.898.409.897.913zM268.76 139.862a.72.72 0 0 1-.714.727.72.72 0 0 1-.713-.727.72.72 0 0 1 .713-.727.72.72 0 0 1 .714.727zM264.596 139.29a.72.72 0 0 1-.713.726.72.72 0 0 1-.714-.726.72.72 0 0 1 .714-.727.72.72 0 0 1 .713.727z"/> - </g> - <g fill="#f5d8bc"> - <path d="M243.729 135.59a.745.745 0 0 1-.542.88.696.696 0 0 1-.849-.537.745.745 0 0 1 .542-.88.696.696 0 0 1 .849.537zM247.988 134.81a.745.745 0 0 1-.541.88.696.696 0 0 1-.85-.537.745.745 0 0 1 .542-.88.696.696 0 0 1 .849.537zM246.236 137.078a.937.937 0 0 1-.68 1.106.875.875 0 0 1-1.068-.675.937.937 0 0 1 .68-1.106.875.875 0 0 1 1.068.675zM248.9 139.502a.745.745 0 0 1-.542.88.696.696 0 0 1-.85-.536.745.745 0 0 1 .542-.88.696.696 0 0 1 .85.536zM244.721 139.946a.745.745 0 0 1-.541.88.696.696 0 0 1-.849-.536.745.745 0 0 1 .541-.88.696.696 0 0 1 .85.536z"/> - </g> - <g fill="#f5d8bc"> - <path d="M225.54 139.777a.76.76 0 0 1-.418.953.683.683 0 0 1-.912-.402.76.76 0 0 1 .419-.953.683.683 0 0 1 .912.402zM229.653 138.359a.76.76 0 0 1-.419.953.683.683 0 0 1-.912-.402.76.76 0 0 1 .419-.953.683.683 0 0 1 .912.402zM228.221 140.87a.954.954 0 0 1-.526 1.198.859.859 0 0 1-1.146-.506.954.954 0 0 1 .526-1.198.859.859 0 0 1 1.146.506zM231.18 142.865a.76.76 0 0 1-.418.953.683.683 0 0 1-.912-.402.76.76 0 0 1 .419-.953.683.683 0 0 1 .912.402zM227.105 143.939a.76.76 0 0 1-.419.953.683.683 0 0 1-.912-.402.76.76 0 0 1 .419-.953.683.683 0 0 1 .912.402z"/> - </g> - <g fill="#f5d8bc"> - <path d="M283.283 137.667a.748.748 0 0 1-.921.566.804.804 0 0 1-.572-.956.748.748 0 0 1 .921-.566.804.804 0 0 1 .572.956zM287.735 139.125a.748.748 0 0 1-.922.565.804.804 0 0 1-.572-.956.748.748 0 0 1 .922-.565.804.804 0 0 1 .572.956zM285.017 140.397a.94.94 0 0 1-1.158.711 1.01 1.01 0 0 1-.72-1.201.94.94 0 0 1 1.159-.711c.518.136.84.674.719 1.201zM286.474 144.11a.748.748 0 0 1-.922.565.804.804 0 0 1-.572-.956.748.748 0 0 1 .922-.566.804.804 0 0 1 .572.956zM282.254 142.371a.748.748 0 0 1-.921.566.804.804 0 0 1-.573-.956.748.748 0 0 1 .922-.565.804.804 0 0 1 .572.955z"/> - </g> - <path d="M291.973 94.86s-2.05 2.051-4.487 2.051c-2.436 0-3.846-1.094-4.615-1.64-.77-.548.256-2.189.256-2.189" fill="none" stroke="#000" stroke-width="1.239"/> - <path d="M248.896 98.962s-3.718-.683-5.257-1.23c-1.538-.547-1.153-1.641-2.948-1.505-1.795.137-3.59 1.505-3.206 3.42.385 1.914 1.667 2.187 2.95 1.777 1.281-.41.897-2.735-.77-2.598-1.667.136-.256 1.64-.256 1.64" fill="none" stroke="#000" stroke-width="1.131"/> - <path d="M223.255 95.954s1.025 1.64 3.718 1.367c2.692-.273 3.718-1.777 3.846-2.461.128-.684 0-1.915-.513-2.462-.513-.547-2.308-.82-2.308-.82" fill="none" stroke="#000" stroke-width="1.077"/> - <g stroke="#161111"> - <path d="M311.993 169.001c1.555-1.53 4.054-3.223 5.442-6.905 1.3-3.446 1.93-9.77 3.116-12.976 1.55-5.495 4.671-10.853.956-10.486-3.538.35-4.682 3.767-6.022 6.268-.621.932-2.052 2.927-2.322 4.061-.055-1.903-1.016-7.454-1.213-13.036-.183-5.213-.035-10.639-.174-12.664-.171-2.673-.153-5.185-.78-7.16-.293-.921-1.646-1.807-2.34-1.768-1.425.01-2.288 1.25-2.48 2.416-.139.92-.1.584-.194 1.774-.12 1.506.028 3.446-.08 5.15-.117 1.837.123 3.878.023 5.587-.202 3.446-.451 6.604-.553 7.25 0-1.278-.584-7.315-.78-13.045a419.48 419.48 0 0 1-.163-6.313c-.03-1.615.04-3.331-.134-4.586-.295-2.14-.987-3.114-2.54-3.114-1.046 0-2.545.762-3.024 3.142-.259 1.282-.27 2.854-.227 4.568.04 1.594.125 3.311.099 5.036-.097 6.528-.213 13.446-.479 15.484-.043-.67-.696-4.085-.872-8.658a804.67 804.67 0 0 0-.264-6.052c-.116-2.485-.106-4.337-.168-5.995-.018-1.001-.416-3.882-2.343-3.709-1.011-.124-2.083.581-2.514 3.308-.24 1.518-.234 4.133-.274 6.147-.076 3.825-.241 7.174-.058 10.58.115 2.124.097 3.762.121 4.809.026.278-.542-1.785-.83-4.59-.28-2.743-.528-6.234-.506-5.429 0-1.417-.068-3.525-.196-5.265-.1-1.36-.037-2.859-1.512-2.739-1.496.122-2.414.627-2.724 3.189-.2 1.66-.255 5.246-.299 6.547.161 3.307-.723 11.019-1.123 13.211-.11 1.554-.723 3.575-.982 5.741-.558 4.662-.027 10.12.59 12.913 1.227 4.41 4.43 6.39 4.268 9.382-.16 2.992 0 8.269 0 10.631 0 2.363 2.052 2.49 6.301 1.575 6.946-1.496 10.742 1.496 16.478-.709-.728-6.536.69-10.466.653-12.828zM307.94 153.556c1.437-3.966 3.252-5.524 5.003-6.39" fill="#c00" transform="matrix(1.6 0 0 1.70667 -224 0)"/> - <path d="M292.145 149.468c2.163-.854 4.41-1.473 6.608-2.224 2.69-.76 5.294-1.847 8.07-2.277 1.338-.272 2.682-.536 4.046-.628M288.287 170.63c.302-.2.594.117.885.177.407.126.834.252 1.263.178.845-.014 1.69-.015 2.534.003 1.002-.037 1.832-.073 2.638-.64M301.883 170.732c.29.238.62.425.968.563.537.237 1.124.267 4.605-.013 2.16.138 4.071-1.726 4.61-2.23" fill="none" transform="matrix(1.6 0 0 1.70667 -224 0)"/> - </g> -</svg> diff --git a/img/flags/1x1/gb-sct.svg b/img/flags/1x1/gb-sct.svg deleted file mode 100644 index ff49ecc..0000000 --- a/img/flags/1x1/gb-sct.svg +++ /dev/null @@ -1,4 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" height="512" width="512" viewBox="0 0 512 512"> - <path fill="#0065bd" d="M0 0h512v512H0z"/> - <path d="M0 0l5 3M0 3l5-3" stroke="#fff" stroke-width=".6" transform="scale(102.4 170.66667)"/> -</svg> diff --git a/img/flags/1x1/gb-wls.svg b/img/flags/1x1/gb-wls.svg deleted file mode 100644 index 705ac63..0000000 --- a/img/flags/1x1/gb-wls.svg +++ /dev/null @@ -1,9 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" height="512" width="512" viewBox="0 0 512 512"> - <path fill="#00ab39" d="M0 256h512v256H0z"/> - <path fill="#fff" d="M0 0h512v256H0z"/> - <g stroke="#000" stroke-width="1.171"> - <path d="M339.46 113.214c-.007.013-.012.028-.02.04.022-.01.04-.028.062-.04h-.04zm-.02.04c-33.988 18.795-64.41 38.35-94.317 63.272-14.352 12.537-10.3 22.53-10.856 33.79.462 7.56-1.634 14.59-6.283 18.827-10.637 2.15-21.284 4.315-31.92 6.466-1.02-2.945-2.03-5.884-3.05-8.825.973-4.515 4.706-6.735 12.565-3.904.618-5.804-4.052-8.167-9.516-10.185-1.877-1.46-4.208-2.583-3.904-7.604-.918-11.363 17.316.814 17.485.814.17 0-.607-11.468-8.986-13.764-4.57-1.617-6.503-6.436-4.76-10.003 3.656-7.292 10.537.57 15.8.854-.2-4.76-1.554-8.152-5.653-11.994-2.207-1.358-7.627-2.38-7.767-4.656-.115-3.092 5.08-4.414 12.22-3.558-1.49-4.333-6.29-7.136-12.89-9.17l-3.905-6.79c-1.848-3.423-2.677-3.515 1.607-10.003 3.848-2.49 8.96-6.01 12.81-8.5l-4.25-.508c.565-4.64.63-6.2 1.707-13.907-4.13 5.642-9.288 4.633-13.928 6.953 0 0-13.227 2.35-17.485 7.97-.17 0-33.262-1.687-33.262-1.687-7.052.983-13.076 2.982-14.252 9.84-16.13 1.63-33.02.19-45.32 15.616 8.374-.396 15.704-2.39 25.11-1.18 0 0 8.016.152 9.678 8.64.17.34 2.726.347 2.726.347 1.02.792 2.03 1.587 3.05 2.38.395-1.076.783-2.16 1.18-3.234l2.723 1.87c.28-1.19.57-2.37.853-3.558.906.622 1.798 1.248 2.704 1.87.057-1.414.127-2.835.183-4.25 1.188.85 2.37 1.694 3.558 2.542v-5.59s13.137-.032 17.14 8.315c.17.168-36.867 6.806-72.645 3.74 3.452-1.698 6.898-3.406 10.35-5.104-13.045-2.652-25.31-5.05-36.82-14.09 4.343 16.355 26.792 35.565 31.39 35.48 0 .17-4.41-7.97-4.41-7.97 12.956.565 25.916 1.12 38.872 1.687 1.415 4.3.79 9.12 4.25 12.91 0 0-2.147 7.108 2.622 10.003.17.34 5.693-14.415 5.693-14.415s1.69 3.97 3.395 6.61c2.47-12.693 16.286-14.762 16.286-14.762s2.888 6.62 2.888 6.79c-4.317.626-9.688 9.426-6.79 14.253-2.896.056-8.037 8.58-6.446 13.237-2.434 2.422-8.496 5.65-6.954 15.797-4.77 1.023-7.596 9.753-6.12 19.01-7.383 6.873-5.57 19.49 1.018 24.6-2.735 2.434-4.42 4.305-4.412 7.3-2.6-.966-4.997-.16-6.12 1.545-3.187-3.268-7.763-6.128-11.02-3.07-.843-3.866-5.876-8.117-11.385-7.625.322-4.075-1.793-9.12-7.625-10.877 0 0-1.18-19.1-6.974-25.293-.567-3.465.333-5.82 5.104-8.66 4.764-2.542 5.777-4.513 5.43-11.712 1.877-4.812 3.304-9.717-2.543-13.052.177 5.723-1.58 8.48-3.902 11.02-2.776-.404-3.745 2.835-5.612 4.25-2.613-3.523 5.512-8.978-.508-16.814-.34-.34-4.203-10.23-13.744-10.003 4.535 2.655 6.454 7.124 6.445 11.71-3.01 8.488-4.538 15.047-1.526 24.784-3.964-5.94-6.212-17.23-9.495-19.193-2.878-.56-4.283-7.365-15.453-5.428 4.82 1.296 6.348 4.975 7.645 8.315-2.954 1.525-1.487 5.544.67 8.317-.41 6.516 3.495 10.322 9.333 12.748-.962 8.882-1.926 17.75-2.887 26.633-2.32-.295-5.888 8.735-7.3 9.007-2.27 1.413-6.232 5.212-1.686 6.283-1.35 4.874-2.604 7.813-9.86 8.824 0 0 7.668 4.548 14.027-3.233 6.814-.172 4.573-8.298 7.868-11.875 0-.17 1.87-1.344 4.594-8.498 1.192 6.388 7.748 25.95 22.568 35.66 12.92 13.83 23.536 26.89 23.422 45.32 5.042-4.69 8.053-12.117 10.37-19.193 7.01-2.44 17.04-3.37 25.982-2.968-1.534 3.227-3.25 6.324-1.037 8.417-6.24 2.143-7.608 6.673-5.102 11.202-6.58 4.468-7.012 7.34-7.117 14.76-12.17 15.606-19.68 15.087-31.737 11.04-3.958-2.324-10.086-5.67-12.91-3.903-5.207-3.47-12.694-3.986-13.926 3.903 3.908-3.238 6.24-2.614 9.352.51-.625 1.584-1.15 3.162 1.18 4.065-1.02 1.132-2.03 2.265-3.05 3.395-5.604-.86-13.138-.813-15.106 7.3 2.878-2.385 9.264-2.945 14.414-.67.963.338 1.926.675 2.888 1.015.113 1.3.233 2.602.345 3.903 0 0-7.633-1.178-9.677 11.203 7.156-7.613 12.218-5.61 12.218-5.61 2.758 4.036 12.91 3.428 20.21-3.213 10.255-5.733 13.244 2.505 19.864-2.888 5.488-4.093 11.982-1.37 16.448 3.396 5.15 1.932 10.54 3.523 14.78 0 0 0 5.18-3.305 10.35 2.034.056-6.02-4.21-9.218-10.004-9.332l-1.708-1.708c-5.432-1.132-11.535-.673-16.285-3.395 2.24-8.502 5.502-16.204 11.874-22.752 7.864-8.43 13.654-12.264 23.584-25.17-.382 7.294 5.208 15.404 8.154 22.812 0 0 5.93-9.47 6.79-17.16.17 0 7.432-3.78 10.532-6.994 6.542 4.058 17.206-3.25 24.093-9.29 4.243 1.606 7.467 1.49 12.4 0-3.96 8.06 2.29 15.537 12.22 18.663.918 7.115 8.106 8.605 19.01 8.66.46 4.187 6.953 4.757 6.953 4.757-4.104 1.913-6.243 3.83-6.1 8.153-4.205.03-7.39 1.087-8.498 5.937-5.775.1-11.66.542-16.63 3.395-5.32-.825-11.79-3.03-15.96-7.3-2.152-1.81-2.69-4.42-6.446-5.427-2.382-2.815-5.23-2.186-6.12.508-2.462-1.922-11.693-2.815-13.237 5.937 4.31-3.154 8.175-4.356 10.878-.508-1.472 2.67 3.59 4.2 7.97 5.265 3.108.193 8.62 3.024 10.35 7.808-4.008 1.215-10.082.815-14.09-2.216-3.563-2.983-8.375-2.627-11.02-.672-3.67-2.34-12.408 2.077-12.747 9.15 3.68-3.374 7.03-5.005 10.368-2.868-1.66.394-1.03.556-.853 1.525 2.83 1.64 5.65 3.28 8.48 4.92-4.16 1.097-8.072 2.757-6.263 10.51 0 0 3.388-6.698 11.02-4.228.17-.17 1.05 2.393 3.232.672 3.302-3.76 10.853-5.442 17.485-6.1 5.323-.637 10.636-2.204 15.27.833 4.125-2.123 8.718-3.55 13.418-.163 5.545 1.754 9.594 8.218 16.63 5.266 3.5-2.422 7.802-2.545 12.22 2.378.054-6.208-4.598-8.29-11.202-9.677-1.528-.907-3.047-1.82-4.574-2.724-4.244-.624-8.505.128-12.748-1.87 22.207-5.742 37.775-18.127 48.734-35.805 3.508 1.245 7.003 2.476 10.51 3.72 2.49.16 2.68 1.025 7.808 2.563.193-7.555-3.05-15.34-16.63-16.122l-17.83-6.79c-3.786-3.992-5.497-12.46-.672-17.485 4.722-4.205 5.546-3.702 8.66-8.825 3.79-.344 7.36 3.56 10.858 3.56 1.66 4.935 11.238 9.298 17.322 7.806 3.812 3.375 11.065 5.25 19.01 2.54 4.51 3.948 10.383 5.596 17.302 2.542 1.837 1.838 5.714 3.298 10.186 2.38.34 0 2.26 4.906 7.136 6.627-2.126 2.067-.82 11.038 1.362 14.252-1.49 3.45-1.957 7.13-.69 10.695-4.92 3.162-5.92 5.514-3.722 10.857-6.44 10.35-14.145 11.532-21.388 8.336-2.604-1.64-5.204-3.3-7.808-4.94-2.772-2.717-5.543-5.417-8.315-8.133-1.412-1.326-4.333-1.742-4.94 1.18 0 0-10.67-2.38-11.53 6.627 4.424-4.307 10.696-.515 10.696-.346 0 .17-1.494 1.187-.345 2.91.258-.216 7.79 2.81 14.496 5.692 3.643 1.38 4.444 1.812 6.038 2.663-1.747-.8-3.81-1.706-6.038-2.663-4.083-1.548-8.06-2.784-9.23-2.48-3.8-.356-7.83-.827-9.678 2.032-4.085 1.728-10.464 3.112-10.187 10.695 2.757-4.517 6.54-4.326 11.365-3.905-.114.34-.212.677-.326 1.016 5.237 2.387 4.243-.648 9.128-1.096 4.084-.375 9.872 1.087 12.93 2.114-3.846 1.132-9.078.657-11.547 3.396-.452.905-2.037.535-1.34 2.704 0 0-7.505-.194-9.516 10.185 7.63-4.885 13.412-4.737 13.58-4.737.17 0 2.38.508 2.38.508s9.163-6.12 9.332-6.12c.17 0 8.873-3.853 12.89.51 3.506 1.722 7.256 1.832 10.877-.346 7.135-3.104 13.813-3.32 20.373 1.037l5.936 3.557c.848-.565 1.693-1.142 2.542-1.708 0 0 6.72-1.898 11.65 4.087-2.038-10.353-9.434-10.693-9.434-10.693-.567-.51-1.143-1.016-1.708-1.525-3.508-1.358-7.003-2.73-10.51-4.087-1.533-3.79-5.38-6.808-1.547-11.365 3.917-19.47 8.6-34.092 1.017-53.817 7.072 3.055 12.364 12.502 21.226 9.17 0-7.922-29.162-22.963-51.438-35.052 36.494-1.866 80.355-28.806 63.494-63.046 2.66-8.26 5.31-16.523 7.97-24.784 3.754 7.562 11.355 13.326 18.176 15.777-5.622-10.732-8.848-43.545-5.61-66.2-14.707 18.167-30.946 34.29-48.207 50.667 8.49 1.984 15.91.588 24.113-.427-2.32 4.753-4.573 9.52-6.892 14.273-22.428-13.135-48.76-3.278-48.958 14.252.767 20.442 26.042 23.347 40.622 16.224-2.89 18.638-45.725 11.772-45.725 11.772-15.22-5.247-29.676-4.348-45.664-4.23 3.32-10.22 21.768-19.29 35.822-15.288-19.676-22.06 2.782-49.45 29.867-57.884-29.523-9.736-4.103-32.242 17.993-48.368 0 0-63.54 26.74-69.33 26.655-18.074-1.358-13.147-22.75-6.263-34.26zm-199.43 25.68c1.48.007 3.218.15 4.595.487 2.865.7 6.352 1.1 6.303 1.953-1.326 2.22-4.585 4.898-7.787 4.737-3.2-.16-5.05-2.08-6.118-6.892.327-.178 1.53-.293 3.01-.285zm267.46 75.388c4.165-.058 9.156 1.705 14.028 6.87-2.343 6.75-22.67 10.214-24.032.225-.41-3.02 3.914-7.013 10.003-7.095z" fill="#d21034"/> - <path d="M161 197.908l3.08 4.483m-.14.142s0 6.024 1.262 6.165m-2.802 3.222c.14.14 3.223 5.324 3.223 5.324m-8.828 1.4c.14 0 3.924 4.344 3.924 4.344m3.285-3.37c0 .14 3.58 6.874 3.86 6.874m-8.547-2.243s1.26 8.126 2.38 7.846m-7.677 7.045l3.616 5.426m3.083-11.21s1.96 7.707 3.5 7.006m1.54-11.632c.14.14 3.646 5.188 4.626 4.487m-.84 1.96l3.362 6.727m-8.967-1.542c.14.28 2.803 7.988 2.803 7.988m-9.247-3.924s2.522 8.547 4.764 7.145m-5.745 4.206s.14 4.483 2.382 4.763m1.542-7.006c0 .14 2.24 3.223 2.24 3.223m4.163-8.555l1.862 2.95m4.063-8.407l2.803 3.502m-15.804-43.68c.14 3.784 6.14-1.33 8.522-4.555m-11.072 17.69s6.585-4.623 11.63-11.63m-13.732 22.7c4.624-1.26 13.13-11.55 14.812-17.015M154.133 237c1.262.56 17.154-10.886 17.575-19.293m-17.995 28.12c0-.14 14.528-3.704 20.553-19.677m-21.333 31.767s23.198-13.91 24.46-24.14m156.645 47.5s-1.496 12.004-13.546 13.826m17.33 7.61c.14-.14 11.488-12.61 8.546-16.393m17.795 4.343s-.14 8.688-7.286 14.713m21.437-12.19s.28 10.508-4.203 14.712m17.234-8.407s-5.027 9.842-6.848 10.823m6.63 6.62s6.615 1.647 8.716-2.697m-7 16.97s6.114 1.104 8.916-4.78m-9.573 15.8s4.95 4.158 8.312-1.306m-79.34-79.66s-.56 21.298 29.423 25.64c33.488 9.25 49.32 4.344 51.282 41.895-1.26 14.292-3.037 30.434-13.405 24.268m-99.1-72.184s4.765 8.545 10.51 7.985c7.565-2.242 10.367 2.382 10.367 2.382m-41.333-1.822s12.612 6.165 23.4-3.783m-21.998-5.044c1.12 14.712-16.954 23.12-24.1 21.718m24.957 34.658c.14 0 9.79-5.794 7.83-9.858m-27.043 1.262c.28-.28 16.253-1.822 19.196-7.567m-26.622-15.973c0-.14 22.67.064 24.212 4.266m5.914-17.716s-22.14 37.83 18.775 37.83m-42.174-38.39s-4.764 14.152-11.49 18.915m-12.05-23.82s8.222 15.908-.045 23.754m-21.39-19.27c.14.28 2.662 22.56-2.943 28.864m-7.706-28.163s.84 14.15-3.36 19.196c-4.206 5.044.983 15.52.983 15.52m-51.072 6.804s3.01 5.28 7.213 3.456m-2.102-14.99s6.726 2.94 8.968 1.82m-1.68-25.64s-9.95 2.8-6.166 14.57c5.744 4.625 11.35 3.924 11.35 3.924m-24.8 31.526c-.14 0 1.12 9.248 7.565 2.242 4.484-9.387 18.636-35.87 21.86-44.977m6.583-4.343s-6.865-5.325-6.584 2.1c-.142 4.625 2.1 5.746 2.1 5.746.28 3.364 3.224 8.127 5.605 3.784.982-4.204-.7-6.025-.7-6.025m3.924-7.568c-6.165-.42-9.528 13.172 2.382 4.626m4.063-9.25s-1.54 2.104-3.924-.14c-1.26-2.24-5.744 10.09 2.102 10.51 1.4-3.644 5.745-4.624 5.745-4.624m3.644-11.63s-3.504 1.68-4.765 1.4c-4.203.982-3.363 10.79 1.96 10.23 1.822-2.102 3.784-5.044 3.784-5.044m-34.02-19.408c-.14 0-13.904 21.644 7.674 27.39m167.016-59.97s-8.407 7.146-.56 18.635c-26.063-.42-40.073 11.63-41.194 19.756-33.207-2.382-27.182 7.427-37.972 10.65-14.43-12.05-35.59-5.325-34.188 6.724-9.668-13.59-24.52-7.005-26.34-3.643-1.822 3.363-1.122-16.673-1.122-16.673s-9.668 4.345-16.394 12.33c.14-5.323 0-14.01 0-16.813-8.08 1.635-15.88 1.727-24.24 1.542m-21.857-6.167s12.048 6.726 26.9-2.38m-27.882-21.86s9.388 8.407 27.043 5.745m-21.157-25.08s2.1 6.865 22.28 7.286m-15.447-23.165s7.6 9.292 17.827 7.89m-11.35-21.156s2.943 5.044 14.153 5.884m-7.568-20.596s5.886 6.445 12.612 5.324m22.4-57.707s2.607-2.607 6.95-1.304m-8.83 15.056s-8.11-.29-7.53-3.474c.58-3.62 8.543-6.225 8.543-6.225s10.567-6.804 12.16-9.12m-47.775 37.06l10.28 19.69 4.92-7.383 2.608 5.066 4.198-7.383 7.24 4.633-2.752-8.976 6.08-.434s-1.593-4.343-7.094-5.212c1.448-1.158 6.515-4.488 6.515-4.488s-2.895-3.33-7.383-3.475c1.447-1.59 3.474-5.5 3.33-5.5-.145 0-4.49-1.013-4.49-1.013s10.28 3.33 18.243-1.303m-19.68-15.92c.143.146-.58 4.055-2.753 6.37m-36.916 4.49s6.36-1.75 11.117-.76c4.715.97 11.034 2.64 11.034 2.64s7.528-1.012 9.99-2.75m-47.92 5.068s-.87 3.04-1.158 5.067c0 1.447-4.634 3.33-4.634 3.33m8.687-14.624s4.053 5.067 4.197 7.962c.145 2.896-3.04 5.068-3.04 5.068m-42.997 21.57l-4.2-6.803 3.765-1.303m76.25 101.962c-3.36-4.343 2.523-71.04 14.993-88.41-4.343 31.386 10.09 63.47 13.73 63.332m-66.62-81.97s5.674 2.172 17.444-7.146m15.902 22.56l8.442.105m253.403-52.38s-140.655 65.724-142.704 69.205c23.75-7.167 124.48-23.956 126.94-22.522-5.94 1.433-128.17 29.482-133.902 36.24 30.506-1.025 94.39 9.826 104.416 20.268-21.703-4.914-86.61-14.537-106.465-10.238 14.537 3.482 70.226 39.516 70.226 45.25-8.393-7.986-75.345-35.626-78.006-32.964 15.354 9.213 37.058 43.404 37.057 51.8-4.503-7.167-43.2-48.73-45.45-46.068 4.094 5.733 12.208 54.795 8.06 57.07 0-5.94-15.022-48.88-16.25-50.11-3.072.82-22.22 52.393-18.426 57.188-2.457-17.197.408-53.09 5.117-51.66-8.392 1.23-35.182 36.552-32.316 42.08.82-8.804 2.017-14.643 17.167-43.92-16.788 1.02-51.593 22.93-57.532 30.71 4.71-13.922 34.192-37.468 47.09-39.106m60.713-51.233c14.867-8.25 60.806-25.085 91.45-37.438m-120.304 81.833s10.134-.144 20.27-27.65c9.985-37.638 89.177-79.622 90.77-87.442M94.015 266.773s-2.352 5.012-5.247 6.46m16.606 1.135s-3.142 6.103-3.866 9m14.736-6.015s2.637 8.33.465 12.24m-30.734-33.867c-7.962 4.49 4.53 32.852 42.316 35.603m-6.08-15.347s-1.014 5.067 6.08 15.2c-2.027 11.293 8.585 20.167 12.784 21.615m-21.906-138.585c0-.145 1.158-3.04 1.158-3.04l1.29 3.347 2.078-.054 1.37-3.356 1.127 3.368h2.065l1.273-3.74 1.924 3.54 1.634.084 1.287-4.313 2.652 3.09.964-.374.825-4.315 2.62 3.02.752-.442 1.215-4.252 2.177 3.162 1.095-.358 1.017-3.573 2.023 3.284m-32.876 5.303l15.79-.235c5.026-.075 13.3-7.04 22.567-4.867m-71.644 38.89s2.605 5.646 6.225 2.46m-12.305 1.304s-5.068 13.61 1.013 16.793m-8.253-31.85s0 3.185 6.66-1.737M49.52 268.6s5.357 1.594 4.488 5.648m-2.464-68.19s3.33 1.593 6.515-3.33m28.81 159.978c5.21-.29 6.332 2.063 11.074 2.063 5.463.166 10.785-2.064 17.735-3.946m44.733 12.595c-.145 0-2.46 4.92-.434 7.382m-73.838-6.95s8.253-6.803 12.596-2.604c4.2 1.448 6.514 1.158 6.514 1.158m-14.762-17.95s2.027 5.21-4.778 4.487m-2.027 7.528s4.343 2.753-.58 6.372m3.186 4.922s5.937.87 2.462 5.646m189.266-41.713s16.12 1.668 16.86 2.872c1.854-1.947 16.248-13.606-1.447-15.273-2.962 12.137-15.134 12.585-15.412 12.4zm-5.743 8.06c6.02 4.816 3.554 7.703 22.454-4.988m-31.07 11.01s8.892 9.54 15.377-2.04m-32.33 5.466l-12.045 6.3m-21.678 8.894s7.318-6.3 10.746-2.965c3.428 3.335 17.972-2.87 17.972-2.87M218.45 347.07s2.502 5.002-2.317 5.65m-7.225 10.007s2.538 4.703-2.373 6m8.024 6.785s7.596.37 4.91 6.113m66.146-7.133s-4.17 3.52-1.112 7.505M346.11 349.2s4.818 2.317-.926 6.3m-4.817 8.338s3.613 3.8 1.204 6.948m8.895 7.597s5.002 1.39 4.447 5.558m65.587-9.262s-4.17 3.056-1.946 7.04m-72.308-128.8c10.007-1.204 24.365 21.03 31.684 25.384m43.767-56.88s5.068 4.425.61 15.098m8.785-32.117c1.41 1.097 6.857 4.004 10.455 10.732m3.456-44.02c0 .093-7.04 18.993-7.04 18.993m14.914-19.918s-1.39 16.86-3.427 20.288M421.502 221.2c-2.342 6.75-22.667 10.2-24.03.213-.694-5.085 12.038-12.93 24.03-.212z" fill="none" stroke-linejoin="round"/> - <path d="M139.854 138.988l7.82 1.447s-5.503 7.384-7.82-1.447z" stroke-linejoin="round"/> - </g> -</svg> diff --git a/img/flags/1x1/gb.svg b/img/flags/1x1/gb.svg deleted file mode 100644 index 4018e2a..0000000 --- a/img/flags/1x1/gb.svg +++ /dev/null @@ -1,15 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" height="512" width="512" viewBox="0 0 512 512"> - <defs> - <clipPath id="a"> - <path fill-opacity=".67" d="M250 0h500v500H250z"/> - </clipPath> - </defs> - <g clip-path="url(#a)" transform="translate(-256) scale(1.024)"> - <g stroke-width="1pt"> - <path fill="#006" d="M0 0h1000.02v500.01H0z"/> - <path d="M0 0v55.903l888.218 444.11h111.802V444.11L111.802.003H0zm1000.02 0v55.9L111.802 500.01H0v-55.9L888.218 0h111.802z" fill="#fff"/> - <path d="M416.675 0v500.01h166.67V0h-166.67zM0 166.67v166.67h1000.02V166.67H0z" fill="#fff"/> - <path d="M0 200.004v100.002h1000.02V200.004H0zM450.01 0v500.01h100V0h-100zM0 500.01l333.34-166.67h74.535L74.535 500.01H0zM0 0l333.34 166.67h-74.535L0 37.27V0zm592.145 166.67L925.485 0h74.535L666.68 166.67h-74.535zm407.875 333.34L666.68 333.34h74.535l258.805 129.403v37.267z" fill="#c00"/> - </g> - </g> -</svg> diff --git a/img/flags/1x1/gd.svg b/img/flags/1x1/gd.svg deleted file mode 100644 index 97c17f8..0000000 --- a/img/flags/1x1/gd.svg +++ /dev/null @@ -1,27 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" height="512" width="512" viewBox="0 0 512 512"> - <defs> - <g id="c"> - <g id="b"> - <path transform="rotate(18 0 -1)" d="M0-1v1h.5" id="a" fill="#fcd116"/> - <use transform="scale(-1 1)" xlink:href="#a" width="100%" height="100%"/> - </g> - <use transform="rotate(72)" xlink:href="#b" width="100%" height="100%"/> - <use transform="rotate(144)" xlink:href="#b" width="100%" height="100%"/> - <use transform="rotate(-144)" xlink:href="#b" width="100%" height="100%"/> - <use transform="rotate(-72)" xlink:href="#b" width="100%" height="100%"/> - </g> - </defs> - <path fill="#ce1126" d="M0 .05h512v512H0z"/> - <path fill="#007a5e" d="M71.68 71.677h368.64v368.64H71.68z"/> - <path d="M71.68 71.73h368.64L71.68 440.37h368.64z" fill="#fcd116"/> - <circle cx="255.911" cy="256.05" r="61.44" fill="#ce1126"/> - <use height="100%" width="100%" xlink:href="#c" transform="translate(255.911 256.05) scale(56.32)"/> - <use height="100%" width="100%" xlink:href="#d" x="-100" transform="translate(-16.349 -.1)"/> - <use height="100%" width="100%" id="d" xlink:href="#c" transform="translate(256 35.89) scale(33.28)"/> - <use height="100%" width="100%" xlink:href="#d" x="100" transform="translate(16.35)"/> - <path d="M99.803 256.75c7.687 14.319 22.639 29.9 35.696 35.379.21-14.54-4.949-33.178-12.004-48.026L99.803 256.75z" fill="#ce1126"/> - <path d="M86.769 207.632c11.143 23.228-28.9 78.643 37.813 91.63-8.23-11.23-13.536-29.763-11.529-44.646 13.997 5.325 28.723 20.907 34.675 32.82 17.459-63.403-44.783-59.546-60.96-79.804z" fill="#fcd116"/> - <use transform="translate(-16.349 442.086)" x="-100" xlink:href="#d" width="100%" height="100%"/> - <use transform="translate(256 478.076) scale(33.28)" xlink:href="#c" width="100%" height="100%"/> - <use transform="translate(16.35 442.186)" x="100" xlink:href="#d" width="100%" height="100%"/> -</svg> diff --git a/img/flags/1x1/ge.svg b/img/flags/1x1/ge.svg deleted file mode 100644 index e6108fc..0000000 --- a/img/flags/1x1/ge.svg +++ /dev/null @@ -1,6 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" height="512" width="512" viewBox="0 0 512 512"> - <path d="M0 0h512v512H0z" fill="#fff"/> - <path d="M204.999 0h102v512h-102z" fill="#f00"/> - <path d="M0 204.999h512v102H0z" fill="#f00"/> - <path style="mix-blend-mode:multiply" d="M114.12 397.877c1.098-18.024 4.254-33.378 4.254-33.378s-10.545 1.08-15.873 1.08c-5.253 0-15.873-1.08-15.873-1.08s3.153 15.354 4.25 33.378c-18.023-1.095-33.377-4.25-33.377-4.25s1.08 7.934 1.08 15.872-1.08 15.873-1.08 15.873 15.354-3.156 33.378-4.25c-1.098 18.023-4.251 33.377-4.251 33.377s7.935-1.08 15.87-1.08c7.938 0 15.876 1.08 15.876 1.08s-3.156-15.354-4.254-33.378c18.027 1.095 33.38 4.251 33.38 4.251s-1.08-10.545-1.08-15.873c0-5.253 1.08-15.873 1.08-15.873s-15.353 3.156-33.38 4.251zM421.12 90.88c1.095-18.024 4.251-33.378 4.251-33.378s-10.545 1.08-15.873 1.08c-5.253 0-15.873-1.08-15.873-1.08s3.156 15.354 4.251 33.378c-18.024-1.098-33.378-4.251-33.378-4.251s1.08 7.935 1.08 15.87c0 7.938-1.08 15.876-1.08 15.876s15.354-3.156 33.378-4.254c-1.095 18.027-4.25 33.38-4.25 33.38s7.934-1.08 15.872-1.08 15.873 1.08 15.873 1.08-3.156-15.353-4.25-33.38c18.023 1.098 33.377 4.254 33.377 4.254s-1.08-10.545-1.08-15.873c0-5.253 1.08-15.873 1.08-15.873s-15.354 3.153-33.378 4.25zm-307.001 0c1.098-18.024 4.254-33.378 4.254-33.378s-10.545 1.08-15.873 1.08c-5.253 0-15.873-1.08-15.873-1.08s3.153 15.354 4.25 33.378c-18.023-1.098-33.377-4.251-33.377-4.251s1.08 7.935 1.08 15.87c0 7.938-1.08 15.876-1.08 15.876s15.354-3.156 33.378-4.254c-1.098 18.027-4.251 33.38-4.251 33.38s7.935-1.08 15.87-1.08c7.938 0 15.876 1.08 15.876 1.08s-3.156-15.353-4.254-33.38c18.027 1.098 33.38 4.254 33.38 4.254s-1.08-10.545-1.08-15.873c0-5.253 1.08-15.873 1.08-15.873s-15.353 3.153-33.38 4.25zM421.12 397.877c1.095-18.024 4.251-33.378 4.251-33.378s-10.545 1.08-15.873 1.08c-5.253 0-15.873-1.08-15.873-1.08s3.156 15.354 4.251 33.378c-18.024-1.095-33.378-4.25-33.378-4.25s1.08 7.934 1.08 15.872-1.08 15.873-1.08 15.873 15.354-3.156 33.378-4.25c-1.095 18.023-4.25 33.377-4.25 33.377s7.934-1.08 15.872-1.08 15.873 1.08 15.873 1.08-3.156-15.354-4.25-33.378c18.023 1.095 33.377 4.251 33.377 4.251s-1.08-10.545-1.08-15.873c0-5.253 1.08-15.873 1.08-15.873s-15.354 3.156-33.378 4.251z" fill="#f00" fill-rule="evenodd"/> -</svg> diff --git a/img/flags/1x1/gf.svg b/img/flags/1x1/gf.svg deleted file mode 100644 index 054d94e..0000000 --- a/img/flags/1x1/gf.svg +++ /dev/null @@ -1,5 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" height="512" width="512" viewBox="0 0 512 512"> - <path fill="#078930" d="M512 0v512L0 0z"/> - <path fill="#fcdd09" d="M0 0l512 512H0z"/> - <path fill="#da121a" d="M256 180.148l44.585 137.217L183.86 232.56h144.28l-116.725 84.805z"/> -</svg> diff --git a/img/flags/1x1/gg.svg b/img/flags/1x1/gg.svg deleted file mode 100644 index 73e0b60..0000000 --- a/img/flags/1x1/gg.svg +++ /dev/null @@ -1,9 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" height="512" width="512" viewBox="0 0 512 512"> - <path d="M0 0h512v512H0z" fill="#fff"/> - <path d="M192 0h128v512H192z" fill="#e8112d"/> - <path d="M0 187.733h512v136.534H0z" fill="#e8112d"/> - <path id="a" d="M45.991 305.778l23.342-24.89h209.991v-49.777H69.334L45.99 206.222z" fill="#f9dd16"/> - <use xlink:href="#a" transform="matrix(0 1.06667 -.9375 0 496 -17.068)" height="24" width="36"/> - <use xlink:href="#a" transform="matrix(0 -1.06667 .9375 0 16 529.068)" height="24" width="36"/> - <use xlink:href="#a" transform="rotate(180 256 256)" height="24" width="36"/> -</svg> diff --git a/img/flags/1x1/gh.svg b/img/flags/1x1/gh.svg deleted file mode 100644 index 8e26562..0000000 --- a/img/flags/1x1/gh.svg +++ /dev/null @@ -1,6 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" height="512" width="512" viewBox="0 0 512 512"> - <path fill="#006b3f" d="M0 0h512v512H0z"/> - <path fill="#fcd116" d="M0 0h512v341.333H0z"/> - <path fill="#ce1126" d="M0 0h512v170.667H0z"/> - <path d="M256 170.667l55.453 170.666-145.178-105.477h179.45L200.547 341.333z"/> -</svg> diff --git a/img/flags/1x1/gi.svg b/img/flags/1x1/gi.svg deleted file mode 100644 index e0403dd..0000000 --- a/img/flags/1x1/gi.svg +++ /dev/null @@ -1,33 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" height="512" width="512" viewBox="0 0 512 512"> - <path fill="#da000c" d="M0 0h512v512H0z"/> - <path fill="#fff" d="M0 0h512v343H0z"/> - <g transform="matrix(2 0 0 2 -256 0)" stroke="#000"> - <g id="a" fill="#da000c" stroke-linecap="square"> - <path fill="#000" stroke="none" d="M196.57 116.303h64v43.993h-64z"/> - <path d="M229.82 153.865h-39.07l-8.66 5.7v6.04h47.73m-16.35-37.011c5.624 0 10.218 4.69 10.218 10.47v14.78h7.343v-56h-40.28v56h12.5v-14.78c0-5.555 4.515-10.47 10.22-10.47z"/> - <path fill="#000" stroke="none" d="M204.528 59.962h18.523v33.96H204.53z"/> - <path d="M223 88.656h-16.21v-5.75h-11.884v5.75h-8.062v-5.75h-4.813v10.438H223m-36.156-.038h34.97v4.538h-34.97zm13.876-45.681v35.28h6.07V73.22c0-3.63 2.563-6.6 6.148-6.782.115-.006.226 0 .343 0a6.78 6.78 0 0 1 6.782 6.78v9.688h5.782v-35.28zm-2.19-4.781v4.78h29.25v-4.78zm-3.75-9.156v9.156h35.095v-9.157h-5.406v4.657h-6.532v-4.657h-9.97v4.657h-6.53v-4.657zm-12.69 125.876H230m31-2.751h-32.438l-9.78 4.718v7.032H261"/> - <path d="M218.77 161.52H262" stroke-linecap="butt"/> - </g> - <use height="100%" width="100%" xlink:href="#a" transform="matrix(-1 0 0 1 512 0)"/> - <g fill="#f8d80e"> - <g stroke-linecap="round"> - <path d="M273.297 150.03c-2.654.884-5.053 2.37-7.47 3.754-3.1 1.83-6.106 3.827-8.903 6.1-.985.648-1.93 1.36-2.69 2.272-1.025.878-2.064 2.055-1.868 3.513.05.642.873-.756 1.414-.824a4.39 4.39 0 0 1 3.142-.47c1.27-1.34 2.91-2.237 4.325-3.407 3.004-2.244 6.236-4.17 9.525-5.962 1.148-.59 2.3-1.186 3.525-1.602l-1-3.375z" stroke-width=".768"/> - <path d="M260.4 157.39v3.913m2.417-5.618v3.883m2.416-5.388v3.858m2.417-5.344v3.98"/> - <path d="M238.89 150.156l-1.186 3.313c5.536 2.1 10.808 4.877 15.797 8.06 1.692 1.15 3.468 2.265 4.797 3.845.293.81-.514 1.49-1.314 1.244-.732-.25-1.453-.533-2.226-.005-1.107.503-2.106 2.14-.426 2.69 2.316 1.556 6.083.88 7.196-1.844.58-1.4.618-3.195-.508-4.344-2.063-2.364-4.797-4.008-7.42-5.672-4.69-2.82-9.574-5.374-14.707-7.288z" stroke-width=".768"/> - <path d="M254.05 158.035l-.313 3.34m3.095-1.635l-.862 3.27m3.834-.998l-1.808 2.537m2.719 3.631l-2.61-1.4m3.423-1.35l-2.995.28m-.868 4.055l-.205-2.633m-.892-.376l-2.473 1.822m-9.418-15.641v3.115m6.286.192v3.534m-3.143-5.185v3.32"/> - </g> - <path d="M235.78 227.563v8.03h5.032v-4.03h6.844v4.03h5.406v-8.03zm0 11.062v8.063h17.282v-8.063h-5.406v4.03h-6.844v-4.03z"/> - <path d="M253.052 193.65h4.99v58.116h-4.99z"/> - <path d="M253.052 198.68h4.99v50.06h-4.99z"/> - <path d="M255.547 179.406l10.625 6.188-10.625 6.156-10.625-6.156zm-14.22 3.97h-2.78v4.436h2.78l14.22 8.25 14.22-8.25h2.78v-4.437h-2.78l-14.22-8.25z" stroke-width="1.024"/> - <path d="M255.344 164.28c-2.42.34-4.226 2.73-4.094 5.135.01 3.738-.018 7.476.014 11.214.13 2.407 2.233 4.565 4.675 4.587 1.984.188 3.978-.972 4.81-2.78l-1.718-1.03c-.444 1.183-1.724 1.917-2.97 1.78-1.634.046-2.958-1.544-2.812-3.134.01-3.713-.02-7.428.015-11.14.09-1.516 1.535-2.755 3.048-2.6.626-.18 1.487.676 1.875-.063.583-.83-.415-1.477-.97-1.937-.613-.085-1.253-.008-1.874-.032zm5.78 3.907c-.395.746-1.215 1.19-1.874 1.58v7.514l2 1.157c-.008-3.204.016-6.408-.01-9.61-.033-.198-.01-.5-.115-.64z" stroke-width="1.024"/> - </g> - <g fill="#da000c"> - <path fill="#000" d="M240.803 38.35h29.33v53.256h-29.33z" stroke="none"/> - <path d="M238.75 38.375v44.563h9.313v-13.22c0-3.048 1.952-7.28 7.937-7.28s7.938 4.232 7.938 7.28v13.22h9.312V38.374zm15.813 5h2.875v15.25h-2.875zm-8.25 3h2.906V57.53h-2.907zm16.468 0h2.908V57.53h-2.907zM235.594 31.97v6.343h40.812v-6.344zm-3.844-7.376v7.375h48.5v-7.376h-6.094v4.062h-6.875v-4.062h-7.842v4.062h-6.875v-4.062h-7.844v4.062h-6.876v-4.062zm-9 73.25v4.594h66.5v-4.594z"/> - <path d="M220.03 82.906v14.938h71.94V82.906h-6.814v5.75h-9.062v-5.75h-12.156v5.75h-15.875v-5.75h-12.157v5.75h-9.062v-5.75z"/> - <path d="M228.688 102.438v54.343h12.843v-20.343c0-9.582 6.398-14.093 14.47-14.093 7.76 0 14.47 4.51 14.47 14.094v20.343h12.842v-54.343z" stroke-linejoin="round"/> - </g> - </g> -</svg> diff --git a/img/flags/1x1/gl.svg b/img/flags/1x1/gl.svg deleted file mode 100644 index 89c9a22..0000000 --- a/img/flags/1x1/gl.svg +++ /dev/null @@ -1,4 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" height="512" width="512" viewBox="0 0 512 512"> - <path d="M0 0h512v512H0z" fill="#fff"/> - <path d="M0 256h512v256H0zm53.333 0c.015 94.246 76.42 170.64 170.667 170.64 94.246 0 170.652-76.394 170.667-170.64-.015-94.246-76.42-170.64-170.667-170.64-94.246 0-170.652 76.394-170.667 170.64" fill="#d00c33"/> -</svg> diff --git a/img/flags/1x1/gm.svg b/img/flags/1x1/gm.svg deleted file mode 100644 index a3b62e8..0000000 --- a/img/flags/1x1/gm.svg +++ /dev/null @@ -1,9 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" height="512" width="512" viewBox="0 0 512 512"> - <g fill-rule="evenodd" stroke-width="1pt"> - <path fill="red" d="M0 0h511.997v170.667H0z"/> - <path fill="#fff" d="M0 170.667h511.997v28.444H0z"/> - <path fill="#009" d="M0 199.11h511.997v113.78H0z"/> - <path fill="#fff" d="M0 312.89h511.997v28.444H0z"/> - <path fill="#090" d="M0 341.334h511.997V512H0z"/> - </g> -</svg> diff --git a/img/flags/1x1/gn.svg b/img/flags/1x1/gn.svg deleted file mode 100644 index e10e240..0000000 --- a/img/flags/1x1/gn.svg +++ /dev/null @@ -1,7 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" height="512" width="512" viewBox="0 0 512 512"> - <g fill-rule="evenodd" stroke-width="1pt"> - <path fill="red" d="M0 0h170.666v512H0z"/> - <path fill="#ff0" d="M170.666 0h170.666v512H170.666z"/> - <path fill="#090" d="M341.332 0h170.665v512H341.332z"/> - </g> -</svg> diff --git a/img/flags/1x1/gp.svg b/img/flags/1x1/gp.svg deleted file mode 100644 index 2385562..0000000 --- a/img/flags/1x1/gp.svg +++ /dev/null @@ -1,7 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" height="512" width="512" viewBox="0 0 512 512"> - <g fill-rule="evenodd" stroke-width="1pt"> - <path fill="#fff" d="M0 0h512.005v512H0z"/> - <path fill="#00267f" d="M0 0h170.667v512H0z"/> - <path fill="#f31830" d="M341.333 0H512v512H341.333z"/> - </g> -</svg> diff --git a/img/flags/1x1/gq.svg b/img/flags/1x1/gq.svg deleted file mode 100644 index b093994..0000000 --- a/img/flags/1x1/gq.svg +++ /dev/null @@ -1,31 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" height="512" width="512" viewBox="0 0 512 512"> - <path fill="#e32118" d="M0 0h512v512H0z"/> - <path fill="#fff" d="M0 0h512v341.333H0z"/> - <path fill="#3e9a00" d="M0 0h512v170.667H0z"/> - <path d="M0 0v512l160-256z" fill="#0073ce"/> - <g stroke="#000"> - <path d="M215.001 204.544h81.707v85.59c0 28.8-37.547 6.613-40.747 21.973-5.547-15.787-40.747 7.04-40.747-23.68 0-29.867-.213-83.883-.213-83.883z" fill="#fff" stroke-width="1.023984"/> - <path d="M261.721 298.453s-1.067 1.067-2.987.214c-1.92-.854-2.133-54.827-2.133-54.827 4.267-4.693 7.68-6.187 7.68-6.187l2.56 2.134c-9.6 4.906-8.747 11.946-7.893 24.106.213 4.48.213 10.24 1.28 15.787 1.493 7.04 4.48 13.013 4.693 17.493.213 2.774-3.2 1.28-3.2 1.28z" fill="#73452b" stroke-width=".21333"/> - <path d="M255.108 236.373h3.84c-3.2 30.934-.427 49.28-.427 58.24 0 2.987 1.707 4.054 1.493 4.054-3.84 4.266-5.76-.214-5.76-.214z" fill="#73452b" stroke-width=".21333"/> - <path d="M249.134 298.453c-3.626 1.707-4.053-1.706-3.84-2.133 7.894-16 11.307-51.2 4.054-55.04l.426-3.413c2.774.853 5.334 4.48 5.334 4.48 1.066 39.466 0 55.68-.64 56.32-3.84 4.053-5.334-.64-5.547-1.067" fill="#a36629" stroke-width=".21333"/> - <path d="M248.921 297.813c-.64-3.413 5.547-12.16 5.12-21.333M259.374 283.947c1.92 5.333 2.774 10.026 2.347 14.506" fill="none" stroke-width=".21333"/> - <path d="M267.694 221.867c1.28-1.494 1.28-1.494 3.627-1.494.427-3.2 5.76-3.2 6.187.854 4.266-.854 5.12 1.706 3.413 4.266 4.053-1.066 7.68 0 6.613 4.694 7.254 1.92 4.48 7.04 1.28 8.106-.426 3.2-3.413 4.267-7.466 2.987-5.12 3.627-8.107 2.347-10.454-1.28-5.76.853-6.186-.427-8.746-3.627-4.48 1.92-5.334 1.92-9.174-.426-.213 2.986-1.28 2.133-3.2 1.92.214 3.84-1.28 5.546-4.693 4.266 2.56 5.334-4.053 7.68-7.253 3.2-2.987.214-3.2-.64-4.694-1.706-1.28 4.266-5.973 3.626-6.826 1.28-5.974-.854-5.334-4.054-.427-4.267.427-3.413 3.413-2.773 5.333-2.347.214-2.133 1.494-1.706 2.56-1.28-.64-1.493-.213-2.346 1.707-2.773-2.773-3.627-1.067-4.907 1.707-6.187-1.494-3.413 1.066-3.2 2.986-3.413-.213-3.627.854-4.267 4.694-4.693-.427-1.28.213-2.347 2.346-2.347-1.28-3.627.427-4.459 4.267-3.84.64-5.27 11.947-2.773 11.093 4.48 3.2.427 4.267 1.067 5.12 3.627z" fill="#009a3b" stroke-width=".21333"/> - <g fill="none"> - <path d="M244.868 219.947c.853.426 1.92 0 2.133 2.346 1.707-2.986 3.84-1.28 3.84 2.134M262.574 218.24c-.853 1.28-4.053 1.28-3.626 4.693-1.067-1.493-3.2-1.92-4.054-.426M267.694 221.867c0 .853-.213 3.413-1.066 4.693M280.921 225.493c.213.214-2.987 0-4.48 1.067M288.814 238.293c-.853-.426-2.56-1.493-3.84.214 0-.854 0-3.2-2.346-3.2M281.348 241.28c0-2.133-.427-2.773-.854-3.413M274.308 238.293c-1.707-1.28-3.414.64-3.414 1.707M261.934 236.373c0-.853-.64-2.56.854-3.2M237.614 245.333c.427-2.133 1.92-2.133 1.707-3.2-.213-1.706-2.133-3.2-4.48-.853M239.321 242.133c1.28-.426 2.56-.213 2.987.427M235.694 234.24c.854-.853 2.987-.64 4.267 0M239.961 229.12c1.067 0 2.987-.427 3.627 1.493 2.346-3.626 4.053-3.2 4.48-2.346M252.334 227.84c1.707-.64 4.694 1.067 6.4 4.053.854-2.346 2.134-1.92 3.414-2.133M270.254 231.893c2.774-1.28 4.48 1.28 5.334 2.347 1.28-1.707 2.346-1.707 3.626-1.707M244.441 237.013c.64-1.066 2.133-1.28 3.2-.64-.213-1.92 1.067-2.773 1.92-2.346" stroke-width=".21333"/> - </g> - <g fill="gold" stroke-width="3.5"> - <path d="M253.188 192.555l-4.694.213-2.346 4.203-2.56-4.011-4.694.192 2.134-4.224-2.56-4.01 4.906-.214 2.134-4.203 2.56 4.011 4.693-.192-2.133 4.224zM233.134 194.112l-4.693 1.152-1.28 4.544-3.413-3.413-4.48 1.109 1.28-4.544-3.2-3.456 4.48-1.13 1.28-4.566 3.413 3.413 4.693-1.109-1.493 4.565zM213.721 198.101l-4.267 2.112-.213 4.736-4.053-2.602-4.267 2.09.427-4.736-4.054-2.624 4.267-2.133.427-4.736 3.84 2.603 4.266-2.091-.213 4.736zM259.374 192.555l4.694.213 2.133 4.203 2.56-4.011 4.693.192-2.133-4.224 2.56-4.01-4.693-.214-2.347-4.203-2.56 4.011-4.693-.192 2.133 4.224zM279.428 194.112l4.48 1.152 1.28 4.544 3.413-3.413 4.48 1.109-1.28-4.544 3.413-3.456-4.693-1.13-1.28-4.566-3.413 3.413-4.48-1.109 1.28 4.565zM298.628 198.101l4.266 2.112.214 4.736 4.053-2.602 4.267 2.09-.214-4.736 3.84-2.624-4.266-2.133-.214-4.736-4.053 2.603-4.267-2.091.427 4.736z" stroke-width=".746655"/> - </g> - <g> - <g fill="#fff" stroke-width="3.5"> - <path d="M304.388 288.427l5.333 7.68 4.907-7.254-3.414-6.186zM270.468 310.827l.426 7.68s2.134 0 4.054-.64c1.706-.64 3.2-1.92 3.2-1.92l-.214-4.054zM241.881 310.827l-.427 7.466s-1.92 0-3.84-.426c-1.706-.427-3.2-1.494-3.2-1.494l-2.133-5.12zM207.534 288.427l-5.546 7.68-5.974-9.814 4.48-4.693z" stroke-width=".746655"/> - <path d="M234.201 326.187c0 7.253 43.947 7.253 43.947 0v-10.24c0 5.333-43.947 4.266-43.947 0z" stroke-width=".746655"/> - <path d="M194.948 302.507c3.84 19.626 39.253 20.053 39.253 20.053v-6.613c-.853-2.56.64-3.414 6.4-4.267 2.347-.213 1.28-3.627 1.28-3.627s-15.36 2.774-26.24-1.493c-14.72-5.973-16.853-17.493-16.853-17.493s-1.067 8.96-3.84 13.44zM317.188 302.507c-3.627 19.626-39.04 20.053-39.04 20.053v-6.613c.64-2.56-.854-3.414-6.614-4.267-2.346-.213-1.066-3.627-1.066-3.627s15.36 2.774 26.24-1.493c14.506-5.973 16.213-17.493 16.213-17.493s1.493 8.96 4.267 13.44z" stroke-width=".746655"/> - <path d="M197.721 295.04c-9.813-5.333-2.133-10.88-1.28-26.667 1.493 9.6 12.373 13.654 11.093 19.84-4.48.214-6.613-6.613-8.746.854l-1.067 5.973zM314.414 295.04c9.814-5.547 1.707-10.88.854-26.667-1.494 9.6-12.16 13.654-10.88 19.84 4.266.214 6.4-6.613 8.533.854l1.493 5.76z" stroke-width=".746655"/> - </g> - <g stroke="none"> - <path d="M203.694 302.293l1.067.854-2.347 2.56c-.939 1.024-1.166 1.702-.514 2.326.81.774 1.38.505 2.221-.406l2.56-2.774.853.854-2.557 2.984c-1.389 1.62-2.678 1.25-3.759.24-.942-.88-1.482-2.156-.097-3.724l2.582-2.901zM207.961 305.92l1.067.64-.214 5.12 2.347-3.627 1.067.64-3.414 5.547-1.28-.64.214-5.12-2.347 3.627-1.067-.64zM209.881 314.88l2.987-5.973 1.066.64-2.773 5.76zM214.574 309.76l-2.355 6.182 2.355.858c2.196.8 3.226-.166 3.924-2.022.704-1.888.396-3.277-1.799-4.16l-2.125-.858zm.845 1.498c2.208.768 2.343 1.606 1.741 3.123-.582 1.44-1.126 2.003-3.226.921l1.485-4.044zM221.614 312.107l-3.84 5.76 1.485.435.858-1.498 2.56.64.217 1.498 1.485.205-1.485-6.823-1.28-.217zm.423 1.497l.422 2.56-1.702-.217 1.28-2.343zM225.262 312.661l-.23 6.612 2.51.049c2.335.044 2.998-1.2 3.055-3.181.058-2.016-.684-3.233-3.05-3.353l-2.285-.127zm1.28 1.147c2.34.01 2.74.756 2.658 2.389-.078 1.551-.417 2.258-2.749 1.913l.092-4.302zM247.641 321.92v6.822h1.498v-2.56s1.28.077 2.342-.204c.838-.218 1.42-.756 1.44-2.08.02-1.3-.736-1.978-2.042-1.978h-3.242zm1.498 1.062l1.504.02c1.254 0 1.017 1.9.038 1.9h-1.542v-1.92zM255.321 321.92l-2.778 6.822h1.498l.64-1.702h2.778l.64 1.702h1.484l-2.773-6.826h-1.493zm.64 1.498l1.062 2.56h-1.92l.858-2.56zM259.588 327.467l3.626-4.48h-3.2v-1.067h5.12v1.067l-3.84 4.48h3.84v1.28h-5.546zM281.134 314.24l1.28-.213.64 3.84c.228 1.365-.396 2.296-1.368 2.655-1.107.408-2.519.035-2.685-1.802l1.067-.213c.248 1.099.69 1.194 1.202 1.022.406-.137.616-.777.504-1.449zM283.268 313.856l1.263-.24.584 3.196c.25 1.367.68 1.949 1.568 1.794 1.104-.193 1.225-.811.99-2.03l-.785-3.408 1.292-.195.858 3.546c.501 2.074-.582 2.896-2.037 3.168-1.267.237-2.614-.085-3.055-2.13zM289.881 316.8l1.067-.427c.523.94 1.34.892 1.974.611.882-.39.983-1.16.547-1.421-.622-.372-2.106.156-2.905-.136-.956-.348-1.366-.886-1.318-1.713.06-.995.935-1.543 1.887-1.838 1.066-.33 2.118-.214 2.801 1.084l-1.28.427c-.416-.701-.952-.668-1.428-.444-.398.189-1.02.542-.688 1.111.273.465 1.84.163 2.667.197.854.035 1.544.605 1.66 1.426.16 1.146-.264 1.766-1.588 2.282-1.635.638-3.11-.076-3.396-1.159zM295.641 311.467l-1.707.853-.426-1.067 4.693-1.92.427.854-1.707.853 1.92 4.693-1.067.64zM298.414 309.12l1.067-.64 2.987 5.547-1.067.64zM305.668 309.547l1.28-.427c.602 1.265-.302 3.566-2.512 3.519-3.235-.07-3.585-3.633-3.077-4.808.855-1.974 3.248-1.936 4.309-.844l-1.067.853c-.676-.868-2.179-.32-2.28.477-.166 1.303.408 2.515 1.572 3.09.988.487 2.51-.738 1.775-1.86zM305.028 305.067l1.066-.854 3.84 5.12-1.066.854zM309.081 301.867l-1.062.857 2.342 6.4 1.062-1.062-.64-1.28 1.92-1.715 1.28.64 1.076-.845-5.978-2.995zm.422 1.497l2.138 1.063-1.28 1.28-.858-2.343z"/> - </g> - </g> - </g> -</svg> diff --git a/img/flags/1x1/gr.svg b/img/flags/1x1/gr.svg deleted file mode 100644 index 4240e9c..0000000 --- a/img/flags/1x1/gr.svg +++ /dev/null @@ -1,24 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" height="512" width="512" viewBox="0 0 512 512"> - <defs> - <clipPath id="a"> - <path fill-opacity=".67" d="M0 0h666v666H0z"/> - </clipPath> - </defs> - <g clip-path="url(#a)" transform="scale(.77)"> - <g fill-rule="evenodd" stroke-width="1pt"> - <path fill="#0d5eaf" d="M0 0h999v74H0z"/> - <path fill="#fff" d="M0 74h999v74H0z"/> - <path fill="#0d5eaf" d="M0 148h999v74H0z"/> - <path fill="#fff" d="M0 222h999v74H0z"/> - <path fill="#0d5eaf" d="M0 296h999v74H0z"/> - <path fill="#fff" d="M0 370h999v74H0z"/> - <path fill="#0d5eaf" d="M0 444h999v74H0z"/> - <path fill="#fff" d="M0 518h999v74H0z"/> - <path fill="#0d5eaf" d="M0 592h999v74H0zM0 0h370v370H0z"/> - <g fill="#fff"> - <path d="M148 0h74v370h-74z"/> - <path d="M0 148h370v74H0z"/> - </g> - </g> - </g> -</svg> diff --git a/img/flags/1x1/gs.svg b/img/flags/1x1/gs.svg deleted file mode 100644 index d5a7d46..0000000 --- a/img/flags/1x1/gs.svg +++ /dev/null @@ -1,210 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" height="512" width="512" viewBox="0 0 512 512"> - <defs> - <linearGradient id="b"> - <stop stop-color="#d5dfff" offset="0"/> - <stop stop-color="#fff" offset="1"/> - </linearGradient> - <linearGradient id="a"> - <stop stop-color="#474747" offset="0"/> - <stop stop-color="#f50" offset="1"/> - </linearGradient> - <linearGradient id="d" y2="173.45" xlink:href="#a" gradientUnits="userSpaceOnUse" y1="218.47" gradientTransform="matrix(1.51 0 0 .652 40.513 .006)" x2="110.94" x1="109.34"/> - <linearGradient id="e" y2="337.23" gradientUnits="userSpaceOnUse" y1="316.38" gradientTransform="matrix(1.232 0 0 .8 40.513 .006)" x2="126.02" x1="125.91"> - <stop stop-color="#b50000" offset="0"/> - <stop stop-color="#ffc500" offset="1"/> - </linearGradient> - <linearGradient id="f" y2="147.35" xlink:href="#b" gradientUnits="userSpaceOnUse" y1="149.38" gradientTransform="matrix(.56 0 0 1.76 40.513 .006)" x2="456.4" x1="407.87"/> - <linearGradient id="g" y2="102.99" xlink:href="#a" gradientUnits="userSpaceOnUse" y1="102.99" gradientTransform="matrix(.74 0 0 1.33 40.513 .006)" x2="228.97" x1="215.83"/> - <linearGradient id="h" y2="1003.7" xlink:href="#b" gradientUnits="userSpaceOnUse" y1="1040.4" gradientTransform="matrix(2.563 0 0 .384 40.513 .006)" x2="78.221" x1="117.6"/> - <linearGradient id="i" y2="226.38" xlink:href="#b" gradientUnits="userSpaceOnUse" y1="245.98" gradientTransform="matrix(.886 0 0 1.11 40.513 .006)" x2="255.03" x1="264.72"/> - <clipPath id="c"> - <path fill-opacity=".67" d="M0 0h512v512H0z"/> - </clipPath> - </defs> - <g clip-path="url(#c)"> - <g stroke-width="1pt"> - <path fill="#006" d="M0 0h1023.977v511.984H0z"/> - <path fill="#fff" d="M0 0v28.62l454.746 227.374h57.24v-28.62L57.24 0H0zm511.986 0v28.62L57.24 255.993H0v-28.62L454.746 0h57.24z"/> - <path fill="#fff" d="M213.327 0v255.993h85.33V0h-85.33zM0 85.33v85.332h511.986v-85.33H0z"/> - <path fill="#c00" d="M0 102.397v51.2h511.986v-51.2H0zM230.394 0v255.993h51.198V0h-51.198zM0 255.993l170.662-85.33h38.16L38.16 255.992H0zM0 0l170.662 85.33h-38.16L0 19.08V0zm303.164 85.33L473.826 0h38.16L341.324 85.33h-38.16zm208.822 170.663l-170.662-85.33h38.16l132.502 66.25v19.08z"/> - </g> - <path d="M333.75 379.947s-2.878 7.61-4.523 7.61c-1.646 0-7.61-3.29-7.61-3.29s-4.32 6.99-6.58 7.403c-2.263.41-8.227-1.03-8.227-1.03s-5.758 0-5.964-.82c-.206-.824.206-2.47.206-2.47s-8.227 6.582-10.078 6.17c-1.85-.41-8.02-8.226-8.02-8.226l-1.03 4.123-11.723-.413-10.283-6.584s-5.758 9.46-5.964 9.255c-.205-.206-10.077 2.262-10.077 2.262l-.617-1.85-6.582-3.908s5.14-7.2 5.14-7.405c0-.205-2.467-1.028-2.467-1.028l-3.7 3.085-7.61 4.935-7.61-3.496 3.292-6.168.41-4.525 5.965-9.05 73.008-70.95 35.99 66.427-5.347 19.948z" fill-rule="evenodd" stroke="#000" stroke-width="1.147" fill="#6a4c2d"/> - <path d="M385.62 384.25l19.003-.682-8.09-3.996 72.41-2.73-10.232-3.897-9.063-12.28-37.52-2.826s-2.827-2.145-7.407-1.073c-.195-2.923-3.704-6.724-3.704-6.724l-23.097-1.754-14.425 9.842 9.746 24.948 12.378 1.17z" fill-rule="evenodd" stroke="#000" stroke-width="1.147" fill="#fff"/> - <path d="M121.32 150.76l2.224-7.561s3.892-6.562 3.892-9.453c0-2.892 2.89-6.34 2.89-6.34s8.897-2.557 10.787 2.892c9.563-14.457 20.794-.668 20.794-.668l3.114-3.67 6.34-7.783s9.006 8.45 9.117 9.895 1.557.445 1.557.445l9.786-.778s4.644 3.635 3.67 10.564c3.448 2.034 6.56 14.01 6.56 14.01l-80.73-1.556z" fill-rule="evenodd" stroke="#000" stroke-width="1pt" fill="url(#d)" transform="matrix(.86 0 0 .86 207.27 41.7)"/> - <path d="M385.505 248.72c1.45-.893 6.023-2.343 5.465-9.035-.557-6.692-6.357-7.473-9.592-7.25-3.235.223-6.135 3.01-6.135 3.01l-10.707-6.802s5.353-33.797 11.042-35.916c5.402-3.893 6.358-5.577 6.358-6.47s-2.008-3.122-2.008-3.122l-34.912-4.127L312 182.912s-2.564 3.904-2.23 5.465.446 3.235 6.358 7.808c6.54 5.03 11.042 33.908 11.042 33.908s-9.258 4.573-9.815 4.015c-.558-.557-3.346-1.115-4.796-.892-1.45.223-6.247 2.677-6.247 9.034 0 6.358 4.796 10.04 4.796 10.04s31.564-3.68 36.25 5.018c4.572-10.484 34.576-6.803 38.145-8.588z" fill-rule="evenodd" stroke="#000" stroke-width=".86pt" fill="#656263"/> - <path stroke-linejoin="round" d="M419.51 213.588s.35-3.67 2.97-5.415c2.62-1.747 20.088-2.62 24.28 0s5.765 15.547 5.765 15.547 2.62 4.542 2.795 7.86.524 5.59.524 5.59 13.975 18.168 14.15 34.588c1.572 11.18 1.222 41.05-3.145 52.405-.176 14.148-6.115 23.407-6.115 23.407s1.398 2.445 1.223 5.066c-.175 2.62-1.573 5.066-1.573 5.066l20.438 10.132-7.51-2.795s7.686 6.46 7.51 6.287c-.174-.175-8.56-4.018-8.56-4.018l5.067 5.065c-.175-.175-12.402-5.59-12.402-5.59s5.763 5.416 5.414 5.24c-.35-.174-9.258-4.367-9.258-4.367s5.59 5.94 5.416 5.59-8.036-3.493-8.036-3.493l.35 2.97s-6.29-.35-6.29-5.067c-3.143-1.747-5.24-4.192-5.24-4.192l-14.498-2.445-16.42-49.086 3.843-82.974 1.047-4.193-1.748-11.18z" stroke-opacity=".979" fill-rule="evenodd" stroke="#000" stroke-width="1.075"/> - <path d="M408.536 478.752s-8.41-17.698-12.604-17.946c-3.784-7.212 13.15-66.187 45.907-69.55 18.01 1.485 1.48 20.763-10.36 14.83 1.478 5.19 7.4 12.605 7.4 12.605s-23.438 10.135-30.344 60.062z" fill-rule="evenodd" stroke="#000" stroke-width="1.139" fill="#fb0"/> - <path d="M295.773 481.332s6.96-20.138 11.187-20.386c4.226-.25-11.187-67.126-44.75-67.623-18.148 1.492-1.49 20.883 10.442 14.917-1.49 5.22-7.458 12.68-7.458 12.68s23.618 10.192 30.58 60.412z" fill-rule="evenodd" stroke="#000" stroke-width=".86pt" fill="#fb0"/> - <path d="M326.56 355.54c-.08-.162-8.33 2.588-2.99 11.565.403-3.478 4.123-5.58 4.123-5.58s-5.66 6.712.324 12.373c.727-5.337 4.124-7.035 4.124-7.035s-4.204 12.373.082 14.88c.485-4.934 3.64-7.117 3.64-7.117s-3.802 11.08-.405 13.587c.404-4.205 3.235-6.066 3.235-6.066s-1.7 11.485 2.75 12.293c.08-4.043 3.315-8.006 3.315-8.006s-1.456 9.38 5.5 9.786c.08-3.56 1.375-7.603 1.375-7.603s3.154 9.948 7.763 8.33c-.08-2.91.08-8.41 0-8.41s2.912 9.462 8.41 7.683c-.807-2.67.325-5.824.325-5.824s2.912 5.904 8.17 3.963c.888-1.78-.245-5.257-.245-5.257s7.684 7.926 10.03 3.154c2.345-4.772-6.148-6.39-6.148-6.39h5.743s-1.86-4.85-9.625-5.903c2.67-1.213 5.42-.324 5.42-.324s-1.618-6.065-9.544-6.712c3.074-1.052 6.47-.324 6.47-.324s-1.05-5.74-9.785-7.36c1.376-1.536 5.095-1.05 5.095-1.05s-3.477-5.42-7.44-5.096-39.79-3.64-39.71-3.558z" fill-rule="evenodd" stroke="#000" stroke-width=".86pt" fill="#00713d"/> - <path d="M361.898 384.737s3.154 1.537 3.073 2.912m-1.207-5.415s4.044 2.83 3.963 4.933m-.411-6.395s3.235 2.022 3.397 5.177m2.021-3.879s1.618 3.48 1.05 4.125m2.192-2.267c.243 2.75-.243 2.992-.243 2.992m-39.635-20.38s3.8 2.425 3.478 5.822m-3.719-2.907s1.78 1.697 1.375 2.83m3.321-5.66s2.507 3.478 1.698 5.904m2.585-3.642s1.132 2.184.08 3.397m1.941-2.348s1.375 2.184.16 2.91m-1.691 4.288s3.558.81 4.044 3.478m-1.946-5.902s3.72.242 4.125 4.205m.811-5.582c.08 0 2.507 4.286 2.103 5.66m2.671-5.256s.97 4.125.242 5.418m2.828-3.801c0 .08.08 4.77.08 4.77m-4.767-11.237s2.345.89 2.183 3.154m-.007-5.261s2.992 1.7 2.668 4.934m.815-6.301s2.588 3.072 1.617 6.47m2.907-5.748s-.972 3.8-.568 5.338m3.318-2.749s-1.697 1.294-.808 2.912m-13.905 11.888s.565 2.91 0 3.396m-3.724-5.09s1.86 3.234 1.212 4.852m-5.177-5.015s2.103 2.426 2.022 4.367m-5.255-3.886s1.94 1.86 1.78 2.91m-3.475-.08s1.86 1.94 1.78 2.345" stroke-width="1.075" stroke="#3ec26d" stroke-linecap="round" fill="none"/> - <path d="M300.89 252.21l26.748-.477s17.674 0 19.585 5.732c3.343-7.642 18.628-7.164 18.628-7.164 9.236-.317 18.47-.637 27.705-.955l.48 66.873c-5.415 25.953-24.203 44.263-44.902 52.065-24.68-7.962-40.283-28.82-45.378-52.543l-2.865-63.53z" fill-rule="evenodd" stroke="#000" stroke-width=".86pt" fill="#fff"/> - <path d="M310.418 251.96l38.964 103.84 35.2-106.098c-10.918.704-34.347-1.72-37.258 8.244-4.503-8.917-29.15-5.322-36.906-5.982z" fill-rule="evenodd" stroke="#000" stroke-width=".86pt" fill="#006b00"/> - <path d="M336.94 308.18c1.5.784 1.458-28.18 3.426-29.08.563-2.398.845-3.448 1.547-5.996-1.687-2.998-9.28-2.848-12.09-.3 1.264 4.048 1.826 5.397 1.826 5.397 3.796 6.146 3.042 30.633 5.29 29.98z" fill-rule="evenodd" stroke="#006b00" stroke-linecap="round" stroke-width=".593" fill="#ffc900"/> - <path stroke-linejoin="round" d="M326.5 84.31s2.753-3.127 2.878-3.877c.126-.75 12.512-1.25 19.893-15.014 4.13-7.258 0-3.004 0-3.004l-.25-3.503s5.13-4.88 3.255-7.507c-1.877-2.627-1.252 3.378-4.255 3.253-3.002-.126-1.376-6.507-1.376-6.507s-.25-.75-1.126-1.126c-1.25.125-.876 2.377-2.002 2.627-1.125.25-2.126-5.255-2.126-5.255s-1.877-2.503-3.504 5.38c.876 8.382 6.256 6.756 6.256 12.26 0 5.505-4.754 9.76-6.13 9.884-1.377.126-.877-4.63-.877-4.63s-.75-2.25-1.25-2.25 2.752-.5 2.252-6.757c-1.127-7.507-2.002 1.75-4.004 1.376s-.5-6.88.25-7.632-.876-3.877-5.255 4.13c-.375 3.88-.876-1-1.75-.75-1.503 3.127-1.253 5.38.874 8.257 3.128 2.877 5.13 5.755 5.005 7.256-.125 1.502-1.75 4.88-4.004 4.88s.125-4.13 0-5.505c-.125-1.376-3.878-6.38-3.878-6.38s-2.628-4.255-2.377-4.38c.25-.125-.25-.75-1.502 3.628s-2.753-2.877-2.753-2.877-1.75 5.38 2.002 8.63c-2.877-.374-3.128.752-3.128.752 0 1.502 3.88 2.127 4.38 4.754s-4.004 4.13-4.004 4.13 1.877 2.627 7.13-2.503c.127 3.253-2 5.505-2 5.505 1.75.792 3.127.71 3.377 2.753z" fill-rule="evenodd" stroke="#000" stroke-width="1.075" fill="#cdad56"/> - <path stroke-linejoin="round" d="M309.335 84.31s-2.338-3.47-2.444-4.154c-.105-.683-11.502.864-16.895-13.035-3.506-6.603 0-2.732 0-2.732l.213-3.187s-3.732-4.565-2.138-6.955c1.594-2.39.938 3.073 2.988 3.085 2.55-.114 1.168-5.92 1.168-5.92s.212-.684.957-1.025c1.062.114 1.494 3.54 2.452 3.767.955.228 2.93-4.03 3.557-4.907.875-.125.842-3.528 2.224 3.645-.744 7.627-7.064 6.147-7.064 11.156 0 5.01 4.038 8.88 5.206 8.994 1.17.114.744-4.212.744-4.212s.637-2.05 1.062-2.05c.426 0-3.713.796-3.29-4.896.958-5.33 3.078.343 4.778 0 1.7-.34-.2-5.635.288-6.443.113-.81 2.62-4.28 3.588 3.38.32 3.53 2.244-3.037 2.988-2.81 1.276 2.847-.564 6.648-2.37 9.266-2.656 2.62-3.856 5.488-3.75 6.854.106 1.366.737 3.063 2.65 3.063 1.913 0 .644-2.38.75-3.633.107-1.252 3.295-5.305 3.295-5.305.626-1 .106-2.87.77-3.735 1.037.01 1.462-1.434 2.525 2.55 1.062 3.986 2.337-2.617 2.337-2.617s1.488 4.895-1.7 7.855c2.445-.34 2.656.683 2.656.683 0 1.367-1.166 1.937-1.592 4.327-.425 2.39 1.273 3.757 1.273 3.757s-1.594 2.39-6.057-2.277c-.107 2.96 1.7 5.01 1.7 5.01-1.487.72-2.655.645-2.87 2.504z" fill-rule="evenodd" stroke="#000" stroke-width=".945" fill="#cdad56"/> - <path d="M378.083 267.45c-2.33-2.115-2.607-.267-3.754-.74-.562-.236-1.003-.762-1.49-1.24-.426-.437-.93-.617-1.492-.854l-.636 1.88c-.212.625.59 1.663.572 2.603-.16 1.396-.728 2.552-2.48 3.03.5-.99.782-1.038.63-2.246-.075-.604-1.765-1.675-1.557-2.247.31-.92.838-1.982.448-2.9-.72.492-1.66.234-2.38.534-.604.27-.645 1.395-1.486 1.863-.863.403-2.764.203-4.35-.698.97-.735 1.77-.24 2.74-.975.486-.368.464-1.944.95-2.312s1.646-.76 2.13-1.128c-.435-.497-.412-1.284-.848-1.78-.437-.497-2.37-.39-2.808-.887-.872-.993-.706-2.3-1.58-3.295 2.26.81 1.932 1.91 2.498 1.828 1.07-.513 2.138-.615 2.7-.38.56.237 1.63 1.633 2.19 1.87.212-.627.52-1.422.733-2.048.212-.627-.953-1.712-.74-2.34.424-1.25 1.476-2.358 1.9-3.61.152 1.207.353 2.223.505 3.43.076.605 1.263.918 1.34 1.523.075.605-.62 2.007-.545 2.61.65-.13 1.587-.04 2.235-.17.648-.13 1.08-1.637 1.727-1.766 1.297-.258 2.23-.18 3.552.07-.97.904-1.723.843-2.33 1.675-.486.367.188 1.58-1.215 2.432-.527.306-1.912-.062-2.397.306l1.308 1.49s2.396.728 2.832 1.225c.872.995 1.334 2.18 1.095 3.247zm-59.916 1.023c2.33-2.115 2.608-.268 3.754-.74.562-.237 1.003-.763 1.49-1.24.426-.437.93-.618 1.492-.854l.636 1.878s-.59 1.663-.572 2.603c.158 1.4.728 2.555 2.48 3.034-.5-.99-.782-1.04-.63-2.247.076-.604 1.765-1.675 1.557-2.248-.31-.918-.838-1.98-.448-2.9.72.492 1.66.235 2.38.533.604.27.645 1.394 1.486 1.862.863.404 2.764.204 4.35-.696-.97-.738-1.77-.24-2.74-.977-.486-.37-.463-1.944-.948-2.312-.486-.367-1.648-.76-2.133-1.127.436-.497.412-1.284.848-1.78.437-.497 2.37-.39 2.808-.887.872-.994.706-2.302 1.578-3.295-2.257.812-1.93 1.912-2.497 1.828-1.07-.512-2.137-.614-2.7-.378-.56.236-1.627 1.632-2.19 1.868-.21-.626-.52-1.422-.732-2.048-.212-.626.953-1.71.74-2.337-.423-1.253-1.476-2.36-1.9-3.613-.152 1.208-.353 2.223-.505 3.43-.076.605-1.264.92-1.34 1.524-.076.604.62 2.005.545 2.61-.65-.13-1.587-.042-2.235-.17-.648-.13-1.08-1.637-1.728-1.767-1.297-.26-2.23-.18-3.552.07.97.904 1.724.842 2.332 1.675.485.368-.19 1.58 1.213 2.433.526.305 1.913-.06 2.398.307l-1.31 1.49c-.435.496-2.394.728-2.83 1.225-.873.993-1.335 2.18-1.096 3.246z" fill-rule="evenodd" fill="#ffc900"/> - <path stroke-linejoin="round" d="M375.993 274.14c-2.11 1.65-15.747 5.096-15.887 16.938-.14 11.842 2.39 14.54-.14 14.84-4.922 0-5.625-13.19-5.484-19.036.14-5.847.28-4.947.28-4.947s3.374.9 3.094 3.748c-.28 2.847 3.374-7.045 2.11-9.744 2.248 2.248 5.2 1.348 5.2 1.198 0-.15-1.686-1.948-2.39-3.297-.702-1.35 2.532.75 2.532.75s.14-2.248-2.672-2.1c-3.655 0 .563-1.198.563-1.198s2.108 1.948 3.514-.15c-1.547-1.648-3.796-2.548-3.796-2.548s-1.97-3.747-4.64-4.496c-3.093-.75-2.672 1.348-6.187 1.05-.7 1.347-.7 1.498.705 1.947-2.39 1.65-1.125 4.947-1.125 4.947s3.796-1.65 3.655 1.05c-.14 2.697-2.25 2.248-3.655.6-1.265-.75-1.687.748-1.687.748l1.968 2.098s-3.796-.15-4.78 2.4c2.11-.15 3.235.45 3.235.45s-4.36 1.948-4.782 2.997c-.42 1.05-.56-1.2-.702-1.2-.14 0-4.217-1.498-4.217-1.498l-1.408 6.482s2.814 2.81 4.36 1.91c1.548-.9 4.36-3.597 6.046-2.848-4.92 3.748-9.84 9.144-12.512 9.894-.703-.6-3.093-2.998-4.077-1.8-.983 1.2-.28 2.7.985 2.55 1.265-.15-4.077 1.198-2.952 3.446 1.125 2.25.984 2.1 1.968 1.5.985-.6-.842-.75 2.813-1.8 3.655-1.048 3.514-2.098 3.514-2.098s-.702 1.65-2.67 2.1c-1.968.45-3.516.45-3.093 1.048.42.6 1.264 1.65.983 2.25-.28.598 4.078-3.15 5.203-.15 2.953-.15 4.92-3.748 3.514-5.847.14 2.248 1.547 2.997.703 4.047s6.608-3.448 2.952-6.146c.985 2.25 1.124 4.047 1.124 4.047s1.688-.15 2.11-.75c.42-.6-.844 1.65-.28 2.1.56.45 3.232 2.998 2.107 4.797-.7-1.05-.842-2.7-1.685-2.55-.845.15-4.36 2.7-6.468 2.85s2.53 7.794 2.53 7.794-3.234-.45-3.654-.15c-.422.3-2.53-2.698-2.953-.9-.704 2.25.702 1.35.702 1.35s-1.827-.9-2.81.15c-.985 1.05-1.97 2.098-1.267 2.547.703.45 3.797.45 4.218.3s-3.515.3-3.796.75c-.282.45-.843 2.1 0 2.7s2.953-.3 3.093-.75c.14-.45.282 1.65.282 1.65s3.655.298 3.655-3.45.282 2.7.282 2.7 3.654.598 3.794-3.15.422 2.55.422 2.55 2.39-.75 2.39-1.35c0-.6-.14 7.495-1.827 9.744-2.673-1.8-4.36 1.198-4.36 1.198s.14 4.348-.14 5.397c-.28 1.048 1.827-.6 1.968-1.05.14-.45 2.67-1.65 2.812-1.95l.843-1.798s-.563 2.098-1.546 2.398-1.97 1.35-1.548 2.25c.422.898 1.97 1.498 2.53 2.397.563.9 2.53-5.246 2.53-5.246l.142 1.35s2.53-.6 2.812-1.8c.28-1.198-2.67-2.247-.28-4.196 2.39-1.948 0 1.8 0 1.8s.842 2.847 1.405 2.847 1.966-5.395.56-6.745c-1.405-1.348 2.11 1.65 2.11 1.65s1.97-5.546-.14-6.296-3.094-1.05-3.094-1.05 1.125-1.5.563-1.65 2.95 3.3 3.514 2.4 1.406-3.6-2.67-5.097c-4.08-1.5-.142-5.697-.142-5.697s2.53 2.998 4.36 1.35c1.826-1.65-.142-1.65-.142-1.65s5.202-3.296 5.342-4.946c-.984-.15-2.67.15-2.67.15s2.952-1.948 2.25-5.096c-1.126 1.648-2.673 1.65-2.673 1.65s2.53-2.55 2.108-4.948c-1.546 1.2-1.406 2.098-2.39 1.8s-2.67-9.744 1.265-10.345c3.937-.597 1.828 4.65 1.97 4.65.14 0 5.904-2.4 0-6.297 1.405-.45 4.357 2.25 4.357 2.25s-1.265-6.598-7.592-2.55c1.547-1.648 2.53-2.698 3.796-2.398 1.266.3 5.766-.15 5.766-1.5-1.125-.9-3.516.45-4.782 0-1.265-.45 8.998-1.2 8.155-6.294z" fill-rule="evenodd" stroke="#006b00" stroke-linecap="round" stroke-width=".593" fill="#ffc900"/> - <path d="M481.3 118.54s12.247-6.43 18.37 1.53m4.9 12.25c-.306 0-4.286 3.98-5.205 3.98m13.475 8.88s11.328.918 18.676-10.41" transform="matrix(.46 0 0 .49 110.333 220.12)" stroke="#006b00" stroke-linecap="round" stroke-width="1.25" fill="none"/> - <path d="M525.08 141.81s.92 6.123 2.756 6.123-3.062 1.53-4.9.306c2.144 2.755 3.37 7.654 0 9.49" transform="matrix(.46 0 0 .49 110.333 220.12)" stroke="#006b00" stroke-linecap="round" stroke-width="1.25" fill="none"/> - <path d="M519.26 218.97s-3.98 4.286-8.88 4.592" fill-rule="evenodd" transform="matrix(.46 0 0 .49 110.333 220.12)" stroke="#006b00" stroke-linecap="round" stroke-width="1.25" fill="#e80000"/> - <path d="M523.86 199.37s-2.45-12.247-.92-15.31c.92-3.978 4.9-5.51 7.962-10.715m-8.272 17.145s-3.062 7.348-16.533 4.9m20.213-23.27s.92 9.797-11.328 6.123M511.3 128.04s-4.9 4.287-3.062 10.104" transform="matrix(.46 0 0 .49 110.333 220.12)" stroke="#006b00" stroke-linecap="round" stroke-width="1.25" fill="none"/> - <path d="M353.732 277.596s2.955-1.2 3.517-1.8c.562-.6 1.547-1.8 1.828-2.7.282-.9-1.97-2.25-.844-4.2.704-.9 1.688-1.05 3.377 0 1.69 1.05-1.547-3.3-3.235-3.45s-2.814 1.2-3.236.9c-.423-.3.14 1.2-.564 1.2s1.407 1.2 1.267 1.95c-.14.75 2.25 3.3 2.11 3.9-.14.6-3.517 4.05-4.22 4.2z" fill-rule="evenodd" fill="#006b00"/> - <path stroke-linejoin="round" d="M534.27 97.112c2.794-.636 3.243.07 2.755 2.45-1.31-.66-1.79-1.218-2.755-2.45z" fill-rule="evenodd" transform="matrix(.46 0 0 .49 110.333 220.12)" stroke="#ffc900" stroke-linecap="round" stroke-width="1.25" fill="#ffc900"/> - <path stroke-linejoin="round" d="M514.71 233.52s-1.033 6.41 1.49 6.946c-.125-2.48.537-4.176 1.157-4.837-.538-.25-2.522-2.068-2.647-2.11zm-5.68-7.89c-2.316-.33-6.23 1.59-5.105 3.91 1.88-1.62 3.626.135 4.94-1.518.405-.453.29-1.812.165-2.392zm-.02-4.58s-3.65-.58-4.157 1.948c2.52-.32 3.274-.59 4.11-.06.24-.54.007-1.762.047-1.888z" fill-rule="evenodd" transform="matrix(.46 0 0 .49 110.333 220.12)" stroke="#006b00" stroke-width="1.25" fill="#e80000"/> - <path stroke-linejoin="round" d="M493.54 184.94s2.19.828 2.81 3.06c1.737-1.075 2.565-5.83-2.81-3.06zm-5.42 5.45c.083-.04 4.59-2.77 5.045-.165-.952.95-1.365 1.57-2.11 1.778-.578 0-1.736-1.778-2.935-1.613zm-.45 8.85c.082-.042 2.894-2.522 3.97-.868 1.074 1.653-.87 1.57-.87 1.57s-.992-.454-3.1-.702zm-3.97-49.28c-.04 0-3.597-1.364-5.085 1.116 2.357.29 3.184 1.117 4.258 1.944-.29-1.034-.785-2.605.827-3.06zm-6.9 18.56s.165-4.176 2.15-5.87c1.116.62 1.446 1.61 2.19 2.852-1.487.33-3.472.413-4.34 3.018zm9.5-2.98s-3.928 1.82-2.646 3.804c1.282-1.364 2.688-.95 2.688-.992s0-2.77-.042-2.812z" fill-rule="evenodd" transform="matrix(.46 0 0 .49 110.333 220.12)" stroke="#006b00" stroke-width="1pt" fill="#e80000"/> - <path stroke-linejoin="round" d="M480.64 125.6c-1.406 1.57 1.736 5.003 5.044 4.507.827-3.72-4.217-5.664-5.044-4.507z" fill-rule="evenodd" transform="matrix(.46 0 0 .49 110.333 220.12)" stroke="#006b00" stroke-width="1pt" fill="#ffc900"/> - <path d="M331.183 278.13c-.317.857.943 2.06 1.672 1.72.297-.877-1.343-2.402-1.672-1.72z" fill="none"/> - <path stroke-linejoin="round" d="M484.28 122.75s.62 2.936 3.473 2.15c-.455-2.274-2.44-3.97-2.44-3.97-.123.663.414 1.696-1.033 1.82zm1.9 8.52s1.57 1.695 4.672-1.778c-1.405.413-3.886-.827-3.886-.827s0 2.398-.786 2.605z" fill-rule="evenodd" transform="matrix(.46 0 0 .49 110.333 220.12)" stroke="#006b00" stroke-width="1pt" fill="#e80000"/> - <path stroke-linejoin="round" d="M480.46 118.86c-1.406 1.57.583 3.762 3.89 3.266.828-3.72-3.063-4.423-3.89-3.266z" fill-rule="evenodd" transform="matrix(.46 0 0 .49 110.333 220.12)" stroke="#006b00" stroke-width="1pt" fill="#ffc900"/> - <path d="M144.62 266.62s7.037-2.01 10.77 1.005 3.735.287 3.735.287 5.457 2.01 7.037 1.58-1.148.144 1.006-1.15c2.154-1.29-4.31.29-4.883-2.44-1.006-1.724.143-3.878-2.154-3.16-1.58-2.01 1.006-3.446.43-5.6-1.578 1.148-2.44-.432-3.733 2.44-3.015-.574-.43-4.74-3.734-5.17 0 3.016-2.442 3.16-2.585 4.883-1.436 1.006-7.755 4.74-5.888 7.325z" fill-rule="evenodd" fill="url(#e)" transform="matrix(.86 0 0 .86 207.27 41.7)"/> - <path d="M261.987 467.9c3.926-.95 25.203 4.696 33.405 13.49-1.74-15.662-6.08-27.66-6.08-27.66s-12.68-3.618-14.42-1.877c-2.552 2.688-10.22 10.743-12.905 16.046zm-6.487-72.344c-1.49.248-2.983 1.243-4.474 3.73-1.74 4.225-2.984 14.915-5.47 17.402-2.486 2.486-4.724 2.734-4.724 4.972 0 2.237.25 7.458 6.962 9.447 6.712.25 17.403-10.69 17.403-10.69s5.47-5.967 7.706-12.43c-12.927 4.474-22.126-7.46-17.402-12.43z" fill-rule="evenodd" stroke="#000" stroke-width=".86pt" fill="#c01500"/> - <path d="M442.47 465.405c-3.895-.943-25.417 4.67-33.556 13.413 1.728-15.57 6.034-27.5 6.034-27.5 1.502-.41 12.444-3.596 14.172-1.865 2.533 2.673 10.686 10.68 13.35 15.952zm6.03-71.922c1.48.247 2.004 2.192 3.212 4.663 1.726 4.2 3.506 10.322 5.974 12.793 2.466 2.472 4.687 6.133 4.687 8.358 0 2.223-.52 5.23-7.18 7.206-6.662.247-16.314-8.305-16.314-8.305s-5.428-5.934-7.65-12.36c12.83 4.45 21.138-7.005 17.27-12.357z" fill-rule="evenodd" stroke="#000" stroke-width="1.139" fill="#c01500"/> - <path d="M248.043 454.233s13.424 9.2 13.674 13.425c36.05-53.452 128.036-70.11 180.496-3.73 6.96-9.198 14.17-12.18 14.17-12.18-55.193-72.103-165.084-63.15-208.342 2.485z" fill-rule="evenodd" stroke="#000" stroke-width=".86pt" fill="#fb0"/> - <g stroke="#000" fill-rule="evenodd" fill="#1e5aa6"> - <path d="M384.93 249.86l5.258-.124-9.39 11.893 11.27 13.145-22.162 27.92 20.91 25.166c-2.296 5.635-4.968 10.77-8.515 15.4l-12.018-13.27 21.785-27.17-17.904-20.282 10.767-32.677zm-75.12 2.376l-5.634.125 10.516 11.394-11.143 13.898 23.16 25.165-19.155 25.666c2.296 5.634 5.593 11.894 9.14 16.526l11.393-14.4-23.412-26.04 17.152-21.785-12.02-30.55z" stroke-width="1.147"/> - <path d="M335.85 319.844l-8.263 11.018 29.548 34.18c5.217-2.63 9.307-5.634 13.772-9.265l-15.4-17.78 6.26-18.404 9.015 10.392-28.17 35.933c-4.716-2.003-9.933-5.133-14.65-9.015l14.9-18.905-7.01-18.154zm-9.14-17.152l5.385 6.76-3.505-9.14-1.88 2.38z" stroke-width="1.147"/> - <path d="M365.274 308.673c.118-.125 4.345-5.76 4.345-5.76l-1.645-2.253-2.7 8.013z" stroke-width="1.111"/> - </g> - <text font-weight="bold" transform="matrix(.56 -.65 .65 .56 207.27 41.7)" font-size="14" y="362.397" x="-328.344" font-family="Timmons"> - <tspan x="-328.344" y="362.397">L</tspan> - </text> - <text font-weight="bold" transform="matrix(.6 -.6 .6 .6 207.27 41.7)" font-size="14" y="384.266" x="-292.335" font-family="Timmons"> - <tspan x="-292.335" y="384.266">E</tspan> - </text> - <text font-weight="bold" transform="matrix(.66 -.47 .5 .65 207.27 41.7)" font-size="14" y="451.681" x="-239.78" font-family="Timmons"> - <tspan x="-239.78" y="451.681">O</tspan> - </text> - <text font-weight="bold" transform="matrix(.7 -.48 .48 .7 207.27 41.7)" font-size="14" y="429.958" x="-188.526" font-family="Timmons"> - <tspan x="-188.526" y="429.958">T</tspan> - </text> - <text font-weight="bold" transform="matrix(.78 -.37 .37 .78 207.27 41.7)" font-size="14" y="451.479" x="-115.426" font-family="Timmons"> - <tspan x="-115.426" y="451.479">E</tspan> - </text> - <text font-weight="bold" transform="matrix(.8 -.35 .35 .8 207.27 41.7)" font-size="14" y="453.046" x="-94.111" font-family="Timmons"> - <tspan x="-94.111" y="453.046">R</tspan> - </text> - <text font-weight="bold" transform="matrix(.8 -.32 .32 .8 207.27 41.7)" font-size="14" y="454.982" x="-68.371" font-family="Timmons"> - <tspan x="-68.371" y="454.982">R</tspan> - </text> - <text font-weight="bold" transform="matrix(.86 -.07 .07 .86 207.27 41.7)" font-size="14" y="445.666" x="112.016" font-family="Timmons"> - <tspan x="112.016" y="445.666">R</tspan> - </text> - <text font-weight="bold" transform="matrix(.86 0 0 .86 207.27 41.7)" font-size="14" y="430.793" x="180.225" font-family="Timmons"> - <tspan x="180.225" y="430.793">R</tspan> - </text> - <text font-weight="bold" transform="matrix(.75 .43 -.43 .75 207.27 41.7)" font-size="14" y="275.217" x="414.759" font-family="Timmons"> - <tspan x="414.759" y="275.217">R</tspan> - </text> - <text font-weight="bold" transform="rotate(39.9 46.5 307.186) scale(.86)" font-size="14" y="193.05" x="483.878" font-family="Timmons"> - <tspan x="483.878" y="193.05">E</tspan> - </text> - <text font-weight="bold" transform="matrix(.83 .16 -.13 .82 207.27 41.7)" font-size="14" y="414.028" x="309.116" font-family="Timmons"> - <tspan x="309.116" y="414.028">O</tspan> - </text> - <text font-weight="bold" transform="matrix(.78 -.1 .12 .84 207.27 41.7)" font-size="14" y="459.272" x="105.058" font-family="Timmons"> - <tspan x="105.058" y="459.272">O</tspan> - </text> - <text font-weight="bold" transform="matrix(.8 -.3 .3 .8 207.27 41.7)" font-size="14" y="455.835" x="-45.708" font-family="Timmons"> - <tspan x="-45.708" y="455.835">A</tspan> - </text> - <text font-weight="bold" transform="matrix(.6 .6 -.6 .6 207.27 41.7)" font-size="14" y="144.724" x="518.35" font-family="Timmons"> - <tspan x="518.35" y="144.724">A</tspan> - </text> - <text font-weight="bold" transform="matrix(.84 .17 -.17 .84 207.27 41.7)" font-size="14" y="388.298" x="271.188" font-family="Timmons"> - <tspan x="271.188" y="388.298">A</tspan> - </text> - <text font-weight="bold" transform="matrix(.85 -.16 .16 .85 207.27 41.7)" font-size="14" y="455.168" x="40.322" font-family="Timmons"> - <tspan x="40.322" y="455.168">M</tspan> - </text> - <text font-weight="bold" transform="matrix(.86 -.1 .1 .86 207.27 41.7)" font-size="14" y="448.079" x="94.429" font-family="Timmons"> - <tspan x="94.429" y="448.079">P</tspan> - </text> - <text font-weight="bold" transform="matrix(.86 0 0 .86 207.27 41.7)" font-size="14" y="437.607" x="155.088" font-family="Timmons"> - <tspan x="155.088" y="437.607">P</tspan> - </text> - <text font-weight="bold" transform="matrix(.75 .42 -.42 .75 207.27 41.7)" font-size="14" y="276.665" x="405.134" font-family="Timmons"> - <tspan x="405.134" y="276.665">P</tspan> - </text> - <text font-weight="bold" transform="matrix(.85 .1 -.1 .85 207.27 41.7)" font-size="14" y="409.793" x="232.095" font-family="Timmons"> - <tspan x="232.095" y="409.793">I</tspan> - </text> - <text font-weight="bold" transform="matrix(.6 .63 -.63 .6 207.27 41.7)" font-size="14" y="132.089" x="530.392" font-family="Timmons"> - <tspan x="530.392" y="132.089">T</tspan> - </text> - <text font-weight="bold" transform="matrix(.7 .52 -.52 .7 207.27 41.7)" font-size="14" y="218.519" x="464.158" font-family="Timmons"> - <tspan x="464.158" y="218.519">T</tspan> - </text> - <text font-weight="bold" transform="matrix(.83 .24 -.24 .83 207.27 41.7)" font-size="14" y="361.961" x="313.725" font-family="Timmons"> - <tspan x="313.725" y="361.961">M</tspan> - </text> - <text font-weight="bold" transform="matrix(.58 .64 -.64 .58 207.27 41.7)" font-size="14" y="123.248" x="513.704" font-family="Timmons"> - <tspan x="513.704" y="123.248">G</tspan> - </text> - <path d="M427.378 214.508s5.188-4.447 8.894-4.57m-8.145 3.952c.123-.124 31.003-4.447 31.99-5.435m-31.87 5.685c.124-.125 34.586-2.966 34.586-2.966m-34.706 3.086s36.685-1.73 38.908.123m-39.037-.243s35.944.245 36.562 1.11m-36.433-1.11l34.584 2.84m-34.954-2.592c.123 0 35.203 3.088 38.66 7.534m1.846 6.295c-.123-.123-11.98-14.205-40.638-13.958m.132.249s19.886 1.358 26.186 8.276m-25.816-8.524s12.845-2.47 26.31 13.71" stroke-width=".86pt" stroke="#fff700" stroke-linecap="round" fill="none"/> - <path d="M247.4 217.74s20.718.813 20.718 2.844-15.437 5.89-15.64 14.422c-.203 8.53 11.78 9.14 12.593 19.905.814 10.767-9.342 12.39-11.374 15.235-2.03 1.422-6.906 16.656-6.296 25.593.61 8.938 3.25 39.203 7.92 45.296 3.658 2.844 9.142 11.984 15.032 9.14 5.89-2.843 1.828-13.202 1.22-16.046s2.436-7.516 2.436-11.78c0-4.267-2.234-7.72-2.03-8.735.202-1.016 16.452 3.86 15.436 19.906-1.015 16.045-7.515 11.17-7.515 11.17s2.03 19.703-3.048 22.343c-9.14 4.875-15.843-1.015-15.843-1.015l.858 4.007-6.953-3.6s-8.937-12.798-10.968-18.485-4.47-31.077-3.656-36.56c.813-5.486 1.422-37.58 1.016-39.204s-2.03-28.436-1.015-32.5c1.016-4.06 7.313-21.936 7.11-21.936z" fill-rule="evenodd" stroke="#000" stroke-width="1pt" fill="url(#f)" transform="matrix(.86 0 0 .86 207.27 41.7)"/> - <path d="M400.822 224.416s12.402-12.053 19.564-10.656c3.668 0 .174 2.62.174 2.62s6.29.524 7.162 3.32c.175 1.222-2.97 1.57-2.97 1.57s2.62.525 2.796 2.796-26.552.524-26.726.35z" fill-rule="evenodd" stroke="#000" stroke-width=".86pt" fill="#ff7000"/> - <path d="M401.518 223.89s13.276-1.746 18.866-7.336m-5.414 3.673s9.78-.35 9.78 1.05" stroke="#000" stroke-width=".86pt" fill="none"/> - <path stroke-linejoin="round" d="M449.73 363.116s8.385-1.92 10.655-4.89c1.4-1.05 8.735 11.004-10.655 4.89z" fill-rule="evenodd" stroke="#000" stroke-width="1.075" fill="#fff"/> - <path d="M447.46 293.766s1.048 6.463-1.923 10.83c-1.572 1.747-6.288 4.716-6.288 6.813 0 2.095 1.746 4.89 1.396 7.336s-2.97 4.89-2.795 6.987c0 2.096 2.97 13.276 2.622 13.45m-8.382-66.374s-6.636 2.27-8.034 8.91" stroke="#fff" stroke-linecap="round" stroke-width="1.075" fill="none"/> - <path d="M429.288 220.227s2.27 6.29 9.608.35c-4.717-6.462-9.608-.175-9.608-.35z" fill-rule="evenodd" stroke="#000" stroke-width=".86pt" fill="#c75b00"/> - <path d="M434.865 220.086c0 .338-.352.612-.787.612s-.786-.274-.786-.612c0-.338.352-.612.786-.612s.787.274.787.612z" fill-rule="evenodd"/> - <path d="M369.303 205.633s13.912 15.058 22.913 14.895c1.637 4.42-4.086 8.53-6.378 10.493-4.582-1.472-8.724.27-19.363-12.824.655-8.347 2.99-12.235 2.828-12.563zm18.825-35.028c1.8-5.564 5.4-9.983 8.51-10.474-.817-4.255 6.548-23.077 27.99-30.278 1.308 9.656-9.167 19.15-9.167 19.15s31.59-5.402 37.972-13.422c-.654 3.6-7.037 26.024-40.753 25.86 12.765 12.112-4.093 21.77-11.295 18.822 13.258-10.148-3.764-16.203-13.258-9.657z" fill-rule="evenodd" stroke="#000" stroke-width=".86pt" fill="#fff"/> - <path d="M398.93 162.754c6.383-4.092 8.674-4.092 13.912-3.274-3.765.49-3.765.655-3.765.655s-.327.49 1.964 2.62c-2.617-.656-4.91-2.13-12.11 0z" fill-rule="evenodd" stroke="#ccc" stroke-width=".86pt" fill="#cccccd"/> - <path d="M396.47 160.13s12.602-6.71 19.64-11.293" stroke="#000" stroke-width=".86pt" fill="none"/> - <path d="M385.668 231.003s17.35 4.747 19.313-20.132c-3.763-10.8-9-34.042-.98-40.752-7.366-5.074-15.386.164-15.386.164-.49 1.145-7.038 10.474 1.8 26.842-20.95-5.565-12.44 14.24-12.44 14.24.82-3.11 11.95-6.057 14.73 9.82 1.147 3.927-7.527 9.983-7.036 9.82z" fill-rule="evenodd" stroke="#000" stroke-width=".86pt" fill="#00f"/> - <path d="M405.147 211.034s18.33-9.82 17.84-32.898c-15.55.328-21.113 20.46-21.113 20.46l3.274 12.438z" fill-rule="evenodd" stroke="#000" stroke-width=".86pt" fill="#00f"/> - <path d="M322.983 209.89s-13.585 11.785-21.277 8.02c-5.73 3.437-12.44-2.62-12.44-2.62s7.857 28.97 36.008 8.02c-.49-6.382-1.964-12.93-2.29-13.42z" fill-rule="evenodd" stroke="#000" stroke-width=".86pt" fill="#fff"/> - <path d="M301.543 217.415c1.146-6.056 5.892-9 9.657-3.273 5.074.982 10.148-19.804-7.856-16.367 5.074-27.17-10.147-37.317-10.147-37.317s-5.4 30.115-2.946 35.68c2.456 5.565-3.6-10.31-23.077-14.73-.327 22.75 21.77 33.39 21.77 33.39s6.218 5.727 12.6 2.618z" fill-rule="evenodd" stroke="#000" stroke-width=".86pt" fill="#00f"/> - <path d="M303.34 197.61s-8.51 7.2-6.546 17.02m-6.379-18s-1.964 7.037 2.29 17.02m-3.6 2.295s3.928-6.383 12.44 1.8" stroke="#000" stroke-width=".86pt" fill="none"/> - <path d="M290.742 171.75c0-.164-12.93 0-5.238 13.093-5.728 1.8-18.495-6.547-9.657-17.677-28.97-.654-40.754-14.566-40.754-27.332 8.51 8.838 28.806 5.237 36.008 10.638-8.837-8.184-7.037-19.476-7.037-19.476s24.715 7.365 29.133 29.296c-1.473 4.256-2.127 11.785-2.455 11.457z" fill-rule="evenodd" stroke="#000" stroke-width=".86pt" fill="#fff"/> - <path d="M270.86 149.905c4.77 4.853 17.025 6.303 23.244 11.704" stroke="#000" stroke-width=".86pt" fill="none"/> - <path d="M276.503 164.224s10.145-1.31 13.085 2.292c-3.97 0-5.293-.983-11.027 1.145 1.618-.817 1.177-2.29 2.06-2.29s-3.677-1.146-4.118-1.146z" fill-rule="evenodd" stroke="#ccc" stroke-width=".815" fill="#cccccd"/> - <path d="M327.077 84.843s5.564-4.91 11.62-.49c-2.736 8.174-12.603 5.072-12.603 5.072s.328 4.092-.654 6.056c1.975 1.486 3.6 6.384 3.6 6.384s10.15-2.455 12.276 1.964c3.886-.536 6.71 0 6.71 0s7.857-1.964 10.64-1.964c2.78 0 11.62 2.292 12.438 3.93.818 1.635 3.764 12.6 5.728 12.438 1.964-.164-4.746 2.618-6.546-.164-1.8-2.782-1.31 3.6-1.31 3.6s5.565 5.893 6.22 7.202c.654 1.31-3.437 11.948-.328 19.313-2.724.252-2.946 3.11-2.946 3.11-.15 3.242-4.255 4.092-4.255 4.092l-.982-4.42-2.783 1.637 1.146-3.437s3.765-9.166 4.092-12.11c.327-2.947-3.437-8.185-6.383-8.185s-5.074 9.33-5.074 9.33-1.473 7.037-.982 7.692c.492.655-1.963-2.29-1.963-2.29s-1.31 4.254-2.29 5.563c-.983 1.31-3.11 1.8-3.11 1.8s-1.474-4.255-.983-5.89c.49-1.638 8.02-8.02 7.365-12.604-.656-4.582 0-3.436-.165-3.6-.163-.163-3.928-3.437-4.09-5.237-.165-1.8-4.912 2.29-11.13.982-1.904 3.326-2.128 11.62-2.128 11.62s-.655 9.984.654 11.13c1.31 1.145-3.272 3.6-3.272 3.6l-3.274 4.42s-1.145-2.783-1.145-2.62c0 .164-2.293 1.637-2.293 1.637l1.31-3.273c-.08-2.48 3.182-9.246 3.182-14.975 0-5.73.417-11.868.417-11.868s-6.055-.328-5.892 5.892c.164 6.218-1.473 6.546-1.145 8.346.327 1.8 1.964 6.874 1.473 8.347-.49 1.473-2.455 1.964-2.455 1.964l-.49.82s-6.057 2.78-5.894 3.927c.164 1.145-.163-3.274-.163-3.274l-.327-4.746s3.6-2.292 3.6-8.02c0-5.73-.83-6.543-.665-7.852.164-1.31.993-6.06.83-6.55-.164-.492-3.437 1.308-4.42 1.308s1.8-3.437 2.128-5.892c.328-2.455-3.273 2.29-6.22-.49 1.37-3.023 3.438-3.93 3.765-6.22s-2.29 1.964-4.58.327c.185-2.196 2.454-4.092 2.454-4.092s-1.865-.228-2.62 0c-1.472-.49 1.638-2.782 1.8-6.056.165-3.273-1.8-4.582-1.8-4.746 0-.163-3.272-2.945-3.763-4.09-.49-1.146-.49-2.456-.49-2.456s-5.402 3.928-11.785-4.42c5.845-4.99 12.11-1.308 12.11-1.308s1.638-4.583 9.167-4.256c7.53.328 9.002 4.583 8.675 4.092z" fill-rule="evenodd" stroke="#000" stroke-width=".86pt" fill="#923f00"/> - <path d="M368.253 169.505c.137 0 13.904.408 14.04 7.77.136 7.36-4.226 5.45-4.362 5.45s-10.086-1.225-10.086-1.225l.41-11.996z" fill-rule="evenodd" stroke="#000" stroke-width=".86pt" fill="#00f"/> - <path d="M354.89 167.458s17.174-.137 16.22 7.36c-.955 7.497-5.317 5.998-5.317 5.998l-8.314-.682-2.59-12.676z" fill-rule="evenodd" stroke="#000" stroke-width=".86pt" fill="#fffeff"/> - <path d="M345.214 166.64l9.95.82s5.998.816 5.725 6.54c-.273 5.726-6.135 5.863-6.135 5.863l-9.677-.546.136-12.676z" fill-rule="evenodd" stroke="#000" stroke-width=".86pt" fill="#00f"/> - <path d="M321.908 169.505c-.136 0-13.904.408-14.04 7.77-.136 7.36 4.226 5.45 4.362 5.45s10.087-1.225 10.087-1.225l-.412-11.997z" fill-rule="evenodd" stroke="#000" stroke-width=".86pt" fill="#fff"/> - <path d="M335.264 167.458s-17.175-.137-16.22 7.36c.954 7.497 5.315 5.998 5.315 5.998l8.314-.682 2.59-12.676z" fill-rule="evenodd" stroke="#000" stroke-width=".86pt" fill="#00f"/> - <path d="M344.947 166.64l-9.95.82s-5.997.816-5.725 6.54c.273 5.726 6.134 5.863 6.134 5.863l9.678-.546-.137-12.676z" fill-rule="evenodd" stroke="#000" stroke-width=".86pt" fill="#fff"/> - <path d="M371.59 249.4s7.155-10.546 10.168-9.417c2.636.88.628 9.04-.628 9.792l-9.54-.376zm-49.046 1.882c-2.26-3.138-5.523-11.8-8.536-9.415-2.636.878-.627 9.038.628 9.792l7.908-.378z" fill-rule="evenodd" stroke="#000" stroke-width=".86pt" fill="#5e0043"/> - <path d="M327.283 230.427s13.942 8.59 18.516 8.812c4.572.222 19.072-11.156 19.072-11.156" stroke="#000" stroke-width=".86pt" fill="none"/> - <path d="M328.625 196.75l2.677-3.347 13.385 6.804 13.607-6.023 2.677 2.788-15.168 10.708-17.177-10.93z" fill-rule="evenodd" stroke="#000" stroke-width=".86pt" fill="#5e0043"/> - <path stroke-linejoin="round" d="M317.995 196.57c1.087 1.372 9.738 11.89 11.3 20.59 1.56 8.7-.893-11.934-.893-11.934s10.708 5.242 11.043 8.588c.334 3.346 5.12-.226 5.348-.798L313.79 192.88l4.205 3.69zm52.899-.603s-11.266 14.835-9.927 31.007c-2.324-7.744-.447-20.523-.447-20.523l-2.453 1.563s-2.566 10.93-5.8 12.604c-.546-1.302-.447-1.785-.447-1.785s-3.457 4.462-4.127 4.908c-.67.446.224 15.058.224 15.058s1.16 10.59 2.5 10.48c-1.523.745-3.393 1.903-3.393 1.903l-1.387-28.277 3.172-3.178s4.237-5.13 4.572-10.15c-1.84 1.56-3.904 2.008-3.904 2.008s-.558 7.138-2.23 8.142c-1.674 1.004-1.72 2.866-1.72 2.866l-.397-9.328 25.763-17.295z" fill-rule="evenodd" stroke="#474747" stroke-width="1.075" fill="#474747"/> - <path d="M345.128 213.14l2.176 44.61" stroke="#000" stroke-linecap="round" stroke-width="1.075" fill="none"/> - <path d="M317.694 234.443s5.13 3.012 7.027 12.158c16.73-1.226 21.974 4.686 21.974 4.686s13.72-6.58 20.077-5.354c2.23-4.685 8.59-10.708 8.59-10.708" stroke="#000" stroke-width=".86pt" fill="none"/> - <path d="M310.694 190.72l34.438 22.532 31.008-20.858s6.47-3.57 5.912-6.134-2.788-1.562-3.904-1.116c-1.115.447-32.458 22.642-32.458 22.642l-33.35-21.08s-2.454-.78-2.9.78.92 2.455 1.253 3.235z" fill-rule="evenodd" stroke="#000" stroke-width=".86pt" fill="#b4b6b9"/> - <path stroke-linejoin="round" d="M372.278 184.873s-8.81-3.74-8.81-.5c0 3.243.248 3.575 1.66 5.654 1.414 2.078-1.08 3.408-1.08 3.408s-.332-.914-.83-2.328c-.5-1.413-5.238-2.41-5.653-4.073-.416-1.662.997-4.323-1.83-4.655-2.826-.334-5.57 1.163-6.15 4.405-.583 3.242-4.24 10.807-4.24 10.807l.5-17.208c6.205.443 17.733 1.8 26.6 2.826-2.66-.415.997.166.914 1.08-.25.75-1.165.832-1.082.583zm-31.175-4.326c-1.58 0-9.476.915-11.47 2.078-1.996 1.164 3.24 2.993 2.576 4.572-.666 1.58-.75 4.74-3.243 4.074-2.494-.664-10.89-4.82-11.14-6.234-.248-1.413-1.994-1.496-1.994-1.496s24.107-3.242 25.27-2.993z" fill-rule="evenodd" stroke="#474747" stroke-width="1.075" fill="#474747"/> - <path d="M344.904 178.57l-.06 21.14m-16.219-46.047s-9.66 15.684-9.85 16.162" stroke="#000" stroke-width=".86pt" fill="none"/> - <path d="M161.8 129.74s4.893 6.672 4.337 8.562c2 1.557 4.225 7.784 4.225 7.784" fill-rule="evenodd" stroke="#000" stroke-width="1pt" fill="url(#g)" transform="matrix(.86 0 0 .86 207.27 41.7)"/> - <path d="M362.672 152.322s-9.085 12.815-8.798 13.77" stroke="#000" stroke-width=".86pt" fill="none"/> - <path d="M316.213 91.426c-.206.717-1.364.995-2.588.62s-2.048-1.26-1.842-1.976c.206-.717 1.365-.995 2.588-.62s2.05 1.26 1.843 1.976zm3.673-.253c.206.717 1.364.995 2.588.62s2.047-1.26 1.842-1.976c-.206-.717-1.365-.995-2.588-.62s-2.048 1.26-1.842 1.976z" fill-rule="evenodd"/> - <path stroke-linejoin="round" d="M426.13 356.572s-3.367.63-3.262.947-9.79.63-10 .315c-.212-.316-1.475 1.684-1.475 1.684l1.58-.948s2.42 2.527 3.158 2.316c.737-.21-.315.947-.105 1.158.21.21.948-.42.948-.42l16.36-.275-7.2-4.778z" fill-rule="evenodd" stroke="#000" stroke-width=".86pt" fill="#ff7000"/> - <path stroke-linejoin="round" d="M432.23 361.663l-13.363.387s-3.37 3.053-3.58 3.79 2.21.947 2.21.947l.738 2.527 1.685-.632s11.36 1.69 21.79-.632c5.265-1.842 6.186-4.053 2.5-5.395-3.683-1.342-11.876-.94-11.98-.992z" fill-rule="evenodd" stroke="#000" stroke-width="1.075" fill="#ff7000"/> - <path d="M208.37 403.93l27.97-1.246-5.208-4.416 75.647-3.058-2.606-6.002-84.707 3.398 10.192 4.756-22.876.68.68 2.377-6.002-.227s6.68 2.605 6.908 3.737z" fill-rule="evenodd" stroke="#000" stroke-width="1pt" fill="url(#h)" transform="matrix(.86 0 0 .86 207.27 41.7)"/> - <path d="M239.73 249.42c-2.222-1.11-11.998-2.444-22.884 4.666l.444 25.106s15.997-8.665 23.773-6.666c-.444-7.776-.444-17.774-1.333-23.106z" fill-rule="evenodd" stroke="#000" stroke-width="1pt" fill="url(#i)" transform="matrix(.86 0 0 .86 207.27 41.7)"/> - <path d="M280.434 321.76l-56.723 56.31m82.003-55.898l-46.037 60.63m43.983-76.454l-61.452 74.398m-1.85-1.032l5.96-6.987m69.054-28.977l-23.84 32.886m-1.029 4.317l.617 12.53m35.14-38.227l-25.278 31.65m20.763-2.462l10.276-16.852m-6.371-3.289l-12.332 13.975m8.632-27.124l-8.425 10.276m-2.47-25.283s-25.69 37.61-25.278 40.692m22.603-45.619c-.616.41-22.196 28.977-22.196 28.977m-1.229 9.033l-3.905 4.728m-4.933 7.202l-5.96 7.808" stroke="#000" stroke-width=".86pt" fill="none"/> - <path d="M277.627 235.2s-1.74 5.47 0 8.204 12.68 24.86 12.68 24.86 7.458-9.197 10.193-9.446c2.735-.248 1.49 23.867 1.49 23.867s-4.473 4.227-7.208 3.978c-2.735-.248 6.712 9.447 6.464 17.652s-12.43 48.976-16.906 49.722c-4.475.746 1.99-7.458 1.74-9.696-.25-2.236-1.492-.745-2.486-3.23-.995-2.487 1.492-6.216.994-8.702s-2.734-1.99-2.983-3.73 1.492-2.237 1.243-4.225c-.25-1.99-2.983-1.493-2.735-3.233.25-1.74.498-.994.25-4.226-.25-3.232-.747 2.237-3.482 2.486-2.733.25-4.97 6.464-4.97 6.464s-5.47 7.707-10.94 4.226c3.232 6.96.746 9.945-.497 10.193s.994 5.47-1.99 5.72 2.238 11.683-1.242 12.677c3.73 1.74.747 3.98.747 3.98s-8.618.715-6.713 11.932c-25.36-8.935-37.79-24.346-37.54-40.007.248-15.662 5.22-29.833 17.402-35.054 3.48-12.928 9.447-26.85 9.447-26.85s-.994-5.718-.248-9.447c.746-3.73 4.226-7.458 4.226-7.458s-.496-8.95-.247-13.425c.248-4.475 1.99-6.465 2.237-8.95.25-2.486-.746-15.166 1.74-17.403 2.487-2.238 7.21-1.99 9.696-3.48 2.486-1.492 5.718-4.227 8.95-3.98s5.967 2.488 5.967 2.488 12.182 0 12.927 4.724c.746 4.722-2.486 6.462-2.486 6.462s1.74 6.713-5.718 12.928z" fill-rule="evenodd" stroke="#2b2b2b" stroke-width=".86pt" fill="#8a9396"/> - <path d="M266.852 218.097c.39.722-.5 1.96-1.986 2.764s-3.01.875-3.4.153c-.39-.72.498-1.958 1.986-2.764s3.01-.874 3.4-.153z" fill-rule="evenodd" stroke="#2b2b2b" stroke-width="1.147" fill="#cecfcf"/> - <path d="M264.787 219.354c0 .455-.414.824-.925.824-.51 0-.924-.37-.924-.824 0-.454.414-.823.924-.823s.925.37.925.824z" fill-rule="evenodd"/> - <path d="M282.925 227.46s3.02 13.48-.59 22.793m1.519-28.693s5.89 7.792 5.13 17.483m-4.56-19.193c.19 0 4.94 4.18 4.75 7.03m-3.61-8.742s3.23 2.28 3.99 4.56" stroke="#2b2b2b" stroke-width=".537" fill="none"/> - <path d="M284.044 216.805s-11.592 18.813-10.072 30.595" stroke="#000" stroke-width=".86pt" fill="none"/> - <path d="M284.804 216.237s-15.393 9.122-18.243 38.957" stroke="#2b2b2b" stroke-width=".537" fill="none"/> - <path d="M283.094 221.75l-6.082 4.56" stroke="#000" stroke-width=".86pt" fill="none"/> - <path d="M260.86 256.906s8.552-35.537 23.754-40.667" stroke="#2b2b2b" stroke-width=".537" fill="none"/> - <path d="M290.505 268.878s8.172-10.262 10.072-9.882c1.9.38 1.33 23.754 1.33 23.754s-6.08 4.56-7.412 4.37c-1.33-.19 6.842 11.023 6.652 15.204-.19 4.18-.38 4.18-.38 4.18s0-2.47-1.9-6.46c-1.9-3.99-.76-8.552-13.113-18.624-3.04-6.27 6.08 3.8 7.98 2.28 1.902-1.52-3.42-14.632-3.23-14.822z" fill-rule="evenodd" stroke="#2b2b2b" stroke-width=".86pt" fill="#2b2b2b"/> - <path d="M275.978 211.086s-3.435.936-3.904 2.342c-.468 1.405-2.498 2.81-3.59 2.342-1.094-.468-3.125-2.186-3.125-2.186" stroke="#2b2b2b" stroke-width=".86pt" fill="none"/> - <path stroke-linejoin="round" d="M256.46 223.108s-5.155 5.154-2.656 5.778c2.498.625 5.153-4.06 5.153-4.06s0 7.964 2.186 6.715 8.59-5.777 8.59-5.777 2.185-.156 2.653 0c.47.156 5.934 4.84 9.526 3.123-2.03 5.31-4.373 5.934-4.373 5.934s-3.748 4.84-8.59 3.748c-4.84-1.093-6.09-3.123-6.09-3.123s-4.06.312-5.308-1.562c-1.25-1.874-1.718-2.967-1.718-2.967s-2.342 2.343-2.967 1.25c-.625-1.094 0-7.496 3.59-9.057z" fill-rule="evenodd" stroke="#2b2b2b" stroke-width="1.075" fill="#2b2b2b"/> - <path d="M285.66 215.927s-9.526-2.81-12.805 1.874c-3.28 4.686-2.498 7.34-.78 7.81" stroke="#2b2b2b" stroke-width=".86pt" fill="none"/> - <path d="M287.13 215.66c0 1.124-.804 2.034-1.796 2.034s-1.796-.91-1.796-2.033.804-2.033 1.796-2.033 1.796.91 1.796 2.034z" fill-rule="evenodd"/> - <path d="M259.407 239.964s3.884 5.976 8.515 7.62-3.212 3.062-7.843-.075c-3.362-4.558-2.466-7.844-2.466-7.844s.896-.897 1.793.298zm33.24 35.26s-10.906-15.162-14.043-15.984c-3.138-.822 2.39-1.494 5.75 1.718 3.362 3.212-.895-5.23-.895-5.23l9.186 19.496z" fill-rule="evenodd" stroke="#2b2b2b" stroke-width=".86pt" fill="#2b2b2b"/> - <path stroke-linejoin="round" d="M258.362 362.84c4.183-1.12 22.408 10.46 26.516 13.372 4.108 2.913 12.698 1.045 12.698 1.045s-3.96 2.39-6.424 2.988 7.32.598 7.32.598-23.305 6.423-46.983-6.05c-2.167-9.71 5.078-11.877 6.87-11.952z" fill-rule="evenodd" stroke="#2b2b2b" stroke-width="1.075" fill="#2b2b2b"/> - <path d="M285.028 278.957s-3.063-.598-4.63-2.39c-1.57-1.793-3.81-6.2-6.126-8.068s-13.894-8.217-18.077-7.77c-4.183.45-5.452-.447-5.975-.97-.523-.523-2.24.224-1.942 2.39.298 2.167-3.212 6.947-1.942 9.188 1.27 2.24 7.245 11.353 8.44 11.652 1.195.3.448 5.303.448 5.303s5.304 5.378 6.648 5.677c1.345.3 2.69 1.27 2.54 2.54-.15 1.27-5.826 8.216-5.826 8.216s-6.125 3.212-6.2 5.005c-.075 1.793 1.494 5.528 6.35 6.723 4.854 1.195 17.926.224 18.598-.896.672-1.12 1.718-7.843 1.27-8.515-.448-.673-3.66-2.69-5.303-2.39-1.643.298-3.137 1.643-2.987 1.94.15.3-2.316 1.57-2.316.375s4.855-6.573 5.304-6.125c.45.448 7.32 1.12 8.59 4.556s1.27 5.9 4.856 5.528c3.585-.374 8.59-3.66 9.037-10.532.45-6.872-4.033-11.503-5.154-12.175-1.12-.673-4.856-2.914-5.155-3.96-.298-1.045-1.045-4.48-.448-5.303z" fill-rule="evenodd" stroke="#2b2b2b" stroke-width=".86pt" fill="#2b2b2b"/> - <path d="M220.416 309.29s11.577-2.99 14.566-2.914c2.988.075 14.266 5.303 17.553 8.515 3.287 3.213 10.01 10.832 14.416 10.16 4.408-.673 5.678-1.57 5.678-1.57l-1.718 3.287s-3.585.97-5.378.523c-1.792-.448-5.303-1.568-8.814-5.004-3.51-3.436-14.34-12.698-23.53-12.026-9.186.672-14.49 9.71-14.49 9.71s.075-4.407.45-5.378c.372-.97-1.944 2.09-1.944 2.09l3.212-7.394z" fill-rule="evenodd" stroke="#2b2b2b" stroke-width=".86pt" fill="#2b2b2b"/> - <path d="M263.067 318.25c.074.075 2.913.822 7.693.822s7.32-2.092 7.32-2.092l-.298-1.867.747-2.614s3.66 3.733 3.584 4.48c-.075.747-1.494 1.046-1.494 1.046l-.523-1.793-1.27 1.57s-6.946 5.526-10.756 4.705c-3.808-.822-7.32-3.287-6.348-3.884s1.494-.374 1.345-.374zm-16.881 9.787s-4.183-.075-6.05.822c-1.868.895-2.54 2.015-3.81 1.866-1.27-.15-2.24-1.793-1.867-2.465.522-1.045 2.987-2.39 7.692-2.016s4.034 1.793 4.034 1.793zm14.641 11.353c0-.225-.3-6.126-2.615-8.516s-5.154-2.39-6.424-2.092c-1.27.3 4.706 2.913 5.304 4.63.597 1.72 2.54 6.5 2.017 7.695-.524 1.195-1.495-3.36-5.155-4.63s-8.74-.6-7.694 1.045 5.155.15 7.246 3.66 3.66 7.245 3.66 7.245l.673-2.54 1.866-.522.224-4.856.897-1.12z" fill-rule="evenodd" stroke="#2b2b2b" stroke-width=".86pt" fill="#2b2b2b"/> - <path stroke-linejoin="round" d="M257.84 358.507l-3.81-7.62s-1.196-4.854-4.408-6.2c-3.212-1.343-7.47-1.12-7.544.524-.074 1.644 6.872 3.736 7.32 4.632.45.897.224 2.39-.373 2.465-.598.075-3.66-1.12-5.23-.747-1.567.374-2.464 2.39-4.78 1.793-2.315-.598-4.257-7.993-3.36-8.74.896-.746-1.718 1.345-2.24-.597-.524-1.942.746-7.992-.15-8.74-.897-.746-5.23-3.36-5.304-3.883-.074-.523.225-29.73 24.65-5.528-10.457-12.4-14.566-11.054-16.507-11.13-1.42 0-10.906.822-13.296 12.923-2.39 12.1-5.23 4.557-5.23 4.557s-.522 5.228 2.018 6.722c2.54 1.494-1.195 5.826-1.195 5.826s-4.556-11.13-3.884-15.985c-.897 3.885-.822 13.52 4.93 24.052 6.722 7.096 13.072 13.67 29.953 21.064 8.888-13.595 8.44-15.237 8.44-15.387z" fill-rule="evenodd" stroke="#2b2b2b" stroke-width="1.075" fill="#2b2b2b"/> - <path stroke-linejoin="round" d="M241.854 358.584s4.93.598 6.274 3.137c1.345 2.54 1.942 6.425 1.942 6.425.822-1.643 1.196-3.062 2.84-4.257s2.837-1.345 2.763-2.24c-.075-.898-5.23-6.35-7.843-6.65-2.615-.298-7.17 2.84-7.17 2.84s-.823 1.194 1.194.746z" fill-rule="evenodd" stroke="#2b2b2b" stroke-width="1.075" fill="#8a9396"/> - <path d="M253.114 371.433s12.776 5.824 33.82 6.2" stroke="#8a9396" stroke-linecap="round" stroke-width="1.075" fill="none"/> - <path d="M295.764 312.127s-1.1 10.72-9.345 31.88" stroke="#2b2b2b" stroke-linecap="round" stroke-width="1.075" fill="none"/> - <path d="M294.12 318.723s-2.472 7.696-9.343 13.467" stroke="#2b2b2b" stroke-width=".86pt" fill="none"/> - </g> -</svg> diff --git a/img/flags/1x1/gt.svg b/img/flags/1x1/gt.svg deleted file mode 100644 index 8ce5e46..0000000 --- a/img/flags/1x1/gt.svg +++ /dev/null @@ -1,204 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" height="512" width="512" viewBox="0 0 512 512"> - <defs> - <radialGradient id="a"> - <stop offset=".216" stop-color="#f9f0aa"/> - <stop offset="1" stop-color="#b07e09"/> - </radialGradient> - <radialGradient r="16.534" cy="308.269" cx="447.418" gradientUnits="userSpaceOnUse" xlink:href="#a" id="d"/> - <radialGradient r="10.911" cy="312.995" cx="451.558" gradientUnits="userSpaceOnUse" xlink:href="#a" id="e"/> - <radialGradient r="9.78" cy="308.643" cx="454.11" gradientUnits="userSpaceOnUse" xlink:href="#a" id="f"/> - <radialGradient r="17.354" cy="307.057" cx="458.39" gradientUnits="userSpaceOnUse" xlink:href="#a" id="g"/> - <radialGradient r="13.018" cy="252.363" cx="445.976" gradientUnits="userSpaceOnUse" xlink:href="#a" id="j"/> - <radialGradient r=".345" cy="215.266" cx="477.858" gradientUnits="userSpaceOnUse" id="m"> - <stop offset=".259" stop-color="#a50a0a"/> - <stop offset="1" stop-color="#4c0505"/> - </radialGradient> - <radialGradient id="n" gradientTransform="scale(.97707 1.02346)" cx="489.072" cy="210.326" fx="489.072" fy="210.326" r=".345" gradientUnits="userSpaceOnUse"> - <stop offset="0" stop-color="#fff"/> - <stop offset="1" stop-opacity="0" stop-color="#fff"/> - </radialGradient> - <linearGradient y2="231.963" x2="472.357" y1="259.171" x1="473.906" gradientUnits="userSpaceOnUse" id="h"> - <stop offset=".216" stop-opacity="0" stop-color="#b07e09"/> - <stop offset="1" stop-color="#b07e09"/> - </linearGradient> - <linearGradient y2="326.583" x2="485.495" y1="296.656" x1="483.126" gradientUnits="userSpaceOnUse" id="i"> - <stop offset=".216" stop-opacity="0" stop-color="#b07e09"/> - <stop offset="1" stop-color="#b07e09"/> - </linearGradient> - <linearGradient y2="240.576" x2="455.366" y1="249.523" x1="451.541" gradientUnits="userSpaceOnUse" id="k"> - <stop offset=".216" stop-color="#f9f0aa"/> - <stop offset="1" stop-color="#b07e09"/> - </linearGradient> - <linearGradient y2="270.446" x2="475.929" y1="237.247" x1="473.314" gradientUnits="userSpaceOnUse" id="l"> - <stop offset=".216" stop-color="#f9f0aa"/> - <stop offset="1" stop-color="#b07e09"/> - </linearGradient> - </defs> - <path fill="#4997d0" d="M0 0h512v512H0z"/> - <path fill="#fff" d="M170.667 0h170.667v512H170.667z"/> - <g transform="translate(0 96) scale(.53333)"> - <g stroke="#24420e"> - <path d="M452.12 377.48c2.67-.407 4.208-1.138 6.035-1.786m2.215-4.054c1.347 1.43 2.417 2.95 2.993 4.635m-8.113-5.075c1.405 1.313 2.376 2.712 3.138 4.152M408.81 238.77c-1.044 1.602-3.092 2.726-4.78 3.428m-.34-.198c.035-1.368-.236-3.026.05-4.394m-1.98 5.024c.114.37.435 1.4.676 2.028m2.024.922c-.378.082-1.52.257-2.028.338m-3.952-.878c-.013 2.52.286 5.553.53 7.82m-1.79-.96c.472.757.947 1.504 1.545 1.883m-4.585 6.467c.49.94.943 2.122 1.304 3.96m3.716-4.63c-.414.205-1.215.93-1.93 1.545m1.59 4.395c-.98.872-2.198 1.504-3.428 2.124m-3.812 40.406c1.153 1.893 2.42 3.56 3.96 4.684m.58 1.686c-1.294-.166-2.16-.545-2.945-.966m4.395 8.406l1.69.966m-.44 3.474c1.255.816 2.51 2.283 3.765 3.862m-1.445 2.848c1.385.293 2.493.64 3.235 1.062m-1.065 2.418l2.124.072m1.206-5.382c-.102 1.534-.253 2.972-.483 4.25m1.013 1.59l.434-1.642m4.686 5.992l-.146 3.236m39.206 27.904l-1.16 1.593m-2.41-3.913l-.676-1.834" fill="none" stroke-width=".437"/> - <g stroke-width=".164"> - <path d="M486.11 384.93c-.797-1.256-2.108-2.028-3.277-2.656-7.727-4.056-15.406-5.843-24.116-7.244-2.013-.337-4.027-2.22-6.087-3.187-4.963-2.365-10.49-3.284-15.31-5.697-.33-.146-1.546-.87-2.11-1.545-1.918-2.22-5.384-2.898-7.537-4.974-8.335-7.87-17.184-15.116-21.772-25.547-5.572-12.7-12.503-25.787-11.566-40.227.608-9.126-.75-18.35 1.497-27.043 3.326-12.894 7.588-25.64 15.407-36.314l-1.31.82c-7.868 10.675-12.128 23.423-15.453 36.316-2.248 8.692-.89 17.916-1.5 27.043-.935 14.44 5.996 27.526 11.568 40.274 4.588 10.382 13.485 17.625 21.774 25.546 2.154 2.027 5.62 2.703 7.54 4.973.56.626 1.824 1.4 2.105 1.544 4.825 2.415 10.35 3.332 15.314 5.65 2.06 1.014 4.074 2.85 6.087 3.188 8.71 1.4 16.39 3.235 24.116 7.242 1.217.628 2.482 1.4 3.28 2.657l1.356-.82" fill="#406325"/> - <g fill="#67923d"> - <path d="M406.34 331.62c-2.794-6.3-1.365-21.608-.198-23.53 6.633 13.006 4.425 23.74.198 23.53zm45.86 45.39c-7.092.364-20.61 9.295-21.864 11.396 15.085.116 24.02-7.315 21.864-11.396zm7.46-4.29c-6.845-5.45-14.19-23.66-14.032-26.5 15.11 10.833 18.936 24.28 14.032 26.5z"/> - <path d="M454.61 372.78c-6.95-4.235-15.786-20.115-15.938-22.754 15.202 8.194 20.198 20.13 15.938 22.754zM439.05 366c.984-7.822-5.666-24.24-7.585-25.98-2.95 16.468 2.997 27.574 7.585 25.98zm-27.31-24.28c-2.304-5.646-.613-19.32.47-20.998 5.52 11.696 3.264 21.218-.47 20.998zm-13.71-76.83c3.59-6.648 18.38-15.712 20.99-15.93-6.77 14.568-18.037 19.828-20.99 15.93z"/> - <path d="M398.74 259.33c2.148-7.282 14.874-19.265 17.36-20.034-3.727 15.676-13.678 23.18-17.36 20.034zm27.81 99.15c-4.992-6.176-8.011-23.865-7.29-26.36 11.27 12.514 12.03 25.233 7.29 26.36zm-28.65-36.46c-6.91 1.089-21.36-4.636-22.92-6.337 14.532-3.15 24.287 2.072 22.92 6.337zm-2.22-9.68c.823-5.577 8.665-15.81 10.36-16.66-1.11 11.958-7.448 18.6-10.36 16.66zm51.33 58.54c-8.475.435-24.63 11.107-26.128 13.618 18.028.143 28.705-8.74 26.128-13.618z"/> - </g> - <g fill="#406325"> - <path d="M406.41 331.47c4.227.21 6.405-10.396-.27-23.38 1.212 12.32 1.21 22.31.27 23.38zm11.18 19.99c-4.474-5.47-19.38-11.328-21.712-11.14 8.885 12.08 19.88 15.096 21.712 11.14zm-24.42-52.98c-1.147-8.043-12.334-22.713-14.743-23.97 1.517 17.176 10.548 26.698 14.743 23.97zm8.39 34.29c-4.993-3.68-18.97-5.344-20.94-4.723 10.137 8.305 20.212 8.458 20.94 4.723zm-9.36-24.83c-2.885-5.69-14.812-13.482-16.892-13.7 5.517 12.386 14.558 16.938 16.892 13.7zm2.73-47.54c.905-7.573-5.533-23.446-7.345-25.158-2.866 15.925 2.918 26.664 7.345 25.158zm4.47-14.92c2.658-6.496.756-22.43-.522-24.417-6.403 13.51-3.827 24.648.522 24.417z"/> - <path d="M404.42 237.83c3.136-4.77 4.162-17.685 3.485-19.47-7.236 9.715-6.958 18.944-3.485 19.47zm5.95-6.14c4.402-3.477 9.224-15.5 9.084-17.433-9.74 6.954-12.22 15.84-9.084 17.433zm-16.05 43.2c.108.868-.978-8.18-10.054-18.314.41 14.818 6.25 20.42 10.054 18.314zm32.56 85.78c-6.176-4.56-23.385-6.729-25.767-5.927 12.562 10.355 24.878 10.55 25.767 5.927zm12.07 5.24c-4.542 1.593-10.443-9.417-7.54-25.883 2.81 13.955 6.18 25.063 7.54 25.883zm13.3 11.15c2.116 4.082-6.7 11.436-21.787 11.315 11.952-4.89 21.24-9.86 21.787-11.315zm7.39-4.47c4.865-2.25 1.1-15.536-14.01-26.37 8.596 13.215 14.456 24.61 14.01 26.37z"/> - <path d="M454.57 372.67c4.278-2.666-.69-14.444-15.89-22.64 9.403 11.184 16.094 20.968 15.89 22.64zm-42.79-30.99c3.735.222 5.957-9.262.477-20.924.718 10.974.418 19.978-.477 20.924zm-13.76-76.74c2.95 3.897 14.055-1.31 20.837-15.923-10.165 9.338-19.225 16.064-20.837 15.923z"/> - <path d="M398.86 259.33c3.682 3.145 13.542-4.302 17.27-19.977-8.097 11.245-15.645 19.736-17.27 19.977zm27.72 99.09c4.74-1.125 3.954-13.784-7.254-26.272 5.013 13.416 8.016 24.756 7.254 26.272zm-28.87-36.46c1.407-4.24-8.297-9.37-22.803-6.26 12.26 2.196 22.043 5.043 22.803 6.26zm-1.94-9.61c2.903 1.887 9.178-4.66 10.286-16.617-4.674 9.18-9.166 16.265-10.286 16.617zm51.2 58.68c2.576 4.876-7.96 13.667-26.035 13.522 14.283-5.844 25.38-11.783 26.035-13.522z"/> - <path d="M399.36 326.3c-2.658-6.262-14.798-15.462-16.982-15.84 4.946 13.637 14.248 19.145 16.982 15.84z"/> - </g> - <g fill="#67923d"> - <path d="M392.42 273.92c4.074-4.666 17.47-9.134 19.6-8.865-8.043 10.41-17.942 12.515-19.6 8.865zm25.07 77.59c-1.807 3.918-12.696.916-21.646-11.152 10.885 6.83 20.244 11.51 21.646 11.152zm-24.39-53.05c-4.195 2.727-13.128-6.738-14.685-23.884 6.623 13.203 13.037 23.384 14.685 23.884zm8.42 34.34c-.77 3.73-10.688 3.59-20.864-4.717 10.73 3.406 19.74 5.332 20.864 4.717zm-9.45-24.95c-2.333 3.24-11.29-1.27-16.807-13.657 8.192 7.967 15.492 13.744 16.807 13.657zm2.76-47.55c-4.427 1.556-10.16-9.08-7.294-25.005 2.667 13.488 5.935 24.175 7.294 25.005zm4.47-14.86c-4.304.227-6.87-10.815-.468-24.322-.822 12.797-.507 23.234.468 24.322zm5.04-7.67c-3.473-.525-3.717-9.655 3.52-19.37-2.74 9.977-4.15 18.367-3.52 19.37zm5.98-6.08c-3.136-1.643-.7-10.43 9.038-17.337-5.526 8.644-9.318 16.178-9.038 17.337z"/> - <path d="M394.25 274.9c-3.804 2.106-9.577-3.503-9.987-18.322 5.102 11.684 8.603 17.807 9.987 18.322zm32.57 85.8c-.886 4.625-13.144 4.4-25.678-5.895 13.168 4.274 24.246 6.694 25.678 5.895zm-8.17-9.48c-4.023-4.343-7.158-17.347-6.747-19.242 9.012 8.743 10.215 18.165 6.747 19.242zm-16.88-24.99c-3.57-5.786-3.876-20.907-2.92-22.956 8.264 11.81 7.254 22.585 2.92 22.956zm-2.63.09c-2.736 3.305-11.93-2.159-16.872-15.833 8.132 9.11 15.474 15.812 16.872 15.833z"/> - </g> - <g fill="#406325"> - <path d="M392.37 274c1.617 3.623 11.45 1.53 19.493-8.88-11.97 6.793-16.71 9.74-19.493 8.88zm9.34 52.07c4.332-.37 5.33-11.037-2.933-22.846 2.664 11.854 3.79 21.678 2.933 22.846zm16.96 25.11c3.47-1.07 2.25-10.45-6.713-19.178 4.403 9.727 7.205 18.01 6.713 19.178z"/> - <path d="M394.23 291.77c2.058-8.386-1.702-22.6-4.3-25.56-4.716 15.428-.245 26.6 4.3 25.56z"/> - </g> - <path d="M393.93 293.77c-5.895 1.34-8.645-12.034-4.08-27.078 1.07 13.546 2.834 26.147 4.08 27.078z" fill="#67923d"/> - <path d="M392.73 293.72c-.558-7.527 6.934-23.087 8.915-24.707 2.015 15.803-4.462 26.308-8.915 24.707z" fill="#67923d"/> - <path d="M392.84 293.61c4.413 1.636 10.85-8.76 8.835-24.564-3.51 13.267-7.445 23.764-8.835 24.564z" fill="#406325"/> - <path d="M394.13 303.26c.005-7.61 8.47-22.23 10.562-23.62.834 16.163-6.332 25.83-10.562 23.62z" fill="#67923d"/> - <path d="M394.21 303.41c4.23 2.21 11.306-7.364 10.47-23.525-4.408 12.857-9.047 22.9-10.47 23.525z" fill="#406325"/> - </g> - <g fill="#ba1f3e" stroke="#511124" stroke-width=".218"> - <circle cx="396.835" cy="251.27" r="1.085" stroke-width=".186"/> - <circle cx="405.205" cy="245.07" r="1.085" stroke-width=".186"/> - <circle cx="401.564" cy="241.71" r="1.086" stroke-width=".186"/> - <circle cx="392.503" cy="313.12" r="1.277"/> - <circle cx="395.033" cy="297.13" r="1.277"/> - <circle cx="408.213" cy="334.46" r="1.277"/> - <circle cx="402.393" cy="336.43" r="1.277"/> - <circle cx="446.703" cy="367.63" r="1.277"/> - <circle cx="449.613" cy="374.71" r="1.277"/> - </g> - </g> - <g stroke="#24420e"> - <path d="M561.15 258.97c.623.62 1.174.808 2.295 1.895m-6.625-18.945c-.035-1.368-.633-3.605-.918-4.973m3.448 2.983c.055 1.952-.218 3.81-1.062 5.504m-4.158-.534c1.753 1.576 3.505 3.077 5.258 3.892m3.822 1.228c.105 1.98-.142 3.96-.683 5.94m.323 1.51l1.314-2.262M562.3 267.43c1.4.29 2.81 1.946 3.505 3.482m.475-1.292l1.64-2.185m1.71 30.725a23.9 23.9 0 0 1-2.458 3.483m-3.962-.073c.79 1.456 1.556 2.946 2.595 4.03m2.455 5.87c-1.307 1.773-2.766 3.165-4.438 4.03m.138 4.5c-1.093.75-2.426 2.953-3.687 4.712m8.437-20.182l-2.124.87m-1.396-7.49l1.256 1.11m-9.296 37.39c-.84-.108-1.456.01-2.124.072m-1.996-1.932l.615 1.64m-7.715 5.12c-.262 1.866-.072 3.733.204 5.6m4.306-9.02l1.024 2.254m3.826-.204l-2.526.41m-30.854 25.27l-.917 1.738m11.897-3.928c-1.492.187-2.778-.043-4.097-.204m-5.463 5.944a27.282 27.282 0 0 0-2.936-.956m-14.744 2.656c-.906.773-1.99 2.435-3.073 4.097m-.547-4.567c-2.433 1.253-3.182 3.71-4.438 5.804m2.798 2.866c-1.553-.46-3.412-1.228-5.326-2.048m16.766-.682c-2.32-1.205-4.748-1.087-7.135-1.468m10.755-.342c-3.628-.707-7.01-.61-10.276-.137m7.776-2.603l-1.4-.58m-5.53 5.5l-2.323-1.296m57.943-49.194c-1.256.816-2.51 2.283-3.766 3.863m1.826-79.623l-2.153-.724" fill="none" stroke-width=".437"/> - <g stroke-width=".164"> - <path d="M474.39 384.85c.797-1.256 2.108-2.028 3.277-2.656 7.726-4.056 15.406-5.843 24.117-7.244 2.013-.337 4.027-2.22 6.087-3.187 4.964-2.365 10.49-3.284 15.312-5.697.328-.146 1.545-.87 2.108-1.545 1.92-2.22 5.385-2.898 7.54-4.974 8.333-7.87 17.183-15.116 21.77-25.546 5.573-12.7 12.504-25.787 11.568-40.225-.61-9.126.75-18.35-1.498-27.043-3.326-12.893-7.59-25.643-15.408-36.314l1.31.82c7.868 10.675 12.128 23.424 15.453 36.315 2.248 8.692.89 17.916 1.5 27.043.935 14.44-5.996 27.526-11.567 40.275-4.59 10.384-13.486 17.627-21.774 25.547-2.154 2.027-5.62 2.703-7.54 4.973-.56.627-1.825 1.4-2.106 1.545-4.823 2.415-10.35 3.332-15.313 5.65-2.06 1.014-4.073 2.85-6.087 3.188-8.71 1.4-16.388 3.235-24.113 7.242-1.217.628-2.482 1.4-3.278 2.657l-1.358-.822" fill="#406325"/> - <g fill="#406325"> - <path d="M553.65 334.6c2.74-7.416-.01-24.838-1.49-26.95-6.648 15.37-3.34 27.5 1.49 26.95z"/> - <path d="M546.54 341.64c2.304-5.646.613-19.32-.47-20.998-5.52 11.696-3.265 21.218.47 20.998zm16.81-74.15c-3.293-6.1-16.867-14.418-19.26-14.618 6.212 13.368 16.55 18.195 19.26 14.618z"/> - <path d="M561.76 259.47c-1.79-6.068-12.395-16.053-14.466-16.694 3.105 13.063 11.398 19.315 14.466 16.694zm4.74 14.96c-3.537-4.05-15.164-7.928-17.013-7.695 6.98 9.036 15.572 10.864 17.013 7.695zm-2.8 46.33c6.132.966 18.96-4.115 20.345-5.625-12.9-2.797-21.56 1.84-20.345 5.625zm-.15-5.64c-.043-5.638-6.395-16.856-7.956-17.933-.556 11.996 4.803 19.453 7.956 17.933z"/> - <path d="M563.96 301.44c-.005-7.61-8.47-22.23-10.562-23.62-.834 16.162 6.332 25.83 10.562 23.62zm-52.89 75.27c4.477 5.503 19.653 11.133 22.088 10.904-8.805-12.233-20.07-15.05-22.088-10.904z"/> - </g> - <g fill="#67923d"> - <path d="M553.56 334.43c-4.824.55-8.09-11.437-1.395-26.785-.49 14.192.24 25.63 1.395 26.785zm-53.37 43.66c7.093.363 20.61 9.295 21.865 11.396-15.086.117-24.02-7.315-21.865-11.396zm0-7.94c2.098-7.967 15.006-21.21 17.514-22.15-3.603 17.133-13.74 25.534-17.514 22.15zm21.27-4.23c-.985-7.822 5.665-24.24 7.585-25.98 2.95 16.467-2.997 27.575-7.585 25.98zm21.46-14.54c4.474-5.47 19.38-11.328 21.712-11.14-8.885 12.08-19.88 15.096-21.712 11.14zm25.79-53.26c.903-6.332 9.71-17.88 11.606-18.87-1.194 13.52-8.304 21.018-11.606 18.87z"/> - <path d="M557.02 336.18c5.817-4.29 22.105-6.228 24.4-5.504-11.814 9.676-23.553 9.855-24.4 5.504zm10.27-24.52c3.033-5.98 15.566-14.17 17.754-14.4-5.8 13.02-15.3 17.803-17.754 14.4zm-1.48-45.56c-.098-7.625 7.984-22.728 9.966-24.24 1.165 16.14-5.723 26.206-9.965 24.24zm-6.93-25.92c-2.322-5.28-1.1-18.414-.093-20.074 5.55 10.963 3.672 20.17.093 20.074zm-4.23-2.18c-5.274-4.683-10.645-19.756-10.41-22.103 11.75 9.263 14.385 20.36 10.41 22.103z"/> - <path d="M566.28 272.54c-.317.815 2.945-7.695 14.22-15.308-4.013 14.27-11.045 18.28-14.22 15.308zm-34.1 89.9c7.006-5.173 26.532-7.634 29.232-6.724-14.253 11.748-28.225 11.97-29.232 6.724zm14.33-20.84c-3.735.222-5.957-9.262-.477-20.924-.72 10.974-.418 19.978.477 20.924zm16.85-74.07c-2.708 3.576-12.897-1.202-19.12-14.61 9.327 8.57 17.64 14.74 19.12 14.61zm-1.7-8.06c-3.068 2.62-11.285-3.583-14.39-16.646 6.745 9.37 13.035 16.446 14.39 16.646zm4.89 15.03c-1.405 3.145-9.94 1.328-16.92-7.708 10.39 5.896 14.505 8.455 16.92 7.708zm-2.69 46.21c-1.25-3.764 7.365-8.317 20.24-5.556-10.883 1.95-19.566 4.477-20.24 5.556zm-.4-5.6c-3.136 1.467-8.445-5.885-7.888-17.88 3.36 9.74 6.828 17.375 7.888 17.88z"/> - <path d="M563.88 301.59c-4.23 2.21-11.305-7.364-10.47-23.525 4.408 12.857 9.047 22.898 10.47 23.525zm-52.69 75.07c2.018-4.146 13.15-1.378 21.976 10.888-10.995-6.75-20.482-11.305-21.976-10.888z"/> - </g> - <g fill="#406325"> - <path d="M521.55 365.83c4.542 1.593 10.443-9.417 7.54-25.883-2.81 13.955-6.18 25.064-7.54 25.883z"/> - <path d="M531.83 360.59c4.34-6.65 5.55-24.554 4.58-26.967-9.944 13.594-9.41 26.324-4.58 26.967zm-31.69 17.54c-2.116 4.08 6.7 11.436 21.787 11.315-11.95-4.89-21.238-9.86-21.787-11.315zm.16-8.05c3.785 3.338 13.808-4.948 17.41-22.083-8.128 12.423-15.724 21.8-17.41 22.083zm42.71-18.65c1.807 3.918 12.696.916 21.646-11.152-10.885 6.83-20.244 11.512-21.646 11.152zm25.75-53.33c3.303 2.147 10.335-5.303 11.56-18.803-5.213 10.395-10.262 18.41-11.56 18.803zm-11.69 38.11c.895 4.348 12.454 4.183 24.312-5.496-12.502 3.97-23 6.214-24.312 5.496zm10.36-24.64c2.453 3.405 11.865-1.334 17.664-14.352-8.61 8.373-16.28 14.445-17.664 14.352zm-1.51-45.56c4.238 2.016 11.064-7.952 9.899-24.093-4.08 13.13-8.46 23.412-9.9 24.093zm-6.96-25.87c3.542.093 5.415-9.033-.134-19.995.95 10.498.913 19.08.134 19.995zm-4.23-2.24c3.972-1.742 1.33-12.71-10.422-21.972 6.472 11.02 10.853 20.573 10.422 21.972zm11.61 34.67c3.175 2.97 10.143-1.06 14.155-15.33-7.798 10.084-12.688 15.17-14.155 15.33zm-34.09 89.91c1.005 5.247 14.913 4.994 29.132-6.688-14.94 4.85-27.508 7.595-29.132 6.688z"/> - <path d="M539.14 354.75c3.272-4.934 4.274-18.274 3.564-20.077-7.488 10.08-7.16 19.572-3.564 20.077zm19.6-28.61c3.57-5.786 3.876-20.908 2.92-22.957-8.264 11.81-7.255 22.586-2.92 22.957z"/> - </g> - <path d="M531.79 360.54c-4.83-.638-5.33-13.312 4.552-26.873-3.626 13.856-5.464 25.442-4.552 26.873zm35.16-68.33c-.943-7.765 3.976-20.143 6.632-22.522 2.573 14.385-2.66 23.95-6.632 22.522zm-27.84 62.49c-3.597-.5-3.9-9.954 3.54-20.007-2.78 10.308-4.213 18.935-3.54 20.007zm23.36-104.24c-2.167-5.88.03-20.04 1.236-21.774 5.29 12.257 2.638 22.116-1.236 21.774zm-58.08 120.15c2.474-8.09 16.19-21.08 18.807-21.915-4.335 17.42-15.065 25.53-18.807 21.915zm54.53-41.59c2.658-6.262 14.798-15.462 16.98-15.84-4.944 13.637-14.247 19.145-16.98 15.84zm-.12-3.03c-4.333-.37-5.33-11.037 2.933-22.846-2.664 11.854-3.79 21.678-2.933 22.846z" fill="#67923d"/> - <path d="M567 294.04c5.158 1.842 9.078-9.89 6.598-23.914-2.428 12.067-5.377 23.21-6.598 23.914z" fill="#406325"/> - <path d="M567.77 293.64c.557-7.527-6.935-23.086-8.915-24.707-2.015 15.803 4.463 26.31 8.915 24.707zm-5.22-43.22c3.834.337 6.473-9.435 1.187-21.69.33 11.446-.283 20.75-1.187 21.69zM504.5 370.53c3.787 3.62 14.37-4.417 18.704-21.838-8.84 12.353-16.968 21.612-18.704 21.838zm54.64-41.49c2.735 3.305 11.93-2.158 16.872-15.833-8.133 9.11-15.474 15.812-16.872 15.833z" fill="#406325"/> - <path d="M567.66 293.53c-4.413 1.636-10.85-8.76-8.835-24.563 3.51 13.267 7.445 23.763 8.835 24.563z" fill="#67923d"/> - </g> - <g fill="#ba1f3e" stroke="#511124" stroke-width=".218"> - <circle cx="564.625" cy="254.9" r="1.085"/> - <circle cx="568.415" cy="266.82" r="1.085"/> - <circle cx="569.757" cy="304.3" r="1.277"/> - <circle cx="564.647" cy="297.29" r="1.277"/> - <circle cx="549.907" cy="337.17" r="1.277"/> - <circle cx="556.197" cy="339.9" r="1.277"/> - <circle cx="513.797" cy="372.26" r="1.277"/> - <circle cx="506.797" cy="377.29" r="1.277"/> - <circle cx="557.054" cy="249.25" r="1.084"/> - </g> - </g> - <g id="b" fill="#8c959d" stroke="#485654" stroke-width=".109"> - <path d="M434.25 336.27c-.134 1.066.842 2.34 2.128 2.07.386-.08.624-.58.132-.49-.425.108-.88-.07-1.202-.374a1.677 1.677 0 0 1-.396-1.92c-.23.25-.45.485-.66.713h-.002z"/> - <path d="M437.24 338.34c-1.016 1.165-2.568 1.676-3.427.834-.573-.565-.777-1.205-.468-1.912-.443.482-.822.897-1.12 1.23.046.09.714 1.31 1.707 1.76 1.223.55 2.972-.28 4.018-1.565.738-.91 1.56-2.428.967-3.61-.365-.728-1.24-1.423-1.967-1.698-.35.374-.695.746-1.027 1.1.51-.24 1.148-.135 1.695.312 1.274 1.035.537 2.5-.378 3.546v.002z" stroke="none"/> - <path d="M437.24 338.34a4.006 4.006 0 0 1-1.162.956c-.444.235-.957.39-1.473.318a1.48 1.48 0 0 1-.71-.296 2.364 2.364 0 0 1-.51-.58 1.61 1.61 0 0 1-.248-.737c-.02-.262.038-.528.14-.767l.123.08-1.11 1.24.013-.1c.276.48.624.937 1.042 1.3.21.18.442.335.694.436a2 2 0 0 0 .796.133c.55-.016 1.088-.206 1.573-.477a5.1 5.1 0 0 0 1.297-1.042c.37-.417.69-.887.935-1.388.24-.5.41-1.05.374-1.595a1.833 1.833 0 0 0-.224-.774 3.063 3.063 0 0 0-.5-.655 4.185 4.185 0 0 0-1.37-.932l.09-.022-1.034 1.093-.085-.117c.236-.107.5-.145.754-.118.254.03.498.117.715.245.427.257.798.65.925 1.145.13.494.002 1.008-.208 1.448a5.128 5.128 0 0 1-.84 1.205v.002zm0-.002c.314-.375.595-.78.794-1.225.196-.44.302-.942.167-1.404-.13-.46-.492-.827-.9-1.064-.407-.238-.924-.305-1.345-.1l-.084-.117 1.018-1.11.04-.042.053.02c.55.21 1.034.55 1.447.96.204.21.39.437.536.698.146.257.23.557.25.852.043.598-.138 1.177-.383 1.7a6.39 6.39 0 0 1-.962 1.44c-.39.433-.85.8-1.358 1.082-.51.278-1.076.478-1.67.493a2.202 2.202 0 0 1-.876-.153 2.734 2.734 0 0 1-.744-.473 5 5 0 0 1-1.073-1.363l-.03-.054.042-.046 1.13-1.22.124.078c-.1.22-.155.46-.142.7.012.24.093.474.217.682.124.207.288.403.472.557.187.155.416.254.657.295.486.082.99-.053 1.435-.273.446-.225.846-.54 1.185-.912z" fill="#485654" stroke="none"/> - <path d="M515.24 249.25l-40.137 39.515c-3.053 3.032-37.963 36.38-41.105 39.384-1.103 1.322-4.233 4.857-4.56 5.352-2.13 2.31-4.44 5.33-7.198 8.03-.49.62-1.142.394-1.734.737-1.814 1.05-3.697 2.87-5.053 4.37l-12.208 13.505c-.786.854-.996 1.38-.464 1.87l6.624 8.85c1.23 1.214 2.644 1.838 3.195.82 3.146-5.447 10.96-13.76 13.914-20.335 1.764-3.93 3.978-11.058 5.558-12.782 1.94-2.157 7.17-7.73 11.806-12.705.314-.335.624-.668.93-.997l.947-1.02c23.506-23.95 50.715-53.045 70.526-73.557-.777-.776-.285-.312-1.04-1.04z" fill="#6c301e" stroke="#351710" stroke-width=".218" stroke-linejoin="round"/> - <path d="M431.89 328.11c-1.225.043-2.022-.707-2.848-1.4 1.17.346 2.345.797 3.452.338l-.604 1.062z"/> - <path d="M557.05 220.1l-31.804 26.22c-.306.373-.624.266-.93 0l-2.894-2.418c.004-.037.014-.073.014-.11 0-.162-.032-.318-.082-.464l1.42-1.447c.177-.22.12-.31-.123-.545-.182-.19-.342-.365-.586-.6-.228-.177-.416-.037-.642.176l-1.434 1.476c-.734.03-1.33.63-1.352 1.366-19.238 18.73-35.794 35.435-54.938 53.872l-22.573 21.55c-.806 1.042-4.29 2.906-6.596 4.41-.818.532-1.524 1.016-1.817 1.543l-1.844 5.435c-.583 1.194-2.432 4.003-2.514 4.193 2.37 2.386 2.248 2.212 3.865 3.728 1.82-2.023 6.69-7.112 11.117-11.853.357-.382.38-.422.833-.97-.346-.488-.927-1.205-1.393-1.652a34.105 34.105 0 0 0-1.2-1.093c-.246-.212-.47-.39-.63-.546-.162-.157.24-.445.424-.643 26.465-25.58 54.963-53.695 78.277-76.595a1.41 1.41 0 0 0 1.025-.096l2.785 3.21c.655.652 1.21.64 1.735.395l31.86-28.54z" fill="#b2b6ba" stroke-width=".218"/> - <path d="M430.95 330.39c.2.03.405.048.606.03a1.5 1.5 0 0 0 .574-.16l-.017.018a124.9 124.9 0 0 1 1.475-4.744l.005.027c-.195-.222-.436-.42-.73-.495.298.057.558.244.77.46l.01.01-.004.016c-.23.798-.468 1.59-.71 2.382-.247.79-.493 1.58-.754 2.366l-.005.014-.01.006a1.407 1.407 0 0 1-.602.14 2.87 2.87 0 0 1-.61-.068z" fill="#485654" stroke="none"/> - <circle cx="438.179" cy="328.135" r=".619" fill="none" stroke-width=".164"/> - <circle cx="434.436" cy="331.877" r=".619" fill="none" stroke-width=".164"/> - <path d="M440.97 322.38c-.32-.24-.615-.505-.906-.775a11.58 11.58 0 0 1-.832-.854c.32.24.615.506.906.776.288.273.57.55.832.854z" fill="#485654" stroke="none"/> - <path d="M502.17 259.06l3.487 3.41.645-.586-3.487-3.41-.645.586z"/> - </g> - <use height="100%" width="100%" xlink:href="#b" transform="rotate(-177.16 487.09 -.23)"/> - <g stroke="#24420e" stroke-width=".164"> - <path d="M433.91 365.36c-7.866-3.32-26.89-.67-29.22.932 16.286 8.01 29.54 4.574 29.22-.932zm89.02 3.32c7.866-3.32 26.89-.67 29.22.933-16.286 7.982-29.54 4.573-29.22-.933z" fill="#67923d"/> - <path d="M433.76 365.48c.32 5.506-12.79 8.885-29.075.903 15.295.932 27.793.378 29.075-.903zm89.32 3.29c-.32 5.506 12.79 8.885 29.075.903-15.295.933-27.793.408-29.075-.903z" fill="#406325"/> - </g> - <g id="c"> - <path d="M508.49 359.99c-20.733-30.12-51.995-54.61-76.102-67.99 3.557-.167 11.46 3.88 14.67 5.948 23.94 15.427 44.3 35.803 65.664 59.822-1.258 1.245-2.082 1.98-3.446 3.05l-.786-.83z" fill="#b2b6ba" stroke="#485654" stroke-width=".218"/> - <path d="M510.55 359.75l-1.45 1.394c-23.01-29.62-55.094-57.945-76.67-69.13 30.08 13.855 55.392 41.77 78.034 67.65l.085.085z" fill="#8c959d"/> - <path d="M510.56 359.75l-1.448 1.397-.004.003-.003-.004c-5.325-6.824-10.975-13.39-16.864-19.73a336.016 336.016 0 0 0-18.366-18.337c-6.36-5.87-12.943-11.496-19.81-16.76a195.858 195.858 0 0 0-10.542-7.564c-3.6-2.393-7.297-4.652-11.133-6.644l.094-.196c7.892 3.644 15.34 8.195 22.375 13.28 7.038 5.092 13.676 10.716 20.028 16.632 6.352 5.92 12.422 12.135 18.328 18.497 5.902 6.367 11.63 12.892 17.343 19.425zm0 0c-5.74-6.51-11.494-13.012-17.42-19.353-5.916-6.35-11.99-12.556-18.35-18.463-6.356-5.904-12.998-11.515-20.036-16.59-7.036-5.07-14.478-9.605-22.36-13.23l.096-.196c3.845 2 7.54 4.27 11.144 6.67 3.6 2.405 7.108 4.95 10.542 7.586 6.864 5.278 13.444 10.918 19.798 16.798a336.06 336.06 0 0 1 18.35 18.37c5.867 6.363 11.49 12.956 16.79 19.8l-.007-.002 1.453-1.39z" fill="#485654"/> - <g fill="#fab81c" stroke="#6c301e" stroke-width=".109"> - <path d="M517.5 355.07c-1.974.51-3.726 1.253-5.258 2.226-.228 1.397-1.953 2.957-3.587 3.31-.297-.377-.367-.487-.592-.77a.13.13 0 0 0-.17-.038c-.14.076-.33.18-.572.34-.61-.103-1.336.197-1.66.975-.377.97.386 2.248 1.225 3.084.924.73 1.387 1.07 2.458.92 1.083-.224 1.68-1.213 1.925-1.528 3.72 4.502 6.517 6.932 11.23 10.64 2.098.016 3.224-1.307 2.52-2.803-.233-.502-.84-.836-1.333-.652.04-.15.024-.305 0-.45 2.463-2.265 3.514-5.09.915-9.874-2.224-4.03-4.712-5.396-7.088-5.38h-.012zm6.246 4.53c.438.742.692 1.38 1.024 2.054 1.483 3 .196 6.602-2.334 7.706-.123-.005-.085-.02-.213.022.413-.687-.827-2.154-1.46-1.64.3-.758-.67-2.018-1.462-1.693.415-.706-.532-1.906-1.42-1.516.46-.767-.323-1.866-1.242-1.666.277-.818-.418-1.753-1.352-1.598.08-.723-.157-1.12-.507-1.45 1.11-.846 2.346-2.15 3.437-2.738 2.72-1.178 4.403 1.073 5.527 2.518z" stroke-width=".218"/> - <path d="M524.89 362.77c-.515-.253-.756-.76-.587-1.105.17-.342.702-.432 1.217-.178.516.254.802.744.633 1.088-.172.343-.747.45-1.264.196z"/> - <path d="M524.59 361.75c-.515-.253-.756-.76-.587-1.105.17-.342.702-.432 1.218-.177.516.253.802.744.633 1.088-.172.343-.747.45-1.263.195z"/> - <path d="M523.97 360.62c-.515-.253-.756-.76-.587-1.105.168-.342.7-.433 1.217-.178.516.254.802.744.633 1.088-.172.343-.748.45-1.264.196z"/> - <path d="M523.19 359.6c-.516-.253-.756-.76-.587-1.105.17-.342.7-.432 1.217-.178.516.253.802.744.633 1.088-.172.343-.748.45-1.263.196z"/> - <path d="M522.16 358.61c-.515-.253-.756-.76-.587-1.105.023-.046.007-.136.055-.114.21.11.644.188.597-.136-.065-.113-.146-.227-.07-.142.15.004.464.134.636.222.517.253.803.744.634 1.088-.172.343-.747.45-1.264.195v-.007z"/> - </g> - <path d="M511.27 363.6c.682-1.774 2.047-3.414 3.508-3.806m-3.278 4.056c1.263.262 3.31-1.243 3.806-2.588m-2.616 4.038c1.656.38 3.29-1.218 3.934-2.409m-2.444 3.989c1.957.064 3.164-1.326 3.74-2.39m-2.23 3.92c1.66.01 3.172-1.36 3.646-2.424m-2.186 3.824c1.808-.073 3.084-.895 3.62-2.075m-1.98 3.495c1.66.096 3.003-.896 3.443-1.862m-1.663 3.312c1.66.096 2.695-.93 3.136-1.897" fill="#fab81c"/> - <path d="M511.27 363.6a7.112 7.112 0 0 1 1.309-2.329c.293-.338.616-.654.984-.914.367-.26.776-.467 1.214-.562-.424.14-.813.36-1.164.63-.35.268-.67.578-.952.917-.577.674-1.028 1.447-1.392 2.26zm.23.25c.405.057.81-.045 1.18-.193a4.88 4.88 0 0 0 1.048-.592c.328-.233.63-.505.9-.802.272-.298.513-.628.678-1-.123.39-.35.74-.613 1.055-.264.315-.572.59-.9.835a4.573 4.573 0 0 1-1.084.582c-.385.136-.81.218-1.21.115zm1.19 1.45c.405.07.818.035 1.204-.086.385-.12.747-.31 1.076-.548.333-.23.634-.506.91-.804.28-.298.528-.623.744-.97a4.68 4.68 0 0 1-.68 1.026 5.235 5.235 0 0 1-.91.837 3.703 3.703 0 0 1-1.117.54c-.402.107-.832.12-1.227.005zm1.49 1.58a4.21 4.21 0 0 0 1.146-.183 3.833 3.833 0 0 0 1.033-.507 4.72 4.72 0 0 0 .865-.764c.26-.287.487-.605.694-.936a4.552 4.552 0 0 1-1.5 1.79c-.327.22-.688.395-1.07.497-.382.104-.78.136-1.17.103zm1.51 1.53c.767-.042 1.493-.332 2.113-.765.314-.212.6-.463.86-.74.26-.275.493-.58.672-.92-.138.36-.357.686-.61.977-.25.293-.545.55-.86.773a4.236 4.236 0 0 1-1.036.517c-.37.12-.757.183-1.14.158zm1.46 1.4a7.09 7.09 0 0 0 1.078-.187 4.63 4.63 0 0 0 1.013-.388c.323-.164.62-.378.88-.63.26-.25.477-.546.65-.87-.132.344-.337.66-.59.93-.256.27-.562.49-.89.667a4.51 4.51 0 0 1-2.14.478zm1.64 1.42c.345-.004.687-.04 1.02-.12a4 4 0 0 0 .952-.36c.303-.155.583-.353.834-.583.25-.23.47-.496.636-.8a2.524 2.524 0 0 1-.578.86 3.576 3.576 0 0 1-.842.62c-.31.158-.642.28-.986.344-.342.066-.693.08-1.036.04zm1.78 1.45a3.94 3.94 0 0 0 .96-.12 3.305 3.305 0 0 0 1.617-.986 4.03 4.03 0 0 0 .56-.79 3.056 3.056 0 0 1-1.24 1.495 2.983 2.983 0 0 1-.918.362 3.018 3.018 0 0 1-.98.038z" fill="#6c301e"/> - </g> - <use height="100%" width="100%" xlink:href="#c" transform="rotate(-176.592 489.967 -.41)"/> - <g stroke="#24420e" stroke-width=".164"> - <path d="M409.24 240.02c7.21-2.367 18.73-15.453 19.478-17.917-15.593 4.154-22.757 14.343-19.478 17.917zm145.74 4.7c-1.702-7.045-13.28-19.01-15.568-19.91 2.763 15.16 11.916 22.758 15.568 19.91z" fill="#406325"/> - <path d="M409.24 240.02c-3.325-3.574 3.792-13.666 19.34-17.82-10.958 8.403-19.2 16.178-19.34 17.82zm145.74 4.7c-3.656 2.892-12.72-4.654-15.486-19.77 7.163 11.072 13.934 19.51 15.486 19.77z" fill="#67923d"/> - </g> - <g stroke="#999270" stroke-width=".164"> - <path d="M452.21 318.1s-6.158.662-7.884-7.833c-1.846-9.087 5.306-10.052 5.306-10.052s8.103-.78 13.15-.91l2.24 17.954-12.812.84z" fill="url(#d)"/> - <path d="M453.02 315.36s-3.985.762-4.807-5.553c-.583-4.473 2.185-5.108 2.185-5.108l9.236 1.563.05 8.24-6.664.857z" fill="url(#e)"/> - <path d="M450.4 304.7s5.905-.43 8.99-.83l1.28 5.71-7.102.446s-.487-5.155-3.168-5.326z" fill="url(#f)"/> - <path d="M449.16 300.36s7.575-1.857 8.517 6.49c.245 2.18-.942 7.166-4.656 8.513l13.875-1.456-1.256-15.007-4.675.39s-9.923.34-11.805 1.07z" fill="url(#g)"/> - <path d="M452.2 318.1c.047 0 51.903-3.49 57.217-3.274 15.743-8.638-.076-42.56-13.342-61.532 1.515-4.276-29.858-13.892-44.047-13.024-1.782.11-3.505.227-5.154.354-7.696.816-7.775 10.694-4.637 16.923 3.045 6.043 30.315 55.126 11.14 60.317l-1.176.236z" fill="#f9f0aa"/> - <path d="M507.79 273.34c-3.52-7.304-7.734-14.35-11.718-20.046 1.514-4.276-29.86-13.892-44.047-13.024-1.782.11-3.505.227-5.154.354-7.695.816-7.774 10.694-4.636 16.923.956 1.898 4.3 8.04 7.847 15.733" fill="url(#h)"/> - <path d="M455.04 284.95c5.555 14.65 8.664 30.117-1.64 32.907l-1.178.236c.047 0 51.903-3.49 57.216-3.274 8.538-4.685 7.793-16.805 3.207-29.944" fill="url(#i)"/> - <path d="M447.4 243.49c-3.705 0-4.656 3.562-4.605 5.817.134 5.91 4.605 6.192 4.605 6.192l5.965-.333 2.857-12.163-8.822.486z" fill="url(#j)"/> - <path d="M447.4 243.53l8.822-.486.908 9.086-7.696.337s2.49-7.274-2.034-8.937z" fill="url(#k)"/> - <path d="M496.12 253.29c6.686-1.074 6.595-10.07 2.026-13.673-15.498-.57-35.895-.143-50.63.96 1.676-.05 6.337.376 6.855 6.51.243 2.863-1.164 5.492-3.06 6.986-1.853 1.462-3.906 1.462-3.906 1.462.248.095 2.163.007 3.6-.087.738-.048 2.55-.264 3.054-.33 21.012-2.762 41.987-1.823 41.987-1.823l.08.003-.005-.008z" fill="url(#l)"/> - <path d="M458.47 267.42c-.143-.33-.323-.75-.73-.805-.25.014-.645-.052-.567-.392.235-.113.533-.04.794-.065.56.01 1.113-.114 1.67-.148.338.092.262.537-.104.463-.408.093-.175.563-.075.81.444 1.034.872 2.075 1.328 3.104.127.303.38.57.722.605.362.036.756.045 1.09-.116.31-.2.242-.624.2-.937-.124-.364.54-.282.495.043.13.43.28.854.447 1.27-.022.2-.275.143-.42.168-.993.077-1.988.132-2.98.224-.317-.017-.795.28-.99-.096-.118-.386.512-.17.596-.463-.003-.327-.195-.615-.307-.916-.39-.917-.78-1.836-1.17-2.75zm4.83-.34c-.14-.32-.302-.72-.687-.796-.247-.022-.653-.017-.616-.374.157-.162.457-.058.67-.092.592.02 1.175-.09 1.76-.144.29-.027.4.518.026.444-.358.012-.383.405-.233.65.47 1.143.96 2.278 1.437 3.416.105.245.24.548.54.586.252.05.648-.03.705.316-.04.267-.434.12-.63.16-.522-.036-1.042.032-1.556.12-.226.064-.55.027-.56-.27.054-.273.585-.07.61-.402-.04-.326-.215-.615-.33-.92l-1.136-2.694zm4.46.71c.09.227.404.064.586.075.263-.025.543-.215.52-.51-.044-.45-.265-.907-.633-1.182-.34-.24-.78-.213-1.172-.162-.022.156.1.305.146.454l.554 1.326zm.668 1.596c.164.35.28.745.565 1.017.244.172.57.093.843.066.302-.022.48-.332.386-.61-.142-.635-.554-1.3-1.238-1.437a2.43 2.43 0 0 0-.915 0c-.025.143.09.288.134.43l.224.533zm-2.034-2.37c-.158-.35-.31-.77-.688-.927-.245-.082-.643.03-.696-.324.065-.303.562-.09.8-.16.865-.022 1.744-.263 2.595-.003.734.182 1.39.81 1.45 1.587.024.377-.262.684-.582.837-.04-.135.367.06.506.082.582.186 1.118.575 1.377 1.143.2.398.357.93.04 1.314-.362.396-.94.413-1.438.438-.75.02-1.506.025-2.245.172-.267.047-.458-.482-.09-.45.37-.012.404-.412.244-.667l-1.276-3.046zm7.416-1.906c.327-.054.358.316.458.532.098.284.276.542.348.83-.277.277-.5-.144-.624-.358-.144-.248-.383-.476-.69-.45a8.31 8.31 0 0 0-1.22.07c-.143.16.066.394.114.577.19.447.36.902.56 1.34.272-.02.62.016.815-.207.076-.23-.27-.747.21-.64.298.17.264.602.416.882.127.388.384.724.492 1.115-.263.29-.524-.13-.62-.363-.187-.347-.624-.306-.96-.296-.24-.05-.074.172-.04.284.216.493.384 1.01.66 1.475.207.342.65.29.993.28.33-.02.734-.026.927-.34.216-.25-.274-.75.132-.83.346-.03.336.376.428.607.073.28.185.55.284.823-.026.2-.277.14-.423.163-1.02.065-2.042.11-3.06.19-.3 0-.805.24-.902-.198.026-.287.646-.135.554-.544-.073-.346-.25-.66-.373-.993-.377-.896-.732-1.8-1.123-2.69-.14-.297-.368-.62-.73-.63-.24.047-.602-.13-.463-.407.347-.067.712-.02 1.065-.056l2.77-.164zm2.31 1.32c-.154-.348-.302-.77-.68-.93-.256-.076-.725.014-.696-.394.247-.19.66-.03.97-.09.8-.01 1.62-.237 2.406 0 .825.23 1.515.973 1.573 1.842.027.416-.307.753-.685.864-.296.015.23.1.31.196.632.304 1.07.877 1.406 1.474.075.225.52.696.586.246-.027-.49.638-.075.488.264.002.356-.352.587-.682.583-.464.036-.904-.232-1.138-.624-.42-.553-.708-1.223-1.265-1.662-.23-.166-.56-.27-.83-.152-.058.14.07.28.105.416.18.41.305.845.547 1.223.2.31.593.358.93.356.36.09.26.576-.123.433-.585 0-1.175-.044-1.753.077-.27.126-.866.01-.65-.37.283-.017.675-.173.48-.525-.332-.872-.7-1.73-1.045-2.598l-.255-.627zm1.404.893c.134.326.595.145.86.114.36-.08.35-.508.235-.777-.164-.47-.374-1.03-.89-1.195-.263-.035-.846-.202-.886.152.19.535.423 1.054.63 1.583l.05.123zm7.216 1.717c.11.26.213.61.538.656.255.06.665-.024.717.33-.05.265-.44.105-.636.143-.54-.05-1.077.01-1.61.083-.23.07-.55-.03-.518-.32.125-.21.648-.037.62-.402-.086-.4-.276-.767-.416-1.15-.383-.962-.762-1.925-1.148-2.885-.095-.305-.443-.297-.702-.28-.274.002-.683.06-.684.416-.087.23.218.617-.044.736-.3.064-.362-.275-.426-.487-.098-.322-.26-.62-.385-.927.036-.214.32-.176.493-.194 1.377-.058 2.754-.12 4.13-.174.304-.047.504.19.52.477.107.336.27.653.413.974-.114.33-.508.047-.554-.196-.2-.347-.51-.69-.94-.71-.257.013-.642-.085-.815.146.007.24.145.453.22.678l1.225 3.086zm3.73-.91c-.192 0-.097.242-.118.367.012.282-.017.57.03.848.132.31.527.234.784.318.23.13.173.502-.136.388-.422-.025-.85-.068-1.267.034-.25.133-.713-.123-.493-.392.2-.034.448-.1.494-.334.072-.414.034-.838.048-1.256l.022-3.714c.12-.28.514-.044.603.166 1.192 1.516 2.37 3.045 3.593 4.535.192.232.462.4.768.417.26.002.402.53.027.426-.51-.028-1.026-.062-1.535.023-.228.006-.492.112-.696-.022-.243-.178-.07-.435.196-.403.352-.1-.005-.476-.117-.652-.19-.255-.38-.513-.59-.752-.17-.084-.373-.022-.558-.03-.35.01-.706.02-1.055.034zm1.173-.512c.182.012-.057-.155-.087-.235-.424-.554-.848-1.11-1.273-1.663.084-.013.017.175.04.255-.003.562.003 1.123-.003 1.684.44-.012.884-.027 1.324-.04zm3.057-1.848c-.15-.398-.35-.887-.818-.98-.243.043-.702-.178-.452-.44.55-.008 1.103.03 1.653-.017.698-.06 1.416-.042 2.08.205 1.46.492 2.672 1.778 2.914 3.32.107.606-.08 1.304-.625 1.642-.735.467-1.642.38-2.47.334-.47-.023-.938.04-1.404.086-.304-.042-.337-.513.023-.457.373-.012.366-.422.23-.668l-1.13-3.025zm1.97 2.494c.15.34.24.755.563.976.302.143.657.116.98.08.44-.06.714-.493.718-.91.028-.755-.28-1.475-.63-2.126-.375-.7-1.056-1.233-1.845-1.372-.324-.053-.665-.103-.99-.05-.07.124.06.273.086.402l1.12 3zm-21.11 12.416c.116.35.44.6.805.634.257.045.7-.016.713.354-.138.234-.53.07-.77.122a8.628 8.628 0 0 0-1.55.093c-.276.01-.566.125-.837.048-.243-.115-.193-.47.108-.425.247-.058.604-.135.622-.45-.023-.284-.182-.534-.278-.798-.385-.917-.76-1.838-1.152-2.75-.086-.326-.446-.335-.715-.285-.248.047-.616.124-.677-.22.03-.292.497-.238.703-.39.312-.12.62-.256.94-.356.215-.047.324.15.38.32.57 1.368 1.14 2.74 1.71 4.104zm.75-4.51c.682-.026 1.367.077 2.046.002.3-.03.095-.497.384-.47.37.017.31.477.335.74a.518.518 0 0 1-.57.582c-.533.03-1.065-.05-1.598-.02.12.41.288.81.445 1.208.027-.134.46-.155.64-.18 1.063-.048 2.166.56 2.612 1.543.215.477.328 1.1-.028 1.54-.387.456-1.03.55-1.596.554-.49-.007-1.064-.113-1.353-.55-.167-.215-.138-.68.22-.64.306.003.66.263.61.595.163.222.525.144.776.14.3-.01.584-.242.57-.56.006-.485-.186-.96-.455-1.358-.292-.423-.783-.708-1.303-.696-.293-.05-.547.148-.827.147-.284-.037-.334-.366-.435-.58a23.87 23.87 0 0 1-.65-1.818c-.02-.107.076-.193.177-.18zm6.85 1.02c-.16-.395-.37-.882-.84-.968-.243.057-.705-.17-.463-.43.557-.022 1.117 0 1.673-.067.704-.085 1.432-.07 2.105.176 1.486.494 2.71 1.82 2.934 3.388.088.584-.115 1.238-.633 1.563-.718.467-1.608.398-2.424.378-.453-.005-.9.07-1.347.128-.3-.034-.353-.503.008-.46.373-.028.343-.44.202-.683-.405-1.007-.81-2.017-1.216-3.023zm2.03 2.46c.16.34.26.754.59.97.302.136.654.098.973.053.44-.075.687-.524.678-.94.004-.762-.324-1.48-.693-2.13-.39-.69-1.078-1.213-1.87-1.332-.322-.043-.66-.083-.98-.02-.066.127.067.273.098.403l1.206 2.998zm6.44-4.26c.312-.053.353.293.437.504.1.284.245.55.346.832-.19.31-.507-.057-.588-.283-.145-.247-.356-.52-.674-.512a9.647 9.647 0 0 0-1.234.036c-.225.1.016.39.054.566.183.452.346.913.543 1.358.265-.01.573.012.798-.152.176-.212-.267-.736.213-.68.327.12.277.57.416.838.123.397.354.748.49 1.14-.176.33-.544-.055-.594-.302-.14-.32-.52-.362-.828-.35-.205-.036-.37.01-.226.215.215.515.38 1.054.655 1.54.204.348.65.303.995.3.33-.013.736-.01.94-.318.206-.243-.197-.658.082-.81.337-.097.416.276.466.52.075.308.184.606.29.902-.032.198-.28.133-.427.153-1.03.044-2.06.067-3.09.128-.286-.02-.69.206-.87-.114-.182-.395.504-.18.532-.524.02-.305-.16-.573-.25-.855-.385-.965-.752-1.937-1.148-2.898-.136-.313-.36-.66-.74-.68-.237.042-.603-.135-.457-.41.357-.06.728-.006 1.09-.036l2.78-.106zm-27.28 14.28c.15.487.668.686 1.11.818.77.26 1.6.518 2.15 1.158.305.37.518.854.495 1.342-.04.496-.465.87-.924.99a2.49 2.49 0 0 1-1.734-.096c-.266-.115-.165.467-.497.27-.24-.182-.164-.56-.296-.815a9.043 9.043 0 0 0-.386-.964c.013-.326.48-.156.496.098.327.595.924 1.12 1.633 1.126.358.01.807-.18.838-.583.007-.535-.42-.954-.865-1.183-.64-.332-1.375-.437-1.994-.812-.555-.334-.947-.954-.948-1.608.013-.437.37-.778.768-.903a2.63 2.63 0 0 1 1.567-.053c.24.125.34-.274.595-.076.115.196.085.46.194.672.08.286.27.537.334.825-.16.244-.466.014-.517-.203-.222-.366-.518-.772-.984-.805-.346-.026-.785-.03-1.006.288-.097.154-.092.35-.03.515zm6.69-1.65c.327-.06.336.314.418.528.08.272.21.527.29.8-.14.286-.494.024-.537-.212-.136-.26-.337-.572-.672-.552-.41-.007-.82.03-1.226.075-.227.1-.007.39.025.57.158.452.296.91.467 1.356.267-.02.575-.01.8-.18.194-.2-.194-.605.138-.696.373-.047.344.44.434.684.097.45.335.85.468 1.286-.145.317-.533.01-.55-.247-.113-.33-.484-.4-.79-.368-.178-.01-.42-.013-.275.21.18.505.318 1.027.55 1.512.12.284.45.346.726.323.392-.027.846.015 1.153-.282.244-.234.04-.585.094-.853.25-.2.526.068.5.342.07.346.16.687.267 1.022-.04.2-.29.142-.444.168-1.018.078-2.037.133-3.053.228-.28-.013-.684.235-.856-.087-.158-.384.457-.207.538-.502.08-.295-.098-.575-.173-.854-.336-.98-.654-1.966-1.002-2.94-.116-.308-.327-.66-.7-.664-.237.056-.59-.132-.428-.402.345-.072.71-.028 1.064-.07l2.774-.198zm4.18 4.14c.09.304.27.638.612.7.25.09.665-.073.732.286-.012.328-.493.15-.712.204a6.28 6.28 0 0 0-1.523.104c-.218.032-.545.108-.61-.188-.053-.336.464-.147.574-.4.08-.26-.066-.516-.136-.764-.337-1.005-.663-2.014-1.008-3.016-.115-.292-.27-.674-.63-.708-.232-.01-.63-.03-.558-.367.175-.165.486-.052.713-.082.73.016 1.45-.192 2.18-.144.75.03 1.483.508 1.736 1.228.165.405.22.917-.08 1.276-.386.454-1.02.547-1.58.622-.21-.028-.04.19-.026.3.105.318.212.634.316.95zm-.57-1.72c.204.03.46-.025.675-.083.313-.064.478-.4.396-.696-.087-.422-.227-.864-.543-1.174-.304-.253-.746-.26-1.112-.163-.14.122.002.32.035.47.183.55.365 1.1.55 1.647zm6.15 1.43c.09.255.17.61.492.652.246.054.66-.036.69.32-.06.265-.44.115-.643.155-.54-.04-1.075.03-1.606.112-.226.077-.55-.023-.494-.313.137-.213.65-.05.644-.415-.055-.39-.218-.756-.33-1.133-.317-.968-.63-1.936-.95-2.902-.077-.31-.43-.29-.68-.27-.254.02-.62.048-.692.35-.083.256.04.534-.015.78-.237.162-.467-.09-.457-.33a6.588 6.588 0 0 0-.344-1.002c-.01-.24.304-.22.48-.236 1.38-.082 2.76-.17 4.14-.248.302-.055.49.188.483.47.083.336.223.654.345.975-.068.283-.486.13-.502-.12-.174-.352-.445-.732-.874-.76-.28-.006-.626-.058-.86.123-.053.206.078.403.125.6.35 1.063.696 2.127 1.045 3.19zm2.1-3.29c-.105-.305-.22-.693-.57-.79-.237-.06-.65.01-.627-.355.096-.212.417-.08.608-.12.6.027 1.194-.06 1.788-.118.267-.12.48.42.152.42-.255 0-.545.19-.442.475.132.53.325 1.045.486 1.568.24.733.467 1.47.717 2.2.068.23.25.432.5.44.24.002.663.035.588.38-.18.156-.48.058-.71.08-.537-.044-1.07.048-1.603.114-.232.1-.536-.14-.392-.378.206-.097.647-.043.617-.384-.078-.41-.237-.8-.357-1.2l-.753-2.332zm5.76-1.6c.317-.057.333.305.404.517.078.277.202.54.28.815-.146.284-.495.018-.534-.22-.133-.262-.33-.575-.666-.56a9.663 9.663 0 0 0-1.232.052c-.23.094-.015.388.013.568.15.452.28.912.443 1.358.268-.01.578.002.806-.163.2-.196-.18-.607.154-.69.376-.04.337.446.424.69.086.45.32.85.443 1.29-.115.288-.527.04-.528-.215-.095-.32-.43-.452-.74-.422-.145.017-.502-.075-.357.17.175.516.306 1.05.532 1.547.118.286.448.353.725.334.394-.02.85.034 1.164-.257.25-.227.054-.58.113-.847.253-.192.526.075.495.35a9.3 9.3 0 0 0 .248 1.02c-.04.195-.28.14-.43.16-1.03.06-2.063.095-3.092.17-.275-.017-.644.204-.838-.065-.218-.387.38-.25.507-.485.134-.266-.042-.547-.108-.81-.32-.995-.63-1.994-.96-2.986-.11-.323-.315-.704-.704-.715-.237.052-.59-.14-.423-.408.343-.064.704-.016 1.054-.05.937-.048 1.876-.098 2.81-.147zm2 .96c-.066-.358-.34-.677-.734-.622-.374.097-.5-.57-.033-.43.508.003 1.03-.078 1.53.036.242.263.438.576.662.86l2.17 2.903c-.16.035-.036-.186-.053-.3l.355-3.543c.273-.226.73-.13 1.077-.202.282-.042.925-.136.745.35-.338.054-.77.22-.537.645.36 1.197.738 2.388 1.115 3.58.068.418.49.545.857.527.317.017.333.562-.048.43-.593-.013-1.19-.05-1.78.064-.264.09-.82.06-.64-.355.298-.054.795-.143.587-.573-.317-1.06-.657-2.113-.984-3.17.07.095-.01.255-.004.377-.096.99-.228 1.976-.292 2.968-.04.26.05.574-.074.798-.235.116-.385-.113-.503-.276l-2.856-3.698c.098-.036.086.21.14.29.307.96.59 1.928.912 2.882.1.388.494.5.848.505.378.193.098.547-.232.403-.5-.072-.998.028-1.493.084-.314-.01-.33-.513.03-.447.468.004.325-.523.216-.8-.34-1.092-.68-2.184-1.022-3.275a3.35 3.35 0 0 1 .042-.012zm8.74.85c.06.225.364.074.526.097.286-.016.62-.175.636-.498.01-.437-.157-.906-.5-1.19-.33-.252-.77-.23-1.16-.19-.042.144.062.3.092.45l.406 1.33zm.487 1.598c.125.348.193.743.45 1.023.238.18.568.105.843.088.257-.02.487-.23.46-.5-.03-.596-.315-1.26-.906-1.493-.34-.125-.713-.127-1.07-.09-.11.096.04.288.055.42.055.185.11.37.167.553zm-1.773-2.402c-.117-.345-.224-.77-.586-.934-.233-.088-.642.018-.663-.338.083-.29.544-.08.774-.138.886.01 1.794-.224 2.66.063.693.184 1.284.818 1.28 1.557-.004.408-.334.716-.687.865-.024-.134.36.07.5.095.528.19 1.018.557 1.224 1.094.178.415.28.954-.037 1.33-.362.4-.95.43-1.454.443-.79.003-1.586-.018-2.368.114-.284.036-.396-.502-.04-.447.36 0 .46-.38.324-.656l-.928-3.048zm5.006-.176c-.114-.346-.218-.77-.578-.937-.238-.09-.687.012-.665-.37.193-.256.656-.04.954-.104.68.004 1.358-.13 2.035-.046.79.093 1.55.646 1.74 1.44.144.422.05.955-.358 1.192-.087.096-.52.198-.444.19.604.24 1.12.69 1.412 1.273.16.26.24.58.466.796.267.198.298-.164.343-.327.35-.175.528.316.386.58-.148.42-.68.504-1.06.404-.344-.077-.604-.34-.758-.645-.34-.538-.554-1.17-1.03-1.612-.224-.196-.566-.31-.85-.197-.074.136.04.29.062.43.127.392.208.8.386 1.173.158.327.543.408.873.41.322-.008.345.56-.032.428-.61-.002-1.223-.075-1.83.034-.22-.005-.53.136-.673-.1-.214-.42.418-.228.558-.468.09-.28-.065-.56-.13-.832-.268-.904-.537-1.814-.805-2.714zm1.313.917c.098.327.555.15.805.145.29-.03.46-.326.398-.6-.075-.447-.192-.942-.548-1.254-.306-.225-.72-.224-1.08-.162-.153.128-.012.34.02.503l.405 1.367zm6.887-2.537c.312-.05.326.298.384.51.07.282.188.55.257.833-.134.258-.487.03-.513-.205-.13-.26-.292-.59-.625-.605a9.508 9.508 0 0 0-1.286.005c-.234.083-.03.383-.008.562.135.453.25.913.397 1.36.26 0 .54.01.78-.103.28-.16-.112-.59.186-.702.374-.082.37.394.427.64.068.466.295.887.41 1.34-.125.282-.53.028-.525-.228-.08-.296-.373-.453-.667-.44-.14.027-.556-.12-.435.136.16.523.274 1.063.487 1.568.11.29.44.364.718.356.398-.007.855.062 1.183-.217.26-.215.074-.575.144-.836.258-.18.527.087.486.363.05.344.126.684.214 1.02-.053.194-.296.127-.45.143-1.037.024-2.076.026-3.114.066-.268-.024-.607.16-.818-.056-.263-.378.298-.304.473-.467.19-.22.033-.512-.024-.757-.297-1.023-.58-2.05-.885-3.072-.1-.31-.272-.68-.637-.722-.237.01-.61-.094-.485-.405.3-.105.656-.003.977-.035.983-.017 1.97-.037 2.95-.053zm-32.82 13.13c-.093-.368-.217-.85-.644-.95-.237.007-.644-.06-.5-.392.307-.124.674-.028 1.003-.076.818-.042 1.652-.245 2.464-.027 1.192.273 2.23 1.187 2.582 2.37.226.73.26 1.6-.23 2.236-.52.667-1.41.853-2.213.863-.617-.006-1.237-.01-1.845.113-.236.143-.63-.092-.422-.354.258-.075.67-.15.59-.518-.093-.514-.24-1.017-.36-1.526-.14-.58-.284-1.162-.426-1.738zm1.64 2.44c.1.323.138.71.406.944.275.16.616.097.918.07.47-.062.815-.477.89-.93.14-.758-.08-1.535-.38-2.23-.26-.6-.8-1.08-1.447-1.213-.377-.076-.778-.113-1.157-.038-.085.116.022.273.036.403l.735 2.994zm7.06-4.43c.318-.06.31.304.362.514.056.276.16.54.214.815-.128.26-.487.06-.5-.186-.114-.255-.27-.584-.594-.586a9.25 9.25 0 0 0-1.277.06c-.234.085-.05.384-.032.567.114.452.208.91.335 1.36.274-.017.585-.007.818-.172.214-.188-.13-.617.208-.692.377-.045.303.448.368.688.05.445.252.852.34 1.288-.12.284-.53.058-.51-.21-.07-.323-.402-.452-.703-.417-.147.02-.497-.075-.374.172.134.516.222 1.047.41 1.547.097.29.43.35.697.328.417-.02.905.022 1.22-.306.245-.225.018-.602.17-.833.292-.168.485.14.444.407.033.33.093.658.162.98-.06.2-.307.142-.467.166-1.026.067-2.052.112-3.077.195-.256-.01-.55.154-.78.012-.258-.27.095-.41.325-.44.29-.095.26-.443.188-.677-.263-1.08-.512-2.162-.784-3.24-.083-.3-.24-.676-.6-.7-.236.027-.603-.083-.462-.39.296-.12.652-.03.97-.075.976-.06 1.954-.117 2.928-.178zm6.49 4.1c.045.31.285.57.596.62.237.1.605-.037.733.244.092.35-.39.235-.59.25-.574-.01-1.15-.02-1.718.067-.285.02-.573.097-.858.066-.277-.117-.15-.502.147-.444.27-.06.63-.13.707-.44.033-.27-.08-.528-.125-.79-.216-.92-.422-1.844-.643-2.763-.032-.327-.39-.336-.636-.296-.23.01-.587.163-.66-.162-.036-.34.465-.27.67-.407.37-.127.732-.272 1.107-.38.213-.047.302.15.32.32l.95 4.115zm3.69-3.32c-.073-.363-.28-.786-.69-.84-.29-.055-.67.03-.776.344a.924.924 0 0 0 .37 1.022c.27.198.59.312.893.454.06-.12.247-.35.237-.56a1.446 1.446 0 0 0-.034-.42zm.836 2.893c-.102-.487-.57-.77-.996-.948-.185-.032-.445-.278-.558-.177-.31.268-.457.714-.32 1.107.113.483.48.96 1.005 1 .348.047.76-.11.863-.473a.958.958 0 0 0 .006-.51zm.89-.208c.136.48-.06 1.02-.47 1.3-.582.4-1.356.428-2.017.23-.588-.17-1.082-.662-1.186-1.275-.122-.488.08-1.045.513-1.31.1-.1.488-.14.175-.216-.498-.245-.99-.646-1.092-1.223-.12-.486.106-1.034.552-1.274.858-.468 2.087-.192 2.583.676.218.368.26.86 0 1.22-.14.194-.322.39-.565.443.486.1.928.398 1.223.794.14.187.233.406.283.634zm3.264.555c.243.01.504-.135.54-.393.086-.196-.083-.615.256-.59.308.018.277.377.31.6.025.398-.003.873-.345 1.138-.248.158-.557.092-.835.096-.562-.018-1.123-.136-1.685-.072-.236.024-.495.287-.717.098-.192-.223-.077-.52-.005-.764.194-.615.624-1.117 1.1-1.538.334-.313.71-.652.76-1.136a1.95 1.95 0 0 0-.293-1.187c-.283-.45-.95-.607-1.398-.32-.232.15-.414.495-.228.745.21.163.6.018.7.354.13.233-.004.598-.3.595-.44.068-.838-.278-.952-.686-.18-.51.02-1.13.495-1.406.5-.313 1.134-.305 1.69-.17.565.14 1.042.58 1.214 1.138.154.432.16.933-.08 1.336-.377.717-1.15 1.074-1.66 1.677-.14.156-.243.37-.184.585.076-.203.397-.132.582-.167.347-.014.69.076 1.035.067zm3.94-.42c.038.31.274.576.584.632.228.1.567-.016.715.225.143.345-.334.284-.537.27-.59-.02-1.184-.05-1.773.027-.287.013-.577.082-.863.045-.28-.13-.13-.497.158-.44.27-.052.634-.113.72-.422.038-.265-.067-.524-.108-.784-.195-.923-.38-1.848-.58-2.77-.02-.284-.316-.346-.547-.312-.236-.026-.563.165-.714-.093-.173-.353.345-.346.552-.44.408-.124.81-.276 1.222-.383.21-.044.298.155.312.325.286 1.373.57 2.746.858 4.118z" fill="#b07e09" stroke="none"/> - </g> - <g fill="#448127" stroke="#34541f" stroke-width=".218"> - <path d="M475.8 219.41l-3.77 4.483c-1.2 5.24 1.78 9.187 7.648 12.614 4.753 2.95 13.55 3.69 16.327 1.31l-13.714-13.07-6.49-5.337z" fill="url(#m)" stroke="#4c0505"/> - <path d="M503.58 354.27c-.672-.81-1.352-1.617-2.035-2.424-8.558 11.298-19.248 21.43-32.617 28.575 15.077-4.268 24.945-15.256 34.652-26.15zm-15.44 35.71c5.316-10.772 11.73-21.544 18.203-32.317a274.31 274.31 0 0 0-2.144-2.636c-7.353 12.186-15.98 26.68-16.06 34.952zm41.73-114.5c-.985-4.247-2.27-8.838-4.31-13.055-2.656-5.43-6.622-10.83-11.83-16.804-9.384-10.172-18.772-19.996-31.927-27.25l.07-.137.076.045h.163l-.16-.2h.47l-.255-.255h.437l-.352-.4h.46l-.328-.328h.493l-.273-.364.397.03-.372-.386.548-.11-.444-.278.48-.092-.403-.276.587-.187-.516-.305.653-.288-.632-.456.67-.228-.726-.295.612-.322-.72-.13.488-.566-.702.036.32-.597-.668.055c-.015-.02-.028-.04-.044-.058l.366-.45-.675.12.297-.61-.65.324.186-.706-.628.433.096-.72-.578.497.06-.688-.51.534.046-.725-.503.61-.05-.712-.403.56-.205-.677-.335.677-.17-.717-.317.717-.155-.717-.273.717-.206-.677-.214.677-.16-.595-.24.716-.223-.675-.24.77-.293-.69-.126.824-.352-.673-.04.795-.383-.603-.026.788-.408-.568.032.69-.434-.364.213.744-.525-.306.197.65-.433-.24.154.63-.392-.125.206.47-.03.065-.304-.056.175.365c-.383 1.04-.413 2.28-.35 3.515.01.23.593.464.685.607.276.43.226.66.226.66-1.592 2.58-3.015 4.574-3.175 7.532 1.28-1.62 2.604-3.6 4.462-3.6-.92 1.536-1.357 6.17-.324 6.876l.77-1.352c.03 1.075.18 1.792.39 2.322.323-.65.642-1.27.963-1.742.075 1.506.268 2.715.705 3.312.43-.74 1.008-1.19 1.618-1.57-.21.86-.52 1.672-.39 2.703.645-1.102 1.29-1.753 1.933-2.513-.373 1.586-.034 2.77.417 4.522.4-2.077.557-2.297 1.516-3.17.105 1.902-.26 3.63.142 4.693.874-1.675 1.46-1.436 1.982-2.52-.102 1.58-.42 3.292-.014 4.702.337-1.413 1.244-2.17 1.945-2.67.057 2.198.565 1.836-.802 3.7.58.266 2.54-.376 3.605-.832-.514 1.178-.363 2.102-.878 2.936 1.08-.544 2-1.422 2.9-2.323-.416 1.352-1.524 2.704-.968 4.056.25-1.263 1.273-2.303 2.242-2.493-.15.708-.252 2.174-1.273 2.883 2.444.25 3.408-1.398 4.638-2.704-.16 1.357-.114 2.442 1.552 4.354-.336-2.43.242-1.93 1.343-3.392.532 2.148 1.143 4.43 3.382 6.014-.928-2.267-1.1-3.435-.573-4.862.288 1.473 1.684 3.25 2.02 4.644.206-1.547.44-3.045.96-4.055.653 1.756 1.2 3.57 1.353 5.598.488-1.01.885-2.034 1.16-3.085 19.737 20.623 24.138 46.84 2.514 74.54 7.77-5.248 9.775-13.568 14.092-20.66-4.214 9.287-6.092 19.736-13.513 27.42 7.187-6.202 8.71-11.885 13.033-17.862-4.607 12.5-10.982 26.2-19.82 38.742 1.57 1.707 3.14 3.44 4.717 5.19 1.372-2.284 2.743-4.565 4.097-6.85 9.37-15.435 24.658-37.5 16.913-71.146z"/> - </g> - <path d="M473.16 215.29c-.997.226-1.392.642-2.11 1.443.916.2 1.69.246 2.52.264.257-.022.344-.348.287-.585l-.128-.955c-.024-.217-.602-.2-.875-.086l.305-.08z" fill="#eac102" stroke="#a08307" stroke-width=".218"/> - <path d="M471.04 216.73a9.89 9.89 0 0 1 1.053-.298 9.76 9.76 0 0 1 1.078-.19 9.82 9.82 0 0 1-1.052.297 9.94 9.94 0 0 1-1.078.19z" fill="#a08307"/> - <ellipse cx="477.68" cy="215.416" rx=".775" ry=".811" stroke="#000" stroke-width=".098"/> - <ellipse cx="477.86" cy="215.261" rx=".337" ry=".353" fill="url(#n)"/> - <g fill="#34541f"> - <path d="M488.18 389.69a83.377 83.377 0 0 1 1.528-4.44 96.152 96.152 0 0 1 1.783-4.346c1.26-2.87 2.664-5.672 4.136-8.435a199.58 199.58 0 0 1 4.663-8.155 354.41 354.41 0 0 1 2.453-4.003l2.51-3.968-2.42 4.024a400.05 400.05 0 0 0-2.4 4.033c-1.584 2.7-3.144 5.413-4.615 8.172a133.673 133.673 0 0 0-4.174 8.4 98.092 98.092 0 0 0-1.836 4.316 82.656 82.656 0 0 0-1.628 4.402zm-18.84-9.46a75.798 75.798 0 0 0 4.88-2.375 72.32 72.32 0 0 0 4.703-2.704 72.04 72.04 0 0 0 8.733-6.416c2.755-2.342 5.328-4.894 7.762-7.57a113.56 113.56 0 0 0 3.555-4.1c1.16-1.39 2.29-2.805 3.4-4.235a153.748 153.748 0 0 1-3.317 4.3 111.896 111.896 0 0 1-3.513 4.147 81.9 81.9 0 0 1-7.745 7.624 69.946 69.946 0 0 1-8.786 6.393 71.284 71.284 0 0 1-4.742 2.657 76.913 76.913 0 0 1-4.93 2.28zm37.28-29.34c.77-1.074 1.486-2.186 2.202-3.296.715-1.11 1.415-2.232 2.098-3.362 1.368-2.26 2.69-4.55 3.96-6.866a341.82 341.82 0 0 0 3.75-6.985l3.677-7.026-1.745 3.562-1.783 3.542a255.98 255.98 0 0 1-3.71 7.013 160.464 160.464 0 0 1-4.008 6.85c-1.405 2.24-2.852 4.457-4.442 6.57zm5.89-25.11a58.374 58.374 0 0 0 4.692-6.42 60.202 60.202 0 0 0 3.81-6.974c2.235-4.81 3.84-9.894 4.975-15.07.144-.647.283-1.295.414-1.944a61.004 61.004 0 0 0 .694-5.915c.18-2.644.18-5.3-.03-7.942a50.632 50.632 0 0 0-1.24-7.846 53.36 53.36 0 0 0-2.402-7.58 53.484 53.484 0 0 1 2.507 7.554 50.47 50.47 0 0 1 1.28 7.858c.22 2.65.235 5.314.066 7.966a61.252 61.252 0 0 1-.67 5.944 90.31 90.31 0 0 1-.406 1.95c-1.16 5.184-2.794 10.274-5.056 15.084a59.876 59.876 0 0 1-3.853 6.97 58.223 58.223 0 0 1-4.78 6.364z"/> - <path d="M510.87 320.07c1.843-1.762 3.47-3.74 4.898-5.85 1.436-2.103 2.682-4.332 3.795-6.623 1.114-2.29 2.098-4.642 3.027-7.015.464-1.186.915-2.378 1.36-3.572l.334-.896c.106-.296.202-.6.294-.904.186-.61.355-1.224.578-1.83l-.005.017c.507-2.524.78-5.095.81-7.67a45.833 45.833 0 0 0-.57-7.698c-.4-2.547-.996-5.06-1.732-7.532a80.218 80.218 0 0 0-2.553-7.304 80.346 80.346 0 0 1 2.656 7.273 57.405 57.405 0 0 1 1.773 7.54c.414 2.55.63 5.136.61 7.722a41.437 41.437 0 0 1-.78 7.71l-.002.008-.002.01c-.22.59-.393 1.204-.582 1.813-.095.306-.19.61-.302.915l-.338.895c-.45 1.193-.907 2.383-1.38 3.57-.94 2.37-1.937 4.72-3.065 7.012-1.126 2.29-2.383 4.52-3.837 6.62-1.46 2.093-3.116 4.05-4.984 5.788z"/> - <path d="M505.05 349.23c1.202-1.66 2.39-3.327 3.573-4.998l1.778-2.507c.59-.838 1.208-1.654 1.734-2.53 1.068-1.746 1.99-3.576 2.898-5.41.9-1.84 1.82-3.67 2.71-5.515 1.78-3.686 3.504-7.405 4.966-11.228a75.285 75.285 0 0 0 3.45-11.763c.848-4.004 1.417-8.063 1.886-12.13.426-4.065.47-8.18.038-12.248a52.36 52.36 0 0 0-2.725-11.94c-1.35-3.863-3.116-7.576-5.098-11.16 2.013 3.566 3.81 7.264 5.197 11.125a52.395 52.395 0 0 1 2.77 11.96c.446 4.078.414 8.202 0 12.283-.46 4.072-1.016 8.138-1.854 12.153a75.517 75.517 0 0 1-3.495 11.784c-1.477 3.827-3.213 7.543-5.006 11.226-.897 1.843-1.82 3.67-2.727 5.507-.914 1.833-1.84 3.664-2.92 5.41-.536.877-1.163 1.69-1.76 2.522l-1.797 2.49c-1.2 1.66-2.4 3.32-3.618 4.97z"/> - <path d="M507.81 352.25c2.362-3.835 4.71-7.68 6.954-11.583 2.25-3.9 4.483-7.814 6.465-11.856 1.985-4.037 3.7-8.213 4.996-12.522.65-2.153 1.2-4.336 1.653-6.54a59.28 59.28 0 0 0 .592-3.32c.17-1.11.33-2.225.472-3.34.582-4.463.928-8.958.922-13.458-.005-4.498-.365-9-1.198-13.424-.83-4.42-2.14-8.756-3.977-12.865a54.004 54.004 0 0 0-6.956-11.532 54.076 54.076 0 0 1 7.055 11.49c1.852 4.11 3.177 8.453 4.02 12.882.847 4.43 1.22 8.943 1.24 13.45.017 4.51-.317 9.015-.89 13.486a133.98 133.98 0 0 1-.48 3.346 58.79 58.79 0 0 1-.605 3.328 74.245 74.245 0 0 1-1.674 6.55c-1.31 4.316-3.04 8.496-5.04 12.534-1.997 4.042-4.24 7.953-6.503 11.846-2.276 3.89-4.655 7.714-7.047 11.53zM480 220.77c.474-.012.95.04 1.418.113.47.073.934.174 1.394.294.92.245 1.815.572 2.687.954 1.742.768 3.37 1.775 4.9 2.903a35.81 35.81 0 0 1 4.255 3.786 45.252 45.252 0 0 1 1.904 2.116c.606.73 1.197 1.472 1.757 2.236a60.86 60.86 0 0 0-1.84-2.166c-.626-.71-1.273-1.4-1.942-2.07-1.335-1.34-2.747-2.604-4.266-3.728a26.78 26.78 0 0 0-4.84-2.925c-.856-.397-1.74-.74-2.646-1.004-.906-.267-1.836-.473-2.784-.51z"/> - </g> - <g fill="#448127"> - <path d="M496.38 231.57s3.06 1.798 4.725 4.439c0 0-4.717-.884-8.07-4.653"/> - <path d="M496.38 231.57c.48.26.933.566 1.38.88.44.322.87.663 1.28 1.025.412.36.796.753 1.16 1.163.363.412.704.846.997 1.313l.136.218-.248-.053a14.54 14.54 0 0 1-2.272-.712 15.702 15.702 0 0 1-2.138-1.038c-1.37-.795-2.623-1.8-3.64-3.008a15.17 15.17 0 0 0 3.72 2.866 18.27 18.27 0 0 0 2.13.997 14.4 14.4 0 0 0 2.24.683l-.11.163a11.15 11.15 0 0 0-.966-1.296c-.35-.41-.735-.794-1.126-1.168a17.708 17.708 0 0 0-1.23-1.064 18.56 18.56 0 0 0-1.314-.968z" fill="#34541f"/> - <path d="M489.58 230.69s7.226 4.61 8.273 4.978c0 0-1.608-3.478-5.05-4.972"/> - <path d="M489.58 230.69l4.14 2.488c.687.42 1.376.835 2.07 1.243.346.204.694.406 1.044.602.347.194.702.405 1.053.55l-.128.14a10.67 10.67 0 0 0-.925-1.526c-.35-.484-.728-.95-1.142-1.38a10.732 10.732 0 0 0-1.347-1.184c-.48-.36-1-.666-1.542-.926a8.43 8.43 0 0 1 1.596.85c.503.337.967.73 1.4 1.154.432.425.832.883 1.19 1.374.356.49.683 1 .957 1.55l.124.25-.25-.108c-.77-.33-1.438-.757-2.137-1.167-.69-.416-1.376-.84-2.06-1.265a151.55 151.55 0 0 1-4.043-2.645z" fill="#34541f"/> - <path d="M492.46 228.36s3.76 1.6 4.61 4.38c0 0-6.752-2.842-7.96-4.35"/> - <path d="M492.46 228.36a10.668 10.668 0 0 1 2.805 1.682 7.17 7.17 0 0 1 1.14 1.194c.33.443.607.935.77 1.47l.066.224-.21-.09a79.6 79.6 0 0 1-2.083-.936 49.78 49.78 0 0 1-2.05-1.003 33.948 33.948 0 0 1-1.994-1.11c-.324-.2-.643-.41-.95-.634-.305-.227-.61-.465-.844-.766.25.286.564.506.875.72.315.21.64.405.97.59.66.375 1.334.722 2.016 1.055a84.15 84.15 0 0 0 4.143 1.885l-.145.13a4.833 4.833 0 0 0-.725-1.415 7.8 7.8 0 0 0-1.09-1.184c-.402-.36-.834-.688-1.287-.986-.45-.305-.92-.58-1.406-.824z" fill="#34541f"/> - <path d="M486.76 231.25s6.646 4.758 8.613 4.758c0 0-1.948-3.258-5.388-4.752"/> - <path d="M486.76 231.25c.688.456 1.38.908 2.076 1.35.695.445 1.396.88 2.106 1.298.707.423 1.423.833 2.157 1.2.366.185.738.36 1.118.507.376.145.77.288 1.154.3l-.09.156c-.312-.505-.68-.99-1.07-1.45-.39-.456-.804-.898-1.247-1.308-.44-.41-.915-.788-1.41-1.135a10.974 10.974 0 0 0-1.57-.91c1.13.45 2.166 1.128 3.08 1.933.46.403.895.834 1.292 1.298.4.463.773.944 1.104 1.467l.104.16-.19-.004c-.447-.01-.845-.157-1.236-.303a13.663 13.663 0 0 1-1.133-.523 33.267 33.267 0 0 1-2.158-1.23 63.89 63.89 0 0 1-2.075-1.357 56.27 56.27 0 0 1-2.012-1.447z" fill="#34541f"/> - <path d="M486.76 232.74s3.46 2.92 5.427 2.92c0 0-1.948-3.258-5.388-4.752"/> - <path d="M486.76 232.74c.418.312.84.615 1.272.905.428.293.866.573 1.315.83.445.265.902.51 1.376.71.236.1.478.186.723.25.244.07.494.12.74.12l-.088.158a12.4 12.4 0 0 0-1.07-1.45c-.393-.458-.805-.9-1.248-1.31-.442-.41-.915-.787-1.41-1.134a11.007 11.007 0 0 0-1.57-.912c1.13.45 2.165 1.13 3.08 1.934.46.402.894.834 1.292 1.297.4.463.773.944 1.104 1.466l.1.158h-.19c-.55-.002-1.062-.18-1.544-.39a11.45 11.45 0 0 1-1.39-.74c-.442-.28-.87-.58-1.287-.895a17.6 17.6 0 0 1-1.205-1z" fill="#34541f"/> - <path d="M485.03 226.18s7.207 5.117 8.06 7.896c0 0-6.523-2.994-7.732-4.502"/> - <path d="M485.03 226.18a51.627 51.627 0 0 1 2.304 1.68 51.03 51.03 0 0 1 2.205 1.808 25.733 25.733 0 0 1 2.053 1.988c.322.352.63.718.912 1.11.276.39.54.803.687 1.28l.072.23-.22-.102a77.007 77.007 0 0 1-2.022-.985 50.288 50.288 0 0 1-1.99-1.05 34.833 34.833 0 0 1-1.934-1.15 15.42 15.42 0 0 1-.92-.65c-.296-.23-.59-.47-.82-.767.247.282.55.505.853.723.306.214.623.413.943.605.64.387 1.295.748 1.957 1.095a87.25 87.25 0 0 0 4.023 1.983l-.148.13c-.14-.433-.384-.84-.653-1.22a12.21 12.21 0 0 0-.888-1.098c-.632-.703-1.32-1.354-2.02-1.994a51.15 51.15 0 0 0-2.16-1.852 71.205 71.205 0 0 0-2.234-1.764z" fill="#34541f"/> - </g> - <g stroke="#24420e" stroke-width=".164"> - <path d="M445.02 370.33c-4.89 3.644-18.553 5.43-20.448 4.8 9.943-8.27 19.725-8.47 20.448-4.8zm69.76 4.44c5.254 4.768 21.104 8.053 23.475 7.46-10.542-10.77-22.102-11.862-23.475-7.46z" fill="#406325"/> - <path d="M444.98 370.3c-.72-3.67-10.458-3.45-20.378 4.775 10.446-3.442 19.238-5.405 20.378-4.775zm69.91 4.41c1.37-4.402 12.794-3.338 23.364 7.462-11.884-5.02-21.947-8.1-23.364-7.462z" fill="#67923d"/> - </g> - </g> -</svg> diff --git a/img/flags/1x1/gu.svg b/img/flags/1x1/gu.svg deleted file mode 100644 index 855e1a9..0000000 --- a/img/flags/1x1/gu.svg +++ /dev/null @@ -1,39 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" height="512" width="512" viewBox="0 0 512 512"> - <path fill-rule="evenodd" fill="#be0027" d="M0 0h512v512H0z"/> - <path fill-rule="evenodd" fill="#3b5aa3" d="M20.48 20.48h470v471.04h-470z"/> - <path d="M251.86 396.13c1.818.996 4.694.943 6.312.078 103.36-54.986 103.42-205.78.15-259.99-1.918-1.01-4.706-.956-6.613.08-100.72 55.104-100.99 204.19.15 259.84z" fill-rule="evenodd" fill="#cbe0e5"/> - <path d="M251.86 398.85c1.607 1.31 4.847 1.184 6.312.078 76.168-57.026 76.615-92.573 73.24-92.572l-150.75.08c-2.306 0 1.327 36.085 71.198 92.413z" fill-rule="evenodd" fill="#add2d9"/> - <path d="M192.6 334.61c6.536-1.7 14.43-2.15 20.863 1.286 5.715 2.986 9.026 2.957 15.183 3.04 6.444.086 11.51 4.82 18.478 5.006 12.83.336 18.235 6.698 8.26 6.71-4.715.008-14.822-3.142-19.7-2.465-10.19 1.052-16.658 3.308-26.25 13.976l11.086 7.596c9.588-3.91 11.195-8.305 16.504-8.48 5.998-.193 8.036-3.91 14.972-3.918 7.88 1.432 18.555-.978 24.807-2.38 11.09-2.577 5.814-10.327-.908-13.137-5.434-2.313-15.61-.085-21.927-2.38-4.782-1.856-.847-4.842 1.72-5.48 2.596-.477 5.38.37 8.607.89 5.762.5 13-.055 18.058-.848 10.46-1.62 10.02-4.687 15.07-4.77 3.683-.176 6.486-1.277 8.995-3.08 2.95-1.974 6.016-6.02 9.59-5.868l9.568.405-13.477 30.31-38.074 38.752-19.718 7.48-43.342-28.216-21.856-33.522 3.49-.907z" fill-rule="evenodd" fill="#fdf9a1"/> - <path d="M242.41 305.14l87.027-.405 1.53-7.71s-3.105-.465-5.61-.61c-3.124-.193-8.48 3.267-12.068 3.246-2.54-.017-5.447-4.56-7.988-4.465-4.435-.04-4.83 3.95-9.01 4.06-3.373-.115-4.81-2.69-9.178-2.435-4.58.26-4.24 2.78-10.027 2.637-7.643-.192-10.713-6.824-16.828-6.9-10.208-.12-10.54 9.742-17.85 12.582z" fill-rule="evenodd" fill="#179a3b"/> - <path d="M242.41 307l89.576-.456v-2.434l-91.614.456L242.41 307z" fill-rule="evenodd" fill="#fdf9a1"/> - <path d="M279.22 333.92c1.38 5.29 2.834 7.09 8.398 8.437 5.496 1.352 13.88-4.006 8.67-9.178-4.962-4.813-10.175-6.035-14.62-10.37-9.352-9.24-23.445-31.88-23.458-47.848-.01-13.712-1.333-41.855-1.343-68.51.007-1.728-5.21 4.842-5.2 6.597.24 23.515.203 41.288 1.158 65 1.48 17.335 9.753 29.007 17.016 39.542 3.255 5.048 7.958 10.492 9.38 16.328z" fill-rule="evenodd" fill="#a79270"/> - <text font-family="helvetica" font-size="25.614" stroke="#fff" y="269.487" x="465.114" stroke-width="1.638" fill="#bd0728" transform="translate(-256.29 5.09)"> - <tspan>G</tspan> - </text> - <text font-family="helvetica" font-size="25.614" stroke="#fff" y="269.607" x="488.065" stroke-width="1.638" fill="#bd0728" transform="translate(-256.29 5.09)"> - <tspan>U</tspan> - </text> - <text font-family="helvetica" font-size="25.614" stroke="#fff" y="269.59" x="516.053" stroke-width="1.638" fill="#bd0728" transform="translate(-256.29 5.09)"> - <tspan>A</tspan> - </text> - <text font-family="helvetica" font-size="25.614" stroke="#fff" y="269.542" x="539.532" stroke-width="1.638" fill="#bd0728" transform="translate(-256.29 5.09)"> - <tspan>M</tspan> - </text> - <path d="M211.9 207.31c-1.158 2.235 2.712-.652 3.588-.963 5.015-1.785 6.98-8.12 15.62-4.306 6.8 2.94 15.93 1.23 11.157 4.207-5.897 3.53-17.64 7.44-17.872 24.945.98 1.712 1.052 1.442 1.873-.393 1.784-4.08 10.296-15.16 14.508-14.24 1.695.44 6.675-5.006 6.79-3.452.452 4.372-6.76 13.214-6.684 25.05.018 2.742 3.39 3.63 5.015 1.702 1.616-1.7 2.525-3.46 5.355-5.693 5.002-4.104 3.62-21.51 4.238-20.693 3.54 4.584 4.085 17.513 9.36 22.816 4.38 4.407 7.925 2.297 6.968-3.824-1.903-12.27-7.703-8.762-10.464-21.453-.56-2.473-.697-4.706 2.574-3.672 4 1.16 6.35 3.02 9.334 7.533 2.984 4.304 8.58 8.43 11.813 10.963 5.64 4.335 7.622.55 4.93-5.014-2.98-6.242-9.697-11.418-15.807-13.682-4.628-1.6-6.278-1.75-10.356-2.534-1.133-.24-2.305-2.563-.29-3.846 4.32-2.64 9.487-5.62 14.726-5.772 5.045-.127 9.04 3.916 12.578 4.93 7.055 1.848 7.02-2.63 3.91-5.95-2.555-2.805-7.958-7.508-13.002-6.883-10.178 1.248-9.536.963-15.78 5.105-2.29 1.35-4.833 2.84-3.884 1.203 2.284-4.11.156-3.403 3.685-7.585 2.744-3.063 4.76-5.27 7.48-6.034 2.583-.622 5.996-3.367 7.052-4.76 2.535-3.506.35-5.508-3.568-4.333-3.4.936-5.228 3.2-7.565 3.825-5.482 1.727-9.905 14.27-10.58 16.046-.874 2.123-1.84 1.07-1.662-.727.792-8.855 1.54-23.682-1.587-29.786-4.708-9-4.272-4.803-6.08-.532-2.72 6.785-1.775 13.11-.06 19.76.748 3.318 3.528 7.095 4.026 9.7.358 2.046-1.19-.637-2.088-1.865-2.956-4.523-5.117-7.582-9.93-10.045-3.29-2.082-12.148-2.362-15.232-1.413-1.335.41 1.48 2.316 2.674 3.263 3.228 2.566 9.344 3.366 13.46 5.895 3.533 2.173 6.224 3.57 7.395 6.574.487 2.23 1.21 5.54-.258 5.46-3.855-.222-9.847-3.558-22.148-2.187-6.282.83-11.736 6.205-15.213 12.663z" fill-rule="evenodd" fill="#239e46"/> - <path fill-rule="evenodd" d="M238.71 319.84h3.57v5.95h-3.57z"/> - <path d="M220.99 280.21c14.154 19.6 36.84 31.025 37.295 39.926-14.334-.057-29.87.007-44.206-.05 10.155-12.21 16.345-20.454 6.91-39.876z" fill-rule="evenodd" fill="#fdf9ff"/> - <path d="M208.12 320.58c19.23 4.288 42.187 6.65 56.85-.6.12 4.286-4.767 10.456-8.774 10.456h-36.898c4.286-.614 6.73-1.92 13.704-2.284l-19.59.24c-2.165.082-6.012-5.73-5.29-7.812z" fill-rule="evenodd" fill="#a68861"/> - <path d="M251.73 405.93c1.955 1.07 5.045 1.014 6.785.085 111.1-59.135 111.16-221.3.162-279.61-2.063-1.087-5.06-1.028-7.11.085-108.26 59.262-108.55 219.59.163 279.44zm.552-13.35c1.707.945 4.404.896 5.923.074 92.997-54.73 94.136-199.32.14-251.15-1.798-1.322-4.415-.908-6.204.074-89.066 52.672-94.033 191.3.142 251z" fill-rule="evenodd" fill="#be0027"/> - <text font-size="25.614" y="269.487" x="465.114" font-family="helvetica" fill="#bd0728" transform="translate(-256.29 5.09)"> - <tspan>G</tspan> - </text> - <text font-size="25.614" y="269.607" x="488.065" font-family="helvetica" fill="#bd0728" transform="translate(-256.29 5.09)"> - <tspan>U</tspan> - </text> - <text font-size="25.614" y="269.59" x="516.053" font-family="helvetica" fill="#bd0728" transform="translate(-256.29 5.09)"> - <tspan>A</tspan> - </text> - <text font-size="25.614" y="269.542" x="539.532" font-family="helvetica" fill="#bd0728" transform="translate(-256.29 5.09)"> - <tspan>M</tspan> - </text> -</svg> diff --git a/img/flags/1x1/gw.svg b/img/flags/1x1/gw.svg deleted file mode 100644 index 2f318ca..0000000 --- a/img/flags/1x1/gw.svg +++ /dev/null @@ -1,15 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" height="512" width="512" viewBox="0 0 512 512"> - <path fill="#ce1126" d="M0 0h160v512H0z"/> - <path fill="#fcd116" d="M160 0h352v256H160z"/> - <path fill="#009e49" d="M160 256h352v256H160z"/> - <g transform="matrix(.7886 0 0 .7886 -46.175 72.761)"> - <g transform="matrix(80 0 0 80 160 240)" id="b"> - <path transform="rotate(18 0 -1)" d="M0-1v1h.5" id="a"/> - <use transform="scale(-1 1)" xlink:href="#a" width="100%" height="100%"/> - </g> - <use transform="rotate(72 160 240)" xlink:href="#b" width="100%" height="100%"/> - <use transform="rotate(144 160 240)" xlink:href="#b" width="100%" height="100%"/> - <use transform="rotate(-144 160 240)" xlink:href="#b" width="100%" height="100%"/> - <use transform="rotate(-72 160 240)" xlink:href="#b" width="100%" height="100%"/> - </g> -</svg> diff --git a/img/flags/1x1/gy.svg b/img/flags/1x1/gy.svg deleted file mode 100644 index 64104b5..0000000 --- a/img/flags/1x1/gy.svg +++ /dev/null @@ -1,9 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" height="512" width="512" viewBox="0 0 512 512"> - <g fill-rule="evenodd"> - <path fill="#399408" d="M1.946 0H512v512H1.946z"/> - <path d="M.14 0c-.673.078 495.688 257.58 495.688 257.58L-.002 511.75.14 0z" fill="#fff"/> - <path d="M.23 21.532c2.768 0 447.253 232.41 444.722 234.7L1.494 494.152.23 21.532z" fill="#ffde08"/> - <path d="M1.495.836c1.478 0 232.762 256.98 232.762 256.98L1.495 508.776V.826z"/> - <path d="M.23 36.162c1.325-15.985 208.733 222.29 208.733 222.29L.23 481.812V36.162z" fill="#de2110"/> - </g> -</svg> diff --git a/img/flags/1x1/hk.svg b/img/flags/1x1/hk.svg deleted file mode 100644 index b1b8f79..0000000 --- a/img/flags/1x1/hk.svg +++ /dev/null @@ -1,34 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" height="512" width="512" viewBox="0 0 512 512"> - <defs> - <clipPath id="a"> - <path fill-opacity=".67" d="M164.85 0h744.09v744.09H164.85z"/> - </clipPath> - </defs> - <g clip-path="url(#a)" transform="matrix(.7 0 0 .7 -113.43 0)"> - <path fill-rule="evenodd" fill="#ba0000" d="M1063 744.094H0V.004h1063z"/> - <path d="M516.372 360.137s-75.02-32.3-64.255-116c10.42-40.29 28.828-67.727 62.17-82.66 15.63-4.864 31.607-6.948 47.93-8.337-4.284 4.052-7.872 8.104-9.724 13.198-3.59 9.146-.927 17.945 3.82 26.743 6.02 10.19 9.606 20.724 10.765 34.385 2.2 19.218-6.02 37.743-21.186 48.973-9.61 7.41-20.954 9.956-30.217 18.407-7.177 7.063-11.576 14.126-13.197 26.396-.232 23.387 6.137 26.63 13.894 38.9z" fill-rule="evenodd" fill="#fff"/> - <path d="M502.132 239.037v-.347" fill-rule="evenodd" stroke="#000" stroke-width="3.127" fill="#ba0000"/> - <path d="M506.872 351.447c-29.18-25.82-26.63-90.76-4.4-112.41" stroke="#ba0000" stroke-width="3.127" fill="none"/> - <path fill-rule="evenodd" fill="#ba0000" d="M501.898 223.064l9.61-2.165 1.144-9.37 4.78 8.03 9.608-2.18-6.657 7.127 4.794 8.02-8.894-3.622-6.646 7.136 1.16-9.365"/> - <path d="M522.747 354.6s8.9-81.194 92.08-95.426c41.576-1.843 73.203 7.717 97.25 35.22 9.23 13.518 15.905 28.184 22.016 43.383-5.13-2.908-10.055-5.152-15.468-5.43-9.797-.752-17.43 4.372-24.45 11.488-7.977 8.74-17 15.258-29.72 20.37-17.73 7.732-37.85 5.302-53.032-5.907-9.9-7.018-15.66-17.117-26.454-23.498-8.857-4.792-16.9-6.928-29.105-4.883-22.428 6.63-23.662 13.67-33.12 24.683z" fill-rule="evenodd" fill="#fff"/> - <path d="M634.36 305.5l.33-.103" fill-rule="evenodd" stroke="#000" stroke-width="3.127" fill="#ba0000"/> - <path d="M528.272 342.97c16.137-35.466 78.974-52.056 106.187-37.146" stroke="#ba0000" stroke-width="3.127" fill="none"/> - <path fill-rule="evenodd" fill="#ba0000" d="M649.563 300.594l4.886 8.556 9.29-1.652-6.275 6.923 4.9 8.548-8.765-4.276-6.264 6.933.857-9.565-8.77-4.263 9.295-1.635"/> - <path d="M528.353 360.463s79.814-17.346 119.728 57.006c14.95 38.836 15.93 71.86-2.51 103.4-9.887 13.043-21.674 24.03-34.145 34.652 1.13-5.788 1.69-11.17.236-16.392-2.397-9.528-9.68-15.138-18.657-19.535-10.822-4.788-19.866-11.273-28.753-21.713-12.964-14.356-17.05-34.206-11.242-52.16 3.51-11.617 11.257-20.285 13.88-32.547 1.73-9.92 1.202-18.223-4.614-29.148-13.41-19.16-20.477-18.095-33.924-23.568z" fill-rule="evenodd" fill="#fff"/> - <path d="M610.357 450.702l.202.282" fill-rule="evenodd" stroke="#000" stroke-width="3.127" fill="#ba0000"/> - <path d="M541.134 362.008c38.754 4.038 74.442 58.352 68.946 88.892" stroke="#ba0000" stroke-width="3.127" fill="none"/> - <path fill-rule="evenodd" fill="#ba0000" d="M619.836 463.56l-6.56 7.35 4.517 8.286-8.557-3.752-6.55 7.36 1.272-9.668-8.564-3.738 9.343-2.225 1.256-9.67 4.502 8.295"/> - <g> - <path d="M526.556 368.693s39.062 71.732-21.09 130.92c-33.075 25.256-64.496 35.47-99.943 26.628-15.297-5.825-29.15-14.052-42.848-23.04 5.872-.54 11.196-1.512 15.798-4.375 8.472-4.977 11.81-13.543 13.51-23.394 1.556-11.73 5.24-22.23 12.764-33.692 10.137-16.474 28.04-25.97 46.905-25.438 12.134.106 22.63 5.108 35.134 4.18 10.007-1.124 17.828-3.963 26.68-12.613 14.623-18.25 11.616-24.735 13.092-39.177z" fill-rule="evenodd" fill="#fff"/> - <path d="M462.977 472.74l-.214.273" fill-rule="evenodd" stroke="#000" stroke-width="3.127" fill="#ba0000"/> - <path d="M528.662 381.395c7.008 38.327-35.098 87.833-65.952 91.135" stroke="#ba0000" stroke-width="3.127" fill="none"/> - <path fill-rule="evenodd" fill="#ba0000" d="M453.298 485.45l-8.896-4.234-6.684 6.662 1.197-9.266-8.903-4.22 9.637-1.494 1.18-9.27 4.76 8.343 9.634-1.508-6.697 6.65"/> - </g> - <g> - <path d="M517.706 367.138s-54.677 60.677-130.488 23.61c-34.81-22.806-54.885-49.048-58.323-85.42.412-16.362 3.57-32.163 7.494-48.068 2.46 5.358 5.147 10.057 9.376 13.447 7.51 6.336 16.697 6.64 26.553 4.97 11.58-2.43 22.71-2.446 36.02.843 18.906 4.088 33.81 17.82 39.577 35.788 3.93 11.48 2.7 23.04 7.73 34.527 4.385 9.065 9.662 15.498 20.762 20.973 22.072 7.728 27.188 2.738 41.3-.67z" fill-rule="evenodd" fill="#fff"/> - <path d="M398.446 341.743l-.328-.112" fill-rule="evenodd" stroke="#000" stroke-width="3.127" fill="#ba0000"/> - <path d="M506.426 373.345c-33.82 19.345-94.504-3.92-107.87-31.924" stroke="#ba0000" stroke-width="3.127" fill="none"/> - <path fill-rule="evenodd" fill="#ba0000" d="M383.244 336.836l1.036-9.797-8.505-4.092 9.138-1.95 1.02-9.798 4.613 8.593 9.135-1.965-6.286 7.26 4.625 8.585-8.5-4.107"/> - </g> - </g> -</svg> diff --git a/img/flags/1x1/hm.svg b/img/flags/1x1/hm.svg deleted file mode 100644 index c97d4f1..0000000 --- a/img/flags/1x1/hm.svg +++ /dev/null @@ -1,9 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" height="512" width="512" viewBox="0 0 512 512"> - <g stroke-width="1pt"> - <path fill="#006" d="M0 0h512v512H0z"/> - <path fill="#fff" d="M0 0v19.214l234.01 152.64h29.456v-19.215L29.456 0H0zm263.466 0v19.213l-234.01 152.64H0v-19.214L234.01 0h29.456z"/> - <path fill="#fff" d="M109.777 0v171.852h43.91V0h-43.91zM0 57.284v57.284h263.466V57.284H0z"/> - <path fill="#c00" d="M0 68.74v34.37h263.466V68.74H0zM118.56 0v171.852h26.346V0H118.56zM0 171.852l87.822-57.284h19.637l-87.823 57.284H0zM0 0l87.822 57.284H68.185L0 12.81V0zm156.007 57.284L243.83 0h19.636l-87.822 57.284h-19.637zm107.46 114.568l-87.823-57.284h19.637l68.186 44.475v12.81z"/> - <path fill-rule="evenodd" fill="#fff" d="M69.113 443.57l-16.34 17.194 3.256-23.495-23.63-2.055 20.394-12.106-13.122-19.755 22.177 8.398 7.263-22.578 7.264 22.578 22.177-8.398-13.122 19.754 20.394 12.105-23.63 2.054 3.257 23.494M380.525 466.82l-11.507 12.1 2.295-16.535-16.635-1.448 14.36-8.525-9.244-13.907 15.62 5.914 5.11-15.9 5.11 15.9 15.622-5.915-9.243 13.907 14.36 8.525-16.636 1.448 2.295 16.536m-11.507-259.56l-11.507 12.1 2.295-16.535-16.635-1.448 14.36-8.524-9.244-13.91 15.62 5.915 5.11-15.896 5.11 15.896 15.622-5.914-9.243 13.91 14.36 8.523-16.636 1.448 2.295 16.536M287.727 319.89l-11.506 12.102 2.296-16.537-16.636-1.447 14.36-8.525-9.243-13.908 15.62 5.915 5.11-15.9 5.11 15.9 15.62-5.915-9.24 13.908 14.358 8.525-16.636 1.447 2.294 16.537m163.756-36.847l-11.506 12.1 2.29-16.536-16.612-1.448 14.384-8.525-9.26-13.908 15.632 5.914 5.073-15.9 5.136 15.9 15.59-5.915-9.218 13.907 14.353 8.525-16.64 1.447 2.288 16.536m-63.395 41.651l-8.172-6.898 10.67-.785 4.04-9.905 4.04 9.905 10.672.785-8.172 6.898 2.555 10.387-9.094-5.636-9.094 5.636"/> - </g> -</svg> diff --git a/img/flags/1x1/hn.svg b/img/flags/1x1/hn.svg deleted file mode 100644 index cee1714..0000000 --- a/img/flags/1x1/hn.svg +++ /dev/null @@ -1,18 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" height="512" width="512" viewBox="0 0 512 512"> - <path d="M0 0h512v512H0z" fill="#0073cf"/> - <path d="M0 170.666h512v170.667H0z" fill="#fff"/> - <g id="c" transform="translate(256 256) scale(28.44446)" fill="#0073cf"> - <g id="b"> - <path id="a" d="M0-1l-.31.95.477.156z"/> - <use height="100%" width="100%" xlink:href="#a" transform="scale(-1 1)"/> - </g> - <use height="100%" width="100%" xlink:href="#b" transform="rotate(72)"/> - <use height="100%" width="100%" xlink:href="#b" transform="rotate(-72)"/> - <use height="100%" width="100%" xlink:href="#b" transform="rotate(144)"/> - <use height="100%" width="100%" xlink:href="#b" transform="rotate(-144)"/> - </g> - <use height="100%" width="100%" xlink:href="#c" transform="translate(142.223 -45.511)"/> - <use height="100%" width="100%" xlink:href="#c" transform="translate(142.223 39.822)"/> - <use height="100%" width="100%" xlink:href="#c" transform="translate(-142.223 -45.511)"/> - <use height="100%" width="100%" xlink:href="#c" transform="translate(-142.223 39.822)"/> -</svg> diff --git a/img/flags/1x1/hr.svg b/img/flags/1x1/hr.svg deleted file mode 100644 index 24b1854..0000000 --- a/img/flags/1x1/hr.svg +++ /dev/null @@ -1,61 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" height="512" width="512" viewBox="0 0 512 512"> - <path fill="#171796" d="M0 0h512v512H0z"/> - <path fill="#fff" d="M0 0h512v341.333H0z"/> - <path fill="red" d="M0 0h512v170.667H0z"/> - <path d="M256.032 388.425c54.742 0 99.528-44.79 99.528-99.53V170.628H156.5v118.27c0 54.74 44.79 99.528 99.53 99.528z" fill="red"/> - <path d="M256.032 386.83c53.698 0 97.63-43.935 97.63-97.63V172.542H158.398V289.2c0 53.698 43.935 97.63 97.634 97.63z" fill="#fff"/> - <g fill="red"> - <path d="M199.608 176.213h-37.572v41.28h37.572zm0 82.559h37.573v-41.278H199.61zm-37.572 30.198c0 3.748.232 7.446.664 11.083h36.908v-41.28h-37.572v30.196zm112.72-30.198H237.18v41.28h37.576zm0 82.558h37.573v-41.277h-37.574zm37.574 22.582a95.136 95.136 0 0 0 21.45-22.58h-21.45v22.58zM199.61 341.33h37.573v-41.277H199.61zm-21.486 0a95.113 95.113 0 0 0 21.487 22.608V341.33h-21.486zm84.388 41.28a93.406 93.406 0 0 0 12.24-1.67v-39.61h-37.57v39.616a92.865 92.865 0 0 0 12.205 1.663c4.375.27 8.75.254 13.123 0z"/> - <path d="M349.2 300.053c.433-3.65.666-7.36.666-11.122v-30.155h-37.54v41.28H349.2zm-74.444-41.281h37.573v-41.278h-37.574zm0-82.559h-37.573v41.28h37.573zm75.11 41.281v-41.28H312.33v41.28z"/> - </g> - <path d="M351.97 169.417l23.296-52.81-17.75-28.66-29.405 10.887-20.644-23.6-27.205 15.59-24.256-19.867-24.258 19.867-27.204-15.59-20.648 23.597-29.406-10.885-17.754 28.668L160 169.433c29.318-13.27 61.826-20.664 96.006-20.664 34.166 0 66.658 7.387 95.968 20.647z" fill="#fff"/> - <path d="M184.54 101.164l-.042.05-29.16-10.797-16.32 26.348 6.252 14.212 15.835 35.948a234.315 234.315 0 0 1 36.888-12.76l-13.45-52.998z" fill="#0093dd"/> - <path d="M182.863 127.22a14.142 14.142 0 0 1 1.635 6.613c0 7.85-6.402 14.253-14.253 14.253-6.918 0-12.71-4.974-13.99-11.528 2.462 4.353 7.135 7.3 12.474 7.3 7.887 0 14.322-6.433 14.322-14.324 0-.79-.065-1.562-.19-2.318z" fill="#fff" stroke="#000" stroke-width=".299"/> - <path d="M169.8 107.498l-.048.235-.993 5.116 3.924 3.43.18.156-.228.078-4.926 1.7-1.01 5.112-.047.235-.18-.158-3.932-3.417-4.93 1.683-.23.078.048-.237.993-5.114-3.922-3.43-.182-.16.228-.078 4.926-1.696 1.01-5.113.047-.236.18.156 3.932 3.42 4.93-1.683z"/> - <path d="M163.88 114.763l3.678 3.207 4.603-1.585zm.03-.163l8.284 1.62-3.665-3.204zm-8.89-1.74l8.28 1.62-3.678-3.205zm8.25 1.784l-8.284-1.62 3.665 3.202zm.462-.311l5.545-6.362-4.608 1.573zm-5.955 6.832l5.545-6.362-4.615 1.582zm5.671-6.253l-5.545 6.362 4.608-1.572zm5.955-6.832l-5.545 6.362 4.615-1.583zm-5.993 6.273l-2.737-7.982-.943 4.778zm2.94 8.574l-2.737-7.982-.938 4.787zm-2.58-8.037l2.737 7.984.943-4.777zm-2.94-8.575l2.737 7.985.938-4.79z" fill="#f7db17"/> - <path d="M232 93.233l-.05.04-26.978-15.46-20.43 23.35 13.45 53a234.432 234.432 0 0 1 38.524-6.435l-4.52-54.495z" fill="#171796"/> - <path d="M194.654 141.01a247.734 247.734 0 0 1 40.742-6.805l-1.142-13.775a261.917 261.917 0 0 0-43.002 7.18l3.4 13.4zm-6.761-26.637a275.153 275.153 0 0 1 45.23-7.555l-1.12-13.522a288.77 288.77 0 0 0-47.45 7.924l3.34 13.153z" fill="red"/> - <g transform="translate(-256) scale(.00253)"> - <path d="M212105 36890l-23 13-9517-7794-9497 7778 1788 21560c2543-210 5113-322 7709-322 2608 0 5190 113 7744 325l1795-21560z" fill="#0093dd"/> - <g id="a"> - <path d="M202545 46585c-18-2-44 10-69 45-186 250-359 469-545 720-195 61-242 180-167 348-261-26-291 193-302 432-250-379-522-482-814-307-11-230-187-338-439-392-180-10-319-65-436-145-60-42-110-64-170-106-126-88-226-5-172 74 267 434 535 868 802 1302-14 80 6 151 88 204 47 133 93 265 140 397-11 38-21 75-32 113-221-105-443-118-664-133-170-8-287-50-361-137-54-63-91-26-92 82-3 534 162 1014 599 1492-231 4-462 11-694 21-79 6-95 39-73 104 126 304 339 579 822 766-208 112-327 285-357 520-9 224-75 382-212 455-60 32-81 65-24 106 253 185 565 193 895 112-157 270-226 553-198 850 208 56 412 15 614-52-29 61-44 175-52 309-7 115-41 229-104 343-32 33-65 84 4 102 336 91 648 52 915-47 0 243 2 487 76 727 18 58 70 102 125 26 155-214 322-396 527-517 31 90 75 168 156 215 96 55 147 170 153 343 0 30-2 60 35 90 149 7 514-380 589-597 206 121 284 246 439 461 55 76 99 29 128-25 62-243 67-481 66-724 267 99 579 138 915 47 69-19 36-70 4-102-62-114-105-250-113-365-9-133-14-226-43-287 202 68 405 108 614 52 29-297-53-579-211-850 330 80 655 73 908-112 57-41 35-74-24-106-136-73-203-231-212-455-30-235-149-409-357-520 483-187 696-463 822-766 22-66 6-99-73-104-231-10-480-24-711-27 437-478 606-961 604-1495-1-108-38-146-92-82-74 87-179 137-348 146-222 15-435 24-656 128-11-38-21-75-32-113 46-132 106-260 153-393 82-53 102-123 88-204 267-434 513-868 781-1302 54-79-46-162-171-74-60 42-110 64-170 106-117 80-257 134-437 145-251 54-417 167-428 397-293-175-564-73-814 307-11-239-41-457-302-432 75-168 17-291-178-352-186-250-458-470-644-720-31-35-51-47-69-45z"/> - <g fill="#f7db17"> - <path d="M205075 47978c-51-26-124 17-162 95s-33 170 19 196c40 20 84-6 119-56l22-36c2-3 4-6 5-9 38-78 49-163-2-188zm-5008 0c52-26 124 17 162 95s39 165-13 191-103-24-141-102-60-158-9-184zm4539 905c-32 0-59 27-59 59s26 59 59 59 59-26 59-59c0-32-26-59-59-59zm-4032 0c-32 0-59 26-59 59 0 32 26 59 59 59s59-26 59-59-26-59-59-59zm4294-304c-754-91-1506-133-2260-133s-1509 41-2269 115c-26 8-21 90 14 86 756-73 1507-113 2256-113 743 0 1485 40 2228 129 39 4 54-80 32-84z"/> - <path d="M200319 48495c768-75 1530-117 2289-116 754 0 1507 42 2261 133l111-184c-32 10-62 9-90-5-76-38-92-161-36-274 56-114 164-175 240-138 39 19 62 62 68 114l446-739c-204 130-328 214-581 252-281 41-409 139-368 307 38 156-57 133-201 54-314-171-541 71-652 353-73 186-159 181-168-13-4-70 0-131-7-200-21-223-89-286-216-224-161 78-175 25-137-58 28-60 86-128 66-221-9-67-66-92-151-98-182-244-467-483-649-727-182 244-374 483-556 727-86 5-142 30-152 98-20 93 52 157 80 217 38 82 23 135-137 57-127-61-186-3-207 220-7 69-10 139-13 209-9 194-95 199-168 13-111-282-352-524-667-353-145 79-203 102-182-54 23-172-107-266-388-307-253-37-377-122-581-252l419 682c12-25 29-45 53-57 76-38 184 24 240 138 56 113 40 237-36 274-10 5-21 8-32 10l100 163zm4389 911c-7 3-7 4-24 11-46 19-80 66-134 124-57 60-128 125-211 188-12 10-25 19-44-6s-7-35 6-44c80-62 149-124 204-182 30-32 56-63 77-92-95-11-190-21-284-30-79 24-157 55-222 95-59 35-107 77-137 125-8 14-16 27-44 11-27-16-19-30-11-44 35-58 91-107 158-147 33-20 69-38 106-54-107-9-214-18-321-25-22 13-42 29-61 47-20 19-39 42-56 67-9 13-18 26-44 8s-18-31-8-44c19-29 41-54 64-77l9-9c-80-5-161-10-241-14-2 2-5 5-8 7-21 18-40 38-55 59s-28 43-38 67c-6 15-12 29-41 18-29-12-23-26-17-41 12-29 27-55 45-81 8-11 18-22 27-33-115-5-230-9-344-12-4 5-9 8-14 11-25 15-47 32-66 51s-35 40-48 63c-8 14-16 28-43 12-28-16-20-29-12-43 16-28 35-54 59-77 7-7 14-13 21-19-122-2-244-4-365-4-120 0-240 1-360 3 8 7 15 13 22 20 23 23 42 49 59 77 8 14 16 27-12 43s-35 2-44-12c-13-23-29-44-48-63s-41-36-66-51c-6-3-12-7-15-12-115 2-230 6-345 11 11 11 20 23 29 35 19 25 33 52 45 81 6 15 12 29-17 41s-35-3-41-18c-9-24-22-46-38-67-15-21-34-41-55-59-4-3-7-6-10-10-81 4-162 8-243 13 4 4 9 8 13 12 24 23 45 48 64 77 9 13 18 26-8 44s-35 5-44-8c-18-26-36-48-56-67s-41-35-64-49c-1-1-3-2-5-3-110 7-220 14-330 23 43 18 85 38 122 61 67 40 124 89 158 147 8 14 16 27-11 44-27 16-35 3-44-11-29-48-78-90-137-125-72-44-159-77-246-102h-2c-90 7-179 15-268 24 22 33 51 68 86 106 55 58 124 120 204 182 13 9 25 19 6 44s-32 15-44 6c-83-64-155-128-211-188-37-38-99-111-135-140-196-90-354-127-575-147-153-14-318-9-458-79 36 85 75 164 126 229 53 68 120 121 209 147 8 2 21 16 22 25 28 157 84 286 169 386 52 60 114 110 188 149-75-81-132-166-172-251-67-142-90-286-77-420 1-16 3-32 34-29 32 3 30 19 29 35-11 123 9 256 72 387 56 118 159 237 291 346 24 19 0 63-29 55-154-44-290-123-383-231-89-104-149-237-180-397-94-32-165-90-222-164-47-60-85-131-118-205 28 428 182 801 456 1137 61 75 165 182 255 216 92 35 95 100-20 101-34 1-69 1-105 1 84 31 164 66 233 105 127 73 217 162 224 273 1 16 2 32-29 34-32 2-33-14-34-29-6-86-82-160-192-223-113-65-259-117-402-160-154 0-312-1-459 3 39 28 80 57 131 84 82 44 188 86 343 122 89 21 166 52 233 91 71 42 130 93 177 150 10 12 20 25-5 45s-34 8-45-5c-42-52-95-98-159-135-61-36-133-64-216-84-161-38-272-81-358-128-75-40-131-82-184-123 180 393 450 573 835 689 23 7 43 13 61 19 3 1 6 1 9 2 86 21 175 40 266 55 92 15 166 28 261 37 16 1 32 3 29 34-3 32-19 30-34 29-99-9-174-22-266-38-58-10-115-21-171-33-26 6-64 9-107 12-232 14-420 225-435 494 0 5 0 11-1 16 88-80 179-157 273-212 117-68 239-103 364-69 15 4 31 8 22 39-8 31-23 27-39 22-106-28-212 3-316 63-108 63-213 158-315 253-24 147-82 285-205 377 61 34 104 65 163 45 86-39 172-78 261-108 91-31 184-52 282-57 16-1 32-1 33 31s-14 32-31 33c-91 4-179 24-264 53-75 26-149 58-222 91 221 47 460-1 667-79 60-22 105-42 133-41 51-30 112-53 172-79 66-28 132-51 182-57 16-2 32-4 35 28 4 32-12 33-28 35-112 13-127 21-222 79 0 21-66 57-126 96-36 24-70 52-87 67-95 86-144 181-188 287-29 70-52 145-68 224 55-108 121-211 201-303 94-108 208-201 345-265 14-7 29-13 42 15 13 29-1 35-15 42-129 60-236 147-324 250-90 103-161 222-219 345-31 64-8 1-42 86 110-122 212-224 323-307 132-100 283-157 418-133 15 3 31 6 26 37s-21 28-37 26c-116-21-250 32-369 121-121 92-244 223-366 361 184 26 366-26 542-85 91-30 183-135 239-152 19-24 38-46 57-67 33-37 67-71 102-100 12-10 24-20 45 4s8 34-4 45c-33 28-65 60-96 94-32 35-62 73-92 113-6 8-13 17-24 16-60 70-151 162-172 240-57 210-25 370-122 576 71-38 128-81 175-134 53-60 94-135 128-230 37-104 95-195 167-270 75-77 165-136 261-172 15-5 30-11 41 19s-4 35-19 41c-87 32-169 86-238 157-66 68-119 151-153 247-37 102-81 183-141 250-44 50-95 91-156 127 52-3 78-10 121-7 79-6 211-66 279-119 66-51 116-120 154-206 6-15 13-29 42-16s23 27 16 42c-42 96-99 174-173 231-56 43-121 75-196 93 161-5 311-42 467-100 65-24 87-168 127-208 32-58 66-112 105-158 47-56 101-101 164-127 15-6 29-12 41 18 12 29-3 35-17 41-52 21-98 60-139 108-36 42-68 93-98 147 10 73-51 228-53 305-7 205-2 409 53 612 53-71 107-134 162-192 0-5 0-10 1-15 18-106 33-219 40-332 7-112 7-223-6-329-2-16-4-32 27-35 32-4 34 12 35 28 14 111 14 226 7 340-6 90-16 180-30 269 54-51 53-51 77-103 37-80 59-159 67-237 9-80 5-157-13-230-4-15-7-31 24-38s35 8 38 24c19 80 25 165 14 252-8 65-24 132-49 199 56-42 114-82 178-122-4-75-5-153-3-227 2-68 7-134 18-190 4-20 7-40 47-33s37 27 33 48c-9 50-14 111-16 177-2 78 0 162 4 243 5 82 49 185 125 230 103 62 158 163 186 274 16-145 17-280 3-400-17-143-55-267-114-368-8-14-16-27 12-44 27-16 35-2 43 12 63 110 104 241 122 393 17 146 13 310-13 488 102-82 381-258 352-594-7-27-16-52-28-75-7-14-14-28 14-42s35 0 42 14c17 33 30 69 39 110 5 24 8 49 11 76 13-7 45-43 51-39 24 16 58 38 80 54-21-60-35-120-42-178-10-87-5-172 14-252 4-15 7-31 38-24s27 23 24 38c-18 73-22 151-13 230 9 77 31 157 67 237 4 8 8 16 5 25 24 21 47 42 70 65-13-84-22-170-28-255-8-115-7-230 7-341 2-16 4-32 35-28s29 20 27 35c-13 106-13 217-6 329 7 113 22 225 40 332 1 2 1 5 1 7 54 59 95 120 152 196 55-203 73-407 66-612-2-76-69-227-65-302-30-55-63-107-100-151-41-49-87-87-139-108-15-6-29-12-18-41 12-29 27-24 41-18 62 26 117 71 164 127 38 45 72 98 103 154 57 7 78 179 143 212 154 57 298 94 453 100-75-19-140-50-195-93-74-57-131-135-173-231-6-15-13-29 16-42s35 2 42 16c38 86 88 156 154 206 85 66 289 124 400 127-61-37-113-78-157-128-59-67-104-148-141-250-34-95-87-179-153-247-68-71-150-124-238-157-15-6-29-11-19-41 11-29 26-24 41-19 96 36 186 94 261 172 72 74 130 166 167 270 34 95 75 169 128 230 47 54 105 98 177 135-98-207-66-367-122-577-35-129-232-277-193-320 45-51 133 88 248 127 175 59 357 111 540 85-122-138-244-269-366-361-119-90-237-140-352-120-16 3-31 6-37-26-5-31 10-34 26-37 135-24 269 32 401 132 111 84 201 175 311 298-18-47 0-14-30-77-59-123-130-241-220-345-89-102-196-189-324-250-14-7-28-13-15-42 13-28 28-22 42-15 137 65 251 157 345 265 81 93 147 198 203 307-15-81-39-157-68-227-44-106-93-201-188-287-62-56-209-140-208-179-29-15-33-11-63-24-61-26-121-46-164-52-16-2-32-4-28-35 4-32 19-30 35-28 50 6 115 28 182 56 33 14 66 43 98 60 53 4 139 47 208 74 206 78 446 126 666 79-73-33-147-65-223-91-85-29-172-49-264-53-16-1-32-1-31-33s17-31 33-31c98 4 191 26 282 57 89 30 175 69 261 108 59 27 101-7 163-45-123-92-181-230-205-376l-2-2c-102-95-207-190-315-253-104-60-210-91-316-63-15 4-31 8-39-22-8-31 7-35 22-39 125-33 247 1 364 69 94 55 186 132 274 213 0-6-1-11-1-17-15-270-203-480-435-494-78-5-189 21-186-32 4-59 97-44 234-86 385-116 655-296 836-690-54 41-110 83-186 124-86 47-198 91-358 128-82 19-154 48-216 84-64 38-117 84-159 135-10 12-20 25-45 5s-14-32-5-45c47-57 106-108 177-150 67-39 145-70 233-91 155-36 261-78 343-122 51-27 92-55 131-84-148-4-305-3-459-3-143 44-289 96-402 160-110 63-186 136-192 223-1 16-2 32-34 29-32-2-31-18-29-34 8-111 97-200 224-273 69-39 149-74 233-105-35 0-70 0-104-1-116-2-112-66-20-101 90-34 190-141 251-216 271-334 412-714 456-1130-33 72-69 140-115 198-57 73-128 131-222 164-31 160-91 293-180 397-92 108-216 185-369 230-29 8-52-35-29-55 132-109 221-226 278-344 62-131 83-264 72-387-1-16-3-32 29-35 31-3 33 13 34 29 12 134-10 278-78 420-40 85-97 170-172 251 73-39 136-89 187-149 85-100 141-229 170-386 1-8 14-22 22-25 89-27 155-79 209-147 51-65 90-143 126-228-140 69-304 64-457 78-213 19-369 68-554 152z"/> - <path d="M204649 49231c-680-88-1359-113-2041-114-684 0-1369 40-2058 112-20 6-15 33-14 46 2 28 37 35 121 27 643-60 1285-93 1932-93 674 0 1351 21 2038 102 33 9 77-85 22-81z"/> - <path d="M200570 49160c683-71 1362-110 2038-110 675 0 1349 40 2025 127l31-127c-17 9-37 15-58 15-67 0-123-55-123-123s55-123 123-123c51 0 94 31 113 75l60-170c-724-84-1446-122-2171-122-729 0-1459 38-2193 107l58 164c22-32 59-54 101-54 68 0 123 55 123 123s-55 123-123 123c-12 0-25-2-36-6l33 94-2 7zm3067-416c-68 0-123 55-123 123s55 123 123 123 123-55 123-123-55-123-123-123zm0 64c-33 0-59 27-59 59s26 59 59 59c32 0 59-27 59-59s-26-59-59-59zm-1082-91c-67 0-123 55-123 123s55 123 123 123 123-55 123-123-55-123-123-123zm0 64c-32 0-59 26-59 59s26 59 59 59 59-26 59-59c0-32-26-59-59-59zm-1064-40c-68 0-123 55-123 123s55 123 123 123c67 0 123-55 123-123s-55-123-123-123zm0 64c-33 0-59 26-59 59s26 59 59 59c32 0 59-26 59-59 0-32-26-59-59-59z" fill-rule="evenodd"/> - </g> - <path d="M202601 47974c-14-68-49-129-100-175-51-47-116-78-187-88-33-4-39-58-7-68 60-20 114-67 157-133 45-69 79-157 95-256 5-34 64-35 69-1 15 84 51 153 97 208 55 66 125 112 193 138 31 12 25 63-8 68-59 9-105 42-141 87-50 62-81 145-100 221-8 33-62 31-69-2zm33-118c20-52 47-103 81-146 28-34 60-64 99-84-51-30-100-70-143-120-28-34-53-73-73-116-19 59-45 112-75 158-31 47-67 86-108 116 50 19 95 47 134 82 34 31 63 68 85 110zm799 5115l-515 206c-17 7-35 14-48-21-14-34 4-41 21-48l515-206c17-7 35-14 48 21 14 34-4 41-21 48zm59-326l-604 328c-16 9-33 18-51-15s-1-42 15-51l604-328c16-9 33-18 51 15s1 42-15 51zm-1826-65l604 328c16 9 33 18 15 51s-34 24-51 15l-604-328c-16-9-33-18-15-51s34-24 51-15zm51 322l515 206c18 7 35 14 21 48-14 35-31 28-49 21l-515-206c-17-7-34-14-21-48 14-35 31-28 48-21zm224 434c137 33 261 48 358 31 88-16 155-60 191-146v-493c-107-1-212-15-303-41-109-31-170-98-201-178-41-107-27-235-4-329 5-18 9-36 45-27s32 27 27 45c-20 82-33 194 1 284 23 60 69 110 152 133 91 25 198 38 307 38 107 0 214-13 304-40 82-24 148-69 192-123s65-117 57-176c-5-36-24-62-49-80-34-24-82-35-128-37-47-2-94 7-142 16-25 5-50 9-77 13-19 2-37 5-42-32s14-40 32-42c23-3 48-8 73-12 52-10 105-20 159-18 60 2 121 18 168 51 42 29 72 72 80 131 11 80-16 163-73 233-53 65-131 119-229 147-83 24-178 38-274 42v483c3 5 3 11 2 16 37 82 102 125 188 141 97 18 221 2 358-31 18-5 36-9 45 27 8 37-9 41-28 45-146 35-279 51-388 32-92-17-165-58-215-132-49 74-124 115-215 132-109 20-242 4-388-32-18-4-37-8-28-45 8-36 27-32 45-27zm356 210l402-9c19 0 38-1 38 37 1 38-18 38-37 38l-402 9c-19 0-37 1-38-37s18-38 37-38zm593-3082c151-125 293-227 423-297 133-72 254-111 359-106 19 1 37 1 36 39-1 37-20 37-39 36-92-4-200 32-322 97-125 67-263 166-410 289-14 12-29 24-53-5s-9-41 5-53zm-605 56c-141-130-298-240-445-314-139-71-268-108-363-100-19 2-37 4-40-34-4-37 15-39 34-40 110-10 252 31 404 107 152 77 315 191 461 325 14 13 28 25 2 53-25 27-39 15-53 2zm-213 1004c37-83 83-155 136-219 53-63 112-119 174-170 14-12 29-24 52 5 24 29 9 41-5 53-59 48-114 101-164 160-49 59-91 125-125 201-8 17-15 34-49 19s-27-32-19-49zm371-1734c49 66 88 139 114 223 26 82 40 175 39 279 5 80 6 165-7 249-13 86-42 170-97 246-43 60-101 97-165 113-53 13-109 10-164-7 29 100 51 208 6 308-8 18-33 27-51 18-43-22-86-43-128-62s-84-36-127-51l-1-1c-95-37-173-73-236-112-65-39-115-80-150-124l1 2c-44-49-72-106-88-170-14-55-20-114-22-174-72-39-138-78-194-116-64-43-118-87-161-131-13-14-26-27 1-53s40-12 53 1c39 40 89 80 150 121 60 40 128 81 204 121 124 13 247 51 370 109 106 50 211 115 317 192 13 7 19 16 27 20 8 6 16 13 25 19 51 22 104 28 152 16 47-11 90-39 122-84 48-66 72-139 84-214 12-77 11-157 6-234v-2c1-97-12-183-35-258-24-76-58-142-102-201-11-15-22-30 7-52s41-7 52 7zm-375 1047c-104-77-207-141-311-190-105-49-210-83-314-98 2 48 8 93 18 135 13 52 35 99 71 138l1 1c30 37 73 72 130 107 60 36 134 71 225 106l-1-1c45 16 89 34 133 54 31 14 61 28 93 44 19-83-10-179-37-267-2-8-5-15-9-29zm776-1003c-44 59-79 125-102 201-24 76-36 161-35 258v2c-5 77-6 158 6 234 12 75 37 148 84 214 32 45 75 72 122 84 48 12 101 6 152-16 8-6 17-13 25-19 6-4 13-12 27-20 105-77 211-143 317-192 123-58 246-95 370-109 75-40 144-80 204-121s111-81 149-121c13-13 26-27 53-1s14 39 0 53c-43 44-97 88-161 131-57 38-122 77-194 116-2 61-8 119-22 174-16 63-44 121-88 170l1-2c-35 44-85 85-150 124-63 38-141 75-237 112l-1 1c-43 15-85 32-127 51-43 19-85 40-128 62-18 9-43 0-51-18-45-100-23-208 6-308-55 18-111 20-164 7-64-15-122-53-165-113-55-76-84-160-97-246-13-85-12-169-7-249-1-104 13-196 39-279 26-84 65-158 114-223 11-15 22-30 52-7 30 22 19 37 7 52zm940 715c-105 15-209 49-314 98-104 49-207 113-311 190-4 13-6 21-8 29-27 88-56 184-37 267 31-15 62-30 93-44 44-20 87-38 133-54l-1 1c91-35 165-70 225-106 58-34 100-70 131-107l1-1c35-39 57-86 71-138 11-42 16-87 19-135z"/> - <path d="M203459 50602c-119 0-216 97-216 216s97 217 216 217 216-97 216-217c0-119-97-216-216-216zm0 69c-81 0-147 66-147 147s66 147 147 147 147-66 147-147-66-147-147-147zm0 60c-48 0-87 39-87 87s39 87 87 87 87-39 87-87-39-87-87-87zm-1697-124c119 0 217 97 217 216s-97 217-217 217c-119 0-216-97-216-217 0-119 97-216 216-216zm0 69c81 0 147 66 147 147s-66 147-147 147-147-66-147-147 66-147 147-147zm0 60c48 0 87 39 87 87s-39 87-87 87-87-39-87-87 39-87 87-87z" fill-rule="evenodd"/> - </g> - <use height="100%" width="100%" xlink:href="#a" transform="rotate(-2.173 -55532.79 156275.842)"/> - <use height="100%" width="100%" xlink:href="#a" transform="rotate(2.18 459865.852 156275.76)"/> - </g> - <path d="M328.126 101.29l-.063.02-20.493-23.42-26.944 15.442-4.544 54.546a234.548 234.548 0 0 1 38.56 6.455l13.482-53.042z" fill="#171796"/> - <path d="M285.94 104.648c.937-.227 1.86-.275 2.756.274.393.162.69.37.87.635.416-.322.838-.623 1.276-.88.615-.456 1.242-.858 1.918-1.084.966-.49 1.93-.78 2.896-.87 1.023-.175 2.05-.185 3.072-.124.852.05 1.677.285 2.464.738.713.354 1.424.71 2.138 1.065.754.42 1.508.8 2.262 1.118.956.378 2.03.505 3.177.548.56.02 1.113.02 1.654-.124.438-.117.71.162.228.458-3.542 2.173-6.318.24-8.686-.625a17.183 17.183 0 0 1 2.277 1.814c.9.87 1.908 1.75 3.69 2.56 1.08.492 2.256.88 3.766.892a9.454 9.454 0 0 0 1.66-.114c.3-.048.43-.02.434.136.005.107-.023.32-.202.438-.914.612-1.774.774-2.733.835-1.828.116-3.78-.483-5.567-1.442-1.43-.77-2.393-1.705-3.532-2.545-1.135-.838-2.116-1.303-3.17-1.526-1.04-.222-2.167-.197-3.116.096.284.056.524.19.67.36.49.288 1.116.415 2.025.518.472.056.325.382-.404.774-.437.565-1.007.868-1.763.795-1.042.69-1.414.273-1.763-.18a3.124 3.124 0 0 1-.25.838.644.644 0 0 1-.016.455c.167.258.248.51.192.784a.658.658 0 0 0 .233.42c.217.198.356.425.384.704.002.184.103.336.25.473.213.175.428.33.64.59.63.228.92.71 1.025 1.336.474.154.672.5.765.908.27.114.52.25.66.49.972.004 1.92.004 2.81.097.83.09 1.51.61 2.117 1.282.41.063.824.083 1.25-.013.437-.193.9-.34 1.404-.383.832-.07 1.667-.114 2.46.076.54.13.96.415 1.304.804.496.564 1.26.49 1.913.21.885-.377 1.622-.364 2.527.033.387-.15.775-.22 1.162-.18.33-.36.683-.447 1.044-.457.59-.02 1.018.07.906.827-.03.205-.152.402-.306.473-.27.584-.787.756-1.442.7-.07.403-.235.702-.498.894.3.928.012 1.3-.676 1.288-.144.268-.36.435-.726.382a1.474 1.474 0 0 1-.93.55c.04.242.143.355.315.616.467.708-.236.994-.88 1.004.166.47.186.937.128 1.405.655.397.744.814.14 1.227.442.773.27 1.342-.56 1.757-.013.433-.056.868-.344 1.11-.198.168-.48.198-.294.512.337.555.263 1.26-.235 1.28-.106-.01-.202.004-.21.173 0 .06-.05.117-.15.175-.596.32-1.156.688-1.67 1.11-.075.05-.15.087-.227.018-.374.815-1.073 1.642-1.844 2.475-.12.613-.466 1.028-1.04 1.243-.04.19-.162.3-.342.35.322.356.443.7.132 1.04-.382.416-.886.824-1.39.953-1.07.273-1.74.222-2.17-.187-.38-.363-.23-.636.01-.75-.66.053-.794-.296-.776-.762.038-.233.116-.202.35-.195.358.01.682-.184 1.02-.296a2 2 0 0 1 .517-.577c.12-.748.592-1.163 1.235-1.41.518-.196 1.014-.697 1.495-1.345l.89-1.53a1.32 1.32 0 0 1-.27-.812 1.578 1.578 0 0 1-.595-.552c-.465-.032-.658-.242-.726-.533a1.105 1.105 0 0 1-.35-.045c-.227.146-.457.275-.743.263a7.36 7.36 0 0 1-1.163.97c-.14.386-.415.54-.75.588-.957.114-1.53 1.306-2.055 1.79-.213.158-.344.437-.438.77-.046.628-.154 1.12-.5 1.13-.307-.014-.355-.047-.365-.08a1.266 1.266 0 0 0-.404.018c.258.285.3.64.06.955-.237.31-.578.405-.907.428-.682.045-1.233-.016-1.744-.223-.49-.2-.547-.49-.532-.774-.35-.167-.422-.334-.384-.5.048-.21.243-.32.488-.252.213-.1.425-.17.638-.21.617-.665 1.252-1.237 1.95-1.502a3.2 3.2 0 0 1 .726-.656c.08-.597.473-1.067.954-1.505a2.16 2.16 0 0 1 .235-.647c-.026-.13.01-.19.012-.31-.195-.363-.312-.798-.167-1.16a1.402 1.402 0 0 1-.054-.576c-1.147.683-1.5.45-1.633-.104-.42.35-.812.516-1.093.01-.407.12-.817.258-1.224.096-.266.103-.534.196-.84.217a3.26 3.26 0 0 1-.516.736c-.013.516-.193 1.032-.524 1.548a9.79 9.79 0 0 1-.744 1.653c.005.177-.02.355-.114.534.09.635-.124.944-.473 1.1a2.57 2.57 0 0 1-.446.77l-.028.253c.14.374.162.746-.218 1.12-.306.193-.632.395-.956.555-.382.187-.736.098-1.058-.018-.564-.202-.52-.4-.447-.592a.688.688 0 0 1-.557-.008c-.137-.086-.223-.174-.36-.263-.12-.22-.164-.42.132-.577.372-.164.625-.286.92-.587.1-.227.23-.4.41-.445.178-.415.396-.696.692-.772.217-.513.45-1.08.726-1.57.096-.15.167-.304.12-.474-.004-.14.006-.27.123-.35.066-.056.182-.106.035-.185a1.453 1.453 0 0 1 .175-1.232c.298-.45.632-1.538.316-2.072-.06-.297-.117-.64-.08-.92-.108-.005-.19.01-.298-.065-.243-.15-.445-.008-.63.263-.134.34-.268.637-.402.637-.127.876-.557 1.556-1.005 1.73-.103.403-.17.805-.113 1.208.045.437 0 .736-.203.786-.223.055-.43.184-.56.54-.035.1-.076.218-.078.36.308.32.215.716-.08 1.01-.67.657-1.5.56-2.377.303-.635-.25-.79-.516-.726-.787-.902-.076-.722-.766.024-.974.802-.225 1.452-.74 1.986-1.472.048-.87.248-1.463.716-1.556.046-.534.213-1.015.438-1.47.235-.412.38-.865.296-1.417-.498-.31-.52-.632-.06-.96.15-.09.133-.18-.054-.272-.303-.03-.266-.32-.245-.595-.012-.14-.085-.215-.22-.217-.672-.1-.505-.375-.217-.673.12-.137.202-.34.076-.42-.105-.066-.176-.296-.198-.498-.413-.312-.236-.63 0-.937-.233-.197-.342-.485-.375-.822-.766-.033-1.052-.422-.637-.99.174-.24.4-.47.673-.69.177-.286.346-.572.263-.857-.22-.56.483-.982 1.085-1.417a.94.94 0 0 1-.13-.44c-.34-.325-.254-.63.12-.917a1.15 1.15 0 0 1-.138-.446c-.843.167-.838-.336-.446-1.146-.488-.28-.35-.778.534-1.537.013-.174.046-.31.096-.402a2.04 2.04 0 0 0-1.067.325c-.338.22-.672.192-1.008.053a1.597 1.597 0 0 0-.445-.438.664.664 0 0 1-.236-.673c-.99.056-1.18-.678-.586-1.11.332-.264.575-.54.666-.84.268-.68.837-1.144 1.39-1.62 0-.195.044-.39.105-.587-.245-.164-.504-.283-.787-.306-.1-.253-.29-.526-.612-.68-.185-.112-.246-.215-.132-.466-.526-.47-.394-.756-.26-1.027z"/> - <g fill="#f7db17"> - <path d="M303.935 130.196c-.06.005-.12.01-.188.008a9.02 9.02 0 0 1-.845.744c-.245-.284-.61.028-.253.2-.06.043-.122.086-.183.126-.116.31-.222.44-.567.493a1.766 1.766 0 0 0-.16.03 3.152 3.152 0 0 1 .016-.38c.015-.156.04-.305.074-.452.005-.027.012-.053-.04-.065-.054-.013-.062.015-.067.043-.033.15-.06.306-.078.463-.015.14-.02.28-.015.422-.868.278-1.37 1.182-1.96 1.824-.257.22-.386.524-.48.843-.05.17-.068.946-.242.96h-.266c-.093-.143-.22-.146-.38-.01-.36-.01-.746-.012-1.067.04-.22.237.385.148.706.346.148.09.21.264.153.507-.296.706-1.948.478-2.497.187-.256-.134-.266-.29-.256-.51.114 0 .23-.006.347-.024.197-.028.392-.086.584-.195.054-.03.11-.06.05-.17-.06-.108-.117-.078-.17-.047-.162.093-.33.14-.496.164-.172.025-.35.025-.52.018-.014 0-.03-.003-.042 0-.096-.056-.17-.122-.13-.18.042-.055.2.005.23.015.257-.12.48-.194.755-.248.582-.622 1.174-1.206 1.976-1.528.24-.29.5-.517.815-.724.11-.694.448-1.063.95-1.523.062-.286.133-.49.274-.742-.03-.158-.007-.26 0-.42-.192-.365-.306-.682-.154-1.09-.093-.295-.08-.495-.045-.768a.372.372 0 0 0-.003-.154 6.643 6.643 0 0 1 .906-.612c-.023.273-.013.56.04.858l-.002.002c-.086.094-.16.185-.21.28a.566.566 0 0 0-.08.297c0 .028 0 .056.057.053.057 0 .057-.027.054-.055a.46.46 0 0 1 .066-.24 1.26 1.26 0 0 1 .195-.256.112.112 0 0 0 .02-.028c.266-.008.526-.15.787-.36.235-.19.47-.44.703-.7-.002.38-.005.76-.01 1.138a2.5 2.5 0 0 0-.574.752c-.012.025-.025.048.023.073.05.025.064 0 .074-.026.14-.276.316-.504.52-.693h.01c.057 0 .057-.027.057-.055v-.002c.035-.03.073-.06.11-.09.26-.2.553-.35.87-.472-.05.335-.072.66-.014.975.063.344.225.668.554.95.005.006.013.01.02.01z"/> - <path d="M287.41 120.572c.042-.078.15-.18.186-.172l.02-.005c.12-.223.243-.43.372-.617a4.25 4.25 0 0 1 .53-.64c.02-.02.042-.038.08 0 .038.04.017.058 0 .078a4.175 4.175 0 0 0-.52.623 6.214 6.214 0 0 0-.363.606c.038.05.055.13.035.184.038.347.084.542.238.742a.216.216 0 0 1 .053-.036c.064-.154.15-.29.257-.412.13-.147.29-.27.483-.375.13-.11.238-.22.324-.337a1.54 1.54 0 0 0 .202-.35c.01-.024.02-.05.073-.03.05.02.04.05.03.074a1.7 1.7 0 0 1-.215.374 2.134 2.134 0 0 1-.35.358s-.007.005-.01.005c-.18.1-.333.215-.455.352a1.33 1.33 0 0 0-.225.35c.08.057.116.216.04.318-.23.33-.503.526-.073.81a.678.678 0 0 0 .202.546c.1.102.09.464-.154.725-.228.23-.053.17.182.197.018.005.036.013.053.018v-.003a2.72 2.72 0 0 1 .3-.455c.108-.137.227-.266.348-.387.17-.167.304-.35.4-.534.093-.18.15-.363.16-.54.002-.028.002-.056.06-.05.056.002.053.03.05.057-.012.192-.07.39-.172.587a2.25 2.25 0 0 1-.418.56c-.12.118-.233.24-.34.376a2.775 2.775 0 0 0-.285.438c.283.172.192.48.235.764.056.008.104.02.147.04a23.88 23.88 0 0 0 .177-.278l.262-.417c.014-.023.03-.048.075-.018.048.03.033.052.017.075l-.263.417c-.056.09-.112.175-.168.264l-.007.012c.174.142.187.4-.028.597-.423.32-.304.418.09.67.052.373.054.67-.027.987.003.008.003.018.005.028.01.104.018.21.026.314l.026.316c.002.028.005.056-.05.06-.056.006-.06-.022-.06-.05l-.027-.316c-.003-.028-.006-.053-.006-.08-.02.047-.04.098-.066.15-.283.62-.576 1.127-.64 1.822-.68.162-.58.833-.617 1.425-.535.724-1.158 1.304-2.02 1.592-.162.053-.555.15-.593.354-.005.074.264.233.436.14.475-.456.713-.203.167.263-.043.087-.008.186.086.27.493.442 1.715.586 2.272.235.412-.258.627-.542.268-.934.023-.555.24-1.1.827-1.256.068-.127.048-.362.018-.49-.055-.484.02-.914.14-1.38.02-.058.063-.106.16-.13.222-.047.65-.692.784-1.312.033-.134.053-.273.078-.412.035-.215.12-.253.228-.127.103-.14.1-.223.164-.382.228-.33.557-.596.94-.41a3.24 3.24 0 0 1-.186-.887c-.028-.37.008-.75.122-1.1.015-.054.032-.104.116-.09l.33-.788c.113-.263.224-.53.335-.792.01-.025.022-.05.072-.03.05.02.04.048.03.073l-.333.792c-.113.263-.222.523-.333.784.048.035.033.08.018.127-.1.315-.134.664-.11 1.005.026.37.117.727.254 1.018.012.027.027.055.022.083.182.106.18.132.172.374-.005.19.02.377.066.605.36.668-.015 1.786-.367 2.345-.17.27-.215.58-.144.89.216.21.075.43-.118.575-.015.05 0 .11.003.16.02.217-.058.4-.172.58-.296.533-.524 1.102-.762 1.66-.43.12-.517.37-.69.773-.25.07-.275.144-.382.374a2.89 2.89 0 0 1-.933.633c-.306.14-.01.273.205.42.195.144.45-.17.61-.408.174-.263.35-.184.237.02-.126.226-.217.55-.23.72-.066.18.628.32.747.326.422.02.953-.393 1.285-.603.275-.28.232-.526.11-.867l.003-.023a2.103 2.103 0 0 1-.51-.05 3.664 3.664 0 0 1-.596-.198c-.025-.01-.05-.02-.03-.073.02-.052.048-.042.073-.032.197.08.387.15.58.19.16.035.323.053.498.048l.028-.266c.22-.27.372-.536.49-.86.468-.22.47-.448.408-.95a.947.947 0 0 0 .12-.55c.307-.55.56-1.11.77-1.705.37-.49.547-.954.504-1.54.033-.226.116-.355.283-.348.123-.17.23-.344.33-.54.02.004.04.007.06.007a.09.09 0 0 1 0-.04 1.8 1.8 0 0 1 .112-.353.852.852 0 0 1 .152-.24.98.98 0 0 0 .076-.485 1.178 1.178 0 0 0-.165-.473.525.525 0 0 1-.124-.197c-.02-.08-.006-.157.072-.235.02-.02.04-.038.08 0 .037.04.02.06 0 .078-.047.043-.054.083-.042.124.015.05.056.104.104.16l.005.01c.098.17.163.343.18.523.02.18-.006.364-.087.55 0 .002-.01.014-.01.017a.77.77 0 0 0-.14.215c-.04.094-.076.202-.103.33-.003.006-.003.014-.005.02.26 0 .49-.082.74-.206l.016-.014c.127-.1.262-.256.373-.458.093-.17.17-.377.212-.615.005-.028.01-.053.066-.045.054.01.05.038.047.063a2.158 2.158 0 0 1-.225.65c-.086.16-.188.29-.29.39.406.122.758.003 1.142-.116-.055-.54-.048-.953.01-1.277.064-.352.182-.6.332-.787.017-.023.033-.043.078-.01.043.035.028.055.01.078-.14.175-.25.408-.308.74-.056.308-.066.702-.013 1.223.005 0 .013 0 .02-.004.162.276.248.476.58.26.12-.08.248-.16.35-.267.037-.042.024-.064.054-.097.317-.337.635-.65.952-.93.317-.28.636-.52.955-.715.023-.015.048-.03.076.018.03.048.006.06-.017.076-.314.19-.627.43-.94.703-.272.238-.542.5-.813.784.015.048.023.13.03.257.028.375.096.6.63.395.3-.114.33-.126.605-.29.134-.082.248-.15.326-.168.176-.136.348-.265.522-.382.17-.114.342-.217.51-.308.03-.203.075-.4.14-.59.165-.486.44-.936.787-1.36.002-.004.015-.014.017-.016a2.61 2.61 0 0 0 .71-.552c.19-.21.333-.445.44-.7.01-.026.02-.05.072-.03.05.02.04.047.03.072a2.64 2.64 0 0 1-.456.732c-.195.217-.435.41-.734.57-.336.416-.604.85-.76 1.32-.057.164-.1.33-.125.505.01.003.02.013.03.033.026.05 0 .064-.022.074a.072.072 0 0 0-.023.012c-.033.274-.026.562.025.86.235-.007.473-.14.714-.333.254-.207.515-.493.773-.784.002-.007.002-.012.01-.017.063-.21.144-.39.25-.538a1.02 1.02 0 0 1 .425-.35c.026-.01.05-.022.074.03.02.052-.003.062-.03.075a.92.92 0 0 0-.38.31c-.1.143-.18.32-.24.522-.003.394-.008.79-.01 1.183.012-.01.027-.02.04-.033a3.61 3.61 0 0 1 .987-.523c.036-.016.08.02.072.06-.056.355-.086.706-.028 1.03.056.304.192.587.466.84a2.968 2.968 0 0 1 .498-.658 4.33 4.33 0 0 1 .334-.304c.082-.074.163-.15.24-.226.083-.073.164-.15.245-.225.02-.02.04-.038.08.003.037.04.016.06-.004.078-.08.076-.16.15-.242.225l-.243.227-.002.002a3.322 3.322 0 0 0-.3.267l.014.31c.002.055.002.11.005.166.233.063.372.066.61.06.078.47.12.542.526.552a3.464 3.464 0 0 1 .015-.488 2.1 2.1 0 0 1 .122-.526c.01-.025.02-.05.07-.032.054.02.043.045.033.07-.06.158-.096.324-.116.5a3.31 3.31 0 0 0-.015.477h.033c.162.334.354.5.698.648a1.84 1.84 0 0 0 .212-.455c.05-.17.07-.34.06-.51 0-.027 0-.055.052-.057.055-.002.058.024.06.05a1.51 1.51 0 0 1-.065.548 2.024 2.024 0 0 1-.266.54c-.01.016-.02.032-.037.032.015.194.048.34.116.485.05-.108.103-.217.164-.318a1.83 1.83 0 0 1 .296-.395c.02-.02.038-.038.078 0 .038.038.02.058 0 .078a1.851 1.851 0 0 0-.278.372 4.66 4.66 0 0 0-.195.387c.038.065.086.13.142.207-.648 1.11-1.34 2.65-2.62 3.155-.66.26-.947.597-1.08 1.303a2.27 2.27 0 0 0-.586.655c-.43.144-.814.36-1.28.34 0 .3.1.432.4.434.575-.288.704-.34.755-.3.07.06-.08.472-.557.806-.073.046-.07.074-.028.15.402.63 1.457.404 2.024.255.405-.106 1.136-.587 1.34-.992.077-.187-.1-.427-.277-.625-.81.124-.655-.652.04-.33.236-.07.266-.072.332-.333.62-.24.877-.5 1.018-1.166.625-.674 1.253-1.367 1.703-2.174.125-.152.198-.42.163-.56.11-.13.172-.298.212-.45.04-.162.066-.32.06-.483 0-.028 0-.056.054-.058.055-.003.055.025.057.053a1.88 1.88 0 0 1-.063.514 4.12 4.12 0 0 1-.13.394c.042.102.062.17.15.145.542-.435 1.088-.74 1.673-1.103.04-.247.2-.37.445-.38.1.003.134-.027.17-.118.136-.343-.036-.578-.2-.86-.152-.424.12-.525.39-.727.283-.21.262-.767.273-1.088h.002c-.01-.053-.02-.11-.033-.165a2.8 2.8 0 0 0-.096-.34c-.01-.026-.018-.054.033-.072.054-.018.062.008.072.035.043.124.076.24.1.355l.03.134c.27-.14.553-.3.66-.602.093-.334-.09-.65-.25-.934a10.213 10.213 0 0 1-.635.273c-.027.01-.052.02-.072-.03-.02-.052.005-.064.03-.072a10.91 10.91 0 0 0 .734-.324c.12-.08.244-.167.333-.28.195-.28-.33-.534-.51-.648v-.023c-.262-.24-.522-.483-.786-.724-.02-.018-.04-.04-.002-.08s.058-.022.078-.002l.73.668c.04-.412.045-.807-.084-1.217-.042-.132-.09-.26-.136-.39a1.192 1.192 0 0 1-.51-.425 1.107 1.107 0 0 1-.17-.53c-.003-.027-.003-.055.053-.06.056-.002.056.026.06.053a.976.976 0 0 0 .15.476c.094.144.235.27.44.374.22.114.683.056.95-.073.373-.21-.112-.635-.226-.885-.08-.18-.1-.365-.136-.557.033-.005.066-.013.1-.018a1.066 1.066 0 0 0-.148-.157.643.643 0 0 0-.2-.12c-.025-.01-.053-.02-.033-.072.018-.053.046-.043.07-.033a.76.76 0 0 1 .236.142c.07.06.136.134.2.22a1.64 1.64 0 0 0 .108-.02c.367-.074.57-.28.792-.542a3.84 3.84 0 0 0-.4-.412c-.15-.133-.3-.26-.455-.384-.02-.017-.043-.035-.008-.078.036-.043.056-.025.08-.008.156.127.312.256.46.39.148.137.29.28.42.438.012.015.024.03.014.05.338.03.393-.038.563-.34a1.634 1.634 0 0 0-.202-.436 2.67 2.67 0 0 0-.336-.413c-.02-.02-.038-.04 0-.08.04-.037.06-.017.08 0 .13.137.252.282.348.43.096.148.17.3.215.464.157.002.326.01.46-.07.294-.176.046-.803-.03-1.046.005-.002.007-.005.012-.01a2.948 2.948 0 0 0-.117-.073c-.068-.043-.14-.086-.207-.132-.023-.015-.046-.03-.018-.076.03-.048.053-.033.076-.018l.207.13.153.097.068-.053c.216-.172.292-.4.358-.638.1-.364.122-.202.547-.265.458-.07.705-.12.976-.657.143-.07.216-.132.242-.306.045-.316.02-.478-.342-.506-.506-.04-.815.062-1.156.396.045.068.09.14.136.207.016.023.03.046-.015.078s-.06.01-.076-.014c-.044-.066-.087-.13-.13-.197-.46-.047-.83.027-1.26.19a2.095 2.095 0 0 0-.13-.054c.092.12.163.237.216.35.074.163.112.317.117.464 0 .028.002.056-.053.058-.056.003-.056-.025-.06-.053a1.106 1.106 0 0 0-.105-.422 1.966 1.966 0 0 0-.32-.473v-.003a2.797 2.797 0 0 0-1.026-.187c.055.056.113.11.17.164l.216.213c.02.02.04.038 0 .078-.038.04-.058.02-.078 0a8.744 8.744 0 0 1-.218-.212 14.575 14.575 0 0 1-.237-.236 2.99 2.99 0 0 0-.91.236 3.055 3.055 0 0 1-.62.19c.153.146.282.31.383.498.107.193.188.406.24.64.006.03.013.054-.04.067-.053.012-.06-.015-.066-.04-.05-.226-.13-.43-.23-.613a2.02 2.02 0 0 0-.377-.486c-.015-.012-.028-.028-.023-.048a1.9 1.9 0 0 1-.56.003l.224.372c.013.025.023.05-.025.073-.052.023-.065 0-.075-.025l-.207-.435a1.544 1.544 0 0 1-.506-.2c.053.2.093.415.124.642.04.3.066.623.073.962 0 .028.002.055-.054.055s-.056-.027-.056-.053a8.38 8.38 0 0 0-.07-.948 5.017 5.017 0 0 0-.16-.76 1.774 1.774 0 0 1-.228-.212 2.242 2.242 0 0 0-.607-.473 1.013 1.013 0 0 1-.223.777c-.017.023-.032.044-.078.01-.043-.035-.028-.055-.01-.078a.903.903 0 0 0 .187-.77 3.34 3.34 0 0 0-1.122-.27c.106.14.207.278.3.422.105.167.2.336.287.51a.87.87 0 0 1 .288.456c.046.17.056.352.064.537 0 .028.002.055-.054.058-.055.003-.055-.025-.058-.053a2.227 2.227 0 0 0-.058-.51.763.763 0 0 0-.258-.41.095.095 0 0 1-.016-.016 6.335 6.335 0 0 0-.286-.51 4.922 4.922 0 0 0-.352-.485l-.005-.006a5.335 5.335 0 0 0-.4-.007c.022.03.045.06.065.093.048.08.08.165.09.264.003.027.006.055-.05.06-.055.005-.058-.022-.06-.05a.532.532 0 0 0-.076-.218.72.72 0 0 0-.12-.147c-.28.007-.554.03-.82.052.278.357.5.727.673 1.106.192.423.32.858.395 1.308.005.028.01.056-.046.063-.053.01-.058-.018-.063-.046a5.15 5.15 0 0 0-.388-1.28 5.467 5.467 0 0 0-.706-1.14h-.04a3.67 3.67 0 0 0-.64.125 2.094 2.094 0 0 1 .485.409c.016.022.034.042-.01.077-.042.036-.06.016-.077-.007a1.68 1.68 0 0 0-.223-.223 2.565 2.565 0 0 0-.32-.217 5.1 5.1 0 0 0-.328.118c-.06.023-.12.046-.18.064.188.134.367.28.54.445.207.2.402.425.576.686.016.022.03.045-.015.076-.045.03-.06.006-.078-.017a4.052 4.052 0 0 0-.56-.668 4.983 4.983 0 0 0-.602-.488 2.74 2.74 0 0 1-.688.056c.142.28.266.564.36.85.1.31.172.62.194.936.002.027.004.055-.05.06-.057.005-.06-.023-.062-.05a3.77 3.77 0 0 0-.19-.912c-.1-.3-.232-.597-.382-.89-.14-.01-.28-.028-.422-.046.08.258.152.524.212.795.07.318.13.645.172.976.003.028.005.056-.048.063-.055.008-.058-.02-.063-.048-.04-.328-.1-.652-.17-.966a9.906 9.906 0 0 0-.235-.865c-.4-.433-.842-.855-1.384-1.08a1.82 1.82 0 0 1 .4 1.2c0 .025-.002.053-.055.05-.055 0-.055-.03-.053-.055a1.744 1.744 0 0 0-.13-.713 1.79 1.79 0 0 0-.374-.562 2.085 2.085 0 0 0-.382-.076 16.68 16.68 0 0 0-1.068-.07c.273.247.488.475.468.75-.002.028-.005.056-.06.05-.056-.004-.054-.032-.05-.06.017-.255-.236-.485-.533-.748-.21-.008-.426-.01-.64-.013.118.12.22.24.3.358.11.162.19.324.228.485v.008c.022.252.083.472.194.654.11.18.266.32.48.417.026.014.052.024.03.075-.024.05-.05.04-.074.027a1.168 1.168 0 0 1-.53-.46 1.606 1.606 0 0 1-.21-.693 1.34 1.34 0 0 0-.21-.447c-.095-.14-.22-.28-.366-.422l-.71-.002c.098.28.166.57.214.863.056.36.08.727.09 1.1 0 .027 0 .055-.057.055s-.057-.028-.057-.053a7.625 7.625 0 0 0-.086-1.083 4.91 4.91 0 0 0-.222-.882h-.066a1.07 1.07 0 0 0-.522-.468c-.003.026-.005.05-.013.074a.644.644 0 0 1-.1.227c-.016.024-.034.047-.08.017-.045-.03-.03-.054-.015-.076a.528.528 0 0 0 .096-.288l-.113-.048c-.114-.475-.22-.673-.6-.835-.003.13-.01.268-.035.407-.03.172-.086.346-.19.513-.015.023-.03.048-.076.018-.048-.03-.033-.053-.018-.076a1.3 1.3 0 0 0 .175-.473 2.51 2.51 0 0 0 .032-.434l-.066-.022c-.1-.666-.223-1.038-.913-1.3a1.9 1.9 0 0 1 .005.262c-.008.15-.036.3-.097.458-.01.025-.02.053-.07.033-.05-.02-.04-.045-.032-.07.055-.145.08-.287.088-.426a2.03 2.03 0 0 0-.02-.39c-.147-.168-.357-.327-.536-.504a2.53 2.53 0 0 1-.096.733c-.084.295-.22.594-.413.89-.014.023-.03.048-.075.018-.048-.03-.033-.054-.017-.076a3.27 3.27 0 0 0 .4-.86c.078-.274.106-.55.085-.825a1.11 1.11 0 0 1-.19-.28l-.015.037-.08.182c-.013.025-.023.05-.074.03-.05-.022-.04-.048-.03-.073.028-.06.053-.122.08-.182l.064-.146c-.005-.03-.01-.06-.013-.094-.023-.212-.136-.377-.29-.516l-.003-.002a1.582 1.582 0 0 1-.268.51c-.018.02-.033.04-.08.008-.042-.035-.024-.055-.01-.078.077-.096.135-.192.18-.286.04-.08.066-.162.087-.245-.07-.083-.12-.17-.16-.262a.85.85 0 0 1-.108.182c-.053.07-.12.14-.207.21-.02.017-.043.035-.078-.008-.036-.043-.013-.06.007-.078.08-.064.14-.127.187-.19a.693.693 0 0 0 .105-.187c.036-.1.048-.036.015-.195.06-.314-.058-.5-.225-.762a.076.076 0 0 1 .01-.02.952.952 0 0 0-.336.09c-.15.064-.315.163-.487.282-.023.015-.046.03-.076-.015-.033-.046-.01-.06.015-.076.18-.12.35-.222.504-.29a.96.96 0 0 1 .425-.1.394.394 0 0 0 .013-.242c-.506.188-.905.276-1.227.296a1.75 1.75 0 0 1-.81-.123c-.024-.012-.05-.022-.027-.073.02-.05.047-.04.072-.03.2.086.44.136.76.116.316-.02.705-.106 1.206-.293-.002-.005-.002-.01-.005-.015.09-.203.165-.4.215-.598a1.82 1.82 0 0 1-.534.04h-.035c-.03 0-.057-.002-.057-.055 0-.055.03-.055.056-.055h.034c.188.002.375.007.56-.054.012-.065.022-.13.032-.197.028-.22.286-.273.468-.076.152.162.29.334.44.405.304.144.646.015.89-.182l-.224-.074c-.028-.008-.053-.018-.035-.07.017-.052.043-.044.068-.034.096.03.192.06.288.093a.874.874 0 0 0 .067-.07c.628.054 1.035-.077 1.437-.482a7.394 7.394 0 0 1-.95-.033c-.305-.035-.555-.096-.74-.187-.025-.013-.05-.026-.025-.074.024-.05.05-.038.072-.025.172.085.413.143.704.176a7.45 7.45 0 0 0 1.042.03h.005l.11-.13c.17-.07.343-.148.47-.29-.732-.078-1.428-.222-2.083-.564-.17-.19-.438-.296-.723-.37-.532-.065-1.002.067-1.435.292-.114-.106-.202-.202-.314-.306-.167-.02-.324-.11-.49-.13-.223-.025-.456.018-.68-.007-.026 0-.054-.004-.047-.06.006-.055.034-.053.062-.048.223.026.455-.017.678.008.215.025.42.12.635.144.72-.27 1.313-.42 1.827-.397a6.064 6.064 0 0 1 1.844-.233l-.023-.02c-.073-.073-.038-.11 0-.147.337-.34.415-.655.307-.938-.112-.295-.415-.57-.838-.824-.45.05-.883-.07-1.36-.017-.3.032-.593.097-.88.193.24.086.45.228.62.43.213.25.365.593.446 1.023.01.05.018.103-.083.12-.1.02-.112-.032-.122-.082-.073-.393-.21-.7-.4-.926-.2-.286-.657-.398-.8-.456-.48.048-.95.1-1.36.208-.31.078-.58.187-.787.35.31-.067.63-.054.908.085.266.13.49.38.633.782.018.048.033.098-.066.13-.098.034-.115-.014-.13-.065-.12-.346-.307-.554-.527-.662-.437-.218-1.34-.028-1.723.255a4.515 4.515 0 0 0-.665.633c-.04.048-.084.093-.177.012-.094-.083-.053-.13-.01-.174.23-.26.463-.49.703-.668.234-.172.474-.296.722-.354.253-.28.628-.45 1.06-.562.423-.11.906-.165 1.397-.213-.145-.292-.33-.466-.543-.56-.227-.1-.488-.116-.77-.088-.59.202-1.115.518-1.618.875.045 0 .09 0 .133.003.15.01.283-.013.407.035.048.018.1.035.064.134-.043.118-.37.045-.484.037-.13-.008-.27.003-.427.04-.023.006-.048.013-.07.006-.616.38-1.056.764-1.567 1.196l-.086.03c-.455-.018-.77.045-.956.187-.17.13-.183.33-.15.605-.078.255-.177.536-.202.834-.534.458-1.128.916-1.404 1.584-.06.195-.165.367-.294.52.11.02.198.052.266.105a.42.42 0 0 1 .068.066 2.46 2.46 0 0 1 .058-.336c.038-.156.094-.3.167-.417.016-.023.03-.046.076-.015.047.03.032.053.017.076-.068.103-.12.238-.154.384a2.65 2.65 0 0 0-.07.544c-.004.056-.105.06-.112.005a.306.306 0 0 0-.118-.214.556.556 0 0 0-.29-.09 3.357 3.357 0 0 1-.37.338c-.107.086-.208.18-.23.32-.016.242.282.285.566.303.645.037.13.404.486.726.172.12.33.258.452.427.246.09.398.07.565-.007.034-.438-.004-.66.188-.66h.02a.82.82 0 0 1 .192-.413c.018-.02.036-.043.08-.008.042.036.024.056.006.08a.862.862 0 0 0-.13.216.8.8 0 0 0-.044.182c.033.066.025.195.023.426.366-.18.7-.226 1.075-.243.7-.82 1-.613.384-.016-.035.07-.068.13-.098.188a1.502 1.502 0 0 0-.198.642c-.18.157-1.06.88-.73 1.15.23-.034.374-.024.285.148-.11.23-.438.71-.33.972.042.096.183.086.323.053l.03-.028a6.37 6.37 0 0 0 .7-.653c.226-.246.436-.527.605-.848.024-.046.047-.09.113-.074a9.68 9.68 0 0 1 .24-.756c.094-.26.2-.524.314-.787a.056.056 0 0 1 .096-.01c.096.14.19.24.283.306a.42.42 0 0 0 .248.09c.08 0 .165-.028.248-.084.09-.063.182-.16.276-.29.015-.024.033-.046.078-.013.046.032.03.053.013.078a1.24 1.24 0 0 1-.305.317.522.522 0 0 1-.31.104.538.538 0 0 1-.312-.11 1.21 1.21 0 0 1-.253-.256c-.1.23-.19.46-.273.69a10.02 10.02 0 0 0-.246.77c.06.048.034.093.01.14a4.416 4.416 0 0 1-.64.897c-.193.214-.398.4-.598.57.028.188.076.365.162.547.382-.33.738-.663 1.052-1.007a6.38 6.38 0 0 0 .802-1.075c.015-.023.028-.048.076-.02.048.027.033.053.02.075a6.05 6.05 0 0 1-.374.565c.025.038.005.053-.015.07-.04.033-.064.165-.074.334-.014.23 0 .515.027.72.002.028.007.056-.048.064-.057.007-.06-.02-.065-.048a4.468 4.468 0 0 1-.028-.742c.003-.06.01-.116.018-.167-.083.1-.17.198-.258.296-.32.352-.683.69-1.073 1.025-.002.003-.007.005-.01.008.01.02.023.04.036.06-.34.246-.615.332-.236.66.127-.09.253-.182.38-.273l.405-.29c.02-.016.044-.033.077.012.033.046.01.06-.013.08l-.407.29c-.13.093-.26.187-.392.28a.665.665 0 0 0 .096.387.564.564 0 0 1 .085-.007c.283-.205.566-.413.85-.618.022-.017.045-.032.078.013.033.046.01.06-.012.08l-.824.598a.762.762 0 0 1-.1.127c-.277.2-1.25.8-1.145 1.214v.002c.234-.066.466-.147.69-.26.23-.12.455-.28.667-.497.02-.02.038-.038.078 0 .038.038.02.058 0 .08a2.73 2.73 0 0 1-.693.512v.01c-.002.038-.002.076-.005.114-.002.04-.002.077-.005.115-.002.028-.002.056-.058.053-.056-.002-.053-.03-.053-.058l.006-.114c.002-.02.002-.043.002-.063-.197.09-.397.16-.6.215.084.392-.12.728-.33 1.065-.12.096-1.09.883-.686 1.118.11.054.23.08.35.092z"/> - <path d="M287.85 106.887c-.204-.12-.464-.27-.717-.32a1.54 1.54 0 0 0-.54-.6c-.186-.122-.186-.112-.115-.246.212-.022.3-.08.303-.138.112.002.21.018.29.046.093.032.164.08.215.15.017.022.033.044.078.01.046-.034.028-.057.01-.08a.58.58 0 0 0-.268-.187 1.092 1.092 0 0 0-.395-.05c-.012 0-.022 0-.033.006a.793.793 0 0 0-.354-.058c-.144-.137-.265-.296-.207-.494.007.008.02.01.033.013.112.033.22.066.31.11a.603.603 0 0 1 .212.14c.018.02.038.04.08.003.04-.038.022-.058.004-.08a.794.794 0 0 0-.248-.168 1.903 1.903 0 0 0-.24-.09c.834-.168 1.58-.156 2.327.287.392.16.577.348.79.637l-.213.18c-.488-.013-.848.055-1.073.227-.203.152-.244.425-.25.698z"/> - </g> - <path d="M304.446 129.99c-.165.103-.3.173-.468.2a.077.077 0 0 0 .02-.02c.11-.204.235-.384.377-.545l.055-.064.008.204.008.23zm2.092 4.48c-.11.166-.248.318-.402.457a4.26 4.26 0 0 1-.51.388c-.022.015-.047.03-.077-.016-.032-.046-.01-.06.014-.077.177-.116.344-.242.496-.377.15-.134.28-.278.384-.437.015-.024.03-.047.08-.016.044.03.03.053.014.076zm1.384-1.65l-.21.32c-.015.024-.03.047-.08.016-.044-.03-.03-.053-.014-.075l.21-.32c.015-.024.03-.046.08-.016.044.03.03.053.014.078zm-.754-.106c-.036.16-.094.31-.195.45-.1.14-.25.263-.465.362-.026.012-.05.023-.074-.028-.023-.05.003-.063.028-.073.197-.09.33-.203.423-.327.093-.124.144-.263.177-.41.005-.027.012-.053.065-.04.054.013.048.038.04.066zm1.356-1.654a.998.998 0 0 0-.147.19c-.04.07-.078.146-.106.232-.01.025-.017.053-.07.035-.053-.018-.045-.046-.035-.07a1.213 1.213 0 0 1 .278-.464c.02-.02.038-.038.078 0s.022.058 0 .08zm1.108.108c-.048.157-.094.316-.152.473-.058.163-.13.322-.22.482-.015.022-.028.048-.076.02s-.035-.053-.02-.076c.09-.154.154-.31.213-.46.055-.155.1-.312.15-.47.006-.026.014-.052.067-.036.053.015.046.04.038.068zm-.502-6.485c.343.506.42 1.028.43 1.55.04-.188.082-.38.135-.57 0-.003.008-.018.008-.018.144-.203.235-.405.28-.605.046-.2.046-.402.01-.602-.004-.028-.01-.053.046-.063.053-.01.06.018.065.045.038.215.038.433-.01.648a1.792 1.792 0 0 1-.29.638 14.13 14.13 0 0 0-.23 1.06l-.01.065c-.01.055-.113.047-.113-.01 0-.04 0-.077.003-.118.008-.66.015-1.323-.412-1.95-.016-.023-.033-.046.015-.08.045-.03.063-.006.078.017zm-.844 1.087c-.005.042-.007.085-.013.125-.002.043-.007.086-.01.13-.002.027-.005.055-.06.05-.056-.005-.053-.033-.05-.06.002-.044.007-.087.01-.127.002-.043.007-.086.012-.13.002-.027.005-.055.06-.05.056.005.054.033.05.06zm-.236 1.47c.087.282.153.568.2.86.034.2.054.404.064.61a1.05 1.05 0 0 1 .076-.108 1.26 1.26 0 0 1 .357-.296c.022-.015.048-.027.076.02.027.05.005.064-.02.077a1.118 1.118 0 0 0-.325.27.75.75 0 0 0-.156.344c-.01.056-.112.046-.112-.01.003-.303-.023-.6-.068-.888a6.302 6.302 0 0 0-.195-.846c-.007-.028-.018-.053.036-.068.053-.015.06.01.068.035zm1.175.528a3.804 3.804 0 0 1 .068 1.27c-.002.027-.008.055-.063.048-.056-.008-.05-.036-.048-.064.023-.19.03-.387.02-.594a3.846 3.846 0 0 0-.086-.638c-.005-.028-.013-.053.043-.065.052-.013.06.015.065.043zm1.007-.188c.038.208.058.41.048.605-.01.197-.048.385-.13.567a1.27 1.27 0 0 0-.037.622c.035.213.116.425.212.64.013.025.023.05-.028.074-.05.022-.063-.003-.073-.028a2.71 2.71 0 0 1-.223-.666 1.385 1.385 0 0 1 .044-.68l.003-.005a1.45 1.45 0 0 0 .12-.53 2.32 2.32 0 0 0-.05-.58c-.004-.027-.01-.053.046-.063.056-.01.06.018.066.046zm.485-1.67c-.025.104-.05.21-.078.317-.026.103-.052.21-.08.316-.004.028-.012.053-.065.04-.053-.012-.048-.04-.04-.068.025-.104.05-.21.078-.316.025-.105.05-.21.078-.317.01-.028.014-.053.07-.04.053.012.048.04.04.068zm-.497-2.772c.03.096.057.192.088.288.007.028.015.053-.038.068-.053.018-.06-.01-.07-.035l-.087-.29c-.01-.027-.018-.053.035-.068.053-.015.06.01.07.036zm.255-2.108c.002.132.002.263-.008.827a.826.826 0 0 0-.25.408 1.46 1.46 0 0 0-.008.625c.004.028.01.055-.047.065-.055.01-.06-.017-.065-.045a1.52 1.52 0 0 1 .01-.673.92.92 0 0 1 .283-.46l-.022-.352c-.002-.132-.002-.263-.005-.392 0-.028 0-.056.056-.056.055 0 .055.028.055.056zm-2.093-.734c.324.213.602.448.795.727.195.28.306.602.293.98a.057.057 0 0 1-.078.05c-.182-.08-.367-.158-.55-.236.122.787.092 1.414-.08 1.895a1.71 1.71 0 0 1-1 1.052.055.055 0 0 1-.073-.068c.093-.298.148-.597.17-.896.024-.298.01-.597-.04-.893-.004-.027-.01-.055.046-.063.056-.01.06.018.063.046.05.306.065.614.04.92a4.1 4.1 0 0 1-.142.805c.392-.192.67-.5.828-.938.172-.484.197-1.126.06-1.94-.007-.044.038-.08.076-.062l.564.243a1.468 1.468 0 0 0-.273-.832c-.185-.266-.45-.49-.764-.696-.024-.015-.047-.03-.016-.078.03-.046.053-.03.076-.016zm5.478-1.076l-.046.107-.043.11c-.01.025-.02.05-.07.03-.05-.02-.04-.046-.03-.07.015-.037.03-.075.046-.11.015-.035.027-.073.043-.11.01-.024.02-.05.07-.03.05.02.04.046.03.072zm-1.288-.03a.78.78 0 0 1 .263.173c.07.068.124.15.17.238.012.026.025.05-.023.074-.05.025-.063 0-.074-.023a.832.832 0 0 0-.15-.21.632.632 0 0 0-.227-.145c-.024-.01-.05-.02-.03-.07.02-.052.047-.042.072-.032zm-1.912.55c.138.154.23.334.278.54.048.2.055.42.03.66-.003.027-.005.055-.06.05-.056-.005-.054-.033-.05-.06a1.872 1.872 0 0 0-.027-.626 1.103 1.103 0 0 0-.252-.488c-.017-.02-.038-.04.005-.08.04-.037.06-.014.08.006zm-6.465.622l-.023.218a6.966 6.966 0 0 0-.02.217c-.002.028-.005.056-.06.05-.056-.004-.054-.032-.05-.06.01-.073.017-.146.022-.217l.022-.218c.003-.028.005-.056.06-.05.057.005.054.032.052.06zm1.199-.632c.03.103.06.207.094.31l.028.095c.007.027.015.053-.038.068-.053.015-.06-.01-.068-.038l-.028-.094a14.53 14.53 0 0 0-.094-.31c-.007-.025-.015-.053.038-.068.053-.015.06.01.068.038zm2.46 1.652c.012.045.02.09.022.134a.999.999 0 0 1 0 .134c-.002.028-.005.056-.06.05-.056-.004-.054-.032-.05-.06a.893.893 0 0 0 0-.117.59.59 0 0 0-.02-.116c-.01-.028-.016-.053.037-.068.053-.016.06.01.068.04zm.846-1.872a.36.36 0 0 1 .102.167.25.25 0 0 1-.025.18c-.013.025-.028.05-.076.022-.047-.026-.034-.052-.022-.077a.15.15 0 0 0 .015-.104.267.267 0 0 0-.07-.117c-.02-.02-.038-.038 0-.078.038-.038.058-.02.078 0zm-5.87.296c0 .13.022.258.065.374.043.12.11.23.207.334.13.147.195.29.23.438.036.144.038.286.046.425 0 .028.002.055-.053.058-.056.002-.056-.025-.058-.053a2.18 2.18 0 0 0-.04-.405.92.92 0 0 0-.206-.392 1.126 1.126 0 0 1-.23-.37 1.202 1.202 0 0 1-.07-.414c0-.027 0-.055.056-.055.055 0 .055.028.055.056zm2.377 1.599c.132.245.205.485.233.728.03.24.015.486-.028.742-.048.296.015.584.177.855.148.253.384.493.687.716a3.052 3.052 0 0 1-.136-.96 1.79 1.79 0 0 1 .383-1.047 1.5 1.5 0 0 0 .232-.438c.054-.15.08-.3.102-.448.002-.028.007-.056.06-.048.056.005.05.033.048.06-.02.157-.05.314-.103.47a1.624 1.624 0 0 1-.25.47c-.24.313-.345.642-.36.983-.015.346.06.705.177 1.075.014.048-.044.088-.084.063-.382-.258-.673-.542-.853-.843a1.34 1.34 0 0 1-.19-.928c.04-.246.053-.48.026-.71a1.93 1.93 0 0 0-.222-.69c-.012-.022-.027-.047.023-.073.05-.027.064-.002.077.023zm-.954 1.459c0 .264-.073.527-.205.79-.103.207-.24.412-.402.617a3.22 3.22 0 0 0 .253-.105 2.36 2.36 0 0 0 .745-.53c.104-.108.208-.232.314-.378.014-.023.032-.046.078-.013.045.033.027.056.012.078a3.83 3.83 0 0 1-.324.39 2.65 2.65 0 0 1-.288.258 26.134 26.134 0 0 1 .073.364c.005.028.013.053-.043.066-.053.013-.06-.015-.065-.043-.018-.078-.028-.137-.04-.195-.008-.04-.016-.08-.026-.12a2.523 2.523 0 0 1-.395.224c-.152.07-.3.124-.45.18-.048.017-.094-.048-.06-.09a3.89 3.89 0 0 0 .515-.753c.124-.248.195-.493.195-.74 0-.026 0-.054.056-.054.055 0 .055.027.055.054zm-1.161-.094v.25c0 .03 0 .057-.056.057-.055 0-.055-.028-.055-.056v-.25c0-.027 0-.055.056-.055s.056.028.056.056z"/> - <path d="M302.363 121.35c.152.37.193.717.135 1.04-.056.325-.21.626-.44.91l-.008.007c-.22.19-.385.418-.506.673a2.79 2.79 0 0 0-.195.552c.06-.084.12-.162.194-.236.144-.146.316-.26.544-.323.232-.13.453-.27.657-.43.208-.162.4-.34.577-.54.018-.02.038-.04.08-.005.04.036.02.056.004.08-.182.204-.38.386-.592.55a5.12 5.12 0 0 1-.678.443l-.013.006a1.095 1.095 0 0 0-.5.296c-.135.134-.24.3-.345.473-.028.046-.11.016-.1-.038.055-.313.138-.61.264-.877.127-.27.3-.506.532-.706.217-.27.362-.552.415-.855.052-.305.014-.63-.13-.983-.01-.025-.02-.05.03-.073.05-.02.063.005.073.03zm2.361 3.784c-.036.1.038.195.187.387l.102.132c.2.266.274.567.28.883.004.31-.055.63-.115.942-.01.053-.1.05-.11-.003a1.91 1.91 0 0 0-.41-.918 3.663 3.663 0 0 0-.844-.74c-.023-.014-.045-.03-.015-.078.03-.045.053-.03.076-.015.344.23.642.48.868.764.172.215.3.448.377.704.037-.22.064-.44.062-.652a1.367 1.367 0 0 0-.256-.817 3.588 3.588 0 0 0-.098-.128c-.175-.225-.258-.334-.205-.49.01-.026.017-.054.07-.037.054.018.044.046.036.07zm1.006-.066c.04.043.084.086.125.132l.124.13c.02.02.037.042-.004.08-.04.038-.06.017-.078-.003-.04-.043-.084-.086-.124-.132-.04-.043-.084-.086-.124-.13-.018-.02-.038-.042.002-.08.04-.037.06-.017.08.003zm1.235.397c-.078.248-.154.494-.23.742-.078.247-.154.493-.233.74-.007.03-.015.054-.068.036-.053-.015-.045-.043-.035-.068l.23-.74c.077-.25.153-.495.232-.743.007-.027.015-.053.068-.038.053.018.046.043.035.07zm.699 4.142a.258.258 0 0 0 0 .185c.01.025.02.053-.033.07-.05.02-.06-.005-.07-.033a.37.37 0 0 1 0-.266c.01-.028.02-.053.07-.033.054.02.044.046.034.072zm-.734-1.217c-.033.13-.068.26-.1.39l-.102.392c-.008.028-.016.053-.07.04-.052-.015-.047-.04-.04-.068.034-.132.07-.26.102-.392.033-.13.068-.26.1-.39.01-.028.014-.053.07-.04.053.012.048.04.04.068zm-1.057-.005l.096.096c.02.02.037.04 0 .08-.042.037-.062.02-.08 0l-.096-.097c-.02-.02-.038-.038 0-.078.04-.038.06-.02.08 0zm-1.243-.595c-.025.074-.05.147-.078.22-.025.074-.05.147-.08.22-.01.026-.016.054-.07.033-.05-.017-.042-.045-.032-.07.025-.074.05-.147.078-.22.025-.074.05-.147.08-.22.01-.028.016-.054.07-.036.053.018.042.045.035.07zm-1.778 1.88a.74.74 0 0 0-.147.238 1.34 1.34 0 0 0-.066.268c-.006.028-.01.056-.064.046-.056-.01-.05-.036-.046-.064.018-.098.038-.194.074-.288a.82.82 0 0 1 .167-.273c.018-.02.04-.04.08-.003.04.038.022.058.002.08zm-5.092 4.987a.708.708 0 0 1-.107.17 1.277 1.277 0 0 1-.17.164c-.02.018-.043.036-.078-.01-.036-.042-.013-.06.007-.078a.872.872 0 0 0 .246-.29c.012-.026.022-.05.073-.03.052.022.04.047.03.072zm.798-.423a.376.376 0 0 1-.108.144.654.654 0 0 1-.173.1c-.027.01-.053.02-.07-.034-.02-.053.007-.063.033-.07a.455.455 0 0 0 .14-.08.305.305 0 0 0 .077-.103c.01-.024.023-.05.073-.027.05.023.038.048.028.074zm1.058-.644a.514.514 0 0 1-.066.09.56.56 0 0 1-.114.09c-.023.016-.048.032-.076-.016-.028-.05-.005-.064.02-.076a.407.407 0 0 0 .145-.142c.015-.023.028-.048.076-.018.05.028.034.05.02.076zm1.591-4.14c-.05.15-.086.296-.098.443-.014.146-.007.293.024.437.005.028.012.054-.04.066-.054.013-.06-.015-.066-.043a1.492 1.492 0 0 1-.028-.473c.015-.157.05-.314.103-.468.01-.028.018-.053.07-.035.054.017.044.045.037.07zm1.083-11.013a.93.93 0 0 1-.096.367c-.058.12-.142.24-.25.36-.018.02-.04.04-.08.002s-.022-.06-.002-.08c.102-.11.18-.222.233-.33a.82.82 0 0 0 .084-.324c0-.028 0-.056.057-.053.056 0 .053.03.053.057zm-1.106-.977c.097.167.155.337.188.506.033.167.04.337.03.504 0 .028-.003.055-.058.053-.056-.003-.053-.03-.053-.058a1.88 1.88 0 0 0-.027-.476 1.562 1.562 0 0 0-.175-.474c-.012-.023-.028-.048.02-.076.05-.028.064-.002.076.02zm-1.464 1.817a1.613 1.613 0 0 1-.433-.445.697.697 0 0 1-.1-.466c.004-.028.01-.053.062-.045.055.01.05.036.045.064a.59.59 0 0 0 .086.392c.082.137.216.273.403.412.023.015.045.033.012.08-.032.044-.055.027-.078.01zm1.62 2.755v.24c0 .028 0 .056-.054.056-.056 0-.056-.028-.056-.056v-.24c0-.028 0-.056.056-.056.055 0 .055.028.055.056zm-2.07-2.087c.326.308.52.68.624 1.093.066.255.094.526.1.81 0 0 .006-.003.01-.003.148-.05.262-.182.34-.392.084-.223.127-.532.135-.924 0-.003.004-.026.006-.03.117-.188.187-.38.235-.57.05-.19.072-.385.09-.58.005-.048.07-.068.1-.028.19.27.358.547.487.845.13.3.215.615.248.96.002.027.005.055-.05.06-.056.005-.06-.023-.06-.05a3.1 3.1 0 0 0-.24-.924 4.13 4.13 0 0 0-.386-.7 3.092 3.092 0 0 1-.077.444 2.07 2.07 0 0 1-.24.59c-.008.4-.054.716-.14.946-.09.246-.227.397-.407.458-.018.006-.033.01-.048.004-.003.136-.01.275-.02.417-.003.03-.005.057-.06.052-.057-.005-.054-.033-.052-.06.038-.462.028-.9-.073-1.294a2.11 2.11 0 0 0-.595-1.04c-.02-.017-.04-.038-.002-.078s.058-.02.078-.003zm1.214 5.195l-.07.437c-.02.144-.044.29-.067.435-.003.028-.008.055-.063.045-.053-.007-.05-.035-.046-.063l.07-.435c.02-.148.044-.292.067-.44.005-.027.007-.052.063-.044.053.01.05.035.046.063zm-2.334.988c.02.11.04.22.062.332.005.027.01.053-.046.063-.053.01-.06-.018-.066-.046l-.06-.33c-.005-.03-.01-.054.045-.064.053-.01.06.017.063.045zm2.017-2.678c-.027.22-.083.434-.17.64a2.37 2.37 0 0 1-.37.593v.003c-.2.218-.297.443-.327.678-.03.235.002.48.068.73.007.03.013.054-.04.07-.054.012-.06-.013-.07-.04a2.018 2.018 0 0 1-.07-.773c.033-.254.14-.502.354-.737a2.204 2.204 0 0 0 .514-1.175c.003-.027.008-.055.06-.047.056.008.05.036.05.064zm-.527-.783c.04.213.006.423-.082.635-.09.205-.23.412-.413.617l-.005.004c-.19.16-.324.334-.43.514a4.385 4.385 0 0 0-.263.564c-.01.026-.02.05-.073.03-.05-.02-.04-.045-.03-.07.078-.195.16-.39.27-.58.11-.19.253-.372.45-.54a2.24 2.24 0 0 0 .39-.583 1 1 0 0 0 .076-.57c-.005-.028-.01-.053.045-.066.053-.01.06.018.066.046zm-2.572 1.223c.06.424-.005.788-.164 1.107-.157.32-.408.592-.714.838-.02.017-.043.035-.078-.01-.036-.044-.013-.06.01-.08.293-.234.534-.497.683-.798.15-.3.213-.643.154-1.045-.003-.028-.008-.056.047-.064.056-.007.06.02.064.05zm-3.286 1.818c.033.066.063.132.093.197.036.07.07.14.1.21.014.026.024.05-.024.074-.05.022-.062 0-.072-.026-.033-.07-.07-.14-.1-.21l-.095-.195c-.013-.027-.023-.052.025-.075.05-.022.064 0 .074.026zm-1.302.025c-.004.25.016.5.077.737.063.237.165.468.332.688l.004.01c.083.17.13.34.164.51.023.127.038.254.046.38.16-.17.28-.34.37-.52.1-.208.153-.423.158-.646 0-.028 0-.056.056-.053.056 0 .056.027.053.055a1.673 1.673 0 0 1-.168.69c-.11.223-.27.436-.48.64-.03.033-.09.01-.092-.037a3.47 3.47 0 0 0-.05-.49 1.94 1.94 0 0 0-.153-.477 2.07 2.07 0 0 1-.346-.723 2.885 2.885 0 0 1-.083-.766c0-.027 0-.055.056-.055s.056.028.056.056zm.176 4.451a2.807 2.807 0 0 1 .192-.817c.01-.026.02-.05.07-.03.052.02.04.045.032.07a2.695 2.695 0 0 0-.185.782c-.002.027-.002.054-.06.05-.056-.003-.054-.03-.05-.06zm-.152 1.239l.068-.493c.003-.028.008-.056.064-.048.055.008.05.035.048.063l-.07.494c0 .026-.006.054-.062.047-.056-.008-.05-.036-.048-.064zm-.854 2.077c.082-.08.16-.177.234-.283a4.64 4.64 0 0 0 .218-.352c.012-.025.028-.048.076-.022.048.028.035.05.02.076a4.1 4.1 0 0 1-.223.36 2.1 2.1 0 0 1-.248.3c-.02.02-.04.037-.078 0-.04-.04-.02-.06 0-.08zm-1.23-6.97v.205c0 .028 0 .056-.056.056s-.056-.027-.056-.055v-.205c0-.027 0-.055.056-.055.055 0 .055.028.055.055zm-2.085 4.802c-.003-.05-.005-.1-.01-.15l-.01-.156c0-.028-.003-.055.052-.058.056-.003.06.023.06.053l.01.153c0 .05.004.1.01.152 0 .028 0 .055-.054.058-.056.002-.058-.023-.058-.053zm5.235-8.542c-.107.368-.19.75-.183 1.076.005.317.094.58.32.726.267.172.383.43.495.68l.02.046c.033-.123.06-.255.073-.387a1.72 1.72 0 0 0-.005-.46c-.005-.027-.01-.055.046-.065.053-.01.06.018.063.046.024.153.024.322.007.492-.02.19-.064.382-.12.55-.015.044-.08.05-.1.006a6.347 6.347 0 0 1-.084-.182c-.104-.235-.213-.478-.453-.633-.263-.17-.367-.465-.374-.817-.005-.34.078-.73.187-1.108.007-.028.015-.053.068-.038.054.015.047.04.04.068zm-.368-1.398c.036.286.026.55-.022.815a4.277 4.277 0 0 1-.248.812 2.573 2.573 0 0 0-.178 1.066c.018.362.112.72.28 1.063.01.024.024.05-.027.072-.05.026-.063 0-.073-.025a2.708 2.708 0 0 1-.106-2.22c.11-.276.195-.534.24-.79.048-.253.058-.506.023-.78-.002-.027-.007-.055.05-.062.052-.008.057.02.062.048zm-2.432 3.461a.845.845 0 0 0-.062.5c.03.17.103.342.207.515.015.022.028.048-.018.075-.048.028-.063.005-.075-.02a1.605 1.605 0 0 1-.22-.55.935.935 0 0 1 .07-.566c.013-.025.023-.05.074-.027.05.022.038.048.027.073zm-1.06-.38c.02.1.024.216.014.332-.01.1-.036.2-.076.288v.003a.424.424 0 0 0-.04.28c.02.1.07.198.138.3.015.022.03.045-.015.078-.044.033-.06.01-.077-.016a.91.91 0 0 1-.157-.34.517.517 0 0 1 .05-.353.812.812 0 0 0 .066-.25 1.18 1.18 0 0 0-.01-.3c-.005-.03-.01-.057.046-.065.055-.01.06.018.063.046zm6.2-9.181a2.474 2.474 0 0 0 .333 1.566c.016.023.028.048-.02.076-.048.028-.06.003-.076-.02-.14-.243-.245-.5-.306-.772a2.487 2.487 0 0 1-.04-.86c.003-.028.006-.056.06-.048.057.005.054.033.05.06zm-.777.752c.144.255.268.53.36.832.095.3.158.632.18 1 .004.027.004.055-.052.057-.055.003-.055-.025-.057-.053a4.024 4.024 0 0 0-.526-1.78c-.013-.026-.028-.05.02-.077.048-.028.063-.002.076.02zm-3.851.118c-.372.53-.534.96-.564 1.33-.03.37.068.68.215.965l.002.008c.102.293.147.584.14.878-.006.29-.066.584-.17.875-.01.028-.018.053-.07.033-.054-.017-.044-.045-.034-.07.103-.28.158-.56.166-.84a2.4 2.4 0 0 0-.132-.835c-.154-.3-.258-.63-.225-1.02.032-.39.2-.84.583-1.386.016-.024.033-.046.08-.016.044.033.03.056.012.078zm3.59-1.522a.784.784 0 0 1-.056.488c-.065.15-.18.29-.35.425a.865.865 0 0 0-.317.518c-.05.216-.04.467.014.748.005.028.01.055-.046.065-.053.01-.06-.017-.066-.045-.053-.296-.063-.56-.012-.79a.974.974 0 0 1 .36-.58c.153-.123.254-.252.315-.383a.677.677 0 0 0 .048-.42c-.005-.028-.012-.053.043-.066.053-.01.06.017.066.042zm-3.802.326c.073.235.075.465.007.695a1.673 1.673 0 0 1-.41.674l-.005.006c-.2.167-.32.38-.397.614a3.08 3.08 0 0 0-.12.787c-.004.03-.004.057-.06.054-.055-.002-.053-.03-.053-.058.015-.286.046-.562.127-.815a1.4 1.4 0 0 1 .426-.66c.195-.21.322-.42.385-.63a1.08 1.08 0 0 0-.007-.63c-.007-.03-.017-.055.036-.07.052-.015.06.01.067.038zm2.175.114a.814.814 0 0 0 0 .248.552.552 0 0 0 .094.227c.014.023.03.046-.016.08-.046.03-.06.01-.08-.017a.67.67 0 0 1-.11-.27.872.872 0 0 1 0-.28c.003-.03.008-.057.063-.05.056.008.05.036.048.064zm-.103-.572a.91.91 0 0 0-.46.427c-.107.2-.17.458-.19.775.012.015.02.027.02.038.106.144.18.316.225.508.05.21.068.448.06.706 0 .028-.002.056-.058.053-.056-.003-.054-.03-.054-.056a2.59 2.59 0 0 0-.058-.68 1.305 1.305 0 0 0-.192-.446c-.413.384-.615.81-.628 1.272-.015.483.175 1.01.54 1.57.014.024.03.05-.016.08s-.06.005-.076-.018c-.377-.582-.572-1.128-.557-1.634.015-.5.232-.954.68-1.364v-.003c.018-.346.086-.63.205-.852.12-.225.29-.385.516-.478.026-.01.052-.02.074.03.02.05-.005.063-.03.073zm-.618-.8c-.005.046-.01.08-.012.12-.028.262-.056.558-.256.738a.887.887 0 0 0-.233.34c-.05.128-.076.267-.093.414-.003.028-.005.056-.06.048-.057-.005-.052-.033-.05-.063a1.82 1.82 0 0 1 .102-.443.983.983 0 0 1 .26-.382c.168-.15.198-.425.22-.665.006-.046.01-.09.013-.122.003-.028.008-.056.064-.048.054.008.05.035.047.063zm6.044 6.449c.066.137.12.28.155.423.035.144.053.293.045.448 0 .027-.002.055-.058.053-.056-.002-.053-.03-.053-.057a1.53 1.53 0 0 0-.04-.418 2.075 2.075 0 0 0-.15-.4c-.012-.025-.023-.05.028-.073.05-.023.06 0 .073.025zm.018 1.983c.048.23.05.46.01.694a2.43 2.43 0 0 1-.253.71l-.255.6c-.013.026-.023.05-.074.03-.05-.02-.04-.047-.03-.072.086-.2.17-.403.256-.603l.002-.006c.124-.23.205-.455.245-.678a1.7 1.7 0 0 0-.01-.652c-.005-.028-.01-.056.043-.066.053-.013.06.015.066.043zm-1.26-1.846c.362.402.597.827.71 1.275.112.447.1.917-.037 1.408-.008.028-.016.053-.07.038-.052-.015-.045-.04-.037-.068.13-.473.144-.924.035-1.354-.108-.43-.336-.84-.685-1.23-.018-.02-.036-.04.005-.078.04-.038.06-.015.078.005zm-.111 2.226a5.687 5.687 0 0 1-.926 1.412 2.69 2.69 0 0 0-.574 1.002c-.016.05-.112.033-.107-.02a1.54 1.54 0 0 0-.055-.5 1.992 1.992 0 0 0-.223-.505v.002c-.202-.3-.288-.6-.273-.898.017-.3.136-.595.35-.89a2.77 2.77 0 0 0 .267-.626c.06-.207.09-.417.1-.627 0-.027 0-.055.057-.052.057.002.054.03.054.058a2.785 2.785 0 0 1-.384 1.305l-.003.006c-.2.28-.314.56-.33.835-.014.28.07.555.257.834l.002.002c.106.177.185.354.235.534.024.083.042.167.052.25a2.83 2.83 0 0 1 .5-.777 5.41 5.41 0 0 0 .908-1.385c.014-.025.024-.05.075-.028.05.022.038.048.027.073zm-3.302-1.062a3.08 3.08 0 0 0 .074.776c.055.24.146.466.273.673.015.023.028.048-.018.076-.048.03-.06.005-.076-.017a2.406 2.406 0 0 1-.286-.704 3.196 3.196 0 0 1-.076-.804c0-.028.003-.056.056-.053.056.002.056.03.053.055zm-1.88 1.007v.322c0 .03 0 .057-.055.057-.056 0-.056-.028-.056-.056v-.323c0-.028 0-.056.056-.056.055 0 .055.027.055.055zm.623-1.718a1.535 1.535 0 0 1-.37 1.058c-.017.02-.035.042-.078.004-.043-.036-.023-.056-.005-.08a1.37 1.37 0 0 0 .268-.47 1.46 1.46 0 0 0 .074-.513c0-.028-.002-.056.054-.056.055 0 .055.03.055.054zm-1.693 3.333c-.303-.755-.377-1.355-.3-1.843a2.1 2.1 0 0 1 .6-1.174c.2-.205.376-.407.49-.66.113-.253.167-.557.126-.967-.003-.028-.006-.055.05-.06.055-.006.055.022.06.05.04.43-.015.752-.136 1.022-.12.268-.3.48-.51.693a1.998 1.998 0 0 0-.57 1.115c-.074.47 0 1.052.295 1.788.01.026.02.05-.03.07-.05.02-.064-.004-.074-.03zm-.976-1.24a.77.77 0 0 0-.048.366c.01.12.057.245.133.37.015.022.03.047-.018.075-.048.032-.06.006-.076-.016a1.006 1.006 0 0 1-.15-.415.886.886 0 0 1 .055-.42c.01-.024.02-.05.07-.032.054.02.042.046.034.07zm4.803-3.41c.198.28.315.57.338.874.022.304-.046.617-.218.944-.013.022-.025.048-.073.022-.05-.025-.036-.05-.023-.073.162-.306.228-.6.205-.883a1.61 1.61 0 0 0-.32-.82c-.018-.022-.033-.045.013-.078.045-.033.06-.01.078.013zm1.5-1.175a2.564 2.564 0 0 1 .075 1.783c-.015.05-.106.04-.11-.015a1.905 1.905 0 0 0-.17-.75 1.626 1.626 0 0 0-.46-.57c-.02-.018-.042-.036-.007-.08.036-.042.056-.024.08-.006.214.172.376.374.487.61.068.143.12.3.15.467.032-.184.047-.37.04-.554a2.4 2.4 0 0 0-.187-.845c-.01-.025-.02-.05.03-.073.05-.02.063.005.073.03zm.89-1.217c.197.195.336.453.422.77.083.315.114.685.1 1.107v.003c-.022.18-.03.354-.01.516.02.16.064.306.148.437.015.024.03.05-.015.08-.048.03-.064.005-.08-.018a1.133 1.133 0 0 1-.163-.486 2.434 2.434 0 0 1 .007-.54 3.755 3.755 0 0 0-.094-1.07c-.08-.3-.21-.54-.392-.722-.02-.02-.04-.038 0-.08.037-.04.058-.02.078 0zm-2.364-.235c-.13.156-.207.34-.245.546-.037.206-.032.434.006.682.005.028.01.053-.045.063-.053.01-.058-.017-.063-.045a2.16 2.16 0 0 1-.005-.72c.04-.224.13-.424.268-.598.018-.02.036-.043.08-.008.042.035.024.056.006.08zm-4.632 3.119c-.02.46-.154.835-.37 1.144-.214.306-.508.55-.855.75-.023.016-.05.03-.076-.02-.028-.047-.005-.06.02-.075.33-.194.615-.427.82-.72.204-.29.33-.645.35-1.083 0-.028.004-.056.06-.053.055.002.053.03.053.058zm-.119-1.594c.025.172.015.34-.023.506a2.32 2.32 0 0 1-.187.5c-.013.024-.025.047-.073.024-.05-.025-.038-.05-.026-.074.08-.16.145-.318.18-.473a1.25 1.25 0 0 0 .023-.464c-.004-.028-.01-.056.047-.063.056-.008.06.02.063.048zm3.137-.23v.157l.053.814.005.073c.003.028.003.055-.05.06h-.018c-.007.01-.02.016-.045.016-.056 0-.056-.03-.056-.057v-.9l-.014-.22c-.003-.03-.005-.056.05-.062.056 0 .06.024.06.052v.018c.014.01.014.028.014.045zm.758-1.398c-.224.27-.312.53-.317.786-.006.255.073.51.19.764.262.422.348.842.32 1.265-.025.42-.164.837-.35 1.255-.01.025-.02.05-.072.027-.05-.022-.037-.048-.027-.073.182-.405.314-.812.34-1.217a1.973 1.973 0 0 0-.307-1.204l-.002-.005c-.124-.268-.208-.54-.203-.817.006-.28.105-.564.343-.855.017-.02.035-.043.078-.007.044.035.026.055.01.078zm-4.866-8.677c.366-.28.726-.44 1.103-.48.374-.038.76.043 1.18.24.14-.002.28-.002.42-.005.14-.003.284-.005.426-.005.028 0 .056 0 .056.056 0 .054-.03.054-.057.054-.144.003-.286.005-.427.005l-.385.004c0 .003-.004.005-.007.008-.45.397-.834.615-1.176.686a1.13 1.13 0 0 1-.93-.203c-.03-.02-.057-.04-.02-.096.04-.057.07-.04.097-.02.248.173.517.244.825.18.298-.062.637-.247 1.034-.583-.364-.16-.698-.223-1.02-.19-.35.035-.688.187-1.034.453-.028.02-.056.04-.097-.013-.04-.056-.015-.076.013-.096z"/> - <path d="M290.18 107.81a.28.28 0 0 1 0 .557.28.28 0 0 1-.277-.278c0-.155.124-.28.278-.28zm1.917 1.683c.2-.103.354-.215.483-.33a2.3 2.3 0 0 0 .314-.345c.015-.023.033-.046.078-.013.046.033.028.056.013.08-.09.123-.198.247-.33.365a2.44 2.44 0 0 1-.505.342c-.025.013-.05.025-.074-.023-.025-.05-.002-.064.023-.074zm3.949-1.633a.557.557 0 0 1 .31 0c.1.03.2.085.297.166.02.018.043.035.008.078-.035.043-.055.026-.078.008a.71.71 0 0 0-.258-.142.494.494 0 0 0-.25-.002c-.028.007-.053.015-.068-.04-.016-.054.012-.06.037-.07zm-2.259.09a.91.91 0 0 1 .407-.455c.182-.097.412-.137.693-.112.028.003.056.005.05.06-.004.057-.032.054-.06.052-.26-.023-.47.012-.632.098a.777.777 0 0 0-.357.403c-.01.025-.023.05-.073.027-.05-.022-.04-.048-.028-.073zm.258.37a.452.452 0 0 1 .124-.256.59.59 0 0 1 .285-.157c.027-.008.053-.015.068.038.015.053-.013.06-.038.068a.475.475 0 0 0-.233.127.37.37 0 0 0-.093.197c-.006.028-.01.053-.065.046-.053-.008-.05-.036-.045-.064zm-3.76 1.25c-.06.095-.116.194-.157.3a.878.878 0 0 0-.05.355c.002.027.005.055-.05.058-.057.002-.06-.023-.062-.05-.01-.15.016-.282.056-.4.04-.117.1-.223.167-.324.014-.024.03-.05.075-.02.048.03.033.054.018.077zm1.078.482v.167c0 .027 0 .055-.056.055-.055 0-.055-.028-.055-.056v-.168c0-.027 0-.055.055-.055.056 0 .056.028.056.055zm-.701-1.204c.11.04.22.06.332.063.11 0 .225-.014.336-.04.028-.004.053-.012.066.04.013.055-.015.062-.04.07a1.517 1.517 0 0 1-.365.043 1.062 1.062 0 0 1-.368-.07c-.028-.01-.053-.02-.033-.072.02-.052.044-.04.07-.032zm.693-2.021a.34.34 0 0 0-.222.068.403.403 0 0 0-.14.202c-.007.028-.015.054-.068.038-.053-.015-.045-.043-.038-.068a.525.525 0 0 1 .18-.258.46.46 0 0 1 .29-.092c.03 0 .057.002.057.056 0 .055-.028.055-.056.055zm-1.12.113a.85.85 0 0 0-.2.117.272.272 0 0 0-.09.12c-.01.03-.017.055-.07.037-.053-.018-.043-.043-.035-.07a.393.393 0 0 1 .124-.173.92.92 0 0 1 .23-.133c.025-.01.05-.02.07.03.024.05-.002.063-.03.074zm-.691.02a.875.875 0 0 0-.175.158.716.716 0 0 0-.115.194c-.01.026-.017.054-.07.033-.05-.017-.043-.045-.033-.07a.787.787 0 0 1 .13-.228.96.96 0 0 1 .2-.18c.02-.015.044-.03.077.015.032.046.01.06-.016.08zm-.888.712a1.817 1.817 0 0 0-.405.417c-.014.022-.032.045-.077.012-.046-.033-.028-.056-.013-.08a2.187 2.187 0 0 1 .428-.44c.022-.017.045-.032.078.01.033.047.01.062-.013.08zm.088.978c-.053.06-.106.117-.16.173l-.16.172c-.02.02-.04.04-.08.002-.04-.037-.022-.058-.002-.078l.16-.173.16-.172c.02-.02.04-.04.08-.003.04.038.023.06.002.08zm-.898.26v.346c0 .027 0 .055-.055.055s-.055-.027-.055-.054v-.345c0-.026 0-.054.056-.054s.056.028.056.055zm1.151 1.514l-.053.565c-.002.016-.002.034-.005.052-.003.028-.006.055-.06.05-.057-.005-.055-.033-.052-.06.002-.018.002-.036.005-.054l.053-.564c.003-.028.005-.055.06-.05.056.005.054.033.05.06zm-.675-.501a22.1 22.1 0 0 1-.013.367c0 .028-.003.056-.06.053-.055-.002-.052-.03-.052-.055.002-.124.008-.246.013-.37 0-.027.003-.055.06-.053.054.003.052.03.052.058zm-.628-4.791a.778.778 0 0 1 .498.498c.01.028.02.053-.035.07-.053.02-.06-.01-.07-.035a.693.693 0 0 0-.167-.27.743.743 0 0 0-.266-.162c-.025-.01-.05-.02-.033-.07.02-.054.047-.044.072-.034zm5.511 7.185c.106.24.164.48.167.718.005.24-.043.48-.144.72-.01.027-.02.052-.07.032-.052-.02-.042-.048-.032-.074.094-.225.14-.45.134-.675a1.685 1.685 0 0 0-.156-.676c-.013-.025-.023-.05.027-.073.052-.024.065.002.075.027zm-1.795 2.077c.077-.27.19-.506.322-.72.132-.216.28-.41.43-.603.172-.222.286-.465.347-.713.065-.268.067-.546.02-.81-.006-.027-.01-.052.045-.063.053-.01.06.018.063.046.05.278.048.57-.02.855a1.97 1.97 0 0 1-.367.757c-.146.19-.292.382-.422.592a2.793 2.793 0 0 0-.31.693c-.008.028-.016.053-.07.038-.052-.015-.045-.04-.037-.07zm-2.31-.61c.037-.1.092-.19.168-.268a.963.963 0 0 1 .28-.197c.026-.014.052-.024.074.024.023.05 0 .063-.028.073a.848.848 0 0 0-.25.175.61.61 0 0 0-.144.23c-.01.025-.02.053-.07.033-.052-.018-.044-.045-.034-.07zm-.45-.162c.087-.11.173-.215.272-.306.1-.093.215-.172.346-.225.025-.01.05-.02.07.03.02.054-.004.065-.032.072-.12.048-.22.12-.31.203-.095.086-.178.19-.26.293-.017.023-.032.046-.078.01-.045-.033-.027-.055-.01-.078zm2.394-2.372a.718.718 0 0 0 .276.065.88.88 0 0 0 .258-.033c.028-.008.053-.015.068.038.016.053-.012.06-.038.068a.847.847 0 0 1-.607-.038c-.025-.012-.05-.022-.028-.073.023-.05.048-.038.074-.028zm-1.191-.155c.027-.033.055-.063.083-.096l.01-.014c.018-.02.038-.04.08-.005.04.04.02.06.004.08l-.01.012a2.942 2.942 0 0 1-.086.096c-.018.02-.036.04-.08.005-.04-.035-.022-.058-.004-.078zm25.765 7.433c.053.058.1.12.14.185.037.065.068.134.093.207.01.028.02.053-.035.068-.053.018-.06-.01-.07-.035a.81.81 0 0 0-.084-.185.85.85 0 0 0-.123-.164c-.018-.02-.038-.04.003-.08.04-.037.06-.016.078.004zm-28.604 13.424c.12.11.248.213.387.284.138.068.29.11.46.11.03 0 .057 0 .057.056s-.028.056-.056.056a1.14 1.14 0 0 1-.51-.124 1.88 1.88 0 0 1-.412-.298c-.02-.018-.04-.038-.003-.08.038-.04.06-.022.08 0z"/> - <g fill="red"> - <path d="M308.605 106.323a8.777 8.777 0 0 0 1.768-.083c-.556.402-1.267.673-2.034.8a.822.822 0 0 0 .288-.363.455.455 0 0 0-.023-.354zm-1.515-.157c.412.07.84.117 1.262.145.005.01.013.018.018.028.068.094.088.185.058.274-.036.1-.132.207-.29.316-.042.03-.085.06-.024.144a6.01 6.01 0 0 1-1.295.023.19.19 0 0 0 .042-.036c.154-.162.253-.33.28-.504a.67.67 0 0 0-.053-.387zm-11.198-3.218c.713-.093 1.44-.116 2.178-.098.243.098.423.242.534.432.12.213.164.49.114.838-.008.05-.015.103.088.116.104.015.112-.038.117-.09.055-.393.005-.715-.14-.968a1.117 1.117 0 0 0-.273-.313c.066.002.132.005.198.01.85.045 1.51.288 2.25.655a.145.145 0 0 1 .016.02c.157.165.21.334.185.51-.03.184-.14.383-.317.588-.033.04-.068.08.013.147.078.068.113.028.146-.013.2-.235.332-.468.365-.695a.743.743 0 0 0-.038-.372c.62.308 1.254.604 1.868.928.013.008.026.013.038.02a.12.12 0 0 0 .01.04c.05.176.03.325-.055.454-.093.134-.262.25-.508.34-.048.02-.096.037-.06.136.035.096.085.078.134.06.288-.11.49-.248.607-.42a.674.674 0 0 0 .114-.483c.407.22.814.448 1.232.648v.002c.075.147.087.28.03.4-.062.13-.203.25-.428.362-.046.023-.094.045-.05.14.047.093.095.07.14.047.27-.135.443-.29.524-.46a.58.58 0 0 0 .046-.37c.144.062.29.123.44.18a8.75 8.75 0 0 0 1.41.373.498.498 0 0 1 .12.402c-.025.13-.103.26-.23.393-.035.038-.07.073.003.146.013.013.023.02.033.028-1.58-.162-2.988-.918-4.46-1.487-.175-.07-.352-.134-.527-.203-.543-.205-1.092-.483-1.638-.706a.17.17 0 0 0-.07-.035l-.112-.035c-.023-.01-.048-.017-.07-.027 0 .002.006.005.01.007a9.05 9.05 0 0 0-1.514-.354 6.525 6.525 0 0 0-1.736-.017l-.096-.015c.05-.31.01-.584-.144-.822-.11-.17-.273-.32-.5-.443z"/> - <path d="M293.303 103.644a9.274 9.274 0 0 1 2.214-.643c.344.138.572.305.7.502.125.195.155.423.112.686a4.48 4.48 0 0 0-1.963.24c-.168-.35-.393-.564-.656-.68a1.327 1.327 0 0 0-.407-.107zm7.962 4.028a10.05 10.05 0 0 0-.597-.357 7.388 7.388 0 0 0-3.243-.918l.028-.026c.402-.41.49-.796.354-1.157-.106-.28-.352-.542-.69-.777.38-.02.73.002 1.125.058a8.736 8.736 0 0 1 1.935.53c.162.356.208.667.137.93-.073.276-.28.506-.615.696-.046.025-.092.05-.04.14.05.092.095.067.14.04.388-.218.625-.492.714-.826.068-.258.048-.546-.066-.867.445.2.848.437 1.13.698.365.253.727.508 1.08.777.004.45-.128.706-.345.84-.23.14-.56.156-.934.12-.05-.007-.104-.012-.115.092v.005z"/> - <path d="M303.43 109.3c-.657-.513-1.3-1.05-1.99-1.512.382.03.724 0 .982-.154.25-.155.415-.423.442-.86.413.318.81.655 1.187 1.017.19.18.38.357.575.532 0 .002.003.005.003.01.045.162.06.3.048.418a.49.49 0 0 1-.12.28.584.584 0 0 1-.29.165c-.185.053-.425.063-.72.03-.05-.005-.1-.01-.112.08z"/> - <path d="M305.7 110.796a12.284 12.284 0 0 1-.655-.362c-.503-.298-.976-.64-1.44-.996.284.022.522.007.714-.046a.8.8 0 0 0 .39-.225.688.688 0 0 0 .17-.4.984.984 0 0 0-.002-.227c.453.387.93.746 1.442 1.06.27.164.54.318.807.463a.21.21 0 0 0 .003.055c.033.208-.084.34-.296.423-.248.1-.617.14-1.04.165-.048.003-.094.005-.1.086z"/> - <path d="M308.124 111.748a12.69 12.69 0 0 1-2.193-.835c.39-.028.734-.074.982-.172.28-.11.443-.283.433-.558.45.227.9.425 1.36.586.08.18.085.327.01.45-.092.153-.292.28-.54.388-.048.02-.096.043-.053.137v.002z"/> - <path d="M313.174 111.234c.066-.01.47-.116.26.038-1.487.974-3.374.97-5.153.514.277-.124.502-.274.616-.46.086-.14.1-.3.06-.474a9.441 9.441 0 0 0 1.734.392.402.402 0 0 1-.094.27c-.094.117-.253.23-.514.345-.048.02-.096.04-.053.136.04.096.088.073.136.053.293-.13.483-.267.594-.406a.58.58 0 0 0 .14-.377 9.58 9.58 0 0 0 2.277-.036zm-10.287 25.626c-.11.117-.205.246-.296.398-.432.144-.814.36-1.28.34 0 .3.1.43.4.434.575-.29.704-.342.755-.3.07.06-.08.472-.557.806-.073.045-.07.073-.028.15.402.63 1.457.404 2.024.255.405-.107 1.136-.587 1.34-.992.077-.184-.1-.427-.277-.624-.448.068-.602-.14-.532-.283-.473-.167-1-.203-1.548-.183zm-16.174-5.098c-.33.27-.696.48-1.123.623-.162.053-.555.15-.593.354-.005.072.264.232.436.138.475-.455.713-.202.167.263-.043.09-.008.188.086.272.493.443 1.715.587 2.272.235.412-.258.627-.54.268-.933.002-.09.012-.175.028-.263l-.68-.068-.418-.243-.443-.378zm10.647 3.704c-.04.005-.084.01-.125.018-.22.238.385.15.706.347.148.09.21.264.153.507-.296.706-1.948.478-2.497.187-.256-.134-.266-.29-.256-.51.114 0 .23-.006.347-.024.197-.028.392-.086.584-.195.054-.03.11-.063.05-.17-.06-.108-.117-.078-.17-.047a1.38 1.38 0 0 1-.496.164c-.172.025-.35.025-.52.018h-.042c-.096-.056-.17-.122-.13-.18.042-.055.2.005.23.015.257-.12.48-.194.755-.248l.112-.116c.502.044.983.12 1.302.236zm-7.64-.432c-.1.06-.136.146-.21.306a2.89 2.89 0 0 1-.933.632c-.306.14-.01.274.205.42.195.145.45-.17.61-.407.175-.263.352-.185.238.02-.127.225-.218.55-.23.72-.066.18.627.32.746.325.423.02.954-.392 1.285-.602.277-.28.234-.526.113-.868l.002-.023a2.103 2.103 0 0 1-.508-.05 3.664 3.664 0 0 1-.597-.198c-.026-.01-.05-.02-.03-.074.012-.033.027-.04.045-.038l-.73-.167zm2.96-28.159c.115-.005.23-.01.345.002.215.026.42.12.635.145.72-.27 1.313-.42 1.827-.398a6.064 6.064 0 0 1 1.844-.232l-.022-.02c-.073-.074-.037-.112 0-.147.337-.342.415-.656.307-.94-.112-.293-.415-.568-.838-.82-.45.05-.883-.072-1.36-.02-.3.034-.593.1-.88.196.24.087.45.23.62.43.213.25.365.593.446 1.023.01.05.018.1-.083.12-.1.022-.112-.03-.122-.082-.073-.39-.21-.7-.4-.925-.2-.286-.657-.397-.8-.455-.48.048-.95.1-1.36.207-.31.078-.58.187-.787.35.31-.067.63-.054.91.085.265.132.49.38.632.782.018.048.033.1-.066.132-.1.032-.116-.016-.13-.066-.12-.347-.308-.554-.528-.663-.437-.218-1.34-.028-1.723.255a4.515 4.515 0 0 0-.665.633c-.023.028-.048.053-.078.056.82.056 1.644.1 2.282.355zm-2.433-.463c-.017-.046.013-.08.04-.112.23-.26.464-.49.704-.667.234-.172.474-.296.722-.355.253-.28.628-.45 1.063-.56.422-.11.905-.166 1.394-.214-.145-.29-.33-.465-.543-.56-.227-.1-.49-.115-.77-.088-.59.203-1.115.52-1.618.876.045 0 .09 0 .133.002.15.01.283-.012.407.036.05.018.1.035.064.134-.043.12-.37.045-.484.038a1.42 1.42 0 0 0-.427.04c-.025.005-.048.013-.07.005-.53.327-.93.658-1.357 1.02.324.114.577.248.74.405z"/> - </g> - <g> - <path d="M351.443 167.066l22.142-50.188-16.333-26.372-29.128 10.785-13.482 53.043a234.2 234.2 0 0 1 36.798 12.736z" fill="#0093dd"/> - <path d="M323.206 120.643a268.71 268.71 0 0 1 42.263 14.63l-8.545 19.37a247.61 247.61 0 0 0-38.936-13.474z" fill="#fff"/> - <path d="M358.3 151.532l5.707-12.936a265.337 265.337 0 0 0-41.692-14.43l-3.365 13.233a251.82 251.82 0 0 1 39.547 13.687l-.198.445z" fill="red"/> - <path d="M326.424 134.244c.382-.24.79-.182 1.2-.116.33-.124.712-.167 1.127-.152a2.07 2.07 0 0 1 .616-.207c.124-.097.13-.2.018-.312a.663.663 0 0 1-.17-.377c-.657-.382-.9-.963-1.15-1.54-.375-.1-.55-.225-.59-.367a35.578 35.578 0 0 1-.542-.056c-.852.094-1.072-.182-1.376-.407-.253-.084-.473-.223-.615-.488-.092-.12-.186-.236-.28-.355-.232-.296-.162-.688.19-.665.248.028.493.028.72-.07.267-.12.664-.117.965-.092.357-.02.582-.25.93-.574-.004-.14-.004-.276-.007-.415-.055-.148.016-.214.213-.194.464.015.74.233.927.542.54.093.964.35 1.25.804.716.003 1.2.273 1.257.54.043.194-.167.416-.49.654.002.048.004.1.004.147.193.167.32.334.385.498.402.156.787.363 1.146.667 1.024-.12 2.752.625 5.087 2.115 1.515.27 2.985.69 4.397 1.3l.893.028c2.533-.374 4.987-.086 7.264 1.655.86.103 1.633.374 2.38.683.553.227 1.117.316 1.686.37.92.088 1.855.315 2.78.746 1.04.232 2.012.56 2.614 1.287.428.517.324.993-.22 1.19-.33.694-.984.724-1.965.382-.676.124-1.42-.417-2.095-.926-.94-.3-1.802-.842-2.654-1.42-.443-.33-.89-.54-1.326-.634-.342-.073-.648-.12-.853 0-.1.06-.088.096 0 .17.238.2.405.498.458.857.048.316-.002.68.016 1.067.02.407.266.703.676.956.28.172.615.354 1.098.423.23.045.296.18.288.354.13.617.248 1.24.474 1.8.063.158.184.234.366.368.625.45.3.954-.268 1.063-.498.44-.928.737-1.44.853-.407.137-.574-.03-.71-.23a.516.516 0 0 1-.473-.263c-.498-.367-.073-1.004 1.12-.73.024-.14.125-.183.227-.18-.07-.31-.112-.653.022-.975-.107-.068-.198-.154-.352-.205-.43-.136-.838-.334-1.16-.635-.61-.574-1.563-1.055-2.48-1.538-.76-.038-1.324-.387-1.92-.683-.267-.003-.535-.008-.803-.01-.236-.08-.428.002-.57.172-.237.288-.513.24-.84.202-.374-.043-.753-.015-1.128-.02-.185.046-.367.104-.567.106-.422-.023-.834-.028-1.115.208-.233.245-.466.227-.7.136-.173-.08-.3-.167-.373-.258-.294-.06-.483-.134-.547-.222-.493-.14-.632-.28-.61-.418-.654-.157-.343-.673.082-.69.5-.02.96.075 1.45.144.412.116.92.048 1.257-.256.217-.197.298-.367.564-.513-.848-.056-1.472-.205-1.933-.496-1.24-.783-2.23-.973-3.02-.31-.21.12-.375.167-.6.08a1.135 1.135 0 0 0-.623-.03c-.448.102-.89.046-1.338-.116a4.36 4.36 0 0 1-1.963.066c-.553.29-.958.324-1.216.1a9.125 9.125 0 0 1-.69-.424c-.353-.053-.504-.14-.52-.258-.45-.05-.506-.215-.503-.395-.186-.215-.115-.38.072-.518.334-.14.68-.19 1.065.007.23.11.4.215.54.324.254-.03.474 0 .667.07.14-.222.544-.232.984-.206.22-.147.483-.25.82-.28-.01-.054-.02-.107-.028-.158-.443-.116-.67-.438-.89-.762-.68-.012-1.17-.298-1.655-.597-.4.033-.72-.098-1.033-.286-.253.02-.534.03-.8-.038a2.728 2.728 0 0 1-1.494 0c-.332.03-.597-.003-.87-.028-.312.356-.66.42-1.043.237-.21-.266-.51-.44-.886-.54-.286-.093-.375-.217-.426-.35-.35-.216-.278-.43.06-.59.252-.122.568-.145 1.05.093.155.058.33.1.527.114z"/> - <path d="M343.107 139.33c-.033-.06-.104-.205-.36-.06-.792-.042-1.677-.03-2.343-.424-.693-.407-1.406-.832-2.173-.802a1.93 1.93 0 0 1 .84-.45c.44-.116.963-.124 1.54-.03.81.13 1.522.288 2.074.496.53.2.906.447 1.07.766a.433.433 0 0 0 .046.05c.212.137.397.277.55.423.118.108.22.222.305.343-.25.023-.51.005-.762-.045a3.07 3.07 0 0 1-.79-.273z" fill="#fff"/> - <path d="M344.928 101.104l.046.238.996 5.16-3.964 3.457-.182.158.23.08 4.97 1.72 1.008 5.16.05.238.18-.16 3.973-3.443 4.976 1.706.232.077-.046-.238-.997-5.165 3.964-3.456.182-.16-.23-.078-4.97-1.72-1.01-5.162-.047-.238-.183.16-3.975 3.446-4.974-1.708z"/> - <path d="M342.5 109.9l3.703-3.228 4.658 1.604zm8.978-1.743l3.717-3.23 4.642 1.606zm8.392-1.459l-3.704 3.228-4.657-1.604zm-8.98 1.745l-3.715 3.23-4.643-1.605zm-5.436-6.863l4.648 1.593.94 4.835zm6.002 6.9l4.655 1.605.932 4.825zm5.459 6.54l-4.647-1.593-.94-4.834zm-6.001-6.903l-4.655-1.6-.932-4.826zm3.226-8.142l.944 4.823-3.717 3.23zm-2.978 8.648l.94 4.835-3.713 3.22zm-2.932 8l-.944-4.822 3.717-3.23zm2.978-8.648l-.94-4.834 3.712-3.218z" fill="#f7db17"/> - </g> -</svg> diff --git a/img/flags/1x1/ht.svg b/img/flags/1x1/ht.svg deleted file mode 100644 index 634b608..0000000 --- a/img/flags/1x1/ht.svg +++ /dev/null @@ -1,128 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" height="512" width="512" viewBox="0 0 512 512"> - <path fill="#d21034" d="M0 0h512v512H0z"/> - <path fill="#00209f" d="M0 0h512v256H0z"/> - <g fill="#f1b517" stroke="#000" stroke-width=".183"> - <path fill="#fff" d="M175.24 191.63h161.52v128.583H175.24z" stroke="none"/> - <path d="M288.507 284.614l-32.963.957-32.814.374s-16.86 6.235-23.75 7.634c-6.872 1.396-5.978 3.653-11.295 4.84-4.26.953-4.75 1.253-7.25 1.417-1.512.1-3.374 1.263-5.196 2.545v17.833h161.52V303.25c-1.75-.953-3.418-1.61-5.126-2.19-2.373-.807-3.972-1.69-8.23-2.64-5.318-1.19-4.425-3.446-11.296-4.842-6.892-1.4-23.6-8.964-23.6-8.964z" fill="#016a16" stroke="#016a16" stroke-width=".312"/> - <g transform="translate(-170.667) scale(1.70667)"> - <g id="a"> - <path d="M244.53 143.512l1.396-.033 2.555 10.748-.544 3.386-3.407-14.102z"/> - <path d="M243.064 136.346l.954 8.284 1.022-.066-1.976-8.218z" fill="#fff"/> - <path d="M245.722 154.59l-4.293-11.54 1.6-.098 5.01 14.102-2.318-2.465z"/> - <path d="M239.42 136.477l1.77 8.02h1.432l-3.203-8.02z" fill="#fff"/> - <path d="M241.906 150.546l-2.52-5.424 1.09-.23 4.6 9.007-3.17-3.354z"/> - <path d="M236.08 138.778l2.794 7.626h1.43l-4.224-7.626z" fill="#fff"/> - <path d="M242.25 151.364l-11.437-12.484c-3.57 2.828-2.908 8.02-2.908 8.02l12.957 10.167 1.387-5.703z" fill="#0a328c"/> - <path d="M248.86 158.235l-8.482-8.594c-3.587.126-.74 5.48-.56 6.153l9.043 7.734v-5.292z" fill="#d20014"/> - <path d="M248.14 156.757l-17.54-18.78-.685.483 18.56 20.622-.336-2.325zm-18.554-19.985l-.385-.446.04-.89-3.62-2.304 1.617 3.64 1.232.223.384.446.732-.668z"/> - <path d="M227.738 138.11c.616-.743 1.348-1.486 2.657-2.192l1 1.45-2.155 1.82-1.502-1.078z"/> - <path d="M225.81 141.278l.59 1.026c.363-.135 4.03-3.457 4.03-3.457l2.632-.08.756-.838c-1.932-2.08-3.752.296-3.752.296l-4.255 3.052z" fill="#0a328c" stroke="#0a328c"/> - <path d="M227.91 143.007c.14-.918 1.877-3.214 2.13-3.295 1.302.39 2.514 1.14 3.834-1.837-1.148 1.46-3.47-.027-3.47-.027l-1.01.838.03.405-3.053 2.837 1.54 1.08z" fill="#d20014" stroke="#d20014"/> - <g> - <path d="M237.252 154.672l-14.367-11.41c-2.46 2.502-.415 10.23-.415 10.23l14.043 7.608.74-6.428z" fill="#0a328c"/> - <path d="M249.166 163.917l-11.818-9.467c-4.036.566-.864 6.506-.623 7.16l12.48 6.77-.04-4.463z" fill="#d20014"/> - <path d="M248.697 162.005l-25.554-19.182-.587.59 26.837 20.956-.696-2.365zm-26.769-20.198l-.46-.374-.122-.885-3.98-1.662 2.25 3.314 1.253.014.458.374.6-.78z"/> - <path d="M220.35 143.433c.472-.835 1.06-1.69 2.22-2.603l1.247 1.26-1.795 2.152-1.673-.81z"/> - <path d="M218.925 146.64l.16 1.06c.337-.187 3.56-3.725 3.56-3.725l2.586-.477.528-.833c-1.797-2.114-3.713.698-3.713.698l-3.12 3.278z" fill="#0a328c" stroke="#0a328c"/> - <path d="M220.97 148.545c-.122-.982 1.22-3.863 1.456-3.98 1.547.46 2.894 1.152 3.462-2.07-.897 1.614-3.46.363-3.46.363l-.86.98.12.53-2.61 3.37 1.893.807z" fill="#d20014" stroke="#d20014"/> - </g> - <g> - <path d="M236.224 161.65c-.19-.045-18.517-10.44-18.517-10.44-1.334 2.25-.128 5.52.457 6.028.034 1.5-.602 2.306.707 5.44.387 2.035 1.33 3.912 2.7 5.026 1.672 6.417 8.223 6.848 10.747 1.624l3.907-7.677z" fill="#0a328c"/> - <path d="M248.352 168.512l-12.548-7.355c-4.036.567.085 8.056.326 8.71l12.116 4.304.106-5.658z" fill="#d20014"/> - <path d="M246.243 165.846l-28.35-15.09-.484.673 29.904 16.646-1.07-2.23zm-29.715-15.909l-.514-.3-.265-.856-4.2-1.04 2.757 2.935 1.24-.177.515.3.466-.86z"/> - <path d="M215.232 151.782c.332-.896.773-1.828 1.772-2.907l1.436 1.056-1.425 2.4-1.783-.548z"/> - <path d="M214.1 155.18l.593 1.168c.307-.232 3.004-4.578 3.004-4.578l2.492-.82.468-1.014c-2.002-1.85-3.498 1.342-3.498 1.342l-3.06 3.903z" fill="#0a328c" stroke="#0a328c"/> - <path d="M216.772 156.836c-.2-1 .484-4.197.7-4.345 1.56.466 2.863.598 3.223-2.62-.907 1.528-3.328.952-3.328.952l-.71 1.085.15.38-2.06 3.95 2.025.6z" fill="#d20014" stroke="#d20014"/> - </g> - </g> - <use height="100%" width="100%" xlink:href="#a" transform="matrix(-1 0 0 1 499.86 0)"/> - </g> - <g transform="translate(-170.667) scale(1.70667)"> - <path d="M248.757 125.603l-.465 9.07h2.9l-.425-8.992 3.023-.423-.335-3.582-7.51.29.04 3.253 2.772.385z" fill="#016a16" stroke="#016a16"/> - <g id="b" fill="#016a16"> - <path d="M249.817 121.898c-7.764-7.77-13.878-3.98-15.334-2.902.963.187 1.826-.412 2.273-.48-.28.353-.865 1.23-.865 1.23s2.4-1.135 2.67-1.03c-.347.275-.728.935-.728.935.178.07 1.528-1.056 1.795-1.076-.41.466-.54 1.528-.54 1.528l1.17-.545c.305.216-.084.63.18.61 1.945-.16 4.678 1.776 5.054 2.37"/> - <path d="M247.895 123.32c-.81-1.853-15.588-5.004-18.56.245 1.164.293 2.276-.976 2.276-.976l-.1 1.17 1.972-1.512-.708 1.56 1.568-1.268-.05 1.27 1.92-2.1-.252 1.22 1.72-.73-.203 1.023"/> - <path d="M247.238 123.614c-3.793-2.537-9.66-.83-9.66-.83-3.74 2.1-5.736 1.72-6.22 5.61.355-.145 1.366-1.365 1.366-1.365l.76 1.512.25-2.147.608 1.66.91-2.733.203 1.854 1.416-1.854.658.536.607-1.415.556.927s.962-.585 1.52-.244l1.06-1.22.253.88.91-1.074.355.78.91-.83-.05.586 3.135.05"/> - <path d="M246.38 124.053c-2.643-.05-10.226 2.812-12.188 5.806a13.29 13.29 0 0 1 1.263-.636l.387 1.203.473-1.203.1.927c.29-.723.618-.805 1.164-.048l.2-1.122.305 1.073.505-1.17s.318 1.27.506 1.22c0 0 .838-2.195 1.214-2.294l.1 1.365.506-1.366.456 1.024.1-1.464.506 1.122s.266-1.103.658-1.317l.758.683 3.378-2.427"/> - <path d="M246.888 124.678c-3.52 1.35-6.67 6.18-6.43 8.226 1.565-1.94 1.23-1.674 1.928.56 0 0 .264-1.955.53-2.187l.46 1.446.17-1.892.47.023-.12-1.187.698.535c-.163-.677-.338-.906.386-1.488 0 0-.917.117-.193-1.535l.675.65s-.12-.72.12-1l2.485-.86"/> - <path d="M247.23 125.04l-1.33 2.534.68.197-1.534 1.153 1.296-.132s-1.978.725-2.217 2.666l2.013-.888s-1.706 1.744-1.945 2.797l1.16-1.02s-1.125 1.217-.955 3.06l.853-.954c-.204 2.238-.136 2.436.888 4.147 0 0-.273-2.633.034-2.962l2.25 2.337-1.26-3.324s1.397 2.106 2.25 1.91l-1.774-2.7 1.74 1.415-1.978-2.96 1.84.558s-1.33-1.677-1.227-2.73l1.262 1.382s-.477-1.58-.34-2.04l.647.132-1.262-1.448.853-.165-.102-.953.615-.197-.034-1.053m-1.093-.005c-2.184 2.96-1.058 7.535-2.354 9.87"/> - </g> - <use height="100%" width="100%" xlink:href="#b" transform="matrix(-1 0 0 1 499.86 0)"/> - <path d="M250.945 166.535s1.19-9.945 1.186-14.225c0-3.37-.813-10.835-.813-10.835H247.9s-.52 7.43-.442 10.79c.1 4.28 1.186 14.27 1.186 14.27h2.3z"/> - <path d="M247.674 141.953h3.96l-.465-2.666h-2.87l-.626 2.666z"/> - <path d="M247.927 139.816h3.54l-.668-2.666h-2.18l-.693 2.666z"/> - <path d="M248.155 137.655h2.95l-.5-2.666h-1.876l-.575 2.665z"/> - <path d="M250.71 134.673h-2.064l-.21.964h2.442l-.17-.964zm.422 29.694h-2.62m2.763-1.947h-2.94m3.329-1.976h-3.727m3.919-2.154h-3.9m3.927-2.15h-4.102m4.262-1.97h-4.45m4.46-1.79h-4.65m4.622-2.16h-4.65m4.495-2.136h-4.495m4.289-2.17H247.6m3.867-1.959h-3.672"/> - <path d="M249.91 119.044c-.69-.324-2.246-1.313-1.784-1.903l.713-1.213c1.01-2.277-.02-1.395-.127-2.106-.103-.68 3.865-.148 3.924 1.398.016.426-.295.176-.252 2.61l-.755 1.46c-.565.052-1.234-.015-1.72-.244z" fill="#0a328c" stroke="#0a328c"/> - <path d="M250.392 124.934l-.986-.83.273-7.105.964.282-.252 7.652z"/> - <path d="M251.672 119.246c.62-.362 1.024-1.443.65-2.085-1.016-1.286-1.673-.755-3.378-1.335-.34.362-1.055 1.06-.902 1.58 2.242 1.055 1.372.155 2.114.287.4.07.658.545 1.516 1.554z" fill="#d20014" stroke="#d20014"/> - </g> - <g transform="translate(-170.667) scale(1.70667)"> - <use height="100%" width="100%" xlink:href="#c" transform="matrix(1 0 0 -1 -.002 320.37)"/> - <path d="M238.358 161.75c0 1.3-.815 2.353-1.818 2.353-1.004 0-1.82-1.054-1.82-2.353v-1.276h3.638v1.276z" fill="#016a16" stroke="#fff" stroke-width=".181" stroke-linecap="round"/> - <ellipse cx="236.539" cy="160.063" rx="1.806" ry=".898" fill="#fff" stroke="none"/> - <path d="M236.126 161.075l-.31-3.297h1.382l-.226 3.297h-.846z" fill="#016a16" stroke="#f1b517"/> - <path id="c" d="M238.538 160.118c-.265.493-1.06.852-2 .852-.937 0-1.727-.36-1.992-.852a.756.756 0 0 0-.1.36c0 .668.938 1.21 2.093 1.21 1.154 0 2.09-.542 2.09-1.21a.748.748 0 0 0-.092-.36z" fill="#016a16" stroke="#fff" stroke-width=".237" stroke-linecap="round"/> - <g id="d"> - <path d="M246.035 172.786l-7.06-2.19-3.076-5.254-10.894-.535.378 3.94 9.28 1.777.882 1.58 10.666 2.97-.177-2.288z"/> - <path d="M238.662 174.254l-11.149-16.398-.547.41 11.06 16.468.636-.48z" fill="#503200"/> - <path d="M228.55 158.5l-1.19-1.992c-.222-.368-.56-.49-1.058-.228-.484.255-.437.76-.24 1.123l1.1 1.852 1.39-.755z" fill="#fff"/> - <path d="M239.986 164.127l-22.496-2.286-.547 3.272 22.387 2.25.656-3.235z"/> - <path d="M217.09 160.997l-.584 4.538h.948l.656-4.15-1.02-.388zm3.754.738l-.255 4.08.582.07.474-3.622-.802-.528zm15.241 1.759l-.547 3.834 1.094-.035.437-3.8h-.985zm3.351.106l-.78 4.433 1.24.18.353-2.332c.1.47.53.825 1.045.825.59 0 1.07-.464 1.07-1.032 0-.568-.48-1.026-1.07-1.026-.41 0-.78.24-.94.687l.23-1.662-1.15-.073zm-8.119.72l-3.094 3.48.36.424 3.972-2.71-1.238-1.195zm-7.193 8.68l3.094-3.482-.36-.423-3.972 2.71 1.238 1.195zm8.096-.87l-3.764-2.91-.387.272 2.964 3.756 1.186-1.12zm-9.282-6.717l3.816 2.81.464-.348-2.99-3.755-1.29 1.293zm4.152-2.319l.365 4.573.513-.022 1.207-4.452-2.085-.1zm1.25 11.096l-.364-4.574-.565-.053-.69 4.626h1.62zm5.06-6.164l-4.794.51-.073.457 4.85.634.018-1.6zm-11.407 1.584l4.68-.74.1-.365-4.842-.54.063 1.644z"/> - <ellipse cx="227.693" cy="168.548" rx="1.27" ry="1.225"/> - <path d="M234.438 168.548c0 3.592-3.022 6.507-6.745 6.507-3.723 0-6.745-2.915-6.745-6.507 0-3.592 3.022-6.507 6.745-6.507 3.723 0 6.745 2.916 6.745 6.508zm-1.347 0c0 2.874-2.418 5.207-5.397 5.207-2.98 0-5.398-2.333-5.398-5.207 0-2.874 2.42-5.207 5.398-5.207 2.98 0 5.398 2.334 5.398 5.208z" fill-rule="evenodd" stroke-linecap="round"/> - <path d="M223.48 165.264l-1.057-.796m8.611.025l.902-.92m1.031 9.127l-1.11-.87m-8.377 1.866l.954-1.02M246.196 162.122l1.155 5.886-.94.497-1.015-6.3.8-.083z"/> - <path d="M245.592 161.364c-.535-.224-1.232.155-2.374-1.292-1.878 1.723-.107 1.98.18 3.686.53.218.857-1.323 2.3-1.48.18-.02 2.3-.204 2.3-.204l-.533-.726s-1.474.04-1.873.016z" fill="#fff"/> - <path d="M246.36 162.518l-.215-1.756c-.232-.62-1-.087-1 .275l.197 1.62 1.017-.14z" fill="#fff"/> - <path d="M240.765 167.372l.02 1.637c-.537.182-.455.584-.438 1.167l.02 4.772c-.19.315-.78.33-1.055.578-.277.248-.242.73 1.02 1.047l.975.035c1.486-.325 1.793-.818 1.048-1.095-.397-.148-.92-.324-1.117-.557l.033-1.137.965.036c.26 0 .753-.652.77-1.185l.005-2.47c-.035-1.4-1.085-1.558-1.38-1.54l.02-1.29-.885.002zm1.63 2.73c.018-.4-.555-.757-.786-.767-.23-.01-.735.467-.752.867v1c.034.367.327 1.61.915 1.7.28.044.64-.4.64-.766l-.017-2.034z" fill-rule="evenodd"/> - <path d="M234.275 172.328c-.636-.257-.63 1.172-.63 1.172l1.002.01c.44.2.792.843.512 1.16-.232.26-2.178-.442-2.31-.038.345 1.94 2.918 2.688 3.85 1.84.91-.832 1.14-3.05-1.818-3.63l-.607-.514zm.595.528l-.292.64" fill="#fff"/> - <path d="M214.943 173.055l-.963-4.05m2.132 3.817l-1.48-3.153m4.026 2.324l-3.337-1.792m4.782 1.427l-6.192-2.688"/> - <path d="M210.215 166.013s-2.254-.036-2.656.122c-.163.064.566.825.415 1.115-.563 1.083-4.394.934-4.697.698-.52-.405 3.568-.753 3.595-1.03.03-.315-.605-1.145-.506-1.654.128-.66 1.788-.907 1.788-.907l2.06 1.656z" fill="#d20014" stroke="#d20014"/> - <path d="M213.233 168.05l-5.102-4.222s-.224-.238-.412-.033c-.184.2.07.43.07.43l5.262 4.35.183-.525z" fill="#503200"/> - <path d="M218.146 172.217c-.09-.087-4.155-3.608-4.155-3.608l-.27-1.03s-.628.426-.858.646c-.23.22-.587.82-.587.82l1.138.05 3.595 3.295 1.138-.173z"/> - <g> - <ellipse cx="232.534" cy="177.056" rx=".74" ry=".715"/> - <ellipse cx="230.641" cy="175.716" rx=".74" ry=".715"/> - <ellipse cx="228.091" cy="176.593" rx=".74" ry=".715"/> - <ellipse cx="224.153" cy="177.445" rx=".74" ry=".715"/> - <ellipse cx="222.487" cy="177.64" rx=".74" ry=".715"/> - <ellipse cx="220.846" cy="177.64" rx=".74" ry=".715"/> - <ellipse cx="219.18" cy="177.591" rx=".74" ry=".715"/> - <ellipse cx="219.988" cy="176.325" rx=".74" ry=".715"/> - <ellipse cx="221.604" cy="176.398" rx=".74" ry=".715"/> - <ellipse cx="223.144" cy="176.203" rx=".74" ry=".715"/> - <ellipse cx="222.361" cy="174.961" rx=".74" ry=".715"/> - <ellipse cx="220.846" cy="174.937" rx=".74" ry=".715"/> - </g> - <path d="M236.47 177.99c0-.315-.77-.18-.77-.55 0-.41 1.174-.11 1.336.253.66-.596.944-.16 1.348.02.575-.855 1.287-.823 1.98-.197.402-.443 1.41-.297 1.758.197.664-.66 1.255-.497 1.715-.02.186-.346.458-.27.654-.02.355-.628 1.243-.44 1.617-.024.332-.367.673-.08 1.114.19.298-.28.78-.228.78.05 0 .288-.63.187-.63.473 0 .256.46.127.46.45 0 .255-.68.35-.786-.056-.23.44-1.062.27-1.144-.138-.276.334-.897.435-1.246-.06-.286.234-.63.267-.787.03-.517.557-1.388.443-1.688-.17l-.295.013c-.508.69-1.302.37-1.52-.01-.853.615-1.362.42-1.838.02-.548.666-1.38.62-1.573 0-.368.267-1.137.33-1.137.017 0-.3.653-.192.653-.47zm1.655.15c0 .144-.195.26-.436.26-.24 0-.436-.116-.436-.26 0-.142.195-.26.435-.26s.435.118.435.26zm1.82-.217c0 .172-.235.312-.524.312-.288 0-.523-.14-.523-.312 0-.173.235-.312.524-.312.29 0 .525.14.525.313zm3.575.197c0 .175-.212.316-.474.316s-.474-.14-.474-.316c0-.174.212-.316.474-.316s.474.142.474.316zm-1.904-.083c0 .22-.207.4-.463.4s-.464-.18-.464-.4c0-.22.207-.4.463-.4s.463.18.463.4zm4.06.01c0 .198-.186.358-.414.358-.23 0-.415-.16-.415-.358 0-.197.186-.357.415-.357.228 0 .414.16.414.357zm-1.244.083c0 .128-.12.23-.267.23-.148 0-.268-.102-.268-.23 0-.127.12-.23.268-.23.147 0 .267.103.267.23zm2.422.094c0 .183-.135.33-.302.33-.166 0-.3-.147-.3-.33 0-.183.134-.332.3-.332.167 0 .302.15.302.332z" fill-rule="evenodd"/> - </g> - <use height="100%" width="100%" xlink:href="#d" transform="matrix(-1 0 0 1 499.86 0)"/> - <g stroke-width=".231"> - <path d="M249.837 165.718c-2.512 0-4.55.944-4.55 2.102 0 .2.057.39.17.572.542.63 2.306 1.087 4.397 1.087 1.957 0 3.625-.403 4.277-.97.165-.217.257-.447.257-.69 0-1.158-2.038-2.102-4.55-2.102z" fill="#0a328c" stroke="#0a328c"/> - <path d="M254.427 167.98v7.06c0 .827-2.048 1.498-4.572 1.498s-4.573-.67-4.573-1.5v-7.057c0 .83 2.05 1.5 4.573 1.5 2.524 0 4.572-.67 4.572-1.5z" stroke-width=".187"/> - <path d="M245.282 167.982v1.082l2.22 6.845 1.772-5.265 1.946 5.465 1.425-5.16 1.783 3.47v-1.92l-1.656-3.363a8.25 8.25 0 0 1-.593.134l-1.03 3.813-1.446-3.604a14.522 14.522 0 0 1-.715-.024l-1.454 3.627-1.66-4.367c-.377-.217-.594-.466-.594-.734z" fill="#d20014" stroke="#d20014" stroke-width=".183"/> - <path d="M254.427 173.72v1.32c0 .826-2.048 1.498-4.572 1.498s-4.573-.672-4.573-1.5v-1.317c0 .83 2.05 1.5 4.573 1.5 2.524 0 4.572-.67 4.572-1.5z" fill="#0a328c" stroke="#0a328c" stroke-width=".187"/> - <path d="M251.737 175.085c-.372.055-.77.097-1.185.118l.01 1.317c.418-.02.815-.062 1.187-.118l-.013-1.317zm-4.869-.23l-.012 1.312c.353.1.75.185 1.186.246v-1.317a8.907 8.907 0 0 1-1.174-.24zm-1.586-1.132v1.317c0 .246.185.474.506.68l.023-1.302c-.335-.21-.528-.443-.528-.695zm9.146.14l-.023.006c-.08.266-.38.515-.83.722l.005 1.312c.53-.245.848-.54.848-.863v-1.177z" stroke-width=".187"/> - <path d="M254.427 168.027v7.012c0 .827-2.048 1.498-4.572 1.498s-4.573-.67-4.573-1.5v-7.01" fill="none" stroke-width=".187"/> - <path d="M253.392 167.52c0 .5-1.584.907-3.537.907-1.954 0-3.538-.406-3.538-.907 0-.5 1.584-.907 3.538-.907 1.953 0 3.537.406 3.537.907z" fill="#fff" stroke="#fff" stroke-width=".192"/> - <path d="M248.698 168.19l.157 1.25c.307.022.626.038.953.04l.232-1.29h-1.342zm4.102-.303l-.91.247.057 1.177c.31-.052.602-.116.866-.19l-.012-1.233zm-5.403-1.907c-.26.075-.5.164-.72.262l.127.945.58-.185.013-1.023zm2.44-.374c-.122 0-.24.007-.36.01l.197 1.184.605-.012.237-1.154a9.727 9.727 0 0 0-.68-.028zm2.673.418l-.122 1.034.69.244.077-1.015a5.26 5.26 0 0 0-.645-.263z"/> - <path d="M245.993 168.8l.184-1.288-.935-.506.028 1.465.723.33zm8.403-.278l.042-1.288-.876.262.834 1.026z" stroke-width=".183"/> - </g> - <path d="M263.686 160.03c.83-.116 2.062 1.023 2.136 2.432.06 1.118-1.69 1.06-1.69 1.06-.09.458-1.055.88-1.84.916-.763.033.207-1.432.207-1.432-.476-1.26.147-2.748.147-2.748l1.04-.23z"/> - <path d="M262.5 162.948l.8-.03s.06.415.208.43c.157.018.326-.4.326-.4l1.217-.03"/> - <path d="M264.13 160.86c.68-.492.085-1.48-.385-1.49l-1.098.03c-.517.01-1.392.572-1.276 1.058.103.424.388.618.832.544.202-.033.626-.563.83-.572.276-.013.88.588 1.1.43z" fill="#d20014" stroke="#f1b517"/> - <path d="M214.242 174.855c-.617.078-.73.788-.5 1.44-2.686.756-5.086 1.74-7.455 2.406-.095-.473 1.174-1.844 1.174-1.844.337.162.588.93.588.93.084-1.578 1.64-2.628 1.64-2.628-.925-.122-3.733.967-4.07 1.412 0 0 1.088-.12 1.256 0 0 0-2.14 2.312-2.237 3 .333.75 4.027 1.31 4.027 1.31-.058.196-1.087.932-1.087.932 1.47.322 3.685-.718 4.347-1.35 0 0-1.728-.144-3.074-1.235 0 0 .277.68.11 1.004 0 0-2.1-.604-2.318-.952.006-.03 4.966-1.315 7.368-2 .088.428.565 1.238 1.138 1.047.374-.125.256-.866.117-1.39a.77.77 0 0 0 .505.185c.422 0 .767-.327.767-.735 0-.407-.345-.74-.767-.74a.755.755 0 0 0-.72.505c-.096-.453-.345-1.354-.808-1.295zm1.89 1.528c0 .19-.162.345-.36.345a.352.352 0 0 1-.357-.345c0-.19.16-.345.358-.345.197 0 .358.154.358.345z" fill-rule="evenodd"/> - <g> - <path d="M293.068 177.884c.183-.367-.162-2.212-.162-2.212-.373.042-.882.68-.882.68.48-1.51-.865-4.036-.865-4.036.91.19 3.944 3.128 4.102 3.657 0 0-1.33-.474-1.53-.415.217 1.506 1.258 2.205 1.65 2.988 0 0-1.726.38-1.553 1.822l-1.128.02c-.39-.48.152-1.275.152-1.275l-7.74-3.24c-.498-.21-1.62-.72-1.45-1.32.168-.603 2.015.252 2.47.4l6.934 2.93z"/> - <path d="M285.635 176.54l.91-1.672c.326-.44-.346-.92-.823-.356l-1.02 1.527c-.454.836.5 1.066.933.5z"/> - </g> - </g> - <g fill="#fff" stroke-width=".312"> - <path d="M224.2 307.825l-.108-3.114-3.766.208-.215 3.392 4.09-.485z"/> - <path d="M196.672 312.19l-5.037-2.824c20.768 1.903 25.01-5.34 30.028-5.728 3.085-.24 3.567 3.417-2.41 1.677l1.545 3.825s-14.743 8.294-29.234 4.868l5.108-1.817zm90.474-4.365l.107-3.114 4.607.107.215 3.39-4.93-.382z"/> - <path d="M315.63 311.428l4.74-2.586c-23.79.71-18.374-3.907-30.276-5.202-3.076-.333-5.388 3.62 2.41 1.677l-1.545 3.825 3.74.003c8.104 5.336 19.04 5.813 26.285 4.1l-5.355-1.817z"/> - <path d="M219.167 305.337v5.383s13.19 4.894 36.726 4.894c23.637 0 36.725-4.894 36.725-4.894v-5.383s-9.982 4.6-36.725 4.6c-26.642 0-36.726-4.6-36.726-4.6z"/> - </g> - <path d="M221.138 310.75l1.164-3.94.54.148-1.026 3.476 2.012.553-.137.465-2.552-.7zm3.817-1.733l.065-.774.174-.664.576.14-.174.663-.33.71-.31-.076zm5.675-.266l.55.11-.49 2.32c-.084.403-.2.714-.343.933-.145.22-.357.38-.635.48-.28.1-.618.11-1.02.03-.39-.075-.695-.203-.915-.38a1.143 1.143 0 0 1-.413-.668c-.054-.267-.036-.613.054-1.038l.49-2.32.55.108-.49 2.317c-.072.35-.093.613-.06.79.032.18.12.33.265.45.145.123.336.207.572.253.405.08.713.048.922-.095.21-.144.368-.467.474-.97l.49-2.32zm.62 4.285l.686-4.044.57.09 1.662 3.523.54-3.175.53.084-.685 4.044-.57-.09-1.662-3.525-.538 3.18-.532-.085zm4.337.655l.583-4.06.557.075-.583 4.06-.557-.075zm1.6-1.79c.08-.676.33-1.185.752-1.525.42-.34.93-.48 1.524-.413.39.043.73.17 1.02.385.293.214.502.49.628.83.126.34.165.713.117 1.12a2.36 2.36 0 0 1-.392 1.08c-.21.307-.485.527-.82.66-.338.132-.69.178-1.056.138a2.05 2.05 0 0 1-1.032-.396c-.29-.22-.498-.5-.622-.837a2.237 2.237 0 0 1-.12-1.043zm.575.07c-.058.492.032.894.273 1.206.24.313.566.492.98.537.42.047.782-.058 1.087-.313.305-.255.49-.645.55-1.17a2.03 2.03 0 0 0-.07-.886 1.3 1.3 0 0 0-.442-.63 1.418 1.418 0 0 0-.728-.288c-.396-.044-.75.05-1.067.28-.316.23-.51.653-.583 1.265zm3.94 2.418l.346-4.084.574.045 1.952 3.382.272-3.207.537.042-.346 4.085-.575-.046-1.95-3.385-.273 3.21-.54-.042zm5.954.415l.186-4.095 2.863.12-.022.484-2.3-.097-.06 1.268 1.993.084-.022.483-1.992-.084-.084 1.86-.56-.024zm3.13.133l1.713-4.067.604.01 1.656 4.13-.64-.01-.47-1.25-1.776-.034-.492 1.232-.596-.012zm1.26-1.66l1.44.027-.422-1.143a10.906 10.906 0 0 1-.284-.855c-.06.262-.14.52-.245.778l-.49 1.193zm3.265 1.725l.01-4.097h.562l-.01 4.1-.56-.002zm2.633-.01l-.054-3.615-1.4.02-.007-.484 3.367-.045.006.483-1.405.02.055 3.614-.562.008zm4.168-.1l-.198-4.093.562-.025.175 3.61 2.088-.094.024.483-2.65.12zm2.86-.124l1.324-4.2.604-.04 2.036 3.968-.638.044-.586-1.204-1.772.122-.374 1.27-.595.04zm1.097-1.762l1.437-.1-.526-1.1a11 11 0 0 1-.363-.828 5.246 5.246 0 0 1-.17.797l-.378 1.23zm4.987 1.294l-.466-4.074 2.848-.303.055.482-2.288.244.144 1.26 1.98-.21.056.48-1.98.212.21 1.85-.558.06zm3.115-2.34c-.1-.672.01-1.225.327-1.658.318-.432.774-.69 1.367-.77a2.09 2.09 0 0 1 1.09.123c.338.136.612.353.823.65.21.298.346.65.406 1.055.06.412.03.792-.095 1.14a1.72 1.72 0 0 1-.622.838c-.29.21-.62.34-.984.39a2.056 2.056 0 0 1-1.102-.13 1.85 1.85 0 0 1-.82-.657 2.265 2.265 0 0 1-.39-.98zm.574-.07c.072.49.265.856.58 1.1.313.243.676.337 1.087.28.42-.057.744-.247.972-.568.23-.322.304-.743.227-1.265a2.05 2.05 0 0 0-.302-.84 1.333 1.333 0 0 0-.593-.504 1.437 1.437 0 0 0-.78-.1 1.45 1.45 0 0 0-.96.532c-.244.3-.322.756-.23 1.366zm4.46 1.376l-.758-4.032 1.853-.325c.372-.065.662-.078.87-.04.207.04.385.14.536.303.15.163.246.355.288.577a1 1 0 0 1-.152.774c-.155.23-.428.407-.82.53.16.043.284.09.373.143.188.115.375.267.56.456l.933.97-.696.12-.71-.74a7.93 7.93 0 0 0-.504-.487 1.31 1.31 0 0 0-.332-.22.872.872 0 0 0-.272-.063c-.066-.002-.17.01-.312.034l-.64.113.336 1.79-.554.097zm.13-2.35l1.19-.208c.25-.044.444-.104.577-.18a.627.627 0 0 0 .324-.68.61.61 0 0 0-.304-.432c-.166-.098-.405-.12-.714-.065l-1.323.23.25 1.335zm6.71-.446l.578.015c-.013.46-.143.836-.388 1.13-.246.292-.584.486-1.016.58-.446.096-.83.088-1.15-.027a1.738 1.738 0 0 1-.817-.624 2.74 2.74 0 0 1-.47-1.024c-.096-.416-.098-.797-.005-1.143.092-.346.272-.632.54-.86.265-.226.582-.38.947-.46.415-.09.787-.063 1.117.08.33.142.593.385.79.73l-.51.24c-.165-.27-.353-.45-.567-.544a1.19 1.19 0 0 0-.736-.05c-.32.07-.568.202-.747.396-.18.193-.284.424-.313.69-.03.268-.012.533.05.797.08.34.2.625.36.857.163.23.367.386.613.464.246.078.495.09.748.035.307-.067.547-.21.72-.426.173-.217.258-.502.255-.855zm1.56 1.114l-1.142-3.947 2.958-.797.135.466-2.417.65.35 1.21 2.263-.61.135.463-2.263.61.39 1.344 2.51-.676.135.466-3.053.822z" fill="#000" stroke="none"/> - </g> -</svg> diff --git a/img/flags/1x1/hu.svg b/img/flags/1x1/hu.svg deleted file mode 100644 index d2b40b4..0000000 --- a/img/flags/1x1/hu.svg +++ /dev/null @@ -1,7 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" height="512" width="512" viewBox="0 0 512 512"> - <g fill-rule="evenodd"> - <path fill="#fff" d="M512.004 511.985H0V0h512.004z"/> - <path fill="#388d00" d="M512.004 511.985H0V341.323h512.004z"/> - <path fill="#d43516" d="M512.004 170.8H0V.137h512.004z"/> - </g> -</svg> diff --git a/img/flags/1x1/id.svg b/img/flags/1x1/id.svg deleted file mode 100644 index 5772afb..0000000 --- a/img/flags/1x1/id.svg +++ /dev/null @@ -1,6 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" height="512" width="512" viewBox="0 0 512 512"> - <g stroke-width="1pt" fill-rule="evenodd"> - <path fill="#e70011" d="M0 0h511.966v265.543H0z"/> - <path fill="#fff" d="M0 256h511.966v256H0z"/> - </g> -</svg> diff --git a/img/flags/1x1/ie.svg b/img/flags/1x1/ie.svg deleted file mode 100644 index 6b44322..0000000 --- a/img/flags/1x1/ie.svg +++ /dev/null @@ -1,7 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" height="512" width="512" viewBox="0 0 512 512"> - <g fill-rule="evenodd" stroke-width="1pt"> - <path fill="#fff" d="M0 0h511.994v512.002H0z"/> - <path fill="#009A49" d="M0 0h170.667v512.002H0z"/> - <path fill="#FF7900" d="M341.333 0H512v512.002H341.333z"/> - </g> -</svg> diff --git a/img/flags/1x1/il.svg b/img/flags/1x1/il.svg deleted file mode 100644 index 1359160..0000000 --- a/img/flags/1x1/il.svg +++ /dev/null @@ -1,14 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" height="512" width="512" viewBox="0 0 512 512"> - <defs> - <clipPath id="a"> - <path fill-opacity=".67" d="M0 0h512v512H0z"/> - </clipPath> - </defs> - <g fill-rule="evenodd" clip-path="url(#a)"> - <path fill="#fff" d="M619.43 512H-112V0h731.43z"/> - <path fill="#00c" d="M619.43 115.23H-112V48.003h731.43zm0 350.45H-112v-67.227h731.43zm-483-274.9l110.12 191.54 112.49-190.75-222.61-.79z"/> - <path d="M225.75 317.81l20.95 35.506 21.4-35.36-42.35-.145z" fill="#fff"/> - <path d="M136.02 320.58l110.13-191.54 112.48 190.75-222.61.79z" fill="#00c"/> - <path d="M225.75 191.61l20.95-35.506 21.4 35.36-42.35.145zm-43.78 79.5l-21.64 35.982 40.9-.127-19.26-35.855zm-21.27-66.5l41.225.29-19.834 36.26-21.39-36.55zm151.24 66.91l20.83 35.576-41.71-.533 20.88-35.043zm20.45-66.91l-41.225.29L311 241.16l21.39-36.55zm-114.27-.04l-28.394 51.515 28.8 50.297 52.73 1.217 32.044-51.515-29.61-51.92-55.572.405z" fill="#fff"/> - </g> -</svg> diff --git a/img/flags/1x1/im.svg b/img/flags/1x1/im.svg deleted file mode 100644 index 6143f5b..0000000 --- a/img/flags/1x1/im.svg +++ /dev/null @@ -1,36 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" height="512" width="512" viewBox="0 0 512 512"> - <defs> - <clipPath id="a"> - <path fill-opacity=".67" d="M148.24 0h744.09v744.09H148.24z"/> - </clipPath> - </defs> - <g clip-path="url(#a)" transform="matrix(.7 0 0 .7 -102 0)"> - <path fill-rule="evenodd" fill="#ba0000" d="M1063 744.09H0V0h1063z"/> - <path d="M556.648 546.465c.29-.88.877-9.946.584-9.946s-13.747-15.795-13.454-15.795 17.257 3.803 17.257 3.217c0-.584 6.727-16.67 6.727-16.964 0-.29 8.19 19.597 8.19 19.597l16.67 7.313-11.7 9.65s2.634 18.72 2.634 19.014c0 .29-11.7-11.116-11.7-11.116l-12.87 1.463s-1.754-5.85-2.338-6.435z" fill-rule="evenodd" fill-opacity=".988" stroke="#000" stroke-width="3.203" fill="#ffef00"/> - <path d="M466.026 300.69c-11.114 5.722-53.768 54.478-59.618 62.082-4.9 11.04-14.487 25.006-24.362 33.996-10.54 7.974-16.397 18.867-14.945 29.18-.117 12.835 7.078 21.573 12.81 30.604 3.393 4.125 7.958 6.79 12.81 7.116 9.957 1.314 10.84 4.38 15.824 6.278 19.628 26.725 48.91 46.433 70 62.044 13.44 7.085 22.79 14.17 25.992 18.038 6.174 11.79 5.038 23.285 4.192 28.933-5.218 19.692-10.44 39.383-15.657 59.074-2.632 16.087 11.348 12.47 12.1 9.252 6.31-8.19 15.724-2.438 29.178-49.82 6.167-8.304 12.337-16.607 18.504-24.91 0 0 7.12-2.847 7.12-3.558 10.822-12.995 2.58-20.433-3.562-22.773-4.507-1.66-9.014-3.323-13.52-4.983 0 0-15.658-15.657-16.37-15.657-7.44-21.644-43.96-67.85-52.443-74.285-5.872-6.12-8.666-8.726-14.24-12.13-8.57-4.1-11.335-5.433-16.584-7.528-4.37-1.753-1.26-6.55 1.52-8.745 28.926-15.746 51.856-33.245 79.612-51.038 1.422-.95 2.847-1.9 4.27-2.848-3.32-18.978-6.644-37.957-9.964-56.935l-46.26-16.37c-2.426 1.66-4.268 3.322-6.404 4.982z" fill-rule="evenodd" stroke="#000" stroke-width="3.832" fill="#fff"/> - <path d="M504.73 600.45c.147-.584 28.955-5.85 28.955-5.85s-3.363 10.676-3.51 10.676l-28.662 8.627 3.217-13.454z" fill-rule="evenodd" fill="#ffec00"/> - <path d="M429.652 491.976c5.557-14.77 20.983-26.465 31.345-29.692" stroke="#000" stroke-width="3.203" fill="none"/> - <path d="M503.697 600.69c1.86-.524 10.117-2.934 12.522-3.31 2.565-.6 5.12-1.272 7.586-2.067 2.847-.582 4.63-1.117 7.587-1.656 2.316-.884 4.606-1.49 7.083-2.068M498.48 618.5c.24-.322 2.204-2.057 3.615-2.895 1.66-.524 7.337-2.934 9.485-3.31 2.292-.6 4.572-1.272 6.775-2.067 2.544-.582 4.134-1.117 6.777-1.655 2.07-.885 4.113-1.49 6.324-2.07" stroke="#000" stroke-width="3.541" fill="none"/> - <path d="M510.184 496.157h-.413c1.296 0 .5-.108-1.242 2.068-.62 1.672-5.93 5.377-9.927 5.377-1.928.207-4.893.413-6.824.413-.55 0-1.31-.413-1.862-.413m19.859 77.748h2.066c2.145 0 4.298.38 6.205.413 2.07 0 4.137.586 6.206.586 2.088.294 4.603.198 6.763.506 2.422.082 4.365.56 6.885.56 2.034.076 3.13.415 5.38.415l-5.38-.414c2.034.076 3.13.415 5.38.415m-47.583 47.995c.22-.322 2.018-2.057 3.308-2.895 1.52-.523 6.72-2.932 8.687-3.307 2.098-.6 4.186-1.274 6.204-2.07 2.33-.58 3.786-1.116 6.205-1.654 1.897-.885 3.768-1.49 5.79-2.07m8.559-59.91c-1.17 3.396.345 4.25.972 5.715 1.09 1.42 3.875 3.584 8.274 4.963 1.696.457 3 .904 4.964 1.656 1.3.12 1.94.444 2.895.826M370.79 435.35h.414c-1.297 0-.52.084 1.655-1.656 1.342-1.5 2.464-2.18 3.72-3.72m20.976 34.83c.276 0 24.063-11.988 26.602-14.55 1.8-1.304 3.162-2.68 5.35-4.163 1.404-.732 2.41-1.67 3.725-2.48 1.093-1.584 2.52-2.54 3.308-3.99 1.46-1.265.834-2.637 2.018-4.162.56-1.562 1.607-4.193 1.948-5.622m30.301 17.789c.13.856-.38 3.49-.344 5.497-.08 2.326-3.073 9.51-6.688 11.655" stroke="#000" stroke-width="3.203" fill="none"/> - <path d="M428.066 447.362c.14 0 3.76 1.177 9.812 3.04 7.285 2.618 22.435 12.165 23.94 13.48 1.534 1.208 4.28 2.287 5.332 3.72 1.646 1.423 2.852 3.064 4.137 4.55 1.51 1.844 2.8 3.403 3.722 4.965 4.6 3.73 16.975 29.565 17.37 31.023a62.84 62.84 0 0 1 2.07 4.55c.918 1.058 1.54 2.552 2.482 4.138.865 2.056 1.833 2.993 2.897 4.55 1.368.952 3.214 2.758 4.963 3.722 1.864 1.595 3.613 2.244 4.963 3.31 1.95.83 23.75 14.61 24.763 15.3 1.99 1.6 8.07 7.9 3.802 12.485-1.812 1.55-3.443 3.602-4.99 4.48-1.576 1.577-3.77 2.283-5.58 3.1-9.823 2.902-14.825 1.862-16.756 1.862h-2.07M379.92 398.64c2.792 1.092 1.665.285 4.178 1.43 1.69.74 2.802.758 4.462 1.363 1.76.565 6.68 1.452 9.045 3.825 1.735 1.567 3.058 2.89 4.964 4.034 2.252 1.554 3.88 2.246 6.673 3.412 2.357.88 4.992 1.86 7.375 1.943 2.477.144 3.07.022 5.447.022h5.792-5.792 5.792" stroke="#000" stroke-width="3.203" fill="none"/> - <path d="M379.272 426.244c6.203-.413 16.543 1.45 16.75 1.45l13.65-.208c7.172-.692 8.756-3.447 9.928-5.38 2.688-4.134 4.55-5.582 6.62-8.684 3.307-2.482 7.86 3.308 8.066 3.308 11.58 10.963 2.273 24.405 1.653 24.818-5.79 5.31-7.033 5.653-10.548 2.275-3.517-4.137-4.55-5.996-7.445-7.445-5.583-2.69-17.166-.62-17.375-.62-.206 0-5.997 2.275-5.997 2.275-2.827 1.033-4.62 3.517-9.513 4.34-4.964.347-6.62-.136-9.1-4.133-3.31-5.17-1.656-11.376 3.31-11.996z" fill-rule="evenodd" stroke="#000" stroke-width="3.203" fill="#ffe606"/> - <path d="M703.114 175.363c-.91.178-9.1 4.11-8.956 4.366s-7.03 19.722-7.174 19.466-5.142-16.906-5.653-16.62c-.508.287-17.827 2.307-18.083 2.45-.253.144 13.07-16.742 13.07-16.742l-1.796-18.116 14.147 5.47s15.028-11.47 15.283-11.614c.253-.142-3.956 15.647-3.956 15.647l7.583 10.502s-4.24 4.396-4.463 5.19z" fill-rule="evenodd" fill-opacity=".988" stroke="#000" stroke-width="3.203" fill="#ffef00"/> - <path d="M533.29 374.804c10.434 6.884 73.837 20.17 83.332 21.543 12.025-1.138 28.897.373 41.572 4.575 12.116 5.28 24.482 5.046 32.76-1.273 11.246-6.188 15.336-16.742 20.4-26.165 1.932-4.98 2.02-10.264-.076-14.654-3.734-9.32-1.495-11.594-2.282-16.868 13.676-30.207 16.505-65.39 19.778-91.423-.412-15.19 1.183-26.81 2.985-31.498 7.25-11.16 17.827-15.803 23.165-17.834 19.72-5.1 39.444-10.2 59.165-15.302 15.313-5.588 5.308-16 2.135-15.08-10.23-1.486-9.83-12.512-57.727-1.018l-30.78-3.923s-5.97-4.81-6.59-4.46c-16.632-3.067-19.078 7.76-18.107 14.263.763 4.742 1.523 9.486 2.284 14.228 0 0-5.974 21.32-5.626 21.94-15.22 17.094-37.877 71.982-39.328 82.53-.687 9.91-4.43 8.12-3.427 17.755.038 7.53-.838 2.83 1.675 18.34.613 4.668-5.094 4.307-8.368 2.96-27.9-17.5-54.393-28.91-83.505-44.384l-4.574-2.326-44.744 36.586 8.4 48.347c2.637 1.302 4.99 2.093 7.483 3.14z" fill-rule="evenodd" stroke="#000" stroke-width="3.832" fill="#fff"/> - <path d="M775.614 194.163c-.58.158-19.29-22.373-19.29-22.373s10.956-2.3 11.028-2.172l21.566 20.755-13.304 3.79z" fill-rule="evenodd" fill="#ffec00"/> - <path d="M717.855 312.766c-15.598 2.395-33.353-5.32-41.244-12.772" stroke="#000" stroke-width="3.203" fill="none"/> - <path d="M776.33 194.945c-1.368-1.364-7.515-7.38-9.02-9.293-1.78-1.943-3.62-3.84-5.522-5.6-1.902-2.197-3.242-3.488-5.16-5.802-1.906-1.586-3.556-3.285-5.275-5.16m43.06 21.673c-.4-.052-2.873-.913-4.295-1.73-1.27-1.192-6.152-4.96-7.532-6.648-1.647-1.703-3.35-3.36-5.123-4.892-1.754-1.933-3-3.056-4.764-5.096-1.786-1.37-3.316-2.856-4.903-4.5" stroke="#000" stroke-width="3.541" fill="none"/> - <path d="M682.033 240.52l.202.36c-.635-1.13-.34-.383 2.412.07 1.76-.28 7.592 2.532 9.552 6.017 1.124 1.58 2.757 4.063 3.704 5.747.27.48.28 1.344.552 1.826m58.038-55.415l-.203-.36-.81-1.44c-1.05-1.87-1.773-3.935-2.68-5.613-1.014-1.803-1.517-3.893-2.53-5.696-.766-1.965-2.083-4.11-2.873-6.144-1.116-2.15-1.652-4.08-2.887-6.276-.93-1.81-1.17-2.93-2.274-4.893l2.274 4.893c-.93-1.81-1.17-2.93-2.274-4.893m65.156 17.957c-.39-.035-2.782-.75-4.145-1.465-1.202-1.07-5.85-4.42-7.14-5.95-1.553-1.535-3.162-3.025-4.844-4.395-1.65-1.746-2.83-2.753-4.485-4.598-1.7-1.22-3.144-2.554-4.64-4.033M725.72 188.12c3.535-.645 3.536-2.384 4.506-3.65.703-1.646 1.225-5.134.272-9.644-.434-1.702-.683-3.058-.99-5.138-.532-1.192-.563-1.908-.698-2.928m-31.47 225.065l-.2-.36c.634 1.13.326.41-2.256-.632-1.967-.435-3.11-1.08-5.067-1.42M709.9 354.06c-.136-.24-22.243-15.1-25.72-16.058-2.02-.93-3.887-1.442-6.25-2.623-1.328-.865-2.64-1.282-3.99-2.03-1.916-.178-3.448-.953-5.097-.93-1.82-.653-2.708.566-4.62.28-1.634.278-4.44.655-5.854 1.058m.658-35.13c.682-.532 3.23-1.38 4.96-2.394 2.067-1.07 9.795-1.982 13.437.118" stroke="#000" stroke-width="3.203" fill="none"/> - <path d="M679.743 336.012c-.068-.12-.817-3.854-2.16-10.042-1.287-7.633-.39-25.518.02-27.473.3-1.93-.105-4.852.63-6.473.433-2.13 1.272-3.987 1.938-5.836.867-2.22 1.595-4.107 2.504-5.676.998-5.84 17.452-29.287 18.53-30.347a62.736 62.736 0 0 1 2.952-4.033c.47-1.318 1.47-2.593 2.39-4.19 1.368-1.763 1.71-3.066 2.546-4.757.158-1.66.83-4.153.81-6.15.478-2.407.187-4.25.455-5.95-.234-2.106 1.095-27.862 1.2-29.082.42-2.52 2.932-10.91 9.02-9.434 2.238.82 4.826 1.235 6.35 2.154 2.147.6 3.838 2.166 5.438 3.345 7.343 7.138 8.887 12.008 9.834 13.69l1.013 1.805M660.75 401.014l-.2-.36c.546.973.243.488-.452-1.646-.183-1.835-.75-4.317-1.035-6.06-.37-1.812-1.22-3.876-.99-5.14-.648-1.84-.24-3.358-.066-5.18.515-2.28.748-3.93.81-6.152.252-2.726.05-4.658.206-7.234-.718-2.12-.865-3.896-1.96-6.015-.973-2.026-1.718-3.9-2.883-5.972l-2.838-5.05 2.838 5.05-2.838-5.05" stroke="#000" stroke-width="3.203" fill="none"/> - <path d="M685.248 388.895c-3.4-5.205-6.845-15.13-6.946-15.31 0-.003-6.87-11.8-6.87-11.8-4.118-5.91-7.296-5.94-9.554-6.016-4.922-.318-7.097-1.23-10.815-1.514-3.784-1.667-.968-8.474-1.07-8.654 3.88-15.466 20.16-13.94 20.824-13.603 7.465 2.444 8.373 3.358 7.152 8.078-1.884 5.093-3 6.905-2.843 10.138.393 6.185 7.873 15.267 7.975 15.45.1.18 4.922 4.11 4.922 4.11 2.286 1.96 5.33 2.305 8.447 6.167 2.735 4.157 3.125 5.837.857 9.96-2.886 5.416-9.105 7.017-12.08 2.992z" fill-rule="evenodd" stroke="#000" stroke-width="3.203" fill="#ffe606"/> - <path d="M301.203 245.146c.647.663 8.423 5.36 8.558 5.1s20.353-4.922 20.218-4.662-11.327 13.563-10.807 13.833c.52.27 11.697 13.652 11.957 13.787.258.134-21.166-1.76-21.166-1.76l-14.17 11.424-3.175-14.83s-17.827-6.29-18.088-6.424c-.258-.134 15.257-5.262 15.257-5.262l4.632-12.096s6 1.14 6.787.89z" fill-rule="evenodd" fill-opacity=".988" stroke="#000" stroke-width="3.203" fill="#ffef00"/> - <path d="M561.083 277.965c.042-12.5-23.575-72.82-27.628-81.516-7.54-9.438-15.517-24.38-18.945-37.286-2.22-13.028-9.19-23.245-19.01-26.71-11.337-6.018-22.408-3.658-33.064-2.732-5.224 1.11-9.694 3.932-12.218 8.09-5.754 8.23-8.882 7.602-12.862 11.15-32.763 5.106-63.746 22.012-87.318 33.536-12.48 8.665-23.077 13.697-27.985 14.757-13.308.047-22.987-6.258-27.61-9.61-15.07-13.705-30.14-27.412-45.212-41.116-13.063-9.75-16.294 4.324-13.785 6.474 4.362 9.373-5.08 15.08 30.77 48.85 4.528 9.3 9.054 18.602 13.58 27.9 0 0-.752 7.63-.12 7.958 6.545 15.593 16.944 11.707 21.85 7.333l10.653-9.704s21.11-6.68 21.438-7.31c22.637 3.368 80.967-7.745 90.586-12.31 8.668-4.854 9.22-.742 16.73-6.86 6.278-4.154 2.826-.846 14.425-11.445 3.57-3.07 6.394 1.9 7.06 5.38.646 32.926 5.612 61.34 8.614 94.17.188 1.7.374 3.402.56 5.102l55.12 17.39 35.844-33.51c-.355-2.92-.982-5.32-1.47-7.982z" fill-rule="evenodd" stroke="#000" stroke-width="3.832" fill="#fff"/> - <path d="M277.215 174.195c.45.4-8.15 28.392-8.15 28.392s-7.926-7.904-7.858-8.034l5.55-29.413 10.458 9.055z" fill-rule="evenodd" fill="#ffec00"/> - <path d="M408.077 157.544c10.55 11.738 13.82 30.818 11.91 41.5" stroke="#000" stroke-width="3.203" fill="none"/> - <path d="M277.478 173.167c-.392 1.892-2.06 10.33-2.834 12.637-.65 2.554-1.23 5.13-1.66 7.687-.796 2.796-1.142 4.625-2.027 7.497-.282 2.463-.8 4.774-1.428 7.24m-5.457-47.896c.175.362.81 2.904.904 4.542-.3 1.714-.777 7.863-1.434 9.942-.523 2.31-.977 4.644-1.286 6.966-.656 2.526-.914 4.184-1.654 6.777-.168 2.244-.573 4.337-1.078 6.566" stroke="#000" stroke-width="3.541" fill="none"/> - <path d="M367.26 227.09l.19-.367c-.596 1.15-.133.493-1.262-2.056-1.2-1.32-2.04-7.74-.198-11.287.705-1.808 1.888-4.534 2.778-6.248.254-.49.97-.972 1.225-1.462m-78.153-18.197l-.19.367-.76 1.467c-.99 1.904-2.32 3.638-3.227 5.317-.953 1.836-2.427 3.4-3.38 5.237-1.224 1.718-2.298 3.994-3.566 5.77-1.188 2.11-2.508 3.616-3.67 5.853-1.004 1.768-1.81 2.584-2.847 4.582l2.848-4.582c-1.005 1.768-1.81 2.584-2.848 4.582m-20.67-64.346c.184.345.896 2.74 1.046 4.27-.236 1.59-.493 7.316-1.067 9.235-.435 2.138-.8 4.3-1.024 6.458-.558 2.336-.753 3.875-1.39 6.27-.09 2.09-.414 4.03-.832 6.092m49.227 35.2c-2.474-2.604-3.93-1.65-5.52-1.77-1.762.314-4.966 1.788-8.217 5.056-1.187 1.296-2.184 2.248-3.756 3.644-.706 1.098-1.288 1.516-2.068 2.188m205.526-96.965l-.19.366c.597-1.15.164-.5.706 2.232.715 1.884.8 3.193 1.59 5.018m-40.579 2.564c-.127.246-.448 26.88.655 30.314.33 2.198.923 4.042 1.23 6.667.004 1.582.373 2.908.486 4.448.902 1.7 1.093 3.406 2.016 4.773.45 1.88 1.956 1.957 2.764 3.71 1.128 1.217 2.98 3.36 4.09 4.32m-29.748 18.694c-.82-.28-2.923-1.945-4.72-2.837-2.027-1.145-7.024-7.11-7.262-11.307" stroke="#000" stroke-width="3.203" fill="none"/> - <path d="M448.403 176.694c-.064.124-2.777 2.795-7.218 7.308-5.68 5.258-21.135 14.304-22.994 15.034-1.78.805-4.002 2.745-5.76 3.018-2.02.806-4.032 1.12-5.944 1.575-2.332.49-4.31.916-6.12 1.015-5.43 2.364-34.06 1.443-35.538 1.123a63.599 63.599 0 0 1-4.99-.26c-1.362.327-2.975.19-4.817.296-2.222-.18-3.5.247-5.372.475-1.475.776-3.93 1.58-5.59 2.69-2.275.918-3.656 2.172-5.225 2.88-1.635 1.348-23.91 14.346-24.988 14.926-2.337 1.03-10.732 3.523-12.833-2.378-.54-2.322-1.61-4.715-1.675-6.492-.675-2.126-.29-4.398-.18-6.382 1.948-10.054 5.176-14.014 6.066-15.728l.953-1.836m207.008-36.983l-.19.366c.514-.99.274-.47-1.13 1.28-1.435 1.158-3.202 2.99-4.504 4.185-1.312 1.303-2.574 3.144-3.756 3.643-1.184 1.55-2.68 2.042-4.3 2.895-2.19.817-3.696 1.526-5.59 2.69-2.417 1.284-3.923 2.51-6.163 3.792-1.38 1.762-2.786 2.857-3.96 4.934-1.16 1.924-2.32 3.574-3.415 5.683l-2.67 5.14 2.67-5.14-2.67 5.14m17.082 106.269l.38-.735c-.704 1.358-.457 1.002.206-1.29.006-2.75.66-6.077.686-8.502.413-2.568.832-5.342.86-7.943-.157-3.042-.152-5.768-.607-8.703-.035-2.702-.35-5.502-.43-8.148-.05-2.622-.246-4.867-.815-7.412-.052-1.906-.17-4.52-.633-6.855.248-1.84-.275-3.532-.667-5.005-.712-2.835-.988-4.49-1.736-7.427-.45-1.574-.894-3.586-1.573-5.944-.244-2.234-1.44-5.134-1.926-7.06-.664-1.417-1.334-3.334-1.59-5.02-.696-1.553-1.686-3.45-1.956-5.21-.733-1.34-1.513-3.427-2.323-5.4-.698-1.623-1.212-3.622-1.955-5.21-.75-2.007-1.664-3.722-2.132-5.767-.717-.695-.88-1.456-1.264-2.054" stroke="#000" stroke-width="3.203" fill="none"/> - <path d="M489.628 143.12c-2.49 5.695-8.908 14.015-9.004 14.198l-6.106 12.21c-2.69 6.684-.974 9.36.2 11.29 2.43 4.29 2.858 6.61 4.658 9.875.678 4.08-6.558 5.452-6.654 5.636-15.064 5.225-22.706-9.23-22.787-9.97-2.044-7.585-1.777-8.845 2.84-10.408 5.293-1.216 7.42-1.276 10.04-3.177 4.958-3.717 8.46-14.95 8.555-15.135.095-.183.744-6.37.744-6.37.386-2.986-.993-5.72.53-10.444 1.98-4.565 3.172-5.81 7.864-6.172 6.112-.553 10.858 3.773 9.12 8.466z" fill-rule="evenodd" stroke="#000" stroke-width="3.203" fill="#ffe606"/> - <path d="M469.84 290.15c-2.276-2.067 42.81 16.337 49.014 16.546 8.48-3.102 43.433-32.676 43.433-32.676.345 2.895 1.584 10.41 4.96 11.996-13.51 10.962-25.78 21.508-39.292 32.468.966 17.373-2.205 35.78 6.618 55.22 0 0-10.546.206-10.546 0-9.307-9.306-12.618-54.184-12.618-54.184-14.822-6.62-29.645-13.03-44.466-19.648 2.138-1.38 3.86-5.652 2.896-9.722z" fill-rule="evenodd" fill-opacity=".987" stroke="#000" stroke-width="3.203" fill="#ffef00"/> - <path d="M512.74 336.15c.72-.523-8.133 4.113-10.407 5.277-40.96 21.85-62.04 53.634-63.354 54.835-.71 1.354-2.012 3.16-3.205 4.93-.96 1.482-2.338 3.017-3.246 4.517-1.256 1.737-3.894 5.17-5.335 6.693-.18.982.683-.336.4.317M540.73 310.18c-.795-.402 7.378 5.35 9.453 6.84 38.166 26.43 76.072 30.638 77.74 31.257 1.53.01 3.73.343 5.85.595 1.758.175 3.752.698 5.502.82 2.12.32 6.378 1.096 8.393 1.68.954-.29-.61-.452.098-.5" stroke="#000" stroke-width="3.203" fill="none"/> - </g> -</svg> diff --git a/img/flags/1x1/in.svg b/img/flags/1x1/in.svg deleted file mode 100644 index 9dbf204..0000000 --- a/img/flags/1x1/in.svg +++ /dev/null @@ -1,25 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" height="512" width="512" viewBox="0 0 512 512"> - <path fill="#f93" d="M0 0h512v170.667H0z"/> - <path fill="#fff" d="M0 170.667h512v170.667H0z"/> - <path fill="#128807" d="M0 341.333h512V512H0z"/> - <g transform="translate(256 256) scale(3.41333)"> - <circle r="20" fill="#008"/> - <circle r="17.5" fill="#fff"/> - <circle r="3.5" fill="#008"/> - <g id="d"> - <g id="c"> - <g id="b"> - <g id="a" fill="#008"> - <circle r=".875" transform="rotate(7.5 -8.75 133.5)"/> - <path d="M0 17.5L.6 7 0 2l-.6 5L0 17.5z"/> - </g> - <use height="100%" width="100%" xlink:href="#a" transform="rotate(15)"/> - </g> - <use height="100%" width="100%" xlink:href="#b" transform="rotate(30)"/> - </g> - <use height="100%" width="100%" xlink:href="#c" transform="rotate(60)"/> - </g> - <use height="100%" width="100%" xlink:href="#d" transform="rotate(120)"/> - <use height="100%" width="100%" xlink:href="#d" transform="rotate(-120)"/> - </g> -</svg> diff --git a/img/flags/1x1/io.svg b/img/flags/1x1/io.svg deleted file mode 100644 index 585e76e..0000000 --- a/img/flags/1x1/io.svg +++ /dev/null @@ -1,154 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" height="512" width="512" viewBox="0 0 512 512"> - <defs> - <clipPath id="a"> - <path fill-opacity=".67" d="M0 0h512v512H0z"/> - </clipPath> - </defs> - <g clip-path="url(#a)"> - <g fill-rule="evenodd"> - <path fill="#fff" d="M0 0h1023.977v511.984H0z"/> - <path d="M1023.977 445.227c-11.473 6.902-21.331 23.035-51.812 23.035-60.946 0-76.187-33.964-121.901-33.964-30.473 0-45.711 33.964-76.186 33.964-60.95 0-76.188-33.964-121.901-33.964-30.476 0-45.714 33.964-76.189 33.964-60.95 0-76.188-33.964-121.901-33.964-30.476 0-45.714 33.964-76.189 33.964-60.95 0-76.188-33.964-121.901-33.964-30.477 0-45.714 33.964-76.189 33.964-60.95 0-76.19-33.964-121.901-33.964-30.476 0-39.618 24.202-57.903 24.202v43.726c18.285 0 27.428-24.203 57.903-24.203 45.713 0 60.952 33.964 121.901 33.964 30.475 0 45.712-33.964 76.189-33.964 45.712 0 60.95 33.964 121.901 33.964 30.475 0 45.713-33.964 76.189-33.964 45.713 0 60.95 33.964 121.901 33.964 30.475 0 45.713-33.964 76.189-33.964 45.713 0 60.95 33.964 121.901 33.964 30.475 0 45.713-33.964 76.186-33.964 45.713 0 60.954 33.964 121.901 33.964 30.481 0 40.339-9.624 51.812-16.527v-50.233zM1023.977 360.315c-11.473 6.902-21.331 23.035-51.812 23.035-60.946 0-76.187-33.964-121.901-33.964-30.473 0-45.711 33.964-76.186 33.964-60.95 0-76.188-33.964-121.901-33.964-30.476 0-45.714 33.964-76.189 33.964-60.95 0-76.188-33.964-121.901-33.964-30.476 0-45.714 33.964-76.189 33.964-60.95 0-76.188-33.964-121.901-33.964-30.477 0-45.714 33.964-76.189 33.964-60.95 0-76.19-33.964-121.901-33.964-30.476 0-39.618 24.202-57.903 24.202v43.726c18.285 0 27.428-24.203 57.903-24.203 45.713 0 60.952 33.964 121.901 33.964 30.475 0 45.712-33.964 76.189-33.964 45.712 0 60.95 33.964 121.901 33.964 30.475 0 45.713-33.964 76.189-33.964 45.713 0 60.95 33.964 121.901 33.964 30.475 0 45.713-33.964 76.189-33.964 45.713 0 60.95 33.964 121.901 33.964 30.475 0 45.713-33.964 76.186-33.964 45.713 0 60.954 33.964 121.901 33.964 30.481 0 40.339-9.624 51.812-16.527v-50.233zM1023.977 275.404c-11.473 6.903-21.331 23.035-51.812 23.035-60.946 0-76.187-33.964-121.901-33.964-30.473 0-45.711 33.964-76.186 33.964-60.95 0-76.188-33.964-121.901-33.964-30.476 0-45.714 33.964-76.189 33.964-60.95 0-76.188-33.964-121.901-33.964-30.476 0-45.714 33.964-76.189 33.964-60.95 0-76.188-33.964-121.901-33.964-30.477 0-45.714 33.964-76.189 33.964-60.95 0-76.19-33.964-121.901-33.964-30.476 0-39.618 24.202-57.903 24.202v43.726c18.285 0 27.428-24.202 57.903-24.202 45.713 0 60.952 33.964 121.901 33.964 30.475 0 45.712-33.964 76.189-33.964 45.712 0 60.95 33.964 121.901 33.964 30.475 0 45.713-33.964 76.189-33.964 45.713 0 60.95 33.964 121.901 33.964 30.475 0 45.713-33.964 76.189-33.964 45.713 0 60.95 33.964 121.901 33.964 30.475 0 45.713-33.964 76.186-33.964 45.713 0 60.954 33.964 121.901 33.964 30.481 0 40.339-9.625 51.812-16.528v-50.233zM1023.977 190.494c-11.473 6.903-21.331 23.035-51.812 23.035-60.946 0-76.187-33.964-121.901-33.964-30.473 0-45.711 33.964-76.186 33.964-60.95 0-76.188-33.964-121.901-33.964-30.476 0-45.714 33.964-76.189 33.964-60.95 0-76.188-33.964-121.901-33.964-30.476 0-45.714 33.964-76.189 33.964-60.95 0-76.188-33.964-121.901-33.964-30.477 0-45.714 33.964-76.189 33.964-60.95 0-76.19-33.964-121.901-33.964-30.476 0-39.618 24.202-57.903 24.202v43.726c18.285 0 27.428-24.202 57.903-24.202 45.713 0 60.952 33.964 121.901 33.964 30.475 0 45.712-33.964 76.189-33.964 45.712 0 60.95 33.964 121.901 33.964 30.475 0 45.713-33.964 76.189-33.964 45.713 0 60.95 33.964 121.901 33.964 30.475 0 45.713-33.964 76.189-33.964 45.713 0 60.95 33.964 121.901 33.964 30.475 0 45.713-33.964 76.186-33.964 45.713 0 60.954 33.964 121.901 33.964 30.481 0 40.339-9.625 51.812-16.527v-50.234zM1023.977 105.583c-11.473 6.903-21.331 23.035-51.812 23.035-60.946 0-76.187-33.964-121.901-33.964-30.473 0-45.711 33.964-76.186 33.964-60.95 0-76.188-33.964-121.901-33.964-30.476 0-45.714 33.964-76.189 33.964-60.95 0-76.188-33.964-121.901-33.964-30.476 0-45.714 33.964-76.189 33.964-60.95 0-76.188-33.964-121.901-33.964-30.477 0-45.714 33.964-76.189 33.964-60.95 0-76.19-33.964-121.901-33.964-30.476 0-39.618 24.202-57.903 24.202v43.726c18.285 0 27.428-24.202 57.903-24.202 45.713 0 60.952 33.964 121.901 33.964 30.475 0 45.712-33.964 76.189-33.964 45.712 0 60.95 33.964 121.901 33.964 30.475 0 45.713-33.964 76.189-33.964 45.713 0 60.95 33.964 121.901 33.964 30.475 0 45.713-33.964 76.189-33.964 45.713 0 60.95 33.964 121.901 33.964 30.475 0 45.713-33.964 76.186-33.964 45.713 0 60.954 33.964 121.9 33.964 30.482 0 40.34-9.625 51.813-16.527v-50.234zM1023.977 20.672c-11.473 6.903-21.331 23.035-51.812 23.035-60.946 0-76.187-33.964-121.901-33.964-30.473 0-45.711 33.964-76.186 33.964-60.95 0-76.188-33.964-121.901-33.964-30.476 0-45.714 33.964-76.189 33.964-60.95 0-76.188-33.964-121.901-33.964-30.476 0-45.714 33.964-76.189 33.964-60.95 0-76.188-33.964-121.901-33.964-30.477 0-45.714 33.964-76.189 33.964-60.95 0-76.19-33.964-121.901-33.964-30.476 0-39.618 24.202-57.903 24.202v43.726c18.285 0 27.428-24.202 57.903-24.202 45.713 0 60.952 33.964 121.901 33.964 30.475 0 45.712-33.964 76.189-33.964 45.712 0 60.95 33.964 121.901 33.964 30.475 0 45.713-33.964 76.189-33.964 45.713 0 60.95 33.964 121.901 33.964 30.475 0 45.713-33.964 76.189-33.964 45.713 0 60.95 33.964 121.901 33.964 30.475 0 45.713-33.964 76.186-33.964 45.713 0 60.954 33.964 121.9 33.964 30.482 0 40.34-9.625 51.813-16.527V20.672z" fill="#000063"/> - </g> - <g stroke-width="1pt"> - <path fill-rule="evenodd" fill="#000063" d="M0 .063h261.314v157.903H0z"/> - <path fill="#fff" d="M0 .063v17.654l232.1 140.25h29.216v-17.653L29.216.064H0zm261.316 0v17.654l-232.1 140.25H0v-17.654L232.1.063h29.216z"/> - <path fill="#fff" d="M108.881.063v157.904h43.553V.063h-43.553zM0 52.698v52.634h261.316V52.698H0z"/> - <path fill="#c00" d="M0 63.225v31.58h261.316v-31.58H0zM117.592.063v157.904h26.132V.063h-26.132zM0 157.967l87.105-52.635h19.477l-87.105 52.635H0zM0 .063l87.105 52.635H67.628L0 11.833V.063zm154.734 52.635L241.839.063h19.477L174.21 52.698h-19.476zm106.582 105.27l-87.106-52.636h19.477l67.629 40.866v11.77z"/> - </g> - <path d="M814.96-301.18l-17.72 708.66c0 37.298 80.097 37.298 88.583 0l-17.717-708.66h-53.149z" fill-rule="evenodd" transform="matrix(.2064 0 0 .4902 211.633 267.436)" stroke="#fff" stroke-width="6.935" fill="#a24300"/> - <path d="M496.06 549.21l17.717 70.866 35.433-53.15-17.717 88.583 35.433-35.433-35.433 88.582 35.433-35.433-35.433 88.583 35.433-35.433-35.433 106.3 35.433-35.433-35.433 106.3 35.433-35.433-35.433 106.3-17.716 53.151-17.717 17.72-17.717-17.72-17.716-53.151-35.433-106.3 35.433 35.433-35.433-106.3 35.433 35.433-35.433-106.3 35.433 35.433-35.433-88.583 35.433 35.433-35.433-88.582 35.433 35.433-17.717-88.583 35.433 53.15 17.717-70.866z" fill-rule="evenodd" transform="matrix(-.2354 .06743 -.1035 -.19501 591.314 322.549)" stroke="#fff" stroke-width="8.25" fill="#006d00"/> - <path d="M496.06 549.21v496.07M425.2 868.11l70.86 106.3 70.87-106.3" transform="matrix(-.2354 .06743 -.1035 -.19501 591.314 322.549)" stroke="#000" stroke-width="1pt" fill="none"/> - <path d="M425.2 797.24l70.866 106.3 70.866-106.3" transform="matrix(-.2354 .06743 -.1035 -.19501 591.314 322.549)" stroke="#000" stroke-width="1pt" fill="none"/> - <path d="M425.2 726.38l70.866 106.3 70.866-106.3" transform="matrix(-.2354 .06743 -.1035 -.19501 591.314 322.549)" stroke="#000" stroke-width="1pt" fill="none"/> - <path d="M425.2 673.23l70.866 88.583 70.866-88.583" transform="matrix(-.2354 .06743 -.1035 -.19501 591.314 322.549)" stroke="#000" stroke-width="1pt" fill="none"/> - <path d="M425.2 620.08l70.866 88.582 70.866-88.582" transform="matrix(-.2354 .06743 -.1035 -.19501 591.314 322.549)" stroke="#000" stroke-width="1pt" fill="none"/> - <path d="M442.91 566.93l53.15 106.3 53.15-106.3" transform="matrix(-.2354 .06743 -.1035 -.19501 591.314 322.549)" stroke="#000" stroke-width="1pt" fill="none"/> - <g> - <path d="M496.06 549.21l17.717 70.866 35.433-53.15-17.717 88.583 35.433-35.433-35.433 88.582 35.433-35.433-35.433 88.583 35.433-35.433-35.433 106.3 35.433-35.433-35.433 106.3 35.433-35.433-35.433 106.3-17.716 53.151-17.717 17.72-17.717-17.72-17.716-53.151-35.433-106.3 35.433 35.433-35.433-106.3 35.433 35.433-35.433-106.3 35.433 35.433-35.433-88.583 35.433 35.433-35.433-88.582 35.433 35.433-17.717-88.583 35.433 53.15 17.717-70.866z" fill-rule="evenodd" transform="matrix(.17703 -.18126 .22077 .14638 73.835 93.526)" stroke="#fff" stroke-width="8.25" fill="#006d00"/> - <path d="M496.06 549.21v496.07M425.2 868.11l70.86 106.3 70.87-106.3" transform="matrix(.17703 -.18126 .22077 .14638 73.835 93.526)" stroke="#000" stroke-width="1pt" fill="none"/> - <path d="M425.2 797.24l70.866 106.3 70.866-106.3" transform="matrix(.17703 -.18126 .22077 .14638 73.835 93.526)" stroke="#000" stroke-width="1pt" fill="none"/> - <path d="M425.2 726.38l70.866 106.3 70.866-106.3" transform="matrix(.17703 -.18126 .22077 .14638 73.835 93.526)" stroke="#000" stroke-width="1pt" fill="none"/> - <path d="M425.2 673.23l70.866 88.583 70.866-88.583" transform="matrix(.17703 -.18126 .22077 .14638 73.835 93.526)" stroke="#000" stroke-width="1pt" fill="none"/> - <path d="M425.2 620.08l70.866 88.582 70.866-88.582" transform="matrix(.17703 -.18126 .22077 .14638 73.835 93.526)" stroke="#000" stroke-width="1pt" fill="none"/> - <path d="M442.91 566.93l53.15 106.3 53.15-106.3" transform="matrix(.17703 -.18126 .22077 .14638 73.835 93.526)" stroke="#000" stroke-width="1pt" fill="none"/> - </g> - <g> - <path d="M496.06 549.21l17.717 70.866 35.433-53.15-17.717 88.583 35.433-35.433-35.433 88.582 35.433-35.433-35.433 88.583 35.433-35.433-35.433 106.3 35.433-35.433-35.433 106.3 35.433-35.433-35.433 106.3-17.716 53.151-17.717 17.72-17.717-17.72-17.716-53.151-35.433-106.3 35.433 35.433-35.433-106.3 35.433 35.433-35.433-106.3 35.433 35.433-35.433-88.583 35.433 35.433-35.433-88.582 35.433 35.433-17.717-88.583 35.433 53.15 17.717-70.866z" fill-rule="evenodd" transform="matrix(.1135 .2156 -.24917 .1076 581.756 -57.78)" stroke="#fff" stroke-width="8.25" fill="#006d00"/> - <path d="M496.06 549.21v496.07M425.2 868.11l70.86 106.3 70.87-106.3" transform="matrix(.1135 .2156 -.24917 .1076 581.756 -57.78)" stroke="#000" stroke-width="1pt" fill="none"/> - <path d="M425.2 797.24l70.866 106.3 70.866-106.3" transform="matrix(.1135 .2156 -.24917 .1076 581.756 -57.78)" stroke="#000" stroke-width="1pt" fill="none"/> - <path d="M425.2 726.38l70.866 106.3 70.866-106.3" transform="matrix(.1135 .2156 -.24917 .1076 581.756 -57.78)" stroke="#000" stroke-width="1pt" fill="none"/> - <path d="M425.2 673.23l70.866 88.583 70.866-88.583" transform="matrix(.1135 .2156 -.24917 .1076 581.756 -57.78)" stroke="#000" stroke-width="1pt" fill="none"/> - <path d="M425.2 620.08l70.866 88.582 70.866-88.582" transform="matrix(.1135 .2156 -.24917 .1076 581.756 -57.78)" stroke="#000" stroke-width="1pt" fill="none"/> - <path d="M442.91 566.93l53.15 106.3 53.15-106.3" transform="matrix(.1135 .2156 -.24917 .1076 581.756 -57.78)" stroke="#000" stroke-width="1pt" fill="none"/> - </g> - <g> - <path d="M496.06 549.21l17.717 70.866 35.433-53.15-17.717 88.583 35.433-35.433-35.433 88.582 35.433-35.433-35.433 88.583 35.433-35.433-35.433 106.3 35.433-35.433-35.433 106.3 35.433-35.433-35.433 106.3-17.716 53.151-17.717 17.72-17.717-17.72-17.716-53.151-35.433-106.3 35.433 35.433-35.433-106.3 35.433 35.433-35.433-106.3 35.433 35.433-35.433-88.583 35.433 35.433-35.433-88.582 35.433 35.433-17.717-88.583 35.433 53.15 17.717-70.866z" fill-rule="evenodd" transform="matrix(-.15682 .19451 -.23555 -.12827 705.85 197.798)" stroke="#fff" stroke-width="8.25" fill="#006d00"/> - <path d="M496.06 549.21v496.07M425.2 868.11l70.86 106.3 70.87-106.3" transform="matrix(-.15682 .19451 -.23555 -.12827 705.85 197.798)" stroke="#000" stroke-width="1pt" fill="none"/> - <path d="M425.2 797.24l70.866 106.3 70.866-106.3" transform="matrix(-.15682 .19451 -.23555 -.12827 705.85 197.798)" stroke="#000" stroke-width="1pt" fill="none"/> - <path d="M425.2 726.38l70.866 106.3 70.866-106.3" transform="matrix(-.15682 .19451 -.23555 -.12827 705.85 197.798)" stroke="#000" stroke-width="1pt" fill="none"/> - <path d="M425.2 673.23l70.866 88.583 70.866-88.583" transform="matrix(-.15682 .19451 -.23555 -.12827 705.85 197.798)" stroke="#000" stroke-width="1pt" fill="none"/> - <path d="M425.2 620.08l70.866 88.582 70.866-88.582" transform="matrix(-.15682 .19451 -.23555 -.12827 705.85 197.798)" stroke="#000" stroke-width="1pt" fill="none"/> - <path d="M442.91 566.93l53.15 106.3 53.15-106.3" transform="matrix(-.15682 .19451 -.23555 -.12827 705.85 197.798)" stroke="#000" stroke-width="1pt" fill="none"/> - </g> - <g> - <path d="M496.06 549.21l17.717 70.866 35.433-53.15-17.717 88.583 35.433-35.433-35.433 88.582 35.433-35.433-35.433 88.583 35.433-35.433-35.433 106.3 35.433-35.433-35.433 106.3 35.433-35.433-35.433 106.3-17.716 53.151-17.717 17.72-17.717-17.72-17.716-53.151-35.433-106.3 35.433 35.433-35.433-106.3 35.433 35.433-35.433-106.3 35.433 35.433-35.433-88.583 35.433 35.433-35.433-88.582 35.433 35.433-17.717-88.583 35.433 53.15 17.717-70.866z" fill-rule="evenodd" transform="matrix(-.15547 -.16616 .17678 -.15123 275.837 396.088)" stroke="#fff" stroke-width="8.25" fill="#006d00"/> - <path d="M496.06 549.21v496.07M425.2 868.11l70.86 106.3 70.87-106.3" transform="matrix(-.15547 -.16616 .17678 -.15123 275.837 396.088)" stroke="#000" stroke-width="1pt" fill="none"/> - <path d="M425.2 797.24l70.866 106.3 70.866-106.3" transform="matrix(-.15547 -.16616 .17678 -.15123 275.837 396.088)" stroke="#000" stroke-width="1pt" fill="none"/> - <path d="M425.2 726.38l70.866 106.3 70.866-106.3" transform="matrix(-.15547 -.16616 .17678 -.15123 275.837 396.088)" stroke="#000" stroke-width="1pt" fill="none"/> - <path d="M425.2 673.23l70.866 88.583 70.866-88.583" transform="matrix(-.15547 -.16616 .17678 -.15123 275.837 396.088)" stroke="#000" stroke-width="1pt" fill="none"/> - <path d="M425.2 620.08l70.866 88.582 70.866-88.582" transform="matrix(-.15547 -.16616 .17678 -.15123 275.837 396.088)" stroke="#000" stroke-width="1pt" fill="none"/> - <path d="M442.91 566.93l53.15 106.3 53.15-106.3" transform="matrix(-.15547 -.16616 .17678 -.15123 275.837 396.088)" stroke="#000" stroke-width="1pt" fill="none"/> - </g> - <g> - <path d="M460.63 549.21l28.643 70.866 42.223-53.15-10.184 88.583 27.9-35.433-17.716 88.582 25.249-35.433-25.249 88.583 35.433-35.433-35.433 106.3 35.433-35.433-35.433 106.3 35.433-35.433-35.433 106.3-17.716 53.151-17.717 17.72-17.717-17.72-17.716-53.151-35.433-106.3 35.433 35.433-35.433-106.3 35.433 35.433-35.433-106.3 35.433 35.433-45.617-88.583 45.617 35.433-53.15-88.582 42.966 35.433-25.25-88.583 35.433 53.15.001-70.866z" fill-rule="evenodd" transform="matrix(-.27108 -.06397 -.15704 .20433 684.121 -32.23)" stroke="#fff" stroke-width="8.25" fill="#006d00"/> - <path d="M467.21 584.65l28.855 124.02v336.62" transform="matrix(-.27108 -.06397 -.15704 .20433 684.121 -32.23)" stroke="#000" stroke-width="1pt" fill="none"/> - <path d="M436.23 885.83l59.833 88.582 60.682-88.582" transform="matrix(-.27108 -.06397 -.15704 .20433 684.121 -32.23)" stroke="#000" stroke-width="1pt" fill="none"/> - <path d="M434.53 814.96l61.53 88.582 60.682-88.582" transform="matrix(-.27108 -.06397 -.15704 .20433 684.121 -32.23)" stroke="#000" stroke-width="1pt" fill="none"/> - <path d="M435.38 744.1l60.682 88.582 59.833-88.582" transform="matrix(-.27108 -.06397 -.15704 .20433 684.121 -32.23)" stroke="#000" stroke-width="1pt" fill="none"/> - <path d="M432.84 690.94l63.228 70.866 53.149-70.866" transform="matrix(-.27108 -.06397 -.15704 .20433 684.121 -32.23)" stroke="#000" stroke-width="1pt" fill="none"/> - <path d="M425.2 637.8l70.866 70.865 45.406-70.865" transform="matrix(-.27108 -.06397 -.15704 .20433 684.121 -32.23)" stroke="#000" stroke-width="1pt" fill="none"/> - <path d="M436.12 593.24l53.15 86.886 35.327-95.478" transform="matrix(-.27108 -.06397 -.15704 .20433 684.121 -32.23)" stroke="#000" stroke-width="1pt" fill="none"/> - </g> - <g> - <path d="M460.63 549.21l28.643 70.866 42.223-53.15-10.184 88.583 27.9-35.433-17.716 88.582 25.249-35.433-25.249 88.583 35.433-35.433-35.433 106.3 35.433-35.433-35.433 106.3 35.433-35.433-35.433 106.3-17.716 53.151-17.717 17.72-17.717-17.72-17.716-53.151-35.433-106.3 35.433 35.433-35.433-106.3 35.433 35.433-35.433-106.3 35.433 35.433-45.617-88.583 45.617 35.433-53.15-88.582 42.966 35.433-25.25-88.583 35.433 53.15.001-70.866z" fill-rule="evenodd" transform="matrix(.27011 .06695 .00989 .24471 240.767 -138.419)" stroke="#fff" stroke-width="8.25" fill="#006d00"/> - <path d="M467.21 584.65l28.855 124.02v336.62" transform="matrix(.27011 .06695 .00989 .24471 240.767 -138.419)" stroke="#000" stroke-width="1pt" fill="none"/> - <path d="M436.23 885.83l59.833 88.582 60.682-88.582" transform="matrix(.27011 .06695 .00989 .24471 240.767 -138.419)" stroke="#000" stroke-width="1pt" fill="none"/> - <path d="M434.53 814.96l61.53 88.582 60.682-88.582" transform="matrix(.27011 .06695 .00989 .24471 240.767 -138.419)" stroke="#000" stroke-width="1pt" fill="none"/> - <path d="M435.38 744.1l60.682 88.582 59.833-88.582" transform="matrix(.27011 .06695 .00989 .24471 240.767 -138.419)" stroke="#000" stroke-width="1pt" fill="none"/> - <path d="M432.84 690.94l63.228 70.866 53.149-70.866" transform="matrix(.27011 .06695 .00989 .24471 240.767 -138.419)" stroke="#000" stroke-width="1pt" fill="none"/> - <path d="M425.2 637.8l70.866 70.865 45.406-70.865" transform="matrix(.27011 .06695 .00989 .24471 240.767 -138.419)" stroke="#000" stroke-width="1pt" fill="none"/> - <path d="M436.12 593.24l53.15 86.886 35.327-95.478" transform="matrix(.27011 .06695 .00989 .24471 240.767 -138.419)" stroke="#000" stroke-width="1pt" fill="none"/> - </g> - <g> - <path d="M354.33 531.5l88.583 88.583 17.716-53.149v88.582l35.433-35.433-17.716 88.583 35.432-35.434-17.716 88.584 35.433-35.433-17.716 106.3 35.433-35.433-35.433 106.3 35.433-35.433-17.717 106.3-17.716 53.151-17.717 17.72-17.717-17.72-17.716-53.151-53.15-82.294 35.434 11.429-35.433-106.3 35.433 35.433-53.15-106.3 35.433 35.433-53.15-88.584 53.15 35.434-70.866-88.583 53.149 35.433-70.866-70.866 70.866 35.433-53.149-88.583z" fill-rule="evenodd" transform="matrix(.03453 -.23456 .24402 .04167 115.462 229.538)" stroke="#fff" stroke-width="8.25" fill="#006d00"/> - <path d="M378.96 560.02l63.952 95.497 17.716 53.15 8.859 45.205 8.858 78.811 9.315 70.866 8.401 141.74" transform="matrix(.03453 -.23456 .24402 .04167 115.462 229.538)" stroke="#000" stroke-width="1pt" fill="none"/> - <path d="M425.2 903.54l63.665 70.866 50.749-88.583" transform="matrix(.03453 -.23456 .24402 .04167 115.462 229.538)" stroke="#000" stroke-width="1pt" fill="none"/> - <path d="M417.08 814.96l70.579 88.583 50.75-88.583" transform="matrix(.03453 -.23456 .24402 .04167 115.462 229.538)" stroke="#000" stroke-width="1pt" fill="none"/> - <path d="M407.48 752.44l70.867 80.235 45.948-88.583M372.05 637.8l88.583 70.866 25.831-70.866" transform="matrix(.03453 -.23456 .24402 .04167 115.462 229.538)" stroke="#000" stroke-width="1pt" fill="none"/> - <path d="M360.62 602.36l82.296 53.149 10.515-53.149M389.76 690.94l81.095 70.866 33.946-70.866" transform="matrix(.03453 -.23456 .24402 .04167 115.462 229.538)" stroke="#000" stroke-width="1pt" fill="none"/> - </g> - <g fill-rule="evenodd"> - <path d="M541.46 1173.3l-1.7-229.13-61.1-106.94c-15.277-52.618-7.754-78.079 16.973-79.776 24.728-1.698 49.224 13.579 84.868 15.276 35.645 1.697 28.856-59.408 81.474-57.71 52.618 1.697 144.28 32.25 222.36 37.342 78.078 5.092 118.81-27.158 208.77-30.553 89.97-3.395 113.73 42.435 118.82 42.435s30.55-18.672 56.01-22.066c25.46-3.395 33.95 10.184 33.95 10.184s-1.7 57.71-13.58 91.657c-11.88 33.948-54.32 89.961-56.01 89.961-1.7 0-15.28 249.52-15.28 251.21 0 1.7-675.55-6.79-675.55-11.88z" stroke="#000" stroke-width="1pt" fill="#c00" transform="matrix(.13659 0 0 .12573 266.36 208.19)"/> - <g stroke="#000" stroke-width="1pt"> - <path d="M531.5 584.65s-67.982-52.097-69.813-177.17c-1.053-71.929 34.38-124.02 122.96-124.02 124.02 0 301.18 53.149 301.18 53.149v17.717s-141.73-53.15-301.18-53.15c-70.866 0-106.3 52.087-106.3 105.24 0 88.583 70.867 178.23 70.867 178.23v141.73h-17.717v-141.73z" fill="#fff100" transform="matrix(-.13659 0 0 .12573 508.357 252.74)"/> - <path d="M478.35 549.21c0 9.785-7.932 17.717-17.717 17.717-9.785 0-17.717-7.932-17.717-17.717 0-9.785 7.932-17.717 17.717-17.717 9.785 0 17.717 7.932 17.717 17.717z" transform="matrix(-.13659 0 0 .12573 506.168 252.526)" fill="#fff"/> - <path d="M478.35 549.21c0 9.785-7.932 17.717-17.717 17.717-9.785 0-17.717-7.932-17.717-17.717 0-9.785 7.932-17.717 17.717-17.717 9.785 0 17.717 7.932 17.717 17.717z" transform="matrix(-.13659 0 0 .12573 508.588 247.431)" fill="#fff"/> - <path d="M478.35 549.21c0 9.785-7.932 17.717-17.717 17.717-9.785 0-17.717-7.932-17.717-17.717 0-9.785 7.932-17.717 17.717-17.717 9.785 0 17.717 7.932 17.717 17.717z" transform="matrix(-.13659 0 0 .12573 509.849 242.243)" fill="#fff"/> - <path d="M478.35 549.21c0 9.785-7.932 17.717-17.717 17.717-9.785 0-17.717-7.932-17.717-17.717 0-9.785 7.932-17.717 17.717-17.717 9.785 0 17.717 7.932 17.717 17.717z" transform="matrix(-.13659 0 0 .12573 510.776 236.694)" fill="#fff"/> - <path d="M478.35 549.21c0 9.785-7.932 17.717-17.717 17.717-9.785 0-17.717-7.932-17.717-17.717 0-9.785 7.932-17.717 17.717-17.717 9.785 0 17.717 7.932 17.717 17.717z" transform="matrix(-.13659 0 0 .12573 510.545 230.678)" fill="#fff"/> - <path d="M478.35 549.21c0 9.785-7.932 17.717-17.717 17.717-9.785 0-17.717-7.932-17.717-17.717 0-9.785 7.932-17.717 17.717-17.717 9.785 0 17.717 7.932 17.717 17.717z" transform="matrix(-.13659 0 0 .12573 502.69 257.008)" fill="#fff"/> - <path d="M478.35 549.21c0 9.785-7.932 17.717-17.717 17.717-9.785 0-17.717-7.932-17.717-17.717 0-9.785 7.932-17.717 17.717-17.717 9.785 0 17.717 7.932 17.717 17.717z" transform="matrix(-.13659 0 0 .12573 508.487 224.996)" fill="#fff"/> - <path d="M478.35 549.21c0 9.785-7.932 17.717-17.717 17.717-9.785 0-17.717-7.932-17.717-17.717 0-9.785 7.932-17.717 17.717-17.717 9.785 0 17.717 7.932 17.717 17.717z" transform="matrix(-.13659 0 0 .12573 504.082 220.515)" fill="#fff"/> - <path d="M478.35 549.21c0 9.785-7.932 17.717-17.717 17.717-9.785 0-17.717-7.932-17.717-17.717 0-9.785 7.932-17.717 17.717-17.717 9.785 0 17.717 7.932 17.717 17.717z" transform="matrix(-.13659 0 0 .12573 498.054 217.528)" fill="#fff"/> - <path d="M478.35 549.21c0 9.785-7.932 17.717-17.717 17.717-9.785 0-17.717-7.932-17.717-17.717 0-9.785 7.932-17.717 17.717-17.717 9.785 0 17.717 7.932 17.717 17.717z" transform="matrix(-.13659 0 0 .12573 492.026 217.1)" fill="#fff"/> - <path d="M478.35 549.21c0 9.785-7.932 17.717-17.717 17.717-9.785 0-17.717-7.932-17.717-17.717 0-9.785 7.932-17.717 17.717-17.717 9.785 0 17.717 7.932 17.717 17.717z" transform="matrix(-.13659 0 0 .12573 485.535 217.314)" fill="#fff"/> - <path d="M478.35 549.21c0 9.785-7.932 17.717-17.717 17.717-9.785 0-17.717-7.932-17.717-17.717 0-9.785 7.932-17.717 17.717-17.717 9.785 0 17.717 7.932 17.717 17.717z" transform="matrix(-.13659 0 0 .12573 479.043 218.168)" fill="#fff"/> - <path d="M478.35 549.21c0 9.785-7.932 17.717-17.717 17.717-9.785 0-17.717-7.932-17.717-17.717 0-9.785 7.932-17.717 17.717-17.717 9.785 0 17.717 7.932 17.717 17.717z" transform="matrix(-.13659 0 0 .12573 472.55 219.022)" fill="#fff"/> - <path d="M478.35 549.21c0 9.785-7.932 17.717-17.717 17.717-9.785 0-17.717-7.932-17.717-17.717 0-9.785 7.932-17.717 17.717-17.717 9.785 0 17.717 7.932 17.717 17.717z" transform="matrix(-.13659 0 0 .12573 465.596 220.088)" fill="#fff"/> - <path d="M478.35 549.21c0 9.785-7.932 17.717-17.717 17.717-9.785 0-17.717-7.932-17.717-17.717 0-9.785 7.932-17.717 17.717-17.717 9.785 0 17.717 7.932 17.717 17.717z" transform="matrix(-.13659 0 0 .12573 459.568 221.583)" fill="#fff"/> - </g> - <path d="M478.35 549.21c0 9.785-7.932 17.717-17.717 17.717-9.785 0-17.717-7.932-17.717-17.717 0-9.785 7.932-17.717 17.717-17.717 9.785 0 17.717 7.932 17.717 17.717z" transform="matrix(.13659 0 0 .12573 268.548 252.526)" stroke="#000" stroke-width="1pt" fill="#fff"/> - <path d="M478.35 549.21c0 9.785-7.932 17.717-17.717 17.717-9.785 0-17.717-7.932-17.717-17.717 0-9.785 7.932-17.717 17.717-17.717 9.785 0 17.717 7.932 17.717 17.717z" transform="matrix(.13659 0 0 .12573 266.128 247.432)" stroke="#000" stroke-width="1pt" fill="#fff"/> - <path d="M478.35 549.21c0 9.785-7.932 17.717-17.717 17.717-9.785 0-17.717-7.932-17.717-17.717 0-9.785 7.932-17.717 17.717-17.717 9.785 0 17.717 7.932 17.717 17.717z" transform="matrix(.13659 0 0 .12573 264.867 242.243)" stroke="#000" stroke-width="1pt" fill="#fff"/> - <path d="M478.35 549.21c0 9.785-7.932 17.717-17.717 17.717-9.785 0-17.717-7.932-17.717-17.717 0-9.785 7.932-17.717 17.717-17.717 9.785 0 17.717 7.932 17.717 17.717z" transform="matrix(.13659 0 0 .12573 263.94 236.694)" stroke="#000" stroke-width="1pt" fill="#fff"/> - <path d="M478.35 549.21c0 9.785-7.932 17.717-17.717 17.717-9.785 0-17.717-7.932-17.717-17.717 0-9.785 7.932-17.717 17.717-17.717 9.785 0 17.717 7.932 17.717 17.717z" transform="matrix(.13659 0 0 .12573 264.172 230.678)" stroke="#000" stroke-width="1pt" fill="#fff"/> - <path d="M478.35 549.21c0 9.785-7.932 17.717-17.717 17.717-9.785 0-17.717-7.932-17.717-17.717 0-9.785 7.932-17.717 17.717-17.717 9.785 0 17.717 7.932 17.717 17.717z" transform="matrix(.13659 0 0 .12573 266.23 224.996)" stroke="#000" stroke-width="1pt" fill="#fff"/> - <path d="M478.35 549.21c0 9.785-7.932 17.717-17.717 17.717-9.785 0-17.717-7.932-17.717-17.717 0-9.785 7.932-17.717 17.717-17.717 9.785 0 17.717 7.932 17.717 17.717z" transform="matrix(.13659 0 0 .12573 270.635 220.515)" stroke="#000" stroke-width="1pt" fill="#fff"/> - <path d="M478.35 549.21c0 9.785-7.932 17.717-17.717 17.717-9.785 0-17.717-7.932-17.717-17.717 0-9.785 7.932-17.717 17.717-17.717 9.785 0 17.717 7.932 17.717 17.717z" transform="matrix(.13659 0 0 .12573 276.662 217.527)" stroke="#000" stroke-width="1pt" fill="#fff"/> - <path d="M478.35 549.21c0 9.785-7.932 17.717-17.717 17.717-9.785 0-17.717-7.932-17.717-17.717 0-9.785 7.932-17.717 17.717-17.717 9.785 0 17.717 7.932 17.717 17.717z" transform="matrix(.13659 0 0 .12573 282.69 217.1)" stroke="#000" stroke-width="1pt" fill="#fff"/> - <path d="M478.35 549.21c0 9.785-7.932 17.717-17.717 17.717-9.785 0-17.717-7.932-17.717-17.717 0-9.785 7.932-17.717 17.717-17.717 9.785 0 17.717 7.932 17.717 17.717z" transform="matrix(.13659 0 0 .12573 289.181 217.314)" stroke="#000" stroke-width="1pt" fill="#fff"/> - <path d="M478.35 549.21c0 9.785-7.932 17.717-17.717 17.717-9.785 0-17.717-7.932-17.717-17.717 0-9.785 7.932-17.717 17.717-17.717 9.785 0 17.717 7.932 17.717 17.717z" transform="matrix(.13659 0 0 .12573 295.674 218.168)" stroke="#000" stroke-width="1pt" fill="#fff"/> - <path d="M478.35 549.21c0 9.785-7.932 17.717-17.717 17.717-9.785 0-17.717-7.932-17.717-17.717 0-9.785 7.932-17.717 17.717-17.717 9.785 0 17.717 7.932 17.717 17.717z" transform="matrix(.13659 0 0 .12573 302.166 219.021)" stroke="#000" stroke-width="1pt" fill="#fff"/> - <path d="M478.35 549.21c0 9.785-7.932 17.717-17.717 17.717-9.785 0-17.717-7.932-17.717-17.717 0-9.785 7.932-17.717 17.717-17.717 9.785 0 17.717 7.932 17.717 17.717z" transform="matrix(.13659 0 0 .12573 309.12 220.088)" stroke="#000" stroke-width="1pt" fill="#fff"/> - <path d="M478.35 549.21c0 9.785-7.932 17.717-17.717 17.717-9.785 0-17.717-7.932-17.717-17.717 0-9.785 7.932-17.717 17.717-17.717 9.785 0 17.717 7.932 17.717 17.717z" transform="matrix(.13659 0 0 .12573 315.149 221.583)" stroke="#000" stroke-width="1pt" fill="#fff"/> - <path d="M478.35 549.21c0 9.785-7.932 17.717-17.717 17.717-9.785 0-17.717-7.932-17.717-17.717 0-9.785 7.932-17.717 17.717-17.717 9.785 0 17.717 7.932 17.717 17.717z" transform="matrix(.13659 0 0 .12573 272.026 257.008)" stroke="#000" stroke-width="1pt" fill="#fff"/> - <path d="M531.5 584.65s-67.982-52.097-69.813-177.17c-1.053-71.929 34.38-124.02 122.96-124.02 124.02 0 301.18 53.149 301.18 53.149v17.717s-141.73-53.15-301.18-53.15c-70.866 0-106.3 52.087-106.3 105.24 0 88.583 70.867 178.23 70.867 178.23v141.73h-17.717v-141.73z" transform="matrix(.13659 0 0 .12573 266.36 252.74)" stroke="#000" stroke-width="1pt" fill="#fff100"/> - <path d="M1240.2 531.5s15.35-35.433 70.86-35.433c37.79 0 70.87 35.433 70.87 70.866v70.866h35.43v-70.866c0-35.47 35.44-70.866 70.87-70.866 53.15 0 70.87 35.433 70.87 35.433s0-106.3-70.87-106.3c-53.15 0-70.87 35.433-70.87 35.433s17.72-53.15 17.72-106.3-35.43-88.583-35.43-88.583c0 6.79-35.44 35.433-35.44 88.583 0 53.149 17.72 106.3 17.72 106.3s-17.72-35.433-70.87-35.433c-70.86 0-70.86 106.3-70.86 106.3z" transform="matrix(.04553 0 0 .0479 299.433 309.064)" stroke="#000" stroke-width="2.991" fill="#fff100"/> - <path d="M1240.2 531.5s15.35-35.433 70.86-35.433c37.79 0 70.87 35.433 70.87 70.866v70.866h35.43v-70.866c0-35.47 35.44-70.866 70.87-70.866 53.15 0 70.87 35.433 70.87 35.433s0-106.3-70.87-106.3c-53.15 0-70.87 35.433-70.87 35.433s17.72-53.15 17.72-106.3-35.43-88.583-35.43-88.583c0 6.79-35.44 35.433-35.44 88.583 0 53.149 17.72 106.3 17.72 106.3s-17.72-35.433-70.87-35.433c-70.86 0-70.86 106.3-70.86 106.3z" transform="matrix(.04553 0 0 .0479 347.83 309.064)" stroke="#000" stroke-width="2.991" fill="#fff100"/> - <path d="M531.5 832.68V673.23s35.433 53.15 88.583 53.15c43.489 0 88.582-70.866 88.582-70.866s41.515 53.149 88.583 53.149c42.021 0 88.516-68.572 88.516-68.572s43.207 68.572 88.649 68.572c45.441 0 88.581-53.149 88.581-53.149s46.29 70.866 106.3 70.866c53.15 0 70.87-53.15 70.87-53.15v159.45h-708.66z" transform="matrix(.13659 0 0 .12573 266.36 252.74)" stroke="#000" stroke-width="1pt" fill="#fff100"/> - <path d="M708.66 832.68V708.66s106.3 35.433 106.3 124.02h-106.3z" transform="matrix(.13659 0 0 .12573 242.16 252.74)" stroke="#000" stroke-width="1pt" fill="#fff100"/> - <path d="M708.66 832.68V708.66s106.3 35.433 106.3 124.02h-106.3z" transform="matrix(-.13659 0 0 .12573 532.547 252.74)" stroke="#000" stroke-width="1pt" fill="#fff100"/> - <path d="M602.36 832.68c0-88.583 106.37-144.6 106.37-144.6s106.23 56.016 106.23 144.6h-212.6z" transform="matrix(.13659 0 0 .12573 266.36 252.74)" stroke="#000" stroke-width="1pt" fill="#fff100"/> - <path d="M602.36 832.68c0-88.583 106.37-144.6 106.37-144.6s106.23 56.016 106.23 144.6h-212.6z" transform="matrix(.13659 0 0 .12573 314.758 252.74)" stroke="#000" stroke-width="1pt" fill="#fff100"/> - <path d="M584.65 847.53c0-88.583 124.08-159.45 124.08-159.45s123.95 70.866 123.95 159.45H584.65z" transform="matrix(.13659 0 0 .12573 290.558 250.873)" stroke="#000" stroke-width="1pt" fill="#fff100"/> - <path d="M1275.6 655.51c-35.43-17.716-166.02-35.433-376.28-35.433s-350.1 17.717-385.53 35.433c-35.434 17.717-35.434 53.149-.001 70.866 35.433 17.716 175.28 35.433 385.54 35.433s340.84-17.716 376.28-35.433c35.43-17.716 35.43-53.149 0-70.866z" transform="matrix(.13505 0 0 .12573 265.898 275.015)" stroke="#000" stroke-width="1pt" fill="#fff"/> - <path d="M435.757 366.342c0 4.455-40.256 4.455-48.399 4.455-8.797 0-48.398 1.207-48.398-4.455 0-4.455 39.928-4.455 48.398-4.455 8.47 0 48.399.906 48.399 4.455z" fill="gray"/> - <path d="M343.797 350.342c0 1.456-1.084 2.636-2.42 2.636-1.337 0-2.42-1.18-2.42-2.636s1.083-2.637 2.42-2.637c1.336 0 2.42 1.18 2.42 2.637zM435.753 350.342c0 1.456-1.083 2.636-2.42 2.636-1.336 0-2.42-1.18-2.42-2.636s1.084-2.637 2.42-2.637c1.337 0 2.42 1.18 2.42 2.637z" fill="#c00"/> - <path d="M392.195 348.932c0 1.456-2.167 2.636-4.84 2.636s-4.84-1.18-4.84-2.636 2.167-2.636 4.84-2.636 4.84 1.18 4.84 2.636z"/> - <path d="M415.41 348.932c0 1.456-1.625 2.636-3.63 2.636-2.004 0-3.63-1.18-3.63-2.636s1.626-2.636 3.63-2.636c2.005 0 3.63 1.18 3.63 2.636zM365.576 348.932c0 1.456-1.626 2.636-3.63 2.636-2.005 0-3.63-1.18-3.63-2.636s1.625-2.636 3.63-2.636c2.004 0 3.63 1.18 3.63 2.636z" fill="#006300"/> - <path d="M1257.9 496.06s35.44-53.15 70.87-53.15h35.43v35.433c0 53.15-53.15 70.867-53.15 70.867h141.74s-53.15-17.717-53.15-70.867V442.91h35.43c35.43 0 70.87 53.15 70.87 53.15V354.33s-35.44 53.15-70.87 53.15h-35.43v-35.433c0-53.15 53.15-70.867 53.15-70.867h-141.74s53.15 17.717 53.15 70.867v35.433h-35.43c-35.43 0-70.87-53.15-70.87-53.15v141.73z" transform="matrix(.07805 0 0 .07185 279.5 297.926)" stroke="#000" stroke-width="2.188" fill="#fff100"/> - <path d="M1381.9 549.21l70.87.001s-53.15-17.717-53.15-70.867v-35.433h35.43c35.43 0 70.87 53.15 70.87 53.15v-141.73s-35.44 53.15-70.87 53.15h-35.43v-35.433c0-53.15 53.15-70.867 53.15-70.867h-70.87v248.03z" transform="matrix(.03903 0 0 .06287 285.03 307.314)" stroke="#000" stroke-width="3.307" fill="#fff100"/> - <path d="M1381.9 549.21l70.87.001s-53.15-17.717-53.15-70.867v-35.433h35.43c35.43 0 70.87 53.15 70.87 53.15v-141.73s-35.44 53.15-70.87 53.15h-35.43v-35.433c0-53.15 53.15-70.867 53.15-70.867h-70.87v248.03z" transform="matrix(-.03903 0 0 .06287 489.685 307.314)" stroke="#000" stroke-width="3.307" fill="#fff100"/> - <path d="M903.54 602.36c0 9.785-7.932 17.717-17.717 17.717-9.785 0-17.717-7.932-17.717-17.717 0-9.785 7.932-17.717 17.717-17.717 9.785 0 17.717 7.932 17.717 17.717z" transform="matrix(.13659 0 0 .12573 266.36 252.74)" stroke="#000" stroke-width="1pt" fill="#fff"/> - <path d="M1257.9 496.06s35.44-53.15 70.87-53.15h35.43v35.433c0 53.15-53.15 70.867-53.15 70.867h141.74s-53.15-17.717-53.15-70.867V442.91h35.43c35.43 0 70.87 53.15 70.87 53.15V354.33s-35.44 53.15-70.87 53.15h-35.43v-35.433c0-53.15 53.15-70.867 53.15-70.867h-141.74s53.15 17.717 53.15 70.867v35.433h-35.43c-35.43 0-70.87-53.15-70.87-53.15v141.73z" transform="matrix(.07805 0 0 .07185 279.5 251.15)" stroke="#000" stroke-width="2.188" fill="#fff100"/> - <path d="M903.54 602.36c0 9.785-7.932 17.717-17.717 17.717-9.785 0-17.717-7.932-17.717-17.717 0-9.785 7.932-17.717 17.717-17.717 9.785 0 17.717 7.932 17.717 17.717z" transform="matrix(.13659 0 0 .12573 266.592 206.336)" stroke="#000" stroke-width="1pt" fill="#fff"/> - <path stroke="#000" stroke-width="1pt" fill="#fff100" d="M850.39 655.51h70.866v53.15H850.39z" transform="matrix(.13659 0 0 .12573 266.36 208.19)"/> - <path stroke="#000" stroke-width="1pt" fill="#fff100" d="M850.39 683.3h70.866v202.53H850.39z" transform="matrix(.13659 0 0 .12573 266.36 208.19)"/> - <path d="M478.35 549.21c0 9.785-7.932 17.717-17.717 17.717-9.785 0-17.717-7.932-17.717-17.717 0-9.785 7.932-17.717 17.717-17.717 9.785 0 17.717 7.932 17.717 17.717z" transform="matrix(.13659 0 0 .12573 324.438 246.057)" stroke="#000" stroke-width="1pt" fill="#fff"/> - <path d="M478.35 549.21c0 9.785-7.932 17.717-17.717 17.717-9.785 0-17.717-7.932-17.717-17.717 0-9.785 7.932-17.717 17.717-17.717 9.785 0 17.717 7.932 17.717 17.717z" transform="matrix(.13659 0 0 .12573 324.438 240.295)" stroke="#000" stroke-width="1pt" fill="#fff"/> - <path d="M478.35 549.21c0 9.785-7.932 17.717-17.717 17.717-9.785 0-17.717-7.932-17.717-17.717 0-9.785 7.932-17.717 17.717-17.717 9.785 0 17.717 7.932 17.717 17.717z" transform="matrix(.13659 0 0 .12573 324.438 234.92)" stroke="#000" stroke-width="1pt" fill="#fff"/> - <path d="M478.35 549.21c0 9.785-7.932 17.717-17.717 17.717-9.785 0-17.717-7.932-17.717-17.717 0-9.785 7.932-17.717 17.717-17.717 9.785 0 17.717 7.932 17.717 17.717z" transform="matrix(.13659 0 0 .12573 324.438 229.372)" stroke="#000" stroke-width="1pt" fill="#fff"/> - <path d="M392.495 357.482c0 1-2.202 1.81-4.918 1.81s-4.918-.81-4.918-1.81 2.202-1.811 4.918-1.811c2.717 0 4.918.81 4.918 1.81zM437.065 361.903c-.272.685-2.668.742-5.35.127-2.683-.615-4.638-1.67-4.366-2.355.273-.686 2.668-.743 5.35-.128 2.684.616 4.638 1.67 4.366 2.356zM418.437 358.899c-.108.882-2.439 1.44-5.206 1.247-2.768-.194-4.925-1.065-4.817-1.947.108-.882 2.439-1.44 5.206-1.247 2.768.193 4.925 1.065 4.817 1.947zM336.567 361.903c.272.685 2.668.742 5.35.127 2.683-.615 4.638-1.67 4.366-2.355-.273-.686-2.668-.743-5.35-.128-2.684.616-4.638 1.67-4.366 2.356zM356.128 358.472c.108.882 2.439 1.44 5.206 1.247 2.768-.193 4.925-1.065 4.817-1.947-.108-.882-2.439-1.44-5.207-1.247-2.767.193-4.924 1.065-4.816 1.947z"/> - </g> - </g> -</svg> diff --git a/img/flags/1x1/iq.svg b/img/flags/1x1/iq.svg deleted file mode 100644 index 100c336..0000000 --- a/img/flags/1x1/iq.svg +++ /dev/null @@ -1,10 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" height="512" width="512" viewBox="0 0 512 512"> - <path fill="#fff" d="M0 170.667h512v170.667H0z"/> - <path fill="#ce1126" d="M0 0h512v170.667H0z"/> - <path d="M0 341.333h512V512H0z"/> - <g transform="translate(-276.554 -99.037) scale(1.8686)" fill="#007a3d"> - <path d="M325.525 173.177c-.558-.294-1.186-.767-1.395-1.053-.314-.44-.13-.456 1.163-.105 2.32.628 3.815.383 5.298-.873l1.31-1.103 1.54.784c.847.428 1.747.724 2.007.656.667-.176 2.05-1.95 2.005-2.564-.054-.76.587-.57.896.263.615 1.63-.28 3.503-1.865 3.918-.774.203-1.488.128-2.66-.28-1.438-.5-1.683-.494-2.405.058-1.617 1.24-3.87 1.356-5.893.3zm5.733-5.242c-.563-.716-1.24-3.423-1.02-4.088.192-.575.39-.69.914-.526.918.288 1.13.92.993 3.064-.107 1.748-.366 2.207-.887 1.55zm-67.515-1.945c-.185 1.31 2.325 4.568 3.458 5.158-.77.345-1.727.19-2.433.577-3.948 3.948-18.367 18.005-21 21.366 7.8.155 16.45-.105 23.76-.44-.006-5.298 5.02-5.572 8.382-7.502 1.73 2.725 6.074 2.516 6.617 6.618 0 4.91.01 12.306.01 17.646H215.91c-1.17 5.176-5.843 9.125-12.353 7.5 2.014-2.103 5.406-2.827 6.62-5.734 1.024-6.365-2.046-10.296-4.032-13.907 3.284-1.194 3.782-1.492 7.12-3.736-2.342 7.12 6.092 6.338 12.354 6.175.21-2.418.088-5.272-1.767-5.625 2.396-.87 2.794-1.168 6.62-4.412v9.592c14.885 0 30.942-.11 46.138-.11 0-3.003.796-7.825-1.58-7.825-2.27 0-.107 6.173-1.87 6.173h-35.63c0-1.328-.034-4.104-.034-6.104 1.51-1.512 1.33-1.38 11.648-11.7 1.028-1.028 8.266-7.566 14.6-13.71zm89.06-.253c2.488 1.338 4.457 3.19 7.502 3.97-.353 1.26-1.475 1.76-1.77 3.088v26.91c3.403.75 4.12-1.178 5.738-2.205.442 4.307 3.185 8.53 3.088 11.91h-14.558v-43.673zM333.39 180.15s5.297-4.472 5.297-4.644v23.485l3.814-.005c0-8.948-.117-18.023-.117-26.338 1.548-1.55 4.58-3.792 5.338-5.36v42.06c-10.745 0-30.792.013-33.442.013-.493-8.73-.577-17.77 9.6-15.827v-3.562c-.31-.608-.87.148-1-.644 1.617-1.617 2.164-2.03 6.54-5.85 0 4.61.08 15.498.08 15.498 1.07 0 3.153.004 3.857.004 0 0 .036-18.228.036-18.83zm-12.553 18.6c.716 1.076 3.155 1.057 3.04-.754-.41-1.493-3.615-.924-3.04.755z"/> - <circle cx="224.026" cy="214.369" r="2.042"/> - <path d="M287.048 165.78c2.488 1.338 4.457 3.19 7.502 3.97-.353 1.26-1.476 1.76-1.768 3.087v26.91c3.4.75 4.117-1.178 5.736-2.205.44 4.307 3.185 8.53 3.088 11.91h-14.56c.002-14.555.002-29.114.002-43.673z"/> - </g> -</svg> diff --git a/img/flags/1x1/ir.svg b/img/flags/1x1/ir.svg deleted file mode 100644 index a6419b5..0000000 --- a/img/flags/1x1/ir.svg +++ /dev/null @@ -1,223 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" height="512" width="512" viewBox="0 0 512 512"> - <defs> - <clipPath id="a"> - <path fill-opacity=".67" d="M185.98 0h496.06v496.06H185.98z"/> - </clipPath> - </defs> - <g clip-path="url(#a)" fill-rule="evenodd" transform="translate(-191.96) scale(1.0321)"> - <path fill="#fff" d="M0 0h868.11v496.06H0z"/> - <path fill="#da0000" d="M0 333.13h868.11v162.93H0z"/> - <g stroke-width="1pt" fill="#fff"> - <path d="M165.025 340.035h47.543v3.271h-47.543zM172.114 356.393h3.271v3.177h-3.271zM212.691 356.29v3.271h-9.5v-3.271zM217.802 340.035h3.272v19.532h-3.272z"/> - <path d="M236.728 356.29v3.271h-18.006v-3.271zM203.19 348.648h3.272v10.92h-3.272z"/> - <path d="M234.05 340.035h3.272v19.532h-3.272zM225.87 340.035h3.273v19.532h-3.272zM182.466 347.809v3.271h-17.352v-3.271zM220.542 347.809v3.271H203.19v-3.271z"/> - <path d="M203.19 348.648h3.272v10.92h-3.272z"/> - <path d="M203.19 348.648h3.272v10.92h-3.272z"/> - <path d="M203.19 348.648h3.272v10.92h-3.272zM165.114 348.648h3.271v10.92h-3.271zM193.023 348.648h3.272v10.92h-3.272zM179.196 348.648h3.272v10.92h-3.272z"/> - <path d="M195.319 356.29v3.271H180.65v-3.271zM196.295 347.809v3.271h-9.3v-3.271z"/> - </g> - <g stroke-width="1pt" fill="#fff"> - <path d="M86.94 340.035h47.543v3.271H86.94zM94.029 356.393H97.3v3.177H94.03zM134.606 356.29v3.271h-9.5v-3.271zM139.717 340.035h3.272v19.532h-3.272z"/> - <path d="M158.643 356.29v3.271h-18.006v-3.271zM125.105 348.648h3.272v10.92h-3.272z"/> - <path d="M155.965 340.035h3.272v19.532h-3.272zM147.786 340.035h3.272v19.532h-3.272zM104.381 347.809v3.271H87.03v-3.271zM142.457 347.809v3.271h-17.352v-3.271z"/> - <path d="M125.105 348.648h3.272v10.92h-3.272z"/> - <path d="M125.105 348.648h3.272v10.92h-3.272z"/> - <path d="M125.105 348.648h3.272v10.92h-3.272zM87.029 348.648H90.3v10.92H87.03zM114.938 348.648h3.272v10.92h-3.272zM101.11 348.648h3.273v10.92h-3.272z"/> - <path d="M117.234 356.29v3.271h-14.668v-3.271zM118.21 347.809v3.271h-9.3v-3.271z"/> - </g> - <g stroke-width="1pt" fill="#fff"> - <path d="M242.465 340.035h47.543v3.271h-47.543zM249.554 356.393h3.271v3.177h-3.271zM290.131 356.29v3.271h-9.5v-3.271zM295.242 340.035h3.272v19.532h-3.272z"/> - <path d="M314.168 356.29v3.271h-18.006v-3.271zM280.63 348.648h3.272v10.92h-3.272z"/> - <path d="M311.49 340.035h3.272v19.532h-3.272zM303.31 340.035h3.273v19.532h-3.272zM259.906 347.809v3.271h-17.352v-3.271zM297.982 347.809v3.271H280.63v-3.271z"/> - <path d="M280.63 348.648h3.272v10.92h-3.272z"/> - <path d="M280.63 348.648h3.272v10.92h-3.272z"/> - <path d="M280.63 348.648h3.272v10.92h-3.272zM242.554 348.648h3.271v10.92h-3.271zM270.463 348.648h3.272v10.92h-3.272zM256.636 348.648h3.272v10.92h-3.272z"/> - <path d="M272.759 356.29v3.271H258.09v-3.271zM273.735 347.809v3.271h-9.3v-3.271z"/> - </g> - <g stroke-width="1pt" fill="#fff"> - <path d="M789.275 340.035h47.543v3.271h-47.543zM796.364 356.393h3.271v3.177h-3.271zM836.941 356.29v3.271h-9.5v-3.271zM842.052 340.035h3.272v19.532h-3.272z"/> - <path d="M860.978 356.29v3.271h-18.006v-3.271zM827.44 348.648h3.272v10.92h-3.272z"/> - <path d="M858.3 340.035h3.272v19.532H858.3zM850.12 340.035h3.273v19.532h-3.272zM806.716 347.809v3.271h-17.352v-3.271zM844.792 347.809v3.271H827.44v-3.271z"/> - <path d="M827.44 348.648h3.272v10.92h-3.272z"/> - <path d="M827.44 348.648h3.272v10.92h-3.272z"/> - <path d="M827.44 348.648h3.272v10.92h-3.272zM789.364 348.648h3.271v10.92h-3.271zM817.273 348.648h3.272v10.92h-3.272zM803.446 348.648h3.272v10.92h-3.272z"/> - <path d="M819.569 356.29v3.271H804.9v-3.271zM820.545 347.809v3.271h-9.3v-3.271z"/> - </g> - <g stroke-width="1pt" fill="#fff"> - <path d="M320.405 340.035h47.543v3.271h-47.543zM327.494 356.393h3.271v3.177h-3.271zM368.071 356.29v3.271h-9.5v-3.271zM373.182 340.035h3.272v19.532h-3.272z"/> - <path d="M392.108 356.29v3.271h-18.006v-3.271zM358.57 348.648h3.272v10.92h-3.272z"/> - <path d="M389.43 340.035h3.272v19.532h-3.272zM381.25 340.035h3.273v19.532h-3.272zM337.846 347.809v3.271h-17.352v-3.271zM375.922 347.809v3.271H358.57v-3.271z"/> - <path d="M358.57 348.648h3.272v10.92h-3.272z"/> - <path d="M358.57 348.648h3.272v10.92h-3.272z"/> - <path d="M358.57 348.648h3.272v10.92h-3.272zM320.494 348.648h3.271v10.92h-3.271zM348.403 348.648h3.272v10.92h-3.272zM334.576 348.648h3.272v10.92h-3.272z"/> - <path d="M350.699 356.29v3.271H336.03v-3.271zM351.675 347.809v3.271h-9.3v-3.271z"/> - </g> - <g stroke-width="1pt" fill="#fff"> - <path d="M398.625 340.035h47.543v3.271h-47.543zM405.714 356.393h3.271v3.177h-3.271zM446.291 356.29v3.271h-9.5v-3.271zM451.402 340.035h3.272v19.532h-3.272z"/> - <path d="M470.328 356.29v3.271h-18.006v-3.271zM436.79 348.648h3.272v10.92h-3.272z"/> - <path d="M467.65 340.035h3.272v19.532h-3.272zM459.47 340.035h3.273v19.532h-3.272zM416.066 347.809v3.271h-17.352v-3.271zM454.142 347.809v3.271H436.79v-3.271z"/> - <path d="M436.79 348.648h3.272v10.92h-3.272z"/> - <path d="M436.79 348.648h3.272v10.92h-3.272z"/> - <path d="M436.79 348.648h3.272v10.92h-3.272zM398.714 348.648h3.271v10.92h-3.271zM426.623 348.648h3.272v10.92h-3.272zM412.796 348.648h3.272v10.92h-3.272z"/> - <path d="M428.919 356.29v3.271H414.25v-3.271zM429.895 347.809v3.271h-9.3v-3.271z"/> - </g> - <path fill="#239f40" d="M0 0h868.11v162.93H0z"/> - <g stroke-width="1pt" fill="#fff"> - <path d="M477.305 340.035h47.543v3.271h-47.543zM484.394 356.393h3.271v3.177h-3.271zM524.971 356.29v3.271h-9.5v-3.271zM530.082 340.035h3.272v19.532h-3.272z"/> - <path d="M549.008 356.29v3.271h-18.006v-3.271zM515.47 348.648h3.272v10.92h-3.272z"/> - <path d="M546.33 340.035h3.272v19.532h-3.272zM538.15 340.035h3.273v19.532h-3.272zM494.746 347.809v3.271h-17.352v-3.271zM532.822 347.809v3.271H515.47v-3.271z"/> - <path d="M515.47 348.648h3.272v10.92h-3.272z"/> - <path d="M515.47 348.648h3.272v10.92h-3.272z"/> - <path d="M515.47 348.648h3.272v10.92h-3.272zM477.394 348.648h3.271v10.92h-3.271zM505.303 348.648h3.272v10.92h-3.272zM491.476 348.648h3.272v10.92h-3.272z"/> - <path d="M507.599 356.29v3.271H492.93v-3.271zM508.575 347.809v3.271h-9.3v-3.271z"/> - </g> - <g stroke-width="1pt" fill="#fff"> - <path d="M555.535 340.035h47.543v3.271h-47.543zM562.624 356.393h3.271v3.177h-3.271zM603.201 356.29v3.271h-9.5v-3.271zM608.312 340.035h3.272v19.532h-3.272z"/> - <path d="M627.238 356.29v3.271h-18.006v-3.271zM593.7 348.648h3.272v10.92H593.7z"/> - <path d="M624.56 340.035h3.272v19.532h-3.272zM616.38 340.035h3.273v19.532h-3.272zM572.976 347.809v3.271h-17.352v-3.271zM611.052 347.809v3.271H593.7v-3.271z"/> - <path d="M593.7 348.648h3.272v10.92H593.7z"/> - <path d="M593.7 348.648h3.272v10.92H593.7z"/> - <path d="M593.7 348.648h3.272v10.92H593.7zM555.624 348.648h3.271v10.92h-3.271zM583.533 348.648h3.272v10.92h-3.272zM569.706 348.648h3.272v10.92h-3.272z"/> - <path d="M585.829 356.29v3.271H571.16v-3.271zM586.805 347.809v3.271h-9.3v-3.271z"/> - </g> - <g stroke-width="1pt" fill="#fff"> - <path d="M633.755 340.035h47.543v3.271h-47.543zM640.844 356.393h3.271v3.177h-3.271zM681.421 356.29v3.271h-9.5v-3.271zM686.532 340.035h3.272v19.532h-3.272z"/> - <path d="M705.458 356.29v3.271h-18.006v-3.271zM671.92 348.648h3.272v10.92h-3.272z"/> - <path d="M702.78 340.035h3.272v19.532h-3.272zM694.6 340.035h3.273v19.532H694.6zM651.196 347.809v3.271h-17.352v-3.271zM689.272 347.809v3.271H671.92v-3.271z"/> - <path d="M671.92 348.648h3.272v10.92h-3.272z"/> - <path d="M671.92 348.648h3.272v10.92h-3.272z"/> - <path d="M671.92 348.648h3.272v10.92h-3.272zM633.844 348.648h3.271v10.92h-3.271zM661.753 348.648h3.272v10.92h-3.272zM647.926 348.648h3.272v10.92h-3.272z"/> - <path d="M664.049 356.29v3.271H649.38v-3.271zM665.025 347.809v3.271h-9.3v-3.271z"/> - </g> - <g stroke-width="1pt" fill="#fff"> - <path d="M712.435 340.035h47.543v3.271h-47.543zM719.524 356.393h3.271v3.177h-3.271zM760.101 356.29v3.271h-9.5v-3.271zM765.212 340.035h3.272v19.532h-3.272z"/> - <path d="M784.138 356.29v3.271h-18.006v-3.271zM750.6 348.648h3.272v10.92H750.6z"/> - <path d="M781.46 340.035h3.272v19.532h-3.272zM773.28 340.035h3.273v19.532h-3.272zM729.876 347.809v3.271h-17.352v-3.271zM767.952 347.809v3.271H750.6v-3.271z"/> - <path d="M750.6 348.648h3.272v10.92H750.6z"/> - <path d="M750.6 348.648h3.272v10.92H750.6z"/> - <path d="M750.6 348.648h3.272v10.92H750.6zM712.524 348.648h3.271v10.92h-3.271zM740.433 348.648h3.272v10.92h-3.272zM726.606 348.648h3.272v10.92h-3.272z"/> - <path d="M742.729 356.29v3.271H728.06v-3.271zM743.705 347.809v3.271h-9.3v-3.271z"/> - </g> - <g stroke-width="1pt" fill="#fff"> - <path d="M7.92 340.035h47.542v3.271H7.919zM15.008 356.393h3.271v3.177h-3.271zM55.585 356.29v3.271h-9.5v-3.271zM60.696 340.035h3.272v19.532h-3.272z"/> - <path d="M79.622 356.29v3.271H61.616v-3.271zM46.084 348.648h3.272v10.92h-3.272z"/> - <path d="M76.944 340.035h3.272v19.532h-3.272zM68.765 340.035h3.272v19.532h-3.272zM25.36 347.809v3.271H8.008v-3.271zM63.436 347.809v3.271H46.084v-3.271z"/> - <path d="M46.084 348.648h3.272v10.92h-3.272z"/> - <path d="M46.084 348.648h3.272v10.92h-3.272z"/> - <path d="M46.084 348.648h3.272v10.92h-3.272zM8.008 348.648h3.271v10.92H8.008zM35.917 348.648h3.272v10.92h-3.272zM22.09 348.648h3.272v10.92H22.09z"/> - <path d="M38.213 356.29v3.271H23.545v-3.271zM39.189 347.809v3.271h-9.3v-3.271z"/> - </g> - <g stroke-width="1pt" fill="#fff"> - <path d="M165.025 138.975h47.543v3.271h-47.543zM172.114 155.333h3.271v3.177h-3.271zM212.691 155.23v3.271h-9.5v-3.271zM217.802 138.975h3.272v19.532h-3.272z"/> - <path d="M236.728 155.23v3.271h-18.006v-3.271zM203.19 147.588h3.272v10.92h-3.272z"/> - <path d="M234.05 138.975h3.272v19.532h-3.272zM225.87 138.975h3.273v19.532h-3.272zM182.466 146.749v3.271h-17.352v-3.271zM220.542 146.749v3.271H203.19v-3.271z"/> - <path d="M203.19 147.588h3.272v10.92h-3.272z"/> - <path d="M203.19 147.588h3.272v10.92h-3.272z"/> - <path d="M203.19 147.588h3.272v10.92h-3.272zM165.114 147.588h3.271v10.92h-3.271zM193.023 147.588h3.272v10.92h-3.272zM179.196 147.588h3.272v10.92h-3.272z"/> - <path d="M195.319 155.23v3.271H180.65v-3.271zM196.295 146.749v3.271h-9.3v-3.271z"/> - </g> - <g stroke-width="1pt" fill="#fff"> - <path d="M86.94 138.975h47.543v3.271H86.94zM94.029 155.333H97.3v3.177H94.03zM134.606 155.23v3.271h-9.5v-3.271zM139.717 138.975h3.272v19.532h-3.272z"/> - <path d="M158.643 155.23v3.271h-18.006v-3.271zM125.105 147.588h3.272v10.92h-3.272z"/> - <path d="M155.965 138.975h3.272v19.532h-3.272zM147.786 138.975h3.272v19.532h-3.272zM104.381 146.749v3.271H87.03v-3.271zM142.457 146.749v3.271h-17.352v-3.271z"/> - <path d="M125.105 147.588h3.272v10.92h-3.272z"/> - <path d="M125.105 147.588h3.272v10.92h-3.272z"/> - <path d="M125.105 147.588h3.272v10.92h-3.272zM87.029 147.588H90.3v10.92H87.03zM114.938 147.588h3.272v10.92h-3.272zM101.11 147.588h3.273v10.92h-3.272z"/> - <path d="M117.234 155.23v3.271h-14.668v-3.271zM118.21 146.749v3.271h-9.3v-3.271z"/> - </g> - <g stroke-width="1pt" fill="#fff"> - <path d="M242.465 138.975h47.543v3.271h-47.543zM249.554 155.333h3.271v3.177h-3.271zM290.131 155.23v3.271h-9.5v-3.271zM295.242 138.975h3.272v19.532h-3.272z"/> - <path d="M314.168 155.23v3.271h-18.006v-3.271zM280.63 147.588h3.272v10.92h-3.272z"/> - <path d="M311.49 138.975h3.272v19.532h-3.272zM303.31 138.975h3.273v19.532h-3.272zM259.906 146.749v3.271h-17.352v-3.271zM297.982 146.749v3.271H280.63v-3.271z"/> - <path d="M280.63 147.588h3.272v10.92h-3.272z"/> - <path d="M280.63 147.588h3.272v10.92h-3.272z"/> - <path d="M280.63 147.588h3.272v10.92h-3.272zM242.554 147.588h3.271v10.92h-3.271zM270.463 147.588h3.272v10.92h-3.272zM256.636 147.588h3.272v10.92h-3.272z"/> - <path d="M272.759 155.23v3.271H258.09v-3.271zM273.735 146.749v3.271h-9.3v-3.271z"/> - </g> - <g stroke-width="1pt" fill="#fff"> - <path d="M789.275 138.975h47.543v3.271h-47.543zM796.364 155.333h3.271v3.177h-3.271zM836.941 155.23v3.271h-9.5v-3.271zM842.052 138.975h3.272v19.532h-3.272z"/> - <path d="M860.978 155.23v3.271h-18.006v-3.271zM827.44 147.588h3.272v10.92h-3.272z"/> - <path d="M858.3 138.975h3.272v19.532H858.3zM850.12 138.975h3.273v19.532h-3.272zM806.716 146.749v3.271h-17.352v-3.271zM844.792 146.749v3.271H827.44v-3.271z"/> - <path d="M827.44 147.588h3.272v10.92h-3.272z"/> - <path d="M827.44 147.588h3.272v10.92h-3.272z"/> - <path d="M827.44 147.588h3.272v10.92h-3.272zM789.364 147.588h3.271v10.92h-3.271zM817.273 147.588h3.272v10.92h-3.272zM803.446 147.588h3.272v10.92h-3.272z"/> - <path d="M819.569 155.23v3.271H804.9v-3.271zM820.545 146.749v3.271h-9.3v-3.271z"/> - </g> - <g stroke-width="1pt" fill="#fff"> - <path d="M320.405 138.975h47.543v3.271h-47.543zM327.494 155.333h3.271v3.177h-3.271zM368.071 155.23v3.271h-9.5v-3.271zM373.182 138.975h3.272v19.532h-3.272z"/> - <path d="M392.108 155.23v3.271h-18.006v-3.271zM358.57 147.588h3.272v10.92h-3.272z"/> - <path d="M389.43 138.975h3.272v19.532h-3.272zM381.25 138.975h3.273v19.532h-3.272zM337.846 146.749v3.271h-17.352v-3.271zM375.922 146.749v3.271H358.57v-3.271z"/> - <path d="M358.57 147.588h3.272v10.92h-3.272z"/> - <path d="M358.57 147.588h3.272v10.92h-3.272z"/> - <path d="M358.57 147.588h3.272v10.92h-3.272zM320.494 147.588h3.271v10.92h-3.271zM348.403 147.588h3.272v10.92h-3.272zM334.576 147.588h3.272v10.92h-3.272z"/> - <path d="M350.699 155.23v3.271H336.03v-3.271zM351.675 146.749v3.271h-9.3v-3.271z"/> - </g> - <g stroke-width="1pt" fill="#fff"> - <path d="M398.625 138.975h47.543v3.271h-47.543zM405.714 155.333h3.271v3.177h-3.271zM446.291 155.23v3.271h-9.5v-3.271zM451.402 138.975h3.272v19.532h-3.272z"/> - <path d="M470.328 155.23v3.271h-18.006v-3.271zM436.79 147.588h3.272v10.92h-3.272z"/> - <path d="M467.65 138.975h3.272v19.532h-3.272zM459.47 138.975h3.273v19.532h-3.272zM416.066 146.749v3.271h-17.352v-3.271zM454.142 146.749v3.271H436.79v-3.271z"/> - <path d="M436.79 147.588h3.272v10.92h-3.272z"/> - <path d="M436.79 147.588h3.272v10.92h-3.272z"/> - <path d="M436.79 147.588h3.272v10.92h-3.272zM398.714 147.588h3.271v10.92h-3.271zM426.623 147.588h3.272v10.92h-3.272zM412.796 147.588h3.272v10.92h-3.272z"/> - <path d="M428.919 155.23v3.271H414.25v-3.271zM429.895 146.749v3.271h-9.3v-3.271z"/> - </g> - <g stroke-width="1pt" fill="#fff"> - <path d="M477.305 138.975h47.543v3.271h-47.543zM484.394 155.333h3.271v3.177h-3.271zM524.971 155.23v3.271h-9.5v-3.271zM530.082 138.975h3.272v19.532h-3.272z"/> - <path d="M549.008 155.23v3.271h-18.006v-3.271zM515.47 147.588h3.272v10.92h-3.272z"/> - <path d="M546.33 138.975h3.272v19.532h-3.272zM538.15 138.975h3.273v19.532h-3.272zM494.746 146.749v3.271h-17.352v-3.271zM532.822 146.749v3.271H515.47v-3.271z"/> - <path d="M515.47 147.588h3.272v10.92h-3.272z"/> - <path d="M515.47 147.588h3.272v10.92h-3.272z"/> - <path d="M515.47 147.588h3.272v10.92h-3.272zM477.394 147.588h3.271v10.92h-3.271zM505.303 147.588h3.272v10.92h-3.272zM491.476 147.588h3.272v10.92h-3.272z"/> - <path d="M507.599 155.23v3.271H492.93v-3.271zM508.575 146.749v3.271h-9.3v-3.271z"/> - </g> - <g stroke-width="1pt" fill="#fff"> - <path d="M555.535 138.975h47.543v3.271h-47.543zM562.624 155.333h3.271v3.177h-3.271zM603.201 155.23v3.271h-9.5v-3.271zM608.312 138.975h3.272v19.532h-3.272z"/> - <path d="M627.238 155.23v3.271h-18.006v-3.271zM593.7 147.588h3.272v10.92H593.7z"/> - <path d="M624.56 138.975h3.272v19.532h-3.272zM616.38 138.975h3.273v19.532h-3.272zM572.976 146.749v3.271h-17.352v-3.271zM611.052 146.749v3.271H593.7v-3.271z"/> - <path d="M593.7 147.588h3.272v10.92H593.7z"/> - <path d="M593.7 147.588h3.272v10.92H593.7z"/> - <path d="M593.7 147.588h3.272v10.92H593.7zM555.624 147.588h3.271v10.92h-3.271zM583.533 147.588h3.272v10.92h-3.272zM569.706 147.588h3.272v10.92h-3.272z"/> - <path d="M585.829 155.23v3.271H571.16v-3.271zM586.805 146.749v3.271h-9.3v-3.271z"/> - </g> - <g stroke-width="1pt" fill="#fff"> - <path d="M633.755 138.975h47.543v3.271h-47.543zM640.844 155.333h3.271v3.177h-3.271zM681.421 155.23v3.271h-9.5v-3.271zM686.532 138.975h3.272v19.532h-3.272z"/> - <path d="M705.458 155.23v3.271h-18.006v-3.271zM671.92 147.588h3.272v10.92h-3.272z"/> - <path d="M702.78 138.975h3.272v19.532h-3.272zM694.6 138.975h3.273v19.532H694.6zM651.196 146.749v3.271h-17.352v-3.271zM689.272 146.749v3.271H671.92v-3.271z"/> - <path d="M671.92 147.588h3.272v10.92h-3.272z"/> - <path d="M671.92 147.588h3.272v10.92h-3.272z"/> - <path d="M671.92 147.588h3.272v10.92h-3.272zM633.844 147.588h3.271v10.92h-3.271zM661.753 147.588h3.272v10.92h-3.272zM647.926 147.588h3.272v10.92h-3.272z"/> - <path d="M664.049 155.23v3.271H649.38v-3.271zM665.025 146.749v3.271h-9.3v-3.271z"/> - </g> - <g stroke-width="1pt" fill="#fff"> - <path d="M712.435 138.975h47.543v3.271h-47.543zM719.524 155.333h3.271v3.177h-3.271zM760.101 155.23v3.271h-9.5v-3.271zM765.212 138.975h3.272v19.532h-3.272z"/> - <path d="M784.138 155.23v3.271h-18.006v-3.271zM750.6 147.588h3.272v10.92H750.6z"/> - <path d="M781.46 138.975h3.272v19.532h-3.272zM773.28 138.975h3.273v19.532h-3.272zM729.876 146.749v3.271h-17.352v-3.271zM767.952 146.749v3.271H750.6v-3.271z"/> - <path d="M750.6 147.588h3.272v10.92H750.6z"/> - <path d="M750.6 147.588h3.272v10.92H750.6z"/> - <path d="M750.6 147.588h3.272v10.92H750.6zM712.524 147.588h3.271v10.92h-3.271zM740.433 147.588h3.272v10.92h-3.272zM726.606 147.588h3.272v10.92h-3.272z"/> - <path d="M742.729 155.23v3.271H728.06v-3.271zM743.705 146.749v3.271h-9.3v-3.271z"/> - </g> - <g stroke-width="1pt" fill="#fff"> - <path d="M7.92 138.975h47.542v3.271H7.919zM15.008 155.333h3.271v3.177h-3.271zM55.585 155.23v3.271h-9.5v-3.271zM60.696 138.975h3.272v19.532h-3.272z"/> - <path d="M79.622 155.23v3.271H61.616v-3.271zM46.084 147.588h3.272v10.92h-3.272z"/> - <path d="M76.944 138.975h3.272v19.532h-3.272zM68.765 138.975h3.272v19.532h-3.272zM25.36 146.749v3.271H8.008v-3.271zM63.436 146.749v3.271H46.084v-3.271z"/> - <path d="M46.084 147.588h3.272v10.92h-3.272z"/> - <path d="M46.084 147.588h3.272v10.92h-3.272z"/> - <path d="M46.084 147.588h3.272v10.92h-3.272zM8.008 147.588h3.271v10.92H8.008zM35.917 147.588h3.272v10.92h-3.272zM22.09 147.588h3.272v10.92H22.09z"/> - <path d="M38.213 155.23v3.271H23.545v-3.271zM39.189 146.749v3.271h-9.3v-3.271z"/> - </g> - <g stroke-width="1pt" fill="#d90000"> - <path d="M119.3 328.94h5.86v10.178h-5.86zM274.84 328.94h5.86v10.178h-5.86zM-.042 328.94h5.86v10.178h-5.86zM78.899 328.94h5.86v10.178h-5.86zM157.278 328.94h5.86v10.178h-5.86zM196.058 328.94h5.86v10.178h-5.86zM235.648 328.94h5.86v10.178h-5.86zM313.62 328.94h5.86v10.178h-5.86zM510.36 328.94h5.86v10.178h-5.86zM353.208 328.94h5.86v10.178h-5.86zM391.998 328.94h5.86v10.178h-5.86zM431.178 328.94h5.86v10.178h-5.86zM470.368 328.94h5.86v10.178h-5.86zM783.46 328.94h5.86v10.178h-5.86zM548.338 328.94h5.86v10.178h-5.86zM587.928 328.94h5.86v10.178h-5.86zM627.928 328.94h5.86v10.178h-5.86zM665.498 328.94h5.86v10.178h-5.86zM705.488 328.94h5.86v10.178h-5.86zM744.678 328.94h5.86v10.178h-5.86zM860.63 328.94h5.86v10.178h-5.86zM823.058 328.94h5.86v10.178h-5.86zM39.308 328.94h5.86v10.178h-5.86z"/> - </g> - <g stroke-width="1pt" fill="#239e3f"> - <path d="M119.3 157.55h5.86v10.178h-5.86zM274.84 157.55h5.86v10.178h-5.86zM-.042 157.55h5.86v10.178h-5.86zM78.899 157.55h5.86v10.178h-5.86zM157.278 157.55h5.86v10.178h-5.86zM196.058 157.55h5.86v10.178h-5.86zM235.648 157.55h5.86v10.178h-5.86zM313.62 157.55h5.86v10.178h-5.86zM510.36 157.55h5.86v10.178h-5.86zM353.208 157.55h5.86v10.178h-5.86zM391.998 157.55h5.86v10.178h-5.86zM431.178 157.55h5.86v10.178h-5.86zM470.368 157.55h5.86v10.178h-5.86zM783.46 157.55h5.86v10.178h-5.86zM548.338 157.55h5.86v10.178h-5.86zM587.928 157.55h5.86v10.178h-5.86zM627.928 157.55h5.86v10.178h-5.86zM665.498 157.55h5.86v10.178h-5.86zM705.488 157.55h5.86v10.178h-5.86zM744.678 157.55h5.86v10.178h-5.86zM860.63 157.55h5.86v10.178h-5.86zM823.058 157.55h5.86v10.178h-5.86zM39.308 157.55h5.86v10.178h-5.86z"/> - </g> - <g fill="#da0000"> - <path d="M457.079 191.36c8.19 10.039 33.438 65.548-15.241 101.91-22.884 17.223-8.714 18.093-8.037 20.988 36.785-19.539 48.799-46.013 48.52-69.727-.28-23.715-12.853-44.669-25.242-53.167z"/> - <path d="M461.949 188.78c18.166 9.301 57.701 56.079 15.149 108.85 26.439-5.868 60.053-83.729-15.149-108.85zM406.159 188.78c-18.166 9.301-57.701 56.079-15.149 108.85-26.439-5.868-60.053-83.729 15.149-108.85z"/> - <path d="M410.959 191.36c-8.19 10.039-33.438 65.548 15.241 101.91 22.884 17.223 8.714 18.093 8.037 20.988-36.785-19.539-48.799-46.013-48.52-69.727.28-23.715 12.853-44.669 25.242-53.167z"/> - <path d="M480.719 309.2c-14.398.228-32.549-1.984-46.01-8.979 2.217 4.311 4.059 7.026 6.276 11.337 12.838 1.184 30.554 2.649 39.734-2.358zM388.699 309.2c14.398.228 32.549-1.984 46.01-8.979-2.217 4.311-4.059 7.026-6.276 11.337-12.838 1.184-30.554 2.649-39.734-2.358zM415.109 174.8c2.917 7.753 10.57 8.88 18.762 4.315 5.97 3.582 15.202 3.809 18.386-3.94 2.421 19.169-17.736 14.634-18.487 10.882-7.504 7.254-21.475 3.064-18.661-11.257z"/> - <path d="M434.409 321.27l7.57-8.652 1.082-116.44-9.012-7.931-9.012 7.57 1.802 117.16 7.57 8.291z"/> - </g> - </g> -</svg> diff --git a/img/flags/1x1/is.svg b/img/flags/1x1/is.svg deleted file mode 100644 index f0c46ca..0000000 --- a/img/flags/1x1/is.svg +++ /dev/null @@ -1,12 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" height="512" width="512" viewBox="0 0 512 512"> - <defs> - <clipPath id="a"> - <path fill-opacity=".67" d="M85.43 0h486v486h-486z"/> - </clipPath> - </defs> - <g fill-rule="evenodd" clip-path="url(#a)" transform="translate(-90) scale(1.0535)" stroke-width="0"> - <path fill="#003897" d="M0 0h675v486H0z"/> - <path d="M0 189h189V0h108v189h378v108H297v189H189V297H0V189z" fill="#fff"/> - <path d="M0 216h216V0h54v216h405v54H270v216h-54V270H0v-54z" fill="#d72828"/> - </g> -</svg> diff --git a/img/flags/1x1/it.svg b/img/flags/1x1/it.svg deleted file mode 100644 index 125d41c..0000000 --- a/img/flags/1x1/it.svg +++ /dev/null @@ -1,7 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" height="512" width="512" viewBox="0 0 512 512"> - <g fill-rule="evenodd" stroke-width="1pt"> - <path fill="#fff" d="M0 0h512.005v512H0z"/> - <path fill="#009246" d="M0 0h170.667v512H0z"/> - <path fill="#ce2b37" d="M341.333 0H512v512H341.333z"/> - </g> -</svg> diff --git a/img/flags/1x1/je.svg b/img/flags/1x1/je.svg deleted file mode 100644 index 8c3552d..0000000 --- a/img/flags/1x1/je.svg +++ /dev/null @@ -1,32 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" height="512" width="512" viewBox="0,0 30,18"> - <defs> - <clipPath id="a"> - <path fill-opacity=".67" d="M6.152 0h18v18h-18z"/> - </clipPath> - </defs> - <g clip-path="url(#a)" transform="translate(-10.254 -6) scale(1.6667)"> - <path fill="#fff" d="M0 0h30v18H0z"/> - <path d="M0 0v1.156L13.062 9 0 16.844V18h1.969l13.03-7.844L28.032 18H30v-1.156L16.938 9 30 1.156V0h-1.97L15 7.844 1.969 0h-1.97z" fill-rule="evenodd" fill="#df112d"/> - <g transform="translate(.363 -.023) scale(.12217)"> - <path d="M132.66 22.233c3.156 12.778 1.425 28.56-12.829 37.316-14.255-8.756-15.986-24.538-12.829-37.316 3.36-3.055 18.632-4.938 25.658 0z" stroke="#000" stroke-width=".125" fill="#e8112d"/> - <path d="M119.81 19.667c5.226 0 10.093 1.383 12.962 3.176.563-4.405 2.561-8.811 4.918-12.142-2.459-.05-3.561 1.256-3.586 2.613-.615-1.742-3.023-1.64-3.766-.691 2.69 1.818.615 5.046-1.818 4.38-1.143-.313-1.747-1.11-1.961-2.267a1.322 1.322 0 1 0-.564-.088c-.769 1.256-2.148 1.632-3.136 1.356-1.281-.359-1.819-1.512-1.819-2.536 0-2.664 2.561-3.074 3.33-2.613-.051-1.793-2.869-3.227-3.74-1.742.973-1.742.922-4.2-.82-5.84-1.741 1.64-1.793 4.098-.819 5.84-.871-1.485-3.689-.051-3.74 1.742.768-.461 3.33-.051 3.33 2.613 0 1.024-.538 2.177-1.819 2.536-.988.276-2.367-.1-3.137-1.356a1.31 1.31 0 0 0 .552-.398 1.322 1.322 0 1 0-1.115.486c-.214 1.157-.819 1.954-1.961 2.267-2.433.666-4.508-2.562-1.819-4.38-.742-.948-3.15-1.05-3.765.691-.026-1.357-1.127-2.664-3.586-2.613 2.356 3.33 4.354 7.736 4.918 12.142 2.869-1.793 7.736-3.176 12.961-3.176z" stroke="#000" stroke-width=".125" fill="#f9dd16"/> - <g id="b" stroke="#000"> - <g stroke-width=".125" fill="#f9dd16"> - <path d="M130.65 32.2c-.315.075-.315.481-.48.481.819-.023 1.217-.248 1.465-.661-.18.165-.023.48-.083.556.601-.21.887-.722.677-1.067.135.195.526.3.646.315-.421-.33-.12-1.082-.797-1.473.226-.015.662.24.782.541-.105-.676-.211-1.112-.767-1.488.06.068.376.128.511 0-.36-.225-.466-.6-.435-.841.042-.337-.181-.406-.602-.3-.379.094-1.247.15-1.758.15-1.052 0-1.969 0-2.841-.602 1.308.541 2.976-.601 2.976-1.548 0-1.052-1.293-1.909-3.908-1.338-2.615.572-5.801.331-5.801-.54 0-.872 2.284-.993 3.457-.812 1.172.18 2.013.3 4.208-.481-.541.21-2.285.27-3.667-.12-1.383-.391-4.78-.391-4.81 1.442-.03 1.834 3.617 1.667 6.764 1.203 1.833-.27 2.795-.09 2.795.51 0 .572-1.683.812-2.976.662-1.292-.15-2.615-.12-4.148.33-1.28.377-2.164 0-3.577.241-.685.117-2.345 0-3.164-1.352-.504.36-2.022 1.116-2.277 1.852-.361.676-.12 1.349.36 2.01.606.833-.3.707-.946.737-.886.041-2.072-.094-2.691-.797-.548-.622-1.278-1.121-1.861-.66-.3.238-.012.55.225.463.235-.087.513.087.764.197-.401-.172-.842-.038-1.014.115-.237.213.051.619.338.475.225-.112.687-.187.987.088-.325-.063-.663-.05-.825.125s-.037.428.313.412c.562-.025.706.37 1.269.288-.346.045-.542.226-.632.36.526-.24 1.107.409 1.789.256-.266.11-.695.371-.691.572.405-.466 3.126.36 3.186-.662.075.21.06.526-.15.797.348-.21 1.473-.286 1.818-1.097.03.24-.015.556-.225.63.361.119.836-.15 1.322-.87.193-.287.239-.477.206-.692.482.018.831-.103 1.207-.421.391-.33.812.27 1.473-.15.662-.421 1.233-.06 1.593-.27.361-.211.857.074 1.248-.166s.997.118 1.644-.393c1.018.372 2.206 1.063 5.12.528 1.67-.307 2.194.256 2.194 1.022 0 .526-.308.572-.541.586-.929.057-1.328-.347-1.695-.218-.246.088-.396.488-.04.625-.294.15-.256.432-.106.535s.537.01.8-.113c-.338.153-.688.428-.488.716.121.174.427.322.713-.05.287-.375.812-.688 1.146-.638zm-18.51-7.936c-.842-.346-1.126-.355-.932.33.083.294.285.707.488.895.008-.285.113-1.075.444-1.225z"/> - <path d="M114.77 24.264c.842-.346 1.126-.355.932.33-.083.294-.286.707-.489.895-.007-.285-.112-1.075-.443-1.225z"/> - <path d="M113.46 23.802c1.593 0 1.792.748 1.784 1.68-.007 1.007-.548.66-.856 1.953-.12.506-.523.534-.928.534-.406 0-.808-.028-.929-.534-.307-1.292-.849-.946-.856-1.953-.008-.932.191-1.68 1.785-1.68z"/> - <path d="M109.36 27.495c-.406-.24-.668-.074-.833-.029.526.135.547.81 1.75 1.126-.271-.075-.421.075-.677-.06.496.39 1.052.843 2.225.857.654.007.202.346-.226.15.444.459 1.323.083 1.879.917.105-.646-1.037-1.668-.511-2.405-1.622-.069-1.755-.968-2.69-1.683-.761-.582-.829-1.173-1.165-2.28-.153-.501-.74-.814-1.065-.695-.284.104-.388.35-.144.535.244.184.556.209.623.676-.317-.38-.792-.517-1.02-.28-.139.145-.083.482.216.513.487.05.137.525.691.99-.491-.552-.916-.602-1.179-.302-.157.18 0 .5.338.465.489-.05 1.056 1.19 1.788 1.505zm13.07 4.644c-.256.045-.18.466-.526.496.827 0 1.247-.195 1.638-.511-.18.105-.255.376-.27.526.436-.376 1.473-.406 2.014-.3s.631-.15.826-.496c.196-.346-.075-.542-.345-.812-.271-.27-.331-.646-.271-1.278-1.443-1.923-4.028-.992-4.058-.15.932 1.082 1.052.962 1.834 1.112.781.15 1.26.15.736.586-.18.15-.932.08-1.518.106-1.311.057-1.911-.906-2.298-.406-.319.411.01.593.66.57-.45.004-1.047-.02-.945.399.172.706.847-.131 1.11.16-.225-.054-.575.084-.588.296-.012.213.5.488 1.063.04a1.64 1.64 0 0 1 .938-.338z"/> - </g> - <g stroke-width=".125" fill="none"> - <path d="M123.55 29.206c-.469-.172-.899-.277-1.449-.163m-5.621-.06c-.386.83-.152 1.239-.095 1.624m-4.015-5.555c.265.133.414-.242.803.156-.107-.116-.24.308-.538.026m1.895-.182c-.265.133-.414-.242-.803.156.107-.116.24.308.538.026"/> - <path d="M113.73 25.207c-.091.075-.1-.06-.031.295.128.651.279.956-.248.956-.538 0-.375-.305-.248-.956.07-.355.061-.22-.03-.295"/> - </g> - <path d="M113.46 27.706c.428 0 .676-.007.609-.609-.028-.241.293-.337.18-.729.12.481-.789.435-.789.217 0 .218-.909.264-.789-.217-.113.392.207.488.18.73-.067.6.181.608.609.608z" stroke-width=".063" fill="#ff0016"/> - <path d="M113.07 26.489l-1.028-.287m1.028.341l-1.148-.01m1.158.069l-.979.262m1.739-.375l1.028-.287m-1.028.341l1.148-.01m-1.158.069l.979.262" stroke-width=".063"/> - <path d="M108.13 23.414c-.299-.372-1.048-.058-1.063.404.253-.3.666.132.891.041.156-.063.293-.294.172-.445zm-.38.881c-.299-.372-1.047-.058-1.062.404.252-.3.665.132.891.041.156-.062.293-.293.171-.445zm-.2 1.184c-.339-.336-1.047.06-1.01.52.218-.325.676.057.89-.058.148-.08.258-.325.12-.462zm.36 3.669c-.376-.295-1.033.18-.944.634.179-.349.678-.022.877-.161.138-.097.22-.353.067-.473zm-.02.803c-.448-.165-.928.49-.703.893.062-.387.638-.23.785-.423.102-.134.1-.403-.082-.47zm.57.6c-.448-.165-.928.49-.704.893.063-.387.639-.23.786-.423.102-.134.1-.403-.082-.47zm11.74 1.163c-.448-.165-.928.49-.703.893.063-.387.638-.23.785-.423.102-.134.1-.403-.082-.47zm.61.544c-.464-.113-.866.592-.597.968.018-.392.608-.301.732-.51.086-.145.054-.412-.135-.458zm-.43-1.316c-.414-.239-.998.325-.845.76.128-.37.668-.117.846-.283.123-.115.167-.38-.001-.477zm8.35.941c-.464-.113-.866.592-.597.968.019-.392.609-.301.732-.51.086-.145.054-.412-.135-.458zm.02-.737c-.421-.225-.985.359-.818.79.115-.375.664-.141.836-.313.119-.12.154-.385-.018-.477zm.32 1.396c-.468-.093-.839.63-.554.993.002-.392.595-.327.709-.542.08-.149.036-.413-.155-.451zm-15.58-5.197c.294 0 .413.086.413.617 0 1.125-.013 1.609-.375 1.609-.363 0-.338-.46-.338-1.286 0-.43 0-.646-.087-.61 0-.282.125-.33.387-.33z" stroke-width=".013" fill="#0051ba"/> - </g> - <use xlink:href="#b" transform="matrix(.9 0 0 .9 11.6 13.7)" height="18" width="30"/> - <use xlink:href="#b" transform="matrix(.67 0 0 .75 39.2 27.5)" height="18" width="30"/> - </g> - </g> -</svg> diff --git a/img/flags/1x1/jm.svg b/img/flags/1x1/jm.svg deleted file mode 100644 index f241be7..0000000 --- a/img/flags/1x1/jm.svg +++ /dev/null @@ -1,8 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" height="512" width="512" viewBox="0 0 512 512"> - <g fill-rule="evenodd"> - <path d="M0 0l255.999 255.999L0 511.998zM511.998 0L255.999 255.999l255.999 255.999z"/> - <path d="M0 0l255.999 255.999L511.998 0zM0 511.998l255.999-255.999 255.999 255.999z" fill="#090"/> - <path d="M511.998 0h-47.701L0 464.297v47.701h47.701L511.998 47.701z" fill="#fc0"/> - <path d="M0 0v47.703L464.297 512h47.701v-47.701L47.701.002z" fill="#fc0"/> - </g> -</svg> diff --git a/img/flags/1x1/jo.svg b/img/flags/1x1/jo.svg deleted file mode 100644 index 4d7fcdd..0000000 --- a/img/flags/1x1/jo.svg +++ /dev/null @@ -1,16 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" height="512" width="512" viewBox="0 0 512 512"> - <defs> - <clipPath id="a"> - <path fill-opacity=".67" d="M113.56 0h493.5v493.5h-493.5z"/> - </clipPath> - </defs> - <g clip-path="url(#a)" transform="translate(-117.82) scale(1.0375)"> - <g fill-rule="evenodd" stroke-width="1pt"> - <path d="M0 0h987v164.5H0z"/> - <path fill="#fff" d="M0 164.5h987V329H0z"/> - <path fill="#090" d="M0 329h987v164.5H0z"/> - <path d="M0 493.5l493.5-246.75L0 0v493.5z" fill="red"/> - <path fill="#fff" d="M164.766 243.954l22.101 10.645h-24.531l5.459 23.923-15.294-19.2-15.296 19.2 5.459-23.923h-24.53l22.1-10.645-15.294-19.181 22.102 10.65L152.5 211.5l5.457 23.923 22.101-10.65z"/> - </g> - </g> -</svg> diff --git a/img/flags/1x1/jp.svg b/img/flags/1x1/jp.svg deleted file mode 100644 index a7a1cbb..0000000 --- a/img/flags/1x1/jp.svg +++ /dev/null @@ -1,11 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" height="512" width="512" viewBox="0 0 512 512"> - <defs> - <clipPath id="a"> - <path fill-opacity=".67" d="M177.17 0h708.66v708.66H177.17z"/> - </clipPath> - </defs> - <g fill-rule="evenodd" clip-path="url(#a)" transform="translate(-128) scale(.72249)" stroke-width="1pt"> - <path fill="#fff" d="M0 0h1063v708.66H0z"/> - <ellipse cx="523.08" rx="194.93" cy="344.05" transform="translate(-59.707 -34.521) scale(1.1302)" ry="194.93" fill="#d30000"/> - </g> -</svg> diff --git a/img/flags/1x1/ke.svg b/img/flags/1x1/ke.svg deleted file mode 100644 index 098c78f..0000000 --- a/img/flags/1x1/ke.svg +++ /dev/null @@ -1,23 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" height="512" width="512" viewBox="0 0 512 512"> - <defs> - <path stroke-miterlimit="10" d="M-28.58 47.5l1.733 1 46.713-80.91c2.732-.73 4.232-3.33 5.732-5.927 1-1.732 5-8.66 6.734-17.663-6.93 6.003-10.93 12.93-11.93 14.663-1.5 2.598-3 5.196-2.268 7.928z" id="a"/> - </defs> - <path d="M0 0h512v512H0z" fill="#fff"/> - <path d="M0 0h512v153.6H0z"/> - <path d="M0 358.4h512V512H0z" fill="#060"/> - <g id="b" transform="matrix(3.2 0 0 3.2 255.854 256)"> - <use height="100%" width="100%" xlink:href="#a" stroke="#000"/> - <use height="100%" width="100%" xlink:href="#a" fill="#fff"/> - </g> - <use height="100%" width="100%" xlink:href="#b" transform="matrix(-1 0 0 1 511.708 0)"/> - <path d="M255.854 102.4c-19.2 0-51.2 51.2-60.8 76.8H0v153.6h195.055c9.6 25.6 41.6 76.8 60.8 76.8 19.2 0 51.2-51.2 60.8-76.8H512V179.2H316.654c-9.6-25.6-41.6-76.8-60.8-76.8z" fill="#b00"/> - <path id="c" d="M316.654 332.8c9.6-25.6 16-51.2 16-76.8 0-25.6-6.4-51.2-16-76.8-9.6 25.6-16 51.2-16 76.8 0 25.6 6.4 51.2 16 76.8"/> - <use height="100%" width="100%" xlink:href="#c" transform="matrix(-1 0 0 1 511.708 0)"/> - <g transform="matrix(3.2 0 0 3.2 255.854 256)" fill="#fff"> - <ellipse rx="4" ry="6"/> - <path id="d" d="M1 5.85s4 8 4 21-4 21-4 21z"/> - <use height="100%" width="100%" xlink:href="#d" transform="scale(-1)"/> - <use height="100%" width="100%" xlink:href="#d" transform="scale(-1 1)"/> - <use height="100%" width="100%" xlink:href="#d" transform="scale(1 -1)"/> - </g> -</svg> diff --git a/img/flags/1x1/kg.svg b/img/flags/1x1/kg.svg deleted file mode 100644 index 5a4be2b..0000000 --- a/img/flags/1x1/kg.svg +++ /dev/null @@ -1,15 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" height="512" width="512" viewBox="0 0 512 512"> - <defs> - <clipPath id="a"> - <path fill-opacity=".67" d="M104.06 0h416.25v416.25H104.06z"/> - </clipPath> - </defs> - <g clip-path="url(#a)" fill-rule="evenodd" transform="matrix(1.23 0 0 1.23 -128 0)"> - <path fill="#be0027" d="M0 0h625v416.25H0z"/> - <path d="M189.795 212.303c11.104-13.504 34.105-.324 52.88-10.048-22.241 1.223-34.364-10.674-51.936-9.006 18.207-11.184 33.707 3.658 54.065-2.308-26.963-2.268-25.794-14.321-50.311-16.033 21.778-9.288 32.549 9.553 53.882 5.268-25.143-5.804-28.491-20.614-47.185-23.75 27.323-4.123 25.542 12.028 52.327 14-27.187-11.661-20.061-21.785-42.8-30.667 25.444-.601 23.757 17.033 49.535 21.658-22.068-14-19.342-26.776-37.52-36.773 21.565.39 23.67 22.462 45.678 29.3-19.632-15.576-14.47-28.71-31.433-42.62 21.449 5.032 18.326 24.074 40.665 36.22-16.555-18.385-10.203-31.547-24.645-46.597 20.629 6.643 12.792 24.74 34.198 41.946-12.271-20.207-4.695-33.094-16.771-50.142 19.153 9.89 9.879 28.35 27.66 46.794-8.37-20.738.012-33.62-8.542-51.983 16.383 12.24 6.639 31.969 19.855 50.789-4.818-25.95 6.375-30.22 2.892-52.945 12.444 15.276-1.465 30.553 8.088 53.056-1.163-25.59 12.434-31.54 10.076-52.085 12.332 18.41-6.916 34.432 1.134 54.149 2.082-24.28 18.036-30.566 18.284-49.46 9.7 17.344-11.472 29.815-8.035 52.809 6.967-25.362 23.964-28.496 25.969-45.548 5.882 20.063-17.288 29.39-15.933 51.626 6.9-22.55 28.146-25.194 32.489-41.85 2.68 21.226-18.212 24.994-24.093 48.443 10.985-19.138 30.197-20.708 38.847-35.844-.68 20.987-24.263 23.739-31.502 43.39 13.597-16.673 30.642-13.78 44.239-28.563-1.435 18.942-25.441 17.87-38.218 37.482 14.744-13.603 36.938-9.527 48.235-21.24-.548 16.755-30.006 15.496-43.898 30.47 17.134-9.385 38.826-3.872 51.4-12.59-2.297 14.689-33.393 11.256-48.255 22.72 20.496-5.68 36.322 3.097 52.927-3.248-8.081 14.298-36.287 5.248-51.262 14.543 17.787-3.012 36.687 7.764 52.918 4.307-5.335 12.358-36.243-.747-52.918 6.94 19.926-.174 32.847 12.549 51.327 11.707-10.051 11.189-37.225-4.197-53.057-1.57 19.316 3.997 34.073 20.002 48.719 20.773-12.02 9.229-34.49-11.786-52.734-9.118 18.784 5.028 34.565 26.399 45.344 26.868-11.613 7.936-34.566-18.263-50.292-17.332 19.102 8.634 27.863 30.499 40.404 33.573-15.527 4.982-30.786-23.753-47.471-24.75 19.326 12.19 20.418 30.828 35.298 39.125-15.656 3.827-26.8-28.59-43.3-31.326 15.845 11.648 18.235 36.528 28.74 44.396-15.94.842-21.7-33.1-38.036-37.95 13.996 11.69 10.645 37.056 21.527 47.856-16.605-3.406-14.465-32.957-31.802-42.908 12.455 15.707 6.119 38.085 14.237 50.679-16.155-6.535-9.138-32.981-24.561-47.96 8.414 16.735-.63 36.25 6.006 52.428-14.758-7.198-4.832-38.523-16.143-50.947 5.199 19.338-4.39 35.34-.525 52.677-15.088-17.5 2.29-35.112-10.797-52.946 3.474 20.469-10.842 34.712-8.591 51.845-11.964-13.975 6.427-36.401-2.868-54.046 2 20.125-16.484 37.754-15.215 50.429-9.738-16.233 10.81-35.432 5.309-53.89-1.16 19.165-19.813 29.579-23.326 47.037-6.27-19.26 15.905-33.18 13.99-52.105-6.35 18.004-24.374 25.222-30.724 42.67-5.2-19.205 21.068-29.403 21.762-49.61-8.12 18.95-29.692 23.112-36.811 37.614-2.658-19.105 27.485-27.647 28.607-45.751-9.704 17.383-33.307 18.088-41.455 31.913-1.235-19.037 30.554-21.395 35.545-41.32-9.661 14.86-35.556 12.932-46.33 25.013 1.699-17.66 36.087-18.752 41.567-34.633-12.783 12.33-36.554 7.22-49.94 17.002 7.45-17.345 39.706-13.668 46.998-26.233-14.28 7.45-39.576.228-52.03 7.678 11.319-16.427 36.425-6.614 50.634-17.926-23.112 3.368-36.996-5.83-52.992-1.572z" fill="#ff0"/> - <path d="M393.427 208.211c0 44.552-36.115 80.666-80.665 80.666-44.551 0-80.666-36.116-80.666-80.666s36.116-80.665 80.666-80.665 80.665 36.116 80.665 80.665z" fill="#ff0"/> - <path d="M383.049 208.37c0 38.732-31.399 70.13-70.13 70.13-38.733 0-70.13-31.4-70.13-70.13 0-38.733 31.398-70.13 70.13-70.13s70.13 31.398 70.13 70.13z" fill="#be0027"/> - <path d="M373.3 208.527c0 33.261-26.964 60.224-60.224 60.224-33.262 0-60.224-26.963-60.224-60.224 0-33.261 26.963-60.224 60.224-60.224 33.261 0 60.224 26.964 60.224 60.224z" fill="#ff0"/> - <path d="M261.815 169.063c16.667-.367 37.424 1.153 51.104 12.108 14.519-9.068 31.71-13.261 49.218-11.636l8.963 16.353c-13-1.311-25.683.525-40.727 6.605 19.184 15.2 28.776 34.803 28.147 58.652-2.201 2.725-5.661 5.765-7.862 8.49 3.197-23.167-9.015-49.006-26.732-62.582 14.414 20.809 23.01 39.573 20.6 65.413-2.568 1.52-5.61 3.669-8.177 5.189 3.773-22.8-1.571-49.532-18.397-65.1 9.696 14.258 19.393 39.837 13.365 65.886-2.621.786-6.656 2.988-9.277 3.774 6.762-21.332 2.515-48.012-8.806-63.998-11.216 16.092-14.886 40.673-8.492 63.369-3.145-.786-5.503-1.73-8.648-2.516-4.612-24.425 1.783-51.996 12.895-66.356-11.322 6.552-22.015 34.645-19.028 63.369-2.725-1.258-4.822-2.202-7.547-3.46-3.67-21.438 6.027-49.321 19.97-65.414-15.83 9.959-28.671 34.385-26.417 60.697-2.411-2.15-4.665-3.197-7.076-5.346-2.778-22.958 10.483-46.072 26.102-59.91-13.156-5.871-24.425-7.024-40.726-6.762 2.568-5.294 4.98-11.531 7.548-16.825z" fill="#be0027"/> - </g> -</svg> diff --git a/img/flags/1x1/kh.svg b/img/flags/1x1/kh.svg deleted file mode 100644 index bc0631d..0000000 --- a/img/flags/1x1/kh.svg +++ /dev/null @@ -1,74 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" height="512" width="512" viewBox="0 0 512 512"> - <path fill="#032ea1" d="M0 0h512v512H0z"/> - <path fill="#e00025" d="M0 128h512v256H0z"/> - <g transform="matrix(1.28 0 0 1.28 5.943 -556.715)" fill="#fff" stroke="#000" stroke-width=".96"> - <g stroke-linejoin="bevel"> - <path d="M139.02 623.46h113.8v43.788h-113.8z"/> - <path d="M246.95 647.64h3.586v16.495h-3.586zM139.02 639.49h113.8v5.09h-113.8zM139.02 632.59h113.8v4.489h-113.8z"/> - <path stroke-width=".945" d="M139.02 625.7h113.8v4.354h-113.8z"/> - <path d="M168.98 647.64h3.586v16.495h-3.586zM217.97 647.64h3.586v16.495h-3.586zM139.92 647.64h3.586v16.495h-3.586zM146.95 647.64h3.586v16.495h-3.586zM154.45 647.64h3.586v16.495h-3.586zM161.95 647.64h3.586v16.495h-3.586zM224.77 647.64h3.586v16.495h-3.586zM232.27 647.64h3.586v16.495h-3.586zM239.77 647.64h3.586v16.495h-3.586z"/> - <path d="M94.509 669.55c1.76-.897 3.768-2.984 4.425-5.319h193.07c.657 2.335 2.665 4.422 4.425 5.319z" stroke-linejoin="miter"/> - </g> - <path d="M193 556.8s-.144-4.112 2.25-4.157c2.396.044 2.251 4.157 2.251 4.157zM180.51 611.34v-5.536c-.079-2.768-2.76-2.968-2.838-4.986 0 0-.346-3.027.452-4.408 1.084 4.047 3.056 3.304 3.056 1.64 0-1.453-1.117-2.804-3.408-6.33-.732-1.128-.28-4.66.747-5.923.398 3.07.853 4.54 2.171 4.54.805 0 1.462-.524 1.462-2.062 0-1.957-1.325-2.945-1.977-4.725-.76-2.078-.236-4.196 1.026-5.38.541 3.03.38 4.237 1.726 4.237 2.713-.858 0-4.786-.58-5.777-.666-1.155.897-3.46.897-3.46.863 2.69 1.14 2.91 2.07 2.66 1.174-.315 1.023-2.056-.41-3.463-.904-.889-.808-2.212.163-3.274.975 1.905 2.223 1.79 2.343.658l-.784-4.393h17.255l-.857 4.249c-.245 1.216 1.396 1.48 2.416-.514.972 1.062 1.067 2.385.163 3.274-1.432 1.407-1.584 3.148-.41 3.463.93.25 1.208.03 2.07-2.66 0 0 1.403 1.571.897 3.46-.58.99-3.293 4.919-.58 5.777 1.346 0 1.185-1.208 1.726-4.237 1.263 1.184 1.786 3.302 1.026 5.38-.651 1.78-1.976 2.768-1.976 4.725 0 1.538.657 2.062 1.461 2.062 1.319 0 1.774-1.47 2.172-4.54 1.026 1.263 1.479 4.795.747 5.922-2.291 3.527-3.408 4.878-3.408 6.33 0 1.665 1.971 2.408 3.056-1.64.797 1.382.451 4.41.451 4.41-.079 2.017-2.759 2.217-2.838 4.985v5.536zM187.73 565.32l-.397-3.125h15.838l-.397 3.125zM188.79 562.13l-.341-2.569h13.604l-.341 2.569zM190.95 559.47l-.227-2.569h9.058l-.227 2.569zM223.97 669.55c-2.027-.781-4.977-2.919-4.977-5.07v-24.297l2.638-3.358h-52.776l2.53 3.359v24.297c0 2.15-2.027 4.288-4.053 5.07z"/> - <path stroke-linejoin="bevel" d="M178.24 647.64h3.586v16.495h-3.586zM208.56 647.64h3.586v16.495h-3.586z"/> - <path d="M167.91 609.17v27.656h54.023v-5.957l.078-21.7c-2.21.869-2.597 2.872-2.597 2.872v11.777h-48.75V612.04s-.544-2.003-2.754-2.871z"/> - <path d="M214.6 669.55c-1.766-.781-5.612-2.919-5.612-5.07v-27.192c.378-1.518 2.436-2.414 3.761-3.358h-35.823c1.705.902 3.606 1.652 4.285 3.359v27.192c0 2.15-3.041 4.288-4.807 5.069z"/> - <path d="M219.41 634.22v-19.587h-4.91v-1.909h-38.84v1.909h-4.91v19.587zM206.86 669.55c-1.73-.781-4.249-2.919-4.249-5.07v-23.214l1.42-2.11h-17.69l1.42 2.11v23.215c0 2.15-2.519 4.288-4.249 5.07z"/> - <path d="M190.71 639.16h8.966v30.377h-8.966z" stroke-width=".981"/> - <path d="M204.38 632.48c.021-2.001 5.838-2.091 8.832-3.795H177.26c2.994 1.704 8.675 1.844 8.675 3.795l1.217 3.882 14.883.598z" stroke-linejoin="bevel"/> - <path d="M211.41 611.34c0-4.899.205-6.786 1.71-6.786v15.58c-3.69 1.34-6.325 6.05-6.325 6.05h-23.211s-2.634-4.71-6.325-6.05v-15.58c1.856 0 1.868 1.972 1.868 6.786zM213.12 609.33c0-5.618 4.851-6.25 4.851-6.25v5c-1.846-.08-2.737 1.578-2.737 4.044 0 2.466 1.487 2.506 1.487 2.506v14.19h-3.601z"/> - <path d="M177.28 609.33c0-5.618-4.851-6.25-4.851-6.25v5c1.846-.08 2.737 1.578 2.737 4.044 0 2.466-1.487 2.506-1.487 2.506v14.19h3.601z"/> - <g fill="none" stroke-width=".8"> - <path d="M186.84 570.62h17.128M184.81 575.97h20.921M182.78 582.46h24.904M180.66 590.39h29.536M179.98 599.43h30.426"/> - <path d="M170.75 628.92h48.661M186.19 628.93h18.036v6.629H186.19z" stroke-width=".96"/> - </g> - <g> - <path d="M183.93 614.24c2.99 3.59 2.713 9.68 2.679 13.27h17.343c-.035-3.59-.312-9.68 2.678-13.27zM193.68 573.11l-2.376-1.224v-3.497c.971.292 2.062.411 2.168 1.96.338-2.21.948-2.103 1.907-2.964.958.861 1.568.753 1.906 2.963.107-1.548 1.197-1.667 2.169-1.96v3.498l-2.377 1.224z"/> - <path d="M193.52 578.85l-3.946-2.713v-3.223c1.383.32 2.936.451 3.088 2.149.482-2.423 1.35-3.675 2.715-4.62 1.365.945 2.233 2.197 2.715 4.62.152-1.698 1.705-1.828 3.089-2.149v3.223l-3.947 2.713z"/> - <path d="M193.24 587.8l-4.538-3.985v-4.736c1.591.471 3.377.663 3.552 3.157.553-3.56 1.552-5.4 3.121-6.787 1.57 1.388 2.568 3.227 3.122 6.787.175-2.494 1.96-2.686 3.551-3.157v4.736l-4.537 3.985zM201.61 593.09l-4.104 5.676h-4.646l-4.104-5.676zM186.39 602.62c2.053 1.122 2.81 3.357 3.03 7.553h11.55c.22-4.196.977-6.431 3.03-7.553z"/> - <path d="M204.17 593.09v-5.702c-1.95.537-3.213 1.691-3.776 3.258 0-1.893-2.49-6.257-5.207-8.43-2.724 2.432-5.257 6.38-5.206 8.43-.464-1.492-1.826-2.721-3.776-3.258v5.702z" stroke-linejoin="bevel"/> - <path d="M205.04 602.62v-5.702c-2.138.537-3.522 1.691-4.139 3.258 0-1.893-2.73-6.258-5.708-8.43-2.986 2.432-5.763 6.38-5.707 8.43-.508-1.492-2.002-2.721-4.139-3.258v5.702z" stroke-linejoin="bevel"/> - <path d="M207.44 614.32v-6.577c-2.66.687-4.312 2.653-5.15 3.8 0-3.561-4.02-8.99-7.1-10.768-3.16 1.825-7.101 7.435-7.101 10.768-.86-1.14-2.49-3.113-5.15-3.8v6.577z" stroke-linejoin="bevel"/> - <path d="M206 628.92v-6.762c-2.346.92-3.048 3.18-3.786 4.717.29-6.859-3.862-14.23-7.024-16.1-3.163 1.87-7.393 9.4-7.024 16.1-.758-1.527-1.44-3.797-3.786-4.717v6.762z" stroke-linejoin="bevel"/> - <path d="M204.36 639.16v-6.762c-2.458.585-2.61 1.491-3.392 3.006.29-4.097-2.611-8.77-5.773-10.64-3.163 1.87-6.064 6.544-5.774 10.64-.782-1.515-.878-2.421-3.392-3.006v6.762z"/> - </g> - <g id="a"> - <path d="M98.935 664.23v-20.44c-.67-2.603-2.88-4.905-4.54-5.366V620.43l3.741 2.023 4.271 18.81v22.966z"/> - <path d="M98.935 664.31v-20.519c-.67-2.603-2.88-4.905-4.54-5.366v-19.243c2.511 0 3.741 3.273 3.741 3.273l4.271 18.81v22.887z"/> - <path d="M96.275 669.55c1.73-.781 4.249-2.919 4.249-5.07v-25.547l-1.185-2.108h43.522l-1.699 2.108v25.547c0 2.151 1.73 4.289 3.46 5.07z"/> - <path d="M135.84 669.55c-1.73-.781-4.249-2.919-4.249-5.07v-24.297l3.62-3.359h-29.589l3.62 3.36v24.296c0 2.151-2.52 4.289-4.25 5.07z"/> - <path d="M131.69 669.55c-1.73-.781-4.249-2.919-4.249-5.07v-21.965l2.37-3.359h-18.799l2.37 3.36v21.965c0 2.15-2.52 4.288-4.25 5.069z"/> - <path d="M115.92 639.16h8.982v30.393h-8.982z"/> - <path stroke-linejoin="bevel" d="M103.7 647.64h3.586v16.495H103.7zM134.45 647.64h3.586v16.495h-3.586zM100.64 619.82h4.32v16.909h-4.32zM100.64 616.64h4.295v3.139h-4.295z"/> - <path d="M136.17 623.46h6.16v13.054h-6.16z" stroke-width="1.034" stroke-linejoin="bevel"/> - <path d="M104.89 636.6v-28.941c1.232 0 1.422 4.242 4.249 4.242 1.472 0 1.315-1.757.489-3.188-.732-1.268-1.637-3.018-.407-6.279.843 2.495 3.112 3.287 2.693 1.722-.72-2.688-2.795-3.13-1.239-7.302.54 3.48 2.773 3.327 2.231 1.304-.61-2.28-1.873-3.214-.316-6.428.873 3.65 2.052 3.435 2.052 1.171 0-3.347-.128-6.957 4.203-8.296 0 0 .25-3.068 1.812-3.068 1.563 0 1.813 3.068 1.813 3.068 4.33 1.34 4.202 4.95 4.202 8.296 0 2.264 1.18 2.478 2.052-1.17 1.558 3.213.295 4.147-.315 6.427-.543 2.023 1.69 2.177 2.23-1.304 1.557 4.172-.517 4.614-1.238 7.302-.42 1.565 1.85.773 2.693-1.722 1.23 3.26.325 5.011-.407 6.279-.826 1.43-.983 3.188.489 3.188 2.827 0 3.017-4.242 4.249-4.242V636.6zM98.124 614.74v22.079h2.511v-22.135c-.905-.457-1.755-.527-2.511.056z"/> - <path d="M98.203 629.03c3.112 1.591 6.195 3.433 6.975 7.793h-6.975zM141.37 622.42v14.407h2.035v-14.443c-.635-.298-1.503-.344-2.035.036z"/> - <path d="M143.41 628.92c-3.112 1.591-6.195 3.433-6.975 7.793h6.975z"/> - <g> - <path d="M122.83 595.27l1.814-1.525v-1.953c-.664.065-1.026.293-1.516.936-.417-1.295-1.334-2.305-2.562-2.933-1.229.628-2.146 1.593-2.563 2.887-.49-.643-.852-.825-1.516-.89v1.953l1.815 1.525z"/> - <path d="M123.8 600.16l.843-1.825v-2.539c-.664.066-1.026.297-1.516.949-.417-1.313-1.334-2.338-2.562-2.974-1.229.636-2.146 1.615-2.563 2.927-.49-.651-.852-.836-1.516-.902v2.539l.844 1.825z"/> - <path d="M123.93 606.79l2.695-3.287v-3.243c-.986.111-1.524.503-2.252 1.606-.62-2.222-1.981-2.708-3.806-3.786-1.825 1.078-3.187 1.485-3.806 3.707-.729-1.103-1.267-1.416-2.252-1.527v3.243l2.694 3.287z"/> - <path d="M124.72 613.3s3.14-2.74 3.327-4.244v-3.467c-1.217.143-2.368.459-3.267 1.883-.765-2.87-1.959-3.67-4.212-5.062-2.253 1.392-3.447 2.192-4.212 5.062-.899-1.425-2.05-1.74-3.267-1.883v3.467c.397 1.504 3.327 4.244 3.327 4.244z"/> - <path d="M126.06 625.32s4.301-4.761 4.4-6.616v-5.406c-1.61.223-3.132 1.33-4.321 3.551-1.011-4.475-2.59-7.595-5.57-9.765-2.98 2.17-4.56 5.29-5.57 9.765-1.19-2.221-2.712-3.329-4.321-3.551v5.406c.308 1.855 4.4 6.616 4.4 6.616z"/> - <path d="M126.06 632.43s3.676-3.742 4.4-5.366v-5.406c-1.61.223-3.132 1.33-4.321 3.551-1.011-4.475-2.59-7.037-5.57-9.207-2.98 2.17-4.56 4.732-5.57 9.207-1.19-2.221-2.712-3.329-4.321-3.551v5.406c.933 1.624 4.4 5.366 4.4 5.366z"/> - <path d="M127.54 636.56c-1.073-4.668-1.996-8.13-7.163-11.641-5.167 3.51-6.09 6.973-7.163 11.641z"/> - <path d="M130.2 639.16v-6.762c-2.346.92-4.467 2.28-5.249 3.795-.873-3.754-2.557-5.408-4.653-7.679-2.097 2.271-3.501 3.925-4.375 7.679-.782-1.515-2.902-2.875-5.249-3.795v6.762z"/> - </g> - </g> - <use height="100%" width="100%" xlink:href="#a" transform="matrix(-1 0 0 1 390.74 0)"/> - <g> - <path d="M72.694 694.25h245.33v12.531H72.694z"/> - <path d="M66.228 706.76h258.26v12.512H66.228zM85.576 675.51h219.56v8.11H85.576z"/> - <path d="M79.157 683.56h232.4v10.622h-232.4zM89.412 669.28h211.89v6.174H89.412z"/> - <path d="M112.41 669.31h16.005v49.935H112.41z" stroke-width="1.045"/> - <path d="M115.95 669.31h8.917v49.936h-8.917z" stroke-width="1.043"/> - <path d="M187.08 669.31h16.006v49.935h-16.005z" stroke-width="1.045"/> - <path d="M190.73 669.31h8.917v49.936h-8.917z" stroke-width="1.043"/> - <path d="M262.19 669.31h16.005v49.935H262.19z" stroke-width="1.045"/> - <path d="M265.73 669.31h8.917v49.936h-8.917z" stroke-width="1.043"/> - </g> - <g fill="none"> - <path d="M98.935 664.23h193.07M115.79 712.97h9.244m-9.244-6.25h9.244m-9.244-6.25h9.244m-9.244-6.25h9.244m-9.244-6.25h9.244m-9.244-6.25h9.244m-9.244-6.25h9.244M190.77 712.98h8.607m-8.607-6.253h8.607m-8.607-6.254h8.607m-8.607-6.253h8.607m-8.607-6.253h8.607m-8.607-6.253h8.607m-8.607-6.254h8.607M265.57 712.97h9.244m-9.244-6.25h9.244m-9.244-6.25h9.244m-9.244-6.25h9.244m-9.244-6.25h9.244m-9.244-6.25h9.244m-9.244-6.25h9.244"/> - </g> - </g> -</svg> diff --git a/img/flags/1x1/ki.svg b/img/flags/1x1/ki.svg deleted file mode 100644 index e363667..0000000 --- a/img/flags/1x1/ki.svg +++ /dev/null @@ -1,36 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" height="512" width="512" viewBox="0 0 512 512"> - <defs> - <clipPath id="a"> - <path fill-opacity=".67" d="M161.78 5.753h491.68v491.68H161.78z"/> - </clipPath> - </defs> - <g clip-path="url(#a)" transform="translate(-168.47 -5.991) scale(1.0413)"> - <path fill-rule="evenodd" fill="#e73e2d" d="M4.023 5.753h802.62v294.33H4.023z"/> - <path d="M357.969 276.643c-18.664-14.57-53.425-9.642-59.15-49.249 26.616 20.617 21.784-1.178 61.537 18.466l-2.387 30.783z" fill-rule="evenodd" stroke="#d8aa3f" stroke-width="1.5989999999999998" fill="#fec74a"/> - <path d="M362.933 258.643c-13.302-19.589-47.902-25.547-41.218-65.003 19.02 27.78 21.098 5.552 52.921 36.43l-11.703 28.573z" fill-rule="evenodd" stroke="#d8aa3f" stroke-width="1.5990125" fill="#fec74a"/> - <path d="M368.987 245.845c-4.802-23.186-34.496-41.92-13.234-75.824 6.954 32.941 17.373 13.197 34.973 53.896l-21.739 21.928z" fill-rule="evenodd" stroke="#d8aa3f" stroke-width="1.5990375000000001" fill="#fec74a"/> - <path d="M382.935 233.945c2.548-23.542-19.96-50.488 10.684-76.228-3.495 33.487 12.482 17.894 16.738 62.032l-27.422 14.196z" fill-rule="evenodd" stroke="#d8aa3f" stroke-width="1.5990875" fill="#fec74a"/> - <path d="M395.348 224.39c11.963-20.434 2.458-54.233 40.954-65.171-16.898 29.12 4.063 21.435-10.125 63.447l-30.83 1.725z" fill-rule="evenodd" stroke="#d8aa3f" stroke-width="1.5990499999999999" fill="#fec74a"/> - <path d="M413.472 226.904c17.822-15.59 19.52-50.658 59.498-48.832-25.256 22.264-2.94 21.618-29.712 56.967l-29.786-8.135z" fill-rule="evenodd" stroke="#d8aa3f" stroke-width="1.5990499999999999" fill="#fec74a"/> - <path d="M429.357 236.085c21.613-9.672 33.529-42.697 71.208-29.217-30.677 13.87-9.156 19.802-45.122 45.736l-26.086-16.52z" fill-rule="evenodd" stroke="#d8aa3f" stroke-width="1.5989999999999998" fill="#fec74a"/> - <path d="M442.632 250.571c23.461-3.198 44.191-31.534 76.555-7.993-33.343 4.675-14.36 16.425-56.173 31.187l-20.382-23.194z" fill-rule="evenodd" stroke="#d8aa3f" stroke-width="1.5990499999999999" fill="#fec74a"/> - <path d="M526.207 255.065l-107.62 2.362 4.519 28.996 103.1-31.358z" fill-rule="evenodd" stroke="#d8aa3f" stroke-width="1.5991" fill="#fec74a"/> - <path d="M510.382 215.489l-99.722 38.278 16.696 32.048 83.026-70.326z" fill-rule="evenodd" stroke="#d8aa3f" stroke-width="1.5990250000000001" fill="#fec74a"/> - <path d="M431.215 275.257l51.591-93.666-79.136 73.658 27.545 20.008z" fill-rule="evenodd" stroke="#d8aa3f" stroke-width="1.5989999999999998" fill="#fec74a"/> - <path d="M381.86 573.24l-13.513-82.602-15.405 82.535 28.918.067z" fill-rule="evenodd" transform="matrix(1.2145 .40191 -.39943 1.207 195.37 -577.79)" stroke="#d8aa3f" stroke-width="1.254" fill="#fec74a"/> - <path d="M423.95 259.003l-17.32-105.871-19.195 106.334 36.515-.463z" fill-rule="evenodd" stroke="#d8aa3f" stroke-width="1.5989999999999998" fill="#fec74a"/> - <path d="M378.51 569.67l-10.159-79.033-17.918 83.552 28.077-4.519z" fill-rule="evenodd" transform="matrix(1.1791 -.4886 .48383 1.1816 -306.93 -238.21)" stroke="#d8aa3f" stroke-width="1.253" fill="#fec74a"/> - <path d="M407.21 249.288l-77.884-65.762 55.379 94.114 22.504-28.352z" fill-rule="evenodd" stroke="#d8aa3f" stroke-width="1.5990499999999999" fill="#fec74a"/> - <path d="M301.936 215.962L385.549 285l12.856-36.114-96.47-32.924z" fill-rule="evenodd" stroke="#d8aa3f" stroke-width="1.5990375000000001" fill="#fec74a"/> - <path d="M384.658 256.275l-98.247-1.38 97.835 32.66.412-31.28z" fill-rule="evenodd" stroke="#d8aa3f" stroke-width="1.5990250000000001" fill="#fec74a"/> - <path d="M464.426 273.939c0 32.552-26.389 58.941-58.941 58.941s-58.942-26.389-58.942-58.941 26.39-58.942 58.942-58.942 58.941 26.39 58.941 58.942z" fill-rule="evenodd" stroke="#d8aa3f" stroke-width="1.5991264" fill="#fec74a"/> - <path fill-rule="evenodd" fill="#005989" d="M3.215 297.11h806.58v200.33H3.215z"/> - <path d="M2.755 441.711c14.997 6.941 36.483 24.314 59.464 24.299 38.453-.25 39.477-26.336 78.428-25.096 39.053.994 31.989 28.458 84.722 28.32 43.57-.113 57.644-33.288 95.2-29.313 27.813-1.432 39.197 31.414 81.947 31.831 44.34.948 60.62-35.8 88.436-32.758 29.63 0 39.338 29.597 80.909 29.81 52.947.268 62.256-30.804 95.38-28.816 23.577-.497 42.168 22.773 76.717 23.352 27.568.47 50.647-20.371 66.238-27.824l.771-35.365c-16.34 6.077-40.704 25.999-65.067 26.218-35.06 1.283-56.749-22.995-81.112-22.776-29.191.262-40.824 30.042-90.342 30.042-45.24 0-55.62-30.042-84.811-30.042-28.533.218-37.275 32.674-86.672 32.073-40.295-.485-55.995-30.981-84.53-30.762-30.249 0-61.528 29.654-95.023 28.223-46.23-1.954-56.218-28.223-86.467-28.223-22.607 0-47.006 24.617-74.241 25.027-27.086.417-57.515-24.495-60.333-25.027l.386 36.807zM2.755 371.671c14.997 6.941 36.483 24.314 59.464 24.299 38.453-.25 39.477-26.336 78.428-25.096 39.053.994 31.989 28.458 84.722 28.32 43.57-.113 57.644-33.288 95.2-29.313 27.813-1.432 39.197 31.414 81.947 31.831 44.34.948 60.62-35.8 88.436-32.758 29.63 0 39.338 29.597 80.909 29.81 52.947.268 62.256-30.804 95.38-28.816 23.577-.497 42.168 22.773 76.717 23.352 27.568.47 50.647-20.371 66.238-27.824l.771-35.365c-16.34 6.077-40.704 25.999-65.067 26.218-35.06 1.283-56.749-22.995-81.112-22.776-29.191.262-40.824 30.042-90.342 30.042-45.24 0-55.62-30.042-84.811-30.042-28.533.218-37.275 32.674-86.672 32.073-40.295-.485-55.995-30.981-84.53-30.762-30.249 0-61.528 29.654-95.023 28.223-46.23-1.954-56.218-28.223-86.467-28.223-22.607 0-47.006 24.617-74.241 25.027-27.086.417-57.515-24.495-60.333-25.027l.386 36.807z" fill-rule="evenodd" fill="#fff"/> - <path d="M2.754 302.391c14.984 6.941 36.45 24.314 59.41 24.299 38.416-.25 39.439-26.336 78.354-25.096 39.016.994 31.959 28.458 84.643 28.32 43.528-.113 57.59-33.288 95.111-29.313 27.787-1.432 39.16 31.414 81.87 31.831 44.299.948 60.565-35.8 88.353-32.758 29.604 0 39.302 29.597 80.834 29.81 52.898.268 62.198-30.804 95.292-28.816 23.554-.497 42.127 22.773 76.645 23.352 27.542.47 50.6-20.371 66.176-27.824l.77-35.365c-16.325 6.077-40.666 25.999-65.007 26.218-35.027 1.283-56.695-22.995-81.036-22.776-29.163.262-40.785 30.042-90.258 30.042-45.197 0-55.567-30.042-84.731-30.042-28.507.218-37.24 32.674-86.59 32.073-40.258-.485-55.944-30.981-84.451-30.762-30.221 0-61.472 29.654-94.935 28.223-46.187-1.954-56.166-28.223-86.387-28.223-22.586 0-46.962 24.617-74.171 25.027-27.061.417-57.462-24.495-60.277-25.027l.386 36.807z" fill-rule="evenodd" fill="#fff"/> - <path d="M293.164 78.674c58.625-4.014 47.94-9.02 71.536-12.786 29.735 4.088 33.135 22.09 49.703 33.135 0 0-6.227 21.055-26.606 18.075-2.74-8.447 9.865-11.058-26.405-33.169-21.087-1.254-58.818 3.701-68.228-5.255zM474.925 111.294l-42.232 1.739v10.434c28.486.911 33.62-2.898 42.232-12.173z" fill-rule="evenodd" stroke="#d8aa3f" stroke-width="1.2792pt" fill="#ffc84b"/> - <path stroke-linejoin="round" d="M329.685 109.516c7.361-3.765 11.022-2.228 17.399-2.477 4.389 7.95 8.53 8.695 18.135 9.69 14.657 20.619 35.277 20.867 38.257 20.867 28.735-.746 37.844-20.868 57.138-23.104h20.371c-3.395-5.796-6.045-9.11-13.415-9.44-15.154-.828-34.778-.414-51.92 3.478l-24.097 5.962c-7.04-3.395-24.263-21.447-35.277-21.116-6.459 1.739-6.459 3.975-9.688 6.459-6.211 2.65-12.423 1.38-16.903 9.681z" fill-rule="evenodd" stroke="#d8aa3f" stroke-width="1.5989999999999998" fill="#ffc84b"/> - <path d="M358.735 100.737a3.048 3.048 0 1 1-6.096 0 3.048 3.048 0 0 1 6.096 0z" fill-rule="evenodd" stroke="#d8aa3f" stroke-width="1.5987692" fill="#ffc84b"/> - <path d="M378.385 109.273c43.143-52.003 80.82-45.628 129.928-49.188 1.656 6.046 1.077 15.072-22.358 23.104-32.046 4.72-89.434 38.505-89.682 38.505-10.684-.496-18.137-11.675-17.887-12.421z" fill-rule="evenodd" stroke="#d8aa3f" stroke-width="1.2792pt" fill="#ffc84b"/> - <path d="M467.02 75.387l31.82 1.379M463.567 80.58l23.193 1.892" stroke="#d9a43e" stroke-linecap="round" stroke-width="1.2792pt" fill="none"/> - </g> -</svg> diff --git a/img/flags/1x1/km.svg b/img/flags/1x1/km.svg deleted file mode 100644 index 11c3348..0000000 --- a/img/flags/1x1/km.svg +++ /dev/null @@ -1,16 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" height="512" width="512" viewBox="0 0 512 512"> - <defs> - <clipPath id="a"> - <path fill-opacity=".67" d="M0 0h416.25v416.25H0z"/> - </clipPath> - </defs> - <g clip-path="url(#a)" fill-rule="evenodd" transform="matrix(1.23 0 0 1.23 0 0)"> - <path fill="#ff0" d="M0 0h625v104.06H0z"/> - <path fill="#fff" d="M0 104.06h625v104.06H0z"/> - <path fill="#be0027" d="M0 208.12h625v104.06H0z"/> - <path fill="#3b5aa3" d="M0 312.19h625v104.06H0z"/> - <path d="M0 0v416.238l310.45-207.533L0 0z" fill="#239e46"/> - <path d="M127.81 114.98c-69.183-3.51-100.7 51.6-100.63 94.2-.159 50.38 47.582 91.93 91.71 89.43-23.794-11.26-52.85-42.82-53.117-89.64-.244-42.423 23.977-79.31 62.038-93.99z" fill="#fff"/> - <path fill="#fff" d="M126.77 160.21l-9.75-7.63-11.82 3.72 4.24-11.64-7.18-10.09 12.38.43 7.37-9.95 3.41 11.91 11.75 3.94-10.28 6.93zM126.563 202.537l-9.75-7.63-11.82 3.72 4.24-11.64-7.18-10.09 12.38.43 7.37-9.95 3.41 11.91 11.75 3.94-10.28 6.93zM126.77 245.279l-9.75-7.63-11.82 3.72 4.24-11.64-7.18-10.09 12.38.43 7.37-9.95 3.41 11.91 11.75 3.94-10.28 6.93zM126.563 288.44l-9.75-7.63-11.82 3.72 4.24-11.64-7.18-10.09 12.38.43 7.37-9.95 3.41 11.91 11.75 3.94-10.28 6.93z"/> - </g> -</svg> diff --git a/img/flags/1x1/kn.svg b/img/flags/1x1/kn.svg deleted file mode 100644 index 193b236..0000000 --- a/img/flags/1x1/kn.svg +++ /dev/null @@ -1,14 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" height="512" width="512" viewBox="0 0 512 512"> - <defs> - <clipPath id="a"> - <path fill-opacity=".67" d="M151.69-.347h745.12v745.12H151.69z"/> - </clipPath> - </defs> - <g fill-rule="evenodd" clip-path="url(#a)" transform="translate(-104.23 .239) scale(.68714)"> - <path fill="#ffe900" d="M-5.3 0h1073.5v744.09H-5.3z"/> - <path d="M-5.838 0l1.246 536.41L830.738-.35-5.832 0z" fill="#35a100"/> - <path d="M1069.5 744.09l-1.9-557.75-842.62 558.17 844.52-.42z" fill="#c70000"/> - <path d="M-5.3 576.85l.708 167.92 182.28-.24 890.3-596.88-1-146L886.848 0-5.332 576.85z"/> - <path fill="#fff" d="M818.048 269.088l-64.225-2.242-25.28 60.153-14.313-61.51-64.235-2.152 55.38-35.764-14.425-61.479 48.54 39.402 55.323-35.853-25.377 60.121zM417.468 529.468l-64.225-2.242-25.28 60.153-14.313-61.51-64.235-2.152 55.38-35.764-14.425-61.479 48.54 39.402 55.323-35.853-25.377 60.121z"/> - </g> -</svg> diff --git a/img/flags/1x1/kp.svg b/img/flags/1x1/kp.svg deleted file mode 100644 index 0c0521e..0000000 --- a/img/flags/1x1/kp.svg +++ /dev/null @@ -1,15 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" height="512" width="512" viewBox="0 0 512 512"> - <defs> - <clipPath id="a"> - <path fill-opacity=".67" d="M92.213 7.828h593.6v485.5h-593.6z"/> - </clipPath> - </defs> - <g fill-rule="evenodd" clip-path="url(#a)" transform="matrix(.86254 0 0 1.0546 -79.537 -8.255)"> - <path stroke="#000" stroke-width="1.063" fill="#fff" d="M991.81 492.88H4.18V8.38h987.63z"/> - <path fill="#3e5698" d="M991.81 405.21H4.18v87.672h987.63z"/> - <path fill="#c60000" d="M991.81 384.9H4.18V116.35h987.63z"/> - <path fill="#3e5698" d="M991.81 8.374H4.18v87.672h987.63z"/> - <path d="M473.088 250.648c0 60.167-61.572 108.94-137.523 108.94-75.953 0-137.523-48.775-137.523-108.94 0-60.167 61.572-108.94 137.523-108.94 75.953 0 137.523 48.774 137.523 108.94z" fill="#fff"/> - <path fill="#c40000" d="M402.854 326.75l-66.077-38.59-67.132 39.129 26.38-62.896-66.148-38.516 82.374-.274 26.242-62.933 24.535 62.724 82.376-.385-67.213 39.046z"/> - </g> -</svg> diff --git a/img/flags/1x1/kr.svg b/img/flags/1x1/kr.svg deleted file mode 100644 index 72f42c4..0000000 --- a/img/flags/1x1/kr.svg +++ /dev/null @@ -1,24 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" height="512" width="512" viewBox="0 0 512 512"> - <defs> - <clipPath id="a"> - <path fill-opacity=".67" d="M0 0h512v512H0z"/> - </clipPath> - </defs> - <g fill-rule="evenodd" clip-path="url(#a)"> - <path fill="#fff" d="M610.61 511.56h-730.17v-512h730.17z"/> - <path d="M251.871 256.021a112.507 112.507 0 1 1-225.014 0 112.507 112.507 0 1 1 225.014 0z" fill="#fff"/> - <path d="M393.011 262.55a145.262 146.803 0 1 1-290.523 0 145.262 146.803 0 1 1 290.523 0z" fill="#c70000"/> - <path d="M-49.417 126.44l83.66-96.77 19.821 17.135-83.66 96.771zM-22.018 150.127l83.66-96.77 19.82 17.135-83.66 96.77z"/> - <path d="M-49.417 126.44l83.66-96.77 19.821 17.135-83.66 96.771z"/> - <path d="M-49.417 126.44l83.66-96.77 19.821 17.135-83.66 96.771zM5.967 174.32l83.66-96.77 19.82 17.136-83.66 96.77z"/> - <path d="M-49.417 126.44l83.66-96.77 19.821 17.135-83.66 96.771z"/> - <path d="M-49.417 126.44l83.66-96.77 19.821 17.135-83.66 96.771zM459.413 29.638l83.002 97.335-19.937 17-83.002-97.334zM403.707 77.141l83.002 97.335-19.936 17-83.002-97.334z"/> - <path d="M417.55 133.19l78.602-67.814 14.641 16.953-83.996 75.519-9.247-24.659z" fill="#fff"/> - <path d="M514.228 372.013l-80.416 95.829-19.716-16.4 80.417-95.828zM431.853 53.14l83.002 97.334-19.936 17.001-83.002-97.334zM541.475 394.676l-80.417 95.829-19.715-16.399 80.417-95.829zM486.39 348.857l-80.417 95.83-19.715-16.4 80.416-95.829z"/> - <path d="M104.6 236.68c4.592 36.974 11.297 78.175 68.199 82.455 21.328 1.278 62.817-5.074 77.061-63.19 18.688-55.829 74.975-71.88 113.28-41.613 21.718 14.166 27.727 36.666 29.283 53.557-1.739 54.243-32.874 101.2-72.823 122.14-45.93 27.3-109.56 27.87-165.3-13.49-25.12-23.57-60.219-67.02-49.7-139.86z" fill="#3d5897"/> - <path d="M435.91 370.59l78.734 67.661-14.591 16.997-87.156-71.851 23.013-12.807z" fill="#fff"/> - <path d="M-1.887 357.197l83.002 97.335-19.937 17-83.002-97.334z"/> - <path d="M-16.188 437.25l78.602-67.814 14.641 16.953-83.996 75.519-9.247-24.659z" fill="#fff"/> - <path d="M25.672 333.696l83.003 97.334-19.937 17-83.002-97.334zM-30.033 381.199l83.002 97.334-19.936 17L-49.97 398.2z"/> - </g> -</svg> diff --git a/img/flags/1x1/kw.svg b/img/flags/1x1/kw.svg deleted file mode 100644 index f8176f0..0000000 --- a/img/flags/1x1/kw.svg +++ /dev/null @@ -1,13 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" height="512" width="512" viewBox="0 0 512 512"> - <defs> - <clipPath id="a"> - <path fill-opacity=".67" d="M0 0h496.06v496.06H0z"/> - </clipPath> - </defs> - <g fill-rule="evenodd" clip-path="url(#a)" transform="scale(1.0321)" stroke-width="1pt"> - <path fill="#fff" d="M0 165.33h992.13V330.7H0z"/> - <path fill="#f31830" d="M0 330.7h992.13v165.37H0z"/> - <path fill="#00d941" d="M0 0h992.13v165.37H0z"/> - <path d="M0 0v496.06l247.5-165.38.53-165.46L0 0z"/> - </g> -</svg> diff --git a/img/flags/1x1/ky.svg b/img/flags/1x1/ky.svg deleted file mode 100644 index e661613..0000000 --- a/img/flags/1x1/ky.svg +++ /dev/null @@ -1,70 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" height="512" width="512" viewBox="0 0 512 512"> - <defs> - <clipPath id="a"> - <path fill-opacity=".67" d="M0 0h512v512H0z"/> - </clipPath> - </defs> - <g clip-path="url(#a)"> - <path fill="#006" d="M0 0h1024v512H0z"/> - <path fill-rule="evenodd" fill="#006" d="M0 0h512v256H0z"/> - <g stroke-width="1pt"> - <path fill="#fff" d="M0 0v28.622L454.757 256h57.241v-28.62L57.241 0H0zm511.998 0v28.62L57.241 256H0v-28.62L454.757 0h57.241z"/> - <path fill="#fff" d="M213.333 0v255.999h85.333V0h-85.333zM0 85.333v85.333h511.998V85.333H0z"/> - <path fill="#c00" d="M0 102.4v51.2h511.998v-51.2H0zM230.4 0v255.999h51.199V0h-51.2zM0 255.999l170.666-85.333h38.16L38.162 255.999H0zM0 0l170.666 85.333h-38.16L0 19.081V0zm303.171 85.333L473.837 0h38.161L341.332 85.333h-38.16zm208.827 170.666l-170.666-85.333h38.16l132.506 66.253v19.08z"/> - </g> - <path d="M307.91 185.907c-1.133.684-3.4 2.739-5.666 2.054-2.266-.684-7.366-9.588-13.032-8.218-5.666 1.37-9.066 3.424-11.332 3.424s-8.5 2.055-8.5 7.533c0 5.48.568 9.589 1.7 9.589 1.134 0 2.834-3.425 2.834-3.425s.566 6.849 4.533 6.849 12.465.685 13.032 2.74c.566 2.054-3.966 6.848-2.833 10.957 1.133 4.11 6.232 10.958 6.232 10.958s-7.365 5.479-7.365 8.903 1.133 6.849 1.133 6.849l-32.863 1.369s-2.267 97.25-1.134 104.785c1.134 7.53 3.966 26.023 3.966 26.023s-7.365-2.395-13.598 3.769c-6.233 6.164-28.046 16.776-28.613 21.57-.567 4.794-2.55 8.904-.283 12.328 2.266 3.424 10.24 12.728 7.932 12.329-7.607-1.312-10.437-12.12-15.581-16.094-5.054-3.902-15.014-3.082-16.148 1.025-1.133 4.11-.566 10.958 0 12.328.567 1.37 6.8 23.286 8.5 28.08s19.547 11.983 27.48 11.3c15.014.341 21.813-6.506 22.38-5.819.566.683 32.302 33.41 97.454 33.556 50.718.113 88.956-32.873 88.956-32.186 0 .683 20.965 6.847 28.33 4.794 7.366-2.058 18.132-6.851 20.398-11.645 2.267-4.794 8.5-29.45 9.066-33.556.567-4.11 0-8.905-5.1-10.275s-7.932-1.028-10.765.342-3.683 5.14-7.932 11.986c-2.266 2.057-8.216 7.534-6.516 6.164s5.382-11.641 5.95-15.069c.566-3.423 2.265-9.587-1.7-13.01-3.967-3.424-10.042-4.824-16.999-9.93-6.606-4.527-11.897-11.986-15.865-11.986-3.966 0-8.499-2.053-7.932-2.053.567 0 5.109-9.95 3.975-20.221-1.133-10.275.558-108.533-.009-108.533-.566 0-28.33 2.055-28.33.685s2.266-10.958 0-17.121c-2.266-6.164-11.899-10.273-9.066-11.642 2.833-1.37 15.299-4.795 14.732-10.274-.567-5.478-8.5-4.793-11.899-6.848-3.4-2.055-13.598-11.642-14.731-11.642-1.134 0 29.462-18.491 27.197-18.491-2.267 0-14.166-3.424-18.132-1.37 0-3.424 16.432-13.697 13.599-15.067-2.833-1.37-15.865-2.74-12.466-3.424 3.4-.685 4.533-8.904 3.967-8.904-.567 0-14.732 2.055-14.732 2.055s-3.4-4.794-4.533-4.794c-1.133 0-6.232 2.74-6.232 2.74l-2.833-7.534-6.233 4.11-2.833-3.425s-5.099 1.37-5.099 0c.214-.05-.587-3.439-1.388-3.439-.802 0-6.41 4.359-6.611 4.116-.2-.242-6.41-8.959-6.41-8.717 0 .243-4.408 16.465-4.608 16.465-.2 0-4.407.485-4.607.727-.2.242-22.437-12.833-22.236-12.59.2.242 5.81 12.59 5.81 12.59s-4.808 2.664-4.808 2.906.801 5.568.801 5.568l-14.826-5.085s5.61 11.38 5.209 11.38c-.401 0-11.018.484-10.818.484.2 0 5.008 9.443 5.008 9.443l-1.802 5.57s15.956 11.26 14.823 11.945zm94.622 238.33c1.416 2.053 9.065 11.641 7.932 11.641-1.133 0-20.114 12.67-27.763 15.069-7.65 2.395-32.58 6.847-31.164 6.505 1.417-.341 22.388-11.824 30.887-17.3 8.499-5.477 20.107-15.23 20.107-15.914zm-118.424-.346c-1.133 1.37-6.516 11.986-6.516 11.986s15.581 10.958 27.197 15.069c11.615 4.107 31.446 5.477 30.313 5.135-1.133-.341-24.93-10.958-31.73-16.435-6.799-5.48-18.98-15.755-19.264-15.755z" fill-rule="evenodd" fill="#fff"/> - <g fill-rule="evenodd" stroke="#6d6666" fill="#fec500"> - <path d="M394.65-212.97s28.777 17.265 35.354 21.376 27.954 22.199 29.598 21.377c1.645-.822 13.155-9.866 13.155-9.866s-23.843-18.91-38.642-23.021-39.465-8.222-39.465-9.866z" stroke-width="1.25" transform="matrix(.34457 0 0 .41648 160.57 258.99)"/> - <path d="M390.54-231.88c2.467 0 47.687 23.022 61.664 34.532s19.732 26.31 21.377 26.31c1.644 0 23.021-3.289 22.198-3.289-.822 0-9.866-29.598-30.42-38.642-20.555-9.044-73.996-18.911-74.819-18.911z" stroke-width="1.25" transform="matrix(.34457 0 0 .41648 160.57 258.99)"/> - <path d="M603.48-296.01c-.822 0-9.044 24.666-11.511 32.065-2.466 7.4-6.577 23.021-6.577 23.021s-36.176 3.289-34.532-.822c1.645-4.111 55.086-54.264 52.62-54.264z" transform="matrix(.34457 0 0 .41648 160.57 260.928)" stroke-width="1.25"/> - <path d="M398.76-261.48s42.754 28.776 57.553 45.22c14.799 16.443 29.598 45.22 30.42 45.22.823 0 40.287-8.222 40.287-7.4s-46.042-46.042-68.241-60.019-59.197-21.377-60.019-23.021z" stroke-width="1.25" transform="matrix(.34457 0 0 .41648 160.57 258.99)"/> - <path d="M443.16-273.81s21.377 32.887 25.487 44.398c4.111 11.51 16.444 41.109 16.444 41.109H518.8s-16.443-36.998-34.531-55.086-40.287-28.776-41.109-30.421z" transform="matrix(.34457 0 0 .41648 160.57 260.928)" stroke-width="1.25"/> - <path d="M454.66-291.9c.823 2.467 31.243 31.243 38.643 50.153 7.399 18.91 13.155 42.754 13.155 42.754l29.598-7.4s-26.31-48.509-42.753-61.664c-16.444-13.154-36.998-22.198-38.643-23.843z" transform="matrix(.34457 0 0 .41648 160.57 260.928)" stroke-width="1.25"/> - <path d="M700.5-209.68s-61.663 6.578-83.862 12.333-34.532 27.132-34.532 27.132 28.777 10.688 30.421 9.044 18.91-18.91 37.82-25.488c18.91-6.577 51.797-22.199 50.153-23.021z" stroke-width="1.25" transform="matrix(.34457 0 0 .41648 160.57 258.99)"/> - <path d="M698.03-249.97c-1.645.823-50.975 41.11-66.597 54.264-15.621 13.155-30.421 27.132-32.065 27.954-1.644.823-32.065-4.11-30.421-5.755 1.645-1.644 45.22-36.998 73.997-52.619 28.776-15.622 52.619-22.199 55.086-23.844z" stroke-width="1.25" transform="matrix(.34457 0 0 .41648 160.57 258.99)"/> - <path d="M685.7-278.75c-4.933 5.755-53.442 45.22-66.597 59.197s-34.531 38.643-34.531 38.643-25.488-11.511-23.843-16.444c1.644-4.933 36.175-33.709 60.841-50.153 24.665-16.444 66.596-29.599 64.13-31.243z" stroke-width="1.25" transform="matrix(.34457 0 0 .41648 160.57 258.99)"/> - <path d="M636.37-282.04c-.822.823-29.598 31.243-35.354 39.465-5.755 8.222-23.021 44.398-23.021 44.398s-25.487-22.199-25.487-23.021 32.065-34.532 50.975-47.687 33.709-10.688 32.887-13.155z" stroke-width="1.25" transform="matrix(.34457 0 0 .41648 160.57 258.99)"/> - <path d="M565.09-241.77c0 5.78-4.685 10.465-10.465 10.465s-10.465-4.685-10.465-10.465 4.685-10.465 10.465-10.465 10.465 4.685 10.465 10.465zM586.02-227.81c0 5.137-4.685 9.302-10.465 9.302s-10.465-4.165-10.465-9.302 4.685-9.302 10.465-9.302 10.465 4.165 10.465 9.302zM539.51-238.28c0 5.137-5.726 9.302-12.79 9.302-7.064 0-12.79-4.165-12.79-9.302s5.726-9.302 12.79-9.302c7.064 0 12.79 4.165 12.79 9.302z" transform="matrix(.34457 0 0 .41648 160.57 260.928)" stroke-width="1pt"/> - <path d="M573.23-219.09c0 9.954-6.507 18.022-14.534 18.022-8.027 0-14.534-8.069-14.534-18.022 0-9.954 6.507-18.022 14.534-18.022 8.027 0 14.534 8.069 14.534 18.022zM533.7-218.51c0 7.706-6.507 13.953-14.534 13.953-8.027 0-14.534-6.247-14.534-13.953 0-7.706 6.507-13.953 14.534-13.953 8.027 0 14.534 6.247 14.534 13.953z" transform="matrix(.34457 0 0 .41648 160.57 260.928)" stroke-width="1pt"/> - <path d="M513.93-207.46c0 6.743-4.946 12.209-11.046 12.209s-11.046-5.466-11.046-12.209c0-6.743 4.945-12.209 11.046-12.209 6.1 0 11.046 5.466 11.046 12.209zM595.32-208.63c0 8.027-7.548 14.534-16.86 14.534-9.311 0-16.86-6.507-16.86-14.534 0-8.027 7.548-14.534 16.86-14.534 9.311 0 16.86 6.507 16.86 14.534zM554.63-229.56c0 4.816-5.987 8.72-13.372 8.72s-13.372-3.904-13.372-8.72 5.987-8.72 13.372-8.72 13.372 3.904 13.372 8.72z" transform="matrix(.34457 0 0 .41648 160.57 260.928)" stroke-width="1pt"/> - <path d="M556.95-210.37c0 7.064-8.33 12.79-18.604 12.79s-18.604-5.726-18.604-12.79c0-7.064 8.33-12.79 18.604-12.79s18.604 5.726 18.604 12.79zM604.62-187.7c0 8.67-7.809 15.697-17.441 15.697s-17.441-7.028-17.441-15.697 7.809-15.697 17.441-15.697c9.633 0 17.441 7.028 17.441 15.697zM509.28-191.77c0 5.78-4.425 10.465-9.883 10.465s-9.884-4.685-9.884-10.465 4.425-10.465 9.884-10.465 9.883 4.685 9.883 10.465z" transform="matrix(.34457 0 0 .41648 160.57 260.928)" stroke-width="1pt"/> - <path d="M579.04-193.51c0 7.385-6.768 13.372-15.116 13.372-8.348 0-15.116-5.987-15.116-13.372s6.768-13.372 15.116-13.372c8.348 0 15.116 5.987 15.116 13.372zM531.37-194.09c0 6.422-5.987 11.627-13.371 11.627-7.385 0-13.371-5.206-13.371-11.627 0-6.422 5.987-11.627 13.371-11.627 7.385 0 13.371 5.206 13.371 11.627z" transform="matrix(.34457 0 0 .41648 160.57 260.928)" stroke-width="1pt"/> - <path d="M554.63-190.61c0 7.064-6.247 12.79-13.953 12.79-7.706 0-13.953-5.726-13.953-12.79 0-7.064 6.247-12.79 13.953-12.79 7.706 0 13.953 5.726 13.953 12.79zM494.16-267.35c3.488 0 27.906 8.139 27.906 8.139s-30.232 11.628-25.581 10.465 33.72-4.651 31.394-4.651c-2.325 0-25.58 22.092-18.604 20.929 6.977-1.162 20.93-15.115 22.092-15.115 1.163 0 15.116 22.092 16.279 20.929 1.162-1.163 0-22.092 1.162-22.092 1.163 0 29.069 13.953 26.743 12.79-2.325-1.163-18.603-17.441-17.441-17.441 1.163 0 38.371 3.488 36.045 2.325-2.325-1.162-24.417-11.627-24.417-11.627s16.278-15.115 12.79-15.115-30.231 15.115-27.906 13.952c2.326-1.162 29.069-31.393 29.069-31.393l-26.743 12.79s4.651-18.604 2.325-17.442c-2.325 1.163-20.929 24.418-22.092 24.418s-5.814-23.255-5.814-23.255 1.163 25.58-5.813 26.743c-6.977 1.163-31.394 5.814-31.394 4.651z" transform="matrix(.34457 0 0 .41648 160.57 260.928)" stroke-width="1pt"/> - </g> - <g fill-rule="evenodd"> - <path d="M304.743 227.877c.2.969 6.61 18.402 16.426 17.918s13.823-3.39 13.422-3.632c-.4-.242-4.607-3.148-7.011-9.443-2.404-6.296-2.805-8.96-2.805-8.96l-20.032 4.117zM339.8 221.098s7.211 17.19 10.416 19.612c3.206 2.421 10.618 4.358 13.823 4.116s7.011 0 7.011 0-3.205-1.695-5.81-11.138-3.405-12.59-3.405-12.59H339.8zM383.87 227.393s-1.402 12.59 0 15.738c1.403 3.148 8.414 8.96 8.414 8.96s8.414-1.211 8.614-8.96c.2-7.748-2.805-15.012-2.805-15.012l-14.223-.726z" fill="#00389b"/> - <path d="M288.94 21.015s1.163 4.65 0 8.14-11.046 12.79-11.046 20.347c0 7.558 11.627 30.812 47.091 31.394 35.463.581 80.229-19.185 79.647-19.767-.58-.58-84.88-56.974-86.04-56.393-1.16.582-29.65 17.441-29.65 16.28zM523.23 61.129s7.557 20.348 10.464 22.674c2.907 2.325 4.07 6.976 4.651 6.976s48.835 10.464 48.835 10.464 4.651-13.37-2.325-23.836c-6.977-10.465-33.138-37.789-33.138-37.789l-28.49 21.511zM556.37 36.13c1.162 0 12.79 9.883 22.092 4.65 9.301-5.231 24.417-19.184 24.417-19.184s-12.79 4.07-22.092 3.488c-9.302-.581-23.836 11.627-24.417 11.046z" stroke="#000" stroke-width="1pt" fill="#005120" transform="matrix(.34457 0 0 .41648 198.37 196.607)"/> - <path d="M287.2 23.34s-3.488-9.883-12.79-10.465c-9.302-.581-26.162 1.163-31.975-3.488-5.814-4.651-7.558-15.697-10.465-15.116-2.907.581-10.465 0-11.046 0s-3.488-9.302 4.651-13.953 15.116-.582 19.766-4.07c4.651-3.488 11.628-5.814 20.93-6.395 9.302-.581 24.417 11.628 31.394 14.534 6.976 2.907 22.092 6.395 27.905 3.488 5.814-2.907 38.371-15.697 49.998-16.278 11.627-.581 36.045-1.162 45.347-.581s45.928 5.232 56.974 10.465c11.046 5.232 69.764 25.58 77.903 30.23 8.139 4.652 26.162 11.628 26.162 11.628s-31.976 31.394-47.672 36.626c-15.697 5.232-65.695 13.372-95.345 11.627-29.65-1.744-52.904-4.651-75.578-16.278-22.68-11.626-47.1-22.672-48.26-28.486-1.16-5.813-.58-13.371-.58-13.371l-27.324 9.883z" stroke="#000" stroke-width="1pt" fill="#005120" transform="matrix(.34457 0 0 .41648 198.37 196.607)"/> - <path d="M251.15-14.449c-1.163.581-6.976 2.907-5.814 4.07 1.163 1.162 3.489 4.65 10.465 4.07 6.977-.582 14.534-4.652 14.534-4.652s-8.72-4.07-19.185-3.488z" stroke="#000" stroke-width="1pt" fill="#005120" transform="matrix(.34457 0 0 .41648 198.37 196.607)"/> - <path d="M250.57-13.286v6.395s8.139 2.325 8.139.581c0-1.744.581-5.813-1.163-5.813s-6.395-.582-6.976-1.163z" stroke="#000" stroke-width="1pt" transform="matrix(.34457 0 0 .41648 198.37 196.607)"/> - <path d="M331.95-8.453c2.056-3.7 0-8.632 11.922-14.388 11.921-5.755 32.681-4.11 32.681-4.11s-5.96 4.521-6.166 9.249c-.205 4.727.411 6.783.411 6.783s-11.305-3.7-19.938-1.439-18.704 4.522-18.91 3.905zM385.4-28.596c-1.233.617-10.277 10.688-9.25 13.772 1.028 3.083 13.155 10.483 17.061 9.866 3.905-.616 21.787-9.25 22.815-13.566 1.028-4.316 1.85-10.072.411-11.305-1.439-1.233-30.832 1.645-31.037 1.233zM424.66-30.24c-2.261 2.261-1.439 13.155-.617 14.388.822 1.233 15.005 15.416 18.088 16.238 3.083.822 25.899-1.439 27.749-3.905s7.399-12.95 5.755-15.416c-1.645-2.467-6.578-5.756-21.788-9.044s-24.254-2.878-29.187-2.261zM482.82-16.469c3.7 1.85 25.282 12.333 38.026 20.76 12.743 8.427 17.882 18.088 21.582 18.91 3.7.822 18.704-8.222 19.321-10.688.617-2.467-18.293-15.621-31.037-21.582-12.744-5.96-47.892-6.783-47.892-7.4zM478.3-7.63c-1.85 1.644 23.021 45.014 27.748 46.453 4.728 1.438 33.093-8.428 32.682-11.716-.41-3.288-7.81-9.866-25.28-19.526C495.98-2.08 481.8-8.452 478.3-7.63zM447.47 8.196c-3.905 2.261-10.071 41.11-6.166 42.96 3.905 1.85 52.003-4.728 53.853-9.044 1.849-4.317-19.733-38.643-26.105-38.643-6.371 0-17.882 1.645-21.582 4.728zM397.73-.025c-5.14 4.727-4.11 40.903-1.85 43.164 2.261 2.26 30.831 9.66 33.914 6.988 3.084-2.672 7.195-43.37 4.317-46.453-2.878-3.083-10.894-10.483-17.06-11.099-6.167-.616-16.444 5.96-19.321 7.4zM333.19-.642c-4.728 3.7-4.933 13.36.205 15.005 5.139 1.644 17.882 7.194 29.804 12.333 11.922 5.139 18.705 11.305 22.199 11.099 3.494-.206 6.783-36.381 3.083-38.437-3.7-2.055-14.594-3.7-24.871-3.289-10.277.411-25.282 1.44-30.42 3.289z" stroke="#000007" stroke-width="1pt" fill="#001707" transform="matrix(.34457 0 0 .41648 198.37 196.607)"/> - </g> - <path d="M240.17 388c2.906-2.83 7.426-9.745 13.56-10.059 6.134-.315 12.591 5.344 12.591 5.344s6.457 26.406 6.135 26.406c-.323 0-10.654 7.544-10.977 7.544-.323 0-4.52-10.373-8.394-9.431-3.875.943-3.552 15.089-4.197 14.147-.646-.944-17.111-20.434-16.465-21.062.645-.629 8.071-11.945 7.748-12.889zM410.646 384.54c1.937-.313 10.654-6.915 16.788-6.6 6.135.313 9.686 3.142 12.914 5.972 3.228 2.83 7.103 10.058 7.103 10.058s-7.748 21.376-8.394 21.376-3.875 1.888-4.52.315-2.582-6.602-6.457-7.23c-3.874-.63-4.843 6.915-4.843 6.915l-12.59-30.806z" fill-opacity=".996" fill-rule="evenodd" fill="#d40f0f"/> - <path d="M414.84 391.149c0 1.887 11.947 31.437 31.318 37.093 19.37 5.66 25.505-5.343 27.764-9.115 2.26-3.773 10.332-3.458 10.332-3.458s-1.937 27.664-5.166 31.121c-3.228 3.458-5.812 11.003-23.89 11.316-18.079.315-34.545-16.974-40.033-22.005-5.49-5.03-12.593-18.23-15.498-24.205-2.905-5.972 15.497-20.117 15.174-20.747zM204.335 449.924c.323 0 8.717 9.117 20.985 8.173 12.269-.942 33.254-8.173 42.94-20.747 9.685-12.574 14.528-26.092 14.528-26.092s-14.206-25.147-14.529-25.147c-.323 0-1.614 8.173-4.197 13.517-2.583 5.343-9.685 20.432-21.63 25.148-11.947 4.716-11.947 6.601-16.789 5.973-4.842-.629-17.433-8.173-17.433-8.488 0-.314-6.134 14.775-6.134 14.775s-1.292 9.745 2.26 12.888z" fill-rule="evenodd" fill-opacity=".996" fill="#fddc59"/> - <path d="M239.952 387.126c-.913 0-23.742 12.448-22.829 17.783.913 5.335 39.266 80.91 121.447 81.798 82.183.89 132.41-68.462 128.756-80.02-3.652-11.558-29.22-24.896-29.22-24.896s6.391 5.335 5.479 12.448c-.914 7.113-29.222 68.463-100.448 66.686-71.226-1.779-105.014-56.014-105.014-62.24 0-6.222 3.653-9.78 1.827-11.558z" fill-rule="evenodd" fill-opacity=".996" fill="#fddc59"/> - <path d="M462.617 442.074c1.939-1.572 13.884-34.265 20.664-33.321 6.78.943 4.52 10.687 3.875 13.203-.646 2.514-7.427 25.148-7.427 25.148s.324-5.344-4.197-6.601c-4.519-1.257-11.946 2.2-12.914 1.572zM204.335 450.257c0-1.777-5.479-8.001.913-9.78 6.392-1.777 14.611 1.779 14.611 1.779s-4.566-13.338-10.045-24.007c-5.478-10.669-7.305-8.89-11.87-7.113-4.566 1.779-4.456 6.484-1.716 13.597 2.74 7.113 8.108 27.303 8.108 25.524z" fill-opacity=".996" fill-rule="evenodd" fill="#d40f0f"/> - <path fill-rule="evenodd" fill="#fdc400" d="M279.677 389.286l7.927-26.851-22.015-16.878 27.573-.636 8.993-26.497 9.116 26.452 27.574.51-21.941 16.982 8.046 26.81-22.672-15.956z"/> - <path d="M428.346 249.536v103.302c.203 50.488-51.279 94.698-85.464 103.303-34.188-8.605-85.667-52.815-85.464-103.299V249.54h170.928z" fill-rule="evenodd" fill="#fff"/> - <path d="M177.16 325.98l.421 160.73s2.386-3.288 35.012-1.284c32.627 2.004 35.433 35.433 70.867 35.433 35.433 0 35.433-35.433 70.866-35.433s35.433 35.433 70.866 35.433 35.433-35.433 70.866-35.433 35.433 35.433 72.87 37.459c33.429-2.026 33.429-37.459 69.062-39.463l35.233 2.004v-159.45h-496.06z" fill-rule="evenodd" fill-opacity=".996" transform="matrix(.34457 0 0 .40213 196.37 118.45)" stroke="#000" stroke-width="1pt" fill="#d40f0f"/> - <path d="M257.415 335.029v21.373h12.209c11.242.806 12.209 14.249 24.418 14.249 12.21 0 12.21-14.249 24.419-14.249s12.209 14.249 24.418 14.249 12.21-14.249 24.419-14.249 11.519 13.434 24.418 14.249c11.52-.815 12.14-13.443 24.419-14.249h12.209V335.03h-12.21c-12.208 0-12.208 14.249-24.418 14.249-12.209 0-12.209-14.249-24.418-14.249s-12.21 14.249-24.419 14.249-12.209-14.249-24.418-14.249-12.21 14.249-24.419 14.249-12.209-14.249-24.418-14.249h-12.21zM261.098 377.771l8.527 21.374c11.242.805 12.209 14.248 24.418 14.248 12.21 0 12.21-14.248 24.419-14.248s12.209 14.248 24.418 14.248 12.21-14.248 24.419-14.248 11.518 13.433 24.418 14.248c11.519-.815 11.857-13.443 24.135-14.248l8.81-21.704-8.526.33c-12.21 0-12.21 14.25-24.419 14.25-12.21 0-12.21-14.25-24.418-14.25s-12.21 14.25-24.42 14.25c-12.208 0-12.208-14.25-24.417-14.25s-12.21 14.25-24.419 14.25-12.21-14.25-24.418-14.25h-8.527zM342.882 456.138c12.21 0 40.184-21.373 39.898-21.373.284 0-3.271-14.248-15.48-14.248s-12.21 14.248-24.419 14.248c-12.21 0-12.21-14.248-24.418-14.248s-15.326 14.248-15.353 14.248c-.567 0 27.562 21.373 39.77 21.373z" fill-rule="evenodd" fill-opacity=".996" fill="#0062bb"/> - <path d="M90.849 117.57c.822 0 8.222 1.233 13.565.822 5.344-.411 7.4-2.467 7.4-2.878v-1.233h6.988s1.233 5.755.411 6.166-2.878 2.056-3.289 2.056 0-2.878-.822-2.056-1.233 2.056-1.233 2.056-.822-1.234-1.233-1.234-1.233 1.234-1.233 1.234 0-1.234-.412-1.234c-.411 0-2.466 2.056-2.466 2.056l-2.055-1.645s-1.234 2.056-1.645 2.056-2.877-1.644-2.877-1.644l-4.111 2.466s0-3.7-.822-3.289c-.822.411-5.344.411-5.344.411s-1.234 2.467-1.645 2.467-2.055-2.055-1.644-2.055 1.233-1.234.822-1.645c-.41-.411-2.466 0-2.466-.411s-.822-2.878-.411-2.878 2.055.412 2.055.412v-2.467h2.055l.412 2.467z" fill-rule="evenodd" fill-opacity=".996" transform="matrix(1.684 0 0 1.4651 126.765 126.602)" stroke="#000" stroke-width=".625" fill="#fdc400"/> - <path d="M98.248 94.136c-.411 0-3.289 3.289-2.878 6.988.411 3.7 7.4 9.044 7.4 9.044s3.7-1.644 4.933 0 1.233 6.577.822 6.577-5.344 1.234-5.344.41c0-.821 0-1.643-.411-1.643s-4.933.41-4.933.41l.411-1.643-4.11-.822 1.644-1.645s-6.578-2.877-6.167-2.877 2.878-1.644 2.878-1.644L87.56 104h2.878s-4.111-3.288-3.7-3.288c.41 0 2.466.41 2.466.41l-1.233-3.287h1.233l-1.233-2.467 2.055-.822 1.234 2.055-.411-4.933 2.877.412v4.11s1.233-2.466 1.233-2.877c0-.411 3.7 1.644 3.289.822z" fill-rule="evenodd" fill-opacity=".996" transform="matrix(1.684 0 0 1.4651 126.765 126.602)" stroke="#000" stroke-width=".625" fill="#fdc400"/> - <path d="M399.533 301.86c-.865.753-3.462 2.409-3.462 2.409s5.886-.451 5.712-.451-2.076-1.507-2.25-1.958zM404.552 304.717c-.345.451-1.384 5.12-.692 4.817.692-.3 3.46-3.763 3.46-3.763l-2.768-1.054zM412.5 305.318c.865.753 4.846 4.215 4.327 3.462-.519-.752-1.039-3.915-1.384-4.064-.347-.151-2.597.902-2.942.602zM342.763 300.351c-.518.151-4.845 3.012-4.845 3.012s7.269-1.205 6.922-1.205c-.345 0-2.25-1.354-2.077-1.807zM347.26 303.97c-.692.602-2.942 4.817-2.077 4.668.866-.151 4.674-2.862 4.674-2.862l-2.597-1.806zM344.481 298.095c-.519-.151-4.154-1.657-3.981-1.657s4.847-1.054 4.847-1.054l-.866 2.71zM275.953 296.146l-5.192-3.614 6.577 1.806-1.385 1.808zM271.453 298.549c-.692 0-7.269 3.613-7.096 3.613s9.173.15 9 0c-.173-.15-1.558-3.311-1.904-3.613zM275.606 303.823c-.692.302-5.884 3.764-5.538 3.764.346 0 7.788.151 7.788 0s-2.077-3.613-2.25-3.764zM274.914 266.325s-1.904-4.216-1.73-4.216c.172 0 4.845 3.313 4.845 3.313l-3.115.903zM280.106 261.055c0-.15.52-2.71.52-2.71s4.672 3.162 4.499 3.162c-.173 0-4.673 0-5.02-.452zM287.376 263.012c0-.15.52-3.915.52-3.915s4.326 5.12 3.98 5.27c-.346.151-4.154-.752-4.5-1.355z" fill-opacity=".996" fill-rule="evenodd"/> - <path d="M137.26 110.86c0 .206 4.316 3.7 4.419 4.522.102.822-7.811 1.028-7.811 1.028s-2.261-1.747-2.98-1.645c-.72.103-1.028 1.85-1.028 1.85l1.85 1.028-3.494.205 1.028 1.953 2.672-.206-.617 1.85s1.644 1.234 1.953 1.028c.308-.205 1.336-2.055 2.158-2.364.822-.308 2.569-.308 2.569-.308s-1.336 2.261-.719 2.261c.616 0 3.391-2.364 3.391-2.364s.617 2.158.719 2.158c.103 0 2.056-2.466 2.056-2.466s0 1.953.308 1.953 3.186-2.467 3.186-2.467 2.261 2.878 2.569 2.672c.309-.205.617-3.083.925-3.083s2.261-.308 2.261-.411-1.233-1.131-1.439-2.569c-.205-1.439.206-4.83.103-4.83s-13.874.513-14.079.205z" fill-rule="evenodd" fill-opacity=".996" transform="matrix(1.684 0 0 1.4651 125.614 126.933)" stroke="#000" stroke-width=".625" fill="#fdc400"/> - <path d="M115.37 104.6h40.286c4.111 0 7.81-1.644 7.81-4.111 0-2.466-6.577-2.877-9.043-2.055-2.467.822-13.155 5.755-17.677 5.344s-8.632-3.289-9.043-6.166c-.412-2.878 2.055-5.344 6.577-5.344s10.277 1.644 11.51 1.233 4.111-3.7 5.344-4.11c1.233-.412 4.933-.823 4.933-.823l-1.644 1.233 5.344-1.233s-4.111 4.522-8.222 5.755c-4.111 1.234-12.743.822-16.032.822s-4.933-.41-4.522 2.056c.411 2.466 2.878 4.111 4.933 3.699 2.056-.411 8.222-2.466 8.222-2.466l-1.645-1.233 7.4-.411s-.411-1.233 0-1.233 4.111.41 4.111.41-2.467-1.233-2.056-1.233 2.056 0 5.344.412c3.289.41 10.277 1.644 9.866 4.932-.411 3.289-2.877 6.166-5.755 6.166s-5.344-.822-5.344.412c0 1.233 3.289 2.055 5.344 2.055s4.522-1.644 4.933-1.644 1.233 2.466 1.644 2.466 2.878-.822 2.878-.822l-1.644 4.522 2.877.822s-1.644 1.644-1.233 1.644 2.877 0 2.877.411-3.288 2.878-3.288 3.289 2.466 1.644 2.466 1.644-1.644 2.467-2.055 2.056-2.056-2.467-2.056-2.467-.411 1.645-1.233 1.645-2.466-.411-2.466-.411 1.233-2.467.822-2.467-2.467 1.644-2.467 1.233l-1.232-1.236s3.288-1.336 3.288-3.289c0-1.952-1.336-3.905-7.296-4.213-5.961-.309-6.064 1.438-10.483 1.233-4.419-.206-4.419-1.953-7.708-1.953-3.288 0-13.463 4.111-18.19 4.008-4.727-.102-10.688-.411-10.483-.616.206-.206 3.906-9.661 4.008-9.966z" fill-rule="evenodd" fill-opacity=".996" transform="matrix(1.684 0 0 1.4651 125.614 126.933)" stroke="#000" stroke-width=".625" fill="#fdc400"/> - <path d="M106.88 102.46c-.411.206-4.008.72-4.214 4.522-.205 3.803.309 3.803.72 3.597.411-.205 1.233-3.494 1.233-3.494s-1.233 4.522.103 5.55a9.298 9.298 0 0 0 2.775 1.438l.513-3.597s-1.027 3.495 1.439 4.728c2.467 1.233 3.392.308 3.186-.617-.205-.925-.925-3.288-.925-3.288s1.953 2.158 2.056 2.363c.102.206 1.027 1.85 3.494 1.131 2.466-.72.719-2.364.719-2.364l-2.98-2.46s3.083 3.185 4.419 2.055-1.028-3.597-.925-3.494 1.953 3.494 2.672 1.336-1.13-2.775-1.747-4.83c-.617-2.056-1.131-2.261-.514-3.495.617-1.233.72-3.596.72-3.596s2.569.616 2.363-1.542c-.205-2.158-2.775-2.672-3.288-2.775-.514-.103-.412-2.26-.617-2.158-.206.103-1.85 1.336-1.85 1.336s-1.439-3.392-1.747-3.186-1.953 1.953-3.186 2.055c-1.233.103-1.953 1.85-1.953 1.85s-4.316-2.055-4.213 1.336c.103 3.392 2.569 2.57 2.569 2.672s-.411 4.728-.822 4.933z" fill-rule="evenodd" fill-opacity=".996" transform="matrix(1.684 0 0 1.4651 126.765 126.602)" stroke="#000" stroke-width=".625" fill="#fdc400"/> - <path d="M310.765 269.092c.832-.255 2.057-1.318 3.476-1.19s3.694 1.218 2.568 1.813c-1.127.595-1.959.85-3.232.55-1.272-.299-2.25-.938-2.812-1.173zM324.882 268.94c-.833-.254-2.058-1.317-3.477-1.188s-3.694 1.217-2.568 1.812c1.128.595 1.959.85 3.232.55 1.272-.299 2.25-.938 2.813-1.173z" fill-opacity=".996" fill-rule="evenodd"/> - <path d="M110.99 103.17c.103.514.411 4.831.616 4.522.206-.308 1.748-4.419 1.645-4.419s-2.158.103-2.261-.103z" fill-rule="evenodd" fill-opacity=".996" transform="matrix(1.684 0 0 1.4651 126.999 126.673)" stroke="#000" stroke-width=".375" fill="#000039"/> - <path d="M109.96 103.17c.049-1.215.822-1.13 2.467-.925 1.644.206 2.466 1.028 2.363 1.234-.102.205-1.438.719-2.569.616-1.336-.411-2.298.089-2.261-.925z" transform="matrix(1.684 0 0 1.4651 126.999 126.887)" stroke="#000" stroke-width=".75" fill="none"/> - <path d="M112.43 100.08l-.206 1.953M119.32 94.844s1.336.617 1.131 1.233c-.206.617-1.131.925-1.131.925M108.12 94.33c-.308.103-.719.308-.925 1.13-.205.823.925 1.337.925 1.337" transform="matrix(1.684 0 0 1.4651 126.999 126.887)" stroke="#000" stroke-width="1pt" fill="none"/> - <path d="M111.19 136.13s-1.454 1.454 1.017 1.454.727-1.308.727-1.308" transform="matrix(1.684 0 0 1.4651 127.244 71.947)" stroke="#000" stroke-width="1pt" fill="none"/> - <path fill-rule="evenodd" fill="#fdc400" d="M323.643 438.01l7.193-23.638-19.977-14.86 25.02-.56 8.161-23.327 8.273 23.288 25.02.45-19.909 14.95 7.301 23.603-20.573-14.047z"/> - <path fill-rule="evenodd" fill-opacity=".996" fill="#003017" d="M327.049 431.675l5.994-18.778-16.647-11.804 20.85-.445 6.8-18.53 6.894 18.5 20.85.356-16.59 11.876 6.083 18.75-17.143-11.16z"/> - <path fill-rule="evenodd" fill="#fdc400" d="M282.467 390.136l7.116-22.354-19.763-14.052 24.752-.53 8.072-22.06 8.183 22.023 24.752.425-19.696 14.138 7.223 22.321-20.351-13.285z"/> - <path fill-rule="evenodd" fill-opacity=".996" fill="#003017" d="M285.847 384.142l5.93-17.758-16.469-11.163 20.626-.42 6.727-17.524 6.82 17.494 20.625.338-16.412 11.23 6.019 17.732-16.96-10.553z"/> - <path fill-rule="evenodd" fill="#fdc400" d="M365.42 390.136l7.207-22.354-20.016-14.052 25.07-.53 8.176-22.06 8.289 22.023 25.07.425-19.949 14.138 7.316 22.321-20.614-13.285z"/> - <path fill-rule="evenodd" fill-opacity=".996" fill="#003017" d="M368.84 384.142l6.006-17.758-16.68-11.163 20.891-.42 6.814-17.524 6.907 17.494 20.892.338-16.624 11.23 6.096 17.732-17.177-10.553z"/> - <path fill="none" d="M223.666 402.987c9.009 38.769 47.03 67.544 98.24 74.348 65.775 8.74 128.525-24.586 140.064-74.388"/> - <path d="M223.505 408.985l12.353-6.979 1.163 2.54-4.845 2.737 1.603 3.503 4.845-2.737 1.162 2.54-12.353 6.979-1.162-2.54 5.598-3.163-1.603-3.503-5.598 3.163-1.163-2.54m5.171 10.808l11.533-8.537 3.947 6.582-1.917 1.42-2.525-4.211-2.666 1.973 2.35 3.92-1.827 1.352-2.35-3.92-3.176 2.351 2.585 4.31-1.947 1.442-4.007-6.682m8.037 12.397l10.173-10.455 1.742 2.092-3.99 4.1 2.401 2.885 3.99-4.1 1.742 2.092-10.174 10.455-1.742-2.092 4.612-4.739-2.402-2.885-4.61 4.74-1.742-2.093m13.286 6.191l1.65 1.609 3.001-5.667L250 438.38m-6.455 1.93l11.485-9.29 2.605 2.539-6.77 13.885-2.09-2.037 1.782-3.41-2.232-2.176-2.797 2.421-1.983-1.931m10.022 9.31l6.843-10.37-2.394-1.95 1.351-2.048 6.872 5.6-1.351 2.047-2.395-1.951-6.844 10.369-2.083-1.697m5.62 4.493l7.22-13.144 2.19 1.485-2.832 5.155 3.018 2.047 2.832-5.155 2.19 1.484-7.22 13.144-2.19-1.485 3.273-5.957-3.019-2.047-3.272 5.957-2.19-1.484m13.572 8.587l5.825-13.97 6.573 3.382-.954 2.287-4.23-2.177-1.376 3.302 3.993 2.055-.93 2.232-3.993-2.055-2.565 6.151-2.343-1.206m12.854-2.122c-.81 2.368-1.196 3.913-1.16 4.634.044.717.402 1.218 1.076 1.501.661.28 1.215.17 1.66-.326.454-.5 1.09-1.947 1.907-4.34s1.207-3.947 1.169-4.662c-.038-.715-.391-1.213-1.059-1.494-.667-.282-1.229-.17-1.684.337-.455.507-1.092 1.957-1.91 4.35m-2.464-1.04c.521-1.526 1.002-2.718 1.442-3.573.442-.862.879-1.465 1.311-1.81.6-.496 1.208-.774 1.825-.835.618-.06 1.352.09 2.205.449.853.36 1.492.79 1.918 1.29.425.5.717 1.158.875 1.973.113.59.076 1.365-.111 2.327-.182.965-.533 2.207-1.052 3.728-.518 1.514-.997 2.702-1.44 3.564-.439.855-.874 1.463-1.305 1.823-.605.494-1.217.77-1.834.83-.617.061-1.352-.088-2.205-.448-.852-.36-1.492-.79-1.917-1.29-.426-.5-.715-1.157-.868-1.97-.117-.577-.085-1.347.097-2.312.184-.97.537-2.219 1.058-3.746m11.92-3.27l2.475.819-2.665 9.947c-.305 1.137-.389 1.95-.251 2.441.145.487.537.835 1.175 1.046.632.21 1.124.15 1.475-.18.357-.326.69-1.068 1-2.224l2.656-9.909 2.44.808-2.73 10.186c-.265.99-.511 1.698-.738 2.124-.22.422-.493.766-.821 1.033-.495.4-1.071.633-1.728.7-.655.062-1.385-.04-2.19-.306-1.517-.503-2.492-1.222-2.924-2.157-.424-.94-.392-2.32.096-4.142l2.73-10.186m6.628 18.157l3.026-15.026 2.591.644 1.405 11.384 2.046-10.526 2.38.592-3.026 15.026-2.573-.64-1.428-11.41-2.05 10.545-2.37-.59m13.546.766l1.13.197c.574.1.984.124 1.228.072.244-.052.45-.178.618-.378.293-.354.538-.865.735-1.532.198-.674.404-1.768.617-3.283.208-1.475.3-2.559.277-3.251-.024-.693-.154-1.235-.39-1.627a1.22 1.22 0 0 0-.528-.456c-.221-.113-.58-.212-1.079-.299l-1.093-.19-1.515 10.747m-2.814 1.808l2.144-15.213 4.098.714c.836.145 1.489.34 1.958.583.476.245.849.573 1.119.984.406.604.651 1.321.735 2.152.09.826.017 2.075-.219 3.747-.304 2.16-.588 3.676-.85 4.548-.262.865-.6 1.583-1.014 2.151-.402.571-.903.933-1.5 1.085-.592.147-1.578.1-2.96-.14l-3.511-.611m10.719 1.762l1.332-15.326 7.085.76-.221 2.548-4.532-.487-.308 3.543 4.218.453-.21 2.428-4.22-.452-.366 4.22 4.64.497-.226 2.588-7.192-.772m11.707-1.24l1.142.045c.581.024.99-.006 1.227-.09.237-.085.428-.237.573-.458.253-.39.442-.93.566-1.618.125-.696.212-1.81.261-3.342.049-1.492.024-2.58-.074-3.264-.098-.685-.285-1.206-.562-1.564a1.177 1.177 0 0 0-.572-.383c-.232-.082-.6-.134-1.103-.154l-1.106-.044-.352 10.872m-2.6 2.167l.498-15.388 4.146.166c.845.034 1.514.14 2.006.32.499.18.904.457 1.216.83.469.545.789 1.225.96 2.039.178.807.24 2.057.185 3.75-.07 2.184-.19 3.727-.357 4.627-.167.894-.426 1.65-.776 2.27-.338.62-.796 1.046-1.374 1.276-.572.224-1.556.308-2.953.252l-3.552-.142m15.437.201l-.55-15.386 2.58-.114.55 15.386-2.58.114m6.893-.405l-.947-12.815-2.96.27-.187-2.532 8.493-.774.187 2.53-2.96.27.948 12.816-2.574.235m9.091-16.51l2.545-.491 1.6 10.225c.182 1.169.434 1.94.754 2.31.324.364.815.482 1.471.356.65-.126 1.066-.423 1.249-.891.188-.47.19-1.299.004-2.487l-1.594-10.186 2.51-.485 1.637 10.472c.16 1.018.223 1.773.19 2.267-.027.485-.134.929-.321 1.33a3.666 3.666 0 0 1-1.266 1.483c-.562.38-1.256.649-2.084.809-1.56.301-2.721.14-3.483-.485-.756-.632-1.28-1.883-1.574-3.755l-1.638-10.472m13.788 3.905l1.05-.284c.78-.211 1.291-.528 1.532-.95.24-.429.27-1.054.09-1.876-.183-.83-.454-1.363-.815-1.602-.357-.246-.94-.26-1.75-.04l-1.084.293.977 4.459m-.578 9.068l-3.279-14.96 4.354-1.179c1.33-.36 2.357-.288 3.085.215.728.503 1.256 1.506 1.586 3.008.323 1.477.253 2.662-.212 3.556-.46.886-1.329 1.502-2.605 1.847l-1.827.495 1.39 6.344-2.491.674m9.896-10.84c.69 2.414 1.25 3.891 1.68 4.431.436.532.996.677 1.683.436.674-.238 1.048-.705 1.12-1.402.075-.705-.235-2.277-.932-4.717s-1.26-3.927-1.688-4.461c-.43-.534-.985-.681-1.665-.441-.68.24-1.058.715-1.132 1.426-.074.712.238 2.287.934 4.727m-2.513.886c-.444-1.557-.733-2.822-.867-3.796-.135-.98-.13-1.755.017-2.324.193-.802.514-1.44.964-1.913.45-.474 1.11-.864 1.98-1.17.868-.306 1.61-.41 2.223-.312.614.099 1.21.413 1.79.943.417.384.822 1.018 1.212 1.901.397.882.816 2.098 1.259 3.648.44 1.544.728 2.806.863 3.786.134.975.132 1.751-.004 2.331-.199.804-.523 1.443-.973 1.916-.45.474-1.11.863-1.98 1.17-.869.306-1.61.41-2.223.311-.614-.098-1.207-.413-1.78-.946-.415-.371-.82-.997-1.217-1.879-.398-.887-.82-2.11-1.264-3.666m12.667 3.52l-5.156-14.294 2.464-1.097 6.955 8.503-3.672-9.965 2.263-1.008 5.156 14.293-2.447 1.09-6.987-8.511 3.68 9.984-2.256 1.004m16.05-7.884l-5.406-11.368-2.626 1.541-1.068-2.245 7.535-4.424 1.068 2.246-2.626 1.541 5.407 11.369-2.284 1.34m6.1-3.637l-7.4-13.018 2.17-1.522 2.901 5.106 2.99-2.098-2.902-5.106 2.169-1.522 7.4 13.019-2.169 1.521-3.354-5.9-2.99 2.098 3.354 5.9-2.168 1.522m9.244-6.657l-8.352-12.288 5.68-4.766 1.388 2.042-3.633 3.05 1.93 2.84 3.383-2.838 1.323 1.946-3.382 2.839 2.3 3.383 3.72-3.122 1.41 2.075-5.767 4.839m7.129-13.213l1.842-2.011.624.706c.597.675 1.08 1.054 1.448 1.138.369.074.74-.092 1.112-.498.389-.425.588-.857.595-1.295.012-.443-.171-.879-.55-1.307-.29-.328-.608-.531-.955-.61-.352-.083-.927-.054-1.726.09l-1.6.288c-1.367.26-2.343.307-2.927.141-.58-.17-1.143-.565-1.69-1.183-.816-.922-1.209-1.914-1.18-2.974.03-1.06.477-2.062 1.342-3.006.915-1 1.863-1.488 2.843-1.464s1.93.556 2.85 1.597c.093.105.163.188.209.25.05.057.092.11.126.157l-1.746 1.906-.259-.293c-.525-.594-.99-.924-1.392-.989-.402-.065-.805.122-1.207.561-.295.322-.442.675-.441 1.056.001.373.153.73.456 1.072.408.462 1.239.56 2.492.293a.116.116 0 0 1 .032-.006l1.689-.344c1.194-.257 2.13-.288 2.807-.093.673.19 1.333.651 1.98 1.384.884.998 1.308 2.049 1.274 3.151-.034 1.103-.528 2.175-1.483 3.217-.992 1.084-1.985 1.607-2.977 1.569-.988-.043-2-.649-3.034-1.818a14.32 14.32 0 0 1-.517-.642l-.038-.043m10.724-4.324l-10.622-9.89 4.572-6.062 1.766 1.644-2.925 3.878 2.456 2.286 2.722-3.61 1.683 1.567-2.722 3.61 2.924 2.723 2.994-3.97 1.793 1.67-4.64 6.154m2.696-13.786l1.227-2.023-5.44-2.589 4.213 4.612m2.541 6.87L441.67 415.4l1.935-3.193 13.254 5.7-1.554 2.563-3.27-1.532-1.66 2.737 2.517 2.776-1.473 2.43m1.645-12.522l1.18-2.553.792.452c.758.433 1.323.624 1.697.575.37-.058.675-.345.914-.861.249-.54.315-1.019.199-1.438-.114-.424-.412-.774-.892-1.048-.368-.21-.728-.291-1.08-.245-.357.043-.895.273-1.612.687l-1.437.833c-1.225.725-2.139 1.11-2.74 1.157-.599.04-1.245-.137-1.939-.533-1.035-.59-1.689-1.394-1.96-2.411-.273-1.017-.132-2.124.422-3.322.586-1.27 1.348-2.064 2.284-2.383.937-.32 1.99-.147 3.159.52.117.067.207.122.268.164.064.037.118.072.164.105l-1.118 2.42-.328-.188c-.667-.38-1.201-.531-1.602-.453-.4.08-.73.397-.987.955-.19.409-.229.794-.12 1.156.107.353.352.64.736.859.518.295 1.334.098 2.45-.593.01-.009.02-.014.028-.017l1.506-.917c1.06-.661 1.94-1.017 2.638-1.069.693-.054 1.45.153 2.272.622 1.12.64 1.82 1.489 2.1 2.547.28 1.059.114 2.25-.497 3.572-.636 1.376-1.43 2.219-2.383 2.53-.95.304-2.081.082-3.394-.667-.139-.08-.363-.222-.672-.429l-.048-.027"/> - </g> -</svg> diff --git a/img/flags/1x1/kz.svg b/img/flags/1x1/kz.svg deleted file mode 100644 index 7b2bb3c..0000000 --- a/img/flags/1x1/kz.svg +++ /dev/null @@ -1,23 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" height="512" width="512" viewBox="0 0 512 512"> - <g fill-rule="evenodd"> - <path fill="#6fdcff" d="M0 0h512v512H0z"/> - <g fill="#ffe400"> - <path d="M42.989 497.929c3.469 3.396 2.327 9.108 11.974 8.373 14.726 0 15.15-9.008 15.15-15.298 0-6.28-21.942-15.065-22.952-24.306-1.025-9.252 5.064-11.835 10.158-11.835 5.065 0 8.622 2.961 8.622 5.544s-2.532 3.33-6.09 3.33 1.523-1.849-1.522-3.33-5.079 2.216-5.079 4.443c0 2.216 7.612 2.95 12.691 1.291 1.025 4.989 1.523 5.367-5.592 13.862 5.094-3.329 5.578-4.064 11.184-2.215-5.592-4.81-1.405-14.608-1.215-17.102s-1.069-5.456-3.352-6.937c-4.07-3.696-12.955-3.863-18.283-1.48-7.758 3.462-8.139 13.672-6.104 17.012l21.503 22.046c1.523 2.594 2.05 9.797-7.085 10.165-9.646.735-12.954-12.414-14.667-16.79-2.298 4.776-4.86 17.959-14.506 17.224-9.149-.367-10.905-7.571-9.383-10.165l22.089-22.48c2.02-3.34 1.64-13.55-6.12-17.012-5.327-2.383-14.198-2.216-18.267 1.48-2.284 1.481-3.557 4.443-3.367 6.937s4.377 12.292-1.215 17.102c5.606-1.849 6.104-1.114 11.183 2.215-7.114-8.495-6.601-8.873-5.591-13.862 5.08 1.66 12.706.925 12.706-1.291 0-2.227-2.05-5.923-5.095-4.443-3.03 1.481 2.035 3.33-1.507 3.33-3.572 0-6.104-.746-6.104-3.33s3.557-5.544 8.636-5.544 11.169 2.583 10.144 11.835c-1.01 9.241-23.523 19.329-23.523 25.608 0 6.291 1.566 13.996 16.292 13.996 9.647.735 10.788-4.977 14.287-8.373z"/> - <path d="M41.818 365.991c3.47-3.396 6.324-13.46 15.97-12.726 14.726 0 20.303 8.139 20.303 14.43 0 6.28-29.95 57.685-30.96 66.926-1.024 9.252 5.065 11.836 10.16 11.836 5.064 0 8.621-2.962 8.621-5.545s-2.532-3.33-6.09-3.33 1.523 1.849-1.522 3.33-5.08-2.216-5.08-4.443c0-2.215 7.613-2.95 12.692-1.291 1.025-4.988 1.522-5.367-5.592-13.862 5.094 3.33 5.577 4.064 11.184 2.216-5.592 4.81-1.405 14.607-1.215 17.101s-1.069 5.456-3.352 6.937c-4.07 3.696-12.955 3.863-18.283 1.48-7.758-3.462-8.139-13.672-6.104-17.012l28.94-62.495c1.521-2.594-2.533-11.1-11.667-11.468-9.647-.735-12.955 9.375-14.668 13.75l13.145-.957s.513 2.026 0 3.34c-6.792.445-13.145 1.681-13.145 1.681l-.497 6.658h6.484l-.512 2.95s-5.475-.367-5.972 0c-.513.368-1.025 6.67-1.025 6.67s-1.01.368-2.108.368c-1.112 0-2.122-.368-2.122-.368s-.513-6.302-1.01-6.67c-.513-.367-5.987 0-5.987 0l-.498-2.95h6.485l-.513-6.658s-6.353-1.236-13.145-1.681c-.497-1.314 0-3.34 0-3.34l13.145.957c-1.712-4.375-5.02-14.485-14.652-13.75-9.15.367-13.204 8.874-11.681 11.468L40.5 432.038c2.02 3.34 1.64 13.55-6.118 17.013-5.328 2.382-14.2 2.215-18.268-1.481-2.284-1.48-3.557-4.443-3.367-6.937s4.377-12.291-1.215-17.101c5.606 1.848 6.104 1.113 11.183-2.216-7.114 8.495-6.601 8.874-5.591 13.862 5.079-1.66 12.705-.924 12.705 1.291 0 2.227-2.049 5.924-5.094 4.443-3.03-1.481 2.035-3.33-1.507-3.33-3.572 0-6.104.747-6.104 3.33s3.557 5.545 8.636 5.545 11.169-2.584 10.144-11.836c-1.01-9.241-30.96-60.647-30.96-66.926 0-6.291 5.578-14.43 20.304-14.43 9.646-.735 13.071 9.33 16.57 12.726z"/> - <path d="M41.818 340.517c3.469 3.395 6.323 13.46 15.97 12.726 14.726 0 20.303-8.14 20.303-14.43 0-6.28-29.95-57.685-30.96-66.926-1.024-9.253 5.065-11.836 10.16-11.836 5.064 0 8.62 2.962 8.62 5.545s-2.531 3.329-6.089 3.329 1.523-1.848-1.522-3.33-5.08 2.217-5.08 4.443c0 2.216 7.613 2.95 12.692 1.292 1.025 4.988 1.522 5.366-5.592 13.862 5.094-3.33 5.577-4.064 11.184-2.216-5.592-4.81-1.406-14.608-1.215-17.102s-1.069-5.455-3.352-6.936c-4.07-3.697-12.955-3.864-18.283-1.481-7.758 3.463-8.139 13.672-6.104 17.013l28.939 62.495c1.522 2.594-2.532 11.1-11.667 11.468-9.646.735-12.954-9.375-14.667-13.75l13.145.957s.512-2.027 0-3.34c-6.792-.446-13.145-1.682-13.145-1.682l-.497-6.658h6.484l-.512-2.95s-5.475.367-5.972 0c-.513-.368-1.025-6.67-1.025-6.67s-1.01-.367-2.108-.367c-1.112 0-2.123.368-2.123.368s-.512 6.301-1.01 6.669c-.512.367-5.986 0-5.986 0l-.498 2.95h6.484l-.512 6.658s-6.353 1.236-13.145 1.682c-.497 1.313 0 3.34 0 3.34l13.145-.958c-1.713 4.376-5.02 14.486-14.653 13.75-9.148-.367-13.203-8.873-11.68-11.467L40.5 274.47c2.02-3.34 1.64-13.55-6.118-17.013-5.329-2.383-14.2-2.216-18.269 1.48-2.283 1.482-3.557 4.443-3.366 6.937s4.376 12.292-1.215 17.102c5.606-1.848 6.104-1.113 11.183 2.216-7.114-8.496-6.602-8.874-5.592-13.862 5.08 1.659 12.706.924 12.706-1.292 0-2.226-2.05-5.923-5.094-4.442-3.03 1.48 2.035 3.329-1.508 3.329-3.571 0-6.104-.746-6.104-3.33s3.557-5.544 8.637-5.544 11.169 2.583 10.144 11.836c-1.01 9.24-30.96 60.646-30.96 66.926 0 6.29 5.578 14.43 20.304 14.43 9.646.735 13.071-9.33 16.57-12.726z"/> - <path d="M41.818 171.146c3.47-3.396 6.324-13.46 15.97-12.726 14.726 0 20.303 8.139 20.303 14.43 0 6.28-29.95 57.685-30.96 66.926-1.024 9.252 5.065 11.836 10.16 11.836 5.064 0 8.621-2.962 8.621-5.545s-2.532-3.33-6.09-3.33 1.523 1.849-1.522 3.33-5.08-2.216-5.08-4.443c0-2.215 7.613-2.95 12.692-1.291 1.025-4.988 1.522-5.367-5.592-13.862 5.094 3.33 5.577 4.064 11.184 2.216-5.592 4.81-1.405 14.607-1.215 17.101s-1.069 5.456-3.352 6.937c-4.07 3.696-12.955 3.863-18.283 1.48-7.758-3.462-8.139-13.672-6.104-17.012l28.94-62.495c1.521-2.594-2.533-11.1-11.667-11.468-9.647-.735-12.955 9.375-14.668 13.75l13.145-.957s.513 2.026 0 3.34c-6.792.445-13.145 1.681-13.145 1.681l-.497 6.658h6.484l-.512 2.95s-5.475-.367-5.972 0c-.513.368-1.025 6.67-1.025 6.67s-1.01.368-2.108.368c-1.112 0-2.122-.368-2.122-.368s-.513-6.302-1.01-6.67c-.513-.367-5.987 0-5.987 0l-.498-2.95h6.485l-.513-6.658s-6.353-1.236-13.145-1.681c-.497-1.314 0-3.34 0-3.34l13.145.957c-1.712-4.375-5.02-14.485-14.652-13.75-9.15.367-13.204 8.874-11.681 11.468L40.5 237.193c2.02 3.34 1.64 13.55-6.118 17.013-5.328 2.382-14.2 2.215-18.268-1.481-2.284-1.48-3.557-4.443-3.367-6.937s4.377-12.291-1.215-17.101c5.606 1.848 6.104 1.113 11.183-2.216-7.114 8.495-6.601 8.874-5.591 13.862 5.079-1.66 12.705-.924 12.705 1.291 0 2.227-2.049 5.924-5.094 4.443-3.03-1.481 2.035-3.33-1.507-3.33-3.572 0-6.104.747-6.104 3.33s3.557 5.545 8.636 5.545 11.169-2.584 10.144-11.836c-1.01-9.241-30.96-60.647-30.96-66.926 0-6.291 5.578-14.43 20.304-14.43 9.646-.735 13.071 9.33 16.57 12.726z"/> - <path d="M41.818 145.672c3.469 3.395 6.323 13.46 15.97 12.726 14.726 0 20.303-8.14 20.303-14.43 0-6.28-29.95-57.685-30.96-66.926-1.024-9.253 5.065-11.836 10.16-11.836 5.064 0 8.62 2.962 8.62 5.545s-2.531 3.329-6.089 3.329 1.523-1.848-1.522-3.33-5.08 2.217-5.08 4.443c0 2.216 7.613 2.95 12.692 1.292 1.025 4.988 1.522 5.366-5.592 13.862 5.094-3.33 5.577-4.064 11.184-2.216-5.592-4.81-1.406-14.608-1.215-17.102s-1.069-5.455-3.352-6.936c-4.07-3.697-12.955-3.864-18.283-1.481-7.758 3.463-8.139 13.672-6.104 17.013l28.939 62.495c1.522 2.594-2.532 11.1-11.667 11.468-9.646.735-12.954-9.375-14.667-13.75l13.145.957s.512-2.027 0-3.34c-6.792-.446-13.145-1.682-13.145-1.682l-.497-6.658h6.484l-.512-2.95s-5.475.367-5.972 0c-.513-.368-1.025-6.67-1.025-6.67s-1.01-.367-2.108-.367c-1.112 0-2.123.368-2.123.368s-.512 6.301-1.01 6.669c-.512.367-5.986 0-5.986 0l-.498 2.95h6.484l-.512 6.658s-6.353 1.236-13.145 1.682c-.497 1.313 0 3.34 0 3.34l13.145-.958c-1.713 4.376-5.02 14.486-14.653 13.75-9.148-.367-13.203-8.873-11.68-11.467L40.5 79.625c2.02-3.34 1.64-13.55-6.118-17.013-5.329-2.383-14.2-2.216-18.269 1.48-2.283 1.482-3.557 4.443-3.366 6.937s4.376 12.292-1.215 17.102c5.606-1.848 6.104-1.113 11.183 2.216-7.114-8.496-6.602-8.874-5.592-13.862 5.08 1.659 12.706.924 12.706-1.292 0-2.226-2.05-5.923-5.094-4.442-3.03 1.48 2.035 3.329-1.508 3.329-3.571 0-6.104-.746-6.104-3.33s3.557-5.544 8.637-5.544 11.169 2.583 10.144 11.836c-1.01 9.24-30.96 60.646-30.96 66.926 0 6.29 5.578 14.43 20.304 14.43 9.646.735 13.071-9.33 16.57-12.726z"/> - <path d="M42.988 13.711c3.47-3.395 2.328-9.107 11.974-8.372 14.726 0 15.15 9.007 15.15 15.298 0 6.28-21.942 15.064-22.952 24.305-1.024 9.253 5.065 11.836 10.159 11.836 5.065 0 8.622-2.962 8.622-5.545s-2.533-3.33-6.09-3.33 1.523 1.85-1.522 3.33-5.08-2.216-5.08-4.443c0-2.215 7.612-2.95 12.692-1.291 1.024-4.988 1.522-5.367-5.592-13.862 5.094 3.33 5.577 4.064 11.183 2.216-5.591 4.81-1.405 14.608-1.214 17.102s-1.069 5.455-3.353 6.936c-4.069 3.697-12.954 3.864-18.282 1.48-7.759-3.462-8.14-13.672-6.104-17.012l21.503-22.045c1.522-2.594 2.05-9.798-7.085-10.166-9.646-.734-12.955 12.415-14.667 16.79-2.298-4.776-4.86-17.959-14.507-17.224-9.148.368-10.905 7.571-9.383 10.166l22.09 22.48c2.02 3.34 1.639 13.55-6.12 17.012-5.328 2.383-14.198 2.216-18.268-1.48-2.283-1.482-3.557-4.443-3.366-6.937s4.376-12.292-1.215-17.102c5.606 1.848 6.104 1.113 11.183-2.216-7.114 8.495-6.602 8.874-5.592 13.862 5.08-1.659 12.706-.924 12.706 1.291 0 2.227-2.05 5.924-5.094 4.443-3.03-1.48 2.035-3.33-1.508-3.33-3.571 0-6.104.747-6.104 3.33s3.557 5.545 8.637 5.545 11.169-2.583 10.144-11.836c-1.01-9.241-23.523-19.328-23.523-25.608 0-6.29 1.566-13.995 16.292-13.995 9.646-.735 10.788 4.977 14.286 8.372z"/> - </g> - <g fill="#ffe400" transform="translate(-220 40)"> - <rect rx="85.12" ry="80.648" height="161.3" width="170.24" y="104.45" x="425.9"/> - <path d="M506.94 56.355c-.708-.007-4.534 26.842-6.013 32.876-1.325 13.43 18.07 12.94 14.897-.532l-8.88-32.344zM513.77 316.21c.706.053 6.49-26.479 8.408-32.401 2.306-13.31-17.078-14.098-14.9-.45l6.492 32.85zM378.17 184.61c-.06.669 27.915 6.277 34.156 8.123 14.037 2.249 14.962-16.113.547-14.115l-34.703 5.992zM649.89 187.8c.03-.67-28.166-5.274-34.483-6.896-14.123-1.745-14.234 16.638.079 14.125l34.404-7.23zM406.79 99.641c-.482.492 17.893 21.249 21.605 26.348 9.588 9.97 22.265-3.945 9.616-10.793l-31.22-15.559zM617.95 270.64c.435-.53-19.772-19.698-23.937-24.472-10.465-9.145-21.819 5.761-8.59 11.543l32.528 12.929zM448.97 70.619c-.644.28 7.966 26.114 9.34 32.171 4.84 12.685 22.167 4.414 13.24-6.493l-22.58-25.678zM571.98 302.96c.663-.237-6.032-26.575-6.96-32.708-3.897-12.973-21.79-5.862-13.682 5.606l20.642 27.101zM602.16 88.602c-.511-.465-22.711 16.61-28.152 20.045-10.676 8.923 3.807 21.156 11.236 9.282l16.916-29.327zM419.24 282.33c.476.497 23.874-15.076 29.553-18.145 11.304-8.199-2.247-21.355-10.528-9.999L419.24 282.33zM384.15 138.16c-.29.612 24.124 14.715 29.362 18.422 12.449 6.543 19.765-10.482 5.47-13.139l-34.832-5.283zM638.07 236.6c.335-.591-22.987-16.266-27.941-20.309-11.939-7.347-20.486 9.156-6.419 12.748l34.36 7.561zM557.37 63.719c-.657-.251-14.571 23.416-18.275 28.521-6.412 12.042 11.831 18.301 14.072 4.662l4.204-33.183zM463.52 307.97c.637.294 16.252-22.401 20.322-27.25 7.28-11.591-10.461-19.035-13.696-5.577l-6.626 32.826zM386.04 238.68c.257.625 27.986-5.986 34.449-6.926 13.652-3.825 5.965-20.703-6.056-12.906L386.04 238.68zM638.13 136.11c-.21-.64-28.357 4.13-34.873 4.643-13.899 2.917-7.468 20.261 5.096 13.273l29.777-17.916z"/> - <path d="M534.62 58.119c-.692-.141-10.14 25.429-12.87 31.058-4.149 12.903 14.954 16.119 14.705 2.318L534.62 58.12zM486.15 313.97c.68.187 11.979-24.7 15.115-30.136 5.085-12.599-13.736-17.064-14.5-3.28l-.615 33.416zM476.38 60.639c-.692.144 1.918 27.122 1.9 33.317 1.88 13.37 20.668 8.783 14.395-3.675l-16.29-29.642zM544.39 312.46c.7-.098.075-27.183.546-33.362-.895-13.462-19.974-10.121-14.628 2.72l14.082 30.641zM428.16 83.092c-.58.384 12.765 24.345 15.26 30.07 7.154 11.661 22.642.589 11.8-8.63l-27.06-21.44zM593.02 290.86c.607-.345-10.95-25.126-13.019-31.002-6.283-12.104-22.545-2.077-12.404 7.834l25.423 23.168zM393 116.64c-.397.556 21.128 18.39 25.624 22.888 11.091 8.456 21.36-7.142 7.75-12.065L393 116.64zM627.19 256.26c.436-.529-19.729-19.736-23.885-24.519-10.445-9.165-21.832 5.72-8.615 11.526l32.5 12.992zM377.57 158.53c-.181.649 26.336 10.784 32.143 13.63 13.409 4.53 17.693-13.4 3.13-13.809l-35.273.179zM645.04 216.35c.229-.635-25.482-12.49-31.067-15.712-13.045-5.4-18.632 12.204-4.135 13.57l35.202 2.143zM376.7 209.96c.098.665 28.689.262 35.207.752 14.214-.753 10.823-18.853-2.767-13.879L376.7 209.96zM646.91 164.97c-.05-.67-28.601-2.149-35.067-3.067-14.235-.184-12.178 18.095 1.743 14.027l33.324-10.96zM401.18 263.43c.395.557 25.926-11.641 32.015-13.899 12.438-6.562 1.04-21.438-8.89-11.338L401.18 263.43zM623.48 111.1c-.353-.582-26.717 9.907-32.956 11.759-12.889 5.727-2.61 21.318 8.037 11.896l24.92-23.654zM442.83 298.77c.597.362 18.872-20.474 23.505-24.846 8.643-10.718-8.072-20.052-12.925-7.037l-10.58 31.883zM582.54 75.063c-.569-.4-20.327 19.183-25.269 23.239-9.407 10.124 6.583 20.535 12.378 7.87l12.891-31.11z"/> - <g transform="matrix(2.1824 0 0 2.0629 -405.01 -272.56)"> - <path d="M360.137 247.889c.625 2.5.781 16.562 14.844 30 14.062 13.437 37.969 16.406 37.969 16.406s.156 1.875-1.563 2.031c-1.719.157-9.844-1.562-13.906-2.812-4.063-1.25-7.656-3.438-8.125-3.281-.469.156-1.25 1.562-2.5 1.406s-7.031-6.25-9.531-7.813c-2.5-1.562-10.938-10.781-13.75-15.312-2.813-4.531-3.438-7.5-4.375-7.5-.938 0-4.219 2.187-4.219 2.187s-2.969-4.531-5.625-11.719c-2.656-7.187-2.344-11.406-1.719-11.718.625-.313.625 5.312 2.656 10.468 2.032 5.157 4.844 6.719 4.844 6.719s-1.875-2.656-3.281-9.375-1.875-13.125-.938-15.156c.938-2.031 1.875-2.656 2.032-2.5.156.156-1.719 3.125-.469 10.781s4.844 14.219 5.625 13.906c.781-.312-.469-1.875-1.094-6.406s.625-7.344 1.719-7.656c.469-.469 1.25 5 1.406 7.344zM350.292 260.699c-2.656-2.5-6.875-11.25-7.812-10.781-.938.469 6.875 12.969 7.031 14.063.156 1.093 1.875 4.531.625 4.062s-10.625-10.312-9.531-8.437 8.125 10.468 7.656 10.937-5.781-4.688-5.937-4.062c-.157.625 5.312 5.781 5.156 6.406s-3.438-3.281-3.438-2.5 3.438 4.687 3.438 5.312-2.969-2.812-2.031-.937c.937 1.875 3.593 3.594 3.437 4.219s-2.187-.782-2.187-.469c0 .312 3.906 1.719 4.843 2.812.938 1.094 7.344 8.438 12.188 12.188s18.594 10.156 19.531 10.156c.938 0 2.344-2.031 2.031-2.812-.312-.782-13.75-5.313-17.5-8.75-3.75-3.438-12.968-11.563-13.75-12.032-.781-.468-2.812-.312-2.812-.781s2.656.313 2.5 0c-.156-.312-3.75-1.875-3.594-2.187.156-.313 2.5.625 2.5.312 0-.312-4.219-2.656-4.062-3.125.156-.469 3.125 1.406 3.125 1.094 0-.313-4.063-3.125-3.907-3.594.157-.469 3.125 2.188 2.969 1.563s-2.344-3.907-2.344-4.375c0-.469 3.594 3.437 3.907 2.656.312-.781-1.25-7.188-1.094-7.344s2.645 1.422 3.114.484c.468-.937-1.837-2.241-4.052-4.078zM396.4 309.9c-1.893.249-2.747-.393-1.672-1.934 1.488-.11 5.449-1.379 6.849-1.96s2.894-1.416 4.137-2.534c1.24-1.22 1.903.782 1.282 1.819-.515.73-2.838 2.044-4.545 2.739-2.479.825-4.61 1.967-6.051 1.87zM408.887 304.769c-1.25-1.407-.156-2.344 1.719-3.438 2.812-1.562 2.032-3.593 5.625-5.312 1.563-.938 23.906-10 31.25-14.844s27.813-20.313 33.281-30.938c5.469-10.625 2.813-11.406 3.594-11.875.781-.468 1.563 1.563 1.406 3.907-.156 2.343-1.875 9.375-1.406 10s8.281-5.469 11.406-12.969 5.625-15.313 7.188-15.313c1.562 0-2.656 12.813-5.313 17.813-2.656 5-5.781 7.5-5 8.594.782 1.093 8.594-5.469 11.25-10.313 2.657-4.844 5.157-9.219 5.625-8.281.469.937-2.5 11.25-6.718 16.094-4.219 4.843-9.219 8.281-8.438 9.062.781.782 6.406 1.563 12.344-2.5 5.937-4.062 6.562-10 7.344-9.687.781.312-.782 8.437-6.407 13.437s-13.281 5.469-12.968 6.563c.312 1.094 16.25-4.531 15.937-3.281-.312 1.25-20.625 9.218-20.782 10 .001.625 3.439.781 8.907-.469 5.469-1.25 10.626-5.468 11.407-4.531.155 1.406-3.907 4.844-10.157 6.406-6.25 1.563-9.375 3.75-9.531 4.219-.156.468 11.094-1.407 11.094-.782s-14.688 3.438-14.844 4.22c-.156.781 14.062-2.813 13.75-2.032-.313.781-19.219 6.406-19.063 6.719.157.312 15.782-3.438 15.469-2.813-.312.625-26.406 7.969-26.562 8.438-.157.468 22.968-5.157 22.812-4.688s-12.031 3.437-12.031 3.75c0 .312 9.531-1.562 9.375-1.094-.156.469-24.063 6.563-24.532 7.5-.468.938 12.344-2.5 12.188-.781s-27.656 11.094-27.813 9.375c-.156-1.719 16.719-6.094 16.563-6.562-.156-.469-9.687 1.093-9.844.156-.156-.938 6.25-2.969 5.782-3.438-.469-.468-5.313 1.406-4.844.313.469-1.094 9.531-5.313 9.375-5.625-.156-.313-3.281 1.093-2.969 0 .313-1.094 19.687-6.719 19.375-7.344-.313-.625-8.906 1.406-9.687 1.562-.313-.624 12.031-5.156 11.718-5.937-.312-.781-6.562 2.656-6.874 1.719-.313-.938 10.781-5.313 10.156-5.938s-5.781 1.719-6.406 1.094 10.468-8.437 8.749-8.594c-1.718-.156-3.75 2.345-4.062.782.313-2.032 8.75-5.313 6.875-6.875-2.969-.938-13.125.625-17.344 3.125s-18.125 16.406-21.563 18.593c-3.437 2.188-15 7.032-17.187 7.969-3.438 1.25-4.063 3.125-7.5 4.844-6.251 1.719-6.25 3.594-9.219 4.687-1.093.313-12.343 5.781-12.5 5.313zM393.107 311.797c-1.875.938-3.593 3.438-2.501 4.375.626 1.25 2.501-2.656 4.063-2.5 1.563.156 3.75.157 7.969.47 4.219.312 6.406-.938 8.75-.782s7.657-1.25 10.157-1.25 2.968.312 3.281-.782c.312-1.093-7.813-.312-11.407-.468-3.593-.156-8.125.781-10.781.781-2.5-.156-6.875-.938-9.531.156z"/> - <rect rx="1.719" ry="1.484" height="2.969" width="3.438" y="309.14" x="401.7"/> - <path d="M445.02 307.731c1.718-.313 6.307 1.25 9.478 2.031 5.828 2.188 16.603 1.094 16.603 2.188s-.67 2.5-3.242 2.656-8.758-.937-8.587-.937 4.972 2.187 3.6 2.812-5.486-1.25-6.171-.781 3.771 1.406 3.086 1.719c-.686.312-3.782-.469-4.811-.312-1.028.155.868 1.249-.333 1.718-1.199.469-3.216-.624-4.073-.313-.857.314 1.845 2.032.645 2.188-1.2.156-4.089-.781-5.632-.937-1.543-.156 1.518 1.562.49 1.718-1.03.156-3.827-1.249-4.512-1.249s.054 1.874-.974 1.874c-1.029 0-2.239-1.562-2.753-1.562s.01 1.875-1.018 1.875-1.397-2.031-2.254-1.875c-1.014.157.025 2.656-1.346 2.5-1.371-.157-1.553-2.656-2.581-2.5-1.03.156.182 2.5-.847 2.5-1.028 0-1.195-2.344-2.224-2.5-1.028-.156-.52 2.187-1.205 2.187s-1.195-2.187-1.538-2.187c-.342 0-.004 2.187-1.205 2.031s-1.194-2.5-1.538-2.344c-.342.157-.348 1.719-1.204 1.719s-.853-1.562-1.195-1.406c-.344.156-1.548 2.187-2.405 1.875-.857-.313.206-1.875-.136-1.875-.343 0-1.406 1.093-2.092.937s.035-1.406-.137-1.406c-.171 0-1.75.781-2.435.781s-2.571 1.094-3.086.156c-.513-.937 1.342-.937 1.684-1.875.344-.937-.998-3.593.373-4.531 1.372-.937 5.658 1.25 12-.312 11.656-3.125 20.652-6.718 21.575-6.563z"/> - </g> - </g> - </g> -</svg> diff --git a/img/flags/1x1/la.svg b/img/flags/1x1/la.svg deleted file mode 100644 index b03cc49..0000000 --- a/img/flags/1x1/la.svg +++ /dev/null @@ -1,12 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" height="512" width="512" viewBox="0 0 512 512"> - <defs> - <clipPath id="a"> - <path fill-opacity=".67" d="M177.17 0h708.66v708.66H177.17z"/> - </clipPath> - </defs> - <g clip-path="url(#a)" fill-rule="evenodd" transform="translate(-128) scale(.72249)"> - <path fill="#e90012" d="M0 0h1063v708.66H0z"/> - <path fill="#003dd2" d="M0 176.072h1063v356.51H0z"/> - <path d="M684.172 354.321c0 84.325-68.359 152.683-152.683 152.683s-152.683-68.358-152.683-152.683 68.358-152.683 152.683-152.683 152.683 68.359 152.683 152.683z" fill="#fff"/> - </g> -</svg> diff --git a/img/flags/1x1/lb.svg b/img/flags/1x1/lb.svg deleted file mode 100644 index 9fc5a64..0000000 --- a/img/flags/1x1/lb.svg +++ /dev/null @@ -1,15 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" height="512" width="512" viewBox="0 0 512 512"> - <defs> - <clipPath id="a"> - <path fill-opacity=".67" d="M124.02 0h496.06v496.06H124.02z"/> - </clipPath> - </defs> - <g clip-path="url(#a)" transform="translate(-128) scale(1.0321)"> - <g fill-rule="evenodd" stroke-width="1pt"> - <path fill="red" d="M0 372.05h744.09v124.02H0zM0 0h744.09v124.02H0z"/> - <path fill="#fff" d="M0 124.02h744.09v248.03H0z"/> - </g> - <path d="M368.26 125.9c-7.567 15.108-12.613 15.108-25.224 25.181-5.044 5.036-12.611 7.554-2.522 12.591-10.089 5.035-15.134 7.554-20.179 17.626l2.522 2.518s9.587-4.699 10.09-2.518c1.677 2.013-12.619 9.738-14.464 10.912s-10.76 6.715-10.76 6.715c-12.611 10.072-20.179 7.553-27.746 22.662l25.224-2.517c5.045 17.626-12.612 20.144-25.224 27.698l-20.179 12.591c5.046 17.626 20.179 7.554 32.791 2.517l2.523 2.519v5.036l-25.224 12.591s-29.776 17.037-30.268 17.626c-.203.912 0 5.036 0 5.036 10.089 2.518 25.224 5.037 35.313 0 12.611-5.036 15.133-10.072 30.268-10.072-17.657 12.59-30.268 17.627-50.447 20.144v10.073c15.134 0 25.223 0 37.835-2.518l32.791-10.072c7.567 0 15.134 7.554 12.612 15.108-7.567 27.698-37.836 22.663-47.926 45.325l40.359-15.108c10.089-5.036 20.178-10.072 32.79-7.554 15.134 5.035 15.134 15.109 35.313 20.144l-5.044-12.59c5.044 2.518 10.089 2.518 15.133 5.036 12.613 5.037 15.135 10.072 30.268 7.554-12.611-15.109-15.133-12.59-25.223-22.662-10.089-15.109-15.134-37.771 0-40.29l17.657 5.037c17.656 2.517 17.656-2.518 42.879 7.554 15.135 5.036 20.18 12.59 37.836 7.554-7.567-17.626-35.313-30.217-52.969-35.253 20.178-12.591 15.133 5.036 42.879-2.519v-5.035c-20.178-15.109-27.746-27.699-55.492-27.699l42.881-5.037v-5.036s-42.29-11.095-43.274-11.489c.295-1.278 1.329-3.261 4.137-4.357 8.031 5.199 32.319 4.593 33.698 4.495-.71-6.196-12.218-11.312-22.307-16.347 0 0-43.201-26.628-43.416-28.985.857-6.749 17.744 1.072 35.849 6.321-5.045-10.072-15.135-15.108-25.224-17.626l15.134-2.518c-10.089-22.663-35.313-20.145-50.446-30.217-10.091-7.554-10.091-12.591-25.224-20.145z" fill="#007900"/> - <path stroke-linejoin="round" d="M341.01 293.63c1.872-6.001 4.337-11.311-6.895-16.426-11.233-5.114 5.614 20.457 6.895 16.426zM354.31 281.63c-2.264.295-3.45 8.56 1.082 10.821 5.027.785.889-10.722-1.082-10.821zM367.42 280.75c-2.366.69-2.464 12.296 5.814 10.231 8.276-2.064-.101-11.213-5.814-10.231zM382.69 250.94c1.773-2.853-.098-14.557-7.194-9.64-7.093 4.919 4.927 10.427 7.194 9.64zM367.22 241.21c2.169-.787 2.366-7.967-3.841-6.098-6.205 1.869 2.169 7.574 3.841 6.098zM353.23 244.06s-4.336-6-7.686-4.722c-4.237 4.033 7.981 4.82 7.686 4.722zM305.18 263.23c1.846.168 15.528-2.256 20.257-7.567 4.729-5.312-24.345 2.273-24.345 2.371s2.747 4.693 4.088 5.196zM441.91 229.36c.705-1.255-7.283-6.949-12.03-4.705-1.222 4.204 11.99 5.569 12.03 4.705zM415 215.83c1.479-2.164-3.447-11.016-13.3-6.098s10.344 9.541 13.3 6.098zM383.87 210.62s2.462-7.967 8.375-6.394c6.701 5.116-8.08 6.69-8.375 6.394zM378.06 204.62c-.888-2.262-7.095-.885-14.188 3.738-7.096 4.623 16.355 1.378 14.188-3.738zM396.19 183.17s6.32-2.829 8.178 0c2.661 4.23-8.276.099-8.178 0zM390.88 180.41c-1.281-2.558-8.274-2.8-8.095.896-1.172 2.896 9.088 2.357 8.095-.896zM374.21 180.42c-.689-1.476-10.638.028-13.595 6 4.746 2.308 15.765-2.262 13.595-6zM352.93 186.52s-13.089 8.002-13.893 13.869c.397 5.066 16.256-9.148 16.256-9.148s1.38-5.607-2.363-4.721zM338.45 179.24c.366-1.628 6.467-5.399 6.995-5.115.494 1.641-4.983 6.083-6.995 5.115zM342.59 209.83c.295-2.361-15.568-2.165-9.557 5.114 5.005 6.105 10.642-4.032 9.557-5.114zM328.14 220.28c-.827-1.596-2.017-5.85-4.189-6.242-1.77-.099-11.309 1.868-12.038 3.483-.394 1.279 3.948 9.141 5.427 9.338 1.675.688 10.505-5.792 10.8-6.579zM413.72 273.66c.492-1.671 16.702-7.273 22.299-1.915 6.6 9.05-22.692 4.769-22.299 1.915zM458.28 284.26c3.552-6.011-10.907-13.137-17.044-6.269 2.098 8.252 14.173 11.239 17.044 6.269z" fill-rule="evenodd" stroke="#fff" stroke-linecap="round" stroke-width="3.119" fill="#fff"/> - </g> -</svg> diff --git a/img/flags/1x1/lc.svg b/img/flags/1x1/lc.svg deleted file mode 100644 index 9f76562..0000000 --- a/img/flags/1x1/lc.svg +++ /dev/null @@ -1,8 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" height="512" width="512" viewBox="0 0 512 512"> - <g fill-rule="evenodd"> - <path fill="#65cfff" d="M0 0h512v512H0z"/> - <path d="M254.83 44.791l173.51 421.65-344.11.97 170.6-422.62z" fill="#fff"/> - <path d="M255.02 102.95l150.05 362.66-297.58.83 147.53-363.49z"/> - <path d="M254.83 256.1l173.51 210.83-344.11.48 170.6-211.31z" fill="#ffce00"/> - </g> -</svg> diff --git a/img/flags/1x1/li.svg b/img/flags/1x1/li.svg deleted file mode 100644 index e9ae555..0000000 --- a/img/flags/1x1/li.svg +++ /dev/null @@ -1,43 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" height="512" width="512" viewBox="0 0 512 512"> - <path fill="#002b7f" d="M0 0h512.1v256H0z"/> - <path fill="#ce1126" d="M0 256h512.1v256H0z"/> - <g transform="translate(-54) scale(.85333)" fill="#ffd83d" stroke="#000" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"> - <g id="a"> - <path d="M216.377 122.29l-1.838 62.5h-63.42c-7.803-15.17-14.247-28.053-14.247-45.498 0-14.6 11.483-26.195 28.033-26.195 17.52 0 36.77 5.904 51.47 9.192z" stroke="none"/> - <g stroke-width="1.5"> - <path d="M144.456 125.16v36.076m5.094-39.756v48.033m5.093-50.561v57.225m5.093-58.407v44.882m5.094-45.104v45.327m5.093-46.91v46.885m5.094-46.885v46.885m5.093-46.426v46.885m5.094-46.425v46.885m5.093-43.899v46.886m5.093-46.426v52.86m5.094-52.86v46.886m5.093-46.886v46.886"/> - <path d="M176.395 117.923c10.764 1.775 34.407 12.837 31.71 27.803-3.82 21.21-16.208 12.698-32.63 9.65l-12.407 4.137c-4.44 4.532-10.978 8.683-15.395 3.217h-7.353v28.722h81.342V122.06z" fill="#000"/> - </g> - <circle cx="212.815" cy="112.983" r="4.94"/> - <circle cx="201.713" cy="110.311" r="4.94"/> - <circle cx="190.45" cy="107.482" r="4.94"/> - <circle cx="179.143" cy="105.596" r="4.94"/> - <circle cx="167.836" cy="104.481" r="4.94"/> - <circle cx="156.749" cy="105.113" r="4.94"/> - <circle cx="146.179" cy="108.732" r="4.94"/> - <circle cx="137.276" cy="115.28" r="4.94"/> - <circle cx="130.957" cy="124.414" r="4.94"/> - <circle cx="127.912" cy="135.156" r="4.94"/> - <circle cx="128.027" cy="146.301" r="4.94"/> - <circle cx="130.152" cy="157.215" r="4.94"/> - <path d="M214.998 119.53l-.46 6.435c-12.29-1.883-29.714-8.732-45.955-8.732-15.006 0-26.654 6.003-26.654 21.14 0 14.92 6.316 28.485 14.704 42.28l-8.73 4.136c-7.804-15.17-14.248-28.053-14.248-45.498 0-14.6 11.484-28.952 31.25-28.952 17.52 0 35.39 5.904 50.092 9.19z"/> - </g> - <use height="100%" width="100%" xlink:href="#a" transform="matrix(-1 0 0 1 443.938 0)"/> - <path d="M221.97 53.125l-5.157 9.656 5.156 9.626 5.155-9.625-5.156-9.655zm0 24.375l-5.157 9.625 5.156 9.656 5.155-9.655-5.156-9.625zm-18.383-2.547l8.132 5.156 8.104-5.157-8.105-5.156-8.133 5.156zm20.526 0l8.106 5.156 8.13-5.157-8.13-5.156-8.107 5.156z"/> - <circle cx="221.969" cy="75.069" r="3.906"/> - <circle cx="221.969" cy="100" r="10.455"/> - <path d="M219.344 89.875c0 3.114-.022 4.924-.03 6.625a62.506 62.506 0 0 0-7.44.78m20.19 0a62.126 62.126 0 0 0-7.44-.78v-6.625m-12.78 12.688a61.39 61.39 0 0 1 10.125-.844c3.45 0 6.83.292 10.124.843" fill="none" stroke-width="1.5"/> - <path d="M211.75 117.688c-.992 17.082-3.01 34.48-9.656 47.124l10.812-4.375c3.777-14.328 4.57-32.842 5.72-41.593l-6.876-1.156zm20.438 0l-6.875 1.156c1.148 8.75 1.942 27.265 5.718 41.594l10.814 4.375c-6.648-12.646-8.665-30.043-9.656-47.125z"/> - <path d="M221.953 154.688c-12.913 0-22.4 6.086-22.97 21.593-3.155-5.554-16.51-23.024-28.967-20.686-7.41 1.39-13.957 11.666-12.844 23.437-6.135-17.63-24.107-20.518-37.22-10.093 11.643 9.573 16.822 37.835 26.626 50.094h150.75c9.804-12.258 15.014-40.52 26.656-50.093-13.112-10.425-31.083-7.536-37.218 10.094 1.113-11.77-5.466-22.046-12.875-23.436-12.458-2.338-25.78 15.132-28.937 20.687-.57-15.506-10.086-21.593-23-21.593z"/> - <g stroke-width="1.5"> - <path d="M297.107 219.026c0 5.58-33.662 11.718-75.138 11.718-41.477 0-75.14-6.137-75.14-11.718 0-5.58 33.663-8.502 75.14-8.502 41.475 0 75.137 2.92 75.137 8.502z" fill="#000"/> - <circle cx="221.969" cy="114.445" r="3.504"/> - <circle cx="221.969" cy="122.027" r="3.734"/> - <circle cx="221.969" cy="130.184" r="4.079"/> - <circle cx="221.969" cy="139.261" r="4.653"/> - <circle cx="221.969" cy="149.371" r="5.113"/> - <path d="M219.938 159.206c-.553-.007-1.076.46-.938 1.344.163 1.043.367 2.995.563 4.312.22 1.493 1.09 1.13 1.312-.03.22-1.162.132-1.907.188-4.064.027-1.078-.573-1.555-1.125-1.562zm4.062 0c-.553.007-1.153.484-1.125 1.562.055 2.157-.034 2.902.188 4.063.22 1.162 1.09 1.525 1.312.032.195-1.317.4-3.27.563-4.312.138-.885-.385-1.35-.938-1.344zm-7.687.562c-.506.07-1.03.58-1 1.125.055.996.33 2.19.437 3.688.11 1.55 1.202.948 1.313.063.11-.884.235-2.192.125-3.906-.042-.643-.323-.925-.657-.97a.84.84 0 0 0-.217 0zm11.093 0c-.334.043-.615.326-.656.97a20.13 20.13 0 0 0 .125 3.905c.11.885 1.202 1.486 1.313-.062.107-1.498.382-2.69.437-3.687.03-.544-.494-1.054-1-1.125a.84.84 0 0 0-.22 0zm-15.437 1.75c-.464.12-.89.677-.75 1.313.275 1.273.53 2.68.53 3.97 0 1.106.945.71 1-.063a59.76 59.76 0 0 0 .156-3.906c0-1.114-.474-1.43-.937-1.312zm19.686 0c-.33.09-.625.477-.625 1.313 0 1.494.103 3.133.158 3.907.055.774 1 1.17 1 .063 0-1.29.254-2.697.53-3.97.14-.635-.286-1.192-.75-1.312a.55.55 0 0 0-.312 0zm-59.093.17c-.555-.017-.943.735-.563 1.564.608 1.327 1.254 2.165 1.875 3.594.553 1.27 1.4.478 1.125-.407-.277-.885-.577-1.87-1.406-3.75-.31-.706-.7-.99-1.03-1zm98.812 0c-.332.012-.72.296-1.03 1-.83 1.88-1.13 2.867-1.407 3.75-.277.886.57 1.68 1.125.408.62-1.43 1.266-2.267 1.875-3.594.38-.83-.008-1.58-.563-1.563zm-94.812.064c-.408.124-.656.642-.407 1.25.498 1.216 1.217 2.463 1.72 3.78.44 1.162 1.425.833 1.093-.218-.333-1.05-.432-1.665-1.095-3.656-.332-.995-.905-1.28-1.312-1.156zm90.5 0c-.35.074-.752.41-1 1.156-.664 1.99-.763 2.606-1.094 3.656-.333 1.05.65 1.38 1.093.22.502-1.32 1.22-2.566 1.718-3.782.25-.608.003-1.126-.405-1.25a.592.592 0 0 0-.312 0zm-85.5.97c-.515.096-.913.88-.563 1.842.443 1.217 1.072 2.368 1.625 3.75.553 1.383 1.47 1.104 1.25.22-.22-.886-.492-2.352-1.156-4.563-.29-.967-.758-1.325-1.157-1.25zm80.812 0c-.4-.078-.866.28-1.156 1.25-.665 2.21-.936 3.676-1.157 4.56-.222.886.696 1.165 1.25-.218.553-1.382 1.182-2.533 1.625-3.75.35-.96-.05-1.746-.563-1.843zm-93.187.686c-.557.057-1.065.965-.72 1.656.554 1.106.904 1.483 1.438 2.657.553 1.217 1.16.275.938-.5-.222-.774-.505-1.675-.78-2.78-.204-.81-.542-1.066-.876-1.032zm105.562 0c-.334-.034-.672.22-.875 1.03-.276 1.107-.56 2.008-.78 2.783-.223.775.383 1.717.936.5.535-1.173.885-1.55 1.44-2.656.344-.69-.163-1.6-.72-1.656zm-67.03 2.798c-.585 0-1.21.774-1 1.5.33 1.16.843 2.19 1.218 3.687.33 1.327 1.274.666 1.218-.218-.055-.885-.207-2.09-.593-3.97-.146-.704-.494-1-.844-1zm28.5 0c-.352 0-.7.295-.845 1-.387 1.88-.538 3.084-.594 3.97-.054.883.888 1.544 1.22.217.374-1.496.887-2.526 1.22-3.687.206-.726-.417-1.5-1-1.5zm-14.25 1.187c-.72 0-.82.966-.845 1.75-.083 2.572-1.15 5.07-2.062 6.313-.913 1.244-2.256.913-3.5.25-1.245-.664-1.986-1.16-3.313-2.156-1.327-.996-2.334-.414-.75 1.843 4.617 6.58 9.625 12.205 9.625 22.938 0 1.39.242 1.813.844 1.813.6 0 .874-.424.874-1.812 0-10.732 4.976-16.356 9.594-22.937 1.583-2.257.577-2.84-.75-1.843-1.327.995-2.07 1.492-3.313 2.156-1.244.663-2.588.994-3.5-.25-.913-1.244-1.98-3.74-2.062-6.313-.026-.784-.125-1.75-.844-1.75zm-35.282-1.61a.592.592 0 0 0-.188.03c-.27.086-.448.41-.344.97.186 1.002.88 2.967 1.157 3.906.276.94 1.432.74 1.156-.532-.278-1.272-.263-1.656-.595-3.094-.18-.786-.747-1.27-1.187-1.28zm70.562 0c-.44.012-1.006.495-1.187 1.28-.332 1.44-.318 1.823-.594 3.095-.278 1.272.878 1.472 1.155.53.276-.938.97-2.903 1.156-3.905.105-.56-.074-.884-.342-.97a.598.598 0 0 0-.188-.03zm-91.53.406c-.58.045-.995.772-.407 1.843.633 1.157 1.72 2.608 2.218 3.438.5.83 1.36.27.75-.78-.607-1.05-.81-2.258-1.53-3.75-.27-.56-.684-.778-1.03-.75zm112.5 0c-.35-.028-.763.19-1.032.75-.72 1.492-.924 2.7-1.532 3.75-.608 1.05.253 1.61.75.78.498-.83 1.585-2.28 2.22-3.437.587-1.07.172-1.798-.407-1.844zm-144.19 3.328c-.667-.035-.876 1.17-.25 1.97.914 1.16 1.55 1.776 2.595 2.718.83.746 1.07-.222.656-.97-.413-.745-1.013-1.504-1.842-2.75-.455-.68-.853-.95-1.157-.968zm175.876 0c-.303.016-.7.287-1.156.97-.83 1.244-1.43 2.003-1.844 2.75-.414.746-.173 1.714.657.968 1.046-.942 1.68-1.558 2.593-2.72.627-.797.418-2.003-.25-1.968zm-170.843 1c-.533.007-.884.4-.47 1.313.595 1.307 1.378 2.787 1.876 3.782.496.995 2.013 1.33 1.405-.22-.608-1.547-.728-2.342-1.28-3.78-.278-.72-1-1.1-1.532-1.094zm165.812 0c-.532-.007-1.255.375-1.53 1.094-.554 1.438-.674 2.233-1.282 3.78-.61 1.55.908 1.215 1.406.22.497-.995 1.28-2.475 1.874-3.78.414-.914.063-1.307-.47-1.314zm-175.562.344c-.774.008-.84.784-.157 1.28.913.665 2 1.4 3.063 2.25 1.243.997 1.725.08 1.06-.75-.662-.828-1.308-1.67-2.967-2.5-.415-.206-.743-.282-1-.28zm185.312 0c-.258-.003-.585.074-1 .28-1.66.83-2.305 1.672-2.97 2.5-.662.83-.18 1.747 1.064.75 1.06-.85 2.15-1.585 3.06-2.25.685-.496.62-1.272-.155-1.28zm-109.656.72c-.434.06-.808.55-.626 1.186.33 1.16.708 2.392.937 3.594.223 1.162 1.566 1.176 1.345.125-.22-1.05-.332-2.365-.72-3.97-.144-.6-.447-.89-.75-.936a.62.62 0 0 0-.186 0zm33.81 0c-.3.046-.604.335-.75.936-.385 1.604-.497 2.92-.717 3.97-.222 1.05 1.122 1.036 1.343-.126.23-1.202.606-2.433.938-3.594.18-.635-.192-1.127-.625-1.187a.62.62 0 0 0-.19 0zm-63.905-1.986c-.34.094-.536.744-.28 1.656 1.41 5.06 1.84 7.724 1.593 8.97-.25 1.243-.932 1.413-1.844 1a18.844 18.844 0 0 1-2.813-1.595c-.828-.58-1.69.114-.5 1.094 6.056 4.977 10.253 10.665 11.876 17.563.332 1.41 1.218 1.576.97 0-1.373-8.69-1.637-15.833.437-20.312.78-1.683-.006-3.3-1.25-.562-.83 1.825-2.172 2.545-3.25.97-1.08-1.577-3.306-5.78-3.97-7.69-.248-.714-.555-1.045-.812-1.092a.352.352 0 0 0-.155 0zm94.03 0c-.255.047-.562.378-.81 1.093-.665 1.907-2.892 6.11-3.97 7.687-1.08 1.576-2.42.856-3.25-.97-1.244-2.736-2.03-1.12-1.25.564 2.074 4.48 1.81 11.623.438 20.313-.25 1.576.637 1.41.968 0 1.624-6.898 5.82-12.586 11.876-17.562 1.192-.98.33-1.674-.5-1.093-.83.58-1.9 1.18-2.812 1.594-.912.415-1.595.245-1.844-1-.25-1.244.184-3.91 1.594-8.968.254-.912.058-1.562-.28-1.656a.352.352 0 0 0-.158 0zm-124.467 2.422c-.547.007-1 .39-.75 1.22.398 1.328 1.223 2.764 1.5 3.593.276.83 1.165.443 1-.718-.166-1.16-.248-1.853-.47-3.125-.11-.636-.734-.976-1.28-.97zm155.062 0c-.546-.007-1.17.333-1.28.97-.223 1.27-.304 1.963-.47 3.124-.166 1.16.723 1.548 1 .72.276-.83 1.1-2.266 1.5-3.595.25-.83-.204-1.212-.75-1.22zm-136.28-1.735c-.636-.114-.728 1.524-.19 2.188.72.886 1.72 1.955 2.72 3.157.83.995 1.342.11.844-.72-.498-.83-1.236-1.71-2.563-3.81-.33-.527-.6-.776-.81-.814zm117.5 0c-.213.038-.482.287-.814.813-1.327 2.1-2.065 2.982-2.562 3.812-.498.83.014 1.714.844.72 1-1.203 2-2.272 2.718-3.157.54-.663.448-2.3-.187-2.187zm-132 3.954c-.395-.027-.73.292-.564 1.094.232 1.117.567 2.044.844 3.095.276 1.05 1 .87 1-.125 0-.996-.178-2.106-.344-3.157-.083-.525-.543-.878-.937-.906zm146.5 0c-.395.028-.856.38-.94.906-.165 1.05-.342 2.16-.342 3.157 0 .995.723 1.175 1 .125.276-1.05.612-1.978.843-3.094.167-.8-.167-1.12-.56-1.093zm-133.407 1.42c-.62.095-1.164.693-.438 1.626 1.16 1.493 2.432 2.54 2.875 3.094.442.553 1.563.35.844-.813-.735-1.186-1.846-2.615-2.344-3.5-.187-.33-.566-.462-.937-.406zm120.062 0c-.272.03-.548.16-.687.407-.498.885-1.61 2.314-2.344 3.5-.72 1.162.4 1.366.844.813.442-.553 1.713-1.6 2.875-3.094.725-.933.18-1.53-.438-1.625a.873.873 0 0 0-.25 0zm-140.72 4.174c-.487-.043-.656.35 0 1.25 1.494 2.047 3.14 5.143 3.25 6.47.112 1.327-.544 1.312-1.155 1.312-1.825 0-2.716-1.332-4.375-1.72-1.66-.386-1.9.487-.72 1.345 6.084 4.424 12.18 9.36 14.626 13.844.996 1.826 2.342 2.493 1.595.75-2.287-5.336-2.84-9.856-2.344-12.593.5-2.737 1.178-4.58 1.095-6.156-.083-1.575-.977-1.467-1.344 0-.248.996-.73 2.315-1.06 2.813-.333.498-1.667.777-2.94-.937-1.27-1.714-4.48-5.015-5.53-5.844-.394-.31-.8-.505-1.094-.53zm161.626 0c-.292.027-.7.22-1.092.532-1.05.83-4.26 4.13-5.532 5.844-1.272 1.714-2.606 1.435-2.937.937-.333-.498-.815-1.817-1.064-2.812-.367-1.467-1.26-1.575-1.343 0-.083 1.577.595 3.42 1.093 6.157s-.056 7.257-2.343 12.594c-.747 1.743.598 1.076 1.593-.75 2.447-4.484 8.543-9.42 14.625-13.843 1.182-.858.942-1.73-.717-1.344-1.66.387-2.55 1.72-4.375 1.72-.61 0-1.268.014-1.157-1.313.112-1.327 1.758-4.423 3.25-6.47.658-.9.49-1.293 0-1.25z" fill="#000" stroke="none"/> - <path d="M150.127 212.65l1.95 6.175m2.06-7.344l1.728 6.24m2.605-6.952l1.187 6.365m2.833-7.17l1.27 6.35m3.886-6.858l1.032 6.392m4.452-6.385l1.112 6.378m4.242-8.19l.803 6.426m4.234-6.1l.804 6.425m4.07-7.073l.805 6.424m4.088-6.928l.442 6.46m4.786-6.462l.384 6.463m4.357-6.79l.326 6.467m4.9-6.793l.272 6.47m5.74-6.632l.272 6.47m79.044.176l-1.95 6.175m-2.06-7.344l-1.728 6.24m-2.604-6.952l-1.187 6.365m-2.832-7.17l-1.27 6.35m-3.886-6.858l-1.033 6.392m-4.453-6.385l-1.112 6.378m-4.24-8.19l-.805 6.426m-4.233-6.1l-.804 6.425m-4.07-7.073l-.804 6.424m-4.09-6.928l-.442 6.46m-4.787-6.462l-.382 6.463m-4.357-6.79l-.326 6.467m-4.9-6.793l-.27 6.47m-5.742-6.632l-.27 6.47m-7.203-6.89v7.122"/> - </g> - </g> -</svg> diff --git a/img/flags/1x1/lk.svg b/img/flags/1x1/lk.svg deleted file mode 100644 index 851a3d7..0000000 --- a/img/flags/1x1/lk.svg +++ /dev/null @@ -1,22 +0,0 @@ -<svg xmlns:xlink="http://www.w3.org/1999/xlink" xmlns="http://www.w3.org/2000/svg" height="512" width="512" viewBox="0 0 512 512"> - <path fill="#ffb700" d="M0 0h512v512H0z"/> - <path d="M21.333 256L91.415 21.333h70.08v469.334h-70.08z" fill="#ff5b00"/> - <path fill="#005641" d="M21.333 21.333h70.082v469.334H21.333z"/> - <path fill="#8d2029" d="M182.733 21.333h307.934v469.334H182.733z"/> - <path id="a" d="M463.403 454.852s2.9 5.906 6.105 8.312c4.748 3.565 14.483 3.307 18.615 7.466 4.95 4.905-.384 11.385-.34 11.947l.272 3.422s-3.34.04-4.744.26c-2.113.328-2.937 2.048-6.872 1.792-9.894-.642-9.496-9.556-10.055-17.173-.497-2.9-1.647-6.683-2.3-9.583-.56-2.486-.68-6.445-.68-6.445z" fill="#ffb700" stroke="#000" stroke-width=".907"/> - <use height="100%" width="100%" xlink:href="#a" transform="matrix(-1 0 0 1 676.267 0)"/> - <use height="100%" width="100%" xlink:href="#a" transform="matrix(1 0 0 -1 0 512)"/> - <use height="100%" width="100%" xlink:href="#a" transform="rotate(180 338.133 256)"/> - <g transform="matrix(.8 0 0 .8 0 3.2)"> - <use xlink:href="#b" width="100%" height="100%" stroke="#000" stroke-width="5.56"/> - <g id="b" fill="#ffb700"> - <path d="M363.488 415.765l2.325-1.342.995 1.345c1.325 1.79 4.99 1.77 7.424-.04l1.86-1.387 1.558 1.387c2.048 1.822 5.873 1.824 8.315.006 1.71-1.274 1.95-1.3 3.08-.33.673.577 2.65 1.235 4.392 1.46 3.138.408 3.185.386 5.02-2.368 1.538-2.306 1.78-3.24 1.412-5.477a59.406 59.406 0 0 1-.583-5.304c-.14-2.597-.125-2.613 3.658-3.93 2.09-.728 4.508-1.703 5.374-2.17 1.51-.81 5.675-5.705 5.675-6.67 0-.255-1.627-.647-3.616-.87-7.912-.887-9.25-5.135-4.11-13.025 8.388-12.87 13.45-25.4 13.483-33.384.015-3.57.218-4.767.677-3.99 1.874 3.17-1.483 16.467-6.57 26.015l-2.046 3.846 1.954-.45c1.074-.247 7.392-2.913 14.04-5.924 18.194-8.24 24.444-9.855 36.22-9.36 9.864.416 14.065 2.344 21.03 9.65 3.69 3.87 7.245 6.638 13.747 10.708 13.853 8.672 14.43 9.423 15.09 19.62.667 10.333.335 10.893-7.48 12.62-6.68 1.475-10.866 4.59-11.99 8.915-.6 2.31.663 2.377 4.03.213l2.468-1.586 1.098 1.586c1.443 2.085 4.51 2.094 7.057.02L511 413.98l1.967 1.567c3.055 2.435 7.118 1.844 8.265-1.2.22-.586.808-.4 2 .636 2.232 1.94 7.954 2.772 8.57 1.247.237-.582-.21-2.02-.994-3.194-3.33-4.992-4.37-7.372-4.414-10.09-.06-3.78 1.067-5.602 5.366-8.676 5.222-3.734 6.835-8.55 2.864-8.55-2.452 0-4.923-2.168-6.5-5.7-3.204-7.18-2.576-15.228 2.233-28.617 4.885-13.6 5.427-16.108 5.446-25.203.016-7.354-.17-8.626-1.842-12.658-1.022-2.465-3.098-6.136-4.612-8.157l-2.753-3.675 3.534-2.928c10.79-8.94 8.583-23.572-4.407-29.21-3.975-1.725-4.968-1.877-11.932-1.83-4.177.028-10.55.578-14.157 1.222-3.68.656-9.907 1.184-14.18 1.2-6.785.028-7.937-.14-10.553-1.53-2.727-1.453-3.195-2.142-3.728-5.497-.11-.69-.592-1.378-1.072-1.53-.927-.29-5.21 3.426-5.844 5.073-.312.813-.567.757-1.483-.327-.61-.72-1.458-2.373-1.888-3.674-1.08-3.273.247-5.726 4.093-7.564l2.984-1.426-1.76-1.092c-3.63-2.253-9.805-.712-12.038 3.005-.632 1.052-1.32 1.914-1.53 1.916-.21 0-1.412-1.002-2.67-2.23-4.687-4.58-3.075-11.358 3.196-13.428 3.344-1.103 6.303-.26 6.918 1.968.94 3.405 3.862-1.07 3.338-5.11-.348-2.688-.296-2.78 1.563-2.78 2.584 0 8.087 3.392 9.79 6.036 1.976 3.07 1.832 7.906-.343 11.51l-1.708 2.83 2.233-.448c3.276-.657 6.46-2.69 8.07-5.16 1.702-2.608 1.885-7.687.376-10.428-1.464-2.657-1.297-3.078.866-2.18 3.68 1.526 5.645 3.21 7.12 6.096 1.33 2.6 1.403 3.244.684 5.95-.444 1.67-1.43 3.864-2.194 4.88-1.188 1.58-1.23 1.844-.282 1.844 1.762 0 5.443-1.668 6.75-3.06.66-.703 1.624-2.434 2.14-3.847l.94-2.57 1.078 1.96c1.526 2.768 4.492 5.26 8.11 6.81 3.89 1.668 5.508 1.762 3.474.202-1.37-1.052-3.9-8.47-3.133-9.194.45-.426 5.732 3.638 11.762 9.05 5.704 5.12 9.288 6.8 14.527 6.8 6.692 0 10.59-5.827 7.58-11.335-1.753-3.212-5.66-3.658-7.944-.908-1.05 1.265-1.34 2.27-1.03 3.598.376 1.625.23 1.84-1.252 1.84-1.945 0-5.78-2.487-12.59-8.17-10.384-8.665-23.002-16.01-32.114-18.693-5.847-1.722-18.337-2.394-24.28-1.306-6.434 1.177-14.043 4.858-18.19 8.8-7.344 6.982-7.46 16.275-.31 24.738l2.05 2.424-1.387 2.154c-2.018 3.134-1.845 7.352.428 10.46 1.002 1.367 2.012 2.486 2.245 2.485.233 0 .49-.88.568-1.955.2-2.718 1.368-4.54 3.37-5.26 1.804-.65 2.97-.343 11.227 2.953 8.688 3.468 22.975 3.706 38.166.637 7.447-1.504 16.228-1.416 20.092.203 7.082 2.967 8.724 10.686 3.517 16.545-2.254 2.536-4.428 3.57-11.725 5.572-5.553 1.524-6.868 1.625-19.49 1.5-10.782-.11-14.658.1-19.06 1.018-4.778.997-7.717 1.098-21.754.744l-16.23-.41 1.8 1.49c.99.82 2.39 1.83 3.11 2.243 1.223.702 1.182.797-.637 1.47-1.07.398-3.443.722-5.274.722h-3.33l-.45 2.83c-.245 1.555-.227 3.372.042 4.037.398.98.25 1.12-.783.745-.702-.254-2.652-.755-4.335-1.112-1.684-.358-3.95-1.085-5.036-1.617-1.828-.895-2.03-.87-2.704.32-.6 1.063-6.24 5.26-7.068 5.26-.134 0-.306-.808-.383-1.798-.078-.99-.89-3.564-1.81-5.723-.916-2.158-1.874-4.513-2.127-5.232-.383-1.086-.556-1.14-1.017-.327-.304.54-.75 2.01-.99 3.27-.24 1.26-1.09 3.304-1.89 4.545l-1.452 2.256-.926-1.93c-.995-2.07-2.646-4.217-3.244-4.217-.202 0-.546.662-.764 1.472-.456 1.69-4.372 6.376-5.328 6.376-.352 0-.64-1.325-.64-2.944 0-1.618-.31-2.943-.69-2.943-.38 0-.692.418-.692.93 0 1.245-3.344 4.956-4.466 4.956-.49 0-1.277.44-1.75.98-1.232 1.408-2.24 1.21-1.723-.337.243-.726.085-2.418-.35-3.76-.437-1.345-.9-2.775-1.03-3.18-.166-.508-1.365-.373-3.9.44-4.1 1.315-5.474 1.082-3.366-.57.77-.602 1.942-2.693 2.604-4.645.662-1.95 1.64-3.683 2.17-3.848.745-.23.706.055-.172 1.242-.627.846-1.142 1.99-1.144 2.54 0 .548-.474 1.85-1.048 2.894-.574 1.042-.935 2-.802 2.125s1.692-.468 3.465-1.318l3.224-1.545.013 1.382c.007.76.396 2.766.863 4.458l.85 3.075 2.194-1.008c2.243-1.03 4.367-4.706 4.367-7.555 0-1.408.807-1.192 1.137.305.098.44.604 2.088 1.126 3.664l.95 2.864 1.502-1.81c.826-.994 1.862-2.946 2.302-4.336.763-2.413 1.962-3.45 1.962-1.698 0 1.263 3.447 5.792 4.11 5.403.323-.188.963-1.888 1.423-3.778.96-3.93 2.505-6.602 3.487-6.028.37.217.513.636.32.933-.194.296.6 2.85 1.763 5.678a2557.7 2557.7 0 0 1 2.597 6.323c.425 1.048.81.896 3.304-1.307 1.553-1.37 2.962-2.906 3.132-3.41.256-.764.602-.736 2.054.165 2.03 1.26 8.856 3.29 9.383 2.79.198-.187.4-1.98.45-3.984l.09-3.643 1.964.408c1.078.224 3.348.21 5.043-.03l3.082-.44-2.746-1.883c-1.512-1.036-3.04-2.377-3.395-2.98-.38-.642-1.724-1.187-3.247-1.316-4.114-.35-11.407-4.44-11.407-6.4 0-.367 1.01.258 2.246 1.39 2.738 2.51 6.543 4.085 9.866 4.085h2.486l-1.538-2.045c-.883-1.175-1.676-3.405-1.862-5.24-.296-2.922-.605-3.387-3.657-5.508-1.833-1.275-4.104-3.186-5.046-4.246l-1.713-1.928-.873 2.29c-.48 1.258-1.068 2.288-1.305 2.288-.238 0-1.162-.736-2.054-1.635-.892-.898-1.8-1.63-2.02-1.627-.218.004-1.01 1.216-1.756 2.692l-1.358 2.685-1.05-1.547c-.578-.85-1.942-2.357-3.03-3.346-1.09-.99-1.664-1.8-1.274-1.8.39 0 1.733 1.03 2.988 2.29l2.28 2.29.93-1.677c.55-.995.756-2.525.507-3.76-.364-1.804-.313-1.91.378-.777.44.72 1.774 2.1 2.965 3.065l2.167 1.757 1.494-2.738c1.487-2.725 1.498-2.73 2.174-1.103.906 2.176 7.456 7.546 13.033 10.684.86.483.498-1.18-1.09-5.004-.42-1.012-.764-2.838-.764-4.057 0-1.808-.522-2.612-2.834-4.372-3.34-2.54-4.42-4.347-5.048-8.445-.255-1.66-.84-3.507-1.298-4.103-.682-.886-.794-.39-.612 2.69.123 2.078-.147 4.66-.6 5.74l-.824 1.96-.637-1.634c-.35-.9-1.898-2.463-3.44-3.475-1.543-1.013-2.626-2.01-2.407-2.218.22-.208 1.807.714 3.527 2.05 2.622 2.034 3.2 2.254 3.562 1.358.426-1.053 0-5.633-.825-8.834-.41-1.598-.375-1.59 1.597.382 1.454 1.454 2.258 3.188 2.88 6.213.792 3.843 1.192 4.483 4.746 7.604 2.134 1.874 3.99 3.302 4.127 3.173.136-.13.405-4.976.6-10.773.37-11.115-.05-13.76-2.727-17.194l-1.375-1.764 2.162-2.333c2.82-3.042 4.116-5.48 4.678-8.808l.457-2.706-2.44 2.31c-1.998 1.892-2.953 2.31-5.267 2.31-2.29 0-3.186-.383-4.73-2.03-1.853-1.973-5.136-3.873-8.293-4.797-1.167-.342-1.554-.193-1.554.596 0 .577-.645 2.246-1.432 3.708l-1.43 2.657-3-2.964c-1.84-1.818-4.024-3.233-5.648-3.66-4.15-1.092-4.375-.983-4.375 2.108 0 4.69-2.002 5.564-5.606 2.447-2.747-2.377-5.025-2.893-10.235-2.32l-4.023.442.723 1.816c.605 1.517.468 2.156-.827 3.88-2.1 2.793-4.833 4.004-9.04 4.004-1.936 0-4.36.4-5.386.89-1.025.49-3.574 1.055-5.663 1.255-2.09.2-4.316.557-4.948.793-.99.37-1.1.065-.78-2.186.487-3.445-1.92-5.986-5.67-5.986-4.863 0-7.107 4.352-5.202 10.092a44.633 44.633 0 0 1 1.066 3.872c.228 1.063 2.42 3.884 5.103 6.57 2.587 2.588 5.033 5.282 5.434 5.985.402.703 1.73 1.832 2.95 2.51l2.22 1.228-.294-2.373c-.322-2.61.247-3.02 1.635-1.177.498.658 1.758 1.722 2.803 2.364 1.646 1.012 1.9 1.032 1.9.154 0-.558.335-1.842.745-2.855l.745-1.84 1.293 2.504c.712 1.378 3.025 4.51 5.14 6.96 4.107 4.752 6.61 10.063 5.318 11.286-.524.496-1.94.457-4.874-.132-2.274-.456-5.087-.698-6.25-.536-2.38.33-2.566.023-1.104-1.807 1.543-1.932 1.298-2.25-1.734-2.25-3.507 0-12.213-1.682-15.556-3.005-3.25-1.286-4-.965-4.956 2.117-.43 1.386-1.22 3.9-1.752 5.585l-.97 3.064 3.518-.34c1.933-.186 4.42-.61 5.527-.94 1.106-.332 2.112-.508 2.234-.392.123.116-.37 1.313-1.096 2.66l-1.317 2.45 2.192-.447c1.206-.245 3.02-.847 4.03-1.336 1.76-.85 1.903-.79 3.29 1.44 1.708 2.74 3.073 2.626 3.376-.28.315-3.004 1.303-2.56 3.162 1.42 1.787 3.83 3.647 5.18 4.004 2.91.12-.752 1.082-1.978 2.14-2.724 2.14-1.508 3.754-1.055 4.678 1.312.958 2.45-1.177 4.977-7.388 8.742-12.44 7.54-19.672 17.856-21.737 31.002-1.863 11.857 3.953 24.11 15.62 32.91 5.584 4.212 14.454 8.657 13.89 6.96-2.394-7.2-2.315-20.945.133-23.263.368-.348.242 1.086-.28 3.186-1.944 7.825-1.1 14.06 3.883 28.673 4.507 13.217 3.883 18.866-2.495 22.6-2.048 1.2-3.367 1.396-8.876 1.33-5.977-.073-6.628.047-8.547 1.576-1.86 1.482-4.272 6.35-4.272 8.62 0 1.23 1.366 1.068 4.05-.482z"/> - <path d="M460.507 415.5l2.507-1.613 1.7 1.612c2.23 2.11 4.842 2.063 6.985-.128.934-.955 1.774-1.617 1.865-1.47.09.145.508.853.927 1.573.53.91 1.62 1.37 3.585 1.507 2.37.167 3.005-.062 3.946-1.422l1.122-1.622 2.468 1.586c6.757 4.343 10.358-.213 7.338-9.286-1.534-4.613-.69-7.206 4.26-13.078 2.086-2.476 3.795-5.118 3.797-5.872 0-1.202-.386-1.363-3.164-1.308-2.657.053-3.435-.233-4.834-1.773-2.276-2.505-2.14-5.373.402-8.557l2.032-2.543-3.605-2.446c-1.984-1.345-5.56-4.528-7.947-7.074-5.362-5.717-10.634-8.428-17.587-9.042l-4.66-.413.006 3.53c.01 4.542 2.14 8.912 7.96 16.313 6.615 8.416 7.077 9.72 7.345 20.718l.227 9.304-1.915 1.816c-1.73 1.64-2.51 1.85-8.093 2.173-5.314.306-6.43.58-7.99 1.962-2.07 1.835-2.69 2.833-3.33 5.367-.373 1.476-.222 1.798.844 1.798.715 0 2.427-.725 3.806-1.61zm-142.203-24.044c.59-.8 1.075-2.09 1.075-2.87 0-1.175.525-1.49 3.11-1.856l3.11-.442-2.075-1.653c-2.464-1.963-2.692-3.497-.52-3.5 2.163 0 5.827-2.247 6.383-3.91.26-.77.096-1.804-.368-2.333-1.213-1.384-3.492-1.176-3.916.358-.455 1.65-1.217 1.653-2.945.016-2.6-2.46-2.658-7.556-.122-10.523 1.196-1.4 1.185-1.49-.34-2.934-1.64-1.554-2.81-4.628-2.04-5.357.246-.232 1.54-.047 2.88.41 1.9.652 2.652.662 3.435.046 2.373-1.866-.198-4.265-4.003-3.736-1.532.213-2.165 0-2.385-.794-.166-.603-1.506-1.39-3.015-1.77-2.697-.683-2.716-.674-2.716 1.184 0 2.036-1.162 2.42-3.37 1.114-1.796-1.062-3.536-.238-3.536 1.674 0 1.783 1.793 2.662 5.007 2.455 2.465-.16 2.556 1.674.215 4.31l-1.683 1.894 1.333 1.917c1.976 2.838 1.81 7.55-.348 9.892l-1.692 1.834-1.11-1.472c-1.542-2.045-3.652-1.908-4.23.275-.38 1.43-.066 2.083 1.724 3.598 1.203 1.018 2.96 1.85 3.902 1.85 2.336 0 2.244 1.837-.183 3.692l-1.9 1.452 2.936.454c1.613.25 2.934.72 2.934 1.047 0 1.248 2.034 5.13 2.688 5.13.378 0 1.17-.656 1.762-1.455z"/> - <path d="M356.523 374.89c2.666-1.05 8.438-5.937 8.438-7.145 0-.38-1.592-2.132-3.54-3.893-4.097-3.707-8.554-9.95-9.708-13.6-.602-1.904-3.512-5.162-11.707-13.11L329.1 326.563l-3.144.796c-1.73.438-3.838.807-4.687.82-1.465.022-1.438.106.507 1.612l2.053 1.59 2.878-1.6c2.79-1.547 2.89-1.556 3.233-.31.202.73-.232 1.993-1.004 2.922-.747.9-1.173 1.92-.946 2.27.227.347-.49 1.074-1.596 1.615-2.048 1.002-3.47 4.304-1.853 4.304 1.454 0 4.66-3.956 4.29-5.294-.188-.685-.097-1.39.204-1.566 1.25-.73 1.17 2.375-.098 3.902-.747.9-1.173 1.92-.946 2.27.227.347-.49 1.075-1.596 1.616-2.035.996-3.47 4.304-1.87 4.304 1.572 0 4.725-3.78 4.335-5.194-.206-.74-.127-1.49.174-1.666.84-.492 1.295 1.96.585 3.16-.38.645-.378 1.523.008 2.22.698 1.262-.01 3.685-1.297 4.44-.55.322-.177.955 1.16 1.966 1.938 1.463 1.975 1.616 1.975 8.07 0 5.392.218 6.784 1.21 7.723 1.11 1.054 1.208 1.057 1.208.047 0-1.103 1.937-2.452 3.52-2.452.47 0 3.39 2.475 6.49 5.5 3.12 3.043 6.386 5.632 7.31 5.797.92.164 1.915.338 2.212.387.297.05 1.695-.366 3.107-.923zM323.18 348.8c0-1.74-3.588-3.594-7.877-4.075-3.463-.39-3.52-.367-3.52 1.363 0 1.432.545 1.995 2.935 3.036 3.842 1.673 8.46 1.496 8.46-.324z"/> - <path d="M327.11 348.64c1.75-1.587 2.577-3.475 1.525-3.475-1.21 0-4.423 2.883-4.423 3.97 0 1.694.597 1.592 2.897-.495zm-3.73-5.14c.15-.982-.457-1.637-2.276-2.458-3.923-1.772-8.613-2.593-9.743-1.705-2.08 1.636-.693 3.83 2.67 4.226 1.353.16 3.19.572 4.078.918 2.585 1.004 5.042.547 5.273-.98zm0-5.255c.213-1.4-.682-1.9-7.987-4.47-5.453-1.92-7.868-1.015-6.125 2.296.607 1.154 1.626 1.68 3.912 2.023 1.7.255 4.022.752 5.162 1.106 3.044.944 4.803.61 5.04-.955zm3.66-4.922c1.102-1.118 2.004-2.436 2.004-2.93 0-1.604-4.353 1.233-4.908 3.198-.665 2.357.414 2.258 2.904-.267zm-3.66-.331c.242-1.594-2.41-3.033-7.622-4.14-3.825-.812-5.512-.35-5.225 1.426.156.97 1.43 1.68 5.043 2.807 5.783 1.804 7.522 1.784 7.805-.093zm5.1-7.419c6.68-2.973 7.258-10.472.96-12.44-2.617-.818-4.286-.377-5.287 1.394-.767 1.357-.254 3.823.794 3.823.355 0 .644.457.644 1.014 0 2.604-10.198 3.784-14.38 1.664-1.47-.745-2.11-2.678-.886-2.678.914 0 1.546-1.97 1.08-3.363-.638-1.898-2.55-2.556-5.326-1.83-6.26 1.637-6.085 8.994.29 12.116 5.227 2.56 16.686 2.716 22.112.3z"/> - <path d="M324.325 319.808c.387-.366.22-.93-.43-1.44-1.42-1.115-1.344-2.775.214-4.676 1.17-1.427 1.315-3.563 1.717-25.106.694-37.126 3.455-65.05 7.094-71.75 1.45-2.666 1.246-2.677-2.497-.13-4.823 3.28-8.494 7.554-11.747 13.67-6.142 11.547-8.277 27.083-8.277 60.245 0 18.83.128 21.294 1.2 23.064 1.02 1.68 1.073 2.302.357 4.098-.464 1.164-.674 2.276-.467 2.472 1.37 1.3 11.36.954 12.835-.443zm56.123-35.403c.21-.32-.253-1.94-1.027-3.597-1.207-2.585-1.693-3.014-3.413-3.014-5.387 0-14.048-2.408-22.977-6.388-5.156-2.298-6.937-2.826-7.556-2.24-1.577 1.494 1.045 5.04 5.105 6.904 3.6 1.654 13.67 3.686 18.265 3.686 2.665 0 2.728.12 1.21 2.312l-1.114 1.612 3.015.078c1.658.042 3.947.302 5.087.576 2.96.714 2.987.714 3.407.072z"/> - <path d="M411.92 301.136c0-.96-2.818-3.56-5.674-5.236-2.242-1.316-2.613-1.356-2.618-.282-.007 1.63-1.456 5.723-2.025 5.723-.32 0-.795-.8-1.055-1.777-.26-.978-1.346-2.905-2.415-4.282l-1.945-2.503-1.514 2.32c-1.412 2.163-3.857 4.282-4.942 4.282-.26 0-.31-1.14-.113-2.533.213-1.513.048-2.713-.412-2.982-.423-.247-.77-.16-.77.192 0 .815-3.395 4.668-4.114 4.668-.296 0-.71-1.104-.92-2.453-.21-1.35-.57-3.483-.796-4.742-.227-1.26.257-.405 1.075 1.897l1.487 4.187 1.63-2.552c.898-1.403 1.633-2.936 1.635-3.407 0-.47.305-.68.674-.464.368.217.88 1.904 1.14 3.75l.47 3.356 1.794-1.968c.987-1.082 2.144-2.53 2.57-3.22.762-1.228.805-1.227 2.32.057.847.72 2.15 2.44 2.897 3.824.747 1.383 1.457 2.413 1.58 2.29.12-.126.394-1.553.606-3.172.212-1.618.4-3.003.42-3.076.106-.4 5.406 3.043 7.367 4.788 1.26 1.12 2.457 1.88 2.66 1.69.203-.192.368-1.847.368-3.676 0-2.836-.3-3.596-2.034-5.146-1.994-1.783-2.05-1.793-2.786-.49-.957 1.694-2.085 1.718-2.085.046 0-1.22-3.768-5.91-4.75-5.91-.253 0-1.046 1.03-1.762 2.29s-1.486 2.288-1.71 2.287c-.968-.005-6.28-5.928-6.278-6.997 0-.85.358-.633 1.29.787.707 1.08 2.12 2.69 3.14 3.58 2.066 1.802 2.817 1.364 3.614-2.11.227-.988.62-1.797.876-1.797.884 0 5.508 4.912 6.16 6.54l.652 1.636.495-1.8c.604-2.2 1.272-2.28 2.237-.274.404.838 2.396 2.58 4.428 3.873l3.693 2.35.743-2.364c.407-1.3.948-2.047 1.2-1.66.376.577-.584 4.492-1.308 5.335-.11.127-1.306-.57-2.66-1.55l-2.463-1.777-.01 3.184c-.006 1.75-.196 3.847-.425 4.656-.448 1.583-1.637 2.028-1.637.613zm-18.416-25.386c-4.39-3.666-5.057-4.505-4.96-6.242l.104-1.85.287 1.787c.167 1.043 1.336 2.606 2.81 3.756l2.523 1.97 1.55-1.793c.854-.986 1.563-2.16 1.577-2.61.035-1.173.246-1.075 3.218 1.504 2.64 2.292 2.682 2.303 3.075.82.22-.83.14-2.387-.173-3.464-.863-2.96-.694-3.407.614-1.622.65.89 1.698 2.147 2.326 2.795 1.095 1.125 1.162 1.11 1.57-.33.233-.826.43-2.34.434-3.363l.01-1.86 2.38 2.698c2.225 2.522 2.43 2.615 3.11 1.413.398-.707.73-2.41.736-3.78.007-1.775.194-2.222.645-1.547.754 1.13.23 4.2-1.16 6.815l-.997 1.877-1.31-2.04c-1.676-2.61-2.234-2.568-3.31.248-1.015 2.66-1.676 2.863-2.666.817-.64-1.324-.763-1.162-1.218 1.62l-.506 3.092-3.03-2.352-3.027-2.35-1.362 1.548c-.75.85-1.372 1.916-1.384 2.365-.027.976-.755 1.006-1.866.08zm39.051-13.654c-1.598-1.44-2.7-2.813-2.447-3.052.253-.24.537-.308.632-.152.095.155 1.4 1.528 2.903 3.052 3.457 3.507 2.746 3.607-1.088.152zm-52.015-5.376c-1.455-1.965-1.355-3.268.415-5.398 1.278-1.54 1.862-1.748 4.095-1.465 1.432.182 4.514 1.448 6.85 2.812 2.695 1.576 5.484 2.63 7.644 2.894 1.87.227 3.4.313 3.4.19 0-.122-.776-1.388-1.726-2.813-2.255-3.382-2.178-3.745.366-1.718 2.61 2.08 5.734 2.69 12.712 2.477l3.41-.105-1.978-1.955c-2.766-2.735-1.915-2.98 1.14-.328 2.865 2.486 2.686 2.662-3.345 3.263-2.562.256-5.318.07-7.61-.512-3.426-.87-3.56-.858-2.91.29.374.663.98 1.204 1.347 1.204.366 0 .666.336.666.746 0 1.26-7.402.152-10.94-1.64-8.08-4.09-9.097-4.444-11.02-3.838-1.07.337-2.14 1.324-2.51 2.313-1.232 3.3 3.448 5.865 5.378 2.948.56-.845.43-1.424-.554-2.452-1.347-1.41-1.22-1.61.597-.95 1.29.47 1.465 3.568.264 4.705-1.373 1.3-4.508.932-5.692-.67z" fill="#000"/> - <path d="M412.368 248.57c-1.01-.956-.218-1.19 4.312-1.275 5.604-.105 9.008-1.04 13.024-3.574 3.218-2.03 4.09-1.63 1.036.476-2.786 1.92-7.132 3.398-11.328 3.85-2.03.22-4.347.522-5.145.673-.798.15-1.653.084-1.9-.15z" fill="#000"/> - </g> - </g> -</svg> diff --git a/img/flags/1x1/lr.svg b/img/flags/1x1/lr.svg deleted file mode 100644 index 4dbc516..0000000 --- a/img/flags/1x1/lr.svg +++ /dev/null @@ -1,14 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" height="512" width="512" viewBox="0 0 512 512"> - <defs> - <clipPath id="a"> - <path fill-opacity=".67" d="M0 0h512v512H0z"/> - </clipPath> - </defs> - <g fill-rule="evenodd" clip-path="url(#a)"> - <path fill="#fff" d="M0 .084h767.87v511.92H0z"/> - <path fill="#006" d="M0 0h232.74v232.75H0z"/> - <path fill="#c00" d="M0 464.87h767.89v47.127H0z"/> - <path fill="#c00" d="M0 465.43h767.89v46.574H0zM0 372.52h767.89v46.21H0zM0 279.26h765.96v46.7H0zM232.67.055h535.17v46.494H232.67zM232.67 186.06h535.17v46.796H232.67zM232.67 93.361h535.17v46.494H232.67z"/> - <path d="M166.35 177.47l-50.71-30.98-50.465 31.29 18.769-50.85-50.373-31.394 62.321-.438 19.328-50.691 19.744 50.574 62.321.067-50.115 31.693 19.184 50.732z" fill="#fff"/> - </g> -</svg> diff --git a/img/flags/1x1/ls.svg b/img/flags/1x1/ls.svg deleted file mode 100644 index b200672..0000000 --- a/img/flags/1x1/ls.svg +++ /dev/null @@ -1,8 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" height="512" width="512" viewBox="0 0 512 512"> - <path d="M0 0h512v512H0z" fill="#fff"/> - <path d="M0 358.4h512V512H0z" fill="#009543"/> - <path d="M0 0h512v153.6H0z" fill="#00209f"/> - <path d="M257.597 163.104c-2.918.064-5.765 3.294-5.765 3.294l.253 34.533-10.903 11.421h8.824l-.074 19.8-52.208 70.303-7.718-2.667-13.49 28.776s33.364 20.891 81.793 20.321c53.15-.631 82.029-21.285 82.029-21.285l-13.94-28.406-6.827 2.97-52.877-69.94-.074-20.39h8.824l-12.01-11.282.072-34.405s-2.99-3.106-5.909-3.043z" stroke="#000" stroke-width="1.708"/> - <path d="M275.8 245.777h-36.1s-13.105-27.609-10.98-46.91c2.163-19.653 13.394-28.95 28.328-29.115 17.655-.196 26.909 8.653 29.704 28.329 2.77 19.497-10.953 47.694-10.953 47.694z" fill="none" stroke="#000" stroke-width="8.534"/> - <path d="M194.491 311.586c-.59.785-4.918 9.441-4.918 9.441l7.475-1.573-2.557-7.868zm4.328 11.213l-7.867 2.557 9.441 3.737-1.574-6.294zm3.54-11.017l3.936 11.606 9.639-2.753-2.558-5.51-11.017-3.344zm6.1 15.738l1.375 4.72 12.788 3.149-5.115-10.82-9.048 2.95zm14.162-9.836l4.526 10.82 9.639-3.737-3.149-4.723-11.015-2.36zm6.296 14.754l1.573 4.13 14.95 2.164-6.294-9.835-10.23 3.541zm14.36-11.607l5.509 9.64 13.965-5.115-1.573-3.738-17.902-.785zm8.065 13.18l2.951 5.116 17.31-.59-6.491-9.64-13.77 5.115zm18.296-12.786l4.72 8.064 11.017-5.31-2.953-4.329-12.784 1.575zm18.097 6.097l-11.016 5.509 2.95 4.72 14.755-2.36-6.69-7.868zm3.541-8.459l5.704 7.083 9.247-7.279-3.149-3.345-11.802 3.541zm16.917 3.738l-8.853 6.69 2.362 4.13 12.196-3.147-5.705-7.673zm12.197-13.967l2.163 3.148-6.098 9.05-6.294-8.067 10.23-4.13zm4.13 7.869l3.738 7.475-7.475 2.559-.59-3.542 4.328-6.492z" fill="#fff"/> -</svg> diff --git a/img/flags/1x1/lt.svg b/img/flags/1x1/lt.svg deleted file mode 100644 index 2f03f7c..0000000 --- a/img/flags/1x1/lt.svg +++ /dev/null @@ -1,7 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" height="512" width="512" viewBox="0 0 512 512"> - <g fill-rule="evenodd" transform="matrix(.51314 0 0 1.0322 0 0)" stroke-width="1pt"> - <rect transform="matrix(.93865 0 0 .69686 0 0)" rx="0" ry="0" height="708.66" width="1063" fill="#007308"/> - <rect transform="matrix(.93865 0 0 .69686 0 0)" rx="0" ry="0" height="236.22" width="1063" y="475.56" fill="#bf0000"/> - <path fill="#ffb300" d="M0 0h997.77v164.61H0z"/> - </g> -</svg> diff --git a/img/flags/1x1/lu.svg b/img/flags/1x1/lu.svg deleted file mode 100644 index 505b0d6..0000000 --- a/img/flags/1x1/lu.svg +++ /dev/null @@ -1,5 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" height="512" width="512" viewBox="0 0 512 512"> - <path fill="#00a1de" d="M0 256h512v256H0z"/> - <path fill="#ed2939" d="M0 0h512v256H0z"/> - <path fill="#fff" d="M0 170.667h512v170.666H0z"/> -</svg> diff --git a/img/flags/1x1/lv.svg b/img/flags/1x1/lv.svg deleted file mode 100644 index 4219876..0000000 --- a/img/flags/1x1/lv.svg +++ /dev/null @@ -1,6 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" height="512" width="512" viewBox="0 0 512 512"> - <g fill-rule="evenodd"> - <path fill="#fff" d="M0 0h512.005v512.005H0z"/> - <path fill="#ab231d" d="M0 0h512.005v204.802H0zM0 307.203h512.005v204.802H0z"/> - </g> -</svg> diff --git a/img/flags/1x1/ly.svg b/img/flags/1x1/ly.svg deleted file mode 100644 index 98c1103..0000000 --- a/img/flags/1x1/ly.svg +++ /dev/null @@ -1,13 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" height="512" width="512" viewBox="0 0 512 512"> - <defs> - <clipPath id="a"> - <path d="M250 12h500v500H250z"/> - </clipPath> - </defs> - <g clip-path="url(#a)" transform="translate(-256 -12.288) scale(1.024)"> - <path fill="#239e46" d="M0 12h1000v500H0z"/> - <path d="M0 12h1000v375H0z"/> - <path fill="#e70013" d="M0 12h1000v125H0z"/> - <path fill="#fff" d="M544.2 217.8a54.3 54.3 0 1 0 0 88.4 62.5 62.5 0 1 1 0-88.4M530.4 262l84.1-27.3-52 71.5v-88.4l52 71.5z"/> - </g> -</svg> diff --git a/img/flags/1x1/ma.svg b/img/flags/1x1/ma.svg deleted file mode 100644 index 40db1ab..0000000 --- a/img/flags/1x1/ma.svg +++ /dev/null @@ -1,4 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" height="512" width="512" viewBox="0 0 512 512"> - <path fill="#c1272d" d="M512 0H0v512h512z"/> - <path d="M256 191.415L218.054 308.21l99.33-72.156h-122.77l99.33 72.157z" fill="none" stroke="#006233" stroke-width="12.484"/> -</svg> diff --git a/img/flags/1x1/mc.svg b/img/flags/1x1/mc.svg deleted file mode 100644 index 8c53385..0000000 --- a/img/flags/1x1/mc.svg +++ /dev/null @@ -1,6 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" height="512" width="512" viewBox="0 0 512 512"> - <g fill-rule="evenodd" stroke-width="1pt"> - <path fill="#f31830" d="M0 0h511.993v255.992H0z"/> - <path fill="#fff" d="M0 255.992h511.993v255.992H0z"/> - </g> -</svg> diff --git a/img/flags/1x1/md.svg b/img/flags/1x1/md.svg deleted file mode 100644 index 4851fa4..0000000 --- a/img/flags/1x1/md.svg +++ /dev/null @@ -1,73 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" height="512" width="512" viewBox="0 0 512 512"> - <g fill-rule="evenodd" stroke-width="1pt"> - <path fill="#00319c" d="M0 0h170.667v512H0z"/> - <path fill="#ffde00" d="M170.667 0h170.666v512H170.667z"/> - <path fill="#de2110" d="M341.333 0H512v512H341.333z"/> - </g> - <path d="M173.62 690.94v63.779c0 3.544 0 7.087-3.543 7.087-3.544 0-7.087 7.087-7.087 10.63 0 7.087 3.543 10.63 7.087 10.63h31.889c3.544 0 7.087-3.543 7.087-10.63-.228-3.723-3.543-10.63-7.087-10.63-3.543 0-3.543-3.543-3.543-7.087V690.94" fill-rule="evenodd" transform="matrix(.46695 -.29552 .30926 .4462 -5.143 64.498)" stroke="#000" stroke-width="1pt" fill="#ff1900"/> - <path d="M177.17 696.26c0 24.461-9.518 44.291-21.26 44.291-11.741 0-21.26-19.83-21.26-44.291s9.518-44.291 21.26-44.291c11.741 0 21.26 19.83 21.26 44.291z" fill-rule="evenodd" transform="matrix(.42858 -.34452 .36055 .40954 -29.658 77.262)" stroke="#000" stroke-width="3.125" fill="#a77b3b"/> - <path d="M173.62 690.94v63.779c0 3.544 0 7.087-3.543 7.087-3.544 0-7.087 7.087-7.087 10.63 0 7.087 3.543 10.63 7.087 10.63h31.889c3.544 0 7.087-3.543 7.087-10.63-.228-3.723-3.543-10.63-7.087-10.63-3.543 0-3.543-3.543-3.543-7.087V690.94" fill-rule="evenodd" transform="scale(.56007 .53518) rotate(29.175 488.869 1020.492)" stroke="#000" stroke-width="1pt" fill="#ff1900"/> - <path d="M421.65 701.58h-28.347c-.937.938-8.998 54.066-17.716 74.409-10.63 24.803-42.465 46.69-42.465 46.69s19.073 6.045 24.748 10.003c1.411-.415 31.835-7.086 35.378-46.063 3.544 38.977-21.205 56.693-21.205 56.693s35.433 10.63 35.433 35.433c0-24.803 35.434-35.433 35.434-35.433s-17.772-17.716-21.315-56.693c7.086 38.977 34.077 45.648 35.488 46.063 5.675-3.958 24.748-10.003 24.748-10.003s-31.835-21.887-42.465-46.69c-8.718-20.343-16.779-73.471-17.716-74.409z" fill-rule="evenodd" transform="matrix(.56007 0 0 .53518 29.717 -86.339)" stroke="#000" stroke-width="3.125" fill="#a77b3b"/> - <path d="M336.61 467.7l53.15 17.716c17.716 0 35.433-17.697 35.433-35.414.589-39.414-14.174-53.168-17.717-53.168l7.087-7.087-10.63-10.63s3.554-18.382 38.976-17.698c35.421.685 35.433 17.717 35.433 35.433 0 17.717-17.716 17.717-17.716 53.15 0 17.717 17.716 35.433 35.433 35.433l53.15-17.716v177.16h-212.6v-177.18z" fill-rule="evenodd" transform="matrix(.56007 0 0 .53518 9.84 -55.998)" stroke="#000" stroke-width="3.125" fill="#a77b3b"/> - <g stroke="#000" fill="none"> - <path d="M302.16 292.24l14.645 14.964 14.644-14.964 14.645 14.964 29.29-14.964 14.261 15.809 15.028-15.809 21.605 15.809 22.329-15.809 14.645 14.964 14.645-14.964" transform="matrix(.1355 0 0 .38018 203.065 87.002)" stroke-width=".603"/> - <path d="M432.28 435.83l-7.086 38.976M435.83 435.83v38.976M442.91 435.83v38.976M450 435.83l3.543 38.976M457.09 435.83l3.543 38.976" transform="matrix(.56007 0 0 .53518 9.84 -55.998)" stroke-width=".25"/> - </g> - <g stroke="#000" stroke-width="3.125"> - <path d="M318.9 361.42c35.433 17.717 35.433 53.149 35.433 70.866-1.251 16.117 0 354.33 0 354.33s-2.306-20.022-17.717-35.433L318.9 733.467l-17.717-17.717c-12.951-11.774-17.716-35.433-17.716-53.15V414.57s0-17.717 35.433-53.15z" fill-rule="evenodd" transform="matrix(-.56007 0 0 .53518 357.129 -55.998)" fill="#a77b3b"/> - <path d="M283.46 574.02c.417 0 17.716-17.717 17.716-17.717l17.717 17.717 17.716-17.717 17.717 17.717" transform="matrix(-.56007 0 0 .53518 357.129 -131.85)" fill="none"/> - <path d="M283.46 574.02c.417 0 17.716-17.717 17.716-17.717l17.717 17.717 17.716-17.717 17.717 17.717" transform="matrix(-.56007 0 0 -.53518 357.129 492.026)" fill="none"/> - <path d="M283.46 574.02c.417 0 17.716-17.717 17.716-17.717l17.717 17.717 17.716-17.717 17.717 17.717" transform="matrix(-.56007 0 0 .53518 357.129 -93.924)" fill="none"/> - <path d="M301.39 556.99l-.208 158.76" transform="matrix(-.56007 0 0 1.01529 357.129 -399.621)" fill="none"/> - <path d="M301.39 539.27l-.208 176.48" transform="matrix(-.56007 0 0 .91125 347.322 -316.063)" fill="none"/> - <path d="M301.39 539.27l-.208 176.48" transform="matrix(-.56007 0 0 1.0208 337.398 -384.615)" fill="none"/> - </g> - <g stroke="#000" stroke-width="3.125"> - <path d="M318.9 361.42c35.433 17.717 35.433 53.149 35.433 70.866-1.251 16.117 0 354.33 0 354.33s-2.306-20.022-17.717-35.433L318.9 733.467l-17.717-17.717c-12.951-11.774-17.716-35.433-17.716-53.15V414.57s0-17.717 35.433-53.15z" fill-rule="evenodd" transform="matrix(.56007 0 0 .53518 158.68 -55.998)" fill="#a77b3b"/> - <path d="M283.46 574.02c.417 0 17.716-17.717 17.716-17.717l17.717 17.717 17.716-17.717 17.717 17.717" transform="matrix(.56007 0 0 .53518 158.68 -131.85)" fill="none"/> - <path d="M283.46 574.02c.417 0 17.716-17.717 17.716-17.717l17.717 17.717 17.716-17.717 17.717 17.717" transform="matrix(.56007 0 0 -.53518 158.68 492.026)" fill="none"/> - <path d="M283.46 574.02c.417 0 17.716-17.717 17.716-17.717l17.717 17.717 17.716-17.717 17.717 17.717" transform="matrix(.56007 0 0 .53518 158.68 -93.924)" fill="none"/> - <path d="M301.39 556.99l-.208 158.76" transform="matrix(.56007 0 0 1.01529 158.68 -399.621)" fill="none"/> - <path d="M301.39 539.27l-.208 176.48" transform="matrix(.56007 0 0 .91125 168.486 -316.063)" fill="none"/> - <path d="M301.39 539.27l-.208 176.48" transform="matrix(.56007 0 0 1.0208 178.405 -384.615)" fill="none"/> - </g> - <path d="M177.17 696.26c0 24.461-9.518 44.291-21.26 44.291-11.741 0-21.26-19.83-21.26-44.291s9.518-44.291 21.26-44.291c11.741 0 21.26 19.83 21.26 44.291z" fill-rule="evenodd" transform="scale(.56007 .53518) rotate(22.62 601.103 1227.148)" stroke="#000" stroke-width="3.125" fill="#a77b3b"/> - <path fill-rule="evenodd" fill="red" d="M198.366 203.794h119.07v56.89h-119.07z"/> - <path d="M198.366 260.684h119.071v28.445c0 18.963-29.767 18.963-59.535 37.926-29.768-18.963-59.536-18.963-59.536-37.926v-28.445z" fill-rule="evenodd" fill="#564dff"/> - <path d="M336.61 485.43h212.6v159.45c0 35.433-53.15 35.433-106.3 70.866-53.149-35.433-106.3-35.433-106.3-70.866V485.43z" transform="matrix(.56007 0 0 .53518 9.842 -55.998)" stroke="#ff0" stroke-width="2.5" fill="none"/> - <path d="M385.59 129.9s-50.618 55.447-50.618 108.6c0 53.149 53.149 70.866 53.149 70.866s-17.717 0-17.717 70.866c0 35.433 53.15 17.717 53.15 35.433 0 17.717-.751 60.578 0 88.583 0 17.716-35.433 0-35.433 17.716 0 8.859 26.575 53.15 53.15 53.15 26.574 0 53.149-44.291 53.149-53.15 0-17.716-35.433 0-35.433-17.716v-88.583c0-17.716 53.15 0 53.15-35.433 0-70.866-17.717-70.866-17.717-70.866s53.15-17.717 53.15-70.866-50.619-108.6-50.619-108.6c0-.001 28.473 73.163 28.473 108.6 0 17.717-13.287 53.149-48.72 53.149 0 0-8.961-17.716-17.717 0 0 0-10.189-17.716-17.716 0-2.598 6.115-7.207-17.716-17.717 0-4.465 4.697-7.984-17.716-17.717 0-17.716 0-53.148-17.716-53.149-53.149 0-35.433 32.902-108.6 32.902-108.6z" fill-rule="evenodd" transform="matrix(.39205 0 0 .2513 84.901 174.943)" stroke="#000" stroke-width="3.011" fill="#ff0"/> - <path d="M382.68 248.03c-3.543 3.543 4.581 61.274 7.087 63.779 3.543 3.543 24.803 3.543 28.346 0 2.525-2.525 0-56.693-3.543-60.236-3.543-3.544-29.384-6.049-31.89-3.543z" fill-rule="evenodd" transform="matrix(.39205 0 0 .2513 86.397 224.929)" stroke="#000" stroke-width="3.011" fill="#ff0"/> - <path d="M382.68 248.03c-3.543 3.543 4.581 61.274 7.087 63.779 3.543 3.543 24.803 3.543 28.346 0 2.525-2.525 0-56.693-3.543-60.236-3.543-3.544-29.384-6.049-31.89-3.543z" fill-rule="evenodd" transform="matrix(-.39205 0 0 .2513 429.412 224.929)" stroke="#000" stroke-width="3.011" fill="#ff0"/> - <path d="M414.57 228.54c0 8.806-7.139 15.945-15.945 15.945-8.806 0-15.945-7.139-15.945-15.945 0-8.806 7.139-15.945 15.945-15.945 8.806 0 15.945 7.139 15.945 15.945z" fill-rule="evenodd" transform="matrix(.45063 0 0 .31327 63.903 210.41)" stroke="#000" stroke-width="3.011" fill="#ff0"/> - <path d="M414.57 228.54c0 8.806-7.139 15.945-15.945 15.945-8.806 0-15.945-7.139-15.945-15.945 0-8.806 7.139-15.945 15.945-15.945 8.806 0 15.945 7.139 15.945 15.945z" fill-rule="evenodd" transform="matrix(.45063 0 0 .31328 92.642 210.41)" stroke="#000" stroke-width="3.011" fill="#ff0"/> - <path d="M270.409 311.012c0 1.23-1.555 2.226-3.473 2.226s-3.473-.997-3.473-2.226c0-1.23 1.555-2.226 3.473-2.226s3.473.997 3.473 2.226zM252.347 311.012c0 1.23-1.555 2.226-3.473 2.226s-3.473-.997-3.473-2.226c0-1.23 1.555-2.226 3.473-2.226s3.473.997 3.473 2.226z" fill-rule="evenodd"/> - <path fill-rule="evenodd" transform="matrix(.54641 0 0 .52213 17.827 -47.302)" stroke="#000" stroke-width="1pt" fill="#ff0" d="M439.37 549.92l-7.78-10.26-12.77 1.75 1.76-12.76-10.26-7.78 10.26-7.79-1.76-12.76 12.77 1.76 7.78-10.27 7.78 10.27 12.77-1.76-1.76 12.76 10.26 7.79-10.26 7.78 1.76 12.76-12.77-1.75z"/> - <path d="M496.06 591.73l21.26 10.63 21.26-10.63-21.26-10.63-21.26 10.63z" fill-rule="evenodd" transform="matrix(.56007 0 0 .53518 9.84 -55.998)" stroke="#000" stroke-width="1pt" fill="#ff0"/> - <path d="M496.06 591.73l21.26 10.63 21.26-10.63-21.26-10.63-21.26 10.63z" fill-rule="evenodd" transform="matrix(.56007 0 0 .53518 -75.491 -55.998)" stroke="#000" stroke-width="1pt" fill="#ff0"/> - <path d="M535.04 659.06c-3.543-7.086-14.173-10.63-21.259-10.63-7.087 0-14.174 0-21.26 10.63 0-14.173 10.502-21.26 21.26-21.26 10.756 0 21.259 10.503 21.259 21.26z" fill-rule="evenodd" transform="matrix(.48568 -.26652 .27892 .4641 -137.542 131.374)" stroke="#000" stroke-width="1pt" fill="#ff0"/> - <path d="M386.22 651.97a7.087 7.087 0 1 1-14.173 0 7.087 7.087 0 0 1 14.173 0z" fill-rule="evenodd" transform="matrix(.56007 0 0 .53518 7.856 -65.48)" stroke="#000" stroke-width="1pt" fill="#ff0"/> - <path d="M386.22 651.97a7.087 7.087 0 1 1-14.173 0 7.087 7.087 0 0 1 14.173 0z" fill-rule="evenodd" transform="matrix(.56007 0 0 .53518 3.887 -52.206)" stroke="#000" stroke-width="1pt" fill="#ff0"/> - <path d="M386.22 651.97a7.087 7.087 0 1 1-14.173 0 7.087 7.087 0 0 1 14.173 0z" fill-rule="evenodd" transform="matrix(.56007 0 0 .53518 1.903 -59.79)" stroke="#000" stroke-width="1pt" fill="#ff0"/> - <path d="M386.22 651.97a7.087 7.087 0 1 1-14.173 0 7.087 7.087 0 0 1 14.173 0z" fill-rule="evenodd" transform="matrix(.56007 0 0 .53518 11.825 -52.206)" stroke="#000" stroke-width="1pt" fill="#ff0"/> - <path d="M386.22 651.97a7.087 7.087 0 1 1-14.173 0 7.087 7.087 0 0 1 14.173 0z" fill-rule="evenodd" transform="matrix(.56007 0 0 .53518 13.81 -59.79)" stroke="#000" stroke-width="1pt" fill="#ff0"/> - <path d="M386.22 651.97a7.087 7.087 0 1 1-14.173 0 7.087 7.087 0 0 1 14.173 0z" fill-rule="evenodd" transform="matrix(.56007 0 0 .53518 7.856 -57.894)" stroke="#000" stroke-width="1pt" fill="#ff0"/> - <g fill-rule="evenodd"> - <path d="M238.726 158.921c-10.016 0-11.34 1.58-15.876 3.161 0-4.361 11.153-9.481 21.169-9.481 0 3.16-2.647 6.321-5.293 6.32z" fill="#da4500"/> - <path d="M253.934 148.803c0 2.095-1.777 3.793-3.969 3.793s-3.969-1.698-3.969-3.793 1.777-3.793 3.97-3.793 3.968 1.698 3.968 3.793z" fill="#cac9c7"/> - <path d="M361.42 357.87v10.63h17.717v53.15h10.63V368.5h17.716v-10.63h-17.716v-14.173h-10.63v14.173H361.42z" stroke="#000" stroke-width="1pt" fill="#ff0" transform="matrix(.56007 0 0 .53518 9.84 -55.998)"/> - <path d="M244 152.602c-11.684 0-18.52 1.053-23.813 3.16 0-5.815 6.837-12.642 18.521-12.642 2.646 0 5.293 6.321 5.293 9.482z" fill="#da4500"/> - </g> - <g fill-rule="evenodd"> - <path d="M67.323 612.99c-14.173-14.17-16.634-21.36 3.543-10.1l283.75 247.5-3.366 6.968-283.93-244.37z" transform="matrix(.31554 .24102 -.11439 .19257 189.696 119.017)" stroke="#000" stroke-width=".875" fill="#008500"/> - <path d="M182.337 329.631c.625-8.603-15.127-17.91-15.75-17.306-.623.604.958 5.614 3.945 8.224-5.72-2.947-11.712-4.762-11.837-3.482-.467 1.725 8.89 5.844 9.666 7.435.127 1.137-6.87.989-6.744 2.126.127 1.137 19.711 11.032 20.72 3.003zM166.598 304.569c.625-8.604-15.127-17.911-15.75-17.306-.623.604.958 5.613 3.945 8.224-5.72-2.947-11.712-4.762-11.838-3.483-.466 1.725 8.89 5.845 9.667 7.436.127 1.137-6.87.988-6.744 2.125.127 1.137 19.711 11.032 20.72 3.003zM154.554 281.813c.625-8.604-15.127-17.911-15.75-17.306-.623.604.958 5.613 3.945 8.224-5.72-2.947-11.712-4.762-11.837-3.483-.467 1.725 8.89 5.845 9.667 7.436.127 1.137-6.872.988-6.745 2.125.128 1.138 19.711 11.033 20.72 3.003zM142.647 257.157c.625-8.603-15.127-17.91-15.75-17.306-.623.604.958 5.614 3.945 8.224-5.72-2.947-11.712-4.762-11.837-3.482-.467 1.725 8.89 5.844 9.667 7.435.126 1.137-6.872.988-6.745 2.126.127 1.137 19.711 11.032 20.72 3.003z" fill="#008f00"/> - <path d="M146.74 256.04c7.622-4.618 6.129-22.258 5.25-22.38-.88-.12-4.164 4.065-4.593 7.912-.908-6.15-2.93-11.836-4.082-11.174-1.73.663.344 10.306-.537 11.847-.883.771-4.906-4.702-5.79-3.93-.882.771 2.386 21.708 9.752 17.725zM157.78 277.686c8.798-1.922 13.554-19.026 12.768-19.42-.786-.395-5.345 2.503-7.094 5.991 1.294-6.085 1.375-12.09.057-11.835-1.863.073-3.277 9.825-4.645 10.996-1.102.446-2.982-5.997-4.084-5.552-1.102.446-5.336 21.225 2.998 19.82zM170.968 299.829c8.024-3.948 8.191-21.645 7.327-21.84-.864-.197-4.528 3.691-5.317 7.485-.326-6.202-1.807-12.039-3.017-11.478-1.786.512-.624 10.294-1.645 11.753-.952.693-4.446-5.103-5.398-4.41-.952.693.34 21.826 8.05 18.489zM185.242 328.738c8.4-3.151 10.44-20.741 9.602-21.02-.839-.278-4.896 3.236-6.082 6.934.332-6.202-.523-12.152-1.787-11.711-1.83.337-1.71 10.18-2.88 11.534-1.021.597-3.883-5.507-4.903-4.91-1.021.598-1.973 21.747 6.05 19.173z" fill="#008f00"/> - </g> - <path d="M209.06 775.98c0 7.828-10.312 14.173-23.031 14.173-12.72 0-23.031-6.346-23.031-14.173 0-7.828 10.312-14.173 23.031-14.173 12.72 0 23.031 6.346 23.031 14.173z" fill-rule="evenodd" transform="scale(.56007 .53518) rotate(29.175 488.869 1020.492)" stroke="#000" stroke-width="1pt" fill="#ff1900"/> - <g stroke="#000" fill-rule="evenodd" fill="#ff0"> - <path d="M155.91 414.57v-7.087h7.086v-7.086h7.087v7.086h7.086v7.087h-7.086v17.716h-7.087V414.57h-7.086z" transform="matrix(.40549 .1277 -.14842 .38308 363.626 58.049)" stroke-width=".625"/> - <path stroke-width=".63" d="M162.99 474.8h7.087v205.51h-7.087z" transform="matrix(.40549 .1277 -.14842 .38308 363.626 58.049)"/> - <path stroke-width=".625" d="M159.45 676.77h14.173v56.693H159.45zM155.91 439.37h21.259c14.174 0-3.543 38.976-3.543 38.976h-14.173s-17.717-38.976-3.543-38.976z" transform="matrix(.40549 .1277 -.14842 .38308 363.626 58.049)"/> - <path d="M173.62 434.06c0 2.935-3.173 5.315-7.087 5.315s-7.086-2.38-7.086-5.315 3.173-5.315 7.086-5.315 7.087 2.38 7.087 5.315z" stroke-width=".625" transform="matrix(.40549 .1277 -.14842 .38308 363.626 58.049)"/> - </g> - <path d="M209.06 775.98c0 7.828-10.312 14.173-23.031 14.173-12.72 0-23.031-6.346-23.031-14.173 0-7.828 10.312-14.173 23.031-14.173 12.72 0 23.031 6.346 23.031 14.173z" fill-rule="evenodd" transform="matrix(.46695 -.29552 .30926 .4462 -5.143 64.498)" stroke="#000" stroke-width="1pt" fill="#ff1900"/> -</svg> diff --git a/img/flags/1x1/me.svg b/img/flags/1x1/me.svg deleted file mode 100644 index dd519bd..0000000 --- a/img/flags/1x1/me.svg +++ /dev/null @@ -1,118 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" height="512" width="512" viewBox="0 0 512 512"> - <path fill="#d3ae3b" d="M0 0h512v512H0z"/> - <path fill="#c40308" d="M25.6 25.6h460.8v460.8H25.6z"/> - <path d="M367.424 251.84c2.998-.846 13.424-3.893 20.77-9.853 7.345-5.961 8.779-10.737 9.372-13.317.59-2.579.844-4.608-1.056-3.128-1.899 1.477-7.598 5.96-11.481 8.117-3.887 2.155-7.475 3.171-9.586 3.765-2.11.589-3.8.97-1.771.166 2.024-.801 8.654-3.13 13.763-8.243 5.107-5.115 9.143-12.78 9.229-17.488.085-4.705-.251-4.371-1.765-3.193-1.513 1.176-6.893 7.817-9.917 10.337-3.025 2.523-7.9 5.885-10.337 7.312-2.439 1.43-5.883 3.027-1.093-.251 4.79-3.275 13.866-11.01 17.566-21.011 3.698-10.002 3.024-15.883 2.941-16.893-.083-1.008-.925-3.026-1.765-1.174-.84 1.846-6.894 13.95-11.766 19.16-4.877 5.21-3.7 4.203-4.792 5.043-1.091.84-2.942 2.353-.586-.59 2.354-2.94 7.228-9.75 9.75-16.471 2.52-6.725 3.193-13.45 3.276-17.315.085-3.866-1.595-9.243-2.354-10.839-.755-1.6-1.512-2.774-1.766-.928-.25 1.85-4.117 13.784-6.22 19.583-2.1 5.8-6.3 12.357-7.143 13.617-.839 1.261-3.024 3.866-.672-.504 2.353-4.37 6.891-17.23 7.481-29.416.588-12.187-1.092-18.91-2.774-22.272-1.68-3.363-3.136-4.555-3.136-4.555s.288 8.32-2.195 20.272c-2.485 11.954-6.11 18.264-6.11 18.264s-1.527 1.722-.48-1.147c.708-1.93 2.166-6.176 2.833-13.373.702-7.55.786-16.14-1.42-23.454-2.4-7.965-6.566-12.037-6.566-12.037-1.161 11.427-.93 26.15-5.118 38.085-.784-.701-1.82-1.997-2.234.641-.764 3.922-2.292 11.285-7.446 20.656-5.158 9.372-7.256 10.615-7.256 10.615s-.955-2.296-1.626-3.538c-.667-1.243-1.05-1.913-1.91-.192-.856 1.722-3.722 8.32-10.026 15.587-6.3 7.268-9.833 10.805-9.641 16.255.192 5.451 3.054 8.225 6.873 10.71 3.821 2.488 4.492 3.824 3.916 6.789-.573 2.966-4.012 4.016-6.968 4.112-2.964.096-6.687-.192-8.023.573-1.337.766-1.432 2.677-2.77 4.014-1.334 1.341-1.907 2.103-3.15 2.298-.437.067-.792.107-1.067.137-.275-14.376 5.296-20.785 5.296-20.785l-15.57-18.293c-.804.395-1.608.765-2.414 1.114a4.356 4.356 0 0 0-.456-.692c-2.072-2.646-2.75-4.89-2.75-8.281.774.077 2.328.637 3.739.353 1.411-.281.352-1.697-.07-3.041-.425-1.347-.849-6.016-.567-7.786.283-1.77.422-2.478.422-2.478s2.261 2.478 3.67 2.478c1.415 0 1.271-1.414 1.484-2.973.318-2.347 1.422-5.31 3.245-6.936 0 0 2.469 1.701 5.294 1.701 2.821 0 6.63-.779 9.664-3.68 3.035-2.9 2.965-3.61 2.965-3.61s5.643 1.981 9.949 2.196c4.304.211 8.891-.498 11.078-5.026 2.187-4.53-.637-8.704-1.128-9.413-.496-.708-1.905-1.275-1.905 0 0 1.276.072 4.67-2.541 6.37-2.611 1.698-4.656 1.626-7.127.848-2.468-.778-5.926-1.77-9.878-1.203-3.544.507-4.024.787-4.085.84.184-.189 3.402-3.488 6.554-4.45 3.246-.99 5.153.354 6.211 1.627 1.058 1.274 1.974 3.328 2.822.354.847-2.971.354-6.368-1.057-8.563-1.413-2.194-4.445-3.61-7.621-3.255-3.176.354-4.302.848-4.302.848s-1.626-4.598-5.717-5.448c-4.992-1.036-10.5.84-14.818 3.255 0 0-3.387.78-6.843-.211-2.264-.65-4.528-2.028-5.822-2.898a301.875 301.875 0 0 1 1.168-3.766s.988-.301 2.022-.69c1.034-.387.82-.733.949-1.594.128-.86-1.943-2.36-1.943-2.36s-.299-2.587 3.104-4.361c3.402-1.775 3.032-1.479 3.032-1.479s1.996.37 2.81-.222c.813-.592.813-.962.813-.962s1.507-.494 2.06-1.403c.553-.907.655-2.219.25-3.278-.4-1.061-.907-1.263-.35-1.768.552-.504 1.056-1.715 1.105-2.573.052-.86.052-1.06.052-1.06s1.156-.406 1.104-2.17c-.052-1.768-1.007-2.476-1.562-2.628-.552-.15-.902-.15-.902-.15s-.101-1.06-1.007-2.472c-.909-1.414-1.51-2.02-1.51-2.02s.653-.5.3-1.662c-.351-1.161-1.158-1.867-1.963-2.123-.804-.251-1.659 0-1.659 0s-2.667-1.614-3.925-2.27c-1.259-.656-1.561-.807-1.561-.807s-.05-1.11-.503-1.716c-.452-.607-1.51-.86-2.064-.86-.553 0-1.156.304-1.156.304s-4.532-1.163-6.392-1.465c-1.863-.303-1.965-.455-1.965-.455s-4.024-1.918-5.583-2.22c-1.561-.303-2.012-.453-2.012-.453s1.628-1.971 1.728-4.242c.102-2.272-1.407-4.414-3.016-5.373-.91-.539-1.397-.628-1.693-.814l-.034-1.563 3.024.304.25-4.867-2.944.372.451-2.93-6.17-.07.452 2.928-2.968-.203.25 4.797 3.122-.403-.302 1.814s-1.142.194-2.11.907c-1.61.96-2.972 2.83-2.87 5.101.098 2.27 1.457 4.291 1.457 4.291s-.402.101-1.962.402c-1.56.302-5.587 2.22-5.587 2.22s-.1.151-1.963.455c-1.861.303-6.39 1.466-6.39 1.466s-.604-.304-1.159-.304c-.554 0-1.61.253-2.062.859-.453.605-.503 1.717-.503 1.717s-.302.152-1.561.806c-1.26.656-3.925 2.27-3.925 2.27s-.858-.25-1.663 0c-.804.255-1.61.962-1.961 2.124-.352 1.161.3 1.662.3 1.662s-.604.605-1.51 2.02c-.904 1.41-1.005 2.471-1.005 2.471s-.353 0-.905.15c-.554.153-1.51.86-1.56 2.628-.051 1.765 1.107 2.171 1.107 2.171s0 .2.05 1.06c.05.859.555 2.068 1.107 2.572.553.506.051.707-.352 1.768-.402 1.06-.303 2.371.251 3.279.554.908 2.06 1.403 2.06 1.403s0 .37.812.961c.813.592 2.81.223 2.81.223s-.368-.296 3.032 1.478c3.4 1.775 3.104 4.362 3.104 4.362s-2.07 1.5-1.941 2.36c.13.86-.087 1.206.947 1.593 1.034.39 2.024.69 2.024.69s.773 2.442 1.166 3.766c-1.294.87-3.556 2.248-5.819 2.898-3.457.992-6.846.211-6.846.211-4.315-2.414-9.823-4.291-14.816-3.254-4.093.85-5.717 5.448-5.717 5.448s-1.128-.495-4.302-.848c-3.175-.355-6.21 1.06-7.623 3.254-1.411 2.195-1.904 5.592-1.057 8.563.846 2.975 1.764.92 2.822-.353 1.06-1.274 2.965-2.618 6.21-1.627 3.152.961 6.37 4.26 6.553 4.45-.062-.054-.539-.334-4.085-.84-3.95-.567-7.408.425-9.876 1.202-2.47.778-4.516.85-7.127-.848-2.611-1.7-2.54-5.096-2.54-6.37 0-1.273-1.412-.708-1.905 0-.492.71-3.316 4.886-1.13 9.414 2.188 4.528 6.774 5.236 11.078 5.025 4.304-.214 9.948-2.195 9.948-2.195s-.068.709 2.965 3.61c3.034 2.9 6.843 3.68 9.667 3.68s5.292-1.701 5.292-1.701c1.822 1.627 2.93 4.59 3.246 6.936.211 1.558.072 2.973 1.483 2.973 1.41 0 3.669-2.479 3.669-2.479s.14.709.422 2.479-.14 6.438-.564 7.785c-.423 1.344-1.482 2.76-.07 3.042 1.412.283 2.964-.277 3.74-.354 0 3.392-.68 5.635-2.752 8.282-.182.233-.326.45-.435.651a57.47 57.47 0 0 1-2.314-1.074l-15.57 18.293s5.597 6.44 5.295 20.895v-.101a20.73 20.73 0 0 1-1.133-.144c-1.243-.194-1.814-.957-3.152-2.298-1.336-1.337-1.432-3.248-2.768-4.014-1.336-.767-5.06-.479-8.02-.573-2.962-.098-6.397-1.147-6.972-4.112-.571-2.966.098-4.3 3.915-6.789 3.82-2.486 6.684-5.259 6.876-10.71.19-5.45-3.341-8.989-9.644-16.255-6.302-7.267-9.166-13.865-10.025-15.587-.86-1.721-1.242-1.051-1.91.192-.67 1.242-1.623 3.538-1.623 3.538s-2.1-1.243-7.256-10.615c-5.157-9.37-6.685-16.732-7.448-20.656-.414-2.638-1.453-1.34-2.234-.641-4.192-11.935-3.96-26.66-5.12-38.085 0 0-4.166 4.072-6.566 12.037-2.203 7.312-2.12 15.904-1.418 23.454.668 7.197 2.124 11.445 2.83 13.373 1.05 2.869-.476 1.147-.476 1.147s-3.629-6.31-6.11-18.264c-2.484-11.952-2.197-20.272-2.197-20.272s-1.455 1.192-3.136 4.555c-1.68 3.362-3.36 10.085-2.773 22.272.589 12.188 5.128 25.045 7.482 29.416 2.353 4.37.168 1.765-.674.504-.84-1.26-5.042-7.816-7.144-13.617-2.1-5.799-5.966-17.733-6.22-19.583-.252-1.848-1.007-.672-1.766.928-.756 1.597-2.436 6.975-2.353 10.839.085 3.865.757 10.59 3.278 17.315 2.522 6.723 7.395 13.531 9.749 16.47 2.354 2.944.504 1.43-.589.59s.085.167-4.79-5.042c-4.875-5.21-10.927-17.314-11.767-19.16-.841-1.852-1.681.166-1.766 1.174-.083 1.01-.757 6.891 2.942 16.893 3.698 10.001 12.775 17.736 17.567 21.011 4.79 3.278 1.344 1.682-1.093.251-2.437-1.427-7.312-4.789-10.338-7.312-3.025-2.52-8.404-9.161-9.916-10.337-1.514-1.178-1.848-1.514-1.765 3.193.083 4.707 4.12 12.371 9.229 17.488 5.107 5.114 11.734 7.442 13.763 8.243 2.027.804.337.423-1.775-.166-2.108-.592-5.697-1.61-9.582-3.765-3.885-2.158-9.582-6.64-11.483-8.117-1.901-1.48-1.647.55-1.056 3.128.592 2.58 2.027 7.357 9.371 13.317 7.346 5.962 17.773 9.007 20.77 9.853 2.998.843.886.843.886.843s-1.182-.166-7.26-1.523c-6.08-1.352-15.284-6.17-17.775-7.734-2.491-1.567-2.869-2.157-2.533 1.14.34 3.296 3.843 10.359 9.458 13.656 5.614 3.298 15.747 4.99 18.364 5.116 2.618.128 1.943.507.76.59-1.182.085-4.096.085-8.865-.462-3.91-.452-9.719-2.35-11.688-3.023-.221-.841-.424-1.657-.517-2.16-.232-1.256-.882-1.07-1.3-.789-.42.276-.652.51-2.042 1.208-1.396.701-1.442-.137-1.488-.556-.047-.423-.325-2.239-.372-3.167-.046-.934-.558-.98-1.206-.7-.651.281-3.763 1.583-4.923 2.099-1.162.51-.093 1.441.51 2.558a157.09 157.09 0 0 0 1.533 2.75s-2.926.792-3.856 1.026c-.928.234-.65.886-.418 1.54.234.649 1.672 3.911 2.044 4.842.37.932 1.208.373 1.208.373l2.924-1.723 1.021 3.91c-.05.063-1.352.31-2.832 1.35-1.478 1.036-1.109 2.372.666 2.892 1.773.518 3.845 1.41 6.136 5.562 2.291 4.155 2.883 11.641 4.288 23.435 1.405 11.787 8.945 17.795 9.98 18.537 1.036.743.444 1.335.444 1.335s-1.035 1.486-.59 3.784c.443 2.296 2.438 3.633 3.473 4.003 1.034.368.74 1.408.74 1.408s-.52 2.52 0 7.12c.516 4.597 4.287 9.787 5.322 10.678 1.034.888 1.11 1.335.962 1.706-.147.37-.814.075-2.07 1.037-1.258.965-2.663 2.299-3.548 3.93-.888 1.633-.592 2.596-.297 4.822.296 2.225 3.549 4.227 3.549 4.227s-.592.149-.738 1.78c-.147 1.631 1.034 3.484 2.514 4.67 1.478 1.187 4.288 1.78 4.288 1.78s.222 1.408.37 2.372c.146.966 1.996 1.926 3.178 2.595 1.183.667 3.474.297 4.436-.149.96-.443 1.625.075 2.216 1.037.593.966.37 4.672.37 6.157 0 1.483-.887 3.04-.37 3.782.518.74 1.923.22 3.328-.594 1.404-.817 1.774-.222 3.032.594 1.257.814 3.252 1.558 3.77 1.483.518-.075.297-1.41.297-2.521 0-1.112.2-3.63.717-4 .244-.176 2.42-.338 4.088-1.044.776-.326 1.774-.665 1.848-1.408.073-.74-1.036-.74-3.474-2.001-2.44-1.26-2.883-2.005-4.435-3.042-1.554-1.037-.813-1.408-.813-1.853 0-.441.738-.963 1.034-1.556.296-.594.147-1.927.147-1.927s1.257-1.26 1.848-1.93c.592-.665 1.331-1.707 2.144-2.372.813-.666 2.069-3.855 2.883-4.895.813-1.036 2.662-2.15 3.77-3.56 1.108-1.41 4.067-3.707 5.768-4.82 1.7-1.112 6.283-3.264 6.283-3.264s-.074 2.744 1.109 4.078c1.182 1.338 2.734-1.035 7.984-4.746 5.25-3.707 9.241-5.041 9.241-5.041s1.109 1.704 2.512 3.485c1.405 1.78 2.663-.076 9.095-8.972 5.073-7.02 11.756-13.438 14.352-15.836.478.212.952.425 1.424.643-.122.342-.256.73-.39 1.153-.591 1.844-1.548 3.024-2.8 5.6-1.254 2.578-3.167 3.167-5.378 6.632-2.21 3.463-2.504 5.818-2.727 9.356-.22 3.536 1.768 4.273 1.768 4.273s-3.241 3.167-4.2 5.525c-.957 2.357-1.473 7.147-1.473 7.147s-.517.22-1.695 2.651c-1.179 2.434-3.317 2.799-6.41 5.895-3.095 3.094-6.556 4.42-8.177 5.374-1.62.962-1.18 1.917-.736 3.17.44 1.251 2.651 2.504 5.23 3.462 2.58.957 3.463.589 5.232.515 1.768-.072.368 1.327-.368 2.061-.736.74-1.694 3.315-1.547 6.189.147 2.875 2.285 2.21 4.938 1.768 2.651-.44 5.745-1.768 5.745-1.768l-.294.813c-.294.81-.442 1.397-.442 3.685 0 2.283.368 3.387 1.032 3.974.664.59 1.99-.66 2.948-.955.958-.3 2.579-1.253 4.936-1.768 2.356-.517 3.24-1.547 3.24-1.547s-.59.734-.736 2.356c-.15 1.623-.074 4.052.296 5.453.366 1.397 1.398 3.093 3.019 4.567 1.62 1.475 1.989.81 3.166-1.03 1.18-1.844 3.61-4.202 3.61-4.202s.147.59 1.768 5.82c1.62 5.232 6.925 9.578 6.925 9.578s5.304-4.347 6.924-9.578c1.621-5.23 1.767-5.82 1.767-5.82s2.433 2.358 3.611 4.201c1.18 1.84 1.549 2.504 3.168 1.03 1.62-1.473 2.651-3.167 3.02-4.566.369-1.401.442-3.832.298-5.453-.15-1.622-.739-2.356-.739-2.356s.885 1.03 3.242 1.547c2.357.515 3.977 1.47 4.934 1.768.959.294 2.287 1.545 2.949.955.662-.587 1.032-1.693 1.032-3.974 0-2.288-.147-2.876-.442-3.685l-.296-.813s3.096 1.328 5.748 1.768c2.65.44 4.787 1.106 4.937-1.768.146-2.874-.813-5.45-1.549-6.189-.737-.734-2.136-2.133-.368-2.06 1.767.073 2.652.44 5.23-.516 2.578-.958 4.79-2.211 5.233-3.462.441-1.253.885-2.21-.736-3.17-1.621-.955-5.085-2.281-8.178-5.374-3.093-3.096-5.232-3.461-6.411-5.895-1.176-2.433-1.691-2.65-1.691-2.65s-.519-4.791-1.475-7.148c-.959-2.36-4.2-5.525-4.2-5.525s1.99-.737 1.768-4.273c-.221-3.538-.514-5.893-2.725-9.356-2.211-3.464-4.128-4.052-5.381-6.632-1.251-2.576-2.21-3.756-2.798-5.6a33.755 33.755 0 0 0-.376-1.113 152.21 152.21 0 0 1 1.9-.834c2.578 2.376 9.29 8.816 14.38 15.858 6.433 8.9 7.69 10.755 9.096 8.973 1.403-1.778 2.512-3.484 2.512-3.484s3.992 1.333 9.241 5.04c5.248 3.71 6.802 6.082 7.983 4.748.625-.703.764-1.87.84-2.764 0 0 3.016.882 6.47 2.092a111.52 111.52 0 0 1 6.082 2.363c4.547 1.925 5.04 2.915 8.657 5.773 3.618 2.857 8.768 2.582 13.647 1.097 4.875-1.481 17.867-5.768 23.072-8.022 5.206-2.258 8.934-4.234 9.483-5.28.547-1.043 1.149-3.959 1.149-5 0-1.045-1.15-2.583-1.535-2.86-.38-.276-.216-1.1-.109-1.758.11-.66-.217-2.638-1.038-3.52-.822-.88-.712-1.206-.603-3.739.232-5.362-3.595-12.122-9.018-14.274 0 0-.145-.624-.585-.992-.436-.366-1.168-.696-1.168-.696s.107-3.083.072-3.745c-.036-.661.256-.584.625-.403.365.182.949.918 1.827 1.139.879.219 1.428-.407 1.612-1.395.18-.99.913-2.973 1.243-3.965.331-.989-.075-1.138-.477-1.247-.402-.112-1.718-.256-2.342-.406-.621-.146-.621-.182-.476-.512.15-.328.367-.842 1.17-2.093.806-1.248.075-1.285-.696-1.539-.768-.258-4.242-1.322-5.194-1.47-.953-.148-1.172.66-1.172 1.064 0 .406.036 2.166.073 2.827.037.66-.584.477-.95.294-.368-.182-1.208-.699-1.866-1.213-.659-.512-1.134-.035-1.392.7-.256.732-1.059 3.745-1.315 4.625-.256.882-.184 1.578.182 1.723.367.15 2.085 0 3.11 0 1.023 0 .438.59.438.59s-1.098 1.798-1.464 2.494c-.365.699-.988.81-1.83.81-.84 0-2.252-.012-2.252-.012s-5.622.211-9.762 3.29c-4.137 3.076-5.304 5.622-5.94 7.105-.637 1.488-1.378 1.167-2.018 1.7-.635.53-2.438 2.441-2.438 3.609 0 1.166.424 1.802-1.378 2.968-1.806 1.168-3.291 6.26-.85 8.914 2.44 2.65 3.396 5.3 4.14 6.576.739 1.273 0 1.803-.639 1.803-.635 0-1.965-1.082-3.075-1.91-1.11-.828-6.715-5.205-9.123-7-2.411-1.799-.637-1.593-.637-1.593s.613.056 2.02-.536c1.402-.593 1.626-1.332.218-1.779-1.403-.443-4.139-2.001-4.876-2.744-.741-.74-1.11-1.557.296-2.299 1.403-.74 4.508-2.744 2.07-3.411-2.442-.67-5.325-1.186-7.691-1.855-2.367-.667-2.589-1.334-2.589-1.334l1.555-2.226s1.256-1.777-.222-2.001c-1.479-.224-5.027-.667-8.28-2.079-6.498-2.814-10.568-7.587-12.077-13.412l.107-.141c1.215 2.401 4.04 6.89 8.301 7.029 5.824.192 6.491-1.628 5.155-3.54-1.336-1.912-2.864-3.633-3.245-4.206-.384-.574-.48-1.34 1.048.096 1.528 1.437 4.437 6.31 13.223 5.738 8.782-.573 8.739-2.296 8.739-2.773 0-1.687-1.789-1.954-2.843-3.011-.55-.552-.885-1.354.888-.677 1.773.677 6.118 1.478 12.032.21 2.333-.498 8.518-3.199 9.117-6.34 0 0-3.927-.214-6.67-1.397-2.745-1.185-4.391-2.155-1.478-1.563 2.914.59 8.572 1.773 13.552.085 2.91-.989 6.672-3.344 6.67-7.653 0 0-5.402-1.14-7.386-1.86-1.984-.719-2.618-1.268-2.618-1.268s7.722 2.45 14.733-1.1c7.008-3.551 7.302-8.412 7.302-9.554 0-1.143-.168-1.482-.168-1.482s-6.374 1.567-11.144 1.523c-4.771-.041-6.25-.465-6.25-.465s13.343-.381 20.053-4.482c6.712-4.1 7.095-12.177 7.095-12.177s-7.602 2.705-12.37 3.257c-4.77.547-7.685.547-8.865.463-1.183-.084-1.856-.463.76-.59 2.62-.126 12.748-1.82 18.364-5.116 5.616-3.3 9.119-10.362 9.458-13.656.338-3.298-.042-2.706-2.534-1.14-2.492 1.564-11.693 6.382-17.772 7.734-6.078 1.356-7.26 1.523-7.26 1.523s-2.336-.112.672-.944zm-240.16 15.328c-.65.373-2.693 1.536-2.693 1.536s-1.069-2.189-1.347-2.84c-.278-.653-.14-.933.23-.933.373 0 1.488-.325 2.37-.417.126-.015.242-.034.344-.058.294.84.682 1.75 1.19 2.664-.032.032-.064.048-.096.064zm81.888 47.952c-1.627 3.043-6.062 6.232-9.315 7.64-3.253 1.408-6.802 1.854-8.28 2.075-1.479.223-.223 2.003-.223 2.003l1.552 2.228s-.22.665-2.587 1.334c-2.366.666-5.248 1.184-7.688 1.853-2.44.665.666 2.669 2.069 3.413 1.405.739 1.035 1.556.296 2.297-.74.743-3.474 2.3-4.878 2.744-1.405.445-1.184 1.189.22 1.781 1.405.59 5.25 1.333 5.25 1.333s-.074.149-2.438 1.93c-2.367 1.779-6.508 2.966-9.242 3.113-2.736.147-7.06.326-12.546.074-5.483-.25-6.113-.376-6.113-.376s-.189-1.83-.568-4.541c-.378-2.709-2.016-6.555-3.277-8.319-1.262-1.766-3.907-5.296-3.907-5.296s.062-.756.251-1.638c.189-.882.062-1.829-.578-3.494-.641-1.668-3.844-4.101-3.844-4.101s-.13-1.794-.13-3.461c0-1.666-1.152-8.202-2.18-11.277-1.023-3.075-6.022-11.149-8.329-14.993-2.307-3.844-3.677-9.543-4.374-13.967-.698-4.425-.418-5.869-.186-7.033.103-.51.32-.975.525-1.388a13.746 13.746 0 0 0 3.709 3.332c6.712 4.1 20.053 4.481 20.053 4.481s-1.479.424-6.248.466c-4.77.041-11.144-1.523-11.144-1.523s-.17.339-.17 1.481c0 1.143.298 6.003 7.304 9.554 7.006 3.552 14.733 1.1 14.733 1.1s-.634.55-2.618 1.268c-1.984.72-7.387 1.86-7.387 1.86 0 4.31 3.762 6.665 6.669 7.653 4.982 1.69 10.638.506 13.553-.084 2.912-.592 1.268.376-1.478 1.563-2.742 1.182-6.669 1.397-6.669 1.397.602 3.14 6.787 5.841 9.119 6.339 5.91 1.269 10.257.467 12.032-.21 1.774-.677 1.435.125.886.677-1.054 1.058-2.843 1.325-2.843 3.011 0 .479-.045 2.2 8.739 2.773s11.693-4.3 13.22-5.738c1.529-1.435 1.433-.67 1.05-.096-.38.572-1.908 2.295-3.244 4.207-1.338 1.912-.67 3.731 5.155 3.539 4.29-.14 7.128-4.691 8.326-7.078l.08.11.235.314c-.544 1.408-1.488 3.712-2.528 5.664zM280 125.104c-.794-1.512-1.214-2.224-1.214-2.224s3.308 1.552 5.278 3.778c1.968 2.228 1.925 3.403 2.22 4.497.294 1.093 0 3.107-.294 4.999-.294 1.89-.294 3.025.085 3.697.376.672.712 1.008.712 1.008s-1.469.378-2.85.925c-1.382.547-3.182 1.05-4.187.21-1.006-.84-1.256-1.43-.627-1.975.627-.547 2.971-1.219 3.266-5.251.288-4.034-1.584-8.15-2.384-9.664zm-18.048 10.971c.755-1.915 1.066-3.744.488-7.667-.485-3.298-1.125-6.122-1.288-9.675 0 0 2.445.536 5.957 3.745 3.509 3.21 4.312 6.51 4.312 8.116 0 1.603-.847 3.566-.98 5.128-.132 1.56.444 2.942.444 2.942s-1.29.533-2.443 1.334c-1.156.804-1.956 1.295-3.733 1.205-1.78-.09-2.847-.891-3.869-1.427-1.022-.536-1.686-.624-1.686-.624s2.032-1.158 2.784-3.077zm-17.12-13.597c3.512-3.208 5.955-3.745 5.955-3.745-.161 3.553-.801 6.377-1.29 9.675-.575 3.923-.265 5.752.49 7.667.757 1.919 2.8 3.077 2.8 3.077s-.665.09-1.69.624c-1.02.534-2.087 1.338-3.867 1.427-1.777.088-2.577-.401-3.732-1.205-1.157-.801-2.445-1.334-2.445-1.334s.577-1.382.443-2.942c-.133-1.56-.976-3.524-.976-5.128.016-1.607.816-4.906 4.32-8.116zm-12.656 19.516c-1.006.84-2.806.337-4.19-.21-1.383-.547-2.848-.925-2.848-.925s.334-.334.712-1.008c.377-.67.377-1.806.083-3.697-.293-1.892-.587-3.906-.293-4.999.293-1.094.251-2.269 2.22-4.497 1.969-2.226 5.278-3.778 5.278-3.778s-.42.712-1.215 2.224c-.797 1.514-2.681 5.63-2.387 9.666.294 4.032 2.64 4.702 3.267 5.25.624.545.368 1.134-.64 1.974zm46.784 33.724c-3.46 1.912-5.434 1.487-5.293 2.901.143 1.416 3.243 2.479 3.243 2.479s-3.174 3.396-5.644 4.955c-2.468 1.557-5.365 2.547-5.365 2.547s-.986.142-.423 1.7c.567 1.556 1.554 2.617 2.328 3.042.776.424 1.202.567 1.202.567s-4.304 4.6-6.21 6.086c-1.905 1.487-2.964 1.981-4.515 2.62-1.553.636-.774 3.183-.424 4.318.352 1.13 1.693 2.688 2.47 2.9.773.213 1.058.778.071 2.337-.74 1.161-3.202 4.25-4.376 5.955l-.072.037c-1.166-1.693-3.662-4.823-4.405-5.992-.987-1.559-.705-2.124.07-2.336.777-.213 2.119-1.77 2.471-2.901.35-1.135 1.128-3.682-.427-4.319-1.55-.638-2.61-1.132-4.514-2.619-1.905-1.486-6.21-6.086-6.21-6.086s.425-.143 1.2-.567c.778-.425 1.765-1.486 2.33-3.043.563-1.557-.424-1.699-.424-1.699s-2.893-.99-5.363-2.547c-2.467-1.559-5.645-4.955-5.645-4.955s3.104-1.063 3.247-2.479c.14-1.416-1.836-.99-5.293-2.9-3.458-1.911-4.587-4.317-4.587-4.317s4.022-1.346 5.998-5.38c.7-1.428.867-2.732.794-3.824l.152.052c6.422 2.09 13.93 2.928 20.64 2.928 6.699 0 14.203-.842 20.612-2.928l.152-.052c-.075 1.092.093 2.396.792 3.824 1.976 4.034 6 5.38 6 5.38s-1.12 2.416-4.576 4.336z" fill="#b96b29"/> - <path d="M299.952 253.6c0-10.856 4.995-17.722 4.995-17.722l-13.589-15.568c-12.942 5.004-24.8 5.308-35.356-.064-10.557 5.372-22.415 5.068-35.354.064l-13.594 15.568s4.997 6.866 4.997 17.722c0 10.858-2.099 18.912-3.326 24.165-1.226 5.253-2.275 15.057.526 22.064 2.8 7.001 5.778 13.131 17.86 18.21 12.081 5.078 18.385 7.702 22.587 11.206 4.203 3.499 6.304 6.3 6.304 6.3s2.1-2.803 6.304-6.3c4.2-3.503 10.504-6.128 22.587-11.207 12.08-5.078 15.057-11.208 17.859-18.21 2.8-7.006 1.75-16.81.525-22.063-1.216-5.248-3.312-13.296-3.312-24.16z" fill="#d4af3a"/> - <path d="M295.68 258.08c-1.704-10.37 4.274-19.502 4.274-19.502l-11.634-13.602c-8.963 5.035-21.437 4.358-32.278-.629-10.839 4.986-23.317 5.664-32.277.629l-11.634 13.602s5.978 9.132 4.27 19.502c-1.707 10.368-5.38 26.778-4.462 33.47.919 6.695 5.645 14.439 10.501 18.508 4.856 4.068 12.075 7.483 17.192 9.32 5.12 1.836 10.109 5.38 12.472 7.219 2.362 1.837 3.936 3.414 3.936 3.414s1.576-1.576 3.94-3.414c2.362-1.839 7.35-5.381 12.466-7.22 5.12-1.836 12.341-5.25 17.196-9.32 4.857-4.068 9.582-11.814 10.5-18.507.912-6.72-2.768-23.12-4.48-33.488z" fill="#b96b29"/> - <path d="M294.56 259.312c-1.685-11.197 3.366-20.216 3.366-20.216l-10.5-11.693c-8.876 4.559-19.663 3.381-31.415-.694-11.75 4.075-22.536 5.251-31.413.694l-10.502 11.693s5.054 9.02 3.37 20.216c-1.685 11.197-4.261 23.878-3.767 31.312.034.51.088 1.03.162 1.555h9.565s.553-.645 1.619-1.099c1.062-.46 1.366-.765 1.366-.765s.203-1.931 1.368-2.337c1.165-.408 1.672-.408 2.128-.408.456 0 .811-.101 1.368-.661.559-.559 2.075-1.93 2.735-3.861.659-1.931 1.065-2.694 1.065-3.965 0-1.269.456-3.3.456-3.3s-.254-.61-1.216-.253c-.963.355-1.115-.61-1.214-1.576-.103-.967-.051-2.946.505-3.861.557-.915.76-1.221.76-1.221l-.406-1.522s-6.078 1.218-7.14-3.507c-1.065-4.725-1.268-7.014-1.42-7.518-.152-.51-.304-.767-1.115-.712-.811.05-2.533-.507-3.749-2.949-1.216-2.438-1.317-3.454-.963-4.42.355-.966 1.014-.609 1.216-.305.201.306 1.824 2.643 2.483 1.981.658-.66.304-.66-.608-2.49-.912-1.828-.608-2.436-.507-3.355.1-.913-.303-2.134-.303-2.641 0-.506.557-.914 1.114-.661.558.254 1.064.66 1.317.966.253.304.355.765.862.46.507-.306.202-1.985.202-2.541 0-.56.659-.967 1.47-.51.81.458 1.215 1.32 1.215 1.93 0 .612.05 1.17.355 1.17.304 0 .659-.915.709-1.526.05-.607.404-1.524.963-.76.558.76.76 1.881.558 3.048-.203 1.166.202.56-.203 2.592-.403 2.033-.606 2.947-.557 4.472.051 1.523.101 2.387.861 4.268.76 1.88 1.366 4.063 2.786 4.114 1.419.05 1.824.05 1.824.05s1.57-3.048 2.787-3.76c1.216-.71 2.937-.815 4.153-.967 1.216-.153 1.722-.509 1.722-.814 0-.306-.405-.405-1.874-.61-1.467-.201-2.683-.56-2.732-1.677-.052-1.116.25-2.083-.71-2.132-.962-.052-3.343-.818-4.204-2.39-.86-1.575-.66-1.932-.557-2.793.101-.864 1.215-2.593 1.925-.966s1.166 1.829 1.773 2.184c.608.358 1.417.459 1.014-.661-.406-1.117-.659-1.827-.558-2.638.1-.816.659-1.168 1.318-1.322.658-.154 2.634-.765 3.647-.966 1.01-.202 1.064-.303 1.064-.303s.1-.712 1.417-1.118c1.317-.407 2.178-.456 3.141-.456.962 0 1.67.152 2.938-.46 1.267-.607 2.278-.708 3.09-.659.809.052 1.418.357 2.026.762.608.408.405.966.405 1.525 0 .56.101.864.962.864.864 0 1.624 0 2.433.304.813.305 1.927.761 1.216 1.625-.707.866-.756 1.83-1.216 1.78-.452-.052-.403.457-.608.763-.201.302-.353.558.156.864.502.304.555.61 1.265 1.269.707.66 1.771 1.372.707 2.44-1.06 1.065-2.936 1.93-2.936 1.93s-1.065.506.15 1.222c1.217.708 1.775 2.184 2.231 2.436.455.255.912.661 1.216.813.303.154.253 1.168.253 1.168s-.658.46-1.57.815c-.912.356-1.875.763-2.734.763-.862 0-1.318 0-.963.813.353.81.963 1.678 1.113 2.132.152.458.356 1.272.356 1.272s1.416.303 2.684.303c1.266 0 1.824.051 4.61-.253 2.786-.302 3.598-.406 6.283-.102 2.687.304 3.088.204 3.799.457.708.255 1.417.613 1.417.613s3.8-.053 5.877-.509c2.077-.457 2.586-1.78 2.283-2.49-.304-.711-.256-1.777-3.902-2.287-3.645-.51-5.115-.306-8.005-.866-2.886-.558-7.397-2.032-8.205-5.638-.813-3.608 2.127-5.132 3.597-5.842 1.469-.714 4.66-1.83 6.13-2.438 1.467-.612 4.155-1.22 6.99-.815 2.835.408 4.456 1.168 5.571.509 1.114-.66 2.027-.154 1.824.862-.2 1.016-1.317 3.101-4.509 4.066-3.19.966-7.038 1.067-9.116.509-2.079-.562-3.647-1.373-4.914-.917-1.266.458-2.685 2.034-1.318 3.912 1.37 1.883 8.361 2.44 10.233 2.642 1.875.206 8.815-.304 10.79 3.15 1.975 3.458.404 7.317-1.924 8.182-2.33.863-4.306 1.424-6.079 1.677l-1.772.253s.81 1.83.81 2.594c0 .761-.102 2.184.76 2.74.862.562 2.08.967 3.548.815 1.469-.15 3.242.864 3.344 2.185.1 1.32.506 3.15.656 5.792.154 2.642 0 4.828 0 4.828s-.1 1.017-.454 1.98c-.356.967-2.18 4.71-2.18 4.71h10.2c.074-.526.128-1.044.164-1.556.416-7.536-2.16-20.208-3.84-31.408z" fill="#1d5e91"/> - <path d="M215.072 297.152c2 5.714 6.122 11.5 12.397 15.278 8.72 5.252 12.486 4.559 20.71 9.91 8.226 5.35 7.73 6.242 7.829 6.242.1 0-.397-.894 7.83-6.243 8.224-5.352 11.99-4.657 20.71-9.909 6.276-3.779 10.396-9.564 12.394-15.278H215.09z" fill="#6d8c3e"/> - <path d="M222.208 253.008c.936.984 1.627 1.283 3.056 1.136 1.43-.152 1.774.888 2.02 2.02.247 1.135.247 3.796 1.282 6.26 1.034 2.464 4.485 2.613 4.485 2.613.096-1.189.51-2.787 1.035-4.091.093-.234.541-1.333-.69-1.333-1.233 0-1.183-.493-1.922-1.675-.738-1.183-2.168-4.336-2.512-6.359-.344-2.02.296-5.027.64-6.11.345-1.085.395-1.824 0-2.021-.396-.198-1.183 0-1.183 0s.296.936-.051 1.083c-.344.15-.64-.493-.885-1.18-.248-.692-.542-.593-1.035-.545-.493.05-.493.495-.147.988.344.49.147 1.377.147 1.377s-1.085-.787-1.528-.985c-.443-.196-1.478.198-1.578.79-.097.589.396 2.117 1.332 2.906.936.79.936 2.416.64 3.156-.295.738-1.676.639-1.972.296a.84.84 0 0 0-1.281 0c-.4.448-.8.704.144 1.68zM221.664 250.4s-.542-.442-.74-.688c-.196-.25-.591-.792-.591-.792s-.1.246-.1.838.64 1.234.64 1.234l.785-.592zM223.728 243.552c.445-.197.789-.298.445-.789-.346-.493-.642-1.035-.987-1.134-.346-.098-.64-.048-.64-.048s.393.888.49 1.43c.097.544.257.736.689.544zM226.304 241.472c-.05.443.05.642.443.443.395-.198.543-.739.344-1.134-.197-.394-.64-.688-.64-.688l-.296-.2c-.032 0 .176 1.136.128 1.568zM229.984 242.064c.048-.493-.149-1.034-.149-1.034s0 .59-.246.938c-.247.344-.197.246.05.542.24.304.287.048.335-.448zM235.776 267.12c.725 1.68 2.566-.952 4.24-3.08 1.672-2.126 1.618-.5 1.394 1.232-.223 1.736.446 3.584 1.116 4.76.67 1.171 1.228.5 1.504-.34.28-.834.503-2.57 1.061-3.41.559-.84 1.115-.112 1.171.614.056.726.948 2.352 1.784 3.3.836.954 1.228-.334 1.506-1.508s.613-2.966.837-3.696c.222-.726 1.003-.11 1.003-.11s.56.56 1.675 1.622c1.112 1.066 1.226-.616 1.338-1.451.11-.842-.168-2.688.166-2.97.335-.278 1.282.394 2.735 1.123 1.45.725 1.395-.673 1.228-1.457-.17-.781-1.003-2.573-2.176-3.58-1.17-1.007-1.337-2.182-.947-2.687.389-.501 1.784-.056 2.675-.167.895-.112 1.341-.222 2.01-.333.669-.113.669-.785.669-.785s-.501-.839-1.45-1.677c-.95-.842-1.504-1.51-2.677-1.792-1.172-.28-2.788 0-2.788 0l-.168-.336c-.167-.334-.501-.334-.725 0-.224.336-.781.784-1.229 1.174-.445.392-.725.616-1.003.447-.28-.167.222-.56.222-.56s.615-.445 1.173-1.567c.557-1.12.725-2.184.278-2.686-.446-.506-1.673 0-2.342 0-.67 0-1.06.11-1.115-.224-.058-.336.669-.166 1.505-.282.839-.11 1.34-1.118 1.618-1.958.278-.84.502-.728 1.005-.224.5.504.95.392 1.059.054.109-.336.558-1.172 1.115-2.014.559-.838.893-2.013.279-2.795-.615-.784-2.12-.675-2.733-.167-.613.501-1.003 1.005-1.17 2.236-.168 1.232-.502.558-.502.166s-.503-1.008-.28-1.51c.224-.501 0-1.064 0-1.064s-.11-1.061-1.283-1.287c-1.173-.225-2.51.056-3.682.336-1.171.28-.949 1.29-.949 1.29s-.893.053-1.841.166c-.948.11-2.064.501-2.957.725-.891.226-1.227.336-1.227.782 0 .45.168 1.178.168 1.178s.724 0 1.115.222c.39.226.166.616-.28.784-.445.17-.613.224-.613.783 0 .561.224.673.669.673.445 0 1.395 0 2.51.501 1.117.503 1.395 1.509 1.283 2.069-.112.562-1.675 1.288-2.456 1.288-.78 0-1.003.17-1.003.672 0 .504.949.45.949.45s.947.054 2.789.276c1.841.226 2.12.618 2.958 1.344.835.728.223.896-.168 1.119-.39.225-1.005.728-1.617.953-.615.223-1.005.672-1.564.781-.558.112-1.953.058-4.518 1.066-2.566 1.006-3.46 4.366-3.46 4.366s.335-.113 1.506-.731c1.172-.614 2.623-1.286 3.962-2.125 1.338-.837 1.338.394.669 1.567-.669 1.174.614.95 1.005.616.39-.338.892-.672 2.174-1.344 1.285-.67.837.392.837.392s-.39.782-.501 2.632c-.112 1.846 1.84.11 2.733-1.064.893-1.175 1.283 0 .613 1.344-.67 1.344-1.952 2.404-2.677 2.404-.727 0-1.283-.782-1.34-1.23-.055-.448.225-1.792-.222-2.126-.448-.335-1.731.056-2.678.614-.949.56-1.173.114-1.395-.39-.224-.504.334-.672.112-1.007-.224-.337-.725 0-1.117.167-.39.166-1.283.672-3.011 1.566-1.732.894-1.618 1.397-1.618 2.685s.32 1.584 1.04 3.264z" fill="#d4af3a"/> - <path d="M252.512 239.104c.363-.23 1.022-.494 1.022-.494s.824-.197 1.581-.298c.757-.1.626-.528.46-.888-.164-.366-.46-.496-1.445-.496-.99 0-1.618.496-2.176.723-.562.232-1.22.397-1.22.397s.133.165.495.693c.352.56.912.624 1.264.384zM256.544 243.104c.395 0 .824-.232.824-.232s.722-.363 1.384-.592c.658-.232.922-.331 1.315-1.122.395-.79-.429-.79-1.579-1.084-1.154-.301-1.714.096-1.843.524-.135.43-.101.922-.562 1.748-.464.816.064.752.464.752zM256.176 244.112c-1.118 0-2.37 1.68-2.832 1.976-.462.296-.198.592-.198.592s.33.693.459 1.35c.134.661.166 1.781.166 1.781s.165.067.823.067c.66 0 1.054-.33 1.681-.792.627-.46 1.12-.627 2.01-.792.891-.163 1.317-.328 2.304-.854.99-.526-.527-1.45-1.58-2.306-1.055-.816-1.711-.992-2.831-.992zM241.28 247.984c.886-.1 1.282-.54 1.282-1.034 0-.492-.448-1.035-1.578-.936-2.776.247-5.467-.748-5.963-3.499 0 0-.936 1.722.789 3.647 1.744 1.92 4.592 1.92 5.488 1.824zM231.824 291.696c.14.245.314.397.49.488h4.252c.725-.203.73-.87.765-1.331.042-.549.463-2.107 1.051-4.935.59-2.824 1.599-4.844 2.018-5.984.42-1.139-.42-1.516-.715-2.235-.295-.715-.757-1.979-.883-2.611-.127-.634-1.135-.549-1.682-.507-.547.041-.632.928-.715 1.771-.083.84-.463 3.33-.882 5.48-.42 2.15-2.859 5.018-3.531 5.648-.674.634-1.22.886-1.682.886-.462 0-1.47 0-1.976.296-.502.296-1.006 1.098-1.05 1.727-.04.633.969.971.969.971s.798-.464 1.093-.843c.294-.38.966-.464 1.638-.589.672-.126.757.125.504.46-.256.32-.176.4.336 1.297zM225.312 291.472c-.322.114-.557.434-.702.7h2.779c-.034-.228-.109-.498-.269-.7-.336-.416-1.232-.208-1.808 0z" fill="#d4af3a"/> - <path d="M229.088 291.392c-.34.184-.749.485-.957.782h2.992c.106-.278.14-.65-.227-.95-.672-.56-1.344-.096-1.808.16zM255.04 290.16c-.326 0-.616.291-1.086.616-.47.326-.613.834-.685 1.234a.272.272 0 0 0 .017.172h1.27a.232.232 0 0 0 .086-.172c0-.365.144-.692.688-1.162.56-.48.048-.688-.272-.688zM257.536 291.536c0-.397-.146-.76-.434-.723-.288.037-.758.544-1.155.833-.22.162-.385.376-.507.538h1.878c.112-.224.224-.464.224-.656z" fill="#d4af3a"/> - <path d="M269.088 277.728c.9-.653.758-.834.792-1.522.035-.69.035-.905-.325-1.158-.361-.256-1.696-.834-2.96-.834s-3.65.29-4.552.904c-.904.618-1.337 2.828-1.337 3.984 0 1.157.18 1.341.505 1.341s.867-.833.867-.833 1.19 1.558 1.914 2.646c.723 1.086.397 1.52.075 2.352-.326.834-1.517 3.043-2.456 3.515-.942.472-1.664.034-2.782-.144-1.119-.182-1.735.144-2.384.795-.65.652-.034 1.162.361 1.162.399 0 .94-.037 1.373.506.301.376.098 1.235-.054 1.73h5.534c.944-.418 1.595-1.714 1.85-2.422.291-.795 1.481-1.844 2.06-2.387.577-.545.65-.907.65-2.102 0-1.195-.325-1.883-.761-2.715-.434-.834-.759-2.03-.615-2.717.096-.736 1.296-1.488 2.192-2.144z" fill="#d4af3a"/> - <path d="M259.984 263.92c.554.9.278 1.07-.517 1.242-.792.172-1.653.31-2.897.208-1.24-.104-1.208.068-1.24.69-.034.622-.141 1.934-.864 2.898-.725.967-1.623.588-2.175.208-.552-.379-.862-.278-1.069.413-.206.691-.587 1.175-1.172 2.208-.588 1.035-.967 1.07-1.381.967-.415-.104-.794-.725-1.208-.76-.415-.036-1.07-.861-1.691-1.864-.621-.999-.932.102-1.344.968-.416.86-.828 1.484-1.623 1.377-.793-.1-1.69-1.585-2.137-2.483-.45-.9-.725-1.76-1.415-1.726-.69.035-1.829 1.484-2.589 1.862-.76.38-.966.243-1.31-.238-.344-.484-.794.172-1.242 1.31-.448 1.14.036 2.102.656 2.414.621.31 1.863-.587 2.692-1.139.827-.55 1.206-.413 2.07-.413.862 0 .794 1.416 1.173 3.484.379 2.07 1.587 2.347 1.587 2.347s.414.345 1.346-1.24c.93-1.587 1.033-3.141 1.932-3.141.896 0 .967.206 1.863 1.448.897 1.242 1.656 2.173 2.173 1.242.516-.933.966-2.312 1.553-2.794.586-.485 1.138-.622.517.275-.622.898-.898 1.863.38 1.485 1.276-.378 6.14-2.347 8.106-2.725 0 0 2.31-.379 4.968-.517 2.656-.14 3.31-.312 4.348-.312 1.033 0 1.068-.104 1.139-.793.067-.691-.483-.552-2.416-.552-1.931 0-3.279.241-4.624.45-1.346.206-1.965.17-1.727-.173.244-.346.623-.588 2.176-.828 1.55-.241 4.727-.416 6.383-.45 1.654-.033 1.137.484.998 1.588-.139 1.102.14 2.726.243 3.762.101 1.033.136 1.345 1.034 2.793.898 1.448 4 2.347 4.9 2.83.897.484.76 0 .724-.863-.035-.861.69-.828 1.483-.38.792.452 2.104.83 3.035 1.072.932.239 1.07.413 1.07.896 0 .484.103 1.554.209 2.556.1 1 .067 1.308-.347 1.93-.415.623-2.173 2.414-2.173 2.414s-.794 0-2.485.417c-1.691.415-2.21 1.208-2.38 1.898-.172.69.311.897.38 1.173.037.152.022.524.002.828h.39a8.82 8.82 0 0 1 .607-.899c.589-.758 2.073-.931 3.037-.483.633.296.641.958.574 1.38h3.864c.522-1.006 1.758-3.412 2.083-4.142.413-.93.655-1.516.69-2.793.035-1.277.171-6.21-.069-6.487-.242-.276.069-1.104 0-2.484-.07-1.38 0-2.416-2.554-2.656-2.555-.242-3.347-1.31-4.21-2.175-.865-.86-.655-2.862-1.343-5.277-.691-2.414-2.381-2.795-5.383-3.382-3.003-.584-5.21-.654-7.452-.446-2.242.208-5.036.518-6.59.377-1.52-.192-1.28.256-.72 1.152z" fill="#d4af3a"/> - <path d="M274.48 291.632c-.262.17-.437.371-.554.547h2.608a1.017 1.017 0 0 0-.256-.755c-.384-.48-1.152-.208-1.792.208zM279.152 291.456a2.37 2.37 0 0 0-.866.723h2.645c.01-.1.006-.206-.014-.305-.08-.416-.88-.864-1.76-.416zM214 293.104c.147.82.34 1.65.578 2.485h82.856a24.46 24.46 0 0 0 .576-2.485H214zM269.84 253.52c2.618 1.742 10.928 1.835 14.83 2.618 3.903.779 3.63 3.764 2.434 5.324-1.194 1.564-6.683 1.75-7.667 1.882.531.368 1.331 1.515 1.331 1.515s.598-.043 2.25-.184c1.65-.136 4.545-.549 6.52-2.203 1.974-1.651 1.835-4.314.092-6.104-1.745-1.792-4.638-1.974-7.577-2.296-2.938-.322-5.234-.552-8.54-1.102-3.303-.55-4.911-1.882-4.911-3.812 0-1.928 1.792-2.937 3.076-3.305 1.285-.367 3.35-.915 5.188-.23 1.836.689 3.995.779 7.622.323 3.629-.461 4.454-2.986 4.454-2.986s-.46.23-2.296.275c-1.836.045-3.17-.779-6.518-.829-3.355-.044-4.549 1.152-6.109 1.701-1.561.552-5.737.967-6.977 3.674-1.232 2.72.192 4 2.816 5.744z" fill="#d4af3a"/> - <ellipse rx="1.563" ry="1.539" cy="241.024" cx="248.064" fill="#b96b29"/> - <path d="M281.632 243.648c-2.069-.182-4.778.366-4.778.366s.504.415 1.194.368c.688-.046 1.93-.092 3.949.274 2.02.37 3.49-.597 3.49-.597s-1.793-.224-3.857-.416z" fill="#b96b29"/> - <path d="M261.984 282.208c-.506-.797-.651-.723-1.232-.216-.578.506-1.16-1.234-1.232-2.318-.072-1.084.434-4.415.434-4.415s-2.824.58-4.343 1.085c-1.518.507-2.966.653-4.197.944-1.23.291-1.881.576-2.532.434-.652-.144-2.028-.218-3.112-.218-1.085 0-1.012.218-2.1 1.302-1.084 1.084-1.374 1.663-2.243 3.692-.869 2.024-1.158 3.905-1.446 6.366-.19 1.611-.503 2.723-.698 3.302h12.973c.155-.416.357-.939.533-1.326.339-.749 1.053-1.224 1.563-1.462.51-.239.954-.239 1.189-.813.237-.58.885-1.056 1.565-1.362.68-.305 1.868-.136 2.958.17 1.086.304 1.46-.442 1.765-.85.305-.408.443-.985 1.022-1.731.578-.75.144-1.43.144-1.43s-.528-.352-1.04-1.152zM282.8 282.56c-.168-.749-.1-.848-.544-.954-.442-.102-1.189-.236-1.834-.507-.644-.272-.577 1.461-.577 1.461s-1.531.166-3.263-.034c-1.732-.204-3.77-1.766-4.486-2.278-.712-.509-1.496-1.664-1.496-1.664s-.544.509-1.088.816c-.544.307-.85 1.394-.95 2.482-.103 1.088 1.257 2.41 1.358 3.499.102 1.09-1.189 3.264-1.835 4.147-.44.606-1.011 1.898-1.327 2.651h6.263c.131-.321.345-.728.672-1.053.643-.646 1.734-.782 1.734-.782s0-.272.237-.848c.235-.578.883-1.258 2.445-1.87 1.565-.612 3.433-.714 3.433-.714s.746-.611 1.292-1.46c.544-.849.144-2.129-.032-2.88z" fill="#1d5e91"/> - <path d="M230.64 351.632c1.166.389 3.346-.466 4.435-1.789 1.088-1.323 1.479-3.349 2.256-4.513.778-1.168 1.343-2.034 1.343-2.034s-.167 1.923-1.199 4.5c-.984 2.458-1.155 5.82-.921 7.26.467 2.878 2.334 3.346 3.424 2.955.827-.294 2.08-1.57 3.23-3.483.363-.606.618-1.445.973-2.118.739-1.4 1.4-3.695 1.726-3.63.72.14.26 1.76-.013 2.85-.545 2.178-1.633 5.37-1.712 7.316-.078 1.945.157 5.446 2.101 5.603 1.946.155 2.957-1.559 4.045-5.527 1.09-3.966 1.325-5.214 1.79-5.214.468 0 .468 2.723.468 3.891 0 .402.016 1.507.174 2.62.302 2.126.923 4.68 1.538 5.241.932.856 1.712.7 1.712.7s.776.158 1.712-.7c.932-.856 1.71-6.694 1.71-7.86 0-1.167 0-3.892.466-3.892.47 0 .7 1.246 1.79 5.214 1.091 3.968 2.1 5.682 4.046 5.527 1.946-.157 2.181-3.658 2.103-5.603-.079-1.946-1.167-5.138-1.714-7.316-.545-2.179.234-2.024 1.714.778.46.875.939 1.947 1.408 2.696 1.037 1.65 2.045 2.638 2.793 2.906 1.088.39 2.957-.077 3.424-2.956.468-2.881-1.712-11.13-1.712-11.13l.935 1.402c.777 1.167 1.166 3.19 2.257 4.514 1.088 1.323 3.27 2.178 4.436 1.789s1.323-2.57.465-6.461c-.856-3.891-4.358-6.069-6.848-9.182-2.291-2.861-4.056-7.898-4.321-8.687-3.135 1.552-5.884 3.314-8.367 5.907-5.15 5.373-6.269 6.716-6.269 6.716s-1.12-1.343-6.268-6.716c-2.501-2.61-5.266-4.374-8.424-5.934-.292.664-2.432 5.474-4.746 8.368-1.15 1.438-2.736 2.525-3.862 3.906-1.31 1.604-2.106 3.53-2.567 5.62-.832 3.872-.672 6.048.496 6.448z" fill="#d4af3a"/> - <path d="M230.496 364.816c1.507-1.326 2.283-2.058 2.283-2.058s1.096-.912.823.824c-.276 1.735-.87 5.298-.503 6.848.365 1.554.547 2.877 2.466 1.735 1.918-1.141 2.374-1.827 3.288-2.784.912-.96 1.872-1.368 1.643.137-.23 1.506-.914 3.79-.594 6.848.32 3.058 1.828 3.514 3.79.912a34.414 34.414 0 0 0 3.743-6.254c.594-1.278 1.781-2.373 1.781 0 0 5.107 1.171 12.536 6.802 14.518 5.633-1.982 6.804-9.41 6.804-14.518 0-2.373 1.184-1.278 1.776 0a34.542 34.542 0 0 0 3.746 6.254c1.963 2.602 3.47 2.146 3.789-.912.318-3.059-.367-5.342-.594-6.848-.227-1.505.731-1.097 1.645-.137.912.958 1.366 1.643 3.286 2.784 1.919 1.142 2.101-.181 2.466-1.735.365-1.552-.229-5.113-.5-6.848-.276-1.736.82-.824.82-.824s.776.732 2.285 2.058c1.504 1.323 3.573 1.403 3.573 1.403s.968-5.361-1.266-8.563c-2.234-3.202-3.054-4.243-3.054-4.243s-1.264-.074-2.232-.445c-.967-.373-1.908-1.072-1.908-1.072v2.966s2.738 2.602 3.378 3.378c.637.773 1.917 2.1.046.82a53.885 53.885 0 0 1-3.425-2.556s-.367 2.694-1.143 3.38c-.774.682-1.872.772-2.326.591l-.456-.184-.138 1.053s1.688 3.15 1.916 4.429c.23 1.278-.138 1.139-.912-.504-.776-1.64-2.282-3.743-2.967-4.883-.685-1.141-1.69-1.919-1.598-.456.093 1.46-.501 4.107-1.005 5.065-.5.96-.82 1.279-.82 1.279s1.047 3.7 1.185 4.384c.139.684.045 1.46-.547.592-.594-.868-2.285-4.519-2.285-4.519s-2.237-.091-2.875-.731c-.639-.64-1.644-3.1-1.644-3.1s-.915 3.142-1.673 4.151c-.757 1.008-2.52 2.015-2.52 2.015s-.127 5.465-.25 6.432c-.128.966-.168 1.385-.577 1.385-.408 0-.452-.42-.578-1.385-.123-.967-.25-6.432-.25-6.432s-1.766-1.007-2.523-2.015c-.755-1.01-1.672-4.152-1.672-4.152s-1.003 2.461-1.643 3.101c-.638.64-2.875.731-2.875.731s-1.69 3.651-2.283 4.519c-.594.868-.685.092-.548-.592.138-.685 1.188-4.384 1.188-4.384s-.32-.319-.823-1.279c-.502-.958-1.096-3.605-1.003-5.065.09-1.463-.915-.685-1.6.456-.685 1.14-2.19 3.241-2.966 4.883-.776 1.643-1.141 1.782-.912.504.228-1.279 1.916-4.429 1.916-4.429l-.136-1.053-.456.184c-.457.181-1.552.091-2.33-.592-.775-.686-1.14-3.379-1.14-3.379s-1.552 1.278-3.424 2.557c-1.872 1.278-.594-.047.046-.821.639-.776 3.376-3.378 3.376-3.378v-2.966s-.937.7-1.905 1.072c-.968.371-2.234.445-2.234.445s-.819 1.041-3.053 4.243c-2.233 3.202-1.265 8.563-1.265 8.563s2.08-.064 3.584-1.376zM257.968 400.512c-1.443-1.688-1.925-2.528-1.925-2.528s-.481.84-1.923 2.528c-1.446 1.685-4.816 4.333-4.816 4.333s.3 4.454 1.926 6.859c1.37 2.032 2.68 3.888 4.813 5.298 2.133-1.41 3.445-3.266 4.815-5.298 1.627-2.405 1.926-6.86 1.926-6.86s-3.376-2.655-4.816-4.335z" fill="#d4af3a"/> - <path d="M255.312 405.968c.133 1.034.045 3.646.674 3.646.628 0 .537-2.614.673-3.646.133-1.034.178-3.512.178-3.512h-1.707c.016-.016.064 2.464.192 3.504z" fill="#b96b29"/> - <path d="M255.968 161.392c-6.026.102-13.094-.73-16.984-2.178-1.382.306-2.765.61-4.147.914 6.411 2.414 11.768 3.35 21.131 3.445 9.365-.095 14.72-1.03 21.13-3.445-1.383-.304-2.767-.608-4.15-.914-3.887 1.442-10.96 2.274-16.991 2.178zM277.888 156.363c-.478-.398-3.22-2.353-3.936-2.71-.715-.36-.158-1.315-.038-1.714.118-.4 3.219-1.277 4.93-1.715 1.706-.438 1.43-.798 1.43-.798s-.996-1.157-7.197-1.834c-6.199-.677-17.088-.518-17.088-.518s-10.891-.16-17.093.518c-6.2.677-7.194 1.834-7.194 1.834s-.278.36 1.432.798c1.71.438 4.808 1.315 4.928 1.715.12.399.677 1.355-.038 1.714-.715.357-3.46 2.312-3.934 2.71-.477.4-.517 1.037.238 1.077.755.038.768.027 2.9-.4 6.382-1.269 12.388-1.624 18.764-1.712 6.373.088 12.378.443 18.762 1.712 2.13.426 2.144.438 2.9.4.752-.04.72-.677.24-1.077z" fill="#d4af3a"/> - <path d="M270.832 158.997c-4.254-.504-6.955-1.055-14.832-.984-7.875.069-10.574.48-14.832.984 2.68 1.075 7.014 1.616 14.832 1.616 7.824 0 12.16-.544 14.832-1.611zM251.36 98.006l3.52-.41-.192 3.026 3.248-.262-.304-2.838 3.488.484.144-2.801-3.664.337.64-3.025-4.032-.037.704 3.062-3.552-.337zM261.776 105.216h-4.362v-3.72a6.43 6.43 0 0 0-1.288-.126c-.39 0-.77.033-1.139.1v3.748h-4.512a4.878 4.878 0 0 0-.192 2.13h11.682c.029-.21.041-.422.041-.634a5.755 5.755 0 0 0-.256-1.498z" fill="#d4af3a"/> - <path d="M256.128 112.051c2.594 0 4.795-1.526 5.576-3.641h-11.155c.784 2.116 2.992 3.641 5.584 3.641zM258.528 101.837v2.557h2.893c-.592-1.13-1.616-2.04-2.896-2.557zM253.712 101.837c-1.266.517-2.294 1.427-2.894 2.557h2.894v-2.557z" fill="#1d5e91"/> - <path d="M259.472 149.3c-1.1-.52-3.5-1.546-3.5-1.546s-2.282 1.124-3.522 1.747c-1.24.62-1.08.44-1.461 1.344-.381.904.038 1.224.579 1.464.54.241 4.464 2.25 4.464 2.25s3.882-1.807 4.82-2.25c.943-.44.766-.882.503-1.567-.256-.68-.784-.92-1.872-1.443z" fill="#b96b29"/> - <path fill="#d4af3a" d="M259.856 150.443l-3.888-1.82-3.744 1.82 3.84 1.955zM255.968 135.437s-.323 1.355-.757 1.93c-.433.575-.761 1.089-.637 1.79.125.699.925 1.166 1.394 1.166.467 0 1.269-.467 1.392-1.166.126-.701-.202-1.215-.635-1.79-.416-.575-.752-1.93-.752-1.93z"/> - <circle cy="141.696" cx="256" r=".722" fill="#d4af3a"/> - <path d="M253.424 137.984s1.248-1.386 1.709-2.264c.462-.877.838-1.662.838-1.662s.375.785.837 1.662c.462.877 1.709 2.264 1.709 2.264s1.755-.925 2.77-4.294c1.017-3.372-.234-6.927-.695-10.759-.46-3.832-.832-10.433-.832-10.433-1.33.761-2.586 1.084-3.792 1.105-1.206-.022-2.464-.345-3.794-1.105 0 0-.368 6.601-.83 10.433-.462 3.834-1.709 7.387-.693 10.759 1.024 3.37 2.768 4.294 2.768 4.294z" fill="#d4af3a"/> - <ellipse rx="3.03" ry="2.925" cy="130.41" cx="255.968" fill="#b96b29"/> - <ellipse rx="2.915" ry="2.814" cy="123.552" cx="255.968" fill="#b96b29"/> - <ellipse rx="2.781" ry="2.683" cy="116.994" cx="255.968" fill="#b96b29"/> - <ellipse rx="1.606" ry="1.549" cy="129.885" cx="255.968" fill="#d4af3a"/> - <ellipse rx="1.546" ry="1.49" cy="123.048" cx="255.968" fill="#d4af3a"/> - <ellipse rx="1.355" ry="1.307" cy="116.512" cx="255.968" fill="#d4af3a"/> - <path d="M255.888 358.464c.187.038.224-.443.26-1.336.036-.89.151-3.04.37-4.3.223-1.263-.334-1.188-.668-1.113-.333.074-.517 1.037-.517 1.595 0 .556.147 3.746.147 4.413 0 .667.222.704.408.741z" fill="#b96b29"/> - <path d="M224.448 383.056c1.346-.854 2.514-1.802 5.565-3.827 3.051-2.027 4.173-4.277 4.173-4.277h-1.077c-.584 0-1.077-.811-1.122-1.62-.046-.812 0-2.476.224-4.412.224-1.934-.313-3.51-.313-3.51s-1.301 1.212-3.276 2.25c-1.974 1.034-2.784.538-2.784.538l-.494-1.977s-.851 1.801-2.064 3.913c-1.213 2.116-4.488 4.458-6.82 6.212-2.335 1.756-4.894 3.603-6.823 4.278-1.93.674-.807 1.576-.807 1.576s1.93 1.933 6.91 2.834c4.982.9 7.362-1.124 8.708-1.978z" fill="#d4af3a"/> - <path d="M241.872 381.12c-1.78-.187-2.843-.86-3.187-2.792-.226-1.26.091-6.077.091-6.077s-.584.495-1.258 1.307c-.673.808-2.2.99-2.2.99s-.224.674-.897 1.753c-.674 1.083-1.527 2.389-3.232 3.467-1.704 1.082-3.679 2.342-4.981 3.422-1.302 1.082-2.827 2.343-4.533 3.287-1.705.945-3.232 2.477-3.816 4.995-.582 2.52-.133 3.331 1.84 3.197 1.975-.136 2.2.045 5.386-.767 3.187-.81 7.718-4.364 11.038-6.48 3.327-2.116 5.749-6.302 5.749-6.302z" fill="#d4af3a"/> - <path d="M250.704 384.032s-1.347-1.707-1.84-3.646c-.494-1.935-1.435-5.76-1.435-5.76s-.45 1.216-1.527 3.507c-1.078 2.297-2.916 2.838-2.916 2.838s-.092.989-1.616 2.925c-1.527 1.934-3.768 3.734-6.06 5.088-2.29 1.347-5.25 3.197-6.867 5.491-1.614 2.296-1.75 4.68-.985 5.715.763 1.034 1.838-.136 3.364-.9 1.527-.765 5.88-1.44 11.893-4.682 6.013-3.24 7.989-10.576 7.989-10.576z" fill="#d4af3a"/> - <path d="M253.312 397.504c1.66-2.475 1.931-8.504 1.931-8.504s-.582-.405-1.392-1.083c-.806-.675-2.377-3.06-2.377-3.06s-.988 2.07-2.064 4.005c-1.077 1.938-1.618 2.612-3.861 4.682-2.243 2.072-5.296 4.098-6.599 6.302-1.3 2.205-.582 6.616.27 8.101.854 1.488 2.065.989 3.32-.224 1.258-1.214 1.662-1.53 3.86-3.42 2.198-1.892 5.253-4.324 6.912-6.799z" fill="#d4af3a"/> - <path d="M233.568 347.024c.883-1.805 1.882-3.994 2.688-5.104a15.91 15.91 0 0 0 1.38-2.382s-2.15 1.958-2.994 3.34c-.844 1.381-1.381 2.725-1.767 4.224-.38 1.496-.19 1.725.693-.078zM242.096 348.56a53.64 53.64 0 0 0 .54-1.984s.346-1.152.154-1.229c-.192-.078-1.076.715-1.69 2.672-.617 1.96-1.537 4.799-1.345 4.914.19.117 1.995-3.183 2.341-4.373zM248.816 353.968c.384-.843.384-.882.384-.882s.691-2.227.691-2.688c0-.459-.23-.996-.805.154-.577 1.154-.614 2.264-.73 2.765-.114.499-.767 2.227-.577 2.38.192.154.653-.881 1.037-1.729zM227.952 374.448l-.9-.54s-.537.72-1.3 1.53c-.763.808-1.618 1.125-2.2 1.892a8.475 8.475 0 0 1-2.872 2.43c-1.39.72-1.93.946-1.66 1.171.27.226 1.212-.315 1.212-.315s.403-.046 2.064-1.035c1.66-.989 2.064-1.53 3.14-2.475 1.078-.946 2.516-2.658 2.516-2.658zM235.232 383.056c.629-.675 1.3-1.126.942-1.488-.36-.358-.808-.314-1.392.18-.582.497-2.243 2.07-3.006 2.746-.763.676-1.39 1.082-2.154 1.666-.763.586-2.424 1.485-3.23 1.934-.808.452-.045.5-.045.5s.629-.319 1.301-.544c.672-.224 2.602-1.08 2.602-1.08s.763-.36 1.795-1.08c1.032-.719 2.558-2.16 3.187-2.834zM243.616 388.864c.538-1.078-.045-.766-.942-.403-.898.36-2.917 2.566-4.084 3.374-1.166.808-2.155 1.125-3.14 1.623-.988.494-.988.763-.941.988.043.226.446.226.851.045.405-.179 1.795-.99 1.795-.99s.584-.178 1.123-.226c.54-.045 1.301-.633 2.514-1.665 1.208-1.036 2.285-1.663 2.824-2.746zM247.52 396.56c-1.482.9-4.038 2.925-4.712 4.277-.675 1.352-1.123 2.296-.9 2.52.225.225.943-.226 1.258-.767.314-.539.988-1.35.988-1.35s2.556-2.518 3.499-3.104c.942-.586 2.469-2.25 2.829-3.24.358-.992.09-1.53.09-1.53s-1.572 2.293-3.052 3.194z" fill="#b96b29"/> - <path d="M207.984 181.248c-1.357-.797-5.005-2.357-8.89-2.686-3.881-.328-6.883.256-10.105 1.126-2.309.624-4.18.72-6.029.224-2.78-.74-4.934-3.25-5.667-6.323 0 0-2.563 3.286.057 6.853 1.26 1.715 2.9 2.787 4.57 3.124 5.438 1.096 10.773-2.224 15.302-2.513 4.35-.283 7.767 2.475 7.767 2.475s1.029.854 2.478.011c1.453-.848 1.874-1.494.517-2.291z" fill="#c52126"/> - <path d="M192.32 338.656s-.534-.053-1.283-.162c-.749-.107-2.354-.643-2.835-.859-.482-.213-1.23-.267-1.712.269-.482.538-4.388 2.843-4.388 2.843h6.474c2.246 0 3.744-2.091 3.744-2.091z" fill="#d4af3a"/> - <path d="M210.544 337.552v-.646l-.862-1.858s-1.007.632-1.988 1.646c-1.262 1.31-2.62 3.152-3.227 3.93-1.078 1.38-2.585 2.68-1.293.474 1.293-2.205 1.724-3.156 2.757-4.626 1.035-1.469 1.811-2.117 1.683-2.205-.13-.086-.95-.214-3.665-.56-2.714-.349-4.395-1.384-5.645-2.12-1.25-.734-3.491-1.944-3.491-1.944s-4.611 1.944-6.336 2.376c-1.725.432-2.759.691-1.079 1.514 1.682.82 3.103 1.08 3.922 1.597.818.521 3.362 1.34 4.914 1.34 1.55 0 4.179.042 3.145 1.124-1.033 1.083-2.198 3.158-3.318 6.31-1.12 3.158-1.163 5.966-1.163 7.35 0 1.384.17 2.765.17 2.765s1.897-2.115 6.983-5.313c5.085-3.2 6.981-4.28 7.93-4.714.947-.43 1.424-.43 1.25-1.64-.17-1.211-.687-4.194-.687-4.8z" fill="#d4af3a"/> - <path d="M229.968 322.096c-.307-.138-.624-.28-.944-.429a1.117 1.117 0 0 0-.234.083c-.596.3-3.699 2.388-4.952 4.418-1.252 2.027-2.505 2.208-1.134 0 1.373-2.211 2.387-3.462 3.46-4.418.415-.368.786-.675 1.084-.91-2.496-1.203-5.206-2.66-7.829-4.486-.339.676-.99 1.876-1.728 2.654-1.073 1.133-3.46 2.09-3.46 2.09s1.908-1.97 2.566-3.463c.417-.952.691-1.977.833-2.593-1.825-1.423-3.574-3.044-5.136-4.904-.318 1.29-1.35 4.433-4.408 7.856-3.996 4.476-11.993 6.742-11.993 6.742s-2.803.3-.536.896c2.267.597 3.878 1.611 8.294.834 4.415-.773 4.712-.954 5.309-1.13.597-.18 2.208-.06 0 .774-2.206.834-7.34 1.608-9.307 1.432-1.97-.177-4.655-.596-1.85.896 2.805 1.493 3.999 2.088 5.728 2.088 1.731 0 2.447.538 4.119.538 1.67 0 2.145-.3 3.34-.538 1.194-.236 1.968.178 1.968.656 0 .477-1.61 1.79-1.55 5.072.06 3.282.298 5.43.595 6.381.301.959 1.016 2.507 1.493 3.405.477.894.658 1.787 1.133-.12.477-1.91 1.55-4.654 1.97-6.502.417-1.85.655-1.91.835-2.864.177-.956 1.193-1.67.715.059a142.326 142.326 0 0 0-1.371 5.49c-.36 1.551-1.194 4.414.236 2.147 1.432-2.266 6.802-8.293 7.696-9.367.895-1.073 1.612-2.09 2.268-2.982.656-.896 2.505-2.09 3.401-3.402.81-1.187 3.181-3.499 4.199-4.326-1.519-.645-3.12-1.32-4.81-2.077zM155.792 184.368c.142 3.288 3.782 9.58 5.853 12.94 2.07 3.36 2.64 4.714 2.285 4.93-.359.215-1.215-1.5-2.357-3-1.143-1.5-3.354-5.003-5.21-7.648-1.856-2.644-4.568-8.934-4.925-9.507-.356-.571-.5-.93-1.427-.216-.928.715-2.712 7.65-.57 12.368 2.141 4.717 5.353 8.146 6.708 9.79 1.357 1.645 3.14 4.218 2.854 4.434-.285.213-.784-.43-2.425-2.145-1.642-1.716-4.356-4.647-6.138-6.79-1.45-1.742-3.416-5.278-4.106-6.542-.259-.478-.593-.348-.843-.099-.587.59-1.528 1.962-1.118 5.71.571 5.22 3.283 8.221 5.709 10.866 2.427 2.645 4.854 4.86 4.497 5.218-.357.358-2.854-1.86-4.568-3.503-1.712-1.643-5.925-5.716-6.851-6.862-.93-1.142-2.283-.573-2.213 3.931.07 4.504 5.067 9.079 7.136 11.581 2.072 2.5 4.64 4 4.427 4.5-.214.502-2.284-.783-3.64-1.714-1.355-.93-6.424-4.218-7.422-4.933-.998-.714-1.5.643-.214 4.933 1.284 4.286 4.996 7.718 7.208 9.29 2.212 1.572 5.78 3.5 5.566 4.004-.213.5-1.712-.144-3.782-1.146-2.07-1-4.567-1.93-6.352-2.428-1.786-.501-1.784.784-1.784.784s-.359 3.644 2.283 6.576c2.641 2.93 5.638 4.075 8.493 4.572 2.854.501 3.283.645 3.21 1.076-.07.428-.356.499-.998.499-.641 0-3.283.286-5.71.286s-3.71.57-3.71 1.643c0 1.074-.072 2.503 3.568 4.932 3.638 2.432 7.707 2.788 9.42 3.147 1.712.357 1.783.5 1.428 1.001-.357.5-1.141.43-3.855.714-2.712.285-4.353 1.358-4.71 2.072-.357.715.214 2.86 2.429 4.36 2.21 1.502 5.065 2.003 9.348 1.717 4.284-.288 5.354-.359 5.496.358.144.714-1.283.93-3.425 1.288-2.141.355-3.784.355-4.997 1.357-1.214 1.002-.285 3.074 1.784 4.574 2.069 1.501 7.21 1.501 9.35 1.359 2.141-.143 5.424-.93 5.639-.359.214.572-1.57 1.432-3.781 2.216-2.214.79-2.858 1.287-3.283 2.218-.43.928-.072 1.786 2.568 2.786 2.64 1.001 6.494 1.001 8.493.072 2-.928 3.068-1.288 3.427-.928.355.36 0 .715-.429 1.216-.427.5-2.14 1.857-4.354 2.43-2.212.573-2.427.573-3.212 2.358-.784 1.788 1.212 3.22 5.21 3.364 3.998.14 9.35-1.43 11.063-2.434 1.714-1.002 2.355-1.214 2.64-.856.285.357.215.571-.641 1.213-.858.646-3.57 2.574-4.925 2.933-1.355.356-1.5 1.356-1.5 2.286 0 .928-.356 2.787 3.212 3.646 3.57.858 7.779.216 11.633-2.502 1.242-.874 1.964-1.595 2.37-2.22-.312-3.65-.147-6.16.291-8.473-.757-.08-2.192-.297-3.66-.888-2.141-.856-2.997-2.857-3.498-3.931-.501-1.072-1.213-1.072-2.07-.787-.858.29-1.714.645-2.927.574-1.213-.07-3.782-.715-5.638-2.933-1.856-2.216-1.501-4.358-1.572-5.433-.072-1.072-1.784-.285-2.64-.285-.857 0-3.355-.358-5.636-1.93-2.285-1.572-2.285-3.716-2.5-4.576-.214-.856-1.142-1.427-1.856-1.715-.712-.285-1.856-.57-3.427-1.857-1.57-1.287-2.139-3.788-2.211-4.645-.07-.858-1-.93-4.211-2.573-3.211-1.643-2.927-5.075-2.783-6.432.143-1.36 1.64-2.5 1.64-3.005 0-.5-1.07-.641-2.14-1.286-1.07-.642-3.783-1.715-3.853-5.717-.072-4.003 2.57-4.432 2.57-4.432s-.501-.216-1.572-.858c-1.07-.644-3.995-2.644-3.995-5.004 0-2.359 1.069-3.43 1.854-4.004.786-.57 2.927-1.142 2.927-1.142s-1.357-.86-1.928-2.717c-.571-1.859-.786-4.144.57-5.789 1.356-1.644 3.64-1.644 4.854-1.644s2.283.643 2.712.288c.429-.359.499-.644.07-1.573-.427-.928-.499-3.218-.142-4.002.358-.787.429-2.358 3.499-3.36 3.067-1 6.278 1.072 7.278 1.645s.572-.789.572-1.787c0-1-2.07-3.503-4.426-7.077-2.355-3.574-3.426-5.434-6.067-10.866-2.642-5.432-4.355-12.436-4.71-14.224-.357-1.787-1.071-.93-1.071-.93s-.714.287-2.355 4.431c-1.639 4.147-1.923 7.936-1.781 11.221z" fill="#d4af3a"/> - <path d="M209.632 257.472c-1.84-.093-4.229-1.102-6.067-3.773-1.837-2.67-4.597-3.317-9.378-3.225-4.78.092-6.987-2.208-8.182-5.522-1.195-3.317.184-7.093 5.056-9.486 4.872-2.394 7.08-5.064 7.262-9.205.184-4.144-4.87-9.301-9.928-15.101-5.057-5.8-9.01-13.997-9.01-13.997s-1.47 1.935-1.47 3.867c0 1.933.735 3.959 0 4.51-.736.554-1.011-.826-3.952-2.116-2.942-1.29-5.333-1.472-7.171.645s0 5.8 1.654 7.55c1.656 1.749 3.034 3.04 2.575 3.685-.46.645-2.943-1.013-3.77-1.566-.827-.554-2.758-2.67-5.608-2.394-2.85.275-3.862 1.104-4.137 3.5-.276 2.393 2.574 4.508 4.412 5.431 1.839.919 2.575 1.749 2.114 2.115-.46.37-.92 0-1.747-.273-.826-.277-3.125-.552-4.595 0-1.472.552-3.863 2.576-1.656 5.064 2.206 2.486 6.803 3.406 7.723 3.589.918.184 1.379-.093 1.47.643.091.739-1.931.739-4.413.832-2.481.093-3.217 2.485-2.85 4.326.369 1.842 4.505 3.866 6.802 4.235 2.301.368 3.127 0 3.31.644.186.643-.274.92-1.562 1.29-1.287.366-3.77.644-4.23 2.67-.46 2.025-.551 2.945 1.38 4.697 1.931 1.749 5.058 1.472 5.976 1.288.92-.182 2.024-1.198 2.942-.275.919.918-.828 1.656-2.392 2.762-1.563 1.107-1.47 3.224 1.196 4.697 2.665 1.475 5.332.919 6.435.552 1.102-.366 2.574-2.117 3.309-1.013.736 1.104-2.298 1.474-3.586 3.039-1.286 1.563-.827 4.14 1.747 5.705 2.575 1.567 6.803.461 7.54-.182.734-.643 1.652-.918 2.204-.366.55.548-.275 2.022-.827 3.312-.55 1.29-1.563 5.064 2.3 6.537 3.862 1.472 7.354-1.841 7.998-2.488.643-.643 1.286-.736 1.838-.459.55.278.277.829-.184 1.474-.46.643-1.47 3.404 1.286 5.34 1.884 1.32 3.938 1.223 5.052 1.03.574-2.156 1.321-4.46 2.083-7.687h-.576c-.368 0-.442.552-.442.773 0 .22.11.404-.222.404-.331 0-.368.184-.847.517-.478.331-.92.735-1.179.552-.257-.184.995-.848 1.327-1.253.332-.406.995-1.032 1.032-1.472.036-.443.257-.7.92-1.252.206-.172.368-.376.496-.575.443-2.147.876-4.66 1.272-7.704a60.93 60.93 0 0 0 .478-5.829l-1.208-.062zM131.056 200.08c4.107 8.309 9.907 12.987 9.907 12.987s-.761-2.064-1.099-3.483c-.334-1.42-.074-3.027-.074-3.027s-1.456-1.867-4.145-6.013c-2.69-4.146-4.109-10.27-4.109-10.27s2.502 6.124 4.445 9.376a50.246 50.246 0 0 0 4.185 5.9s.783-2.873 1.344-3.024c.56-.148.972.3 1.456.933.487.635.9.576.9.576s-.664-1.371-1.685-3.016c-.464-.747-1.141-1.553-1.62-2.309-1.53-2.419-4.831-7.016-6.524-11.614-1.693-4.6-5.397-16.133-6.042-19.523-.643-3.387-1.288-1.533-1.933.97-.643 2.5-1.53 6.049-.966 11.372.563 5.323 1.851 11.856 5.96 20.165zM136.368 222.512a144.92 144.92 0 0 0 3.786 2.66s-.357-.833-.583-1.833c-.225-1-.321-3.059-.321-3.059s-1.802-1.58-3.056-2.675c-1.255-1.096-2.832-2.514-5.952-6.38-3.12-3.867-.612-1.545 1.93 1.226 2.54 2.771 7.4 6.797 7.4 6.797s0-.064.031-.9c.034-.838.291-1.45.741-2.03.451-.58.213-.662-2.526-2.758-2.738-2.098-9.828-10.083-12.727-14.845-2.9-4.76-6.041-11.213-6.041-11.213s-1.53 9.52 4.27 20.007c5.798 10.485 11.518 13.873 13.048 15.003zM166.8 282.56c3.178-1.232 2.307-4.366 2.307-4.418 0-.05-1.949.618-3.74 1.284-1.796.67-6.204 1.952-7.946 2.001-1.741.051-1.741-.203-1.794-.46-.051-.255 1.333 0 3.843-.461 2.512-.463 6.92-2.773 7.688-3.285.768-.515.666-.62-.46-.722-1.128-.1-2.101-.616-2.512-.973-.408-.36-1.588.156-4.458.824-2.872.666-8.818 1.693-13.38 1.693-4.56 0-8.814-.77-9.532-.925-.718-.153-1.486.258.718 3.956 2.204 3.694 9.944 5.697 15.325 5.644 5.381-.054 10.763-2.928 13.941-4.158zM152.496 274.928c5.552.046 7.622-1.603 7.622-1.603s0-.283-.752-1.413c-.753-1.13-.61-3.062-.61-3.062s-1.32.235-3.625.566c-2.305.33-4.987.66-7.952.14-2.965-.518-1.693-.847.66-.566 2.353.284 6.868-.566 8.327-1.083 1.458-.518.847-.989-.14-1.321-.988-.327-3.67-2.026-3.67-2.026s-6.727.848-12.985.144c-6.257-.71-10.211-2.31-11.481-2.5-1.27-.188-1.224.332-1.224.332s-.33.563 1.833 3.954c2.165 3.396 6.4 5.61 9.976 6.646 3.576 1.038 8.469 1.746 14.021 1.792zM151.072 261.92s-.235-.33-.565-1.462c-.33-1.132.611-1.978.611-1.978s-1.27-.376-5.41-.896c-4.142-.518-4.375-.848-6.918-1.414-2.54-.565-4.233-1.319-4.187-1.602.047-.283.847.142 2.352.706 1.504.566 7.858 1.225 10.54 1.603 2.681.376 4.187.66 4.657.376.47-.283 2.117-.707 2.117-.707s-1.13-.327-2.541-.565c-1.413-.235-2.682-.848-3.434-1.367-.753-.518-.988-.662-4.376-1.035-3.388-.376-6.116-1.462-12.187-3.677-6.067-2.216-10.633-4.852-11.856-5.841-1.224-.989-1.13-.282-.8.989.33 1.273.282 2.873 3.341 6.454 3.058 3.582 4.563 5.136 12.278 7.966 7.72 2.826 16.378 2.45 16.378 2.45zM128.256 243.12c6.822 4.806 14.818 6.571 16.514 6.784.38-.445-.413-2.042-.048-3.016.441-1.166 1.177-1.178 2.824-1.272 1.646-.098.564-.426.188-.426-.376 0-.47-.046-3.2-.753-2.73-.704-5.504-1.131-9.267-2.546-3.765-1.413-4.893-2.45-4.8-2.733.095-.281 1.741.898 5.224 2.216 3.482 1.319 7.528 1.837 9.74 2.31 2.21.468.281-.473-.754-1.086-1.035-.614-2.495-2.875-2.495-2.875s-2.446-.424-6.444-1.648c-4-1.225-7.34-2.593-10.68-4.477-1.148-.65-2.258-1.486-3.455-2.345-2.29-1.642-4.59-3.32-5.485-3.968-1.366-.989-.94-.189-.8.424.141.613 1.082 3.441 3.245 6.55 2.165 3.11 2.87 4.053 9.693 8.861zM127.136 229.6c6.728 5.326 12.514 6.971 13.502 7.397.988.425.895-.141.706-.706-.189-.566-.331-2.401-.331-2.401s-2.4-1.368-5.082-2.924c-2.681-1.556-5.645-3.675-7.62-5.04-1.977-1.366-.8-1.272-.19-.756.612.518 3.341 2.121 6.07 3.817 2.729 1.698 6.868 4.147 6.868 4.147s.095-.894.66-1.46c.564-.567 1.974-.423 1.974-.423s-.706-.707-1.13-1.366c-.422-.663-2.635-1.367-5.128-2.547-2.494-1.176-6.965-4.474-10.257-7.255-3.293-2.779-9.693-9.753-10.116-10.32-.424-.566-.705-.47-.753.235-.047.706-.282 1.178.424 4.383.71 3.203 3.673 9.894 10.403 15.219zM150.944 179.248c.763 1.584 1.598 2.78 2.2 3.813a55.488 55.488 0 0 1 1.42 2.568s.183-.549.04-1.485c-.145-.936-.289-2.234-.036-3.78.133-.83.312-1.655.267-2.391-.053-.837-.333-1.56-.446-2.037-.216-.902-1.186-4.826-1.655-7.597-.467-2.773-.97-6.733-.934-10.227.035-3.493.54-1.73.54-.035 0 1.694.178 4.286.718 8.281.539 3.997 2.228 10.082 2.228 10.082s.108-.936.612-2.269c.504-1.333 1.33-2.843 1.977-4.5s.42-1.933.42-1.933-2.362-11.306-2.983-16.65c-.622-5.342-1.616-19.386-1.616-19.386-3.456 3.477-6.026 12.628-6.483 21.282-.343 6.52.71 12.555 1.016 15.002.605 4.844 1.446 8.627 2.715 11.262zM143.28 197.088c.107-2.56.696-4.498 2.347-5.066 0 0-1.46-2.561-2.737-6.212-.872-2.501-1.594-5.708-1.96-8.168-.903-6.06-1.626-12.301.18-2.08 1.805 10.219 3.973 13.836 3.973 13.836l2.62 4.252c-.388-1.868-.449-3.18-.35-5.22.1-2.04.36-4.803.981-6.99 0 0-3.161-6.33-5.147-13.93-1.985-7.6-3.121-14.51-3.161-18.63-.181-3.98-.27-5.518-.27-5.518s-3.25 2.441-4.334 14.832c-1.084 12.392 2.168 24.241 3.792 28.764 1.626 4.52 4.066 10.13 4.066 10.13zM178.736 291.584s-.512-.358-2.05-1.334c-1.537-.973-1.075-3.901-1.075-3.901s-.41.307-1.539 1.078c-1.128.77-2.408 1.64-3.946 2.258-1.537.617-2.307 1.027-3.28 1.334-.974.309-.716-.1.103-.565.819-.46 1.077-.718 3.128-1.539 2.048-.822 6.149-4.416 6.149-4.416s-.975-.102-2.666-.153c-1.691-.052-3.845-.924-3.845-.924s-1.69 1.54-8.507 4.464c-6.818 2.928-12.61 3.696-12.61 3.696s.719 3.493 3.999 4.674c2.717 1.18 6.459 1.9 13.789.155 7.328-1.744 12.35-4.827 12.35-4.827zM187.712 298.576c.565-2.878-1.077-4.88-1.077-4.88s-.358.205-1.382 1.13c-1.026.924-2.514 2.67-5.383 4.105-2.868 1.435-3.896 1.335-1.128-.155s6.818-5.698 6.818-5.698l-1.075-.41c-1.079-.412-2.923.306-10.611 4.926-7.688 4.62-12.2 4.776-12.2 4.776s3.433 4.158 12.763 3.85c9.33-.305 12.712-4.772 13.275-7.644zM205.344 295.232s-1.026 1.435-2.41 2.36c-1.384.925-5.073 1.49-5.073 1.49s-.154.41-.87 1.334c-.719.925-2.308 3.133-3.948 4.314-1.638 1.18-4.203 1.948-4.357 1.64-.153-.31 1.487-.924 3.076-1.9 1.588-.972 3.024-2.772 4.1-4.003 1.077-1.233-.46-1.027-.46-1.027s-1.948.05-3.743-.102c-1.793-.157-1.435 0-1.947.873-.512.874-1.23 1.642-2.563 3.183-1.626 1.878-3.17 3.58-4.715 5.438-1.024 1.234-.256 1.592-.256 1.592s.462.771 4.612 1.232c2.564.286 5.34-.037 8.261-1.722 1.81-1.05 3.677-2.712 5.581-4.796 4.968-5.439 4.712-9.906 4.712-9.906zM207.552 306.464c-1.026 1.336-1.59 1.9-1.59 1.9s.718-2.207 1.332-3.234c.328-.548.684-1.068.948-1.43a27.64 27.64 0 0 1-1.666-4.988c-.456 1.477-1.875 5.81-3.638 8.627-2.15 3.437-4.05 4.67-2.82 5.592 1.23.925 3.639 1.131 6.357-.205 2.624-1.288 3.383-3.537 3.755-5.353a26.42 26.42 0 0 1-1.292-2.23c-.34.209-.832.601-1.386 1.321z" fill="#d4af3a"/> - <ellipse rx="1.907" ry="1.747" cy="169.2" cx="206.944" fill="#d4af3a"/> - <path d="M202.928 165.904c1.74-.042 2.677-.866 4.598-.68 2.268.22 5.34 1.542 9.07 3.523 2.918 1.319 6.769 1.978 10.478.914 1.038-.3 2.065-.867 3.059-1.427 4.536-2.57 3.438-7.634 3.438-7.634-3.347 2.414-7.485 3.712-11.339 3.45 0 0 .293.22.95.881.66.661 1.864 1.429 1.464 1.763-.398.332-2.048-1.25-3.438-2.276-1.39-1.03-3.438-2.423-6.95-3.447-3.512-1.03-7.463-1.1-10.096.363-2.634 1.47-2.853 3.306-2.487 4.039.202.411.687.545 1.253.531zM252.224 202.88c-.805-.22-2.194-.44-4.022-2.128-1.83-1.686-6.22-6.531-6.733-7.411-.512-.882-.293-1.688.952-2.203 1.243-.512 2.121-2.128 2.121-2.128s-2.705-1.03-4.534-2.35c-1.83-1.32-6.074-5.137-6.66-6.09-.585-.954-.292-1.101.586-1.394.88-.294 1.1-.882 1.1-.882s-1.976-1.246-3.804-2.713c-1.83-1.467-4.316-3.89-4.316-3.89-2.741 1.101-7.042.637-9.365.221-4.098-.733-7.096-2.422-7.096-2.422s-.147.66-.66 1.908c-.511 1.247-2.414 1.983-4.316.733-1.903-1.246-1.464-3.961-1.464-3.961s-1.536-.954-4.682-2.128c-3.145-1.175-5.705-1.322-8.267-.148-2.562 1.173-3.805 4.696-3.805 7.34 0 2.64 1.392 1.54 1.683 1.17.293-.366.879-2.274 4.098-2.786 3.22-.516 6.146 1.027 9.803 4.033 3.658 3.011 4.463 3.23 6.291 5.138 1.83 1.909.367 2.934-2.779 3.963-3.145 1.029-7.17-1.027-7.317-.952-.604.302 1.357 3.1 4.07 4.158 2.714 1.056 6.183.372 8.88-.71 1.83-.733 2.17.024 2.706.587 2.972 3.123 3.744 6.05 4.244 9.615 1.518-.468 2.57-1.984 2.78-3.23.101-.596.293-1.908 1.317-.954 1.024.955 1.829 6.236 1.829 8.659 0 2.422-.733 5.651-.733 5.651l.733-.074c.44-.073 1.317-.587 2.488-1.246 1.17-.662 1.243.074 1.243 1.394 0 1.32.439 3.816 2.195 8.292 1.757 4.477 4.317 5.943 4.317 5.943s.514-.88 1.026-2.64c.51-1.762.878-5.21.878-8.22 0-3.009-.805-9.467-.805-9.467s3.66 4.477 7.463 5.58c3.805 1.1 7.61.44 9.219-1.396 1.605-1.833.14-2.64-.664-2.862z" fill="#d4af3a"/> - <path d="M227.2 214.464s-1.155 2.555-1.786 3.466c-.63.91-.91 1.052-.91 1.052s1.155.98 2.837 1.504c1.681.527 3.187.84 3.187.84s-1.893-2.593-2.557-4.412c-.665-1.821-.771-2.45-.771-2.45zM250.048 212.96c-.562-1.435-.91-2.242-.91-2.242-2.335.468-6.764-.628-8.687-1.785 0 0 1.752 3.57 3.503 4.797 1.752 1.225 1.996 1.296 1.996 1.296s-1.75.281-4.097-2.03c-2.346-2.313-3.397-4.975-3.397-4.975s.525 6.165-.42 9.945c-.946 3.781-1.156 4.272-1.156 4.272s4.971.876 10.506-.665c5.532-1.543 5.952-2.032 5.952-2.032s.664-.175-.21-1.33c-.875-1.153-2.52-3.816-3.08-5.251z" fill="#d4af3a"/> - <path d="M240 199.424c-1.702-1.957-1.872-2.426-1.872-2.426s-.595.596-.086 1.448c.51.85 2.936 2.976 4.595 3.912 1.66.936 3.318 1.234 3.318 1.234l-.085-.34s-4.17-1.871-5.87-3.828zM233.248 212.272s-.426-7.744-.426-8.893c0-1.149-.723-.851-.723-.851l-.85.382 1.665 11.324c.18 1.219.78 1.115 1.088 1.06-.608-.315-.728-2.668-.754-3.022zM222.8 178.752c-.632-.63-2.053-1.102-.683.422 1.368 1.527 3.16 3.424 3.685 5.005.528 1.58.843 3.527-.052 3.106-.896-.423-1.528-.423-2.475-1.211-.949-.79-2.737-2.11-3.475-2.317-.738-.211-2.053 0-1 1.157 1.053 1.16 2.213 2.267 4.213 3.739 2.001 1.475 3.16 2.105 4.213 2.843 1.052.74 2.105 1.37 2.105 1.37s-.949-6.319-2.686-9.11c-1.738-2.79-3.213-4.37-3.845-5.004zM188.656 284.592c-1.283.973-2.965 1.371-2.965 1.371s-.797-.041-.797.267c0 .31.93 0 1.903-.176.973-.177 2.3-1.152 2.787-1.505.486-.355 1.195-.799.973-1.42-.221-.62-.62.489-1.901 1.463zM199.68 290.496c-.266.307-2.389 1.904-2.389 1.904s-.664.442-1.373.707c-.707.267-.883.667-.883.667s.133.175.883-.043c.752-.224 2.967-1.774 3.672-2.395.708-.622 1.02-.797.754-1.062-.264-.266-.397-.088-.664.222zM154.992 211.088c.397.483.88 1.144 1.1.923.222-.219-.044-.44-.572-1.057-.528-.616-.835-.925-.835-.925s-.747-1.19-1.189-1.632c-.44-.44-1.1-.661-.264.352.837 1.016 1.365 1.853 1.76 2.339zM151.6 218.528c.483.443.923.837 1.451 1.41.528.572.925 1.188 1.232.881.309-.309-.792-.968-1.275-1.587a7.997 7.997 0 0 0-1.498-1.498 10.63 10.63 0 0 0-1.364-.881s.97 1.235 1.454 1.675zM152.864 230.544c.84.885 2.078 1.15 2.256.798.178-.355-.088-.64-.794-.992-.702-.352-1.848-1.1-2.42-1.497-.572-.399-1.144-.839-1.541-1.234-.395-.397-.864-.753-1.011-.619-.148.136 1.166 1.549 1.563 1.771.398.221 1.107.887 1.947 1.773zM155.296 240.16c0-.354.086-.53-.62-.576-.708-.043-1.682-.174-1.682-.174s-1.372-.533-1.461-.268c-.088.268 1.15.8 1.681.888.532.09 1.194.266 1.503.44.312.176.579.042.579-.31zM156.352 250.608c-1.502 0-2.787-.357-2.875-.134-.088.222.707.577 1.46.841.754.267 2.17.355 3.143.399.973.043 1.15-.176 1.106-.663-.045-.49-1.328-.443-2.834-.443zM168.128 262.048c-.22-.22-.752-.043-1.594.133-.838.179-2.21.445-3.008.401a134.62 134.62 0 0 0-2.521-.09l-.973.222c0 .222 1.282.177 3.14.398 1.858.222 3.097-.176 3.982-.31.886-.133 1.196-.53.974-.754zM172.992 270.192c-.93.355-1.592.442-2.3.442-.708 0-2.39.31-2.39.31s-.796.09-.664.4c.133.309.399 0 1.104-.09.71-.09 1.24 0 2.479-.043 1.238-.045 1.947-.357 2.699-.488.752-.134 1.592-.533 1.195-1.02-.398-.485-1.193.134-2.123.489zM182.464 276.352c-.531.533-2.566 1.906-2.566 1.906s-.399.31-1.196.708c-.796.399-.752.578-.619.799.133.22.62-.31 1.061-.488.442-.178 1.902-1.155 2.654-1.771.752-.624 1.725-1.11 1.548-1.552-.175-.444-.35-.132-.882.398zM166.704 196.592s.176.405 1.81 2.45c1.635 2.043.76.115.35-.407-.41-.528-2.802-3.91-3.62-4.846-.815-.935-.932-.467-.524.115.41.584 1.984 2.688 1.984 2.688zM163.264 207.088c.234-.234-.293-.467-1.226-1.634a536.767 536.767 0 0 1-2.801-3.56s-.527-1.108-.701-.993c-.174.117.642 1.867 1.4 2.629.76.758 1.75 2.217 2.277 2.859.526.641.817.933 1.051.699zM167.792 226.768c0-.571-1.848-.485-2.683-.66-.837-.177-2.333-.486-2.333-.486s-1.762-.308-1.805-.088c-.045.218.352.439 1.32.618.968.174 2.421.616 3.522.792 1.1.176 1.979.398 1.979-.176zM163.264 216.144c1.226.992 2.042 1.46 2.685 1.81.641.348 1.166.876 1.518.467.35-.411-.293-.701-1.342-1.168-1.051-.467-1.576-.875-1.576-.875s-.584-.292-1.11-.584c-.527-.292-1.402-.642-.175.35zM173.824 209.136c-.76-.642-1.402-.995-1.402-.995s-.932-.875-1.108-.584c-.175.294 1.05 1.168 1.633 1.693.584.526 1.635 2.044 2.16 1.752.525-.292-.526-1.224-1.283-1.866zM166.928 236.56s-1.02.264-1.682.442c-.662.177-.707.49.488.49 1.196 0 1.682-.311 2.876-.535 1.195-.221 1.595-.354 1.416-.752-.176-.4-.797-.266-1.284-.133-.486.133-1.814.488-1.814.488zM168.784 246.496c-.088.224.84 0 1.46-.22.618-.223 1.902-.886 2.654-1.108.753-.22.753-.355.753-.798 0-.442-.798-.09-1.77.222-.972.31-2.212 1.286-2.212 1.286s-.797.397-.885.618zM181.568 252.512c.886-.534 1.064-.931.752-1.198-.309-.264-.574-.221-1.282.355-.708.576-2.08 1.55-2.08 1.55s-.707.267-1.238.533-1.195.709-1.018.974c.176.266 1.284 0 1.858-.488.576-.486 2.125-1.196 3.008-1.726zM187.6 260.496c.354-.312 1.414-.662 1.902-1.02.487-.354.797-1.417.399-1.55-.399-.132-.62.442-1.46 1.061-.841.623-3.716 2.527-3.716 2.527l-.754.31c-.797.309-.441.533.223.443.664-.091 1.105-.091 1.902-.707.795-.62 1.149-.754 1.504-1.064zM196.528 268.064c.754-.309 1.86-1.285 2.39-1.77.53-.49 1.194-1.108.797-1.419-.4-.309-.84.09-1.46.663-.62.577-2.258 2.305-2.258 2.305s-.221.043-1.106.754c-.885.707.045.574.354.265.31-.308.533-.488 1.283-.798z" fill="#b96b29"/> - <path fill="#d4af3a" d="M232.288 150.898l-2.72 2.17 3.36 1.473 3.6-2.557z"/> - <ellipse rx="3.434" ry="3.31" cy="151.546" cx="244.448" fill="#b96b29"/> - <ellipse cx="244.448" rx="2.072" cy="150.845" ry="1.979" fill="#d4af3a"/> - <path d="M237.28 140.173c.883.328 2.032.184 2.032.184s.347-1.523-.493-2.266c-.84-.739-1.6-1.273-2.093-1.768-.492-.496-.614-.66-.614-.66s0 1.316-.064 2.14c-.06.826.35 2.039 1.232 2.37z" fill="#d4af3a"/> - <ellipse cx="239.104" rx=".63" cy="141.84" ry=".597" fill="#d4af3a"/> - <path d="M234.416 141.2c-.267.371-.84.966-.84.966s.698.021 1.272.432c.574.413 1.314.762 1.99.68.677-.084.965-.723.821-1.174-.142-.453-.47-.923-1.579-1.338-1.109-.41-1.397.063-1.664.434z" fill="#d4af3a"/> - <path d="M236.816 145.21c-2.157.193-5.006-2.19-5.006-2.19-.266 1.914-1.45 2.908-3.264 3.271l.166.085s1.686.862 3.678 1.165c.901.137 1.703-.018 2.67-.211 1.169-.237 2.482-.57 3.193-1.008 1.3-.804.912-2.885.912-2.885s-.19 1.577-2.349 1.773zM228.416 143.046c-.885-.332-2.213-.97-2.766-1-.554-.027-1.357-.166-1.218.861.138 1.027 1.189 1.527 2.211 1.554 1.024.029 1.55-.36 2.159-.667.61-.304.499-.415-.386-.748zM221.664 139.382c-.966-.692-1.827-.886-1.827-.886s-.635 1.666-.277 2.693c.36 1.027 1.107 1.302 2.02 1.273.913-.025 2.268-.499 1.88-1.192-.385-.69-.828-1.193-1.796-1.888z" fill="#d4af3a"/> - <ellipse cx="222.544" rx=".746" cy="144.066" ry=".538" fill="#d4af3a"/> - <path d="M224.608 135.784c-.598-2.838-.498-5.926 2.192-9.86 2.691-3.937 7.371-5.53 7.371-5.53s.149-.3 1.643-1.892c1.495-1.595 4.533-3.585 4.533-3.585s-3.526.87-5.531 1.512l.002.105c0 1.362-1.082 2.466-2.416 2.466-.509 0-.984-.163-1.374-.438-1.088.21-4.71 2.376-5.637 3.148.23.378.365.823.365 1.3 0 1.358-1.084 2.464-2.418 2.464-.4 0-.776-.098-1.109-.276-.109.173-.211.348-.309.525a24.923 24.923 0 0 0-1.732 3.965c.619.427 1.033 1.226 1.033 2.138 0 1.353-.917 2.454-2.05 2.465-.078.797-.071 1.354-.041 1.592.1.799.398 1.296 1.792 1.695 1.395.398 3.288 2.838 3.288 2.838.134 0 1.13-1.792.398-4.632z" fill="#d4af3a"/> - <path d="M233.184 117.61c.509-.413.598-1.045.194-1.407-.4-.363-1.138-.32-1.647.096-.507.416-.597 1.048-.193 1.41.401.361 1.139.32 1.646-.1zM224.16 123.707c.571-.521.672-1.31.218-1.766-.453-.455-1.285-.4-1.86.121-.572.519-.67 1.31-.217 1.764.453.456 1.285.401 1.859-.119z" fill="#d4af3a"/> - <ellipse cx="218.784" rx="1.394" cy="131.374" ry="1.37" fill="#d4af3a"/> - <path d="M248.864 112.027c-.723.159-2.06.594-4.062 1.642h.036c1.392 0 2.474.89 2.474 2.041 0 1.154-1.266 2.407-2.656 2.407-1.39 0-2.338-1.208-2.338-2.362 0-.27.064-.533.178-.771-.594.366-1.227.771-1.902 1.227-4.434 2.989-5.479 4.434-7.67 8.519-2.191 4.081-2.988 8.564-2.042 11.204.947 2.639 4.433 3.188 4.483 3.188.05 0-.399-.399-.45-.895-.05-.5.101-.749.25-1.745.149-.994.05-2.19.05-2.19s.796-.1 1.244.449c.45.547 1.098 1.195 1.544 1.74.448.548 1.643 1.596 1.643 1.596s.7-.999.7-2.194c0-1.193-.797-2.488-.948-4.58-.15-2.093.948-5.83 2.988-8.567 2.043-2.74 5.876-5.229 7.022-5.778 1.146-.545 1.344-1.395 1.395-1.892.05-.498.149-.845.248-2.092.103-1.244-1.043-1.195-2.187-.947z" fill="#d4af3a"/> - <path d="M244.464 116.757c.784 0 1.498-.706 1.498-1.352 0-.648-.61-1.147-1.396-1.147-.784 0-1.42.526-1.42 1.17 0 .646.532 1.329 1.318 1.329zM251.056 142.798c1.069.436 2.275.19 2.843-.188.568-.381.76-1.35.087-1.903-.67-.552-1.67-.533-2.292-.189-.62.346-2.017 1.33-2.017 1.33s.31.518 1.379.95z" fill="#d4af3a"/> - <path d="M254.48 143.998c-.386.596-.67.957-1.858 1.008-1.187.052-2.475-.025-3.25-.801-.774-.775-1.314-1.863-1.314-1.863l-1.341-.025s-.437 1.864-1.03 2.377c-.594.519-2.658.597-3.56-.076-.903-.674-1.729-1.501-1.882-1.397-.154.104 0 .776.928 1.577.928.8 1.571 1.295 3.069 1.295h8.508s1.728.1 2.22-.933c.49-1.034.512-1.682.283-1.94-.23-.257-.386.182-.773.778z" fill="#d4af3a"/> - <path d="M241.536 142.557c1.277.709 1.982.277 2.446-.295.468-.57.552-.828.552-.828s-1.206-.434-1.792-.78c-.587-.344-.982-.673-1.568-.604-.587.07-.672.156-.672.156s-.241 1.64 1.034 2.35z" fill="#d4af3a"/> - <ellipse cx="235.376" rx="2.84" cy="129.984" ry="2.814" fill="#b96b29"/> - <path d="M240.304 120.23c-1.136-.764-2.805-.459-3.73.682-.921 1.144-.747 2.693.392 3.456 1.136.766 2.808.46 3.732-.682.921-1.139.745-2.688-.394-3.456z" fill="#b96b29"/> - <ellipse cx="235.264" rx="1.65" cy="129.619" ry="1.573" fill="#d4af3a"/> - <path d="M239.12 120.54c-.731-.2-1.635.16-2.016.804-.38.645.022 1.331.997 1.53 1.793.366 2.648-1.887 1.019-2.333zM195.744 340.272s-4.387 2.096-5.778 2.469c-1.39.379-1.712.379-1.712.379s-2.996 2.734-5.19 4.02c-2.304 1.358-4.949 2.342-7.597 2.634-3.425.373-12.84.266-17.067.106-4.227-.16-6.846.858-8.667 2.898-1.82 2.04-2.247 4.99.054 7.244 2.301 2.255 4.867 1.128 5.725-.267.854-1.397.427-3.168.053-3.971-.373-.806.75-1.075 1.926-1.128 1.178-.053 3.157.107 4.976.376 1.82.267 5.03 1.34 6.421 2.093 1.392.752.589.859-.374.697-.964-.161-2.032-.536-3.746-1.177-1.712-.643-3.157-.967-4.226-1.023-1.068-.052-.697.538-.481.912.213.376.801 1.288.961 1.719.162.43-.32 2.035-.32 2.035l.535 1.022s.641-1.022.856-1.555c.213-.539-.055-1.557.16-2.04.214-.483 1.123-.483 1.819.323.696.804 1.5 1.772 1.872 3.807.374 2.04-.322 3.49-.322 3.49s.858.7 1.018 1.179c.162.484-.214 2.417-.214 2.417s.588.375 1.124-.753c.535-1.125 1.176-3.11 1.336-3.81.16-.698.642-1.984 1.498-1.02.856.966 1.445 2.148 1.606 2.738.159.59.159 1.074.159 1.074s1.926-1.88 2.568-2.954c.641-1.073 1.979-2.683 3.8-4.184 1.819-1.502 4.974-4.507 6.526-5.528 1.55-1.019 5.51-3.166 6.741-3.916 1.23-.75 1.445-.804 1.66-2.9.214-2.094 1.231-3.968 1.711-5.419.464-1.456.576-1.984.576-1.984zM125.584 261.632c-.035-.357-.749-1.61-.926-2.253-.18-.641-.821-.251-.821-.251s-1.392.787-2.426 1.074c-1.033.286-1.177-.106-1.285-.642-.105-.54-.356-2.22-.534-3.4-.18-1.178-.429-1.106-.856-.931-.427.18-1.712.645-2.603 1.04-.891.392-.607.822-.322 1.321.285.503 1.32 2.612 1.783 3.364.464.75.035 1.073-.501 1.324-.535.25-1.319.357-2.389.714-1.07.357-.998.608-.893.966.107.36.821 1.826 1.213 2.503.392.68.749.216.749.216s1.142-1.035 2.104-1.503c.963-.462 1.033-.321 1.283.396.25.715 1.357 4.472 1.57 5.187.214.712.57.641 1.07.43.5-.214 1.176-.323 1.747-.502.571-.178.786-1.323.786-1.323s-2.104-3.79-2.675-4.759c-.572-.966 0-1.18.428-1.251.428-.07 1.676-.25 2.746-.5 1.056-.273.768-.88.736-1.249zM149.36 364.64c-.16-.914 0-1.827-.696-2.523-.696-.7-1.552-2.093-1.872-3.22-.32-1.127.267-1.663.16-2.308-.106-.643-.963-.643-1.818.056-.857.697-1.98 1.34-1.98 3.379 0 2.037.75 4.454 3.585 5.31 2.832.864 2.784.224 2.624-.688zM152.24 363.664s-.589-.374-.856.162-.214.806.534 1.985c.75 1.18 1.232 1.45 2.087 1.984.856.538.267-.534.16-.857-.106-.324 0-.75-.213-1.021-.214-.269-.323-.59-.323-1.447 0-.848-1.392-.8-1.392-.8z" fill="#d4af3a"/> - <path d="M155.712 373.328c.534-.808 1.018-1.02 2.3-1.61 1.284-.588 3.638-.912 4.44-.966.802-.054 2.622-1.61 2.353-3.222-.267-1.61-1.445-2.253-2.461-2.468-1.016-.214-1.926-.214-2.246.268-.322.484-.91 1.128-2.034 1.502-1.123.374-1.285.752-1.98.966-.695.216-.16.645-.748 1.128-.589.482-1.39 0-2.3-.268-.91-.27-.964-.43-1.98-.485-1.016-.053-3.691-.213-3.691-.213s-.107-.054-.695-.054-.643.107-.908.752c-.268.643.052 2.254.696 3.059.641.803 2.728 1.179 4.118 1.61 1.392.427 2.088.59 3.266.803 1.216.208 1.376-.016 1.904-.816zM168.72 374.608c1.123-.752.48-2.04.214-2.843-.267-.807-1.819-.967-2.622-.967-.803 0-1.23 0-1.66.375-.428.374-1.015.912-2.193 1.29-1.174.374-2.086.803-3.691 1.447-1.605.642-2.088 1.716-2.782 2.15-.696.426-2.032 0-2.032 0s-.965-.271-1.285 0c-.322.263 0 .8.641 1.498.644.701 1.872.645 3.263 1.076 1.392.428 1.659.105 2.195-.27.534-.374.963-1.178 1.926-1.77.964-.59 3.05-.698 4.066-.804 1.04-.112 2.864-.432 3.984-1.184zM168.72 369.728c.48.432 1.016 1.022 1.445.322.429-.696 1.123-2.146.641-3.004-.483-.857-1.068-1.61-1.068-1.61s-.804 2.468-1.178 3.113c-.352.656-.304.752.176 1.184zM164.384 362.32c0-1.397-.963-3.114-.963-3.114s-.322 1.288-.909 2.416c-.589 1.125-1.178 1.717-1.178 1.717s1.392.375 1.927.375c.534 0 1.136.016 1.136-1.376zM156.368 365.28c1.498-.322 2.3-.912 2.942-1.448.642-.536 1.018-1.987.59-2.736-.428-.755-1.498-1.557-1.926-1.557h-.803s-.429 1.395-1.016 2.093c-.589.7-1.283 1.18-1.23 2.093.048.896-.064 1.856 1.44 1.536zM159.408 358.464c.054-.698-.216-1.448-.696-1.931l-.803-.803s-.107 1.072-.213 1.662c-.107.59-.16.698-.16.698s.429.432.803.592c.368.144 1.008.48 1.056-.224zM140.912 320.4l1.011-6.323c-.76-6.322-4.048-12.306-6.659-16.439-2.614-4.13-5.312-10.62-6.493-14.078-1.179-3.458-1.971-8.19-1.971-10.667 0-2.48 1.058-3.755 1.058-3.755s.459-.672.035-1.098c-.424-.424-1.093-.034-1.765.637-.672.67-1.376 1.91-1.66 2.795-.282.888-.282 1.205-.282 1.205s-1.341-.317-3.495-.14c-2.153.175-3.176.354-3.248.813-.07.461.283.816 1.835 1.488 1.554.672 2.543.956 3.319 1.877.777.92 2.763 5.544 3.37 7.776.606 2.234 1.903 8.288 2.43 13.04.526 4.752 2.13 10.509 4.371 15.317.736 1.584 4.752 9.072 8.144 7.568zM144.832 331.536c-1.464.818-1.41 6.8-.76 9.9.651 3.103 3.688 6.966 4.61 8 .923 1.033 1.139 1.033 1.628.76.49-.27.704-.27.704-.27s1.303-.435 2.28-1.196c.975-.764.596-2.668.432-4.354-.163-1.69-1.464-5.062-3.85-8.976-2.367-3.92-3.567-4.688-5.023-3.872zM146.448 326.688c0-1.952-1.693-3.427-3.638-3.427-.92 0-1.732.232-2.234.685-1.974 1.78-.784 6.225 2.069 6.225 1.033 0 2.241-.173 2.989-.888.672-.624.816-1.664.816-2.592zM174.736 382.912c-.78-.138-1.238-.456-2.387-1.237-1.147-.779-2.984-2.387-3.306-3.168-.323-.78-.323-.827-1.424-.457-1.102.366-2.664.32-3.856.366-1.193.046.136 1.376.963 2.62.828 1.238.55 5.415.55 5.415s0 .368-.183.967c-.184.595-.045 1.01.275 1.147.322.137.504-.138 1.331-1.104.827-.963 2.343-3.487 2.343-3.487s.23.044 1.515.367 3.352.137 4.408-.184c1.088-.32.576-1.104-.208-1.248z" fill="#d4af3a"/> - <path d="M169.824 386.144c-.55-.093-.78-.14-1.056.226-.274.37-.504 1.06-.642 1.425-.137.368-.092.691.23.967s.782.596.782.596.459.506.92.733c.459.232.548-.456.548-.963 0-.504.276-1.424.276-2.02 0-.598-.48-.88-1.04-.96z" fill="#d4af3a"/> - <path d="M378.592 345.776c-1.342-.318-1.912-.829-1.912-.829s-.574-.064-1.026.767c-.441.827-2.166 1.912-2.166 1.912s-2.424.64-2.744 2.3c-.318 1.658.83 2.232 1.978 2.04 1.152-.192 3.958-.766 5.166-2.232 1.213-1.468 1.405-2.299 1.66-2.875.223-.56.367-.752-.977-1.072zM382.352 332.56c-.872-3.69-3.254-8.248-7.848-10.531 0 0-1.723 6.064-2.234 7.979-.512 1.912-.512 1.85.957 2.234 1.466.38 6.187 1.401 7.146 1.657.958.256 2.56 1.072 1.984-1.36zM360.464 329.12c1.083.192.957-.256 1.34-1.723.382-1.466 2.295-8.741 2.295-8.741s-4.846-.192-9.059 1.848c-4.213 2.042-6.062 5.806-6.062 5.806s1.086.447 3.958 1.087c2.88.624 6.448 1.52 7.536 1.712zM349.232 339.136c-1.72-.318-2.36-.51-2.36-.51s1.085 4.145 2.872 6.444c1.786 2.298 3.765 3.448 7.466 3.51 3.7.065 6.507-1.977 6.955-3.572a11.725 11.725 0 0 1 1.213-2.806s-6.701-.898-9.445-1.535c-2.784-.64-5.008-1.216-6.736-1.536z" fill="#1d5e91"/> - <path d="M348.08 336.512c1.66.382 15.315 2.998 16.464 3.254 1.15.253 2.106.51 2.426.19.321-.318.51-.51 1.723-.96 1.213-.442 1.15-1.657 1.15-1.657s.319-1.15.443-2.297c.13-1.148.768-1.532 2.108-.127 1.34 1.402 1.595 3.443 1.85 5.424.255 1.978 3.383 2.488 4.593 2.68 1.214.192 1.785-.192 2.49-1.339.702-1.149 1.086-3.446 1.276-4.915.19-1.466.066-1.34-1.467-1.722-1.531-.38-8.614-1.976-9.893-2.299-1.273-.318-1.019-1.147-.829-2.04.19-.893 2.999-9.893 2.999-9.893-1.999-1.235-4.807-1.971-8.167-2.36 0 0-2.041 9.187-2.427 10.594-.38 1.401-1.277 1.401-2.742 1.145-1.469-.252-12.063-2.739-12.063-2.739l-.827 1.975c-.83 1.977-1.213 4.34-1.213 5.552 0 1.21.432 1.184 2.08 1.552z" fill="#d4af3a"/> - <path d="M384.32 344.816c-1.408-.92-2.443-1.163-3.176.55-.734 1.714-.794 4.224-2.627 5.997-1.834 1.775-4.4 3.61-6.967 3.427-2.564-.184-4.032-.796-3.422-3.732.613-2.936 4.523-3.855 5.438-5.384.916-1.53.672-3.304-.673-4.466-1.344-1.165-3.3-1.408-3.848-1.04-.549.366-2.14 1.714-2.931 3.914-.796 2.203-1.284 3.977-2.996 5.385-1.707 1.407-6.107 2.815-9.528 2.018-3.42-.795-4.641-1.835-5.926-5.2-1.283-3.365-2.81-8.931-3.483-9.544-.67-.611-1.527-1.101-2.992-.063-1.467 1.039-1.589 2.57-1.771 3.796-.184 1.222 0 2.633 1.464 4.406 1.467 1.773 2.995 3.547 3.545 5.38.55 1.836 2.199 4.652-.123 4.774-2.32.121-3.358.182-5.131-1.528-1.771-1.714-8.677-6.426-10.568-7.957-1.895-1.53-2.688-2.018-2.688-2.018-3.195-.056-6.395-1.37-9.59-3.547 0 0 1.833 4.709 2.198 6.483.366 1.775.305 2.752.305 2.752s6.964 3.549 9.714 4.896c2.749 1.346 8.307 4.528 10.994 6.178 2.69 1.654 4.95 4.224 9.715 3.245 4.766-.98 14.416-3.916 17.531-4.834 3.117-.918 11.731-3.06 14.907-5.26 3.176-2.202 3.483-2.08 4.03-4.284.545-2.16 0-3.376-1.407-4.304zM365.936 311.872c.53-.07.742-.142 2.366-.354 1.628-.214 1.024 1.344.741 1.946-.281.6-.776 1.803-1.445 2.934-.675 1.136.21 1.312.67 1.488.458.18 1.129.248 2.436.604 1.309.352 1.06-.604 1.096-1.098.035-.498.104-3.08.248-3.998.14-.919.987-.672 1.306-.496.318.176 1.13.633 1.803.987.669.358.987-.034 1.13-.423.142-.388.457-1.096.742-2.123.283-1.025-.354-.814-.992-.814-.634 0-1.554 0-2.613-.034-1.06-.035-.389-1.062-.389-1.062s.778-1.272 1.378-2.229c.601-.955.39-1.096-.213-1.275-.598-.178-2.472-.602-3.002-.743-.53-.139-.776-.07-.776.285s-.072 2.192-.072 2.901c0 .706-.068 1.131-.988 1.166-.919.034-1.485-.499-2.226-1.31-.742-.811-1.06-.494-1.131-.174-.07.318-.672 2.652-.813 3.29-.176.623.176.591.704.511zM371.056 335.056s-.066 1.851-.256 2.488c-.192.64-.637 1.597.128 1.851.766.256 1.467.573 1.91.447.45-.127.256-1.021 0-1.786-.252-.766-.635-1.725-1.21-2.362l-.56-.624zM382.288 342.448c.256.573.766.7 1.15.83.383.127.895.127.895-.574 0-.7.126-1.595-.445-2.362-.574-.766-.88-1.324-1.213-.192-.336 1.152-.64 1.744-.384 2.304zM343.168 334.992c.318.064 1.531.446 1.531.446s0-1.787.255-3c.254-1.21.766-2.04.32-2.04-.447 0-.701.383-1.024.893-.317.509-1.213.639-1.53 2.106-.32 1.456.128 1.52.448 1.584z" fill="#d4af3a"/> - <circle cy="331.92" cx="350.832" r="2.49" fill="#b96b29"/> - <circle cy="333.648" cx="357.84" r="2.552" fill="#b96b29"/> - <circle cy="337.984" cx="378.272" r="2.554" fill="#b96b29"/> - <circle cy="335.312" cx="364.864" r="2.554" fill="#b96b29"/> - <circle cy="329.184" cx="366.72" r="2.554" fill="#b96b29"/> - <circle cy="323.056" cx="368.512" r="2.554" fill="#b96b29"/> - <circle cy="331.68" cx="351.008" r="1.243" fill="#d4af3a"/> - <circle cy="333.392" cx="358.032" r="1.277" fill="#d4af3a"/> - <circle cy="337.728" cx="378.464" r="1.275" fill="#d4af3a"/> - <circle cy="335.056" cx="365.056" r="1.275" fill="#d4af3a"/> - <circle cy="328.928" cx="366.912" r="1.275" fill="#d4af3a"/> - <circle cy="322.8" cx="368.704" r="1.277" fill="#d4af3a"/> - <path d="M287.497 383.056c-1.346-.854-2.514-1.802-5.565-3.827-3.05-2.027-4.173-4.277-4.173-4.277h1.077c.584 0 1.077-.811 1.122-1.62.046-.812 0-2.476-.224-4.412-.224-1.934.313-3.51.313-3.51s1.301 1.212 3.276 2.25c1.974 1.034 2.784.538 2.784.538l.494-1.977s.851 1.801 2.064 3.913c1.213 2.116 4.488 4.458 6.82 6.212 2.335 1.756 4.894 3.603 6.823 4.278 1.93.674.807 1.576.807 1.576s-1.93 1.933-6.91 2.834c-4.982.9-7.362-1.124-8.708-1.978z" fill="#d4af3a"/> - <path d="M270.073 381.12c1.78-.187 2.843-.86 3.187-2.792.226-1.26-.09-6.077-.09-6.077s.583.495 1.257 1.307c.673.808 2.2.99 2.2.99s.224.674.897 1.753c.674 1.083 1.527 2.389 3.232 3.467 1.704 1.082 3.679 2.342 4.981 3.422 1.302 1.082 2.827 2.343 4.533 3.287 1.705.945 3.232 2.477 3.816 4.995.582 2.52.133 3.331-1.84 3.197-1.975-.136-2.2.045-5.386-.767-3.187-.81-7.718-4.364-11.038-6.48-3.327-2.116-5.749-6.302-5.749-6.302z" fill="#d4af3a"/> - <path d="M261.241 384.032s1.347-1.707 1.84-3.646c.494-1.935 1.435-5.76 1.435-5.76s.45 1.216 1.527 3.507c1.078 2.297 2.916 2.838 2.916 2.838s.092.989 1.616 2.925c1.527 1.934 3.768 3.734 6.06 5.088 2.29 1.347 5.25 3.197 6.867 5.491 1.614 2.296 1.75 4.68.985 5.715-.763 1.034-1.838-.136-3.364-.9-1.527-.765-5.88-1.44-11.893-4.682-6.013-3.24-7.989-10.576-7.989-10.576z" fill="#d4af3a"/> - <path d="M258.633 397.504c-1.66-2.475-1.931-8.504-1.931-8.504s.582-.405 1.392-1.083c.806-.675 2.377-3.06 2.377-3.06s.988 2.07 2.064 4.005c1.077 1.938 1.618 2.612 3.861 4.682 2.243 2.072 5.296 4.098 6.599 6.302 1.3 2.205.582 6.616-.27 8.101-.854 1.488-2.065.989-3.32-.224-1.258-1.214-1.662-1.53-3.86-3.42-2.198-1.892-5.253-4.324-6.912-6.799z" fill="#d4af3a"/> - <path d="M278.377 347.024c-.883-1.805-1.882-3.994-2.688-5.104a15.91 15.91 0 0 1-1.38-2.382s2.15 1.958 2.994 3.34c.844 1.381 1.381 2.725 1.767 4.224.38 1.496.19 1.725-.693-.078zM269.85 348.56a53.64 53.64 0 0 1-.54-1.984s-.347-1.152-.155-1.229c.192-.078 1.076.715 1.69 2.672.617 1.96 1.537 4.799 1.345 4.914-.19.117-1.995-3.183-2.34-4.373zM263.13 353.968c-.385-.843-.385-.882-.385-.882s-.691-2.227-.691-2.688c0-.459.23-.996.805.154.577 1.154.614 2.264.73 2.765.114.499.767 2.227.577 2.38-.192.154-.653-.881-1.037-1.729zM283.993 374.448l.9-.54s.537.72 1.3 1.53c.763.808 1.618 1.125 2.2 1.892a8.475 8.475 0 0 0 2.872 2.43c1.39.72 1.93.946 1.66 1.171-.27.226-1.212-.315-1.212-.315s-.403-.046-2.064-1.035c-1.66-.989-2.064-1.53-3.14-2.475-1.078-.946-2.516-2.658-2.516-2.658zM276.713 383.056c-.629-.675-1.3-1.126-.942-1.488.36-.358.808-.314 1.392.18.582.497 2.243 2.07 3.006 2.746.763.676 1.39 1.082 2.154 1.666.763.586 2.424 1.485 3.23 1.934.808.452.045.5.045.5s-.629-.319-1.3-.544c-.673-.224-2.603-1.08-2.603-1.08s-.763-.36-1.795-1.08c-1.032-.719-2.558-2.16-3.187-2.834zM268.33 388.864c-.539-1.078.044-.766.941-.403.898.36 2.917 2.566 4.084 3.374 1.166.808 2.155 1.125 3.14 1.623.988.494.988.763.941.988-.043.226-.446.226-.85.045-.406-.179-1.796-.99-1.796-.99s-.584-.178-1.123-.226c-.54-.045-1.301-.633-2.514-1.665-1.208-1.036-2.285-1.663-2.824-2.746zM264.425 396.56c1.482.9 4.038 2.925 4.712 4.277.675 1.352 1.123 2.296.9 2.52-.225.225-.943-.226-1.258-.767-.314-.539-.988-1.35-.988-1.35s-2.556-2.518-3.499-3.104c-.942-.586-2.469-2.25-2.829-3.24-.358-.992-.09-1.53-.09-1.53s1.572 2.293 3.052 3.194z" fill="#b96b29"/> - <path d="M303.961 181.248c1.357-.797 5.005-2.357 8.89-2.686 3.881-.328 6.883.256 10.105 1.126 2.31.624 4.18.72 6.03.224 2.778-.74 4.933-3.25 5.666-6.323 0 0 2.563 3.286-.057 6.853-1.26 1.715-2.9 2.787-4.57 3.124-5.438 1.096-10.773-2.224-15.302-2.513-4.35-.283-7.767 2.475-7.767 2.475s-1.029.854-2.478.011c-1.453-.848-1.874-1.494-.517-2.291z" fill="#c52126"/> - <path d="M319.625 338.656s.534-.053 1.283-.162c.75-.107 2.354-.643 2.835-.859.482-.213 1.23-.267 1.712.269.482.538 4.388 2.843 4.388 2.843h-6.474c-2.246 0-3.744-2.091-3.744-2.091z" fill="#d4af3a"/> - <path d="M301.401 337.552v-.646l.862-1.858s1.007.632 1.988 1.646c1.262 1.31 2.62 3.152 3.227 3.93 1.078 1.38 2.585 2.68 1.293.474-1.293-2.205-1.724-3.156-2.757-4.626-1.035-1.469-1.811-2.117-1.683-2.205.13-.086.95-.214 3.665-.56 2.714-.349 4.395-1.384 5.645-2.12 1.25-.734 3.491-1.944 3.491-1.944s4.611 1.944 6.336 2.376c1.725.432 2.759.691 1.079 1.514-1.682.82-3.103 1.08-3.922 1.597-.818.521-3.362 1.34-4.914 1.34-1.55 0-4.179.042-3.145 1.124 1.033 1.083 2.198 3.158 3.318 6.31 1.12 3.158 1.163 5.966 1.163 7.35 0 1.384-.17 2.765-.17 2.765s-1.897-2.115-6.983-5.313c-5.085-3.2-6.98-4.28-7.93-4.714-.947-.43-1.424-.43-1.25-1.64.17-1.211.687-4.194.687-4.8z" fill="#d4af3a"/> - <path d="M281.977 322.096c.307-.138.624-.28.944-.429.085.023.163.047.234.083.596.3 3.699 2.388 4.952 4.418 1.252 2.027 2.505 2.208 1.134 0-1.373-2.211-2.387-3.462-3.46-4.418a24.961 24.961 0 0 0-1.084-.91c2.496-1.203 5.206-2.66 7.829-4.486.34.676.99 1.876 1.728 2.654 1.073 1.133 3.46 2.09 3.46 2.09s-1.908-1.97-2.566-3.463c-.417-.952-.69-1.977-.833-2.593 1.825-1.423 3.574-3.044 5.136-4.904.318 1.29 1.35 4.433 4.408 7.856 3.996 4.476 11.993 6.742 11.993 6.742s2.803.3.536.896c-2.267.597-3.878 1.611-8.294.834-4.415-.773-4.712-.954-5.309-1.13-.597-.18-2.208-.06 0 .774 2.206.834 7.34 1.608 9.307 1.432 1.97-.177 4.655-.596 1.85.896-2.805 1.493-3.999 2.088-5.728 2.088-1.731 0-2.447.538-4.119.538-1.67 0-2.145-.3-3.34-.538-1.194-.236-1.968.178-1.968.656 0 .477 1.61 1.79 1.55 5.072-.06 3.282-.298 5.43-.595 6.381-.3.959-1.016 2.507-1.493 3.405-.477.894-.658 1.787-1.133-.12-.477-1.91-1.55-4.654-1.97-6.502-.417-1.85-.655-1.91-.835-2.864-.177-.956-1.193-1.67-.715.059.479 1.73 1.015 3.937 1.371 5.49.36 1.551 1.194 4.414-.236 2.147-1.432-2.266-6.802-8.293-7.696-9.367-.895-1.073-1.612-2.09-2.268-2.982-.656-.896-2.505-2.09-3.401-3.402-.81-1.187-3.18-3.499-4.199-4.326 1.519-.645 3.12-1.32 4.81-2.077zM356.153 184.368c-.142 3.288-3.782 9.58-5.853 12.94-2.07 3.36-2.64 4.714-2.285 4.93.359.215 1.215-1.5 2.357-3 1.143-1.5 3.354-5.003 5.21-7.648 1.856-2.644 4.568-8.934 4.925-9.507.356-.571.5-.93 1.427-.216.928.715 2.712 7.65.57 12.368-2.141 4.717-5.353 8.146-6.708 9.79-1.357 1.645-3.14 4.218-2.854 4.434.285.213.784-.43 2.425-2.145 1.642-1.716 4.356-4.647 6.138-6.79 1.45-1.742 3.416-5.278 4.106-6.542.259-.478.593-.348.843-.099.587.59 1.528 1.962 1.118 5.71-.57 5.22-3.283 8.221-5.709 10.866-2.427 2.645-4.854 4.86-4.497 5.218.357.358 2.854-1.86 4.568-3.503 1.712-1.643 5.925-5.716 6.851-6.862.93-1.142 2.283-.573 2.213 3.931-.07 4.504-5.067 9.079-7.136 11.581-2.072 2.5-4.64 4-4.427 4.5.214.502 2.284-.783 3.64-1.714 1.355-.93 6.424-4.218 7.422-4.933.998-.714 1.5.643.214 4.933-1.284 4.286-4.996 7.718-7.208 9.29-2.212 1.572-5.78 3.5-5.566 4.004.213.5 1.712-.144 3.782-1.146 2.07-1 4.567-1.93 6.352-2.428 1.786-.501 1.784.784 1.784.784s.359 3.644-2.283 6.576c-2.641 2.93-5.638 4.075-8.493 4.572-2.854.501-3.283.645-3.21 1.076.07.428.356.499.998.499.641 0 3.283.286 5.71.286s3.71.57 3.71 1.643c0 1.074.072 2.503-3.568 4.932-3.638 2.432-7.707 2.788-9.42 3.147-1.712.357-1.783.5-1.428 1.001.357.5 1.141.43 3.855.714 2.712.285 4.353 1.358 4.71 2.072.357.715-.214 2.86-2.429 4.36-2.21 1.502-5.065 2.003-9.348 1.717-4.284-.288-5.354-.359-5.496.358-.144.714 1.283.93 3.425 1.288 2.141.355 3.784.355 4.997 1.357 1.214 1.002.285 3.074-1.784 4.574-2.069 1.501-7.21 1.501-9.35 1.359-2.141-.143-5.424-.93-5.639-.359-.214.572 1.57 1.432 3.781 2.216 2.214.79 2.858 1.287 3.283 2.218.43.928.072 1.786-2.568 2.786-2.64 1.001-6.494 1.001-8.493.072-2-.928-3.068-1.288-3.427-.928-.355.36 0 .715.43 1.216.426.5 2.14 1.857 4.353 2.43 2.212.573 2.427.573 3.212 2.358.784 1.788-1.212 3.22-5.21 3.364-3.998.14-9.35-1.43-11.063-2.434-1.714-1.002-2.355-1.214-2.64-.856-.285.357-.215.571.641 1.213.858.646 3.57 2.574 4.925 2.933 1.355.356 1.5 1.356 1.5 2.286 0 .928.356 2.787-3.212 3.646-3.57.858-7.779.216-11.633-2.502-1.242-.874-1.964-1.595-2.37-2.22.312-3.65.147-6.16-.291-8.473.757-.08 2.192-.297 3.66-.888 2.141-.856 2.997-2.857 3.498-3.931.501-1.072 1.213-1.072 2.07-.787.858.29 1.714.645 2.927.574 1.213-.07 3.782-.715 5.638-2.933 1.856-2.216 1.501-4.358 1.572-5.433.072-1.072 1.784-.285 2.64-.285.857 0 3.355-.358 5.636-1.93 2.285-1.572 2.285-3.716 2.5-4.576.214-.856 1.142-1.427 1.856-1.715.712-.285 1.856-.57 3.427-1.857 1.57-1.287 2.14-3.788 2.211-4.645.07-.858 1-.93 4.211-2.573 3.211-1.643 2.927-5.075 2.783-6.432-.143-1.36-1.64-2.5-1.64-3.005 0-.5 1.07-.641 2.14-1.286 1.07-.642 3.783-1.715 3.853-5.717.072-4.003-2.57-4.432-2.57-4.432s.501-.216 1.572-.858c1.07-.644 3.995-2.644 3.995-5.004 0-2.359-1.069-3.43-1.854-4.004-.786-.57-2.927-1.142-2.927-1.142s1.357-.86 1.928-2.717c.571-1.859.786-4.144-.57-5.789-1.356-1.644-3.64-1.644-4.854-1.644s-2.283.643-2.712.288c-.429-.359-.499-.644-.07-1.573.427-.928.5-3.218.142-4.002-.358-.787-.429-2.358-3.499-3.36-3.067-1-6.278 1.072-7.278 1.645s-.572-.789-.572-1.787c0-1 2.07-3.503 4.426-7.077 2.355-3.574 3.426-5.434 6.067-10.866 2.642-5.432 4.355-12.436 4.71-14.224.357-1.787 1.071-.93 1.071-.93s.714.287 2.355 4.431c1.639 4.147 1.923 7.936 1.781 11.221z" fill="#d4af3a"/> - <path d="M302.313 257.472c1.84-.093 4.229-1.102 6.067-3.773 1.837-2.67 4.597-3.317 9.378-3.225 4.78.092 6.987-2.208 8.182-5.522 1.195-3.317-.184-7.093-5.056-9.486-4.872-2.394-7.08-5.064-7.262-9.205-.184-4.144 4.87-9.301 9.928-15.101 5.057-5.8 9.01-13.997 9.01-13.997s1.47 1.935 1.47 3.867c0 1.933-.735 3.959 0 4.51.736.554 1.011-.826 3.952-2.116 2.942-1.29 5.333-1.472 7.171.645s0 5.8-1.654 7.55c-1.656 1.749-3.034 3.04-2.575 3.685.46.645 2.943-1.013 3.77-1.566.827-.554 2.758-2.67 5.608-2.394 2.85.275 3.862 1.104 4.137 3.5.276 2.393-2.574 4.508-4.412 5.431-1.839.919-2.575 1.749-2.114 2.115.46.37.92 0 1.747-.273.826-.277 3.125-.552 4.595 0 1.472.552 3.863 2.576 1.656 5.064-2.206 2.486-6.803 3.406-7.723 3.589-.918.184-1.379-.093-1.47.643-.091.739 1.931.739 4.413.832 2.481.093 3.217 2.485 2.85 4.326-.369 1.842-4.505 3.866-6.802 4.235-2.301.368-3.127 0-3.31.644-.186.643.274.92 1.562 1.29 1.287.366 3.77.644 4.23 2.67.46 2.025.551 2.945-1.38 4.697-1.931 1.749-5.058 1.472-5.976 1.288-.92-.182-2.024-1.198-2.942-.275-.919.918.828 1.656 2.392 2.762 1.563 1.107 1.47 3.224-1.196 4.697-2.665 1.475-5.332.919-6.435.552-1.102-.366-2.574-2.117-3.309-1.013-.736 1.104 2.298 1.474 3.586 3.039 1.286 1.563.827 4.14-1.747 5.705-2.575 1.567-6.803.461-7.54-.182-.734-.643-1.652-.918-2.204-.366-.55.548.275 2.022.827 3.312.55 1.29 1.563 5.064-2.3 6.537-3.862 1.472-7.354-1.841-7.998-2.488-.643-.643-1.286-.736-1.838-.459-.55.278-.277.829.184 1.474.46.643 1.47 3.404-1.286 5.34-1.884 1.32-3.938 1.223-5.052 1.03-.574-2.156-1.321-4.46-2.083-7.687h.576c.368 0 .442.552.442.773 0 .22-.11.404.222.404.331 0 .368.184.847.517.478.331.92.735 1.179.552.257-.184-.995-.848-1.327-1.253-.332-.406-.995-1.032-1.032-1.472-.036-.443-.257-.7-.92-1.252a2.502 2.502 0 0 1-.496-.575 104.42 104.42 0 0 1-1.272-7.704 60.93 60.93 0 0 1-.478-5.829l1.208-.062zM380.89 200.08c-4.108 8.309-9.908 12.987-9.908 12.987s.761-2.064 1.1-3.483c.333-1.42.073-3.027.073-3.027s1.456-1.867 4.145-6.013c2.69-4.146 4.11-10.27 4.11-10.27s-2.503 6.124-4.446 9.376c-1.944 3.25-4.185 5.9-4.185 5.9s-.783-2.873-1.344-3.024c-.56-.148-.972.3-1.456.933-.487.635-.9.576-.9.576s.664-1.371 1.685-3.016c.464-.747 1.141-1.553 1.62-2.309 1.53-2.419 4.831-7.016 6.524-11.614 1.693-4.6 5.397-16.133 6.042-19.523.643-3.387 1.288-1.533 1.933.97.643 2.5 1.53 6.049.966 11.372-.563 5.323-1.851 11.856-5.96 20.165zM375.577 222.512c-1.53 1.13-3.786 2.66-3.786 2.66s.357-.833.583-1.833c.225-1 .321-3.059.321-3.059s1.802-1.58 3.056-2.675c1.255-1.096 2.832-2.514 5.952-6.38 3.12-3.867.612-1.545-1.93 1.226-2.54 2.771-7.4 6.797-7.4 6.797s0-.064-.031-.9a3.332 3.332 0 0 0-.74-2.03c-.452-.58-.214-.662 2.525-2.758 2.738-2.098 9.828-10.083 12.727-14.845 2.9-4.76 6.041-11.213 6.041-11.213s1.53 9.52-4.27 20.007c-5.798 10.485-11.518 13.873-13.048 15.003zM345.145 282.56c-3.178-1.232-2.307-4.366-2.307-4.418 0-.05 1.949.618 3.74 1.284 1.796.67 6.204 1.952 7.946 2.001 1.741.051 1.741-.203 1.794-.46.051-.255-1.333 0-3.843-.461-2.512-.463-6.92-2.773-7.688-3.285-.768-.515-.666-.62.46-.722 1.128-.1 2.101-.616 2.512-.973.408-.36 1.588.156 4.458.824 2.872.666 8.818 1.693 13.38 1.693 4.56 0 8.814-.77 9.532-.925.718-.153 1.486.258-.718 3.956-2.204 3.694-9.944 5.697-15.325 5.644-5.38-.054-10.763-2.928-13.94-4.158zM359.45 274.928c-5.553.046-7.623-1.603-7.623-1.603s0-.283.752-1.413c.753-1.13.61-3.062.61-3.062s1.32.235 3.625.566c2.305.33 4.987.66 7.952.14 2.965-.518 1.693-.847-.66-.566-2.353.284-6.868-.566-8.327-1.083-1.458-.518-.847-.989.14-1.321.988-.327 3.67-2.026 3.67-2.026s6.727.848 12.985.144c6.257-.71 10.211-2.31 11.481-2.5 1.27-.188 1.224.332 1.224.332s.33.563-1.833 3.954c-2.165 3.396-6.4 5.61-9.976 6.646-3.576 1.038-8.469 1.746-14.02 1.792zM360.873 261.92s.235-.33.565-1.462c.33-1.132-.611-1.978-.611-1.978s1.27-.376 5.41-.896c4.142-.518 4.375-.848 6.918-1.414 2.54-.565 4.233-1.319 4.187-1.602-.047-.283-.847.142-2.352.706-1.504.566-7.858 1.225-10.54 1.603-2.68.376-4.187.66-4.657.376-.47-.283-2.117-.707-2.117-.707s1.13-.327 2.541-.565c1.413-.235 2.682-.848 3.434-1.367.753-.518.988-.662 4.376-1.035 3.388-.376 6.116-1.462 12.187-3.677 6.067-2.216 10.633-4.852 11.856-5.841 1.224-.989 1.13-.282.8.989-.33 1.273-.282 2.873-3.34 6.454-3.059 3.582-4.564 5.136-12.28 7.966-7.72 2.826-16.377 2.45-16.377 2.45zM383.69 243.12c-6.823 4.806-14.819 6.571-16.515 6.784-.38-.445.413-2.042.048-3.016-.441-1.166-1.177-1.178-2.824-1.272-1.646-.098-.564-.426-.188-.426.376 0 .47-.046 3.2-.753 2.73-.704 5.504-1.131 9.267-2.546 3.765-1.413 4.893-2.45 4.8-2.733-.095-.281-1.74.898-5.224 2.216-3.482 1.319-7.528 1.837-9.74 2.31-2.21.468-.28-.473.754-1.086 1.035-.614 2.495-2.875 2.495-2.875s2.446-.424 6.444-1.648c4-1.225 7.34-2.593 10.68-4.477 1.148-.65 2.258-1.486 3.455-2.345 2.29-1.642 4.59-3.32 5.485-3.968 1.366-.989.94-.189.8.424-.141.613-1.082 3.441-3.245 6.55-2.165 3.11-2.87 4.053-9.693 8.861zM384.81 229.6c-6.729 5.326-12.515 6.971-13.503 7.397-.988.425-.895-.141-.706-.706.189-.566.331-2.401.331-2.401s2.4-1.368 5.082-2.924c2.681-1.556 5.645-3.675 7.62-5.04 1.977-1.366.8-1.272.19-.756-.612.518-3.341 2.121-6.07 3.817-2.729 1.698-6.868 4.147-6.868 4.147s-.095-.894-.66-1.46c-.564-.567-1.974-.423-1.974-.423s.706-.707 1.13-1.366c.422-.663 2.635-1.367 5.128-2.547 2.494-1.176 6.965-4.474 10.257-7.255 3.293-2.779 9.693-9.753 10.116-10.32.424-.566.705-.47.753.235.047.706.282 1.178-.424 4.383-.71 3.203-3.673 9.894-10.403 15.219zM361.001 179.248c-.763 1.584-1.598 2.78-2.2 3.813-.909 1.558-1.42 2.568-1.42 2.568s-.183-.549-.04-1.485c.145-.936.289-2.234.036-3.78-.133-.83-.312-1.655-.267-2.391.053-.837.333-1.56.446-2.037.216-.902 1.186-4.826 1.655-7.597.467-2.773.97-6.733.934-10.227-.035-3.493-.54-1.73-.54-.035 0 1.694-.178 4.286-.718 8.281-.539 3.997-2.228 10.082-2.228 10.082s-.108-.936-.612-2.269c-.504-1.333-1.33-2.843-1.977-4.5s-.42-1.933-.42-1.933 2.362-11.306 2.983-16.65c.622-5.342 1.616-19.386 1.616-19.386 3.456 3.477 6.026 12.628 6.483 21.282.343 6.52-.71 12.555-1.016 15.002-.605 4.844-1.446 8.627-2.715 11.262zM368.665 197.088c-.107-2.56-.696-4.498-2.347-5.066 0 0 1.46-2.561 2.737-6.212.872-2.501 1.594-5.708 1.96-8.168.903-6.06 1.626-12.301-.18-2.08-1.805 10.219-3.973 13.836-3.973 13.836l-2.62 4.252c.388-1.868.449-3.18.35-5.22-.1-2.04-.36-4.803-.981-6.99 0 0 3.161-6.33 5.147-13.93 1.985-7.6 3.121-14.51 3.161-18.63.181-3.98.27-5.518.27-5.518s3.25 2.441 4.334 14.832c1.084 12.392-2.168 24.241-3.792 28.764-1.626 4.52-4.066 10.13-4.066 10.13zM333.21 291.584s.511-.358 2.049-1.334c1.537-.973 1.075-3.901 1.075-3.901s.41.307 1.54 1.078c1.127.77 2.407 1.64 3.945 2.258 1.537.617 2.307 1.027 3.28 1.334.974.309.716-.1-.103-.565-.819-.46-1.077-.718-3.128-1.539-2.048-.822-6.149-4.416-6.149-4.416s.975-.102 2.666-.153c1.691-.052 3.845-.924 3.845-.924s1.69 1.54 8.507 4.464c6.818 2.928 12.61 3.696 12.61 3.696s-.719 3.493-3.999 4.674c-2.717 1.18-6.459 1.9-13.789.155-7.328-1.744-12.35-4.827-12.35-4.827zM324.233 298.576c-.565-2.878 1.077-4.88 1.077-4.88s.358.205 1.382 1.13c1.026.924 2.514 2.67 5.383 4.105 2.868 1.435 3.896 1.335 1.128-.155s-6.818-5.698-6.818-5.698l1.075-.41c1.079-.412 2.923.306 10.611 4.926 7.688 4.62 12.2 4.776 12.2 4.776s-3.433 4.158-12.763 3.85c-9.33-.305-12.712-4.772-13.275-7.644zM306.601 295.232s1.026 1.435 2.41 2.36c1.384.925 5.073 1.49 5.073 1.49s.154.41.87 1.334c.72.925 2.308 3.133 3.948 4.314 1.638 1.18 4.203 1.948 4.357 1.64.153-.31-1.487-.924-3.076-1.9-1.588-.972-3.024-2.772-4.1-4.003-1.077-1.233.46-1.027.46-1.027s1.948.05 3.743-.102c1.793-.157 1.435 0 1.947.873.512.874 1.23 1.642 2.563 3.183 1.626 1.878 3.17 3.58 4.715 5.438 1.024 1.234.256 1.592.256 1.592s-.462.771-4.612 1.232c-2.564.286-5.34-.037-8.261-1.722-1.81-1.05-3.677-2.712-5.58-4.796-4.969-5.439-4.713-9.906-4.713-9.906zM304.393 306.464c1.026 1.336 1.59 1.9 1.59 1.9s-.718-2.207-1.332-3.234a20.213 20.213 0 0 0-.948-1.43 27.64 27.64 0 0 0 1.666-4.988c.456 1.477 1.875 5.81 3.638 8.627 2.15 3.437 4.05 4.67 2.82 5.592-1.23.925-3.639 1.131-6.357-.205-2.624-1.288-3.383-3.537-3.755-5.353a26.42 26.42 0 0 0 1.292-2.23c.34.209.832.601 1.386 1.321z" fill="#d4af3a"/> - <ellipse cx="-305.001" cy="169.2" ry="1.747" rx="1.907" transform="scale(-1 1)" fill="#d4af3a"/> - <path d="M309.017 165.904c-1.74-.042-2.677-.866-4.598-.68-2.268.22-5.34 1.542-9.07 3.523-2.918 1.319-6.769 1.978-10.478.914-1.038-.3-2.065-.867-3.059-1.427-4.536-2.57-3.438-7.634-3.438-7.634 3.347 2.414 7.485 3.712 11.34 3.45 0 0-.294.22-.951.881-.66.661-1.864 1.429-1.464 1.763.398.332 2.048-1.25 3.438-2.276 1.39-1.03 3.438-2.423 6.95-3.447 3.512-1.03 7.463-1.1 10.096.363 2.634 1.47 2.853 3.306 2.487 4.039-.202.411-.687.545-1.253.531zM259.721 202.88c.805-.22 2.194-.44 4.022-2.128 1.83-1.686 6.22-6.531 6.733-7.411.512-.882.293-1.688-.952-2.203-1.243-.512-2.121-2.128-2.121-2.128s2.705-1.03 4.534-2.35c1.83-1.32 6.074-5.137 6.66-6.09.585-.954.292-1.101-.586-1.394-.88-.294-1.1-.882-1.1-.882s1.976-1.246 3.804-2.713c1.83-1.467 4.316-3.89 4.316-3.89 2.741 1.101 7.042.637 9.365.221 4.098-.733 7.096-2.422 7.096-2.422s.147.66.66 1.908c.511 1.247 2.414 1.983 4.316.733 1.903-1.246 1.464-3.961 1.464-3.961s1.536-.954 4.682-2.128c3.145-1.175 5.705-1.322 8.267-.148 2.562 1.173 3.805 4.696 3.805 7.34 0 2.64-1.392 1.54-1.683 1.17-.293-.366-.879-2.274-4.098-2.786-3.22-.516-6.146 1.027-9.803 4.033-3.658 3.011-4.463 3.23-6.291 5.138-1.83 1.909-.367 2.934 2.779 3.963 3.145 1.029 7.17-1.027 7.317-.952.604.302-1.357 3.1-4.07 4.158-2.714 1.056-6.183.372-8.88-.71-1.83-.733-2.17.024-2.706.587-2.972 3.123-3.744 6.05-4.244 9.615-1.518-.468-2.57-1.984-2.78-3.23-.101-.596-.293-1.908-1.317-.954-1.024.955-1.829 6.236-1.829 8.659 0 2.422.733 5.651.733 5.651l-.733-.074c-.44-.073-1.317-.587-2.488-1.246-1.17-.662-1.243.074-1.243 1.394 0 1.32-.439 3.816-2.195 8.292-1.757 4.477-4.317 5.943-4.317 5.943s-.514-.88-1.026-2.64c-.51-1.762-.878-5.21-.878-8.22 0-3.009.805-9.467.805-9.467s-3.66 4.477-7.463 5.58c-3.805 1.1-7.61.44-9.219-1.396-1.605-1.833-.14-2.64.664-2.862z" fill="#d4af3a"/> - <path d="M284.745 214.464s1.155 2.555 1.786 3.466c.63.91.91 1.052.91 1.052s-1.155.98-2.837 1.504c-1.681.527-3.187.84-3.187.84s1.893-2.593 2.557-4.412c.665-1.821.771-2.45.771-2.45zM261.897 212.96c.562-1.435.91-2.242.91-2.242 2.335.468 6.764-.628 8.687-1.785 0 0-1.752 3.57-3.503 4.797-1.752 1.225-1.996 1.296-1.996 1.296s1.75.281 4.097-2.03c2.346-2.313 3.397-4.975 3.397-4.975s-.525 6.165.42 9.945c.946 3.781 1.156 4.272 1.156 4.272s-4.971.876-10.506-.665c-5.532-1.543-5.952-2.032-5.952-2.032s-.664-.175.21-1.33c.875-1.153 2.52-3.816 3.08-5.251z" fill="#d4af3a"/> - <path d="M271.945 199.424c1.702-1.957 1.872-2.426 1.872-2.426s.595.596.086 1.448c-.51.85-2.936 2.976-4.595 3.912-1.66.936-3.318 1.234-3.318 1.234l.085-.34s4.17-1.871 5.87-3.828zM278.697 212.272s.426-7.744.426-8.893c0-1.149.723-.851.723-.851l.85.382-1.665 11.324c-.18 1.219-.78 1.115-1.088 1.06.608-.315.728-2.668.754-3.022zM289.145 178.752c.632-.63 2.053-1.102.683.422-1.368 1.527-3.16 3.424-3.685 5.005-.528 1.58-.843 3.527.052 3.106.896-.423 1.528-.423 2.475-1.211.949-.79 2.737-2.11 3.475-2.317.738-.211 2.053 0 1 1.157-1.053 1.16-2.213 2.267-4.213 3.739-2.001 1.475-3.16 2.105-4.213 2.843a39.335 39.335 0 0 1-2.105 1.37s.949-6.319 2.686-9.11c1.738-2.79 3.213-4.37 3.845-5.004zM323.29 284.592c1.282.973 2.964 1.371 2.964 1.371s.797-.041.797.267c0 .31-.93 0-1.903-.176-.973-.177-2.3-1.152-2.787-1.505-.486-.355-1.195-.799-.973-1.42.221-.62.62.489 1.901 1.463zM312.265 290.496c.266.307 2.389 1.904 2.389 1.904s.664.442 1.373.707c.707.267.883.667.883.667s-.133.175-.883-.043c-.752-.224-2.967-1.774-3.672-2.395-.708-.622-1.02-.797-.754-1.062.264-.266.397-.088.664.222zM356.953 211.088c-.397.483-.88 1.144-1.1.923-.222-.219.044-.44.572-1.057.528-.616.835-.925.835-.925s.747-1.19 1.19-1.632c.44-.44 1.1-.661.263.352-.837 1.016-1.365 1.853-1.76 2.339zM360.345 218.528c-.483.443-.923.837-1.451 1.41-.528.572-.925 1.188-1.232.881-.309-.309.792-.968 1.275-1.587a7.997 7.997 0 0 1 1.498-1.498 10.63 10.63 0 0 1 1.364-.881s-.97 1.235-1.454 1.675zM359.081 230.544c-.84.885-2.078 1.15-2.256.798-.178-.355.088-.64.794-.992.702-.352 1.848-1.1 2.42-1.497.572-.399 1.144-.839 1.541-1.234.395-.397.864-.753 1.011-.619.148.136-1.166 1.549-1.563 1.771-.398.221-1.107.887-1.947 1.773zM356.65 240.16c0-.354-.087-.53.62-.576.707-.043 1.681-.174 1.681-.174s1.372-.533 1.461-.268c.088.268-1.15.8-1.681.888-.532.09-1.194.266-1.503.44-.312.176-.579.042-.579-.31zM355.593 250.608c1.502 0 2.787-.357 2.875-.134.088.222-.707.577-1.46.841-.754.267-2.17.355-3.143.399-.973.043-1.15-.176-1.106-.663.045-.49 1.328-.443 2.834-.443zM343.817 262.048c.22-.22.752-.043 1.594.133.838.179 2.21.445 3.008.401.796-.043 2.521-.09 2.521-.09l.973.222c0 .222-1.282.177-3.14.398-1.858.222-3.097-.176-3.982-.31-.886-.133-1.196-.53-.974-.754zM338.953 270.192c.93.355 1.592.442 2.3.442.708 0 2.39.31 2.39.31s.796.09.664.4c-.133.309-.399 0-1.104-.09-.71-.09-1.24 0-2.479-.043-1.238-.045-1.947-.357-2.699-.488-.752-.134-1.592-.533-1.195-1.02.398-.485 1.193.134 2.123.489zM329.481 276.352c.531.533 2.566 1.906 2.566 1.906s.399.31 1.196.708c.796.399.752.578.619.799-.133.22-.62-.31-1.06-.488-.443-.178-1.903-1.155-2.655-1.771-.752-.624-1.725-1.11-1.548-1.552.175-.444.35-.132.882.398zM345.241 196.592s-.176.405-1.81 2.45c-1.635 2.043-.76.115-.35-.407.41-.528 2.802-3.91 3.62-4.846.815-.935.932-.467.524.115-.41.584-1.984 2.688-1.984 2.688zM348.681 207.088c-.234-.234.293-.467 1.226-1.634.934-1.168 2.801-3.56 2.801-3.56s.527-1.108.701-.993c.174.117-.642 1.867-1.4 2.629-.76.758-1.75 2.217-2.277 2.859-.526.641-.817.933-1.05.699zM344.153 226.768c0-.571 1.848-.485 2.683-.66.837-.177 2.333-.486 2.333-.486s1.762-.308 1.805-.088c.045.218-.352.439-1.32.618-.968.174-2.42.616-3.522.792-1.1.176-1.979.398-1.979-.176zM348.681 216.144c-1.226.992-2.042 1.46-2.685 1.81-.641.348-1.166.876-1.518.467-.35-.411.293-.701 1.342-1.168 1.051-.467 1.576-.875 1.576-.875s.584-.292 1.11-.584c.527-.292 1.402-.642.175.35zM338.121 209.136c.76-.642 1.402-.995 1.402-.995s.932-.875 1.108-.584c.175.294-1.05 1.168-1.633 1.693-.584.526-1.635 2.044-2.16 1.752-.525-.292.526-1.224 1.283-1.866zM345.017 236.56s1.02.264 1.682.442c.662.177.707.49-.488.49-1.196 0-1.682-.311-2.876-.535-1.195-.221-1.595-.354-1.416-.752.176-.4.797-.266 1.284-.133.486.133 1.814.488 1.814.488zM343.161 246.496c.088.224-.84 0-1.46-.22-.618-.223-1.902-.886-2.654-1.108-.753-.22-.753-.355-.753-.798 0-.442.798-.09 1.77.222.972.31 2.212 1.286 2.212 1.286s.797.397.885.618zM330.377 252.512c-.886-.534-1.064-.931-.752-1.198.309-.264.574-.221 1.282.355.708.576 2.08 1.55 2.08 1.55s.707.267 1.238.533 1.195.709 1.018.974c-.176.266-1.284 0-1.858-.488-.576-.486-2.125-1.196-3.008-1.726zM324.345 260.496c-.354-.312-1.414-.662-1.902-1.02-.487-.354-.797-1.417-.399-1.55.399-.132.62.442 1.46 1.061.841.623 3.716 2.527 3.716 2.527l.754.31c.797.309.441.533-.223.443-.664-.091-1.105-.091-1.902-.707-.795-.62-1.149-.754-1.504-1.064zM315.417 268.064c-.754-.309-1.86-1.285-2.39-1.77-.53-.49-1.194-1.108-.797-1.419.4-.309.84.09 1.46.663.62.577 2.258 2.305 2.258 2.305s.221.043 1.106.754c.885.707-.045.574-.354.265-.31-.308-.533-.488-1.283-.798z" fill="#b96b29"/> - <path fill="#d4af3a" d="M279.017 154.54l-3.6-2.556 4.24-1.086 2.72 2.17z"/> - <ellipse cx="-267.497" cy="151.546" transform="scale(-1 1)" ry="3.31" rx="3.434" fill="#b96b29"/> - <ellipse ry="1.979" cy="150.845" rx="2.072" cx="-267.497" transform="scale(-1 1)" fill="#d4af3a"/> - <path d="M274.665 140.173c-.883.328-2.032.184-2.032.184s-.347-1.523.493-2.266c.84-.739 1.6-1.273 2.093-1.768.492-.496.614-.66.614-.66s0 1.316.064 2.14c.06.826-.35 2.039-1.232 2.37z" fill="#d4af3a"/> - <ellipse ry=".597" cy="141.84" rx=".63" cx="-272.841" transform="scale(-1 1)" fill="#d4af3a"/> - <path d="M277.53 141.2c.266.371.84.966.84.966s-.699.021-1.273.432c-.574.413-1.314.762-1.99.68-.677-.084-.965-.723-.821-1.174.142-.453.47-.923 1.58-1.338 1.108-.41 1.396.063 1.663.434z" fill="#d4af3a"/> - <path d="M275.13 145.21c2.156.193 5.005-2.19 5.005-2.19.266 1.914 1.45 2.908 3.264 3.271l-.166.085s-1.686.862-3.678 1.165c-.901.137-1.703-.018-2.67-.211-1.169-.237-2.482-.57-3.193-1.008-1.3-.804-.912-2.885-.912-2.885s.19 1.577 2.35 1.773zM283.53 143.046c.884-.332 2.212-.97 2.765-1 .554-.027 1.357-.166 1.218.861-.138 1.027-1.189 1.527-2.211 1.554-1.024.029-1.55-.36-2.159-.667-.61-.304-.499-.415.386-.748zM290.281 139.382c.966-.692 1.827-.886 1.827-.886s.635 1.666.277 2.693c-.36 1.027-1.107 1.302-2.02 1.273-.913-.025-2.268-.499-1.88-1.192.385-.69.828-1.193 1.796-1.888z" fill="#d4af3a"/> - <ellipse ry=".538" cy="144.066" rx=".746" cx="-289.401" transform="scale(-1 1)" fill="#d4af3a"/> - <path d="M287.337 135.784c.598-2.838.498-5.926-2.192-9.86-2.691-3.937-7.371-5.53-7.371-5.53s-.149-.3-1.643-1.892c-1.495-1.595-4.533-3.585-4.533-3.585s3.526.87 5.531 1.512l-.002.105c0 1.362 1.082 2.466 2.416 2.466.509 0 .984-.163 1.374-.438 1.088.21 4.71 2.376 5.637 3.148-.23.378-.365.823-.365 1.3 0 1.358 1.084 2.464 2.418 2.464.4 0 .776-.098 1.109-.276.109.173.211.348.309.525a24.923 24.923 0 0 1 1.732 3.965c-.619.427-1.033 1.226-1.033 2.138 0 1.353.917 2.454 2.05 2.465.078.797.071 1.354.041 1.592-.1.799-.398 1.296-1.792 1.695-1.395.398-3.288 2.838-3.288 2.838-.134 0-1.13-1.792-.398-4.632z" fill="#d4af3a"/> - <path d="M278.761 117.61c-.509-.413-.598-1.045-.194-1.407.4-.363 1.138-.32 1.647.096.507.416.597 1.048.193 1.41-.401.361-1.139.32-1.646-.1zM287.785 123.707c-.571-.521-.672-1.31-.218-1.766.453-.455 1.285-.4 1.86.121.572.519.67 1.31.217 1.764-.453.456-1.285.401-1.859-.119z" fill="#d4af3a"/> - <ellipse ry="1.37" cy="131.374" rx="1.394" cx="-293.161" transform="scale(-1 1)" fill="#d4af3a"/> - <path d="M263.081 112.027c.723.159 2.06.594 4.062 1.642h-.036c-1.392 0-2.474.89-2.474 2.041 0 1.154 1.266 2.407 2.656 2.407 1.39 0 2.338-1.208 2.338-2.362 0-.27-.064-.533-.178-.771.594.366 1.227.771 1.902 1.227 4.434 2.989 5.479 4.434 7.67 8.519 2.191 4.081 2.988 8.564 2.042 11.204-.947 2.639-4.433 3.188-4.483 3.188-.05 0 .399-.399.45-.895.05-.5-.1-.749-.25-1.745-.149-.994-.05-2.19-.05-2.19s-.796-.1-1.244.449c-.45.547-1.098 1.195-1.544 1.74-.448.548-1.643 1.596-1.643 1.596s-.7-.999-.7-2.194c0-1.193.797-2.488.948-4.58.15-2.093-.948-5.83-2.988-8.567-2.043-2.74-5.876-5.229-7.022-5.778-1.146-.545-1.344-1.395-1.395-1.892-.05-.498-.149-.845-.248-2.092-.103-1.244 1.043-1.195 2.187-.947z" fill="#d4af3a"/> - <path d="M267.481 116.757c-.784 0-1.498-.706-1.498-1.352 0-.648.61-1.147 1.396-1.147.784 0 1.42.526 1.42 1.17 0 .646-.532 1.329-1.318 1.329zM260.89 142.798c-1.07.436-2.276.19-2.844-.188-.568-.381-.76-1.35-.087-1.903.67-.552 1.67-.533 2.292-.189.62.346 2.017 1.33 2.017 1.33s-.31.518-1.379.95z" fill="#d4af3a"/> - <path d="M257.465 143.998c.386.596.67.957 1.858 1.008 1.187.052 2.475-.025 3.25-.801.774-.775 1.314-1.863 1.314-1.863l1.341-.025s.437 1.864 1.03 2.377c.594.519 2.658.597 3.56-.076.903-.674 1.729-1.501 1.882-1.397.154.104 0 .776-.928 1.577-.928.8-1.57 1.295-3.069 1.295h-8.508s-1.728.1-2.22-.933c-.49-1.034-.512-1.682-.283-1.94.23-.257.386.182.773.778z" fill="#d4af3a"/> - <path d="M270.41 142.557c-1.278.709-1.983.277-2.447-.295-.468-.57-.552-.828-.552-.828s1.206-.434 1.792-.78c.587-.344.982-.673 1.568-.604.587.07.672.156.672.156s.241 1.64-1.034 2.35z" fill="#d4af3a"/> - <ellipse ry="2.814" cy="129.984" rx="2.84" cx="-276.569" transform="scale(-1 1)" fill="#b96b29"/> - <path d="M271.641 120.23c1.136-.764 2.805-.459 3.73.682.921 1.144.747 2.693-.392 3.456-1.136.766-2.808.46-3.732-.682-.921-1.139-.745-2.688.394-3.456z" fill="#b96b29"/> - <ellipse ry="1.573" cy="129.619" rx="1.65" cx="-276.681" transform="scale(-1 1)" fill="#d4af3a"/> - <path d="M272.825 120.54c.731-.2 1.635.16 2.016.804.38.645-.022 1.331-.997 1.53-1.793.366-2.648-1.887-1.019-2.333z" fill="#d4af3a"/> -</svg> diff --git a/img/flags/1x1/mf.svg b/img/flags/1x1/mf.svg deleted file mode 100644 index 2385562..0000000 --- a/img/flags/1x1/mf.svg +++ /dev/null @@ -1,7 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" height="512" width="512" viewBox="0 0 512 512"> - <g fill-rule="evenodd" stroke-width="1pt"> - <path fill="#fff" d="M0 0h512.005v512H0z"/> - <path fill="#00267f" d="M0 0h170.667v512H0z"/> - <path fill="#f31830" d="M341.333 0H512v512H341.333z"/> - </g> -</svg> diff --git a/img/flags/1x1/mg.svg b/img/flags/1x1/mg.svg deleted file mode 100644 index ec53b17..0000000 --- a/img/flags/1x1/mg.svg +++ /dev/null @@ -1,7 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" height="512" width="512" viewBox="0 0 512 512"> - <g fill-rule="evenodd" stroke-width="1pt"> - <path fill="#ff3319" d="M170.664 0h341.33v255.992h-341.33z"/> - <path fill="#00cc28" d="M170.664 255.992h341.33v255.992h-341.33z"/> - <path fill="#fff" d="M0 0h170.664v511.984H0z"/> - </g> -</svg> diff --git a/img/flags/1x1/mh.svg b/img/flags/1x1/mh.svg deleted file mode 100644 index f296605..0000000 --- a/img/flags/1x1/mh.svg +++ /dev/null @@ -1,8 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" height="512" width="512" viewBox="0 0 512 512"> - <g fill-rule="evenodd"> - <path fill="#3b5aa3" d="M0 0h511.9v512H0z"/> - <path d="M139.06 1.24l-5.4 87.963-23.12-56.095 8.87 59.71-35.796-48.252L107.08 99.62 60.067 63.154l36.592 45.826-53.14-23.552 46.549 35.244-57.895-7.655 54.706 21.687-85.871 7.854 86.083 5.754-54.547 22.427 57.311-7.755-46.377 34.245 53.819-23.615-36.708 46.202 46.7-35.358-23.136 53.817 37.382-46.801-10.119 58.338L134.93 195.3l5.315 86.112 8.293-85.9 20.274 54.844-7.73-59.095 37.199 46.84-24.441-54.707 46.68 37.649-37.112-47.005 55.48 23.1-49.101-35.857 59.797 10.08-57.246-21.987 89.038-5.53-89.038-8.292 58.605-19.535-60.733 7.629 50.18-35.082-56.558 22.75 39.06-47.352-47.565 37.146 22.888-56.832-36.92 48.327 7.93-60.27-21.963 56.868-8.204-87.962z" fill="#fff"/> - <path d="M0 498.22L511.94 0l-.03 92.71L0 512v-13.78z" fill="#e2ae57"/> - <path d="M17.918 511.98l494.08-320.81-.11-101.85L-.002 512l17.918-.02z" fill="#fff"/> - </g> -</svg> diff --git a/img/flags/1x1/mk.svg b/img/flags/1x1/mk.svg deleted file mode 100644 index 9c82c3c..0000000 --- a/img/flags/1x1/mk.svg +++ /dev/null @@ -1,5 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" height="512" width="512" viewBox="0 0 512 512"> - <path fill="#d20000" d="M0 0h512v512H0z"/> - <path d="M0 0h86.8L256 246.857 425.2 0H512L0 512h86.8L256 265.143 425.2 512H512zm512 204.8v102.4L0 204.8v102.4zM204.8 0L256 219.43 307.2 0zm0 512L256 292.57 307.2 512z" fill="#ffe600"/> - <circle r="82.286" cy="256" cx="256" fill="#ffe600" stroke="#d20000" stroke-width="18.286"/> -</svg> diff --git a/img/flags/1x1/ml.svg b/img/flags/1x1/ml.svg deleted file mode 100644 index 6b54ecb..0000000 --- a/img/flags/1x1/ml.svg +++ /dev/null @@ -1,7 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" height="512" width="512" viewBox="0 0 512 512"> - <g fill-rule="evenodd"> - <path fill="red" d="M340.6 0h171.393v511.984H340.6z"/> - <path fill="#009a00" d="M0 0h170.3v511.984H0z"/> - <path fill="#ff0" d="M170.3 0h171.16v511.984H170.3z"/> - </g> -</svg> diff --git a/img/flags/1x1/mm.svg b/img/flags/1x1/mm.svg deleted file mode 100644 index 562c97b..0000000 --- a/img/flags/1x1/mm.svg +++ /dev/null @@ -1,16 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" height="512" width="512" viewBox="0 0 512 512"> - <defs> - <path id="a" transform="scale(8.844)" fill="#fff" d="M.162 0h-.324L0-.5z"/> - <g id="b"> - <use xlink:href="#a" transform="rotate(-144)" width="18" height="12"/> - <use xlink:href="#a" transform="rotate(-72)" width="18" height="12"/> - <use xlink:href="#a" width="18" height="12"/> - <use xlink:href="#a" transform="rotate(72)" width="18" height="12"/> - <use xlink:href="#a" transform="rotate(144)" width="18" height="12"/> - </g> - </defs> - <path d="M0 0h512v170.667H0z" fill="#fecb00"/> - <path d="M0 341.333h512V512H0z" fill="#ea2839"/> - <path d="M0 170.667h512v170.666H0z" fill="#34b233"/> - <use xlink:href="#b" x="9" y="6.422" width="18" height="12" transform="matrix(42.66667 0 0 42.66667 -127.659 0)"/> -</svg> diff --git a/img/flags/1x1/mn.svg b/img/flags/1x1/mn.svg deleted file mode 100644 index 99cfeae..0000000 --- a/img/flags/1x1/mn.svg +++ /dev/null @@ -1,13 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" height="512" width="512" viewBox="0 0 512 512"> - <path fill="#c4272f" d="M0 0h512v512H0z"/> - <path fill="#015197" d="M170.667 0h170.667v512H170.667z"/> - <circle cx="85.627" cy="215.251" r="27.996" fill="#f9cf02"/> - <circle cx="85.627" cy="202.526" r="30.541" fill="#c4272f"/> - <path d="M72.919 169.458c0 7.018 5.69 12.707 12.708 12.707s12.707-5.69 12.707-12.707c0-5.084-3.177-5.719-3.177-7.625 0-1.906 1.907-4.448-1.906-7.625 1.906 3.177-1.27 3.813-1.27 6.99 0 3.176 1.27 3.176 1.27 5.718a2.542 2.542 0 0 1-5.083 0c0-2.542 2.542-5.083 2.542-8.895 0-3.813-.636-5.083-2.542-8.26-1.906-3.177-5.083-5.719-2.541-8.26-3.813 1.27-1.907 6.353-1.907 9.53 0 3.177-2.541 5.083-2.541 8.896 0 3.812 1.906 4.447 1.906 6.989a2.542 2.542 0 0 1-5.083 0c0-2.542 1.27-2.542 1.27-5.718 0-3.177-3.176-3.813-1.27-6.99-3.812 3.177-1.906 5.719-1.906 7.625 0 1.906-3.177 2.541-3.177 7.625z" fill="#f9cf02" fill-rule="evenodd"/> - <circle cx="85.627" cy="207.616" r="20.36" fill="#f9cf02"/> - <path d="M29.635 248.337v122.162h25.45V248.337zm86.532 0v122.162h25.45V248.337zm-55.991 20.36v10.18h50.901v-10.18zm0 71.262v10.18h50.901v-10.18zm0-91.622h50.901l-25.45 15.27zm0 106.892h50.901l-25.45 15.27z" fill="#f9cf02"/> - <circle cx="85.627" cy="309.418" r="26.978" fill="#f9cf02" stroke="#c4272f" stroke-width="3.054"/> - <path d="M85.627 282.44a13.489 13.489 0 0 1 0 26.978 13.489 13.489 0 1 0 0 26.978" fill="none" stroke="#c4272f" stroke-width="3.054"/> - <circle r="5.09" cy="295.929" cx="85.627" fill="#c4272f"/> - <circle r="5.09" cy="322.907" cx="85.627" fill="#c4272f"/> -</svg> diff --git a/img/flags/1x1/mo.svg b/img/flags/1x1/mo.svg deleted file mode 100644 index 70ad7fd..0000000 --- a/img/flags/1x1/mo.svg +++ /dev/null @@ -1,9 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" height="512" width="512" viewBox="0 0 512 512"> - <path fill="#00785e" d="M0 0h512v512H0z"/> - <path fill="#fbd116" d="M272.533 147.425L256 96.533l-16.533 50.892 43.29-31.45h-53.515z"/> - <g id="a"> - <path d="M256 353.734H146.69a156.086 156.086 0 0 1-4.057-4.267H256a2.283 2.283 0 0 1 1.52 2.02c.05.982-.568 1.902-1.52 2.247zm0-33.426c.634-1.296 1.87-4.298 1.31-8.053a13.215 13.215 0 0 0-1.31-4.064c-6.134 5.806-17.658 15.107-34.66 20.25a86.44 86.44 0 0 1-25.073 3.692h-67.342a154.023 154.023 0 0 0 6.242 8.533h65.1c21.227 0 40.673-7.657 55.733-20.357zm-116.9-26.34a34.438 34.438 0 0 1-10.34 2.24c15.858 17.938 39.033 29.26 64.84 29.26 24.513 0 46.65-10.212 62.4-26.61a470.335 470.335 0 0 0 4.85-62.834A470.318 470.318 0 0 0 256 163.84c-7.034 6.307-20.214 19.932-26.426 40.82A86.448 86.448 0 0 0 226 229.333c0 17.793 5.38 34.334 14.6 48.092-11.324-14.627-18.067-32.975-18.067-52.892 0-13.23 2.976-25.768 8.292-36.984a34.655 34.655 0 0 1-8.034-13.85c-7.122 12.57-11.19 27.094-11.19 42.566 0 19.246 6.293 37.026 16.932 51.4-18.528-19.424-44.657-31.533-73.6-31.533-1.554 0-3.103.04-4.64.108a34.82 34.82 0 0 1 7.2 9.493c28.79.044 54.78 12.075 73.266 31.36-17.653-14.747-40.375-23.626-65.157-23.626-13.85 0-27.054 2.772-39.09 7.79 12.368 32.682 43.962 55.943 80.958 55.943 2.396 0 4.77-.108 7.117-.3a86.923 86.923 0 0 1-15.383 1.366c-23.344 0-44.53-9.258-60.102-24.3zM256 388.665h-56.65c17.532 6.968 36.645 10.8 56.65 10.8a11.64 11.64 0 0 0 1.334-5.285 11.656 11.656 0 0 0-1.334-5.514zm0-26.133h-99.875a153.957 153.957 0 0 0 8.342 6.667H256c.23-.234 1.358-1.44 1.358-3.334 0-1.896-1.13-3.1-1.358-3.333zm0 13.333h-81.808a153.198 153.198 0 0 0 15.41 8.533H256a8.06 8.06 0 0 0 1.237-4.474 8.032 8.032 0 0 0-1.237-4.06z" fill="#fff"/> - <path fill="#fbd116" d="M155.592 211.667l-7.067-36.342-15.64 33.558 32.373-17.958-36.74-4.508zm49.3-58.75l-29.575-22.276 10.825 35.41 12.058-35.016-30.334 21.24z"/> - </g> - <use height="100%" width="100%" xlink:href="#a" transform="matrix(-1 0 0 1 512 0)"/> -</svg> diff --git a/img/flags/1x1/mp.svg b/img/flags/1x1/mp.svg deleted file mode 100644 index 7d9f188..0000000 --- a/img/flags/1x1/mp.svg +++ /dev/null @@ -1,88 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" height="512" width="512" viewBox="0 0 512 512"> - <defs> - <clipPath id="a"> - <path fill-opacity=".67" d="M248.03 0h496.06v496.06H248.03z"/> - </clipPath> - </defs> - <g clip-path="url(#a)" transform="translate(-256) scale(1.0321)"> - <path fill-rule="evenodd" fill="#0071bc" d="M0 0h992.13v496.06H0z"/> - <path d="M553.43 392.43s17.493-18.502 34.313-14.97c5.046-19.511 24.053-21.025 24.053-21.025s-1.85-21.53 22.539-26.239c.673-14.634 15.475-26.744 15.475-26.744s-3.028-22.707 12.447-27.921c-9.42-17.998 3.196-31.118 3.028-31.454-.168-.336-15.98-28.426-1.85-36.5-14.97-12.615-10.093-26.912-10.093-26.912s-16.316-4.205-10.429-23.717c-13.456-2.355-16.147-24.053-16.147-24.053s-20.689 4.205-23.212-13.793c-13.624 2.187-15.138-11.269-15.306-11.269-.168 0-27.08 7.233-32.463-13.12-10.428 5.383-14.97-4.205-14.97-4.205s-14.97 7.4-23.885-6.896c-17.829 11.1-27.753-.505-27.753-.505s-23.38 15.475-31.117 3.532c-13.793 13.961-26.07 7.906-26.07 7.906s-10.43 18.502-27.25 13.792c-3.868 17.157-23.212 17.493-23.212 17.493s2.019 15.138-21.193 19.175c-3.027 17.829-15.138 20.857-15.138 20.857s1.178 17.325-9.755 22.875c3.868 9.756-6.224 21.698-6.224 21.698s10.765 13.456-3.868 28.594c14.129 3.7 3.868 28.09 3.868 28.09s19.511 8.746 7.233 24.894c13.96 4.541 9.587 15.643 9.756 22.203 8.914 4.037 16.82 2.018 12.952 20.016 27.417 3.028 14.465 18.166 14.465 18.166s12.783.505 7.737 10.597c23.38-.505 26.744 17.493 26.744 17.493s21.698-5.72 24.558 2.691c2.86 8.41-9.42 65.094-9.42 65.094s-18.333 0-31.957-14.633c-31.958-.84-24.894-21.866-25.4-21.866-.504 0-10.596 3.869-15.81-13.624-21.362 4.373-20.69-13.624-20.857-13.792-.169-.168-9.588-4.373-6.056-13.288-22.034 2.018-20.352-19.51-20.352-19.51-4.822-1.963-6.616-6.449-5.887-10.934-2.86-1.01-22.37-1.346-12.279-27.08-18.67-11.27-7.064-24.22-7.064-24.22s-25.735-13.289-5.887-28.595c-14.802-21.866 1.177-32.799 1.177-32.799s-20.521-20.857.336-35.659c-3.364-31.622 15.475-39.19 15.475-39.19s-9.923-25.736 16.988-36.5c1.682-26.072 20.521-26.745 20.521-26.745s.505-20.689 30.108-18.67c5.72-18.502 25.903-14.802 25.903-14.802s6.224-22.37 33.64-11.606c13.961-27.249 34.65-13.288 34.65-13.288s13.12-8.578 19.68-5.887c8.33-14.315 26.063-.555 37.53 2.215 4.155-1.616 18.986-12.812 30.424 1.317 15.138-9.924 28.09 7.906 28.09 7.906s20.857-10.596 30.613 13.624c44.237-4.037 37.845 24.894 37.845 24.894s34.818-7.906 27.25 26.744c31.621 2.186 28.425 23.044 28.425 23.044s20.016 15.138 11.27 28.762c17.828.84 11.268 17.998 11.268 17.998s13.624 5.214 2.355 26.408c26.071 20.857 5.046 41.546 4.878 41.378-.168-.168 13.961 16.82 1.178 36.332 3.868 30.949-11.774 38.855-11.774 38.855s4.036 20.016-13.456 25.735c-.337 23.548-22.54 26.408-22.54 26.408s5.888 10.229-16.146 20.994c-.87 15.757-23.885 17.02-23.885 17.02s-2.187 28.93-31.454 21.193c-7.104 23.212-41.378 16.316-42.05 15.979-.673-.337-6.56-49.788-6.56-49.956z" fill-rule="evenodd" stroke="#000" stroke-width="1.92" fill="#fff"/> - <path stroke-linejoin="round" d="M340.86 114.83c.086 0 7.418 6.36 6.048 15.944-1.369 9.585-6.904 22.908-5.791 32.834.68 3.98.422 11.11.422 11.11s-6.647-9.445-6.732-19.543 7.197-19.686 7.197-27.131-1.315-13.385-1.144-13.214zM337.22 117.69s-9.622 9.185-10.861 18.112c-.915 4.601-1.27 26.041-1.378 35.556-.216 2.92-1.426 14.444-1.683 18.637-.257 4.193 7.078-7.158 7.497-16.4-.23-9.567-.23-29.717.743-32.745.865-3.893.676-8.194 2.015-12.098 1.77-5.418 3.752-10.976 3.667-11.062z" fill-rule="evenodd" stroke="#000" stroke-width="1.92" fill="#217900"/> - <g fill-rule="evenodd" stroke="#ef8a10" fill="#ffd200"> - <path d="M548.877 87.677s12.475-5.755 16.041-16.472-10.796-10.82-12.694-7.414c-1.897 3.407 1.619 11.888.713 14.13-.905 2.243-5.98 7.656-4.06 9.756z" stroke-width="1.9196"/> - <path d="M438.31 91.587s8.099-11.098 5.999-22.197c-2.1-11.097-14.697-4.199-14.697-.3 0 3.9 7.198 9.599 7.498 11.998.3 2.4-1.5 9.598 1.2 10.498zM416.415 98.186s8.099-11.097 5.999-22.196c-2.1-11.098-14.697-4.2-14.697-.3 0 3.9 7.198 9.598 7.498 11.998.3 2.4-1.5 9.598 1.2 10.498zM392.12 105.684s8.1-11.098 6-22.196c-2.1-11.098-14.697-4.2-14.697-.3 0 3.9 7.198 9.598 7.498 11.998.3 2.4-1.5 9.598 1.2 10.498zM375.025 122.78s8.098-11.098 5.999-22.196c-2.1-11.098-14.697-4.2-14.697-.3 0 3.9 7.198 9.598 7.498 11.998.3 2.4-1.5 9.598 1.2 10.498zM357.029 139.277s8.098-11.098 5.998-22.196c-2.1-11.098-14.697-4.2-14.697-.3 0 3.9 7.199 9.598 7.499 11.998.3 2.4-1.5 9.598 1.2 10.498z" stroke-width="1.9196pt"/> - <path d="M398.406 43.176s-10.785 8.511-11.747 19.765c-.962 11.253 13.026 7.997 14.075 4.24 1.048-3.755-4.352-11.18-3.996-13.571.356-2.392 4.026-8.841 1.667-10.434zM434.398 32.077s-10.785 8.511-11.747 19.764c-.962 11.254 13.027 7.997 14.075 4.242 1.049-3.756-4.352-11.18-3.996-13.572.357-2.392 4.026-8.841 1.668-10.434zM300.27 129.24s2.278 13.548 11.683 19.802 13.275-7.577 10.486-10.302-11.896-1.56-13.822-3.021c-1.926-1.463-5.817-7.78-8.347-6.479zM282.295 175.243s.111 13.738 8.411 21.398c8.3 7.66 14.305-5.388 11.98-8.52s-11.5-3.416-13.171-5.164c-1.671-1.748-4.517-8.6-7.22-7.714zM323.766 226.636s-4.904-12.834-15.357-17.111c-10.453-4.278-11.52 10.045-8.25 12.167 3.272 2.122 11.97-.816 14.147.238 2.176 1.054 7.236 6.481 9.46 4.706zM315.15 204.427s8.314-10.938 6.43-22.076c-1.883-11.136-14.612-4.484-14.688-.586-.076 3.899 7.01 9.737 7.263 12.142.254 2.404-1.686 9.566.996 10.519zM574.37 98.774s12.475-5.755 16.04-16.472-10.796-10.82-12.693-7.413c-1.898 3.406 1.618 11.887.713 14.13-.906 2.242-5.981 7.655-4.06 9.755zM612.09 117.59s7.338-11.615 4.5-22.548c-2.837-10.932-14.944-3.207-14.684.684.261 3.89 7.825 9.095 8.285 11.469.46 2.374-.855 9.677 1.899 10.394zM715.057 224.486s-4.92-12.826-15.38-17.09c-10.459-4.263-11.507 10.06-8.233 12.178 3.274 2.118 11.969-.832 14.147.219 2.177 1.051 7.244 6.472 9.466 4.693zM664.706 232.453s.285-13.736 8.682-21.29c8.397-7.555 14.235 5.567 11.871 8.669-2.363 3.101-11.542 3.27-13.236 4.997-1.693 1.727-4.624 8.544-7.317 7.623zM656.605 86.793s-12.843-4.878-22.99.08c-10.15 4.957-.168 15.283 3.593 14.253 3.76-1.03 7.355-9.478 9.59-10.402 2.235-.923 9.653-1.089 9.808-3.93zM627.216 62.198s-12.843-4.879-22.99.078c-10.15 4.958-.168 15.284 3.593 14.254 3.76-1.03 7.355-9.478 9.59-10.402 2.235-.923 9.653-1.089 9.808-3.93zM583.392 38.744s-10.888 8.378-11.988 19.618c-1.1 11.241 12.927 8.157 14.021 4.414 1.095-3.743-4.214-11.233-3.829-13.62.386-2.388 4.134-8.791 1.796-10.413zM554.847 31.878s-4.965 12.81-.076 22.99c4.888 10.183 15.282.271 14.277-3.497-1.004-3.767-9.428-7.418-10.336-9.66-.908-2.241-1.024-9.66-3.865-9.834zM473.898 81.24s8.88-10.482 7.59-21.703c-1.29-11.22-14.354-5.253-14.636-1.364-.283 3.89 6.484 10.094 6.61 12.51.125 2.415-2.192 9.464.436 10.557z" stroke-width="1.9196"/> - </g> - <path d="M522.23 103.74s21.288 1.34 22.33 13.547-5.061 19.651-5.061 19.651 2.68 26.35-18.162 34.091c-22.33 2.68-57.314.596-57.314.596s-10.273 2.53-14.44-18.757c-4.169-21.288-5.36-36.324-5.36-36.324s2.084-11.91 17.12-12.654c15.036-.745 60.738.148 60.887-.15z" fill-rule="evenodd" stroke="#000" stroke-width="1.92" fill="#8c8a8c"/> - <path d="M539.35 136.79s-11.463 14.291-10.272 20.097" stroke="#000" stroke-linecap="round" stroke-width="1.92" fill="none"/> - <path d="M524.02 170.28c2.829 2.382 5.508 5.061 6.104 13.845l1.19 17.567 14.887 133.98 13.1 96.914.894 15.036s-3.126 11.016-11.91 11.909c-6.4 13.398-41.087 17.269-44.511 17.12-3.127-.149-14.143-4.764-20.842-4.168-6.7.595-18.311 5.061-23.521 4.317-5.21-.744-16.971-4.764-19.055-13.25-14.59-4.614-16.971-15.78-16.971-15.78l15.78-112.1 15.333-141.72s1.786-18.905 9.378-21.734c7.89-.745 48.68.744 60.143-1.936z" fill-rule="evenodd" stroke="#000" stroke-width="1.92" fill="#8c8a8c"/> - <path d="M443.63 364.26l-3.126 99.147M539.95 377.36l8.783 81.729" stroke="#000" stroke-width="1.92" fill="none"/> - <path fill="none" stroke="#000" d="M285.28 312.74l-.327 1.144M697.12 309.15l.327 1.144"/> - <path stroke-linejoin="round" d="M274.24 178.89s6.522 9.03 7.693 14.215c1.17 5.184 3.344 15.386 6.187 19.566 2.843 4.18 19.065 27.427 19.901 37.126.168 6.355-6.689 17.225-16.89 17.392-6.355-.167-22.744-4.348-23.413-18.396-.67-14.048 5.016-14.382 5.685-22.911.67-8.529.837-46.826.837-46.993z" stroke="#6b18b5" stroke-width="1.92" fill="none"/> - <path stroke-linejoin="round" d="M386.28 55.917s-6.753.482-11.951 3.3c-4.028 2.484-10.851 6.057-15.619 12.668-12.127 9.454-30.371 13.865-36.125 21.719-3.444 5.343-3.233 18.194 5.397 23.636 5.517 3.159 21.693 8.1 29.562-3.555 7.87-11.657 3.185-14.897 7.044-22.532 6.368-17.501 21.605-35.093 21.692-35.236zM550.08 38.857s-5.043-4.516-10.684-6.29c-4.586-1.166-12.224-.659-20.128-1.435-15.227-2.135-30.926-13.148-40.57-11.818-6.234 1.243-15.319 10.334-13.226 20.32 1.568 6.16 8.458 18.62 22.306 16.165 13.848-2.454 13.728-5.475 21.898-8.014 19.926-11.173 40.241-8.89 40.404-8.928zM712.52 196.74c1.137-2.598-.957-7.482-2.444-13.206-1.444-4.507-3.6-11.501-8.872-17.718-6.264-14.042-5.19-33.299-11.433-40.771-4.36-4.627-16.885-7.507-24.24-.437-4.391 4.597-13.073 19.112-3.648 29.551 9.425 10.438 13.532 6.507 20.017 12.086 15.46 10.385 23.032 28.59 30.62 30.494zM706.98 319.41c2.111-2.923 5.892-8.557 5.442-13.249-.356-3.716 1.703-14.982 1.928-19.897 1.397-15.313 10.982-27.742 8.376-41.046-1.542-6.167-10.575-14.964-20.447-12.391-6.078 1.864-19.61 9.31-16.49 23.023 3.122 13.713 7.553 13.486 10.483 21.523 8.413 16.616 3.03 36.354 10.708 42.036z" stroke="#6b18b5" fill="none"/> - <path d="M594.29 416.76s-2.596 4.992 7.787 9.385M615.06 404.98s11.581-2.795 19.368 0M649.6 375.82c0 .2-1.597 5.192 7.588 12.38M656.19 362.85s6.789 4.992 18.17 4.792M587.7 377.42s.4 13.178-6.39 19.368M610.46 357.05s11.182 2.795 20.367-1.797M682.15 337.69s2.396 3.394 14.776 2.796M633.83 329.9c.4.2 14.576 4.792 23.562.6M662.18 275.59s.599-.799 4.992 14.576M673.16 232.26s-.6 8.187-7.188 11.781M715.29 198.71s-9.584 7.787-7.787 10.982M667.57 193.12s4.992 8.386-3.195 14.177M643.41 157.18s8.586-.4 12.38 6.989M627.24 132.82h6.59M661.38 102.87c0 .2 1.797 1.797-1.597 5.191M600.08 103.67s4.593 7.188 3.794 15.974M626.64 79.308c1.997-.2 8.786-3.195 8.786-3.195M597.09 50.754c-.2 0-2.596 8.985 1.797 12.18M586.1 91.688c0 9.584 7.588 7.188 2.396 16.373M567.53 83.7c-.2 0-11.98 9.185-11.98 10.782M536.78 78.709s4.992 4.992 3.794 11.781M522.21 74.715s-2.596 7.588-5.99 9.584M495.65 72.718c-.2.4-4.193 8.985-6.989 10.583M459.31 72.918c.2 0 3.993 7.987-.998 13.778M450.92 31.585c.2.2.799 6.19-2.995 11.381M414.98 45.163c0 .2 1.597 6.79-8.985 8.985M394.62 106.06c.2.4 10.183 1.997 10.183 1.997M369.66 129.23c.2-.2 12.18-3.794 12.18-3.794M350.29 144.2c.4 0 8.386 1.398 10.383.4M344.7 151.59s2.596 1.398.4 14.776M305.76 116.45l4.792 7.188M289.39 153.39c0-.2 4.792 7.188 11.182 8.586M327.13 190.93c.2 0 7.787-1.598 8.985-2.396M323.73 218.08c.2 0-.2-4.992 5.99-8.386M315.54 230.46c0 .2 5.79 7.388 9.784 8.386M312.15 244.24c.599-.2 6.789-5.591 13.977-5.192M310.15 262.81s.2 6.19 18.57 4.593M311.95 284.57c0-.2 5.391-12.38 16.373-16.972M326.73 300.15s1.597-5.192 10.782-8.786M336.91 320.71s6.59-5.391 8.985-6.19M345.1 336.69s3.994 4.193 13.977-2.995M296.97 340.08c1.198-.2 15.774-3.594 20.766 3.994M302.77 352.06s15.375-1.997 17.372-.4M357.68 355.26s-1.997 4.193 16.972-2.795M381.24 362.85c-3.394 5.79.799 10.383-3.594 12.979M323.53 370.83c.599-.4 6.989-2.596 5.99-11.781M329.32 384.61c.799-.2 11.381-4.792 13.578-2.396M350.09 397.99s1.398-9.385 4.393-10.383M366.06 412.16s8.786-.2 12.58-2.995M383.03 380.42c.2.2 8.187 4.393 25.159.2M389.42 418.55s2.396 12.18 2.196 14.976" stroke="#000" stroke-width="1.92" fill="none"/> - <g fill-rule="evenodd" stroke="#000" stroke-width="1pt" fill="#de2010"> - <path d="M232.84 119.03c.002-2.109-.794-4.058-2.087-5.114-1.294-1.055-2.888-1.055-4.18 0s-2.09 3.005-2.088 5.114c-.002 2.109.794 4.058 2.087 5.114 1.293 1.055 2.887 1.055 4.18 0s2.09-3.005 2.088-5.114z" transform="matrix(1.84875 -.23108 .23809 1.90478 237.273 58.345)"/> - <path d="M232.84 119.03c.002-2.109-.794-4.058-2.087-5.114-1.294-1.055-2.888-1.055-4.18 0s-2.09 3.005-2.088 5.114c-.002 2.109.794 4.058 2.087 5.114 1.293 1.055 2.887 1.055 4.18 0s2.09-3.005 2.088-5.114z" transform="matrix(1.84875 -.23108 .23809 1.90478 235.622 38.06)"/> - <path d="M232.84 119.03c.002-2.109-.794-4.058-2.087-5.114-1.294-1.055-2.888-1.055-4.18 0s-2.09 3.005-2.088 5.114c-.002 2.109.794 4.058 2.087 5.114 1.293 1.055 2.887 1.055 4.18 0s2.09-3.005 2.088-5.114z" transform="matrix(1.8213 -.39265 .40456 1.87649 218.076 57.381)"/> - <path d="M232.84 119.03c.002-2.109-.794-4.058-2.087-5.114-1.294-1.055-2.888-1.055-4.18 0s-2.09 3.005-2.088 5.114c-.002 2.109.794 4.058 2.087 5.114 1.293 1.055 2.887 1.055 4.18 0s2.09-3.005 2.088-5.114z" transform="matrix(1.66103 -.84397 .86954 1.71136 192.536 159.48)"/> - <path d="M232.84 119.03c.002-2.109-.794-4.058-2.087-5.114-1.294-1.055-2.888-1.055-4.18 0s-2.09 3.005-2.088 5.114c-.002 2.109.794 4.058 2.087 5.114 1.293 1.055 2.887 1.055 4.18 0s2.09-3.005 2.088-5.114z" transform="matrix(1.66103 -.84397 .86954 1.71136 184.518 141.318)"/> - <path d="M232.84 119.03c.002-2.109-.794-4.058-2.087-5.114-1.294-1.055-2.888-1.055-4.18 0s-2.09 3.005-2.088 5.114c-.002 2.109.794 4.058 2.087 5.114 1.293 1.055 2.887 1.055 4.18 0s2.09-3.005 2.088-5.114z" transform="matrix(1.5836 -.9816 1.01134 1.63158 174.26 164.595)"/> - <path d="M232.84 119.03c.002-2.109-.794-4.058-2.087-5.114-1.294-1.055-2.888-1.055-4.18 0s-2.09 3.005-2.088 5.114c-.002 2.109.794 4.058 2.087 5.114 1.293 1.055 2.887 1.055 4.18 0s2.09-3.005 2.088-5.114z" transform="matrix(1.48128 -1.1301 1.16435 1.52616 167.178 194.116)"/> - <path d="M232.84 119.03c.002-2.109-.794-4.058-2.087-5.114-1.294-1.055-2.888-1.055-4.18 0s-2.09 3.005-2.088 5.114c-.002 2.109.794 4.058 2.087 5.114 1.293 1.055 2.887 1.055 4.18 0s2.09-3.005 2.088-5.114z" transform="matrix(1.30182 -1.3329 1.37328 1.34126 168.96 246.932)"/> - <path d="M232.84 119.03c.002-2.109-.794-4.058-2.087-5.114-1.294-1.055-2.888-1.055-4.18 0s-2.09 3.005-2.088 5.114c-.002 2.109.794 4.058 2.087 5.114 1.293 1.055 2.887 1.055 4.18 0s2.09-3.005 2.088-5.114z" transform="matrix(1.17368 -1.44698 1.49084 1.20925 167.752 274.114)"/> - <path d="M232.84 119.03c.002-2.109-.794-4.058-2.087-5.114-1.294-1.055-2.888-1.055-4.18 0s-2.09 3.005-2.088 5.114c-.002 2.109.794 4.058 2.087 5.114 1.293 1.055 2.887 1.055 4.18 0s2.09-3.005 2.088-5.114z" transform="matrix(.91718 -1.62175 1.6709 .94498 187.99 334.216)"/> - <path d="M232.84 119.03c.002-2.109-.794-4.058-2.087-5.114-1.294-1.055-2.888-1.055-4.18 0s-2.09 3.005-2.088 5.114c-.002 2.109.794 4.058 2.087 5.114 1.293 1.055 2.887 1.055 4.18 0s2.09-3.005 2.088-5.114z" transform="matrix(.76579 -1.6985 1.74996 .78897 193.623 359.94)"/> - <path d="M232.84 119.03c.002-2.109-.794-4.058-2.087-5.114-1.294-1.055-2.888-1.055-4.18 0s-2.09 3.005-2.088 5.114c-.002 2.109.794 4.058 2.087 5.114 1.293 1.055 2.887 1.055 4.18 0s2.09-3.005 2.088-5.114z" transform="matrix(.65019 -1.74601 1.79893 .66988 194.886 377.196)"/> - <path d="M232.84 119.03c.002-2.109-.794-4.058-2.087-5.114-1.294-1.055-2.888-1.055-4.18 0s-2.09 3.005-2.088 5.114c-.002 2.109.794 4.058 2.087 5.114 1.293 1.055 2.887 1.055 4.18 0s2.09-3.005 2.088-5.114z" transform="matrix(.51503 -1.79055 1.84481 .53064 200.752 397.832)"/> - <path d="M232.84 119.03c.002-2.109-.794-4.058-2.087-5.114-1.294-1.055-2.888-1.055-4.18 0s-2.09 3.005-2.088 5.114c-.002 2.109.794 4.058 2.087 5.114 1.293 1.055 2.887 1.055 4.18 0s2.09-3.005 2.088-5.114z" transform="matrix(.23314 -1.8485 1.90451 .2402 237.114 442.117)"/> - <path d="M232.84 119.03c.002-2.109-.794-4.058-2.087-5.114-1.294-1.055-2.888-1.055-4.18 0s-2.09 3.005-2.088 5.114c-.002 2.109.794 4.058 2.087 5.114 1.293 1.055 2.887 1.055 4.18 0s2.09-3.005 2.088-5.114z" transform="matrix(.07476 -1.86165 1.91806 .07702 250.489 463.367)"/> - <path d="M232.84 119.03c.002-2.109-.794-4.058-2.087-5.114-1.294-1.055-2.888-1.055-4.18 0s-2.09 3.005-2.088 5.114c-.002 2.109.794 4.058 2.087 5.114 1.293 1.055 2.887 1.055 4.18 0s2.09-3.005 2.088-5.114z" transform="matrix(.07476 -1.86165 1.91806 .07702 230.44 464.077)"/> - <path d="M232.84 119.03c.002-2.109-.794-4.058-2.087-5.114-1.294-1.055-2.888-1.055-4.18 0s-2.09 3.005-2.088 5.114c-.002 2.109.794 4.058 2.087 5.114 1.293 1.055 2.887 1.055 4.18 0s2.09-3.005 2.088-5.114z" transform="matrix(-.41519 -1.81629 1.87134 -.42776 326.57 516.386)"/> - <path d="M232.84 119.03c.002-2.109-.794-4.058-2.087-5.114-1.294-1.055-2.888-1.055-4.18 0s-2.09 3.005-2.088 5.114c-.002 2.109.794 4.058 2.087 5.114 1.293 1.055 2.887 1.055 4.18 0s2.09-3.005 2.088-5.114z" transform="matrix(-.56358 -1.77586 1.82969 -.58066 344.705 530.515)"/> - <path d="M232.84 119.03c.002-2.109-.794-4.058-2.087-5.114-1.294-1.055-2.888-1.055-4.18 0s-2.09 3.005-2.088 5.114c-.002 2.109.794 4.058 2.087 5.114 1.293 1.055 2.887 1.055 4.18 0s2.09-3.005 2.088-5.114z" transform="matrix(-.77108 -1.69608 1.74749 -.79446 383.304 545.756)"/> - <path d="M232.84 119.03c.002-2.109-.794-4.058-2.087-5.114-1.294-1.055-2.888-1.055-4.18 0s-2.09 3.005-2.088 5.114c-.002 2.109.794 4.058 2.087 5.114 1.293 1.055 2.887 1.055 4.18 0s2.09-3.005 2.088-5.114z" transform="matrix(-.91296 -1.62412 1.67333 -.94064 405.706 556.372)"/> - <path d="M232.84 119.03c.002-2.109-.794-4.058-2.087-5.114-1.294-1.055-2.888-1.055-4.18 0s-2.09 3.005-2.088 5.114c-.002 2.109.794 4.058 2.087 5.114 1.293 1.055 2.887 1.055 4.18 0s2.09-3.005 2.088-5.114z" transform="matrix(-1.08406 -1.5153 1.56121 -1.1169 440.483 564.492)"/> - <path d="M232.84 119.03c.002-2.109-.794-4.058-2.087-5.114-1.294-1.055-2.888-1.055-4.18 0s-2.09 3.005-2.088 5.114c-.002 2.109.794 4.058 2.087 5.114 1.293 1.055 2.887 1.055 4.18 0s2.09-3.005 2.088-5.114z" transform="matrix(-1.20839 -1.41812 1.4611 -1.245 464.319 570.02)"/> - <path d="M232.84 119.03c.002-2.109-.794-4.058-2.087-5.114-1.294-1.055-2.888-1.055-4.18 0s-2.09 3.005-2.088 5.114c-.002 2.109.794 4.058 2.087 5.114 1.293 1.055 2.887 1.055 4.18 0s2.09-3.005 2.088-5.114z" transform="matrix(-1.30696 -1.32783 1.36808 -1.34656 483.304 576.796)"/> - <path d="M232.84 119.03c.002-2.109-.794-4.058-2.087-5.114-1.294-1.055-2.888-1.055-4.18 0s-2.09 3.005-2.088 5.114c-.002 2.109.794 4.058 2.087 5.114 1.293 1.055 2.887 1.055 4.18 0s2.09-3.005 2.088-5.114z" transform="matrix(-1.41352 -1.21378 1.25056 -1.45636 509.16 580.77)"/> - <path d="M232.84 119.03c.002-2.109-.794-4.058-2.087-5.114-1.294-1.055-2.888-1.055-4.18 0s-2.09 3.005-2.088 5.114c-.002 2.109.794 4.058 2.087 5.114 1.293 1.055 2.887 1.055 4.18 0s2.09-3.005 2.088-5.114z" transform="matrix(-1.5349 -1.05613 1.08813 -1.5814 544.923 576.815)"/> - <path d="M232.84 119.03c.002-2.109-.794-4.058-2.087-5.114-1.294-1.055-2.888-1.055-4.18 0s-2.09 3.005-2.088 5.114c-.002 2.109.794 4.058 2.087 5.114 1.293 1.055 2.887 1.055 4.18 0s2.09-3.005 2.088-5.114z" transform="matrix(-1.69349 -.77677 .8003 -1.74482 606.254 551.496)"/> - <path d="M232.84 119.03c.002-2.109-.794-4.058-2.087-5.114-1.294-1.055-2.888-1.055-4.18 0s-2.09 3.005-2.088 5.114c-.002 2.109.794 4.058 2.087 5.114 1.293 1.055 2.887 1.055 4.18 0s2.09-3.005 2.088-5.114z" transform="matrix(-1.75693 -.62003 .63882 -1.81018 632.437 543.952)"/> - <path d="M232.84 119.03c.002-2.109-.794-4.058-2.087-5.114-1.294-1.055-2.888-1.055-4.18 0s-2.09 3.005-2.088 5.114c-.002 2.109.794 4.058 2.087 5.114 1.293 1.055 2.887 1.055 4.18 0s2.09-3.005 2.088-5.114z" transform="matrix(-1.85518 -.13795 .1773 -1.53226 703.463 438.739)"/> - <path d="M232.84 119.03c.002-2.109-.794-4.058-2.087-5.114-1.294-1.055-2.888-1.055-4.18 0s-2.09 3.005-2.088 5.114c-.002 2.109.794 4.058 2.087 5.114 1.293 1.055 2.887 1.055 4.18 0s2.09-3.005 2.088-5.114z" transform="matrix(-1.81654 -.41408 .42661 -1.8716 666.606 524.698)"/> - </g> - <path d="M679.93 195.92c2.466-2.64 4.76-3.386 7.663-2.424-1.024-6.963-3.227-9.326-5.912-8.488-2.684.839-3.9 4.419-1.751 10.912zM683.7 216.93c2.658-2.446 5.002-3.018 7.824-1.839-.496-7.021-2.515-9.543-5.255-8.91-2.74.634-4.221 4.113-2.569 10.748zM674.78 176.73c1.715-3.18 3.744-4.484 6.796-4.29-2.758-6.476-5.49-8.201-7.873-6.709-2.384 1.493-2.65 5.264 1.077 11zM665.43 157.61c1.715-3.18 3.744-4.484 6.796-4.29-2.758-6.476-5.49-8.201-7.873-6.709-2.384 1.493-2.65 5.264 1.077 11zM643 122.57c1.181-3.414 2.975-5.027 6.019-5.327-3.764-5.948-6.737-7.212-8.85-5.356S638.4 117.51 643 122.57zM628.34 107.3c1.052-3.456 2.783-5.136 5.813-5.55-3.986-5.802-7.005-6.953-9.045-5.018-2.041 1.935-1.556 5.684 3.232 10.568zM597.51 81.29c-.064-3.612 1.066-5.744 3.82-7.07-5.578-4.293-8.804-4.458-10.15-1.989-1.346 2.47.27 5.887 6.33 9.059zM613.55 93.316c.562-3.568 2.044-5.472 4.987-6.303-4.75-5.193-7.9-5.914-9.653-3.715-1.753 2.2-.752 5.845 4.666 10.018zM579.21 71.191c-.436-3.586.467-5.823 3.07-7.427-5.99-3.694-9.217-3.525-10.301-.93-1.084 2.595.877 5.827 7.23 8.357zM560.51 63.027c-.945-3.487-.37-5.83 1.976-7.79-6.458-2.798-9.627-2.17-10.329.554-.701 2.723 1.702 5.642 8.353 7.236zM540.36 56.784c-1.237-3.394-.863-5.778 1.31-7.93-6.673-2.24-9.777-1.346-10.245 1.427-.469 2.773 2.173 5.477 8.935 6.503zM520.57 52.952c-1.479-3.296-1.279-5.7.733-8.004-6.817-1.753-9.849-.636-10.115 2.164-.267 2.8 2.563 5.306 9.382 5.84zM499.61 51.346c-1.813-3.125-1.863-5.537-.101-8.037-6.962-1.036-9.862.39-9.836 3.201.025 2.813 3.1 5.012 9.937 4.836zM458.57 54.437c-2.512-2.595-3.143-4.924-2.036-7.775-7.006.673-9.476 2.755-8.773 5.478.702 2.723 4.216 4.116 10.81 2.297zM478.77 51.778c-2.138-2.912-2.447-5.304-.965-7.979-7.033-.282-9.762 1.447-9.434 4.24.327 2.793 3.62 4.649 10.399 3.739zM438.75 58.719c-2.859-2.208-3.816-4.423-3.13-7.403-6.837 1.67-8.983 4.085-7.897 6.679 1.085 2.595 4.763 3.47 11.027.724zM400.8 76.168c-3.227-1.624-4.588-3.616-4.48-6.672-6.396 2.94-8.043 5.719-6.484 8.059 1.56 2.34 5.337 2.5 10.964-1.387zM419.1 66.82c-3.005-2.004-4.115-4.147-3.637-7.167-6.705 2.142-8.678 4.7-7.414 7.212 1.264 2.513 4.994 3.13 11.051-.045zM366.76 99.867c-3.494-.916-5.24-2.58-5.772-5.592-5.642 4.208-6.675 7.27-4.662 9.233 2.013 1.965 5.74 1.333 10.434-3.641zM383 86.576c-3.412-1.187-5.022-2.983-5.317-6.027-5.954 3.754-7.223 6.725-5.37 8.84 1.853 2.116 5.619 1.778 10.687-2.813zM352.33 114.08c-3.563-.595-5.454-2.094-6.257-5.044-5.236 4.704-5.986 7.846-3.803 9.619 2.184 1.773 5.838.805 10.06-4.575zM339.4 130.86c-3.602-.269-5.621-1.59-6.689-4.455-4.787 5.16-5.249 8.357-2.914 9.924 2.335 1.568 5.887.272 9.603-5.469zM328.58 148.02c-3.601.286-5.798-.71-7.292-3.379-3.941 5.833-3.908 9.063-1.36 10.254 2.547 1.192 5.859-.632 8.652-6.875zM319.08 166.35c-3.533.75-5.841.048-7.67-2.404-3.15 6.294-2.697 9.493-.017 10.343 2.68.851 5.728-1.387 7.687-7.94zM311.48 185.16c-3.37 1.301-5.76.973-7.953-1.158-2.114 6.713-1.16 9.8 1.621 10.216 2.782.415 5.435-2.278 6.332-9.058zM306.39 206.11c-3.275 1.524-5.682 1.356-8.013-.623-1.66 6.84-.501 9.856 2.302 10.084 2.803.228 5.27-2.636 5.711-9.461zM304.32 223.56c-3.083 1.633-5.486 1.826-8.006.591-.917 5.575.551 7.778 3.353 7.58 2.802-.2 4.942-2.773 4.653-8.17zM657.08 140.57c1.233-3.395 3.05-4.982 6.098-5.235-3.672-6.004-6.626-7.313-8.767-5.49-2.14 1.825-1.854 5.595 2.669 10.725zM686 238.23c2.658-2.446 5.002-3.018 7.824-1.839-.496-7.021-2.515-9.543-5.255-8.91-2.74.634-4.221 4.113-2.569 10.748z" fill-rule="evenodd" fill="#ffe300"/> - <path stroke-linejoin="round" d="M658.45 123.94c-.086 0-7.958 7.873-6.59 17.457 1.37 9.585 7.446 21.394 6.333 31.321-1.112 9.927-2.91 16.516-2.91 16.516s9.243-10.526 9.329-20.624c.085-10.098-6.333-23.362-6.333-30.807s.342-14.034.171-13.863zM673.08 156.11s-6.162 4.535-5.562 14.976c.599 10.44 11.38 29.609 11.38 29.609s7.874 16.174 7.617 20.367c-.257 4.193 1.455-4.022.685-13.264-.77-9.242-12.665-29.609-12.665-29.609s-2.568-4.193-2.311-11.125c.257-6.932.941-10.868.856-10.954z" fill-rule="evenodd" stroke="#000" stroke-width="1.92" fill="#217900"/> - <path d="M487.93 26.748c0-2.16-2.43-3.913-5.428-3.913s-5.43 1.752-5.428 3.913c-.001 2.16 2.43 3.913 5.428 3.913s5.429-1.752 5.428-3.913zM490.25 35.848c0-2.072-2.502-3.752-5.588-3.752-3.086 0-5.588 1.68-5.588 3.752s2.502 3.752 5.588 3.752c3.086 0 5.588-1.68 5.588-3.752zM497.19 25.072s-6.386 4.79-3.752 6.705c2.634 1.916 9.899-4.15 9.899-4.15l-6.147-2.555zM684.88 134.73c.002-1.361-.636-2.62-1.674-3.302a3.006 3.006 0 0 0-3.353 0c-1.037.681-1.675 1.94-1.674 3.302-.002 1.361.637 2.62 1.674 3.302a3.006 3.006 0 0 0 3.353 0c1.038-.681 1.676-1.94 1.674-3.302zM682.44 125.6c0-2.27-1.568-4.112-3.502-4.112s-3.503 1.841-3.503 4.112 1.568 4.112 3.502 4.112 3.503-1.841 3.503-4.112zM684.12 144.17c0-1.177-.614-2.132-1.37-2.132-.758 0-1.371.955-1.371 2.132s.613 2.132 1.37 2.132c.757 0 1.371-.955 1.371-2.132zM689.75 127.57c0-1.346-.614-2.437-1.37-2.437-.758 0-1.371 1.091-1.371 2.437s.613 2.437 1.37 2.437c.757 0 1.371-1.091 1.371-2.437zM674.37 129.25c0-1.093-.614-1.98-1.37-1.98-.758 0-1.371.887-1.371 1.98s.613 1.98 1.37 1.98c.757 0 1.371-.887 1.371-1.98zM676.81 142.35c0-1.767-1.295-3.2-2.893-3.2s-2.894 1.433-2.894 3.2c0 1.767 1.295 3.2 2.894 3.2s2.893-1.433 2.893-3.2zM669.19 136.56c0-1.514-1.09-2.741-2.437-2.741-1.345 0-2.436 1.227-2.436 2.741s1.09 2.741 2.436 2.741c1.346 0 2.437-1.227 2.437-2.741zM667.98 128.79c.001-.817-.405-1.572-1.065-1.98a2.01 2.01 0 0 0-2.134 0c-.66.408-1.066 1.163-1.065 1.98-.001.817.405 1.572 1.065 1.98a2.01 2.01 0 0 0 2.134 0c.66-.408 1.066-1.163 1.065-1.98zM702.69 168.28c-3.146-4.151-8.181-5.9-11.248-3.907-3.066 1.994-3.002 6.975.143 11.126 3.146 4.151 8.181 5.9 11.248 3.907 3.067-1.994 3.002-6.975-.143-11.126zM711.63 244.87c.61-5.094-1.875-9.58-5.55-10.02-3.674-.44-7.147 3.333-7.756 8.428-.61 5.094 1.875 9.58 5.55 10.02 3.674.44 7.146-3.334 7.756-8.428zM713.52 289.45c1.047-5.022-1.04-9.706-4.663-10.461-3.623-.755-7.409 2.704-8.456 7.726-1.047 5.023 1.04 9.706 4.663 10.461 3.623.756 7.409-2.704 8.456-7.726zM722.11 247.72c0-2.018-1.364-3.655-3.046-3.655s-3.045 1.637-3.045 3.655 1.363 3.655 3.045 3.655 3.046-1.637 3.046-3.655zM714.65 256.1l-6.244 7.081s-5.862.152-5.558 2.056c.305 1.903 8.071 7.614 7.995 9.899-.076 2.284 5.178-.533 5.178-.533s4.187-12.716 4.187-12.792c0-.077-.228-8.833-2.512-8.68-2.285.152-2.904 2.808-3.046 2.97zM303.97 253.3a2.972 2.972 0 1 0-5.943 0 2.972 2.972 0 0 0 5.943 0zM306.77 244.22c0-1.732-1.33-3.137-2.972-3.137s-2.971 1.405-2.971 3.137 1.33 3.137 2.971 3.137 2.972-1.405 2.972-3.137zM282.37 201.04c-1.115-2.498-3.435-3.89-5.184-3.11-1.748.78-2.262 3.437-1.148 5.935 1.115 2.498 3.435 3.89 5.184 3.11 1.748-.78 2.262-3.437 1.148-5.935zM289.74 227.94c-1.531-3.237-4.72-5.042-7.121-4.031s-3.108 4.455-1.577 7.693 4.719 5.042 7.12 4.03 3.109-4.455 1.578-7.692zM297.63 247.67c.496-4.044-1.18-7.758-3.743-8.297-2.563-.538-5.042 2.303-5.538 6.347-.496 4.044 1.18 7.758 3.742 8.297 2.563.538 5.043-2.303 5.539-6.347zM284.97 250.55c1.585-3.753.992-7.785-1.326-9.005s-5.48.833-7.066 4.586-.991 7.785 1.326 9.005 5.48-.833 7.066-4.586z" fill-rule="evenodd" fill="#6b18b5"/> - <path d="M279.2 242.07c0-1.915-1.478-3.467-3.302-3.467s-3.301 1.552-3.301 3.467 1.478 3.467 3.301 3.467 3.302-1.552 3.302-3.467zM276.56 233.49c0-1.732-1.33-3.137-2.972-3.137-1.64 0-2.971 1.405-2.971 3.137s1.33 3.137 2.971 3.137 2.972-1.405 2.972-3.137zM279.37 216.98c0-2.918-1.294-5.283-2.889-5.283-1.596 0-2.889 2.365-2.889 5.283s1.293 5.283 2.889 5.283 2.889-2.365 2.889-5.283zM288.26 215.71c.385-2.892-.585-5.407-2.167-5.618-1.581-.21-3.176 1.964-3.56 4.856-.386 2.892.585 5.407 2.166 5.618 1.582.21 3.176-1.964 3.561-4.856zM351.6 89.333c1.177-4.096-.037-8.212-2.712-9.194-2.676-.982-5.8 1.542-6.977 5.638-1.177 4.096.037 8.212 2.713 9.194 2.675.982 5.799-1.542 6.976-5.638zM339.57 107.56c3.529-3.003 5.036-7.156 3.367-9.275-1.67-2.12-5.883-1.403-9.411 1.6s-5.036 7.156-3.367 9.275c1.669 2.12 5.883 1.403 9.411-1.6zM332.55 97.443c3.49-2.578 4.98-6.143 3.33-7.962s-5.818-1.205-9.307 1.373c-3.49 2.578-4.98 6.143-3.33 7.963s5.818 1.204 9.307-1.374zM359.61 79.649c2.353-1.799 3.358-4.286 2.245-5.556-1.113-1.27-3.923-.84-6.276.959s-3.358 4.286-2.245 5.556c1.113 1.269 3.923.84 6.276-.959z" fill-rule="evenodd" fill="#6b18b5"/> - <path d="M345.5 96.89c1.61-2.487 1.717-5.167.241-5.987-1.475-.82-3.976.53-5.585 3.017s-1.717 5.168-.242 5.988c1.476.82 3.977-.531 5.586-3.018zM365.86 86.235c2.53-2.133 3.517-4.958 2.202-6.31-1.314-1.352-4.431-.72-6.961 1.413s-3.517 4.958-2.203 6.31c1.315 1.352 4.431.72 6.962-1.413zM329.07 111.09c2.366-.118 4.151-1.296 3.988-2.632-.162-1.335-2.212-2.322-4.578-2.204-2.365.118-4.15 1.296-3.988 2.632.163 1.335 2.212 2.322 4.578 2.204zM373.61 73.026c1.61-2.487 1.717-5.167.241-5.987-1.475-.82-3.976.53-5.585 3.017s-1.717 5.168-.242 5.988c1.476.82 3.977-.531 5.586-3.018z" fill-rule="evenodd" fill="#6b18b5"/> - <path d="M641.8 148.49s7.338-11.615 4.501-22.547c-2.837-10.933-14.945-3.207-14.685.684.26 3.89 7.824 9.095 8.284 11.47.46 2.374-.854 9.677 1.9 10.394z" fill-rule="evenodd" stroke="#ef8a10" fill="#ffd200"/> - <path stroke-linejoin="round" d="M501.67 51.882s26.443 1.027 26.614 18.142c-.086 2.653 0 5.819-.941 13.435 5.22-2.824 8.728-10.697 8.044-15.746.085-17.372-23.62-29.267-33.717-15.832z" fill-rule="evenodd" stroke="#000" stroke-width="2.4" fill="#217900"/> - <path stroke-linejoin="round" d="M484.9 51.112s21.308-4.45 21.479 12.665c.171 17.115-6.76 19.853-6.76 19.853s16.345-3.509 16.43-20.88c.085-17.372-21.051-25.073-31.15-11.638z" fill-rule="evenodd" stroke="#000" stroke-width="2.4" fill="#217900"/> - <path stroke-linejoin="round" d="M557.285 420.343s99.739-28.174 129.855-150.581c-17.487 125.645-126.617 165.477-126.617 165.477l-3.238-14.896z" fill-rule="evenodd" stroke="#000" stroke-width="1.9196pt" fill="#f7df73"/> - <path d="M567.517 427.964c3.082 0 10.709-8.438 15.09-9.411 4.38-.974 4.867-5.355-.163-5.517-5.03-.162-9.41 5.679-9.41 5.679s-4.382 3.732-8.925 4.219c-4.543.487-1.622 6.165 3.408 5.03z" fill-rule="evenodd" fill="#8c1800"/> - <path d="M624.951 385.118s-10.384 6.004-8.924 7.464c1.46 1.46 10.709-5.679 10.871-5.841.162-.162 3.894-4.706-1.947-1.623z" fill-rule="evenodd" stroke="#8c1800" stroke-width="1.9196pt" fill="#8c1800"/> - <path d="M588.767 412.396s-3.084-1.136 4.867-4.219c7.95-3.083 7.464-6.652 10.06-8.113 2.596-1.46 8.113-5.354 9.249-3.083s-5.841 6.815-7.464 7.302c-1.622.487-9.573 7.788-11.845 8.437-2.271.65-3.894.325-4.867-.324z" fill-rule="evenodd" fill="#8c1800"/> - <path d="M640.365 369.877c-6.814 7.626-6.814 7.464-6.814 7.464" stroke="#8c1800" stroke-linecap="round" stroke-width="3.11935" fill="none"/> - <path d="M650.597 357.38l-6.49 7.95" stroke="#8c1800" stroke-linecap="round" stroke-width="2.8794" fill="none"/> - <path d="M660.81 341.16l-7.303 11.682" stroke="#8c1800" stroke-linecap="round" stroke-width="2.63945" fill="none"/> - <path d="M669.409 324.613l-6.004 12.007M673.306 315.84l-1.947 4.219" stroke="#8c1800" stroke-linecap="round" stroke-width="2.3994999999999997" fill="none"/> - <path d="M677.682 304.322l-1.622 5.03" stroke="#8c1800" stroke-linecap="round" stroke-width="1.4397" fill="none"/> - <g> - <path stroke-linejoin="round" d="M160.26 215.97s51.958-14.677 67.647-78.444c-9.11 65.454-65.96 86.204-65.96 86.204l-1.687-7.76z" fill-rule="evenodd" stroke="#000" stroke-width="1pt" fill="#f7df73" transform="matrix(-1.9021 0 0 1.9542 731.39 -4.333)"/> - <path d="M416.421 425.474c-3.055 0-10.611-8.59-14.952-9.58-4.341-.992-4.823-5.452.16-5.617 4.985-.165 9.326 5.781 9.326 5.781s4.34 3.8 8.842 4.295c4.502.496 1.608 6.277-3.376 5.12z" fill-rule="evenodd" fill="#8c1800"/> - <path d="M195.51 197.62s-5.41 3.127-4.649 3.888c.76.761 5.579-2.958 5.663-3.043.085-.084 2.029-2.451-1.014-.845z" fill-rule="evenodd" stroke="#8c1800" stroke-width="1pt" fill="#8c1800" transform="matrix(-1.9021 0 0 1.9542 731.39 -4.333)"/> - <path d="M395.365 409.625s3.055-1.156-4.823-4.295c-7.878-3.138-7.396-6.772-9.969-8.259-2.572-1.486-8.039-5.45-9.164-3.138s5.788 6.938 7.396 7.433c1.608.496 9.486 7.929 11.737 8.59 2.25.66 3.858.33 4.823-.33z" fill-rule="evenodd" fill="#8c1800"/> - <path d="M203.54 189.68c-3.55 3.973-3.55 3.888-3.55 3.888" stroke="#8c1800" stroke-linecap="round" stroke-width="1.625" fill="none" transform="matrix(-1.9021 0 0 1.9542 731.39 -4.333)"/> - <path d="M208.87 183.17l-3.381 4.142" stroke="#8c1800" stroke-linecap="round" stroke-width="1.5" fill="none" transform="matrix(-1.9021 0 0 1.9542 731.39 -4.333)"/> - <path d="M214.19 174.72l-3.804 6.086" stroke="#8c1800" stroke-linecap="round" stroke-width="1.375" fill="none" transform="matrix(-1.9021 0 0 1.9542 731.39 -4.333)"/> - <path d="M218.67 166.1l-3.127 6.255M220.7 161.53l-1.014 2.198" stroke="#8c1800" stroke-linecap="round" stroke-width="1.25" fill="none" transform="matrix(-1.9021 0 0 1.9542 731.39 -4.333)"/> - <path d="M222.98 155.53l-.845 2.62" stroke="#8c1800" stroke-linecap="round" stroke-width=".75" fill="none" transform="matrix(-1.9021 0 0 1.9542 731.39 -4.333)"/> - </g> - <path stroke-linejoin="round" d="M691.89 247.23c.49 7.678 8.005 15.029 5.065 28.426-3.758 15.193-16.99 51.298-14.703 57.669-3.921-5.391-3.268-10.456-3.595-17.971-.326-7.515 10.946-35.451 11.926-44.926 0-8.495.817-20.094 1.307-23.198z" fill-rule="evenodd" stroke="#000" stroke-width="2.4" fill="#217900"/> - <path stroke-linejoin="round" d="M691.89 247.39s12.253 15.52 11.599 27.773c-.653 12.253-7.515 26.629-5.228 33-3.92-5.391-4.9-8.822-5.228-16.337-.326-7.515 6.045-15.847 4.738-24.015-1.307-8.168-6.045-20.421-5.881-20.421zM290.51 250.82c-.49 7.678-6.208 14.539-3.268 27.936 3.758 15.193 17.154 34.471 15.03 56.526 3.921-5.391 5.065-11.436 5.392-18.951.326-7.515-14.867-32.837-15.847-42.312 0-8.495-.817-20.094-1.307-23.198z" fill-rule="evenodd" stroke="#000" stroke-width="2.4" fill="#217900"/> - <path stroke-linejoin="round" d="M290.51 250.99s-11.926 15.03-11.273 27.283c.163 8.168 15.193 42.312 12.906 48.684 3.92-5.391 5.064-4.738 4.9-12.906-4.41-20.911-12.252-34.308-10.945-42.476 1.307-8.168 4.574-20.584 4.411-20.584z" fill-rule="evenodd" stroke="#000" stroke-width="2.4" fill="#217900"/> - <path stroke-linejoin="round" d="M99.959 125.78l22.172 68.231 71.743.003-58.04 42.172 22.167 68.233-58.041-42.15-58.044 42.16 22.168-68.23-58.04-42.17h71.743z" transform="matrix(1.3389 0 0 1.3391 360.43 -54.894)" stroke-dashoffset="1" stroke="#000" stroke-linecap="square" stroke-width="1.494" fill="#fff"/> - </g> -</svg> diff --git a/img/flags/1x1/mq.svg b/img/flags/1x1/mq.svg deleted file mode 100644 index 2385562..0000000 --- a/img/flags/1x1/mq.svg +++ /dev/null @@ -1,7 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" height="512" width="512" viewBox="0 0 512 512"> - <g fill-rule="evenodd" stroke-width="1pt"> - <path fill="#fff" d="M0 0h512.005v512H0z"/> - <path fill="#00267f" d="M0 0h170.667v512H0z"/> - <path fill="#f31830" d="M341.333 0H512v512H341.333z"/> - </g> -</svg> diff --git a/img/flags/1x1/mr.svg b/img/flags/1x1/mr.svg deleted file mode 100644 index 9b3d612..0000000 --- a/img/flags/1x1/mr.svg +++ /dev/null @@ -1,13 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" height="512" width="512" viewBox="0 0 512 512"> - <path fill="#006233" d="M0 0h512v512H0z"/> - <circle cx="256" cy="192" r="165.333" fill="#ffc400"/> - <path d="M174.32 11.963A160 160 0 0 0 96 149.333a160 160 0 0 0 160 160 160 160 0 0 0 160-160 160 160 0 0 0-78.328-137.37H174.32z" fill="#006233"/> - <g id="b" transform="translate(256 149.333) scale(5.33333)"> - <path id="a" d="M0-12L-3.708-.587l5.706 1.854" fill="#ffc400"/> - <use height="100%" width="100%" xlink:href="#a" transform="scale(-1 1)"/> - </g> - <use height="100%" width="100%" xlink:href="#b" transform="rotate(72 256 149.333)"/> - <use height="100%" width="100%" xlink:href="#b" transform="rotate(144 256 149.333)"/> - <use height="100%" width="100%" xlink:href="#b" transform="rotate(-144 256 149.333)"/> - <use height="100%" width="100%" xlink:href="#b" transform="rotate(-72 256 149.333)"/> -</svg> diff --git a/img/flags/1x1/ms.svg b/img/flags/1x1/ms.svg deleted file mode 100644 index 91a4be7..0000000 --- a/img/flags/1x1/ms.svg +++ /dev/null @@ -1,39 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" height="512" width="512" viewBox="0 0 512 512"> - <path fill="#006" d="M0 0h512v512H0z"/> - <g fill-rule="evenodd"> - <path d="M281.518 230.94h201.077l-.24 143.974c1.673 57.876-34.176 93.789-100.138 109.982-46.847-11.707-100.86-35.92-100.939-108.34l.24-145.618z" fill="#fff"/> - <path d="M44.069 22.713h169.3l-.201 120.79c1.408 48.558-28.777 78.69-84.317 92.276-39.437-9.82-84.916-30.13-84.982-90.9l.201-122.17z" stroke="#000" stroke-width="1pt" fill="#00a2bd" transform="matrix(1.135 0 0 1.1421 235.95 209.34)"/> - <path d="M476.638 389.586c-6.99 52.938-47.506 76.068-94.442 88.344-41.546-11.214-86.242-29.118-94.905-88.078l189.352-.266z" fill="#a53d08"/> - </g> - <g stroke="#000" fill-rule="evenodd"> - <path stroke-linejoin="round" d="M155.77 197.17c.094.094.658 9.295-4.319 14.929 4.413 1.409 7.418-.282 8.826-2.066 1.409-1.784 1.879-4.037 1.879-4.037s1.22-.751 1.408-2.441c.094-2.348-.939-2.348-1.784-2.817l.187-5.258s-5.07-3.099-6.197 1.69z" stroke-width="1.25" fill="#ffc6b5" transform="matrix(1.135 0 0 1.1421 235.95 209.34)"/> - <path d="M155.49 210.32l-1.503-1.221" stroke-linecap="round" stroke-width="1pt" fill="#ff9a08" transform="matrix(1.135 0 0 1.1421 235.95 209.34)"/> - </g> - <path d="M141.64 69.393s.117 5.625-.235 6.211c-.351.586-3.554 2.07-3.554 2.07l2.734 5.82s7.695-1.093 7.734-1.093 3.321-8.711 3.321-8.711-1.719-2.89-1.289-5.898c-2.578-8.165-8.594 1.64-8.711 1.601z" fill-rule="evenodd" stroke="#000" stroke-width="1pt" fill="#ffc6b5" transform="matrix(1.135 0 0 1.1421 235.95 209.34)"/> - <path stroke-linejoin="round" d="M131.45 203.09s4.319 4.319 9.295 3.756c11.268-1.22 14.554-11.267 18.028-11.361s5.634 6.103 8.92 5.352c-2.817-5.164-5.821-16.619-5.352-24.694.47-8.075.47-42.065.47-42.065s-5.634-17.558-8.263-20.469c2.629-2.817 4.413-7.793 4.319-13.239-.094-5.446 0-11.455 0-11.455s1.314-1.502 1.221-5.727c-.094-4.226-7.136-10.328-8.075-10.047-.939.281-9.765 7.887-10.516 9.67-.752 1.785-1.784-6.478-.094-7.23 1.69-.75-3.944-1.22-7.512 3.005-3.568 4.226-2.535 124.69-2.441 124.5z" fill-rule="evenodd" stroke="#000" stroke-width="1.25" fill="#005121" transform="matrix(1.135 0 0 1.1421 235.95 209.34)"/> - <path d="M337.08 260.845l37.506.135-.268-17.387 13.663.134.134 17.253h37.37l.135 13.48-37.505.134-.3 158.957-13.327.085-.17-159.175-37.245.135.008-13.748z" fill-rule="evenodd"/> - <path d="M122.03 81.959s-2.258-.398-3.984.133 2.656-19.586 2.656-21.246c1.527-.73 9.162-2.125 8.963-7.503-.531-3.253-11.818.2-11.619 4.316-.73 2.058-8.099 23.038-6.639 29.943 2.589 2.058 7.37 1.66 10.623 1.129v-6.772z" fill-rule="evenodd" stroke="#000" stroke-width="1pt" fill="#ffc6b5" transform="matrix(1.135 0 0 1.1421 235.95 209.34)"/> - <path d="M124.22 53.211s-.664 3.718 2.722 4.25" stroke="#000" stroke-linecap="round" stroke-width=".625" fill="none" transform="matrix(1.135 0 0 1.1421 235.95 209.34)"/> - <path d="M129.2 53.144c-.133.066-4.382 2.722-4.382 2.722M128.94 54.804l-2.988 2.191M127.81 52.348l-3.32 1.992" stroke="#000" stroke-width=".375" fill="none" transform="matrix(1.135 0 0 1.1421 235.95 209.34)"/> - <path d="M95.49 163.56l30.14 31.267c10.422-11.455 3.193-54.272-10.515-62.158-1.643 5.07-4.437 11.149-7.407 13.109-6.534 4.453-22.546 9.659-17.194 12.993 1.22-1.69 4.413-3.286 5.915.47 1.784 5.915-6.666 6.291-6.666 6.291s-5.352-.658-6.291-6.104c-.939-5.445 7.972-10.417 8.732-10.797.751-.282 12.394-3.38 14.366-13.709 2.441-10.141 4.976-8.638 5.446-8.826 15.21 1.502 25.163 28.732 25.727 47.886.563 19.154-7.793 31.83-9.296 32.675-1.502.845-36.243-41.219-36.243-41.219l3.286-1.878z" fill-rule="evenodd" stroke="#000" stroke-width="1pt" fill="#ff9a08" transform="matrix(1.135 0 0 1.1421 235.95 209.34)"/> - <path d="M117.46 134.45l.187 56.43M114.08 135.48l.187 51.267M110.42 142.9l.187 40.75M107.42 145.81l.188 33.709M104.22 147.32v28.45M100.75 149.57v22.534M97.744 151.35v17.276" stroke="#000" stroke-width="1pt" fill="none" transform="matrix(1.135 0 0 1.1421 235.95 209.34)"/> - <path d="M95.021 167.13l31.079 35.58M127.6 144.69s14.085 30.798 1.033 56.149M91.359 160.65s1.033-2.723 2.347-1.596M88.918 152.76s-5.634 4.976-2.535 8.169" stroke="#ffdf00" stroke-linecap="round" stroke-width="1.25" fill="none" transform="matrix(1.135 0 0 1.1421 235.95 209.34)"/> - <path d="M141.03 82.999s.47 4.32-.469 7.605 3.568 12.394 1.877 14.272M142.91 113.7l11.831-.094" stroke="#000" stroke-width="1pt" fill="none" transform="matrix(1.135 0 0 1.1421 235.95 209.34)"/> - <path d="M138.59 118.49c.094.187 1.408 6.197 1.032 10.328M142.44 120.65c-.375 1.221-5.258 15.117-5.07 15.68M145.35 114.36c.094.282-.375 8.826-1.69 10.047M151.36 113.7s7.7 17.84 7.606 24.882 2.629 21.314.845 27.605M153.8 138.4s-.564 13.239-6.103 18.403c-5.54 5.165 13.239 19.906 13.239 19.906" stroke="#000" stroke-linecap="round" stroke-width="1pt" fill="none" transform="matrix(1.135 0 0 1.1421 235.95 209.34)"/> - <path d="M153.61 175.86s2.066 18.215 5.54 19.53M136.62 145.34c.094.188-1.878 12.3-.282 14.272 1.597 1.972 14.836 20.469 14.272 39.624M146.85 193.51s-.376 11.549-11.08 12.488M143.66 185.91s3.193 12.018-7.699 19.624" stroke="#000" stroke-linecap="round" stroke-width="1.25" fill="none" transform="matrix(1.135 0 0 1.1421 235.95 209.34)"/> - <path d="M147.88 156.89s12.3 12.77 12.864 18.404M151.45 113.98s2.16 9.107 1.315 10.704" stroke="#000" stroke-linecap="round" stroke-width="1pt" fill="none" transform="matrix(1.135 0 0 1.1421 235.95 209.34)"/> - <path d="M113.51 132.69s-1.317-2.305-1.152-4.857-.412-6.502 7.82-9.713c5.021-5.103 10.618-8.149 13.663-9.712 4.445-2.881 7.327-2.223 9.96-3.211 1.729-1.975 1.646-6.338 3.457-10.206 1.811-3.869 5.021-11.853 8.478-10.618 3.458 1.235.741 11.606-.576 15.228s-2.469 7.408-4.774 9.63c-2.305 2.223-12.758 6.256-14.816 6.997s-11.441 2.88-13.828 6.174c-2.388 3.292-2.223 8.149-8.232 10.289z" fill-rule="evenodd" stroke="#000" stroke-width="1pt" fill="#ffc6b5" transform="matrix(1.135 0 0 1.1421 235.95 209.34)"/> - <path d="M112.85 125.78c.247-.082 4.115-1.317 5.926 2.141" stroke="#000" stroke-width="1pt" fill="none" transform="matrix(1.135 0 0 1.1421 235.95 209.34)"/> - <path stroke-linejoin="round" d="M141.91 55.2s-1.74 2.837-2.222 4.561c-.374 1.29-1.58-.087-2.218 2.708l1.035.181c-.412.823-.546 2.214-.628 2.543-.083.33-.662 1.834-.576 2.964.046.583 1.152 3.128 10.124-.741 8.972-3.869-2.881-14.85-5.515-12.216z" fill-rule="evenodd" stroke="#000" stroke-width="1.25" fill="#ffc6b5" transform="matrix(1.135 0 0 1.1421 235.95 209.34)"/> - <path stroke-linejoin="round" d="M140.9 55.563c.921-.494 7.457-1.07 6.368 11.688 1.257-.165 2.011-.33 2.764.905.754 1.235.671 2.717 2.011 2.717 1.341 0 1.509-.247 1.844-1.235.334-.988 5.53 1.152 6.869-3.457-.232-.897-3.183-2.305-3.519-3.951.755-2.305-.335-9.795-9.885-10.207-4.944-.082-5.948 1.975-6.452 3.54z" fill-rule="evenodd" stroke="#000" stroke-linecap="round" stroke-width="1.261" fill="#c59200" transform="matrix(1.135 0 0 1.1421 235.95 209.34)"/> - <path d="M140.42 58.115c.083.082 2.964.905 3.293 2.305" stroke="#000" stroke-linecap="round" stroke-width="1pt" fill="none" transform="matrix(1.135 0 0 1.1421 235.95 209.34)"/> - <path d="M397.336 279.583c0 .492-.377.892-.843.892s-.842-.4-.842-.892.377-.893.842-.893.843.4.843.893z" fill-rule="evenodd"/> - <path stroke-linejoin="round" d="M154.38 61.542s-1.055 5.078 3.594 7.07M150.94 62.167s1.722.078 1.722 1.68c0 1.601-1.414 1.796-1.296 3.086.117 1.289 2.425 1.718 2.503 2.812M143.4 52.792c.078 0 8.243.938 7.774 2.969-.469 2.031-1.758 1.21-1.719 2.968s3.281.704 3.281.704.196-1.485 1.563-1.368.742 1.68 2.617 1.64" stroke="#000" stroke-linecap="round" stroke-width="1.25" fill="none" transform="matrix(1.135 0 0 1.1421 235.95 209.34)"/> - <path d="M138.41 65.458l1.936-.064" stroke="#000" stroke-linecap="round" stroke-width="1.25" fill="none" transform="matrix(1.135 0 0 1.1421 235.95 209.34)"/> - <path d="M143.45 73.696s.72 3.36-2 3.04" stroke="#000" stroke-linecap="round" stroke-width="1pt" fill="none" transform="matrix(1.135 0 0 1.1421 235.95 209.34)"/> - <g stroke-width="1pt"> - <path d="M0 .063v21.182L255.95 189.52h32.218v-21.182L32.218.064H0zm288.168 0v21.181L32.218 189.52H0v-21.181L255.95.063h32.218z" fill="#fff"/> - <path d="M120.07.063v189.456h48.028V.063H120.07zM0 63.215v63.152h288.168V63.215H0z" fill="#fff"/> - <path d="M0 75.845v37.892h288.168V75.845H0zM129.676.063v189.456h28.816V.063h-28.816zM0 189.519l96.056-63.152h21.478l-96.056 63.152H0zM0 .063l96.056 63.152H74.578L0 14.185V.062zm170.634 63.152L266.69.063h21.478l-96.056 63.152h-21.478zm117.534 126.304l-96.056-63.152h21.478l74.578 49.031v14.121z" fill="#c00"/> - </g> -</svg> diff --git a/img/flags/1x1/mt.svg b/img/flags/1x1/mt.svg deleted file mode 100644 index 1e37824..0000000 --- a/img/flags/1x1/mt.svg +++ /dev/null @@ -1,50 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" height="512" width="512" viewBox="0 0 512 512"> - <g fill-rule="evenodd" stroke-width="1pt"> - <path fill="#ce0000" d="M256 0h256v511.984H256z"/> - <path fill="#fff" d="M0 0h256v511.984H0z"/> - </g> - <g transform="matrix(.35005 0 0 .35003 40.728 -25.527)"> - <path d="M183.107 381.66c0 2.314-2.62 4.19-5.853 4.19-3.232 0-5.852-1.876-5.852-4.19 0-2.313 2.62-4.188 5.852-4.188s5.853 1.875 5.853 4.189z" fill-rule="evenodd" fill="#f1eeee"/> - <path d="M.06 361.429v106.303h106.302c0 17.713 17.718 35.43 35.436 35.43v106.299h106.296V503.163c17.718 0 35.436-17.718 35.436-35.43h106.302V361.428H283.53c0-17.713-17.718-35.431-35.436-35.431V219.7H141.798v106.298c-17.718 0-35.436 17.718-35.436 35.43H.06z" fill-rule="evenodd" fill="#c00"/> - <path d="M3.6 364.969v99.211h106.302c0 17.713 17.712 35.437 35.43 35.437v106.298h99.216V499.617c17.718 0 35.43-17.724 35.43-35.437H386.28V364.97H279.978c0-17.713-17.712-35.437-35.43-35.437V223.234h-99.216v106.298c-17.718 0-35.43 17.724-35.43 35.437H3.6z" fill-rule="evenodd" fill="#ffe600"/> - <path d="M7.04 368.509v92.131h106.296c0 17.712 17.718 35.43 35.436 35.43V602.37h92.124V496.07c17.718 0 35.436-17.719 35.436-35.43h106.296v-92.132H276.332c0-17.713-17.718-35.43-35.436-35.43V226.78h-92.124v106.298c-17.718 0-35.436 17.718-35.436 35.43H7.04z" fill-rule="evenodd" fill="#707070"/> - <path d="M10.58 372.049v85.04h106.296c0 17.711 17.718 35.436 35.436 35.436v106.297h85.038V492.525c17.718 0 35.436-17.725 35.436-35.437h106.296v-85.04H272.786c0-17.712-17.718-35.43-35.436-35.43V230.32h-85.038v106.298c-17.718 0-35.436 17.718-35.436 35.43H10.58z" fill-rule="evenodd" fill="#a0a0a0"/> - <g fill-rule="evenodd"> - <path d="M153.244 327.833c6.226 6.226 1.179 21.37-11.275 33.824s-27.597 17.5-33.824 11.274c-6.227-6.227-1.179-21.37 11.275-33.824s27.597-17.501 33.824-11.274z" fill="#d0d0d0"/> - <path d="M145.732 335.344c6.227 6.227 4.544 18.006-3.758 26.308s-20.081 9.985-26.308 3.758c-6.227-6.226-4.544-18.005 3.758-26.308s20.08-9.985 26.308-3.758z" fill="gray"/> - <path d="M114.406 354.133l2.505-2.505 10.022 5.011-5.011-10.022 2.505-2.506 10.022 20.044-20.043-10.022zM129.441 339.1l2.506-2.505 15.033 15.033-2.505 2.505z" fill="#d0d0d0"/> - </g> - <g fill-rule="evenodd"> - <path d="M281.617 372.927c-6.226 6.226-21.37 1.179-33.824-11.275s-17.5-27.597-11.274-33.824c6.227-6.227 21.37-1.179 33.824 11.275s17.501 27.597 11.274 33.824z" fill="#d0d0d0"/> - <path d="M274.106 365.415c-6.227 6.227-18.006 4.544-26.308-3.758s-9.985-20.081-3.758-26.308c6.226-6.227 18.005-4.544 26.308 3.758s9.985 20.08 3.758 26.308z" fill="gray"/> - <path d="M255.317 334.089l2.505 2.505-5.011 10.022 10.022-5.011 2.506 2.505-20.044 10.022 10.022-20.043zM270.35 349.124l2.505 2.506-15.033 15.033-2.505-2.505z" fill="#d0d0d0"/> - </g> - <g fill-rule="evenodd"> - <path d="M236.526 501.297c-6.226-6.226-1.179-21.37 11.275-33.824s27.597-17.5 33.824-11.274c6.227 6.227 1.179 21.37-11.275 33.824s-27.597 17.501-33.824 11.274z" fill="#d0d0d0"/> - <path d="M244.038 493.786c-6.227-6.227-4.544-18.006 3.758-26.308s20.081-9.985 26.308-3.758c6.227 6.226 4.544 18.005-3.758 26.308s-20.08 9.985-26.308 3.758z" fill="gray"/> - <path d="M275.364 474.997l-2.505 2.505-10.022-5.011 5.011 10.022-2.505 2.506-10.022-20.044 20.043 10.022zM260.329 490.03l-2.506 2.505-15.033-15.033 2.505-2.505z" fill="#d0d0d0"/> - </g> - <g fill-rule="evenodd"> - <path d="M108.153 456.206c6.226-6.226 21.37-1.179 33.824 11.275s17.5 27.597 11.274 33.824c-6.227 6.227-21.37 1.179-33.824-11.275s-17.501-27.597-11.274-33.824z" fill="#d0d0d0"/> - <path d="M115.664 463.718c6.227-6.227 18.006-4.544 26.308 3.758s9.985 20.081 3.758 26.308c-6.226 6.227-18.005 4.544-26.308-3.758s-9.985-20.08-3.758-26.308z" fill="gray"/> - <path d="M134.453 495.044l-2.505-2.505 5.011-10.022-10.022 5.011-2.506-2.505L144.475 475l-10.022 20.043zM119.42 480.009l-2.505-2.506 15.033-15.033 2.505 2.505z" fill="#d0d0d0"/> - </g> - <path d="M269.29 414.57c0 41.095-34.107 74.409-76.181 74.409s-76.181-33.314-76.181-74.409 34.107-74.409 76.181-74.409 76.181 33.314 76.181 74.409z" transform="matrix(.97674 0 0 1 6.263 0)" stroke="#707070" stroke-width="1pt" fill="none"/> - <path d="M269.29 414.57c0 41.095-34.107 74.409-76.181 74.409s-76.181-33.314-76.181-74.409 34.107-74.409 76.181-74.409 76.181 33.314 76.181 74.409z" transform="matrix(.74419 0 0 .7619 51.172 98.707)" stroke="#707070" stroke-width="1pt" fill="none"/> - <path d="M170.08 474.8a3.543 3.543 0 1 1-7.087 0 3.543 3.543 0 0 1 7.087 0zM226.773 474.8a3.543 3.543 0 1 1-7.087 0 3.543 3.543 0 0 1 7.087 0zM192.522 474.801v3.695h-4.725c-4.724 0-4.724 3.695 0 3.695h4.725v3.694c.016 3.83 4.123 4.291 4.424.299l.3-3.993h4.725c4.724 0 4.724-3.695 0-3.695h-4.725v-3.695c0-3.694-4.724-3.694-4.724 0z" fill-rule="evenodd" fill="#d0d0d0"/> - <path d="M180.71 162.99v7.087s-3.362 5.423-24.803 7.086-24.803 0-24.803 0c.559 6.181 4.732 17.896 3.543 31.89.835 16.291-4.103 31.042-4.103 31.042.56.848-2.018 1.279-6.527.848 3.543-3.544 3.134-13.795 3.543-28.347.409-14.553-13.527-36.456-10.63-42.519s63.78-7.087 63.78-7.087z" fill-rule="evenodd" transform="matrix(.33032 0 0 .29556 117.56 374.28)" stroke="#707070" stroke-width="1pt" fill="#d0d0d0"/> - <path d="M272.84 162.26c20.858-1.077 55.859-.843 55.859-.843s8.253 18.502 7.91 28.723-3.181 18.919-7.077 14.57 1.805-3.531 2.498-14.57c.692-11.039-6.661-22.479-6.661-22.479s-14.962 7.302-37.466 5.828c-22.503-1.474-12.541-10.791-15.063-11.229z" fill-rule="evenodd" transform="matrix(.33032 0 0 .29556 115.22 366.9)" stroke="#707070" stroke-width="1pt" fill="#d0d0d0"/> - <path d="M312.21 273.91c20.858-1.077 34.551 2.498 34.551 2.498s8.253 18.502 7.91 28.723-3.181 18.919-7.077 14.57 1.805-3.531 2.498-14.57c.692-11.039-6.661-22.479-6.661-22.479s-14.962 7.302-37.466 5.828c-22.503-1.474-16.084-2.975-18.606-3.413s-3.131 6.958-37.176 7.992c-34.044 1.033-51.407-7.992-51.407-7.992s-3.362 5.423-24.803 7.086-24.803 0-24.803 0c.559 6.181 4.732 17.896 3.543 31.89.835 16.291-4.103 31.042-4.103 31.042.56.848-2.018 1.279-6.527.848 3.543-3.544 3.134-13.795 3.543-28.347.409-14.553-13.527-36.456-10.63-42.519s18.333-.395 21.26-3.544c2.926-3.149-13.749-25.333-10.63-46.063 3.12-20.731 20.792-14.886 42.52-14.173 21.727.712 69.865 7.003 81.496 0 11.632-7.003 6.598-32.929 17.717-49.606 7.086-10.63 17.716-14.173 28.346-14.173 7.087 0 17.717 28.346 17.717 35.433l-3.544 3.543h-3.543v3.543c-8.088.907-9.216-7.732-14.173-14.173-2.13 9.984 7.086 42.52 7.086 63.78 0 17.716-6.622 25.525-7.038 24.276z" fill-rule="evenodd" transform="matrix(.33032 0 0 .29556 104.56 339.3)" stroke="#707070" stroke-width="1pt" fill="#d0d0d0"/> - <path d="M209.06 131.1c.294 7.062-27.384 22.895-29.637 29.164s7.036 9.744 4.163 13.321c-2.872 3.578-5.24 2.251-5.828 2.914-.588.664-10.407-24.56-10.407-24.56s25.961-13.084 24.977-18.733-19.171-9.085-22.479-23.312c-3.309-14.227-1.474-41.71-4.163-47.456-2.689-5.747-34.552-11.23-34.579-19.92-.027-8.69 32.75-32.541 36.293-36.085 3.543-3.543 7.087 3.543 3.543 7.087-3.543 3.543-29.206 25.455-29.206 28.998 0 3.543 21.26 7.086 28.347 7.086 7.086 0 10.63-3.543 10.63-7.086.042-3.066-7.087-3.544-7.087-10.63 0-7.087 3.543-10.63 10.63-10.63 3.543 0 10.356 4.537 10.63 10.63.274 6.092-6.305 6.608-7.087 10.63-.781 4.02 7.087 7.086 14.173 7.086 7.087 0 31.282 20.608 34.825 24.152 3.544 3.544 7.087 3.543 3.544 7.087-3.543 3.543-1.468 7.738-5.012 4.195-3.017-3.423-3.543-7.087-3.543-7.087-.306-3.22-26.27-17.716-29.814-14.173-3.543 3.543 0 46.064 0 49.606 0 7.086 7.381 7.062 7.087 17.716z" fill-rule="evenodd" transform="matrix(.33032 0 0 .29556 116.1 372.43)" stroke="#707070" stroke-width="1pt" fill="#d0d0d0"/> - <path fill-rule="evenodd" fill="#a7a7a7" d="M170.23 386.9h14.045v14.662H170.23z"/> - <rect transform="matrix(.5544 .83225 -.88236 .47057 0 0)" fill-rule="evenodd" rx="1.27" ry=".57" height="1.139" width="87.553" y="64.582" x="405.61" fill="gray"/> - <path d="M180.71 42.52a7.087 7.087 0 1 1-14.173 0 7.087 7.087 0 0 1 14.173 0z" fill-rule="evenodd" transform="matrix(.33032 0 0 .29556 114.05 362.81)" stroke="#707070" stroke-width="1pt" fill="#d0d0d0"/> - <path d="M214.7 394.443c0 .867-5.434 1.886-11.705 1.886s-11.704-1.019-11.704-1.886c0-.868 5.433 1.257 11.704 1.257s11.705-2.125 11.705-1.257z" fill-rule="evenodd" fill="gray"/> - <path fill-rule="evenodd" fill="#a7a7a7" d="M171.4 401.56h11.704v4.189H171.4z"/> - <path d="M209.453 391.243c-1.135 2.126-2.212 3.643-2.405 3.388-.194-.254.57-2.184 1.704-4.31 1.135-2.125 2.212-3.642 2.405-3.388.193.255-.57 2.184-1.704 4.31zM212.432 396.74c-1.292 1.134-2.369 1.868-2.405 1.64-.037-.229.982-1.333 2.274-2.467 1.292-1.134 2.37-1.868 2.406-1.64.036.229-.982 1.333-2.275 2.467z" fill-rule="evenodd" fill="gray"/> - <path d="M210.927 394.09c.953 1.733 1.581 3.2 1.403 3.276-.178.076-1.095-1.267-2.048-3-.953-1.734-1.581-3.201-1.403-3.277.178-.076 1.095 1.267 2.048 3zM210.017 403.13c0 .29-3.668.524-8.193.524s-8.193-.234-8.193-.524c0-.289 3.669-.523 8.193-.523 4.525 0 8.193.234 8.193.523zM183.107 402.081c0 .29-2.62.524-5.853.524-3.232 0-5.852-.235-5.852-.524 0-.29 2.62-.524 5.852-.524s5.853.235 5.853.524z" fill-rule="evenodd" fill="gray"/> - <path d="M375.49 171.92s8.938 36.133 47.04 36.633 51.215-10.838 35.8-29.972-44.084-13.182-40.379 3.33-10.752 22.019-14.154 10.407c-3.401-11.611-17.045-45.99 7.493-48.289 24.539-2.299 76.511-14.817 89.501 9.159 12.991 23.975-14.675 45.707 6.244 50.786 20.92 5.079 23.893-5.809 59.896-9.094 36.004-3.286 49.742 11.102 62.076 9.094 12.334-2.007 10.59-37.258.832-46.207-9.758-8.95-28.5-10.586-33.303-20.398-4.802-9.812-17.87-1.825-16.651-12.905s18.53 7.625 18.733 1.966c.006-.177 2.858-3.93 3.434-4.878-2.178-.828-3.421.512-5.056 1.948 1.775-2.36 1.665-3.448 2.26-5.378-.31-.727-2.461 2.734-2.825 2.011s2.505-5.632 1.206-3.852c-.45.513-3.872 3.329-3.91 1.389.058-.787 1.789-2.813 1.177-3.912-.493-.914-3.093 1.064-3.428 1.29 1.487-3.309 1.382-3.269-.048-5.721-1.249-2.452-2.16-2.395-4.2.374.849-3.979 1.08-4.821-.969-6.329-1.685-1.521-1.76-2.956-3.856 4.162.798-7.618-1.343-7.95-.454-11.562.529-3.312 3.323-4.71 7.927-3.978 8.945.13 13.728 17.954 16.651 17.9 2.924-.054 6.196-18.882 18.733-11.24 12.537 7.643 14.085 9.202 20.398 13.738 6.313 4.535-4.435 11.457-.833 20.398 3.602 8.94 28.229 38.804 21.231 69.935-6.999 31.131-25.026 36.055-26.642 49.538-1.617 13.483 57.067 7.951 72.017 12.49 14.949 4.536 24.375 23.11 24.977 26.224s-26.226 2.914-26.226 2.914-13.776-11.837-46.624-12.904c-32.847-1.068-45.355-23.109-57.651-25.87s-38.501 4.63-53.149 3.542c-14.649-1.087-29.488-4.943-38.976-7.086-9.489-2.142-56.693 35.433-56.529 44.184-9.84-.62-33.009-2.709-32.054-1.665.955 1.043 4.152-17.038 22.214-20.216 18.061-3.179 35.645-17.573 35.062-27.025-.583-9.45 3.487-41.876 4.995-55.782s8.27-20.616 6.661-27.89c-1.609-7.275-22.244-14.779-42.045-14.57-19.801.208-41.77 2.056-44.959 9.99-3.188 7.934-.781 30.964 3.331 28.308 4.111-2.657-.994-17.712 3.33-20.815 4.324-3.102 15.405-5.843 25.809-6.244 10.405-.4 28.494 14.73 28.308 19.565-.186 4.837 5.821 20.934-2.498 27.06-8.318 6.123-25.332 8.861-41.628 7.492-16.297-1.369-32.786-10.674-38.715-16.65-5.928-5.978-9.574-24.146-9.574-25.395z" fill-rule="evenodd" transform="matrix(.21598 0 0 .12989 76.265 416.17)" stroke="gray" stroke-width="1pt" fill="#d0d0d0"/> - <path d="M209.473 431.552a.94.94 0 1 1-1.879 0 .94.94 0 0 1 1.879 0z" fill-rule="evenodd"/> - <path d="M253.616 417.966l4.558.982 7.612-5.21-.59 2.736-3.965 2.649c-.74.486-1.471.931-2.192 1.334.452.632.953 1.386 1.5 2.265l2.454 3.974-.565 2.618-4.74-8.117-4.557-.982.485-2.25zM245.86 384.453l8.816-4.06-2.395-5.202 1.18-.543 5.762 12.511-1.18.544-2.405-5.221-8.816 4.06-.962-2.09zM232.197 367.837l8.116-7.432 1.594 1.74-.21 12.566 6.374-5.835 1.489 1.626-8.117 7.433-1.593-1.74.213-12.573-6.378 5.84-1.488-1.625zM196.728 353.512l1.331-10.925 2.282.278-1.174 9.635 8.498 1.036-.157 1.29-10.78-1.314zM179.281 355.09l-1.97-10.828 2.264-.412 1.737 9.55 8.42-1.531.233 1.278-10.684 1.943zM147.024 370.994l-.807-1.008 5.743-4.608 2.553 3.189a16.252 16.252 0 0 1-1.922 3.193 16.018 16.018 0 0 1-2.622 2.647c-1.331 1.066-2.688 1.857-4.067 2.372-1.378.506-2.617.64-3.72.4-1.102-.239-1.992-.78-2.668-1.624-.669-.836-1.018-1.835-1.049-2.997-.025-1.172.339-2.348 1.093-3.53.755-1.18 1.808-2.312 3.16-3.395.981-.785 1.946-1.392 2.899-1.822.956-.437 1.803-.657 2.54-.659.74 0 1.457.194 2.154.585l-1.394 1.578c-.554-.275-1.082-.416-1.585-.423-.502-.009-1.095.138-1.774.439a9.151 9.151 0 0 0-2.054 1.268c-.82.656-1.463 1.305-1.934 1.944-.474.636-.793 1.231-.956 1.785-.158.55-.214 1.06-.171 1.53.08.81.37 1.524.866 2.145.614.766 1.332 1.241 2.159 1.426.832.179 1.747.075 2.742-.311.996-.387 1.943-.94 2.837-1.656a11.848 11.848 0 0 0 2.05-2.103c.588-.784.987-1.439 1.198-1.959l-1.281-1.6-3.99 3.194zM146.675 450.122l-8.974 6.372-6.789-9.56 1.06-.752 5.457 7.685 2.778-1.973-4.722-6.65 1.06-.753 4.722 6.65 4.076-2.894 1.332 1.875zM133.445 435.804c1.276-.36 2.131-1.183 2.562-2.472.426-1.295.408-2.76-.054-4.396-.47-1.664-1.227-2.929-2.271-3.792-1.048-.871-2.252-1.114-3.616-.73-.861.244-1.548.688-2.057 1.332-.517.64-.826 1.453-.926 2.442-.107.984-.006 2.026.306 3.13.442 1.566 1.166 2.82 2.169 3.76.997.934 2.293 1.176 3.887.726zm.623 2.287c-1.758.497-3.344.14-4.757-1.071-1.418-1.209-2.46-2.994-3.125-5.35-.436-1.544-.596-3.003-.479-4.375s.504-2.498 1.16-3.382a4.656 4.656 0 0 1 2.563-1.783c1.074-.303 2.131-.23 3.172.213 1.041.446 1.958 1.235 2.75 2.364.788 1.135 1.388 2.427 1.797 3.879.445 1.575.6 3.052.47 4.425-.132 1.377-.524 2.503-1.178 3.377-.653.874-1.444 1.441-2.373 1.703zM134.99 415.752l-11.003-.248.173-7.705c.035-1.55.162-2.724.381-3.525.213-.803.575-1.438 1.086-1.908.512-.47 1.07-.7 1.676-.687.78.018 1.43.433 1.947 1.242.517.811.83 2.051.937 3.72.198-.602.392-1.06.58-1.372a9.76 9.76 0 0 1 1.505-1.877l3.063-2.954-.065 2.892-2.34 2.249c-.677.656-1.194 1.197-1.555 1.624-.36.427-.613.812-.762 1.156a4.602 4.602 0 0 0-.315 1.038c-.042.26-.068.686-.082 1.277l-.06 2.668 4.886.11-.052 2.3zm-6.095-2.438l.111-4.944c.024-1.05-.024-1.873-.147-2.468-.126-.597-.336-1.053-.63-1.367-.298-.316-.625-.477-.98-.485-.52-.012-.955.28-1.304.873-.349.585-.538 1.52-.567 2.808l-.124 5.5 3.64.083zM159.468 364.898l.075-12.871 2.127-1.273 11.756 5.79-2.248 1.346-3.451-1.818-6.236 3.732.074 3.84-2.097 1.254zm1.983-6.453l5.055-3.026-3.12-1.684c-.952-.51-1.695-.953-2.231-1.324.173.717.265 1.48.275 2.284l.02 3.75zM214.606 355.002l11.876-4.965 2 1.458-.73 13.085-2.118-1.543.324-3.888-5.874-4.28-3.505 1.57-1.973-1.437zm6.715-.7l4.762 3.47.328-3.532c.1-1.074.215-1.931.348-2.57-.596.438-1.26.821-1.995 1.147l-3.443 1.486zM250.748 395.276l10.703-2.562 1.794 7.495c.36 1.506.537 2.674.53 3.507-.003.828-.19 1.535-.566 2.122-.375.585-.856.948-1.445 1.089-.759.181-1.492-.054-2.2-.706-.705-.65-1.324-1.772-1.853-3.36-.038.635-.108 1.129-.21 1.478a9.746 9.746 0 0 1-.98 2.196l-2.209 3.637-.673-2.812 1.692-2.77c.486-.807.848-1.464 1.089-1.967.239-.504.385-.943.442-1.314.057-.361.07-.722.041-1.081-.026-.263-.11-.682-.247-1.258l-.62-2.594-4.753 1.137-.535-2.237zm6.515.806l1.15 4.807c.245 1.024.501 1.807.771 2.352.274.544.593.93.958 1.161.368.228.725.3 1.07.218.506-.12.852-.512 1.04-1.174.188-.655.132-1.61-.168-2.863l-1.28-5.348-3.541.847z" fill="#d0d0d0"/> - </g> -</svg> diff --git a/img/flags/1x1/mu.svg b/img/flags/1x1/mu.svg deleted file mode 100644 index c93abb1..0000000 --- a/img/flags/1x1/mu.svg +++ /dev/null @@ -1,8 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" height="512" width="512" viewBox="0 0 512 512"> - <g fill-rule="evenodd"> - <path d="M0 383.99h511.99v128H0z" fill="#009f4d"/> - <path d="M0 128h511.99v128H0z" fill="#151f6d"/> - <path d="M0 0h511.99v128H0z" fill="#ee2737"/> - <path d="M0 255.99h511.99v128H0z" fill="#ffcd00"/> - </g> -</svg> diff --git a/img/flags/1x1/mv.svg b/img/flags/1x1/mv.svg deleted file mode 100644 index 61d2bfc..0000000 --- a/img/flags/1x1/mv.svg +++ /dev/null @@ -1,6 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" height="512" width="512" viewBox="0 0 512 512"> - <path fill="#d21034" d="M0 0h512v512H0z"/> - <path fill="#007e3a" d="M128 128h256v256H128z"/> - <circle r="85.333" cy="256" cx="288" fill="#fff"/> - <ellipse cy="256" cx="308.565" rx="73.898" ry="85.333" fill="#007e3a"/> -</svg> diff --git a/img/flags/1x1/mw.svg b/img/flags/1x1/mw.svg deleted file mode 100644 index ee6be8f..0000000 --- a/img/flags/1x1/mw.svg +++ /dev/null @@ -1,15 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" height="512" width="512" viewBox="0 0 512 512"> - <defs> - <clipPath id="a"> - <path fill-opacity=".67" d="M179.71 0h708.66v708.66H179.71z"/> - </clipPath> - </defs> - <g fill-rule="evenodd" clip-path="url(#a)" transform="translate(-129.84) scale(.72249)" stroke-width="1pt"> - <path fill="#f41408" d="M0 0h1063v708.66H0z"/> - <path fill="#21873b" d="M0 472.44h1063v236.22H0z"/> - <path d="M0 0h1063v236.22H0z"/> - <path d="M401.415 214.037c30.876-75.192 116.965-111.159 192.157-80.283 37.867 15.549 64.692 42.36 80.258 80.228l-272.415.056zM365.47 223.756c-32.459-2.415-66.953-9.857-72.58-11.907-5.63-2.05-5.846-5.472-5.152-8.093.693-2.622 4.285-5.599 8.48-4.49 7.864 2.081 39.845 10.54 69.253 24.49zM537.98 92.623c-5.825-32.024-7.295-67.28-6.727-73.243.569-5.963 3.827-7.033 6.538-7.021 2.712.012 6.496 2.74 6.477 7.079-.036 8.134-.18 41.215-6.288 73.185zM553.95 93.365c-3.059-32.404-1.503-67.657-.426-73.55 1.078-5.891 4.416-6.679 7.116-6.434 2.701.244 6.237 3.286 5.846 7.607-.732 8.102-3.711 41.049-12.536 72.378zM568.423 95.328c-.383-32.546 4.07-67.551 5.627-73.334 1.559-5.784 4.95-6.294 7.621-5.828 2.672.465 5.946 3.789 5.201 8.063-1.397 8.014-7.077 40.603-18.45 71.1zM583.668 98.737c2.482-32.454 9.996-66.932 12.057-72.556 2.06-5.624 5.484-5.834 8.104-5.135 2.62.699 5.59 4.297 4.471 8.49-2.097 7.86-10.622 39.823-24.633 69.202zM598.672 103.518c5.354-32.105 15.898-65.78 18.45-71.198 2.553-5.42 5.981-5.324 8.528-4.395 2.548.928 5.186 4.776 3.7 8.852-2.786 7.643-14.114 38.724-30.678 66.742zM612.679 109.367c8.078-31.53 21.463-64.18 24.47-69.36 3.005-5.182 6.413-4.793 8.872-3.65 2.459 1.143 4.758 5.202 2.93 9.136-3.43 7.376-17.375 37.375-36.273 63.875zM626.448 116.581c10.808-30.701 27-62.054 30.449-66.952 3.448-4.897 6.809-4.212 9.158-2.859 2.35 1.354 4.284 5.6 2.118 9.358-4.062 7.048-20.58 35.71-41.726 60.454zM639.48 124.928c13.442-29.643 32.305-59.466 36.167-64.044 3.862-4.579 7.15-3.603 9.373-2.05 2.222 1.554 3.78 5.951 1.294 9.507-4.66 6.667-23.613 33.781-46.835 56.588zM651.74 134.386c15.979-28.356 37.373-56.418 41.62-60.642 4.247-4.224 7.437-2.965 9.515-1.224 2.079 1.742 3.247 6.258.46 9.584-5.225 6.235-26.472 31.59-51.596 52.283zM663.165 144.905c18.398-26.85 42.165-52.933 46.765-56.769 4.6-3.836 7.668-2.304 9.586-.387 1.918 1.917 2.686 6.518-.38 9.587-5.75 5.754-29.134 29.154-55.972 47.57zM673.643 156.43c20.682-25.133 46.646-49.03 51.564-52.448 4.92-3.419 7.842-1.622 9.584.455 1.742 2.078 2.104 6.729-1.22 9.517-6.233 5.227-31.58 26.486-59.929 42.476zM682.669 168.237c22.713-23.312 50.587-44.952 55.774-47.946 5.188-2.995 7.95-.96 9.512 1.256 1.562 2.216 1.533 6.881-2.012 9.38-6.65 4.688-33.686 23.75-63.275 37.31zM690.835 181.036c24.626-21.284 54.248-40.46 59.673-43 5.425-2.539 8.002-.276 9.369 2.066 1.367 2.342.94 6.987-2.808 9.174-7.025 4.102-35.594 20.78-66.234 31.76zM698.408 195.629c26.49-18.913 57.76-35.264 63.397-37.29 5.637-2.026 7.994.466 9.138 2.924 1.144 2.459.288 7.044-3.645 8.875-7.375 3.434-37.365 17.396-68.89 25.491zM704.183 209.713c28.014-16.571 60.572-30.18 66.362-31.715 5.79-1.535 7.924 1.15 8.853 3.697.93 2.548-.317 7.043-4.392 8.53-7.643 2.788-38.72 14.127-70.824 19.488zM708.846 224.643c29.366-14.038 62.996-24.725 68.898-25.744 5.903-1.019 7.792 1.844 8.493 4.463.701 2.62-.936 6.988-5.127 8.11-7.858 2.103-39.814 10.66-72.265 13.171zM522.354 93.228c-8.762-31.347-13.487-66.317-13.472-72.307.014-5.99 3.16-7.357 5.86-7.595 2.702-.24 6.722 2.127 7.104 6.449.717 8.103 3.632 41.055.508 73.453zM506.988 95.212c-11.464-30.462-19.224-64.886-19.732-70.854-.509-5.968 2.506-7.605 5.175-8.078 2.67-.474 6.882 1.533 7.64 5.804 1.421 8.01 7.202 40.582 6.918 73.13zM491.714 98.573c-14.104-29.334-24.866-62.94-25.899-68.84-1.032-5.9 1.827-7.797 4.444-8.504 2.618-.707 6.99.921 8.121 5.11 2.122 7.853 10.75 39.79 13.334 72.235zM477.329 103.067c-16.544-28.03-30.12-60.601-31.65-66.392-1.53-5.792 1.158-7.923 3.705-8.85 2.549-.927 7.043.324 8.526 4.4 2.78 7.646 14.09 38.734 19.42 70.843zM463.258 108.827c-18.884-26.51-35.2-57.799-37.22-63.438-2.02-5.639.474-7.993 2.933-9.134 2.46-1.142 7.045-.28 8.871 3.654 3.426 7.379 17.355 37.385 25.416 68.92zM449.05 116.162c-21.195-24.702-40.264-54.394-42.784-59.828-2.52-5.434-.247-8.003 2.1-9.362 2.346-1.358 6.99-.914 9.164 2.84 4.076 7.041 20.652 35.67 31.52 66.35zM436.106 124.357c-23.248-22.78-44.809-50.715-47.788-55.911-2.98-5.197-.937-7.952 1.283-9.508 2.221-1.557 6.886-1.514 9.376 2.039 4.668 6.662 23.653 33.753 37.13 63.38zM423.986 133.476c-25.107-20.713-48.972-46.706-52.384-51.629-3.412-4.923-1.613-7.843.467-9.583 2.08-1.74 6.731-2.096 9.515 1.232 5.22 6.239 26.447 31.611 42.403 59.98zM412.2 144.08c-26.853-18.392-52.942-42.153-56.779-46.752-3.837-4.6-2.305-7.668-.389-9.586 1.917-1.919 6.518-2.688 9.587.378 5.755 5.749 29.16 29.127 47.582 55.961zM402.03 154.955c-28.301-16.077-56.289-37.568-60.498-41.83-4.21-4.26-2.94-7.447-1.191-9.52 1.749-2.072 6.27-3.224 9.585-.426 6.217 5.247 31.499 26.581 52.104 51.777zM392.279 167.39c-29.618-13.497-59.406-32.415-63.977-36.285-4.572-3.87-3.59-7.157-2.033-9.376 1.558-2.22 5.958-3.77 9.51-1.278 6.658 4.674 33.737 23.676 56.5 46.94zM383.549 180.856c-30.716-10.769-62.09-26.922-66.991-30.364-4.902-3.442-4.222-6.804-2.871-9.154 1.351-2.352 5.594-4.292 9.355-2.13 7.053 4.053 35.737 20.534 60.508 41.649zM376.302 194.54c-31.537-8.051-64.2-21.408-69.383-24.41-5.183-3.001-4.798-6.41-3.657-8.87 1.14-2.46 5.198-4.762 9.134-2.937 7.38 3.423 37.39 17.342 63.906 36.218zM370.49 208.26c-32.102-5.38-65.768-15.952-71.184-18.509-5.417-2.556-5.32-5.985-4.389-8.531.931-2.548 4.781-5.182 8.856-3.693 7.64 2.792 38.712 14.147 66.717 30.734z" fill="#f31509"/> - <path d="M365.47 223.756c-32.459-2.415-66.953-9.857-72.58-11.907-5.63-2.05-5.846-5.472-5.152-8.093.693-2.622 4.285-5.599 8.48-4.49 7.864 2.081 39.845 10.54 69.253 24.49z" fill="#f31509"/> - <path d="M275.33 214.74h527.66v19.174H275.33z"/> - </g> -</svg> diff --git a/img/flags/1x1/mx.svg b/img/flags/1x1/mx.svg deleted file mode 100644 index 61e1128..0000000 --- a/img/flags/1x1/mx.svg +++ /dev/null @@ -1,385 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" height="512" width="512" viewBox="0 0 512 512"> - <defs> - <linearGradient id="a"> - <stop offset="0" stop-color="#fff"/> - <stop offset="1" stop-color="#f15770"/> - </linearGradient> - <radialGradient gradientTransform="matrix(.11321 .02876 -.02762 .11359 180.16 193.225)" r="25.859" cy="103.66" cx="842.31" gradientUnits="userSpaceOnUse" xlink:href="#a" id="b"/> - <radialGradient gradientTransform="matrix(-.10753 -.04307 .03971 -.09991 375.28 9.752)" r="25.859" cy="550.46" cx="651.52" gradientUnits="userSpaceOnUse" xlink:href="#a" id="c"/> - <radialGradient gradientTransform="matrix(.06029 .00225 -.00274 .11843 377.373 -119.958)" r="25.859" cy="740.37" cx="380.84" gradientUnits="userSpaceOnUse" xlink:href="#a" id="d"/> - </defs> - <path fill="#ce1126" d="M341.333 0H512v512H341.333z"/> - <path fill="#fff" d="M170.667 0h170.667v512H170.667z"/> - <path fill="#006847" d="M0 0h170.667v512H0z"/> - <path d="M284.622 295.548l.18 3.583 1.352-.894-1.037-2.95z" fill="#fcca3e" stroke="#aa8c30" stroke-width=".213"/> - <circle r="1.153" cy="294.573" cx="284.466" fill="#fcca3e" stroke="#aa8c30" stroke-width=".183"/> - <path d="M288.913 301.131l-2.62-2.51-1.178.946 3.561 2.075z" fill="#fcca3e" stroke="#aa8c30" stroke-width=".213"/> - <path d="M288.688 302.545c-.37-.496-.246-1.22.271-1.62.52-.399 1.242-.32 1.613.176.367.496.246 1.223-.273 1.622-.52.398-1.242.317-1.611-.178z" fill="#fcca3e" stroke="#aa8c30" stroke-width=".183"/> - <path d="M309.052 263.664l2.686 2.672.313-1.353-2.456-1.646z" fill="#fcca3e" stroke="#aa8c30" stroke-width=".213"/> - <circle r="1.125" cy="262.975" cx="308.693" fill="#fcca3e" stroke="#aa8c30" stroke-width=".183"/> - <path d="M316.129 265.248l-4.104 1.172.338-1.356 3.528-.343z" fill="#fcca3e" stroke="#aa8c30" stroke-width=".213"/> - <circle r="1.099" cy="264.682" cx="316.794" fill="#fcca3e" stroke="#aa8c30" stroke-width=".183"/> - <path d="M302.341 285.472l-2.504-3.9.403-.2 2.833 3.345z" fill="#fcca3e" stroke="#aa8c30" stroke-width=".213"/> - <circle r="1.164" cy="280.666" cx="299.591" fill="#fcca3e" stroke="#aa8c30" stroke-width=".183"/> - <path d="M302.5 285.576l3.18.58.117-.435-2.663-1.055z" fill="#fcca3e" stroke="#aa8c30" stroke-width=".213"/> - <circle r="1.151" cy="286.192" cx="306.652" fill="#fcca3e" stroke="#aa8c30" stroke-width=".183"/> - <path d="M227.711 294.445c0 .555-.435.948-.848.948-.41 0-.743-.448-.743-1 0-.553.334-1.002.743-1.002.413 0 .848.503.848 1.054z" fill="#fcca3e" stroke="#aa8c30" stroke-width=".183"/> - <path d="M227.693 296.23l.728 4.002-.969-.382-.348-3.478z" fill="#fcca3e" stroke="#aa8c30" stroke-width=".213"/> - <path d="M228.577 294.871c.467.606-.324 1.531-1.164 1.761-.84.229-1.888-.159-1.878-.928.011-.872 1.225-.418 1.551-.52.503-.158.988-.965 1.49-.313z" fill="#fcca3e" stroke="#aa8c30" stroke-width=".183"/> - <ellipse ry=".904" rx="1.246" cy="301.009" cx="221.601" fill="#fcca3e" stroke="#aa8c30" stroke-width=".183"/> - <path d="M223.713 300.796l3.844-.191-.65-.766-3.159.343z" fill="#fcca3e" stroke="#aa8c30" stroke-width=".213"/> - <path d="M224.036 300.35c.32.974.347 2.301-.743 2.162-1.091-.142-.885-1.118-.97-1.494-.156-.683-.796-1.298-.138-1.964.658-.669 1.528.322 1.85 1.297z" fill="#fcca3e" stroke="#aa8c30" stroke-width=".183"/> - <ellipse ry="1.147" rx=".753" cy="279.35" cx="211.508" fill="#fcca3e" stroke="#aa8c30" stroke-width=".183"/> - <path d="M211.522 281.888l.088 3.725-.97-.88.07-2.967z" fill="#fcca3e" stroke="#aa8c30" stroke-width=".213"/> - <path d="M212.96 280.755c.197.859-1.063 1.343-1.92 1.183-.858-.157-1.506-.605-1.376-1.395.13-.791 1.194-.613 1.557-.394.364.216 1.467-.6 1.74.606z" fill="#fcca3e" stroke="#aa8c30" stroke-width=".183"/> - <ellipse ry=".593" rx="1.298" cy="285.168" cx="204.939" fill="#fcca3e" stroke="#aa8c30" stroke-width=".183"/> - <path d="M207.274 285.168l2.923-.198 1.246.963-4.215-.158z" fill="#fcca3e" stroke="#aa8c30" stroke-width=".213"/> - <path d="M206.201 283.601c.789.025 1.333.895 1.22 1.817-.111.923-.822 1.669-1.548 1.556-.728-.117-.676-.73-.658-.914.018-.185.424-.52.468-.817.043-.297-.208-.957-.114-1.264.096-.307.278-.389.632-.378zM203.842 260.933c-.327.52-.948.914-1.262.711-.315-.203-.203-.926.123-1.446.325-.518.844-.777 1.16-.574.314.204.304.79-.02 1.309z" fill="#fcca3e" stroke="#aa8c30" stroke-width=".183"/> - <path d="M200.581 266.79l1.633-3.846-.244-.211-1.85 2.702z" fill="#fcca3e" stroke="#aa8c30" stroke-width=".213"/> - <path d="M201.916 262.95c-.808-.59-.987-1.196-.726-1.794.258-.596.864-.209.864-.209s.399.44.692.596c.295.16.763-.05 1.109.44.347.49.138.982-.139 1.106-.277.122-1.125.35-1.8-.138zM195.132 262.445c.58.33.887.888.689 1.253-.2.359-.833.386-1.414.054-.578-.328-.886-.888-.686-1.251.2-.362.83-.387 1.411-.056z" fill="#fcca3e" stroke="#aa8c30" stroke-width=".183"/> - <path d="M196.827 264.133l3.014 1.808-.088 1.422-3.271-2.811z" fill="#fcca3e" stroke="#aa8c30" stroke-width=".213"/> - <path d="M196.802 264.474c-.668.747-1.282.86-1.836.53-.556-.331-.108-.898-.108-.898s.475-.35.664-.628c.189-.28.036-.775.557-1.068.52-.291.978-.026 1.068.269.088.292.214 1.171-.345 1.795z" fill="#fcca3e" stroke="#aa8c30" stroke-width=".183"/> - <path d="M285.275 295.816s-.22.146-.34.382c-.115.236-.247.71-.247.71l.014-1.157.39-.226.183.291z" fill="#aa8c30"/> - <path d="M285.445 295.09s-.27.458-.91.422c-.637-.035-.95-.332-1.027-.658-.079-.324-.079-.561.127-.94.209-.378-.302.36-.302.36v.72l.468.554.396.123.393.025.5-.166.338-.254.017-.185zM288.816 300.979s-.323.168-.57.078c-1.51-.537-2.78-1.422-2.78-1.422l3.037 1.885.313-.541zM290.705 301.838s-.033.53-.622.795c-.586.265-.998.143-1.212-.111-.214-.255-.321-.465-.307-.897.018-.432-.107.459-.107.459l.323.643.663.276.412-.072.358-.159.373-.38.187-.382-.068-.172zM310.119 263.773s-.077.12-.077.317c0 .198-.012.554-.012.554l-.662-.737.335-.435.416.301zM309.765 262.816c.039.527-.726 1.277-1.297 1.04-.571-.236-.986-.83-.674-1.423.311-.593-.156.224-.156.224l.079.87.543.5.676.04.533-.302.324-.594-.028-.355zM317.793 264.249s-.13-.361-.064.045c.064.41-.46 1.286-1.073 1.205-.608-.078-.887-.611-.836-1.106.052-.494-.102.17-.102.17l.096.661.327.31.466.276.545-.094.494-.316.22-.464v-.331l-.073-.356z" fill="#aa8c30"/> - <path d="M315.044 264.858s.02.277-.343.475a42.81 42.81 0 0 0-1.051.607l2.258-.659-.187-.547-.677.124zM301.366 282.772s-.122.133-.129.414c-.008.286.058.622.058.622l-1.266-2.002.376-.238.96 1.204zM300.671 280.889c-.226.527-1.147.863-1.589.606-.441-.256-.817-1.212-.277-1.633l-.282.245-.142.546.202.571.442.5.407.125.65-.13.474-.37s.343-.986.115-.46zM305.133 285.479s.012.236-.403.236c-.414 0-1.284.014-1.284.014l2.103.405.104-.42-.52-.236z" fill="#aa8c30"/> - <path d="M307.717 285.972c.189.702-.435 1.378-1.24 1.142-.804-.24-1.02-1.038-.768-1.468l-.199.501.147.668.493.43.505.11.516-.128.521-.5.13-.598-.105-.157zM228.522 294.896c.217.245-.12 1.159-1.03 1.527-.909.367-1.36.017-1.6-.29-.243-.307-.226-.631-.226-.631l-.13.166.122.475.46.394.803.175.598-.113.589-.317.302-.316.26-.386.035-.474-.147-.238h-.035l-.015.02.014.008z" fill="#aa8c30"/> - <path d="M227.711 296.889s-.155.051-.294.282c-.137.227-.19.63-.19.63l-.07-1.07.468-.247.086.405zM224.682 300.107s-.086.23.156.35c.243.125.814.264.814.264l-1.489.053-.156-.579.675-.088zM224.176 301.034s.018.053.014.15a1.15 1.15 0 0 1-.118.43c-.174.366-.242.79-.778.683-.538-.104-.762-.51-.814-.86-.053-.35-.173-.49-.173-.49v.472l.328.79.536.247h.468l.364-.14.172-.475.088-.387-.087-.42z" fill="#aa8c30"/> - <path d="M220.421 300.93s.174.685.935.702c.762.02.953-.212.953-.212l.086.264-.277.14-.661.076-.582-.116-.271-.2-.206-.36.023-.294zM212.87 280.608s.025.079-.027.329c-.052.25-.518.843-1.39.856-.869.014-1.232-.278-1.465-.567-.235-.289-.274-.698-.274-.698l-.026.435.337.54.857.403.819.006.83-.243.364-.403.085-.442-.11-.215zM211.492 282.455s-.312.027-.467.166c-.155.14-.293.309-.293.309l-.012-1.034.772.059v.5zM207.75 285.186s-.06.06.39.263 2.502.421 2.502.421l-3.29-.088.121-.562.276-.034zM207.377 285.247s-.008.125-.172.457c-.164.334-.578 1.221-1.272 1.098-.693-.123-.606-.607-.606-.684 0-.08-.009-.247-.009-.247l-.12.502.164.35.285.177.563.07.38-.168.416-.395.216-.421.173-.448-.017-.291zM205.604 285.332s-.02.157-.564.177c-.545.014-1.324-.221-1.324-.221l.26.324.45.115.562.008.441-.043.175-.36zM203.928 262.225s.12.352-.191.58c-.311.227-.988.368-1.42.122-.432-.247-1.212-1.036-1.212-1.036l.364.65.57.475.797.227.761-.12.347-.302.105-.244-.121-.352z" fill="#aa8c30"/> - <path d="M201.605 263.28s.017.09 0 .44c-.017.351-.156.932-.156.932l.693-1.548-.277-.246-.26.422zM197.314 264.493s-.103-.107.104.35c.207.458 1.903 2.09 1.903 2.09l-2.7-2.28.311-.443.382.283zM196.412 264.755s-.347.214-.658.229c-.312.018-.83-.017-.9-.387-.069-.367.104-.525.104-.525l-.225.509.087.279.399.23.553.052.502-.246.138-.141zM195.321 263.597s.034.105-.468.035c-.502-.07-1.107-.65-1.107-.65l.397.632.849.351.329-.368z" fill="#aa8c30"/> - <path d="M319.883 256.124c-.246 3.067-3.271 4.634-4.854 5.78-1.586 1.148-2.352 2.57-2.352 2.57l-.532 1.79-.26 1.143-.052.398c.105.319.24.871.26 1.7.04 1.395-.09 3.383-.09 3.383l2.13-1.527 1.544-.58.467-.075s-1.714 1.704-2.389 3.548c-.673 1.844-1.922 5.76-4.258 7.023-2.335 1.265-3.792.74-4.57 1.425-.777.683-.805.867-.805.867l-.995 1.361-.787 1.019-.737.51-.465.376c-.016.38-.061.872-.189 1.325-.255.9-.56 1.902-.56 1.902s.467-.284 1.034-.354c.563-.073 1.089-.067 1.089-.067s-.44.54-.596 1.067c-.156.528.103 3.688-2.908 5.584-3.012 1.896-10.681 1.598-10.681 1.598l-1.452.578-1.368 1.02-1.248 1.37-.093.368s-.943 1.15-1.62 1.6c-.674.446-2.231 1.472-2.231 1.472s1.322-.05 1.765.105c.44.16 2.804 1.214 2.804 1.214s-1.732-.035-2.908.42c-1.179.456-6.543 3.495-9.14 3.407-2.594-.086-6.3-3.881-6.3-3.881l-1.68-1.176-2.786-.543-3.446-.194.05-.452.065-.557s1.169-.132 3.049.09c1.609.192 2.144.725 3.493.883 1.351.158 2.349-.039 2.843-.261.494-.228 4.66-3.756 4.66-3.756l4.686-1.644 1.79.262.794.21.729.212s-.246.383-.767.87c-.52.485-1.17.816-1.17.816l.574.459 2.958-.473.966.25s.075.02.278.148c.046-.213.164-.656.43-1.004.364-.473 2.027-1.83 2.738-2.304.717-.473.872-.54 1.107-.79.232-.25 1.193-2.728 1.193-2.728l.13-1.262 3.272-3.149 2.207-2.344.961-2.674-.105-.538s.793.816.65 2.475c-.143 1.659-.507 2.239-.507 2.239s2.232-1.542 3.428-2.07c.958-.421 1.666-.393 1.912-.367.315-.179 1.174-.71 1.695-1.474.65-.947.82-1.226.82-1.607 0-.382.104-2.225.104-2.225l-.208-5.651 1.922-4.253 2.789-2.503.533-.317s-.222.593-.26 1.002c-.04.407-.04 1.131-.04 1.131s1.415-1.934 2.143-2.29c.166-.081.313-.15.446-.212.152-.27.416-.81.576-1.563.225-1.07.26-2.51.26-2.51l.044-2.339-.455-1.819-1.299-3.49-.051-4.596-.973-1.312s.921-.071 2.063 1.576c1.142 1.647 1.48 3.964 1.48 3.964l2.652-8.139s.712.96 1.215 2.568c.51 1.607.664 2.7.664 2.7l1.044-2.26c-.01.024-.032.157.125.798.18.75 1.802 1.686 1.557 4.755zm-53.837 52.02s-.496-1.246-3.05-2.51c-2.553-1.263-4.455-1.51-4.455-1.51l-.028.94 4.008 1.747 1.999 1.633 1.526-.3z" fill="#9ca168"/> - <path d="M284.293 300.497c.247-.328 2.405-2.25 3.506-2.818 1.105-.567 2.57-.671 2.57-.671 1.52-.279 1.766-.053 5.271-1.989 3.506-1.935 4.286-4.162 4.96-4.701.675-.541 1.907-.672 1.907-.672s-1.467 1.725-2.751 3.134c-1.285 1.411-2.663 2.305-4.636 3.635-1.973 1.33-6.073 1.397-6.073 1.397-1.729.396-2.312.815-3.273 1.657-.96.844-1.613 1.762-1.613 1.762s-.113-.404.132-.734zm9.672-10.153c-3.243 2.963-4.31 5.716-4.31 5.716s2.884-2.475 4.364-3.897c1.48-1.423 3.555-2.109 4.491-2.978.936-.87.987-1.606 1.583-2.16.597-.552 1.04-.817 1.04-.817s-1.43-1.105-7.168 4.136zm-6.844 6.859s1.387-.61 1.912-1.854c.39-.923.183-1.158.78-2.214 0 0 3.375-3.259 4.568-4.662 2.13-2.502 1.169-4.555 1.169-4.555s.233 1.053-.649 2.158c-.883 1.106-5.237 4.083-5.765 5.796-.529 1.713-.233 1.775-.467 2.685-.54 2.1-1.548 2.646-1.548 2.646zm-2.243 8.42s-1.698-1.14-3.6-1.02c-3.877.247-7.157 2.634-9.718 2.704-2.563.07-3.57-1.215-5.55-2.564-2.11-1.439-7.337-1.23-7.337-1.23l-.033.125-.037.153s3.595.036 5.127.46c2.928.809 4.506 3.857 7.83 3.662 4.313-.254 7.85-2.881 9.614-2.872 3.029.02 3.704.581 3.704.581zm-19.234-1.965s3.008.542 5.344-1.172c2.337-1.712 5.114-4.028 6.647-4.134 1.532-.105 3.142.29 3.142.29s-1.95-.87-3.505-.845c-1.56.027-3.142.239-4.597 1.108-1.454.87-2.155 2.448-3.738 3.45-1.585 1.003-3.293 1.303-3.293 1.303zm-.537 4.045c-.402 0-.87.26-1.026.236-.155-.025-1.076-.975-2.362-1.658-1.286-.685-3.202-1.099-3.202-1.099s-.238.06.19.203c.428.146 2.012.683 3.024 1.158 1.013.476 2.037 1.554 2.13 1.725.091.174.454.659 1.207.632.753-.025 1.052-.458.972-.75-.075-.289-.53-.447-.933-.447zm2.116-2.923s1.19.68 3.166.63c4.208-.104 6.855-2.984 9.612-4.037 2.749-1.055 4.16-.142 4.16-.142s.073-.149-.015-.213c-.389-.29-1.667-.984-3.075-.963-4.623.07-8.948 2.985-10.834 3.774-1.823.763-3.013.95-3.013.95zm44.735-31.86c-1.417 1.464-3.533 6.138-4.466 7.414-.934 1.279-2.105 1.66-2.61 2.174-.443.451-2.141 2.739-2.532 3.293-.388.552-.506.394-.778.632-.272.236-.415.25.038.13.455-.116.598-.393 1.299-1.184.7-.79.662-1.146 1.777-2.146 1.117-1.003 3.138-2.143 4.143-3.373 1.002-1.23 3.051-5.987 4.122-7.145 1.16-1.257 3.186-2.003 3.186-2.003s-1.597-.466-4.179 2.207zm-7.192 8.864s-.052-.843.987-2.082c1.038-1.24 1.402-1.079 2.232-2.898.83-1.816 1.196-3.58 1.87-5.503.673-1.925 1.843-3.822 1.843-3.822s-1.09.105-2.208 1.609c-1.117 1.501-2.882 4.24-3.792 6.927-.909 2.687-.932 5.769-.932 5.769zm-1.324 1.762s.389-.208.44-2.552c.053-2.345-.13-5.636.547-7.27.673-1.632 4.258-5.558 4.258-5.558s-1.482.369-3.558 2.028c-2.075 1.658-2.959 3.742-2.856 5.32.105 1.582.989 3.372 1.066 4.927.075 1.553.103 3.105.103 3.105zm8.436-16.134s.885-3.179 1.246-3.952c.367-.774.383-1.23 2.181-3.248 1.032-1.158 2.045-1.9 2.475-3.512.434-1.618.418-6.129.418-6.129s-.467.419-.848 1.21c-.382.793-.105 3.722-.78 5.074-.676 1.354-2.198 4.534-2.96 5.217 0 0-.155-2.282.121-4.584.278-2.3 1.057-3 1.402-4.512.347-1.508.139-5.408.139-5.408s-1.228 1.266-1.836 2.721c-.603 1.458-.968 4.074-.985 6.04-.018 1.968.45 3.567.52 4.69.066 1.124.154 1.65-.296 2.88-.45 1.229-.224.386-.502 1.58a27.869 27.869 0 0 1-.57 2.09l.275-.157zm-2.802-17.245s1.072 1.352.898 2.898c-.173 1.544-.761 3.582-.155 5.197.606 1.615 1.507 1.774 1.75 2.704.242.93.257 2.746.257 2.746s.502-3.45.156-4.398c-.344-.946-.5-.51-1.002-1.51-.503-1 .016-3.738-.364-5.336-.38-1.598-1.54-2.3-1.54-2.3z" fill="#717732"/> - <path d="M245.363 307.872s.325-.907 2.505-1.973c2.181-1.067 5.465-2.504 5.777-2.32.312.186-.17 1.372-.17 1.372l-2.114.644-1.688.989-1.973 1.277-2.337.011z" fill="#9ca168"/> - <path d="M250.922 302.137c-2.787.105-4.307.79-4.843.897-.184.036-.586.32-.928.151-.654-.324-1.222-1.222-1.222-1.222l-.59-.491-.137 2-4.068-3.527-.434 2.333-.519 1.073-4.033-3.812.19 2.95s-1.054.139-1.107.105l-2.873-2.001-.848.28.935 1.739-3.636.282s-.293.16-.787.613c-.494.455-.766.883-.766.883s-.11.185.019.27c.13.085 1.124.066 1.435-.054.312-.118.513-.552.604-.374.09.178.207.976.688.896.481-.08 2.17-1.36 3.375-.797 1.343.625-1.74 1.535-1.421 2.49.316.95 2.537.546 3.102.242.564-.302 2.25-2.405 2.94-1.606.96 1.113-2.018 1.976-1.467 3.087.533 1.073 2.195.832 2.998.37.807-.46 2.677-3.34 3.092-2.72.72 1.079-1.579 2.108-1.001 2.943.578.836 1.85-.03 2.694-.625.844-.593 1.182-2.003 2.35-2.66 1.168-.659 1.09-.384 1.41-.395.322-.015 1.225-.909 1.225-.909l2.746-1.166 1.344.098.694.33 1.377.192.162-1.161s-1.593-.745-2.7-.704zm-21.976.022l.581-1.032-.329-.5s-.969-.544-1.851-1.438c-.883-.897-1.206-1.102-1.61-1.304-.405-.204-1.765-1.09-1.765-1.09l-.614-2.263-.362-.654-1.05.411-1.381-4.868-.27-.873-.57-.034-1.133 2.952-1.267-1.843-.322-4.035-.79.886-1.016 1.033-1.807-3.658s-.147-.093-.24.211c-.09.297-.247 1.451-.134 2.136-.483-.301-1.313-.87-2.425-1.829-1.835-1.58-2.276-2.393-2.276-2.393l-.857-1.933.805-1.7.402-2.028-1.765.722-.311-4.584-.274-1.447-2.129 3.043s-.83-1.173-.83-1.304.039-2.897.039-2.897l-.571-.172-.871 1.633s-.837-1.685-1.206-2.044c.059-.648.156-2.301-.237-3.578-.498-1.624-1.08-2.49-.872-3.816.209-1.327.747-1.453.685-2.044-.062-.59-.935.381-.644-.4.292-.778 3.075-2.548 2.493-3.475-.582-.928-3.261 1.454-2.638-.146.622-1.602 3.198-1.624 3.344-3.857.09-1.39-2.43.865-2.66.168-.227-.694 1.558-2.126 1.538-3.033-.02-.905.333-1.01-.166-1.495-.498-.484-2.036 1.895-2.036 1.895l-1.682-.633-.582 2.404-.518 2.042-2.078-1.22.56 2.486.5 2.423-2.161-.548 1.143 2.064 1.488 1.512.92 1.248.666.358.893.887.311 1.326s.52 1.455.52 1.519c0 .062.083 1.431.083 1.431l.02.948-.046.735-.032.277-.045.316-.019.868c-.406.039-1.066-.623-1.307-.21-.259.449 1.247 1.606.961 1.896-.285.291-2.492-.447-2.622.263-.13.711.208 1.712 1.48 2.028 1.272.317 4.232 1 3.74 1.58-.495.58-3.714-1.764-3.583-.051.129 1.71 1.246 2.422 2.077 2.738.83.317 4.075-.05 3.893.712-.18.765-2.647-.237-2.881.868-.233 1.109 1.714 1.265 2.13 1.265.415 0 1.764-.052 2.283.343.52.395 2.337 2.318 3.48 3.292.97.827 3.064 2.278 3.676 2.699l-.03-.004c-.615-.057-1.89-.192-2.093.267-.258.592 4.883 2.425 3.407 2.994-1.475.567-3.064-1.57-3.49-.264-.426 1.306.977 2.41 1.778 2.885.799.475 5.358.097 4.464 1.127-.893 1.034-4.196-.696-4.226.528-.032 1.223 2.202 3.161 3.344 3.107 1.143-.051 2.398-1.886 2.918-.894.52.99-.883 1.39.218 1.654 1.1.262 1.88-1.128 3.157-.875 1.276.253 3.282 1.062 4.404 2.084a63.2 63.2 0 0 1 2.273 2.203z" fill="#9ca168"/> - <path d="M246.698 307.306c.779.013.883.434.987.422.104-.015 1.415-1.133 2.661-1.818 1.247-.686 3.141-1.093 3.141-1.093l.118.171s-2.257.564-3.349 1.33c-1.35.948-2.414 1.542-2.48 1.712-.065.17-.557.5-1.324.515-.765.01-1.09-.447-1.09-.674 0-.222.558-.578 1.336-.565zm6.803-3.446s-.675.07-1.056-.265c-.381-.334-1.229-.631-2.044-.631-.812 0-2.115.448-3.148 1.438-.084.08-.29.461-1.179 1.055.309.06.907-.35 1.559-.877.934-.761 2.111-.967 2.942-1.088.83-.125 1.35.35 1.732.612.38.266 1.159.192 1.159.192l.035-.436zm-40.38-16.503c.084-.035.07-.219.015-.537-.125-.048-.628-.26-1.757-.933-1.324-.791-4.076-2.979-4.076-2.979s1.143 1.109 2.285 2.136c1.142 1.026 3.194 2.29 3.194 2.29l.01.008c.176.017.301.027.328.015zm28.506 20.194s.416-.545 1.156-1.735 1.414-1.57 1.518-1.715c.104-.145-.285-.725-.507-1.173-.22-.448-.18-.922-.18-.96 0-.04.271.696.816 1.106.546.406.875.75.875.75s1.085-.145 1.112-.357c.026-.21-.027-.355-.208-.433-.181-.08-.39.162-.883-.055-1.025-.445-1.44-2-2.051-2.053-.61-.052-.174 1.647-.442 1.672-.947.091-1.687-3.45-3.96-3.595-1.598-.103-1.882.198-1.96.553-.076.356 1.935 2.477 1.26 2.778-.675.305-2.817-3.33-4.375-3.372-1.557-.04-1.687.555-1.571.897.117.342 1.727.645 1.35 1.778-.365 1.1-1.934-1.697-3.374-1.541-1.442.158-1.597.263-1.663.671-.063.409.507 1.001.3 1.146-.208.144-1.118.104-1.844.605-.727.502-1.74 1.871-1.74 1.871s.948-1.342 2.206-1.488c1.26-.144 4.44.014 4.44.014s-.427-.265-.894-.686c-.468-.422-.87-1.277-.87-1.277s.701.66 1.376 1.211c.674.555 1.518.976 1.518.976s1.35.132 1.442.29c.09.158-.04.473-.597 1.078-.559.606-1.364 1.32-1.364 1.32s1.35-1.028 1.61-1.252c.26-.224 1.194-.935 1.194-.935s.988.13 1.091.105c.103-.026.056-.369-.606-1.343a46.468 46.468 0 0 1-1.29-2.03s.814.749 1.636 1.833c.822 1.083.701 1.584 1.038 1.637.338.052.883.127 1.13.115.33-.018.246.472-.326 1.342-.57.87-.907 1.988-.907 1.988s.583-.936 1.206-1.58c.623-.645.949-1.41 1.195-1.45.247-.038 1.082.066 1.2.016.115-.054-.2-.397-.641-1.294-.442-.894-.585-2.133-.585-2.133s.429 1.16 1.104 2.003c.675.842.935 1.52 1.082 1.53.147.006.668-.061 1.047-.056.19.004.212-.042.234.078.064.372-.092.595-.546 1.45-.454.856-.752 1.7-.752 1.7zm-17.24-9.998c.974.332 1.35.332 1.35.332s-1.337-.792-1.688-1.912c-.35-1.118-.038-3.477-.61-3.45-.57.027-.896 1.739-1.466 1.397-.572-.342.194-3.491-.43-4.833-.621-1.345-2.088-2.28-2.427-1.793-.337.49-.259 3.385-1.168 2.754-.909-.631.078-3.109-.195-4.241-.273-1.134-.96-1.95-1.48-1.674-.52.279.207 2.398-.61 2.423-.818.028-.701-1.488-1.051-1.632-.35-.145-.468.305-.663.016-.195-.292-.09-1.372-.519-1.267-.428.106-.35.936-.234 1.395.117.462.376 1.12.558 1.424.182.303.832.684.78.936-.052.25-.39.461-.83.474-.443.013-1.443-.029-1.443-.029s1.065.332 1.467.371c.402.04 1.183-.171 1.376.184.195.357 1.13 1.62 1.13 1.62s.22-.658.337-1.819c.117-1.157.065-2.173.065-2.173s.31 1.345.272 2.149c-.038.801-.337 2.369-.337 2.369s.882.738.624.936c-.26.198-1.182.172-2.26.158-1.076-.014-2.608-.382-2.608-.382s1.376.659 2.336.815c.96.16 3.05.212 3.05.212l1.428 1.618s.684-1.174.78-2.34c.095-1.17-.027-2.525-.027-2.525s.299 1.219.352 2.26c.051 1.042-.34 2.884-.468 3.042-.13.159-.86.612-1.502.773-.943.237-2.834.478-2.834.478s1.745.232 2.998-.067c1.256-.296 1.403-.645 1.753-.434.351.212.663.594.663.594s.751.583 1.09.737c.053.117-.58.378-.9.58-.32.202-1.165.592-1.165.592s1.234-.448 1.78-.591c.273-.075.934-.318.934-.318l.364.198s.026-.263-.078-1c-.103-.737-.26-1.45-.26-1.45s.428.672.559 1.304c.129.633.129 1.277.129 1.277s.104.182 1.078.512zm-24.873-28.498s.277-1.336.277-2.88c0-1.547-1.074-3.935-1.247-4.18-.173-.247-.276-.457-.276-.457l.726-1.122-.934.735s-.52-.106-.97-.385c-.45-.28-.675-.702-.675-.702s.478.353.935.544c.457.189.57.123.57.123l-.36-1.56s-.476-.19-1.536-.78c-1.06-.59-2.015-1.516-2.015-1.516s1.433.864 2.243 1.2c.811.339 1.268.36 1.268.36s.852-.254 1.288-.508c.435-.252 1.329-.927 1.329-.927s-.851.485-1.413.612c-.56.128-1.267.209-1.267.209l-.25-1.894-.891-.927c-.706-.928-1.248-2.254-1.248-2.254s.727.925 1.31 1.367c.582.446 1.121 1.16 1.121 1.16s.665-.359 1.308-.8c.643-.442 2.243-1.602 2.243-1.602s-.913.484-2.18 1.074c-1.268.59-1.31.528-1.31.528s-.103-.82.084-1.18c.188-.357.582-.947.52-1.305-.062-.36-.332-.234-.436-.528-.105-.296.332-2.105.332-2.105s.104.652.125.987c.02.336-.166.801.29.801.458 0 2.597-2.148 2.866-2.55.27-.399.666-1.495-.458-1.051-1.12.44-.853 1.399-1.785 1.325-.27-.02-.58-1.22-.934-.926-.354.296-1.143 1.033-1.289 1.875-.144.843.188 2.129-.29 2.507-.479.38-.894-1.453-1.828-1.2-.935.252-1.142 1.537-.996 2.043.145.505 2.18 2.865 1.537 3.161-.645.295-2.224-2.003-3.075-.443-.852 1.558 2.68 3.16 3.114 3.54.437.38.043.487.665 1.265.625.778 1.455.97 1.891 1.497.435.526 1.724 3.031 1.724 4.654 0 1.623-.103 2.215-.103 2.215zm9.38 13.677s-.865-1.01-.579-2.667c.286-1.659 1.43-4.584 1.04-4.953-.39-.367-1.61 1.791-1.922 1.292-.312-.5.7-3.425.182-4.637-.52-1.211-.571-1.975-1.61-1.87-1.04.106-1.48 3.53-1.972 2.925-.495-.605.284-2.133-.053-2.95-.338-.816-.52-1.107-1.039-.976-.519.132-.753 1.712-1.116 1.687-.364-.027-.961-1.9-1.714-1.632-.753.262 1.79 3.58 1.79 3.58s.455-.394.69-.96c.233-.568.466-1.187.466-1.187s.209 1.08.026 1.503c-.18.42-.324 1.409-.324 1.409s-.623.197-1.649.038c-1.025-.156-1.869-.578-1.869-.578s.688.461 1.739.737c1.052.277 2.168.62 2.168.62s.274.341.74.96c.468.62.87 1.145.87 1.145s.3-.63.598-1.672c.298-1.04 1.012-2.752 1.012-2.752s-.22 2.068-.468 3.082c-.246 1.015-.506 2.45-.506 2.45s-.909-.091-2.128-.316c-1.22-.226-2.883-.645-2.883-.645s1.455.58 2.87.96c1.414.38 2.297.62 2.297.62l1.112 1.47s.304-.536.745-1.152c.44-.623.78-1.465.78-1.465s-.195 1.148-.533 1.832c-.338.685-.572 1.093-.572 1.093s-.714.172-1.376.157c-.662-.012-2.012-.026-2.012-.026s1.13.38 2.025.529c.896.144 1.546.235 1.546.235s.064.408.544 1.094a3.664 3.664 0 0 0 1.084 1.02z" fill="#717732"/> - <path d="M251.55 312.67s-.507-.545-1.182-.901c-.675-.355-.901-.25-.901-.25l-.313-.11.592-1.543 4.446-4.247.688-4.269.164-.004 2.576-.027-.028 5.827.817.37 4.963 2.976-.016 1.295s-.246.088-.725.277c-.481.192-.596.332-.596.332l-1.873.176-3.271-2.371-1.351-1.42-2.465 3.158-1.526.73z" fill="#fff"/> - <path d="M255.048 301.344s-.073.226-.105.882c-.034.656.044 4.098-.125 4.569-.167.47-2.56 1.458-3.928 2.65-1.367 1.196-1.42 2.073-1.42 2.073s-.45.034-1.298.35c-.848.315-1.229.79-1.229.79s.502-2.123 2.717-4.089c2.218-1.97 3.289-2.135 3.535-2.466.249-.328 0-4.094.054-4.399.05-.301.316-.329.5-.356.182-.026 1.299-.004 1.299-.004zM260.699 313.925s.348-.683.572-.913c.223-.228.763-.615.763-.615s.084-.086-1.127-.614c-1.212-.526-1.835-.351-2.7-.965-.865-.614-1.731-1.668-1.731-1.668l-1.16 1.035s.694.984 1.351 1.616c.656.631 2.145.843 2.803 1.211.658.37 1.229.913 1.229.913z" fill="#016848"/> - <path d="M257.218 301.32s1.312-.078 1.494.125c.181.203.155.428.162.495.006.063.069 3.182-.162 4.207-.244 1.071-.797 2.14-1.11 2.458-.312.316-2.283 2.038-3.22 2.95-.933.912-1.884 2.214-1.884 2.214s-.347-.387-.641-.757c-.293-.369-.59-.491-.52-.737.069-.245 1.057-1.721 2.632-2.757 1.574-1.036 2.89-2.212 3.184-3.897.297-1.687.065-4.3.065-4.3z" fill="#cd202a"/> - <path d="M265.983 311.975s-.315-.318-1.424-.336c-1.114-.02-1.205.148-1.205.148s-.611-.77-1.592-1.409c-.982-.639-1.722-.544-2.777-1.239-1.056-.695-1.61-1.71-1.61-1.71l.814-1.652s.91 1.279 1.851 1.973c.944.693 3.036 1.37 3.704 1.955.666.582 2.24 2.27 2.24 2.27z" fill="#cd202a"/> - <path d="M275.949 293.08s-2.856-1.108-2.65-2.11c.208-1 6.598-2.685 6.598-2.685l.102-1.686s-.935-.052-2.546.475c-1.61.526-4.154 1.21-6.904 1.21-1.67 0-2.576-.174-3.03-.31-.294-.09-22.521-1.396-23.246-1.389-.313.006-.711-.004-1.213-.038-2.96-.211-4.863-4.741-4.863-4.741l-1.402.245s.43 2.226-.313 2.423c-1.453.387-11.11-4.777-11.11-4.777l-.534 2.095s5.905 3.158 5.727 4.333c-.178 1.174-1.929 1.085-1.929 1.085l.75 1.408c.266.024 9.723.48 9.884 3.32.066 1.146-2.32 1.825-2.32 1.825l.796.971v.484s5.252.031 6.706.843c1.454.813 2.194 1.986 3.976 3.009 1.78 1.024 13.868.774 15.757.243 2.135-.602 3.446-3.02 6.918-4.074 3.471-1.052 4.593-1.105 4.593-1.105z" fill="#30c2dc" stroke="#0872a7" stroke-width=".427"/> - <circle cx="227.605" cy="288.551" r="1.673" fill="#fff" stroke="#0872a7" stroke-width=".835"/> - <circle cx="237.162" cy="280.755" r="1.674" fill="#fff" stroke="#0872a7" stroke-width=".835"/> - <circle cx="277.224" cy="293.238" r="1.717" fill="#fff" stroke="#0872a7" stroke-width=".835"/> - <path d="M220.104 278.25c-.545 1.263 1.608 3.66 3.115 3.923 1.506.263 2.336-.104 2.596-.842.26-.74.058-1.541-.285-2-.96-1.293-4.882-2.346-5.426-1.081z" fill="#f8c83c"/> - <path d="M224.852 280.176c-.04-.763-1.297-1.503-2.102-1.503-.805 0-1.61-.025-1.48.397.13.42 2.207.976 2.258 1.21.052.238-.623.526-.285.843.338.317.753.08 1.09-.157.338-.238.545-.316.52-.79z" fill="#fff"/> - <path d="M238.146 294.61c.346 1.112-.519 1.656-1.636 2.158-1.116.5-3.4.21-3.92-.684-.52-.896.831-2.345 2.207-2.688 1.376-.342 3.037.211 3.349 1.213z" fill="#f8c83c"/> - <path d="M235.836 295.267c.437-.075.442.66.831.605.39-.05.727-.683.623-1.105-.104-.422-.831-1.001-1.454-.948-.623.053-2.466 1.606-2.26 2.028.209.42.624.369.962.211.338-.158.831-.711 1.298-.79z" fill="#fff"/> - <path d="M279.374 288.843c1.013 1.347 2.839.105 3.322-.42.485-.527 1.973-1.387 1.368-2.266-.607-.877-1.644-.807-2.337-.773-.693.035-2.112 1.055-2.353 1.527-.243.477-.45 1.337 0 1.932z" fill="#f8c83c"/> - <path d="M279.704 287.953s.088-1.467 1.456-1.528c.778-.035.812.212 1.402.546.586.332.812-.44.812-.44s.036 1.037-.915 1.071c-.953.034-.608-.42-1.542-.561-.822-.125-1.214.912-1.214.912z" fill="#fff"/> - <path d="M257.48 285.107l-.675-.438s-1.351-.07-2.268-.053c-.918.018-2.734.106-2.734.106l2.715 7.883 3.256 4.69 1.247.447 2.527-.167.43-1.228-.95-7.604-3.548-3.636z" fill="#f9aa51" stroke="#953220" stroke-width=".427" stroke-linecap="round" stroke-linejoin="round"/> - <path d="M248.508 285.6l.13-.895s.615-.078 1.471-.104c.857-.029 1.606.056 1.698.122.088.066 1.895 2.275 2.517 3.722.622 1.45 1.35 3.872 2.155 5.35.805 1.473 2.545 3.949 2.545 3.949s-.87.051-1.637.051c-.766 0-1.617.027-1.617.027l-1.46-.566-4.582-7.124-1.22-4.532z" fill="#f9aa51" stroke="#953220" stroke-width=".427" stroke-linecap="round" stroke-linejoin="round"/> - <path d="M246.594 284.631s1.87-.034 2.043.07c.173.106 2.25 1.951 3.08 4.232.832 2.283.416 2.6 1.49 4.953 1.071 2.353 2.562 3.933 2.562 3.933s-3.116.176-4.882-.141c-1.766-.317-2.389-.28-2.805-.77-.415-.494-1.385-1.09-1.385-1.09h-1.764l.414-2.46-.484-5.512.104-2.847 1.627-.368zM265.288 286.088l-2.976-1.228-5.54-.282s.206 1.477.414 2.846c.208 1.368 1.179 4.6 2.079 6.18.9 1.58 1.8 3.513 2.286 3.968.485.457 3.67-.86 3.67-.86l2.076-.316-.277-2.266-.295-.702.487-6.445-.453-1-1.47.105z" fill="#f9aa51" stroke="#953220" stroke-width=".427" stroke-linecap="round" stroke-linejoin="round"/> - <path d="M245.692 286.125c0 .703.745.738.935.703.19-.036.831-.281.831-1.23 0-.948-.588-1.685-1.749-1.755-1.16-.07-2.041 1.388-2.041 2.37 0 .982.985 1.492.985 1.862 0 0-.985.913-.934 2.51.051 1.598 1.35 2.827 1.35 2.827s-1.385 1.106-1.385 2.213 1.057 1.842 2.043 1.842c.987 0 2.25-.63 2.25-1.472 0-.844-.744-1.352-1.367-1.352-.624 0-.883.367-.883.649M266.24 286.57c0 .685-.443.713-.833.713-.39 0-.908-.212-.908-1.082 0-.869 1.143-1.343 1.87-1.343.725 0 1.973 1 1.973 2.213 0 1.211-.884 2.028-.884 2.028s.545.262.545 1.79c0 1.529-.985 2.633-.985 2.633s1.287.503 1.287 2.083c0 1.578-1.092 2.095-1.846 2.095s-2.066-.45-2.066-1.529c0-1.082.677-1.461 1.195-1.461.52 0 1.026.606 1.026 1.198" fill="#f9aa51" stroke="#953220" stroke-width=".427" stroke-linecap="round" stroke-linejoin="round"/> - <path d="M247.6 294.92s.193.127.338.436c.15.313.255.812.597 1.117.675.606 5.815.792 7.374.792 1.557 0 6.23.21 7.114-.317.884-.526.987-1.397 1.532-1.792.544-.394.7-.367.7-.367l-.675.578-.049 1.106.4.606s-.09.318-.636.66c-.545.343-1.038.447-1.791.527-.753.08-10.592.052-12.178-.21-1.583-.266-1.479-.238-1.946-.58a3.446 3.446 0 0 1-.728-.712l.208-.71-.26-1.134zM263.563 285.479l.883.387s-.754.234-1.322 1.79c-.573 1.555-.105 2.054-.494 2.212-.39.16-4.648.027-4.648.027l-.73-1.767 6.311-2.65z" fill="#953220"/> - <path d="M277.144 284.863s-.728-.263-1.064-.87c-.34-.606-.625-1.37-.366-1.528.263-.158.806.368.756.844-.054.473.674 1.554.674 1.554zM285.464 282.565s.519.947.7 1.051c.183.106 1.011.478 1.011.478s-1.167 0-1.53-.318c-.365-.317-.883-1.186-.883-1.186l.702-.025z" fill="#231f20"/> - <path d="M287.975 283.333s-.701.42-1.297.184c-.597-.237-1.063-.58-.833-.842.236-.265.389-.159.701.183.313.344 1.429.475 1.429.475zM292.205 279.749s-.572.503-.987.503c-.415 0-1.247-.16-1.247-.345 0-.183 1.09-.289 1.272-.262.184.026.962.104.962.104zM285.866 271.35s-.936.288-1.246.765c-.31.473-.234 1 .156.972.388-.025.493-.552.493-.71 0-.156.597-1.027.597-1.027zM281.69 273.642s-.7.445-.882.842c-.184.393-.339 1.236.076 1.264.417.026.548-.633.572-.975.027-.343.235-1.131.235-1.131z" fill="#231f20"/> - <path d="M274.218 278.695l-2.292 2.426s5.27 2.95 9.32 2.819c4.052-.13 8.674-3.292 8.983-3.952.313-.656.054-3.476-.468-4.373-.519-.894-3.322-3.08-4.386-2.976-1.063.106-2.935 1.528-4.674 3.214-1.74 1.686-1.56 3.107-3.973 2.978-2.415-.132-2.511-.136-2.511-.136z" fill="#8cbebf" stroke="#04534e" stroke-width=".427"/> - <path d="M273.633 279.664s5.642.844 7.267-.597c1.63-1.438 3.394-4.249 4.537-4.882 1.143-.633 1.66-.633 1.66-.633s.84.536 1.229.871c.39.332 1.436 1.192 1.436 1.192l.452 2.68.034 1.474-1.763 1.442-3.24 1.493-3.097.964-2.63-.07-5.33-1.546-1.353-.956-.346-.308 1.143-1.124z" fill="#0c8489"/> - <path d="M282.233 276.415c0-.481.315-.457.745-.457s.9.082.9.562c0 .48-.47 1.176-.9 1.176-.43 0-.745-.8-.745-1.281zM284.5 277.835c0-.432.333-.667.847-.667.517 0 .987.578.987 1.009 0 .432-.418.782-.931.782-.517 0-.903-.692-.903-1.124zM283.72 281.212c0-.54.331-.652.848-.652.515 0 .832.243.832.782 0 .537-.42.975-.936.975-.517 0-.744-.569-.744-1.105zM280.746 280.176c0-.576.547-.756 1.011-.756.464 0 .84.468.84 1.047 0 .577-.376 1.043-.84 1.043-.464 0-1.011-.758-1.011-1.334zM276.034 280.749a1.152 1.152 0 1 1 2.303 0 1.151 1.151 0 0 1-2.303 0z" fill="#04534e"/> - <path d="M284.5 277.835c0-.39.533-.667.847-.667.317 0 .573.313.573.703 0 .386-.256.702-.573.702-.314 0-.847-.351-.847-.738zM283.739 281.072c0-.447.412-.633.883-.633.473 0 .83.185.83.633 0 .445-.384.806-.856.806-.473 0-.857-.361-.857-.806zM280.764 280.084c0-.493.81-.717 1.145-.717.335 0 .277.33.277.824 0 .496-.274.895-.609.895-.333 0-.813-.504-.813-1.002zM282.166 276.36c0-.451.35-.474.642-.474.29 0 .501.135.501.588 0 .45-.236.816-.527.816-.293 0-.616-.479-.616-.93zM276.022 280.401c0-.523.456-1.018 1.126-1.018.67 0 1.349.231 1.349.754 0 .524-.819 1.423-1.488 1.423-.672 0-.987-.635-.987-1.159z" fill="#8cbebf"/> - <path d="M278.18 279.487s-.78.133-1.195.528c-.414.395-.468.844-.233.975.233.13.52-.29.597-.475.077-.185.83-1.028.83-1.028zM281.922 278.67s-.752.528-.83 1.056c-.079.528 0 .79.209.816.208.026.336-.686.26-.95-.078-.26.361-.922.361-.922z" fill="#231f20"/> - <path d="M282.544 279.463s-.493.025-.83.341c-.336.318-.648.712-.414.739.231.025.598-.158.62-.37.027-.21.624-.71.624-.71zM283.348 275.117s-.39.316-.597.5c-.209.185-.467.71-.209.845.261.132.443-.107.624-.474.182-.372.182-.871.182-.871zM286.183 276.933s-.73.103-.96.42c-.234.316-.392.686-.08.686.311 0 .389-.159.52-.447.13-.29.52-.659.52-.659zM285.738 280.28s-.155.5-.597.736c-.441.24-.57.449-.752.132-.183-.315.051-.474.285-.555a52.284 52.284 0 0 1 1.064-.314z" fill="#231f20"/> - <path d="M290.254 278.012s.314 1.554-1.036 2.316c-1.35.765-5.142 3.451-8.724 3.135-3.584-.317-7.66-2.37-7.66-2.37l-.57.263.908.395 2.778 1.158 3.165.924 1.976.13 1.714-.21 3.166-1.052 2.682-1.371 1.393-1.107.373-.457-.034-.648v-.896l-.13-.21z" fill="#04534e"/> - <path d="M219.903 257.763s.831.712.753 1.317c-.078.606-.286.845-.518.739-.235-.106-.235-.74-.183-1 .052-.267-.052-1.056-.052-1.056zM226.047 263.475s-.234 1.052-.65 1.157c-.415.106-.726-.341-.65-.526.08-.185.417-.026.599-.185.181-.156.701-.446.701-.446zM212.674 264.291s.285.607.83.712c.546.104.806-.264.728-.448-.078-.183-.312-.133-.598-.133-.285 0-.96-.13-.96-.13zM215.064 268.979s.494.58 1.168.659a1.015 1.015 0 0 0 1.064-.606c.052-.159-.778-.133-1.039.078-.259.211-1.193-.131-1.193-.131zM219.294 272.587s1.09-.211 1.27-.5c.183-.29.468-.79.235-1.08-.234-.289-.416.447-.545.736-.13.291-.96.844-.96.844z" fill="#231f20"/> - <path d="M226.102 269.722s.728-4.882-3.22-8.324c-3.946-3.441-6.508-2.6-7.86-1.333-1.349 1.263-2.526 5.409 1.662 9.026 4.19 3.617 9.349 2.494 9.349 2.494l.069-1.863z" fill="#8cbebf" stroke="#04534e" stroke-width=".427"/> - <path d="M214.064 264.554s-.075-2.683 1.192-3.48c1.267-.803 5.44-1.498 7.498 2.465 2.056 3.96 2.097 5.94 1.578 7.943l-2.201-.022-3.407-1.389-2.825-2.086-1.835-3.432z" fill="#0c8489"/> - <path d="M225.578 270.423s-.692.773-2.112.704c-1.419-.072-8.03-1.792-9.693-7.727l.104 1.299.069.422.436 1.196 1.39 2.02 1.747 1.496 2.201 1.139 1.58.463 2.055.36h1.184l1.04-1.372z" fill="#04534e"/> - <path d="M222.134 268.71c0-.529.271-.545.692-.545.42 0 .744-.186.744.342s-.288 1.291-.709 1.291c-.42 0-.727-.56-.727-1.087zM222.414 265.571c0-.365.333-.66.746-.66.411 0 .743.295.743.66 0 .364-.332.657-.743.657-.413 0-.746-.293-.746-.657zM219.416 269.034c0-.285.375-.518.839-.518.464 0 .84.233.84.518 0 .285-.835.675-1.299.675-.463 0-.38-.39-.38-.675zM219.141 265.334c0-.465.226-.317.633-.317.407 0 .908.133.908.598 0 .466-.502 1.089-.908 1.089-.407 0-.633-.906-.633-1.37zM216.356 265.955c0-.391.264-.94.761-.94s1.038.548 1.038.94c0 .393-.403.712-.9.712s-.9-.319-.9-.712zM216.856 262.682c0-.405.276-.385.787-.385s.926.208.926.616c0 .406-.597.912-1.108.912-.511 0-.605-.734-.605-1.143zM219.873 262.365c0-.394.335-.264.813-.264.48 0 .866.318.866.711 0 .392-.612.833-1.09.833-.478 0-.59-.888-.59-1.28z" fill="#04534e"/> - <path d="M216.856 262.597c.068-.282.264-.475.622-.475s.675.067.675.475c0 .406-.29.739-.649.739-.358 0-.746-.345-.648-.739zM216.3 265.81c0-.398.2-.773.606-.773.406 0 .727.04.727.44 0 .399-.356.86-.761.86-.407 0-.571-.13-.571-.528zM219.848 262.42c0-.316.27-.35.658-.35.386 0 .64.08.64.393 0 .317-.314.571-.701.571-.387 0-.597-.298-.597-.614zM219.16 265.498c0 .433.317.784.709.784.392 0 .813-.344.813-.774 0-.434-.438-.844-.83-.844-.393 0-.692.403-.692.834zM222.536 265.047c0 .392.34.712.761.712.42 0 .762-.32.762-.712 0-.393-.341-.71-.762-.71-.42 0-.76.317-.76.71zM219.281 268.997c0-.343.357-.675.71-.675.354 0 .693.218.693.562 0 .343-.615.807-.97.807-.353 0-.433-.35-.433-.694zM222.152 268.491c0-.42.322-.456.762-.456s.657.042.657.464c0 .422-.356.767-.795.767-.44 0-.624-.353-.624-.775z" fill="#8cbebf"/> - <path d="M222.932 263.554s.44.552.519.973c.077.42.077.896-.078.95-.156.052-.415-.265-.493-.659-.078-.397.052-1.264.052-1.264zM220.415 260.866s.285.45.285.845c0 .394-.052.815-.26.815-.206 0-.206-.394-.206-.685 0-.288.181-.975.181-.975zM217.453 261.262s.286.45.286.844c0 .394-.052.817-.26.817-.208 0-.208-.395-.208-.684 0-.291.182-.977.182-.977z" fill="#231f20"/> - <path d="M216.417 261.817s.389.105.726.368c.338.263.468.578.338.737-.13.158-.441-.077-.519-.263-.079-.185-.545-.842-.545-.842zM218.672 264.92s.571.025.883.316c.311.29.57.528.39.738-.182.21-.624-.158-.806-.367-.182-.211-.467-.688-.467-.688zM215.923 264.816s.52.13.778.314c.261.186.339.555.209.634-.13.077-.312-.054-.545-.29-.234-.238-.442-.658-.442-.658zM222.567 266.9s.182.632.182 1.078c0 .45.052.844-.156.844-.207 0-.311-.553-.311-.895 0-.344.285-1.027.285-1.027z" fill="#231f20"/> - <path d="M221.817 267.924s.468.184.675.368c.208.186.26.475.104.528-.155.052-.26-.29-.39-.421-.129-.132-.389-.475-.389-.475zM218.855 268.107s.5.06.718.208c.217.149.239.832.217.92-.021.088-.347.029-.48-.296-.128-.327-.455-.832-.455-.832z" fill="#231f20"/> - <path d="M217.709 259.074s-2.616.567-3.093 2.253c-.479 1.687-.5 3.561-.5 3.561l-.374-2.148.52-1.39.76-1.279 1.152-.724 1.037-.358.498.085zM225.87 269.076s.271-.653-.497-2.717c-.77-2.065-2.348-4.764-2.348-4.764l1.227 1.391.975 1.581.478 1.453.353 1.329-.02 1.304-.168.423z" fill="#04534e"/> - <path d="M228.516 265.736s.908.595.999.923c.091.33.129.436-.103.527-.235.095-.611-.275-.715-.527-.104-.25-.181-.923-.181-.923zM224.682 276.037s.429-.803 1-1.106c.57-.302.999-.264 1.155-.078.156.184-.377.605-.766.75-.39.146-1.39.434-1.39.434zM231.124 278.5s.637-.303 1.053-.752c.415-.445.467-.762.31-.92-.154-.159-.674.106-.908.46-.234.354-.455 1.211-.455 1.211zM230.424 277.896s.22-.829.442-1.093c.22-.264.531-.408.765-.264.235.145.091.516-.078.711-.168.199-1.13.646-1.13.646z" fill="#231f20"/> - <path d="M241.194 272.99s-4.014-5.805-10.247-6.112c-4.985-.246-6.56 4.206-6.379 5.549.179 1.322 2.052 4.223 8.698 4.713 6.647.492 7.72-3.133 7.997-3.31.276-.175-.07-.84-.07-.84z" fill="#8cbebf" stroke="#04534e" stroke-width=".427"/> - <path d="M236.458 269.003s1.662 1.267 2.363 2.266c.7 1 .857 1.74.442 1.872-.417.128-4.025-3.216-6.985-3.926-2.96-.712-5.53-.052-6.102 1.37-.57 1.423-.362 3.556.988 4.423 1.35.873 7.685 1.898 7.685 1.898s2.882-.395 2.985-.447c.105-.053 1.844-1.028 1.844-1.028l.389-1 .468-1.318.208-.527-1.532-1.685-2.753-1.898z" fill="#0c8489"/> - <path d="M231.368 269.82c0 .372-.39.556-.778.556s-.714-.196-.714-.567c0-.372.313-.672.7-.672.388 0 .792.312.792.683zM227.711 271.136c0-.372.418-.366.838-.366s.76.305.76.678c0 .372-.66.886-1.04.706-.466-.225-.558-.641-.558-1.018zM231.643 273.288c0-.474.4-.858.896-.858.494 0 .895.384.895.858 0 .471-.673.985-1.168.985-.495 0-.623-.514-.623-.985z" fill="#04534e"/> - <path d="M228.668 274.166c0-.414.426-.5.792-.5.365 0 .83.39.83.803 0 .414-.465.698-.83.698-.366 0-.792-.586-.792-1.001z" fill="#8cbebf"/> - <path d="M233.99 275.61c0-.337.2-.638.545-.638.344 0 .765.202.765.539 0 .34-.342.711-.687.711a.618.618 0 0 1-.624-.612zM236.379 273.788c0-.43.243-.384.662-.384.42 0 .843.243.843.672 0 .43-.527.658-.947.658-.42 0-.558-.52-.558-.946z" fill="#04534e"/> - <path d="M231.137 269.479c0 .332-.139.51-.468.51-.33 0-.727-.178-.727-.51 0-.336.152-.438.48-.438.33 0 .715.102.715.438zM229.229 271.033c0 .365-.551.594-.896.594s-.571-.228-.571-.594c0-.363.266-.473.61-.473.345 0 .857.11.857.473zM230.076 274.105c0 .319-.12.565-.493.565-.372 0-.857-.246-.857-.565 0-.32.134-.54.506-.54.373 0 .844.22.844.54zM233.252 273.063c0 .334-.655.71-1 .71s-.493-.614-.493-.947c0-.336.277-.605.623-.605.345 0 .87.508.87.842zM237.86 274.05c0 .349-.554.329-.87.329-.315 0-.597-.39-.597-.736 0-.35.104-.672.883-.58.313.036.584.64.584.987zM235.135 275.458c0 .348-.267.631-.596.631-.33 0-.597-.283-.597-.631 0-.35.268-.488.597-.488.33 0 .596.138.596.488z" fill="#8cbebf"/> - <path d="M235.55 273.538s.648-.211 1.14-.16c.494.053.521.238.521.316 0 .08-.39.24-.571.184-.183-.05-1.09-.34-1.09-.34zM232.85 275.824s.52-.317.909-.394c.388-.078.7.05.674.288-.026.239-.155.292-.545.292-.389 0-1.039-.186-1.039-.186zM231.112 271.825s1.116.475 1.35.922c.233.448.337.554.104.685-.233.132-.494-.16-.649-.369-.156-.21-.805-1.238-.805-1.238z" fill="#231f20"/> - <path d="M230.826 273.245s.857-.236 1.246-.236c.39 0 .494.027.546.211.052.183-.087.263-.407.245-.32-.018-1.385-.22-1.385-.22zM228.089 273.3s.935.125 1.169.37c.233.245.233.466.138.604-.095.142-.537.053-.675-.088-.139-.14-.632-.886-.632-.886z" fill="#231f20"/> - <path d="M227.955 274.647c.043-.043.363-.527.7-.64.338-.114.727-.096.796.077.07.176-.293.44-.535.493-.243.052-.961.07-.961.07zM227.248 270.557l.926.255c.338.255.415.457.338.555-.079.095-.407.148-.684-.035-.408-.275-.58-.775-.58-.775zM229.278 268.199s.944.263 1.255.692c.31.432.268.687.112.774-.155.088-.52-.131-.726-.323-.209-.196-.641-1.143-.641-1.143z" fill="#231f20"/> - <path d="M240.066 274.983s-1.92 1.634-6.256 1.476c-4.337-.159-8.258-2.003-9.243-4.031l.389 1 .96 1.291 3.039 1.555 3.4.762 2.701.16 2.545-.449s1.868-.895 1.973-.947c.104-.052.312-.501.312-.501l.18-.316zM240.64 272.928s-.727-.896-1.741-1.844c-1.013-.95-4.959-3.505-4.959-3.505l3.193 1.45 2.104 1.766 1.506 1.657-.104.476z" fill="#04534e"/> - <path d="M240.822 269.082s1.09.422 1.273.686c.182.262.415.5.415.5s-.285.71-.545.422c-.26-.291-.312-.291-.598-.686a7.736 7.736 0 0 1-.545-.922zM244.065 267.345s1.013.422 1.376.923c.364.5.286.922.13.975-.156.053-.83-.528-.935-.764-.104-.236-.571-1.134-.571-1.134z" fill="#231f20"/> - <path d="M245.083 267.138s.959.713 1.115 1.027c.156.317.468.737.156.842-.312.106-.753-.367-.882-.656-.13-.292-.39-1.213-.39-1.213zM250.556 268.424s.753.261.832.895c.077.634-.079 1.08-.079 1.08s-.52-.446-.52-.58c0-.13.079-.237 0-.525l-.233-.87zM252.013 268.93s.597.606.676 1c.077.395.154.66-.182.711-.338.056-.519-.343-.519-.683 0-.345.025-1.028.025-1.028zM242.2 280.889s.466.21.907.052c.442-.159.807-.553.727-.816-.076-.266-.31-.502-.649-.159-.337.342-.154.502-.415.63l-.57.293zM247.6 282.358s.727-.105 1.22-.634c.494-.525.702-.894.364-1.026-.337-.132-.779 0-.857.42-.078.422-.727 1.24-.727 1.24zM252.037 282.516s.547-.316.963-.71c.414-.396.647-.631.362-.922-.285-.293-.493-.081-.622.052-.131.133 0 .133-.156.553-.158.421-.547 1.027-.547 1.027z" fill="#231f20"/> - <path d="M253.39 282.492s.586-.712.721-1.109c.13-.393.208-.841-.058-.816-.265.025-.588.396-.604.687-.021.288-.059 1.238-.059 1.238z" fill="#231f20"/> - <path d="M239.883 275.3c.038-1.952 2.804-6.454 5.997-6.402 1.33.023 3.936.715 6.05 1.66 1.763.79 2.337 1.662 3.506 1.95 1.169.29 2.933.078 2.933.078l3.973-.447-3.116 4.558-1.114 1s-.989 1.922-3.818 3.028c-2.83 1.106-7.608.29-9.763-.237-2.155-.526-4.7-2.579-4.648-5.188z" fill="#8cbebf" stroke="#04534e" stroke-width=".427"/> - <path d="M239.883 275.3l.208.003c.006-.438.176-1.062.48-1.734.454-1.01 1.209-2.139 2.132-3.003.924-.864 2.008-1.457 3.122-1.457h.051c.634.011 1.61.185 2.681.476 1.072.291 2.244.698 3.289 1.163.865.387 1.432.792 1.943 1.146.51.35.972.663 1.597.816.504.126 1.093.161 1.616.161.76 0 1.387-.075 1.392-.076l3.517-.397-2.84 4.156-1.128 1.01-.018.035-.002.004c-.045.085-1.025 1.877-3.705 2.926-.992.387-2.259.535-3.567.535-2.293 0-4.714-.45-6.072-.78-1.027-.25-2.161-.87-3.028-1.734-.867-.863-1.463-1.958-1.462-3.172l.002-.075-.208-.004-.208-.006-.002.085c.002 1.357.664 2.555 1.586 3.473.925.92 2.115 1.57 3.222 1.842 1.383.337 3.825.794 6.169.794 1.34 0 2.65-.149 3.716-.565 2.892-1.132 3.912-3.1 3.926-3.129l-.182-.097.136.157 1.134-1.016 3.392-4.959-4.427.499-.104.01c-.206.02-.69.061-1.24.061-.506 0-1.07-.034-1.518-.145-.543-.136-.951-.404-1.46-.757-.508-.35-1.11-.779-2.011-1.179a23.168 23.168 0 0 0-3.35-1.188c-1.092-.297-2.084-.478-2.78-.493h-.058c-.841 0-1.644.298-2.37.763-1.092.695-2.02 1.771-2.688 2.861-.665 1.093-1.073 2.192-1.092 2.984l.208.006z" fill="#04534e"/> - <path d="M259.175 275.909c-.337.264-.7.264-1.116.264-.418 0-9.27-5.4-12.022-5.164-2.75.236-5.373 1.423-5.451 4.242-.078 2.817.623 2.844 1.194 3.634.571.791 5.972 1.977 5.972 1.977l3.297-.055 2.65-.289 2.335-1.264 1.274-1.026.855-1.054 1.012-1.265z" fill="#0c8489"/> - <path d="M245.186 274.47c0 .553-.213.94-.752.94-.537 0-.938-.244-.938-.797 0-.55.305-.757.843-.757s.847.062.847.615zM246.113 272.008c0-.46.444-.66.953-.66.509 0 .9.185.9.644 0 .456-.402.808-.91.808-.51 0-.943-.335-.943-.792zM251.416 273.447c0-.4.342-.723.767-.723.421 0 .764.324.764.723 0 .4-.343.723-.764.723-.425 0-.767-.324-.767-.723zM252.482 276.695c0-.51.372-.922.831-.922.459 0 .887.215.887.723s-.166 1.004-.625 1.004c-.458 0-1.093-.296-1.093-.805zM249.91 278.774c0-.437.388-.79.87-.79.48 0 .869.352.869.79 0 .437-.343.72-.822.72-.481 0-.917-.283-.917-.72zM245.052 277.933c0-.423.342-.764.766-.764a.764.764 0 1 1 0 1.527.764.764 0 0 1-.766-.763z" fill="#04534e"/> - <path d="M245.156 274.355c0 .434-.373.79-.832.79-.46 0-.83-.356-.83-.79 0-.437.368-.61.826-.61.46 0 .836.173.836.61zM247.728 271.85c0 .422-.131.695-.576.695-.444 0-1.034-.273-1.034-.695 0-.422.362-.763.805-.763.444 0 .805.34.805.763zM252.866 273.221c0 .363-.337.656-.753.656s-.753-.293-.753-.656c0-.364.337-.66.753-.66s.753.296.753.66z" fill="#8cbebf"/> - <path d="M250.142 275.39c0 .557-.214.943-.752.943s-.94-.245-.94-.798c0-.552.306-.756.844-.756s.848.062.848.612z" fill="#04534e"/> - <path d="M246.43 277.75c0 .438-.373.79-.832.79-.458 0-.83-.352-.83-.79 0-.433.527-.656.987-.656.458 0 .675.223.675.656zM249.983 275.3c0 .436-.36.789-.805.789a.797.797 0 0 1-.804-.79.8.8 0 0 1 .804-.791.8.8 0 0 1 .805.791zM254.183 276.384c0 .48-.293.864-.795.864-.5 0-.908-.39-.908-.868 0-.48.146-.644.646-.644.501 0 1.057.168 1.057.648zM251.495 278.59c0 .453-.304.71-.763.71-.46 0-.9-.257-.9-.71 0-.45.393-.636.851-.636.457 0 .812.187.812.637z" fill="#8cbebf"/> - <path d="M251.806 275.958s1.32-.133 1.555.105c.236.237.209.578.104.684-.104.106-.624.132-.752-.05-.13-.187-.907-.74-.907-.74zM250.507 271.691s1.013.261 1.428.683c.416.422.339.845.261.923-.079.077-.443.159-.727-.157-.286-.316-.962-1.449-.962-1.449zM247.496 273.745s1.182.645 1.442 1.012c.26.369.325.66.208.816-.118.159-.703-.039-.793-.236a77.937 77.937 0 0 0-.857-1.592z" fill="#231f20"/> - <path d="M246.978 274.653s1.324.172 1.649.421c.325.252.558.265.532.461-.025.199-.168.345-.376.317-.208-.027-.78-.277-.909-.395-.13-.118-.896-.804-.896-.804zM245.454 270.777s1.351.212 1.628.422c.277.212.347.81.035.986-.312.172-.658-.176-.762-.422-.104-.246-.9-.986-.9-.986zM242.54 272.819s1.243.59 1.629 1.14c.208.297.39.552 0 .685-.356.119-.727-.526-.727-.685 0-.157-.901-1.14-.901-1.14z" fill="#231f20"/> - <path d="M242.267 274.434s.795-.176 1.177-.176c.38 0 .928-.132.934.176.006.309-.466.367-.748.278-.277-.094-1.363-.278-1.363-.278zM249.142 278.871s.87-.541 1.298-.449c.429.094.571.054.571.317s-.506.21-.663.21a48.75 48.75 0 0 1-1.206-.078zM244.327 278.17s.336-.5.7-.55c.364-.055.519-.028.571.128.052.161-.311.45-.468.45-.155 0-.803-.028-.803-.028z" fill="#231f20"/> - <path d="M258.09 277.293s-1.323 1.592-3.168 2.384c-1.843.79-3.245 1.052-5.816.894-2.57-.158-3.816-.553-5.556-1.447-1.74-.896-3.115-2.186-3.375-2.74-.259-.555.286.923.286.923l1.584 2.078 1.895.845 2.778.683 2.622.317 1.998-.05 2.39-.373 1.532-.55 1.039-.634.805-.66.986-1.67zM255.615 272.587s-.72.239-2.303-.738c-1.584-.973-3.48-2.24-7.063-2.265-3.583-.025-4.725 2.426-4.96 2.607-.233.185 1.61-2.131 1.61-2.131l1.636-.87 1.273-.212 1.22.053 1.584.422 1.428.448 1.663.552 1.452.795 1.756.916.704.423zM260.424 273.642s-2.102-.028-2.7.025c-.599.052-.623.158-.703.316a3.152 3.152 0 0 1-.233.369l-.648-1.397 2.856-.396 1.555.582-.127.5z" fill="#04534e"/> - <path d="M256.554 288.337c.144.383.477.731.895.74.42.013 1.3-.015 1.3-.015l2.843-.17 1-1.147.61-2.569s.768-.933.768-.972c0-.04 2.646-1.463 2.646-1.463l2.287-.66 1.466-.156 2.023-.671 1.495-.778.65-.962.634-1.461-.635-1.977-1.585-2.12-2.685-1.092h-2.223l-2.491.908-4.388 1.04s-2.415 1.052-3.415 2.936c-.997 1.883-.985 2.372-1.153 4.86-.171 2.491-.042 5.729-.042 5.729z" fill="#0c8489" stroke="#04534e" stroke-width=".427"/> - <path d="M257.742 287.356c.84 0 .192-1.39 1.144-3.04.953-1.648 2.112-3.653 2.406-3.653.294 0 .343.3.69.196.347-.105.937-.633.972-.775.034-.14.034-1.07.76-1.668.729-.598 1.75-1.44 2.232-1.545.486-.103.712-.193.798.035.086.228-.278.544.052.65.33.107 1.091.072 1.28-.422.19-.492.139-.754.139-.754s.502-.491 1.455-.281c.953.21 1.072.157 1.158.528.087.367-.433.42-.328.684.102.261-.072.233.025.433.097.2.25.76.89.743.643-.017.919-.387.919-.387l.188-.337s.177-.4-.067-.557c-.244-.16-.156-.352.087-.247.242.106 1.21 1.457 1.54.895.33-.561.365-1.352.19-1.544-.173-.194-1.54-2.25-1.54-2.25l-2.44-.824-3.236.265-3.134 1.79-2.873 1.528s-.157 2.352-.676 1.931c-.52-.422-1.264-1.58-1.487-1.194-.227.387-.728 2.107-1.022 2.966-.295.861-1.143 3.514-1.057 4.498.088.982.625 2.336.935 2.336z" fill="#8cbebf"/> - <path d="M260.632 283.552c-.227.018-.555.247-.658.377-.105.133-.25.415-.156.721.095.307.544.606.58.641l.36-.01.78-.227s.249-.281.263-.648c.016-.371-.21-.467-.321-.503-.114-.034-.848-.35-.848-.35zM265.58 279.463c-.442-.158-.637.143-.713.275-.078.133-.045.453-.045.453s.097.613.33.727c.233.11.845.322 1.037.11.197-.208.394-.354.381-.75-.01-.395-.561-.59-.561-.59l-.428-.226zM269.567 280.42c-.019-.151-.408-.257-.668-.21-.259.045-.607.375-.483.877.119.5.596.543.969.448.372-.098.301-.626.301-.703 0-.078-.119-.413-.119-.413zM258.053 281.224c0 .228.415.703.971.668.552-.035.897-.457.952-.79.05-.335-.295.28-.711.386-.414.104-.657.211-.848-.018-.19-.228-.364-.246-.364-.246z" fill="#8cbebf"/> - <path d="M261.802 284.406s.06.508-.307.772c-.367.263-.6.236-.813.236-.21 0-.44-.043-.594-.254-.155-.212-.27-.51-.27-.51s.405.666 1.04.49c.637-.173.944-.734.944-.734zM272.523 277.762s-.006.512-.404.724c-.396.213-.576.274-.787.247-.21-.029-.5-.114-.64-.335-.47-.735-.191-1.215-.191-1.215s.338 1.275.992 1.186c.654-.09 1.03-.607 1.03-.607zM262.966 280.048s-.327 1-.987 1c-.656 0-.602-.191-.554-.317.055-.12.297.126.59.036.295-.086.951-.72.951-.72zM264.819 279.87s-.067.725.175.97c.243.247.52.372.798.372.277 0 .485-.073.691-.352.208-.281.086-.581.086-.581s.004.152-.203.362a.724.724 0 0 1-.586.245c-.207 0-.563-.026-.668-.271-.105-.245-.293-.744-.293-.744zM268.214 276.384s.208.543-.208.983c-.414.44-1.21.193-1.21.193s.64.157.952-.193c.312-.351.466-.983.466-.983z" fill="#04534e"/> - <path d="M257.377 288.88s4.213-.072 4.552-.652c.336-.578-.365-2.844 2.18-4.634 2.543-1.79 4.519-1.766 5.868-1.872 1.35-.105 4.265-1.013 4.777-3.606.31-1.582-1.818-1.687-2.622-3.188-.805-1.502-2.881-.895-2.986-.895-.102 0-2.41-.067-3.505 1-.65.633-.571 1.423-.883 1.792-.312.368-3.091 0-3.401.448-.312.447.077 1.393-.132 1.605-.205.21-.88-.607-.88-.607l.232-2.238 3.559-2.08 4.047-2.24s2.65.131 2.754.08c.105-.054 2.727 1.369 2.804 1.396.077.027 1.375 1.58 1.375 1.58s.255.635.365 1.87a4.284 4.284 0 0 1-.125 1.552c-.655 2.331-2.939 3.899-5.343 4.018-2.404.12-4.57 1.206-5.668 2.002-1.1.797-1.646 4.306-1.662 4.727-.015.421-5.237.136-5.237.136l-.07-.194z" fill="#04534e"/> - <path d="M259.15 280.675c-.214.172-.53.162-.599-.08-.194-.69.217-1.71.217-1.71s-.01 1.069.07 1.245c.079.176.292.136.388.282.035.05.094.125-.076.264zM261.802 280.133c-.204-.063-.169-.711-.014-.989.157-.275 1.34-1.147 1.34-1.147s-.378.872-.522 1.188c-.142.315-.547 1.027-.804.948zM260.76 284.412c-.166.035-.22-.33-.22-.792 0-.46.806-1.303.806-1.303s-.247.74-.275.973c-.024.239.132.45.104.727-.025.275-.231.356-.415.395z" fill="#231f20"/> - <path d="M262.722 283.23s-.376.435-.806.672c-.426.235-.892.59-1.155.513-.258-.08.166-.64.312-.699.728-.289 1.65-.487 1.65-.487zM266.33 278.079s-.478.397-.712.96c-.234.567-.338 1.03-.104 1.135.236.105.584-.647.612-.897.024-.25.205-1.198.205-1.198z" fill="#231f20"/> - <path d="M267.653 279.883s-.336-.314-.935-.46c-.595-.146-.869-.012-.933.159-.066.17-.507.441-.286.572.22.13.48-.23.661-.27.184-.04.392-.172.714-.118.324.053.78.117.78.117zM266.88 276.348c.21.184.534-.158.831-.492.293-.334.519-.95.519-.95s-.608.318-.865.529c-.262.21-.607.808-.486.913zM272.383 276.22s-.708.335-.951.65c-.243.317-.555.667-.312.842.243.176.464-.157.659-.42.188-.263.604-1.072.604-1.072zM270.81 279.907s-.24.493-.69.79c-.45.301-.988.44-1.072.281-.089-.157.07-.492.24-.578.176-.088.279-.071.675-.175.399-.105.848-.318.848-.318z" fill="#231f20"/> - <ellipse cx="272.657" cy="229.222" rx="2.297" ry="3.432" transform="rotate(8.667)" fill="url(#b)"/> - <path d="M236.287 261.536l-1.366 3.415 1.116-.155.644-3.006z" fill="#fcca3e" stroke="#aa8c30" stroke-width=".213"/> - <path d="M236.921 260.086c-.486-.062-.933.309-.996.83-.063.517.28.985.766 1.048.487.06.932-.311.996-.828.063-.519-.278-.987-.766-1.05z" fill="#fcca3e" stroke="#aa8c30" stroke-width=".183"/> - <path d="M295.752 268.62l-3.366 3.156 1.389.353 2.31-3.041z" fill="#fcca3e" stroke="#aa8c30" stroke-width=".213"/> - <path d="M297.252 267.315c-.54-.298-1.252-.095-1.595.453-.345.545-.185 1.23.353 1.526.539.298 1.252.095 1.596-.452.343-.546.185-1.23-.354-1.527z" fill="#fcca3e" stroke="#aa8c30" stroke-width=".183"/> - <path d="M210.212 250.394l1.775 3.913.765-1.089-2.01-2.962z" fill="#fcca3e" stroke="#aa8c30" stroke-width=".213"/> - <path d="M209.499 248.688c-.441.373-.487 1.055-.102 1.523.384.474 1.054.552 1.495.18.44-.37.487-1.055.102-1.524-.385-.47-1.053-.551-1.495-.18z" fill="#fcca3e" stroke="#aa8c30" stroke-width=".183"/> - <path d="M237.256 260.214s.275.148-.042.05c-.319-.096-1.072.27-1.073.802 0 .532.394.828.793.832.399.004-.148.072-.148.072l-.514-.15-.213-.31-.17-.43.131-.46.303-.393.396-.143.262.031.275.099z" fill="#aa8c30"/> - <path d="M236.488 262.512s-.217-.045-.414.248c-.195.292-.593.844-.593.844l.763-1.878.416.217-.172.569zM297.58 267.607s.247.296-.076.038-1.394-.208-1.672.385c-.28.593.033 1.107.497 1.299.466.193-.209.012-.209.012l-.524-.409-.088-.445.02-.561.392-.45.561-.293.537.025.29.163.273.236z" fill="#aa8c30"/> - <path d="M295.484 269.808s-.233-.155-.615.08c-.38.234-1.132.66-1.132.66l1.866-1.731.375.438-.494.553zM209.876 248.493s.344-.12.007.078c-.335.198-.632 1.142-.185 1.569.447.428 1.012.323 1.334-.02.323-.34-.057.187-.057.187l-.538.323-.43-.066-.5-.195-.28-.48-.087-.58.196-.457.238-.199.302-.16z" fill="#aa8c30"/> - <path d="M211.193 251.004s-.212.154-.124.555c.091.406.236 1.19.236 1.19l-.969-2.162.516-.188.341.605z" fill="#aa8c30"/> - <ellipse cx="327.082" cy="-73.307" rx="3.694" ry="2.486" transform="rotate(62.907)" fill="url(#c)"/> - <path d="M210.072 256.971s.76.176 1.175-.035c.416-.211.486-.528.589-.63.104-.106.209-.492.174-.739-.035-.246-.589-1.088-.763-1.157-.172-.072-.76 0-.863-.107-.104-.106.086-.335-.14-.387-.225-.053-1.384 1.266-1.177 1.476.208.21.329-.104.398.072.07.173.018.665.018.875 0 .21.588.632.588.632z" fill="#e92736"/> - <path d="M211.2 254.509c.09.182.518.753.692.824.173.071.692.09.866.02.173-.07.726-.598.744-.827.017-.228 0-.403-.104-.633-.103-.228-.043-.841-.25-.876-.209-.036-.3-.064-.403-.184-.104-.125.065-.344-.092-.571-.154-.23-2.007.86-1.869 1.07.139.211.33-.016.398.124.069.138-.087.841.017 1.053z" fill="#e92736"/> - <path d="M215.387 254.04c.103-.28.069-1.195-.121-1.389-.19-.193-.503-.209-.52-.333-.017-.122.225-.176.225-.387 0-.21-2.06.07-1.921.301.139.227.485.105.467.243-.017.141-.346.317-.38.494-.035.175.104.756.19.894.087.143-.034.316.208.405.243.088.207.088.433.158.225.07 1.038.035 1.143-.054.102-.088.172-.052.276-.333zM232.898 264.328s.338.586.711.725c.373.138.608-.002.734.002.125.004.423-.156.553-.322.13-.167.324-1.01.266-1.161-.058-.15-.446-.483-.442-.608.004-.13.255-.141.156-.315-.1-.173-1.587-.134-1.595.12-.007.256.258.148.19.293-.067.148-.399.402-.528.525-.13.123-.045.741-.045.741z" fill="#e92736"/> - <path d="M235.068 263.597c-.06.163-.16.77-.102.921.06.149.352.488.496.555.145.07.792.112.942-.01a.962.962 0 0 0 .328-.437c.08-.2.491-.522.392-.673-.1-.151-.136-.224-.122-.36.015-.142.248-.16.297-.393.049-.232-1.704-.766-1.752-.555-.048.211.203.197.157.323-.046.126-.568.44-.636.629z" fill="#e92736"/> - <path d="M237.81 265.968c.235-.099.776-.655.783-.889.007-.233-.164-.44-.1-.522.065-.084.24.038.37-.086.129-.121-1.249-1.259-1.309-1.038-.06.221.219.368.123.44-.097.07-.397-.036-.525.047-.128.079-.403.507-.438.644-.035.136-.216.164-.126.368.087.205.067.183.156.366.088.184.585.677.7.69.115.016.134.08.367-.02zM290.681 270.387s.03.652.281.945c.254.292.51.285.615.348.104.062.426.067.606-.01.18-.08.711-.698.729-.853.016-.152-.165-.615-.105-.721.058-.104.273.002.266-.189-.009-.194-1.273-.863-1.39-.652-.117.211.15.244.031.337-.12.092-.512.147-.672.19-.163.043-.36.605-.36.605z" fill="#e92736"/> - <path d="M292.729 270.813c-.13.096-.513.502-.543.64-.03.139.032.525.112.641.08.117.57.442.752.42a.977.977 0 0 0 .48-.177c.164-.114.652-.165.649-.325-.003-.157.006-.23.086-.324.081-.097.277-.006.432-.158.156-.15-.965-1.346-1.108-1.209-.145.136.059.24-.04.312-.099.072-.67.07-.82.18z" fill="#e92736"/> - <path d="M293.156 273.788c.222.085.949.082 1.11-.057.158-.137.18-.371.278-.38.098-.01.133.174.302.18.168.004 0-1.55-.184-1.453-.186.098-.101.363-.21.345-.111-.016-.244-.267-.383-.298-.137-.031-.602.06-.719.12-.112.064-.249-.033-.325.147-.076.18-.076.153-.138.321-.062.168-.058.779.01.86.068.078.04.131.259.215z" fill="#e92736"/> - <path d="M211.333 255.27c.17.255-.055.867-.193 1.04-.138.173-1.06-.079-1.074-.25-.015-.173-.081-.462.04-.624.12-.162.431-.533.666-.485.234.042.501.233.561.32zM211.583 254.125c-.108.23.047.492.166.62.12.126.782.291.963.182.18-.112.458-1.14.33-1.298-.127-.158-.484-.185-.603-.168-.121.022-.78.503-.856.664zM213.79 253.076c-.09.21-.06.5.015.59.075.09.507.393.76.38.254-.016.375-.728.375-.864 0-.137-.075-.195-.255-.273-.178-.075-.895.167-.895.167zM234.678 264.127c-.057.254-.565.472-.75.485-.19.014-.574-.716-.477-.826.098-.11.236-.323.407-.338.17-.019.58-.04.689.135.11.172.15.453.131.544zM235.531 263.615c-.207.066-.276.318-.284.469-.009.149.278.665.451.713.174.05.968-.377.99-.551.022-.173-.169-.414-.252-.478-.08-.065-.763-.2-.905-.153zM237.464 264.401c-.184.066-.342.255-.356.356-.011.1.057.549.214.7.158.151.664-.188.749-.269.082-.08.077-.162.018-.32-.057-.158-.625-.467-.625-.467zM292.308 270.96c-.158.19-.679.133-.843.054-.163-.076-.167-.872-.038-.919.129-.046.338-.157.49-.093.148.063.503.242.519.44.014.197-.074.451-.128.518zM293.083 271.033c-.198-.045-.38.113-.461.219-.083.108-.113.624-.002.737.11.117.957.16 1.06.04.104-.12.074-.386.043-.472-.032-.084-.506-.495-.641-.524zM293.966 272.611c-.164-.069-.396-.055-.471-.003-.072.056-.327.374-.321.564.006.192.569.299.676.302.109.006.16-.05.225-.182.066-.133-.109-.68-.109-.68z" fill="#f7e204"/> - <ellipse cx="398.299" cy="-31.416" rx="1.791" ry="3.573" transform="rotate(47.855)" fill="url(#d)"/> - <path d="M228.644 223.435s-3.064.263-5.193-.105c-2.129-.37-1.662-5.795-1.714-5.953-.051-.158-1.298-1.475-1.09-2.686.208-1.212 4.14-4.41 4.673-4.583.364-.119 1.142.211 1.142.211s.994-.967 1.29-.967c.303 0 .723.558.606.796-.117.237-1.467 1.026-1.571 1.632-.104.606.013 1.212-.377 1.804-.39.593-1.142 1.396-1.233 1.897-.09.5-.311.936.065 1.12.377.184 1.662.026 2.765-.474 1.103-.501 1.557-1.173 1.713-1.106.156.065-.636 1.381-1.856 1.896-1.22.514-2.025 1.106-2.635 1.014 0 0-.675 1.62 1.416 1.712 2.089.092 3.245-.46 3.245-.46l-1.246 4.252zM216.673 236.21s1.609.632 1.609 2.426c0 1.79-1.764 3.29-1.713 6.45.053 3.163.543 3.194 4.725 6.586.13.106 1.013 1.002 1.246 2.03.235 1.025.987 7.084 5.012 7.056 4.024-.025 4.57-2.579 4.57-2.579l-1.714-2.53s-1.403.42-2.156.238c-.752-.185-1.426-.686-1.869-1.66-.44-.974-.561-3.296-1.246-4.319-1.687-2.528-4.7-2.95-4.725-5.61-.026-2.662 1.843-2.95 1.324-6.112-.52-3.16-4.284-4.688-4.284-4.688l-1.532-.62-.532 3.174 1.285.158z" fill="#a8ac71"/> - <path d="M227.76 214.091c1.35-.315.571-3.834.571-3.834l-.934.778s.578.751.578 1.56c0 .808-.215 1.496-.215 1.496z" fill="#f1a720"/> - <path d="M230.222 249.187s-.626-.514-.688-.556c-.482-.321-2.594-2.029-2.256-7.105.381-5.743 8.731-8.763 9.276-11.046.605-2.528 2.496-3.633-4.153-8.832l-1.559 1.826 2.727 2.046s.603-.338.638.436c.035.771-.727 1.435-.915 2.04-.172.553-4.318 3.433-4.63 3.715-.311.281-2.38 1.89-2.38 1.89s-1.08 1.061-2.085 3.291c-1.003 2.231-.486 5.092-.486 5.092s.033 6.097 6.51 7.203z" fill="#a8ac71"/> - <path d="M226.15 252.4l.468 2.16-1.324.486-.57-.025-.416.183-1.025.99-.26-.082s-.156.055-.208-.578c-.052-.632-.143-1.186-.143-1.186l1.247.512.44.028.312-.105.545-1.184.935-1.2zM222.28 252.796s-.415-.5-.623-.803c-.177-.259-.266-.319-.727-.687l.908-.511.975.012-.143 1.172-.39.817zM224.493 249.328s.609.302.805.762c.194.463.48 1.029.48 1.029l-1.545-.117-1.181-.372.766-1.066.675-.236zM223.89 258.879s-.313-.196-.495-.695c-.182-.502-.325-1.306-.325-1.306l1.027-.196 1.206.486.339.028s-.286.605-.325.632c-.039.026-1.168 1.012-1.168 1.012l-.26.039zM227.985 255.57s-.907-.286-1.05-.713c-.156-.46-.273-.367-.273-.367l-.285 1.223-.364 1.147s.077.197.118.197c.038 0 .869-.21.922-.236.051-.025.686-.686.7-.725.013-.04.232-.527.232-.527zM224.164 259.415s.454.25 1.09.62c.636.367 1.013.367 1.013.367l.48-.513.493-.975.065-.118-2.453.222-.688.397zM227.711 258.47l2.092-1.252.141-1.13-.414-.318s.078.04-.493.04h-.715l-.376 1.383-.235 1.278zM226.218 260.445s1.466.632 3.997-.29c1.147-.417 1.364-.974 1.364-.974l-1.013-.394-.96.857-3.388.801zM224.219 244.214s-.148-.473-.292-1.09c-.142-.62-.13-.883-.13-.883l.745.387 1.078.802-.767.608-.634.176zM225.98 247.194s-.364-.369-.676-.84a9.716 9.716 0 0 1-.527-.915l.792.163.922.446-.407 1.192-.104-.046z" fill="#78732e"/> - <path d="M221.268 213.658c-.139.51-.329 1.44.381 1.616.385.095 1.907-.031 3.635-2.002.831-.948.847-1.88.847-1.88l.33-1.07s-.675-.492-1.766.192c-.98.616-3.427 3.144-3.427 3.144z" fill="#c6c7a6"/> - <ellipse ry=".324" rx=".306" cy="210.89" cx="225.993" fill="#1c242f"/> - <path d="M223.792 211.214c-.738.576-1.428 1.318-1.428 1.318s1.167-.33 2.096-1.174c.527-.478 1.555-.665 2.096-.539.282.065.184-.298.052-.402-.302-.24-1.147-.36-1.33-.22-.027.02-.743.437-1.486 1.017z" fill="#a8ac71"/> - <path d="M227.303 243.598s-.051-.243-.084-.85c-.033-.605.036-.909.036-.909l-.692.601-.662.922 1.025.367.377-.13zM223.719 241.55s-.095-.942-.043-1.837c.05-.894.415-2.52.415-2.52l.437 1.112 1.259 1.962.402.29-1.064.778-1.09.355-.316-.14zM227.327 241.05s.064-.447.175-.86c.107-.406.424-1.054.424-1.054s.017.066-.035.077c-.052.015-1.104.885-1.13.923-.026.04-.492.447-.492.447l.66.502.427-.025M224.42 236.394s.16-.588.718-1.3c.557-.71 1.108-1.44 1.108-1.44l.476 1.91.285 1.632.051.345s-.388.172-.544.157c-.157-.013-1.325-.08-1.468-.277-.141-.197-.626-1.027-.626-1.027zM228.205 238.618s.354-.376.666-.665c.311-.291.807-.85.807-.85l-2.565.469.364.867.728.18zM226.657 233.315s.237-.084.926-.78c.687-.7 1.038-.615 1.038-.615l.286 2.752-1.35-.396-.9-.96z" fill="#78732e"/> - <path d="M229.85 236.93l1.545-1.567-2.569-.736.469 1.805zM230.93 232.785l.155-2.66s-.523.245-1.186.798c-.661.552-.969.728-.969.728l.311.476.91.591.778.067zM233.215 230.207l.004-2.094-.09.04s-.368.567-.796.921a4.457 4.457 0 0 0-.624.606l.689.448.817.079zM234.172 233.01s.724-.601 1.254-1.02c.791-.627 1.186-1.31 1.186-1.31l-3.322-.251.13 1.33.752 1.252zM226.443 222.009l-.104 1.458 2.771-.016-.676-.93-.846-.529-.797-.808zM231.795 234.998c.146-.11.867-.65 1.207-.995.376-.382.967-.764.967-.764l-2.635-.29.052 1.74.41.309zM236.811 230.25s.283-1.06.256-2.075c-.026-1.014-.19-1.467-.19-1.467l-1.974 1.343.285 1 .754.818.87.38z" fill="#78732e"/> - <path d="M233.435 227.811s.584-.706.622-1.114c.04-.408.035-.281.035-.281l1.559.026.934.078.116.094-.7.829-.961.552-1.233.146-.372-.33zM236.592 226.257s-.61-1.046-.955-1.627c-.343-.579-.681-.855-.681-.855l-.76 2.263-.077.22h2.473z" fill="#78732e"/> - <path d="M217.313 241.757l-.298.63s1.038-.538 1.843-.51c.804.025 1.7 1.027 1.7 1.027l.195-.728s-1.064-1.039-1.765-1.09c-.702-.053-1.675.671-1.675.671zm.519-4.648s.221.263.273.341c.05.08.078-.776 1.128-1.224 1.052-.448 1.624-.092 1.624-.092s-.208-.606-.674-.738c-.468-.133-.922-.04-1.494.369-.571.409-.857 1.344-.857 1.344zm3.57 3.5s-.493-1.05-1.35-1.26c-.857-.212-1.947.444-1.947.444l-.181.555s1.167-.66 2.024-.316c.857.341 1.195 1.317 1.195 1.317l.259-.74zm-4.01-4.08c.05.184.259.42.259.42s-.118-1.131.402-1.711c.52-.58.908-.79.908-.79l-.48-.252s-.688.462-.923.963c-.233.5-.219 1.185-.167 1.37zm-.464-1.853c.241-.562.956-.808.956-.808s-.073-.124-.233-.21c-.163-.087-.331.006-.331.006s-.461.24-.74.871c-.275.632-.24 1.545-.24 1.545l.428.238s-.083-1.08.16-1.642zm6.3-15.277c.658-.352 1.143-.281 1.143-.281s-.972 1.023-.503 2.296c-.551 1.068-.725 1.879-.725 1.879h.518s.176-.832.38-1.486a4.916 4.916 0 0 0 1.507 1.7l.796-.034s.002-1.06.41-1.984l.076.086c.864.914 1.592 1.126 1.592 1.126l.009-.273s-.91-.535-1.428-1.238l-.052-.075.016-.03c.624-.983 1.455-1.3 1.455-1.3l.554.458.137-.176-.415-.527-.48.014s-.86.717-1.415 1.343a7.324 7.324 0 0 1-.63-1.252l-.357-.13s-.862.1-1.633 1.345c-.096-.914.959-1.912.959-1.912l-.052-.382s-1.066.2-1.896.447c-.83.246-1.337 1.028-1.337 1.028l-.034.56s.747-.85 1.405-1.202zm1.143 1.686c.484-.703 1.558-1.16 1.558-1.16s.027.57.618 1.326c-.404.708-.584 1.8-.584 1.8s-.83-.526-1.557-1.58a1.292 1.292 0 0 1-.128-.237c.03-.052.06-.103.093-.15zm-6.058 16.919l.039.617s.636-.696 1.596-.723c.961-.027 1.78.723 1.78.723s.012-.828-.118-.906c-.13-.08-.909-.528-1.636-.528-.727 0-1.661.817-1.661.817zm17.137-8.984a8.13 8.13 0 0 1-.373-.822c.145-.055.288-.128.424-.23.805-.606 1.376-1.264 1.376-1.264l-.286-.448h-1.298c-.254 0-.794-.064-1.1-.103.057-.2.217-.758.405-1.34.234-.724.444-1.113.444-1.113l-.44-.447s.103.412-.676.518c-.779.106-2.216-.631-2.216-.631v.316s1.264.404 1.99.509c.43.062.766-.085.97-.214-.112.23-.318.68-.428 1.082-.095.345-.23.57-.221.72.006.097.148.185.148.185l-.07.676s.78.105 1.142.105c.364 0 1.35.08 1.35.08s-.701.817-1.376 1.132c-.089.042-.182.075-.28.103-.036-.095-.806-1.27-.806-1.27l-.078.434s.551.757.606.917c-.498.066-1.215-.104-1.215-.104l-.312.342s-.022.975.007 1.984c-.673-.183-1.427-.456-1.427-.456l-.278.211.013-.05-.358.287s-.312 1.184-.233 2.529l.004.068c-1.28-.317-1.926-1.07-1.926-1.07l-.312.264s-.21 1.16.08 2.562c-1.094-.217-2.044-1.166-2.044-1.166l-.407.342s.243 2.266.501 3.503c.022.106.052.197.08.29a3.912 3.912 0 0 1-.599.027c-1.115-.054-1.808-1.081-1.808-1.081l-.33.798s.425 2.179 1.645 3.154c.099.078.19.15.275.219-1.042.851-2.292.985-2.292.985l.077.687s.746.584 1.472 1.086c.072.047.148.094.227.135-.58.518-1.29.728-1.29.728l.191.455s.965-.673 1.412-1.036c.647.26 1.497.363 1.497.363v-.37s-.625-.056-1.205-.241l.084-.079c.364-.352 1.074-1.439 1.074-1.439l.068-.79s-.446-.064-.93-.45c1.472-1.006 1.528-1.464 1.528-1.464l.278-.521s-.497-.214-.864-.938c1.01-.196 2.319-.522 2.337-.577.026-.079.175-.164.175-.164s-.566-.928-.808-2.064c1.164.302 2.353.496 2.353.496l.372-.318s-.287-.941-.38-1.966c1.382.087 2.553.19 2.553.19l.233-.264s-.778-1.488-.752-2.33l.002-.078c.265.05.531.083.776.078 1.144-.028 2.415 0 2.415 0l.195-.435s-1.104-.752-1.362-1.227zm-8.405 12.392s-.371.754-1.125 1.623c-.06.068-.12.129-.18.19a3.683 3.683 0 0 1-.39-.19c-.883-.501-1.11-1.072-1.11-1.072s.488-.24 1.973-1.235c.785.622.832.684.832.684zm.692-2.513s-.464.551-1.545 1.516a3.303 3.303 0 0 1-.333-.365c-.692-.897-1.557-1.669-1.47-3.02 0 0 .536.966 1.731.842.244-.024.524-.067.815-.117.318.8.802 1.144.802 1.144zm1.61-2.027s-1.106.363-2.133.528a4.227 4.227 0 0 1-.126-.344c-.389-1.265-.389-3.187-.389-3.187s.863.596 2.073.931c.351 1.436.575 2.072.575 2.072zm-.366-2.34c-.18-1.179.055-2.349.055-2.349s.643.642 1.843.843c.082 1.09.208 1.632.208 1.632s-.91.05-2.107-.125zm4.65-1.796s-.773.3-2.26.091a18.434 18.434 0 0 1 .042-2.864l.004-.016c.212.094 1.003.417 1.74.597l.007.086c.103 1.21.467 2.106.467 2.106zm-.104-2.501l-.08-.02c.05-.86.047-2.114.047-2.114s.723.193 1.28.117c.148.366.052.462.415 1.015.365.553.91 1.002.91 1.002s-1.844.156-2.572 0zm-6.022 14.897l-.104-.43s-.727.54-.933 1.094a1.32 1.32 0 0 1-.228-.057c-.484-.176-1.626-.622-1.626-.622l.163.323s1.186.545 1.497.615l.1.019c-.155.472-.393 1.122-.393 1.122l.191.264s.108-.8.414-1.36c.406.04.97.06.97.06s-.07.315-.174.667a51.402 51.402 0 0 0-.311 1.177l.355.22 1.654.034-.278-.328s-.052-.083-.588-.1a3.235 3.235 0 0 0-.866.07s.069-.334.277-1.002c.207-.669.216-.63.216-.63l-.208-.578s-.529.145-.88.133c.31-.451.752-.691.752-.691zm-9.036-1.043c1.013 0 1.869.683 1.869.683l-.039-.484s-.791-1.069-1.7-1.069c-.91 0-1.987.936-1.987.936v1s.843-1.066 1.856-1.066zm10.67 15.54c-1.038.447-2.207.447-2.207.447s.317-.452.626-1.234c2.031-.57 2.438-1.926 2.438-1.926l-.13-.5s-.491 1.239-2.128 1.922c.303-.96.61-2.58.61-2.58l-.558-.145s-.8 1.002-1.556 1.256c.512-.997.582-2.14.582-2.14l-.247-.434s-.545.488-1.402.645c-.13.025-.27.023-.419.004l.003-.004c.468-.657 1.364-2.554 1.364-2.554l-.156-.357s-.688 1.675-1.39 2.516c-.09.109-.177.21-.265.308-.717-.207-1.746-.82-1.746-.82l.116.316s.583.445 1.432.715c-.517.543-1.081 1.048-1.081 1.048l.05.764s1.317.25 2.398.36c-.87 1.23-1.578 1.641-1.578 1.641l.35.528s1.07-.007 2.988-.478c-.546 1.03-.962 1.479-.962 1.479s1.752.12 2.947-.488c1.194-.606 1.557-1.237 1.557-1.237l-.337-.37c0-.001-.26.87-1.299 1.319zm-5.53-3.295s.517-.567.959-1.149l.054.015c1.22.264 1.557-.105 1.557-.105s.232.661-.512 1.849c-.878-.036-2.058-.61-2.058-.61zm1.09 2.45l1.091-1.266a3.23 3.23 0 0 0 .208-.267c1.197-.042 1.87-1.023 1.87-1.023s.14.99-.395 2.21c-1.52.554-2.773.346-2.773.346zm-1.48-7.85c1.143.079 2.623.617 2.623.617l-.181-.605s-1.407-.343-2.283-.457c.391-.876 1.257-1.293 1.257-1.293l-.39-.211s-.479.078-1.129 1.185c-.053.09-.101.182-.146.276a3.397 3.397 0 0 0-.244-.011c-1.038-.028-1.908.577-1.908.577l.156.317s.905-.391 1.796-.407c-.323.9-.564 1.921-.564 1.921l.235.541.769-2.45h.009zm-2.4-4.9l-.248-.633s-1.22-.433-2.154.013c-.935.449-1.636 1.529-1.636 1.529l.39.737s.649-1.198 1.506-1.487c.856-.291 2.141-.158 2.141-.158zm2.375 1.857l-.805-.422s-1.324.383-1.791.857c-.468.476-.844 1.687-.715 2.028.13.342.546.566.546.566s.22-1.277.87-1.883c.65-.605 1.895-1.146 1.895-1.146zm-3.088-.38c.543-.527 1.53-.726 1.53-.726l-.493-.448s-1.194.145-1.818.699c-.622.554-1.428 1.7-1.428 1.7l.702.683s.961-1.384 1.507-1.909zm4.11-35.79l.043-.054c.63-.81 1.24-.81 1.48-.745.1.028.234.017.354-.004l-.004.004.019-.007c.03-.006.057-.01.084-.017.03 0 .058.01.074.04-.2.316-.483 1.181-.63 1.908-.183.896-.57 1.001-.857 1.554-.285.554-.882 1.476-.908 2.265-.026.79.18 1.212.389 1.318.208.105.589-.344.571-.527-.026-.263-.233 0-.389 0s-.13-.263-.208-.738c-.079-.474.57-1.79.805-2.213.233-.42.726-.921.83-1.633.093-.634.555-2.023.555-2.028 0-.04-.353-.136-1.04-.184-.513-.037-1.203.412-1.53.915-.325.5-1.347.9-1.347.9s1.12.009 1.71-.754z" fill="#fff"/> - <path d="M228.162 219.589l-1.993.053.572 1.491zM225.816 219.51s-.29-.184-.429-.343a1.193 1.193 0 0 0-.246-.224l-.718.452-.416 1.476.207.21 1.602-1.571zM225.547 223.508l-1.454-2.142-.83 1.787.397.14s.398.04 1.004.127c.606.088.883.088.883.088zM231.46 259.3l-.073.05c-.345.23-1.87 1.161-3.744 1.161-.87 0-1.816-.199-2.764-.76-.558-.333-.94-.83-1.22-1.43-.422-.9-.607-2.034-.8-3.133-.196-1.1-.395-2.165-.88-2.948-.653-1.041-1.883-1.692-2.986-2.62-1.105-.927-2.087-2.103-2.293-4.19a6.47 6.47 0 0 1-.03-.626c-.001-1.378.443-2.578.891-3.628.447-1.052.908-1.947.912-2.756 0-.136-.014-.27-.044-.398-.148-.625-.688-1.149-1.183-1.536-.496-.383-.955-.619-.96-.622l-.01-.005-.774-.214-.066.243.761.211.034-.122-.056.113s.026.013.073.04c.172.094.609.352 1.026.701.419.35.81.8.911 1.247.026.11.037.225.037.341.004.709-.436 1.598-.89 2.657-.452 1.06-.912 2.294-.913 3.728 0 .214.011.43.033.65.209 2.164 1.252 3.417 2.381 4.362 1.13.944 2.34 1.6 2.934 2.562.6.957.758 2.487 1.046 3.96.144.735.324 1.459.62 2.091.294.633.709 1.177 1.32 1.54a5.59 5.59 0 0 0 2.889.795c2.234-.002 3.95-1.253 3.961-1.26l-.143-.205z" fill="#78732e"/> - <path d="M229.735 255.362l-.016.012c-.085.05-.484.273-1 .273-.412-.002-.899-.136-1.391-.621-.602-.594-.778-1.145-.93-1.844-.148-.7-.265-1.542-.738-2.645-.49-1.138-1.697-2.046-2.82-2.939-1.127-.887-2.162-1.76-2.347-2.708a2.628 2.628 0 0 1-.053-.535c-.002-.801.343-1.613.7-2.532.357-.918.72-1.945.72-3.178 0-.21-.01-.424-.032-.643-.166-1.59-1.378-2.772-2.53-3.561a11.274 11.274 0 0 0-2.27-1.19l-.083.238s.065.023.185.072c.417.17 1.472.64 2.45 1.395.979.756 1.87 1.787 2 3.072.02.21.031.418.031.617 0 1.182-.348 2.17-.702 3.085-.353.914-.718 1.75-.72 2.625a3 3 0 0 0 .059.586c.229 1.089 1.315 1.962 2.438 2.857 1.128.89 2.303 1.797 2.746 2.84.46 1.075.57 1.883.723 2.596.151.714.355 1.34 1 1.974.535.529 1.097.694 1.565.69a2.239 2.239 0 0 0 1.152-.324l-.137-.212z" fill="#78732e"/> - <path d="M237.086 249.26s1.395.33 1.344 1.462c-.052 1.133-.675 2.711-.675 2.711l-1.922-1.738 1.082-.957.398-.569-.227-.908z" fill="#a8ac71"/> - <path d="M213.095 235.632s-1.376.473-1.661-.132c-.286-.606-.156-1.08-.182-1.211-.027-.132-.832-.185-.753-.975.077-.79 1.09-.738 1.298-.738.209 0 .26-1.213.962-1.157.7.05 1.037.867 1.037.867l-.701 3.346z" fill="#f8c83c" stroke="#977c2e" stroke-width=".213"/> - <path d="M214.625 236.003s-1.168.608-1.532.027c-.364-.58 0-1.318-.13-1.45-.13-.13-.83-.368-.701-1.052.13-.685.857-.475 1.117-.607.259-.13.44-1.159 1.168-.974.726.185.857.764.857.764s-.572 2.739-.78 3.292z" fill="#f8c83c" stroke="#977c2e" stroke-width=".213"/> - <path d="M216.6 236.266s-.339.738-1.169.577c-.831-.155-.571-1.368-.702-1.58-.129-.209-.726-.368-.623-1.131.104-.763.857-.659 1.143-.763.285-.107.596-1.292 1.142-1.108.546.185 1.064.87.96 1.186 0 0-1.167.368-1.323 1.159-.155.79.571 1.66.571 1.66z" fill="#f8c83c" stroke="#977c2e" stroke-width=".213"/> - <path d="M234.977 248.986s-1.038-1.14-1.766-2.14c-.727-1.003-1.852-2.146-1.852-2.146l-1.782-.894-1.125-1.88-.14-2.212.486-1.281.674-.984s-3.691 1.322-1.817 8.394c.797 3.003 2.839 3.44 2.839 3.44l3.393-.208 1.09-.089z" fill="#af7029"/> - <path d="M233.27 225.367c.35.011.525.128.63.275.106.149.14.348.138.518 0 .094-.009.176-.018.236l-.012.068-.005.021.12.032-.113-.05c-1.22 2.705-3.813 3.967-6.138 5.652-1.16.843-2.251 1.796-3.052 3.095-.801 1.302-1.307 2.95-1.307 5.162 0 .112.002.227.004.342.089 4.067 1.627 6.256 3.32 7.4 1.692 1.15 3.522 1.265 4.212 1.267.181 0 .284-.008.287-.008l.004-.002h.004c.002 0 .473-.06 1.154-.123a28.52 28.52 0 0 1 2.38-.122 8.92 8.92 0 0 1 1.403.09c.39.061.671.176.757.293.11.137.15.273.151.413.002.307-.222.662-.497.945-.27.283-.588.503-.7.555l.104.228c.162-.076.48-.299.775-.607.292-.307.563-.696.568-1.121a.902.902 0 0 0-.208-.572c-.178-.212-.498-.312-.91-.383a9.452 9.452 0 0 0-1.443-.092c-1.655 0-3.563.244-3.567.244l.016.127-.01-.127s-.02.002-.067.003a4.633 4.633 0 0 1-.2.004c-.665 0-2.447-.117-4.074-1.22-1.626-1.108-3.116-3.19-3.21-7.197-.002-.114-.004-.225-.004-.337.002-2.176.495-3.769 1.269-5.027 1.161-1.889 2.974-3.038 4.747-4.233 1.77-1.195 3.505-2.44 4.458-4.546l.005-.01.002-.01c.002-.007.043-.172.043-.39-.002-.2-.034-.451-.185-.666-.148-.216-.42-.373-.825-.38l-.006.253z" fill="#816c2a"/> - <path d="M238.25 250.144s-.875 1.604-1.098 1.62c-.222.017.758.254.98.632l-.21.391s-.968-.689-1.576-.718l-.054-.592s.495-.167.906-.542c.337-.308.69-1.172.696-1.37l.356.58z" fill="#fff"/> - <path d="M241.663 251.199l-2.181.598-1.112-.696s.091-.908-.403-1.297c-.508-.403-.81-.52-1.252-.706-.442-.184-2-.217-2-.217l-3.94-4.266 1.472.156 2.328-.289 2.164-.184 1.143.168 1.22.377.64.543.666.588.667 1.098.424 1.239.173 1.333-.009 1.555z" fill="#fcca3d"/> - <path d="M241.748 251.059s-.78.23-1.765.21c-.988-.014-1.615-.167-1.615-.167s.056.062-.152.713c-.207.65-.398 1.053-.398 1.053l.035 2.562 2.077.407 1.091-.423.554-2.793.174-1.562z" fill="#af7029"/> - <path d="M241.17 249.974l.094.993.406.119-.01-.894zM239.213 226.026l-.243-1.747-.683-1.159-.866-1.186-.926-1.019-.519-.463-.217-.343-2.276.106-1.193 1.422s3.108 2.194 4.278 4.59c1.006.303 1.79.94 2.236 1.375l.106-.189.303-1.388z" fill="#fcca3d"/> - <path d="M237.006 227.952c-.032 1.78-.338 2.626-.574 3.02l1.38-1.581.992-1.786c-.446-.436-1.23-1.072-2.236-1.375.278.572.448 1.154.438 1.722z" fill="#af7029"/> - <path d="M240.219 254.307c-.002-.002-.642-.8-1.119-1.267-.486-.473-1.049-.733-1.056-.737l-.103.23.088.046c.172.09.562.316.899.645.228.223.504.536.721.79.218.255.376.452.376.453l.194-.16z" fill="#816c2a"/> - <path d="M241.56 252.394s-.209.77-.987 1.472c-.78.703-1.766 1.178-1.766 1.178l2.232.825 1.49-1.386-.97-2.09z" fill="#6f5b24"/> - <path d="M241.889 254.247l-.137.263-.42.406-.328.35.556-2.316.397.683.052.37z" fill="#404118"/> - <path d="M228.644 223.435s-3.064.263-5.193-.105c-2.129-.37-1.662-5.795-1.714-5.953-.051-.158-1.298-1.475-1.09-2.686.208-1.212 4.14-4.41 4.673-4.583.364-.119 1.142.211 1.142.211s.994-.967 1.29-.967c.303 0 .723.558.606.796-.117.237-1.467 1.026-1.571 1.632-.104.606.013 1.212-.377 1.804-.39.593-1.142 1.396-1.233 1.897-.09.5-.311.936.065 1.12.377.184 1.662.026 2.765-.474 1.103-.501 1.557-1.173 1.713-1.106.156.065-.636 1.381-1.856 1.896-1.22.514-2.025 1.106-2.635 1.014 0 0-.675 1.62 1.416 1.712 2.089.092 3.245-.46 3.245-.46l-1.246 4.252z" fill="none" stroke="#78732e" stroke-width=".183"/> - <path d="M254.926 200.48s-5.611-1.059-5.519 3.613c.03 1.474.357 1.985 1.543 2.318 1.187.33 3.563.451 5.58 2.257 2.014 1.806 2.165 3.13 2.165 4.214 0 1.083-.503 2.077-.503 2.077l1.273 6.171 1.278 4.576 3.798-2.198 2.226-6.773-2.85-12.192-8.99-4.063z" fill="#ab6d29" stroke="#4d2a15" stroke-width=".311"/> - <path d="M260.497 223.965s1.955-.738 2.458-2.318c.138-.434-1.974-2.335-2.025-2.335-.05 0 1.073.544 1.593 1.018.519.475.917.668 1.071.598.157-.07 1.058-2.16.712-2.617-.347-.456-.885-1.528-1.698-2.071-.813-.545-1.887-.475-1.887-.475s1.49-.474 2.234-.052c.742.42.813.912.899.737.087-.176-.156-2.266-.493-2.968-.337-.703-.683-1.037-1.584-1.211-.898-.177-1.868-.107-1.868-.107s1.298-.72 2.284-.473c.985.246.97.737 1.054.632.09-.106-.485-1.914-.716-2.371-.234-.456-1.411-1.37-1.74-1.476-.328-.105-1.403-.138-1.403-.138l-.52.007s.748-.518 1.7-.43c.95.088 1.001.404 1.139.351.138-.052-.104-.175-.682-.58-.581-.402-3.385-1.597-3.385-1.597l-2.561-.035s-.028-.65.718-.772c.745-.124.96.095.908-.098-.051-.192-2.162-.657-2.162-.657s-1.213.035-1.733.052c-.518.019-2.406.237-2.406.237s.165-.414.534-.737c.281-.247.717-.402 1.077-.5.83-.23-.468-.879-.468-.879l.693-1.053 3.117.262 6.577 3.847 3.082 2.652 1.955 4.987-.589 8.568-4.398 3.635s-1.937.3-1.937.212c0-.089.45-1.845.45-1.845z" fill="#4d2a15"/> - <path d="M254.762 202.68s-.209-.605-.209-1.369.13-.738.13-.738-2.102-.29-3.635.922c-1.53 1.212-.65 3.318-.65 3.318s.67-.658 1.525-.975c.856-.314 2.398-.262 2.398-.262.129-.132-.337-.739-.91-.87-.572-.13-1.686-.13-1.686-.13s.649-.45 1.766-.343c1.116.105 1.27.448 1.27.448z" fill="#d2a567"/> - <path d="M261.339 224.703l-1.421.492.866 5.97 5.676 9.728 2.978-.525 1.004-1.792.797.352c.343.351 1.454 2.247 2.39 2.633.933.386 1.416.246 2.248.915.833.666 3.87 5.188 4.026 5.362.154.176-.174-1.94-.174-1.94l-.926-2.704-1.148-1.888-.175-.508 1.575.017.977.598 1.498 1.253.778.923.407.95.172.831.4 1.292.83 1.792.997 1.703.319-.695-.486-2.001-1.522-4.855-.935-1.634s1.229.886 1.557 1c.329.116 1.446 1.784 1.446 1.784l.71 1.72.511 1.598.35 1.397.514 1.49.882-.508-.155-1.078-.762-3.33-.328-3.608s.426-.01.942.56c.52.57.988 1.864.988 1.864l.383 3.265.517 2.994.969 3.056 1.012 1.922.659 1.078s.034-1.526.024-1.597c-.008-.068-1.237-12.78-1.237-12.78l.165-.536s.147-.08.571.526c.424.605.849 1.553.849 1.553l.372 1.993.18 1.378.26 2.6.346 2.816 1.3 3.023.701 1.631.39-1.938-.616-13.671.288-.395s.725.597.967 1.02c.244.42.695.831.695.831l.423 3.013.38 8.622.303 2.221 2.536-22.582 1.567-.342.18-.431-1.142-.879-2.568-3.984-1.733-3.856-3.038-5.596-5.27-6.427s-3.271-2.793-4.103-3.425c-.831-.631-1.519-1.027-1.519-1.027l.26-.803.87-1.41-.142-.065-.678.04-1.764.25-1.779-.527-3.49-2.437-3.74-1.778-2.195-.777-5.296-1.343-5.27-.712-2.364-.032-2.154.402s-1.095.451-1.438 1.128c-.34.676-.367 1.15-.263 2.137.103.988.7 1.502 2.18 2.109 1.483.605 4.96 2.923 4.96 2.923l1.676 1.684.622.805.09.62 1.129 8.889-2.232 4.833-1.6.83z" fill="#8f4620"/> - <path d="M267.038 238.557s.95 1.616 2.3.37c1.353-1.247-.589-4.795-.569-5.006.017-.21.622-.28.622-.28l.988 1.826s.588.983.361 2.546c-.223 1.563-1.73 2.915-1.73 2.915l-1.713-.387-.26-1.984z" fill="#ab6d29"/> - <path d="M300.196 259.39l-1.22-3.61s-.362-2.317-.362-2.791c0-.475-.235-6.349-.34-7.454-.103-1.105-.05-2.372-.166-2.527-.118-.161-1.325-1.753-1.325-1.753l-.518-.541.366-.262s.45.492.573.226c.119-.261-.02-1.543-.52-3.546-.502-2.002-3.065-6.69-3.065-6.69l.276.228.712.72 1.506 1.212 3.255 1.194 1.765.28 1.142 2.284s.813 3.934.762 5.916c-.053 1.986-.175 3.6-.935 5.585-.76 1.985-.952 8.271-1.055 9.27-.106 1.004-.486 1.986-.486 1.986l-.365.274z" fill="#4d2a15"/> - <path d="M300.208 248.95s.682-.812.98-1.928c.298-1.113.415-9.872-.621-10.956-1.04-1.084-3.16-1.938-3.266-1.867-.104.072.848 2.856.848 2.856s.319.407.644 1.132c.18.403.426 1.133.468 1.4.118.753.739 2.529.83 4.817.088 2.288.117 4.546.117 4.546z" fill="#8f4620"/> - <path d="M295.423 254.448s.446-4.144.238-7.18c-.206-3.033-.458-3.412-.746-3.961a25.801 25.801 0 0 1-2.038-5.059c-.705-2.527-1.163-4.466-1.62-4.971-.456-.507-1.372-1.601-1.578-1.306-.208.295-.208.927-.208.927l-1.247-.339-.29-.8.4-1.29-.08-.554-.146-.912 1.61 1.28 3.307 2.266 1.661 6.859 1.54 4.267.217 7.227-.156 6.363-.864-2.817zM297.368 234.675s.864.816 1.37 1.1c.507.282 1.462.87 1.272.935-.187.065-1.084-.285-1.643-.6-.559-.316-.94-.704-.94-.704l-.06-.731z" fill="#4d2a15"/> - <path d="M290.925 252.814s.659-1.454.555-3.299c-.105-1.844-.986-6.287-1.263-6.85-.278-.563-1.591-1.403-2.77-3.898-1.177-2.494-1.057-3.003-1.833-3.915-.78-.914-1.595-1.95-1.595-1.95l.242-2.668 2.874 1.457 1.229.614 1.455 6.988 1.3 1.95.55 2.793.695 6.514.378 5.18-.206.457-1.611-3.373zM287.609 249.858s.077-2.055-.444-3.897c-.52-1.845-.881-3.216-1.454-3.795-.57-.577-2.023-2.08-3.322-4.03-1.298-1.948-3.092-4.003-3.092-4.003l.048-2.614s.861.81 1.597 1.168c.735.356 1.836.972 1.836.972l.768 2.998.991 2.157 1.453 1.929.928.857.592 3.227.318 1.816.765 2.592-.253 1.297-.73-.674zM285.22 249.882l-.793-.762s.429-.516.221-1.543c-.208-1.026-.48-2.015-.949-2.989-.466-.974-.607-1.568-.894-1.856-.287-.29-2.714-2.583-3.558-3.279-.842-.7-2.14-2.03-2.946-2.543-.805-.513-1.39-.646-1.39-.646l-.454-3.214s1.065 1.422 1.701 1.66c.636.238 1.677.566 1.677.566l2.256 3.991.767 1.014 2.09 1.672.856 1.725.636 1.99.792 2.74.143 1.659-.155-.185zM280.782 248.986s-1.332-1.527-1.54-2.512c-.208-.983.139-.983-.279-2.107-.415-1.122-1.8-2.773-2.942-3.688-1.144-.913-2.769-2.246-2.664-2.985.104-.737.31-.772.31-.772l.693.596 3.563 3.795 1.094 1.985.83 2.474.554 1.16.536 1.477-.155.577zM293.643 230.371s2.457 3.048 3.081.247c.278-1.247-.852-3.62-.852-3.62s-2.283-4-3.06-4.967c-.78-.966-4.587-5.848-4.587-5.848l-2.786-1.3.951 1.635s2.077 2.071 4.728 6.654c2.646 4.583 2.126 7.111 2.126 7.111l.4.089zM279.374 212.007s4.88 4.161 8.024 8.665c3.14 4.504 4.386 7.508 3.685 8.112-.702.606-2.675-.34-3.477-1.606-.806-1.264-1.484-3.477-4.442-6.849-2.96-3.37-4.387-3.872-4.387-3.872l-2.13-3.45 2.727-1zM276.833 221.984s2.881 2.397 4.698 4.346c1.82 1.95 2.754 3.346 2.754 3.346l1.166 1.158s-.7-1.237-.31-1.659c.388-.42.858-.21.858-.21l-9.166-9.616v2.636zM276.235 222.253s.936 1.79 2.467 3.292c1.532 1.5 3.219 3.108 3.219 3.108l.65 2.344s-4.18-3.212-4.206-2.423c-.027.79 1.013 2.423 1.013 2.423l-1.273-.684-1.766-2.556-1.065-2.212-1.194-3.057 2.155-.235z" fill="#4d2a15"/> - <path d="M263.594 232.157s2.18 1.95 3.376.053c1.195-1.897.26-4.082.26-4.082s3.078 4.54 3.946.289c.156-.764-1.87-3.714-1.87-3.714l.727-.684 1.555 2.633s1.458-.658 1.458-2.476c0-1.817-1.505-4.162-1.505-4.162l1.435 1.598s2.846.062 2.9-1.677c.05-1.738-2.39-3.556-2.39-3.556s1.947.132 1.92-1.001c-.024-1.132-2.645-1.923-2.699-2.633-.051-.712.78-1.924 1.974-1.266 1.194.659 2.856 1.186 3.53-.104.676-1.292-.051-1.554-.051-1.554s-1.534-.316-1.686-.369c-.159-.053-2.729-1.449-2.729-1.449l-2.158-.816-2.228-.29.828 1.659.574 4.557.024 2.107.415 4.584-1.09 3.82-.566.687-.401.513-.951 2.017-1.334 1.444-1.707 2.183-1.557 1.689z" fill="#4d2a15"/> - <path d="M279.051 240.715s-.55-1.368-1.727-2.282c-1.18-.915-3.049-.984-3.049-.984l3.201 3.39 1.575-.124zM283.531 241.49s-1.037-2.071-2.248-3.337c-1.212-1.265-2.01-2.898-2.34-2.898-.326 0-.569.07-.569.07l.311 2.617 2.216 2.143s2.078 1.545 2.63 1.404zM287.219 241.33s-.517-2.404-1.747-4.722c-1.227-2.319-2.527-3.267-2.527-3.267l.293 2.476 1.007 2.388 1.625 2.354 1.349.772zM290.23 239.978s.865-4.952.087-6.323c-.777-1.37-2.248-1.632-2.248-1.632l-.47.718.47 3.53 1.174 2.704.987 1.003zM293.192 231.725s.726.368 1.609 2.036c.881 1.668 2.13 6.604 2.11 6.867-.016.26-.466.2-.587.141-.12-.064-3.116-4.743-3.116-4.743l-.476-4.373.46.071z" fill="#ab6d29"/> - <path d="M272.286 237.479s1.584-.343 1.584-.896c0-.553-1.893-1.66-1.738-2.555.075-.448 1.609.079 1.714-.238.103-.315-1.583-2.95-1.066-3.554.52-.607 1.948 2.844 1.948 2.844s.856 1.623.545 2.554c-.962 2.871-2.987 1.844-2.987 1.844zM275.998 233.895c.077-.23 2.493.316 2.519.157.093-.567-2.18-2.317-2.18-2.317s-.52-1-.362-1.158c.153-.159 1.608.158 1.688-.053.075-.211-1.665-2.502-1.665-2.923 0-.423.47-.054.47-.054s1.375 1.423 2.103 2.582c.725 1.159 1.408 2.108 1.166 3.95-.257 1.975-3.945.448-3.74-.185zM286.908 230.262s-.392-1.633-.157-1.845c.234-.21.859-.394.859-.394s-1.288-.803-1.898-.818c-.61-.013-.7-.19-.856.067-.157.256 1.103 1.843 1.103 1.843l.95 1.147z" fill="#d2a567"/> - <path d="M279.557 231.523s3.713.923 3.869.66c.156-.264-2.96-3.163-2.96-3.163s-.208-.525-.156-.71c.052-.183 1.35-.21 1.739.106.388.316 0 .92.13 1.159.13.237 1.3 2.028 1.508 1.737.208-.289-.236-2.475-.13-2.633.102-.158 1.428 1.237 1.788 1.475.365.237 2.443 1.871 2.65 1.106.209-.763.338-.895.258-1.344-.076-.447.694 2.11-.277 2.423-.968.318-2.084-.34-2.084-.34l-.858-.66-.502-.526s.555 1.976-.095 2.185c-.647.212-1.402.107-1.402.107l-1.556-.16-1.922-1.421zM288.084 228.988s3.963 2.378 4.354 1.958c.392-.421-1.035-6.003-.805-6.585.184-.466 3.218 6.34 1.74 7.27-1.13.71-1.688.21-1.688.21l-1.947-1.027-1.653-1.827zM299.11 239.002s.36.266.865.408c.16.047.637.191.505.206-.129.01-1.056.124-1.122.15-.065.025-.247-.764-.247-.764zM295.265 225.904s.377.216.612.281c.234.066.533.211.533.25 0 .04-.293.165-.501.14-.208-.027-.337-.086-.337-.086l-.307-.585zM294.125 223.953s.406.186.925-.184c.521-.368.555-.614.513-.808-.043-.193-.859-.193-1.133-.378-.278-.182-.262-.517-.262-.517l-.891-.017-.33.123 1.178 1.781zM297.624 235.449s1.212.711 1.552.778c.335.066.908.383.829.487-.076.106-.972.185-1.427-.078-.454-.264-.604-.1-.604-.1l-.35-1.087zM291.096 217.4l.02.008c.067.019.29.076.484.055.23-.026.423-.167.504-.077.163.182.03 1.025-.297 1.265-.327.241-.727.436-.785.42-.06-.013-1.278-1.76-1.278-1.76l1.351.09zM285.415 212.317s.793-.047 1.19-.045c.396 0 .857.287 1.212.512.357.226.714 2.62.52 3.071-.193.452-2.862-1.55-2.935-1.73-.076-.181-1.234-1.973-1.234-1.973l1.247.165zM282.91 211.232s1.943.12 1.765-1.112c-.176-1.236-1.068-1.777-1.068-1.777l-2.328 1.655 1.63 1.234zM277.698 208.959s.52.287 1.1.06c.577-.226 2.105-2.213 3.218-2.454 1.114-.24 1.336-.224 1.546.031.207.255.103 1.385-.15 1.7-.252.318-3.488 1.686-3.488 1.686s-.674-.04-1.197-.162c-.525-.123-1.058-.348-1.058-.348l.03-.513zM277.095 205.381c-.492-1.148-1.365-1.616-1.693-1.54-.327.076 1.112 1.22 1.32 2.8.209 1.58.193 2.64.165 2.73-.03.09.668.1.668.1l.132-.603.084-.431-.008-.39-.096-.816-.17-.644-.143-.495s-.008-.118-.26-.711zM272.493 203.747c-1.49-1.738-4.189-2.976-4.373-2.976-.183 0 3.142 2.003 3.894 3.292.753 1.291.78 3.029 1.117 3.266.337.238.65-.117.677-.157.024-.04.271-.396.233-.501-.04-.105-.209-.83-.209-.83l-.517-.869-.313-.54-.51-.685zM268.08 201.931c-1.884-1.66-5.298-2.45-8.064-2.488-2.766-.04-4.18.209-3.778 1.723.404 1.516 1.65 2.174 3.985 2.174 2.34 0 2.898-.25 4.156.144 1.26.396 2.413 1.108 2.869 1.581.456.474-.869-1.159-2.063-2.054-1.194-.896-1.98-1.365-1.98-1.365s-.229-.493 1.384-.268c1.607.223 3.762 1.265 4.347 2.608.583 1.344.493 2.081.48 2.37-.014.29.558-.157.558-.157l.234-.66s.092-.526-.22-1.118c-.311-.593-.364-.791-1.09-1.646-.728-.858-.818-.844-.818-.844zM260.406 224.733c1.178-.035 3.809-2.282 4.191-5.407.38-3.126-1.559-9.483-2.009-10.15-.45-.668.725-.316 1.367.35.642.668 1.957 5.199 1.957 8.5 0 3.303-.659 4.25-2.424 5.936-1.766 1.685-3.186 1.51-3.186 1.51l.104-.738zM264.496 234.01s.587.738 1.244.492c1.213-.454 3.08-1.348 3.08-3.09 0-1.126-1.451-2.107-1.52-2.53-.07-.42 0-.772 0-.772l1.278.281.366 1.79s.501.527 1.02.317c.522-.212 2.007-1.299 1.8-2.353-.207-1.055-1.625-2.353-1.764-2.88a1.773 1.773 0 0 1 .034-.984l1.212.21.371 1.54s.32.534 1.014.393c.692-.14 1.903-1.405 1.627-2.002-.278-.597-1.177-2.003-1.246-2.143-.07-.14-.034-.667-.034-.667l.485.272s.466.184 1.402-.091c.935-.278 1.844-.91 1.83-1.555-.012-.645-.7-1.264-.754-1.619-.052-.355-.013-.501-.013-.501l.61.092.754.935.18 1.12-.271.96-1.141 1.24-1.132.474-.31-.027.689 1.199-.223 1.594-.999.92-1.339.804-.103 1.489-.74 1.607-1.714 1.014h-.503l-.197.974-1.075 1.528-1.856 1.237-1.353.25-.778-1.132.069-.386z" fill="#d2a567"/> - <path d="M274.736 217.133s3.109.877 3.011-1.09c-.053-1.106-3.045-3.652-3.235-4.073-.19-.422-.139-1.001-.139-1.001l1.549 1.418s1.976.47 2.539-.671c.562-1.14.109-1.858.01-1.884-.097-.025.454-.1.454-.1l.915.188-.11 1.76-1.013 4.423s.27 1.737-1.1 1.86c-1.368.125-2.881-.83-2.881-.83zM277.68 240.703s.053-.896-.64-1.52c-.693-.624-2.025-1.212-2.24-1.344-.217-.131 2.223 2.773 2.223 2.773l.657.09zM282.184 240.85s-1.56-1.923-1.895-2.584c-.339-.656-1.143-2.106-1.793-2.173-.648-.065.611 2.397.611 2.397l2.53 2.307.547.052zM286.45 240.807s-1.335-2.528-1.661-3.267c-.323-.738-1.025-2.754-1.818-3.306-.79-.553.104.921.104.921l.845 2.621 1.482 2.28 1.049.75zM289.596 238.972s-.091-2.158-.353-3.66c-.257-1.502-1.426-2.753-1.504-2.7-.079.053.09 2.673.09 2.673l1.767 3.687zM296.088 240.6s-1.09-2.596-1.532-3.82c-.442-1.226-1.532-3.28-1.648-3.307-.117-.026.325 2.357.325 2.357l1.323 3.794 1.532.975zM301.72 233.803s-1-1.027-3.156-1.871c-2.153-.842-4.309-.935-4.309-.935l.26.276.979.832 2.252 1.157 2.942.712 1.032-.171z" fill="#d2a567"/> - <path d="M278.582 235.077s.017 1.88.985 3.021c.971 1.143 3.255 3.231 3.707 3.653.45.42.83 2.739 1.506 4.671.672 1.93.832 3.513 1.124 4.056.294.543.899 1.421.45 1.334-.45-.088-.867-.615-1.143-1.317-.278-.701-.192-.701-.154-1.668.034-.967-1.472-5.918-2.166-6.461-.693-.547-3.877-3.196-5.107-5.023-1.228-1.827-.968-2.249-.968-2.249l1.766-.017z" fill="#202020"/> - <path d="M283.72 247.456c-.675-1.387-.796-2.616-1.004-3.442-.208-.825-2.891-3.07-3.533-3.371-.485-.227-1.496.061-1.902-.245-.406-.307-2.943-3.186-2.943-3.186s-.382.36-.26.464c.122.107 2.752 2.95 3.703 3.862.955.914 1.471 2.951 2.165 4.532.693 1.577.416 1.263.485 2.035.07.774.555 1.214 1.038 1.214.485 0 .607-.23.426-.362-.184-.13-1.17-1.29-1.741-2.792-.521-1.37-1.195-3.897-2.026-4.847-.053-.059-.116-.133-.187-.211.196-.024.527-.086 1.034-.114.643-.034 3.29 2.407 3.517 3.127.224.72-.019 1 1.09 3.407 1.107 2.407 1.626 2.968 1.626 2.968h.193s-1.007-1.651-1.68-3.038zM279.557 231.523s1.922 1.212 2.492 1.37c.57.158.986.211.986.211s.287 3.505 1.688 5.479c1.4 1.977 2.543 2.688 2.543 2.688s.053 3.817 1.092 6.453c1.04 2.633 1.246 5.82 1.012 6.32-.234.5-1.118-1.553-1.686-3.371-.573-1.818-1.118-3.791-1.507-5.004-.389-1.212-1.454-3.031-2.05-3.53-.6-.501-.119-.447.232-.133.351.317 1.363 1.567 2.013 3.584.648 2.014.907 4.056 1.258 4.07.351.012.622-.33.612-.74-.014-.405-.455-1.46-.778-3.344-.327-1.883-.652-3.173-.963-3.7-.313-.527-.767-.62-1.972-2.727-1.208-2.106-1.741-3.278-1.95-4.254-.207-.975.039-.881-.17-1.027-.205-.145-.36.014-1.28-.5-.924-.513-1.572-1.844-1.572-1.844z" fill="#202020"/> - <path d="M284.537 230.81s1.177.914 1.834 1.194c.658.28 1.61.333 1.61.333s-.24 3.32 1.058 5.48c1.298 2.16 2.647 3.423 2.647 3.423s.208.81.624 5.443c.416 4.638.432 4.724.553 6.586.121 1.861.18 8.457-.088 8.254-1.002-.773-.172-4.356-.673-5.83-.502-1.477-1.298-1.723-2.268-5.9-.97-4.18-.347-5.13-1.038-6.69-.692-1.565-1.61-1.705-1.61-1.705s1.28.247 1.817 1.563c.538 1.317.62 4.816 1.058 6.55.986 3.916 2.336 5.9 2.336 5.9s-.295-4.916-.675-7.708c-.382-2.794-.363-5.127-.882-6.198-.521-1.074-1.646-1.934-2.32-3.356-.675-1.422-.917-4.214-1.248-4.934-.327-.72-.515-.496-.985-.684-1.524-.615-1.75-1.722-1.75-1.722z" fill="#202020"/> - <path d="M288.084 228.988s1.04 1.158 2.49 2.019c1.457.86 2.183.598 2.409.773.225.176-.295 3.125 1.23 5.847 1.523 2.722 2.077 2.775 2.111 3.146.034.365.311 8.392.503 11.112.189 2.722.396 11.853-.729 11.853-1.124 0-.103-6.744-.657-8.323-.556-1.582-.536-1.125-1.072-2.386-.539-1.267-.531-6.267-1.386-9.222-.64-2.211-1.299-2.564-1.299-2.564s1.076.579 1.576 2.407c.502 1.825.658 7.955 1.246 8.936.587.985 1.436 2.196 1.627 3.11.192.912-.12-11.643-.38-12.397-.259-.757-2.788-5.304-2.979-7.815-.188-2.51-.277-2.758-.5-2.95-.227-.194-.95-.036-2.145-1.16-1.197-1.123-2.044-2.387-2.044-2.387z" fill="#202020"/> - <path d="M293.796 230.432c.07-.24.792 1.35 3.05 2.247 2.26.895 4.415.737 4.701.973.286.238 1.715 3.637 1.765 8.165.054 4.532-.779 4.11-1.48 8.01-.7 3.898-.727 11.825-1.167 13.037-.21.447-.442.631-.677 1.397-.233.762.18 2.212-.52 2.238-.7.026-.778-1.106-.778-1.713 0-.606.728-2.764.728-4.925s-.469-2.423-.78-5.006c-.312-2.58-.337-10.798-.623-11.588-.285-.79-1.696-2.5-1.696-2.5s1.515.972 1.879 2.077c.362 1.109.398 10.234.804 12.066.416 1.869.285-.422.442-1.477.154-1.052.701-5.53.622-7.927-.078-2.395-1.092-7.585-1.922-8.455 0 0 .432.503.908 1.644.011.032.305.332.645.53.36.206.77.312.783.35.012.026-.456-.04-.824-.2-.272-.118-.47-.34-.462-.319.512 1.356 1.028 3.452 1.077 6.45.072 4.082-.596 13.066.054 13.17.65.106.521-4.899 1.195-8.955.673-4.057 1.583-4.638 1.297-7.955-.285-3.319-1.167-6.902-1.867-7.35-.7-.447-2.701-.29-4.468-1.423-1.763-1.131-2.76-2.32-2.686-2.56zM265.172 235.004s.651.29 1.403-.078c.755-.37 2.753-1.95 2.753-2.61 0-.658.028-1.316.028-1.316s.025.29.597.368c.57.082 2.206-1.158 2.334-1.947.131-.79.131-2.186-.05-2.476-.182-.29.492.29.83-.027.337-.316 1.921-1.344 1.897-2.397-.027-1.054-.884-2.029-.884-2.029s.78.106 1.245 0c.47-.103 2.027-1.026 1.974-1.974-.052-.949-.595-2.397-1.818-2.503 0 0 .91.211 1.793-.104.882-.317 1.195-.818 1.195-1.82 0-1-1.792-3.16-2.104-3.343-.31-.184 1.92.632 2.492-.264.569-.896.648-1.528.493-2.027-.156-.502-.623-.632-.623-.632s.963.262 2.26-.396c1.298-.658 2.44-1.528 3.038-1.502.596.027-1.896 1.343-2.027 2.082-.052.304.68.827 1.807 1.653.071.05.105.098.218.159.511.276 2.45.355 2.582.453.162.12-1.875.075-1.7.208 1.37 1.048 3.037 2.452 4.562 4.305.058.069.38.349.752.457.455.13.973.088 1.04.174.05.067-1.316-.034-1.267.032a52.21 52.21 0 0 1 2.618 3.754c.053.085.371.457.735.613.398.171.845.13.9.22.1.158-1.112.006-1.02.16a65.57 65.57 0 0 1 2.644 4.807s-2.445-4.3-5.433-7.646c-2.985-3.345-3.686-3.792-3.841-3.475-.156.316 2.233 3.265 3.505 5.345 1.27 2.083 2.427 4.67 2.427 4.67s-2.999-6.223-7.204-10.042c-4.208-3.82-4.647-4.451-5.116-4.294-.467.159-.829 2.977-.544 3.556.285.58 3.348 2.897 5.97 5.98 2.622 3.081 5.947 8.375 5.947 8.375s-2.362-3.819-6.36-8.06c-4-4.24-5.53-5.215-5.842-5.189-.312.026-.34.79-.804 1.423-.469.631-1.43.553-1.457.843-.024.29 3.378 3.423 4.051 3.792.675.369 1.038.185 1.558.475.519.289 1.081.773 1.081.773s-.716-.273-1.236-.43c-.52-.159-1.04-.186-1.04-.027 0 .157 2.754 3.528 3.22 3.74.468.21.727.105 1.35.343.623.237 1.508.869 1.508.869s-.964-.554-1.638-.686c-.674-.131-.96 0-.935.185.027.184 2.104 2.845 2 2.898-.102.052-3.219-3.689-5.868-6.032-2.65-2.345-3.842-2.845-3.973-2.766-.128.079-.051.765-.7 1.001-.65.237-1.247.317-1.247.553 0 .237 2.39 2.476 4.075 4.347a119.497 119.497 0 0 1 3.142 3.635s-1.712-1.713-3.582-3.477c-1.87-1.765-2.829-2.45-3.011-2.344-.183.104-.207 1-.027 1.237.181.237 3.637 4.32 3.533 4.425-.104.106-4.077-4.898-4.336-4.898-.262 0-.418.63-.676.921-.262.29-1.377.29-1.377.684 0 .396 5.608 5.9 5.453 6.031 0 0-4.646-4.003-4.803-3.766-.157.238 1.945 4.083 1.817 4.162-.13.08-2.727-4.03-2.962-4.003-.23.025-.207.474-.882 1.08-.673.606-1.53.342-1.557.606-.026.263 3.87 4.583 3.764 4.662-.104.078-3.944-4.11-4.05-3.873-.025.063-.232.244-.128.606.285 1.01 1.152 2.848 1.038 3.002 0 0-1.246-2.554-1.585-2.449-.337.106-.337.607-.91.975-.568.369-1.036.29-1.09.553-.05.263.676.711.99 1.318.308.606.57 1.924.57 1.924s-.39-1.109-.935-1.82c-.545-.71-1.04-1.185-1.454-1.185-.415 0-.702.396-.702.396l-.39-.923z" fill="#202020"/> - <path d="M301.555 233.657s1.27-.078 1.427-.342c.156-.264-.468-.08-1.61-1.316-1.142-1.24-4.058-9.686-7.244-13.936-5.214-6.955-10.099-10.14-10.099-10.14s5.81 3.363 10.309 9.93c4.567 6.674 5.676 11.907 6.955 13.276 1.283 1.37 2.53 1.615 2.46 2.002-.07.387-.278.667-.763.738-.483.07-1.662.174-1.662.174l.226-.386zM263.173 231.816s.034.102.27.129c.238.03 1.816-1.545 1.73-2 0 0-.702-.263-1.27-.842-.571-.58-.703-1.501-.703-1.501s.52 1.027.96 1.316c.443.29 1.143.447 1.403.238.26-.212 2.583-1.932 2.44-2.608 0 0-.725.026-1.402-.475-.674-.5-.797-1.528-.797-1.528s.435.826 1.128 1.16c.69.334 1.366.193 1.557-.053.19-.246 1.714-2.337 1.54-2.95 0 0-.778.088-1.472-.404-.692-.492-1.055-1.721-1.055-1.721s.502 1.036 1.384 1.211c.883.176 1.61-.35 1.748-.982.138-.632.623-2.986-.119-3.583 0 0-1.145.369-1.958-.052-.811-.422-1.106-1.457-1.106-1.457s.691.948 1.607 1.07c.919.123 1.318-.368 1.472-.738.158-.369.192-1.702-.086-2.44-.276-.738-.848-.685-.984-1.79 0 0-.297.437-1.474.437s-1.801-1.334-1.801-1.334.937.861 1.87.79c.934-.07 1.281-.842 1.3-1.44.015-.597-.47-1.124-.727-1.738-.26-.615-.278-1.353-.451-1.264-.173.087-.397.649-1.61.456-1.211-.192-1.472-1.018-1.472-1.018s.883.615 1.558.562c.677-.052 1.107-.37 1.107-.825 0-.457-.258-1.3-1.782-2.6a46.509 46.509 0 0 0-2.769-2.194s1.973 1.089 3.253 2.16c1.284 1.071 2.008 2.107 2.008 2.107s1.404.457 1.559-.018c.155-.474.131-1.066-.311-1.91-.432-.824-1.635-2.054-1.635-2.054s1.258 1.04 1.855 2.12c.596 1.08.327 1.83.376 2.094.054.262 2.675 1.278 3.26.923.584-.356.311-1.12-.182-1.898-.492-.776-.899-1.422-.899-1.422s.613.673 1.052 1.435c.443.765.806 1.371.638 1.726-.167.356-.533.514-.493.66.04.143.906.604 1.791 1.065.884.462 1.908.87 2.039.62.13-.252.22-.857.144-1.713-.08-.855-.572-2.16-.572-2.16s.582 1.265.687 2.16c.103.896-.115 1.568.091 1.883.208.317.856.396.856.396s-.519.368-1.674.026c-1.155-.343-6.114-2.845-6.349-2.608-.233.237 2.312 1.778 3.48 2.885 1.17 1.105 1.74 2.265 1.74 2.265s-.91-.765-1.79-1.251c-.883-.487-3.533-1.844-3.703-1.66-.165.185 1.001.42 1.09.633.092.21-.829 1.04-.829 1.382 0 .342 3.777 2.963 3.66 3.253-.116.29-.96.974-1.115.935-.156-.04-2.024-1.475-2.024-1.25 0 .223 1.074 1.132 1.063 1.329-.012.198-.713.672-.586 1.12.131.448 2.106 2.068 2.092 2.62-.014.553-1.13 1.027-.921 1.383.206.356 1.22 1.606 1.22 1.606s-1.091-.723-1.443-1.104c-.35-.383-1.053-1.212-1.178-1.082-.132.133-.832 1.674-.768 2.016.067.342.948.869 1.117 1.803.17.936-.13 1.91-.196 1.91-.065 0-1.309-1.606-1.558-1.632-.245-.026-.557.08-.765.487-.208.408-.936 1.686-.843 1.923.088.236 1.309.514 1.337 1.488.025.975-.767 1.883-.845 1.883-.078 0-1.518-1.936-1.66-1.936-.144 0-1.78 1.818-1.819 2.041-.04.224 1.116 1.042.91 1.358-.21.316-.989-.12-1.43.13-.44.252-1.219.566-1.376.566-.155 0-.39-.525-.39-.525z" fill="#202020"/> - <path d="M283.988 208.002s.131-.513.379-.777c.246-.264 1.248-1.37.87-1.594-.377-.223-1.649.186-2.453.118-.806-.064-1.337.133-3.674-1.804 0 0-7.411-5.18-18.889-5.847-3.636-.21-5.264 1.09-5.436 1.773-.017.158.953-1.475 4.604-1.422 1.611.017 13.168.95 19.161 5.655.313.245 2.298 2.146 4.155 1.935 1.857-.211 2.247-.42 2.207-.158-.038.263-.622.949-.752 1.263-.13.317-.258.897-.258.897l.087-.039zM263.96 209.532l-.03-.095c-.104-.315-.842-1.346-2.098-2.512-1.506-1.397-6.183-3.346-6.416-3.425-.233-.08 4.801 2.319 6.208 3.661 2.256 2.16 2.336 2.371 2.336 2.371z" fill="#202020"/> - <path d="M263.947 217.779s-.307-.507-1.291-1.14a7.89 7.89 0 0 0-1.976-.895l2.285.58c.675.578.982 1.455.982 1.455zM263.356 213.482s-.311-.448-1.713-.896c-1.402-.448-1.739-.422-1.739-.422s1.298-.552 2.284-.05c.986.498 1.168 1.368 1.168 1.368zM262.527 209.952s-.286-.632-1.532-1.079c-1.246-.448-2.13-.527-2.13-.527s1.297-.368 2.546.131c1.246.5 1.116 1.475 1.116 1.475zM261.022 207.685s-.366-.5-2.7-1.052c-2.339-.555-3.247-.581-3.247-.581s3.324-.262 4.206.106c.882.368 1.74 1.527 1.74 1.527zM256.737 205.235s-1.426-.395-2.803-.5c-1.377-.106-3.533.078-3.533.078s4-.631 5.063-.394c1.066.236 1.273.816 1.273.816z" fill="#d2a567"/> - <path d="M243.583 254.728s.71 1.247 2.112 1.3c1.402.052 2.492 2.054 2.492 2.054l-1.54 1.51-3.704.175-1.193-1.914 1.833-3.125zM243.668 253.448c.121-.244-1.09-2.635-1.956-3.038-.865-.402.294.774.104 1.264-.19.493-.318 1.099-.249 1.186.07.088.716 1.099.37 1.555-.347.456 1.731-.967 1.731-.967z" fill="#f8c83c" stroke="#977c2e" stroke-width=".213"/> - <path d="M243.004 257.093s.659.329 1.178.177c.52-.153.98-.68.98-.68M242.334 256.167s2.078-1.51 1.905-2.317c-.174-.809-.589-.774-.866-.702-.277.069-1.558 1.123-1.626 1.368-.07.246.587 1.65.587 1.65z" fill="#f8c83c" stroke="#977c2e" stroke-width=".213"/> - <path d="M240.865 257.203s.38 1.002 1.055 1.002c.675 0 1.645-.545 1.661-.947.018-.407-.675-1.144-1.125-1.353-.45-.21-1.488.333-1.488.333l-.103.965z" fill="#f8c83c" stroke="#977c2e" stroke-width=".213"/> - <path d="M242.754 255.837c-.103.314-1.42.93-1.852.965-.432.035-1.315-1.071-.953-1.23.365-.158.816-.142 1.143-.316.33-.177.416-.615.606-.633.19-.017.727.124.866.456.139.335.294.442.19.758z" fill="#f8c83c" stroke="#977c2e" stroke-width=".213"/> - <path d="M241.401 256.709s-2.04 2.759-2.89 2.619c-.848-.14.347-3.917.347-3.917s.33.212 1.004.424c.675.209 1.35.455 1.54.874z" fill="#f8c83c" stroke="#977c2e" stroke-width=".213"/> - <path d="M237.768 254.746s2.632.456 2.753.879c.121.42-1.264.983-2.008.983-.745 0-.745-1.862-.745-1.862z" fill="#f8c83c" stroke="#977c2e" stroke-width=".213"/> - <path d="M231.222 258.733s.348 1.265 1.49 1.335c1.142.07 2.215-1.195 2.215-1.195l-2.7-1.053-1.005.913z" fill="#202220"/> - <path d="M231.222 258.733l-.059.017c0 .006.09.326.326.662.234.333.624.684 1.22.719l.095.004c1.151-.007 2.164-1.22 2.17-1.22l.057-.07-2.818-1.097-1.062.965.012.037.059-.018.044.047.975-.888 2.663 1.04.023-.058-.046-.041s-.061.072-.174.184c-.332.334-1.107.993-1.903.99l-.089-.002c-.547-.034-.902-.352-1.125-.667a2.268 2.268 0 0 1-.238-.429c-.024-.06-.042-.108-.053-.14l-.016-.052-.061.016.044.047-.044-.047z" fill="#4b4139"/> - <path d="M231.984 258.38s.449.95 1.938.985c1.489.034 2.666-1.195 2.666-1.195l-2.354-1.861-2.25 2.07z" fill="#202220"/> - <path d="M231.984 258.38l-.055.027c.002.011.474.985 1.992 1.02h.065c1.493-.001 2.642-1.21 2.647-1.212l.049-.05-2.451-1.937-2.323 2.138.02.041.056-.028.041.048 2.212-2.035 2.313 1.827.038-.048-.045-.046-.05.052c-.234.223-1.262 1.127-2.507 1.125h-.062c-.731-.02-1.2-.257-1.49-.493a1.758 1.758 0 0 1-.306-.315.91.91 0 0 1-.068-.104l-.02-.037-.056.026.041.048-.041-.048z" fill="#4b4139"/> - <path d="M232.185 258.599s.658.544 1.437.587c.779.044 1.748-.201 1.748-.201l-.892.323-.64.071-.605-.096-.545-.203-.425-.316-.078-.165z" fill="#4b4139"/> - <path d="M233.922 257.288s.658 1.617 2.043 1.441c1.384-.177 1.418-.983 1.418-.983l-1.557-2.249-1.904 1.791z" fill="#202220"/> - <path d="M233.922 257.288l-.057.026c.002.004.15.372.46.742.31.372.785.75 1.43.75.071 0 .144-.006.217-.015.704-.088 1.077-.34 1.269-.579a.858.858 0 0 0 .206-.464v-.02l-1.611-2.324-1.988 1.869.017.04.057-.025.043.048 1.851-1.74 1.517 2.188.05-.037-.061-.002-.004.027c-.027.137-.172.738-1.361.894-.07.01-.137.014-.202.014-.596 0-1.036-.35-1.334-.704a3.187 3.187 0 0 1-.334-.49c-.036-.066-.063-.122-.081-.16a1.236 1.236 0 0 1-.026-.06l-.058.022.043.048-.043-.048z" fill="#4b4139"/> - <path d="M234.117 257.605s.83 1.01 1.559.994c.725-.018 1.185-.293 1.185-.293l.034.116-.381.193-.658.134-.675-.09-.553-.332-.51-.722zM231.49 259.226s.64.658 1.229.685c.59.026 1.489-.475 1.489-.475l.112-.035-.155.14-.607.334-.735.21-.58-.105-.441-.271-.269-.342-.043-.14z" fill="#4b4139"/> - <path d="M237.61 254.606c.623-.087 1.92 1.687 1.92 2.564 0 .878-.38 2.196-1.02 2.16-.642-.035-2.095-1.335-2.424-2-.33-.668-.657-1.126-.414-1.478.24-.351 1.938-1.246 1.938-1.246zM231.155 254.765s-1.039-.806-1.454-.385c-.416.42-.278 1.825 0 2.106.276.282 1.522-.668 1.522-.668l-.068-1.053z" fill="#f8c83c" stroke="#977c2e" stroke-width=".213"/> - <path d="M231.015 255.746s-1.385.142-1.385.774c0 .633.658 1.3.796 1.44.137.14 1.384-.563 1.384-.563l-.795-1.651z" fill="#f8c83c" stroke="#977c2e" stroke-width=".213"/> - <path d="M231.57 256.904s-1.42.422-1.42.913c0 .489.622 1.405 1.071 1.405.452 0 .799-.88.97-1.054.175-.176-.622-1.264-.622-1.264zM232.264 252.796s-.277-.385-.866-.141c-.588.246-1.246.843-1.142 1.792.104.947.45 1.58.45 1.58l2.147-.739-.589-2.492z" fill="#f8c83c" stroke="#977c2e" stroke-width=".213"/> - <path d="M232.435 254.448s-1.834.597-1.903 1.298c-.07.704.415 1.407.9 1.545.485.142 2.042-1.369 2.042-1.369l-1.039-1.474z" fill="#f8c83c" stroke="#977c2e" stroke-width=".213"/> - <path d="M234.026 257.367s-1.8 1.191-2.043 1.191c-.242 0-.9-.948-.763-1.579.14-.632 1.351-1.088 1.836-1.265.485-.176.97 1.653.97 1.653zM235.604 250.833s-.57-.475-1.661-.395c-1.091.078-1.895 1.5-2.025 2.212-.13.71-.026 2.055.39 2.266.414.209 2.673-1.608 2.673-1.608l.624-2.475z" fill="#f8c83c" stroke="#977c2e" stroke-width=".213"/> - <path d="M233.398 256.227c-.753-.08-1.428-1.16-1.299-1.816.13-.66 1.61-1.794 2.39-1.66.777.13.621 2.081.621 2.081s-.96 1.474-1.712 1.396z" fill="#f8c83c" stroke="#977c2e" stroke-width=".213"/> - <path d="M235.793 256.063s-.38.88-1.142 1.266c-.762.385-1.211.068-1.662-.563-.45-.633.208-.914.555-1.23.345-.314 1.35-.562 1.35-.562l.9 1.089z" fill="#f8c83c" stroke="#977c2e" stroke-width=".213"/> - <path d="M234.58 253.747s-.848.683-.362 1.475c.484.791.865 1.07 1.47 1.175.607.107 1.003-.14 1.49-.72.484-.58 1.193-.842 1.125-1.563-.07-.72-.347-1.282-.78-1.493-.432-.21-1.748.02-2.942 1.126z" fill="#f8c83c" stroke="#977c2e" stroke-width=".213"/> - <path d="M236.994 250.358s-.875-.336-1.551.06c-.675.395-1.142 1.2-1.167 1.935-.027.739.131 1.772.131 1.772s.927-.264 1.524-.765c.597-.5.794-.636.71-.893-.05-.157-.296-.33-.296-.95 0-1.08.65-1.16.65-1.16z" fill="#202220"/> - <path d="M236.994 250.358s-1.011-.171-1.517.158c-.506.328-.935.817-1.117 1.475-.183.66-.052.83-.052.83s-.095-.573.084-1.121c.208-.629.724-1.255 1.228-1.403.614-.18 1.374.06 1.374.06z" fill="#4b4139"/> - <path d="M263.057 269.552s.731-.308 1.237-.585c.507-.278 1.598-.99 1.598-.99l.35 1.82-1.402 1.08-1.221.012-.738-.538.176-.8z" fill="#f8c83c" stroke="#977c2e" stroke-width=".213"/> - <path d="M261.1 269.735s.02.023.874.042c.85.022.933-.297 1.084-.223.15.073.39.982.39.982l-.311.57-1.228.695-1.036-.57-.084-1.432.312-.064zM270.823 269.15s-.244-.407-.73-.829l-1.732-1.51-.01 3.942 1.82-.045.866-1.219-.215-.34z" fill="#f8c83c" stroke="#977c2e" stroke-width=".213"/> - <path d="M261.1 269.735s-.27-.4-1.04-.315c-.765.084-1.577.71-1.659 1.241-.085.53 0 2.067.415 2.362.414.295.935.443 1.765.232.832-.211 5.068-2.825 5.068-2.825s-.498.105-1.08.234c-.58.126-1.121-.129-1.121-.129s-.581.654-1.245.76c-.667.106-.851-.316-.978-.63-.124-.316-.124-.93-.124-.93z" fill="#f8c83c" stroke="#977c2e" stroke-width=".213"/> - <path d="M263.929 271.1s-.624.238-.86.41c-.232.17-1.07.465-1.07.465l.32 1.285 1.803.461 1.13-.934.013-1.293-1.336-.394zM272.316 270.192s-.285-.265-.624-.646c-.335-.38-.75-.46-.869-.396-.117.068-.971 1.172-.971 1.172l-.066.832.999.54.7.13.923-.605-.092-1.027z" fill="#f8c83c" stroke="#977c2e" stroke-width=".213"/> - <path d="M266.123 269.558s-.805.367-1.195.697c-.39.33-.999.698-.999.843 0 .143.91 1.086.91 1.086l.92.075 2-1.398-.132-1.278-1.504-.025zM273.718 271.216s-.154-.316-.466-.606c-.312-.291-.7-.447-.936-.421-.232.025-1.012 1.186-1.012 1.186l-.097.327.72.837 1.279.31.881-.889-.37-.744z" fill="#f8c83c" stroke="#977c2e" stroke-width=".213"/> - <path d="M270.422 272.613l.909.156s-.027.239.235.45c.258.21.285.05.285.05s.13.871 1.09 1.607c0 0 1.117.37 1.687.054.573-.317.493.097.493.097l1.61-1.993s0-.397-.389-.422c0 0 .284-1.238-.754-1.502-1.036-.264-1.87.105-1.87.105s-.796 1.461-1.27 1.264a1.889 1.889 0 0 1-.572-.394c-.439-.476-.572-.71-.572-.71s-.336.104-.725-.16c-.392-.263-.726-.896-.726-.896s-.598-.106-.805-.315c-.208-.21-.424-.627-.424-.627l-1.486 1.068s-.047.472-.913 1.104c-.865.635-1.384.635-1.384.635s-.241 1.297-1.212 1.085c-.969-.21-1.627-1.297-1.627-1.297s-.693-.105-1.143.49c-.45.598-.66.81-.66 1.406 0 .597.382 1.439.694 1.72.313.28 1.283 1.053 2.423.456 1.144-.596.763-1.58.763-1.58s-.035.071.657-.386c.692-.458 1.453-1.159 1.974-1.369" fill="#f8c83c" stroke="#977c2e" stroke-width=".213" stroke-linecap="round" stroke-linejoin="round"/> - <path d="M268.647 264.67l.008 2.547s.31 2.265-.184 2.976c-.492.712-2.285.553-2.542-.053-.26-.605-.13-2.58-.13-2.58l2.848-2.89z" fill="#f8c83c" stroke="#977c2e" stroke-width=".213"/> - <path d="M266.635 272.392s-.381.675.798.772c.334.03.558-.09.708-.262.304-.352.238-.644.238-.644s-.104.941.956.976c1.179.043 1.074-1.088 1.074-1.088" fill="#f8c83c" stroke="#977c2e" stroke-width=".213" stroke-linecap="round" stroke-linejoin="round"/> - <path d="M256.944 274.483s-.656-1.109.123-1.511c.778-.404 1.194.018 1.66.035.467.019.315-1.198.212-1.444-.105-.246-.35-.768-.54-.908-.19-.141-2.765.116-2.746 1.845.02 1.66 1.29 1.983 1.29 1.983zM260.979 278.61s-.83-1.177-.38-1.88c.452-.702.794-.28 1.022-.3.223-.015.327-.525-.053-1.297-.383-.774-.848-1.16-1.126-1.196-.277-.035-1.828 1.106-1.521 2.564.366 1.763 2.058 2.108 2.058 2.108zM275.504 277.189s2.8 1.175 2.994-1.651c.104-1.51-1.247-2.555-1.679-2.545-.295.006-.519.174-1.02.771-.503.598-.885 1.035-.678 1.266.209.227 1.039-.246 1.403.649.624 1.529-1.02 1.51-1.02 1.51z" fill="#202220"/> - <path d="M260.979 278.61s-2.181-.482-2.162-2.614c.01-1.422 1.594-2.055 1.594-2.055s-1.465.778-1.49 2.028c-.046 2.17 2.058 2.64 2.058 2.64zM256.974 274.483s-1.258-.278-1.395-2.089c-.137-1.81 2.85-1.739 2.85-1.739s-2.864.137-2.714 1.872c.155 1.79 1.26 1.956 1.26 1.956zM275.504 277.189s.562.272 1.205.246c.64-.025 1.41-.194 1.678-1.264.267-1.07.156-1.578-.55-2.522-.495-.658-.949-.645-.949-.645s.483.095.864.69c.382.598.935 1.266.555 2.468-.383 1.203-1.54 1.228-1.964 1.193-.423-.035-.839-.166-.839-.166z" fill="#4b4139"/> - <path d="M242.102 217.888l-.527-.108.38-.881 1.474-.538 1.47-.06 1.548-.062.712.491.794 1.835-2.934 1.748-.475.159-.182-.723-.449-1.184z" fill="#904720"/> - <path d="M269.537 260.384l-.182-4.4-11.867 3.661 4.699 4.398z" fill="#202020"/> - <path d="M247.563 252.723l-.998-.783s-.716-.506-1.115-.628c-.397-.124-.908-.026-.908-.026l-.163.234.155.407 1.082 1.262s1.766.914 1.809.932c.043.017.639.615.639.615l.416.176-.917-2.19zM247.283 254.588l.676.089.677.775.42.828.552 1.096.176.636-1.324-.29-3.844-1.19.332-.915.673-.617.556-.244.784-.119z" fill="#d2a567"/> - <path d="M249.782 257.751l.634-.053.43-.366-.202-1.438.234-4.609-3.122-3.692-.638 2.128.918 3.731.676 2.237z" fill="#d2a567"/> - <path d="M247.545 249.322s-.206.385.052 1.595c.26 1.211.71 3.918 1.783 5.762 1.073 1.841-1.037-1.457-1.037-1.457s-1.662-3.742-1.403-6.569c.26-2.827.605.669.605.669z" fill="#ab6d29"/> - <path d="M249.812 251.656s-.674.88-.778 1.529c-.104.648.052 1.755.052 1.755s-.104-.84.588-1.037c.692-.191.605 1.9.64 2.09.034.194.399-3.74.399-3.74l-.9-.597zM250.16 259.379l-3.515-.807c-1.817-.809-2.778-1.442-2.743-1.88.034-.438 3.228.106 3.695.212.466.105 1.896.824 1.896.824h.821l1.49-.658.207 1.589-1.851.72zM244.29 258.714s.867.614.45.878c-.415.263-1.523.298-1.869.211-.346-.089 3.392.824 3.392.824s.727-.615.675-.65a279.75 279.75 0 0 0-2.648-1.263z" fill="#ab6d29"/> - <path d="M243.364 257.788c.13-.211.234.492 1.445.65 1.213.157 1.766-.211 1.766-.211l.536.352.64.14-.588.878-2.215-.652-1.194-.665-.39-.492z" fill="#d2a567"/> - <path d="M251.257 256.197l.624.894.387-1.946-.026-2.03-1.271-.84z" fill="#ab6d29"/> - <path d="M247.752 252.912l-1.038-1.74-1.35-2.474.83-1.423 1.013 1.473s-.286 1.002-.104 1.95c.182.95.65 2.214.65 2.214z" fill="#4d2a15"/> - <path d="M240.64 259.232s.449-.748 1.506-.833c1.055-.09 1.903.141 1.903.141l2.146 1.12.433.705-4.05-.543-1.939-.59z" fill="#d2a567"/> - <path d="M251.178 252.07s.077 2.422.154 3.187c.078.763.547 1.5.47 1.816-.08.317-.235.475-.755.659-.52.184-1.557 0-1.557 0s1.012-.133 1.064-.342c.051-.211-.312-1.132-.365-1.976-.05-.843.053-1.765-.232-1.765-.286 0-.597.37-.65.475-.052.106.285-3.003.623-3.346.339-.34 1.248 1.293 1.248 1.293z" fill="#8f4620"/> - <path d="M243.772 258.434s-.414-.387-.406-.65c.009-.265.485 1.271 2.708 1.186 2.225-.088 2.095-.126 2.095-.126h1.039s-.234.969-.416 1.055c-.181.088-1.73 1.133-1.756 1.161l-.556.305.045-.157-.104.008-.182-1.712-1.92-.738-.547-.332z" fill="#ab6d29"/> - <path d="M247.752 252.912s-2.57-2.662-3.426-4.425c-.858-1.767-.338-4.19-.338-4.19l2.415 3.161s-.312.607-.21 1.607c.105 1.002 1.56 3.846 1.56 3.846z" fill="#8f4620"/> - <path d="M246.107 262.603c-.086-.184-.183-.769.311-1.387 1.527-1.905 5.392-3.274 5.392-3.274l.004 2.33-4.96 2.384-.748-.053z" fill="#ab6d29"/> - <path d="M246.4 260.842c.215-.155 1.08-.796 1.11-1.073.035-.314-.588-.368-1.713-.596a8.025 8.025 0 0 1-2.042-.736s1.385 1.07 1.921 1.281c.536.212.486.422.416.563-.07.14.276.582.307.56zM253.037 261.384s-.715-1.067-.944-1.72c-.227-.654-.239-1.706-.282-1.718-.04-.012-.477.348-.797.496-.322.146-1.465.516-1.527.559-.063.041 1.577-.034 1.569.534-.012.571-2.36.814-2.369.855-.01.04 1.89-.42 1.776.04-.115.465-.955.509-1.973.929-1.018.422-1.464.635-1.841.854-.377.216-.558.383-.558.383s.454.256 1.176.23c.72-.027 2.316-.422 2.316-.422l3.065-1.166.389.146z" fill="#8f4620"/> - <path d="M253.037 261.384s-.855-.299-1.464-3.869c-.61-3.566-.431-4.528-.431-4.528l1.444 1.008 1.294 2.352-.843 5.037z" fill="#ab6d29"/> - <path d="M253.5 255.447s-.674 2.001-.674 3.162c0 1.157-.12 1.945.212 2.77.331.82 1.467 1.843 1.467 1.843l.518-.542.233-1.618.131-2.688-1.887-2.927z" fill="#8f4620"/> - <path d="M255.53 258.166s.327 5.038-.948 5.176c-.61.067-1.533-1.897-1.544-1.961-.014-.066 1.11 1.828 1.53 1.657.806-.329.559-5.24.559-5.24l.403.368zM253.037 261.384s-.216-.094-.567-.665c-.35-.572-.045.505-2.73 1.454-2.688.948-3.649.422-3.649.422s.896.698 3.608-.094c2.714-.789 2.467-.96 2.83-1.039.365-.078.508-.078.508-.078z" fill="#202020"/> - <path d="M248.039 254.966s.423.362.908 1.344c.485.981.83 1.669.83 1.669l.122-.125s-.33-.946-.779-1.685c-.45-.739-1.749-2.529-1.749-2.529l.668 1.326z" fill="#ab6d29"/> - <path d="M246.405 261.22s.277-.943 0-1.118c-.277-.175-.538.015-2.37-.211a27.245 27.245 0 0 1-3.394-.66s1.245.765 2.439 1.08c1.196.316 2.753.668 2.753.668l.415.07.157.17z" fill="#8f4620"/> - <path d="M246.405 261.22s.038-.223-.17-.449c-.207-.224-.584.107-2.804-.514-2.22-.616-2.79-1.025-2.79-1.025s.791.698 2.751 1.199c1.961.5 3.013.788 3.013.788z" fill="#202020"/> - <path d="M247.405 254.582s-1.68.091-2.22.524c-.538.436-1.28 1.588-1.28 1.588l1.091.126s-.136-1.014.384-1.521c.52-.507 1.305-.553 2.025-.717z" fill="#ab6d29"/> - <path d="M244.223 251.388s.675.894 1.376 1.21c.702.317 1.402.58 1.74.922.337.342.702 1.448.702 1.448s-2.416-1.078-2.882-1.607c-.468-.526-.936-1.973-.936-1.973z" fill="#8f4620"/> - <path d="M246.564 251.943s-.22-.361-.883-.665c-.661-.303-1.149-.255-1.337-.118-.188.138-.123.225-.123.225l.883 1.33.493-.119s-1.312-.827-1.006-1.086c.642-.548 1.973.432 1.973.432z" fill="#8f4620"/> - <path d="M253.073 248.901l13.516-6.98 6.397 8.904-11.682 3.13-6.182.528-3.011-2.184z" fill="#202020"/> - <path d="M271.195 252.717l16.849 14.592-1.867 1.283-3.948-1.125-8.205-8.11-3.037-3.057z" fill="#4d2a15"/> - <path d="M292.772 264.42s-4.185-3.3-9.623-7.338c-5.437-4.04-12.16-9.132-12.16-9.132l.311 4.355 13.908 12.783 4.588 2.211 2.32-.701 1.177-1.23-.521-.95z" fill="#4d2a15"/> - <path d="M271.146 254.1s4.853 5.477 8.543 8.27c3.685 2.791 7.217 5.846 7.943 5.424.727-.422.467-.894.467-.894l-17.057-13.908.103 1.108z" fill="#803f1d"/> - <path d="M283.062 268.101l-1.714 1.333-1.97-.805-10.362-10.59.52-1.95 1.45.211z" fill="#4d2a15"/> - <path d="M292.772 264.42s-1.27 2.995-3.97 2.294c-2.701-.704-17.571-14.83-17.571-14.83l-.035 1.474s15.07 13.802 17.978 14.364c2.908.563 5.29-1.961 4.985-2.247-.204-.19-1.387-1.055-1.387-1.055z" fill="#202020"/> - <path d="M269.482 256.313s4.804 6.163 7.349 8.428c2.546 2.266 4.726 4.055 5.765 3.847 1.037-.212-.623-1.37-.623-1.37l-7.271-7.165-3.713-3.74s-1.453-.58-1.507 0z" fill="#803f1d"/> - <path d="M270.676 256.313s12.198 12.432 13.163 12.714c2.045.597 4.952-1.512 4.952-1.512l-1.073-.63-.14.384s-.52 1.266-3.15.703c-2.63-.56-13.335-12.08-13.335-12.08l-.417.42z" fill="#202020"/> - <path d="M275.272 268.21l-4.439-5.11-.985-1.685-.264-2.161 8.856 8.904-1.245.841-1.093-.366z" fill="#4d2a15"/> - <path d="M283.294 268.387s-1.075 1.581-2.53 1.265c-1.453-.315-2.283-1.369-2.283-1.369l-8.49-8.314-.208-1.267s9.314 9.856 10.98 10.29c1.214.317 2.117-1.16 2.117-1.16l.414.563z" fill="#202020"/> - <path d="M278.582 268.107s-.416 1.23-1.66 1.055c-1.249-.176-1.629-.668-1.629-.668l-5.2-6.18-.104-1.65s5.407 7.479 6.656 7.901c1.246.421 1.557-.844 1.557-.844l.38.386z" fill="#202020"/> - <path d="M273.023 251.9s5.037 4.32 5.454 4.53c.415.212 2.18.265 2.282.526.104.265-1.139 0-1.244.265-.103.263 2.544 2.425 2.96 2.476.414.053 2.544.053 2.493.315-.052.266-1.454 0-1.506.317-.052.315 2.286 2.16 2.7 2.213.417.053 3.115.053 3.115.315 0 .266-2.182-.052-2.128.422.05.474 3.687 2.738 3.53 3.056-.156.315-4.362-2.845-4.465-2.688-.105.158-.26 1.16-.521 1.318-.258.158 0-1.318-.208-1.949-.208-.633-2.648-2.476-2.907-2.265-.258.21-.05 1.316-.311 1.316-.26 0 .053-1.37-.208-1.844-.26-.473-2.544-2.37-2.855-2.37-.312 0-.104 1.002-.312 1.16-.21.157-.156-1.16-.468-1.582-.31-.42-5.608-5.214-5.4-5.531z" fill="#b07229"/> - <path d="M264.386 265.882s.04 1.909-.818 2.187c-.856.278-2.478-3.505-2.478-3.505l-.377-3.528 2.519 2.344 1.154 2.502zM271.14 264.913s.035-.559-.03-1.018c-.064-.46-.21-1.158-.21-1.158l-.165-1.965-.467-1.316-.378-.83-.546.039-1.324.939-.454 1.275.7 2.385.65 2.173.985.316 1.239-.84z" fill="#4d2a15"/> - <path d="M269.403 268.247c.297-.09-.277-2.703-.277-2.703l-1.556-3.865-.416-1.368-1.263-.477-.832.951.19 1.528s1.211 2.545 1.802 3.442c.588.894 1.834 2.651 2.352 2.492z" fill="#4d2a15"/> - <path d="M268.007 260.05c.452.314.97 1.35 1.09 2.052 0 0 1.04 2.844.901 3.126-.139.282-.763.317-.763.317s1.387 1.439 1.803 1.264c.414-.176.24-1.581.101-1.897-.137-.317-.588-.105-.76-.421-.173-.318-.694-2.212-.728-3.338-.034-1.121-.069-1.895.07-2.177.138-.28 1.178 2.353 1.178 3.76l.449.526s-.278-1.933-.45-2.53c-.173-.595-.553-1.615-.553-1.825 0-.211.208-.703.208-1.194s-.034-.807-.034-.807.551.384.76.352c.207-.036.519-.317.656-1.548.14-1.227-.137-4.802-.137-4.802l-5.4 7.122 1.609 2.02z" fill="#202020"/> - <path d="M268.007 259.434s-.208 1.914.502 3.88c.71 1.968.899 2.039 1.038 2.319.138.28.124 2.353-.14 2.615 0 0-1.381-3.528-1.848-5.267-.469-1.739-.589-2.407-.832-2.548-.242-.14-.643-.176-.643-.176l1.923-.823z" fill="#202020"/> - <path d="M267.495 269.625c.155-.032.06-.813.06-.813l-.224-1.843-1.896-3.893-2.079-1.87-1.09-1.685-.155 3.215s1.505 3.211 2.492 4.134c.986.92 2.617 2.824 2.892 2.755z" fill="#4d2a15"/> - <path d="M259.736 260.854s.325.862.325 1.426v1.088s.76 1.545 1.454 2.776c.693 1.226 1.35 2.493 1.937 2.212.59-.282.799-1.195.833-1.301.034-.104-.658 1.054-1.006.878-.345-.175-1.9-5.196-1.867-5.302.034-.106-.416-.316-.763-.668-.347-.352-.914-1.11-.914-1.11zM265.392 265.23s-1.076-1.753-1.422-2.527c-.345-.774-.934-1.372-1.107-1.372-.173 0-.398-1.572-.398-1.572s.571 1.046 1.297 1.396c.728.351 1.176.633 1.526.492 0 0 .207.81.207 1.617 0 .808-.103 1.966-.103 1.966z" fill="#202020"/> - <path d="M261.93 262.646s.362 1.104 1.072 2.158c.71 1.055 1.874 2.32 1.874 2.32s-1.286-1.265-1.96-2.249c-.675-.984-1.125-2.267-1.125-2.267l.139.038z" fill="#5c3a1d"/> - <path d="M265.63 261.335s.342-.955.64-1.002c.296-.044.921-.232.921-.232s-.535-.132-.964-.633c-.45-.531-.554-.492-1.043-1.061 0 0 .277 1.061.361 1.561.085.501.085 1.367.085 1.367zM265.288 261.646s1.54 3.3 1.937 4.407c.396 1.107.329 2.76.329 2.76s-.19-1.177-.536-2.144c-.348-.966-1.75-3.652-1.868-3.968-.124-.317.138-1.055.138-1.055z" fill="#202020"/> - <path d="M267.385 259.5l.364-4.849-.364-1.711-2.182-4.846s-.104.712-.65.684c-.544-.028-1.998-.79-2.494-1.45 0 0 .288 1.134.184 2.214-.105 1.08-.285 1.659-.285 1.659l4.205 7.902 1.222.397z" fill="#4d2a15"/> - <path d="M259.022 262.682s.657.792 1.038.687c.38-.105.241-1.617-.242-2.458-.486-.843-5.61-7.692-6.37-8.114-.762-.42 5.575 9.885 5.575 9.885z" fill="#8b441f"/> - <path d="M262.521 259.854c.103.317.472 2.5-.414 2.705-1.222.281-6.853-7.496-7.723-8.563 0 0-3.534-2.21-3.603-2.773-.07-.563 3.81.764 3.81.764l7.547 7.217s.277.333.383.65z" fill="#8b441f" stroke="#5c3a1d" stroke-width=".043"/> - <path d="M259.022 262.682s-.623-1.105-.678-1.894c-.05-.79-.31-1.212-.36-1.477-.053-.262-4.155-6.213-4.57-6.585-.415-.367-1.817-1.158-1.817-1.158s.162.948.162 1.37c0 .421.046.54.046.54s1.298 2.465 3.167 4.624c1.868 2.158 4.05 4.58 4.05 4.58z" fill="#202020"/> - <path d="M265.288 261.646c.553-.316.31-2.212.104-2.81-.21-.597-3.566-7.582-3.566-7.582l-1.007.384-1.902-1.492-1.07-1.16s.376 1.67.343 2.478c-.035.807-.07 1.298-.07 1.298l2.665 4.671 4.503 4.214zM269.061 257.434l.799-1.053-.416-3.477-2.215-7.584s-.555.14-1.11-.21c-.552-.354-1.124-1.021-1.124-1.021l.538 4.53 2.286 6.357.137 1.898 1.105.56z" fill="#4d2a15"/> - <path d="M262.137 259.208s-2.23-2.424-2.96-3.635c-.728-1.212-1.35-2.371-1.35-2.371s-.621.264-1.402-.051c-.78-.318-1.815-1.423-1.815-1.423s-.624 1.21 2.596 4.477c3.685 3.739 4.93 3.003 4.93 3.003z" fill="#202020"/> - <path d="M267.513 260.025c.94-.377.91-4.32.028-6.981-.886-2.661-2.339-4.95-2.339-4.95s1.82 4.266 2.207 6.005c.39 1.739 0 2.975-.312 2.87-.311-.106-.311-1.026-1.038-2.714-.725-1.684-1.218-2.106-1.218-2.106s2.568 7.032 1.84 6.9c-.725-.13-4.31-7.927-4.464-8.139-.158-.211-.26.29-.26.29s3.194 9.771 5.556 8.825z" fill="#8b441f"/> - <path d="M269.598 241.032l1.577 3.35.498 3.541.124 2.986s.103 5.892-.622 6.033c-.727.14-1.074-.563-1.107-.704-.036-.14-1.352-6.638-1.352-6.638l-1.383-6.778.49-.474.166-1 1.072-.071.537-.245z" fill="#4d2a15"/> - <path d="M265.288 261.646c.627-.086 0-1.684 0-1.684s-.52.772-.936.246c-.416-.527-1.075-2.477-1.075-2.477l-.415-1.176s-.45 1.299-1.036 1.299c-.59 0-3.636-5.163-3.636-5.163l-.365.51s4.293 8.885 7.463 8.445z" fill="#8b441f"/> - <path d="M263.277 257.733s.52-1.264.312-2.422c-.208-1.16-1.763-4.055-1.763-4.055s-.469.106-1.091-.106c-.623-.212-1.818-1.002-1.818-1.002s.83 2.16 1.764 3.741c.937 1.58 2.596 3.844 2.596 3.844zM265.77 255.941s-.39-2.742-1.634-5.27c-1.248-2.529-2.08-3.346-2.08-3.346s.105.555.08 1.582c-.025 1.026 0 1.237 0 1.237s1.141.422 2 1.95c.855 1.528 1.634 3.847 1.634 3.847zM269.165 251.254s-.173-2.951-.64-4.64c-.468-1.683-.96-3.922-.96-3.922s.058-.227.257-.343c.117-.073.287-.107.522-.026.623.21.882 1.764.882 1.764s-.077-2.396-.13-2.5a11.21 11.21 0 0 0-.209-.397s-.206.105-.493.08c-.285-.028-.622-.08-.622-.08s.195.737-.117 1.08c-.227.25-.444-.224-.57-.288-.048-.026-.118.34-.118.34s.233.843.286 1.582c.051.738-.077 1.343-.077 1.343s.458 1.763.95 2.846c.496 1.077 1.039 3.16 1.039 3.16zM271.798 250.912s.519-4.24-.44-6.952c-.963-2.715-1.768-3.425-1.768-3.425l-.44.527s1.446 2.304 1.869 4.45c.444 2.239.779 5.4.779 5.4zM267.537 253.046s-.47-3.318-1.067-5.451c-.597-2.136-.765-2.898-.765-2.898l-.907-.843s.533 2.264.479 2.925c-.051.656-.105 1.105-.105 1.105s.443 1.133 1.04 2.078c.597.95 1.325 3.084 1.325 3.084z" fill="#202020"/> - <path d="M269.756 258.312c.847.025.104-4.774-.242-6.003-.347-1.229-2.323-7-2.323-7s2.376 8.206 2.183 8.617c-.28.609-1.21-2.494-1.382-2.459-.173.033 1.764 5.549 1.07 5.62-.69.07-1.036-1.162-1.036-1.162l.068 1.196s.45 1.16 1.662 1.191z" fill="#904720"/> - <path d="M270.792 255.886c.578 0-.162-4.528-.575-6.532-.414-2.002-1.571-6.005-1.571-6.005s1.174 2.775 1.834 5.97c.656 3.194 1.104 7.305.484 7.376-.622.07-.936-.599-.936-.599l-.102-.738s.277.529.866.529z" fill="#904720"/> - <path d="M262.996 261.207c.09.323.072 1.877-.752 1.765-.824-.111-2.331-1.502-2.641-2.417 0 0 1.79 1.981 2.407 1.97.616-.015.614-2.046.511-2.573-.105-.525.476 1.255.476 1.255z" fill="#312317"/> - <path d="M267.306 239.636s1.066.683 1.922.183c.857-.5 1.428-1.712 1.402-2.37-.028-.658-.052-1.239-.573-1.923-.518-.685.83.578.807 1.844-.026 1.265.077 3.449-1.949 3.924-2.025.475-1.142-.105-1.142-.105l-.467-1.553z" fill="#d2a567"/> - <path d="M265.703 235.766s1.278 2.094 1.77 3.978c.494 1.883.402 2.607.091 2.645-.312.041-.429-.222-.506-.696-.077-.476-1.355-5.927-1.355-5.927z" fill="#8f4620"/> - <path d="M243.284 238.338l8.462 12.276 10.596-11.96-6.7-6.901z" fill="#1e2121"/> - <path d="M253.982 230.804l-.491 1.924 1.037 3.266 1.766 1.818 2.049 1.365.468-1.527.494-1.788.517-.185 1.298.501.859-1.237 1.375-2.477-.286-.96-.328-.683-2.144-3.735-.722 1.412-.673.41-1.248-.71-1.506 1.973-1.84-.855z" fill="#4d2a15"/> - <path d="M258.346 239.185s.367-.261.521-1.236c.158-.975.183-3.951-.077-5.138-.26-1.183-1.04-3.528-1.195-3.344-.155.185 1.222 2.582 1.014 5.505-.208 2.924-.104 3.741-.729 4.03-.624.289.466.183.466.183z" fill="#5c3818"/> - <path d="M258.84 234.26s1.401 2.001 2.078 1.29c.673-.71.337-3.267-.103-4.267-.444-1.002-.91-2.45-.91-2.45l.417-.421s.465 1.685.725 2.74c.26 1.053 1.038 4.16.103 4.715-.934.552-2.285-1.134-2.285-1.134l-.026-.473z" fill="#5c3818"/> - <path d="M254.31 235.638s.468-.684 1.109-.755c.64-.07.763.21.763.21l.57 1.65.952 1.705.847.841-.501.475-.674.123s-2.011-1.053-2.043-1.124c-.035-.07-.555-.737-.555-.737l-.467-2.388z" fill="#8f4620"/> - <path d="M257.639 253.07c-.66.343-2.18-.415-3.035-1.17-.858-.754-5.374-5.364-5.374-5.364l-.632-2.556 1.747.475 3.065-1.316.572-1.08 3.685-1.923 2.054-1.106 4.464-.08 1.064-2.186s1.498 2.59 1.748 3.653c.252 1.062.199 4.33-.19 4.538-.388.212-1.843-.975-2.05-1.053-.209-.078 1.09 4.584 0 4.767-1.093.184-2.91-1.738-2.91-1.738s.728 4.16-.128 4.188c-.858.027-3.073-1.043-4.016-2.063 0 0 1.053 3.433-.064 4.014z" fill="#d2a567"/> - <path d="M256.761 247.67s.72 1.055.943 1.387c.225.332-.039 2.305-.174 2.67-.278.755-1.298-.895-1.853-2.354 0 0-1.625-2.704-1.73-3.055-.103-.352 2.814 1.352 2.814 1.352zM265.459 237.363s1.575 6.497.814 6.724c-.763.228-2.927-2.055-3.168-2.388-.244-.334-3.255-5.127-3.255-5.127l-.64-.65.19-.334 1.28.49 4.779 1.284z" fill="#8f4620"/> - <path d="M254.31 249.846c-.35.226-1.02-.843-1.332-1.124-.312-.28-1.367-1.58-2.406-2.634-1.037-1.052-1.8-1.826-1.8-2.037 0-.211-.623-.878-.623-.878l.554-.7.728-.107s4.293 3.423 4.587 3.966c.293.548.485 3.39.293 3.514zM260.772 249.9c-.203.16-3.047-1.898-4.242-3.6-1.195-1.704-2.44-3.196-2.736-3.987a58.633 58.633 0 0 1-.536-1.509l.866.191s6.975 8.64 6.648 8.905zM261.79 246.896c-.159.194-1.402-.737-2.165-1.739-.762-1-.361-2.246-.361-2.246s2.68 3.793 2.526 3.985zM263.38 246.512c-.386.183-2.017-1.783-3.374-4.003-1.004-1.642-1.254-1.888-1.47-2.018-.373-.227-1.075-.334-1.075-.334l-.14-.211.728-.177.538-.63.847-1.09 3.377 6.814s.829 1.528.57 1.648z" fill="#8f4620"/> - <path d="M254.61 251.9c.026.247-.014.497-.935.405-.92-.092-5.738-2.661-7.907-6.203-2.167-3.544-2.453-4.017-2.453-4.017l.962-1.093 7.646 8.717 2.687 2.19z" fill="#ab6d29"/> - <path d="M254.61 251.9c.103.405-.38.51-.865.387-.486-.123-2.408-.808-5.471-4.215-3.062-3.406-4.257-5.846-4.257-5.9 0-.051-.155-1.458-.155-1.458l.899-.386 5.263 8.024 4.586 3.548z" fill="#8f4620"/> - <path d="M259.723 248.456s-1.586-1.134-2.598-2.345c-1.01-1.212-3.064-4.029-3.012-4.584.052-.552.91-.552.91-.552l-.052-1.42.26-.478 1.48.606 1.868 2.295.685.93s1.211 2.914.976 3.177c-.232.265-1.946-1.633-2.154-1.396-.209.239 1.95 3.556 1.637 3.767zM256.761 247.67s.52.79.283 1.344c-.23.551-.439.842-1.219-.316-.78-1.16-1.72-2.458-1.807-2.365-.087.098.094 1.784-.295 1.784-.391 0-1.61-1.448-2.39-2.608-.778-1.159-1.972-3.081-1.972-3.081s.105-.396.053-1.712c-.053-1.318-.157-2.001-.157-2.001s.113.412.252.72c.137.307.345.526.345.526l2.856 3.365.803-.56 1.691 3.298 1.557 1.606zM245.936 242.77s2.207 3.871 4.258 6.033c2.051 2.158 4.415 3.098 4.415 3.098l-6.672-7.892-2-1.24zM262.862 245.061c-.115.08-1.48-1.397-2.336-2.714-.858-1.316-1.531-3.161-1.48-3.977.054-.818.286-2.791.286-2.791s2.286 2.37 2.724 3.476c.444 1.108 1.383 2.614 1.177 2.8-.207.184-1.746-1.037-1.928-.745-.182.29 1.791 3.792 1.557 3.951zM265.459 242.586c-.28.14-1.427-1.212-1.74-2.055-.312-.844-.416-2.502-.416-2.502l-1.012-2.397.104-2.66 1.012-.159 1.53 2.109s.599 1.237.573 3.029c-.027 1.79.26 4.476-.051 4.635zM247.466 249.096c-2.052-2.529-3.298-4.9-3.298-4.9l-.675-2.266.364.29s.597 2.609 3.763 5.715c3.169 3.11 3.87 3.372 3.87 3.372s.622 1.714.312 2.32c0 0-2.285-2.004-4.336-4.531z" fill="#4d2a15"/> - <path d="M250.885 252.723s-2.7-2.386-4.847-5.09c-2.146-2.704-3.497-5.303-3.497-5.303l.936-.88s1.782 4.162 3.063 5.814c1.281 1.65 4.345 5.459 4.345 5.459zM254.61 251.9s-3.133-3.107-4.726-4.863a17.482 17.482 0 0 1-2.474-3.53l1.315.509s.52 1.369 1.662 2.794c1.143 1.422 4.222 5.09 4.222 5.09zM254.018 246.329s-1.713-2.089-2.527-3.405c-.814-1.317-1.646-3.003-1.646-3.003s2.304 2.634 2.979 2.809c.674.177.657-.016.657-.016s-.277.947-.052 1.737c.225.792.59 1.878.59 1.878zM254.713 237.856s.278 1.473.087 2.335c-.19.86-.648.853-.648.853s.89 1.255 1.41 1.78c.518.528 1.818 1.44 1.818 1.44s-1.04-1.44-1.457-2.177c-.414-.737-1.02-1.562-.759-2.283.259-.722 1.663.493 2.059.826.4.333 2.045 2.282 2.045 2.282s-.609-2.02-1.421-2.756c-.814-.737-3.134-2.3-3.134-2.3z" fill="#202020"/> - <path d="M261.619 242.275s-.883-2.122-1.387-3.421c-.502-1.302-1.288-4.119-1.288-4.119s.06 1.29-.01 2.24c-.07.948-.406 2.396-.82 2.605-.416.212-.51.252-1.274.042-.765-.211.532.356.532.356s.78-.025 1.118-.408c.335-.384.413-1.2.78-1.082.362.12.75 1.358 1.051 1.897.296.54 1.298 1.89 1.298 1.89z" fill="#202020"/> - <path d="M258.93 234.711s1.648 1.845 2.36 1.014c.716-.829.3-3.173.3-3.173s1 .382 1.311.132c.313-.25.168-1.172.168-1.172s1.776 2.594 2.632 4.253c.858 1.66 1.298 4.655 1.298 4.655s-1.47-2.39-2.215-4.655c-.68-2.061-1.674-3.002-1.858-2.804-.18.197-.454 1.646-.233 2.397.222.75.83 1.725 1.247 2.791.415 1.067.881 2.74.881 2.74s-.844-1.278-1.335-1.976c-.493-.697-1.013-.975-1.351-1.302-.337-.331-.844-.937-1.335-1.134-.495-.197-1.469-.685-1.469-.303 0 .382-.194-.751-.194-.751l-.206-.712z" fill="#202020"/> - <path d="M253.415 242.61s.908 1.82 1.634 2.767c.728.948 1.715 2.292 1.715 2.292s-1.557-1.422-2.181-2.318c-.624-.896-1.168-2.74-1.168-2.74z" fill="#171717"/> - <path d="M264.136 243.086c-.234.093-.988-.183-1.067.093-.076.275.43 1.357.989 1.924.556.565.792.59.922.526.129-.068-.06-.567-.15-1.147-.091-.58-.02-1.198-.085-1.384-.064-.184-.609-.012-.609-.012z" fill="#8f4620"/> - <path d="M244.735 231.493l-.945.62-1.142 2.319.31 4.25s1.057 1.492 1.705 2.432c.65.94 2.797 3.362 3.35 3.222.554-.142 1.144-1.825 1.212-2.739.07-.915.14-2.599.14-2.599s.519.913 1.418 1.895c.9.985 1.662 1.897 2.078 1.828.416-.071 1.66-2.564 1.694-2.88.035-.315-3.115-8.043-3.115-8.043l-1.401-.726-5.304.421z" fill="#d2a567"/> - <path d="M251.806 237.923s.543 1.974.881 2.951c.338.973-.009 1.817.174 1.843.181.024 1.825-2.186 1.85-3.186.028-1 .028-2.029-.413-5.085-.444-3.055.142-3.944.142-3.944l-.947-.771-1.637 3.293-.05 4.9zM246.271 236.186s.364 2.976.571 3.95c.208.976.779 2.634 1.091 2.607.312-.024 1.298-2.633 1.324-3.529 0 0-.675-1.263-.65-4.45.027-3.188-.311-3.504-.311-3.504l-2.025 4.926z" fill="#ab6d29"/> - <path d="M242.004 230.036s-2.491 3.617-2.44 5.602c.052 1.984.38 1.545.953 3.334.57 1.795.883 4.446.916 4.674.035.227.398-.125.45-.387.052-.263.122-13.223.122-13.223z" fill="#45392d"/> - <path d="M241.992 230.463s-2.18 3.37-2.024 5.233c.155 1.859.449 1.809 1.072 3.477.623 1.669.675 4.388.675 4.388s.693-.21 1.471-.763c.78-.555 1.48-1.685 1.48-1.685s-.267-.606-.77-1.694c-.501-1.09-.554-1.511-.554-1.511l-.64-.914.19-3.23.57-2.336v-.879l-1.47-.086z" fill="#ab6d29"/> - <path d="M253.774 236.266s-1.09-.238-1.532-.5c-.44-.264-.622-.896-.622-.896l.26-.632 1.894 2.028z" fill="#dbad6c"/> - <path d="M242.437 230.829s-1.574 3.39-1.384 5.724c.19 2.337 1.471 5.321 1.593 5.357.12.035.068-.228.103-.756.035-.526-.068-6.97-.068-6.97l.761-2.266.034-1.177-1.039.088z" fill="#d2a567"/> - <path d="M246.247 231.584s.208 1.02.07 1.442c-.14.42-.97.947-1.316 1.615-.347.667-.83 2.212-.83 2.212s.38-.878.9-1.44c.518-.561.727-.947.83-.632.103.316.277 1.652.172 1.898-.102.244-.519.647-.794 1.58a3.339 3.339 0 0 0 .033 1.897s.182-1.134.348-1.722c.144-.52.587-.774.587-.774l.866 1.864s0-.88.14-1.547c.138-.667.863-1.606 1.097-1.606.234 0 .597-.132-.286-.58-.285-.184-.103-3.424.13-3.556.234-.13 1.454-.178 1.326-.625-.13-.447-1.189-1.653-1.293-1.759-.104-.105-1.98 1.733-1.98 1.733z" fill="#8f4620"/> - <path d="M253.598 238.478s-.756-.131-1.17-.211c-.415-.079-.468-.473-.468-.473l.132-.5.959.527.547.657z" fill="#dbad6c"/> - <path d="M243.559 238.862c-.02.348-.279.704-.446 1.19-.202.588-.32 1.287-.32 1.287s-.234-1.555-.311-2.649c-.078-1.092-.156-1.804-.285-1.87-.13-.065-.507.513-.507.513s0-1.225.233-1.817c.234-.592.429-1.435.222-1.567-.209-.132-.65.238-.844.553-.196.316-.559 1-.559 1s.233-1.04.48-1.46c.247-.422 1.43-1.78 1.65-2.306.22-.526.22-1.093.22-1.093l.819-.04s.853.667.861 1.246c.006.326-.818.692-.836.73-.053.106-.688-.053-.844 2.66-.156 2.715.538 2.492.467 3.623zM251.025 231.92s.182 1.474.026 1.922c-.156.448-.597.816-.908 1.396-.312.58-.286 1.977-.286 1.977s.156-.687.416-1.109c.259-.42.467-.79.571-.79.103 0 .415.528.623 1.293.208.763.624 2.053.624 2.053s-.18-1.002.077-1.002c.258 0 .362-.078.7.186.34.263.729.631.729.631s-.027-.368-.52-.895-.778-.5-.936-1.212c-.154-.711-.231-1.422-.154-1.712.076-.289.415.185.7.527.286.342 1.195 1.133 1.195 1.133s-.39-.606-.494-.79c-.104-.186-.027-1.58 0-2.371.026-.79-.027-1.527.258-1.737.288-.212.34-1.24.208-1.424-.128-.184-2.828 1.924-2.828 1.924z" fill="#8f4620"/> - <path d="M259.711 228.884s.07 1.667.295 2.634c.224.966.866 3.073.866 3.073s-.866-1.563-1.247-2.915c-.382-1.352-.728-2.809-1.074-2.914-.345-.106-.744.65-.744 1.21 0 .562.365 2.67.832 3.408.468.738-.745-.966-1.04-1.88-.292-.913-.588-1.72-.588-1.72s-.293.772-.173 1.633c.122.86.85 2.09.85 2.09s-.47-.404-.763-.756c-.294-.35-.554-.561-.554-.561s.05 1.177.363 1.685c.31.509.917 1.317.917 1.317s-.726-.544-1.003-.86c-.278-.316-.363-.543-.363-.543s.155 1.684.52 2.58c.362.895 1.158 2.372 1.158 2.372s-.953-.757-1.592-2.23c-.64-1.476-.953-5.873-.798-6.541 0 0 .49-.832.94-1.482.451-.65 1.02-3.753 1.02-3.753s.708 2.87 1.191 3.415c.486.544.987.738.987.738zM252.842 228.019s.366.77.6 1.112c.232.343.467.783.467.783s-.859.923-1.818 1.66c-.963.737-2.234 1.554-2.52 1.133-.285-.422-.271-.784-.271-.784s1.057-.632 1.888-1.474c.83-.844 1.117-1.286 1.3-1.732.181-.45.354-.698.354-.698zM244.101 230.865s.15 1.792.903 1.765c.753-.026 2.985-2.291 3.14-2.396.157-.106.306-.66.306-.844 0-.184-.136-.606-.136-.606s-2.402 2.463-3.258 2.543c-.626.057-.955-.462-.955-.462zM244.174 228.512s-.286 1.26-.246 1.616c.038.355.151.632.151.632s-1.722.604-2.007.079c-.287-.527-.098-1.278-.098-1.278s.798.004 1.24-.1c.441-.106.96-.949.96-.949zM260.43 225.983s.702 1.847 1.153 2.586c.452.738 1.16 2.264 1.16 2.264s-1.16-1.352-1.523-1.65a120.88 120.88 0 0 1-.953-.796s.169-.497.169-.882c0-.387-.006-1.522-.006-1.522z" fill="#1e2121"/> - <path d="M241.706 229.573s.64.08 1.033.057c.396-.02.655-.18.655-.18l.655-.977s-.334 1.157-.104 1.98c.229.822.705.948.892.948.187 0 1.1-.19 1.808-.928.706-.736 1.682-1.505 1.682-1.505s-.23 1.063.145 2.116c.375 1.054.975 1.033 1.786.38.81-.653 1.643-1.772 2.086-2.266.244-.271.554-.837.554-.837l.891-.71.768-4.341-.416-.57-1.124.536-1.346-.536-.395-.548-.768 1.307-.81.526-.41.068-.941.186-.415-.844-.25-.653-.457-.21-1.936 1.952-1.096-.056-1.101 1.728-.79 1.094-.81 1.92.214.363z" fill="#dbad6c"/> - <path d="M251.105 225.178s.156 1.08-.389 2.898-1.298 3.108-1.298 3.108 1.947-1.186 2.883-3.318c.932-2.135.716-4.585.716-4.585l-1.912 1.898zM253.464 223.197s.235.316.027 1.949c-.209 1.633-.597 3.213-.597 3.213s.23.396.492.922c.259.527.91 1.45 1.376 1.292.468-.159 1.193-.712 1.687-1.793.493-1.08.935-2.133 1.116-2.291.182-.158.26.105.34.185.077.08.228 1 .694 1.396.467.395 1.077 1.014 1.363.83.285-.184.564-.724.513-.99-.052-.262-1.04-3.212-1.04-3.212l-1.244-3.187-.799-1.238-2.267.211-1.661 2.713z" fill="#8f4620"/> - <path d="M257.395 220.272s.64 1.37.678 2.845c.033 1.475-.296 3.02-.296 3.02s.138-1.843-.069-2.95c-.208-1.106-.537-1.827-.501-2.142.033-.316.188-.773.188-.773z" fill="#ab6d29"/> - <path d="M260.473 226.038s.129 1.273 0 1.877c-.13.607-1.014-.394-1.557-2.396-.547-2.002-.443-2.45-.858-3.424-.418-.976-.668-1.818-.668-1.818l1.135-.157 1.948 5.918zM254.92 229.756s2.166-1.228 2.44-4.927c.131-1.737-.986-4.556-.986-4.556s0 3.002-.805 4.938c-.805 1.937-1.468 3.228-1.468 3.228s.52-.225.78-.54c.26-.316.623-.858.623-.858s.117.555-.077 1.279c-.195.724-.507 1.436-.507 1.436zM253.012 223.277s-.069.817-.978 1.554c-.909.738-2.543 1.555-2.543 1.555s1.194-1.107 1.634-2.082c.443-.975.104-1.606.104-1.606s-.154.526-.674.922c-.519.396-1.272.473-1.272.473s.063-.5.53-1.026c.096-.107.079-.356.144-.56.255-.79.935-1.89.935-1.89s.52 1.16 1.039 1.66c.519.5 1.082 1 1.082 1z" fill="#4d2a15"/> - <path d="M259.784 218.906s.518 1.336.726 3.161c.208 1.827-.034 3.97-.034 3.97s-1.107-1.722-1.384-2.424c-.277-.703-.277-1.756-.52-2.283-.145-.316-.543-.633-.836-.836-.192-.133-.808-.104-.808-.104s.639-.307.693-.869c.05-.561 0-.86 0-.86s.414.21 1.09.299c.674.087 1.073-.054 1.073-.054zM254.932 226.702s1.183-1.651 1.492-3.688c.312-2.036-.052-2.74-.052-2.74s-.484-.07-.882-.456-1.02-1.387-1.02-1.387.173 1.054-.054 2.335c-.223 1.282-1.401 2.51-1.401 2.51s.625.217 1.178-.105c1.174-.685 1.09-1.984 1.09-1.984s.258.158.224 1.773c-.035 1.617-.575 3.742-.575 3.742z" fill="#1e2121"/> - <path d="M240.95 229.518c-.25-.035.78-1.634 1.48-2.74l1.688-2.66s.182.184.597.158c.415-.027 1.48-.5 1.922-1.318.441-.816.778-1.711.805-1.976.026-.262-.079 1.423.726 2.345.806.922.78.843 1.117.764 0 0-.026 1.16-.337 2.24-.312 1.08-.624 2.634-.624 2.634s.13-2.028-.208-2.609c-.336-.579-.519.053-.804.791-.285.737-.908 1.264-.908 1.264s.467-.895.778-1.844c.311-.947.157-.975.078-1-.078-.027-.233-.053-.57.342-.338.395-.676.5-.676.5s.415-.342.545-.817c.13-.473.52-1.158.753-1.422.233-.263.39-.58.39-.763 0-.185-.053-.58-.209-.58-.154 0-.363.238-1.115.948-.753.71-.884.763-1.014 1.027-.13.264-.233.605-.701 2.082-.467 1.474-.779 2.081-.855 2.213-.079.13-.416.35-.416.35s.26-.824.649-1.905c.389-1.079.909-2.502.779-2.74-.13-.236-.468-.21-.572 0-.103.212-.856 1.133-1.61 2.239-.752 1.107-.752 2.477-.934 2.53 0 0-.502-.017-.754-.053z" fill="#8f4620"/> - <path d="M260.528 217.712c-.015.127.07.917-.744 1.194-.814.277-1.8-.052-1.905-.144-.103-.093-.103-1.134-.103-1.134l2.752.084z" fill="#874f20"/> - <path d="M244.778 220.29s-.148.753-.593 1.685c-.446.933-1.184 1.71-1.093 1.828.09.119.507.554 1.155.541.65-.013.883-3.886.883-3.886l-.114-.14-.238-.028z" fill="#b27129"/> - <path d="M254.75 218.157s-.294 5.132-1.735 5.123c-1.44-.007-2.092-2.595-2.092-2.595s-.12 3.462-1.96 3.462c-.83 0-1.707-2.673-1.52-3.158 0 0-.341 1.843-1.209 2.525-1.721 1.355-2.819.693-2.877.482-.06-.21 1.453-1.654 1.66-3.673 0 0 .267.09.683-.51.415-.603.653-1.264 1.068-1.145.416.12 2.493-.843 2.493-.843l1.088-1.379s.128.447.929-.095a2.92 2.92 0 0 0 1.069-1.355l2.135 1.806.268 1.355z" fill="#dbad6c"/> - <path d="M249.13 213.28s1.292 1.956 2.155 3.044c.05.063.474-.41.474-.41.285.391.443.731.356.936-.337.791-1.038 1.87-.468 3.003 0 0-.18-.632.132-1.448.311-.817.544-1.108.727-1.08.181.026.494 4.687.805 4.661.31-.027.727-2.107.727-3.581 0-1.477.294-.265.433.026.139.289 1.41 2.37 2.5 2.054 1.09-.316.936-2.24.908-2.66-.023-.422-.777-2.976-.777-2.976l-4.883-3.073s-.142.385-.402 1.255c-.26.87-2.687.25-2.687.25z" fill="#b27129"/> - <path d="M256.06 212.823s.285.264.755 1.476c.466 1.211.518 5.136-.104 5.109-.625-.026-1.872-.737-2.078-1.264-.209-.527.077-2.475-.337-3.003-.416-.527-.91-1.843-.936-2.212-.027-.368.079-1.554.079-1.554l1.089-.396 1.532 1.844z" fill="#8f4620"/> - <path d="M255.713 211.604l2.077 3.09 1.836 2.653s.924.306.9.368c-.025.062-1.065 1.194-2.506.39-.716-.4-.35-1.647-1.258-3.648-.91-2.002-2.545-2.87-2.545-2.87l.572-.554.924.571z" fill="#4d2a15"/> - <path d="M254.567 209.916s1.856 1.226 2.513 2.56c.658 1.335 1.04 2.144 1.837 3.443.794 1.3 1.646 1.703 1.609 1.79-.034.09-.57.212-.97-.087-.399-.298-.812-.65-1.142-1.247-.33-.597-1.489-2.773-1.922-3.336-.433-.562-1.816-1.615-1.852-1.51-.033.106.433.422 1.23 1.704.796 1.281.986 2.44.934 2.458-.052.018-.225-.475-.918-1.633-.692-1.16-2.197-2.652-2.284-2.441-.087.21.743 1.58 1.16 2.37.414.79 1.108 2.635 1.038 2.635-.069 0-.554-1.037-1.386-2.32-.83-1.28-.986-1.122-1.333-1.543-.344-.423-1.085-1.395-1.085-1.395s.741.236 1.467-.239c.728-.474 1.104-1.21 1.104-1.21z" fill="#1e2121"/> - <path d="M249.843 213.335s1.195.276 1.842.196c.65-.078.87-.052.87-.052s.39.528.39 1.133c0 .606-.417 1.738-.598 1.765-.181.026-.154-1.028-.439-1.396-.287-.37-2.065-1.646-2.065-1.646z" fill="#8f4620"/> - <path d="M250.477 216.468s.386 1.296.09 3.1c-.298 1.808-1.336 3.674-1.603 3.674-.267 0-.179-2.048-.297-3.13a31.019 31.019 0 0 0-.037-.331c-.017-.15-.41 1.365-.424 1.234-.016-.138.346-1.919.332-2.033-.05-.43-.084-.68-.084-.68l1.34-1.593.683-.24z" fill="#b27129"/> - <path d="M248.203 217.815c-.363.449-.92.327-1.435.488-.483.15-.657.886-.657.886s.39-.289.572-.21c.18.079.397.062.033.956-.363.896-1.782 2.415-1.713 2.433.07.018 1.585-1.282 2.077-2.02.493-.737.45-1.176.554-1.44.103-.263.692-.579.822-.605.13-.027.417.026.545.553.13.526.338 2.028.442 2.08.104.053.467-1.37.623-2.08.156-.712.149-2.279.149-2.279s-.097-.039-.461-.119c-.363-.079-1.234-.703-1.234-.703s.171 1.46-.317 2.06z" fill="#8f4620"/> - <path d="M254.61 208.636s.492 1.225-.52 2.081c-.3.253-.59.421-1.126.449-.538.025-1.393-.435-1.393-.435l-3.104-1.292-1.635-.513-.805-.224.116-.895 2.428.105 2.402.92 1.052.344.895.157h.676l.558-.157s.258-.106.335-.25c.08-.145.12-.29.12-.29z" fill="#dbad6c"/> - <path d="M254.61 208.636c.102.211-.184.895-.417 1-.235.106-.65.29-1.585.08-.933-.21-1.894-.817-2.933-1.106-1.038-.29-1.817-.554-2.622-.528-.806.028-.416-.342-.416-.342s1.844-.21 3.454.395c1.611.607 2.303 1.018 3.117 1 1.218-.025 1.401-.499 1.401-.499z" fill="#ab6d29"/> - <path d="M246.119 207.66s.362.08.675.027c.312-.053.546-.238.546-.238s.052.422-.156.554c-.208.132-.83.079-.935.079-.105 0-.13-.421-.13-.421z" fill="#4d2a15"/> - <path d="M252.22 211.495s1.087 1.063.796 1.983l-2.094-.962-3.414-1.422-1.85-.552-.227-.29s.35-.33.519-.645c.168-.316.116-.619.116-.619l2.26.303 2.362.725 1.532 1.478z" fill="#dbad6c"/> - <path d="M249.898 213.018s1.947 2.516 1.493 3.345l-4.545-2.87-1.601 2.638-3.738-1.843s3.015-2.324 3.366-2.758c.35-.435.377-.593.377-.593l1.688.329 2.66.844.3.908z" fill="#dbad6c"/> - <path d="M248.843 209.3s1.592.387 2.615.913c1.02.526 2.45.645 2.45.645s-.575.606-1.69.637c-.33.01-1.125-.632-1.645-1-.519-.37-2.016-.808-2.016-.808l.286-.387z" fill="#ab6d29"/> - <path d="M246.04 208.447s1.143.237 1.844.553c.701.316.753.237.935.158.181-.08.207-.158.207-.158s.144.686-.402.686-.766-.185-1.466-.501c-.702-.316-1.17 0-1.17 0l.051-.738z" fill="#4d2a15"/> - <path d="M252.354 212.866s.815.51.657.614c-.154.106-.562.299-1.27.343-.709.044-1.048-.043-1.551-.273-.5-.228-.813-1.106-2.025-1.58-1.211-.474-1.42-.544-2.25-.756-.831-.21-1.021-.193-1.021-.193l.762-.316 2.613.527 2.233.65 1.35.65.502.334zM247.966 214.402l.52 2.054-.287 1.24-.7.447-.65-.264-.181-.368s.286-.474 0-.896c-.285-.42-1.61-.948-1.61-.948s.52-1.002 1.116-1.238c.597-.237.31-1.001.31-1.001l1.482.974z" fill="#ab6d29"/> - <path d="M245.418 210.215s.415.35 1.265.439c.36.038 1.034.159 1.727.377.234.073.803-.243.851-.23l-.493.296c.754.218 1.7.547 2.033.699.902.408 1.61 1.054 1.558 1.071-.028.01-.514-.281-1.558-.72a13.948 13.948 0 0 0-2.423-.756c-1.559-.306-3.116-.21-3.444-.316-.33-.104.138-.122.31-.298.174-.176.174-.563.174-.563z" fill="#4d2a15"/> - <path d="M251.233 215.853s.494.526-.026.71c-.519.185-1.934.152-2.609-.56 0 0-.169-.677-.429-.993-.259-.316-1.297-.975-1.895-1.343-.597-.37.207-.422.207-.422s2.13.817 2.91 1.238c.779.422 1.842 1.37 1.842 1.37z" fill="#ab6d29"/> - <path d="M251.263 215.901s-1.049-1.449-3.963-2.598c-.08-.03.992-.184.908-.214-.125-.048-1.405.025-1.538-.02-.22-.075-.446-.15-.685-.223-1.532-.466-1.644-.421-1.747-.632-.105-.21-.295.035-.45.298a10.53 10.53 0 0 1-.555.782c.034-.053 1.126-.308 1.99-.096.867.209.83.526.762.86-.07.333-1.125 1.616-1.004 1.651.122.034.727-1.213 1.523-1.036.797.176 1.057.614 1.057.614s-.018-.457-.173-.65c-.156-.194-1.04-1.019-.797-1.019.242 0 1.229.228 2.649.948 1.382.704 1.608.914 2.023 1.335z" fill="#4d2a15"/> - <path d="M246.509 213.622s2.234.632 2.13 3.003c-.104 2.37-1.836 1.931-1.992 1.071-.154-.861.208.412.831.298.681-.124.822-.806.78-1.72-.042-.878-.225-1.318-.762-1.827a9.58 9.58 0 0 0-.987-.825z" fill="#dbad6c"/> - <path d="M236.848 207.91s.234.18-.403 1.854c-.636 1.672-.98 2.268-1.946 3.332-1.806 1.988-2.597 2.001-2.402 2.845.195.843.896.618 1.05.645.157.026 3.402-4.755 3.402-4.755l.714-2.87-.168-.804-.247-.246z" fill="#6c3f18"/> - <path d="M244.9 204.491s.935 1.403.64 4.055c-.295 2.652-3.79 4.97-3.79 4.97l-5.106 3.53-2.134-.128s-.33.047-.64-.033c-.335-.088-.65-.436-.722-.436-.139 0-.4-.896-.4-.896l.677-.825 1.852-1.845 1.159-1.667s.52-.966.589-1.897c.07-.93-.173-1.405-.173-1.405l.433.667.242 1.405-.191 1.563 1.333-.895 1.766-.79s.485-.07.83-1.054c.346-.983.637-2.428.643-3.073.007-.646-.072-1.422-.072-1.422s.111-.007.222.06c.11.065.577.882.577 1.348 0 .468.299 2.188.299 2.188l.818-.831s.603-.757.766-1.151c.162-.396.388-1.019.382-1.438z" fill="#dbad6c"/> - <path d="M245.467 217.76s.35.29.22 1.251c-.13.963-.921 1.49-1.31 1.502l.038-1.343-1.129-.896-1.208-.368s.078-.066.22-.211c.144-.145 1.39-.658 1.39-.658l1.779.723z" fill="#904720"/> - <path d="M244.583 217.773s.35.341.909.197c.558-.144.793-1.042.493-1.396-.298-.356-.168.856-.531.988-.365.131-.753-.909-1.247-1.014-.494-.106-1.273.237-1.467.564-.195.331.793.068.793.068l.53.144.391.093.129.356z" fill="#ab6d29"/> - <path d="M237.208 214.091s.663.2 1.382.103c.719-.098 2.485-.834 2.485-.834s.813-.458 1.41-1.037c.596-.579 2.484-1.757 2.692-4.108.206-2.354-.278-3.723-.278-3.723s2.79 3.048.346 6.55c-1.591 2.282-2.976 2.95-2.976 2.95s2.7-.79 2.943-.141c.24.65-.126 1.66-.196 1.818 0 0 1.532.356 1.752 1.133.133.466-1.739-.541-3.153-.198-1.415.343-2.038 1.185-2.038 1.185s-.26-.409-1.519-.42c-1.26-.014-1.83.578-2.545.552-.714-.027-2.958-.506-3.392-1.12 0 0 .536-.669 1.485-1.752.65-1.249 1.601-.957 1.601-.957z" fill="#904720"/> - <path d="M243.01 207.776s1.091-1.07 1.454-1.86c.364-.79.433-1.423.433-1.423s.122.86-.518 1.825a10.319 10.319 0 0 1-1.35 1.634l-.019-.176z" fill="#ab6d29"/> - <path d="M242.712 205.387s.891 3.46-.061 4.881c-.953 1.423-5.095 3.264-5.095 3.264s3.14-1.7 4.126-3.659c.986-1.958.917-3.59.917-3.59l.113-.896z" fill="#904720"/> - <path d="M238.591 214.189s1.325-.028 2.078-.475c.753-.447 1.817-1.396 1.817-1.396s-.986.87-1.272.87c-.286 0-.52-.447-.39-.79 0 0-.233.658-.83 1.105-.597.448-1.403.686-1.403.686zM241.675 209.873s1.116-1.16 1.09-3.583c-.026-2.423-.935-1.975-.935-1.975s.754.553.598 2.397c-.156 1.844-.753 3.161-.753 3.161zM243.028 210.11s1.258-.303 1.7-1.04c.441-.737.43-2.146.43-2.146s-.131 1.29-.495 1.764c-.363.474-1.635 1.423-1.635 1.423zM242.297 217.693s.624-1.212 1.455-.895c.83.315.83.975.83.975s-.337-.527-.96-.554c-.624-.026-1.325.474-1.325.474zM239.938 215.511s1.843-.449 2.934-.79c1.09-.342 2.337-.87 2.337-.87s-.91 1.133-2.26 1.896c-1.35.764-2.466.817-2.466.817s2.545-1.106 2.752-1.553c0 0-2.44.658-3.297.5z" fill="#1e2121"/> - <path d="M236.988 212.665a2.112 2.151 67.762 0 1-2.423 3.485" fill="#fff"/> - <path d="M236.878 212.903a1.86 1.895 67.771 0 1-2.178 3.03" fill="#f16e16"/> - <path d="M236.056 213.927a.747.747 0 1 1-.728 1.13"/> - <path d="M236.16 214.877a.239.239 0 1 1-.471-.081.238.238 0 0 1 .275-.198c.13.022.216.148.195.28z" fill="#d5d3ca"/> - <path d="M237.457 211.354s1.23-1.21 1.506-2.81c.278-1.598.11-2.506.11-2.506l.67.697.258 1.214-.433 2.018 1.352-.614c.449-.614 1.159-3.354.916-5.04 0 0 .365.739-.12 3.038-.485 2.302-.88 2.574-2.611 3.521-.893.489-2.018 1.427-3.031 3.377-.452.868-1.671 2.24-1.868 2.44-.032.032.867-1.229 1.306-2.169.657-1.408 1.374-2.199 1.374-2.199l.571-.966z" fill="#ab6d29"/> - <path d="M236.884 212.323s.536-1.615.536-2.493c0-.878-.57-1.915-.57-1.915s.778-.105.848 1.808c.069 1.916-.347 2.021-.814 2.6z" fill="#904720"/> - <path d="M239.353 210.263s.57-1.422.533-2.37c-.04-.949-.817-1.858-.817-1.858s.96.185 1.038 1.911c.077 1.724-.222 1.739-.754 2.317z" fill="#4d2a15"/> - <path d="M233.684 216.749s-.443-.571-.392-1.019c.052-.447.017-.548 1.12-1.708 1.103-1.159 1.714-1.87 1.986-2.488.273-.62 1.168-2.31.455-3.618 0 0 .493 1.907-.61 3.42-1.105 1.514-1.74 2.304-2.649 2.977-.908.671-.999.986-.973 1.37.026.381.116.763.273.856.277.163.79.21.79.21z" fill="#ab6d29"/> - <path d="M244.382 220.51s.246.025.402-.264c.155-.29.155-.777-.234-1.264-.39-.487-.831-.777-1.377-.936-.545-.158-1.595-.263-1.595-.263s.357.616 1.063 1.014c.346.196.935-.052 1.312.316.377.37.429 1.396.429 1.396z" fill="#6c4119"/> - <path d="M244.382 220.51s1.226-.399 1.31-1.58c.052-.732-.104-.989-.104-.989s.182.382.676.527l.44-.171s-.726 2.292-2.322 2.212z" fill="#6c4119"/> - <path d="M235.824 220.284s.24.1.694.626c.455.527.669.699.669.699l2.973-.764.962-.949-.806-1.276h-2.129l-2.363 1.664z" fill="#bf802d"/> - <path d="M243.028 219.272l-.572-.772s-.122-.298-.554-.526c-.433-.228-2.233-.211-2.233-.211l-1.298.263s-.363.333-1.022.193c-.657-.14-2.111-.738-2.111-.738l-1.454-.632s-1.09-.456-1.333-.369c-.243.088-1.142 1.072-1.142 1.072s-.156.527.19.544c.346.018-.52.175-.52.175s-2.259 1.24-2.621 3.453c-.365 2.21 3.712 5.477 5.217 3.817 0 0-2.206-1.633-1.765-3.002.441-1.37 1.454-2.214 3.194-2.317 1.74-.105 1.843-.317 2.596-.844.753-.527 2.155-.842 3.194.237 1.037 1.08-3.947 2.109-3.947 2.109l.544.789c.002 0 6.156-2.108 5.637-3.241z" fill="#f9c83a" stroke="#8f4620" stroke-width=".293"/> - <path d="M231.527 224.52s-2.492-.606-2.286-2.897c.209-2.29 2.286-3.134 2.65-3.24.363-.106.285-1.265.7-1.395.416-.133 1.213 0 1.577.342.364.343 1.136.665 1.136.665s-4.413 1.964-4.452 4.496c-.027 1.686.675 2.03.675 2.03z" fill="#fcf3d8"/> - <path d="M243.016 219.028s-.302.184-.383.033c-.467-.869-1.558-1.1-2.441-1.086-1.125.017-1.888.436-2.65.436-.761 0-.553-.121-1.454-.158-.9-.035-2.82-1.457-3.254-1.316-.433.14-.606.675-.554.939.053.263-.781.28-.902.085-.122-.193.663-1.435 1.442-1.435 2.094 0 3.649 1.411 4.653 1.411 1.005 0 1.35-.58 2.7-.58 1.351 0 2.809.6 2.843 1.671z" fill="#fdeaaf"/> - <path d="M236.16 220.656s1-.198 1.751-.527c.754-.328 1.757-.592 1.757-.592s-.92.61-1.557.914c-.636.301-1.666.468-1.666.468l-.286-.263z" fill="#513625"/> - <path d="M232.63 225.837c-.181.07-1.056.035-2.449-.896-1.393-.93-1.756-2.51-1.756-2.51s-.32-1.512 1.124-3.047c1.446-1.537 1.683-1.095 1.76-1.023.066.062-.073.137-.073.137l-1.272 1.036-.631 1.062-.56.956.044 1.13.644 1.137 1.993 1.245 1.176.773z" fill="#f9c83a"/> - <path d="M231.868 217.163l-.08-.19v.207c.064-.004.072-.016.08-.017l-.08-.19v.207-.21l-.144.15c.052.05.112.06.144.06v-.21l-.144.15.144-.15h-.206c-.002.034.01.1.062.15l.144-.15h-.206.205l-.188-.087c-.005.015-.016.031-.017.087h.204l-.187-.087.163.074-.145-.105-.018.031.163.074-.145-.105.036.026-.034-.028-.002.002.036.027-.033-.029c-.01.013-.057.064-.112.13-.086.099-.198.234-.295.383-.094.152-.183.307-.188.503l.006.072c.027.2.163.36.311.43.15.075.308.091.459.092.332-.002.64-.097.65-.1a.212.212 0 0 0 .139-.262.207.207 0 0 0-.259-.141l-.009.003c-.05.015-.3.08-.522.079a.606.606 0 0 1-.271-.049c-.057-.033-.073-.048-.088-.118v-.006a.413.413 0 0 1 .062-.173 2.41 2.41 0 0 1 .27-.38c.046-.055.088-.103.121-.14l.041-.049.02-.024.016-.025.014-.03c.004-.014.012-.033.013-.074a.209.209 0 0 0-.21-.212c-.063.003-.073.014-.081.016a.211.211 0 0 0-.11.276.206.206 0 0 0 .271.112z" fill="#8b5122"/> - <path d="M236.104 219.303s-2.98.834-3.056.888c-.219.158.955-.025 1.876-.053a3.484 3.484 0 0 1 1.072.136s.358-.01.72-.151c1.143-.447 3.549-1.34 3.772-.288.186.879-3.322 1.65-3.322 1.65l-.03.347 2.82-.702 1.453-.764.468-.75-1.403-1h-2.05l-.948.263-1.372.424z" fill="#f9c83a"/> - <path d="M231.746 223.612c.22.619.719 1.52 1.28 1.808 0 0 .096.01.062.07-.035.061-.45.318-1.403.07-.952-.245-2.406-.632-3.289-3.3l.027.588.52 1.045.933.966 1.464.922 1.003.245.848-.22.381-.289-.874-.79-1.072-1.827c-.001 0-.044.254.12.712z" fill="#8f4620"/> - <path d="M241.675 250.114l-.045.967-.534-.053.095-1.211zM237.939 222.557l-.985-1.108-.641.096.975 1.389z" fill="#fcca3d"/> - <path d="M241.627 252.375c-.002 0-.596-.39-1.367-.746-.787-.362-1.892-.526-1.898-.528l-.036.25s.067.01.18.031c.342.063 1.1.222 1.652.477a11.41 11.41 0 0 1 1.334.728l.135-.212zM241.541 249.907c-.002 0-.544-.04-1.125-.04-.402 0-.818.019-1.102.086-.667.165-1.102.502-1.11.508l.15.201.016-.012c.082-.06.465-.319 1.003-.451.24-.059.651-.082 1.043-.079a17.727 17.727 0 0 1 1.108.04l.017-.253zM241.255 247.786c-.002.002-1.376.648-2.014 1.07-.63.418-1.293.962-1.294.963l.157.197s.163-.134.405-.32c.24-.188.56-.425.867-.63.302-.198.802-.465 1.22-.677.422-.213.764-.373.764-.373l-.105-.23zM239.932 245.603v.004c0 .048-.011.555-.257.946a6.88 6.88 0 0 1-.502.611c-.373.42-.873.96-1.281 1.394-.406.432-.72.758-.72.758l.179.178a165 165 0 0 0 1.153-1.222c.296-.32.603-.656.854-.938.252-.284.444-.513.527-.644.292-.47.295-1.012.296-1.082v-.004h-.249zM238.207 244.628l.01.045c.02.093.058.321.058.626 0 .312-.042.707-.186 1.117-.168.48-.498 1.169-.783 1.733-.144.283-.275.533-.371.717-.096.18-.156.289-.156.289l.216.125c.002-.004.975-1.775 1.328-2.78.157-.443.201-.866.201-1.201 0-.436-.074-.727-.076-.735l-.24.064zM236.537 244.427s.01.099.02.263c.013.167.024.395.024.648.002.468-.04 1.022-.177 1.403-.15.425-.355.982-.523 1.433l-.296.793.233.09s.518-1.377.821-2.231c.154-.435.19-1.006.19-1.488 0-.52-.044-.936-.044-.938l-.248.027zM235.25 244.421s-.001.424-.027.952c-.026.527-.076 1.157-.168 1.548-.193.824-.395 2.012-.395 2.012l.246.043s.05-.298.124-.695c.074-.395.174-.896.268-1.302.195-.844.2-2.552.201-2.556l-.248-.002zM233.861 244.647s.018.155.035.395c.017.242.034.561.034.886 0 .373-.024.751-.092 1.008-.202.772-.323 1.982-.324 1.985l.25.027c0-.002.028-.3.083-.696.055-.394.136-.884.233-1.25.078-.298.099-.691.099-1.074 0-.669-.069-1.308-.07-1.31l-.248.028zM232.77 244.793s.004.049.004.143c0 .297-.026 1.017-.232 1.759-.139.494-.302 1.078-.434 1.537-.128.46-.224.795-.224.795l.24.07s.38-1.343.657-2.336c.216-.774.24-1.515.24-1.825l-.001-.154-.25.01zM231.551 244.805l.015.149c.007.098.015.234.015.398.002.465-.064 1.141-.353 1.67-.244.445-.704.88-1.103 1.194-.2.159-.383.29-.516.378-.067.045-.121.08-.158.103l-.058.035.127.219c.006-.007 1.376-.813 1.927-1.81.322-.589.383-1.3.383-1.789 0-.344-.031-.576-.032-.58l-.247.033zM230.801 244.567s-.018.063-.054.168c-.107.319-.378 1.024-.763 1.5-.253.315-.671.648-1.023.893-.176.124-.336.225-.451.298-.116.072-.186.111-.186.112l.122.22c.006-.004 1.167-.665 1.731-1.363.56-.696.86-1.747.863-1.755l-.239-.073zM229.613 243.97l-.07.137a7.354 7.354 0 0 1-.3.52c-.123.193-.264.38-.378.48-.164.14-.486.346-.76.508a16.2 16.2 0 0 1-.51.29l.119.223c.002-.002.236-.126.516-.294.282-.168.605-.371.796-.536.2-.174.394-.474.547-.735.154-.26.262-.48.262-.48l-.222-.113zM229.034 243.226s-.075.089-.195.227c-.183.207-.467.52-.75.791a5.177 5.177 0 0 1-.409.357c-.125.097-.24.164-.304.184l.07.242c.161-.05.333-.175.524-.335.568-.483 1.252-1.299 1.253-1.302l-.19-.164zM228.747 242.727s-.069.056-.18.142c-.167.13-.431.323-.696.48-.26.16-.534.282-.668.278h-.005v.252h.006c.16-.002.334-.068.517-.157.548-.273 1.18-.799 1.183-.799l-.157-.196zM228.528 242.19c-.002 0-.277.16-.595.324-.16.081-.33.165-.48.23a1.503 1.503 0 0 1-.342.114l.024.25c.116-.013.255-.064.415-.131.474-.202 1.1-.569 1.103-.569l-.125-.218zM228.266 241.08l-.026.029a2.71 2.71 0 0 1-.43.372c-.206.148-.461.274-.693.274l.004.254c.36-.008.684-.203.927-.386.243-.188.402-.372.404-.376l-.186-.166zM228.357 239.338c-.002 0-.225.177-.472.412-.246.236-.513.516-.613.774a.434.434 0 0 1-.073.099l-.054.045-.016.01h-.002l.004.015v-.015h-.004l.004.015v-.015.252c.12-.005.189-.072.248-.131a.627.627 0 0 0 .125-.185c.06-.17.316-.456.553-.679.118-.113.233-.215.317-.285.084-.072.138-.113.138-.113l-.154-.2zM236.915 229.104s.562.003.916.003l.203-.002h.059l.018-.002h.01l.012-.002.019-.005.03-.014.03-.03.026-.075-.022-.073-.046-.038-.036-.014-.018-.002-.01.252.003-.099-.01.1h.006l.004-.1-.011.1.013-.122-.026.119.013.002.013-.12-.026.118.027-.124-.046.117.02.006.026-.123-.045.117.045-.117-.073.101.027.016.046-.117-.074.102-.028-.03.102-.072h-.125l.023.073.102-.073h-.124l.025-.076.05-.04.048.114-.014-.123-.034.01.048.113-.014-.124.01.084-.003-.084h-.006l.01.084-.003-.084h-.272l-.915-.002-.002.253zM236.945 228.354l.08.005c.177-.002.354-.072.534-.168.269-.144.547-.353.798-.524.125-.085.245-.162.348-.214a.631.631 0 0 1 .245-.08l-.004-.254c-.158.005-.31.08-.474.176-.247.145-.518.352-.778.52-.257.172-.509.295-.67.29l-.045-.002-.034.251zM236.842 227.153c.186-.025.381-.116.59-.233.311-.176.65-.416.958-.611.307-.197.597-.34.752-.339l-.004-.253c-.18.005-.366.084-.568.192-.301.164-.637.402-.952.604-.315.203-.616.368-.808.39l.032.25zM236.397 226.038c.3-.16.753-.51 1.225-.875.47-.363.955-.741 1.28-.94l-.129-.217c-.348.213-.832.592-1.302.956-.467.363-.927.713-1.188.851l.114.225zM235.556 224.764c.596-.421 2.057-1.467 2.604-1.814l-.132-.214c-.561.355-2.017 1.4-2.614 1.821l.142.207zM234.44 223.539c.394-.336.952-.71 1.466-1.04.516-.329.985-.615 1.22-.79l-.147-.203c-.215.16-.69.45-1.206.78-.517.332-1.08.709-1.492 1.059l.16.194zM233.563 222.783c0-.002.587-.428 1.227-.881.32-.226.654-.459.932-.646.276-.186.505-.331.59-.37l-.103-.23a6.187 6.187 0 0 0-.625.39 90.434 90.434 0 0 0-2.167 1.532l.146.205z" fill="#816c2a"/> - <path d="M235.568 220.308l.151.122c.341.278 1.199 1.017 1.967 1.98.77.964 1.443 2.152 1.44 3.312 0 .111-.006.223-.018.333-.173 1.51-.93 2.839-1.98 4.068-1.576 1.843-3.807 3.45-5.65 5.077-.924.813-1.75 1.633-2.35 2.5-.6.868-.974 1.787-.974 2.778l.003.135c.032.912.327 1.91.896 2.715.57.805 1.42 1.42 2.54 1.53a5.5 5.5 0 0 0 .563.027c1.44-.002 3.009-.46 4.505-.458 1.26.002 2.454.312 3.517 1.475 1.016 1.11 1.328 2.896 1.326 4.614 0 1.231-.157 2.424-.314 3.31a20.51 20.51 0 0 1-.313 1.458l.24.07c.002-.008.636-2.336.636-4.838-.002-1.748-.307-3.591-1.393-4.786-1.111-1.221-2.403-1.56-3.7-1.556-1.543 0-3.115.46-4.505.458-.182 0-.362-.008-.538-.025-1.041-.106-1.824-.667-2.361-1.424-.537-.76-.82-1.716-.85-2.58 0-.04-.003-.082-.003-.125 0-1.236.618-2.364 1.58-3.461 1.443-1.647 3.642-3.205 5.554-4.931 1.911-1.727 3.544-3.632 3.817-6.002.014-.12.02-.242.02-.362-.003-1.44-.926-2.834-1.835-3.878a13.78 13.78 0 0 0-1.823-1.736l-.148.2z" fill="#78732e"/> - <path d="M233.678 222.759l-.299-.258-.257.093.485.396zM234.483 223.52l-.224-.23-.118.066.186.244z" fill="#a8ac71"/> - <path d="M235.604 224.758l-.191-.244-.117.151.195.225zM236.446 226.013l-.14-.25-.225.04.293.316zM236.921 227.196l-.11-.343-.033.06-.02.26zM236.976 228.384l.013-.326-.15-.093.02.45zM236.927 229.146l.033-.37-.098-.065.006.482zM227.211 240.953s.026-.304.112-.567c.082-.264-.24.124-.24.124l-.04.364.168.079z" fill="#78732e"/> - <path d="M227.132 241.709l-.143.065.052.355.079-.112s.012-.199.012-.308z" fill="#fff"/> - <path d="M227.156 243.117l-.019-.347-.104-.04v.565z" fill="#78732e"/> - <path d="M227.248 243.903l-.033-.314-.11.017-.006.297zM227.461 245.037l-.065-.304-.071.073.058.303zM227.76 246.2l-.124-.408-.09.04.123.392z" fill="#fff"/> - <path d="M228.516 247.761l-.17-.254-.159-.026.205.31zM229.668 248.901s-.156-.092-.384-.277c-.226-.184-.09.172-.09.172l.324.172.15-.067zM237.488 249.486s-.182-.124-.312-.184c-.13-.059.07.013.182.27.11.258.13-.086.13-.086z" fill="#a8ac71"/> - <path d="M238.158 250.029s-.15-.19-.248-.256c-.097-.065-.063.197-.063.197l.2.086.111-.027z" fill="#fff"/> - <path d="M238.292 250.34c-.083-.112-.174.164-.174.164l.24.225s.02-.276-.066-.39zM238.329 251.418s.052-.23.039-.376c-.013-.144-.13.052-.13.052l.013.324h.078z" fill="#a8ac71"/> - <path d="M237.951 252.558l.091-.284-.117.003-.071.294zM226.047 210.897s.448-.092.11.415.226-.454.226-.454l-.181-.053-.155.092z" fill="#fff"/> - <path d="M235.696 219.991l.272.278s-.254-.067-.363-.08c-.11-.014.09-.198.09-.198z" fill="#f9c83a"/> - <path d="M235.964 220.272s-.383.052-.519.072c-.137.019.156-.152.156-.152l.363.08z" fill="#8f4620"/> - <path d="M240.743 255.277s.326-.035.471-.235c.145-.199-.092.313-.092.313l-.209.078-.17-.156z" fill="#977c2e"/> -</svg> diff --git a/img/flags/1x1/my.svg b/img/flags/1x1/my.svg deleted file mode 100644 index 3fb7ee0..0000000 --- a/img/flags/1x1/my.svg +++ /dev/null @@ -1,15 +0,0 @@ -<svg xmlns:xlink="http://www.w3.org/1999/xlink" xmlns="http://www.w3.org/2000/svg" width="512" height="512" viewBox="0 0 512 512"> - <path d="M0 .05h512v512H0z" fill="#cc0001"/> - <path d="M0 475.48h512v36.57H0z" fill="#fff" id="a"/> - <use xlink:href="#a" transform="translate(0 -73.143)" width="100%" height="100%"/> - <use xlink:href="#a" transform="translate(0 -146.286)" width="100%" height="100%"/> - <use xlink:href="#a" transform="translate(0 -219.43)" width="100%" height="100%"/> - <use xlink:href="#a" transform="translate(0 -292.57)" width="100%" height="100%"/> - <use xlink:href="#a" transform="translate(0 -365.714)" width="100%" height="100%"/> - <use xlink:href="#a" transform="translate(0 -438.857)" width="100%" height="100%"/> - <path d="M0 .05h320.077v292.57H0z" fill="#010066"/> - <g fill="#fc0"> - <path d="M123.812 51.9c-51.45 0-93.21 41.621-93.21 92.9 0 51.28 41.76 92.903 93.21 92.903 18.59 0 35.908-5.44 50.454-14.798a82.693 82.693 0 0 1-27.025 4.522c-45.623 0-82.65-36.904-82.65-82.375 0-45.472 37.027-82.376 82.65-82.376 10.082 0 19.74 1.8 28.676 5.1-14.877-10.02-32.81-15.877-52.105-15.877z"/> - <path d="M278.39 193.164l-39.263-20.486 11.61 41.926-26.262-35.071-8.193 42.686-8.058-42.71-26.372 34.991 11.741-41.89-39.328 20.367 29.216-32.774-44.495 1.709 40.903-17.166-40.848-17.289 44.489 1.843-29.112-32.862 39.264 20.486-11.61-41.926 26.262 35.071 8.193-42.686 8.058 42.71 26.372-34.991-11.742 41.89 39.328-20.367-29.215 32.774 44.494-1.709-40.902 17.166 40.848 17.288-44.489-1.842z"/> - </g> -</svg> diff --git a/img/flags/1x1/mz.svg b/img/flags/1x1/mz.svg deleted file mode 100644 index b6cd89d..0000000 --- a/img/flags/1x1/mz.svg +++ /dev/null @@ -1,21 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" height="512" width="512" viewBox="0 0 512 512"> - <defs> - <clipPath id="a"> - <path fill-opacity=".67" d="M0 0h496.06v496.06H0z"/> - </clipPath> - </defs> - <g clip-path="url(#a)" transform="scale(1.0321)"> - <path fill-rule="evenodd" fill="#009a00" d="M0 0h744.09v155.02H0z"/> - <path fill-rule="evenodd" fill="#fff" d="M0 154.98h744.09v15.52H0z"/> - <path fill-rule="evenodd" d="M0 170.5h744.09v155.02H0z"/> - <path fill-rule="evenodd" fill="#fff" d="M0 325.52h744.09v15.52H0z"/> - <path fill-rule="evenodd" fill="#ffca00" d="M0 341.04h744.09v155.02H0z"/> - <path d="M0 0v496.06l325.56-248.03L0 0z" fill-rule="evenodd" fill="red"/> - <path fill="#ffca00" fill-rule="evenodd" d="M192.351 322.606l-49.634-36.338-49.57 36.347 19.223-58.433-49.888-35.912 61.517.227 18.734-58.542 18.793 58.577 61.467-.28-49.903 35.974z"/> - <path stroke-linejoin="round" d="M99.635 281.854h35.756c2.877 3.228 9.296 4.544 15.41-.038 11.207-6.137 32.888.038 32.888.038l4.27-4.536-10.407-34.155-3.736-4.002s-8.005-4.803-23.215-3.202c-15.21 1.6-20.546-.533-20.546-.533s-13.342 1.6-17.078 3.468c-.41.333-4.269 4.27-4.269 4.27l-9.073 38.69z" fill-rule="evenodd" stroke="#000" stroke-linecap="round" stroke-width="1.0683875" fill="#fff"/> - <path stroke-linejoin="round" d="M106.84 273.05s34.155-4.268 44.028 8.806c-5.576 3.815-10.485 4.13-15.743.268.837-1.396 12.274-13.342 41.36-9.34" stroke="#000" stroke-linecap="round" stroke-width="1.0683875" fill="none"/> - <path d="M143.395 238.897l-.265 37.624M173.814 239.427l6.404 29.885" stroke="#000" stroke-width=".85471pt" fill="none"/> - <path stroke-linejoin="round" d="M113.33 238.956l-3.555 15.413" stroke="#000" stroke-linecap="round" stroke-width="1.0683875" fill="none"/> - <path stroke-linejoin="round" d="M76.413 285.957l8.409 9.859c.987.589 1.864.551 2.741 0l12.462-14.954 5.234-6.48c.81-.96 1.07-2.031.997-2.991l10.006-8.892c.819.057 1.306.15 2.125.205-.967-.25-1.677-.722-.915-1.781l2.243-1.745 1.744 2.243s-2.492 3.24-2.741 3.24h-2.742l-5.234 4.736 2.288 2.022 3.445 9.443 4.237-2.991-2.742-9.72 5.982-6.48-2.243-3.49 1.495-1.994s20.703 13.034 28.68 9.545c.215.078.481-9.296.481-9.296s-21.434-2.243-21.933-6.48c-.499-4.237 4.736-4.735 4.736-4.735l-2.244-3.24.5-1.746 3.738 4.736 8.474-7.228 49.848 56.827c2.721-1.104 3.302-1.77 3.49-4.486-.07-.069-48.851-56.08-48.851-56.08l3.738-3.987c.737-.83.996-1.184.997-2.493l5.732-4.985c1.724.593 2.823 1.626 3.739 2.99l15.76-13.356c.415.416 1.677.831 2.533.364l26.052-25.012-28.394 20.058-1-.748c0-.83 1.03-1.036 0-2.492-1.103-1.324-2.742 1.246-2.99 1.246-.25 0-4.11-1.365-4.957-3.093l-.278 4.588-7.228 6.73-5.483-.25-7.976 7.727-.997 2.99 1.246 2.494s-4.237 3.738-4.237 3.489c0-.249-.857-1.102-.893-1.212l3.635-3.275.498-2.243-1.213-1.894c-.367.268-5.018 5.135-5.267 4.636-.42-.462-13.462-15.202-13.462-15.202l.747-2.742-8.474-9.222c-3.089-1.067-7.976-1.246-8.972 5.483-.777 1.58-7.228.25-7.228.25l-3.49.747-19.69 27.915 10.967 13.21L115.97 218.3l.666-8.049 4.707 5.263c1.569.201 3.064.22 4.486-.499l13.29 14.835-2.213 2.159c.748.83 1.262 1.361 2.01 2.192.748-.498 1.462-1.097 2.21-1.596.25.334.665.965.914 1.298-1.113.606-1.895 1.413-3.008 2.018-1.782-1.161-3.503-2.607-3.372-4.909l-7.477 6.23-.25 1.247-22.182 18.444-1.994.25-.498 5.732 14.455-11.963v-1.746l1.496 1.246 11.215-8.971s.748.996.5.996c-.25 0-9.97 8.973-9.97 8.973l-.25.996-1.745 1.496-.997-.748-13.459 11.964h-1.994l-7.477 7.478c-1.928.167-3.6.371-5.234 1.494l-13.393 11.825z" fill-rule="evenodd" stroke="#000" stroke-linecap="round" stroke-width="1.0683875"/> - </g> -</svg> diff --git a/img/flags/1x1/na.svg b/img/flags/1x1/na.svg deleted file mode 100644 index 2ccf17f..0000000 --- a/img/flags/1x1/na.svg +++ /dev/null @@ -1,18 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" height="512" width="512" viewBox="0 0 512 512"> - <defs> - <clipPath id="a"> - <path fill-opacity=".67" d="M0 0h512v512H0z"/> - </clipPath> - </defs> - <g fill-rule="evenodd" clip-path="url(#a)"> - <path fill="#fff" d="M0 0h512v512H0z"/> - <path d="M-108.238.239l.856 368.58L466.598-.001l-574.84.238z" fill="#3662a2"/> - <path d="M630.69 511.53l-1.347-383.25-578.98 383.54 580.33-.283z" fill="#38a100"/> - <path d="M-107.868 396.61l.486 115.39 125.25-.16 611.76-410.14-.69-100.32L505.178.239l-613.05 396.37z" fill="#c70000"/> - <g> - <path fill="#ffe700" d="M154.085 183.389l-23.183-13.997-13.413 23.577-13.05-23.73-23.393 13.742.572-27.1-27.107.212 14.045-23.21-23.554-13.366 23.754-13.097-13.693-23.368 27.099.52-.16-27.104 23.183 14 13.413-23.58 13.05 23.73 23.393-13.739-.572 27.1 27.103-.214-14.042 23.211 23.552 13.368-23.754 13.096 13.696 23.366-27.099-.52z"/> - <path d="M167.768 119.933c0 27.247-22.261 49.336-49.721 49.336s-49.722-22.089-49.722-49.336 22.262-49.336 49.722-49.336 49.72 22.088 49.72 49.336z" fill="#3662a2"/> - <path d="M156.976 119.932c0 21.5-17.43 38.93-38.93 38.93s-38.929-17.43-38.929-38.93 17.43-38.929 38.93-38.929 38.929 17.43 38.929 38.93z" fill="#ffe700"/> - </g> - </g> -</svg> diff --git a/img/flags/1x1/nc.svg b/img/flags/1x1/nc.svg deleted file mode 100644 index 2385562..0000000 --- a/img/flags/1x1/nc.svg +++ /dev/null @@ -1,7 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" height="512" width="512" viewBox="0 0 512 512"> - <g fill-rule="evenodd" stroke-width="1pt"> - <path fill="#fff" d="M0 0h512.005v512H0z"/> - <path fill="#00267f" d="M0 0h170.667v512H0z"/> - <path fill="#f31830" d="M341.333 0H512v512H341.333z"/> - </g> -</svg> diff --git a/img/flags/1x1/ne.svg b/img/flags/1x1/ne.svg deleted file mode 100644 index 90179f2..0000000 --- a/img/flags/1x1/ne.svg +++ /dev/null @@ -1,6 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" height="512" width="512" viewBox="0 0 512 512"> - <path fill="#0db02b" d="M0 0h512v512H0z"/> - <path fill="#fff" d="M0 0h512v341.333H0z"/> - <path fill="#e05206" d="M0 0h512v170.667H0z"/> - <circle cx="256" cy="256" r="72.533" fill="#e05206"/> -</svg> diff --git a/img/flags/1x1/nf.svg b/img/flags/1x1/nf.svg deleted file mode 100644 index e1473f6..0000000 --- a/img/flags/1x1/nf.svg +++ /dev/null @@ -1,11 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" height="512" width="512" viewBox="0 0 512 512"> - <g fill-rule="evenodd" stroke-width="1pt"> - <path fill="#fff" d="M155.831 0h200.355v512H155.831z"/> - <path fill="#198200" d="M0 0h155.83v512H0zM356.185 0H512v512H356.185z"/> - </g> - <g stroke-linejoin="round" fill-rule="evenodd" stroke="#000"> - <path d="M242.961 332.355v41.025l16.581.171s-5.299-35.726-2.393-40.512c2.906-4.786 5.641-4.103 5.641-4.103s10.77 3.249 11.965 2.736c1.197-.513-.17-4.103 5.641-3.59 1.88-.684.855-3.932 2.565-4.103 1.709-.17 34.7 9.23 41.879.342-1.88-4.957-8.376-.342-10.085-.17-1.539 0-8.034-3.077-11.795 0-3.419-2.564-18.974-4.274-18.974-4.274-2.052-2.052 37.093 1.026 39.315-.513 4.615-4.615-8.546-4.102-10.598-2.564-3.646-2.222-8.22-2.05-11.012-.513-1.339-3.202-14.059-1.823-21.124-2.735-2.262-1.326-1.874-2.08-.342-2.906 14.758.627 29.443 2.542 44.273 1.88 4.008-5.225-5.05-7.185-10.598-2.735-3.257-5.356-9.914-.17-14.359-.683-4.444-.513-2.392-5.983 3.248-5.129 5.641.855 15.727-.341 17.607-2.905 1.88-2.564-1.123-5.169-10.427-2.735-3.15-3.078-10.086 0-13.333 1.025-4.321-2.41-14.359-.342-17.777.513-3.347-2.08 17.606-5.47 17.606-5.47 8.089-.143 12.65-1.538 15.213-2.222 12.228-6.554-.175-7.252-6.591-2.488-3.983-3.11-7.767.266-11.356 1.463-3.59 1.196-10.428 2.051-10.428 1.538 0-.513 9.744-6.496 9.744-6.496s11.965-.854 14.358-1.196c2.394-.342 14.641-6.628-2.051-2.393-5.812.513-9.23.17-11.453.342-12.887-1.333 1.197-2.564 1.197-2.564s18.246-1.677 18.46-2.564c.359-7.115-14.87-3.761-15.042-3.761.044-5.083-14.187.17-14.187 0-2.72-1.603 1.538-3.248 1.538-3.248 3.76-.911 9.382-1.179 10.853-2.377 0 0 10.62-.102 11.881-2.922-2.604-7.186-22.468 1.276-25.128 2.564-3.59 0 2.394-5.811 2.565-5.983.17-.17 16.41-.854 24.101-11.282.535-6.346-9.06 3.59-9.06 3.59-.715-8.231-10.426.513-16.067 1.197-5.64.684-5.811-2.564-1.88-3.077 3.931-.513 8.376-.17 10.598-6.154 2.222-5.983 8.889.342 10.085-1.88 1.197-2.222-2.393-4.103-2.393-4.103s4.957-5.128-3.077-4.957c-8.034.171-18.461-1.025-18.461-1.025s8.376-3.248 16.239-3.077c7.863.17 3.59-5.64-3.932-5.64-7.52 0-11.452-2.565-11.452-2.565l12.82-4.786-.855-3.59s7.522-5.983-3.076-4.616c-10.598 1.368-11.795 1.539-11.795 1.539s-21.196 3.248-21.367 3.248c-.17 0-5.812-1.71-.342-3.077 5.47-1.368 24.786-5.3 27.692-4.273 2.906 1.025-.342-7.18-10.598-8.206-10.256-1.025-16.581 2.565-16.581 2.565s-6.667-2.394-.513-4.445c6.154-2.05 15.897.684 15.897.684s10.94-3.248 1.88-4.615c-9.059-1.368-11.916 1.224-16.067 1.367-1.657-2.068 14.222-2.563 15.213-4.273-1.675-3.078-11.51 0-17.265 0-2.448-1.039-2.605-2.723.171-3.761 5.87-.228 11.38.117 17.249-.111-.171-3.134.016-6.84-.155-9.974-7.445-1.36-16.179.981-20.358.783 1.118-3.42 17.2-4.297 18.99-5.227 3.723-4.653-15.726 0-15.897 0-3.392-.502-3.173-2.644-1.025-3.932 4.957-.57 16.07.721 15.23-2.64-.645-3.15-7.71-1.463-10.615-.779-2.905.684-7.179.171-7.179.171-1.86-2.505 16.751-1.486 16.581-3.419-.243-2.219-11.795-.684-15.727-.513-3.072-2.12 14.757-3.518 15.043-3.76.644-5.683-11.965 0-14.359 0-2.393 0-1.196-3.59-1.196-3.59s4.957-2.222 4.786-2.564c-.17-.342-3.76-1.538-4.103-1.538-.341 0 0-3.932 0-3.932s4.103-3.077 3.761-3.931c-.342-.855-4.786.683-4.786.683v-3.418s3.248-.342 3.59-1.88c.342-1.54-3.932-1.71-3.932-1.71l-1.71-17.948-1.538 16.751-5.64.855s3.931 2.222 4.615 4.444c.683 2.223-4.787 1.539-4.787 1.539s4.445 3.76 4.787 5.128c.341 1.367-6.154 1.71-6.154 1.71s5.47 3.93 5.812 6.153c.342 2.222 0 3.419 0 3.419s-9.06-7.864-14.872-5.641c-3.02 1.578 6.919 2.308 13.504 8.034-.015 1.275-15.992-3.892-16.58-.684.37.893 17.06 3.289 18.29 5.47-6.097.228-18.707-1.334-18.29.683-1.275 2.33 11.909 1.007 17.435 2.907 1.62 1.84 1.45 3.395-1.368 3.59-5.326-2.547-17.236-4.449-17.264-1.198.072.868 12.312.305 16.751 3.249-5.925 1.347-26.022-2.743-26.149-.751.572.93 3.757 5.024 9.226 4.853 5.47-.171 18.119 2.222 18.974 3.932.855 1.709-16.41-3.59-22.905-.513-6.495 3.077 18.632 1.197 22.735 4.957s-8.205-.342-8.205-.342-17.094-2.393-19.658-1.197c-2.565 1.197-5.47 3.932-5.47 3.932s1.71 3.419 3.418 2.735c1.71-.684-.513 2.052-.513 2.052s23.932 5.81 29.231 10.94c5.3 5.128-30.426-8.035-30.426-8.035s-14.36 5.3.854 5.641c-1.75 2.56.855 4.102.855 4.102s25.299 5.3 27.863 9.402c2.564 4.103-17.265-3.932-21.71-6.153-4.444-2.223-17.093 1.367-16.922 2.221.17.855 6.154 2.052 6.324 3.59.17 1.538-7.35 2.051-7.35 3.419 0 1.368 31.965 8.034 40.512 15.213s-25.128-8.546-25.128-8.546 1.88 2.564 0 3.248c-1.88.683-8.547-9.573-19.487-3.248-1.992 2.602 9.544 4.67 12.479 4.957-1.003 2.577-1.88 3.419 2.222 5.983 4.102 2.564-8.035-3.76-8.035-3.42 0 .343.855 4.446.855 4.446-3.787-3.077-8.36-4.006-12.649-.855 0 0-.17 3.077 4.273 4.957-2.426 4.958 2.736 3.419 10.94 8.034-12.194-3.187-13.161 2.735-4.444 4.103 8.718 1.367 32.65 2.222 38.29 9.572 5.641 7.35-8.014-2.818-9.572-3.077-.342.171-.684 3.76-.684 3.76-3.647-2.11-7.007-4.006-11.37-4.9-.341.683-.253 1.653-.595 2.337-3.959-2.855-7.415-4.85-13.163-5.128l-.684 2.735s-4.786-5.983-14.188 0c-5.25 3.763 19.83 1.367 23.932 5.812 4.103 4.444.854 5.128.854 5.128l-10.256-3.761s-12.136-2.222-15.555.512c-3.419 2.736 49.914 9.402 51.452 16.752 1.037 3.987-12.534-4.185-24.273-7.692l-1.368 3.932s-4.661-4.683-9.914-5.47c-.17 0 1.026 4.615 1.026 4.615s-13.162-6.154-19.828-2.906c-6.668 3.248 23.247 4.957 25.982 8.034 2.735 3.077-9.06-2.05-10.085 0-1.026 2.052-15.556-3.76-15.385-1.026.171 2.736 2.051 4.274 2.051 4.274s30.256 2.906 31.283 6.495c1.025 3.59-16.752-2.051-16.752-2.051s-1.71 2.564-.342 3.76c1.367 1.198-10.256-6.837-9.23-1.538-3.77-1.5-13.505-6.153-12.137-2.563 1.367 3.59 27.52 8.718 27.52 8.718s-11.453.854-10.94 3.76c-14.733-8.976-14.358-3.248-14.016-3.077.342.17-18.974-4.786-4.445 3.077 14.53 7.863 7.863 6.495 8.035 6.667.17.17 1.538 3.931 1.196 3.931-.342 0-9.914-5.128-13.161-5.47-3.249-.342-18.633 4.274-2.223 11.453 16.41 7.18 26.496-1.71 35.555-.683 9.06 1.025 13.333 2.563 12.479 5.47-.855 2.905-9.256-9.523-18.097 1.228-10.057-1.99-16.883-3.145-11.691 4.246-16.425-6.138-26.451 1.876-5.767 5.124 20.325.599 32.82-4.958 32.82-4.958s3.418 6.325 8.375 1.88c4.958-4.444 5.129 1.71 5.3 1.71.17 0 4.786-2.051 4.786-2.051h1.196z" stroke-linecap="round" stroke-width=".7420725" fill="#198200"/> - <path d="M244.963 308.085v-2.863s-6.456-1.145-9.605-.501c-1.865-1.069-3.627-2.476-5.856-1.288-.43.93 4.08 3.364 5.583 3.364 1.76 1.114 9.878 1.431 9.878 1.288zM244.888 312.739s-6.456-2.36-9.033.359c.421 2.891 7.602 4.293 9.105 3.506 1.504-.787 0-3.722-.072-3.865zM255.772 313.884v2.004s7.73 1.503 9.09-.143c1.36-1.646-6.155-2.72-9.09-1.861zM255.415 305.9l.285 2.26s6.657 1.503 9.234-2.147c2.577-3.65-5.85.03-9.518-.114zM255.772 298.139v1.503s5.01.788 6.156-1.36c1.145-2.147-6.013 0-6.156-.143zM245.303 293.514c-.771-1.1-3.492-3.823-10.793-4.61-5.074-.017 9.165 7.466 10.793 4.61zM255.628 285.898s-.286 2.075-.215 2.075c.072 0 17.18-5.082 21.187-4.724 3.58-1.012 4.295-3.507 4.152-3.507-3.056-2.227-17.823 1.79-25.124 6.156zM255.985 279.812c-.072.358-.215 2.004-.215 2.004s12.097-2.362 15.318-4.652c3.22-2.291-14.96 2.72-15.103 2.648zM255.484 273.875l.002 2.018s8.074-.246 9.733-1.875c1.06-1.629-7.115-.232-9.735-.143zM272.334 290.822s4.194.586 4.981-.63c-.155-2.16-4.981.701-4.981.63zM255.841 266.356c-.072.358.071 4.438.071 4.438s19.398-6.156 20.615-7.301c1.217-1.145 3.917-4.593-20.686 2.863zM255.266 260.201v3.221s7.802-.573 11.381-3.508c3.58-2.934-11.381.359-11.381.287zM245.89 252.901l.5 2.935s-25.696-8.303-25.625-8.303c.072 0-1.294-4.23 25.124 5.368zM246.32 242.593c-.071.286-.071 2.791-.143 2.72-.071-.072-17.822-7.445-18.467-6.8-2.357-5.524 18.61 4.223 18.61 4.08zM254.984 247.172c0 .072.286 2.505.286 2.505s10.88-2.29 11.525-3.364c.644-1.074-11.81.93-11.81.859zM255.237 252.97c.101.615.315 2.578.315 2.578s4.367-.358 5.01-1.36c.645-1.003-5.325-1.146-5.325-1.218zM254.553 239.728c0 .215.07 2.434.07 2.434s11.955-2.362 13.243-3.507c1.288-1.146-13.528 1.073-13.313 1.073zM254.622 233.141c0 .144-.43 2.434-.143 2.434.286 0 14.53-2.434 16.749-4.437 2.219-2.005-16.392 2.218-16.607 2.003zM254.409 221.55v2.506s9.234-1.933 10.952-3.866-10.952 1.503-10.952 1.36zM252.833 204.655l.215 3.793s12.382-1.717 14.172-3.793c1.79-2.076-14.458 0-14.387 0zM247.109 176.238v2.362s-5.87-.287-4.438-1.289c1.431-1.002 4.438-.859 4.438-1.073zM252.55 179.39l.144 3.221s7.587-.715 8.16-1.932c.573-1.217-8.16-1.289-8.303-1.289zM252.12 184.044s.142 2.004.285 2.004 3.007-.215 3.65-1.002-3.65-.859-3.936-1.002zM245.676 193.202c0 .214.215 3.078.072 3.006-.143-.072-16.607-4.796-18.11-4.724-1.502.072-1.932-3.794 18.038 1.718zM247.034 198.575c0 .573.358 3.579-.215 3.436-.572-.143-11.165-3.508-10.092-4.51 1.073-1.002 10.307 1.289 10.307 1.074zM246.108 221.188l.071 2.72s-18.467-5.583-19.11-6.513c-.645-.93-2.434-5.297 19.039 3.793zM246.821 227.85c0 .071.144 2.576.072 2.576s-25.123-8.804-25.123-8.804-2.005-6.585 25.052 6.227z" stroke-linecap="round" stroke-width=".791544" fill="#fff"/> - <path d="M217.046 314.73c0 .085-.085 2.74-.085 2.74s-4.883-1.37-6.425-4.111c2.827-.77 6.596 1.456 6.51 1.37z" stroke-width=".791544" fill="#fff"/> - </g> -</svg> diff --git a/img/flags/1x1/ng.svg b/img/flags/1x1/ng.svg deleted file mode 100644 index a6f11b0..0000000 --- a/img/flags/1x1/ng.svg +++ /dev/null @@ -1,6 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" height="512" width="512" viewBox="0 0 512 512"> - <g fill-rule="evenodd" stroke-width="1pt"> - <path fill="#fff" d="M0 0h511.98v511.984H0z"/> - <path fill="#008753" d="M341.32 0h170.66v511.984H341.32zM0 0h170.66v511.984H0z"/> - </g> -</svg> diff --git a/img/flags/1x1/ni.svg b/img/flags/1x1/ni.svg deleted file mode 100644 index 27d49a2..0000000 --- a/img/flags/1x1/ni.svg +++ /dev/null @@ -1,133 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" height="512" width="512" viewBox="0 0 512 512"> - <defs> - <linearGradient y2="283.42" x2="500.626" y1="289.055" x1="498.738" gradientUnits="userSpaceOnUse" id="f"> - <stop offset="0" stop-color="#510000"/> - <stop offset=".3" stop-color="#8a0000"/> - <stop offset="1" stop-color="#a00"/> - </linearGradient> - <linearGradient y2="287.449" x2="502.927" y1="291.373" x1="501.444" gradientUnits="userSpaceOnUse" id="g"> - <stop offset="0" stop-color="#ff2a2a"/> - <stop offset="1" stop-color="red"/> - </linearGradient> - <linearGradient y2="317.647" x2="484.764" y1="311.709" x1="484.764" gradientUnits="userSpaceOnUse" id="b"> - <stop offset="0" stop-color="#F5F549"/> - <stop offset="1" stop-color="#97C924"/> - </linearGradient> - <linearGradient id="a"> - <stop offset="0" stop-color="#025"/> - <stop offset=".5" stop-color="#04a"/> - <stop offset="1" stop-color="#025"/> - </linearGradient> - <linearGradient y2="317.486" x2="634.411" y1="317.486" x1="444.509" gradientUnits="userSpaceOnUse" xlink:href="#a" id="h"/> - <clipPath id="c"> - <path d="M500 226.375l-63.702 110.332h127.4z"/> - </clipPath> - <linearGradient xlink:href="#a" id="o" gradientUnits="userSpaceOnUse" x1="444.509" y1="317.486" x2="634.411" y2="317.486"/> - <linearGradient xlink:href="#a" id="p" gradientUnits="userSpaceOnUse" x1="444.509" y1="317.486" x2="634.411" y2="317.486"/> - <linearGradient xlink:href="#a" id="q" gradientUnits="userSpaceOnUse" x1="444.509" y1="317.486" x2="634.411" y2="317.486"/> - <linearGradient xlink:href="#a" id="r" gradientUnits="userSpaceOnUse" x1="444.509" y1="317.486" x2="634.411" y2="317.486"/> - <linearGradient xlink:href="#b" id="u" gradientUnits="userSpaceOnUse" x1="484.764" y1="311.709" x2="484.764" y2="317.647"/> - <linearGradient xlink:href="#a" id="x" gradientTransform="scale(4.45715 .22436)" x1="98.901" y1="1440.155" x2="124.971" y2="1440.155" gradientUnits="userSpaceOnUse"/> - <linearGradient xlink:href="#a" id="j" gradientUnits="userSpaceOnUse" x1="444.509" y1="317.486" x2="634.411" y2="317.486"/> - <linearGradient xlink:href="#a" id="l" gradientUnits="userSpaceOnUse" x1="444.509" y1="317.486" x2="634.411" y2="317.486"/> - <linearGradient xlink:href="#a" id="m" gradientUnits="userSpaceOnUse" x1="444.509" y1="317.486" x2="634.411" y2="317.486"/> - <linearGradient xlink:href="#a" id="i" gradientUnits="userSpaceOnUse" x1="444.509" y1="317.486" x2="634.411" y2="317.486"/> - <linearGradient xlink:href="#b" id="s" gradientUnits="userSpaceOnUse" x1="484.764" y1="311.709" x2="484.764" y2="317.647"/> - <linearGradient xlink:href="#b" id="v" gradientUnits="userSpaceOnUse" x1="484.764" y1="311.709" x2="484.764" y2="317.647"/> - <linearGradient xlink:href="#a" id="y" gradientUnits="userSpaceOnUse" gradientTransform="scale(9.12405 .1096)" x1="47.855" y1="3054.214" x2="61.745" y2="3054.214"/> - </defs> - <path fill="#0067c6" d="M0 0h512v512H0z"/> - <path fill="#fff" d="M0 170.667h512v170.667H0z"/> - <path d="M179.2 255.427l8.515.57c.03-.415.055-.83.084-1.245-1.117-.074-2.234-.15-3.35-.223.084-1.37.2-2.736.26-4.105 1.184-.857 2.37-1.713 3.55-2.575l.106-1.577c-1.25.906-2.497 1.813-3.745 2.72-.125-.887-.615-1.8-1.505-2.107-.78-.282-1.734-.332-2.41.225-.855.63-1.01 1.758-1.12 2.74-.15 1.856-.253 3.72-.385 5.577zm1.297-1.162c.102-1.397.166-2.798.3-4.193.104-.69.23-1.487.835-1.926.545-.362 1.352-.093 1.575.524.446 1.064.248 2.237.19 3.354l-.16 2.424c-.914-.06-1.83-.12-2.74-.183zm-.189-11.913l8.31 1.94 1.89-8.088-1.182-.276-1.606 6.88-2.53-.59 1.448-6.2-1.175-.275-1.448 6.2-2.238-.522 1.546-6.62c-.395-.094-.79-.186-1.186-.278l-1.83 7.83zm2.994-11.159l8.06 2.803.41-1.177c-1.058-.37-2.114-.736-3.17-1.104.413-1.22.866-2.426 1.247-3.656.27-1.004.482-2.178-.11-3.112-.48-.69-1.332-1.133-2.174-1.106-.93.04-1.686.723-2.098 1.515-.61 1.145-.95 2.405-1.395 3.618l-.77 2.218zm1.557-.778c.43-1.21.82-2.434 1.288-3.63.29-.64.644-1.398 1.38-1.6.604-.14 1.238.325 1.29.945.148 1.14-.35 2.216-.7 3.274l-.665 1.913-2.594-.902zm2.895-9.545c1.52.882 3.026 1.786 4.554 2.652.862.464 1.956.73 2.857.21 1.23-.68 2-1.938 2.603-3.164.476-1.033.822-2.316.215-3.37-.653-1.055-1.84-1.54-2.853-2.168l-2.95-1.726-.626 1.07c1.445.852 2.9 1.686 4.34 2.55.688.418 1.258 1.177 1.14 2.02-.136 1.005-.71 1.887-1.283 2.7-.47.658-1.264 1.19-2.106 1.01-.878-.167-1.592-.742-2.363-1.157l-2.9-1.697-.626 1.07zm6.146-10.044l6.777 5.186c1.052-1.373 2.1-2.75 3.16-4.117.607-.87 1.166-2.005.754-3.075-.373-.85-1.25-1.51-2.19-1.554-.424-.058-.977.263-1.207.405.242-.91-.503-1.764-1.34-2.005-1.01-.358-2.032.288-2.7 1.006-.785.855-1.44 1.817-2.16 2.727l-1.093 1.43zm1.72-.254c.792-1.016 1.543-2.066 2.374-3.052.387-.43 1.006-.917 1.606-.6.546.236.68.925.42 1.42-.414.888-1.098 1.607-1.668 2.394l-.93 1.217c-.6-.46-1.202-.918-1.803-1.378zm2.76 2.113c.823-1.053 1.598-2.144 2.467-3.16.443-.464 1-1.05 1.704-.915.602.138 1.04.79.832 1.396-.34 1.117-1.175 1.972-1.847 2.898l-1.06 1.384c-.698-.534-1.396-1.07-2.094-1.603zm3.204-10.91l5.86 6.203 5.02-4.743-.833-.88-4.014 3.793-.103.097-.074-.08-4.955-5.242zm7.513-6.573l5.2 6.765 1.016-.78-5.202-6.765zm7.643-5.19c-.844.525-1.524 1.14-2.047 1.856-.522.715-.803 1.46-.844 2.238-.042.778.166 1.53.624 2.267a4.39 4.39 0 0 0 1.687 1.574c.7.374 1.456.513 2.284.42.824-.092 1.754-.456 2.79-1.102.994-.62 1.7-1.333 2.133-2.154a3.675 3.675 0 0 0 .356-2.514l-1.18.463c.31 1.704-.79 2.523-2.023 3.305-1.927 1.173-3.805 1.088-4.956-.674-1.193-1.985.11-3.626 1.75-4.692 1.164-.726 2.31-1.223 3.403-.528l.924-.823c-.635-.44-1.358-.642-2.18-.596-.863.048-1.765.366-2.72.962zm10.083-5.032l-.894 9.562 1.328-.536.27-2.965h.004l4.317-1.742 2.248 1.95 1.33-.536-7.277-6.27-1.328.537zm1.167.98l2.837 2.456-3.177 1.28.34-3.736zm17.536-6.256l.533 8.517c1.54-.103 3.08-.175 4.62-.303 1.208-.138 2.507-.453 3.333-1.415 1.068-1.185 1.22-2.954.752-4.428-.392-1.298-1.56-2.28-2.88-2.528-1.3-.25-2.627-.053-3.937.007l-2.422.15zm1.314 1.133c1.226-.065 2.45-.184 3.677-.19a3.127 3.127 0 0 1 1.953.597c.854.584 1.355 1.634 1.243 2.667-.06 1.187-.933 2.278-2.086 2.578-.66.17-1.345.218-2.02.293l-2.386.15-.38-6.093zm10.58-1.637l-.487 8.52 8.292.473.07-1.21c-2.352-.134-4.703-.27-7.055-.403.05-.864.1-1.73.148-2.593 2.12.12 4.238.242 6.357.363l.07-1.205c-2.12-.12-4.24-.242-6.358-.363.043-.764.088-1.53.13-2.294 2.264.128 4.527.258 6.79.388l.07-1.217-8.027-.46zm22.28 3.555l-3.085 7.956 1.097.427 2.447-6.308.126-.33.136.365 2.943 8.464 1.437.556 3.086-7.956-1.1-.426-2.446 6.305-.125.32-.135-.36-2.947-8.46zm11.464 4.925l-3.88 7.6-1.14-.582 3.88-7.6zm6.436 3.77c-.828-.546-1.67-.908-2.54-1.085-.867-.175-1.662-.12-2.386.167-.724.288-1.322.79-1.8 1.515a4.39 4.39 0 0 0-.726 2.19c-.048.79.14 1.536.57 2.25.428.71 1.147 1.403 2.166 2.075.978.645 1.92.988 2.848 1.04.89.05 1.7-.193 2.434-.727l-.913-.88c-1.42.993-2.624.336-3.848-.457-1.87-1.263-2.577-3.005-1.456-4.786 1.307-1.913 3.342-1.413 4.995-.367 1.145.755 2.075 1.59 1.9 2.872l1.132.496c.134-.76.017-1.502-.367-2.23-.404-.765-1.07-1.452-2.01-2.073zm8.125 6.13l-8.92 3.557 1.082.94 2.762-1.11.003.003 3.515 3.05-.71 2.89 1.08.94 2.27-9.33-1.083-.94zm-.34 1.485l-.895 3.644-2.588-2.247 3.482-1.398zm6.785 4.443l-6.584 5.43c.264.32.53.64.793.962.862-.712 1.725-1.424 2.59-2.136.877 1.053 1.73 2.126 2.627 3.163-.274 1.436-.55 2.872-.817 4.31l1.006 1.22.858-4.548c.738.603 1.816.906 2.697.427.76-.358 1.426-1.047 1.465-1.926.092-1.175-.747-2.13-1.418-3l-3.216-3.902zm-.145 1.735c.922 1.14 1.89 2.242 2.77 3.413.406.603.912 1.452.446 2.157-.382.603-1.223.55-1.74.16-1.044-.704-1.734-1.782-2.55-2.718l-1.043-1.265 2.118-1.747zm10.128 11.847l-9.594.44.714 1.24 2.973-.144.003.005 2.32 4.035-1.618 2.498.715 1.242 5.2-8.074-.714-1.24zm-.81 1.29l-2.038 3.15-1.71-2.968 3.75-.18zm6.285 10.004c-.534-1.447-1.375-2.93-2.8-3.654-1.583-.796-3.692-.41-4.816.986-.978 1.16-1.028 2.8-.767 4.226.31 1.636 1.06 3.195 2.187 4.425-.212.076-.425.152-.637.23l.408 1.135c1.332-.48 2.665-.958 3.997-1.437l-1.554-4.316-.924.33c.38 1.06.762 2.122 1.144 3.182l-1.355.487c-1.193-1.027-1.86-2.544-2.206-4.053-.256-1.132-.266-2.49.592-3.38.986-1.024 2.732-1.343 3.915-.47 1.167.855 1.825 2.238 2.158 3.613.228.905.19 1.98-.496 2.686-.192.144.112.345.164.517l.327.538a3.01 3.01 0 0 0 1.146-2.385c.023-.908-.177-1.81-.482-2.66zm2.452 6.664l-4.774.928c-.885.173-1.55.453-1.992.827-.442.372-.724.897-.86 1.596-.136.69-.116 1.538.082 2.568a.21.21 0 0 1 .004.024c.203 1.03.502 1.823.887 2.413.388.597.847.978 1.396 1.157.55.18 1.27.192 2.157.02l4.772-.93-.237-1.216-4.657.905c-2.09.408-2.794-.692-3.153-2.574l-.005-.024c-.372-1.88-.132-3.164 1.958-3.57l4.658-.906-.237-1.218zm2.617 14.524l-8.83-3.776.103 1.43 2.74 1.162v.006l.337 4.64-2.544 1.547.103 1.43L332.8 251l-.103-1.428zm-1.29.812l-3.207 1.95-.247-3.418 3.453 1.468zm-145.592 21.262l-1.238.326 1.368 5.2 1.238-.327zm140.4 0l1.238.325-1.37 5.2-1.237-.326zm-127.203 21.891l-9.54 1.098.797 1.19 2.956-.35.003.006 2.592 3.866-1.443 2.604.797 1.19 4.633-8.413-.798-1.19zm-.718 1.345l-1.818 3.282-1.91-2.844 3.728-.438zm4.37 3.868l-6.082 5.688.812.868 5.126-4.793-2.69 7.4.932.995 7.35-2.23-5.034 4.706.812.868 6.082-5.687-1.234-1.32-7.468 2.23 2.796-7.225zm8.859 9.038l-5.134 6.817 6.634 4.996.73-.968-5.645-4.25 1.562-2.075 5.086 3.83.726-.963-5.086-3.83c.46-.612.92-1.224 1.382-1.836l5.433 4.09c.244-.324.488-.65.733-.973l-6.423-4.837zm8.349 6.112l-4.02 7.527c.367.196.734.39 1.1.588l1.58-2.96c1.213.638 2.412 1.304 3.635 1.922.294 1.432.587 2.865.887 4.295.465.25.93.497 1.395.745l-.94-4.532c.912.278 2.024.148 2.656-.63.537-.602.903-1.446.646-2.253-.3-1.112-1.395-1.695-2.32-2.233-1.537-.828-3.08-1.647-4.62-2.47zm.526 1.658c1.286.702 2.6 1.353 3.86 2.1.586.395 1.327.934 1.253 1.73-.064.697-.816 1.07-1.452.922-1.245-.207-2.296-.95-3.405-1.503-.516-.276-1.032-.55-1.548-.827l1.293-2.422zm9.112 3.38l-3.224 7.9 1.185.485 3.225-7.9zm7.695 2.659c-.942-.313-1.85-.444-2.735-.39-.883.057-1.636.316-2.26.782-.625.465-1.072 1.106-1.346 1.93a4.39 4.39 0 0 0-.133 2.3c.16.78.536 1.45 1.137 2.027.597.574 1.47 1.057 2.63 1.442 1.11.368 2.11.454 3.02.264a3.675 3.675 0 0 0 2.162-1.334l-1.11-.612c-1.116 1.327-2.45 1.005-3.837.556-2.133-.733-3.268-2.233-2.648-4.243.766-2.186 2.862-2.23 4.73-1.65 1.302.43 2.416.996 2.58 2.28l1.222.185c-.07-.77-.374-1.456-.934-2.06-.588-.633-1.41-1.123-2.478-1.478zm8.58 1.92l-5.58 7.816 1.417.205 1.723-2.427.006.002 4.607.666.964 2.817 1.42.205-3.137-9.077-1.418-.206zm.516 1.435l1.218 3.55-3.39-.49 2.173-3.06zm19.487-1.374c-.975.188-1.83.518-2.576 1-.743.48-1.272 1.075-1.59 1.787-.316.712-.392 1.49-.227 2.34.15.782.49 1.472 1.01 2.075.52.6 1.175 1 1.982 1.21.802.21 1.8.202 3-.03 1.15-.222 2.063-.636 2.762-1.247a3.675 3.675 0 0 0 1.232-2.22l-1.267.01c-.323 1.702-1.643 2.073-3.073 2.36-2.22.405-3.943-.347-4.386-2.404-.402-2.283 1.403-3.348 3.316-3.755 1.347-.26 2.595-.314 3.365.726l1.158-.436c-.437-.638-1.04-1.086-1.823-1.34-.823-.263-1.778-.29-2.884-.076zm5.698-1.008c.81 2.725 1.618 5.452 2.428 8.18l7.962-2.363-.345-1.162-6.772 2.01-.74-2.49 6.105-1.812c-.115-.386-.23-.77-.343-1.157l-6.104 1.812-.654-2.204 6.52-1.934-.347-1.17-7.71 2.29zm9.232-2.903l3.582 7.745c.356-.165.712-.33 1.07-.494l-2.99-6.46c2.763 1.253 5.51 2.543 8.265 3.81.183.16.367.053.55-.046.36-.165.717-.33 1.075-.497l-3.582-7.745-1.072.496 2.985 6.45c-2.835-1.285-5.656-2.605-8.486-3.905l-1.396.647zm9.37-4.401l.67 1.015 3.046-2.004.116-.077.058.087 3.965 6.025 1.036-.682-3.966-6.025-.058-.087.118-.078 3.063-2.016-.668-1.016zm8.586-5.88l5.784 6.276c.305-.28.61-.563.917-.844l-2.275-2.468c1.003-.935 2.027-1.846 3.014-2.798 1.45.194 2.898.39 4.348.578l1.162-1.07-4.588-.608c.563-.77.807-1.863.28-2.716-.4-.737-1.124-1.366-2.003-1.357-1.18-.028-2.086.862-2.92 1.58-1.24 1.142-2.48 2.286-3.72 3.426zm1.74.05c1.087-.983 2.135-2.01 3.256-2.953.58-.44 1.4-.99 2.13-.564.623.35.616 1.19.254 1.727-.645 1.084-1.685 1.833-2.576 2.7-.4.37-.802.74-1.203 1.108l-1.86-2.02zm8.188-9.986l3.817 8.813.907-1.11-1.19-2.728.002-.004 2.946-3.6 2.91.625.907-1.11-9.394-1.994-.908 1.11zm1.495.297l3.67.788-2.17 2.652-1.5-3.44zm2.221-5.131l7.16 4.643 3.757-5.796-1.017-.66-3.005 4.636-.077.118-.09-.058-6.053-3.925z" fill="#c8a400"/> - <g clip-path="url(#c)" transform="translate(-170.667) scale(.85333)"> - <path d="M500 226.408l-31.478 54.535-15.42 26.702H546.9l-14.715-25.484L500 226.41z" fill="#fff"/> - <g id="e"> - <g id="d"> - <path d="M500 226.408l-2.356 4.082L500 285.467l2.358-54.977z" opacity=".62" fill="#17c0eb" stroke="#17c0eb" stroke-width=".129"/> - <path d="M500 277.475l-.133.003.134 3.11.135-3.11c-.045 0-.09-.003-.134-.003z" fill="#fff"/> - </g> - <use height="100%" width="100%" xlink:href="#d" transform="rotate(72 500 285.467)"/> - <use height="100%" width="100%" xlink:href="#d" transform="rotate(144 500 285.467)"/> - <use height="100%" width="100%" xlink:href="#d" transform="rotate(-144 500 285.467)"/> - <use height="100%" width="100%" xlink:href="#d" transform="rotate(-72 500 285.467)"/> - </g> - <use height="100%" width="100%" xlink:href="#e" transform="rotate(8 500 285.467)"/> - <use height="100%" width="100%" xlink:href="#e" transform="rotate(16 500 285.467)"/> - <use height="100%" width="100%" xlink:href="#e" transform="rotate(24 500 285.467)"/> - <use height="100%" width="100%" xlink:href="#e" transform="rotate(32 500 285.467)"/> - <use height="100%" width="100%" xlink:href="#e" transform="rotate(40 500 285.467)"/> - <use height="100%" width="100%" xlink:href="#e" transform="rotate(48 500 285.467)"/> - <use height="100%" width="100%" xlink:href="#e" transform="rotate(56 500 285.467)"/> - <use height="100%" width="100%" xlink:href="#e" transform="rotate(64 500 285.467)"/> - <path d="M500 265.844a44.236 44.236 0 0 0-28.97 10.75L456.376 302c-.5 2.67-.75 5.434-.75 8.25h5.03c0-21.726 17.62-39.344 39.345-39.344 21.727 0 39.344 17.618 39.344 39.344h5.03c0-2.813-.248-5.582-.75-8.25l-14.655-25.406a44.25 44.25 0 0 0-28.97-10.75z" fill="red"/> - <path d="M500 266.656c-11.764 0-22.44 4.675-30.28 12.25l-12.032 20.844a43.596 43.596 0 0 0-1.28 10.5h4.25c0-21.726 17.616-39.344 39.342-39.344 21.727 0 39.344 17.618 39.344 39.344h4.25a43.86 43.86 0 0 0-1.28-10.53l-12.032-20.814c-7.84-7.574-18.518-12.25-30.282-12.25z" fill="#f60"/> - <path d="M500 267.47c-12.702 0-24.1 5.52-31.938 14.31l-8.718 15.095a42.733 42.733 0 0 0-2.125 13.375h3.436c0-21.726 17.618-39.344 39.344-39.344 21.726 0 39.344 17.618 39.344 39.344h3.437c0-4.673-.74-9.165-2.124-13.375l-8.72-15.095c-7.835-8.788-19.236-14.312-31.937-14.312z" fill="#ff0"/> - <path d="M500 268.25c-14.55 0-27.372 7.414-34.906 18.656l-2.813 4.875a41.818 41.818 0 0 0-4.28 18.47h2.656c0-21.726 17.617-39.344 39.343-39.344 21.726 0 39.343 17.618 39.343 39.344H542a41.82 41.82 0 0 0-4.282-18.437l-2.844-4.937C527.338 275.65 514.537 268.25 500 268.25z" fill="#0f0"/> - <path d="M500 269.062c-22.747 0-41.188 18.44-41.188 41.188h1.844c0-21.727 17.618-39.344 39.344-39.344 21.726 0 39.344 17.617 39.344 39.344h1.844c0-22.748-18.44-41.188-41.188-41.188z" fill="#0cf"/> - <path d="M500 269.844c-22.306 0-40.375 18.1-40.375 40.406h1.344c0-21.56 17.47-39.03 39.03-39.03 21.56 0 39.03 17.47 39.03 39.03h1.376c0-22.306-18.1-40.406-40.406-40.406z" fill="#00f"/> - <path d="M500 270.657c-21.863 0-39.588 17.725-39.588 39.59 0 .244.003.49.007.732h.8c-.005-.245-.007-.49-.007-.734 0-21.422 17.366-38.788 38.788-38.788 21.423 0 38.79 17.366 38.79 38.788 0 .245-.003.49-.008.733h.797c.003-.244.006-.49.006-.734 0-21.864-17.72-39.59-39.585-39.59z" fill="purple"/> - <g> - <path d="M500.395 288.134c-.644-.124-1.226-.484-1.775-.61-.756.725-.835 1.457-.73 2.08.26.14.31.353.877.86s.496.773.462 1.965c-.016.502.07 1.58.578 1.68.548.11.932-.345 1.09-1.16.152-.79.417-1.215.698-1.7.306-1.853-.193-2.51-1.2-3.116z" fill="#510000"/> - <path d="M497.168 283.524c-.595.015-1.528 1.012-1.943.475-.24-.31-.28-.903-.037-1.4.56-1.152 1.124-1.717 2.167-2.33 2.378-1.402 3.89-.952 5.074 1.062 1.097 1.772 2.15 3.73 2.245 5.37.03.502.283 1.41-.156 1.86-1.35 1.39-4.597-1.434-6.498-.987-.64.15-1.377.617-1.98.218-.47-.31-.078-.997.272-1.294.612-.52 1.5-2.366 1.38-3.166-.067-.446-.08.18-.526.19z" fill="red"/> - <path d="M496.927 282.548c-1.083.445-.966 1.076-1.51 1.59.154.058.766.31 1.364-.3.26-.215.55-.294.678-.363-.305.22-.523.554-.684.684-.404.328-1.034 1.082-1.34 1.845-.307.764-.43 1.673-.376 1.782.056.11.426.78 1.566 1.232 2.03.806 2.417 2.438 4.477 2.438 1.615 0 1.356-1.056 2.647-.832 1.12.194 1.714-.696.636-1.232-1.37-.468-4.092-.192-5.372.033-.413-4.083-.055-2.65-.15-4.405-.098-1.755-.624-1.86.07-3.28-.577.87-1.276.733-2.003.806z" fill="url(#f)"/> - <path d="M500.938 279.795c-.04.223-.077.516-.056.6.087.34.175.693.278.994.115.335.162.578.24.927.082.36.4.5.694.722.37.28.084 1.036.315 1.067.183.025.487-1.07.49-1.246 0-.236-.002-.426-.038-.646a15.3 15.3 0 0 0-.426-.872c-.002-.004-.007-.006-.01-.01a3.652 3.652 0 0 0-.193-.327 4.204 4.204 0 0 0-.786-.863c-.02-.015-.037-.032-.056-.047a3.936 3.936 0 0 0-.258-.187c-.062-.04-.13-.076-.194-.113z" fill="#ff2a2a"/> - <path d="M501.25 287.398c-.72-.188-1.427-.543-2.038-.725-1.2-.36-2.48-1.134-3.366-.814-.317.14-.29.455-.39.91-.042.532-.596 1.318-.136 1.06.685-.382 2.49.734 3.095 1.107.287.177.892.524 1.082 1.022.19.497.092 1.755.04 2.295-.052.566.12 1.835.687 1.987.61.163 1.078-.323 1.316-1.23.23-.88.405-1.387.757-1.915s.756-.756 1.32-.863c.564-.106 1.382.462 1.382-.203 0-.436-.385-.854-.22-1.453.127-.472-.403-.378-.843-.572-1.036-.32-1.97-.42-2.688-.607z" fill="url(#g)"/> - <path d="M498.363 288.902c-.327-.178-2.315-1.478-3.043-1.07-.23.127-.317-.017-.32-.258-.004-.24.11-.594.184-.866.074-.273.195-.792.516-1.062.687-.58 2.27.575 3.108.886-.072.436-.47 2.356-.445 2.37z" fill="#910000"/> - <path d="M501.763 291.36c.916-1.602 1.508-1.396 2.613-1.373.37.008.477-.33.393-.667-.28.624-1.663-.07-2.416.263-1.573.692-1.28 3.77-2.027 4.07.776.65 1.124-1.746 1.436-2.292z" fill="#ff3a3a"/> - </g> - <g fill="url(#h)"> - <path d="M453.103 307.645l-9.955 17.237h113.708l-9.956-17.237h-93.797z" fill="#fff"/> - <g id="n" fill="url(#i)"> - <path id="k" d="M449.705 321.364c-1.658 0-3.197.167-4.71.353l-.486.846c2.432-.216 4.696-.65 7.14-.71 3.292.08 6.282.83 9.785.83 1.518.015 3.027-.03 4.526 0 3.5 0 6.49-.75 9.784-.83 3.295.08 6.304.83 9.803.83 1.518.005 3.178-.023 4.53 0 3.5 0 6.474-.75 9.765-.83 3.293.08 6.27.83 9.77.83 1.53.015 3.032-.03 4.542 0 3.5 0 6.49-.75 9.787-.83 3.297.08 6.282.83 9.783.83 1.516.015 3.03-.03 4.53 0 3.5 0 6.475-.75 9.765-.83 2.55.063 4.92.52 7.486.725l-.515-.893c-1.404-.168-2.836-.32-4.37-.32-1.528-.022-3.035.03-4.546 0-3.5 0-6.474.747-9.765.828-3.297-.08-6.284-.83-9.787-.83-1.513-.02-3.03.032-4.526 0-3.5 0-6.493.75-9.786.83-3.293-.08-6.283-.83-9.782-.83-1.522-.02-3.042.032-4.547 0-3.498 0-6.475.75-9.764.83-3.294-.08-6.27-.83-9.77-.83-1.52-.02-3.025.032-4.525 0-3.5 0-6.49.75-9.785.83-3.294-.08-6.283-.83-9.783-.83-1.52-.02-3.043.032-4.547 0z" fill="url(#j)"/> - <use height="100%" width="100%" xlink:href="#k" y="-1.113" fill="url(#l)"/> - <use height="100%" width="100%" xlink:href="#k" y="-2.23" fill="url(#m)"/> - </g> - <use height="100%" width="100%" xlink:href="#n" y="-3.344" fill="url(#o)"/> - <use height="100%" width="100%" xlink:href="#n" y="-6.691" fill="url(#p)"/> - <path d="M453.23 307.458l-.123.215h93.79l-.124-.215H453.23zm-.22.377l-.126.22h94.235l-.128-.22h-93.98zm-.2.346l-.204.357h94.792l-.205-.356H452.81zm-.317.552l-.25.433h95.518l-.25-.433h-95.017zm-.4.69l-.25.435h96.317l-.25-.434h-95.816zm-.398.692l-.247.43h97.107l-.247-.43h-96.613zm-.398.692l-.25.43h97.91l-.25-.43h-97.41zm-.43.744l-.304.53h98.877l-.303-.53h-98.27z" fill="url(#q)"/> - <path d="M457.357 312.287c3.45.662 3.782 0 3.782 0zm81.503 0s.33.662 3.782 0z" fill="url(#r)"/> - </g> - <g fill="#ccd11e"> - <g id="t"> - <path d="M530.63 297.043c-1.708 0-2.23.862-2.23.862-2.737 10.576-11.808 21.333-22.6 21.333h-8.082v10.768c0 .003.012 0 .017 0h61.498l-6.187-10.954c-9.707-1.45-17.64-11.373-20.166-21.147 0 0-.54-.862-2.25-.862z" fill="url(#s)"/> - <path d="M530.63 297.465c-.783 0-1.26.18-1.537.355-.264.165-.315.276-.32.288 0 .007-.016.01-.02.016-1.4 5.323-4.35 10.67-8.333 14.707-4.012 4.07-9.07 6.83-14.605 6.83h-7.674v9.923h60.856l-5.68-10.058c-4.687-.612-8.973-3.163-12.458-6.694-3.986-4.037-6.932-9.383-8.334-14.706l-.017-.016c-.007-.012-.07-.105-.338-.27-.284-.177-.755-.373-1.54-.373z" fill="#97c924"/> - <path d="M530.63 297.465c.147 0 .28.02.406.034.024 3.016 0 8.108 0 10.8-.03 2.34-.83 4.223-2.012 6.44-.547 1.555-.986.964-2.35 2.858-1.83.654-3.186.91-5.138 1.216-2.517.398-8.12.75-10.887.136 3.64-1.068 6.96-3.27 9.77-6.12a30.57 30.57 0 0 0 2.13-2.4 33.663 33.663 0 0 0 3.01-4.48c.352-.626.686-1.248.997-1.893a33.86 33.86 0 0 0 1.25-2.94c.124-.33.245-.667.356-.998.222-.665.417-1.33.592-1.996.002-.006.015-.01.016-.017.007-.012.06-.122.322-.287.136-.085.332-.17.575-.237h.017c.252-.067.554-.118.946-.118z" fill="#ede71f"/> - <path d="M529.938 298.902c-.412 6.034-2.277 13.192-6.644 17.81-1.607 1.337-3.66 2.55-5.646 2.255 6.77-5.51 10.885-13.947 12.29-20.065z" fill="#c6cb24"/> - <path d="M524.494 309.28c-1.002 2.722-4.788 6.747-8.84 10.046-1.15.035-1.76.1-2.804.038 2.468-.225 8.22-5.083 11.644-10.083z" fill="#9ecb34"/> - </g> - <use height="100%" width="100%" xlink:href="#t" x="-15.341"/> - <g fill="#c6cb24"> - <path d="M502.218 297.91c2.735 10.576 11.79 21.334 22.583 21.334h8.09v10.768c0 .003-.015 0-.017 0h-65.795c-.006 0-.017.003-.017 0v-10.768h8.073c10.792 0 19.863-10.758 22.6-21.333 0 0 .534-.865 2.243-.865 1.708 0 2.243.866 2.243.866z" fill="url(#u)"/> - <path d="M499.975 297.465c.784 0 1.255.196 1.538.372.27.166.332.26.34.27l.016.017c1.4 5.323 4.347 10.67 8.332 14.707 4.017 4.07 9.087 6.83 14.623 6.83h7.64v9.923h-64.98v-9.923h7.675c5.535 0 10.593-2.76 14.605-6.83 3.982-4.037 6.934-9.383 8.334-14.706.002-.007.014-.01.016-.016.006-.012.057-.123.32-.288.28-.174.755-.355 1.54-.355z" fill="#97c924"/> - <path d="M499.263 297.53a3.4 3.4 0 0 0-.242.055h-.017c-.243.066-.436.15-.572.236-.263.166-.313.275-.32.287-.002.006-.016.01-.017.017a28.878 28.878 0 0 1-.949 2.993 34.22 34.22 0 0 1-1.25 2.942 34.21 34.21 0 0 1-.997 1.894 33.634 33.634 0 0 1-3.01 4.477 30.73 30.73 0 0 1-2.13 2.402c-2.81 2.85-6.128 5.05-9.77 6.117 2.766.614 4.033-.057 6.55-.455 1.952-.308 4.21-.563 6.043-1.217 1.364-1.894.9-1.3 1.446-2.854 1.18-2.218 2.906-4.222 3.334-6.68 1.62-3.023 1.903-8.615 1.903-10.214z" fill="#ede71f"/> - <path d="M499.275 298.902c-.412 6.034-2.277 13.192-6.644 17.81-1.605 1.337-3.66 2.55-5.645 2.255 6.77-5.51 10.885-13.947 12.29-20.065z"/> - <path d="M493.832 309.28c-1.002 2.722-4.788 6.748-8.84 10.046-1.15.035-1.76.1-2.804.038 2.467-.225 8.222-5.083 11.644-10.083z" fill="#9ecb34"/> - <path d="M500.95 297.584h.02c.24.067.434.15.57.236.264.165.315.274.32.286.003.006.017.01.02.018.174.665.37 1.333.59 1.996.112.332.235.665.358.995a33.6 33.6 0 0 0 1.25 2.942c.31.645.644 1.268.997 1.895a33.634 33.634 0 0 0 3.01 4.477 30.73 30.73 0 0 0 2.13 2.4c2.81 2.85 6.128 5.446 9.768 6.513-7.245.028-10.39-.63-13.022-4.016-2.632-3.387-3.605-4.868-4.14-6.937-.534-2.068-2.025-6.57-1.87-10.806z" fill="#ede71f"/> - <path d="M501.476 298.902c.412 6.034 2.22 12.006 6.587 16.625 1.607 1.337 3.66 2.55 5.646 2.255-7.336-5.002-10.83-12.762-12.234-18.88z"/> - </g> - <g id="w"> - <path d="M484.75 297.043c-1.71 0-2.25.862-2.25.862-2.522 9.747-11.824 22.318-21.496 23.81l-4.79 8.29h49.015V318.66c-8.826-2.37-15.89-11.63-18.25-20.753 0 0-.522-.862-2.23-.862z" fill="url(#v)"/> - <path d="M484.75 297.465c-.785 0-1.256.196-1.54.372-.268.166-.33.26-.337.27l-.017.017c-1.402 5.323-4.678 10.705-8.08 14.99-3.402 4.283-9.72 8.617-14.042 9.076l-4.282 7.393h48.06V318.89c-3.554-1.09-6.8-3.267-9.552-6.06-3.982-4.037-6.934-9.383-8.334-14.706-.002-.007-.015-.01-.017-.016-.007-.012-.06-.123-.322-.288-.28-.174-.755-.355-1.54-.355z" fill="#97c924"/> - <path d="M483.445 298.903c-.617 9.043-5.653 20.454-11.34 22.42-1.855.64-5.1.864-6.227 1.008 9.948-4.73 15.828-15.852 17.567-23.427z" fill="#93bc30"/> - <path d="M484.746 297.465c-.147 0-.28.02-.406.034-.023 3.016 0 8.108 0 10.8.03 2.34.83 4.223 2.012 6.44.07.195.136.355.203.49.41 1.087.713 1.464 2.282 2.655 4.987 3.787 11.17 4.353 14.808 4.04-1.14-.898-2.358-1.715-3.43-2.467 1.71-.056 3.35-.25 4.512-.508-3.64-1.067-6.96-3.27-9.77-6.12a30.523 30.523 0 0 1-1.403-1.554c-.21-.292-.5-.698-.592-.812-1.118-1.4-2.263-2.947-3.145-4.513a34.164 34.164 0 0 1-.997-1.893 34.023 34.023 0 0 1-1.606-3.938 31.676 31.676 0 0 1-.592-1.996c-.002-.006-.015-.01-.017-.017-.006-.012-.057-.122-.32-.287a2.207 2.207 0 0 0-.576-.237h-.018a3.614 3.614 0 0 0-.946-.118z" fill="#ede71f"/> - <path d="M485.446 298.902c.412 6.034 2.277 13.192 6.644 17.81 1.606 1.337 3.66 2.55 5.646 2.255-6.77-5.51-10.886-13.947-12.29-20.065z"/> - <path d="M489.613 307.247c2.37 5.837 8.37 11.29 14.543 14.954 1.15.036 1.492.004 2.537-.06-4.42-2.37-11.54-5.753-17.08-14.893z" fill="#9ecb34"/> - </g> - <use height="100%" width="100%" xlink:href="#w" x="-15.43" fill="#c6cb24"/> - </g> - <g> - <path d="M556.5 324.692c-.574.203-4.42-.19-6.433-.044l-1.28.336c-1.123-.008-2.238.024-3.33 0-3.602 0-6.65.948-10.075.948-3.433 0-6.47-.948-10.075-.948-1.12-.008-2.234.025-3.33 0-3.602 0-6.647.948-10.076.948-3.428 0-6.472-.948-10.074-.948-1.13-.007-2.242.023-3.348 0-3.602 0-6.632.948-10.058.948-3.43 0-6.456-.948-10.058-.948-.267 0-.516.01-.776.017-.178-.003-.377-.016-.557-.016-.12 0-.223-.003-.34 0-.117-.003-.237 0-.356 0-.18 0-.345.013-.523.017-.258-.007-.51-.016-.778-.016-3.606 0-6.643.95-10.076.948-3.43 0-6.473-.948-10.075-.948-.26 0-.52.01-.775.017-.18-.003-.34-.016-.522-.016-.124 0-.252-.003-.374 0-.118-.003-.238 0-.357 0-.18 0-.362.013-.54.017-.26-.007-.51-.016-.776-.016-2.88 0-6.218.607-8.936.85l-6.272 10.858 62.972-.007 64.375.007z" fill="#fff"/> - <path d="M547.993 323.11c-.2 0-.398 0-.596.008-3.24.095-5.564 1.115-11.2 1.115-5.638 0-6.22-1.02-12.584-.88-5.947.132-8.443 1.263-11.67 1.218-3.228-.043-8.473-.696-12.51-.274-4.037.423-8.828 1.284-11.973 1.29-3.91-.016-7.82-.73-11.906-.323-4.087.406-5.997 1.5-11.063 1.485-4.355-.013-9.082-.698-12.745-.695-3.435.003-7.267.957-10.086 1.443l-.844 1.464c2.247-.26 8.55-1.218 10.802-1.277 2.344-.06 10.717.483 15.335.325 4.618-.16 5.158-1.172 10.618-1.172 3.802 0 6.667.4 10.567.4 2.434 0 4.643-1.243 8.343-1.243.936-.027 1.865-.06 2.794-.09 3.12-.516 8.384.044 12.048.23 3.315.174 5.457-.614 8.914-.73 1.496-.067 2.998-.065 4.474-.147 3.46-.115 6.422.64 9.68.624 3.25-.2 6.403-.922 9.86-1.037 1.51-.07 2.998-.072 4.49-.148 2.287-.076 5.837.078 8.273.5l-.84-1.45c-2.38-.075-5.31-.634-8.18-.634z" fill="url(#x)"/> - <g id="A"> - <path id="z" d="M450.312 334.748c-3.457 0-6.402.853-9.652.945-1.21-.033-2.367-.183-3.535-.345l-.49.85c.486.032.975.063 1.488.063 1.502.02 2.99-.035 4.474 0 3.457 0 6.382-.85 9.634-.944 3.255.092 6.207.945 9.667.945 1.5.02 2.993-.035 4.474 0 3.458 0 6.413-.852 9.667-.944 3.256.092 6.23.945 9.687.945 1.495.02 2.993-.035 4.47 0 3.457 0 6.4-.852 9.652-.944 3.253.092 6.19.945 9.65.945 1.51.02 2.998-.035 4.49 0 3.457 0 6.41-.852 9.666-.944 3.257.092 6.21.945 9.67.945 1.495.02 2.99-.035 4.47 0 3.456 0 6.4-.852 9.65-.944 3.254.092 6.21.945 9.667.945 1.5.02 2.995-.035 4.473 0 .605 0 1.196-.033 1.778-.076l-.462-.797c-1.064.144-2.133.276-3.235.306-3.254-.092-6.195-.945-9.652-.945-1.51-.02-2.996.03-4.49 0-3.457 0-6.396.853-9.648.945-3.257-.09-6.206-.945-9.666-.945-1.496-.02-2.993.03-4.473 0-3.458 0-6.413.853-9.667.945-3.254-.092-6.21-.945-9.666-.945-1.503-.02-3.003.03-4.49 0-3.458 0-6.4.853-9.65.945-3.253-.092-6.194-.945-9.65-.945-1.507-.02-2.99.03-4.475 0-3.46 0-6.41.854-9.666.945-3.255-.092-6.21-.945-9.667-.945-1.502-.02-3.006.03-4.49 0z" fill="url(#y)"/> - <use height="100%" width="100%" xlink:href="#z" y="-1.289"/> - <use height="100%" width="100%" xlink:href="#z" y="-2.575"/> - </g> - <use height="100%" width="100%" xlink:href="#A" y="-3.867"/> - <use height="100%" width="100%" xlink:href="#A" y="-7.729"/> - </g> - <path d="M443.846 324.705l-2.427 4.19c2.838-.47 7.1-1.702 10.633-1.705 3.663-.003 8.082.903 12.438.916 5.067.014 6.977-1.08 11.064-1.485 4.086-.406 7.998.528 11.906.546 3.145-.007 7.936-1.09 11.973-1.512 4.037-.422 7.737.293 12.603.37 4.866.074 5.63-1.18 11.576-1.312 6.366-.14 6.947.878 12.584.878 4.242.23 7.883-.854 11.666-1.12 3.784-.27 5.54.042 8.305.108l-1.838-3.253c-.032 0-.062.003-.093.004l-101.246 2.225z" fill="#97c924"/> - <path d="M550.067 324.648s2.71.148 3.847.276a91.39 91.39 0 0 0 2.955.253l-.37-.485c-.574.203-4.42-.19-6.433-.044z" fill="#fff"/> - </g> - <path d="M256 191.892l-27.428 47.52-28.038 48.553 54.867-.006 56.066.005-27.437-47.516L256 191.89zm0 2.562l26.922 46.637 26.326 45.592-53.847-.003-52.65.002 26.93-46.63z" fill="#c8a400"/> -</svg> diff --git a/img/flags/1x1/nl.svg b/img/flags/1x1/nl.svg deleted file mode 100644 index af31c87..0000000 --- a/img/flags/1x1/nl.svg +++ /dev/null @@ -1,7 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" height="512" width="512" viewBox="0 0 512 512"> - <g fill-rule="evenodd" stroke-width="1pt" transform="matrix(.48166 0 0 .71932 0 0)"> - <rect rx="0" ry="0" height="708.66" width="1063" fill="#fff"/> - <rect rx="0" ry="0" height="236.22" width="1063" y="475.56" fill="#21468b"/> - <path fill="#ae1c28" d="M0 0h1063v236.22H0z"/> - </g> -</svg> diff --git a/img/flags/1x1/no.svg b/img/flags/1x1/no.svg deleted file mode 100644 index c8851f9..0000000 --- a/img/flags/1x1/no.svg +++ /dev/null @@ -1,7 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" height="512" width="512" viewBox="0 0 512 512"> - <path d="M0 0h512v512H0z" fill="#ef2b2d"/> - <path d="M128 0h128v512H128z" fill="#fff"/> - <path d="M0 192h512v128H0z" fill="#fff"/> - <path d="M160 0h64v512h-64z" fill="#002868"/> - <path d="M0 224h512v64H0z" fill="#002868"/> -</svg> diff --git a/img/flags/1x1/np.svg b/img/flags/1x1/np.svg deleted file mode 100644 index 41127bf..0000000 --- a/img/flags/1x1/np.svg +++ /dev/null @@ -1,19 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" height="512" width="512" viewBox="0 0 512 512"> - <defs> - <clipPath id="b"> - <path fill-opacity=".67" d="M0-15.957h512v512H0z"/> - </clipPath> - <clipPath id="a"> - <path fill-opacity=".67" d="M0 0h512v512H0z"/> - </clipPath> - </defs> - <g clip-path="url(#a)"> - <path style="width:0" fill="#fff" d="M0 0h512v512H0z"/> - <g transform="translate(0 15.957)" clip-path="url(#b)"> - <g fill-rule="evenodd"> - <path d="M6.54 489.54l378.786-.01L137.399 238.11l257.263.302L6.561-9.474 6.54 489.54z" stroke="#000063" stroke-width="12.968019199999999" fill="#ce0000"/> - <path fill="#fff" d="M180.737 355.803l-26.986 8.936 21.11 19.862-28.438-1.827 11.716 26.232-25.549-12.29.526 28.597-18.786-20.9-10.741 26.632-9.15-26.32-20.365 20.588 1.861-27.734-26.884 11.427 12.602-24.918-29.335.513 21.43-18.322-27.295-10.476 26.987-8.923-21.122-19.862 28.436 1.815-11.703-26.22 25.55 12.29-.527-28.61 18.787 20.901 10.728-26.62 9.162 26.32 20.365-20.6-1.873 27.734 26.896-11.414-12.601 24.917 29.322-.513-21.43 18.323zM148.32 171.125l-11.33 8.387 5.584 4.614c13.561-10.482 23.211-20.062 30.753-35.96 1.769 21.22-17.683 68.855-68.73 69.381-54.633-.046-73.59-50.587-71.482-70.276 10.037 18.209 16.161 27.088 31.916 36.568l4.82-4.424-10.671-8.891 13.737-3.572-7.39-12.44 14.391 1.05-1.808-14.486 12.616 7.383 3.948-13.484 9.065 10.86 8.491-10.296 4.624 13.99 11.79-8.203-1.512 14.228 14.133-1.659-6.626 13.153 13.682 4.077z"/> - </g> - </g> - </g> -</svg> diff --git a/img/flags/1x1/nr.svg b/img/flags/1x1/nr.svg deleted file mode 100644 index 969f711..0000000 --- a/img/flags/1x1/nr.svg +++ /dev/null @@ -1,12 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" height="512" width="512" viewBox="0 0 512 512"> - <defs> - <clipPath id="a"> - <path fill-opacity=".67" d="M135.64 0H631.7v496.06H135.64z"/> - </clipPath> - </defs> - <g fill-rule="evenodd" clip-path="url(#a)" transform="translate(-140) scale(1.0321)" stroke-width="1pt"> - <path fill="#002170" d="M0 0h992.13v496.06H0z"/> - <path fill="#ffb20d" d="M0 226.82h992.13v42.42H0z"/> - <path fill="#fff" d="M292.413 424.352l-31.89-31.944-10.275 43.95-11.634-43.613-30.883 32.92 11.73-43.588-43.202 13.078 31.946-31.883-43.952-10.282 43.613-11.635-32.928-30.881 43.588 11.73L205.456 279l31.883 31.945 10.283-43.952 11.634 43.614 30.874-32.92-11.722 43.588 43.203-13.078-31.954 31.884 43.952 10.282L289.995 362l32.929 30.881-43.589-11.73z"/> - </g> -</svg> diff --git a/img/flags/1x1/nu.svg b/img/flags/1x1/nu.svg deleted file mode 100644 index 2d9b2fd..0000000 --- a/img/flags/1x1/nu.svg +++ /dev/null @@ -1,26 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" height="512" width="512" viewBox="0 0 512 512"> - <defs> - <clipPath id="a"> - <path fill-opacity=".67" d="M0 0h496.06v496.06H0z"/> - </clipPath> - </defs> - <g clip-path="url(#a)" transform="scale(1.0321)"> - <path fill-rule="evenodd" fill="#fff" d="M.013 0h499.55v248.1H.013z"/> - <path d="M.013 0l-.02 18.621 119.21 61.253 44.86 1.3L.012 0z" fill="#c00"/> - <path d="M51.054 0l144.53 75.491V.001H51.064z" fill="#006"/> - <path fill="#c00" d="M214.86 0v96.372H.02v55.07h214.84v96.372h66.106v-96.372h214.84v-55.07h-214.84V0H214.86z"/> - <path d="M300.24 0v71.132L441.63.552 300.24 0z" fill="#006"/> - <path d="M304.71 78.887l39.76-.32L498.95.551l-40.99.668-153.25 77.668z" fill="#c00"/> - <path d="M.013 167.5v52.775l99.16-52.22-99.16-.56z" fill="#006"/> - <path d="M381.85 169.68l-41.336-.321 155.82 77.58-1.025-17.749-113.46-59.51zM38.73 248.25l146.11-76.71-38.38.26L.01 248.14" fill="#c00"/> - <path d="M497.9 21.795l-118 58.515 116.43.436v87.194h-99.159l98.242 53.23 1.442 27.08-52.474-.627-143.62-70.505v71.132h-104.67v-71.132l-134.72 70.94-60.844.192v247.81h991.59V.43L498.947 0M.537 27.971L.014 79.438l104.39 1.308L.544 27.971z" fill="#006"/> - <g fill-rule="evenodd" stroke-width="1pt" fill="#ffd900"> - <path d="M496.06 0h496.06v496.06H496.06z"/> - <path d="M0 248.03h523.49v248.03H0z"/> - </g> - <g fill-rule="evenodd"> - <path d="M290.9 125.29c0 23.619-19.148 42.767-42.768 42.767-23.619 0-42.767-19.147-42.767-42.767s19.147-42.767 42.767-42.767c23.62 0 42.767 19.147 42.767 42.767z" fill="#000067"/> - <path fill="#fff40d" d="M226.833 154.052l8.27-24.576-21.6-15.182 26.686.025 8.225-24.59 8.224 24.59 26.686-.018-21.603 15.175 8.266 24.58-21.577-15.211zM382.118 136.948l4.098-11.506-10.704-7.107 13.225.011 4.076-11.512 4.076 11.512 13.226-.008-10.707 7.104 4.097 11.508-10.694-7.122zM237.438 222.488l4.098-11.506-10.704-7.107 13.225.011 4.076-11.512 4.076 11.512 13.226-.008-10.707 7.104 4.097 11.508-10.694-7.122zM237.438 55.438l4.098-11.506-10.704-7.107 13.225.011 4.076-11.512 4.076 11.512 13.226-.008-10.707 7.104 4.097 11.508-10.694-7.122zM92.31 136.948l4.099-11.506-10.705-7.107 13.226.011 4.076-11.512 4.076 11.512 13.225-.008-10.706 7.104 4.096 11.508-10.693-7.122z"/> - </g> - </g> -</svg> diff --git a/img/flags/1x1/nz.svg b/img/flags/1x1/nz.svg deleted file mode 100644 index 0a3b102..0000000 --- a/img/flags/1x1/nz.svg +++ /dev/null @@ -1,41 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" height="512" width="512" viewBox="0 0 512 512"> - <defs> - <g id="b"> - <g id="a"> - <path transform="translate(0 -.325)" d="M0 0v.5L1 0z"/> - <path d="M0 0v-.5L1 0z" transform="rotate(-36 .5 -.162)"/> - </g> - <use xlink:href="#a" transform="scale(-1 1)"/> - <use xlink:href="#a" transform="rotate(72 0 0)"/> - <use xlink:href="#a" transform="rotate(-72 0 0)"/> - <use xlink:href="#a" transform="scale(-1 1) rotate(72)"/> - </g> - <clipPath id="c"> - <path d="M0 0h600v300H0z"/> - </clipPath> - <clipPath id="d"> - <path d="M0 0l300 150H0zm300 0h300L300 150zm0 150h300v150zm0 0v150H0z"/> - </clipPath> - </defs> - <path fill-rule="evenodd" fill="#00247d" d="M.004 0h512v512h-512z"/> - <g transform="translate(-148.654 134.473) scale(.60566)"> - <use fill="#fff" height="100%" width="100%" xlink:href="#b" transform="matrix(45.4 0 0 45.4 900 120)"/> - <use fill="#cc142b" height="100%" width="100%" xlink:href="#b" transform="matrix(30 0 0 30 900 120)"/> - </g> - <g transform="rotate(82 393.421 127.092) scale(.60566)"> - <use fill="#fff" height="100%" width="100%" xlink:href="#b" transform="rotate(-82 519.022 -457.666) scale(40.4)"/> - <use fill="#cc142b" height="100%" width="100%" xlink:href="#b" transform="rotate(-82 519.022 -457.666) scale(25)"/> - </g> - <g transform="rotate(82 393.421 127.092) scale(.60566)"> - <use fill="#fff" height="100%" width="100%" xlink:href="#b" transform="rotate(-82 668.57 -327.666) scale(45.4)"/> - <use fill="#cc142b" height="100%" width="100%" xlink:href="#b" transform="rotate(-82 668.57 -327.666) scale(30)"/> - </g> - <g transform="translate(-148.654 134.473) scale(.60566)"> - <use fill="#fff" height="100%" width="100%" xlink:href="#b" transform="matrix(50.4 0 0 50.4 900 480)"/> - <use fill="#cc142b" height="100%" width="100%" xlink:href="#b" transform="matrix(35 0 0 35 900 480)"/> - </g> - <path transform="matrix(.52004 0 0 .78924 .002 0)" d="M0 0l600 300M0 300L600 0" clip-path="url(#c)" stroke="#fff" stroke-width="60"/> - <path transform="matrix(.52004 0 0 .78924 .002 0)" d="M0 0l600 300M0 300L600 0" clip-path="url(#d)" stroke="#cc142b" stroke-width="40"/> - <path style="line-height:normal;text-indent:0;text-align:start;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000;text-transform:none;block-progression:tb;isolation:auto;mix-blend-mode:normal" clip-path="url(#c)" d="M125.674-.004v88.049H-.06v60.682h125.733v88.046h60.681v-88.046h125.733V88.045H186.355V-.004h-60.681z" color="#000" font-weight="400" font-family="sans-serif" white-space="normal" overflow="visible" fill="#fff"/> - <path style="line-height:normal;text-indent:0;text-align:start;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000;text-transform:none;block-progression:tb;isolation:auto;mix-blend-mode:normal" d="M137.81.002v100.18H-.058v36.408h137.87v100.18h36.408V136.59h137.869v-36.408h-137.87V.002h-36.407z" color="#000" font-weight="400" font-family="sans-serif" white-space="normal" overflow="visible" fill="#cc142b"/> -</svg> diff --git a/img/flags/1x1/om.svg b/img/flags/1x1/om.svg deleted file mode 100644 index ba4e160..0000000 --- a/img/flags/1x1/om.svg +++ /dev/null @@ -1,128 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" height="512" width="512" viewBox="0 0 512 512"> - <defs> - <clipPath id="a"> - <path fill-opacity=".67" d="M0 0h512v512H0z"/> - </clipPath> - </defs> - <g clip-path="url(#a)"> - <path fill-rule="evenodd" fill="#ef2d29" d="M-23.298-21.609h554.71v553.02h-554.71z"/> - <path fill-rule="evenodd" fill="#009025" d="M164.57 341.33h376.55v207.56H164.57z"/> - <path fill-rule="evenodd" fill="#fff" d="M164.57-19.415h376.55v190.08H164.57z"/> - <g stroke="#ef2d28"> - <g fill-rule="evenodd" fill="#fff" transform="matrix(.19516 0 0 .17447 109.217 -5.34)"> - <rect rx="11.491" ry="12.053" height="85.039" width="138.19" y="467.72" x="17.717" stroke-width="1.43"/> - <rect rx="10.901" ry="11.049" height="77.953" width="131.1" y="471.26" x="21.26" stroke-width="1pt"/> - <path d="M64.966 396.07l9.723.443.442 5.745 7.955 5.303 6.187-6.629 7.513 5.303-7.07 5.746 1.767 7.955 8.838-.442v10.607l-7.07-.442-3.536 6.629 7.955 7.513-6.187 6.187-6.63-6.629-9.722 2.652.442 9.723-10.607.884-1.326-9.281-8.839-4.862-4.861 6.629-7.514-4.861 4.42-7.513-5.304-4.862H34.03l-.442-13.7 7.513.884 5.304-7.955-6.187-6.187 7.955-7.071 5.745 5.745 9.723-1.768 1.326-5.746z" transform="matrix(.68108 0 0 .5852 37.972 260.74)" stroke-width="1pt"/> - <ellipse transform="matrix(.65819 0 0 .70224 38.845 209.62)" cx="68.944" rx="11.049" cy="426.78" ry="9.944" stroke-width="1pt"/> - <g stroke-width="1pt"> - <path d="M38.976 474.8l-10.63 10.63M46.063 474.8l-10.63 10.63M53.149 474.8l-10.63 10.63M60.236 474.8l-10.63 10.63M67.322 474.8l-10.63 10.63M74.409 474.8l-10.63 10.63M81.496 474.8l-10.63 10.63M88.582 474.8l-10.63 10.63M95.669 474.8l-10.63 10.63M102.755 474.8l-10.63 10.63M109.842 474.8l-10.63 10.63M116.929 474.8l-10.63 10.63M88.582 474.8l-10.63 10.63M124.015 474.8l-10.63 10.63M131.102 474.8l-10.63 10.63M138.189 474.8l-10.63 10.63M145.276 474.8l-10.63 10.63M134.644 474.8l10.63 10.63M127.564 474.8l10.63 10.63M120.474 474.8l10.63 10.63M113.384 474.8l10.63 10.63M106.304 474.8l10.63 10.63M99.214 474.8l10.63 10.63M92.124 474.8l10.63 10.63M85.044 474.8l10.63 10.63M77.954 474.8l10.63 10.63M70.864 474.8l10.63 10.63M63.784 474.8l10.63 10.63M56.693 474.8l10.63 10.63M85.044 474.8l10.63 10.63M49.607 474.8l10.63 10.63M42.52 474.8l10.63 10.63M35.434 474.8l10.63 10.63M28.347 474.8l10.63 10.63"/> - </g> - <g stroke-width="1pt"> - <path d="M38.976 535.036l-10.63 10.63M46.063 535.036l-10.63 10.63M53.149 535.036l-10.63 10.63M60.236 535.036l-10.63 10.63M67.322 535.036l-10.63 10.63M74.409 535.036l-10.63 10.63M81.496 535.036l-10.63 10.63M88.582 535.036l-10.63 10.63M95.669 535.036l-10.63 10.63M102.755 535.036l-10.63 10.63M109.842 535.036l-10.63 10.63M116.929 535.036l-10.63 10.63M88.582 535.036l-10.63 10.63M124.015 535.036l-10.63 10.63M131.102 535.036l-10.63 10.63M138.189 535.036l-10.63 10.63M145.276 535.036l-10.63 10.63M134.644 535.036l10.63 10.63M127.564 535.036l10.63 10.63M120.474 535.036l10.63 10.63M113.384 535.036l10.63 10.63M106.304 535.036l10.63 10.63M99.214 535.036l10.63 10.63M92.124 535.036l10.63 10.63M85.044 535.036l10.63 10.63M77.954 535.036l10.63 10.63M70.864 535.036l10.63 10.63M63.784 535.036l10.63 10.63M56.693 535.036l10.63 10.63M85.044 535.036l10.63 10.63M49.607 535.036l10.63 10.63M42.52 535.036l10.63 10.63M35.434 535.036l10.63 10.63M28.347 535.036l10.63 10.63"/> - </g> - </g> - <g fill-rule="evenodd" fill="#fff" transform="matrix(.19516 0 0 .17447 18.63 -5.958)"> - <rect rx="11.491" ry="12.053" height="85.039" width="138.19" y="467.72" x="17.717" stroke-width="1.43"/> - <rect rx="10.901" ry="11.049" height="77.953" width="131.1" y="471.26" x="21.26" stroke-width="1pt"/> - <path d="M64.966 396.07l9.723.443.442 5.745 7.955 5.303 6.187-6.629 7.513 5.303-7.07 5.746 1.767 7.955 8.838-.442v10.607l-7.07-.442-3.536 6.629 7.955 7.513-6.187 6.187-6.63-6.629-9.722 2.652.442 9.723-10.607.884-1.326-9.281-8.839-4.862-4.861 6.629-7.514-4.861 4.42-7.513-5.304-4.862H34.03l-.442-13.7 7.513.884 5.304-7.955-6.187-6.187 7.955-7.071 5.745 5.745 9.723-1.768 1.326-5.746z" transform="matrix(.68108 0 0 .5852 37.972 260.74)" stroke-width="1pt"/> - <ellipse transform="matrix(.65819 0 0 .70224 38.845 209.62)" cx="68.944" rx="11.049" cy="426.78" ry="9.944" stroke-width="1pt"/> - <g stroke-width="1pt"> - <path d="M38.976 474.8l-10.63 10.63M46.063 474.8l-10.63 10.63M53.149 474.8l-10.63 10.63M60.236 474.8l-10.63 10.63M67.322 474.8l-10.63 10.63M74.409 474.8l-10.63 10.63M81.496 474.8l-10.63 10.63M88.582 474.8l-10.63 10.63M95.669 474.8l-10.63 10.63M102.755 474.8l-10.63 10.63M109.842 474.8l-10.63 10.63M116.929 474.8l-10.63 10.63M88.582 474.8l-10.63 10.63M124.015 474.8l-10.63 10.63M131.102 474.8l-10.63 10.63M138.189 474.8l-10.63 10.63M145.276 474.8l-10.63 10.63M134.644 474.8l10.63 10.63M127.564 474.8l10.63 10.63M120.474 474.8l10.63 10.63M113.384 474.8l10.63 10.63M106.304 474.8l10.63 10.63M99.214 474.8l10.63 10.63M92.124 474.8l10.63 10.63M85.044 474.8l10.63 10.63M77.954 474.8l10.63 10.63M70.864 474.8l10.63 10.63M63.784 474.8l10.63 10.63M56.693 474.8l10.63 10.63M85.044 474.8l10.63 10.63M49.607 474.8l10.63 10.63M42.52 474.8l10.63 10.63M35.434 474.8l10.63 10.63M28.347 474.8l10.63 10.63"/> - </g> - <g stroke-width="1pt"> - <path d="M38.976 535.036l-10.63 10.63M46.063 535.036l-10.63 10.63M53.149 535.036l-10.63 10.63M60.236 535.036l-10.63 10.63M67.322 535.036l-10.63 10.63M74.409 535.036l-10.63 10.63M81.496 535.036l-10.63 10.63M88.582 535.036l-10.63 10.63M95.669 535.036l-10.63 10.63M102.755 535.036l-10.63 10.63M109.842 535.036l-10.63 10.63M116.929 535.036l-10.63 10.63M88.582 535.036l-10.63 10.63M124.015 535.036l-10.63 10.63M131.102 535.036l-10.63 10.63M138.189 535.036l-10.63 10.63M145.276 535.036l-10.63 10.63M134.644 535.036l10.63 10.63M127.564 535.036l10.63 10.63M120.474 535.036l10.63 10.63M113.384 535.036l10.63 10.63M106.304 535.036l10.63 10.63M99.214 535.036l10.63 10.63M92.124 535.036l10.63 10.63M85.044 535.036l10.63 10.63M77.954 535.036l10.63 10.63M70.864 535.036l10.63 10.63M63.784 535.036l10.63 10.63M56.693 535.036l10.63 10.63M85.044 535.036l10.63 10.63M49.607 535.036l10.63 10.63M42.52 535.036l10.63 10.63M35.434 535.036l10.63 10.63M28.347 535.036l10.63 10.63"/> - </g> - </g> - <path d="M538.58 531.5c1.717 166.56 24.803 201.97 3.543 201.97s-31.89-92.07-31.89-205.51 14.173-205.51 35.433-205.51-8.913 31.909-7.086 209.06z" fill-rule="evenodd" transform="matrix(-.31598 -.12472 -.1982 .19883 339.924 68.244)" stroke-width="1pt" fill="#fff"/> - <path d="M545.67 779.53l-60.236 17.716c56.693 60.236 120.47 85.039 138.19 74.409 17.717-10.629-31.89-35.433-77.953-92.125z" fill-rule="evenodd" stroke-width="1.25" fill="#fff" transform="matrix(-.19516 0 0 .17447 142.637 -5.34)"/> - <path d="M547.27 786.9l-50.926 14.74c56.693 60.236 112.77 77.385 127.28 70.015 14.591-7.37-30.287-28.063-76.35-84.755z" fill-rule="evenodd" transform="matrix(-.1901 0 0 .16776 140.18 -.11)" stroke-width="1.292" fill="#fff"/> - <path d="M353.13 634.23c.187 1.273.748 7.068 1.25 9.375 0 3.186.288 5.632.625 8.125.796 2.177.661 4.198 3.125 5.001 1.694 2.631 2.76 3.313 5 4.375 1.527 1.323 3.84 2.642 6.25 3.75 2.499 1.071 4.771 1.218 7.5.625 2.19-1.526 3.804-3.1 5.625-4.375.429-1.973.822-4.903 1.25-6.875-.674 2.024-1.147 5.265-1.25 8.125.24 3.12 1.265 4.481 2.5 6.875" transform="matrix(-.13744 0 0 .12206 120.788 27.901)" stroke-width="1.781" fill="none"/> - <path d="M389.38 681.73l.625-.625c-1.484 1.484-.878.776 2.5-1.25 2.426-1.246 5.015-1.908 8.125-2.5h8.75c3.405 0 5.696.511 8.125 1.25 1.762 1.762 4.393 2.763 6.25 4.375 1.905 1.295 2.722 2.829 3.75 5 1.701 1.701 2.803 4.326 4.375 5.625.704 2.871 2.141 2.773 3.125 5-2.948.227-5.311.631-6.875 2.5-2.597 1.344 2.179-1.317 3.125-2.5 2.046-.618 2.576-1.25 5.625-1.25 2.85-.904 4.579.737 7.5 1.25 1.705.987 2.178 1.25 4.376 1.25" transform="matrix(-.13744 0 0 .12206 122.594 27.214)" stroke-width="1.781" fill="none"/> - <path d="M438.13 724.86c1.273.075 7.083 1.146 9.376 0 2.552-.696 4.068-2.04 5.625-4.375.767-1.689 0 2.998 0 5 .283 3.68 1.366 3.714 3.125 6.25 1.814 1.163 3.725 2.8 5.625 3.75 1.576 1.366 3.513 2.28 5.625 3.125 1.896.898 4.111 1.813 5.625 3.125 2.09 1.493 1.888 3.278 3.125 5.625-.235 3.057-.733 4.79-2.5 6.25-.738 2.113-2.395 4.205-3.75 5.625-1.545 2.87-3.256 4.224.625 5 2.132.914 3.327.197 5.625 0" transform="matrix(-.13744 0 0 .12206 124.655 25.766)" stroke-width="1.781" fill="none"/> - <path d="M480.63 771.73c1.536-.391 6.983-2.213 9.375-3.125h8.75c3.391.261 4.037 1.256 6.876 2.5 1.832 1.871 3.089 3.162 5.625 4.376 1.341 1.733 3.953 4.677 5 6.875.745 2.133 1.25 5.018 1.25 8.125-.044 3.648-1.002 4.271-1.25 7.5-.701 2.684-1.839 5.143-3.75 7.5-.265.793-.457.986-1.25 1.25" transform="matrix(-.13744 0 0 .12206 125.084 25.383)" stroke-width="1.781" fill="none"/> - <path d="M538.13 817.98c.374 0 1.201 2.018 2.5 3.75 2.828 2.906 3.192 3.125 7.5 3.125 3.884-.143 3.522-1.532 6.25-2.5 1.289-2.008 2.896-3.6 4.375-6.25 1.006-1.634 1.89-4.129 3.125-5.625 1.141-1.854 2.563-3.254 3.75-5 1.172-.502 1.618-.984 3.126-1.25-3.6.578-3.915 1.867-6.251 3.75-1.094 1.779-2.181 3.633-3.125 5.625-.361 2.673-1.21 4.779-1.25 8.125 0 3.457.017 5.872 1.25 8.75 1.473 1.545 2.563 3.143 4.375 4.376 1.439 1.405 3.244 3.336 4.376 5 1.96 1.206 3.385 2.189 5.625 3.75 1.884 1.102 3.915 2.234 6.875 2.5 3.67-.262 4.755-1.297 7.5-2.5 2.329-1.713 4.163-2.838 6.25-4.375 1.629-1.141 3.288-3.403 4.375-5 3.382-.846 5.529-.508 7.5 1.25a16.536 16.536 0 0 1 4.375 4.375c1.02.51 2.73 1.99 3.75 2.5" transform="matrix(-.09758 0 0 .09635 107.445 46.037)" stroke-width="2.379" fill="none"/> - <path d="M503.76 836.11c-.802.334-3.717 2.367-5 3.125-.8 2.631-2.077 4.069-2.5 6.875-.677 2.709-.625 5.692-.625 8.75.685 3.194 2.015 5.557 3.125 8.125 1.974 1.342 2.967 2.33 5.625 3.75 2.494.337 4.94.625 8.126.625 1.904.635 5.615.942 7.5 0 2.783-.376 4.854-1.507 6.875-2.5 2.306-1.307 3.728-2.542 6.25-3.75 1.225-1.801 3.13-3.46 5-5.625 1.556-2.105 2.7-3.286 3.75-5.625-.924 2.669-2.327 4.999-3.125 7.5-1.422 2.661-2.248 3.604-2.5 6.875-.871 2.613-.625 5.76-.625 8.75.274 2.031.418 5.837 1.25 7.5v1.875" transform="matrix(-.12132 0 0 .12024 109.33 26.805)" stroke-width="1.91" fill="none"/> - <path d="M541.26 799.23v.625c0-1.687.041-.83-.625 2.5-1.179 1.462-3.944 1.868-6.25 1.25-2.022-1.67-1.96-2.935-5.625-3.75-3.542.253-4.892 1.279-6.875 2.5-2.354 1.177-3.438 1.771-5 4.375-.776 2.12-1.209 3.555 1.25 4.375 1.954 1.386 4.277 2.149 6.875 2.5 2.887 0 4.968-.339 6.25 1.25 1.983 2.055 1.875 3.277 1.875 6.875.667 1.112.799 4.394 1.25 5.625 1.736.823 2.755 1.25 5.625 1.25.674-1.931 1.423-5.419 1.875-7.5.489-2.248.64-5.379 1.875-6.875a16.58 16.58 0 0 1 4.375-4.375c.766-1.073 2.223-1.965 3.75-2.5-2.452 1.251-2.801 2.603-3.125 5.625 2.155 1.078 2.731 1.833 6.25 1.875 3.459-.291 4.295-1.169 5.625-3.125.242 3.136 1.243 4.186 1.875 6.875 1.286 1.891 1.832 3.828 3.125 6.25-.551 3.012-1.737 3.163-1.875 6.875-.811 2.435-.723 4.783-2.5 6.251-.792.968-1.384 1.158-3.125 1.25 3.618 0 5.727-.391 8.125-1.875 1.854-1.141 3.255-2.563 5.001-3.75 2.212-1.603 4.947-3.085 7.5-3.751 2.887 0 4.968-.339 6.25 1.25 1.77 1.265 2.959 3.447 3.75 6.251.579 3.244.8 5.404-.625 7.5-1.057 2.408-1.297 3.346 0 6.25 1.452 2.033 3.617 2.272 6.875 3.125 2.379-.128 4.668-.671 6.25-1.25" stroke-width="1.25" fill="none" transform="matrix(-.19516 0 0 .17447 142.637 -5.34)"/> - <g fill-rule="evenodd" stroke-width="1pt" transform="matrix(-.19516 0 0 .17447 142.637 -5.34)"> - <path d="M531.5 359.64c0-165.27 7.937-299.41 17.717-299.41 9.779 0 17.716 134.13 17.716 299.41H531.5z" transform="matrix(1.4216 -.73423 .46161 .89375 -716.84 541.07)" fill="#fff"/> - <path d="M531.5 359.64c0-165.27 7.937-299.41 17.717-299.41 9.779 0 17.716 134.13 17.716 299.41" transform="matrix(1.1373 -.58739 .44532 .86221 -554.83 471.77)" fill="#fff"/> - <path d="M563.39 301.18c.189 18.908 0 40.188 0 60.236h-28.347c0-20.048-.189-41.328 0-60.236h28.347z" transform="matrix(1.4216 -.73423 .45889 .88849 -716.67 541.39)" fill="#fff"/> - <path d="M559.84 304.72c.189 18.908 0 33.102 0 53.15h-21.26c0-20.048-.189-34.242 0-53.15h21.26z" transform="matrix(1.4216 -.73423 .45889 .88849 -716.67 541.39)" fill="#fff"/> - <path transform="matrix(1.4216 -.73423 .45889 .88849 -716.67 541.39)" fill="#fff" d="M542.13 311.81h14.173v38.976H542.13zM542.13 311.81l14.173 38.976M542.13 350.79l14.173-38.976M542.13 113.39h14.173"/> - <ellipse fill="#ef0000" transform="matrix(1.6046 .45375 -.36215 1.5787 -734.9 -170.85)" cx="545.67" rx="3.543" cy="92.126" ry="3.543"/> - </g> - <g> - <path d="M538.58 531.5c1.717 166.56 24.803 201.97 3.543 201.97s-31.89-92.07-31.89-205.51 14.173-205.51 35.433-205.51-8.913 31.909-7.086 209.06z" fill-rule="evenodd" transform="matrix(.31598 -.12472 .1982 .19883 -178.657 67.627)" stroke-width="1pt" fill="#fff"/> - <path d="M545.67 779.53l-60.236 17.716c56.693 60.236 120.47 85.039 138.19 74.409 17.717-10.629-31.89-35.433-77.953-92.125z" fill-rule="evenodd" stroke-width="1.25" fill="#fff" transform="matrix(.19516 0 0 .17447 18.63 -5.958)"/> - <path d="M547.27 786.9l-50.926 14.74c56.693 60.236 112.77 77.385 127.28 70.015 14.591-7.37-30.287-28.063-76.35-84.755z" fill-rule="evenodd" transform="matrix(.1901 0 0 .16776 21.086 -.727)" stroke-width="1.292" fill="#fff"/> - <path d="M353.13 634.23c.187 1.273.748 7.068 1.25 9.375 0 3.186.288 5.632.625 8.125.796 2.177.661 4.198 3.125 5.001 1.694 2.631 2.76 3.313 5 4.375 1.527 1.323 3.84 2.642 6.25 3.75 2.499 1.071 4.771 1.218 7.5.625 2.19-1.526 3.804-3.1 5.625-4.375.429-1.973.822-4.903 1.25-6.875-.674 2.024-1.147 5.265-1.25 8.125.24 3.12 1.265 4.481 2.5 6.875" transform="matrix(.13744 0 0 .12206 40.478 27.284)" stroke-width="1.781" fill="none"/> - <path d="M389.38 681.73l.625-.625c-1.484 1.484-.878.776 2.5-1.25 2.426-1.246 5.015-1.908 8.125-2.5h8.75c3.405 0 5.696.511 8.125 1.25 1.762 1.762 4.393 2.763 6.25 4.375 1.905 1.295 2.722 2.829 3.75 5 1.701 1.701 2.803 4.326 4.375 5.625.704 2.871 2.141 2.773 3.125 5-2.948.227-5.311.631-6.875 2.5-2.597 1.344 2.179-1.317 3.125-2.5 2.046-.618 2.576-1.25 5.625-1.25 2.85-.904 4.579.737 7.5 1.25 1.705.987 2.178 1.25 4.376 1.25" transform="matrix(.13744 0 0 .12206 38.673 26.597)" stroke-width="1.781" fill="none"/> - <path d="M438.13 724.86c1.273.075 7.083 1.146 9.376 0 2.552-.696 4.068-2.04 5.625-4.375.767-1.689 0 2.998 0 5 .283 3.68 1.366 3.714 3.125 6.25 1.814 1.163 3.725 2.8 5.625 3.75 1.576 1.366 3.513 2.28 5.625 3.125 1.896.898 4.111 1.813 5.625 3.125 2.09 1.493 1.888 3.278 3.125 5.625-.235 3.057-.733 4.79-2.5 6.25-.738 2.113-2.395 4.205-3.75 5.625-1.545 2.87-3.256 4.224.625 5 2.132.914 3.327.197 5.625 0" transform="matrix(.13744 0 0 .12206 36.612 25.149)" stroke-width="1.781" fill="none"/> - <path d="M480.63 771.73c1.536-.391 6.983-2.213 9.375-3.125h8.75c3.391.261 4.037 1.256 6.876 2.5 1.832 1.871 3.089 3.162 5.625 4.376 1.341 1.733 3.953 4.677 5 6.875.745 2.133 1.25 5.018 1.25 8.125-.044 3.648-1.002 4.271-1.25 7.5-.701 2.684-1.839 5.143-3.75 7.5-.265.793-.457.986-1.25 1.25" transform="matrix(.13744 0 0 .12206 36.183 24.767)" stroke-width="1.781" fill="none"/> - <path d="M538.13 817.98c.374 0 1.201 2.018 2.5 3.75 2.828 2.906 3.192 3.125 7.5 3.125 3.884-.143 3.522-1.532 6.25-2.5 1.289-2.008 2.896-3.6 4.375-6.25 1.006-1.634 1.89-4.129 3.125-5.625 1.141-1.854 2.563-3.254 3.75-5 1.172-.502 1.618-.984 3.126-1.25-3.6.578-3.915 1.867-6.251 3.75-1.094 1.779-2.181 3.633-3.125 5.625-.361 2.673-1.21 4.779-1.25 8.125 0 3.457.017 5.872 1.25 8.75 1.473 1.545 2.563 3.143 4.375 4.376 1.439 1.405 3.244 3.336 4.376 5 1.96 1.206 3.385 2.189 5.625 3.75 1.884 1.102 3.915 2.234 6.875 2.5 3.67-.262 4.755-1.297 7.5-2.5 2.329-1.713 4.163-2.838 6.25-4.375 1.629-1.141 3.288-3.403 4.375-5 3.382-.846 5.529-.508 7.5 1.25a16.536 16.536 0 0 1 4.375 4.375c1.02.51 2.73 1.99 3.75 2.5" transform="matrix(.09758 0 0 .09635 53.821 45.42)" stroke-width="2.379" fill="none"/> - <path d="M503.76 836.11c-.802.334-3.717 2.367-5 3.125-.8 2.631-2.077 4.069-2.5 6.875-.677 2.709-.625 5.692-.625 8.75.685 3.194 2.015 5.557 3.125 8.125 1.974 1.342 2.967 2.33 5.625 3.75 2.494.337 4.94.625 8.126.625 1.904.635 5.615.942 7.5 0 2.783-.376 4.854-1.507 6.875-2.5 2.306-1.307 3.728-2.542 6.25-3.75 1.225-1.801 3.13-3.46 5-5.625 1.556-2.105 2.7-3.286 3.75-5.625-.924 2.669-2.327 4.999-3.125 7.5-1.422 2.661-2.248 3.604-2.5 6.875-.871 2.613-.625 5.76-.625 8.75.274 2.031.418 5.837 1.25 7.5v1.875" transform="matrix(.12132 0 0 .12024 51.936 26.188)" stroke-width="1.91" fill="none"/> - <path d="M541.26 799.23v.625c0-1.687.041-.83-.625 2.5-1.179 1.462-3.944 1.868-6.25 1.25-2.022-1.67-1.96-2.935-5.625-3.75-3.542.253-4.892 1.279-6.875 2.5-2.354 1.177-3.438 1.771-5 4.375-.776 2.12-1.209 3.555 1.25 4.375 1.954 1.386 4.277 2.149 6.875 2.5 2.887 0 4.968-.339 6.25 1.25 1.983 2.055 1.875 3.277 1.875 6.875.667 1.112.799 4.394 1.25 5.625 1.736.823 2.755 1.25 5.625 1.25.674-1.931 1.423-5.419 1.875-7.5.489-2.248.64-5.379 1.875-6.875a16.58 16.58 0 0 1 4.375-4.375c.766-1.073 2.223-1.965 3.75-2.5-2.452 1.251-2.801 2.603-3.125 5.625 2.155 1.078 2.731 1.833 6.25 1.875 3.459-.291 4.295-1.169 5.625-3.125.242 3.136 1.243 4.186 1.875 6.875 1.286 1.891 1.832 3.828 3.125 6.25-.551 3.012-1.737 3.163-1.875 6.875-.811 2.435-.723 4.783-2.5 6.251-.792.968-1.384 1.158-3.125 1.25 3.618 0 5.727-.391 8.125-1.875 1.854-1.141 3.255-2.563 5.001-3.75 2.212-1.603 4.947-3.085 7.5-3.751 2.887 0 4.968-.339 6.25 1.25 1.77 1.265 2.959 3.447 3.75 6.251.579 3.244.8 5.404-.625 7.5-1.057 2.408-1.297 3.346 0 6.25 1.452 2.033 3.617 2.272 6.875 3.125 2.379-.128 4.668-.671 6.25-1.25" stroke-width="1.25" fill="none" transform="matrix(.19516 0 0 .17447 18.63 -5.958)"/> - </g> - <g stroke-width="1pt" fill-rule="evenodd" transform="matrix(.19516 0 0 .17447 18.63 -5.958)"> - <path d="M531.5 359.64c0-165.27 7.937-299.41 17.717-299.41 9.779 0 17.716 134.13 17.716 299.41H531.5z" transform="matrix(1.4216 -.73423 .46161 .89375 -716.84 541.07)" fill="#fff"/> - <path d="M531.5 359.64c0-165.27 7.937-299.41 17.717-299.41 9.779 0 17.716 134.13 17.716 299.41" transform="matrix(1.1373 -.58739 .44532 .86221 -554.83 471.77)" fill="#fff"/> - <path d="M563.39 301.18c.189 18.908 0 40.188 0 60.236h-28.347c0-20.048-.189-41.328 0-60.236h28.347z" transform="matrix(1.4216 -.73423 .45889 .88849 -716.67 541.39)" fill="#fff"/> - <path d="M559.84 304.72c.189 18.908 0 33.102 0 53.15h-21.26c0-20.048-.189-34.242 0-53.15h21.26z" transform="matrix(1.4216 -.73423 .45889 .88849 -716.67 541.39)" fill="#fff"/> - <path transform="matrix(1.4216 -.73423 .45889 .88849 -716.67 541.39)" fill="#fff" d="M542.13 311.81h14.173v38.976H542.13zM542.13 311.81l14.173 38.976M542.13 350.79l14.173-38.976M542.13 113.39h14.173"/> - <ellipse fill="#ef0000" transform="matrix(1.6046 .45375 -.36215 1.5787 -734.9 -170.85)" cx="545.67" rx="3.543" cy="92.126" ry="3.543"/> - </g> - <g fill-rule="evenodd" fill="#fff" transform="matrix(.19516 0 0 .17447 18.63 -5.958)"> - <path d="M305.61 396.85c0 124.02.491 170.76-5.62 177.17-5.79 6.857-167.12 0-167.12 35.433s132.87 70.867 172.74 70.866c53.149 0 79.723-35.433 79.723-106.3v-177.17H305.61z" transform="matrix(1.3333 0 0 1 -141.74 0)" stroke-width="1pt"/> - <path d="M265.75 396.85v17.717c35.433 5.906 70.866 5.906 106.3 0V396.85c-35.433 5.906-70.866 5.906-106.3 0z" transform="matrix(1 0 0 .99999 0 35.437)" stroke-width="1pt"/> - <path d="M265.75 396.85v17.717c35.433 5.906 70.866 5.906 106.3 0V396.85c-35.433 5.906-70.866 5.906-106.3 0z" transform="matrix(1 0 0 .99999 0 .004)" stroke-width="1pt"/> - <path d="M265.75 396.85v17.717c35.433 5.906 70.866 5.906 106.3 0V396.85c-35.433 5.906-70.866 5.906-106.3 0z" transform="matrix(1 0 0 .99999 0 17.721)" stroke-width="1pt"/> - <path d="M265.75 396.85v17.717c35.433 5.906 70.866 5.906 106.3 0V396.85c-35.433 5.906-70.866 5.906-106.3 0z" transform="matrix(1 0 0 .99999 0 53.154)" stroke-width="1pt"/> - <ellipse transform="matrix(.54545 0 0 .14383 130.46 394.32)" cx="256.89" rx="8.858" cy="210.83" ry="26.575" stroke-width="4.463"/> - <ellipse transform="matrix(.54545 0 0 .14383 130.46 391.13)" cx="292.32" rx="8.858" cy="246.26" ry="26.575" stroke-width="4.463"/> - <ellipse transform="matrix(.54545 0 0 .14383 130.46 390.49)" cx="327.76" rx="8.858" cy="263.98" ry="26.575" stroke-width="4.463"/> - <ellipse transform="matrix(.54545 0 0 .14383 130.46 390.49)" cx="363.19" rx="8.858" cy="263.98" ry="26.575" stroke-width="4.463"/> - <ellipse transform="matrix(.54545 0 0 .14383 130.46 391.13)" cx="398.62" rx="8.858" cy="246.26" ry="26.575" stroke-width="4.463"/> - <ellipse transform="matrix(.54545 0 0 .14383 130.46 394.32)" cx="434.06" rx="8.858" cy="210.83" ry="26.575" stroke-width="4.463"/> - <path d="M265.75 485.43l106.3 95.669M276.38 485.43l95.669 85.039M290.55 488.98l81.496 70.866M301.18 488.98l70.866 60.237M311.81 488.98l60.236 49.607M322.44 488.98l49.606 38.977M333.07 488.98l38.976 28.347M343.7 488.98l28.346 21.26M354.33 488.98l17.716 14.174M364.96 488.98l7.086 7.087M265.75 496.06l106.3 95.669M372.05 485.43l-116.93 106.3M361.42 485.43l-102.76 92.126M347.25 488.98l-81.496 70.866M336.62 488.98l-70.866 60.237M325.99 488.98l-60.236 49.607M315.36 488.98l-49.606 38.977M304.73 488.98l-38.976 28.347M294.1 488.98l-28.346 21.26M283.47 488.98l-17.716 14.174M272.84 488.98l-7.086 7.087M372.05 496.06l-116.93 106.3M372.05 506.69l-116.93 106.3M372.05 517.32l-116.93 106.3M372.05 527.95l-116.93 106.3M372.05 538.58l-116.93 106.3M372.05 549.21l-116.93 106.3M372.05 559.84l-116.93 106.3M372.05 570.47l-116.93 106.3M372.05 581.1l-109.84 99.21M372.05 591.73l-99.212 88.583M368.5 605.9l-77.953 70.866M364.96 620.08l-63.779 56.693M357.87 637.79l-31.89 28.346M265.75 506.69l102.76 92.126M265.747 517.327l102.76 92.126M265.747 527.957l99.213 88.583M265.747 538.587l99.213 88.583M265.753 549.213l95.67 85.039M262.204 556.303l95.669 85.04M262.204 566.933l88.583 77.953M258.663 574.013l88.583 77.953M255.114 581.103l85.04 74.409M255.113 591.73l81.496 70.865M255.113 602.36l70.866 63.779" stroke-width="1pt"/> - <path d="M265.75 396.85v17.717c35.433 5.906 70.866 5.906 106.3 0V396.85c-35.433 5.906-70.866 5.906-106.3 0z" transform="matrix(1 0 0 .99999 0 70.87)" stroke-width="1pt"/> - <path d="M255.114 612.99l63.78 56.692M255.114 623.62l56.693 49.606M255.113 634.25l49.606 42.519M255.114 644.88l35.434 31.889M255.114 655.51l28.347 24.804M255.113 666.14l17.716 14.173" stroke-width="1pt"/> - <ellipse transform="matrix(.54545 0 0 .14383 130.46 447.47)" cx="256.89" rx="8.858" cy="210.83" ry="26.575" stroke-width="4.463"/> - <ellipse transform="matrix(.54545 0 0 .14383 130.46 444.28)" cx="292.32" rx="8.858" cy="246.26" ry="26.575" stroke-width="4.463"/> - <ellipse transform="matrix(.54545 0 0 .14383 130.46 443.64)" cx="327.76" rx="8.858" cy="263.98" ry="26.575" stroke-width="4.463"/> - <ellipse transform="matrix(.54545 0 0 .14383 130.46 443.64)" cx="363.19" rx="8.858" cy="263.98" ry="26.575" stroke-width="4.463"/> - <ellipse transform="matrix(.54545 0 0 .14383 130.46 444.28)" cx="398.62" rx="8.858" cy="246.26" ry="26.575" stroke-width="4.463"/> - <ellipse transform="matrix(.54545 0 0 .14383 130.46 447.47)" cx="434.06" rx="8.858" cy="210.83" ry="26.575" stroke-width="4.463"/> - <path d="M113.39 651.97l127.55-74.41M106.303 648.427l120.47-70.87M102.76 641.341l109.84-63.78M99.217 634.254l95.669-56.693M92.127 627.16l88.583-49.606M95.667 616.537l60.236-35.433M92.127 609.454l46.063-28.346M92.124 598.817l31.89-17.717M124.013 655.507l120.47-70.86M134.647 659.054l113.38-67.32M145.28 662.6l106.3-63.78M155.91 666.144l88.583-53.15M170.083 666.136l77.952-46.063M180.713 669.68l67.323-38.976M191.336 673.227l53.15-31.89M205.51 673.233l42.52-24.803M219.68 676.777l28.347-17.717M233.863 676.773l17.717-10.63" stroke-width="1pt"/> - <path d="M265.75 396.85v17.717c35.433 5.906 70.866 5.906 106.3 0V396.85c-35.433 5.906-70.866 5.906-106.3 0z" transform="matrix(0 1 -.99999 0 655.51 308.27)" stroke-width="1pt"/> - <path d="M49.61 623.624l42.52-35.433M49.61 598.8l42.52 42.52" stroke-width="1pt"/> - <path d="M260.15 387.99l5.595 26.575c35.433 5.906 65.271 5.906 100.7 0l11.19-26.575c-35.433 5.906-82.056 5.906-117.49 0z" transform="matrix(0 .63333 -.8 0 423.78 416.34)" stroke-width="1pt"/> - <path d="M258.66 350.79v-17.865c-10.63.149-17.716-10.481-17.717-21.26l-35.432.149c0 10.63-7.087 21.26-17.717 21.26v17.716h70.866z" transform="matrix(1.4983 0 0 1 -15.633 53.149)" stroke-width="1pt"/> - <path stroke-width="1.379" d="M296.09 343.7h45.506v21.26H296.09zM299.88 322.44h37.922v21.26H299.88zM299.88 301.18h37.922v21.26H299.88zM303.67 272.83h30.337v28.346H303.67z"/> - <path stroke-width="1.438" d="M302.36 248.03h32.953v24.803H302.36z"/> - <ellipse transform="matrix(1.0333 0 0 1 75.354 63.779)" cx="237.4" rx="42.52" cy="161.22" ry="33.661" stroke-width="1pt"/> - <path d="M258.66 159.45c0 9.291 10.63 24.803 10.63 24.803-7.696 6.093-20.154 10.63-31.889 10.63s-26.349-2.528-31.89-10.63c0 0 10.63-15.512 10.63-24.803s-10.63-21.26-10.63-21.26c7.696-6.093 20.154-10.63 31.89-10.63 11.735 0 24.193 4.537 31.889 10.63 0 0-10.63 11.969-10.63 21.26z" transform="matrix(1.0333 0 0 1 75.354 63.779)" stroke-width="1pt"/> - <path d="M251.58 159.45c0 9.291 10.63 28.346 10.63 28.346-7.696 6.093-13.068 7.087-24.803 7.087s-19.262 1.015-24.803-7.087c0 0 10.63-19.055 10.63-28.346s-10.63-24.803-10.63-24.803c7.696-6.093 13.067-7.087 24.803-7.087 11.735 0 17.107.994 24.803 7.087 0 0-10.63 15.512-10.63 24.803z" transform="matrix(1.0333 0 0 1 75.354 63.779)" stroke-width="1pt"/> - <ellipse transform="matrix(1.0333 0 0 1 75.354 60.236)" cx="194.88" rx="10.63" cy="166.54" ry="10.63" stroke-width="1pt"/> - <ellipse transform="matrix(1.0333 0 0 1 163.23 60.236)" cx="194.88" rx="10.63" cy="166.54" ry="10.63" stroke-width="1pt"/> - <ellipse transform="matrix(1.0333 0 0 1 119.29 60.236)" cx="194.88" rx="10.63" cy="166.54" ry="10.63" stroke-width="1pt"/> - <ellipse transform="matrix(1.0333 0 0 1 119.29 24.803)" cx="194.88" rx="10.63" cy="166.54" ry="10.63" stroke-width="1pt"/> - <ellipse transform="matrix(1.0702 0 0 1 79.931 226.77)" cx="194.88" rx="10.63" cy="166.54" ry="10.63" stroke-width="1pt"/> - <ellipse transform="matrix(1.0702 0 0 1 140.61 226.77)" cx="194.88" rx="10.63" cy="166.54" ry="10.63" stroke-width="1pt"/> - <path d="M212.6 311.81h49.607l-24.803 31.89-24.804-31.89z" transform="matrix(1.0702 0 0 1 64.762 53.149)" stroke-width="1pt"/> - <ellipse transform="matrix(1.427 0 0 1.3333 40.745 167.72)" cx="194.88" rx="10.63" cy="166.54" ry="10.63" stroke-width="1pt"/> - </g> - <g fill-rule="evenodd" fill="#fff" transform="matrix(.19516 0 0 .17447 18.285 -10.895)"> - <rect rx="4.423" ry="3.75" height="21.26" width="81.496" y="524.41" x="262.2" stroke-width="1.25"/> - <path d="M368.51 506.69c-9.814 0-17.716 8.259-17.716 18.519v16.111c0 10.26 7.902 18.52 17.716 18.52 9.815 0 17.717-8.26 17.717-18.52v-16.111c0-10.26-7.902-18.519-17.717-18.519zm0 7.087c-5.888 0-10.63 6.608-10.63 14.816v9.345c0 8.208 4.742 14.816 10.63 14.816 5.889 0 10.63-6.608 10.63-14.816v-9.345c0-8.208-4.741-14.816-10.63-14.816zM276.38 510.24c-5.888 0-10.63 6.608-10.63 14.816v16.432c0 8.208 4.742 14.816 10.63 14.816 5.889 0 10.63-6.608 10.63-14.816v-16.432c0-8.208-4.741-14.816-10.63-14.816zm0-7.087c-9.814 0-17.716 8.259-17.716 18.519v23.198c0 10.26 7.902 18.52 17.716 18.52 9.815 0 17.717-8.26 17.717-18.52v-23.198c0-10.26-7.902-18.519-17.717-18.519z" stroke-width="1.25"/> - <path d="M248.03 517.32c-5.888 0-10.63 6.608-10.63 14.816l-.001 3.864c0 8.208 4.742 14.816 10.63 14.816 5.889 0 10.63-6.608 10.63-14.816l.001-3.864c0-8.208-4.741-14.816-10.63-14.816zm0-7.087c-9.814 0-17.716 8.259-17.716 18.519l-.001 10.63c0 10.26 7.902 18.52 17.716 18.52 9.815 0 17.717-8.26 17.717-18.52l.001-10.63c0-10.26-7.902-18.519-17.717-18.519z" stroke-width="1.25"/> - <path d="M478.35 237.4c-5.888 0-10.63 6.608-10.63 14.816v16.432c0 8.208 4.742 14.816 10.63 14.816 5.889 0 10.63-6.608 10.63-14.816v-16.432c0-8.208-4.741-14.816-10.63-14.816zm0-7.087c-9.814 0-17.716 8.259-17.716 18.519v23.198c0 10.26 7.902 18.52 17.716 18.52 9.815 0 17.717-8.26 17.717-18.52v-23.198c0-10.26-7.902-18.519-17.717-18.519z" transform="matrix(1.8 0 0 1.1176 -655.51 242.2)" stroke-width=".881"/> - <path d="M478.35 237.4c-5.888 0-10.63 6.608-10.63 14.816v16.432c0 8.208 4.742 14.816 10.63 14.816 5.889 0 10.63-6.608 10.63-14.816v-16.432c0-8.208-4.741-14.816-10.63-14.816zm0-7.087c-9.814 0-17.716 8.259-17.716 18.519v23.198c0 10.26 7.902 18.52 17.716 18.52 9.815 0 17.717-8.26 17.717-18.52v-23.198c0-10.26-7.902-18.519-17.717-18.519z" transform="matrix(1.8 0 0 1.1176 -425.2 245.74)" stroke-width=".881"/> - <rect rx="2.308" ry="3.75" height="21.26" width="42.52" y="524.41" x="375.59" stroke-width="1.25"/> - <rect rx="1.346" ry="5" height="28.346" width="24.803" y="520.87" x="336.61" stroke-width="1.25"/> - <rect rx="1.346" ry="5" height="28.346" width="24.803" y="520.87" x="219.69" stroke-width="1.25"/> - <rect rx="2.692" ry="6.25" height="35.433" width="49.606" y="517.32" x="141.73" stroke-width="1.25"/> - <rect rx="2.5" ry="6.25" height="35.433" width="46.063" y="520.87" x="450" stroke-width="1.25"/> - </g> - </g> - </g> -</svg> diff --git a/img/flags/1x1/pa.svg b/img/flags/1x1/pa.svg deleted file mode 100644 index 2cf091a..0000000 --- a/img/flags/1x1/pa.svg +++ /dev/null @@ -1,13 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" height="512" width="512" viewBox="0 0 512 512"> - <defs> - <clipPath id="a"> - <path fill-opacity=".67" d="M0 0h512v512H0z"/> - </clipPath> - </defs> - <g fill-rule="evenodd" clip-path="url(#a)"> - <path fill="#fff" d="M-26.003-24.954h592.45v595.94h-592.45z"/> - <path fill="#db0000" d="M255.34-20.417h312.09v275.22H255.34z"/> - <path fill="#0000ab" d="M-54.446 254.81h309.82v316.17h-309.82zM178.98 181.59l-46.477-29.211-46.249 29.498 17.201-47.936-46.164-29.6 57.113-.413 17.715-47.79 18.094 47.68 57.113.063-45.927 29.88 17.581 47.83z"/> - <path d="M435.24 449.04l-46.477-29.211-46.249 29.498 17.201-47.936-46.164-29.6 57.113-.413 17.715-47.79 18.094 47.68 57.113.063-45.927 29.88 17.581 47.83z" fill="#d80000"/> - </g> -</svg> diff --git a/img/flags/1x1/pe.svg b/img/flags/1x1/pe.svg deleted file mode 100644 index 78455bc..0000000 --- a/img/flags/1x1/pe.svg +++ /dev/null @@ -1,320 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" height="512" width="512" viewBox="0 0 512 512"> - <path fill="#d91023" d="M0 0h512v512H0z"/> - <path fill="#fff" d="M170.667 0h170.667v512H170.667z"/> - <g transform="translate(196.267 187.271) scale(.14222)" stroke="#d4af37" stroke-width="2" fill="#00a854"> - <g transform="matrix(.44722 -.20656 .2582 .35777 89.404 -67.294)" id="g" stroke-width="4.33"> - <path d="M480.212 566.87c31.28 33.04 62.37 68.152 78.925 111.21 25.21 69.711 18.346 151.527-22.518 213.983-34.388 51.789-85.32 91.514-141.97 116.401-51.945 21.524-112.113 23.773-164.827 3.54-20.114-7.373-38.889-17.914-57.51-28.315-8.441-1.44-13.874 8.648-6.988 13.292 62.35 40.624 130.86 42.249 202.053 28.197 36.106-9.534 69.76-27.273 98.991-50.401 44.36-33.229 82.625-77.439 99.76-130.902 26.131-78.994 9.286-171.344-45.167-234.649-13.723-16.785-28.875-32.351-44.687-47.168l3.938 4.813z"/> - <path d="M170.57 983.29c-8.079-.843-12.167 11.815-5.077 13.643 4.182-1.01 10.665-12.011 5.076-13.642zM474.835 552.405c-4.503-5.593-14.062-2.886-17.759-7.3-3.94-4.706 2.887-6.51-.226-9.991-3.113-3.48-7.746-1.747-11.998-6.498-4.251-4.75-.422-8.776-4.09-12.099-3.667-3.322-4.171.887-8.372-3.724-4.2-4.612-1.717-12.71-6.304-18.558-4.481-5.712-2.984-12.5 2.496-11.257 3.644.826 5.064 4.385 10.468 5.756 5.404 1.372 7.577-2.577 11.118.904 3.542 3.481.308 9.122 4.105 13.971 3.798 4.85 5.83 1.303 8.515 5.626 2.686 4.323.5 6.61 2.228 11.666 1.729 5.056 8.377 3.105 10.869 10.748 2.492 7.643-1.05 20.756-1.05 20.756z"/> - <path d="M478.146 564.793c-5.561-26.182-26.97-56.915-52.595-79.474 15.222 11.956 44.848 40.53 54.361 79.28l-1.766.194z"/> - <path d="M460.18 524.426c-4.162-2.885-7.254-2.85-10.507-3.257 2.963-.163 5.873-.472 9.492 1.156l1.014 2.101zM445.001 505.477c-4.502-1.455-7.443-.392-10.62.29 2.794-1.147 5.51-2.419 9.262-2.021l1.358 1.73zM449.378 508.855c-2.195-5.54-2.198-9.678-2.533-14.028-.094 3.967-.298 7.863.952 12.69l1.58 1.338zM462.899 527.04c-2.195-5.54-2.198-9.677-2.533-14.027-.094 3.966-.298 7.863.953 12.69l1.58 1.338zM555.176 682.062c-8.257-3.177-17.17-.031-23.877-2.453-7.148-2.582 1.14-8.575-4.41-10.366-5.548-1.79-10.208 5.644-17.785 3.202-7.578-2.442-6.322-10.125-12.54-11.417-6.218-1.291-6.37 7.191-13.822 4.865-7.453-2.327-7.5-12.33-15.974-15.724-8.276-3.314-9.088-11.348-1.33-13.33 5.16-1.318 10.29 1.936 18.002.135s6.976-8.643 13.093-7.11c6.116 1.535 4.355 10.427 11.373 13.246 7.017 2.818 11.366-4.905 16.697-1.972 5.33 2.932.26 9.424 4.625 13.701 4.367 4.277 7.736-2.34 14.176 4.2 6.44 6.538 11.772 23.023 11.772 23.023z"/> - <path d="M563.504 691.584c-22.904-25.577-58.656-41.392-101.83-49.728 25.052 3.433 76.71 14.954 105.234 49.976l-3.404-.248z"/> - <path d="M524.282 661.447c-6.69-.536-10.766 1.355-15.236 2.88 3.851-1.95 7.573-4.02 13.029-4.48l2.207 1.6zM496.411 650.636c-6.554 1.172-10.006 4.054-13.927 6.677 3.224-2.882 6.292-5.848 11.419-7.682l2.508 1.005zM503.589 651.561c-5.183-4.507-6.89-8.854-9.121-13.225 1.507 4.226 2.841 8.443 6.48 12.767l2.64.458zM528.954 662.563c-5.183-4.507-6.89-8.854-9.121-13.225 1.507 4.226 2.84 8.443 6.48 12.767l2.64.458zM554.74 885.605c6.924-5.379 9.128-14.933 14.625-19.391 5.859-4.753 6.268 5.877 10.646 2.066 4.377-3.81.889-12.104 6.864-17.31 5.974-5.206 11.467.264 15.799-4.413 4.332-4.678-2.387-9.643 3.43-14.807 5.815-5.163 13.859.495 21.071-4.949 7.045-5.317 13.915-1.447 11.39 6.438-1.679 5.243-7.007 7.856-9.652 15.597-2.645 7.74 3.23 10.999-1.243 15.45-4.472 4.452-10.667-2.148-16.646 2.356-5.98 4.504-2.095 12.69-7.272 15.661-5.177 2.97-7.692-5.144-13.435-3.78-5.743 1.366-2.226 8.069-10.882 9.95-8.655 1.883-24.696-2.868-24.696-2.868z"/> - <path d="M542.691 887.43c32.645-5.369 64.277-27.486 93.849-60.328-16.034 19.857-52.657 58.27-95.853 63.151l2.004-2.822z"/> - <path d="M587.643 870.452c3.977-5.52 4.621-10.146 5.77-14.907-.48 4.464-.794 8.885-3.317 13.897l-2.453 1.01zM611.085 852.345c2.535-6.374 2.056-11.022 2.032-15.93.6 4.448 1.352 8.81.103 14.318l-2.135 1.612zM606.538 858.067c6.36-1.944 10.75-.953 15.437-.406-4.187-1.095-8.275-2.337-13.67-1.631l-1.767 2.037zM584.271 873.884c6.36-1.945 10.75-.954 15.437-.406-4.187-1.096-8.275-2.337-13.67-1.632l-1.767 2.038zM586.501 789.94c5.85-6.618 6.32-16.43 10.93-21.87 4.915-5.797 7.205 4.57 10.83-.016 3.626-4.587-1.275-12.066 3.673-18.331 4.947-6.266 11.317-1.946 14.743-7.376 3.427-5.43-4.058-9.018.742-15.21 4.799-6.194 13.709-2.18 19.83-8.917 5.98-6.58 13.42-4.098 12.338 4.136-.72 5.476-5.492 9.068-6.717 17.184-1.225 8.116 5.127 10.189 1.522 15.423-3.605 5.235-10.865-.06-15.942 5.517-5.077 5.576.195 12.875-4.366 16.79-4.56 3.914-8.473-3.577-13.875-1.13-5.402 2.445-.755 8.356-8.927 11.87-8.173 3.514-24.78 1.93-24.78 1.93z"/> - <path d="M574.984 794.051c31.13-11.555 58.291-39.374 81.522-77.336-12.232 22.597-41.404 67.391-82.99 80.496l1.468-3.16z"/> - <path d="M616.148 768.72c2.928-6.189 2.74-10.86 3.023-15.759.322 4.48.798 8.884-.792 14.296l-2.23 1.463zM635.972 746.418c1.36-6.752.063-11.227-.832-16.047 1.38 4.257 2.893 8.4 2.644 14.052l-1.812 1.995zM632.52 752.916c5.905-3.134 10.394-3.004 15.098-3.368-4.309-.271-8.547-.705-13.724 1.025l-1.375 2.343zM613.444 772.742c5.905-3.135 10.395-3.005 15.099-3.368-4.309-.272-8.547-.706-13.724 1.025l-1.375 2.343zM567.287 741.198c-7.882-5.63-18.267-4.844-24.713-9.25-6.871-4.697 3.657-8.628-1.737-12.051-5.395-3.424-12.475 3.027-19.843-1.644-7.368-4.672-3.841-12.336-10.09-15.426-6.25-3.09-8.83 5.718-16.099 1.202s-4.466-14.966-12.516-20.881c-7.863-5.778-6.436-14.388 2.386-14.282 5.868.07 10.4 4.904 19.12 5.186 8.722.281 5.015-4.332 11.087-1.017 6.073 3.314 4.839 12.095 11.504 17.002 6.665 4.907 15.195-4.66 20.032-.107 4.837 4.554-2.411 9.907 1.016 15.593s8.9-.273 13.89 8.353c4.99 8.627 5.963 27.322 5.963 27.322z"/> - <path d="M573.434 753.467c-17.083-33.105-50.623-59.625-94.197-80.421 25.684 10.602 77.379 37.099 97.75 81.634l-3.553-1.213z"/> - <path d="M540.285 711.031c-6.968-2.434-11.845-1.602-17.038-1.264 4.656-.955 9.207-2.073 15.145-1.024l1.893 2.288zM513.705 691.94c-7.31-.612-11.806 1.427-16.727 3.065 4.253-2.103 8.365-4.339 14.344-4.815l2.383 1.75zM521.08 694.918c-4.23-6.155-4.807-11.169-5.936-16.355.4 4.831.616 9.606 3.257 15.137l2.68 1.218zM544.939 713.505c-4.23-6.155-4.807-11.169-5.936-16.355.399 4.831.616 9.606 3.256 15.137l2.68 1.218zM588.02 750.362c4.442-7.713 2.994-17.422 6.451-23.72 3.685-6.712 7.945 2.959 10.603-2.297 2.659-5.256-3.596-11.547.03-18.725 3.628-7.177 10.705-4.289 13.005-10.328 2.3-6.04-5.728-7.976-2.232-15.052 3.495-7.076 13.002-5.022 17.686-12.908 4.577-7.704 12.345-6.84 12.887 1.45.361 5.515-3.615 10.038-3.236 18.244.38 8.205 7.003 8.897 4.49 14.783-2.512 5.886-10.651 2.23-14.539 8.76-3.887 6.53 2.695 12.567-1.01 17.361-3.704 4.795-8.993-1.717-13.808 1.816-4.815 3.533.886 8.343-6.434 13.506-7.32 5.162-23.893 7.11-23.893 7.11z"/> - <path d="M577.541 756.813c28.24-17.872 49.428-50.836 64.795-92.905-7.584 24.705-27.44 74.716-65.618 96.309l.823-3.404z"/> - <path d="M612.927 723.337c1.664-6.678.572-11.212-.104-16.07 1.186 4.32 2.51 8.532 2.005 14.166l-1.9 1.904zM628.003 697.32c.019-6.898-2.122-11.007-3.936-15.538 2.18 3.877 4.467 7.615 5.323 13.203l-1.387 2.335zM625.886 704.411c5.174-4.313 9.596-5.132 14.132-6.478-4.273.641-8.508 1.11-13.241 3.895l-.891 2.583zM611.06 727.844c5.175-4.313 9.597-5.132 14.133-6.478-4.273.641-8.508 1.11-13.241 3.895l-.891 2.583z"/> - <g> - <path d="M557.393 638.911c3.616-8.648.844-18.542 3.621-25.58 2.96-7.5 8.651 1.957 10.732-3.884 2.081-5.842-5.245-11.503-2.407-19.48s10.578-5.97 12.184-12.576c1.606-6.606-6.999-7.488-4.284-15.34 2.715-7.853 12.873-7.057 16.72-15.92 3.757-8.658 11.951-8.855 13.596-.309 1.094 5.685-2.453 10.95-.99 19.43 1.463 8.482 8.444 8.267 6.597 14.743-1.847 6.476-10.791 3.821-13.985 11.162-3.194 7.34 4.44 12.69 1.211 18.2-3.23 5.508-9.58-.518-14.13 3.835-4.548 4.354 2.01 8.552-4.934 14.954-6.943 6.403-23.931 10.765-23.931 10.765z"/> - <path d="M547.331 647.1c27.05-22.572 44.8-59.846 55.309-105.768-4.672 26.765-18.816 81.581-55.722 109.423l.413-3.656z"/> - <path d="M579.785 607.29c.86-7.18-.866-11.741-2.202-16.699 1.796 4.326 3.722 8.52 3.931 14.452l-1.73 2.247zM592.08 578.105c-.879-7.177-3.64-11.15-6.118-15.606 2.772 3.725 5.64 7.29 7.257 12.982l-1.138 2.624zM590.801 585.779c4.821-5.216 9.315-6.69 13.859-8.731-4.361 1.27-8.707 2.353-13.268 5.918l-.59 2.813zM578.43 612.242c4.821-5.216 9.315-6.691 13.859-8.731-4.362 1.27-8.707 2.353-13.269 5.918l-.59 2.813z"/> - </g> - <g> - <path d="M533.383 605.314c4.26-6.586-1.069-18.724 2.254-24.109 3.541-5.739 7.22 2.947 9.785-1.556 2.564-4.504-.434-10.335 3.065-16.486 3.5-6.15 8.534-1.658 10.788-6.866 2.254-5.208-2.035-5.336 1.341-11.402 3.377-6.067 12.051-3.846 16.538-10.574 4.383-6.571 11.49-5.472 11.791 1.839.2 4.863-2.913 7.166-2.76 14.395.152 7.229 4.65 9.567 2.204 14.63-2.446 5.064-8.907 1.554-12.63 7.124-3.723 5.57.338 7.774-3.175 11.827-3.514 4.052-6.377 1.487-10.88 4.382-4.502 2.895-.728 11.329-7.568 15.547s-20.753 1.249-20.753 1.249z"/> - <path d="M522.094 611.2c24.26-10.566 48.596-42.396 63.7-78.703-7.548 21.385-27.469 63.674-63.017 80.985l-.683-2.282z"/> - <path d="M556.883 582.647c1.686-5.797.792-9.83.287-14.13.986 3.85 2.1 7.61 1.503 12.54l-1.79 1.59zM571.338 560.438c.18-6.063-1.686-9.768-3.242-13.83 1.908 3.503 3.918 6.889 4.57 11.838l-1.328 1.992zM569.226 566.578c4.85-3.565 8.928-4.091 13.122-5.077-3.936.378-7.833.604-12.243 2.845l-.88 2.232zM555.063 586.528c4.85-3.566 8.928-4.092 13.123-5.077-3.936.377-7.834.603-12.244 2.845l-.879 2.232z"/> - </g> - <g> - <path d="M381.788 1012.273c3.569-9.036.931-19.718 3.674-27.08 2.923-7.845 8.403 2.52 10.462-3.601 2.06-6.121-5.034-12.523-2.226-20.882 2.808-8.358 10.325-5.832 11.926-12.792 1.601-6.959-6.764-8.331-4.076-16.563 2.687-8.233 12.564-6.875 16.358-16.128 3.706-9.039 11.678-8.837 13.227.354 1.03 6.113-2.451 11.546-1.078 20.658 1.374 9.112 8.166 9.234 6.33 16.043-1.834 6.81-10.52 3.53-13.67 11.194-3.15 7.662 4.245 13.748 1.071 19.457-3.174 5.709-9.316-1.033-13.767 3.379-4.45 4.411 1.903 9.215-4.888 15.69-6.792 6.474-23.343 10.271-23.343 10.271z"/> - <path d="M375.216 1016.418c26.447-22.698 40.67-57.455 51.163-105.87-4.703 28.292-15.521 81.925-51.587 109.746l.424-3.876z"/> - <path d="M403.757 979.697c.88-7.61-.773-12.557-2.044-17.907 1.722 4.7 3.57 9.266 3.739 15.598l-1.695 2.309zM415.89 949.21c-.813-7.694-3.476-12.066-5.86-16.94 2.675 4.11 5.443 8.053 6.983 14.2l-1.123 2.74zM414.6 957.324c4.72-5.317 9.1-6.663 13.533-8.61-4.25 1.135-8.484 2.072-12.942 5.642l-.591 2.968zM402.41 984.906c4.72-5.317 9.1-6.663 13.532-8.61-4.25 1.135-8.483 2.072-12.942 5.642l-.59 2.968z"/> - </g> - <g> - <path d="M561.082 832.168c-7.131-7.46-19.244-10.076-25.142-16.004-6.287-6.318 7.034-6.423 2.01-11.151-5.023-4.73-15.242-1.31-22.104-7.764-6.862-6.454-.297-12.072-6.405-16.78-6.11-4.707-11.974 2.218-18.774-4.068-6.8-6.286-.138-14.585-7.367-22.35-7.06-7.585-2.579-14.703 7.456-11.801 6.675 1.93 10.246 7.624 20.107 10.648 9.861 3.025 13.63-3.063 19.462 1.785 5.833 4.849-2.112 11.171 3.87 17.609 5.98 6.438 16.044 2.598 20.056 8.142 4.013 5.545-6.035 7.945-4.007 14.037 2.027 6.092 10.249 2.594 13.085 11.77 2.837 9.176-2.247 25.927-2.247 25.927z"/> - <path d="M540.258 797.04c-7.147-4.36-12.989-5.181-19.028-6.537 5.63.643 11.196 1.109 17.626 3.922l1.402 2.614zM516.245 771.787c-8.14-2.867-13.947-2.505-20.108-2.63 5.552-.496 10.986-1.153 17.968.331l2.14 2.299zM523.677 776.753c-2.79-6.76-1.786-11.353-1.355-16.274-1.146 4.376-2.48 8.645-1.3 14.35l2.655 1.924zM544.75 800.697c-2.789-6.76-1.785-11.353-1.355-16.274-1.146 4.376-2.48 8.645-1.3 14.35l2.655 1.924z"/> - <path d="M561.704 840.054c-8.529-34.554-35.695-63.696-78.54-95.86 25.804 17.503 73.699 52.404 82.193 98.058l-3.653-2.198z"/> - </g> - <g id="d"> - <path d="M527.296 890.544c-3.353-8.85-19.798-13.112-22.673-20.186-3.064-7.54 9.126-5.225 6.542-10.926-2.584-5.701-13.345-4.096-16.877-11.879-3.532-7.782 4.826-12.277 1.244-18.154-3.583-5.876-11.854.07-15.4-7.532-3.547-7.6 6.031-14.792 2.719-23.969-3.235-8.964 3.857-15.356 11.781-10.593 5.271 3.167 6.123 9.582 13.838 14.436 7.715 4.855 13.721-.624 16.993 5.346 3.271 5.97-6.643 10.926-3.907 18.532 2.736 7.606 13.533 5.547 14.85 11.89 1.318 6.344-8.857 6.948-9.58 13.485-.724 6.537 8.25 4.488 6.962 14.295-1.288 9.807-6.492 25.255-6.492 25.255z"/> - <path d="M520.011 853.111c-4.675-5.713-13.031-8.939-17.965-11.41 4.862 1.675 13.116 4.49 17.792 8.508l.173 2.902zM510.082 828.225c.311-7.352 3.166-11.82 5.636-16.725-2.893 4.223-5.912 8.302-7.244 14.293l1.608 2.432zM522.503 854.289c.311-7.352-.15-9.81 2.32-14.714-2.892 4.222-2.596 6.292-3.928 12.283l1.608 2.431z"/> - <path d="M525.2 906.633c6.813-36.538-12.825-78.385-38.311-118.74 16.138 22.413 52.245 73.859 40.713 121.63l-2.402-2.89z"/> - <path d="M505.403 821.845c-6.213-4.382-11.66-5.071-17.225-6.319 5.271.507 10.504.83 16.244 3.602l.98 2.717z"/> - </g> - <g> - <path d="M493.56 566.123c-1.927-7.016-11.717-8.589-13.368-14.187-1.76-5.967 5.18-4.726 3.698-9.223-1.483-4.498-6.394-4.876-8.42-11.015-2.028-6.14 3.044-8.197.993-12.785-2.052-4.588-4.158-.956-6.193-6.947-2.035-5.99 3.4-12.339 1.494-19.622-1.861-7.115 2.16-12.683 6.68-9.229 3.006 2.298 2.912 6.15 7.313 9.69 4.4 3.541 7.928.853 9.803 5.533 1.875 4.68-3.284 8.464-1.71 14.502 1.573 6.037 4.815 3.657 5.578 8.743.764 5.087-2.126 6.251-2.523 11.602-.398 5.35 6.438 6.382 5.727 14.42-.71 8.037-9.071 18.518-9.071 18.518z"/> - <path d="M491.743 578.842c5.153-26.274-2.39-63.414-16.983-94.87 9.233 17.366 25.128 56.012 18.673 95.44l-1.69-.57z"/> - <path d="M491.108 534.358c-2.673-4.397-5.511-5.675-8.324-7.424 2.77 1.106 5.55 2.055 8.219 5.074l.105 2.35zM484.65 510.62c-3.545-3.235-6.647-3.508-9.815-4.23 3 .135 5.978.123 9.25 2.074l.565 2.157zM487.327 515.56c.16-5.991 1.774-9.773 3.169-13.888-1.636 3.584-3.345 7.057-4.09 11.996l.92 1.892zM492.57 537.898c.16-5.991 1.775-9.773 3.17-13.888-1.637 3.583-3.346 7.057-4.09 11.996l.92 1.892z"/> - </g> - <g> - <path d="M509.672 575.22c-.207-6.888-6.92-11.393-7.205-16.889-.304-5.858 14.644-4.381 14.25-8.797-.392-4.416-5.461-4.804-6.001-10.832-.54-6.028 5.332-8.027 4.364-12.534-.968-4.506-4.128-.952-4.714-6.834-.586-5.883 1.959-12.396 1.845-19.545-.112-6.984 5.565-12.43 9.425-9.027 2.567 2.264 1.468 6.042 5.18 9.53 3.712 3.486 8.359.996 11.29 4.523 2.915 3.507 2.309 6.345 2.397 12.272.09 5.926 4.118 3.603 3.602 8.594-.517 4.99-3.861 6.123-5.668 11.368-1.807 5.246 5.12 6.282 2.285 14.161-2.835 7.88-31.05 24.01-31.05 24.01z"/> - <path d="M499.22 585.584c24.422-21.57 36.501-63.212 18.317-93.996 8.18 15.13 12.468 31.125 8.112 50.275-3.15 13.846-10.823 30.446-24.8 44.286l-1.63-.565z"/> - <path d="M522.267 550.763c-1.672-4.322-6.172-9.786-8.678-11.51 2.628 1.093 7.152 6.235 9.177 9.205l-.499 2.305zM526.287 523.946c-2.89-3.185-6.084-3.465-9.23-4.183 3.121.143 6.259.14 9.196 2.066l.034 2.117zM527.441 524.146c1.724-5.874 4.405-9.577 6.94-13.608-2.652 3.509-5.352 6.91-7.417 11.75l.477 1.858zM523.17 551.67c1.723-5.874 7.855-3.776 12.463-5.225-3.495.052-10.876-1.474-12.942 3.368l.478 1.857z"/> - </g> - <g> - <path d="M478.903 575.873c-6.493-4.618-4.563-15.69-9.703-19.496-5.479-4.057-6.718 3.84-10.79.614-4.074-3.225-2.685-8.63-8.243-13.035-5.56-4.406-9.503.287-13.463-3.581-3.96-3.868.525-4.807-4.88-9.168-5.403-4.36-13.875-.838-20.651-5.53-6.62-4.581-13.78-2.292-11.875 3.812 1.267 4.06 5.25 5.359 7.286 11.366 2.037 6.006-1.995 8.813 2.123 12.525 4.118 3.712 9.864-.446 15.482 3.436 5.619 3.882 2.006 6.494 6.943 9.162 4.937 2.668 7.176-.009 12.804 1.51 5.627 1.519 4.21 9.225 12.706 11.384 8.495 2.16 22.261-2.999 22.261-2.999z"/> - <path d="M492.596 578.547c-28.791-4.023-64.127-25.614-91.088-52.699 14.459 16.215 48.316 47.311 91.062 54.718l.026-2.02z"/> - <path d="M447.235 561.697c-3.54-4.466-3.822-7.974-4.597-11.627.13 3.374.099 6.7 2.227 10.66l2.37.967zM425.243 546.142c-2.033-4.978-1.192-8.404-.785-12.065-.947 3.267-2.037 6.457-1.22 10.676l2.005 1.389zM429.337 550.809c-6.199-2.006-10.658-1.649-15.38-1.649 4.264-.452 8.443-1.023 13.774-.026l1.606 1.675zM450.334 564.552c-6.199-2.005-10.658-1.648-15.38-1.648 4.264-.453 8.443-1.023 13.774-.027l1.606 1.675z"/> - </g> - <g> - <path d="M500.517 605.577c-8.06-3.492-6.615-15.421-13.007-18.344-6.814-3.114-7.68 5.366-12.762 2.833-5.082-2.534-3.845-8.447-10.78-11.909-6.936-3.461-11.258 2.23-16.254-.997-4.996-3.226.255-5.115-6.493-8.56-6.748-3.446-16.535 1.944-24.936-1.567-8.207-3.43-16.533.41-13.805 6.384 1.815 3.972 6.641 4.517 9.518 10.363 2.876 5.845-1.695 9.59 3.476 12.62 5.172 3.032 11.675-2.469 18.64.435 6.966 2.905 2.878 6.36 8.942 8.137 6.064 1.777 8.517-1.468 15.313-1.028 6.796.44 5.704 8.758 15.953 9.281 10.248.524 26.195-7.648 26.195-7.648z"/> - <path d="M516.976 605.581c-34.484 1.658-78.077-13.661-112.15-36.407 18.4 13.96 60.967 39.483 112.273 38.517l-.123-2.11z"/> - <path d="M461.843 597.24c-4.542-3.935-5.146-7.533-6.345-11.182.413 3.488.63 6.96 3.458 10.655l2.887.527zM434.55 585.499c-2.794-4.774-2.057-8.516-1.853-12.413-.875 3.597-1.925 7.142-.634 11.373l2.487 1.04zM439.766 589.53c-7.51-.83-12.777.447-18.383 1.407 5.028-1.338 9.945-2.782 16.35-2.826l2.033 1.419zM465.74 599.585c-7.511-.83-12.777.447-18.383 1.407 5.028-1.338 9.944-2.781 16.35-2.826l2.033 1.419z"/> - </g> - <g> - <path d="M517.502 629.672c-8.279-2.962-7.618-14.951-14.193-17.452-7.009-2.666-7.318 5.846-12.559 3.648-5.24-2.198-4.393-8.174-11.546-11.178-7.152-3.004-11.095 2.95-16.296.055-5.2-2.894-.08-5.117-7.045-8.117-6.965-3-16.384 3.007-25.005.048-8.42-2.89-16.482 1.477-13.366 7.257 2.073 3.844 6.928 4.076 10.184 9.72 3.255 5.643-1.063 9.67 4.3 12.36 5.363 2.688 11.496-3.216 18.642-.77 7.147 2.446 3.291 6.155 9.463 7.536 6.172 1.38 8.409-2.014 15.224-2.014 6.816-.001 6.27 8.364 16.539 8.225 10.269-.14 25.658-9.318 25.658-9.318z"/> - <path d="M533.937 628.613c-34.327 3.88-78.864-8.58-114.381-29.062 19.291 12.731 63.471 35.434 114.642 31.158l-.261-2.096z"/> - <path d="M478.335 623.855c-4.795-3.63-5.633-7.179-7.07-10.74.641 3.452 1.085 6.9 4.152 10.402l2.918.338zM450.31 613.91c-3.104-4.58-2.613-8.359-2.666-12.258-.637 3.643-1.453 7.247.114 11.382l2.552.876zM455.782 617.593c-7.554-.344-12.73 1.271-18.264 2.59 4.933-1.66 9.748-3.416 16.14-3.874l2.124 1.284zM482.38 625.942c-7.555-.343-12.73 1.271-18.265 2.59 4.933-1.659 9.748-3.415 16.14-3.874l2.124 1.284z"/> - </g> - <g id="a"> - <path d="M207.197 997.382c6.594-4.258 15.187-3.229 20.577-6.552 5.746-3.542-2.93-7.124 1.577-9.691 4.508-2.568 10.299 2.924 16.456-.579s3.323-9.842 8.535-12.107c5.212-2.265 7.249 4.965 13.322 1.584 6.072-3.38 3.87-11.948 10.607-16.432 6.58-4.38 5.496-11.406-1.813-11.654-4.862-.166-8.671 3.576-15.899 3.473-7.227-.103-8.111-6.094-13.18-3.641-5.068 2.453-1.515 9.734-7.092 13.454-5.577 3.72-11.157-2.076-15.216 1.427-4.06 3.503 1.884 8.112-1.02 12.586s-7.37-.559-11.601 6.237c-4.233 6.796-5.253 21.895-5.253 21.895z"/> - <path d="M201.964 1007.083c14.53-26.156 42.618-46.357 78.95-61.542-21.397 7.61-64.522 27.103-81.906 62.39l2.956-.848z"/> - <path d="M229.91 973.981c5.8-1.706 9.83-.848 14.128-.377-3.846-.95-7.603-2.027-12.534-1.404l-1.594 1.781zM252.146 959.533c6.062-.22 9.763 1.602 13.82 3.115-3.498-1.864-6.878-3.83-11.826-4.443l-1.994 1.327zM246.003 961.663c3.575-4.823 4.11-8.86 5.104-13.017-.386 3.897-.62 7.754-2.87 12.133l-2.234.884zM226.026 975.808c3.575-4.823 4.11-8.86 5.105-13.017-.386 3.896-.62 7.754-2.871 12.132l-2.234.885z"/> - </g> - <g id="b"> - <path d="M210.31 1024.483c9.07 3.59 19.283 0 26.659 2.74 7.86 2.916-1.833 9.73 4.283 11.752 6.117 2.023 11.83-6.42 20.182-3.663 8.353 2.757 6.447 11.475 13.346 12.93 6.9 1.455 7.619-8.17 15.839-5.544 8.22 2.627 7.627 13.976 16.924 17.811 9.081 3.746 9.475 12.86.633 15.122-5.88 1.505-11.432-2.178-20.209-.12-8.777 2.057-8.393 9.818-15.164 8.089-6.77-1.73-4.218-11.822-11.918-15.007-7.7-3.185-13.082 5.584-18.88 2.267-5.797-3.318.317-10.693-4.31-15.538-4.628-4.844-8.839 2.668-15.65-4.738-6.81-7.407-11.734-26.101-11.734-26.101z"/> - <path d="M201.572 1013.693c24.073 28.978 63.205 46.859 111.156 56.24-27.914-3.851-85.188-16.83-114.963-56.515l3.807.275z"/> - <path d="M243.677 1047.816c7.48.597 12.179-1.557 17.298-3.294-4.452 2.218-8.765 4.574-14.923 5.107l-2.375-1.812zM274.281 1060.033c7.437-1.342 11.5-4.618 16.073-7.601-3.807 3.275-7.445 6.647-13.32 8.736l-2.753-1.135zM266.28 1058.996c5.53 5.104 7.165 10.033 9.39 14.989-1.42-4.792-2.646-9.575-6.455-14.474l-2.935-.515zM238.502 1046.558c5.53 5.104 7.166 10.034 9.39 14.99-1.42-4.793-2.646-9.575-6.454-14.475l-2.936-.515z"/> - </g> - <use transform="translate(43.941 17.372)" width="744.094" height="1052.362" xlink:href="#a"/> - <use transform="translate(59.27 11.24)" width="744.094" height="1052.362" xlink:href="#b"/> - <g id="e"> - <path d="M353.525 1034.119c9.75.938 18.788-5.287 26.67-4.699 8.403.627.695 9.792 7.17 10.044 6.474.252 9.888-9.375 18.729-9.035 8.84.34 9.205 9.186 16.298 8.681 7.093-.504 5.34-9.89 14.018-9.638 8.679.252 10.993 11.25 21.029 12.36 9.802 1.084 12.508 9.676 4.47 14.262-5.345 3.05-11.693 1.057-19.72 5.43-8.027 4.371-5.676 11.676-12.713 11.882-7.037.207-7.122-10.128-15.435-11.056-8.314-.928-11.323 8.921-17.817 7.345-6.494-1.576-2.416-10.294-8.16-13.65-5.743-3.355-7.93 4.972-16.454-.23-8.524-5.202-18.085-21.696-18.085-21.696z"/> - <path d="M342.262 1026.217c30.838 21.058 73.521 27.39 122.63 23.187-28.178 3.984-87.287 7.308-126.41-22.406l3.78-.781z"/> - <path d="M391.98 1047.238c7.44-1.483 11.469-4.828 16.014-7.891-3.772 3.34-7.374 6.772-13.238 8.97l-2.776-1.078zM424.91 1050.503c6.904-3.321 10.028-7.563 13.723-11.666-2.874 4.171-5.56 8.388-10.751 11.995l-2.971-.329zM416.85 1051.709c6.689 3.355 9.539 7.612 12.969 11.732-2.605-4.185-5.018-8.414-9.977-12.046l-2.992.314zM386.618 1047.457c6.688 3.355 9.538 7.612 12.968 11.733-2.605-4.185-5.018-8.415-9.977-12.046l-2.991.313z"/> - </g> - <g> - <path d="M292.72 1024.547c4.983-5.068 13.172-6.262 17.286-10.274 4.385-4.277-4.539-5.162-1.043-8.344 3.495-3.182 10.25-.04 15.024-4.383 4.775-4.342.528-8.882 4.75-11.982 4.222-3.1 7.963 2.36 12.692-1.861 4.728-4.222.49-10.745 5.546-16.031 4.939-5.164 2.13-10.684-4.674-9.153-4.526 1.019-7.074 5-13.765 6.632-6.69 1.631-9.05-3.085-13.09.136-4.042 3.22 1.11 8.363-3.074 12.747-4.184 4.383-10.823.942-13.663 4.787-2.84 3.844 3.828 6.223 2.303 10.591-1.525 4.369-6.939 1.29-9.09 7.884-2.152 6.593.798 19.25.798 19.25z"/> - <path d="M292.089 1030.323c6.657-24.958 25.657-44.795 55.246-65.91-17.769 11.34-50.817 34.166-57.754 67.31l2.508-1.4z"/> - <path d="M307.634 999.911c4.908-2.78 8.845-3.032 12.929-3.665-3.79.132-7.533.139-11.919 1.822l-1.01 1.843zM324.414 982.75c5.533-1.62 9.415-1 13.547-.72-3.707-.702-7.33-1.516-12.05-.845l-1.497 1.565zM319.298 985.96c2.054-4.814 1.507-8.261 1.352-11.915.649 3.296 1.427 6.523.48 10.658l-1.832 1.258zM304.523 1002.335c2.054-4.814 1.507-8.262 1.353-11.915.648 3.295 1.426 6.523.479 10.658l-1.832 1.257z"/> - </g> - <g> - <path d="M345.42 1017.313c4.024-6.249 12.081-9.145 15.439-14.127 3.579-5.31-5.644-4.413-2.745-8.41 2.898-3.998 10.379-2.124 14.34-7.58 3.96-5.457-1.262-9.286 2.39-13.347 3.651-4.06 8.547.823 12.485-4.5 3.938-5.323-1.676-11.202 2.378-17.692 3.96-6.34-.004-11.472-6.59-8.508-4.38 1.971-6.157 6.603-12.608 9.647-6.45 3.045-9.795-1.35-13.24 2.8-3.443 4.148 2.819 8.416-.534 13.795-3.354 5.38-10.778 3.172-12.879 7.721-2.1 4.55 5.138 5.654 4.477 10.478-.662 4.823-6.771 2.742-7.618 9.992-.846 7.25 4.705 19.73 4.705 19.73z"/> - <path d="M345.948 1023.41c1.698-27.142 16.94-51.5 42.655-79.326-15.714 15.325-44.589 45.623-44.914 81.28l2.259-1.954z"/> - <path d="M355.549 988.827c4.412-3.87 8.351-4.929 12.362-6.413-3.815.907-7.606 1.673-11.71 4.304l-.652 2.109zM369.083 967.686c5.28-2.797 9.34-2.946 13.584-3.495-3.899.027-7.736-.078-12.383 1.574l-1.2 1.921zM364.548 972.043c1.107-5.392-.145-8.843-1.04-12.588 1.324 3.274 2.765 6.451 2.642 10.916l-1.602 1.672zM352.887 991.964c1.108-5.393-.144-8.844-1.04-12.588 1.324 3.274 2.765 6.451 2.642 10.916l-1.602 1.672z"/> - </g> - <g id="f"> - <path d="M505.882 948.746c7.671-4.14 11.335-13.195 17.453-16.668 6.522-3.7 5.27 6.858 10.184 3.836 4.913-3.022 2.763-11.794 9.47-15.923 6.706-4.129 11.274 2.196 16.277-1.689 5.003-3.884-.853-9.918 5.69-14.032 6.545-4.114 13.6 2.827 21.565-1.327 7.78-4.059 13.956.92 10.236 8.274-2.474 4.891-8.14 6.57-11.955 13.762-3.816 7.192 1.473 11.399-3.634 15.037-5.106 3.638-10.19-3.92-16.792-.485-6.603 3.436-4.045 12.17-9.616 14.227-5.571 2.058-6.789-6.374-12.668-5.996-5.88.377-3.454 7.585-12.288 7.982-8.834.396-23.922-6.998-23.922-6.998z" transform="translate(9.389 -7.87)"/> - <path d="M493.71 948.513c33.048.211 67.707-16.276 102.004-43.693-18.915 16.888-61.038 48.614-104.421 46.14l2.417-2.447z" transform="translate(9.389 -7.87)"/> - <path d="M540.711 939.345c4.784-4.776 6.14-9.232 8.016-13.736-1.17 4.324-2.167 8.633-5.438 13.154l-2.578.582zM566.664 925.434c3.495-5.863 3.745-10.53 4.487-15.378-.1 4.492-.04 8.923-2.13 14.148l-2.357 1.23zM561.285 930.313c6.58-.846 10.756.873 15.296 2.204-3.96-1.787-7.8-3.702-13.234-3.917l-2.062 1.713zM536.85 942.163c6.578-.846 10.755.873 15.294 2.204-3.96-1.788-7.8-3.703-13.234-3.917l-2.06 1.713z" transform="translate(9.389 -7.87)"/> - </g> - <g> - <path d="M582.995 716.21c3.617-8.648.845-18.541 3.621-25.579 2.96-7.501 8.651 1.956 10.732-3.885 2.082-5.841-5.245-11.503-2.407-19.48s10.578-5.97 12.184-12.576c1.606-6.606-6.999-7.488-4.284-15.34 2.716-7.853 12.873-7.057 16.72-15.92 3.757-8.658 11.952-8.855 13.596-.308 1.094 5.684-2.453 10.95-.99 19.43 1.464 8.481 8.445 8.267 6.598 14.743-1.847 6.475-10.792 3.82-13.986 11.16-3.193 7.341 4.44 12.692 1.211 18.2-3.23 5.51-9.58-.517-14.13 3.837-4.548 4.353 2.01 8.552-4.934 14.954-6.943 6.402-23.931 10.764-23.931 10.764z"/> - <path d="M572.933 724.398c27.051-22.571 44.801-59.844 55.31-105.767-4.673 26.766-18.817 81.581-55.723 109.423l.413-3.656z"/> - <path d="M605.387 684.59c.861-7.18-.866-11.742-2.202-16.7 1.797 4.326 3.722 8.52 3.931 14.452l-1.729 2.248zM617.683 655.404c-.88-7.177-3.642-11.15-6.12-15.606 2.774 3.725 5.64 7.29 7.259 12.982l-1.139 2.624zM616.404 663.078c4.82-5.216 9.315-6.69 13.858-8.731-4.361 1.27-8.706 2.354-13.268 5.918l-.59 2.813zM604.032 689.54c4.821-5.215 9.315-6.69 13.86-8.73-4.362 1.27-8.708 2.354-13.27 5.918l-.59 2.813z"/> - </g> - <g> - <path d="M572.265 672.078c4.442-7.713 2.993-17.421 6.45-23.719 3.686-6.712 7.945 2.958 10.604-2.298 2.658-5.255-3.596-11.547.03-18.725 3.627-7.177 10.705-4.289 13.005-10.328 2.3-6.04-5.728-7.976-2.233-15.052 3.496-7.076 13.002-5.021 17.687-12.908 4.576-7.704 12.345-6.84 12.887 1.45.361 5.515-3.615 10.038-3.236 18.244.38 8.205 7.003 8.897 4.49 14.783-2.512 5.886-10.652 2.23-14.539 8.76-3.887 6.53 2.695 12.567-1.01 17.361-3.704 4.795-8.993-1.717-13.808 1.816-4.815 3.533.886 8.343-6.434 13.506s-23.893 7.11-23.893 7.11z"/> - <path d="M561.786 678.53c28.239-17.873 49.427-50.837 64.795-92.906-7.584 24.705-27.44 74.716-65.619 96.309l.824-3.404z"/> - <path d="M597.172 645.053c1.664-6.678.571-11.212-.105-16.07 1.186 4.32 2.51 8.532 2.005 14.166l-1.9 1.904zM612.248 619.036c.018-6.898-2.122-11.007-3.936-15.538 2.18 3.877 4.467 7.615 5.323 13.203l-1.387 2.335zM610.13 626.127c5.174-4.313 9.597-5.132 14.132-6.478-4.272.642-8.507 1.11-13.24 3.895l-.891 2.583zM595.305 649.56c5.174-4.313 9.597-5.132 14.132-6.478-4.272.642-8.507 1.11-13.24 3.895l-.892 2.583z"/> - </g> - <g> - <path d="M566.742 775.935c-7.882-5.63-18.266-4.844-24.713-9.25-6.871-4.697 3.658-8.628-1.737-12.051-5.395-3.424-12.475 3.027-19.843-1.644-7.368-4.672-3.84-12.336-10.09-15.426-6.249-3.09-8.83 5.718-16.099 1.202-7.268-4.516-4.466-14.966-12.516-20.881-7.863-5.778-6.436-14.388 2.386-14.282 5.868.07 10.4 4.904 19.121 5.186 8.721.281 5.014-4.332 11.087-1.017 6.072 3.314 4.838 12.095 11.503 17.002 6.665 4.907 15.195-4.66 20.033-.107 4.837 4.554-2.412 9.907 1.015 15.593 3.427 5.686 8.9-.273 13.89 8.353 4.99 8.627 5.963 27.322 5.963 27.322z"/> - <path d="M572.89 788.204c-17.083-33.105-50.624-59.625-94.197-80.421 25.684 10.602 77.378 37.099 97.749 81.634l-3.552-1.213z"/> - <path d="M539.74 745.768c-6.968-2.434-11.845-1.602-17.037-1.264 4.655-.955 9.207-2.073 15.145-1.024l1.892 2.288zM513.16 726.678c-7.31-.613-11.805 1.426-16.727 3.064 4.253-2.103 8.365-4.339 14.344-4.815l2.383 1.75zM520.536 729.655c-4.231-6.155-4.808-11.169-5.936-16.355.399 4.831.616 9.606 3.256 15.137l2.68 1.218zM544.394 748.242c-4.23-6.155-4.807-11.169-5.936-16.355.4 4.831.616 9.606 3.257 15.137l2.679 1.218z"/> - </g> - <g> - <path d="M574.693 843.39c5.85-6.617 6.32-16.43 10.93-21.87 4.915-5.796 7.205 4.571 10.83-.016 3.626-4.587-1.275-12.066 3.673-18.331 4.947-6.265 11.317-1.946 14.743-7.376 3.427-5.43-4.058-9.018.741-15.21 4.8-6.194 13.71-2.18 19.831-8.916 5.98-6.581 13.42-4.099 12.338 4.135-.72 5.476-5.492 9.069-6.717 17.184-1.225 8.116 5.127 10.189 1.522 15.424-3.605 5.235-10.865-.06-15.942 5.516s.195 12.875-4.366 16.79c-4.56 3.915-8.473-3.576-13.875-1.13-5.402 2.445-.755 8.356-8.927 11.87-8.173 3.515-24.78 1.93-24.78 1.93z"/> - <path d="M563.176 847.501c31.13-11.554 58.29-39.374 81.522-77.336-12.232 22.598-41.404 67.392-82.99 80.496l1.468-3.16z"/> - <path d="M604.34 822.17c2.928-6.189 2.74-10.859 3.023-15.759.322 4.48.798 8.884-.792 14.296l-2.23 1.464zM624.164 799.868c1.36-6.752.063-11.227-.832-16.046 1.38 4.256 2.893 8.399 2.644 14.051l-1.812 1.995zM620.711 806.366c5.906-3.134 10.395-3.004 15.1-3.368-4.31-.271-8.548-.705-13.725 1.026l-1.375 2.342zM601.635 826.192c5.906-3.134 10.396-3.004 15.1-3.368-4.31-.271-8.547-.705-13.725 1.025l-1.375 2.343z"/> - </g> - <use transform="rotate(15 310.012 758.36)" width="744.094" height="1052.362" xlink:href="#c"/> - <use transform="rotate(5 93.23 577.125)" id="c" width="744.094" height="1052.362" xlink:href="#d"/> - <use transform="rotate(-10 274.952 690.264)" width="744.094" height="1052.362" xlink:href="#e"/> - <use transform="rotate(10 225.439 653.89)" width="744.094" height="1052.362" xlink:href="#f"/> - </g> - <use transform="matrix(-1 0 0 1 840 .113)" width="1" height="1" xlink:href="#g"/> - </g> - <g stroke="#d4af37" stroke-width="3"> - <path d="M232.813 220.48l-11.244 14c3.725 3.548 5.837 9.482 5.844 14.307.01 6.034-.98 10.214-2.2 14.026l-.04.12H256v-42.169c-6.79 4.215-16.117 5.894-23.187-.284z" fill="#007ea8" stroke-width=".42666000000000004"/> - <path d="M279.187 220.48c-7.07 6.178-16.397 4.5-23.187.284v42.17h30.827l-.04-.12c-1.22-3.813-2.21-7.993-2.2-14.027.007-4.825 2.119-10.759 5.844-14.307l-11.244-14z" fill="#fff" stroke-width=".42666000000000004"/> - <path d="M225.173 262.933c-1.679 5.217-3.787 9.757-4.444 17.303-.97 11.14 7.99 17.24 11.693 18.986 5.709 2.692 11.673 1.761 17.778 2.542 2.834.363 4.418 2.156 5.8 3.623 1.382-1.467 2.966-3.26 5.8-3.623 6.105-.781 12.07.15 17.778-2.542 3.702-1.746 12.663-7.845 11.693-18.986-.657-7.546-2.765-12.086-4.444-17.303h-61.654z" fill="#d91023" stroke-width=".42666000000000004"/> - </g> - <g stroke="#d4af37" stroke-width="3"> - <g transform="matrix(.06756 0 0 .07111 186.261 262.009)" fill="#00a854" stroke-width="6.156"> - <g id="j" stroke-width="3.078"> - <g stroke-width="9.649"> - <path d="M1074.733-201.404s5.849-20.366 17.932-29.304c12.084-8.938 25.212-5.671 33.195-8.854-5.322 6.748-5.925 20.263-17.932 29.305-12.006 9.041-33.195 8.853-33.195 8.853zM1123.432-237.75c-8.333 2.219-13.523-.31-24.954 3.897M1115.763-232.026c-8.333 2.219-14.117-1.33-25.335 3.386M1106.56-225.157c-7.912 2.781-11.632-1.2-22.466 4.03M1097.357-218.289c-7.912 2.782-9.57-1.713-17.49 4.297M1089.177-212.184c-5.168 1.667-7.531-.17-12.134 5.076M1123.432-237.75c-4.497 7.358-3.55 13.053-10.835 22.815M1115.763-232.026c-4.497 7.358-2.742 13.912-10.454 23.325M1106.56-225.157c-4.918 6.794-2.159 11.492-10.256 20.39M1097.357-218.289c-4.918 6.794-1.08 9.663-9.096 15.545M1089.177-212.184c-3.068 4.48-1.98 7.268-8.318 10.188" stroke-width="3.0778380199999997"/> - <path d="M1130.782-243.633s-13.538 10.037-24.157 18.03c-10.62 7.992-31.636 24.008-31.636 24.008s21.334-15.59 32.017-23.497c10.684-7.907 24.158-18.03 24.158-18.03" stroke-width="3.0778380199999997"/> - </g> - <g stroke-width="9.649"> - <path d="M1108.115-316.994s16.753 12.975 20.58 27.51c3.828 14.534-4.068 25.52-4.068 34.113-4.297-7.442-16.628-13.007-20.58-27.509-3.953-14.501 4.068-34.114 4.068-34.114zM1123.843-258.298c1.025-8.562 5.296-12.446 5.62-24.622M1121.366-267.541c1.025-8.562 6.463-12.621 6.237-24.788M1118.394-278.633c.346-8.38 5.422-10.36 4.576-22.362M1115.422-289.725c.346-8.38 5.135-8.257 2.485-17.839M1112.78-299.585c.366-5.418 2.946-6.933-.222-13.15M1123.843-258.298c-5.17-6.902-10.81-8.13-17.18-18.513M1121.366-267.541c-5.17-6.902-11.908-7.699-17.796-18.348M1118.394-278.633c-4.49-7.084-9.877-6.262-15.144-17.078M1115.422-289.725c-4.49-7.084-8.576-4.583-11.072-14.206M1112.78-299.585c-3.026-4.509-6.019-4.53-6.384-11.499" stroke-width="3.0778380199999997"/> - <path d="M1126.586-249.291s-4.31-16.293-7.802-29.117c-3.491-12.824-10.586-38.277-10.586-38.277s6.581 25.59 9.97 38.442a5074.411 5074.411 0 0 0 7.802 29.117" stroke-width="3.0778380199999997"/> - </g> - <g id="h" stroke-width="9.649"> - <path d="M1206.423-261.845s16.752 12.975 20.58 27.51c3.828 14.534-4.069 25.519-4.069 34.113-4.297-7.443-16.628-13.008-20.58-27.509-3.952-14.501 4.069-34.114 4.069-34.114zM1222.15-203.15c1.025-8.56 5.296-12.445 5.621-24.622M1219.673-212.393c1.026-8.561 6.464-12.62 6.238-24.787M1216.701-223.485c.347-8.38 5.423-10.36 4.576-22.36M1213.73-234.577c.345-8.38 5.135-8.256 2.485-17.838M1211.087-244.436c.366-5.418 2.947-6.933-.221-13.15M1222.15-203.15c-5.169-6.901-10.81-8.13-17.18-18.512M1219.673-212.393c-5.168-6.902-11.907-7.698-17.795-18.348M1216.701-223.485c-4.49-7.084-9.876-6.26-15.143-17.077M1213.73-234.577c-4.49-7.084-8.576-4.582-11.072-14.205M1211.087-244.436c-3.025-4.51-6.018-4.53-6.383-11.5" stroke-width="3.0778380199999997"/> - <path d="M1224.894-194.142s-4.31-16.293-7.802-29.117c-3.491-12.825-10.587-38.278-10.587-38.278s6.582 25.59 9.97 38.443c3.39 12.852 7.803 29.117 7.803 29.117" stroke-width="3.0778380199999997"/> - <g> - <path d="M1170.504-136.72s2.86-20.996 13.533-31.579c10.673-10.582 24.135-9.236 31.578-13.533-4.297 7.443-2.951 20.904-13.534 31.578-10.582 10.673-31.577 13.533-31.577 13.533zM1213.472-179.69c-7.928 3.394-13.427 1.637-24.135 7.444M1206.705-172.923c-7.927 3.393-14.161.714-24.585 6.993M1198.585-164.803c-7.43 3.89-11.684.485-21.653 7.218M1190.465-156.683c-7.43 3.89-9.718-.319-16.69 6.767M1183.247-149.465c-4.874 2.392-7.477.915-11.277 6.767M1213.472-179.69c-3.393 7.928-1.637 13.428-7.444 24.135M1206.705-172.923c-3.393 7.928-.713 14.162-6.992 24.586M1198.585-164.803c-3.89 7.43-.484 11.684-7.218 21.654M1190.465-156.683c-3.89 7.43.32 9.718-6.767 16.692M1183.247-149.465c-2.391 4.875-.914 7.477-6.766 11.278" stroke-width="3.0778380199999997"/> - <path d="M1219.9-186.569s-11.954 11.88-21.315 21.315c-9.36 9.436-27.856 28.308-27.856 28.308s18.871-18.496 28.307-27.857a5074.411 5074.411 0 0 0 21.315-21.315" stroke-width="3.0778380199999997"/> - </g> - </g> - <g stroke-width="9.649"> - <path d="M1057.073-278.588s20.562-5.119 34.344.877c13.783 5.996 17.517 18.999 24.265 24.321-8.505-1.235-20.511 5-34.344-.877-13.834-5.878-24.265-24.321-24.265-24.321zM1112.898-254.587c-6.087-6.107-6.492-11.866-15.851-19.662M1104.107-258.366c-6.088-6.108-5.907-12.891-15.6-20.249M1093.557-262.902c-6.365-5.462-4.777-10.674-14.723-17.441M1083.007-267.438c-6.365-5.462-3.302-9.145-12.466-12.999M1073.63-271.47c-4.027-3.642-3.619-6.607-10.462-7.97M1112.898-254.587c-8.62-.216-13.078 3.452-25.175 2.024M1104.107-258.366c-8.62-.217-13.42 4.581-25.427 2.609M1093.557-262.902c-8.343-.862-11.032 3.877-22.787 1.314M1083.007-267.438c-8.342-.862-8.908 3.895-18.01-.105M1073.63-271.47c-5.414-.416-7.284 1.92-12.982-2.109" stroke-width="3.0778380199999997"/> - <path d="M1121.669-251.163s-15.462-6.705-27.693-11.906c-12.232-5.201-36.61-15.393-36.61-15.393s24.168 10.68 36.358 15.979c12.19 5.298 27.693 11.906 27.693 11.906" stroke-width="3.0778380199999997"/> - </g> - <g stroke-width="9.649"> - <path d="M1072.283-383.91s14.687-15.274 29.546-17.531c14.86-2.257 24.941 6.766 33.486 7.682-7.858 3.479-14.706 15.147-29.546 17.53-14.84 2.385-33.486-7.681-33.486-7.681zM1132.321-393.291c-8.404-1.933-11.81-6.593-23.883-8.214M1122.866-391.814c-8.403-1.932-11.86-7.772-23.981-8.844M1111.52-390.041c-8.295-1.238-9.723-6.496-21.745-6.934M1100.175-388.268c-8.295-1.238-7.662-5.987-17.472-4.373M1090.09-386.692c-5.348-.942-6.58-3.67-13.099-1.182M1132.321-393.291c-7.414 4.403-9.237 9.881-20.239 15.108M1122.866-391.814c-7.413 4.404-8.923 11.02-20.14 15.738M1111.52-390.041c-7.522 3.709-7.278 9.152-18.594 13.237M1100.175-388.268c-7.522 3.709-5.47 8.038-15.305 9.494M1090.09-386.692c-4.806 2.527-5.146 5.5-12.114 5.121" stroke-width="3.0778380199999997"/> - <path d="M1141.57-395.06s-16.66 2.55-29.783 4.654c-13.124 2.105-39.188 6.447-39.188 6.447s26.146-3.817 39.286-5.816c13.14-2 29.783-4.654 29.783-4.654" stroke-width="3.0778380199999997"/> - </g> - <g stroke-width="9.649"> - <path d="M1102.133-454.901s19.984 7.045 28.19 19.637c8.207 12.592 4.168 25.504 6.872 33.661-6.42-5.713-19.876-7.115-28.19-19.637-8.314-12.52-6.872-33.661-6.872-33.661zM1135.53-404.135c-1.721-8.45 1.11-13.48-2.412-25.14M1130.27-412.13c-1.72-8.449 2.164-14.013-1.878-25.49M1123.96-421.723c-2.309-8.063 1.887-11.54-2.693-22.665M1117.648-431.317c-2.308-8.063 2.277-9.452-3.253-17.714M1112.038-439.844c-1.357-5.258.616-7.508-4.347-12.413M1135.53-404.135c-7.078-4.925-12.82-4.316-22.132-12.167M1130.27-412.13c-7.078-4.925-13.725-3.56-22.664-11.817M1123.96-421.723c-6.491-5.312-11.345-2.836-19.748-11.445M1117.648-431.317c-6.49-5.311-9.582-1.651-14.979-10M1112.038-439.844c-4.29-3.328-7.138-2.407-9.677-8.907" stroke-width="3.0778380199999997"/> - <path d="M1140.968-396.448s-9.218-14.11-16.567-25.184c-7.349-11.075-22.092-33.003-22.092-33.003s14.299 22.22 21.56 33.354c7.26 11.133 16.566 25.183 16.566 25.183" stroke-width="3.0778380199999997"/> - </g> - <g id="i" stroke-width="9.649"> - <path d="M1213.668-401.795s16.753 12.975 20.58 27.51c3.828 14.534-4.068 25.519-4.068 34.113-4.297-7.443-16.628-13.008-20.58-27.51-3.953-14.5 4.068-34.113 4.068-34.113zM1229.395-343.1c1.026-8.561 5.297-12.446 5.622-24.622M1226.919-352.343c1.025-8.561 6.463-12.62 6.237-24.787M1223.947-363.435c.346-8.38 5.422-10.36 4.575-22.36M1220.974-374.527c.347-8.38 5.136-8.256 2.486-17.838M1218.333-384.386c.365-5.418 2.946-6.933-.222-13.15M1229.395-343.1c-5.168-6.901-10.81-8.13-17.179-18.512M1226.919-352.343c-5.17-6.902-11.908-7.698-17.796-18.348M1223.947-363.435c-4.49-7.084-9.877-6.26-15.144-17.077M1220.974-374.527c-4.49-7.084-8.575-4.582-11.071-14.205M1218.333-384.386c-3.026-4.51-6.019-4.531-6.384-11.5" stroke-width="3.0778380199999997"/> - <path d="M1232.139-334.092s-4.31-16.293-7.802-29.117c-3.491-12.825-10.587-38.278-10.587-38.278s6.582 25.59 9.971 38.443a5074.411 5074.411 0 0 0 7.802 29.117" stroke-width="3.0778380199999997"/> - <g> - <path d="M1167.114-294.907s8.197-19.54 21.245-27c13.05-7.458 25.704-2.674 34.005-4.899-6.077 6.077-8.261 19.429-21.245 27-12.984 7.57-34.005 4.899-34.005 4.899zM1219.74-325.29c-8.536 1.225-13.393-1.895-25.239.943M1211.452-320.506c-8.535 1.226-13.863-2.976-25.557.391M1201.507-314.764c-8.184 1.834-11.41-2.556-22.783 1.368M1191.562-309.022c-8.184 1.834-9.304-2.824-17.873 2.216M1182.722-303.918c-5.327 1.048-7.459-1.052-12.644 3.617M1219.74-325.29c-5.33 6.779-5.056 12.546-13.437 21.385M1211.452-320.506c-5.329 6.78-4.354 13.495-13.117 21.938M1201.507-314.764c-5.68 6.17-3.492 11.16-12.576 19.047M1191.562-309.022c-5.68 6.17-2.206 9.47-10.856 14.37M1182.722-303.918c-3.572 4.089-2.818 6.985-9.455 9.142" stroke-width="3.0778380199999997"/> - <path d="M1227.73-330.272s-14.622 8.38-26.106 15.072c-11.484 6.692-34.233 20.133-34.233 20.133s23.015-12.98 34.552-19.58a5074.411 5074.411 0 0 0 26.105-15.072" stroke-width="3.0778380199999997"/> - </g> - </g> - <g stroke-width="9.649"> - <path d="M1182.237-442.008s19.633-7.97 34.124-3.98c14.49 3.991 20.024 16.337 27.455 20.653-8.594-.022-19.6 7.845-34.124 3.98-14.525-3.867-27.455-20.653-27.455-20.653zM1240.89-426.127c-6.888-5.187-8.102-10.83-18.467-17.228M1231.654-428.628c-6.888-5.187-7.667-11.928-18.301-17.843M1220.57-431.629c-7.072-4.508-6.236-9.893-17.038-15.188M1209.485-434.63c-7.072-4.509-4.56-8.588-14.176-11.11M1199.633-437.298c-4.5-3.037-4.515-6.03-11.482-6.414M1240.89-426.127c-8.564 1.003-12.46 5.264-24.636 5.557M1231.654-428.628c-8.564 1.003-12.638 6.43-24.804 6.172M1220.57-431.629c-8.381.324-10.375 5.395-22.373 4.517M1209.485-434.63c-8.38.324-8.27 5.113-17.844 2.438M1199.633-437.298c-5.419.352-6.94 2.928-13.15-.256" stroke-width="3.0778380199999997"/> - <path d="M1250.057-423.975s-16.253-4.456-29.096-7.879c-12.843-3.422-38.416-10.07-38.416-10.07s25.434 7.161 38.25 10.686a5074.41 5074.41 0 0 0 29.095 7.878" stroke-width="3.0778380199999997"/> - </g> - <g stroke-width="9.649"> - <path d="M1215.135-497.138s19.518 8.248 26.943 21.316c7.425 13.068 2.608 25.71 4.81 34.017-6.06-6.093-19.406-8.312-26.943-21.316-7.537-13.004-4.81-34.017-4.81-34.017zM1245.38-444.433c-1.203-8.539 1.93-13.388-.877-25.241M1240.617-452.733c-1.203-8.539 3.013-13.856-.324-25.558M1234.902-462.693c-1.813-8.189 2.586-11.404-1.308-22.787M1229.186-472.653c-1.813-8.189 2.848-9.297-2.17-17.88M1224.105-481.506c-1.034-5.33 1.072-7.456-3.584-12.654M1245.38-444.433c-6.765-5.347-12.532-5.089-21.35-13.492M1240.617-452.733c-6.765-5.347-13.483-4.39-21.903-13.175M1234.902-462.693c-6.156-5.697-11.151-3.521-19.015-12.626M1229.186-472.653c-6.155-5.697-9.464-2.232-14.342-10.894M1224.105-481.506c-4.08-3.583-6.978-2.837-9.117-9.48" stroke-width="3.0778380199999997"/> - <path d="M1250.34-436.43s-8.342-14.644-15.003-26.145c-6.662-11.502-20.043-34.286-20.043-34.286s12.92 23.049 19.49 34.603c6.569 11.555 15.003 26.145 15.003 26.145" stroke-width="3.0778380199999997"/> - </g> - <use transform="translate(-32 -18)" width="744.094" height="1052.362" xlink:href="#h"/> - <g stroke-width="9.649"> - <path d="M1142.423-297.845s16.752 12.975 20.58 27.51c3.828 14.534-4.069 25.519-4.069 34.113-4.297-7.443-16.628-13.008-20.58-27.509-3.952-14.501 4.069-34.114 4.069-34.114zM1158.15-239.15c1.025-8.56 5.296-12.445 5.621-24.622M1155.673-248.393c1.026-8.561 6.464-12.62 6.238-24.787M1152.701-259.485c.347-8.38 5.423-10.36 4.576-22.36M1149.73-270.577c.345-8.38 5.135-8.256 2.485-17.838M1147.087-280.436c.366-5.418 2.947-6.933-.221-13.15M1158.15-239.15c-5.169-6.901-10.81-8.13-17.18-18.512M1155.673-248.393c-5.168-6.902-11.907-7.698-17.795-18.348M1152.701-259.485c-4.49-7.084-9.876-6.26-15.143-17.077M1149.73-270.577c-4.49-7.084-8.576-4.582-11.072-14.205M1147.087-280.436c-3.025-4.51-6.018-4.53-6.383-11.5" stroke-width="3.0778380199999997"/> - <path d="M1160.894-230.142s-4.31-16.293-7.802-29.117c-3.491-12.825-10.587-38.278-10.587-38.278s6.582 25.59 9.97 38.443c3.39 12.852 7.803 29.117 7.803 29.117" stroke-width="3.0778380199999997"/> - <g> - <path d="M1106.504-172.72s2.86-20.996 13.533-31.579c10.673-10.582 24.135-9.236 31.578-13.533-4.297 7.443-2.951 20.904-13.534 31.578-10.582 10.673-31.577 13.533-31.577 13.533zM1149.472-215.69c-7.928 3.394-13.427 1.637-24.135 7.444M1142.705-208.923c-7.927 3.393-14.161.714-24.585 6.993M1134.585-200.803c-7.43 3.89-11.684.485-21.653 7.218M1126.465-192.683c-7.43 3.89-9.718-.319-16.69 6.767M1119.247-185.465c-4.874 2.392-7.477.915-11.277 6.767M1149.472-215.69c-3.393 7.928-1.637 13.428-7.444 24.135M1142.705-208.923c-3.393 7.928-.713 14.162-6.992 24.586M1134.585-200.803c-3.89 7.43-.484 11.684-7.218 21.654M1126.465-192.683c-3.89 7.43.32 9.718-6.767 16.692M1119.247-185.465c-2.391 4.875-.914 7.477-6.766 11.278" stroke-width="3.0778380199999997"/> - <path d="M1155.9-222.569s-11.954 11.88-21.315 21.315c-9.36 9.436-27.856 28.308-27.856 28.308s18.871-18.496 28.307-27.857a5074.411 5074.411 0 0 0 21.315-21.315" stroke-width="3.0778380199999997"/> - </g> - </g> - <use transform="translate(-62 -40)" width="744.094" height="1052.362" xlink:href="#i"/> - <use transform="translate(-31 -20)" width="744.094" height="1052.362" xlink:href="#i"/> - </g> - <use transform="matrix(-1 0 0 1 2501 0)" width="744.094" height="1052.362" xlink:href="#j"/> - <path d="M1250.5-437.125c-8.62 41.666-8.594 79.156-8.594 79.156-.505 13.948-7.41 23.678-13.781 20-54.887-31.689-60.291-37.57-89.125-59.669 24.306 26.461 31.231 38.23 86.719 70.266 10.728 6.193 12.062 16.378 11.625 29.469l-1.688 61.716c-.302 9.035 5.747 50.084-22.562 34.218-65.373-36.637-63.772-33.585-95.094-51.669 38.074 32.327 24.373 23.468 90.594 61.7 11.943 6.896 24.531 24.497 24.531 32.844 0 124.331 1.865 101.486-12.813 139.096h60.376c-14.678-37.61-12.813-14.765-12.813-139.096 0-8.347 12.588-25.948 24.531-32.844 66.221-38.232 51.52-29.373 89.594-61.7-31.322 18.084-28.72 15.032-94.094 51.67-28.309 15.865-22.26-25.184-22.562-34.22l-1.688-61.715c-.437-13.09.897-23.276 11.625-29.47 55.488-32.035 62.413-43.804 86.719-70.265-28.834 22.099-34.238 27.98-89.125 59.67-6.37 3.677-13.276-6.053-13.781-20 0 0 .027-37.49-8.594-79.157z" fill="#947245"/> - </g> - <g stroke-width="2.727"> - <path d="M264.452 424.637c-.25.946 1.503 12.373.546 15.66-.508 4.54-.635 5.238-1.704 11.12-1.069 5.881-2.364 17.308-4.391 24.163-.17.576-.408 1.358-.452 2.042-.567 3.502-.584 5.981-.211 10.35l3.512 19.415s1.634 1.918 1.881 2.722c.247.804-.172 2.006-.006 2.25.927 1.362 1.074 2.702 2.177 3.848.173.18.92.107 1.118.356.171.216 1.485.3 1.74.466.784.74.646 1.276 1.049 2.404l-6.321.026c.162-2.822-2.057-3.938-2.057-3.938-.244-.308-2.823-1.017-3.121-2.683-.413-2.392-.068-2.869-.068-2.869s-2.115-9.062-2.996-11.33c-.504-1.758-.605-2.592-.855-4.127-.76-4.24-1.017-6.075-3.32-12.405-.547-1.097-1.987-1.453-1.869-2.898.154-.557.427-.979.701-1.462l.072-1.11c.336-5.183.625-10.384 1.056-15.547a1.85 1.85 0 0 0 .236-.741c.602-8.797-4.079-17.02-7.1-24.897-.548-1.43-.075-2.995-.696-4.423-3.214-1.108-5.415-6.475-6.563-9.854-1.122-3.303-1.617-8.284-.764-11.589.278-1.077.434-1.814.964-2.522M300.323 443.746c1.026-.24 1.416-.319 2.51-.308 0 0 .74 1.02.959 1.499 1.529 2.753 3.371 15.341 4.434 21.193.33 1.814 1.094 5.943 1.434 7.866 0 0-.377 2.066.288 4.345.203.695.426 1.387.609 2.085.803 3.062 1.716 3.813 1.716 3.813.214.733 1.468 6.751 1.681 7.484 1.842 8.241 2.741 13.212 2.623 16.652-.115 4.714-.09 4.254.284 4.639 1.037 1.068 1.567.406 3.787 6.085.133.454.265-.217.505.234.287.538.78.477 1.18.53.73.096.59.23 1.181.307a6.248 6.248 0 0 0 1.58.015l5.461.037c-.67-1.992-2.887-3.369-4.828-3.386-.857-.528-1.85-1.282-2.155-2.287-1.251-2.003-1.608-2.427-2.262-3.335.108-.722-.414-1.692-.64-2.47l-1.958-23.232s.403-2.328.372-4.745c-.164-12.768.578-25.616 1.05-38.434.16-1.074 4.04-4.71 4.04-4.71" fill="#e3e4e5" stroke-linecap="square" transform="matrix(.15595 0 0 .15696 193.886 177.564)"/> - <path d="M356.761 323.788a7.326 7.326 0 0 0-5.446 2.507c-1.794 2.469-2.968 7.56-3.099 10.618-.034.807.3 1.426.045 2.149-.871 2.471-1.585 4.615-1.643 4.946-.757 4.317-.911 19.802-2 25.736-1.09 5.933-6.098 14.56-7.965 17.344-1.227 1.365-3.757 2.059-4.535 2.236-.779.177-7.197-.484-7.197-.484-8.468-.595-21.063-5.268-29.51-6.407-8.447-1.14-18.667-.597-26.626-1.443 0 0-9.95-3.678-19.116-1.016-9.031 2.623-14.11 7.479-21.957 19.542 0 0-3.37 4.117-3.41 5.468-.134 4.435 1.779 10.02 5.205 12.835 1.104 1.07.809.112.714-.165.01.019.011.014.027.048.304.659.664 2.389 1.099 2.991 1.166 1.62 2.383 3.41 3.312 5.198.778 1.498.373 3.254 1.072 4.762 3.846 8.304 2.058 16.825 2.024 26.49a2.067 2.067 0 0 1-.206.833c-.105 5.681-5.654 13.287-5.654 18.98v1.22c-.265.554-.532 1.042-.66 1.664-.028 1.591-2.167 1.838-1.493 2.982 2.955 6.687 3.364 8.665 4.491 13.22.381 1.653.55 2.554 1.223 4.424 1.12 2.39 4.063 12.08 4.063 12.08s-.342.554.277 3.126c.442 1.79 3.302 2.311 3.59 2.623 0 0 2.664 1.635 2.687 4.733 0 .394 2.52.222 2.857.222 1.02 0 1.998-.155 3.018-.155-.124-1.296-.45-2.056-1.357-2.787-.29-.157-1.46-.537-1.661-.755-.234-.254-.423-.769-.625-.949-1.283-1.143-1.538-2.591-2.643-3.987-.198-.25.174-1.605-.152-2.459-.325-.854-2.24-2.787-2.24-2.787l-5.198-20.858c-.714-4.734 2.864-7.443 3.234-11.325 0-.75 4.58-12.156 4.812-12.776 3.32-8.9 8.794-22.846 8.68-28.717-.126-6.571-.255 1.27.342-3.706.45-3.747-1.757-13.77-1.552-14.829 12.43 20.753 24.519 28.246 44.457 26.269 1.088-.098 1.498-.124 2.58.029 0 0 .44 1.085.518 1.578.72 2.868-1.1 15.308-1.74 21.119-.2 1.801-.638 5.903-.858 7.81 0 0-.973 1.955-.973 4.25 0 .7.02 1.4 0 2.1-.09 3.073.598 3.92.598 3.92 0 .737-.5 6.735-.5 7.472-.56 8.229-1.153 12.11-2.268 15.428-.198.591-.694 1.442-1.303 1.607-.574.43-1.53 1.332-1.634 2.11 0 .671.066 1.276.205 1.878.103.446.565 1.177.821 1.548.381 1.768.197 3.614.197 5.42 0 .458.204 1.187.312 1.656.13.559.637.564 1.018.667.696.189.454.622 1.018.775.467.126 1.008.106 1.536.106l5.402.03c-.088-2.019-2.06-3.058-3.429-4.027-.697-.623-.632-.767-.643-1.781 0-1.29-.143-2.736-.143-4.027 0-.695.298-.964.563-1.539.316-.686.08-1.694.08-2.477 1.006-6.872 2.164-13.925 3.992-20.616 1.465-1.898 2.108-4.32 2.544-6.708 0 0 1.177-3.191.777-4.888l4.964-30.15c.471-1.02 1.293-1.93 2.384-2.225 6.187-2.727 12.294-4.578 18.117-8.624 6.305-4.382 10.088-11.538 14.58-17.984.987-1.913 2.142-3.583 3.26-5.371 3.857-5.536 8.702-20.028 10-27.217 1.533-8.488.92-16.881 3.384-26.937.529-2.157 2.354-3.884 2.777-6.117l-.044-.406 1.232-.165c1.317-.155 2.943-.421 3.875-.445.979-.12 2.985-.107 3.16-.107.175 0 1.224.223 1.84.223.51 0 1.347.542 1.857.542.544 0 .95-.094 1.304-.542.65-.821.724-.563.893-1.297.056-.244.312.005.437-.039.471-.165.849-.777 1.411-.929.376-.102.662-.241.732-.62.088-.476.098-1.008.098-1.548 0-.791-.032-.831-.607-.987-.074-.02-.137-.08-.205-.116-.595-.161.098-1.33.098-1.994 0-.677-.018-1.162-.196-1.549-.232-.502-.334-.707-.822-1.103-.359-.292-.54-.676-.92-.88-2.81-2.42-4.042-4.224-6.018-6.089.33-.412.273-.616.152-1.297-.902-2.728-2.637-3.233-5.562-5.45-2.733-1.578-6.308-3.295-10.099-3.648h-1.634a6.64 6.64 0 0 0-.402-.01z" fill="#fff" stroke-linecap="square" transform="matrix(.15595 0 0 .15696 193.886 177.564)"/> - <path d="M249.524 228.385a1.14 1.14 0 0 0-.85.393c-.279.388-.462 1.187-.483 1.667-.005.127.047.224.007.337-.135.388-.247.725-.256.776-.118.678-.142 3.109-.312 4.04s-.931 2.303-1.242 2.722c-.172.232-.586.323-.707.351-.122.028-1.123-.076-1.123-.076-1.32-.093-3.284-.827-4.602-1.005-1.317-.18-2.91-.094-4.152-.227 0 0-1.552-.577-2.981-.16-1.409.412-2.2 1.175-3.424 3.068 0 0-.526.646-.532.858-.02.683.266 1.54.78 1.989.01.008.17.11.18.118.021-1.1.2-1.625.2-1.625a4.57 4.57 0 0 0 .267 1.598c.116.334.398.644.576.963.277.748.485 2.936.623 3.847.072.47-.28 2.051-.515 2.76-.454 1.377-.654 2.613-.119 1.681.239-.414 1.149-2.155 1.616-3.777.468-1.622.924-2.56.782-2.89-.046-.107-.179-2.357-.209-2.444a1.342 1.342 0 0 1-.04-.137c-.012-.052-.044-.094-.01-.272l.222-1.151c2.29 4.281 5.939 4.812 8.414 1.821-.373 1.214-.388 2.98-.345 3.724.043.744.037.425.025.686l-.437 4.087-.04.08s-.098.225-.098.436c0 .1.004.215 0 .345-.006.192-.001.299.022.328l.071.089c.005.145-.003.29-.014.436l-.012.168.054-.068c.153-.193.238-.489.3-.836l.01-.044c.003-.013.015-.042.015-.042s.036-.1.066-.227c.03-.126.037-.24.037-.24l-.024-.102.017-.103s.773-4.707.774-4.732a.44.44 0 0 1 .04-.132c.148-.208.479-.44.602-.582.125-.145.581-2.06.512-3.256-.158-2.739 3.446-3.517 4.652-2.165.453-.245.832-.598 1.155-1.023a6.28 6.28 0 0 0 .771-1.389c.03-.103.064-.214.09-.311.066-.259.12-.496.155-.696.03-.167.054-.333.075-.5.022-.167.04-.334.055-.501.03-.336.052-.675.08-1.021.026-.347.058-.7.106-1.067a11.798 11.798 0 0 1 .212-1.14c.02-.084.054-.164.093-.242.04-.079.085-.156.13-.233a2.9 2.9 0 0 0 .127-.234c.037-.08.067-.163.083-.25l-.007-.064.124-.017.001-.012c-.582.122-.32.029-.884.103a1.07 1.07 0 0 1-.441-.068c-.285-.2-.524-.463-.646-.808 0-.387.126-1.123.231-1.322.351-.657.639-.16 1.336.035.664.184 1.654.703 2.028 1.064.043.041.548.065.597.038.037-.02.078-.015.116-.028 0-.01.006-.021.008-.032.002-.009 0-.016.003-.026.016-.062.042-.134.042-.186a1.36 1.36 0 0 0-.006-.136.367.367 0 0 0-.025-.109c-.013-.03-.025-.05-.037-.07a.363.363 0 0 0-.09-.103c-.057-.046-.085-.106-.144-.138-.438-.38-.63-.663-.939-.956.052-.065.043-.097.024-.204-.14-.428-.411-.507-.868-.855-.426-.248-.983-.517-1.574-.573h-.255a1.042 1.042 0 0 0-.063-.001z" fill="#d18219" stroke="none"/> - <path d="M356.761 323.788a7.326 7.326 0 0 0-5.446 2.507c-1.794 2.469-2.968 7.56-3.099 10.618-.034.807.3 1.426.045 2.149-.871 2.471-1.585 4.615-1.643 4.946-.757 4.317-.911 19.802-2 25.736-1.09 5.933-6.098 14.56-7.965 17.344-1.227 1.365-3.757 2.059-4.535 2.236-.779.177-7.197-.484-7.197-.484-8.468-.595-21.063-5.268-29.51-6.407-8.447-1.14-18.667-.597-26.626-1.443 0 0-9.95-3.678-19.116-1.016-9.031 2.623-14.11 7.479-21.957 19.542 0 0-3.37 4.117-3.41 5.468-.134 4.435 1.779 10.02 5.205 12.835 1.104 1.07.809.112.714-.165.01.019.011.014.027.048.304.659.664 2.389 1.099 2.991 1.166 1.62 2.383 3.41 3.312 5.198.778 1.498.373 3.254 1.072 4.762 3.846 8.304 2.058 16.825 2.024 26.49a2.067 2.067 0 0 1-.206.833c-.105 5.681-5.654 13.287-5.654 18.98v1.22c-.265.554-.532 1.042-.66 1.664-.028 1.591-2.167 1.838-1.493 2.982 2.955 6.687 3.364 8.665 4.491 13.22.381 1.653.55 2.554 1.223 4.424 1.12 2.39 4.063 12.08 4.063 12.08s-.342.554.277 3.126c.442 1.79 3.302 2.311 3.59 2.623 0 0 2.664 1.635 2.687 4.733 0 .394 2.52.222 2.857.222 1.02 0 1.998-.155 3.018-.155-.124-1.296-.45-2.056-1.357-2.787-.29-.157-1.46-.537-1.661-.755-.234-.254-.423-.769-.625-.949-1.283-1.143-1.538-2.591-2.643-3.987-.198-.25.174-1.605-.152-2.459-.325-.854-2.24-2.787-2.24-2.787l-5.198-20.858c-.714-4.734 2.864-7.443 3.234-11.325 0-.75 4.58-12.156 4.812-12.776 3.32-8.9 8.794-22.846 8.68-28.717-.126-6.571-.255 1.27.342-3.706.45-3.747-1.757-13.77-1.552-14.829 12.43 20.753 24.519 28.246 44.457 26.269 1.088-.098 1.498-.124 2.58.029 0 0 .44 1.085.518 1.578.72 2.868-1.1 15.308-1.74 21.119-.2 1.801-.638 5.903-.858 7.81 0 0-.973 1.955-.973 4.25 0 .7.02 1.4 0 2.1-.09 3.073.598 3.92.598 3.92 0 .737-.5 6.735-.5 7.472-.56 8.229-1.153 12.11-2.268 15.428-.198.591-.694 1.442-1.303 1.607-.574.43-1.53 1.332-1.634 2.11 0 .671.066 1.276.205 1.878.103.446.565 1.177.821 1.548.381 1.768.197 3.614.197 5.42 0 .458.204 1.187.312 1.656.13.559.637.564 1.018.667.696.189.454.622 1.018.775.467.126 1.008.106 1.536.106l5.402.03c-.088-2.019-2.06-3.058-3.429-4.027-.697-.623-.632-.767-.643-1.781 0-1.29-.143-2.736-.143-4.027 0-.695.298-.964.563-1.539.316-.686.08-1.694.08-2.477 1.006-6.872 2.164-13.925 3.992-20.616 1.465-1.898 2.108-4.32 2.544-6.708 0 0 1.177-3.191.777-4.888l4.964-30.15c.471-1.02 1.293-1.93 2.384-2.225 6.187-2.727 12.294-4.578 18.117-8.624 6.305-4.382 10.088-11.538 14.58-17.984.987-1.913 2.142-3.583 3.26-5.371 3.857-5.536 8.702-20.028 10-27.217 1.533-8.488.92-16.881 3.384-26.937.529-2.157 2.354-3.884 2.777-6.117l-.044-.406 1.232-.165c1.317-.155 2.943-.421 3.875-.445.979-.12 2.985-.107 3.16-.107.175 0 1.224.223 1.84.223.51 0 1.347.542 1.857.542.544 0 .95-.094 1.304-.542.65-.821.724-.563.893-1.297.056-.244.312.005.437-.039.471-.165.849-.777 1.411-.929.376-.102.662-.241.732-.62.088-.476.098-1.008.098-1.548 0-.791-.032-.831-.607-.987-.074-.02-.137-.08-.205-.116-.595-.161.098-1.33.098-1.994 0-.677-.018-1.162-.196-1.549-.232-.502-.334-.707-.822-1.103-.359-.292-.54-.676-.92-.88-2.81-2.42-4.042-4.224-6.018-6.089.33-.412.273-.616.152-1.297-.902-2.728-2.637-3.233-5.562-5.45-2.733-1.578-6.308-3.295-10.099-3.648h-1.634a6.64 6.64 0 0 0-.402-.01z" fill="none" stroke-linecap="square" transform="matrix(.15595 0 0 .15696 193.886 177.564)"/> - <path d="M382.265 343.818c0 .332-.169.795-.268 1.19-.015.064-.007.106-.017.165.083-.398.294-.837.294-1.22 0-.048-.009-.088-.009-.135z" fill="#d39044" stroke-linecap="square" transform="matrix(.15595 0 0 .15696 193.886 177.564)"/> - <path d="M334.948 432.87c-2.059 8.327-7.182 10.024-3.42 17.087 0 0-1.618-.118-2.592-2.837-.487-1.36-.813-3.37-.696-6.343.059-1.486.228-3.212.544-5.218.158-1.002.352-2.075.587-3.222" fill="#fff" fill-rule="evenodd" transform="matrix(.15595 0 0 .15696 193.886 177.564)"/> - <path d="M338.745 429.429c-2.058 8.327-7.182 10.024-3.42 17.087 0 0-2.025-.03-2.999-2.75-.487-1.359-.838-3.642-.858-5.371-.02-1.73.45-4.684.788-5.924.337-1.24 1.238-3.31 1.238-3.31" fill="#fff" fill-rule="evenodd" transform="matrix(.15595 0 0 .15696 193.886 177.564)"/> - <path d="M345.773 418.39c-2.934 5.509-5.297 10.213-6.52 14.3-1.225 4.089-1.996 6.272.31 10.602 0 0-1.567-.817-3.628-4.632-.65-1.204-1.086-3.867-.789-6.592a30.55 30.55 0 0 1 .776-4.396c.207-.808.465-1.662.79-2.58" fill="#fff" fill-rule="evenodd" transform="matrix(.15595 0 0 .15696 193.886 177.564)"/> - <path d="M348.502 414.884c-1.818 2.792-2.406 5.465-3.414 7.733-2.016 4.537-3.085 7.944-3.085 10.44 0 2.029-.357 3.709 1.905 7.156 0 0-1.061-.124-1.753-.543-.692-.419-1.56-1.194-2.269-2.62-.708-1.427-1.255-3.504-1.303-6.527-.024-1.511.478-3.745.89-5.217.413-1.473 1.807-4.55 1.807-4.55" fill="#fff" fill-rule="evenodd" transform="matrix(.15595 0 0 .15696 193.886 177.564)"/> - <path d="M353.27 334.537c.119-.233-11.574-3.636-13.242-13.858 2.275-2.15 14.25 5.702 14.438 12.987" fill="#d18219" fill-rule="evenodd" stroke-width="1.364" transform="matrix(.15595 0 0 .15696 193.886 177.564)"/> - <path d="M340.423 320.825c.093.205 6.265.184 11.133 10.596-1.095-1.244-6.04 1.675-11.092-10.204" fill-opacity=".502" fill-rule="evenodd" stroke-width="1.364" transform="matrix(.15595 0 0 .15696 193.886 177.564)"/> - <path d="M368.707 335.545c.165-.134.396-.452.122-.75-5.102-3.192-4.857.706-8.443.706 1.71 0 1.706.234 2.345.926 2.32 2.515 3.917 2.265 5.976-.176" fill-rule="evenodd" stroke-width="1.364" transform="matrix(.15595 0 0 .15696 193.886 177.564)"/> - <path d="M381.193 349.763c-.565.67-2.538-.793-3.984-.967" fill="none" stroke-linecap="square" transform="matrix(.15595 0 0 .15696 193.886 177.564)"/> - <path d="M382.326 345.923s-.54-.438-4.32-.932c.004.07 2.605-2.673 2.835.29" fill-rule="evenodd" stroke-linecap="square" transform="matrix(.15595 0 0 .15696 193.886 177.564)"/> - <path d="M302.663 436.88a33.59 33.59 0 0 0-.914 1.815c-1.068 2.348-1.409 4.538.472 8.069 0 0-1.617-.117-2.591-2.837-.487-1.36-.813-3.37-.696-6.343.03-.743.086-1.546.175-2.414" fill="#fff" fill-rule="evenodd" transform="matrix(.15595 0 0 .15696 193.886 177.564)"/> - <path d="M230.708 419.108s-1.55-6.161 2.09-13.014" fill="none" transform="matrix(.15595 0 0 .15696 193.886 177.564)"/> - </g> - <g fill="#e7ca00" stroke-width="2.294"> - <path d="M401.415 879.458c-2.045-1.515-4.023-6.243-3.27-8.842-2.694-2.22-9.659 2.184-6.276 8.588 3.354 6.388 7.986 5.85 9.57.267l-.024-.013zM420.519 885.467c.56-3.612-.686-9.663-6.934-10.747-6.235-1.067-8.153 4.548-6.958 10.324 4.5-3.395 11.623-1.683 13.892.423z" transform="matrix(.01517 -.19478 .17623 .01677 116.11 336.644)"/> - <path d="M407.416 882.052c1.063-4.786 5.835-6.083 10.57-5.594-2.96-3.38-6.044-8.823-10.264-5.651-3.317 2.504-5.617 6.151-.299 11.225l-.008.02z" transform="matrix(.01517 -.19478 .17623 .01677 116.11 336.644)"/> - <path d="M404.77 879.344c.56-3.612 2.025-8.456 5.93-10.433-3.367-3.054-11.69-2.136-12.302 4.1-.632 6.231 3.047 7.49 6.383 6.307l-.01.026zM388.887 919.375c5.28.85 12.283-1.796 10.307-13.708-1.878-11.299-10.192-14.04-10.816-11.348 4.77 1.667 4.154 17.65.475 25.103l.034-.047z" transform="matrix(.01517 -.19478 .17623 .01677 116.11 336.644)"/> - <path d="M396.765 918.122c5.294.946 13.706-2.13 9.908-13.822-3.71-11.462-12.224-10.052-12.808-7.164 4.779 1.845 6.512 13.045 2.871 21.008l.03-.022z" transform="matrix(.01517 -.19478 .17623 .01677 116.11 336.644)"/> - <path d="M376.728 918.168c3.859 3.455 13.822 4.688 17.015-6.829 3.011-10.905.276-14.41-3.62-16.18 1.943 5.672-5.07 21.665-13.412 22.991l.018.018zM402.151 917.195c3.263-1.816 10.612-5.074 5.805-16.066-3.936-8.966-10.087-5.15-11.753-3.603 4.31 1.812 8.14 11.493 5.948 19.67z" transform="matrix(.01517 -.19478 .17623 .01677 116.11 336.644)"/> - <path d="M409.224 914.63c3.051-2.059 10.717-7.101 4.569-17.83-6.09-10.543-14.194-3.537-14.215-.648 3.563.888 9.641 9.955 9.673 18.46l-.027.017z" transform="matrix(.01517 -.19478 .17623 .01677 116.11 336.644)"/> - <path d="M416.718 907.263c2.017-2.81 7.176-9.719-.7-16.792-7.758-6.967-12.759 1.783-12.047 4.285 3.199-.447 10.595 5.25 12.77 12.52l-.023-.013z" transform="matrix(.01517 -.19478 .17623 .01677 116.11 336.644)"/> - <path d="M421.176 896.276c.56-3.612 2.045-12.624-7.034-14.705-8.902-2.034-9.573 8.603-8.069 10.431 2.395-2.185 10.557-1.078 15.103 4.274zM370.892 914.922c3.375 4.144 13.412 7.063 18.657-4.145 4.966-10.665 2.772-14.71-.953-17.146 1.016 6.117-8.907 21.318-17.712 21.318l.009-.027z" transform="matrix(.01517 -.19478 .17623 .01677 116.11 336.644)"/> - <path d="M360.848 906.698c3.225 6.56 19.288 14.058 25.522 1.927 5.916-11.504 1.012-22.081-3.9-26.14 2.33 11.768-12.11 29.737-21.626 24.184l.004.029z" transform="matrix(.01517 -.19478 .17623 .01677 116.11 336.644)"/> - <path d="M352.366 898.402c7.864 17.16 24.132 14.152 29.643 1.691 5.229-11.823 3.75-18.756-2.177-24.424-4.094 15.2-12.2 23.738-27.49 22.705l.024.028z" transform="matrix(.01517 -.19478 .17623 .01677 116.11 336.644)"/> - <path d="M341.921 884.056c5.964 21.484 27.137 18.887 36.131 6.547 6.355-8.705 4.117-15.146.905-18.94-6.961 8.212-18.98 15.534-37.069 12.368l.033.025z" transform="matrix(.01517 -.19478 .17623 .01677 116.11 336.644)"/> - <path d="M337.98 870.931c.633 21.914 26.07 24.33 37.372 11.791 7.983-8.845 7.368-15.426 5.227-19.305-8.432 8.338-25.238 18.384-42.626 7.488l.026.026z" transform="matrix(.01517 -.19478 .17623 .01677 116.11 336.644)"/> - <path d="M332.703 850.203c-3.87 28.348 29.128 37.617 43.467 20.689 7.698-9.07 7.333-15.432 5.2-19.31-14.3 10.02-39.159 11.185-48.688-1.376l.021-.003z" transform="matrix(.01517 -.19478 .17623 .01677 116.11 336.644)"/> - <path d="M329.46 823.53c-9.486 30.632 19.29 41.583 38.047 38.528 14.855-2.403 23.204-19.886 21.094-23.738-18.552 13.087-55.366 1.82-59.157-14.759l.016-.032z" transform="matrix(.01517 -.19478 .17623 .01677 116.11 336.644)"/> - <path d="M329.06 799.67c-12.676 29.897 15.364 47.446 38.583 45.69 15.216-1.153 27.753-7.06 27.202-19.552-22.745 8.013-58.219-5.432-65.807-26.134l.021-.004z" transform="matrix(.01517 -.19478 .17623 .01677 116.11 336.644)"/> - <path d="M329.966 774.93c-12.693 30.576 14.747 55.711 43.465 56.342 14.648.316 21.34-3.593 27.196-13.299-20.73 3.532-64.889-27.938-70.661-43.044z" transform="matrix(.01517 -.19478 .17623 .01677 116.11 336.644)"/> - <path d="M329.57 765.272c-11.333 35.923 80.312 80.423 84.993 33.705-21.913 11.482-81.753-20.668-84.992-33.705z" transform="matrix(.01517 -.19478 .17623 .01677 116.11 336.644)"/> - <path d="M327.523 755.606c-15.379 19.757 93.055 78.167 95.506 28.363-9.762 5.009-29.87.684-49.265-8.106-19.38-8.787-33.155-22.855-46.237-20.233l-.005-.024z" transform="matrix(.01517 -.19478 .17623 .01677 116.11 336.644)"/> - <path d="M310.962 751.12c19.613.483 61.382 30.938 89.302 36.03 17.874 3.25 32.459-4.197 24.146-35.544-28.487 29.115-82.917-17.824-111.77-6.766-2.968-1.407.62 8.346-1.655 6.276l-.023.004z" transform="matrix(.01517 -.19478 .17623 .01677 116.11 336.644)"/> - <path d="M314.738 755.54c19.01-11.796 58.328 10.083 86.15 11.273 17.08.697 38.39-18.62 24.406-47.052-21.874 37.6-82.887 7.493-108.6 27.333-1.927 4.301-.85 9.998-1.984 8.422l.028.025z" transform="matrix(.01517 -.19478 .17623 .01677 116.11 336.644)"/> - <path d="M307.104 756.761c20.232-14.78 61.569-6.196 88.05-8.343 17.572-1.444 43.746-32.009 19.805-57.475-14.86 53.842-64.483 27.223-107.269 58.258-2.12 5.473.796 8.86-.59 7.531l.005.03z" transform="matrix(.01517 -.19478 .17623 .01677 116.11 336.644)"/> - <path d="M314.385 751.966c16.663-15.72 57.604-14.669 81.93-27.066 16.32-8.304 32.874-43.645 4.386-61.42-2.962 56.707-55.186 38.963-87.452 80.94-.782 6.006 2.732 8.47 1.112 7.55l.025-.003z" transform="matrix(.01517 -.19478 .17623 .01677 116.11 336.644)"/> - <path d="M316.126 744.463c12.345-22.09 50.302-27.61 70.82-45.993 18.351-16.443 23.318-46.355-7.626-55.908-2.63 59.192-43.855 46.685-60.74 82.265-3.214 7.812-1.534 20.485-2.45 19.665l-.004-.029z" transform="matrix(.01517 -.19478 .17623 .01677 116.11 336.644)"/> - <path d="M325.504 721.914c12.654-20.094 22.161-13.181 42.356-33.822 17.383-17.772 22.62-60.366-7.793-61.346 4.545 51.455-15.245 51.997-29.134 79.625.503 6.14-3.665 15.957-5.404 15.54l-.025.003z" transform="matrix(.01517 -.19478 .17623 .01677 116.11 336.644)"/> - <g stroke-width="3.041"> - <path d="M310.424 602.663l-10.497 5.67-49.929 153.76 18.14 40.066 17.139 2.478 20.712-1.52 30.737-138.479 8.666-56.418-21.061-12.406-13.907 6.85z" fill-rule="evenodd" transform="matrix(.01033 -.15961 .1223 .0163 152.47 322.348)"/> - <path d="M309.263 597.474c.415 2.04.853 4.105 1.293 6.14 9.833-6.845 20.436-.176 23.345 15.636 2.902 15.806-3.027 38.861-13.668 56.633-6.681 14.63-14.639 32.223-16.986 56.246-1.823 18.767 1.856 41.713-2.283 62.595-2.528 10.013-7.857 9.093-18.2 8.451 4.162 6.833 9.334 10.587 16.036 10.365 14.42-3.208 24.74-16.165 28.494-44.84-4.283-23.95-3.188-47.936 9.852-72.08 11.634-11.987 22.336-25.543 26.268-49.987 1.883-12.145-.47-25.209-9.616-39.046-11.482-17.358-20.812-17.994-29.61-16.439-4.964 2.075-9.942 4.22-14.925 6.326z" transform="matrix(.01033 -.15961 .1223 .0163 152.47 322.348)"/> - </g> - <path d="M-325.656 629.664c.001-3.088 2.01-5.59 4.489-5.59 2.478 0 4.487 2.502 4.488 5.59h-8.977z" transform="matrix(.80795 .2725 .34088 -.78636 295.431 874.635)" fill-rule="evenodd" stroke-width=".5"/> - <path d="M295.504 723.041c-3.802 7.233-11.304 10.594-16.734 7.42-5.396-3.156-6.684-11.681-2.921-18.968 3.798-7.261 11.303-10.593 16.734-7.42 5.395 3.156 6.683 11.682 2.921 18.968zM276.557 641.066c-2.604-3.571-6.329-5.807-10.315-5.098-2.38.416-4.722 1.872-6.674 3.928-.077-.335-.154-.67-.206-1.009-1.39-7.709 4.797-16.772 11.401-17.96 2.956-.504 5.787.562 8.115 2.677-1.25 2.797-1.784 5.89-1.26 8.804a15.217 15.217 0 0 0 1.071 3.588 18.318 18.318 0 0 0-2.107 5.066l-.025.003z" transform="matrix(.01517 -.19526 .17623 .01113 117 337.655)"/> - <path d="M300.305 632.437c-2.852-3.625-6.749-5.866-11.004-5.267-4.033.568-7.999 3.659-10.677 7.768a18.765 18.765 0 0 1-1.132-4.147c-1.379-8.954 6.038-19.14 13.72-20.221 1.936-.273 3.81.037 5.537.831-.14 1.345-.13 2.69.075 4.016.624 4.048 2.48 7.614 5.04 10.154-.948 2.18-1.497 4.524-1.564 6.837l.004.029zM258.047 677.375c-.141.19-.302.418-.445.637-3.207-.469-6.187-2.176-8.529-4.746 2.477 2.462 5.648 3.974 8.97 4.08l.004.029zM264.755 663.75c-4.083-2.303-7.247-6.804-8.091-12.286-1.336-8.673 5.853-18.57 13.294-19.617a9.12 9.12 0 0 1 2.192-.044c-2.664 3.71-4.224 8.47-3.54 12.915.442 2.867 1.507 5.478 3.055 7.652-3.307 2.732-5.946 6.931-6.89 11.347l-.02.033z" transform="matrix(.01517 -.19526 .17623 .01113 117 337.655)"/> - <path d="M258.333 689.203c-2.006.599-4.083.405-5.87-.778-4.37-2.896-5.54-10.496-2.61-16.944 2.96-6.423 8.955-9.313 13.354-6.392 1.681 1.11 2.896 2.926 3.583 5.133a7.544 7.544 0 0 0-5.375.382c-4.698 2.155-7.138 8.593-5.42 14.328a11.05 11.05 0 0 0 2.343 4.3l-.004-.03z" transform="matrix(.01517 -.19526 .17623 .01113 117 337.655)"/> - <path d="M262.393 693.964c-3.06-.953-5.817-3.465-7.408-7.237-2.952-6.974-.85-15.61 4.763-19.248 2.876-1.84 6.1-2.036 8.974-.859-.526 3.151-.222 6.56 1.094 9.65 1.357 3.231 3.617 5.555 6.195 6.745-2.549-.671-5.28-.316-7.754 1.269-3.12 2.021-5.157 5.613-5.848 9.619l-.016.061zM257.279 743.409c-7.009-4.475-11.336-13.985-9.674-21.123 1.4-5.975 6.675-8.44 12.495-6.39-2.556 5.19-3.25 11.933-1.444 18.2 1.494 5.228 4.476 9.203 8.076 11.404-2.763.647-6.115.052-9.429-2.095l-.024.003z" transform="matrix(.01517 -.19526 .17623 .01113 117 337.655)"/> - <path d="M251.674 769.938a12.338 12.338 0 0 1-.917-.99c-5.64-6.455-7.08-16.8-3.218-22.981 3.619-5.802 10.678-5.957 16.217-.642-2.971 6.512-2.259 15.325 1.637 22.195-3.235-1.473-6.876-1.563-10.343.132a14.099 14.099 0 0 0-3.352 2.282l-.024.003z" transform="matrix(.01517 -.19526 .17623 .01113 117 337.655)"/> - <path d="M268.083 783.814c-5.381-.309-10.723-6.313-12.475-14.487-1.953-9.153 1.305-17.664 7.28-18.91l.266-.037c2.876 4.717 7.182 7.526 11.73 7.725.033.047.066.1.105.184-6.72 4.626-9.86 15.335-7.062 25.003.05.162.101.332.156.522zM265.208 717.594c-6.588 2.105-14.435-2.685-17.468-10.685-3.008-7.997-.113-16.28 6.5-18.396 1.694-.526 3.484-.6 5.256-.335 1.523 4.76 4.285 8.457 7.625 10.57-1.374 4.536-1.511 9.759-.05 14.727.264.942.58 1.847.956 2.685-.853.576-1.786 1.082-2.823 1.405l.004.029z" transform="matrix(.01517 -.19526 .17623 .01113 117 337.655)"/> - <path d="M269.946 727.884c-7.013-4.51-11.361-13.99-9.673-21.123 1.673-7.11 8.767-9.257 15.78-4.754 2.025 1.297 3.856 3.048 5.367 5.022-4.177 5.416-5.767 13.84-3.536 21.6.128.504.303 1.023.48 1.514-2.54.328-5.486-.376-8.418-2.26z" transform="matrix(.01517 -.19526 .17623 .01113 117 337.655)"/> - <path d="M284.7 750.888c-3.681 7.63-11.189 10.503-16.705 6.352-5.491-4.115-6.942-13.723-3.283-21.381 3.681-7.63 11.188-10.503 16.704-6.352 5.486 4.115 6.941 13.715 3.284 21.381zM275.434 703.142c-3.779 1.886-7.908 2.151-11.274.358-6.168-3.363-7.576-12.505-3.14-20.38 3.15-5.529 8.39-8.998 13.392-9.385 2.208 1.985 5.027 2.972 7.878 2.57.168.146.341.328.495.505-7.94 3.422-12.165 13.327-9.413 22.051a16.01 16.01 0 0 0 2.034 4.263l.028.018z" transform="matrix(.01517 -.19526 .17623 .01113 117 337.655)"/> - <path d="M284.18 666.044c1.218 7.903-4.118 15.27-10.446 16.162-6.308.888-12.472-4.831-13.693-12.763-.864-5.605 1.874-11.709 5.799-15.11 2.616 4.35 6.942 6.957 11.389 6.33 1.595-.224 3.156-.841 4.56-1.82a23.142 23.142 0 0 1 2.367 7.204l.024-.003z" transform="matrix(.01517 -.19526 .17623 .01113 117 337.655)"/> - <path d="M287.201 705.726c-5.672 2.926-12.188-1.39-14.474-9.664-2.285-8.275.45-17.434 6.142-20.392 1.763-.903 3.602-1.11 5.392-.73a25.498 25.498 0 0 0-1.654 3.538c-3.388 9.103-1.72 20.056 3.749 24.342.9.713 1.867 1.21 2.867 1.466a9.937 9.937 0 0 1-2.001 1.408l-.02.032z" transform="matrix(.01517 -.19526 .17623 .01113 117 337.655)"/> - <path d="M304.5 667.948c.426 2.76-.017 5.464-1.083 7.859-5.203-3.176-12.142.017-15.889 7.242-4.182-1.796-7.535-6.13-8.367-11.533-1.183-7.679 5.123-16.42 11.7-17.457.027.342.078.674.13 1.012 1.146 7.435 7.098 12.89 13.466 12.427l.064.418-.02.032z" transform="matrix(.01517 -.19526 .17623 .01113 117 337.655)"/> - <path d="M303.513 696.658c-4.26 9.226-12.873 13.369-19.195 9.203-6.288-4.15-7.974-15.092-3.725-24.346 4.26-9.226 12.872-13.375 19.196-9.202 6.288 4.15 7.974 15.092 3.724 24.345zM289.382 655.22c-1.417 2.99-3.648 5.49-6.347 6.878-6.282 3.152-13.95-.31-17.067-7.746-3.098-7.44.944-18.534 7.22-21.721 2.655-1.353 5.524-1.146 8.18.055-.028.151-.056.295-.079.475-1.667 9.692 1.944 19.186 8.093 22.06zM320.61 614.137c.4 2.594.033 5.177-.908 7.437-2.47-3.075-5.82-4.959-9.444-4.448-4.329.61-8.583 4.542-10.675 9.378-2.219-2.219-3.83-5.297-4.372-8.812-1.197-7.774 5.22-16.611 11.888-17.55 6.643-.935 12.326 6.176 13.526 13.97l-.015.025z" transform="matrix(.01517 -.19526 .17623 .01113 117 337.655)"/> - <path d="M322.452 630.627c1.01 6.556-3.192 12.756-8.577 14.633-2.38-3.426-5.837-5.648-9.628-5.114a9.624 9.624 0 0 0-2.845.894c-1.484-1.919-2.569-4.327-2.985-7.028-1.13-7.341 4.957-15.736 11.26-16.623 6.308-.888 11.69 5.862 12.824 13.231l-.05.007z" transform="matrix(.01517 -.19526 .17623 .01113 117 337.655)"/> - <path d="M293.229 654.4c-3.093 1.87-6.583 2.104-9.461.235-5.117-3.394-6.486-12.284-3.047-19.782 3.457-7.501 10.464-10.872 15.58-7.486 2.723 1.802 4.368 5.14 4.824 9.044-5.169 3.775-8.978 11.09-7.955 17.732l.04.259.019-.003zM256.479 798.67c-5.803 2.083-12.089-2.383-14.383-10.509-2.41-8.633.555-18.22 6.643-21.323 5.695-2.9 12.154.88 14.95 8.45-6.2 4.464-9.267 14.214-7.215 23.353l.004.03z" transform="matrix(.01517 -.19526 .17623 .01113 117 337.655)"/> - <path d="M270.605 803.782c-6.263 2.781-13.224-1.096-15.517-8.766-2.294-7.67.943-16.318 7.258-19.217 5.442-2.496 11.415.057 14.436 5.725-5.846 4.71-8.578 13.89-6.18 22.237l.003.021z" transform="matrix(.01517 -.19526 .17623 .01113 117 337.655)"/> - <path d="M267.557 817.92c-5.657 2.577-11.968-.899-14.041-7.797-1.382-4.663-.507-9.733 1.976-13.306 3.978 3.385 9.068 4.39 13.799 2.083a14.505 14.505 0 0 0 3-1.976 14.325 14.325 0 0 1 1.746 3.78c.713 2.373.828 4.889.445 7.24-2.093 2.252-3.666 5.204-4.587 8.498-.7.585-1.49 1.071-2.338 1.478zM276.083 847.28c-6.371 2.907-13.464-1.01-15.799-8.786-2.325-7.754.966-16.497 7.33-19.403.46-.212.951-.391 1.45-.52-.24 3.08.033 6.288.932 9.415 2.072 7.178 6.908 11.988 12.306 13.068-1.376 2.755-3.518 5.014-6.215 6.255l-.004-.028z" transform="matrix(.01517 -.19526 .17623 .01113 117 337.655)"/> - <path d="M285.171 848.437c-6.135 2.792-12.96-.987-15.2-8.466a17.692 17.692 0 0 1-.001-9.943c4.011 3.6 9.243 4.704 14.112 2.348 2.663-1.295 4.898-3.48 6.55-6.207a16.606 16.606 0 0 1 1.591 3.596c2.239 7.479-.92 15.858-7.051 18.672z" transform="matrix(.01517 -.19526 .17623 .01113 117 337.655)"/> - <path d="M293.142 863.357c-6.142 2.793-12.968-.993-15.207-8.472-.611-2.041-.808-4.14-.683-6.197 2.383.415 4.88.086 7.294-1.056 4.181-2.024 7.283-6.259 8.816-11.362 3.03 1.414 5.585 4.388 6.8 8.42 2.238 7.471-.914 15.85-7.045 18.67l.025-.003zM272.959 786.054c-2.764-1.739-5.05-4.729-6.214-8.59-2.452-8.252 1.007-17.505 7.788-20.616 6.75-3.108 14.31 1.09 16.794 9.337 1.87 6.236.33 13.062-3.474 17.366-3.14-1.972-6.987-2.409-10.58-.754-1.641.753-3.098 1.878-4.314 3.257zM319.823 651.64c1.07 6.56-5.47 16.885-12.166 18.31-6.695 1.424-10.884-1.834-13.949-6.191-3.064-4.357-4.273-10.017-2.61-15.188 1.663-5.171 6.083-10.364 10.441-12.278 4.358-1.915 7.371-1.174 10.919 1.74 3.547 2.914 6.296 7.046 7.365 13.606z" transform="matrix(.01517 -.19526 .17623 .01113 117 337.655)"/> - <path d="M285.163 808.599c-6.136 2.785-12.968-.993-15.207-8.472-2.231-7.473.92-15.851 7.052-18.673 6.135-2.792 12.961.994 15.195 8.438 2.239 7.479-.913 15.857-7.044 18.678l.004.029z" transform="matrix(.01517 -.19526 .17623 .01113 117 337.655)"/> - <path d="M283.132 834.193c-6.042 2.742-12.815-.985-15.011-8.352-2.197-7.368.9-15.657 6.962-18.432 6.043-2.779 12.81.956 15.01 8.345 2.197 7.368-.893 15.656-6.96 18.439z" transform="matrix(.01517 -.19526 .17623 .01113 117 337.655)"/> - </g> - </g> - <path d="M232.76 219.867l-.28.346-11.244 14-.245.307.285.271c3.611 3.44 5.704 9.295 5.71 13.996.01 5.987-.965 10.107-2.177 13.897-1.675 5.236-3.84 9.848-4.507 17.516-.495 5.69 1.556 10.124 4.191 13.324 2.635 3.201 5.842 5.187 7.747 6.085 5.846 2.757 11.879 1.806 17.907 2.578 2.677.342 4.153 2.018 5.542 3.493l.311.329.311-.329c1.39-1.475 2.865-3.15 5.542-3.493 6.028-.772 12.06.179 17.907-2.578 1.905-.898 5.112-2.884 7.747-6.085 2.635-3.2 4.686-7.634 4.19-13.324-.667-7.668-2.83-12.28-4.506-17.516-1.212-3.79-2.187-7.91-2.178-13.897.007-4.7 2.1-10.556 5.711-13.996l.285-.271-.245-.307-11.244-14-.28-.346-.333.293c-3.45 3.015-7.427 4.104-11.4 3.933-3.974-.17-7.938-1.618-11.28-3.693l-.227-.138-.227.138c-3.342 2.075-7.306 3.523-11.28 3.693-3.973.17-7.95-.918-11.4-3.933l-.333-.293zm.12 1.209c3.542 2.942 7.624 4.043 11.649 3.87 3.897-.166 7.737-1.5 11.044-3.43v40.99h-29.817c1.163-3.721 2.093-7.867 2.084-13.72-.007-4.825-2.046-10.646-5.707-14.324l10.747-13.386zm46.24 0l10.747 13.386c-3.66 3.678-5.7 9.5-5.707 14.325-.009 5.852.92 9.998 2.084 13.72h-29.817v-40.991c3.307 1.93 7.147 3.264 11.044 3.43 4.025.173 8.107-.928 11.649-3.87zm-53.64 42.284h61.04c1.67 5.12 3.686 9.572 4.324 16.911.475 5.45-1.467 9.64-3.995 12.711-2.529 3.071-5.655 5.006-7.453 5.854-5.57 2.626-11.467 1.715-17.65 2.506-2.778.356-4.422 2.02-5.746 3.427-1.324-1.407-2.968-3.071-5.747-3.427-6.182-.791-12.078.12-17.649-2.506-1.798-.848-4.924-2.783-7.453-5.854-2.528-3.07-4.47-7.26-3.995-12.71.638-7.34 2.653-11.792 4.324-16.912z" fill="#e7ca00" stroke="#d4af37" stroke-width=".42666000000000004"/> - <g fill="#008f4c"> - <path d="M298.644 201.135c-.062.007-.102.03-.12.075-.081.28-.327 1.81-.489 3.376-.122 1.566-.324 2.85-.364 2.85-.041 0-.896-.36-1.912-.802-2.477-1.085-7.635-1.689-7.92-.925-.203.482.369 3.212 1.303 6.345.203.682-.04.886-1.502 1.328-.975.281-2.074.762-2.48 1.083-.69.482-.609.643 1.137 2.25l1.911 1.727-.897.724c-.853.683-.851.681 2.235 3.613 3.412 3.214 5.187 4.197 7.502 4.197.711 0 1.5.133 2.071-.031.76-.13 1.355-.387 3.223-.588 2.018.178 4.005 1.167 4.804 1.605.196.432.363.822.489 1.145-1.444-1.567-4.644-2.19-5.311-2.215-.667-.023-1.006.155-1.72.373-.715.219-.987.548-1.667 1.49-.487 1.246.48 2.541 1.658 2.702 1.462.2 2.555-.604 2.555-1.93 0-1.084-.622-1.867-.11-1.828 1.781.136 4.458 1.547 4.986 3.355.61 2.249.488 2.372-.609.846-1.015-1.326-2.601-2.736-3.089-2.776-.365 0-1.178 1.97-1.178 2.894 0 .603-.16.723-.688.522-.407-.2-1.301-.402-1.992-.482l-1.257-.202.324 2.008c.163 1.085.691 2.734 1.138 3.618l.853 1.644-1.95-.6c-4.184-1.286-3.898-1.328-3.614.881.122 1.085.367 2.291.489 2.653.243.602.04.723-1.382.723-.935 0-1.667.121-1.667.242 0 .923 3.29 5.3 4.915 6.586 1.99 1.526 5.769 3.214 7.271 3.214.447 0 1.786.36 3.045.842l2.235.802v2.412c0 2.651-.815 7.994-1.262 7.994-.122 0-.851-1.124-1.582-2.53-1.665-3.053-1.584-3.012-2.031-2.29-.325.483-.405.443-.405-.24 0-1.165-1.87-4.66-3.048-5.784l-.974-.925-.489 1.083-.484 1.043-2.196-2.407c-1.218-1.325-2.353-2.33-2.515-2.21-.203.08-.447 1.167-.609 2.372-.406 3.495-.57 3.693-1.911 2.408l-1.138-1.083-.284 1.083c-.488 1.928.125 8.715.977 11.085.447 1.245 1.014 3.537 1.298 5.104.488 3.012 2.234 6.465 4.387 8.634.772.803.892 1.123.404 1.123-.325 0-.892.321-1.257.723-1.584 1.727-.121 3.976 2.275 3.534 1.178-.2 1.42-.12 1.827.763.609 1.286.648 3.618.08 4.622-.406.763-2.803 1.765-3.21 1.364-.121-.12-.2-1.486-.16-3.013l.04-2.771-2.07 1.088c-4.996 2.65-9.197 9.48-10.267 14.742-.357 1.756-1.367 1.95-2.635 4.03-1.242.702-2.451 1.626-3.627 2.837-2.03 1.968-2.563 2.249-5.609 3.012-3.736.924-11.735 2.208-17.746 2.81-5.24.523-21.727 3.172-22.742 3.614-.447.201-1.503.643-2.315.965-.813.321-1.79 1.046-2.196 1.649-.569.883-.607 1.164-.16 2.008 1.097 2.008 3.207 1.966 7.716-.162 1.99-.964 4.426-1.767 6.213-2.048 1.584-.241 3.941-.723 5.16-1.004 1.218-.322 4.627-.926 7.51-1.408 16.409-2.61 22.419-3.897 29.12-6.227 4.468-1.566 4.431-1.563 8.533-1.162 4.63.442 10.475-1.005 12.871-3.174.528-.482 1.91-2.17 3.13-3.776 1.177-1.606 2.64-3.212 3.208-3.573 1.543-1.005.651-1.369-3.329-1.369h-3.333l1.138-2.486c1.3-2.892 2.639-6.71 2.395-6.95-.081-.08-1.256.078-2.555.399-1.34.281-2.48.483-2.52.443-.082-.08.08-.681.324-1.364.325-.884.771-1.365 1.502-1.526.61-.12 1.342-.323 1.667-.403.284-.08 1.218 0 2.071.24 1.503.403 1.545.483 1.342 1.729-.244 1.566.61 2.692 2.071 2.692 1.056 0 2.271-1.167 2.271-2.131 0-1.085-1.58-2.368-2.555-2.127-.488.08-1.87-.12-3.089-.522l-2.191-.763 2.111-.443c3.208-.682 4.264-.56 4.711.443.284.643.813.964 1.707 1.044 2.558.241 3.37-3.376.933-4.14-.894-.28-2.844.685-2.844 1.408 0 .241-.69.4-1.503.4-1.687.017-3.328.34-4.773.894l3.107-1.535c1.868-.562 4.308-1.447 5.404-1.969 3.615-1.687 7.189-5.863 8.529-9.84.853-2.53 2.153-10.445 1.746-10.445-.203 0-1.542.524-2.964 1.167-2.6 1.205-2.64 1.203-2.64.32.04-1.647.73-6.508 1.013-7.231.204-.442.122-.68-.244-.68-1.218 0-5.156 2.17-7.755 4.258-2.519 2.008-2.765 2.128-2.765 1.285 0-.522.367-1.527.813-2.25.732-1.205.934-1.284 2.396-1.043 1.422.24 1.666.117 2.276-.807.852-1.285.367-2.812-1.014-3.254-.771-.24-.693-.36.77-1.083 1.827-.883 3.777-2.93 5.239-5.582l.973-1.649-1.462.163c-.812.08-1.458.119-1.458.079 0-.04.284-.844.61-1.768.324-.923.608-2.449.608-3.332 0-1.687-1.502-7.834-2.071-8.476-.203-.241-1.017.122-1.951.885l-1.582 1.246-1.507-3.293c-.812-1.808-1.58-3.375-1.662-3.456-.081-.12-.61.241-1.178.763-1.259 1.165-1.34.524-.244-1.846.974-2.088 1.423-2.372 2.56-1.61 1.38.885 2.922.044 3.084-1.643.081-1.005-.082-1.408-.853-1.93-.528-.321-1.258-.524-1.542-.403-.366.12-.733-.202-1.058-.965-.284-.763-.812-1.281-1.502-1.482-2.112-.522-3.575 2.126-2.031 3.653.609.562.61 1.005.164 3.937-.731 4.74-.974 5.181-1.542 3.052-.65-2.37-.369-8.955.484-10.883 1.462-3.334.61-8.6-1.826-11.331-2.018-2.26-7.604-6.245-8.53-6.139zm-2.822 10.993c.352.012 1.87 1.295 4.337 4.21 2.06 2.445 4.514 6.662 6.102 9.805-.558-.65-.932-.686-2.55-2.912-1.34-1.848-3.516-5.918-5.587-8.047-1.866-1.882-2.586-2.988-2.333-3.051a.112.112 0 0 1 .03-.005z" fill="#00a854"/> - <path d="M305.982 255.267c-.387 1.518-.7 1.792.111 2.956.366.563 1.056.884 1.747.884 1.096 0 1.706.803 2.64 3.615.122.442.203.442.203-.12.04-.402-.325-1.406-.772-2.29-.487-.964-.65-1.647-.406-1.807.772-.482.447-2.53-.487-3.174-1.26-.883-1.668-.647-3.036-.064z"/> - </g> - <path d="M230.916 321.135c-.853.687-1.074 1.781-.443 2.406.916.906 4.107.094 4.455-1.156.442-1.75-2.275-2.593-4.012-1.25z" fill="#9eab05"/> - <g fill="#75b52b"> - <path d="M299.595 204.47c.325 2.007 2.275 6.104 3.737 7.791.609.723 1.177 1.246 1.3 1.165.08-.12-1.057-2.53-2.56-5.342-2.111-4.017-2.68-4.82-2.477-3.615zM286.07 215.274c.447.482 6.499 2.209 6.499 1.848 0-.723-1.95-1.567-4.265-1.808-1.34-.16-2.355-.16-2.233-.04zM288.589 220.174c.487.482 7.595 3.736 9.544 4.378 1.178.402 2.721.643 3.452.563 1.219-.12 1.097-.201-1.462-1.045-1.543-.522-3.655-1.365-4.67-1.888-2.478-1.245-7.595-2.73-6.864-2.008zM311.698 230.497c-.609 1.848-1.584 8.033-1.868 12.05-.203 2.61-.163 3.494.325 4.097.528.723.609.401 1.056-3.214.609-5.1 1.259-13.937 1.096-14.138-.08-.08-.365.482-.609 1.205zM304.875 233.83c.203 3.214 1.584 6.668 2.071 5.142.163-.482-.243-2.25-.974-4.378l-1.26-3.575.163 2.812zM300.326 233.911c.285.402.975 1.245 1.462 1.848l.934 1.165v-1.045c0-.602-.406-1.325-1.056-1.807-1.3-1.045-2.07-1.085-1.34-.16zM294.6 243.832c0 .201 4.427 3.575 5.889 4.499 1.177.723 1.177.723-.325-1.045-1.544-1.807-4.062-3.615-5.036-3.615-.285 0-.528.08-.528.161zM296.833 252.508c1.056 4.459 1.869 6.989 2.315 7.27.285.16.569.281.61.201.203-.2-1.91-6.306-2.56-7.43l-.608-1.045.243 1.004zM301.504 256.003c0 .602.366 1.847.812 2.73.447.885.731 1.326.65.965a26.875 26.875 0 0 1-.447-2.53c-.325-2.09-1.015-2.893-1.015-1.165zM293.26 259.015c.771 2.57 2.761 6.627 5.563 11.166 2.072 3.414 2.072 3.414 2.194 2.009.08-1.125-.325-2.13-1.828-4.66-1.056-1.767-2.843-4.9-3.98-6.908-1.097-2.049-2.153-3.696-2.315-3.696-.163 0 0 .964.365 2.089zM318.48 259.618c-1.786 1.928-5.36 6.908-6.538 9.198-.406.803-.528 1.606-.366 2.249.244.924.813.2 4.833-6.146 2.478-3.976 4.387-7.19 4.224-7.19-.203 0-1.137.844-2.152 1.889zM312.064 289.461c-.61 1.125.162 2.41 1.462 2.41 1.178 0 1.909-1.406 1.3-2.53-.488-.924-2.234-.884-2.762.12z"/> - </g> - <g fill="#d91023"> - <path d="M300.123 228.127c-1.543 1.085.081 3.816 1.706 2.852.975-.643 1.137-2.21.244-2.852-.407-.281-.853-.522-.975-.522s-.569.241-.975.522zM310.764 219.451c-.934.241-1.3 1.486-.731 2.53.812 1.487 2.843.884 2.843-.843 0-1.205-.934-1.928-2.112-1.687zM313.445 222.544c-.122.321-.163 1.004-.082 1.526.082.723.366.924 1.3.924 1.462 0 2.274-1.084 1.625-2.129-.569-.883-2.519-1.124-2.843-.321zM298.214 282.593c-1.502 1.205-.08 3.333 1.787 2.61.853-.32 1.178-1.285.69-2.168-.568-1.085-1.461-1.246-2.477-.442zM306.478 255.665c-.446.442-.325 1.928.203 2.45 1.219 1.206 3.046 0 2.6-1.727-.203-.763-.528-1.004-1.422-1.004-.609 0-1.259.12-1.38.281zM314.008 255.611c-.284 1.165.406 2.21 1.462 2.21.975 0 1.706-.964 1.543-2.09-.08-.722-.406-.963-1.421-1.043-1.137-.12-1.34.04-1.584.923zM315.07 285.244c-.285 1.164.405 2.209 1.461 2.209.975 0 1.706-.964 1.544-2.089-.082-.723-.407-.964-1.422-1.044-1.137-.12-1.34.04-1.584.924zM312.598 288.961c-1.503 1.205-.081 3.334 1.787 2.611.853-.321 1.178-1.285.69-2.169-.568-1.084-1.462-1.245-2.477-.442z"/> - </g> - <path d="M295.757 212.463c.164.26.949 1.18 1.734 2.054 1.504 1.633 2.73 3.331 5.003 6.873 1.603 2.506 3.63 5.061 3.63 4.592 0-.485-3.597-6.517-5.02-8.425-1.88-2.49-4.872-5.579-5.445-5.579-.114 0-.081.178.098.485z" fill="#75b52b"/> - <path d="M306.142 263.236c-.049.275-.467 2.979-.647 6.149-.425 7.341-.801 11.29-1.635 16.028-.36 2.086-.703 4.124-.752 4.528l.108.673.67-.938c.72-.986 1.472-1.698 2.55-2.426.36-.258 1.521-1.342 2.552-2.442 5.167-5.45 6.606-7.147 11.053-13.033 4.12-5.482 5.118-6.857 5.036-6.954-.163-.146-1.445 1.074-6.58 7.43-1.422 1.762-3.832 4.527-5.287 6.144-3.581 3.946-7.582 7.614-8.637 9.033-.097.13.147-.922.343-1.698.916-3.865 1.292-8.118 1.406-16.43.05-3.622.066-6.581.017-6.581-.05 0-.131.226-.197.517zM296.111 289.779c-.31.517-1.275 2.215-2.158 3.768-2.747 4.916-5.92 9.363-8.323 11.675-.867.841-.62.913-.801 1.1-.95.977 2.877 1.666 5.788 1.957 3.924.388 6.099-.388 16.58-5.919 2.453-1.294 3.107-1.698 2.616-1.617-.964.162-2.485.518-7.03 2.685-4.448 2.102-6.437 3.02-8.448 3.473-1.57.356-3.872.388-5.229.065l-.926-.062.491-.161c.409-.098 1.043-.12 1.256-.298.212-.194 1.046-.79 1.848-1.194 1.815-.921 3.813-2.584 6.56-5.042 2.11-1.875 6.164-5.967 6.164-6.226 0-.177-1.896 1.375-4.333 3.526-5.036 4.463-9.974 7.778-12.083 8.118l-.622.097.654-.582c.213-.308 1.007-1.482 1.825-2.678 1.962-2.863 2.714-4.228 4.546-7.963 1.684-3.444 2.377-5.498 2.263-5.595-.033-.033-.327.356-.638.873zM296.233 237.948c-.05.275 2.1 2.871 4.575 5.709 2.531 2.901 4.018 4.045 6.032 6.578 2.015 2.533 2.223 2.72 4.47 4.747 2.805-3.686 4.524-8.709 5.71-11.902 1.174-3.157 2.119-5.868 2.148-10.03-1.608 3.48-1.656 4.731-2.913 8.527-1.267 3.83-4.09 10.463-5.146 11.882-.097.13-5.93-7.029-8.474-9.996-2.701-3.151-6.413-5.843-6.402-5.515z" fill="#eac102" fill-opacity=".502"/> - <path d="M298.144 203.846l-.49 3.628-1.467-.726c-1.548-.726-5.542-1.572-7.458-1.572-1.06 0-1.1.08-.897 1.29.245 1.29 1.264 4.958 1.63 5.764.082.242-.61.645-1.548.927-.978.282-2.079.766-2.486 1.088-.734.524-.652.645.896 2.016 1.834 1.652 1.997 2.096.978 2.821-.61.444-.366.806 2.324 3.386 1.67 1.612 3.75 3.265 4.564 3.668 2.079 1.088 6.114 1.088 8.274 0 1.508-.766 1.63-.766 2.608-.12.979.604 1.02.604.49-.041-.326-.363-2.242-1.532-4.24-2.54-5.624-2.902-10.23-7.98-12.185-13.583-.979-2.782-.979-4.273.04-4.273 1.671 0 5.217.887 7.214 1.774 2.976 1.37 8.274 6.449 9.741 9.391 1.06 2.056 1.182 2.782 1.223 5.845 0 3.547.57 5.038.652 1.814.163-4.071.285-4.998.897-6.53 1.222-2.983.611-7.538-1.345-10.238-.652-.847-2.772-2.7-4.769-4.112-1.956-1.37-3.709-2.66-3.831-2.902-.163-.201-.53 1.25-.815 3.225zm5.217.604c2.73 1.895 3.505 2.701 4.36 4.434 1.305 2.7 1.712 5.966.979 8.384l-.57 1.814-1.06-2.257c-.693-1.532-2.16-3.346-4.565-5.724-1.916-1.935-3.71-3.507-3.954-3.507-.448 0-.285-2.74.326-5.119.245-1.048 0-1.169 4.484 1.975zm-13.083 9.876c.367.645 1.019 1.33 1.385 1.612.408.282.816.887.938 1.33.204.726 0 .806-1.916.806-1.915 0-2.241-.12-3.709-1.612-.856-.887-1.508-1.693-1.385-1.773.326-.323 2.975-1.411 3.464-1.451.285 0 .815.483 1.223 1.088zm5.42 6.248c2.364 2.176 3.057 2.62 5.91 3.748 1.508.605 1.59.685.938 1.29-.897.887-5.38 1.21-7.418.524-1.753-.564-8.11-6.288-7.459-6.691.693-.443 2.812-.887 4.361-.927 1.1-.04 1.794.363 3.668 2.056zM307.477 227.99c-.163.202 0 1.088.326 1.975.734 2.056.693 2.66-.04 4.071-.327.645-.612 1.895-.612 2.741 0 .887-.204 2.177-.489 2.902l-.448 1.29-1.345-.846c-.734-.484-1.427-1.25-1.55-1.693-.366-1.21-.203-3.79.286-6.248.367-1.733.652-2.217 1.223-2.176.611.08.652-.04.204-.524-.408-.524-.57-.524-1.02.12-.284.404-.651 1.29-.774 2.016-.244 1.33-.244 1.33-1.426.766-1.753-.927-2.405-.766-2.405.564s.693 3.466 1.549 4.797c.937 1.41.978.806.04-1.008-1.1-2.217-1.466-4.555-.733-4.555.326 0 .978.282 1.467.605.734.524.856.967.775 3.345-.04 3.225-.326 3.386-4.157 2.096-1.264-.443-2.405-.725-2.527-.645-.163.202.489 3.588.937 4.676.163.484-.122.605-1.671.443l-1.916-.12 1.142 1.934c2.527 4.394 6.195 7.014 11.249 8.062 1.59.322 3.505.887 4.198 1.25.978.523 1.14.523.774.08-.245-.322-1.182-.846-2.038-1.129-2.323-.846-4.565-2.458-7.5-5.562-2.934-3.104-4.442-5.724-4.442-7.74 0-1.047.123-1.289.612-1.087.366.12 1.752.524 3.138.886 3.424.847 4.32 1.37 6.521 3.709 2.323 2.458 3.098 3.91 3.79 7.215.327 1.45.653 2.7.775 2.821.53.565.693-1.29.244-2.862-.733-2.66.367-7.82 2.69-12.374 1.02-2.015 4.158-5.079 4.647-4.515.163.162.692 1.895 1.222 3.83 1.1 4.111.938 5.32-1.019 9.391-1.426 2.903-2.771 4.595-4.89 6.127-1.59 1.129-1.142 1.492 1.06.927 1.956-.524 5.094-3.386 6.806-6.207l.896-1.532-1.59.282-1.548.242.734-2.136c.937-2.741.937-3.83 0-7.094-.449-1.492-.897-3.225-1.06-3.83l-.245-1.128-1.304.927c-.733.484-1.426 1.048-1.549 1.25-.489.685-1.06-.081-2.445-3.145-.734-1.652-1.467-3.023-1.63-3.023-.204 0-.815.484-1.427 1.089l-1.06 1.128.245-1.128c.204-.766.122-1.048-.163-.887-.204.12-.407.645-.407 1.129 0 1.934-.693 1.934-1.305.04-.326-1.048-.693-1.733-.815-1.532zm5.91 10.158c-1.182 2.338-1.997 4.756-2.323 6.61l-.49 2.902-.651-1.612c-.367-.927-1.182-2.217-1.753-2.942-1.1-1.25-1.1-1.33-.652-4.192.693-4.555 1.59-7.014 3.22-8.788l1.467-1.652 1.508 2.983 1.508 2.942-1.834 3.749zm-15.447 6.65c4.972 5.16 6.684 7.175 5.828 6.893-3.709-1.088-6.317-3.023-8.273-6.046-.775-1.169-1.386-2.257-1.386-2.378s.489-.202 1.06-.202c.733 0 1.63.565 2.771 1.733zm23.19 3.185c-1.63 2.58-2.608 3.547-4.401 4.434l-1.63.846 1.63-1.773c.897-.968 2.079-2.46 2.568-3.265.815-1.29 1.385-1.693 2.649-1.895.163 0-.204.726-.815 1.653z" fill="#cab313" fill-opacity=".502"/> - <path d="M306.295 231.174c.57 1.21 1.63 2.46 1.671 2.016 0-.242-.489-.968-1.06-1.612-.57-.686-.855-.847-.61-.404z" fill="#005000"/> - <path d="M295.535 252.215c-.163.847-.448 2.217-.693 3.104l-.366 1.531-1.182-1.088-1.141-1.088-.327 1.894c-.366 2.62.082 6.53 1.223 10.198.53 1.693 1.1 3.99 1.264 5.12.489 3.707 3.546 8.06 7.499 10.761.734.524 1.019 1.21 1.263 3.023l.326 2.338-.081-2.217c-.04-1.209-.53-4.192-1.06-6.65-1.263-5.845-.896-8.304 2.038-14.27l2.12-4.272 2.16 4.313c2.893 5.764 3.179 7.699 1.63 12.415-.611 1.894-1.304 3.627-1.508 3.91-.204.282-.285.644-.204.846.122.161.04.564-.204.887-.326.483-.367.443-.163-.202.163-.443-.407-.04-1.345 1.008-.896 1.008-1.712 2.177-1.834 2.62-.204.725-.163.725.49-.08.366-.484 1.018-1.371 1.426-1.935.407-.565.896-.928 1.06-.807.61.323 1.181-.725 2.526-4.474 1.875-5.24 3.057-7.295 5.625-9.875 1.712-1.693 3.383-2.781 6.236-4.152 2.16-1.007 3.994-1.854 4.075-1.854.326 0-.896 7.014-1.59 9.07-.774 2.458-2.974 5.924-4.727 7.537-1.712 1.572-5.135 3.265-8.355 4.151-1.386.404-2.65.847-2.772 1.048-.203.363 3.016-.524 5.992-1.652 4.32-1.572 8.396-5.764 10.067-10.198.733-1.935 2.323-10.319 1.997-10.6-.082-.081-1.427.483-3.057 1.249l-2.894 1.37.245-2.7c.122-1.492.448-3.548.733-4.636.49-1.854.49-1.894-.366-1.652-2.038.604-5.706 2.821-7.907 4.836l-2.405 2.137.122-3.709c.123-2.499.041-3.466-.203-2.902-.204.444-.408 1.613-.408 2.62-.04 2.056-.897 6.046-1.304 6.046-.163 0-.897-1.168-1.63-2.62-1.345-2.499-1.957-3.184-2.038-2.136 0 .282-.408-.564-.938-1.935-.489-1.33-1.426-3.103-2.078-3.95l-1.182-1.531-.652 1.25-.653 1.249-1.548-2.016c-.856-1.128-1.916-2.217-2.323-2.418-.653-.363-.775-.202-.979 1.088zm2.772 1.25c1.549 1.894 4.931 8.263 5.38 10.157l.244 1.008-.733-1.008c-1.305-1.854-4.85-5.038-7.01-6.288-1.06-.604-1.101-.806-.816-2.136.163-.806.408-1.935.57-2.58.123-.604.368-1.088.53-1.088.164.04.979.887 1.835 1.935zm5.665 3.91c1.182 2.458 1.427 3.99.774 4.998-.53.846-3.871-6.167-3.545-7.457.244-.887.366-.968.937-.484.367.282 1.182 1.612 1.834 2.942zm-7.214 1.29c2.609 1.733 5.258 4.353 5.95 5.925.367.725.245 1.29-.407 2.58-1.1 2.136-1.712 6.529-1.304 9.431.163 1.29.163 2.338 0 2.338-.53 0-3.465-3.749-4.81-6.086-2.69-4.716-4.605-12.415-3.953-15.841l.285-1.532.897.766c.49.443 1.997 1.532 3.342 2.418zm24.617 0c-.203 1.088-.448 2.942-.57 4.151-.245 2.177-.286 2.257-2.65 3.708-1.344.847-3.179 2.459-4.157 3.709-.937 1.209-1.834 2.136-1.997 2.015-.204-.08-.448-1.048-.611-2.096-.122-1.048-.53-2.5-.815-3.265-.53-1.21-.49-1.451.285-2.54 1.712-2.377 8.967-7.577 10.597-7.577.122 0 .081.846-.082 1.894zm-21.886 19.71c1.508 1.531 2.404 2.74 2.282 3.184-.081.564-.53.322-2.2-1.25-2.242-2.096-4.036-4.836-4.443-6.811-.245-1.048-.122-.968.815.604.57 1.008 2.16 2.943 3.546 4.273z" fill="#cab313" fill-opacity=".502"/> - <path d="M295.495 288.371c-4.402 2.942-8.115 9.073-9.249 13.987-.081 1.25-1.413 2.297-1.21 2.176.164.604 1.417-.027 1.983-2.015 1.07-3.764 4.033-10.52 7.905-13.22 1.182-.807 2.364-1.492 2.568-1.492.203 0 .285 1.531.203 3.506-.081 2.701-.366 3.99-1.1 5.482-1.223 2.46-4.524 6.087-6.847 7.417-1.956 1.129-2.12 1.612-.326.927 1.997-.766 6.725-5.643 7.988-8.263.652-1.33 1.182-2.66 1.182-2.943 0-.282.49-.725 1.141-.967 1.468-.564 8.763-2.378 8.926-2.177.326.323-2.786 6.85-3.805 8.18-1.549 1.975-5.258 4.796-7.092 5.36-.856.242-2.699 1.235-4.06 1.488-1.483.275-1.928.297-3.658.484l-1.437.853 1.426-.241c.775-.121 2.73-.363 4.28-.524 4.486-1.557 6.21-2.529 9.148-4.779l1.908-1.616 3.657.187 2.975.242-1.386 1.653c-.774.927-2.2 2.66-3.179 3.87-.937 1.208-2.282 2.498-2.975 2.901-1.956 1.129-6.236 2.056-9.822 2.056-3.26.04-3.342 0-4.973-1.451-1.67-1.491-2.323-1.774-2.567-1.129-.041.202-1.468.806-3.057 1.411-3.18 1.088-3.872.806-2.038-.887.693-.645 1.42-.642 2.887-.723 0 0 3.083.687 3.113.055.031-.63-3.071-.58-3.071-.58-1.449.084-1.785.036-.646-1.444 1.337-.84 1.865-2.48 1.137-2.122-1.781 2.153-2.935 3.005-5.62 5.62-2.565 1.777-2.89 1.898-6.4 2.864-2.241.524-5.95 1.129-8.15 1.41-4.272.484-6.086 1.557-1.957.805 2.089-.38 4.767-.682 8.191-1.288 4.94-1.21 5.267-1.29 7.704-2.581 1.99-2.049 2.316-2.29 1.263-.605-.367 1.25.245 1.21 4.157-.282 3.098-1.21 3.18-1.21 3.954-.443.774.765.734.806-.815 1.45-3.302 1.371-9.741 3.145-16.303 4.434-3.75.766-6.929 1.492-7.051 1.653-.326.323 4.443-.201 5.461-.645.449-.161 3.832-1.048 7.54-1.894 3.71-.887 7.948-2.096 9.456-2.7 2.527-1.009 2.935-1.049 5.095-.646 2.73.484 7.254.04 10.556-1.048 2.527-.806 4.28-2.297 6.847-5.885 1.06-1.491 2.405-3.063 2.975-3.466l1.06-.766-3.587-.242c-1.956-.12-3.668-.322-3.75-.443-.08-.08.123-.726.49-1.411.326-.685 1.182-2.741 1.834-4.515l1.223-3.305-1.427.282c-.774.121-2.079.363-2.853.484l-1.426.282.61-1.491c.327-.806.53-1.451.408-1.451-.081 0-.448.645-.774 1.41-.693 1.573-1.508 1.895-1.223.484.123-.645 0-.524-.489.403-.407.726-1.182 1.451-1.752 1.693-.57.202-1.386.484-1.834.645-.693.323-.734.121-.57-2.74.08-1.976 0-3.104-.286-3.104-.245 0-1.345.604-2.486 1.37z" fill="#cab313" fill-opacity=".502"/> - <path d="M257.428 315.095c-2.364.202-7.133.927-15.08 2.217-4.158.645-7.744 1.21-8.03 1.25-.285 0-.407.16-.326.322.123.161-.448.403-1.222.524-1.794.363-3.872 2.056-3.872 3.225 0 1.168 1.345 2.378 2.323 2.136.652-.161.611-.202-.082-.242-1.793-.08-2.486-2.177-1.1-3.386 1.141-1.048 6.521-2.62 9.578-2.862 3.872-.322 15.04-1.854 15.528-2.176.245-.121 1.712-.444 3.302-.726 2.69-.443 2.16-.604-1.02-.282z" fill="#cab313" fill-opacity=".502"/> - <path d="M250.703 319.005c-7.337 1.41-11.901 2.58-14.102 3.708-2.853 1.41-2.446 1.532.611.161 1.427-.645 3.872-1.37 5.42-1.612 1.509-.242 4.892-.887 7.46-1.41 2.567-.525 5.705-1.13 6.928-1.33l2.242-.364-1.834-.04c-1.02 0-4.035.403-6.725.887z" fill="#cab313" fill-opacity=".502"/> - <path d="M282.841 308.307c-1.274.767-2.59 2.282-1.163 2.053 1.08-.095 5.13-1.326 5.446-2.125-1.55.137-2.823-.237-4.283.072z" fill="#fff"/> - <g stroke="#d4af37" stroke-width=".904"> - <path d="M367.709 432.44c-1.503.459-2.482.902-9.093.441-4.507-.307-10.173-1.117-13.102-1.194-5.56-.077-5.603.349-15.52 7.111-6.986 4.764-16 4.41-22.667 2.93-4.057-1.844-5.8-2.26-5.199-1.261 1.127 1.844 9.01 4.402 13.368 4.402 7.061 0 12.245-1.768 20.734-7.07 6.535-4.15 9.465-4.534 18.48-2.459 10.621 2.102 12.195 1.195 20.868-2.706-2.588-.073-3.194-.001-4.064.351 1.494-1.625 1.555-3.144 1.85-4.183.43-.566-.721.19-2.11 1.164-1.39.974-3.02 2.166-3.545 2.474z" fill="#fff" transform="matrix(.47638 0 0 .46773 113.086 114.322)"/> - <path d="M354.025 429.835c-4.883-.768-8.23-1.435-11.29-1.092-3.41.38-5.839 2.075-9.895 4.61-4.057 2.613-7.708 4.495-8.159 4.495-.526 0-5.764 1.22-9.746 1.22-1.878 0-5.913-1.245-8.617-2.244-5.71-2.151-7.794 1.329-1.86 3.865 5.276 1.8 10.625 2.506 15.617 1.763 4.991-.743 9.625-2.935 13.47-5.77 7.627-5.624 3.166-2.918 6.206-4.207 3.04-1.288 5.848-.851 5.848-.851 3.982.153 11.88 1.466 15.862 1.543 7.287-.658 6.037-.672 8.441-2.05.838-.48 3.488-2.234 3.65-2.63.16-.398 1.39-2.702 1.154-2.793-7.452 5.131-11.202 5.12-20.681 4.141z" fill="#d91023" transform="matrix(.47638 0 0 .46773 113.086 114.322)"/> - <path d="M341.028 435.395c-1.052.461-4.207 2.306-7.137 3.996-6.16 3.765-11.96 5.57-18.748 5.647-3.08.463-13.072-3.606-11.57-3.145 1.608 3.033 3.952 3.425 9.676 4.508 3.993.756 6.582.13 11.062-.826 5.02-.615 7.078-2.888 8.956-4.271 4.357-3.228 11.893-5.37 13.996-5.37.977 0 4.757 2.065 8.902 2.962 4.145.896 6.145 1.127 10.443.444s8.724-4.2 12.84-6.924c-.669.21-2.132.214-4.14.276-5.895 3.474-15.88 4.783-21.134 2.425-5.333-1.306-10.517-.951-13.146.278z" fill="#d91023" transform="matrix(.47638 0 0 .46773 113.086 114.322)"/> - </g> - <g> - <path d="M221.132 205.076c-5.17 1.705-10.625 5.802-14.03 10.509-.739 1.014-1.395 1.785-1.477 1.704-.041-.082.328-2.15.902-4.585.575-2.434 1.026-4.869.985-5.437 0-.933-.082-.892-1.641.812-1.97 2.19-4.554 7.019-5.538 10.346-.534 1.785-.739 3.773-.739 7.465l.041 5.071-.984-3.57c-1.026-3.814-2.093-6.41-3.16-7.75-.532-.689-.697-.73-1.066-.202-.78 1.176-.246 6.207 1.067 9.94.123.446-.37-.203-1.108-1.42-.78-1.217-1.6-2.15-1.805-2.029-.492.244-.533 4.22-.04 5.883.368 1.177.368 1.177-1.026-.405-2.298-2.638-2.831-2.84-2.831-1.015 0 .69.287 1.907.615 2.719.328.77.616 1.5.616 1.541 0 .04-.575.203-1.313.365-1.805.366-2.38.934-2.38 2.435 0 1.623 1.108 5.396 1.682 5.761.616.365.82 0 1.354-2.353l.492-2.11 1.518 1.948c2.175 2.84 5.416 9.331 7.057 14.16 1.723 5.152 1.805 6.166.205 3.001-.657-1.257-1.805-3.164-2.503-4.219-1.559-2.19-10.133-11.076-10.707-11.076-.615 0 0 2.759 1.108 5.071.533 1.136 2.133 3.368 3.487 4.99 1.394 1.583 2.42 2.922 2.297 2.922-.123 0-1.108-.65-2.133-1.42-2.093-1.582-4.226-2.8-4.513-2.556-.082.122.738 1.826 1.846 3.854l1.97 3.692-1.313-.203c-.739-.121-1.724 0-2.216.244-.738.405-.861.852-.861 2.8 0 2.596.656 5.355 1.271 5.355.575 0 1.6-2.556 1.6-3.936 0-1.095.041-1.055 2.093.893 2.912 2.84 6.81 7.668 10.666 13.267l3.24 4.747-3.814-2.84c-3.652-2.678-11.159-6.857-12.39-6.857-.328 0-.615.162-.615.365 0 .203 2.42 2.637 5.374 5.437l5.333 5.071-2.79-.933c-1.517-.487-3.445-1.014-4.225-1.176-1.395-.285-1.395-.203 1.723 2.677 1.723 1.623 4.84 4.017 6.974 5.356 2.092 1.298 3.446 2.231 2.995 2.11-3.733-1.055-9.23-1.948-9.23-1.461 0 .568 2.83 2.8 4.84 3.814 1.108.527 3.898 1.663 6.236 2.434 4.759 1.663 7.63 3.165 10.05 5.274l1.642 1.46-2.872-1.257c-3.282-1.46-12.184-4.422-13.21-4.422-1.025 0 3.077 4.016 7.057 6.978 3.65 2.718 10.584 6.167 15.589 7.79 4.184 1.339 7.712 2.029 14.358 2.88 2.954.366 5.744.812 6.277 1.015.492.243 4.102.77 8 1.217 11.404 1.339 19.732 3.286 24.614 5.761 1.313.65 2.749.893 5.743 1.055 4.431.203 4.636.081 3.364-2.353-1.066-2.029-2.953-3.084-6.974-3.814-2.01-.406-5.333-1.055-7.384-1.46-4.308-.893-12.594-2.354-23.097-4.017-11.281-1.826-16.163-3.773-21.455-8.52-7.836-6.978-11.938-18.298-10.666-29.496.287-2.394.45-4.382.369-4.463-.37-.324-2.995 5.072-3.692 7.506l-.739 2.678.164-4.3c.287-6.695 2.79-12.943 6.564-16.554.82-.771 1.477-1.542 1.477-1.704 0-.162-.78-.081-1.723.162-1.23.284-2.42 1.055-3.897 2.556l-2.134 2.11.985-1.907c1.518-3.002 4.143-6.005 6.646-7.668l2.338-1.501-1.354-.122c-2.707-.284-7.589 3.246-10.297 7.465-1.559 2.475-1.559 1.704.041-2.069 1.518-3.692 3.857-7.303 6.4-9.98 1.436-1.502 1.682-1.989 1.149-1.989-2.133 0-5.744 2.76-8.738 6.695-.862 1.176-.862 1.095.123-1.217 1.23-2.76 3.118-5.843 4.882-7.79 1.271-1.46.902-1.664-1.231-.69-1.928.933-5.046 4.382-6.851 7.709-.862 1.541-1.477 2.434-1.354 1.988.123-.447.41-1.623.615-2.637 1.518-6.735 5.21-13.308 10.215-18.136 1.929-1.826 2.42-2.556 1.888-2.556-1.56 0-5.21 2.07-7.63 4.341-2.503 2.353-2.544 2.353-1.56.73 3.446-5.801 8.615-11.076 14.564-14.849 1.887-1.217 3.446-2.312 3.487-2.434 0-.609-6.236 1.258-9.067 2.678-.656.365-2.215 1.46-3.528 2.515-1.969 1.582-2.174 1.704-1.435.65 1.394-1.948 6.112-6.127 8-7.1 1.394-.731 1.558-.934.86-1.056-1.886-.284-7.137 2.475-11.24 5.883l-1.805 1.542.985-1.623c3.2-5.234 7.138-9.413 11.774-12.415 1.64-1.055 3.24-1.988 3.528-2.11.246-.08.41-.284.287-.405-.123-.122-1.6.202-3.241.77zm61.66 116.036c.574.608 1.066 1.258 1.066 1.42 0 .203-.903.365-2.051.365-1.97 0-2.052-.04-2.052-1.136 0-2.07 1.313-2.313 3.036-.65z" fill="#00a854"/> - <path d="M280.202 320.387c-.984.933-.82 2.474.287 2.758 1.723.447 3.98.284 3.98-.324 0-.609-2.626-3.084-3.282-3.084-.205 0-.657.284-.985.65z" fill="#9eab05"/> - <path d="M223.268 204.373c-4.34.757-8.123 3.338-11.445 6.099-.463.427-.716.67-.733.732-.245.277-2.446 2.237-3.8 4.125-.658.759-1.571 2.055-2.044 2.839.101-.77.678-3.078 1.266-5.678.659-3.094.95-5.6.867-5.722-.412-.366-3.385 3.526-4.867 6.498-2.182 4.275-2.822 7.222-2.822 13.33l-.044 5.078-1-3.859c-1.07-4.03-2.914-8.228-3.778-8.472-.288-.081-.613.498-.778 1.353-.247 1.344-.018 2.637 1.711 9.559.124.57-.322.046-1.022-1.176-1.564-2.728-2.103-3.345-2.556-3.06l1.112 1.596c.617.896 1.725 3.014 2.466 4.724 2.017 4.764 5.027 14.86 4.533 15.348-.123.081-.371-.247-.577-.777-.206-.529-.773-2.071-1.267-3.415-.494-1.344-1.602-3.757-2.467-5.345-1.935-3.542-3.334-7.448-3.622-10.135l-.222-1.974c-.57.443-.34 2.8.467 5.39.411 1.383.73 2.483.689 2.483-.083 0-.975-1.14-2.045-2.484-1.482-1.873-2.067-2.359-2.355-1.952-.371.611-.154 1.823.71 4.103l.556 1.553h-1.355c-.741 0-1.678.247-2.09.532-.7.489-.744.814-.333 2.972.474 2.667 1.137 4.625 1.645 4.657.814.052.79-.803 1.2-3.127.165-.666.448-1.077.511-1.463.174.244.425.542.778.909 3.463 4.713 6.581 11.168 8.022 15.525 1.153 3.46 3.291 12.574 3.044 12.818-.082.123-.591-1.42-1.044-3.415-1.647-6.921-3.973-11.013-11.178-18.097 0 0-2.472-2.958-4.466-4.103.033 1.668.377 1.951.377 1.951.494 2.525 1.768 4.722 5.556 9.16 1.688 1.995 3.044 3.763 3.044 3.926 0 .122-.94-.627-2.133-1.686-2.182-1.914-5.56-4.096-5.889-3.77-.123.081.689 1.871 1.8 3.947 1.4 2.606 1.83 3.667 1.378 3.505-1.606-.652-2.193-.652-3.222 0-1.07.692-1.07.757-.823 3.526.124 1.547.465 3.215.712 3.704.494.814.483.822.977-.156.289-.529.613-1.673.778-2.528.165-.814.41-1.508.533-1.508.14 0 2.228 2.174 3.245 3.171.406.53.88 1.106 1.378 1.708 2.429 2.972 9.137 11.533 10.866 14.26l.867 1.42-1.4-1.087c-4.652-3.983-12.274-8.437-15.156-9.292-.806-.24-1.023-.01-.644.421-.014.002-.036-.008-.044 0 1.977 2.67 7.787 7.544 9.31 8.827 1.524 1.282 1.508 1.76 1.467 1.84-.082.042-1.144-.453-2.955-1.064-4.652-1.628-5.862-1.664-5.245-.931.289.325.986.558 1.645.599 2.388.04 8.445 2.69 12.644 5.5 2.717 1.832 9.224 8.019 10.089 9.647.453.896.291.812-1.356-.532-2.223-1.792-8.394-5.297-8.888-5.012-.165.122-1.614-.148-3.178-.555-1.606-.407-3.997-.857-5.356-1.02l-2.422-.288 1.445 1.308c1.893 1.71 5.063 3.247 10.333 5.079 2.346.814 5.027 1.91 5.933 2.44 1.976 1.14 6.05 4.32 5.844 4.524-.082.081-1.582-.49-3.31-1.264-2.924-1.344-10.16-3.866-12.712-4.436-.947-.203-.625.196 1.845 2.64 1.647 1.547 4.455 3.835 6.266 5.056 8.728 5.74 16.64 8.27 31.378 9.98 2.346.285 4.101.64 3.978.843-.124.203 3.584.75 7.577 1.198 10.704 1.262 17.377 2.724 23.511 5.167 2.676 1.1 4.248 1.456 7.09 1.619 2.716.163 3.643.122 3.643-.244 0-.936-1.178-2.77-2.577-3.992-1.235-1.059-2.053-1.692-6.911-2.506-3.047-.489-5.785-1.15-6.156-1.353-.37-.204-6.487-1.056-13.444-2.196-15.274-2.443-19.969-3.546-24.044-5.5-10.087-4.886-16.957-15.519-17.534-27.856-.123-2.483-.047-5.73.2-7.318.247-1.547.416-2.89.334-2.972-.37-.367-3.484 5.826-3.978 8.228l-.2 1.552-.156-2.794c-.04-6.352 2.006-11.881 5.423-16.523 0 0 2.28-2.243 2.6-2.839.022-.017.02-.045.022-.066.01-.032.011-.054 0-.067-.012-.013-.016-.03-.045-.022-.009-.008-.01-.013-.022-.022-1.629-.51-3.386.83-5.755 2.95-1.472 1.484-1.674 1.852-1.756 1.73.093-1.066 4.358-7.54 5.222-7.54.165 0 1.214-1.231 1.6-1.598.494-1.262-2.548 1.534-4.689 4.547-4.8 6.396-5.891 12.859-5.644 21.49.082 2.647-.114 4.724-.156 4.724-.205 0-1.449-3.083-2.066-5.078-1.565-5.049.835-15.58 4.91-20.914.7-.896 2.401-2.837 2.668-3.283.576-1.099-2.81 2.718-4.045 4.591-.28.564-.666.91-.733.776-.067-.133.145-.74.466-1.73 1.524-4.437 4.155-9.014 7.49-12.597 1.234-1.343 1.273-1.327.244-1.042-2.43.692-4.623 2.566-7 5.278-.577.896-1.099 1.374-1.756 2.13.227-1.11 2.367-5.616 4.178-8.14 1.112-1.506 2.178-2.526 2.133-2.86-.044-.335-1.2.024-2.866 1.263-2.512 1.832-3.938 3.767-6.09 7.275-.987 1.995-.843 1.434-1.177 1.796 1.112-5.618 1.903-8.267 3.756-11.932 1.688-3.298 3.34-5.529 6.51-8.827 2.224-2.28 2.672-2.927 1.89-2.683-2.43.733-5.01 2.359-7.356 4.68-1.359 1.384-1.911 1.8-1.911 1.596 0-.203.664-1.339 2.022-3.415 2.882-4.397 7.049-8.967 11.289-11.777 2.1-1.425 5.415-2.993 5.044-3.238a.39.39 0 0 0-.177-.044c.22-.36-.944-.108-3.89.798-2.922.896-6.051 2.636-9.221 5.08-1.226 1.146-.984.199 2.022-2.773 1.605-1.629 4.076-3.61 5.31-4.303 2.06-1.221 1.896-1.505.579-1.22-3.088.611-9.027 3.986-10.756 6.144-.01.012-.013.01-.022.022-.074.029-.14.038-.244.089-.935.574-1.839 1.863-1.623 1.308.216-.555.687-1.023 1.778-2.794 3.335-5.375 7.76-9.303 13.4-12.642 1.39-.84 1.444-1.25.467-1.153zm-31.089 21.668c.012-.01.031-.014.044-.022l-.044-.045v.067zm27.844-20.138c.05.002.088.024.111.044.083.123-.44.573-1.222 1.02-1.523.978-6.664 6.03-8.311 8.229-2.1 2.728-4.55 7.159-5.867 10.579-.74 1.913-1.31 3.164-1.31 2.839-.042-.896 1.124-6.907 1.577-8.495.137-.43.209-.84.245-1.153.206-.13.53-.488 1.066-1.33a33.609 33.609 0 0 1 2.089-2.817c.922-1.14 3.788-4.138 3.711-4.214-.011-.011-.054.014-.089.022.282-.201.575-.416 1-.732 2.702-1.985 6.26-4.015 7-3.992zM206.49 208.1c.03-.002.056.011.067.044.082.244-.431 3.783-1.378 7.896-1.894 8.672-3.277 15.474-3.689 20.115-.288 2.85-.375 3.103-.622 1.84-.206-.773-.436-4.729-.6-8.76-.288-7.98.03-10.31 2.089-14.748 1.157-2.557 3.685-6.357 4.133-6.387zm11.089 6.675c.123 0-.982 1.1-2.422 2.484-5.888 5.456-10.175 12.8-12.645 21.757l-.778 2.839.245-2.64c.123-1.465.423-3.757.711-5.1.37-1.629 1.244-4.315 2.133-6.72.89-2.405 1.729-4.451 3.534-6.255.392-.413 1.22-1.155 1.422-1.485a58.254 58.254 0 0 0 2.244-1.686c1.647-1.303 4.938-3.194 5.556-3.194zm4.866 2.063c.193-.01.29.021.29.133 0 .081-1.08.83-2.356 1.686-3.13 2.035-8.93 8.027-11.111 11.244-1.976 2.931-4.968 8.689-6.245 12.353-1.152 3.38-1.08 1.563.156-3.282 1.111-4.275 3.877-10.642 5.955-13.729.386-.56.616-.909 1.178-1.663.558-.63.728-.943.933-.82.206.122 1.146-.45 2.134-1.265 2.161-1.817 7.717-4.59 9.066-4.657zm-27.577 3.038c.103-.035.242.142.489.488.288.407 1.078 2.278 1.777 4.192 1.894 5.293 4.405 19.453 3.623 20.226-.124.163-.245-.106-.245-.554 0-.448-.91-3.68-2.022-7.141-3.211-9.853-4.323-14.728-3.911-16.479.123-.448.186-.696.289-.732zm21.2 8.739c.082 0-.829.989-2.023 2.129-5.516 5.578-9.13 13.154-10.488 22.111-.33 2.24-.795 4.232-1 4.436-.165.163-.48-.738-.645-2.04-.535-4.235.908-11.12 3.378-16.168.535-1.1.589-1.577 1.022-2.263.29-.246.563-.818 1.067-1.486 1.841-2.022 4.868-5.048 6.844-5.943.947-.407 1.762-.776 1.845-.776zm-26.689 1.02l.822 1.02c.453.57 1.606 2.116 2.511 3.46 1.73 2.524 6.258 11.449 6.711 13.24.165.57-.402-.323-1.266-1.952-.865-1.628-2.763-4.518-4.245-6.431-3.334-4.397-4.533-6.53-4.533-8.117v-1.22zm-.933 5.921c.127-.013.28 0 .444 0 1.194 0 3.714 2.225 5.978 5.279 2.593 3.501 5.603 10.87 7.044 17.099.7 3.176 1.89 11.32 1.89 13.152v1.308l-.668-1.22c-.37-.692-.892-2.74-1.222-4.613a80.918 80.918 0 0 0-4.244-15.214c-1.812-4.6-5.693-11.131-7.422-12.841-.26-.253-.467-.392-.6-.444-.278-.457-.876-.932-1.156-1.175-.9-.82-.936-1.24-.044-1.33zm-2.023.688l.978.599c1.37.968 1.895 1.355 1.578 2.594-.175 1.216-.375 2.384-.622 2.75-.288.57-.626.15-.956-1.153-.247-.895-.524-2.36-.689-3.216l-.289-1.574zm27.045 5.433c.118.01.096.152-.09.444-.378.313-1.305 1.526-1.8 2.218-2.634 3.542-6.458 13.321-7.2 18.94-.41 2.931-.914 1.591-.955-2.44-.082-5.822 2.518-12.336 6.511-16.367 1.637-1.68 3.18-2.826 3.534-2.795zM186 244.226c.383.081 1.544 1.205 4.29 3.949 2.552 2.605 5.284 5.727 6.066 7.03 1.564 2.647 3.21 6.521 3.622 8.516.206 1.14-.209.689-2.556-2.528-1.564-2.117-3.758-4.955-4.91-6.298-4.447-5.13-6.088-7.656-6.623-10.18-.077-.331-.063-.525.111-.488zm30.444 1.088c.083 0-.92 1.221-2.155 2.728-1.235 1.547-2.91 4.067-3.733 5.655-1.647 3.257-4.091 10.636-4.956 15.236-.906 4.723-.984 4.632-.778-.62.37-10.098 4.005-18.263 9.645-21.846 1.029-.61 1.895-1.153 1.977-1.153zm-30.022 7.252l1.245.643c.7.366 2.371 1.562 3.689 2.661 1.358 1.14 2.59 1.915 2.755 1.752.206-.162.257-.133.134.111-.124.204.914 1.964 2.355 3.837 2.758 3.583 5.8 9.228 7.2 13.218.453 1.344.771 2.488.689 2.529-.041.081-1.27-1.786-2.711-4.148-3.129-5.17-6.832-9.766-9.467-11.843-1.44-1.14-2.514-2.54-3.955-5.145l-1.934-3.615zm32.445 5.367h.066c-.732.606-2.289 2.373-2.289 2.373-2.058 2.24-4.402 6.43-5.266 10.135-.947 4.235-.635 15.112.6 19.672.453 1.67.793 3.087.71 3.128-.287.285-2.724-6.507-3.177-8.827-.7-3.543-.659-11.85 0-14.66.782-3.176 2.55-6.88 4.156-8.672 1.4-1.588 3.965-3.149 5.2-3.149zm-31.511 1.397c.621.029 1.346.354 2.489 1.087 4.405 2.769 9.955 10.094 16.377 21.535 5.146 9.242 8.11 16.21 3.911 9.248-5.97-9.853-15.682-23-19.51-26.99-.402-.418-.602-.576-.645-.555l-.067-.111c-.535-.651-2.125-1.947-2.866-2.395-1.647-1.018-1.689-1.427-.29-1.752a1.99 1.99 0 0 1 .6-.067zm-1.556 1.863c.33 0 .82.251 1.067.577.494.61.217 3.736-.4 4.103-.453.325-.67-.149-1-2.55-.247-1.71-.16-2.13.333-2.13zm28.867 11s-.048 2.145-.09 4.791c-.37 11.319 3.553 20.846 11.334 27.767 4.652 4.112 9.913 6.36 18.311 7.784 2.8.49 5.36.899 5.689 1.02.33.123 4.202.525 3.955.932-.123.163.246.255.823.133 1.646-.285 6.752.824 8.11.865 2.1.04 15.8 2.885 18.978 4.014 1.112.448 3.533 3.248 3.533 4.103 0 .245-1.272.337-3.577.133-2.8-.203-4.248-.567-6.8-1.707-5.31-2.362-12.717-4.043-21.733-4.857-4.652-.407-19.725-3.049-24.089-3.904-5.393-1.099-9.26-2.41-14.2-4.812-5.27-2.565-8.24-4.557-11.533-7.652l-2.667-2.55 2.267.643c6.628 1.914 11.981 4.323 18.733 8.516 5.31 3.298 7.074 4.147 9.956 4.88 2.634.692 3.422.736 3.422.288 0-.163-1.357-.731-3.045-1.22-11.486-3.542-20.133-15.394-20.133-27.567 0-2.036.2-4.483.489-5.5.412-1.588 2.102-6.1 2.267-6.1zm-26.711 1.309c.206.088.415.166.6.2 2.429.366 12.195 6.549 15.489 9.847 1.152 1.14 2.725 3.225 3.466 4.568l1.311 2.484-2.266-1.84c-1.277-1.018-3.588-2.609-5.111-3.505-1.606-.936-5.014-3.955-7.978-6.764-2.095-1.953-4.338-4.062-5.511-4.99zm6.733 17.144c.173-.008.463.034.911.11.782.123 2.878.573 4.689 1.02 6.505 1.507 14.292 6.422 18.244 11.511l1.778 2.285-1.822-.932c-.988-.488-1.771-1.012-1.689-1.175.247-.407-3.866-3.832-6.089-5.013-1.111-.61-4.242-1.865-7-2.883-5.022-1.791-7.99-3.273-8.977-4.413-.284-.356-.333-.498-.045-.51z" fill="#cab313" fill-opacity=".502"/> - <path d="M217.762 251.359c-.9.312-2.28 1.63-3.181 2.297-1.801 1.336-2.043 1.821-.332.62 1.26-.891 3.397-2.493 5.31-2.729.179-.022-.76.917-1.255 1.451-.675.757-.495.713 1.081-.312 1.036-.668 1.891-1.291 1.891-1.38 0-.356-1.938-.526-3.514.053zM190 281.724c0 1.018 12.626 10.329 13.203 9.759.082-.082-1.565-1.222-3.705-2.525-2.1-1.262-4.82-3.458-6.22-4.68-1.359-1.22-3.077-3.195-3.279-2.554z" fill="#cab313" fill-opacity=".502"/> - </g> - <g stroke="#d4af37" stroke-width=".904"> - <path d="M246.162 432.318c-5.483 1.69-12.845 1.998-16.376.691-1.277-.46-5.204-.206-6.18-.052 3.564 2.386 2.118 1.386 2.83 1.881 1.291.76.754.603 3.064 1.633-.395.45-.589.627-2.405 1.29 2.412.567 5.403.8 8.302.67a37.042 37.042 0 0 0 8.747-1.455c3.756-1.076 7.803-1.777 9.005-1.777 1.127 0 5.333 1.259 9.39 3.41 8.545 4.735 14.518 5.95 20.528 5.95 4.131 0 8.44-.922 13.329-4.113 3.613-2.36.568-2.302-3.027-.722-4.958 1.998-15.13 2.89-26.924-3.18-7.136-3.688-12.695-5.84-14.648-5.686-.376 0-2.93.691-5.635 1.46z" fill="#fff" transform="matrix(.47638 0 0 .46773 113.086 114.322)"/> - <path d="M219.856 429.486c1.465 1.23 1.25 1.471 3.79 3.53 3.558.349 10.643 1.11 13.273 1.11 2.328 0 6.826-.404 9.906-1.25 6.233-1.314 9.223-.93 20.567 4.056 13.146 6.763 20.53 5.524 27.29 2.22 9.43-3.586.254-2.04-3.165-3.031-1.127.384-2.568 1.84-5.253 2.817-3.754 1.367-5.765 1.324-10.272-.981-2.855-1.46-5.387-2.152-7.946-3.552-2.52-1.46-3.15-1.289-7.358-2.672l-6.196-1.22-9.38-.496c-8.113 1.69-16.09.4-21.5-1.29-5.408-1.69-6.385-1.393-3.756.759z" fill="#d91023" transform="matrix(.47638 0 0 .46773 113.086 114.322)"/> - <path d="M244.35 436.83c-6.46 1.921-14.34 2.016-17.27.94-1.532.62-.008-.018-3.84 1.365-5.033 1.69-5.108 1.768-2.93 2.382 1.278.385 6.311.692 11.27.615 8.563 0 9.314-.153 14.047-2.459 2.78-1.383 5.86-2.459 6.911-2.459.977 0 4.602 2.067 7.757 3.68 8.79 4.61 12.134 5.969 19.42 5.892 7.287-.077 16.694-5.291 17.862-7.074-5.596 3.396-10.23 5.156-17.312 4.87-7.082-.287-12.552-2.834-19.764-6.907-5.784-3.227-7.812-3.304-16.151-.845z" fill="#d91023" transform="matrix(.47638 0 0 .46773 113.086 114.322)"/> - <g stroke-width=".807"> - <path d="M293.47 417.689c1.216-1.4.855-1.915-2.49-2.381-8.288-1.323-18.856-6.3-23.113-10.888-2.129-2.334-3.117-2.567-3.117-.7 0 1.944 6.766 8.088 11.632 10.577 4.258 2.255 11.67 4.724 14.483 4.724.836 0 1.92-.477 2.604-1.332z" fill="#fff" transform="matrix(-.16796 -.34478 -.72366 .17969 593.548 332.202)"/> - <path d="M290.67 421.403c.238-.407-.408-2.4-3.112-2.97-6.682-1.384-14.159-5.289-18.931-9.845-3.58-3.5-5.332-3.843-4.139-.67 1.62 4.575 14.327 11.001 19.259 12.547 5.011 1.628 6.206 2.077 6.922.938z" fill="#d91023" transform="matrix(-.16796 -.34478 -.72366 .17969 593.548 332.202)"/> - <path d="M295.457 415.365l.827-1.39-4.033-2.547c-4.601-.588-12.942-3.604-18.55-6.766-2.517-1.398-5.249-2.575-6.112-2.575-1.51 0-1.61 0 .116 1.913 3.954 4.34 14.336 9.397 21.742 10.427 2.373.367 4.788 2.042 6.01.938z" fill="#ed1c24" transform="matrix(-.16796 -.34478 -.72366 .17969 593.548 332.202)"/> - <path d="M293.47 417.689c1.216-1.4.855-1.915-2.49-2.381-8.288-1.323-18.856-6.3-23.113-10.888-2.129-2.334-3.117-2.567-3.117-.7 0 1.944 6.766 8.088 11.632 10.577 4.258 2.255 11.67 4.724 14.483 4.724.836 0 1.92-.477 2.604-1.332z" fill="#fff" transform="matrix(.18999 -.33346 .71052 .22504 -81.494 310.673)"/> - <path d="M288.923 420.615c.146-.251 1.314-1.57-1.365-2.182-6.682-1.384-14.159-5.289-18.931-9.845-4.24-4.604-6.35-5.55-4.139-.67 1.62 4.575 14.327 11.001 19.259 12.547 5.011 1.628 4.46 1.289 5.176.15z" fill="#d91023" transform="matrix(.18999 -.33346 .71052 .22504 -81.494 310.673)"/> - <path d="M295.457 415.365l.827-1.39-4.033-2.547c-4.601-.588-12.942-3.604-18.55-6.766-2.517-1.398-5.249-2.575-6.112-2.575-1.51 0-1.61 0 .116 1.913 3.954 4.34 14.336 9.397 21.742 10.427 2.373.367 4.788 2.042 6.01.938z" fill="#ed1c24" transform="matrix(.18999 -.33346 .71052 .22504 -81.494 310.673)"/> - </g> - <path d="M319.677 402.697c-6.356 1.817-11.424 5.84-16.665 13.131-2.07 2.879-4.032 4.339-2.635 5.038 1.538.77 2.898-1.393 5.658-4.15 6.96-6.955 12.479-9.89 19.997-9.972h5.969l-1.783-2.478c-2.17-2.973-4.573-3.303-10.541-1.569zM269.234 405.082c-1.273 1.465-.895 2.003 2.604 2.491 8.67 1.384 19.727 6.591 24.181 11.392 2.227 2.44 3.261 2.685 3.261.732 0-2.034-7.079-8.462-12.17-11.066-4.454-2.36-12.208-4.942-15.152-4.942-.874 0-2.008.498-2.724 1.393z" fill="#fff" transform="matrix(.47614 .01506 -.01519 .46749 119.964 112.211)"/> - <path d="M318.582 399.536c-1.706.578-4.108 1.651-5.426 2.312-3.566 1.982-9.02 8.373-9.834 9.58-.87 1.29-2.14 2.793-3.002 4.19-1.274 2.068-1.482 3.204-.845 3.33.637.126 2.12-.758 3.527-2.73 6.022-8.443 11.55-12.223 19.765-13.874 4.263-.826 4.883-.826 6.356.66 1.162 1.074-.337-.236-.57-.979-.542-1.817-1.91-2.737-4.546-3.233-1.24-.165-3.72.083-5.425.744z" fill="#d91023" transform="matrix(.47614 .01506 -.01519 .46749 119.964 112.211)"/> - <path d="M271.987 403.32c-.238.406 1.83 1.139 4.534 1.708 6.682 1.383 14.159 5.289 18.931 9.845 3.58 3.499 5.332 3.843 4.139.67-1.62-4.575-14.327-11.002-19.259-12.548-5.011-1.627-7.629-.815-8.345.324zM320.52 407.381c-4.884 1.734-9.767 4.79-13.642 8.506-3.953 3.882-5.738 6.35-4.188 6.35.31 0 2.715-1.89 4.343-3.294 7.053-6.029 19.763-9.425 25.421-7.36 2.713.99 1.436-2.011-.424-4.736-1.162-1.735-8.023-.705-11.51.534zM267.423 407.115l-3.307 3.14 4.928.794c5.091.651 14.318 3.987 20.522 7.486 2.784 1.546 5.807 2.847 6.761 2.847 1.67 0 1.782 0-.127-2.115-4.375-4.8-15.86-10.396-24.053-11.535-2.625-.407-3.372-1.837-4.724-.617z" fill="#d91023" transform="matrix(.47614 .01506 -.01519 .46749 119.964 112.211)"/> - <g> - <path d="M304.493 422.389c-1.651 5.417-1.432 10.396-.97 14.138 1.605-.193 2.662-.24 5.27-.725.273-2.198.686-4.745.573-7.435.338-3.7-.019-1.771 2.183-4.736-2.375-1.526-3.013-1.66-7.056-1.242z" fill="#d91023" transform="matrix(.47638 0 0 .46773 112.598 115.725)"/> - <path d="M296.203 428.628c-.084 4.215.317 5.13.27 7.137 2.355.385 7.422 1.07 7.121.225.02.922-.076-4.911-.002-7.985l.854-5.533-3.587-.549-3.23.405-1.426 6.3z" fill="#fff" transform="matrix(.47638 0 0 .46773 112.598 115.725)"/> - <path d="M291.002 428.828c.15 3.343-.53 4.487-.13 6.445 1.05.318 5.047.184 6.286.568-.176-4.355-.176-.547-.598-6.234l1.266-7.28-3.595.287s-2.221-.69-3.732-.72c1.303 2.274.503 6.934.503 6.934z" fill="#d91023" transform="matrix(.47638 0 0 .46773 112.598 115.725)"/> - </g> - </g> -</svg> diff --git a/img/flags/1x1/pf.svg b/img/flags/1x1/pf.svg deleted file mode 100644 index becd293..0000000 --- a/img/flags/1x1/pf.svg +++ /dev/null @@ -1,32 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" height="512" width="512" viewBox="0 0 512 512"> - <defs> - <clipPath id="a"> - <path fill-opacity=".67" d="M0 0h512v512H0z"/> - </clipPath> - </defs> - <g clip-path="url(#a)"> - <path style="width:0" fill="#fff" d="M0 0h512v512H0z"/> - <path d="M210.43 363.47s11.562-9.374 22.812-9.374 14.375 7.811 22.188 8.436c7.812.625 14.373-7.812 24.062-8.124 9.688-.312 21.875 6.874 21.875 6.874l-42.499 12.814-48.438-10.626zM186.06 349.72l144.37.625s-12.499-13.437-27.187-13.749c-14.687-.314-10.624 6.25-21.874 7.186-11.249.938-14.064-6.874-24.376-6.562-10.311.312-16.25 6.562-24.061 6.876-7.812.312-17.812-7.814-23.75-7.5-5.938.312-27.187 9.374-27.187 9.374l4.062 3.75zM167.62 332.53l178.12.627c2.812-4.063-8.75-13.75-19.374-14.688-8.752.311-15 9.062-22.188 9.375-7.188.312-15.312-9.064-23.438-8.749-8.124.312-16.562 8.75-24.687 8.75-8.124 0-14.062-9.065-24.374-9.065s-15 10-22.812 9.376c-7.814-.625-14.688-10-22.188-10-7.5 0-20 11.25-22.499 10.625-2.5-.625 3.123 4.688 3.438 3.75z" fill-rule="evenodd" stroke="#083d9c" stroke-width="2pt" fill="#083d9c"/> - <path stroke-linejoin="round" d="M236.06 233.47l40.938 10.938V185.97c-18.751.938-34.374-35.624-1.25-38.124-32.5-4.688-36.25 3.75-40 12.812l.312 72.811z" fill-rule="evenodd" stroke="#000" stroke-width="2.5" fill="red"/> - <path d="M210.12 275.97l92.499.312" fill-rule="evenodd" stroke="#083d9c" stroke-linecap="round" stroke-width="5" fill="#083d9c"/> - <g stroke="#000" stroke-linecap="round" stroke-width="2" fill="none"> - <path d="M214.5 253.78l10.938 14.688M214.5 268.48l11.876-14.374M220.76 252.84l-.312 9.062" stroke-width="4"/> - </g> - <g stroke="#000" stroke-linecap="round" stroke-width="2" fill="none"> - <path d="M232 253.78l10.938 14.688M232 268.48l11.876-14.374M238.26 252.84l-.312 9.062" stroke-width="4"/> - </g> - <g stroke="#000" stroke-linecap="round" stroke-width="2" fill="none"> - <path d="M249.812 253.78l10.938 14.688M249.812 268.48l11.876-14.374M256.072 252.84l-.312 9.062" stroke-width="4"/> - </g> - <g stroke="#000" stroke-linecap="round" stroke-width="2" fill="none"> - <path d="M268.249 253.78l10.938 14.688M268.249 268.48l11.876-14.374M274.509 252.84l-.312 9.062" stroke-width="4"/> - </g> - <g stroke="#000" stroke-linecap="round" stroke-width="2" fill="none"> - <path d="M286.061 253.78l10.938 14.688M286.061 268.48l11.876-14.374M292.321 252.84l-.312 9.062" stroke-width="4"/> - </g> - <path d="M147.93 276.91l39.374.313v-24.687l-45-2.186 5.626 26.56zM146.06 242.85l41.875 4.063-.312-17.5-40.937-16.25-.626 29.686zM154.5 207.85l32.188 15.624 4.596-4.798s-2.96-2.04-2.813-3.916c.055-1.898 2.977-2.186 3.033-4.246.054-1.899-3.31-2.127-3.346-4.026-.22-2.058 2.592-4.265 2.592-4.265l-29.062-25.312-7.188 30.938zM365.74 277.22h-41.562l-.312-24.062 45.623-3.438-3.75 27.5zM324.49 247.53l49.376-5.936-10.626-28.437-39.062 16.562.312 17.811zM360.43 205.35l-35.625 18.75c-.52-2.032-.962-3.986-3.436-5.626 0 0 2.186-1.25 2.186-3.438 0-2.186-2.813-2.5-2.813-3.75s2.579-2.342 2.735-5.155c-.312-1.953-2.735-4.686-2.266-5.234l27.657-21.172 11.562 25.626zM283.25 247.06l17.811-.78.312-7.19-18.123 7.97zM228.87 246.52l-18.75-.546v-7.5l18.75 8.046zM228.79 244.33l-18.672-9.61v-12.5s-2.188.313-1.875-2.187c.103-5.208 13.723 9.506 20.703 14.297l-.156 10zM283.24 243.16l-.076-8.124s16.872-15.233 20.466-18.047c0 3.125-1.952 5.546-1.952 5.546v11.876l-18.438 8.749zM173.87 174.72c.312.313 18.933 21.009 18.933 21.009.522-1.961 4.816-2.26 9.19-1.947 4.376.312 7.864-.293 7.864 2.833 0 3.124-2.22 2.68-2.22 4.868s3.326 2.005 3.326 4.814c0 2.813-2.412 2.239-2.424 4.416-.007 1.8 2.516 1.896 2.516 1.896l17.734 17.188.078-18.36-36.561-57.343-18.436 20.625zM203.13 153.01c.278.834 24.764 50.642 24.764 50.642s.278-46.747 4.452-49.251l-6.956-12.8-22.26 11.409zM310.81 154.96l-27.651 49.328.036-20.79s2.293-3.496-1.324-3.217c-3.617.278-8.068-.279-8.068-.279l11.129-38.956 25.878 13.913zM339.19 176.1c-.279.556-18.654 19.243-18.654 19.243-.834-2.225-6.39-1.157-11.676-1.157-5.288 0-6.024 1.695-5.744 3.086.557 3.618 2.342.952 2.342 4.292 0 3.338-2.572 2.12-2.802 4.564.256 2.807 4.039 2.114 1.823 4.24L283.2 230.796l.06-19.356 39.511-61.495L339.19 176.1z" fill-rule="evenodd" fill="#ef7d08"/> - <path stroke-linejoin="round" d="M245.14 286.29c-8.904 14.748-32.708 10.374-38.274.078-1.668-.472-.681-63.52-.681-63.52s-2.66-1.212-2.783-3.15c-.122-1.959 3.617-2.136 3.617-4.642 0-2.504-3.818-1.523-3.894-4.043.016-2.41 4.075-2.078 3.894-4.305-.215-2.51-4.547-2.139-4.73-4.453-.14-1.838 3.098-3.44 3.998-4.267-.582.029-3.009-.036-3.024-.045l-6.818.14c-4.844.005.083 1.056.012 3.85-.044 1.826-2.456 3.041-2.672 4.629-.076 1.63 3.451 2.774 3.496 4.73.04 1.745-3.466 1.864-3.34 3.485.218 2.745 3.105 3.349 3.062 5.01-.044 1.66-3.886 2.293-3.896 3.617.134 2.562.556 64.833.556 64.833 6.122 31.72 41.46 39.79 51.477-1.947zM268.44 286.29c8.904 14.748 32.707 10.374 38.273.078 1.668-.472.682-63.52.682-63.52s2.66-1.212 2.782-3.15c.122-1.959-3.382-2.136-3.382-4.642 0-2.504 3.584-1.523 3.66-4.043-.016-2.41-3.764-2.233-3.582-4.462.214-2.509 3.156-2.216 3.323-4.53.14-1.993-1.847-3.207-2.747-4.033.582.028 2.852-.037 2.868-.045l6.817.14c4.845.005-.083 1.055-.011 3.85.043 1.826 2.455 3.041 2.672 4.629.076 1.63-3.452 2.774-3.497 4.73-.039 1.745 3.467 1.864 3.34 3.485-.217 2.745-3.105 3.348-3.061 5.01.043 1.66 3.886 2.293 3.895 3.617-.133 2.561-.555 64.833-.555 64.833-6.123 31.72-41.46 39.79-51.477-1.947z" fill-rule="evenodd" stroke="#000" stroke-width="2.5" fill="red"/> - <path d="M236.49 315.3l39.762-.024c.31-.312-8.902-13.732-19.875-12.786-12.223.32-20.527 12.81-19.887 12.81zM363.28 314.33h-54.409s7.042-4.162 8.962-8.002c3.52 1.92 2.56 3.84 9.602 4.16 7.04.32 13.76-8 20.484-7.68 6.72.32 15.36 11.842 15.36 11.522zM148.87 314.33h54.409s-7.042-4.162-8.962-8.002c-3.52 1.92-2.56 3.84-9.602 4.16-7.039.32-13.76-8-20.484-7.68-6.72.32-15.36 11.842-15.36 11.522zM152.93 297.22l38.749.312s-2.5-5.312-2.812-11.874c-10.001-3.436-18.125 7.5-25.313 7.812-7.186.312-14.685-7.812-14.685-7.812l4.06 11.562zM359.81 297.22l-38.75.312s2.5-5.312 2.813-11.874c10-3.436 18.125 7.5 25.313 7.812 7.186.312 14.686-7.812 14.686-7.812l-4.062 11.562zM246.37 297.53l19.686-.623s.314-5.938-10-5.938c-10.311 0-9.373 6.875-9.686 6.561zM234.49 289.1c3.438-1.876 6.562-3.75 8.75-8.126l-13.438.312s-6.247 3.752-9.373 7.814h14.062zM277.93 289.1c-3.438-1.876-6.561-3.75-8.75-8.126l13.438.312s6.248 3.752 9.373 7.814H277.93z" fill-rule="evenodd" stroke="#083d9c" stroke-width="2pt" fill="#083d9c"/> - <path fill-rule="evenodd" fill="#de2010" d="M-128 384h768v128h-768zM-128 0h768v128h-768z"/> - </g> -</svg> diff --git a/img/flags/1x1/pg.svg b/img/flags/1x1/pg.svg deleted file mode 100644 index a032732..0000000 --- a/img/flags/1x1/pg.svg +++ /dev/null @@ -1,16 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" height="512" width="512" viewBox="0 0 512 512"> - <defs> - <clipPath id="a"> - <path fill-opacity=".67" d="M81.385 0h496.06v496.06H81.385z"/> - </clipPath> - </defs> - <g clip-path="url(#a)" transform="translate(-84) scale(1.0321)"> - <g fill-rule="evenodd"> - <path d="M.514 0L0 496.06h659.05L.51 0z"/> - <path d="M658.536 496.06L659.05 0H0l658.54 496.06z" fill="red"/> - </g> - <path d="M406.908 123.444l-8.778-.457c-2.698-6.355-10.317-8.74-15.003-6.066-4.252.366-26.518-.336-26.518-.336l16.276 7.133c4.024 10.881 18.014 13.441 18.014 13.441-1.241 20.06-20.302-2.588-36.304 8.842-11.43 6.858-11.565 15.048-17.741 28.28-1.92 3.678-9.967 13.17-9.967 13.17l13.441-1.144-4.297 5.715 16.002-2.286s-2.15 1.794-3.43 3.155c2.371.464 18.289-3.726 18.289-3.726l-1.143 5.143c8.16-3.269 18.288-6.583 18.288-6.583s3.589 2.994 6.858 4.297l2.286-9.144 9.144 2.286 2.286-9.144c13.716 18.288 18.288 36.576 43.434 41.148l-2.286-9.144c6.995 2.995 19.98 9.35 19.98 9.35l1.965-4.183c10.904 7.818 19.957 7.68 26.06 8.55 0 0-4.549-11.385-4.571-11.43.297.114 4.549 2.308 4.572 2.285l-6.858-18.288 6.858 2.286-9.144-13.716 3.429-2.286-1.143-6.858c13.716 4.572 32.004 11.43 34.29 27.432 2.286 25.146-25.146 32.004-43.434 29.718 13.716 11.43 38.862 6.858 50.292-4.572 4.572-4.572 6.858-11.43 9.144-18.288 2.286 6.858 6.858 16.002 6.858 25.146-2.286 20.574-29.718 27.432-48.006 29.718 20.574 11.43 57.15-2.286 59.436-32.004 0-25.146-16.002-36.576-22.86-48.006-1.03-4.16-2.286-12.298-2.286-12.298.887.261 6.858 3.177 6.858 3.177s-4.047-7.566-4.572-9.167c0 0-7.133-19.43-9.716-23.728.425-.24 5.144.8 5.144.8l-18.723-23.477s4.517-.411 5.304-.55c0 0-21.763-17.167-27.73-19.339l6.859-2.286c-13.716-6.858-29.718-2.286-43.434 6.858l2.286-6.858-4.184.389v-7.841l4.184-6.264-6.858-2.286 4.572-11.43-6.858 2.286 2.286-11.43s-5.121 2.378-8.23 2.035c.114.251 3.635-7.818 3.635-7.818-2.172-3.406.023-10.219.023-10.219-16.002 2.286-18.288 4.572-27.432 18.288-13.716 25.146-9.144 36.576-6.858 61.722z" stroke="#fc0" fill="#fc0" stroke-width="2.286"/> - <path d="M493.273 161.021c1.191 1.965 14.166 8.215 23.93 13.752-2.62-10.537-21.67-12.859-23.93-13.752z" fill-rule="evenodd" stroke="red" stroke-width="2.286pt" fill="red"/> - <path fill="#fff" fill-rule="evenodd" d="M178.98 412.394l-14.539-9.28-19.515 9.349 4.327-16.688-14.918-15.682 17.215-1.051 10.294-19.02 6.31 16.048 21.282 3.909-13.313 10.973zM216.294 330.807l-6.746-3.223-6.483 3.726.988-7.43-5.548-5.006 7.354-1.349 3.054-6.835 3.56 6.584 7.436.8-5.155 5.418zM249.174 284.013l-14.79-7.224-14.338 8.092 2.288-16.299-12.136-11.133 16.214-2.857 6.829-14.973 7.75 14.538 16.344 1.875-11.43 11.841zM181.51 218.862l-17.423-8.73-17.067 9.402 2.919-19.267-14.22-13.327 19.228-3.178 8.283-17.64 8.963 17.304 19.335 2.426-13.686 13.871zM118.899 286.527l-17.57-10.424-17.523 10.653 4.492-19.934-15.56-13.35 20.347-1.898 7.905-18.928 8.083 18.768 20.446 1.669-15.35 13.487z"/> - </g> -</svg> diff --git a/img/flags/1x1/ph.svg b/img/flags/1x1/ph.svg deleted file mode 100644 index b9d31b5..0000000 --- a/img/flags/1x1/ph.svg +++ /dev/null @@ -1,28 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" height="512" width="512" viewBox="0 0 512 512"> - <path d="M0 0h512v256H0z" fill="#0038a8"/> - <path d="M0 256h512v256H0z" fill="#ce1126"/> - <path d="M443.405 256L0 512V0" fill="#fff"/> - <g transform="translate(159.289 256) scale(5.68889)" fill="#fcd116"> - <circle r="9"/> - <g id="d"> - <g id="c"> - <g id="b"> - <path d="M-1 0l.062.062L0 0l-.938-.062z" transform="scale(19)"/> - <path id="a" d="M-.884.116l.05.05L0 0z" transform="scale(19.2381)"/> - <use height="100%" width="100%" xlink:href="#a" transform="scale(1 -1)"/> - </g> - <use height="100%" width="100%" xlink:href="#b" transform="rotate(45)"/> - </g> - <use height="100%" width="100%" xlink:href="#c" transform="rotate(90)"/> - </g> - <use height="100%" width="100%" xlink:href="#d" transform="scale(-1)"/> - <g transform="translate(-2.02)"> - <g id="f" transform="translate(37.962)"> - <path id="e" d="M5 0L1.618 1.176l-.073 3.58-2.163-2.854-3.427 1.037L-2 0z"/> - <use height="100%" width="100%" xlink:href="#e" transform="scale(1 -1)"/> - </g> - <use height="100%" width="100%" xlink:href="#f" transform="rotate(120)"/> - <use height="100%" width="100%" xlink:href="#f" transform="rotate(-120)"/> - </g> - </g> -</svg> diff --git a/img/flags/1x1/pk.svg b/img/flags/1x1/pk.svg deleted file mode 100644 index d7722c9..0000000 --- a/img/flags/1x1/pk.svg +++ /dev/null @@ -1,15 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" height="512" width="512" viewBox="0 0 512 512"> - <defs> - <clipPath id="a"> - <path fill-opacity=".67" d="M0 0h512v512H0z"/> - </clipPath> - </defs> - <g fill-rule="evenodd" stroke-width="1pt" clip-path="url(#a)"> - <path fill="#0c590b" d="M-95 0h768v512H-95z"/> - <path fill="#fff" d="M-95 0H97.52v512H-95z"/> - <g fill="#fff"> - <path d="M403.702 225.4l-31.165-6.556-16.389 27.306-3.395-31.666-31.036-7.15 29.067-13.014-2.791-31.724 21.36 23.622 29.309-12.458-15.865 27.614 20.905 24.026z"/> - <path d="M415.455 306.086c-27.665 60.96-100.277 87.588-161.41 59.27-61.142-28.326-87.777-100.93-59.451-162.071 14.447-31.184 38.089-52.614 71.462-64.31-3.839 3.246-7.637 6.613-11.8 10.908-43.11 44.491-41.99 115.592 2.5 158.699 44.49 43.11 115.592 41.991 158.698-2.5z"/> - </g> - </g> -</svg> diff --git a/img/flags/1x1/pl.svg b/img/flags/1x1/pl.svg deleted file mode 100644 index d0f34e1..0000000 --- a/img/flags/1x1/pl.svg +++ /dev/null @@ -1,6 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" height="512" width="512" viewBox="0 0 512 512"> - <g fill-rule="evenodd"> - <path fill="#e9e8e7" d="M512 512H0V0h512z"/> - <path fill="#d4213d" d="M512 512H0V256h512z"/> - </g> -</svg> diff --git a/img/flags/1x1/pm.svg b/img/flags/1x1/pm.svg deleted file mode 100644 index 2385562..0000000 --- a/img/flags/1x1/pm.svg +++ /dev/null @@ -1,7 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" height="512" width="512" viewBox="0 0 512 512"> - <g fill-rule="evenodd" stroke-width="1pt"> - <path fill="#fff" d="M0 0h512.005v512H0z"/> - <path fill="#00267f" d="M0 0h170.667v512H0z"/> - <path fill="#f31830" d="M341.333 0H512v512H341.333z"/> - </g> -</svg> diff --git a/img/flags/1x1/pn.svg b/img/flags/1x1/pn.svg deleted file mode 100644 index d27d977..0000000 --- a/img/flags/1x1/pn.svg +++ /dev/null @@ -1,69 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" height="512" width="512" viewBox="0 0 512 512"> - <defs> - <clipPath id="b"> - <path d="M-15-7.5h30v15h-30z"/> - </clipPath> - <clipPath id="a"> - <path fill-opacity=".67" d="M-15-15h30v30h-30z"/> - </clipPath> - </defs> - <g clip-path="url(#a)" transform="matrix(17.06667 0 0 17.06667 256 256)"> - <path d="M-15-15h60v30h-60z" fill="#00247d"/> - <g clip-path="url(#b)" transform="translate(0 -7.5)"> - <circle r="20" fill="#00247d"/> - <path d="M-20-10l40 20m-40 0l40-20" stroke="#fff" stroke-width="3"/> - <path d="M-20-10l40 20m-40 0l40-20" stroke="#cf142b" stroke-width="2"/> - <path d="M0 0l20 10h-3L-3 0m3 0l20-10h3L3 0M0 0l-20 10h-3L-3 0m3 0l-20-10h3L3 0" fill="#fff"/> - <path d="M-20 0h40M0-10v20" stroke="#fff" stroke-width="5"/> - <path d="M-20 0h40M0-10v20" stroke="#cf142b" stroke-width="3"/> - </g> - <path d="M-.267 3.844c-.64.543-1.25 1.334-1.4 2.05-.421 2.013-.98 2.46-1.846 2.029 0 1.08.948 1.164 1.364.532 0 1.014.368 1.894 1.198 2.644.349.316.415.1.25-.25-.167-.349-.167-1.48-.5-2.128.532.382 1.314.166 1.247-.882-.681.4-1.36.384-1.43-.565-.083-1.114.352-2.731 1.117-3.43zm-.809-8.01c.045-.4-.04-.81-.332-1.067-.564-.497-1.116-.332-1.528.068-.615-.333-.942.847-1.64.647.116.383.299.549.648.416-.366.333 0 .732-.432 1.13.782.25 1.197-.182 1.164-.93.3.266.765.249 1.015-.05-.416-.133-.418-.495-.25-.832.25-.499 1.422-.48 1.355.618z" fill="#f7e017" stroke="#000" stroke-width=".03"/> - <path d="M.729 1.62c-.882.465-2.495.265-2.645-.882C-2.066-.41-.95-.926-.652-1.075c.467-.234.832.183.682.665a.755.755 0 0 0 .383-1.13c.682.049 1.314-.467 1.58-1.198-.24.227-.891.073-1.428.039.166-.183.164-.538.114-.721-.566.582-1.38.316-2.461 1.996.166-.583.482-1.747.665-2.512a1.89 1.89 0 0 0 .04-.23c.067-1.098-1.103-1.117-1.353-.618.274.308.13.668.032 1.214-.116.649-.366 2.146-.582 2.645-.067-.782-.582-.832-.682-1.215-.15.1-.233.366-.2.55-.182-.2-.815.05-1.047-.25-.25.499.15.998.565 1.214-.241.017-.3.308-.565.308.357.415.723.582 1.147.615.424.033.74.191.998.707.416.831 2 1.372 3.493.615z" fill="#337321" stroke="#000" stroke-width=".03"/> - <path d="M2.924.605C2.425 1.985 1.061 2.966.446 3.116c-1.047.255-3.183 1.291-3.757 1.825" fill="#f7e017" stroke="#000" stroke-width=".03"/> - <path d="M-.267 3.844c-.79.67-1.2 2.316-1.117 3.43.023.31.11.52.242.649.058-.632.498-2.265 1.62-2.994.949-.616 2.43-1.996 2.978-3.576-.1-.283-.266-.482-.582-.682C2.33 2.162.872 2.877-.266 3.844z" fill="#337321" stroke="#000" stroke-width=".03"/> - <path d="M2.418-.036C2.135.388 1.495.971.879 1.204a.806.806 0 0 0 .183-.5c-.782.3-2.345.267-2.977.034A4.06 4.06 0 0 0 2.11-.46c.133.15.25.283.308.424z" fill="#316d3a" stroke="#000" stroke-width=".03"/> - <path d="M-3.562 3.449c-1.271 1.19-.432 2.228.067 2.461-.133.832.648.732.632 1.43.316-.183.399-.665.349-1.048.399.433 1.414-.05 1.63.749.133-.882-.55-1.763-1.397-1.68.35-.316.15-.831-.183-.965-.067.65-.798.65-1.081.45-.283-.2-.516-.849-.017-1.398z" fill="#337321" stroke="#000" stroke-width=".03"/> - <path d="M-.809 11.015c-.138.08-.128.258-.041.374.174.233-.123.76.44.873.167.034.295-.068.358-.258.175-.524-.382-.582-.432-.831-.05-.25-.208-.225-.325-.158z" fill="#f7e017" stroke="#000" stroke-width=".03"/> - <path d="M-.336 11.997c-.186.086-.349.208-.274.806.03.248.017.848-.2.857.133.066.416.137.533-.017.112.187.366.133.465-.1.133.108.316-.074.316-.232.117.074.35-.034.291-.391.142.05.325-.05.391-.142-.208-.041-.731-.324-.856-.548-.125-.225-.45-.333-.666-.233z" fill="#f7e017" stroke="#000" stroke-width=".03"/> - <path d="M-3.217-4.824a2.17 2.17 0 0 1 .282-.341m2.883 2.543c.147-.084.37-.093.618-.077m-.842 16.342c-.059-.083-.08-.432-.038-.645m.504.546" stroke-width=".03" fill="none" stroke="#000"/> - <path d="M8.464 3.465c2.046 1.713 2.179 3.077 1.863 3.876-.167-.749-1.015-1.913-1.897-2.212l.034-1.664z" fill="#f7e017" stroke="#000" stroke-width=".03"/> - <path d="M4.804 2.5h3.793v4.491c0 3.826-2.13 6.087-4.291 7.285C2.143 13.078.015 10.816.015 6.99V2.5h2.66c.005.233.026.582.3.931.628-.062 1.339-.532 1.83-.931z" fill="#337321" stroke="#000" stroke-width=".03"/> - <path d="M8.596 2.5v4.491c0 1.155-.194 2.167-.524 3.05l-3.766-6.91-3.766 6.91C.21 9.159.016 8.147.016 6.992v-4.49h8.582z" fill="#006ec7" stroke="#000" stroke-width=".03"/> - <g fill="#f7e017" stroke="#000" stroke-width=".03"> - <path d="M6.018 12.172c.1.05.284.142.367.175.2-.4.233-.964.166-1.464-.216.55-.948.533-1.147.865.122.062.236.142.334.213-.25.25-.833.669-1.166.769V9.162c0-.25-.083-.457-.083-.665v-.738c0-.166-.033-.407-.183-.407s-.183.241-.183.407v.738c0 .208-.083.449-.083.665v3.568c-.183-.533-.9-.35-1.232-.883a.944.944 0 0 1 .4-.015c-.25-.849-.931-.915-1.064-1.165 0 .35-.15 1.165.083 1.514a.926.926 0 0 1 .225-.185c.283.616 1.554.617 1.854 1.632.24-.373 1.106-.806 1.712-1.456z"/> - <path d="M4.305 9.203c.283 0 1.181-.092 1.505-.092.085 0 .154-.126.154-.282 0-.156-.07-.282-.154-.282-.324 0-1.222-.092-1.505-.092-.283 0-1.18.092-1.505.092-.084 0-.153.126-.153.282 0 .156.069.282.153.282.325 0 1.223.092 1.505.092zm-.182-1.462"/> - <path d="M2.801 9.111c.084 0 .153-.126.153-.282 0-.156-.069-.282-.153-.282"/> - <path d="M2.926 9.111c.085 0 .153-.126.153-.282 0-.156-.068-.282-.153-.282m.821.623c.102 0 .184-.153.184-.341 0-.188-.082-.34-.184-.34m.192.696c.106 0 .193-.16.193-.356 0-.196-.087-.356-.193-.356m.638.716c.108 0 .195-.161.195-.36 0-.199-.087-.36-.195-.36m.201.708c.107 0 .193-.156.193-.348 0-.192-.086-.348-.193-.348m.892.636c.086 0 .156-.13.156-.288 0-.158-.07-.288-.156-.288m-3.22 3.456c.104-.063.226-.117.357-.15m3.029.183l-.098-.07m.28.212c.233-.25.427-.533.533-.856"/> - </g> - <g stroke="#000" stroke-width=".03"> - <path d="M3.544 5.675c0-.08.066-.116.144-.174.094-.071.131-.104.216-.104h1.092c.08 0 .1.02.1.095v1.485c0 .075-.02.095-.1.095H3.544V5.661" fill="#fff"/> - <path d="M4.726 7.201c.144 0 .118-.003.219-.104.105-.105.095-.095.095-.192V5.548c0-.07-.017-.09-.093-.09h-1.01c-.079 0-.113.031-.2.098-.072.055-.132.087-.132.163V7.2h1.121z" fill="#e5e5e5"/> - <path d="M4.833 7.17c0 .075-.019.096-.1.096H3.642c-.081 0-.099-.021-.099-.096V5.686c0-.075.018-.096.099-.096h1.091c.081 0 .1.02.1.096V7.17z" fill="#fff"/> - </g> - <path d="M6.95 1.631a.837.837 0 0 1 .167.868H6.8c.133-.399.05-.78-.516-.83-.846-.074-1.83 1.564-3.31 1.763-.432-.515-.409-1.498.14-1.963C2.83.65 2.232-.25 1.817-.638" fill="#96877d" stroke="#000" stroke-width=".03"/> - <path d="M3.26 2.067C3.188.96 2.74.046 2.11-.576c.299.083.914.083 1.33-.216.549-.366 1.98-1.007 2.503-.732.042.091.067.3.033.432-.124-.332-1.505.183-1.896.341-.374.175-.54.408-.407.932-.216-.183-.142-.358-.366-.491.091.216.166.607.191.923-.083-.225-.233-.707-.557-.99.283.55.528 1.867.412 2.566.224 0 .72-.22.919-.378-.175.249-.678.424-1.002.49-.146.175-.246.624-.237.873-.025-.307.072-1.057.227-1.106zm3.69-.436c-.275-.307-.79-.473-1.447-.294.1-.05.316-.134.508-.167C5.986.996 5.828.247 5.803.064l.183-.075c.091.45.207.965.282 1.173.059.017.192.041.308.1-.05-.175-.333-1.43-.324-1.564l.25-.133c.099.682.257 1.672.448 2.066z"/> - <path d="M6.8 2.5c.134-.4.05-.781-.515-.831-.438-.039-.914.387-1.476.83H6.8zM3.125-1.084c-.25.034-.807-.016-1.09-.108.017-.075.046-.153.083-.235-.174.117-.507.343-.631.501.4.084 1.223.125 1.638-.158z" stroke-width=".03" fill="#96877d" stroke="#000"/> - <path d="M3.116 1.469c.091.265.151.521.16.749m-.915-4.066c-.15.22-.282.456-.325.656.283.092.84.142 1.09.108" fill="none" stroke="#000" stroke-width=".03"/> - <path d="M1.817-.638c.108.017.208.038.293.062.3.083.915.083 1.33-.217.415-.3 1.548-1.23 2.828-1.33" fill="none" stroke="#000" stroke-width=".03"/> - <path d="M1.486-.926c.4.084 1.223.125 1.638-.158.965-.657 1.896-1.039 2.827-1.089" fill="none" stroke="#000" stroke-width=".03"/> - <path d="M8.464 3.465c1.397.965 2.428 1.896 2.727 3.393.3 1.497.865 1.896 1.564 1.497-.166.865-1.031.965-1.763.3.066.997-.333 2.195-1.364 2.627-.066-.598.33-1.073.216-1.563-.05-.216-.066-.715.216-.948-.548.183-1.413-.166-1.496-.981.632.3 1.447.349 1.763-.45.316-.799.183-2.161-1.863-3.875zm1.762-7.783c.432-1.131 1.564-1.015 1.946-.532 1.114-.632 1.264.798 2.212.515-.017.266-.333.516-.682.499.366.333-.15.832.632 1.131-.665.333-1.597-.017-1.846-.931-.216.432-.998.432-1.314.083.682-.183.632-.815.25-1.065-.386-.25-1.065-.15-1.198.3zm-3.373 2.49C7.163-.827 7.805.104 8.497.738c.798.732 2.004.549 2.678-.15.016 1.393-1.426 1.501-2.229 1.065-.354-.193-.64-.092-.3.216.516.465 1.644.812 2.978 1.097 2.328.5 1.497 2.345.815 2.329.195-.004.356-.209.075-.462-2.021-1.817-6.13-1.102-6.063-5.16C6.02.738 4.24.323 5.071-.942c.266.216.732.233.865-.1.103-.259.036-.709-.43-1.096.076-.006.24 0 .224-.19.02.112.123.278.384.222.075.118.154.196.26.154.021-.009.084-.04.059-.158.02.22.282.3.42.282z" fill="#337321" stroke="#000" stroke-width=".03"/> - <path d="M8.946 1.652c.965.632 2.056.632 3.06-.532.317-.366.816-.682 1.165-.715.349-.033.332-.366.599-.432-.167-.05-.233-.25-.483-.225.624-.216.441-.715.749-.956-.25.091-.64-.283-.998.191.091-.216-.034-.474-.125-.574.033.25-.49.3-.59.932-.056.354-.25.332-.283-.217-.025-.401-.216-1.513-.45-2.078-.232-.566-.285-1.342.03-1.459M9.28 11.942c.204.105.38.247.271.913-.045.275-.055.945.186.964-.152.069-.47.135-.594-.041-.133.203-.414.132-.515-.132-.154.115-.35-.097-.343-.274-.133.079-.388-.052-.308-.449-.16.05-.36-.07-.43-.175.234-.037.831-.33.98-.575.15-.245.516-.352.753-.23z" fill="#f7e017" stroke="#000" stroke-width=".03"/> - <path d="M9.143 13.778c.068-.09.107-.48.07-.718m-.586.588a1.1 1.1 0 0 0 .352-.572m-.695.297c.132-.055.464-.451.544-.713m-.852.264c.155-.027.636-.315.843-.632" stroke-width=".03" fill="none" stroke="#000"/> - <path d="M6.45-.327c-.027 1.705.682 2.568 1.663 3.13-.365-.22-.207-.968-.698-1.209.117-.008.3.158.591.092-.141-.316-.374-.799-.915-.865.142-.017.45.033.649-.042C7.457.347 6.709.555 6.45-.327zm-.177-1.621c-.06-.02-.11-.08-.16-.158-.262.056-.364-.11-.385-.223.017.191-.148.184-.225.19.468.388.535.838.431 1.097-.133.333-.598.316-.865.1-.033.707.882.94 1.215.05 0 .15.19.133.24.332.238-.382.059-.931-.25-1.388z" fill="#f7e017" stroke="#000" stroke-width=".03"/> - <path d="M4.814-5.325c-.416-.382-.607-1.022-.59-1.388.016-.366.166-.765.698-.599-.166 0-.05.333-.225.366.142.05.333-.067.358-.141.033.116.25.083.266.216.083-.067-.008-.391-.133-.458.091-.05.141-.307.1-.432-.083.017-.208.133-.233.3.042-.134-.008-.466-.241-.516a.44.44 0 0 0 .008.44c-.216-.05-.532.092-.607.275.017-.22.047-.534.183-.732.046-.066-.067-.183-.154-.025-.162-.316-.594-.482-.786-.324-.192.158-.449-.075-.607.174-.158.25-.693.276-.665.541.017.158-.022.402-.1.49-.191.217.092.375.142.566-.034-.632.973-1.863 1.979-1.38-.092.158-.172.473-.2.856-.041.566.042 1.364.59 1.83l.217-.059z" fill="#337321" stroke="#000" stroke-width=".03"/> - <path d="M5.112-7.304c-.005-.15.254-.344.603-.34.42.004.744.386 1.08.349.336-.037.171.15.1.2-.07.05-.111.124-.087.215.024.091-.018.152-.153.067-.3-.187-.6.075-.994-.07-.343-.127-.54-.196-.549-.42z" fill="#cf142b" stroke="#000" stroke-width=".03"/> - <path d="M3.4-3.379c-.167-.524-.799-1.097-1.107-1.23l-.016-.283c.166-.067.565-.383.748-.557 1.248.598 2.944-.25 3.726-1.131l.3.183-.15.2-.159-.084c-.19.233-.905.905-1.121 1.046.29.074.688.124.797.118.699-.499 1.247-.948 1.514-.981l.224.3-.2.14-.157-.09c-.749.615-1.597 1.962-1.93 2.86-.465-.1-2.129-.033-2.47-.49z" fill="#96877d" stroke="#000" stroke-width=".03"/> - <path d="M3.466-3.562c-.112-.62.066-1.305.382-1.513.69.457 1.871.457 2.57-.042" fill="none" stroke="#000" stroke-width=".03"/> - <path d="M3.466-3.886c.532-.017 1.688.075 1.97.117.283.041.757.158.69.299m-2.414-.504l.153-.153-.153-.153-.153.153.153.153z" fill="none" stroke="#000" stroke-width=".03"/> - <path d="M4.074-7.07c-.192-.267-.719-.351-.832.007-.05.158-.125.325-.25.4-.124.074-.095.301-.041.399.133.24.017.474.274.632 0-.192.283-.391.524-.441.241-.05.607-.266.657-.507.05-.241.133-.441-.332-.49z" fill="#337321" stroke="#000" stroke-width=".03"/> - <path d="M2.874-4.676h.067l.001.455a.117.117 0 0 1 .04.02l.391-.225.034.057-.394.229a.12.12 0 0 1 .002.045l.392.226-.034.058-.394-.227" fill="#96877d" stroke="#000" stroke-width=".03"/> - <path d="M3.468-3.564a.788.788 0 1 1 .068-1.033c-.041.1-.088.322-.092.423" fill="#96877d" stroke="#000" stroke-width=".03"/> - <path d="M2.576-2.813c-.05-.058-.14-.216-.133-.333a.432.432 0 0 1 .283.108c-.008-.083-.041-.266-.025-.349.092.033.283.141.35.266-.017-.083-.05-.3-.017-.432.1.058.266.216.3.324.007-.166.066-.44.116-.507.074.075.19.141.266.24.016-.132.083-.29.183-.332a.963.963 0 0 1 .216.491c.075-.025.175-.15.216-.216a.466.466 0 0 1 .058.324c.092-.083.2-.2.225-.3.066.05.191.175.224.308-.016-.108-.008-.299-.041-.407a.48.48 0 0 1 .25.308c.033-.117.107-.325.174-.375.066.133.133.291.125.424.041-.083.108-.232.174-.266.058.092.05.291.033.4a.806.806 0 0 1 .233-.217.65.65 0 0 1 0 .225c.075-.042.2-.266.241-.383.117.059.233.258.242.358a.91.91 0 0 0 .299-.266c0 .058.025.216-.008.34.05-.05.1-.149.125-.19.033.083.008.282-.026.39a.435.435 0 0 1 .25-.108c.008.142-.092.391-.183.574-.798-.225-2.47-.308-4.15-.4z" fill="#337321" stroke="#000" stroke-width=".03"/> - <path d="M5.36-7.219c-.004-.061.133-.2.378-.198.294.001.565.217.801.202.236-.015.12.06.07.081-.05.02-.079.051-.061.089.018.038-.013.062-.108.027-.21-.077-.419.03-.695-.029-.24-.052-.379-.08-.385-.172z" fill="#f7e017"/> - <g stroke="#000" stroke-width=".125"> - <path d="M2.834-2.314c-.25.3-.499.25-.549.058-.05-.191.134-.283.067-.45-.067-.165.108-.24.191-.165.083.074.35-.167.466.083.116.25.208.424.141.524-.066.1-.266.05-.316-.05zm1.072-.449c-.047-.11.212-.32.345-.17.133.149.34-.163.457.074.117.237.154.362.212.495.059.133-.316.204-.432.087.017.08-.323.141-.416-.083-.05-.12-.104-.258-.166-.403zm1.731.137c-.062-.116.241-.283.4-.07.04-.088.34-.105.361.149.02.254.03.403.037.503.007.1-.182.191-.32-.062-.245.05-.357-.088-.386-.233a1.118 1.118 0 0 0-.092-.287z" stroke-width=".03" fill="#f7e017"/> - <path d="M2.995-2.792c-.037-.083.212-.25.382-.125.171.125.407-.108.508.116.203.454.216.487.154.574-.063.087-.329.054-.395-.066-.013.083-.242.07-.362.004-.137-.075-.233-.354-.287-.503zm1.75.02c-.058-.128.333-.24.503-.016.088-.08.28-.083.387.162.108.245.125.383.046.445-.056.044-.258.079-.324-.033-.092.058-.375.008-.437-.15a4.365 4.365 0 0 0-.175-.408zm1.656.246c-.008-.117.204-.17.283 0 .079.17.332.017.353.3.004.053-.029.261-.108.36-.079.099-.465 0-.49-.211" stroke-width=".03" fill="#337321"/> - <path d="M2.834-2.314c-.091-.125-.216-.325-.374-.108m1.185.129" stroke-width=".03" fill="none"/> - </g> - </g> -</svg> diff --git a/img/flags/1x1/pr.svg b/img/flags/1x1/pr.svg deleted file mode 100644 index 10d4055..0000000 --- a/img/flags/1x1/pr.svg +++ /dev/null @@ -1,13 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" height="512" width="512" viewBox="0 0 512 512"> - <defs> - <clipPath id="a"> - <path fill-opacity=".67" d="M51.624 0h708.66v708.66H51.624z"/> - </clipPath> - </defs> - <g fill-rule="evenodd" clip-path="url(#a)" transform="translate(-37.298) scale(.72249)"> - <path fill="#ed0000" d="M0 0h1063v708.66H0z"/> - <path fill="#fff" d="M0 141.73h1063v141.73H0zM0 425.2h1063v141.73H0z"/> - <path d="M0 0l609.96 353.88L0 707.3V0z" fill="#0050f0"/> - <path d="M268.179 450.475l-65.671-49.041-65.35 49.523 24.305-80.478-65.23-49.695 80.701-.692 25.031-80.234 25.567 80.049 80.701.105-64.895 50.164 24.841 80.3z" fill="#fff"/> - </g> -</svg> diff --git a/img/flags/1x1/ps.svg b/img/flags/1x1/ps.svg deleted file mode 100644 index c712700..0000000 --- a/img/flags/1x1/ps.svg +++ /dev/null @@ -1,15 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" height="512" width="512" viewBox="0 0 512 512"> - <defs> - <clipPath id="a"> - <path fill-opacity=".67" d="M237.11 0h493.5v493.5h-493.5z"/> - </clipPath> - </defs> - <g clip-path="url(#a)" transform="translate(-246) scale(1.0375)"> - <g fill-rule="evenodd" stroke-width="1pt"> - <path d="M0 0h987v164.5H0z"/> - <path fill="#fff" d="M0 164.5h987V329H0z"/> - <path fill="#090" d="M0 329h987v164.5H0z"/> - <path d="M0 493.5l493.5-246.75L0 0v493.5z" fill="red"/> - </g> - </g> -</svg> diff --git a/img/flags/1x1/pt.svg b/img/flags/1x1/pt.svg deleted file mode 100644 index bffbfcd..0000000 --- a/img/flags/1x1/pt.svg +++ /dev/null @@ -1,57 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" height="512" width="512" viewBox="0 0 512 512"> - <path fill="red" d="M204.79 0h307.26v512H204.79z"/> - <path fill="#060" d="M-.05 0h204.84v512H-.05z"/> - <g fill="#ff0" fill-rule="evenodd" stroke="#000" stroke-width=".573" stroke-linecap="round" stroke-linejoin="round"> - <path d="M293.78 326.588c-34.37-1.036-191.988-99.42-193.07-115.086l8.705-14.515c15.634 22.717 176.765 118.397 192.59 115.006l-8.225 14.59" stroke-width=".652"/> - <path d="M107.583 195.015c-3.083 8.3 41.13 35.633 94.326 67.987 53.192 32.35 99.06 52.344 102.46 49.477.207-.37 1.672-2.892 1.537-2.872-.637.96-2.188 1.264-4.608.566-14.373-4.145-51.856-21.35-98.276-49.5-46.42-28.152-86.806-54.094-93.083-65.117-.435-.764-.746-2.158-.683-3.24l-.152-.004-1.337 2.337-.184.366zM294.59 327.043c-.584 1.057-1.67 1.093-3.735.866-12.857-1.424-51.87-20.396-98.033-48.03-53.715-32.154-98.077-61.452-93.264-69.11l1.31-2.314.257.08c-4.327 12.977 87.55 65.512 92.96 68.86 53.16 32.936 97.98 52.17 101.945 47.17l-1.443 2.483v-.004z" stroke-width=".652"/> - <path d="M204.954 220.99c34.403-.27 76.857-4.7 101.29-14.438L300.978 198c-14.442 7.992-57.13 13.248-96.316 14.034-46.35-.426-79.064-4.742-95.456-15.74l-4.97 9.106c30.134 12.75 61.012 15.46 100.717 15.59" stroke-width=".652"/> - <path d="M307.662 206.746c-.84 1.344-16.775 6.84-40.247 10.894-15.915 2.426-36.675 4.5-62.582 4.526-24.614.023-44.72-1.73-59.943-3.792-24.64-3.864-37.357-9.24-42.058-11.14.45-.893.74-1.52 1.172-2.355 13.534 5.388 26.31 8.637 41.278 10.94 15.122 2.048 34.986 3.825 59.478 3.802 25.787-.026 46.318-2.258 62.14-4.612 24.07-3.882 37.22-8.878 39.065-11.2l1.7 2.936h-.002zm-4.62-8.673c-2.61 2.095-15.608 6.705-38.48 10.357-15.262 2.188-34.67 4.146-59.465 4.17-23.556.023-42.802-1.565-57.44-3.697-23.227-3.033-35.59-8.505-40.045-10.1.443-.767.895-1.528 1.358-2.292 3.468 1.747 15.398 6.59 38.942 9.926 14.472 2.052 33.747 3.58 57.187 3.557 24.677-.025 43.863-2.02 59.03-4.197 22.99-3.163 35.36-9.042 37.237-10.514l1.676 2.79zM91.985 262.44c21.16 11.38 68.158 17.117 112.633 17.51 40.494.066 93.25-6.258 112.978-16.713l-.543-11.39c-6.172 9.644-62.707 18.896-112.875 18.517-50.168-.378-96.754-8.127-112.284-18.157l.09 10.23" stroke-width=".652"/> - <path d="M318.675 260.8v2.718c-2.964 3.545-21.555 8.903-44.87 12.677-17.743 2.72-40.876 4.772-69.702 4.772-27.385 0-49.223-1.952-66.16-4.552-26.77-3.9-43.894-10.725-47.33-12.763l.014-3.17c10.325 6.866 38.3 11.888 47.692 13.425 16.825 2.583 38.534 4.52 65.782 4.52 28.69 0 51.694-2.038 69.326-4.74 16.727-2.416 40.555-8.7 45.246-12.884zm.012-9.66v2.716c-2.964 3.543-21.556 8.9-44.87 12.674-17.743 2.72-40.877 4.773-69.702 4.773-27.386 0-49.224-1.95-66.16-4.553-26.77-3.896-43.894-10.723-47.33-12.76l.014-3.17c10.324 6.863 38.297 11.886 47.69 13.42 16.826 2.586 38.535 4.525 65.784 4.525 28.69 0 51.694-2.04 69.326-4.744 16.726-2.415 40.555-8.7 45.246-12.883v.002zm-114.165 73.49c-48.665-.29-90.363-13.265-99.17-15.41l6.422 10.052c15.554 6.543 56.234 16.293 93.215 15.213 36.98-1.078 69.3-3.943 92.077-15.03l6.583-10.418c-15.52 7.31-68.344 15.52-99.128 15.594" stroke-width=".652"/> - <path d="M299.538 317.12a152.554 152.554 0 0 1-2.954 4.358c-10.743 3.788-27.67 7.765-34.813 8.925-14.59 3.007-37.164 5.227-57.2 5.237-43.11-.63-78.398-9.07-95-16.27l-1.34-2.302.22-.346 2.272.88c29.523 10.563 62.68 14.777 94.092 15.534 19.954.07 39.93-2.287 56.083-5.176 24.77-4.963 34.786-8.704 37.86-10.4l.78-.438zm5.708-9.414c.025.03.05.057.075.088a301.968 301.968 0 0 1-2.232 3.712c-5.73 2.048-21.28 6.598-43.985 9.773-14.96 2.037-24.26 4.01-54.02 4.59-55.77-1.42-91.876-12.325-100.454-15.014l-1.272-2.44c32.32 8.438 65.333 14.328 101.726 14.93 27.228-.58 38.812-2.585 53.65-4.608 26.476-4.117 39.816-8.476 43.82-9.735a3.058 3.058 0 0 0-.176-.226l2.87-1.073v.002z" stroke-width=".626"/> - <path d="M305.83 253.45c.158 32.015-16.225 60.743-29.42 73.416-18.67 17.93-43.422 29.464-72.328 29.996-32.28.593-62.715-20.45-70.878-29.695-15.96-18.074-28.955-41.025-29.372-71.957 1.977-34.94 15.694-59.278 35.576-75.968 19.883-16.69 46.357-24.818 68.405-24.237 25.438.67 55.153 13.15 75.686 37.925 13.45 16.23 19.276 33.846 22.33 60.52zM204.356 143.837c61.992 0 112.977 50.446 112.977 112.302 0 61.854-50.985 112.303-112.977 112.303-61.992 0-112.554-50.447-112.554-112.302 0-61.856 50.562-112.302 112.554-112.302" stroke-width=".652"/> - <path d="M204.66 143.45c62.046 0 112.65 50.613 112.65 112.666 0 62.052-50.605 112.663-112.65 112.663-62.05 0-112.654-50.61-112.654-112.664 0-62.053 50.606-112.665 112.653-112.665zM94.484 256.117c0 60.6 49.762 110.185 110.174 110.185 60.41 0 110.173-49.585 110.173-110.184 0-60.6-49.763-110.186-110.174-110.186-60.413 0-110.175 49.588-110.175 110.186z" stroke-width=".652"/> - <path d="M204.75 152.815c56.582 0 103.188 46.445 103.188 103.2 0 56.758-46.607 103.2-103.188 103.2-56.582 0-103.19-46.442-103.19-103.2 0-56.755 46.61-103.2 103.19-103.2zm-100.71 103.2c0 55.393 45.486 100.72 100.71 100.72 55.223 0 100.71-45.327 100.71-100.72 0-55.394-45.486-100.722-100.71-100.722S104.04 200.62 104.04 256.015z" stroke-width=".652"/> - <path d="M209.29 142.996h-9.655l.01 226.372h9.69z" stroke-width=".652"/> - <path d="M208.322 141.706h2.458l.02 228.977h-2.46l-.017-228.977zm-9.58.002h2.475l.004 228.977h-2.478V141.708z" stroke-width=".652"/> - <path d="M317.39 260.477v-8.37l-6.816-6.347-38.684-10.24-55.75-5.69-67.13 3.414-47.787 11.378-9.648 7.145v8.37l24.44-10.964 58.026-9.102h55.752l40.96 4.552 28.445 6.827z" stroke-width=".652"/> - <path d="M204.704 238.672c26.605-.05 52.418 2.52 72.892 6.507 21.127 4.223 35.996 9.506 41.08 15.44l-.006 2.938c-6.13-7.384-26.138-12.798-41.55-15.893-20.318-3.952-45.958-6.504-72.416-6.455-27.92.052-53.916 2.696-73.937 6.603C114.7 251 93.277 257.333 90.6 263.58v-3.06c1.47-4.323 17.424-10.784 39.805-15.265 20.172-3.933 46.217-6.532 74.3-6.583zm.012-9.663c26.604-.05 52.417 2.522 72.89 6.507 21.13 4.225 35.997 9.507 41.08 15.44l-.005 2.94c-6.13-7.384-26.137-12.798-41.548-15.892-20.32-3.954-45.96-6.506-72.416-6.455-27.92.05-53.79 2.696-73.814 6.6-15.503 2.94-37.804 9.524-40.29 15.77v-3.06c1.468-4.278 17.745-10.97 39.804-15.267 20.172-3.933 46.217-6.53 74.3-6.583zm-.546-49.286c41.925-.21 78.495 5.863 95.226 14.433l6.103 10.558c-14.543-7.837-53.996-15.986-101.27-14.768-38.518.237-79.675 4.24-100.324 15.258l7.286-12.185c16.947-8.79 56.914-13.248 92.98-13.294" stroke-width=".652"/> - <path d="M204.727 188.44c23.913-.065 47.02 1.284 65.395 4.6 17.113 3.185 33.433 7.965 35.767 10.536l1.808 3.197c-5.675-3.706-19.798-7.832-37.932-11.27-18.21-3.424-41.302-4.558-65.08-4.495-26.99-.093-47.96 1.332-65.957 4.47-19.034 3.56-32.24 8.65-35.496 11.066l1.773-3.38c6.33-3.23 16.372-7.12 33.25-10.16 18.61-3.4 39.802-4.42 66.472-4.565h-.002zm-.01-9.655c22.884-.06 45.48 1.216 63.092 4.382 13.89 2.704 27.627 6.926 32.658 10.682l2.646 4.204c-4.5-5-21.432-9.74-36.38-12.393-17.477-3.013-39.134-4.206-62.018-4.397-24.016.067-46.21 1.538-63.433 4.674-16.43 3.127-27.034 6.83-31.52 9.72l2.327-3.512c6.19-3.26 16.193-6.253 28.79-8.7 17.35-3.16 39.68-4.592 63.837-4.66zm55.966 124.16c-20.728-3.87-41.494-4.432-55.998-4.26-69.868.818-92.438 14.345-95.192 18.44l-5.222-8.51c17.79-12.894 55.835-20.125 100.793-19.385 23.345.382 43.49 1.932 60.438 5.215l-4.82 8.502" stroke-width=".652"/> - <path d="M204.283 297.483c19.436.29 38.513 1.093 56.927 4.527l-1.334 2.354c-17.102-3.157-35.334-4.365-55.527-4.267-25.786-.2-51.866 2.207-74.572 8.723-7.164 1.994-19.025 6.6-20.234 10.406l-1.327-2.187c.383-2.25 7.55-6.92 20.95-10.685 26.01-7.448 50.335-8.703 75.116-8.874v.004zm.882-9.78c20.137.376 40.932 1.307 61.144 5.31l-1.39 2.45c-18.252-3.622-35.69-4.83-59.636-5.198-25.867.047-53.306 1.89-78.254 9.144-8.055 2.345-21.956 7.418-22.42 11.434l-1.325-2.35c.302-3.648 12.335-8.406 23.162-11.556 25.14-7.31 52.65-9.188 78.72-9.235z" stroke-width=".626"/> - <path d="M304.408 309.908l-8.396 13.026-24.122-21.423-62.578-42.097-70.542-38.684-36.625-12.528 7.805-14.473 2.65-1.446 22.757 5.69 75.093 38.684 43.235 27.306 36.41 26.17 14.79 17.066z" stroke-width=".652"/> - <path d="M100.825 208.543c6.424-4.357 53.634 16.674 103.032 46.46 49.266 29.872 96.343 63.626 92.094 69.943l-1.397 2.198-.64.506c.136-.098.844-.964-.07-3.306-2.1-6.907-35.494-33.554-90.902-67.01-54.015-32.21-99.033-51.622-103.534-46.073l1.42-2.717h-.002zm205.3 101.18c4.063-8.024-39.726-41.01-94.016-73.128-55.54-31.478-95.568-50.006-102.88-44.48l-1.624 2.956c-.014.164.06-.2.403-.466 1.328-1.16 3.532-1.08 4.526-1.1 12.59.19 48.546 16.736 98.994 45.657 22.104 12.875 93.378 58.587 93.106 71.44.02 1.106.092 1.334-.324 1.88l1.813-2.757v-.002z" stroke-width=".652"/> - </g> - <g transform="translate(-68.306 28.444) scale(1.13778)"> - <path d="M180.6 211.01c0 16.27 6.663 30.987 17.457 41.742 10.815 10.778 25.512 17.58 41.81 17.58 16.38 0 31.246-6.654 42.015-17.39 10.77-10.735 17.443-25.552 17.446-41.88h-.002v-79.19l-118.74-.14.012 79.278h.002z" fill="#fff" stroke="#000" stroke-width=".67"/> - <path d="M182.82 211.12v.045c0 15.557 6.44 29.724 16.775 40.01 10.354 10.304 24.614 16.71 40.214 16.71 15.68 0 29.91-6.36 40.22-16.625 10.31-10.265 16.698-24.433 16.7-40.044h-.002V134.39l-113.84-.02-.07 76.75m91.022-53.748l.004 48.89-.04 5.173c0 1.36-.082 2.912-.24 4.233-.926 7.73-4.48 14.467-9.746 19.708-6.164 6.136-14.67 9.942-24.047 9.942-9.326 0-17.638-3.938-23.828-10.1-6.35-6.32-10.03-14.986-10.03-23.947l-.013-54.022 67.94.122v.002z" fill="red" stroke="#000" stroke-width=".507"/> - <g id="e"> - <g id="d" fill="#ff0" stroke="#000" stroke-width=".5"> - <path d="M190.19 154.43c.135-5.52 4.052-6.828 4.08-6.847.03-.02 4.232 1.407 4.218 6.898l-8.298-.05" stroke="none"/> - <path d="M186.81 147.69l-.682 6.345 4.14.01c.04-5.25 3.975-6.124 4.07-6.104.09-.004 3.99 1.16 4.093 6.104h4.152l-.75-6.394-15.022.038v.002zm-.96 6.37h16.946c.357 0 .65.353.65.784 0 .43-.293.78-.65.78H185.85c-.357 0-.65-.35-.65-.78 0-.43.293-.784.65-.784z"/> - <path d="M192.01 154.03c.018-3.313 2.262-4.25 2.274-4.248 0 0 2.342.966 2.36 4.248h-4.634m-5.8-8.98h16.245c.342 0 .623.318.623.705 0 .387-.28.704-.623.704H186.21c-.342 0-.623-.316-.623-.705 0-.387.28-.705.623-.705zm.34 1.42h15.538c.327 0 .595.317.595.704 0 .388-.268.704-.595.704H186.55c-.327 0-.595-.316-.595-.704 0-.387.268-.704.595-.704zm5.02-10.59l1.227.002v.87h.895v-.89l1.257.005v.887h.896v-.89h1.258l-.002 2.01c0 .317-.254.52-.55.52h-4.41c-.296 0-.57-.236-.57-.525l-.004-1.99zm4.62 2.69l.277 6.45-4.303-.015.285-6.452 3.74.017"/> - <path id="a" d="M190.94 141.56l.13 3.478h-4.124l.116-3.478h3.88-.002z"/> - <use height="100%" width="100%" xlink:href="#a" x="10.609"/> - <path id="b" d="M186.3 139.04l1.2.003v.872h.877v-.892l1.23.004v.89h.88v-.894l1.23.002-.003 2.012c0 .314-.25.518-.536.518h-4.317c-.29 0-.558-.235-.558-.525l-.003-1.99z"/> - <use height="100%" width="100%" xlink:href="#b" x="10.609"/> - <path d="M193.9 140.61c-.026-.627.877-.634.866 0v1.536h-.866v-1.536" fill="#000" stroke="none"/> - <path id="c" d="M188.57 142.84c-.003-.606.837-.618.826 0v1.187h-.826v-1.187" fill="#000" stroke="none"/> - <use height="100%" width="100%" xlink:href="#c" x="10.641"/> - </g> - <use height="100%" width="100%" xlink:href="#d" y="46.32"/> - <use height="100%" width="100%" xlink:href="#d" transform="rotate(-45.202 312.766 180.004)"/> - </g> - <use height="100%" width="100%" xlink:href="#d" x="45.714"/> - <use height="100%" width="100%" xlink:href="#e" transform="matrix(-1 0 0 1 479.792 0)"/> - <g id="f" fill="#fff"> - <path d="M232.636 202.406v.005a8.34 8.34 0 0 0 2.212 5.69c1.365 1.467 3.245 2.378 5.302 2.378 2.067 0 3.944-.905 5.303-2.365 1.358-1.46 2.202-3.472 2.202-5.693v-10.768l-14.992-.013-.028 10.765" fill="#039"/> - <circle cx="236.074" cy="195.735" r="1.486"/> - <circle cx="244.392" cy="195.742" r="1.486"/> - <circle cx="240.225" cy="199.735" r="1.486"/> - <circle cx="236.074" cy="203.916" r="1.486"/> - <circle cx="244.383" cy="203.905" r="1.486"/> - </g> - <use height="100%" width="100%" xlink:href="#f" y="-26.016"/> - <use height="100%" width="100%" xlink:href="#f" x="-20.799"/> - <use height="100%" width="100%" xlink:href="#f" x="20.745"/> - <use height="100%" width="100%" xlink:href="#f" y="25.784"/> - </g> -</svg> diff --git a/img/flags/1x1/pw.svg b/img/flags/1x1/pw.svg deleted file mode 100644 index fd8bd35..0000000 --- a/img/flags/1x1/pw.svg +++ /dev/null @@ -1,11 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" height="512" width="512" viewBox="0 0 512 512"> - <defs> - <clipPath id="a"> - <path fill-opacity=".67" d="M61.722 4.181h170.82v170.82H61.722z"/> - </clipPath> - </defs> - <g fill-rule="evenodd" clip-path="url(#a)" transform="translate(-185 -12.531) scale(2.9973)" stroke-width="1pt"> - <path fill="#4aadd6" d="M0 4.18h301.178V175H0z"/> - <path d="M185.863 86.783c0 28.059-23.754 50.805-53.056 50.805-29.302 0-53.055-22.747-53.055-50.805 0-28.06 23.754-50.805 53.055-50.805 29.302 0 53.056 22.746 53.056 50.805z" fill="#ffde00"/> - </g> -</svg> diff --git a/img/flags/1x1/py.svg b/img/flags/1x1/py.svg deleted file mode 100644 index df61d0c..0000000 --- a/img/flags/1x1/py.svg +++ /dev/null @@ -1,157 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" height="512" width="512"> - <path fill="#0038a8" d="M0 341.013h512V512H0z"/> - <path fill="#fff" d="M0 170.667h512v170.667H0z"/> - <path fill="#d52b1e" d="M0 0h512v170.667H0z"/> - <g fill="none" stroke="#000" transform="translate(-208.955) scale(1.55152)"> - <circle cx="300" cy="165" r="42.2" stroke-width="1.076"/> - <circle cx="300" cy="165" r="34.67" stroke-width=".478"/> - <circle cx="300" cy="165" r="26.56" stroke-width=".438"/> - </g> - <path d="M221.638 281.26l-7.59 4.507-2.322-3.91c-.43-.724-.698-1.315-.8-1.772a2.058 2.058 0 0 1 .14-1.337c.197-.435.537-.796 1.02-1.083.422-.25.838-.376 1.25-.378.413 0 .807.098 1.183.3.24.128.502.343.79.644-.074-.334-.102-.593-.085-.776.01-.123.07-.327.176-.612.107-.285.2-.488.277-.608l1.527-2.44 1.575 2.65-1.577 2.63c-.206.338-.317.595-.333.773a1.15 1.15 0 0 0 .165.68l.123.206 3.08-1.83zm-5.914.325l-.587-.99c-.064-.106-.22-.293-.473-.56a.722.722 0 0 0-.464-.238.816.816 0 0 0-.528.114c-.245.146-.387.336-.426.57-.04.232.07.563.323.99l.61 1.03zm-7.149-5.865l-2.308-6.937 1.79-.595 1.443 4.343 1.332-.44-1.34-4.03 1.71-.568 1.338 4.028 1.652-.55-1.486-4.468 1.897-.63 2.35 7.063zm-3.025-10.317l-.516-4.505c-.113-.982.036-1.743.447-2.285.412-.542 1.048-.863 1.91-.96.885-.102 1.608.085 2.167.56.56.475.902 1.26 1.027 2.353l.17 1.483 3.255-.373.31 2.722zm3.427-3.15l-.076-.664c-.06-.524-.192-.88-.397-1.07a.883.883 0 0 0-.734-.238.98.98 0 0 0-.67.355c-.17.205-.226.56-.168 1.068l.088.772zm-3.707-13.42l.292-2.707 5.233.565c.52.057 1 .19 1.444.402.442.21.818.508 1.126.89.308.383.512.772.61 1.166.14.548.17 1.19.09 1.93-.047.427-.127.89-.242 1.388-.114.498-.278.908-.492 1.228-.215.32-.5.603-.858.85a2.798 2.798 0 0 1-1.074.468c-.577.107-1.08.138-1.512.09l-5.234-.563.292-2.707 5.36.577c.478.052.867-.04 1.165-.277.3-.236.473-.59.524-1.06.05-.468-.043-.848-.28-1.142-.236-.293-.598-.467-1.085-.52zm1.18-6.47l1.684-4.82c.28-.804.695-1.352 1.244-1.643a2.047 2.047 0 0 1 1.703-.128c.494.172.863.473 1.108.903.164.287.245.65.243 1.093.355-.548.756-.902 1.205-1.062.45-.16.94-.147 1.47.038.432.15.785.387 1.06.71.275.32.452.69.53 1.11.05.26.027.617-.068 1.073-.127.606-.224 1.004-.29 1.193l-1.554 4.446zm4.176-1.455l.39-1.12c.142-.402.17-.706.087-.91-.083-.207-.256-.356-.517-.447-.243-.084-.46-.07-.65.038-.193.11-.357.36-.493.75l-.397 1.137zm3.274 1.144l.46-1.313c.154-.445.185-.785.09-1.022-.092-.236-.272-.4-.537-.494a.778.778 0 0 0-.688.062c-.213.128-.398.417-.556.868l-.458 1.308zm-3.277-10.302l1.41-2.335 5.697 3.438 2.2-3.645 1.86 1.123-3.61 5.982zm5.337-8.083l1.75-2.1 6.782 5.652-1.75 2.1zm11.87-4.561l2.283-1.01c.315.613.49 1.202.52 1.768a3.293 3.293 0 0 1-.312 1.61c-.238.508-.658 1.02-1.258 1.534-.727.626-1.413 1.03-2.056 1.216-.643.184-1.36.154-2.154-.09-.793-.246-1.547-.784-2.26-1.615-.953-1.11-1.39-2.215-1.313-3.316.077-1.102.655-2.116 1.732-3.042.844-.725 1.653-1.124 2.43-1.198.775-.074 1.583.142 2.425.647l-1.478 1.978c-.24-.15-.435-.24-.586-.275a1.57 1.57 0 0 0-.74 0 1.61 1.61 0 0 0-.67.354c-.47.403-.667.9-.592 1.493.052.442.336.963.85 1.563.64.743 1.19 1.155 1.652 1.237.462.082.897-.052 1.305-.403.395-.34.6-.708.61-1.104.01-.397-.12-.846-.39-1.347zm9.4-3.383l-2.74 1.462.307 1.487-2.46 1.312-1.225-9.35 2.625-1.4 7.08 6.228-2.518 1.343zm-1.402-1.415l-2.354-2.342.638 3.257zm8.338-9.042l3.994-.69c.787-.136 1.442-.14 1.963-.01.522.13.976.368 1.36.713.387.344.696.77.93 1.275.234.506.403 1.055.505 1.648.16.93.18 1.67.056 2.218a3.634 3.634 0 0 1-.66 1.44c-.315.412-.678.713-1.09.902-.562.26-1.082.43-1.56.514l-3.995.69zm3.03 1.506l.82 4.753.66-.113c.56-.097.95-.23 1.165-.394.217-.166.365-.416.446-.75.08-.333.06-.848-.06-1.545-.158-.92-.417-1.526-.777-1.815-.36-.288-.888-.372-1.585-.252zm8.312-3.026l7.304.312-.08 1.883-4.573-.194-.06 1.402 4.24.18-.076 1.8-4.242-.18-.074 1.737 4.705.2-.085 2-7.437-.32zm10.628.837l2.65.65-1.582 6.463 4.135 1.012-.518 2.112-6.785-1.66zm14.164 4.702l3.905 2.307c.85.503 1.367 1.08 1.552 1.736.184.655.056 1.355-.386 2.102-.452.767-1.037 1.23-1.754 1.39-.717.16-1.55-.042-2.496-.6l-1.286-.76-1.667 2.82-2.358-1.396zm.445 4.634l.575.34c.453.267.817.376 1.093.327a.883.883 0 0 0 .632-.44.98.98 0 0 0 .12-.75c-.06-.26-.31-.518-.75-.778l-.668-.396zm7.655 10.291l-2.275-2.116-1.306.776-2.043-1.9 8.443-4.204 2.178 2.026-3.582 8.725-2.09-1.944zm.88-1.787l1.448-2.99-2.87 1.665zm1.06 5.867l7.28-4.994 2.572 3.75c.477.694.782 1.266.915 1.715.133.45.115.9-.053 1.345-.17.447-.485.83-.948 1.147-.404.277-.81.43-1.222.46a2.45 2.45 0 0 1-1.2-.222c-.248-.113-.524-.31-.83-.592.095.33.14.586.134.77-.003.123-.048.33-.135.622-.088.29-.166.5-.236.626l-1.364 2.535-1.745-2.54 1.4-2.73c.184-.35.278-.614.282-.792 0-.24-.068-.462-.21-.667l-.135-.197-2.955 2.027zm5.88-.71l.65.947c.07.103.24.28.51.528a.722.722 0 0 0 .478.208c.187.01.36-.04.52-.148.234-.16.363-.36.387-.594.024-.235-.106-.558-.387-.968l-.678-.988zm2.73 13.216l-1.15-2.886-1.513.143-1.034-2.59 9.43-.19 1.103 2.763-6.97 6.354-1.058-2.65zm1.562-1.24l2.586-2.08-3.307.274zm2.302 9.649l1.816-.272.624 4.17-3.722.556c-.664-.717-1.14-1.368-1.428-1.952-.288-.584-.495-1.297-.62-2.14-.156-1.035-.106-1.906.15-2.612.255-.706.706-1.29 1.35-1.755.646-.463 1.42-.763 2.326-.898.953-.143 1.812-.07 2.575.218a3.86 3.86 0 0 1 1.864 1.487c.37.55.63 1.324.78 2.325.143.965.164 1.7.06 2.204a2.843 2.843 0 0 1-.634 1.313c-.32.37-.75.676-1.29.92l-.854-2.534c.314-.156.54-.376.675-.658.136-.282.175-.622.115-1.02-.088-.59-.364-1.03-.828-1.32-.463-.29-1.14-.37-2.03-.236-.944.14-1.593.42-1.944.836-.352.416-.48.94-.386 1.577.046.3.132.583.26.844.13.26.325.55.588.873l.822-.123zm5.772 12.815l-.242 2.712-5.243-.467a4.437 4.437 0 0 1-1.45-.375 3.194 3.194 0 0 1-1.143-.87c-.316-.376-.526-.76-.632-1.153-.15-.545-.19-1.188-.125-1.928.04-.43.11-.893.215-1.393s.262-.913.47-1.237a3.19 3.19 0 0 1 .842-.865 2.798 2.798 0 0 1 1.065-.49c.575-.117 1.08-.157 1.51-.118l5.243.467-.242 2.71-5.368-.477c-.48-.043-.867.057-1.16.3-.294.24-.462.597-.504 1.07-.04.467.06.846.302 1.135.242.29.607.457 1.095.5zm-9.76 9.34l.97-2.95-1.25-.862.87-2.65 7.35 5.91-.928 2.827-9.423.394.892-2.712zm1.993.054l3.318.064-2.712-1.912zm3.159 7.176l-1.558 2.6-3.473-.004 1.64 3.06-1.547 2.584-2.637-5.582-3.17-1.9 1.404-2.346 3.172 1.9z"/> - <g fill="#009b3a" stroke="#000" stroke-width=".155"> - <path d="M265.158 225.436s24.905 10.73 20.557 32.903c-4.35 22.172-18.215 22.023-23.652 24.474-5.437 2.45-9.188 5.957-11.333 5.467-2.145-.49-4.98-2.145-4.98-2.145s-.228 3.64 4.14 4.304c4.366.662 10.106-5.748 12.864-6.46 2.757-.713 19.685-2.55 23.805-25.112 4.806-24.083-21.246-32.725-21.4-33.432z"/> - <path d="M277.726 230.152a3.42.81 75.104 0 1-1.64.126 3.42.81 75.104 1 1 1.64-.126z"/> - <path d="M276.872 230.385a3.523.786 63.335 1 1-1.485.543 3.523.786 63.335 0 1 1.485-.543zm-2.497 1.645a3.336.83 17.053 0 1-.156 1.685 3.336.83 17.053 0 1 .155-1.685z"/> - <path d="M274.747 231.114a3.508.79 34.225 1 1-.716 1.42 3.508.79 34.225 1 1 .717-1.42z"/> - <path d="M275.802 230.68a3.567.776 46.194 1 1-1.084 1.11 3.567.776 46.194 0 1 1.084-1.11z"/> - <path d="M277.54 233.814c.014.016-.96.542-1.182.62-.22.08-.52-.294-1.155.032-.635.326-1.07.92-1.21 1.27-.138.348.18.494.948.12.768-.372.97-.963 1.34-1.194.37-.232.99-.573 1.344-.698.153-.334.65-1.05.907-1.46.257-.412 1.265-1.09 1.632-1.88.32-.653.2-1.21-.23-.976-.427.232-.98.888-1.24 1.36-.257.47-.036 1.07-.322 1.512-.226.32-.772 1.293-.83 1.294zm7.71 2.546a1.15 5.128-1.585 1 1-2.313-.555 1.15 5.128-1.585 1 1 2.314.554z"/> - <path d="M283.963 236.312a5.34 1.105 77.49 1 1-2.237.112 5.34 1.105 77.49 1 1 2.237-.112z"/> - <path d="M279.975 237.553a4.976 1.186 34.91 1 1-.773 2.345 4.976 1.186 34.91 1 1 .773-2.345z"/> - <path d="M280.782 236.42a5.32 1.11 50.904 0 1-1.462 1.714 5.32 1.11 50.904 1 1 1.462-1.713z"/> - <path d="M282.396 236.265a5.436 1.085 61.837 1 1-1.87 1.107 5.436 1.085 61.837 1 1 1.87-1.107z"/> - <path d="M283.76 241.525c.017.028-1.51.346-1.84.36-.332.014-.623-.654-1.61-.472-.988.183-1.788.84-2.096 1.277-.307.437.085.79 1.272.598 1.186-.19 1.66-.947 2.25-1.113.59-.166 1.562-.376 2.093-.398.32-.41 1.246-1.213 1.738-1.686.492-.473 2.11-.993 2.88-1.96.66-.79.678-1.642.008-1.5-.67.14-1.655.833-2.168 1.392-.513.56-.405 1.518-.948 2.022-.42.357-1.497 1.506-1.578 1.48zm5.54 5.167a1.146 5.15 8.74 1 1-2.16-.992 1.146 5.15 8.74 1 1 2.16.992z"/> - <path d="M288.074 246.38a1.097 5.376-2.05 1 1-2.206-.317 1.097 5.376-2.05 1 1 2.206.318z"/> - <path d="M283.947 246.847a5 1.18 46.026 1 1-1.18 2.167 5 1.18 46.026 1 1 1.18-2.167z"/> - <path d="M284.94 245.885a5.36 1.1 61.79 1 1-1.738 1.412 5.36 1.1 61.79 1 1 1.738-1.412z"/> - <path d="M286.523 246.04a5.478 1.077 72.543 1 1-2.027.734 5.478 1.077 72.543 1 1 2.027-.734z"/> - <path d="M286.926 251.486c.01.03-1.538.05-1.865 0-.326-.05-.49-.765-1.487-.774-.998-.01-1.9.485-2.28.858-.378.373-.058.796 1.136.836 1.193.04 1.794-.616 2.4-.667.606-.052 1.594-.073 2.117.007.39-.343 1.438-.96 2.004-1.332.567-.373 2.244-.576 3.17-1.382.788-.656.958-1.492.278-1.482-.68.012-1.768.506-2.37.96-.603.454-.67 1.42-1.292 1.815-.474.272-1.735 1.2-1.81 1.16m2.683 6.719a1.145 5.152 31.31 0 1-1.57-1.813 1.145 5.152 31.31 0 1 1.57 1.814"/> - <path d="M288.602 257.413a1.09 5.41 20.618 0 1-1.874-1.208 1.09 5.41 20.618 0 1 1.874 1.208m-3.91-1.273a5.082 1.16 69.934 0 1-1.91 1.522 5.082 1.16 69.934 0 1 1.91-1.522"/> - <path d="M285.964 255.66a1.083 5.448-4.863 0 1-2.122.59 1.083 5.448-4.863 1 1 2.122-.59"/> - <path d="M287.345 256.466a1.063 5.552 5.55 1 1-2.12-.158 1.063 5.552 5.55 1 1 2.12.158"/> - <path d="M285.592 261.68c-.003.03-1.413-.59-1.69-.77-.275-.182-.146-.913-1.046-1.334-.9-.422-1.907-.336-2.395-.147-.488.188-.362.713.704 1.243 1.065.53 1.864.17 2.432.375.568.203 1.47.592 1.913.883.484-.156 1.673-.293 2.33-.405.657-.112 2.254.393 3.406.028.968-.283 1.447-.988.827-1.26-.62-.27-1.797-.262-2.52-.09-.72.172-1.157 1.04-1.872 1.15-.534.055-2.036.395-2.088.326m.914 8.208a1.34 5.868 48.457 1 1-1.134-2.57 1.34 5.868 48.457 1 1 1.134 2.57"/> - <path d="M285.654 268.66a1.274 6.178 37.466 1 1-1.665-2.01 1.274 6.178 37.466 1 1 1.664 2.01"/> - <path d="M281.775 265.837a1.332 5.91-3.478 1 1-2.6.99 1.332 5.91-3.478 1 1 2.6-.99"/> - <path d="M283.327 265.76a1.25 6.29 11.633 0 1-2.53-.116 1.25 6.29 11.633 1 1 2.53.116"/> - <path d="M284.584 267.14a1.234 6.377 22.12 1 1-2.282-.94 1.234 6.377 22.12 1 1 2.282.94"/> - <path d="M280.937 272.276c-.014.034-1.36-1.16-1.606-1.46-.243-.3.14-1.06-.713-1.852-.852-.79-1.99-1.06-2.59-1.027-.598.032-.632.656.366 1.627 1 .97 1.996.863 2.555 1.293.558.43 1.424 1.186 1.815 1.667.586 0 1.94.28 2.7.395.76.113 2.352 1.248 3.74 1.262 1.158.038 1.917-.567 1.323-1.09-.593-.525-1.89-.94-2.742-1.012-.85-.072-1.617.73-2.44.59-.607-.13-2.372-.3-2.407-.394m-2.452 7.835a1.5 6.47 79.752 1 1 .31-3.098 1.5 6.47 79.752 1 1-.31 3.1"/> - <path d="M278.362 278.45a1.432 6.78 68.504 0 1-.51-2.874 1.432 6.78 68.504 0 1 .51 2.875"/> - <path d="M276.143 273.517a1.496 6.49 26.238 0 1-3.05-.563 1.496 6.49 26.238 1 1 3.05.563"/> - <path d="M277.695 274.355a1.412 6.88 41.823 0 1-2.38-1.573 1.412 6.88 41.823 0 1 2.38 1.573"/> - <path d="M278.145 276.403a1.392 6.974 52.67 1 1-1.69-2.214 1.392 6.974 52.67 0 1 1.69 2.213"/> - <path d="M271.815 279.165c-.033.024-.68-1.89-.753-2.318-.072-.427.713-.93.322-2.174-.39-1.244-1.34-2.158-1.937-2.474-.596-.318-.97.257-.537 1.757.434 1.5 1.455 1.976 1.76 2.708.304.73.726 1.952.84 2.635.566.34 1.72 1.39 2.39 1.937.673.548 1.59 2.55 2.92 3.364 1.097.707 2.16.57 1.874-.27-.286-.842-1.312-1.988-2.094-2.548-.782-.56-1.96-.24-2.678-.85-.514-.476-2.125-1.657-2.107-1.767"/> - <path d="M267.982 285.852a1.88 6.546 89.068 0 1 .01-3.762 1.88 6.546 89.068 0 1-.01 3.762"/> - <path d="M267.113 279.972a1.817 6.774 37.587 0 1-2.79-2.334 1.817 6.774 37.587 1 1 2.79 2.334"/> - <path d="M268.03 282.966a1.858 6.627 66.472 0 1-1.33-3.473 1.858 6.627 66.472 0 1 1.33 3.473m1.783-56.972a4.066.827 41.126 0 1-1.544.84 4.066.827 41.126 1 1 1.543-.84m-2 1.692a4.118.816 8.163 0 1 .313 1.69 4.118.816 8.163 1 1-.313-1.69"/> - <path d="M268.618 226.615a4.307.78 26.817 1 1-.816 1.336 4.307.78 26.817 0 1 .816-1.335m-29.51 52.859s5.486 1.177 10.256 2.91c4.77 1.734 12.015 7.683 13.963 8.02 2.184.1 5.214-.646 6.364-3.8-3.364.897-5.38 2.26-8.593.495-1.135-.43-4.85-3.813-8.924-5.624-4.074-1.81-12.29-3.875-12.29-3.875l-.774 1.875m5.848-49.603c-.02-.047 6.315-3.332 6.315-3.332l-6.964 1.782-.81 1.225 1.458.326"/> - <path d="M250.947 231.41c-2.445-.445-6.205-1.267-8.6-1.46 1.656-1.832 3.936-4.93 5.34-6.834-.927 1.815-2.384 4.208-2.958 5.945 1.684.91 4.333 1.622 6.217 2.35"/> - <path d="M243.825 230.26c-.027-.042 5.612-4.344 5.612-4.344l-6.518 2.916-.58 1.347 1.485.08"/> - <path d="M249.814 231.347c-2.462-.468-6.25-1.33-8.657-1.538 1.626-1.89 3.855-5.083 5.23-7.044-.898 1.872-2.314 4.34-2.858 6.132 1.708.946 4.38 1.692 6.284 2.45"/> - <path d="M242.894 230.618c-.015-.048 6.608-2.768 6.608-2.768l-7.116 1.17-.918 1.15 1.426.448"/> - <path d="M249.07 231.41c-2.49-.208-6.34-.673-8.744-.62 1.386-2.097 3.215-5.587 4.344-7.73-.667 2-1.778 4.663-2.105 6.544 1.8.776 4.532 1.242 6.504 1.805"/> - <path d="M242.212 230.65c-.037-.038 4.476-5.456 4.476-5.456l-5.672 4.242-.264 1.446 1.46-.233"/> - <path d="M249.038 231.766c-2.668-.05-6.806-.286-9.357-.06 1.264-2.385 2.857-6.323 3.84-8.742-.507 2.23-1.42 5.215-1.578 7.29 1.993.72 4.943 1.037 7.096 1.512"/> - <path d="M241.312 231.937c-.035-.048 5.436-5.216 5.436-5.216l-6.578 3.64-.45 1.56 1.59.017"/> - <path d="M247.844 231.937c-2.868.01-7.283-.145-10.08.168 1.856-2.66 4.39-7.037 5.952-9.726-1.01 2.468-2.612 5.778-3.213 8.07 2 .742 5.116 1.018 7.34 1.487"/> - <path d="M239.48 232.325c-.026-.052 6.945-5.882 6.945-5.882l-7.85 4.174-.808 1.728 1.714-.02"/> - <path d="M246.804 232.107c-2.84.41-7.236.872-9.963 1.567 1.46-2.85 3.343-7.47 4.505-10.31-.646 2.548-1.76 5.998-2.027 8.315 2.088.445 5.215.28 7.486.427"/> - <path d="M238.55 233.488c-.04-.04 5.35-7.41 5.35-7.41l-6.677 6.037-.358 1.85 1.685-.477"/> - <path d="M245.237 232.992c-2.86.266-7.277.507-10.04 1.064 1.617-2.773 3.758-7.292 5.08-10.067-.79 2.51-2.096 5.898-2.493 8.198 2.06.55 5.193.542 7.453.804"/> - <path d="M237.588 234.264c-.028-.052 6.81-5.894 6.81-5.894l-7.727 4.165-.78 1.74 1.698-.012"/> - <path d="M244.4 233.287c-2.85.6-7.273 1.362-9.996 2.237 1.332-2.91 3.006-7.597 4.04-10.475-.527 2.555-1.48 6.032-1.635 8.335 2.133.294 5.285-.086 7.59-.098"/> - <path d="M236.455 234.574c-.046-.033 4.352-8.08 4.352-8.08l-5.89 6.987-.097 1.847 1.635-.753"/> - <path d="M244.4 233.752c-3.06.795-7.824 1.84-10.71 2.934 1.11-3.31 2.376-8.616 3.16-11.876-.265 2.878-.89 6.804-.778 9.383 2.38.235 5.798-.327 8.327-.44"/> - <path d="M235.602 236.436c-.046-.047 5.482-8.096 5.482-8.096l-7.01 6.544-.295 2.042 1.822-.49"/> - <path d="M243.19 234.667c-3.007.95-7.7 2.24-10.52 3.476.948-3.33 1.962-8.642 2.59-11.905-.13 2.858-.568 6.77-.337 9.313 2.38.106 5.754-.634 8.266-.883"/> - <path d="M234.5 237.63c-.053-.037 4.167-8.937 4.167-8.937l-5.924 7.698.027 2.056 1.73-.815"/> - <path d="M242.04 235.893c-3.078.702-7.87 1.602-10.788 2.604 1.246-3.242 2.737-8.453 3.66-11.655-.39 2.838-1.18 6.703-1.182 9.256 2.36.3 5.787-.162 8.31-.205"/> - <path d="M233.507 238.484c-.036-.055 6.81-6.994 6.81-6.994l-8.027 5.18-.654 1.963 1.872-.15"/> - <path d="M240.675 237.103c-3.05.41-7.783.85-10.696 1.583 1.415-3.176 3.192-8.333 4.29-11.5-.556 2.85-1.565 6.705-1.723 9.303 2.286.537 5.66.407 8.128.613"/> - <path d="M232.158 237.786c-.05-.042 4.632-8.752 4.632-8.752l-6.283 7.364-.098 2.086 1.748-.698"/> - <path d="M241.048 236.064c-3.317 1.358-8.5 3.25-11.607 4.926 1.02-3.938 2.094-10.177 2.76-14.01-.12 3.32-.568 7.89-.29 10.815 2.634-.083 6.36-1.228 9.138-1.73"/> - <path d="M231.522 240.44c-.054-.048 5.544-10.044 5.544-10.044l-7.32 8.498-.2 2.373 1.975-.828"/> - <path d="M239.776 237.305c-3.25 1.528-8.34 3.69-11.367 5.516.84-3.937 1.636-10.144 2.13-13.96.03 3.28-.215 7.807.192 10.673 2.625-.232 6.294-1.574 9.044-2.228"/> - <path d="M230.39 241.96c-.062-.035 4.045-10.81 4.045-10.81l-6.055 9.654.153 2.34 1.856-1.184"/> - <path d="M238.348 238.205c-3.243 1.553-8.32 3.755-11.338 5.606.817-3.94 1.573-10.15 2.043-13.968.05 3.277-.166 7.803.26 10.663 2.625-.253 6.288-1.624 9.035-2.3"/> - <path d="M229.474 243.247c-.05-.052 6.26-9.53 6.26-9.53l-7.893 7.8-.384 2.364 2.017-.633"/> - <path d="M238.053 237.708c-2.89 2.31-7.465 5.702-10.073 8.238-.004-3.98-.537-10.112-.86-13.884.727 3.123 1.447 7.51 2.46 10.137 2.547-.908 5.892-3.148 8.473-4.49"/> - <path d="M229.784 243.697c-.07-.01.725-11.42.725-11.42l-3.017 11.103.842 2.092 1.45-1.775"/> - <path d="M237.23 238.763c-2.9 2.294-7.485 5.663-10.102 8.186.012-3.982-.495-10.12-.8-13.894.71 3.128 1.413 7.52 2.414 10.154 2.55-.894 5.903-3.117 8.49-4.447"/> - <path d="M229.055 245.637c-.065-.028 2.917-11.16 2.917-11.16l-5.048 10.263.398 2.29 1.733-1.393"/> - <path d="M236.905 239.027c-2.74 2.7-7.103 6.705-9.525 9.606-.43-4.083-1.636-10.315-2.372-14.15 1.084 3.123 2.296 7.54 3.623 10.123 2.536-1.224 5.752-3.905 8.275-5.58"/> - <path d="M229.07 247.064c-.072-.01.546-11.87.546-11.87l-2.915 11.533.906 2.177 1.464-1.84"/> - <path d="M236.036 240.998c-2.932 2.424-7.577 5.992-10.212 8.65-.092-4.135-.777-10.503-1.19-14.418.816 3.238 1.655 7.788 2.758 10.51 2.608-.965 6.01-3.323 8.645-4.742"/> - <path d="M228.2 248.414c-.06-.04 4.133-11.164 4.133-11.164l-6.196 9.89.162 2.452 1.9-1.178"/> - <path d="M235.99 241.044c-2.596 2.746-6.728 6.82-9.022 9.77-.41-4.14-1.558-10.457-2.258-14.34 1.03 3.16 2.182 7.637 3.44 10.25 2.403-1.247 5.45-3.975 7.84-5.68"/> - <path d="M228.356 248.988c-.072 0-.488-11.802-.488-11.802l-1.912 11.754 1.096 2.044 1.305-1.996"/> - <path d="M234.718 241.93c-2.512 2.77-6.52 6.882-8.723 9.853-.532-4.14-1.864-10.454-2.677-14.337 1.12 3.157 2.404 7.63 3.738 10.235 2.362-1.268 5.325-4.025 7.662-5.75"/> - <path d="M227.69 250.167c-.067-.02 1.317-11.99 1.317-11.99l-3.515 11.34.7 2.33 1.497-1.68"/> - <path d="M234.175 242.394c-2.296 3-5.983 7.48-7.958 10.65-.844-4.065-2.653-10.215-3.76-13.998 1.36 3.03 2.98 7.354 4.51 9.816 2.26-1.493 5.007-4.523 7.208-6.468"/> - <path d="M227.643 251.284c-.07-.003-.76-12.004-.76-12.004l-1.512 11.91 1.09 2.097 1.183-2.003"/> - <path d="M233.942 243.077c-2.155 3.14-5.633 7.847-7.457 11.142-1.054-4.05-3.182-10.15-4.485-13.9 1.518 2.98 3.364 7.248 5.026 9.647 2.196-1.62 4.803-4.816 6.916-6.89"/> - <path d="M228.387 252.4c-.067-.02 1.222-12.057 1.222-12.057l-3.438 11.334.725 2.373 1.49-1.65"/> - <path d="M233.507 244.194c-1.857 3.422-4.888 8.585-6.402 12.115-1.412-3.88-4.075-9.648-5.706-13.197 1.774 2.753 3.992 6.74 5.86 8.893 2.034-1.917 4.335-5.456 6.247-7.812"/> - <path d="M227.97 253.394c-.07.02-3.37-11.435-3.37-11.435l1.138 12.052 1.518 1.7.712-2.318"/> - <path d="M233.43 245.528c-1.936 3.412-5.09 8.56-6.674 12.078-1.42-3.868-4.11-9.617-5.76-13.155 1.803 2.745 4.05 6.72 5.952 8.867 2.106-1.91 4.5-5.44 6.482-7.79"/> - <path d="M228.124 255.55c-.072 0-1.238-12.023-1.238-12.023l-1.113 12.025 1.203 2.06 1.148-2.06"/> - <path d="M233.632 246.583c-1.99 3.367-5.227 8.44-6.868 11.92-1.357-3.9-3.954-9.713-5.545-13.29 1.757 2.786 3.94 6.813 5.805 9.006 2.137-1.863 4.586-5.335 6.607-7.637"/> - <path d="M228.015 256.513c-.07.008-2.23-11.808-2.23-11.808l-.11 12.093 1.37 1.904.97-2.19"/> - <path d="M232.778 248.29c-2.147 3.224-5.62 8.065-7.422 11.428-1.168-3.99-3.483-9.974-4.9-13.656 1.62 2.905 3.607 7.077 5.365 9.395 2.222-1.71 4.832-5.008 6.958-7.167"/> - <path d="M226.976 257.832c-.07-.02.998-12.07.998-12.07l-3.29 11.445.796 2.332 1.496-1.708"/> - <path d="M232.902 248.585c-1.835 3.49-4.838 8.767-6.318 12.35-1.532-3.804-4.39-9.435-6.14-12.9 1.88 2.665 4.243 6.542 6.206 8.607 2.05-2 4.338-5.627 6.252-8.057"/> - <path d="M226.572 258.84c-.07.022-3.704-11.248-3.704-11.248l1.426 11.96 1.596 1.63.682-2.342"/> - <path d="M232.406 249.484c-1.282 3.832-3.444 9.673-4.363 13.517-2.08-3.403-5.74-8.31-7.984-11.332 2.252 2.207 5.16 5.5 7.403 7.1 1.717-2.413 3.424-6.477 4.943-9.284"/> - <path d="M229.86 259.755c-.067.025-4.01-11.093-4.01-11.093l1.753 11.897 1.64 1.562.618-2.367"/> - <path d="M232.375 250.664c-1.254 3.844-3.374 9.707-4.265 13.56-2.105-3.38-5.8-8.25-8.066-11.248 2.27 2.184 5.2 5.445 7.455 7.022 1.7-2.43 3.377-6.512 4.875-9.334"/> - <path d="M229.892 261.648c-.065.035-5.16-10.374-5.16-10.374l3.005 11.52 1.794 1.295.363-2.442"/> - <path d="M231.987 251.626c-.802 3.99-2.23 10.107-2.67 14.055-2.478-3.05-6.704-7.347-9.297-9.994 2.502 1.84 5.786 4.652 8.204 5.892 1.406-2.652 2.602-6.94 3.763-9.952"/> - <path d="M230.234 263.277c-.07.014-2.783-11.633-2.783-11.633l.46 12.078 1.457 1.807.867-2.252"/> - <path d="M232.002 252.867c-.424 4.08-1.273 10.36-1.342 14.35-2.74-2.703-7.333-6.412-10.152-8.697 2.654 1.494 6.173 3.85 8.687 4.76 1.148-2.83 1.935-7.258 2.808-10.413"/> - <path d="M230.373 264.13c-.055.054-7.355-8.398-7.355-8.398l5.543 10.172 2.026.692-.213-2.465"/> - <path d="M232.158 254.294c-.44 4.078-1.314 10.353-1.4 14.342-2.73-2.72-7.308-6.453-10.118-8.755 2.648 1.51 6.158 3.888 8.67 4.81 1.16-2.822 1.963-7.246 2.848-10.396"/> - <path d="M231.196 266.07c-.064.038-5.65-10.124-5.65-10.124l3.55 11.364 1.853 1.213.246-2.453"/> - <path d="M232.483 255.97c-.268 4.102-.877 10.427-.795 14.42-2.84-2.553-7.564-6.008-10.465-8.138 2.706 1.348 6.31 3.51 8.853 4.28 1.04-2.89 1.657-7.36 2.407-10.562"/> - <path d="M231.91 267.932c-.058.05-6.98-8.85-6.98-8.85l5.09 10.504 1.993.82-.104-2.474"/> - <path d="M232.56 257.863c-.243 4.105-.814 10.435-.708 14.427-2.854-2.527-7.6-5.94-10.512-8.046 2.714 1.324 6.33 3.456 8.877 4.204 1.022-2.9 1.613-7.377 2.344-10.585"/> - <path d="M232.546 269.437c-.067.03-4.894-10.67-4.894-10.67l2.708 11.68 1.76 1.404.426-2.413"/> - <path d="M232.747 259.088c.14 4.12.163 10.497.64 14.456-3.068-2.13-8.092-4.89-11.18-6.593 2.817.954 6.602 2.59 9.2 2.99.743-3.025.913-7.56 1.34-10.852"/> - <path d="M233.4 269.018c-.042.068-8.94-6.12-8.94-6.12l7.578 8.35 2.106.11-.745-2.34"/> - <path d="M233.027 259.523c.355 4.1.71 10.456 1.395 14.383-3.182-2.008-8.358-4.568-11.537-6.148 2.87.843 6.744 2.33 9.367 2.632.586-3.044.52-7.57.775-10.867"/> - <path d="M234.36 271.3c-.054.05-7.447-8.563-7.447-8.563l5.64 10.28 2.04.743-.232-2.46"/> - <path d="M233.678 261.09c.528 4.083 1.15 10.424 1.998 14.314-3.255-1.818-8.52-4.07-11.755-5.46 2.895.67 6.82 1.927 9.445 2.07.456-3.08.198-7.608.313-10.924"/> - <path d="M235.85 272.742c-.042.067-8.87-6.27-8.87-6.27l7.482 8.475 2.106.145-.718-2.35"/> - <path d="M233.957 262.827c.795 4.036 1.835 10.32 2.935 14.133-3.354-1.51-8.733-3.265-12.038-4.35 2.92.398 6.9 1.282 9.518 1.177.248-3.126-.31-7.63-.415-10.96"/> - <path d="M236.828 273.983c-.056.05-7.337-8.698-7.337-8.698l5.507 10.38 2.03.782-.2-2.464"/> - <path d="M234.438 263.945c1.165 3.924 2.782 10.063 4.227 13.723-3.457-1.06-8.94-2.092-12.308-2.734 2.923.006 6.94.357 9.52-.097-.05-3.157-1.022-7.58-1.44-10.892"/> - <path d="M237.216 273.998c-.016.08-10.25-2.195-10.25-2.195l9.747 4.846 1.97-.742-1.467-1.91"/> - <path d="M235.106 265.17c1.15 3.93 2.742 10.077 4.173 13.745-3.455-1.08-8.934-2.143-12.3-2.803 2.922.023 6.94.396 9.52-.044-.035-3.156-.99-7.585-1.394-10.898"/> - <path d="M238.89 275.084c-.03.073-9.806-4.736-9.806-4.736l8.796 7.13 2.108-.197-1.097-2.195"/> - <path d="M234.594 265.853c1.947 3.58 4.795 9.23 6.962 12.49-3.593-.274-9.156-.074-12.576.042 2.854-.64 6.847-1.183 9.27-2.196-.7-3.078-2.565-7.19-3.656-10.337"/> - <path d="M240.443 276.155c-.02.08-10.19-2.814-10.19-2.814l9.563 5.416 2.01-.614-1.383-1.987"/> - <path d="M235.65 267.373c1.967 3.568 4.848 9.195 7.034 12.44-3.592-.243-9.15.004-12.566.15 2.848-.665 6.835-1.243 9.248-2.277-.718-3.073-2.607-7.173-3.717-10.312"/> - <path d="M241.73 276.993c-.036.068-9.496-5.68-9.496-5.68l8.297 7.94 2.135.02-.934-2.28"/> - <path d="M236.44 268.273c2.28 3.33 5.656 8.61 8.118 11.59-3.552.222-8.986 1.195-12.328 1.786 2.732-1.04 6.593-2.14 8.862-3.494-1.004-2.996-3.257-6.87-4.652-9.883"/> - <path d="M242.43 277.83c-.004.084-10.252-.24-10.252-.24l10.14 2.996 1.805-1.12-1.694-1.635m5.941-49.664c.002-.032 7.376-1.23 7.376-1.23l-7.337.17-1.28.658 1.24.402"/> - <path d="M252.42 229.734c-2.14-.647-5.373-1.73-7.57-2.207 2.335-.928 5.79-2.574 7.915-3.583-1.635 1.024-4.013 2.34-5.28 3.365 1.224.83 3.446 1.68 4.936 2.424"/> - <path d="M248.045 228.415c-.008-.03 7.135-1.96 7.135-1.96l-7.392.942-1.114.765 1.37.253"/> - <path d="M252.762 230.26c-2.5-.234-6.335-.714-8.802-.74 1.86-1.644 4.465-4.398 6.07-6.09-1.104 1.59-2.8 3.698-3.532 5.2 1.676.674 4.367 1.124 6.264 1.63"/> - <path d="M245.392 228.927c.006-.033 7.416-.838 7.416-.838l-7.226-.232-1.35.594 1.16.475"/> - <path d="M250.884 230.54c-2.273-.434-5.727-1.192-8.027-1.46 2.185-1.074 5.37-2.92 7.33-4.052-1.464 1.106-3.623 2.55-4.716 3.626 1.386.686 3.78 1.305 5.414 1.886"/> - <path d="M244.756 228.85c-.02-.03 6.527-2.81 6.527-2.81l-7.15 1.887-.856.87 1.48.052"/> - <path d="M250.667 231.363c-1.892-.782-4.79-2.105-6.662-2.656 1.45-1.348 3.492-3.71 4.75-5.16-.875 1.447-2.212 3.32-2.803 4.757 1.256 1.07 3.288 2.12 4.715 3.06"/> - <path d="M245.128 229.33c-.014-.044 5.08-2.2 5.08-2.2l-5.532.757-.68.986 1.132.457m-4.251 47.554c.005.082-10.524.08-10.524.08l10.657 2.605 1.748-1.147-1.88-1.54"/> - <path d="M242.77 277.567c-.012.077-10.69-2.486-10.69-2.486l10.266 5.033 2.01-.648-1.586-1.898"/> - <path d="M244.523 278.28c0 .08-10.612-.534-10.612-.534l10.613 3.198 1.82-1.03-1.82-1.633"/> - <path d="M237.79 270.787c2.76 3.042 6.896 7.89 9.793 10.574-3.564.54-8.932 1.98-12.235 2.86 2.625-1.26 6.382-2.684 8.495-4.21-1.423-2.833-4.23-6.41-6.053-9.223"/> - <path d="M245.982 278.824c-.02.074-10.608-3.472-10.608-3.472l9.968 5.927 2.088-.44-1.448-2.016"/> - <path d="M238.767 271.485c3.01 2.744 7.547 7.15 10.65 9.512-3.415.984-8.492 3.104-11.617 4.4 2.424-1.6 5.935-3.503 7.833-5.31-1.685-2.695-4.796-5.976-6.866-8.602"/> - <path d="M246.85 279.475c.017.082-10.065 1.98-10.065 1.98l10.607.722 1.497-1.478-2.04-1.225"/> - <path d="M244.756 278.84c.01.08-10.5.805-10.5.805l10.834 1.86 1.66-1.26-1.994-1.406"/> - <path d="M246.695 279.398c-.007.077-10.855-1.74-10.855-1.74l10.623 4.306 1.96-.783-1.728-1.782z"/> - <path d="M248.495 279.987c.006.08-10.632.2-10.632.2l10.832 2.455 1.738-1.153-1.938-1.503z"/> - <path d="M241.203 272.974c2.984 2.843 7.476 7.39 10.57 9.864-3.518.782-8.768 2.59-11.998 3.693 2.525-1.436 6.168-3.114 8.162-4.78-1.633-2.726-4.704-6.098-6.734-8.776z"/> - <path d="M250 280.422c-.014.075-10.848-2.728-10.848-2.728l10.394 5.22 2.05-.584-1.596-1.908z"/> - <path d="M242.243 273.595c3.21 2.528 8.07 6.605 11.344 8.746-3.335 1.217-8.244 3.68-11.265 5.188 2.3-1.76 5.66-3.9 7.42-5.833-1.884-2.57-5.236-5.625-7.5-8.1z"/> - <path d="M250.916 281.01c.022.082-9.898 2.67-9.898 2.67l10.64-.012 1.384-1.577-2.127-1.078z"/> - </g> - <path d="M264.584 266.117l-8.085-5.588-8.086 5.587 3.032-8.94-7.075-5.59h9.097l3.032-8.94 3.03 8.94h9.097l-7.075 5.59 3.032 8.94z" fill="#fedf00" stroke="#000" stroke-width=".464"/> -</svg> diff --git a/img/flags/1x1/qa.svg b/img/flags/1x1/qa.svg deleted file mode 100644 index 88486de..0000000 --- a/img/flags/1x1/qa.svg +++ /dev/null @@ -1,4 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" height="512" width="512" viewBox="0 0 512 512"> - <path fill="#8d1b3d" d="M0 0h512v512H0z"/> - <path d="M0 0v512h112.96l104.26-28.443-104.26-28.446 104.26-28.445-104.26-28.443 104.26-28.446-104.26-28.443 104.26-28.445-104.26-28.446L217.22 256l-104.26-28.443 104.26-28.446-104.26-28.445 104.26-28.443-104.26-28.446 104.26-28.443-104.26-28.445 104.26-28.446L112.96 0H0z" fill="#fff"/> -</svg> diff --git a/img/flags/1x1/re.svg b/img/flags/1x1/re.svg deleted file mode 100644 index 2385562..0000000 --- a/img/flags/1x1/re.svg +++ /dev/null @@ -1,7 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" height="512" width="512" viewBox="0 0 512 512"> - <g fill-rule="evenodd" stroke-width="1pt"> - <path fill="#fff" d="M0 0h512.005v512H0z"/> - <path fill="#00267f" d="M0 0h170.667v512H0z"/> - <path fill="#f31830" d="M341.333 0H512v512H341.333z"/> - </g> -</svg> diff --git a/img/flags/1x1/ro.svg b/img/flags/1x1/ro.svg deleted file mode 100644 index e7cc44c..0000000 --- a/img/flags/1x1/ro.svg +++ /dev/null @@ -1,7 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" height="512" width="512" viewBox="0 0 512 512"> - <g fill-rule="evenodd" stroke-width="1pt"> - <path fill="#00319c" d="M0 0h170.666v512H0z"/> - <path fill="#ffde00" d="M170.666 0h170.666v512H170.666z"/> - <path fill="#de2110" d="M341.332 0h170.665v512H341.332z"/> - </g> -</svg> diff --git a/img/flags/1x1/rs.svg b/img/flags/1x1/rs.svg deleted file mode 100644 index a613f0e..0000000 --- a/img/flags/1x1/rs.svg +++ /dev/null @@ -1,296 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" height="512" width="512" viewBox="0 0 512 512"> - <defs> - <clipPath id="a"> - <path d="M54.3 32h480v480h-480z"/> - </clipPath> - </defs> - <g transform="translate(-57.867 -34.133) scale(1.06667)" clip-path="url(#a)"> - <path fill="#fff" d="M-32 32h720v480H-32z"/> - <path fill="#0c4076" d="M-32 32h720v320H-32z"/> - <path fill="#c6363c" d="M-32 32h720v160H-32z"/> - <g transform="matrix(.53333 0 0 .53566 -32 31.825)"> - <path d="M473.4 259.4v-.2h1v.2l-.5.5-.6-.6zm1 0v.5h-.5l.4-.6zm-93 5.2l-1 .2.3-.6 4.2-.2 4-.3 4-.2 3.8-.3 4-.2 3.6-.3 3.7-.2 3.7-.2 3.5-.2h3.4l3.3-.3 3.2-.2 3.2-.2 3-.2h3l3-.2 3-.2 2.7-.2h2.8l2.7-.2 2.5-.2h2.5l2.4-.3h2.2l2.2-.2h2.2l2-.2h2l2-.2h5.3v1h-5.5l-1.8.2h-2l-2 .2h-2.2l-2.2.2-2.4.2h-2.4l-2.5.2-2.5.2H446l-2.8.3h-2.8l-3 .3-2.8.2h-3l-3 .3-3.3.2-3.3.2-3.3.2h-3.5l-3.5.3-3.6.2-3.5.3-3.8.2-3.8.2-4 .3-4 .2-4 .3-4.2.2.5-.6zm-1 .2l-.3-.5h.7l-.4.5zm6.4 31l-6.5-31 1-.2 6.5 31-.5.7-.5-.4zm.5.5h-.4l-.2-.4.5.3zm95-4l-.2 1h.2-5.8l-3 .2h-3l-2.8.2h-3l-3 .2h-6l-3 .2h-3l-3 .2h-3l-3 .2h-3.2l-3 .2h-3l-3 .2h-3l-3 .2h-3l-3 .2h-3l-3 .2h-3l-3 .2h-3l-2.8.2h-5.8l-2.7.2h-2.7v-1h5.8l2.7-.2h5.8l3-.2h3l2.8-.2h3l3-.2h3l3-.2h3l3-.2h3l3-.2h3l3-.2h3.2l3-.2h3l3-.2h3l3-.2h3l3-.2h3l3-.2h3l2.8-.2h3l2.8-.2h.2zm-.2 0h.2zm94.5 3.4l1 .2-.5.3h-2.8l-2.8-.2h-8.8l-2.8-.2h-3l-3-.2H551l-3-.2h-3l-3-.2h-3l-3-.2h-3l-3-.2h-3l-3.2-.2h-3l-3-.2h-3l-3-.2h-3l-3-.2h-3l-3-.2h-3l-3-.2h-3l-3-.2H485l-3-.2.2-1h2.8l3 .2h3l2.8.2h3l3 .2h3l3 .2h3l3 .2h3l3 .2h3l3 .2h3l3 .2h3.2l3 .2h3l3 .2h3l3 .2h3l3 .2h3l3 .2h5.8l2.7.2h3l2.7.2h2.8l-.5.5zm1 .2v.3h-.5l.5-.4zm6.5-31.2l-6.5 31h-1l6.5-31.2.6-.4.4.6zm-.4-.6h.5v.6l-.4-.6zm-93.7-4.8h1l-.6-.5h5.4l2 .2h2l2 .2h2l2.4.2h2.4l2.4.3h5l2.6.3h2.7l3 .3 2.8.2h3l3 .3 3 .3 3.3.2 3.3.2 3.4.2h3.4l3.6.3 3.6.2 3.7.2 3.6.3 4 .2 3.8.3 4 .2 4 .3 4.2.2v1l-4.3-.2-4-.3-4-.2-4-.3-3.7-.2-3.8-.2-3.6-.3-3.6-.2-3.5-.2h-3.4l-3.3-.3-3.3-.2-3.2-.2-3-.2h-3l-3-.2-3-.2h-2.7l-2.6-.3h-2.6l-2.6-.3h-2.5l-2.4-.2-2.3-.2h-2.2l-2.2-.2h-2l-2-.2h-2l-1.8-.2h-3.3l-.5-.6zm.4.5h-.5v-.6l.4.5zm.5-.8v.2h-1v-.2l.3-.5.6.5zm-1 0v-.4h.3l-.4.4zm-8 .3l.2-1h8.8l.3.2v.8h-.5v.2h-.3l-.2-1h.2v.7h.2-8.2zm.2 0zm-8.3.2v-1l-.2 1h-.4l-.2-.2-.3-.3v-.5l.2-.2h9.4v1h-8.8l.2-.2v-.8h-.2.4v1zm0-1v1l-.6-.5.5-.5zm-.6.5v-.5h.5l-.6.5z" fill="#21231e"/> - <path d="M583.5 264.2c3.2-6.6 6.7-13 11.2-18.7-11.7 8.8-18 7.5-18.7-4-.7-.2-1.7-.2-2.6-.2-9 14-17.7 12-26.2-5.8-11.5 18.4-21.4 18-29.2-1-13.3 16.6-24.5 16.7-33.6.2v-2c.5.2 0 .3-1 0l-.3-.3a69.3 69.3 0 0 1-1 .2c-.2 0-.5 0-.8-.2l-.2.4c-1.2.2-1.6 0-1 0v2c-9.2 16.4-20.4 16.3-33.7-.4-7.8 19-17.7 19.5-29.2 1-8.4 18-17 20-26 6-1 0-2 0-2.7.2-.8 11.4-7 12.7-18.8 4 4.6 5.5 8 12 11.3 18.6 34-1.4 67.6-3.2 101.3-5 34 1.8 67.6 3.6 101.5 5z" fill="#edb92e"/> - <path d="M595 246l-.6-1 .7 1-.3.4-.4.5-.4.4-.5.6-.4.5-.3.6-.4.6-.4.6-.5.5-.3.6-.4.6-.4.4-.3.6-.3.6-.3.6-.4.6-.3.5-.3.6-.4.5-.3.6-.3.7-.4.6-.3.6-.3.5-.3.6-.2.8-.3.6-.4.6-.2.6-.3.6-.3.6-.3.6-1-.4.3-.6.3-.7.3-.6.2-.5.4-.6.3-.7.2-.6.3-.6.3-.6.4-.6.3-.6.3-.6.3-.6.5-.6.3-.6.4-.6.3-.6.4-.5.2-.5.4-.6.4-.7.3-.6.4-.5.4-.6.5-.6.4-.5.3-.6.4-.6.4-.6.5-.5.4-.6.4-.5.7.7zm-19.2-4l.3-1 .5.5v1l.2 1v1l.3.7.2.8.3.7.3.7.2.6.4.5.3.5.4.4.5.3.4.3.4.3.5.2h.4l.5.2h1.9l.7-.2.7-.2.8-.3.8-.3.8-.3 1-.5.8-.6 1-.5 1-.7 1-.7 1-.7 1-1 .7 1-1 .7-1 .8-1 .7-1 .6-1 .5-1 .5-1 .5-.8.4-1 .3-.7.3-.8.2h-.8l-.8.2h-2l-.7-.3-.5-.2-.6-.3-.5-.5-.6-.4-.5-.4-.5-.5-.3-.5-.4-.7-.3-.7-.2-.7-.3-.8-.2-1v-.8l-.2-1v-1l.2.3zm.3-1l.4.2v.3l-.3-.4zm-2.2.6l-.8-.6.4-.2h2v.2h.4l-.2 1h-1.2v-.2h-1.2l.4-.2zm-.8-.6v-.2h.4l-.4.2zm-25.3-5.2l-1-.6h1l.8 1.7.8 1.4.8 1.5.8 1.2.8 1.2.8 1.2.8 1 .8 1 .8.8.8.8.8.7.7.5 1 .4.7.3.8.3.7.3h2.3l.8-.2.8-.2.8-.3.8-.4.8-.6.8-.6.8-.7.8-.6 1-1 .7-1 .8-1 .8-1 1-1.4.8.6-.8 1.3-1 1-.7 1.2-1 1-.7 1-1 .7-.8.6-.8.6-1 .6-.7.4-1 .4-.8.2-1 .2h-3l-1-.4-.7-.3-1-.5-.7-.5-1-.6-.7-.7-1-.8-.8-1-.8-1-.8-1-.8-1.2-.8-1.3-.8-1.3-.8-1.5-.8-1.6-.8-1.7h1zm-1-.6l.6-.7.4.8h-1zm-28.3-.5l-.8-.6 1 .2.6 1.7.7 1.5.7 1.5.8 1.4.7 1.3.8 1.2.8 1 .8 1 .8.7.8.7.8.6 1 .5.7.4.8.2 1 .2h2.5l1-.3.8-.2 1-.4.8-.6 1-.7 1-.6 1-1 1-1 1-1 1-1.2 1-1.3 1-1.6 1-1.5 1.2-1.8 1 .6-1.2 1.7-1 1.5-1.2 1.5-1 1.3-1 1.3-1 1.2-1.2 1-1 1-1 .8-1 .7-1 .6-1 .4-1 .4-1 .4h-3l-1-.2-1-.3-.8-.6-1-.5-.8-.8-1-.8-.7-.8-1-1-.8-1-.8-1.3-.8-1.4-.8-1.5-.8-1.5-.7-1.7-.8-1.7h1zm-.8-.6l.5-.6.5.8h-1zm-33.8.7h1v-.2l.8 1.5 1 1.4.8 1.2 1 1.2.8 1 1 1 .8 1 1 .8.8.7 1 .6 1 .4 1 .4.8.3 1 .3 1 .2h2l1-.2 1-.3 1-.3 1.2-.4 1-.6 1.2-.6 1-.6 1.3-.8 1-1 1.3-1 1.2-1 1-1.3 1.4-1.3 1.2-1.4 1.2-1.5.8.7-1.3 1.5-1 1.5-1.3 1.3-1.2 1.3-1.2 1-1.2 1-1 1-1.3 1-1.2.7-1 .6-1.3.6-1 .5-1.3.3-1.2.3h-1l-1.2.2h-1l-1.2-.2-1-.2-1-.3-1-.4-1-.5-1-.7-1-.6-1-1-1-.8-1-1-1-1.2-.8-1.2-1-1.3-.8-1.5-1-1.5v-.3zm0 .3v-.3.3zm1-2.3v2h-1v-2l.8-.5.3.5zm-1 0v-.8l.8.2-.8.5zm-1 .3l1-.4-.4-.3h1l-.2.2v.4l.4-1h.2v.2l.2.2v.6h-1.8l-.5-.3zm.5.3h-.3v-.3l.3.3zm.3-1l.2.3-1 .4v-.4l.2-.7.6.2zm-.6-.4l.4-.2.2.4-.6-.3zm-1 1l.2-1h.8l.2 1h-1zm.2 0zm-.6-.4l-1-.4.7-.3h.8v1h-1l.4-.4zm-1-.4l.3-.4h.3l-.6.4zm0 .4v-.4l1 .4-.2.4-.4.3-.5-.7zm.8.4v.3h-.4l.4-.3zm-1-.3h-1l.7.4v.2h.2v-.8h-.2.2l.2-.2h.4l.2 1h-1.9v-.2h-.2v-.5h.2v-.2h.2l.8.4zm-.7-.5l.7-.3v.7l-.7-.5zm-.3 2.5v-2h1v2.3l-1-.3zm1 0v.2-.3zm-33.6 0l-1-.5h1l1 1.4 1.3 1.4 1.3 1.3 1.2 1.2 1.2 1 1.2 1.2 1 1 1.2.7 1 .7 1.2.7 1 .6 1.2.4 1 .3 1 .3h1l1 .2h1l1-.2 1-.2 1-.2 1-.4 1-.5 1-.7.8-.7 1-.8.8-1 1-1 .8-1 1-1.2.8-1.2.8-1.4 1-1.5.8.5-1 1.5-.8 1.4-1 1.2-.8 1.2-1 1.2-1 1-.8 1-1 .8-1 .7-1 .8-1 .5-1 .4-1 .4-1 .3-1.2.2h-2.2l-1-.2-1.3-.3-1-.3-1.2-.5-1-.6-1.2-.6-1.2-.8-1.2-.8-1.2-1-1.2-1-1.2-1-1.2-1.4-1.2-1.3-1.3-1.5-1-1.5h.8zm-1-.5l.3-.8.7.7-1 .2zm-28.3 1.5l-1-.4h1l1 1.6 1 1.4 1.2 1.5 1 1.2 1 1.2 1 1 1 1 1 1 1 .7 1 .8 1 .6.8.4 1 .3.8.4h2.8l.8-.2.8-.3.8-.5 1-.5.7-.6 1-.7.7-.8.8-1 .8-1 .8-1.3.8-1.3.8-1.4.8-1.5.7-1.6.8-1.8 1 .4-.8 1.7-.7 1.7-.8 1.5-.8 1.4-.8 1.3-1 1.2-.7 1-1 1-.7 1-1 .7-.8.7-1 .4-.8.5-1 .2-1 .2h-3l-1-.3-1-.3-1-.4-1-.6-1-.7-1-.8-1-1-1-1-1-1-1-1.4-1-1.3-1.2-1.5-1-1.5-1.2-1.7h1zm-1-.4l.5-.8.5.7h-1zm-25.6 6.5v-1l.3.2 1 1.3.7 1.2.8 1 .8 1 .8.8 1 .8.7.8 1 .6.7.5.7.3.8.3.8.2.8.2h2.3l.8-.4.8-.3.8-.4.7-.5 1-.6.7-.8.8-.8.8-.8.8-1 1-1 .7-1.2.7-1.2.8-1.3.8-1.6.8-1.5.8-1.7 1 .4-1 1.7-.7 1.5-1 1.4-.7 1.3-.8 1.3-.8 1.2-.8 1-1 1-.8 1-.8.8-.8.7-1 .6-.7.5-1 .5-1 .3-.7.3h-2.6l-1-.2-.8-.2-1-.4-.8-.4-1-.6-.8-.6-.8-.7-1-1-.7-.8-1-1-.8-1-1-1.3-.7-1.4.4.2zm0-1h.2v.2l-.3-.2zm-2.2.8h-1l.4-.5h1.2v-.2h1.5v1H389v.2h-.4l.2-.4zm-1 0v-.4h.4l-.4.3zm-18 3.6l-.6.7.6-1 1 1 1.2.6 1 .7 1 .6 1 .4.8.5 1 .4.7.3.8.3.8.3.8.2h.7l.7.2h1.7l.4-.2.5-.2.4-.3.4-.3.4-.3.4-.4.3-.5.2-.5.3-.6.3-.7.3-.7.3-.8v-.8l.3-1v-.8l.2-1h1v1l-.2 1-.2 1-.2 1-.2.7-.2.8-.3.8-.4.7-.2.6-.5.6-.4.5-.6.5-.5.4-.7.2-.6.2-.6.2h-3.3l-.8-.3-.8-.3-1-.3-.8-.4-1-.5-.8-.5-1-.5-1-.6-1-.7-1-.8-1.2-.8.7-.8zm11 18.5v1l-.4-.3-.3-.6-.2-.6-.3-.6-.3-.6-.4-.6-.3-.6-.3-.7-.3-.5-.4-.6-.4-.7-.3-.6-.4-.6-.3-.5-.4-.6-.4-.7-.4-.5-.3-.6-.4-.6-.4-.6-.4-.6-.3-.5-.4-.7-.3-.6-.3-.5-.4-.6-.4-.5-.4-.5-.4-.5-.4-.6-.4-.5-.4-.6-.4-.5.7-.8.4.5.4.6.4.5.4.6.4.5.4.5.4.5.4.6.4.6.4.5.3.6.4.6.4.5.4.6.4.6.3.6.5.6.3.6.3.6.5.6.3.6.3.6.5.6.3.7.3.7.4.6.3.6.4.5.4.6.3.7.3.7.3.6-.5-.3zm0 1h-.3v-.3l.4.3zm101.4-6v1l-3.2.2h-3.2l-3 .3h-3.3l-3 .3-3.3.2H460l-3 .3-3.3.3h-3.2l-3 .3H444l-3 .3h-3.3l-3.3.2-3 .2h-3.3l-3.2.3h-3l-3.3.3-3.3.2h-3l-3.3.3h-3.2l-3 .2-3.3.2h-3.3l-3.2.2h-3l-3.3.3H384l-3 .2-.2-1h3.2l3.2-.3h3l3.3-.2 3.2-.2h3l3.3-.3h3.2l3-.3h3.3l3.2-.3h3l3.3-.2h3.2l3-.3h3.3l3.2-.3 3-.2h3.3l3.2-.3h3l3.3-.3 3.2-.2h3l3.3-.3 3-.3h3.3l3.2-.3 3-.2h3.3l3.2-.3 3-.3h.2zm0 0zm101.2 5v1h-3l-3.3-.2-3-.2h-3.3l-3-.3h-3.3l-3.2-.3h-3l-3.3-.2-3.3-.2h-3l-3.3-.3-3.2-.2h-3l-3.3-.3h-3.3l-3-.3h-3.3l-3.2-.3-3-.3h-3.3l-3.3-.3h-3l-3.3-.3h-3l-3.3-.2-3-.2-3.2-.2h-3.2l-3.2-.3h-3l-3.3-.2.2-1h3l3.3.3 3.2.2 3 .2 3.3.2h3l3.3.3h3.2l3 .2 3.3.2 3.2.2h3l3.3.3h3l3.3.2 3.2.2h3l3.3.3h3.3l3 .3h3.3l3.2.3h3l3.3.3h3.3l3 .3h3.3l3.2.2h3.2l3 .2 3.3.2h3.2zm0 1zm0 0v-1l.5.7-.6.3zm.5-.3l-.2.3h-.4l.5-.3z" fill="#21231e"/> - <path fill="#edb92e" d="M505 276.2l-23 11.4-22.6-11.4 22.7-11.5z"/> - <path d="M474 259.2v.2c-17.6.7-48.6 2.5-93.2 5.3l6.5 31c29.6-.8 64.3-2 94.8-3 30.7 1 65.3 2.2 95 3l6.5-31c-44.6-2.8-75.6-4.6-93-5.3v-.2c1.7-.4-1-.4-8.4-.2-7-.2-10-.2-8 .2z" fill="#edb92e"/> - <path d="M597.3 236.7l-3.7-.6c-7 17.5-13.4 18-14.6 1.4 1.6-.6 1-3.3 2.8-2.2 1 .5 2-1 1.3-2-2-1.5-3.6-1.3-5.4.4-.8-2.7-3-4-5.4-2.8-1 .5-.7 2.5.4 2.4 1.8-.2 1 1.6 1.6 3-12.5 16.4-19 14.4-17.4-7.3-3-.7-6.5-1.3-9.6-2.4-11.5 23.3-19.7 24.3-26.4 3.4 1.4-1 1-3.8 3-3 1.3.6 2.3-1.5 1.2-2.4-2.4-2-5-1.3-6.8 1.3-1.4-3-4-4-6.6-2.2-1.2.7-.5 3 .8 2.6 2.3-.7 1.3 2.4 3 3.5-5 19.6-30.8 21-26.6-8.2-2.4 0-4.5 0-6.6.2l-6.7-.2c4.2 29-21.5 27.8-26.6 8 1.6-1 .6-4 3-3.4 1.2.3 2-2 .7-2.7-2.6-1.7-5.2-.7-6.6 2.2-1.7-2.7-4.3-3.4-6.7-1.4-1 1 0 3 1 2.5 2.2-.8 1.8 2 3.2 3-6.7 21-15 20-26.4-3.4-3 1-6.5 1.7-9.5 2.3 1.6 21.6-5 23.6-17.4 7 .6-1.2 0-3 1.7-2.8 1 0 1.5-2 .4-2.4-2.4-1-4.5 0-5.3 2.8-1.7-1.7-3.5-2-5.5-.4-.8 1 .4 2.5 1.3 2 1.8-1 1.2 1.6 2.8 2.2-1.2 16.5-7.6 16-14.6-1.3l-3.7.7c0 4 1.3 8.5 3.8 11.7 10.6 13.5 18.5 10.4 18.8-4.7 14 16.4 24.4 14.3 26.2-3 11.7 21.8 30.5 11.4 31-2 5 19.4 33.5 19.2 35.4-3 1.8 22.2 30.3 22.4 35.4 3 .4 13.4 19.2 23.8 31 2 1.7 17.3 12.3 19.4 26 3 .4 15 8.3 18.2 19 4.7 2.4-3.2 3.8-7.6 3.7-11.7z" fill="#edb92e"/> - <path d="M593.7 235.6l3.7.6-.2 1-3.6-.6-.4-.7.5-.4zm-.5.3v-.4h.5l-.5.3zm-14.3 1l.2 1 .3-.6.2 1.4v1.4l.3 1.3.2 1.2.2 1 .3 1 .3 1 .3.7.3.7.3.6.3.5.3.5.4.2.3.2h1.3l.4-.3.4-.2.5-.4.4-.3.6-.6.5-.6.6-.7.7-1 .6-.8.7-1.2.6-1.2.6-1.3.7-1.3.5-1.5.7-1.6 1 .3-.8 1.6-.6 1.4-.7 1.4-.5 1.3-.7 1.3-.6 1-.6 1-.7 1-.7.8-.6.8-.6.6-.5.5-.6.3-.7.4-.5.2h-1.2l-.6-.2-.5-.2-.5-.4-.5-.4-.4-.6-.3-.6-.3-.8-.4-.8-.3-1-.2-1-.3-1-.2-1.3-.2-1.3-.2-1.5v-1.6l.3-.5zm-.5.4v-.4h.4l-.5.4zm3.5-2.7l-.5 1v-.2h-.4v.2h-.2v.2l-.2.2v.3l-.2.3-.2.3v.2h-.2v.3h-.3v.2h-.3l-.2.2-.3-1v-.2h.2v-.2h.2v-.2l.2-.2v-.5h.2v-.4l.2-.2v-.3l.2-.2.2-.2h.2l.2-.2h1l.2.2zm-.5 1zm1.3-2l.6-1v.2h.2l.2.3v1.6h-.2v.2h-.2v.2h-.2v.2h-.2v.2h-.5v.2h-.8l-.3-.2.5-1v.2h.4v-.2h.2v-.2h.2v-.8zm.6-1v.2-.2zm-6.3 1l1-.3-.8-.2h.2l.2-.3.2-.2.2-.2.3-.2h.2l.2-.2h.2v-.2h.4l.2-.2h2.3l.2.2h.2l.2.2h.2l.2.2h.2l.2.2.2.2-.6.8-.3-.2h-.2l-.2-.2-.2-.2h-.3l-.2-.2h-2.1v.2h-.3v.2h-.2l-.3.2v.2h-.3v.2l-.3.2-1-.3zm1 .3l-.7.5-.2-.8 1 .3zm-5.6-2.7l-.4-1h.5l.3-.2h2.1l.4.2h.4l.2.3h.2v.2l.3.2h.2l.2.2v.2l.2.2v.2l.2.2.2.2v.2l.2.3v.2l.2.2v.2l-1 .3v-.5h-.2v-.3l-.2-.2v-.2h-.3v-.3h-.2v-.4h-.3v-.2h-.3v-.2h-.6v-.2h-2l-.2.2h-.2zm0 1.4l.2 1h-.6v-.2h-.2l-.2-.2-.2-.2-.2-.2V231l.2-.2.2-.2.3-.2.4 1h-.2v1.2h.2zm2.2 3.7l-.8-.6v.5-.2h-.2v-1h-.2v-1l-.2-.2h-.7v-1.2h.6l.3.2.2.2h.2v.2l.2.3v.4h.2v1.5h.2v.8zm0-.5h.2l-.2.4v-.5zm-18-6.6l.3-1 .3.6v2l-.2 1.8v4.9l.3 1.4v1.3l.3 1 .2 1 .3 1 .4.8.3.8.4.5.5.5.4.3.4.3.5.2h1l.6-.2.7-.3.7-.4.8-.5 1-.4.7-.8 1-.8 1-1 1-1 1-1 1-1.4 1-1.4 1.3-1.4.8.6-1.2 1.5-1 1.3-1.2 1.3-1 1-1 1.2-1 1-1 .8-1 .8-.8.6-1 .5-.7.4-.8.3h-.8l-.8.2h-.7l-.7-.2-.6-.3-.6-.5-.5-.5-.4-.7-.5-.7-.4-1-.2-1-.2-1-.2-1.2-.2-1.3V229l.5.6zm.3-1h.3v.6l-.4-.6zm-9.3-1.6l-1-.4.7-.3.3.2h.3l.3.2h.3l.2.2h.3l.4.2h.6l.3.2h.3l.4.2h.6l.3.2h.5l.3.2h.7l.3.2h.6l.3.2h.5l.3.2h.8l.3.2h.3l-.3 1h-.8l-.2-.2h-.6l-.3-.2h-.8l-.3-.2h-.6l-.4-.2h-.7l-.4-.2h-.3l-.3-.2h-.6l-.3-.2h-.2l-.3-.2h-.6l-.4-.2h-.3l-.4-.2h-.4l-.3-.2h-.2l.7-.4zm-1-.4l.3-.4h.4l-.6.4zm-26.2 3.2l.6.8.3-.6.6 2 .5 1.7.7 1.6.6 1.6.7 1.4.7 1.2.6 1 .7 1 .7 1 .7.6.6.6.7.4.7.4.7.2h1.4l1-.2.6-.2.8-.4 1-.6.7-.6 1-.8 1-1 .8-1 1-1.2 1-1.3.8-1.4 1-1.6 1-1.7 1-1.8 1-2 1.2-2 1 .3-1.2 2.2-1 2-1 1.8-1 1.8-1 1.6-1 1.5-1 1.3-1 1.2-1 1-1 1-1 1-.8.7-1 .5-.8.4-1 .2-.8.2h-1.8l-.8-.3-.8-.3-.8-.5-.8-.6-.7-.8-.8-1-.7-1-.7-1-.7-1.4-.7-1.4-.7-1.5-.7-1.7-.6-1.7-.7-1.8.2-.6zm-.2.6v-.4l.2-.2-.2.5zm3.8-3.6l-.3 1h-.3l-.2-.2h-.2v.2h-.2v.2h-.2v.5h-.2v.4l-.2.3-.2.2v.2l-.2.3-.3.3-.2.3h-.2l-.5-.7.2-.2.2-.2v-.5h.2v-.4h.2v-.3l.2-.3v-.2l.2-.2.2-.3.2-.2h.2v-.2h.5v-.2h.7l.2.2zm.7-1.6l.6-.8.2.2.2.2v.2l.2.3v1.3l-.2.3v.2l-.2.2h-.2v.2h-.2v.2h-.2l-.2.2h-1.1l.4-1h.7v-.2h.2v-.6h.2v-.7h-.2v-.2zm-7 1l1-.3h-1l.2-.3v-.3h.3l.2-.3.2-.3.2-.2.3-.3.3-.3h.2l.2-.3h.3l.2-.2h.5l.2-.2h2.2l.3.2h.2l.3.2h.3l.3.3h.2l.3.3.3.2-.6.8-.2-.2h-.2l-.2-.3-.4-.2h-.2l-.2-.2H521v.2h-.5l-.2.3h-.2v.2h-.2l-.2.3-.2.2-.3.3v.2l-.2.3-.2.2h-1zm1 .2l-.6.7-.3-1 1 .2zm-7-2l-.4-1h.3l.2-.2h.3l.4-.2h.2l.3-.2h.4l.3-.2h1.6l.2.2h.2l.3.2h.2l.2.3.3.2.2.2v.2l.3.2.2.2.2.2v.2l.3.2.2.3.3.4v.3l-.8.4-.2-.4-.2-.2v-.2l-.3-.2v-.2l-.3-.2-.3-.3h-.2v-.2h-.3l-.3-.2h-.2l-.3-.2h-.4l-.2-.2h-1.2l-.2.2h-.5l-.2.2h-.2l-.2.2-.2.2zm.5 1.7l.3 1h-.5l-.2-.2h-.2l-.2-.2-.2-.2-.2-.2v-.2l-.2-.2V224l.2-.2.2-.3.3-.2.5 1h-.2v1.2h.2v.2h.4zm3.7 4l-1-.2.2.5h-.2l-.2-.2h-.2v-.3h-.2l-.2-.3v-.4l-.2-.2v-.3l-.2-.2v-.4l-.2-.2v-.2l-.2-.2v-.2h-.2v-.2h-.6l-.4-1h1.1l.3.2h.2v.4h.2v.3l.2.2v.2h.2v.5l.2.3v.5h.2v.4h.2l.2.2.2.2.3.6zm-.3-.5l.3.2v.3l-.3-.5zm-27-7.2v-1l.6.5-.3 2.7-.2 2.4v2.2l.2 2 .3 2 .4 1.7.5 1.5.7 1.4.6 1 .8 1.2 1 1 1 .7 1 .6 1 .5 1 .4 1.3.3h2.4l1.3-.2 1.2-.3 1.2-.5 1.2-.5 1-.7 1.2-1 1-.8 1-1 1-1.3 1-1.3.8-1.3.8-1.5.6-1.7.5-1.7 1 .2-.6 2-.7 1.6-.8 1.6-1 1.5-1 1.4-1 1.3-1 1-1.2 1-1.2 1-1.2.8-1.3.7-1.2.5-1.3.3-1.4.2h-2.5l-1.2-.3-1.3-.4-1.2-.5-1-.7-1-1-1-1-1-1-.8-1.5-.7-1.5-.6-1.6-.4-1.8-.3-2-.2-2.2V227l.2-2.6.3-2.7.5.6zm0-1h.7v.5l-.6-.5zm-6.6 1.2l.2-1h4l.2-.2h2.1v1h-4.1l-.2.2h-2zm.2 0zm-6.2-.8h-1l.5-.4h5.1l.2.2h1.2v1h-4l-.3-.2h-2l.5-.6zm-1 0v-.5h.5l-.5.6zm-26.4 7.8l.5.8.3-.5.6 1.7.5 1.7.7 1.5 1 1.4.8 1.4 1 1.2 1 1 1 1 1.2 1 1.2.6 1.2.5 1.2.5 1.2.3 1.2.2h2.4l1.2-.3 1-.3 1.2-.4 1-.7 1-1 .8-.8 1-1 .6-1.3.6-1.5.6-1.6.4-1.8.3-2v-2l.2-2.3-.2-2.5-.3-2.7h1l.3 2.6.2 2.5v2.2l-.2 2.2-.3 2-.5 1.8-.5 1.6-.7 1.5-.8 1.4-1 1.2-1 1-1 .8-1 .7-1.2.5-1.3.4-1.3.3H463l-1.2-.2-1.3-.3-1.3-.5-1.3-.6-1.3-.7-1.2-1-1.2-1-1-1-1-1.2-1-1.3-1-1.5-.7-1.6-.7-1.7-.6-2 .2-.5zm-.2.5v-.3l.2-.2-.2.5zm3.7-4l-.2 1-.2-.2h-.7v.2l-.2.2v.4l-.2.2v.5l-.2.2v.2l-.2.3v.2l-.2.2v.2h-.2v.3h-.3l-.2.2h-.2l-.4-.7.2-.2.2-.2h.2v-.3l.2-.2v-.5l.2-.2v-.5l.2-.3v-.3l.2-.2.3-.3.2-.2h.2l.2-.2h1.1zm.4-1.8l.6-1v.2h.3v.3h.2v.2l.2.2v1.5l-.2.2v.2l-.2.2-.3.2-.2.2h-.9l.3-1h.4v-.4l.2-.2v-.8h-.2v-.2h-.2zm-6.7 2l.8-.6h-.8v-.2l.2-.3.3-.4v-.2l.3-.2.2-.2.2-.2.2-.2.2-.2.2-.2h.2l.3-.3.3-.2h.2l.3-.2h.5l.2-.2h1.6l.4.2h.2l.3.2h.2l.3.2.2.2h.3l-.6 1-.2-.2h-.2l-.2-.2h-.3l-.2-.2h-.5l-.2-.2h-1.3l-.2.2h-.3v.2h-.3l-.2.3-.2.2-.3.3-.3.3-.2.2v.2l-.2.2-.2.2v.3h-.2l-1 .2zm1 0l-.5.7-.5-.8h1zm-7-1.2l-.8-.8.2-.2.2-.2h.3l.2-.3h.2l.2-.2h.3l.3-.2h2.5l.3.2h.2l.3.2.2.2h.2l.2.3h.2l.2.2.2.2.2.3.2.2h.2v.4l.3.2-.8.6-.2-.2v-.3l-.3-.2-.2-.2-.3-.3-.2-.2h-.2l-.2-.2v-.2h-.2l-.2-.2h-.4l-.2-.2H441l-.2.2h-.2l-.2.2h-.2l-.2.3h-.2l-.2.3zm.5 1.6l.4 1h-1.3l-.2-.2-.3-.2h-.2v-.2l-.2-.3v-.2l-.2-.2v-1.6l.2-.2.2-.2v-.2l.8.8-.2.2v1l.2.2.2.2h.4zm3.8 3.6l-1-.4.2.6h-.2v-.3h-.3v-.2h-.2v-.3h-.2v-.5h-.2v-.6h-.2v-.5l-.2-.2-.2-.2h-.2v-.2h-.5v.2l-.5-1h.4l.2-.2h.6l.2.2.3.2h.2v.2l.2.2.2.3v.2l.2.2v.2l.2.3v.2l.2.2.2.2.2.2.2.2.2.6zm-.2-.6l.3.2v.4l-.2-.6zm-26.6-2.5l-.3-1 .5.4 1 2 1 2 1.2 2 1 1.6 1 1.6 1 1.5 1 1.4.8 1.2 1 1 .8 1 1 .8.7.6 1 .6.6.4.8.2.8.2h1.3l.7-.2.7-.4.7-.4.7-.6.7-.7.8-.7.6-1 .7-1 .8-1.3.6-1.4.7-1.5.7-1.5.7-1.8.6-2 1 .5-.7 2-.6 1.6-.7 1.7-.6 1.5-.7 1.4-.7 1.3-.7 1.2-.7 1-.8.8-.7.8-.7.6-.8.5-1 .4-.7.4H432l-1-.2-.7-.3-1-.5-1-.6-.8-.8-1-1-.8-1-1-1-1-1.2-1-1.3-1-1.5-1-1.6-1-1.8-1-1.8-1-2-1-2.2.5.3zm-.3-1h.3l.2.4-.6-.3zm-9 3h-1l.4-.6h.7l.3-.2h.6l.4-.2h.9l.3-.2h.5l.3-.2h.6l.4-.2h.3l.3-.2h.6l.3-.2h.5l.3-.2h.3l.4-.2h.3l.3-.2h.3l.3-.2h.3l.2 1h-.7l-.3.2h-.3l-.3.2h-.3l-.3.2h-.5l-.3.2h-.3l-.4.2h-.6l-.4.2h-.6l-.3.2h-.6l-.2.2h-.6l-.3.2h-.7l-.3.2h-.8v.2h-.4l.4-.5zm-1 0v-.5h.4l-.4.5zm-17.4 7l1 .3v-.5l1 1.4 1 1.4 1.2 1.3 1 1 1 1 1 1 1 .8.8.8 1 .6.6.4.8.4.7.3h.6l.6.2h.4l.5-.2.3-.2.5-.2.4-.5.3-.5.4-.7.2-.7.3-1 .2-1 .2-1v-2.7l.2-1.5v-5l-.2-1.8h1v2l.2 1.8v4.9l-.2 1.4v1.4l-.3 1.2-.3 1-.3 1-.2 1-.4.7-.4.7-.6.5-.5.5-.7.3-.7.2H402l-.6-.2-.8-.4-1-.5-.7-.5-1-.6-1-.8-1-.8-1-1-1-1-1-1.2-1-1.3-1.2-1.4-1-1.6-.2-.5zm0 .4v-.3.4zm2-3.7v1h-.6v.8l-.2.3v1h-.2v.3l-1-.4v-.4l.2-.2v-.9h.2v-.5l.2-.2v-.2h.4v-.2h1zm.3-1.4l.3-1 .2.2h.2v.2h.2v.7h.2v1.2l-.2.2v.3l-.2.2-.2.2h-.2l-.2.2h-.5v-1h.4v-.2h.2v-.8l-.2-.2zm-5.7 2.7l.7-.8-.8.2v-.2l.2-.3v-.3l.2-.3v-.2l.2-.2.2-.2v-.2l.3-.2v-.2l.3-.2h.2v-.3h.3l.3-.2.2-.2h.4v-.2h2.5l.3.2h.2l.3.2-.4 1-.3-.2h-.5l-.2-.2h-1.3l-.3.2h-.2v.2h-.2l-.2.2v.2h-.2l-.2.2v.2h-.2v.3l-.2.2v.2h-.2v.5l-.2.2-1 .3zm1-.3l-.4.8-.7-.5 1-.3zm-5.8-.2l-.7-.6v-.2l.3-.2h.3l.2-.2h.2l.2-.2.3-.2h.2l.2-.2h2.1l.2.2h.2l.2.2h.2l.2.2.3.2.2.2h.2l.2.3v.2l-.7.8v-.2h-.3v-.2l-.3-.2-.3-.2h-.3v-.2h-.2l-.2-.2h-2v.2h-.3l-.2.2-.2.2h-.2l-.2.2zm-.7-.6v-.2zm1.4 1.7l.6 1h-1.3l-.3-.2-.2-.2v-.2h-.2l-.2-.2v-.3l-.2-.2v-.8l.2-.3h.2l.7.5v.8h.2v.2h.2v.2h.2zm3.6 2.7h-1l.3.5v-.2h-.3v-.2h-.3v-.3h-.2v-.2h-.2v-.2l-.2-.2v-.3h-.2v-.2l-.2-.3v-.2h-.7l-.6-.8h.2l.2-.2h1.1l.3.2.2.2v.2h.2v.4l.2.2v.5h.2v.2l.2.2.2.2h.2l.4.6zm-.4-.5h.4v.4l-.4-.5zm-14.7-.4v-1l.4.3.8 1.5.6 1.5.7 1.3.7 1.3.6 1.2.6 1 .6 1 .6 1 .5.6.6.7.5.7.6.4.5.5.3.2.5.2h1.1l.3-.3.3-.2.4-.4.3-.4.4-.5.3-.6.3-.8.3-.8.2-1 .3-1 .3-1.3.2-1.3v-1.4l.2-1.4h1v1.5l-.2 1.4-.2 1.3-.2 1.2-.2 1-.2 1-.3 1-.4.8-.4.8-.4.6-.4.6-.5.4-.5.4-.5.2-.6.2h-1.1l-.6-.3-.7-.4-.6-.4-.5-.6-.6-.6-.7-.7-.7-.7-.6-1-.6-1-.6-1-.6-1.2-.6-1.2-.7-1.4-.7-1.5-.6-1.7.5.3zm0-1h.3v.3l-.4-.4zm-3.8.6l3.6-.6v1l-3.6.6-.5-.5.4-.5zm-.5.5v-.4h.4l-.5.4zm4.7 11.4l-.8.7-.3-.3v-.3l-.3-.3-.2-.3-.3-.3-.2-.3-.2-.3v-.4l-.3-.3-.2-.4-.2-.4v-.4l-.2-.4v-.4l-.3-.4v-.4l-.2-.3v-.4l-.2-.4v-.9l-.2-.3v-.8l-.2-.5V238l-.2-.5v-.7h1v1.9l.2.4v1.1l.2.5v.7l.2.3v.4l.2.4.2.3v.4l.2.5.2.3v.4l.2.3.2.4.2.2v.3l.3.4.2.2v.3l.3.3.2.4.2.3.2.3.2.3zm18.7-4.7l-.8.7 1-.3-.2 1.4v1.4l-.2 1.3-.2 1.2-.2 1-.3 1-.2 1-.3 1-.4.7-.4.8-.4.7-.6.6-.5.5-.5.4-.7.3-.6.3h-.7l-.8.2h-.7l-.8-.2-.8-.2-.8-.2-1-.4-.7-.5-1-.7-1-.6-.8-.8-1-1-1-1-1-1-.8-1-1-1.3.8-.6 1 1.3 1 1 .8 1 1 1 1 .8.7 1 1 .5.7.6.8.5.8.4.7.2h.7l.7.3h1.4l.6-.2.4-.2.6-.2.4-.3.5-.5.4-.5.4-.6.4-.7.3-.8.3-.8.3-1 .4-1 .2-1 .2-1.2v-1.2l.2-1.3v-1.3l1-.4zm-1 .4V242l1 1-1 .4zm27.3-3.2l-1 .4 1-.2-.2 1.6v1.5l-.4 1.3-.4 1.3-.4 1.2-.4 1.2-.5 1-.7 1-.6 1-.6.7-.6.7-.8.6-.7.5-1 .4h-.8l-1 .3h-2.8l-1-.3-1-.4-1.2-.4-1-.6-1.2-.6-1.2-.8-1-.8-1.3-1-1.2-1-1.3-1.2-1.2-1.3-1.3-1.5-1.3-1.5.7-.7 1.2 1.5 1.3 1.4 1.2 1.2 1.2 1.2 1 1 1.3 1 1 .8 1.2.7 1 .7 1 .6 1 .4 1 .3 1 .2h1l.8.2h.8l1-.2.7-.3.7-.4.7-.5.7-.4.6-.6.6-.7.5-.8.5-1 .4-1 .5-1 .2-1.2.4-1.3.3-1.3v-1.5l.3-1.6h1zm-1 0l.2-1.5.8 1.5h-1zm31.8-1.8l-.8.3h1v1l-.3 1.4-.4 1.2-.4 1.2-.5 1-.6 1.3-.6 1-.7 1-.8 1-1 1-1 .7-1 .7-1 .7-1 .6-1.2.5-1.2.4-1.2.3h-3.8l-1.3-.2-1.3-.4-1.4-.4-1.3-.7-1.3-1-1.3-.8-1.3-1.2-1.3-1.2-1-1.5-1.3-1.6-1.2-1.8-1-2 .8-.5 1 2 1.2 1.6 1.2 1.7 1.2 1.4 1 1.3 1.3 1 1.2 1 1.3.7 1.2.6 1.2.5 1.3.5 1.2.2h3.6l1.2-.3 1-.3 1-.3 1.2-.5 1-.6 1-.7.7-.8 1-1 .6-.7.6-1 .6-1 .6-1 .4-1 .4-1.2.3-1V239h1zm35.6-3l-1 .2h1l-.2 2-.4 2-.6 1.6-.6 1.7-.8 1.6-1 1.3-1 1.3-1 1-1.3 1-1.3 1-1.3.8-1.3.6-1.5.6-1.5.3-1.5.2h-1.5l-1.6.2-1.4-.2-1.6-.2-1.5-.3-1.5-.5-1.4-.6-1.4-.7-1.4-1-1.3-1-1.2-1-1-1.2-1-1.4-1-1.4-1-1.6-.6-1.6-.5-1.8 1-.3.5 1.7.6 1.6.8 1.5 1 1.3 1 1.3 1 1.2 1.2 1 1.2 1 1.3.8 1.3.7 1.4.5 1.4.5 1.4.3 1.5.2h4.4l1.5-.3 1.4-.4 1.3-.5 1.3-.5 1.3-.7 1-1 1.2-.8 1-1 1-1.3 1-1.4.6-1.4.7-1.7.5-1.7.4-1.8.2-2h1zm35.5 3l-1 .2h1l-.4 1.8-.7 1.6-1 1.6-1 1.4-1 1.4-1 1.2-1.3 1-1.2 1-1.4 1-1.3.6-1.5.6-1.4.5-1.6.3-1.5.2-1.5.2h-1.6l-1.5-.2-1.4-.3-1.5-.4-1.4-.6-1.4-.6-1.3-.8-1.4-1-1.2-1-1-1-1.2-1.3-1-1.4-.7-1.7-.7-1.7-.5-1.7-.4-2-.4-2 1-.2.3 2 .3 1.8.5 1.7.6 1.6.8 1.3 1 1.4.8 1.2 1 1 1.2 1 1.2.8 1.3.7 1.3.6 1.4.6 1.4.3 1.4.2h4.5l1.4-.2 1.5-.3 1.4-.5 1.3-.5 1.3-.7 1.3-.8 1-1 1.2-1 1-1 1-1.4 1-1.3.7-1.5.6-1.6.5-1.7h1zm31 2h-1l1 .2-1.2 2-1.2 1.7-1.2 1.6-1.2 1.5-1.3 1.2-1.4 1.2-1.3 1-1.3.7-1.3.6-1.3.5-1.4.5-1.3.2H530l-1.3-.3-1.2-.3-1.2-.4-1-.5-1-.6-1-.7-1-.8-1-1-.7-1-.8-1-.6-1-.6-1-.5-1.2-.3-1.2-.3-1.2-.2-1.3v-1l1-.2v1.2l.2 1.2.3 1 .4 1.2.5 1 .6 1 .7 1 .7 1 .7 1 1 .8.8.7 1 .6 1 .6 1 .5 1 .4 1 .4 1.3.2 1.2.2h2.4l1.2-.3 1.2-.4 1.3-.4 1.2-.6 1.3-.7 1.2-1 1.2-1 1.2-1.2 1.2-1.3 1.2-1.6 1-1.6 1.2-2 1 .2zm-1-.2l.8-1.5.2 1.6h-1zm27.2 3.2h-1l1 .3-1.4 1.5-1.3 1.4-1.2 1.2-1.3 1-1.2 1.2-1.2 1-1.2.8-1 .8-1.2.6-1 .6-1.2.4-1 .4-1 .2-1 .2h-2l-1-.3h-.8l-.8-.5-.8-.5-.7-.6-.8-.7-.6-.8-.6-1-.6-1-.5-1-.5-1-.4-1.4-.3-1.3-.3-1.4-.2-1.6-.3-1.6 1-.2.2 1.6.2 1.5.3 1.3.3 1.3.4 1.2.4 1 .5 1 .5 1 .6.8.6.7.6.6.6.5.7.6.6.3.8.2h.8l.8.2h.8l1-.2 1-.2.8-.3 1-.4 1-.6 1.2-.6 1-.6 1.2-.8 1.2-1 1-1 1.4-1.2 1.2-1.2 1.3-1.4 1.3-1.5 1 .4zm-1-.4l1-1v1.4l-1-.4zm19 4.8l.7.7-1 1.2-1 1-1 1-1 1-1 1-.8.7-1 .6-.8.6-.8.4-1 .4-.7.3-1 .3-.7.2h-1.5l-.7-.2-.6-.3-.6-.3-.6-.4-.6-.5-.5-.6-.4-.7-.4-.8-.4-.8-.3-1-.3-1-.3-1-.3-1-.2-1.3V246l-.2-1.3v-1.3h1v2.6l.2 1.3.2 1 .2 1.2v1l.4 1 .4.7.3.8.5.6.4.5.4.5.4.5.5.3.5.3.6.3h.6l.6.2h.6l.7-.2h.6l.7-.4.8-.5 1-.4.7-.5 1-.6.7-1 1-.7.8-1 1-1 1-1 1-1.2zm4-10.7v-1l.6.4v2.9l-.2.4v.7l-.2.4v.5l-.2.4v.3l-.2.4v.3l-.3.4v.4l-.2.4-.2.4v.3l-.3.3-.2.4-.2.3-.2.4-.2.3-.2.4-.2.4-.2.3-.2.4-.2.4-.3.3-1-.6.3-.2.3-.3.2-.3.2-.4.2-.3.2-.3.2-.3v-.5l.3-.3v-.3l.2-.5.2-.3v-.4l.3-.3v-.4l.2-.3v-.7l.2-.4v-.3l.2-.4v-.5l.2-.4v-1l.2-.4v-1.8l.5.5zm0-1h.6v.4l-.5-.5zm0 0v1-1zm0 1z" fill="#21231e"/> - <path d="M482 263h-22.5l-1.3.2H451l-1.3.2h-4.4l-1.2.2h-2.3l-6.3.4h-.3c-3 0-6 .3-9 .4h-.8l-18.2 1.3h-.2a965 965 0 0 0-26.4 2.4c-5 .6-6-5.3 0-6a960.5 960.5 0 0 1 26.3-2.2 983.7 983.7 0 0 1 37-2.2h2.4l15.4-.5h16.8a1082.3 1082.3 0 0 1 7.2 0h16.6l15.2.5h3.3a984 984 0 0 1 37 2.3 960.5 960.5 0 0 1 26.2 2c5.8.7 5 6.6 0 6a965.6 965.6 0 0 0-26.4-2.3h-.3a978.4 978.4 0 0 0-18.3-1.2h-.6l-9.2-.5h-.3c-2.2 0-4.3-.2-6.4-.3h-2.3l-1.2-.2h-4.5l-1.3-.2H506l-1-.2h-23z" fill="#edb92e"/> - <path d="M482 105c9.6 0 17.3 7.8 17.3 17.4 0 9.5-7.7 17.3-17.2 17.3-9.3 0-17-7.8-17-17.3 0-9.6 7.7-17.3 17-17.3z" fill="#0c4076"/> - <path d="M485.3 85c1.6-.2 3-1.5 3-3.2 0-1.7-1.4-3-3-3.2 0-1.7-1.4-3-3.2-3-1.6 0-3 1.3-3 3-1.6 0-3 1.5-3 3.2a3 3 0 0 0 3 3v6.5h-5.5c0-1.7-1.4-3-3-3-1.8 0-3 1.3-3.2 3-1.7 0-3 1.4-3 3 0 1.8 1.3 3.2 3 3.2 0 1.7 1.4 3 3 3 1.8 0 3.2-1.2 3.2-3h5.5V119h6.3V97.6h5.5c0 1.7 1.4 3 3 3 1.8 0 3-1.4 3.2-3 1.7 0 3-1.5 3-3.2 0-1.7-1.3-3-3-3 0-1.8-1.4-3.2-3-3.2-2 0-3.2 1.4-3.2 3h-5.5V85z" fill="#edb92e"/> - <path d="M487.8 81.8h1v1h-.2v.5h-.2v.3l-.2.3-.2.2v.2h-.2l-.2.2-.2.2h-.2v.2h-.2l-.2.2h-.2v.2h-.8l-.2.2h-.3v-1h.7V84h.2l.3-.2h.2v-.2h.2v-.2l.2-.2V83h.2l.2-.2v-.4l.2-.2v-.4zm-3-3.2h1l-.5-.5h.2l.3.2h.4l.3.2h.3l.2.2.2.2h.2v.2h.2l.2.2.2.3.2.2v.2h.2v.4h.2v.5l.2.2v.7h-1V81h-.2v-.4l-.2-.2V80h-.4v-.2h-.2v-.2h-.2l-.3-.2h-.2V79h-.8l-.4-.6zm.4.5h-.4v-.4l.4.5zm-3-3v-1h.7l.2.2h.2l.3.2h.2l.2.2.2.2h.2v.3l.2.2.2.3.2.2v.2h.2v.4h.2v.8h.2v.3h-1V78h-.2v-.5h-.2v-.2l-.2-.2-.2-.2-.2-.2h-.2v-.2h-.2l-.2-.2h-.4l-.3-.2h-.4zm-3.2 3v-1l-.5.6v-.8l.2-.2V77h.2v-.6h.2v-.2l.2-.2.2-.2.2-.2h.2v-.2h.3v-.2h.3l.3-.2h.4l.2-.2h.4v1h-.5v.2h-.3l-.2.2h-.2v.2h-.2v.2h-.2v.2l-.2.2v.2h-.2v.5h-.2v1l-.6.5zm.5-.4v.5h-.5l.5-.4zm-3 3.2h-1V81l.2-.3v-.5l.2-.2v-.2l.2-.2.2-.3.2-.2h.2l.2-.2h.2v-.2h.3v-.2h.5l.3-.2h.7v1h-.7l-.2.2h-.2l-.2.2-.2.2-.2.2-.2.2v.2h-.2v.4l-.2.2v.8zm3 3h-1l.5.6h-1V85h-.7v-.2h-.3v-.2h-.2l-.2-.2-.2-.2V84h-.2v-.2l-.2-.2-.2-.3v-.5h-.2v-1h1v1h.2v.4h.2v.2h.2v.2l.2.2h.2v.2h.2l.3.2h.7v.2h.2l.5.5zm-.5-.4h.5v.5l-.5-.6zm-.5 7V85h1v6.3l-.5.5-.5-.5zm1 0v.4h-.5l.5-.5zm-6-.6h5.5v1h-5.5l-.5-.5.5-.5zm0 1h-.5v-.5l.5.5zm-3-3v-1h1.2v.2h.3l.3.2.3.2.3.2v.2l.2.2.2.3.2.3.2.3v.4l.2.2v.8h-1v-.7l-.2-.2V90h-.2v-.2h-.2v-.2l-.2-.2-.2-.2h-.2V89h-.4l-.2-.2h-.8zm-3.2 3v-1l-.5.4v-.8l.2-.3V90l.2-.3v-.2h.2v-.2l.2-.2h.2v-.3h.2l.2-.2.2-.2h.2V88h.7v-.2h1.1v1h-1l-.2.2h-.2v.2h-.2v.2h-.2l-.2.2v.2h-.2v.4h-.2v.8l-.2.2v.3l-.5.5zm.5-.5v.5h-.5l.5-.5zm-3 3h-1V93h.2v-.2h.2v-.3l.2-.3.3-.3v-.2h.2v-.2h.2v-.2h.2l.2-.2h.2V91h.7l.2-.2h.8v1h-.7l-.2.2h-.2v.2h-.2v.2h-.2l-.2.2-.2.2v.2h-.2v.5h-.2v.7zm3 3.2h-1l.5.5h-1v-.2h-.5l-.2-.2h-.2v-.2h-.2l-.2-.2-.2-.2v-.2h-.3v-.2l-.2-.2V96h-.2v-.4l-.2-.3v-.8h1v.9h.2v.2l.2.3h.2v.2h.2v.2h.2v.2h.2l.2.2h.5v.2h.4l.6.5zm-.5-.5h.5v.5l-.5-.5zm3 3v1h-1l-.2-.2h-.3v-.2h-.3v-.2h-.2l-.2-.2-.2-.3v-.2h-.2v-.3h-.2V99h-.2v-.5l-.2-.2V98h-.2v-.5h1v.7h.2v.4h.2v.2l.2.2v.2h.2v.2h.2v.2h.2l.2.2h.2l.3.2h.6zm3.2-3v1l.5-.4v.8l-.2.2v.3h-.2v.3l-.2.3-.2.2-.2.2-.2.2-.3.2-.2.2h-.2l-.2.2h-.2l-.3.2h-.8v-1h.9v-.2h.2l.2-.2h.2v-.2h.2l.2-.2V99h.2v-.2l.2-.3v-.2l.2-.2v-.4l.5-.5zm-.5.6V97h.5l-.5.6zm6 .5h-5.5v-1h5.5l.5.6-.5.5zm0-1h.5v.6l-.5-.5zm-.5 22V97.6h1V119l-.5.5-.5-.5zm.5.5h-.5v-.5l.5.5zm6.3 0H479v-1h6.3l.5.5-.5.5zm.5-.5v.5h-.5l.5-.5zm0-21.4V119h-1V97.6l.5-.5.5.6zm-1 0V97h.5l-.5.6zm6 .5h-5.5v-1h5.5l.5.6-.5.5zm0-1h.4v.6l-.4-.5zm3 3v1h-1l-.3-.2h-.2l-.3-.2-.2-.2h-.2v-.2h-.2l-.2-.2v-.2h-.2v-.2l-.2-.2V99h-.2v-.2h-.2v-1l-.2-.2h1v.4l.2.2v.2l.2.3v.2h.2v.2h.2l.2.2v.2h.2l.3.2h.2v.2h1.1zm3.2-3v1l.5-.5v.7h-.2v.5l-.2.3v.4h-.2v.3h-.2v.2h-.2v.2h-.3v.2l-.3.2h-.3l-.2.2h-.3l-.2.2h-.8v-1h.9v-.2h.2v-.2h.2l.2-.2.2-.2V99h.2v-.2l.2-.2v-.2l.2-.2v-.6l.6-.6zm-.5.5V97h.5l-.5.5zm3-3h1v.9l-.2.3v.2h-.2v.6h-.2l-.2.2v.2h-.2v.2h-.3v.2h-.2v.2h-.3l-.3.2h-.2l-.3.2h-.7v-1h.8V97h.2v-.2h.2l.2-.2.2-.2h.2V96l.2-.3v-.2h.2v-.7l.2-.3zm-3-3.2h1l-.5-.6h.7l.2.2h.4l.3.2.3.2.3.2.2.2.2.3.2.2v.5h.2v.3h.2v.7l.2.3v.4h-1v-.6h-.2v-.4l-.2-.2-.2-.2v-.2h-.2l-.2-.2-.2-.2h-.2V92h-.5l-.2-.2h-.5l-.5-.5zm.5.5h-.5v-.5l.5.5zm-3-3v-1h1.1l.2.2h.4v.2h.3v.2l.3.2.2.3h.2v.3h.2v.4l.2.2v.4h.2v.7h-1v-.8h-.2V90l-.2-.2-.2-.2-.2-.2-.2-.2h-.2V89h-.5v-.2h-.6zm-3.2 3v-1l-.6.5v-.9l.2-.2V90l.2-.3.2-.3.2-.3h.2v-.2l.2-.2h.2v-.2h.2l.2-.2h.3l.2-.2h.3l.2-.2h1v1h-1l-.3.2h-.2v.2h-.2l-.2.2v.2l-.2.2-.2.2v.2l-.2.2v.7l-.7.6zm.5-.5v.5h-.6l.6-.5zm-6-.5h5.5v1h-5.5l-.5-.5.5-.5zm0 1h-.5v-.5l.5.5zm.5-7v6.5h-1V85l.4-.6.6.5zm-1 0v-.4h.4l-.4.5zm.5 0v-.4.5zm-.5 0v-.4h.4l-.4.5z" fill="#21231e"/> - <path d="M499.8 122.4h-1v-1.7l-.2-1v-.7l-.3-.8-.2-.8-.2-.8-.3-.8-.3-.7-.4-.6-.4-.7-.4-.7-.5-.7-.5-.6-.5-.6-.6-.5-.7-.6-.6-.6-.6-.5-.5-.6-.7-.4-.7-.4-.6-.4-.8-.3-.7-.4-1-.3-.7-.2h-.8l-.8-.2h-.8l-1-.2h-1v-1h2l.8.2h1l.8.3.8.4.8.2.8.4.8.3.8.4.7.4.7.6.7.5.7.6.6.6.6.6.6.6.6.6.5.7.5.7.5.7.4 1 .4.6.4.8.3.8.3 1 .3.7.2.8v1l.2.7v2zM482 140.2v-1h1.8l1-.2.7-.2.8-.2.8-.2 1-.3.6-.2.8-.3.7-.4.8-.3.7-.4.6-.5.7-.5.6-.5.6-.6.5-.5.5-.6.5-.6.5-.6.4-.7.4-.6.4-.8.3-.7.3-1 .3-.6.3-.8.2-.8v-1l.2-.7v-1.6h1v2.8l-.2.8-.2.8-.3 1-.3.7-.3.8-.3.8-.3 1-.4.6-.5.7-.5.7-.5.7-.6.6-.6.7-.6.6-.6.5-.7.6-.7.5-.7.6-.7.4-.8.4-.8.4-.8.3-.8.4-.8.2-1 .2-.8.2h-.8l-1 .2h-1zm-17.5-17.8h1v1.8l.2.7v.8l.3.8.2.8.3.7.3 1 .3.6.5.8.4.7.3.8.5.6.5.6.5.7.6.5.5.6.5.5.7.5.6.5.7.4.7.4.7.5.7.3.7.3.8.4.8.2.8.2.8.2h1.8l.7.2v1h-1.8l-.7-.2-1-.2-.8-.2-.8-.2-1-.3-.7-.2-.8-.4-.8-.4-.7-.4-.7-.5-.7-.4-.7-.5-.7-.4-.7-.6-.5-.7-.5-.6-.5-.7-.5-.7-.5-.7-.4-.7-.4-1-.3-.7-.5-.8-.2-.8-.3-1-.2-.7v-1l-.2-.8v-1.8zm17.6-17.8v1h-1.7l-.7.2h-.8l-.8.3-.8.3-.8.3-.7.3-.8.2-.8.4-.7.4-.7.4-.6.5-.7.4-.6.5-.6.5-.6.6-.5.7-.5.6-.5.7-.4.7-.5.7-.4.7-.2.8-.3.8-.3.8-.2.8-.2.8v.8l-.2 1v1.7h-1v-2.8l.2-1 .2-.8.3-1 .2-.8.4-.8.2-.8.4-.7.4-1 .5-.6.5-.7.5-.7.6-.6.6-.6.7-.6.6-.6.6-.5.7-.4.7-.5.7-.3.8-.4.8-.3.8-.4 1-.2.7-.3h1l.8-.2h.8l1-.2h.8z" fill="#21231e"/> - <path d="M499 118.8a17.6 17.6 0 0 1 0 6c-5.5-.2-11.2-.3-17-.3-5.5 0-11.2 0-17 .3a17.5 17.5 0 0 1 .3-6l16.8-.3c5.8 0 11.4.2 17 .3z" fill="#edb92e"/> - <path d="M499.8 122.4h-1V120h-.2v-1l1-.2v1.7l.2.2v1.6zm-.7 3l.2-1-.6.3v-.8l.2-.2v-1.1h1v2.2h-.2l-.5.5zm.6-.5v.3h-.5l.6-.4zm-17.5 0v-1H494l.4.2h4.8v1h-10.6l-.5-.2h-6zm-17.4 0l1-.3-.5-.4h4.7l.4-.2H482v1h-11l-.5.2H465l-.5-.3zm.6.3h-.5v-.4l.5.3zm-.7-3h1v2.4l-1 .3v-2.6zm.8-4v1l.5-.3v.8l-.2.2v2.5h-1v-3h.2v-.4l.5-.5zm-.5.5v-.4h.5l-.5.4zm17.3-.8v1h-9.1l-.5.2H466l-.7.2v-1h2.5l.5-.2h9l.5-.2h4.2zm17.5.8l-1 .2.4.4h-3.6l-.5-.2h-10.3l-.5-.2h-2.1v-1h10l.5.2h6.1l.5.6zm-.5-.5h.4v.5l-.4-.5z" fill="#21231e"/> - <path d="M468.8 133.2c-3.6-2.3-4.3 1.2-4.2 4.7.4 13.2 3 25.8-.6 42-1.4 6.4-3.7 10-1.5 11.3 5.7 3.2 8.3 6 7.4 7.7 1.5 3.2 5.7 2.6 12 1.6 6.6 1 10.7 1.6 12.4-1.6-1-1.6 1.7-4.5 7.4-7.7 2.2-1.2 0-5-1.5-11.3-3.5-16.2-1-28.8-.7-42 0-3.6-.5-7-4-4.8-7.3 4.4-19.5 4.5-26.8 0z" fill="#edb92e"/> - <path d="M465 138h-1v-1.5l.2-.3v-1.6l.2-.3v-.3h.2v-.4l.2-.2v-.3h.2l.2-.3.2-.2.2-.2h.2l.2-.2h1.8l.4.2.4.2h.3l.4.3-.4 1-.4-.3h-.2l-.3-.2h-.3l-.2-.2h-1.2v.2h-.2v.2l-.2.2v.2l-.2.2v.4l-.2.3v.4l-.2.2v2.5zm-.5 42l-1-.2.3-1.5.3-1.4.3-1.6.2-1.4.2-1.5.2-1.4v-2.5l.2-1.4V154l-.2-1.2v-2.5l-.2-1.2V148l-.2-1.2v-1.2l-.2-1.3V142l-.2-1.3V138h1v3.5l.2 1.2v2.6l.2 1.2v1.3l.2 1.2v2.5l.2 1.2v1.3l.2 1.3v13.3l-.2 1.4v1.4l-.3 1.5-.2 1.4-.2 1.6-.2 1.4-.2 1.5-.3 1.6zm-1.8 11l-.4.8-.3-.2-.2-.2-.2-.2-.2-.2v-.2l-.2-.3V188l.2-.3v-.4l.2-.3v-.4l.2-.4v-.5l.3-.4.2-.4v-.5l.3-.3v-.5l.3-.5v-.6l.3-.4.2-.6v-.6l.3-.6 1 .3-.2.7v.6l-.3.5v.6l-.2.5-.2.4v.6l-.3.4v.5l-.3.4v.4l-.2.4v.4l-.2.4v.4l-.2.3v.4l-.2.4v1.9l.2.2.2.2zm7.6 7.8l-1 .4v-.4h.2v-1l-.2-.2v-.2l-.2-.2v-.4l-.3-.2-.2-.2-.2-.3h-.3l-.2-.4-.3-.2-.3-.3h-.3l-.4-.4-.4-.3-.3-.2-.5-.2-.4-.3-.3-.3-.5-.3-.5-.3-.4-.3-.5-.3-.6-.2.5-1 .6.4.5.3.5.3.4.3.5.4.4.3.5.3.5.2.3.3.4.3.4.3.3.4.2.2.3.3.3.2.2.2.2.3.3.2.2.2v.2l.3.3v.2l.3.2v.5l.2.2v1.1l-.2.3v-.5zm-1 .4v-.4.4zm13 1l-.2 1h.2-1.2l-.5.2h-1.2l-.6.2h-1l-.5.2h-4.7l-.4-.2h-.3l-.3-.2-.3-.2-.3-.2-.2-.2-.3-.2-.2-.2-.3-.3h-.2l-.2-.4-.2-.4 1-.4v.2l.2.3.2.2.2.2.2.2h.2l.2.2h.2l.3.2h.3l.3.2h.3l.2.2h4.3l.5-.2h1l.6-.2h1.1l.5-.2h.8zm-.2 0h.2zm12-1l1-.4v.4l-.3.4-.2.3h-.2l-.3.4-.2.2-.3.2-.3.2-.3.2-.4.2h-.3l-.3.2h-.4l-.4.2H486l-.6-.2h-.5l-.6-.2h-1.2l-.5-.2h-.6l.2-1h1.8l.5.2h.6l.6.2h1.1l.5.2h4.2l.3-.2h.3l.2-.2h.3l.2-.2.2-.2.3-.3.2-.2.2-.2v-.3l.3-.2v.5zm1-.4v.4-.4zm6.5-8l.5 1-.5.3-.5.4-.5.3-.4.2-.4.2-.4.3-.4.3-.4.3-.4.3-.3.3-.3.3h-.3l-.2.4-.3.2-.3.3h-.2l-.2.4-.2.2-.2.2v.2l-.3.2v.7h-.2v1.2l-.8.5v-.2l-.2-.2v-1.3l.2-.2v-.3l.3-.3v-.3l.3-.2.2-.3.2-.3.3-.3.2-.2.3-.3.3-.4.4-.2.3-.3.4-.2.4-.3.4-.3.4-.2.4-.3.5-.3.5-.3.5-.2.5-.3.5-.3.5-.3zm-1.7-10.7l1-.2v.6l.3.6.2.6.2.5v.7l.3.5v.5l.2.4v.6l.2.5.2.5v.4l.2.3v.4l.2.4v.5l.2.3v.7l.2.3v1.8l-.2.3v.2l-.3.3h-.2l-.2.3-.3.2-.5-1h.2l.2-.2v-.4h.2v-2.5l-.2-.3v-.3l-.2-.3v-.4l-.2-.4v-.4l-.2-.4v-.4l-.3-.5v-.6l-.2-.4v-.6l-.3-.5v-.6l-.3-.6v-.5l-.2-.6-.2-.6zm-.7-42h1v5.9l-.2 1.4v1.2l-.2 1.2v1.3l-.2 1.3v2.5l-.2 1.2v2.6l-.2 1.2v9.3l.2 1.4v1.4l.2 1.3.2 1.5.2 1.5.2 1.4.2 1.5.3 1.3.3 1.5-1 .3-.3-1.5-.3-1.5-.2-1.4-.2-1.5-.2-1.3-.2-1.5v-1.4l-.2-1.4V167l-.2-1.3v-10.3l.2-1.3v-2.5l.2-1.3V149l.2-1.2v-1.3l.2-1.2V143l.2-1.2V138zm-3.3-4.4l-.5-1h.4l.3-.2.2-.2h.3l.4-.2h1.2l.3.2h.2l.2.3v.2l.2.2h.2v.4l.2.2v.3h.2v.7l.2.3v1.5l.2.3v1.1h-1v-2.4l-.2-.3v-.8l-.2-.3v-.4l-.2-.2v-.2h-.2v-.2h-.2v-.2h-.2v-.2h-1.1l-.2.2h-.3l-.3.2-.3.2zm-27 0l.4-1 .8.5.7.5.7.4.7.2.7.3.8.2.8.3 1 .2.7.2 1 .2h.7l1 .2h.8l1 .2h4.6l.7-.2h1l.8-.3h.8l1-.3.7-.2.8-.3.8-.2.8-.3.7-.4.8-.3.7-.4.7-.3.5 1-.7.3-.7.4-.8.4-.7.3-1 .4-.7.3-.7.3-1 .2-.7.2-1 .2h-.8l-1 .2h-1l-.8.2h-4.6l-1-.2h-.8l-1-.2-.8-.2-1-.2-.7-.2-.8-.3-.8-.3-.8-.3-.8-.2-.8-.4-.7-.4-.7-.4z" fill="#21231e"/> - <g id="b"> - <path d="M363 212c-2-4-.3-9.8.3-11 .3-.8-.6-2.2-1-2.8-13-18.3-13.2-20-4.3-26.8 8-6 26.2-12 39.2-16.2 2.7-2 4.4-5 6.8-7.2-25 1.8-52 12-65.5 23.8-7.2 6.2 1.5 19 12.2 38 6.7 5 9.8 7 12.3 2.3z" fill="#edb92e"/> - <path d="M362.8 200.7l1 .4v.2l-.2.2v.3l-.2.3v.5l-.2.2v.6l-.2.4v.7l-.2.3v1.6l-.2.4v2.5l.2.4v.4l.2.4v.4l.2.4v.3l.3.4-1 .3v-.4l-.3-.5v-.4l-.2-.4v-.4l-.2-.5v-.8l-.2-.6v-2.9l.2-.4v-1.2l.2-.3v-.4l.2-.2v-.6l.2-.3v-.6l.2-.2v-.2l.2-.2zm-1-2.2l1-.6v.2h.2v.4h.2v.4h.2v.2l.2.2v.4h.2v1.2l-1-.3v-.6l-.2-.2v-.2l-.2-.2v-.2l-.2-.2v-.2h-.2v-.2zm-4-27.5l.5 1-.8.5-.7.6-.7.6-.5.6-.6.5-.6.5-.5.6-.5.5-.3.4-.3.5-.3.5v.5l-.3.5v1.7l.2.6.2.8.2.7.4.8.4.8.4 1 .5 1 .6 1 .7 1 .7 1.3 1 1.2.7 1.3 1 1.4 1 1.5 1 1.5 1.3 1.7-.8.5-1.3-1.7-1-1.5-1-1.5-1-1.4-1-1.3-.8-1.2-.8-1.2-.7-1-.6-1-.7-1-.4-1-.6-1-.3-.7-.2-1-.2-.7v-.7l-.2-.7v-1.4l.2-.6.2-.6.2-.6.3-.6.4-.6.5-.5.5-.5.5-.5.6-.6.7-.5.7-.7.7-.6.7-.7zm39-16.2l.7.8h-.2l-1.2.5-1.2.5-1.2.4-1.4.3-1.3.4-1.4.5-1.4.4-1.3.5-1.5.5-1.4.5-1.3.5-1.3.5-1.4.5-1.4.5-1.3.5-1.4.5-1.4.5-1.3.6-1.3.6-1.3.5-1.2.7-1.2.5-1.2.6-1 .5-1.2.6-1 .4-1 .6-1 .6-1 .5-1 .7-.7.6-.7.6-.6-1 .8-.5 1-.6.8-.7 1-.6 1-.6 1-.4 1-.6 1.2-.6 1.2-.5 1-.7 1.4-.6 1.3-.5 1.3-.6 1.3-.5 1.2-.4 1.4-.5 1.3-.5 1.3-.5 1.4-.5 1.3-.5 1.4-.5 1.4-.5 1.4-.4 1.4-.5 1.3-.4 1.3-.4 1.3-.4 1.3-.5 1.2-.4 1.3-.5 1.3-.4 1.2-.3zm.7.8h-.2.2zm6.6-7v-1l.4.8-.2.2-.3.2-.3.3-.2.3-.2.2-.2.2v.3l-.3.2-.2.2-.2.2-.2.3-.3.3-.2.3-.2.2-.2.3v.3l-.3.2-.2.3-.2.2-.3.2-.2.3-.2.2-.2.2h-.2l-.3.4-.3.2-.2.2-.3.2-.2.2-.3.2-.2.2-.6-.8v-.2l.3-.2.3-.2.2-.2.2-.2.2-.2.3-.2.2-.2.2-.2v-.2l.3-.3.2-.2.2-.2.2-.2v-.2l.3-.2.2-.2.2-.3.2-.3v-.3l.3-.2.2-.2.2-.3.2-.2v-.2l.4-.3.2-.2.2-.2.2-.3.2-.2h.3l.2-.3.4.8zm0-1l1.4-.2-1 1-.4-1zM338.8 172l-.7-.8 1.5-1 1.4-1.2 1.4-1 1.5-1.2 1.5-1 1.7-1 1.7-1 1.7-1 2-1 1.8-1 2-1 2-1 2-.8 2-1 2.2-.7 2-.8 2.3-.8 2.3-1 2.2-.6 2.3-.7 2.3-.6 2.4-.5 2.3-.6 2.4-.7 2.4-.5 2.4-.4 2.4-.4 2.4-.4 2.3-.3 2.3-.3 2.4-.3 2.3-.2v1l-2.3.2-2.3.3-2.3.3-2.3.3-2.4.4-2.3.4-2.4.4-2.3.5-2.3.6-2.3.5-2.3.6-2.3.7-2.2.7-2.2.7-2.2.8-2.2.8-2.2.8-2 1-2 .7-2.2 1-2 1-2 1-1.8.8-1.8 1-1.8 1-1.7 1-1.6 1-1.5 1-1.6 1-1.5 1.2-1.4 1-1.2 1.2zm12.2 37.3l-.5.8-.2-.2-1-1.6-1-1.8-1-1.7-1-1.7-.8-1.7-1-1.6-.8-1.5-.8-1.5-1-1.5-.7-1.5-.8-1.4-.7-1.3-.7-1.4-.5-1.3-.6-1.3-.6-1.2-.4-1.2-.5-1.2-.3-1-.3-1-.4-1.2v-1l-.2-1v-2.8l.3-.8.3-.8.4-.7.5-.8.5-.7.6-.6.8.8-.6.5-.5.6-.4.7-.3.6-.3.7-.2.8v4.5l.4 1v1l.5 1 .4 1 .4 1.3.5 1.2.4 1.2.6 1.3.7 1.3.7 1.4.7 1.4 1 1.4.7 1.5 1 1.5.8 1.5 1 1.6.8 1.7 1 1.7 1 1.7 1 2 1 1.6h-.3zm-.5.8l-.2-.2.2.3zm12.5 1.3v1l.5-.2-.3.4-.2.4-.3.4-.3.3-.3.2-.2.3-.3.2-.3.2h-.3l-.5.2h-2.1l-.4-.2-.5-.2-.4-.2-.3-.2-.5-.2-.4-.3-.5-.3-.5-.3-.4-.4-.6-.3-.5-.3-.5-.4-.6-.4-.5-.4-.6-.4-.5-.5.5-.8.7.4.5.3.6.5.6.3.5.5.4.4.5.2.4.3.4.3.5.3.4.3.4.2.5.2.4.2h.5l.3.2h1.5l.2-.2h.3l.2-.3.2-.2.3-.2.2-.3v-.3l.4-.4.2-.4.4-.4zm-.4.3v-.4h.4l-.4.3zm.4.6v-1l.5.3-.5.6zm.5-.7l.3.6h-.8l.5-.7z" fill="#21231e"/> - <path d="M359 213.6a34 34 0 0 1-1-4.7c-.7-2.8-.4-5.7.5-8.3-3-4.2-6.4-8.8-8.8-13.3-1.7-3.3-3-7-2-10.6 1-4 4.5-6.6 7.6-9 3.7-2.8 8.6-5.3 13.6-7.5 11-4.6 20-7 26.5-7l-4.2 3.8c-12 4-26.4 9.2-33.3 14.5-9 6.8-8.6 8.4 4.3 26.7.4.6 1.3 2 1 2.7-.6 1.2-1.8 7.2 0 11.4-1 2-2.6 1-4.2 1.2z" fill="#edb92e"/> - <path d="M357.4 209l1-.2v.7l.2.2v.7h.2v.8l.2.3v.3l.2.3v.7h.2v.6h.2l-1 .4v-.3l-.2-.3v-.2l-.2-.3v-.5l-.2-.3v-.6h-.2v-.5l-.2-.3v-.7l-.2-.3v-.2zm1-.2zm-.4-7.8l1-.6v.5l-.2.4v.2l-.2.2v1l-.2.2v.8l-.2.2v4.7l.2.3-1 .2v-.6l-.2-.2V203h.2v-1l.2-.2v-.5l.2-.2v-.2l.2-.3v.5zm1-.6v.5-.6zm-9.7-12.8l1-.5v.6l.3.4.3.4v.4l.4.5.2.4.3.4v.5l.4.4.3.4.2.4.2.4.3.4.2.4.3.5.3.4.3.3.3.4.2.4.2.5.3.5.3.4.3.4.3.4.3.4.2.4.3.4.2.4.3.4.3.4.3.4.3.4-1 .6-.2-.4-.3-.4-.3-.4-.3-.4-.4-.4-.3-.4-.2-.4-.2-.4-.3-.4-.3-.4-.3-.5-.4-.4-.3-.3-.3-.4-.2-.4-.3-.5-.3-.5-.3-.4-.4-.4-.3-.4-.2-.5-.2-.4-.3-.5-.2-.4-.3-.4-.3-.4-.2-.4-.3-.5-.2-.4-.2-.5-.3-.5-.2-.4zm-2-11l1 .4-.2.3v4.1l.2.4v.3l.2.3v.7l.3.3v.4l.2.4v.6l.3.3v.3l.3.3v.2l.3.3v.3l.2.3-1 .6v-.3l-.2-.3-.2-.3v-.3l-.3-.4v-.3l-.3-.3v-.3l-.3-.3-.2-.3v-.3l-.2-.2v-.4l-.2-.3v-.3l-.2-.3v-.7l-.2-.4V180l-.2-.4V178l.2-.2v-.7l.2-.3zm7.7-9.2l.6.8-.3.2-.3.3-.3.2h-.3l-.3.3-.2.3-.2.2-.3.3-.3.3-.3.2-.3.3-.2.2-.3.3-.4.3-.2.2-.3.3v.3l-.4.3-.2.3-.2.2-.3.3-.3.3-.2.3-.2.4v.3l-.3.3-.2.3v.3l-.3.3v.3l-.2.3v.4l-1-.3v-.4l.2-.4v-.4l.2-.4.2-.4v-.3l.3-.4.2-.2.2-.3.2-.3v-.3l.4-.5.2-.3.2-.2.3-.3.4-.3.2-.3.3-.2.2-.2.3-.3.2-.3.3-.2.3-.3.3-.2.3-.3.2-.2.3-.2.3-.3.3-.2h.4l.3-.4.3-.2zm13.7-7.5l.4.8-.4.2-.4.2-.5.2-.5.2-.4.2-.5.2-.4.3-.6.2-.5.2-.5.2h-.5l-.4.3-.5.3-.3.2-.4.2-.5.3-.4.2-.4.2-.4.3-.5.2-.3.2-.4.3-.4.2-.5.2-.4.2-.2.3-.4.2-.4.2-.4.2-.3.3-.4.3-.4.2-.6-.8.3-.3h.4l.4-.4.4-.3.4-.2.4-.2.4-.2.4-.3.4-.2.4-.2.4-.2.4-.3.5-.2.5-.2.4-.2.4-.2.4-.3h.4l.5-.3.4-.3.6-.2.4-.2.5-.2.5-.3.4-.2.5-.2h.4l.4-.3.5-.2.5-.2.4-.2h.5zm0 0zm27-6.4l-.6-.7.5.7H394l-.6.2h-1.8l-.7.2h-.8l-.7.2h-.7l-.8.3-.8.2h-.7l-.8.2-.8.2-1 .2-.8.2-.8.3-1 .3-.8.3-1 .3-.8.2-1 .3-.8.3-1 .3-1 .5-1 .3-.8.4-1 .4-1 .4-1 .4-1 .4-.5-1 1-.4 1-.4 1-.4 1-.4 1-.3 1-.5 1-.3 1-.4 1-.3.8-.3 1-.3.8-.4 1-.2.8-.3h1l.8-.4.8-.2.8-.2.8-.2h.8l.8-.3.8-.2h.7l.7-.2h.8l.7-.2h1.4l.5-.2h1.9l.4.8zm-.3-1h1.4l-1 1-.4-1zm-4.4 4l4-3.7.8.6-4 3.8-.3.2-.5-1zm.7.8l-.2.2.2-.2zM358.3 172l-.6-1 .7-.5.7-.5 1-.5.7-.5.8-.5 1-.5.8-.4 1-.5 1-.4.8-.5 1.2-.4 1-.5 1-.3 1-.5 1.2-.5 1-.4 1.3-.5 1-.4 1.2-.5 1-.5 1.3-.5 1-.4 1.3-.4 1.2-.5 1.2-.4 1.2-.4 1.2-.5 1-.4 1.3-.3 1.2-.4 1-.3 1.2-.4.3 1-1.2.3-1 .3-1.3.4-1 .4-1.3.5-1.2.4-1.2.3-1.2.4-1 .4-1.2.6-1.2.4-1 .4-1.3.5-1 .3-1.3.5-1 .4-1.2.5-1 .4-1 .6-1.2.5-1 .5-1 .5-1 .5-1 .5-.8.5-1 .4-.8.4-.8.5-.8.4-.7.5-.7.4-.7.5zm4.4 26l-.8.5-1.3-1.7-1-1.5-1-1.5-1-1.4-1-1.3-.8-1.2-.8-1.2-.7-1-.6-1-.7-1-.4-1-.5-1-.4-.7-.2-1-.2-.7v-.7l-.2-.7v-1.4l.2-.6.2-.6.2-.6.3-.6.4-.6.5-.5.5-.5.5-.5.6-.6.7-.5.7-.7.7-.6.7-.7.6 1-.8.5-.7.6-.7.6-.5.6-.6.5-.6.5-.5.6-.5.5-.3.4-.3.5-.3.5v.5l-.2.6v2.2l.3.8.3.7.4.8.4.8.4 1 .6 1 .5 1 .7 1 .7 1.3 1 1.2.7 1.3 1 1.4 1 1.5 1 1.5 1.3 1.7zm1 3l-1-.3v-1h-.2v-.2l-.2-.2v-.2h-.2v-.4l.7-.7.2.2v.4h.2v.2l.2.2v.2l.2.2v.4h.2v1.4zm.2 11.6l-1-.5v.6l-.2-.4-.2-.5v-.4l-.2-.4v-.6l-.2-.4v-.5l-.2-.4v-5.4l.2-.4v-.7l.2-.4v-.5l.2-.3v-.4l.2-.2 1 .3v.2l-.2.2v.6l-.2.2v.6l-.2.3v1.1l-.2.4v5.1l.2.4v.8l.3.4v.4l.2.4.2.4v.4zm0-.4v.4-.4zm-5 1v1-1h.2l.2-.2h1.4v.2h1.5l.2-.2h.2v-.2h.2v-.2l.2-.2.2-.3 1 .6-.2.2-.2.2v.2l-.2.2h-.2v.2l-.3.2h-.4l-.2.2h-.3v.2h-3v-1zm0 1v-1l.6.2-.5.7zm.6-.8l.2.7h-.7l.6-.6z" fill="#21231e"/> - <path d="M468 132.2c.3-2.3 0-2-.3 1.6-.3-.7-.8-1-1.4-1-1 0-1.7 1.6-1.8 5.2l.2 2.8c-33-.7-52.7 4.3-57.7 14-4.2 7.8 3 21 13.6 36 1.3 1.8 1.2 1.6 0 3-1.8 2.3-3.8 6-2.3 9.2-6.5 3.5-14.2 4.4-21 1.5-1-3-3.4-4.4-5.4-5.8-.5-.2-2-1-2-1.4l-10.2-31.6c-9.5-30.7 75.3-33.5 88.3-33.5z" fill="#edb92e"/> - <path d="M467.3 134l1-.4-1 .2V132h.2v-1.2l.2-.2.6-.3.3.3v1.6h-1V131l.4.2h.6v-.2 1l-.2.2v1.8h-1zm1 0l-.2 1.6-.7-1.5h1zm-2-.7v-1h.7v.2h.4v.2h.2v.2h.2v.2h.2v.2h.2v.2l-1 .5v-.2h-.2v-.2h-.2v-.2h-.4zm0 0zM465 138h-1v-1.8l.2-.3v-.9l.2-.3v-.7h.2v-.3l.2-.3.2-.3.2-.2h.2v-.2h.2v-.2h.5v1h-.2v.2h-.2v.2l-.2.2v.3l-.2.3v.6l-.2.2v2l-.2.3v.4zm-1 0zm.7 3.3v-1l-.5.5v-2.3h-.2v-.4l1-.2v1.8l.2.2v1l-.5.5zm.5-.5v.5h-.5l.5-.5zM407.4 155l-1-.5.7-1 .7-.8.7-1 .8-.7 1-.8 1-.8 1-.8 1-.7 1.3-.7 1.2-.7 1.4-.6 1.6-.6 1.5-.5 1.7-.7 1.7-.5 1.8-.4 2-.5 1.8-.5 2-.3 2.2-.4 2.2-.3 2.2-.2 2.4-.3 2.4-.2 2.5-.2h2.5l2.7-.2h2.7l2.8-.2h9v1H453l-2.8.2h-2.6l-2.6.2-2.5.2-2.4.2-2.3.3-2.2.2-2.2.3-2 .4-2 .3-2 .4-1.8.4-1.8.4-1.7.5-1.6.5-1.5.6-1.5.5-1.3.5-1.3.7-1.2.6-1 .7-1 .7-1 .7-1 .7-.6.8-.7.8-.6.8-.6 1zm13.6 35.5l-.8.6-1-1.3-1-1.4-1-1.4-1-1.5-.8-1.3-.8-1.4-1-1.3-.7-1.3-.8-1.3-.8-1.4-.7-1.2-.7-1.3-.6-1-.6-1.3-.5-1.2-.5-1.2-.5-1.2-.4-1-.5-1-.3-1.2-.3-1-.3-1-.2-1.2v-1l-.2-1V158l.3-.8.3-1 .2-.7.3-.8 1 .5-.4.7-.2.7-.2.8-.2.8v4.5l.2 1 .3 1v1l.5 1 .3 1.2.4 1 .5 1.2.5 1 .5 1.2.6 1.2.6 1.2.6 1.3.7 1 .7 1.4.8 1.3.8 1.3.8 1.3 1 1.3.8 1.4 1 1.3.8 1.4 1 1.4 1 1.5zm0 3.8l-.8-.7.2-.3.2-.2h.2v-.2l.2-.2v-.4l-.2-.2v-.2h-.2v-.3h-.2v-.3h-.2l.8-.7.2.3.2.3v.2h.2v.4h.2v.2l.2.2v1l-.2.2v.2h-.2v.2l-.2.2-.2.2-.2.3zm-2.5 9l-.4-.8-.2.7v-.3l-.2-.5v-.3l-.2-.3v-3.5l.2-.3v-.3l.2-.4.2-.3v-.3l.2-.3.2-.3v-.3l.3-.2v-.3l.3-.2.2-.3v-.2l.3-.3.2-.2v-.3l.3-.2.2-.2.8.7-.2.2-.2.2v.2h-.3v.3l-.3.3-.2.2v.3l-.3.3v.3l-.2.2-.2.3v.7l-.2.2v.2l-.2.3v.6l-.2.4v2.7l.2.3.2.3-.3.6zm.3-.5v.4l-.3.2.3-.6zm-22 1.8l1-.3-.2-.3.6.2.7.3.5.2.6.2h.8l.6.2.6.2h.7l.6.2h5.7l.7-.2h.5l.7-.3h.6l.7-.2.6-.2.7-.2.7-.2.6-.2.6-.3.6-.3.6-.2.7-.4.6-.3.5 1-.6.2-.7.4-.6.4-.7.2-.6.3-.7.2-.6.2-.6.2-.7.2-.6.2h-.6l-.7.3h-.7l-.6.2h-.7l-.7.2h-5l-.7-.2h-.7l-.6-.3h-.7l-.7-.3-.6-.3-.7-.3-.6-.2-.8-.3-.3-.4zm.4.3l-.2-.2v-.2l.2.3zm-5.6-5.8l.6-1 .2.2.2.2h.2l.2.2.2.2h.2l.2.2v.2h.3v.3h.3l.2.3h.2l.2.3.3.3.2.2.2.2.2.2v.2l.3.2v.2l.3.2.2.2v.2l.3.3.2.2.2.2v.2l.3.3v.3l.2.3-1 .3-.2-.2v-.3h-.2v-.3l-.2-.3-.2-.2v-.2l-.2-.2-.2-.2v-.2l-.3-.2-.2-.2-.3-.3-.2-.2-.3-.3h-.2l-.2-.3v-.2l-.3-.2h-.2v-.3h-.3l-.2-.2h-.2l-.2-.2h-.2l-.2-.3h-.2l-.2-.2h-.2zm-2-1.7l.8-.3h.2v.2h.2l.2.2h.2v.2h.4v.2h.2l.2.2h.2l-.6 1-.2-.2h-.2v-.2h-.4v-.2h-.2l-.2-.2h-.2v-.2h-.2v-.2h-.2v-.2h-.2v-.2zm-10.2-31.7l1-.3.2 1 .3 1 .2.8.3 1 .3 1 .3.8.4 1 .3 1 .3 1 .3 1 .3 1 .3.8.2 1 .4 1 .3 1 .2 1 .3 1 .3 1 .4 1 .3 1 .3 1 .3 1 .5 1 .3 1 .3 1 .5 1 .3 1 .3 1 .4 1.2.4 1 .3 1 .4 1.2-1 .3-.3-1-.2-1.2-.3-1-.4-1-.2-1-.3-1-.3-1.2-.4-1-.3-1-.3-1-.4-1-.3-1-.3-1-.3-1-.4-1-.4-1-.3-1-.4-1-.3-1-.3-.8-.3-1-.4-1-.3-1-.3-1-.3-.8-.3-1-.2-1-.3-1-.3-.8-.3-1-.4-.8-.2-1zm88.2-33.6h1l-.5.5h-5.4l-2.5.2h-2.8l-3 .2-3.3.2-3.5.2-3.7.3-3.8.3-4 .4-4 .5-4 .6-4.2.6-4 .7-4.2 1-4 .8-4 1-3.7 1-3.7 1.3-3.4 1.4-3.3 1.4-3 1.5-2.6 1.6-2.3 1.7-2 2-1.6 1.8-1.2 2.2-.8 2.2-.4 2.3v2.5l.7 2.7-1 .3-.6-2.8v-2.8l.3-2.6 1-2.4 1.2-2.2 1.8-2 2-2 2.5-2 2.7-1.6 3-1.5 3.3-1.6 3.5-1.3 3.6-1 4-1.2 3.8-1 4-1 4-.7 4.2-.6 4.2-.6 4-.6 4-.5 4-.4 4-.4 3.7-.4 3.5-.2 3.3-.2 3-.2h3l2.4-.2h5.4l-.6.4zm1 0v.5h-.5l.7-.5zm-.5 0h-.4.5zm.7 0v.5h-.6l.7-.5z" fill="#21231e"/> - <path d="M405 190.2c3.5 0 6.4 2.8 6.4 6.4 0 3.5-3 6.4-6.4 6.4s-6.4-3-6.4-6.4c0-3.6 3-6.4 6.4-6.4z" fill="#fff"/> - <path d="M412 196.6h-1c0-2.2-1.4-4.4-3.4-5.3a5.8 5.8 0 0 0-2.6-.6v-1c2.3 0 4.6 1.2 5.8 3.2a7 7 0 0 1 1 3.6zm-7 7v-1c2.2 0 4.3-1.4 5.2-3.4.4-.8.7-1.7.7-2.6h1c0 2.3-1.4 4.6-3.4 6a7 7 0 0 1-3.6 1zm-7-7h1c0 2.2 1.4 4.3 3.4 5.3a5.8 5.8 0 0 0 2.6.5v1c-2.3 0-4.6-1.3-5.8-3.3a7 7 0 0 1-1-3.6zm7-7v1c-2.2 0-4.3 1.4-5.2 3.3a6 6 0 0 0-.7 2.6h-1c0-2.4 1.4-4.7 3.4-6a6.8 6.8 0 0 1 3.6-1z" fill="#21231e"/> - <path d="M350.8 203.6c3.2 0 6 2.7 6 6s-2.8 6-6 6c-3.3 0-6-2.7-6-6s2.7-6 6-6z" fill="#fff"/> - <path d="M357.2 209.6h-1c0-2-1-4-2.8-4.8a5.4 5.4 0 0 0-2.6-.7v-1c2 0 4.3 1.3 5.4 3a6.5 6.5 0 0 1 1 3.6zm-6.4 6.4v-1c2 0 4-1.2 4.8-3a5.5 5.5 0 0 0 .6-2.4h1c0 2-1.2 4.3-3 5.4a6.4 6.4 0 0 1-3.4 1zm-6.5-6.4h1c0 2 1.2 4 3 4.8.8.4 1.6.6 2.5.6v1c-2.2 0-4.4-1.2-5.5-3a6.5 6.5 0 0 1-1-3.4zm6.5-6.5v1c-2 0-4 1.3-5 3a5.5 5.5 0 0 0-.5 2.6h-1c0-2.2 1.2-4.4 3-5.5a6.4 6.4 0 0 1 3.5-1z" fill="#21231e"/> - <path d="M345 192.7c3.4 0 6 2.7 6 6s-2.6 6-6 6c-3.2 0-5.8-2.7-5.8-6s2.6-6 6-6z" fill="#fff"/> - <path d="M351.5 198.7h-1c0-2-1.2-4-3-5a5.3 5.3 0 0 0-2.4-.5v-1c2.3 0 4.4 1.2 5.5 3a6.5 6.5 0 0 1 1 3.5zM345 205v-1c2 0 4-1 4.8-2.7a5.5 5.5 0 0 0 .7-2.6h1c0 2.2-1.2 4.3-3 5.5a6.4 6.4 0 0 1-3.4 1zm-6.3-6.3h1c0 2 1.2 4 3 4.8.7.4 1.6.6 2.4.6v1c-2 .2-4.2-1-5.3-3a6.5 6.5 0 0 1-1-3.3zm6.4-6.5v1c-1.8 0-3.7 1-4.6 2.8a5.5 5.5 0 0 0-.7 2.7h-1c0-2.2 1.2-4.4 3-5.5a6.4 6.4 0 0 1 3.4-1z" fill="#21231e"/> - <path d="M339.8 181.7c3.3 0 6 2.7 6 6s-2.7 6-6 6-6-2.7-6-6 2.7-6 6-6z" fill="#fff"/> - <path d="M346.2 187.7h-1c0-2-1.2-4-3-5a5.4 5.4 0 0 0-2.4-.5v-1c2.2 0 4.3 1.2 5.4 3a6.5 6.5 0 0 1 1 3.5zm-6.4 6.4v-1c2 0 3.8-1 4.7-2.7.5-.8.7-1.7.7-2.6h1c0 2-1 4.3-3 5.4a6.4 6.4 0 0 1-3.4 1zm-6.4-6.3h1c0 2 1 4 3 4.8.7.4 1.5.6 2.4.6v1c-2.2 0-4.3-1-5.4-3a6.5 6.5 0 0 1-1-3.3zm6.4-6.5v1c-2 0-4 1.2-4.8 3a5.5 5.5 0 0 0-.6 2.5h-1c0-2.2 1-4.4 3-5.5a6.4 6.4 0 0 1 3.4-1z" fill="#21231e"/> - <path d="M444.3 202.2c3.4-.3 2.5 5.8 2 7.2-1 1.8-1.8 1.8-3 .2-.8-1.3-2.4-7.2 1-7.5z" fill="#edb92e"/> - <path d="M446.6 209.6l-1-.4h.2v-.7l.2-.3v-.5l.2-.3V204h-.2v-.3l-.2-.2v-.2l-.2-.2h-.2l-.3-.2h-.2l-.2-.2h-.3v-1h.7l.3.2h.3l.3.2v.2l.3.3.2.2.2.3v.2l.2.3v.7l.2.3v3.7l-.2.3v.5l-.2.3v.5h-.2zm-3.7.3l.8-.7.2.3v.2h.2v.2h.2v.2h.7l.2-.2v-.2h.2v-.2h.2v-.3l1 .3v.2l-.2.2v.3h-.2v.2l-.2.2-.2.2h-.4v.2H444v-.2h-.2v-.2h-.2v-.2h-.2v-.3h-.2v-.3h-.3zm1.2-8.4v1h-.4v.2h-.3v.2h-.3v.3l-.2.2v.4h-.2v3.2l.2.2v.6l.2.2v.3l.2.2v.2l.2.2v.2h.2l-1 .7v-.5l-.2-.2v-.2l-.2-.4v-.2l-.2-.3v-.2l-.2-.3v-.7l-.2-.3v-3l.2-.3v-.3l.3-.3.2-.2.2-.3h.2l.2-.3.3-.2h.4l.2-.2z" fill="#21231e"/> - <path d="M444.5 205.5c8-.6 6 13.8 4.4 17-2 4.2-4 4.3-6.7.5-2-3-5.8-17 2.2-17.5z" fill="#fff"/> - <path d="M449.4 222.7l-1-.4.2-.3.2-.4v-.4l.3-.5.2-.5v-.6l.2-.6.2-.7V217l.2-.7v-5.1l-.3-.7v-.6l-.3-.7-.3-.6-.3-.5-.3-.5-.3-.4-.3-.4-.4-.4-.5-.2-.5-.2-.5-.2h-1.4v-1h1.5l.6.2.7.2.5.4.6.4.4.4.4.5.4.7.3.6v.7l.3.6.2.7v.7l.3.8v6.3l-.3.7v.7l-.2.6v.6l-.3.6v.5l-.3.5v.4l-.3.3zm-7.5.5l.8-.5.2.3.2.3.3.3.2.3h.2v.4h.3l.2.3.2.2h.4l.2.2h1v-.2h.3l.2-.3v-.2l.2-.2.2-.2h.2l.2-.4v-.3l.3-.3.3-.3.2-.4 1 .4-.3.4-.2.5-.2.3-.2.4-.2.3-.2.3-.2.2-.2.2-.2.3-.3.2h-.2v.3h-.4l-.2.2H445l-.4-.2h-.2l-.3-.3v-.2l-.4-.2-.2-.2-.2-.2-.3-.2-.3-.3-.3-.4-.2-.4-.3-.4zm2.5-17.2v-1 1h-.6l-.7.2-.5.2-.5.3-.4.3-.5.4-.3.4-.3.4-.3.6-.2.5v.6l-.2.5v.7l-.2.7v.6l.2.7v1.4l.2.7v.8l.3.7v.6l.3.7.2.6.2.5.2.6.2.7.2.5.2.4.2.4.2.4.2.3-1 .5v-.3l-.3-.5-.2-.4-.2-.4v-.6l-.4-.5-.2-.7-.2-.6-.2-.7-.2-.7v-.7l-.3-.6v-.8l-.2-.7V213l-.2-.7v-.8l.2-.7v-.6l.2-.7v-.7l.4-.6.2-.6.4-.6.4-.5.4-.5.5-.4.6-.3.7-.3.7-.2h.8v1zm0-1v1-1z" fill="#21231e"/> - <path d="M379.7 210.8c3.3-1 4 5 3.6 6.6-.4 2-1.2 2.2-2.7 1-1-1.2-4-6.5-1-7.6z" fill="#edb92e"/> - <path d="M383.8 217.5l-1-.2v-2.8l-.2-.3v-.7l-.2-.3v-.3l-.2-.2v-.3l-.3-.2-.2-.2-.3-.3-.3-.3h-.3l-.3-.2h-.6l-.4-1h1.5l.2.2.3.2.2.2.3.2.2.3.2.2v.3l.3.3v.4l.2.3v.3l.2.3v.3l.2.4v.6l.2.3v2.5zm-3.5 1l.7-.6h.2v.2h.2l.2.2h.2v.2h.4l.2-.2v-.2h.2v-.6h.2v-.3l1 .2v.4h-.2v.4l-.2.3v.2h-.2l-.2.2-.2.2h-.2l-.2.2h-1v-.2h-.3l-.2-.2h-.2v-.2h-.2l-.2-.2v-.2zm-.7-8.2l.3 1h-.3l-.2.2h-.2v.2l-.2.2v.2l-.2.2v1.8l.2.4v.3l.2.3v.2l.2.3.2.3v.3l.2.3.2.3v.2l.3.2v.2l.2.2.3.3.2.2-.7.6h-.2v-.4l-.3-.2v-.2l-.3-.2v-.3l-.3-.2v-.2l-.2-.3v-.3l-.3-.3v-.4l-.2-.3v-.3l-.3-.3v-.7l-.2-.3V212l.3-.2.2-.3.2-.3.3-.2.2-.2h.2l.4-.3z" fill="#21231e"/> - <path d="M380.7 214c7.7-2.5 9.2 12 8.4 15.5-1 4.5-2.8 5-6.2 2-2.6-2.4-9.7-15-2-17.5z" fill="#fff"/> - <path d="M389.6 229.6l-1-.2v-.8l.2-.4v-2.9l-.2-.7V223l-.3-.7v-.7l-.3-.8-.2-.7-.2-.6-.2-.7-.3-.7-.2-.6-.3-.6-.3-.4-.4-.5-.3-.4-.4-.3-.4-.4-.4-.4-.5-.2h-.5l-.5-.2h-1.1l-.6.3-.4-1 .7-.2h2.2l.7.2.7.2.5.4.5.5.5.4.4.5.4.5.4.6.3.7.3.6.3.6.3.7.2.8.2.8.2.7v.8l.3.7v1.5l.2.7v4.4zm-7 2.3l.5-1 .5.4.2.2.3.3h.3l.3.3h.2l.3.3h.3l.2.2h1.4l.2-.2.2-.2.2-.3.3-.3v-.6l.2-.2v-.3l.2-.4v-.2l.2-.4 1 .2v.4l-.2.4v.4l-.2.4-.2.3v.3l-.2.3-.2.4v.3l-.3.2h-.2v.3l-.3.2h-.2l-.2.3h-.8l-.3.2h-.5l-.3-.2h-.2l-.3-.2h-.4l-.3-.3-.3-.2h-.3l-.3-.3-.3-.3-.2-.2-.3-.3zm-2-18.5l.3 1-.7.2-.6.3-.4.3-.4.4-.4.4-.3.5-.2.5v.5l-.2.6v2.5l.2.6.2.7.2.6.2.7.3.7v.7l.4.6.3.7.4.6.4.6.3.6.4.6.4.5.3.4.3.4.4.4.2.4.3.3-.5 1-.3-.4-.3-.3-.4-.4-.4-.5-.3-.5-.4-.5-.4-.6-.3-.7-.5-.6-.3-.6-.4-.6-.3-.6-.3-.7-.3-.7-.3-.7-.3-.7-.2-.8-.2-.8v-.7l-.2-.7V218l.2-.7.2-.6.2-.6.3-.5.4-.5.6-.5.6-.4.7-.2.6-.3zm0 .5v-.5.5z" fill="#21231e"/> - <path d="M464.2 137.8c-17.2-1.6-35 .2-52.3 7-14.8 6-13.4 23.2 4.6 47-1.7 3-2.6 6.8-2.7 11h4.8c-1.3-2.8 0-6.4 1.8-9 1-1.5 1.3-1.2 0-3-10.7-15-17.8-28.2-13.6-36 5-9.7 24.6-14.7 57.7-14 0-1 0-1.8-.2-2.7 0 0-.2 0-.3-.2z" fill="#edb92e"/> - <path d="M412 145.4l-.3-1 1.7-.6 1.6-.6 1.7-.6 1.6-.5 1.6-.4 1.6-.5 1.6-.4 1.7-.4 1.5-.4 1.7-.4 1.6-.4 1.7-.3 1.6-.3 1.8-.3h1.6l1.7-.3 1.7-.2 1.7-.2 1.6-.2h3.3l1.6-.2h11.5l1.6.2h1.6l1.6.3v1l-1.7-.2h-4.9l-1.6-.2h-9.7l-1.6.2H443l-1.5.3-1.7.2-1.6.2-1.6.2H435l-1.7.4-1.6.3-1.7.3-1.6.4-1.6.3-1.7.5-1.5.4-1.6.4-1.8.5-1.6.6-1.6.6-1.7.6-1.6.6-1.6.6zm5 46.7l-1-.4.2.5-1.7-2-1.5-2.3-1.5-2-1.3-2.2-1.3-2-1.2-2-1-2-1-2-1-2-.7-1.7-.6-1.8-.5-1.8-.6-1.7-.4-1.6-.3-1.7-.2-1.6v-4.4l.2-1.3.3-1.3.4-1.2.5-1.2.5-1.2.7-1 .8-1 .8-1 1-.7 1-.8 1.3-.8 1.4-.6 1.3-.5.4 1-1.2.5-1.2.6-1 .7-1 .8-1 1-1 .8-.6 1-.7 1-.5 1-.5 1-.3 1.2-.3 1.2-.2 1.2v3.8l.2 1.5.3 1.7.3 1.6.5 1.6.6 1.6.7 1.8.8 1.8 1 2 .8 1.8 1 2 1.2 2 1.2 2 1.4 2 1.4 2.2 1.5 2 1.7 2.3v.6zm0-.5l.2.3-.2.3v-.5zm-3 11v1l-.6-.6v-2.5l.2-.4v-1l.2-.4v-.7l.2-.5v-.4l.2-.2v-.4l.2-.3v-.3l.2-.3v-.4l.2-.3v-.3l.2-.3v-.3l.3-.3v-.3l.2-.2.2-.3v-.3l.3-.3v-.4l1 .5v.4l-.3.2v.3l-.2.2-.2.3v.3l-.2.3v.4l-.2.3v.3l-.2.4v.3l-.2.3v.3l-.2.4v.7l-.2.3v.8l-.2.4v.8l-.2.4v1.4l-.2.4v.7l-.5-.6zm0 1h-.6v-.6l.5.5zm4.3-.4l1-.4-.5.8h-4.6v-1h4.6l-.5.7zm1-.4l.3.7h-.8l.4-.7zm1-9l.7.6-.2.2v.3l-.2.2-.2.2v.2l-.3.3v.4l-.2.3-.2.2v.3l-.2.3v.2l-.2.3v.7l-.2.2v.5l-.2.3v2.2l.2.3v.4l.2.2-1 .5v-.5l-.2-.3v-.7l-.2-.3v-2.7l.2-.3v-.3l.2-.2v-.3l.2-.3v-.3l.2-.4v-.3l.2-.3.2-.3v-.2l.2-.3.2-.3v-.3l.3-.3v-.3h.3l.2-.3zm0-2.5l.7-.5.2.3.2.3v.2h.2v.4h.2v.4l.2.2v.5l-.2.2v.2h-.2v.2l-.2.2v.2h-.2v.3l-.2.2-.8-.6v-.2l.2-.2.2-.2v-.2h.2v-.4h.2v-.2h-.2v-.2l-.2-.2v-.3h-.2v-.3h-.2zm-13.8-36.5l1 .5-.4.7-.2.7-.2.8-.2.8v4.5l.2 1 .3 1v1l.5 1 .3 1.2.4 1 .5 1.2.5 1 .5 1.2.6 1.2.6 1.2.6 1.3.7 1 .7 1.4.8 1.3.8 1.3.8 1.3 1 1.3.8 1.4 1 1.3.8 1.4 1 1.4 1 1.5-.8.6-1-1.3-1-1.4-1-1.4-1-1.5-.8-1.3-.8-1.4-1-1.3-.7-1.3-.8-1.3-.8-1.4-.7-1.2-.7-1.3-.6-1-.6-1.3-.5-1.2-.5-1.2-.5-1.2-.4-1-.5-1-.3-1.2-.3-1-.3-1-.2-1.2v-1l-.2-1V158l.3-.8.3-1 .2-.7.3-.8zm57.7-13.7h1l-.5.5h-14.5l-2.6.2H445l-2.5.3-2.4.2-2.3.3-2.2.2-2.2.3-2 .4-2 .3-2 .4-1.8.4-1.8.4-1.7.5-1.6.5-1.5.6-1.5.5-1.3.5-1.3.7-1.3.6-1 .7-1 .7-1 .7-.8.7-.8.8-.7.8-.6.8-.6 1-1-.5.7-1 .7-.8.7-1 .8-.7 1-.8 1-.8 1-.8 1-.7 1.2-.7 1.3-.7 1.4-.6 1.6-.6 1.5-.5 1.7-.7 1.7-.5 1.8-.4 2-.5 1.8-.5 2-.3 2.2-.4 2.2-.3 2.2-.2 2.4-.3 2.4-.2 2.5-.2h2.5l2.7-.2h2.7l2.8-.2h9l-.6.6zm1 0v.5h-.5l.5-.5zm-1-2.3l.7-.7v1.9h.2v1h-1v-2.3l-.2-.2v-.4.3zm.7-.7v.3-.2zm-1.2-.4l.8.7v-.6.2h.2v.2l-.7.7v-.4h-.2v-.6zm0 .7l-.3-.2.3-.4v.7zm.8 0l-.8-.6h.4l.4.7zm-.4-.7h1l-.6.8-.4-.7z" fill="#21231e"/> - <path d="M380.6 142.7c3.4 0 6 2.7 6 6s-2.6 6.3-6 6.3-6.2-2.7-6.2-6.2c0-3.4 2.8-6 6.2-6z" fill="#fff"/> - <path d="M387.2 148.8h-1c0-2-1.2-4-3-5a5.6 5.6 0 0 0-2.6-.6v-1c2.2 0 4.5 1.2 5.6 3a6.7 6.7 0 0 1 1 3.6zm-6.6 6.7v-1c2 0 4-1.2 5-3 .4-1 .6-1.8.6-2.7h1c0 2.3-1.2 4.5-3 5.7a6.6 6.6 0 0 1-3.6 1zm-6.7-6.7h1c0 2 1.2 4.2 3 5a5.6 5.6 0 0 0 2.6.7v1c-2.3 0-4.5-1.2-5.6-3a6.7 6.7 0 0 1-1-3.7zm6.6-6.7v1.2c-2 0-4 1.2-5 3a5.7 5.7 0 0 0-.6 2.6h-1c0-2.2 1-4.4 3-5.6a6.6 6.6 0 0 1 3.6-1z" fill="#21231e"/> - <path d="M392.6 138.7c3.4 0 6.2 2.8 6.2 6.2 0 3.3-2.8 6-6.2 6-3.4 0-6-2.7-6-6 0-3.5 2.6-6.3 6-6.3z" fill="#fff"/> - <path d="M399.3 145h-1c0-2.2-1.3-4.3-3.2-5.2a5.6 5.6 0 0 0-2.4-.6v-1c2.3 0 4.5 1.2 5.7 3a6.7 6.7 0 0 1 1 3.7zm-6.7 6.6v-1c2 0 4-1.3 5-3a5.7 5.7 0 0 0 .7-2.7h1c0 2.2-1.2 4.4-3.2 5.6a6.6 6.6 0 0 1-3.4 1zM386 145h1c0 2 1.2 4 3 5a5.6 5.6 0 0 0 2.6.6v1c-2.2 0-4.5-1.3-5.6-3.2a6.7 6.7 0 0 1-1-3.5zm6.6-6.8v1c-2 0-4 1.2-5 3a5.7 5.7 0 0 0-.6 2.7h-1c0-2.4 1.2-4.7 3.2-5.8a6.6 6.6 0 0 1 3.4-1z" fill="#21231e"/> - <path d="M394.2 144a261.2 261.2 0 0 0 2 2.4c-9.8 5.4-14 11-13 16.7.2 1 3.2 11.5 9.8 31.7 4.5 3 7.8 6 10 8.4-.2.4.8 1.2.5 1.5.7 3-2.8 2.4-5 1.7-1.2-3-4.6-6-6.6-7.5-.5-.2-2-1-2-1.4l-10.2-31.6c-3-9.8 3.6-16.8 14.4-21.7z" fill="#edb92e"/> - <path d="M396.3 147l-.5-1v.7h-.2v-.2h-.2v-.2l-.2-.2h-.2v-.2l-.2-.2v-.2h-.2v-.2h-.2v-.2l-.2-.2-.2-.2v-.2h-.2l.8-.7.2.2h.2v.4h.2v.2h.2v.2l.2.2.2.2v.2h.2v.2h.2v.2l.2.2v1zm.2-1l.3.6-.5.3.2-1zm-12.7 17l-1 .2v-3.9l.2-.6.2-.5.2-.6.2-.5.3-.5.2-.5.3-.6.4-.5.3-.6.4-.6.5-.5.4-.6.6-.5.5-.5.6-.5.6-.6.5-.5.7-.4.7-.5.6-.5.8-.5.8-.5 1-.5.7-.5.8-.5.5 1-1 .4-.7.5-.8.4-.8.5-.8.4-.7.5-.7.4-.6.5-.7.4-.6.5-.6.4-.5.5-.6.4-.5.6-.5.5-.4.5-.3.5-.3.5-.3.5-.2.5-.2.5-.2.5-.2.5-.2.5v.5l-.2.5v3.1zm0 0zm9.5 31.3l-.6.8-.2-.2-.6-1.8-.7-1.8-.5-1.8-.6-1.7-.5-1.6-.5-1.5-.5-1.5-.5-1.5-.4-1.4-.4-1.2-.4-1.3-.4-1.3-.4-1-.3-1.3-.4-1-.3-1-.3-1-.3-1-.3-.8-.2-.8-.2-.8-.2-.6-.2-.7v-.5l-.3-.5v-.5l-.2-.4v-.8h-.2v-.3h1v.3l.2.3v.4l.2.3v.5l.2.5.2.6.2.7.2.7.2.7.2 1 .3.7.2 1 .2 1 .3 1 .3 1 .4 1 .4 1.2.3 1.2.3 1.3.5 1.3.4 1.4.5 1.5.4 1.5.7 1.6.5 1.6.5 1.7.6 2 .6 1.7.5 1.8-.2-.2zm-.6.8l-.2-.2.2.3zm10.7 8.4l-.7-.6v.6l-.2-.2-.2-.2-.3-.3-.2-.2-.2-.2-.3-.3-.2-.2-.2-.2-.2-.3-.3-.2-.3-.2-.2-.2-.3-.3-.3-.3-.3-.2-.4-.3-.3-.2-.4-.3-.4-.3-.3-.2-.4-.3-.4-.3-.4-.3-.3-.3-.5-.3-.4-.2-.3-.3-.4-.2-.4-.3-.5-.3-.4-.3-.3-.3.6-.7.4.3.4.3h.5l.4.4.3.3.4.3.4.3.5.3.3.2.4.3.3.4.4.3.2.2.4.2.3.3.2.2.3.3.3.3.3.2.4.3.3.2.3.3.3.3.2.2.3.3.3.3.3.3.2.2.3.2.2.3.2.2.2.3v.6zm0-.6l.3.3-.3.4v-.6zm.6 1.6l-1 .2.2-.5v.2h-.2v.2-.2l-.2-.2v-.2h-.2v-1.2l.8.6v-.2h.2v.2l.2.2v.2l.2.2v.7l-.2.2.2-.6zm-1 .2v-.3l.2-.2-.2.6zm-5 1.8l1-.4-.4-.3h.4l.2.2h.7l.4.2h2.3v-.2h.2v-1.4l1-.2v1.6l-.2.3v.2l-.2.2h-.2l-.2.2h-.4l-.2.2h-3l-.3-.2h-.5l-.3-.2h-.5l-.3-.4zm.2.3h-.2v-.3l.2.3zm-6.6-7.5l.6-1 .2.3h.2l.2.3h.2l.3.3.2.3.2.2.2.2.2.2h.2l.2.3.3.2v.3l.4.2.2.3.2.2.3.3.3.2.2.3.3.3.2.2.2.3.2.4.2.3.2.3.2.2.2.3v.3l.3.3v.4l.3.3v.3l-1 .4v-.3l-.2-.4-.2-.3v-.2l-.3-.2v-.3l-.2-.2-.2-.3-.2-.3-.2-.2-.2-.3-.2-.2-.2-.3-.3-.2-.2-.3v-.2l-.3-.3-.3-.2-.2-.2-.2-.2-.3-.2-.2-.2-.2-.2h-.2l-.2-.3h-.2l-.2-.3h-.2l-.2-.3h-.2l-.2-.2zm.6-1l.3.3-.3-.2zm-2.7-.7l1-.3.2.2h.2v.2h.2v.2h.4v.2h.2l.2.2h.2l-.6 1-.2-.2h-.2v-.2h-.4v-.2h-.2l-.2-.2h-.2v-.2h-.2v-.2h-.2v-.2h-.2v-.2zm-10-31.7l.8-.3.3 1 .3 1 .2.8.3 1 .3 1 .3.8.4 1 .3 1 .3 1 .3 1 .3 1 .3.8.2 1 .4 1 .3 1 .2 1 .3 1 .3 1 .4 1 .3 1 .3 1 .3 1 .5 1 .3 1 .3 1 .5 1 .3 1 .3 1 .4 1.2.4 1 .3 1 .4 1.2-1 .3-.3-1-.2-1.2-.3-1-.4-1-.2-1-.3-1-.3-1.2-.4-1-.3-1-.3-1-.4-1-.3-1-.3-1-.3-1-.4-1-.4-1-.3-1-.4-1-.3-1-.3-.8-.3-1-.4-1-.3-1-.3-1-.3-.8-.3-1-.2-1-.3-1-.3-.8-.3-1-.4-.8-.2-1zm15-22l-.7.5h.6l-1 .6-1 .4-1 .5-.8.4-1 .5-.7.4-1 .5-.7.5-.8.5-.7.6-.7.6-.5.6-.7.6-.5.6-.6.7-.5.6-.4.7-.4.6-.4.7-.3.7-.3.7-.3.7v.8l-.2.7v.7l-.2.8v2.6l.3.8v1l.3.7-1 .3-.2-1v-.8l-.3-1V159l.2-1 .2-.7.2-.6.3-.8.4-.7.5-1 .4-.6.4-.7.6-.7.5-.7.6-.6.8-.6.6-.6.8-.6.7-.6.7-.5.8-.6 1-.5.7-.5 1-.5 1-.5.8-.5 1-.5 1-.5.6.2zm-.5-.3l.4-.2.2.4-.6-.2z" fill="#21231e"/> - <path d="M356 217l-.4 2c-2.8.5-5.3.7-7.3.3 3.4-3.3 6-4 7.6-2.4z" fill="#edb92e"/> - <path d="M355 218.8l.4-2 1 .2-.3 2-.3.4-.6-.6zm1 0v.5h-.3l.4-.4zm-8 .2l.7.7-.3-1 .2.2h4.1l.3-.2h1l.2-.2h.7l.2-.2h.3l.2 1h-.8l-.4.2h-.5l-.4.2h-1.3v.2h-3.7l-.4-1zm.2 1l-1-.3.8-.7.2 1zm8.2-3l-1-.2.2.5v-.2h-.6v-.2h-.6l-.2-.2H353v.2h-.6l-.2.3-.2.2h-.3l-.2.2-.3.2-.2.2-.3.2-.3.2-.2.2-.3.2-.4.3h-.3l-.3.4-.3.3-.7-.7.3-.3.3-.3.3-.3.2-.2.3-.2.3-.2.3-.3h.4l.3-.3h.3l.2-.3h.3l.3-.3h.6l.3-.2h.5l.4-.2h1.3l.2.2h.3l.2.2h.2l.2.2.3.3v.5zm0-.5v.5-.5zm-.5.4h.4-.5zm.3-.5l.2.2v.3l-.2-.5z" fill="#21231e"/> - <path d="M355.6 212.3c1.8.4 2 .7 2.7 1 1 0 2.4 0 3.3-1 4-2.2 4 2 2.5 5-1 2.4-.5 5 .6 7 1.2 2.2 1 3.2 0 4l-1.6 1c-1 1.2-1.8 1-2-.6-3.8-1.6-5-5.3-6.2-8.6-1.7-4.7-7.8-5.8.8-7.7z" fill="#edb92e"/> - <path d="M358.4 212.7v1h-.7v-.2h-.4l-.2-.2h-.4l-.2-.2h-.8l-.3-.2.2-1h.4l.2.2h.4l.2.2h.4v.2h.8v.2h.4zm3-.7l.5 1v-.2l-.2.2h-.3v.2h-.2l-.2.2h-.2l-.2.2h-2.1v-1h2.2l.2-.2h.2v-.2h.2l.2-.2zm0 0zm3 5.6l-.8-.4v-.3l.3-.4v-.5l.2-.2v-.6l.2-.3v-2.2h-.2v-.2h-.2v-.2h-1.2l-.3.2-.3.2-.3.2-.6-1 .4-.2.3-.2h.5l.3-.2h1.8l.2.2.2.2v.2l.2.3v.4l.2.3v2.4l-.2.3v.3l-.2.4v.3l-.2.3v.3l-.3.3zm.6 6.3l-1 .4v-.4l-.2-.2v-.4l-.2-.2v-.2l-.2-.2v-.5l-.2-.2v-.8l-.2-.2v-2.3l.2-.2v-.3l.2-.3v-.3l.2-.2 1 .4-.2.2v.4l-.2.2v.8l-.2.2v2l.2.2v.5l.2.2v.4h.2v.2l.2.2v.4h.2zm0 4.6l-.6-1h.2v-.2h.2v-1.6l-.2-.3v-.3l-.2-.2v-.2l-.2-.2v-.2l.8-.5v.2l.2.2v.2l.2.2v.2l.2.2v.2l.2.3v1.7l-.2.2v.2h-.2v.2h-.2v.2l-.2.2zm0 0zm-1.6 1l-.8-.7v-.2h.2l.2-.2h.2v-.2h.4v-.2h.2v-.2h.4v-.2h.2l.6.8h-.2v.2h-.4v.2h-.2l-.2.2h-.2v.2h-.2l-.2.2zm-.8-.7v-.2zm-1.8 0l.4-.8.3.4v.5h.2v.2h.4v-.2h.2v-.2h.2l.8.6-.2.2-.2.2-.3.2h-.2v.2h-1.1l-.2-.2v-.2l-.2-.2v-.4h-.2v-.7l.2.4zm.4-.8h.3v.4l-.3-.4zm-7-8l1-.3.2.2v.3l.2.3v.4l.2.3v.3l.3.3.2.4v.3l.2.3.2.3v.3l.3.3v.2l.2.3v.2l.3.3.2.3.2.2v.3l.3.2.2.3.2.2.2.2.2.2h.2l.3.3.3.2.3.2.3.2h.3l.2.2-.4 1-.3-.2-.4-.2-.2-.2-.4-.2-.3-.2-.2-.3-.3-.3-.2-.2-.3-.3-.3-.2-.2-.3-.2-.3-.2-.3-.3-.4-.2-.3-.2-.3-.2-.3v-.4l-.2-.3v-.3l-.3-.3v-.3l-.3-.2v-.3l-.2-.4v-.2l-.2-.3-.2-.3v-.3l-.2-.4v-.3zm1.4-8.4v1l-.6.2-.7.2h-.6l-.5.3h-.4l-.4.3h-.3v.3l-.2.2v.2h-.2v.2l.2.3.3.2.2.3.2.2.2.3.3.2v.3l.4.3.2.3.3.5.2.3.2.4.3.4.2.4v.5l.3.4-1 .3v-.4l-.3-.5-.2-.4-.2-.3-.3-.3-.2-.3v-.2l-.4-.3-.2-.3-.3-.3v-.4l-.3-.2-.3-.3-.3-.4v-.2l-.2-.3-.2-.4v-.6l.3-.3v-.2l.3-.3h.3l.4-.3.4-.3.5-.2h.4l.7-.3.8-.2.7-.2zm0 0zm0 1v-1 1zm0-1z" fill="#21231e"/> - <path d="M357 212.5c3.5 1.2 4-.7 6-.6-.8 5-1.7 7.7-7 5-3-1.6-6.7.7-7.4 2.3-.3.6-2-.6-2.6-2-2.6-5.8 6.7-6.4 11-4.8z" fill="#edb92e"/> - <path d="M363.6 212l-1-.2.5.6H362v.2h-.3l-.2.2h-.2l-.3.2h-.3v.2h-.7l-.2.2h-2l-.4-.2h-.3l-.3-.2.3-1h.3l.3.2h.4l.2.2h1.3l.2-.2h.2l.2-.2h.5l.2-.2h.2l.3-.2h.5l.2-.2h.4l.6.6zm-.5-.6h.7v.6l-.6-.6zm-7.2 6l.4-1 .5.4.5.2h.4l.4.3h.3l.4.2h1.7l.2-.2.3-.3.2-.3v-.2l.2-.2.2-.3v-.3l.2-.3v-.3l.2-.2v-.4l.2-.4v-.4l.2-.4v-.9l.2-.5 1 .2v.5l-.2.5v.8l-.2.5v.4l-.2.4v.4l-.3.4v.3l-.2.4-.2.4v.2l-.3.3-.2.3-.2.2-.3.2-.2.2h-.2l-.3.2h-.3l-.3.2h-1.6l-.4-.2-.4-.2h-.4l-.4-.3-.5-.3-.5-.3zm-6.8 2l-1-.3h.2v-.3h.3v-.3l.3-.2v-.2l.3-.2h.3l.2-.3.2-.2h.3l.2-.3h.3l.2-.3h.3l.3-.2h.3l.2-.2h.3l.4-.2h2.3l.3.2h.3l.3.2h.2l-.4 1h-.3l-.2-.2h-.5l-.3-.2h-1.8l-.3.2h-.3l-.3.2h-.3l-.2.3h-.2l-.3.2h-.2l-.2.2h-.2v.2l-.2.2h-.2v.3h-.2v.2h-.2v.2h-.2zm-3.5-2l1-.3v.4h.2v.4h.2v.2l.2.2h.2v.2l.2.2h.2v.2h.4v.2l.8.5v.2l-.3.2h-1v-.2h-.2l-.3-.2h-.2v-.2l-.2-.2-.2-.2h-.2v-.3h-.2v-.2h-.2v-.3h-.2v-.4h-.2v-.3zm11.8-5.4l-.3 1-.4-.2h-.5l-.3-.2h-.5l-.5-.2h-5l-.5.2-.4.2h-.4l-.4.3-.4.3-.3.2v.2l-.4.2-.2.2v.3l-.3.2v1.6l.3.4.2.5-1 .5-.2-.5-.2-.6V215l.2-.6.2-.4.2-.4.3-.3.2-.4.3-.3.4-.3.4-.2.4-.2.5-.2h.5l.5-.3h1.1l.5-.2h3.3l.6.2h.5l.4.2.5.2h.3zm0 .5v-.5.5z" fill="#21231e"/> - <path d="M458.8 124.5c3.4 0 6.2 2.7 6.2 6 0 3.5-2.8 6.3-6.2 6.3s-6-2.8-6-6.2c0-3.4 2.7-6 6-6z" fill="#fff"/> - <path d="M465.5 130.6h-1c0-2-1.3-4.2-3.3-5a5.5 5.5 0 0 0-2.4-.6v-1c2.3 0 4.5 1.2 5.7 3a6.7 6.7 0 0 1 1 3.6zm-6.7 6.7v-1c2 0 4-1.2 5-3a5.6 5.6 0 0 0 .6-2.7h1c0 2.3-1 4.5-3 5.7a6.6 6.6 0 0 1-3.6 1zm-6.6-6.7h1c0 2 1.3 4.2 3.2 5a5.5 5.5 0 0 0 2.4.7v1c-2.2 0-4.4-1.2-5.6-3.2a6.7 6.7 0 0 1-1-3.4zm6.6-6.6v1c-2 0-4 1.2-5 3a5.6 5.6 0 0 0-.6 2.6h-1c0-2.2 1.2-4.4 3.2-5.6a6.6 6.6 0 0 1 3.4-1z" fill="#21231e"/> - <path d="M446.3 124.5c3.4 0 6 2.7 6 6 0 3.5-2.6 6.3-6 6.3s-6-2.8-6-6.2c0-3.4 2.6-6 6-6z" fill="#fff"/> - <path d="M453 130.6h-1c0-2-1.3-4-3.2-5a5.5 5.5 0 0 0-2.5-.6v-1c2.3 0 4.5 1.2 5.6 3a6.7 6.7 0 0 1 1 3.6zm-6.7 6.7v-1c2 0 4-1.3 5-3 .4-1 .6-1.8.6-2.7h1c0 2.3-1.3 4.5-3.2 5.7a6.6 6.6 0 0 1-3.5 1zm-6.6-6.7h1c0 2 1.2 4.2 3 5a5.5 5.5 0 0 0 2.6.7v1c-2.2 0-4.5-1.2-5.6-3.2a6.7 6.7 0 0 1-1-3.4zm6.6-6.6v1c-2 0-4 1.2-5 3a5.6 5.6 0 0 0-.6 2.6h-1c0-2.2 1.2-4.4 3-5.6a6.6 6.6 0 0 1 3.6-1z" fill="#21231e"/> - <path d="M433.8 125.5c3.4 0 6 2.7 6 6 0 3.5-2.6 6.3-6 6.3s-6-2.8-6-6.2 2.6-6 6-6z" fill="#fff"/> - <path d="M440.4 131.6h-1c0-2-1.2-4-3-5a5.5 5.5 0 0 0-2.6-.6v-1c2.2 0 4.4 1.2 5.6 3a6.7 6.7 0 0 1 1 3.6zm-6.6 6.7v-1c2 0 4-1.3 5-3a5.7 5.7 0 0 0 .6-2.7h1c0 2.3-1.2 4.5-3 5.7a6.6 6.6 0 0 1-3.6 1zm-6.6-6.7h1c0 2.2 1.3 4.3 3.2 5.2a5.5 5.5 0 0 0 2.4.5v1c-2.3 0-4.5-1.2-5.6-3.2a6.7 6.7 0 0 1-1-3.4zm6.6-6.6v1c-2 0-4 1.2-5 3a5.7 5.7 0 0 0-.6 2.6h-1c0-2.3 1.3-4.6 3.3-5.7a6.6 6.6 0 0 1 3.3-1z" fill="#21231e"/> - <path d="M422.3 127.7c3.3 0 6 2.8 6 6.2 0 3.3-2.7 6-6 6s-6.2-2.7-6.2-6 3-6.3 6.3-6.3z" fill="#fff"/> - <path d="M429 134h-1c0-2.2-1.4-4.3-3.3-5.2a5.5 5.5 0 0 0-2.4-.6v-1c2.2 0 4.4 1.2 5.6 3.2a6.7 6.7 0 0 1 1 3.5zm-6.7 6.5v-1c2 0 4-1.2 5-3 .4-1 .6-1.8.6-2.6h1c0 2-1.3 4.3-3.3 5.5a6.6 6.6 0 0 1-3.4 1zm-6.7-6.6h1c0 2 1.2 3.8 3 4.8.8.5 1.7.7 2.7.7v1c-2.3 0-4.5-1.2-5.7-3a6.7 6.7 0 0 1-1-3.6zm6.7-6.8v1c-2 0-4.2 1.3-5 3.2a5.7 5.7 0 0 0-.7 2.5h-1c0-2.5 1.3-4.7 3.3-6a6.6 6.6 0 0 1 3.3-.8z" fill="#21231e"/> - <path d="M346.3 159.4c3.4 0 6 2.8 6 6.2 0 3.4-2.6 6.2-6 6.2s-6-2.8-6-6.2c0-3.4 2.6-6.2 6-6.2z" fill="#fff"/> - <path d="M353 165.6h-1c0-2-1.3-4-3.2-5a5.6 5.6 0 0 0-2.5-.7v-1c2.2 0 4.5 1 5.6 3a6.7 6.7 0 0 1 1 3.6zm-6.7 6.7v-1c2 0 4-1.2 5-3 .4-1 .6-1.8.6-2.7h1c0 2.3-1.3 4.5-3.2 5.7a6.6 6.6 0 0 1-3.5 1zm-6.7-6.7h1c0 2 1.3 4.2 3.2 5a5.6 5.6 0 0 0 2.5.7v1c-2.2 0-4.4-1.2-5.6-3a6.7 6.7 0 0 1-1-3.7zm6.7-6.7v1c-2 0-4 1.2-5 3a5.7 5.7 0 0 0-.6 2.6h-1c0-2.3 1.2-4.5 3-5.7a6.6 6.6 0 0 1 3.6-1z" fill="#21231e"/> - <path d="M356.8 152.8c3.4 0 6.2 2.7 6.2 6 0 3.6-2.8 6.3-6.2 6.3-3.4 0-6-2.6-6-6 0-3.5 2.6-6.2 6-6.2z" fill="#fff"/> - <path d="M363.5 159h-1c0-2.2-1.3-4.2-3-5a5.6 5.6 0 0 0-2.7-.7v-1c2.3 0 4.5 1.2 5.7 3a6.7 6.7 0 0 1 1 3.6zm-6.7 6.6v-1c2 0 4-1.2 5-3 .5-1 .7-1.8.7-2.7h1c0 2.2-1.2 4.4-3 5.6a6.6 6.6 0 0 1-3.7 1zm-6.6-6.7h1c0 2 1.2 4 3 5a5.6 5.6 0 0 0 2.6.6v1c-2.2 0-4.4-1.2-5.6-3a6.7 6.7 0 0 1-1-3.7zm6.6-6.8v1c-2 0-4 1.3-5 3.2a5.7 5.7 0 0 0-.6 2.5h-1c0-2.3 1.2-4.6 3-5.8a6.6 6.6 0 0 1 3.6-1z" fill="#21231e"/> - <path d="M368.8 147c3.4 0 6 3 6 6.3 0 3.4-2.6 6.2-6 6.2s-6-2.8-6-6.2c0-3.4 2.6-6.2 6-6.2z" fill="#fff"/> - <path d="M375.4 153.3h-1c0-2-1.2-4.2-3-5a5.6 5.6 0 0 0-2.6-.7v-1c2.2 0 4.4 1.2 5.6 3a6.7 6.7 0 0 1 1 3.7zm-6.6 6.7v-1c2 0 4-1.3 5-3a5.7 5.7 0 0 0 .6-2.7h1c0 2.3-1.2 4.5-3 5.7a6.6 6.6 0 0 1-3.6 1zm-6.7-6.7h1c0 2 1.4 4 3.2 5a5.6 5.6 0 0 0 2.6.7v1c-2.3 0-4.5-1.3-5.7-3.2a6.7 6.7 0 0 1-1-3.5zm6.8-6.7v1c-2 0-4 1.2-5 3a5.7 5.7 0 0 0-.6 2.7h-1c0-2.3 1-4.5 3-5.7a6.6 6.6 0 0 1 3.6-1z" fill="#21231e"/> - <path d="M338.2 169.5c3.4 0 6 2.8 6 6.2 0 3.4-2.6 6.2-6 6.2s-6.2-3-6.2-6.3 2.8-6.2 6.2-6.2z" fill="#fff"/> - <path d="M344.8 175.7h-1c0-2-1.3-4.2-3.2-5a5.6 5.6 0 0 0-2.4-.7v-1c2.2 0 4.4 1.2 5.6 3a6.7 6.7 0 0 1 1 3.7zm-6.6 6.7v-1c2 0 4-1.3 5-3a5.7 5.7 0 0 0 .6-2.7h1c0 2.3-1.2 4.5-3.2 5.7a6.6 6.6 0 0 1-3.4 1zm-6.7-6.7h1c0 2 1.2 4 3 5a5.6 5.6 0 0 0 2.7.7v1c-2.3 0-4.5-1.3-5.7-3.2a6.7 6.7 0 0 1-1-3.5zm6.7-6.7v1c-2 0-4 1.2-5 3a5.7 5.7 0 0 0-.7 2.7h-1c0-2.3 1.2-4.5 3.2-5.7a6.6 6.6 0 0 1 3.5-1z" fill="#21231e"/> - <path fill="#edb92e" d="M408.8 279l22-12.8 23.4 10-22 13z"/> - <path d="M431 266.7l-22 12.8-.4-1 22-12.7h.5v1zm-.4-1h.5-.4zm23.5 11l-23.3-10 .4-1 23.4 10v1h-.3zm.4-1l1 .5-1 .5v-1zm-22.4 13l22-13 .5 1-22 12.8h-.5v-.8zm.5.8l-.2.2h-.3l.5-.2zm-23.4-11l23.4 10-.4 1-23.3-10v-1h.4zm-.3 1l-1-.4 1-.4v1z" fill="#21231e"/> - <path d="M431 270.6c5.8-.3 10.5 2.5 10.8 6.3.2 3.7-4.2 7-9.8 7.4-5.7.3-10.4-2.5-10.7-6.3-.2-3.6 4.2-7 9.8-7.4z" fill="#c6363c"/> - <path d="M442.3 277h-1v-.7l-.2-.3v-.6l-.3-.3v-.2l-.3-.2-.2-.3-.2-.3-.3-.2-.3-.3-.2-.2-.3-.2h-.5l-.3-.3-.3-.2-.5-.2-.4-.2h-.3l-.4-.2h-.4l-.5-.3h-.9l-.5-.2h-.8l-.5-.2h-1l-.5.2v-1h3.6l.4.2.5.2h.5l.4.2.5.2.5.2.4.2.3.2.4.2.4.2.4.2.4.3.3.3.4.3.3.3.3.3.2.4.2.3.2.3.2.4v.3l.3.4.2.4v.8zm-10.3 8v-1l.4-.2h.9l.5-.2h.4l.4-.2h.5l.4-.3h.5l.4-.2.4-.2.4-.2.3-.2.4-.2.4-.3.4-.2.3-.2.3-.3.3-.2.3-.3v-.3l.3-.3.2-.4.2-.2v-.3l.2-.2v-.6l.2-.3v-1.1l1-.2v1.6l-.2.4v.3l-.3.5v.3l-.3.4-.3.3v.3l-.4.4-.3.3-.3.3-.3.2-.3.3-.4.3-.4.2-.4.3-.4.3-.4.2-.4.2-.5.2h-.4l-.4.2-.5.2h-.4l-.5.2h-.4l-.5.2h-1zm-11.2-6.8h1v.5l.2.3v.3l.2.3.2.3v.2l.3.3.2.2v.3l.4.2.2.3.3.2.2.2.3.2.4.2.2.2h.4l.4.3h.4l.4.2.4.2h.4l.5.2h1l.4.2h2.3v1H428l-.5-.2h-.4l-.5-.3h-.6l-.4-.3h-.4l-.5-.3-.3-.2-.3-.3-.4-.2-.4-.2-.3-.3-.3-.2-.3-.3-.3-.3-.3-.3v-.3l-.3-.3-.2-.3-.2-.4-.2-.3v-1l-.2-.4zm10.3-8l.2 1h-1.5l-.5.2h-.5l-.5.2-.4.2h-.5l-.4.3-.5.2-.4.2-.3.2-.4.2-.3.2-.3.3-.4.2-.3.3-.3.2-.2.3-.3.2-.2.3-.2.3-.2.4-.2.3v.3l-.3.3v.8l-.2.3v.6l-1 .2V277l.2-.4v-.3l.2-.4v-.5l.3-.3.2-.4.3-.3.2-.3.3-.3.2-.4.4-.3.4-.3.3-.3.4-.3.5-.2.3-.3.5-.3.4-.2.4-.2.6-.2h.4l.5-.2h.5l.5-.3h.5l.5-.2h1.1l.5-.2z" fill="#21231e"/> - <path d="M382.4 270l23.8 9-19.7 13c-5-1.6-9-19-4-22z" fill="#edb92e"/> - <path d="M406 279.4l-23.8-9 .4-1 23.7 9v1h-.3zm.3-1l1 .4-1 .5v-1zm-20 13.3l19.6-13.2.4.8-19.6 13.3h-.4v-1zm.5 1h-.4.4zm-4.2-23.3l-.4 1h.5l-.4.2-.4.3-.4.4-.2.5-.2.4-.2.7-.2.8v1.5l-.2.8v2.8l.3.8v1l.2.8.2 1 .2 1 .3.7v1l.5 1 .3.7.3.7.5.8.4.6.3.6.4.6.4.5.5.4.4.2.3.3.4.2-.3 1-.6-.3-.5-.3-.5-.3-.5-.5-.4-.6-.6-.6-.4-.7-.4-.7-.4-.7-.4-1-.3-.8-.3-1-.3-.8-.4-1-.2-.8-.2-1-.2-1v-.8l-.3-1v-5.2l.3-.8.2-.7.3-.6.3-.6.4-.5.4-.5.5-.4h.6zm-.5 0h.6-.5zm.4.4l.2-.4-.2.5zm-.3-.4h.6-.5z" fill="#21231e"/> - <path d="M382.8 274.3c5.7-.6 10.5 2 11 5.8.3 3.8-4 7.4-9.6 8-3.6.3-6-3-6.3-6.3-.5-3.4 1-7 4.8-7.4z" fill="#0c4076"/> - <path d="M394.2 280h-1v-.5l-.2-.3v-.3l-.2-.4-.2-.3-.2-.2-.2-.2-.2-.3-.2-.2-.3-.3-.2-.2-.3-.2-.3-.2-.4-.2-.3-.2-.4-.2-.3-.2h-.4l-.5-.3h-.4l-.4-.2h-.8l-.5-.2h-3.6l-.2-1h3.8l.4.2h.5l.4.2.4.2h.4l.5.3.4.2h.5l.4.3.2.2.4.3.3.2.2.3.3.3.3.3.2.2.3.3.2.3.2.3v.5l.3.4v.2l.2.4v.4zm-10 8.4v-1h1l.5-.2h.4l.6-.2.5-.2h.5l.4-.3.4-.2h.4l.4-.3.3-.3.4-.2.2-.2.4-.3.3-.2.2-.3.3-.2.2-.3.3-.3.2-.3.2-.2.2-.3v-.4l.3-.3v-.8l.2-.4v-1h1v1.6l-.2.3v.3l-.2.4-.2.3-.2.4-.2.3-.2.4-.3.4-.2.3-.3.3-.3.3-.5.3-.3.3h-.4l-.4.4-.4.2-.4.3h-.4l-.4.3-.5.2h-.5l-.4.3-.5.2h-.6l-.5.2h-.7l-.5.2h-.5zm-6.8-6.7h1v.7l.2.3v.3l.2.4v.3l.2.2v.2l.2.3.2.2v.3l.3.2.2.3v.2l.2.2h.2l.2.3h.2l.2.3.2.2h.3l.2.2h.2l.2.2h.2l.3.2h1.4v1h-2.1l-.3-.2h-.4l-.3-.3-.3-.2-.3-.2-.3-.2-.2-.2-.3-.2-.3-.2-.2-.2-.3-.3-.2-.2v-.2l-.3-.3-.2-.3v-.2l-.3-.4v-.3l-.3-.3-.2-.3v-.3l-.2-.3v-.6l-.2-.3v-.3zm5.4-8v1h-.2l-.4.2h-.8l-.3.3-.3.2-.3.2-.2.2h-.2l-.2.2v.2l-.3.2v.3h-.3v.3l-.2.3-.2.2v.7l-.2.3v.4l-.2.3v2.2h-1V279l.2-.3v-.3l.2-.2v-.3l.2-.3.2-.3v-.4l.3-.3.2-.3.2-.2v-.3l.3-.2.3-.2h.2l.3-.3.4-.2.3-.2h.3l.3-.2h.7l.4-.2h.4z" fill="#21231e"/> - <path d="M457.5 280.4c1.7 0 3.2 1.5 3.2 3.2 0 1.8-1.5 3.3-3.2 3.3-1.8 0-3.2-1.6-3.2-3.4 0-1.7 1.4-3.2 3.2-3.2z" fill="#fff"/> - <path d="M461.2 283.6h-1v-.6l-.2-.2v-.2l-.2-.3v-.2h-.2v-.2h-.2v-.2h-.2l-.2-.2-.3-.2h-.2l-.2-.2h-.7v-1h1l.3.2.2.2h.2l.3.2v.2h.2v.2h.2v.3h.2v.2l.2.2v.2h.2v.2l.2.3v.5l.2.2v.2zm-3.7 3.8v-1h.4l.3-.2h.2l.2-.2h.2v-.2h.2v-.2h.2v-.2l.2-.2.2-.2v-.2l.2-.2v-1h1.2v.8l-.2.2v.3l-.2.2v.2l-.2.2-.2.3h-.2v.3h-.3l-.2.2-.3.2-.3.2h-.6v.2h-.6v.2h-.3zm-3.7-3.8h1v1h.2v.2l.2.2v.2l.2.2h.2v.2h.2v.2h.2l.2.2h.2v.2h1v1.2h-.7l-.2-.2h-.5v-.2h-.3l-.2-.2-.3-.2-.2-.2h-.2v-.3h-.2l-.2-.3-.2-.3v-.2l-.2-.3v-.3l-.2-.3v-.8zm3.7-3.7v1h-.9l-.2.2h-.2v.2h-.2v.2h-.2v.2h-.2v.2h-.2v.2l-.2.3v.5h-.2v.8h-1v-1.2l.2-.2v-.3h.2v-.3l.2-.2.2-.2v-.2h.4v-.2l.2-.2h.2v-.2h.5v-.2h.4v-.2h1z" fill="#21231e"/> - <path d="M408.7 283c1.8 0 3.2 1.6 3.2 3.4 0 1.7-1.5 3.2-3.3 3.2-1.8 0-3.2-1.5-3.2-3.2 0-1.8 1.4-3.3 3.2-3.3z" fill="#fff"/> - <path d="M412.4 286.4h-1v-.9l-.2-.2v-.2l-.2-.2v-.2l-.2-.2-.2-.2h-.2v-.2h-.2v-.2h-.4l-.2-.2h-.8v-1.2h.7v.2h.7v.2h.3v.2h.3v.2h.3l.2.2.2.3h.2l.2.3.2.3v.3h.2v.6l.2.2v.9zm-3.7 3.7v-1h1v-.2h.2l.2-.2h.2v-.2h.2v-.2h.2v-.2l.2-.2v-.3h.2v-.5l.2-.2v-.4h1v.8l-.2.2v.3l-.2.2v.3h-.2v.3h-.2l-.2.3h-.2v.2h-.3l-.2.2h-.2v.2h-.3v.2h-.5l-.2.2h-.8zm-3.7-3.6h1v.8h.2v.5h.2v.2h.2v.2h.2v.2h.2l.2.2h.2v.2h.5v.2h.7v1h-1.2v-.2h-.3v-.2h-.2l-.2-.2-.2-.2h-.2v-.2h-.2v-.3h-.3v-.3h-.2v-.3l-.2-.2v-.2l-.2-.3v-.8zm3.7-3.8v1h-.7v.2h-.5v.2h-.2l-.2.2v.2h-.2l-.2.2v.2l-.2.2v.2h-.2v.7l-.2.3v.4h-1v-1l.2-.2v-.3l.2-.3.2-.3v-.3h.3v-.3h.2l.2-.2.2-.2h.2v-.2h.6l.3-.2h.5l.3-.2h.2z" fill="#21231e"/> - <path d="M407 268.3c1.8 0 3.2 1.4 3.2 3.2 0 1.8-1.4 3.2-3.2 3.2-1.8 0-3.2-1.4-3.2-3.2 0-1.8 1.4-3.2 3.2-3.2z" fill="#fff"/> - <path d="M410.7 271.5h-1v-.7l-.2-.2v-.3l-.2-.2h-.2v-.4h-.2v-.2h-.2l-.2-.2h-.2l-.2-.2h-.5v-.2h-.4v-1h.8v.2h.3l.3.2h.2l.3.2h.2v.2l.3.2.2.2.3.3.2.3v.3h.2v.4l.2.2v1zm-3.7 3.7v-1h1v-.2h.2l.2-.2h.2v-.2h.2v-.2h.2v-.2l.2-.2.2-.2v-.4h.2v-1h1v1.2l-.2.2-.2.3v.3h-.2l-.2.3h-.2v.3h-.3v.2h-.2v.2h-.2l-.2.2h-.5l-.3.2h-.7zm-3.7-3.7h1v.8l.2.2v.4h.2v.2l.2.2v.2h.2v.2h.2v.2h.2l.2.2h.5l.2.2h.5v1h-.9l-.3-.2h-.2l-.3-.2-.3-.2h-.2l-.2-.2-.2-.3h-.3v-.3l-.2-.3v-.3h-.2v-.4l-.2-.2v-.8zm3.7-3.7v1h-.8v.2h-.5l-.2.2h-.2v.2h-.2v.2h-.2v.2h-.2v.2l-.2.2v.3l-.2.2v.7h-1v-1.2h.2v-.6h.2v-.3h.2v-.3h.3l.2-.2v-.2h.3v-.2h.3l.2-.2h.4v-.2h.5l.2-.2h.7z" fill="#21231e"/> - <path d="M457.3 266.2c1.8 0 3.2 1.4 3.2 3.2 0 1.8-1.4 3.2-3.2 3.2-1.7 0-3.2-1.4-3.2-3.2 0-1.8 1.6-3.2 3.3-3.2z" fill="#fff"/> - <path d="M461 269.4h-1v-.8h-.2v-.3l-.2-.2v-.2h-.2v-.2h-.2v-.2l-.2-.2h-.2l-.2-.2h-.2l-.3-.2h-.7v-1h1.1l.2.2h.3l.3.2.3.2.2.3h.2v.2h.2v.2h.2v.3h.2v.3l.2.2v.5l.2.2v.7zm-3.7 3.7v-1h1.2v-.2h.2l.2-.2.2-.2v-.2h.2v-.2h.2v-.2l.2-.2v-.5h.2v-.8h1v1.1l-.2.2v.2l-.2.2-.2.3-.2.3-.2.2-.2.2-.2.2h-.2v.2h-.3v.2h-.4l-.2.2h-1zm-3.7-3.6h1v.5l.2.2v.3l.2.2v.2h.2l.2.2v.2h.2v.2h.2l.3.2h.2l.2.2h.7v1h-1l-.3-.2h-.3l-.3-.2-.3-.2v-.2l-.3-.2-.2-.2v-.2h-.2v-.3h-.2v-.6l-.2-.2v-.7l-.2-.2v-.2zm3.7-3.7v1h-.7v.2h-.4l-.2.2h-.2v.2h-.2v.2l-.2.2-.2.2v.4h-.2v.8h-1.2v-.5l.2-.3v-.4l.2-.2v-.2h.2v-.3h.2v-.3h.2v-.2h.3v-.3l.3-.2.3-.2h.3l.2-.2h1z" fill="#21231e"/> - <path d="M371 237.4c2.3-.8 6 4.6 7 4.5 1.2-3-1.2-10.5-5.5-16.3-3-1-3.2-3-3.8-7.3-.2-1.3-2.7-.4-2.7 2 0 2.3-.3 3.6.3 5.6.2.8 0 1.6-.8 2.3 4.5 1.8 5.6 4 5.4 9z" fill="#edb92e"/> - <path d="M377.6 241.8l1 .3-.5.4h-.4l-.3-.2-.2-.2-.3-.3-.2-.2-.2-.2-.2-.2-.3-.3-.3-.2-.2-.2-.2-.3-.3-.2-.2-.2-.3-.2-.2-.3h-.3l-.3-.3h-.2l-.3-.3-.3-.2h-.2l-.3-.2h-.4l-.2-.2h-.4l-.4-1h1.3l.3.2h.3l.3.2.2.2h.3l.3.3.2.2h.3l.3.3.3.3v.2l.4.2.2.3.3.2v.2l.4.3.2.2.2.2.2.2.2.2.2.2h.2v.2h.3v.2l-.4.3zm1 .3l-.2.4h-.3l.5-.3zm-6.3-15.8l.4-1 .2.2.3.5.4.5.4.6.4.7.4.5.3.6.5.6.3.6.3.6.4.6.3.6.2.6.2.6.2.5.2.6.2.7.2.5v.6l.3.5v.6l.2.4v.5l.2.4v3.3l-.2.3-1-.2v-.3l.2-.3v-3.6l-.3-.5v-.4l-.2-.5-.2-.5-.2-.5v-.5l-.4-.6-.2-.7-.2-.5-.3-.6-.2-.6-.3-.5-.3-.5-.4-.6-.3-.7-.4-.5-.4-.6-.4-.6-.3-.5-.5-.5-.4-.5.3.2zm.4-1l.2.2-.3-.2zm-4.5-6.7h1v.7l.2.3v1l.2.3v.5l.2.3v.5l.2.2v.4h.2v.3l.2.2v.2h.2v.3h.2l.2.2v.2h.2l.2.2h.2l.2.2h.2l.2.2h.2l.3.2-.4 1h-.2l-.2-.2-.3-.2h-.2l-.2-.2h-.2l-.2-.3-.2-.2h-.2v-.2l-.3-.2-.2-.2-.2-.2v-.2l-.2-.2v-.2l-.2-.3v-.2l-.2-.2v-.3l-.2-.2v-.9l-.2-.3v-.6l-.2-.3V219l-.2-.5zm-1.7 1.8h-1v-1l.2-.2.2-.2v-.4h.2l.2-.3h.2l.2-.2.3-.2h.2l.2-.2h1.2v.2h.2v.3l.2.2v.2h-1.6v.2h-.2v.2h-.2v.2h-.2v.3l-.2.2v.8zm.3 5.6l-1 .2v-.6l-.2-.2V224h-.2v-3.6h1v4.2l.2.2v.7l.2.2zm-1 2l-.5.8v-1l.2-.2v-.2h.2v-.4h.2v-.4l-.2-.2v-.2l1-.3v1.8h-.2v.4h-.2v.2h-.2v.2l-.2.2h-.2v-.7zm-.5.8l-.8-.3.7-.6v.8zm5 8.6h1-1v-.5l.2-.5v-2l-.2-.3v-.7l-.2-.3v-.6l-.2-.3v-.2l-.2-.3-.2-.3v-.2l-.3-.3v-.2l-.3-.2-.2-.2-.3-.2-.2-.2-.3-.2h-.3l-.3-.3-.2-.2-.3-.2-.4-.2h-.3l-.4-.2.4-1 .4.2.5.2.4.2.3.2.3.2.4.2.3.2.3.2.3.2v.2l.4.3.2.3.3.3v.2l.3.3v.4l.3.3v.3l.3.3v.7l.2.3v.7l.2.4v2.9h-1zm1 0h-1l.5-.5.6.4zm-1 0v-.4h.5l-.4.4z" fill="#21231e"/> - <path d="M368.8 218.5c-.4 1-.6 1.8-.7 3.4 0 1 .5 2 1.2 3 .8 1 1.8 2 3 2.6.8.5 1.6 1.7 2.3 3 .7 1.4 1.2 3 1.2 4 0 3.5.8 6.7 2.4 7.3 1.2.3 1.6.2 2.4 0-.2-.6 0-1.5-.7-2.4-.7-1.2-1.4-2.5-1.4-3.7 0-1-.5-1.6-.2-3.3.4-1.2 1-1.6 1-2.7-.3-2-2-6-4.3-6s-3.4-.3-4.6-3.4c-.3-1-1-1.6-1.2-2z" fill="#edb92e"/> - <path d="M368.6 222l-1-.2v-1.2l.2-.2v-1h.2v-.7h.2v-.4l1 .3v.4h-.2v1l-.2.2v1.5l-.2.3zm1 2.8l-.8.6v-.2h-.2v-.2l-.2-.2v-.2h-.2v-.4h-.2v-.5l-.2-.2v-.7l-.2-.2v-.7h1v1.1h.2v.7h.2v.4h.2v.4h.2v.2h.2v.2zm3 2.4l-.6 1v-.2h-.4v-.2h-.2v-.2h-.2l-.2-.2h-.2v-.2h-.3v-.2h-.2l-.2-.2v-.2l-.2-.2h-.2v-.2h-.2v-.2h-.2v-.2l-.2-.2-.2-.2.8-.6.2.2.2.2v.2h.2l.2.2v.2h.2l.2.2.2.2h.2v.2h.2v.2h.3l.2.2.2.2h.2v.2zm2.4 3.2l-1 .4v-.2l-.2-.2v-.2l-.2-.2v-.2h-.2v-.2l-.2-.2v-.2h-.2v-.2l-.2-.2-.2-.2v-.2h-.2l-.2-.2h-.2l.5-1h.2v.2h.2v.2h.2v.2l.2.2.2.2v.2h.2v.2h.2v.2l.2.2v.2l.2.2v.2h.2v.3h.2v.3h.2zm1.2 4.2h-1v-.8l-.2-.2v-.8h-.2v-.5h-.2v-.4h-.2v-.5h-.2v-.2l-.2-.2 1-.4v.4h.2v.4h.2v.5l.2.2v.3h.2v.6h.2v1h.2v.7zm-1 0zm3 6.8l-.3 1h-.3l-.2-.2-.3-.3v-.2l-.3-.2h-.2l-.2-.3v-.2h-.2v-.3l-.2-.2v-.3l-.2-.2v-.3l-.2-.2v-.5l-.2-.3v-.8l-.2-.3V236l-.2-.3v-1.5h1v2.1l.2.3v1.4l.2.2v.8l.2.2v.2l.2.2v.4l.2.2v.2l.2.2.2.2v.2h.2v.2h.2l.2.2zm1.7.8l1-.3-.5.5h-.4v.2h-1.4l-.2-.2h-.4l.3-1h.7v.2h1.2v-.2l-.3.7zm1-.3v.4h-.5l.4-.5zm-1.7-2l.8-.7h.2v.4h.2v.4h.2v.8l.2.2v1l-1 .4V241l-.2-.2v-.8h-.2v-.2zm-1.5-4h1v.8h.2v.8l.2.2v.2l.2.2v.2h.2v.5h.2v.2h.2v.2l-.7.7v-.2l-.2-.2v-.4h-.2v-.5h-.2v-.2l-.2-.3v-.2l-.2-.2v-.2l-.2-.3v-.4l-.2-.2v-.5zm1 0zm-1.2-3.4l1 .2v3l.2.2-1 .2v-.8l-.2-.2v-2.6zm1-2.5h1v.7h-.2v.6l-.2.2v.2l-.2.2v.2h-.2v.6h-.2v.2l-1-.2v-.4h.2v-.4l.2-.2v-.2l.2-.2v-.2l.2-.2v-.9zm-4-5.5v-1h1.1l.3.2h.2l.2.2h.3l.2.2.2.2v.2l.3.2v.2l.3.2.2.3v.2l.3.3.2.2.2.3v.2l.2.3v.2l.2.3v.3l.2.2v.3l.2.2v.5l.2.3v.8h-1v-1l-.2-.2v-.4l-.2-.3-.2-.4v-.2l-.2-.2v-.3l-.3-.3v-.2l-.2-.2v-.3l-.2-.2-.3-.3-.2-.2-.3-.3-.3-.2-.3-.2h-.8zm-5-3.7l1-.4v.3l.2.3v.2l.2.2v.2l.2.2v.2l.2.2.2.2v.2h.2v.2h.2v.2h.4v.2h.7v.2h1.7v1H373l-.3-.2h-.4v-.2h-.3v-.2h-.3v-.3h-.3v-.2l-.2-.2-.2-.3-.2-.2v-.2l-.2-.2-.2-.4-.2-.2v-.3l-.2-.2zm-.4-2l-1-.5h1.2v.4h.2v.2h.2v.2h.2v.4h.2v.2l.2.2v.2l.2.2-1 .4v-.2l-.2-.2v-.2l-.2-.2v-.2h-.2v-.2l-.2-.2v-.2h-.2v-.2h-.2v-.2h.8zm-1-.5l.5-1 .5 1h-1zm.6.2l.4.2-.4-.2zm-.5-.2l.4-1 .5 1h-1z" fill="#21231e"/> - <path d="M360 227l2-1c1.3-.5 2.6-.6 4-.2 5.5 1.7 8 11.6 1.8 14-1.2.2-2.3-1-3.4-3.3-1.3-3.2-2.6-5.4-4-6.8-1-1-1-2-.4-2.6z" fill="#edb92e"/> - <path d="M362 225.5l.3 1h-.4v.2h-.4v.2h-.8v.2h-.2l-.2.2-.7-.7.2-.2v-.2h.4v-.2h.8v-.2h.4v-.2h.4zm4-.2l-.2 1h-.5v-.2h-2.1v.2h-.7l-.2.2-.5-1h.4l.3-.2h.8v-.2h1.6l.2.2h.4zm2 15l-.2-1h-.2l.5-.2h.6l.4-.4.4-.3.3-.4.3-.5.2-.4.2-.3.2-.5v-.5l.2-.5V232l-.3-.4-.2-.5-.2-.5v-.5l-.4-.4-.2-.5-.4-.3-.3-.5-.4-.3-.3-.5-.4-.3-.5-.3-.3-.4-.5-.2h-.4l.2-1h.6l.5.3.7.3.4.4.6.3.5.4.5.6.3.4.4.5.3.5.3.6.3.5.3.7.2.6v.6l.3.5v3.4l-.2.5-.2.6-.3.6-.2.5-.3.5-.4.5-.4.4-.4.3-.6.3-.6.3zm0 0zm-4-3.6l1-.4v.4l.2.2.2.3.2.3v.2h.2v.5h.2v.2l.2.2.2.2h.2v.2h.2l.2.2h.8v1.2h-.8v-.2h-.5l-.2-.2-.2-.2-.2-.2-.2-.2v-.2h-.2l-.2-.2v-.2h-.2v-.3l-.2-.2v-.2h-.2v-.2l-.2-.2v-.2l-.2-.3-.3-.3zm0 0zm-4-6.6l.7-.6.2.2v.2h.2l.2.3v.3h.2l.2.3v.2l.2.2h.2v.3l.3.2v.2l.2.2.2.2v.4l.2.2.2.3v.3l.2.2.2.3v.3l.2.3v.3l.3.3.2.4v.3l.3.3v.3l-1 .4v-.6l-.2-.2v-.3l-.3-.2v-.3l-.2-.2v-.5l-.3-.3v-.2l-.2-.2v-.3l-.3-.2-.2-.3v-.2l-.3-.2v-.2h-.2v-.3h-.3v-.3l-.2-.2-.3-.3v-.2l-.2-.2h-.2v-.2l-.2-.2zm0 0zm0-3.4v1l.3-.2v.2h-.2v.8h.2v.4l.2.2.2.2v.2l-.7.7h-.2v-.2l-.2-.2-.2-.2v-.3h-.2V227h.2v-.2h.2l.4-.2zm-.4 0h.4-.4zm.4 1v-1l.3 1h-.3zm.3 0h-.2.3z" fill="#21231e"/> - <path d="M362.8 227.7c5.4-2 9.4 8.3 4.3 10.2-2.6 1-2.8-2.4-3.4-4.3-.7-2.5-6-4-.8-6z" fill="#edb92e"/> - <path d="M367.3 238.4l-.4-1h.3l.3-.3.3-.2.2-.3.2-.3.2-.3v-.5l.2-.4v-2.7l-.2-.4-.2-.5-.2-.4-.2-.4-.3-.4-.3-.4-.2-.3-.4-.4-.3-.2-.3-.2-.4-.2-.4-.2h-.4l-.3-.2h-1.3l-.4.2-.4-1h.6l.5-.2h1.6l.5.3.5.2.4.2.4.4.5.4.4.4.3.4.3.5.2.4.3.6.3.5.2.6.2.6v.5l.2.5v1.6l-.2.5v.5l-.3.5-.2.4-.3.5-.4.3-.4.4-.4.2-.5.2zM363 234l1-.4.2.2v.6l.2.2v.8l.2.2v.4l.2.2v.2l.2.3.2.3v.2h.2v.2h.2l.2.2h1.2l.3.8h-.3l-.3.2h-1.2l-.2-.2h-.2v-.2l-.3-.2-.3-.3v-.2l-.2-.2v-.2h-.2v-.3l-.2-.2v-.4h-.2v-.8l-.2-.2v-.8l-.2-.2v-.2zm-.4-6.7l.4 1h-.5l-.3.3h-.4l-.2.3h-.2l-.2.2v.2h-.2v.4h.2v.3l.2.2v.2h.3v.3l.3.2h.2l.2.2.2.2.2.2.2.2.2.3.2.3.2.2v.3l.3.2v.6l-1 .3v-.7l-.2-.2h-.2v-.3l-.3-.2h-.2v-.3l-.3-.2-.2-.2-.2-.2-.2-.2v-.2l-.2-.2h-.2v-.3l-.3-.3v-.2l-.2-.2v-.8l.2-.3v-.3l.3-.2.2-.2.3-.3.3-.2h.4l.4-.3.6-.2z" fill="#21231e"/> - <path d="M363.4 229.3c2.6-1 6.2 5 3 6.5-2.3 1-4-.3-4.8-2-.7-2 0-3.8 1.7-4.5z" fill="#0c4076"/> - <path d="M366.5 236.3l-.4-1h.3l.2-.2h.2v-.2l.2-.2v-2l-.2-.3v-.3h-.2v-.4l-.3-.3-.2-.2-.3-.4-.2-.2-.2-.2h-.2v-.2l-.3-.2h-1.1l-.3-1h1.5l.4.3.3.2.2.3.2.2.3.2.2.2.2.3v.3l.3.3.2.4.2.3v.4l.2.4v2.6l-.2.3-.2.4-.2.3-.2.2h-.4l-.3.3zm-5.4-2.5l1-.3.2.3.2.3v.2l.2.3.2.2.2.2h.3v.2h.2l.3.2h.4v.2h1.3l.3-.2.5 1h-.7l-.2.2h-1.9l-.2-.2h-.2v-.2h-.3l-.2-.2-.3-.2-.3-.3-.3-.3h-.2v-.3l-.2-.3-.2-.3v-.2l-.2-.2v-.2zm2.2-5l.3 1h-.3l-.2.2-.2.2-.2.2-.2.2-.2.2v.2h-.2v.7l-.2.2v1.1l.2.2v.3l-1 .3v-.7l-.2-.3v-1.5l.2-.2v-.3l.2-.2.2-.3.2-.3v-.2l.3-.2v-.2h.3l.2-.2.3-.2h.2l.2-.2zm.2.5l-.2-.5.2.5z" fill="#21231e"/> - <path d="M400 179.7c3.6 0 6.4 2.8 6.4 6.4 0 3.6-2.8 6.5-6.3 6.5s-6.3-3-6.3-6.4 3-6.3 6.4-6.3z" fill="#fff"/> - <path d="M407 186h-1c0-2-1.4-4.3-3.3-5.2a5.8 5.8 0 0 0-2.6-.6v-1c2.4 0 4.7 1.2 6 3.2a7 7 0 0 1 1 3.7zm-7 7v-1c2.2 0 4.3-1.3 5.3-3.3a6 6 0 0 0 .6-2.6h1c0 2.4-1.3 4.7-3.3 6a6.8 6.8 0 0 1-3.6 1zm-6.8-7h1c0 2.3 1.3 4.4 3.3 5.4a5.8 5.8 0 0 0 2.6.6v1c-2.3 0-4.5-1.3-5.7-3.3a7 7 0 0 1-1-3.6zm7-7v1.2c-2.3 0-4.4 1.3-5.3 3.2a6 6 0 0 0-.8 2.7h-1c0-2.3 1.3-4.6 3.3-5.8a6.8 6.8 0 0 1 3.6-1z" fill="#21231e"/> - <path d="M395.4 169c3.5 0 6.4 3 6.4 6.4 0 3.6-3 6.4-6.4 6.4s-6.3-2.8-6.3-6.4c0-3.5 3-6.4 6.4-6.4z" fill="#fff"/> - <path d="M402.3 175.4h-1c0-2.2-1.3-4.3-3.2-5.3a5.8 5.8 0 0 0-2.6-.5v-1c2.4 0 4.6 1.3 6 3.2a7 7 0 0 1 1 3.7zm-7 7v-1c2.3 0 4.4-1.4 5.4-3.3a6 6 0 0 0 .6-2.6h1c0 2.4-1.2 4.7-3.2 6a6.8 6.8 0 0 1-3.6 1zm-6.7-7h1c0 2.2 1.3 4.4 3.2 5.3.8.4 1.7.6 2.6.6v1c-2.3 0-4.6-1.2-5.8-3.2a7 7 0 0 1-1-3.6zm6.8-7v1c-2 0-4.2 1.4-5.2 3.3a6 6 0 0 0-.6 2.7h-1c0-2.3 1.2-4.6 3.2-6a7 7 0 0 1 3.6-1z" fill="#21231e"/> - <path d="M410.7 131.5c3.4 0 6 2.7 6 6s-2.6 6.3-6 6.3-6.2-2.7-6.2-6.2c0-3.4 2.8-6 6.2-6z" fill="#fff"/> - <path d="M417.3 137.7h-1c0-2.2-1.2-4.2-3-5a5.6 5.6 0 0 0-2.6-.7v-1c2.2 0 4.4 1.2 5.6 3a6.7 6.7 0 0 1 1 3.7zm-6.6 6.6v-1c2 0 4-1.2 5-3 .4-1 .6-1.8.6-2.6h1c0 2.2-1.2 4.5-3 5.6a6.6 6.6 0 0 1-3.6 1zm-6.7-6.7h1c0 2.2 1.3 4.2 3.2 5a5.6 5.6 0 0 0 2.5.7v1c-2.3 0-4.5-1.2-5.6-3a6.7 6.7 0 0 1-1-3.6zm6.7-6.6v1c-2 0-4 1.2-5 3a5.7 5.7 0 0 0-.7 2.6h-1c0-2.2 1.2-4.4 3-5.6a6.6 6.6 0 0 1 3.7-1z" fill="#21231e"/> - <path d="M400.4 136.2c3.5 0 6.3 3 6.3 6.4 0 3.5-2.8 6.4-6.3 6.4s-6.4-3-6.4-6.4c0-3.5 2.8-6.4 6.4-6.4z" fill="#fff"/> - <path d="M407.2 142.6h-1c0-2.2-1.3-4.3-3.3-5.3a5.8 5.8 0 0 0-2.6-.6v-1c2.3 0 4.6 1.2 5.8 3.2a7 7 0 0 1 1 3.6zm-6.8 7v-1c2 0 4.2-1.4 5.2-3.3a6 6 0 0 0 .6-2.7h1c0 2.3-1.2 4.7-3.2 6a6.8 6.8 0 0 1-3.6 1zm-7-7h1c0 2.2 1.4 4.3 3.3 5.3a5.8 5.8 0 0 0 2.7.5v1c-2.4 0-4.7-1.2-6-3.2a7 7 0 0 1-1-3.7zm7-7v1c-2.2 0-4.3 1.4-5.3 3.3a6 6 0 0 0-.5 2.6h-1c0-2.4 1.2-4.7 3.2-6a6.8 6.8 0 0 1 3.7-1z" fill="#21231e"/> - <path d="M392.8 145.3c3.5 0 6.3 2.8 6.3 6.4 0 3.5-2.7 6.4-6.2 6.4s-6.4-2.8-6.4-6.3c0-3.6 3-6.4 6.4-6.4z" fill="#fff"/> - <path d="M399.6 151.7h-1c0-2.2-1.3-4.4-3.2-5.3a5.8 5.8 0 0 0-2.6-.6v-1c2.3 0 4.6 1.2 5.8 3.2a7 7 0 0 1 1 3.7zm-6.8 7v-1c2 0 4.2-1.4 5.2-3.4a6 6 0 0 0 .6-2.6h1c0 2.3-1.2 4.6-3.2 6a6.8 6.8 0 0 1-3.6 1zm-7-7h1c0 2 1.4 4.3 3.3 5.2a5.8 5.8 0 0 0 2.8.6v1c-2.4 0-4.6-1.3-6-3.3a7 7 0 0 1-1-3.6zm7-7v1c-2.2 0-4.3 1.3-5.3 3.3a6 6 0 0 0-.6 2.7h-1c0-2.4 1-4.7 3.2-6a7 7 0 0 1 3.6-1z" fill="#21231e"/> - <path d="M391.5 156.7c3.6 0 6.4 2.8 6.4 6.4s-3 6.5-6.5 6.5-6.3-3-6.3-6.4 2.8-6.3 6.3-6.3z" fill="#fff"/> - <path d="M398.4 163h-1c0-2-1.3-4.2-3.2-5.2a5.8 5.8 0 0 0-2.7-.6v-1c2.4 0 4.7 1.2 6 3.2a7 7 0 0 1 1 3.7zm-7 7v-1c2.3 0 4.4-1.3 5.4-3.3a6 6 0 0 0 .6-2.6h1c0 2.5-1.3 5-3.4 6a6.8 6.8 0 0 1-3.5 1zm-6.7-7h1c0 2.3 1.3 4.4 3.2 5.4.7.4 1.6.6 2.5.6v1c-2.3 0-4.6-1.3-5.8-3.2a7 7 0 0 1-1-3.7zm6.8-6.8v1c-2 0-4.2 1.3-5.2 3.2a6 6 0 0 0-.6 2.7h-1c0-2.3 1.2-4.6 3.2-5.8a7 7 0 0 1 3.5-1z" fill="#21231e"/> - <path d="M474.4 198c-2.7-5-5.6-8.2-8.6-9.6 4.2-13.2 5.2-30.2 2.7-51-.2-3.3-1-4.6-2.2-4.6-1 0-1.7 1.6-1.8 5.2.8 11.6 1.7 21.6 1.2 30.2-.5 7.6-2.3 14-4.2 21.2-.3 1 .4 1.7 3.8 3.7 2.6 1.5 4.2 3.3 4.7 5 .7-.2 1.2 0 1.5 0 2.5.8 3.6.6 3 0z" fill="#edb92e"/> - <path d="M465.3 188.2l1 .3-.3-.6h.3l.3.2.3.2.2.2h.3l.3.3h.3l.4.4.2.2.3.2.2.3.3.3.3.3.3.3.3.2.3.3.3.3.2.3.2.5.3.3.3.4.2.3.3.4.3.3.2.4.3.4.3.5.2.5.3.4.3.4.3.5.3.5-1 .5-.3-.5-.2-.4-.3-.5-.2-.5-.3-.4-.3-.3-.2-.4-.3-.4-.3-.5-.3-.4-.2-.2-.3-.4-.4-.3-.2-.2-.3-.3v-.3l-.4-.3-.3-.4-.2-.3-.2-.2-.3-.2-.2-.2-.3-.2-.3-.2-.2-.2-.3-.2-.3-.2-.3-.2h-.3l-.3-.3-.4-.2-.3-.6zm.3.6h-.4v-.6l.4.6zm2.4-51.5h1l.2 2 .2 1.8.2 2 .2 2v1.8l.2 1.8v1.8l.2 1.8v15l-.3 1.5-.2 1.5v1.5l-.3 1.5-.2 1.5-.2 1.4-.2 1.5-.2 1.3-.3 1.4-.3 1.3-.3 1.4-.3 1.3-.4 1.3-.3 1.3-.4 1.2-1-.3.4-1.2.4-1.3.4-1.3.3-1.3.3-1.2.3-1.3.3-1.4.2-1.3.3-1.4.3-1.5.2-1.4V172l.3-1.6V169l.2-1.7v-1.6l.2-1.6v-13.6l-.2-1.8v-2l-.2-1.7-.2-2-.2-1.8-.2-2-.2-2zm0 0zm-1.7-4v-1h.6v.2h.3v.2h.2l.2.3h.2v.5h.2v.3l.2.2v.3l.2.2v.4l.2.4v.9l.2.3v.4h-1v-.9l-.2-.2v-.6l-.2-.2v-.5h-.2v-.5h-.2v-.2l-.2-.2h-.2v-.2h-.4zM465 138h-1v-1.7l.2-.3v-1l.2-.3v-.7h.2v-.3l.2-.3v-.3h.2l.2-.2.3-.2.2-.2h.5v1h-.2v.2h-.2v.2l-.2.2v.3l-.2.3v.6l-.2.2v1.6l-.2.4v.7zm-1 0zm2.2 30.2h-1V154l-.2-1v-2.8l-.2-1v-2l-.2-1v-1l-.2-1v-2l-.2-1V139l-.2-1 1-.2v1l.2 1.2v2l.2 1v2.2l.2 1v2l.2 1v2l.2 1v2.8l.2 1v12zm-4.3 21.3l-1-.3.2-.6v-.7l.3-.8.2-.6.2-.7v-.7l.2-.7.2-.6.2-.7v-.6l.3-.6v-.6l.2-.6.2-.7v-.5l.2-.6.2-.8v-.6l.2-.7.2-.7v-.7l.2-.6v-.7l.2-.6v-.7l.2-.7v-.7l.2-.6V169l.2-.8h1v1.5l-.2.7v1.5l-.2.6v.7l-.2.8v.7l-.2.6v.8l-.2.7-.2.6v.8l-.2.6-.2.7v.7l-.3.7v.6l-.3.7v.6l-.3.6-.2.6v.6l-.3.7-.2.5-.2.7v.6l-.3.7-.2.7-.2.6v.7zm3.6 3l-.5 1-.2-.2h-.3l-.3-.3-.3-.2h-.4l-.2-.3h-.2l-.3-.3h-.3v-.2l-.3-.2h-.2l-.2-.2-.2-.3h-.2v-.2h-.2l-.2-.2v-.2l-.2-.2v-1l1 .2v.5h.2v.2l.2.2h.2v.2h.2l.2.2.3.3h.2l.2.2.2.2h.2l.2.3h.3l.3.3.3.2h.3zm0 0zm4.2 5.2l.4 1-.7-.4v-.2l-.2-.2v-.3l-.2-.2v-.3l-.2-.3-.3-.3-.2-.3-.3-.2-.3-.3v-.2h-.3v-.2h-.3v-.2l-.3-.2h-.2v-.3h-.3l-.2-.2h-.3l-.2-.2-.2-.2h-.2l.6-1 .2.2h.2l.3.3.2.2.2.2h.2v.3h.4l.2.3.3.3.3.3.2.2.3.3v.3l.3.2h.2v.3l.3.2v.2h.2v.3l.2.2v.2l.2.3v.3l.2.2v.2l-.6-.3zm.4 1h-.5l-.2-.4.7.3zm1.4-1.2l-.3 1h-1l-.4-.8h.2l.2-.2h1.4zm3.3.5h-1l.7-.4.2.2v.8l-.2.2h-.2v.2h-1.8l-.2-.2h-.3l-.2-.2h-.5l.3-1h.7l.2.2h1v.2h.7v.4l.7-.4zm-1 0v-1l.7.6-.8.4zm0 0h1l-1 .3v-.3z" fill="#21231e"/> - <path d="M458.4 214.6c1.6-1 2-.8 2.4-1.4.6-.8.6-2.2.4-3.5-.8-5.3 2.4-4.6 6-2.2 1.7 1 3.5 4 5 5.3s2.8 1.5 3.2 2v9.2c-.4.6-1.7.7-3.2 2-1.5 1.5-3.3 4.2-5 5.4-3.6 2.3-6.8 3-6-2.2.2-1.3.2-2.7-.4-3.5-.5-.7-.8-.4-2.4-1.4-1-.6-1.8-1.4-2.3-2.2-.4-.8 0-1.7 0-2.6 0-1-.4-1.8 0-2.6.6-.8 1.4-1.6 2.4-2.2z" fill="#edb92e"/> - <path d="M460.4 213l.8.5-.2.2-.2.2h-.4v.2h-.4l-.2.2h-.2l-.2.2h-.2v.2h-.5v.2l-.7-1h.6v-.2h.2l.2-.2h.2l.2-.2h.4v-.2h.4v-.2h.2zm.3-3.2l1-.2v2.9l-.2.3v.2h-.2v.2l-1-.5v-.2h.2v-.4h.2v-2.6zm6.7-2.8l-.6 1-.3-.3-.3-.2-.3-.2-.4-.2h-.3l-.3-.2h-.3l-.3-.2h-.3v-.2h-.4l-.2-.2h-1.1v.2h-.2v.2l-.2.2v.6l-.2.3v2l-1 .2v-3l.2-.4v-.3l.3-.2.3-.2.2-.2h.2l.2-.2h.2l.2-.2h1.5v.2h.5l.3.2h.3l.4.3h.3l.3.2.4.2.3.2.3.2.4.2zm5 5.4l-.6.7-.3-.2-.3-.3-.3-.3-.2-.2-.2-.2-.3-.3-.2-.2v-.2h-.2v-.3l-.3-.2-.3-.3-.2-.2v-.2l-.3-.2v-.2h-.3l-.2-.3-.3-.2-.2-.2h-.2l-.2-.2v-.2h-.3v-.2h-.2l.6-1 .2.2.3.2v.2h.3v.3h.3l.2.2.2.2v.2l.3.2h.2v.3l.3.3.2.2v.2l.3.2.3.3h.2v.3l.3.2.2.2.2.2.3.3v.2h.3v.3h.3v.3h.2zm3.5 2.4h-1.2v.3h-.2l-.2-.2h-.2v-.2h-.4l-.2-.2h-.2v-.2h-.3v-.2h-.3v-.2l-.3-.2-.3-.2-.2-.3.7-.6h.2v.2h.2v.2h.2v.2h.2v.2h.3l.2.2.2.2h.2l.2.2h.2l.2.2h.2v.2h.4v.2l.2.2v.2zm-.2-.2v.2-.2zm0 4.8h-1v-4.5l1-.2v4.5zm-1 0zm0 0h1-1zm0 0zm1 5l-1-.7v.3-4.4h1v4.7zm0-.4v.2-.2zm-3.3 2.5l-.7-.8h.2v-.2l.3-.2.3-.2h.3v-.2h.3v-.2h.2l.2-.2h.2v-.2h.4v-.2h.4v-.2l1 .5-.2.2-.2.2h-.2v.2h-.4l-.2.2h-.2v.2h-.4v.2h-.3v.2h-.2l-.2.2-.2.2v.2h-.3zm-5 5.3l-.7-.8h.2v-.2l.3-.2.3-.2.2-.2.3-.3.2-.2.2-.2.2-.2v-.2h.3v-.3l.2-.3.2-.2v-.2l.3-.2.3-.2v-.2l.3-.2.2-.2v-.2h.3v-.3l.3-.2.2-.2h.2v-.3h.3v-.3l.8.8-.2.2-.2.2-.2.2v.2h-.3v.3l-.3.2-.3.2-.2.2-.2.2-.2.2v.2l-.3.2v.2l-.2.2h-.2v.3h-.3l-.2.3v.2h-.2l-.2.3-.2.2-.3.3-.3.3-.3.2zm-6.8-2.7l1 .3v2.6l.2.2v.2h.2v.2h1.7v-.2h.4l.3-.2h.3l.3-.3.3-.3h.3l.2-.3.3-.2.3-.2.6.8-.4.2-.3.3-.3.2h-.4l-.3.3-.3.2h-.3l-.2.3h-.4l-.3.2h-.4l-.3.2h-.9l-.3-.2h-.3l-.2-.3-.2-.2-.2-.2v-.3l-.2-.2v-.7l-.2-.3V229zm-.3-3l.8-.6v.2h.2v.4h.2v.6l.2.2v2.4l-1-.2v-2.5h-.2v-.4h-.2v-.2zm-2.3-1.3l.7-.8h.2l.2.2h.2l.2.2h.2l.2.2h.4v.2h.2v.2h.2l.2.2.2.2-.8.6-.2-.2h-.2v-.2h-.4l-.2-.2h-.4v-.2h-.2l-.2-.2h-.2v-.2h-.3zm.7-.8l.5.2-.5-.3zm-3-1.7l.8-.5.2.2v.2h.2v.4h.2v.2h.2v.2h.2v.2h.2l.2.2.2.2h.2v.2h.2l-.5 1v-.2h-.2l-.2-.2-.2-.2h-.2v-.2h-.2v-.2h-.2v-.2h-.2v-.2h-.2v-.2h-.2v-.2l-.2-.2-.2-.2v-.2zm-.3-3h1v2.4l-.7.5v-.2h-.2v-.4l-.2-.2v-2.1zm.3-2.8l.8.6v.4l-.2.2v1.8h-1V217h.2v-.4h.2zm2.4-2.4l.7 1h-.2v.2h-.2l-.2.2-.2.2-.2.2-.2.2-.2.2-.2.2v.2h-.2v.2h-.2v.2l-1-.5h.2v-.2l.2-.2.2-.2v-.2h.2l.2-.2v-.2h.2v-.2h.2l.2-.2h.2v-.2l.2-.2h.2v-.2h.2zm.7 1l.5-.3-.5.3z" fill="#21231e"/> - <path d="M475.5 220.2v1c-4 .4-7 2-9.7 4.3 1.8-2.7 5.7-4.7 9.7-5.3zm0-1.6v-.8c-4-.5-7-2-9.7-4.4 1.8 2.7 5.7 4.6 9.7 5.2z" fill="#21231e"/> - <path d="M461.2 207.3c1 .4 2.3 1 3.4 2 1.6 1.5.6 4-1.5 6.6-.6.7-1 2-1 3.5 0 1.3.5 2.7 1 3.5 2.2 2.5 3.2 5 1.6 6.6-1 1-2.3 1.5-3.4 2v-2.4c.2-1.3.2-2.7-.4-3.5-.5-.7-.8-.4-2.4-1.4-1-.6-1.8-1.4-2.3-2.2-.4-.8 0-1.7 0-2.6 0-1-.4-1.8 0-2.6.6-.8 1.4-1.6 2.4-2.2 1.6-1 2-.8 2.4-1.4.6-.8.6-2.2.4-3.5v-2.4z" fill="#edb92e"/> - <path d="M465 209l-.8.6-.2-.2-.2-.2h-.2v-.2h-.2l-.2-.2h-.2v-.2h-.4v-.2h-.5v-.2h-.2l-.2-.2h-.2l-.2-.2h-.2l.4-1h.2l.2.2h.2l.2.2h.3l.2.2h.2v.2h.3l.2.2h.2v.2h.3v.2h.2l.2.2.2.2.2.2zm-1.5 7.2l-.8-.6.2-.3v-.2h.2l.2-.3.2-.3v-.2l.3-.2v-.5l.2-.2v-.2h.2v-.3l.2-.2v-.4h.2v-1.6l-.2-.3-.2-.2-.2-.2.7-.7.3.3v.2l.2.2v.2h.2v.5l.2.2v1l-.2.2v.4l-.2.2v.5l-.2.3v.3l-.3.2v.5l-.3.2v.3l-.3.2-.2.3v.2l-.3.2-.3.3-.2.2zm-1 3.3h-1v-.7l.2-.2v-1.2h.2v-1h.2v-.4l.2-.2v-.2h.2v-.2l1 .6h-.2v.4h-.2v.2l-.2.2v.9h-.2v1.4h-.2v.5zm1 3.2l-.8.6v-.2h-.2v-.2h-.2v-.4h-.2v-1.1l-.2-.3V220h-.2v-.5h1v1.1l.2.2v.4l.2.2v.4l.2.2v.2h.2v.2zm1.5 7.3l-.8-.8h.2v-.2h.2v-.3l.2-.2v-1.9l-.2-.2v-.2l-.2-.2v-.2l-.2-.3v-.2l-.2-.2-.3-.3v-.3l-.3-.2-.2-.2v-.2l-.3-.3-.3-.2.8-.6.2.2h.2v.4l.2.2.2.3h.2v.3l.3.3v.5l.3.3v.3l.2.2v.5l.2.2v.5l.2.2v.7l-.2.4v.4l-.2.2v.2l-.2.2v.2l-.3.2v.2zm-4.3 1.7l1-.2-.7-.4h.7v-.2h.4l.2-.2h.2l.2-.2h.2v-.2h.4v-.2h.2l.2-.2.2-.2h.2v-.2h.2v-.2l.8.8h-.2v.2h-.2v.2h-.2l-.2.2-.2.2h-.2l-.2.2h-.2v.2h-.4v.2h-.4v.2h-.5v.2h-.2l-.2.2h-.2l-.7-.3zm.7.4l-.6.3v-.6l.6.4zm-.7-3l1 .3v2l-1 .3v-2.4zm-.3-3l.8-.6v.2h.2v.4h.2v.6l.2.2v2.4l-1-.2v-2.4h-.2v-.4h-.2v-.2zm-2.3-1.3l.7-.8h.2l.2.2h.2l.2.2h.2l.2.2h.4v.2h.2l.2.2.2.2.2.2-.8.6-.2-.2h-.2v-.2h-.4l-.2-.2h-.4v-.2h-.2l-.2-.2h-.2v-.2h-.3zm0 0l-.3-.2.4.2zm-2.3-2.4l.8-.5.2.2v.2h.2v.4h.2v.2h.2v.2h.2v.2h.2l.2.2h.2v.2h.2v.2h.2l-.5 1v-.2h-.2l-.2-.2-.2-.2h-.2v-.2h-.2v-.2h-.2v-.2h-.2v-.2h-.2v-.2h-.2v-.2l-.2-.2-.2-.2v-.2zm0 0l.3.5-.3-.5zm-.3-3h1v2.4l-.7.5v-.2h-.2v-.4l-.2-.2v-2.2zm.3-2.8l.8.6v.4l-.2.2v1.8h-1V217h.2v-.4h.2zm2.4-2.4l.7 1h-.2v.2h-.2l-.2.2-.2.2-.2.2-.2.2-.2.2-.2.2v.2h-.2v.2h-.2v.2l-1-.5h.2v-.2l.2-.2.2-.2v-.2h.2l.2-.2v-.2h.2v-.2h.2l.2-.2h.2v-.2h.2v-.2h.2v-.2h.2zm2.4-1l.8.5-.2.2-.2.2h-.4v.2h-.4l-.2.2h-.2l-.2.2h-.2v.2h-.5v.2l-.7-1h.6v-.2h.2l.2-.2h.2l.2-.2h.4v-.2h.4v-.2h.2zm.3-3.2l1-.2v2.9l-.2.2v.2h-.2v.2l-1-.5v-.2h.2v-.4h.2V210zm.5-2v-1l.5.6v2.1l-1 .2V207l.5.6zm0-1h.6v.6l-.6-.6zm0 0v1h-.2l.2-1zM361 226.3l.7-.3c-1.6-2.2-2-4.2-1.3-6.3-1.3 1.6-1 4.2.6 6.6z" fill="#21231e"/> - <path d="M410.7 200c1.4 1.6 1.2 2 2 2.5 1 .6 2 .4 3.3 0 5-2 5 2 3.5 6.4-.7 2-2.8 4.3-3.7 6.2-1 1.7-.7 3-1 3.5a95.4 95.4 0 0 1-4 .6l-4 .5c-.6-.3-1-1.6-2.6-3s-4.4-3-6-4.6c-3-3.5-4.6-6.8.2-6.7 1.2 0 2.4-.2 3-1 .4-.7 0-1 .4-3 .3-1.2.8-2.3 1.4-3 .6-.8 1.5-.6 2.3-.7 1-.2 1.6-.7 2.5-.2 1 .4 2 1.2 2.7 2.3z" fill="#edb92e"/> - <path d="M413 202l-.6 1-.2-.2-.2-.2-.2-.2v-.2h-.2v-.2l-.2-.2v-.2l-.2-.2v-.2h-.2v-.2l-.2-.2-.2-.3-.3-.3.8-.6.3.2.2.3v.2h.2v.4h.2v.4h.2v.2l.2.2v.2h.2v.2l.2.2zm-.6 1zm3.5-1l.2 1h-.5l-.2.2h-.8v.2h-1.2l-.3-.2h-.2l-.2-.2h-.2l.5-1v.2h.8v.2h1l.2-.2h.4l.2-.2h.3zm4 7l-1-.3v-.4l.2-.4v-.5l.2-.4v-.3l.2-.3v-.7l.2-.4v-1.7l-.2-.2v-.4h-.2l-.2-.3h-.2l-.3-.2H417l-.4.3h-.4l-.3-.8.3-.2h.5l.4-.2h1.8l.3.2h.3l.2.3.2.4v.2l.3.3.2.4v3.3l-.2.4v.4l-.2.4v.4l-.2.4v.4zm-3.7 6.4l-1-.5v-.2l.2-.2.2-.2v-.2l.2-.2v-.4l.2-.2.2-.2v-.2l.2-.2.2-.2.2-.3.2-.2.2-.3.2-.2v-.2l.2-.2h.2v-.3l.2-.2v-.2l.2-.2.2-.3v-.2l.2-.2v-.2l.2-.3 1 .3v.2l-.2.3v.2l-.2.2-.2.3v.2l-.2.2v.3l-.3.2-.2.2v.2l-.2.2-.2.2v.2l-.2.2-.2.2v.2l-.3.2v.2l-.2.2-.2.2v.2l-.2.2v.4h-.3v.3l-.2.2-.2.2v.2zm-1.5 3.8l-.2-1-.3.2v-.4h.2v-1l.2-.2v-.4l.2-.3v-.4l.2-.3v-.2h.2l1 .4-.2.2-.2.3v.3h-.2v.7h-.2v.9l-.2.2v.4l-.2.2v.2l-.4.2zm.3 0h-.2.3zm-4.3.6v-1h1.1v-.2h1.2v-.2h1.1l.3-.2.2 1h-.4l-.3.2h-.9l-.2.2h-1.3v.2h-.7zm0 0zm0 0v-1 .5-.5 1-.5.5zm0-1zm-4 1.5l.4-1h-.2 1.3l.3-.2h1.9l.2-.2.2 1h-.8v.2h-1.4v.2h-2zm.2 0h-.3.2zm-3-3l.5-1 .2.3.3.3h.2l.2.3.2.2.2.3.2.2v.2h.2v.2h.2v.2l.2.2v.2h.2v.2h.2v.2l-.4 1v-.2h-.2l-.2-.2-.2-.2v-.2h-.2v-.2l-.2-.2v-.2h-.2v-.2l-.2-.2-.2-.2-.2-.2-.2-.3v-.2h-.2v-.2h-.3v-.3zm-6-4.8l.7-.6.2.2.3.3.3.3h.2v.3l.3.2h.3l.2.3h.2l.2.3.3.3.2.2.2.2h.2v.2l.3.2h.2l.2.3.2.2.3.3h.2l.2.3.3.2.2.2h.2v.2l-.5.8h-.3v-.2l-.3-.2h-.2v-.2l-.3-.2h-.3l-.2-.2-.2-.2h-.2v-.2l-.3-.2h-.2l-.2-.3h-.2v-.2h-.3l-.2-.2-.2-.2h-.2v-.3h-.3l-.2-.3-.2-.2h-.2v-.3h-.3v-.3l-.3-.2h-.2v-.3l-.3-.2zm.4-7.5v1H397l-.2.2h-.4l-.2.2v.2h-.2v1.5l.2.3v.3l.2.2.2.3.2.4.2.3.2.3.2.3.2.3.3.3v.2l.4.3.3.4-.8.5-.4-.3-.3-.3-.2-.4-.2-.4-.2-.3-.3-.4-.2-.3v-.4l-.3-.4v-.3l-.3-.3v-.3l-.3-.3V206l.2-.2.2-.2.2-.2.3-.2h.2l.3-.2h.7l.4-.2h.8zm2.5-.8l.8.5-.2.2-.2.2h-.2v.2h-.2l-.2.2h-.2l-.2.2h-.5l-.2.2h-1.1v-1h1.4l.2-.2h.2l.2-.2h.2v-.2h.2v-.2zm0 0zm.4-2.8l1 .2v.4h-.2v2h-.2v.4l-.2.2-1-.4h.2v-1.4l.2-.3v-.8l.2-.2zm1.4-3.2l.8.6-.2.2v.2h-.2v.4h-.2v.4h-.2v.4l-.2.2v.4l-.2.2v.4l-1-.2v-.7l.2-.2v-.4l.2-.2v-.4h.2v-.4h.2v-.4h.2v-.2h.2v-.4h.2zm.8.6l.5-.7-.4.8zm1.8-1.5l.2 1H404v.2h-.4v.2h-.2l-.8-.5.2-.2.2-.2h.2v-.2h.4l.2-.2h1.4zm.2 1h-.7.6zm2.7-1.2l-.5 1H406l-.2.2h-.4l-.2-1h.8l.2-.2h2.1zm3 3h-1v.2-.2h-.2v-.2l-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2h-.2v-.2h-.2l-.2-.2-.2-.2h-.2l-.2-.2.5-1v.2h.2l.2.2h.2v.2h.2v.2h.2l.2.2.2.2.2.2h.2v.2h.2v.2l.2.2.2.2.2.2v.2l.3.3zm-.2-.4h.2v.3-.4zm-.8.3h1l-1 .2v-.3zm0 .2v-.3.2z" fill="#21231e"/> - <path d="M410 219.4h-.7c-1.4-3.8-3.5-7-6.3-9.5 2.8 1.4 5.5 5.3 7 9.4zm1.4-.2c.3 0 .5 0 .8-.2-.5-4 0-7.5 1.5-11-2 2.5-2.8 7-2.3 11.2z" fill="#21231e"/> - <path d="M418.3 202c-.2 1.4-.4 3-1 4.3-1 2-3.8 1.3-6.6-.7-.8-.6-2.2-.8-3.4-.6-1.3.3-2.4.8-3 1.7-1.5 2.6-3.4 4-5.2 2.6-1-1-2-2.3-2.7-3.5.5-.2 1.2-.3 2-.3 1.3 0 2.5-.2 3-1 .5-.7 0-1 .6-3 0-1.2.6-2.3 1.2-3 .6-.8 1.5-.6 2.3-.7 1-.2 1.6-.7 2.5-.2 1 .4 2 1.2 2.7 2.3 1.4 1.6 1.2 2 2 2.5 1 .6 2.2.4 3.3 0 1-.4 1.7-.6 2.3-.5z" fill="#edb92e"/> - <path d="M417.7 206.5l-1-.4.2-.2v-.5l.2-.2v-.4l.2-.2v-.9l.2-.2v-1.2h.2v-.4h1v1.1l-.2.3v1h-.2v.7h-.2v.7h-.2v.3l-.2.3v.2zm-7.2-.5l.5-.8.3.2h.2l.3.3h.2l.3.3h.2l.3.2.2.2h.2l.3.2h.4v.2h.7l.2.2h1v-.2h.2l.2-.2.2-.3.2-.2 1 .5-.2.2-.2.3-.3.3v.2h-.2l-.2.2h-.2l-.3.2h-2l-.2-.2h-.2l-.3-.2h-.2l-.2-.2h-.2l-.3-.2-.2-.2h-.2l-.3-.3-.2-.2h-.3l-.3-.3-.2-.2zm-3-.4l-.3-1h1.1v-.2h1.3v.2h.6v.2h.4v.2h.2l.2.2-.5.8h-.2v-.2h-.4v-.2h-2.4zm-2.7 1.3l-.8-.6v-.2h.2v-.2h.2v-.2l.2-.2h.2v-.2h.2l.2-.2h.2l.2-.2h.3v-.2h.8l.2-.2h.5l.2 1h-.7v.2h-.4v.2h-.4l-.2.2h-.2v.2h-.2v.2h-.2v.2h-.2zm-6 2.7l.6-.8h.3v.2h.5l.2.2h.5l.3-.2h.3v-.2h.3v-.2h.2v-.3h.3v-.3h.3v-.3l.3-.3.2-.2.2-.2v-.2h.3v-.4l.3-.2.8.5v.2l-.3.2v.3l-.3.2h-.2v.3l-.3.2-.2.2-.2.2-.3.3h-.2l-.2.3h-.2v.3h-.3l-.3.2h-.4l-.3.2h-1.2l-.2-.2h-.2l-.2-.2-.2-.2h-.2zm-2.7-4.4l.5 1 .3-.8v.3h.2v.2l.2.2v.2h.2v.2l.2.2v.2h.2v.2l.2.2.2.2.2.2v.2h.2v.2h.2v.2h.2v.2h.2v.2h.2l-.6 1-.2-.2-.2-.2-.2-.2v-.2h-.2v-.2h-.2v-.2h-.2v-.2h-.2v-.3h-.2v-.2h-.2v-.2h-.2v-.3h-.2v-.2h-.2v-.4h-.2v-.2h-.2V205zm0 .8l-.4-.4.5-.3v.8zm2.4-1v1H397v.2h-.4l-.5-1h1.2v-.2h1.2zm2.5-.8l.8.5-.2.2-.2.2h-.2v.2h-.2l-.2.2h-.2l-.2.2h-.7l-.2.2h-1.2v-1h1.4l.2-.2h.4v-.2h.2v-.2h.2v-.2zm0 0zm.4-2.8l1 .3v.3l-.2.3v1.7h-.2v.7h-.2l-1-.4h.2v-1.4h.2v-1.3l.2-.2zm1.4-3.2l.8.6-.2.2v.2h-.2v.4h-.2v.4h-.2v.4l-.2.2v.7h-.2v.5l-1-.3v-.7l.2-.2v-.4l.2-.2v-.4h.2v-.4h.2v-.4h.2v-.2h.2v-.4h.2zm0 0l.4-.5-.4.5zm2.6-1l.2 1h-.6v.2h-1v.2h-.2l-.2.2-.8-.6.2-.2.2-.2h.2v-.2h.4l.2-.2h1.4zm0 0h.6-.6zm3 0l-.6.8H406v.2h-.5l-.2-1h.8v-.2h2.1zm-.6.8l.3.2-.2-.2zm3.3 1.6l-.6.6-.2-.2h-.2v-.2l-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2h-.2v-.2h-.2l-.2-.2h-.2v-.2h-.2l-.2-.2.5-1v.2h.2l.2.2h.2v.2h.2v.2h.2l.2.2.2.2.2.2h.2v.2h.2v.2l.2.2.2.2.2.2v.2zm2 2.5l-.6 1-.2-.2-.2-.2-.2-.2v-.2h-.2v-.2l-.2-.2v-.2l-.2-.2v-.2h-.2v-.2l-.2-.2-.2-.3-.2-.3.7-.6.3.2.2.3v.2h.2v.2l.2.2v.4h.2v.2l.2.2v.2h.2v.2l.2.2zm-.6 1l-.2-.2h.2zm3.5-1l.2 1h-.5l-.2.2h-.8v.2h-1.3l-.2-.2h-.2l-.2-.2h-.2l.5-1v.2h.6l.2.2h1.1l.2-.2h.4l.2-.2h.2zm2.8 0h-1l.5.5h-1l-.2.2h-.4l-.2.2h-.2l-.3-1 .2-.2h.8v-.2h1.5l.5.4zm-.5-.5h.6l-.2.5-.5-.5z" fill="#21231e"/> - <path d="M391.8 221.2c.7-1 1-.8 1.2-1.3.2-1-.3-2-1-3.2-2.2-4.6.3-4.2 3.6-2.4 1 .4 2 1.2 3 2 1 1 1.8 1.8 2.7 2.4 1.6 1.2 2.7 1.2 3 1.7 1 2 1.5 3.5 1.8 4.2.3.7 1 2.3 1.6 4.2 0 .4-1 .5-1.8 2-.7 1.2-1.2 3.5-2 4.7-1.4 1.6-2.5 2.6-3.4 2.4-1 0-1.6-1.3-1.8-4.2 0-1.2-.7-2.4-1.5-3-.5-.6-.6-.4-2-1.2a9.3 9.3 0 0 1-2.4-2c-.6-.6-.7-1.3-1-2-.3-1-.8-1.6-.7-2.4a3.8 3.8 0 0 1 .8-2z" fill="#edb92e"/> - <path d="M392.5 219.7l1 .3v.2l-.2.2v.2h-.2v.2h-.2v.2h-.2l-.2.2v.2h-.2l-.8-.5v-.2l.2-.2.2-.2.2-.2h.2v-.2h.2v-.2zm1 .3zm-1.8-3l1-.5v.4l.2.2v.4l.2.3v.2l.2.2v2l-1-.3v-1.2l-.2-.2v-.4h-.2v-.4h-.2v-.4zm4.2-3l-.6.8h-.3l-.2-.3h-.3l-.3-.3h-.3l-.3-.2h-.3l-.2-.2h-.5l-.2-.2h-.6v1.5l.3.4.2.3.2.4.2.5-1 .5v-.4l-.3-.4-.2-.4v-.7l-.2-.2v-1.5l.2-.2h.2l.2-.2h.2l.2-.2h1.2l.2.2h.6l.3.3.3.2h.3l.3.2.2.2.4.2h.3zm2.8 2l-.7 1v-.4h-.2l-.2-.2h-.2v-.2h-.2v-.2h-.2v-.2h-.2l-.2-.2h-.2v-.2h-.2l-.2-.2-.2-.2h-.2l-.2-.2.5-1v.2h.2v.2h.2l.2.2h.2v.2h.2l.2.2h.2v.2h.2v.2h.2l.2.2.2.2.2.2h.2v.2h.2zm2.8 2.4l-.6.8h-.2v-.2h-.2v-.2h-.2l-.2-.2h-.2v-.2h-.2v-.2h-.2v-.2h-.2l-.2-.2-.2-.2-.2-.2h-.2v-.2h-.2v-.2h-.2l.6-1v.2h.2l.2.2v.2h.2l.2.2.2.2h.2v.2h.2v.2h.2v.2h.2l.2.2.2.2h.2v.2h.2l.2.2zm3.3 2l-1 .3v.2-.2h-.2v-.2h-.4l-.2-.2h-.2l-.2-.2h-.3l-.2-.2h-.3v-.2h-.3v-.2h-.3v-.2h-.3v-.2l.6-.8.2.2h.2v.2h.3l.2.2h.2l.2.2h.2v.2h.4l.2.2h.4v.2h.2l.2.2h.2v.3zm-.2-.3v.2zm1.7 4.5l-1 .4v-.7l-.2-.2v-.4l-.2-.2v-.5h-.2v-.4l-.2-.3v-.3h-.2v-.5h-.2v-.5h-.2v-.3l1-.4v.4l.2.3v.2l.2.3v.2l.2.3v.3l.2.3v.4h.2v.4l.2.2v.4h.2v.4zm0 0zm0 0l-1 .4h.3l.3.2-.5-.5.6.5-.5-.5.6.5-.5-.5.2.4-.2-.3v.2l1-.5v.2-.4.4l-.4-.5.6.5-.5-.5.6.5-.5-.5h.4v.3zm0-.2v.2-.2zm1.6 4.7l-1-.2v.3-.5l-.2-.3v-.2l-.2-.3v-.3l-.2-.3v-.2l-.2-.2v-.4l-.2-.2v-.2l-.2-.2v-.4l-.2-.2 1-.5v.4h.2v.5h.2v.5l.2.2v.3l.2.3v.5l.2.2v.3l.2.2v.2l.2.2v.6zm0-.3v.3-.3zm-1.7 2.4l-1-.4.2-.2v-.2h.2v-.2l.2-.2v-.2h.2v-.2h.2l.2-.2h.2v-.2h.2v-.2l1 .2v.4h-.2v.2h-.2v.2h-.2l-.2.2-.2.2-.2.2-.2.2-.2.2v.2zm-2.2 5l-.7-.7.2-.3v-.2h.2v-.3l.2-.2v-.4l.2-.2v-.5h.2v-.4h.2v-.5h.2v-.2l.2-.3v-.2l.2-.3v-.2l.2-.2 1 .5-.2.2v.3h-.2v.4h-.2v.5l-.2.2v.3l-.2.2v.3l-.2.2v.3l-.2.2v.3l-.2.2v.3h-.2v.3h-.2v.3l-.2.2v.2zm-3.7 2.7l.2-1h.4v-.2h.2l.2-.2h.2v-.2h.2l.2-.2.2-.2.2-.2.2-.2.2-.3.2-.2v-.2h.2v-.3l1 .7h-.2v.3h-.3v.3h-.2v.3h-.4v.4h-.2v.2h-.2l-.2.2-.2.2-.2.2h-.3v.2h-.4v.2h-1zm-2.2-5h1v.3l.2.2v1.1h.2v.5l.2.2v.3l.2.2v.2h.2v.2h.2v.2h.2v1h-.8v-.2h-.2l-.2-.2-.2-.2v-.3h-.2v-.2l-.2-.2v-.3l-.2-.3v-.4h-.2v-1l-.2-.2v-1zm-1.2-2.6l.7-.6.2.2v.2h.2v.2l.2.2v.2h.2v.3l.2.2v.2h.2v.7h.2v.6l-1 .2v-1h-.2v-.4l-.2-.2v-.2h-.2v-.2h-.2v-.4h-.2v-.2h-.2zm-2-1l.4-.8h.3v.2h.4v.2h.4v.2h.4v.2h.4v.2h.2v.2l-.6.7h-.2l-.2-.2h-.4v-.2h-.4l-.2-.2h-.2l-.2-.2h-.3zm-2.5-2l.7-.6.2.2.2.2.2.2.2.2h.2v.2h.2v.2h.2l.2.2h.2v.2h.2l.2.2-.5 1v-.2h-.2v-.2h-.4v-.2l-.2-.2h-.2l-.2-.2-.2-.2-.2-.2-.2-.2h-.2v-.2h-.2v-.2zm-1.2-2.3l1-.4v.2h.2v.4h.2v.5h.2v.4h.2v.2l.2.2-.7.7h-.2v-.4h-.2v-.4h-.2v-.4l-.2-.2v-.8h-.2v-.2zm-.6-2.5h1v.8h.2v.4l.2.2v.2l.2.2v.2l-1 .5v-1h-.2v-.4h-.2v-.6h-.2v-.8zm1 0v.2zm.4-1.5v-1l.3.8v.4h-.2v.2h-.2v.8h-.2v.2h-1v-.9l.2-.2v-.4l.2-.2v-.2h.2v-.4h.2v-.2h.2l.4.7zm0-1h1l-.7.8-.2-.8zm0 0v1l-.4-.8.4-.3zm0 1h-1l.6-.8.4.7z" fill="#21231e"/> - <path d="M406.5 226l.2 1c-1.4.4-2.6 1-3.6 1.8s-1.7 2-2.3 3.2c.2-1.4 1-2.7 2-3.7s2.3-1.8 3.8-2.2zm-.6-1.6l-.5-1c-1.6 0-3.2-.4-4.7-1-1.5-.7-3-1.6-4.4-2.8 1 1.3 2.6 2.4 4.3 3.3 1.6.7 3.5 1.3 5.2 1.5z" fill="#21231e"/> - <path d="M391.4 213.8c1 .4 1.6.8 2.8 1.8.8.7 1.3 1.7 1.5 3 0 1 0 2.5-.3 3.8-.2.8 0 2.2.5 3.6.4 1.4 1 2.8 2 3.5 2.3 2.5 4 5 3.4 6.7-.5 1-.8 1.3-1.5 1.8-.4-.6-1-1.2-1.4-2.2-.3-1.3-.7-2.6-1.5-3.5-.5-.6-.7-1.3-2-2.2-1-.5-2-.3-2.6-1-1.2-1.6-3-5.5-1.3-7.2 1.7-1.7 2.3-2.7 1-5.6-.5-1-.5-1.8-.6-2.4z" fill="#edb92e"/> - <path d="M394.5 215.2l-.7.8-.2-.2-.2-.2-.2-.2h-.2v-.2h-.2v-.2h-.4v-.2h-.2l-.2-.2h-.2l-.2-.2h-.4l.3-1h.4v.2h.4v.2h.4v.2h.4v.2h.2v.2h.2l.2.2.2.2h.2v.2h.2v.2zm1.7 3.2l-1 .2v-.6h-.2v-.7h-.2v-.4l-.2-.2v-.2h-.2v-.2h-.2v-.2h-.2v-.2h-.2l.7-.8h.2v.2l.2.2v.2h.2v.2l.2.2v.2h.2v.4l.2.2v.4h.2v.8h.2v.2zm-.3 4h-1V221h.2v-2.4l1-.2v3.3l-.2.2v.5zm-1 0v-.3.3zm1.4 3.5l-1 .2v-.5l-.2-.3v-.4l-.2-.3v-.8h-.2v-1.4h1v1.9h.2v.7h.2v.7h.2v.3zm1.8 3.2l-.7.7v-.2l-.2-.2h-.2v-.4h-.2v-.2l-.2-.3v-.2h-.2v-.2l-.2-.3v-.2h-.2v-.5l-.2-.2-.2-.3v-.4h-.2l1-.4v.2l.2.2v.2l.2.3.2.2v.3l.2.2v.2h.2v.2h.2v.4h.2v.2h.2v.2h.2v.2zm3.6 7.2l-1-.4.2-.2v-1.3l-.2-.2v-.4l-.2-.2v-.2l-.2-.2-.2-.2v-.2l-.2-.2-.2-.2v-.2l-.3-.2-.2-.3v-.3l-.3-.2-.2-.2-.2-.3-.2-.2-.2-.2-.2-.2-.3-.3h-.2l.7-.8.3.2.2.2.2.3.3.4.3.2.2.2v.3l.3.3.3.2.2.3v.2l.3.2.2.3v.2l.2.2.2.2v.2l.2.2v.2l.2.3v.7l.2.2v1.2l-.2.2zm-2.4 1.8l1-.4-.8-.2.2-.2h.2v-.2h.2v-.2h.2v-.2l.2-.2v-.2l.2-.2v-.2l1 .4v.2l-.2.2v.2l-.2.2v.2h-.2v.2h-.2v.2h-.2v.2h-.2v.2h-.2l-.2.2-.8-.2zm.8.2l-.5.3-.3-.5.8.2zm-2-2.5l1-.3v.4h.2v.4h.2v.2h.2v.2l.2.2v.2h.2v.4l-.8.4v-.2h-.2v-.2l-.2-.2v-.2h-.2v-.2h-.2v-.4l-.2-.2v-.2l-.2-.2v-.3zm-1.5-3.3l.8-.7v.2h.2v.2l.2.2v.2l.2.2v.2h.2v.5h.2v.4l.2.2v.4l.2.3v.7l-.8.2v-.4h-.2v-.5l-.2-.2v-.5h-.2v-.2l-.2-.2v-.2l-.2-.2v-.2h-.2v-.2l-.2-.2zm0 0zm-2-2.2l.4-1 .3.2.2.2h.2l.2.2.2.2.2.2v.2h.2v.2h.2v.2l.2.2.2.2v.2h.2v.2l-.7.7-.2-.2v-.2h-.2v-.2h-.2v-.4h-.2v-.2h-.2v-.2h-.2v-.2h-.2v-.2h-.4v-.2h-.2zm-2.7-1.3l.8-.6h.2v.2h.2v.2h.9l.2.2h.4l.2.2h.2l.2.2-.4 1v-.2h-.4l-.2-.2h-.9v-.2h-.4l-.2-.2h-.2l-.2-.2-.2-.2-.2-.2zm-1.2-7.8l.7.7v.3h-.2v.3h-.2v2.2l.2.3v.5l.2.2v.2l.2.3v.2l.2.2v.2l.2.2v.2l.3.2v.2h.2v.3l.2.2-.7.7-.2-.3-.2-.3v-.2l-.2-.2v-.2h-.3v-.3l-.2-.3-.2-.4v-.2l-.2-.3v-.2l-.2-.2v-.6l-.2-.3v-2.1l.2-.3v-.2h.2l.2-.3.2-.3zm.7-5l1-.5v.5l.2.2v.3l.2.2v.7h.2v1.7l-.2.2v.2l-.2.2v.2h-.2v.3h-.2v.2l-.2.2-.3.3h-.2l-.2.3-.8-.6.2-.3h.2l.2-.3.2-.3.2-.2v-.3l.2-.2v-.2l.2-.3v-.7l-.2-.2v-.5l-.2-.2-.2-.4v-.2zm0-3v1l.4-.7v1.4h.2v1.1h.2l-1 .6v-.9h-.2v-.7l-.2-.2v-1l.4-.7zm-.6.5l-.3-.7h.7l-.5.6zm.4.3v-1 1zm0-1z" fill="#21231e"/> - <path d="M434 226.2c-1.2 1-1.5 1-2 1.6-.3.8 0 2 .3 3.3 1.5 5-1.4 4.4-5 2.6-1.6-1-3.6-3.2-5.2-4.4-1.5-1-2.6-1-3-1.6a118.7 118.7 0 0 1-1-4.3c0-.7-.5-2.4-1-4.4.4-.7 1.4-1 2.5-2.5 1-1.7 2.2-4.7 3.6-6 3-3.2 6-4.5 6 1.3 0 1.4.3 3 1 3.6.6.6 1 .3 2.5 1 1 .6 2 1.3 2.6 2 .7 1 .5 2 .7 2.8 0 1 .5 1.7.2 2.6-.5 1-1 1.7-2 2.4z" fill="#edb92e"/> - <path d="M432.6 228l-1-.5h.2v-.4h.4v-.2h.4v-.2h.2l.2-.2h.2v-.2h.2v-.2h.2v-.2l.8.8-.2.2h-.2v.2h-.2l-.2.2-.2.2h-.2v.2h-.4v.2h-.2v.2zm-1-.5zm1 3.4l-.8.3v-.2l-.2-.2v-.7h-.2v-2.3h.2v-.2l1 .4v.2h-.2v2.1h.2v.7zm-5.4 3l.5-.8h.3l.3.3h.3l.3.3h.2l.3.2h.2l.3.2h.7l.2.2h.7v-.2h.2v-.4l.2-.3v-1.1l-.2-.3v-.3l-.2-.4 1-.4v.4l.2.4v.8l.2.3v1.1l-.2.4v.2l-.3.2-.2.2h-.2l-.2.2-.4.2h-1.2l-.3-.2h-.6l-.3-.3-.2-.2h-.3l-.3-.2-.4-.2-.3-.2h-.3zm-5.4-4.3l.6-1 .2.2.3.2.2.3h.2v.3h.3v.3l.3.2.2.2h.2v.3h.3l.2.3.2.3.2.2.3.3h.2v.2l.2.2h.2l.2.2v.2h.3v.2h.2l.2.2.3.2-.5 1-.2-.2h-.2v-.2l-.3-.2h-.2l-.2-.2-.2-.3h-.2l-.2-.2h-.2v-.3h-.3l-.3-.3h-.2v-.3l-.3-.3h-.2l-.2-.3-.3-.3h-.2v-.2h-.3l-.2-.3-.3-.3-.3-.2-.3-.2h-.2zm.6-1zm-4-1l1-.2v-.2h.2v.2h.4l.2.2h.4v.2h.7l.2.2h.2l.2.2.3.2h.2l.2.2-.6 1v-.2h-.3v-.2h-.2l-.2-.2-.2-.2h-.3l-.2-.2h-.2v-.2h-.4l-.2-.2h-.2l-.2-.2h-.2v-.2h-.2v-.3zm.2.3v-.3.3zm-.6-4.2v-1l.5.4v.4l.2.2v1h.2v1.3h.2v1h.2v.5l-1 .2v-.7l-.2-.3v-.7l-.2-.3v-.7h-.2v-.8l-.2-.2v-.6l.4.4zm0-1h.5v.4l-.5-.4zm-.5.6l1-.2v-.2l-.5-.2v1h-.3l-.2-.5zm1-.2zm-1.8-4.5l1 .4v-.2 1.1h.2v1.1l.2.3v.8l.2.2v.9l-1 .2V222l-.2-.2v-.8l-.2-.3v-.7h-.2v-.8l-.2-.2v-.3zm0 .3v-.3.3zm2.4-2.8l1 .5-.2.2-.2.2-.2.3-.2.2-.2.2h-.2v.2h-.2l-.2.2h-.2v.2h-.2v.2h-.2v.2h-.2l-1-.3h.2v-.4h.2v-.2h.4v-.2h.2l.2-.2.2-.2.2-.2h.2v-.2l.2-.2.2-.2v-.2h.2v-.2zm3.7-6.2l.8.7h-.2v.3h-.2v.3l-.3.3v.2l-.2.2v.2h-.2v.3l-.2.3v.4l-.3.2v.2l-.2.2v.2l-.2.2v.2l-.2.2v.3l-.2.3v.2l-.2.2v.2h-.2v.2l-.2.2-.2.2-1-.4.2-.2.2-.3v-.2h.2v-.3l.2-.2v-.2l.2-.2v-.2l.2-.2v-.2l.2-.2v-.3l.2-.2v-.2h.2l.2-.3v-.2l.2-.2v-.3l.2-.2v-.2l.3-.2v-.2l.2-.2.2-.3v-.2l.2-.2h.2v-.3zm6.8 1.8h-1v-1.4l-.2-.4v-.6l-.2-.2v-.4l-.2-.2h-.3v-.2h-1.2l-.3.2-.3.2h-.2l-.3.3-.2.3-.3.2-.2.2-.3.2-.2.2-.3.2-.2.3-.8-.7.3-.3.3-.3.3-.2.2-.3.3-.3.4-.2.3-.2.2-.2h.2l.3-.3h.2l.3-.2h.3l.2-.2h1.2l.3.2.3.3.2.2.2.2.2.3v.6l.2.5v.4l.2.3v1.5zm1 3.3l-.8.8-.2-.2v-.2h-.2v-.2l-.2-.2v-.6l-.2-.2v-.7l-.2-.2V212h1v2h.2v.3l.2.2v.2h.2v.2l.2.2zm0 0zm2.2 1l-.4 1-.3-.2h-.2l-.3-.2h-.4v-.2h-.9v-.2h-.4v-.2h-.2v-.2l.6-.7v.2h.4v.2h.8l.2.2h.4l.2.2h.2l.2.2zm2.8 2.2l-.8.6h-.2v-.2l-.2-.2h-.2v-.4h-.2l-.2-.2h-.2v-.2h-.2v-.2h-.4v-.2h-.2l-.2-.2.3-1 .3.2h.2l.2.2.2.2h.2v.2h.2l.2.2h.2v.2h.2v.2h.2v.2h.2v.2h.2v.2h.2v.2zm-.8.6l.4.5-.3-.5zm1.5 2.3l-1 .2V220l-.2-.2v-.8h-.2v-.4l.7-.6v.2l.2.2v.2l.2.2v2.2h.2v.2zm0 3l-.8-.4v-2.1l-.2-.2v-.4h1v1l.2.2v1.8zm-1.8 2.6l-.7-.8h.2v-.2l.2-.2v-.2h.2v-.2h.2v-.2h.2v-.2l.2-.2v-.2l.2-.2v-.2h.2v-.2l1 .4-.2.2v.2l-.2.2v.2h-.2v.4h-.2v.2h-.2v.2l-.2.2-.2.2v.2h-.2l-.2.2-.2.2zm-.7-.8z" fill="#21231e"/> - <path d="M418 222.6l-.2-1c3.2-.8 5.7-2.6 7.8-5.3-1.2 3-4.3 5.3-7.7 6.3zm.2 1.5c0 .4.2.7.3 1 3.4 0 6.4 1 9.2 3-2-2.3-5.8-3.8-9.5-4z" fill="#21231e"/> - <path d="M432.7 233.3c-1-.3-2.3-.7-3.4-1.5-1.6-1.3-1.2-3.8.3-6.4.4-.8.5-2.2.2-3.5-.2-1.5-.7-2.8-1.4-3.5-2.4-2.3-3.8-4.8-2.6-6.6.8-1.3 2-2 2.8-2.7.3.6.4 1.5.4 2.5 0 1.4.3 3 1 3.6.6.6 1 .3 2.5 1 1 .7 2 1.3 2.6 2 .7 1 .6 2 .7 2.8 0 1 .5 1.7.2 2.6-.5 1-1 1.7-2 2.4-1.2 1-1.5 1-2 1.6-.3.8 0 2 .3 3.3.3 1 .4 1.7.4 2.3z" fill="#edb92e"/> - <path d="M429 232.2l.6-.8h.2v.2h.2l.2.2h.2l.2.2h.2l.2.2h.4v.2h.4l.2.2h.4l.2.2h.2l-.3 1h-.4v-.2h-.4l-.2-.2h-.3v-.2h-.4l-.2-.2h-.2l-.2-.2h-.2v-.2h-.2l-.3-.2h-.2v-.2zm0-7l1 .5v.2h-.2l-.2.4v.2l-.2.2v.2l-.2.3v.4l-.2.2v.5l-.2.2v1.5l.2.3v.2h.2v.3l.2.2.2.2-.6.8-.2-.2-.3-.3v-.2h-.2v-.3l-.2-.2v-.4l-.2-.3V228h.2v-.7l.2-.3.2-.3v-.3l.2-.2v-.3l.3-.3v-.5zm.3-3.3l1-.2v.8h.2v1.9l-.2.2v.7h-.2v.2l-1-.4h.2v-.6h.2V222zm-1.3-3.2l.7-.7v.2h.2v.4h.2v.2l.2.2v.2l.2.2v.2l.2.2v.5h.2v.7l.2.2v.8h-1v-1.2l-.2-.2v-.4h-.2v-.4h-.2v-.2l-.2-.2v-.2h-.2v-.2l-.2-.2zm0 0zm-2.7-7.2l1 .6h-.2v.7l-.2.2v.7l.2.2v.4l.2.2v.2l.2.2v.2l.2.2v.2l.3.2v.2l.2.2.2.2v.2l.3.3.2.3v.2l.3.2.2.2h.2l-.7.8-.2-.2-.2-.2-.3-.2-.2-.2v-.3l-.2-.2-.2-.2-.2-.2-.2-.2v-.2l-.3-.2-.2-.3h-.2v-.3l-.2-.2v-.3l-.2-.2v-.2l-.2-.3v-.4l-.2-.2v-1l.2-.3v-.2l.2-.2v-.2zm3.8-2.5l-.8.4.7.3h-.2l-.2.2h-.2l-.2.2h-.2v.2h-.2v.2h-.2l-.2.2-.2.2-.2.2-.2.2-.2.2v.2h-.2v.2l-.2.2-1-.6h.2v-.2l.2-.2.2-.2v-.2h.2v-.2h.2v-.2h.2v-.2h.2l.2-.2.2-.2h.2v-.2h.2l.2-.2.2-.2h.2v-.2h1.1zm-.6 0l.5-.5v.6h-.6zm1 2.8h-1v-2.1h-.2v-.4l1-.3v1h.2v2zm1 3.3l-.7.8-.2-.2v-.2h-.2v-.2l-.2-.2v-.7l-.2-.2v-.7l-.2-.2V212h1v1.7h.2v.6l.2.2v.2h.2v.2l.2.2zm2.3 1l-.4 1-.3-.2h-.2l-.3-.2h-.4v-.2h-.9v-.2h-.4v-.2h-.2v-.2l.6-.7v.2h.4v.2h.8l.2.2h.4l.2.2h.2l.2.2zm2.8 2.2l-.8.6h-.2v-.2l-.2-.2h-.2v-.4h-.2l-.2-.2h-.2v-.2h-.2v-.2h-.4v-.2h-.2l-.2-.2.3-1 .3.2h.2l.2.2.2.2h.2v.2h.2l.2.2h.2v.2h.2v.2h.2v.2h.2v.2h.2v.2h.2v.2zm-.8.6l.4.5-.3-.5zm1.5 2.3l-1 .2V220h-.2v-.8h-.2v-.4l.7-.6v.2l.2.2v.2l.2.2v2h.2v.2zm0 3l-.8-.4v-2.2l-.2-.2v-.4h1v1l.2.2v1.8zm-1.8 2.6l-.7-.8h.2v-.2l.2-.2v-.2h.2v-.2h.2v-.2h.2v-.2l.2-.2v-.2h.2v-.4h.2v-.2l1 .4-.2.2v.2l-.2.2v.2l-.2.2v.2h-.2v.2h-.2v.2l-.2.2-.2.2v.2h-.2l-.2.2-.2.2zm-.7-.8zm-1 2.2l-1-.5v-.2h.2v-.2h.2v-.2h.4v-.2h.2l.2-.2h.2v-.2h.2v-.2h.2v-.2l.8.8-.2.2h-.2v.2h-.2l-.2.2-.2.2h-.2l-.2.2h-.2v.2h-.2v.2zm-1-.5zm1 3.4l-1 .3v-.7h-.2v-3h.2l1 .4h-.2v2.6h.2v.2zm-1 .3zm.8 2.5l.3-1-.6.5v-1h-.2v-.9l-.2-.2 1-.5v.9h.2v1h.2v.7l-.7.5zm.7-.5v.7l-.7-.2.7-.5zm-.5 0l-.2.5.2-.5zm.5 0v.7l-.7-.2.7-.5z" fill="#21231e"/> - <path d="M410.6 216.4c4 0 8 3.4 8.4 7.7.6 4.4-2.2 7.7-6 7.8-4 0-7.5-3-8.3-7.3-.7-4 1.8-8 6-8z" fill="#edb92e"/> - <path d="M419.5 224l-1 .2v-.8l-.2-.4v-.3l-.2-.4v-.3l-.2-.4-.2-.3-.2-.3-.2-.4-.2-.3-.2-.3-.3-.2-.2-.3-.3-.3-.2-.2-.3-.3-.3-.2-.3-.2-.4-.2h-.3l-.3-.3h-.4l-.3-.3h-.3l-.4-.2h-.3l-.3-.2h-1.5v-1h1.9l.4.2h.3l.4.3h.4l.4.3.4.2.3.2.5.2.3.3.3.2.4.2.3.3.3.3.3.3.3.4.2.3.2.4.3.4.2.4.2.4.2.4v.4l.2.4v.4l.2.4v.8zm-6.6 8.3v-1h.9l.2-.2h.6l.3-.2h.4l.2-.2.3-.2h.2l.2-.3h.2l.2-.3.3-.3.3-.2v-.2l.3-.3.2-.2v-.3l.3-.3.2-.4v-.3l.2-.3v-.7l.2-.3V224l1-.2v2.5l-.2.4v.8l-.3.4v.3l-.2.3v.4l-.3.3-.2.3-.3.3h-.2l-.2.4-.3.2-.3.3h-.3l-.3.3-.3.2h-.2l-.3.3h-.4l-.2.2h-.4l-.3.2H413zm-8.7-7.7l1-.2v.7l.2.5v.3l.3.4v.3l.3.3.2.4.2.3.2.3.2.3.2.3.3.3.2.3h.3l.2.3.3.3.2.2.3.2.3.2h.4l.3.3.3.2h.3l.3.2h.7l.3.2h1.2v1h-2l-.3-.2h-.4l-.4-.3h-.4l-.4-.3-.3-.2-.4-.2-.3-.2-.4-.2-.4-.2-.3-.3-.2-.2-.2-.2-.3-.3-.2-.3-.3-.3-.2-.4-.2-.3-.2-.3-.2-.4-.2-.3-.2-.4v-.4l-.2-.4-.2-.4v-.8zm6.2-8.7v1h-1l-.3.2h-.4l-.3.2h-.3l-.3.3h-.2l-.2.3-.3.2-.2.2v.2l-.3.2-.2.2-.2.3-.2.3v.2l-.2.3v.4l-.3.3v.6l-.2.3v.7l-.2.3v.7l.2.4v.8l-1 .2v-3.3l.2-.3v-.3l.2-.4v-.3l.3-.4v-.3l.3-.3.2-.3.2-.3.2-.3h.2l.2-.4.3-.2.3-.2.3-.2.3-.2.3-.2.3-.2h.3l.4-.2h.4l.3-.2h.9z" fill="#21231e"/> - <path d="M411 218.6c2.8-.2 5.7 2.4 6 5.5.5 3.3-1.5 5.8-4.4 5.8-2.8 0-5.5-2.3-6-5.3s1.3-5.8 4.3-6z" fill="#edb92e"/> - <path d="M417.6 224l-1 .2v-.6l-.2-.3v-.2l-.2-.3v-.4l-.2-.2v-.2l-.2-.3-.2-.3v-.2l-.3-.2-.2-.2-.2-.3-.2-.2-.2-.2h-.2l-.2-.3h-.2l-.3-.3h-.2l-.2-.2-.4-.2h-.5v-.2h-1.1v-1h1.1l.4.2h.3l.2.2h.2l.3.2h.3l.2.3h.3l.2.2.3.2h.2l.3.3.2.3.2.2.2.2v.2l.3.3h.2v.4l.3.3v.3l.3.2.2.3v.3l.2.3v.8l.2.3zm-5 6.3v-1h1.1l.2-.2h.4l.2-.2h.2v-.2l.3-.2h.3v-.2l.3-.2v-.2h.2l.2-.3v-.2l.2-.2.2-.3v-.7l.2-.2v-1.6h1v2.2l-.2.3v.2l-.2.3v.2l-.3.3-.2.2v.3l-.3.2-.2.2-.2.2-.3.2-.2.2-.2.2h-.2l-.2.2h-.2l-.3.2h-.2l-.2.2h-1.5zm0-1zm-6.5-4.8h1l.2.4.2.4v.2l.2.3.2.3v.3l.3.2.2.2.2.2v.2l.3.2.2.2.3.3.2.2.2.2h.2v.3h.3l.2.2h.7l.2.2h1.1v1H411l-.4-.2h-.2l-.3-.2h-.2l-.2-.3h-.3l-.2-.3-.4-.3-.2-.3-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.3v-.2l-.3-.2-.2-.2-.2-.3v-.3l-.2-.3v-.3l-.2-.2v-.7zm1 0zm4-6.4v1h-.6l-.2.2h-.5l-.2.2h-.2l-.2.2-.2.2h-.2l-.2.3v.2l-.3.2-.2.3v.2h-.2v.3l-.2.2v.2l-.2.2v.7l-.2.2v1.7h-1V222h.2v-.4l.2-.3v-.2l.2-.2v-.2l.3-.3v-.2h.2l.2-.3.2-.2.2-.2.2-.2h.2l.2-.2h.3l.2-.3h.2l.2-.2h.6l.3-.2h.6z" fill="#21231e"/> - <path d="M411.2 220.7c2 0 3.6 1.5 4 3.5.2 2-1 3.6-3 3.6-1.7 0-3.4-1.4-3.7-3.4-.3-2 1-3.6 2.7-3.7z" fill="#0c4076"/> - <path d="M415.6 224l-1 .3v-.4l-.2-.2v-.4h-.2v-.3l-.2-.2-.2-.3-.2-.2-.2-.2h-.2l-.2-.2-.2-.2h-.2l-.2-.2h-.6v-.2h-.6v-1h1l.2.2h.2l.3.2h.3v.2h.3l.2.3v.2h.3l.2.2.2.2.2.3.3.2v.4h.2v.3l.2.3v.4l.2.2zm-3.3 4.3v-1h.7l.2-.2h.4v-.2h.2v-.2h.2v-.2h.2v-.2l.2-.2v-.5l.2-.2v-1.1l1-.3v2h-.2v.3l-.2.3-.2.3-.2.2h-.2v.2l-.2.2h-.2v.2h-.3l-.2.2h-.4v.2h-1zm-4.3-3.8l1-.2v.5l.2.3v.4h.2v.2l.2.2.2.2.2.3.2.2.2.2h.3v.2h.4l.3.2h.8v1h-1.3l-.2-.2h-.2l-.3-.2h-.2v-.2h-.2v-.2l-.3-.2-.3-.2v-.2h-.2v-.3h-.3v-.3l-.2-.2v-.2h-.2v-.5l-.2-.2v-.5zm2.7-3.8h1l-.5.5h-.7l-.2.2h-.2v.2h-.2l-.2.2-.2.2-.2.2v.2h-.2v.5h-.2v1.3l-1 .3v-1.8h.2v-.5h.2v-.3h.2v-.3h.3v-.3h.3v-.2h.3v-.2h.3v-.2h1l.2-.2h.4l-.5.5zm1 0v.5h-.5l.5-.5zm0 0h-1l.5-.5.5.5zm-1 0v-.5h.5l-.5.5z" fill="#21231e"/> - </g> - <path d="M482 183c4 0 7 3 7 7s-3 6.7-7 6.7c-3.6 0-6.7-3-6.7-6.8 0-4 3-7 6.8-7z" fill="#fff"/> - <path d="M489.5 189.8h-1c0-2.3-1.4-4.6-3.5-5.6a6.3 6.3 0 0 0-3-.7v-1c2.6 0 5 1.3 6.4 3.5a7.4 7.4 0 0 1 1 3.8zm-7.4 7.4v-1c2.5 0 4.7-1.4 5.8-3.4a6.4 6.4 0 0 0 .7-3h1c0 2.6-1.5 5.2-3.7 6.5a7.3 7.3 0 0 1-3.7 1zM475 190h1c0 2.2 1.4 4.5 3.5 5.5 1 .5 2 .7 2.8.7v1c-2.3 0-4.8-1.3-6-3.4a7.4 7.4 0 0 1-1.2-4zm7.3-7.5v1c-2.2 0-4.5 1.4-5.5 3.5a6.4 6.4 0 0 0-.7 3h-1c0-2.7 1.4-5 3.5-6.4a7.3 7.3 0 0 1 3.8-1z" fill="#21231e"/> - <path d="M482 171c4 0 7 3 7 7 0 3.7-3 6.8-7 6.8-3.6 0-6.7-3-6.7-7 0-3.7 3-6.7 6.8-6.7z" fill="#fff"/> - <path d="M489.5 178h-1c0-2.4-1.4-4.7-3.6-5.8a6.3 6.3 0 0 0-3-.6v-1c2.6 0 5 1.3 6.4 3.4a7.4 7.4 0 0 1 1 4zm-7.4 7.3v-1c2.5 0 4.7-1.4 5.8-3.4a6.4 6.4 0 0 0 .7-3h1c0 2.5-1.5 5-3.7 6.4a7.3 7.3 0 0 1-3.7 1zM475 178h1c0 2.3 1.4 4.6 3.5 5.6 1 .5 2 .7 2.8.7v1c-2.3 0-4.8-1.3-6-3.4a7.4 7.4 0 0 1-1.2-4zm7.3-7.4v1c-2.2 0-4.5 1.4-5.5 3.5a6.4 6.4 0 0 0-.7 3h-1c0-2.6 1.4-5 3.5-6.3a7.3 7.3 0 0 1 3.8-1z" fill="#21231e"/> - <path d="M482 159.6c4 0 7 3 7 7 0 3.7-3 6.8-7 6.8-3.6 0-6.7-3-6.7-7 0-3.7 3-6.8 6.8-6.8z" fill="#fff"/> - <path d="M489.5 166.5h-1c0-2.4-1.4-4.7-3.6-5.7a6.3 6.3 0 0 0-3-.7v-1c2.6 0 5 1.5 6.4 3.6a7.4 7.4 0 0 1 1 4zM482 174v-1c2.5 0 4.7-1.5 5.8-3.6.4-1 .7-2 .7-3h1c0 2.6-1.4 5-3.5 6.4a7.3 7.3 0 0 1-4 1zm-7.2-7.5h1c0 2.4 1.4 4.7 3.6 5.7a6.3 6.3 0 0 0 2.7.7v1c-2.4 0-4.8-1.5-6-3.6a7.4 7.4 0 0 1-1.2-4zm7.3-7.4v1c-2.2 0-4.5 1.5-5.5 3.6a6.4 6.4 0 0 0-.7 3h-1c0-2.6 1.4-5 3.5-6.4a7.3 7.3 0 0 1 3.8-1z" fill="#21231e"/> - <path d="M482 127c4 0 7 3.2 7 7s-3 6.8-7 6.8c-3.6 0-6.7-3-6.7-6.8s3-7 6.8-7z" fill="#fff"/> - <path d="M489.5 134h-1c0-2.4-1.4-4.7-3.6-5.8a6.3 6.3 0 0 0-3-.6v-1c2.6 0 5 1.3 6.4 3.4a7.4 7.4 0 0 1 1 4zm-7.4 7.3v-1c2.5 0 4.7-1.4 5.8-3.4a6.4 6.4 0 0 0 .7-3h1c0 2.5-1.5 5-3.7 6.3a7.3 7.3 0 0 1-3.7 1zM475 134h1c0 2.3 1.4 4.6 3.5 5.6a6.3 6.3 0 0 0 2.8.7v1c-2.3 0-4.7-1.3-6-3.4a7.4 7.4 0 0 1-1.2-4zm7.3-7.4v1c-2.2 0-4.5 1.4-5.5 3.5a6.4 6.4 0 0 0-.7 3h-1c0-2.6 1.4-5 3.5-6.3a7.3 7.3 0 0 1 3.8-1z" fill="#21231e"/> - <path d="M482 137.2c4 0 7 3 7 6.8s-3 7-7 7c-3.6 0-6.7-3.2-6.7-7s3-6.8 6.8-6.8z" fill="#fff"/> - <path d="M489.5 144h-1c0-2.3-1.4-4.6-3.5-5.7a6.3 6.3 0 0 0-3-.6v-1c2.7 0 5.2 1.4 6.5 3.6a7.4 7.4 0 0 1 1 3.7zm-7.4 7.4v-1c2.5 0 4.7-1.4 5.8-3.4a6.4 6.4 0 0 0 .7-3h1c0 2.6-1.5 5-3.7 6.4a7.3 7.3 0 0 1-3.7 1zM475 144h1c0 2.4 1.4 4.7 3.5 5.7a6.3 6.3 0 0 0 2.8.7v1c-2.3 0-4.8-1.3-6-3.5a7.4 7.4 0 0 1-1.2-4zm7.3-7.4v1c-2.2 0-4.5 1.5-5.5 3.6-.5 1-.7 2-.7 2.8h-1c0-2.5 1.4-5 3.5-6.2a7.3 7.3 0 0 1 3.8-1.2z" fill="#21231e"/> - <path d="M482 148.2c4 0 7 3 7 6.8s-3 7-7 7c-3.6 0-6.7-3.2-6.7-7s3-6.8 6.8-6.8z" fill="#fff"/> - <path d="M489.5 155h-1c0-2.3-1.4-4.6-3.6-5.7a6.3 6.3 0 0 0-3-.6v-1c2.6 0 5 1.3 6.4 3.4a7.4 7.4 0 0 1 1 4zm-7.4 7.4v-1c2.5 0 4.7-1.4 5.8-3.4a6.4 6.4 0 0 0 .7-3h1c0 2.6-1.5 5-3.7 6.4a7.3 7.3 0 0 1-3.7 1zM475 155h1c0 2.4 1.4 4.7 3.5 5.7a6.3 6.3 0 0 0 2.8.7v1c-2.3 0-4.7-1.3-6-3.4a7.4 7.4 0 0 1-1.2-4zm7.3-7.4v1c-2.2 0-4.5 1.5-5.5 3.5a6.4 6.4 0 0 0-.7 3h-1c0-2.5 1.4-5 3.5-6.3a7.3 7.3 0 0 1 3.8-1z" fill="#21231e"/> - <path d="M487 195.5c1 1.6.7 2 1.4 2.4.8.6 2 .6 3.4.4 5.3-1 4.5 2.3 2.2 6-1 1.7-3.8 3.5-5.2 5-1.4 1.5-1.6 2.8-2 3.2h-9.2c-.5-.4-.7-1.7-2-3.2-1.5-1.5-4.2-3.3-5.3-5-2.4-3.7-3-7 2.2-6 1.3.2 2.6.2 3.4-.5.6-.6.3-1 1.3-2.5.6-1 1.4-1.8 2.2-2.3 1-.5 1.8-.2 2.6-.2 1 0 2-.3 2.8.2.8.5 1.6 1.3 2.2 2.3z" fill="#edb92e"/> - <path d="M488.7 197.5l-.7.8-.2-.2h-.2v-.4h-.2v-.4h-.2v-.4l-.2-.2v-.2l-.2-.2-.2-.3v-.2l.8-.6v.2h.2v.3l.2.2v.2h.2v.4h.2v.4h.2v.4h.2zm-.7.8l-.3-.3.3.3zm3.8-.4v1h-2.4l-.2-.2h-.2l-.2-.2h-.3l-.2-.2.7-1v.2h.2v.2h.8l.2.2h1.9zm2.6 6.6l-.8-.6.2-.3.2-.3.2-.4.2-.3v-.3l.3-.3v-.2l.2-.2v-.6l.2-.2v-1.3l-.2-.2h-.2v-.2h-.5l-.2-.2h-2l-.2-1h2.8l.3.2h.2l.2.2.2.2.2.2.2.2v.3l.2.3v1.7l-.2.3v.3l-.3.2v.4l-.3.3v.2l-.3.4v.3l-.3.2-.3.4zm-5.3 5.2l-.6-.7.3-.2v-.2h.3l.2-.3v-.2h.3l.2-.2h.2v-.3h.2l.2-.3.2-.2h.2l.2-.3h.2v-.3l.3-.2h.2l.2-.3v-.2l.2-.2.2-.2h.2v-.3h.3v-.4h.3v-.3h.2v-.3l1 .6-.2.2-.2.3v.3l-.2.2h-.2l-.2.3v.2l-.3.2-.3.3v.2h-.3l-.2.3-.2.2h-.2l-.2.3-.2.2-.3.3-.3.3h-.2v.3l-.3.2h-.2v.3l-.3.2h-.2v.3h-.2l-.2.3zm-2.3 3.3v-1l-.3.2v-.2h.2v-.2l.2-.2v-.2l.2-.2v-.2l.2-.2v-.2l.2-.2v-.2h.2v-.2l.2-.2.2-.3.3-.3.8.6v.2l-.2.2-.2.2-.2.3v.2h-.2v.2l-.2.2v.2l-.2.2v.2h-.2v.4h-.2v.2l-.2.2v.2h-.5zm.3 0h-.2.2zm-5 .2v-1h4.7v1h-4.5zm0-1h.2zm0 0v1-1zm0 0zm-4.7.8l.6-.8h-.4 4.2l.2 1h-4.7l-.3-.2zm.3 0h-.2.2zm-2.4-3.2l.7-.7v.2l.2.2.2.3.2.3.2.2v.2h.2v.4h.2v.4h.2v.4h.2v.4h.2v.2l-.5.8-.2-.2v-.2l-.2-.2v-.2h-.2v-.4h-.2v-.4l-.2-.2v-.2h-.2v-.2l-.2-.3-.2-.2-.2-.3-.2-.2zm-5.4-5.2l1-.6v.2l.2.3h.2v.3l.2.2h.2v.3h.3v.3l.2.2h.2l.2.3.2.2v.2l.3.2h.3l.2.3h.2l.2.2v.2h.2l.2.3h.2l.2.3h.2v.3l.3.2h.2v.3h.3v.3l-.6.8-.2-.2-.3-.3-.3-.2-.3-.2v-.2l-.2-.2h-.2l-.2-.3h-.2l-.2-.2h-.2v-.3l-.3-.2h-.2l-.2-.3v-.2h-.3l-.2-.3v-.2h-.3l-.2-.3v-.2l-.3-.2h-.2v-.3l-.3-.2-.2-.2-.2-.2zm2.7-6.7v1l-.6-.2h-2.1l-.2.2h-.2v.2h-.2v.4l-.2.2v1.1l.2.2v.3l.2.3v.2l.2.3.2.4v.3l.3.3.3.4.2.3.2.3-1 .6v-.4l-.3-.3-.2-.4-.2-.4v-.3l-.3-.4v-.4l-.3-.3v-.4l-.2-.3v-.6l-.2-.3v-1l.2-.2v-.2l.3-.2.2-.2.2-.2.4-.2h.3l.3-.2h2.5zm3-.5l.8.8-.2.2h-.2l-.2.2h-.4l-.2.2h-3v-1h2.5l.2-.2h.4v-.2h.2zm1.4-2.3l.7.6v.3l-.2.2v.2h-.2v.4h-.2v.8h-.2v.2h-.2v.2l-.2.2-.8-.7h.2v-.4h.2v-.4h.2v-.2l.2-.2v-.4h.2v-.3h.2v-.3zm0 0l.2-.4-.3.4zm2.3-2.4l.5.8-.2.2h-.2v.2h-.2v.2h-.2l-.2.2-.2.2-.2.2v.2h-.2v.2l-.2.2-.2.2v.2l-1-.6.2-.2.2-.2v-.2h.2v-.2l.2-.2h.2v-.2l.2-.2.2-.2h.2v-.2l.2-.2h.2v-.2h.2l.2-.2zm2.8-.3v1h-2.4l-.5-.7h.2v-.2h.4l.2-.2h2zm3 .3l-.5.8h-.4v-.2H482v-1h2.5l.2.2h.2l.2.2zm0 0l.3.2-.3-.2zm2 3.2v-1l-.4.8-.2-.2v-.2h-.2v-.2l-.2-.2-.2-.2v-.2h-.2v-.2h-.2v-.2h-.2v-.2h-.4v-.2h-.2v-.2l.4-.8h.2l.2.2.2.2h.2v.2h.2v.2h.2v.2h.2v.2h.2v.2l.2.2.2.2v.2h.2v.2h.2v.2l-.4.8zm.4-.8l.5.8h-1l.4-.8zm-.4-.2v1l-.4-.2.4-.8zm-.4.8l-.5-.8h1l-.4.8z" fill="#21231e"/> - <path d="M481.4 212.8l-1-.2c-.4-3.7-2-7-4.3-9.6 2.8 1.8 4.8 5.7 5.4 9.8z" fill="#21231e"/> - <path d="M494.2 198.3c-.5 1-1 2.4-2 3.5-1.5 1.6-4 .5-6.5-1.6-.8-.6-2.2-1-3.6-1-1.3 0-2.6.4-3.4 1-2.5 2-5 3.2-6.6 1.6-1-1-1.5-2.4-2-3.5h2.5c1.3.3 2.6.3 3.4-.4.6-.6.3-1 1.3-2.5.6-1 1.4-1.8 2.2-2.3 1-.5 1.7-.2 2.6-.2 1 0 2-.3 2.8.2.8.5 1.5 1.3 2.2 2.3 1 1.6.7 2 1.3 2.4 1 .6 2.2.6 3.5.4 1-.2 1.8-.2 2.4 0z" fill="#edb92e"/> - <path d="M492.6 202l-.7-.6v-.2l.2-.2.2-.2v-.2h.2v-.2l.2-.2v-.2l.2-.2v-.2l.2-.2v-.2l.2-.2v-.2l.2-.3v-.4l1 .5v.4l-.2.2v.2l-.2.2v.4h-.2v.2l-.2.2v.3h-.2v.2h-.2v.2h-.2v.3l-.2.2-.2.2h-.2zm-7.3-1.4l.7-.7h.2l.2.2.3.2.2.2.3.3h.3l.2.2h.2l.2.2h.2l.2.2h.2l.2.2h.4l.2.2h1.6l.2-.2.2-.2h.2v-.2l.8.7-.2.3h-.2v.3h-.3l-.3.2h-.3l-.2.2h-1.9l-.3-.2h-.3l-.2-.2h-.3l-.2-.2h-.3l-.2-.2-.2-.2h-.3l-.2-.3h-.3l-.2-.3-.2-.2-.2-.2-.2-.2-.3-.2zm.7-.7l.5.3-.5-.4zm-4-.2v-1h2v.2h.7v.2h.4l.2.2h.2l.2.2h.2v.2h.2l-.7.8h-.2v-.2h-.2v-.2h-1v-.2h-1v-.2h-1zm-3 .8l-.7-.7v-.2h.2l.2-.2h.2v-.2h.2l.2-.2h.5v-.2h1.2v-.2h1v1h-1.5v.2h-.5l-.2.2h-.4v.2h-.2l-.2.2zm-7.3 1.5l.7-.6.3.2.2.2h.2v.2h1.7v-.2h.5l.2-.2h.2v-.2h.3l.2-.2.2-.2h.3l.2-.3h.2l.2-.3.3-.2v-.2h.3l.7.6-.3.2-.2.2-.3.2-.2.2-.2.2h-.3l-.2.3h-.3l-.2.2h-.2l-.3.2h-.2l-.2.2h-.2l-.2.2h-.3l-.3.2H473l-.4-.2h-.2l-.2-.2-.2-.2-.3-.3zm-1.7-4l.2 1 .3-.7v.2l.2.2v.3l.2.2v.4l.2.2v.2h.2v.4h.2v.4h.2v.2h.2v.2h.2v.2l.2.2-.7.7h-.2v-.2h-.2v-.2h-.2v-.5h-.2v-.2h-.2v-.3l-.2-.2v-.2h-.2v-.4h-.2v-.4l-.2-.2v-.4h-.2l.4-.8zm-.4.7l-.2-.6.6-.2-.4.7zm3-.6l-.2 1-.2-.2H470l-.2-1h2.4zm3-.5l.7.8-.2.2h-.2l-.2.2h-.4l-.2.2h-2.8v-1h2.3l.2-.2h.4v-.2h.2zm.7.8l-.5.4.5-.4zm.6-3l.7.5v.3l-.2.2v.2h-.2v.4h-.2v.8h-.2v.2h-.2v.2l-.2.2-.8-.7h.2v-.4h.2v-.4h.2v-.2l.2-.2v-.4h.2v-.3h.2v-.3zm2.3-2.5l.5.8-.2.2h-.2v.2h-.2v.2h-.2l-.2.2-.2.2-.2.2v.2h-.2v.2l-.2.2-.2.2v.2l-1-.6.2-.2.2-.2v-.2h.2v-.2l.2-.2h.2v-.2l.2-.2.2-.2h.2v-.2l.2-.2h.2v-.2h.2l.2-.2zm2.8-.3v1h-2.3l-.5-.7h.2v-.2h.4l.2-.2h2zm3 .3l-.5.8h-.4v-.2H482v-1h2.5l.2.2h.2l.2.2zm0 0l.3.2-.3-.2zm2.4 2.4l-.8.6-.2-.2v-.2h-.2v-.2l-.2-.2-.2-.2-.2-.2v-.2h-.2v-.2h-.2v-.2h-.4v-.2h-.2v-.2l.4-.8h.2l.2.2.2.2h.2v.2h.2v.2h.2v.2h.2v.2h.2v.2l.2.2.2.2v.2h.2v.2h.2v.2zm1.3 2.3l-.7.8-.2-.2h-.2v-.4h-.2v-.4h-.2v-.4l-.2-.2v-.2l-.2-.2-.2-.3v-.2l.8-.6v.2h.2v.3l.2.2v.2h.2v.4h.2v.4h.2v.4h.2zm-.7.8l-.3-.3.3.3zm3.8-.4v1h-2.4l-.2-.2h-.2l-.2-.2h-.4v-.2h-.2l.7-1v.2h.2v.2h.8l.2.2h1.9zm3 .5l-1-.4.3.8H492l-.2-1h2.4l.5.7zm-.5-.7h.6l-.3.7-.4-.7zm0 .5l.4.2-.5-.2zm0-.5h.6l-.3.7-.4-.7z" fill="#21231e"/> - <path d="M482 211.7c4.4 0 8 3.4 8 7.7s-3.6 7.8-8 7.8-7.6-3.5-7.6-7.8 3.5-7.8 7.7-7.8z" fill="#edb92e"/> - <path d="M483 212.8l.8-.2c.5-3.7 2-7 4.3-9.6-2.5 1.8-4.5 5.7-5 9.8z" fill="#21231e"/> - <use xlink:href="#b" transform="matrix(-1 0 0 1 964.286 0)" height="900" width="1350"/> - <path d="M577 293.6c2 .3 3 1.5 3 2.8 0 1.3-1 2.6-3 3a8.7 8.7 0 0 1-1.6.2c-60.8 5.2-125.7 5.2-186.5 0a8.7 8.7 0 0 1-1.6-.3c-2-.3-3-1.6-3-3 0-1.2 1-2.4 3-2.7a8.6 8.6 0 0 1 1.5-.3c60.7-5.2 125.6-5.2 186.4 0 .6 0 1 .2 1.5.3z" fill="#edb92e" stroke="#21231e"/> - <path d="M412 298.4h-.2v-.2h-.2v-1h.4v-.2.2-.2h2.3l.7-.2h3l.7-.2h3l.7-.2h3l.8-.2h3.3l.7-.2h3.8l.7-.2h.8v1.2h-2.9l-.7.2H428l-.7.2h-2.7l-.8.2H421l.7.2h3.7l.7.2h2.9l.7.2h3.7l.7.2h1.5v1.2h-3.7l-.7-.2h-3.8l-.7-.2h-2.9l-.7-.2H420l-.6-.2h-2.9l-.7-.2H413l-1-.2v-.2.2zm.2-.7zm46.6-2.6v1.3H453l-.7.2h-6.6l-.7.2h-5l-1 .2h-3.5v-1.2h3.5l.8-.2h5.2l.7-.2h5.9l.7-.2h6.8zm23.3 0v1h-13.7l-.7.2h-8.8v-1h1.4l.8-.2H482zm23.5 0v1.3h-11.1l-.7-.2H482v-1h23.6zm23.3 1v1h-5.2l-.8-.2h-5.2l-.7-.2h-6.5l-.8-.2h-4.3V295h.7l.7.2h7.5l.8.2h5l.8.2h5.1l.6.2h2.3zm23.4 1v.2h.4v1h-.2l-.2.2h-3l-.7.2h-2.2l-.7.2h-3.8l-.8.2h-2.8l-.7.2H534l-.8.2h-3.6l-.8.2v-1.2h2.2l.7-.2h3.7l.8-.2h3.7l.7-.2h1.8-1.4l-.8-.2h-2.7l-.7-.2H533l-.6-.2h-3.6V296h6.5l.7.2h3l.8.2h2.8l.7.2h3l.7.2h3l.7.2h1.5zm0 .7zm-116.7.7h.2l.2.2v.8h-.2v.2h-.2v-1.2zm93.3 1.2h-.2l-.2-.2v-.2h-.2v-.8h.2v-.2h.4v1.2zm-50.3-36.2v-1h3.8v1h-4zm0-1zm-1.2 0h1.2v1h-1.2v-1zm0 1zm-.6-1h.6v1h-.6v-1zm-1 0h1v1h-1v-1zm0 0zm-.8 0h.6v1h-.7v-1zm0 1zm-.5-1h.4v1h-.5v-1zm0 0zm-.8 0h.8v1h-.8v-1zm0 0zm-1.2 0h1.2v1h-1.2v-1zm-1 0h1v1h-1v-1zm0 0zm-.2 0h.2v1h-.2v-1zm-1 0h1v1h-1v-1zm-2.5 1v-1h2.6v1h-2.5zm0-1zm-.3 0h.2v1h-.2v-1zm0 1zm-.2-1h.2v1h-.2v-1zm0 0zm-1 0h1v1h-1v-1zm0 1zm-.5-1h.4v1h-.4v-1zm0 0zm-.4 0h.4v1h-.4v-1zm0 1zm-1.2-1h1.2v1h-1.2v-1zm0 0zm0 0v1-1zm0 1h-.2.2zm-1.2-1h1.2v1l-1.2.2v-1zm-.4 0h.4v1.2h-.4v-1zm-.8.2h.8v1h-.8v-1zm0 0h.3-.2zm-.3 0h.3v1h-.3v-1zm0 1h-.5.5zm-1-1h1v1h-1v-1zm-1 0h1v1h-1v-1zm0 0zm-.2 0v1-1zm0 1zm-1-1h1v1h-1v-1zm-.6 0h.5v1h-.4v-1zm0 0zm0 0v1-1zm0 1zm-4.2.2v-1h3.5v-.2h.4v1h-2.7l-.2.2h-.8zm0-1zm-.6 0h.5v1h-.6v-1zm0 0zm-1.7 0h1.6v1h-1.7v-1zm0 1zm-.2-1h.3v1h-.2v-1zm0 0zm-1.3 0h1.4v1h-1.3v-1zm-1 0h1v1h-1v-1zm-.6 0h.7v1h-.6v-1zm0 0zm0 0v1.2-1zm0 1.2zm-1.6-1h1.5v1h-1.5v-1zm0 1zm0-1v1-1zm0 0zm-1.2 0h1.2v1h-1.2v-1zm0 0zm0 0v1-1zm0 1zm-1.2-1h1l.2 1H444v-1zm-.8 0h.8v1h-.7v-1zm0 0zm-1.6.2h1.6v1h-1.5v-1zm0 1zm0-1v1-1zm0 0zm-6.2 1.3v-1h1.7l.2-.2h3.9v1H436l-.2.2zm0 0zm-.4-1h.3v1h-.2v-1zm0 0zm-9 1.4v-1h1.3l.3-.2h3.2l.3-.2h3.5v1h-5.1l-.3.2H426zm0 0zm-.3-1h.2v1h-.3v-1zm0 0zm-.5 0h.5v1h-.4v-1zm-18.2 2.2v-1h1.8l.5-.2h1.7l.5-.2h2.4l.6-.2h2.6l.6-.2h2.2l.6-.2h2.8l.6-.2h1.2v1h-2.1l-.6.2h-2.7l-.6.2h-2.3l-.6.2h-2.8l-.6.2h-2.2l-.5.2H408l-.6.2h-.6zm0 0zm-.3-1h.3v1h-.2v-1zm0 0zm0 0v1-1zm0 1zm-26.3 2.4v-1h.7l1-.2h.8l.8-.2h1.6l.8-.2h1l.7-.2h1.6l.8-.2h1.8l.8-.2h.8l1-.2h1.7l.7-.2h1.7l.8-.2h1.8l.7-.2h1.6l1-.2h1.5l1-.2v1H405l-.7.2h-1.7l-.8.2H400l-.7.2h-.8l-1 .2H396l-.8.2h-1.7l-.8.2H391l-.8.2h-.8l-.8.2H387l-1 .2h-.7l-.8.2H383l-1 .2h-.8l-.8.2zm0 0zm0-7v1h-.5l-.5.2h-.5l-.3.2-.4.2-.3.2h-.2l-.3.3-.2.2-.3.3v.5l-.2.2v1.1h.2v.3l.2.2.2.2.3.3.3.2h.2l.3.2h.3l.4.2h1v1h-1.6l-.4-.2-.4-.2-.3-.2-.3-.2-.3-.2-.4-.2-.2-.3-.2-.2v-.3l-.3-.3-.2-.3v-1.6l.2-.3.2-.3.2-.4.2-.3.2-.3.4-.3.3-.2.4-.2.3-.2h.4l.5-.2h.6l.5-.2zm0 1zm26.3-3.3v1H405l-.7.2h-1.7l-.8.2H400l-.7.2H396l-.8.2h-1l-.7.2H392l-1 .2h-1.6l-.8.2h-.8l-.8.2h-1.7l-.8.2h-.8l-.8.2H381l-.8.2v-1h1.7l.8-.2h.8l.8-.2h.8l.8-.2h1.7l.8-.2h1.6l1-.2h.8l.8-.2h1.8l.7-.2h1.7l1-.2h.7l.8-.2h1.8l.7-.2h1.6l1-.2h2.5zm0 1zm0 0v-1 1zm0-1zm37-2.2v1.2H439l-1 .2h-2.3l-1.3.2H431l-1.2.2h-2.2l-1.3.2H424l-1.2.2h-2.3l-1 .2H417l-1.2.2h-1.2l-1 .2h-2.3l-1.3.2h-1l-1.2.2h-1.2v-1h2.2l1.2-.2h1l1.2-.2h2.2l1.3-.2h1l1.2-.2h2.3l1-.2h2.3l1.3-.2h2.4l1.2-.2h2.3l1-.2h3.5l1.2-.2h3.5l1-.2h2.5zm1 1l-1 .2v-1h1v1zm0 0zm.2 0h-.3v-1l.2 1zm-.2-1zm.4 1h-.3l-.2-1h.4v1zm1.2 0h-1.2v-1h1.2v1zm0 0zm0 0v-1 1zm0-1zm15.4-.4v1h-5.5l-.5.2h-6.5l-.4.2h-2.6v-1h5l.5-.2h7.7l.5-.2h1.8zm.8 1h-.8v-1h.8v1zm0 0zm0 0v-1 1zm0-1zm1.4 1h-1.4v-1h1.4v1zm0 0zm.2 0h-.2v-1h.2v1zm0 0h-.2.2zm0 0v-1 1zm0-1zm1.2 1h-1.2v-1h1.2v1zm.5 0h-.6v-1h.4v1zm-.2-1zm.8 1h-.7l-.2-1h.8v1zm1 0h-1v-1h1v1zm0 0zm.2 0h-.3v-1h.2v1zm0-1zm.4 1h-.4v-1h.4v1zm3-1l.2 1H468v-1h3.3zm1.2 1h-1v-1l1-.2v1zm0 0v-1.2 1zm0-1.2zm1.3 1h-1.2v-1h1.2v1zm3.5-1v1h-3.5v-1h3.5zm0 0zm0 1v-1 1zm0 0zm1.3 0h-1.2v-1h1.2v1zm3.6-1v1h-3.5v-1h3.7zm3.8 0v1H482v-1h3.8zm1 1h-1v-1h1.2v1zm.2 0zm0 0v-1 1zm0-1zm3.6 0v1H487v-1h4zm1 1h-1v-1h1.2v1zm.2-1zm0 1v-1 1zm1 0h-1v-1h1v1zm3.3-1v1H493v-1h3zm.5 1h-.4v-1h.5v1zm0-1zm.3 1h-.3v-1h.3v1zm0 0zm1 0h-1v-1h1v1zm.6 0h-.7v-1h.8v1zm0-1zm.5 1.2h-.6v-1h.5v1zm1 0h-1v-1h1v1zm0-1zm0 1v-1 1zm0 0h.3-.2zm.3 0h-.2v-1h.3v1zm0 0zm1.3 0h-1.3v-1h1.4v1zm0-1zm0 1v-1 1zm0 0h.2zm1 0h-1v-1h1v1zm15.2-.6v1h-6l-.4-.2H504l-.6-.2h-.9v-1h6l.4.2h6.6l.4.2h1.7zm0 0zm0 1v-1 1zm0 0zm1.3 0h-1v-1h1v1zm.4 0h-.3v-1h.5v1zm0-1zm.2 1h-.2v-1h.2v1zm0 0zm1 .2h-1v-1h1v1zm37 1v1h-2.3l-1.2-.2h-1l-1.2-.2h-2.2l-1.3-.2H546l-1-.2h-1.3l-1-.2h-2.3l-1.3-.2H537l-1-.2h-4l-1-.2h-2.6l-1-.2H524l-1-.2h-2.4v-1h4.7l1.2.2h3.3l1.3.2h2.3l1.3.2h2.3l1 .2h2.4l1 .2h2.3l1.3.2h2.3l1 .2h2.3l1.2.2h1.2l1 .2h1.3l1 .2h1.3zm0 0zm0 1v-1 1zm0 0zm26.4 1.4v1H582l-.8-.2h-.8l-.8-.2H578l-.7-.2h-.8l-.8-.2H574l-.8-.2h-.8l-.8-.2h-1.8l-.7-.2h-1.5l-.8-.2H565l-.8-.2h-1.7l-.8-.2H560l-.8-.2h-1.6v-1h3.5l.8.2h1.6l1 .2h1.7l.7.2h1.7l.8.2h1.8l.7.2h.8l.8.2h1.8l.8.2h.8l.8.2h1.8l.7.2h.7l.8.2h1.8l.7.2zm0 1zm0 6v-1h1.6l.3-.2h.3l.3-.2.2-.2.2-.2h.2v-.3l.2-.2v-.2h.2v-1.4l-.2-.3v-.2h-.3l-.2-.3-.3-.2h-.2l-.3-.3-.4-.2h-.4l-.4-.2h-.4l-.5-.2v-1h.5l.6.2h.5l.5.3.4.3.4.2.3.2.4.3.3.3.2.3v.3l.3.2v.3l.2.3v1.3l-.3.3v.3l-.3.3-.3.4-.3.2-.3.2-.2.2-.3.2-.4.2h-.3l-.4.2H584zm0 0zm-26.5-2.4v-1h1.8l.8.2h1.8l.8.2h1.8l.7.2h1.7l1 .2h.7l.8.2h1.8l.7.2h1.6l.8.2h1l.8.2h1.6l.8.2h1l.7.2h1.5l.8.2h1l.7.2v1h-1l-.8-.2h-1.6l-.8-.2h-.8l-.8-.2h-1.7l-.8-.2h-.8l-1-.2h-1.6l-.8-.2h-.8l-1-.2h-1.4l-.8-.2H566l-.7-.2h-1.6l-1-.2H561l-1-.2h-1.6l-.8-.2zm0 0zm0-1v1-1zm0 0zm-.2 0h.3v1h-.4v-1zm0 1zM539 265v-1h2.9l.5.2h3l.5.2h2.3l.6.2h2.2l.6.2h2.3l.5.2h2.4l.5.2v1h-1.7l-.5-.2h-2.3l-.6-.2H550l-.7-.2H547l-.6-.2h-2.9l-.6-.2H540l-.6-.2h-.6zm-.4-1h.5v1h-.4v-1zm0 0zm-.2 0h.2v1h-.2v-1zm0 1zm-9.2-.5v-1h4l.3.2h3.2l.3.2h1.3v1h-1.6l-.3-.2H533l-.4-.2h-3.3zm0-1zm-.3 0h.2v1h-.3v-1zm0 1zm-6.4-.3v-1h4.5l.2.2h1.7v1h-4.4l-.2-.2h-1.7zm0-1zm0 0v1-1zm0 1zm-1.5-1h1.7v1H521v-1zm0 0zm-.7 0h.8v1h-.7v-1zm-1-.2h1v1H519l.2-1zm-.2 1zm0-1h.2v1-1zm0 0zm-1 0h1v1h-1v-1zm0 0zm-.2 0v1-1zm0 1zm-1.4-1h1.4v1h-1.4v-1zm0 1zm-.2-1h.2v1h-.2v-1zm0 0zm-.6 0h.6v1h-.7v-1zm-1 0h1v1h-1v-1zm-1.4-.2h1.4v1h-1.4v-1zm0 0zm-.2 0h.2v1h-.2v-1zm0 1zm-1.6-1h1.6v1h-1.6v-1zm0 0zm-.6 0h.6v1h-.6v-1zm-4.2 1v-1.2h3.3l.2.2h.8v1h-4.3zm0 0zm0-1.2v1-1zm0 0zm-.5 0h.6v1h-.5v-1zm-1 0h1v1h-1v-1zm0 1zm0-1v1-1zm0 0zm-1.3 0h1.2v1h-1.3v-1zm-1 0h1v1h-1v-1zm0 1h.6-.6zm-.2-1h.3v1h-.3v-1zm0 0h-.3.3zm-.8 0h.8v1h-.8v-1zm-.4 0h.4v1h-.4v-1zm-1.2 0h1.3v1H500v-1zm0 1h.2zm0-1v1-1zm0 0zm-1 0h1v1h-1v-1zm0 1zm-.5-1h.4v1h-.6v-1zm0 0zm-.4 0h.5v1h-.4v-1zm0 1zm-1-1h1v1h-1v-1zm0 0zm-.2 0h.2v1h-.2v-1zm0 1zm-.3-1h.3v1h-.3v-1zm0 0zm-2.6.8v-1h2.3v1H494zm-1-1h1v1h-1v-1zm-.2 0h.2v1h-.2v-1zm0 0zm-1 0h1v1h-1v-1zm-1.2 0h1.2v1h-1.3v-1zm0 0zm-.8 0h.8v1h-.8v-1zm0 0zm-.4 0h.4v1h-.5v-1zm0 1zm-.7-1h.7v1h-.7v-1zm0 0zm-1 0h1v1h-1v-1zm-.7 0h.6v1h-.6v-1zm0 1zm-1.2-1h1.2v1H486v-1zm0 0zm-3.7 1v-1h3.9v1h-4.1zm.4 1.8L460 276.6l-.4-1 22.7-11.3h.4v1zm-.5-1h.4-.5zm22.7 12.4l-23-11.4.4-1 22.7 11.5v1h-.3zm.4-1l1 .6-1 .4v-1zm-23 11.6l22.7-11.5.4 1-22.6 11.4h-.5v-.8zm.4 1h-.3.4zM460 275.7l22.8 11.5-.5 1-22.8-11.6v-1h.4zm-.4 1l-1-.5 1-.5v1z" fill="#21231e"/> - <path d="M482 269c5.8 0 10.4 3.2 10.4 7s-4.6 7-10.3 7-10-3.2-10-7 4.5-7 10-7z" fill="#0c4076"/> - <path d="M493 276h-1v-.3l-.2-.3v-.5l-.2-.3v-.3l-.3-.3-.2-.4v-.3l-.3-.2-.2-.2-.2-.3-.3-.2-.3-.3-.3-.2-.3-.2-.2-.2-.4-.2-.4-.2-.3-.2-.4-.2h-.5l-.4-.3h-.4l-.5-.2h-.8l-.5-.2h-1.9v-1.2h1.7l.6.2h.5l.5.2h.5l.5.2h.4l.5.3.4.2.5.2h.5l.4.3.3.2.4.2.3.3.4.3.3.2.3.3.3.3.2.4.3.3.2.4.2.4.2.4v.3l.2.5v.4l.2.2v.8zm-11 7.4v-1h1.6l.5-.2h1.1l.5-.2h.5l.4-.3h.4l.5-.3h.4l.3-.3h.4l.4-.3.3-.2.4-.3.3-.2.3-.2.3-.3.2-.3.2-.2.3-.3v-.3l.3-.3h.2v-.4l.2-.3v-.7l.2-.3v-.3h1v.4l-.2.4v.4l-.2.4v.3l-.2.3-.2.3-.2.4-.2.3-.3.3-.2.3-.3.2-.3.3-.3.3-.4.3-.3.3-.4.2-.4.3-.5.2-.4.2-.4.2h-.4l-.5.3h-.4l-.5.3h-.5l-.5.2h-1.1l-.5.2H482zm-10.6-7.4h1v1l.2.3v.3l.2.2.2.3v.4l.3.3.2.3.3.2.2.3.3.3.3.2.3.2.2.3.3.2.4.2h.2l.4.3h.4l.4.3h.5l.3.3h.9l.5.2h1.5l.6.2h.5v1h-1.9l-.5-.2h-.5l-.5-.2-.5-.2h-.4l-.5-.3h-.4l-.4-.3-.4-.2-.4-.2-.4-.3-.4-.2-.3-.2-.4-.2-.4-.3-.3-.3-.3-.3-.2-.4-.3-.3-.2-.3-.2-.4v-.3l-.2-.4-.2-.4v-.8l-.2-.4v-.4zm10.7-7.4v1h-1.3l-.5.2h-.3l-.5.2h-.5l-.4.2h-.4l-.6.3h-.4l-.4.3-.4.2-.3.2-.5.2-.3.2-.3.2-.4.2-.3.3-.3.2-.2.3-.3.3-.2.3-.2.3v.3l-.2.2v.3l-.2.3v.7l-.2.3v.3h-1V275l.2-.5.2-.4v-.2l.3-.4.3-.3.2-.3.3-.3.2-.3.3-.2.3-.3.3-.2.3-.3.3-.3.4-.2.4-.2.4-.2h.4l.4-.3.5-.2.5-.2h.5l.5-.2h1l.5-.2h1.1l.6-.2h.5z" fill="#21231e"/> - <path d="M482 211.7c4.4 0 8 3.4 8 7.7s-3.6 7.8-8 7.8-7.6-3.5-7.6-7.8 3.5-7.8 7.7-7.8z" fill="#edb92e"/> - <path d="M490.4 219.4h-1v-1l-.2-.3v-.4l-.2-.3v-.4l-.2-.4v-.3l-.3-.3-.2-.3-.2-.3v-.3l-.3-.2-.2-.3-.2-.2-.3-.2-.3-.2-.2-.2-.3-.2-.3-.2-.4-.2h-.3l-.3-.3h-.4l-.3-.2h-.4l-.4-.2H482V211l.6.2h1.2l.4.2h.4l.4.2.3.2.4.2h.4l.4.3.3.3.4.2.4.2.3.3.3.3.2.3.3.2.2.3.3.3.2.3.2.5.2.3v.4l.3.4v.8l.2.4v.8l.2.4v.4zm-8.3 8.3v-1h1.5l.3-.2h.3l.3-.2.4-.2h.3l.3-.2h.3l.2-.3.3-.2.2-.2.3-.2.3-.2.2-.3.2-.2.2-.2v-.3l.3-.3.2-.3.2-.4v-.3l.2-.4v-.7l.2-.4v-.8l.2-.4v-.4h1v1.2l-.2.4v.5l-.2.4v.3l-.3.4v.3l-.3.4-.2.3-.2.4-.3.4-.2.3-.3.3-.2.3-.3.3-.3.2-.3.3-.3.3-.3.2-.3.2-.3.2h-.4l-.3.2-.4.2h-.4l-.4.2H482zm-8-8.3h1v1.8l.2.3.2.3v.3l.2.3.2.3.2.2.2.3.2.3.2.3.2.3.2.3.3.2.2.3.3.3.3.2.4.2h.3l.3.3h.3l.4.3h.3l.3.2h.7l.4.2h.7v1h-1.6l-.4-.2h-.3l-.4-.3h-.4l-.4-.3-.4-.3-.3-.2-.5-.2-.3-.2-.3-.2-.4-.2-.3-.3-.3-.3-.2-.3-.3-.3-.2-.3-.2-.3v-.3l-.3-.4v-.3l-.3-.4v-.4l-.2-.5v-.4l-.2-.3v-1.4zm8-8.3v1.2h-1.3l-.4.2h-.3l-.3.2h-.4l-.3.3h-.3l-.3.2-.3.2-.2.2-.3.2-.2.3-.3.3-.2.2-.2.3-.2.3-.2.4-.2.3-.2.3-.2.3v.3l-.2.3-.2.3v.7l-.2.3v1.1h-1v-1.6l.2-.4v-.4l.2-.4.2-.4v-.4l.3-.3v-.4l.3-.2.2-.3.3-.3.2-.3.3-.4.3-.3.3-.3.2-.2.3-.2.4-.3.2-.2h.4l.3-.2.3-.2h.4l.4-.2h.5l.4-.2h1.1z" fill="#21231e"/> - <path d="M482 213.7c3.3 0 5.8 2.6 5.8 5.7 0 3.2-2.5 5.8-5.7 5.8-3 0-5.5-2.6-5.5-5.8 0-3 2.5-5.7 5.6-5.7z" fill="#edb92e"/> - <path d="M488.3 219.4h-1V218h-.2v-.7l-.2-.2v-.2l-.2-.3-.2-.2v-.2l-.3-.2-.2-.2-.2-.2-.2-.2h-.2l-.2-.3h-.4l-.2-.3h-.2l-.3-.2h-.6l-.2-.2H482v-1h1.8l.3.2h.3l.2.2h.3l.3.3h.4l.2.3h.2l.3.3.3.2.2.2.2.2.2.3v.2l.3.3v.2l.3.3v.2l.2.3.2.3v.6l.2.2v1.3zm-6.2 6.3v-1h1.1l.2-.2h.3l.2-.2h.2l.2-.2h.4l.2-.2.2-.2h.2l.2-.3.2-.2h.2v-.2l.3-.2v-.2l.3-.3.2-.3v-.2l.2-.3v-.2l.2-.3v-1.3h1v2l-.2.3-.2.3-.2.4-.2.3v.2l-.3.2v.2l-.3.2-.2.3h-.2l-.2.3h-.2l-.2.3-.3.2h-.2l-.2.3-.3.2h-.2l-.3.2h-.3l-.3.2h-1.4zm-6-6.3h1v1.3l.2.3v.2l.2.3v.2l.2.2.2.4.2.2v.2h.3l.2.3.2.3v.2h.3l.2.3h.3l.2.2h.2v.2h.4l.2.2h.2l.3.2h.9v1h-1.5l-.3-.2h-.3l-.3-.2h-.2l-.3-.3-.3-.2-.3-.2-.3-.2h-.2l-.2-.3h-.2l-.2-.4-.2-.2-.2-.2-.2-.3-.2-.3v-.3l-.2-.3h-.2v-.4l-.2-.3v-.6l-.2-.3v-.9zm6-6.2v1H481l-.2.2h-.4l-.3.2-.3.3h-.5l-.2.3h-.2v.3l-.3.2h-.2l-.2.3v.3l-.2.2v.2l-.2.3v.2l-.2.2v.2l-.2.3v.4l-.2.2v.7h-1V218l.2-.4v-.3l.2-.3.2-.3v-.2l.2-.3.2-.2.2-.3.2-.2.2-.3.2-.2.2-.2.2-.2.2-.2h.3l.2-.3h.2l.3-.2h.2l.3-.2h.3l.3-.2h.5l.3-.2h.6z" fill="#21231e"/> - <path d="M482 215.8c2 0 3.7 1.6 3.7 3.6S484 223 482 223c-1.8 0-3.4-1.6-3.4-3.6s1.6-3.6 3.5-3.6z" fill="#0c4076"/> - <path d="M486.2 219.4h-1v-.8h-.2v-.3l-.2-.2v-.2l-.2-.2-.2-.2-.2-.3h-.2l-.3-.2h-.2l-.2-.2h-.2v-.2H482v-1h1.4v.2h.5v.2h.3v.2h.3v.3h.3v.2l.2.2.2.3.2.3v.2l.2.2.2.3v.4l.2.2v.6zm-4 4.2v-1h.6v-.2h.5l.3-.2h.2l.2-.2v-.2h.2v-.2h.2v-.2h.2v-.2l.2-.2v-.2l.2-.2v-.4h.2v-1h1v1l-.2.2v.2l-.2.2v.2l-.2.2-.2.3-.2.2-.2.2-.3.2-.3.3h-.3l-.3.2-.3.2h-1l-.3.2zm-4-4.2h1v1.3l.2.2v.2l.2.2.2.2.2.2.2.2.2.2h.2v.2h.4l.2.2h.8v1.2h-.7l-.2-.2h-.3v-.2h-.5l-.2-.2-.3-.3h-.2v-.2l-.2-.2h-.2v-.2l-.2-.3-.2-.3v-.2l-.2-.2-.2-.3v-1.4zm4-4v1h-1l-.2.2h-.2l-.2.2h-.2v.2h-.2l-.2.3-.2.2-.2.2-.2.3v.4h-.2v1h-1V218l.2-.2.2-.3v-.2l.2-.2.2-.2.3-.3.2-.2.2-.2h.2l.2-.2h.2l.2-.2h.3l.3-.2h.9z" fill="#21231e"/> - </g> - <path d="M135.8 192.6v144.7c0 26 10 49.4 26.2 66.5 16.2 17 38.5 27.6 63 27.6 24.8 0 47-10.6 63.3-27.6 16.2-17 26.2-40.6 26.2-66.5V192.6H135.8z" fill="#c6363c"/> - <path d="M135 192v145.3l.2 2.5v2.4l.2 2.4.2 2.4.3 2.4.2 2.3.3 2.3.5 2.4.5 2.3.5 2.2.6 2.2.6 2.2.7 2.2.6 2.2.8 2.2.8 2 1 2.2.8 2 1 2.2 1 2 1 2 1.2 2 1 2 1.3 1.8 1.3 2 1.2 1.7 1.4 1.7 1.3 1.8 1.4 1.7 1.6 1.7 1.4 1.6 1.5 1.6 1-1-1.5-1.5-1.5-1.6-1.4-1.6-1.3-1.7-1.3-1.8-1.3-1.8-1.2-2-1.2-1.7-1.2-2-1-1.8-1.2-2-1-2-1-2-1-2-1-2-.8-2-.8-2.2-.8-2-.7-2.3-.6-2-.6-2.4-.6-2.2-.5-2.2-.5-2.3-.4-2.2-.4-2.3-.3-2.3v-2l-.3-2.5-.2-2.4V193.4h177.4v144l-.2 2.4v2.4l-.2 2.5-.2 2.3-.2 2.4-.3 2.3-.5 2.3-.4 2.3-.4 2.4-.5 2.2-.5 2.2-.6 2.3-.8 2.2-.7 2.2-.8 2-.8 2.2-1 2-1 2.2-.8 2-1 2-1 2-1.2 2-1 1.8-1.3 2-1.2 1.7-1.3 2-1.3 1.6-1.4 1.7-1.4 1.7-1.4 1.7-1.5 1.7-1.5 1.6-1.5 1.6-1.6 1.4-1.6 1.5-1.5 1.4-1.6 1.4-1.8 1.3-1.8 1.5-1.7 1.3-1.8 1.2-2 1.2-1.8 1-1.8 1.2-2 1-1.8 1-2 1-2 1-2 .8-2 1-2 .6-2 .7-2.2.7-2 .6-2.3.5-2 .5-2.2.5-2.2.4-2.2.3-2.2.3-2.2.2h-2.3l-2.3.2H225v1.3h4.8l2.3-.3 2.3-.2 2.3-.3 2.2-.3 2.2-.5 2.2-.4 2.2-.4 2.2-.6 2.2-.6 2-.7 2.2-.7 2-.8 2-.8 2-1 2-.8 2-1 2-1 2-1 2-1.2 1.8-1 1.8-1.4 1.8-1.2 1.8-1.3 1.7-1.4 1.7-1.2 1.7-1.5 1.6-1.4 1.6-1.7 1.6-1.5 1.5-1.6 1.5-1.6 1.5-1.7 1.5-1.8 1.4-1.7 1.3-1.8 1.2-1.8 1.3-2 1.2-1.8 1.2-2 1-2 1.2-1.8 1-2 1-2 1-2 1-2.2 1-2 .7-2.2.7-2.2.7-2.2.7-2.2.7-2.2.6-2.3.5-2.3.5-2.4.4-2.3.4-2.3.4-2.3.3-2.4.2-2.4V192z" fill="#fff"/> - <g fill="#fff" stroke="#21231e" stroke-width=".5"> - <path d="M226 424c.7-.2 2 0 3-1 1.4-1 .8-5 .7-7.7-.6-13.5-1-36.3-1.8-68.3h-5.6c-.7 32-1.2 54.8-1.8 68.3 0 2.6-.7 6.8.7 7.8 1 1 2.3.8 3 1h1.7z"/> - <path d="M234.4 423.5c-.8 0-2 .2-3-.5-1.5-1-1.6-5.2-1.7-7.8-.7-13.5-2-36.2-4-68 1-.3 1.8-.3 2.6-.3l.4-.2c5 31.6 7 54 10.4 67.5.6 1.8 1.6 6.5 0 8-1 1-2.2 1-3 1l-1.6.2z"/> - <path d="M244.4 422c-.8 0-2 .5-3.2 0-1.5-1-1.4-5.2-2-7.7-3.5-13.5-5.5-36-10.6-67.5 1-.3 2-.4 2.7-.4 8.2 30.6 10.6 52.2 17 65.6.5 2 2 6.8.6 8.5-1 1-2.3 1-3 1.3l-1.6.3z"/> - <path d="M254.4 419.2c-.8 0-2 1-3.3.4-1.4-.6-1.7-5.2-2.8-7.6-6.3-13.4-8.7-35.2-17-66 1.2-.6 2-.7 2.7-.8.7-.3.5-.5 1.6-.7 9.5 30.6 12.6 51.8 21.6 65 1.4 2 2.5 6.4 1.5 7.7-.7 1-2 1.3-2.8 1.6l-1.6.4zm-38.5 4.3c.7 0 2 .2 3-.5 1.4-1 1.5-5.2 1.6-7.8.7-13.5 2-36.2 4-68-1-.3-1.8-.3-2.6-.3l-.4-.2c-5 31.6-7 54-10.4 67.5-.5 1.8-1.6 6.5 0 8 1 1 2.3 1 3 1l1.7.2z"/> - <path d="M206 422c.7 0 2 .5 3 0 1.6-1 1.5-5.2 2.2-7.7 3.4-13.5 5.4-36 10.4-67.5-1-.3-2-.4-2.6-.4h-.2c-8 30.6-10.5 52.2-16.7 65.6-.5 2-2 6.8-.6 8.5 1 1 2.2 1 3 1.3l1.5.3z"/> - <path d="M196 419.2c.7 0 2 1 3.2.4 1.5-.6 1.8-5.2 3-7.6 6.2-13.4 8.6-35.2 16.8-66-1-.6-2-.7-2.7-.8-.7-.3-.5-.5-1.7-.7-9.5 30.6-12.5 51.8-21.5 65-1.3 2-2.4 6.4-1.4 7.7.7 1 2 1.3 2.7 1.6l1.6.4zm53-23c-.6 0-1.7.5-2.8 0-1.5-.8-2.5-5-3.3-7.5-6.4-12.5-12.2-34.8-21.8-65.8 1-.5 1.7-.6 2.4-.7.6-.2 1.3-.5 2.3-.6 10.2 30.7 14.8 53 24.8 65 1.7 2 3 6.5 2 7.8-.5 1-1.7 1-2.3 1.3l-1.4.4z"/> - <path d="M241 397.8c-.7 0-2 .3-3-.3-1.3-.8-1.8-5-2.3-7.6-2.6-13.5-7.3-36-14-67.4 1-.3 1.7-.4 2.4-.4.8-.2 1.5-.4 2.5-.4 8 31.3 9.8 54.7 17.3 66.7 1.3 2.2 2 6.7 1.2 8-.7.8-2 .8-2.6 1l-1.4.3z"/> - <path d="M232.7 398.7c-.7 0-1.8.2-2.8-.5-1.4-1-1.4-5-1.6-7.8-1-13.5-3.2-36.2-6.2-68 1-.3 1.7-.3 2.4-.2.7-.2 1.4-.3 2.5-.3 4.4 31.7 7 54.7 9.6 67.8.5 2.5 1.3 6.7.3 7.8-1 1-2 .8-2.8 1h-1.5z"/> - <path d="M201.2 396.2c.7 0 1.8.5 3 0 1.4-.8 2.4-5 3.2-7.5 6.3-12.5 12-34.8 21.6-65.8-1-.5-1.6-.6-2.3-.7-.6-.2-1.3-.5-2.4-.6-10.2 30.7-14.8 53-24.8 65-1.7 2-3 6.5-2 7.8.5 1 1.7 1 2.3 1.3l1.4.4z"/> - <path d="M209.3 397.8c.7 0 1.8.3 3-.3 1.3-.8 1.8-5 2.3-7.6 2.6-13.5 7.3-36 14-67.4-1-.3-1.7-.4-2.4-.4-.7-.2-1.4-.4-2.4-.4-8 31.3-9.8 54.7-17.3 66.7-1.4 2.2-2 6.7-1.2 8 .7.8 2 .8 2.6 1l1.3.3z"/> - <path d="M217.6 398.7c.7 0 1.8.2 2.8-.5 1.3-1 1.3-5 1.5-7.8 1-13.5 3-36.2 6-68-1-.3-1.6-.3-2.3-.2-.7-.2-1.4-.3-2.5-.3-4.3 31.7-6.8 54.7-9.5 67.8-.5 2.5-1.3 6.7-.3 7.8.8 1 2 .8 2.7 1h1.6z"/> - <path d="M226 399c.6 0 1.8 0 2.7-.8 1-1 .7-5.2.6-7.8-.6-13.6-1-36.3-1.7-68.3-1 0-1.8 0-2.5.2-.5-.2-1.3-.2-2.3 0-.6 32-1 54.6-1.7 68.2 0 2.6-.5 6.8.6 7.8 1 .8 2 .7 2.8.8h1.5z"/> - <path d="M243.5 377.6c-.6 0-1.4.5-2.2 0-1.2-.8-2-5-2.5-7.5-5-12.4-9.4-34.7-16.6-65.7.7-.4 1.2-.5 1.8-.6.4-.2 1-.5 1.8-.6 7.8 30.8 11.3 53 19 65.2 1.3 2 2.2 6.4 1.6 7.7-.4.8-1.4 1-1.8 1.2l-1 .4z"/> - <path d="M237.3 379.2c-.6 0-1.4.3-2.2-.3-1-1-1.4-5-1.8-7.7-2-13.4-5.6-35.8-10.7-67.3.7-.3 1.3-.4 2-.3.4-.3 1-.5 1.7-.5 6 31.3 7.5 54.7 13.2 66.8 1 2 1.6 6.6 1 7.8-.6 1-1.5 1-2 1l-1 .4z"/> - <path d="M231 380c-.6 0-1.5.3-2.2-.4-1-1-1-5-1.2-7.8-.8-13.5-2.4-36.2-4.7-68 .6-.3 1.2-.3 1.7-.2.6-.2 1-.3 2-.2 3.2 31.7 5 54.7 7.2 67.8.3 2.6 1 6.7 0 7.8-.5 1-1.4.8-2 1h-1z"/> - <path d="M206.8 377.6c.5 0 1.4.5 2.2 0 1.2-.8 2-5 2.5-7.5 5-12.4 9.3-34.7 16.6-65.7-.6-.4-1-.5-1.7-.6-.5-.2-1-.5-1.8-.6-7.8 30.8-11.3 53-19 65.2-1.3 2-2.2 6.4-1.6 7.7.3.8 1.2 1 1.7 1.2l1 .4z"/> - <path d="M213 379.2c.6 0 1.4.3 2.2-.3 1-1 1.5-5 2-7.7 1.8-13.4 5.4-35.8 10.6-67.3-.8-.3-1.3-.4-2-.3-.4-.3-1-.5-1.7-.5-6 31.3-7.4 54.7-13 66.8-1.2 2-1.8 6.6-1 7.8.5 1 1.4 1 2 1l1 .4z"/> - <path d="M219.3 380c.6 0 1.5.3 2.2-.4 1-1 1-5 1.2-7.8.7-13.5 2.4-36.2 4.7-68-.7-.3-1.3-.3-2-.2-.4-.2-1-.3-1.7-.2-3.3 31.7-5.2 54.7-7.3 67.8-.4 2.6-1 6.7-.2 7.8.6 1 1.5.8 2 1h1z"/> - <path d="M225.7 380.4c.5 0 1.4 0 2-.8 1-1 .7-5.2.6-7.8-.4-13.5-.8-36.3-1.3-68.3h-3.7c-.5 32-1 54.8-1.3 68.3 0 2.6-.4 6.8.5 7.8.6.8 1.6.7 2 .8h1.2z"/> - <path d="M221.3 330.2v7.4l-5.8 1.2c0 2.6 6.4 29.6 9.6 29.6 3.4 0 9.8-27 9.8-29.6l-5.7-1.2a646 646 0 0 0 0-7.4c-1.2 1-2.5 2.7-4 4.3-1.2-1.6-2.5-3.3-3.7-4.3z"/> - </g> - <g transform="translate(-32 32) scale(.53333)"> - <g id="d"> - <path d="M412 584.5c-3 .2-7 2-18.5 12-5 10.2-10 20.5-17 29.4-2.4 1.4-4.2 2.5-6 3.2-2 .6-16.6 0-17-.5-4.4-4-11.3-1.2-9 3.2-1.8 1.6 2.2 7.8 5.3 5.2 3-2.4 13-.2 16.4-1.4-1.3 3-10.4 5-16.8 5.5-5.8.2-5.4 6-3 10.5 2.7 1.8.5-.4 1.4.8 2.6 4 8.2 3.4 8.4-.4.2-4 13.8-9 15.8-12-2.5 6-8.2 11.5-11 17.3-3 3-5 3.7-1 10 4.4-.6 4.6-1.7 7.3.8 6-.6 7-2.4 6-7.2-1-5 3.2-14 4.6-16.6 1.2-2.4 1.5-4.8 2.8-6.3 2.2-2.5 12.6-7.7 15.2-6.3 5 2.7 8.7 1 9.3-3.7-1.6-1.2-.4-8-3.8-8.2-2.8-.3-4.4.6-7 2.7-4 3.2-6 5-7.4 4.6-3-.7 5.8-5 13.8-15.6 11-14.5 11.8-22 11.3-27z" fill="#edb92e" stroke="#21231e"/> - <use xlink:href="#c" transform="matrix(-1 0 0 1 801.634 0)" height="900" width="1350"/> - <path d="M345.2 634.5c-4-2.3-6.3-2.2-8-.5-.7 1-1.8.5-1.2-1 2.7-6.3 7-7 10.7-4.2l2.8 2.7c-.6 1-3.8 2.3-4.3 3zm57.4-5.6c4.3-3 8.3-3.6 10.5-2 1.3 1 2.5.3 1.4-1.2-4.4-6.2-9.6-6.5-13.5-3-1.2 1-2 2-2.8 3 1.3 1.6 4.3 3.2 4.4 3zM369 664.4c.2-.2-1-5.4-2.6-7-1.4 1-3 2-4.3 3.5-4.2 4.5-4 11 2.5 16.7 1.6 1.5 2.4 0 1.7-1.7-1-2.7.3-6.3 3-11.5zM352.6 651c-4 1.6-5.4 3.7-5.2 6.4 0 1.5-1 2-1.5.3-4.8-11.2.2-13.3 7.5-13 .4 2-.7 6.2-.8 6.2z" fill="#edb92e" stroke="#21231e"/> - <path d="M384 621.3l1 .6h-.2v1.8h.2v.4h.2v.2h.2l.2.3.3.2v.2h.4l.2.3h.2l-.6 1h-.2l-.3-.2h-.2l-.2-.2-.2-.2-.3-.3-.3-.3v-.2h-.2v-.3l-.2-.2v-.2h-.2v-.2l-.2-.2V622l.2-.3v-.2zm6.5.8l-.8 1-.2-.2-.3-.2-.2-.2-.2-.2h-.3l-.2-.3-.2-.3-.3-.2-.2-.2-.3-.2h-.7l-.2-.2h-.7v.2h-.2l-.2.2v.2h-.2v.3l-.2.2-1-.7v-.3l.2-.2.2-.2.2-.2.3-.3h.3l.2-.2h.4v-.2h.8l.2.2h.4l.2.2h.2l.2.2h.2l.2.3h.2l.2.3h.2l.3.3.2.3.2.2.3.2.2.2h.3z" fill="#21231e"/> - <path d="M387.3 617.6l1 .6v.4h-.2v.8l.2.2v.2l.2.2v.2l.2.2.2.3.3.2h.2l.2.2h.2l.2.2.2.2h.2l-.6 1h-.2l-.3-.2-.3-.3h-.2l-.2-.2-.2-.2-.2-.3v-.2h-.2l-.2-.2v-.2h-.2v-.5h-.2V618h.2v-.3zm6.5.8l-.7 1-.2-.3h-.2l-.2-.3-.3-.2-.3-.3h-.2l-.2-.3-.2-.2-.3-.2-.3-.2h-.3v-.2h-.8l-.2.2-.2.2-.2.2v.2l-.3.2-1-.6.2-.3v-.2h.3v-.3h.3l.3-.3h.2l.2-.2h.2v-.2h1.4l.2.2h.2v.2h.3l.3.3h.2l.2.2h.2l.2.3h.2l.3.3v.2l.3.2.3.2.2.2z" fill="#21231e"/> - <path d="M391 612.8l1 .6-.2.2v.6h-.2v1l.2.3v.3h.2v.4h.2l.2.3v.2h.2l.2.2.2.2.3.3.3.2h.2l.2.2-.6 1-.3-.2-.2-.2-.2-.2-.3-.2-.2-.2v-.2l-.3-.2v-.2l-.3-.2v-.2l-.3-.2v-.4l-.2-.3v-.2h-.2v-.7h-.2v-1l.2-.3v-.4l.2-.3v-.2zm7 1l-.8 1-.3-.3-.3-.2-.3-.3-.3-.2v-.2l-.3-.2-.3-.2-.2-.2-.2-.2-.2-.2h-.2l-.2-.2-.3-.2h-.2l-.2-.2h-.7l-.2.2-.2.2-.3.3v.2h-.2v.4l-1-.6v-.3l.2-.2.2-.3v-.2l.3-.2.2-.2v-.2h.3l.2-.2h.3l.2-.2h1.2l.2.2h.2l.2.2.3.2h.3l.2.3.2.2h.3l.2.3.3.2.2.2.3.2.2.2.3.2.2.3.3.2z" fill="#21231e"/> - <path d="M394.8 607.7l1 .5v.5l-.2.3v1.7l.2.2v.3l.2.2v.2l.2.2.3.3v.2l.3.2.2.2h.2l.2.3.2.2.3.2v.2l-.6.8-.3-.2v-.2l-.4-.2-.2-.3-.3-.3v-.2l-.3-.3-.2-.2v-.2l-.3-.3v-.2l-.3-.2-.2-.2v-.2l-.2-.2v-.3l-.2-.3v-2.1l.2-.2v-.2l.2-.3zm7.6 1.3l-1 .8-.2-.3-.3-.3-.3-.2-.3-.3-.3-.3v-.2l-.4-.2-.2-.2-.2-.2-.2-.2-.2-.2h-.2l-.2-.2h-.2l-.2-.2h-.3v-.2h-.7v.2l-.3.2-.2.3-.2.2v.2l-.3.2v.2l-1.2-.5.2-.3.2-.3v-.2l.3-.3.2-.2.2-.2.3-.2.3-.2h.5l.3-.2h.8l.3.2h.2l.3.2h.2l.2.3.3.3.2.2.3.2.2.2h.3l.2.3.3.3.2.2.3.3.3.4.3.3.4.3z" fill="#21231e"/> - <path d="M399 602.6l1.2.6v.2l-.2.2-.2.3v2.1l.2.2v.2l.2.2.2.2v.2l.2.2.2.2.2.2v.2l.3.2.2.2.2.2.3.2.2.2.3.2-.8 1-.3-.3-.2-.3-.3-.2-.3-.3-.2-.2-.3-.2-.2-.3v-.2l-.3-.2-.2-.2v-.2l-.3-.2v-.3h-.2v-.4l-.2-.2v-.2l-.2-.3v-2.6l.2-.2v-.2l.2-.2v-.2zm7.7 1.4l-1 .8-.2-.3-.3-.3-.2-.3-.3-.3-.3-.3-.2-.2-.2-.3-.3-.3-.2-.2h-.2l-.2-.3-.2-.2h-.2v-.2h-1.3l-.3.2v.2h-.2v.3l-.3.2-.2.3v.2l-1.2-.6.3-.3.2-.3.2-.2.2-.3v-.2l.4-.2h.2l.2-.2h.2l.2-.2h1.7l.2.2.2.2h.2l.2.3h.3l.3.3.2.3h.3l.2.3.3.3.2.2.3.3.3.4.4.3.3.3z" fill="#21231e"/> - <path d="M462.6 580.6l-9.5-5.4c-4 3-6.8 13.5 0 22.2 8.5 11 12 18.7 14 27.5 6.2-8 8.3-16.3 4.4-24.5-5.3-11-8.7-17-8.8-20z" fill="#fff" stroke="#21231e"/> - <path d="M470.4 573l-9.5-5.4c-4 3-12.5 13.2-5.6 22 8.5 10.8 17.3 19 19.4 27.7 6.2-8 8.8-16.2 5-24.4-5.4-11-9.4-17.2-9.4-20z" fill="#fff" stroke="#21231e"/> - <path d="M449.4 569.2l-9.5-5.4c-4 3-7 13.5-.2 22.2 8.5 10.8 12 18.7 14 27.5 6.2-8 8.4-16.3 4.4-24.4-5.3-11-8.7-17-8.8-19.8z" fill="#fff" stroke="#21231e"/> - <path d="M405.5 469c.2 8.7-1.4 66.5-1.8 74.7-.5 8.2-4 13.7-8 17-3.5-5-5.6-11.5-6-19.3-.4-4 .4-58.7.7-70 6.4-17 11.2-17.8 15-2.4z" fill="#fff"/> - <path d="M404 543.8h-1l.2-1v-2.6l.2-1.7v-4l.2-2.3v-5l.2-2.7v-2.8l.2-3v-3l.2-3v-6.2l.2-3v-6.2l.2-3v-5.8l.2-2.7v-7.4l.2-2V469h1v11.7l-.2 2.5v8.3l-.2 2.8v6l-.2 3.2v3l-.2 3.2v6l-.2 3v3l-.2 2.8v5.3l-.2 2.5v2.3l-.2 2v3.6l-.2 1.5v2zm-8.7 17l.8-.5h-.6l.3-.4.4-.4.4-.3.4-.3.3-.4.5-.4.3-.3.3-.5.4-.4.4-.4.3-.4.4-.5.3-.4.2-.5.2-.5.3-.5.3-.5.2-.6.2-.5.3-.6.2-.5.2-.5v-.7l.3-.6v-.6l.3-.7v-.7l.2-.7v-.7l.2-.8v-1.5h1v2.3l-.2.7v.8l-.3.6v.8l-.3.7-.2.6-.2.8-.2.6-.2.6-.2.6-.3.6-.4.5-.2.6-.3.5-.2.5-.3.5-.3.5-.3.5-.4.4-.4.5-.3.4-.5.5-.3.4-.4.3-.3.4-.4.3-.2.4-.4.3-.4.3h-.7zm.7.2l-.4.3-.3-.4h.7zm-7-19.5h1v.6l.2.8v1.4l.2.7v.6l.2.7v.6l.3.6v1.5l.3.5v.7l.3.6.2.6.2.6.2.6.2.5.2.7.2.6.2.5.3.6.2.5.3.4.2.6.3.5.3.5.3.5.2.4.3.4.3.5.3.3-.7.6-.3-.6-.4-.4-.3-.5-.3-.5-.3-.5-.3-.6-.2-.6-.3-.5-.4-.7-.2-.5-.3-.6v-.6l-.3-.5-.3-.5-.2-.6-.2-.7-.2-.6v-.7l-.3-.6-.2-.6v-.7l-.3-.5v-.7l-.2-.7-.2-.6v-.6l-.2-.7v-1l-.2-.8v-1.5zm1-70.2l.8.3v8l-.2 2.3V492l-.2 2.7v11.6l-.2 3v19l-.2 2.2v11h-1v-20.9l.2-2.7v-14.6l.2-2.8V489l.2-2.6v-8.9l.2-2v-4.2zm0 0zm16-2.3h-1l-.4-1.3-.3-1.3-.4-1-.5-1.2-.4-1-.2-1-.4-.7-.4-.8-.4-.6-.4-.4-.4-.4-.4-.3-.3-.3h-.3l-.4-.2h-.7l-.4.3-.4.3-.5.5-.5.4-.5.5-.5.7-.5.7-.5.8-.5 1-.6 1-.5 1.2-.6 1.3-.6 1.3-.6 1.5-.6 1.6-1-.3.7-1.6.6-1.5.7-1.3.6-1.4.5-1.2.6-1 .5-1 .5-1 .5-.8.6-.7.5-.7.6-.6.6-.4.5-.4.6-.3.5-.2h1.1l.5.3.5.3.5.5.5.5.4.6.4.6.5.8.4.8.4 1 .5 1 .3 1 .4 1.4.4 1.3.4 1.4zm0 0z" fill="#21231e"/> - <path d="M368 454.8l-2.6 79.6c-.8 7 8.4 49 13.5 57.4 12.3-5.3 15-33.8 12.6-61.6-2.4-27.8.4-51.8 2.3-56.8 0-6.3-1-12.8-1-19.3-8 .5-17.2.4-25 .8z" fill="#fff"/> - <path d="M365 534.4l2.4-79.6h1l-2.5 79.6h-1zm1 0zm12.7 57l.3.8-.6-.2-.5-1-.6-1-.5-1.2-.7-1.4-.5-1.6-.6-1.6-.6-1.8-.6-2-.5-2-.6-2-.7-2.2-.6-2.2-.6-2.3-.4-2.3-.6-2.3-.5-2.3-.6-2.3-.6-2.3-.4-2.2-.5-2.2-.4-2.2-.3-2-.4-2.2-.3-2-.3-1.8-.3-1.7-.2-1.6v-1.4l-.3-1.3v-2.8h1v4.1l.2 1.5.2 1.6.3 1.7.3 1.8.3 2 .4 2 .4 2.2.5 2.2.4 2.2.4 2.3.5 2.2.4 2.3.6 2.3.5 2.4.6 2.3.7 2.2.5 2.2.6 2 .6 2.2.6 2 .6 2 .5 1.7.7 1.5.6 1.5.5 1.4.5 1.2.5 1 .5 1-.6-.3zm.3.8l-.4.2-.2-.4.6.2zm12-62h1l.3 2.5v2.7l.3 2.6v2.6l.2 2.6v12.5l-.3 2.4-.2 2.5-.2 2.3v2.3l-.4 2.3-.4 2.2-.3 2-.6 2-.4 2-.6 2-.5 1.7-.8 1.7-.6 1.5-.7 1.5-1 1.5-.7 1.3-1 1.2-1 1-1 1-1 1-1 .6-1.3.6-.3-1 1-.4 1-.7 1-.7 1-1 1-1 .7-1 .8-1.3.8-1.4.7-1.5.6-1.5.6-1.6.5-2 .5-1.7.5-2 .4-2 .3-2 .3-2 .3-2.3v-2.3l.4-2.3V558l.3-2.3V538l-.2-2.6-.2-2.6-.2-2.6zm2.4-56.8h1v.2l-.2.5-.2.7-.2.7-.2 1-.2.8-.2 1-.2 1.2v1.2l-.3 1.3-.2 1.3-.2 1.4v1.6l-.3 1.6v1.7l-.3 1.7v2l-.2 1.8v2l-.2 2V520l.2 2.5.2 2.5.2 2.6v2.5l-1 .2v-2.6l-.3-2.5-.2-2.5V520l-.2-2.5v-20.1l.2-2v-2l.3-2v-1.7l.2-1.7.2-1.8.2-1.6v-1.4l.3-1.5.2-1.3v-1.2l.3-1V477l.3-1 .2-.8.2-.7.2-.7.2-.5zm1 0v.2-.2zm-1.5-18.8v-1l.4.4v3.7l.2.6v2.5l.2.6v1.8l.2.6v2.4l.2.6v3.6l.2.6v2.4h-1V468l-.2-.5V465l-.2-.5v-1.9l-.2-.6v-1.7l-.2-.6v-3l-.2-.6V454l.5.6zm0-1h.4v.4l-.5-.4zm-24.6 1.2h-1l.4-.5h3.9l.8-.2h12.8l.8-.2h4.7l.8-.2h1.7v1h-4.1l-.7.2h-8l-.8.2h-7.1l-.8.2h-3.9l.4-.4zm-1 0v-.4h.4l-.4.4zm.5 0h.4-.5zm-.6 0v-.4h.4l-.4.4z" fill="#21231e"/> - <path d="M353 468l1.8 79.5c-.4 7 11 48.5 16.4 56.5 12.6-9.8 10-49.8 8.2-62-4-24-3.2-52-2-56.5 0-6.3-.2-13.8-.6-20.4-8 1-15.8 2-23.7 2.8z" fill="#fff"/> - <path d="M354.3 547.5l-1.7-79.6 1-.2 1.7 79.6h-1zm1 0zm15.6 56l.5 1-.7-.2-.5-1-.6-1-.6-1.2-.5-1.2-.7-1.6-.6-1.6-.7-1.8-.7-1.8-.7-2-.5-2-.7-2.2-.7-2.2-.6-2.2-.7-2.3-.7-2.2-.7-2.3-.6-2.3-.6-2.3-.5-2.3-.6-2.2-.6-2.2-.5-2-.6-2-.4-2-.4-2-.4-1.6-.3-1.6-.3-1.3-.2-1.3v-1.2l-.2-1v-.8h1v1.8l.2 1 .2 1.3.2 1.5.2 1.5.3 1.7.4 2 .4 1.8.4 2 .5 2 .6 2.2.4 2.2.6 2.3.7 2.3.6 2.3.7 2.2.6 2.3.7 2.3.7 2.3.7 2.2.7 2 .7 2.2.8 2 .7 1.8.6 1.7.8 1.7.6 1.4.6 1.3.6 1.2.5 1 .6.7h-.7zm.5 1l-.4.2-.2-.4h.7zM379 542l1-.2v1.2l.2 1.4.2 1.5.2 1.8.2 1.7v2l.3 2 .2 2v2l.2 2.3v12l-.2 2.4v2.3l-.3 2.4-.4 2.4-.3 2.4-.3 2.2-.4 2.2-.5 2.2-.4 2-.6 2-.7 2-.8 1.6-.8 1.7-1 1.5-1 1.3-1 1.4-1.2 1-.6-.8 1-1 1-1 1-1.4.8-1.4.8-1.6.8-1.7.6-1.8.6-2 .5-2 .6-2 .4-2.2.4-2.3.3-2.3.2-2.4v-2.3l.3-2.4V569l.2-2.2V560l-.2-2.3v-2.2l-.2-2v-2l-.2-2-.2-1.6-.2-1.8-.2-1.5v-1.3l-.3-1.2zm-2-56.7h1v.6l-.2.7-.2.7v1l-.2.8v2.4l-.2 1.3v2.8l-.2 1.6v15.2l.2 2v2.3l.3 2v2.4l.3 2.3v2.2l.3 2.2.4 2.3.2 2.4.3 2.2.2 2.3.3 2.2.4 2.3-1 .2-.5-2.3-.3-2.4-.3-2.3-.4-2.3-.2-2.4-.2-2.3-.2-2.3-.2-2.3-.2-2.2v-2.3l-.3-2.2V512l-.2-2v-16l.2-1.4v-1.3l.2-1.2v-2l.3-1v-.8l.2-.6v-.7.2zm1 0zm-1.2-20v-1l.5.6v3.4l.2.7v3.8l.2.6v6l.2.6v5.3h-1V480l-.2-.7v-5.7l-.2-.6v-4.5l-.2-.7v-2.4l.4.4zm0-1h.4v.6l-.5-.4zm-23.7 4v-1l.8-.2h.8l.7-.2h2.2l.7-.2h.8l.7-.2h.8l.7-.2h1.4l.7-.2h.8l.7-.2h.6l.8-.2h1.7l.6-.2h.7l.8-.2h.8l.7-.2h1.5l.8-.2h.7l.7-.2h.8l.7-.2v1h-.6l-.6.2h-.8l-.7.2h-1.6l-.7.2h-.8l-.8.2h-.8l-.7.2h-1.5l-.7.2h-.8l-.7.2h-.7l-.8.2H362l-.7.2h-.7l-.8.2h-.7l-.6.2H357l-1 .2h-.6l-.7.2h-.8l-.8.2zm.2 0zm0-1v1l-.6-.6.5-.6zm-.6.4v-.6h.5l-.4.5z" fill="#21231e"/> - <path d="M342.2 486.7l21-.5c-2 8.6-.5 35.6 3.2 56.2 3.3 19.3 8 69.3-12 81.3-12.5-26.4-3-52-9.2-75-5-24.3-6-44.6-3-62z" fill="#fff"/> - <path d="M363 486.7l-20.8.5v-1l21-.5.4.6-.5.4zm0-1h.7v.6l-.6-.6zm3.8 56.6l-1 .2-.3-2-.3-2-.3-2-.4-2-.3-2-.2-2-.2-2.2-.2-2-.2-2.2-.2-2-.2-2-.2-2-.2-2.2v-2l-.3-2v-2l-.2-2V499l-.2-1.7v-4.5l.2-1.4v-1.2l.2-1.2v-1l.3-1v-1l1 .3v.8l-.2 1v1l-.2 1.3v5.4l-.2 1.6v4.9l.2 1.8v4l.2 1.8v2l.3 2v2l.3 2 .2 2v2l.3 2.2.3 2 .2 2.2.3 2 .3 2 .3 2 .3 2.2.2 2 .3 2 .3 2zM354 624l.8-.6-.7-.2 2-1.2 1.5-1.4 1.5-1.6 1.4-1.8 1.3-2 1-2 1-2.3 1-2.6 1-2.5.6-2.8.6-2.7.4-2.8.4-3 .4-3 .3-3 .2-3v-3l.2-3v-6.2l-.2-3-.2-3v-3l-.4-3-.2-2.7-.3-2.7-.2-2.5-.4-2.5-.2-2.4-.3-2.2-.3-2-.3-2h.8l.4 1.8.3 2 .3 2.3.3 2.3.4 2.5.3 2.7.3 2.7.2 2.8.2 3 .2 2.8.2 3v15.5l-.3 3-.3 3.2-.4 3-.4 2.8-.5 3-.8 2.7-.7 2.7-.8 2.6-1 2.4-1 2.4-1.2 2.2-1.3 2-1.4 2-1.6 1.5-1.7 1.5-1.8 1.3h-.7zm.7 0l-.5.4-.3-.5h.7zm-10-75.2l1-.2.5 2.2.4 2.2.4 2.2.3 2.2.3 2.2.2 2.3v2l.2 2.4v25.4l.2 2.4v2.4l.3 2.4.3 2.4.3 2.4.5 2.4.4 2.4.5 2.4.7 2.5.7 2.4.8 2.5 1 2.5 1 2.4-.8.5-1.2-2.6-1-2.5-.8-2.6-.8-2.5-.7-2.5-.5-2.5-.5-2.4-.4-2.5-.2-2.3-.3-2.5-.2-2.4V594l-.2-2.4V564l-.2-2.3-.2-2.3-.2-2.2-.4-2.2-.3-2-.5-2.3-.5-2v-.2zm0 0zm-2.5-62.6v1l.5-.4-.3 1.6-.2 1.7-.2 1.7-.2 1.7-.2 1.7v1.8l-.3 1.8v3.5l-.2 2v7.3l.2 2v1.8l.2 2v2l.2 2 .2 2 .2 2 .2 2 .3 2 .2 2 .3 2.3.3 2 .3 2.2.4 2.2.4 2.2.4 2 .4 2.4.4 2.2-1 .2-.4-2.2-.4-2.3-.4-2.2-.4-2-.3-2.3-.4-2.2-.3-2-.3-2.2-.2-2-.3-2.2-.2-2-.2-2-.2-2v-2l-.2-2v-2l-.2-1.8v-13l.2-1.8v-1.8l.2-1.7.2-1.7.2-1.7.2-1.7.2-1.7.3-1.7.5-.4zm-.5.4v-.4h.5l-.5.4zm.5 0v-.4.5zm-.5 0v-.4h.5l-.5.4z" fill="#21231e"/> - <path d="M422 454.4c0 8.7-3.2 66.5-4 74.6-.7 8-4.5 13.6-8.4 16.6-3.4-5-5.3-11.5-5.5-19.3 0-4 2.3-58.7 3-70 7-17 11.8-17.4 15-2z" fill="#fff"/> - <path d="M418.5 529h-1v-1l.2-1v-1.5l.2-1.7v-2l.2-2v-2.3l.3-2.4v-2.5l.3-2.7.2-2.8v-3l.3-3 .2-3 .2-3v-3l.3-3.2.2-3 .2-3.2v-3l.3-3V474l.3-3v-2.5l.2-2.4V464l.2-2v-2l.2-1.8v-3.7h1v5.6l-.2 2v2l-.2 2.3v2.6l-.3 2.6-.2 2.7v2.8l-.3 3-.2 3v3l-.3 3-.2 3v3.2l-.3 3-.2 3.2-.2 3v3l-.2 2.7-.2 2.6v2.6l-.3 2.4v2.3l-.3 2v2l-.2 1.5v1.5l-.2 1.2v1zm-9.3 17l.8-.6-.7-.2.4-.2.3-.3.4-.4.3-.3.4-.3.4-.4.4-.3.3-.4.4-.4.4-.4.3-.5.4-.4.3-.6.3-.4.3-.5.3-.5.3-.5v-.5l.4-.6.2-.5.3-.7v-.6l.3-.6.2-.5.2-.7.2-.6V532l.3-.8v-.8l.2-.7v-.7h1v1.6l-.2.7-.2.7v.7l-.2.7-.2.7-.2.8-.2.6-.2.6-.2.6-.3.6-.2.6-.3.6-.3.5-.2.5-.3.5-.3.5-.5.5-.3.5-.3.4-.4.4-.4.4-.3.4-.5.4-.4.4-.2.4-.4.3-.4.4-.3.4-.4.3-.4.3h-.8zm.7 0l-.5.4-.3-.5h.7zm-6.4-19.7h1v2.8l.2.8v.7l.2.7v1.2l.3.6v.8l.2.6.2.7v.7l.3.6v.6l.3.5.2.6.2.6.2.6v.6l.3.5.3.6.2.4.2.5.3.5.3.5.2.5.3.4.4.4.3.5.3.4-.8.5-.3-.6-.4-.4-.3-.5-.3-.6-.3-.6-.3-.5-.3-.6v-.6l-.4-.5-.2-.6-.2-.6-.2-.4-.2-.6-.2-.6-.2-.6-.2-.6-.2-.7-.2-.6v-.7l-.3-.7v-.6l-.2-.7v-.6l-.2-.7v-1.4l-.2-.7v-1.5l-.2-.7v-1.5zm3-70l.8.3v-.2 2.6l-.2 1.6v2l-.2 2v2l-.2 2.4v2.5l-.2 2.6v2.8l-.3 2.8v2.8l-.2 3v2.8l-.2 3v3l-.2 2.8v3l-.3 2.7v2.7l-.2 2.7v7.3l-.2 2v3.8l-.2 1.6v3.3h-1v-6.8l.2-2V513l.2-2.4V508l.2-2.6.2-2.8v-2.8l.2-3V494l.2-3 .2-2.8v-3l.2-2.8v-3l.3-2.7V474l.2-2.5V469l.2-2.4v-4.2l.2-1.8V459l.2-1.5v-1.2zm-.2 0zm16.2-2h-1v.2l-.3-1.4-.3-1.2-.3-1.2-.4-1-.3-1-.4-1-.3-1-.4-.6-.5-.6-.4-.5-.2-.5-.4-.4h-.4l-.3-.2h-1.1l-.4.2-.5.2-.4.4-.5.5-.5.6-.6.7-.5.7-.5 1-.6.8-.5 1-.6 1.2-.7 1.2-.6 1.4-.6 1.4-.6 1.6-1-.4.7-1.6.8-1.4.6-1.4.6-1.2.6-1.2.6-1 .6-1 .6-1 .6-.7.5-.7.6-.6.6-.6.6-.4.5-.3h.6l.5-.3h1.2l.5.3.5.4.5.4.4.5.4.6.4.5.4.8.3 1 .4.8.3 1.2.3 1 .4 1.3.3 1.4.3 1.3zm0 0zm-.5 0h.6-.5zm.6 0z" fill="#21231e"/> - <path d="M385 407.2c-.6 18.7-1 59-.8 62.6.3 7.8 3.4 17.6 6.7 22.6 4-3 7.7-8.5 8.4-16.6.6-6.7.8-39.5 1-56-4.3-2.6-8.7-6-12.2-9.7l-3.2-2.8z" fill="#fff"/> - <path d="M384.7 469.8h-1v-23.4l.2-2.4v-19.6l.2-2.4v-9l.2-2v-3.8h1v7.8l-.2 2.4v9.4l-.2 2.5v12.5l-.2 2.4v25.4zm6 22.2l.5.8h-.7l-.3-.6-.3-.5-.4-.6-.4-.4-.3-.6-.4-.6-.3-.7-.3-.6-.2-.6-.3-.7-.3-.7-.3-.7-.3-.7-.3-.8-.2-.7-.3-.7-.3-.8-.2-.8-.2-.7-.2-.8v-.8l-.3-.8v-.8l-.3-.8v-.8l-.2-.8v-.8l-.2-.8v-.7l-.2-.7v-1.5h1v2.5l.2.8v.8l.3.7v.8l.2.8.2.8.2.8v.7l.2.7.3.8.2.7.2.8v.8l.4.7.2.7.3.7v.7l.4.6.3.7.3.7.2.6.3.6.3.5.3.6.4.6.3.6.3.5.3.4h-.7zm.5.8l-.4.3-.3-.3h.7zm7.7-17h1l-.2.8v.8l-.2.7v.8l-.3.7-.2.7v.7l-.2.5-.2.7-.2.6-.3.6v.6l-.4.6-.2.6-.3.5-.2.5-.3.6-.3.5-.3.5-.4.4-.4.5-.3.4-.5.6-.3.4-.4.4-.3.4-.4.4-.3.3-.3.4-.4.2-.4.3-.4.3-.6-.8.4-.3.3-.3.4-.3.4-.2.4-.4.4-.3.3-.3.4-.4.4-.4.3-.5.4-.4.3-.3.3-.5.3-.5.3-.4.3-.5.2-.6.3-.5.2-.5.3-.6.2-.6.2-.5.2-.6.2-.8.2-.6.2-.6v-.7l.3-.7v-.7l.2-.8v-.7l.2-.8zm1-55.5l.6-.8.2.4v18.8l-.2 2.2v14.6l-.2 2v8.9l-.2 1.5v4.3l-.2 1v2.6h-1V471l.2-1.5v-6.3l.2-1.8v-12l.2-2v-20.8l.2-1.7v-5.1l.2.3zm.6-.8h.2v.4l-.2-.5zm-12.4-9.8v1l.4-1 .3.4.2.5.4.3.3.3.3.5.3.3.4.3.3.4.4.4.3.3.4.4.4.3.4.3.3.3.4.3.3.4.4.3.4.3.5.3.3.2.4.2.4.3.4.3.4.3.4.3.4.3h.4l.4.4.4.3.4.2.4.2.4.3-.6.8-.4-.3-.4-.2-.4-.3-.4-.3-.4-.2-.4-.3-.4-.3-.4-.3-.4-.2-.4-.3-.4-.3-.4-.3-.4-.4-.3-.3-.4-.3-.3-.3-.4-.3-.4-.3-.5-.2-.4-.3-.2-.3-.4-.4-.4-.3-.3-.3-.4-.3-.4-.5-.4-.3-.4-.3-.3-.5-.5-.3-.3-.4-.3-.3.2-.8zm-.3.8l-1-.8h1.2l-.3.8zm-2.5-3.3h-1l1-.3.2.2.2.2v.2h.3v.3h.4v.2l.3.2.3.2v.2h.3v.2h.2v.2h.3l.2.2v.2h.2v.2l-.2.8v-1l-.3 1h-.2v-.2h-.2v-.2h-.2v-.2h-.2l-.2-.2v-.2h-.2l-.2-.2-.3-.3h-.3v-.3h-.3v-.2l-.2-.2h-.2v-.2h-.2v-.2h-.2v-.2h-.2l1-.4zm-1 0v-1.4l1 1-1 .4z" fill="#21231e"/> - <path d="M400 419.3c-.4 20-.2 51.7 0 54.3 0 7.7 2 14.3 5.4 19.3 4-3.2 8-8.8 8.8-17 .5-5 2-26.4 2-42.8-5.3-1.7-12-10.4-16.3-14z" fill="#fff"/> - <path d="M400.4 473.5h-1v-12.9l-.2-1.7v-33.7l.2-2v-4h1v14.5l-.2 2v37.1l.2.5v.3zm4.7 19l.7.8h-.7l-.3-.6-.3-.5-.3-.5-.2-.5-.3-.5-.3-.5-.2-.6-.3-.5-.2-.5-.3-.5-.2-.6-.2-.6-.2-.6-.2-.6-.2-.6-.2-.6-.2-.6v-.6l-.3-.7v-.6l-.3-.8v-.6l-.2-.7v-.8l-.2-.6v-.7l-.2-.8v-1.5l-.2-.7v-1.4h1v2.8l.2.7v.7l.2.7v.7l.2.7v.7l.2.6v.7l.3.6v.6l.3.5v.6l.3.7.3.6.2.6.2.5.2.5v.6l.4.5.2.7.3.5v.5l.4.5.2.5.3.5.2.5.3.5.3.4h-.7zm.7.8l-.4.3-.3-.4h.7zm8-17.3h1v1.7l-.3.7v.7l-.3.8v.7l-.2.7-.2.7-.2.5-.3.7v.6l-.4.6-.2.6-.3.5-.2.6-.3.6-.4.6-.2.5-.3.5-.4.5-.2.4-.4.6-.3.4-.3.5-.3.4-.4.3-.4.3-.4.4-.3.3-.5.4-.4.3-.3.3-.6-.8.5-.3.3-.3.4-.4.4-.3.3-.4.3-.4.3-.4.4-.4.3-.4.4-.4.3-.5.3-.4.4-.4.3-.5.3-.3.3-.6.3-.4.2-.5.3-.5.2-.5.3-.6.2-.6.2-.6.2-.6.2-.7.2-.7.2-.7v-.7l.3-.8v-.7l.2-.7v-.8zm2.4-42.3l.4-1 .3.5v7.9l-.2 1.6v5.1l-.2 1.6v1.7l-.2 1.7v4.6l-.2 1.6v2.9l-.2 1.3v1.4l-.2 1.3v2.5l-.2 1v2.2l-.2 1v1.6l-.2.7v1.1h-1v-2l.2-.8v-1.8l.2-1v-2.2l.2-1.2v-2.7l.2-1.3v-1.5l.2-1.4V457l.2-1.6v-1.6l.2-1.6V449l.2-1.6V443l.2-1.6V433l.5.5zm.4-1h.3v.5l-.3-.5zm-16-13.4h-1l.8-.4.5.2.4.4.5.4.5.4.5.5.4.4.4.4.5.5.4.6.5.4.4.5.5.4.5.6.5.5.5.5.5.6.6.5.5.6.7.5.5.6.5.5.6.5.5.5.5.4.6.4.4.4.5.3.4.3.5.3.4.3.5.2.4.2-.3 1-.5-.2-.5-.3-.5-.2-.6-.3-.6-.4-.6-.3-.5-.4-.6-.4-.5-.4-.6-.5-.5-.5-.5-.5-.5-.5-.6-.5-.5-.5-.7-.5-.5-.6-.5-.5-.6-.5-.5-.6-.5-.4-.5-.5-.5-.5-.5-.5-.5-.5-.5-.4-.4-.4-.5-.4-.4-.5-.6-.4-.4-.3-.4-.4.8-.3zm-1 0v-1l.8.6-.8.2z" fill="#21231e"/> - <path d="M387 405.6L373 385c-2.8 10.2-6.3 82.8-2.2 88.8.2 7.7 3 14.3 6.4 19.3 4-3 9.8-8.5 8-16.7-1.6-8.2.4-62.3 2-70.7z" fill="#fff"/> - <path d="M373.3 384.7l14.2 20.6-.8.5-14.3-20.5v-.4l1-.3zm-1 .2l.4-1 .5.7-.8.2zm-1.2 88.7h-1l.2.3-.5-.8-.3-1.2-.3-1.5v-1.8l-.3-2-.2-2.5v-2.6l-.2-2.8v-20.3l.2-3.7V431l.2-4 .2-3.6v-3.8l.3-3.7.2-3.7.2-3.4.3-3.5.2-3.2.3-3 .2-3 .3-2.5.3-2.4.2-2 .3-2 .3-1.3.4-1 1 .2-.3 1-.2 1.5-.3 1.8-.3 2-.2 2.4-.3 2.5-.3 2.8-.2 3-.3 3.3-.3 3.3-.2 3.4-.2 3.6-.2 3.7v3.7l-.3 3.8v3.8l-.2 3.7v3.8l-.2 3.6v19.6l.2 2.6.2 2.3.2 2v1.8l.4 1.5.3 1 .3.7v.2zm0-.2v.2-.2zm5.7 19.2l.6.8-.7-.2-.3-.4-.3-.6-.3-.5-.3-.6-.3-.5-.2-.6-.3-.6-.3-.5-.3-.6-.4-.5-.2-.6-.3-.6v-.6l-.4-.6-.2-.6-.2-.6-.3-.6-.3-.6-.2-.7v-.6l-.3-.5-.2-.7v-.7l-.3-.6v-.6l-.2-.7v-.6l-.2-.7v-1.5l-.2-.7v-.7h1v1.4l.2.7v.6l.2.6v.7l.2.6v.7l.2.6.2.6v.6l.3.6.2.7.2.6.2.7v.6l.3.6.2.5.3.6.2.6.3.6.2.5.3.6.3.5.3.5.3.6.3.4.2.5.3.4.3.4.3.5.4.5h-.7zm.6.8l-.4.3-.4-.5.7.2zm7.4-17l1-.3v.8l.2.7v3l-.2.7-.2.7v.7l-.3.7-.2.6-.2.6-.2.6-.3.6-.3.5-.4.6-.3.4-.4.5-.5.4-.3.5-.4.4-.4.4-.4.4-.5.5-.4.4-.3.5-.4.3-.4.4-.5.3-.4.3-.3.4-.4.3-.6-.8.4-.3.5-.3.4-.2.3-.4.3-.3.4-.3.4-.4.4-.3.4-.4.4-.5.4-.3.4-.4.4-.5.3-.5.5-.5.3-.5.3-.5.4-.5.3-.5.2-.6v-.6l.3-.5.2-.5.2-.7v-.6l.2-.6v-3.1l-.2-.7v-.6zM387 406v-1l.6.7-.2 1-.2 1v1.4l-.3 1.7-.2 2-.2 2v2l-.3 2.4v2.5l-.3 2.6v2.8l-.2 2.7-.2 2.8v3l-.2 2.8v3l-.2 3v8.5l-.2 2.8v13.5l.2 2v1.5l.2 1.4v1l.2 1-1 .2v-1l-.2-1v-1.5l-.2-1.7v-4l-.2-2v-15.5l.2-3V441l.2-3v-2.8l.2-3 .2-2.7v-2.8l.2-2.7.2-2.5V419l.3-2.3v-2.2l.3-2v-2l.3-1.5.3-1.4v-1.2l.3-1 .5.7zm0-1h.7v.7l-.6-.6zm0 0v1l-.3-.2.4-.7zm0 1h-.2v-.2l.3.3z" fill="#21231e"/> - <path d="M358 451.2c-.8 11.3-1.2 19-1 23 .2 7.6 2 14.2 5.5 19.2 4-3 9-8.5 8.4-16.6-2-31.5 1.4-61 5.4-89.6-3.4-2.5-9-5-12.5-7.6-6.8 38.3-9 62-6 71.6z" fill="#fff"/> - <path d="M357.4 474h-1v-7.4l.2-.7V463l.2-.7V459l.2-1v-1.8l.2-1v-3l.2-1h1v2l-.2 1v2l-.2 1v2.8l-.2.7v3.2l-.2.7v4.2l-.2.6v4.3zm4.8 19l.6.8h-.7l-.3-.6-.3-.5-.3-.5-.2-.5-.2-.5-.3-.5-.3-.6-.2-.4-.3-.6-.2-.5-.3-.6-.2-.7-.2-.6-.2-.6-.2-.5-.2-.6v-.7l-.3-.6v-.7l-.3-.6v-.7l-.2-.6-.2-.6v-.7l-.2-.7v-1.4l-.2-.7v-1.5l-.2-.7v-.7h1v2.2l.2.7v1.2l.2.7v.6l.2.6v.7l.2.5.2.7v.6l.3.6v.6l.3.6.2.6.2.6.2.6.2.6.2.5.2.6.2.6.3.6.2.5.2.5.2.5.3.5.3.5.3.5.3.5.3.4h-.8zm.6.8l-.4.3-.3-.3h.8zm7.6-17h1v3.7l-.3.7v.6l-.2.7v.7l-.4.6-.2.6-.2.6-.3.6-.3.6-.3.5-.2.6-.3.5-.4.5-.2.5-.4.4-.4.5-.4.4-.3.6-.4.4-.5.4-.4.4-.3.4-.4.3-.4.3-.5.4-.4.3-.2.3-.6-.8.3-.3.4-.3.3-.3.3-.2.4-.4.4-.3.4-.3.4-.4.3-.4.4-.5.3-.4.3-.4.4-.4.3-.5.3-.5.3-.5.2-.5.3-.5.3-.5.2-.6.3-.6.2-.5.2-.6.2-.8v-.6l.2-.6v-.7l.2-.6v-3.1zm5.7-89.2l.7-.8.2.5-.5 2.6-.4 2.6-.3 2.7-.3 2.7-.4 2.7-.3 2.7-.3 2.7-.4 2.8-.3 2.8-.3 2.7-.3 2.8-.2 2.8-.2 2.8-.3 2.7-.2 2.8v3l-.3 2.7-.2 2.8-.2 2.8v2.8l-.2 3v8.5l-.2 3v8.6l.2 3v3l.2 2.8.2 3h-1l-.2-3v-3l-.2-2.8v-5.8l-.2-3V451l.2-2.8v-3l.2-2.7v-2.7l.3-3 .2-2.7.2-2.8V428l.3-2.7.3-2.8.3-2.8V417l.4-2.8.3-2.7.3-2.8.4-2.7.3-2.7.4-2.7.4-2.7.4-2.8.3-2.7.5-2.7.4-2.7v.6zm.7-.8l.2.2v.3l-.3-.5zm-12.3-7l-1-.3.8-.3.3.2.4.2.2.3h.3l.4.3.3.3.4.2.4.2.5.3.4.2.3.2.4.3.4.2.5.3.5.2.4.2.4.2.4.2.5.3.4.2.5.2.4.2.3.2.4.3h.4l.5.4.4.2.3.2.3.3.4.3.3.3.4.2-.6.8-.2-.2-.4-.3h-.3l-.3-.3-.3-.3-.4-.2-.4-.2-.4-.3-.4-.2-.4-.2-.4-.3-.4-.2-.4-.3-.5-.2-.4-.2-.4-.2-.5-.2-.5-.3-.4-.2-.4-.2-.4-.2-.4-.2-.4-.3h-.4l-.4-.4-.4-.2-.4-.2-.4-.3-.4-.3-.3-.3-.4-.2-.4-.2.8-.3zm-1-.3l.2-.8.6.5-.8.3zm-6 71.4l.8.6-.8-.2-.3-1v-1l-.3-1-.2-1.3v-1l-.2-1.4V443l-.2-1.6v-5l.2-1.8v-2l.2-2 .2-2 .2-2.3.2-2.3.2-2.5.3-2.4.3-2.5.3-2.6.4-2.8.4-2.8.4-3 .4-2.8.5-3 .6-3.2.5-3.2.6-3.3.6-3.5.6-3.5.6-3.5 1 .2-.6 3.5-.6 3.5-.6 3.4-.5 3.3-.4 3.3-.5 3-.4 3-.4 3-.4 3-.4 2.7-.3 2.7-.3 2.7-.3 2.5-.2 2.4-.3 2.4-.3 2.3v2.2l-.3 2v2l-.2 2v9.8l.2 1.4v1.2l.3 1 .2 1.2v1l.4 1-1-.3zm.8.6l-.5.6-.3-.8.8.2zm0 0l-.7-.7 1 .3-.3.3zm-.7-.7l1-1v1.3l-1-.4z" fill="#21231e"/> - <path d="M343.6 471.8l4 14.7c.2 7.7 5 14 8.3 19 4-3 7.5-8 6.5-16-5.8-46.5-3.8-77.3 6-115-22 15-32.3 46.6-25 97.3z" fill="#fff"/> - <path d="M347 486.6l-3.8-14.7 1-.3 3.8 14.6-1 .3zm1-.3zm7.6 19l.6.7h-.7l-.3-.6-.3-.5-.4-.5-.4-.5-.3-.5-.5-.6-.3-.6-.4-.5-.3-.7-.4-.5-.2-.6-.4-.5-.3-.6-.2-.5-.4-.6-.3-.7-.2-.6-.3-.6-.3-.5-.3-.7-.3-.6-.3-.7-.2-.7-.2-.6-.2-.7-.2-.7-.2-.7v-.6l-.2-.7v-.8l-.2-.8v-.7h1v1.4l.2.7v.7l.2.7.2.6v.6l.3.7v.5l.4.7.2.6.3.6v.6l.4.7.3.6.3.6.3.4.3.6.4.6.3.6.3.5.4.6.3.5.4.5.3.6.3.4.4.5.3.4.4.5.3.4.3.5.4.3h-.8zm.6.7l-.4.3-.3-.4h.8zm5.8-16.5h1v5.5l-.2.6v.7l-.3.6v.4l-.3.6-.2.6-.3.5-.2.6-.2.5-.3.6-.3.5-.3.6-.3.4-.2.4-.3.4-.4.5-.2.3-.3.4-.4.4-.3.3-.3.4-.4.4-.4.3-.3.3-.7-.8.4-.3.4-.4.3-.3.4-.3.4-.3.3-.4.4-.3.4-.4.3-.4.3-.4.3-.4.3-.4.3-.4v-.5l.4-.3.2-.5.2-.5.2-.5.2-.5.2-.5.2-.6v-.6l.2-.5v-.6l.2-.7v-5.1zm6.8-114.7l-.6-1 .8.7-1 3.5-.8 3.5-.8 3.4-.7 3.4-.7 3.4-.7 3.3-.6 3.5-.6 3.4-.4 3.2-.5 3.3-.3 3.4-.4 3.2-.4 3.4-.4 3.3-.2 3.3-.2 3.4-.2 3.4v3.6l-.2 3.5v14.7l.3 3.7.3 4 .2 3.8.3 4 .4 3.8.3 4 .5 4.2.4 4.3.6 4.4h-1l-.6-4.2-.4-4.3-.5-4.2-.3-4-.4-4-.3-4-.2-3.8-.2-3.8v-3.7l-.2-3.7v-14.3l.2-3.4.2-3.4.2-3.4.2-3.4.3-3.3.3-3.4.4-3.3.4-3.3.6-3.4.5-3.3.7-3.4.6-3.3.7-3.4.7-3.4.8-3.5.8-3.4.8-3.5 1-3.6.8.6zm-.6-1l1-.6-.2 1.3-.8-.6zm-24 98h-1l-.7-4.6-.5-4.6-.5-4.5-.3-4.3-.3-4.2-.2-4.2v-8l.2-3.8.2-3.7.3-3.7.4-3.4.5-3.4.6-3.3.8-3.3.7-3 1-3 1-3 1-2.8 1-2.8 1.2-2.5 1.3-2.5 1.4-2.4 1.5-2.3 1.4-2 1.6-2.2 1.7-2 1.7-2 2-1.6 1.8-1.7 2-1.6 2-1.5.6.8-2 1.4-2 1.6-1.8 1.6-1.8 1.7-1.8 2-1.6 2-1.6 2-1.5 2-1.4 2.3-1.4 2.4-1.4 2.4-1.2 2.6-1 2.7-1 2.7-1 3-1 3-.7 3-.7 3-.6 3.4-.5 3.3-.5 3.5-.3 3.6-.3 3.7-.2 3.8v12l.4 4.4.3 4.3.5 4.5.5 4.6.6 4.7zm-1 0zm.4 0h.5-.4zm-.4 0z" fill="#21231e"/> - <path d="M344.8 486.2l-20.3-6.7c-2.5 20.2 1.4 45.6 7 79 4.6 29 2 51.6-1.5 66.2 21.6-3 30.7-30.7 20-83-3-13.7-5.8-31.3-5.2-55.5z" fill="#fff"/> - <path d="M324.7 479l20.2 6.7-.4 1-20.2-6.7-.3-.6.7-.4zm-.6.4v-.6l.7.2-.6.4zm8 79l-1 .3-.6-3-.5-3.2-.6-3-.5-3-.5-3-.5-2.8-.4-3-.4-2.7-.4-2.7-.4-2.7-.4-2.7-.3-2.7-.4-2.6-.3-2.6-.3-2.4-.2-2.5-.3-2.3-.2-2.4-.2-2.4v-2.4l-.3-2.3V500l-.2-2v-10.7l.2-2 .2-2v-2l.4-2 1 .3-.2 2-.2 1.8v2l-.2 2v4l-.2 2v4.3l.2 2.3v2.3l.2 2.3.2 2.3.2 2.2.2 2.4.3 2.4.2 2.5.3 2.5.3 2.5.3 2.6.4 2.8.4 2.6.3 2.7.4 3 .6 2.7.4 2.8.4 3 .5 3 .4 2.8.5 3 .4 3 .5 3.2zm-2 65.8v1l-.5-.6.4-1.4.2-1.4.3-1.5.3-1.5.3-1.6.4-1.6.3-1.7.2-1.8.2-1.7.2-1.8.2-2 .2-1.8v-2l.3-2 .2-2v-2l.2-2v-13.4l-.2-2.3-.2-2.4-.2-2.4-.2-2.5-.3-2.5-.3-2.6-.3-2.6-.4-2.6-.4-2.7 1-.2.3 2.7.4 2.7.3 2.5.3 2.6.3 2.6.2 2.5.2 2.6v2.4l.3 2.4v6.8l.2 2.3v4.3l-.2 2v2l-.2 2v2l-.2 2-.2 2-.2 1.8-.3 1.8v1.8l-.4 1.7-.2 1.8-.3 1.6-.2 1.6-.3 1.5-.3 1.5-.4 1.5-.3 1.4-.5-.8zm0 1h-.6v-.6l.7.6zm19.4-83.5l1-.2 1 5 .8 4.6.7 4.6.5 4.5.5 4.3.4 4 .3 4 .2 4v7.2l-.2 3.4-.2 3.2-.4 3-.4 3-.6 3-.6 2.6-.7 2.6-1 2.4-1 2.3-1 2.2-1 2-1.2 1.8-1.3 1.7-1.4 1.5-1.4 1.4-1.5 1.3-1.5 1-1.8 1-1.8.7-2 .7-2 .5-2 .2v-1l2-.3 1.8-.6 1.8-.6 1.7-.8 1.6-1 1.5-1 1.5-1 1.4-1.5 1.3-1.5 1.3-1.6 1-1.8 1.2-2 1-2 1-2.2.7-2.3.6-2.4.7-2.7.5-3 .4-2.8.4-3 .2-3.3v-3.5l.2-3.5v-3.7l-.3-3.8-.3-4-.3-4-.4-4.3-.7-4.4-.8-4.5-.8-4.7-1-5zm-4.8-55l.3-1 .3.5V503l.2 2 .2 1.8v2l.2 1.8v1.8l.2 1.8.2 1.7.2 1.8.2 1.7.2 1.7.2 1.6.2 1.6.2 1.6.2 1.5.3 1.5.3 1.5.3 1.5.2 1.4.3 1.4.3 1.4.3 1.4.3 1.3v1.3l.4 1.2-1 .2-.2-1.3-.3-1.3-.4-1.2-.2-1.4-.3-1.4-.2-1.4-.2-1.4-.3-1.5-.2-1.5v-1.5l-.4-1.6-.2-1.5-.2-1.6-.2-1.7-.2-1.7-.2-1.7-.2-1.8-.2-1.8v-1.7l-.3-2-.2-1.7v-2l-.3-1.8v-4l-.2-2v-13l.3.5zm.3-1l.3.2v.2l-.4-.5z" fill="#21231e"/> - <path d="M343.6 584h1v.7h-.8v-.2h-.2v-.4zm-4.3-40l1-.4.4 1.2.2 1.2v1l.4 1.3.2 1.3.2 1.2.2 1.2.2 1.2.2 1.3.2 1.3.2 1.2.2 1.3.2 1.3.2 1.2.2 1.3v1.4l.3 1.3v2.6l.3 1.3v1.3l.2 1.2v2.6l.2 1.3v9.1h-1v-7.6l-.2-1.2v-2.7l-.2-1.3V570l-.2-1.3v-1.3l-.2-1.3v-1l-.3-1.4v-1.3l-.3-1.3-.2-1.3v-1.2l-.3-1.3-.2-1.3-.2-1.3-.2-1.3v-1.2l-.4-1.2-.2-1.2-.2-1.2-.2-1.2-.3-1.2-.2-1.2-.2-1.2zm-5.5-50.4h1.2v6.4l.2 1.5v3.3l.2 1.5v1.6l.2 1.5v1.6l.3 1.5v3.1l.3 1.5.2 1.7v1.5l.3 1.6.2 1.5.2 1.6.2 1.4.2 1.6.3 1.5v1.6l.4 1.6.2 1.6.3 1.6.2 1.5.3 1.6.3 1.5.3 1.5.4 1.6-1 .3-.5-1.7-.4-1.6-.3-1.6-.3-1.5-.3-1.5-.2-1.6-.3-1.6-.2-1.5-.3-1.6-.2-1.6-.2-1.4-.3-1.6-.2-1.5-.2-1.6v-1.7l-.3-1.5-.2-1.6v-1.5l-.2-1.6v-1.4l-.2-1.6-.2-1.6V508l-.2-1.7V503l-.2-1.4v-6.4l-.2-1.6zm1.2 0h-1.2v-.2h.2v-.2h.2v-.2h.8v.2h.2v.4z" fill="#21231e"/> - <path d="M344 367.3l13.2 2.2-4.6 23.3c-5 24.3-8.2 53-4.5 84.2 1.5 11.7 4 21.2 7.6 28.5-14.6-1.6-24-15.8-22.7-40.6-2.6-29-1.5-52 3.2-69.4 1.4-5 5.8-24.2 7.8-28.3z" fill="#fff"/> - <path d="M357 370l-13-2.3v-1l13.3 2.3.4.6-.6.4zm.3-1h.5v.6l-.5-.6zm-4.2 24l-1-.3.2-.3v-.4l.2-.5v-.6l.2-.7v-.6l.3-.7v-.8l.2-.8v-1l.3-.7.2-1 .2-1v-.8l.2-1 .2-1 .2-1 .2-1 .2-1 .2-.8v-1l.3-.7.2-1v-.7l.3-.7v-.7l.3-.6v-.6l.2-.5v-.4l.2-.3v-.3l1 .2v.6l-.2.5v.5l-.3.6v.5l-.2.7-.2.8-.2.8v1l-.3.7-.2 1v.8l-.2 1-.2 1-.2 1-.2.8-.2 1-.2 1v1l-.3 1-.2.7-.2 1v.7l-.2.7v1l-.2.5-.2.6v.7l-.2.5v.7zm-4.4 84h-1l-.3-2.8-.3-3-.3-3-.2-2.8v-2.8l-.3-3V457l-.2-3v-11l.2-2.7v-2.7l.2-2.7.2-2.8.2-2.6.2-2.6.3-2.6.2-2.6.3-2.6.3-2.5.4-2.5.4-2.5.4-2.5.3-2.4.4-2.4.3-2.4.5-2.4.4-2.3.5-2.3.4-2.3 1 .2-.4 2.2-.4 2.3-.5 2.3-.4 2.4-.4 2.4-.5 2.4-.4 2.4-.2 2.4-.4 2.5-.3 2.5-.2 2.5-.3 2.6-.3 2.5-.2 2.5-.2 2.7-.2 2.6-.2 2.6v2.6l-.2 2.7v2.7l-.2 2.7v11.5l.2 3v2.7l.3 3 .2 2.7.3 3 .3 2.8.3 3zm7 29v-1l-.4.8-.4-.7-.3-.6-.3-.8-.4-.7-.3-1-.3-.6-.3-.8-.4-.8-.3-.8-.2-.8-.2-.8-.3-1-.2-.7-.3-1-.2-.8-.3-1-.2-1-.2-.8v-1l-.3-1-.2-.8-.2-1-.2-1v-1l-.3-1-.2-1v-1l-.3-1-.2-1v-1l-.2-1.2-.2-1 1-.2v1l.3 1v1.2l.2 1v1l.3 1 .2 1 .2 1v1l.2 1 .2 1 .2 1 .2 1 .3.8.3 1 .2.8.2 1 .3.7.2 1 .3.7.2.8.3 1 .3.7.3.8.3.7v.8l.4.8.4.7.3.7.4.7.3.6.3.7-.5.7zm.4-.7l.4.8h-1l.6-.7zM332.4 465l1-.2v8.8l.2 2 .2 2 .3 2 .4 1.8.4 1.7.4 1.8.5 1.7.5 1.5.6 1.5.6 1.5.7 1.3.8 1.3.7 1.3.8 1 1 1 .8 1.2 1 1 1 .8 1 .8 1 .8 1 .7 1.2.6 1.2.4 1.2.5 1.2.3 1.2.3 1.3.3h1.4l-.2 1h-1.3l-1.4-.4-1.3-.4-1.3-.4-1.2-.5-1.2-.5-1.2-.7-1-.6-1.2-.8-1-.8-1-1-1-1-1-1-1-1.2-.7-1.2-.8-1.3-.8-1.2-.7-1.4-.7-1.5-.5-1.6-.6-1.6-.5-1.7-.4-1.6-.4-1.8-.3-2-.2-1.8-.2-2-.2-2v-8.9zm1-.2zm2.3-69.4l1 .3-.5 1.6-.4 1.7-.4 1.7-.3 1.7-.3 1.8-.3 1.8-.3 1.8-.2 2-.2 1.8-.3 2-.2 2v2l-.3 2v2l-.2 2-.2 2.3v4.3l-.2 2.2v9.6l.2 2.5v2.4l.2 2.5v2.5l.2 2.6.2 2.6.2 2.5.2 2.6.2 2.8h-1l-.2-2.6-.2-2.6-.2-2.7-.2-2.7v-2.5l-.2-2.6v-2.5l-.2-2.4v-18.5l.3-2v-2.2l.3-2v-2.2l.3-2 .3-2 .3-2 .2-1.8.3-2 .4-1.8.4-1.8.3-1.8.5-1.7.4-1.7.3-1.7.4-1.6zm8.3-28.6v1l.4-.3-.2.4-.2.4-.2.6-.2.6-.3.7-.2.8-.2 1-.2.8-.3 1-.3 1-.2 1-.3 1-.3 1-.3 1.2-.4 1-.3 1.2-.3 1-.2 1.2-.3 1-.3 1.2-.3 1-.3 1-.3 1-.2 1-.3 1-.3 1-.2.8-.2.8-.2.7v.6l-.2.6v.5l-1-.3v-.5l.2-.7.2-.6.2-.8v-1l.4-.7.2-1 .2-.8.3-1 .2-1 .3-1 .2-1.2.3-1 .3-1.2.3-1 .4-1 .2-1.2.3-1 .2-1.2.3-1 .3-1 .3-1 .4-1 .2-1 .3-1v-.8l.4-.8.2-.7.3-.7v-.6l.3-.5.2-.5.5-.2zm-.5.2l.2-.3h.3l-.5.3zm.5.3v-.5.5zm-.5-.3l.2-.3h.3l-.5.3z" fill="#21231e"/> - <path d="M336 370.4l6.4 7.4c-1.8 1.4 1.3 7-.4 18-1 6.4-4.8 13.8-5.6 22-2.5 26.5-2.5 59.8 5.4 81-14.5-1.6-19.5-14.8-20-39.6-.4-20.6-.4-44.7 4.7-72.7 1-6.5 4.2-11.7 9.4-16z" fill="#fff"/> - <path d="M342 378.2l-6.5-7.5.8-.6 6.5 7.5v.7h-.7zm.8-.7l.4.4-.5.2v-.7zm-.3 18.5h-1l.2-1.2v-1l.2-1V385l-.2-.6v-1.2l-.2-.6v-1l-.2-.4v-2.8l.2-.3.3-.4v-.2l.7.8v.2h-.2v.5h-.2v2.2l.2.4v1.1l.2.6v1.1l.2.7v8.1l-.2 1v1l-.3 1zm0 0zm-5.6 21.7h-1v-1.8l.2-.7.2-.7v-.7l.3-1v-.6l.3-.8.2-.7.2-.8.2-.7.2-.7.2-.7.2-.6.2-.7.2-.7.3-.7v-.7l.3-.6.2-.7.2-.7.2-.6v-.7l.3-.6.2-.6.2-.5.2-.7v-.6l.2-.6v-.6l.2-.6v-.5h1v1.2l-.3.6v.7l-.2.6v.7l-.3.7-.2.6-.2.6v.7l-.3.7-.2.6-.3.7-.2.6-.2.6-.2.7-.2.7-.2.7-.3.7-.3.7-.2.8-.2.7-.2.7v.7l-.2.6-.2.7v.7l-.3.8v.7l-.2.7v1.5zm4.8 81.6v-1l-.4.7-.8-2-.6-2-.7-2.3-.6-2.2-.5-2.3-.5-2.4-.5-2.4-.4-2.4-.4-2.5-.4-2.5-.3-2.5-.3-2.6-.2-2.7-.2-2.7-.2-2.6v-2.7l-.2-2.7V455l-.2-2.8v-10.9l.2-2.7V436l.2-2.8v-2.7l.3-2.6.3-2.7.2-2.6.2-2.6.2-2.4h1l-.3 2.6-.2 2.6-.2 2.5-.2 2.6v2.6l-.2 2.6v2.7l-.2 2.6v2.7l-.2 2.7V455l.2 2.7v2.7l.2 2.7.2 2.5.2 2.7.2 2.6.3 2.5.3 2.6.4 2.4.4 2.4.4 2.5.4 2.3.5 2.4.7 2.2.6 2.2.6 2.2.6 2 .7 2-.5.7zm.5-.6l.3.7h-.8l.5-.7zm-21-39.5h1v2.2l.2 2.3v2l.2 2.2.2 2v2l.3 1.7.3 1.8.3 1.8.2 1.6.4 1.5.4 1.6.4 1.5.5 1.4.4 1.2.6 1.3.6 1.2.6 1 .7 1 .6 1 .8 1 .8 1 .8.6 1 .7 1 .7 1 .6 1 .5 1 .4 1 .4 1.3.3 1.3.2 1.3.2-.2 1-1.4-.2-1.3-.3-1-.4-1.3-.4-1.2-.5-1-.6-1.2-.5-1-.7-1-.7-.8-.7-1-1-.7-1-.7-1-.6-1-.7-1.2-.6-1-.5-1.4-.5-1.3-.5-1.5-.5-1.5-.4-1.5-.3-1.7-.4-1.5-.4-1.8-.3-1.8-.2-2v-2l-.3-2v-2l-.2-2.3v-2.2l-.2-2.3zm4.7-72.8l1 .2-.5 2.6-.4 2.6-.3 2.5-.4 2.6-.3 2.4-.4 2.5-.3 2.4-.3 2.4-.2 2.4-.2 2.5-.3 2.3v2.4l-.3 2.4-.2 2.3v2.4l-.2 2.2v2.3l-.2 2v4.5l-.2 2.2V459h-1v-26.9l.2-2.2v-2l.2-2.4v-2.3l.2-2.3.2-2.3.2-2.4.2-2.3.2-2.4.2-2.5.3-2.3.3-2.4.3-2.5.4-2.5.3-2.6.4-2.5.4-2.6.6-2.6.4-2.6zm1 .2zm9.3-16.5l-.8.7h.7l-.4.5-.5.4-.5.4-.4.4-.4.5-.4.3-.4.4-.4.5-.4.4-.4.5-.3.5-.4.5-.3.5-.3.4-.3.4-.3.5-.2.4-.3.5-.2.4-.3.5-.2.4-.2.6-.2.5-.2.5-.2.6-.2.5-.2.7v.5l-.3.6v.6l-.2.6v.6l-1-.2v-.6l.2-.6.2-.6v-.6l.3-.6v-.6l.3-.5.2-.6.2-.6.2-.4.3-.6v-.5l.4-.5.2-.6.3-.5.2-.6.3-.5.3-.6.4-.5.3-.6.4-.5.2-.6.4-.4.4-.5.4-.4.4-.4.5-.4.4-.5.5-.4.4-.4.5-.6.6-.4h.7zm-.7 0l.4-.3.3.4h-.7z" fill="#21231e"/> - <path d="M372.3 390l-13.4-1.6c-2.6 12.7-4.5 21.7-5 26.2-1 9 1.8 17 5 23 5-3 7.2-9.4 9.2-18.6 2-9.2 2.7-19.2 4-29z" fill="#fff"/> - <path d="M359 388l13.3 1.5v1l-13.5-1.6-.4-.7.5-.4zm-.6.3v-.4h.5l-.6.3zm-4 26.4h-1l.2-.6v-.8l.2-.6v-1l.2-.6v-.7l.3-.6v-.7l.2-.7v-.7l.3-.7v-1l.2-.7.2-.8.2-1v-.7l.3-1 .2-.8v-1l.2-1 .2-1 .2-1 .2-1 .2-1 .3-1 .2-1 .2-1.2.2-1.2v-1l.4-1.3 1 .2-.3 1.2v1l-.3 1.3-.3 1-.2 1.2-.2 1-.2 1-.2 1-.2 1-.2 1-.2 1v1l-.3 1-.2.8-.2.8v1l-.3.7v.8l-.3.7v.8l-.2.7-.2.7v.6l-.2.7v1.3l-.2.5v1.1l-.2.5v.9zm4.3 22.6l.5.8h-.7l-.3-.7-.3-.6-.4-.6-.3-.5-.3-.6-.2-.7-.3-.7-.2-.6-.3-.7-.2-.7-.3-.7-.2-.8-.2-.7v-.7l-.3-.7-.2-.7-.2-.7v-.8l-.3-.7v-.7l-.2-.8v-.8l-.2-.7v-.8l-.2-.8v-6.1h1v6.6l.2 1v1.4l.3.7v1.6l.3.8.2.7v.8l.3.7.2.7.3.7.2.6.2.7.2.6.2.6.2.6.3.7.3.5.2.6.3.7.3.6.3.6.3.5-.7-.2zm.5.8l-.5.4-.2-.5h.7zm8.6-19h1l-.3 1-.2.8-.2 1v.7l-.3.8-.2.7-.2.8-.2.7v.8l-.4.7-.2.7-.3.6v.7l-.4.6-.2.7-.3.6-.2.5-.3.5-.3.6-.3.5-.4.7-.3.5-.4.5-.5.4-.3.6-.4.4-.4.4-.4.4-.5.3-.4.5-.4.3-.4.3-.5-.7.4-.3.5-.3.4-.3.3-.4.4-.3.4-.4.4-.4.4-.5.3-.4.4-.4.4-.5.3-.4.4-.5.2-.4.3-.6.2-.5.3-.6.2-.7.3-.7.2-.6.3-.7.2-.6.2-.7v-.8l.3-.7.3-.7.2-.8.2-.8.2-.8.2-.8.2-.8.2-1zm4.5-28.5v-1l.5.5v1l-.3 1v.8l-.2 1v1l-.2.8v1l-.2.8v1l-.2 1v.8l-.2 1v1l-.2.8v1l-.2.8v1l-.2.8v1l-.2 1-.2.8v1l-.2.8-.2 1v.8l-.2 1-.2.8-.2.8v1l-.3.8v1l-.3.7h-1l.3-1v-.8l.3-1 .2-.7v-1l.3-.8v-1l.3-.8.2-1v-1l.3-.8v-1l.2-.8v-1l.2-.8v-1.8l.2-1v-1l.2-.8v-1l.2-.8v-1l.3-1v-1.8l.2-1v-.8l.2-1v-.8l.3-1v-1l.6.7zm0-1h.6l-.2.5-.5-.5zm0 0v1-1zm0 1z" fill="#21231e"/> - <path d="M407 418.6h-11.8c-.4 11-.7 18.5-.5 22.3.4 7.5 2.3 14 5.5 18.7 3.6-3 7-8.3 7.6-16.2.6-8-.6-16.5-.7-25z" fill="#fff"/> - <path d="M395.2 418.2h12v1h-12l-.5-.5.5-.5zm-.5.5v-.5h.5l-.5.5zm.5 22.2h-1v-11.4l.2-.8v-4.4l.2-.8v-5h1v7.8l-.2.7v5.6l-.2.7v7.7zm4.7 18.4l.6.7h-.8l-.3-.5-.3-.4-.3-.4-.4-.5-.2-.4-.3-.5v-.4l-.4-.6-.2-.5-.3-.5v-.6l-.3-.6-.2-.5-.2-.6-.2-.6v-.5l-.2-.6-.2-.7-.2-.6v-.6l-.2-.6-.2-.6v-.7l-.2-.5v-.7l-.2-.7v-.5l-.2-.7v-2.6l-.2-.7h1v1.1l.2.7v1.4l.2.7v.7l.2.6v.7l.2.6v.6l.3.6v.7l.3.6v.7l.3.5v.6l.2.6.2.5.2.5.2.5.3.6.3.5.2.6.3.5.2.6.3.5.2.6.3.5.3.6.4.4.2.5h-.7zm.6.7l-.5.5-.2-.5h.8zm6.7-16.6h1v1.6l-.2.7v1.4l-.3.8v.6l-.3.7-.2.7-.2.6-.2.6-.2.5-.2.5-.3.6v.5l-.4.7-.2.5-.3.5-.2.5-.3.4-.3.5-.3.5-.4.4-.3.3-.4.4-.4.4-.3.5-.4.3-.4.4-.4.3-.3.3-.4.3-.7-.6.2-.3.4-.2.3-.3.2-.4.3-.2.4-.3.2-.4.3-.3.3-.4.3-.4.4-.5.3-.4.2-.4.2-.4.3-.5.2-.5.3-.5.2-.5.3-.5.2-.6.2-.4v-.6l.3-.6v-.6l.3-.6v-.7l.3-.6v-1.4l.2-.7V444zm0-24.3v-1l.4.6v5.6l.2 1v4.6l.2.8v2.8l.2.8v9.2h-1v-11.8l-.2-.8V429l-.2-1v-3l-.2-1v-5.3l.4.5zm0-1h.4v.6l-.5-.5z" fill="#21231e"/> - <path d="M420 424.2l-12 .6c0 11 0 18.4.3 22.2.7 7.6 2.8 14 6.2 18.6 3.5-3 6.8-8.6 7-16.5.3-8-1-16.3-1.5-24.8z" fill="#fff"/> - <path d="M408 424.3l12-.6v1l-12 .6-.4-.5.5-.5zm-.4.5v-.5h.5l-.4.5zm1.2 22.2h-1v-4l-.2-.6v-17.8h1V445l.2.4v1.6zm5.4 18.2l.6.8h-.7l-.2-.5-.3-.5-.3-.5-.3-.5-.4-.5-.3-.5-.3-.5-.2-.5-.3-.5-.3-.5-.2-.6-.2-.5-.3-.7-.2-.6-.2-.6v-.4l-.3-.6-.2-.6v-.7l-.3-.6-.2-.5v-.6l-.3-.8v-.6l-.2-.7v-.8l-.2-.6v-.7l-.2-.8v-2h.8v.7l.2.7v1.4l.2.7.2.7v.7l.2.7v.6l.3.6v.7l.2.6v.5l.3.6.2.7.2.5v.6l.3.6.2.5.2.5.2.5.2.5.2.6.2.6.3.5.2.6.2.4.3.5.3.5.3.4.3.5.3.3h-.8zm.6.8l-.4.4-.3-.5h.8zm6.2-17h1v2.3l-.2.7v.7l-.2.7-.2.6v.7l-.3.6v.6l-.2.5-.2.6-.2.7-.2.6-.3.5-.3.6-.3.5-.2.4-.3.5-.4.4-.3.4-.3.5-.3.4-.3.4-.3.5-.2.4-.3.3-.3.4-.4.3-.3.4-.3.3-.4.3-.6-.8.3-.3.3-.4.3-.3.4-.3.3-.4.4-.3.4-.4.2-.5.3-.4.2-.3.3-.4.3-.5.2-.4.3-.5.2-.6.3-.5.2-.6.2-.5.2-.6.2-.6.2-.6.2-.5.2-.6v-.5l.3-.7v-.6l.2-.7v-.6l.2-.8V449zm-1-25.3v1l.5-.5v2.4l.2.8v1.5l.2.7v3.4l.2.7v1.5l.2.8v.8l.2.8v2.5l.2.7v2.3l.2.8v5.3h-1v-7.4l-.2-.7v-1.6l-.2-.8V437l-.2-1v-1.5l-.2-.7v-1.6l-.2-.8v-1.6l-.2-.8v-1.6l-.2-.8v-2.2l.4-.6zm-.5.6v-.6h.5l-.5.6zm.5.4v-1 1z" fill="#21231e"/> - <path d="M395 412.4l-12-.8c-1.2 11-2 18.2-2.2 22-.2 7.7 1 14.2 4 19.3 3.8-2.8 7.7-8 8.8-15.7 1.2-8 .8-16.4 1.4-25z" fill="#fff"/> - <path d="M383 411l12 1v1l-12-1-.4-.5.5-.4zm-.4.5v-.5h.5l-.4.5zm-1.3 22.2h-1V431l.2-.4V429l.2-.6v-1.2l.2-.6v-2.2l.2-.7v-1.4l.2-.8v-.8l.2-.8v-1l.2-.8v-1l.2-.8v-1l.3-1v-1l.2-1v-1l1 .2v2l-.3 1v1l-.2 1v.8l-.2 1v.7l-.2 1v.8l-.2.8v.8l-.2.8v1.3l-.2.7v1.4l-.2.6v1.1l-.2.6v1.7l-.2.5v2.7zm3.2 18.8l.5.8-.7-.2-.2-.4-.2-.5-.2-.4-.3-.5-.2-.4v-.5l-.3-.5-.3-.5v-.6l-.3-.5v-.7l-.3-.6v-.6l-.3-.4v-.6l-.3-.7V443l-.2-.5v-.7l-.2-.6V440l-.2-.8v-5.5h1v6.8l.2.7v.7l.2.6v.6l.2.5v.6l.2.7.2.6v.6l.3.5v.5l.3.6.2.5.2.7.2.5.2.5.2.5.2.5.3.5.2.5.2.5.2.4h-.7zm.5.8l-.4.3-.3-.5.8.3zm8.2-16h1l-.2.8v.8l-.3.7v.7l-.3.7-.2.6-.2.6-.2.6-.3.6-.2.6-.3.6-.2.6-.3.5-.3.6-.3.5-.4.5-.3.5-.3.4-.3.5-.3.4-.4.6-.3.4-.4.4-.3.3-.4.4-.3.5-.4.3-.5.3-.3.4-.4.3-.4.3-.3.3-.5-.8.3-.3.4-.2.3-.3.4-.3.2-.3.4-.2.3-.4.3-.3.3-.3.3-.4.2-.4.4-.5.3-.4.2-.3.3-.5.3-.5.3-.4.4-.5.2-.5.3-.6v-.5l.4-.6.2-.5.2-.5.2-.6.2-.7.2-.7.2-.6.2-.7v-.7l.2-.7.2-.8zm1.8-24.4v-1l.5.5v1.5l-.2.8v5.6l-.2.7v9l-.2.8v2.2l-.2.8v.7l-.2.8v1l-.2.6v.8l-1-.2v-.7l.2-.8v-1.5l.2-.7V432l.2-.8V428l.2-.8V421l.2-.7v-4.8l.2-.8v-2.3l.6.5zm0-1h.5v.5l-.5-.6z" fill="#21231e"/> - <path d="M384 399.6l-13.2-5.4c-2.2 8.8-5.2 37.8 0 50 4.5-3 9-8.4 10.3-17 1.6-9 2-18.2 3-27.6z" fill="#fff"/> - <path d="M371 393.7l13 5.4-.3 1-13-5.4-.4-.6.7-.3zm-.7.3l.2-.5.5.2-.7.3zm.3 50l.6.7-.7-.2-.5-1.2-.5-1.3-.3-1.4-.4-1.5-.3-1.5-.3-1.6-.2-1.7-.2-1.7v-1.8l-.2-1.8v-3.6l-.2-2V418l.2-2v-1.8l.2-1.8.2-1.8V409l.3-1.8.2-1.7V404l.3-1.6.2-1.5.3-1.4.2-1.3.2-1.2.2-1v-1l.3-1 1 .3-.2 1v.8l-.3 1.2-.3 1.2-.2 1.3-.2 1.4-.2 1.5-.2 1.6-.2 1.6v1.7l-.3 1.7v1.7l-.2 1.8v1.8l-.2 1.8v3.8l-.2 2v5.4l.2 1.8v1.7l.2 1.8.2 1.7.2 1.6.3 1.6.3 1.5.3 1.3.5 1.4.4 1.2.4 1h-.8zm.6.7l-.5.3-.2-.5.7.2zm9.4-17.7h1v1l-.3.8-.2.8v.7l-.3.8-.2.8-.3.7-.2.7-.3.7-.3.5-.3.7-.2.6-.3.6-.3.6-.3.6-.5.5-.3.7-.4.5-.4.5-.3.5-.3.4-.4.5-.4.5-.5.4-.4.3-.3.4-.4.4-.4.4-.5.4-.5.3-.4.4-.4.3-.6-.8.4-.4.4-.3.4-.3.4-.3.4-.4.4-.3.4-.4.4-.4.4-.4.3-.4.4-.4.3-.5.3-.4.4-.4.3-.5.4-.4.3-.6.3-.5.3-.6.3-.6.2-.6.3-.7.3-.5.2-.6.3-.8.2-.7.2-.7.3-.7v-.7l.3-.7.2-.8v-.8zm3-27l.4-1 .4.6v1l-.2.8v1.7l-.2 1v1l-.2.8v1.8l-.2.8v1.7l-.2 1v1.7l-.2 1v1.6l-.2 1v.7l-.2 1v.8l-.2.8v1l-.2.7v.8l-.2 1v.8l-.2 1v.7l-.3.8v.8h-1v-.8l.2-1v-1.5l.2-.8v-1l.2-.8v-1l.2-.7v-1l.2-.7v-1l.2-.7v-1.6l.2-1v-.7l.2-1V410l.2-.8v-1.8l.2-.8v-1.8l.2-1v-1.5l.2-1v-.8l.2-1 .3.6zm.4-1l.4.3v.3l-.4-.5zm0 .6l-.3.4.2-.4zm0-.5l.4.3v.3l-.4-.5z" fill="#21231e"/> - <path id="c" d="M387.8 701.2c8 6.3 15.2-8.3 8-27.6-5-14.2-30.6-8.7-16.4 10.5.7 1 1.6.6 1.5-.4-1-4 1.6-6.3 5.5-5.5 10.5 2 11 22-.6 17.6-2.2-.2-.4 4 1.7 5.6z" fill="#edb92e" stroke="#21231e"/> - <path d="M400 639.2c-1 3.4-5 7.6-8 10.8-4.5 4.8-3.4 12.2-.2 16 3.5 4.4 5 9.2 5.8 13 .5 2.3 1.5 7.4.8 15.5-.4 4-2.7 6-5 7.7-1 1 .5 3 4.3 6 .4.2 1.5 1 2 3 .2.4 2 .4 2.2 0 .4-2 1.6-2.8 2-3 3.7-3 5.4-5 4.2-6-2.2-1.7-4.6-3.8-5-7.7-.6-8 .3-13.2.8-15.5.8-3.8 2.3-8.6 6-13 3-3.8 4.2-11.2-.5-16-3-3.2-7-7.4-8-10.7 0-.8-.3-1-.7-1-.3 0-.7.2-.7 1z" fill="#edb92e" stroke="#21231e"/> - <path d="M395 685.5h11.6c2 0 3.6 1.6 3.6 3.5 0 2-1.6 3.5-3.6 3.5H395c-2 0-3.5-1.5-3.5-3.5s1.6-3.5 3.6-3.5z" fill="#edb92e"/> - <path d="M406.6 686H395v-1h11.6v1zm4 3h-1v-1l-.2-.2v-.2l-.2-.2v-.2h-.2v-.2h-.2v-.2h-.3v-.2h-.2v-.2h-.3l-.2-.2h-.5v-.2h-.6v-1h1l.2.2h.4v.2h.3l.2.2h.2v.2h.2v.2l.3.2.2.2v.2l.3.2.2.3v.3l.2.3v.4l.2.2v.8zm-1 0h1-1zm-3 4v-1h.8l.3-.2h.2l.2-.2.2-.2h.3v-.2l.2-.2v-.2l.2-.2.2-.3v-.3l.2-.2v-.8h1v1.2l-.2.2v.4h-.2v.3l-.2.3h-.2v.3h-.2v.3h-.3l-.3.2v.2h-.3l-.2.2h-.2l-.3.2h-.4l-.2.2h-.8zm-11.5-1h11.6v1H395v-1zm-4-3h1v1l.2.2v.3h.2v.2h.2v.2h.2v.2h.2v.2h.2l.3.2h.2l.2.2.3.2h.6v1h-1.2v-.2h-.3l-.2-.2h-.2l-.2-.2-.2-.2-.3-.2-.3-.3-.2-.3-.2-.3-.2-.2v-.2l-.2-.2v-.4l-.2-.2v-.8zm1 0h-1 1zm3-4v1H394v.2h-.3l-.2.2h-.2v.2h-.2v.2l-.2.2-.2.2-.2.2v.2l-.2.2v.5h-.2v.6h-1v-1.2l.2-.2v-.2h.2v-.3h.2v-.2l.2-.2v-.2h.2l.2-.2v-.2h.3v-.2h.3v-.2h.3l.3-.2h.2l.2-.2h.5l.2-.2h.7z" fill="#21231e"/> - <path d="M417 579.2l.5-11c-4.4-2.2-15.2 0-19.7 10.2-5.7 12.6-11 19.3-18 25.2 10 1.8 18.4-.2 23.7-7.4 7.3-9.8 11.2-15.7 13.6-17z" fill="#fff"/> - <path d="M418 568.3l-.4 11h-1l.4-11 .7-.5.3.5zm-.3-.5l.3.2v.3l-.3-.5zm-19.5 10.8l-1-.4.6-1 .5-.8.5-1 .6-.7.5-.8.5-.8.7-.7.6-.6.7-.7.7-.5.7-.6.6-.4.7-.5.8-.4.8-.4.7-.3.8-.3.7-.2.7-.3h.7l.8-.3h1.2l.7-.2h2l.7.2h.5l.6.2.5.2.4.2-.4 1-.4-.3h-.5l-.5-.2h-.5l-.5-.2h-3l-.7.2h-.6l-.7.3-.7.2-.7.2-.7.2-.8.3-.7.3-.7.4-.7.4-.5.5-.7.5-.7.6-.5.6-.6.6-.7.7-.6.6-.5.7-.6.8-.5 1-.3.7-.5 1zM380 603l-.2 1-.2-.8.6-.6.6-.5.7-.5.6-.6.7-.6.6-.6.5-.6.6-.6.6-.7.6-.7.5-.6.7-.7.5-.7.6-.7.5-.7.6-.8.4-.8.5-.7.5-.8.5-1 .5-.8.6-.8.6-1 .5-.8.6-1 .6-1 .5-1 .5-1 .5-1 .6-1 .5-1.2.5-1.2 1 .4-.6 1.2-.5 1-.6 1.2-.5 1-.4 1-.6 1-.5 1-.5 1-.6 1-.5 1-.6.8-.6.8-.5.8-.5.8-.6.8-.5.8-.6.7-.4.7-.6.8-.6.6-.5.7-.7.7-.6.6-.6.7-.4.6-.6.5-.6.6-.7.7-.6.5-.5.6-.6.6-.8.5-.2-1zm-.2 1h-1l.8-.8.2.8zm23.4-8l.8.5-.6.7-.5.6-.7.6-.6.6-.6.6-.5.5-.6.6-.7.5-.7.5-.7.4-.8.3-.7.4-.7.3-.7.3-.7.2-.7.3-.8.2-.8.2h-.8l-.8.2h-.8l-1 .2h-6.1l-1-.2-.8-.2-1-.2.2-1 1 .2.8.2h1l.8.2h6.6l.8-.3h.8l.7-.3.8-.2.7-.2.7-.3.7-.2.7-.2.8-.4.6-.3.7-.3.7-.4.6-.5.6-.5.5-.5.5-.5.6-.5.5-.6.7-.6.5-.7zm13.4-16.8h1l-.2.4-.2.2h-.2l-.3.3-.2.3-.3.2-.2.3-.3.3-.3.4-.3.3-.2.4-.4.5-.3.4-.3.3-.4.5-.3.5-.4.5-.5.6-.3.5-.4.5-.5.7-.5.6-.5.7-.5.7-.5.7-.5.6-.6.8-.6.8-.5.8-.6 1-.7.7-.7 1-.6.8-.8-.6.6-1 .7-1 .6-.7.7-1 .6-.7.6-.8.5-.7.5-.7.5-.7.5-.7.5-.8.5-.6.5-.6.4-.6.4-.6.4-.6.4-.5.4-.5.3-.5.3-.4.4-.5.3-.4.3-.4.3-.3.4-.3.3-.3.2-.2.3-.3.3-.2.4-.2h.2l.3-.2-.4.4zm1 0v.3h-.2l.2-.3z" fill="#21231e"/> - <path d="M425.2 580.6l-11.8-5c-5 10-8.2 16.6-9.5 20.2-2.8 7-3.5 13.8-2.3 19.5 4.8-1.2 10.3-4.6 14-11.6 3.8-7 6-15.3 9.5-23z" fill="#fff"/> - <path d="M413.6 575.2l11.7 5-.3 1-11.8-5-.3-.8.6-.2zm-.7.2v-.4l.6.2-.7.2zm-8.7 20.6l-1-.4.2-.3.2-.4.2-.5v-.4l.2-.3.2-.5.2-.4.2-.5.2-.5.3-.5.2-.5.3-.6.2-.5.3-.6.3-.5.3-.7.2-.6.3-.6.3-.7.4-.8.3-.7.4-.8.2-.7.4-.8.4-.8.4-.8.4-.8.4-.8.4-1 .4-.8.5-.8.4-1 .8.5-.4.8-.5 1-.5.8-.4.8-.3 1-.4.7-.4 1-.5.7-.4.7-.3.8-.3.7-.4.6-.3.7-.3.7-.3.6-.2.7-.3.6-.3.5-.3.6-.3.6-.3.6-.2.5-.3.5-.3.5-.2.5-.2.4-.2.5v.5l-.2.4-.2.3v.3l-.3.4zm-2.7 18.8l.2 1-.6-.4v-.5l-.2-.7v-.6l-.2-.5v-1.7l-.2-.5v-3.7l.2-.6v-1.2l.2-.7v-.6l.2-.5v-.7l.2-.6.2-.7v-.6l.3-.8v-.6l.3-.7.2-.7.2-.7.2-.7.2-.7.2-.7 1 .4-.3.6v.7l-.4.6-.2.6-.2.6-.2.7v.5l-.3.6v.8l-.3.6v.6l-.2.7v.6l-.2.6v.5l-.2.6v1.9l-.2.5v3.5l.2.5v1.2l.2.5v.7l.2.5-.6-.4zm.2 1h-.5v-.4l.5.4zm13.5-12.4l1 .5-.5.6-.3.6-.4.6-.3.6-.4.6-.4.5-.5.6-.5.6-.4.5-.4.6-.5.4-.4.5-.5.4-.5.3-.4.4-.6.4-.5.4-.5.4-.5.3-.5.4-.5.3-.4.2-.5.2-.4.2-.5.2-.4.3h-.4l-.5.2-.5.2h-.5l-.4.3h-.5l-.2-1h.9l.4-.3h.4l.4-.3h.5l.4-.3.5-.2.4-.2.5-.2.5-.2.5-.3.5-.3.4-.3.4-.4.4-.3.5-.4.4-.4.4-.4.6-.4.4-.5.4-.4.5-.6.3-.4.4-.5.4-.6.5-.6.4-.5.2-.7.4-.6.4-.6.3-.6zM425 581l.3-.8.3.6-.3.7-.3.8-.3.7-.3.7-.3.8-.2.7-.3.7-.2.7-.3.7-.3.8-.3.7-.2.6-.3.8-.4.7-.3 1-.2.6-.2.7-.3.8-.3.8-.2.7-.3.7-.3.8-.3.7-.2.7-.3.7-.3.8-.3.7-.5.7-.3.7-.3.6-.5.6-.3.7-1-.6.5-.6.3-.7.3-.6.3-.6.4-.7.3-.6.3-.7.3-.7.2-.7.3-.7.2-.7.3-1 .3-.6.3-.7.3-.7v-.8l.4-.7.3-.7.3-.8.2-.7.3-.7.3-.8.3-.7.3-.7.3-.7.3-.7.2-1 .3-.6.3-.8.3-.7.4-.8.3-.8.3.7zm.3-.8l.5.2-.2.4-.3-.6z" fill="#21231e"/> - <path d="M428.6 580.6l-12.7-2c-2.4 10.8-4 18-4.4 22-1 7.5 0 14 2.7 19.4 4.3-2.3 8.8-7 10.7-14.7 2-7.8 2.2-16.3 3.6-24.7z" fill="#fff"/> - <path d="M416 578.2l12.6 2v1l-12.8-2-.4-.6.6-.4zm-.6.4v-.5l.6.2-.6.4zm-3.3 22h-1l.2-.5V599l.2-.6v-.5l.2-.6v-.5l.2-.6v-.6l.2-.5v-.6l.2-.6v-.6l.2-.6.2-.7v-.6l.3-.7v-.7l.2-.8v-.8l.3-.8.2-.8v-.8l.3-1 .2-.7.2-1 .2-.8.2-1 .2-1 .2-1 .2-1 1 .3-.2 1-.2 1-.2 1-.2 1-.2.8-.2 1-.2.7-.2 1-.2.7v.8l-.3.8-.2.8v.8l-.2.7v.6l-.2.7-.2.7v.6l-.2.6-.2.7v.4l-.2.6v.6l-.2.5v1.1l-.2.6v.4l-.2.4v1.2zm2 19l.5.8-.7-.2-.2-.5-.3-.5-.2-.5v-.6l-.3-.4-.2-.5-.2-.5-.2-.6v-.6l-.2-.6v-.6l-.3-.6v-.6l-.2-.6v-.6l-.2-.6v-2.8l-.2-.6v-5.4l.2-.7v-1.5h1v3.1l-.2.7v5.1l.2.6v1.2l.2.6v.6l.2.6v.6l.3.6v.5l.2.6v.7l.3.5v.5l.3.6.2.5.2.5.2.5.3.5.2.5-.7-.2zm.5.8l-.5.3-.2-.5.7.2zm10-15.2l1 .2-.2.7-.2.8v.7l-.3.7-.3.7-.2.5-.3.6-.4.7-.3.6-.3.6-.3.4-.3.6-.4.5-.3.5-.4.5-.4.5-.4.4-.4.5-.4.3-.4.4-.4.4-.4.5-.4.3-.4.4-.4.3-.4.3-.4.3-.4.4-.5.3-.4.3-.4.2-.5.2-.5-.8.4-.2.4-.3h.4l.4-.4.4-.3.4-.3.4-.3.4-.3.4-.3.4-.3.3-.3.4-.4.4-.4.5-.4.3-.4.4-.5.3-.4.4-.6.2-.5.3-.6.3-.5.3-.6.4-.6.3-.5.3-.6.2-.6.3-.5.2-.6.3-.8.2-.7.2-.6.2-.8zm4-25v1l.5-.5v.8l-.2.8v.7l-.2.8v.8l-.2.8v.8l-.2.8v.7l-.2.8v.8l-.2.8v1.7l-.2.7v.8l-.2.8v.8l-.2.8v.7l-.2.8v1l-.2.6v.8l-.2.8-.2.7v.7l-.2.7-.2.8v.7l-.3.7-.2.7-1-.2.2-.8.2-.7v-.7l.2-.8v-.7l.3-.7v-.8l.2-.8v-.7l.2-.8v-1.5l.2-.8v-.7l.2-.8v-1l.2-.7v-.7l.2-.8v-1.6l.2-.8v-.8l.2-.7v-1l.2-.7v-.8l.2-.8v-.8l.2-1v-.7l.3-.8.5-.4zm-.4.3v-.4h.5l-.4.5zm.5.6v-1 1z" fill="#21231e"/> - <path d="M430.4 563.4h7.6c4.4 2 9 12.2 3.7 22-6.7 12-8.8 20.2-9.5 29.2-7.4-6.8-10.8-14.7-8.2-23.3 3.4-11.7 6.8-25.2 6.4-28z" fill="#fff"/> - <path d="M438 564h-7.6v-1h7.8l-.2 1zm0-1h.2-.2zm4 22.5l-.8-.5.5-1 .4-.8.4-.8.3-1 .3-.8.2-1v-.7l.3-1V574l-.2-1v-.6l-.3-.8-.2-.7-.3-.8-.2-.7-.3-.6-.3-.7-.3-.6-.3-.6-.3-.4-.3-.5-.4-.3-.4-.4-.3-.4-.4-.4-.5-.3-.4-.3-.3-.2.5-1 .4.4.5.2.5.4.4.4.4.4.4.4.4.5.4.6.3.6.3.6.3.6.3.7.2.7.3.7.2.6.2.8v.7l.3 1v.8l.2.8v3.5l-.2 1v1l-.4.8-.3 1-.3 1-.4.8-.4 1-.5 1zM432 615l.5-.7-.8.3v-.8l.2-1v-2.3l.3-1v-.7l.2-.8.2-1 .2-.8v-1l.2-.7.3-1 .2-.8.2-1 .2-.7.3-1 .3-.8.3-1 .4-1 .4-.8.4-1 .4-1 .4-1 .4-1 .5-1 .4-1 .5-1 .5-1 .5-1.2.6-1 .6-1.2 1 .5-.7 1-.6 1.2-.7 1-.5 1-.5 1.2-.5 1-.4 1-.5 1-.5.8-.4 1-.3 1-.3 1-.4.8-.3 1-.3.8-.2.8-.3 1-.4.8-.2.8-.2 1-.2.7-.2 1v.7l-.3.8v1l-.3.7v.8l-.2.8v1l-.2.7v1.8l-1 .2zm.7-.3v1l-.8-.7.7-.3zm-9.2-23.6l1 .4-.3.8-.2.8v.8l-.2.7v.8l-.2.8v3l.2.8.2.8v.7l.3.7.3.7.2.8.3.7.4.7.4.6.3.7.5.7.4.7.4.7.5.6.4.7.5.7.4.6.6.7.6.6.6.7.7.6.5.7-.6.7-.8-.6-.7-.7-.6-.7-.7-.6-.6-.7-.6-.7-.4-.7-.6-.7-.4-.7-.5-.8-.3-.7-.5-.7-.3-.8-.5-.7-.3-.7-.3-.8-.4-.7-.2-.7-.2-.8-.2-.7v-.8l-.2-.8v-.8l-.2-.8v-2.5l.2-.8v-.8l.3-.8.3-1 .2-.7zm7-28v1l.4-.7v1.8l-.2.5v1.1l-.2.7-.2.7v.8l-.3.8v.8l-.2 1-.2.8-.2 1-.3 1v1l-.4 1-.2 1-.3 1-.2 1-.2 1-.3 1.2-.3 1-.3 1.2-.3 1-.3 1.2-.3 1.2-.3 1-.3 1.2-.2 1-.4 1.2-1-.3.4-1 .3-1 .5-1.2.3-1 .3-1.2.4-1.2.3-1 .3-1.2.3-1 .3-1.2.3-1 .2-1 .2-1 .3-1.2.2-1 .2-1 .2-1 .2-.8.2-1 .2-.8.2-.8v-.8l.3-.7v-.8l.2-.7v-.6l.2-.6v-2l.4-.6zm-.6.5v-.6h.4l-.5.5zm.4 0v-.6.4zm-.5 0v-.6h.4l-.5.5z" fill="#21231e"/> - <path d="M433.8 558.2l-12-4.3c-4.3 10-7.2 16.8-8.4 20.5-2.3 7.3-2.6 14-1 19.6 4.7-1.3 10.6-4.4 14-11.6 3.3-7.3 4.5-16.3 7.4-24.2z" fill="#fff"/> - <path d="M422 553.4l12 4.3-.4 1-12-4.4-.3-.6.6-.3zm-.7.3l.2-.4h.4l-.7.4zm-7.4 21l-1-.3v-.4l.2-.4v-.4l.3-.4v-.4l.3-.5.2-.5v-.5l.3-.5.2-.5.2-.6.3-.6.2-.5.2-.6.3-.6.2-.6.2-.6.3-.7.3-.6.3-.7.4-.7.3-.8.3-.8.3-.7.4-.8.3-1 .4-.8.3-1 .4-.8.5-1 .4-.8.3-1 1 .5-.5 1-.4 1-.4.8-.3 1-.4.8-.4.8-.4.8-.3.8-.4.8-.4.8-.3.7-.3.8-.3.8-.3.7-.3.6v.8l-.4.6-.2.6-.3.6v.6l-.3.6-.2.5-.2.5-.2.5v.5l-.3.5-.2.4v.5l-.3.4v.3l-.2.3v.4zm-1.8 19l.3 1-.6-.4-.3-.6v-.5l-.2-.6v-.5l-.2-.5v-.6l-.2-.7V583l.2-.7V581l.3-.6v-.7l.2-.6v-.6l.3-.6.2-.7v-.6l.3-.7.2-.6.2-.6 1 .3-.3.6-.2.7-.2.7-.2.6v.7l-.2.6v.7l-.2.6-.2.6v.6l-.2.6v1l-.2.7v6.5l.2.6v1.1l.2.4.2.6v.5l.2.5-.6-.3zm.3 1h-.5v-.4l.5.3zM426 582l.8.6-.3.6-.4.7-.2.5-.4.6-.4.7-.4.6-.4.5-.4.5-.4.5-.5.5-.5.5-.5.4-.4.4-.5.4-.4.4-.4.4-.5.3-.5.5-.5.3-.5.3-.5.4-.4.2-.5.3h-.5l-.5.4-.5.2-.5.2-.5.2h-.4l-.6.3-.4.2h-.5l-.3-.8.4-.2h.5l.5-.3.5-.2h.4l.5-.3.4-.2.4-.3.5-.2.5-.2.5-.3.4-.3.5-.3.5-.4.4-.3.6-.3.4-.4.5-.3.4-.4.4-.5.4-.4.4-.4.4-.4.4-.5.4-.5.4-.5.4-.5.4-.6.3-.6.3-.6.3-.6.3-.7zm7.6-23.4l.4-1 .3.7-.3.8-.3.8-.2.8-.3.7-.2.8-.2 1-.2.6-.2.8-.3.8v.8l-.3.7-.2.8-.2.8-.2.8v1l-.3.6-.2.8-.2.8-.2.8v.7l-.3.8-.2.8-.3.7-.2.8-.2.7-.3.8-.3.7-.2.7-.3.8-.3.7-.3.7-.2.6-1-.5.4-.5.3-.7.3-.7.3-.6.3-.7.3-.8.2-.8.2-.7.3-.8.2-.7.2-.8.2-.7v-.8l.4-.8.2-.8.2-.8.2-.8.2-.8.2-.7.2-.7.2-.8.2-.8.2-.8.2-1 .2-.6.2-.8.3-.8.3-.8.2-.7.3-.8.3-.8.3-.7.3.6zm.4-1l.4.3v.3l-.4-.6zm-.2.6l-.2.4.2-.4zm.2-.5l.4.2v.3l-.4-.6z" fill="#21231e"/> - <path d="M425.6 549.7l-2.6-16.4c-2.8-.7-6.5 5.8-10 9.5-1 1-2 1.7-2.6 2.8a23.3 23.3 0 0 0-3.4 8c-3 13.4-7.4 20.4-13 27.6 10.2-.2 18-3.8 21.8-12 5-11 7.7-17.7 9.8-19.5z" fill="#fff"/> - <path d="M423.4 533.3l2.7 16.4h-1l-2.5-16.3.6-.6.4.5zm-.3-.4h.4v.2l-.3-.4zm-9.7 10.2l-.8-.7.4-.4.2-.2.3-.4.4-.4.2-.4.3-.4.4-.4.2-.5.3-.4.4-.5.2-.4.3-.3.4-.5.2-.4.3-.4.4-.3.2-.3.3-.4.3-.3.4-.3.3-.4.3-.2.3-.2.4-.2.4-.3h.3l.4-.3h.3l.4-.2h1.1l-.2 1h-1l-.3.2-.2.2-.3.2-.3.2-.3.2-.3.3v.4l-.5.3-.3.3-.3.3-.4.4-.3.4-.3.5-.4.4-.3.3-.3.4-.3.4-.4.5-.3.5-.3.4-.4.4-.3.4-.4.4-.3.4-.4.4-.4.4-.3.4zm-2.5 2.7l-.8-.7v-.2h.2l.2-.2v-.2h.2v-.2h.2v-.2h.2v-.2h.2v-.2l.2-.2h.2v-.2l.2-.2h.2v-.2h.2v-.2h.2v-.2l1 .6h-.2l-.2.2v.2h-.2v.2h-.2l-.2.2v.2h-.2l-.2.2v.2h-.2v.2h-.2v.2h-.2v.2h-.2v.2l-.2.2v.2h-.2zm-3.3 7.7l-1-.2v-.6l.2-.4v-.3l.2-.3v-.8l.2-.3v-.3l.2-.3v-.3h.2v-.4l.2-.3v-.2l.2-.2v-.2l.3-.3v-.2l.2-.2v-.2l.3-.2v-.3h.2v-.3l.3-.3v-.2l.3-.2v-.2l.2-.3.2-.2.8.6-.3.3v.2l-.2.2-.2.2v.4l-.2.2-.2.2v.3l-.2.3v.2l-.2.3-.2.2v.2l-.2.3v.2l-.2.3v.2l-.2.3v.2l-.2.3v.5l-.2.3v.2l-.2.3v.5l-.2.3v.7zm-13.4 27v1l-.3-.8.5-.8.5-.7.5-.6.5-.8.5-.7.5-.7.4-.6.6-.7.4-.7.5-.8.4-.7.4-.7.4-.8.4-.7.4-.7.4-.8.4-.8.4-.8.4-1 .4-1 .3-.8.3-1 .3-.8.4-1 .3-1 .4-1 .3-1 .3-1.2.3-1 .3-1.3.2-1.3.3-1.2 1 .2-.3 1.2-.3 1-.4 1.3-.3 1.2-.4 1-.4 1-.3 1.2-.4 1-.4 1-.4 1-.3 1-.5.8-.4 1-.3.8-.4.8-.4 1-.5.8-.4.8-.3.7-.5.8-.4.8-.5.8-.4.7-.6.7-.5.7-.5.7-.5.7-.5.8-.5.7-.5.6-.5.8-.5.7-.4-.8zm0 1h-1l.7-.8.4.7zm21.3-12.8l1 .4-.5.7-.4 1-.4.6-.4.7-.5.7-.4.6-.5.6-.5.6-.5.6-.6.5-.6.4-.6.5-.7.4-.6.4-.8.4-.7.4-.7.4-.7.3-.7.3-.8.3-.8.2-.8.2-1 .2-.7.2-1 .2-.7.2h-1l-.8.2h-1l-.8.2h-2v-1h2.8l1-.2h.8l.8-.2 1-.2h.7l1-.3.7-.2.7-.3.8-.2.7-.3.7-.3.7-.3.6-.3.7-.3.6-.4.7-.5.6-.4.6-.4.5-.4.6-.6.5-.5.5-.4.5-.6.5-.6.4-.7.5-.6.4-.6.3-.7.3-.8zm9.8-19.2h1v.3l-.3.3v.2l-.3.2-.2.2-.2.2-.2.3-.3.4-.2.2-.2.4v.4l-.4.5-.2.5-.3.5-.2.5-.3.6-.2.6-.3.6-.3.6-.4.7-.3.8-.3.8-.4.7-.3.8-.4 1-.4.7-.4 1-.4.8-.4 1-.4 1-.5.8-.3 1-.5 1-1-.4.6-1 .4-1 .5-1 .4-1 .5-1 .4-.8.3-1 .4-.7.4-.8.4-.8.4-1 .3-.6.4-.7.4-.7.3-.6.4-.7.3-.6.2-.4.2-.6.3-.5.2-.5.3-.4.2-.5.3-.3.2-.4.2-.3.2-.4.2-.3.2-.3.2-.2.3-.2.3-.2-.2.4zm1 0v.3-.3z" fill="#21231e"/> - </g> - <use xlink:href="#d" transform="matrix(-1 0 0 1 964.297 0)" height="900" width="1350"/> - <path d="M536.4 415a38 38 0 0 0 4.8-1.5c-7.6-4.8-14-10.6-21.4-22-7.8-12 3.3-33 8-44.3 9.4-7 18.3-17.3 21.2-31 1-7.3-19-4.7-33 2-17 8-19.3 5.7-25.4 7-2.2 10.5 2.4 11.4 6.7 11-9.4 15-13.3 29.8-15 51.4-2-21.6-6-36.5-15.3-51.5 4.3.6 9-.3 6.7-10.7-6-1.4-8.4.8-25.4-7.2-14-6.5-34-9-33-1.8 3 13.7 11.8 24 21.3 31 4.6 11.2 15.7 32.4 8 44.2-7.6 11.5-14 17.3-21.5 22 1.7.7 3.3 1.2 5 1.5-1.2 1.5-11 4.5-12.3 3.7-7.6-5.3-15-18-21.4-25.2-18.2-20.8-27.3-36.7-24-49.6 4.5-14 20.8-29.6-.8-27-21.7 2.8-39.6 32.5-45.4 68.3-2 13.2-3.3 24.4-4.7 33.5 11.8-4.3 17-8.5 20.2-13.7-1.4 5-2.5 9.7-3.2 14.2 9.7-1.7 16.7-6.4 19.2-15 1-3.6 2.3-6.5 3.6-9 3 1 7 1 11.6 0 1.7 4 15 19 22.2 30 8 12.2 20.2 21.6 24.2 22 2 .4 2.7-4 2.2-10.2 21 .2 42.3.3 63-.4 20.7.7 41.8.6 63 .4-.6 6 0 10.6 2 10.3 4-.5 16.2-10 24.3-22.2 7-10.8 20.5-25.7 22.2-30 4.7 1.2 8.6 1.3 11.6.2 1.3 2.5 2.5 5.4 3.5 9 2.5 8.6 9.5 13.3 19.2 15-.7-4.5-1.8-9-3.2-14 3.2 5 8.4 9.3 20.2 13.6-1.4-9-2.7-20.3-4.8-33.5-5.8-35.8-23.7-65.5-45.4-68.2-21.6-2.6-5.3 13-.7 27 3.3 12.8-5.8 28.7-24 49.5-6.5 7.3-13.8 20-21.4 25.2-1.2.8-11-2.2-12.2-3.8z" fill="#fff" stroke="#21231e"/> - <g id="e"> - <path d="M440.6 356.8c-2 1.8-8.8 1.8-18 2.4-14.8.5-23.4-4-25.3-13.5 5.6 6.6 12.2 10 19.7 8 10.2-2.5 16-4.3 18.3-3.8 1.6.4 4 3.3 5.3 6.8z" fill="#edb92e"/> - <path d="M422.6 359.7v-1h1.8l.7-.2h2.5l.8-.2h2.8l.8-.2h3l.5-.2h1l.4-.2h.5l.4-.2h.4l.5-.2h.3l.3-.2h.4l.3-.2h.2v-.3h.3l.6.7h-.3l-.3.3-.3.2h-.2l-.3.3h-.4l-.3.2h-.4l-.4.2h-.5l-.5.2h-1l-.5.2h-1.5l-.6.2H432l-.6.2h-2.8l-.8.2h-2.3l-1 .2H423zm0 0zm-25-14.3l-.7.6.8-.4.2 1 .2.7.3.8.3 1 .3.6.5.7.4.7.4.6.5.6.4.6.6.6.6.5.6.4.7.5.6.3.8.5.8.4.8.3 1 .4.8.2 1 .3 1 .2 1 .2h1l1 .3h1.2l1.2.3h6.6v1H416l-1-.2h-1.3l-1-.3h-1.2l-1-.3-1-.3-1-.3-1-.2-1-.4-.8-.3-.8-.4-1-.4-.7-.5-.7-.5-.7-.5-.7-.6-.6-.5-.6-.6-.4-.8-.5-.7-.3-.7-.4-.8-.4-.7-.4-1-.3-.7-.3-1-.2-.8 1-.4zm19.3 8l.2 1h-.8l-.7.2h-1.4l-.7.2h-2.8l-.6-.2-.7-.2h-.7l-.6-.3h-.7l-.6-.3-.8-.3-.6-.3-.6-.2-.6-.3-.6-.4-.6-.3-.6-.4-.6-.4-.6-.6-.6-.4-.6-.5-.5-.6-.6-.6-.4-.6-.6-.5-.5-.6-.6-.7.7-.6.5.6.5.6.6.6.5.5.5.5.6.5.4.5.6.5.6.4.5.5.7.4.6.3.6.3.4.3.6.2.6.3.6.2.7.2h.5l.6.3.7.2h.6l.7.2h4.7l.6-.3h.7zm18.5-4l-.3 1h-2.6l-.4.2h-.9l-.5.2-.5.2h-.5l-.6.2h-.5l-.6.3h-.5l-.7.3-.7.2h-.6l-.7.3-.7.2-.8.2-.8.2h-.8l-.8.3-1 .3-.8.2-1 .2-.8.3-.3-1 1-.2.8-.2 1-.2.7-.2 1-.2.7-.2.8-.2.7-.2.8-.2.7-.2.7-.2.6-.2h.6l.6-.3h.6l.6-.3h.6l.5-.2h.6l.5-.2h.6l.4-.2h.9l.3-.2h2zm0 0zm5.4 7.8l-.7-.8-.2.6v-.7l-.3-.3v-.3l-.3-.3v-.3l-.3-.2v-.3l-.2-.2-.2-.3v-.3l-.3-.2-.2-.3v-.2l-.2-.2-.2-.3v-.2l-.3-.2h-.2v-.3h-.2l-.2-.3v-.2h-.3l-.2-.2v-.2h-.2v-.2h-.4v-.2h-.2l.3-1h.2l.2.2.2.2h.2l.2.2.2.2h.2v.3l.3.2.2.2h.2l.2.3v.2l.2.2.2.2.2.2.2.2.2.3v.2l.3.2.2.3.2.3v.3l.3.4.2.3v.3l.3.3v.3l.3.3v.3l.2.3v.6zm0-.6l.2.3-.3.2v-.6zm-21.5-35.4v1.5h-.4v-.4h-.2v-.7l.2-.2h.2v-.2h.2zm15.3 4l-.5 1.3-.6-.2-.5-.2h-.6l-.5-.2-.4-.2-.5-.2-.4-.2-.5-.2-.4-.2h-.5l-.4-.3-.5-.2h-.4l-.4-.3h-.5l-.4-.3h-.5l-.4-.2h-.4l-.5-.2h-.4l-.3-.2h-1.3l-.4-.2H420v-2h2.9l.5.2h1l.4.2h.5l.3.2.5.2h.5l.4.2.5.2h.5l.4.3h.6l.5.3.6.2h.5l.6.3.5.2.6.2h.5l.6.3.6.2.5.2.6.2h.5zm9 2.5v1.5H442l-.3-.2h-.4l-.3-.2h-.3l-.4-.2h-.3l-.4-.2h-.4l-.3-.2h-.5l-.3-.2-.4-.2h-.3l-.4-.2h-.2l-.3-.2h-.3l-.3-.3h-.7l-.2-.2h-.4l-.2-.2.4-1.5h.2l.2.2h.2l.2.2h.3v.2h.4l.3.2h.3l.3.2h.4l.3.2.3.2h.4l.3.2h.4l.3.2h.4l.4.2h.3l.4.2h.4l.3.2h.6l.3.2h1zm0 1.5v-1.5h.4v.2h.2v.2h.2v.9h-.2v.2h-.2v.2h-.2zm23.4 7.5l.2-1.2h.2v.2h.2v.8h-.6zm-10-2l.4-1.2h.5l.3.2h.4l.3.2h1.1l.2.2h.6l.2.2h.6l.3.2h.7l.4.2h.8l.3.2h.9l.2.2h.9l.5.2h.8l-.2 1.3h-.9l-.4-.2h-.6l-.4-.2h-.7l-.4-.2h-1.4l-.3-.2h-.7l-.3-.2h-.6l-.3-.2h-.5l-.4-.2h-.5l-.3-.2h-.5l-.2-.2h-.5l-.2-.2zm.4-1.2l-.3 1h-.2v-.8h.8z" fill="#21231e"/> - <path d="M431.5 332l-.7 1.3-.4-.3-.4-.2-.4-.3-.3-.2-.4-.3-.4-.3-.3-.3-.4-.3-.4-.2-.3-.4-.3-.3-.2-.3-.3-.3-.3-.4-.2-.3-.3-.4-.2-.3-.3-.4-.2-.4-.2-.3-.3-.5-.2-.4-.2-.2v-.4l-.3-.4-.2-.3-.2-.4-.2-.3v-.4l-.2-.3-.2-.3-.2-.4 1.4-.7.2.2.2.4v.3l.3.2.2.4.2.3v.3l.3.3.2.4.2.3.2.4v.3l.3.4.3.3.2.4.2.4.2.4.3.3.2.4.3.4.2.3.3.4.3.3.3.3.3.2.3.3.3.3.2.2.4.3.3.2.2.2.3.2zm7.6-5.3l1.5.8-.2.4-.2.3-.2.4-.2.4-.3.5-.3.4-.2.2-.3.4-.3.3-.3.2-.3.3-.3.3-.3.3-.2.4-.3.2-.3.2-.4.2-.3.2-.3.2h-.3l-.5.2h-.3l-.3.2h-2.2l-.4-.2-.3-.2h-.2l.7-1.5h.5l.2.2h1.7l.3-.2h.2l.3-.2h.2l.3-.3.2-.2.3-.2h.2l.3-.3.2-.3.3-.2.2-.3.3-.4.2-.3.3-.3.2-.4.2-.3.3-.4.2-.5.2-.4v-.3z" fill="#21231e"/> - <path d="M429.6 331l-2.2-2.3c-1-1.3-.5-3 2-5.4 1.5.7 3 1.3 4.2 2-1 3-2.2 4.8-4 5.6zm-6.3 82l-.4 1h-.4v-1h.8zm23.8-3.6l1 1-.7.5-.6.4-.7.5-.6.4-.7.5-.7.3-.7.4-.7.4-.7.4-1 .3-.6.3-.8.2-.7.2-1 .2-.7.2h-.8l-.8.2h-5l-1-.2h-.8l-.8-.3h-1l-.8-.4h-1l-.7-.3-1-.3-.8-.3.3-1 .8.2 1 .3 1 .3.7.2 1 .2.7.2h.8l1 .2h.7l.7.2h4.8l.7-.2h1l.6-.3.7-.2h.7l.7-.4.7-.3.7-.3.8-.3.6-.4.7-.4.7-.5.6-.5.6-.5.5-.5.6-.6zm3-2.8l1 .8h-.2v.2h-.2l-.2.2v.2h-.2v.2h-.2v.2h-.2l-.2.2-.2.2v.2h-.2v.2h-.2l-.2.2-.2.2-.2.2-.2.2v.2h-.2l-1-.8h.2v-.2h.2v-.2h.2l.2-.2.2-.2.2-.2v-.2h.2v-.2h.2l.2-.2.2-.2.2-.2v-.2h.2l.2-.2.2-.2v-.2h.2zm1 .8l-1-.8.2-.2h.7v.2h.2v.8z" fill="#21231e"/> - <path d="M452.2 401.3l-1.2-.2v-.2h.2l.2-.2h.6v.4h.2v.2zm-5.5 16l.3 1-.7-.8.2-.4.2-.4.2-.5v-.4l.3-.4.2-.5.2-.5v-.5l.3-.4.2-.5.2-.5v-.5l.3-.5v-.5l.3-.5v-.5l.3-.5v-.5l.3-.5v-.5l.2-.5.2-.6v-.5l.2-.6v-.5l.2-.4v-.6l.2-.6v-.5l.2-.7v-.6l.2-.6 1.2.3v.6l-.2.5v.6l-.2.6v.6l-.2.6v.5l-.2.6-.2.4v.6l-.2.5v.6l-.3.6v.5l-.3.6v.6l-.3.5v.5l-.2.5-.2.5v.5l-.3.5-.2.5v.5l-.2.4-.2.5-.2.6-.2.5-.2.6-.2.5-.2.5-.2.5-.7-.8zm-.4.2l1 .5v.2h-.2v.2h-.4l-.2-.2v-.2h-.2v-.4zm15.2-9.5l1 .7-.3.4-.4.6-.3.4-.4.4-.2.4-.4.4-.4.4-.4.4-.4.3-.4.4-.5.3-.4.4-.6.3-.4.3-.5.3-.5.3-.5.3-.5.2-.5.3-.5.3-.6.2-.5.3-.7.2-.5.3-.6.2-.6.2-.6.2-.6.2-.6.2-.6.2-.6.2-.6.2-.3-1.2.6-.2h.6l.5-.3.6-.2.6-.2.6-.2h.6l.5-.3.6-.3.4-.2.5-.2.4-.3.5-.2.4-.3.5-.3.4-.4.5-.3.3-.3.5-.3.4-.3.4-.3.4-.2.4-.4.4-.3.4-.3.4-.3.3-.4.3-.4.3-.4.3-.4.2-.4.3-.4zm1 .7l-1-.7h.2v-.2h.7v.2h.2v.7z" fill="#21231e"/> - <path d="M461.3 400.2H460v-.2h.2v-.2h1v.4zm4.4 15.7l.7 1-.8-.3-.3-.4-.3-.4-.2-.5-.3-.5-.2-.4-.3-.4-.2-.5-.3-.5-.2-.4-.2-.5v-.5l-.3-.5-.2-.5-.2-.5-.2-.5v-.5l-.2-.5-.2-.5v-.6l-.3-.5v-.5l-.3-.6v-.4l-.2-.6v-.6l-.2-.5v-.7l-.2-.6v-.6l-.2-.5v-1.2h1v.5l.2.6v.6l.2.5v1.4l.2.5.2.6v.5l.2.5v.6l.3.5v.4l.2.5.2.4v.5l.2.4.2.5.2.4.2.5.2.4.2.4.2.5.2.4.2.5.3.4.3.4.2.4.3.5.2.3.3.4.3.3h-1zm0 .7l1-.7v.8l-.2.2h-.2v.2h-.4v-.2h-.2zm7.6-12.6l1 .4v.6l-.2.5v.5l-.2.5-.2.5-.2.5-.2.5-.2.5-.2.4-.2.4-.2.4-.3.5v.4l-.4.4-.2.5-.3.4v.3l-.4.3-.3.4-.3.4-.2.3-.3.3-.3.4-.3.3-.4.3-.3.3-.3.3-.3.2-.3.3-.3.4-.3.2-.3.3-.7-1 .3-.3.3-.2.3-.3.3-.2.2-.3.3-.3.2-.2.3-.3.3-.4.3-.3.2-.4.3-.4.4-.3.2-.4.3-.4v-.4l.4-.3.2-.5.3-.4v-.3l.3-.4.2-.4.2-.6.2-.4v-.5l.3-.4.2-.4.2-.5v-.4l.3-.5v-.4l.3-.5zm1 .4l-1-.3v-.2h.8v.2h.2v.4z" fill="#21231e"/> - <path d="M406 317.8c-16.7 1.8-16 12.6-.4 28 3 3 4 3 4.6-.2 1.2-5.3 7-8.5 10.2-4.4 2 2.7 1.6 4.3 8.6 3.3 9 7.5 16.2 12.8 4.5 12.3-5-.2-9 2.8-15.7 2.5 2 4 2.3 4.3 3.4 4.6 6.5 1.2 13.3-2.8 19.8-1.6 14.3 2.6-23-38.6-22.4-40.3 1-4-9-11.5-12.7-4.2z" fill="#edb92e"/> - <path d="M406 345.5l-.7.7-1.4-1.5-1.5-1.4-1.2-1.4-1.2-1.4-1-1.3-1-1.3-.8-1.3-.8-1.2-.8-1.2-.6-1.2-.5-1-.5-1.2-.3-1-.3-1v-1l-.2-1v-1l.2-1 .2-.8.4-.8.4-.8.6-.7.6-.7.8-.6.8-.6 1-.5 1-.5 1-.4 1.4-.4 1.3-.3 1.3-.2 1.6-.2v1l-1.5.2-1.4.2-1.2.3-1.2.3-1 .4-1 .5-1 .4-.6.5-.7.7-.6.6-.4.6-.4.6-.4.7-.2.8-.2 1v1.7l.2.8.2 1 .4 1 .4 1 .5 1 .5 1.3.7 1 .8 1.3 1 1.4.8 1.2 1 1.3 1.2 1.3 1.2 1.3 1.4 1.4 1.4 1.5zm3.8 0l1 .2v.3l-.2.3v.5l-.2.2v.2l-.2.2v.2l-.2.2-.3.3v.2h-.3l-.2.2H408l-.2-.2h-.2l-.2-.2h-.2l-.2-.3-.2-.2h-.2l-.3-.4h-.2l-.2-.3-.3-.3-.2-.2.7-.7.2.2.3.3.2.2.3.2.2.2.2.2h.2l.2.2.2.2h.3v.2h.6l.2-.2v-.2l.2-.2v-.2l.2-.4v-.4l.2-.3zm11-4.6l-.8.5-.3-.4h-.3l-.3-.4-.2-.2-.3-.2h-.3l-.3-.2h-.5l-.3-.2h-1.5l-.3.2-.4.2h-.2l-.4.3-.3.2-.2.2-.4.2-.3.2-.2.3-.3.3-.2.4-.3.3-.2.4-.3.5-.2.4-.2.3v.5l-.2.4v.5l-1-.2v-.5l.2-.5.2-.5.2-.5.3-.5.2-.4.2-.4.3-.4.3-.4.3-.4.4-.3.4-.3.4-.3.4-.2.3-.2.3-.2.5-.2h.4l.4-.2h.4l.4-.2h1l.4.2h.6l.4.3.4.3.3.2.4.3.4.5.4.4zm8.6 3.2l-.7.7h.4-.5l-.6.2h-4.5l-.2-.2h-.3l-.2-.2h-.2l-.2-.2-.2-.2-.2-.2h-.2v-.3l-.3-.3v-.2l-.3-.2v-.2h-.3l-.2-.3-.2-.3v-.2l-.3-.2v-.3l-.3-.2.8-.6h.2v.4l.3.2.2.3.3.3v.2l.2.2.2.2.2.2.2.2.2.2h.2v.2h.3l.2.2h.2l.2.2h5.4zm-.4 0l.2-.2.2.2h-.4zm4.5 13v-1h4.1l.5-.2h.4l.3-.3h.2v-1l-.2-.3-.2-.4-.3-.5-.4-.4-.5-.4-.4-.4-.4-.5-.6-.5-.6-.6-.6-.6-.7-.5-.6-.6-.7-.7-.7-.7-.8-.6-.8-.7-.8-.7-1-.7.8-.8.8.7.8.5.8.7.8.7.7.5.8.6.8.7.7.6.6.6.7.4.6.6.5.5.5.5.4.5.4.4.4.4.3.4.2.4v2.3l-.4.3-.3.2-.4.3-.6.2h-.6l-.7.2h-3.6zm-15.2 2l-1 .4.5-.8h3.4l.6-.2h.5l.5-.2h.5l.5-.2h.5l.4-.2h.5l.5-.2.4-.2h.6l.4-.2.5-.2h.4l.4-.2h.5l.3-.2h.5l.4-.2h.5l.5-.2h2.6v1H431l-.4.2h-.9l-.4.3h-.8l-.4.2h-.5l-.4.3h-.6l-.5.2h-.5l-.5.3h-.5l-.5.2h-.5l-.5.2h-.5l-.6.2h-.6l-.6.2h-3l.5-.7zm-1 .4l-.3-.8h.8l-.4.8zm4 4l-.2.8h-.4v-.2h-.2l-.2-.2h-.2v-.2h-.2v-.2h-.2v-.2l-.2-.3-.2-.2-.3-.3-.2-.2v-.2h-.2v-.4l-.3-.2v-.3h-.3v-.4l-.3-.3v-.4l-.3-.4 1-.5v.5l.2.3.2.3v.4l.3.3.2.2v.2l.3.2v.2l.2.2v.2h.2v.3l.2.2v.2l.2.2h.2v.2h.4v.2h.4zm-.2.8zm20-2.5v1l-.7-.2h-4.7l-.6.2h-.7l-.6.2h-.7l-.6.2-.6.2h-.6l-.6.2h-.7l-.7.3-.6.2h-.6l-.6.2h-.6l-.6.2h-4.6l-.6-.2.3-1 .6.2h4.8l.6-.2h.6l.5-.2h.6l.7-.2.7-.2h.6l.6-.2.6-.2h.7l.5-.2h.6l.7-.2h.7l.6-.2h4.9zm-23-40l1 .3.3.3.5.7.6.8.8 1.2 1 1.2 1 1.3 1 1.5 1.3 1.5 1.3 1.7 1.4 1.8 1.4 1.8 1.5 1.8 1.5 2 1.5 1.8 1.4 2 1.4 2 1.3 1.7 1.3 2 1.2 1.7 1 1.7 1 1.6.8 1.5.6 1.4.4 1.3.3 1.2v2l-.6.7-.8.5H441v-1h2l.4-.3.3-.4V360l-.3-1.2-.4-1.2-.6-1.3-.8-1.5-1-1.6-1-1.7-1-1.8-1.3-1.8-1.4-2-1.4-2-1.4-1.8-1.5-2-1.4-1.8-1.5-1.8-1.4-1.8-1.3-1.8-1.3-1.6-1.2-1.6-1-1.5-1.2-1.3-1-1.2-.7-1-.6-1-.5-.7-.3-.4v-.6zm-12-3.7v-1l-.5.2.4-.6.3-.7.5-.6.5-.4.5-.3.6-.3.5-.2.5-.2h2.6l.6.2.6.2.5.3.6.2.6.3.4.4.5.2.4.4.4.4.5.5.4.4.3.4.3.4.3.5.2.5.2.5v.5l.2.5v1l-1-.3v-1l-.2-.4v-.4l-.3-.4-.2-.4-.3-.4-.3-.4-.5-.4-.3-.4-.5-.4-.4-.4-.5-.3-.4-.3-.5-.3h-.7l-.5-.3-.5-.2h-.5l-.6-.2h-2l-.4.3-.5.2-.4.3-.5.5-.4.4-.3.4-.3.6-.4.3zm.4-.3l-.2.2h-.2l.4-.2zm-.5-.2v.5-.5zm.4.2l-.2.2h-.2l.4-.2z" fill="#21231e"/> - <path d="M407 317.2l-1.3.4v-.6h.2v-.2h.8v.2h.2v.2zm7.6 10.6l-.8 1-.4-.4-.3-.4-.3-.3-.3-.3-.4-.3-.3-.2-.3-.4-.3-.3-.2-.2-.3-.4-.3-.3-.3-.2-.4-.4-.3-.3-.2-.2-.2-.4-.2-.3-.3-.3-.2-.3v-.4l-.4-.3-.2-.4-.2-.4-.2-.4-.2-.4v-.4l-.3-.3-.2-.4v-.3l-.3-.3v-.4l-.3-.4 1.2-.4v.7l.3.3v.3l.3.4v.3l.3.4v.3l.3.4.2.3.2.3.2.4v.3l.3.3.2.4.3.3.2.3.3.4.2.3.3.3.3.3.4.4.2.3.3.3.2.3.3.3.4.2.2.3.3.3.4.4.2.3.4.3zm-.8 1l.8-1v.2h.2v.7h-.4v.2h-.7zm-9.5-4.6c.8 0 1.3.7 1.2 1.5s-.8 1.3-1.5 1.2c-.8-.2-1.3-.8-1.2-1.6s.8-1.3 1.5-1.2zm-45.9 38.4h.2v-.2h.4v.2h.2v.2l.2.2v.4h-.2l-.8-.8zm-22.7 56l.2-1V416l.4-1.5.3-1.5.4-1.7.6-1.8.5-2 .7-2 .6-2 .6-2 .6-2.2.8-2.2.7-2.2 1-2 .7-2.3 1-2.3.7-2.2 1-2.2.8-2 1-2.2.8-2 1-2 .8-2 1-1.7.8-1.5 1-1.6.7-1.5 1-1.3.7-1.2.8-1 .8-.8.8-.6.7 1-.6.5-.7.8-.7 1-.8 1-1 1.3-.7 1.5-1 1.5-.7 1.7-1 1.7-.8 2-1 1.8-.8 2-1 2-.8 2.3-1 2-.7 2.3-1 2.3-.7 2.3-.8 2.2-.7 2.2-.8 2.2-.6 2-.6 2-.6 2.2-.6 2-.5 1.8-.4 1.8-.4 1.6-.5 1.6-.2 1.4-.2 1.3v1H336zm5.6 80.5l-.7-2-.7-2-.7-2.2-.6-2.2-.6-2.2-.4-2.4-.4-2.3-.5-2.4-.4-2.5-.3-2.4-.3-2.5-.3-2.7-.2-2.6-.3-2.6-.2-2.5-.2-2.6v-3l-.2-2.7v-18.5l.3-2.7v-2.5l.2-2.6v-2.7l.3-2.6.2-2.5.2-2.5h1.2l-.3 2.6-.2 2.5-.2 2.6-.2 2.6v2.6l-.2 2.6v2.6l-.2 2.7v18.8l.2 2.6v2.6l.3 2.6.3 2.6.3 2.6.3 2.5.2 2.5.3 2.5.4 2.4.3 2.5.5 2.3.5 2.3.5 2.3.6 2.2.6 2 .7 2.2.7 2-1 .4zm1-.4v.8h-.8v-.2l1-.6z" fill="#21231e"/> - </g> - <use xlink:href="#e" transform="matrix(-1 0 0 1 964.297 0)" height="900" width="1350"/> - <path d="M473 398.4h-.2v.5h-.2v.8l.2.7v1.6l.2.8.2.8v.7l.3.8v.8l.3.7.2.8.3.7.2.7.2.7.3.7.3.8.3.7.3.7.2.7.3.6.4.6.2.7.4.5.4.7.4.7.4.5.5.6.4.8.5.6.4.6.5.6.6.6.2.2h.8v-.2l.6-.6.5-.6.5-.6.4-.6.5-.7.5-.5.4-.6.3-.8.4-.6.3-.7.4-.8.4-.6.3-.7.4-.8.3-.7.3-.7.3-.7.3-.6.2-.7.3-.7.3-.7.2-.8v-.7l.3-.7.2-.7v-.7l.3-.8v-1.4l.2-.8v-2.1h-1v.4l-.2 1v1.4l-.2.7v.7l-.2.7-.2.7v.8l-.3.7-.2.7-.2.7v.6l-.3.7-.3.7-.2.7-.3.7-.4.6-.2.7-.4.7-.3.6-.3.7-.4.6-.4.7-.3.6-.4.6-.5.6-.4.6-.4.7-.4.7-.4.6-.5.6h-.2l-.5-.7-.4-.6-.4-.6-.4-.6-.4-.6-.4-.6-.4-.6-.4-.6-.3-.7-.4-.6-.4-.7-.3-.6-.3-.7-.4-.7-.2-.6-.3-.7-.2-.7-.2-.7-.2-.7-.2-.7-.2-.8-.2-.7-.2-.7v-.7l-.3-.6v-.8l-.2-.7v-2.3l-.2-.8v-.4h-.2v-.2h-.5z" fill="#21231e"/> - </g> - <g transform="translate(-32 32) scale(.53333)"> - <path d="M549.2 422v108.6c0 19.4-7.5 37-19.7 49.8-12 12.8-29 20.7-47.3 20.7-18.5 0-35.3-7.8-47.4-20.6-12-12.8-19.7-30.4-19.7-49.8V422h134.2z" fill="#c6363c"/> - <use xlink:href="#f" transform="matrix(-1 0 0 1 964.297 -90.088)" height="900" width="1350"/> - <path d="M549.2 488.6v28h-53v83a63.8 63.8 0 0 1-14 1.5c-4.8 0-9.5-.4-14-1.5v-83h-53v-28h53V422h28v66.6h53z" fill="#fff" stroke="#21231e"/> - <use xlink:href="#f" transform="translate(0 -90.088)" height="900" width="1350"/> - <path id="f" d="M459 567.3V528c-8.4-2.3-29.3-10.6-30.3 7.6-.5 8.4 10.4 14 13.3 6.5 1.4-3.4 0-6-2-6.7-2.4-.8-4.6 1-4 3.6-8.8-4.7 8-14.6 15.5-1.7 2.2 3.7-3.7 7.6-3.7 10.4 0 2.7 5.8 7 3.7 10.3-7.7 12.8-24.3 3-15.5-1.6-.6 2.7 1.6 4.5 4 3.6 2-.8 3.4-3.3 2-6.8-3-7.5-13.8-2-13.3 6.5 1 18.2 22 10 30.4 7.6z" fill="#fff" stroke="#21231e"/> - <use xlink:href="#f" transform="matrix(-1 0 0 1 964.297 0)" height="900" width="1350"/> - <path d="M414 421v113.3l.2 1.7v2l.4 1.7.2 1.8.3 1.7.4 1.8.3 1.8.4 1.7.6 1.7.5 1.7.6 1.5.6 1.7.5 1.6.7 1.6.7 1.6.7 1.6.8 1.6.8 1.5.8 1.5 1 1.5.8 1.5 1 1.4.8 1.4 1 1.4 1 1.4 1 1.3 1 1.5 1.2 1.2 1 1.3 1.2 1.2 1.2 1.2 1.2 1.2 1.2 1 1.3 1.3 1 1 1.4 1 1.3 1 1.4 1 1.5 1 1.4 1 1.3.8 1.4.8 1.5.8 1.4.8 1.6.7 1.5.6 1.5.7 1.5.6 1.6.5 1.6.5 1.5.5 1.6.5 1.8.4 1.6.4 1.7.4 1.8.2 1.7.3 1.7.2h1.7l1.6.2h8.9l1.7-.3 1.8-.3 1.7-.3 1.7-.2 1.7-.4 1.5-.4 1.7-.4 1.6-.5 1.6-.5 1.6-.5 1.5-.6 1.6-.7 1.6-.7 1.6-.7 1.5-.8 1.4-.8 1.6-.8 1.4-1 1.5-.7 1.4-1 1.2-1 1.4-1 1.3-1 1.2-1 1.3-1 1.2-1.3 1.2-1 1-1.3 1.3-1.2 1.2-1.2 1-1.3 1.2-1.2 1-1.4 1-1.2 1-1.4 1-1.4 1-1.4 1-1.4.7-1.5 1-1.5.7-1.5.8-1.5.8-1.6.7-1.6.6-1.6.6-1.6.6-1.6.5-1.7.5-1.6.5-1.8.4-1.7.6-1.7.3-1.8.2-1.8.3-1.7.3-1.8v-.9l.3-2 .2-1.7V421H414zm2.3 2.2H548V536l-.3 1.6-.2 1.8-.2 1.7-.3 1.8-.3 1.7-.4 1.7-.3 1.7-.5 1.5-.4 1.7-.4 1.6-.5 1.6-.5 1.6-.6 1.5-.8 1.6-.7 1.6-.7 1.5-.7 1.6-.7 1.4-.8 1.5-.8 1.4-1 1.3-.8 1.4-1 1.3-1 1.3-1 1.3-1 1.3-1 1.2-1.2 1.2-1 1.2-1.2 1-1.2 1.3-1.2 1-1.2 1-1.2 1-1.3 1-1.2 1-1.4 1-1.4 1-1.3.8-1.4 1-1.5.7-1.4.8-1.3.7-1.5.8-1.5.6-1.4.7-1.5.7-1.6.5-1.5.6-1.5.5-1.6.4-1.6.4-1.6.5-1.6.3-1.6.3-1.7.4H489l-1.8.3h-1.7l-1.6.2h-3.6l-1.6-.2H477l-1.6-.3h-1.6l-1.7-.4-1.5-.2-1.6-.3-1.7-.4-1.6-.3-1.6-.4-1.4-.5-1.6-.6-1.5-.5-1.5-.6-1.5-.6-1.4-.6-1.4-.8-1.4-.7-1.4-.8-1.4-.8-1.4-1-1.3-.7-1.4-1-1.3-1-1.2-1-1.3-1-1.2-1-1.2-1-1-1-1.3-1.3-1-1-1.2-1.3-1-1.2-1-1.3-1.2-1.4-1-1.3-1-1.3-1-1.3-.8-1.4-.8-1.4-1-1.5-.7-1.5-.8-1.4-.7-1.5-.8-1.4-.6-1.5-.6-1.5-.6-1.5-.5-1.6-.6-1.6-.5-1.6-.5-1.7-.4-1.6-.4-1.8-.4-1.7-.3-1.7-.3-1.7-.2-1.6-.2-1.8-.2-1.7v-5.4z" fill="#21231e"/> - </g> - </g> -</svg> diff --git a/img/flags/1x1/ru.svg b/img/flags/1x1/ru.svg deleted file mode 100644 index 78cea08..0000000 --- a/img/flags/1x1/ru.svg +++ /dev/null @@ -1,7 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" height="512" width="512" viewBox="0 0 512 512"> - <g fill-rule="evenodd" stroke-width="1pt"> - <path fill="#fff" d="M0 0h512.005v512H0z"/> - <path fill="#0039a6" d="M0 170.667h512.005V512H0z"/> - <path fill="#d52b1e" d="M0 341.333h512.005V512H0z"/> - </g> -</svg> diff --git a/img/flags/1x1/rw.svg b/img/flags/1x1/rw.svg deleted file mode 100644 index 563c590..0000000 --- a/img/flags/1x1/rw.svg +++ /dev/null @@ -1,13 +0,0 @@ -<svg xmlns:xlink="http://www.w3.org/1999/xlink" xmlns="http://www.w3.org/2000/svg" height="512" width="512" viewBox="0 0 512 512"> - <path fill="#20603d" d="M0 0h512v512H0z"/> - <path fill="#fad201" d="M0 0h512v384H0z"/> - <path fill="#00a1de" d="M0 0h512v256H0z"/> - <g transform="translate(374.4 133.76) scale(.7111)"> - <g id="b"> - <path id="a" d="M116.1 0L35.692 4.7l76.452 25.35L33.26 13.776l67.286 44.273L28.56 21.915l53.535 60.18-60.18-53.534 36.135 71.986L13.777 33.26l16.272 78.884L4.7 35.692 0 116.1-1-1z" fill="#e5be01"/> - <use height="100%" width="100%" xlink:href="#a" transform="scale(1 -1)"/> - </g> - <use height="100%" width="100%" xlink:href="#b" transform="scale(-1 1)"/> - <circle r="34.3" fill="#e5be01" stroke="#00a1de" stroke-width="3.4"/> - </g> -</svg> diff --git a/img/flags/1x1/sa.svg b/img/flags/1x1/sa.svg deleted file mode 100644 index a12ae3b..0000000 --- a/img/flags/1x1/sa.svg +++ /dev/null @@ -1,26 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" height="512" width="512" viewBox="0 0 512 512"> - <defs> - <clipPath id="a"> - <path fill-opacity=".67" d="M124.02 0h496.06v496.06H124.02z"/> - </clipPath> - </defs> - <g clip-path="url(#a)" fill-rule="evenodd" transform="translate(-128) scale(1.0321)"> - <path fill="#199d00" d="M0 0h744.09v496.06H0z"/> - <path d="M187.52 140.62c-.859 11.589-1.89 31.983 7.957 34.075 11.91 1.145 5.343-20.158 9.654-24.021.815-1.909 2.318-1.919 2.442.489v18.07c-.109 5.876 3.754 7.607 6.755 8.821 3.123-.241 5.208-.137 6.432 2.902l1.465 31.257s7.243 2.073 7.588-17.581c.346-11.54-2.305-21.2-.751-23.445.055-2.206 2.872-2.338 4.826-1.263 3.113 2.196 4.5 4.908 9.338 3.823 7.362-2.028 11.787-5.609 11.896-11.262-.43-5.372-1.032-10.745-3.36-16.117.325-.977-1.421-3.508-1.097-4.485 1.323 2.072 3.336 1.9 3.794 0-1.253-4.129-3.197-8.085-6.349-9.797-2.605-2.295-6.417-1.826-7.813 2.96-.647 5.515 1.988 12.067 6.004 17.409.853 2.087 2.051 5.555 1.524 8.678-2.137 1.219-4.274.711-6.064-1.179 0 0-5.86-4.395-5.86-5.372 1.555-9.956.345-11.085-.517-13.848-.602-3.814-2.412-5.037-3.878-7.642-1.466-1.554-3.449-1.554-4.397 0-2.59 4.49-1.382 14.129.489 18.446 1.352 3.971 3.418 6.463 2.442 6.463-.804 2.244-2.466 1.726-3.675-.864-1.726-5.353-2.072-13.34-2.072-16.937-.518-4.459-1.087-13.97-4.022-16.387-1.79-2.438-4.444-1.249-5.371.976-.193 4.426-.213 8.851.285 12.93 2.013 7.154 2.645 13.444 3.622 20.77.271 9.813-5.674 4.258-5.402-.607 1.371-6.319 1.015-16.265-.203-18.786-.966-2.521-2.106-3.143-4.455-2.728-1.865-.114-6.664 5.126-8.011 13.818 0 0-1.149 4.474-1.639 8.446-.659 4.489-3.614 7.657-5.686-.631-1.791-6.024-2.892-20.854-5.891-17.381z" fill="#fff"/> - <path d="M219.88 188.16c-10.51 5.138-20.675 9.931-31.014 14.896.378-7.03 14.745-19.72 24.543-19.899 6.377.178 4.775 2.471 6.471 5.003z" fill="#fff"/> - <path d="M214.46 197.88c-16.345 42.133 38.275 48.004 44.379 1.726.575-1.899 2.878-3.799 3.281-.691-1.267 41.902-42.249 44.781-49.213 31.599-1.726-3.107-2.245-10.014-2.418-14.159-1.036-8.23-5.352-5.065-6.043 3.108-.691 4.547-.518 5.815-.518 10.189 2.187 33.096 54.97 18.879 63.545-8.461 4.547-15.139-.749-26.304 1.726-26.248 5.238 5.642 12.547.749 14.159-1.208.691-.979 2.419-1.611 3.627-.345 4.086 2.937 11.283 1.553 12.778-3.627.864-5.065 1.555-10.303 1.728-15.712-3.34 1.037-5.814 1.726-6.044 3.108l-.691 4.489c-.287 1.44-3.167 1.496-3.281-.346-1.266-5.756-6.504-6.504-9.67 2.419-2.13 1.726-5.986 2.072-6.39-.518.518-5.986-1.9-6.793-6.734-3.972-1.554-11.857-3.107-23.196-4.662-35.053 2.015-.058 3.858 1.438 5.7-.864-2.017-6.273-6.275-19.109-8.636-20.03-1.151-1.381-2.131-.518-3.626-.173-2.532.806-4.893 2.993-4.145 7.253 2.993 18.188 4.951 32.06 7.944 50.249.46 2.13-1.324 4.948-3.626 4.661-3.914-2.648-4.89-8-11.569-7.771-4.835.058-10.362 5.296-11.051 10.363-.806 4.027-1.095 8.401-.002 11.913 3.398 4.086 7.484 3.685 11.053 2.763 2.935-1.208 5.352-4.144 6.389-3.454.691.864.171 10.532-13.815 17.958-8.461 3.799-15.196 4.663-18.82-2.245-2.245-4.317.172-20.721-5.355-16.921z" fill="#fff"/> - <path d="M283.79 155.05c3.281-1.209 18.824-18.994 18.824-18.994-.807-.691-1.527-1.209-2.333-1.9-.864-.748-.777-1.496 0-2.245 3.856-2.244 2.619-7.166.605-9.41-3.339-1.497-6.246-1.008-8.376.086-2.705 2.59-3.337 6.734-1.207 9.324 2.073.979 4.144 3.08 2.762 4.231-6.359 6.792-23.771 18.505-21.756 18.908.43.576 11.137.547 11.481 0zM189.93 217.99c-5.829 9.286-6.336 23.159-3.12 27.295 1.709 1.954 4.517 2.81 6.594 2.198 3.662-1.588 5.265-9.008 4.396-11.722-1.222-1.913-2.185-2.216-3.405-.589-2.577 5.232-3.647 1.643-3.873-1.281-.395-5.545.127-10.652.729-14.696.641-4.145-.011-2.878-1.321-1.205zM439.02 203.12c-5.636-12.131-13.438-24.119-15.921-28.724-2.482-4.607-21.223-31.805-23.982-34.864-6.088-7.235 9.886 3.013-2.021-11.351-4.54-3.895-4.804-4.132-8.572-7.31-1.901-1.349-6.542-3.813-7.364.271-.413 3.601-.19 5.554.415 8.552.464 1.999 3.376 5.347 4.808 7.287 19.014 25.558 35.874 51.369 52.133 83.821 2.567-1.22 2.006-15.652.504-17.682z" fill="#fff"/> - <path d="M414.28 243.71c-1.108 1.244 2.736 6.565 7.732 6.56 8.355-.97 15.71-5.663 22.52-18.017 1.821-2.881 5.022-9.043 5.116-13.823.637-28.025-1.403-49.832-5.602-70.087-.269-1.973-.105-4.292.229-4.884.541-.646 2.376.003 3.349-1.593 1.428-1.458-3.792-13.535-6.768-18.187-1.057-2.077-1.425-3.464-3.174.244-1.84 3.014-3.076 8.273-2.931 13.187 3.986 27.595 5.21 51.736 7.815 79.332.212 2.669-.18 6.547-1.954 8.093-6.562 6.852-16.033 15.286-26.332 19.175zM527.14 243.56c-5.996 3.466-6.003 7.453-1.155 7.597 8.355-.97 18.227-1.664 25.037-11.945 1.822-2.881 3.986-10.672 4.08-15.452.637-28.025-.366-48.943-4.565-69.198-.269-1.973-1.142-6.514-.808-7.106.541-1.387 3.265.151 4.238-1.445 1.428-1.458-7.051-12.35-10.027-17.002-1.057-2.077-1.425-3.464-3.174.244-1.84 3.014-2.483 8.421-1.746 13.187 4.43 29.965 7.728 52.477 8.408 79.036-.381 2.521-.476 3.88-1.658 7.056-2.615 3.352-5.512 7.543-8.229 9.569-2.716 2.025-8.511 3.958-10.401 5.459z" fill="#fff"/> - <path d="M531.64 216.7c-.069-7.008.099-13.059-.132-18.286-.23-5.227-1.154-9.483-2.963-13.193-1.712-3.978-.649-7.175-1.453-11.412-.803-4.236-.605-10.58-1.819-15.607-.333-1.963-1.353-8.25-1.038-8.853.495-1.403 2.38.044 3.301-1.582 1.379-1.503-4.783-17.447-7.909-22-1.124-2.041-3.165-1.342-5.682 1.977-2.334 2.184-1.468 7.165-.577 11.904 5.995 31.286 10.467 59.603 9.491 89.385-.299 2.532 8.843-7.553 8.781-12.333zM487.34 177.89c-3.771-.069-11.669-7.338-13.974-11.597-.871-2.443-.312-4.826.456-6.222 1.396-.908 3.544-1.928 5.15-.95 0 0 1.665 2.33 1.343 2.626 2.059.986 2.933.419 3.142-.419.14-1.466-.609-2.34-.617-3.955.873-4.38 5.879-5.061 7.764-2.268 1.38 1.703 1.886 5.321 2.095 7.764-.022 1.248-2.043-.216-3.191.084-1.149.301-1.425 1.626-1.514 2.825-.208 3.176-.584 8.272-.654 12.112zM417.75 224.47c1.039-9.522-.384-26.48-.479-32.099-.381-13.274-2.549-38.912-3.581-43.195-1.163-8.074 3.321.886 2.7-3.807-1.454-8.063-5.926-13.528-11.183-20.913-1.695-2.402-1.638-2.892-4.255.589-2.896 6.57-.396 11.089.352 16.205 3.791 16.67 6.003 32.009 7.033 47.172 1.03 15.164 1.346 31.558.406 47.528 2.841.112 7.409-4.596 9.007-11.48z" fill="#fff"/> - <path d="M544.47 209.22c-6.649-11.157-16.683-23.24-19.364-27.733-2.68-4.494-25.352-33.746-28.241-36.682-8.294-8.713 3.804-1.418-1.588-8.148-4.56-5.007-5.89-6.579-9.793-9.59-1.957-1.265-3.143-3.68-3.786.436-.256 3.616-.523 7.799-.28 10.847-.014 1.694 1.75 4.877 3.265 6.753 20.109 24.706 42.042 49.933 59.699 81.646 2.512-1.331 1.677-15.566.088-17.529z" fill="#fff"/> - <path d="M242.79 188.63c-.479.839-1.544 1.926-1.187 3.051.747 1.012 1.343 1.217 2.587 1.272 1.079 0 2.587.255 2.911-.382.581-.64 1.023-1.946.539-3.179-1.124-2.809-4.263-1.762-4.85-.762z" fill="#1ba400"/> - <path d="M467.16 351.26c8.892.327 14.712.406 22.621 1.347 0 0 6.82-.674 9.256-1.042 10.295-.982 10.751 14.704 10.751 14.704-.113 9.2-3.664 9.681-8.197 10.653-2.59.33-3.951-1.551-5.312-3.554-1.709.715-4.031.818-6.845.428-3.705-.232-7.411-.217-11.116-.449-3.937-.347-6.031.41-9.968.063-.811 1.274-1.866 3.038-4.274 2.47-2.003-.221-4.376-5.845-3.677-10.12 1.446-3.066 1.049-2.08.898-3.427-36.357-.926-73.062-2.547-108.72-2.084-27.904.116-55.462 1.274-83.02 2.432-14.705-.232-25.936-2.548-33.694-13.895.695 0 37.515 2.084 48.284 1.389 19.915-.232 38.093-1.852 58.356-2.431 39.947.694 79.547.695 119.49 3.473-3.821-2.614-3.958-8.789 1.923-10.298.5-.344.758 3.07 1.638 3.006 4.705-.353 2.642 6.021 1.607 7.335zM306.78 131.07c-6.054 17.303 3.468 36.23 10.07 34.387 4.763 1.972 7.796-7.089 9.746-17.016 1.334-2.786 2.342-3.083 3.027-1.651-.176 13.201.948 16.125 4.342 20.132 7.571 5.841 13.834.746 14.325.254l5.895-5.895c1.312-1.38 3.059-1.461 4.912-.245 1.801 1.637 1.548 4.465 5.404 6.426 3.245 1.298 10.183.3 11.79-2.496 2.163-3.707 2.682-4.98 3.684-6.386 1.544-2.055 4.176-1.141 4.176-.492-.246 1.146-1.791 2.293-.737 4.357 1.836 1.377 2.26.491 3.346.185 3.841-1.836 6.725-10.191 6.725-10.191.17-3.108-1.572-2.851-2.702-2.211-1.474.901-1.57 1.189-3.044 2.09-1.878.279-5.521 1.524-7.322-1.265-1.839-3.353-1.864-8.031-3.27-11.413 0-.246-2.44-5.327-.169-5.652 1.146.213 3.591.86 3.98-1.199 1.202-2.007-2.574-7.69-5.158-10.562-2.243-2.462-5.351-2.759-8.351-.245-2.101 1.933-1.799 4.093-2.211 6.14-.535 2.351-.421 5.243 1.965 8.351 2.097 4.135 5.923 9.46 4.667 16.948 0 0-2.235 3.539-6.129 3.076-1.623-.354-4.255-1.043-5.661-11.427-1.064-7.86.251-18.857-3.085-24.013-1.205-3.113-2.085-6.119-5.021-.795-.789 2.091-4.175 5.264-1.719 11.79 2.009 4.138 2.827 10.872 1.915 18.364-1.392 2.129-1.701 2.85-3.526 4.979-2.564 2.757-5.346 2.053-7.477 1.024-1.991-1.342-3.55-2.036-4.459-6.299.164-6.795.543-17.918-.699-20.278-1.831-3.655-4.851-2.333-6.141-1.229-6.198 5.667-9.26 15.229-11.131 22.843-1.719 5.549-3.548 3.959-4.834 1.72-3.131-2.934-3.343-25.878-7.123-22.106z" fill="#fff"/> - <path d="M325.01 168.68c2.749-1.947 1.464-3.308 5.575.802 5.147 8.8 8.455 20.196 8.951 30.293-.217 2.488 1.537 4.063 2.339 3.522.477-5.841 14.681-13.98 27.706-15.17 1.992-.433 1.023-4.25 1.348-6.197-.781-7.231 4.063-13.814 10.853-14.339 9.241 1.366 12.317 6.3 12.473 13.831-.998 14.458-16.059 16.909-24.521 18.062-1.298.491-1.839 1.09 0 1.798l35.456.161 1.809 1.045c.217.845-.517.14-1.917 2.445-1.399 2.305-3.463 7.62-3.57 11.169-10.564 3.397-21.49 4.885-32.595 6.228-3.858 1.951-5.77 4.551-4.978 7.477 1.298 3.245 9.844 6.487 9.844 6.641 1.623 1.018 3.543 3.393-.459 8.26-17.295-.761-30.697-8.121-35.337-18.509-1.398-1.084-2.904-.006-3.869 1.398-6.752 8.704-13.396 16.543-24.908 20.704-6.865 1.715-13.893-1.053-17.212-5.549-2.222-2.559-2.137-5.384-2.953-5.996-3.71 1.641-35.64 15.208-31.593 8.888 7.771-8.317 21.224-14.427 33.105-22.636.857-2.75 2.416-12.055 7.109-15.085.271.023-.744 5.464-.642 7.759.053 1.884-.138 2.622.274 2.137.802-.511 15.218-11.839 16.332-15.313 1.406-1.992.422-7.037.422-7.19-2.704-6.968-6.496-7.56-7.902-11.022-1.266-4.599-.693-9.849 1.936-11.312 2.334-2.119 5.099-1.857 7.649.459 2.912 2.608 5.498 7.705 6.246 11.502-.5 1.502-3.81-.998-4.959-.253 2.033 2.105 2.982 4.533 3.716 7.504 1.878 7.953 1.305 11.045-.585 16.188-6.401 13.458-14.581 17.474-21.738 22.459-.191.068-.318 3.415 2.374 5.225.928.974 4.661 1.474 9.051.068 8.482-4.626 17.288-13.147 21.659-22.64 1.269-7.181-.491-14.795-2.358-21.435-2.813-6.49-6.126-15.756-6.126-15.909-.109-4.047.22-5.451 1.995-7.47zM232.18 131.25c4.081 1.946 11.753 1.118 11.429-5.462 0-.582-.148-2.551-.206-3.084-.833-1.94-3.106-1.461-3.621.542-.162.656.289 1.724-.305 2.054-.341.344-1.645.142-1.591-1.676 0-.579-.427-1.202-.684-1.569-.258-.169-.422-.216-.889-.216-.569.023-.56.171-.872.649-.132.487-.315.963-.315 1.515-.071.647-.315.878-.791.973-.532 0-.412.059-.843-.216-.256-.28-.576-.387-.576-.865 0-.495-.112-1.296-.261-1.623-.226-.298-.589-.436-.998-.541-2.229.008-2.383 2.55-2.255 3.515-.167.182-.262 4.742 2.778 6.004z" fill="#fff"/> - <path d="M351.81 181.89c4.081 1.946 13.795.826 11.429-5.462 0-.582-.148-2.551-.206-3.084-.833-1.94-3.106-1.461-3.621.542-.162.656.289 1.724-.305 2.054-.341.344-1.645.142-1.591-1.676 0-.579-.427-1.202-.684-1.569-.258-.169-.422-.216-.889-.216-.569.023-.56.171-.872.649-.132.487-.315.963-.315 1.515-.071.647-.315.878-.791.973-.532 0-.412.059-.843-.216-.256-.28-.576-.387-.576-.865 0-.495-.112-1.296-.261-1.623-.226-.298-.589-.436-.998-.541-2.229.008-2.383 2.55-2.255 3.515-.167.182-.262 4.742 2.778 6.004zM421.56 160.93c4.081 1.946 11.753 1.118 11.429-5.462 0-.582-.148-2.551-.206-3.084-.833-1.94-3.106-1.461-3.621.542-.162.656.289 1.724-.305 2.054-.341.344-1.645.142-1.591-1.676 0-.579-.427-1.202-.684-1.569-.258-.169-.422-.216-.889-.216-.569.023-.56.171-.872.649-.132.487-.315.963-.315 1.515-.071.647-.315.878-.791.973-.532 0-.412.059-.843-.216-.256-.28-.576-.387-.576-.865 0-.495-.112-1.296-.261-1.623-.226-.298-.589-.436-.998-.541-2.229.008-2.383 2.55-2.255 3.515-.167.182-.262 4.742 2.778 6.004zM457.69 213.56c-7.112 8.015-3.976 21.272-2.37 24.128 2.345 4.691 4.233 7.7 8.796 10.02 4.156 3.059 7.394 1.147 9.179-.995 4.182-4.334 4.232-15.399 6.195-17.592 1.377-4.028 4.844-3.34 6.527-1.555 1.631 2.345 3.552 3.857 5.948 5.133 3.901 3.441 8.559 4.07 13.148.934 3.136-1.759 5.175-4.032 7.011-8.544 2.04-5.456.903-30.663.495-45.603-.157-1.172-4.054-20.545-4.054-20.761 0-.217-.515-9.887-.944-12.191-.075-.935-.307-1.204.673-1.085 1.039.874 1.181.929 1.83 1.217 1.049.192 1.988-1.593 1.355-3.236l-9.735-17.956c-.781-.769-1.79-1.614-3.029.217-1.184 1.038-2.445 2.917-2.406 5.332.288 4.255 1.036 8.585 1.324 12.84l3.895 21.85c1.226 15.576 1.533 28.323 2.759 43.899-.172 6.595-2.222 12.345-4.145 13.175 0 0-2.926 1.696-4.888-.177-1.427-.573-7.139-9.519-7.139-9.519-2.92-2.677-4.845-1.912-6.923 0-5.73 5.533-8.323 15.884-12.217 23.023-1.004 1.593-3.842 2.957-6.986-.116-7.985-10.909-3.305-26.429-4.299-22.438zM423.4 122.72c3.656 1.53 6.235 8.936 5.394 12.552-.728 4.473-2.667 9.304-4.061 8.675-1.515-.562 1.033-4.446-.423-8.522-.809-2.653-5.798-7.5-5.273-8.929-1.03-2.994 2.121-4.304 4.363-3.776z" fill="#fff"/> - <path d="M469.46 217.96c.769-8.893-.529-14.316-.76-19.543-.23-5.227-5.912-45.11-7.064-49.065-1.39-7.478 5.523-1.003 4.768-5.352-2.392-5.483-8.344-13.467-10.213-18.23-1.124-2.041-.652-3.856-3.169-.537-2.334 7.631-3.144 13.868-2.253 18.607 5.995 31.286 12.143 57.299 11.167 87.081 2.843.019 6.12-6.505 7.524-12.961zM531.93 135.33c3.333 1.657 5.285 10.938 4.917 13.589-.663 4.843-2.431 10.073-3.702 9.392-1.381-.608.277-7.182-.386-9.226-.737-2.872-5.285-8.12-4.807-9.667-.939-3.241 1.934-4.659 3.978-4.088zM284.22 201.14c3.188 1.217 5.057 8.037 4.705 9.986-.636 3.558-2.328 7.401-3.542 6.901-1.322-.447.265-5.278-.37-6.78-.269-3.643-4.694-5.529-4.601-7.103-.826-2.893 1.851-3.425 3.808-3.004z" fill="#fff"/> - <path d="M361.25 211.38c4.115.261 6.171 3.49 2.317 4.844-3.802 1.302-7.456 2.319-7.473 7.813 1.406 7.656-1.929 5.029-3.918 3.989-2.344-1.683-8.922-5.735-9.859-14.485-.141-2.088 1.487-3.845 4.108-3.833 3.948 1.073 9.773 1.151 14.825 1.672z" fill="#1b9d00"/> - <path d="M199.01 120.52c4.704 1.418 4.982 8.332 4.635 10.353-.627 3.689-2.293 7.673-3.49 7.154-1.302-.463-.051-5.471-.676-7.029-.697-2.188-4.672-6.185-4.221-7.363-.885-2.47 1.824-3.551 3.752-3.115zM291.9 153.12c-3.609 1.952-5.009 7.771-2.762 11.159 2.099 2.984 5.414 1.878 5.856 1.878 3.536.442 5.634-6.629 5.634-6.629s.111-1.988-4.088 1.769c-1.767.331-1.988-.332-2.43-1.327-.368-1.841-.295-3.682.552-5.524.626-1.767-.737-2.541-2.762-1.326zM318.97 117.84c-1.814 1.216-5.424 4.956-5.534 9.265-.11 2.431-.563 2.424 1.029 3.971 1.15 1.658 2.31 1.509 4.631.293 1.333-.982 1.784-1.634 2.233-3.281.553-2.762-2.92 1.31-3.362-1.764-.773-2.854 1.457-4.022 3.556-6.784.07-1.892.029-3.232-2.553-1.7zM340.78 121.72c-.782 1.727-1.719 10.748-1.563 10.748-.624 2.688 2.813 3.838 4.376.383 2.343-6.334 2.343-9.021 2.5-11.708-.73-4.093-3.49-3.965-5.313.577zM478.28 191.69c.469-.469 19.376-13.906 19.376-13.906 1.927-.677 1.51 6.927.625 6.875.364 1.51-18.646 14.427-20.001 13.906-.937.677-1.875-5.208 0-6.875zM495.52 191.58c3.333 1.657 4.66 11.407 4.292 14.058.118 5.156-3.212 9.292-4.483 8.611-1.381-.608.121-6.401-.542-8.445-.737-2.872-3.567-8.276-3.089-9.823-.939-3.241 1.778-4.972 3.822-4.401zM383.06 233.56c1.315-1.922 5.377-4.688 5.469-4.688 1.874-.938 3.705.735 3.594.625.312 1.875-1.186 3.62-.717 6.121.41 1.008.71 2.127 2.557 1.7 3.002-2.362 5.783-2.514 8.785-2.665 2.301.139 2.392 4.034.937 4.063-5.543 1.205-8.027 2.689-11.985 4.2-1.875 1.093-3.484-.294-3.484-.45s-1.097-1.064-.331-3.548c.136-1.992-.666-3.084-2.325-2.858-1.25.676-2.351 1.124-2.976-.313-.246-1.061-.326-1.577.476-2.187zM515.42 238.81c.81 1.031 1.334 1.985-.065 3.679-1.326 1.215-2.26 1.884-3.586 3.099-.626 1.068-1.026 2.688.889 3.204 3.536.994 11.712-4.309 11.712-4.42 1.326-.994.884-2.872.773-2.872-.773-.884-2.515-.359-3.687-.502-.558 0-2.388-.277-1.517-1.897.727-1.008.987-1.625 1.48-2.867.552-1.215.078-2.026-1.911-2.689-2.026-.368-2.835-.184-5.082 0-1.215.258-1.63.801-1.851 2.274.087 2.234 1.446 2.107 2.845 2.991z" fill="#fff"/> - <path d="M383.784 183.827c-.519.896-2.271.852-3.915-.098s-2.555-2.448-2.036-3.345 2.27-.852 3.914.098 2.555 2.448 2.037 3.345zM297.484 131.908c-.982.24-2.266-.635-2.867-1.955s-.293-2.586.69-2.827 2.266.635 2.867 1.956.293 2.586-.69 2.826z" fill="#259f00"/> - <path d="M468.2 363.3c9.06.442 17.572.103 26.632.545 1.641 1.395.469 4.821-.625 4.575-2.946-.074-4.643-.147-7.589-.221-.101-2.886-7.466-2.412-7.254.092-3.977.478-7.564-.139-11.541-.286-1.176-1.464-1.025-4.1.377-4.705z" fill="#209000"/> - </g> -</svg> diff --git a/img/flags/1x1/sb.svg b/img/flags/1x1/sb.svg deleted file mode 100644 index f2b3508..0000000 --- a/img/flags/1x1/sb.svg +++ /dev/null @@ -1,13 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" height="512" width="512" viewBox="0 0 512 512"> - <defs> - <clipPath id="a"> - <path fill-opacity=".67" d="M0 0h496.06v496.06H0z"/> - </clipPath> - </defs> - <g fill-rule="evenodd" clip-path="url(#a)" transform="scale(1.0321)" stroke-width="1pt"> - <path d="M0 491.39L956.69 0H0v491.39z" fill="#0000d6"/> - <path d="M992.13 0L26.33 496.06h965.8V0z" fill="#006000"/> - <path d="M992.163 0h-53.167L0 470.248v25.815h53.15L992.146 26.732V-.002z" fill="#fc0"/> - <path fill="#fff" d="M39.029 96.123l11.55-33.35-30.168-20.601 37.272.034L69.171 8.837l11.488 33.37 37.273-.025-30.175 20.592 11.546 33.354-30.137-20.641zM224.223 96.123l11.55-33.35-30.168-20.601 37.272.034 11.488-33.369 11.488 33.37 37.273-.025-30.175 20.592 11.546 33.354-30.137-20.641zM224.223 236.11l11.55-33.35-30.168-20.602 37.272.034 11.488-33.369 11.488 33.37 37.273-.025-30.175 20.592 11.546 33.354-30.137-20.641zM132.169 166.934l11.55-33.35-30.168-20.601 37.272.034 11.488-33.369 11.488 33.37 37.273-.025-30.175 20.592 11.546 33.354-30.137-20.641zM39.029 236.11l11.55-33.35-30.168-20.602 37.272.034 11.488-33.369 11.488 33.37 37.273-.025-30.175 20.592 11.546 33.354-30.137-20.641z"/> - </g> -</svg> diff --git a/img/flags/1x1/sc.svg b/img/flags/1x1/sc.svg deleted file mode 100644 index f13b625..0000000 --- a/img/flags/1x1/sc.svg +++ /dev/null @@ -1,14 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" height="512" width="512" viewBox="0 0 512 512"> - <defs> - <clipPath id="a"> - <path fill-opacity=".67" d="M0 0h512v496.06H0z"/> - </clipPath> - </defs> - <g fill-rule="evenodd" clip-path="url(#a)" transform="matrix(1 0 0 1.0321 0 0)" stroke-width="1pt"> - <path fill="red" d="M0 0h992.13v496.06H0z"/> - <path d="M0 496.065l992.13-165.349v165.349H0z" fill="#090"/> - <path d="M0 496.065l992.13-330.707v165.358L0 496.065z" fill="#fff"/> - <path d="M0 496.065V0h330.707L0 496.065z" fill="#009"/> - <path d="M0 496.065L330.707 0h330.707L0 496.065z" fill="#ff0"/> - </g> -</svg> diff --git a/img/flags/1x1/sd.svg b/img/flags/1x1/sd.svg deleted file mode 100644 index 9d50744..0000000 --- a/img/flags/1x1/sd.svg +++ /dev/null @@ -1,13 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" height="512" width="512" viewBox="0 0 512 512"> - <defs> - <clipPath id="a"> - <path fill-opacity=".67" d="M0 0h496.06v496.06H0z"/> - </clipPath> - </defs> - <g fill-rule="evenodd" clip-path="url(#a)" transform="scale(1.0321)" stroke-width="1pt"> - <path d="M0 330.7h992.13v165.37H0z"/> - <path fill="#fff" d="M0 165.33h992.13V330.7H0z"/> - <path fill="red" d="M0 0h992.86v165.37H0z"/> - <path d="M0 0v496.06l330.7-248.03L0 0z" fill="#009a00"/> - </g> -</svg> diff --git a/img/flags/1x1/se.svg b/img/flags/1x1/se.svg deleted file mode 100644 index 0e07503..0000000 --- a/img/flags/1x1/se.svg +++ /dev/null @@ -1,16 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" height="512" width="512" viewBox="0 0 512 512"> - <defs> - <clipPath id="a"> - <path fill-opacity=".67" d="M118.97 7.306H609.7v490.73H118.97z"/> - </clipPath> - </defs> - <g clip-path="url(#a)" transform="translate(-124.12 -7.622) scale(1.0433)"> - <g fill-rule="evenodd" stroke-width="1pt"> - <path fill="#006aa7" d="M2.904 7.598h245.368v196.294H2.904zM2.904 301.73h245.368v196.295H2.904z"/> - <path fill="#fecc00" d="M2.904 203.78h245.368v98.147H2.904z"/> - <path fill="#fecc00" d="M247.262 7.318h98.147v490.735h-98.147z"/> - <path fill="#fecc00" d="M342.296 203.808h441.662v98.147H342.296z"/> - <path fill="#006aa7" d="M345.325 301.759h441.661v196.294H345.325zM345.325 7.598h441.661v196.294H345.325z"/> - </g> - </g> -</svg> diff --git a/img/flags/1x1/sg.svg b/img/flags/1x1/sg.svg deleted file mode 100644 index 04b19eb..0000000 --- a/img/flags/1x1/sg.svg +++ /dev/null @@ -1,13 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" height="512" width="512" viewBox="0 0 512 512"> - <defs> - <clipPath id="a"> - <path fill-opacity=".67" d="M27.682 0h708.66v708.66H27.682z"/> - </clipPath> - </defs> - <g fill-rule="evenodd" clip-path="url(#a)" transform="translate(-20) scale(.72249)"> - <path fill="#fff" d="M0 0h1063v708.66H0z"/> - <path fill="#df0000" d="M0 0h1063v354.33H0z"/> - <path d="M245.165 59.399c-49.08 11.253-85.548 47.594-95.86 97.004-14.008 67.128 29.719 132.855 96.976 146.885-67.952 19.373-138.17-19.688-157.365-87.013-19.193-67.323 19.868-137.541 87.193-156.736 23.634-6.74 45.392-6.783 69.056-.14z" fill="#fff"/> - <path fill="#fff" d="M202.056 162.445l-18.946-13.81 23.44-.202 7.281-22.303 7.428 22.248 23.458.037-18.854 13.939 7.226 22.32-19.093-13.627-19.001 13.756zM227.986 239.305l-18.946-13.81 23.44-.202 7.281-22.303 7.428 22.248 23.458.037-18.854 13.939 7.226 22.32-19.093-13.627-19.001 13.756zM314.246 238.735l-18.946-13.81 23.44-.202 7.281-22.303 7.428 22.248 23.458.037-18.854 13.939 7.226 22.32-19.093-13.627-19.001 13.756zM339.966 162.505l-18.946-13.81 23.44-.202 7.281-22.303 7.428 22.248 23.458.037-18.854 13.939 7.226 22.32-19.093-13.627-19.001 13.756zM271.676 111.925l-18.946-13.81 23.44-.202 7.281-22.303 7.428 22.248 23.458.037-18.854 13.939 7.226 22.32-19.093-13.627-19.001 13.756z"/> - </g> -</svg> diff --git a/img/flags/1x1/sh.svg b/img/flags/1x1/sh.svg deleted file mode 100644 index ad7c2d0..0000000 --- a/img/flags/1x1/sh.svg +++ /dev/null @@ -1,81 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" height="512" width="512" viewBox="0 0 512 512"> - <defs> - <clipPath id="a"> - <path fill-opacity=".67" d="M0 0h512v512H0z"/> - </clipPath> - </defs> - <g clip-path="url(#a)"> - <path fill="#006" d="M1023.99 511.951V-.034H-.008V511.95H1023.99z"/> - <path d="M-.008 85.267h107.986L-.008 31.078V-.03h61.784l151.058 75.303V-.03h85.06v75.303L448.953-.03h62.317v31.11L402.751 85.266H511.27v85.365H402.751l108.518 54.19v31.119h-62.317l-151.057-75.314v75.314h-85.061v-75.314L61.776 255.941H-.008v-31.12l107.986-54.189H-.008V85.267z" fill="#fff"/> - <path fill="#ce1126" d="M471.07-.034L300.415 85.324h40.85L511.26-.034h-40.19zM511.28 255.94L341.106 170.63h41.031l129.143 64.973v20.339zM170.967 85.303L-.015-.055v20.384l129.772 64.974h41.21zM170.611 170.604L-.019 255.916h40.83l170.654-85.312h-40.854z"/> - <path fill="#ce1126" d="M-.008 102.975h230.96V-.035h49.984v103.01h230.333v49.986H280.936v102.976h-49.984V152.961H-.008v-49.986z"/> - <path d="M399.67 640.77c-.046 16.332-2.623 33.927-23.764 42.308-21.142-8.381-23.719-25.976-23.765-42.308h47.529z" stroke-width="1.009" fill="#8fc5ff" transform="matrix(4.9436 0 0 4.9441 -1482.9 -2891.1)" stroke="#fff"/> - <path fill="#366cc9" d="M375.9 683.08c9.584-3.799 15.353-9.493 18.8-16.104-.516.02-1.597-.011-2.064-.043-.52-.034-20.271-2.018-22.61-2.876-2.035-.746-9.799.634-13.423 1.929 3.381 7.032 9.237 13.106 19.297 17.094z" transform="matrix(4.9436 0 0 4.9441 -1482.9 -2891.1)" stroke="#000"/> - <path fill="#5d3100" d="M361.13 672.95c.323-.105.94-.08 1.183-.036.286.052.338.078.442-.234s.338-.234.52-.078.649.078.831-.182c.182-.259.234-.233.416-.052.182.182.26.13.442.078.182-.051.494-.259.65-.545s.389-.39.519-.234.26.234.442.208.234.156.208.389c-.026.234.078.286.52-.077.39.389.519.233.519-.182 0-.416-.103-1.949-.259-2.157s-.312-.806-.338-1.274c-.049-.883-.052-.935-1.118-1.481 0-.312-.078-.442-.831-.39.026-.104-.104-.416-.26-.546s-.182-.182-.104-.545c.312.026.65-.026.832-.286.181-.26.779-.208 1.143-.052s.832.182 1.533.078c.26-.208.702-.442 1.17-.702.467-.26.597-.364.623-.728.067-.933-.26-2.001-.52-2.494-.259-.494-.337-1.118-.701-1.898-.396-.849-.39-1.065-.832-1.585-.121-.143-.26-.26-.286-.545-.026-.286-.13-.676-.441-.962-.786-.721-1.092-3.041-1.404-4.756-.179-.983-.052-3.3-.467-3.664-.702-.572-1.04-.468-1.508-.65-.338-.468-.493-1.403-.805-2.235-.494.078-.832.598-1.17.78s-.39.182-.39.65c0 .467-.26 1.117-.727 1.845-.468.727-1.248.52-1.897 1.611-1.43-1.741-1.456-2.235-1.56-2.729-.104-.493-.338-.597-1.143-1.299 0-.208-.104-1.039-.026-1.507-.598-.494-1.04-.416-1.325-.052-.286.364-.494.909-.936 1.117-.265.337-1.064 1.187-1.718 2.199.595 9.044 2.636 18.022 8.773 25.202z" transform="matrix(4.9436 0 0 4.9441 -1482.9 -2891.1)" stroke-width=".125" stroke="#000"/> - <path d="M399.67 640.77c.018-6.152-.324-12.125-.168-17.359-7.9-3.535-18.295-4.262-23.596-4.262-5.302 0-15.697.727-23.597 4.262.156 5.234-.185 11.207-.168 17.359h47.529z" stroke-width=".98" transform="matrix(4.9436 0 0 4.9441 -1482.9 -2891.1)" stroke="#fff" fill="#ff0"/> - <path d="M264.267 312.133c1.285 2.057 3.6 5.592 3.856 7.515.9-1.864 1.607-2.695 1.8-3.851s1.542-3.407 1.028-4.628-.9-2.185.514-1.286c1.409.9 1.137 2.458.83 4.757-.83 6.293-3.465 7.579-3.85 11.821 3.791 8.929.963 12.143 5.072 20.879.642.386 2.358-.302 2.872-.173 2.18-1.543 3.811-.984 6.891-.341 3.085.642 4.756 2.823 4.756 4.751s0 2.442.643 3.6 1.928 2.956 1.67 4.241c-.257 1.28.258 2.052.643 2.695s-.128 2.057-.514 2.956-.257 2.057 1.285 3.985c1.543 1.924 5.137 10.022 5.137 14.773 0 4.757.257 6.942 2.185 7.837 1.928.9 2.57 1.67 2.313 3.728s.9 12.72 1.157 14.392.9 1.285 1.671 2.185c.766.895 1.28 1.923 3.851 1.923s5.053-.34 6.724-.084c2.313 3.214 3.727 7.58 4.241 10.28s.47 6.382 1.37 6.382 1.799.129 1.542-3.214-.514-3.856-1.671-5.522c-1.157-1.671-1.8-2.443-1.157-3.471s.771-2.7.514-3.985-.642-3.209 1.543-.643c2.185 2.571 2.828 3.214 3.47 4.114s.895 2.57.771 4.113c-.128 1.538.124 2.18 1.024 1.41.9-.767 2.056.514 1.542 2.185s.129 2.7 1.671 3.213 2.185.9 2.57 2.057 1.672 1.666 1.672-.643c0-2.313-.9-7.198-1.543-8.736-.642-1.542-1.157-4.885-1.285-6.813s-.514-2.437-1.414-2.823-1.67-1.028-1.8-1.928-.9-1.221-1.478-1.221-1.087-.45-1.408-1.093-.643-.707-1.286-.771-1.67.321-1.992-.707-.771-2.507-1.414-3.342-1.221-1.093-1.285-3.98c-.065-2.893-.129-3.278-1.029-4.307s-2.442-3.723-3.084-4.88c-.638-1.157-1.28-2.313-1.28.129 0 2.437 0 3.723 1.537 4.623 1.542.9 1.928.9 1.285 2.185s0 2.185.257 3.085.771 1.8 0 2.695c-.771.9-1.542.642-1.414-.767.129-1.414-.385-3.085-1.023-4.242-.643-1.157-1.157-1.928-1.928-1.285s-1.414-.129-.9-.643.386-.9 0-1.285-.514-.772.129-1.543.642-1.157.257-2.952c-.386-1.8-3.214-10.793-4.499-12.85s-1.157-3.599.514-1.542 3.085 3.857 3.214 5.523c.128 1.67.514 2.7 1.028 3.342s.9.386 1.157-1.028 1.285-.9-.514-3.595c-1.8-2.7-5.142-7.198-6.427-15.292s-1.8-13.492-3.085-15.673c-1.28-2.185-1.666-2.7-1.795-4.756s0-4.113-.9-5.651c-.899-1.543-1.542-1.8-1.67.514-.129 2.309.128 7.45.771 8.35s.257 3.21.129 4.495-2.15 2.556 2.056 5.142c1.671 1.028 1.409 2.442 1.157 3.342-.257.895-.514.766-1.414-.643-.9-1.414-1.8-2.57-2.7-3.342s-1.027-1.285-.899-3.085.514-3.085 0-3.723c-.514-.643-.771-.129-1.028.895-.257 1.028-.514 3.856-1.028 4.628s-.772.257-1.157-1.414.128-4.238 1.028-7.194 1.414-6.042.643-9.893c-.772-3.857-.386-5.014-3.342-8.222-2.952-3.214-6.293-6.3-7.707-10.28-1.414-3.984-1.671-7.455-3.214-9.254-1.537-1.795-3.722-4.109-5.136-4.752v-5.908c0-1.414-.643-2.314-2.314-2.057s-2.699 1.671-3.722 3.595c-1.028 1.928-1.8 1.028-3.213 4.37s-3.47 5.009-3.47 8.608z" fill="#cf6200"/> - <path d="M273.561 349.807c1.028.643 2.012 1.073 3.555.302s3.386-2.997 5.442-.811c2.052 2.18 3.209 5.78 3.209 8.607 0 2.824 0 8.094 3.213 11.05 3.214 2.952 4.88 6.037 5.008 9.894.129 3.851 1.542 9.764 1.928 11.307.386 1.537 1.285 3.337 2.314 4.365s1.8 3.985 1.928 7.066c.128 3.085-.386 5.27 0 6.813s0 2.828-1.157 2.056-1.414-1.157-2.057-2.442-1.414-1.028-.77.9 2.57 3.723 4.24 3.723 2.186.257 3.214 1.285c1.023 1.028 1.152 1.543 2.951 1.543s2.057 0 3.728.514 1.67.257 2.57 0 1.795.514 2.438 2.185 2.185 6.294 2.185 7.58 0 2.57.9 3.856.642 2.57-.386 1.8-1.028-.515-1.8-.386-1.285-.257-2.308-.9c-1.028-.643-.386-.514-1.414-2.057s-1.671-2.056-1.671-.9-.129 2.571-.9 1.929-1.157-.643-1.8 0-.899 1.157-1.67-.129-1.671-1.285-2.442-1.542-.771-.258-1.152-1.414c-.386-1.157-1.543-1.414-2.57-1.414s-1.543-.515-1.672-1.286c-.128-.766-.771-1.28-1.285-1.666s-.257-1.286-.386-2.185-.9-.515-1.414-.772-.9-.128-.9-1.414-.513-1.67-.899-2.57c-.38-.9 0-1.8.257-2.824.257-1.028.129-1.67-.638-2.57-.77-.9-.128-1.8-2.185-3.6s-3.085-.257-3.727-4.494c-.643-4.242-1.928-12.978-3.085-14.392s-1.923-2.443-3.08-2.828-1.928-.129-2.056-2.571c-.129-2.438-.9-5.523-2.443-7.065s-2.185-2.057-2.956-2.7-1.028-1.8 0-3.98c1.028-2.185.643-5.142.514-6.556-.128-1.409-.514-3.209-.257-4.751s.129-3.47-.257-4.5-.9-1.285-.257-2.056zM304.508 313.27c-1.74 2.24-3.594 4.114-5.992 5.824-2.397 1.716-5.482 3.085-3.772 5.997 1.716 2.913 3.085 3.259 3.426 5.483.346 2.225.86 4.114 2.571 4.628 1.715.51 2.398.168 2.398 3.768s0 4.968 1.542 6.338 1.37 2.739 2.057 5.997c.682 3.253.682 10.279 2.738 15.075s6.684 13.878 6.17 15.761-1.201 3.254.855 5.478c2.057 2.23 3.426 5.483 3.6 7.367.167 1.889.513 2.571 2.565 1.889 2.056-.687 3.085-1.375 3.772-2.23.682-.855 2.051-.682 3.94.341 1.883 1.029 4.795 2.057 6.506 1.029 1.715-1.029 2.57-2.566 4.113-2.566 2.397-1.716 3.253-5.315 3.767-6.339.514-1.028.173-1.028-.855-2.057s-.515-2.743-.688-4.454c-.168-1.716-.855-4.282-2.911-8.054-2.052-3.767-3.253-8.395-4.623-9.592-1.37-1.201-2.056-4.113-2.23-5.483-.167-1.37-1.71-2.57-2.738-3.599-1.028-1.023-2.057-2.566-3.253-8.563-1.201-5.997-2.056-10.279-2.056-11.307s-.173-1.202-1.202-1.543-1.542-2.057-1.196-2.912c.341-.855-.346-1.71-.687-2.739s0-2.912.687-3.94c.682-1.029.514-3.94-.173-6.339s-1.37-4.454-4.113-4.8c-2.739-.342-3.253-1.024-4.281-3.254-1.029-2.225-2.057-6.165-2.398-7.025-.341-.856-.855-1.029-2.912.687-2.056 1.71-2.739 2.28-2.739 5.483 0 2.057.342 2.739 1.024 3.94.687 1.197.86 1.543 1.374 4.796s3.426 8.395-.346 11.307c-3.767 2.912-3.253 3.6-3.08 5.651.168 2.057-1.028 3.427-1.715.515-.682-2.912 0-4.623 2.056-5.993 2.057-1.374 3.94-3.085 2.571-4.968-1.374-1.884-1.884-6.339-2.057-8.395s-.514-2.744-1.715-1.202z" fill="#cf6200"/> - <path d="M273.957 356.926c-.094 1.395.217 2.927.326 4.158.128 1.414.514 4.371-.514 6.556-1.029 2.18-.771 3.338 0 3.98.044.035.084.07.123.104 2.096-.702 2.368-3.04 1.805-4.173-.598-1.196-.425-2.655.257-3.851.687-1.202.687-1.884.089-2.744-.603-.855-.603-.855.084-3.253.603-2.111-.92-2.097-2.17-.777zM295.906 390.15c-.385-1.542-1.8-7.455-1.928-11.306-.128-3.857-1.794-6.942-5.008-9.893-2.506-2.31-3.055-6.017-3.174-8.88-1.883-1.152-2.679-.628-2.52 1.513.167 2.309 2.48 3.426 2.14 6.763-.341 3.343-.341 2.487 1.285 4.114s2.225 3.169 1.37 3.856c-.856.683-.945 1.884.257 2.31 1.196.43 1.285 1.715 1.112 2.911-.173 1.202.944 1.459 1.626 2.314.688.855.772 2.912.09 4.114-.688 1.196-.772 3.08.425 2.056 1.2-1.028 1.715-.089 2.654 1.538.816 1.404 1.498.964 2.383.539a10.838 10.838 0 0 1-.712-1.948zM312.616 420.063c-.772 1.542-1.671 1.028-2.443.257s-1.67-.772-1.285-2.186.257-1.67-.771-2.442a7.709 7.709 0 0 0-.356-.247c-.321-.01-.697-.01-1.187-.01-1.799 0-1.928-.514-2.95-1.543a8.638 8.638 0 0 0-.634-.573c-.02.247-.01.573-.01.96 0 1.413 0 1.156-1.413 1.542s-1.157-1.414-1.414-2.571a4.247 4.247 0 0 0-.223-.692c-1.547-.297-3.178-1.929-3.762-3.674-.643-1.928.129-2.185.771-.9s.9 1.671 2.057 2.443 1.542-.515 1.157-2.057c-.124-.495-.154-1.068-.139-1.706-.277-.5-.652-.905-1.147-1.122-2.056-.9-1.414-1.157-1.285-2.828.129-1.666-.257-1.666-1.542-.771-1.286.9-1.414-.129-1.414-2.695 0-2.57-1.671-2.57-2.052-.771-.385 1.8-1.028.642-1.8-1.928s-1.799-3.214-1.927-.772c-.11 2.067-.683 2.561-2.027 1.414.237 1.493.445 2.888.613 3.985.642 4.237 1.67 2.695 3.727 4.494s1.414 2.7 2.185 3.6c.767.9.895 1.542.638 2.57-.257 1.024-.638 1.924-.257 2.824.386.9.9 1.285.9 2.57s.385 1.158.9 1.415c.32.158.736.069 1.038.197.33-.435.632-.969 1.018-1.354 1.542-1.543 3.856.128 4.627 2.056s1.666 2.443 2.823.9.771-1.285 2.057.129 1.799 1.157 1.799 1.157 1.285-.514 2.185.257 1.414.643 3.08-1.8c1.67-2.442-.766-1.67-1.537-.128zM317.164 349.56c.509-3.768.168-7.535 1.71-8.91 1.543-1.369 3.426-4.108 3.253 1.716-.168 5.824-.341 5.483-1.537 6.853-1.202 1.37-2.23 1.71-1.029 3.94 1.197 2.225 1.37 2.398 1.197 5.824-.168 3.427-.168 4.796 1.2 6.512 1.37 1.71 1.711 1.883 2.057 3.767.342 1.884 1.538 4.455 3.08 5.824s3.258 5.31 3.426 8.054c.173 2.74 2.57 3.426 4.796 5.31 2.23 1.884-.51 3.253-2.225 2.398-1.71-.855-1.028 0-2.057 1.196-1.028 1.202-1.369 1.375-2.224-.682s-3.772-3.426-5.142-3.94-2.565-2.744-3.767-4.97c-1.028-1.912-3.065-3.312-4.923-3.455.514 1.444.79 2.576.642 3.115-.514 1.883-1.201 3.253.855 5.478 2.057 2.23 3.426 5.483 3.6 7.367.167 1.888.514 2.57 2.565 1.888 2.057-.687 3.085-1.374 3.772-2.23.682-.855 2.052-.682 3.94.342 1.884 1.028 4.795 2.056 6.506 1.028 1.715-1.028 2.57-2.566 4.113-2.566 2.398-1.716 3.253-5.315 3.767-6.338.514-1.029.173-1.029-.855-2.057s-.514-2.744-.687-4.455c-.168-1.715-.856-4.281-2.912-8.054-2.052-3.767-3.253-8.395-4.622-9.591-1.37-1.202-2.057-4.114-2.23-5.483-.168-1.37-1.71-2.571-2.739-3.6-1.028-1.023-2.056-2.566-3.253-8.563-.939-4.687-1.666-8.32-1.938-10.18-1.23 1.963-2.07 2.443-2.516 1.098-.514-1.538-1.201-2.398-1.883-1.37-.687 1.029-.86-.855-.86-1.71 0-.86-.169-1.029-1.029-1.029-.855 0-.168-1.37-.514-3.94-.341-2.571-.855-2.912-1.196.173-.341 3.08-2.057 4.964-1.37 5.651.683.687.341 2.057-.346 4.114-.682 2.051-.34 3.253.173 4.622s-.34 3.94-.687 6.17c-.34 2.225 1.374 4.45 1.889.683zM285.87 318.807c-1.27.094-2.14 1.207-1.413 5.098.455 2.408-1.37 1.884-2.052.682-.687-1.196-1.201-3.767-2.57-5.997-1.375-2.225-.688 1.543-.856 3.6-.173 2.056 1.197 2.056 2.398 3.767 1.196 1.715.168 2.402-1.201 2.402s-.683 2.74-.341 4.623-.342 2.23-1.375.687c-1.023-1.542-.34-3.94-.168-6.852.168-2.912.341-2.23-1.542-2.912-1.884-.687-1.543-1.029-.856-2.744.683-1.71 1.37-2.571.515-3.426-.86-.856-.688-1.37.682-1.543 1.37-.168.86-1.196 2.056-1.543 1.202-.34 1.716.174 1.884-2.051.143-1.86.766-3.001 2.16-2.438.84 2.863 1.933 7.318 2.68 8.647zM303.124 338.98c0 3.599 0 4.968 1.542 6.338s1.37 2.739 2.057 5.997c.682 3.253.682 10.279 2.739 15.075.613 1.428 1.458 3.243 2.323 5.131 1.137-.894 2.126-2.432 2.477-3.248.509-1.201-1.029-3.6-2.23-5.65-1.196-2.058.173-2.745 1.37-5.316 1.2-2.566-.169-2.739-2.052-3.426-1.888-.682-1.888-2.398-2.917-5.137s-.855-3.94-.168-5.483c.682-1.543.168-2.739-1.201-3.085-1.37-.341-1.028-1.37-.514-3.08.514-1.716.855-2.057-1.197-1.543-1.557.386-1.933.677-2.397 1.241.113.495.168 1.182.168 2.185z" fill="#00b800"/> - <path fill="#5d3100" d="M322.849 346.148c-.188 2.057-.173 3.085-.687 3.768-.51.687-.168 1.715.346 2.744s.855 2.398.34 4.281.342 3.427 1.37 3.94 1.543 0 1.201 2.399c-.346 2.398 1.029 4.968 2.225 5.997 1.201 1.028 2.057 2.739 1.884 3.767-.169 1.029.86 2.057 2.056 2.571 1.201.514 1.028.687 1.028 1.37 0 .687.515.687 1.884 1.028s2.398 1.201 3.94 3.085 3.767 2.912 3.426.856 0-3.427-2.057-4.455c-2.051-1.028-3.594-5.997-4.454-9.424-.855-3.426-3.594-8.049-5.136-8.904-.173-2.403.173-3.6-1.37-4.8-1.542-1.197-2.056-2.74-2.056-3.941 0-1.197-.855-2.74-1.543-3.08-.682-.346-1.028-1.202-1.028-2.23s-1.196-.855-1.37 1.028z"/> - <path d="M313.753 438.06c3.08-.258 11.434-2.7 12.329-3.472 2.056 1.414 5.655 3.343 7.198 3.343-2.957.642-4.885.257-5.656-.257.386.9 1.414 2.313 2.057 2.442-2.828-.129-6.036-.771-7.065-1.8-2.442 1.029-6.555 1.286-8.863-.257zM319.29 441.916c1.092.32 6.55 1.22 7.257 1.22-1.8 1.538-.257 3.017 2.763 2.76-1.478.192-3.09.751-1.992.964 2.635.514 9.763-1.414 11.177-2.186-2.442 3.15-14.321 6.042-19.206-2.758zM324.184 449.727c1.473-.771 5.136-.514 6.871.322-1.928.707-5.715.707-6.871-.322z" fill="#00d860"/> - <path d="M329.67 449.628c2.636-.45 10.086 1.35 12.72-.257-.899 2.378-5.59 2.7-7.197 2.186-1.602-.515-3.144-1.157-4.237-1.093.579-.321-.385-.386-1.285-.836z"/> - <path d="M332.39 453.287c1.992.316 9.12-.578 11.306-1.414 2.309.771 6.872 1.988 7.9 1.859-2.185 1.35-6.363.578-7.707 0-3.856 1.285-7.005 1.671-11.5-.445z" fill="#00d860"/> - <path d="M335.801 454.474c2.852.642 5.285.183 8.093-.757.875.376 2.936.836 4.874.742 1.29.736 3.026 1.765 4.696 1.893-1.735.707-8.097 0-9.378-.707-3.213.065-8.74.772-10.084 1.864-.065-.9.519-2.15 1.799-3.035z" fill="#00d860"/> - <path d="M332.39 439.987c2.225.742 10.278.386 14.386-1.542 1.621-.762 2.625.514.771 1.157-6.679 2.314-11.949 3.213-15.8 1.157-1.522-.811-1.67-1.543.643-.772z"/> - <path d="M371.84 429.06c-9.892 4.624-16.448 6.038-30.19 1.8-1.281-.395-2.186 0-.772.9 1.414.895 8.992 2.952 10.792 3.08s1.157.965.064 1.286-1.414 1.093.064.514 9.734-.796 13.106.964c1.473.772 1.859.643 1.73.065s.643-.965 1.735-1.093 1.736-.514.9-.836-.964-.514-.321-.835.707-.643-.257-.836-1.607-.45-.707-.9c.9-.445 2.25-.77 3.277-.894.258-.707-.192-2.571.579-3.214z" fill="#00d860"/> - <path d="M355.378 430.247c5.655.401 16.061-2.185 21.588-7.579 1.923 1.152 4.623 2.438 6.036 2.695s2.7 1.542.515 1.542-5.27-.9-6.68-1.542c-7.326 4.499-15.898 5.977-21.33 5.527-1.538-.128-1.924-.771-.13-.643z"/> - <path d="M338.668 399.396c1.928 1.35 5.334 3.595 9.764 3.273 2.185 1.736 5.591 3.214 7.134 3.535-2.957 1.222-6.17 2.25-7.006 3.214-1.35-1.285-3.08-1.093-3.53-1.735-1.285 1.028-1.092 1.67-.256 2.185s7.321 1.607 8.928 1.157 2.037.88.707 1.345c-3.47 1.22-10.214.064-12.527-3.659-2.314-3.728-4.306-5.142-10.6-1.735-.706-1.8-.706-2.25-1.927-2.25s-3.47-1.607-1.736-1.543 6.877-.707 11.05-3.787z" fill="#00d860"/> - <path d="M340.2 407.653c-1.072.267-4.112 1.928-5.2 2.057-1.092.128-3.02 1.67-1.028 1.735 1.987.064 4.558-2.12 5.972-2.314s1.542-1.8.257-1.478zM346.43 414.18c-.762.133-4.044.899-4.944.835s-1.8.193-1.735.835.321 1.029-1.028.9-2.507.386-2.828.771-.578.772.771.9 2.057.257 3.6-.45 3.02-1.8 4.69-1.864c1.667-.064 3.337-2.25 1.474-1.928z" fill="#00d860"/> - <path d="M341.832 418.134c1.404.91 8.35 3.278 10.856 3.086s2.037 1.003.129 1.414c-3.92.83-8.706-.876-11.949-3.471-1.606-1.286-.128-1.736.964-1.029z"/> - <path d="M374.707 421.546c-5.314 1.696-10.727 1.093-12.913.514s-4.177-.707-2.699.707c1.478 1.41 6.234 2.373 8.928 1.666-9.57 2.186-12.077 1.993-14.45 1.607-2.378-.386-6.842-.302-8.735-.128-1.414.128-3.342-.065-4.177-.579s-1.093-1.478 1.413-1.221c2.502.257 2.828-.257.643-.579s-5.206.579-2.25 2.443 9.443-.129 13.556 1.028c4.108 1.157 12.844 1.993 21.134-4.692.425-.34 1.157-1.28-.45-.766zM348.605 413.734c.193.643.193 1.35 0 1.8s-.193 1.028.643.385 1.35-1.414 2.185-.964 2.956.386 3.915.257c.969-.128 1.285-.32-.124-.9-1.413-.578-2.827-.77-3.599-.706s-1.735-.129-2.377-.386-.836-.129-.643.514z" fill="#00d860"/> - <path d="M362.299 416.206c-1.093.065-3.02-.642-4.05-1.092s-2.5-.515-1.408.964c1.088 1.478 5.843 2.314 7.514 1.607s.964-1.479 2.63-.45c1.671 1.028 3.406 1.735 4.627 1.735s1.671 0 .322-.771-1.992-.964-2.121-1.607-.321-1.028.9-.643 2.635 1.093 3.599.579 2.758-1.671 4.365-1.671l.385-.965c-2.313-.192-3.786.515-4.429.772s-1.8.385-3.02.193-2.828-.322-3.214-.643-.385-.579.643-.771 1.35-.9-.064-.643-5.201.128-7.193-.514c-1.993-.638-2.828-.702-3.664-.386-.835.321-.707 1.221.514 1.285s3.985.322 4.949 1.222.836.964-.257.514-3.085-.193-1.028 1.285z" fill="#00d860"/> - <path d="M379.058 413.883l-.386.964c2.378-.065 8.162.514 10.02 1.67 1.8-1.413 1.479-1.863 2.764-1.606s2.892.707 3.599.321 1.221-.321 1.992-.193c.767.129 2.437-.192 3.401-.77s2.957-1.35 4.114-1.35 2.565-.258.45-.579c-2.121-.321-5.335.321-6.427.707-1.088.386-4.365.643-6.293.643s-4.558.964-6.744.385-5.205-.192-6.49-.192z" fill="#00d860"/> - <path d="M408.818 412.745c-3.851 2.828-8.478 3.471-14 3.857-1.607.113-1.113.568.257.707 5.779.578 12.463-1.543 14.643-3.857.632-.667.563-1.775-.9-.707z"/> - <path d="M382.567 419.321c1.671.064 7.45 1.543 9.314 2.185 1.414-.128 1.8-.45 1.543-.964s-.45-1.092 2.12-.964c2.566.129 8.479.064 9.571.064.9-.385 2.887-1.928 3.787-1.992-2.309.128-11.944.643-13.165.514s-1.864 0-2.635.45-1.22.643-2.185.257-2.699-.9-3.658-.321c-.964.578-2.956.064-4.692.771z" fill="#00d860"/> - <path d="M405.11 419.618c.9-.386 2.887-1.929 3.787-1.993 1.671-.128 3.599.579 4.499.707s1.863-.064 1.22-.771-.063-1.928 2.571-1.607c2.63.321 3.98.771 6.55.514s3.728 1.671 8.608-.257c-.386 1.928.514 2.057 1.413 1.671s1.928-.257 3.47.9 10.921 1.286 13.106.9c2.18-.386 3.337.771 1.666 1.285-1.666.515-2.056 1.286-1.666 1.8.381.51.767 1.152-1.285.895-2.057-.257-2.442.386-3.47 1.157s-1.286 1.028-4.113.514c-2.823-.514-3.337-.128-4.88.129s-1.928.257-3.47-.257-4.88-1.029-6.936-.386-3.599 1.285-5.399.771-1.928-.257-.77-1.414 1.413-1.028 3.598-1.285c2.185-.252 3.856-.895 2.314-1.795s-2.057-.771-4.113.257-3.085 1.666-5.394.386c-2.313-1.286-3.47-1.029-5.013-.643s-4.108-.514-6.293-1.478zM412.822 423.474c-2.941.42-3.732-1.473-6.807-1.088-1.028.129-2.764 1.41-.386 1.217 2.373-.193 4.944 1.092 7.258.9s1.285-1.222-.065-1.029zM409.411 425.699c1.548-.564 4.756.514 6.106.257s2.634.578 1.22 1.028-4.82-.835-6.362-.385-3.08-.129-.964-.9zM378.711 434.005c2.121.07 9.764-.257 12.785-6.68.232-.494.45-.706 1.413-.064s4.5 2.764 11.114 3.342c1.854.164 3.856 1.093.128.836s-9.635-1.285-11.627-2.507c-3.342 5.266-9.344 5.889-13.813 5.78-2.694-.064-2.051-.771 0-.707z" fill="#00d860"/> - <path d="M395.223 425.254c-1.028 1.414-4.563 3.856-6.17 3.985-1.601.128-6.421-.321-7.642-.771s-2.7-.322-.964.9 6.04 2.056 7.771 1.67c1.735-.385 3.727-.964 5.077-.128s3.856 2.437 5.33 2.116c1.477-.316 4.498-.316 5.462.129.964.45 2.635 1.8.128 1.028s-4.562-.129-5.72-.643c1.286 1.8 4.203 4.692 6.684 4.692.579 0 .964 1.029-.257 1.607 1.221.579 4.044 1.028 5.522-.321-.385.514-.192.835.45 1.157s1.414.77.257.9-3.786.45-4.558.128c2.502 1.602 8.993 4.173 15.607 2.887 1.26-.242 1.928-.766-.128-.707-4.242.129-4.494.065-5.265-.38-.771-.455-.643-.836.578-1.222 1.216-.385 4.301-.835 5.587-.835s2.57-.514-.065-.514-5.843 0-7.128-.45-2.25-1.029-.9-1.928 2.763-.643 3.406-1.479c-4.242-.064-9.447-2.314-6.555-4.365.672-.48.45-.515-.643-.643s-4.3-1.028-5.65-1.8-.45-1.414.642-1.607c-2.506.45-7.519-.9-10.856-3.406zM432.893 425.155c-2.313 1.735-6.678 2.442-8.542 2.442s-2.121.643-.643.836 3.085.386 3.728.193 1.028-.257 1.987.193c.964.45 3.02.707 4.82.128s4.75-.835 5.972-.771 2.57.128.128-.579c-2.437-.707-6.421-.192-7.385.065s-3.6.064-2.185-.386 2.634-1.157 3.341-1.735c-.514-.129-.835-.257-1.22-.386zM431.707 430.149c-1.992 1.478-4.88 2.887-7.836 3.016 2.7.964 4.949 3.727 6.679 3.599-.835.514-1.859 1.285-2.951 1.414 1.67.45 4.493-.064 6.807-1.35 3.856 1.093 8.864.386 10.535-1.028-2.507 0-5.522-.9-6.872-2.057 1.221 0 2.373-.771 2.952-1.473-2.887.509-7.836-.9-9.314-2.121z" fill="#00d860"/> - <path d="M427.604 438.207c1.092-.128 2.116-.9 2.951-1.414-2.116.707-11.37-.77-14.129-3.213-2.763-2.438-2.763-.579-.835 1.157s5.329 4.37 12.013 3.47zM434.376 444.091c-1.156.643-6.678 1.028-8.478.643s-2.57-.193-2.12.514.642 1.35-.836 1.157-4.113.128-5.2.514c-1.093.386-2.443 1.35-.13.964 2.31-.386 4.43-.835 6.165-.386s7.9.579 9.121.065.386-.514-.193-.514-.835-.386 0-.772 1.479-1.478 1.671-2.185zM380.936 436.625c-2.314 1.029-10.02 3.086-12.077 3.214-2.57 1.157-4.622 1.8-5.908 1.8.9.771 4.365 1.537 5.78 1.157-.772.766-2.566 1.666-3.21 2.051 2.053-.257 4.495.258 5.523.386-2.7 1.543-6.422 2.057-8.35 1.8.643.9 1.543 1.8 2.7 1.8-2.443.642-5.399.642-6.941.128.642 1.285 1.285 2.057 2.185 2.185-2.057.257-4.628.643-6.808-.643 1.666 2.186 5.394 2.952 10.92 2.314 5.523-.642 10.15-3.085 11.435-4.113-2.313.257-5.398.385-6.94.128 3.084-.77 9.763-3.599 10.92-4.756-1.285 0-2.566-.385-3.47-1.028 1.799.257 8.097-.51 10.025-1.28-2.314-.515-3.727-1.929-4.37-2.829 8.093 2.571 17.1 1.73 21.455.643 1.028-.257 1.152-1.562-.9-1.414-3.599.257-10.534-.771-12.334-1.671 1.671 1.285 3.728 2.057 5.141 2.314-3.341.9-7.964 1.542-14.776-2.186z" fill="#00d860"/> - <path d="M365.512 444.882c.643-.386 2.437-1.285 3.208-2.052-1.413.38-4.879-.385-5.779-1.157 1.286 0 3.337-.642 5.908-1.8-4.622-.128-7.836-.128-9.507-1.028s-4.75-.642-5.907-.385-.771 2.185 4.108 1.67c-2.057 1.415-7.579 1.929-9.635 1.415.514 1.666.9 3.337.385 4.237 2.7 1.542 9.764 3.47 13.234 3.214-3.084-1.157-4.755-2.443-2.185-2.7s3.985-.771 6.17-1.414z" fill="#00d860"/> - <path d="M357.553 453.238c6.15-.515 14.386-.623 20.94-6.17 1.672-1.415 2.794-.94 1.158.514-3.466 3.085-12.077 7.322-20.299 7.45-3.347.055-4.879-1.542-1.8-1.794z"/> - <path d="M403.627 443.053c-1.542.578-5.848 1.285-7.128 1.092-1.286-.192-3.15-.257-4.178.386s-1.092 1.028.322 1.157 3.213.257 4.113.193c-1.157.642-1.928 1.542-2.185 1.928 2.056-.514 5.843.386 6.935 1.028-.835.257-1.8-.064-2.506-.45 3.47 3.664 13.748 3.664 15.42 3.021-.772.579-1.48 1.157-2.25 1.35 2.892.514 6.229.45 9.506-1.478-1.092.193-4.365-.129-5.2-.193.642-.643 1.601-1.221 2.501-1.478-1.28-.257-5.33-.129-6.293.385.385-.771 1.092-1.735 1.864-2.057-5.077 0-11.242-.064-13.491-1.285 3.598.386 7.583-1.735 9.249-1.735-2.823-.065-5.908-.707-6.679-1.864zM390.724 445.87c-2.506.515-6.293 1.543-7.321 2.122s-2.12.9.128.9 8.35.257 9.7.45c-3.406-.515-8.029-.643-8.928-.643s-1.928-.064-.257-.579 3.856-1.67 6.678-2.25zM385.632 451.853c.895 0 4.816 0 6.358-1.35 1.607 1.222 4.691 2.952 6.679 2.952 1.992 0 1.8.514.064.707-1.73.193-5.136-.83-6.872-2.116-2.313.836-4.236.129-6.229-.193zM355.872 469.158c3.98 1.542 9.25 2.699 13.1 1.414 2.186 1.928 6.684 2.056 9.122 1.542 2.442-.514 4.627-.771 7.326.129 2.694.9 8.221.964 9.764 2.244-1.414.07-4.435 0-5.142.198-.707.188-.321.638.964 1.345-4.365-.257-11.884 1.607-14.193 3.6.83-1.993 3.401-4.693 7.45-4.693-2.313-.83-9.7-.895-12.077.579-.707-.772-1.543-2.052-1.607-2.566-3.915 2.244-11.627-.964-14.707-3.792zM345.688 461.94c4.741-.678 7.97-2.186 9.383-3.6.836.771 4.301 1.542 8.093.386-.771.578-.836 1.67-.514 2.25-2.507.063-7.262 1.285-8.864 2.12-1.607.83-6.298 1.41-7.836.574-1.542-.831-1.606-1.538-.262-1.73z" fill="#00d860"/> - <path d="M362.645 461c-2.507.064-7.262 1.285-8.864 2.12.321.644.514 1.667.578 2.374 4.623-1.671 15.222-2.695 19.27-2.052-1.928.129-5.59 2.116-7.642 2.373 5.007-.385 9.892.643 11.172.964 1.285.322 1.543 1.286.579 2.186s-1.41 1.028.642 1.092c2.057.065 6.298-.192 8.226-2.056-.77-.836-2.763-.515-3.341-1.093 1.35-.45 2.892-1.414 3.47-2.121-3.47-.064-4.756-.129-5.913-.386-1.156-.252-1.992-.578-.578-1.344 1.414-.772 2.057-1.414 2.506-1.929-2.506.707-6.421 1.286-9.699-1.285 1.221.321 4.108.128 5.136-.321-1.092-.579-1.987-1.029-2.887-1.029 2.63-1.285 7.836-2.442 14.258.129 3.213-.257 6.683-.129 9.12.514 1.029-1.028 3.214-3.47 4.37-4.114-7.578.643-21.197-.77-20.94-4.75-2.442 3.208-8.093 5.007-10.535 4.493-.257 1.157.771 2.571 1.67 3.343-2.57.514-6.94.9-8.992.514 1.157 1.157 3.337 2.185 4.623 2.056-2.695 0-4.108.515-6.23.322z" fill="#00d860"/> - <path d="M378.365 470.048c2.057.064 6.299-.193 8.227-2.057-.772-.836-2.764-.514-3.342-1.093 1.35-.45 2.892-1.414 3.47-2.12 5.394-.446 10.214-.189 12.522-.896 2.314-.707 8.226-.321 9.383-.643-5.141.831-6.17 1.281-6.427 2.117s1.671 1.542 2.893 1.542c-2.314-.128-5.206 2.314-5.463 3.278-3.08-1.8-4.558.321-4.88 1.028-1.285-.514-5.526-.385-7.712 1.479-2.822-.836-4.686-1.286-7.514-.836 1.735-.385 1.414-1.542-1.157-1.8zM403.034 455.017c1.735-.064 5.522.129 6.872-.064-.9.45-2.052 1.286-2.31 1.671 4.366-.514 10.338-.835 12.073-.578-2.116-.322-4.3 1.028-5.393 1.735s-.45 1.157 1.028 1.35 3.47 1.35.771.964-8.028-.386-9.314-.193-1.992-.45-.128-.707 3.144-.9 4.044-1.414c-1.543.386-4.494.386-5.394.129s-1.478-.772-.45-1.029.322-.642-.77-.514-3.857 1.286-5.4 2.764c1.672-1.735 3.15-3.278 4.371-4.114z" fill="#00d860"/> - <path d="M383.457 457.934c2.121 2.379 4.623 3.728 8.607 3.857.836.025 2.393 1.147.386 1.221-5.399.193-8.093-1.093-10.47-4.563-.49-.712.414-1.706 1.477-.515zM415.64 412.993c2.838 1.34 8.543 2.506 12.977 2.313.771-.034 2.324.791.38.965-5.007.45-9.506-.253-13.678-2.571-1.157-.643-.771-1.222.321-.707z"/> - <path d="M418.507 412.943c4.366-.128 7.643-.064 8.993 1.221 2.501-.77 7-1.22 8.028-1.028s2.185-.257-.193-.836c-2.377-.573-7.9-.766-9.635-.445-1.735.317-7.133.51-8.928.317.771.128 1.28.257 1.735.771zM435.464 414.674c2.057-1.093 7.964-.065 9.764-.836-1.286 1.543 4.113 1.671 8.8.45-1.8 1.157-5.651 1.35-7.322 2.057s-2.57.193-3.856-.386-4.558-1.735-7.386-1.285z" fill="#00d860"/> - <path d="M454.052 414.278c-4.687 1.221-10.085 1.093-8.8-.45-1.8.771-7.707-.257-9.763.836 2.12-1.286 3.727-.257 5.265-2.893.964.198 3.213.327 3.984-.702 1.35.322 3.728.9 4.435 1.602.707.707 1.794-.193.894-1.28 2.121-.772.777.914 5.72-.322 1.028-.257 3.535-.707 4.37-.77-1.67 1.349-3.663 2.822-6.105 3.98z" fill="#00d860"/> - <path d="M373.36 664.19c-.017-1.966-.207-18.422-.207-22.226 0-.91-.468-.728-.468 0v22.122c.215.039.505.078.675.104zM380.59 640.77l.812 23.461-.142.188-.471.007-.513-23.656h.314zM387.43 660.58c-.066-2.389-.366-13.448-.482-18.9-.015-.727-.448-.6-.441.026.047 4.391.308 16.672.356 18.887.17 0 .463-.017.567-.013z" transform="matrix(4.9436 0 0 4.9441 -1482.9 -2891.1)" stroke-width=".125" stroke="#000" fill="#ff0"/> - <path fill="#fff" d="M376.6 644.67l-6.913-.104c-.389 1.403 1.352 1.377 2.002 1.013.753.572 1.325.52 1.741.052.598.494 1.351.364 1.663.052.832.624 1.689 0 1.507-1.013zM377.12 648.15l-7.069-.026c-1.221 1.169.364 1.741 1.716.935.182.39 1.013.624 1.663.312.598.468 1.351.13 1.741-.26.728.338 1.585.442 1.949-.961zM376.92 652.57l-6.809-.052c-.13 1.221 1.248 1.065 1.793.754.52.805 1.664.623 2.106.155.649.442 1.247.338 1.585-.078.754.65 1.377-.181 1.325-.779zM377.26 656.99l-7.614-.13c-.416 1.299.753 1.533 1.299 1.221.182.754 1.195.494 1.455-.052.39.39.884.182 1.118-.078.104.702.987.728 1.663.13 1.377.962 2.677-.156 2.079-1.091zM384.01 655.17l-6.341-.052c.286 1.299.909 1.637 1.923.883.754.78 2.001.494 2.313.104 1.377 1.118 2.131-.182 2.105-.935zM383.36 650.83l-6.133-.182c.104 1.559 1.585 1.507 2.339.831.572.728 1.585.52 1.949 0 .78.78 2.053.312 1.845-.649zM384.17 645.94h-6.601c.078 1.091 1.533 1.715 2.651.676.311 1.247 1.507.857 2.027.363.753.962 2.494-.129 1.923-1.039zM383.78 642.62l-5.899.078c-.104.961 1.299 1.377 1.819.597.286.494 1.273.442 1.559-.026.468.728 1.04.234 1.221 0 .676.494 1.404.26 1.3-.649zM390.69 644.77l-7.225-.078c-.026.753.754 1.065 1.221.753 0 .728 1.014.962 1.664.39.442.624 1.741.806 2.261-.052 1.065.884 2.209.26 2.079-1.013zM390.59 650.7l-7.069-.026c.052.987 1.195 1.325 1.845.805.156.832 1.04.884 1.559.468.624.702 1.664.754 2.235-.026.858.312 1.508-.416 1.43-1.221zM390.22 656.03l-5.588-.078c0 .988 1.17 1.118 1.69.598.545.65 1.377.65 1.845.13.753.65 1.897.468 2.053-.65z" transform="matrix(4.9436 0 0 4.9441 -1482.9 -2891.1)" stroke-width=".125" stroke="#000"/> - <path d="M381.26 664.42c-3.014.052-6.081.052-8.16-.26s-2.734-.604-4.158-1.455c-2.131-1.273-2.651-1.585-5.665-3.352-.462-.271-.963.065-.312.493 3.04 2.001 4.192 2.743 5.639 3.691 1.507.987 2.479 1.864 3.404 2.91 1.196 1.352 2.079 1.378 2.625 1.17s1.404-.494 2.261-.286c.858.208 2.001.234 2.599.13.546.494 1.793.39 2.495.234.701-.156 1.221-.234 1.715-.13s1.247.026 1.741-.052 1.793-.208 2.703-.078c.909.13 1.845.052 2.443-.13.597-.182 1.689-.13 2.053-.026.519-.39.779-.884.909-1.403.611-.078.814-.154.949-.507.247-.65.48-1.287.559-1.572h.246l.078-.585-.506-.585.182-1.117.545-.13c.026-.338-.13-.858-.234-1.066-3.274.13-6.484.234-8.783.286-.26.208-.546.754-.598 1.092-1.403.233-2.235.337-2.599.415s-.567.107-.857.494c-.468.624-.91 1.351-1.274 1.819z" transform="matrix(4.9436 0 0 4.9441 -1482.9 -2891.1)" stroke-width=".125" stroke="#000"/> - <path d="M391.78 660.45c.159-.551.584-2.035 1.354-4.84.129-.468-.325-.653-.493-.052-.916 3.275-1.262 4.503-1.378 4.912.176-.003.428-.022.517-.02z" transform="matrix(4.9436 0 0 4.9441 -1482.9 -2891.1)" stroke-width=".125" stroke="#000"/> - <path d="M396.85 654.96c-1.105.571-1.638.792-2.144.597-.466-.179-1.151-.28-1.552-.083a.523.523 0 0 1-.021.135 493.286 493.286 0 0 1-1.048 3.768c.818.289 2.227.328 2.556-.025.337-.364 1.26-.286 1.728-.26.299-.39.416-.871.338-1.105s-.052-.649.065-.974.273-1.378.078-2.053z" transform="matrix(4.9436 0 0 4.9441 -1482.9 -2891.1)" stroke-width=".125" stroke="#000" fill="#fff"/> - <path d="M371.69 645.58c-1.222 3.534-5.458 11.461-8.014 14.014M365.64 660.75c2.901-2.244 10.236-9.528 11.483-12.594M370.11 652.52c-.337 2.677-1.11 7.452-1.526 9.973M371.24 658.48c-.987.962-2.387 2.641-3.427 3.551M380.54 653.14c-.831.805-1.78 1.744-2.611 1.978M381.02 653.27c.731.779 1.77 1.659 2.628 1.893M380.45 648.96c-.753.649-1.871 1.413-2.884 1.699M380.88 649.11c.65.546 1.342 1.342 2.173 1.706M377.72 645.94c.805-.234 2.004-.858 2.628-1.507M380.71 644.31c.705.805 2.056 1.455 2.732 1.637M377.88 642.7c.831-.182 1.861-.624 2.407-1.404M380.6 641.08c.701.598 1.933 1.462 2.738 1.54M386.53 643.41c-.451.468-1.556 1.309-2.257 1.296M386.99 643.37c.325.52 1.144 1.316 1.612 1.381M383.8 650.67c.909-.312 2.183-1.056 2.82-1.823M387.12 648.91c.266.48 1.28 1.565 1.852 1.786M384.88 655.95c.416-.09 1.547-.652 1.858-1.315M387.26 654.27c.429.533 1.481 1.507 2.131 1.741M370.58 656.87c1.273-.403 3.846-1.965 5.12-3.447M373.26 655.3c1.065.753 2.303 1.507 3.251 1.676M370.34 652.52c.702-.299 1.624-.809 2.339-1.549M373.22 650.87c.286.402 2.388 1.686 3.284 1.699M372.68 646.72c-.546.441-1.858 1.234-2.495 1.403M373.18 646.75c.728.506 2.167 1.4 3.154 1.4M372.68 642.66c-.585.662-1.572 1.685-2.391 1.919M373.15 642.81c.455.728 1.673 1.712 2.466 1.842M383.67 647.18c1.822 3.359 5.201 7.465 8.618 9.622M378.2 643.46c2.767 3.976 8.199 12.695 13.367 15.914M392.52 655.97a18.428 18.428 0 0 1-4.795 4.607M392.21 657.07c-1.741-2.78-2.641-6.295-3.943-10.924M374.15 658.51l2.144 5.899M373.75 658.37l1.896 6.017M373.34 658.09l1.76 6.262M373.16 658.19l1.359 6.128M374.47 664.1h1.699M375.95 663.46h-1.602M375.77 662.96h-1.546M375.59 662.46h-1.475M375.39 661.92h-1.404M373.89 661.44h1.332M373.79 661h1.264M373.68 660.52h1.202M373.59 660.09h1.134M373.49 659.65h1.078M373.4 659.24h1.02M373.3 658.86h.991M373.24 658.54h.923M371.57 658.55l-1.208 4.932M371.92 658.46l-1.037 5.21M372.2 658.27l-.839 5.549M372.56 658.16l-.609 5.803M372.68 663.63h-1.923M372.68 663.1h-2.225M372.68 662.55h-2.095M372.68 662.03h-1.965M372.68 661.5h-1.838M372.68 660.91h-1.692M372.68 660.4h-1.569M372.68 659.88h-1.436M372.68 659.38h-1.316M372.68 658.94h-1.212M372.68 658.59h-1.121M372.68 664.09v-5.88M379.15 656.27l-4.029 8.08M379.4 656.14l-3.43 8.254M379.65 656.05l-2.721 8.383M379.82 656.2l-2.116 8.238M377.8 664.06h-2.534M378 663.32h-2.359M378.11 662.72h-2.17M378.32 662.07h-2.053M378.42 661.55h-1.897M378.6 660.95h-1.787M378.78 660.25h-1.618M378.92 659.72h-1.488M379.07 659.11h-1.348M379.18 658.7h-1.247M379.28 658.31h-1.143M379.38 657.91h-1.053M379.47 657.56h-.968M379.56 657.21h-.887M379.66 656.85h-.8M379.74 656.52h-.721M382.36 656.4l1.763 5.58M382.7 656.52l2.139 5.355M383 656.53l2.505 5.237M386.11 661.32l-2.763-4.888M386.11 661.31h-2.192M385.73 660.65h-2.019M385.36 659.99h-1.851M384.98 659.32h-1.688M384.61 658.66h-1.529M384.23 658h-1.36M383.86 657.34h-1.194M383.48 656.67h-1.032M385.74 656.83l-1.725 5.173M386.26 656.6l-1.6 5.303M385.4 661.78l1.174-4.992M386.88 656.96l-.988 4.75M384.22 661.41h1.731M384.44 660.76h1.65M384.65 660.12h1.572M384.86 659.48h1.491M385.08 658.83h1.41M385.3 658.19h1.329M385.51 657.55h1.248M385.72 656.9h1.027M387.67 657.01l.846 3.547M387.98 656.84l1.169 3.697M388.38 656.83l1.275 3.702M388.9 657.03l1.277 3.477M390.06 660.2h-1.638M389.87 659.68h-1.556M389.68 659.16h-1.491M389.49 658.64h-1.43M389.29 658.12h-1.358M389.1 657.6h-1.284M388.91 657.08h-1.218" transform="matrix(4.9436 0 0 4.9441 -1482.9 -2891.1)" stroke-width=".125" stroke="#000" fill="none"/> - <path d="M357.948 402.956c3.985-2.566 10.792-2.052 14.263.514 4.113-2.309 11.563-1.67 15.033 1.414 5.265-3.594 9.764-4.108 14.9-.642 3.985-2.824 10.15-3.08 14.905.257 4.622-2.186 9.764-3.98 14.257.77-2.694-1.927-8.478-3.598-14.257.9-4.499-4.498-12.334-2.827-14.905.258-3.342-3.985-10.406-4.628-14.648.257-4.622-3.856-11.558-3.985-15.285-1.028-2.957-2.314-7.322-4.238-14.263-2.7z" fill="#00b800"/> - <path d="M428.147 397.468c-20.427 3.53-64.944 1.028-74.707-1.414-3.357-.84-2.442-2.057.385-1.414 11.252 2.556 35.263 2.571 48.497 1.928 2.57-3.406 6.615-9.186 7.836-10.793s1.76-1.755 4.306-2.185c4.558-.771 7.163-1.187 11.113-1.864.064.514.064 1.157.064 1.543-.321.257-.643.707-.9.835 0 2.635.514 9.058 1.029 11.372.514-.065 1.156-.257 1.478-.322.9-.257 1.794 2.057.9 2.314z" fill="#cf6200"/> - <path d="M461.616 398.457c.736-.02 2.274-.054 2.699-.064.835-.02 2.007-.594 2.521-1.88s2.106-6.036 2.684-8.028l-2.056-3.1c.45-2.556 1.028-6.022 1.092-6.73 1.029-.385 2.116-.77 2.63-.963.129-.579-.123-2.151-.642-2.665-8.8.336-35.134 1.25-39.954 1.315-1.157 0-1.676-.05-2.116 1.607-2.442 9.122.934 21.922 10.149 29.294.643.514 1.453.084.38-.9-1.537-1.414-3.915-4.307-5.521-7.164 1.8-.03 5.447-.09 6.54-.134.524 2.16 2.165 6.72 2.487 7.49s1.112.88.736-.271c-.885-2.7-1.35-5.775-1.735-7.253 1.67-.04 4.82-.01 6.748-.119.094 2.442.351 5.715.415 6.615s.836.964.85-.064c.02-1.028.04-5.374.025-6.655 2.175-.06 4.954-.153 5.982-.153-.143 1.39-.41 5.883-.51 6.595-.147 1.049.401 1.543.658.065s.772-4.935.915-6.685c.87-.025 3.159-.118 4.123-.143-.094 1.37-1.38 5.532-1.765 6.625s.237 1.127.672.094c.455-1.058 1.864-5.236 1.993-6.73z" fill="#cf6200"/> - <path d="M432.448 397.419c-.707-1.414-2.892-6.442-3.084-10.101 1.863-.035 6.525-.124 8.774-.173.332 2.759 1.182 8.701 1.632 10.11-2.63.065-5.843.149-7.322.164zM439.666 387.086c.242 2.106 1.345 9.339 1.523 10.174 1.908-.113 6.327-.128 7.094-.192-.08-1.929-.39-9.162-.425-10.19-1.998.054-7.188.183-8.192.208zM429.73 378.137c-.357 1.849-.42 5.8-.322 7.485 2.25.045 7.786-.089 8.552-.153-.187-1.919-.489-5.39-.682-7.555-1.834.08-6.328.188-7.549.223zM438.924 377.89c.065 1.8.465 6.2.594 7.544 1.943-.054 6.698-.153 8.305-.207-.084-1.647-.346-6.952-.376-7.595-2.58.07-6.886.233-8.523.257zM449.108 377.593c.08 1.67.292 6.388.228 7.609 2.061-.055 6.001-.094 7.222-.193.094-1.676.366-6.467.238-7.688-2.314.089-6.002.213-7.688.272zM458.205 377.247c0 1.414-.178 6.383-.243 7.732 2.042-.079 6.68-.242 7.885-.272.322-1.656.964-5.957 1.157-7.772-1.928.065-7.39.272-8.8.312zM466.164 386.393c-2.635.084-6.872.198-8.306.252-.222 3.254-.627 8.875-.82 10.16 2.318-.049 7.005-.197 8.033-.227.771-1.542 2.442-6.358 2.828-7.836-.578-.9-1.028-1.414-1.735-2.349zM449.405 386.838c0 1.157.203 9.439.252 10.146 1.508-.05 5.423-.104 6.002-.169.291-3.223.731-9.398.81-10.17-2.67.075-5.29.154-7.064.193zM415.294 384.86l-3.347.594c-1.542 2.492-7.257 10.2-7.964 11.1 3.98-.114 10.204-.233 11.702-.376-.11-2.067-.386-10.294-.39-11.317zM416.777 384.564c.08 2.635.331 9.656.396 11.52 1.972-.114 5.606-.351 7.084-.48-.341-3.312-.964-11.223-1.093-12.187-1.656.302-4.909.875-6.387 1.147z"/> - <path d="M377.29 656.93c.091.001.103.079-.001.078l-7.678-.095c-.104-.001-.09-.079.001-.078l7.678.095zM383.33 650.78c.091.003.102.081-.002.078l-6.083-.167c-.104-.003-.089-.081.002-.078l6.083.167zM376.91 652.54c.091.001.103.079-.001.078l-6.808-.05c-.104 0-.09-.078 0-.078l6.809.05zM377.11 648.12c.091 0 .104.078 0 .078l-7.121-.037c-.104 0-.09-.078.001-.077l7.12.036zM376.62 644.63c.091.001.102.08-.001.078l-6.919-.104c-.104-.002-.09-.08.001-.078l6.919.104z" transform="matrix(4.9436 0 0 4.9441 -1482.9 -2891.1)" stroke-width=".125" stroke="#000"/> - <path fill="#fff" d="M383.78 642.59c.091-.001.105.077.001.078l-5.938.057c-.104.001-.092-.077-.001-.078l5.938-.057z" transform="matrix(4.9436 0 0 4.9441 -1482.9 -2891.1)" stroke-width=".125" stroke="#000"/> - <path d="M384.15 645.91c.091 0 .104.078 0 .078h-6.562c-.104 0-.091-.078 0-.078h6.562zM390.59 650.64c.091 0 .104.078 0 .078h-7.072c-.104 0-.091-.078 0-.078h7.072zM390.69 644.73c.091.001.103.079-.001.078l-7.225-.071c-.104-.001-.09-.079.001-.078l7.225.071zM384.01 655.12c.091.001.103.079-.001.078l-6.356-.042c-.104-.001-.09-.079.001-.078l6.356.042zM390.22 655.98c.091.001.103.079-.001.078l-5.587-.074c-.104-.001-.089-.079.002-.078l5.586.074z" transform="matrix(4.9436 0 0 4.9441 -1482.9 -2891.1)" stroke-width=".125" stroke="#000"/> - <path d="M395.26 657.05c.157-.349.179-1.151.089-1.455a1.106 1.106 0 0 1-.647-.04 2.973 2.973 0 0 0-.341-.106c-.022.402-.168 1.426-.348 1.822-.314.089-.947-.015-1.307-.128l-.262.942a3.45 3.45 0 0 0 1.452-.009c-.035.601-.114 1.148-.439 1.526.531.012 1.006-.066 1.18-.252a.403.403 0 0 1 .053-.048c.245-.41.252-.944.311-1.304.181.013.415-.039.519-.143s.273-.156.442-.143c.154.012.394-.02.699-.143.008-.184.044-.384.107-.558.034-.095.071-.253.102-.444-.387.185-1.25.494-1.61.483z" transform="matrix(4.9436 0 0 4.9441 -1482.9 -2891.1)" stroke-width=".125" stroke="#000" fill="#ef072d"/> - <path d="M370.46 623.2c-.791.023-2.513.039-2.875.242-.361.204-.52.294.113.407s1.704.414 2.291.776c.587.361 1.079 1.001.917 1.914-.485 2.743.949 5.381 3.027 6.376.201.096.249.169.204.542s-.181.995-.294 1.153c-.113.159-.169.419.192.294-.248.464-.802 1.391-.971 1.628-1.661-.203-3.016.023-3.141 1.763-.012.17.046.441.305.012.26-.43.554-.837 1.265-.95-.418.644-.553 1.221-.485 1.594.067.373.169.599.35.124.181-.474.514-.918.87-1.187.135-.101.226-.124.124.17s.045.927.249 1.142c.203.214.305.124.248-.226-.056-.351.032-1.084.463-1.312.621-.327 1.152-.158 1.401.272.248.429.463.022.192-.464s-.554-.825-1.006-.859c.396-.701.859-1.549.961-1.718.101-.17.26-.249.395-.147.136.102.226.09.362-.192.135-.283.372-1.119.711-1.458.17-.046.441-.113.542-.204.441.644.836 1.357.938 1.515.101.158.215.226.113.554s-.452 1.368-.508 1.594c-1.232.045-1.796.067-2.192.757-.173.301.102.418.396.26.293-.158.711-.294.926-.26.214.034.315.144.101.249-.756.373-1.229.847-1.197 1.503.011.237.109.355.294.034.26-.452.734-.904 1.31-1.029-.034.554.091 1.368.429 1.538.339.169.363-.003.237-.328-.203-.52.008-1.043.26-1.323.531-.588 1.74.226 1.966.43.226.203.432.288.305-.238-.17-.7-1.164-1.107-2.011-1.22.237-1.142.87-3.448 1.209-4.239.497.271.885-.444 1.717-.136 1.4.52 3.501 1.831 3.863 2.125.361.294.497.226.678.068.18-.158.497 0 .745.045.249.045.475.113.158-.52-.316-.633-1.084-1.741-2.372-2.6.768.068 1.808.068 1.808-.135 0-.204-1.198-.588-1.695-.633.475-.113 1.198-.385 1.536-.769.201-.227-.04-.28-.745-.294-2.169-.045-3.253-.028-4.383-.678-1.807-1.04-2.841-2.135-3.728-2.6-.474-.249-.763-.823-.946-1.319-.587-1.583-.558-2.295-1.936-2.815s-2.963.117-3.686.772z" transform="matrix(4.9436 0 0 4.9441 -1482.9 -2891.1)" stroke-width=".125" stroke="#000"/> - <path d="M370.55 623.56c-.351-.013-1.04-.096-1.611-.039-.13.013-.286.078.026.117s1.156.246 1.455.35.169.26-.091.195-.356.031-.143.182c1.105.78 1.222 1.079.936 3.755.208.143.377.247.559.338s.13.221-.065.169-.377.065-.065.13.454.208.156.195c-.299-.013-.65.247-.065.182.584-.065.818.208.13.221-.689.013-.429.234-.065.234.649 0 .454.182.286.182-.169 0-.247.221.182.182.428-.039.597-.052.753-.026s.221.155-.013.169c-.234.012-.221.181.13.181s.497.106.182.169c-.13.026-.31.091.065.143.65.091.676.247.468.273s-.234.143.065.169c.298.026.558.117.312.182-.247.065-.377.208-.066.234.312.026.572.143.338.221s-.286.221.013.208.416.156.208.272c-.208.117-.351.195-.481-.012-.129-.208-.207-.273-.246-.117-.039.155-.13.052-.234-.182s-.286-.299-.234-.117-.182.208-.403.117c.819.831 2.027 1.585 3.95.805.164-.066.195 0 .325.273s.494.871.624 1.092.233.022.298-.195c.26-.858.455-1.495.533-1.728.078-.234.442-.468.325.35.286-.195 1.553-.379 2.534-.013 1.078.403 2.162 1.028 2.716 1.443a.624.624 0 0 0 .493.143c.26-.026.325-.065-.169-.52-.493-.455-.285-.676.026-.455.312.221.481.091.247-.182s-.792-.805-.974-.935-.208-.182-.624-.208-1.299-.026-1.559-.026-.338.026.234.234c.571.207 1.741.961 2.001 1.143s.442.598-.13.234-2.365-1.481-3.56-1.897c-2.729.182-4.886.546-6.497-1.221-.772-.846-.806-2.781.493-3.587-.26-.221-.221-.351-.117-.403s.143-.104.039-.234c-.103-.13-.091-.246 0-.298-.285-.156-.415-.338-.402-.533-.351-.078-.507-.494-.975-.364s-.702.026-.844-.091c-.144-.117-.26-.169-.52-.143s-.468-.078-.481-.208.22-.193.572-.039c.74.325 1.338.481 1.793-.13.455-.61-.13-1.182-1.001-1.351-.87-.169-1.507.468-1.832.767z" transform="matrix(4.9436 0 0 4.9441 -1482.9 -2891.1)" stroke-width=".125" stroke="#000" fill="#fff"/> - <path d="M374.92 623.33c-.262-.284-.728-.546-.961-.624-.234-.078-.26.156-.13.273-.104.156-.143.533.039.637s.184.252.013.337c-.26.13-.172.82.22.624.13-.065.234-.039.208.065s.026.234.143.26.104.195.078.26.013.091.143.104.143.325-.091.429c.286 0 .364-.052.442.182.078.233.39.285.39.571s-.052.338-.39.286-.468.052-.572.182-.13.26.13.273.312.13.052.247-.688.039-.753.286c-.065.246 0 .363.194.272.195-.09.598-.259.754-.35s.299-.104.429.104.026.441-.195.26c-.221-.182-.325-.014-.455.09s-.325.169-.533.169c-.207 0-.35.027-.324.494.078 1.404 1.169 2.443 3.17 2.417s2.989-.052 3.288-.013c-.663-.364-1.079-.559-1.313-.533s-.429.065-.325-.117-.013-.182-.117-.26-.233-.182-.441.039-.702.468-.949.52-.546.039-.312-.195.754-.312.91-.416.156-.168.156-.246-.039-.299.26-.13c.597.338 1.533.844 1.78.831s.416-.117.195-.26-.286-.35-.221-.428.104-.156.494.065c.389.22 1.026.506 1.26.61s.546.065.065-.286c-.481-.35-1.975-1.338-2.391-1.65s-.234.065-.195.182-.286.26-.455.117-.286-.299-.052-.429.286-.143-.065-.455c-.35-.311-.454-.285-.376-.026.078.26.104.546-.26.403s-.546-.312-.312-.455c.234-.142.533-.22.143-.545s-.273 0-.364.182-.39.182-.559.039-.247-.286-.13-.403.104-.182.273-.091.429.039.117-.234-.429-.156-.364 0-.182.429-.571.065c-.185-.172-.182-.403.013-.442.194-.039.213-.14.077-.338-.792-1.156-.467-2.092-1.26-2.949z" transform="matrix(4.9436 0 0 4.9441 -1482.9 -2891.1)" stroke-width=".125" stroke="#000" fill="#fff"/> - <path d="M371.197 191.497c-.336.504-.46.484-1.082.9-.767.509-.94 1.967.346 1.794.89-.118 1.409-.647 1.76-1.077a11.137 11.137 0 0 0-1.024-1.617zM367.193 188.283c-.989.96-1.162 1.39-.658 1.39.599 0 .341.084-.089.77-.425.688.86 1.03 1.375.515s.598-.687.855 0c.208.559 1.053.03 1.587-.51-.875-.845-2.052-1.626-3.07-2.165zM365.413 193.82c-1.285.643-.85 4.055 1.088 3.086.642-.322 1.157-.193 1.028.321-.07.272-.025.584.119.83a5.956 5.956 0 0 0 2.13-1.537c1.202-1.37.084-1.285-1.71-1.285-1.8 0-2.314-.341-.603-1.37 1.532-.92.534-1.557-1.587-1.26.306.434.153.91-.465 1.216zM372.78 201.385c-.945-1.028-.347-1.542.681-2.057.252-.123.425-.281.55-.47-.293-1.132-.525-2.22-.831-3.277-.54.153-1.167 1.354-1.345 1.948-.257.855-.514 1.37-1.37 1.112-.76-.227-1.522.628-1.68 1.543.118.05.301.084.543.108.356.035.534.52.426 1.034 2.318-.074 2.714 1.528 3.11 2.625.43 1.202.943 1.028 1.285.346.34-.687-.43-1.884-1.37-2.912z" fill="#cf6200"/> - <path d="M373.422 214.833c-.42.95-.43.855-1.8.94-1.369.088-3.094.32-3.85 1.117-.411.425-2.779.539-2.784 1.582-.01 1.048 0 1.928 1.028 1.992 1.024.065 1.152.193.771.964-.39.772-.642 2.057 1.152 2.186 1.8.128 3.085-.45 3.535.573.45 1.029-.035 2.67.321 3.278s1.572.999 3.456 1.582c1.256.39 5.997.613 7.455.445 1.453-.173.91-1.043-.549-1.171-1.453-.129-2.526-.342-2.867-1.41-.341-1.072-.643-1.631.173-2.526.81-.9 1.626-1.587 1.157-3.085-.475-1.498-1.246-3.258-2.957-3.728-1.715-.47-1.171-2.813-2.872-3.04-.642-.085-1.196-.085-1.37.301z" fill="#ff0"/> - <path d="M365.117 228.775c1.473.129 2.758.579 1.542.9-1.221.322-1.864 1.029-.326 1.157 1.542.129 2.827.707 1.67 1.093s-1.413 1.092.065 1.028 2.056.771 1.028 1.345c-1.028.578-1.735.964-2.378-.06-.637-1.028-1.023-1.35-1.216-.578-.193.767-.643.257-1.157-.9s-1.414-1.478-1.156-.578-.9 1.028-1.993.578c1.078 1.093 2.29 2.156 3.668 3.056 1.577-.54 3.318-.1 3.91-.04.643.065 2.636.514 3.728 1.093s1.8-.45 1.35-1.607c-.45-1.152-.514-.766-1.093-.128-.578.642-.707-.258-.642-1.602.054-1.137-.707-.836-.964-.129s-.836-.45-.514-1.157-.065-.964-.643-.771-.643 0-.707-1.286-.643-1.092-.836-.578-.706-.193-1.478-1.221c-.672-.9-1.448-.371-2.793.163.168.099.475.183.935.222z" fill="#cf6200"/> - <path d="M380.738 236.735c-7.02 2.848-12.082 1.583-15.893-.944 1.577-.539 3.351-.079 3.945-.02.642.065 2.635.515 3.727 1.093s1.8-.45 1.35-1.607c.964 1.221 1.67 2.057 2.823 1.993 1.156-.065 3.084-.257 4.048-.515zM365.76 204.401c-.43-1.454-.856-1.8-1.627-1.71-.771.083-1.113-.09-1.973-.43-.855-.342-1.967.083-2.14 1.626s-1.113 2.314-2.398 3.253c-1.285.944-2.056 1.716-2.056 3.258s-.342 1.968-1.197 3.085c-.38.495-.92 1.058-1.424 1.652.554.346 1.073.647 1.617.914.9.45.643 1.093-.321.836s-1.864.321-.322.643 2.245 1.028.771.964c-1.478-.065-3.213 1.22-.32.9 2.886-.322 4.043 1.028.642 1.092-3.406.064-2.121 1.157-.322 1.157 3.209 0 2.245.9 1.414.9-.835 0-1.22 1.093.9.9.03-.005.054-.01.09-.01.306-.317.533-.712.701-1.211.341-1.029.682-4.03 1.884-4.885 1.196-.856 1.8-2.057 1.8-2.912s1.794-4.623 2.995-5.567 1.715-2.996 1.285-4.455z" fill="#ff0"/> - <path d="M363.238 204.45c-1.216-.81-2.398-.34-2.398 1.202s-.77 1.968-1.8 2.482c-1.022.514-1.967 1.8-2.14 3-.168 1.197.173 1.969-.682 2.913-.86.94-.944 1.71-.341 2.225.598.514.598.603.855 1.37.257.77 1.71-.085 1.71-.94s.347-.855 1.286-1.37c.944-.514 2.487-3 2.14-3.683-.34-.687-1.196-1.285-.083-2.23 1.112-.94 2.313-1.028 2.313-1.967 0-.945.341-1.286.682-1.627.346-.346-.77-.86-1.542-1.375z" fill="#cf6200"/> - <path d="M363.238 203.214c-.8-.311-1.28 1.37-.168 1.627s1.285-1.201.168-1.627zM363.04 205.39c-.85.104-1.8 1.221-.385 1.028s1.992-1.221.385-1.028zM361.36 207.466c-.876.44-.708 1.607.578.772s1.606-1.864-.579-.772zM359.975 209.246c-.88.435-.707 1.602.579.772 1.285-.836 1.606-1.864-.579-.772z"/> - <path d="M358.196 210.087c-.876.44-.322 1.607.964.771s1.22-1.864-.964-.771zM359.283 211.174c-.875.44-.321 1.607.964.772s1.221-1.864-.964-.772z"/> - <path d="M357.75 211.62c-.874.44-.32 1.606.965.77s1.22-1.863-.964-.77zM358.74 212.855c-.88.44-.322 1.607.958.772 1.286-.836 1.221-1.864-.959-.772z"/> - <path d="M357.256 213.597c-.875.435-.321 1.602.964.766s1.221-1.859-.964-.766z"/> - <path d="M357.355 214.734c-.875.44-.321 1.607.964.771s1.221-1.863-.964-.77z"/> - <path d="M356.663 225.562c-.885.113-1.453 1.374-.341 1.631s1.37.341 1.37 1.197.345 2.057 1.542 2.14c1.201.09 2.23-1.285 1.201-1.71-1.028-.43-1.973-.771-2.057-1.716-.084-.94-1.028-1.626-1.715-1.542z" fill="#cf6200"/> - <path d="M388.203 218.195c.158.198.356.415.584.608.835.707 2.442 0 2.249-.578s-1.093-2.443.964-.9 9.442 6.427 11.82 8.158c2.378 1.735.835 1.928-.321 1.414s-4.306-1.929-6.23-3.016c-1.927-1.093-2.12-.707-2.441-.322-.272.322-.055 1.098.652 1.756-1.147.168-3.01-.084-3.544-1.306-.643-1.478-2.185-3.278-3.278-4.692-.405-.524-.524-.85-.455-1.122z" fill="#ff0"/> - <path d="M451.926 428.665c-1.602 1.093-3.722 3.021-2.313 5.716.168-.09.326-.193.489-.287 6.283-7.604 11.662-15.599 16.27-23.905.054-.286.103-.558.138-.796-1.8 1.543-4.627 3.08-5.784 3.466.771 2.057-2.823 4.756-4.751 5.528.771 1.285.514 3.213-1.157 3.599.386 1.152-.9 1.152-2.442 1.795s-2.314 1.157-2.823 1.928c.83-.45 1.988-.836 2.63-.643s.771 1.157-.385 1.414-1.923.9-2.314 1.414c1.671-.643 4.049-.321 2.442.771z" fill="#00d860"/> - <path d="M375.97 628.41c-.384-.335-.481-.13-.325.078s.039.312-.299.364-.845.117-1.053.117-.454.286.039.26c.494-.026 1.326-.195 1.547-.286s.402-.26.091-.533zM376.72 629c-.317-.285-.429-.208-.351 0s-.065.247-.272.312c-.208.065-1.027.338-1.378.377s-.429.286.091.273 1.52-.429 1.637-.507.156-.234.286-.156.247-.065-.013-.299zM376.96 629.83c-.23.137-.805.389-1.039.454s-.429.325.065.286c.493-.039 1.078-.494 1.234-.584.156-.091.234-.156.364-.143s.364-.169-.065-.403-.689-.117-.481.065.052.247-.078.325z" transform="matrix(4.9436 0 0 4.9441 -1482.9 -2891.1)" stroke-width=".125" stroke="#000"/> - <path d="M360.618 190.508c-3.14-2.062-6.723 2.26-3.253 4.628 3.04 2.076 6.254-2.655 3.253-4.628z"/> - <path d="M356.712 192.387l.93.064c-.193.96.771 2.408 2.25 2.052-1.187.9-3.5-.129-3.18-2.116zM368.874 239.207c.949.277 4.246.614 5.363.668-.558 1.177-1.062 1.958-1.399 2.798-.336.836-.499.895-.558-.39-.055-1.29-.781-2.126-1.449-.786-.672 1.344-1.008 1.844-1.34 2.402-.336.56-.84.787-.672-.613s.114-2.852.055-4.079z" fill="#fff"/> - <path d="M399.67 640.77c-.046 16.332-2.623 33.927-23.764 42.308-21.142-8.381-23.719-25.976-23.765-42.308h47.529zM399.67 640.77c.018-6.152-.324-12.125-.168-17.359-7.9-3.535-18.295-4.262-23.596-4.262-5.302 0-15.697.727-23.597 4.262.156 5.234-.185 11.207-.168 17.359h47.529z" transform="matrix(4.9436 0 0 4.9441 -1482.9 -2891.1)" stroke="#000" stroke-width=".25" fill="none"/> - </g> -</svg> diff --git a/img/flags/1x1/si.svg b/img/flags/1x1/si.svg deleted file mode 100644 index fa15217..0000000 --- a/img/flags/1x1/si.svg +++ /dev/null @@ -1,18 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" height="512" width="512" viewBox="0 0 512 512"> - <defs> - <clipPath id="a"> - <path fill-opacity=".67" d="M60.224 0h497.33v497.33H60.224z"/> - </clipPath> - </defs> - <g fill-rule="evenodd" clip-path="url(#a)" transform="translate(-62) scale(1.0295)" stroke-width="1pt"> - <path fill="#fff" d="M0 0h994.66v497.33H0z"/> - <path fill="#de2918" d="M0 331.55h994.66v165.78H0z"/> - <path fill="#08399c" d="M0 165.78h994.66v165.78H0z"/> - <path d="M282.039 90.314c-3.904 59.885-6.14 92.702-15.26 107.88-9.859 16.308-19.45 28.248-57.92 42.625-38.47-14.377-48.062-26.317-57.921-42.625-9.118-15.183-11.355-48-15.26-107.88l5.686-1.915c11.445-3.49 19.984-6.298 26.301-7.544 9.046-1.915 16.734-4.08 41.045-4.587 24.312.418 32.038 2.717 41.084 4.632 6.264 1.336 15.17 3.964 26.53 7.522l5.715 1.892z" fill="#de2918"/> - <path d="M276.435 88.353c-3.693 59.757-6.782 87.123-11.6 100.28-9.351 22.53-24.154 34.881-56.013 46.662-31.858-11.781-46.66-24.133-56.01-46.661-4.82-13.157-7.863-40.445-11.45-100.34 11.203-3.5 19.986-6.234 26.303-7.48 9.046-1.916 16.734-4.171 41.045-4.59 24.312.419 32.09 2.674 41.136 4.59 6.317 1.246 15.282 3.98 26.59 7.54z" fill="#08399c"/> - <path d="M208.79 106.642l1.528 3.616 6.712.92-4.349 2.623 4.205 2.81-6.116 1.026-1.862 3.277-2.093-3.375-5.823-.826 3.963-2.872-4.08-2.614 6.445-.988 1.47-3.597z" fill="#fc0"/> - <path d="M262.537 174.474l-3.721-2.941-2.689-4.424-5.267-4.569-2.745-4.617-5.267-4.713-2.577-4.616-2.8-2.261-1.85-1.779-4.757 4.172-2.593 4.531-3.232 2.93-3.55-2.773-2.684-4.727-9.964-17.695-9.966 17.695-2.684 4.727-3.55 2.773-3.231-2.93-2.594-4.531-4.757-4.172-1.85 1.779-2.8 2.261-2.577 4.616-5.267 4.713-2.745 4.617-5.267 4.569-2.688 4.424-3.712 3.01c1.927 16.402 12.383 29.253 18.08 35.132 6.357 6.173 19.464 14.432 35.492 19.899 16.074-5.35 29.363-13.726 35.72-19.899 5.697-5.879 16.153-18.73 18.092-35.201z" fill="#fff"/> - <path d="M224.814 81.486l1.527 3.616 6.712.92-4.349 2.622 4.205 2.812-6.116 1.025-1.862 3.276-2.093-3.374-5.823-.826 3.963-2.873-4.08-2.614 6.445-.988 1.47-3.596zM192.78 81.43l1.528 3.617 6.712.92-4.349 2.622 4.205 2.812-6.116 1.025-1.862 3.276-2.093-3.374-5.823-.826 3.963-2.873-4.08-2.614 6.445-.988 1.47-3.596z" fill="#fc0"/> - <path d="M254.219 197.214l-7.255.022-6.694-.498-8.108-3.977-9.14.055-7.915 3.867-6.243.552-6.243-.552-7.915-3.867-9.14-.055-8.108 3.977-6.694.498-7.345-.101-3.548-6.009.132-.138 10.852 1.795 6.694-.498 8.108-3.977 9.14.055 7.915 3.867 6.243.552 6.243-.552 7.915-3.867 9.14-.055 8.108 3.977 6.694.498 10.562-1.852.14.278-3.538 6.005zM170.224 206.452l7.18-.498 8.11-3.977 9.139.055 7.915 3.867 6.243.552 6.243-.552 7.915-3.867 9.14-.055 8.108 3.977 7.279.498 4.696-5.789-.158-.13-5.032 1.466-6.694-.498-8.109-3.977-9.139.055-7.915 3.867-6.243.552-6.243-.552-7.915-3.867-9.14-.055-8.108 3.977-6.694.498-4.932-1.243-.06.242 4.414 5.454z" fill="#08399c"/> - </g> -</svg> diff --git a/img/flags/1x1/sj.svg b/img/flags/1x1/sj.svg deleted file mode 100644 index c8851f9..0000000 --- a/img/flags/1x1/sj.svg +++ /dev/null @@ -1,7 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" height="512" width="512" viewBox="0 0 512 512"> - <path d="M0 0h512v512H0z" fill="#ef2b2d"/> - <path d="M128 0h128v512H128z" fill="#fff"/> - <path d="M0 192h512v128H0z" fill="#fff"/> - <path d="M160 0h64v512h-64z" fill="#002868"/> - <path d="M0 224h512v64H0z" fill="#002868"/> -</svg> diff --git a/img/flags/1x1/sk.svg b/img/flags/1x1/sk.svg deleted file mode 100644 index 8b4dd8d..0000000 --- a/img/flags/1x1/sk.svg +++ /dev/null @@ -1,9 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" height="512" width="512" viewBox="0 0 512 512"> - <path fill="#ee1c25" d="M0 0h512v512H0z"/> - <path fill="#0b4ea2" d="M0 0h512v341.333H0z"/> - <path fill="#fff" d="M0 0h512v170.667H0z"/> - <path d="M203.204 395.52c-45.893-22.106-111.539-65.982-111.539-152.775s4.15-126.265 4.15-126.265h214.781s4.15 39.472 4.15 126.265-65.645 130.67-111.542 152.775z" fill="#fff"/> - <path d="M203.204 384c-42.103-20.28-102.329-60.534-102.329-140.16 0-79.628 3.807-115.84 3.807-115.84H301.729s3.808 36.212 3.808 115.84c0 79.626-60.226 119.88-102.332 140.16z" fill="#ee1c25"/> - <path d="M212.21 222.962c11.4.185 33.643.631 53.448-5.996 0 0-.523 7.087-.523 15.343 0 8.258.523 15.345.523 15.345-18.166-6.08-40.601-6.206-53.448-6.043v43.98H194.2v-43.98c-12.846-.163-35.28-.037-53.448 6.042 0 0 .523-7.086.523-15.344 0-8.256-.523-15.344-.523-15.344 19.806 6.628 42.048 6.181 53.448 5.997v-27.62c-10.39-.093-25.364.403-42.293 6.069 0 0 .523-7.087.523-15.345 0-8.256-.523-15.344-.523-15.344 16.904 5.656 31.86 6.16 42.247 6.07-.534-17.491-5.63-39.536-5.63-39.536s10.487.818 14.68.818c4.196 0 14.68-.818 14.68-.818s-5.095 22.046-5.63 39.535c10.39.09 25.344-.414 42.248-6.07 0 0-.523 7.087-.523 15.344s.523 15.344.523 15.344c-16.93-5.665-31.903-6.161-42.294-6.069v27.62z" fill="#fff"/> - <path d="M203.2 280.827c-21.203 0-32.56 29.413-32.56 29.413s-6.3-13.946-23.6-13.946c-11.704 0-20.33 10.411-25.813 20.053 21.294 33.881 55.268 54.79 81.973 67.653 26.708-12.864 60.705-33.767 82-67.653-5.483-9.642-14.11-20.053-25.814-20.053-17.3 0-23.626 13.946-23.626 13.946s-11.356-29.413-32.56-29.413z" fill="#0b4ea2"/> -</svg> diff --git a/img/flags/1x1/sl.svg b/img/flags/1x1/sl.svg deleted file mode 100644 index 42a34ea..0000000 --- a/img/flags/1x1/sl.svg +++ /dev/null @@ -1,12 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" height="512" width="512" viewBox="0 0 512 512"> - <defs> - <clipPath id="a"> - <rect width="384" height="512" rx="4.627" ry="7.628"/> - </clipPath> - </defs> - <g transform="matrix(1.33333 0 0 1 0 0)" clip-path="url(#a)" fill-rule="evenodd"> - <path fill="#0000cd" d="M0 341.7h512V512H0z"/> - <path fill="#fff" d="M0 171.4h512v170.3H0z"/> - <path fill="#00cd00" d="M0 0h512v171.4H0z"/> - </g> -</svg> diff --git a/img/flags/1x1/sm.svg b/img/flags/1x1/sm.svg deleted file mode 100644 index e3afd20..0000000 --- a/img/flags/1x1/sm.svg +++ /dev/null @@ -1,92 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" height="512" width="512" viewBox="0 0 512 512"> - <g fill-rule="evenodd" stroke-width="1pt"> - <path fill="#19b6ef" d="M0 255.999h512v255.999H0z"/> - <path fill="#fff" d="M0 0h512v255.999H0z"/> - </g> - <path d="M252.86 361.822c55.944-41.854 116.22-127.256 45.588-172.166-13.158-2.548-27.846-1.784-34.893 3.82-3.734-2.123-6.707-1.953-10.441 2.038-2.632-3.227-5.265-4.671-10.698-3.056-10.866-5.519-20.713-6.707-33.617-3.312-61.463 36.929-23.856 124.54 44.06 172.676z" fill-rule="evenodd" stroke="#7d6c00" stroke-width="1.7767pt" fill="#fd0"/> - <g stroke="#3a9d4f"> - <path stroke-linejoin="round" d="M356.335 266.768s6.296-8.467 6.513-8.467c6.297-3.692 6.949-8.468 6.949-8.468 6.296-1.955 4.342-7.166 4.775-7.816 3.042-3.257 1.955-6.515 1.521-7.6 0-.868 2.171-8.902-.869-9.987.144-8.541-5.138-7.745-9.336-2.172-4.488 1.303-5.5 4.995-3.909 9.12-5.863 0-6.08 8.468-4.342 13.244-7.816-.217-3.474 8.468-3.692 8.903-2.605 1.302 1.954 13.679 2.39 13.243zM307.031 339.506l3.909 2.388c.796 2.967 3.546 4.85 5.646 4.344 1.013 4.56 5.934 3.91 9.554 1.303 2.894 4.198 6.442 4.27 11.29 2.823 4.343 3.184 9.99 1.809 13.68-1.521 3.98 3.257 6.658.869 8.684-2.605 3.11.796 5.572.29 6.73-2.823 6.08-.506 3.04-6.224-1.953-8.684 3.98-3.476 8.395-10.641 2.171-11.727-1.954-1.446-5.644-1.156-8.467.219-.723-3.186-5.14-3.982-9.989-.435-1.665-3.547-7.455-1.882-10.205.652-3.474-3.04-7.6-3.04-13.679.433l-17.37 15.633zM307.031 330.179c.723-3.98-2.027-11.218 2.171-11.941-.796-6.66.363-14.186 8.035-13.462 1.23-6.297.941-12.16 8.25-13.029 0 0 5.864-20.409 11.944-6.297 2.387 4.128 1.954 10.856-2.824 9.554.942 5.067-.723 9.48-6.296 9.336 2.46 3.547 1.664 8.397-1.086 10.64l-20.194 15.199zM342.423 304.772l6.297-1.302c6.513-4.343 9.12-6.08 12.376-1.304 5.428-1.159 10.639-.58 10.422 3.692 6.443.433 6.37 4.559 5.647 7.815 1.012 5.718-1.448 13.173-5.43 4.126-12.593-7.672-19.759-6.66-39.734-2.171 3.473-3.62 6.949-7.237 10.422-10.856zM345.692 298.465c.219-.217 18.673-4.995 16.719-10.64 5.211-.868 6.298-6.08 6.515-6.08 10.856-3.473 10.204-9.77 10.204-9.77 3.112-3.33 8.613-6.66 7.384-12.594.362-6.73.94-10.856-8.035-6.514-6.732-.652-9.12 3.257-11.074 9.12-3.184-3.763-8.322 2.244-8.901 7.6 0 0-8.251 8.033-8.251 8.25s-6.949 12.81-6.949 12.81l2.388 7.818z" fill-rule="evenodd" stroke-width="1.7767pt" fill="#4fd46b"/> - <path stroke-linejoin="round" d="M346.119 284.144c-4.416-3.33-6.876-7.309-6.08-11.29-2.895-3.91-4.922-6.297-2.171-9.77 0 0-2.172-7.818-2.172-8.035-5.644-2.17-3.256-6.947-1.737-8.684-2.678-3.692-2.75-7.601-.217-11.074-.073-6.95 4.849-4.343 8.901 0 0 0 6.732 4.777 1.738 9.12 4.994 1.737 6.515 6.077 3.692 7.815 4.342 1.954 4.992 5.863 2.605 8.47 4.415 3.546 2.75 7.961 4.125 11.94-2.894 3.837-5.79 7.673-8.684 11.508z" fill-rule="evenodd" stroke-width="1.7767pt" fill="#4fd46b"/> - <path stroke-linejoin="round" d="M353.936 251.79c-.217-.216-7.382-9.336-5.428-9.988-.433-2.823-2.604-5.863-1.302-8.684-3.546-3.547-3.62-7.743-.869-11.073-2.388-3.256-1.302-7.599 1.954-10.422-1.012-5.357 2.75-6.586 6.08-7.6 2.461-8.614 6.44-6.37 8.685.216 3.402 2.967 2.896 7.455 1.737 10.858 4.053 2.75 1.592 6.15-.216 7.599-3.547 9.699-7.095 19.396-10.641 29.095z" fill-rule="evenodd" stroke-width="1.7767pt" fill="#4fd46b"/> - <path stroke-linejoin="round" d="M352.852 205.97l-6.08-6.08c1.571-3.221 2.836-8.9-1.735-11.508-2.522-6.14-15.127-13.752-17.154.869-1.92-4.412-5.935-8.757-8.902-3.69-6.586-5.645-10.132-3.909-6.732 3.256 0 0-3.038 4.776 4.995 8.468.652.65-2.605 8.685 6.948 8.901-1.808 2.75 1.159 6.587 4.995 6.297-2.75 3.402 1.881 7.022 4.775 5.646-1.23 3.763-1.158 5.574 4.126 6.08l5.863 6.73 4.776 6.514 4.125-31.483z" fill-rule="evenodd" stroke-width="1.7767pt" fill="#4fd46b"/> - <path d="M356.548 262.93c.307-.307 11.667-26.406 13.202-34.39M357.774 216.577s1.842 21.187-3.378 36.847M322.773 195.078s23.337 22.415 25.485 31.628M339.047 192.627s1.535 18.424 7.983 36.541M380.196 259.555s-23.337 19.652-34.7 36.847M358.076 328.349s-30.707 4.3-44.217 4.607M347.949 341.55s-38.077-.922-40.841-3.685M328.902 292.104c0 .306-19.344 32.24-19.96 42.682" stroke-linecap="round" stroke-width="2.220875" fill="none"/> - </g> - <path d="M252.646 355.657c-40.285-37.999-81.548-109.312-40.501-145.35 7.295 4.138 15.896.435 27.764-4.247 3.593 3.92 8.164 4.9 12.737 1.96 5.117 2.178 8.928.435 11.433-2.287 11.65 6.752 26.566 10.236 30.05 3.595 40.393 38.323-.546 109.965-41.483 146.329z" fill-rule="evenodd" stroke="#7d6c00" stroke-width="1.7767pt" fill="#65c7ff"/> - <path d="M252.877 354.555c-17.3-17.394-33.084-36.676-45.169-61.502 2.068-1.741 3.03-2.281 4.119-5.33 6.206.872 9.471 1.089 17.637-.327 1.633 6.097 1.96 11.214 5.88 16.331l8.165-16.004c5.552 1.307 12.412 1.634 17.637 0 3.376 4.573 2.178 11.433 8.166 16.658 3.592-10.56 7.187-11.323 10.78-16.985 5.334 1.851 8.71 1.089 13.065-.327 2.287 2.613 1.144 2.57 5.307 6.407-10.914 21.674-25.881 43.442-45.587 61.08z" fill-rule="evenodd" fill="#8fc753"/> - <path d="M205.48 175.248a3.569 3.569 0 1 1-7.138 0 3.569 3.569 0 0 1 7.138 0zM201.756 167.024a3.569 3.569 0 1 1-7.138 0 3.569 3.569 0 0 1 7.138 0zM197.41 159.42a3.569 3.569 0 1 1-7.137 0 3.569 3.569 0 0 1 7.138 0zM194.463 151.972a3.569 3.569 0 1 1-7.138 0 3.569 3.569 0 0 1 7.138 0zM194.928 143.904a3.569 3.569 0 1 1-7.138 0 3.569 3.569 0 0 1 7.138 0zM213.767 130.56a3.569 3.569 0 1 1-7.137 0 3.569 3.569 0 0 1 7.137 0z" fill-rule="evenodd" stroke="#000" stroke-width="1.1104375" fill="#fff"/> - <path d="M206.721 131.801a3.569 3.569 0 1 1-7.138 0 3.569 3.569 0 0 1 7.138 0zM198.963 136.456a3.569 3.569 0 1 1-7.138 0 3.569 3.569 0 0 1 7.138 0zM222.859 130.714a3.569 3.569 0 1 1-7.138 0 3.569 3.569 0 0 1 7.138 0zM232.79 131.49a3.569 3.569 0 1 1-7.138 0 3.569 3.569 0 0 1 7.138 0zM241.634 131.025a3.569 3.569 0 1 1-7.137 0 3.569 3.569 0 0 1 7.137 0z" fill-rule="evenodd" stroke="#000" stroke-width="1.1104375" fill="#fff"/> - <path d="M262.25 125.33a9.155 9.155 0 1 1-18.309 0 9.155 9.155 0 0 1 18.31 0z" fill-rule="evenodd" stroke="#7d6c00" stroke-width="1.11205196" fill="#fd0"/> - <path d="M271.892 130.87a3.569 3.569 0 1 1-7.138 0 3.569 3.569 0 0 1 7.138 0zM281.203 131.645a3.569 3.569 0 1 1-7.137 0 3.569 3.569 0 0 1 7.137 0zM290.202 131.18a3.569 3.569 0 1 1-7.137 0 3.569 3.569 0 0 1 7.137 0zM297.805 130.87a3.569 3.569 0 1 1-7.138 0 3.569 3.569 0 0 1 7.138 0zM307.271 131.956a3.569 3.569 0 1 1-7.138 0 3.569 3.569 0 0 1 7.138 0zM314.719 136.61a3.569 3.569 0 1 1-7.138 0 3.569 3.569 0 0 1 7.138 0z" fill-rule="evenodd" stroke="#000" stroke-width="1.1104375" fill="#fff"/> - <path d="M202.028 161.8c3.04 5.782 6.078 11.788 9.118 17.569h84.509l9.786-16.902c-5.709-3.928-9.637-6.968-17.792-5.115-4.596-6.597-9.637-7.857-17.124-7.116-2.224-2.297-4.226-3.706-8.007-4.225l-17.79.445c-4.671.444-8.23 4.002-8.452 4.002-7.562-.89-14.455-.668-16.234 6.672-6.893-1.706-11.786.15-18.014 4.67z" fill-rule="evenodd" stroke="#ac0000" stroke-width="1.7767pt" fill="#e40000"/> - <path d="M317.823 144.37a3.569 3.569 0 1 1-7.138 0 3.569 3.569 0 0 1 7.138 0zM318.443 152.749a3.569 3.569 0 1 1-7.138 0 3.569 3.569 0 0 1 7.138 0zM315.805 160.507a3.569 3.569 0 1 1-7.138 0 3.569 3.569 0 0 1 7.138 0zM312.546 166.869a3.569 3.569 0 1 1-7.138 0 3.569 3.569 0 0 1 7.138 0zM308.668 174.938a3.569 3.569 0 1 1-7.138 0 3.569 3.569 0 0 1 7.138 0z" fill-rule="evenodd" stroke="#000" stroke-width="1.1104375" fill="#fff"/> - <path d="M258.722 164.71a5.276 5.276 0 1 1-10.552 0 5.276 5.276 0 0 1 10.552 0z" fill-rule="evenodd" stroke="#000" stroke-width="1.1110095" fill="#fff"/> - <path d="M259.767 152.573a6.362 6.362 0 1 1-12.723 0 6.362 6.362 0 0 1 12.723 0z" fill-rule="evenodd" stroke="#000" stroke-width="1.1116696499999998" fill="#fff"/> - <path d="M258.849 140.786a5.741 5.741 0 1 1-11.482 0 5.741 5.741 0 0 1 11.482 0z" fill-rule="evenodd" stroke="#000" stroke-width="1.11183202" fill="#fff"/> - <path d="M251.172 116.317c0-.987-.03-4.441.039-4.58l-3.81-.07.109-3.386 3.306-.039.04-2.96h4.688v2.713h3.701l-.076 3.603-3.842-.039-.03 4.828-4.125-.07z" fill-rule="evenodd" stroke="#7d6c00" stroke-width="1.1104375" fill="#fd0"/> - <path d="M210.716 179.372c-7.563-12.824-18.676-30.257-11.788-37.806 9.551-10.818 31.948-1.038 46.256-7.34 1.038 12.233-2.372 32.47 3.115 36.696-1.706 1.482-3.411 2.966-5.115 4.448-3.115-4.003-8.98-9.367-16.234.222-4.152-3.63-8.871-2.992-11.094 1.835-2.114.284-1.991 1.13-5.14 1.945zM296.176 178.928c7.563-12.824 18.676-30.257 11.788-37.806-9.552-10.818-31.949-1.038-46.256-7.34-1.038 12.233 2.371 32.47-3.115 36.696l5.115 4.447c4.922-6.92 11.064-7.144 16.234.222 4.152-3.63 8.453-3.132 11.094 1.836 2.114.284 1.991 1.13 5.14 1.945z" stroke="#fd0" stroke-width="3.3313125" fill="none"/> - <path d="M210.485 188.931c30.394-3.113 58.564-2.002 84.51 0 1.113-3.187 2.223-6.376 3.336-9.564-29.504-5.337-49.89-6.003-88.512-.666l.666 10.23z" fill-rule="evenodd" stroke="#7d6c00" stroke-width="1.7767pt" fill="#fd0"/> - <path d="M249.715 351.321c.218-1.524.435-2.945.654-4.47 3.022.814 5.328.5 7.838-.428l2.614-3.921-1.96-2.285c-1.723.371-3.137 1.972-4.246 3.369-1.736.081-3.267-.757-4.9-1.084-.544-2.287-1.09-4.571-1.633-6.858-1.62-1.915-4.982-1.78-4.246 1.633l.327 2.613c.653 1.633.897 3.88 1.96 5.103v2.68l3.592 3.648zM251.012 331.813c-2.273 1.127-4.97-.833-7.839-1.96-2.614-.179-4.714 1.998-7.839 1.307.57-1.697 1.96-1.96 2.94-2.94-.717-4.407 1.633-5.88 2.287-5.88.652 0 3.266.654 3.266.654l2.613.327c1.525 2.83 3.662 5.355 4.572 8.492z" fill-rule="evenodd" fill="#c76e2e"/> - <path d="M235.483 390.48c7.537-12.236 60.008-36.808 109.248-89.866-50.12 48.26-81.446 60.106-122.463 89.571l13.215.295z" fill-rule="evenodd" stroke="#e9bf00" stroke-width="1.7767pt" fill="#ffe100"/> - <path d="M307.617 334.052a3.82 3.82 0 1 1-7.64 0 3.82 3.82 0 0 1 7.64 0zM344.289 296.866a4.33 4.33 0 1 1-8.66 0 4.33 4.33 0 0 1 8.66 0zM356.518 265.282a3.82 3.82 0 1 1-7.64 0 3.82 3.82 0 0 1 7.64 0zM344.537 224.287a3.82 3.82 0 1 1-7.64 0 3.82 3.82 0 0 1 7.64 0z" fill-rule="evenodd" stroke="#68300e" stroke-width="1.1104375" fill="#9d4916"/> - <path d="M212.386 287.556v-16.158l-1.643-1.368v-3.834l3.013-.273.547-18.075-1.917-1.096-.273-3.011s2.19.82 2.19.273.548-3.56.548-3.56-1.368-.274-1.368-.821 1.641-1.917 1.641-1.917-.82-.823-1.094-1.37-.821-3.012-.821-3.012l.82-3.013-.546-1.643-1.37-2.465 1.917-1.917s-.547-2.464-.547-3.011 1.368-2.738 1.641-3.013c.276-.274 2.466-3.286 2.466-3.286l4.655-1.096 5.478.823 3.011 1.917.548 4.928s-.548 3.012-.821 3.012-2.465 1.096-2.465 1.096-2.74.274-3.013 0 .823 3.287.823 3.287v3.285l-.274 4.108s0 1.917-.275 2.19c-.274.274-.821 1.097-.821 1.097l-.274 4.108 4.382 1.094-.274 2.466-3.013.274.549 16.704 4.381.821v4.657l-1.917 1.094-.547 16.705h-15.337zM278.942 287.84v-16.157l-1.644-1.368v-3.834l3.013-.274.548-18.074-1.917-1.097-.274-3.011s2.19.82 2.19.273.548-3.56.548-3.56-1.368-.274-1.368-.82 1.641-1.918 1.641-1.918-.82-.823-1.094-1.37-.82-3.011-.82-3.011l.82-3.014-.547-1.643-1.37-2.464 1.917-1.917s-.547-2.465-.547-3.012 1.368-2.738 1.641-3.013c.276-.274 2.466-3.285 2.466-3.285l4.655-1.097 5.478.823 3.012 1.917.547 4.929s-.547 3.011-.821 3.011-2.464 1.096-2.464 1.096-2.74.274-3.014 0 .823 3.287.823 3.287v3.285l-.274 4.108s0 1.917-.275 2.19c-.274.274-.82 1.097-.82 1.097l-.274 4.108 4.38 1.094-.273 2.466-3.013.274.549 16.704 4.381.821v4.657l-1.917 1.094-.547 16.705h-15.336zM245.255 288.39v-16.157l-1.643-1.368v-3.834l3.013-.273.547-18.075-1.917-1.096-.273-3.011s2.19.82 2.19.273.548-3.56.548-3.56-1.368-.274-1.368-.821 1.641-1.917 1.641-1.917-.82-.823-1.094-1.37-.821-3.012-.821-3.012l.82-3.013-.546-1.643-1.37-2.465 1.917-1.917s-.547-2.464-.547-3.011 1.368-2.738 1.641-3.013c.276-.274 2.466-3.286 2.466-3.286l4.655-1.096 5.478.823 3.011 1.917.548 4.928s-.548 3.012-.821 3.012-2.465 1.096-2.465 1.096-2.74.274-3.013 0 .823 3.287.823 3.287v3.285l-.274 4.108s0 1.917-.275 2.19c-.274.274-.821 1.097-.821 1.097l-.274 4.108 4.382 1.094-.274 2.466-3.013.274.549 16.704 4.381.821v4.657l-1.917 1.094-.547 16.705h-15.337z" fill-rule="evenodd" stroke="#a9a9a9" stroke-width="1.1104375" fill="#fff"/> - <path d="M216.437 287.45v-12.734h7.132v13.243l-7.132-.51zM250.052 288.462l.254-12.99h6.368v12.734l-6.622.256zM283.17 288.213l-.51-12.224 6.878-.255v12.735l-6.368-.256zM218.214 249.748h4.074v6.621h-4.074zM250.568 250.014h5.603v6.368h-5.603zM283.668 250.512h4.84v6.111h-4.84z" fill-rule="evenodd"/> - <path d="M220.328 220.752c4.382 4.928 4.655 4.928 4.655 4.928M252.913 220.752c.82 1.641 2.19 5.202 3.834 5.476M287.967 221.57s1.37 3.833 3.287 4.38" stroke="#a8a8a8" stroke-width="1.1104375" fill="none"/> - <path d="M215.673 206.947c12.812-4.142-2.993-12.425-5.618 0-4.145.67-4.681 3.745-13.641 2.41-21.667 35.307-5.618 92.283 57.778 151.266-113.55-96.632-67.404-168.107-35.96-165.411 17.102 1.169 8.475 22.502-2.559 11.735z" fill-rule="evenodd" fill="#b97700"/> - <path d="M219.244 188.842s10.433 2.81 10.433 7.223M229.674 188.043s7.222 3.208 8.826 6.017M286.652 189.25s-9.23 1.206-11.235 4.013M272.599 190.05s-5.215 4.414-4.815 5.617M271.408 209.31c-.803-.402-4.413-5.217-3.612-11.236M236.088 206.112s2.407-2.81 2.407-8.026M252.948 196.073l.402 11.636M263.378 206.112c0-.803 3.21-8.425-.402-12.037M241.311 192.467s-2.809 7.624-.801 14.043M261.779 199.29s-4.414 1.202-6.421 3.21M242.91 200.48c0-.4 4.815-1.203 6.42 1.606" stroke="#7d6c00" stroke-width="1.7767pt" fill="none"/> - <path d="M235.324 321.97c.204.103 3.995-.717 3.995-2.562 1.948-1.23.512-4.713.512-4.713l-3.585-.718-4.92-5.533c-.238-1.707.343-3.311-.716-5.122-3.381.889-5.328 3.722-6.457 6.967.821 1.025.924 2.151 2.461 3.073 1.605.274 2.697-.682 4.2-.408.786 1.366.546 2.528.82 3.791 2.05 1.434 2.46 3.484 3.69 5.225zM230.917 298.305v-6.558c-1.57-.07-3.143-.137-4.713-.206-.581.991-1.674 1.47-2.358 2.358-1.093.547-2.185 1.092-3.278 1.64 1.366 1.64 3.04 2.561 4.099 3.38 2.391.718 4.372.718 6.25-.614zM216.153 308.041l-2.562-4.305c1.57-.512 3.552-.307 5.02.308 0 0 1.13 2.665.308 3.688-.41.922-2.87.513-2.766.31zM255.098 312.447c1.367-.682 2.63-1.878 2.87-3.585l-4.714-5.431-4.303-.102c-.99-1.025-2.596-1.23-3.893-1.23 0 0 1.333 2.05 3.074 2.46 1.23 2.764 6.558 7.888 6.966 7.888zM259.718 313.051c0-.1 4.2-1.536 6.454-1.33-.204-1.743 3.177-5.74 3.177-5.74l5.943 7.788c-1.092.922-3.006.615-4.51.922 0 0-2.868 2.767-3.176 2.87s-5.532 1.33-8.094-.205c-1.127-2.151.307-4.612.206-4.305zM263.093 299.424c.718-2.493.922-4.987 0-8.095 0 0-6.764-.103-6.764 0 0 .102-4.507 2.049-4.507 2.152s1.436 4.406 3.177 3.996c.785 2.288 3.107 1.707 4.2 2.562 1.299-.204 2.596-.41 3.894-.615zM289.637 292.566c-.922 2.836-1.434 5.876-.103 8.608 1.23.204 2.665 1.024 3.792.82l5.431-9.838c-3.758-1.196-6.798-1.06-9.12.41z" fill-rule="evenodd" fill="#c76e2e"/> - <path d="M291.307 206.059c-12.811-4.142 2.994-12.425 5.618 0 4.145.67 4.682 3.745 13.642 2.409 21.667 35.308 5.618 92.283-57.778 151.266 113.55-96.631 67.404-168.106 35.96-165.41-17.103 1.168-8.475 22.501 2.558 11.735z" fill-rule="evenodd" fill="#b97700"/> - <path d="M292.604 303.635c-.204 0-3.278 2.253-3.278 2.253-1.469.58-2.937 1.162-4.406 1.743l-4.713.1-1.026-3.277 3.588-3.177c-3.04-.444-6.08.752-8.506 2.973 0 0 0 3.585 2.05 5.328 1.23 1.535 4.816 4.303 4.816 4.303 2.254.444 4.406.068 5.84-1.128l5.635-9.118zM267.802 335.81c1.538.411 12.092-13.626 12.092-13.626-.922-2.63-2.973-4.543-5.227-5.74 0 0-5.124 6.045-5.225 8.096-.82 1.844-3.175 8.913-2.152 9.837-.103.204-.512 3.072.512 1.434z" fill-rule="evenodd" fill="#c76e2e"/> - <path stroke-linejoin="round" d="M198.777 338.547c-15.804-13.746-37.128-21.324-66.895-11.04 8.01 3.464 16.67 4.655 24.03 8.442l42.865 2.598z" fill-rule="evenodd" stroke="#004100" stroke-width="1.7767pt" fill="#006800"/> - <path d="M152.991 328.793c31.174.648 40.267 8.441 38.643 7.142" stroke="#00a400" stroke-linecap="round" stroke-width="2.220875" fill="none"/> - <path stroke-linejoin="round" d="M199.416 340.164c-9.31 1.839-22.19 10.83-25.978 10.39-10.176-1.183-19.685-5.307-29.55-8.443-4.1-1.302-8.228 0-12.341 0 34.963-16.56 46.87-14.288 67.87-1.947z" fill-rule="evenodd" stroke="#004100" stroke-width="2.220875" fill="#006800"/> - <path stroke-linejoin="round" d="M176.373 315.805s-11.69 1.622-16.886 1.948c-5.197-.324-12.751-5.165-21.107-13.964-4.362-4.777-14.289-4.221-14.289-4.221 21.975-4.655 39.075-.217 52.282 16.237zM160.453 293.081c-15.913-.975-35.722-15.262-40.267-32.147-.001.215 5.844 3.68 4.87 4.546 26.088 6.602 27.82 11.906 35.397 27.601zM187.086 320.354c2.273-14.397 2.923-23.922-3.896-32.473-5.629-6.496-7.036-10.392-11.04-19.485-1.191 18.943-5.306 34.638 14.936 51.958zM162.07 280.413c11.797-17.21 13.855-30.2 12.014-50.659-.325 1.624-4.221 11.691-4.545 11.691-17.536 11.04-9.741 28.253-7.469 38.968z" fill-rule="evenodd" stroke="#004100" stroke-width="1.7767pt" fill="#006800"/> - <path stroke-linejoin="round" d="M151.694 197.282c11.798 17.21 9.959 33.448 8.118 53.906-.325-1.623-4.221-11.69-4.545-11.69-17.536-11.04-5.845-31.501-3.573-42.216z" fill-rule="evenodd" stroke="#004100" stroke-width="1.7767pt" fill="#006800"/> - <path stroke-linejoin="round" d="M161.43 223.914c28.577-14.396 17.535-32.69 22.732-46.76-19.809 14.721-22.406 30.415-22.731 46.76z" fill-rule="evenodd" stroke="#004100" stroke-width="1.7767pt" fill="#006800"/> - <path d="M165.322 220.343c3.573-10.067 10.717-27.278 11.365-27.278M156.882 241.45c-.648-7.146-4.22-26.305-4.545-28.253" stroke="#00a400" stroke-linecap="round" stroke-width="2.220875" fill="none"/> - <path stroke-linejoin="round" d="M158.18 273.59c-15.915-.975-33.126-22.73-37.67-39.616-.002.215 5.843 3.68 4.87 4.547 22.84 10.173 25.222 19.375 32.8 35.07zM153.453 258.649c-11.797-17.211-13.854-30.2-12.014-50.66.325 1.625 4.222 11.691 4.545 11.691 17.536 11.04 9.742 28.254 7.47 38.969zM164.025 228.463c29.55-13.098 20.457-26.844 29.225-41.241-19.809 14.722-28.9 24.895-29.225 41.24z" fill-rule="evenodd" stroke="#004100" stroke-width="1.7767pt" fill="#006800"/> - <path d="M165.322 225.531c12.015-12.016 16.237-22.082 16.237-22.082" stroke="#00a400" stroke-linecap="round" stroke-width="2.220875" fill="none"/> - <g fill-rule="evenodd"> - <path d="M270.449 390.764l14.39.293c-47.773-44.737-139.303-64.217-126.576-146.545-13.118 89.279 74.79 97.501 112.186 146.252z" stroke="#e9bf00" stroke-width="1.7767pt" fill="#ffe100"/> - <path d="M165.766 226.828a4.584 4.584 0 1 1-9.169 0 4.584 4.584 0 0 1 9.169 0zM162.959 252.04a4.33 4.33 0 1 1-8.66 0 4.33 4.33 0 0 1 8.66 0zM167.027 287.964a3.82 3.82 0 1 1-7.64 0 3.82 3.82 0 0 1 7.64 0zM200.388 327.691a3.82 3.82 0 1 1-7.64 0 3.82 3.82 0 0 1 7.64 0zM205.226 339.087a3.82 3.82 0 1 1-7.64 0 3.82 3.82 0 0 1 7.64 0z" stroke="#68300e" stroke-width="1.1104375" fill="#9d4916"/> - </g> - <g fill-rule="evenodd" fill="#fff"> - <g stroke="#000" stroke-width=".625"> - <path d="M222.07 372.287c-2.513-2.276-4.11-3.737-5.096-6.217l-14.98-1.63c-.067 2.854-.135 5.706-.204 8.559l20.28-.712z" stroke-width="1.1104375"/> - <path stroke-linejoin="round" d="M112.323 362.195c8.7 1.606 21.82-.803 26.103 4.818 5.143 5.83-16.099 14.797-13.057 19.839 6.57 6.952 13.332 4.086 20.686.242 1.732-3.758 3.07-10.458 4.017-12.45-2.677-6.158-9.87-9.175-8.032-18.474 12.13-4.532 35.445-4.157 37.955-2.41 1.97 3.865.2 5.626.6 8.705-2.007 3.882-7.175 10.463-7.186 13.945 12.725 4.483 16.08-.69 27.527-.387 13.412.165 21.572 3.767 24.484-1.565-1.995-4.602-14.297-.858-18.966-3.815-2.335-.79-3.843-2.667-5.861-4.737s-7.692-2.174-8.541-7.27c2.374-10.895 18.096-9.23 20.667-10.898l40.963 2.81c7.421-.209 11.618 13.145 1.597 17.164-10.02 4.017-39.657-5.961-52.513.897-.665-2.797-9.902-7.027-10.568-7.16-3.936 1.178-11.606.746-11.606.746-1.874 3.48-4.013 6.028-5.888 9.509-8.507-3.73-16.548 2.896-25.838.933 0 0-14.056 1.606-14.457 1.606s-9.236-.803-9.236-.803c-4.685 1.337-9.37 2.677-14.055 4.015 3.346-2.946 6.693-5.89 10.038-8.836l-8.833-6.424z" stroke-width="1.1104375"/> - <path d="M111.703 360.47a3.872 3.872 0 1 1-7.744 0 3.872 3.872 0 0 1 7.744 0zM110.688 379.624a3.872 3.872 0 1 1-7.744 0 3.872 3.872 0 0 1 7.744 0z" stroke-width="1.1104375"/> - </g> - <g stroke="#000" stroke-width=".625"> - <path d="M283.987 372.356c2.513-2.276 4.11-3.736 5.096-6.217l14.98-1.629c.067 2.853.134 5.705.204 8.558l-20.28-.712z" stroke-width="1.1104375"/> - <path stroke-linejoin="round" d="M393.734 362.264c-8.7 1.606-21.82-.803-26.103 4.819-5.144 5.83 16.099 14.796 13.057 19.838-6.57 6.953-13.333 4.087-20.686.242-1.733-3.758-3.07-10.458-4.017-12.45 2.677-6.157 9.87-9.174 8.032-18.473-12.13-4.533-35.445-4.158-37.956-2.41-1.97 3.865-.199 5.625-.6 8.704 2.008 3.882 7.176 10.463 7.187 13.946-12.725 4.482-16.08-.691-27.527-.388-13.412.166-21.572 3.767-24.484-1.565 1.995-4.602 14.297-.858 18.966-3.814 2.334-.791 3.843-2.667 5.861-4.737s7.691-2.175 8.54-7.27c-2.373-10.895-18.095-9.23-20.666-10.899l-40.963 2.811c-7.422-.21-11.618 13.144-1.598 17.163 10.02 4.017 39.658-5.96 52.514.897.665-2.796 9.902-7.027 10.568-7.16 3.935 1.178 11.605.746 11.605.746 1.875 3.48 4.014 6.029 5.888 9.51 8.507-3.73 16.549 2.895 25.839.932 0 0 14.055 1.606 14.457 1.606s9.235-.803 9.235-.803c4.685 1.338 9.37 2.678 14.056 4.015L384.9 368.69l8.834-6.425z" stroke-width="1.1104375"/> - <path d="M394.353 360.54a3.872 3.872 0 1 0 7.745 0 3.872 3.872 0 0 0-7.745 0zM395.369 379.694a3.872 3.872 0 1 0 7.744 0 3.872 3.872 0 0 0-7.744 0z" stroke-width="1.1104375"/> - </g> - <path d="M252.77 351.286c-3.446-.647-4.672-.462-7.008-.693-1.829 5.622-3.655 11.243-5.483 16.864 8.468.764 16.308.764 16.308.695-5.136-1.041-3.886-16.797-3.816-16.866z"/> - </g> - <g font-size="9" font-family="Trebuchet MS" font-weight="bold"> - <text y="344.274" x="448.605" transform="translate(-581.23 -248.83) scale(1.7767)"> - <tspan y="344.274" x="448.605">L</tspan> - </text> - <text y="344.622" x="453.64" transform="translate(-581.23 -248.83) scale(1.7767)"> - <tspan y="344.622" x="453.64">I</tspan> - </text> - <text y="345.056" x="456.678" transform="translate(-581.23 -248.83) scale(1.7767)"> - <tspan y="345.056" x="456.678">B</tspan> - </text> - <text y="345.49" x="462.58" transform="translate(-581.23 -248.83) scale(1.7767)"> - <tspan y="345.49" x="462.58">E</tspan> - </text> - <text y="345.576" x="468.309" transform="translate(-581.23 -248.83) scale(1.7767)"> - <tspan y="345.576" x="468.309">R</tspan> - </text> - <text y="345.403" x="473.952" transform="translate(-581.23 -248.83) scale(1.7767)"> - <tspan y="345.403" x="473.952">T</tspan> - </text> - <text y="344.535" x="479.247" transform="translate(-581.23 -248.83) scale(1.7767)"> - <tspan y="344.535" x="479.247">A</tspan> - </text> - <text y="344.274" x="485.497" transform="translate(-581.23 -248.83) scale(1.7767)"> - <tspan y="344.274" x="485.497">S</tspan> - </text> - </g> - <path d="M161.43 339.844c10.718 1.299 25.656.323 32.15-.002M145.192 303.137c9.093 7.144 28.901 11.364 28.576 11.364M185.132 316.463c-2.923-14.937-6.169-18.51-8.766-27.928M129.93 271.636c15.263 6.82 17.536 11.364 27.277 18.183M162.728 274.888c1.3-18.512 3.898-23.383 8.444-27.605M129.93 245.022c5.522 6.17 23.706 25.328 23.706 25.328M146.169 228.125c6.82 4.87 6.82 22.404 6.82 22.404" stroke="#00a400" stroke-linecap="round" stroke-width="2.220875" fill="none"/> -</svg> diff --git a/img/flags/1x1/sn.svg b/img/flags/1x1/sn.svg deleted file mode 100644 index dfc5114..0000000 --- a/img/flags/1x1/sn.svg +++ /dev/null @@ -1,8 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" height="512" width="512" viewBox="0 0 512 512"> - <g fill-rule="evenodd" stroke-width="1pt"> - <path fill="#0b7226" d="M-.001 0h170.665v512H-.001z"/> - <path fill="#ff0" d="M170.664 0h170.665v512H170.664z"/> - <path fill="#bc0000" d="M341.329 0h170.665v512H341.329z"/> - </g> - <path fill="#0b7226" d="M196.962 351.726l22.145-71.823-60.4-46.46h74.498l24.158-76.048 22.145 76.048h76.51l-60.4 46.46 22.145 73.935-60.4-46.474z"/> -</svg> diff --git a/img/flags/1x1/so.svg b/img/flags/1x1/so.svg deleted file mode 100644 index 032dc58..0000000 --- a/img/flags/1x1/so.svg +++ /dev/null @@ -1,11 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" height="512" width="512" viewBox="0 0 512 512"> - <defs> - <clipPath id="a"> - <path fill-opacity=".67" d="M177.17 0h708.66v708.66H177.17z"/> - </clipPath> - </defs> - <g clip-path="url(#a)" fill-rule="evenodd" transform="translate(-128) scale(.72249)"> - <path fill="#40a6ff" d="M0 0h1063v708.66H0z"/> - <path d="M642.937 527.641L528.74 453.625l-113.637 74.743 42.264-121.461-113.428-75.002 140.332-1.046 43.526-121.093 44.458 120.814 140.332.16-112.847 75.709 43.197 121.192z" fill="#fff"/> - </g> -</svg> diff --git a/img/flags/1x1/sr.svg b/img/flags/1x1/sr.svg deleted file mode 100644 index f020a22..0000000 --- a/img/flags/1x1/sr.svg +++ /dev/null @@ -1,6 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" height="512" width="512" viewBox="0 0 512 512"> - <path fill="#377e3f" d="M0-.05h512v512.1H0z"/> - <path fill="#fff" d="M0 102.37h512v307.26H0z"/> - <path fill="#b40a2d" d="M0 153.58h512v204.84H0z"/> - <path d="M255.893 163.36l60.2 185.28-157.607-114.51H353.3L195.694 348.64z" fill="#ecc81d"/> -</svg> diff --git a/img/flags/1x1/ss.svg b/img/flags/1x1/ss.svg deleted file mode 100644 index ce272c0..0000000 --- a/img/flags/1x1/ss.svg +++ /dev/null @@ -1,8 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" height="512" width="512" viewBox="0 0 512 512"> - <path d="M0 358.4h512V512H0z" fill="#078930"/> - <path d="M0 153.6h512v204.8H0z" fill="#fff"/> - <path d="M0 0h512v153.6H0z"/> - <path d="M0 179.2h512v153.6H0z" fill="#da121a"/> - <path d="M0 0l433 256L0 512z" fill="#0f47af"/> - <path d="M209.05 207.85L64.35 256l144.7 48.15L119.6 178.1v155.8z" fill="#fcdd09"/> -</svg> diff --git a/img/flags/1x1/st.svg b/img/flags/1x1/st.svg deleted file mode 100644 index 295bc6a..0000000 --- a/img/flags/1x1/st.svg +++ /dev/null @@ -1,16 +0,0 @@ -<svg xmlns:xlink="http://www.w3.org/1999/xlink" xmlns="http://www.w3.org/2000/svg" height="512" width="512" viewBox="0 0 512 512"> - <path fill="#12ad2b" d="M0 0h512v512H0z"/> - <path fill="#ffce00" d="M0 146.286h512v219.429H0z"/> - <path d="M0 0v512l192-256" fill="#d21034"/> - <g id="c" transform="translate(276.893 261.508) scale(.33167)"> - <g id="b"> - <path id="a" d="M0-200V0h100" transform="rotate(18 0 -200)"/> - <use height="100%" width="100%" xlink:href="#a" transform="scale(-1 1)"/> - </g> - <use height="100%" width="100%" xlink:href="#b" transform="rotate(72)"/> - <use height="100%" width="100%" xlink:href="#b" transform="rotate(144)"/> - <use height="100%" width="100%" xlink:href="#b" transform="rotate(-144)"/> - <use height="100%" width="100%" xlink:href="#b" transform="rotate(-72)"/> - </g> - <use height="100%" width="100%" xlink:href="#c" x="700" transform="translate(-550.902)"/> -</svg> diff --git a/img/flags/1x1/sv.svg b/img/flags/1x1/sv.svg deleted file mode 100644 index c902f40..0000000 --- a/img/flags/1x1/sv.svg +++ /dev/null @@ -1,621 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" height="512" width="512" viewBox="0 0 512 512"> - <path fill="#0f47af" d="M0 0h512v512H0z"/> - <path fill="#fff" d="M0 170.667h512v170.667H0z"/> - <g transform="translate(-184.212) scale(.85333)"> - <g fill="#fff" fill-rule="evenodd" stroke="#000" stroke-width=".304"> - <path d="M515.01 353.35c1.52 0 3.167 0 10.11-1.692 6.943-1.65 12.67-5.858 14.015-6.466 1.345-.607 3.297-.434 3.297-.434-.738-.78-2.864-2.734-5.857-2.734-3.038 0-1.823 0-4.383 1.085-2.56 1.04-7.897 4.294-16.92 4.294h-.173c-9.027 0-14.666-3.253-17.226-4.295-2.56-1.086-1.39-1.086-4.383-1.086-3.037 0-5.12 1.954-5.9 2.734 0 0 1.996-.173 3.34.434 1.346.608 7.073 4.816 14.016 6.466 6.897 1.692 8.59 1.692 10.065 1.692z"/> - <path d="M488.37 347.44c.737-.433-.174-1.648-.174-1.648l2.734-.608c-1.345-.607-3.34-.434-3.34-.434-.522.434-.435.955-.522 1.345-.043.39-.043 1 .26 1.302.26.26 1.042.043 1.042.043z"/> - <path d="M490.92 345.19l-2.734.608s.91 1.215.174 1.648l4.816-.91s-.737-.522-2.256-1.346zm50.77 2.25c-.737-.433.13-1.648.13-1.648l-2.69-.608c1.345-.607 3.297-.434 3.297-.434.564.434.477.955.564 1.345.044.39.044 1-.26 1.302-.302.26-1.04.043-1.04.043z"/> - <path d="M539.13 345.19l2.69.608s-.867 1.215-.13 1.648l-4.816-.91s.737-.522 2.256-1.346z"/> - </g> - <path d="M495.843 343.31l-1.22 3.03.564.22c.91.39 1.817.185 2.25-.813.39-1.042-.133-1.808-1-2.156l-.594-.28zm.25.625l.094.03c.693.304 1.115.8.812 1.626-.348.782-1.038.805-1.688.5l-.125-.03.906-2.125z"/> - <path fill-rule="evenodd" d="M497.563 347.618l-.348-.135 1.346-2.988.348.135-1.345 2.988z"/> - <path d="M500.213 345.28c-.634.016-1.238.443-1.53 1.094-.392.868-.013 1.796.81 2.187.825.35 1.8-.025 2.19-.936a1.74 1.74 0 0 0-.845-2.22 1.495 1.495 0 0 0-.625-.124zm-.03.5c.145 0 .316.03.468.094.65.26.824.955.563 1.562-.26.608-.967.917-1.53.656-.52-.26-.805-.91-.5-1.562.194-.455.56-.746 1-.75z"/> - <path d="M503.81 347.36c-.043-.216-.13-.39-.346-.477-.216-.087-.564 0-.65.26-.088.26.086.48.216.608l.218.175c.346.303.563.65.346 1.17-.217.565-.78.783-1.302.61-.434-.175-.695-.695-.564-1.216l.39.086c-.13.304.044.65.347.78.304.13.65-.087.782-.39.13-.347-.087-.564-.304-.78l-.173-.175c-.26-.26-.477-.563-.304-.996.174-.478.695-.652 1.128-.478.346.13.52.39.563.738l-.347.086zm2.39.17l-.52 1.823c-.13.52-.13 1.042.433 1.215.607.174.868-.26 1.04-.78l.52-1.867.348.13-.563 1.954c-.173.694-.737 1.128-1.432.91-.693-.172-.954-.823-.737-1.518l.564-1.996.348.13zm4.38 4.513l-1.823-2.988-.478 2.378-.348-.04.65-3.382 1.78 2.947.477-2.336.347.042zm.824-.083l.39-3.215.347.04-.39 3.258z" fill-rule="evenodd"/> - <path d="M514.183 348.88c-.91-.043-1.644.683-1.687 1.594-.044 1 .65 1.738 1.562 1.78.868.044 1.644-.625 1.688-1.624.043-.91-.694-1.75-1.563-1.75zm-.062.47c.694.042 1.138.63 1.094 1.28a1.14 1.14 0 0 1-1.156 1.156c-.608-.043-1.094-.598-1.094-1.25.044-.65.506-1.187 1.157-1.187z"/> - <path d="M519.083 352.136l-2.517-2.347.174 2.43h-.39l-.26-3.382 2.516 2.336-.174-2.388.39-.04zm2.04-.486l-.608-3.205.39-.042.564 2.813.91-.166.088.383zm1.735-.34l-.738-3.175.39-.083.738 3.164z" fill-rule="evenodd"/> - <path d="M523.873 347.72c-.136.007-.265.03-.406.063l-.344.125.875 3.125.688-.157c.52-.173.954-.567.78-1.22-.086-.346-.42-.636-.812-.592.174-.174.2-.502.157-.72-.162-.52-.53-.646-.937-.624zm.063.406c.207-.034.402.05.5.375.13.392-.135.51-.438.595l-.094.03-.312-.936h.125a.94.94 0 0 1 .22-.064zm.5 1.313c.254-.03.528.017.593.343.13.39-.166.57-.47.656l-.28.092-.25-1 .187-.03c.075-.022.134-.054.22-.063z"/> - <path d="M527.24 347.97l.13.34-1.172.393.39 1.17 1.216-.436.13.393-1.562.528-1.085-3.08 1.606-.57.087.34-1.215.435.303.87z" fill-rule="evenodd"/> - <path d="M528.623 346.19c-.304-.043-.552.026-.812.156l-.437.188 1.22 3.03.343-.124-.47-1.313.126-.03 1.344.906.468-.157-1.468-.97c.39-.216.517-.69.343-1.123-.088-.26-.353-.52-.657-.563zm-.094.406c.167.017.318.127.406.344.172.433-.185.65-.532.78l-.062.032-.406-1 .093-.03c.15-.066.33-.142.5-.126z"/> - <path d="M529.237 345.757l1.696-.745.165.31-.693.3 1.22 2.647-.35.175-1.21-2.647-.652.3z" fill-rule="evenodd"/> - <path d="M532.213 344.19l.22 3.72.405-.22-.062-.844 1.28-.656.688.563.344-.22-2.875-2.343zm.438.875l1 .813-.906.468-.093-1.28zm2.662-2.185c-.318.018-.66.117-.97.313l-.56.312 1.718 2.813.5-.282c.868-.52 1.253-1.39.688-2.344-.352-.596-.844-.842-1.375-.812zm.156.5c.303.027.604.193.843.563.433.737.026 1.296-.625 1.687l-.062.03-1.188-1.936.094-.094c.325-.174.633-.277.937-.25z"/> - <g id="a" stroke-miterlimit="2.613" stroke="#000"> - <path d="M485.07 355.17c.52 0 .91-.39.91-.912 0-.478-.39-.867-.91-.867-.477 0-.91.39-.91.868 0 .52.433.912.91.912zm-5.12 6.33c.52 0 .91-.39.91-.91a.916.916 0 0 0-.91-.913c-.478 0-.91.434-.91.912 0 .52.433.91.91.91zm-11.89-19.87c.477 0 .91-.434.91-.91a.917.917 0 0 0-.91-.913.89.89 0 0 0-.91.912c0 .476.39.91.91.91zm-7.38 3.69c.52 0 .998-.434.998-1 0-.52-.478-.997-.998-.997a1.01 1.01 0 0 0-.998.998c0 .566.433 1 .998 1zm-1.34-22.3c.52 0 .998-.433.998-.998 0-.52-.477-.997-.998-.997a1.01 1.01 0 0 0-.998.997.98.98 0 0 0 .998.998zm-6.21 1.82a.982.982 0 0 0 .998-.998.98.98 0 0 0-.998-.997c-.52 0-.998.433-.998.997 0 .564.477.998.998.998zm3.17-19.87c.565 0 .998-.478.998-.998a.981.981 0 0 0-.998-.998.982.982 0 0 0-.998.998c0 .52.435.998.998.998zm-5.55-18.27c.52 0 .998-.434.998-.954a1.01 1.01 0 0 0-.998-.998.98.98 0 0 0-.998.998c0 .52.433.954.998.954zm7.07 1.82a.982.982 0 0 0 .998-.998c0-.52-.435-.997-.998-.997a1.01 1.01 0 0 0-.998.997.98.98 0 0 0 .998.998zm6.94-15.22c.52 0 .998-.434.998-.998 0-.52-.477-.954-.998-.954-.563 0-.998.433-.998.954 0 .564.435.998.998.998zm-5.29-4.21a.982.982 0 0 0 .998-.998c0-.52-.433-.997-.998-.997a1.01 1.01 0 0 0-.998.997.98.98 0 0 0 .998.998zm10.54-10.24a.982.982 0 0 0 .998-.998.982.982 0 0 0-.998-.997.98.98 0 0 0-.998.997.98.98 0 0 0 .998.998zm-21.52 46.25c.563 0 .998-.434.998-.954s-.433-.956-.998-.956a.963.963 0 0 0-.954.956c0 .52.433.954.954.954z" fill="#e60000" fill-rule="evenodd" stroke-width=".13"/> - <path d="M485.93 358.9s-.737-3.167-.608-3.904l.782-.608m-1.384 5.722s-2.82.13-3.73.434c0 0 0 .174-.304.782M467.28 345.8s-.174-3.775.608-4.08c0 0 .737-.302 1.17-.91m-4.648 3.77s-2.126-.305-2.734 0c0 0-.13.607-.608.78m-.728-22.91l-.737.434c-.78.303-2.256 3.948-2.256 3.948s-2.43-1.823-3.47-1.997h-1.086m-4.821-20.175s.608.608 1.215.304c0 0 2.994 1.953 3.167 2.734 0 0 3.168-3.167 3.775-2.864 0 0 .303.434.91-.174m-5.727-18.52s.304.433.867.737c0 0 1.39 1.996 1.39 3.47 0 0 2.56-2.255 3.296-2.08 0 0 .91.302 1.518 0m.309-19.437s.607.737 1.04.13c0 0 1.823 2.256.738 3.95 0 0 2.56-.608 3.34-.175 0 0 .304 1.04 1.216.434" fill="none" stroke-width=".26"/> - <g fill="#1f601a" fill-rule="evenodd" stroke-width=".26"> - <path d="M532.79 378.34s-3.904-.303-4.512-.303c-.608 0-1.953-2.69-2.56-3.167-.608-.434-10.848-5.424-17.486-6.465-6.64-1.04-16.834-4.99-18.96-6.03-11.022-5.295-23.344-15.1-26.078-19.136-2.864-4.21-5.9-14.016-7.246-19.265-.608-2.43-3.905-12.366-3.905-19.135 0-7.852.91-14.318 2.126-19.438 1.17-5.12 9.978-20.13 15.358-26.814 0 0-12.105 18.743-14.188 25.903-2.082 7.377-2.69 16.358-2.56 21.478.13 4.21 3.645 19.612 8.765 30.936 4.078 9.07 7.636 10.153 14.015 15.23 2.994 2.386 8.72 6.16 13.537 8.59 4.816 2.387 15.056 5.424 17.79 5.858 2.69.478 16.4 4.512 18.22 5.424 1.826.91 6.47 4.99 7.683 6.334z"/> - <path d="M464.11 343.41c.304-1.39.433-2.43.91-2.864.434-.478 1.954-2.3 2.257-3.47.304-1.216 0-2.127 0-2.735 0-.607.433-2.69.433-2.69s-.737-2.56-1.345-3.037c-.607-.434-2.126-2.56-2.43-3.166 0 0 .173 1.214-.304 1.822-.433.606-.606 2.125-.606 2.994 0 .91.303 3.037 0 4.077-.304 1.173-.737 2.128-.434 3.472.262 1.086 1.52 5.598 1.52 5.598z"/> - <path d="M463.63 341.89s-3.427-4.382-3.427-6.205c0-1.78-.303-2.864-.607-3.297-.304-.433-2.256-2.733-.477-5.553.78-1.215.91-1.128 1.344-2.43.607-1.65 1.823-1.65 1.996-3.297 0 0 .434 1.952.564 3.6.173 1.65-.13 2.257-.26 3.167-.174.912.433 1.953.433 3.297 0 1.39-.173 1.91-.173 2.734-.002.435-.566 6.162.606 7.984zm38.62 23.52s-2.907-.304-3.992-.478c-.78-.087-2.56-.52-3.558-.91-.867-.305-2.56-1.216-4.034-2.778-2.777-2.95-2.517-4.513-2.994-4.643-.998-.172 1.56-.432 2.777-.258 1.17.13 2.82.997 3.904 2.038 1.128 1.043 2.864 2.214 3.47 2.648.608.477 1.042.65 1.692 1.52.652.867.608 1.43 2.734 2.862z"/> - <path d="M506.24 367.53s-7.29-3.254-8.027-3.862c-.78-.564-1.996-1.736-2.778-2.56-.737-.825-3.818-2.387-4.338-3.384-.346-.695-2.256-3.34-3.384-5.424-.564-1.084 4.86.348 4.86.348 4.426 1.78 2.43.52 4.86 2.344 1.474 1.128 2.472 2.082 2.863 2.907.563 1.3 1.215 3.556 1.866 4.728.607 1.17 1.777 2.688 4.078 4.902z"/> - <path d="M510.19 368.45s-6.03-1.562-8.765-5.294c-1.953-2.56-1.953-1.778-2.777-2.647-.997-1.085-2.56-2.256-3.86-4.47.13.218-1.736-5.9-1.65-6.638.044-.433 2.3.304 4.122 1.085 1.562.65 2.473 1.91 3.818 2.734 1.606 1.043 1.823 3.645 2.56 4.86 1.04 1.78 1.17 2.69 1.17 3.558-.042 1.345.74 1.78 1.173 2.907.523 1.344 2.128 1.128 4.21 3.905zm-9.63-2s-5.12-2.256-5.858-2.43c-.78-.13-1.085-.608-2.126-.912-.867-.217-1.65-.867-3.775-.433-.91.216-4.64 1.04-5.553.607-.91-.478 1.345 2.56 2.386 3.167 1.085.607 2.864.91 4.383.737 1.518-.13 3.6 0 4.382 0 .737 0 1.17.174 2.256-.13 1.042-.303 1.345-.78 3.906-.607z"/> - <path d="M504.03 366.45s-5.728-1.432-6.682-1.432c-.955 0-3.688.174-4.816.39-1.085.175-4.512-.173-5.51.348-1.042.477-5.598 1.128-6.813.824-1.215-.26 2.43 3.254 3.86 3.645 4.643 1.302 3.255 1.128 6.25.347 1.822-.477 4.425-.608 5.336-.738.91-.174.737-.695 1.953-1.215 1.213-.52 3.252-1.823 6.42-2.17z"/> - <path d="M508.71 368.84s-5.727-2.387-10.197-1.173c-3.08.87-2.994.74-4.208.956-1.432.217-2.647-.52-4.99.433-1.17.478-6.16 2.518-7.55 2.43-1.258-.086 3.993 3.34 5.425 3.124 4.598-.65 8.938.91 11.064.044 1.908-.738 3.037-1.26 3.992-1.563.954-.346 1.475-1.213 2.082-1.648.607-.476.998-1.648 4.382-2.602zm-30.58-13.15s-3.297-3.643-3.949-4.12c-.605-.48-2.168-1.607-2.993-2.345-.693-.607-1.388-1.952-3.514-2.473-.91-.217-3.123-.652-3.774-1.432-.61-.825.128 2.907.823 3.904.695 1 2.17 2.04 3.6 2.56 1.433.52 3.255 1.563 3.906 1.91.693.303 1.04.65 2.125.825 1.085.216 1.562-.088 3.775 1.17z"/> - <path d="M481.25 357.21s-5.598-3.947-6.465-4.382c-.868-.39-2.473-.954-3.514-1.3-1.084-.305-3.904-2.345-5.032-2.345-1.128 0-3.254-.087-4.21-.824-.996-.783-.13 2.732.956 3.73 3.6 3.21 1.128 2.256 4.12 2.864 1.824.39 4.253 1.39 5.12 1.648.912.26 1-.303 2.3-.216 1.303.043 3.733-.217 6.726.824z"/> - <path d="M482.59 358.25s-2.3-1.52-6.855-2.3c-3.123-.565-2.994-.695-4.165-.998-1.388-.434-1.692-.434-4.252-.565-1.258-.087-6.205 1.52-7.376.825-1.085-.608 1.215 1.518 2.603 2.04 1.996.737 1.736 2.04 3.906 2.733 2.3.738 4.73 1.65 6.075 1.39 1.04-.218 1.823-.695 3.297-.826 1.43-.175 3.947-2.258 6.768-2.3zm.48-1.17s1.128-5.466.174-6.768c-.477-.608-1.085-1.475-1.215-2.865-.13-1.345-1.042-3.6-1.65-4.338-.607-.782-1.823-4.253-1.52-5.12 0 0-3.166 3.123-2.993 5.12.13 1.952.13 1.475 0 2.386-.174.91.737 3.904 1.345 4.816.607.91.304 3.643.91 4.208.61.608 4.212 3.038 4.948 2.56z"/> - <path d="M482.59 358.25c.347.173-1.91-1.736-2.994-2.214-1.04-.434-5.25-1.65-5.554-2.69-.303-1.085-3.775-4.686-3.904-5.597-.13-.695-.782-2.127-.608-2.865.13-.738.434-2.56.91-3.602.434-1.084 1.476-3.6 2.56-4.077 0 0 .868 2.864 1.172 3.905.304 1.085.607 2.3 1.084 2.865.434.608 1.952 3.47 2.083 4.555.172 1.04.91 4.512 1.083 5.25.132.738 2.952 3.82 4.167 4.47zm-18.48-14.84c.13.782-2.256-.78-3.47-.78-1.216 0-4.817.476-5.728-.435-.91-.912-2.256-2.56-2.733-2.864-.436-.303-2.085-3.037-2.56-4.51-.436-1.52-3.603-4.253-4.037-4.556 0 0 4.34-.87 7.072.91 2.69 1.823 2.864 1.39 3.47 1.65.608.304 5.25 4.25 5.555 5.727.304 1.52 2.257 4.08 2.43 4.86z"/> - <path d="M464.11 343.41s-3.905-2.734-4.816-2.603c-.91.173-5.163-2.995-5.423-4.947-.173-1.04-2.21-2.516-2.56-3.167-1.083-1.822-1.69-5.857-3.166-6.94 0 0 4.078 1.04 5.12 1.213 1.953.304 3.6.607 4.34 2.256.78 1.65 1.388 3.038 1.995 3.167.606.173 1.474 2.256 1.778 4.38.302 2.085 2.732 6.64 2.732 6.64zm-7.38-20.52c.65 1.04.607-6.032.867-6.77.303-.737 1.085-2.256 1.692-2.863.607-.608.607-2.69.91-3.297.26-.608.13-4.686-.303-5.727 0 0-1.215.91-1.823 1.648-.607.74-1.65 1.043-1.952 1.954-.304.912-.91.912-1.345 1.823-.477.912-.91 2.386-.607 3.6.304 1.216.13 1.65.13 2.735 0 1.04 1.52 5.553 2.43 6.898z"/> - <path d="M456.86 323.49s-.304-1.953.477-2.69c.737-.782 1.475-.782 1.78-1.215.302-.478.172-1.042.476-1.65.304-.607.954-1.605 1.04-2.126.305-1.65 1.216-3.472.435-5.25 0 0-1.65.563-2.082.867-.478.304-1.823 1.52-1.953 2.734-.173 1.346-.303 1.52-.78 2.258-.434.737-1.042 2.994-.304 4.382.78 1.346.91 2.69.91 2.69zm-4.38-23.03s-.304-4.382.91-5.728c1.216-1.345 1.52-3.904 4.21-5.294 0 0-.13 1.085 0 1.823.174.738.477 2.865 0 3.602-.434.78-1.953 2.126-1.953 2.734 0 .608-1.04 2.126-1.778 2.43-.783.26-1.39.434-1.39.434z"/> - <path d="M452.48 302.84s0-3.123.91-4.034c.912-.91 1.39-1.39 1.824-1.954.433-.606.91-2.125 1.952-2.733 1.04-.608 2.864-2.127 3.037-2.692 0 0 .434 3.732-.607 5.728-1.084 1.952-1.084 2.995-2.256 3.428-1.214.477-1.388.78-1.82 1.084-.48.304-1.216.74-1.824.74-.61 0-1.216.432-1.216.432zm3.47 20.52c.174.87.78-1.953-2.386-1.953-3.167 0-5.728-1.215-6.812-2.3-1.04-1.04-1.65-1.78-2.083-2.257-.478-.433-1.65-2.256-1.823-3.166-.13-.87-1.04-4.21-.91-4.816 0 0 1.692.303 2.43.91.736.608 2.125.608 2.863 1.085.737.434 1.345 1.65 1.823 2.083.433.478 1.778.478 2.386 1.346.606.91 1.647 2.864 1.82 3.774.13.91 1.216 1.822 1.954 2.256.736.48.606 2.258.736 3.038z"/> - <path d="M455.65 322.15s-2.082-2.56-3.167-2.56c-1.04 0-3.73-2.735-3.905-3.905-.13-1.215-1.04-3.47-1.65-3.948-.606-.434-1.647-1.475-1.517-3.297.174-1.823.174-4.816.174-4.816s.608 1.823 1.475 2.256c.91.434 2.56 1.042 2.863 1.65.303.607 1.52.607 1.996 2.43.432 1.78.432 1.65.736 2.256.304.608 1.04 1.346 1.345 2.56.305 1.213 1.954 4.336 1.65 7.374zm-3.12-16.62c-.086.824 1.215-1.606-1.65-2.474-2.906-.868-4.902-2.69-5.552-3.948-.652-1.215-.998-2.082-1.302-2.603-.26-.564-.867-2.517-.737-3.384.086-.867.216-4.12.52-4.642 0 0 1.432.738 1.91 1.475.52.78 1.778 1.17 2.34 1.78.522.606.74 1.865 1.043 2.43.304.52 1.518.91 1.822 1.865.304.998.695 3.08.565 3.948-.087.867.607 1.953 1.17 2.604.565.607-.087 2.212-.13 2.95z"/> - <path d="M452.57 304.32s-1.215-2.908-2.17-3.167c-.954-.304-2.516-2.777-2.603-3.905-.13-1.302-.303-3.47-.737-4.034-.433-.565-1.215-2.43-.607-4.036.65-1.605 1.65-3.73 1.65-3.73s.867 1.344 1.344 2.17c.78 1.56 1.563 1.69 1.693 2.298.087.65 1.04 1.042 1.39 2.3.476 1.692-.045 1.605.042 2.256.13.607.607 1.52.52 2.69-.044 1.17.607 4.51-.522 7.158zm2.34-18.18c.13-.433 1.04-.91 2.126-1.215 1.04-.303 2.69-2.69 3.427-3.297.694-.65 1.085-1.606 1.996-2.126.91-.52 1.474-2.387 1.778-4.21 0 0-2.56.608-3.297.738-.736.174-2.255 1.085-2.863 1.822-.607.738-1.215 1.953-1.823 2.256-.607.304-1.345 2.127-1.345 3.34v2.692z"/> - <path d="M454.78 284.79s-.173-1.78-.173-2.56c0-.91-.564-3.34.738-5.294.91-1.345 4.252-3.905 5.12-4.035 0 0 .606 2.387.476 3.124-.172.78-.953 3.775-1.648 4.078-.694.305-2.43 3.906-4.512 4.688z"/> - <path d="M454 286.14c-.39.65-.13-2.256-1.04-2.994-.912-.78-1.042-1.822-1.042-3.038 0-1.215.26-2.082.433-2.863.13-.738 2.43-3.905 2.258-4.816 0 0 1.302 2.95 1.648 3.774.478 1.04-.303 2.126-.13 2.994.13.91.868 2.56.304 3.47-.477.782-1.822 2.43-2.43 3.472zm7.98-15.53s.174-.433 1.52-.433c1.344 0 3.296-.132 3.904-.74.607-.606 1.65-1.388 2.256-1.692.607-.26 1.65-1.648 1.823-2.256.13-.608 1.215-1.78 1.65-1.78 0 0-1.65-.174-3.472.304-1.777.433-4.337 1.345-4.945 2.56-.61 1.172-2.735 4.036-2.735 4.036z"/> - <path d="M462.46 270.3c.347 1.04 2.864-1.04 3.427-1.778l1.52-1.953s1.432-1.736 1.823-2.43c.91-1.65.694-4.643.303-4.383-.477.304-2.126 1.215-2.56 1.39-.478.13-1.345.432-1.65 1.17-.303.78-.607 1.822-1.084 2.3-.434.433-3.168 1.95-1.78 5.683z"/> - <path d="M461.55 270.3s2.083-1.475 2.864-2.256c.91-.867.433-2.082.91-2.69.39-.565 1.476-1.953 1.172-2.864-.303-.91-.867-3.47-.867-3.47s-1.086 1.04-1.823 1.822c-.78.737-.91 1.345-1.215 2.256-.303.91-.91 1.518-1.215 2.256-.304.737 0 2.256.173 3.167.13.91 0 1.78 0 1.78z"/> - </g> - <g fill="none" stroke-width=".13"> - <path d="M494.83 365.23s-9.936-.13-10.848-1.345m16.578 2.565s-6.465 1.78-9.936 1.345c-3.47-.433-5.12.304-5.902.304-.737 0-4.512-1.52-4.512-1.52m26.98 2.261s-4.99.91-6.03 1.215c-1.042.303-6.162 2.256-7.68 2.256-1.216 0-4.167-.13-4.99 0-1.476.305-5.425 0-6.334-.432m6.214-14.929s3.775 2.257 4.382 2.994c.563.782 3.905 3.47 4.512 3.47m-8.894-11.154s6.465 5.598 7.506 6.335c1.085.78 7.42 6.943 8.158 7.853M493.61 349.87s5.12 4.078 5.728 5.727c.607 1.65 2.126 3.6 2.126 3.6s2.125 4.21 2.864 4.817c.737.607 2.256 2.213 4.078 3.34M464.41 346.1s5.38 4.556 6.855 5.424m-9.105-2.564s5.424 3.774 7.81 4.685c2.43.868 4.382 1.65 9.632 2.387m2.128 2.128s-6.03-.304-7.072 0c-1.04.303-5.728-.782-6.943-1.086-1.215-.26-6.03-1.17-6.638-1.345m11.453-17.919s-.303 3.297.174 4.686c.434 1.345 2.56 5.25 2.386 6.16-.13.912 1.215 4.99 2.43 5.728m1.21-15.964s-1.085 3.297-.607 4.383c.433 1.04 1.17 2.994 1.17 4.208 0 1.215.782 2.995 1.086 3.775.303.738-.175 3.297.606 4.035.737.78 1.65 2.126 1.65 2.126M446.49 330.74s4.816 1.823 5.424 2.994c.565 1.216 1.475 1.52 1.953 2.127m10.373-9.631s1.215 4.816.91 6.03c-.303 1.173-.303 3.602-.303 4.513 0 .912-1.345 4.512-1.215 5.12m-1.342-19.743s-.434 2.864-.607 4.078c-.13 1.172 0 3.167-.304 3.905-.305.737-.74 4.816 0 6.638M449.06 326.23s3.905 3.297 4.816 4.21c.91.91 4.946 5.248 5.12 6.333.13 1.042 2.994 4.34 3.905 5.12M442.42 309.35s3.905 3.905 4.21 4.816c.302.912 1.952 2.386 2.733 2.864M460.77 311s-1.475 2.257-1.475 2.994c0 .782-.607 2.735-1.215 3.47-.39.522-1.65 2.735-1.52 4.08m3.04-16.884s-.607 2.127-.91 3.6c-.305 1.52-1.085 3.04-1.346 3.95-.304.91-1.52 5.25-1.085 7.983M445.89 304.53s.434 2.083 1.475 3.167c1.085 1.042 2.734 2.56 2.864 3.427.173.91 1.518 5.423 3.037 6.943 1.52 1.52 1.65 3.038 1.65 3.038M444.37 289.18s.433 2.56.737 3.297c.304.738 1.52 4.08 2.734 5.12m9.499-7.687s-.78 2.082-.91 2.994c-.175.91-1.085 1.953-1.216 2.43-.173.433-.737 1.952-.737 1.952m5.553-5.296c-.13.91-1.823 3.645-1.953 4.08-.174.475-1.04 2.56-1.952 3.166-.91.607-3.6 2.56-3.47 3.34m-4.385-16.436s-.13 3.297.477 4.512a37.224 37.224 0 0 1 1.65 3.949c.303.868.303 2.387.432 3.428.173 1.084.607 3.037 1.214 3.774M463.81 275.9s-2.17 2.473-3.168 3.47c-.998 1-4.816 5.12-4.99 5.858m4.558-11.588s-2.126 4.642-2.603 5.38c-.435.78-.868 1.996-.868 1.996m-1.959-7.546s.13 3.645 0 4.555c-.173.868-.173 2.387 0 2.864.13.433-.477 3.73-.607 4.51m18.047-21.259s-4.816 2.864-5.554 3.6M469.36 260.365l-3.297 4.816-.738 1.39M465.63 259.93s-1.085 2.56-1.215 3.6c-.174 1.086-1.65 4.384-2.256 5.6"/> - <path d="M469.23 257.98s-.478 1.04 1.345.738" stroke-width=".26"/> - </g> - </g> - <use height="100%" width="100%" xlink:href="#a" transform="matrix(-1 0 0 1 1030.05 0)"/> - <path d="M514.57 366.14s.737-1.822 2.256-.174c0 0 1.822 4.253.433 4.382-1.346.175-2.69.434-2.82-.303-.174-.737.13-3.905.13-3.905z" fill="#00209f" fill-rule="evenodd"/> - <path d="M516.52 365.54s.477-6.465 1.345-6.77c.91-.303 3.644-1.822 5.293-.477 1.65 1.39.13 8.07-.477 8.68-.563.606-1.474 2.472-4.945 2.038l-.478-1.647s1.823-.174 3.038-.782c1.215-.607 1.605-1.17 1.52-1.778-.175-.91-.088-4.252-1-4.556-.91-.304-2.343-.737-2.343-.737s-1.345 5.03-1.648 6.463l-.304-.433z" fill="#00209f" fill-rule="evenodd"/> - <path d="M514.44 370.05s-6.205 3.6-3.038 9.025l-2.125-1.345s-1.172 2.127-.13 3.34c0 0-4.21-3.774-.912-8.287 3.34-4.556 6.03-4.252 6.03-4.252l.175 1.52z" stroke-miterlimit="2.613" fill="#00209f" fill-rule="evenodd" stroke="#000" stroke-width=".174"/> - <path d="M514.44 367.06s-2.734-1.823-6.64-.782c0 0-1.735-5.596-1.083-7.376.303-.824.91-.91.91-.91s-1.953-1.173-1.345 4.077c.607 5.293 1.648 6.768 1.648 6.768s5.12.303 6.335-.304l.175-1.474z" stroke-miterlimit="2.613" fill="#00209f" fill-rule="evenodd" stroke="#000" stroke-width=".174"/> - <path d="M514.44 367.06s-5.424-9.069-6.811-9.069c0 0-1.564-.216 1.95-.606 1.215-.13 3.167 0 4.08 1.692.91 1.65 1.647 5.553 1.95 6.16 0 0-1.04.305-1.17 1.824z" stroke-miterlimit="2.613" fill="#00209f" fill-rule="evenodd" stroke="#000" stroke-width=".174"/> - <path d="M514.44 367.06s-3.645-1.692-4.08-2.127c-.475-.434-1.214-5.553-.78-5.25 0 0-1.475-1.692-1.95-1.692-.305 0-1.347.782-1.043 2.56.303 1.824.738 4.557 1.215 5.728 0 0 2.863-1.17 6.638.782z" stroke-miterlimit="2.613" fill="#011322" fill-rule="evenodd" stroke="#000" stroke-width=".174"/> - <path d="M517.74 370.05s1.953 1.215 1.953 3.47c0 2.257.91 6.336 2.734 7.247 0 0 .433-1.693 1.04-1.997 0 0 1.824 2.127 2.388 2.127 0 0-1.042-1.953-1.042-2.864 0-.912-.91-4.382-1.823-5.25-.867-.91-2.69-3.038-5.25-3.775v1.042z" stroke-miterlimit="2.613" fill="#00209f" fill-rule="evenodd" stroke="#000" stroke-width=".174"/> - <path d="M518.48 359.51l-1.648 6.464.433 1.39s.608-.174.91-.912c.305-.78 1.217-6.335 1.694-6.51l-1.39-.432z" stroke-miterlimit="2.613" fill="#011322" fill-rule="evenodd" stroke="#000" stroke-width=".174"/> - <path d="M514.35 369.31s-2.95.912-4.078 3.21c0 0-.39-1.475 3.99-3.6l.088.39zm3.48 0s2.04.825 2.56 2.04c0 0-1.953-1.302-2.56-1.52v-.52zm-3.48-1.73s-4.6.738-5.598.52c0 0 1.39.305 5.685-.086l-.087-.434zm7.47-2.78s.52 2.3.868 2.17c.39-.173 1.172-3.86 1.215-5.596.087-1.694-.738-2.084-1.432-1.997-.65.043-1.04 1.562-.954 2.256.043.65.217 2.777.304 3.167z" fill="#011d33" fill-rule="evenodd"/> - <path d="M516.83 365.97s1.865 4.166.433 4.382c-1.388.218.608.175-.347-2.69-.39-1.085-.998-2.43-1.302-2.43 0 0 1.086.392 1.216.738z" fill="#011d33" fill-rule="evenodd"/> - <path d="M514.57 366.14s.737-1.822 2.256-.174c0 0 1.822 4.253.433 4.382-1.346.175-2.69.434-2.82-.303-.174-.737.13-3.905.13-3.905z" stroke-miterlimit="2.613" fill="none" stroke="#000" stroke-width=".174"/> - <path d="M516.52 365.54s.477-6.465 1.345-6.77c.91-.303 3.644-1.822 5.293-.477 1.65 1.39.13 8.07-.477 8.68-.563.606-1.474 2.472-4.945 2.038l-.478-1.647s1.823-.174 3.038-.782c1.215-.607 1.605-1.17 1.52-1.778-.175-.91-.088-4.252-1-4.556-.91-.304-2.343-.737-2.343-.737s-1.345 5.03-1.648 6.463l-.304-.433z" stroke-miterlimit="2.613" fill="none" stroke="#000" stroke-width=".174"/> - </g> - <g transform="translate(-184.212) scale(.85333)"> - <path d="M509.84 255.9c-.39-.954-.477-7.376-.39-8.374.13-1.736 3.123-10.24 3.73-11.238.652-.997.478-1.215.738-1.823l.867-1.17c.652 1.084 1.128 2.776 1.26 4.12 0 0-.565 4.08-1.043 5.903-.433 1.822-1.605 4.338-1.822 4.86-.564 1.258-.52 2.43-.173 2.516l-3.167 5.206z" fill="#00209f" fill-rule="evenodd"/> - <path d="M515.01 247.35l.478.52c1.345-1.432 1.43-4.425 1.43-4.425l-.867-6.03s-.562 4.078-1.04 5.9c-.433 1.822-1.606 4.34-1.823 4.86-.867 2.17-.216 2.43-.172 2.517l1.995-3.342z" fill="#fff" fill-rule="evenodd"/> - <path d="M515.48 247.87c1.345-1.432 1.43-4.425 1.43-4.425s.956 4.903.435 5.945c-.52 1.04-.52.737-.434 1.258l-1.43-2.778z" fill="#00209f" fill-rule="evenodd"/> - <path d="M516.91 250.65c-.086-.52-.086-.217.434-1.258.52-1.04-.434-5.945-.434-5.945l-.867-6.03c-.13-1.346-.607-3.04-1.26-4.123l-.866 1.17c-.26.608-.086.825-.737 1.824-.607.998-3.602 9.502-3.732 11.238-.086.998 0 7.42.39 8.374" stroke-miterlimit="2.613" fill="none" stroke="#000" stroke-width=".26"/> - <path d="M515.01 234.11s-.087-.954-.174-1.302c-.043-.173.52.868.998.737.868.26 1.823 1.432 2.083 1.736-.39.565-1.3 1.65-1.953 1.433-.563-.173-.433-.997-.608-1.518-.086-.26-.39-.607-.346-1.085z" stroke-miterlimit="2.613" fill="#fc0" fill-rule="evenodd" stroke="#000" stroke-width=".13"/> - <path d="M515.05 233.33c.043.043.303.347.347.39.216.13.434 0 .694.175.65.433.87.824 1.563 1.518" stroke-miterlimit="2.613" fill="none" stroke="#000" stroke-width=".13"/> - <path d="M515.66 233.99c.824.39 1.258 1.04 1.823 1.735 0 0 .043-.087 0-.087" stroke-miterlimit="2.613" fill="none" stroke="#000" stroke-width=".13"/> - <path d="M514.09 233.42s.867-.433 1.17-.607c.175-.087-.65.78-.345 1.17.043.912-.694 2.214-.954 2.56-.65-.172-1.3-.172-1.82-1.17-.218-.347.39-.738.78-1.085.216-.174.693-.738 1.17-.868z" stroke-miterlimit="2.613" fill="#fc0" fill-rule="evenodd" stroke="#000" stroke-width=".13"/> - <path d="M514.87 233.16c-.043.087-.26.39-.26.52-.043.217.13.39.087.694-.173.737-.477 1.084-.867 1.995" stroke-miterlimit="2.613" fill="none" stroke="#000" stroke-width=".13"/> - <path d="M514.44 233.99c-.087.91-.52 1.518-.998 2.3 0-.044.13 0 .13 0" stroke-miterlimit="2.613" fill="none" stroke="#000" stroke-width=".13"/> - <path d="M515.44 232.81c.607-.737 1.692-1.39 2.213-.954.043.043.476.303.607.563.26.303.217.433.086.78-.39.78-1.432.39-2.082.044-.13-.087-.52-.434-.737-.347-.347.13-.217.13-.347.13.13.087.26.044.347.087.607.173 1.04.52 1.778.867.52.217 1.476-.476 1.432-.953 0-.564-.91-1.562-1.345-1.562-.998 0-1.78.607-2.473 1.388.173-.13.39.13.52-.043z" stroke-miterlimit="2.613" fill="#fc0" fill-rule="evenodd" stroke="#000" stroke-width=".13"/> - <path d="M514.87 232.81c-.563-.737-1.65-1.39-2.17-.954-.043.043-.477.303-.606.563-.26.26-.26.433-.087.78.347.78 1.432.39 2.04.044.173-.087.563-.434.78-.347.347.13.217.13.347.13-.13.087-.26.044-.39.087-.564.173-1 .52-1.78.867-.52.217-1.43-.476-1.43-.953.042-.608.953-1.562 1.387-1.562 1 0 1.78.607 2.43 1.388-.13-.13-.346.13-.52-.043z" stroke-miterlimit="2.613" fill="#fc0" fill-rule="evenodd" stroke="#000" stroke-width=".13"/> - <path d="M515.09 232.38c-.26-.087-.563.173-.65.346-.087.217.086.564.346.607.347.13.824.044.91-.346.088-.347-.302-.434-.606-.607z" stroke-miterlimit="2.613" fill="#fc0" fill-rule="evenodd" stroke="#000" stroke-width=".13"/> - <path d="M515.05 226.35s.39 2.344 1.562 4.035c1.172 1.692-1.432 1.476-1.606 2.083 0 0-.78-1.692-1.605-2.126 0 0 1.303-2.04 1.65-3.949v-.043z" fill="#fc0" fill-rule="evenodd"/> - <path d="M515.05 226.35s.39 2.344 1.562 4.035c0 0-1.432 1.476-1.606 2.083 0 0-.78-1.692-1.605-2.126 0 0 1.303-2.04 1.65-3.949" stroke-miterlimit="2.613" fill="none" stroke="#000" stroke-width=".13"/> - <path d="M515.01 228.82s.303 1.04.65 1.736c0 0-.563.434-.65.694 0 0-.303-.694-.607-.868 0 0 .564-.91.607-1.562z" stroke-miterlimit="2.613" fill="none" stroke="#000" stroke-width=".13"/> - <path d="M515.01 344.54c-.087 0-.217-.175-.346-.218-.39-.26-1.128-.26-1.302-.477-1.04-1.17-.347-3.427.086-4.816.867-2.604.997-4.99 1.562-7.464h.043c.564 2.474.694 4.86 1.52 7.463.476 1.388 1.17 3.644.13 4.815-.218.217-.91.217-1.302.477-.13.043-.26.218-.39.218z" fill="#fff" fill-rule="evenodd"/> - <path d="M515.01 331.48c.565 2.473.737 4.99 1.562 7.593.434 1.302 1.085 3.384.304 4.556v-.045c.39 0 .737-.13 1.085-.26.13-.044.26-.087.304-.217.13-.217.304-.39.477-.52.262-.174.566-.044.827-.218.086-.086.13-.173.173-.173.52-.26 1.04-.565 1.26-1.128.13-.392.172-.826.085-1.26-.043-.304-.173-.52-.26-.78l-.52-1.173c-.175-.39-.435-.738-.608-1.13a2.35 2.35 0 0 0-.304-.562c-.087-.174-.217-.348-.304-.52-.088-.175-.305-.305-.435-.48-.174-.173-.217-.173-.348-.302-.043-.043-.26-.087-.216-.174-.086 0-.216-.087-.26-.13-.347-.74-.65-1.13-.997-1.867-.174-.304-.217-.867-.217-1.215h-1.606v.002zm0 0c-.52 2.473-.694 4.99-1.562 7.593-.39 1.302-1.04 3.384-.26 4.556l-.044-.045h.043c-.39 0-.737-.13-1.128-.26-.088-.044-.218-.087-.305-.217-.13-.217-.26-.39-.476-.52-.218-.174-.52-.044-.782-.218-.087-.086-.13-.173-.216-.173-.52-.26-.998-.565-1.215-1.128a2.46 2.46 0 0 1-.087-1.26c.044-.304.173-.52.26-.78l.52-1.173c.175-.39.39-.738.608-1.13.087-.215.173-.388.304-.562.087-.174.172-.348.303-.52.087-.175.304-.305.434-.48.173-.173.216-.173.345-.302.044-.043.26-.087.217-.174.087 0 .216-.087.216-.13.39-.74.695-1.13 1.042-1.867.173-.304.217-.867.217-1.215h1.563v.002z" fill="#00209f" fill-rule="evenodd"/> - <g id="b" stroke-miterlimit="2.613" fill="none" stroke-width=".174"> - <path d="M514.27 331.57s-.998 4.078-1.562 5.12c-.607 1.04-2.95 2.95-1.432 5.9" stroke="#011322"/> - <path d="M514.35 331.57s-.954 4.12-1.562 5.162c-.608 1.086-2.908 3.038-1.345 5.99" stroke="#011d33"/> - <path d="M514.48 331.57s-.998 4.165-1.606 5.25c-.563 1.04-2.864 3.08-1.258 6.03" stroke="#022743"/> - <path d="M514.57 331.57s-.954 4.252-1.562 5.293c-.607 1.042-2.864 3.123-1.26 6.16" stroke="#033054"/> - <path d="M514.7 331.57s-.998 4.295-1.606 5.38c-.607 1.042-2.82 3.166-1.17 6.204" stroke="#053a65"/> - <path d="M514.18 331.57s-.954 3.947-1.606 5.077c-.607 1.084-2.95 2.994-1.388 5.9" stroke="#011d33"/> - <path d="M514.05 331.61s-.91 3.774-1.605 5.033c-.608 1.04-2.95 2.95-1.388 5.857" stroke="#022743"/> - <path d="M513.96 331.61s-.91 3.645-1.648 4.99c-.565 1.04-2.95 2.95-1.39 5.9" stroke="#033054"/> - <path d="M513.83 331.61s-.824 3.557-1.65 4.946c-.563 1.085-2.905 2.95-1.387 5.9" stroke="#053a65"/> - <path d="M513.75 331.65s-.824 3.383-1.65 4.903c-.606 1.04-2.95 2.95-1.388 5.857" stroke="#00209f"/> - <path d="M514.79 331.57s-.954 4.382-1.562 5.423c-.607 1.042-2.777 3.254-1.172 6.335" stroke="#00209f"/> - </g> - <use height="100%" width="100%" xlink:href="#b" transform="matrix(-1 0 0 1 1030.05 0)"/> - <path d="M518.65 335.17c.13.174.347.304.434.478.087.173.217.347.304.52.13.174.217.348.304.564.173.39.433.738.607 1.13l.52 1.17c.087.26.217.478.26.78a2.46 2.46 0 0 1-.086 1.26c-.217.564-.738.868-1.258 1.13-.044 0-.087.085-.174.172-.26.174-.565.044-.825.217a1.86 1.86 0 0 0-.478.52c-.044.132-.174.175-.304.22-.347.13-.695.26-1.084.26v.043-.044c-.044.086-.13.173-.174.26-.217.217-.91.217-1.302.476-.13.044-.26.218-.39.218-.088 0-.218-.174-.347-.218-.392-.26-1.13-.26-1.303-.476-.087-.087-.13-.174-.173-.26v.043l-.044-.044h.044c-.39 0-.738-.13-1.128-.26-.087-.045-.218-.088-.304-.22-.13-.215-.26-.388-.477-.52-.217-.172-.52-.042-.78-.216-.088-.087-.13-.173-.217-.173-.52-.26-.997-.564-1.215-1.127a2.46 2.46 0 0 1-.087-1.26c.044-.303.173-.52.26-.78.175-.39.347-.782.52-1.172.175-.39.39-.737.608-1.128.087-.216.174-.39.304-.563.087-.175.173-.35.303-.522.088-.174.305-.304.435-.478" stroke-miterlimit="2.613" fill="none" stroke="#000" stroke-width=".174"/> - <g id="c"> - <g fill-rule="evenodd"> - <path d="M487.37 293.56c-1.475-3.688-3.038-11.238-2.95-12.973.302-7.115.216-9.24.867-16.53l7.332 8.374c-.174 2.82-.218 3.69 0 5.467.086.65.477 3.862.997 5.12l-6.247 10.543z" fill="#fff"/> - <path d="M493.61 283.01c-.52-1.258-.91-4.47-.998-5.12-.217-1.778-.173-2.647 0-5.466l4.512 4.99-3.514 5.596zm-18.65 6.9c-.13-1.65-.26-3.47-.26-4.295.043-5.12-.564-7.984 0-13.407.434-4.25 1.475-9.85 1.258-14.448-.087-1.302.172-2.603.217-3.862l9.112 10.153c-.65 7.29-.565 9.416-.868 16.53-.088 1.736 1.475 9.286 2.95 12.974l-1.908 3.21-10.502-6.854zm6.38 13.76c-.607-.998-1.128-3.862-1.258-4.425-.303-1.52-.303-2.388-.216-4.99l5.033 3.297-3.56 6.118zm-14.37 24.03c-.565-.346-1.52-1.345-1.823-2.213-.608-1.736-.477-1.692-.91-3.6-.26-1.085-.26-2.3-.522-3.428-.216-1.13-1.822-4.73-1.865-6.206-.173-4.728-1.736-7.94-1.345-13.103.26-3.99 1.17-9.414.737-13.58-.13-1.128.044-2.43.087-3.558l10.24 6.683c-.392 6.855-.218 8.764-.218 15.402-.044 1.605 1.388 8.113 3.123 11.02L466.97 327.7zm17.01 3.78c1.91 1.736 5.424 2.647 5.989 3.038 1.257.91 3.122 2.256 6.29 2.43 2.343.173 3.384-.434 5.77-.738 2.734-.347-.347.087 2.3-.477 1.345-.348 1.345-.565 3.167-.998 1.345-.304 2.69-.652 3.514-1.78.305-.434.565-.78.61-1.475h1.82c.174.52-.347 1.52-.52 1.866-.13.174-.347.477-.476.65-.26.565-.217.435-.695.87-.13.086-.695.563-.868.65-.347.26-.694.607-1.085.65-1.78.305-2.517.694-4.21 1.172-1.605.478-.736.39-1.95.695-.608.13-1.824.607-2.43.694-1.085.173-1.26.347-2.387.608-2.908.65-5.727.476-8.59.304-1.172-.088-4.036-.696-5.034-1.39-1.78-1.26-5.685-1.736-7.42-2.95-.26-.176-1.345-.696-1.56-.913-1.693-1.388-3.038-1.78-4.817-2.907h12.58z" fill="#00209f"/> - <path d="M497.74 331.48h13.885c-.043.695-.304 1.04-.608 1.475-.824 1.128-2.17 1.476-3.514 1.78-1.432.346-2.908-.434-4.425-.434-3.646-1.127-4.08-2.256-5.338-2.82z" fill="#00209f"/> - <path d="M497.74 331.48c1.258.65 1.866 1.736 5.337 2.82 1.345 0 2.82.608 4.08.565-1.52.347-1.563.564-2.822.867-2.646.565.434.13-2.3.478-2.385.304-3.426.91-5.77.737-3.166-.173-5.032-1.518-6.29-2.43-.565-.39-4.08-1.3-5.99-3.037h13.755z" fill="#fff"/> - </g> - <g stroke-miterlimit="2.613" fill="none" stroke-width=".174"> - <path d="M476.65 259.71s1.692 14.97 7.506 14.406" stroke="#022743"/> - <path d="M484.16 274.03c-2.907.13-4.816-3.558-5.9-7.03-1.13-3.556-1.606-7.288-1.606-7.33" stroke="#022847"/> - <path d="M484.16 273.99c-2.907-.087-4.816-3.817-5.814-7.072-1.17-3.427-1.692-7.246-1.692-7.29" stroke="#032b4c"/> - <path d="M484.2 273.95c-2.907-.26-4.86-4.078-5.814-7.115-1.128-3.34-1.692-7.16-1.736-7.246" stroke="#032d4f"/> - <path d="M484.2 273.9c-2.907-.477-4.86-4.382-5.77-7.16-1.128-3.253-1.736-7.114-1.78-7.245" stroke="#032f53"/> - <path d="M484.24 273.82c-2.95-.607-4.903-4.6-5.727-7.16-1.128-3.166-1.823-7.07-1.866-7.2" stroke="#043258"/> - <path d="M484.24 273.77c-2.907-.824-4.903-4.86-5.684-7.202-1.128-3.08-1.866-6.985-1.866-7.16" stroke="#04345b"/> - <path d="M484.29 273.73c-2.95-.998-4.946-5.12-5.684-7.29-1.085-2.906-1.91-6.897-1.91-7.07" stroke="#04365e"/> - <path d="M484.29 273.69c-2.95-1.215-4.946-5.38-5.598-7.333-1.128-2.82-1.952-6.81-1.995-7.072" stroke="#043862"/> - <path d="M484.29 273.6c-2.907-1.345-4.946-5.64-5.554-7.333-1.128-2.733-1.996-6.77-2.04-7.028" stroke="#053b67"/> - <path d="M484.33 273.55c-2.95-1.52-4.99-5.9-5.554-7.376-1.085-2.647-2.04-6.682-2.083-6.985" stroke="#053d6a"/> - <path d="M484.33 273.51c-2.95-1.736-4.99-6.16-5.467-7.42-1.128-2.56-2.126-6.638-2.17-6.94" stroke="#053f6e"/> - <path d="M484.37 273.47c-2.95-1.91-5.033-6.42-5.467-7.506-1.085-2.387-2.126-6.552-2.213-6.9" stroke="#064172"/> - <path d="M476.69 259.02c.087.39 1.17 4.555 2.256 6.855.39.824 2.473 5.424 5.424 7.506" stroke="#00209f"/> - <path d="M476.87 256.33s4.86 11.89 7.94 10.544" stroke="#022743"/> - <path d="M484.81 266.87c-1.345.563-3.34-1.823-4.946-4.6a65.147 65.147 0 0 1-2.994-5.987" stroke="#022a49"/> - <path d="M484.81 266.83c-1.17.52-3.254-1.78-4.903-4.642a85.93 85.93 0 0 1-3.037-5.944" stroke="#032d4f"/> - <path d="M484.81 266.79c-.998.433-3.167-1.736-4.86-4.686-1.866-3.34-3.037-5.9-3.037-5.9" stroke="#033054"/> - <path d="M484.81 266.79c-.824.347-3.123-1.736-4.773-4.773-1.952-3.47-3.123-5.857-3.123-5.857" stroke="#043359"/> - <path d="M484.85 266.74c-.694.304-3.08-1.692-4.773-4.816-1.995-3.645-3.123-5.857-3.123-5.857" stroke="#043760"/> - <path d="M484.85 266.74c-.52.217-2.994-1.692-4.73-4.903a749.464 749.464 0 0 0-3.166-5.815" stroke="#053a65"/> - <path d="M484.85 266.7c-.346.174-2.907-1.65-4.686-4.946-2.125-3.95-3.167-5.772-3.167-5.772" stroke="#053d6a"/> - <path d="M484.85 266.7c-.173.043-2.82-1.65-4.642-4.99-2.17-4.122-3.212-5.77-3.212-5.77" stroke="#064171"/> - <path d="M477 255.9s1.04 1.432 3.254 5.727c1.823 3.427 4.6 5.033 4.6 5.033M492.88 278.72l3.77-.7m-4.03-3.16l4.08 2.21" stroke="#00209f"/> - <path d="M492.53 275.03l4.17 2.04" stroke="#064171"/> - <path d="M492.53 275.2l4.21 1.91" stroke="#053e6c"/> - <path d="M492.53 275.42l4.21 1.74" stroke="#053b67"/> - <path d="M492.57 275.59l4.21 1.61" stroke="#043862"/> - <path d="M492.57 275.77l4.26 1.43" stroke="#04355c"/> - <path d="M492.57 275.94l4.3 1.3" stroke="#043258"/> - <path d="M492.57 276.11l4.34 1.18" stroke="#032f53"/> - <path d="M492.57 276.33l4.39 1" stroke="#032c4d"/> - <path d="M492.57 276.51l4.43.86" stroke="#022a49"/> - <path d="M492.83 278.54l3.87-.56" stroke="#064171"/> - <path d="M492.83 278.33l3.91-.44" stroke="#053e6c"/> - <path d="M492.79 278.11l3.99-.26" stroke="#053b67"/> - <path d="M492.79 277.94l4.04-.13" stroke="#043862"/> - <path d="M492.75 277.72h4.12" stroke="#04355c"/> - <path d="M492.75 277.5l4.16.18" stroke="#043258"/> - <path d="M492.75 277.33l4.21.26" stroke="#032f53"/> - <path d="M492.7 277.11l4.34.44" stroke="#032c4d"/> - <path d="M492.7 276.9l4.39.6" stroke="#022a49"/> - <path d="M492.66 276.72l4.47.7" stroke="#022743"/> - <g> - <path d="M474.96 277.81s.217 3.167.91 4.512c1 1.866 3.906 4.73 7.247 6.813" stroke="#022743"/> - <path d="M483.2 289.13c-2.17-1.39-4.12-3.123-5.466-4.642a13.738 13.738 0 0 1-1.736-2.256c-.694-1.39-.998-4.512-.998-4.512" stroke="#022847"/> - <path d="M483.29 289.13c-2.17-1.39-4.122-3.254-5.424-4.73-.737-.78-1.345-1.56-1.69-2.3-.782-1.387-1.173-4.467-1.173-4.467" stroke="#032b4c"/> - <path d="M483.33 289.13c-2.126-1.432-4.078-3.384-5.337-4.773-.694-.78-1.302-1.605-1.692-2.343-.824-1.475-1.3-4.468-1.3-4.468" stroke="#032d4f"/> - <path d="M483.42 289.09c-2.126-1.432-4.078-3.427-5.337-4.816a13.6 13.6 0 0 1-1.65-2.343c-.867-1.518-1.43-4.467-1.43-4.467" stroke="#032f53"/> - <path d="M483.5 289.09c-2.126-1.432-4.035-3.558-5.294-4.903-.607-.694-1.215-1.52-1.65-2.343-.91-1.562-1.518-4.468-1.518-4.468" stroke="#043258"/> - <path d="M483.59 289.09c-2.126-1.475-4.035-3.688-5.25-4.99a15.13 15.13 0 0 1-1.65-2.343c-.954-1.65-1.648-4.468-1.648-4.468" stroke="#04345b"/> - <path d="M483.63 289.09c-2.04-1.52-3.992-3.818-5.163-5.077a13.94 13.94 0 0 1-1.65-2.342c-.997-1.692-1.78-4.47-1.78-4.47" stroke="#04365e"/> - <path d="M483.72 289.05c-2.04-1.475-3.992-3.862-5.12-5.12-.563-.608-1.128-1.475-1.65-2.343-1.04-1.736-1.908-4.47-1.908-4.47" stroke="#043862"/> - <path d="M483.81 289.05c-2.04-1.52-3.992-3.992-5.077-5.207-.52-.564-1.128-1.432-1.65-2.343-1.083-1.822-1.994-4.47-1.994-4.47" stroke="#053b67"/> - <path d="M483.85 289.05c-1.996-1.52-3.905-4.122-4.99-5.294-.52-.564-1.084-1.432-1.65-2.343-1.083-1.865-2.124-4.468-2.124-4.468" stroke="#053d6a"/> - <path d="M483.94 289.05c-1.996-1.562-3.905-4.21-4.946-5.337-.477-.565-1.085-1.432-1.65-2.386-1.127-1.91-2.255-4.47-2.255-4.47" stroke="#053f6e"/> - <path d="M484.03 289c-1.996-1.562-3.905-4.295-4.903-5.38-.478-.52-1.04-1.432-1.606-2.387-1.214-1.996-2.428-4.468-2.428-4.468" stroke="#064172"/> - <path d="M475.09 276.68s2.82 5.337 4.166 6.855c.954 1.04 2.864 3.905 4.86 5.467" stroke="#00209f"/> - </g> - <g> - <path d="M475.17 289.91c3.08 2.04 3.862 2.56 10.24 6.638l1.952-2.994s-.737-1.78-1.04-2.604" stroke="#011d33"/> - <path d="M475.22 289.87c2.95 1.996 3.947 2.647 10.195 6.55l.087-.085c0-.043 1.735-2.907 1.735-2.907s-.087-.347-.303-.78c-.217-.564-.478-1.216-.608-1.692" stroke="#011e34"/> - <path d="M475.22 289.87c2.864 1.91 4.122 2.734 10.195 6.465l.087-.13c0-.087 1.648-2.908 1.648-2.908s-.087-.303-.26-.737a18.13 18.13 0 0 1-.564-1.604" stroke="#022037"/> - <path d="M475.22 289.87c2.777 1.822 4.295 2.777 10.195 6.335l.087-.13c0-.087 1.56-2.864 1.518-2.864 0 0-.044-.303-.216-.694-.174-.52-.39-1.128-.52-1.56" stroke="#022139"/> - <path d="M475.22 289.83c2.69 1.778 4.47 2.864 10.195 6.248l.087-.13c0-.13 1.432-2.864 1.432-2.864s0-.26-.174-.652a8.23 8.23 0 0 1-.477-1.474" stroke="#02223b"/> - <path d="M475.26 289.83c2.56 1.692 4.6 2.95 10.152 6.118.043 0 .087-.13.087-.13 0-.174 1.344-2.82 1.344-2.865-.043 0 0-.217-.174-.606a9.618 9.618 0 0 1-.39-1.39" stroke="#02233d"/> - <path d="M475.26 289.78c2.473 1.65 4.773 3.038 10.197 6.03 0 0 .043-.13.087-.13 0-.215 1.215-2.82 1.17-2.82 0 0 .045-.217-.086-.607-.173-.433-.304-.867-.347-1.3" stroke="#022540"/> - <path d="M475.26 289.78c2.386 1.606 4.946 3.08 10.197 5.9l.087-.13c0-.216 1.085-2.777 1.085-2.82 0 0 .085-.174-.088-.52a4.8 4.8 0 0 1-.304-1.26" stroke="#022541"/> - <path d="M475.26 289.78c2.3 1.52 5.12 3.167 10.197 5.814 0-.044.087-.173.087-.173 0-.26.998-2.776.954-2.82 0 0 .13-.13 0-.476-.173-.434-.217-.78-.26-1.17" stroke="#022743"/> - <path d="M475.3 289.74c2.17 1.475 5.25 3.254 10.153 5.728 0-.044.087-.13.087-.174 0-.304.867-2.777.867-2.777s.13-.13 0-.477c-.173-.39-.173-.693-.173-1.084" stroke="#022847"/> - <path d="M475.3 289.74c2.082 1.39 5.38 3.34 10.153 5.598a.33.33 0 0 0 .087-.174c0-.346.78-2.734.737-2.777 0 0 .217-.13.087-.433-.174-.39-.13-.607-.13-.998" stroke="#022a49"/> - <path d="M475.3 289.74c1.996 1.302 5.553 3.384 10.153 5.467.043-.043.087-.13.13-.173-.043-.348.65-2.734.607-2.734 0-.043.217-.13.087-.433-.13-.348-.087-.52-.087-.91" stroke="#032a4a"/> - <path d="M475.35 289.7c1.865 1.258 5.684 3.47 10.11 5.38.043-.043.087-.13.13-.172 0-.39.52-2.69.477-2.734 0 0 .26-.087.173-.346-.173-.348-.087-.478-.044-.868" stroke="#032b4c"/> - <path d="M475.35 289.7c1.778 1.17 5.857 3.558 10.11 5.25.043 0 .13-.13.13-.173 0-.434.433-2.69.39-2.734 0 0 .303-.044.173-.303-.13-.348 0-.39.043-.78" stroke="#032d4f"/> - <path d="M475.35 289.7c1.692 1.085 6.03 3.6 10.153 5.163 0-.043.087-.173.087-.217 0-.433.346-2.647.303-2.69h-.044s.346-.043.26-.304c-.13-.303 0-.303.086-.694" stroke="#032e50"/> - <path d="M475.35 289.65c1.605 1.085 6.205 3.688 10.153 5.077a.455.455 0 0 0 .087-.216c0-.476.216-2.646.173-2.69l.26-.26c-.13-.26.044-.26.173-.607" stroke="#032f53"/> - <path d="M475.39 289.65c1.475.998 6.334 3.775 10.11 4.946a.46.46 0 0 0 .087-.217c0-.52.13-2.648.086-2.69 0 0 .39.042.304-.174-.13-.304.086-.217.172-.563" stroke="#033156"/> - <path d="M475.39 289.61c1.39.954 6.508 3.862 10.11 4.86.043-.044.087-.174.13-.218 0-.563-.044-2.603-.087-2.647 0 0 .434.044.347-.172-.087-.26.13-.13.26-.477" stroke="#043258"/> - <path d="M475.39 289.61c1.302.867 6.68 3.905 10.11 4.73.043-.044.087-.174.13-.218 0-.563-.13-2.603-.173-2.647 0 0 .433.086.39-.13-.13-.217.13-.043.302-.39" stroke="#043359"/> - <path d="M475.39 289.61c1.215.78 6.811 3.992 10.11 4.6.043-.044.13-.13.13-.217 0-.608-.218-2.56-.305-2.647 0 0 .52.13.435-.087-.087-.218.217.043.39-.304" stroke="#04355c"/> - <path d="M475.43 289.57c1.085.737 6.942 4.08 10.066 4.555.043-.085.13-.172.13-.26 0-.65-.347-2.56-.39-2.603 0 0 .52.087.433-.043-.045-.218.26.086.433-.26" stroke="#04365e"/> - <path d="M475.43 289.57c.998.65 7.115 4.166 10.066 4.426.087-.087.13-.173.13-.26 0-.65-.434-2.517-.52-2.604 0 0 .563.13.52 0-.087-.172.303.13.477-.172" stroke="#043760"/> - <path d="M475.43 289.57c.91.565 7.29 4.208 10.11 4.296l.13-.26c-.044-.694-.564-2.517-.65-2.604 0 0 .606.174.52.043-.043-.172.346.217.563-.085" stroke="#043862"/> - <path d="M475.48 289.52c.782.52 7.42 4.296 10.066 4.21.043-.044.086-.175.13-.26 0-.74-.695-2.518-.738-2.56h-.043s.65.17.608.042c-.044-.13.346.303.607 0" stroke="#053a65"/> - <path d="M475.48 289.52c.695.478 7.593 4.383 10.066 4.08.043-.045.13-.175.13-.262 0-.78-.78-2.473-.868-2.56 0 0 .65.216.607.13-.044-.13.434.347.694.044" stroke="#053b67"/> - <path d="M475.48 289.52c.607.39 7.767 4.426 10.066 3.949.043-.045.13-.175.13-.26 0-.783-.868-2.474-.955-2.518v-.043s.695.26.65.173c-.042-.13.436.433.696.13" stroke="#053c68"/> - <path d="M475.48 289.48c.52.347 7.94 4.513 10.066 3.905a.47.47 0 0 0 .13-.303c0-.824-.998-2.43-1.085-2.516 0 0 .738.26.694.173-.043-.088.477.52.78.216" stroke="#053e6c"/> - <path d="M475.52 289.48c.39.26 8.07 4.6 10.023 3.775.086-.087.13-.217.173-.304-.044-.867-1.128-2.43-1.215-2.516 0 0 .738.304.738.217-.043-.042.52.608.824.305" stroke="#053f6e"/> - <path d="M475.52 289.48c.304.174 8.2 4.642 10.023 3.645.086-.087.13-.218.173-.304 0-.867-1.26-2.43-1.345-2.472 0 0 .825.303.78.26 0-.087.565.607.912.347" stroke="#053f6f"/> - <path d="M475.52 289.43c.217.13 8.375 4.73 10.023 3.558a.71.71 0 0 0 .173-.304c0-.91-1.345-2.387-1.432-2.473 0 0 .824.348.824.305-.044-.044.607.693.91.434" stroke="#064171"/> - <path d="M475.52 289.43c.13.043 8.547 4.816 10.066 3.427.043-.086.13-.173.13-.304 0-.954-1.433-2.386-1.563-2.473l.867.347s.65.78.998.52" stroke="#064374"/> - <path d="M475.57 289.39s9.72 5.467 10.153 3.038c0-.998-1.65-2.43-1.65-2.43l.912.346s.65.868 1.04.608" stroke="#00209f"/> - </g> - <g> - <path d="M474.44 315.12l-7.55 12.582c-.564-.346-1.518-1.345-1.822-2.213-.565-1.737-.478-1.737-.91-3.602-.217-1.084-.26-2.3-.478-3.427-.26-1.127-1.866-4.728-1.91-6.204" stroke="#011d33"/> - <path d="M461.77 312.26c.043 1.475 1.65 4.99 1.91 6.118.217 1.13.26 2.344.476 3.427.433 1.866.347 1.823.955 3.558.26.867 1.26 1.866 1.78 2.212.043 0 7.506-12.452 7.55-12.452" stroke="#011d33"/> - <path d="M461.77 312.26c.043 1.433 1.65 4.946 1.866 6.074.26 1.13.304 2.3.564 3.384.433 1.823.303 1.823.91 3.558.305.824 1.26 1.823 1.78 2.17.043 0 7.463-12.28 7.55-12.322" stroke="#011e34"/> - <path d="M461.77 312.26c.043 1.433 1.606 4.903 1.866 6.03.26 1.086.304 2.258.564 3.34.433 1.824.303 1.78.91 3.516.305.825 1.26 1.78 1.78 2.126.087.044 7.463-12.106 7.55-12.15" stroke="#011e34"/> - <path d="M461.77 312.26c.043 1.39 1.606 4.86 1.866 5.944.26 1.13.304 2.257.564 3.34.433 1.78.346 1.78.91 3.472.305.824 1.26 1.78 1.78 2.126.13.044 7.42-11.976 7.55-12.018" stroke="#011f36"/> - <path d="M461.77 312.26c.043 1.39 1.606 4.816 1.866 5.902.26 1.084.304 2.256.564 3.296.433 1.78.346 1.736.954 3.427.303.825 1.215 1.78 1.78 2.127.086.043 7.332-11.846 7.506-11.888" stroke="#011f36"/> - <path d="M461.77 312.26c.043 1.39 1.562 4.73 1.866 5.815.26 1.084.304 2.256.564 3.296.433 1.737.346 1.737.954 3.385.303.825 1.215 1.78 1.78 2.127.13.043 7.332-11.715 7.506-11.758" stroke="#022037"/> - <path d="M461.77 312.26c.043 1.346 1.562 4.686 1.866 5.77.26 1.086.304 2.214.564 3.255.433 1.735.39 1.735.954 3.34.303.825 1.215 1.78 1.78 2.083.172.087 7.288-11.498 7.506-11.584" stroke="#022037"/> - <path d="M461.77 312.26c.043 1.346 1.562 4.642 1.866 5.728.26 1.04.304 2.17.564 3.21.433 1.693.39 1.693.997 3.34.303.78 1.215 1.692 1.736 2.04.173.043 7.29-11.368 7.507-11.454" stroke="#022139"/> - <path d="M461.77 312.26c.043 1.303 1.562 4.6 1.866 5.64.26 1.086.304 2.17.564 3.21.433 1.694.39 1.694.997 3.297.303.782 1.215 1.693 1.736 2.04.216.044 7.246-11.238 7.507-11.323" stroke="#022139"/> - <path d="M461.77 312.26c.043 1.303 1.52 4.555 1.866 5.598.26 1.04.304 2.125.607 3.166.433 1.692.346 1.65.954 3.254.303.78 1.215 1.693 1.736 2.04.26.043 7.203-11.108 7.507-11.194" stroke="#022139"/> - <path d="M461.77 312.26c.043 1.303 1.52 4.47 1.866 5.554.26.998.304 2.126.607 3.08.433 1.693.39 1.693.954 3.254.303.78 1.215 1.69 1.736 1.995.26.087 7.203-10.934 7.507-11.02" stroke="#02223b"/> - <path d="M461.77 312.26c.043 1.26 1.52 4.426 1.866 5.467.26 1.042.304 2.127.607 3.08.433 1.693.39 1.693.998 3.21.304.78 1.172 1.65 1.693 1.997.303.086 7.16-10.76 7.507-10.89" stroke="#02223b"/> - <path d="M461.77 312.26c.043 1.26 1.52 4.383 1.866 5.424.26.998.304 2.083.607 3.038.433 1.65.39 1.65.998 3.21.304.737 1.172 1.606 1.737 1.953.303.087 7.072-10.63 7.463-10.76" stroke="#02233d"/> - <path d="M461.77 312.26c.043 1.216 1.475 4.34 1.866 5.38.26.998.304 2.04.607 2.995.433 1.65.433 1.65.998 3.167.304.737 1.216 1.605 1.737 1.953.303.085 7.072-10.5 7.463-10.63" stroke="#02233d"/> - <path d="M461.77 312.26c.043 1.216 1.475 4.295 1.866 5.294.26.997.348 2.04.607 2.994.433 1.606.433 1.606.998 3.123.347.74 1.216 1.607 1.737 1.91.346.13 7.028-10.326 7.463-10.455" stroke="#02233e"/> - <path d="M461.77 312.26c.043 1.173 1.475 4.21 1.866 5.25.26.998.348 1.997.607 2.95.433 1.607.433 1.607 1.04 3.08.304.74 1.173 1.607 1.694 1.91.39.13 7.028-10.196 7.463-10.325" stroke="#02233e"/> - <path d="M461.77 312.21c.043 1.216 1.475 4.21 1.823 5.25.304.955.39 1.997.65 2.908.433 1.562.433 1.605 1.04 3.037.304.74 1.173 1.563 1.694 1.91.39.13 6.985-10.023 7.463-10.195" stroke="#022540"/> - <path d="M461.77 312.21c.043 1.216 1.432 4.166 1.823 5.163.304.955.39 1.997.65 2.908.477 1.563.477 1.563 1.04 3.04.304.693 1.173 1.517 1.694 1.82.433.132 6.942-9.848 7.463-10.02" stroke="#022540"/> - <path d="M461.77 312.21c.043 1.173 1.432 4.122 1.823 5.12.26.954.39 1.953.694 2.864.433 1.52.433 1.562 1.04 2.994.304.695 1.13 1.52 1.65 1.823.476.13 6.942-9.718 7.463-9.89" stroke="#022540"/> - <path d="M461.77 312.21c.043 1.173 1.432 4.035 1.823 5.077.26.91.39 1.91.694 2.82.433 1.52.433 1.52 1.04 2.95.304.696 1.172 1.52 1.65 1.824.476.13 6.898-9.588 7.463-9.76" stroke="#022541"/> - <path d="M461.77 312.21c.043 1.13 1.432 3.992 1.823 4.99.26.955.39 1.91.694 2.82.433 1.476.476 1.52 1.04 2.91.304.692 1.172 1.516 1.693 1.82.477.13 6.855-9.458 7.42-9.63" stroke="#022541"/> - <path d="M461.77 312.21c.043 1.13 1.39 3.949 1.823 4.946.26.912.39 1.866.694 2.777.433 1.476.476 1.476 1.04 2.865.347.694 1.172 1.476 1.693 1.78.52.172 6.812-9.242 7.42-9.46" stroke="#022743"/> - <path d="M461.77 312.21c.043 1.13 1.39 3.905 1.823 4.903.26.868.39 1.866.694 2.734.433 1.432.476 1.475 1.084 2.863.304.652 1.13 1.433 1.65 1.736.52.174 6.768-9.112 7.42-9.327" stroke="#022743"/> - <path d="M461.77 312.21c.043 1.086 1.39 3.862 1.823 4.816.26.912.39 1.866.694 2.735.433 1.433.476 1.476 1.084 2.82.304.652 1.13 1.433 1.65 1.737.564.173 6.768-8.983 7.42-9.198" stroke="#022845"/> - <path d="M461.77 312.21c.043 1.086 1.39 3.775 1.823 4.773.26.868.39 1.822.694 2.69.433 1.39.52 1.433 1.084 2.778.348.65 1.13 1.433 1.65 1.737.607.173 6.725-8.852 7.42-9.069" stroke="#022845"/> - <path d="M461.77 312.21c.043 1.042 1.345 3.73 1.823 4.73.26.868.39 1.78.694 2.647.476 1.39.52 1.432 1.084 2.734.348.65 1.13 1.433 1.65 1.693.607.217 6.68-8.678 7.42-8.895" stroke="#022847"/> - <path d="M461.77 312.21c.043 1.042 1.345 3.688 1.823 4.642.26.87.39 1.78.737 2.648.433 1.345.478 1.39 1.085 2.69.303.652 1.128 1.39 1.605 1.693.65.217 6.68-8.548 7.42-8.808" stroke="#022847"/> - <path d="M461.77 312.21c.043 1.042 1.345 3.645 1.823 4.6.26.867.39 1.735.737 2.56.433 1.388.52 1.432 1.085 2.69.303.65 1.128 1.39 1.605 1.693.694.173 6.638-8.375 7.42-8.678" stroke="#022847"/> - <path d="M461.77 312.21c.043 1 1.345 3.6 1.823 4.556.26.825.39 1.735.737 2.517.433 1.345.52 1.432 1.085 2.69.346.608 1.128 1.345 1.65 1.65.65.173 6.593-8.245 7.375-8.548" stroke="#022a49"/> - <path d="M461.77 312.21c.043 1 1.302 3.514 1.823 4.47.26.824.39 1.734.737 2.516.433 1.345.52 1.39 1.085 2.647.346.608 1.128 1.345 1.65 1.606.692.216 6.55-8.072 7.375-8.375" stroke="#022a49"/> - <path d="M461.77 312.21c.043.955 1.302 3.47 1.823 4.426.26.824.433 1.692.737 2.473.433 1.3.52 1.388 1.128 2.603.304.608 1.085 1.345 1.606 1.605.737.218 6.507-7.94 7.376-8.243" stroke="#032a4a"/> - <path d="M461.77 312.21c.043.955 1.302 3.427 1.78 4.383.303.78.476 1.648.78 2.43.433 1.3.564 1.345 1.128 2.56.347.607 1.085 1.302 1.606 1.605.737.217 6.507-7.81 7.376-8.113" stroke="#032a4a"/> - <path d="M461.81 312.21c0 .955 1.215 3.384 1.736 4.295.304.825.477 1.65.78 2.43.434 1.26.564 1.346 1.13 2.517.346.608 1.127 1.302 1.604 1.562.78.26 6.464-7.593 7.376-7.94" stroke="#032b4c"/> - <path d="M461.81 312.21c0 .912 1.215 3.34 1.736 4.253.304.78.477 1.605.78 2.386.478 1.257.564 1.344 1.172 2.515.304.565 1.085 1.26 1.562 1.52.824.26 6.42-7.464 7.376-7.81" stroke="#032b4c"/> - <path d="M461.81 312.21c0 .912 1.215 3.254 1.736 4.166.304.78.477 1.65.78 2.386.478 1.258.564 1.302 1.172 2.474.304.564 1.085 1.26 1.562 1.518.824.26 6.42-7.333 7.376-7.68" stroke="#032c4d"/> - <path d="M461.81 312.21c0 .87 1.215 3.21 1.736 4.122.304.78.477 1.606.824 2.343.434 1.215.564 1.302 1.128 2.43.347.564 1.085 1.26 1.562 1.52.868.26 6.377-7.204 7.376-7.55" stroke="#032c4d"/> - <path d="M461.81 312.21c0 .87 1.17 3.167 1.736 4.08.304.736.477 1.56.824 2.298.434 1.216.564 1.26 1.128 2.387.347.564 1.085 1.215 1.606 1.476.867.304 6.335-7.03 7.332-7.375" stroke="#032c4d"/> - <path d="M461.81 312.21c0 .87 1.17 3.123 1.736 3.992.304.78.477 1.562.824 2.3.434 1.172.564 1.26 1.17 2.343.305.564 1.043 1.215 1.564 1.476.867.26 6.29-6.855 7.332-7.245" stroke="#032d4f"/> - <path d="M461.81 312.21c0 .825 1.17 3.08 1.736 3.949.304.736.477 1.517.824 2.254.434 1.173.607 1.215 1.17 2.344.35.52 1.043 1.172 1.564 1.432.91.26 6.248-6.725 7.332-7.115" stroke="#032d4f"/> - <path d="M461.81 312.21c0 .825 1.17 2.994 1.736 3.905.304.737.477 1.475.824 2.213.434 1.13.607 1.216 1.17 2.3.35.52 1.086 1.172 1.564 1.432.954.26 6.248-6.595 7.332-6.985" stroke="#032e50"/> - <path d="M461.81 312.21c0 .782 1.128 2.95 1.736 3.818.304.737.477 1.52.824 2.213.434 1.13.607 1.217 1.17 2.258.35.52 1.086 1.17 1.564 1.39.954.302 6.204-6.423 7.332-6.813" stroke="#032e50"/> - <path d="M461.81 312.21c0 .782 1.128 2.908 1.736 3.775.304.695.477 1.475.824 2.17.434 1.085.607 1.17 1.215 2.213.347.52 1.04 1.128 1.52 1.388.996.304 6.203-6.29 7.33-6.68" stroke="#032f53"/> - <path d="M461.81 312.21c0 .738 1.128 2.865 1.736 3.73.304.696.477 1.433.824 2.128.477 1.085.65 1.172 1.215 2.17.347.52 1.04 1.127 1.52 1.388 1.04.304 6.16-6.118 7.33-6.55" stroke="#032f53"/> - <path d="M461.81 312.21c0 .738 1.128 2.822 1.736 3.645.304.693.477 1.432.824 2.126.477 1.043.65 1.13 1.215 2.17.347.478 1.04 1.086 1.562 1.346.998.304 6.074-5.988 7.29-6.42" stroke="#033054"/> - <path d="M461.81 312.21c0 .738 1.085 2.735 1.736 3.6.304.695.477 1.39.867 2.085.434 1.04.607 1.128 1.172 2.125.347.478 1.04 1.086 1.562 1.302 1.04.347 6.074-5.814 7.29-6.247" stroke="#033054"/> - <path d="M461.81 312.21c0 .695 1.085 2.69 1.736 3.558.26.65.52 1.345.867 1.996.434 1.04.65 1.172 1.215 2.126.348.478 1.042 1.042 1.52 1.303 1.084.346 6.03-5.685 7.288-6.118" stroke="#033054"/> - <path d="M461.81 312.21c0 .695 1.085 2.648 1.692 3.47.304.652.564 1.39.91 1.997.435 1.042.652 1.128 1.216 2.084.348.477 1.04 1.042 1.52 1.302 1.084.347 5.988-5.554 7.288-5.987" stroke="#033156"/> - <path d="M461.81 312.21c0 .65 1.085 2.604 1.692 3.427.304.652.564 1.345.91 1.953.435.998.652 1.128 1.216 2.04.348.477 1.04 1.042 1.52 1.302 1.127.304 5.988-5.38 7.288-5.857" stroke="#033156"/> - <path d="M461.81 312.21c0 .65 1.04 2.56 1.692 3.384.304.608.564 1.302.91 1.91.435.997.652 1.084 1.26 2.04.347.476.997.997 1.475 1.214 1.17.348 5.945-5.206 7.29-5.683" stroke="#043258"/> - <path d="M461.81 312.21c0 .65 1.04 2.474 1.692 3.297.304.652.564 1.302.91 1.91.435.954.695 1.084 1.26 1.996.347.477.997.998 1.475 1.215 1.17.348 5.945-5.076 7.29-5.553" stroke="#043258"/> - <path d="M461.81 312.17c0 .65 1.04 2.474 1.692 3.297.304.608.564 1.26.91 1.866.478.955.695 1.085 1.26 1.953.347.478.997.955 1.475 1.215 1.215.35 5.902-4.945 7.29-5.422" stroke="#043359"/> - <path d="M461.81 312.17c0 .65 1.04 2.43 1.692 3.254.304.608.564 1.216.91 1.823.478.91.695 1.04 1.26 1.91.39.476.997.953 1.518 1.17 1.215.39 5.814-4.772 7.246-5.25" stroke="#043359"/> - <path d="M461.81 312.17c0 .608.998 2.387 1.692 3.167.304.608.564 1.26.955 1.823.433.912.694 1.04 1.258 1.866.348.478.998.954 1.476 1.17 1.215.392 5.814-4.598 7.246-5.118" stroke="#04345b"/> - <path d="M461.81 312.17c0 .608.998 2.3 1.692 3.123.304.565.564 1.215.955 1.78.433.868.694 1 1.258 1.823.348.477.998.955 1.476 1.17 1.26.392 5.772-4.467 7.246-4.988" stroke="#04345b"/> - <path d="M461.81 312.17c0 .608.998 2.257 1.692 3.08.304.565.564 1.173.955 1.736.433.868.694 1 1.258 1.823.348.433.998.91 1.476 1.127 1.302.39 5.772-4.34 7.246-4.86" stroke="#04345b"/> - <path d="M461.81 312.17c0 .565.954 2.214 1.692 2.994.304.565.564 1.173.955 1.736.433.825.694.956 1.258 1.78.39.434.998.868 1.476 1.085 1.302.433 5.728-4.165 7.246-4.685" stroke="#04355c"/> - <path d="M461.81 312.17c0 .565.954 2.17 1.692 2.95.304.564.564 1.13.955 1.692.433.825.737.956 1.302 1.736.346.435.953.87 1.43 1.085 1.346.434 5.685-4.034 7.246-4.554" stroke="#04355c"/> - <path d="M461.81 312.17c0 .52.954 2.127 1.692 2.908.304.52.564 1.085.955 1.65.433.824.737.954 1.302 1.69.346.435.953.87 1.43 1.087 1.39.433 5.685-3.906 7.246-4.426" stroke="#04365e"/> - <path d="M461.81 312.17c0 .52.954 2.04 1.692 2.822.304.52.564 1.128.955 1.65.476.78.737.91 1.302 1.647.39.433.996.867 1.43 1.084 1.39.39 5.642-3.73 7.246-4.295" stroke="#04365e"/> - <path d="M461.81 312.17c0 .52.91 1.996 1.692 2.778.304.52.564 1.085.955 1.605.476.78.78.912 1.302 1.65.39.39.996.824 1.474.998 1.39.434 5.554-3.557 7.202-4.12" stroke="#043760"/> - <path d="M461.81 312.17c0 .478.91 1.953 1.692 2.735.304.476.564 1.04.955 1.562.476.737.78.867 1.345 1.606.347.39.954.78 1.432.997 1.432.435 5.554-3.427 7.202-3.99" stroke="#043760"/> - <path d="M461.81 312.17c0 .478.91 1.91 1.65 2.648.346.52.65 1.04 1.04 1.562.435.737.74.868 1.302 1.562.347.39.954.78 1.432.998 1.432.434 5.51-3.297 7.202-3.904" stroke="#043862"/> - <path d="M461.81 312.17c0 .434.91 1.866 1.65 2.604.346.477.65.998 1.04 1.476.435.737.74.91 1.302 1.562.39.39.954.78 1.432.998 1.475.434 5.51-3.167 7.202-3.774" stroke="#043862"/> - <path d="M461.81 312.17c0 .434.867 1.78 1.65 2.518.346.52.65.997 1.04 1.475.435.737.782.867 1.345 1.52.348.39.91.78 1.39.953 1.518.478 5.466-2.95 7.2-3.6" stroke="#043862"/> - <path d="M461.81 312.17c0 .434.867 1.736 1.65 2.474.346.478.65.998 1.04 1.432.435.694.782.868 1.345 1.52.348.346.91.736 1.39.91 1.518.478 5.423-2.82 7.2-3.47" stroke="#043963"/> - <path d="M461.81 312.17c0 .39.867 1.692 1.65 2.43.346.435.65.955 1.04 1.39.435.694.782.823 1.345 1.475.39.347.955.695 1.39.91 1.56.478 5.423-2.69 7.2-3.34" stroke="#043963"/> - <path d="M461.81 312.17c0 .39.867 1.65 1.65 2.344.346.478.65.954 1.04 1.39.478.65.825.824 1.345 1.43.39.348.955.695 1.39.91 1.605.48 5.38-2.56 7.2-3.208" stroke="#053a65"/> - <path d="M461.81 312.17c0 .347.824 1.606 1.65 2.3.346.435.65.91 1.04 1.346.478.65.825.825 1.39 1.388.345.348.91.695 1.387.87 1.606.52 5.294-2.39 7.16-3.04" stroke="#053a65"/> - <path d="M461.81 312.17c0 .347.824 1.52 1.65 2.257.346.434.65.867 1.04 1.302.478.607.825.78 1.39 1.344.39.347.91.695 1.387.868 1.606.477 5.294-2.213 7.16-2.907" stroke="#053b67"/> - <path d="M461.81 312.17c0 .347.824 1.476 1.65 2.17.346.434.65.868 1.084 1.302.434.608.78.782 1.345 1.345.39.304.91.65 1.387.825 1.65.477 5.25-2.083 7.16-2.777" stroke="#053b67"/> - <path d="M461.81 312.17c0 .304.824 1.433 1.65 2.127.346.39.65.867 1.084 1.258.434.565.825.738 1.345 1.302.39.304.91.608 1.387.78 1.693.523 5.25-1.908 7.16-2.602" stroke="#053c68"/> - <path d="M461.81 312.17c0 .304.78 1.39 1.65 2.083.346.39.65.825 1.084 1.215.434.565.825.738 1.388 1.26.347.302.91.606 1.345.78 1.693.52 5.207-1.78 7.16-2.473" stroke="#053c68"/> - <path d="M461.81 312.17c0 .26.78 1.346 1.65 1.996.303.39.65.826 1.084 1.215.434.522.825.696 1.388 1.217.39.303.91.607 1.345.78 1.736.522 5.164-1.648 7.16-2.342" stroke="#053c68"/> - <path d="M461.81 312.17c0 .26.78 1.26 1.65 1.953.303.39.65.782 1.084 1.172.434.52.868.694 1.388 1.172.39.303.91.607 1.345.78 1.78.522 5.164-1.475 7.16-2.212" stroke="#053d6a"/> - <path d="M461.81 312.17c0 .217.78 1.216 1.65 1.91.303.347.65.738 1.084 1.128.477.477.868.694 1.388 1.13.39.303.91.606 1.345.736 1.78.564 5.12-1.302 7.16-2.04" stroke="#053d6a"/> - <path d="M461.81 312.17c0 .217.737 1.173 1.65 1.823.303.39.65.738 1.084 1.13.477.475.868.65 1.432 1.127.39.26.867.52 1.345.694 1.78.564 5.077-1.172 7.116-1.91" stroke="#053e6c"/> - <path d="M461.81 312.17c0 .217.737 1.13 1.606 1.78.347.347.737.694 1.128 1.085.477.433.868.65 1.432 1.085.39.26.867.52 1.345.693 1.824.565 5.034-1.04 7.116-1.778" stroke="#053e6c"/> - <path d="M461.81 312.17c0 .174.737 1.086 1.606 1.736.347.304.737.695 1.128 1.042.477.433.91.607 1.432 1.04.39.262.867.52 1.345.696 1.824.564 4.99-.912 7.116-1.65" stroke="#053f6e"/> - <path d="M461.81 312.17c0 .174.737 1 1.606 1.65a14.2 14.2 0 0 0 1.17 1.04c.435.39.87.608 1.433 1 .345.26.867.52 1.3.65 1.867.564 4.99-.694 7.116-1.475" stroke="#053f6e"/> - <path d="M461.81 312.17c0 .13.694.955 1.606 1.606.347.304.737.65 1.17.955.435.434.87.65 1.433 1 .39.26.867.476 1.3.65 1.91.564 4.947-.564 7.116-1.345" stroke="#053f6f"/> - <path d="M461.81 312.17c0 .13.694.912 1.606 1.562.347.304.737.608 1.17.912.435.39.87.607 1.433.998.39.217.867.434 1.3.608 1.91.563 4.904-.434 7.116-1.215" stroke="#053f6f"/> - <path d="M461.81 312.17c0 .13.694.868 1.606 1.476.347.303.737.607 1.17.91.435.392.912.608 1.433.956.39.217.867.434 1.3.608 1.954.564 4.904-.304 7.116-1.085" stroke="#053f6f"/> - <path d="M461.81 312.17c0 .087.65.782 1.606 1.433.347.26.737.563 1.17.867.48.39.912.565 1.477.91.39.218.824.436 1.258.566 1.996.607 4.86-.13 7.116-.91" stroke="#064171"/> - <path d="M461.81 312.17c0 .087.65.738 1.606 1.39.347.26.737.563 1.17.824.48.347.912.564 1.477.867.39.218.824.435 1.3.566 1.953.608 4.817 0 7.073-.78" stroke="#064171"/> - <path d="M461.81 312.17c0 .043.65.695 1.606 1.303.347.26.737.563 1.17.824.48.347.955.564 1.477.825.39.216.867.39 1.3.563 1.997.608 4.774.174 7.073-.65" stroke="#064172"/> - <path d="M461.81 312.13c0 .087.65.695 1.606 1.303.347.26.737.52 1.17.78.48.304.955.52 1.477.825l1.3.52c2.04.608 4.73.304 7.073-.52" stroke="#064172"/> - <path d="M461.81 312.13c0 .087.607.65 1.606 1.26.347.216.737.476 1.17.736.48.304.955.522 1.52.782.39.174.824.346 1.258.477 2.04.65 4.73.477 7.072-.347" stroke="#064374"/> - <path d="M461.81 312.13c0 .043.607.565 1.606 1.173.347.26.737.476 1.215.737.435.26.91.477 1.476.738.39.174.824.347 1.258.477 2.083.65 4.686.607 7.072-.217" stroke="#064374"/> - <path d="M461.81 312.13c0 .043.607.52 1.606 1.13.347.216.737.433 1.215.693.435.26.955.477 1.476.695.39.173.824.347 1.258.477 2.126.607 4.643.737 7.072-.087m-12.627-2.908s6.465 5.077 12.626 2.908" stroke="#00209f"/> - </g> - <g> - <path d="M461.55 292.17s1.258 8.113 1.736 9.285c.433 1.042 2.994 5.684 6.898 6.77" stroke="#022743"/> - <path d="M461.55 292.17s1.345 8.027 1.866 9.2c.434 1.04 2.82 5.465 6.812 6.81" stroke="#022a49"/> - <path d="M461.59 292.13s1.39 7.984 1.91 9.2c.434 1.04 2.69 5.205 6.724 6.854" stroke="#032b4c"/> - <path d="M461.59 292.13s1.475 7.94 1.996 9.112c.477 1.04 2.517 4.99 6.638 6.898" stroke="#032e50"/> - <path d="M461.64 292.13s1.52 7.853 2.04 9.025c.52 1.085 2.386 4.772 6.594 6.942" stroke="#033054"/> - <path d="M461.64 292.13s1.606 7.81 2.17 8.982c.477 1.084 2.213 4.468 6.464 6.985" stroke="#043359"/> - <path d="M461.64 292.08s1.692 7.767 2.257 8.938c.52 1.085 2.04 4.253 6.377 7.03" stroke="#04355c"/> - <path d="M461.68 292.08s1.735 7.723 2.3 8.895c.52 1.084 1.908 3.992 6.29 7.072" stroke="#043760"/> - <path d="M461.68 292.08s1.822 7.636 2.386 8.808c.564 1.085 1.78 3.775 6.248 7.115" stroke="#053a65"/> - <path d="M461.72 292.04s1.865 7.636 2.473 8.765c.564 1.128 1.562 3.515 6.118 7.202" stroke="#053c68"/> - <path d="M461.72 292.04s1.996 7.55 2.56 8.72c.563 1.086 1.432 3.255 6.03 7.203" stroke="#053f6e"/> - <path d="M461.77 292.04s2.04 7.506 2.603 8.634c.607 1.128 1.302 3.038 5.988 7.246" stroke="#064172"/> - <path d="M461.77 291.99s2.127 7.463 2.69 8.59c.607 1.13 1.172 2.82 5.9 7.333" stroke="#00209f"/> - </g> - <g> - <path d="M462.07 287.18s1.04 11.455 9.198 14.622" stroke="#022743"/> - <path d="M462.07 287.18c.043.043.477 3.688 2.126 7.246 1.3 2.733 3.47 5.857 7.072 7.332" stroke="#022a49"/> - <path d="M462.11 287.18c0 .043.52 3.775 2.17 7.202 1.214 2.517 3.383 5.772 6.984 7.376" stroke="#032b4c"/> - <path d="M462.11 287.18c.043.087.65 3.905 2.256 7.115 1.17 2.343 3.297 5.728 6.898 7.42" stroke="#032e50"/> - <path d="M462.16 287.18c0 .087.737 3.992 2.343 7.072 1.04 2.17 3.167 5.64 6.77 7.42" stroke="#033054"/> - <path d="M462.16 287.18c.043.13.867 4.08 2.43 6.985.954 1.997 3.123 5.598 6.682 7.507" stroke="#043359"/> - <path d="M462.2 287.18c0 .13.954 4.166 2.473 6.942.91 1.78 3.038 5.51 6.595 7.506" stroke="#04355c"/> - <path d="M462.2 287.14c.043.217 1.085 4.34 2.56 6.943.824 1.56 2.95 5.423 6.508 7.505" stroke="#043760"/> - <path d="M462.2 287.14c.087.217 1.215 4.425 2.647 6.856.78 1.432 2.864 5.38 6.42 7.55" stroke="#053a65"/> - <path d="M462.25 287.14c.043.26 1.302 4.512 2.69 6.813.694 1.214 2.777 5.293 6.335 7.592" stroke="#053c68"/> - <path d="M462.25 287.14c.086.26 1.432 4.6 2.82 6.726.607 1.04 2.647 5.25 6.205 7.635" stroke="#053f6e"/> - <path d="M462.29 287.14c.043.304 1.52 4.73 2.864 6.682.52.824 2.56 5.164 6.118 7.636" stroke="#064172"/> - <path d="M462.29 287.14c.086.304 1.65 4.816 2.95 6.595.477.65 2.474 5.12 6.032 7.723" stroke="#00209f"/> - </g> - <g> - <path d="M462.16 284.01s2.386 9.2 9.025 11.455" stroke="#022743"/> - <path d="M462.16 284.01s.91 3.254 3.08 6.422c1.432 2.125 3.514 4.208 5.944 5.033" stroke="#022847"/> - <path d="M462.16 283.97s.954 3.21 3.123 6.377c1.52 2.17 3.645 4.34 5.9 5.12" stroke="#032a4a"/> - <path d="M462.16 283.93s.998 3.167 3.21 6.334c1.563 2.212 3.732 4.468 5.814 5.163" stroke="#032c4d"/> - <path d="M462.2 283.88s.998 3.123 3.254 6.334c1.605 2.212 3.86 4.555 5.728 5.207" stroke="#032f53"/> - <path d="M462.2 283.88s1.04 3.038 3.34 6.248c1.65 2.256 3.95 4.686 5.685 5.25" stroke="#033156"/> - <path d="M462.2 283.84s1.085 3.038 3.384 6.205c1.736 2.342 4.122 4.816 5.64 5.337" stroke="#043359"/> - <path d="M462.2 283.79s1.128 2.994 3.47 6.16c1.78 2.387 4.21 4.947 5.555 5.425" stroke="#04355c"/> - <path d="M462.25 283.79s1.085 2.907 3.514 6.118c1.823 2.386 4.34 5.033 5.468 5.424" stroke="#043760"/> - <path d="M462.25 283.75s1.128 2.864 3.6 6.074c1.866 2.43 4.426 5.207 5.382 5.51" stroke="#043963"/> - <path d="M462.25 283.71s1.17 2.82 3.645 6.03c1.908 2.474 4.6 5.338 5.337 5.598" stroke="#053b67"/> - <path d="M462.25 283.66s1.215 2.777 3.73 6.03c1.954 2.518 4.687 5.425 5.252 5.6" stroke="#053e6c"/> - <path d="M462.29 283.66s1.215 2.69 3.775 5.944c1.995 2.56 4.816 5.554 5.163 5.685" stroke="#053f6f"/> - <path d="M462.29 283.62s1.258 2.647 3.862 5.9c2.04 2.604 4.903 5.685 5.12 5.772" stroke="#064172"/> - <path d="M462.29 283.58s1.302 2.603 3.905 5.857c2.126 2.647 5.077 5.815 5.077 5.815" stroke="#00209f"/> - </g> - <g> - <path d="M479.9 296.55l4.56.83m-4.08 2.64l4.08-1.73" stroke="#00209f"/> - <path d="M479.86 296.68l4.56.7" stroke="#064171"/> - <path d="M479.86 296.85l4.6.57" stroke="#053e6c"/> - <path d="M479.9 297.03l4.6.39" stroke="#053b67"/> - <path d="M479.9 297.2l4.65.26" stroke="#043862"/> - <path d="M479.9 297.38l4.69.08" stroke="#04355c"/> - <path d="M479.95 297.55l4.68-.04" stroke="#043258"/> - <path d="M479.95 297.68l4.73-.17" stroke="#032f53"/> - <path d="M479.95 297.85l4.77-.3" stroke="#032c4d"/> - <path d="M479.99 298.03l4.77-.48" stroke="#022a49"/> - <path d="M480.34 299.81l4.16-1.61" stroke="#064171"/> - <path d="M480.29 299.63l4.26-1.52" stroke="#053e6c"/> - <path d="M480.29 299.46l4.3-1.39" stroke="#053b67"/> - <path d="M480.25 299.28l4.38-1.3" stroke="#043862"/> - <path d="M480.21 299.11l4.47-1.17" stroke="#04355c"/> - <path d="M480.21 298.94l4.51-1.09" stroke="#043258"/> - <path d="M480.16 298.72l4.6-.91" stroke="#032f53"/> - <path d="M480.12 298.55l4.69-.83" stroke="#032c4d"/> - <path d="M480.12 298.37l4.73-.69" stroke="#022a49"/> - <path d="M480.08 298.2l4.81-.61" stroke="#022743"/> - </g> - <g> - <path d="M484.24 331.57s-2.43.13-2.647.217c-.26.044-9.892-.174-9.892-.174" stroke="#032b4c"/> - <path d="M484.29 331.61s-2.386.217-2.734.304c-.39.042-9.762-.26-9.762-.26" stroke="#032e50"/> - <path d="M484.29 331.65s-2.3.303-2.777.39c-.52.088-9.632-.347-9.632-.347" stroke="#033054"/> - <path d="M484.33 331.7s-2.256.346-2.864.478c-.65.13-9.545-.435-9.545-.435" stroke="#043359"/> - <path d="M484.33 331.7s-2.17.478-2.95.607c-.738.174-9.372-.52-9.372-.52" stroke="#04355c"/> - <path d="M484.33 331.74s-2.083.52-2.994.694c-.868.217-9.24-.607-9.24-.607" stroke="#043760"/> - <path d="M484.37 331.78s-2.04.607-3.08.824c-.998.174-9.112-.737-9.112-.737" stroke="#053a65"/> - <path d="M484.37 331.83s-1.996.694-3.123.91c-1.128.218-9.026-.78-9.026-.78" stroke="#053c68"/> - <path d="M484.42 331.87s-1.952.737-3.21.998c-1.26.26-8.895-.87-8.895-.87" stroke="#053f6e"/> - <path d="M484.42 331.91s-1.866.824-3.254 1.085c-1.388.304-8.764-.956-8.764-.956" stroke="#064172"/> - <path d="M472.48 332.09s7.115 1.345 8.634 1.04c1.52-.303 3.34-1.17 3.34-1.17" stroke="#00209f"/> - </g> - <g> - <path d="M486.06 337.07s4.555.695 4.73.65c.085 0 2.646-.172 2.733-.172.043 0 2.212-.52 2.212-.52" stroke="#022a49"/> - <path d="M485.8 336.99s4.686.738 5.033.65c.173-.042 2.517-.172 2.647-.172.13 0 2.082-.478 2.082-.478" stroke="#032d4f"/> - <path d="M485.54 336.86s4.816.825 5.294.695c.26-.044 2.386-.174 2.603-.174.174 0 1.91-.433 1.91-.433" stroke="#033054"/> - <path d="M485.28 336.73s4.903.87 5.597.738a56.906 56.906 0 0 1 2.516-.173l1.736-.348" stroke="#043359"/> - <path d="M485.02 336.64s5.033.91 5.857.737c.434-.087 2.17-.174 2.473-.217.304 0 1.563-.26 1.563-.26" stroke="#043760"/> - <path d="M484.76 336.51s5.163.998 6.16.78c.522-.086 1.998-.173 2.387-.217.348 0 1.39-.217 1.39-.217" stroke="#053a65"/> - <path d="M484.5 336.38s5.25 1.085 6.42.867c.65-.13 1.91-.217 2.343-.26a24.422 24.422 0 0 0 1.215-.174" stroke="#053d6a"/> - <path d="M484.24 336.29s5.38 1.128 6.725.867c.694-.173 1.736-.26 2.256-.26.478-.043 1.085-.087 1.085-.087" stroke="#064171"/> - <path d="M486.325 337.206l4.426.61 2.82-.134 2.387-.61" stroke="#022743"/> - <path d="M483.98 336.16s5.51 1.215 7.03.91c1.474-.303 3.08-.303 3.08-.303" stroke="#00209f"/> - </g> - <g> - <path d="M505.76 336.81l4.295-1.56c2.69-1 2.994-3.69 2.994-3.69" stroke="#00209f"/> - <path d="M505.46 335.95s1.736-.694 3.167-1.215c3.818-1.432 3.384-3.254 3.384-3.254" stroke="#00209f"/> - <path d="M505.2 336.12s2.256-.867 3.427-1.302c.608-.217 1.39-.564 1.78-.825.52-.304 1.17-.91 1.345-1.215.347-.52.347-1.258.347-1.258" stroke="#053e6c"/> - <path d="M504.94 336.34s2.82-1.085 3.688-1.39c.434-.172 1.475-.607 1.736-.78.39-.26 1.302-.998 1.432-1.215.26-.434.433-1.432.433-1.432" stroke="#043862"/> - <path d="M504.68 336.51s3.384-1.258 3.949-1.476c.302-.086 1.517-.607 1.69-.694.262-.174 1.433-1.128 1.52-1.258.174-.26.477-1.563.477-1.563" stroke="#043258"/> - <path d="M504.42 336.73s3.905-1.474 4.208-1.562c.13-.087 1.606-.607 1.693-.694.13-.043 1.52-1.17 1.563-1.258.087-.13.564-1.65.564-1.65" stroke="#032c4d"/> - <path d="M505.46 336.86s3.47-1.302 4.642-1.736c.824-.303 1.693-1.04 2.083-1.56.564-.826.78-1.998.78-1.998" stroke="#053e6c"/> - <path d="M505.11 336.86s4.166-1.52 5.033-1.866c.608-.216 1.693-1.085 1.953-1.475.433-.61.737-1.954.737-1.954" stroke="#043862"/> - <path d="M504.81 336.9s4.816-1.823 5.38-1.996c.435-.173 1.693-1.172 1.867-1.432.304-.434.693-1.91.693-1.91" stroke="#043258"/> - <path d="M504.5 336.9s5.424-2.04 5.728-2.126c.216-.087 1.648-1.215 1.778-1.345.13-.218.65-1.867.65-1.867" stroke="#032c4d"/> - <path d="M504.157 336.896l6.12-2.254 1.647-1.25.608-1.83" stroke="#022743" stroke-width=".18"/> - </g> - <g> - <path d="M511.27 331.57s-2.517.13-2.777.217c-.26.044-10.283-.174-10.283-.174" stroke="#032b4c"/> - <path d="M511.32 331.61s-2.473.217-2.864.304c-.39.042-10.153-.26-10.153-.26" stroke="#032e50"/> - <path d="M511.32 331.65s-2.386.303-2.907.39c-.52.088-10.023-.347-10.023-.347" stroke="#033054"/> - <path d="M511.32 331.7s-2.3.346-2.95.478c-.652.13-9.893-.435-9.893-.435" stroke="#043359"/> - <path d="M511.36 331.7s-2.257.478-3.038.607c-.78.174-9.762-.52-9.762-.52" stroke="#04355c"/> - <path d="M511.36 331.74s-2.17.52-3.08.694c-.91.217-9.675-.607-9.675-.607" stroke="#043760"/> - <path d="M511.4 331.78s-2.126.607-3.167.824c-1.085.174-9.545-.737-9.545-.737" stroke="#053a65"/> - <path d="M511.4 331.83s-2.04.694-3.254.91c-1.17.218-9.37-.78-9.37-.78" stroke="#053c68"/> - <path d="M511.45 331.87s-2.04.737-3.34.998c-1.302.26-9.242-.87-9.242-.87" stroke="#053f6e"/> - <path d="M511.45 331.91s-1.953.824-3.384 1.085c-1.432.304-9.112-.956-9.112-.956" stroke="#064172"/> - <path d="M498.99 332.09s7.463 1.345 9.025 1.04c1.562-.303 3.47-1.17 3.47-1.17" stroke="#00209f"/> - </g> - </g> - <path d="M474.96 289.91a34.007 34.007 0 0 1-.174-3.21c.044-5.164-.65-9.07-.087-14.49.434-4.253 1.475-9.85 1.258-14.45-.087-1.3.172-2.603.217-3.86l20.957 23.516M466.97 327.7c-.565-.346-1.52-1.345-1.823-2.213-.608-1.736-.477-1.692-.91-3.6-.26-1.085-.26-2.3-.522-3.428-.216-1.13-1.822-4.73-1.865-6.206-.173-4.728-1.736-7.94-1.345-13.103.26-3.99 1.17-9.414.737-13.58-.13-1.128.044-2.43.087-3.558l23.56 15.576m28.551 33.892c.174.52-.347 1.52-.52 1.866-.13.174-.347.477-.477.65-.26.565-.217.435-.694.87-.13.086-.695.563-.87.65-.345.26-.693.607-1.084.65-1.78.305-2.516.694-4.21 1.172-1.604.478-.736.39-1.95.695-.608.13-1.823.607-2.43.694-1.085.173-1.26.347-2.387.608-2.908.65-5.728.476-8.59.304-1.173-.088-4.037-.696-5.035-1.39-1.78-1.26-5.684-1.736-7.42-2.95-.258-.176-1.344-.696-1.56-.913-1.693-1.388-3.038-1.78-4.816-2.907" stroke-miterlimit="2.613" fill="none" stroke="#000" stroke-width=".174"/> - <g stroke-miterlimit="2.613" stroke="#000" stroke-width=".13"> - <path fill="#fc0" fill-rule="evenodd" d="M484.893 297.593l.565-.826-23.908-15.62-.433.65zM461.16 280.89c-.174-.91.087-2.127.737-2.257.044 0 .52-.173.824-.086.392 0 .478.13.652.433.346.824-.65 1.346-1.346 1.606-.173.044-.65.13-.737.346-.13.348-.044.218-.13.348.13-.044.173-.174.302-.26.52-.304 1.04-.39 1.78-.738.564-.26.65-1.388.26-1.735-.433-.347-1.78-.304-2.082.044-.65.738-.694 1.737-.564 2.734 0-.217.347-.173.304-.434z"/> - <path d="M460.77 281.32c-.91-.043-2.083.347-2.126.998 0 .087-.087.608 0 .867.044.39.173.478.52.565.868.26 1.26-.78 1.39-1.52.042-.173.042-.65.26-.78.346-.173.26-.087.346-.173-.044.13-.174.217-.217.304-.216.564-.26 1.13-.52 1.91-.174.563-1.302.78-1.65.433-.434-.347-.563-1.692-.26-2.04.65-.737 1.65-.91 2.647-.91-.173.043-.13.39-.39.347z" fill="#fc0" fill-rule="evenodd"/> - <path d="M460.6 280.93c-.26.13-.26.478-.13.695.087.216.476.26.65.172.346-.216.565-.606.346-.954-.215-.304-.562-.043-.866.087z" fill="#fc0" fill-rule="evenodd"/> - <path d="M455.56 277.76s2.517.998 4.555 1.04c0 0 .087 1.78.52 2.3 0 0-1.82-.346-2.646.087 0 0-1.085-2.473-2.43-3.427z" fill="#fc0" fill-rule="evenodd"/> - <path d="M457.6 279.02s.998.434 1.822.434c0 0 .043.694.217.91 0 0-.738-.13-1.042.045 0-.002-.435-1-.998-1.39z" fill="none"/> - <path d="M460.77 282.88s.477-.824.607-1.128c.086-.173-.043.998.39 1.128.563.737.693 2.256.693 2.647-.65.216-1.214.607-2.212.13-.346-.217-.087-.867.043-1.39.09-.26.176-.997.48-1.387z" fill="#fc0" fill-rule="evenodd"/> - <path d="M461.25 282.23c0 .13.087.65.043.563 0-.216.26.218.303.304.348.65.478 1.128.608 2.387m-.744-2.164c.217.998.39.954.39 2.344l.088-.087m-.518-1.347c.173.694.13 1.04.173 1.39-.044 0-.26.17-.303.17" fill="none"/> - <path fill="#fc0" fill-rule="evenodd" d="M497.13 277.417l.65-.607-21.347-23.734-.434.52z"/> - <path d="M476.61 253.08c.043-.954.565-2.083 1.215-2.04.043 0 .564-.043.824.087.39.087.433.26.52.608.173.867-.912 1.128-1.65 1.215-.173 0-.693-.044-.823.173-.217.304-.087.216-.217.304.13 0 .26-.13.347-.173.607-.173 1.128-.173 1.952-.303.564-.086.91-1.214.607-1.605-.304-.434-1.606-.737-1.996-.477-.823.564-1.084 1.52-1.17 2.56.044-.22.347-.132.39-.348z" fill="#fc0" fill-rule="evenodd"/> - <path d="M476.13 253.38c-.91-.26-2.126-.13-2.343.478 0 .043-.216.563-.173.824-.043.39.044.52.39.693.737.435 1.39-.476 1.693-1.17.087-.175.217-.608.433-.695.347-.086.26 0 .347-.086-.043.13-.172.173-.26.26-.347.52-.52.998-.953 1.735-.304.477-1.432.477-1.736.042-.303-.476-.087-1.778.26-2.04.78-.607 1.822-.563 2.776-.26-.174-.042-.217.306-.434.218z" fill="#fc0" fill-rule="evenodd"/> - <path d="M476.04 252.95c-.304.043-.347.433-.304.65.043.217.39.39.607.304.347-.13.694-.433.563-.824-.13-.347-.563-.173-.866-.13z" fill="#fc0" fill-rule="evenodd"/> - <path d="M471.92 248.69s2.17 1.562 4.122 2.083c0 0-.304 1.78 0 2.343 0 0-1.736-.737-2.603-.52 0 0-.435-2.648-1.52-3.906z" fill="#fc0" fill-rule="evenodd"/> - <path d="M473.57 250.43s.867.607 1.65.824c0 0-.13.694 0 .91 0 0-.695-.26-1.042-.173 0 .002-.174-1.083-.608-1.56z" fill="none"/> - <path d="M475.74 254.9s.65-.694.867-.954c.13-.174-.302.954.087 1.215.39.825.13 2.3.044 2.734-.694.044-1.302.26-2.126-.434-.304-.26.086-.824.346-1.302.13-.26.39-.954.782-1.258z" fill="#fc0" fill-rule="evenodd"/> - <path d="M476.35 254.42c0 .087-.043.433-.043.52.043.26.26.347.303.65.13.74-.044 1.216-.087 2.17m-.263-2.47c.216.91.043 1.65-.087 2.517-.043 0 .087 0 .087-.044m-.13-.953c-.13.346-.13.563-.173.954-.043-.043-.217.13-.26.087" fill="none"/> - </g> - </g> - <use height="100%" width="100%" xlink:href="#c" transform="matrix(-1 0 0 1 1030.05 0)"/> - </g> - <path d="M255.26 211.07l-42.913 71.79h85.857z" stroke-miterlimit="2.613" fill="#fc0" stroke="#000" stroke-width=".371"/> - <path d="M255.26 215.736l-38.728 64.796h77.49z" stroke-miterlimit="2.613" fill="#fff" stroke="#fff" stroke-width=".111"/> - <path d="M228.008 261.276l-11.476 19.256h77.49l-11.514-19.256z" stroke-miterlimit="2.613" fill="#007e93" stroke="#007e93" stroke-width=".222"/> - <g stroke-miterlimit="2.613" fill="none" stroke-width=".148"> - <path d="M248.52 227.063c1.815-1.63 4.036-2.296 6.628-2.333h.185c2.518.037 5.073.63 6.7 2.333" stroke="#086aad"/> - <path d="M248.478 227.14c1.776-1.667 4.072-2.296 6.664-2.333h.185c2.592 0 5.147.63 6.775 2.37" stroke="#0863aa"/> - <path d="M248.443 227.25c1.777-1.74 4.11-2.37 6.74-2.407h.184c2.592.038 5.184.667 6.813 2.444" stroke="#095fa8"/> - <path d="M248.367 227.327c1.777-1.74 4.183-2.407 6.812-2.407h.222c2.628 0 5.22.666 6.85 2.518" stroke="#0a58a5"/> - <path d="M248.332 227.395c1.74-1.777 4.22-2.406 6.887-2.444h.185c2.702.038 5.293.705 6.923 2.594" stroke="#0a52a2"/> - <path d="M248.264 227.472c1.74-1.814 4.258-2.444 6.96-2.444h.223c2.74.037 5.33.703 6.997 2.628" stroke="#0b4d9f"/> - <path d="M248.222 227.583c1.74-1.85 4.294-2.518 7.034-2.518h.185c2.815.037 5.37.74 7.073 2.703" stroke="#0c479d"/> - <path d="M247.744 228.36c2.036-2.148 4.554-2.777 7.553-2.777h.184c3.297.037 6.11 1.148 7.74 3.444" stroke="#270a7f"/> - <path d="M247.778 228.25c2-2.075 4.517-2.704 7.516-2.74h.184c3.22.036 6 1.11 7.666 3.37" stroke="#241183"/> - <path d="M247.855 228.172c1.962-2.073 4.443-2.703 7.405-2.703h.185c3.184.037 5.96 1.036 7.627 3.295" stroke="#221786"/> - <path d="M247.89 228.104c1.924-2.037 4.442-2.666 7.33-2.703h.185c3.147.038 5.886 1 7.59 3.222" stroke="#1f1f8a"/> - <path d="M247.966 227.993c1.85-1.962 4.37-2.63 7.256-2.63h.148c3.11 0 5.85.89 7.554 3.11" stroke="#1a258d"/> - <path d="M248 227.916c1.814-1.963 4.37-2.592 7.182-2.628h.185c3.036.037 5.776.85 7.442 3.036" stroke="#172d91"/> - <path d="M248.034 227.84c1.777-1.927 4.332-2.593 7.108-2.593h.186c2.998 0 5.7.777 7.404 2.925" stroke="#143393"/> - <path d="M248.11 227.728c1.74-1.89 4.295-2.518 7.035-2.555h.148c2.962 0 5.664.74 7.368 2.888" stroke="#113b97"/> - <path d="M250.995 222.847c1.26-.888 2.592-1.148 4.258-1.148 1.592 0 3 .26 4.22 1.073" stroke="#ff0a00"/> - <path d="M250.96 222.915c1.26-.888 2.63-1.147 4.296-1.147 1.592 0 3.035.258 4.257 1.073" stroke="#f10"/> - <path d="M250.927 222.992c1.296-.888 2.665-1.185 4.332-1.185 1.59 0 3.072.296 4.33 1.11" stroke="#ff1500"/> - <path d="M250.892 223.103c1.296-.925 2.666-1.222 4.37-1.222 1.628 0 3.11.297 4.37 1.112" stroke="#ff1a00"/> - <path d="M250.85 223.18c1.296-.926 2.702-1.22 4.406-1.22 1.63 0 3.147.294 4.406 1.11" stroke="#ff2000"/> - <path d="M250.816 223.248c1.296-.925 2.74-1.26 4.443-1.26 1.627 0 3.183.335 4.442 1.186" stroke="#ff2700"/> - <path d="M250.773 223.325c1.296-.926 2.74-1.26 4.48-1.26 1.63 0 3.22.334 4.48 1.186" stroke="#ff2f00"/> - <path d="M250.74 223.402c1.295-.963 2.775-1.26 4.516-1.26 1.666 0 3.258.334 4.554 1.186" stroke="#f30"/> - <path d="M250.705 223.47c1.296-.962 2.813-1.296 4.554-1.296 1.665 0 3.294.37 4.59 1.222" stroke="#ff3c00"/> - <path d="M250.662 223.547c1.333-.963 2.85-1.296 4.59-1.296 1.667 0 3.334.37 4.63 1.223" stroke="#ff4100"/> - <path d="M250.628 223.624c1.333-.963 2.85-1.296 4.628-1.296 1.703 0 3.37.37 4.666 1.222" stroke="#ff4600"/> - <path d="M249.63 225.288c1.443-1.11 3.74-1.667 5.664-1.667 2.036 0 4.258.556 5.7 1.705" stroke="#fff500"/> - <path d="M249.706 225.177c1.407-1.11 3.665-1.63 5.59-1.63 2 0 4.184.518 5.628 1.704" stroke="#ffeb00"/> - <path d="M249.74 225.1c1.445-1.11 3.628-1.63 5.553-1.63 1.963 0 4.147.518 5.59 1.667" stroke="#ffe000"/> - <path d="M249.817 224.99c1.407-1.075 3.555-1.593 5.48-1.593 1.962 0 4.11.518 5.516 1.63" stroke="#ffd600"/> - <path d="M249.85 224.92c1.41-1.073 3.52-1.59 5.444-1.59 1.925 0 4.037.517 5.48 1.59" stroke="#ffcf00"/> - <path d="M249.928 224.81c1.407-1.074 3.48-1.556 5.37-1.556 1.924 0 3.998.482 5.404 1.593" stroke="#ffc400"/> - <path d="M249.962 224.733c1.408-1.074 3.444-1.555 5.332-1.555s3.925.48 5.33 1.555" stroke="#ffba00"/> - <path d="M250.04 224.622c1.37-1.037 3.368-1.517 5.257-1.517 1.888 0 3.888.48 5.293 1.517" stroke="#ffb000"/> - <path d="M250.073 224.545c1.407-1.073 3.333-1.518 5.22-1.518 1.852 0 3.852.48 5.22 1.518" stroke="#ffa600"/> - <path d="M250.15 224.434c1.37-1.036 3.258-1.48 5.146-1.48 1.814 0 3.777.444 5.147 1.48" stroke="#ff9c00"/> - <path d="M250.184 224.366c1.37-1.037 3.258-1.48 5.11-1.48 1.813 0 3.74.443 5.11 1.443" stroke="#ff9100"/> - <path d="M250.26 224.247c1.37-1 3.185-1.445 5.037-1.445 1.777 0 3.703.444 5.036 1.408" stroke="#ff8700"/> - <path d="M250.295 224.178c1.37-1.036 3.147-1.444 4.998-1.444 1.777 0 3.63.444 5 1.407" stroke="#ff7d00"/> - <path d="M250.372 224.067c1.332-1 3.073-1.406 4.924-1.406 1.74 0 3.592.445 4.925 1.37" stroke="#ff7500"/> - <path d="M250.406 223.99c1.37-1 3.036-1.406 4.887-1.406 1.74 0 3.518.407 4.85 1.333" stroke="#ff6b00"/> - <path d="M250.483 223.88c1.332-1 3-1.37 4.813-1.37 1.702 0 3.48.406 4.813 1.333" stroke="#ff6100"/> - <path d="M250.517 223.803c1.37-1 2.962-1.37 4.777-1.37 1.665 0 3.443.406 4.74 1.296" stroke="#ff5700"/> - <path d="M249.442 225.475c1.517-1.185 3.85-1.74 5.85-1.74 2.073 0 4.33.593 5.812 1.777" stroke="#ebf605"/> - <path d="M249.408 225.586c1.59-1.26 3.85-1.777 5.886-1.777 2.074 0 4.406.59 5.887 1.813" stroke="#d6ec09"/> - <path d="M249.33 225.697c1.667-1.333 3.85-1.85 5.962-1.85 2.11 0 4.443.628 5.923 1.85" stroke="#c2e30e"/> - <path d="M249.263 225.808c1.776-1.407 3.887-1.888 6.034-1.888 2.11 0 4.48.63 5.96 1.888" stroke="#add912"/> - <path d="M249.22 225.92c1.814-1.444 3.888-1.926 6.035-1.926 2.184 0 4.554.63 6.07 1.888" stroke="#99cf16"/> - <path d="M249.152 226.03c1.925-1.518 3.888-2 6.11-2 2.22 0 4.627.666 6.107 1.963" stroke="#85c61a"/> - <path d="M249.11 226.14c1.96-1.59 3.887-2.035 6.145-2.035 2.22 0 4.665.666 6.183 1.963" stroke="#70bc1f"/> - <path d="M249.032 226.252c2.074-1.666 3.925-2.11 6.22-2.11 2.26 0 4.703.703 6.22 2.036" stroke="#5cb323"/> - <path d="M248.964 226.32c2.147-1.703 3.924-2.11 6.294-2.11 2.26 0 4.74.703 6.294 2.036" stroke="#47a928"/> - <path d="M248.63 226.918c1.89-1.666 4.074-2.26 6.666-2.26 2.444 0 5 .63 6.627 2.222" stroke="#0d74a4"/> - <path d="M248.665 226.875c1.925-1.703 4.036-2.296 6.628-2.296 2.444 0 4.962.665 6.59 2.22" stroke="#127a97"/> - <path d="M248.708 226.807c1.962-1.703 4.035-2.26 6.59-2.26 2.407 0 4.962.667 6.554 2.186" stroke="#17808b"/> - <path d="M248.742 226.73c2-1.703 3.998-2.222 6.554-2.222 2.37 0 4.924.666 6.48 2.148" stroke="#1a847d"/> - <path d="M248.776 226.696c2.036-1.74 4-2.26 6.48-2.26 2.406 0 4.925.704 6.478 2.15" stroke="#1e8a6d"/> - <path d="M248.82 226.62c2.072-1.74 3.96-2.223 6.44-2.223 2.37 0 4.89.703 6.444 2.148" stroke="#238f5e"/> - <path d="M248.853 226.585c2.11-1.777 3.96-2.222 6.405-2.222 2.333 0 4.85.703 6.406 2.11" stroke="#2b944e"/> - <path d="M248.887 226.508c2.148-1.778 3.924-2.185 6.368-2.185 2.296 0 4.85.704 6.37 2.074" stroke="#2f9b3e"/> - <path d="M259.443 222.694c-1.222-.815-2.628-1.074-4.184-1.074-1.668 0-2.963.296-4.222 1.148" stroke="red"/> - <path d="M263.325 229.18c-1.702-2.408-4.59-3.556-7.997-3.556-3.072 0-5.553.666-7.664 2.814" stroke="#2a007c"/> - <path d="M261.96 226.918c-1.63-1.592-4.183-2.222-6.664-2.222-2.628 0-4.85.63-6.7 2.296" stroke="#0671b0"/> - <path d="M262.592 227.916c-1.74-2.11-4.406-2.777-7.33-2.777-2.74 0-5.37.628-7.11 2.517" stroke="#0c419a"/> - <path d="M261.073 225.433c-1.482-1.185-3.74-1.74-5.776-1.74-1.962 0-4.332.554-5.775 1.665" stroke="#ff0"/> - <path d="M259.955 223.624c-1.296-.852-3-1.26-4.703-1.26-1.777 0-3.332.37-4.665 1.37" stroke="#ff4d00"/> - <path d="M261.585 226.32c-1.52-1.333-4.036-2.073-6.332-2.073-2.406 0-4.146.407-6.33 2.184" stroke="#33a02c"/> - </g> - <g stroke-miterlimit="2.613" fill="none" stroke-width=".148"> - <path d="M247.41 228.803c2.408-1.185 4.926-1.925 7.85-1.925 2.776 0 5.738 1.037 8.07 2.296l8.22 13.736c0 8.997-7.33 16.44-16.29 16.44-8.997 0-16.254-7.258-16.328-16.366l8.48-14.18z" stroke="#fef2ec"/> - <path d="M255.26 227.063c2.74 0 5.666 1.073 7.96 2.295.038 0 8.11 13.514 8.11 13.55 0 8.85-7.22 16.217-16.07 16.217-8.884 0-16.03-7.146-16.104-16.142 0-.037 8.33-13.96 8.368-13.96 2.37-1.183 4.85-1.96 7.737-1.96z" stroke="#fef2ea"/> - <path d="M255.22 227.506c2.7 0 5.552 1 7.774 2.222.074.037 7.886 13.07 7.886 13.18 0 8.627-7.035 15.81-15.66 15.81-8.59 0-15.588-6.998-15.626-15.735 0-.112 8.034-13.55 8.11-13.588 2.33-1.148 4.737-1.888 7.515-1.888z" stroke="#fef0e6"/> - <path d="M255.22 227.95c2.628 0 5.404.963 7.552 2.148.148.074 7.7 12.662 7.7 12.847 0 8.368-6.85 15.33-15.253 15.33-8.368 0-15.144-6.777-15.218-15.293 0-.185 7.775-13.107 7.923-13.217 2.26-1.112 4.59-1.815 7.294-1.815z" stroke="#feede3"/> - <path d="M255.22 228.582c2.517 0 5.182.925 7.256 2.073.222.148 7.33 11.996 7.33 12.293 0 7.997-6.553 14.662-14.587 14.662-7.998 0-14.515-6.48-14.55-14.625 0-.296 7.292-12.514 7.552-12.625 2.147-1.074 4.442-1.777 6.997-1.777z" stroke="#fee8dc"/> - <path d="M255.22 229.025c2.443 0 5.035.89 7.033 2 .297.184 7.11 11.55 7.11 11.92 0 7.777-6.37 14.255-14.144 14.255-7.777 0-14.07-6.33-14.107-14.217 0-.37 6.997-12.07 7.33-12.255 2.073-1.036 4.295-1.703 6.776-1.703z" stroke="#fee6d5"/> - <path d="M255.22 229.657c2.332 0 4.813.888 6.7 1.925.407.222 6.776 10.884 6.776 11.366 0 7.442-6.035 13.588-13.477 13.588-7.406 0-13.44-5.998-13.478-13.514 0-.52 6.59-11.478 6.998-11.737 2-1 4.11-1.63 6.48-1.63z" stroke="#fee3cf"/> - <path d="M255.22 230.1c2.295 0 4.627.815 6.514 1.85.445.26 6.555 10.442 6.555 10.998 0 7.183-5.89 13.143-13.07 13.143-7.183 0-12.996-5.812-13.033-13.067 0-.593 6.294-11.072 6.74-11.33 1.96-1 3.997-1.593 6.292-1.593z" stroke="#fee0cc"/> - <path d="M255.22 230.544c2.22 0 4.48.777 6.293 1.777.482.297 6.33 10.035 6.33 10.664 0 6.924-5.664 12.7-12.624 12.7-6.924 0-12.552-5.628-12.59-12.663 0-.666 6-10.662 6.517-10.958 1.85-.926 3.85-1.518 6.072-1.518z" stroke="#fedec6"/> - <path d="M255.22 233.36c1.74 0 3.48.593 4.887 1.37.888.518 4.887 7.183 4.887 8.294 0 5.367-4.37 9.81-9.775 9.81-5.37 0-9.74-4.368-9.776-9.81 0-1.11 4.11-7.96 5.036-8.48 1.443-.74 3-1.184 4.738-1.184z" stroke="#fdcdaa"/> - <path d="M255.22 233.548c1.702 0 3.405.592 4.775 1.37.926.555 4.776 6.96 4.776 8.108 0 5.258-4.293 9.59-9.55 9.59-5.258 0-9.553-4.258-9.553-9.552 0-1.185 3.96-7.776 4.924-8.33 1.408-.74 2.926-1.186 4.63-1.186z" stroke="#fdcdaa"/> - <path d="M255.22 234.615c1.517 0 3.035.517 4.257 1.222 1.074.63 4.22 5.85 4.22 7.182 0 4.664-3.813 8.514-8.478 8.514-4.667 0-8.443-3.776-8.48-8.48 0-1.37 3.258-6.737 4.37-7.367 1.22-.665 2.59-1.072 4.11-1.072z" stroke="#fdc59e"/> - <path d="M255.22 234.836c1.48 0 2.96.48 4.145 1.185 1.112.667 4.11 5.628 4.11 7 0 4.554-3.702 8.293-8.256 8.293a8.24 8.24 0 0 1-8.257-8.256c0-1.408 3.11-6.517 4.257-7.183 1.185-.63 2.518-1.038 4-1.038z" stroke="#fdc59e"/> - <path d="M255.26 227.284c2.704 0 5.592 1.037 7.85 2.26.038.036 7.997 13.29 7.997 13.365 0 8.737-7.145 16.03-15.845 16.03-8.738 0-15.847-7.11-15.884-15.957 0-.074 8.182-13.736 8.22-13.774 2.37-1.186 4.813-1.926 7.663-1.926z" stroke="#fef0e9"/> - <path d="M255.22 227.728c2.665 0 5.478 1 7.663 2.185.11.074 7.812 12.884 7.812 13.033 0 8.477-6.96 15.55-15.477 15.55-8.48 0-15.365-6.886-15.44-15.513 0-.148 7.923-13.328 8.035-13.402 2.296-1.148 4.665-1.85 7.405-1.85z" stroke="#feede3"/> - <path d="M255.22 228.172c2.59 0 5.33.962 7.44 2.11.186.11 7.59 12.44 7.59 12.663 0 8.256-6.775 15.106-15.03 15.106-8.258 0-14.923-6.7-14.997-15.068 0-.222 7.59-12.922 7.776-13.033 2.256-1.11 4.552-1.777 7.218-1.777z" stroke="#feebdf"/> - <path d="M255.22 228.36c2.554 0 5.256.962 7.367 2.11.185.11 7.442 12.218 7.442 12.477 0 8.146-6.666 14.884-14.81 14.884-8.11 0-14.7-6.59-14.774-14.846 0-.26 7.442-12.7 7.665-12.848 2.185-1.073 4.48-1.777 7.11-1.777z" stroke="#feebdd"/> - <path d="M255.22 228.803c2.48 0 5.11.926 7.144 2.037.26.148 7.22 11.774 7.22 12.107 0 7.886-6.442 14.44-14.365 14.44-7.887 0-14.292-6.37-14.33-14.404 0-.333 7.146-12.293 7.443-12.44 2.11-1.074 4.368-1.74 6.886-1.74z" stroke="#fee8d9"/> - <path d="M255.22 229.247c2.406 0 4.96.89 6.922 1.962.334.185 6.998 11.33 6.998 11.736 0 7.664-6.257 14.032-13.92 14.032-7.628 0-13.848-6.22-13.922-13.96 0-.443 6.887-11.92 7.22-12.106 2.073-1.036 4.257-1.665 6.7-1.665z" stroke="#fee6d3"/> - <path d="M255.22 229.47c2.37 0 4.887.85 6.81 1.924.37.222 6.888 11.107 6.888 11.552 0 7.553-6.146 13.81-13.7 13.81-7.516 0-13.625-6.11-13.7-13.736 0-.482 6.74-11.7 7.11-11.922 2.036-1 4.183-1.63 6.59-1.63z" stroke="#fee3d2"/> - <path d="M255.22 229.88c2.332 0 4.7.85 6.59 1.887.443.26 6.7 10.663 6.7 11.182 0 7.33-5.997 13.364-13.29 13.364-7.295 0-13.218-5.923-13.256-13.29 0-.557 6.442-11.293 6.887-11.516 1.962-1 4.036-1.63 6.368-1.63z" stroke="#fee0cc"/> - <path d="M255.22 230.322c2.257 0 4.553.815 6.404 1.814.444.297 6.443 10.256 6.443 10.85 0 7.033-5.777 12.883-12.848 12.883-7.036 0-12.775-5.702-12.812-12.85 0-.63 6.146-10.885 6.627-11.143 1.888-.962 3.925-1.555 6.183-1.555z" stroke="#fedec8"/> - <path d="M255.22 230.766c2.183 0 4.405.777 6.182 1.74.52.333 6.22 9.81 6.22 10.478 0 6.812-5.59 12.477-12.403 12.477-6.814 0-12.33-5.553-12.367-12.44 0-.702 5.85-10.44 6.405-10.773 1.813-.924 3.777-1.48 5.96-1.48z" stroke="#fddbc5"/> - <path d="M255.22 230.954c2.146 0 4.33.777 6.07 1.74.556.333 6.11 9.59 6.11 10.293 0 6.7-5.48 12.255-12.18 12.255-6.703 0-12.146-5.443-12.18-12.218 0-.74 5.737-10.256 6.33-10.59 1.776-.888 3.702-1.48 5.85-1.48z" stroke="#fddbc2"/> - <path d="M255.22 231.176c2.11 0 4.257.74 5.96 1.703.592.37 5.998 9.366 5.998 10.108 0 6.59-5.37 12.033-11.96 12.033-6.59 0-11.92-5.33-11.958-11.995 0-.777 5.59-10.034 6.183-10.403 1.777-.89 3.665-1.446 5.775-1.446z" stroke="#fdd9bf"/> - <path d="M255.22 231.397c2.072 0 4.183.74 5.848 1.667.63.37 5.888 9.145 5.888 9.923 0 6.48-5.258 11.81-11.737 11.81-6.443 0-11.7-5.22-11.738-11.774 0-.814 5.443-9.81 6.072-10.182 1.74-.888 3.592-1.443 5.665-1.443z" stroke="#fdd9bf"/> - <path d="M255.22 231.62c2.035 0 4.11.703 5.737 1.628.667.408 5.776 8.923 5.776 9.737 0 6.332-5.183 11.59-11.514 11.59-6.333 0-11.48-5.147-11.516-11.552 0-.85 5.294-9.626 5.96-9.997 1.703-.888 3.518-1.406 5.554-1.406z" stroke="#fdd6bc"/> - <path d="M255.22 231.84c1.998 0 4.035.704 5.626 1.594.704.406 5.665 8.7 5.665 9.552 0 6.22-5.07 11.366-11.29 11.366-6.22 0-11.257-5.035-11.293-11.33 0-.888 5.11-9.404 5.85-9.81 1.665-.852 3.443-1.37 5.442-1.37z" stroke="#fdd6b9"/> - <path d="M255.22 232.063c1.96 0 3.96.666 5.552 1.556.704.442 5.554 8.477 5.554 9.366 0 6.108-4.998 11.18-11.107 11.18-6.11 0-11.034-4.96-11.07-11.143 0-.925 4.96-9.22 5.7-9.626 1.666-.852 3.406-1.333 5.368-1.333z" stroke="#fdd4b8"/> - <path d="M255.22 232.25c1.924 0 3.887.704 5.44 1.555.742.445 5.443 8.257 5.443 9.183 0 5.998-4.887 10.96-10.884 10.96-6 0-10.848-4.852-10.848-10.923 0-.963 4.812-8.998 5.59-9.44 1.628-.816 3.332-1.335 5.257-1.335z" stroke="#fdd4b6"/> - <path d="M255.22 232.473c1.887 0 3.813.666 5.33 1.517.778.445 5.33 8.034 5.33 8.998 0 5.886-4.812 10.736-10.66 10.736-5.85 0-10.628-4.775-10.664-10.7 0-.96 4.702-8.774 5.516-9.256 1.555-.776 3.26-1.295 5.147-1.295z" stroke="#fdd2b2"/> - <path d="M255.22 232.695c1.85 0 3.74.63 5.22 1.48.814.482 5.22 7.813 5.22 8.85 0 5.738-4.703 10.478-10.44 10.478-5.74 0-10.405-4.665-10.44-10.478 0-1 4.553-8.59 5.404-9.034 1.518-.814 3.184-1.295 5.035-1.295z" stroke="#fdd1b0"/> - <path d="M255.22 232.916c1.813 0 3.628.63 5.11 1.445.85.482 5.108 7.59 5.108 8.665 0 5.627-4.59 10.255-10.22 10.255-5.627 0-10.18-4.554-10.218-10.255 0-1.037 4.406-8.368 5.295-8.85 1.48-.778 3.11-1.258 4.924-1.258z" stroke="#fdd0b0"/> - <path d="M255.22 233.138c1.776 0 3.554.592 4.998 1.407.888.518 4.998 7.405 4.998 8.478 0 5.48-4.48 10.034-9.997 10.034-5.518 0-9.96-4.443-9.997-10.034 0-1.073 4.258-8.145 5.147-8.664 1.48-.778 3.073-1.222 4.85-1.222z" stroke="#fdd0ad"/> - <path d="M255.22 233.77c1.665 0 3.33.556 4.7 1.333.927.555 4.63 6.738 4.63 7.923 0 5.146-4.184 9.404-9.33 9.404-5.148 0-9.332-4.184-9.332-9.367 0-1.222 3.814-7.59 4.813-8.145 1.37-.704 2.852-1.148 4.518-1.148z" stroke="#fdcaa6"/> - <path d="M255.22 233.992c1.628 0 3.257.555 4.59 1.296.963.593 4.517 6.516 4.517 7.738 0 5.035-4.072 9.182-9.108 9.182-5.036 0-9.11-4.073-9.146-9.145 0-1.26 3.703-7.368 4.702-7.96 1.37-.705 2.813-1.112 4.443-1.112z" stroke="#fdcaa4"/> - <path d="M255.22 234.213c1.59 0 3.183.518 4.48 1.26 1 .59 4.442 6.294 4.442 7.553 0 4.924-3.998 8.96-8.923 8.96s-8.887-4-8.924-8.925c0-1.295 3.554-7.144 4.592-7.737 1.332-.702 2.738-1.11 4.33-1.11z" stroke="#fdc8a4"/> - <path d="M255.22 234.435c1.554 0 3.11.518 4.368 1.22 1.037.63 4.332 6.073 4.332 7.37 0 4.813-3.924 8.737-8.702 8.737-4.775 0-8.663-3.887-8.7-8.7 0-1.334 3.406-6.96 4.48-7.554 1.295-.665 2.665-1.073 4.22-1.073z" stroke="#fdc8a1"/> - <path d="M255.22 235.058c1.443 0 2.886.48 4.035 1.148 1.148.666 3.998 5.405 3.998 6.813 0 4.442-3.59 8.07-8.034 8.07a8.026 8.026 0 0 1-8.035-8.034c0-1.444 2.962-6.33 4.11-6.997 1.183-.632 2.48-1.002 3.924-1.002z" stroke="#fdc39b"/> - <path d="M255.22 235.28c1.406 0 2.812.445 3.924 1.11 1.185.704 3.887 5.184 3.887 6.666 0 4.295-3.516 7.85-7.81 7.85-4.333 0-7.813-3.518-7.813-7.85 0-1.48 2.814-6.11 4-6.812 1.146-.593 2.405-.964 3.812-.964z" stroke="#fdc398"/> - <path d="M255.22 235.502c1.37 0 2.738.444 3.85 1.074 1.185.703 3.74 4.96 3.74 6.478 0 4.184-3.407 7.628-7.59 7.628-4.185 0-7.59-3.406-7.59-7.628 0-1.517 2.627-5.923 3.887-6.627a7.74 7.74 0 0 1 3.702-.925z" stroke="#fdc097"/> - <path d="M255.22 235.732c1.332 0 2.665.407 3.74 1.037 1.22.74 3.627 4.776 3.627 6.293 0 4.073-3.295 7.405-7.368 7.405-4.074 0-7.37-3.295-7.406-7.405 0-1.554 2.518-5.7 3.813-6.405a7.304 7.304 0 0 1 3.592-.926z" stroke="#fdc095"/> - <path d="M255.22 235.912c1.295 0 2.554.443 3.628 1.036 1.26.74 3.516 4.555 3.516 6.11 0 3.96-3.183 7.183-7.145 7.183-3.963 0-7.147-3.22-7.184-7.183 0-1.59 2.37-5.48 3.665-6.22 1.075-.555 2.223-.925 3.52-.925z" stroke="#fdbe92"/> - <path d="M255.22 236.133c1.258 0 2.48.407 3.516 1 1.26.777 3.406 4.332 3.406 5.924 0 3.813-3.11 6.96-6.923 6.96a6.954 6.954 0 0 1-6.962-6.96c0-1.63 2.222-5.295 3.554-6.035 1.037-.556 2.148-.89 3.407-.89z" stroke="#fdbe90"/> - <path d="M255.22 236.355c1.22 0 2.406.37 3.405.963 1.296.777 3.332 4.11 3.332 5.738 0 3.703-3.035 6.74-6.738 6.74-3.703 0-6.74-3-6.74-6.74 0-1.665 2.073-5.072 3.444-5.85 1-.517 2.073-.85 3.295-.85z" stroke="#fdbb8f"/> - <path d="M255.22 236.577c1.184 0 2.332.37 3.294.926 1.333.814 3.22 3.887 3.22 5.553a6.525 6.525 0 0 1-6.515 6.516 6.503 6.503 0 0 1-6.518-6.516c0-1.703 1.925-4.85 3.333-5.664.925-.518 2-.815 3.184-.815z" stroke="#fdbb8d"/> - <path d="M255.22 236.8a6.23 6.23 0 0 1 3.183.888c1.37.814 3.11 3.665 3.11 5.367 0 3.48-2.814 6.332-6.294 6.332-3.482 0-6.295-2.85-6.295-6.332 0-1.74 1.777-4.664 3.22-5.48a6.405 6.405 0 0 1 3.074-.776z" stroke="#fdb98a"/> - <path d="M255.22 237.02c1.11 0 2.183.334 3.072.852 1.407.852 3 3.444 3 5.184 0 3.37-2.74 6.11-6.073 6.11-3.37 0-6.073-2.74-6.073-6.11 0-1.777 1.63-4.443 3.073-5.258.888-.52 1.888-.777 3-.777z" stroke="#fdb98a"/> - <path d="M255.22 237.21c1.073 0 2.11.332 2.998.85 1.407.85 2.85 3.22 2.85 4.998 0 3.258-2.628 5.888-5.85 5.888-3.257 0-5.85-2.63-5.886-5.888 0-1.814 1.52-4.258 3-5.072a5.804 5.804 0 0 1 2.887-.777z" stroke="#fcb687"/> - <path d="M255.22 237.43a5.57 5.57 0 0 1 2.886.815c1.445.888 2.74 3 2.74 4.813 0 3.147-2.518 5.665-5.627 5.665a5.665 5.665 0 0 1-5.665-5.665c0-1.85 1.37-4.036 2.887-4.887a5.37 5.37 0 0 1 2.777-.74z" stroke="#fcb685"/> - <path d="M255.22 237.652c.998 0 1.96.296 2.775.778 1.482.888 2.63 2.776 2.63 4.627 0 3-2.408 5.443-5.406 5.443-3 0-5.443-2.444-5.443-5.406 0-1.925 1.22-3.85 2.776-4.738a5.3 5.3 0 0 1 2.666-.704z" stroke="#fcb485"/> - <path d="M255.22 248.276c2.85 0 5.182-2.332 5.182-5.183 0-2.888-2.333-5.22-5.183-5.22a5.215 5.215 0 0 0-5.222 5.22c0 2.85 2.333 5.183 5.22 5.183z" stroke="#fcb482"/> - </g> - <path d="M255.26 248.32c2.852 0 5.185-2.334 5.185-5.22 0-2.852-2.334-5.185-5.184-5.185-2.886 0-5.22 2.333-5.22 5.184a5.215 5.215 0 0 0 5.22 5.22z" stroke-miterlimit="2.613" fill="#fff" fill-rule="evenodd" stroke="#fff" stroke-width=".111"/> - <g stroke="#000" stroke-width=".13"> - <path d="M256.37 237.985l.59-2.773m-1.144 2.705l.29-2.816m-.846 2.773v-2.816m-.52 2.859l-.298-2.816m-.256 2.884l-.597-2.773m.077 2.928l-.888-2.706m.367 2.884l-1.143-2.586m.665 2.808l-1.442-2.44m.955 2.74l-1.663-2.263m1.263 2.628l-1.93-2.107m1.52 2.482l-2.107-1.893m1.774 2.338l-2.295-1.664m1.963 2.107l-2.44-1.408m2.218 1.886l-2.594-1.143m2.371 1.664l-2.67-.888m2.517 1.408l-2.74-.597m2.673 1.152l-2.817-.3m2.773.855h-2.807m2.851.52l-2.817.29m2.884.265l-2.773.59m2.926-.078l-2.704.896m2.894-.376l-2.595 1.152m2.85-.666l-3.004 1.852m3.294-1.372l-6.144 4.368m6.485-3.96l-6.553 5.81m6.92-5.408l-5.41 6.04m5.854-5.7l-4.113 5.513m4.556-5.18l-4.292 7.44m4.779-7.218l-2.372 5.402m2.885-5.18l-2.407 7.44m2.927-7.295l-1.033 5m1.587-4.922l-.742 7.696m1.818-7.696l.298 2.806m.256-2.884l1.664 7.254m-1.143-7.399l1.408 4.292m-.896-4.479l3.302 7.142m-2.782-7.399l3.516 6.068m-3.073-6.366l5.078 6.664m-4.633-6.997l4.445 5.146m-4.07-5.513l6.588 5.99m-6.255-6.442l3.592 2.594m-3.259-3.037l2.44 1.407m-2.219-1.887l2.595 1.145m-2.372-1.665l2.662.888m-2.518-1.408l2.74.597m-2.664-1.152l2.817.3m-2.782-.855h2.816m-2.851-.52l2.817-.29m-2.893-.264l2.782-.59m-2.926.078l2.704-.888m-2.892.367l2.594-1.152m-2.816.632l2.45-1.408m-2.75.965l2.262-1.665m-2.628 1.22l2.108-1.886m-2.475 1.519l1.886-2.116m-2.33 1.741l1.664-2.253m-2.107 1.963l1.4-2.45m-1.887 2.227l1.152-2.593m-1.672 2.373l.896-2.672m-2.519-4.224v-2.185m-2.448 2.449l-.443-2.15m-1.919 2.892l-.897-1.962m-1.255 3.217L247 231.73m-.553 3.405l-1.63-1.442m.187 3.482l-1.928-1.11m.887 3.362l-2.073-.7m1.553 3.107l-2.185-.222m2.185 2.705l-2.185.222m2.705 2.227l-2.107.666m23.654 1.628l1.894 1.11m-.896-3.37l2.074.666m-1.552-3.072l2.183.222m-2.183-2.706l2.183-.22m-2.705-2.22l2.117-.666m-3.115-1.594l1.894-1.11m-3.336-.888l1.63-1.485m-3.438-.179l1.253-1.784m-3.405.521l.888-1.997m-3.26 1.22l.444-2.107" stroke-width=".111" fill="none"/> - <path d="M258.29 245.537s-.74-.407-1.184-.407c-.444 0-2.407-.112-3.184.11-.444.15-.815.52-.815.52s.518.517 1.555.63c1.074.072 1.74 0 2.296-.187.63-.185 1.333-.666 1.333-.666z" stroke-miterlimit="2.613" fill="#e60000" fill-rule="evenodd" stroke-width=".111"/> - <path d="M253.256 244.76s.074-1.444 1.074-3.258c0 0-.333.518-.518.963 0 0-.556.296-.89-.11-.332-.334-.147-.482.112-1 .22-.408.184-.815.48-1.075.26-.26.482-.296 1.186-.296s1.147.074 1.74.888c.517.704.814 1.37 1.073 1.74.592.926.592 2.037.592 2.037l.185.887s-.74-.407-1.184-.407c-.444 0-2.407-.112-3.185.11-.442.15-.813.52-.813.52s-.295-.666.15-1z" stroke-miterlimit="2.613" fill="#e60000" fill-rule="evenodd" stroke-width=".111"/> - <path d="M253.256 244.76s.556-.333 2.444-.296c2.185.037 2.258.185 2.406.334" stroke-miterlimit="2.613" fill="none" stroke-width=".111"/> - <path d="M255.142 252.91v-7.664s.26-.223.85 0v7.59s.187 5.812-.443 5.775c-.74.002-.408-1.33-.408-5.7z" stroke-miterlimit="2.613" fill="#fc0" fill-rule="evenodd" stroke-width=".111"/> - </g> - <g fill="#e60000"> - <path d="M247.223 246.467l.148.297-1.48.63.222.517-.22.075c-.15-.334-.26-.444-.63-.37l-.11-.222 2.07-.926zm-1.596-.631a.653.653 0 0 1-.26-.407c-.073-.37.075-.778.557-.89.22-.073.777-.073.962.63.074.296.037.666-.444.85l-.073-.295c.257-.074.33-.296.257-.555-.074-.296-.333-.407-.63-.333-.295.074-.406.333-.37.592a.543.543 0 0 0 .335.37l.037.22-1.26.112-.26-1.148.297-.037.222.926.627-.037zm-.587-4.146c-.372 0-.52.258-.52.517-.036.222 0 .555.333.592.223 0 .297-.15.334-.26l.22-.666c.075-.296.297-.48.63-.444.555.037.666.555.63.963-.038.407-.186.593-.26.666-.22.184-.407.22-.63.184l.038-.295c.408.036.556-.298.593-.594.037-.222 0-.592-.334-.63-.26-.036-.333.075-.443.445l-.148.482c-.074.148-.185.48-.592.444-.37-.037-.703-.296-.666-.852.074-.814.555-.85.815-.85v.298zm-.11-1.444l.666.222.406-1.222.26.11-.408 1.186.74.26.446-1.334.26.074-.52 1.63-2.22-.704.518-1.63.295.112z" fill-rule="evenodd"/> - <path d="M246.45 236.826a.762.762 0 0 0-.452.346l-.507.88 1.948 1.227.186-.24-.853-.534.374-.614c.26-.444.083-.802-.213-.986a.608.608 0 0 0-.48-.08zm.135.346a.45.45 0 0 1 .16.08c.222.148.228.34.08.56l-.294.48-.64-.373.348-.534c.083-.14.196-.236.346-.214z"/> - <path d="M249.15 236.95l-.185.223-1.48-1.407-.556.556-.186-.185 1.296-1.37.222.185-.556.592zm.778-.665l-1.37-1.852.222-.185 1.407 1.852zm-.038-2.445l.333.63 1.148-.592.112.26-1.11.592.333.666 1.26-.63.11.223-1.518.813-1.074-2.073 1.518-.777.112.26zm4.296.63l-.296-1.333c0-.074-.037-.333-.11-.556l-.223 2.038-.296.074-1.073-1.777c.037.222.11.518.148.555l.296 1.37-.295.037-.52-2.258.446-.076 1.075 1.778.222-2.073.444-.112.482 2.295-.296.037z" fill-rule="evenodd"/> - <path d="M254.96 232.107l-.108 2.32.987.026c.517.037.826-.242.826-.613.037-.407-.252-.513-.4-.587.26-.11.32-.33.32-.48.037-.332-.17-.603-.614-.64l-1.024-.025zm.346.32l.506.053c.334 0 .454.098.454.32-.037.26-.184.33-.48.293h-.534l.054-.666zm-.054.96l.56.053c.223 0 .48.078.48.373 0 .223-.183.374-.48.374l-.586-.054.026-.746zm2.295-1.067l-.614 2.267.294.08.24-.96.746.213c.37.11.33.32.294.507-.037.073-.144.41-.107.56l.373.106v-.026c-.074-.074-.063-.12-.026-.267l.053-.4c.11-.296.004-.407-.107-.48.15-.075.38-.12.454-.453.148-.48-.19-.69-.56-.8l-1.04-.347zm.293.4l.667.24c.148.037.377.094.266.427-.074.296-.284.277-.506.24l-.64-.187.213-.72z"/> - <path d="M260.294 233.656l-.37.592 1.11.667-.148.22-1.11-.628-.37.666 1.184.704-.11.223-1.482-.853 1.148-2 1.482.853-.15.26z" fill-rule="evenodd"/> - <path d="M263.09 235.358l-1.76 1.467.588.746c.518.556 1.14.307 1.547-.025.518-.408.647-1.013.24-1.494l-.614-.692zm-.025.507l.346.426c.26.298.222.618-.185.988-.407.333-.78.323-1.04.026l-.347-.4 1.227-1.04z"/> - <path d="M264.7 237.95l-.666.333.592 1.11-.26.15-.554-1.148-.703.333.628 1.26-.26.11-.777-1.518 2.074-1.037.778 1.52-.26.11zm-.82 4.148l-.037-.296 1.593-.222-.075-.518.224-.037c.11.37.148.48.518.518l.037.222-2.26.333z" fill-rule="evenodd"/> - <path d="M264.61 242.8c-.11 0-.31-.01-.533.212a.917.917 0 0 0-.187.56c-.037.52.333.774.667.774.184.037.438-.025.586-.32.037.11.157.294.454.293.295.036.613-.15.613-.668.037-.52-.328-.72-.587-.72-.222 0-.38.1-.453.32-.074-.258-.263-.416-.56-.453zm0 .372c.185 0 .384.158.347.454 0 .222-.105.4-.4.4-.334 0-.374-.268-.374-.454 0-.332.243-.4.427-.4zm1.013.107c.15 0 .33.076.294.372 0 .296-.182.374-.294.374a.435.435 0 0 1-.346-.427c0-.185.16-.32.346-.32z"/> - <path d="M265.288 244.837c.74.185.666.74.63.963-.11.37-.445.63-.852.52-.37-.075-.48-.372-.592-.78l-.074-.258c-.075-.333-.223-.444-.334-.48l-.296 1.22-.26-.073.37-1.52c.482.15.668.408.778.74l.074.334c.074.26.148.48.445.518.148.074.407 0 .482-.332.11-.408-.26-.52-.41-.556l.038-.297zm-2.253 2.219l.148-.295 1.444.704.222-.482.222.074c-.15.37-.186.52.11.74l-.073.223-2.075-.964z" fill-rule="evenodd"/> - </g> - <path d="M255.26 215.736l-38.728 64.796h77.49z" stroke-miterlimit="2.613" fill="none" stroke="#000" stroke-width=".259"/> - <g stroke-miterlimit="2.613" fill="none"> - <path d="M257.327 272.528c1 .26 2.22.408 3.442.074 1.666-.408 3.22-1.37 5.183-1.185 1.407.147 3.332 1.37 5.665 1.37 2.295 0 3.073-.815 5.072-1.222 1.407-.296 2.11-.148 3.63.185 1.74.333 2.627 1.333 5.552 1.11" stroke="#000" stroke-width=".111"/> - <path d="M227.45 275.31c1.297-1 3.592-1.407 5.333-1 2.296.48 3.295 1.073 5.738 1.036 1.816-.036 3.37-1.258 5.222-1.258 3.073 0 3.184.63 5.886 1.148a6.017 6.017 0 0 0 2.296 0c1-.186 1.89-.52 2.702-.927.852-.445 3-.37 4.073-.26 1.924.185 2.7.926 3.11 1.037 1.036.26 2.22.408 3.442.075 1.666-.482 3.22-1.556 5.22-1.334 1.407.15 3.332 1.518 5.628 1.518 2.296 0 3.11-.926 5.072-1.37 1.445-.333 2.148-.148 3.665.186 1.704.407 2.63 1.517 5.554 1.258" stroke="#fff" stroke-width=".407"/> - <path d="M223.082 273.125c1.296-.85 3.592-1.222 5.332-.888 2.296.445 3.295 1 5.738.962 1.814-.038 3.37-1.148 5.22-1.148 3.074 0 3.185.592 5.887 1.036.703.11 1.592.11 2.295 0 1-.147 1.888-.48 2.702-.85.815-.372 3-.298 4.073-.223 1.925.185 2.702.815 3.11.926 1.037.222 2.222.37 3.443.074 1.666-.444 3.22-1.37 5.22-1.185 1.407.147 3.332 1.37 5.628 1.332 2.297 0 3.11-.814 5.073-1.222 1.445-.296 2.148-.11 3.665.186 1.704.37 2.63 1.37 5.554 1.11" stroke="#fff" stroke-width=".296"/> - <path d="M219.08 279.457c1.296-1.074 3.592-1.517 5.37-1.11 2.258.555 3.257 1.22 5.7 1.184 1.815-.036 3.407-1.405 5.22-1.405 3.112 0 3.185.703 5.888 1.296a6.21 6.21 0 0 0 2.333 0 8.94 8.94 0 0 0 2.666-1.074c.852-.444 3-.37 4.11-.258 1.888.22 2.665 1 3.073 1.148 1.035.258 2.22.443 3.478.074 1.667-.556 3.222-1.704 5.184-1.482 1.407.185 3.332 1.703 5.665 1.703 2.26 0 3.073-1.036 5.035-1.554 1.444-.37 2.148-.148 3.665.223 1.74.443 2.628 1.702 5.554 1.405" stroke="#fff" stroke-width=".518"/> - <path d="M220.12 275.822c1.335-.89 3.63-1.222 5.37-.89 2.296.445 3.295.964 5.74.927.813 0 1.555-.223 2.332-.483" stroke="#fff" stroke-width=".296"/> - <path d="M231.855 272.05c.37-.11 1.443-.63 2.998-.63 3.11 0 1.148.038 3.85.52.704.11 2.666.147 3.222-.41m27.109 8.78c1-.185 1.852-.48 2.703-.852.814-.37 2.96-.333 4.072-.22 1.925.184 2.665.813 3.11.887 1.036.26 2.22.408 3.442.074 1.667-.408 3.22-1.37 5.22-1.186 1.408.15 3.333 1.37 5.628 1.37" stroke="#000" stroke-width=".259"/> - <path d="M273.804 271.75c2.297 0 3.073-.813 5.073-1.22 1.408-.296 2.11-.112 3.628.185 1.74.333 2.63 1.37 5.553 1.11" stroke="#fff" stroke-width=".296"/> - <path d="M219.19 279.68c1.334-.852 3.63-1.223 5.37-.89 2.296.445 3.295 1 5.738.963 1.814-.037 3.37-1.148 5.22-1.148 3.074 0 3.185.593 5.887 1.037.703.11 1.593.11 2.296 0 1-.148 1.852-.48 2.703-.852.815-.37 2.962-.296 4.073-.185 1.925.148 2.665.778 3.11.89" stroke="#000" stroke-width=".111"/> - <path d="M224.08 276.863c1.333-.89 3.63-1.222 5.37-.89 2.294.446 3.294.964 5.7.927 1.852-.037 3.406-1.148 5.22-1.11 3.11 0 3.222.555 5.925 1.036.703.11 1.59.11 2.295 0 1-.185 1.852-.48 2.703-.852.814-.37 2.962-.333 4.073-.222 1.888.185 2.665.815 3.11.89 1 .258 2.22.406 3.443.074 1.665-.408 3.22-1.37 5.22-1.185 1.517.148 3.442 1.37 5.627 1.37 2.296 0 3.11-.814 5.072-1.222 1.406-.296 2.11-.147 3.665.185 1.702.334 2.628 1.333 5.516 1.074" stroke="#000" stroke-width=".518"/> - </g> - <g fill="#fc0" fill-rule="evenodd" stroke="#000" stroke-width=".222"> - <path d="M225.122 266.085c.37.074 1.26-.63 1.518-.815.37-.222.555-.777.852-1.074.295-.333 1.185-.74 1.59-1 1.778-1.11 2.593-1.74 3.814-3.37 1.667-2.294 3.63-4.182 6.072-5.552.778-.444 1.962-.296 2.814.074.258.11.592.407.888.63 1.037.813 2.444 1.406 4.147 1.925 1.63.48 2 1.554 3.295 2.702a9.113 9.113 0 0 0 2.11 1.406c.075.038.26.335.333.372.74.556 1.556 1 2.185 1.555a71.424 71.424 0 0 1 3.405 3.296c.186.184.26.555.445.703.85.814 1.667 1.667 2.702 2.147 1.037.52 1.963 1.186 2.925 1.778-9.85.372-18.92-.258-28.804.038-.26.037-.333 0-1.815 0-.74-.037-1.185.037-1.925.037-3-.037-5.85-.037-9.367-.074l2.816-4.775z"/> - <path d="M263.812 270.608c-.814-.52-1.63-1.074-2.518-1.518-1.037-.48-1.852-1.334-2.703-2.148-.184-.148-.258-.52-.443-.703a71.478 71.478 0 0 0-3.406-3.296c-.628-.555-1.443-1-2.183-1.556-.074-.037-.26-.333-.333-.37a9.11 9.11 0 0 1-2.11-1.407c-.852-.777-1.296-1.48-2-2.036l.037-.037c.41-.296.853-.592 1.335-.814.63-.37 1.628-.26 2.332.074.223.074.52.296.74.48.852.705 2.037 1.186 3.444 1.63 1.37.408 1.705 1.296 2.778 2.222.518.48 1.073.888 1.74 1.185.037.037.185.258.26.332.63.445 1.295.815 1.85 1.296.963.89 1.89 1.778 2.814 2.74.15.148.186.444.37.592.704.667 1.407 1.37 2.26 1.777.85.408 1.59.964 2.406 1.445-2.22.11-4.406.11-6.59.11h-.076z"/> - <path d="M255.03 258.61c.297.074.63.185.964.297 1.37.407 1.703 1.296 2.776 2.22.52.483 1.074.89 1.74 1.187.038.037.185.258.26.333.63.444 1.295.815 1.85 1.296.964.89 1.89 1.777 2.815 2.74.148.147.185.444.37.592.704.666 1.407 1.37 2.26 1.777.74.333 1.37.815 2.035 1.223 1.815 0 3.628-.037 5.517-.11-.74-.446-1.407-.965-2.22-1.335-.78-.37-1.372-1-2.038-1.63-.15-.11-.187-.37-.334-.518-.852-.888-1.704-1.666-2.592-2.48-.48-.446-1.074-.778-1.63-1.186-.073-.037-.22-.26-.258-.296a6.653 6.653 0 0 1-1.593-1.074c-.962-.85-1.26-1.667-2.518-2.036-1.26-.37-2.333-.853-3.11-1.445-.22-.185-.48-.407-.666-.48-.668-.298-1.556-.41-2.148-.075a10.51 10.51 0 0 0-1.48 1z"/> - <path d="M264.068 260.718c.26.295.52.592.888.925.482.445 1 .78 1.593 1.074.036.037.184.26.258.297.555.407 1.148.74 1.63 1.185.888.814 1.74 1.59 2.59 2.48.148.148.185.407.334.518.667.63 1.26 1.26 2.037 1.63.517.258.96.555 1.443.85h-.037c2.148 0 4.294 0 6.48-.073-.593-.37-1.112-.777-1.778-1.074-.63-.332-1.11-.85-1.667-1.332-.11-.11-.146-.296-.258-.444-.704-.704-1.37-1.334-2.074-2-.406-.37-.888-.63-1.333-.963-.074-.036-.185-.184-.222-.22-.48-.223-.89-.52-1.296-.853-.777-.703-1-1.37-2-1.667-1.037-.332-1.925-.666-2.555-1.184-.185-.148-.37-.296-.518-.37-.555-.222-1.26-.334-1.74-.074a10.18 10.18 0 0 0-1.778 1.26v.036h.002z"/> - <path d="M280.844 269.31a7.85 7.85 0 0 0-1.333-.776c-.628-.334-1.11-.852-1.665-1.333-.11-.11-.148-.296-.26-.444-.703-.703-1.37-1.333-2.073-2-.407-.37-.89-.63-1.333-.963-.075-.037-.187-.184-.224-.22-.48-.224-.888-.52-1.296-.853-.666-.592-.925-1.148-1.59-1.52l.035.038a6.73 6.73 0 0 1 1.075-.703c.443-.26 1.036-.148 1.517.037.11.037.296.222.445.333.555.407 1.26.74 2.185 1 .85.26 1.037.814 1.703 1.407.333.297.704.555 1.11.74.038.038.112.186.186.223.37.26.814.482 1.148.815.593.555 1.185 1.11 1.777 1.703.113.11.113.296.224.37.444.408.888.852 1.407 1.11.556.298 1.038.63 1.556.927-1.555.074-3.072.074-4.59.074v.037h-.002z"/> - </g> - <path d="M238.04 254.907c.482-.074.26-.185.704.11m-1.59.479c.518-.075.703-.408 1.074.037m-1.561.304c.223 0 .37-.26 1.074.147m-1.586.442c.445-.11.704-.074 1.148.074m-1.745.37c.518-.15.74.222 1.296.11m-1.927.52c.332 0 .444-.11.74 0 .37.112.295.038.666.075m-2.106.591c.37 0 .48-.074.814-.037.445.073.335.11.78.036m-2.004.555c.74-.073.963-.036 1.48.15m-2.477 1.216c.628-.185.924-.185 1.48.037m-11.772 10.553c2.036-.333 4.443.037 6.48-.26m4.11-10.996c.517-.184.406-.11.925-.073.52.074.74.148.89.074m-2.635 1.186c.518-.26 1.148-.11 1.667.037m-.327.518c-.555-.15-1.148-.037-1.74 0m1.296.598c-.593-.186-1.222-.26-1.814-.075m-.822.518c.74 0 1.444-.186 2.184.074m-2.807.515c.777-.26 1.555-.038 2.37.037m-3.113.406c.815-.037 1.592-.037 2.407-.074.11 0 .37-.11.517.075m-.261.444c-1.222.258-2.444.073-3.666.11m3.001.52c-.41.037-1.038.186-1.593.15-.112-.038-.222-.113-.333-.113-.63-.037-1.26-.037-1.85.186m-.261.443c.26-.148.555-.185.814-.11.777.11 1.518 0 2.26.183.184.073.37.185.59.185m-4.107.041c.554 0 1.11-.074 1.665.037.703.185 1.37.333 2.11.37h-.074m-4.221.002c.59 0 1.146.11 1.74.223.777.148 1.554-.074 2.295.148m-4.735-.005c.776.334 1.59.038 2.406.187.777.147 1.48.11 2.22.258m-5.148.145c1.185.037 2.37 0 3.592.222.333.074.85.223 1.296.15m-5.289.148c1.148.223 2.333.038 3.48.334.52.11 1.074.222 1.63.222h-.075m-5.522.332c.11-.037.26-.11.37-.11.926 0 1.814.147 2.777.036.74-.037 1.555-.11 2.296.148h-.074m-5.779.523c1.852-.185 3.74.074 5.592 0m-5.924.555c1.963.222 3.925.037 5.85.185m-6.14.405c.852.184 1.704-.075 2.555.11.63.11 1.185.22 1.815.11.555-.147 1.074.038 1.592-.036m7.922-8.104h.185m-.373.222c.074.037.185-.11.223.037m-.445.261h.407m-.594.256h.518m-.851.334c.296.036.556.073.85.073h-.073m-1.067.37c.332-.11.703 0 1.036-.11h-.074m-1.406.631h1.407-.073m-1.564.332c.517 0 1-.074 1.48.037h-.036m-1.735.441c.555-.074 1.148 0 1.74.074m-2.072.447c.37-.037.666.185 1.036.26.298.073.556 0 .816-.038m-1.963.187c.555.186 1.148.223 1.703.26m-2.037.184c.482-.037.926.074 1.408.22.222.076.444.04.63.04h-.038m-2.63.44c.592-.26 1.295-.074 1.925.11.222.075.444-.036.703-.036h-.074m-2.631.368c.704-.22 1.444-.22 2.11.076.11.037.26 0 .37 0m-2.923.446c.924.185 1.887-.11 2.813.148m-3.07.262c.74.296 1.555 0 2.37.222.258.074.518.074.777-.037m-3.668.369c.334-.11.667-.185 1-.11.888.22 1.703.147 2.518.26m-3.927.439c.185-.037.37.11.518.074 1.148-.186 2.296 0 3.407-.075m-4.215.446c.888.33 1.814 0 2.776.258.37.11.85.148 1.258 0m-4.367.372c1.37.037 2.665-.037 4.258.15m3.516-8c.148-.037.26.11.407.074m-.595.336c.185-.038.333-.112.52-.075m-.666.441c.26.037.482-.037.74.074m-.927.447c.296 0 .63 0 .926.074m-1.182.446c.407-.11.777.037 1.185-.074m-1.228.441c.37.148.74.037 1.148.074v-.074m-1.369.589c.37-.037.703-.074 1.036.074.11.037.26 0 .407-.074m-1.478.52c.48-.185.963.112 1.482 0m-1.703.632c.555-.037 1.073.074 1.63 0m-1.817.478c.22-.074.48-.223.702-.11.333.147.74.073 1.11.11m-1.924.563c.63-.222 1.296.148 1.925-.185m-2.003.774a1.59 1.59 0 0 1 .927.037c.332.074.74.037 1.147-.037m-2.252.555c.74-.15 1.518 0 2.296-.038l-.037.037m-2.703.521c.963-.074 1.962-.185 2.925-.185m-2.813.775c1.073-.186 2.184-.112 3.294-.15m-3.484.746c1.075.148 1.297-.074 2.37-.11.186 0 1.112-.186 1.297-.222.148-.038.48 0 .63 0m-4.297.622c1.63-.148 3.296.148 4.962-.26m-12.035.081h1.296m5.002.179c.148.074.333-.074.444.074m5.743-.185c1.332-.148 2.702.26 4.035 0m-4.71-.443c.852-.26 1.63-.074 2.444.075.075 0 .075.184.15.22.74.112 1.444 0 2.184-.036m-9.515-.328h-.85m-4.44-.187c-.59.037-1.184.037-1.776.11m12.921-12.586h.26m-.149.367c.11.037.222 0 .333-.037m-.265.634c.038-.037.038-.11.075-.11.11-.038.257-.038.368-.038m-.289.514c.185-.11.408-.036.63-.036m.07.37c-.223-.037-.408.037-.593.11m.26.521a.821.821 0 0 1 .592-.11m.261.443h-.85m.252.444c.297 0 .593.074.815-.11m.227.63c-.333 0-.63 0-.925.074m.217.549c.332.037.666-.037 1-.185m.076.34c-.297.147-.63.184-.964.258m.186.552c.408-.222.89-.037 1.296-.185m.112.517c-.332 0-.666-.074-1 .037-.11.037-.184.11-.333.11m.258.818c.26-.11.518-.296.815-.26.037-.184.222 0 .295-.11.074-.037.222 0 .37 0m.185.557c-.482-.037-1 .075-1.48.15m.148.626c.555-.22 1.11-.22 1.703-.295m-1.661.995c.63-.148 1.297-.11 1.89-.37m.44.447c-.703.112-1.407 0-2.073.334m.145.631c.11.037.185.11.296.074.667-.26 1.333-.48 2-.407m.187.478c-.666.37-1.444.222-2.185.26-.073 0-.147.073-.258.11m.258.449c.815-.11 1.593-.148 2.407-.26m.52.516c-.666.11-1.296-.037-1.925.11-.295.038-.556.15-.85.224m.104.519c.112 0 .26.037.333-.037.813-.48 1.74-.333 2.627-.37m.266.518c-.74 0-1.518-.185-2.26.074-.257.11-.516.26-.813.26m.257.554c.407-.074.777-.26 1.148-.334.85-.11 1.703-.037 2.555-.037m.001.447c-.482-.11-1-.148-1.445 0-.74.186-1.407.37-2.147.407m.409.37c.592-.074 1.147-.258 1.74-.408.48-.11.963-.037 1.445-.037m-3.152.778c.89-.148 1.78 0 2.666-.297.297-.11.63.075.963.037m-.002-.337c1.482.11 2.962-.186 4.406.147m-4.107.296c.184.037.333-.11.444-.11 1.222 0 2.444.036 3.665.11m-.44-3.14h.186m-.117.401c.148.074.295-.185.443 0m-.332.443h.777m-.556.632c.26-.295.63 0 .89-.184m-.702.782c.334-.297.814.037 1.148-.26m-1.072.703c.482-.148 1 .037 1.48-.26m-1.3.704c.74-.333 1.592.148 2.296-.37m-2.219.737c.925-.296 1.888 0 2.814-.037m.591.003c1.63-.074 3.295-.11 4.924 0m-5.624-.597c1.444.147 3.628 0 5.443.147m-13.439-11.292c.11 0 1.11-.185 1.185-.185m-.851.45c.296.037 1 .037 1.258-.186m-.781.663c0-.037.85-.184.888-.184.112-.037.26 0 .407-.037m-.92.477c.148-.11 1.334-.037 1.555-.074m.289.338c-.223 0-1.185.038-1.333.15m.821.517c.148-.11.85-.222 1.11-.222m.554.409c-.297 0-.926.074-1.26.074m.628.482c.333-.038.926-.112 1.11-.26m.597.55c-.334 0-.777.036-1.222.073m.556.447c.407 0 1 0 1.296-.112m.445.257c-.26.148-.777.185-1.11.26m.547.525c.333-.223.925-.074 1.333-.223m.45.479c-.406 0-.814-.037-1.11.037-.112.037-.15.11-.334.11m2.776.851c-.593-.037-1.074.074-1.593.148m.517.56c.518-.222 1.148-.185 1.74-.296m-.444 1.849c.113.038.667-.074.78-.11.888-.112 1.035-.297 1.85-.223m.486.368c-1.075.185-1.48.222-2.297.296-.112 0-.37.074-.444.11m.48.336c.815-.147 2-.11 2.813-.22m.89.442c-.666.11-1.443 0-2.073.148-.297.037-.852.074-1.148.148m.773.515c.11 0 .258 0 .333-.037.667-.445 1.74-.37 2.702-.37m.599.449c-.926 0-1.297.037-2 .11-.26.038-.63.186-.962.186m.778.481c.85-.148 2.48-.334 1.518-.26.89-.074 1.037-.074 2-.074m.252.368c-.59-.074-1.22-.074-1.627.037-.37.11-.26.222-1.52.26m.52.258c.593-.075.667-.037 1.222-.186.445-.11 1.038-.074 1.593-.074m-2.516.481c.925-.11 1.036-.074 2-.037.258 0 .48 0 .814-.037m-17.218-11.66c.222-.11.37-.184.777-.147-.11-.148.185 0 .26-.074 0-.075.22-.038.37-.038m-1.851-.184c.22-.11.444-.11.814-.074-.11-.185.222 0 .26-.11.036-.038.258 0 .406 0m5.884 6.405c.26-.11.222-.185.592-.11-.11-.186.408 0 .445-.112.037-.074.444-.037.592-.037m-.067 1.735c.592-.148 1.333-.148 1.85-.407m.89.673c-.704.11-1.74.035-2.297.332m-8.447-8.926c-.667-.037-.778.185-1.26.185m8.554 1.667c.113 0 .853-.15.964-.15m-.664.448c.444-.11.777 0 1.037-.184m-.67.551c0-.037.703-.11.74-.11.11-.038.26-.038.37-.038m-.734.481c.148-.11 1.11-.074 1.333-.11m.254.332c-.223-.037-1.11.11-1.26.185m.483.412c.148-.11 1.11-.222 1.333-.185m.519.364c-.297 0-1.11.075-1.407.112m.477.374c.296 0 1.222-.073 1.37-.22m.525.51c-.297 0-.816.038-1.224.075m.37.412c.37 0 1.185 0 1.444-.148m.408.259c-.223.15-.926.223-1.222.297m.667.403c.296-.185.888-.074 1.26-.185m.404.45c-.334 0-.74-.037-1 .037-.11.037-.148.11-.296.074m2.516.81c-.52-.037-.962.074-1.444.148m.48.518c.48-.223 1.074-.223 1.63-.297m-.333 1.739c.148.037.518-.11.592-.11.852-.112.963-.298 1.74-.26m.408.37c-.964.185-1.334.222-2.075.26-.11 0-.37.073-.444.11m.445.304c.74-.11 1.85-.11 2.592-.185m.822.407c-.594.074-1.297 0-1.89.11-.26.075-.814.075-1.074.15m.736.474c.11 0 .222 0 .296-.037.593-.408 1.593-.334 2.518-.334m.522.413c-.85 0-1.222.037-1.852.112-.407.037-.888.185-1 .185m.624.403c.78-.148 2.483-.296 1.594-.222.815-.074.963-.074 1.85-.074m.226.372c-.555-.073-1.073-.11-1.48 0-.297.075-.41.223-1.63.26m.448.26c.555-.073.888-.073 1.37-.184.407-.11.963-.074 1.482-.074m-2.297.55c.778-.11.89-.185 1.814-.148.26 0 .444-.037.74-.074m-15.849-10.7c.22-.112.147-.186.48-.15.26-.073.445.038.482-.073 0-.037.222-.037.333-.037m-1.816-.03c.223-.112.26-.223.593-.186.333-.037.48 0 .518-.112.037-.037.222 0 .37 0m5.517 5.886c.222-.11.11-.148.444-.11-.075-.15.37 0 .407-.075.037-.074.407-.037.555-.037m-.067 1.587c.555-.148 1.222-.148 1.703-.333m.815.598c-.63.11-1.445-.037-1.926.22m-7.93-8.148c-.63-.036-1.148.26-1.518.518m9.112 2.742c.074 0 .964-.148 1-.148m-.7.37c.332-.074.813-.037 1-.185m-.668.441c-.037 0 .703-.11.74-.11.074-.038.185 0 .296 0m-.746.375c.11-.074 1.037-.074 1.185-.11m.223.255c-.185-.037-.89.074-1 .147m.522.297c.11-.075.703-.15.888-.15m.366.303c-.185 0-.85.074-1.073.074m.407.293c.222 0 .89-.074 1.037-.185m.406.407c-.26 0-.666.037-.963.037m.297.329c.297 0 .89 0 1.11-.11m.341.222c-.185.11-.74.148-.963.185m.331.335c.223-.148.89-.037 1.148-.11m.329.298c-.297 0-.592-.037-.815.037-.074.037-.148.037-.26.037m2.005.668c-.407-.037-.926.112-1.26.15m.407.294c.333-.148.925-.11 1.333-.185m-.413 1.294c.075.038.557-.037.63-.037.63-.074.74-.222 1.334-.185m.341.291c-.74.11-1.037.148-1.63.185-.074 0-.333.036-.407.036m.296.265c.592-.11 1.556-.074 2.148-.148m.592.336c-.445.074-1 0-1.445.074-.37.074-.89.11-.927.11m.478.405c.073 0 .592-.15.63-.15.74-.073 1-.147 1.703-.184m.405.334c-.666 0-.925.037-1.407.074-.332.038-.887.223-.96.223m.559.291c.48-.11 1.924-.258 1.332-.22.63-.038.74-.038 1.407-.075m.187.295c-.407-.036-.814-.073-1.148 0-.185.075-.406.15-1.333.223m.365.187c.444-.074.74-.037 1.11-.148.334-.11.778-.037 1.15-.074m-1.885.444c.592-.074.815-.148 1.518-.11.185 0 .333 0 .593-.038m-12.333-8.215c.185-.074.26-.185.518-.148.187-.037.335.037.335-.037.037-.037.185-.037.296-.037m-1.448-.042c.185-.074.222-.148.48-.148.26 0 .37 0 .408-.037 0-.075.186-.038.26-.038m4.118 4.515c.184-.074.22-.11.517-.074-.11-.11.26 0 .296-.073 0-.038.297 0 .408 0m-.045 1.222c.407-.11.926-.11 1.297-.295m.632.483c-.48.074-1.185-.037-1.592.185m-5.993-6.26c-.483-.038-.593.147-.89.37m7.51.97c.075 0 .852-.112.926-.112m-.661.367c.296-.074.778-.074.926-.185m-.636.407l.704-.11c.074-.038.185 0 .26 0m-.631.477c.11-.074.89-.222 1.038-.222m.224.222c-.184-.037-.924.11-1.035.185m.405.267c.074-.074.814-.185 1-.148m.374.259c-.223 0-.816.037-1.11.11m.366.223c.223 0 .928-.074 1.038-.186m.405.366c-.22 0-.777.073-1.073.11m.442.264c.258 0 .85 0 1.037-.11m.303.179c-.186.11-.816.11-1.037.185m.473.335c.186-.148.778-.074 1.037-.148m.303.302c-.26 0-.518 0-.74.037-.037.037-.222.037-.297.037m1.889.591c-.37-.037-.814.112-1.147.15m.295.328c.334-.148.926-.148 1.333-.222m-.411 1.222c.073 0 .518-.075.592-.075.593-.075.703-.186 1.222-.15m.293.258a13.4 13.4 0 0 1-1.48.185c-.075 0-.334 0-.372.037m.231.298a40.19 40.19 0 0 1 2-.185m.586.296c-.444.037-.963 0-1.37.074-.334.074-.815.074-.852.11m.447.337c.074 0 .556-.11.593-.11.667-.075.925-.15 1.592-.187m.366.297c-.63.037-.852.037-1.296.074-.333.036-.815.22-.926.22m.524.261c.482-.075 1.814-.26 1.26-.186.554-.074.665-.074 1.295-.074m.185.26c-.408-.038-.816-.075-1.075 0-.185.074-.37.148-1.22.185m.332.181c.37-.037.667-.037 1.036-.147.297-.075.667-.038 1.038-.038m-1.776.407c.593-.074.778-.11 1.445-.11.185 0 .296 0 .518-.038m-11.332-7.583c.148-.074.185-.148.444-.11.186-.038.297 0 .334-.038 0-.038.148-.038.258-.038m-1.335-.036c.185-.074.185-.148.445-.11.222-.038.333 0 .37-.075 0-.037.148-.037.26-.037m3.78 4.182c.15-.074.222-.074.444-.074-.074-.11.26 0 .297-.036.037-.037.296-.037.37-.037m-.078 1.112c.37-.075.926-.075 1.26-.223m.592.401c-.48.074-1.222-.037-1.592.148m-5.405-5.736c-.445-.038-.593.147-.853.33" stroke-width=".111" fill="none" stroke="#00633b"/> - <g fill="#fc0"> - <path d="M221.466 318.507l.64 4.744c-1.255-.408-2.407.325-2.96 1.367-.89 1.774-.104 3.114 1.603 3.968l2.294 1.177 4.267-8.294-1.706-.854-1.706 3.328h-.035l-.366-4.394-2.03-1.04zm.64 6.263c.273.026.57.145.88.3l.212.1-1.195 2.27-.213-.11c-.777-.4-1.297-.887-.853-1.81.298-.58.708-.784 1.17-.75z"/> - <path fill-rule="evenodd" d="M214.717 325.22l-4.147-2.78.89-1.297 2.59 1.703 1.15-1.703-2.52-1.667.89-1.297 2.48 1.667 1.406-2.074-2.59-1.738.888-1.332 4.146 2.814z"/> - <path d="M212.343 311.996l-2.26 2.62-.726-.59c-1.476-1.296-2.97-1.237-4.267.24-1.365 1.63-.862 3.055.7 4.352l1.945 1.672 6.025-7.065-1.417-1.23zm-4.718 3.02c.324.026.682.248 1.066.58l.3.214-1.68 1.954-.274-.222c-.7-.588-1.1-1.143-.393-1.996.35-.41.657-.564.982-.53z"/> - <path d="M200.904 314.256l-1.26-1.407 3.852-3.518c.85-.74 2-1.926.925-3.11-1.073-1.185-2.37-.185-3.22.593l-3.85 3.48-1.26-1.37 4.11-3.74c1.704-1.518 3.63-1.926 5.37-.037 1.74 1.925 1.147 3.85-.556 5.37l-4.11 3.738z" fill-rule="evenodd"/> - <path d="M197.495 296.67c-.53-.043-1.083.085-1.655.478-.81.59-1.442 1.647-.956 2.722-.674-.3-1.425-.094-1.98.316-1.518 1.04-1.484 2.33-.452 3.814l1.33 1.92 7.68-5.257-1.68-2.423c-.623-.905-1.408-1.502-2.287-1.57zm-.025 1.997c.555-.052.964.4 1.357.955l.24.3-1.973 1.33-.162-.213c-.478-.7-.98-1.53-.05-2.16.22-.145.4-.196.588-.213zm-2.722 2.696c.34-.008.63.222.904.64l.137.18-1.82 1.254-.127-.18c-.41-.597-.53-1.15.214-1.63.264-.196.486-.264.69-.264z"/> - <path fill-rule="evenodd" d="M194.612 292.787l-1.258-2.373 1.37-.74 2.184 3.995-8.18 4.446-.928-1.667zm-9.922-2.85l8.516-3.74.74 1.738-8.516 3.74zm-1.04-10.19c-.444.667-.518 1.556-.296 2.333.592 1.704 2.407 2.185 3.962 1.704 1.48-.482 2.628-2 2.073-3.665-.222-.78-.89-1.41-1.592-1.742l2.036-.666c.555.592 1 1.185 1.222 1.925.85 2.592-.666 5.183-3.11 5.998-2.518.815-5.332-.296-6.22-2.998a5.015 5.015 0 0 1-.148-2.222l2.072-.668z"/> - <path d="M188.11 267.307l-8.748 5.307.265 1.443 10.052 2.022-.377-1.947-2.048-.452-.614-3.31 1.844-1.092-.375-1.97zm-2.834 3.865l.4 2.245-3.515-.427v-.06l3.116-1.758zm-2.074-21.248c-2.406.01-4.3 1.68-4.505 4.318l-.214 2.663 9.25.75.214-2.67c.222-2.74-1.64-4.813-4.267-5.035-.162-.017-.316-.034-.478-.026zm-.35 2.134c.205-.017.418-.026.64 0 1.664.11 2.748 1.032 2.56 3.14v.273l-5.572-.46.026-.264c.128-1.716.93-2.595 2.346-2.688z"/> - <path fill-rule="evenodd" d="M179.618 246.318l1-4.887 1.554.334-.63 3.036 2 .408.63-2.925 1.518.332-.592 2.926 2.48.52.63-3.037 1.517.296-.998 4.923zm3.295-12.551l1.85-4.665 1.483.555-1.148 2.925 1.888.74 1.11-2.813 1.48.59-1.11 2.815 2.333.89 1.147-2.89 1.48.556-1.814 4.666zm11.034-5.961l1.22-2.37 1.408.704-2.073 4.072-8.293-4.258.85-1.665zm2.588-14.584c-.593.037-1.11.22-1.48.703-.372.518-.372 1.222.11 1.592 1.258.926 3.036-2.555 5.553-.667 1.482 1.11 1.814 2.85.63 4.443-.778 1.074-1.963 1.408-3.222 1.296l-.185-1.667c.74.22 1.63.073 2.11-.593.482-.592.26-1.37-.33-1.777-.78-.592-1.52 0-2.223.444-1.11.703-2.148 1.074-3.295.222-1.26-.926-1.556-2.63-.592-3.925.518-.703 1.555-1.407 2.406-1.52l.52 1.447z"/> - <path d="M200.695 205.065l-1.04 1.04 4.24 9.362 1.383-1.442-.853-1.92 2.32-2.398 1.946.802 1.392-1.443-9.387-4.002zm1.468 2.645l2.96 1.357-1.44 1.52-1.545-2.852.025-.025z"/> - <path fill-rule="evenodd" d="M211.977 205.554l2.074-1.666 1 1.222-3.554 2.888-5.85-7.257 1.48-1.183zm6.073-13.514l1.924 10.07-.925.594-8.258-6.073 1.703-1.11 5.332 4.074.037-.037-1.555-6.444z"/> - <path d="M224.64 188.587l-1.33.64.477 10.265 1.817-.827-.085-2.16 3.037-1.356 1.493 1.492 1.843-.828-7.253-7.227zm.375 3.038l2.296 2.372-1.928.853-.367-3.174v-.05zm10.002-6.265c-.478 0-.99.086-1.494.24l-2.56.75 2.61 8.9 2.536-.716c2.66-.776 3.967-3.268 3.224-5.785-.605-2.083-2.26-3.406-4.317-3.39zm-.06 1.947c1.16.042 1.937.716 2.32 2.056.487 1.587-.016 2.902-2.047 3.49l-.273.103-1.545-5.36.265-.102c.478-.128.896-.204 1.28-.187zm11.23-4.642c-.17.008-.36.034-.53.05-2.78.376-4.428 2.876-4.06 5.47.332 2.63 2.584 4.583 5.366 4.216 2.808-.374 4.438-2.84 4.105-5.47-.316-2.43-2.313-4.342-4.88-4.265zm-.214 2.082c1.477-.188 2.722 1.032 2.91 2.398.145 1.262-.742 3.003-2.193 3.225-1.442.188-2.773-1.297-2.96-2.56-.146-1.365.724-2.876 2.243-3.063zm7.919-2.509l-.102 9.31h1.886l.034-3.738h.025l2.296 3.79 2.288.025-2.688-3.943c1.297-.188 1.997-1.374 1.997-2.56.034-2.005-1.29-2.816-3.175-2.86l-2.56-.024zm1.92 1.655h.265c.887 0 1.587.214 1.553 1.255 0 1.032-.666 1.305-1.63 1.305h-.213l.025-2.56z"/> - <path fill-rule="evenodd" d="M272.22 183.97l4.845 1.22-.37 1.556-3.036-.778-.477 2 2.885.703-.37 1.556-2.93-.74-.59 2.443 3.034.777-.406 1.518-4.852-1.222zm9.027 5.738l-2.33 5.85-1.737-.667 3.555-8.885 1.253.482 2.303 7.96h.036l2.33-5.813 1.737.703-3.51 8.812-1.263-.52-2.33-7.922zm11.883 11.107l2.26 1.407-.847 1.333-3.856-2.407 4.967-7.886 1.59 1z"/> - <path d="M304.4 199.04l-8.96 5.043 1.546 1.246 1.843-1.033 2.584 2.158-.64 1.997 1.57 1.255 3.2-9.737-1.143-.93zm-1.39 2.697l-1.067 3.09-1.62-1.307 2.687-1.783zm15.335 11.861l-9.916 2.534 1.142 1.605 2.082-.487 1.946 2.697-1.143 1.783 1.194 1.63 5.573-8.585-.878-1.177zm-1.997 2.244l-1.843 2.714-1.23-1.707 3.073-1.008z"/> - <path fill-rule="evenodd" d="M322.943 228.658l-6.264.666-.292-.555 4.297-4.555v-.037l-5.56 1.85-.846-1.702 9.254-2.852.627 1.186-4.402 4.887 6.476-.704.627 1.222-7.878 5.59-.856-1.703 4.817-3.294zm5.444 3.924l1.623 4.74-1.517.518-.997-2.962-1.923.666.96 2.814-1.516.518-.97-2.85-2.365.814.997 2.962-1.52.52-1.587-4.778z"/> - <path d="M330.93 240.777l-9.06 1.92.366 1.834 3.66-.767h.052l-3.2 3.115.503 2.22 3.252-3.475c.487 1.23 1.767 1.622 2.91 1.366 1.963-.41 2.492-1.844 2.082-3.74l-.563-2.473zm-1.142 2.235l.05.24c.19.887.13 1.63-.904 1.817-.998.22-1.39-.385-1.578-1.307l-.05-.213 2.482-.538z"/> - <path fill-rule="evenodd" d="M332.86 251.76l-9.255 1.075-.22-1.852 9.255-1.074zm-2.036 10.067c.63-.52.962-1.333.962-2.147-.037-1.815-1.665-2.815-3.257-2.777-1.556 0-3.11 1.11-3.074 2.887 0 .778.408 1.592 1 2.11l-2.148.038c-.333-.704-.592-1.407-.592-2.184-.038-2.74 2.185-4.777 4.74-4.814 2.664-.037 4.997 1.85 5.07 4.703 0 .74-.184 1.517-.518 2.147l-2.184.037z"/> - <path d="M323.977 263.578l-.214 1.97 1.835 1.016-.4 3.328-2.075.478-.213 2.005 9.916-2.432.187-1.493-9.036-4.872zm3.114 3.805l2.91 1.34v.026l-3.173.716.264-2.083z"/> - <path d="M324.304 290.27c.778-.298 1.408-.89 1.704-1.63.666-1.704-.445-3.258-1.926-3.85-1.444-.556-3.294-.148-3.96 1.48a2.932 2.932 0 0 0 .147 2.37l-2.037-.777c-.037-.777 0-1.52.295-2.26 1-2.517 3.85-3.59 6.22-2.627 2.482.963 3.926 3.628 2.888 6.257a4.925 4.925 0 0 1-1.296 1.815l-2.035-.78zm.748 4.105l-2.373 4.403-1.404-.777 1.517-2.734-1.817-.96-1.438 2.628-1.377-.74 1.413-2.63-2.223-1.227-1.483 2.78-1.367-.777 2.364-4.403zm-7.782 7.367l-5.108-3.74 1.112-1.518 7.702 5.63-.777 1.11-8.26.256-.034.044 5.073 3.662-1.113 1.553-7.667-5.62.786-1.078 8.25-.3zm-4.588 8.223l1.112 1.076-3.997 4.183-1.11-1.076 1.33-1.412-5.593-5.364 1.297-1.366 5.595 5.364z" fill-rule="evenodd"/> - <path d="M301.68 310.11l-1.47 1.17 2.4 2.91v.024l-4.208-1.365-1.766 1.44 4.616 1.256c-.853.998-.64 2.33.137 3.25 1.253 1.52 2.823 1.306 4.265.086l1.946-1.63-5.92-7.142zm1.782 5.222l1.63 1.97-.187.138c-.7.59-1.332.862-1.997.077-.666-.81-.316-1.434.426-2.023l.128-.162zm-7.594-.402L294.16 316l.377 2.082-2.86 1.758-1.646-1.255-1.706 1.067 8.184 6.16 1.23-.767-1.87-10.112zm-1.067 4.882l.83 3.098h-.052l-2.56-1.98 1.783-1.118z"/> - <path fill-rule="evenodd" d="M285.658 322.626l-2.444 1.11-.67-1.41 4.11-1.96 3.998 8.444-1.703.777z"/> - </g> -</svg> diff --git a/img/flags/1x1/sx.svg b/img/flags/1x1/sx.svg deleted file mode 100644 index e0ac27e..0000000 --- a/img/flags/1x1/sx.svg +++ /dev/null @@ -1,56 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" height="512" width="512" viewBox="0 0 512 512"> - <defs> - <clipPath id="a"> - <path fill-opacity=".67" d="M0 0h450v450H0z"/> - </clipPath> - </defs> - <g clip-path="url(#a)" transform="scale(1.1378)"> - <path d="M0 0h675v225H300L0 0z" fill-rule="evenodd" fill="#ed2939"/> - <path d="M0 450h675V225H300L0 450z" fill-rule="evenodd" fill="#002395"/> - <path d="M0 0l300 225L0 450V0z" fill-rule="evenodd" fill="#fff"/> - <path fill="#ff0" d="M151.419 169.849l.092-3.484s-1.87-2.98.3-6.181c0 0-4.612-2.44-3.538-6.261 0 0-4.17-1.067-3.864-5.654 0 0-4.502-.313-4.968-4.145 0 0-4.502.741-6.483-2.993 0 0-4.39.858-5.63-2.22 0 0-4.268 1.478-6.801-2.14 0 0-4.508 1.82-6.397-1.595-1.864 3.404-6.372 1.594-6.372 1.594-2.502 3.606-6.802 2.11-6.802 2.11-1.196 3.09-5.575 2.214-5.575 2.214-1.974 3.735-6.47 2.992-6.47 2.992-.441 3.821-4.937 4.134-4.937 4.134.356 4.599-3.808 5.642-3.808 5.642 1.097 3.82-3.509 6.254-3.509 6.254 2.227 3.22.375 6.176.375 6.176l-.105 3.213 74.504.344"/> - <path d="M377.17 843.11l.091-3.458s-1.856-2.958.299-6.136c0 0-4.578-2.422-3.513-6.215 0 0-4.14-1.059-3.835-5.613 0 0-4.468-.31-4.93-4.114 0 0-4.469.736-6.435-2.971 0 0-4.358.852-5.588-2.204 0 0-4.237 1.468-6.751-2.125 0 0-4.474 1.808-6.35-1.582-1.85 3.379-6.324 1.582-6.324 1.582-2.484 3.58-6.75 2.094-6.75 2.094-1.188 3.068-5.534 2.198-5.534 2.198-1.96 3.708-6.422 2.97-6.422 2.97-.439 3.794-4.9 4.103-4.9 4.103.352 4.566-3.78 5.601-3.78 5.601 1.089 3.793-3.483 6.209-3.483 6.209 2.21 3.196.372 6.13.372 6.13l-.104 3.19 73.949.341h-.012z" stroke="#000" stroke-width=".271" fill="none" transform="matrix(1.0075 0 0 1.0074 -228.58 -679.5)"/> - <path fill="red" d="M149.686 165.497c-11.702-1.171-25.177-3.95-35.578 1.908-6.973-4.11-16.682-3.858-24.949-3.054-4.489.803-9.77.803-14.461 1.57l-.736.103c-8.513.565-16.234-1.95-23.631-5.255 2.349 13.332 4.955 26.995 6.237 40.953 2.79 20.672-9.782 38.027-4.624 58.448 3.078 9.8 13.854 15.496 23.716 16.625 9.55.564 19.43 2.128 28.268 4.047 1.68.35 3.673 1.13 4.832 1.631 2.435 1.018 4.22 2.515 5.784 4.116 5.336-5.557 13.155-7.102 20.87-7.918 13.904-1.625 31.045-.741 39.558-13.337v-.712c4.624-6.966 4.01-17.593 2.005-25.486-.135-2.753-.87-5.182-1.27-7.806-8.494-22.433-1.22-47.661 2.436-70.272-4.465 2.44-9.445 3.593-14.413 4.814-3.962.528-8.377.289-12.388.073l-1.662-.447"/> - <path fill="#80cfe1" d="M167.156 229.88c-.055 1.477.742 2.637 1.03 4.004 1.626 9.806 3.196 22.794-6.9 28.878-11.168 7.1-25.814 4.06-38.736 7.818-2.582.718-6.139 3.091-7.954 4.771-1.166-.766-2.337-1.944-3.84-2.636-10.634-5.654-24.458-3.76-36.46-6.814-6.029-1.907-12.315-6.604-13.842-12.774-3.925-16.189 5.477-29.987 4.367-46.047-.718-12.265-2.779-24.039-5.612-35.537 9.384 4.372 20.245 5.102 30.794 3.005 7.814-1.092 16.91-1.116 24.232 2.19 4.035-1.737 8.758-2.516 13.106-2.994 8.268.804 17.154 2.3 25.667 2.239 5.686-.295 10.85-1.939 15.793-4.128-2.932 19.005-8.562 38.911-1.65 58.025"/> - <path fill="#fff" d="M150.28 233.668l-.092-17.87h2.202l-27.316-17.643-.05-9.168h2.638l-13.659-9.78-13.59 9.774h2.63l.05 9.162-27.17 17.62 2.171.01.092 17.859 72.088.049"/> - <path d="M376.04 906.46l-.091-17.739h2.185l-27.113-17.513-.049-9.1h2.618l-13.557-9.71-13.49 9.704h2.611l.05 9.094-26.968 17.49 2.155.011.091 17.727 71.551.05.006-.014z" stroke="#000" stroke-width="1.164" fill="none" transform="matrix(1.0075 0 0 1.0074 -228.58 -679.5)"/> - <path fill="#fff" d="M158.683 257.14l.006 5.592-88.002-.098-.037-5.568 88.04.074"/> - <path d="M384.38 929.76l.006 5.551-87.347-.097-.036-5.528 87.384.074h-.006z" stroke="#000" stroke-width="1.164" fill="none" transform="matrix(1.0075 0 0 1.0074 -228.58 -679.5)"/> - <path fill="#fff" d="M76.531 256.808l-.073-18.925 3.563-.007-.196 19.145.214-18.991-5.133-.147v-4.06l78.65.086.036 4.023h-4.851l.092 19.164-.172-19.164h3.613l.08 18.948"/> - <path d="M302.84 929.43l-.073-18.786 3.536-.007-.194 19.005.213-18.852-5.095-.146v-4.03l78.064.085.036 3.994h-4.815l.091 19.023-.17-19.023h3.585l.08 18.809" stroke="#000" stroke-width="1.164" fill="none" transform="matrix(1.0075 0 0 1.0074 -228.58 -679.5)"/> - <path d="M319.62 924.8l-.055-13.1h-10.482l.061 13.087 10.476.013" stroke="#000" stroke-width="1.164" fill="none" transform="matrix(1.0075 0 0 1.0074 -228.58 -679.5)"/> - <path d="M311.94 914.43l.03 7.61h4.797l-.024-7.61h-4.803M370.86 924.84l-.06-13.087-10.447-.012.049 13.099h10.458" stroke="#000" stroke-width="1.164" fill="none" transform="matrix(1.0075 0 0 1.0074 -228.58 -679.5)"/> - <path d="M363.18 914.48l.055 7.585h4.79l-.042-7.585h-4.803M370.78 903.51l-.06-13.101H360.26l.037 13.101h10.488-.006z" stroke="#000" stroke-width="1.164" fill="none" transform="matrix(1.0075 0 0 1.0074 -228.58 -679.5)"/> - <path d="M363.1 893.16l.03 7.597h4.791l-.006-7.597H363.1M319.53 903.46l-.073-13.076-10.464-.013.049 13.082h10.488v.007z" stroke="#000" stroke-width="1.164" fill="none" transform="matrix(1.0075 0 0 1.0074 -228.58 -679.5)"/> - <path d="M311.85 893.11l.024 7.585 4.803.012-.036-7.597h-4.791M338.5 903.48l-.049-13.076-10.47-.012.043 13.087H338.5" stroke="#000" stroke-width="1.164" fill="none" transform="matrix(1.0075 0 0 1.0074 -228.58 -679.5)"/> - <path d="M330.83 893.13l.024 7.585 4.797.024-.03-7.609h-4.791M353.12 903.51l-.073-13.101-10.464-.012.049 13.087 10.488.025" stroke="#000" stroke-width="1.164" fill="none" transform="matrix(1.0075 0 0 1.0074 -228.58 -679.5)"/> - <path d="M345.44 893.14l.036 7.61h4.797l-.024-7.61h-4.809" stroke="#000" stroke-width="1.164" fill="none" transform="matrix(1.0075 0 0 1.0074 -228.58 -679.5)"/> - <path fill="#fff" d="M129.808 226.646l.116 30.423-30.56-.05-.11-30.397 30.548.024"/> - <path d="M355.72 899.49l.116 30.199-30.333-.049-.11-30.174 30.321.024h.006zM325.21 908.11l30.54.024M329.02 929.68l-.103-21.342M352.14 929.69l-.103-21.329M366.79 886.63l-17.081-12.474-19.193-.024-16.947 12.449 53.222.048M331.99 863.8l.03 7.61 16.144.011-.03-7.609-16.144-.012" stroke="#000" stroke-width="1.164" fill="none" transform="matrix(1.0075 0 0 1.0074 -228.58 -679.5)"/> - <path d="M336.37 865.69l.024 3.792h7.415l-.025-3.792h-7.414M340.04 855.14l8.979 6.348-17.891-.023 8.912-6.325" stroke="#000" stroke-width="1.164" fill="none" transform="matrix(1.0075 0 0 1.0074 -228.58 -679.5)"/> - <path fill="#fff" d="M150.583 177.636c2.57-.061 3.232 10.585 3.238 15.859 2.208.62 7.102 3.698 9.267 6.482l-24.827-.037c2.134-2.747 6.992-5.838 9.181-6.457 0-5.28.54-15.92 3.14-15.858"/> - <path d="M376.34 850.84c2.55-.06 3.208 10.507 3.214 15.742 2.191.615 7.05 3.671 9.198 6.434l-24.642-.036c2.118-2.727 6.94-5.795 9.113-6.41 0-5.241.536-15.803 3.117-15.742M326.81 900.33h2.21l-.646 1.186s1.066 1.37.019 2.94l.578 1.09h-2.13l.578-1.035s-1.09-1.82.048-2.995l-.657-1.186M331.31 900.33h2.21l-.64 1.186s1.066 1.334.007 2.94l.572 1.09h-2.125l.572-1.035s-1.065-1.82.055-2.995l-.651-1.186M336.23 900.33h2.204l-.658 1.186s1.078 1.37.018 2.94l.579 1.115-2.113-.024.567-1.036s-1.078-1.807.042-2.995l-.645-1.186h.006zM341.77 900.35h2.222l-.651 1.2s1.065 1.345.006 2.921l.596 1.108H341.8l.573-1.035s-1.066-1.832.073-2.995l-.67-1.199h-.006zM346.7 900.35h2.204l-.652 1.2s1.072 1.345.012 2.915l.585 1.114h-2.125l.554-1.035s-1.071-1.82.085-2.995l-.663-1.199M351.6 900.36l2.204-.012-.652 1.199s1.09 1.346.03 2.922l.555 1.108h-2.131l.572-1.035s-1.065-1.82.073-2.995l-.651-1.187" stroke="#000" stroke-width="1.164" fill="none" transform="matrix(1.0075 0 0 1.0074 -228.58 -679.5)"/> - <path fill="#ff0" d="M114.675 296.066c11.444.037 25.52-2.3 32.112-5.708l14.48-1.283.288 17.668c-12.266 6.763-40.588 8.217-46.82 8.168-6.236.049-34.908-1.429-47.23-8.217l.16-17.68 14.51 1.306c6.594 3.392 21.098 5.746 32.53 5.746h-.03"/> - <path d="M340.7 968.4c11.359.036 25.329-2.283 31.873-5.667l14.372-1.273.286 17.538c-12.175 6.714-40.286 8.157-46.47 8.108-6.192.049-34.65-1.418-46.88-8.156l.158-17.55 14.403 1.296c6.544 3.367 20.94 5.704 32.287 5.704h-.03" stroke="#000" stroke-width=".271" fill="none" transform="matrix(1.0075 0 0 1.0074 -228.58 -679.5)"/> - <path fill="#ff0" d="M30.227 220.703l12.757 4.06-3.858 20.654-12.076 1.876s-2.036-10.861 3.177-26.603"/> - <path d="M256.88 893.59l12.662 4.03-3.829 20.503-11.986 1.862s-2.021-10.781 3.153-26.407v.012z" stroke="#000" stroke-width=".271" fill="none" transform="matrix(1.0075 0 0 1.0074 -228.58 -679.5)"/> - <path fill="#7e7e7e" d="M39.123 245.192l-12.07 2.104 7.636-10.86 4.434 8.756"/> - <path d="M265.71 917.9l-11.98 2.088 7.579-10.781 4.401 8.693" stroke="#000" stroke-width=".271" fill="none" transform="matrix(1.0075 0 0 1.0074 -228.58 -679.5)"/> - <path fill="#ff0" d="M22.6 235.582l12.296.888c.276 10.42 1.54 50.182 49.021 52.34l-1.478 14.467c-57.797.6-62.189-48.771-59.84-67.695"/> - <path d="M249.31 908.36l12.205.882c.274 10.343 1.528 49.813 48.656 51.956l-1.467 14.36c-57.367.596-61.726-48.413-59.394-67.198zM294.11 978.5l14.384-3.141" stroke="#000" stroke-width=".271" fill="none" transform="matrix(1.0075 0 0 1.0074 -228.58 -679.5)"/> - <path fill="#ff0" d="M198.116 220.854l-12.707 4.023 4.03 20.623 12.1 1.943s1.943-10.853-3.423-26.601"/> - <path d="M423.52 893.74l-12.613 3.993 4 20.472 12.01 1.93s1.93-10.775-3.397-26.407v.012z" stroke="#000" stroke-width=".271" fill="none" transform="matrix(1.0075 0 0 1.0074 -228.58 -679.5)"/> - <path fill="#7e7e7e" d="M189.432 245.283l12.1 2.171-7.74-10.866-4.36 8.695"/> - <path d="M414.9 917.99l12.01 2.155-7.682-10.786-4.328 8.631" stroke="#000" stroke-width=".271" fill="none" transform="matrix(1.0075 0 0 1.0074 -228.58 -679.5)"/> - <path fill="#ff0" d="M205.884 235.743l-12.314.84c-.178 10.407-1.086 50.187-48.568 52.297l1.613 14.454c57.785.668 61.76-48.68 59.27-67.597"/> - <path d="M431.23 908.52l-12.223.835c-.177 10.33-1.077 49.818-48.206 51.912l1.601 14.348c57.355.662 61.3-48.322 58.828-67.101v.005zM387.04 978.57l-14.42-3.15" stroke="#000" stroke-width=".271" fill="none" transform="matrix(1.0075 0 0 1.0074 -228.58 -679.5)"/> - <path fill="#009fc5" d="M106.988 304.77c-.325.209-.767.264-1.276.24l-2.293-.117.196-2.863 2.275.122c.448.03.804.117 1.024.251.46.24.663.681.62 1.294-.03.527-.215.871-.552 1.073m-3.852 4.508l.227-3.49 2.674.185c.865.067 1.509-.16 1.944-.602.454-.43.687-.993.718-1.63.055-.743-.135-1.35-.577-1.798-.423-.43-1.024-.656-1.778-.73l-3.821-.238-.527 8.217 1.134.074M111.451 302.403l2.797.03c.405.037.724.086.957.197.429.202.631.607.631 1.195 0 .553-.16.92-.472 1.142-.3.201-.736.293-1.257.293l-2.686-.03.024-2.827m-.043 7.279l.025-3.508 2.625.037c.466 0 .81.037 1.048.153.387.178.577.553.595 1.067l.068 1.38c.018.331.024.534.043.668.036.098.055.203.104.277h1.41l-.024-.179c-.16-.085-.288-.25-.344-.502-.049-.16-.073-.399-.085-.7l-.025-1.097c-.018-.497-.104-.84-.294-1.03a1.47 1.47 0 0 0-.742-.528c.392-.208.687-.447.901-.742.203-.325.307-.736.307-1.238 0-.944-.387-1.589-1.172-1.938-.423-.19-.962-.289-1.6-.3l-3.944-.038-.03 8.242h1.134M120.156 307.964c-.503-.613-.773-1.38-.834-2.287-.055-1.141.166-2.012.687-2.6.527-.639 1.208-.945 2.097-.994.896-.049 1.632.24 2.178.803.558.552.877 1.319.932 2.276.03.919-.129 1.735-.552 2.452-.417.73-1.11 1.141-2.134 1.165-1.068.056-1.865-.195-2.374-.815m-1.35-5.188c-.527.815-.741 1.76-.686 2.9.08 1.233.46 2.251 1.177 3.018.798.766 1.853 1.152 3.153 1.079 1.392-.062 2.44-.59 3.152-1.557.577-.877.853-1.896.791-3.153-.08-1.122-.404-2.036-1.012-2.717-.766-.913-1.889-1.318-3.41-1.256-1.435.091-2.49.618-3.17 1.686M157.534 290.918c.791-.135 1.478-.097 2.104.117.92.288 1.54.97 1.926 2.011l-1.135.16c-.245-.564-.595-.95-1.067-1.165-.46-.202-1.037-.252-1.699-.153a2.645 2.645 0 0 0-1.828 1.122c-.429.662-.558 1.545-.368 2.673.16.933.503 1.723 1.068 2.25.52.54 1.288.73 2.287.59.748-.123 1.35-.423 1.773-.939.441-.49.57-1.232.423-2.189l-2.643.405-.135-.907 3.68-.565.717 4.36-.73.11-.454-1.005c-.306.454-.613.804-.883 1.005-.454.357-1.067.584-1.834.694-.993.153-1.9-.025-2.723-.552-.901-.669-1.484-1.662-1.705-3.042-.239-1.355-.024-2.514.601-3.428.595-.883 1.46-1.398 2.625-1.564M165.856 290.284l2.637-.957c.362-.134.675-.178.945-.147.484.037.84.325 1.043.901.19.49.19.92-.025 1.221-.227.312-.583.54-1.098.73l-2.477.889-1.025-2.637m2.638 6.813l-1.288-3.305 2.453-.884c.46-.147.779-.227 1.018-.202.435.055.767.32.987.822l.558 1.257c.123.313.221.503.3.59.038.11.117.177.179.25l1.33-.49-.073-.178c-.196 0-.386-.11-.527-.326-.105-.152-.203-.373-.344-.63l-.435-1.031c-.197-.448-.399-.723-.632-.89a2.104 2.104 0 0 0-.877-.238c.27-.314.466-.626.54-.994.08-.374.043-.79-.135-1.257-.338-.877-.957-1.355-1.828-1.416-.46-.037-.987.06-1.594.275l-3.705 1.319 2.993 7.75 1.086-.398M178.138 293.014l-4.704-6.863 5.164-3.293.57.828-4.232 2.704 1.448 2.097 3.906-2.514.534.803-3.907 2.515 1.595 2.312 4.305-2.754.57.81-5.256 3.355M182.258 280.875l1.35-1.484c.625-.663 1.287-.963 2.011-.877.724.061 1.46.441 2.245 1.128.215.166.405.38.6.62.344.447.547.84.676 1.232.11.491.085.939-.086 1.368-.105.214-.289.466-.565.767l-1.355 1.472-4.876-4.238m7.127 3.231c.957-1.054 1.165-2.189.607-3.47a5.86 5.86 0 0 0-1.509-1.957c-.864-.767-1.766-1.159-2.717-1.232-1.054-.08-1.95.3-2.729 1.152l-2.3 2.465 6.342 5.532 2.3-2.477M194.298 277.701L187 273.415l.595-.944 7.31 4.262-.6.98M197.16 272.725l-7.882-3.153 2.325-5.544.957.368-1.896 4.569 2.374.933 1.772-4.208.908.375-1.754 4.2 2.656 1.08 1.944-4.624.956.361-2.367 5.643M200.776 263.044l-8.292-1.834.276-1.282 7.66-2.588-6.727-1.484.245-1.005 8.292 1.784-.264 1.244-7.672 2.644 6.728 1.454-.24 1.067M200.121 252.516l.105-1.042c.478.013.883-.062 1.19-.226.6-.326.95-.945 1.042-1.86.037-.428.018-.803-.08-1.158-.178-.686-.564-1.067-1.183-1.129-.46-.049-.792.062-1.03.314-.215.288-.442.704-.614 1.294l-.38 1.085c-.246.71-.473 1.201-.718 1.477-.392.516-.944.694-1.65.645-.754-.08-1.367-.38-1.803-.957-.448-.527-.631-1.281-.521-2.214.073-.852.356-1.57.859-2.146.466-.527 1.19-.78 2.115-.681l-.085 1.042c-.454 0-.816.08-1.08.264-.478.264-.742.822-.822 1.637-.067.675.025 1.129.282 1.473.258.288.583.471.963.502.405.037.724-.092.945-.404.16-.215.35-.682.607-1.436l.374-1.14c.184-.528.405-.932.662-1.22.46-.479 1.061-.681 1.816-.626.92.098 1.576.479 1.913 1.178.331.705.46 1.484.38 2.367-.104.999-.429 1.784-1.03 2.312-.6.539-1.35.723-2.257.65M28.232 252.013l.19 1.03c-.46.091-.828.276-1.098.515-.484.453-.65 1.134-.484 2.06.073.392.214.779.392 1.086.368.625.846.876 1.454.778.447-.08.742-.25.883-.57.135-.313.233-.791.263-1.404l.056-1.16c.036-.717.116-1.28.276-1.594.251-.564.723-.914 1.429-1.03.754-.135 1.416.037 1.987.466.576.399.957 1.092 1.098 2.011.177.841.098 1.595-.233 2.275-.32.663-.933 1.067-1.871 1.24l-.184-1.043c.435-.16.76-.313.975-.527.368-.412.479-1.006.337-1.821-.11-.663-.337-1.093-.68-1.307-.338-.252-.675-.35-1.043-.288-.41.062-.68.288-.81.656-.08.245-.14.754-.196 1.533l-.055 1.202c-.03.564-.116 1.03-.307 1.35-.3.588-.81.95-1.551 1.066-.939.16-1.662-.055-2.177-.656-.528-.589-.853-1.294-1.018-2.171-.184-1.043-.05-1.852.368-2.502.423-.668 1.091-1.054 1.999-1.183M27.708 262.882l8.108-2.44 1.889 5.708-.988.313-1.545-4.691-2.466.742 1.43 4.335-.945.301-1.417-4.347-2.747.82 1.57 4.796-.97.277-1.919-5.814M31.305 272.785l7.457-3.955.798 1.392-5.128 5.42 7.489-1.28.773 1.38-7.44 3.93-.527-.914 4.39-2.311c.16-.093.406-.228.761-.417.35-.16.743-.375 1.135-.577l-7.458 1.27-.545-.97 5.09-5.402-.245.123c-.16.091-.436.227-.81.44a6.133 6.133 0 0 1-.822.442l-4.379 2.349-.54-.931M45.198 283.766c-.374-.085-.742-.3-1.104-.675l-1.576-1.625 2.122-1.944 1.588 1.62c.307.3.503.594.608.846.147.484 0 .926-.448 1.342-.405.374-.81.528-1.19.436m-5.992.754l2.6-2.385 1.847 1.87c.595.607 1.202.883 1.84.871a2.595 2.595 0 0 0 1.698-.742c.552-.491.816-1.067.816-1.686-.006-.602-.282-1.165-.791-1.693l-2.65-2.705-6.17 5.667.798.803M46.649 291.14l4.47-7.01 5.287 3.214-.551.835-4.343-2.6-1.343 2.121 3.993 2.422-.515.804-3.999-2.41-1.521 2.373 4.397 2.643-.527.828-5.348-3.22M59.877 289.79l2.687.853c.38.116.656.263.84.43.343.324.435.79.233 1.354-.166.49-.417.81-.81.945-.35.06-.79.06-1.306-.099l-2.533-.809.89-2.674m-2.319 6.887l1.116-3.342 2.503.815c.447.117.772.277.932.442.306.276.398.687.245 1.196l-.374 1.33c-.086.325-.129.54-.166.638 0 .105 0 .215.019.288l1.318.43.08-.19c-.141-.111-.22-.313-.215-.564.031-.154.074-.399.16-.682l.319-1.067c.129-.466.178-.815.061-1.066a1.683 1.683 0 0 0-.54-.73c.418-.074.78-.203 1.086-.43.288-.251.534-.6.68-1.09.301-.89.136-1.632-.527-2.197-.33-.293-.803-.545-1.423-.778l-3.753-1.159-2.625 7.818 1.098.338"/> - <path fill="#bc715f" d="M68.955 154.385c.969-2.337 9.948-8.708 39.41-5.918 0 0 4.98 3.042 7.906 2.65 1.668-.215-.982.103-3.159-1.706-2.22-1.808-2.692-5.518 2.38-5.42 5.047.129 23.943 1.196 24.299 2.894.33 1.717-9.991 2.434-13.83 2.336-3.858-.103-3.41 1.847.43 1.7 11.995-.43 25.089-4.656 38.919 5.126 1.65 1.19-4.17 1.38-8.672-.534 0 0-12.2.632-17.473-.232 0 0-4.054 3.298-9.335 2.974.687 1.71-1.95 8.095-18.552 3.292-2.741.841-12.732 2.515-11.64-.453-2.632 0-7.244.847-7.93-.65-.663-1.472 8.12-3.698 9.66-5.292 0 0-18.578.178-22.098-1.104 0 0-10.96 2.459-10.316.325"/> - <path fill="#008737" d="M74.91 180.396c.398-.539.557-1.508 1.404-1.483 1.84.49 3.09 3.857 5.354 1.674.803-.178 1.11.914 1.772 1.043.423 1.87 1.926-.38 3.048-.252 2.398-1.067 5.367-1.319 8.206-.791.086 1.833-1.349 3.857-3.152 4.9.037 1.846 1.711 3.03 1.68 4.887-.288.693-.049 1.784-1.098 2.011-1.33-.239-2.643-.38-3.747-1.122-.135-.135-.245-.399-.527-.313-.135.62.834 1.233 1.214 1.865-.668 1.14-1.778.098-2.71.11-.277.656-.013 1.484-.688 1.907-1.177-.037-1.416-1.318-2.14-1.956-.742.803.521 1.282.7 1.92-.455 2.415-.393 4.776-2.81 6.359l-1.619.803c-.442-1.214-.166-3.054-.46-4.323-.957 1.557-1.705 2.92-3.11 4.237-1.643-.54-2.6-2.477-2.962-4.084-.686-1.87-.294-4.109 1.184-5.464-.503-.981-2.226-.754-2.471-2.152-2.583-1.68-4.011 2.944-5.68.54-.54-2.245.105-5.036 1.73-6.71-.362-.919-1.564-.68-2.276-1.207-1.625-1.38-3.968-2.84-3.851-5.33 4.446-1.68 9.764-.447 12.996 2.931"/> - <path fill="#ff0" d="M77.216 180.145c-.104 2.035 1.374.551 2.472 1.784-.859-.338-1.484 1.484-2.324.441l-.528.504c.307.698.902.79.282 1.557-.92.35-1.104-.803-1.533-1.258-.074-.201.141-.582-.196-.717-.521.441-1.067.6-1.785.528-.196-.393-.576-.908-.19-1.208.705-.951 1.797.343 2.33-.325.086-.589-.429-1.306.24-1.712.46.08 1.048-.17 1.239.406M82.717 181.817c.056.393-.202.944.313 1.22.669-.362 1.38-.086 1.766.577-.006.355.105.821-.361.993l-1.043-.195c.074-.203-.258-.332-.386-.528-.46-.14-.73.233-1.074.46.258.392.853.607.712 1.11-.613.613-.914-.527-1.589-.24-.46-.177.166-1.134-.558-1.422-.858 0-.288 1.41-1.386.859-.392-.442-.779-1.037-.355-1.533.46-.308 1.238-.228 1.63.17.67-.74.737-3.605 2.338-1.471M75.866 184.769c.448.644-.098 1.52.473 2.238.895-1.674 1.76.362 2.827.202.325.399.11.951.172 1.405-1.319.35-2.907.766-4.073-.289l-.325.374c.693.645 1.35 1.374.798 2.453-.988.215-2.515.24-3.012-.778-.257-.84.601-1.447-.306-2.122-.657.815-.626 1.908-1.994 1.165-.846-.466-1.097-1.428-.674-2.238.883-1.392 2.428.043 3.385-.638.135-1.196-.307-2.238.791-2.9.939-.166 1.374.539 1.944 1.128"/> - <path fill="#fff" d="M79.604 185.504c-.441 2.036-1.975-.104-2.692-.19.957-1.698 1.558.552 2.692.19M84.38 187.72c-1.067.3-.902-1.03-1.43-1.552l.412-.374c.386.466.68 1.307 1.018 1.926"/> - <path fill="#ff0" d="M82.939 187.307c.307.705-.693 1.27.16 1.785.27-.227.6-.54.742-.669.73.216 1.576.344 2.085 1.067.546 1.497-.97 1.46-1.828 1.877l-.852-.037c.202-.417-.368-.595-.51-.882-.392-.098-.717.024-.938.355.19.95 1.35 1.692.154 2.539-1.012-.067-2.582.325-2.49-1.074-.38-.79 1.03-2.011-.479-2.06-.497 1.068-1.042 2.097-2.336 1.086l.159-1.52c1.239.035 2.705.25 3.263-1.135.355-1.006-.62-1.932.251-2.73 1.264-.288 1.975.559 2.619 1.398"/> - <path d="M82.032 189.594c.32.755-.54.804-.944 1.178-.546.043-.926-.172-1.257-.54-.246-.914.435-1.006.956-1.367.607-.252.859.453 1.245.73"/> - <path fill="#fff" d="M81.287 190.088c-.135.178-.325.123-.528.171l-.19-.913c.405.036.932.165.718.742"/> - </g> -</svg> diff --git a/img/flags/1x1/sy.svg b/img/flags/1x1/sy.svg deleted file mode 100644 index b8d910d..0000000 --- a/img/flags/1x1/sy.svg +++ /dev/null @@ -1,6 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" height="512" width="512" viewBox="0 0 512 512"> - <rect y="170.667" width="512" height="170.667" ry="0" rx="0" fill="#fff" fill-rule="evenodd"/> - <rect y="341.333" width="512" height="170.667" ry="0" rx="0" fill-rule="evenodd"/> - <path d="M0 0h512v170.667H0z" fill="red" fill-rule="evenodd"/> - <path d="M151.36 299.73l-30.743-22.258-30.592 22.476 11.378-36.525-30.536-22.554 37.779-.314 11.718-36.414 11.969 36.33 37.779.047-30.38 22.767 11.629 36.444zm285.48 0l-30.743-22.258-30.592 22.476 11.378-36.525-30.536-22.554 37.779-.314 11.718-36.414 11.969 36.33 37.779.047-30.38 22.767 11.629 36.444z" fill="#090" fill-rule="evenodd"/> -</svg> diff --git a/img/flags/1x1/sz.svg b/img/flags/1x1/sz.svg deleted file mode 100644 index d2529e9..0000000 --- a/img/flags/1x1/sz.svg +++ /dev/null @@ -1,49 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" height="512" width="512" viewBox="0 0 512 512"> - <defs> - <clipPath id="a"> - <path fill-opacity=".67" d="M124.02 0h496.06v496.06H124.02z"/> - </clipPath> - </defs> - <g clip-path="url(#a)" transform="translate(-128) scale(1.0321)"> - <path fill-rule="evenodd" fill="#3e5eb9" d="M0 0h744.09v496.06H0z"/> - <path fill-rule="evenodd" fill="#ffd900" d="M0 88.583h744.09v318.9H0z"/> - <path fill-rule="evenodd" fill="#b10c0c" d="M0 124.02h744.09v248.03H0z"/> - <rect fill-rule="evenodd" rx="5.238" ry="5.315" height="10.63" width="602.36" stroke="#000" y="242.72" x="74.178" stroke-width="1.339" fill="#ffd900"/> - <g stroke="#000" transform="translate(-609.45 -24.803)"> - <path d="M-106.3 265.75l-88.583 35.433 88.583 35.433 88.582-35.433-88.582-35.433z" fill-rule="evenodd" transform="matrix(.34 0 0 .3 1256.8 136.42)" stroke-width="3.914" fill="#fff"/> - <rect fill-rule="evenodd" rx="3.851" ry="3.543" height="7.087" width="442.91" y="223.23" x="761.81" stroke-width="1.25" fill="#ffd900"/> - <path d="M1224.4 279.92c-3.54 0-7.09-3.544-7.09-7.087s3.55-7.087 7.09-7.087" transform="matrix(-.50001 0 0 .5 1806.3 90.354)" stroke-width="2.5" fill="none"/> - <path d="M1224.4 279.92c-3.54 0-7.09-3.544-7.09-7.087s3.55-7.087 7.09-7.087" transform="matrix(-.50001 0 0 .5 1802.8 90.354)" stroke-width="2.5" fill="none"/> - <path d="M1224.4 279.92c-3.54 0-7.09-3.544-7.09-7.087s3.55-7.087 7.09-7.087" transform="matrix(-.50001 0 0 .5 1799.2 90.355)" stroke-width="2.5" fill="none"/> - </g> - <g stroke="#000" transform="translate(-637.8 -3.543)"> - <path d="M-106.3 265.75l-88.583 35.433 88.583 35.433 88.582-35.433-88.582-35.433z" fill-rule="evenodd" transform="matrix(.34 0 0 .3 1256.8 136.42)" stroke-width="3.914" fill="#fff"/> - <rect fill-rule="evenodd" rx="3.851" ry="3.543" height="7.087" width="442.91" y="223.23" x="761.81" stroke-width="1.25" fill="#ffd900"/> - <path d="M1224.4 279.92c-3.54 0-7.09-3.544-7.09-7.087s3.55-7.087 7.09-7.087" transform="matrix(-.50001 0 0 .5 1806.3 90.354)" stroke-width="2.5" fill="none"/> - <path d="M1224.4 279.92c-3.54 0-7.09-3.544-7.09-7.087s3.55-7.087 7.09-7.087" transform="matrix(-.50001 0 0 .5 1802.8 90.354)" stroke-width="2.5" fill="none"/> - <path d="M1224.4 279.92c-3.54 0-7.09-3.544-7.09-7.087s3.55-7.087 7.09-7.087" transform="matrix(-.50001 0 0 .5 1799.2 90.355)" stroke-width="2.5" fill="none"/> - </g> - <g stroke-width="1pt" fill-rule="evenodd"> - <path d="M338.07-.416c-5.571 12.442 4.275-4.138 28.299 16.69 4.452 3.87 8.342 14.09 8.342 21.178-1.13-.975-1.969-3.145-3.214-4.553-1.743 2.253 1.664 12.577 2.162 17.457-3.756-2.71-3.394-3.993-4.642-7.324.249 4.026-.645 15.116.849 19.386-2.96-1.09-2.764-4.163-4.31-4.78 1.052 4.834-.916 10.094-.394 15.528-1.73-2.208-3.573-3.937-4.376-4.829-.135 2.588-3.327 9.388-3.4 11.835-1.468-1.143-1.866-2.926-2.111-4.126-1.824 2.955-8.308 13.872-8.724 17.202-4.996-5.69-17.793-19.545-19.459-26.9-1.473 4.176-3.604 5.584-7.817 8.632-1.665-11.656-7.891-24.756-4.561-34.747-2.359 1.804-4.302 3.608-6.66 5.828 2.234-16.88 13.628-36.674 30.016-46.477z" transform="matrix(.96345 0 0 .74716 308.454 244.121)" stroke="#000" fill="#3d5da7"/> - <path d="M614.141 289.852c2.229-4.454 4.281-5.868 5.721-8.735 2.544-5.041 2.907-9.053 5.123-8.465 2.217.588 2.214 2.653-.657 7.61-2.871 4.957-4.236 6.016-10.187 9.59zM629.216 300.461c-.286-3.391.698-4.807.518-6.992-.306-3.843-1.878-6.48.166-6.669 2.043-.187 2.999 1.124 3.005 4.997.006 3.873-.593 4.89-3.689 8.664zM640.653 307.112c-.893-4.735-.225-6.835-.796-9.885-.995-5.368-2.962-8.9-1.069-9.392 1.894-.49 3.037 1.245 3.754 6.688.718 5.443.339 6.94-1.889 12.589zM652.544 273.934c-2.793-2.12-4.423-2.262-6.224-3.625-3.173-2.39-4.778-4.948-5.798-3.677-1.02 1.27-.296 2.658 3.028 4.863 3.324 2.205 4.45 2.38 8.994 2.439zM650.575 289.656c-1.472-3.057-3.02-3.832-3.973-5.799-1.683-3.456-1.686-6.446-3.511-5.68-1.826.767-1.973 2.332-.02 5.677 1.952 3.345 2.974 3.95 7.504 5.802z" fill="#a70000"/> - </g> - <g stroke-width="1pt" fill-rule="evenodd"> - <path d="M329.6 20.703c-.272-2.662.253-2.98-1.258-4.989 2.2.997 2.284 3.649 4.959 1.767.983-.551 1.411-.569.217-3.526 2.79.14 11.927 3.535 13.39 3.614 3.842.191 10.855-4.373 15.723 1.24 4.672 5.117 3.112 10.428 3.112 17.515-1.877-.975-.973-1.455-2.965-3.989 1.494 6.195-.08 17.364-.08 23.934-.767-1.584-.654-.896-1.404-2.537-1.992 5.997-4.38 7.231-4.38 14.318-.719-2.78-.025-2.191-.825-3.653-1.936 4.552-14.925 8.443-9.92 13.033-4.518-2.87-6.499-2.57-8.548-5.15-.882.617-1.584 1.785-2.404 3.386-7.943-3.96-5.103-12.5-11.326-18.206-1.077 2.393-.586 2.045-1.75 5.939-1.26-5.408-1.604-8.844-3.021-12.82-1.223 2.204-1.113 1.36-3.333 4.69-.918-6.587-2.413-8.142-1.822-12.501-2.359 1.804-.815 1.073-3.173 3.293 2.234-16.88 11.884-29.352 18.808-25.358z" transform="matrix(1.1018 0 0 1.01684 -262.973 231.719)" stroke="#000" fill="#3d5da7"/> - <path d="M89.418 280.784c2.255-5.526 4.287-7.262 5.744-10.819 2.573-6.253 2.992-11.252 5.154-10.49 2.162.763 2.127 3.338-.765 9.483-2.892 6.144-4.246 7.446-10.133 11.826zM97.957 294.61c.904-4.954 2.33-6.759 2.917-9.95 1.04-5.61.46-9.787 2.47-9.568 2.008.22 2.463 2.338 1.126 7.92-1.337 5.58-2.26 6.902-6.513 11.599zM108.168 304.223c.255-4.804 1.38-6.679 1.549-9.772.305-5.442-.743-9.338 1.173-9.36 1.916-.022 2.599 1.935 2.012 7.383-.587 5.447-1.297 6.807-4.734 11.749zM130.098 272.812c-4.193-4.177-6.728-4.957-9.432-7.643-4.765-4.719-7.068-9.148-8.764-7.578-1.696 1.57-.676 3.923 4.34 8.414 5.017 4.49 6.762 5.143 13.856 6.807zM127.547 288.96c-2.731-4.195-4.735-5.282-6.498-7.98-3.11-4.743-4.178-8.819-5.941-7.81-1.764 1.01-1.37 3.14 2 7.737 3.37 4.596 4.726 5.441 10.44 8.052z" fill="#a70000"/> - </g> - <g fill-rule="evenodd"> - <path d="M637.8 230.32c-53.15 59.05-124.02 177.16-265.75 177.16-124.02 0-212.6-118.11-265.75-177.16 53.15-59.06 141.73-177.17 265.75-177.17 141.73 0 212.6 118.11 265.75 177.17z" transform="matrix(.66667 0 0 .6 124.02 109.84)" stroke="#000" stroke-width="1.976" fill="#fff"/> - <path d="M359.688 178.708c9.427 10.603 1.555 14.877 11.533 15.573 10.523.773 4.558 11.203 13.41 11.566 6.188.27-.618 24.99 5.339 33.148 6.068 8.504 11.15 2.492 11.257 8.636.105 6.354-16.516 5.713-16.807 25.287-.487 11.28-14.026 12.003-14.672 19.26-.803 6.828 26.672 10.66 26.306 16.772-.377 6.093-29.667 5.139-30.943 12.088-.654 6.24 40.24 11.356 43.528 29.407-6.102 1.996-23.463 3.875-36.585 3.885-82.674.066-141.734-70.866-177.168-106.296 35.434-35.436 94.487-106.302 177.168-106.302 0 0-24.542 22.424-12.366 36.976z"/> - <g stroke-width="1pt" fill="#fff"> - <path d="M261.03 210.24h8.59v28.346h-8.59zM261.03 257.484h8.59v28.346h-8.59zM278.208 210.24h8.59v28.346h-8.59zM278.208 257.484h8.59v28.346h-8.59zM295.386 210.24h8.59v28.346h-8.59zM295.386 257.484h8.59v28.346h-8.59zM312.569 210.24h8.59v28.346h-8.59zM312.569 257.484h8.59v28.346h-8.59zM329.747 210.24h8.59v28.346h-8.59zM329.747 257.484h8.59v28.346h-8.59zM346.925 210.24h8.59v28.346h-8.59zM346.925 257.484h8.59v28.346h-8.59z"/> - </g> - <g stroke-width="1pt"> - <path d="M390.95 210.24h8.59v28.346h-8.59zM390.95 257.484h8.59v28.346h-8.59zM408.128 210.24h8.59v28.346h-8.59zM408.128 257.484h8.59v28.346h-8.59zM425.306 210.24h8.59v28.346h-8.59zM425.306 257.484h8.59v28.346h-8.59zM442.489 210.24h8.59v28.346h-8.59zM442.489 257.484h8.59v28.346h-8.59zM459.667 210.24h8.59v28.346h-8.59zM459.667 257.484h8.59v28.346h-8.59zM476.845 210.24h8.59v28.346h-8.59zM476.845 257.484h8.59v28.346h-8.59z"/> - </g> - </g> - <g stroke-width="1pt" fill-rule="evenodd"> - <path d="M338.07-.416c-5.571 12.442 9.754-4.138 33.778 16.69 4.452 3.87 10.833 19.16 10.833 26.246-5.115-1.257-14.173-7.087-14.173-7.087s10.63 12.295 10.63 26.468c-3.756-2.71-5.635-2.304-6.883-5.634 0 4.588 3.34 7.512 3.34 14.599-2.711-2.498-5.006-4.163-7.3-5.625 3.543 7.086-6.457 20.834-1.452 25.423-8.752-1.462-17.707-7.92-21.25-15.006-1.878 1.462-2.082 3.756-2.155 6.203.276.264-13.322-11.656-12.073-16.235-1.824 2.955-2.081 4.579-2.497 7.909-4.996-5.69-9.574-11.378-11.24-18.733-2.22 3.33-2.359 3.33-4.579 6.66-1.665-11.655-1.665-11.24 1.665-21.23-2.359 1.804-4.302 3.608-6.66 5.828 2.234-16.88 13.628-36.674 30.016-46.477z" transform="matrix(.8811 0 0 .76298 16.874 160.923)" stroke="#000" fill="#3d5da7"/> - <path d="M302.65 206.991c.785-6.542 2.496-9.006 3.006-13.219.912-7.41-.17-12.824 2.456-12.687 2.626.137 3.382 2.87 2.084 10.263s-2.392 9.189-7.546 15.643zM316.355 218.969c-.532-5.52.487-7.87.15-11.424-.584-6.256-2.516-10.494-.228-10.883 2.289-.39 3.446 1.709 3.693 8.025.247 6.316-.365 7.999-3.615 14.282zM337.75 228.74c-2.327-4.775-4.326-6.2-5.828-9.274-2.654-5.402-3.207-9.814-5.253-9.014-2.047.799-1.934 3.081 1.021 8.37 2.955 5.288 4.291 6.366 10.06 9.918zM345.145 185.968c-5.925-3.12-8.969-3.159-12.788-5.163-6.724-3.514-10.638-7.484-12.027-5.3-1.39 2.186.464 4.359 7.397 7.554 6.932 3.195 9.062 3.346 17.418 2.909zM347.32 203.83c-4.315-3.59-6.867-4.118-9.649-6.426-4.902-4.052-7.342-8.03-8.98-6.418-1.637 1.613-.544 3.744 4.602 7.561 5.145 3.817 6.905 4.291 14.027 5.283z" fill="#a70000"/> - </g> - </g> -</svg> diff --git a/img/flags/1x1/tc.svg b/img/flags/1x1/tc.svg deleted file mode 100644 index 6d7332b..0000000 --- a/img/flags/1x1/tc.svg +++ /dev/null @@ -1,80 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" height="512" width="512" viewBox="0 0 512 512"> - <defs> - <clipPath id="a"> - <path fill-opacity=".67" d="M0 0h512v512H0z"/> - </clipPath> - </defs> - <g clip-path="url(#a)"> - <path fill="#006" d="M1024 512V0H0v512h1024z"/> - <path fill-rule="evenodd" fill="#006" d="M0 0h512v256H0z"/> - <g stroke-width="1pt"> - <path fill="#fff" d="M0 0v28.622L454.757 256h57.241v-28.62L57.241 0H0zm511.998 0v28.62L57.241 256H0v-28.62L454.757 0h57.241z"/> - <path fill="#fff" d="M213.332 0v255.999h85.333V0h-85.333zM0 85.333v85.333h511.998V85.333H0z"/> - <path fill="#c00" d="M0 102.4v51.2h511.998v-51.2H0zM230.4 0v255.999h51.199V0h-51.2zM0 255.999l170.666-85.333h38.16L38.162 255.999H0zM0 0l170.666 85.333h-38.16L0 19.081V0zm303.171 85.333L473.837 0h38.161L341.332 85.333h-38.16zm208.827 170.666l-170.666-85.333h38.16l132.506 66.253v19.08z"/> - </g> - <g> - <path fill-opacity=".996" fill="#fff" d="M493.562 140.875v116.486c0 95.633-37.564 183.176-149 236.39-111.391-53.214-148.96-140.754-148.96-236.39V140.875h298.014z"/> - <path fill-opacity=".996" fill="#fdc300" d="M483.578 152.746v108.648c0 89.199-35.036 170.854-138.975 220.484-103.943-49.631-138.976-131.284-138.976-220.484V152.746h277.965z"/> - <g stroke="#000" stroke-width=".063"> - <path d="M205.96 52.847a2.085 2.085 0 0 0-1.265-.441c.117-1.295-.824-1.854-1.501-2.09-.676-.235-.912-.5-1.029-1.03-.118-.529-.471-.852-1.089-1.029-.618-.176-1.148-.794-1.383-1.088-.235-.295-.324-.236-.5.264-.177.5-.883 1.442-.236 1.472-.47.382-.735.823-.441 1.412-.324.265-.559.647-.118.794.442.147.559.265.589.383-.397 0-.5.794.441.97-.206.03-.294.677.089.677-.53 0-.972.795-1.648.795-.677 0-1.03.147-1.059.441-.03.294-.383.647-.559.794.5.06.823 0 1.088-.206s.706-.264 1.001-.029c.294.235.912.353 1.206.294-.647.442-1.118 1.03-1.177 1.589-.059.56-.441 1.206-.883 1.383-.441.176-1.029.647-1.235 1.206.559 1.383 1.352 1.725 2.147 2.09 1.413.646 2.295 1.117 2.884 1.764.588.648.824.177 1.706 1.295.883 1.118 1.707 3.236 2.589 3.59.883.353 2.001.117 2.648-1 .648-1.119 1.06-12.417-2.265-14.3z" fill="#ff9e3d" transform="matrix(5.698 0 0 5.6987 -893.676 -100.793)"/> - <path d="M207.46 48.139c-.824.883-1.884 1.765-1.707 3.354s.353 4.178-1.118 5.06c-1.471.884-2.177 3.12-.412 4.414 1.765 1.295 1.824 2.884 2.118 4.355.295 1.47 1.06 2.648 2.237 1.647 1.176.177 1.824-.294 1.824-1.235s.059-1.471.941-1.766c.883-.294 1.118-.588 1.53-1.383.412-.794.647-1.147.412-1.618-.235-.47-.324-1.441-.147-2.148.177-.706-.235-1.088-.471-1.53-.235-.44-.323-.823-.206-1.412.118-.588-.176-.97-.588-1.265-.412-.294-.589-.588-.5-1.06.088-.47-.295-.764-.736-1.117s-.765-.824-.765-1.53c0-.706-1.353-2.354-2.412-2.766z" fill="#ff927f" transform="matrix(5.698 0 0 5.6987 -893.676 -100.793)"/> - <path d="M207.79 67.352c1.971-.5 1.795-3.737 1.501-5.09-.295-1.353-1.051-3.292-.471-4.825.824-2.177-1.001-4.237-.53-5.06.471-.825.412-1.266.353-1.53-.058-.266-.5-.472-.529.087-.03.56-.177.765-.53 1.118s-.265 1.118 0 1.972c.265.853.824 2.148-.059 3.854-.882 1.706-.519 2.467-.176 3.266.529 1.236 1.795 5.531.441 6.208z" fill="#ff9ee1" transform="matrix(5.698 0 0 5.6987 -893.676 -100.793)"/> - <path d="M198.96 48.904c.221 0 .648-.088.648.206M198.52 50.316c.265-.191.736.03 1.206-.25M198.99 51.493c.353 0 .824-.015 1.265-.368M199.43 52.464c.324 0 .927-.206 1.074-.632M199.52 53.141c.632-.03 1.471.206 1.588-.015M199.55 55.23c.441-.412 1.486-.691 1.721-1.118M200.67 48.669c.735.235.431.69.794.971.648.5.059 1.06.589 1.206.529.147.52.237.382.824-.162.692.5.72.265 1.177M204.7 52.406c-.294 0-1.162.03-1.53.81M198.42 60.894c.339.059.508-.134.603-.324.103-.206.147-.353.456-.367.309-.015.78-.103.883-.339.103-.235.471-.015.78-.632.309-.618.515-1.354 1.338-1.619" fill="none" transform="matrix(5.698 0 0 5.6987 -893.676 -100.793)"/> - </g> - <g stroke="#000" stroke-width=".063"> - <path d="M221.76 73.75c.333.484-.012 1.007.553 1.216.662.245.084 1.116.865 1.422.692.273.005 1.105.753 1.479.669.334-.112 1.115.781 1.562.892.446-.168 1.45.502 1.84.669.391-.223 1.395.558 1.786.781.39-.335 1.171.39 1.729.725.558-.167 1.394.558 1.896s-.445 1.173.279 1.897c.558.558-.201 1.104.223 1.953.279.557-.279 2.789-1.841 2.566-.558.948-2.733 1.785-3.514 1.506-.781.558-3.291 1.339-4.575.111-1.282 1.228-3.793.447-4.574-.111-.781.279-2.956-.558-3.514-1.506-1.562.223-2.12-2.009-1.841-2.566.424-.849-.335-1.395.223-1.953.724-.724-.446-1.394.279-1.897s-.167-1.338.558-1.896c.725-.558-.391-1.339.39-1.73.781-.39-.111-1.394.558-1.785.67-.39-.39-1.394.502-1.84.893-.447.112-1.228.781-1.562.748-.374.061-1.206.753-1.479.781-.306.203-1.177.865-1.422.574-.212.208-.749.57-1.24 1.661.654 6.803 1.123 8.918.024z" fill="#00a728" transform="matrix(5.698 0 0 5.6987 -893.676 -100.793)"/> - <g fill-opacity=".996" fill="#fdc300"> - <path d="M213.51 76.668c.001.25-.005.5-.237.809-.502.67.223 1.004-.335 1.73-.557.724.112 1.17-.502 1.784-.613.614.112 1.172-.502 1.841-.613.67.112 1.116-.502 1.73-.613.613.112 1.283-.502 1.896-.613.614.112 1.395-.558 2.12-.669.725.112 1.283-.446 1.84-.558.559-.056 1.116-.446 1.507.669-.502.669-1.283 1.171-1.674.502-.39-.167-.948.112-1.227s.056-1.45.558-2.008.056-1.674.502-2.064.111-1.562.669-1.952 0-1.34.446-1.841c.447-.502 0-1.283.447-1.897.446-.614.02-1.17.334-1.673.14-.224.14-1.841-.209-.921zM215.12 77.365c-.39.725.279.892-.223 1.618s.279 1.283-.279 2.008.279 1.115-.223 1.84c-.502.726.223 1.116-.223 1.674-.447.558.334 1.116-.223 1.785-.558.67.223 1.172-.224 1.785-.446.614.168 1.283-.223 1.785-.39.502.279 1.228-.279 1.897s.112 1.116-.223 1.562c.67-.223.419-1.144.67-1.339.251-.195-.084-1.478.306-1.813.391-.334-.251-1.367.112-1.813.614-.753.084-1.255.446-1.84.363-.586-.138-1.338.14-1.73.474-.67-.21-1.273.139-1.757.502-.697-.097-1.272.251-1.73.53-.697-.056-1.394.168-1.757.223-.362.585-1.924-.112-2.175zM217.29 77.974c-.39.972.279 1.36.056 2.138-.223.778.279 1.361-.056 2.203-.334.843.447 1.49 0 2.592-.446 1.102.288 1.376 0 2.463-.334 1.263.558 1.933 0 2.825-.557.893.639 1.188.056 2.12-.279.446.028 1.59.474.223.447-1.366-.334-1.534.056-2.092.391-.558-.139-2.036.028-2.817.168-.78-.39-1.84-.028-2.677.363-.837-.558-1.73-.195-2.455.363-.725-.167-1.618.167-2.203.335-.586-.251-1.367-.111-1.702.139-.334-.14-1.57-.447-.618z" transform="matrix(5.698 0 0 5.6987 -893.676 -100.793)"/> - </g> - <path d="M221.47 74.408c0-6.303-.892-8.479-4.184-8.479-3.291 0-4.183 2.175-4.183 8.479h8.367z" fill="#ef072d" transform="matrix(5.698 0 0 5.6987 -893.676 -100.793)"/> - <g fill="none"> - <path d="M214.33 73.906c-.614.614.112 1.06-.502 1.785-.614.725-.056 1.116-.558 1.785s.223 1.004-.335 1.73c-.557.725.112 1.17-.502 1.784-.613.614.112 1.172-.502 1.841-.613.67.112 1.116-.502 1.73-.613.613.112 1.283-.502 1.896-.613.614.112 1.395-.558 2.12-.669.725.112 1.283-.446 1.84-.558.559-.056 1.117-.446 1.507-.391.39-.446.935-.279 1.172M215.5 74.129c-.557.725.279 1.06-.223 1.673-.502.614.223.837-.167 1.563s.279.892-.223 1.617.279 1.283-.279 2.008.279 1.116-.223 1.841c-.502.725.223 1.116-.223 1.674-.447.558.334 1.115-.223 1.785-.558.67.223 1.171-.224 1.785-.446.614.168 1.283-.223 1.785-.39.502.279 1.227-.279 1.897s.112 1.115-.223 1.562c-.335.446-.599 1.101-.279 1.283M217.29 74.799c-.278 1.166.391 2.203 0 3.175-.39.972.279 1.36.056 2.138-.223.778.279 1.361-.056 2.203-.334.843.447 1.49 0 2.592-.446 1.102.288 1.376 0 2.463-.334 1.263.558 1.933 0 2.825-.557.893.503 1.116.056 2.12-.446 1.004.279 1.395-.056 2.399M220.25 73.906c.614.614-.112 1.06.502 1.785.614.725.056 1.116.558 1.785s-.223 1.004.335 1.73c.557.725-.112 1.17.502 1.784.613.614-.112 1.172.502 1.841.613.67-.112 1.116.502 1.73.613.613-.112 1.283.502 1.896.613.614-.112 1.395.558 2.12.669.725-.112 1.283.446 1.84.558.559.056 1.117.446 1.507.391.39.447.935.279 1.172M219.08 74.129c.557.725-.279 1.06.223 1.673.502.614-.223.837.167 1.563.391.725-.279.892.223 1.617s-.279 1.283.279 2.008-.279 1.116.223 1.841c.502.725-.223 1.116.223 1.674.447.558-.334 1.115.224 1.785.557.67-.224 1.171.223 1.785.446.614-.168 1.283.223 1.785.39.502-.279 1.227.279 1.897s-.112 1.115.223 1.562c.335.446.6 1.101.279 1.283" transform="matrix(5.698 0 0 5.6987 -893.676 -100.793)"/> - </g> - <path d="M213.11 74.408c0-6.303.892-8.479 4.183-8.479-1.506 0-2.426 1.171-2.677 1.952s-.112.725.223.419.167.362-.111.725c-.279.362-.558 1.394-.168 1.06.391-.335.697.056.279.641s-.781 1.953-.363 1.479c.419-.475.502.306.252.697-.252.39-.224.725 0 .558.223-.168.195.641-.028.948h-1.59zM220.83 74.046c0-4.937-.613-6.415-1.84-6.917-.695-.285-.715-.223-.383.223s.281 1.088-.026.641c-.306-.446-.408-.53-.536-.334-.128.195.357 1.115.715 1.952.288.673.102 1.004-.332.335s-.434-.063-.053.502c.489.725.474 2.929.474 3.849l1.981-.251z" transform="matrix(5.698 0 0 5.6987 -893.676 -100.793)"/> - <path d="M217.29 75.329c1.311 0 2.746-.234 3.71-.608 1.144-.444 1.205-.834.809-1.332-.279-.351-.893-.14-1.478.117-.586.257-2.204.42-3.041.42-.836 0-2.454-.163-3.04-.42-.585-.258-1.199-.468-1.478-.117-.396.498-.335.888.809 1.332.963.374 2.399.608 3.709.608z" fill="#ef072d" transform="matrix(5.698 0 0 5.6987 -893.676 -100.793)"/> - </g> - <g fill-rule="evenodd" fill="#b95a1e"> - <path d="M779.41 912.6s-.12 103.6 0 179.24c.12 75.63 19.822 104.91 54.262 103.59 34.44-1.33 41.108-58.83 34.531-92.08-6.577-33.26-53.24-198.97-53.24-198.97l-35.553 8.222z" transform="matrix(.07727 -.0499 .04732 .08148 313.513 245.455)" stroke="#000" stroke-width="4.375"/> - <path d="M779.41 912.6s-.12 103.6 0 179.24c.12 75.63 19.822 104.91 54.262 103.59 34.44-1.33 41.108-58.83 34.531-92.08-6.577-33.26-53.24-198.97-53.24-198.97l-35.553 8.222z" transform="matrix(.08863 -.01984 .01882 .09346 329.497 211.744)" stroke="#000" stroke-width="4.375"/> - <path d="M779.41 912.6s-.12 103.6 0 179.24c.12 75.63 19.822 104.91 54.262 103.59 34.44-1.33 41.108-58.83 34.531-92.08-6.577-33.26-53.24-198.97-53.24-198.97l-35.553 8.222z" transform="matrix(.0906 0 0 .09555 343.068 194.68)" stroke="#000" stroke-width="4.375"/> - <path d="M779.53 255.12c159.57-1.394 177.16-35.432 177.16-35.432s35.43-70.866 17.716-88.584c-17.717-17.716-194.88-17.716-194.88-17.716v141.73z" transform="matrix(.05623 0 0 .09555 369.867 257.313)" stroke="#000" stroke-width="5.554"/> - <path d="M779.53 255.12c106.3 0 124.02-35.432 124.02-35.432s35.43-70.866 17.716-88.584c-17.717-17.716-141.73-17.716-141.73-17.716v141.73z" transform="matrix(.0906 0 0 .09555 343.068 250.539)" stroke="#000" stroke-width="4.375"/> - <path d="M779.53 255.12c88.583 0 141.73-35.433 141.73-35.433s35.43-70.866 17.716-88.584c-17.72-17.72-159.45-17.71-159.45-17.71v141.73z" transform="matrix(.0906 0 0 .09555 343.068 243.765)" stroke="#000" stroke-width="4.375"/> - <path d="M832.68 113.39s70.866-88.583 194.88-177.17c124.01-88.582 213.73-156.72 230.31-141.73 0 17.717-106.3 106.3-194.88 177.17C974.4 42.52 868.1 148.82 868.1 148.82l-35.433-35.433z" transform="matrix(.11244 0 0 .09555 325.48 194.877)" stroke="#000" stroke-width="3.927"/> - <path d="M832.68 113.39s70.05-52.025 204.38-124.02c132.23-63.918 318.89-53.15 318.89-35.433-17.71 17.716-177.16 17.716-283.46 70.866-101.48 50.729-204.39 124.01-204.39 124.01l-35.433-35.433z" transform="matrix(.11244 0 0 .09555 326.41 201.65)" stroke="#000" stroke-width="3.927"/> - <path d="M832.68 113.39s61.675-35.068 204.38-88.583c141.72-53.15 329.87-17.717 329.87 0-17.7 17.713-170.4 6.944-276.7 35.429-109.99 27.758-222.09 88.584-222.09 88.584l-35.433-35.433z" transform="matrix(.11244 0 0 .09555 326.496 213.312)" stroke="#000" stroke-width="3.927"/> - <path d="M832.68 113.39s71.079-70.976 222.47-88.583c152.3-17.72 276.3 88.583 276.3 106.29-17.7 17.72-159.5-77.972-265.7-64.286-112.67 13.654-197.69 82.006-197.69 82.006l-35.433-35.433z" transform="matrix(.11244 0 0 .09555 327.255 225.145)" stroke="#000" stroke-width="3.927"/> - <path d="M779.53 255.12c159.57-1.394 159.45-45.508 159.45-45.508s35.43-70.866 17.716-88.584c-17.717-17.716-177.16-7.64-177.16-7.64v141.73z" transform="matrix(.0906 0 0 .09555 343.068 235.313)" stroke="#000" stroke-width="4.375"/> - <path d="M779.53 255.12c159.57-1.394 177.16-35.432 177.16-35.432s35.43-70.866 17.716-88.584c-17.717-17.716-194.88-17.716-194.88-17.716v141.73z" transform="matrix(.0906 0 0 .09555 343.068 228.539)" stroke="#000" stroke-width="4.375"/> - <path d="M779.53 255.12c159.57-1.394 194.88-35.433 194.88-35.433s35.43-70.866 17.716-88.583c-17.717-17.716-212.6-17.716-212.6-17.716v141.73z" transform="matrix(.0906 0 0 .09555 343.068 220.074)" stroke="#000" stroke-width="4.375"/> - <path d="M779.53 255.12c159.57-1.394 212.6-35.433 212.6-35.433s17.714-70.866 0-88.583c-17.717-17.716-212.6-17.716-212.6-17.716v141.73z" transform="matrix(.0906 0 0 .09555 343.068 211.61)" stroke="#000" stroke-width="4.375"/> - <path d="M832.68 113.39S946.89 24.807 946.89-46.06c0-70.866-50.349-141.73-64.625-177.17 28.552 0 93.176 106.3 93.176 177.17 0 77.444-107.32 194.88-107.32 194.88l-35.433-35.433z" transform="matrix(.11244 0 0 .09555 323.287 187.907)" stroke="#000" stroke-width="3.927"/> - <path d="M832.68 113.39s-14.276-53.15-14.276-159.45c0-124.02 63.001-202.89 85.654-230.32 5.898 27.422-57.102 124.02-57.102 230.32 0 77.444 21.157 194.88 21.157 194.88l-35.433-35.433z" transform="matrix(.11244 0 0 .09555 323.287 187.907)" stroke="#000" stroke-width="3.927"/> - <path d="M779.53 255.12c159.57-1.394 212.6-35.433 212.6-35.433s0-70.866-17.716-88.583c-17.717-17.716-194.88-17.716-194.88-17.716v141.73z" transform="matrix(.0906 0 0 .09555 343.068 203.145)" stroke="#000" stroke-width="4.375"/> - <path d="M779.53 255.12c159.57-1.394 194.88-35.433 194.88-35.433s0-70.866-17.716-88.583c-17.717-17.716-177.16-17.716-177.16-17.716v141.73z" transform="matrix(.0906 0 0 .09555 343.068 194.68)" stroke="#000" stroke-width="4.375"/> - <path d="M318.9 1318.1c55.065-122.32 70.866-336.61 70.866-372.05 0-99.782-32.948-585.11-35.433-779.53s124.02-301.18 248.03-301.18c106.3 0 177.17 70.866 177.17 177.17h-53.15c0-70.866-53.15-124.02-124.02-124.02-106.3 0-187.99 83.739-194.88 248.03-7.605 189.89 21.316 682.94 17.717 814.96s-51.234 249.72-106.3 336.61z" transform="matrix(-.0906 0 0 .09555 484.326 194.68)" stroke="#fdc301" stroke-width="11.026"/> - <path d="M779.41 912.6s-.12 103.6 0 179.24c.12 75.63 19.822 104.91 54.262 103.59 34.44-1.33 41.108-58.83 34.531-92.08-6.577-33.26-53.24-198.97-53.24-198.97l-35.553 8.222z" transform="matrix(-.07727 -.0499 -.04732 .08148 513.881 245.455)" stroke="#000" stroke-width="4.375"/> - <path d="M779.53 32.884c124.13.141 177.77 102.39 177.46 100.31l-35.734 33.347c-18.985 17.717-141.73 17.717-140.21 17.626l-1.52-151.29z" transform="matrix(.0906 0 0 .09555 343.068 194.68)" stroke="#000" stroke-width="4.375"/> - <path d="M779.41 912.6s-.12 103.6 0 179.24c.12 75.63 19.822 104.91 54.262 103.59 34.44-1.33 41.108-58.83 34.531-92.08-6.577-33.26-53.24-198.97-53.24-198.97l-35.553 8.222z" transform="matrix(-.08863 -.01984 -.01882 .09346 497.885 211.744)" stroke="#000" stroke-width="4.375"/> - <path d="M779.41 912.6s-.12 103.6 0 179.24c.12 75.63 19.822 104.91 54.262 103.59 34.44-1.33 41.108-58.83 34.531-92.08-6.577-33.26-53.24-198.97-53.24-198.97l-35.553 8.222z" transform="matrix(-.0906 0 0 .09555 484.314 194.68)" stroke="#000" stroke-width="4.375"/> - <path d="M779.53 255.12c159.57-1.394 177.16-35.432 177.16-35.432s35.43-70.866 17.716-88.584c-17.717-17.716-194.88-17.716-194.88-17.716v141.73z" transform="matrix(-.05623 0 0 .09555 457.515 257.313)" stroke="#000" stroke-width="5.554"/> - <path d="M779.53 255.12c106.3 0 124.02-35.432 124.02-35.432s35.43-70.866 17.716-88.584c-17.717-17.716-141.73-17.716-141.73-17.716v141.73z" transform="matrix(-.0906 0 0 .09555 484.314 250.539)" stroke="#000" stroke-width="4.375"/> - <path d="M779.53 255.12c88.583 0 141.73-35.433 141.73-35.433s35.43-70.866 17.716-88.584c-17.72-17.72-159.45-17.71-159.45-17.71v141.73z" transform="matrix(-.0906 0 0 .09555 484.314 243.765)" stroke="#000" stroke-width="4.375"/> - <path d="M832.68 113.39s70.866-88.583 194.88-177.17c124.01-88.582 213.73-156.72 230.31-141.73 0 17.717-106.3 106.3-194.88 177.17C974.4 42.52 868.1 148.82 868.1 148.82l-35.433-35.433z" transform="matrix(-.11244 0 0 .09555 501.903 194.877)" stroke="#000" stroke-width="3.927"/> - <path d="M832.68 113.39s70.05-52.025 204.38-124.02c132.23-63.918 318.89-53.15 318.89-35.433-17.71 17.716-177.16 17.716-283.46 70.866-101.48 50.729-204.39 124.01-204.39 124.01l-35.433-35.433z" transform="matrix(-.11244 0 0 .09555 500.984 201.65)" stroke="#000" stroke-width="3.927"/> - <path d="M832.68 113.39s61.675-35.068 204.38-88.583c141.72-53.15 329.87-17.717 329.87 0-17.7 17.713-170.4 6.944-276.7 35.429-109.99 27.758-222.09 88.584-222.09 88.584l-35.433-35.433z" transform="matrix(-.11244 0 0 .09555 500.898 213.312)" stroke="#000" stroke-width="3.927"/> - <path d="M832.68 113.39s71.079-70.976 222.47-88.583c152.3-17.72 276.3 88.583 276.3 106.29-17.7 17.72-159.5-77.972-265.7-64.286-112.67 13.654-197.69 82.006-197.69 82.006l-35.433-35.433z" transform="matrix(-.11244 0 0 .09555 500.139 225.145)" stroke="#000" stroke-width="3.927"/> - <path d="M779.53 255.12c159.57-1.394 159.45-45.508 159.45-45.508s35.43-70.866 17.716-88.584c-17.717-17.716-177.16-7.64-177.16-7.64v141.73z" transform="matrix(-.0906 0 0 .09555 484.314 235.313)" stroke="#000" stroke-width="4.375"/> - <path d="M779.53 255.12c159.57-1.394 177.16-35.432 177.16-35.432s35.43-70.866 17.716-88.584c-17.717-17.716-194.88-17.716-194.88-17.716v141.73z" transform="matrix(-.0906 0 0 .09555 484.314 228.539)" stroke="#000" stroke-width="4.375"/> - <path d="M779.53 255.12c159.57-1.394 194.88-35.433 194.88-35.433s35.43-70.866 17.716-88.583c-17.717-17.716-212.6-17.716-212.6-17.716v141.73z" transform="matrix(-.0906 0 0 .09555 484.314 220.074)" stroke="#000" stroke-width="4.375"/> - <path d="M779.53 255.12c159.57-1.394 212.6-35.433 212.6-35.433s17.714-70.866 0-88.583c-17.717-17.716-212.6-17.716-212.6-17.716v141.73z" transform="matrix(-.0906 0 0 .09555 484.314 211.61)" stroke="#000" stroke-width="4.375"/> - <path d="M832.68 113.39S946.89 24.807 946.89-46.06c0-70.866-50.349-141.73-64.625-177.17 28.552 0 93.176 106.3 93.176 177.17 0 77.444-107.32 194.88-107.32 194.88l-35.433-35.433z" transform="matrix(-.11244 0 0 .09555 504.107 187.907)" stroke="#000" stroke-width="3.927"/> - <path d="M832.68 113.39s-14.276-53.15-14.276-159.45c0-124.02 63.001-202.89 85.654-230.32 5.898 27.422-57.102 124.02-57.102 230.32 0 77.444 21.157 194.88 21.157 194.88l-35.433-35.433z" transform="matrix(-.11244 0 0 .09555 504.107 187.907)" stroke="#000" stroke-width="3.927"/> - <path d="M779.53 255.12c159.57-1.394 212.6-35.433 212.6-35.433s0-70.866-17.716-88.583c-17.717-17.716-194.88-17.716-194.88-17.716v141.73z" transform="matrix(-.0906 0 0 .09555 484.314 203.145)" stroke="#000" stroke-width="4.375"/> - <path d="M779.53 255.12c159.57-1.394 194.88-35.433 194.88-35.433s0-70.866-17.716-88.583c-17.717-17.716-177.16-17.716-177.16-17.716v141.73z" transform="matrix(-.0906 0 0 .09555 484.314 194.68)" stroke="#000" stroke-width="4.375"/> - <path d="M318.9 1318.1c55.065-122.32 70.866-336.61 70.866-372.05 0-99.782-32.948-585.11-35.433-779.53s124.02-301.18 248.03-301.18c106.3 0 177.17 70.866 177.17 177.17h-53.15c0-70.866-53.15-124.02-124.02-124.02-106.3 0-187.99 83.739-194.88 248.03-7.605 189.89 21.316 682.94 17.717 814.96s-51.234 249.72-106.3 336.61z" transform="matrix(.0906 0 0 .09555 343.055 194.68)" stroke="#fdc301" stroke-width="11.026"/> - <path d="M779.53 32.884c124.13.141 177.77 102.39 177.46 100.31l-35.734 33.347c-18.985 17.717-141.73 17.717-140.21 17.626l-1.52-151.29z" transform="matrix(-.0906 0 0 .09555 484.314 194.68)" stroke="#000" stroke-width="4.375"/> - </g> - </g> - </g> -</svg> diff --git a/img/flags/1x1/td.svg b/img/flags/1x1/td.svg deleted file mode 100644 index 4e74705..0000000 --- a/img/flags/1x1/td.svg +++ /dev/null @@ -1,7 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" height="512" width="512" viewBox="0 0 512 512"> - <g fill-rule="evenodd"> - <path fill="#000067" d="M0 0h171.176v512H0z"/> - <path fill="red" d="M340.824 0H512v512H340.824z"/> - <path fill="#ff0" d="M171.176 0h169.648v512H171.176z"/> - </g> -</svg> diff --git a/img/flags/1x1/tf.svg b/img/flags/1x1/tf.svg deleted file mode 100644 index 4b15e78..0000000 --- a/img/flags/1x1/tf.svg +++ /dev/null @@ -1,15 +0,0 @@ -<svg xmlns:xlink="http://www.w3.org/1999/xlink" xmlns="http://www.w3.org/2000/svg" height="512" width="512" viewBox="0 0 512 512"> - <defs> - <path d="M0-21l12.344 37.99-32.316-23.48h39.944l-32.316 23.48z" id="a" fill="#fff"/> - </defs> - <path fill="#002395" d="M0 0h512v512H0z"/> - <path fill="#fff" d="M0 0h312.32v209.92H0z"/> - <path fill="#002395" d="M0 0h102.4v204.8H0z"/> - <path fill="#ed2939" d="M204.8 0h102.4v204.8H204.8z"/> - <path d="M282.394 234.24l16.48 26.24h46.88V352l-35.2-55.04-47.36 75.52h23.04l24.32-43.52 49.92 89.6 49.92-89.6 24.32 43.52h23.04l-47.36-75.52-35.2 55.04v-50.56h21.12l15.68-24.96h-36.8v-16h46.88l16.48-26.24h-156.16zm55.04 112h-51.2v17.92h51.2zm97.28 0h-51.2v17.92h51.2z" fill="#fff"/> - <use height="100%" width="100%" xlink:href="#a" x="416" y="362" transform="translate(-172.006) scale(1.28)"/> - <use height="100%" width="100%" xlink:href="#a" x="371" y="328" transform="translate(-172.006) scale(1.28)"/> - <use height="100%" width="100%" xlink:href="#a" x="461" y="328" transform="translate(-172.006) scale(1.28)"/> - <use height="100%" width="100%" xlink:href="#a" x="333" y="227" transform="translate(-172.006) scale(1.28)"/> - <use height="100%" width="100%" xlink:href="#a" x="499" y="227" transform="translate(-172.006) scale(1.28)"/> -</svg> diff --git a/img/flags/1x1/tg.svg b/img/flags/1x1/tg.svg deleted file mode 100644 index ebab69a..0000000 --- a/img/flags/1x1/tg.svg +++ /dev/null @@ -1,14 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" height="512" width="512" viewBox="0 0 512 512"> - <defs> - <clipPath id="a"> - <path fill-opacity=".67" d="M0-.241h496.3v496.3H0z"/> - </clipPath> - </defs> - <g clip-path="url(#a)" fill-rule="evenodd" transform="translate(0 .248) scale(1.0316)"> - <path fill="#ffe300" d="M0-.241h744.09v496.3H0z"/> - <path fill="#118600" d="M0 201.52h744.09v99.66H0zM0 0h744.09v99.66H0z"/> - <path fill="#d80000" d="M0 0h297.12v301.18H0z"/> - <path d="M130.3 124.25c0-.83 18.259-51.456 18.259-51.456l16.599 50.626s55.606 1.66 55.606.83-43.987 33.198-43.987 33.198 20.748 58.096 19.919 56.436c-.83-1.66-48.137-34.858-48.137-34.858s-48.136 33.198-47.306 33.198 18.258-54.776 18.258-54.776l-43.156-32.37 53.946-.83z" fill="#fff"/> - <path fill="#118600" d="M0 396.4h744.09v99.66H0z"/> - </g> -</svg> diff --git a/img/flags/1x1/th.svg b/img/flags/1x1/th.svg deleted file mode 100644 index caa2c57..0000000 --- a/img/flags/1x1/th.svg +++ /dev/null @@ -1,7 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" height="512" width="512" viewBox="0 0 512 512"> - <g fill-rule="evenodd"> - <path fill="#fff" d="M0 0h512v512H0z"/> - <path fill="#001b9a" d="M0 173.38h512v170.67H0z"/> - <path fill="#e70000" d="M0 .045h512v88H0zM0 426.67h512v85.333H0z"/> - </g> -</svg> diff --git a/img/flags/1x1/tj.svg b/img/flags/1x1/tj.svg deleted file mode 100644 index be4518d..0000000 --- a/img/flags/1x1/tj.svg +++ /dev/null @@ -1,26 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" height="512" width="512" viewBox="0 0 512 512"> - <path fill="#060" d="M0 0h512v512H0z"/> - <path fill="#fff" d="M0 0h512v365.714H0z"/> - <path fill="#c00" d="M0 0h512v146.286H0z"/> - <g transform="translate(-256) scale(.73143)" fill="#f8c300"> - <path d="M672 340.7a12.5 12.5 0 0 1 23.3 5.9v50h9.4v-50a12.5 12.5 0 0 1 23.3-5.9 29.5 29.5 0 1 0-56 0"/> - <path d="M678.7 327.65a20 20 0 0 1 21.3 9.55 20 20 0 0 1 21.3-9.55 21.5 21.5 0 0 0-42.6 0" fill="#fff"/> - <path id="a" d="M695.3 376.627a38 38 0 0 1-63.845 24.316 39.5 39.5 0 0 1-59.734 17.467c3.65 36.426 58.252 28.989 62.32-6.429 17.154 30.115 54.873 21.49 65.91-15.4z"/> - <use height="100%" width="100%" xlink:href="#a" transform="matrix(-1 0 0 1 1400 0)"/> - <path id="b" d="M658.84 441.31c-7.618 16.446-22.845 19.271-36.164 5.995 0 0 5.354-3.783 11.086-4.826-1.075-4.574 1.13-10.902 4.235-14.324 3.258 2.227 7.804 6.689 8.96 11.874 8.03-1.04 11.883 1.282 11.883 1.282z"/> - <use height="100%" width="100%" xlink:href="#b" transform="rotate(9.37 700 804)"/> - <use height="100%" width="100%" xlink:href="#b" transform="rotate(18.74 700 804)"/> - <path d="M603 478a340 340 0 0 1 194 0" fill="none" stroke="#f8c300" stroke-width="16"/> - <g transform="translate(700 380)"> - <g transform="translate(0 -140)"> - <path id="c" transform="scale(.00005)" d="M488533-158734l-790463 574305L0-513674l301930 929245-790463-574305z"/> - </g> - <g id="d"> - <use height="100%" width="100%" xlink:href="#c" transform="translate(-70 -121.244)"/> - <use height="100%" width="100%" xlink:href="#c" transform="translate(-121.244 -70)"/> - <use height="100%" width="100%" xlink:href="#c" transform="translate(-140)"/> - </g> - <use height="100%" width="100%" xlink:href="#d" transform="scale(-1 1)"/> - </g> - </g> -</svg> diff --git a/img/flags/1x1/tk.svg b/img/flags/1x1/tk.svg deleted file mode 100644 index 7b0c888..0000000 --- a/img/flags/1x1/tk.svg +++ /dev/null @@ -1,5 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" height="512" width="512" viewBox="0 0 512 512"> - <path d="M0 0h512v512H0z" fill="#00247d"/> - <path d="M90.7 384.2c-5.3 0 50-29.5 96.4-67.2 60.7-49.5 191.5-128.7 230-141.5 4-1.3-8.2 6.8-9.8 9.5-41.1 48.6-8.3 140.3 43 186.4 15.4 11.8 14.6 12.4 43.2 13.6v2.7l-402.8-3.5zm-3.3 5.4s-3.9 2.8-3.9 4.9c0 2.3 4.4 5.4 4.4 5.4l397.3 4.4 7.3-4.9-10.2-6.3-394.9-3.5z" fill="#fed100"/> - <path d="M105.5 116.6l-4 12.1 10.4-7.5 10.3 7.5-4-12.1 10.4-7.5h-12.8l-3.9-12.2-4 12.2H95.2zm77.8 57.1l8.6-6.2h-10.6l-3.3-10.1-3.3 10.1h-10.6l8.6 6.2-3.3 10.1 8.6-6.2 8.6 6.2zm-144.7 13l-3.9-12.1-4 12.1H18l10.3 7.5-4 12.1 10.4-7.5 10.3 7.5-3.9-12.1 10.3-7.5zm77.9 121.9l-4.6-14.2-4.6 14.2H92.4l12 8.7-4.6 14.2 12.1-8.8 12 8.8-4.6-14.2 12-8.7z" fill="#fff"/> -</svg> diff --git a/img/flags/1x1/tl.svg b/img/flags/1x1/tl.svg deleted file mode 100644 index 1bdde24..0000000 --- a/img/flags/1x1/tl.svg +++ /dev/null @@ -1,13 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" height="512" width="512" viewBox="0 0 512 512"> - <defs> - <clipPath id="a"> - <path fill-opacity=".67" d="M0 0h496.06v496.06H0z"/> - </clipPath> - </defs> - <g clip-path="url(#a)" fill-rule="evenodd" transform="scale(1.0321)"> - <path fill="#cb000f" d="M0 0h999.07v496.06H0z"/> - <path d="M0 0c3.133 0 496.06 248.73 496.06 248.73L0 496.06V0z" fill="#f8c00c"/> - <path d="M0 0c2.084 0 330.01 248.73 330.01 248.73L0 496.06V0z"/> - <path d="M181.87 288.88l-58.92-13.058-30.105 51.194-4.71-57.819-58.862-12.956 53.133-24.045-3.19-57.537 38.984 42.039 53.618-24.447-27.93 52.221 37.983 44.408z" fill="#fff"/> - </g> -</svg> diff --git a/img/flags/1x1/tm.svg b/img/flags/1x1/tm.svg deleted file mode 100644 index a45d767..0000000 --- a/img/flags/1x1/tm.svg +++ /dev/null @@ -1,221 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" height="512" width="512" viewBox="0 0 512 512"> - <defs> - <clipPath id="a"> - <path fill-opacity=".67" d="M0 0h496.06v496.06H0z"/> - </clipPath> - </defs> - <g fill-rule="evenodd" clip-path="url(#a)" transform="scale(1.0321)"> - <path fill="#28ae66" d="M0 0h744.09v496.06H0z"/> - <g stroke-width="1pt"> - <path d="M255.117 133.217c27.032 13.035 59.219-.061 70.864-18.056 11.94-16.794 13.406-44.993-7.236-70.866 32.04 26.572 39.123 56.693 23.183 81.497-21.262 28.344-68.43 27.524-86.811 7.425z" fill="#fff"/> - <path fill="#fff" d="M296.921 76.181l1.534-5.37-4.36-3.345 5.436-.162L301.276 62l1.83 5.272 5.44.069-4.306 3.419 1.614 5.347-4.489-3.16zM270.071 109.842l1.534-5.37-4.36-3.345 5.436-.162 1.745-5.304 1.83 5.272 5.44.069-4.306 3.419 1.614 5.347-4.489-3.16zM271.841 83.275l1.534-5.37-4.36-3.345 5.436-.162 1.745-5.304 1.83 5.272 5.44.069-4.306 3.419 1.614 5.347-4.489-3.16zM271.841 56.693l1.534-5.37-4.36-3.346 5.436-.161 1.745-5.304 1.83 5.271 5.44.07-4.306 3.418 1.614 5.348-4.489-3.16zM242.001 90.361l1.534-5.37-4.36-3.345 5.436-.162 1.745-5.304 1.83 5.272 5.44.069-4.306 3.419 1.614 5.347-4.489-3.16z"/> - </g> - <path fill="#ca3745" d="M46.063 0h159.45v496.06H46.063z"/> - <g stroke-width="1pt" fill="#faae29"> - <path d="M46.064 129.33v-3.544l6.591-8.858-1.329-1.772 3.986-5.315-1.328-1.771-2.658 3.543-1.329-1.772L59.3 97.44l1.328 1.772-1.328 1.771 2.739 3.58 6.562-8.895-6.673-8.62-2.628 3.305 1.328 1.772-1.328 1.772-9.302-12.402 1.33-1.772 2.657 3.544 1.328-1.772-3.986-5.315 1.33-1.772-6.592-8.858v-3.543l9.248 12.401-1.328 1.772 3.986 5.315-2.658 3.543 2.658 3.543 3.986-5.314L71.31 95.88l-9.354 12.19-3.986-5.315-2.658 3.543 2.658 3.543-3.986 5.316 1.328 1.771-9.248 12.402z"/> - <path d="M46.063 85.04l1.329 3.543v5.315h3.986l2.657 1.772-2.657 1.771h-3.986v5.315l-1.33 3.544V85.04z"/> - </g> - <g stroke-width="1pt" fill="#faae29"> - <path d="M46.064 214.368v-3.543l6.591-8.858-1.329-1.772 3.986-5.315-1.328-1.771-2.658 3.543-1.329-1.772L59.3 182.48l1.328 1.771-1.328 1.772 2.739 3.58 6.562-8.895-6.673-8.62-2.628 3.305 1.328 1.772-1.328 1.772-9.302-12.402 1.33-1.772 2.657 3.544 1.328-1.772-3.986-5.315 1.33-1.772-6.592-8.858v-3.543l9.248 12.402-1.328 1.771 3.986 5.315-2.658 3.543 2.658 3.543 3.986-5.314 9.354 12.612-9.354 12.191-3.986-5.315-2.658 3.543 2.658 3.543-3.986 5.315 1.328 1.772-9.248 12.401z"/> - <path d="M46.063 170.079l1.329 3.543v5.315h3.986l2.657 1.772-2.657 1.771h-3.986v5.315l-1.33 3.544v-21.26z"/> - </g> - <g stroke-width="1pt" fill="#faae29"> - <path d="M46.065 299.409v-3.543l6.591-8.859-1.329-1.772 3.986-5.315-1.328-1.771-2.658 3.543-1.329-1.772L59.3 267.52l1.328 1.772-1.328 1.772 2.739 3.579 6.562-8.895-6.673-8.62-2.628 3.305 1.328 1.772-1.328 1.772-9.302-12.402 1.33-1.772 2.657 3.544 1.328-1.772-3.986-5.315 1.33-1.771-6.592-8.858v-3.544l9.248 12.402-1.328 1.771 3.986 5.315-2.658 3.543 2.658 3.544 3.986-5.315 9.354 12.613-9.354 12.19-3.986-5.315-2.658 3.543 2.658 3.543-3.986 5.315 1.328 1.772-9.248 12.402z"/> - <path d="M46.064 255.119l1.329 3.543v5.315h3.986l2.657 1.772-2.657 1.771h-3.986v5.315l-1.33 3.544v-21.26z"/> - </g> - <g stroke-width="1pt" fill="#faae29"> - <path d="M46.065 379.13v-3.543l6.591-8.859-1.329-1.772 3.986-5.315-1.328-1.771-2.658 3.543-1.329-1.772L59.3 347.24l1.328 1.772-1.328 1.772 2.739 3.579 6.562-8.895-6.673-8.62-2.628 3.305 1.328 1.772-1.328 1.772-9.302-12.402 1.33-1.772 2.657 3.544 1.328-1.772-3.986-5.315 1.33-1.772-6.592-8.858v-3.543l9.248 12.402-1.328 1.771 3.986 5.315-2.658 3.543 2.658 3.543 3.986-5.314 9.354 12.613-9.354 12.19-3.986-5.315-2.658 3.543 2.658 3.543-3.986 5.315 1.328 1.772-9.248 12.402z"/> - <path d="M46.064 334.84l1.329 3.543v5.315h3.986l2.657 1.772-2.657 1.771h-3.986v5.315l-1.33 3.544v-21.26z"/> - </g> - <g stroke-width="1pt" fill="#faae29"> - <path d="M205.51 129.33v-3.544l-6.592-8.858 1.329-1.772-3.986-5.315 1.328-1.771 2.658 3.543 1.329-1.772-9.302-12.401-1.328 1.772 1.328 1.771-2.739 3.58-6.562-8.895 6.673-8.62 2.628 3.305-1.328 1.772 1.328 1.772 9.302-12.402-1.33-1.772-2.657 3.544-1.328-1.772 3.986-5.315-1.33-1.772 6.592-8.858v-3.543l-9.248 12.401 1.328 1.772-3.986 5.315 2.658 3.543-2.658 3.543-3.986-5.314-9.354 12.613 9.354 12.19 3.986-5.315 2.658 3.543-2.658 3.543 3.986 5.316-1.328 1.771 9.248 12.402z"/> - <path d="M205.51 85.04l-1.329 3.543v5.315h-3.986l-2.657 1.772 2.657 1.771h3.986v5.315l1.33 3.544V85.04z"/> - </g> - <g stroke-width="1pt" fill="#faae29"> - <path d="M205.95 214.37v-3.544l-6.592-8.858 1.329-1.772-3.986-5.315 1.328-1.771 2.658 3.543 1.329-1.772-9.302-12.401-1.328 1.772 1.328 1.771-2.739 3.58-6.562-8.895 6.673-8.62 2.628 3.305-1.328 1.772 1.328 1.772 9.302-12.402-1.33-1.772-2.657 3.544-1.328-1.772 3.986-5.315-1.33-1.772 6.592-8.858v-3.543l-9.248 12.402 1.328 1.771-3.986 5.315 2.658 3.543-2.658 3.543-3.986-5.314-9.354 12.613 9.354 12.19 3.986-5.315 2.658 3.544-2.658 3.543 3.986 5.315-1.328 1.771 9.248 12.402z"/> - <path d="M205.95 170.08l-1.329 3.543v5.315h-3.986l-2.657 1.772 2.657 1.771h3.986v5.315l1.33 3.544v-21.26z"/> - </g> - <g stroke-width="1pt" fill="#faae29"> - <path d="M205.51 299.409v-3.543l-6.592-8.859 1.329-1.772-3.986-5.315 1.328-1.771 2.658 3.543 1.329-1.772-9.302-12.401-1.328 1.772 1.328 1.772-2.739 3.579-6.562-8.895 6.673-8.62 2.628 3.305-1.328 1.772 1.328 1.772 9.302-12.402-1.33-1.772-2.657 3.544-1.328-1.772 3.986-5.315-1.33-1.771 6.592-8.858v-3.544l-9.248 12.402 1.328 1.771-3.986 5.315 2.658 3.543-2.658 3.544-3.986-5.315-9.354 12.613 9.354 12.19 3.986-5.315 2.658 3.543-2.658 3.543 3.986 5.315-1.328 1.772 9.248 12.402z"/> - <path d="M205.51 255.119l-1.329 3.543v5.315h-3.986l-2.657 1.772 2.657 1.771h3.986v5.315l1.33 3.544v-21.26z"/> - </g> - <g stroke-width="1pt" fill="#faae29"> - <path d="M205.51 379.13v-3.543l-6.592-8.859 1.329-1.772-3.986-5.315 1.328-1.771 2.658 3.543 1.329-1.772-9.302-12.401-1.328 1.772 1.328 1.772-2.739 3.579-6.562-8.895 6.673-8.62 2.628 3.305-1.328 1.772 1.328 1.772 9.302-12.402-1.33-1.772-2.657 3.544-1.328-1.772 3.986-5.315-1.33-1.772 6.592-8.858v-3.543l-9.248 12.402 1.328 1.771-3.986 5.315 2.658 3.543-2.658 3.543-3.986-5.314-9.354 12.613 9.354 12.19 3.986-5.315 2.658 3.543-2.658 3.543 3.986 5.315-1.328 1.772 9.248 12.402z"/> - <path d="M205.51 334.84l-1.329 3.543v5.315h-3.986l-2.657 1.772 2.657 1.771h3.986v5.315l1.33 3.544v-21.26z"/> - </g> - <g stroke-width="1pt" fill="#faae29"> - <path d="M46.067 33.66v-3.543l6.591-8.858-1.329-1.772 3.986-5.315-1.328-1.771-2.658 3.543L50 14.172l9.302-12.401 1.328 1.771-1.328 1.772 2.739 3.58 6.562-8.895h2.71L61.959 12.4l-3.986-5.315-2.658 3.543 2.658 3.543-3.986 5.315 1.328 1.772-9.248 12.401zM46.067 0h7.972l-2.657 1.772h-3.986v5.315l-1.33 3.543V0z"/> - </g> - <g stroke-width="1pt" fill="#faae29"> - <path d="M205.506 33.66v-3.543l-6.591-8.858 1.329-1.772-3.986-5.315 1.328-1.771 2.658 3.543 1.328-1.772-9.3-12.401-1.33 1.771 1.33 1.772-2.74 3.58-6.562-8.895h-2.71l9.354 12.402 3.986-5.315 2.658 3.543-2.658 3.543 3.986 5.315-1.328 1.772 9.248 12.401zM205.506 0h-7.972l2.657 1.772h3.986v5.315l1.33 3.543V0z"/> - </g> - <path d="M112.51 488.996s5.72-10.044 20.136-13.087c14.416-3.044 16.933 6.696 25.17 6.696 8.238 0 21.28-6.696 21.28-6.696s-13.042 12.783-23.11 12.478c-10.068-.303-13.5-6.695-23.797-5.782-10.297.913-19.679 6.696-19.679 6.391z" fill="#faae29"/> - <path d="M140.34 488.996s-5.72-10.044-20.136-13.087c-14.416-3.044-16.933 6.696-25.17 6.696-8.238 0-21.28-6.696-21.28-6.696s13.042 12.783 23.11 12.478c10.068-.303 13.5-6.695 23.797-5.782 10.297.913 19.679 6.696 19.679 6.391z" fill="#faae29"/> - <g stroke-width="1pt" fill="#faae29"> - <path d="M93.201 472.38c-1.27-2.657-4.442-14.251-2.75-15.701 2.538-.966 9.307 10.87 8.673 21.5-4.442 2.415-19.461-.967-19.25-4.108 1.058-4.348 9.52-2.898 13.327-1.69z"/> - <path d="M84.124 462.247c-.83-2.95-2.14-15.168-.26-16.12 2.633-.247 7.424 13.198 5.158 23.423-4.72 1.14-18.892-6.302-18.2-9.317 1.709-3.963 9.763-.216 13.302 2.014z"/> - <path d="M76.749 450.91c-.563-3.06-.775-15.4 1.176-16.048 2.637.172 6.197 14.28 3.037 24.074-4.789.386-18.198-9.247-17.242-12.13 2.049-3.666 9.713 1.33 13.029 4.103z"/> - <path d="M70.933 438.835c-.2-3.139 1.024-15.373 3.028-15.61 2.585.715 4.462 15.388.201 24.41-4.775-.608-16.903-12.895-15.623-15.547 2.45-3.197 9.441 3.322 12.394 6.747z"/> - <path d="M66.889 426.187c.14-3.144 2.67-15.017 4.677-14.868 2.481 1.203 2.759 16.083-2.43 24.196-4.66-1.517-15.339-16-13.786-18.378 2.769-2.695 8.985 5.095 11.539 9.05z"/> - <path d="M68.018 411.796c-.344 12.593-2.633 12.74-6.811 3.432-1.85-3.517-2.078-18.122-.412-18.666 2.409-.05 7.157 10.365 7.223 15.234z"/> - </g> - <g stroke-width="1pt" fill="#faae29"> - <path d="M158.932 473.706c1.27-2.657 4.442-14.252 2.75-15.701-2.538-.966-9.307 10.87-8.673 21.5 4.442 2.414 19.461-.967 19.25-4.108-1.058-4.348-9.52-2.898-13.327-1.691z"/> - <path d="M168.009 463.572c.83-2.949 2.14-15.167.26-16.12-2.633-.246-7.424 13.199-5.158 23.424 4.72 1.14 18.892-6.302 18.2-9.317-1.709-3.963-9.763-.216-13.302 2.013z"/> - <path d="M175.384 452.235c.563-3.06.775-15.399-1.176-16.047-2.637.172-6.197 14.28-3.037 24.074 4.789.386 18.198-9.247 17.242-12.13-2.049-3.666-9.713 1.33-13.029 4.103z"/> - <path d="M181.2 440.161c.2-3.139-1.024-15.373-3.028-15.61-2.585.715-4.462 15.388-.201 24.41 4.775-.608 16.903-12.895 15.623-15.547-2.45-3.197-9.441 3.322-12.394 6.747z"/> - <path d="M185.244 427.513c-.14-3.144-2.67-15.017-4.677-14.868-2.481 1.202-2.759 16.083 2.43 24.196 4.66-1.517 15.339-16 13.786-18.378-2.769-2.695-8.985 5.095-11.539 9.05z"/> - <path d="M184.115 413.122c.344 12.593 2.633 12.74 6.811 3.432 1.85-3.517 2.078-18.122.412-18.666-2.409-.05-7.157 10.365-7.223 15.234z"/> - </g> - <g transform="matrix(.96875 0 0 1.2258 182.42 -74.639)"> - <path d="M-3.543 290.55h-5.315v3.543h-5.315v3.543h-21.26l-3.543 3.544 1.771 1.771h8.858l1.772-1.771h-8.858l1.772-1.772h12.402l-5.315 5.315h-12.402l-3.544-1.772-3.543 1.771-12.402.001-5.315-5.317 12.402.002 1.771 1.772-8.858-.002 1.772 1.773h8.858l1.772-1.771-3.544-3.544h-19.488v-3.543h-5.315v-3.543h-5.315v-15.945h5.315v-3.543h5.315v-3.543h19.488l3.544-3.544-1.772-1.771h-8.858l-1.772 1.773 8.858-.002-1.771 1.772-12.402.002 5.315-5.317 12.402.001 3.543 1.771 3.544-1.772h12.402l5.315 5.315h-12.402l-1.772-1.772h8.858l-1.772-1.771h-8.858l-1.771 1.771 3.543 3.544h21.26v3.543h5.315v3.543h5.315v15.945z" transform="matrix(1.4884 0 0 1.24 3.502 -39.474)" stroke="#000" stroke-width=".125" fill="#ca3745"/> - <path d="M375.59 499.67v24.803h10.629v7.019h10.63v7.087h35.433l14.174 10.63 14.173-10.63h38.976v-7.019l10.63-.068v-7.087h10.63v-24.803h-10.63v-7.086l-10.63.068v-7.155h-38.976l-14.173-10.63-14.174 10.63h-35.433v7.155h-10.63v7.086H375.59z" transform="matrix(.74419 0 0 .62 -392.03 -6.521)" stroke="#faae29" stroke-width="1pt" fill="#28ae66"/> - <path d="M-75.6 296.644l-15.822 10.984v-10.984H-75.6zM-43.97 296.644l15.822 10.985v-10.985H-43.97zM-75.6 325.208l-15.822-10.984v10.984H-75.6zM-43.965 325.208l15.82-10.985v10.985h-15.82zM-38.689 303.233l-5.273 4.394h10.547l-5.274-4.394zM-80.877 303.233l-5.273 4.394h10.547l-5.274-4.394zM-80.877 318.622l-5.273-4.394h10.547l-5.274 4.394zM-38.687 318.622l-5.273-4.394h10.547l-5.274 4.394z" fill="#ca3745"/> - <path d="M-59.787 329.602l-5.273-4.394h10.547l-5.274 4.394zM-59.787 307.632l-5.273-4.394h10.547l-5.274 4.394zM-59.787 292.249l-5.273 4.394h10.547l-5.274-4.394zM-59.787 314.217l-5.273 4.394h10.547l-5.274-4.394z" fill="#faae29"/> - <path transform="matrix(.74419 0 0 .62 -392.03 -6.521)" stroke="#000" stroke-width=".125" fill="#faae29" d="M467.72 506.69h14.173v3.543H467.72z"/> - <path transform="matrix(.74419 0 0 .62 -392.03 -6.521)" stroke="#000" stroke-width=".125" fill="#c00" d="M414.57 510.24h7.087v3.543h-7.087zM471.26 510.24h7.087v3.543h-7.087z"/> - <path transform="matrix(.74419 0 0 .62 -392.03 -6.521)" stroke="#000" stroke-width=".125" fill="#900" d="M439.37 488.98h14.173v3.543H439.37zM439.37 496.06h14.173v3.543H439.37z"/> - <path transform="matrix(.74419 0 0 .62 -392.03 -6.521)" stroke="#000" stroke-width=".125" fill="#900" d="M435.83 492.52h21.26v3.543h-21.26zM439.37 524.41h14.173v3.543H439.37zM439.37 531.5h14.173v3.543H439.37z"/> - <path transform="matrix(.74419 0 0 .62 -392.03 -6.521)" stroke="#000" stroke-width=".125" fill="#900" d="M435.83 527.95h21.26v3.543h-21.26z"/> - <path transform="matrix(.74419 0 0 .62 -392.03 -6.521)" stroke="#000" stroke-width=".125" fill="#faae29" d="M467.72 513.78h14.173v3.543H467.72zM411.02 506.69h14.173v3.543H411.02zM411.02 513.78h14.173v3.543H411.02z"/> - <path transform="matrix(.74419 0 0 .62 -392.03 -6.521)" stroke="#000" stroke-width=".125" fill="#faae29" d="M407.48 510.24h7.087v3.543h-7.087zM421.65 510.24h7.087v3.543h-7.087zM464.17 510.24h7.087v3.543h-7.087zM478.35 510.24h7.087v3.543h-7.087z"/> - <ellipse fill="#fff" transform="matrix(.74419 0 0 .62 -374.14 -38.912)" cx="413.68" rx=".886" cy="581.99" ry=".886"/> - <ellipse fill="#fff" transform="matrix(.74419 0 0 .62 -367.57 -38.912)" cx="413.68" rx=".886" cy="581.99" ry=".886"/> - <ellipse fill="#fff" transform="matrix(.74419 0 0 .62 -361 -38.958)" cx="413.68" rx=".886" cy="581.99" ry=".886"/> - <ellipse fill="#fff" transform="matrix(.74419 0 0 .62 -371.51 -41.102)" cx="413.68" rx=".886" cy="581.99" ry=".886"/> - <ellipse fill="#fff" transform="matrix(.74419 0 0 .62 -363.68 -41.148)" cx="413.68" rx=".886" cy="581.99" ry=".886"/> - <ellipse fill="#fff" transform="matrix(.74419 0 0 .62 -371.57 -36.768)" cx="413.68" rx=".886" cy="581.99" ry=".886"/> - <ellipse fill="#fff" transform="matrix(.74419 0 0 .62 -363.68 -36.677)" cx="413.68" rx=".886" cy="581.99" ry=".886"/> - <ellipse fill="#fff" transform="matrix(.74419 0 0 .62 -353.17 -49.999)" cx="413.68" rx=".886" cy="581.99" ry=".886"/> - <ellipse fill="#fff" transform="matrix(.74419 0 0 .62 -346.59 -49.999)" cx="413.68" rx=".886" cy="581.99" ry=".886"/> - <ellipse fill="#fff" transform="matrix(.74419 0 0 .62 -340.02 -50.045)" cx="413.68" rx=".886" cy="581.99" ry=".886"/> - <ellipse fill="#fff" transform="matrix(.74419 0 0 .62 -350.54 -52.189)" cx="413.68" rx=".886" cy="581.99" ry=".886"/> - <ellipse fill="#fff" transform="matrix(.74419 0 0 .62 -342.71 -52.235)" cx="413.68" rx=".886" cy="581.99" ry=".886"/> - <ellipse fill="#fff" transform="matrix(.74419 0 0 .62 -350.59 -47.855)" cx="413.68" rx=".886" cy="581.99" ry=".886"/> - <ellipse fill="#fff" transform="matrix(.74419 0 0 .62 -342.71 -47.764)" cx="413.68" rx=".886" cy="581.99" ry=".886"/> - <ellipse fill="#fff" transform="matrix(.74419 0 0 .62 -374.2 -60.904)" cx="413.68" rx=".886" cy="581.99" ry=".886"/> - <ellipse fill="#fff" transform="matrix(.74419 0 0 .62 -367.62 -60.904)" cx="413.68" rx=".886" cy="581.99" ry=".886"/> - <ellipse fill="#fff" transform="matrix(.74419 0 0 .62 -361.05 -60.949)" cx="413.68" rx=".886" cy="581.99" ry=".886"/> - <ellipse fill="#fff" transform="matrix(.74419 0 0 .62 -371.57 -63.094)" cx="413.68" rx=".886" cy="581.99" ry=".886"/> - <ellipse fill="#fff" transform="matrix(.74419 0 0 .62 -363.74 -63.139)" cx="413.68" rx=".886" cy="581.99" ry=".886"/> - <ellipse fill="#fff" transform="matrix(.74419 0 0 .62 -371.62 -58.759)" cx="413.68" rx=".886" cy="581.99" ry=".886"/> - <ellipse fill="#fff" transform="matrix(.74419 0 0 .62 -363.74 -58.668)" cx="413.68" rx=".886" cy="581.99" ry=".886"/> - <ellipse fill="#fff" transform="matrix(.74419 0 0 .62 -395.28 -49.817)" cx="413.68" rx=".886" cy="581.99" ry=".886"/> - <ellipse fill="#fff" transform="matrix(.74419 0 0 .62 -388.71 -49.817)" cx="413.68" rx=".886" cy="581.99" ry=".886"/> - <ellipse fill="#fff" transform="matrix(.74419 0 0 .62 -382.14 -49.862)" cx="413.68" rx=".886" cy="581.99" ry=".886"/> - <ellipse fill="#fff" transform="matrix(.74419 0 0 .62 -392.65 -52.007)" cx="413.68" rx=".886" cy="581.99" ry=".886"/> - <ellipse fill="#fff" transform="matrix(.74419 0 0 .62 -384.82 -52.052)" cx="413.68" rx=".886" cy="581.99" ry=".886"/> - <ellipse fill="#fff" transform="matrix(.74419 0 0 .62 -392.71 -47.672)" cx="413.68" rx=".886" cy="581.99" ry=".886"/> - <ellipse fill="#fff" transform="matrix(.74419 0 0 .62 -384.82 -47.581)" cx="413.68" rx=".886" cy="581.99" ry=".886"/> - </g> - <path d="M134.575 247.8l4.394-2.058 4.394 2.058h-8.788zM121.394 247.8l4.394-2.058 4.394 2.058h-8.788zM108.213 247.8l4.394-2.058L117 247.8h-8.788zM134.575 200.45l4.394 2.06 4.394-2.06h-8.788zM121.394 200.45l4.394 2.06 4.394-2.06h-8.788zM108.213 200.45l4.394 2.06 4.394-2.06h-8.788z" fill="#fff"/> - <path d="M130.912 253.98l-5.126 4.119-5.126-4.119-5.126 4.119-5.125-4.119v2.058l3.417 2.06-1.71 2.059v2.06h1.71l1.708-2.06 1.709 2.06h1.709v-2.06l-1.71-2.058 3.418-2.06 3.418 2.06-1.709 2.058v2.06h1.709l1.708-2.06 1.709 2.06h1.709v-2.06l-1.71-2.058 3.418-2.06 3.418 2.059-1.709 2.059v2.06h1.71l1.708-2.06 1.708 2.06h1.709v-2.06l-1.709-2.06 3.417-2.059v-2.058l-5.125 4.118-5.127-4.118zM130.913 194.261l-5.126-4.118-5.126 4.118-5.126-4.118-5.125 4.118v-2.058l3.417-2.06-1.71-2.058v-2.06h1.71l1.708 2.06 1.709-2.06h1.709v2.06l-1.71 2.058 3.418 2.059 3.418-2.06-1.709-2.057v-2.06h1.709l1.708 2.06 1.709-2.06h1.709v2.06l-1.71 2.058 3.418 2.059 3.418-2.058-1.709-2.06v-2.059h1.71l1.708 2.06 1.708-2.06h1.709v2.06l-1.709 2.059 3.417 2.06v2.057l-5.125-4.117-5.127 4.117zM169.738 228.583l5.493-4.461-5.493-4.462 5.493-4.46-5.493-4.462h2.745l2.748 2.974 2.745-1.487h2.746v1.487l-2.746 1.487 2.746 1.487v1.487h-2.746l-2.745-1.487-2.747 2.974 2.747 2.975 2.745-1.487h2.746v1.487l-2.746 1.487 2.746 1.487v1.487h-2.746l-2.745-1.487-2.747 2.974 2.745 2.975 2.747-1.488h2.746v1.488l-2.746 1.487 2.746 1.486v1.488h-2.746l-2.747-1.488-2.746 2.975h-2.745l5.491-4.461-5.491-4.462zM81.842 228.583l-5.493-4.461 5.493-4.462-5.493-4.46 5.493-4.462h-2.745l-2.748 2.974-2.745-1.487h-2.746v1.487l2.746 1.487-2.746 1.487v1.487h2.746l2.745-1.487 2.747 2.974-2.747 2.975-2.745-1.487h-2.746v1.487l2.746 1.487-2.746 1.487v1.487h2.746l2.745-1.487 2.747 2.974-2.745 2.975-2.747-1.488h-2.746v1.488l2.746 1.487-2.746 1.486v1.488h2.746l2.747-1.488 2.746 2.975h2.745l-5.491-4.461 5.491-4.462z" fill="#28ae66"/> - <path transform="matrix(1.24 0 0 1.1622 204.874 -5.458)" stroke="#000" stroke-width=".25" fill="#28ae66" d="M-26.575 214.37h1.772v1.772h-1.772z"/> - <path transform="matrix(1.24 0 0 1.1622 204.874 -5.458)" stroke="#000" stroke-width=".25" fill="#28ae66" d="M-28.346 216.14h1.772v1.772h-1.772zM-37.205 225h1.772v1.772h-1.772zM-35.433 223.23h1.772v1.772h-1.772zM-93.898 223.23h1.772v1.772h-1.772zM-102.76 214.37h1.772v1.772h-1.772zM-100.98 216.14h1.772v1.772h-1.772zM-100.98 177.17h1.772v1.772h-1.772zM-102.76 178.94h1.772v1.772h-1.772zM-92.126 168.31h1.772v1.772h-1.772z"/> - <path transform="matrix(1.24 0 0 1.1622 204.874 -5.458)" stroke="#000" stroke-width=".25" fill="#28ae66" d="M-93.898 170.08h1.772v1.772h-1.772zM-37.205 168.31h1.772v1.772h-1.772zM-35.433 170.08h1.772v1.772h-1.772zM-28.346 177.17h1.772v1.772h-1.772z"/> - <path transform="matrix(1.24 0 0 1.1622 204.874 -5.458)" stroke="#000" stroke-width=".25" fill="#28ae66" d="M-26.575 178.94h1.772v1.772h-1.772zM-92.126 225h1.772v1.772h-1.772z"/> - <path d="M119.085 224.12l-6.476-.001v-4.047l4.317.002v-3.794h4.318v-3.485h4.317v4.356c-3.575 0-6.476 2.95-6.476 6.969z" fill="#fff"/> - <path d="M132.035 224.12l6.476-.001v-4.047l-4.317.002v-3.794h-4.318v-3.485h-4.317v4.356c3.575 0 6.476 2.95 6.476 6.969z" fill="#faae29"/> - <path d="M132.035 224.12h6.476v4.047l-4.317-.002v3.794h-4.318v3.485h-4.317v-4.356c3.575 0 6.476-2.95 6.476-6.969z" fill="#fff"/> - <path d="M119.085 224.12h-6.476v4.047l4.317-.002v3.794h4.318v3.485h4.317v-4.356c-3.575 0-6.476-2.95-6.476-6.969z" fill="#faae29"/> - <path d="M132.034 224.123h-6.476v-6.97c3.575 0 6.476 3.123 6.476 6.97z" fill="#28ae66"/> - <path d="M132.034 224.117h-6.476v6.969c3.575 0 6.476-3.123 6.476-6.97z" fill="#ca3745"/> - <path d="M119.086 224.117h6.476v6.969c-3.575 0-6.476-3.123-6.476-6.97z" fill="#28ae66"/> - <path d="M119.086 224.123h6.476v-6.97c-3.575 0-6.476 3.123-6.476 6.97z" fill="#ca3745"/> - <path d="M132.378 249.855l-6.59-4.119-6.591 4.12-6.59-4.12-6.59 4.12v-2.059l4.392-2.06-2.197-2.059v-2.06h2.197l2.197 2.06 2.197-2.06H117v2.06l-2.197 2.058 4.394 2.06 4.394-2.06-2.197-2.058v-2.06h2.197l2.196 2.06 2.197-2.06h2.197v2.06l-2.197 2.058 4.394 2.06 4.394-2.058-2.197-2.06v-2.06h2.197l2.197 2.06 2.196-2.06h2.197v2.06l-2.197 2.06 4.394 2.059v2.058l-6.59-4.117-6.591 4.117zM132.378 198.388l-6.59 4.12-6.591-4.12-6.59 4.12-6.59-4.12v2.059l4.392 2.06-2.197 2.059v2.059h2.197l2.197-2.06 2.197 2.06H117v-2.06l-2.197-2.058 4.394-2.06 4.394 2.06-2.197 2.059v2.059h2.197l2.196-2.06 2.197 2.06h2.197v-2.06l-2.197-2.058 4.394-2.06 4.394 2.06-2.197 2.059v2.059h2.197l2.197-2.06 2.196 2.06h2.197v-2.06l-2.197-2.059 4.394-2.06v-2.058l-6.59 4.118-6.591-4.118zM156.537 229.266l-3.296-5.147 3.296-5.148-3.296-5.147 3.296-5.148h-1.647l-1.65 3.432-1.646-1.716h-1.648v1.716l1.648 1.716-1.648 1.715v1.716h1.648l1.647-1.716 1.648 3.432-1.648 3.432-1.647-1.716h-1.648v1.716l1.648 1.716-1.648 1.716v1.716h1.648l1.647-1.716 1.648 3.431-1.647 3.433-1.648-1.716h-1.648v1.716l1.648 1.715-1.648 1.716v1.716h1.648l1.648-1.716 1.648 3.432h1.647l-3.295-5.148 3.295-5.148z" fill="#28ae66"/> - <path d="M-100.98 177.17l-7.087 7.086v26.575l7.087 7.087h31.889l7.087-7.087v-26.575l-7.087-7.086h-31.889zm-1.772-5.316l-17.717 17.716v15.945l17.717 17.717h35.433l17.716-17.717V189.57l-17.716-17.716h-35.433z" transform="matrix(1.24 0 0 1.1622 231.237 -5.457)" stroke="#000" stroke-width=".4" fill="#28ae66"/> - <path d="M-93.898 147.05l3.543 5.315 3.544-5.315h-7.087z" transform="matrix(.992 0 0 .7748 208.389 135.932)" stroke="#000" stroke-width=".25" fill="#faae29"/> - <path d="M-93.898 147.05l3.543 5.315 3.544-5.315h-7.087z" transform="matrix(.992 0 0 -.7748 208.389 312.319)" stroke="#000" stroke-width=".25" fill="#faae29"/> - <path d="M-93.898 147.05l3.543 5.315 3.544-5.315h-7.087z" transform="matrix(.992 0 0 -.7748 222.449 312.319)" stroke="#000" stroke-width=".25" fill="#faae29"/> - <path d="M-93.898 147.05l3.543 5.315 3.544-5.315h-7.087z" transform="matrix(.992 0 0 .7748 222.449 135.932)" stroke="#000" stroke-width=".25" fill="#faae29"/> - <path d="M-93.898 147.05l3.543 5.315 3.544-5.315h-7.087z" transform="matrix(.992 0 0 -.7748 201.359 312.319)" stroke="#000" stroke-width=".25" fill="#ca3745"/> - <path d="M-93.898 147.05l3.543 5.315 3.544-5.315h-7.087z" transform="matrix(.992 0 0 -.7748 215.419 312.319)" stroke="#000" stroke-width=".25" fill="#ca3745"/> - <path d="M-93.898 147.05l3.543 5.315 3.544-5.315h-7.087z" transform="matrix(.992 0 0 -.7748 229.479 312.319)" stroke="#000" stroke-width=".25" fill="#ca3745"/> - <path d="M-104.53 180.71l3.544-3.544h-3.544v3.544z" transform="matrix(1.8599 0 0 -1.7432 293.83 558.694)" stroke="#000" stroke-width=".25" fill="#ca3745"/> - <path d="M95.033 229.266l3.296-5.147-3.296-5.148 3.296-5.147-3.296-5.148h1.647l1.65 3.432 1.646-1.716h1.648v1.716l-1.648 1.716 1.648 1.715v1.716h-1.648l-1.647-1.716-1.648 3.432 1.648 3.432 1.647-1.716h1.648v1.716l-1.648 1.716 1.648 1.716v1.716h-1.648l-1.647-1.716-1.648 3.431 1.647 3.433 1.648-1.716h1.648v1.716l-1.648 1.715 1.648 1.716v1.716h-1.648l-1.648-1.716-1.648 3.432h-1.647l3.295-5.148-3.295-5.148z" fill="#28ae66"/> - <path d="M-76.181 154.13h7.087l1.771 1.772-1.771 1.771h-7.087v-3.543z" transform="matrix(1.24 0 0 1.046 253.205 57.34)" stroke="#000" stroke-width=".25" fill="#ca3745"/> - <path d="M-99.213 180.71l-3.543 3.544v26.575l3.543 3.543h-5.316l.001-33.662h5.315z" transform="matrix(1.24 0 0 1.1622 222.449 -5.457)" stroke="#000" stroke-width=".375" fill="#ca3745"/> - <path d="M-93.898 147.05l3.543 5.315 3.544-5.315h-7.087z" transform="matrix(.992 0 0 .7748 201.359 135.932)" stroke="#000" stroke-width=".25" fill="#ca3745"/> - <path d="M-93.898 147.05l3.543 5.315 3.544-5.315h-7.087z" transform="matrix(.992 0 0 .7748 215.419 135.932)" stroke="#000" stroke-width=".25" fill="#ca3745"/> - <path d="M-93.898 147.05l3.543 5.315 3.544-5.315h-7.087z" transform="matrix(.992 0 0 .7748 229.479 135.932)" stroke="#000" stroke-width=".25" fill="#ca3745"/> - <path d="M-99.212 180.71l-3.544 3.544v26.575l3.544 3.543h-5.315V180.71h5.315z" transform="matrix(-1.24 0 0 1.1622 29.13 -5.457)" stroke="#000" stroke-width=".375" fill="#ca3745"/> - <path d="M-104.53 180.71l3.544-3.544h-3.544v3.544z" transform="matrix(-1.8599 0 0 -1.7432 -42.26 558.694)" stroke="#000" stroke-width=".25" fill="#ca3745"/> - <path d="M-104.53 180.71l3.544-3.544h-3.544v3.544z" transform="matrix(-1.8599 0 0 1.7432 -42.26 -110.448)" stroke="#000" stroke-width=".25" fill="#ca3745"/> - <path d="M-104.53 180.71l3.544-3.544h-3.544v3.544z" transform="matrix(1.8599 0 0 1.7432 293.83 -110.448)" stroke="#000" stroke-width=".25" fill="#ca3745"/> - <path d="M-100.98 177.17l-7.087 7.086v26.575l7.087 7.087h31.889l7.087-7.087v-26.575l-7.087-7.086h-31.889zm-.001-1.773l-8.858 8.858v26.575l8.859 8.858h31.889l8.858-8.858v-26.575l-8.859-8.858h-31.889z" transform="matrix(1.24 0 0 1.1622 231.237 -5.457)" stroke="#000" stroke-width=".4" fill="#28ae66"/> - <path d="M-76.181 154.13h7.087l1.771 1.772-1.771 1.771h-7.087v-3.543z" transform="matrix(1.24 0 0 1.04607 253.204 61.033)" stroke="#000" stroke-width=".25" fill="#faae29"/> - <path d="M-76.181 154.13h7.087l1.771 1.772-1.771 1.771h-7.087v-3.543z" transform="matrix(1.24 0 0 1.046 253.205 64.752)" stroke="#000" stroke-width=".25" fill="#ca3745"/> - <path d="M-76.181 154.13h7.087l1.771 1.772-1.771 1.771h-7.087v-3.543z" transform="matrix(1.24 0 0 1.04607 253.205 68.445)" stroke="#000" stroke-width=".25" fill="#faae29"/> - <path d="M-76.181 154.13h7.087l1.771 1.772-1.771 1.771h-7.087v-3.543z" transform="matrix(1.24 0 0 1.04607 253.205 53.62)" stroke="#000" stroke-width=".25" fill="#faae29"/> - <path d="M-76.181 154.13h7.087l1.771 1.772-1.771 1.771h-7.087v-3.543z" transform="matrix(-1.24 0 0 1.046 -1.63 57.34)" stroke="#000" stroke-width=".25" fill="#ca3745"/> - <path d="M-76.181 154.13h7.087l1.771 1.772-1.771 1.771h-7.087v-3.543z" transform="matrix(-1.24 0 0 1.04607 -1.63 61.034)" stroke="#000" stroke-width=".25" fill="#faae29"/> - <path d="M-76.181 154.13h7.087l1.771 1.772-1.771 1.771h-7.087v-3.543z" transform="matrix(-1.24 0 0 1.046 -1.63 64.752)" stroke="#000" stroke-width=".25" fill="#ca3745"/> - <path d="M-76.181 154.13h7.087l1.771 1.772-1.771 1.771h-7.087v-3.543z" transform="matrix(-1.24 0 0 1.04607 -1.63 68.446)" stroke="#000" stroke-width=".25" fill="#faae29"/> - <path d="M-76.181 154.13h7.087l1.771 1.772-1.771 1.771h-7.087v-3.543z" transform="matrix(-1.24 0 0 1.04607 -1.63 53.621)" stroke="#000" stroke-width=".25" fill="#faae29"/> - <path d="M-100.98 178.94v37.205h8.858v8.858h56.693v-8.858h8.858V178.94h-8.858v-8.858h-56.693v8.858h-8.858zm1.771 1.772v33.661h8.859v8.858h53.15v-8.858h8.858v-33.661H-37.2v-8.859h-53.15v8.859h-8.859z" transform="matrix(1.24 0 0 1.1622 204.874 -5.458)" stroke="#000" stroke-width=".25" fill="#970000"/> - <g> - <path d="M-28.347 69.094l-5.315-7.087v-5.315l-5.315-5.314h-10.63l-8.858-5.315h-28.346l-8.859 5.315h-10.63l-5.315 5.315v5.315l-5.315 7.086v14.173l5.315 7.087v5.315l5.315 5.315h10.63l8.859 5.315h28.346l8.858-5.316h10.63l5.315-5.314v-5.315l5.315-7.087V69.093z" transform="matrix(1.24 0 0 1.1176 215.856 -35.536)" stroke="#000" stroke-width=".25" fill="#ca3745"/> - <path d="M73.081 49.606v5.94l6.59 7.92v5.94l6.591 5.94h13.18l10.985 5.94h15.378l-.001-31.68H73.081z" fill="#faae29"/> - <path d="M107.248 63.46l-8.024 5.093H94.43l1.598 1.696-3.195 3.395 1.597 1.697 4.793-1.697 1.598 1.697.737-4.535 8.848-5.368-3.16-1.977z" fill="#ca3745"/> - <path d="M98.465 59.501l-8.024 5.092h-4.793l1.598 1.697-3.195 3.394 1.597 1.697 4.793-1.697 1.598 1.697.738-4.535 8.847-5.368-3.16-1.977zM94.068 51.585l-8.025 5.092H81.25l1.598 1.697-3.195 3.394 1.597 1.697 4.793-1.697 1.598 1.697.738-4.535 8.848-5.368-3.16-1.977z" fill="#ca3745"/> - <path d="M178.494 49.606v-5.94l-6.59-7.92v-5.94l-6.59-5.94h-13.181l-10.985-5.94H125.77l.001 31.68h52.723z" fill="#faae29"/> - <path d="M125.792 81.285h-4.068l-4.719-3.96h-7.485l-4.068-1.98 2.034-1.98 4.068 1.98h4.068l4.068-5.94 6.102 1.98v3.96h-6.102l6.102 5.94z" fill="#ca3745"/> - <path d="M73.081 49.606v-5.94l6.59-7.92v-5.94l6.591-5.94h13.18l10.985-5.94h15.378l-.001 31.68H73.081z" fill="#fff"/> - <path d="M125.792 17.923h-4.068l-4.719 3.96h-7.485l-4.068 1.98 2.034 1.98 4.068-1.98h4.068l4.068 5.94 6.102-1.98v-3.96h-6.102l6.102-5.94z" fill="#ca3745"/> - <path d="M125.788 17.923h4.069l4.718 3.96h7.486l4.068 1.98-2.034 1.98-4.068-1.98h-4.068l-4.068 5.94-6.103-1.98v-3.96h6.103l-6.103-5.94z" fill="#ca3745"/> - <path d="M178.494 49.606v5.94l-6.59 7.92v5.94l-6.59 5.94h-13.181l-10.985 5.94H125.77l.001-31.68h52.723z" fill="#fff"/> - <path d="M125.788 81.285h4.069l4.718-3.96h7.486l4.068-1.98-2.034-1.98-4.068 1.98h-4.068l-4.068-5.94-6.103 1.98v3.96h6.103l-6.103 5.94zM98.465 39.703l-8.024-5.091h-4.793l1.598-1.697-3.195-3.395 1.597-1.697 4.793 1.697 1.598-1.697.738 4.535 8.847 5.368-3.16 1.977zM144.328 35.747l8.024-5.092h4.793l-1.598-1.696 3.195-3.395-1.597-1.697-4.793 1.697-1.598-1.697-.738 4.535-8.848 5.368 3.16 1.977z" fill="#ca3745"/> - <path d="M107.248 35.747l-8.024-5.092H94.43l1.598-1.696-3.195-3.395 1.597-1.697 4.793 1.697 1.598-1.697.737 4.535 8.848 5.368-3.16 1.977zM94.068 47.627l-8.025-5.092H81.25l1.598-1.696-3.195-3.395 1.597-1.697 4.793 1.697 1.598-1.697.738 4.535 8.848 5.368-3.16 1.977z" fill="#ca3745"/> - <path d="M76.982 49.616h2.035l2.034 1.98 2.034-1.98 42.715-.001v27.721h-2.034l2.034 1.981v1.98l-6.102-5.94v-1.98h2.034v1.98h2.034v-1.98L107.25 64.63H93.337v-8.58l-6.184-4.455h-4.068l-2.034 1.98 2.034 1.98h-2.034l-4.069-5.94z" fill="#fff"/> - <path d="M76.982 49.596h2.035l2.034-1.98 2.034 1.98 42.715.002V21.876h-2.034l2.034-1.98v-1.98l-6.102 5.94v1.98h2.034v-1.98h2.034v1.98L107.25 34.58H93.337v8.581l-6.184 4.455h-4.068l-2.034-1.98 2.034-1.98h-2.034l-4.069 5.94z" fill="#faae29"/> - <path d="M86.256 49.595h39.542v23.76l-17.574-9.9h-13.18v-7.92l-8.788-5.94z" fill="#28ae66"/> - <path d="M153.11 39.703l8.025-5.091h4.793l-1.598-1.697 3.195-3.395-1.597-1.697-4.793 1.697-1.598-1.697-.738 4.535-8.848 5.368 3.16 1.977zM157.508 47.627l8.024-5.092h4.793l-1.598-1.696 3.195-3.395-1.597-1.697-4.793 1.697-1.598-1.697-.738 4.535-8.848 5.368 3.16 1.977z" fill="#ca3745"/> - <path d="M174.593 49.596h-2.035l-2.034-1.98-2.034 1.98-42.715.002V21.876h2.034l-2.034-1.98v-1.98l6.102 5.94v1.98h-2.034v-1.98h-2.034v1.98l16.516 8.745h13.913v8.581l6.185 4.455h4.067l2.034-1.98-2.034-1.98h2.034l4.07 5.94z" fill="#fff"/> - <path d="M165.32 49.617h-39.543v-23.76l17.574 9.9h13.18v7.92l8.788 5.94z" fill="#28ae66"/> - <path d="M144.328 63.46l8.024 5.093h4.793l-1.598 1.696 3.195 3.395-1.597 1.697-4.793-1.697-1.598 1.697-.738-4.535-8.848-5.368 3.16-1.977z" fill="#ca3745"/> - <path d="M153.11 59.501l8.025 5.092h4.793l-1.598 1.697 3.195 3.394-1.597 1.697-4.793-1.697-1.598 1.697-.738-4.535-8.848-5.368 3.16-1.977zM157.508 51.585l8.024 5.092h4.793l-1.598 1.697 3.195 3.394-1.597 1.697-4.793-1.697-1.598 1.697-.738-4.535-8.848-5.368 3.16-1.977z" fill="#ca3745"/> - <path d="M174.593 49.616h-2.035l-2.034 1.98-2.034-1.98-42.715-.001v27.721h2.034l-2.034 1.981v1.98l6.102-5.94v-1.98h-2.034v1.98h-2.034v-1.98l16.516-8.746h13.913v-8.58l6.185-4.455h4.067l2.034 1.98-2.034 1.98h2.034l4.07-5.94z" fill="#faae29"/> - <path d="M165.32 49.595h-39.543v23.76l17.574-9.9h13.18v-7.92l8.788-5.94z" fill="#ca3745"/> - <path d="M86.256 49.617h39.542v-23.76l-17.574 9.9h-13.18v7.92l-8.788 5.94z" fill="#ca3745"/> - <path d="M130.128 49.606l11.034-5.94h6.59l-2.197-1.98 4.393-3.96-2.196-1.98-6.59 1.98-2.197-1.98-1.015 5.29-12.166 6.263 4.344 2.307zM121.447 49.595l-11.033 5.941h-6.59l2.196 1.98-4.393 3.96 2.196 1.98 6.59-1.98 2.198 1.98 1.015-5.29 12.166-6.264-4.345-2.307z" fill="#ca3745"/> - <path d="M121.447 49.606l-11.033-5.94h-6.59l2.196-1.98-4.393-3.96 2.196-1.98 6.59 1.98 2.198-1.98 1.015 5.29 12.166 6.263-4.345 2.307zM130.128 49.595l11.034 5.941h6.59l-2.197 1.98 4.393 3.96-2.196 1.98-6.59-1.98-2.197 1.98-1.015-5.29-12.166-6.264 4.344-2.307z" fill="#28ae66"/> - <path d="M112.608 49.607l13.18-9.9 13.182 9.9-13.181 9.9-13.18-9.9z" fill="#fff"/> - <path d="M83.075 53.562l2.034 1.98-2.034 1.98h-2.034l-6.102-7.92h2.034l4.068 5.94h2.034l-2.034-1.98 2.034-1.98h4.068v1.98h-4.068z" fill="#ca3745"/> - <path d="M83.075 45.644l2.034-1.98-2.034-1.98h-2.034l-6.102 7.92h2.034l4.068-5.94h2.034l-2.034 1.98 2.034 1.98h4.068v-1.98h-4.068zM168.504 53.562l-2.034 1.98 2.034 1.98h2.034l6.102-7.92h-2.034l-4.068 5.94h-2.034l2.034-1.98-2.034-1.98h-4.068v1.98h4.068z" fill="#ca3745"/> - <path d="M168.504 45.644l-2.034-1.98 2.034-1.98h2.034l6.102 7.92h-2.034l-4.068-5.94h-2.034l2.034 1.98-2.034 1.98h-4.068v-1.98h4.068zM123.754 41.684h4.068v15.84h-4.068z" fill="#ca3745"/> - <path fill="#ca3745" d="M117.652 45.644h16.272v7.92h-16.272z"/> - </g> - <g> - <path d="M333.07 170.08l-10.63 5.315v8.858l10.63 5.315h10.63l10.63-5.315v-8.858l-10.63-5.315h-10.63z" transform="matrix(3.4444 0 0 3.7273 -1039.78 -283.145)" stroke="#000" stroke-width=".066" fill="#28ae66"/> - <path d="M84.458 383.946h2.214v-4.06h4.43v4.06h2.214v-9.474h-2.214v4.06h-4.43v-4.06h-2.214v9.474zM140.558 415.526h2.214v-4.06h4.43v4.06h2.214v-9.474h-2.214v4.06h-4.43v-4.06h-2.214v9.474zM105.128 368.156h2.214v-4.06h4.43v4.06h2.214v-9.474h-2.214v4.06h-4.43v-4.06h-2.214v9.474zM137.608 368.156h2.214v-4.06h4.43v4.06h2.214v-9.474h-2.214v4.06h-4.43v-4.06h-2.214v9.474zM158.268 383.946h2.214v-4.06h4.43v4.06h2.214v-9.474h-2.214v4.06h-4.43v-4.06h-2.214v9.474zM158.268 399.736h2.214v-4.06h4.43v4.06h2.214v-9.474h-2.214v4.06h-4.43v-4.06h-2.214v9.474z" fill="#c00"/> - <path d="M125.789 421.848v-34.74h53.15v15.79l-35.433 18.95h-17.717zM125.79 352.363v34.74H72.64v-15.791l35.433-18.95h17.717z" fill="#faae29"/> - <path d="M125.789 352.363v34.74h53.15v-15.791l-35.433-18.95h-17.717zM125.79 421.848l-.001-34.74H72.64v15.79l35.433 18.95h17.717z" fill="#fff"/> - <path d="M-177.16 368.5h21.259l-21.259-10.63v10.63zm24.803-1.772l-.001 17.717h-33.661v-14.173h-7.086l-8.858-5.315v-12.402l5.314-5.315h-7.086v17.717h-1.772v-19.489h17.717l35.433 21.26z" transform="matrix(1 0 0 .8913 331.299 44.446)" stroke="#000" stroke-width=".125" fill="#faae29"/> - <path d="M108.042 376.045v22.105h5.314l12.403 6.317 12.403-6.317h5.313v-22.105h-5.313l-12.403-6.318-12.403 6.318h-5.314z" fill="#ca3745"/> - <path d="M-177.16 368.5h21.259l-21.259-10.63v10.63zm24.803-1.772l-.001 17.717h-33.661v-14.173h-7.086l-8.858-5.315v-12.402l5.314-5.315h-7.086v17.717h-1.772v-19.489h17.717l35.433 21.26z" transform="matrix(-1 0 0 -.8913 -79.72 729.765)" stroke="#000" stroke-width=".125" fill="#faae29"/> - <path d="M-177.16 368.5h21.259l-21.259-10.63v10.63zm24.803-1.772l-.001 17.717h-33.661v-14.173h-7.086l-8.858-5.315v-12.402l5.314-5.315h-7.086v17.717h-1.772v-19.489h17.717l35.433 21.26z" transform="matrix(-1 0 0 .8913 -79.72 44.446)" stroke="#000" stroke-width=".125" fill="#fff"/> - <path d="M-177.16 368.5h21.259l-21.259-10.63v10.63zm24.803-1.772l-.001 17.717h-33.661v-14.173h-7.086l-8.858-5.315v-12.402l5.314-5.315h-7.086v17.717h-1.772v-19.489h17.717l35.433 21.26z" transform="matrix(1 0 0 -.8913 331.3 729.765)" stroke="#000" stroke-width=".125" fill="#fff"/> - <path d="M83.278 399.746h2.214v-4.737h4.43v4.737h2.214v-11.053h-2.214v4.737h-4.43v-4.737h-2.214v11.053zM104.528 415.536h2.214V410.8h4.43v4.737h2.214v-11.053h-2.214v4.737h-4.43v-4.737h-2.214v11.053zM83.278 374.476h2.214v4.738h4.43v-4.738h2.214v11.054h-2.214v-4.738h-4.43v4.738h-2.214v-11.054zM104.528 358.684h2.214v4.738h4.43v-4.738h2.214v11.054h-2.214V365h-4.43v4.738h-2.214v-11.054zM138.198 415.536h2.214V410.8h4.43v4.737h2.214v-11.053h-2.214v4.737h-4.43v-4.737h-2.214v11.053zM159.458 385.526h2.214v-4.737h4.43v4.737h2.214v-11.053h-2.214v4.737h-4.43v-4.737h-2.214v11.053z" fill="#ca3745"/> - <path d="M138.198 415.536h2.214V410.8h4.43v4.737h2.214v-11.053h-2.214v4.737h-4.43v-4.737h-2.214v11.053z" fill="#ca3745"/> - <path d="M138.198 415.536h2.214V410.8h4.43v4.737h2.214v-11.053h-2.214v4.737h-4.43v-4.737h-2.214v11.053zM159.458 399.736h2.214V395h4.43v4.737h2.214v-11.053h-2.214v4.737h-4.43v-4.737h-2.214v11.053zM138.198 369.736h2.214V365h4.43v4.737h2.214v-11.053h-2.214v4.737h-4.43v-4.737h-2.214v11.053z" fill="#ca3745"/> - <path d="M127.563 387.106l7.087-5.759h3.543v2.879h-3.543v1.44h5.314v-5.758h-5.314v-4.318h-7.087v4.317h1.772v-2.88h3.543v2.88l-7.086 5.758-7.087-5.757v-2.878h3.543v2.878h1.772v-4.318h-7.087v4.318h-5.315v5.759h5.315v-1.44h-3.544v-2.88h3.544l7.087 5.758-7.087 5.757h-3.543v-2.878h3.543v-1.44h-5.314v5.758h5.314v4.318l7.087.001v-4.319h-1.771v2.88h-3.543v-2.88l7.085-5.757 7.088 5.759v2.878h-3.543v-2.878h-1.772v4.317h7.086v-4.317l5.315-.002v-5.757h-5.315v1.44h3.544v2.879h-3.544l-7.087-5.758z" fill="#fff"/> - </g> - <g transform="matrix(1 0 0 .92857 198.43 17.59)"> - <path d="M-122.352 134.285l3.43-3.73h20.573l15.43-16.784h20.574l15.43 16.784h20.575l3.429 3.729-3.429 3.73h-20.574l-15.43 16.784H-82.92l-15.43-16.784h-20.574l-3.43-3.729z" fill="#ca3745"/> - <path d="M372.05 391.54l1.903-1.949h22.834l17.126-19.489h19.029l17.126 19.489h22.835l1.903 1.949-1.903 1.948h-22.835l-15.223 17.54h-22.834l-15.224-17.54h-22.834l-1.903-1.948z" transform="matrix(.93104 0 0 .90908 -466.86 -221.29)" stroke="#000" stroke-width=".272" fill="#ca3745"/> - <path d="M-64.071 136.148l6.858 7.458-3.428 3.73-1.715-1.865h-1.714v1.865l1.714 1.865h3.43l3.428-3.73v-3.73l-6.857-7.458 6.857-7.46v-3.73l-3.429-3.729h-3.428l-1.715 1.864v1.865h1.715l1.714-1.865 3.428 3.73-6.857 7.46-6.859-7.46 6.859-7.46v-1.863h-1.715l-6.857 7.458-6.859-7.46h-1.715v1.865l6.859 7.46-6.859 7.46-6.858-7.46 3.429-3.73 1.715 1.865h1.714v-1.865l-1.714-1.864h-3.43l-3.429 3.73v3.729l6.859 7.46-6.859 7.46v3.729l3.43 3.73h3.429l1.714-1.865v-1.865h-1.714l-1.715 1.865-3.429-3.73 6.858-7.46 6.858 7.46-6.858 7.46v1.864h1.714l6.859-7.46 6.858 7.46h1.714v-1.865l-6.858-7.46 6.858-7.458zm-8.572-9.325l-6.859 7.46 6.859 7.46 6.858-7.46-6.858-7.46zM-82.917 154.79v14.918l1.715-1.865 1.715 1.865 1.714-1.865 1.714 1.865 1.715-1.865 1.714 1.865 1.715-1.865 1.715 1.865 1.714-1.865 1.715 1.865 1.713-1.865 1.715 1.865V154.79h-20.574zM-62.353 113.79V98.872l-1.715 1.865-1.715-1.865-1.714 1.865-1.714-1.865-1.715 1.865-1.714-1.865-1.715 1.865-1.715-1.865-1.714 1.865-1.715-1.865-1.713 1.865-1.715-1.865v14.918h20.574zM-33.205 130.58v-14.918l-1.715 1.865-1.713-1.865-1.715 1.865-1.715-1.865-1.714 1.865-1.715-1.865-1.714 1.865-1.714-1.865v14.918h13.715zM-98.355 130.58v-14.918l-1.715 1.865-1.713-1.865-1.715 1.865-1.715-1.865-1.714 1.865-1.715-1.865-1.714 1.865-1.714-1.865v14.918h13.715zM-33.205 138.01v14.918l-1.715-1.865-1.713 1.865-1.715-1.865-1.715 1.865-1.714-1.865-1.715 1.865-1.714-1.865-1.714 1.865V138.01h13.715zM-98.355 138.01v14.918l-1.715-1.865-1.713 1.865-1.715-1.865-1.715 1.865-1.714-1.865-1.715 1.865-1.714-1.865-1.714 1.865V138.01h13.715z" fill="#faae29"/> - <path d="M-62.347 154.79v9.324l1.714-1.866 1.715 1.866 1.714-1.866 1.714 1.866 1.715-1.866 1.714 1.866 1.715-1.866 1.714 1.866 1.715-1.866v-24.242l-15.43 16.784zM-82.933 154.79v9.325l-1.715-1.866-1.715 1.866-1.714-1.866-1.714 1.866-1.715-1.866-1.714 1.866-1.715-1.866-1.714 1.866-1.715-1.866.001-24.243 15.43 16.784zM-82.933 113.79v-9.324l-1.714 1.866-1.715-1.866-1.714 1.866-1.714-1.866-1.715 1.866-1.714-1.866-1.715 1.866-1.714-1.866-1.715 1.866v24.242l15.43-16.784zM-62.347 113.79v-9.324l1.714 1.866 1.715-1.866 1.714 1.866 1.714-1.866 1.715 1.866 1.714-1.866 1.715 1.866 1.714-1.866 1.715 1.866v24.242l-15.43-16.784zM-112.078 149.206l-1.715-1.865-1.713 1.865-1.714-1.865-1.715 1.865-1.715-1.865-1.715 1.865-1.713-1.865-1.715 1.865v-29.838l1.714 1.866 1.714-1.866 1.715 1.866 1.714-1.866 1.715 1.866 1.714-1.866 1.714 1.866 1.715-1.866v11.19h-6.857l-3.43 3.73 3.43 3.73h6.857v11.188zM-33.202 149.206l1.715-1.865 1.713 1.865 1.714-1.865 1.715 1.865 1.715-1.865 1.715 1.865 1.713-1.865 1.715 1.865v-29.838l-1.714 1.866-1.714-1.866-1.715 1.866-1.714-1.866-1.715 1.866-1.714-1.866-1.714 1.866-1.715-1.866v11.19h6.857l3.43 3.73-3.43 3.73h-6.857v11.188z" fill="#28ae66"/> - <path d="M-91.36 155.978s-1.428 1.474-1.428 2.21c-.028.687 1.524 2.227 2.143 2.211.81.016 2.143-1.474 2.143-2.21 0-.737-1.43-2.211-1.43-2.211v-2.948s3.104 5.068 3.104 2.857c0-1.586-3.103-4.331-3.103-4.331h-1.429s-3.103 3.214-3.103 4.33c0 2.212 3.103-2.856 3.103-2.856v2.948z" fill="#fff"/> - <path d="M-73.497 161.669s-1.715 2.063-1.715 3.095c-.034.962 1.829 3.118 2.572 3.095.971.023 2.572-2.063 2.572-3.095s-1.715-3.095-1.715-3.095v-4.127s3.037 6.751 3.037 3.656c0-2.001-3.037-5.72-3.037-5.72h-1.714s-3.506 4.656-3.037 5.72c0 3.095 3.037-3.656 3.037-3.656v4.127z" fill="#ca3745"/> - <ellipse fill="#28ae66" transform="matrix(.96774 0 0 1.0526 -482.4 -277.85)" cx="403.94" rx="3.543" cy="391.54" ry="1.772"/> - <ellipse fill="#28ae66" transform="matrix(.96774 0 0 1.0526 -463.54 -277.85)" cx="403.94" rx="3.543" cy="391.54" ry="1.772"/> - <ellipse fill="#28ae66" transform="matrix(.96774 0 0 1.0526 -444.69 -277.85)" cx="403.94" rx="3.543" cy="391.54" ry="1.772"/> - <path d="M-91.72 112.76s-1.428-1.474-1.428-2.21c-.028-.688 1.524-2.228 2.143-2.211.81-.017 2.143 1.473 2.143 2.21 0 .737-1.43 2.211-1.43 2.211v2.948s3.104-5.068 3.104-2.857c0 1.586-3.103 4.33-3.103 4.33h-1.429s-3.103-3.213-3.103-4.33c0-2.21 3.103 2.857 3.103 2.857v-2.948z" fill="#fff"/> - <path d="M-73.857 107.062s-1.715-2.063-1.715-3.095c-.034-.962 1.829-3.118 2.572-3.095.971-.023 2.572 2.063 2.572 3.095s-1.715 3.095-1.715 3.095v4.127s3.037-6.751 3.037-3.656c0 2.001-3.037 5.72-3.037 5.72h-1.714s-3.506-4.656-3.037-5.72c0-3.095 3.037 3.656 3.037 3.656v-4.127z" fill="#ca3745"/> - <path d="M-54.86 155.978s-1.428 1.474-1.428 2.21c-.028.687 1.524 2.227 2.143 2.211.81.016 2.143-1.474 2.143-2.21 0-.737-1.43-2.211-1.43-2.211v-2.948s3.104 5.068 3.104 2.857c0-1.586-3.103-4.331-3.103-4.331h-1.429s-3.103 3.214-3.103 4.33c0 2.212 3.103-2.856 3.103-2.856v2.948zM-55.22 112.76s-1.428-1.474-1.428-2.21c-.028-.688 1.524-2.228 2.143-2.211.81-.017 2.143 1.473 2.143 2.21 0 .737-1.43 2.211-1.43 2.211v2.948s3.104-5.068 3.104-2.857c0 1.586-3.103 4.33-3.103 4.33h-1.429s-3.103-3.213-3.103-4.33c0-2.21 3.103 2.857 3.103 2.857v-2.948z" fill="#fff"/> - <path d="M-106.273 145.593s-1.9 1.383-1.9 2.074c-.037.644 2.026 2.089 2.85 2.074 1.076.015 2.85-1.383 2.85-2.074 0-.691-1.9-2.074-1.9-2.074v-2.765s3.364 4.523 3.364 2.45c0-1.342-3.365-3.833-3.365-3.833h-1.9s-3.882 3.119-3.363 3.832c0 2.074 3.364-2.45 3.364-2.45v2.766zM-106.673 124.471s-1.9-1.383-1.9-2.074c-.037-.644 2.026-2.09 2.85-2.074 1.076-.015 2.85 1.383 2.85 2.074 0 .691-1.9 2.074-1.9 2.074v2.765s3.364-4.524 3.364-2.45c0 1.342-3.365 3.833-3.365 3.833h-1.9s-3.882-3.12-3.363-3.832c0-2.074 3.364 2.45 3.364 2.45v-2.766zM-40.423 145.15s-1.9 1.384-1.9 2.075c-.037.644 2.026 2.089 2.85 2.074 1.076.015 2.85-1.383 2.85-2.074 0-.691-1.9-2.074-1.9-2.074v-2.765s3.364 4.523 3.364 2.45c0-1.342-3.365-3.833-3.365-3.833h-1.9s-3.882 3.119-3.363 3.832c0 2.074 3.364-2.45 3.364-2.45v2.766zM-40.823 124.031s-1.9-1.383-1.9-2.074c-.037-.644 2.026-2.09 2.85-2.074 1.076-.015 2.85 1.383 2.85 2.074 0 .691-1.9 2.074-1.9 2.074v2.765s3.364-4.524 3.364-2.45c0 1.342-3.365 3.833-3.365 3.833h-1.9s-3.882-3.12-3.363-3.832c0-2.074 3.364 2.45 3.364 2.45v-2.766z" fill="#ca3745"/> - <path d="M-120.285 145.363c-.615-1.277-.453-1.86-.453-2.597-.028-.687 1.716-2.025 2.336-2.009.809-.016 2.143 1.474 2.143 2.21 0 .737.034 1.374-.298 2.644l-.893-2.154c-1.084 3.056-1.143 3.127-1.787-.074l-1.048 1.98zM-120.225 123.93c-.615 1.278-.453 1.862-.453 2.598-.028.687 1.716 2.025 2.336 2.009.809.016 2.143-1.474 2.143-2.21 0-.737.034-1.374-.298-2.644l-.893 2.154c-1.084-3.056-1.143-3.127-1.787.074l-1.048-1.98zM-27.805 145.093c-.615-1.277-.453-1.86-.453-2.597-.028-.687 1.716-2.025 2.336-2.009.809-.016 2.143 1.474 2.143 2.21 0 .737.034 1.374-.298 2.644l-.893-2.154c-1.084 3.056-1.143 3.127-1.787-.074l-1.048 1.98zM-27.755 123.655c-.615 1.277-.453 1.86-.453 2.597-.028.687 1.716 2.025 2.336 2.009.809.016 2.143-1.474 2.143-2.21 0-.737.034-1.374-.298-2.644l-.893 2.154c-1.084-3.056-1.143-3.127-1.787.074l-1.048-1.98z" fill="#fff"/> - <path d="M115.16 177.16v-5.315H99.216v-10.63H85.043v-3.543H72.641v-31.89h12.402v-3.543h14.173v-10.63h15.944v-5.315h21.26v5.315h15.945v10.63h14.173v3.543h12.402v31.89h-12.402v3.543h-14.173v10.63H136.42v5.315h-21.26zm-1.772 1.772v-5.315H97.444v-10.63H83.271v-3.543H70.869v-35.433h12.402v-3.544h14.173v-10.63h15.945v-5.315h24.803v5.315h15.945v10.63h14.173v3.544h12.402v35.433H168.31v3.543h-14.173v10.63h-15.945v5.315h-24.804z" transform="matrix(1 0 0 .99999 -198.43 -7.085)" stroke="#000" stroke-width=".125" fill="#ca3745"/> - </g> - </g> -</svg> diff --git a/img/flags/1x1/tn.svg b/img/flags/1x1/tn.svg deleted file mode 100644 index 4dbf359..0000000 --- a/img/flags/1x1/tn.svg +++ /dev/null @@ -1,13 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" height="512" width="512" viewBox="0 0 512 512"> - <defs> - <clipPath id="a"> - <path fill-opacity=".67" d="M124.02 0h496.06v496.06H124.02z"/> - </clipPath> - </defs> - <g fill-rule="evenodd" clip-path="url(#a)" transform="translate(-128) scale(1.0321)"> - <path fill="#e70013" d="M0 0h744.09v496.06H0z"/> - <path d="M497.81 247.81c0 69.096-56.014 125.109-125.11 125.109s-125.108-56.014-125.108-125.11S303.605 122.7 372.7 122.7 497.81 178.714 497.81 247.81z" fill="#fff"/> - <path d="M372.705 330.782c-45.799 0-82.969-37.17-82.969-82.969 0-45.8 37.17-82.97 82.969-82.97 11.45 0 24.483 2.634 33.336 9.136-60.681 2.284-76.029 53.75-76.029 74.492s9.813 67.001 76.028 73.833c-7.535 4.857-21.885 8.478-33.335 8.478z" fill="#e70013"/> - <path fill="#e70013" d="M445.8 282.71l-37.68-13.74-24.92 31.41 1.43-40.07-37.58-14 38.56-11.02 1.69-40.07 22.4 33.27 38.63-10.77-24.71 31.58z"/> - </g> -</svg> diff --git a/img/flags/1x1/to.svg b/img/flags/1x1/to.svg deleted file mode 100644 index 71c6631..0000000 --- a/img/flags/1x1/to.svg +++ /dev/null @@ -1,10 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" height="512" width="512" viewBox="0 0 512 512"> - <g fill-rule="evenodd" stroke-width="1pt"> - <path fill="#c10000" d="M0 0h512v512H0z"/> - <path fill="#fff" d="M0 0h218.308v174.96H0z"/> - <g fill="#c10000"> - <path d="M89.832 27.285h34.795v121.873H89.832z"/> - <path d="M168.171 70.82v34.795H46.298V70.82z"/> - </g> - </g> -</svg> diff --git a/img/flags/1x1/tr.svg b/img/flags/1x1/tr.svg deleted file mode 100644 index 3b44b79..0000000 --- a/img/flags/1x1/tr.svg +++ /dev/null @@ -1,8 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" height="512" width="512" viewBox="0 0 512 512"> - <g fill-rule="evenodd"> - <path fill="#f31930" d="M0 0h512v512H0z"/> - <path d="M348.772 263.97c0 70.63-58.247 127.883-130.1 127.883S88.572 334.6 88.572 263.97s58.247-127.88 130.1-127.88 130.1 57.254 130.1 127.88z" fill="#fff"/> - <path d="M355.28 263.965c0 56.5-46.6 102.304-104.08 102.304s-104.08-45.804-104.08-102.305 46.598-102.303 104.08-102.303 104.08 45.803 104.08 102.303z" fill="#f31830"/> - <path d="M374.104 204.23l-1.05 47.272-44.103 11.973 43.474 15.482-1.05 43.35 28.352-33.853 42.842 14.863-24.782-36.332 30.242-36.125-46.413 12.798-27.512-39.428z" fill="#fff"/> - </g> -</svg> diff --git a/img/flags/1x1/tt.svg b/img/flags/1x1/tt.svg deleted file mode 100644 index 7fd199c..0000000 --- a/img/flags/1x1/tt.svg +++ /dev/null @@ -1,7 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" height="512" width="512" viewBox="0 0 512 512"> - <path style="width:0" fill="#fff" d="M0 0h512v512H0z"/> - <g fill-rule="evenodd"> - <path d="M370.925 512.011L.047 1.071.009 511.744l370.916.267zM141.073-.003l370.878 510.94.038-510.673-370.916-.267z" fill="#e00000"/> - <path d="M22.192.244h94.88l374.536 511.262H393.73L22.191.244z"/> - </g> -</svg> diff --git a/img/flags/1x1/tv.svg b/img/flags/1x1/tv.svg deleted file mode 100644 index c36ce7f..0000000 --- a/img/flags/1x1/tv.svg +++ /dev/null @@ -1,29 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" height="512" width="512" viewBox="0 0 512 512"> - <defs> - <clipPath id="a"> - <path fill-opacity=".67" d="M0 0h512v512H0z"/> - </clipPath> - </defs> - <g clip-path="url(#a)"> - <path fill-rule="evenodd" fill="#fff" d="M.003-2.23h257.784v128.028H.003z"/> - <path d="M.003-2.23l-.01 9.61L61.51 38.988l23.147.67L.003-2.23z" fill="#c00"/> - <path d="M26.342-2.23l74.58 38.957V-2.23h-74.58z" fill="#006"/> - <path fill="#c00" d="M110.875-2.23v49.732H.01v28.419h110.865v49.732h34.114V75.92h110.864V47.502H144.99V-2.23h-34.114z"/> - <path d="M154.933-2.23v36.707l72.963-36.423-72.963-.283z" fill="#006"/> - <path d="M157.243 38.48l20.518-.167 79.711-40.259-21.15.345-79.079 40.08z" fill="#c00"/> - <path d="M.003 84.209v27.235l51.17-26.953-51.17-.285z" fill="#006"/> - <path d="M197.044 85.334l-21.332-.166 80.409 40.034-.53-9.159-58.547-30.71zM19.986 125.878L95.38 86.293l-19.802.131L.004 125.818" fill="#c00"/> - <path d="M256.93 9.017l-60.89 30.196 60.08.225v44.996h-51.17l50.698 27.47.744 13.973-27.08-.323-74.11-36.384v36.707h-54.013V89.17l-69.52 36.609-31.399.098v127.878h511.701V-2.01l-254.5-.211M.271 12.214L0 38.773l53.87.674L.27 12.214z" fill="#006"/> - <g fill-rule="evenodd" stroke-width="1pt" fill="#009fca"> - <path d="M255.983-2.23h255.986v255.987H255.983z"/> - <path d="M-.004 125.763h270.142v127.994H-.004z"/> - </g> - <g fill-rule="evenodd" transform="matrix(.51604 0 0 .51604 -.004 258.888)" stroke-width="1pt" fill="#009fca"> - <path d="M505.97-19.81h486.16v515.87H505.97z"/> - <rect ry="0" height="521.41" width="523.49" y="-25.343"/> - </g> - <g fill-rule="evenodd" stroke-width="1pt" fill="#fff40d"> - <path d="M478.056 226.298l7.064 20.407-18.439-12.629-18.438 12.626 7.067-20.404-18.458-12.605 22.804.021 7.028-20.416 7.029 20.416 22.804-.015zM420.82 389.054l7.064 20.407-18.439-12.629-18.439 12.626 7.067-20.404-18.457-12.605 22.804.021 7.028-20.416 7.029 20.416 22.804-.015zM478.056 352.211l7.064 20.407-18.439-12.629-18.438 12.626 7.067-20.404-18.458-12.605 22.804.022 7.028-20.417 7.029 20.417 22.804-.016zM231.95 470.254l7.065 20.407-18.439-12.63-18.438 12.627 7.067-20.404-18.458-12.605 22.804.021 7.028-20.416 7.029 20.416 22.804-.015zM275.019 381.825l-7.064-20.407 18.439 12.629 18.438-12.626-7.067 20.404 18.458 12.605-22.804-.021-7.029 20.416-7.028-20.416-22.804.015zM342.267 288.823l-7.063-20.408 18.438 12.63 18.439-12.627-7.067 20.405 18.458 12.604-22.805-.02-7.028 20.416-7.028-20.417-22.805.015zM398.787 269.501l-7.063-20.407 18.438 12.629 18.439-12.626-7.067 20.404 18.458 12.605-22.805-.021-7.028 20.416-7.028-20.416-22.805.015zM342.267 430.468l-7.063-20.407 18.438 12.629 18.439-12.626-7.067 20.404 18.458 12.605-22.805-.021-7.028 20.416-7.028-20.416-22.805.015zM275.019 446.925l-7.064-20.407 18.439 12.63 18.438-12.627-7.067 20.404 18.458 12.605-22.804-.021-7.029 20.416-7.028-20.416-22.804.015z"/> - </g> - </g> -</svg> diff --git a/img/flags/1x1/tw.svg b/img/flags/1x1/tw.svg deleted file mode 100644 index d802078..0000000 --- a/img/flags/1x1/tw.svg +++ /dev/null @@ -1,14 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" height="512" width="512" viewBox="0 0 512 512"> - <defs> - <clipPath id="a"> - <path fill-opacity=".67" d="M0 0h496.06v496.06H0z"/> - </clipPath> - </defs> - <g fill-rule="evenodd" clip-path="url(#a)" transform="scale(1.0321)" stroke-width="1pt"> - <path fill="#de2110" d="M0 0h744.09v496.06H0z"/> - <path fill="#08399c" d="M0 0h373.69v248.03H0z"/> - <path fill="#fff" d="M273.324 173.001l-45.86-9.43 9.77 45.79-35.01-31.09-14.44 44.54-14.77-44.44-34.77 31.36 9.43-45.86-45.79 9.76 31.09-35-44.539-14.44 44.43-14.77-31.35-34.773 45.86 9.427-9.76-45.792 35 31.095 14.44-44.54 14.77 44.432 34.77-31.354-9.43 45.863 45.79-9.767-31.09 35.01 44.54 14.43-44.43 14.77z"/> - <path fill="#005387" d="M231.045 169.48l-14.47 7.684-14.117 8.34-16.391-.564-16.392.191-13.914-8.663-14.298-8.017-7.706-14.442-8.362-14.069.556-16.347-.182-16.358 8.686-13.874 8.039-14.258 14.47-7.687 14.117-8.34 16.391.562 16.402-.186 13.914 8.66 14.288 8.018 7.706 14.438 8.362 14.069-.556 16.347.182 16.358-8.686 13.877z"/> - <path d="M237.028 124.291c0 27.754-22.499 50.253-50.253 50.253s-50.253-22.499-50.253-50.253 22.5-50.253 50.253-50.253 50.253 22.5 50.253 50.253z" fill="#fff"/> - </g> -</svg> diff --git a/img/flags/1x1/tz.svg b/img/flags/1x1/tz.svg deleted file mode 100644 index 58e9e1a..0000000 --- a/img/flags/1x1/tz.svg +++ /dev/null @@ -1,15 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" height="512" width="512" viewBox="0 0 512 512"> - <defs> - <clipPath id="a"> - <path fill-opacity=".67" d="M102.87 0h496.06v496.06H102.87z"/> - </clipPath> - </defs> - <g clip-path="url(#a)" transform="translate(-106.17) scale(1.0321)"> - <g fill-rule="evenodd" stroke-width="1pt"> - <path fill="#09f" d="M0 0h744.102v496.068H0z"/> - <path d="M0 0h744.102L0 496.068V0z" fill="#090"/> - <path d="M0 496.068h165.356l578.746-392.72V0H578.746L0 392.72v103.348z"/> - <path d="M0 378.07L567.088 0h55.89L0 415.333V378.07zM121.103 496.068L744.082 80.735v37.263l-567.089 378.07H121.1z" fill="#ff0"/> - </g> - </g> -</svg> diff --git a/img/flags/1x1/ua.svg b/img/flags/1x1/ua.svg deleted file mode 100644 index 90d8551..0000000 --- a/img/flags/1x1/ua.svg +++ /dev/null @@ -1,6 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" height="512" width="512" viewBox="0 0 512 512"> - <g fill-rule="evenodd" stroke-width="1pt"> - <path fill="#ffd500" d="M0 0h512.005v512H0z"/> - <path fill="#005bbb" d="M0 0h512.005v256H0z"/> - </g> -</svg> diff --git a/img/flags/1x1/ug.svg b/img/flags/1x1/ug.svg deleted file mode 100644 index 477edd2..0000000 --- a/img/flags/1x1/ug.svg +++ /dev/null @@ -1,30 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" height="512" width="512" viewBox="0 0 512 512"> - <defs> - <clipPath id="a"> - <path fill-opacity=".67" d="M124.02 0h496.06v496.06H124.02z"/> - </clipPath> - </defs> - <g clip-path="url(#a)" transform="translate(-128) scale(1.0321)"> - <path fill-rule="evenodd" fill="#ffe700" d="M0 330.73h744.09v82.665H0z"/> - <path fill-rule="evenodd" d="M0 248.03h744.09v82.665H0z"/> - <path fill-rule="evenodd" fill="#de3908" d="M0 165.37h744.09v82.665H0z"/> - <path fill-rule="evenodd" fill="#ffe700" d="M0 82.701h744.09v82.665H0z"/> - <path fill-rule="evenodd" d="M0 0h744.09v82.665H0z"/> - <path d="M449.276 248.03c0 42.653-34.577 77.23-77.23 77.23s-77.23-34.577-77.23-77.23 34.577-77.23 77.23-77.23 77.23 34.577 77.23 77.23z" fill-rule="evenodd" stroke="#000" stroke-width=".67156pt" fill="#fffdff"/> - <path d="M358.42 188.825l-5.014-9.235c1.935-1.935 5.19-3.43 10.38-3.43 0 .352-.529 10.115-.529 10.115l-4.837 2.55z" fill-rule="evenodd" stroke="#000" stroke-width=".67156pt" fill="#de3108"/> - <path d="M363.255 186.368l.704-10.203s10.38-.616 16.008 6.156c.088-.088-5.54 7.916-5.54 7.916l-11.172-3.87z" fill-rule="evenodd" stroke="#000" stroke-width=".67156pt" fill="#ffe700"/> - <path d="M374.605 190.148l5.101-7.915c3.43 3.606 4.837 6.157 5.365 10.027.088.088-8.092 2.023-8.092 1.935s-2.286-3.959-2.374-4.047z" fill-rule="evenodd" stroke="#000" stroke-width=".67156pt" fill="#de3108"/> - <path stroke-linejoin="round" d="M360.972 320.847s9.587-10.994 28.234-8.619c-2.815-4.574-11.874-4.046-11.874-4.046s-2.814-21.373-.616-22.429 11.522.088 11.522.088c1.231 0 3.343-3.342 1.672-5.453-1.672-2.111-6.597-10.203-4.574-11.787 2.023-1.582 13.017.88 13.017.88l-31.048-39.756s-3.166-14.952 3.166-22.164c7.653-6.333 6.861-13.194 6.597-13.106-1.056-6.948-11.61-11.962-18.734-5.54-4.222 5.1-1.408 8.97-1.408 8.97s-11.082 2.99-11.522 4.926c-.44 1.935 12.49-.352 12.49-.352l-1.232 8.884S331.507 234.21 350.77 254c.176-.088.616-.88.616-.88s6.773 8.357 13.897 10.203c6.684 6.861 6.07 5.805 6.07 5.805s1.318 10.82.087 12.93c-1.671-.528-18.734-1.143-21.286-.176-2.286.704-11.082.264-8.883 14.6 1.67-3.87 3.166-7.3 3.166-7.3s-.264 5.19 1.848 7.037c-.352-5.454 2.023-9.147 2.023-9.147s.44 5.98 1.758 6.86c1.32.88 1.32-9.675 8.62-8.796 7.3.88 12.578.616 12.578.616s2.463 20.67 1.671 22.605c-5.278-1.232-17.855.528-18.647 3.694 7.388-.44 10.82.44 10.82.44s-5.982 5.277-4.135 8.355z" fill-rule="evenodd" stroke="#000" stroke-linecap="round" stroke-width=".83945"/> - <path stroke-linejoin="round" d="M363.934 208.066s-18.304 20.175-10.407 35.613c.42-2.153.237-3.505.5-3.417-.44-.264 2.27 1.857 2.064 1.444.058-1.116-.825-3.508-.825-3.508l2.477.62-1.446-2.684 3.51.413s-1.239-3.303-.826-3.303c.412 0 2.89.207 2.89.207-5.206-9.342-.296-17.1 2.063-25.385z" fill-rule="evenodd" stroke="#9ca69c" stroke-linecap="round" stroke-width=".83945" fill="#9ca69c"/> - <path d="M370.293 190.76s.968 6.948-2.814 8.97c-.616.44-2.99 1.233-2.639 2.64.44 1.935 1.495 1.583 2.99 1.231 3.958-.704 8.532-9.147 2.463-12.841z" fill-rule="evenodd" stroke="#9ca69c" stroke-width=".67156pt" fill="#9ca69c"/> - <path d="M363.524 196.743a1.495 1.495 0 1 1-2.99 0 1.495 1.495 0 0 1 2.99 0z" fill-rule="evenodd" fill="#fff"/> - <path d="M357.628 202.545c-.968.792-6.07 6.07-1.056 8.005 5.19-1.408 3.782-2.375 4.926-3.519.03-2.374-2.58-2.99-3.87-4.486z" fill-rule="evenodd" stroke="#000" stroke-width=".67156pt" fill="#de3108"/> - <path stroke-linejoin="round" d="M368.709 252.422c-.264 1.144-1.407 5.365.175 8.62 4.399-1.847 6.421-1.32 7.917-.352-3.606-2.903-5.013-4.134-8.092-8.268z" fill-rule="evenodd" stroke="#9ca69c" stroke-linecap="round" stroke-width=".83945" fill="#9ca69c"/> - <path stroke-linejoin="round" d="M376.277 272.388l.264 9.85s3.43.617 5.013 0c1.584-.615-.088-6.86-5.277-9.85z" fill-rule="evenodd" stroke="#fff" stroke-linecap="round" stroke-width=".83945" fill="#fff"/> - <path d="M401.165 273.617s-6.333-15.305-22.517-19.175-14.073-21.109-12.753-22.165c.704-1.495 1.231-3.782 5.893-1.582 4.662 2.198 26.123 13.016 29.201 13.544s.44 29.73.176 29.378z" fill-rule="evenodd" stroke="#000" stroke-width=".67156pt" fill="#9ca69c"/> - <path stroke-linejoin="round" d="M385.773 254.356c-.264.176 21.637 12.93 15.04 23.924 6.246-4.134 4.222-11.346 4.222-11.346s5.101 13.281-7.3 19.79c1.32 1.144 2.2.88 2.2.88l-2.112 2.11s-.968 1.583 7.388-2.463c-2.287 1.848-2.462 3.167-2.462 3.167s.615 1.76 6.068-2.99c-4.398 4.75-5.365 7.212-5.365 7.124 11.874-1.056 37.733-39.668-8.18-51.103 2.463 2.552 2.11 2.2 2.11 2.2l-11.61 8.707z" fill-rule="evenodd" stroke="#000" stroke-width=".83945" fill="#de3108"/> - <path stroke-linejoin="round" d="M386.74 250.575c2.99 2.111 4.045 2.815 4.397 3.87-2.726-.615-5.189-.44-5.189-.44s-5.893-5.628-6.948-6.068c-.792 0-5.366-2.903-5.366-2.903-2.286-1.143-4.397-9.059 4.047-6.772 8.706 4.133 9.938 4.486 9.938 4.486l10.379 3.254 5.98 6.685s-10.641-5.278-11.96-5.366c2.902 2.375 4.573 5.63 4.573 5.63-3.372-.969-6.303-1.848-9.851-2.376z" fill-rule="evenodd" stroke="#000" stroke-linecap="round" stroke-width=".83945" fill="#fff"/> - <path d="M345.318 203.338s10.203-2.463 11.434-2.11" stroke="#fff" stroke-linecap="round" stroke-width=".83945" fill="none"/> - <path fill-rule="evenodd" fill="#de3908" d="M0 413.4h744.09v82.665H0z"/> - </g> -</svg> diff --git a/img/flags/1x1/um.svg b/img/flags/1x1/um.svg deleted file mode 100644 index 037114a..0000000 --- a/img/flags/1x1/um.svg +++ /dev/null @@ -1,45 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" height="512" width="512" viewBox="0 0 512 512"> - <defs> - <clipPath id="a"> - <path fill-opacity=".67" d="M0 0h130v130H0z"/> - </clipPath> - </defs> - <g fill-rule="evenodd" clip-path="url(#a)" transform="scale(3.9385)"> - <g stroke-width="1pt"> - <g fill="#bd3d44"> - <path d="M0 0h247v10H0zM0 20h247v10H0zM0 40h247v10H0zM0 60h247v10H0zM0 80h247v10H0zM0 100h247v10H0zM0 120h247v10H0z"/> - </g> - <g fill="#fff"> - <path d="M0 10h247v10H0zM0 30h247v10H0zM0 50h247v10H0zM0 70h247v10H0zM0 90h247v10H0zM0 110h247v10H0z"/> - </g> - </g> - <path fill="#192f5d" d="M0 0h98.8v70H0z"/> - <g fill="#fff"> - <path d="M8.233 2.996l.9 2.767h2.908l-2.353 1.71.899 2.766-2.354-1.71-2.353 1.71.899-2.766-2.354-1.71h2.91zM24.7 2.996l.899 2.767h2.909l-2.353 1.71.898 2.766L24.7 8.53l-2.353 1.71.898-2.766-2.353-1.71h2.909zM41.167 2.996l.899 2.767h2.909l-2.353 1.71.899 2.766-2.354-1.71-2.353 1.71.899-2.766-2.354-1.71h2.91zM57.633 2.996l.899 2.767h2.909l-2.353 1.71.899 2.766-2.354-1.71-2.353 1.71.899-2.766-2.354-1.71h2.91zM74.1 2.996l.899 2.767h2.909l-2.354 1.71.9 2.766L74.1 8.53l-2.353 1.71.898-2.766-2.353-1.71h2.909zM90.567 2.996l.899 2.767h2.909l-2.354 1.71.9 2.766-2.354-1.71-2.353 1.71.898-2.766-2.353-1.71h2.909z"/> - <g> - <path d="M16.467 9.996l.899 2.767h2.909l-2.353 1.71.898 2.766-2.353-1.71-2.353 1.71.898-2.766-2.353-1.71h2.909zM32.933 9.996l.899 2.767h2.909l-2.353 1.71.899 2.766-2.354-1.71-2.353 1.71.899-2.766-2.354-1.71h2.91zM49.4 9.996l.899 2.767h2.909l-2.353 1.71.899 2.766-2.354-1.71-2.353 1.71.899-2.766-2.354-1.71h2.91zM65.867 9.996l.899 2.767h2.909l-2.353 1.71.898 2.766-2.353-1.71-2.353 1.71.899-2.766-2.354-1.71h2.91zM82.333 9.996l.899 2.767h2.909l-2.354 1.71.9 2.766-2.354-1.71-2.353 1.71.898-2.766-2.353-1.71h2.909z"/> - </g> - <g> - <path d="M8.233 16.996l.9 2.767h2.908l-2.353 1.71.899 2.766-2.354-1.71-2.353 1.71.899-2.766-2.354-1.71h2.91zM24.7 16.996l.899 2.767h2.909l-2.353 1.71.898 2.766-2.353-1.71-2.353 1.71.898-2.766-2.353-1.71h2.909zM41.167 16.996l.899 2.767h2.909l-2.353 1.71.899 2.766-2.354-1.71-2.353 1.71.899-2.766-2.354-1.71h2.91zM57.633 16.996l.899 2.767h2.909l-2.353 1.71.899 2.766-2.354-1.71-2.353 1.71.899-2.766-2.354-1.71h2.91zM74.1 16.996l.899 2.767h2.909l-2.354 1.71.9 2.766-2.354-1.71-2.353 1.71.898-2.766-2.353-1.71h2.909zM90.567 16.996l.899 2.767h2.909l-2.354 1.71.9 2.766-2.354-1.71-2.353 1.71.898-2.766-2.353-1.71h2.909z"/> - <g> - <path d="M16.467 23.996l.899 2.767h2.909l-2.353 1.71.898 2.766-2.353-1.71-2.353 1.71.898-2.766-2.353-1.71h2.909zM32.933 23.996l.899 2.767h2.909l-2.353 1.71.899 2.766-2.354-1.71-2.353 1.71.899-2.766-2.354-1.71h2.91zM49.4 23.996l.899 2.767h2.909l-2.353 1.71.899 2.766-2.354-1.71-2.353 1.71.899-2.766-2.354-1.71h2.91zM65.867 23.996l.899 2.767h2.909l-2.353 1.71.898 2.766-2.353-1.71-2.353 1.71.899-2.766-2.354-1.71h2.91zM82.333 23.996l.899 2.767h2.909l-2.354 1.71.9 2.766-2.354-1.71-2.353 1.71.898-2.766-2.353-1.71h2.909z"/> - </g> - </g> - <g> - <path d="M8.233 30.996l.9 2.767h2.908l-2.353 1.71.899 2.766-2.354-1.71-2.353 1.71.899-2.766-2.354-1.71h2.91zM24.7 30.996l.899 2.767h2.909l-2.353 1.71.898 2.766-2.353-1.71-2.353 1.71.898-2.766-2.353-1.71h2.909zM41.167 30.996l.899 2.767h2.909l-2.353 1.71.899 2.766-2.354-1.71-2.353 1.71.899-2.766-2.354-1.71h2.91zM57.633 30.996l.899 2.767h2.909l-2.353 1.71.899 2.766-2.354-1.71-2.353 1.71.899-2.766-2.354-1.71h2.91zM74.1 30.996l.899 2.767h2.909l-2.354 1.71.9 2.766-2.354-1.71-2.353 1.71.898-2.766-2.353-1.71h2.909zM90.567 30.996l.899 2.767h2.909l-2.354 1.71.9 2.766-2.354-1.71-2.353 1.71.898-2.766-2.353-1.71h2.909z"/> - <g> - <path d="M16.467 37.996l.899 2.767h2.909l-2.353 1.71.898 2.766-2.353-1.71-2.353 1.71.898-2.766-2.353-1.71h2.909zM32.933 37.996l.899 2.767h2.909l-2.353 1.71.899 2.766-2.354-1.71-2.353 1.71.899-2.766-2.354-1.71h2.91zM49.4 37.996l.899 2.767h2.909l-2.353 1.71.899 2.766-2.354-1.71-2.353 1.71.899-2.766-2.354-1.71h2.91zM65.867 37.996l.899 2.767h2.909l-2.353 1.71.898 2.766-2.353-1.71-2.353 1.71.899-2.766-2.354-1.71h2.91zM82.333 37.996l.899 2.767h2.909l-2.354 1.71.9 2.766-2.354-1.71-2.353 1.71.898-2.766-2.353-1.71h2.909z"/> - </g> - </g> - <g> - <path d="M8.233 44.996l.9 2.767h2.908l-2.353 1.71.899 2.766-2.354-1.71-2.353 1.71.899-2.766-2.354-1.71h2.91zM24.7 44.996l.899 2.767h2.909l-2.353 1.71.898 2.766-2.353-1.71-2.353 1.71.898-2.766-2.353-1.71h2.909zM41.167 44.996l.899 2.767h2.909l-2.353 1.71.899 2.766-2.354-1.71-2.353 1.71.899-2.766-2.354-1.71h2.91zM57.633 44.996l.899 2.767h2.909l-2.353 1.71.899 2.766-2.354-1.71-2.353 1.71.899-2.766-2.354-1.71h2.91zM74.1 44.996l.899 2.767h2.909l-2.354 1.71.9 2.766-2.354-1.71-2.353 1.71.898-2.766-2.353-1.71h2.909zM90.567 44.996l.899 2.767h2.909l-2.354 1.71.9 2.766-2.354-1.71-2.353 1.71.898-2.766-2.353-1.71h2.909z"/> - <g> - <path d="M16.467 51.996l.899 2.767h2.909l-2.353 1.71.898 2.766-2.353-1.71-2.353 1.71.898-2.766-2.353-1.71h2.909zM32.933 51.996l.899 2.767h2.909l-2.353 1.71.899 2.766-2.354-1.71-2.353 1.71.899-2.766-2.354-1.71h2.91zM49.4 51.996l.899 2.767h2.909l-2.353 1.71.899 2.766-2.354-1.71-2.353 1.71.899-2.766-2.354-1.71h2.91zM65.867 51.996l.899 2.767h2.909l-2.353 1.71.898 2.766-2.353-1.71-2.353 1.71.899-2.766-2.354-1.71h2.91zM82.333 51.996l.899 2.767h2.909l-2.354 1.71.9 2.766-2.354-1.71-2.353 1.71.898-2.766-2.353-1.71h2.909z"/> - </g> - </g> - <g> - <path d="M8.233 58.996l.9 2.767h2.908l-2.353 1.71.899 2.766-2.354-1.71-2.353 1.71.899-2.766-2.354-1.71h2.91zM24.7 58.996l.899 2.767h2.909l-2.353 1.71.898 2.766-2.353-1.71-2.353 1.71.898-2.766-2.353-1.71h2.909zM41.167 58.996l.899 2.767h2.909l-2.353 1.71.899 2.766-2.354-1.71-2.353 1.71.899-2.766-2.354-1.71h2.91zM57.633 58.996l.899 2.767h2.909l-2.353 1.71.899 2.766-2.354-1.71-2.353 1.71.899-2.766-2.354-1.71h2.91zM74.1 58.996l.899 2.767h2.909l-2.354 1.71.9 2.766-2.354-1.71-2.353 1.71.898-2.766-2.353-1.71h2.909zM90.567 58.996l.899 2.767h2.909l-2.354 1.71.9 2.766-2.354-1.71-2.353 1.71.898-2.766-2.353-1.71h2.909z"/> - </g> - </g> - </g> -</svg> diff --git a/img/flags/1x1/un.svg b/img/flags/1x1/un.svg deleted file mode 100644 index ae9f28f..0000000 --- a/img/flags/1x1/un.svg +++ /dev/null @@ -1,16 +0,0 @@ -<svg xmlns:xlink="http://www.w3.org/1999/xlink" xmlns="http://www.w3.org/2000/svg" height="512" width="512" viewBox="0 0 512 512"> - <path fill="#4b92db" fill-rule="evenodd" d="M0 0h512v512H0z"/> - <g transform="translate(-128.692) scale(.64)"> - <path d="M663.853 587.03c-2.694 3.08-6.18 5.956-9.466 8.608-21.233-21.943-46.16-46.262-69.854-46.262-14.69 0-25.27 11.182-37.613 19.072-17.13 10.95-40.626 17.115-60.76 9.08-10.832-4.113-21.324-10.17-29.166-20.01 15.848 10.93 39.58 12.4 57.472 4.977 19.776-8.205 39.904-19.1 62.44-19.1 33.223 0 64.797 22.474 86.947 43.636zM418.31 518.017c21.997 25.04 57.872 16.983 87.235 23.237 4.087.87 7.926 2.227 12.313 1.554-3.49-2.214-8.118-2.463-12.15-3.982-22.783-8.583-26.335-32.967-38.804-49.748 15.926 10.587 29.12 25.082 44.012 38.703 10.364 9.48 23.277 13.537 36.67 16.262-3.218 1.176-7.428.9-10.894 1.758-24.056 5.968-50.727 15.388-76.324 6.94-16.52-5.45-33.71-18.36-42.057-34.724zm-35.257-57.95c13.72 31.063 48.19 33.496 71.11 52.552 4.36 3.624 8.68 6.96 13.467 9.19l.247-.25c-5.29-4.784-11.012-10.487-15.11-16.44-13.1-19.034-8.74-45.05-18.84-65.23 9.177 10.987 17.784 22.3 23.068 34.882 8.503 20.246 11.392 43.342 30.463 58.726-20.64-6.81-44.452-5.454-63.04-17.628-19.536-12.797-37.643-32.996-41.365-55.802zm-14.697-62.846c1.984 27.368 31.12 41.987 45.014 64.484 2.967 4.805 6.02 9.765 10.33 13.645-.672-2.914-3.07-5.496-4.39-8.355-4.455-9.653-6.472-20.823-5.36-32.31 1.354-13.975 7.18-26.953 4.944-41.655 11.975 25.848 8.112 58.162 15.033 86.11 1.53 6.183 5.296 11.594 7.616 17.45-11.766-8.95-27.185-16.896-40.1-27.076-12.49-9.845-23.332-21.384-28.967-36.4-4.06-10.818-5.117-23.723-4.12-35.894zm.814-50.426c1.405-6.108 2.48-12.43 5.138-18.033-5.03 25.818 12.144 44.467 18.008 66.803 2.21 8.417 2.966 17.36 6.37 25.215.317.17.592-.16.788-.414-8.473-23.77 3.948-45.74 16.05-64.477 3.18-4.925 4.71-10.66 6.196-16.458 1.308 10.76-.982 23.217-2.973 34.32-2.563 14.297-7.45 27.696-11.332 41.49-2.557 8.616-1.883 18.34-.57 27.37l-1.235-.985c-9.01-16.632-26.784-29.625-32.152-47.778-4.29-14.508-7.258-31.27-4.288-47.053zm9.502-27.77c0-19.538 7.607-35.475 19.018-50.025.33-.166.567-.498.994-.42-12.56 19.108-1.128 43.228-2.742 64.9l-1.657 22.245c.246.162.246.83.83.574.742-2.48.967-5.12 1.4-7.68 3.023-17.932 18.77-30.414 32.124-43.074a28.528 28.528 0 0 0 6.96-10.342c-1.11 8.933-3.602 18.09-7.612 26.208-10.28 20.81-30.132 37.608-33.703 61.257-1.73-22.666-15.613-39.515-15.613-63.647zm33.112-65.904c6.316-7.004 13.396-12.46 21.824-14.617-16.366 11.253-15.477 31.366-20.488 48.183-1.832 6.15-4.525 11.91-5.957 18.265l.415.332c2.722-7.185 7.394-14.09 13.48-19.834 11.512-10.86 28.82-17.434 34.515-33.32-.26 22.076-19.08 38.858-36.266 51.84-7.71 5.824-14.26 13.642-18.258 21.838.667-6.1.97-11.175.426-17.13-1.764-19.284-2.91-40.903 10.308-55.556zm66.428-37.117c-12.146 10.658-20.25 24.377-29.582 36.71-7.76 10.256-18.41 16.61-27.567 25.218 4.943-10.255 5.856-22.007 12.134-31.93 10.735-16.966 28.478-23.55 45.015-29.997z" fill="#fff" id="a"/> - <use height="100%" width="100%" xlink:href="#a" transform="matrix(-1 0 0 1 1202.2 0)"/> - </g> - <path d="M350.946 279.475l-2.296-1.253a103.363 103.363 0 0 1-19.024 27.078l-13.414-13.414c6.572-6.772 11.87-14.458 15.773-22.766l-2.285-1.25a81.638 81.638 0 0 1-15.31 22.19l-12.153-12.15a64.04 64.04 0 0 0 12.344-18.297l-2.267-1.237a61.786 61.786 0 0 1-11.894 17.72l-13.43-13.43a42.413 42.413 0 0 0 8.58-13.437l-2.268-1.24a40.13 40.13 0 0 1-8.118 12.868l-12.188-12.186a22.616 22.616 0 0 0 5.77-13.93h17.252a39.77 39.77 0 0 1-2.715 13.25l2.268 1.237a42.477 42.477 0 0 0 2.988-14.488h19.018a61.198 61.198 0 0 1-5.264 23.634l2.268 1.238a63.916 63.916 0 0 0 5.538-24.873h17.22a80.816 80.816 0 0 1-7.64 33.13l2.286 1.25c5-10.64 7.717-22.3 7.897-34.38h19.017c-.19 15.565-3.856 30.302-10.248 43.482l2.296 1.253c6.876-14.162 10.526-29.8 10.526-46.005 0-13.782-2.64-27.15-7.657-39.554l-2.357 1.012c4.725 11.705 7.286 24.292 7.444 37.27h-19.02a83.743 83.743 0 0 0-5.91-29.753l-2.34 1.002a81.144 81.144 0 0 1 5.708 28.75h-17.22a64.014 64.014 0 0 0-4.318-21.944l-2.34 1.005a61.492 61.492 0 0 1 4.117 20.94h-19.02a42.528 42.528 0 0 0-2.577-13.428l-2.34 1.003a39.957 39.957 0 0 1 2.377 12.425h-17.252a22.614 22.614 0 0 0-5.77-13.93l12.2-12.198a39.8 39.8 0 0 1 8.447 13.704l2.338-1.003a42.383 42.383 0 0 0-8.99-14.497l13.448-13.447a61.288 61.288 0 0 1 13.023 20.432l2.34-1.005a63.872 63.872 0 0 0-13.564-21.224l12.175-12.18c7.54 7.778 13.335 16.802 17.218 26.598l2.34-1.003c-4.013-10.087-9.988-19.382-17.76-27.39l13.446-13.448c9.51 9.742 16.844 21.046 21.798 33.322l2.356-1.014c-5.234-12.953-13.06-24.85-23.235-35.026-10.215-10.215-22.165-18.057-35.174-23.292l-.937 2.385c12.302 4.955 23.63 12.3 33.39 21.827l-13.445 13.448c-7.872-7.628-16.992-13.542-26.893-17.548l-.928 2.365c9.574 3.884 18.4 9.603 26.024 17l-12.176 12.177a63.957 63.957 0 0 0-20.144-13.143l-.93 2.363a61.43 61.43 0 0 1 19.278 12.577l-13.443 13.45a42.493 42.493 0 0 0-12.782-8.315l-.93 2.367a39.912 39.912 0 0 1 11.914 7.744l-12.198 12.2a22.61 22.61 0 0 0-13.933-5.77v-17.25a39.855 39.855 0 0 1 14.218 3.075l.93-2.368a42.46 42.46 0 0 0-15.146-3.252V171.91a61.42 61.42 0 0 1 22.097 4.562l.93-2.365a63.953 63.953 0 0 0-23.03-4.738v-17.23c10.213.157 20.114 2.193 29.323 5.927l.928-2.366c-9.5-3.85-19.713-5.946-30.25-6.102v-19.02c12.954.156 25.518 2.71 37.2 7.413l.937-2.385c-12.36-4.977-25.68-7.6-39.406-7.6a104.8 104.8 0 0 0-47.185 11.186l1.16 2.218c13.747-6.89 28.958-10.642 44.756-10.832v19.02a83.328 83.328 0 0 0-35.914 8.71l1.155 2.212c10.697-5.295 22.505-8.196 34.76-8.383v17.223a63.718 63.718 0 0 0-26.758 6.452l1.162 2.222a61.326 61.326 0 0 1 25.597-6.134v19.02a42.323 42.323 0 0 0-16.764 3.995l1.168 2.23a39.848 39.848 0 0 1 15.597-3.685v17.254c-2.675.15-5.228.76-7.58 1.752l1.166 2.23a20.243 20.243 0 0 1 7.685-1.506 20.16 20.16 0 0 1 14.346 5.94 20.157 20.157 0 0 1 5.942 14.348c0 11.186-9.1 20.29-20.287 20.29-5.42 0-10.514-2.11-14.345-5.943a20.16 20.16 0 0 1-5.943-14.348c0-5.42 2.11-10.515 5.943-14.347a20.27 20.27 0 0 1 6.66-4.437l-1.166-2.23a22.804 22.804 0 0 0-6.343 4.023l-12.214-12.2a39.964 39.964 0 0 1 10.533-7.138l-1.168-2.23a42.715 42.715 0 0 0-11.15 7.585l-13.46-13.46a61.61 61.61 0 0 1 15.78-11.005l-1.163-2.222a64.408 64.408 0 0 0-16.39 11.45l-12.2-12.198a81.333 81.333 0 0 1 20.588-14.544l-1.155-2.212a84.286 84.286 0 0 0-21.203 14.988l-13.475-13.476a103.01 103.01 0 0 1 25.836-18.408l-1.16-2.218c-20.535 10.32-37.254 27.138-47.434 47.755l2.208 1.193a103.013 103.013 0 0 1 18.752-26.525l13.476 13.476a84.178 84.178 0 0 0-15.45 22.116l2.2 1.19a81.395 81.395 0 0 1 15.018-21.536l12.2 12.198a64.358 64.358 0 0 0-12 17.56l2.205 1.19a61.47 61.47 0 0 1 11.57-16.974l13.46 13.46a42.705 42.705 0 0 0-8.232 12.592l2.224 1.202a39.897 39.897 0 0 1 7.79-12.01l12.206 12.204a22.708 22.708 0 0 0-5.774 13.924H215.98a39.944 39.944 0 0 1 3.032-14.118l-2.225-1.203a42.334 42.334 0 0 0-3.35 15.32h-19.016a61.305 61.305 0 0 1 5.568-24.4l-2.206-1.19a63.703 63.703 0 0 0-5.9 25.59H174.66c.18-11.894 2.91-23.368 7.91-33.813l-2.202-1.188a83.34 83.34 0 0 0-8.245 35H153.1c.187-15.534 3.816-30.5 10.487-44.067l-2.21-1.193a104.815 104.815 0 0 0-10.85 46.53 105.85 105.85 0 0 0 4.246 29.727l2.49-.626a103.235 103.235 0 0 1-4.163-27.828h19.018a84.078 84.078 0 0 0 3.598 23.183l2.466-.622a81.526 81.526 0 0 1-3.524-22.56h17.22a64.31 64.31 0 0 0 3.042 18.343l2.47-.623a61.664 61.664 0 0 1-2.97-17.72h19.02a42.597 42.597 0 0 0 2.446 13.063l2.472-.624a40.06 40.06 0 0 1-2.38-12.44h17.254a22.614 22.614 0 0 0 5.77 13.93l-12.2 12.2a39.88 39.88 0 0 1-8.445-13.69l-2.472.624a42.367 42.367 0 0 0 9.12 14.862l-13.446 13.448a61.298 61.298 0 0 1-14.164-23.648l-2.47.623c2.944 9.208 7.964 17.678 14.842 24.826l-12.18 12.18c-9.106-9.392-15.684-20.595-19.4-32.79l-2.467.623c3.83 12.63 10.636 24.24 20.072 33.962l-13.447 13.447c-11.902-12.195-20.402-26.83-25.075-42.765l-2.49.627c4.9 16.775 13.944 32.152 26.647 44.852 8.602 8.604 18.434 15.53 29.094 20.633l1.263-2.24c-10.088-4.807-19.42-11.285-27.64-19.312l13.445-13.446a83.906 83.906 0 0 0 23.575 16.132l1.255-2.226a81.347 81.347 0 0 1-23.03-15.703l12.176-12.178a63.965 63.965 0 0 0 19.357 12.81l1.255-2.222a61.443 61.443 0 0 1-18.81-12.377l13.45-13.448a42.36 42.36 0 0 0 14.804 9.1l1.27-2.25a39.862 39.862 0 0 1-14.28-8.646l12.2-12.2a22.594 22.594 0 0 0 13.93 5.77v17.255a40.032 40.032 0 0 1-11.85-2.18l-1.27 2.252a42.498 42.498 0 0 0 13.12 2.467v19.016a61.397 61.397 0 0 1-22.56-4.75l-1.253 2.222a63.905 63.905 0 0 0 23.813 5.07v17.222c-11.332-.175-22.276-2.665-32.316-7.22l-1.255 2.225c10.422 4.762 21.795 7.36 33.57 7.536v19.016c-15.105-.182-29.683-3.606-42.95-9.927l-1.263 2.24c14.022 6.71 29.478 10.26 45.484 10.26 16.79 0 32.968-3.924 47.527-11.29l-1.202-2.333a102.234 102.234 0 0 1-45.055 11.05v-19.016c12.838-.19 25.196-3.267 36.36-8.883l-1.186-2.302a80.786 80.786 0 0 1-35.173 8.642v-17.22c9.633-.187 18.903-2.498 27.3-6.687l-1.18-2.29a61.17 61.17 0 0 1-26.12 6.434v-19.016a42.33 42.33 0 0 0 17.415-4.287l-1.172-2.278a39.81 39.81 0 0 1-16.243 4.022v-17.25a22.61 22.61 0 0 0 13.932-5.773l12.186 12.19a40.225 40.225 0 0 1-9.875 6.813l1.172 2.277a42.62 42.62 0 0 0 10.513-7.282l13.426 13.427A61.74 61.74 0 0 1 283.4 288.64l1.18 2.29a64.17 64.17 0 0 0 15.872-11.196l12.15 12.15a81.61 81.61 0 0 1-20.148 14.31l1.187 2.302a83.897 83.897 0 0 0 20.786-14.788l13.414 13.414a103.325 103.325 0 0 1-25.505 18.222l1.203 2.332a105.686 105.686 0 0 0 27.052-19.603 105.555 105.555 0 0 0 20.368-28.573z" fill="#fff"/> - <path fill="#fff" d="M261.4 209.086l.03.763.643-.032-.035-.758zm-.933-1.041h.85v.648h-.85zm-.787-.115l.09-.64-.746-.108-.09.637zm-1.375-.33l-.743-.106.09-.643.743.108zm-6.132-.854h.85v.648h-.85zm-1.111 1.398l.09-.64-.742-.108-.09.64zm-.665.871l-.853-.216.155-.63.852.217zm-1.524.798l-.106-.65.63-.105.106.65zm-83.836 65.171h-.532v1.08h.852v1.404H166l-.11-1.62-.853-.324zm8.408 9.394l-.426.753-1.17-1.078-.852-1.185-.426-.972-.747-1.944 1.594.754.536 1.51.742.546zm21.49 28.722l-.852-1.3 1.278.22 1.38 1.186.537 1.404-.747.433-.427-.647-1.063-.325zm57.769-97.068h-1.17l-.213-2.375.64-.433v-1.188h-3.725l-.106-1.186.533-.325-.853-.324-.638.864-.21.972-1.066.217v.54h-.744v1.402l-2.98 2.484-5.957-.216c-.427.97-1.492-.11-1.492-.11-.21-.647-1.7 0-1.7 0 0 1.19-2.02-.538-2.02-.538l-3.725-2.7c-2.128-1.944-5.32.54-5.425 1.08.106 1.51-2.447.324-2.447.324s-2.127-.648-2.447.216c-.32.863-1.705.65-1.705.65l-.213.43-1.065.216-.21.647-1.278.216 3.19-.108c.852-.108-.32 1.836-.85 1.728l-1.49.108-.532.54h-1.383l-.638.864-2.02-.108s-1.172.97-1.064 1.295c.106.324-.213 1.296-.533 1.296-.32 0-.958.973-.745 1.296.215.324-.637 1.404-.637 1.404l-.212 1.08-.638.216v2.916l-1.278.864v1.295l-1.916 2.052.214 1.727-1.595 1.727.21 1.728-.956.324-.212.755-.425 2.266 1.064.11c.53-.216.425 1.404 0 1.62-.428.215-1.598.646-.958 1.078.64.434-1.703.325-1.703-.324 0-.646-1.277-1.187-1.595-.97-.32.215-.852-.972-.852-.972-1.17-1.187-4.787.107-4.787.107l-.535 1.727c-1.17.217-1.913 2.16-1.913 2.16-.958.324-1.703 1.51-1.383 1.835.317.324-.535.432-.535.432v2.376l-.53.756.105 2.59c.64 0 .533 1.19.533 1.19-1.064.106-.853 1.51-.853 1.51l-2.233.756-.425.647-2.766-.11-.744.758-.747-.757h-5.32l-.21-.538-1.065-.218-.107-1.186-1.595.107-.32.648-1.702.107c.106 1.08-1.702 2.7-1.913 2.27-.216-.433-1.385-1.622-.852-1.836.533-.217 1.917-.434 1.917-.434v-.755l-3.938-.107-.425.648-1.598.107v1.728l-.744.217c-.533.323.106 1.512.106 1.512.743.754-.107 1.94-.107 1.94-.64.65.53 1.84.53 1.84.853.213-.53.86-.53.86.21 1.08.85 1.405.85 1.405-.64 1.08.428 1.618.428 1.618l.106 1.837.745.433v1.185l.426.757h1.702l-.106-2.7c-1.49-1.728 1.276-2.16 1.384-1.513.107.648 1.277.973 1.277.973.213 1.62 2.022 2.59 2.553.973.532-1.622.957-.65 1.277.106.32.757 2.338 2.593 2.338 2.593h1.598l.214 1.51c1.808-.107 2.34.11 3.083 2.592.747 2.48 2.767 3.13 2.767 3.13l1.49-.108c0-1.294 1.49.218 1.49.866 0 .646 2.872 3.13 2.872 3.13l2.87.646 2.664 2.162 2.02-.216h.852c.53-1.837 3.085.106 3.296.755.215.648 1.917 1.728 2.128 1.187.214-.54 1.384-.214 1.597 1.404.213 1.62.957 1.297.957 1.297l6.065-.108 2.128-1.838 5.426-.106c2.766-.107 1.064-3.887.533-3.887-.958-.755.317-3.886.317-3.886l-7.766-7.234c-1.807 0-.212-2.593-.212-2.593 1.383-.864-.32-2.266-.32-2.266.214-1.297-.745-2.81-.745-2.81-1.913-1.294-1.383-3.78-1.383-3.78v-1.727c-1.595-1.51.64-1.728.64-1.728.743-1.294-.534-2.266-.534-2.266l-.106-1.404-1.702-.217-.21-5.075-3.83-5.506c-.748-.217-.215-1.51-.215-1.51.957-.542-.214-1.836-.214-1.836l-.107-2.376 2.233-.217.533-.863h1.062l-.105-2.808c.53-1.403 1.807-.648 1.807-.648l1.49.108.852-1.62.21-1.295-1.168-.107c-1.277-.757-.64-3.563-.64-3.563 2.023-3.025 4.362-1.297 4.362-1.297l1.49-.107c2.234 1.51.212 4.318.212 4.318-.425.65-.21 2.7-.21 2.7l.53 3.455-1.383 1.19c-1.17.647-1.17 2.158.107 2.482.85.107.53 2.16-.747.755-1.913 0 1.066 1.728.215 1.294 1.915.973 1.488-.863 1.488-.863l2.555-2.05c.958-.757 2.66 1.62 2.66 1.944 0 .323 4.256.106 4.256.106 1.17.756 1.595 2.7 1.595 2.7 1.17-1.512 3.616-.11 1.808.756 1.7 1.08 1.7 2.05 1.7 2.05 1.386-.432 1.386.648 1.386.972 0 .324.425-1.62.425-1.62-1.597-1.187 2.126-1.62 1.063.54l-.64.973 1.065.863.106 2.484c2.34-.216 1.702-3.132 1.702-3.132l1.064-.215c0-.972.744-.432.744-.432-.744-3.672 1.703-4.32 1.703-4.32 1.383-.323 1.49-3.24 1.49-3.24-.957-.43-.427-1.942.638-.645 1.063 1.293-.64-2.594-.64-2.594l-.85-.755-1.17-.11-.107-1.186h-1.913l-.32 1.512-.744.216-.214-.433-.318 1.187h-1.914l-.106-1.296 1.17-.322.425-.648.32-1.728h1.383l1.808-.54c.105-1.835 1.064-1.403 1.064-1.403l.637.54.958.754.107.647-.64.325-.105.865.32 1.187h.85c.32-1.728 2.555-1.728 3.192-.648l.64-1.512c-1.49-.756-.028-1.944.397-1.404.425.54 1.41-1.404 1.41-1.404s.745.972 0-.324c-.744-1.296.53-1.943.53-1.943-.21-1.295 1.385-1.08 1.385-1.08l.106-1.726-1.49-.11c-.318 1.512-1.595.217-.957-.107s1.275-.972 1.275-.972v-1.08l.64-.216.104-1.08h1.596l1.383-.647.32-.54 1.487-.108 2.128-1.944-.212-.863c-1.277 0 0-.972 0-.972l.21-1.616z"/> - <path d="M209.83 237.408l-1.915-.216.107.755h.53c.852 1.513.108 5.183.108 5.183s-1.275.107-1.49-.54c-.21-.647-.744 1.405-.32 1.73.426.32 1.917 0 2.023 1.187.105 1.187.957-.756.957-.756v-7.342z" fill="#fff"/> - <path fill="#fff" d="M210.253 249.5l.216-.972-.75-.32.107-1.62.642-.11.104-.76-1.6 1.085-1.063-.646v2.59l1.706 2.264zm.427 2.81l-.743.106-.11.865.852.108zm-.96 5.505l-.9.107v.758l.9-.107zm1.256-2.565c.25 0 .45-.203.45-.455 0-.255-.2-.46-.45-.46s-.45.205-.45.46c0 .252.2.456.45.456z"/> - <ellipse cy="257.062" cx="211.717" rx=".451" ry=".458" fill="#fff"/> - <ellipse cy="244.727" cx="211.742" rx=".451" ry=".458" fill="#fff"/> - <path fill="#fff" d="M241.53 241.404l.216-1.08.637-.325.11-1.08.42-.758.643-.753.21-.866 1.064-.646 1.278-.22.532-.645.215-1.293.075-.972.457-.65 1.273-.54v-2.05h-.636l-.106-.76-1.173-.106-.21.54h-.532l-.11.864h.64l.107.647-.427.432-.21.54-.853.218-1.915 1.837-.105.86-.532.76-.636 1.617-2.237.107-.426 1.944.315 1.618zm9.363-5.289v-1.512l-.214-1.404-1.595-.756-1.17 1.08-.214 1.512v.97l-1.063.218-.214 2.914-.85.325.107 1.08-1.17.324-1.17.324-.213 1.404-.85.54-.428 1.296-.532 3.13s.96 1.836 1.49.972c.532-.863 1.383-.97 1.383-.97l.32-.757 2.872.107c.214-1.188 1.596-.755 1.596-.215s1.065.107 1.065.107l.744-1.187h1.17l.106-1.295.533-.324v-1.945c1.702-.54 1.488-2.16 1.488-2.16l.428-.538-.214-.755c-.852-.325-.427-1.082.106-.866.533.216-.745-.972-.745-.972-.64.54-1.17-.647-1.17-.647h-1.597zm1.702 13.063c-.106 1.295-1.703 1.727-1.703 1.727l-1.17-.323-.637-.54-.107-1.513.957-.108.213.65 2.447.106zm5.747-6.906c.23.94.21-1.513.637-1.404.424.107.106-1.51.106-1.51l-1.915 1.4c.958.11 1.064 1.082 1.172 1.514zm5.638-5.619c.426.972.32 2.376 1.914 3.456.54.363-.32 1.08-.852.754-.53-.323-2.02-2.7-2.02-2.7v-1.403c.32-.862.774-.525.96-.107zm1.382 32.5l-.637-.22-.742.545.316.32.315.54zm-4.044-1.403v1.3m16.238-3.403l-.34-.545-.848.534.336.55zm29.938 23.051l.96.43.104 1.836c1.278 1.295 5.427.216 5.427-.108 0-.325-.214-3.995-.214-3.995l-.532-.54-.105-2.7c.425-1.404-2.023-3.456-2.235-3.022-.213.43-1.596.106-1.596.54 0 .43-.85 2.59-.425 3.347.425.756-.32.756-.425 1.51-.106.757-1.17 2.054-.958 2.703zm-2.342-4.32c-.202.818-.956 1.295-1.38.97-.43-.324.528.54.743.973.212.432.85.432 1.064 0 .21-.433.104-1.402.32-1.834.21-.433-.64-.54-.748-.108zm-4.947-19.808h.744v2.052h-.745zm11.015-20.788c-.465-.63 2.127-1.727 2.552-.43.425 1.293 0 1.08-.425.97-.427-.108-1.49.323-2.128-.54zm2.176-13.828l1.17.214.114-.636-1.173-.214zm-2.793 1.42l.592-.24-.215-.538-.136-.34-.316.177-.792.448-.692-.437-.336.544.853.54.16.102.16-.093.643-.36zm3.912-26.464h-1.597s.533.215-.955-1.19c-1.492-1.403-2.448.325-2.448.325l-1.702.215v1.728l-.852.324.108 1.08 1.17-.107s0 1.295.32.755c.32-.54 2.98.107 2.766 1.404-.087.532 2.66 1.942 2.34 3.67 1.384.217 1.065 1.62 1.065 1.62l1.807.216.533-1.08.53.11v-.65l-1.17-.323-.212-3.456-.745-.54.212-.863-.85-.324.426-1.403-.745-1.51zm4.679 11.013l-.85-.107-1.92.324-1.06 2.05s.53.325.956 1.08c.425.758.638 5.183-.638 5.94-1.276.756.107.323.107.323l-.215 2.376c.32 1.078.85.54 1.17 0 .322-.54.64-.648 1.066-1.188.427-.54 1.064-1.512 1.17-2.27.106-.754.64-1.94.32-2.265-.32-.324.32-1.835.32-1.835s.425-.865 0-1.728c-.426-.865.105-1.836.425-2.27l-.85-.43zm1.286 4.405l.11-.864.634.082-.11.864zm-.04 2.984l-.57-.29.32-.647.57.29zm-.926-8.572l-.428-.973s0-.863.213-1.296c.214-.43-.426-.862-.744-.97-.32-.11-.212-.972-.32-1.404-.105-.432-.85-.756-.85-.756s-.214-1.62-.214-1.943c0-.324-.957-.756-.638-1.08.32-.324.533-.755.853-.972.32-.216-.32-1.728.21-1.404.534.326.534.865.747 1.297.212.432-.107 1.944.426 2.268.53.323-.108 1.402.744 1.402.85 0 .32 2.053.32 2.053s-.215 1.51.316 1.62c.533.107.215 2.7.215 2.7l-.85-.54zm-6.912-17.498c.317.43.956.755.956 1.188 0 .432-.212.755.427.863.637.108 1.064-.108 1.276.432.214.54.214 1.403.108 1.835-.107.433.106 1.08.637 1.08.533 0 .64.11.64.433s.638-1.19.638-1.19c-.534-.43-.96-1.403-.96-1.403s-.53-1.51-.53-1.727c0-.216-.744-.433-1.063-.54-.32-.108-.853-1.08-.853-1.08l-1.275.11zm1.062-.967c-.32-.433-.64-.756-1.064-.97-.425-.218-.744-.434-1.17-.434a.698.698 0 0 1-.64-.97c.214-.54-.32-.756-.32-1.19 0-.43.32-.43.852-.106.533.324.426.43.853.972.425.54.637 1.08 1.06.97.43-.107.748.973 1.173.65.425-.325.32.755.32.755l-1.064.325zm-12.448 12.199c.587.596-3.19.43-3.19 0 0-.432.32-1.943 1.275-1.62.958.324 1.064-1.943 1.064-1.943s-.85.107-.106-.324c.745-.43 0-1.08-.32-1.403-.318-.325-.637-.864-.637-.864h1.49c.64-.434.85-2.484.85-2.484 1.277.43 1.916-.433 1.916-.433s.216.648.64 1.19c.426.538-1.066.754-.533 1.08.533.323.744 1.294.533 1.617-.214.324-1.385.108-1.385-.323 0-.433-.425.54 0 1.08.426.54-.53 1.295-.744 1.295-.213 0-1.594.216-.425.864 1.17.647 2.45.325 2.45.325s.956-.11 1.275.432c.32.54-.106.648-.638.648-.53 0-3.086-.217-3.086-.217s-.743.757-.424 1.08zm-6.81.972c.534-.107 1.808-.216 2.022.108.214.323-.745.755-.745.755l-1.277.216c-.425-.54-.53-.972 0-1.08zm13.728-9.068c.85-.432 2.66-.432 2.553-1.08-.105-.648 1.064-.864 1.064-.864l.32 1.295.958.647.106 1.188s.32-.216-.85.108c-1.172.324-.425.863-.425.863l-2.556.108-.32-1.08-.85-1.186zm-4.154-5.831c.648 0-.21 2.483 1.49 2.268 1.702-.217.108.755 1.383.863 1.277.11.958-.972 1.383-1.727.427-.754.214-1.187-.53-1.403-.747-.216-.747-.216-.96-1.08-.21-.864-1.062-1.08-1.062-1.08l-.32-1.295-1.383.863-1.382 1.836c0 1.406.744.757 1.383.757zm2.817 9.123l.32-.648.572.29-.32.65zm-1.114-1.027h.64v.756h-.64zm.537-14.387l.107.97-.634.074-.107-.972zm-1.81 10.067h.64v.54h-.64zm-1.675-.011l-.063-.645 1.064-.106.062.646zm-8.778 10.384l-.585-.255.32-.754.584.255zm-3.339-1.966l-.063-.643 1.066-.107.063.644zm-20.798-.092l.03.646 2.336-.107-.03-.646zm-1.567.832l-.212-.972.625-.14.212.97zm-.448.668l-.202-.614.32-.108.2.615zm5.321-1.821l-.105.755 1.17.11s.53.43.53.754.747.648 1.172.648c.425 0 1.595-.864 1.595-.864s.533-1.512.108-1.404c-.427.107-1.278.755-1.383.107-.108-.648-1.383-.324-1.383-.324l-1.704.217zm5.319-1.191c0 .324-.21.756.425.864.64.107 1.81-.43 1.916.216.108.648.108 1.08.958 1.405.85.324 1.384.433 2.022.433.636 0 2.022-.218 2.022-.218s1.505.236 1.807.54c1.17 1.19 1.915 1.512 2.234.973.318-.54-.107-1.727-.213-2.16-.107-.432-1.597-2.484-2.13-2.052-.53.433-.636 0-1.594.324-.958.324-2.98.11-3.085-.324-.106-.432-1.595-.646-1.595-1.08 0-.432-1.063-.97-.958-.324.106.648-.744.972-.96.757-.21-.217-.85.646-.85.646zm24.473-13.824l.747-2.373c-1.063-.218-.852-1.405-.852-1.405-.106-.972-1.595-2.052-2.128-1.728-.53.323-.32-2.268-.32-2.268s.96-.648 1.384-.324c.425.323-3.617-5.4-4.47-4.86-.85.54-2.763-.54-2.658-1.51.106-.972-3.83-4.212-3.83-4.212s-1.277-.863-1.49-.215c-.212.646-.637 1.08 0 1.4.638.326.532-.538 1.276.217.745.756 2.13 1.728 1.597 2.376-.533.65-1.17.865-1.17.865l.745.864h1.17l.213 1.834s1.275.65 1.595 1.404c.32.755.32 1.188 0 1.62-.32.432-.956 1.188-.85 1.943.106.755.957 1.08.957 1.08l.85.108.64.326v1.404c.85-.217 2.232.97 2.127 1.727-.106.755.21.323 1.275 1.08 1.066.755.747.864 1.49 1.403.746.54 1.385.215 1.702-.758z"/> - <path d="M285.363 176.62c-.106-.432-.32-1.944.32-1.836.637.11.213 0 .957.324.745.325.85-.54.85-.54h1.172l1.49 1.188-.215.972-1.063.107c-.53-.863-1.596-.54-1.383.217.214.755-.53 2.16-.955 2.267-.426.107-1.81.107-1.703-.54.106-.648.53-2.16.53-2.16zm-.851-2.918v-.863s-.108-.864-.64-.864c-.53 0-1.487-.647-1.276-1.08.214-.433-1.808-.864-1.808-.864s-1.807-1.728-1.17-1.51c.64.215.32-.758.32-.758s-1.277.216-1.597.11c-.32-.11-.213-1.08-.213-1.08s-1.274-.325-1.274 0c0 .323.425.323.636.97.213.647.107 1.728 1.065 1.943.958.217 1.17.432 1.277.864.106.434 1.276.54 1.276.54l.852.433 2.552 2.16zm-11.804-11.875l-.853-.214v.972l1.168.107zm-.004-3.67c-1.112-.844 1.488.648 1.488.648.85 0 1.383.648 1.383.973 0 .323 1.17.215 1.17.215l.11-.756-.854-1.08-.743-.54s-1.17-.107-1.17-.43c0-.324-.958 1.295-1.383.97zm19.571.646c-.31.945-.425 2.268-.957 2.268-.53 0-.32 1.406-.32 1.406s1.385 0 1.81.107c.425.107.425 1.187.425 1.187 1.597-.107 2.236 2.052 2.02 2.592-.212.54.64.54.64.54s0 1.727-.214 2.16c-.212.43 1.383.755 1.808 1.403.425.648-.214 2.807-.532 2.915-.32.108.85.43.745.97-.107.542.32 0 .426.866.106.863.32 2.698.32 2.698l1.488.11c.214-1.404 2.957-1.458 3.405-1.297 1.808.648 3.192 3.455 3.192 4.103 0 .647-1.17.756-1.17.756l.213 3.13c1.807.54 3.297 3.133 3.085 3.565-.213.432 1.275.325 1.275.325.214-1.945 2.022-1.296 2.127-.648.11.648.426 2.052.426 2.052l.532.97.745.755 1.17-.108.32.65 1.383.216s1.17 1.294 1.277 1.62c.107.322 1.702.214 2.127.322.425.108 1.065.432 1.17.972.108.54.746 1.404.746 1.404s1.276.325 1.383.756c.107.43.64 1.404.64 1.404l1.062.864.107.972 1.17.108.318 1.294 1.914-.107 1.066-.754c1.383-.755 2.34-1.728 2.447-2.16.105-.432.32-2.05 1.383-1.727 1.063.323.32-2.377.32-2.377s-1.49-1.08-1.384-1.62c.106-.54-1.49-1.62-1.383-2.05.107-.434-1.382-1.296-1.276-1.728.105-.433-.745-1.62-.745-1.62l-1.598-1.512-.213-.972-1.277-.106-2.552-3.132.107-.864-.745-.108v-1.187l-.743-.433-1.173-.107-2.34-2.59-.213-1.19h-1.17l.212-2.267c.746-.972.32-2.808.32-2.808s-1.49.756-2.234.432c-.746-.323.318-1.08.318-1.08v-.863l-.637-.648s-1.81.216-1.916-.108c-.106-.324-.425-1.728-.425-1.728l-.107-1.836-.743-.323-.108-.648-1.17.107V162.8l-.64-.217-.636-.324-.107-1.297-2.34-.107-.744-1.08-.85-1.296-2.66-.216-.64-.646-1.062-.217-.745-.323-.32.54-2.022.107-.106.648c-1.063.54-5.318.108-5.427.43zM303.45 156c-.17-.852 2.13-1.62 2.66-.972.533.647 2.022.757 2.235 3.996.075 1.16-1.916-1.188-1.916-1.188l-1.597-.54c-.85-.216-1.278-.755-1.383-1.296zm-31.205 1.32l-.58-.264.426-.973.582.263zm-5.499-10.606l-1.386-1.404v-1.188l-.425-.433-.426-1.512-1.383-.432-1.383.54-1.49.97-1.595.22-.853.97 3.405.322.637 1.082 2.448.215 1.594 1.62c1.386.432 1.704-.216.854-.97zm-.212-5.294c-.234-.948-1.597 1.188-.21 1.62 1.382.433 2.763 0 2.763 0l.32-.648 5.318.108c.428-.432.64-1.08.64-1.08s1.276-.432 1.807-.217c.533.217.108-1.51-.426-1.295-.53.216-1.594.108-1.594.108h-1.916c-.106-.755-1.808-.432-1.914 0-.108.432-.744.54-.744.54l-2.447.216c-.213.65-1.488 1.08-1.596.65zM256 159.642c1.636.52 2.233.134 2.341-.297.107-.433.213-.54.852-.648.638-.108-.107-1.404-.745-1.296-.64.11-1.277-.215-1.383-.755-.108-.54-1.17-1.943-1.277-.863-.106 1.08-.745 1.08-.64 1.836.108.754.428 1.887.853 2.024zm-12.23 1.216c-.077-.383 2.127-.432 2.447-.11.32.325.106.865 1.063.865s.532.648.426.972c-.106.324-1.17.216-1.278-.107-.105-.324-1.702-.434-1.702-.434s-.85-.648-.956-1.186zm35.34-22.464l-.54-.55-.452.458.742.755.205.206.22-.18 1.07-.865-.402-.506zm-5.706-3.078l-.335.55.85.538.166.11.17-.11 1.174-.757-.34-.546-1.004.647zm-2.904 22.628l-1.062-.112-.065.646.913.092.662 1.053.536-.346-.742-1.185-.085-.133zm-35.03 30.12l.108 1.188h1.594c.638 0-.53-.755-.53-.755s-1.278.108-1.173-.433zm2.027.036l.408-.5.64.538-.41.498zm-19.383-20.202l.452-.458.637.648-.452.458zm29.839 138.432l-.285.58.666.337-.22.224.456.46.532-.54.31-.316-.396-.204zm-7.581-7.734l-.642.54-.316.27.336.243.747.54.372-.525-.413-.3.32-.27zm79.518-19.986c-.14-.55-.76-.775-.83-.798l-.203.616v-.004c.05.02.124.058.198.106l.13.56c-.047.072-.1.14-.14.187l.468.44c.34-.382.467-.75.378-1.106zm-.056-2.114l.08-.972 1.038.163-.08.885zm25.696-8.342c.454-.288 1.036-.812.957.405-.08 1.213-.56.81-.957 1.213-.4.406-.64-1.214 0-1.62zm5.414-4.584c-.01-.02-.015-.095-.02-.15a1.764 1.764 0 0 0-.163-.675l-.57.29c.072.144.086.297.098.443.016.19.037.406.218.543.115.088.26.112.43.08l-.12-.628c.048.007.113.053.128.1zm-1.421.532c.162.657.4 1.304.41 1.33l.598-.227a12.71 12.71 0 0 1-.39-1.26l-.617.157zm-2.323 2.548l-.636-.064c-.05.51.072 1.14.575 1.24l.124-.634c.004 0 .01.004.012.004-.052-.046-.1-.306-.076-.546zm-2.797-12.884a.583.583 0 0 0-.35-.454c-.47-.207-1.267.136-1.657.4l.353.54c.403-.273.933-.405 1.052-.345a.074.074 0 0 1-.03-.035l.63-.106zm-29.465-34.496c-.426.433-1.383.65-1.383.65l-.32 1.186-.53.432s.105.324 0 1.08c-.107.755-1.065 1.187-1.065 1.187l-.425.54s-2.565.14-2.873 0c-.957-.43-.318-1.727.32-1.62.637.11-.108-1.835-.108-1.835l.853-.108s.105-1.944.425-1.944-.106-.647-.533-.972c-.426-.322-.958-1.402-1.385-1.295-.425.11-2.127 0-2.127 0l-.32.65-1.17.215s.1.835-.104 1.08c-.64.755-3.086 2.375-2.024-.324l.318-.646v-.972l-1.912-.107s-.958-.325-.958-.757-.107-.97-.107-.97l-2.234-2.484-2.658-.324-.214-.54-1.594-.216c-1.917-.97-3.62-.108-3.3 1.512.32 1.62.85 2.268-.212 2.268-1.065 0-1.277-.864-1.277-.864s-.85-.325-.85.107-.32 1.296 0 1.728c.32.43-.426 1.08-.746.755-.316-.324-1.168-1.294-.955-1.618.21-.324-1.492-2.376.21-2.7 1.704-.324-.105-1.296.534-1.51l.85-.433h.85l.533-.434-1.383-.215-.85-.107-1.597-.108c-1.595 1.08-1.913 2.376-1.913 2.376-.853 1.62-2.873-.647-2.128-1.51.744-.865-2.34-.11-2.874.323-.533.43-2.128.215-2.128.215-.32.973-1.808-.106-1.383-.755.427-.647.427-1.08.427-1.08l-.53-.108-.64 1.188c-1.49 0-1.915.863-1.597 1.403.32.54-.425-.108-.638.648-.21.756.107.756.746 1.08.64.324-.32.324.106.863.425.54 1.702 0 .958.757-.744.755-2.236.432-2.236.432-.105.97-2.127.755-2.338.432-.214-.324-1.81-2.268-1.81-2.268l-2.023-.108c-.21-1.51.96-.756 1.384-1.944.427-1.188.64-3.13.64-3.13s-1.705-.108-1.81.43c-.106.542-1.17.865-1.17.865s-.852.324-.533.756c.32.432-.64.646-.64.646s.167.698-.105.972c-.85.865-2.98.107-3.297-.216l-1.277-.54-1.277-.863-1.488.645-.425.433h-1.597l-.105 1.294 2.872.324.213 2.672-1.172-.403h-.744l-.32-.65-.637-.107v2.375l.638.54.533.54 1.064.108.213 1.296 2.66.11.318.538 1.597.108 3.085 3.13-.213.973-.533.324c.213.755-1.382.323-1.382.323v.647l.742.108.747.43 1.063-1.834c1.17-.755 1.7.325 1.81.972.104.648-.534.54-.534.54v1.513l.638.213c1.066 1.296-.425 2.053-.425 2.053l-.32 1.08c-.32.97-1.49.754-1.49.754l-.424.65-1.28.323 2.527.323c.24-.864.877-1.08 1.197-.648.32.433.32 1.19.32 1.19l.64.107-.108 1.187.64.217v3.453l.743.864c1.278-.54 1.278.325.638.756-.638.43-.213 2.375-.213 2.375l-.532.54v.864l-.638.43v1.19c-1.064-.54-2.34-.326-2.66 0-.957-.65-2.978-.433-2.978.108.637.863-.744 1.08-.744 1.08l-.746.863c.533 1.08-.53 1.187-.53 1.187v2.052l-1.278 1.188.107 2.808c0 .755 1.596.863 1.914.43.32-.43 1.598.866 1.598.866h.955l.214-1.945-.638-.325v-3.132l1.065-1.188c1.277-.43.85 2.81.85 3.133.107 1.187.638 1.08 1.17.863 1.065-.43.212 1.19-.638 1.08-.85-.106-.32 1.08-.32 1.08l.533.217-.96.756-.848.972-1.066-.324-1.276-.106-.426-.758-.746-.107-.106 1.51-.53.648-1.278 1.297c1.703 0-.214 1.185-.64 1.185.96.324-.104 1.297-2.55.542v.755l-.854.108.747.863.85.108-.32 1.836c0 1.403-3.51.43-3.83.108l-.105 1.943-.638.107.106 1.297-.106 1.836 1.17-.216v.756l2.874.108 4.15-4.427 2.446-.54c.212-1.08 1.275.217 1.275.217 1.065-.11 1.28.647 1.28.647l1.382.216c1.17.325.463.44.53.866.107.645.64.43.64.43l.213-1.404.64.107-.64-.756-1.17-.54-1.277-.54c-.852-1.187.213-.97 1.064-.862h1.383s1.597 2.158 1.597 2.698.745.65.745.65l.955-.11.32.756h.957l.32.645h1.915l.106-.97-1.81-.323-.105-1.08-1.276-.325c-.428-1.834.317-2.375.85-1.51l.638.106-.213-1.62.744-.216-.213-2.268-.638-.215v-.757l2.657.11c-.21-1.406.107-2.053.107-2.053h.745l.105.54 3.255.308 2.3-2.64c-.114-.2.233-.324-.02-.583-.32-.324-.747 0-1.28-.324-.53-.322 0-2.16-.106-2.59-.106-.432 1.81-1.082 1.49-.11-.318.974 0 1.405 0 1.405 1.384-1.295 2.554.108 2.45.433-.11.324.742.648 1.273.324.533-.324 1.17.972.958 1.618-.214.648-2.127.54-2.232-.107-.11-.648-.43-.432-.64-.107-.213.325-1.17.54-1.702.215a.507.507 0 0 1-.188-.172l-2.302 2.64.15.015c1.275.757.638 1.73.214 1.944-.428.217-1.172.217-1.172.217l-.21.43-2.768.216-.214 1.08c-1.383-.218-1.913 1.296-1.595 2.05.32.755 0 1.404 0 1.404l1.17.54 1.49-.43c.213-1.08 1.17-1.297 2.02-1.944.85-.648 2.236 1.186 1.81 2.05-.427.863-.427 1.188-.427 1.188l.106.972-1.063.43-.85.434-.108.54h-2.872l-.53.54-1.384.11-.428.646-.955.11s-1.597.755-.958 1.62c.638.863-2.66.755-3.405-.434-.214 1.08-1.383.108-1.383.108l-1.17-.325-.106-1.618c-.212-1.08-2.234-1.08-2.126-.324.106.756-3.832.324-3.832.324l-1.276.62-1.17.676-.107.54-1.917.215-.85.433-.32-.648h-.85l-.85 1.19c-2.235.108-4.362 1.403-4.15 1.943.213.54-.85 1.08-.85 1.08l-.96.32-.635.974-1.277.432-.213 2.27-.637.43v.972l-.746.214v.54l-1.064.11.637 1.62.854.432c1.49.214.85 2.052.85 2.052l.85.106.428 1.187.85 1.728c.32 1.297 1.278.973 1.703.865.426-.107.85 1.295.85 1.295l4.256.108s-.212.434.533.65c.743.214 5.637.432 5.85.108-.213-.973 2.66-1.19 3.83-.325 1.17.863 2.766.325 2.766.325l1.596 1.94 1.066 2.378 1.807.54 1.276.323.428 1.835.956.108.32 1.19c1.17.862-.32 2.698-.32 2.698v2.376l.852.432-.108.865 1.385 1.402 1.595.11 4.044 4.318 3.19.97.53 1.73.854-.11.638-.538 2.553-.108 1.277-1.19 1.383-.214 11.81-10.042-1.066-.647v-2.375c1.916-1.403 2.022-3.888.214-4.104-1.372-.164-.744-1.62.533-1.835l.744-.324v-.973l2.448-2.266v-1.728l-5.318-4.43c-2.342-.862 0-6.046 1.594-5.937 1.597.106-.105-7.99-.105-7.99l-.854-.43.214-2.594h-1.17l-1.915 2.484-.53 1.726c-.214 2.27-6.81 1.836-7.13 1.51-.32-.323-2.553-1.294-2.553-1.294s-1.703-1.403-2.022-.97c-.32.432-1.808-.542-1.808-.217 0 .323-1.383-.756-1.383-.756l-2.128-.756 1.597-.325-.32-1.295 2.763 1.403c.32.432 1.703.326 1.703.326l.425.54s.853-.11 1.387.54c.53.648 3.296.108 3.296.108l.744.647 1.17.433 3.3.11.105-2.052.64-.647-.108-1.297.745-.647v-1.08l.638-.216.105-2.374.53-.11v-5.182l-1.594-1.512c-.106.54-1.81.54-1.81.54s-.424.755-.743.755c-.32 0 .425.972.212 1.62-.213.648-1.065.648-1.065.648l-1.597.433-.425.54h-1.703l-.21-1.402 1.912-.54 1.064-.54.533-1.08c.104-1.08 1.382-.972 1.382-.972s2.447-2.052 2.553-3.022c.108-.973.958-3.672 2.447-3.672H301c1.062-.433.743-1.836.743-1.836l1.383-.215.213.757s1.915.215 2.127-.11c.214-.32.638-1.078 1.17-.754.533.323 2.235-.757 2.235-.757.106-.755 2.766-.43 2.766-.43l.32-.973S310.15 244 309.83 244c-.32 0-2.02-1.513-2.235-.972-1.7-.432-1.595-2.808-1.595-2.808l-.64-1.51c0-.866-1.593-2.7-1.914-2.484-1.597-1.188-.425-2.59 0-2.7.425-.107 1.49-1.62 1.49-1.62l.532-1.51 1.808-.54.213-1.403-.956-.11s1.062-1.943 1.595-1.943c.532 0 4.042 0 4.36-.216.32-.215.957-1.943.957-2.267 0-.324.853-.432 1.17-.54.32-.108 1.064-.972 1.277-1.404.213-.435-.53-3.135-.957-2.703z" fill="#fff"/> - <path d="M256 258.195c.16-.16.32.487.64.406.316-.08.477.568.16.568-.32 0-.32.406-.32.568 0 .162 0 .565-.24.81-.24.242-.48.08-.8-.082-.32-.162-.477-.162-.877-.162s-.08.648-.08.648-1.677-.08-1.357-.325c.32-.24.64-.324.4-.486-.24-.163 0-.324 0-.648s.798-.162.557-.405c-.237-.244.005-1.183.4-.65l.24-.567c-.24-.242-.08-.324-.56-.483-.477-.162-.08-1.135-.08-1.135l.08-.648c.16-.808 1.756-.89 1.837-.162.078.73 0 1.215 0 1.215l.48.162s-.082.487-.48.487c-.4 0 0 .24-.24.484l.24.405zm-5.267.813c.24-.486.797-2.592 1.437-1.943.636.647 1.036 0 1.036 0s.32.324.16.972c-.16.647-.32 1.296-.72 1.377-.398.08-.718.324-1.194.405-.48.08-.72-.812-.72-.812z" fill="#fff"/> -</svg> diff --git a/img/flags/1x1/us.svg b/img/flags/1x1/us.svg deleted file mode 100644 index 15d50af..0000000 --- a/img/flags/1x1/us.svg +++ /dev/null @@ -1,18 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" height="512" width="512" viewBox="0 0 512 512"> - <g fill-rule="evenodd" transform="scale(3.9385)"> - <g stroke-width="1pt"> - <path d="M0 0h247v10H0zm0 20h247v10H0zm0 20h247v10H0zm0 20h247v10H0zm0 20h247v10H0zm0 20h247v10H0zm0 20h247v10H0z" fill="#bd3d44"/> - <path d="M0 10h247v10H0zm0 20h247v10H0zm0 20h247v10H0zm0 20h247v10H0zm0 20h247v10H0zm0 20h247v10H0z" fill="#fff"/> - </g> - <path fill="#192f5d" d="M0 0h98.8v70H0z"/> - <g fill="#fff"> - <path d="M8.233 2.996l.9 2.767h2.908l-2.353 1.71.899 2.766-2.354-1.71-2.353 1.71.899-2.766-2.354-1.71h2.91zm16.467 0l.899 2.767h2.909l-2.353 1.71.898 2.766L24.7 8.53l-2.353 1.71.898-2.766-2.353-1.71h2.909zm16.467 0l.899 2.767h2.909l-2.353 1.71.899 2.766-2.354-1.71-2.353 1.71.899-2.766-2.354-1.71h2.91zm16.466 0l.899 2.767h2.909l-2.353 1.71.899 2.766-2.354-1.71-2.353 1.71.899-2.766-2.354-1.71h2.91zm16.467 0l.899 2.767h2.909l-2.354 1.71.9 2.766L74.1 8.53l-2.353 1.71.898-2.766-2.353-1.71h2.909zm16.467 0l.899 2.767h2.909l-2.354 1.71.9 2.766-2.354-1.71-2.353 1.71.898-2.766-2.353-1.71h2.909zM16.467 9.996l.899 2.767h2.909l-2.353 1.71.898 2.766-2.353-1.71-2.353 1.71.898-2.766-2.353-1.71h2.909zm16.466 0l.899 2.767h2.909l-2.353 1.71.899 2.766-2.354-1.71-2.353 1.71.899-2.766-2.354-1.71h2.91zm16.467 0l.899 2.767h2.909l-2.353 1.71.899 2.766-2.354-1.71-2.353 1.71.899-2.766-2.354-1.71h2.91zm16.467 0l.899 2.767h2.909l-2.353 1.71.898 2.766-2.353-1.71-2.353 1.71.899-2.766-2.354-1.71h2.91zm16.466 0l.899 2.767h2.909l-2.354 1.71.9 2.766-2.354-1.71-2.353 1.71.898-2.766-2.353-1.71h2.909zM8.233 16.996l.9 2.767h2.908l-2.353 1.71.899 2.766-2.354-1.71-2.353 1.71.899-2.766-2.354-1.71h2.91zm16.467 0l.899 2.767h2.909l-2.353 1.71.898 2.766-2.353-1.71-2.353 1.71.898-2.766-2.353-1.71h2.909zm16.467 0l.899 2.767h2.909l-2.353 1.71.899 2.766-2.354-1.71-2.353 1.71.899-2.766-2.354-1.71h2.91zm16.466 0l.899 2.767h2.909l-2.353 1.71.899 2.766-2.354-1.71-2.353 1.71.899-2.766-2.354-1.71h2.91zm16.467 0l.899 2.767h2.909l-2.354 1.71.9 2.766-2.354-1.71-2.353 1.71.898-2.766-2.353-1.71h2.909zm16.467 0l.899 2.767h2.909l-2.354 1.71.9 2.766-2.354-1.71-2.353 1.71.898-2.766-2.353-1.71h2.909zM16.467 23.996l.899 2.767h2.909l-2.353 1.71.898 2.766-2.353-1.71-2.353 1.71.898-2.766-2.353-1.71h2.909zm16.466 0l.899 2.767h2.909l-2.353 1.71.899 2.766-2.354-1.71-2.353 1.71.899-2.766-2.354-1.71h2.91zm16.467 0l.899 2.767h2.909l-2.353 1.71.899 2.766-2.354-1.71-2.353 1.71.899-2.766-2.354-1.71h2.91zm16.467 0l.899 2.767h2.909l-2.353 1.71.898 2.766-2.353-1.71-2.353 1.71.899-2.766-2.354-1.71h2.91zm16.466 0l.899 2.767h2.909l-2.354 1.71.9 2.766-2.354-1.71-2.353 1.71.898-2.766-2.353-1.71h2.909zM8.233 30.996l.9 2.767h2.908l-2.353 1.71.899 2.766-2.354-1.71-2.353 1.71.899-2.766-2.354-1.71h2.91zm16.467 0l.899 2.767h2.909l-2.353 1.71.898 2.766-2.353-1.71-2.353 1.71.898-2.766-2.353-1.71h2.909zm16.467 0l.899 2.767h2.909l-2.353 1.71.899 2.766-2.354-1.71-2.353 1.71.899-2.766-2.354-1.71h2.91zm16.466 0l.899 2.767h2.909l-2.353 1.71.899 2.766-2.354-1.71-2.353 1.71.899-2.766-2.354-1.71h2.91zm16.467 0l.899 2.767h2.909l-2.354 1.71.9 2.766-2.354-1.71-2.353 1.71.898-2.766-2.353-1.71h2.909zm16.467 0l.899 2.767h2.909l-2.354 1.71.9 2.766-2.354-1.71-2.353 1.71.898-2.766-2.353-1.71h2.909zM16.467 37.996l.899 2.767h2.909l-2.353 1.71.898 2.766-2.353-1.71-2.353 1.71.898-2.766-2.353-1.71h2.909zm16.466 0l.899 2.767h2.909l-2.353 1.71.899 2.766-2.354-1.71-2.353 1.71.899-2.766-2.354-1.71h2.91zm16.467 0l.899 2.767h2.909l-2.353 1.71.899 2.766-2.354-1.71-2.353 1.71.899-2.766-2.354-1.71h2.91zm16.467 0l.899 2.767h2.909l-2.353 1.71.898 2.766-2.353-1.71-2.353 1.71.899-2.766-2.354-1.71h2.91zm16.466 0l.899 2.767h2.909l-2.354 1.71.9 2.766-2.354-1.71-2.353 1.71.898-2.766-2.353-1.71h2.909z"/> - <g> - <path d="M8.233 44.996l.9 2.767h2.908l-2.353 1.71.899 2.766-2.354-1.71-2.353 1.71.899-2.766-2.354-1.71h2.91zm16.467 0l.899 2.767h2.909l-2.353 1.71.898 2.766-2.353-1.71-2.353 1.71.898-2.766-2.353-1.71h2.909zm16.467 0l.899 2.767h2.909l-2.353 1.71.899 2.766-2.354-1.71-2.353 1.71.899-2.766-2.354-1.71h2.91zm16.466 0l.899 2.767h2.909l-2.353 1.71.899 2.766-2.354-1.71-2.353 1.71.899-2.766-2.354-1.71h2.91zm16.467 0l.899 2.767h2.909l-2.354 1.71.9 2.766-2.354-1.71-2.353 1.71.898-2.766-2.353-1.71h2.909zm16.467 0l.899 2.767h2.909l-2.354 1.71.9 2.766-2.354-1.71-2.353 1.71.898-2.766-2.353-1.71h2.909zM16.467 51.996l.899 2.767h2.909l-2.353 1.71.898 2.766-2.353-1.71-2.353 1.71.898-2.766-2.353-1.71h2.909zm16.466 0l.899 2.767h2.909l-2.353 1.71.899 2.766-2.354-1.71-2.353 1.71.899-2.766-2.354-1.71h2.91zm16.467 0l.899 2.767h2.909l-2.353 1.71.899 2.766-2.354-1.71-2.353 1.71.899-2.766-2.354-1.71h2.91zm16.467 0l.899 2.767h2.909l-2.353 1.71.898 2.766-2.353-1.71-2.353 1.71.899-2.766-2.354-1.71h2.91zm16.466 0l.899 2.767h2.909l-2.354 1.71.9 2.766-2.354-1.71-2.353 1.71.898-2.766-2.353-1.71h2.909z"/> - </g> - <g> - <path d="M8.233 58.996l.9 2.767h2.908l-2.353 1.71.899 2.766-2.354-1.71-2.353 1.71.899-2.766-2.354-1.71h2.91zm16.467 0l.899 2.767h2.909l-2.353 1.71.898 2.766-2.353-1.71-2.353 1.71.898-2.766-2.353-1.71h2.909zm16.467 0l.899 2.767h2.909l-2.353 1.71.899 2.766-2.354-1.71-2.353 1.71.899-2.766-2.354-1.71h2.91zm16.466 0l.899 2.767h2.909l-2.353 1.71.899 2.766-2.354-1.71-2.353 1.71.899-2.766-2.354-1.71h2.91zm16.467 0l.899 2.767h2.909l-2.354 1.71.9 2.766-2.354-1.71-2.353 1.71.898-2.766-2.353-1.71h2.909zm16.467 0l.899 2.767h2.909l-2.354 1.71.9 2.766-2.354-1.71-2.353 1.71.898-2.766-2.353-1.71h2.909z"/> - </g> - </g> - </g> -</svg> diff --git a/img/flags/1x1/uy.svg b/img/flags/1x1/uy.svg deleted file mode 100644 index 13eba52..0000000 --- a/img/flags/1x1/uy.svg +++ /dev/null @@ -1,28 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" height="512" width="512" viewBox="0 0 512 512"> - <path fill="#fff" d="M0 0h512v512H0z"/> - <path fill="#0038a8" d="M284 56.889h228v56.889H284zm0 113.778h228v56.889H284zM0 284.444h512v56.889H0zm0 113.778h512v56.889H0z"/> - <g transform="translate(142.222 142.222) scale(3.12889)" stroke-miterlimit="20" fill="#fcd116" stroke="#000" stroke-width=".6"> - <g id="c"> - <g id="b"> - <g id="a"> - <path d="M1.5 9L6 12c-8 13 1 15-6 21 3-7-3-5-3-17" stroke-linecap="square" transform="rotate(22.5)"/> - <path d="M0 11c-2 13 4.5 17 0 22" fill="none" transform="rotate(22.5)"/> - <path d="M0 0h6L0 33-6 0h6v33"/> - </g> - <use height="100%" width="100%" xlink:href="#a" transform="rotate(45)"/> - </g> - <use height="100%" width="100%" xlink:href="#b" transform="rotate(90)"/> - </g> - <use height="100%" width="100%" xlink:href="#c" transform="scale(-1)"/> - <circle r="11"/> - </g> - <g transform="translate(142.222 142.222) scale(.31289)"> - <g id="d"> - <path d="M81-44c-7 8-11-6-36-6S16-35 12-38s21-21 29-22 31 7 40 16m-29 9c7 6 1 19-6 19S26-28 32-36"/> - <path d="M19-26c1-12 11-14 27-14s23 12 29 15c-7 0-13-10-29-10s-16 0-27 10m3 2c4-6 9 6 20 6s17-3 24-8-10 12-21 12-26-6-23-10"/> - <path d="M56-17c13-7 5-17 0-19 2 2 10 12 0 19M0 43c6 0 8-2 16-2s27 11 38 7c-23 9-14 3-54 3h-5m63 6c-4-7-3-5-11-16 8 6 10 9 11 16M0 67c25 0 21-5 54-19-24 3-29 11-54 11h-5m5-29c7 0 9-5 17-5s19 3 24 7c1 1-3-8-11-9S25 9 16 7c0 4 3 3 4 9 0 5-9 5-11 0 2 8-4 8-9 8"/> - </g> - <use height="100%" width="100%" xlink:href="#d" transform="scale(-1 1)"/> - <path d="M0 76c-5 0-18 3 0 3s5-3 0-3"/> - </g> -</svg> diff --git a/img/flags/1x1/uz.svg b/img/flags/1x1/uz.svg deleted file mode 100644 index 80a0aa5..0000000 --- a/img/flags/1x1/uz.svg +++ /dev/null @@ -1,30 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" height="512" width="512" viewBox="0 0 512 512"> - <path fill="#1eb53a" d="M0 341.333h512V512H0z"/> - <path fill="#0099b5" d="M0 0h512v170.667H0z"/> - <path fill="#ce1126" d="M0 163.84h512v184.32H0z"/> - <path fill="#fff" d="M0 174.08h512v163.84H0z"/> - <circle cx="143.36" cy="81.92" r="61.44" fill="#fff"/> - <circle cx="163.84" cy="81.92" r="61.44" fill="#0099b5"/> - <g transform="translate(278.528 131.072) scale(2.048)" fill="#fff"> - <g id="e"> - <g id="d"> - <g id="c"> - <g id="b"> - <path id="a" d="M0-6L-1.854-.294 1 .633"/> - <use height="100%" width="100%" xlink:href="#a" transform="scale(-1 1)"/> - </g> - <use height="100%" width="100%" xlink:href="#b" transform="rotate(72)"/> - </g> - <use height="100%" width="100%" xlink:href="#b" transform="rotate(-72)"/> - <use height="100%" width="100%" xlink:href="#c" transform="rotate(144)"/> - </g> - <use height="100%" width="100%" xlink:href="#d" y="-24"/> - <use height="100%" width="100%" xlink:href="#d" y="-48"/> - </g> - <use height="100%" width="100%" xlink:href="#e" x="24"/> - <use height="100%" width="100%" xlink:href="#e" x="48"/> - <use height="100%" width="100%" xlink:href="#d" x="-48"/> - <use height="100%" width="100%" xlink:href="#d" x="-24"/> - <use height="100%" width="100%" xlink:href="#d" x="-24" y="-24"/> - </g> -</svg> diff --git a/img/flags/1x1/va.svg b/img/flags/1x1/va.svg deleted file mode 100644 index 16fa3fa..0000000 --- a/img/flags/1x1/va.svg +++ /dev/null @@ -1,483 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" height="512" width="512" viewBox="0 0 512 512"> - <g fill-rule="evenodd"> - <path fill="#fff" d="M255.992 0h255.992v511.984H255.992z"/> - <path d="M282.43-735.13c0 .625 55.956 222.85 118.17 300.56 69.375 87.27 113.18 87.333 113.18 87.333l70.866-17.717s-41.496 2.093-123.8-104.21c-83.45-107.78-109.42-285.96-108.17-282.84l-70.241 16.875z" transform="matrix(-.21542 0 0 .17871 450.486 340.71)" stroke="#000" stroke-width="1pt" fill="#fff"/> - <path d="M285-727.64c-1.535-9.369 33.898 220.95 140.2 327.24 53.149 53.15 88.583 53.15 88.583 53.15l88.582-17.717s-51.712 3.751-134.02-102.55c-83.45-107.78-108.58-263.25-107.96-263.87l-75.38 3.75z" transform="matrix(.21542 0 0 .17871 313.875 342.337)" stroke="#000" stroke-width="1pt" fill="#fff"/> - <path d="M282.43-735.13c0 .625 55.956 222.85 118.17 300.56 69.375 87.27 113.18 87.333 113.18 87.333l70.866-17.717s-41.496 2.093-123.8-104.21c-83.45-107.78-109.42-285.96-108.17-282.84l-70.241 16.875z" transform="matrix(.21542 0 0 .17871 313.875 342.337)" stroke="#000" stroke-width="1pt" fill="#fff"/> - <path d="M285-727.64c-1.535-9.369 33.898 220.95 140.2 327.24 53.149 53.15 88.583 53.15 88.583 53.15l88.582-17.717s-51.712 3.751-134.02-102.55c-83.45-107.78-108.58-263.25-107.96-263.87l-75.38 3.75z" transform="matrix(-.21542 0 0 .17871 450.486 340.71)" stroke="#000" stroke-width="1pt" fill="#fff"/> - <path d="M344.54-596.29l9.152 22.141s1.455-9.767 8.526-11.534l7.071-1.768s26.864 49.328 32.168 58.167c5.302 8.838-3.536 16.793-1.769 16.793 1.769 0 26.517-11.49 26.517-11.49s-10.606.883-15.026-6.188-34.819-59.934-34.819-59.934 6.187-2.652 11.49-5.303c5.304-2.652 10.607 7.955 10.607 7.955l-13.258-26.517s0 8.839-4.42 10.607c-4.419 1.767-7.955 3.535-7.955 3.535s-3.535-6.187-7.955-13.258c-4.419-7.071 4.42-14.142 4.42-14.142l-22.981 11.49s7.955 4.42 10.607 8.839l5.303 8.839s-3.223 1.768-8.214 3.482c-3.589 1.875-7.696.054-9.464-1.714z" transform="matrix(.21538 .00384 -.00463 .17867 312.189 347.844)" stroke="#000" stroke-width="1pt" fill="#fff133"/> - <g stroke="#000" stroke-width="14.25" fill="#b00"> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(.01583 .00247 .00912 -.01043 340.027 336.468)"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(.01553 .00281 .0093 -.0104 338.545 337.646)"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(.01583 .00247 .00912 -.01043 336.674 339.094)"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(.01606 -.001 .00564 -.01204 356.628 320.97)"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(.01588 -.00034 .0061 -.01195 355.573 322.306)"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(.01608 -.00073 .00592 -.01194 354.162 324.083)"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(.01587 .0005 .007 -.0116 353.27 324.58)"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(.01584 -.00241 .00408 -.01247 360.56 315.15)"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(.0157 -.002 .00426 -.0125 359.677 316.692)"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(.01584 -.00241 .00408 -.01247 358.543 318.603)"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(.01575 -.00175 .00455 -.01242 357.483 319.951)"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(.01601 .0014 .00808 -.01102 346.242 331.38)"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(.01575 .00175 .00826 -.011 344.879 332.654)"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(.01601 .0014 .00808 -.01102 343.153 334.224)"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(.01553 .00281 .0093 -.0104 341.9 335.021)"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(.0161 .00013 .00681 -.0116 351.728 326.278)"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(.01587 .0005 .007 -.0116 350.513 327.653)"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(.01601 .0014 .00808 -.01102 349.33 328.537)"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(.01575 .00175 .00826 -.011 347.968 329.811)"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(.01497 -.00495 .0011 -.0129 369.31 295.71)"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(.01532 -.00352 .0025 -.01283 369.285 296.24)"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(.0154 -.00394 .00232 -.01278 368.426 298.248)"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(.01532 -.00352 .0025 -.01283 367.762 299.867)"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(.01493 -.00453 .00126 -.01295 371.147 289.935)"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(.01497 -.00495 .0011 -.0129 370.48 291.994)"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(.01493 -.00453 .00126 -.01295 369.975 293.652)"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(.01572 -.0029 .00353 -.01259 364.29 308.35)"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(.0156 -.00249 .0037 -.01262 363.475 309.918)"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(.01572 -.0029 .00353 -.01259 362.426 311.863)"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(.0157 -.002 .00426 -.0125 361.693 313.239)"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(.0154 -.00394 .00232 -.01278 366.903 301.875)"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(.0156 -.00249 .0037 -.01262 367.199 302.89)"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(.01572 -.0029 .00353 -.01259 366.151 304.836)"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(.0156 -.00249 .0037 -.01262 365.337 306.404)"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(.01384 -.0069 -.00138 -.01288 373.984 279.81)"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(.01486 -.00518 .00082 -.01291 374.024 281.192)"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(.01483 -.00476 .00099 -.01297 373.555 282.857)"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(.01388 -.00647 -.00122 -.01295 374.695 273.862)"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(.01384 -.0069 -.00138 -.01288 374.431 275.984)"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(.01388 -.00647 -.00122 -.01295 374.248 277.687)"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(.01486 -.00518 .00082 -.01291 372.934 284.926)"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(.01493 -.00453 .00126 -.01295 372.347 286.125)"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(.01497 -.00495 .0011 -.0129 371.683 288.184)"/> - </g> - <g stroke="#000" stroke-width="14.25" fill="#b00"> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(-.01599 .0016 -.00828 -.01091 422.72 331.398)"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(-.01571 .00195 -.00846 -.0109 424.106 332.655)"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(-.01599 .0016 -.00828 -.01091 425.86 334.202)"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(-.01594 -.00187 -.00468 -.01232 407.37 315.02)"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(-.01582 -.00121 -.00515 -.01226 408.317 316.412)"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(-.01598 -.0016 -.00497 -.01224 409.586 318.263)"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(-.01588 -.00037 -.00607 -.01196 410.437 318.807)"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(-.01562 -.00328 -.0031 -.01267 403.902 308.997)"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(-.01551 -.00286 -.00327 -.0127 404.663 310.585)"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(-.01562 -.00328 -.0031 -.01267 405.644 312.554)"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(-.01558 -.0026 -.00357 -.01265 406.597 313.958)"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(-.01609 .0005 -.0072 -.01144 416.917 325.98)"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(-.01585 .00088 -.00738 -.01143 418.178 327.326)"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(-.01609 .0005 -.0072 -.01144 419.777 328.986)"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(-.01571 .00195 -.00846 -.0109 420.965 329.851)"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(-.01607 -.00076 -.00589 -.01195 411.843 320.587)"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(-.01588 -.00037 -.00607 -.01196 412.948 322.026)"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(-.01609 .0005 -.0072 -.01144 414.058 322.973)"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(-.01585 .00088 -.00738 -.01143 415.318 324.319)"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(-.01455 -.00577 -.00008 -.01293 396.696 289.12)"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(-.015 -.00436 -.00148 -.01293 396.68 289.649)"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(-.01505 -.00478 -.00131 -.01288 397.38 291.7)"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(-.015 -.00436 -.00148 -.01293 397.914 293.351)"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(-.01455 -.00534 -.00025 -.013 395.316 283.255)"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(-.01455 -.00577 -.00008 -.01293 395.819 285.347)"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(-.01455 -.00534 -.00025 -.013 396.193 287.028)"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(-.01546 -.00376 -.00253 -.01275 400.715 302.006)"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(-.01538 -.00334 -.0027 -.0128 401.404 303.616)"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(-.01546 -.00376 -.00253 -.01275 402.298 305.615)"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(-.01551 -.00286 -.00327 -.0127 402.921 307.028)"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(-.01505 -.00478 -.00131 -.01288 398.614 295.403)"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(-.01538 -.00334 -.0027 -.0128 398.24 296.4)"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(-.01546 -.00376 -.00253 -.01275 399.132 298.398)"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(-.01538 -.00334 -.0027 -.0128 399.822 300.008)"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(-.01327 -.00764 .00239 -.01277 393.279 272.996)"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(-.01443 -.00598 .0002 -.01293 393.13 274.373)"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(-.01443 -.00556 .00003 -.013 393.468 276.06)"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(-.01334 -.00722 .00224 -.01286 393.035 267.022)"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(-.01327 -.00764 .00239 -.01277 393.133 269.154)"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(-.01334 -.00722 .00224 -.01286 393.182 270.863)"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(-.01443 -.00598 .0002 -.01293 393.926 278.16)"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(-.01455 -.00534 -.00025 -.013 394.417 279.387)"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(-.01455 -.00577 -.00008 -.01293 394.918 281.479)"/> - </g> - <path d="M344.54-596.29l9.152 22.141s1.455-9.767 8.526-11.534l7.071-1.768s26.864 49.328 32.168 58.167c5.302 8.838-3.536 16.793-1.769 16.793 1.769 0 26.517-11.49 26.517-11.49s-10.606.883-15.026-6.188-34.819-59.934-34.819-59.934 6.187-2.652 11.49-5.303c5.304-2.652 10.607 7.955 10.607 7.955l-13.258-26.517s0 8.839-4.42 10.607c-4.419 1.767-7.955 3.535-7.955 3.535s-3.535-6.187-7.955-13.258c-4.419-7.071 4.42-14.142 4.42-14.142l-22.981 11.49s7.955 4.42 10.607 8.839l5.303 8.839s-3.223 1.768-8.214 3.482c-3.589 1.875-7.696.054-9.464-1.714z" transform="matrix(-.21538 .00384 .00463 .17867 452.172 346.217)" stroke="#000" stroke-width="1pt" fill="#fff133"/> - <g transform="matrix(.12959 0 0 .10848 351.35 305.645)"> - <path fill="silver" d="M324.546-255.37l-50.11 50.11L449.82-29.874l50.11-50.11z"/> - <ellipse fill="#fff133" transform="scale(-1 1) rotate(45 -177.879 -1104.595)" cx="354.33" rx="35.433" cy="-1428" ry="35.433" stroke="#000" stroke-width="1pt"/> - <path d="M-402.046-956.911l37.583 37.583-25.055 25.054-37.583-37.582c-12.528-12.528 12.527-37.583 25.055-25.055z" stroke="#000" stroke-width="1pt" fill="silver"/> - <path d="M-346.606-926.531l-50.11 50.11c-13.798 0-25.351-11.553-25.055-25.055 10.878-25.879 25.028-38.434 50.11-50.11 12.477.729 24.217 10.892 25.055 25.055z" stroke="#000" stroke-width="1pt" fill="#fff133"/> - <path d="M-351.926-931.851l37.583 37.583-50.11 50.11-37.583-37.583c5.027-20.028 30.082-45.084 50.11-50.11z" stroke="#000" stroke-width="1pt" fill="silver"/> - <path d="M-309.026-888.951l-50.11 50.11c-13.798 0-25.351-11.553-25.055-25.055 10.878-25.879 25.028-38.434 50.11-50.11 12.477.729 24.217 10.892 25.055 25.055z" stroke="#000" stroke-width="1pt" fill="#fff133"/> - <path d="M-314.356-894.281L28.44-551.477l-50.111 50.11-342.795-342.804c5.027-20.028 30.082-45.084 50.11-50.11z" stroke="#000" stroke-width="1pt" fill="silver"/> - <path d="M48.934-530.971l-50.11 50.11c-13.798 0-25.351-11.553-25.055-25.055 10.878-25.879 25.028-38.434 50.11-50.11 12.477.729 24.217 10.892 25.055 25.055z" stroke="#000" stroke-width="1pt" fill="#fff133"/> - <path d="M48.944-530.976L274.44-305.48l-50.11 50.11L-1.166-480.866c5.027-20.028 30.082-45.084 50.11-50.11z" stroke="#000" stroke-width="1pt" fill="silver"/> - <path d="M186.744-418.231l-75.166 75.166c-13.797 0-25.35-11.553-25.055-25.055 0 0 0-25.055 25.055-50.11s50.11-25.055 50.11-25.055c11.64 1.567 21.415 12.527 25.055 25.055z" stroke="#000" stroke-width="1pt" fill="silver"/> - <path d="M186.744-418.231l50.11 75.166-50.11 50.11-75.165-50.111c-2.83-2.442 0-25.054 25.055-50.11s48.98-24.456 50.11-25.055z" stroke="#000" stroke-width="1pt" fill="silver"/> - <path d="M336.61-506.69c0-35.433 0-86.653 17.717-129.98 17.716 43.326 17.716 94.546 17.716 129.98H336.61z" transform="rotate(-135 434.752 18.668) scale(1 -.81782)" stroke="#000" stroke-width="1pt" fill="silver"/> - <path d="M318.9-506.69h17.716v-43.326c0-43.327-35.433-64.99-35.433-64.99l17.717 108.32z" transform="rotate(-45 399.396 -194.158) scale(1 .81782)" stroke="#000" stroke-width="1pt" fill="silver"/> - <path d="M318.9-506.69h17.716v-43.326c0-43.327-35.433-64.99-35.433-64.99l17.717 108.32z" transform="rotate(-135 434.752 18.668) scale(1 -.81782)" stroke="#000" stroke-width="1pt" fill="silver"/> - <path d="M-314.356-894.281l37.583 37.583C-251.718-831.643-164.03-718.9-164.03-718.9s117.296 92.25 142.356 117.31l37.583 37.583c-25.056-25.055-179.937-129.835-179.937-129.835S-71.784-551.479-34.2-513.896l-37.583-37.583c-25.055-25.055-117.305-142.36-117.3-142.366-.005.005-100.223-75.168-125.276-100.22l-50.111-50.111c25.055 25.055 175.382 125.281 175.382 125.281s-100.22-150.338-125.272-175.391z" stroke="#000" stroke-width="1pt" fill="#fff133"/> - <path d="M299.493-230.317c50.11 75.165 100.221 125.276 112.744 137.8 23.776 23.819 50.11 25.055 50.11 25.055s0-25.056-25.055-50.11c-12.527-12.528-62.638-62.639-137.8-112.745zm-62.64-112.75c87.695 87.695 187.916 137.806 250.552 200.442 50.11 50.11 15.414 88.464 1.443 100.606-13.97 12.141-51.966 50.282-101.664-.386-62.638-62.638-112.746-162.857-200.442-250.552 0-25.055 25.056-50.11 50.11-50.11z" stroke="#000" stroke-width="1pt" fill="silver"/> - <path transform="matrix(-1.2487 -1.4214 -1.3593 1.3175 1166.1 -102.64)" stroke="#000" stroke-width="1pt" fill="silver" d="M218.28 257.88h22.934v73.043H218.28z"/> - <g stroke="#000" fill="silver"> - <path d="M301.18 396.85l17.717 17.717-17.717 17.716 8.858 8.859 17.717-17.717 35.433 35.433-17.717 17.717 8.859 8.858 17.716-17.716 17.717 17.716-53.15 53.15-35.433-35.433 17.717-17.717 8.858 8.859 8.858-8.859L301.18 450l-8.858 8.859 8.858 8.858-17.716 17.716-17.717-17.716 8.858-8.859-8.858-8.858-35.433 35.433 8.858 8.858 8.858-8.858 17.717 17.717-17.716 17.716-8.858-8.858-8.859 8.858 35.433 35.433 8.859-8.858-8.859-8.859 17.717-17.716 35.433 35.433-53.15 53.15-17.717-17.717 17.717-17.716-8.858-8.858-17.717 17.716-35.433-35.433 17.717-17.717-8.859-8.858-17.716 17.717-17.717-17.717 124.02-124.02z" transform="matrix(-2.2946 0 0 2.2438 360.577 -1733.726)" stroke-width=".625"/> - <path d="M318.9 786.61v35.433l88.582 88.583V839.76l-17.716-17.717h-35.433L318.9 786.61z" stroke-width="1.25" transform="matrix(-1.1473 0 0 1.1219 157.31 -1288.5)"/> - <path d="M230.41 698.78l70.381 70.381.838 35.19-71.219-71.219V698.78z" transform="matrix(-1.1473 0 0 1.1219 157.424 -1288.525)" stroke-width="1.25"/> - <path d="M301.18 804.33l35.433-35.433v-35.433l-35.433 35.433v35.433z" stroke-width="1.25" transform="matrix(-1.1473 0 0 1.1219 157.31 -1288.5)"/> - <path d="M301.18 804.33l35.433-35.433v-35.433l-35.433 35.433v35.433z" transform="matrix(-1.1473 0 0 1.1219 258.941 -1387.881)" stroke-width="1.25"/> - <path d="M248.03 644.88v35.433l17.717-17.717-17.717-17.716z" stroke-width="1.25" transform="matrix(-1.1473 0 0 1.1219 157.31 -1288.5)"/> - <path d="M248.03 644.88v35.433l17.717-17.717-17.717-17.716z" transform="matrix(-1.1473 0 0 1.1219 55.679 -1189.119)" stroke-width="1.25"/> - <path d="M230.41 698.78l35.786 35.433v35.433l-35.786-36.514V698.78z" transform="matrix(-1.1473 0 0 1.1219 218.806 -1348.97)" stroke-width="1.25"/> - <path d="M301.18 804.33l35.433-35.433v-35.433l-35.433 35.433v35.433z" transform="matrix(-1.1473 0 0 1.1219 55.679 -1507.136)" stroke-width="1.25"/> - <path d="M301.18 804.33l35.433-35.433v-35.433l-35.433 35.433v35.433z" transform="matrix(-1.1473 0 0 1.1219 136.983 -1427.638)" stroke-width="1.25"/> - <path d="M283.46 822.05l53.15-53.15v-35.433l-70.866 70.866 17.716 17.717z" transform="matrix(-1.1473 0 0 1.1219 136.983 -1546.896)" stroke-width="1.25"/> - <path d="M248.03 644.88v35.433l17.717-17.717-17.717-17.716z" transform="matrix(-1.1473 0 0 1.1219 35.352 -1447.507)" stroke-width="1.25"/> - <path d="M301.18 804.33l-35.433-35.433v-35.433l35.433 35.433v35.433z" transform="matrix(-1.1473 0 0 1.1219 55.679 -1507.136)" stroke-width="1.25"/> - <path d="M389.76 822.05l-53.15-53.15v-35.433l70.866 70.866-17.716 17.717z" transform="matrix(-1.1473 0 0 1.1219 55.679 -1546.896)" stroke-width="1.25"/> - <path d="M230.41 698.05l70.866 70.866h35.433l17.717 17.716v70.867l-124.02-124.37v-35.08z" transform="matrix(-1.1473 0 0 1.1219 -66.161 -1387.906)" stroke-width="1.25"/> - <path d="M354.33 822.05l106.3-106.3h35.433l-106.3 106.3H354.33z" stroke-width="1.25" transform="matrix(-1.1473 0 0 1.1219 157.31 -1288.5)"/> - <path d="M407.48 839.76l106.3-106.3-17.72-17.71-106.3 106.3 17.72 17.71z" stroke-width="1.25" transform="matrix(-1.1473 0 0 1.1219 157.31 -1288.5)"/> - <path d="M407.48 839.76v70.866l106.3-106.3V733.46l-106.3 106.3z" transform="matrix(-1.1473 0 0 1.1219 157.31 -1288.5)" stroke-width="1.25"/> - <path d="M354.33 822.05l106.3-106.3h35.433l-106.3 106.3H354.33z" transform="matrix(-1.1473 0 0 1.1219 -5.297 -1447.507)" stroke-width="1.25"/> - <path d="M407.48 839.76l106.3-106.3-17.72-17.71-106.3 106.3 17.72 17.71z" transform="matrix(-1.1473 0 0 1.1219 -5.297 -1447.507)" stroke-width="1.25"/> - <path d="M407.48 839.76v70.866l106.3-106.3V733.46l-106.3 106.3z" transform="matrix(-1.1473 0 0 1.1219 -5.297 -1447.507)" stroke-width="1.25"/> - <path d="M318.9 786.62l17.717-17.717V733.47l-35.433 35.433L318.9 786.62z" transform="matrix(-1.1473 0 0 1.1219 -86.606 -1527.016)" stroke-width="1.25"/> - <path d="M318.9 786.62l17.717-17.717V733.47l-35.433 35.433L318.9 786.62z" transform="matrix(-1.1473 0 0 1.1219 15.022 -1626.394)" stroke-width="1.25"/> - <path d="M265.75 768.9v-35.433l17.717 17.716L265.75 768.9z" transform="matrix(-1.1473 0 0 1.1219 55.679 -1348.129)" stroke-width="1.25"/> - <path d="M301.18 804.33l-35.433-35.433 17.717-17.717 17.716 17.717v35.433z" transform="matrix(-1.1473 0 0 1.1219 136.983 -1427.638)" stroke-width="1.25"/> - <path d="M301.18 804.33l-17.716-17.717 17.716-17.716v35.433z" transform="matrix(-1.1473 0 0 1.1219 15.022 -1586.645)" stroke-width="1.25"/> - </g> - <path transform="matrix(-1.2509 -1.4194 -1.3614 1.3153 1166.1 -102.64)" stroke="#000" stroke-width="1pt" fill="#fff133" d="M196.5 254.15h25.197v80.26H196.5z"/> - <path d="M336.61 166.54c0 14.669 35.433 35.434 35.433-17.716H336.61v17.716z" transform="matrix(-1.8992 0 0 1.8865 1166.1 -102.64)" stroke="#000" stroke-width="1pt" fill="silver"/> - <path d="M242.1 24.803c-147.06 0-113.13 164.24-100.37 124.02 9.359-29.503 35.433-70.866 64.935-80.225 40.225-12.761 26.696 9.359 41.364 9.359 14.67 0 1.14-22.12 41.364-9.359 29.503 9.359 55.577 50.722 64.936 80.225 12.76 40.224 53.149-124.02-112.23-124.02z" transform="matrix(-1.8992 0 0 1.8865 1166.1 -102.64)" stroke="#000" stroke-width="1pt" fill="silver"/> - <path d="M389.76 166.54c0 78.237-63.496 141.73-141.73 141.73-78.236 0-141.73-63.496-141.73-141.73v-17.716c.001-29.116 35.433 124.02 141.73 124.02s141.73-124.77 141.73-124.02v17.716z" transform="matrix(-1.8992 0 0 1.8865 1166.1 -102.64)" stroke="#000" stroke-width="1pt" fill="silver"/> - <path d="M336.61 166.54c0 14.669 35.433 35.434 35.433-17.716H336.61v17.716z" transform="matrix(1.8992 0 0 1.8865 224 -100.51)" stroke="#000" stroke-width="1pt" fill="silver"/> - <path d="M389.76 148.82c0 78.236-63.496 141.73-141.73 141.73-78.236 0-141.73-63.496-141.73-141.73 0-78.236 63.496-141.73 141.73-141.73 78.237 0 141.73 63.496 141.73 141.73zm-53.15 0c0 14.669 22.812 3.042 9.359 43.04-9.359 27.826-27.075 45.543-56.578 54.902-40.225 12.76-26.694-9.359-41.364-9.359-14.668 0-1.14 22.119-41.364 9.359-29.502-9.359-47.218-27.076-56.577-56.578-12.76-40.224 9.359-26.695 9.359-41.364 0-14.67-22.119-1.139-9.359-41.364 9.359-29.502 27.075-47.219 56.577-56.578 40.225-12.761 26.696 9.359 41.364 9.359 14.67 0 1.14-22.12 41.364-9.359 29.503 9.359 47.219 27.075 56.578 56.578 12.76 40.224-9.359 26.694-9.359 41.364z" transform="matrix(-1.8992 0 0 1.8865 1166.1 -102.64)" stroke="#000" stroke-width="1pt" fill="silver"/> - <path d="M126.55 157.68c-20.248 0-1.929 67.6-9.104 51.705s-11.144-33.368-11.144-51.705 3.969-35.809 11.144-51.705c7.175-15.894-11.144 51.705 9.104 51.705z" transform="matrix(-1.6618 0 0 1.7607 1107.2 -99.519)" stroke="#000" stroke-width="1pt" fill="silver"/> - <path d="M372.05 139.96c0 15.892-2.13 31.632-9.751 44.811-7.965 13.775 9.751-44.811-7.965-44.811 17.716 0 1.687-58.587 7.965-44.811 6.279 13.776 9.751 28.919 9.751 44.811z" transform="matrix(-1.8992 0 0 2.0316 1166.1 -106.24)" stroke="#000" stroke-width="1pt" fill="silver"/> - <path d="M296.29 263.08c-14.836 6.279-31.144 9.751-48.258 9.751s-33.422-3.472-48.257-9.751c-14.835-6.278 48.257 9.751 48.257-7.966 0 17.717 63.093 1.688 48.258 7.966zM248.03 42.52c0-17.716-63.092-1.688-48.257-7.966s31.143-9.75 48.257-9.75 33.422 3.472 48.258 9.75c14.835 6.278-48.258-9.75-48.258 7.966z" transform="matrix(-1.8992 0 0 1.8865 1166.1 -102.64)" stroke="#000" stroke-width="1pt" fill="silver"/> - <ellipse fill="#fff133" transform="matrix(-1.2929 -1.3819 -1.3912 1.2842 1257.6 -120.02)" cx="82.112" rx="18.433" cy="160.86" ry="20.109" stroke="#000" stroke-width="1pt"/> - <path d="M276.58 287.67c-9.223 1.889-18.773 2.881-28.552 2.881s-19.329-.992-28.553-2.881l-1.432 6.965c9.686 1.984 19.715 3.025 29.985 3.025s20.299-1.041 29.985-3.025l-1.433-6.965z" transform="matrix(-1.2929 -1.3819 1.3912 -1.2842 808.89 712.05)" stroke="#000" stroke-width="1pt" fill="#fff133"/> - <path d="M276.58 287.67c-9.223 1.889-18.773 2.881-28.552 2.881s-19.329-.992-28.553-2.881l-1.432 6.965c9.686 1.984 19.715 3.025 29.985 3.025s20.299-1.041 29.985-3.025l-1.433-6.965z" transform="matrix(-1.2929 -1.3819 -1.3912 1.2842 1223.2 329.88)" stroke="#000" stroke-width="1pt" fill="#fff133"/> - <path d="M267.7 308.51c-9.223 1.889-20.189.927-29.969.927-9.778 0-19.285-2.612-28.509-4.501l8.821-10.303c9.686 1.984 19.715 3.025 29.985 3.025s20.299-1.041 29.985-3.025L267.7 308.51z" transform="matrix(-1.2929 -1.3819 -1.3912 1.2842 1223.2 329.88)" stroke="#000" stroke-width="1pt" fill="#fff133"/> - <path d="M276.58 287.67c-9.223 1.889-18.773 2.881-28.552 2.881s-19.329-.992-28.553-2.881l-1.432 6.965c9.686 1.984 19.715 3.025 29.985 3.025s20.299-1.041 29.985-3.025l-1.433-6.965z" transform="matrix(-1.3912 1.2842 1.2929 1.3819 847.44 -345.21)" stroke="#000" stroke-width="1pt" fill="#fff133"/> - <ellipse fill="#fff133" transform="matrix(-1.2929 -1.3819 -1.3912 1.2842 789.14 314.38)" cx="82.112" rx="18.433" cy="160.86" ry="20.109" stroke="#000" stroke-width="1pt"/> - <path d="M267.59 281.47c-9.223 1.889-17.098 2.943-26.877 2.943s-23.112-.712-32.336-2.601l9.672 12.822c9.686 1.984 19.715 3.025 29.985 3.025s20.299-1.041 29.985-3.025L267.59 281.47z" transform="matrix(-1.3912 1.2842 1.2929 1.3819 850.63 -315.18)" stroke="#000" stroke-width="1pt" fill="#fff133"/> - <path d="M173.94 271.77l-.838 14.842-3.239 4.493.976-15.087 3.101-4.248zM330.54 265.6l3.562 4.189 1.047 13.616-2.933-2.933-1.676-14.872z" transform="matrix(-1.8992 0 0 1.8865 1166.1 -102.64)" stroke="#000" stroke-width="1pt" fill="#fff133"/> - <ellipse fill="#fff133" transform="matrix(-1.2929 -1.3819 -1.3912 1.2842 1237.6 329.88)" cx="82.112" rx="18.433" cy="160.86" ry="20.109" stroke="#000" stroke-width="1pt"/> - </g> - <path d="M513.78-790.16l35.432-17.714 35.433 17.714s-73.366 35.433-73.366 159.45c-.001 88.58 125.26 106.3 125.26 212.6 0 45.649-34.183 88.582-69.616 88.582s-88.583-17.716-141.73-70.866c35.433 17.716 76.082 37.308 106.3 36.058 19.588-.405 55.025-17.716 55.025-53.149 0-70.866-122.77-106.92-122.77-213.22 0-124.02 50.025-159.45 50.026-159.45z" transform="matrix(-.21542 0 0 .17871 450.486 340.71)" stroke="#000" stroke-width="1pt" fill="#fff"/> - <path d="M520.25-790.16l46.683-17.717 10 17.717s-70.649 35.433-70.649 159.45c-.001 88.58 125.89 106.3 125.89 212.6 0 45.649-26.714 87.362-65.241 88.582-73.403 2.363-90.458-23.966-141.73-70.866 43.149 32.308 105 46.752 129.02 34.183 29.354-15.364 35.024-36.058 35.024-53.774 0-70.866-120.89-104.42-120.89-210.72 0-124.02 51.9-159.45 51.9-159.45z" transform="matrix(-.21542 0 0 .17871 450.486 340.71)" stroke="#000" stroke-width="1pt" fill="#fff"/> - <path d="M513.34-789.69c7.004-2.437 35.875-18.186 71.308 17.247 17.717 17.72 17.716 53.149 17.716 70.866l53.15-53.149s-29.066-86.87-107.62-53.592c-11.127 4.901-28.139 14.538-34.549 18.628z" transform="matrix(-.21542 0 0 .17871 450.486 340.71)" stroke="#000" stroke-width="1pt" fill="#fff"/> - <path d="M523.8-795.94c8.839-2.869 36.676-6.325 64.596 18.501 17.717 17.72 18.966 42.933 18.966 60.65l40.65-37.933c3.44-3.21-24.832-81.252-99.241-54.034-4.498 1.807-14.779 6.302-24.971 12.816z" transform="matrix(-.21542 0 0 .17871 450.486 340.71)" stroke="#000" stroke-width="1pt" fill="#fff"/> - <path d="M344.54-596.29l9.152 22.141s1.455-9.767 8.526-11.534l7.071-1.768s26.864 49.328 32.168 58.167c5.302 8.838-3.536 16.793-1.769 16.793 1.769 0 26.517-11.49 26.517-11.49s-10.606.883-15.026-6.188-34.819-59.934-34.819-59.934 6.187-2.652 11.49-5.303c5.304-2.652 10.607 7.955 10.607 7.955l-13.258-26.517s0 8.839-4.42 10.607c-4.419 1.767-7.955 3.535-7.955 3.535s-3.535-6.187-7.955-13.258c-4.419-7.071 4.42-14.142 4.42-14.142l-22.981 11.49s7.955 4.42 10.607 8.839l5.303 8.839s-3.223 1.768-8.214 3.482c-3.589 1.875-7.696.054-9.464-1.714z" transform="matrix(-.17534 -.01853 -.05985 .15541 365.625 343.191)" stroke="#000" stroke-width="1pt" fill="#fff133"/> - <path d="M344.54-596.29l9.152 22.141s1.455-9.767 8.526-11.534l7.071-1.768s26.864 49.328 32.168 58.167c5.302 8.838-3.536 16.793-1.769 16.793 1.769 0 26.517-11.49 26.517-11.49s-10.606.883-15.026-6.188-34.819-59.934-34.819-59.934 6.187-2.652 11.49-5.303c5.304-2.652 10.607 7.955 10.607 7.955l-13.258-26.517s0 8.839-4.42 10.607c-4.419 1.767-7.955 3.535-7.955 3.535s-3.535-6.187-7.955-13.258c-4.419-7.071 4.42-14.142 4.42-14.142l-22.981 11.49s7.955 4.42 10.607 8.839l5.303 8.839s-3.223 1.768-8.214 3.482c-3.589 1.875-7.696.054-9.464-1.714z" transform="matrix(.15954 .02165 .00278 -.11904 258.866 126.07)" stroke="#000" stroke-width="1pt" fill="#fff133"/> - <g transform="matrix(.12959 0 0 .10848 351.35 305.645)"> - <g stroke-width="1pt" transform="rotate(45 478.12 -504.573)"> - <ellipse fill="silver" transform="translate(124.01 283.46)" cx="354.33" rx="35.433" cy="-1428" ry="35.433" stroke="#000"/> - <path d="M460.63-1126.77v53.15h35.432l.001-53.15c0-17.717-35.433-17.717-35.433 0z" stroke="#000" fill="#fff133"/> - <path d="M442.91-1066.09h70.866c9.757-9.756 9.757-26.095 0-35.433-25.991-10.607-44.874-9.48-70.866 0-8.307 9.338-9.422 24.826 0 35.433z" stroke="#000" fill="silver"/> - <path d="M442.91-1073.62v53.15h70.866v-53.15c-17.717-10.607-53.15-10.607-70.866 0z" stroke="#000" fill="#fff133"/> - <path d="M442.91-1012.94h70.866c9.757-9.756 9.757-26.095 0-35.433-25.991-10.607-44.874-9.48-70.866 0-8.307 9.338-9.422 24.826 0 35.433z" stroke="#000" fill="silver"/> - <path fill="#fff133" d="M442.91-116.93h70.866V131.1H442.91z"/> - <path d="M442.91-1020.476l.006 484.79h70.867l-.007-484.79c-17.717-10.607-53.15-10.607-70.866 0z" stroke="#000" fill="#fff133"/> - <path d="M442.92-506.698h70.866c9.757-9.756 9.757-26.095 0-35.433-25.991-10.607-44.874-9.48-70.866 0-8.307 9.338-9.422 24.826 0 35.433z" stroke="#000" fill="silver"/> - <path d="M442.92-506.7v318.9h70.866v-318.9c-17.717-10.607-53.15-10.607-70.866 0z" stroke="#000" fill="#fff133"/> - <path d="M425.19-329.53h106.3c9.757-9.756 9.757-26.095 0-35.433 0 0-17.716-17.716-53.149-17.716s-53.15 17.716-53.15 17.716c-7.122 9.338-6.284 24.001 0 35.433z" stroke="#000" fill="#fff133"/> - <path d="M425.19-329.53l17.717 88.583h70.866l17.716-88.583c.274-3.727-17.716-17.716-53.149-17.716s-51.928 17.341-53.15 17.716z" stroke="#000" fill="#fff133"/> - <path d="M336.61-506.69c0-35.433 0-86.653 17.717-129.98 17.716 43.326 17.716 94.546 17.716 129.98H336.61z" transform="matrix(1 0 0 .81782 124.01 173.44)" stroke="#000" fill="#fff133"/> - <path d="M318.9-506.69h17.716v-43.326c0-43.327-35.433-64.99-35.433-64.99l17.717 108.32z" transform="matrix(-1 0 0 .81782 832.67 173.44)" stroke="#000" fill="#fff133"/> - <path d="M318.9-506.69h17.716v-43.326c0-43.327-35.433-64.99-35.433-64.99l17.717 108.32z" transform="matrix(1 0 0 .81782 124.01 173.44)" stroke="#000" fill="#fff133"/> - <path d="M478.34-116.93c17.716 88.582 17.716 159.45 17.716 177.16.031 33.655-17.716 53.15-17.716 53.15s-17.717-17.717-17.717-53.15c0-17.716 0-88.583 17.717-177.16zm-35.433-124.02c0 124.02-35.433 230.32-35.433 318.9 0 70.866 51.654 73.453 70.118 72.16 18.464-1.294 72.3-1.191 71.614-72.16 0-88.583-35.433-194.88-35.433-318.9-17.717-17.716-53.15-17.716-70.866 0z" stroke="#000" fill="#fff133"/> - <path d="M442.91-1020.476v53.15c0 35.433 17.716 177.16 17.716 177.16s-17.71 148.17-17.71 183.61v53.15c0-35.433 35.427-219.04 35.427-219.04s35.44 165.89 35.44 219.04v-53.15c0-35.433-17.717-183.61-17.724-183.61.007 0 17.717-124.02 17.717-159.45v-70.867c0 35.433-35.426 212.6-35.426 212.6s-35.44-177.17-35.44-212.6z" stroke="#000" fill="silver"/> - </g> - <path transform="matrix(1.2487 -1.4214 1.3593 1.3175 -662.45 -102.64)" stroke="#000" stroke-width="1pt" fill="#fff133" d="M218.28 257.88h22.934v73.043H218.28z"/> - <path d="M336.61 166.54c0 14.669 35.433 35.434 35.433-17.716H336.61v17.716z" transform="matrix(1.8992 0 0 1.8865 -662.45 -102.64)" stroke="#000" stroke-width="1pt" fill="#fff133"/> - <path d="M242.1 24.803c-147.06 0-113.13 164.24-100.37 124.02 9.359-29.503 35.433-70.866 64.935-80.225 40.225-12.761 26.696 9.359 41.364 9.359 14.67 0 1.14-22.12 41.364-9.359 29.503 9.359 55.577 50.722 64.936 80.225 12.76 40.224 53.149-124.02-112.23-124.02z" transform="matrix(1.8992 0 0 1.8865 -662.45 -102.64)" stroke="#000" stroke-width="1pt" fill="#fff133"/> - <path d="M389.76 166.54c0 78.237-63.496 141.73-141.73 141.73-78.236 0-141.73-63.496-141.73-141.73v-17.716c.001-29.116 35.433 124.02 141.73 124.02s141.73-124.77 141.73-124.02v17.716z" transform="matrix(1.8992 0 0 1.8865 -662.45 -102.64)" stroke="#000" stroke-width="1pt" fill="#fff133"/> - <ellipse fill="silver" transform="matrix(1.2929 -1.3819 1.3912 1.2842 -753.9 -120.02)" cx="82.112" rx="18.433" cy="160.86" ry="20.109" stroke="#000" stroke-width="1pt"/> - <path transform="matrix(1.2509 -1.4194 1.3614 1.3153 -662.45 -102.64)" stroke="#000" stroke-width="1pt" fill="silver" d="M196.5 254.15h25.197v80.26H196.5z"/> - <path d="M336.61 166.54c0 14.669 35.433 35.434 35.433-17.716H336.61v17.716z" transform="matrix(-1.8992 0 0 1.8865 279.67 -100.51)" stroke="#000" stroke-width="1pt" fill="#fff133"/> - <path d="M389.76 148.82c0 78.236-63.496 141.73-141.73 141.73-78.236 0-141.73-63.496-141.73-141.73 0-78.236 63.496-141.73 141.73-141.73 78.237 0 141.73 63.496 141.73 141.73zm-53.15 0c0 14.669 22.812 3.042 9.359 43.04-9.359 27.826-27.075 45.543-56.578 54.902-40.225 12.76-26.694-9.359-41.364-9.359-14.668 0-1.14 22.119-41.364 9.359-29.502-9.359-47.218-27.076-56.577-56.578-12.76-40.224 9.359-26.695 9.359-41.364 0-14.67-22.119-1.139-9.359-41.364 9.359-29.502 27.075-47.219 56.577-56.578 40.225-12.761 26.696 9.359 41.364 9.359 14.67 0 1.14-22.12 41.364-9.359 29.503 9.359 47.219 27.075 56.578 56.578 12.76 40.224-9.359 26.694-9.359 41.364z" transform="matrix(1.8992 0 0 1.8865 -662.45 -102.64)" stroke="#000" stroke-width="1pt" fill="#fff133"/> - <path d="M126.55 157.68c-20.248 0-1.929 67.6-9.104 51.705s-11.144-33.368-11.144-51.705 3.969-35.809 11.144-51.705c7.175-15.894-11.144 51.705 9.104 51.705z" transform="matrix(1.6618 0 0 1.7607 -603.57 -99.519)" stroke="#000" stroke-width="1pt" fill="#fff133"/> - <path d="M372.05 139.96c0 15.892-2.13 31.632-9.751 44.811-7.965 13.775 9.751-44.811-7.965-44.811 17.716 0 1.687-58.587 7.965-44.811 6.279 13.776 9.751 28.919 9.751 44.811z" transform="matrix(1.8992 0 0 2.0316 -662.45 -106.24)" stroke="#000" stroke-width="1pt" fill="#fff133"/> - <path d="M296.29 263.08c-14.836 6.279-31.144 9.751-48.258 9.751s-33.422-3.472-48.257-9.751c-14.835-6.278 48.257 9.751 48.257-7.966 0 17.717 63.093 1.688 48.258 7.966zM248.03 42.52c0-17.716-63.092-1.688-48.257-7.966s31.143-9.75 48.257-9.75 33.422 3.472 48.258 9.75c14.835 6.278-48.258-9.75-48.258 7.966z" transform="matrix(1.8992 0 0 1.8865 -662.45 -102.64)" stroke="#000" stroke-width="1pt" fill="#fff133"/> - <path d="M276.58 287.67c-9.223 1.889-18.773 2.881-28.552 2.881s-19.329-.992-28.553-2.881l-1.432 6.965c9.686 1.984 19.715 3.025 29.985 3.025s20.299-1.041 29.985-3.025l-1.433-6.965z" transform="matrix(1.2929 -1.3819 -1.3912 -1.2842 -305.22 712.05)" stroke="#000" stroke-width="1pt" fill="silver"/> - <path d="M276.58 287.67c-9.223 1.889-18.773 2.881-28.552 2.881s-19.329-.992-28.553-2.881l-1.432 6.965c9.686 1.984 19.715 3.025 29.985 3.025s20.299-1.041 29.985-3.025l-1.433-6.965z" transform="matrix(1.2929 -1.3819 1.3912 1.2842 -719.56 329.88)" stroke="#000" stroke-width="1pt" fill="silver"/> - <path d="M267.7 308.51c-9.223 1.889-20.189.927-29.969.927-9.778 0-19.285-2.612-28.509-4.501l8.821-10.303c9.686 1.984 19.715 3.025 29.985 3.025s20.299-1.041 29.985-3.025L267.7 308.51z" transform="matrix(1.2929 -1.3819 1.3912 1.2842 -719.56 329.88)" stroke="#000" stroke-width="1pt" fill="silver"/> - <path d="M276.58 287.67c-9.223 1.889-18.773 2.881-28.552 2.881s-19.329-.992-28.553-2.881l-1.432 6.965c9.686 1.984 19.715 3.025 29.985 3.025s20.299-1.041 29.985-3.025l-1.433-6.965z" transform="matrix(1.3912 1.2842 -1.2929 1.3819 -343.78 -345.21)" stroke="#000" stroke-width="1pt" fill="silver"/> - <ellipse fill="silver" transform="matrix(1.2929 -1.3819 1.3912 1.2842 -285.47 314.38)" cx="82.112" rx="18.433" cy="160.86" ry="20.109" stroke="#000" stroke-width="1pt"/> - <path d="M267.59 281.47c-9.223 1.889-17.098 2.943-26.877 2.943s-23.112-.712-32.336-2.601l9.672 12.822c9.686 1.984 19.715 3.025 29.985 3.025s20.299-1.041 29.985-3.025L267.59 281.47z" transform="matrix(1.3912 1.2842 -1.2929 1.3819 -346.96 -315.18)" stroke="#000" stroke-width="1pt" fill="silver"/> - <path d="M173.94 271.77l-.838 14.842-3.239 4.493.976-15.087 3.101-4.248zM330.54 265.6l3.562 4.189 1.047 13.616-2.933-2.933-1.676-14.872z" transform="matrix(1.8992 0 0 1.8865 -662.45 -102.64)" stroke="#000" stroke-width="1pt" fill="silver"/> - <ellipse fill="silver" transform="matrix(1.2929 -1.3819 1.3912 1.2842 -733.89 329.88)" cx="82.112" rx="18.433" cy="160.86" ry="20.109" stroke="#000" stroke-width="1pt"/> - <g stroke="#000" fill="#fff133"> - <path d="M301.18 396.85l17.717 17.717-17.717 17.716 8.858 8.859 17.717-17.717 35.433 35.433-17.717 17.717 8.859 8.858 17.716-17.716 17.717 17.716-53.15 53.15-35.433-35.433 17.717-17.717 8.858 8.859 8.858-8.859L301.18 450l-8.858 8.859 8.858 8.858-17.716 17.716-17.717-17.716 8.858-8.859-8.858-8.858-35.433 35.433 8.858 8.858 8.858-8.858 17.717 17.717-17.716 17.716-8.858-8.858-8.859 8.858 35.433 35.433 8.859-8.858-8.859-8.859 17.717-17.716 35.433 35.433-53.15 53.15-17.717-17.717 17.717-17.716-8.858-8.858-17.717 17.716-35.433-35.433 17.717-17.717-8.859-8.858-17.716 17.717-17.717-17.717 124.02-124.02z" transform="matrix(2.2946 0 0 2.2438 143.093 -1733.726)" stroke-width=".625"/> - <path d="M318.9 786.61v35.433l88.582 88.583V839.76l-17.716-17.717h-35.433L318.9 786.61z" stroke-width="1.25" transform="matrix(1.1473 0 0 1.1219 346.36 -1288.5)"/> - <path d="M230.41 698.78l70.381 70.381.838 35.19-71.219-71.219V698.78z" transform="matrix(1.1473 0 0 1.1219 346.246 -1288.525)" stroke-width="1.25"/> - <path d="M301.18 804.33l35.433-35.433v-35.433l-35.433 35.433v35.433z" stroke-width="1.25" transform="matrix(1.1473 0 0 1.1219 346.36 -1288.5)"/> - <path d="M301.18 804.33l35.433-35.433v-35.433l-35.433 35.433v35.433z" transform="matrix(1.1473 0 0 1.1219 244.729 -1387.881)" stroke-width="1.25"/> - <path d="M248.03 644.88v35.433l17.717-17.717-17.717-17.716z" stroke-width="1.25" transform="matrix(1.1473 0 0 1.1219 346.36 -1288.5)"/> - <path d="M248.03 644.88v35.433l17.717-17.717-17.717-17.716z" transform="matrix(1.1473 0 0 1.1219 447.991 -1189.119)" stroke-width="1.25"/> - <path d="M230.41 698.78l35.786 35.433v35.433l-35.786-36.514V698.78z" transform="matrix(1.1473 0 0 1.1219 284.864 -1348.97)" stroke-width="1.25"/> - <path d="M301.18 804.33l35.433-35.433v-35.433l-35.433 35.433v35.433z" transform="matrix(1.1473 0 0 1.1219 447.991 -1507.136)" stroke-width="1.25"/> - <path d="M301.18 804.33l35.433-35.433v-35.433l-35.433 35.433v35.433z" transform="matrix(1.1473 0 0 1.1219 366.687 -1427.638)" stroke-width="1.25"/> - <path d="M283.46 822.05l53.15-53.15v-35.433l-70.866 70.866 17.716 17.717z" transform="matrix(1.1473 0 0 1.1219 366.687 -1546.896)" stroke-width="1.25"/> - <path d="M248.03 644.88v35.433l17.717-17.717-17.717-17.716z" transform="matrix(1.1473 0 0 1.1219 468.318 -1447.507)" stroke-width="1.25"/> - <path d="M301.18 804.33l-35.433-35.433v-35.433l35.433 35.433v35.433z" transform="matrix(1.1473 0 0 1.1219 447.991 -1507.136)" stroke-width="1.25"/> - <path d="M389.76 822.05l-53.15-53.15v-35.433l70.866 70.866-17.716 17.717z" transform="matrix(1.1473 0 0 1.1219 447.991 -1546.896)" stroke-width="1.25"/> - <path d="M230.41 698.05l70.866 70.866h35.433l17.717 17.716v70.867l-124.02-124.37v-35.08z" transform="matrix(1.1473 0 0 1.1219 569.831 -1387.906)" stroke-width="1.25"/> - <path d="M354.33 822.05l106.3-106.3h35.433l-106.3 106.3H354.33z" stroke-width="1.25" transform="matrix(1.1473 0 0 1.1219 346.36 -1288.5)"/> - <path d="M407.48 839.76l106.3-106.3-17.72-17.71-106.3 106.3 17.72 17.71z" stroke-width="1.25" transform="matrix(1.1473 0 0 1.1219 346.36 -1288.5)"/> - <path d="M407.48 839.76v70.866l106.3-106.3V733.46l-106.3 106.3z" transform="matrix(1.1473 0 0 1.1219 346.36 -1288.5)" stroke-width="1.25"/> - <path d="M354.33 822.05l106.3-106.3h35.433l-106.3 106.3H354.33z" transform="matrix(1.1473 0 0 1.1219 508.967 -1447.507)" stroke-width="1.25"/> - <path d="M407.48 839.76l106.3-106.3-17.72-17.71-106.3 106.3 17.72 17.71z" transform="matrix(1.1473 0 0 1.1219 508.967 -1447.507)" stroke-width="1.25"/> - <path d="M407.48 839.76v70.866l106.3-106.3V733.46l-106.3 106.3z" transform="matrix(1.1473 0 0 1.1219 508.967 -1447.507)" stroke-width="1.25"/> - <path d="M318.9 786.62l17.717-17.717V733.47l-35.433 35.433L318.9 786.62z" transform="matrix(1.1473 0 0 1.1219 590.276 -1527.016)" stroke-width="1.25"/> - <path d="M318.9 786.62l17.717-17.717V733.47l-35.433 35.433L318.9 786.62z" transform="matrix(1.1473 0 0 1.1219 488.648 -1626.394)" stroke-width="1.25"/> - <path d="M265.75 768.9v-35.433l17.717 17.716L265.75 768.9z" transform="matrix(1.1473 0 0 1.1219 447.991 -1348.129)" stroke-width="1.25"/> - <path d="M301.18 804.33l-35.433-35.433 17.717-17.717 17.716 17.717v35.433z" transform="matrix(1.1473 0 0 1.1219 366.687 -1427.638)" stroke-width="1.25"/> - <path d="M301.18 804.33l-17.716-17.717 17.716-17.716v35.433z" transform="matrix(1.1473 0 0 1.1219 488.648 -1586.645)" stroke-width="1.25"/> - </g> - </g> - <g stroke="#000" stroke-width="20.006" fill="#b00"> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(.01288 .00808 -.003 .01268 376.865 291.272)"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(.01298 .00767 -.00286 .01277 376.899 289.563)"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(.01288 .00808 -.003 .01268 376.905 287.429)"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(.01298 .00767 -.00286 .01277 376.938 285.719)"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(.01288 .00808 -.003 .01268 376.786 298.96)"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(.01298 .00767 -.00286 .01277 376.82 297.25)"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(.01288 .00808 -.003 .01268 376.826 295.116)"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(.01298 .00767 -.00286 .01277 376.859 293.406)"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(.01288 .00808 -.003 .01268 377.024 275.898)"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(.01298 .00767 -.00286 .01277 377.058 274.19)"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(.01288 .00808 -.003 .01268 377.064 272.055)"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(.01298 .00767 -.00286 .01277 377.097 270.345)"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(.01288 .00808 -.003 .01268 376.945 283.586)"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(.01298 .00767 -.00286 .01277 376.978 281.875)"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(.01288 .00808 -.003 .01268 376.984 279.742)"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(.01298 .00767 -.00286 .01277 377.018 278.032)"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(.01288 .00808 -.003 .01268 376.548 322.02)"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(.01298 .00767 -.00286 .01277 376.581 320.31)"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(.01288 .00808 -.003 .01268 376.587 318.177)"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(.01298 .00767 -.00286 .01277 376.62 316.467)"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(.01288 .00808 -.003 .01268 376.468 329.707)"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(.01298 .00767 -.00286 .01277 376.502 327.997)"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(.01288 .00808 -.003 .01268 376.508 325.864)"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(.01298 .00767 -.00286 .01277 376.541 324.154)"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(.01288 .00808 -.003 .01268 376.706 306.646)"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(.01298 .00767 -.00286 .01277 376.74 304.936)"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(.01288 .00808 -.003 .01268 376.746 302.803)"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(.01298 .00767 -.00286 .01277 376.78 301.093)"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(.01288 .00808 -.003 .01268 376.627 314.333)"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(.01298 .00767 -.00286 .01277 376.66 312.623)"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(.01288 .00808 -.003 .01268 376.667 310.49)"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(.01298 .00767 -.00286 .01277 376.7 308.78)"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(.01288 .00808 -.003 .01268 376.23 352.768)"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(.01298 .00767 -.00286 .01277 376.263 351.058)"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(.01288 .00808 -.003 .01268 376.27 348.925)"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(.01298 .00767 -.00286 .01277 376.303 347.214)"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(.01298 .00767 -.00286 .01277 376.184 358.745)"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(.01288 .00808 -.003 .01268 376.19 356.611)"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(.01298 .00767 -.00286 .01277 376.224 354.902)"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(.01288 .00808 -.003 .01268 376.389 337.394)"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(.01298 .00767 -.00286 .01277 376.422 335.684)"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(.01288 .00808 -.003 .01268 376.428 333.551)"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(.01298 .00767 -.00286 .01277 376.462 331.84)"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(.01288 .00808 -.003 .01268 376.31 345.082)"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(.01298 .00767 -.00286 .01277 376.343 343.371)"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(.01288 .00808 -.003 .01268 376.349 341.237)"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(.01298 .00767 -.00286 .01277 376.382 339.528)"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(.01288 .00808 -.003 .01268 376.03 372.083)"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(.01298 .00767 -.00286 .01277 376.064 370.373)"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(.01288 .00808 -.003 .01268 376.07 368.24)"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(.01298 .00767 -.00286 .01277 376.103 366.53)"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(.01298 .00767 -.00286 .01277 375.984 378.06)"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(.01288 .00808 -.003 .01268 375.99 375.926)"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(.01298 .00767 -.00286 .01277 376.024 374.217)"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(.01288 .00808 -.003 .01268 376.11 364.396)"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(.01298 .00767 -.00286 .01277 376.143 362.687)"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(.01288 .00808 -.003 .01268 376.15 360.553)"/> - </g> - <g stroke="#000" stroke-width="20.006" fill="#b00"> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(.013 .00796 -.00283 .0127 379.502 291.523)"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(.01308 .00754 -.00269 .0128 379.512 289.813)"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(.013 .00796 -.00283 .0127 379.49 287.68)"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(.01308 .00754 -.00269 .0128 379.5 285.969)"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(.013 .00796 -.00283 .0127 379.526 299.21)"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(.01308 .00754 -.00269 .0128 379.537 297.5)"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(.013 .00796 -.00283 .0127 379.514 295.367)"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(.01308 .00754 -.00269 .0128 379.524 293.656)"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(.013 .00796 -.00283 .0127 379.454 276.149)"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(.01308 .00754 -.00269 .0128 379.464 274.439)"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(.013 .00796 -.00283 .0127 379.441 272.305)"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(.01308 .00754 -.00269 .0128 379.452 270.595)"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(.013 .00796 -.00283 .0127 379.478 283.836)"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(.01308 .00754 -.00269 .0128 379.488 282.126)"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(.013 .00796 -.00283 .0127 379.466 279.992)"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(.01308 .00754 -.00269 .0128 379.476 278.282)"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(.013 .00796 -.00283 .0127 379.599 322.272)"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(.01308 .00754 -.00269 .0128 379.61 320.562)"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(.013 .00796 -.00283 .0127 379.587 318.428)"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(.01308 .00754 -.00269 .0128 379.597 316.718)"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(.013 .00796 -.00283 .0127 379.623 329.959)"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(.01308 .00754 -.00269 .0128 379.633 328.25)"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(.013 .00796 -.00283 .0127 379.61 326.116)"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(.01308 .00754 -.00269 .0128 379.621 324.406)"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(.013 .00796 -.00283 .0127 379.55 306.898)"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(.01308 .00754 -.00269 .0128 379.56 305.187)"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(.013 .00796 -.00283 .0127 379.538 303.054)"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(.01308 .00754 -.00269 .0128 379.549 301.344)"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(.013 .00796 -.00283 .0127 379.575 314.585)"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(.01308 .00754 -.00269 .0128 379.585 312.875)"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(.013 .00796 -.00283 .0127 379.562 310.741)"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(.01308 .00754 -.00269 .0128 379.573 309.031)"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(.013 .00796 -.00283 .0127 379.695 353.02)"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(.01308 .00754 -.00269 .0128 379.706 351.311)"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(.013 .00796 -.00283 .0127 379.683 349.177)"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(.01308 .00754 -.00269 .0128 379.694 347.467)"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(.01308 .00754 -.00269 .0128 379.73 358.998)"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(.013 .00796 -.00283 .0127 379.708 356.864)"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(.01308 .00754 -.00269 .0128 379.718 355.154)"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(.013 .00796 -.00283 .0127 379.647 337.647)"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(.01308 .00754 -.00269 .0128 379.658 335.936)"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(.013 .00796 -.00283 .0127 379.635 333.803)"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(.01308 .00754 -.00269 .0128 379.645 332.093)"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(.013 .00796 -.00283 .0127 379.671 345.334)"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(.01308 .00754 -.00269 .0128 379.682 343.624)"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(.013 .00796 -.00283 .0127 379.66 341.49)"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(.01308 .00754 -.00269 .0128 379.67 339.78)"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(.013 .00796 -.00283 .0127 379.756 372.337)"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(.01308 .00754 -.00269 .0128 379.767 370.626)"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(.013 .00796 -.00283 .0127 379.744 368.494)"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(.01308 .00754 -.00269 .0128 379.755 366.783)"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(.01308 .00754 -.00269 .0128 379.79 378.314)"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(.013 .00796 -.00283 .0127 379.768 376.18)"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(.01308 .00754 -.00269 .0128 379.779 374.47)"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(.013 .00796 -.00283 .0127 379.732 364.65)"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(.01308 .00754 -.00269 .0128 379.742 362.94)"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(.013 .00796 -.00283 .0127 379.72 360.806)"/> - </g> - <g stroke="#000" stroke-width="14.25" fill="#b00"> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(.0162 .00404 .00232 .0128 389.98 279.749)"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(.0045 .013 -.01229 .00849 386.734 276.387)"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(.01181 .00968 -.00565 .01213 387.953 278.432)"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(-.00986 .01097 -.01604 -.00222 386.414 273.194)"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(-.00934 .01104 -.01615 -.0021 388.57 273.182)"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(-.01037 .01067 -.01593 -.0027 376.989 273.12)"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(-.00985 .01076 -.01604 -.00257 379.142 273.172)"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(-.01037 .01067 -.01593 -.0027 381.83 273.206)"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(-.00934 .01104 -.01615 -.0021 383.728 273.238)"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(-.01037 .01067 -.01593 -.0027 373.879 272.305)"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(-.01138 .00976 -.01555 -.00406 375.38 272.63)"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(-.01504 .00625 -.01305 -.00773 374.52 271.243)"/> - </g> - <g stroke="#000" stroke-width="14.25" fill="#b00"> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(-.01307 -.00787 -.01355 .0062 420.69 360.355)"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(-.01263 -.00807 -.0137 .00611 422.629 359.816)"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(-.01307 -.00787 -.01355 .0062 425.059 359.172)"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(-.01263 -.00807 -.0137 .00611 426.997 358.632)"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(-.01559 .00255 -.00363 .01263 441.392 352.37)"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(-.0103 .01036 .00644 .01175 443.264 346.973)"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(-.0157 .00296 -.00345 .0126 442.428 350.42)"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(-.01221 -.00878 -.01414 .0052 411.602 362.163)"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(-.01175 -.00895 -.01428 .0051 413.589 361.766)"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(-.0134 -.00747 -.01328 .0066 416.703 361.233)"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(-.01125 -.00939 -.01454 .00455 417.48 360.627)"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(-.01307 -.00787 -.01355 .0062 429.427 357.987)"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(-.01263 -.00807 -.0137 .00611 431.366 357.448)"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(-.00984 -.01067 -.0151 .0027 382.84 363.788)"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(-.00934 -.01075 -.01521 .00257 384.882 363.734)"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(-.00984 -.01067 -.0151 .0027 387.43 363.699)"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(-.00934 -.01075 -.01521 .00257 389.473 363.647)"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(-.00984 -.01067 -.0151 .0027 373.66 363.964)"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(-.00934 -.01075 -.01521 .00257 375.702 363.911)"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(-.00984 -.01067 -.0151 .0027 378.25 363.875)"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(-.00934 -.01075 -.01521 .00257 380.292 363.823)"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(-.01117 -.0097 -.01466 .00406 401.87 363.367)"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(-.01105 -.00955 -.01463 .00433 404.145 363.136)"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(-.01153 -.0094 -.0145 .00444 406.661 362.8)"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(-.01175 -.00895 -.01428 .0051 409.116 362.63)"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(-.00984 -.01067 -.0151 .0027 392.02 363.61)"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(-.01015 -.01023 -.01499 .00338 394.405 363.598)"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(-.01123 -.00966 -.01464 .00412 397.255 363.528)"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(-.00994 -.01037 -.01505 .00317 398.881 363.2)"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(-.0074 -.01197 -.01544 .00039 345.114 362.083)"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(-.00689 -.01198 -.01552 .00025 347.134 362.338)"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(-.00882 -.01127 -.0153 .00171 350.207 363.005)"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(-.00832 -.01133 -.0154 .00158 352.247 363.086)"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(-.00689 -.01198 -.01552 .00025 338.064 361.134)"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(-.0074 -.01197 -.01544 .00039 340.579 361.481)"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(-.00689 -.01198 -.01552 .00025 342.6 361.736)"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(-.00882 -.01127 -.0153 .00171 363.96 363.635)"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(-.00832 -.01133 -.0154 .00158 366.001 363.715)"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(-.00984 -.01067 -.0151 .0027 369.07 364.052)"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(-.00934 -.01075 -.01521 .00257 371.11 364)"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(-.00882 -.01127 -.0153 .00171 354.791 363.215)"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(-.00832 -.01133 -.0154 .00158 356.832 363.295)"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(-.00882 -.01127 -.0153 .00171 359.376 363.424)"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(-.00832 -.01133 -.0154 .00158 361.417 363.504)"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(.01592 -.00203 .00451 -.01237 330.01 344.511)"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(.01266 -.00804 -.00338 -.01268 327.541 348.142)"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(.0085 -.01144 -.0083 -.0109 327.401 351.83)"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(.00338 -.013 -.01242 -.0078 328.048 354.944)"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(.01585 .00085 .00735 -.01145 335.005 339.412)"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(.01609 .00047 .00716 -.01145 333.41 341.077)"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(.01577 -.00162 .0047 -.01239 331.209 342.63)"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(-.0009 -.01346 -.01428 -.00493 329.892 357.863)"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(-.00393 -.01288 -.01527 -.00232 332.543 359.562)"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(-.0074 -.01197 -.01544 .00039 335.928 360.864)"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(-.01563 -.00324 -.00984 .00997 434.886 356.28)"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(-.01507 -.0042 -.0106 .0095 435.015 356.672)"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(-.01583 -.00244 -.0091 .01045 439.374 354.194)"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(-.01496 -.00447 -.01083 .0093 436.607 355.586)"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(.01467 -.00556 .01183 .00831 430.23 346.693)"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(.01428 -.00583 .012 .00825 428.456 345.846)"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(.01514 -.0046 .01102 .00905 425.65 344.754)"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(.01428 -.00583 .012 .00825 436.466 349.605)"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(.01467 -.00556 .01183 .00831 434.236 348.574)"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(.01428 -.00583 .012 .00825 432.46 347.726)"/> - </g> - <g stroke-width="1pt" transform="matrix(.07228 0 0 .0858 364.627 299.181)"> - <path d="M212.603-1994.912v53.15h-53.15v35.44h53.15v106.3h35.433v-106.3h53.149v-35.44h-53.149v-53.15h-35.433z" stroke="#000" fill="#fff133"/> - <ellipse fill="#fff133" transform="matrix(.57143 0 0 .61816 93.645 -678.94)" cx="239.17" rx="62.008" cy="-1813.5" ry="57.32" stroke="#000"/> - <path d="M602.36-1119.4c0 68.45-10.417 145.68-29.252 205.02-120.08-26.455-268.06-39.682-339.04-39.682-87.586 0-246.15 13.227-345.26 26.455-18.835-59.336-30.538-123.34-30.538-191.79 0-273.81 105.27-390.21 367.5-496.03 233.3 105.82 376.6 222.22 376.6 496.03z" transform="matrix(1.0576 0 0 1.3394 -5.764 363.72)" stroke="#000" fill="#fff"/> - <path d="M566.93-657.28c0-44.007-150.8-79.724-336.61-79.724s-336.61 35.717-336.61 79.724v26.575c0-44.007 150.8-70.866 336.61-70.866s336.61 44.576 336.61 88.583v-44.292z" transform="matrix(1.1715 0 0 .74463 -32.833 -634.89)" stroke="#000" fill="#fff133"/> - <g stroke="#000" fill="#fff133"> - <path d="M230.32-825.59l-53.15 53.15 35.433 35.433-17.716 17.717-35.433-35.433-53.15 53.149 53.15 53.15 35.433-35.433 17.716 17.716v53.15h35.433v-53.15l17.717-17.716 35.433 35.433 53.15-53.15-53.15-53.149-35.433 35.433-17.717-17.717 35.434-35.433-53.15-53.15z" transform="matrix(1.1725 0 0 .74463 -33.06 -766.809)"/> - <path d="M220.98-825.59l-8.379 53.15v35.433l-17.716 17.717v-35.434l-17.717 53.15 17.717 53.149v-35.432l17.716 17.716v53.15l17.717-.001v-53.15l17.717-17.716-.001 35.432 17.717-53.149-17.717-53.15.001 35.434-17.717-17.717v-35.433l-9.338-53.149z" transform="matrix(1.13516 -.18643 .29356 .72091 -190.034 -703.65)"/> - <path d="M220.98-825.59l-8.379 53.15v35.433l-17.716 17.717v-35.434l-17.717 53.15 17.717 53.149v-35.432l17.716 17.716v53.15l17.717-.001v-53.15l17.717-17.716-.001 35.432 17.717-53.149-17.717-53.15.001 35.434-17.717-17.717v-35.433l-9.338-53.149z" transform="matrix(1.1416 .16986 -.26746 .725 182.2 -778.388)"/> - <path d="M141.73-1020.5c0-17.72 17.717-35.44 35.433-35.44 17.717 0 35.433 17.72 35.433 35.44s-17.716 35.431-17.716 35.431l70.866 70.866h-35.433l-53.15-53.15-53.149 53.15H88.581l70.866-70.866s-17.717-17.711-17.717-35.431z" transform="matrix(.92597 -.09509 .18717 .73508 28.799 -521.9)"/> - <path d="M141.73-1020.5c0-17.72 17.717-35.44 35.433-35.44 17.717 0 35.433 17.72 35.433 35.44s-17.716 35.431-17.716 35.431l70.866 70.866h-35.433l-53.15-53.15-53.149 53.15H88.581l70.866-70.866s-17.717-17.711-17.717-35.431z" transform="matrix(.92699 .091 -.17909 .7359 124.84 -554.076)"/> - <path d="M566.93-657.28c0-44.007-150.8-79.724-336.61-79.724s-336.61 35.717-336.61 79.724v26.575c0-44.007 150.8-70.866 336.61-70.866s336.61 44.576 336.61 88.583v-44.292z" transform="matrix(1.1725 0 0 .74463 -33.06 -674.46)"/> - </g> - <path d="M566.93-657.28c0-44.007-150.8-79.724-336.61-79.724s-336.61 35.717-336.61 79.724v26.575c0-44.007 150.8-70.866 336.61-70.866s336.61 44.576 336.61 88.583v-44.292z" transform="matrix(1.0735 0 0 .74463 -9.254 -386.86)" stroke="#000" fill="#fff133"/> - <g stroke="#000" fill="#fff133"> - <path d="M230.32-825.59l-53.15 53.15 35.433 35.433-17.716 17.717-35.433-35.433-53.15 53.149 53.15 53.15 35.433-35.433 17.716 17.716v53.15h35.433v-53.15l17.717-17.716 35.433 35.433 53.15-53.15-53.15-53.149-35.433 35.433-17.717-17.717 35.434-35.433-53.15-53.15z" transform="matrix(1.1042 0 0 .74463 -12.892 -518.779)"/> - <path d="M220.98-825.59l-8.379 53.15v35.433l-17.716 17.717v-35.434l-17.717 53.15 17.717 53.149v-35.432l17.716 17.716v53.15l17.717-.001v-53.15l17.717-17.716-.001 35.432 17.717-53.149-17.717-53.15.001 35.434-17.717-17.717v-35.433l-9.338-53.149z" transform="scale(1.1042 .74463) rotate(-14.499 -2477.736 266.166)"/> - <path d="M220.98-825.59l-8.379 53.15v35.433l-17.716 17.717v-35.434l-17.717 53.15 17.717 53.149v-35.432l17.716 17.716v53.15l17.717-.001v-53.15l17.717-17.716-.001 35.432 17.717-53.149-17.717-53.15.001 35.434-17.717-17.717v-35.433l-9.338-53.149z" transform="matrix(1.0751 .16986 -.25188 .725 189.828 -530.358)"/> - <path d="M141.73-1020.5c0-17.72 17.717-35.44 35.433-35.44 17.717 0 35.433 17.72 35.433 35.44s-17.716 35.431-17.716 35.431l70.866 70.866h-35.433l-53.15-53.15-53.149 53.15H88.581l70.866-70.866s-17.717-17.711-17.717-35.431z" transform="matrix(.87203 -.09509 .17626 .73508 45.363 -273.87)"/> - <path d="M141.73-1020.5c0-17.72 17.717-35.44 35.433-35.44 17.717 0 35.433 17.72 35.433 35.44s-17.716 35.431-17.716 35.431l70.866 70.866h-35.433l-53.15-53.15-53.149 53.15H88.581l70.866-70.866s-17.717-17.711-17.717-35.431z" transform="matrix(.873 .091 -.16866 .7359 135.81 -306.046)"/> - <path d="M566.93-657.28c0-44.007-150.8-79.724-336.61-79.724s-336.61 35.717-336.61 79.724v26.575c0-44.007 150.8-70.866 336.61-70.866s336.61 44.576 336.61 88.583v-44.292z" transform="matrix(1.1042 0 0 .74463 -12.892 -426.43)"/> - </g> - <path d="M566.93-657.28c0-44.007-150.8-79.724-336.61-79.724s-336.61 35.717-336.61 79.724v26.575c0-44.007 150.8-70.866 336.61-70.866s336.61 44.576 336.61 88.583v-44.292z" transform="matrix(1.105 0 0 .74463 -16.106 -865.2)" stroke="#000" fill="#fff133"/> - <g stroke="#000" fill="#fff133"> - <path d="M230.32-825.59l-53.15 53.15 35.433 35.433-17.716 17.717-35.433-35.433-53.15 53.149 53.15 53.15 35.433-35.433 17.716 17.716v53.15h35.433v-53.15l17.717-17.716 35.433 35.433 53.15-53.15-53.15-53.149-35.433 35.433-17.717-17.717 35.434-35.433-53.15-53.15z" transform="matrix(1.0799 0 0 .70238 -6.168 -1031.347)"/> - <path d="M220.98-825.59l-8.379 53.15v35.433l-17.716 17.717v-35.434l-17.717 53.15 17.717 53.149v-35.432l17.716 17.716v53.15l17.717-.001v-53.15l17.717-17.716-.001 35.432 17.717-53.149-17.717-53.15.001 35.434-17.717-17.717v-35.433l-9.338-53.149z" transform="matrix(1.0455 -.17585 .27037 .68 -150.745 -971.771)"/> - <path d="M220.98-825.59l-8.379 53.15v35.433l-17.716 17.717v-35.434l-17.717 53.15 17.717 53.149v-35.432l17.716 17.716v53.15l17.717-.001v-53.15l17.717-17.716-.001 35.432 17.717-53.149-17.717-53.15.001 35.434-17.717-17.717v-35.433l-9.338-53.149z" transform="scale(1.0799 .70238) rotate(13.186 6508.428 27.561)"/> - <path d="M141.73-1020.5c0-17.72 17.717-35.44 35.433-35.44 17.717 0 35.433 17.72 35.433 35.44s-17.716 35.431-17.716 35.431l70.866 70.866h-35.433l-53.15-53.15-53.149 53.15H88.581l70.866-70.866s-17.717-17.711-17.717-35.431z" transform="matrix(.85284 -.0897 .17238 .69338 50.806 -800.335)"/> - <path d="M141.73-1020.5c0-17.72 17.717-35.44 35.433-35.44 17.717 0 35.433 17.72 35.433 35.44s-17.716 35.431-17.716 35.431l70.866 70.866h-35.433l-53.15-53.15-53.149 53.15H88.581l70.866-70.866s-17.717-17.711-17.717-35.431z" transform="matrix(.85378 .08583 -.16494 .69414 139.262 -830.684)"/> - <path d="M566.93-657.28c0-44.007-150.8-79.724-336.61-79.724s-336.61 35.717-336.61 79.724v26.575c0-44.007 150.8-70.866 336.61-70.866s336.61 44.576 336.61 88.583v-44.292z" transform="matrix(1.0799 0 0 .70238 -6.168 -944.238)"/> - </g> - <ellipse fill="#b90000" transform="matrix(.96627 0 0 .41385 12.936 -517.53)" cx="234.13" rx="375.87" cy="-822.11" ry="120.53"/> - </g> - <path d="M513.78-790.16l35.432-17.714 35.433 17.714s-73.366 35.433-73.366 159.45c-.001 88.58 125.26 106.3 125.26 212.6 0 45.649-34.183 88.582-69.616 88.582s-88.583-17.716-141.73-70.866c35.433 17.716 76.082 37.308 106.3 36.058 19.588-.405 55.025-17.716 55.025-53.149 0-70.866-122.77-106.92-122.77-213.22 0-124.02 50.025-159.45 50.026-159.45z" transform="matrix(.21542 0 0 .17871 313.875 342.337)" stroke="#000" stroke-width="1pt" fill="#fff"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(.01859 -.00133 .0085 .02009 378.938 385.27)" stroke="#000" stroke-width="20.006" fill="#b00"/> - <path d="M520.25-790.16l46.683-17.717 10 17.717s-70.649 35.433-70.649 159.45c-.001 88.58 125.89 106.3 125.89 212.6 0 45.649-26.714 87.362-65.241 88.582-73.403 2.363-90.458-23.966-141.73-70.866 43.149 32.308 105 46.752 129.02 34.183 29.354-15.364 35.024-36.058 35.024-53.774 0-70.866-120.89-104.42-120.89-210.72 0-124.02 51.9-159.45 51.9-159.45z" transform="matrix(.21542 0 0 .17871 313.875 342.337)" stroke="#000" stroke-width="1pt" fill="#fff"/> - <path d="M513.34-789.69c7.004-2.437 35.875-18.186 71.308 17.247 17.717 17.72 17.716 53.149 17.716 70.866l53.15-53.149s-29.066-86.87-107.62-53.592c-11.127 4.901-28.139 14.538-34.549 18.628z" transform="matrix(.21542 0 0 .17871 313.875 342.337)" stroke="#000" stroke-width="1pt" fill="#fff"/> - <path d="M523.8-795.94c8.839-2.869 36.676-6.325 64.596 18.501 17.717 17.72 18.966 42.933 18.966 60.65l40.65-37.933c3.44-3.21-24.832-81.252-99.241-54.034-4.498 1.807-14.779 6.302-24.971 12.816z" transform="matrix(.21542 0 0 .17871 313.875 342.337)" stroke="#000" stroke-width="1pt" fill="#fff"/> - <path d="M344.54-596.29l9.152 22.141s1.455-9.767 8.526-11.534l7.071-1.768s26.864 49.328 32.168 58.167c5.302 8.838-3.536 16.793-1.769 16.793 1.769 0 26.517-11.49 26.517-11.49s-10.606.883-15.026-6.188-34.819-59.934-34.819-59.934 6.187-2.652 11.49-5.303c5.304-2.652 10.607 7.955 10.607 7.955l-13.258-26.517s0 8.839-4.42 10.607c-4.419 1.767-7.955 3.535-7.955 3.535s-3.535-6.187-7.955-13.258c-4.419-7.071 4.42-14.142 4.42-14.142l-22.981 11.49s7.955 4.42 10.607 8.839l5.303 8.839s-3.223 1.768-8.214 3.482c-3.589 1.875-7.696.054-9.464-1.714z" transform="matrix(.17534 -.01853 .05985 .15541 398.736 344.82)" stroke="#000" stroke-width="1pt" fill="#fff133"/> - <path d="M344.54-596.29l9.152 22.141s1.455-9.767 8.526-11.534l7.071-1.768s26.864 49.328 32.168 58.167c5.302 8.838-3.536 16.793-1.769 16.793 1.769 0 26.517-11.49 26.517-11.49s-10.606.883-15.026-6.188-34.819-59.934-34.819-59.934 6.187-2.652 11.49-5.303c5.304-2.652 10.607 7.955 10.607 7.955l-13.258-26.517s0 8.839-4.42 10.607c-4.419 1.767-7.955 3.535-7.955 3.535s-3.535-6.187-7.955-13.258c-4.419-7.071 4.42-14.142 4.42-14.142l-22.981 11.49s7.955 4.42 10.607 8.839l5.303 8.839s-3.223 1.768-8.214 3.482c-3.589 1.875-7.696.054-9.464-1.714z" transform="matrix(-.15954 .02165 -.00278 -.11904 505.5 127.698)" stroke="#000" stroke-width="1pt" fill="#fff133"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(.01859 -.00133 .0085 .02009 382.077 385.078)" stroke="#000" stroke-width="20.006" fill="#b00"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(.0313 -.00133 .01432 .02009 377.403 387.717)" stroke="#000" stroke-width="20.006" fill="#b00"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(.0313 -.00133 .01432 .02009 380.366 387.526)" stroke="#000" stroke-width="20.006" fill="#b00"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(.0388 -.00133 .01775 .02009 376.22 390.533)" stroke="#000" stroke-width="20.006" fill="#b00"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(.0388 -.00133 .01775 .02009 379.893 390.342)" stroke="#000" stroke-width="20.006" fill="#b00"/> - <path fill="#ffe000" d="M0 0h255.992v511.984H0z"/> - </g> -</svg> diff --git a/img/flags/1x1/vc.svg b/img/flags/1x1/vc.svg deleted file mode 100644 index 7dd8df0..0000000 --- a/img/flags/1x1/vc.svg +++ /dev/null @@ -1,10 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" height="512" width="512" viewBox="0 0 512 512"> - <g fill-rule="evenodd" stroke-width="1pt"> - <path fill="#f4f100" d="M0 0h510.375v512H.001z"/> - <path fill="#199a00" d="M385.619 0h126.378v512H385.619z"/> - <path fill="#0058aa" d="M0 0h126.378v512H.001z"/> - </g> - <g fill-rule="evenodd" fill="#199a00"> - <path d="M191.209 138.61l-49.471 76.148 47.733 79.35 46.743-78.648-45.005-76.85zM320.575 138.61l-49.471 76.148 47.733 79.35 46.736-78.648-44.998-76.85zM255.238 242.492l-49.467 76.148 47.73 79.351 46.741-78.648-45.004-76.85z"/> - </g> -</svg> diff --git a/img/flags/1x1/ve.svg b/img/flags/1x1/ve.svg deleted file mode 100644 index 96a8853..0000000 --- a/img/flags/1x1/ve.svg +++ /dev/null @@ -1,26 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" height="512" width="512" viewBox="0 0 512 512"> - <defs> - <g id="d" transform="translate(0 -36)"> - <g id="c"> - <g id="b"> - <path d="M0-5L-1.545-.245l2.853.927z" id="a" fill="#fff"/> - <use xlink:href="#a" transform="scale(-1 1)" width="180" height="120"/> - </g> - <use xlink:href="#b" transform="rotate(72)" width="180" height="120"/> - </g> - <use xlink:href="#b" transform="rotate(-72)" width="180" height="120"/> - <use xlink:href="#c" transform="rotate(144)" width="180" height="120"/> - </g> - </defs> - <path d="M0 0h512v512H0z" fill="#cf142b"/> - <path d="M0 0h512v341.335H0z" fill="#00247d"/> - <path d="M0 0h512v170.665H0z" fill="#fc0"/> - <g id="f" transform="translate(256.335 358.4) scale(4.265)"> - <g id="e"> - <use height="120" width="180" transform="rotate(10)" xlink:href="#d"/> - <use height="120" width="180" transform="rotate(30)" xlink:href="#d"/> - </g> - <use height="120" width="180" transform="rotate(40)" xlink:href="#e"/> - </g> - <use height="120" width="180" transform="rotate(-80 256.335 358.4)" xlink:href="#f"/> -</svg> diff --git a/img/flags/1x1/vg.svg b/img/flags/1x1/vg.svg deleted file mode 100644 index db5fd17..0000000 --- a/img/flags/1x1/vg.svg +++ /dev/null @@ -1,142 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" height="512" width="512" viewBox="0 0 512 512"> - <defs> - <linearGradient id="a"> - <stop stop-color="red" offset="0"/> - <stop stop-color="#ff0" offset="1"/> - </linearGradient> - <linearGradient id="c" y2="107.76" xlink:href="#a" gradientUnits="userSpaceOnUse" x2="92.551" gradientTransform="matrix(.65977 0 0 1.4919 -3.68 -.673)" y1="111.28" x1="103.08"/> - <linearGradient id="d" y2="107.76" xlink:href="#a" gradientUnits="userSpaceOnUse" x2="92.551" gradientTransform="matrix(.65977 0 0 1.4919 -3.676 -.451)" y1="111.28" x1="103.08"/> - <linearGradient id="e" y2="107.76" xlink:href="#a" gradientUnits="userSpaceOnUse" x2="92.551" gradientTransform="matrix(.65977 0 0 1.4919 -4.457 -.249)" y1="111.28" x1="103.08"/> - <linearGradient id="f" y2="107.76" xlink:href="#a" gradientUnits="userSpaceOnUse" x2="92.551" gradientTransform="matrix(.65977 0 0 1.4919 -3.694 -.033)" y1="111.28" x1="103.08"/> - <linearGradient id="g" y2="107.76" xlink:href="#a" gradientUnits="userSpaceOnUse" x2="92.551" gradientTransform="matrix(.65977 0 0 1.4919 -3.696 .18)" y1="111.28" x1="103.08"/> - <linearGradient id="h" y2="107.76" xlink:href="#a" gradientUnits="userSpaceOnUse" x2="92.551" gradientTransform="matrix(.65977 0 0 1.4919 -3.7 .395)" y1="111.28" x1="103.08"/> - <linearGradient id="i" y2="107.76" xlink:href="#a" gradientUnits="userSpaceOnUse" x2="92.551" gradientTransform="matrix(.65977 0 0 1.4919 -4.463 .391)" y1="111.28" x1="103.08"/> - <linearGradient id="j" y2="107.76" xlink:href="#a" gradientUnits="userSpaceOnUse" x2="92.551" gradientTransform="matrix(.65977 0 0 1.4919 -4.456 .18)" y1="111.28" x1="103.08"/> - <linearGradient id="k" y2="107.76" xlink:href="#a" gradientUnits="userSpaceOnUse" x2="92.551" gradientTransform="matrix(.65977 0 0 1.4919 -4.446 -.036)" y1="111.28" x1="103.08"/> - <linearGradient id="m" y2="107.76" xlink:href="#a" gradientUnits="userSpaceOnUse" x2="92.551" gradientTransform="matrix(.65977 0 0 1.4919 -4.455 -.462)" y1="111.28" x1="103.08"/> - <linearGradient id="n" y2="107.76" xlink:href="#a" gradientUnits="userSpaceOnUse" x2="92.551" gradientTransform="matrix(.65977 0 0 1.4919 -3.833 -.263)" y1="111.28" x1="103.08"/> - <linearGradient id="l" y2="107.76" xlink:href="#a" gradientUnits="userSpaceOnUse" x2="92.551" gradientTransform="matrix(.85004 0 0 1.9222 723.32 109.68)" y1="111.28" x1="103.08"/> - <clipPath id="b"> - <path fill-opacity=".67" d="M0 0h512v512H0z"/> - </clipPath> - </defs> - <g clip-path="url(#b)"> - <path fill="#006" d="M0 0h1024v512H0z"/> - <path fill-rule="evenodd" fill="#006" d="M0 0h512v256H0z"/> - <g stroke-width="1pt"> - <path d="M0 0v28.622L454.757 256h57.241v-28.62L57.241 0H0zm511.998 0v28.62L57.241 256H0v-28.62L454.757 0h57.241z" fill="#fff"/> - <path d="M213.333 0v255.999h85.333V0h-85.333zM0 85.333v85.333h511.998V85.333H0z" fill="#fff"/> - <path d="M0 102.4v51.2h511.998v-51.2H0zM230.4 0v255.999h51.199V0h-51.2zM0 255.999l170.666-85.333h38.16L38.162 255.999H0zM0 0l170.666 85.333h-38.16L0 19.081V0zm303.171 85.333L473.837 0h38.161L341.332 85.333h-38.16zm208.827 170.666l-170.666-85.333h38.16l132.506 66.253v19.08z" fill="#c00"/> - </g> - <path d="M256.39 193.617l213.68-.793-.396 190.29s7.532 28.94-89.593 72.943c34.886-3.568 72.943-40.832 72.943-40.832s15.46-19.82 22.993-8.721c7.532 11.1 14.668 16.65 20.218 21.01 5.55 4.361 9.91 16.255 1.585 24.976s-21.407 9.91-24.975-.793c-5.55 2.775-39.643 44.004-109.41 45.986-70.96-1.19-109.81-46.382-109.81-46.382s-9.514 15.064-22.993 3.171c-13.082-15.46-3.171-25.372-3.171-25.372s11.1-6.342 14.27-10.704c5.154-5.946 6.74-13.875 15.462-13.875 10.307.793 14.27 9.118 14.27 9.118s35.68 37.661 74.133 42.418c-86.818-41.625-89.99-67.393-89.593-73.736l.396-188.7z" fill-rule="evenodd" fill="#fff"/> - <path d="M261.54 198.767l203.76-1.19v183.15c.396 23.787-39.643 47.969-102.28 78.89-64.61-33.3-101.87-53.52-102.27-79.28l.793-181.56z" fill-rule="evenodd" stroke="#000" stroke-width="1.718" fill="#006129"/> - <path d="M286.042 400.578l12.028-17.665 12.086 17.702" stroke="#f7c600" stroke-width="1.2884pt" fill="none"/> - <path d="M300.486 393.966a2.389 2.389 0 1 1-4.777.002 2.389 2.389 0 0 1 4.777-.002z" fill-rule="evenodd" stroke="#000" stroke-width=".8052817499999999" fill="#f7c600"/> - <path d="M288.303 413.63l18.647.052s.293-2.42-1.947-3.89c9.766-1.343 7.23-9.958 15.409-10.447 1.587.245-4.273 3.663-4.273 3.663s-4.932 3.48-2.686 5.25c1.783 1.404 2.564-.855 2.808-2.564.244-1.71 7.936-2.808 6.837-7.691-1.831-4.03-12.575 2.685-12.575 2.685l-7.665-.042c-.477-.86-2.59-4.31-4.771-4.326-2.588.094-4.411 4.368-4.411 4.368H276.34s-.595 4.448 8.195 5.303c1.98 2.585 3.514 3.307 5.234 3.976-1.147.956-1.47 2.112-1.465 3.662z" fill-rule="evenodd" stroke="#000" stroke-width=".80525" fill="#f7c600"/> - <path d="M289.646 409.841l15.532-.053M282.533 400.68s1.242 7.265 6.977 8.985" stroke="#000" stroke-width=".80525" fill="none"/> - <path d="M66.32 170.54c.445-2.151 1.261-2.522 2.151-5.267.149-2.67-2.151-2.374-1.483-4.08 1.187-1.855.593-3.635-1.632-5.045.445 2.448-2.894 4.748-2.894 6.751s1.707 1.558 1.484 4.6c.148 1.78-.445 1.335-.593 3.041h2.967z" fill-rule="evenodd" stroke="#000" stroke-width=".625" fill="url(#c)" transform="translate(196.13 180.867) scale(1.2884)"/> - <path d="M300.294 383.358a2.197 2.197 0 1 1-4.395.002 2.197 2.197 0 0 1 4.395-.002z" fill-rule="evenodd" stroke="#000" stroke-width=".80525" fill="#f7c600"/> - <path d="M285.362 364.219l12.028-17.665 12.086 17.702" stroke="#f7c600" stroke-width="1.2884pt" fill="none"/> - <path d="M299.806 357.607a2.389 2.389 0 1 1-4.777.002 2.389 2.389 0 0 1 4.777-.002z" fill-rule="evenodd" stroke="#000" stroke-width=".8052817499999999" fill="#f7c600"/> - <path d="M287.623 377.27l18.647.053s.293-2.42-1.947-3.89c9.766-1.343 7.23-9.958 15.409-10.447 1.587.245-4.273 3.663-4.273 3.663s-4.932 3.48-2.686 5.25c1.783 1.404 2.564-.855 2.808-2.564.244-1.71 7.936-2.808 6.837-7.691-1.831-4.03-12.575 2.685-12.575 2.685l-7.665-.042c-.477-.86-2.59-4.31-4.771-4.326-2.588.094-4.411 4.368-4.411 4.368H275.66s-.595 4.448 8.195 5.303c1.98 2.585 3.514 3.307 5.234 3.976-1.147.956-1.47 2.112-1.465 3.662z" fill-rule="evenodd" stroke="#000" stroke-width=".80525" fill="#f7c600"/> - <path d="M288.966 373.482l15.532-.053M281.853 364.322s1.242 7.264 6.977 8.984" stroke="#000" stroke-width=".80525" fill="none"/> - <path d="M66.32 170.54c.445-2.151 1.261-2.522 2.151-5.267.149-2.67-2.151-2.374-1.483-4.08 1.187-1.855.593-3.635-1.632-5.045.445 2.448-2.894 4.748-2.894 6.751s1.707 1.558 1.484 4.6c.148 1.78-.445 1.335-.593 3.041h2.967z" fill-rule="evenodd" stroke="#000" stroke-width=".625" fill="url(#d)" transform="translate(195.45 144.508) scale(1.2884)"/> - <path d="M299.614 347a2.197 2.197 0 1 1-4.395 0 2.197 2.197 0 0 1 4.395 0z" fill-rule="evenodd" stroke="#000" stroke-width=".80525" fill="#f7c600"/> - <path d="M413.142 331.167l12.028-17.665 12.086 17.702" stroke="#f7c600" stroke-width="1.2884pt" fill="none"/> - <path d="M427.586 324.555a2.389 2.389 0 1 1-4.777.002 2.389 2.389 0 0 1 4.777-.002z" fill-rule="evenodd" stroke="#000" stroke-width=".8052817499999999" fill="#f7c600"/> - <path d="M415.403 344.218l18.647.053s.293-2.42-1.947-3.89c9.766-1.343 7.23-9.958 15.409-10.447 1.587.245-4.273 3.663-4.273 3.663s-4.932 3.48-2.686 5.25c1.783 1.404 2.564-.855 2.808-2.564.244-1.71 7.936-2.808 6.837-7.691-1.831-4.03-12.575 2.685-12.575 2.685l-7.665-.042c-.477-.86-2.59-4.31-4.771-4.326-2.588.094-4.411 4.368-4.411 4.368H403.44s-.595 4.448 8.195 5.303c1.98 2.585 3.514 3.307 5.234 3.976-1.147.956-1.47 2.112-1.465 3.662z" fill-rule="evenodd" stroke="#000" stroke-width=".80525" fill="#f7c600"/> - <path d="M416.746 340.43l15.532-.053M409.633 331.27s1.242 7.264 6.977 8.984" stroke="#000" stroke-width=".80525" fill="none"/> - <path d="M66.32 170.54c.445-2.151 1.261-2.522 2.151-5.267.149-2.67-2.151-2.374-1.483-4.08 1.187-1.855.593-3.635-1.632-5.045.445 2.448-2.894 4.748-2.894 6.751s1.707 1.558 1.484 4.6c.148 1.78-.445 1.335-.593 3.041h2.967z" fill-rule="evenodd" stroke="#000" stroke-width=".625" fill="url(#e)" transform="translate(323.23 111.456) scale(1.2884)"/> - <path d="M427.394 313.947a2.197 2.197 0 1 1-4.395.002 2.197 2.197 0 0 1 4.395-.002z" fill-rule="evenodd" stroke="#000" stroke-width=".80525" fill="#f7c600"/> - <path d="M288.342 295.823l12.028-17.665 12.086 17.703" stroke="#f7c600" stroke-width="1.2884pt" fill="none"/> - <path d="M302.786 289.212a2.389 2.389 0 1 1-4.777.001 2.389 2.389 0 0 1 4.777-.001z" fill-rule="evenodd" stroke="#000" stroke-width=".8052817499999999" fill="#f7c600"/> - <path d="M290.603 308.875l18.647.053s.293-2.42-1.947-3.891c9.766-1.343 7.23-9.958 15.409-10.446 1.587.244-4.273 3.662-4.273 3.662s-4.932 3.48-2.686 5.25c1.783 1.405 2.564-.855 2.808-2.564.244-1.71 7.936-2.808 6.837-7.691-1.831-4.029-12.575 2.686-12.575 2.686l-7.665-.043c-.477-.86-2.59-4.31-4.771-4.326-2.588.095-4.411 4.369-4.411 4.369H278.64s-.595 4.448 8.195 5.302c1.98 2.585 3.514 3.307 5.234 3.976-1.147.956-1.47 2.112-1.465 3.663z" fill-rule="evenodd" stroke="#000" stroke-width=".80525" fill="#f7c600"/> - <path d="M291.946 305.087l15.532-.053M284.833 295.926s1.242 7.264 6.977 8.985" stroke="#000" stroke-width=".80525" fill="none"/> - <path d="M66.32 170.54c.445-2.151 1.261-2.522 2.151-5.267.149-2.67-2.151-2.374-1.483-4.08 1.187-1.855.593-3.635-1.632-5.045.445 2.448-2.894 4.748-2.894 6.751s1.707 1.558 1.484 4.6c.148 1.78-.445 1.335-.593 3.041h2.967z" fill-rule="evenodd" stroke="#000" stroke-width=".625" fill="url(#f)" transform="translate(198.43 76.112) scale(1.2884)"/> - <path d="M302.594 278.604a2.197 2.197 0 1 1-4.395.001 2.197 2.197 0 0 1 4.395-.001z" fill-rule="evenodd" stroke="#000" stroke-width=".80525" fill="#f7c600"/> - <g> - <path d="M288.612 261.085l12.028-17.665 12.086 17.702" stroke="#f7c600" stroke-width="1.2884pt" fill="none"/> - <path d="M303.056 254.473a2.389 2.389 0 1 1-4.777.002 2.389 2.389 0 0 1 4.777-.002z" fill-rule="evenodd" stroke="#000" stroke-width=".8052817499999999" fill="#f7c600"/> - <path d="M290.873 274.136l18.647.053s.293-2.42-1.947-3.89c9.766-1.343 7.23-9.958 15.409-10.447 1.587.245-4.273 3.663-4.273 3.663s-4.932 3.48-2.686 5.25c1.783 1.404 2.564-.855 2.808-2.564.244-1.71 7.936-2.808 6.837-7.691-1.831-4.03-12.575 2.685-12.575 2.685l-7.665-.042c-.477-.86-2.59-4.31-4.771-4.326-2.588.094-4.411 4.368-4.411 4.368H278.91s-.595 4.448 8.195 5.303c1.98 2.585 3.514 3.307 5.234 3.976-1.147.956-1.47 2.112-1.465 3.662z" fill-rule="evenodd" stroke="#000" stroke-width=".80525" fill="#f7c600"/> - <path d="M292.216 270.348l15.532-.053M285.103 261.188s1.242 7.264 6.977 8.984" stroke="#000" stroke-width=".80525" fill="none"/> - <path d="M66.32 170.54c.445-2.151 1.261-2.522 2.151-5.267.149-2.67-2.151-2.374-1.483-4.08 1.187-1.855.593-3.635-1.632-5.045.445 2.448-2.894 4.748-2.894 6.751s1.707 1.558 1.484 4.6c.148 1.78-.445 1.335-.593 3.041h2.967z" fill-rule="evenodd" stroke="#000" stroke-width=".625" fill="url(#g)" transform="translate(198.7 41.374) scale(1.2884)"/> - <path d="M302.864 243.865a2.197 2.197 0 1 1-4.395.002 2.197 2.197 0 0 1 4.395-.002z" fill-rule="evenodd" stroke="#000" stroke-width=".80525" fill="#f7c600"/> - </g> - <g> - <path d="M289.272 225.839l12.028-17.665 12.086 17.702" stroke="#f7c600" stroke-width="1.2884pt" fill="none"/> - <path d="M303.716 219.227a2.389 2.389 0 1 1-4.777.002 2.389 2.389 0 0 1 4.777-.002z" fill-rule="evenodd" stroke="#000" stroke-width=".8052817499999999" fill="#f7c600"/> - <path d="M291.533 238.89l18.647.053s.293-2.42-1.947-3.89c9.766-1.343 7.23-9.958 15.409-10.447 1.587.245-4.273 3.663-4.273 3.663s-4.932 3.48-2.686 5.25c1.783 1.404 2.564-.855 2.808-2.564.244-1.71 7.936-2.808 6.837-7.691-1.831-4.03-12.575 2.685-12.575 2.685l-7.665-.042c-.477-.86-2.59-4.31-4.771-4.326-2.588.094-4.411 4.368-4.411 4.368H279.57s-.595 4.448 8.195 5.303c1.98 2.585 3.514 3.307 5.234 3.976-1.147.956-1.47 2.112-1.465 3.662z" fill-rule="evenodd" stroke="#000" stroke-width=".80525" fill="#f7c600"/> - <path d="M292.876 235.102l15.532-.053M285.763 225.942s1.242 7.264 6.977 8.984" stroke="#000" stroke-width=".80525" fill="none"/> - <path d="M66.32 170.54c.445-2.151 1.261-2.522 2.151-5.267.149-2.67-2.151-2.374-1.483-4.08 1.187-1.855.593-3.635-1.632-5.045.445 2.448-2.894 4.748-2.894 6.751s1.707 1.558 1.484 4.6c.148 1.78-.445 1.335-.593 3.041h2.967z" fill-rule="evenodd" stroke="#000" stroke-width=".625" fill="url(#h)" transform="translate(199.36 6.128) scale(1.2884)"/> - <path d="M303.524 208.62a2.197 2.197 0 1 1-4.395 0 2.197 2.197 0 0 1 4.395 0z" fill-rule="evenodd" stroke="#000" stroke-width=".80525" fill="#f7c600"/> - </g> - <g> - <path d="M414.092 226.413l12.028-17.665 12.086 17.702" stroke="#f7c600" stroke-width="1.2884pt" fill="none"/> - <path d="M428.536 219.801a2.389 2.389 0 1 1-4.777.002 2.389 2.389 0 0 1 4.777-.002z" fill-rule="evenodd" stroke="#000" stroke-width=".8052817499999999" fill="#f7c600"/> - <path d="M416.353 239.464l18.647.053s.293-2.42-1.947-3.89c9.766-1.343 7.23-9.958 15.409-10.447 1.587.245-4.273 3.663-4.273 3.663s-4.932 3.48-2.686 5.25c1.783 1.404 2.564-.855 2.808-2.564.244-1.71 7.936-2.808 6.837-7.691-1.831-4.03-12.575 2.685-12.575 2.685l-7.665-.042c-.477-.86-2.59-4.31-4.771-4.326-2.588.094-4.411 4.368-4.411 4.368H404.39s-.595 4.448 8.195 5.303c1.98 2.585 3.514 3.307 5.234 3.976-1.147.956-1.47 2.112-1.465 3.662z" fill-rule="evenodd" stroke="#000" stroke-width=".80525" fill="#f7c600"/> - <path d="M417.696 235.676l15.532-.053M410.583 226.516s1.242 7.264 6.977 8.984" stroke="#000" stroke-width=".80525" fill="none"/> - <path d="M66.32 170.54c.445-2.151 1.261-2.522 2.151-5.267.149-2.67-2.151-2.374-1.483-4.08 1.187-1.855.593-3.635-1.632-5.045.445 2.448-2.894 4.748-2.894 6.751s1.707 1.558 1.484 4.6c.148 1.78-.445 1.335-.593 3.041h2.967z" fill-rule="evenodd" stroke="#000" stroke-width=".625" fill="url(#i)" transform="translate(324.18 6.702) scale(1.2884)"/> - <path d="M428.344 209.193a2.197 2.197 0 1 1-4.395.002 2.197 2.197 0 0 1 4.395-.002z" fill-rule="evenodd" stroke="#000" stroke-width=".80525" fill="#f7c600"/> - </g> - <g> - <path d="M412.952 261.012l12.028-17.665 12.086 17.702" stroke="#f7c600" stroke-width="1.2884pt" fill="none"/> - <path d="M427.396 254.4a2.389 2.389 0 1 1-4.777.002 2.389 2.389 0 0 1 4.777-.002z" fill-rule="evenodd" stroke="#000" stroke-width=".8052817499999999" fill="#f7c600"/> - <path d="M415.213 274.063l18.647.053s.293-2.42-1.947-3.89c9.766-1.343 7.23-9.958 15.409-10.447 1.587.245-4.273 3.663-4.273 3.663s-4.932 3.48-2.686 5.25c1.783 1.404 2.564-.855 2.808-2.564.244-1.71 7.936-2.808 6.837-7.691-1.831-4.03-12.575 2.685-12.575 2.685l-7.665-.042c-.477-.86-2.59-4.31-4.771-4.326-2.588.094-4.411 4.368-4.411 4.368H403.25s-.595 4.448 8.195 5.303c1.98 2.585 3.514 3.307 5.234 3.976-1.147.956-1.47 2.112-1.465 3.662z" fill-rule="evenodd" stroke="#000" stroke-width=".80525" fill="#f7c600"/> - <path d="M416.556 270.275l15.532-.053M409.443 261.115s1.242 7.264 6.977 8.984" stroke="#000" stroke-width=".80525" fill="none"/> - <path d="M66.32 170.54c.445-2.151 1.261-2.522 2.151-5.267.149-2.67-2.151-2.374-1.483-4.08 1.187-1.855.593-3.635-1.632-5.045.445 2.448-2.894 4.748-2.894 6.751s1.707 1.558 1.484 4.6c.148 1.78-.445 1.335-.593 3.041h2.967z" fill-rule="evenodd" stroke="#000" stroke-width=".625" fill="url(#j)" transform="translate(323.04 41.301) scale(1.2884)"/> - <path d="M427.204 243.792a2.197 2.197 0 1 1-4.395.002 2.197 2.197 0 0 1 4.395-.002z" fill-rule="evenodd" stroke="#000" stroke-width=".80525" fill="#f7c600"/> - </g> - <g> - <path d="M411.422 296.376l12.028-17.665 12.086 17.703" stroke="#f7c600" stroke-width="1.2884pt" fill="none"/> - <path d="M425.866 289.765a2.389 2.389 0 1 1-4.777.001 2.389 2.389 0 0 1 4.777-.001z" fill-rule="evenodd" stroke="#000" stroke-width=".8052817499999999" fill="#f7c600"/> - <path d="M413.683 309.428l18.647.053s.293-2.42-1.947-3.891c9.766-1.343 7.23-9.958 15.409-10.446 1.587.244-4.273 3.662-4.273 3.662s-4.932 3.48-2.686 5.25c1.783 1.405 2.564-.855 2.808-2.564.244-1.71 7.936-2.808 6.837-7.691-1.831-4.029-12.575 2.686-12.575 2.686l-7.665-.043c-.477-.86-2.59-4.31-4.771-4.326-2.588.095-4.411 4.369-4.411 4.369H401.72s-.595 4.448 8.195 5.302c1.98 2.585 3.514 3.307 5.234 3.976-1.147.956-1.47 2.112-1.465 3.663z" fill-rule="evenodd" stroke="#000" stroke-width=".80525" fill="#f7c600"/> - <path d="M415.026 305.64l15.532-.053M407.913 296.48s1.242 7.263 6.977 8.984" stroke="#000" stroke-width=".80525" fill="none"/> - <path d="M66.32 170.54c.445-2.151 1.261-2.522 2.151-5.267.149-2.67-2.151-2.374-1.483-4.08 1.187-1.855.593-3.635-1.632-5.045.445 2.448-2.894 4.748-2.894 6.751s1.707 1.558 1.484 4.6c.148 1.78-.445 1.335-.593 3.041h2.967z" fill-rule="evenodd" stroke="#000" stroke-width=".625" fill="url(#k)" transform="translate(321.51 76.665) scale(1.2884)"/> - <path d="M425.674 279.157a2.197 2.197 0 1 1-4.395.001 2.197 2.197 0 0 1 4.395-.001z" fill-rule="evenodd" stroke="#000" stroke-width=".80525" fill="#f7c600"/> - </g> - <path d="M412.95 400.937l12.028-17.665 12.086 17.702" stroke="#f7c600" stroke-width="1.288" fill="none"/> - <path d="M427.39 394.337a2.389 2.389 0 1 1-4.777.002 2.389 2.389 0 0 1 4.777-.002z" fill-rule="evenodd" stroke="#000" stroke-width=".805" fill="#f7c600"/> - <path d="M415.21 413.987l18.647.053s.292-2.42-1.948-3.89c9.767-1.344 7.23-9.959 15.41-10.447 1.586.244-4.274 3.663-4.274 3.663s-4.931 3.48-2.685 5.25c1.783 1.404 2.563-.855 2.808-2.564.244-1.71 7.935-2.808 6.836-7.692-1.831-4.028-12.575 2.686-12.575 2.686l-7.665-.042c-.478-.86-2.59-4.31-4.771-4.326-2.588.094-4.411 4.368-4.411 4.368h-17.337s-.594 4.448 8.196 5.303c1.979 2.584 3.513 3.307 5.234 3.976-1.147.955-1.47 2.112-1.465 3.662z" fill-rule="evenodd" stroke="#000" stroke-width=".805" fill="#f7c600"/> - <path d="M416.55 410.197l15.531-.053M409.44 401.047s1.243 7.264 6.977 8.985" stroke="#000" stroke-width=".805" fill="none"/> - <path d="M814.5 330.27c.573-2.772 1.625-3.25 2.772-6.786.191-3.44-2.772-3.059-1.912-5.257 1.53-2.39.765-4.683-2.103-6.5.574 3.155-3.727 6.118-3.727 8.698 0 2.581 2.198 2.008 1.911 5.926.192 2.294-.573 1.72-.764 3.92h3.823z" fill-rule="evenodd" stroke="#000" stroke-width=".805" fill="url(#l)" transform="translate(-406.02 70.677)"/> - <path d="M427.2 383.727a2.197 2.197 0 1 1-4.395.001 2.197 2.197 0 0 1 4.395-.001z" fill-rule="evenodd" stroke="#000" stroke-width=".805" fill="#f7c600"/> - <g> - <path d="M412.762 365.957l12.028-17.665 12.086 17.702" stroke="#f7c600" stroke-width="1.2884pt" fill="none"/> - <path d="M427.206 359.345a2.389 2.389 0 1 1-4.777.002 2.389 2.389 0 0 1 4.777-.002z" fill-rule="evenodd" stroke="#000" stroke-width=".8052817499999999" fill="#f7c600"/> - <path d="M415.023 379.008l18.647.053s.293-2.42-1.947-3.89c9.766-1.343 7.23-9.958 15.409-10.447 1.587.245-4.273 3.663-4.273 3.663s-4.932 3.48-2.686 5.25c1.783 1.404 2.564-.855 2.808-2.564.244-1.71 7.936-2.808 6.837-7.691-1.831-4.03-12.575 2.685-12.575 2.685l-7.665-.042c-.477-.86-2.59-4.31-4.771-4.326-2.588.094-4.411 4.368-4.411 4.368H403.06s-.595 4.448 8.195 5.303c1.98 2.585 3.514 3.307 5.234 3.976-1.147.956-1.47 2.112-1.465 3.662z" fill-rule="evenodd" stroke="#000" stroke-width=".80525" fill="#f7c600"/> - <path d="M416.366 375.22l15.532-.053M409.253 366.06s1.242 7.264 6.977 8.984" stroke="#000" stroke-width=".80525" fill="none"/> - <path d="M66.32 170.54c.445-2.151 1.261-2.522 2.151-5.267.149-2.67-2.151-2.374-1.483-4.08 1.187-1.855.593-3.635-1.632-5.045.445 2.448-2.894 4.748-2.894 6.751s1.707 1.558 1.484 4.6c.148 1.78-.445 1.335-.593 3.041h2.967z" fill-rule="evenodd" stroke="#000" stroke-width=".625" fill="url(#m)" transform="translate(322.85 146.246) scale(1.2884)"/> - <path d="M427.014 348.737a2.197 2.197 0 1 1-4.395.002 2.197 2.197 0 0 1 4.395-.002z" fill-rule="evenodd" stroke="#000" stroke-width=".80525" fill="#f7c600"/> - </g> - <g> - <path d="M311.142 333.444l12.028-17.665 12.086 17.702" stroke="#f7c600" stroke-width="1.2884pt" fill="none"/> - <path d="M325.586 326.832a2.389 2.389 0 1 1-4.777.002 2.389 2.389 0 0 1 4.777-.002z" fill-rule="evenodd" stroke="#000" stroke-width=".8052817499999999" fill="#f7c600"/> - <path d="M313.403 346.495l18.647.053s.293-2.42-1.947-3.89c9.766-1.343 7.23-9.958 15.409-10.447 1.587.245-4.273 3.663-4.273 3.663s-4.932 3.48-2.686 5.25c1.783 1.404 2.564-.855 2.808-2.564.244-1.71 7.936-2.808 6.837-7.691-1.831-4.03-12.575 2.685-12.575 2.685l-7.665-.042c-.477-.86-2.59-4.31-4.771-4.326-2.588.094-4.411 4.368-4.411 4.368H301.44s-.595 4.448 8.195 5.303c1.98 2.585 3.514 3.307 5.234 3.976-1.147.956-1.47 2.112-1.465 3.662z" fill-rule="evenodd" stroke="#000" stroke-width=".80525" fill="#f7c600"/> - <path d="M314.746 342.707l15.532-.053M307.633 333.547s1.242 7.264 6.977 8.984" stroke="#000" stroke-width=".80525" fill="none"/> - <path d="M66.32 170.54c.445-2.151 1.261-2.522 2.151-5.267.149-2.67-2.151-2.374-1.483-4.08 1.187-1.855.593-3.635-1.632-5.045.445 2.448-2.894 4.748-2.894 6.751s1.707 1.558 1.484 4.6c.148 1.78-.445 1.335-.593 3.041h2.967z" fill-rule="evenodd" stroke="#000" stroke-width=".625" fill="url(#n)" transform="translate(221.23 113.733) scale(1.2884)"/> - <path d="M325.394 316.224a2.197 2.197 0 1 1-4.395.002 2.197 2.197 0 0 1 4.395-.002z" fill-rule="evenodd" stroke="#000" stroke-width=".80525" fill="#f7c600"/> - </g> - <g stroke="#000"> - <path d="M375.501 417.404s4.866 11.219 10.408 4.325 3.514-9.867 3.514-9.867l-12.435-6.759-3.65 7.705 2.163 4.596z" fill-rule="evenodd" stroke-width=".80525" fill="#f7c600"/> - <path d="M386.182 415.922s.81.135 1.487-1.081-1.487-1.758-2.433-3.11l-1.082 2.164 2.028 2.027zM358.056 412.946l-10.949 5.947s-5.406 1.082-5.812 0c-.405-1.081.135-2.027 2.974-2.162 2.838-.136 10.543-7.164 10.543-7.164l3.244 3.379zM358.198 218.436s.27 2.568.405 3.92-2.162 4.19-2.298 4.055-1.216.135-1.08.946 1.756 1.082 1.756 1.082-.676 2.838 0 2.973c.676.135-1.757 3.65 0 4.596 1.757.946 4.731 2.163 6.083 1.892 1.352-.27 0 5.272 0 5.272l-3.785 8.11 20.816-2.163-4.326-6.893s-2.027-1.352-1.487-5.272c.541-3.92-.27-21.627-.27-21.627l-14.868-2.028-.946 5.137zM354.41 249.255s-6.758 3.109-6.488 11.489c-1.757 8.11-2.704 16.22-2.704 16.22s-7.974 9.056-10.407 12.3c-2.433 3.244-6.083 9.867-7.435 11.624s-6.623 7.57-6.488 9.733c.135 2.162-1.216 11.76 4.055 12.84 1.352.541 5.677-11.083 5.677-11.083s.27-5.001-1.216-5.948 3.244-4.19 3.244-4.19 9.056-6.623 11.084-8.245 7.57-7.84 7.57-7.84l3.108-36.901z" fill-rule="evenodd" stroke-width=".80525" fill="#ffc6b5"/> - <path d="M362.115 242.902s1.757 4.73 5.677 3.92c3.92-.812 8.515-4.461 8.515-4.461s3.65-.135 4.19.405c.541.54 9.868 9.597 9.597 12.436-.27 2.838-4.325 2.027-5.812 3.92s-3.92 6.623-3.244 10.137 2.704 8.11 2.433 9.868-1.757 2.297-1.757 3.244c0 .946 1.217 2.568 1.217 4.325s-1.622 4.325-1.352 6.083c.27 1.757.405 6.893.405 6.893l-.405 23.79s1.352.811 1.487 2.163c.135 1.352 9.191 40.685 9.191 40.685s-.405 1.217-1.351 1.082 3.65 6.082 3.784 7.84 4.731 15.544 4.596 17.437c-.135 1.892-.811 6.082-1.217 6.217-.405.135 2.974 8.651 2.433 10.003-.54 1.351-6.082 1.216-6.082 1.216l-1.487-.27s.135 1.757-.946 1.892-9.056-.405-9.056-.405-2.298 3.514-3.65 3.379c-1.352-.135-3.109-2.568-3.514-2.163-.406.406 1.216 2.704.81 3.38-.405.675-7.298 2.162-8.65-1.082-1.352-3.244.81-2.433.405-3.109-.405-.676-3.514-2.433-4.46-1.892s2.433 1.352 2.298 2.703c-.135 1.352-2.974 3.38-4.055 3.38s-3.65-5.002-7.435-4.461c-3.784.54-6.217 1.487-6.217 1.487s-4.461 1.892-6.353 1.487c-1.893-.406-2.704-1.893-2.704-2.704 0-.81 1.352-4.325 1.217-5.406s-1.217-2.163-1.217-3.785c0-1.622 3.11-7.164 3.11-7.164l-.136-24.871s-2.839 0-2.974-1.758 4.326-39.333 5.001-41.767c.676-2.433 2.434-11.084 2.434-11.084s-2.028.946-2.163 0 6.082-22.437 6.082-22.437 1.082-10.679 1.082-13.517c0-2.838-.54-6.758-.54-6.758s-5.55-2.35-5.678-5.948c-.508-5.725 5.272-8.921 5.947-10.813l2.704-7.57s2.974-5.136 7.84-5.947z" fill-rule="evenodd" stroke-width=".80525" fill="#fff"/> - <path d="M360.092 414.57s-13.111 6.893-15.004 7.434c-1.892.54-3.109-2.298-1.216-2.839 1.892-.54 4.866-.811 4.866-.811s-4.46-3.514-4.326-3.65c.136-.135 6.083-2.297 6.218-2.297s1.893 3.514 3.11 3.244 4.73-2.974 4.73-2.974 1.892 2.163 1.622 1.892z" fill-rule="evenodd" stroke-width=".80525" fill="#f7c600"/> - <path d="M378.567 418.344c1.24 1.6 1.725 4.372 4.563 2.75 2.839-1.622-1.454-4.632-1.454-4.632l-3.109 1.882z" fill-rule="evenodd" stroke-width=".80525" fill="#ffc6b5"/> - <path d="M383.747 418.074s1.351 1.081 2.568-.135-2.433-3.785-2.433-3.785l-1.757 2.027 1.622 1.893z" fill-rule="evenodd" stroke-width=".80525" fill="#ffc6b5"/> - <path d="M379.688 248.172s-12.03 7.705-11.76 10.408M382.394 249.524s-2.703 2.974-2.838 2.974M386.04 252.768s-5.947 4.866-5.001 7.975M357.927 247.497s-1.757 3.65-1.351 4.866c.405 1.217 3.379 5.813 3.784 8.651.406 2.839 0 4.866 0 4.866M354.822 254.255s.54 4.325 1.352 5.136c.81.811 2.974 4.461 3.244 5.948M353.74 272.232s3.514 1.757 6.758-5.001M365.76 262.5c-.134 0-2.567 6.624 1.758 9.057s7.57 2.163 9.462 1.487c1.892-.676 3.92-1.892 3.92-1.892M363.88 270.611s.27 8.921 13.381 17.708M364.42 278.99s-.134 7.84 5.002 11.355M361.715 269.8s-3.92 11.624-7.029 12.84M360.491 278.316s-.135 8.38-1.216 11.354M358.198 291.697s2.703 3.38 5.677 3.11c2.974-.271 4.19-3.786 6.218-3.245 2.027.54 3.92 2.163 8.65 1.757M371.984 296.833s0 6.893 1.216 7.57.676 7.028.676 7.028M355.492 293.59s-.135 6.488-.946 8.786c-.81 2.298-2.433 6.218-2.163 9.597M347.246 315.762c.676-.27 2.974-2.298 2.974-2.298M351.434 314.95s-5.813 24.871-4.19 39.74M352.787 316.161s-2.974 18.654-1.623 22.168M351.305 315.62c.135 0 11.354.811 11.354.811M364.28 314.95s3.108 1.622 7.433 1.352M362.926 324.008s-.54 31.9-1.351 38.929M379.56 331.3s3.514 27.98 5.541 30.548M372.795 334.817s2.163 24.736 3.38 26.9M342.119 370.364s4.19-1.352 7.974-5.406c4.326 5.812 10.95.27 10.95.27s10.272 7.029 14.867-.811c7.029 4.596 10.543-.676 10.543-.676s2.569 3.92 4.46 3.514M379.688 369.965s5.272 24.736 13.111 31.764M352.516 367.388s.676 20.681 1.892 35.279M351.575 390.773s-.675 13.516-1.486 14.463M343.6 406.594s1.487 5.812 8.921.406c7.435-5.407 7.57 2.027 7.84 2.838.27.811 1.487 6.623 4.325 1.757M370.63 403.618s-1.216 12.03 9.463 3.244c10.678-8.786 12.435-.135 12.705 2.568" stroke-width=".80525" fill="none"/> - <path d="M357.786 217.624s2.973.406 4.595-.54c1.622-.946 3.515-1.352 4.866.54s2.298 1.758 2.298 1.758-2.027 5 0 5.541c2.028.541 2.974.541 3.11 1.217.134.676-1.758 2.163-1.217 2.838.54.676 1.487 1.487 1.622 2.028.135.54-1.217 2.839-.811 3.38.405.54 1.622 2.703 2.433 2.703.81 0 .27 3.379 2.703 2.568s2.298-2.974 2.298-2.974 2.568-.405 3.244-2.703c.676-2.298 2.298-2.839 2.298-2.839s3.244-1.757-1.081-4.46c0-18.924-12.436-16.896-12.436-16.896s-1.487-3.38-3.92-2.974c-2.433.406-2.568 3.244-4.325 2.974-1.757-.27-2.163-1.487-2.298-1.352-.135.135-1.622 2.838-1.622 3.514 0 .676-4.731-.946-4.326 2.569s2.704 3.379 2.569 3.108z" fill-rule="evenodd" stroke-width=".80525" fill="#9c5100"/> - <path d="M370.773 213.029s-.947 5.947 5.406 5.407c-.81 3.244 1.622 4.325 1.622 4.325M382.523 226.41c.135 0 2.838 1.757-.135 3.92M373.337 231.141s1.351 1.622 2.838 1.217c1.487-.406 3.92 1.486 3.92 1.486s2.027.676 2.298.27M365.09 236.278s4.596 1.757 7.57-5.542M356.574 228.573l2.704.135" stroke-width=".80525" fill="none"/> - <path stroke-linejoin="round" d="M356.987 231.276h2.433l-2.163.947" stroke-width=".80525" fill="none"/> - <path stroke-linejoin="round" d="M360.362 223.707c.406 0 1.893-.54 2.163-.135.27.405-1.622.676-2.163.135z" stroke-width="1.44945" fill="none"/> - <path d="M389.557 255.822c.136 0 4.461 13.381 5.002 16.76.54 3.38 2.298 16.897 1.622 18.79-.676 1.892-7.57 10.948-8.38 13.245-.812 2.298-5.678 11.084-5.678 11.084s-1.216 8.651-1.757 9.056c-.54.406 1.395 2.53 1.217 3.245-.269.804-3.92 4.595-5.542 4.19-1.622-.406-4.19-2.298-4.326-4.055s.135-7.57 1.352-9.057 7.57-16.49 7.975-17.437c.405-.946 5.812-12.706 5.947-14.733.135-2.027-1.682-6.716-3.593-8.436-4.255-12.521-2.583-20.072 6.161-22.653z" fill-rule="evenodd" stroke-width=".80525" fill="#ffc6b5"/> - <path d="M326.58 313.816l.212 5.924M321.03 313.378s3.798 6.352 3.48 9.737" stroke-width=".80525" fill="none"/> - <path stroke-linejoin="round" d="M371.932 326.649s2.84-.299 2.75 4.442c1.814-5.889 5.5-6.029 5.5-6.029" stroke-width=".80525" fill="none"/> - </g> - <path d="M362.23 461.997c57.086-1.586 93.954-42.814 93.557-43.211-.396-.396 7.532-11.496 13.875-9.91 6.343 1.585 15.461 20.217 26.561 24.181 5.55 8.722-1.586 16.65-3.964 18.236-2.379 1.586-13.082 5.947-14.668-.396-1.586-6.343-4.758-5.154-4.758-5.154s-50.743 49.554-109.41 47.572c-60.65.4-110.6-47.57-110.6-47.57l-4.36 4.757s-4.758 5.154-7.136 4.758c-2.379-.397-12.686-7.136-13.48-13.875-.792-6.74 6.344-11.1 6.344-11.1s17.443-13.48 19.425-20.614c3.964-3.965 11.496 2.774 11.496 2.774S311.098 465.17 362.237 462z" fill-rule="evenodd" stroke="#000" stroke-width="1.718" fill="#f7c600"/> - <path d="M233 431.337s4.717-1.258 6.447.708c1.73 1.965 13.6 13.6 13.6 13.6" stroke="#000" stroke-width="1.718" fill="none"/> - <path d="M243.77 436.837l-4.717 3.538s11.87 2.358 9.198 10.142M491.97 430.937s-2.359-1.258-6.054 1.494c-3.695 2.751-13.05 13.208-13.05 13.208" stroke="#000" stroke-width="1.718" fill="none"/> - <path d="M481.36 436.527l5.11 3.93s-10.692.708-8.333 10.85" stroke="#000" stroke-width="1.718" fill="none"/> - <path d="M293.43 443.917l-.344.482c-.717-.354-1.535-.42-2.453-.197-.675.174-1.945.807-3.812 1.9l-15.708 9.157-.43-.307 3.958-18.363c.478-2.213.696-3.558.655-4.032-.032-.47-.364-.987-.994-1.555l.344-.482 8.467 6.039-.344.482-.286-.205c-.765-.545-1.354-.82-1.768-.828-.293-.012-.529.108-.708.36-.112.156-.21.368-.296.634-.079.258-.25.994-.513 2.208l-2.506 11.478 9.074-5.339c1.092-.65 1.8-1.1 2.125-1.354.325-.253.568-.492.729-.718.185-.26.28-.54.284-.84.003-.298-.093-.596-.287-.892-.269-.414-.711-.84-1.328-1.28l.344-.482 5.797 4.134m5.64 27.295l-.283.52-9.953-5.444.284-.52.632.346c.552.302 1.05.447 1.494.435.315.002.625-.12.93-.367.226-.168.6-.73 1.122-1.684l6.848-12.522c.532-.974.814-1.61.844-1.91.03-.3-.066-.625-.287-.977-.206-.356-.576-.68-1.11-.972l-.631-.345.284-.52 9.953 5.444-.284.519-.632-.346c-.552-.301-1.05-.446-1.495-.434-.315-.002-.63.118-.944.359-.226.168-.6.73-1.122 1.684L297.872 467c-.532.974-.813 1.61-.843 1.91-.02.304.072.635.278.99.221.353.599.675 1.132.966l.632.346m36.36-8.528l-2.566 7.204-.558-.198c.028-2.21-.448-4.067-1.43-5.571-.981-1.505-2.27-2.541-3.868-3.11-1.528-.544-2.953-.565-4.275-.062-1.32.492-2.464 1.432-3.434 2.819a18.891 18.891 0 0 0-2.318 4.507c-.698 1.96-1.08 3.76-1.143 5.402s.293 2.992 1.071 4.05c.788 1.062 1.89 1.846 3.307 2.35a8.304 8.304 0 0 0 1.561.386c.562.076 1.15.11 1.764.102l1.514-4.25c.287-.804.416-1.341.387-1.612-.024-.28-.178-.579-.462-.895-.274-.313-.657-.557-1.15-.732l-.527-.188.199-.557 9.933 3.537-.199.558c-.771-.218-1.337-.3-1.695-.247-.345.047-.663.223-.952.527-.159.159-.37.61-.635 1.353l-1.514 4.25c-1.514.118-3.031.07-4.552-.143-1.514-.2-3.03-.57-4.547-1.11-1.94-.69-3.459-1.526-4.559-2.507a13.216 13.216 0 0 1-2.65-3.288c-.667-1.211-1.086-2.453-1.255-3.725-.21-1.637-.008-3.315.604-5.033 1.095-3.075 3.1-5.288 6.016-6.638 2.915-1.351 6.01-1.443 9.287-.276 1.015.361 1.9.767 2.657 1.218.413.238 1.045.723 1.893 1.456.863.726 1.384 1.121 1.565 1.186.281.1.578.092.891-.023.316-.125.677-.438 1.082-.94l.558.2m15.318 24.586l-.089.586-11.216-1.7.089-.585.712.108c.622.095 1.14.06 1.553-.104.296-.106.546-.328.748-.664.154-.235.313-.89.476-1.967l2.137-14.11c.166-1.097.212-1.792.138-2.084-.075-.291-.276-.565-.604-.82-.316-.263-.775-.44-1.376-.531l-.712-.108.089-.585 11.216 1.699-.089.585-.712-.108c-.622-.094-1.14-.06-1.553.105-.297.106-.551.326-.764.66-.154.236-.313.892-.476 1.968l-2.137 14.11c-.166 1.097-.212 1.792-.138 2.083.085.294.286.572.602.836.328.255.793.428 1.394.519l.712.107m29.114-7.072l-.427 7.648-19.24.982-.03-.592.72-.036c.628-.032 1.129-.17 1.5-.413.27-.164.47-.43.6-.8.105-.262.13-.936.074-2.022l-.728-14.253c-.056-1.108-.15-1.797-.281-2.068-.132-.271-.384-.499-.756-.683-.363-.195-.847-.277-1.455-.246l-.719.037-.03-.592 11.553-.59.03.592-.942.048c-.629.032-1.13.17-1.501.413-.27.164-.475.43-.616.8-.104.262-.129.936-.073 2.023l.704 13.806c.057 1.108.157 1.813.3 2.116.143.291.405.502.786.632.27.083.918.098 1.94.046l1.806-.093c1.15-.058 2.099-.31 2.845-.754.747-.444 1.374-1.116 1.884-2.018.52-.903.987-2.219 1.4-3.949l.656-.033m21.045-3.651l-7.344 2.193-.269 2.285c-.085.76-.061 1.36.07 1.8.174.582.537.941 1.09 1.076.325.082 1.04.001 2.149-.24l.17.567-6.915 2.065-.17-.567c.713-.336 1.235-.825 1.566-1.47.327-.654.607-1.879.839-3.674l2.48-18.809.291-.087 12.59 14.808c1.197 1.401 2.089 2.243 2.674 2.524.442.214.987.25 1.636.113l.17.567-10.057 3.004-.17-.567.414-.124c.808-.24 1.341-.523 1.601-.845.176-.23.218-.5.127-.806a1.962 1.962 0 0 0-.262-.54c-.048-.086-.315-.423-.803-1.012l-1.878-2.261m-.86-.98l-5.236-6.233-1.05 8.112 6.286-1.878m27.726-28.253l2.78 5.172-.507.273c-.942-1.032-1.735-1.708-2.38-2.027-.649-.33-1.376-.477-2.181-.444-.448.023-1.119.274-2.011.754l-1.423.765 7.925 14.741c.525.977.905 1.56 1.14 1.75.244.183.571.285.982.306.416.007.896-.136 1.44-.429l.635-.34.28.52-10.006 5.38-.28-.521.634-.341c.554-.298.948-.637 1.18-1.016.173-.263.245-.592.214-.987-.018-.281-.284-.9-.8-1.86l-7.925-14.74-1.38.742c-1.288.692-2.076 1.467-2.366 2.325-.408 1.2-.341 2.564.2 4.09l-.535.287-2.78-5.172 17.163-9.228m13.014-7.716l5.319 7.05.345-.26c1.098-.828 1.634-1.773 1.608-2.836s-.479-2.317-1.358-3.766l.486-.366 6.84 9.07-.485.366c-.847-.911-1.674-1.556-2.482-1.936-.799-.386-1.496-.522-2.09-.407-.602.106-1.316.47-2.142 1.094l3.681 4.88c.72.953 1.198 1.508 1.435 1.663.246.148.53.207.855.176.324-.03.733-.232 1.227-.605l1.035-.78c1.618-1.22 2.63-2.571 3.035-4.053.414-1.488.256-3.16-.475-5.013l.473-.357 3.374 6.093-14.971 11.292-.357-.472.575-.434c.502-.379.84-.773 1.011-1.183.132-.287.148-.62.049-.999-.06-.275-.419-.847-1.074-1.715l-8.595-11.394c-.59-.784-.975-1.249-1.152-1.396a1.531 1.531 0 0 0-.993-.333c-.503.006-1.036.22-1.598.645l-.575.433-.357-.473 14.498-10.936 3.864 5.123-.485.366c-1.191-1.066-2.218-1.7-3.08-1.905-.855-.211-1.787-.136-2.797.225-.592.206-1.544.804-2.856 1.794l-1.788 1.348"/> - <path d="M258.4 445.547c70.909 57.515 140.41 58.57 208.41 0" fill="none"/> - </g> -</svg> diff --git a/img/flags/1x1/vi.svg b/img/flags/1x1/vi.svg deleted file mode 100644 index b99c568..0000000 --- a/img/flags/1x1/vi.svg +++ /dev/null @@ -1,32 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" height="512" width="512" viewBox="0 0 512 512"> - <path fill="#fff" d="M0 0h512v512H0z"/> - <path d="M163.478 315.945s-.414-2.806 4.915-4.864c5.33-2.057 5.744-9.728 4.678-14.84 0 0-2.782 4.863-6.157 6.484 0 0-5.507 2.87-5.76 8.35 0 0-.043 2.002-.458 3.562-.227.853-2.664-6.86 1.954-12.598 4.766-5.92 6.1-10.726 2.31-20.08 0 0-.357 5.675-4.087 8.917-3.73 3.243-4.205 3.493-4.145 11.226 0 0 .06 2.682-1.362 3.555 0 0-2.902-4.24-3.672-7.047-.77-2.806-1.125-3.99 2.19-7.234 0 0 10.625-6.865 2.962-21.89 0 0-.237 5.177-3.908 8.233-3.67 3.056-3.375 5.114-3.553 10.414-.178 5.302-.533 4.928-.947 5.676 0 0-6.75-12.41-1.54-19.02 5.21-6.61 8.113-7.983 2.37-20.268 0 0 .254 6.3-4.345 9.417-4.598 3.118-3.532 10.414-3.532 10.414s.297 2.743-.65 4.74c0 0-6.505-12.688-.296-19.52 5.27-5.8 5.625-9.854 2.783-18.086 0 0-.355 3.804-3.257 5.862-2.902 2.058-5.21 4.116-4.678 12.036 0 0 .237 5.55-.474 7.11 0 0-2.724-5.052-3.493-8.357-.77-3.305-1.066-5.24.947-8.544 2.013-3.304 10.007-12.783.474-26.44 0 0-.296 4.427-2.724 8.42-2.428 3.99-1.303 8.73-.77 12.346.533 3.617-1.243 7.11-1.243 7.11s-4.146-7.61-3.258-16.34c.888-8.73-2.665-15.902-10.718-21.078 0 0-5.863 13.595 2.13 20.517 0 0 6.81 6.736 8.528 14.905 0 0-5.15-.5-9.83-9.604-4.677-9.105-14.39-7.67-15.04-7.733 0 0 1.6 14.094 16.52 18.085 0 0 9.535 1.622 11.31 8.606 0 0 1.6 4.802 2.25 7.36 0 0-3.02-1.186-5.802-5.302-2.783-4.116-2.428-4.615-11.843-5.55 0 0-3.79-.437-5.803-3.118 0 0 3.967 14.905 14.152 14.78 0 0 9.297-.998 14.508 11.225 0 0-1.007-.624-2.368-1.56-1.362-.935-4.797-2.682-11.607-1.87-6.81.81-8.705-.313-10.423-.874 0 0 6.87 12.597 16.58 8.856 9.712-3.742 14.403 9.902 14.51 10.165 0 0-1.304-.998-3.02-2.682-1.72-1.684-5.284-3.76-12.022-1.62 0 0-4.856 1.87-9.77.373 0 0 4.737 9.167 15.81 7.608 11.073-1.56 13.856 8.17 13.856 8.17s-1.48-.873-2.486-1.684c-1.006-.81-4.737-2.93-12.73-.56-7.995 2.368-10.897-.376-10.897-.376s4.44 8.107 12.968 9.043c0 0 4.738-.063 6.75-.812 2.014-.748 7.344-1.933 11.015 3.368 0 0-1.007.187-2.546-.5 0 0-5.685-2.057-10.008 1.56 0 0-3.85 3.93-9.297 3.18 0 0 7.046 6.86 18.238 1.06 0 0 3.79-2.743 6.573-.623 2.784 2.12 9.238-2.058 9.238-2.058z" stroke-miterlimit="10" fill="#369443" stroke="#010002" stroke-width="1.204"/> - <g stroke-miterlimit="10" fill="#f4c53d" stroke="#010002" stroke-width="10"> - <path d="M225.77 146.942s-1.3-11.606 7.973-12.722c9.672-1.164 14.449.873 14.449.873l4.342 8.523-1.5 5.737-6 2.744s1.026-8.814-7.053-8.997c-2.048-.046-3.25.766-6.488.252-3.257-.517-4.999 3.061-5.724 3.59z" stroke-width="1.2044000000000001"/> - <path d="M291.023 175.67c-1.382 1.787-6.908 2.41-6.908 2.41s5.684 4.366 8.132 10.602c2.447 6.236-65.886.042-65.886.042s2.962-2.12 4.975-6.11c0 0-3.02 1.12-6.04-1.872 0 0 2.25.748 5.21-3.742 0 0 4.383-5.612 7.462-7.11 0 0-1.42.874-4.855-.997 0 0 5.92-.748 8.053-10.85 0 0 .355-2.246 2.605-5.49 2.25-3.242 1.777.625 5.922-4.364 0 0 1.895-3.535.237-5.697-1.66-2.162-3.436-1.372-6.91-3.45-3.474-2.08-5.013-3.243-3.83-6.444 1.185-3.202 4.265-2.704 4.7-2.704.433 0 .67-2.785 4.46-4.697 3.79-1.914 13.856-1.082 15.356-.25 1.5.83 7.58 2.618 11.132 11.598 3.553 8.98-.947 12.348 8.724 25.9 0 0-3.868.833-6.355.084 0 0 5.013 8.897 13.816 13.138z" stroke-width="1.204"/> - <path d="M248.744 137.775c-7.875-.374-4.855-7.88-4.855-7.88" fill="none" stroke-width="1.204"/> - <path d="M262.423 138.804s-1.392-.655-2.57-2.214c-1.65-2.188-5.336-3.243-7.32-1.185 0 0-2.013 2.245-3.79 2.37 0 0 2.014.623 3.406 1.902 1.39 1.278 2.84 2.214 4.914 1.933 2.072-.28 2.398-1.372 3.375-2.027.976-.655 1.983-.78 1.983-.78z" stroke-width="1.204"/> - </g> - <path d="M162.25 333.164s-.177-5.05 6.218-5.425l18.83 26.19s-.71 1.684-9.238 1.497c0 0-.903-.006-1.376.992-.728 1.53-14.433-23.256-14.433-23.256z" stroke-miterlimit="10" fill="#369443" stroke="#010002" stroke-width="1.204"/> - <g id="a" transform="translate(2.878 84.937) scale(.12044)" fill="#f4c53d" stroke="#010002" stroke-width="10"> - <path d="M1494.918 1807.886s-49.82 85.606-110.13 86.987c0 0-103.74-12.628-133.073 14.498-20.454 18.916-41.3 34.52-49.82 82.846-8.523 48.326 16.387 58.682 22.287 60.753 0 0 4.59 34.518 38.676 25.543 0 0 1.967 35.9 62.276 18.64 60.31-17.26 85.22-11.736 97.02-71.8 11.8-60.06 22.693-59.078 33.43-66.275 14.423-9.665 41.518-18.8 61.62-30.376 18.062-10.4 87.187-45.565 110.786-48.326 23.6-2.76 18.355-82.154 18.355-82.154h-60.964l-29.498-43.493-60.964 53.156zm192.01-429.409s-60.965 49.707-112.096 0c0 0-20.65 24.853-61.948 17.604-41.3-7.248-48.182-28.995-52.115-41.42 0 0-35.728 20.84-65.882 4.38-30.155-16.463-30.155-41.316-30.155-41.316s-52.443 10.338-79.32-25.207c-26.876-35.545-10.488-70.754 3.934-74.897 0 0-56.7 14.854-72.11-33.828-13.11-41.422 16.39-62.824 16.39-62.824s-119.47-.574-168.473-37.97c0 0-40.643-25.544-16.388-52.468 0 0-107.507-17.26-134.384-60.062 0 0-11.8-11.736-7.866-32.448 0 0 .656-11.736 12.455-12.427 0 0-122.6-18.937-157.982-59.372 0 0-17.044-18.64-8.522-43.492 0 0 1.803-6.56 4.753-10.96 0 0-111.605-23.56-166.67-73.266 0 0-31.787-28.32-15.4-66.29 0 0-186.505-51.073-143.24-133.228 0 0-87.185-28.305-59.653-107.008 0 0-72.11-36.59-40.643-94.58 30.114-55.5 122.585 9.664 232.08 39.96 0 0 296.28 93.28 442.188 118.106l414.573 617.222 241.892 93.2 24.58 172.593z"/> - <path d="M1689.878 923.866s-38.857-29.17-108.163 5.178c0 0-23.333 16.068-41.687-1.536-15.336-14.71-16.775-41.83 4.322-57.49 51.623-38.316 70.798-153.263-7.866-200.898 0 0-114.063-67.656-532.32-174.095 0 0-35.044-9.717-53.727-5.057-20.572 5.13-34.743 22.782-37.65 37.886 0 0-18.715 53.188 44.206 83.62 0 0 28.408 13 57.687 21.402 0 0-32.16-6.952-45.887 24.853-13.11 30.375 5.9 61.442 64.898 81.463 0 0 15.958 6.21 38.677 11.736 0 0-50.476 14.497-26.22 55.23 0 0 21.632 42.802 98 50.396 0 0-57.03 6.213-16.715 60.408 0 0 17.7 29.686 73.42 40.732 0 0-42.282 1.38-20.977 39.35 21.305 37.972 71.44 59.373 120.775 62.825 0 0 26.72 1.382 45.403-2.76 0 0-46.87 23.473-19.338 62.824 0 0 20.32 27.96 71.125 26.58 0 0-13.187 43.944 24.09 60.58 29.008 12.943 53.1-7.768 53.1-7.768s-9.834 47.118 32.448 63.687c0 0 21.14 10.873 52.606 0 0 0 24.09 53.85 109.638 16.05 85.545-37.798 20.156-355.197 20.156-355.197zm5.074 489.39s-12.552 67.393-112.09 152.22c0 0-76.8 67.745-74.834 145.757 2.003 79.44-13.766 88.368-43.92 115.292 0 0 62.275 4.833 92.43-36.59 0 0-1.312 69.037-10.49 75.25 0 0 19.532 1.246 47.854-29.685 0 0 17.044-17.95 32.777-24.853 0 0-18.356 47.636-3.934 91.82 0 0 4.59-17.26 28.843-24.854 0 0 43.92-8.975 60.964-72.49 0 0 11.144-42.112 79.975-79.392 0 0 78.007-29.42 76.04-67.87-1.965-38.447-173.618-244.604-173.618-244.604z"/> - <path d="M2056.524 2282.172s-17.87 78.856-79.975 72.49c0 0-43.922-4.143-40.644-77.323 0 0-64.898 34.518-75.386-51.088 0 0-58.998 13.807-58.342-66.276 0 0-55.065 9.665-48.51-61.443 0 0-59.653 15.88-59.653-51.088 0 0-139.628-23.157 151.428-288.576l259.59 154.642-48.51 368.66z" stroke-miterlimit="10"/> - <path d="M2085.368 1928.287s-43.265 38.385-74.075-18.915c0 0-41.954-2.07-48.51-33.828 0 0-34.087-3.452-40.642-35.9 0 0-46.542-4.832-45.23-44.183 0 0-84.62-6.53-.028-102.333 84.59-95.802 228.153 158.945 228.153 158.945l-19.667 76.215zm48.275-23.747c41.94 0 89.463 261.995 77.13 419.84-4.48 57.328-35.19 104.152-77.13 104.152s-72.65-46.824-77.13-104.15c-12.333-157.846 35.19-419.843 77.13-419.843"/> - <ellipse ry="85.951" rx="58.032" cy="1902.468" cx="2133.643"/> - <path d="M1935.906 2277.34s6.555-138.765 126.824-337.594m-202.21 286.506s-18.683-80.083 150.773-316.88c0 0-19.666-56.612 40.643-92.856m-249.76 343.46s-5.243-86.642 160.607-284.433c0 0-14.65-51.088 45.445-91.82m-254.56 314.81s6.228-87.677 168.472-258.89c0 0-8.117-52.468 50.023-84.916m-278.15 292.72s11.8-100.105 182.895-251.987c0 0-5.9-39.35 51.132-79.393" stroke-miterlimit="10" fill="none"/> - <path d="M372.257 431.976s134.384 77.806 552.895 155.612M431.91 538.984S795.627 657.63 965.01 672.21m-389.86 0s213.37 66.98 463.238 109.247m-281.17 30.31s241.072 57.905 356.164 67.515m-194.41 46.31s203.908 42.526 255.572 47.64m-125.777 57.297s148.806 22.61 208.03 21.4m-23.17 69.038s60.166-2.826 89.08-7.626m-33.36 104.278s51.132-13.807 81.286-33.138m-5.9 133.242s39.333-15.188 58.343-56.61m37.693 93.545s30.48-27.27 32.448-57.647m81.614 81.464s-11.413-9.845-3.605-52.64m-11.145-62.825s-5.9-12.254-3.933-31.585m-211.082-581.293s68.83 27.615 91.775 65.585c22.944 37.97 7.833 74.873 0 96.047-3.936 10.64-52.443 104.16 4.59 171.816m-95.382 73.525s.33-.345 24.584-7.94m-169.784-91.473s41.026 8.26 81.286 8.63m-137.99-109.77s48.183 4.833 93.414 4.142m-165.194-109.77s69.486 13.808 106.852 14.5m-164.54-132.553s85.7 24.46 149.463 33.138m141.596 50.397s-61.62 57.3 12.455 110.46c0 0-30.81 48.325 30.81 98.722m-16.388 23.82s-9.177 92.154 103.574 92.16c0 0-21.633 82.157 87.186 79.396 0 0 12.455 65.585 91.12 52.468m-173.327 721.441s-17.84 3.97-56.54 0m-108.818 48.326s-54.41-8.286-51.787 109.768m84.565-82.845s-49.165-6.213-45.887 108.388m520.654-384.536s-23.6 4.833-39.988 23.473c-16.39 18.64-47.854 15.188-47.854 15.188s17.044-13.807 22.944-48.326c5.9-34.52 24.91-44.875 24.91-44.875m-56.3-32.688s-23.598 4.833-39.986 23.473c-16.388 18.64-47.854 15.188-47.854 15.188s17.044-13.807 22.944-48.326c5.9-34.52 24.91-44.874 24.91-44.874m23.76 188.537s-20.604 4.22-34.913 20.495c-14.31 16.275-41.783 13.26-41.783 13.26s14.882-12.055 20.033-42.194c5.15-30.14 21.75-39.18 21.75-39.18" fill="none"/> - </g> - <use transform="matrix(-1 0 0 1 517.756 0)" xlink:href="#a" width="100%" height="100%" stroke="#010002" stroke-width="10"/> - <path fill="#0081c6" stroke="#010002" stroke-width="1.2044000000000001" stroke-miterlimit="10" d="M379.721 272.736l-6.88-3.992-11.456 49.453-4.727-3.396 11.151-47.378-7.775.143 18.457-33.799 1.23 38.969zm26.991 13.375l-4.296-6.927-34.383 40.628-3.723-4.168 34.253-40.113-6.929-3.719 31.364-20.716-16.286 35.015z"/> - <path fill="#0081c6" stroke="#010002" stroke-width="1.2044000000000001" stroke-miterlimit="10" d="M399.754 263.368l-5.665-5.73-30.774 59.17-4.742-2.767 30.98-59.05-7.545-1.982 26.135-27.617-8.389 37.977z"/> - <path d="M355.7 334.857l-2.305 9.424 6.31 6.288-8.92 37.674-7.932-10.656-11.754 5.486 8.918-37.674 8.27-2.305 2.146-9.408s2.5-.98 5.266 1.172z" fill="#0081c6" stroke="#010002" stroke-width="1.204" stroke-miterlimit="10"/> - <path d="M357.813 328.642l-4.543 8.475 4.55 7.793-17.873 33.96-5.044-12.456-12.703 2.095 17.874-33.96 8.554.027 4.386-8.502s3.19-.006 4.8 2.567z" fill="#0081c6" stroke="#010002" stroke-width="1.204" stroke-miterlimit="10"/> - <path d="M358.58 331.107l-12.083 15.35 2.77 8.67-24.67 28.855-2.254-13.33-12.825-.968 24.67-28.855 8.33 2.052 12.815-16.296s3.438 1.707 3.247 4.52zM52.42 295.12c2.88-1.177 4.954-2.312 4.945-5.386-.002-.733-.41-2.354-1.226-4.863l-19.343-59.113c-1.146-3.51-2.012-5.6-2.413-6.368-.87-1.666-2.577-2.344-4.876-3.3h24.584c-2.67 1.26-5.106 2.262-5.083 5.094.008 1.08.312 2.605.94 4.573l14.817 46.387 14.802-46.387c.626-1.968.95-3.492.94-4.573-.03-2.91-2.564-3.96-5.055-5.095h23.823c-2.177.872-3.953 1.555-4.865 3.3-.402.768-1.267 2.856-2.412 6.367L72.66 284.87c-.82 2.51-1.115 4.16-1.228 4.922 0 0-.89 3.738 4.947 5.327H52.42zm412.184-6.08v-66.93c0-1.158-.19-2.045-.572-2.663-.382-.617-2.043-2.397-4.414-3.358h22.15c-2.37.784-4.032 2.69-4.413 3.328-.382.637-.573 1.534-.573 2.692v66.93c0 1.196.198 2.113.593 2.75.395.636 2.023 2.19 4.394 3.33h-22.152c2.37-1.08 4.032-2.74 4.414-3.36.38-.616.572-1.524.572-2.72z" fill="#0081c6" stroke="#010002" stroke-width="1.204" stroke-miterlimit="10"/> - <path d="M259.86 311.813s59.28-26.27 59.428-87.042h-118.86c.15 60.773 59.43 87.043 59.43 87.043z" fill="#fff" stroke="#010002" stroke-width="1.204"/> - <g fill="#a60032" stroke="#010002" stroke-width="10"> - <path d="M209.568 224.769v38.83s4.54 9.005 9.143 14.653v-53.483h-9.143z" stroke-width="1.2044000000000001"/> - <path d="M227.854 224.77v64.007s5.718 5.606 9.143 8.31v-72.318h-9.143zm18.286 0v79.118s6.523 4.213 9.143 5.596V224.77h-9.143zm64 0v38.828s-4.54 9.006-9.143 14.654V224.77h9.143zm-18.286 0v64.007s-5.718 5.606-9.143 8.31v-72.318h9.144zm-18.286 0v79.118s-6.523 4.213-9.143 5.596V224.77h9.143z" stroke-width="1.204"/> - </g> - <path d="M319.288 180.62s-29.09 15.215-59.43-1.25c-30.34 16.465-59.43 1.25-59.43 1.25v44.15h118.86v-44.15z" stroke-miterlimit="10" fill="#162667" stroke="#010002" stroke-width="1.204"/> -</svg> diff --git a/img/flags/1x1/vn.svg b/img/flags/1x1/vn.svg deleted file mode 100644 index 1653281..0000000 --- a/img/flags/1x1/vn.svg +++ /dev/null @@ -1,11 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" height="512" width="512" viewBox="0 0 512 512"> - <defs> - <clipPath id="a"> - <path fill-opacity=".67" d="M177.17 0h708.66v708.66H177.17z"/> - </clipPath> - </defs> - <g fill-rule="evenodd" clip-path="url(#a)" transform="translate(-128) scale(.72249)"> - <path fill="#ec0015" d="M0 0h1063v708.66H0z"/> - <path d="M661.055 527.478l-123.98-92.588-123.372 93.498 45.885-151.938-123.147-93.821 152.355-1.309 47.255-151.476 48.267 151.128 152.355.199-122.515 94.706 46.897 151.601z" fill="#ff0"/> - </g> -</svg> diff --git a/img/flags/1x1/vu.svg b/img/flags/1x1/vu.svg deleted file mode 100644 index 11307f6..0000000 --- a/img/flags/1x1/vu.svg +++ /dev/null @@ -1,18 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" height="512" width="512" viewBox="0 0 512 512"> - <defs> - <clipPath id="a"> - <path fill-opacity=".67" d="M0 0h496.06v496.06H0z"/> - </clipPath> - </defs> - <g clip-path="url(#a)" transform="scale(1.0321)"> - <g fill-rule="evenodd"> - <path d="M0 0l336.61 212.6h407.48v70.867H336.61L0 496.057V-.003z"/> - <path d="M0 478.35l343.7-219.68h400.39v-21.259H343.7L0 17.721v31.886l322.44 198.42L0 446.457v31.889z" fill="#ff0"/> - <path d="M0 496.06l343.7-219.68h400.39v219.68H0z" fill="#40aa40"/> - <path d="M0 0l343.7 219.68h400.39V0H0z" fill="#ce0000"/> - <path d="M92.826 258.33c1.189.262 1.502.602 2.68-1.126.253-.868.991-2.084 1.634-3.162.859-1.41 1.236-1.977 2.045-.903.523.612 2.606-.518 3.47.075 1.336.888.532.76 1.627-.201.841-1.79.1-1.579-1.085-2.393-.832-.57-2.956.607-3.788.036.29-1.789.86-1.98 1.89-2.328.779.535 3.047-.407 3.749-.392.99.207 1.872.318 2.184-1.137.49-1.03.276-.32-.117-1.068-.831-.571-2.956.606-3.787.035-1.08-.818-.903-1.122-.272-2.493.845-.464 1.474-.24 2.518.41 1.075.738 2.767-.696 3.71-.748.848-.965 1.848-1.286 1.216-2.461-.353-.893-.619-.994-1.782-1.223-1.19-.817-2.739.678-3.192-.544.944-1.351 1.296-1.062 2.44-.302.736.252 2.96-1.065 3.672-1.105 1.059-.306.546.885 1.293-1.748-.26-1.142-2.173.7-3.253.403-1.037.138-1.863-.23-1.96-1.346.015-1.502.76-1.605 1.827-1.382.94.169 3.061-.999 3.85-.982 1.123.597 1.479.374 2.363-1.014.651-1.64-.072-.962-1.186-1.803-.831-.57-2.956.607-3.788.036.146-.605.409-1.342.976-1.637.82.162 1.525.125 2.556.766 1.015.444 2.686-1.516 3.555-2.173-.165-.934-1.825.395-2.835-.298-.64-.44-1.442-.9-1.642-1.458.573-1.636.294-1.554 1.866-1.025.837-.217 2.256-.206 1.294-1.749-.154-.249-.982-.16-1.705-.51-.871-.6-1.71-1.203-2.634-1.48-.666-.102-1.634-.318-2.16-.165-.057.972.188 1.59.131 2.727.434.71 1.254.726 1.426.979-.872.766-1.343.373-2.262.424-1.095-.751-.467-3.08-1.759-2.525.298.684.19 3.27.745 3.806.584.402 1.33.794 1.464 1.335-.931 1.432-1.284 1.352-2.401.659-.934-.642-.64-2.745-1.442-2.638-.984.744-1 .71-.797 1.76.052 1.373-.496 3.284.605 4.04 1.324.939 1.492.828.45 2.616-.718.87-1.121.711-1.945.313-.886-.609-.694-2.85-1.38-3.584-1.297-.775-.545-.747-1.626.202-.334 1.217-.091 1.537.45 2.615.44.67.412 2.957 1.163 3.106 1.212.693 1.254.554-.124 1.892-1.083.043-1.548.34-2.378-.644-1.007-.76-.378-3.102-1.658-3.116-1.186.097-1.444.128-1.294 1.749.205 1.427-.325 3.67.822 4.519 1.073.49 1.723.458 2.1 1.112-.335.293-.964 1.2-1.333 1.392-.751.054-1.527-.466-2.378-.644-1.012-.466-.554-1.37-1.363-1.925-.936.303-.952-1.004-1.449.324.192 1.09-.177 2.514.845 3.216.832.571 1.563 1.732 2.394 2.303.954 1.13.58 1.326-.007 2.961-.796.023-1.729-.527-2.595-1.122-.832-.571-.688-2.78-1.52-3.35-.719-.708-.51-1.31-1.626.201-.105 1.073.095 1.15.372 1.904.032 1.096-.262 3.116.745 3.807 1.017.205 2.114.737 2.912 1.01.766.898.1.723-.758 2.116-.54 1.395-.545 1.642-1.394 2.339-.736.981-1.028 1.412-.364 2.717z" fill="#ff0"/> - <path d="M117.158 259.518c.712-1.158 1.15-1.354.032-3.296-.697-.616-1.519-1.886-2.253-2.999-.953-1.476-1.323-2.103-.015-2.533.77-.31.562-2.974 1.45-3.655 1.347-1.063.91-.261.463-1.808-1.308-1.608-1.409-.738-2.628.196-.855.655-.62 3.382-1.475 4.037-1.527-1.024-1.476-1.705-1.385-2.937.801-.613.84-3.4 1.132-4.138.585-.97 1.037-1.861-.174-2.774-.751-.931-.183-.42-1.028-.304-.855.655-.619 3.382-1.474 4.037-1.181.82-1.39.51-2.397-.708-.09-1.082.367-1.66 1.378-2.51 1.106-.846.463-3.216.79-4.239-.548-1.286-.445-2.476-1.775-2.274-.96.018-1.159.26-1.833 1.403-1.223.937-.467 3.18-1.769 3.172-.865-1.542-.46-1.8.694-2.712.524-.68.2-3.568.447-4.34.14-1.248 1.03-.226-1.09-2.073-1.152-.18-.222 2.588-.925 3.616-.286 1.157-.952 1.887-2.016 1.544-1.372-.616-1.17-1.449-.54-2.493.528-.931.3-3.65.63-4.481.995-.954.931-1.421.009-2.914-1.246-1.348-.912-.309-2.127.538-.855.655-.62 3.382-1.475 4.037-.497-.397-1.069-.97-1.114-1.69.475-.806.721-1.57 1.72-2.409.812-.9-.322-3.459-.58-4.644-.923-.198-.363 2.096-1.402 2.892-.658.504-1.4 1.171-1.991 1.161-1.274-1.262-1.31-.933-.199-2.392.134-.975.71-2.477-1.09-2.072-.29.063-.539.978-1.148 1.606-.896.686-1.784 1.336-2.406 2.206-.36.666-.943 1.608-1.012 2.229.87.448 1.534.435 2.557.95.824-.178 1.165-1.042 1.465-1.123.356 1.232-.191 1.575-.51 2.571-1.126.863-3.014-.735-3.019.859.747-.043 3.078 1.106 3.791.73.601-.46 1.258-1.095 1.808-1.02.944 1.56.73 1.902-.351 2.812-.96.736-2.775-.417-2.995.477.291 1.342.253 1.346 1.298 1.55 1.282.493 2.818 1.84 3.95.972 1.389-1.03 1.354-1.253 2.58.568.514 1.11.207 1.475-.486 2.19-.911.698-2.893-.402-3.839.033-1.229 1.068-.903.281-.462 1.808.984.841 1.375.712 2.58.568.79-.2 2.878.744 3.313.006 1.12-1.01 1.008-1.11 1.689.888-.392 1.167-.305 1.779-1.538 2.268-1.099.766-2.999-.838-3.52.516-.384 1.298-.458 1.583 1.09 2.072 1.391.353 3.24 1.812 4.476.933.877-.944 1.106-1.646 1.856-1.785.136.472.719 1.504.748 1.971-.25.82-1.036 1.436-1.538 2.268-.83.889-1.477.042-2.31.68-.094 1.114-1.3.609-.28 1.667 1.079.232 2.239 1.193 3.29.388.855-.655 2.212-.967 3.067-1.622 1.416-.561 1.448-.085 2.716 1.191-.297.854-1.173 1.625-2.064 2.308-.855.654-2.825-.381-3.68.274-.936.48-1.406.019-.462 1.808.943.54 1.094.359 1.895.365 1.019.405 2.757 1.524 3.791.731.594-.998 1.519-1.95 2.088-2.689 1.128-.455.702.183 1.64 1.652 1.066 1.13 1.29 1.234 1.592 2.414.608 1.174.888 1.656 2.35 1.472z" fill="#ff0"/> - <path d="M94.96 304.722c0-5.154-.8-10.307 0-10.307 45.353 0 56.69-30.924 56.69-51.541 0-20.616-15.754-41.23-45.353-41.23-34.016 0-45.354 20.14-45.354 41.23 0 20.616 17.008 36.079 34.016 36.079 22.677 0 28.347-5.154 45.354-25.77-5.67 25.77-34.016 36.079-45.354 36.079-22.677 0-45.353-15.462-45.353-46.386 0-25.77 17.008-51.538 56.694-51.538 34.016 0 56.691 25.77 56.691 51.538 0 36.079-28.346 61.848-68.032 61.848z" fill="#ff0"/> - </g> - </g> -</svg> diff --git a/img/flags/1x1/wf.svg b/img/flags/1x1/wf.svg deleted file mode 100644 index f1725d8..0000000 --- a/img/flags/1x1/wf.svg +++ /dev/null @@ -1,7 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" height="512" width="512" viewBox="0 0 512 512"> - <g fill-rule="evenodd" stroke-width="1pt"> - <path fill="#fff" d="M0 0h512v512H0z"/> - <path fill="#00267f" d="M0 0h170.67v512H0z"/> - <path fill="#f31830" d="M341.33 0H512v512H341.33z"/> - </g> -</svg> diff --git a/img/flags/1x1/ws.svg b/img/flags/1x1/ws.svg deleted file mode 100644 index 1cc33ab..0000000 --- a/img/flags/1x1/ws.svg +++ /dev/null @@ -1,9 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" height="512" width="512" viewBox="0 0 512 512"> - <g fill-rule="evenodd" stroke-width="1pt"> - <path fill="red" d="M0 0h512v512H0z"/> - <path fill="#00006b" d="M0-1h256v128H0z"/> - <g fill="#fff"> - <path d="M132.524 116.574l-10.151-6.852-9.73 6.966 3.09-12.22-9.34-7.53 12.064-.7 3.959-11.622 4.362 11.788 11.787.347-9.366 7.987zM130.786 35.293l-8.122-5.219-7.975 5.18 2.214-9.732-7.15-6.365 9.494-.795 3.548-9.113 3.656 9.24 9.347.733-7.237 6.506zM94.892 64.541l-7.904-5.423-8.08 5.422 2.516-9.504-7.447-6.325 9.45-.451 3.479-9.331 3.332 9.225 9.592.559-7.393 6.153zM166.856 58.006l-7.585-4.892-7.38 4.952 2.124-9.024-6.799-5.777 8.896-.685 3.175-8.524 3.373 8.602 8.764.509-6.809 6zM145.644 79.378l-5.056-3.15-5.04 3.181 1.314-5.982-4.464-4.01 5.87-.547 2.283-5.659 2.313 5.644 5.873.512-4.44 4.035z"/> - </g> - </g> -</svg> diff --git a/img/flags/1x1/ye.svg b/img/flags/1x1/ye.svg deleted file mode 100644 index cdc7769..0000000 --- a/img/flags/1x1/ye.svg +++ /dev/null @@ -1,7 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" height="512" width="512" viewBox="0 0 512 512"> - <g fill-rule="evenodd" stroke-width="1pt"> - <path fill="#fff" d="M0 0h511.993v504.294H0z"/> - <path fill="#f10600" d="M0 0h511.993v167.86H0z"/> - <path d="M0 344.123h511.993v167.86H0z"/> - </g> -</svg> diff --git a/img/flags/1x1/yt.svg b/img/flags/1x1/yt.svg deleted file mode 100644 index 2385562..0000000 --- a/img/flags/1x1/yt.svg +++ /dev/null @@ -1,7 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" height="512" width="512" viewBox="0 0 512 512"> - <g fill-rule="evenodd" stroke-width="1pt"> - <path fill="#fff" d="M0 0h512.005v512H0z"/> - <path fill="#00267f" d="M0 0h170.667v512H0z"/> - <path fill="#f31830" d="M341.333 0H512v512H341.333z"/> - </g> -</svg> diff --git a/img/flags/1x1/za.svg b/img/flags/1x1/za.svg deleted file mode 100644 index 83c3792..0000000 --- a/img/flags/1x1/za.svg +++ /dev/null @@ -1,17 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" height="512" width="512" viewBox="0 0 512 512"> - <defs> - <clipPath id="a"> - <path fill-opacity=".67" d="M70.133 0h499.61v499.61H70.133z"/> - </clipPath> - </defs> - <g transform="translate(-71.873) scale(1.0248)" clip-path="url(#a)"> - <g fill-rule="evenodd" stroke-width="1pt"> - <path d="M.001 397.908V101.846l220.373 147.955L0 397.918z"/> - <path d="M150.371 499.667l247.41-166.512h351.66v166.512h-599.07z" fill="#00c"/> - <path d="M134.465.007L749.422.02v166.54H397.76S137.762-1.64 134.465.007z" fill="red"/> - <path d="M.001 62.47v39.352l220.373 147.955L0 397.894v39.35l277.564-187.467L.001 62.47z" fill="#fc0"/> - <path d="M.001 62.47V.007H92.6l294.03 198.943h362.79v101.737H386.63L92.598 499.6H0v-62.356l277.564-187.468L.001 62.47z" fill="#093"/> - <path d="M92.599.007h57.762l247.41 166.54h351.66v32.403h-362.79L92.61.007zM92.599 499.667h57.762l247.41-166.512h351.66v-32.402h-362.79L92.61 499.667z" fill="#fff"/> - </g> - </g> -</svg> diff --git a/img/flags/1x1/zm.svg b/img/flags/1x1/zm.svg deleted file mode 100644 index f1f63da..0000000 --- a/img/flags/1x1/zm.svg +++ /dev/null @@ -1,27 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" height="512" width="512" viewBox="0 0 512 512"> - <defs> - <clipPath id="a"> - <path fill-opacity=".67" d="M248.03 0h496.06v496.06H248.03z"/> - </clipPath> - </defs> - <g fill-rule="evenodd" clip-path="url(#a)" transform="translate(-256) scale(1.0321)"> - <path fill="#198a00" d="M0 0h744.09v496.06H0z"/> - <path fill="#ef7d00" d="M656.77 178.21h87.321v317.82H656.77z"/> - <path d="M569.56 178.06h87.227v317.89H569.56z"/> - <path fill="#de2010" d="M480.51 178.26h89.074v317.81H480.51z"/> - <g stroke="#000" fill="#ef7d00"> - <path stroke-linejoin="round" d="M685.586 63.548s32.861-14.042 36.045-16.937c1.448 1.737-13.173 19.398-41.546 25.912 25.767-6.08 47.771-25.188 52.259-24.61 1.303.29 1.012 18.675-58.05 34.599 40.823-10.713 64.563-30.4 64.274-28.229.29.434-4.053 15.49-39.809 27.215 9.989-2.316 37.059-18.819 36.77-15.634.868 1.303-26.202 36.045-75.128 24.754 39.085 10.133 64.418-14.331 68.037-13.897.724.145-7.239 21.425-56.456 22.728 23.596-2.461 16.792-.146 16.792-.146s-13.898 10.857-30.69 3.475c13.174 3.62 14.621 3.764 14.91 4.922-.868 1.447-11.725 3.619-22.147-2.027 8.395 3.474 15.923 4.054 16.067 5.357-.144.433-5.5 3.474-10.277 1.302-4.777-2.172-48.785-29.241-48.785-29.241l74.984-20.557 2.75 1.014zM597.43 136.775c-6.595 0-6.776 5.868-6.776 5.868s-.545.423-.182 3.267c1.089-1.936 1.634-2.541 1.634-2.541.726.121 3.75 1.028 8.53-2.722-4.357 4.536-1.754 6.23-1.754 6.23s-1.029 3.57 2.298 4.296c-1.028-1.452-.423-2.723-.423-2.723s4.658-.483 4.355-6.17c.182 5.142 2.965 6.412 2.965 6.412s0 2.844 3.024 3.086c-1.632-1.452-1.27-3.69-1.27-3.69s3.933-2.844.605-7.684c1.996-1.15 3.63-4.355 3.63-4.355s-2.722-1.15-3.992-2.117c-.606-1.272-.061-8.228-.061-8.228l-1.634-9.015-4.658 14.036c.18-1.996.302 6.05-6.292 6.05z" stroke-width=".9022874999999999"/> - <path stroke-linejoin="round" d="M629.998 116.528c.144.145 4.922 5.501 9.554 5.211 1.737-1.447-3.619-4.632-3.619-5.356 1.882 1.738 9.844 8.541 14.91 6.08 2.027-2.895-3.619-2.46-9.844-10.278 4.343 2.895 15.2 9.265 20.267 6.804 2.172-2.316-11.291-9.555-15.779-15.2l-11.58-5.935-15.78 12.884 11.871 5.79z" stroke-width=".9022874999999999"/> - <path stroke-linejoin="round" d="M612.19 72.523s5.357-3.185 26.781-1.592c2.316.29 14.62-4.198 18.53-5.501 6.224-1.158 26.056-5.501 31.413-9.554 3.763-.435-1.015 6.948-5.79 8.685-5.068 2.317-23.452 8.686-29.967 7.818 7.818.145 3.475 6.514-9.554 3.474 6.225 3.474 3.909 4.053 3.909 4.053s-11.002.58-13.897-1.882c7.383 2.75 4.343 3.764 4.343 3.764s-7.528.724-11.002-.868c5.356 1.592 2.605 2.605 2.605 2.605s-4.342.724-7.961-.579c-3.619-1.303-9.12-10.422-9.41-10.422z" stroke-linecap="round" stroke-width=".9022874999999999"/> - <path stroke-linejoin="round" d="M620.78 119.53l.787 14.157s-.424.726-.787 1.15c-.363.423-10.042-1.513-8.711 5.868 0 3.025.06 3.81 2.118 5.505-.545-1.997-.364-3.388-.364-3.388s2.722 1.634 5.385-2.843c-1.815 4.416-.545 5.99-.122 6.11.424.787-.725 4.356 2.904 4.295-1.39-1.33-.725-3.267-.725-3.267s3.811-.604 2.48-7.501c1.392-1.392 1.936-.06 1.936-.06s.423 4.113 3.75 3.266c1.513.847-.241 3.085-.241 3.085s2.42.061 3.145-1.996c.727-2.057 1.573-5.747-2.42-7.26-.484-1.451 1.574-1.572 1.574-1.572s2.54.846 3.266 2.117c.726 1.27.484-3.327-2.661-3.812-3.872-.12-4.114-.907-4.114-1.088 0-.182-.666-10.285-.968-13.189l-6.232.423z" stroke-width=".9022874999999999"/> - <path stroke-linejoin="round" d="M634.25 131.592c.047-.649-6.605-9.606-4.917-10.764 1.686.348 4.453 4.422 6.695 3.1-.68-1.589-2.682-.695-4.956-4.76-2.273-4.596-2.605-11.495-10.567-19.02 5.155 7.963 16.848 12.631 17.343 10.31s-10.296-11.104-9.743-13.22c2.146 4.346 12.981 14.03 20.964 13.228.548-1.865-6.537-5.628-8.36-9.141-5.1-3.426-18.748-15.19-19.021-17.918-4.966-7.243-8.067-9.435-9.51-10.269-.558-.657-.698-1.286-.807-1.685-3.083-7.268 1-9.628 3.39-9.977 1.967-.219 2.538.076 3.954-.61-1.677-.655-3.352-1.268-5.027-1.924 2.185 1.603 7.766.192 6.556 4.808 2.447-.931 7.654-7.125-5.9-8.523-4.412-5.06-22.548-7.97-27.087 14.117.362.31.552.564 1.705 1.426-5.731-2.77-21.178-4.911-26.743-5.81-15.043-4.34-30.664-14.798-32.165-13.512-2.008.891 9.087 11.215 8.51 11.443-9.62-5.61-18.41-9.584-26.587-13.2-5.754-2.151-11.516-7.159-12.152-6.206-2.117 4.386 9.224 15.413 11.334 16.71 2.11 1.24 18.702 8.937 18.458 9.033-24.991-11.344-29.182-13.4-30.435-14.707-2.203-.497-7.57-7.741-9.064-7.276-.819.805.823 12.252 12.748 17.39 1.944 1.417 25.563 9.89 25.332 10.554-.058.166-27.052-11.141-28.101-11.545-5.205-2.042-11.59-9.195-12.784-8.39-1.14.73 2.943 8.473 8.202 10.901 2.757 1.216 13.33 6.453 22.857 9.786.608.22-17.123-6.724-25.649-10.286-3.865-2.146-5.685-4.82-6.274-4.244-.87.575 1.407 12.013 28.802 18.467.722.307 9.644-2.114 9.203-1.793-.11.08-8.86 1.985-9.71 1.92-.759-.115-5.552.568-5.639.816-.29.774 1.737 4.87 15.882 4.015 1.808-.108 11.621-3.573 10.797-2.828-.412.373-13.363 4.581-14.35 4.664-.856.121-5.405.597-5.574 1.08-.205.66 3.368 3.576 10.964 4.043 6.726.357 19.506-4.11 19.25-3.82-.257.29-12.32 4.423-12.636 4.675-.437.247-4.855.486-5.01.826-.36.844 6.373 7.14 26.283.42-2 2.702-11.65 4.55-11.637 5.037-.045.353 2.127 2.45 5.5 3.201 1.688.375 3.997.299 6.107-.035 3.79-.758 7.784-2.257 12.858-6.947.607 1.472-12.676 8.193-12.052 8.834 2.88 2.671 12.447-.344 13.074-.694.627-.351 18.423-10.386 18.361-11.547.277 1.488-22.943 14.105-22.692 14.623 1.49 2.378 9.422-.125 9.801-.344.379-.218 10.123-5.482 10.39-5.638.267-.155-11.452 6.86-10.408 7.927-.505 4.555 18.301-3.144 19.775-4.102.737-.48-9.034 4.296-9.06 6.565 3.147 5.32 13.222 3.632 14.776 2.462.777-.586-.915 3.952-.37 3.54.19-.085 2.192-2.452 2.961-4.165-.245 1.486-1.35 3.828-1.994 6.514-.646 2.687-.83 5.719-1.716 8.94-.203 1.414 6.208-2.767 5.277-12.761.549 5.199-2.024 14.92-1.351 15.425 1.347 1.01 5.07-4.842 5.447-8.799 1.106 1.999 3.426 6.171 5.423 7.131-.217-3.024.038-2.885-.86-5.857.518-3.945.59-9.406.716-15.572 5.425 10.393 7.589 14.782 6.073 22.74 1.613.673 4.19-5.554 3.982-8.76 2.072 8.907 11.014 10.243 11.156 9.984z" stroke-linecap="round" stroke-width=".72183pt"/> - <path stroke-linejoin="round" d="M543.884 65.612s-3.693 2.79-8.288 2.625c1.148 4.596 10.667 1.067 10.667 1.067s-4.595 5.088-7.878 5.908c1.97 1.642 10.258 1.067 11.653.247 1.394-.821 3.857-4.021 3.857-4.021s-8.535 9.847-9.766 9.765c-.164 1.148 8.945.738 10.832-.985 1.887-1.723 6.647-4.267 6.647-4.267s-12.473 8.698-13.048 8.698c4.678 1.23 14.033-1.477 20.023-5.17-8.863 5.908-9.683 6.975-14.196 8.944 4.021.903 6.072 3.611 19.694-2.297 7.796-3.693 12.226-10.422 12.226-10.422-4.84 6.483-12.473 11.98-20.924 17.397-.493.984 9.026 5.005 21.17-7.632" stroke-linecap="round" stroke-width=".72183pt"/> - <path d="M609.86 93.018s.82 3.857 4.102 6.811c3.283 2.954 3.529 5.826 3.529 5.826M608.22 67.91s1.149 3.446 4.513 5.661c3.447 2.216 8.618 9.19 9.028 10.422.397 1.49 2.379 12.227 2.215 13.375M587.295 73.243c.246 1.313-4.842 7.96 2.133 15.755-6.319 7.713-6.318 8.698-6.318 8.698s3.528 1.97 9.847-3.447c10.42 12.802 6.948 18.66 6.948 18.66" stroke-linecap="round" stroke-width=".72183pt"/> - <path stroke-linejoin="round" d="M599.075 103.874s-.96-1.375.751-6.51c1.542 1.856 3.255 2.253 4.007 3.004.75.752 8.619 1.89 9.12 7.15" stroke-linecap="round" stroke-width=".72183pt"/> - <path d="M608.322 55.673c0-.386-1.585-3.786-7.496.464 3.168.193 6.297 2.009 7.496-.464z" stroke-width=".72183pt"/> - <path stroke-linejoin="round" d="M664.74 71.22c.29.145 17.66 3.909 23.451 2.027-7.383 9.843-22.149 3.184-22.149 3.184 7.238 2.172 7.528 2.027 9.844 4.054.724 1.882-13.318 1.013-17.95-1.593 12.884 4.054 13.173 3.764 13.608 5.356.58 2.172-21.136-.579-23.017-3.474 5.79 4.488 8.975 5.356 12.16 7.383-3.91 1.737-11.147 3.474-24.465-5.935 17.516 15.923 33.295 14.91 35.756 17.805-6.08 8.975-29.676-5.356-40.533-12.594-10.857-7.238 23.74 17.516 26.926 17.081-1.593 2.46-13.029.29-13.753-.868" stroke-width=".72183pt"/> - <path d="M669.23 87.868c-2.027.29-8.107.29-8.975.144" stroke-linecap="round" stroke-width=".72183pt"/> - <path stroke-linejoin="round" d="M538.796 62.986s13.212 6.975 18.791 6.482c-1.476 1.395-3.692 1.97-3.692 1.97 1.395.574 5.252 2.626 11.078 1.313-1.395 1.395-3.2 2.954-3.2 2.954s5.005 1.887 10.667-1.067c-1.723 2.133-2.708 3.693-2.708 3.693l3.94.246" stroke-linecap="round" stroke-width=".72183pt"/> - </g> - </g> -</svg> diff --git a/img/flags/1x1/zw.svg b/img/flags/1x1/zw.svg deleted file mode 100644 index 757647a..0000000 --- a/img/flags/1x1/zw.svg +++ /dev/null @@ -1,21 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" height="512" width="512" viewBox="0 0 512 512"> - <defs> - <clipPath id="a"> - <path fill-rule="evenodd" fill="#00f" d="M1.266-.106h421.43v420.21H1.266z"/> - </clipPath> - </defs> - <g clip-path="url(#a)" transform="matrix(1.2149 0 0 1.2184 -1.539 .13)"> - <path fill="#006400" d="M0 0h840v420H0z"/> - <path fill="#ffd200" d="M0 60h840v300H0z"/> - <path fill="#d40000" d="M0 120h840v180H0z"/> - <path d="M0 180h840v60H0z"/> - <path stroke-width="20" stroke="#000" d="M0 0v420l280-210z"/> - <path fill="#fff" d="M0 0v420l280-210z"/> - <path fill="#d40000" d="M106.52 104.41l55.459 170.68L16.789 169.6h179.47l-145.2 105.5z"/> - <path fill="#fc0" d="M82.77 253.66l9.8-1.782 18.176-.713 6.682.624 14.968 2.495 1.158-1.515v-10.78l1.693-9.267 3.118-9.444 3.207-7.484 4.188-7.751 6.86 1.693h1.782l.178-1.337-14.344-12.295-15.057-11.493-21.65-16.215-1.96-.534-2.405-16.928-1.693-5.168-2.228-1.96-4.365-1.425-4.812.178-2.138 1.247-4.633 1.07-2.405.356-1.604 1.87-.178 2.406 6.682.178 1.693.713-.178.713-3.832.534-1.781.535 2.138 1.604 2.138.802 2.851 1.069.535 1.87.267 25.928-1.515 4.01-.534 7.483 2.227 8.999-5.613 6.326-3.118 5.702-.535 3.563-1.692 3.475-.268 2.228 1.158 2.316 4.277 14.255 2.227 11.671z"/> - <path d="M87.956 141.92c-1.715-.001-2.538.295-4.237 1.219-1.534.834-3.354 1.387-4.594 1.387-2.521 0-4.556 1.81-4.556 4.07v1.5l3.674-.113c10.535.352.917 1.323.15 1.462-2.615.475.58 2.608 3.657 3.638 3.31 1.108 3.169.467 3.169 14.98 0 11.918-.104 13.604-1.013 16.35-1.335 4.033-1.335 10.026 0 13.97.54 1.594.985 3.08.994 3.3.009.22-1.56 2.169-3.488 4.33-3.483 3.905-5.625 8.096-5.625 11.026 0 .674-.455 1.813-1.012 2.55-1.287 1.7-1.324 4.626-.075 5.737 1.295 1.153 6.642 21.793 6.656 25.688.005 1.42.259 1.412 8.381-.225 6.557-1.32 22.06-1.602 29.906-.543 3.625.488 7.842 1.2 9.375 1.593 4.83 1.24 4.564 1.496 4.575-4.33.018-9.01 1.66-17.577 5.138-26.739 1.582-4.168 5.74-12.63 6.843-13.93.11-.13 1.88.198 3.938.73 4.208 1.09 5.362.886 5.362-.937 0-1.044-4.296-4.626-25.33-21.094-14.17-11.1-25.8-19.84-26.38-19.84-.573 0-1.15-.294-1.276-.656-.125-.363-.793-4.652-1.5-9.544-.706-4.892-1.66-9.722-2.118-10.725-1.339-2.932-4.11-4.487-8.532-4.781a31.202 31.202 0 0 0-2.08-.075zm.15 1.05c.552-.007 1.173.016 1.931.056 6.641.349 7.897 2.181 9.638 13.988.675 4.582 1.231 8.82 1.237 9.431.008.795-.915 1.735-3.244 3.3-3.428 2.305-7.854 6.51-10.012 9.488l-1.293 1.762-.244-4.143c-.142-2.278-.142-7.594 0-11.812.294-8.72.065-9.58-2.794-10.538-2.334-.782-5.38-1.622-4.481-2.157.982-.583 1.891-.166 4.387-.787.884-.22.836-.183.694-.938-.256-1.36-1.584-1.984-5.344-1.78-2.952.159-3.331.082-3.13-.713.403-1.607 2.074-2.663 4.555-2.906 1.336-.131 3.284-.723 4.35-1.313 1.18-.653 2.095-.917 3.75-.937zm14.869 25.875c.14-.002.27 0 .394.019 1.702.267 50.794 38.649 50.794 39.712 0 .42-.394.757-.881.75-.488-.008-12.982-3.547-27.75-7.856-23.6-6.888-26.994-8.013-28.012-9.244-1.448-1.75-1.497-4.421-.132-6.225.558-.737 1.013-1.643 1.013-2.025 0-1.166-2.502 1.808-2.981 3.544-.56 2.029.483 5.425 2.006 6.525.602.434 5.1 1.98 9.994 3.43 8.351 2.477 8.912 2.743 9.356 4.126 1.064 3.32-2.443 7.173-7.519 8.269-1.637.353-3.719 1.316-5.156 2.4-5.716 4.306-9.696 6.85-13.031 8.287-1.962.845-3.857 1.8-4.2 2.138-.344.337-.844 1.873-1.125 3.412-.596 3.268-.85 3.769-1.819 3.769-.561 0-.612-.294-.225-1.35.713-1.949.635-4.444-.15-4.444-.415 0-.675.694-.675 1.856 0 1.015-.286 2.132-.656 2.494-.556.545-.626.142-.394-2.362.155-1.667.087-3.038-.15-3.038-.455 0-1.348 2.526-1.669 4.744-.188 1.3-.199 1.29-.619-.244-.327-1.198-.168-2.001.675-3.525.602-1.087 1.107-2.667 1.107-3.525 0-1.292.952-2.541 5.625-7.275 3.102-3.142 6.714-7.041 8.025-8.662 2.268-2.805 2.387-3.103 2.306-5.944-.047-1.642-.237-3.118-.413-3.3-.592-.616-1.382 2.558-1.068 4.294.283 1.568-.01 2.103-3.282 5.962-1.975 2.33-5.33 5.842-7.443 7.819-3.895 3.641-5.288 5.61-5.288 7.462 0 .563-.436 2.05-.975 3.3-.539 1.25-.836 2.529-.675 2.832.18.338.052.316-.319-.038-.439-.419-.474-1.195-.112-2.869.273-1.262.385-2.48.244-2.718-.544-.915-1.182.26-1.5 2.756-.183 1.431-.526 2.481-.77 2.325-.733-.471-.501-3.077.395-4.406.461-.685 1.037-2.317 1.275-3.638.665-3.704 2.257-6.645 5.793-10.65 1.783-2.019 3.244-3.745 3.244-3.844 0-.098-.475-1.588-1.05-3.3-1.33-3.958-1.417-9.985-.206-13.65 1.276-3.861 3.906-7.684 8.062-11.719 4.023-3.904 7.845-6.34 9.938-6.375zm15.019 32.175a.86.573 0 0 1 .994.562.86.573 0 0 1-1.706 0 .86.573 0 0 1 .712-.562zm2.475.319a.86.573 0 0 1 .019 0 .86.573 0 0 1 1.012.581.863.575 0 0 1-1.725 0 .86.573 0 0 1 .694-.581zm2.625.487a.86.573 0 0 1 .094 0 .86.573 0 0 1 .918.581.86.573 0 0 1-1.706 0 .86.573 0 0 1 .694-.58zm2.363.488a.86.573 0 0 1 .112 0 .86.573 0 0 1 .919.581.863.575 0 0 1-1.725 0 .86.573 0 0 1 .694-.581zm-6.3.581a.86.573 0 0 1 .018 0 .86.573 0 0 1 1.013.581.863.575 0 0 1-1.725 0 .86.573 0 0 1 .693-.581zm2.475.412a.86.573 0 0 1 1.012.563.863.575 0 0 1-1.725 0 .86.573 0 0 1 .713-.563zm5.193.207a.86.573 0 0 1 1.013.562.863.575 0 0 1-1.725 0 .86.573 0 0 1 .712-.562zm-2.737.037a.86.573 0 0 1 1.012.563.863.575 0 0 1-1.725 0 .86.573 0 0 1 .713-.563zm5.062.582c.077-.113 3.675.802 7.988 2.043l7.837 2.25-1.518 2.7c-.836 1.48-1.891 3.465-2.344 4.407-.92 1.912-1.247 1.945-5.963.862-5.215-1.198-13.459-2.335-21.844-3.019l-8.062-.656 3.037-1.144c1.673-.634 4.079-1.72 5.344-2.419 1.985-1.095 2.786-1.236 5.831-1.012 4.522.333 7.57-.502 8.7-2.381.473-.786.918-1.52.994-1.632zm-8.85.562a.86.573 0 0 1 .019 0 .86.573 0 0 1 1.013.581.863.575 0 0 1-1.725 0 .86.573 0 0 1 .693-.581zm5.644 0a.86.573 0 0 1 .019 0 .86.573 0 0 1 1.012.581.863.575 0 0 1-1.725 0 .86.573 0 0 1 .694-.581zm-8.1.075a.86.573 0 0 1 .113 0 .86.573 0 0 1 .918.581.863.575 0 0 1-1.725 0 .86.573 0 0 1 .694-.581zm5.344.094a.86.573 0 0 1 1.012.562.863.575 0 0 1-1.725 0 .86.573 0 0 1 .713-.562zm-6.563 1.18a.86.573 0 0 1 .02 0 .86.573 0 0 1 .993.582.86.573 0 0 1-1.706 0 .86.573 0 0 1 .693-.581zm2.457.038a.86.573 0 0 1 .093 0 .86.573 0 0 1 .92.582.86.573 0 0 1-1.707 0 .86.573 0 0 1 .694-.582zm2.625.094a.86.573 0 0 1 1.012.563.863.575 0 0 1-1.725 0 .86.573 0 0 1 .713-.563zm2.775.075a.86.573 0 0 1 .018 0 .86.573 0 0 1 .994.581.86.573 0 0 1-1.706 0 .86.573 0 0 1 .694-.58zm-20.306 8.081c3.43-.11 15.409.76 21.094 1.613 5.003.751 13.767 2.378 14.062 2.606.073.057-.677 2.455-1.688 5.325s-1.932 5.55-2.044 5.944c-.153.538-.768.622-2.475.356-8.33-1.298-32.336-1.18-41.569.206-5.249.789-6.02.731-5.568-.375.206-.507.645-2.094.975-3.543l.6-2.644 5.568-2.888c3.061-1.594 6.472-3.625 7.575-4.519 1.103-.893 2.254-1.78 2.57-1.968.098-.06.409-.097.9-.113zm-26.958 14.22c.25 0 .874.288 1.593.75.94.604 2.138 1.1 2.663 1.107 2.612.032 4.048 3.712 6.262 16.069.312 1.738.679 3.665.807 4.293.204 1.001-.083 1.225-2.325 1.725-2.835.632-3.525.678-3.525.3 0-1.06-2.819-13.72-4.05-18.188-.84-3.042-1.538-5.72-1.538-5.962 0-.03.015-.061.038-.075a.13.13 0 0 1 .075-.019zm28.612 1.857h2.868l-.956 1.087c-1.698 1.95-2.51 2.135-3.694.825-.596-.66-1.087-1.358-1.087-1.556 0-.199 1.292-.356 2.869-.356zm6.075 0H117.343l-1.2 1.312c-1.47 1.627-1.568 1.627-3.038 0l-1.2-1.313zm8.212 0h1.256c.684 0 1.939.14 2.794.318l1.556.319-1.443 1.256c-.791.692-1.514 1.254-1.613 1.238s-.72-.74-1.369-1.594l-1.181-1.538zm8.456.375l1.257.318c.697.183 2.184.351 3.3.356h2.025l-1.52 1.294c-.836.713-1.642 1.302-1.8 1.313-.156.01-.962-.72-1.78-1.631l-1.482-1.65zm-30.208.16c.146.004.237.01.263.037.103.107-.321.827-.956 1.594l-1.163 1.387-1.462-1.2-1.463-1.219 2.438-.375c1.002-.156 1.906-.237 2.343-.225zm2.307.15c0-.05.728.585 1.612 1.406l1.613 1.5-2.982.168-2.98.17 1.368-1.576c.753-.868 1.369-1.619 1.369-1.669zm18.112 0c.213.014.42.136.675.356.441.38 1.02 1.137 1.293 1.669.429.832.299.945-.918.9-.777-.03-1.94-.205-2.588-.394l-1.181-.338 1.294-1.256c.683-.667 1.069-.961 1.425-.937zm-8.4.018c.56-.077.997.341 1.593 1.275.73 1.143.705 1.16-1.987 1.144l-2.719-.019 1.444-1.312c.715-.654 1.232-1.028 1.669-1.088zm16.969.188l1.237 1.218c1.356 1.324 1.595 2.132.6 1.988-.349-.05-1.606-.17-2.794-.281l-2.156-.206 1.556-1.35 1.556-1.37zm-35.138.675c.234 0 .958.572 1.593 1.275l1.144 1.275-2.456.337c-1.353.182-2.911.428-3.469.544-.753.157-.526-.26.881-1.613 1.042-1 2.072-1.818 2.307-1.818zm-3.75.075c.167-.003.319.016.45.037.83.135.75.348-.6 1.688l-1.557 1.537-.45-1.275c-.376-1.045-.266-1.343.6-1.687a4.85 4.85 0 0 1 1.557-.3zm45.956 1.762c.24-.015.29.18.15.563-.308.833-1.2 1.038-1.2.28 0-.258.345-.588.75-.75.122-.048.22-.088.3-.093zm-21.32 1.58c7.667 0 15.48.191 17.362.431 3.166.405 3.412.527 3.412 1.707 0 1.405-.428 1.472-4.556.73-1.255-.224-6.287-.703-11.194-1.068-8.518-.633-19.075-.29-28.481.919-1.942.25-2.4.154-2.4-.488 0-1.358 10.167-2.23 25.856-2.23zm-10.312 2.888h5.418l-1.2 1.312c-1.47 1.627-1.567 1.627-3.037 0l-1.181-1.312zm6.956 0l1.425 1.406c.783.78 1.425 1.503 1.425 1.594s-1.302.168-2.888.168h-2.887l1.462-1.593 1.463-1.575zm2.156 0h5.438l-1.2 1.312c-1.47 1.627-1.568 1.627-3.038 0l-1.2-1.312zm-12.825.075c.237.015.024.416-.694 1.425-.652.917-1.34 1.668-1.519 1.668-.177 0-.845-.606-1.5-1.33l-1.2-1.313h1.82c1 0 2.216-.164 2.7-.356.176-.071.314-.1.393-.094zm2.044.45l1.294 1.18c.714.653 1.373 1.231 1.462 1.276.09.044-1.086.162-2.625.262l-2.812.188 1.35-1.463 1.33-1.443zm17.362 0l1.462 1.593c1.594 1.73 1.434 1.805-2.194 1.107l-1.706-.32 1.219-1.2 1.219-1.18zm2.044 0h2.362c2.56 0 2.89.401 1.444 1.762-1.19 1.119-1.196 1.11-2.606-.45l-1.2-1.312zm-30.62.543c1.153-.01 1.118.099-.374 1.557-1.145 1.117-1.283 1.141-1.594.3-.373-1.009.52-1.843 1.969-1.857zm38.795.15c.389-.003 1.188.086 2.08.244l2.176.375-1.256 1.219-1.238 1.219-1.087-1.425c-.596-.787-1.01-1.5-.92-1.594.024-.024.115-.036.245-.038zm-35.962.48c.307-.052.579.199 1.106.694 1.005.946 1.017 1.032.15 1.388-.506.207-1.608.392-2.438.412l-1.5.038 1.369-1.425c.674-.7 1.005-1.054 1.313-1.107zm34.088.282c.352-.02.631.281 1.125.975l.918 1.275h-2.1c-1.367 0-2.022-.218-1.894-.62.109-.337.64-.907 1.182-1.274.32-.217.557-.345.768-.356zm6.412 1.35c.112.025.131.209.131.543 0 .984-.819 1.63-1.219.957-.155-.262.054-.767.47-1.125.306-.265.506-.4.618-.375zm-25.931 1.2c8.67-.01 18.313.566 23.906 1.612l1.65.319v4.406c0 3.224-.157 4.403-.619 4.35-.348-.04-2.58-.498-4.95-1.031-7.15-1.608-15.236-2.23-24.338-1.856-4.6.189-9.414.535-10.706.768l-2.362.432-.581-3.675c-.32-2.017-.502-3.733-.413-3.825.089-.093 2.312-.469 4.95-.825 3.397-.459 8.26-.67 13.462-.675z"/> - <path id="b" d="M124.76 217.76c-2.964 0-5.081 2.188-5.081 5.269 0 4.8 5.397 7.125 8.662 3.731s1.038-9-3.58-9zm-.02 1.24c2.19-.087 4.069 1.617 4.069 4.088 0 2.89-3.346 4.906-5.925 3.562-2.759-1.437-2.554-6.057.319-7.294a4.283 4.283 0 0 1 1.537-.356z"/> - <use xlink:href="#b" height="100%" width="100%" y="-.6" x="-20.065"/> - <path d="M88.012 145.28a1.723 1.764 0 0 0-1.594 1.762 1.725 1.766 0 1 0 3.45 0 1.723 1.764 0 0 0-1.856-1.762zm.113.619a1.16 1.143 0 0 1 1.124 1.144 1.163 1.146 0 1 1-2.324 0 1.16 1.143 0 0 1 1.2-1.144z"/> - </g> -</svg> diff --git a/img/flags/4x3/ad.svg b/img/flags/4x3/ad.svg deleted file mode 100644 index 07ae7e0..0000000 --- a/img/flags/4x3/ad.svg +++ /dev/null @@ -1,151 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" height="480" width="640" viewBox="0 0 640 480"> - <path fill="#d0103a" d="M0 0h640v480H0z"/> - <path fill="#fedf00" d="M0 0h435.2v480H0z"/> - <path fill="#0018a8" d="M0 0h204.8v480H0z"/> - <path d="M300.397 136.627c7.712 0 10.866 6.617 18.578 6.617 4.76 0 7.538-1.555 11.687-3.896 2.895-1.64 4.743-2.514 8.068-2.514 3.404 0 5.49 1.03 7.232 3.947.984 1.652 1.8 4.883 1.368 6.737-.82 3.516-1.325 5.044-2.727 8.29-.668 1.56-1.298 2.495-1.298 4.202 0 4.093 5.57 5.5 9.358 5.558.826.013 7.77.127 12.042-4.2-2.32-.1-4.913-1.896-4.913-4.214 0-2.624 1.844-4.4 4.343-5.157.475-.136 1.284.284 1.714.057.61-.316.323-1.003.866-1.433 1.244-.994 2.053-1.615 3.647-1.615 1.04 0 1.65.146 2.487.746.44.317.603.71 1.146.71 1.142 0 1.708-.725 2.85-.725.927 0 1.493.125 2.307.543.678.35.663 1.503 1.432 1.503.385 0 2.42-.828 3.48-.828 2.207 0 3.384.8 4.81 2.472.384.453.63 1.368 1.02 1.368.788 0 2.602.507 3.733 1.638.486.486.702.716 1.075 1.304.26.42.66 1.44 1.12 1.617.538.208.99.168 1.698.623 1.618 1.036 2.86 2.983 2.803 4.87-.02.633-.31 1.516-.48 2.12-1.883 6.58-6.363 8.67-10.886 14.323-1.923 2.41-3.44 4.33-3.44 7.418 0 .747.92 2.114 1.326 2.736-.248-1.45.415-3.233 1.948-3.316 2.1-.113 3.724 1.484 4.007 3.564.056.487-.125 1.327-.332 1.824 1.13-.746 2.62-1.25 3.978-1.41.736-.078 1.16-.1 1.907-.082 3.357.083 7.062 1.97 9.31 3.88 6.88 5.844 7.71 14.396 7.336 16.77-.835 5.278-.31 14.828-13.8 18.636 2.496 1.05 4.193 2.927 4.193 5.234 0 2.51-1.924 4.66-4.434 4.66-1.436 0-2.432-.352-3.438-1.358-2.805 2.804-3.347 5.665-3.347 9.634 0 2.375.453 3.777 1.448 5.926 1.052 2.273 1.81 3.607 3.71 5.247 1.006-1.516 2.07-2.625 3.89-2.625 1.764 0 3.257.566 3.98 2.172.215.486.023.882.272 1.357.316.61.848.746 1.176 1.357.51.94.01 1.742.452 2.715.283.633.905.724 1.176 1.357.43.972.543 1.64.543 2.714 0 3.008-2.737 5.157-5.745 5.157-.905 0-1.402-.362-2.307-.272 1.72 1.72 3.03 2.466 4.343 4.525 1.9 2.974 2.375 5.09 2.804 8.594.08.655.09 1.05.09 1.718 0 4.5-.7 7.193-2.713 11.218-1.924 3.856-3.563 5.994-7.058 8.504-5.45 3.924-9.42 5.055-16.013 6.333-4.23.814-6.65 1.176-10.948 1.447-5.496.35-8.628.362-14.113.724-7.193.486-12.18 1.504-17.28 6.604 2.408 1.764 4.07 3.494 4.07 6.47 0 3.052-1.888 5.234-4.794 6.196-.68.226-1.176.022-1.81.362-.757.395-.723 1.266-1.447 1.718-1.28.815-2.274.996-3.8.996-2.692 0-4.524-.634-6.424-2.534-2.206 1.832-2.952 3.484-5.43 4.886-.813.452-1.23 1.085-2.17 1.085-1.48 0-2.16-.938-3.347-1.81-1.89-1.38-2.896-2.295-4.434-4.07-2.25 1.346-3.63 2.443-6.243 2.443-1.606 0-2.623-.227-3.98-1.086-.713-.44-.826-1.097-1.538-1.538-.747-.464-1.37-.294-2.172-.633-3.02-1.3-4.976-3.54-4.976-6.83 0-2.884 1.82-4.716 4.433-5.926-5.01-5.01-9.94-5.88-17.008-6.333-5.462-.35-8.572-.362-14.023-.724-4.332-.294-6.74-.735-11.04-1.447-3.244-.532-5.167-.7-8.14-2.08-10.235-4.773-16.76-11.32-18.095-22.528-.113-.96-.09-1.515-.09-2.488 0-5.835 2.295-9.397 6.423-13.525-1.063-.25-1.775.102-2.805-.27-2.578-.94-4.433-2.727-4.433-5.475 0-1.017.046-1.696.543-2.578.35-.623 1.018-.747 1.176-1.448.203-.928-.07-1.584.36-2.443.284-.578.815-.69 1.087-1.268.893-1.854 2.013-3.347 4.07-3.347 1.765 0 2.896.927 3.8 2.443 1.72-.792 2.194-2.08 3.167-3.71 1.617-2.702 2.352-4.59 2.352-7.734 0-2.194-.215-3.484-.904-5.564-.498-1.493-.702-2.51-1.81-3.62-1.006 1.007-2.002 1.358-3.438 1.358-2.872 0-5.066-2.465-5.066-5.338 0-2.137 1.052-3.72 2.986-4.614-1.55-1.334-2.895-1.447-4.614-2.533-2.613-1.65-3.53-3.392-5.248-5.97-1.12-1.686-1.413-2.862-1.99-4.795-.69-2.33-1.086-3.72-1.086-6.152 0-.633.012-1.007.09-1.63.645-4.907 1.528-7.983 4.615-11.85 1.833-2.296 3.077-3.71 5.79-4.885 2.308-.995 3.687-1.72 6.198-1.72.758 0 1.2 0 1.945.092 1.154.147 1.89.25 2.895.814.385.215 1.086.86 1.086.407 0-.52-.272-.79-.272-1.31 0-2.082 1.493-3.982 3.574-3.982 1.504 0 2.115 1.324 2.85 2.625.475-.792.723-1.335.723-2.262 0-3.438-1.844-5.19-3.98-7.87-4.66-5.825-10.496-8.55-10.496-16.014 0-2.228 1.075-3.744 2.986-4.886.554-.328 1.3 0 1.842-.347.463-.294.41-.893.704-1.368.464-.736.874-1.052 1.52-1.617 1.062-.927 1.995-.65 3.17-1.464.59-.408.728-.937 1.18-1.48 1.312-1.583 2.49-2.347 4.56-2.347 1.04 0 1.623.006 2.585.388.328.126.94.62 1.02.525.208-.25.77-.844 1.437-1.16.87-.42 1.224-.58 2.196-.58 1.108 0 1.835.62 2.943.62.407 0 .5-.406.83-.62.983-.668 1.55-1.045 2.748-1.045 1.153 0 1.79.38 2.763 1.003.916.576 1.048 1.35 1.986 1.892.52.305.96.17 1.538.362 2.58.86 4.525 2.578 4.525 5.292 0 1.47-.35 2.52-1.448 3.482-.87.77-1.696.633-2.804.995 3.596 2.872 6.725 3.585 11.316 3.585 4.206 0 9.35-1.72 9.35-5.926 0-1.957-1.08-3.008-1.85-4.806-1.38-3.2-2.128-5.083-2.128-8.566 0-2.76.3-4.433 1.907-6.672 1.65-2.307 3.667-2.845 6.505-2.845z" fill="#c7b37f"/> - <g fill="none" stroke="#703d29"> - <path d="M272.378 159.014c.276 1.045 1.12 2.023 2.444 2.437.796.25 2.638.15 3.832-1.393.968-1.25.894-2.8.532-4.03-.234-.796-.877-1.565-1.726-2.22l-5.08 5.157-.002.05z" stroke-width=".666" stroke-linejoin="round"/> - <path d="M401.03 236.122c-1.194-2.886-4.28-1.593-4.47 0-.436 3.668 2.78 4.776 5.068 4.18 1.133-.296 1.963-1.01 2.493-1.94.6-1.05.78-2.42.39-3.728a4.9 4.9 0 0 0-.847-1.652 4.973 4.973 0 0 0-1.28-1.21c-.88-.56-1.84-.617-3.343-.617-5.573 0-10.45 6.585-12.087 13.425-.54 2.253-1.28 7.278-.253 12.042 1.094 5.075 3.288 8.59 5.862 11.254 1.393 1.443 3.293 2.728 5.753 4.12.76.428 2.765 1.318 4.158 1.716 1.43.41 2.752.35 3.942.09 3.302-.716 4.837-3.787 3.174-6.93-1.363-2.573-5.375-3.98-7.266-.696-.16.278-.41.885-.402 1.542.01.876.374 1.93 1 2.33 1.436.914 3.736.655 3.63-1.882" stroke-width=".664" stroke-linecap="round"/> - <path d="M383.802 273.965c1.118-1.316 3.684-3.29 6.62-3.65 2.978-.366 5.566.5 8.21 1.923 5.157 2.774 8.034 5.756 9.95 11.29.487 1.405.89 3.523.835 5.773-.09 3.588-1 7.51-1.98 9.404-.852 1.654-3.084 8.956-15.324 13.996-7.143 2.94-18.112 3.618-25.676 3.917-10.404.41-20.002.796-25.576 7.663" stroke-width=".817"/> - <g stroke-width=".717"> - <path d="M386.4 285.728c-.298-1.095-.022-2.144.846-3.334 1.16-1.59 3.632-2.14 5.872-.895.75.415 1.688.963 2.537 2.088.32.426.864 1.113 1.145 1.593.677 1.16.956 2.108 1.09 2.49 2.46 6.993-1.45 14.572-6.564 17.613-3.972 2.362-8.71 3.415-14.38 4.08-2.55.3-4.004.28-6.568.398-2.063.097-3.845.062-5.523.042-1.38-.017-2.69-.01-4.03-.04-2.186-.052-4.448-.103-7.216.1-2.913.21-5.103.285-7.564.695-1.608.268-3.492.527-5.467.97-.594.133-1.195.24-1.8.423l-1.203.368c-3.566 1.088-7.03 2.413-9.765 4.174-.844.544-1.798 1.088-2.48 1.733-.426.4-.943.804-1.36 1.214-1.914 1.882-3.87 3.92-4.328 6.68-.084.51-.084 1.042-.084 1.604 0 1.79 1.457 4.23 5.388 5.026m5.531-170.12c.822 1.488 1.275 2.393.796 3.93-.542 1.744-1.778 2.788-3.533 2.788-3.98 0-6.322-4.713-4.528-7.713 3.185-5.324 9.305-2.334 14.977.303-.274-1.365-.752-1.81-.702-3.5.124-4.202 3.24-6.108 4.483-9.988.742-2.312 1.037-4.32-.655-5.962-1.477-1.434-3.188-1.412-5.116-.656-3.852 1.51-8.478 5.848-16.622 5.968-8.143-.12-12.808-4.46-16.66-5.968-1.926-.756-3.638-.778-5.115.656-1.692 1.642-1.397 3.65-.656 5.962 1.244 3.88 4.36 5.786 4.483 9.987.05 1.692-.428 2.136-.7 3.5 5.67-2.636 12.03-5.894 14.976-.302 1.642 3.116-.547 7.713-4.528 7.713-1.755 0-2.987-1.12-3.533-2.787-.486-1.485 0-2.785.796-3.93"/> - <path d="M314.56 159.866c1.538 1.176 2.624 2.623 2.443 4.975-.197 2.553-.815 3.168-2.805 4.525m2.397-3.798c-.09 1.538-.723 2.533-2.26 3.166" stroke-linecap="round"/> - </g> - <path d="M276.736 153.274l.697.497.746.797.496.996.25.846.05 1.093-.05.746-.25.845-.497.597-.598.647-.846.447-1.095.25-.944.148-.995-.448-.895-.646-.547-.796-.398-.995v-.4l4.876-4.626z" fill="#c7b37f" stroke="none"/> - <path d="M275.206 157.165c-.306-1.652-2.237-1.99-2.985-1.015-1.15 1.502-.31 4.004 2.034 4.737.796.25 2.637.15 3.83-1.394.97-1.25.895-2.8.533-4.03-.234-.796-.873-1.49-1.726-2.14-2.72-2.07-7.115-1.592-8.558 1.89-1.862 4.494 2.19 7.863 5.92 10.4 4.7 3.195 10.052 3.776 14.083 3.733 9.156-.1 16.122-4.48 20.65-6.966 1.055-.58 2.14-.46 2.687.2.616.744.606 1.946-.25 2.735" stroke-width=".666" stroke-linecap="round"/> - <path d="M248.064 281.184l-2.04.746-2.09 1.593-.896 1.244-1.144 1.99-.498 1.493-.398 1.84-.2 1.394m19.01-10.102l-.15 1.792-.298 1.244-.896 2.14-1.393 1.84-1.492 1.195-1.094.547-1.543.348" stroke-width=".676"/> - <path d="M319.744 329.107c-.37 1.656-1.922 3.55-5.3 4.235l-.655.136" stroke-width=".766"/> - <path d="M404.218 276.205c2.137 1.993 3.638 4.42 4.792 7.75.487 1.404.89 3.523.834 5.773-.09 3.587-1 7.507-1.98 9.403-.852 1.655-3.083 8.957-15.324 13.996-7.143 2.94-18.112 3.62-25.676 3.918-10.254.404-19.726.785-25.332 7.37" stroke-width=".868"/> - <path d="M387.488 282.848c.76-1.038 3.53-2.35 5.77-1.107.737.41 1.61.928 2.377 2.076" stroke-width=".595"/> - <path d="M401.606 273.786c.5.192 1 .366 1.436.49 1.43.41 2.776.44 3.942.09 2.83-.848 4.647-3.492 3.174-6.93-.342-.796-.996-1.56-1.74-2.133" stroke-width=".868"/> - <path d="M240.282 199.763c-1.9 1.176-3.317 1.455-4.795 3.167-1.472 2.914-2.05 4.48-2.624 6.816m46.1-51.692c0 1.72-1.266 2.805-2.985 3.167" stroke-width=".666" stroke-linecap="round"/> - <path d="M397.114 192.02c4.73-.097 18.47 3.608 18.567 19.76.098 15.952-9.844 18.558-13.827 19.62" stroke-width=".638"/> - <path d="M398.355 192.02c8.156-.355 16.57 5.648 16.942 20.63.29 11.705-8.01 17.014-11.995 18.076" stroke-width=".664"/> - <path d="M393.81 248.422l.127-1.6.533-2.544.754-1.978.848-1.633 1.1-1.32m7.782-3.397l-.125 1.566-.45 1.07-.695 1.02-.796.597-1.22.448-1.07.076-.796-.125M385.49 187.79l.35-1.693.746-1.567.97-1.568 1.667-2.14 1.32-1.467 2.138-2.165 1.842-1.866 1.17-1.343 1.542-1.865 1.368-2.065.822-1.692.447-2.19.137-2.714-.248-.787m-12.279 128.174l1.617-.324 1.218-.647.672-.67.472-.772.324-1.244.025-.87m-158.248-12.152l1.194.1 1.542-.125 1.543-.547m5.001-36.548l-.2 1.393-.323.622-.474.597-.647.498-.722.323-.945.15-.647.05m9.903-15.62l-.348 2.164-.424.946-.87 1.194-1.17.896-1.194.597-2.314.572m15.299-39.758l-.447 1.294-.55.946-.745 1.045-1.045.947-1.244.597-1.045.248-.646-.05m.378-6.198l.025.995" stroke-width=".564"/> - <g stroke-width=".632"> - <path d="M254.285 224.058a6.855 6.855 0 0 1-2.09 1.298m150.519 44.826c.085.093.372.14.472.2 1.418.845 4.21-.21 3.39-2.4" stroke-linecap="round"/> - <path d="M397.786 239.603c1.006 1.315 2.904 1.657 4.405 1.265 1.134-.296 1.964-1.01 2.494-1.94.598-1.05.78-2.42.39-3.727a4.907 4.907 0 0 0-.848-1.65c-.426-.563-.955-1.16-1.364-1.428-.11-.07-.217-.167-.332-.245m6.423 34.016a3.94 3.94 0 0 0 .066-.72c0-1.158-.485-2.22-1.286-2.934-.274-.245-.54-.624-.87-.79m.476.47c-.046-1.864-1.57-3.197-3.462-3.53m-4.172 2.84c-.435-.356-.9-.657-1.307-1.082-2.45-2.563-4.292-6.352-4.316-10.674-.024-4.143 1.642-8.36 3.582-10m-56.5 84.648l1.79-1.643 1.245-.946 2.34-1.443 2.188-1.044 1.543-.398 3.086-.696 3.582-.548m-29.509 19.364c-1.293 1.99-4.378 4.976-7.613 6.17-3.234-1.194-6.32-4.18-7.613-6.17"/> - <path d="M314.42 332.627c-.406 1.503-1.143 2.96-2.22 4.13" stroke-linecap="round"/> - <path d="M314.74 330.54l-.45 2.19m-2.335 4.18l-.945.944-1.692.946-1.94.597m-5.644-177.829c.243-.757.49-1.326.455-2.57-.125-4.2-3.24-6.106-4.484-9.987-.74-2.31-1.036-4.32.656-5.96 1.477-1.434 3.188-1.412 5.116-.657 3.85 1.51 8.517 5.848 16.66 5.97-8.143-.122-12.81-4.46-16.66-5.97-1.928-.755-3.798-.976-5.275.457-1.692 1.642-1.238 3.85-.497 6.16 1.244 3.882 4.2 5.787 4.323 9.99.036 1.242-.292 1.81-.534 2.568m18.621-13.492c8.01-.423 14.877-5.806 17.092-6.245 1.975-.392 3.078-.215 4.526 1.102-1.45-1.317-3.1-1.276-4.973-.54-3.85 1.51-8.477 5.847-16.62 5.968m79.598 112.886c-3.334-2.388-6.19-6.948-6.22-12.335-.023-4.144 1.642-8.36 3.582-10.002m-69.95 97.575c-1.295 1.99-4.38 4.976-7.614 6.17-3.234-1.194-6.32-4.18-7.613-6.17"/> - <path d="M306.67 163.674c.832-.462 1.605-.9 2.318-1.292 1.055-.58 2.323-.458 2.87.202.615.745.71 2.037-.145 2.826" stroke-linecap="round"/> - <path d="M294.707 169.274c5.496-1.147 9.975-3.61 13.36-5.502m32.273 164.183c.454.31.746.955.746.955.125.3.288.584.333.85.257 1.522-.74 2.47-1.974 2.614-1.695.197-2.967-.81-3.51-2.03m-41.509-161.352c5.496-1.147 9.974-3.61 13.36-5.502m97.577 106.904c-1.045.402-1.616.348-2.916-.23-.534-.236-1.145-.603-1.86-1.01-2.548-1.446-5.574-3.727-8.41-9.05a18.812 18.812 0 0 1-1.71-4.476c-.27-1.11-.458-2.208-.5-3.335-.068-1.92.14-3.925.618-6.222.79-3.79 1.744-5.85 4.08-9.055 1.15-1.576 2.14-2.537 4.28-2.587M255.25 195.123c1.78 1.512 2.64 3.384 2.64 5.722 0 3.1-2.594 8.16-8.963 9.952-2.44.686-4.856.132-6.317-.756"/> - <path d="M256.294 205.62c1.145.795 1.593 1.69 1.593 3.244 0 1.065-.69 2.446-1.86 3.754-1.92 2.142-5.173 3.962-8.78 4.007-1.955.024-3.986-.384-6.03-1.75-2.184-1.46-3.333-3.434-3.83-5.375"/> - <path d="M256.192 212.294c1.297 1.192 1.695 2.684 1.695 4.563 0 2.745-1.115 4.864-3.68 7.108-.573.502-1.22.972-1.94 1.395m129.429-22.077v3.532m-.282-4.402v4.975m.282-15.746v6.518m-.282-7.958v8.907m-1.9 81.961c-1.236 2.453-2.223 3.742-4.18 5.67-1.975 1.947-3.343 2.84-5.822 4.08-2.414 1.21-3.934 1.596-6.568 2.19-2.632.595-4.17.725-6.867.847-2.47.112-3.874.008-6.342-.163-2.64-.183-4.107-.55-6.744-.783-2.178-.19-3.408-.366-5.595-.36-2.248.006-3.536.02-5.75.41-2.062.366-3.232.657-5.174 1.444-2.685 1.088-5.72 2.985-6.368 3.83-.647-.845-3.683-2.742-6.37-3.83-1.94-.787-3.11-1.078-5.174-1.443-2.214-.39-3.5-.405-5.75-.41-2.186-.007-3.417.17-5.595.36-2.638.233-4.103.6-6.744.784-2.47.17-3.872.275-6.343.163-2.696-.122-4.235-.25-6.867-.846-2.633-.596-4.153-.98-6.568-2.19-2.48-1.238-3.847-2.133-5.822-4.08-.213-.21-.415-.412-.607-.61m42.168 53.367l1.79-.223m30.274-2.355l1.808-.173 1.722-.69 1.205-.73 1.637-1.94.345-.73.258-1.68.086-.774m46.91-136.695c.777-2.64-.17-5.43-2.73-5.354M257.786 234.72c-.65 2.194-2.044 3.693-3.597 4.668m3.641-46.716c-.64 1.85-1.81 3.17-3.663 4.007-1.847.833-3.985.054-5.13-.828"/> - <path d="M243.808 202.368c1.53.802 3.084-.374 2.766-2.365-.15-.933-1.155-2.112-2.517-2.198" stroke-linecap="round"/> - <path d="M250.157 286.63c.33.31.4.714.846.796.67.125 1.194.374 1.866-.522.827-1.104.382-2.82-.48-3.902-.922-1.157-3.592-2.18-5.83-.936-.75.416-1.69.964-2.54 2.09-.32.426-.863 1.113-1.143 1.592-.678 1.16-.956 2.107-1.09 2.488-2.05 5.823.384 11.945 4.152 15.676"/> - <path d="M340.218 327.827c.408.426.646.796.646.796.126.3.23.584.274.85.258 1.522-.74 2.47-1.973 2.614-1.695.197-2.83-.802-3.37-2.02" stroke-linecap="round"/> - <path d="M389.44 154.758c3.346.408 6.262 3.602 6.262 7.035 0 4.43-1.492 6.078-3.824 9.246-2.495 3.39-10.648 9.602-10.648 16.668 0 4.28 1.194 7.015 4.28 8.408 1.988.9 4.314-.074 5.373-1.03 2.587-2.34 1.553-6.44-1.144-6.93-3.286-.598-3.903 4.573-.698 4.23m17.826 69.061c-.294-1.772-1.8-3.122-3.615-3.122-2.024 0-3.666 1.68-3.666 3.756 0 1.016.394 1.938 1.034 2.615"/> - <path d="M383.866 195.123c-1.78 1.512-2.638 3.384-2.638 5.722 0 3.1 2.592 8.16 8.962 9.952 2.44.686 4.772.62 6.233-.267M240.39 200.192c-1.522.508-3.423 1.458-4.83 3.453-1.19 1.683-1.882 4.023-2.31 6.07-.19.896-.413 3.733.16 6.663.424 2.163 1.317 4.177 2.306 5.636a7.94 7.94 0 0 0 1.037 1.236c.33.33.802.624 1.135.88m64.012 92.043c4.85 2.15 8.404 3.76 11.418 8.518.945 1.494 1.194 3.634 1.194 4.877 0 2.687-1.095 5.723-3.334 7.613-2.078 1.755-4.13 2.29-6.667 2.04-1.924-.188-3.73-1.592-4.03-2.587m-46.478-112.506c2.737 2.14 3.88 4.215 3.88 7.514 0 3.78-1.84 6.12-3.98 7.463"/> - <path d="M251.514 236.422c4.08 5.076 6.245 8.088 6.37 14.132.115 5.672-1.693 9.553-5.077 13.634" stroke-linecap="round"/> - <path d="M329.747 169.325c.742-.487 1.286-1.267 1.6-2.23.48-1.49.49-2.757-.305-3.902.982 1.285 1.072 2.37.796 3.93-.176.994-.81 1.517-1.6 2.23m51.458 86.161v16.154h.043c0 .01-.007 1.53-.137 2.488a34.413 34.413 0 0 1-.274 1.73"/> - <path d="M381.414 253.958v17.423h.043c0 .013-.005 1.53-.135 2.49-.136 1-.28 1.847-.467 2.64m.559-42.949v14.53m.282-13.385v11.817m0-26.844v8.858m-.282-9.901v10.92m.282-18.933v3.436m-.282-4.134v4.977m-1.844 65.193c-.105.224-.218.455-.338.694-1.235 2.454-2.222 3.743-4.18 5.672-1.974 1.947-3.343 2.838-5.82 4.08-2.415 1.21-3.936 1.595-6.57 2.19-2.63.594-4.17.724-6.866.846-2.472.11-3.874.007-6.342-.163-2.642-.183-4.107-.55-6.744-.783-2.18-.19-3.41-.367-5.596-.362-2.248.007-3.536.02-5.75.412-2.062.365-3.232.656-5.174 1.443-2.687 1.088-5.722 2.985-6.37 3.83-.646-.845-3.682-2.742-6.368-3.83-1.942-.787-3.112-1.078-5.175-1.443-2.214-.392-3.502-.406-5.75-.412-2.186-.006-3.417.17-5.595.362-2.638.232-4.103.6-6.745.783-2.468.17-3.87.274-6.342.163-2.695-.122-4.235-.25-6.866-.846-2.635-.597-4.154-.982-6.57-2.19-2.48-1.24-3.847-2.133-5.82-4.08-1.035-1.02-1.798-1.86-2.47-2.787m-2.009-3.189c.425 3.163-.905 6.272-2.256 7.702-.846.896-2.688 2.607-4.976 2.637-3.78.05-4.91-2.55-5.14-3.184"/> - <path d="M255.616 278.848c.702.693 1.325 1.54 1.852 2.538.945 1.79.654 4.787-.095 6.17a4.427 4.427 0 0 1-.304.478m-20.243 18.014c2.248 2.36 5.65 4.923 10.873 7.073 7.142 2.942 18.11 3.62 25.675 3.918 10.057.397 19.323.81 24.966 7.04m17.366-4.073c1.662 1.636 3.358 3.39 4.074 5.63m-7.345 11.452a8.22 8.22 0 0 1-.693.66c-2.078 1.753-4.13 2.288-6.668 2.04-1.924-.19-3.78-1.632-4.278-2.577m-5.353-2.907c.093.127.19.25.293.37 1.208 1.406 3.115 2.288 5.106 2.452m26.87-.076c-1.294 1.99-4.38 4.975-7.613 6.17-3.235-1.195-6.32-4.18-7.614-6.17l-.302-.465m15.58.452c.23.25.478.488.74.71 2.078 1.754 4.13 2.288 6.668 2.04 1.925-.19 3.453-1.475 4.07-2.588 0 0 .347-.373.444-.73"/> - <path d="M339.04 336.634l-.743 1.194-1.13.937-1.71.71-1.55.065"/> - <path d="M343.06 325.26c.915.703 1.814 1.767 2.302 2.903.314.73.46 1.533.505 2.366a5.854 5.854 0 0 1-1.423 4.142c-1.278 1.49-3.272 2.39-5.395 2.475a5.482 5.482 0 0 1-.47 0m.186-.282c-2.03.08-3.843-.788-5.18-2.16m63.675-67.869c-1.582-1.46-3.222-3.48-4.804-6.45a18.803 18.803 0 0 1-1.71-4.474c-.27-1.11-.458-2.208-.5-3.334-.068-1.92.14-3.925.618-6.222.79-3.792 2.203-6.726 4.08-9.056.64-.795 1.38-1.786 2.08-2.232m-1.376-75.817c2.538.2 4.89 2.932 4.858 5.61-.045 3.89-1.35 5.497-4.41 9.31-2.637 3.283-10.55 9.055-10.35 14.578.036.98.564 1.994 1.154 2.81m-3.162 3.462c.562.556 1.242 1.014 2.052 1.38 1.447.654 3.073.317 4.26-.283m-21.173-43.221c.85.58 1.716 1.466 2.185 2.6 1.862 4.492-2.19 7.86-5.92 10.4-2.677 1.818-5.565 2.79-8.3 3.28"/> - <path d="M364.602 161.555c-.905-.01-1.98-.267-3.15-1.497-.268-.283-.583-.658-.707-.994m-14.857 4.904c-.473-.237-.98-.582-1.32-.962-.887-.993-1.48-2.336-.795-4.386.632-1.897 3.677-7.216 3.827-10.898.228-5.625-1.936-8.945-5.32-10.24"/> - <path d="M347.315 146.464l-.132 2.115-.573 2.16-1.1 2.95-.84 1.896-.88 1.895-.44 1.323-.177.97.133.925m38.012 126.278c.175.423.597.836.597.836.647 1.08 3.162 2.98 5.45 3.01 3.78.05 4.68-2.598 4.777-3.186.477-2.885-.51-3.675-1.99-4.488 0 0-.872-.45-1.917-.277" stroke-linecap="round"/> - <path d="M236.947 274.35c-1.335.34-2.59.35-3.685.02-2.83-.85-5.124-3.56-3.954-6.93m13.386-31.824c.284.285.375.71.418 1.07.437 3.667-2.777 4.736-5.066 4.14-1.134-.297-2.485-1.35-3.015-2.28a4.707 4.707 0 0 1-.614-2.303m22.057-23.667c.573.527.97 1.112 1.236 1.764m-1.134-8.516c.53.37.912.84 1.168 1.307"/> - <path d="M257.862 210.522c-.31.762-.843 1.584-1.555 2.38-1.92 2.14-5.173 3.96-8.778 4.005-1.957.025-3.988-.384-6.03-1.75-2.186-1.46-3.61-3.538-4.082-5.578" stroke-linecap="round"/> - <path d="M255.43 195.283c1.108.942 1.958 2.142 2.367 3.39"/> - <path d="M257.83 203.238c-.885 2.928-3.526 6.548-8.622 7.84-2.435.616-5.57-.155-6.64-1.066" stroke-linecap="round"/> - <path d="M240.038 202.554c.267 2.637 2.032 4.613 5.377 4.677 4.704.09 7.564-6.767 3.384-11.58"/> - <path d="M229.453 225.53c.687.862 1.496 1.64 2.323 2.327 1.677 1.396 3.655 2.625 5.934 3.298m5.28.493c4.203-.505 6.573-3.638 6.103-7.302-.358-2.793-2.92-4.94-4.662-5.064" stroke-linecap="round"/> - <path d="M249.85 188.11c1.823-.07 2.86 1.588 2.844 2.984"/> - <path d="M249.42 163.078c1 2.614 2.947 4.657 5.032 5.824m144.178 30.964c1.72 2.354.594 6.996-4.082 7.084-1.827.035-3.475-.978-4.44-2.51" stroke-linecap="round"/> - <path d="M381.696 169.12v15.8"/> - <path d="M243.757 202.33c1.443 1.044 3.296-.72 2.58-2.592-.485-1.264-2.282-2.628-4.77-.937-2.747 1.87-1.99 7.764 3.285 7.863 4.703.09 7.563-6.767 3.383-11.58-4.02-4.63-11.345-3.546-16.12.254-2.034 1.617-5.873 5.853-7.067 11.625-.372 1.797-.612 3.272-.584 5.075.02 1.188.13 2.52.484 4.18.72 3.354 1.9 5.81 3.076 7.517.45.654.862 1.197 1.303 1.638.82.82 1.064 1.253 1.89 1.94 2.704 2.25 6.186 4.014 10.45 3.832 4.677-.2 7.365-3.483 6.867-7.364-.483-3.763-4.282-5.636-6.768-3.88-1.692 1.193-2.293 4.89.697 5.77 1.692.498 3.184-1.64 1.99-2.885m129.563-71.951c2.7-1.466 4.78-1.195 6.32.94 1.672 2.322 1.91 5.41 1.542 7.22-.547 2.687-1.324 3.803-3.46 5.752" stroke-linecap="round"/> - <path d="M380.53 152.032c3.086-2.04 6.427-1.174 8.26 1.543 1.345 1.99 1.688 3.655 1.593 6.12-.162 4.224-2.805 7.572-5.722 9.205" stroke-linecap="round"/> - <path d="M395.06 159.15c2.537.198 4.577 2.495 4.577 5.174 0 3.83-1.07 5.493-4.13 9.305-2.637 3.283-10.55 9.055-10.35 14.578.076 2.088 1.836 4.056 3.355 4.166"/> - <path d="M395.36 202.33c-1.443 1.044-3.284-.643-2.488-2.434.55-1.237 2.19-2.786 4.677-1.095 2.747 1.87 1.99 7.764-3.285 7.863-4.704.09-7.883-6.59-3.383-11.58 4.106-4.554 11.72-3.662 16.498.138 2.032 1.618 6.122 6.06 7 11.887 1.06 7.053.924 15.728-6.36 21.07-2.93 2.148-6.988 3.125-10.57 2.968-4.678-.205-7.365-3.483-6.867-7.365.482-3.762 4.105-5.355 6.767-3.88 2.764 1.53 2.28 5.417-.697 5.77-1.75.21-3.184-1.64-1.99-2.885" stroke-linecap="round"/> - <path d="M392.87 199.898c.776-3.49 3.767-3.816 6.18-3.78 6.59.096 11.148 7.912 11.224 15.473.096 9.552-4.054 15.176-11.035 15.475-1.807.078-4.918-.782-4.972-2.985"/> - <path d="M396.928 198.336c6.95 1.544 9.39 7.805 9.39 13.78 0 4.875-.484 11.535-9.97 13.877" stroke-linecap="square"/> - <path d="M408.39 265.33a3.906 3.906 0 1 0-6.264 2.343"/> - <path d="M394.45 259.41c1.31 1.942 2.892 4.1 6.235 5.913m-1.255 10.549c-3.276-2.15-9.496-4.967-15.12-2.194-2.085 1.03-3.482 2.302-4.27 4.378-1.422 3.737.166 7.856 1.783 9.567.846.896 2.688 2.607 4.976 2.637 3.78.05 4.68-2.596 4.776-3.184.448-2.737-1.145-3.832-1.99-4.13-.65-.23-2.76-.17-3.208 1.322-.15.497-.176 1.365.222 2.012" stroke-linecap="round"/> - <path d="M340.474 328.422c1.045 2.14-.144 3.215-1.593 3.384-2.138.25-3.283-1.443-3.432-2.986-.242-2.5 1.866-4.767 4.38-4.727 2.26.037 4.104 1.497 4.968 3.505.314.73.46 1.533.504 2.367a5.852 5.852 0 0 1-1.422 4.143c-1.28 1.49-3.273 2.39-5.395 2.475-4.224.17-7.513-3.782-7.513-7.812 0-7.712 11.438-11.918 15.972-13 5.573-1.33 8.964-1.828 17.913-2.325 3.583-.2 6.207-.098 10.15-.507 3.53-.366 5.375-.538 9.007-1.384 4.533-1.055 8.758-2.936 12.54-6.37 2.91-2.643 4.577-4.527 5.925-8.16 1.164-3.133 1.698-9.34-1.248-13.93-2.605-4.06-6.22-6.166-10.35-6.763-3.732-.54-7.004 1.07-8.958 4.773-.945 1.79-.654 4.787.095 6.17.647 1.194 2.494 2.955 4.782 2.985 3.78.05 4.68-2.596 4.776-3.184.447-2.737-1.145-3.832-1.99-4.13-.65-.23-2.76-.17-3.208 1.322-.15.497-.176 1.365.222 2.012" stroke-linecap="round"/> - <path d="M337.216 316.173c-4.85 2.15-8.403 3.76-11.417 8.518-.946 1.494-1.195 3.634-1.195 4.877 0 2.687 1.094 5.723 3.334 7.613 2.076 1.755 4.13 2.29 6.666 2.04 1.925-.188 3.732-1.592 4.03-2.587" stroke-linecap="round"/> - <path d="M385.107 224.128c-2.268.757-3.88 4.215-3.88 7.514 0 3.78 1.84 6.12 3.98 7.463"/> - <path d="M387.597 236.422c-4.08 5.076-6.245 8.088-6.37 14.132-.116 5.672 1.693 9.553 5.076 13.634" stroke-linecap="round"/> - <path d="M365.85 152.05c.105-.155.22-.327.35-.517 1.692-2.488 4.68-3.143 6.866-1.493 2.638 1.99 3.304 5.378 2.588 8.957-.448 2.24-1.967 4.104-4.048 5.453"/> - <path d="M265.1 150.835c-2.587-1.194-4.717-.964-6.32.94-1.84 2.19-1.91 5.41-1.54 7.22.546 2.687 1.323 3.803 3.46 5.752" stroke-linecap="round"/> - <path d="M258.58 152.032c-3.086-2.04-6.427-1.174-8.26 1.543-1.344 1.99-1.688 3.655-1.593 6.12.162 4.224 2.806 7.572 5.722 9.205"/> - <path d="M249.677 154.758c-3.346.408-6.016 3.244-6.016 6.678 0 4.428 1.09 6.22 3.58 9.603 2.492 3.39 10.647 9.602 10.647 16.668 0 4.28-1.194 7.015-4.28 8.408-1.99.9-4.314-.074-5.373-1.03-2.588-2.34-1.553-6.44 1.144-6.93 3.284-.598 3.9 4.573.697 4.23"/> - <path d="M244.05 159.15c-2.537.198-5.033 2.38-5.033 5.06 0 3.83 1.526 5.607 4.586 9.418 2.638 3.284 10.088 8.942 9.89 14.465-.076 2.09-1.48 4.642-2.873 4.344"/> - <path d="M238.08 236.122c1.194-2.886 4.28-1.593 4.47 0 .436 3.668-2.778 4.776-5.067 4.18-1.134-.296-1.963-1.01-2.493-1.94-.598-1.05-.78-2.42-.39-3.728a4.903 4.903 0 0 1 .848-1.652 4.97 4.97 0 0 1 1.28-1.21c.88-.56 1.838-.617 3.342-.617 5.573 0 10.45 6.585 12.087 13.425.54 2.253 1.28 7.278.254 12.042-1.094 5.075-3.288 8.59-5.86 11.254-1.395 1.443-3.295 2.728-5.755 4.12-.76.428-2.764 1.318-4.158 1.716-1.43.41-2.775.44-3.94.09-2.83-.848-4.648-3.493-3.175-6.93 1.147-2.676 5.374-3.98 7.265-.696.16.278.41.885.402 1.542-.01.876-.375 1.93-1 2.33-1.438.914-3.737.655-3.63-1.882" stroke-linecap="round"/> - <path d="M233.754 270.394c1.045.402 1.616.348 2.916-.23.534-.236 1.145-.603 1.86-1.01 2.548-1.446 5.573-3.727 8.41-9.05a18.803 18.803 0 0 0 1.71-4.476c.27-1.11.458-2.208.5-3.335.068-1.92-.14-3.925-.618-6.222-.79-3.79-1.744-5.85-4.08-9.055-1.15-1.576-2.14-2.537-4.28-2.587m-9.446 30.901a3.906 3.906 0 1 1 6.264 2.343"/> - <path d="M232.243 261.446c.294-1.772 1.8-3.122 3.615-3.122 2.025 0 3.666 1.68 3.666 3.756a3.793 3.793 0 0 1-1.033 2.615"/> - <path d="M239.373 261.248c3.334-2.388 6.19-6.948 6.22-12.335.022-4.144-1.643-8.36-3.583-10.002"/> - <path d="M244.666 259.41c-1.308 1.942-2.89 4.1-6.234 5.913" stroke-linecap="round"/> - <path d="M254.598 273.683c-.927-2.18-2.77-3.19-5.772-3.51-2.984-.32-5.567.5-8.21 1.922-5.158 2.775-8.034 5.757-9.952 11.29-.486 1.406-.89 3.524-.834 5.774.09 3.586 1 7.506 1.98 9.402.852 1.654 3.084 8.956 15.324 13.996 7.143 2.94 18.112 3.618 25.676 3.916 10.404.41 20.003.797 25.576 7.663"/> - <path d="M239.68 275.872c3.277-2.15 9.496-4.967 15.12-2.194 2.085 1.03 3.482 2.302 4.27 4.378 1.422 3.737-.166 7.856-1.783 9.567-.846.896-2.688 2.607-4.976 2.637-3.78.05-4.68-2.596-4.775-3.184-.448-2.737 1.144-3.832 1.99-4.13.65-.23 2.76-.17 3.207 1.322.15.497.176 1.365-.222 2.012" stroke-linecap="round"/> - <path d="M252.71 285.728c.3-1.095.145-2.244-.845-3.334-.996-1.094-3.633-2.14-5.872-.895-.75.415-1.688.963-2.538 2.088-.32.426-.864 1.113-1.144 1.593-.677 1.16-.955 2.108-1.09 2.49-2.46 6.993 1.545 14.42 6.565 17.613 4.378 2.786 8.857 3.582 14.38 4.08 2.556.23 4.004.28 6.568.398 2.063.097 3.845.062 5.523.042 1.38-.017 2.69-.01 4.03-.04 2.186-.052 4.448-.103 7.216.1 2.912.21 5.102.285 7.563.695 1.608.268 3.492.527 5.467.97.593.133 1.194.24 1.798.423.406.123.807.247 1.204.368 3.566 1.088 7.03 2.413 9.764 4.174.845.544 1.818 1.07 2.482 1.733.51.51.942.804 1.36 1.214 1.913 1.882 3.87 3.92 4.327 6.68.084.51.084 1.042.084 1.604 0 1.79-1.456 4.23-5.387 5.026"/> - <path d="M298.637 328.422c-1.045 2.14.143 3.215 1.592 3.384 2.14.25 3.283-1.443 3.432-2.986.242-2.5-1.866-4.767-4.38-4.727-2.26.037-4.104 1.497-4.968 3.505-.314.73-.46 1.533-.504 2.367a5.853 5.853 0 0 0 1.423 4.143c1.278 1.49 3.272 2.39 5.394 2.475 4.224.17 7.514-3.782 7.514-7.812 0-7.712-11.438-11.918-15.972-13-5.573-1.33-8.964-1.828-17.913-2.325-3.582-.2-6.206-.098-10.15-.507-3.53-.366-5.375-.538-9.008-1.384-4.532-1.055-8.757-2.936-12.538-6.37-2.913-2.643-4.58-4.527-5.927-8.16-1.164-3.133-1.698-9.34 1.248-13.93 2.605-4.06 6.22-6.166 10.35-6.763 3.732-.54 7.004 1.07 8.958 4.773.945 1.79.654 4.787-.095 6.17-.647 1.194-2.494 2.955-4.78 2.985-3.783.05-4.682-2.596-4.778-3.184-.448-2.737 1.144-3.832 1.99-4.13.65-.23 2.76-.17 3.208 1.322.15.497.176 1.365-.222 2.012"/> - <path d="M273.26 152.05c-.104-.155-.22-.327-.35-.517-1.69-2.488-4.68-3.143-6.866-1.493-2.637 1.99-3.303 5.378-2.588 8.957.448 2.24 1.967 4.104 4.048 5.453" stroke-linecap="round"/> - <path d="M366.746 159.597c-4.03 4.378-8.06 5.777-14.082 5.97-1.88.062-5.474-.596-7.564-2.084-1.342-.956-2.836-2.593-1.89-5.43.63-1.895 3.677-7.213 3.826-10.896.228-5.625-1.936-8.708-5.32-9.902-6.255-2.208-12.97 3.975-17.016 5.324-2.116.704-3.194.787-5.126.795-1.93-.008-3.048-.09-5.163-.796-4.046-1.35-10.76-7.533-17.017-5.325-3.383 1.194-5.547 4.277-5.32 9.902.15 3.682 3.196 9 3.827 10.897.946 2.836-.548 4.473-1.89 5.43-2.09 1.487-5.683 2.144-7.564 2.084-6.02-.194-10.05-1.593-14.082-5.97"/> - <path d="M297.33 314.413c.8.31.195-.19 5.246 2.05 4.85 2.15 8.29 4.032 11.304 8.79.946 1.494 1.194 3.633 1.194 4.877 0 .802-.097 1.635-.293 2.46" stroke-linecap="round"/> - <path d="M297.658 336.038a7.98 7.98 0 0 0 3.25.825c4.226.17 7.515-3.78 7.515-7.81 0-2.796-1.52-5.15-3.652-7.04"/> - <path d="M298.573 328.416c-1.02 2.274.433 3.504 1.88 3.672 2.14.25 3.345-1.443 3.495-2.985.162-1.678-.733-3.31-2.098-4.15" stroke-linecap="round"/> - <path d="M390.1 154.797c3.21 0 6.01 3.575 6.01 7.243 0 4.227-2.247 6.814-3.894 8.77-1.326 1.576-2.762 2.985-4.47 4.704"/> - <path d="M386.29 151.41c1.093.507 2.052 1.363 2.782 2.445 1.344 1.99 1.686 3.656 1.593 6.12-.16 4.225-3.2 7.15-5.918 8.934m-4.773-17.499c.222.19.436.407.64.65 1.842 2.19 1.984 5.426 1.543 7.22-.662 2.696-1.553 3.858-3.742 5.47m-5.065-14.446c2.638 1.99 3.422 5.433 2.548 8.977-.624 2.533-2.217 4.05-4.202 5.26m11.126 41.079c.316.925.837 1.246 1.493 1.934 1.426 1.494 3.517 2.78 6.158 3.522 2.44.687 4.64.17 6.318-.875m-163.005 54.036c1.24-.023 2.476.815 3.284 2.22.16.278.41.885.403 1.542-.01.875-.394 1.81-1.02 2.21-1.437.913-3.99.52-3.882-2.017" stroke-linecap="round"/> - <path d="M241.49 231.296c4.93.92 9.677 6.867 11.23 13.354.54 2.252 1.282 7.277.254 12.04-1.095 5.076-3.288 8.59-5.862 11.256a16.494 16.494 0 0 1-2.127 1.827l-1.05.712m-7.929-12.135c2.025 0 3.798 1.94 3.798 4.014a3.793 3.793 0 0 1-1.034 2.614"/> - <path d="M234.637 260.704c2.11 0 4.117 2.033 4.117 4.19a3.9 3.9 0 0 1-1.482 3.062"/> - <path d="M253.978 239.488c1.937 2.6 3.216 4.84 3.81 7.725m-.066 8.487a17.27 17.27 0 0 1-1.45 4.045c-.814 1.62-2.234 3.423-3.553 4.642" stroke-linecap="round"/> - <path d="M254.285 224.333c1.868 1.46 2.994 2.97 3.52 4.78"/> - <path d="M257.856 219.47c-.49 1.7-1.604 2.99-3.37 4.602m-9.156-17.179l2.157-.568 1.276-.964.823-1.162.71-1.816.283-1.475" stroke-linecap="round"/> - <path d="M240.966 199.302c-.68.17-1.543.422-2.447.853-1.212.578-2.5 1.476-3.525 2.93-1.188 1.682-1.88 4.022-2.31 6.07-.187.895-.41 3.732.162 6.662.423 2.163 1.317 4.177 2.305 5.635.355.523.676.975 1.037 1.336 1.293 1.294 2.487 2.09 4.478 1.692"/> - <path d="M253.043 189.81c-.35 1.285-1.04 2.877-3.055 2.703" stroke-linecap="round"/> - <path d="M245.677 198.528c-1.935-1.892-6.035-2.385-10.11.193-.525.333-1.05.76-1.568 1.19-.56.468-1.01 1.005-1.44 1.59-.47.635-1.048 1.715-1.397 2.432-.48.988-.68 1.637-.943 2.65-.745 2.852-.74 5.5-.654 6.257.113.967.205 1.857.364 2.675.54 2.798 1.368 4.76 2.224 6.18.9 1.493 3.14 4.922 7.717 5.374 1.8.177 4.873-.647 4.972-2.986"/> - <path d="M363.763 157.07c.306-1.653 2.297-1.972 3.045-.996 1.153 1.502.39 4.084-1.953 4.816-.796.25-2.637.15-3.83-1.393-.97-1.25-.895-2.8-.533-4.03.234-.797.873-1.49 1.726-2.14 2.72-2.07 7.116-1.592 8.558 1.89 1.862 4.494-2.19 7.863-5.92 10.4-4.7 3.195-10.052 3.776-14.083 3.732-9.156-.1-16.12-4.48-20.65-6.967-1.054-.58-2.14-.46-2.686.2-.616.745-.607 1.947.25 2.736" stroke-linecap="round"/> - <path d="M365.606 155.52c.97.045 1.23.423 1.528.81 1.152 1.504.31 4.086-2.033 4.818m17.837 51.542c-3.49 3.798-.28 10.315 2.327 11.79.902.7 1.288.33 2.01.75" stroke-linecap="round"/> - <path d="M383.123 205.434c-1.144.796-1.548 1.69-1.592 3.244-.036 1.3.19 2.745 1.41 4.015 1.903 1.978 5.624 3.7 9.23 3.746 1.956.024 3.987-.385 6.03-1.75 2.184-1.462 3.334-3.435 3.83-5.375m-20.861 61.79c0 .012-.005 1.53-.134 2.488-.38 2.792-.823 4.4-2.09 6.916-1.236 2.455-2.223 3.744-4.18 5.673-1.974 1.947-3.343 2.84-5.822 4.08-2.413 1.21-3.934 1.595-6.568 2.19-2.632.595-4.17.724-6.867.846-2.472.112-3.874.007-6.343-.163-2.64-.183-4.106-.55-6.744-.782-2.178-.19-3.41-.367-5.595-.36-2.248.005-3.536.02-5.75.41-2.063.366-3.233.657-5.175 1.444-2.686 1.088-5.722 2.985-6.37 3.83-.646-.845-3.68-2.742-6.368-3.83-1.942-.787-3.112-1.078-5.175-1.443-2.213-.39-3.5-.406-5.75-.41-2.186-.008-3.416.17-5.595.36-2.638.232-4.103.6-6.744.783-2.467.17-3.87.275-6.34.163-2.697-.122-4.236-.25-6.868-.846-2.633-.595-4.154-.98-6.568-2.19-2.48-1.24-3.847-2.133-5.822-4.08-1.957-1.928-2.944-3.217-4.18-5.672-1.266-2.517-1.71-4.123-2.09-6.916-.13-.96-.135-2.476-.135-2.488V169.33H381.13v101.774h.042z"/> - </g> - <g fill="#c7b37f" stroke="#c7b37f"> - <path d="M247.942 285.645a2.5 2.5 0 1 1 5 0 2.5 2.5 0 0 1-5 0zm-15.352-17.671c0-1.236.79-2.24 1.765-2.24.976 0 1.767 1.004 1.767 2.24 0 1.237-.79 2.24-1.767 2.24-.975 0-1.766-1.003-1.766-2.24z" stroke-width=".328"/> - <path d="M241.312 223.59c0-1.015.764-1.84 1.706-1.84.94 0 1.705.825 1.705 1.84 0 1.016-.764 1.84-1.705 1.84-.942 0-1.706-.824-1.706-1.84zm30.63-65.632c-.107-1.018.504-1.918 1.367-2.008.86-.09 1.648.663 1.755 1.68.108 1.02-.504 1.92-1.366 2.01-.864.09-1.65-.663-1.758-1.682z" stroke="none"/> - </g> - <g stroke="#c7b37f" stroke-width=".632" stroke-linecap="round"> - <path d="M239.31 233.946c-.368.16-.57.292-.847.582-.264.277-.32.378-.523.83-.15.332-.188.716-.243 1.19m4.716 26.748c.347-.42.557-.648.89-1.08.278-.36.443-.557.687-.94.22-.345.318-.555.513-.916.273-.508.41-.804.67-1.318m-1.263 13.938c-.592.27-.942.39-1.517.696-.438.232-.675.38-1.095.642a17.4 17.4 0 0 0-1.244.836c-.49.36-.744.595-1.22.975m14.964-37.889c-.32-.33-.494-.523-.82-.846-.343-.337-.53-.536-.896-.846-.357-.3-.583-.437-.956-.716"/> - <path d="M254.19 224.94c-.477.212-.726.38-1.22.543-.567.187-.95.284-1.498.31" stroke-linecap="butt"/> - <path d="M237.44 208.435c.163.58.2.927.418 1.488.276.705.506 1.076.926 1.707.437.657.71 1.02 1.273 1.572.495.485.81.73 1.39 1.11.55.36.906.485 1.487.796m-.988-5.86c.485.26.735.456 1.244.667.46.19.733.27 1.22.383.656.15 1.04.188 1.715.204.73.017.946 0 1.866-.15m7.171-40.656c-.798-.466-1.286-.67-2.046-1.194-.773-.534-1.198-.86-1.87-1.518-.485-.473-.757-.75-1.16-1.294-.36-.486-.498-.804-.816-1.318m7.498-4.552c.25.67.322 1.078.642 1.717.434.868.77 1.323 1.423 2.04.905.994 1.672 1.275 2.742 2.09m1.452-5.917c.25.602.324.972.637 1.543.277.504.467.773.83 1.22.465.568.767.864 1.345 1.317.67.528 1.146.683 1.88 1.12"/> - </g> - <path d="M333.3 151.622c-.052-1.695-1.722-1.87-2.362-1.87-1.847 0-2.346 1.15-4.65 2.388-2.888 1.55-4.13 1.895-6.698 1.918-2.567-.023-3.843-.367-6.73-1.918-2.305-1.237-2.693-2.352-4.54-2.352a2.33 2.33 0 0 0-2.248 2.453s-.02.515.06.863c.03.13.19.09.24.204-.025-.77.132-1.168.51-1.685.488-.664 1.297-.84 1.626-.84 1.847 0 2.53 1.185 4.835 2.422 2.887 1.55 4.13 1.895 6.697 1.918 2.566-.023 3.844-.367 6.732-1.918 2.303-1.237 2.965-2.52 4.812-2.52.64 0 1.092.414 1.3 1.066.13.4.058.67.09.828.017.077.112.07.133.153.064-.297.214-.404.192-1.108z" fill="#703d29" stroke-width=".177"/> - </g> - <g fill="#703d29"> - <path d="M264.397 294.03c.518-.56.91-.35 1.006-.607.07-.19-.082-.21-.293-.288-.282-.105-.58-.166-.863-.27-.292-.11-.557-.26-.85-.37-.12-.045-.4-.187-.478.025-.148.392 1.024.358.63 1.41-.066.178-.233.562-.815 1.2l-2.65 2.883c-.06.067-.158.21-.22.186-.06-.023-.05-.2-.052-.288l.038-4.09c.004-.777.07-1.352.196-1.688.175-.47.716-.076.83-.378.07-.19.016-.197-.306-.318-.16-.06-.47-.125-1.114-.365-.342-.128-.668-.3-1-.425-.15-.057-.43-.263-.53.006-.03.08.077.195.103.217.37.267.464.443.472.943l.073 7.446c.006.537.064.686.165.724.11.042.186-.007.406-.256l5.25-5.7z"/> - <path d="M267.488 295.18c.34-1.08.98-.43 1.103-.816.044-.137 0-.176-.308-.272-.584-.185-.967-.255-1.336-.372-.36-.113-.744-.285-1.144-.41-.092-.03-.338-.145-.4.05-.125.397 1.134.444.807 1.48l-1.724 5.466c-.34 1.082-.986.553-1.11.952-.02.057-.024.143.068.172.267.084.722.178 1.162.316.8.253 1.165.418 1.544.537.236.075.342.058.382-.067.115-.365-1.198-.203-.757-1.604l1.713-5.432zm3.699 1.095c.204-.687.523-.592.904-.48 1.042.31 1.368 1.327 1.036 2.45-.2.675-.452 1.298-2.018.834-.31-.093-.69-.206-.606-.492l.685-2.313zm-2.837 4.926c-.428 1.443-1.15.818-1.26 1.185-.067.23.16.258.273.292.515.152 1.044.26 1.6.424.433.13.698.258.873.31.237.07.34.025.37-.078.122-.412-1.037-.245-.674-1.47l.587-1.98c.118-.4.08-.5.626-.338.515.153.67.31.757.885l.33 2.064c.123.76.24 1.578 1.053 1.82.412.12 1.167.07 1.272-.284.027-.092-.014-.18-.107-.206-.102-.03-.225.007-.33-.023-.08-.024-.277-.082-.315-.292-.315-1.663-.7-3.582-.68-3.65.035-.116.365-.13.74-.305.382-.186.806-.52 1.023-1.254.156-.528.428-2.203-1.828-2.87-.69-.206-1.405-.368-2.095-.572-.65-.192-.718-.263-1.192-.403-.124-.037-.244-.01-.278.104-.122.41 1.127.32.747 1.603l-1.492 5.037zm8.424 2.466c-.33 1.382-1.378.54-1.487.994-.06.256.12.287.307.333.418.1.774.136 1.474.304.7.168 1.034.298 1.452.398.303.073.504.158.57-.12.08-.326-1.34-.31-.997-1.74l1.26-5.247c.134-.557.252-.59.68-.487l.89.214c1.212.242.568 1.45.986 1.55.27.066.265-.414.277-.558l.142-1.096c.016-.12.055-.28-.1-.32-.973-.232-1.685-.354-3.21-.72-1.526-.367-2.215-.58-3.187-.814-.156-.038-.195.124-.234.238l-.536 1.493c-.057.145-.18.386.038.44.47.11.522-1.485 1.703-1.2l.878.21c.428.102.52.185.385.743l-1.293 5.387zm12.698-3.237c.414-.64.836-.502.886-.772.037-.2-.117-.192-.34-.233-.295-.055-.6-.063-.896-.117-.306-.057-.593-.16-.9-.216-.126-.024-.426-.115-.468.108-.076.41 1.072.174.867 1.278-.033.188-.13.595-.593 1.322l-2.11 3.3c-.047.078-.12.234-.183.222-.063-.01-.085-.186-.102-.274l-.673-4.035c-.133-.765-.167-1.342-.102-1.694.09-.494.693-.2.75-.518.038-.2-.017-.198-.355-.26-.17-.032-.484-.04-1.16-.167-.36-.066-.71-.18-1.06-.244-.157-.03-.467-.184-.52.098-.015.082.11.178.14.196.41.198.534.354.63.845l1.364 7.32c.1.53.183.666.288.685.116.022.182-.04.355-.323l4.182-6.523zm.595 6.725c.006.292-.02.384.233.5.59.255 1.082.628 1.73.736 1.387.234 2.538-.65 2.796-2.194.25-1.496-.365-2.12-1.406-2.862-1.304-.933-1.862-1.184-1.73-1.973.132-.788.684-1.155 1.384-1.038 1.823.305 1.615 2.522 1.86 2.563.232.04.288-.097.31-.36l.147-1.598c.026-.274.087-.445-.072-.472-.138-.023-.435.12-.572.098-.318-.053-.686-.587-1.556-.732-1.24-.207-2.253.64-2.48 1.995-.207 1.236.342 1.8 1.178 2.4 1.567 1.122 2.21 1.387 2.042 2.388-.158.942-.89 1.4-1.716 1.263-1.176-.197-1.654-1.38-1.804-2.566-.016-.16-.02-.27-.19-.298-.265-.045-.216.315-.212.485l.06 1.668zm15.821-4.461c.345-.68.78-.585.8-.86.017-.2-.136-.177-.36-.195-.3-.025-.605 0-.905-.024-.31-.025-.607-.096-.918-.12-.128-.01-.436-.07-.454.155-.032.418 1.085.063.997 1.182-.015.19-.07.605-.453 1.378l-1.753 3.503c-.038.08-.094.244-.158.24-.064-.008-.105-.177-.13-.263l-1.09-3.943c-.212-.747-.307-1.317-.28-1.674.04-.5.67-.27.694-.593.016-.202-.038-.194-.38-.22-.173-.014-.487.01-1.173-.045-.364-.03-.724-.105-1.078-.133-.16-.013-.485-.134-.508.15-.007.085.128.167.16.182.428.153.568.296.714.775l2.123 7.136c.154.516.25.643.36.65.116.01.176-.057.318-.357l3.478-6.926z"/> - <path d="M307.584 308.48c-.01 1.218-1.04.994-1.045 1.472-.002.203.213.145.33.146.292 0 .582-.043.926-.04.376.007.74.055 1.268.06.14 0 .408.014.41-.153.004-.56-1.38.24-1.36-2.053l.037-4.06c0-.108.024-.19.088-.19.054 0 .118.06.193.156l5.115 6.255c.075.096.128.168.278.17.13 0 .13-.095.133-.358l.058-6.698c.01-1.254.922-.96.925-1.318 0-.036 0-.156-.204-.158-.097 0-.473.044-1.15.038-.742-.007-1.053-.057-1.225-.058-.14 0-.172.118-.173.2-.003.395 1.31.192 1.3 1.278l-.034 3.977c-.004.298-.026.44-.09.44-.065 0-.192-.144-.33-.313l-4.275-5.303c-.19-.228-.062-.31-.405-.313-.57-.006-.85.04-1.13.038-.203 0-.396-.05-.6-.053-.13 0-.184.093-.185.2-.006.574 1.205-.192 1.185 2.1l-.04 4.538zm10.406-5.376c.01-1.134.813-.697.816-1.103 0-.143-.052-.167-.375-.17-.61-.006-.998.04-1.385.036-.376 0-.795-.055-1.214-.058-.096 0-.364-.04-.366.164-.003.418 1.154.094 1.144 1.18l.01 5.732c-.01 1.134-.78.817-.784 1.235 0 .058.02.142.117.143.28.007.743-.04 1.205-.037.838.007 1.235.058 1.633.062.247 0 .344-.045.345-.176.003-.382-1.205.157-1.192-1.312l.05-5.696zm4.506 5.549c.013 1.42-1.207.858-1.203 1.324.003.263.185.25.38.247.428-.006.782-.054 1.503-.06.72-.007 1.075.038 1.504.034.312 0 .527.03.525-.255-.003-.335-1.375.023-1.388-1.445l-.047-5.397c-.005-.572.102-.633.542-.637l.913-.007c1.236-.058.904 1.27 1.334 1.266.278 0 .156-.467.133-.61l-.128-1.097c-.012-.12-.013-.287-.174-.285-1 .01-1.718.062-3.287.076-1.57.013-2.29-.028-3.29-.02-.16 0-.16.17-.17.29l-.157 1.577c-.02.155-.082.418.144.416.483-.007.147-1.566 1.36-1.577l.904-.01c.44-.005.55.056.554.63l.048 5.54zm6.259-2.259c-.193.015-.342.04-.35-.08-.014-.167.04-.303.082-.45l.66-2.172c.042-.135.084-.15.106-.152.053-.007.02 0 .093.088l1.048 2.086c.065.138.14.264.153.43.008.12-.142.12-.335.135l-1.457.114zm1.84.502c.278-.022.34.093.768.993.143.31.235.52.256.782.056.726-.715.655-.688 1 .013.167.15.132.343.117.31-.026.704-.105 1.175-.142.707-.055 1-.03 1.386-.06.29-.024.388-.008.372-.21-.03-.393-.573.117-.983-.7l-3.466-7.06c-.168-.345-.19-.367-.288-.36-.14.012-.175.24-.235.438l-2.337 7.43c-.215.688-.767.66-.745.933.013.154.18.117.33.105.312-.024.62-.097.94-.122.343-.027.668-.006 1.01-.03.226-.02.565.038.545-.212-.025-.32-1.167-.038-1.235-.896-.022-.286.095-.714.15-.958.186-.805.407-.87.59-.885l2.11-.165zm8.305-4.95c-.11-.817-.068-.835 1.222-1.004 2.056-.27 1.407 1.223 1.908 1.157.245-.033.14-.416.11-.57l-.197-1.165c-.015-.107-.104-.215-.243-.197-.938.123-1.667.267-2.423.367-1.63.214-2.404.268-2.84.326-.15.02-.222.126-.208.233.06.473 1.215-.064 1.356 1l.73 5.542c.19 1.444-.705.912-.633 1.456.01.072.08.123.22.105.585-.077 1.027-.184 1.357-.227.47-.062.87-.066 1.274-.12.266-.035.496-.017.465-.254-.043-.32-1.208.135-1.38-1.18l-.232-1.75c-.09-.688-.15-.824.34-.89l.787-.102c1.108-.146.975 1.148 1.316 1.103.257-.034.137-.45.106-.604l-.352-2.096c-.053-.32-.167-.28-.24-.27-.214.028-.103 1.122-1.02 1.242l-.67.09c-.46.06-.47-.024-.537-.533l-.218-1.657zm3.93 2.714c.44 2.383 2.16 3.703 4.285 3.31 3.37-.625 3.482-3.62 3.177-5.265-.46-2.49-2.316-3.712-4.372-3.306-2.52.49-3.568 2.688-3.09 5.26zm1.174-.91c-.315-1.703-.087-3.422 1.692-3.788 1.36-.276 2.9.847 3.38 3.442.363 1.95.063 3.632-1.748 4.004-1.885.386-3.006-1.945-3.324-3.66zm8.336-4.16c-.168-.696.156-.774.543-.867 1.055-.253 1.847.465 2.12 1.603.164.685.258 1.35-1.33 1.732-.314.075-.7.168-.77-.122l-.564-2.345zm.005 5.685c.35 1.463-.587 1.283-.498 1.654.056.23.267.144.382.116.52-.125 1.033-.297 1.597-.432.44-.106.732-.127.91-.17.24-.057.307-.147.282-.252-.1-.418-1.022.307-1.32-.936l-.482-2.008c-.098-.407-.18-.473.374-.606.522-.125.735-.066 1.098.387l1.32 1.623c.484.596.994 1.247 1.82 1.05.418-.1 1.046-.523.96-.883-.022-.092-.102-.147-.196-.124-.105.025-.192.12-.297.145-.083.02-.282.068-.42-.095-1.104-1.282-2.397-2.753-2.413-2.822-.028-.116.25-.294.49-.634.235-.352.435-.854.256-1.597-.128-.534-.73-2.12-3.018-1.572-.7.17-1.4.386-2.1.554-.658.158-.753.132-1.234.247-.125.03-.216.114-.188.23.1.42 1.136-.284 1.448 1.016l1.227 5.11zm8.621-1.928c.356 1.376-.963 1.125-.846 1.576.065.254.24.197.427.15.416-.11.747-.244 1.444-.424.698-.182 1.054-.224 1.47-.332.3-.078.518-.097.447-.375-.084-.323-1.33.357-1.697-1.065l-1.35-5.226c-.145-.555-.056-.64.37-.75l.885-.228c1.185-.356 1.184 1.013 1.6.906.27-.07.04-.492-.017-.625l-.39-1.034c-.04-.112-.082-.274-.238-.233-.968.25-1.653.477-3.172.87-1.52.392-2.228.526-3.195.776-.156.04-.115.203-.095.32l.228 1.57c.018.156.02.426.24.37.468-.12-.236-1.555.94-1.86l.874-.225c.427-.11.545-.08.69.475l1.386 5.364zm5.498-7.334c-.303-1.093.588-.894.48-1.286-.038-.138-.097-.146-.407-.06-.59.163-.95.313-1.323.416-.363.1-.78.166-1.183.278-.093.027-.36.064-.307.26.112.403 1.193-.244 1.483.803l1.532 5.523c.303 1.093-.526 1-.414 1.404.016.058.06.132.152.106.27-.074.702-.244 1.147-.367.808-.225 1.204-.286 1.587-.392.24-.066.32-.138.284-.264-.102-.368-1.115.482-1.508-.933l-1.522-5.487zm2.291 2.669c.77 2.298 2.657 3.367 4.705 2.68 3.25-1.086 2.945-4.07 2.414-5.654-.803-2.4-2.81-3.353-4.79-2.666-2.428.838-3.158 3.16-2.33 5.64zm1.038-1.065c-.55-1.642-.563-3.375 1.148-3.986 1.308-.46 2.99.436 3.828 2.94.63 1.88.566 3.587-1.175 4.208-1.813.644-3.247-1.508-3.8-3.16zm7.627-5.419c-.262-.666.048-.788.418-.934 1.01-.398 1.894.204 2.323 1.292.26.656.444 1.302-1.076 1.9-.3.12-.67.264-.78-.014l-.883-2.244zm.797 5.63c.552 1.398-.403 1.35-.263 1.706.088.223.285.107.395.063.5-.197.98-.438 1.52-.65.42-.166.71-.228.878-.295.23-.09.284-.19.245-.29-.158-.4-.968.447-1.436-.742l-.758-1.922c-.154-.39-.244-.443.286-.652.5-.197.72-.168 1.14.23l1.533 1.425c.563.523 1.158 1.097 1.948.786.4-.157.964-.662.828-1.006-.035-.09-.12-.132-.21-.097-.1.04-.175.146-.275.185-.08.03-.27.106-.43-.036-1.27-1.116-2.755-2.392-2.78-2.46-.045-.11.206-.324.395-.694.185-.38.313-.906.033-1.617-.2-.51-1.018-1.998-3.208-1.135-.67.264-1.332.576-2.002.84-.63.248-.728.235-1.188.416-.12.05-.198.143-.154.254.157.4 1.086-.44 1.576.804l1.925 4.89z"/> - </g> - <g fill="#fedf00" transform="matrix(.64 0 0 .64 0 16)"> - <path d="M412.66 249.25h82.18v82.023h-82.18z" fill="#d52b1e"/> - <path id="a" d="M451.2 313.83s-.048 2.93-.855 5.287c-.933 2.72-.94 2.72-1.796 4.043-1.153 1.78-2.558 3.082-3.81 3.887-1.96 1.258-3.95 1.888-5.95 1.71-5.49-.486-8.037-6.44-9.282-11.273-1.32-5.13-5.073-7.923-7.463-6.064-1.4 1.09-1.48 2.914-.31 4.665 1.243 1.866 4.098 2.8 4.098 2.8l-2.933 3.73s-6.302-.82-7.535-7.392c-.466-2.488.742-7.134 4.89-8.522 5.298-1.773 8.687 2.005 10.32 5.192 2.245 4.384 3.21 12.434 9.43 11.19 3.383-.677 4.975-5.598 4.975-7.852l2.467-2.644 3.654 1.167.1.078z" fill="#fff"/> - <use height="100%" width="100%" xlink:href="#a" transform="matrix(-1 0 0 1 907.52 0)"/> - <path d="M461.12 278.95l10.76-11.643s1.624-1.31 1.61-3.401l-2.22.345-.496-1.14-.11-1.148 2.98-.63c.05-.484.008-.85.093-1.384.08-.494.19-.76.31-1.244l-3.264.218c.166-.57.128-.875.31-1.406.155-.447.198-.618.504-1.103.606-.09 1.158-.228 1.907-.304.728-.074 1.143-.04 1.873-.086 1.78-3.32 9.19-6.373 14.454-.904 3.81 3.958 2.99 11.22-1.95 13.14-2.798 1.087-5.053.444-6.86-1.11l1.97-3.867c2.72 1.625 4.975-.396 4.82-2.495-.197-2.654-1.92-4.297-4.354-4.51-2.254-.197-3.872 1.093-4.898 3.11-.626 1.23-.336 2.134-.544 3.5-.226 1.482-.1 2.31-.537 3.81-.32 1.087-1.155 2.433-2.37 3.59l-11.03 11.936-42.94 46.445-3.228-2.984 43.21-46.737z"/> - <path d="M429.51 283.04s2.7 13.372 11.874 33.43c4.665-1.71 7.42-2.798 12.362-2.798 4.943 0 7.697.933 12.362 2.8 9.174-20.06 11.874-33.432 11.874-33.432l-24.236-31.177-24.236 31.177z" fill="#fff"/> - <path d="M456.12 262.41l16.82 21.637s-2.243 10.52-9.078 26.354c-2.646-.6-4.916-1.127-7.733-1.318l-.01-46.67zm-4.74 0l-16.82 21.637s2.243 10.52 9.078 26.354c2.646-.6 4.916-1.127 7.733-1.318l.01-46.67z"/> - </g> - <g fill="#d52b1e"> - <path d="M322.304 175.52H374.9v52.495h-52.596z" fill="#fedf00"/> - <path d="M329.67 175.52h7.842v52.495h-7.842zm15.028 0h7.842v52.495h-7.842zm15.027 0h7.842v52.495h-7.842z"/> - </g> - <g fill="#d52b1e" stroke="#d52b1e" stroke-width=".513"> - <path d="M264.3 273.542c.15.946.487 2.568 1.385 4.23.945 1.493.597 1.452 2.737 3.84 1.053 1.176 2.696 2.183 3.985 2.877 1.294.696 2.25 1.038 4.38 1.596 4.17 1.095 7.097 1.163 10.606 1.023 2.738-.11 4.828-.447 6.56-.68 2.468-.332 4.307-.53 7.115-.647 1.365-.057 2.655-.07 3.93 0 1.54.085 3.06.323 4.678.647 3.483.696 7.016 2.04 7.016 2.04l.01-54.82-52.605-.014v37.467s.108 1.83.204 2.44z" fill="#fedf00" stroke="none"/> - <path d="M270.406 283.155l2.466 1.435 3.378 1.215-.004-52.177h-5.84zm29.224 2.375l.006-51.904h-5.852v52.734s4.005-.514 5.844-.633zm11.672-51.898h-5.832v52.084c1.9.205 3.855.545 5.844 1.077l-.012-53.16zm-23.352 0v53.332c-.06.006-3.906.202-5.872-.002v-53.32z" stroke-width=".328"/> - </g> - <g transform="matrix(.64 0 0 .64 0 16)"> - <path d="M585.48 402.39c-.233 1.477-.76 4.012-2.163 6.608-1.477 2.333-.932 2.27-4.275 6-1.646 1.838-4.214 3.412-6.228 4.496-2.02 1.09-3.516 1.623-6.84 2.495-6.52 1.71-11.092 1.817-16.575 1.598-4.28-.17-7.545-.698-10.25-1.062-3.858-.518-6.73-.827-11.118-1.01-2.133-.09-4.15-.11-6.142 0-2.406.132-4.782.505-7.31 1.01-5.44 1.09-11.032 3.188-11.032 3.188l.057-85.655 82.193-.024v58.543s-.168 2.86-.318 3.81z" fill="#fedf00"/> - <g id="b"> - <path d="M524.62 346.91s-.366.175-.594.28c-.298.33-.447.52-.78.814-.444.39-.77.503-1.25.843-.23.164-.42.216-.595.438-.25.32-.078.63-.25 1-.185.405-.368.597-.655.938-.366.434-.65.61-1.063 1-.418.395-.587.726-1.093 1-.135.072-.2.142-.345.187-.216.067-.35-.01-.563.062-.388.134-.51.563-.78.72.11.217.106.37.218.593.158.323.705 1.215.812 1.437.21.305.27.7.532.78.537.17.858.155 1.312.126.792.182 1.28.158 2.03.47.614.253.864.574 1.47.843.474.21.772.34 1.28.438.388.074.61.132 1 .094.25-.024.378-.12.626-.156.05-.01.08 0 .125 0l-.03.375c-.006 0 .004.03 0 .032v.062h.062l2.06.906a1.72 1.72 0 0 0-.186.375c-.098.32-.114.69-.063.844.63 1.887 1.16 3.067 1.47 3.187.615.236.806.865 1.156 1.5-.123.132-.227.2-.344.312-.614.59-1.152 1.008-1.656 1.812-.745 1.188-1.248 1.203-.312 2.78.55.926.814 1.1 1.53 2.407.363.658.563 1.172.782 1.968.207.752.278 1.19.313 1.97l.967.374.657-.657.625-1.187.03-.906c-.24-.203-.308-.474-.25-.782.07-.368.514-.29.72-.625.282-.46-.333-.734-.658-1.093-.605-.67-1.43-.833-1.625-1.844-.052-.273.078-.427.375-.72.856-.84 1.13-.972 1.97-1.81.24.14.61.192.968.124.28-.053.53.125 1.406.375.61.173.873.086 1.22.03l.374-.093c.05.21.11.415.125.687.053 1.062-.155 2.996.156 3.5.132.214.187.333.282.564.1.24.214.396.22.656.01.696.046 1.14 0 1.875-.045.69-.104 1.042-.22 1.75-.074.45-.165.714-.437 1.062-.283.364-.595.418-.97.688l-.092 1 1.125.47 1.28.31.688-.28c0-.254.04-.4.156-.625.128-.247.232-.44.47-.53.362-.144.76.128.905-.095.16-.242.06-.338.032-.75-.047-.662-.185-.99-.283-1.657-.164-1.11-.21-1.686-.156-2.75.032-.616.04-.956.157-1.562.172-.883.486-1.31.688-2.188.225-.977.265-1.606.375-2.468 3.17.452 5.807.397 9.344-.375.17-.037.75-.25.75-.25.8.69 1.706 1.264 2.718 1.625-.006.1-.015.845 0 .968.037.288-.04.482.125.72.106.15.197.24.375.28.263.06.455.023.657-.156.225-.2.183-.454.25-.75.03-.14.006-.564 0-.687.365.055.49.062.874.062.357 0 .53.014.875-.03.004.08.02.368.03.467.027.245-.076.435.03.657.112.23.25.36.5.407a.66.66 0 0 0 .532-.094c.296-.185.264-.498.313-.844.015-.11.01-.693 0-.782.212-.067.827-.292 1.03-.375a5.12 5.12 0 0 1-.093.812c-.07.376-.12.58-.25.938-.206.568-.44.856-.75 1.375-.376.634-.572.985-1.03 1.562-.212.266-.358.386-.563.657-.257.337-.343.566-.595.906-.324.438-.51.724-.938 1.062-.693.55-1.15.11-2.093.844l-.22 1.03 1.438.532 1.282.25.437-.25c-.01-.3.033-.514.22-.75.213-.27.44-.35.78-.407.362-.06.748.034 1.032-.218.35-.31.35-.914.625-1.47.86-1.723 1.62-2.562 3-3.905.613-.597 1.138-.758 1.657-1.438.246-.322.52-.47.53-.875.01-.284-.143-.416-.218-.688-.104-.377-.187-1-.187-1 1.52.744.97.646 1.25 1.406.224.615-.034 1.04.06 1.687.112.756.467 1.114.532 1.875.078.905-.143 1.42-.312 2.313-.15.785-.13 1.277-.47 2-.32.69-.57 1.077-1.155 1.562-.21.175-.37.25-.594.407l-.124 1.03 1.125.376 1.626.437.375-.343c.165-.655-.054-1.617.407-1.688.406-.062.693 0 .782-.312.035-.132.057-.326.092-.625.22-1.886.422-3.646.625-4.5.23-.968.215-1.178.407-1.907.175-.664-.086-.282.406-1.687.734-2.097-.208-2.375-1.063-3.656-.462-.693-.622-.944-.687-1.5-.097-.817.164-1.495.125-2.75-.04-1.32-.023-2.16 0-2.875.115-.053.222-.12.344-.188 1.17-.642 1.635-.836 2.374-2.47a3.43 3.43 0 0 0 .312-1.467c-.005-.332-.065-.652-.094-1.032-.03-.4-.19-.637-.312-.937-.13-.318-.325-.56-.563-.844-.772-.924-1.78-1.132-2.718-1.47-1.485-.53-2.506-.433-4.126-.56-1.673-.133-2.607-.16-4.282-.063-2.006.115-3.128.52-5.125.75-1.915.223-2.977.37-4.906.407-2.26.042-4.42-.46-5.78-.344-2.45.21-2.493.762-6.188 1.063a66.916 66.916 0 0 1-3.843.187l-2.158-.687c.857-.306 1.067-.488 1.47-1.03.27-.367.232-.68.562-1.064.266-.312.443-.622.78-.97a2.2 2.2 0 0 0-.937-.436c-.363-.076-.573-.042-.937 0-.494.056-.772.124-1.22.344-.358.177-.623.357-.843.593 0 0-1.285-.828-2.187-1.218-1.12-.485-1.6-.712-3-.907zm1.97 11.906h.06c-.01.01-.018.022-.03.03l-.03-.03z" fill="#d52b1e"/> - <g fill="none" stroke="#fedf00" stroke-width=".987" stroke-linecap="round"> - <path d="M568.77 359.52l-.763.244c-.867.402-1.578.418-2.6.496-2.644.202-4.272-1.057-6.998-.847-1.405.108-2.026 1.19-3.46 1.548a9.247 9.247 0 0 1-1.702.283l.512-1.034s-1.284.26-2.115.263a7.55 7.55 0 0 1-1.523-.13l1.018-.95s-.814-.133-1.294-.336a3.918 3.918 0 0 1-1.06-.63 20.484 20.484 0 0 0 1.69-.353c1.556-.385 2.04-1.147 3.89-1.325 1.15-.112 3.032-.047 7.643.716 3.035.502 4.38.267 5.535-.258.76-.345 1.01-1.01 1.103-1.788.092-.776-.404-1.404-.874-1.81-.123-.106-.444-.335-1.113-.363"/> - <path d="M524.8 350.61c-.53-.066-.884.01-1.34.291-.48.297-.54.698-.888 1.144.445.1.7.36 1.142.253.347-.084.527-.238.76-.507.317-.363.433-.676.43-1.156l-.104-.024z" fill="#fcd900" stroke-width=".513" stroke-linecap="butt"/> - <path d="M536.04 363.79s.264.48.407.8c.248.554.376.878.524 1.467.2.8.115 1.284.242 2.098.022.143.05.263.076.376l-.05 1.13m6.801-6.951s-.22.812-.354 1.333c-.352 1.353-.676 2.087-.944 3.46-.045.23-.078.442-.103.644m-10.859-3.977c.79.176.544 3.36 1.79 4.09"/> - <path d="M560.12 369.78l.384-.25a8.154 8.154 0 0 0 2.686-1.79" stroke-linecap="butt"/> - <path d="M552.38 368.02h.007c3.533-.883 5.885-2.648 7.58-2.87"/> - <path d="M555.97 363.61c.3-.01.585-.033.83-.068 1.467-.21 1.703.687 2.725 1.258 1.857 1.04 2.098 2.307 4.3 3.356.116.055.223.107.32.155l.848.43"/> - <path d="M517.7 354.53c.268.067.432.08.707.054.332-.03.484-.238.817-.25.27-.01.462-.03.684.126.14.1.2.19.28.342.087.166.163.282.124.466-.06.284-.324.418-.614.42-.237 0-.434-.062-.544-.272a.467.467 0 0 1-.04-.39c-.283.108-.49.112-.776.017a1.04 1.04 0 0 1-.638-.513z" fill="#fcd900" stroke-width=".513" stroke-linecap="butt"/> - </g> - <path d="M525.13 364.17c-.797-.237-1.966-.826-1.966-.826.323-.25.587-.265.863-.555.39-.41.373-.79.593-1.32.215-.52.184-.954.67-1.343.29-.23.763-.27 1.12-.165.352.113.758.4.847.766.137.56-.16.886-.246 1.454-.085.568-.292.894-.194 1.46.066.375.227.52.354.907 0 0-1.264-.15-2.04-.38zm-.99.95a.628.628 0 1 1 .64.618.627.627 0 0 1-.64-.618zm-1.76-16.51s-.09-.06-.144-.104c-.383-.31-.42-.653-.6-1.11-.173-.434-.258-.69-.316-1.154-.05-.406 0-.64 0-1.048 0-.37.04-.578 0-.944-.04-.375-.03-.612-.21-.944-.097-.18-.394-.337-.314-.42.094-.096.257-.02.42 0 .4.05.63.166.943.42.376.306.525.57.67 1.05.167.547.25.897.408 1.467.083.295.13.47.284.734.16.275.32.383.524.63l-.01.022c-.3.326-.445.538-.778.833-.305.27-.56.403-.846.573l-.033-.01zm3.6 10.64l2.23 1.03c1.15-.634 2.474-1.923 3.497-3.918.88-1.718 1.02-2.65 1.364-4.313l-1.788-.582-.357.073c-.552 1.724-.693 2.705-1.618 4.193-.802 1.29-1.718 2.305-2.65 3.034l-.677.483zm4.94 18.12c.36-.493.513-.81.922-1.264.456-.505.8-.702 1.312-1.15.155.015.335-.012.48.07-.027.546-.055.95-.18 1.542-.1.48-.186.746-.346 1.21-.135.388-.16.64-.39.98-.154.225-.29.315-.476.517-.51-.742-1.33-1.297-1.322-1.906zm33.01 1.85c.573.21.92.27 1.47.538.61.3.894.576 1.466.944.027.154.104.32.063.483-.532.122-.928.207-1.53.25a8.39 8.39 0 0 1-1.26 0c-.41-.022-.658.025-1.048-.104-.26-.085-.384-.19-.63-.313.573-.696.88-1.637 1.468-1.797zm-9.76-2.04c.573.21.92.27 1.468.538.61.3.896.576 1.468.944.027.154.104.32.063.482-.532.123-.928.208-1.532.252-.49.036-.768.027-1.258 0-.41-.023-.658.024-1.048-.105-.26-.085-.384-.19-.63-.313.573-.696.88-1.637 1.468-1.797zm-17.34 2.13c.573.21.92.27 1.47.538.61.3.894.576 1.467.944.026.154.103.32.063.483-.532.122-.928.207-1.53.25-.49.037-.77.028-1.26 0-.41-.02-.658.025-1.048-.104-.26-.085-.384-.19-.63-.313.573-.696.88-1.637 1.468-1.797zm-8.98-29.8c-.613-.278-1.05-1.045-.66-1.594.155-.22.412-.174.565-.395.19-.272.142-.507.136-.838-.006-.377-.142-.573-.208-.944-.072-.405-.14-.636-.136-1.048.005-.628-.038-1.076.345-1.573.246-.317.662-.592.826-.612.147.136-.057.502-.033.822.036.462.13.717.288 1.153.203.563.48.81.704 1.363.208.516.4.808.42 1.363.015.457-.025.736-.21 1.154-.165.37-.3.58-.61.84-.27.224-.458.324-.796.418a1.15 1.15 0 0 1-.628-.108z" fill="#0065bd"/> - </g> - <use height="100%" width="100%" xlink:href="#b" y="36.591"/> - </g> - <path d="M264.102 175.52h52.595v52.495h-52.595zm58.202 0H374.9v52.495h-52.596zM264.3 273.542c.15.946.487 2.568 1.385 4.23.945 1.493.597 1.452 2.737 3.84 1.053 1.176 2.696 2.183 3.985 2.877 1.294.696 2.25 1.038 4.38 1.596 4.17 1.095 7.097 1.163 10.606 1.023 2.738-.11 4.828-.447 6.56-.68 2.468-.332 4.307-.53 7.115-.647 1.365-.057 2.655-.07 3.93 0 1.54.085 3.06.323 4.678.647 3.483.696 7.016 2.04 7.016 2.04l.01-54.82-52.605-.014v37.467s.108 1.83.204 2.44zm110.407-.012c-.15.945-.486 2.567-1.384 4.23-.945 1.492-.597 1.45-2.736 3.84-1.054 1.175-2.697 2.182-3.986 2.876-1.293.697-2.25 1.04-4.377 1.597-4.172 1.095-7.1 1.163-10.608 1.023-2.738-.11-4.828-.446-6.56-.68-2.468-.33-4.307-.53-7.115-.646-1.365-.057-2.655-.07-3.93 0-1.54.085-3.06.323-4.678.647-3.483.697-7.06 2.04-7.06 2.04l.035-54.82 52.604-.014v37.468s-.107 1.83-.203 2.44z" stroke-width=".51" fill="none" stroke="#703d29"/> -</svg> diff --git a/img/flags/4x3/ae.svg b/img/flags/4x3/ae.svg deleted file mode 100644 index ef64730..0000000 --- a/img/flags/4x3/ae.svg +++ /dev/null @@ -1,6 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" height="480" width="640" viewBox="0 0 640 480"> - <path fill="#00732f" d="M0 0h640v160H0z"/> - <path fill="#fff" d="M0 160h640v160H0z"/> - <path d="M0 320h640v160H0z"/> - <path fill="red" d="M0 0h220v480H0z"/> -</svg> diff --git a/img/flags/4x3/af.svg b/img/flags/4x3/af.svg deleted file mode 100644 index 95f38b7..0000000 --- a/img/flags/4x3/af.svg +++ /dev/null @@ -1,83 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" height="480" width="640" viewBox="0 0 640 480"> - <g fill-rule="evenodd" stroke-width="1pt"> - <path d="M0 0h640v480H0z"/> - <path d="M426.662 0H640v480H426.662z" fill="#090"/> - <path d="M213.336 0h213.34v480h-213.34z" fill="#bf0000"/> - </g> - <g transform="translate(.961 27.311) scale(1.06346)" fill="#fff" fill-rule="evenodd" stroke="#bd6b00" stroke-width=".5"> - <path d="M319.5 225.84l8.354.001c.031 3.157 1.881 6.549 4.48 8.493h-16.008c2.505-2.271 3.19-4.963 3.174-8.494z"/> - <path d="M266.71 178.53l4.574 5.04 56.934.093 4.668-5.04-14.56-.186-7.094-4.947-22.868-.093-6.627 5.133H266.71z" stroke="none"/> - <path d="M290.02 172.74l19.66-.02c2.662-1.408 3.492-5.902 3.479-8.416-.037-7.429-5.233-10.991-10.447-11.18-.781-.04-1.688-.648-1.895-1.36-.514-1.613-.381-2.641-.944-2.584-.5-.007-.353.94-.799 2.453-.245.752-1.09 1.494-1.934 1.537-6.49.324-10.676 5.062-10.513 11.134.11 4.015.577 6.413 3.393 8.437z"/> - <path d="M257.66 242.83h84.469l-7.56-6.16H265.22l-7.56 6.16z" stroke="none"/> - <path d="M296.39 219.69l1.54 4.62h3.499l-2.799-4.621h-2.24zm-1.96 4.62l.887 4.573 4.106.046-1.493-4.62h-3.5zm6.953.046l2.847 4.527h5.834l-4.573-4.575-4.107.048zm-34.44 10.36c3.095-2.878 5.07-5.335 5.086-8.866h7.56c.015 1.976.73 3.157 1.82 3.08l7.654-.047-.046-4.527h-5.554l-.001-24.688c-.202-8.726 10.609-13.813 15.028-13.767l-26.275-.046v-.793h55.255l.047.793-26.647.046c7.902.016 15.524 7.5 15.587 13.815v7h-1.028l-.046-6.906c0-6.908-8.7-13.363-15.681-13.161-6.037.173-15.4 5.927-15.307 13.115v2.146l14.327.094-.14 2.472 2.25 1.436 4.486 1.43-.065 3.71 3.213.947.028 3.706 3.855 1.654v3.836l2.445 1.507-.112 3.895 3.314 2.333h-7.84l4.9 5.46h-7.234l-3.594-5.46h-4.76l2.147 5.413-5.085-.046-1.215-5.367h-6.206l.046 5.786h-22.214zm22.168-14.98v4.572h5.32l-1.075-4.573h-4.245z"/> - <path fill="none" d="M289.39 211.66h3.313v7.607h-3.313z"/> - <path d="M284.71 219.8h3.234l-.02-5.597c-.042-2.433 2.142-4.885 3.187-4.967 1.159-.044 2.867 2.297 2.924 4.776l.047 5.806 3.43-.007v-14.41l-12.802.067V219.8zm25.59 3.34h4.014v3.127H310.3zm-2.38-5.37h4.014v3.127h-4.014zm-3.87-5.37h4.014v3.127h-4.014zm-3.31-4.52h4.014v3.127h-4.014z" fill="none"/> - <path d="M298.08 219.82l4.106.14 7.327 6.487v-3.827l-2.473-1.773v-3.034l-3.594-2.052v-3.268l-3.5-1.166v-4.434l-1.774-1.447-.092 14.374z" fill="none"/> - <path d="M315.43 210.35h.98v7.047h-.98z"/> - <g id="a"> - <path d="M257.32 186.53c-1.234-1.982-2.712 2.749-7.788 6.27-2.363 1.609-4.009 5.894-4.025 8.713-.077 1.937.216 3.868 0 5.741-.137 1.186-1.372 3.816-.527 4.489 2.234 1.66 5.126 5.43 6.467 6.731 1.16 1.017 2.165-5.248 3.036-8.051.933-3.005.515-6.596 3.102-9.372 1.834-1.875 6.46-3.72 5.94-4.554l-6.205-9.967z"/> - <path d="M257.06 201.88a10.09 10.09 0 0 0-1.656-2.594c-.699-.792-1.525-1.457-2.438-1.781-.881-.325-1.779-.751-2.406-1.531a3.645 3.645 0 0 1-.719-1.469c-.124-.544-.123-1.21-.03-1.969-.11.08-.169.172-.282.25-2.363 1.608-4.016 5.9-4.031 8.719a28.487 28.487 0 0 0 0 2.313c.175.485.343.955.593 1.25.326.383.714.636 1.125.812.824.352 1.775.425 2.657.75.912.324 1.851 1.058 2.656 1.938a10.51 10.51 0 0 1 1.75 2.656c.066-.243.154-.604.219-.813.845-2.721.697-5.889 2.562-8.531z" fill="#bf0000"/> - <path d="M249.82 192.39c-.484 3.356 1.385 4.473 3.148 5.123 1.825.648 3.322 2.606 4.093 4.378M245.3 203.44c.77 2.893 2.798 2.531 4.561 3.181 1.826.649 3.745 2.957 4.516 4.729" fill="none"/> - <path d="M255.61 184.48l.925-.594 17.752 29.898-.924.594-17.753-29.898z"/> - <path d="M257.52 183.29a2.046 2.046 0 1 1-4.092 0 2.046 2.046 0 1 1 4.092 0zm15.18-24.02h7.194v1.65H272.7zm0 3.13h7.194v13.784H272.7zm-.44-5.01l7.98.047c.312-2.706-2.39-5.63-3.966-5.6-1.56.076-4.076 2.956-4.014 5.553z"/> - <path d="M292.62 155.76c-1.521.64-2.688 2.377-3.406 4.375-.719 1.998-.992 4.267-.656 6.094v.031c.127.63.3 1.083.5 1.406.199.324.422.514.687.563.265.049.514-.093.656-.313.143-.22.212-.509.188-.844-.144-1.878-.135-3.732.312-5.406.448-1.674 1.338-3.164 2.97-4.375.294-.216.463-.463.5-.719.035-.255-.1-.474-.282-.625-.364-.301-.938-.407-1.469-.187zm.156.438c.37-.154.842-.064 1.031.093.095.079.106.133.094.219-.012.086-.077.234-.312.406-1.713 1.272-2.657 2.872-3.125 4.625-.47 1.754-.459 3.66-.313 5.563a.927.927 0 0 1-.125.562c-.07.108-.107.14-.187.125-.081-.015-.248-.117-.407-.375-.158-.257-.317-.656-.437-1.25-.315-1.714-.037-3.947.656-5.875.694-1.927 1.803-3.538 3.125-4.094z" fill="#bd6b00" stroke="none"/> - <path d="M295.19 157.73c-1.52.639-2.501 2.292-3.031 4.188-.53 1.895-.614 4.065-.281 5.874.26 1.284.934 1.962 1.593 2.063.33.05.648-.08.844-.344.196-.264.26-.619.156-1.062-.372-1.498-.515-3.366-.25-5.063.266-1.696.94-3.211 2.22-4.125.295-.215.463-.463.5-.719.035-.255-.1-.505-.282-.656-.364-.302-.937-.376-1.469-.156zm.188.438c.37-.154.81-.064 1 .093.094.079.137.134.125.219-.012.085-.109.235-.344.406-1.412 1.009-2.129 2.664-2.406 4.438-.278 1.773-.105 3.664.28 5.218.083.354.001.592-.093.72-.094.127-.214.185-.406.155-.384-.059-.983-.554-1.219-1.718-.318-1.732-.227-3.868.281-5.688.509-1.82 1.457-3.287 2.781-3.844z" fill="#bd6b00" stroke="none"/> - <path d="M272.31 187.39h8.027v11.107h-8.027zm.47 17.46h7.747v2.333h-7.747zm-.19 4.1h7.933v8.68h-7.933zm-.56 10.46h8.68v4.853h-8.68zm1.07-16.65h6.995l1.387-2.31h-9.636l1.254 2.31zm9.43-8.51l.066-6.071h4.818c-1.893 1.561-3.652 3.454-4.884 6.071z"/> - <path d="M273.56 196.74c.048 1.299 1.518.72 1.518.066 0-2.004.027-4.17-.053-5.588-.01-1.045 2.49-.783 2.476-.14.01 1.692.029 4.012.038 5.992-.018.964 1.615.88 1.593 0-.01-2.212-.011-5.425 0-7.052.014-2.096-5.502-2.05-5.545-.047.002 1.645-.03 4.59-.027 6.769zm.01 13.24h5.694v7.094h-5.694z" fill="none"/> - <path d="M277.21 212.92h2.007v1.167h-2.007zm-3.5 0h1.96v1.167h-1.96z"/> - <path d="M275.67 210.07h1.54v2.893h-1.54zm0 3.97h1.54v3.08h-1.54zm-31.68-75.07c.356 5.567-1.371 8.623-4.32 8.158-.812-3.088 1.036-5.16 4.32-8.158zm-6.47 12.34c-2.621-1.333-.73-11.513.276-15.78.744 5.497 1.99 13.309-.276 15.78z"/> - <path d="M238.45 151.79c4.406 1.533 7.894-3.212 9.073-8.708-3.636 5.019-9.554 5.025-9.073 8.708zm-3.34 5.14c-3.445-.91-1.37-11.71-.744-16.03.757 4.462 3.132 14.552.744 16.03zm1.18-.34c.192-3.725 3.905-2.648 6.468-4.636-.418 1.86-1.994 5.16-6.468 4.636zm-4.22 4.99c-3.414-.921-1.362-12.544-1.555-17.329 1 4.135 4.17 16.209 1.555 17.329zm1.59-.5c2.797.91 6.501-.908 6.793-4.239-2.409 1.635-6.254.385-6.793 4.239z"/> - <path d="M229.52 166.71c-3.265.26-1.804-9.638-1.802-18.857 1.2 8.617 4.467 16.505 1.802 18.857z"/> - <path d="M230.65 166.26c2.205 1.106 6.156-.662 7.284-4.387-3.984 1.733-6.648.04-7.284 4.387zm25.63-22.13c-.58 4.829-2.554 7.638-5.503 7.174-.812-3.088 1.579-5.062 5.503-7.174zm-7.8 12.39c4.898.695 6.662-3.064 9.96-7.87-4.621 3.344-10.146 4.039-9.96 7.87z"/> - <path d="M247.09 155.97c-2.67-3.204-.09-7.228 1.95-10.657-.438 5.102 1.3 7.94-1.95 10.657zm-1.18 5.29c-.301-3.134 5.038-3.83 7.452-5.572-.812 1.811-2.043 6.687-7.452 5.572z"/> - <path d="M244.79 161.33c-3.691-.418-2.159-6.686.487-10.17-1.114 4.807 1.95 8.15-.487 10.17z"/> - <path d="M242.01 166.55c-4.202-1.858-1.509-7.127.07-10.238-.673 4.086 2.693 7.196-.07 10.238z"/> - <path d="M242.84 166.06c2.205 2.879 6.501-.859 7.383-5.224-3.738 3.112-6.5 2.6-7.383 5.224zm-9.6 20.26c-.432-4.287 2.793-12.084.504-16.24-.312-.571.685-2.087 1.33-1.167 1.006 1.468 2.04 5.652 2.473 4.107.459-1.68.53-4.65 2.017-5.228.949-.338 2.29-.559 1.924.934-.363 1.436-1.177 3.42-.275 3.547.523.078 2.03-1.954 3.3-2.893 1.022-.838 2.548.473 1.053 1.726-4.861 4.037-9.57 5.854-12.326 15.214zm-8.73 64.53c-.57-.11-1.352-.303-.64.584 5.678 6.996 7.321 8.924 15.602 7.94 8.365-1.102 10.357-3.364 16.214-6.65 3.129-1.836 7.703-2.243 11.17-1.106 1.614.528 2.59.56 1.434-.599-1.158-1.157-2.525-2.73-3.949-3.815-3.118-2.394-8.407-3.432-12.723-2.662-6.104.958-11.148 4.845-17.176 6.313-3.167.723-6.64.614-9.931-.005zm47.79 12.5c1.056.131 1.725 2.177 2.245.792.881-2.242.264-4.026-.727-3.829-1.17.312-3.147 2.934-1.518 3.037z"/> - <path d="M220.6 182.92c-1.215-1.269-.864-1.754.933-1.774 1.425-.09 4.25.873 5.32.093.983-.713.592-3.738 1.028-5.133.19-.778.735-1.999 1.96-.093 3.622 5.804 8.146 12.773 10.08 19.6 1.057 3.826.062 9.8-3.454 13.814.124-3.423-1.152-5.725-2.707-8.587-1.921-3.762-9.057-13.951-13.16-17.92z" stroke="none"/> - <path d="M235.53 213.44c3.983.02 4.667-5.32 4.667-6.813-1.96.373-5.414 3.64-4.667 6.813zm34.42 51.82c2.833.645 2.794-6.178-.1-9.07 1.274 4.382-2.128 8.388.1 9.07zm-1.1-.06c.187 3.243-7.959-.424-10.052-2.946 4.813 2.044 9.815.352 10.052 2.946zm-3.57-4.63c.291 3.141-7.064.38-9.238-2.074 4.83 1.56 8.917-.511 9.238 2.074zm1.35.44c2.833.645 2.374-6.412-.38-8.837 1.322 4.71-1.848 8.155.38 8.837zm-2.98-4.29c2.833.645 1.207-5.431-.893-7.857.341 4.43-1.055 7.502.893 7.857zm-1.5-.02c.292 3.235-5.43.751-7.65-2.309 4.782 1.561 7.329-.276 7.65 2.309zm-1.56-2.46c1.856-1.334-.113-4.863-3.645-4.645.346 2.132 1.566 5.88 3.645 4.645zm13.95 14.63c.187 3.243-7.96 1.63-10.519-1.825 5.139.97 10.281-.769 10.519 1.825zm-32.36-5.8c.292 3.235-8.602-.322-10.823-3.383 4.783 1.561 10.502.798 10.823 3.383zm5.45 1.38c1.856-1.334-1.933-4.77-4.951-5.578.346 2.131 2.872 6.813 4.951 5.578zm.57 2.24c.199 2.908-9.537 1.313-12.084-1.374 8.377 1.514 11.81-1.117 12.084 1.374z"/> - <path d="M252.76 268.63c1.08 2.701-8.264 2.042-11.545.471 5.301-.046 10.802-2.353 11.545-.471z"/> - <path d="M257.13 270.6c1.034 2.421-7.61 2.369-11.824 1.03 5.581-.045 10.801-3.426 11.824-1.03zm6.29 1.3c1.531 2.865-7.588 3.143-10.547 1.733 5.273-.725 9.242-3.988 10.547-1.733zm-10.68-4.9c-2.901 1.83-2.746-3.564-5.053-7.3 3.625 3.302 7.02 5.556 5.053 7.3z"/> - <path d="M257.88 268.94c-2.433 2.156-4.379-5.246-6.594-9.399 3.58 3.954 8.84 7.609 6.594 9.399zm6.8 2.06c-2.06 2.389-8.02-7.018-10.187-11.919 3.3 3.815 11.826 9.895 10.187 11.919zm-5.8 7.18c-1.028 3.632-16.192-3.423-17.885-7.079 8.677 4.598 18.092 3.636 17.885 7.079zm-48.73-73.8c-.355-.46-1.374.012-1.12 1.12.237 1.501 2.45 9.204 6.252 11.854 2.712 1.954 16.965 5.102 23.427 6.439 3.556.715 6.535 2.49 8.868 5.32-.965-3.702-1.74-6.445-2.987-9.8-1.211-2.947-4.421-6.173-7.746-6.346-6.175-.222-14.167-.748-19.974-3.268-2.997-1.252-4.792-2.943-6.72-5.32z"/> - <path d="M245.54 234.87c1.947 1.434 4.096-3.704 1.623-8.588-.078 4.701-3.815 6.28-1.623 8.588z"/> - <path d="M247.41 239.58c2.693.827 3.536-3.937 1.763-7.747.295 4.093-4.234 6.56-1.763 7.747z"/> - <path d="M249.46 243.36c2.6 1.295 3.585-3.518 1.716-7.092.204 4.56-3.72 5.904-1.716 7.092z"/> - <path d="M248.39 243.65c-1.03 3.08-7.007-2.655-8.014-5.775 3.71 3.685 8.757 3.278 8.014 5.775z"/> - <path d="M245.68 238.94c-1.171 3.08-8.687-4.85-10.348-8.668 3.71 3.685 11.184 6.498 10.348 8.668z"/> - <path d="M244.19 234.32c-1.17 3.5-9.34-5.829-11.654-9.135 3.897 3.639 12.537 6.592 11.654 9.135zm-.26-3.46c2.877-.56-.163-2.955-3.69-6.849-.164 4.1.509 6.966 3.69 6.849z"/> - <path d="M239.08 228.53c1.242-1.353-1.19-1.929-4.203-5.31-.444 2.28 2.794 6.454 4.203 5.31zm13.92 15.2c1.574.921 2.652-2.304.69-5.225-.45 3.16-2.133 4.037-.69 5.225zm-34.19-20.35c-3.342 2.004-8.652-5.992-10.068-9.282 2.933 3.776 10.699 7.224 10.068 9.282z"/> - <path d="M221.65 228.04c-1.85 2.05-7.671-3.519-9.694-6.341 3.12 2.702 10.512 3.023 9.694 6.341z"/> - <path d="M224.82 232.22c-.61 2.801-9.106-3.495-11.092-6.476 3.663 3.452 11.649 3.14 11.092 6.476z"/> - <path d="M223.52 235.25c-1.31 2.522-8.22-3.727-9.88-6.987 4.223 3.685 10.95 4.493 9.88 6.987zm-3.55-12.28c2.18-2.299 1.252-3.376-.338-7-.869 3.721-2.18 5.206.338 7zm2.89 4.34c3.954.174.038-4.638-.897-8.68.344 4.607-1.014 8.238.897 8.68z"/> - <path d="M225.38 231.13c2.74-.62 1.95-4.497-.15-9.193.436 5.073-2.321 8.005.15 9.193zm-.93 7.67c-1.03 3.08-8.826-4.056-10.067-6.755 3.943 3.312 10.763 4.445 10.067 6.755z"/> - <path d="M229.12 243.61c-1.17 3.082-9.34-3.167-11.839-6.568 4.922 3.872 12.443 3.513 11.839 6.568z"/> - <path d="M233.88 248.46c-1.31 4.294-9.853-2.56-12.399-5.915 5.436 4.151 13.096 2.86 12.399 5.915zm-8.03-11.03c2.32 1.201 3.258-5.384 1.949-10.033.017 5.074-4.654 8.845-1.949 10.033z"/> - <path d="M229.81 242.66c2.788.828 1.904-6.27-.478-10.873-.309 4.561-2.366 8.892.478 10.873zm4.95 4.9c3.114.174.971-6.084-1.597-9.613.437 4.607-1.013 9.079 1.597 9.613zm-5.46 2.67c-.936 1.586-3.226-1.347-6.986-3.489 3.382.885 7.402 2.019 6.986 3.489zm-1.78-52.74c2.906-2.15.69-6.173 0-9.998-.935 3.628-3.397 8.389 0 9.998zm-.1 5.36c-4.366-.524-3.71-6.171-3.84-9.75 1.312 4.858 4.891 5.679 3.84 9.75zm.69-.73c3.694-.214 3.498-4.417 3.695-8.668-1.872 3.907-4.09 4.514-3.695 8.668z"/> - <path d="M227.96 207.34c-2.873.23-4.366-2.594-5.023-6.993 2.725 4.054 5.203 2.79 5.023 6.993zm1.03-.35c3.694.475 3.104-3.825 2.955-6.995-1.132 3.022-4.136 3.974-2.955 6.995z"/> - <path d="M223.23 205.17c.295 2.807 2.07 7.634 4.926 6.55 1.181-3.448-2.513-4.137-4.926-6.55z"/> - <path d="M229.04 212.02c-1.28-2.462 2.905-3.695 3.792-6.895.509 4.58.082 7.584-3.792 6.895zm-11.91-29.18c2.3-2.477.269-6.406-.42-10.231-.936 3.628-2.557 8.435.42 10.231zm-.07 4.61c-4.039.41-5.016-7.804-5.427-11.337 1.313 4.859 5.965 7.08 5.427 11.337zm.83-.08c2.854-1.474 2.191-4.65 3.088-7.035-1.919 2.928-3.669 3.347-3.088 7.035z"/> - <path d="M217.09 192.75c-4.225.362-6.742-8.739-6.874-12.318 1.313 4.859 7.366 7.5 6.874 12.318zm.81-.14c3.973-.914 3.498-3.483 2.902-7.642-1.265 4.188-3.483 3.3-2.902 7.642z"/> - <path d="M217.04 198c-4.646.788-4.32-6.56-8.009-11.893 3.191 3.96 8.936 8.95 8.009 11.893zm1.05-.25c3.507.102 3.85-5.179 3.656-7.32-.807 2.133-4.93 4.159-3.656 7.32z"/> - <path d="M209.78 192.34c1.742 5.654 4.216 11.32 7.259 10.89 1.46-3.215-2.887-3.624-7.259-10.89z"/> - <path d="M218.14 202.4c-1.28-2.462 2.905-3.695 3.792-6.895.509 4.58.082 7.584-3.792 6.895zm-7.16-3.6c2.487 5.094 3.609 10.948 7.024 10.097 1.275-3.961-3.771-4.79-7.024-10.097z"/> - <path d="M218.71 207.93c-1.467-2.695 2.719-3.648 3.745-7.362.556 4.86.036 8.33-3.745 7.362zm7.16-34.48c2.451.663 5.022-2.09 4.131-6.208-2.801.697-4.087 3.24-4.131 6.208zm-7.84-2.06c.214 1.159 1.623 1.264 1.214-.373-.342-1.328-.4-2.327 0-3.407.548-1.353.365-3.658-.047-4.62-.416-1.015-1.793-.42-1.214.375.638.92.672 2.837.233 3.732-.577 1.32-.42 3.075-.186 4.293zm22.87 15.92c-.947 1.393-2.881.541-1.408-1.372 1.208-1.549 2.928-2.814 3.055-4.414.1-2.029 1.291-5.107 2.373-6.145 1.118-1.106 2.409.45 1.214 1.188-1.342.872-2.214 4.456-2.185 5.836-.045 2.001-2.041 3.447-3.049 4.907zm-2.98-2.24c-.947 1.393-2.457.585-1.601-1.652.722-1.549.8-3.468 1.604-4.6 1.125-1.717 3.03-3.147 4.112-4.186 1.118-1.106 2.046-.04 1.021.908-1.244 1.245-2.595 2.795-3.345 3.97-1.4 2.28-.783 4.1-1.79 5.56zm-15.74-7.21c-.112 1.967 1.47 2.443 1.4-.409-.072-2.978-2.179-5.702-.886-10.235.68-2.217.691-6.281.28-8.441-.363-2.142-1.887-.743-1.308.925.638 1.935-.12 5.645-.607 7.511-1.463 5.434 1.207 8.08 1.121 10.65zm4.32-10.88c-.232 1.81-1.764 1.974-1.319-.582.371-2.075.435-3.635 0-5.321-.596-2.114-.397-5.714.05-7.216.452-1.585 1.95-.656 1.32.584-.694 1.439-.73 4.432-.254 5.83.627 2.063.457 4.802.203 6.705zM210.94 204c.758.902 2.036.298.871-.923-.952-.987-.639-1.298-1.22-2.5-.574-1.343-.544-2.084-1.237-3.044-.613-.91-1.535.019-.917.785.775.906.561 1.574 1.035 2.45.877 1.5.663 2.288 1.468 3.232zm20.4 24.61c2.44 1.2 4.291 4.196 4.413 6.636.207 2.809.612 5.18 1.873 7.176-2.008-.559-2.97-3.76-3.255-6.825-.29-3.173-1.999-4.549-3.031-6.987zm5.08 5.88c1.688 3.116 4.049 4.304 4.17 6.617.204 2.66.406 2.797 1.127 5.413-1.987-.53-2.487-.703-3.024-4.684-.33-2.798-2.57-4.772-2.273-7.346z"/> - <path d="M288.97 263.32c.949 1.788 2.038 4.51 4.013 4.013.03-1.37-2.131-2.318-4.013-4.013zm2.94.61c3.835 1.572 7.147 1.184 7.56 3.595-3.598.388-4.914-1.09-7.56-3.595zm-16.06-12.69c2.583 2.116 4.259 4.531 5.04 7.653.815 2.908 1.96 5.226 3.641 7.84-2.738-1.867-4.46-4.407-5.32-7.467-.757-3.009-1.65-5.257-3.361-8.026zm3.18-.01c2.77 2.21 5.38 4.719 6.16 7.84.815 2.908 1.308 5.134 3.175 8.027-2.925-1.867-4.086-4.688-4.947-7.748-.756-3.007-2.49-5.255-4.388-8.119zm9.14 7.24c-.076-.546.297-1.023.747-1.166a33.429 33.429 0 0 1 2.612-.84c.986-.233 1.538.47 1.541.933.005.77.04 1.423 0 2.006-.053.726-.192.78-.653.888-.738.124-1.685.25-2.426.746-.588.361-1.153.076-1.447-.559-.19-.485-.294-1.433-.374-2.008zm10.63 0c.068-.546-.22-1.07-.621-1.213-.781-.327-1.56-.407-2.38-.374-.912-.014-1.141.192-1.144.654-.004.77-.037 1.516 0 2.099.048.726.032.78.444.888.66.124 1.784.157 2.447.653.525.36 1.124.075 1.153-.606-.013-.513.03-1.526.1-2.101z" stroke="none"/> - </g> - <use transform="scale(-1 1)" xlink:href="#a" x="-600" width="100%" height="100%"/> - <g stroke="none"> - <path d="M328.54 286.65c.047 1.181.188 2.131.888 3.08-4.076-1.633-9.831-.759-13.767 1.074-1.756.838-3.88-.958-1.821-2.66 2.93-2.374 9.706-1.028 14.7-1.494zm-57.505-.062c.057 1.113-.072 2.133-.481 3.106 4.43-1.835 9.187-.31 13.664 1.494 3.077 1.273 3.325-.93 2.782-1.692-.934-1.353-2.742-2.838-5.028-2.87-1.522-.021-7.382-.074-10.937-.038zm3.74-21.642c-1.236-.533-2.672-.02-3.96 1.335-4.327 4.24-9.404 8.371-13.502 11.584-1.529 1.329-3.091 3.712 3.431 6.094.237.09 4.991 1.852 8.004 1.964 1.23-.034 1.227 1.803.999 2.293-.52.978-.143 1.352-1.193 2.293-1.095.924.117 2.12.977 1.307 3.672-3.188 9.627-1.148 15.366.718 1.356.375 3.837.27 3.815-1.6.024-2.038 1.5-3.48 2.404-3.532 2.343.406 13.919.535 17.485.102 2.079-.27 2.204 2.848 3.316 4.077.767.815 3.72 1.031 5.743.137 4-1.858 10.097-1.858 12.582-.082 1.021.778 1.828.147 1.247-.643-.748-1.08-.731-1.58-1.103-2.433-.933-1.898-.188-2.363.79-2.5 11.054-1.426 14.582-5.197 11.202-8.272-4.364-3.828-9.222-7.676-13.408-12.198-1.135-1.2-1.885-1.68-4.247-.699-7.221 3.289-16.388 5.687-25.358 5.862-8.347.072-19.824-3.79-24.589-5.807z"/> - <path d="M326.62 265.54c-.58.058-1.197.238-1.656.406-8.921 3.134-17.117 5.328-25.656 5.313-8.335-.016-17.066-2.31-24.906-5.531-.446-.191-.96-.161-1.469-.032-.509.13-1.012.366-1.344.688-3.64 3.626-7.582 7.148-11.812 10.344-.639.488-.535 1.73.5 2.156h.031c8.305 2.98 16.412 8.532 39.625 8.313 23.433-.222 31.746-5.64 39.188-8.125.525-.2 1.065-.5 1.313-.97a1.03 1.03 0 0 0 .062-.812c-.095-.286-.283-.554-.625-.843h-.03c-4.224-3.453-8.75-6.207-11.72-10.406-.334-.48-.92-.558-1.5-.5zm.031.438c.507-.051.895.027 1.094.312 3.041 4.301 7.621 7.074 11.812 10.5.3.254.442.48.5.656a.498.498 0 0 1-.031.438c-.15.284-.59.57-1.063.75-7.534 2.515-15.668 7.904-39.03 8.125-23.116.218-31.095-5.303-39.47-8.313-.754-.31-.687-1.16-.406-1.375 4.242-3.206 8.227-6.741 11.875-10.375.25-.243.653-.45 1.094-.562.44-.113.912-.131 1.219 0 7.879 3.238 16.613 5.578 25.03 5.594 8.619.015 16.904-2.204 25.845-5.344.445-.163 1.024-.356 1.53-.406z" fill="#bd6b00"/> - <path d="M269.71 114.56c-.068-1.379 2.07-1.484 1.824.412-.313 2.362 4.459 8.342 4.854 12.029.265 2.473-1.453 4.637-3.154 5.984-2.086 1.616-5.293 1.394-6.794.467-.908-.731-1.735-3.234-1.056-4.224.24-.334 1.328 3.673 3.722 3.657 3.258-.02 5.896-2.468 5.993-4.65.167-3.802-5.33-9.81-5.389-13.676zm9.53 9.39c.539-.385 1.399 1.296.792 1.716-.505.337-1.492-1.25-.792-1.716zm1.45-3.41c-.272.132-.814-.056-.652-.287.762-1.089 2.387-2.728 3.565-3.3.362-.176.995.463.776.776-.705 1.007-2.42 2.195-3.689 2.811zm12.59-9.99c.302-.63 2.117-1.344 2.58-1.77.427-.439.631.37.448.751-.302.63-1.868 1.696-2.555 1.724-.37.016-.656-.324-.473-.705zm4.31.2c.393-1.107 1.66-2.786 2.533-3.339.448-.283 1.252-.06 1.101.364-.333.94-1.884 2.581-2.927 3.355-.316.282-.798-.123-.707-.38zm-3.69 2.77c-.263.132-.12.691.133.776.538.18 1.52.214 1.964-.03.645-.398.35-2.845-.513-1.538-.58.806-1.002.547-1.584.792zm-7.29 5.62c-1.318-1.026.355-2.464 1.732-1.46 2.683 2.024-4.003 9.778-7.64 13.403-.666.71-1.25-1.078-.397-1.848 2.608-2.212 5.05-4.855 6.747-7.586.327-.525.64-1.658-.442-2.509zm15.27-6.67c.164-.982-1.589.02-1.621-1.281-.017-.69 1.915-1.173 2.722-.38 1.365 1.384.345 3.718-1.924 3.865-1.891.084-5.046 2.685-4.566 3.232.546.675 5.45 1.121 8.302.675 1.765-.248 1.395 1.331-.414 1.545-1.747.201-3.171.015-4.805.528-1.922.549-2.76 3.13-3.828 4.092-.238.167-.88-.846-.636-1.227.77-1.203 1.996-3.045 3.346-3.572.852-.345-2.348-.454-3.37-.745-.81-.244-.574-1.274-.264-1.848.412-.895 3.429-3.916 4.645-3.867 1.142.049 2.3-.284 2.413-1.017zm5.08.26c.567-.5.858-1.338 1.453-1.848.326-.327.847.065.76.853-.073.621-.907 1.156-1.468 1.623-.456.342-.986-.396-.745-.628zm6.47-2.3c.845-.093 1.055 1.537.131 1.801-.56.187-1.05-1.705-.131-1.801zm-2.13 5.04c-.013 1.404.68 1.275 2.002 1.227 1.283-.049 2.412.033 2.407-1.235-.006-1.314-.727-2.464-.939-1.57-.186.84-.334 2.216-.823 1.617-.46-.515-.278-.628-1.071.217-.44.466-.49-.226-.754-.66-.184-.257-.82.208-.822.404zm-9.22 7.16c-.315 1.858-.026 4.459.925 4.488 1.175.038 3.607-4.061 4.759-6.188.69-1.187 1.877-1.394 1.382-.156-.749 1.91-.682 5.998-.024 7.199.354.647 2.964-.593 3.386-1.515.767-1.675.143-4.762.412-6.647.13-1.237 1.263-1.496 1.203-.349-.112 2.052-.307 5.815-.162 7.524.086.982 2.894 2.432 3.346-.543.238-1.872 1.202-3.719-.047-5.793-.774-1.297 1.136-1.134 2.166.637.72 1.206-.607 3.202-.56 4.744.12 2.373-1.726 3.722-3.066 3.75-1.197.024-1.977-1.446-2.957-1.467-1.089-.07-2.207 1.693-3.106 1.63-3.486-.238-1.64-5.333-2.703-5.395-1.181-.07-2.574 4.994-4.03 4.813-1.434-.172-2.919-4.127-2.322-5.8.54-1.557 1.558-1.922 1.398-.932z"/> - <path d="M318.96 114.6c-1.701-1.038.108-3.736.939-2.788 1.606 1.923 3.224 6.487 4.356 6.864.716.24.683-3.374 1.188-5.016.326-1.213 1.793-.817 1.513.737-.096.52-1.917 6.422-1.777 6.655 1.262 2.522 2.51 5.081 3.3 7.788.326 1.167-1.075.381-1.243.139-.894-1.338-2.46-6.452-2.46-6.219-.72 3.598-.89 4.66-1.655 7.717-.233.98-1.675.802-1.35-.924.313-1.418 2.375-8.392 2.259-8.594-1.621-2.862-3.104-5.125-5.07-6.359z"/> - <path d="M322.03 131.2c-.474-.054-1.21 1.055 1.152 1.49 3.156.572 6.61-.491 7.67-3.586 1.212-3.687 2.013-7.177 2.646-8.493.791-1.535 1.803-1.411 1.056-3.651-.526-1.612-1.51-1.126-1.716-.264-.552 2.35-2.646 9.952-3.3 11.352-1.233 2.555-3.718 3.565-7.508 3.152z"/> - <path d="M328.35 119.07c-.338-.725-1.127-.164-.986.63a1.197 1.197 0 0 0 1.25 1.086c.692-.024 2.155.023 2.159-1.125.002-.807-.632-1.481-1.103-.591-.45.806-1.03.722-1.32 0zm.79-3.04c-.243.168-.025 1.066.264 1.056 1.031-.035 2.492-.363 3.275-.908.229-.16.133-.702-.193-.69-.994.032-2.575.006-3.346.542zm8.76 2.26c.747-1.167 2.806-1.286 2.066.38-.525 1.148-5.652 11.055-6.352 12.315-.764 1.417-1.389.715-.846-.388.73-1.42 4.898-11.962 5.132-12.307z"/> - <path d="M330.18 133.04c-.219-.788-1.442-1.954-1.304.155.243 3.828 5.503 2.618 7.096 1.257 1.445-1.28.19 4.323 2.112 4.922 1.058.34 3.05-1.105 4.03-2.376 2.717-3.525 4.446-8.578 7.058-12.058.987-1.36-.54-2.332-1.157-1.25-2.272 3.81-5.094 11.586-8.176 13.605-2.513 1.608-1.768-2.07-1.856-3.176-.11-.81-1.097-2.003-2.415-.908-.921.72-2.352 1.305-3.648 1.188-.752-.042-1.386-.029-1.74-1.359z"/> - <path d="M339.57 125.93c.028-.216-1.112-.314-1.056.792.04.819 1.019 1.041 1.188.924 1.54-1.12-.328-.562-.132-1.716zm-2.24 4.49c-.303.071-.582 1.04.133 1.095.653.046 3.213-.229 3.92-.187.458-.017.632-.892-.348-.845-1.19.06-2.754-.239-3.705-.063zm-61.96-16.66c.406.02 1.52 1.462 1.447 1.913-.05.213-1.191-.031-1.54-.326-.258-.219-.154-1.599.093-1.587zm-5.369 10.452c-1.017.555.162 1.651.924 1.188 2.86-1.853 7.154-3.799 8.052-7.468.287-1.243 1.443-3.148 2.54-3.573 1.059-.411 2.598 1.917 3.602.085.59-1.047 2.654.687 3.152-.433.607-1.354.318-2.099.343-3.395-.045-.85-.693-1.103-1.164.272-.245.623.043 1.251-.156 1.576-.152.247-.625.486-.9.28-.253-.19-.078-.72-.685-.955-.235-.118-.612-.216-.776.086-.72 1.284-1.12 2.482-2.128 1.117-.898-1.176-1.353-3.209-2.011-.427-.237.982-1.73 2.407-2.61 2.407-1.099 0-.823-2.894-3.237-2.453-1.241.264-1.155 2.64-.97 3.517.305 1.22 3.931.344 3.751 1.141-.62 2.771-4.467 5.406-7.727 7.035zM247.3 137.42c-.154.464.462 1.723 1.101 1.816.628.046.948-1.36.746-1.816-.15-.336-1.737-.329-1.847 0zm3.33 4.88c-.403-.434-1.589.73-.63 1.553.54.436 2.513 1.07 3.053.148.73-1.185-.72-5.488-.078-6.057.502-.444 2.828 2.875 3.976 3.114 2.697.373 2.05-4.619 4.956-4.28 1.98.264 2.198-2.211 1.922-3.756-.22-1.483-2.622-3.624-3.726-4.582-1.452-1.21-2.1.892-1.188 1.584 1.173.94 3.236 2.837 3.565 4.093.155.592-1.434 1.77-2.02 1.451-1.35-.737-2.607-3.898-3.789-4.62-.402-.246-1.393.31-.916 1.296.536 1.057 2.905 2.693 3.044 3.821.125 1.029-1.056 3.253-1.831 3.253-.853 0-3.028-2.688-3.706-3.953-.34-.606-1.515-.547-1.638.29-.195 1.255.182 3.912.481 5.558.238 1.559-.878 1.638-1.475 1.087zm-4.07-8.57c-.34.384.792 1.134 1.017.94.436-.378 2.128-2.308 1.802-2.983-.29-.601-2.618-1.918-2.997-1.266-.702 1.128 2.195 1.634 1.74 1.965-.223.128-1.02.679-1.562 1.344zm4.17-8.46s.728 2.49 1.32 1.452c.48-.719-1.32-1.452-1.32-1.452zm1.19 3.96c-.266.146-1.017.74-.528 1.056.773.457 2.875.82 2.421-.676-.275-.88 3.171.025 2.331-2.36-.22-.66-1.259-1.612-1.77-1.747-.325-.085-1.429.52-.738.854.504.26 2.024 1.154 1.46 1.74-.642.612-1.089-.275-1.887-.132-.401.076-.14 1.218-.366 1.53-.126.172-.706-.383-.923-.265zm5.48-9.46c-.435.217-1.214 1.396-1.242 1.941-.016.291.303.691.552.567.456-.228 1.16-1.344 1.187-1.856.017-.324-.227-.787-.497-.652zm2.84-.31c-.84-1.027.891-2.55 1.67-.496.47 1.29 5.488 7.892 6.514 10.132.727 1.516-.026 2.142-.924 1.056-2.541-3.242-4.626-7.283-7.26-10.692zm5.15.14c.895-.97 2.721-2.95 2.23-4.053-.378-.95-1.488-.856-1.678-.636-1.086 1.296.772.97.504 1.413-.553 1.038-1.104 1.61-1.39 2.608-.066.234.173.843.334.668zm77.78 3.24c-.643-.52.632-3.044 1.494-2.053 2.368 2.74 3.469 11.636 4.153 18.294 0 0-1.064.887-1.073.746 0-3.547-1.425-14.397-4.574-16.987zm-53.1-8.66c-.766-1.76 1.15-2.412 1.436-1.157 1.33 5.783 4.517 10.16 6.942 14.093.73 1.23.145 1.962-1.63.83-1.23-.842-2.478-3.916-3.083-4.037-1.094-.204-3.713 4.993-9.07 3.51-1.385-.388-1.293-4.508-1.32-6.329-.058-.853.885-1.078.917.086.049 1.678-.002 5.164 2.144 5.281 1.75.098 5.627-2.376 6.444-4.31.728-1.99-1.952-5.942-2.78-7.967z"/> - <path d="M344.61 138.38c.428-1.191 6.114-10.735 6.86-12.835.383-1.013 2.015 1.737.421 3.22-1.4 1.26-5.53 8.034-6.301 10.408-.355 1.072-1.432.562-.98-.793z"/> - <path d="M354.28 129.28c1.05-3.935 3.593.607 1.353 2.847-3.458 3.387-4.5 9.854-9.987 10.827-1.479.318-4.082-.666-4.853-1.214-.301-.214.194-1.618 1.119-.933 1.337 1.044 4.098 1.28 5.555.093 3.118-3.06 5.657-7.113 6.813-11.62zm-57.01 12.74c-.247.284-1.004.238-1.072.637-.297 1.48 0 2.23-.326 3.655-.312 1.365-1.259 1.416-1.194.304.086-1.442 1.274-3.478.435-3.618-.56-.13-.99-.879-.413-1.248 1.092-.757 1.679-.641 2.43-.413.26.08.328.464.14.683z"/> - <path d="M296.5 140.09c-1.448 1.266-2.79 1.784-4.123 3.384-.544.656-.529 1.57-.854 2.406-.326.888-1.375 1.062-1.7.877-.543-.357-.465-2.003-1.071-1.117-.515.816-.847 1.94-1.608 1.926-.689-.014-1.987-1.422-1.329-1.49 2.252-.23 2.225-2.033 3.068-2.151.946-.127 1.008 1.488 1.592 1.165.46-.236.675-2.117 1.173-2.625 1.527-1.56 2.735-2.385 4.293-3.531.788-.629 1.35.505.559 1.156zm5.28 4.85c-1.159.234-.962 1.724-.621 1.909.561.262 1.43.372 1.755-1.342.151-.703.289 3.498 1.831 1.88.888-.981 3.087.178 4.008-1.056.66-.822.863-1.396.349-2.61-.15-.369-1.053-.187-1.001.709.045.755-.535 1.687-1.29 1.528-.367-.067.206-1.847-.162-2.33-.203-.265-.511-.236-.713.039-.283.384.284 2.09-.646 2.315-1.174.27-.56-1.141-1.056-1.4-1.599-.806-1.753.21-2.454.358zm9.05-2.86c.85-.239.584-.24 1.921-1.334.52-.395.624.76.569 1.216-.097.775-1.018.228-1.304.91-.418.886-.248 2.948-.388 3.788-.096.431-.787.394-.853.054-.198-1.024.14-2.026.108-3.307-.011-.435-.634-1.117-.053-1.327zm-5-2.62c-.205.927-.19 1.69-.19 2.325.047.514.986.183.982.118-.047-.814.139-1.94-.102-2.253-.13-.17-.642-.365-.69-.19z"/> - <path d="M299.54 130.19l-1.458 5.594-2.03-3.75v3.844l-4.374-5.188 1.521 5.563-3.93-3.344 2.092 3.781-6.975-4.5 4.438 5.188-5.58-2.75 3.995 3.375-9.13-3.438 8.813 4.344c3.223-1.588 7.64-2.563 12.554-2.563 4.896 0 9.335.985 12.554 2.563.012.006.052-.006.064 0l8.75-4.344-9.004 3.469 3.931-3.406-5.516 2.718 4.375-5.156-6.975 4.5 2.093-3.781-3.932 3.344 1.522-5.563-4.375 5.22.063-3.876-2.029 3.75-1.458-5.594z"/> - </g> - </g> - <path d="M311.3 294.91c0 .63-.094 1.541-.284 2.731h-.44c0-.81-.038-1.434-.114-1.87a9.256 9.256 0 0 0-.427-1.558 7.26 7.26 0 0 0-.576-1.294c-.209-.36-.543-.84-1.003-1.437l.882-2.176c.408.522.697.922.868 1.202.194.322.377.728.547 1.216a9.363 9.363 0 0 1 .548 3.186m6.912-4.211c0 .664-.125 1.162-.377 1.493-.25.332-.68.57-1.287.712.176.616.292 1.097.349 1.443.061.346.092.733.092 1.16 0 .274-.016.568-.05.881a22.48 22.48 0 0 1-.163 1.266h-.398a8.24 8.24 0 0 0-.079-1.223 5.528 5.528 0 0 0-.22-.974c-.024-.076-.15-.41-.377-1.003a10.525 10.525 0 0 0-.669-1.486c-.218-.399-.576-.946-1.073-1.643l.682-2.048c.36.516.676.874.946 1.073.27.195.59.292.96.292.806 0 1.21-.436 1.21-1.308h.412c0 .284.007.521.02.71.015.186.022.404.022.655m6.349 4.807l-.512 2.133c-.322-.09-.585-.343-.79-.76-.17-.347-.293-.785-.369-1.316a12.416 12.416 0 0 1-.107-1.65c-.431.114-.772.17-1.024.17-.498 0-.91-.13-1.237-.39a1.245 1.245 0 0 1-.484-1.003c0-.868.223-1.648.669-2.34.45-.697.957-1.045 1.522-1.046.436 0 .74.124.91.37a2 2 0 0 1 .348.925c.043.346.064 1.014.064 2.005 0 .887.072 1.513.214 1.878.114.284.379.626.796 1.024m-1.92-3.542c-.085-.54-.37-.81-.853-.81-.209 0-.4.056-.576.17-.176.114-.263.213-.263.299 0 .284.34.427 1.024.427.218 0 .44-.029.668-.086m8.641 3.01l-.256 2.589c-.507-.356-.976-.998-1.408-1.927-.45-.972-.905-2.35-1.365-4.132-.394 1.716-.719 2.975-.975 3.776-.25.796-.5 1.36-.746 1.693-.166.222-.432.448-.797.675l.057-2.475c.47-.64.799-1.128.989-1.465a7.63 7.63 0 0 0 .69-1.742c.184-.669.35-1.562.497-2.681h.47c.289 1.123.569 2.017.839 2.68.251.627.545 1.18.882 1.658.237.336.611.787 1.123 1.351" fill="#fff"/> - <path d="M350.82 319.391c.345.405.588.803.728 1.193.136.385.234.935.295 1.65l-.772.064c-.328-.643-.648-1.147-.959-1.511-.236-.278-.62-.673-1.148-1.185a46.038 46.038 0 0 0-1.62-1.496 34.384 34.384 0 0 0-2.123-1.7c-.302-.224-.493-.384-.575-.48-.12-.141-.215-.42-.285-.834a11.21 11.21 0 0 1-.139-1.565l2.693 2.19a44.317 44.317 0 0 1 2.523 2.217c.513.493.973.98 1.38 1.457m-9.55-5.756l-.162 1.98-3.172-.085.239-2.021 3.094.126m8.343 8.866l-7.557 2.302-1.39-1.922 6.532-1.99c-.296-.41-.525-.696-.688-.86a2.834 2.834 0 0 0-.865-.59 1.423 1.423 0 0 1-.451.957c-.28.275-.64.48-1.083.615a3.379 3.379 0 0 1-1.741.073c-.58-.128-1.006-.38-1.279-.757-.402-.556-.618-1.295-.647-2.217-.034-1.013.244-1.61.832-1.788.762-.232 1.792-.02 3.091.636 1.299.656 2.296 1.464 2.991 2.425l2.255 3.116m-5.804-4.035c-.356-.162-.64-.262-.855-.3a1.135 1.135 0 0 0-.576.012.685.685 0 0 0-.45.37.493.493 0 0 0 .061.524c.078.109.21.18.395.216.19.029.39.011.6-.053.167-.05.311-.132.434-.245.127-.119.257-.293.391-.524m-8.095-1.547l-.462 1.96-3.143-.288.477-1.98 3.128.308m7.45 7.654l-1.679.385a5.29 5.29 0 0 1-1.704.126 3.559 3.559 0 0 1-1.513-.506c-.278.506-.766.93-1.464 1.272a7.41 7.41 0 0 1-1.613.552l-1.19.273-1.091-2.002 1.19-.273c.628-.144 1.056-.264 1.284-.36.233-.104.525-.278.876-.524-.385-.237-.695-.4-.93-.49-.288-.106-.54-.133-.76-.083a.402.402 0 0 0-.206.114.61.61 0 0 0-.126.26l-.523.07c-.484-.887-.594-1.574-.331-2.059.267-.492.912-.855 1.932-1.089 1.051-.241 1.949-.295 2.693-.162.749.126 1.25.422 1.504.888.137.25.188.509.155.776-.036.262-.166.64-.39 1.132.156.07.34.11.55.122a2 2 0 0 0 .567-.039l1.678-.385 1.09 2.002m-8.022 1.866l-1.637.257c-.912.143-1.66.003-2.247-.419-.652-.465-1.214-1.332-1.687-2.601l-.806-2.162c-.182-.491-.43-.856-.742-1.096-.15-.116-.455-.269-.913-.46l.556-2.094c.602.334 1.067.684 1.393 1.05.382.427.706.997.972 1.71l.556 1.495c.394 1.057.776 1.773 1.147 2.149.294.301.628.423 1.002.364l1.637-.256.769 2.063m-6.995-7.513l-1.057 1.86-2.99-.69 1.065-1.877 2.982.707m1.74 8.424l-7.458.675-.452-2.102 6.266-.568a2.322 2.322 0 0 0-.668-.846c-.148-.123-.475-.33-.983-.62l.557-1.926c.69.384 1.194.806 1.511 1.266.326.46.59 1.16.793 2.103l.434 2.018m-5.987.954c-.897-.03-1.639-.096-2.225-.199a10.49 10.49 0 0 1-1.722-.456 5.613 5.613 0 0 1-1.283.38c-.365.055-.913.07-1.641.047l-1.958-.065c-.537-.018-.954-.123-1.252-.316-.298-.192-.555-.502-.77-.932a4.117 4.117 0 0 1-1.551.887c-.477.145-1.04.207-1.689.186l-1.718-.057.168-2.12 1.718.057c.84.028 1.553-.102 2.138-.39.76-.376 1.173-.972 1.237-1.788l.787.104c-.029.166-.06.355-.093.568-.033.212-.06.449-.08.708-.02.265.102.49.368.677.266.186.58.285.94.297l1.478.049c.977.032 1.68-.033 2.11-.196.522-.196.806-.585.852-1.167.01-.125.079-.234.207-.33.076-.054.231-.135.464-.242l.475-.218c.009.099.01.235.005.406a8.87 8.87 0 0 1-.014.328c-.023.286-.117.663-.282 1.132.289.103.614.195.978.274.363.08.747.145 1.152.195.014-.177-.068-.409-.246-.696s-.263-.48-.255-.579a.522.522 0 0 1 .109-.309c.018-.025.112-.103.283-.233l1.092-.862c.19.335.319.638.386.912.075.268.096.602.065 1.002l-.233 2.946m-11.32-8.71l-1.884 1.333-1.42-.877-1.399 1.043-1.868-1.127 1.784-1.27 1.508.843 1.457-1.065 1.822 1.12m-2.962 8.119l-7.3-1.196.8-2.058 6.135 1.005c.048-.357.005-.673-.128-.947-.066-.15-.25-.422-.551-.815l1.634-1.648c.416.525.638 1.039.665 1.542.035.505-.127 1.219-.486 2.142l-.77 1.975m-6.145-.953l-1.579-.38c-.88-.211-1.38-.598-1.504-1.16-.14-.623.139-1.546.839-2.77l1.191-2.086c.27-.473.38-.866.327-1.178-.025-.15-.146-.388-.363-.712l2.264-1.536c.213.495.297.954.253 1.376-.051.493-.273 1.083-.666 1.77l-.824 1.442c-.583 1.02-.882 1.753-.897 2.199-.016.356.157.578.518.665l1.579.38-1.138 1.99m-3.739-7.901l-2.562 1.081-1.76-1.714 2.584-1.09 1.738 1.723m-1.09 6.62c-.532.629-1.056 1.101-1.57 1.417a4.24 4.24 0 0 1-1.714.582c-.626.08-1.419.043-2.378-.109a14.838 14.838 0 0 1-2.764-.691c-1.708-.609-2.854-1.282-3.438-2.018-.58-.73-.556-1.466.073-2.21a7.023 7.023 0 0 1 1.914-1.579c.813-.464 2.083-.99 3.809-1.581l.389.513c-1.348.522-2.278.918-2.79 1.187-.504.272-.912.592-1.225.961-.406.48-.344 1.012.184 1.598.54.584 1.452 1.105 2.739 1.564 1.265.45 2.463.673 3.593.666 1.131-.006 1.89-.238 2.276-.694.24-.282.4-.59.48-.924.088-.33.141-.89.16-1.68l2.491-1.515c.001.754-.034 1.26-.107 1.52-.125.472-.446 1.013-.963 1.624l-1.159 1.368" fill="#bf0000"/> -</svg> diff --git a/img/flags/4x3/ag.svg b/img/flags/4x3/ag.svg deleted file mode 100644 index f6a9ad4..0000000 --- a/img/flags/4x3/ag.svg +++ /dev/null @@ -1,15 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" height="480" width="640" viewBox="0 0 640 480"> - <defs> - <clipPath id="a"> - <path fill-opacity=".67" d="M-79.698 0h682.67v512h-682.67z"/> - </clipPath> - </defs> - <g clip-path="url(#a)" fill-rule="evenodd" transform="translate(74.717) scale(.9375)"> - <path fill="#fff" d="M-120 0h763.27v511.49H-120z"/> - <path d="M-118.31.617h760.88v216.09h-760.88z"/> - <path fill="#0061ff" d="M21.3 203.23h505.01v113.82H21.3z"/> - <path d="M642.75 1.753v510.25H262.03L642.75 1.753z" fill="#e20000"/> - <path d="M-118.69 1.753v510.25h380.72L-118.69 1.753z" fill="#e20000"/> - <path d="M440.37 203.34l-76.31-19.363L428.98 135l-79.726 11.39 41.003-69.475-70.616 41.003 12.53-80.867-47.837 63.783L264.97 26.8l-21.64 76.31-47.837-64.92 13.667 83.145-70.615-43.282 41.003 69.476-77.45-12.53 63.783 47.838-79.727 20.5h354.22z" fill="#ffd600"/> - </g> -</svg> diff --git a/img/flags/4x3/ai.svg b/img/flags/4x3/ai.svg deleted file mode 100644 index 8cbe796..0000000 --- a/img/flags/4x3/ai.svg +++ /dev/null @@ -1,767 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" height="480" width="640" viewBox="0 0 640 480"> - <defs> - <clipPath id="a"> - <path fill-opacity=".67" d="M0 0h640v480H0z"/> - </clipPath> - </defs> - <g clip-path="url(#a)"> - <path fill-rule="evenodd" fill="#fff" d="M.426.42H403.1v240.067H.427z"/> - <path d="M.426.422L.41 18.44l96.093 59.27 36.155 1.257L.424.422z" fill="#c00"/> - <path d="M41.573.422l116.494 73.046V.422H41.573z" fill="#006"/> - <path d="M173.607.422v93.25H.423v53.288h173.184v93.25h53.286v-93.25h173.185V93.673H226.893V.423h-53.286z" fill="#c00"/> - <path d="M242.435.422V69.25L356.407.955 242.435.422z" fill="#006"/> - <path d="M246.032 76.754l32.054-.31L402.604.955l-33.037.647-123.535 75.154z" fill="#c00"/> - <path d="M401.34 21.09l-95.12 56.62 93.853.42v84.37h-79.93l79.19 51.51 1.163 26.2-42.297-.605-115.763-68.222v68.828h-84.37v-68.827l-108.59 68.643-49.046.185v239.794h799.294V.426l-397.537-.43M.43 27.06l-.42 49.8 84.146 1.266L.43 27.06zM.426 162.497v51.066l79.93-50.533-79.93-.533z" fill="#006"/> - <path d="M308.217 164.606l-33.322-.31 125.597 75.067-.826-17.174-91.453-57.584zM31.637 240.63l117.767-74.225-30.93.247L.423 240.518" fill="#c00"/> - <path d="M525.376 247.8l2.03 2.03-2.03-2.03z" fill="#49497d"/> - <path d="M527.406 247.8l2.03 2.03-2.03-2.03z" fill="#0e0e6e"/> - <path d="M521.315 249.83l2.03 2.032-2.03-2.03z" fill="#262678"/> - <path d="M523.346 249.83l2.03 2.032-2.03-2.03z" fill="#808067"/> - <path d="M529.436 249.83l2.03 2.032-2.03-2.03z" fill="#58587b"/> - <path d="M454.32 251.862l2.03 2.03-2.03-2.03z" fill="#0e0e6e"/> - <path d="M517.255 251.862l2.03 2.03-2.03-2.03z" fill="#1b1b74"/> - <path d="M519.285 251.862l2.03 2.03-2.03-2.03z" fill="#6e6c70"/> - <path d="M457.892 255.536c0 52.457-6.046 111.57 33.052 152.65 8.043 8.453 23.345 27.725 36.462 26.986 13.732-.773 31.39-21.093 39.246-31.045 34.034-44.77 28.624-98.17 29.78-150.134-15.368 6.902-23.022 9.176-36.462 9.136-9.954 1.022-25.31-5.67-34.493-10.045-6 4.007-14.706 8.786-30.35 9.323-18.07.795-23.795-2.267-37.235-6.872z" fill="#cc3"/> - <path d="M531.466 251.862l2.03 2.03-2.03-2.03z" fill="#99994e"/> - <path d="M533.497 251.862l2.03 2.03-2.03-2.03z" fill="#49497d"/> - <path d="M596.433 251.862l2.03 2.03-2.03-2.03z" fill="#0e0e6e"/> - <path d="M456.35 253.892l2.03 2.03-2.03-2.03z" fill="#a4a43d"/> - <path d="M458.38 253.892l2.03 2.03-2.03-2.03z" fill="#6e6c70"/> - <path d="M460.41 253.892l2.03 2.03-2.03-2.03z" fill="#3a3a7c"/> - <path d="M513.195 253.892l2.03 2.03-2.03-2.03z" fill="#1b1b74"/> - <path d="M515.225 253.892l2.03 2.03-2.03-2.03z" fill="#6e6c70"/> - <path d="M517.255 253.892l2.03 2.03-2.03-2.03z" fill="#a4a43d"/> - <path d="M525.376 253.892l2.03 2.03-2.03-2.03z" fill="#d0d045"/> - <path d="M533.497 253.892l2.03 2.03-2.03-2.03z" fill="#a4a43d"/> - <path d="M535.527 253.892l2.03 2.03-2.03-2.03z" fill="#8d8d5b"/> - <path d="M537.557 253.892l2.03 2.03-2.03-2.03z" fill="#3a3a7c"/> - <path d="M590.342 253.892l2.03 2.03-2.03-2.03z" fill="#262678"/> - <path d="M592.372 253.892l2.03 2.03-2.03-2.03z" fill="#53527c"/> - <path d="M594.403 253.892l2.03 2.03-2.03-2.03z" fill="#8d8d5b"/> - <path d="M464.47 255.922l2.03 2.03-2.03-2.03z" fill="#737370"/> - <path d="M466.5 255.922l2.03 2.03-2.03-2.03z" fill="#53527c"/> - <path d="M468.53 255.922l2.03 2.03-2.03-2.03z" fill="#1b1b74"/> - <path d="M509.134 255.922l2.03 2.03-2.03-2.03z" fill="#262678"/> - <path d="M511.164 255.922l2.03 2.03-2.03-2.03z" fill="#6e6c70"/> - <path d="M513.195 255.922l2.03 2.03-2.03-2.03z" fill="#a4a43d"/> - <path d="M523.346 255.922l2.03 2.03-2.03-2.03z" fill="#e5e59d"/> - <path d="M462.054 261.24c-1.092 27.557-.254 58.587 4.054 88.07 4.763 15.404 4.126 23.866 11.203 33.098l99.07-.772c5.97-9.712 10.397-24.44 10.968-30.295 5.532-29.776 5.664-62.636 5.796-92.028-9.962 5.296-23.008 9.05-35.67 7.402-10.152-.774-19.53-3.09-30.454-9.264-9.475 5.676-12.778 8.268-28.423 8.93-12.18.6-22.048 1.588-36.543-5.14z" fill="#fff"/> - <path d="M527.406 255.922l2.03 2.03-2.03-2.03z" fill="#f2f1d7"/> - <path d="M529.436 255.922l2.03 2.03-2.03-2.03z" fill="#d9d868"/> - <path d="M537.557 255.922l2.03 2.03-2.03-2.03z" fill="#a4a43d"/> - <path d="M539.587 255.922l2.03 2.03-2.03-2.03z" fill="#99994e"/> - <path d="M541.617 255.922l2.03 2.03-2.03-2.03z" fill="#49497d"/> - <path d="M543.648 255.922l2.03 2.03-2.03-2.03z" fill="#0e0e6e"/> - <path d="M584.252 255.922l2.03 2.03-2.03-2.03z" fill="#3a3a7c"/> - <path d="M586.282 255.922l2.03 2.03-2.03-2.03z" fill="#667"/> - <path d="M588.312 255.922l2.03 2.03-2.03-2.03z" fill="#99994e"/> - <path d="M590.342 255.922l2.03 2.03-2.03-2.03m-121.812 2.03l2.03 2.03-2.03-2.03z" fill="#a4a43d"/> - <path d="M470.56 257.952l2.03 2.03-2.03-2.03z" fill="#99994e"/> - <path d="M472.59 257.952l2.03 2.03-2.03-2.03z" fill="#6e6c70"/> - <path d="M474.62 257.952l2.03 2.03-2.03-2.03z" fill="#49497d"/> - <path d="M476.65 257.952l2.03 2.03-2.03-2.03m26.394 0l2.03 2.03-2.03-2.03z" fill="#1b1b74"/> - <path d="M505.074 257.952l2.03 2.03-2.03-2.03z" fill="#53527c"/> - <path d="M507.104 257.952l2.03 2.03-2.03-2.03z" fill="#8d8d5b"/> - <path d="M509.134 257.952l2.03 2.03-2.03-2.03z" fill="#a4a43d"/> - <path d="M519.285 257.952l2.03 2.03-2.03-2.03z" fill="#e5e59d"/> - <path d="M521.315 257.952l2.03 2.03-2.03-2.03z" fill="#fbfaf2"/> - <path d="M531.466 257.952l2.03 2.03-2.03-2.03z" fill="#f2f1d2"/> - <path d="M533.497 257.952l2.03 2.03-2.03-2.03z" fill="#d9d868"/> - <path d="M543.648 257.952l2.03 2.03-2.03-2.03z" fill="#a4a43d"/> - <path d="M545.678 257.952l2.03 2.03-2.03-2.03z" fill="#6e6c70"/> - <path d="M547.708 257.952l2.03 2.03-2.03-2.03z" fill="#3a3a7c"/> - <path d="M574.1 257.952l2.03 2.03-2.03-2.03z" fill="#0e0e6e"/> - <path d="M576.13 257.952l2.03 2.03-2.03-2.03z" fill="#32327b"/> - <path d="M578.16 257.952l2.03 2.03-2.03-2.03z" fill="#58587b"/> - <path d="M580.19 257.952l2.03 2.03-2.03-2.03z" fill="#808067"/> - <path d="M583.582 258.622l1.352.677-1.352-.678z" fill="#a4a43d"/> - <path d="M460.41 259.982l2.03 2.03-2.03-2.03z" fill="#dddc7a"/> - <path d="M462.44 259.982l2.03 2.03-2.03-2.03z" fill="#d0d045"/> - <path d="M478.01 260.652l1.353.677-1.352-.678z" fill="#a4a43d"/> - <path d="M480.71 259.982l2.032 2.03-2.03-2.03z" fill="#808067"/> - <path d="M482.742 259.982l2.03 2.03-2.03-2.03z" fill="#667"/> - <path d="M484.772 259.982l2.03 2.03-2.03-2.03z" fill="#58587b"/> - <path d="M486.802 259.982l2.03 2.03-2.03-2.03z" fill="#49497d"/> - <path d="M498.983 259.982l2.03 2.03-2.03-2.03z" fill="#737370"/> - <path d="M501.013 259.982l2.03 2.03-2.03-2.03z" fill="#99994e"/> - <path d="M503.044 259.982l2.03 2.03-2.03-2.03z" fill="#a4a43d"/> - <path d="M515.225 259.982l2.03 2.03-2.03-2.03z" fill="#e5e59d"/> - <path d="M517.255 259.982l2.03 2.03-2.03-2.03z" fill="#fbfaf2"/> - <path d="M535.527 259.982l2.03 2.03-2.03-2.03z" fill="#f2f1d2"/> - <path d="M537.557 259.982l2.03 2.03-2.03-2.03z" fill="#d9d868"/> - <path d="M549.068 260.652l1.352.677-1.352-.678z" fill="#a4a43d"/> - <path d="M551.768 259.982l2.03 2.03-2.03-2.03z" fill="#808067"/> - <path d="M553.8 259.982l2.03 2.03-2.03-2.03z" fill="#667"/> - <path d="M555.83 259.982l2.03 2.03-2.03-2.03z" fill="#58587b"/> - <path d="M557.86 259.982l2.03 2.03-2.03-2.03z" fill="#3a3a7c"/> - <path d="M567.34 260.652l1.352.677-1.352-.678z" fill="#58587b"/> - <path d="M570.04 259.982l2.03 2.03-2.03-2.03z" fill="#737370"/> - <path d="M572.07 259.982l2.03 2.03-2.03-2.03z" fill="#99994e"/> - <path d="M574.1 259.982l2.03 2.03-2.03-2.03z" fill="#a4a43d"/> - <path d="M590.342 259.982l2.03 2.03-2.03-2.03z" fill="#dddc7a"/> - <path d="M592.372 259.982l2.03 2.03-2.03-2.03z" fill="#d0d045"/> - <path d="M464.47 262.013l2.03 2.03-2.03-2.03z" fill="#f2f1d7"/> - <path d="M466.5 262.013l2.03 2.03-2.03-2.03z" fill="#e0dea1"/> - <path d="M468.53 262.013l2.03 2.03-2.03-2.03z" fill="#dddc7a"/> - <path d="M509.134 262.013l2.03 2.03-2.03-2.03z" fill="#d9d868"/> - <path d="M511.164 262.013l2.03 2.03-2.03-2.03z" fill="#e5e3af"/> - <path d="M539.587 262.013l2.03 2.03-2.03-2.03z" fill="#f6f6e4"/> - <path d="M541.617 262.013l2.03 2.03-2.03-2.03z" fill="#e1e18c"/> - <path d="M582.22 262.013l2.032 2.03-2.03-2.03z" fill="#d4d456"/> - <path d="M584.252 262.013l2.03 2.03-2.03-2.03z" fill="#e1e18c"/> - <path d="M586.282 262.013l2.03 2.03-2.03-2.03z" fill="#eeedc1"/> - <path d="M472.59 264.043l2.03 2.03-2.03-2.03z" fill="#f2f1d2"/> - <path d="M474.62 264.043l2.03 2.03-2.03-2.03z" fill="#e0dea1"/> - <path d="M476.65 264.043l2.03 2.03-2.03-2.03z" fill="#dddc7a"/> - <path d="M478.68 264.043l2.03 2.03-2.03-2.03z" fill="#d0d045"/> - <path d="M503.044 264.043l2.03 2.03-2.03-2.03z" fill="#dddc7a"/> - <path d="M505.074 264.043l2.03 2.03-2.03-2.03z" fill="#e5e3af"/> - <path d="M507.104 264.043l2.03 2.03-2.03-2.03z" fill="#f6f6e4"/> - <path d="M545.678 264.043l2.03 2.03-2.03-2.03z" fill="#eeedc1"/> - <path d="M547.708 264.043l2.03 2.03-2.03-2.03z" fill="#e1e18c"/> - <path d="M549.738 264.043l2.03 2.03-2.03-2.03z" fill="#d4d456"/> - <path d="M574.1 264.043l2.03 2.03-2.03-2.03z" fill="#d9d868"/> - <path d="M576.13 264.043l2.03 2.03-2.03-2.03z" fill="#e1e18c"/> - <path d="M578.16 264.043l2.03 2.03-2.03-2.03z" fill="#eeedc1"/> - <path d="M580.19 264.043l2.03 2.03-2.03-2.03z" fill="#f6f6e4"/> - <path d="M482.742 266.073l2.03 2.03-2.03-2.03z" fill="#f2f1d7"/> - <path d="M484.772 266.073l2.03 2.03-2.03-2.03z" fill="#f2f1d2"/> - <path d="M486.802 266.073l2.03 2.03-2.03-2.03z" fill="#eeedc1"/> - <path d="M496.283 266.743l1.352.677-1.352-.677z" fill="#f2f1d2"/> - <path d="M498.983 266.073l2.03 2.03-2.03-2.03z" fill="#fbfaf2"/> - <path d="M509.134 266.073l4.06 4.06v-4.06h-4.06z" fill="#fef8f1"/> - <path d="M553.8 266.073l2.03 2.03-2.03-2.03z" fill="#f2f1d7"/> - <path d="M555.83 266.073l2.03 2.03-2.03-2.03z" fill="#f2f1d2"/> - <path d="M557.86 266.073l2.03 2.03-2.03-2.03z" fill="#e5e3af"/> - <path d="M561.25 266.743l1.352.677-1.353-.677z" fill="#e5e59d"/> - <path d="M563.95 266.073l2.03 2.03-2.03-2.03z" fill="#e0dea1"/> - <path d="M567.34 266.743l1.352.677-1.352-.677z" fill="#f2f1d2"/> - <path d="M570.04 266.073l2.03 2.03-2.03-2.03z" fill="#fbfaf2"/> - <path d="M505.074 268.103l2.03 2.03-2.03-2.03z" fill="#fef8f1"/> - <path d="M507.104 268.103l2.03 2.03-2.03-2.03z" fill="#fbbe66"/> - <path d="M505.074 270.133l2.03 2.03-2.03-2.03z" fill="#fbc477"/> - <path d="M509.134 270.133l2.03 2.03-2.03-2.03z" fill="#fcb144"/> - <path d="M505.074 272.164l2.03 2.03-2.03-2.03z" fill="#fe9f11"/> - <path d="M509.134 272.164l2.03 2.03-2.03-2.03z" fill="#fea522"/> - <path d="M503.044 274.194l2.03 2.03-2.03-2.03m8.12 0l2.03 2.03-2.03-2.03z" fill="#fae3c9"/> - <path d="M521.315 274.194l2.03 2.03-2.03-2.03z" fill="#fbead6"/> - <path d="M523.346 274.194l2.03 2.03-2.03-2.03z" fill="#f9d6aa"/> - <path d="M531.466 274.194l2.03 2.03-2.03-2.03z" fill="#fae3c9"/> - <path d="M533.497 274.194l2.03 2.03-2.03-2.03z" fill="#fef8f1"/> - <path d="M503.044 276.224l2.03 2.03-2.03-2.03z" fill="#f9d099"/> - <path d="M511.164 276.224l2.03 2.03-2.03-2.03z" fill="#fdab33"/> - <path d="M515.225 276.224l2.03 2.03-2.03-2.03z" fill="#fcf1e4"/> - <path d="M517.255 276.224l2.03 2.03-2.03-2.03z" fill="#fbc477"/> - <path d="M519.285 276.224l2.03 2.03-2.03-2.03z" fill="#fea522"/> - <path d="M535.527 276.224l2.03 2.03-2.03-2.03z" fill="#fcb755"/> - <path d="M537.557 276.224l2.03 2.03-2.03-2.03z" fill="#f9d6aa"/> - <path d="M503.044 278.254l2.03 2.03-2.03-2.03z" fill="#faca88"/> - <path d="M513.195 278.254l2.03 2.03-2.03-2.03m26.392 0l2.03 2.03-2.03-2.03z" fill="#fea522"/> - <path d="M541.617 278.254l2.03 2.03-2.03-2.03z" fill="#f8dcbb"/> - <path d="M460.41 280.284l2.03 2.03-2.03-2.03z" fill="#f6f6e4"/> - <path d="M503.044 280.284l2.03 2.03-2.03-2.03z" fill="#fbc477"/> - <path d="M543.648 280.284l2.03 2.03-2.03-2.03z" fill="#fbbe66"/> - <path d="M545.678 280.284l2.03 2.03-2.03-2.03z" fill="#f8dcbb"/> - <path d="M503.044 282.315l2.03 2.03-2.03-2.03z" fill="#faca88"/> - <path d="M549.738 282.315l2.03 2.03-2.03-2.03z" fill="#fcb755"/> - <path d="M551.768 282.315l2.03 2.03-2.03-2.03z" fill="#f8dcbb"/> - <path d="M501.013 284.345l2.03 2.03-2.03-2.03z" fill="#fef8f1"/> - <path d="M503.044 284.345l2.03 2.03-2.03-2.03z" fill="#fe9f11"/> - <path d="M559.89 284.345l2.03 2.03-2.03-2.03z" fill="#fdab33"/> - <path d="M561.92 284.345l2.03 2.03-2.03-2.03z" fill="#fcb144"/> - <path d="M563.95 284.345l2.03 2.03-2.03-2.03z" fill="#fbc477"/> - <path d="M565.98 284.345l4.06 4.06-4.06-4.06z" fill="#f9d6aa"/> - <path d="M568.01 284.345l2.03 2.03-2.03-2.03z" fill="#fef8f1"/> - <path d="M501.013 286.375l2.03 2.03-2.03-2.03z" fill="#fcb144"/> - <path d="M529.436 286.375l2.03 2.03-2.03-2.03z" fill="#fdab33"/> - <path d="M531.466 286.375l2.03 2.03-2.03-2.03zm8.121 0l2.03 2.03-2.03-2.03z" fill="#fbc477"/> - <path d="M541.617 286.375l2.03 2.03-2.03-2.03z" fill="#fea522"/> - <path d="M498.983 288.405l2.03 2.03-2.03-2.03z" fill="#fae3c9"/> - <path d="M525.376 288.405l2.03 2.03-2.03-2.03z" fill="#fcb144"/> - <path d="M527.406 288.405l2.03 2.03-2.03-2.03z" fill="#fae3c9"/> - <path d="M543.648 288.405l2.03 2.03-2.03-2.03z" fill="#f8dcbb"/> - <path d="M545.678 288.405l2.03 2.03-2.03-2.03z" fill="#fdab33"/> - <path d="M557.86 288.405l2.03 2.03-2.03-2.03z" fill="#fe9f11"/> - <path d="M559.89 288.405l2.03 2.03-2.03-2.03z" fill="#fcb755"/> - <path d="M561.92 288.405l2.03 2.03-2.03-2.03z" fill="#f9d099"/> - <path d="M563.95 288.405l2.03 2.03-2.03-2.03z" fill="#fbead6"/> - <path d="M498.983 290.435l2.03 2.03-2.03-2.03z" fill="#fcb144"/> - <path d="M523.346 290.435l2.03 2.03-2.03-2.03z" fill="#fbbe66"/> - <path d="M547.708 290.435l2.03 2.03-2.03-2.03z" fill="#f9d099"/> - <path d="M555.83 290.435l2.03 2.03-2.03-2.03z" fill="#fbead6"/> - <path d="M496.953 292.466l2.03 2.03-2.03-2.03z" fill="#fcf1e4"/> - <path d="M521.315 292.466l2.03 2.03-2.03-2.03z" fill="#fbbe66"/> - <path d="M549.738 292.466l2.03 2.03-2.03-2.03z" fill="#f9d099"/> - <path d="M555.83 292.466l2.03 2.03-2.03-2.03z" fill="#fae3c9"/> - <path d="M496.953 294.496l2.03 2.03-2.03-2.03z" fill="#fbc477"/> - <path d="M519.285 294.496l2.03 2.03-2.03-2.03m32.483 0l2.03 2.03-2.03-2.03z" fill="#fcb144"/> - <path d="M555.83 294.496l2.03 2.03-2.03-2.03z" fill="#fbbe66"/> - <path d="M460.41 296.526l2.03 2.03-2.03-2.03z" fill="#f6f6e4"/> - <path d="M496.953 296.526l2.03 2.03-2.03-2.03z" fill="#fea522"/> - <path d="M519.285 296.526l2.03 2.03-2.03-2.03z" fill="#fbead6"/> - <path d="M551.768 296.526l2.03 2.03-2.03-2.03z" fill="#fcf1e4"/> - <path d="M557.86 296.526l2.03 2.03-2.03-2.03z" fill="#fef8f1"/> - <path d="M494.923 298.556l2.03 2.03-2.03-2.03z" fill="#fcf1e4"/> - <path d="M517.255 298.556l2.03 2.03-2.03-2.03z" fill="#fbbe66"/> - <path d="M553.8 298.556l2.03 2.03-2.03-2.03z" fill="#faca88"/> - <path d="M557.86 298.556l2.03 2.03-2.03-2.03z" fill="#f9d099"/> - <path d="M494.923 300.586l2.03 2.03-2.03-2.03z" fill="#f9d6aa"/> - <path d="M517.255 300.586l2.03 2.03-2.03-2.03z" fill="#fcf1e4"/> - <path d="M527.406 300.586l2.03 2.03-2.03-2.03z" fill="#fae3c9"/> - <path d="M529.436 300.586l2.03 2.03-2.03-2.03z" fill="#fea522"/> - <path d="M531.466 300.586l2.03 2.03-2.03-2.03z" fill="#fcb144"/> - <path d="M533.497 300.586l2.03 2.03-2.03-2.03z" fill="#f9d6aa"/> - <path d="M553.8 300.586l2.03 2.03-2.03-2.03z" fill="#fef8f1"/> - <path d="M555.83 300.586l2.03 2.03-2.03-2.03z" fill="#fea522"/> - <path d="M557.86 300.586l2.03 2.03-2.03-2.03z" fill="#fdab33"/> - <path d="M494.923 302.617l-2.03 6.09 2.03-6.09z" fill="#faca88"/> - <path d="M515.225 302.617l2.03 2.03-2.03-2.03z" fill="#fea522"/> - <path d="M517.255 302.617l2.03 2.03-2.03-2.03z" fill="#fef8f1"/> - <path d="M527.406 302.617l2.03 2.03-2.03-2.03z" fill="#f9d099"/> - <path d="M535.527 302.617l2.03 2.03-2.03-2.03z" fill="#fdab33"/> - <path d="M537.557 302.617l2.03 2.03-2.03-2.03z" fill="#fae3c9"/> - <path d="M555.83 302.617l2.03 2.03-2.03-2.03z" fill="#f8dcbb"/> - <path d="M557.86 302.617l2.03 2.03-2.03-2.03z" fill="#f90"/> - <path d="M560.56 303.977l.677 1.353-.678-1.353z" fill="#fbead6"/> - <path d="M519.285 304.647l2.03 2.03-2.03-2.03z" fill="#fea522"/> - <path d="M521.315 304.647l2.03 2.03-2.03-2.03z" fill="#fbbe66"/> - <path d="M523.346 304.647l2.03 2.03-2.03-2.03z" fill="#faca88"/> - <path d="M525.376 304.647l2.03 2.03-2.03-2.03z" fill="#fcb144"/> - <path d="M527.406 304.647l2.03 2.03-2.03-2.03z" fill="#fae3c9"/> - <path d="M529.436 304.647l2.03 2.03-2.03-2.03z" fill="#fe9f11"/> - <path d="M539.587 304.647l2.03 2.03-2.03-2.03z" fill="#fdab33"/> - <path d="M541.617 304.647l2.03 2.03-2.03-2.03z" fill="#fbc477"/> - <path d="M543.648 304.647l2.03 2.03-2.03-2.03z" fill="#faca88"/> - <path d="M545.678 304.647l2.03 2.03-2.03-2.03z" fill="#f9d6aa"/> - <path d="M549.068 305.317l1.352.677-1.352-.677z" fill="#fae3c9"/> - <path d="M551.768 304.647l2.03 2.03-2.03-2.03z" fill="#fef8f1"/> - <path d="M557.86 304.647l2.03 2.03-2.03-2.03z" fill="#fbc477"/> - <path d="M470.56 306.677l2.03 2.03-2.03-2.03z" fill="#fef8f1"/> - <path d="M472.59 306.677l2.03 2.03-2.03-2.03z" fill="#fcf1e4"/> - <path d="M525.376 306.677l2.03 2.03-2.03-2.03z" fill="#fcb755"/> - <path d="M529.436 306.677l2.03 2.03-2.03-2.03z" fill="#fbead6"/> - <path d="M531.466 306.677l2.03 2.03-2.03-2.03z" fill="#fea522"/> - <path d="M547.708 306.677l2.03 2.03-2.03-2.03z" fill="#fe9f11"/> - <path d="M549.738 306.677l-2.03 4.06 2.03-4.06z" fill="#fcb144"/> - <path d="M553.8 306.677l2.03 2.03-2.03-2.03z" fill="#fe9f11"/> - <path d="M555.83 306.677l2.03 2.03-2.03-2.03z" fill="#fbbe66"/> - <path d="M557.86 306.677l2.03 2.03-2.03-2.03z" fill="#fcf1e4"/> - <path d="M470.56 308.707l2.03 2.03-2.03-2.03z" fill="#fae3c9"/> - <path d="M472.59 308.707l4.06 4.06-4.06-4.06z" fill="#fe9f11"/> - <path d="M474.62 308.707l2.03 2.03-2.03-2.03zm18.273 0l2.03 2.03-2.03-2.03z" fill="#fbead6"/> - <path d="M494.923 308.707l2.03 2.03-2.03-2.03z" fill="#fae3c9"/> - <path d="M513.195 308.707l2.03 2.03-2.03-2.03z" fill="#fe9f11"/> - <path d="M515.225 308.707l2.03 2.03-2.03-2.03z" fill="#fbc477"/> - <path d="M517.255 308.707l2.03 2.03-2.03-2.03z" fill="#fea522"/> - <path d="M523.346 308.707l2.03 2.03-2.03-2.03z" fill="#fbc477"/> - <path d="M525.376 308.707l2.03 2.03-2.03-2.03z" fill="#fef8f1"/> - <path d="M533.497 308.707l2.03 2.03-2.03-2.03z" fill="#fbc477"/> - <path d="M549.738 308.707l2.03 2.03-2.03-2.03z" fill="#fff"/> - <path d="M551.768 308.707l2.03 2.03-2.03-2.03z" fill="#fdab33"/> - <path d="M559.89 308.707l2.03 2.03-2.03-2.03z" fill="#fbc477"/> - <path d="M470.56 310.737l2.03 2.03-2.03-2.03z" fill="#fef8f1"/> - <path d="M476.65 310.737l2.03 2.03-2.03-2.03z" fill="#fbead6"/> - <path d="M486.802 310.737l2.03 2.03-2.03-2.03z" fill="#f9d6aa"/> - <path d="M496.953 310.737l2.03 2.03-2.03-2.03z" fill="#fe9f11"/> - <path d="M500.343 311.407l1.353.677-1.353-.677z" fill="#f9d6aa"/> - <path d="M513.195 310.737l2.03 2.03-2.03-2.03z" fill="#f8dcbb"/> - <path d="M519.285 310.737l2.03 2.03-2.03-2.03z" fill="#fcf1e4"/> - <path d="M535.527 310.737l2.03 2.03-2.03-2.03z" fill="#f9d6aa"/> - <path d="M549.738 310.737l2.03 2.03-2.03-2.03z" fill="#fdab33"/> - <path d="M561.92 310.737l2.03 2.03-2.03-2.03z" fill="#fcb755"/> - <path d="M563.95 310.737l2.03 2.03-2.03-2.03z" fill="#fef8f1"/> - <path d="M454.32 312.768l2.03 2.03-2.03-2.03z" fill="#53527c"/> - <path d="M472.59 312.768l2.03 2.03-2.03-2.03z" fill="#fcb755"/> - <path d="M476.65 312.768l2.03 2.03-2.03-2.03z" fill="#fea522"/> - <path d="M484.772 312.768l2.03 2.03-2.03-2.03z" fill="#fbead6"/> - <path d="M488.832 312.768l2.03 2.03-2.03-2.03z" fill="#fe9f11"/> - <path d="M490.862 312.768l2.03 2.03-2.03-2.03z" fill="#fcf1e4"/> - <path d="M496.953 312.768l2.03 2.03-2.03-2.03z" fill="#fbbe66"/> - <path d="M498.983 312.768l2.03 2.03-2.03-2.03z" fill="#fbc477"/> - <path d="M501.013 312.768l2.03 2.03-2.03-2.03z" fill="#fbbe66"/> - <path d="M511.164 312.768l2.03 2.03-2.03-2.03z" fill="#fea522"/> - <path d="M537.557 312.768l2.03 2.03-2.03-2.03z" fill="#f9d6aa"/> - <path d="M563.95 312.768l2.03 2.03-2.03-2.03z" fill="#fcb144"/> - <path d="M596.433 312.768l2.03 2.03-2.03-2.03z" fill="#8d8d5b"/> - <path d="M460.41 314.798l2.03 2.03-2.03-2.03z" fill="#e5e3af"/> - <path d="M472.59 314.798l2.03 2.03-2.03-2.03z" fill="#f8dcbb"/> - <path d="M478.68 314.798l2.03 2.03-2.03-2.03z" fill="#fdab33"/> - <path d="M484.772 314.798l2.03 2.03-2.03-2.03z" fill="#fe9f11"/> - <path d="M488.832 314.798l2.03 2.03-2.03-2.03z" fill="#faca88"/> - <path d="M496.953 314.798l2.03 2.03-2.03-2.03z" fill="#fcf1e4"/> - <path d="M511.164 314.798l2.03 2.03-2.03-2.03m28.423 0l2.03 2.03-2.03-2.03z" fill="#f9d099"/> - <path d="M565.98 314.798l2.03 2.03-2.03-2.03z" fill="#fbbe66"/> - <path d="M474.62 316.828l2.03 2.03-2.03-2.03z" fill="#fea522"/> - <path d="M480.71 316.828l2.032 2.03-2.03-2.03z" fill="#fdab33"/> - <path d="M482.742 316.828l2.03 2.03-2.03-2.03z" fill="#fea522"/> - <path d="M486.802 316.828l2.03 2.03-2.03-2.03z" fill="#fe9f11"/> - <path d="M488.832 316.828l2.03 2.03-2.03-2.03z" fill="#fef8f1"/> - <path d="M498.983 316.828l2.03 2.03-2.03-2.03z" fill="#fbbe66"/> - <path d="M511.164 316.828l2.03 2.03-2.03-2.03z" fill="#fef8f1"/> - <path d="M541.617 316.828l2.03 2.03-2.03-2.03z" fill="#fbbe66"/> - <path d="M568.01 316.828l2.03 2.03-2.03-2.03z" fill="#f9d099"/> - <path d="M474.62 318.858l2.03 2.03-2.03-2.03z" fill="#f9d6aa"/> - <path d="M486.802 318.858l2.03 2.03-2.03-2.03z" fill="#f9d099"/> - <path d="M498.983 318.858l2.03 2.03-2.03-2.03z" fill="#fcf1e4"/> - <path d="M509.134 318.858l2.03 2.03-2.03-2.03m34.514 0l2.03 2.03-2.03-2.03z" fill="#fdab33"/> - <path d="M570.04 318.858l2.03 2.03-2.03-2.03z" fill="#fbead6"/> - <path d="M476.65 320.888l2.03 2.03-2.03-2.03z" fill="#fea522"/> - <path d="M484.772 320.888l2.03 2.03-2.03-2.03z" fill="#fe9f11"/> - <path d="M501.013 320.888l2.03 2.03-2.03-2.03z" fill="#fcb144"/> - <path d="M509.134 320.888l2.03 2.03-2.03-2.03z" fill="#faca88"/> - <path d="M543.648 320.888l2.03 2.03-2.03-2.03z" fill="#f8dcbb"/> - <path d="M570.04 320.888l2.03 2.03-2.03-2.03z" fill="#fcb144"/> - <path d="M460.41 322.92l2.03 2.03-2.03-2.03z" fill="#d3d079"/> - <path d="M476.65 322.92l2.03 2.03-2.03-2.03zm24.363 0l2.03 2.03-2.03-2.03z" fill="#faca88"/> - <path d="M509.134 322.92l2.03 2.03-2.03-2.03m34.514 0l2.03 2.03-2.03-2.03z" fill="#fae3c9"/> - <path d="M572.07 322.92l2.03 2.03-2.03-2.03z" fill="#f8dcbb"/> - <path d="M590.342 322.92l2.03 2.03-2.03-2.03z" fill="#f2f1d7"/> - <path d="M597.103 324.28l.678 1.352-.677-1.353z" fill="#58587b"/> - <path d="M461.08 326.31l.677 1.352-.678-1.353z" fill="#d9d868"/> - <path d="M476.65 324.95l2.03 2.03-2.03-2.03z" fill="#f8dcbb"/> - <path d="M541.617 324.95l2.03 2.03-2.03-2.03z" fill="#f9d6aa"/> - <path d="M543.648 324.95l2.03 2.03-2.03-2.03z" fill="#fe9f11"/> - <path d="M572.07 324.95l2.03 2.03-2.03-2.03z" fill="#fcb144"/> - <path d="M591.012 326.31l.678 1.352-.678-1.353z" fill="#f2f1d2"/> - <path d="M476.65 326.98l2.03 2.03-2.03-2.03z" fill="#fcf1e4"/> - <path d="M539.587 326.98l2.03 2.03-2.03-2.03z" fill="#fef8f1"/> - <path d="M541.617 326.98l2.03 2.03-2.03-2.03z" fill="#fe9f11"/> - <path d="M547.708 326.98l-2.03 4.06 2.03-4.06z" fill="#fdab33"/> - <path d="M549.738 326.98l2.03 2.03-2.03-2.03z" fill="#fcb755"/> - <path d="M574.1 326.98l2.03 2.03-2.03-2.03z" fill="#fea522"/> - <path d="M576.13 326.98l2.03 2.03-2.03-2.03z" fill="#f9d099"/> - <path d="M596.433 326.98l2.03 2.03-2.03-2.03z" fill="#53527c"/> - <path d="M457.02 330.37l.677 1.352-.678-1.353z" fill="#808067"/> - <path d="M478.68 329.01l2.03 2.03-2.03-2.03m6.092 0l2.03 2.03-2.03-2.03z" fill="#fea522"/> - <path d="M507.104 329.01l2.03 2.03-2.03-2.03z" fill="#fe9f11"/> - <path d="M539.587 329.01l2.03 2.03-2.03-2.03z" fill="#fae3c9"/> - <path d="M547.708 329.01l2.03 2.03-2.03-2.03z" fill="#fef8f1"/> - <path d="M551.768 329.01l2.03 2.03-2.03-2.03z" fill="#fcb144"/> - <path d="M578.16 329.01l2.03 2.03-2.03-2.03z" fill="#fcb755"/> - <path d="M580.19 329.01l4.062 4.06-4.06-4.06z" fill="#fef8f1"/> - <path d="M591.012 330.37l.678 1.352-.678-1.353z" fill="#e5e59d"/> - <path d="M597.103 330.37l.678 1.352-.677-1.353z" fill="#32327b"/> - <path d="M479.35 332.4l.68 1.352-.68-1.352z" fill="#fcb755"/> - <path d="M486.802 331.04l2.03 2.03-2.03-2.03z" fill="#fef8f1"/> - <path d="M507.104 331.04l2.03 2.03-2.03-2.03z" fill="#fbbe66"/> - <path d="M539.587 331.04l2.03 2.03-2.03-2.03z" fill="#fbead6"/> - <path d="M543.648 331.04l2.03 2.03-2.03-2.03z" fill="#fe9f11"/> - <path d="M545.678 331.04l2.03 2.03-2.03-2.03z" fill="#fcf1e4"/> - <path d="M551.768 331.04l2.03 2.03-2.03-2.03z" fill="#fbead6"/> - <path d="M580.19 331.04l2.03 2.03-2.03-2.03z" fill="#fdab33"/> - <path d="M456.35 333.07l2.03 2.03-2.03-2.03z" fill="#667"/> - <path d="M462.44 333.07l2.03 2.03-2.03-2.03z" fill="#f6f6e4"/> - <path d="M486.802 333.07l2.03 2.03-2.03-2.03z" fill="#f9d6aa"/> - <path d="M503.044 333.07l2.03 2.03-2.03-2.03z" fill="#fdab33"/> - <path d="M505.074 333.07l2.03 2.03-2.03-2.03z" fill="#fe9f11"/> - <path d="M507.104 333.07l2.03 2.03-2.03-2.03z" fill="#fcf1e4"/> - <path d="M541.617 333.07l2.03 2.03-2.03-2.03z" fill="#fea522"/> - <path d="M543.648 333.07l2.03 2.03-2.03-2.03m10.15 0l2.03 2.03-2.03-2.03z" fill="#faca88"/> - <path d="M582.22 333.07l2.032 2.03-2.03-2.03z" fill="#fcb144"/> - <path d="M590.342 333.07l2.03 2.03-2.03-2.03z" fill="#dddc7a"/> - <path d="M456.35 335.1l2.03 2.03-2.03-2.03z" fill="#58587b"/> - <path d="M462.44 335.1l2.03 2.03-2.03-2.03z" fill="#f2f1d2"/> - <path d="M479.35 336.46l.68 1.352-.68-1.352z" fill="#fcb144"/> - <path d="M486.802 335.1l2.03 2.03-2.03-2.03z" fill="#fea522"/> - <path d="M507.104 335.1l2.03 2.03-2.03-2.03z" fill="#fef8f1"/> - <path d="M509.134 335.1l2.03 2.03-2.03-2.03z" fill="#fea522"/> - <path d="M513.195 335.1l2.03 2.03-2.03-2.03z" fill="#fcb144"/> - <path d="M515.225 335.1l2.03 2.03-2.03-2.03z" fill="#fbead6"/> - <path d="M541.617 335.1l2.03 2.03-2.03-2.03z" fill="#f8dcbb"/> - <path d="M543.648 335.1l2.03 2.03-2.03-2.03z" fill="#fcf1e4"/> - <path d="M553.8 335.1l2.03 2.03-2.03-2.03z" fill="#fef8f1"/> - <path d="M555.83 335.1l2.03 2.03-2.03-2.03z" fill="#fe9f11"/> - <path d="M584.252 335.1l2.03 2.03-2.03-2.03z" fill="#fbead6"/> - <path d="M590.342 335.1l2.03 2.03-2.03-2.03z" fill="#d9d868"/> - <path d="M456.35 337.13l2.03 2.03-2.03-2.03z" fill="#3a3a7c"/> - <path d="M462.44 337.13l2.03 2.03-2.03-2.03z" fill="#e5e3af"/> - <path d="M488.832 337.13l2.03 2.03-2.03-2.03z" fill="#faca88"/> - <path d="M509.134 337.13l2.03 2.03-2.03-2.03z" fill="#fbead6"/> - <path d="M515.225 337.13l2.03 2.03-2.03-2.03z" fill="#fe9f11"/> - <path d="M517.255 337.13l2.03 2.03-2.03-2.03z" fill="#fcf1e4"/> - <path d="M539.587 337.13l2.03 2.03-2.03-2.03z" fill="#fbead6"/> - <path d="M541.617 337.13l2.03 2.03-2.03-2.03z" fill="#fae3c9"/> - <path d="M543.648 337.13l2.03 2.03-2.03-2.03z" fill="#fbead6"/> - <path d="M555.83 337.13l2.03 2.03-2.03-2.03m16.24 0l2.03 2.03-2.03-2.03z" fill="#fbbe66"/> - <path d="M574.1 337.13l2.03 2.03-2.03-2.03z" fill="#fcf1e4"/> - <path d="M576.13 337.13l2.03 2.03-2.03-2.03z" fill="#fef8f1"/> - <path d="M578.16 337.13l2.03 2.03-2.03-2.03z" fill="#f8dcbb"/> - <path d="M580.19 337.13l2.03 2.03-2.03-2.03z" fill="#fcb755"/> - <path d="M584.252 337.13l2.03 2.03-2.03-2.03z" fill="#fae3c9"/> - <path d="M594.403 337.13l2.03 2.03-2.03-2.03z" fill="#808067"/> - <path d="M456.35 339.16l2.03 2.03-2.03-2.03z" fill="#32327b"/> - <path d="M459.05 340.52l.677 1.353-.678-1.353z" fill="#a4a43d"/> - <path d="M462.44 339.16l2.03 2.03-2.03-2.03z" fill="#e5e59d"/> - <path d="M478.68 339.16l2.03 2.03-2.03-2.03z" fill="#fbc477"/> - <path d="M490.862 339.16l2.03 2.03-2.03-2.03z" fill="#f9d6aa"/> - <path d="M511.164 339.16l2.03 2.03-2.03-2.03z" fill="#fbbe66"/> - <path d="M517.255 339.16l2.03 2.03-2.03-2.03z" fill="#f9d099"/> - <path d="M535.527 339.16l2.03 2.03-2.03-2.03z" fill="#fae3c9"/> - <path d="M537.557 339.16l2.03 2.03-2.03-2.03z" fill="#fcb144"/> - <path d="M545.678 339.16l2.03 2.03-2.03-2.03z" fill="#fae3c9"/> - <path d="M555.83 339.16l2.03 2.03-2.03-2.03z" fill="#f8dcbb"/> - <path d="M572.07 339.16l2.03 2.03-2.03-2.03z" fill="#f9d099"/> - <path d="M582.22 339.16l2.032 2.03-2.03-2.03z" fill="#fbc477"/> - <path d="M584.252 339.16l2.03 2.03-2.03-2.03z" fill="#fbead6"/> - <path d="M594.403 339.16l2.03 2.03-2.03-2.03z" fill="#737370"/> - <path d="M462.44 341.19l2.03 2.03-2.03-2.03z" fill="#d9d868"/> - <path d="M478.68 341.19l2.03 2.03-2.03-2.03z" fill="#f9d099"/> - <path d="M492.893 341.19l2.03 2.03-2.03-2.03m18.27 0l2.032 2.03-2.03-2.03z" fill="#f9d6aa"/> - <path d="M517.255 341.19l2.03 2.03-2.03-2.03z" fill="#fbc477"/> - <path d="M527.406 341.19l2.03 2.03-2.03-2.03z" fill="#fef8f1"/> - <path d="M529.436 341.19l2.03 2.03-2.03-2.03z" fill="#f8dcbb"/> - <path d="M531.466 341.19l2.03 2.03-2.03-2.03z" fill="#fbc477"/> - <path d="M533.497 341.19l2.03 2.03-2.03-2.03z" fill="#fea522"/> - <path d="M545.678 341.19l2.03 2.03-2.03-2.03z" fill="#fbead6"/> - <path d="M588.312 341.19l2.03 2.03-2.03-2.03z" fill="#f2f1d2"/> - <path d="M594.403 341.19l2.03 2.03-2.03-2.03z" fill="#58587b"/> - <path d="M458.38 343.22l2.03 2.03-2.03-2.03z" fill="#99994e"/> - <path d="M462.44 343.22l2.03 2.03-2.03-2.03z" fill="#d0d045"/> - <path d="M494.923 343.22l2.03 2.03-2.03-2.03z" fill="#fcb144"/> - <path d="M496.953 343.22l2.03 2.03-2.03-2.03z" fill="#fae3c9"/> - <path d="M511.164 343.22l2.03 2.03-2.03-2.03z" fill="#fef8f1"/> - <path d="M519.285 343.22l2.03 2.03-2.03-2.03z" fill="#fcb755"/> - <path d="M521.315 343.22l2.03 2.03-2.03-2.03z" fill="#fbc477"/> - <path d="M523.346 343.22l2.03 2.03-2.03-2.03z" fill="#fcb144"/> - <path d="M525.376 343.22l2.03 2.03-2.03-2.03z" fill="#fea522"/> - <path d="M541.617 343.22l2.03 2.03-2.03-2.03z" fill="#fe9f11"/> - <path d="M543.648 343.22l2.03 2.03-2.03-2.03z" fill="#f9d6aa"/> - <path d="M572.07 343.22l2.03 2.03-2.03-2.03z" fill="#fef8f1"/> - <path d="M588.312 343.22l2.03 2.03-2.03-2.03z" fill="#e0dea1"/> - <path d="M594.403 343.22l2.03 2.03-2.03-2.03z" fill="#3a3a7c"/> - <path d="M458.38 345.25l2.03 2.03-2.03-2.03z" fill="#737370"/> - <path d="M464.47 345.25l2.03 2.03-2.03-2.03z" fill="#fbfaf2"/> - <path d="M480.71 345.25l2.032 2.03-2.03-2.03z" fill="#fea522"/> - <path d="M498.983 345.25l2.03 2.03-2.03-2.03z" fill="#fe9f11"/> - <path d="M501.013 345.25l2.03 2.03-2.03-2.03z" fill="#fcb144"/> - <path d="M503.044 345.25l2.03 2.03-2.03-2.03z" fill="#fbc477"/> - <path d="M505.074 345.25l2.03 2.03-2.03-2.03z" fill="#faca88"/> - <path d="M507.104 345.25l2.03 2.03-2.03-2.03z" fill="#fbc477"/> - <path d="M509.134 345.25l2.03 2.03-2.03-2.03z" fill="#fcb144"/> - <path d="M511.164 345.25l2.03 2.03-2.03-2.03z" fill="#fdab33"/> - <path d="M539.587 345.25l2.03 2.03-2.03-2.03z" fill="#fbc477"/> - <path d="M541.617 345.25l2.03 2.03-2.03-2.03z" fill="#fef8f1"/> - <path d="M570.04 345.25l2.03 2.03-2.03-2.03z" fill="#fdab33"/> - <path d="M588.312 345.25l2.03 2.03-2.03-2.03z" fill="#e1e18c"/> - <path d="M593.042 346.61l.678 1.353-.678-1.352z" fill="#a4a43d"/> - <path d="M594.403 345.25l2.03 2.03-2.03-2.03z" fill="#262678"/> - <path d="M458.38 347.28l2.03 2.03-2.03-2.03z" fill="#58587b"/> - <path d="M464.47 347.28l2.03 2.03-2.03-2.03z" fill="#f2f1d2"/> - <path d="M480.71 347.28l2.032 2.03-2.03-2.03z" fill="#faca88"/> - <path d="M535.527 347.28l2.03 2.03-2.03-2.03z" fill="#fe9f11"/> - <path d="M537.557 347.28l2.03 2.03-2.03-2.03z" fill="#fbead6"/> - <path d="M555.83 347.28l2.03 2.03-2.03-2.03z" fill="#fbc477"/> - <path d="M570.04 347.28l2.03 2.03-2.03-2.03z" fill="#faca88"/> - <path d="M588.312 347.28l2.03 2.03-2.03-2.03z" fill="#d4d456"/> - <path d="M458.38 349.31l2.03 2.03-2.03-2.03z" fill="#32327b"/> - <path d="M464.47 349.31l2.03 2.03-2.03-2.03z" fill="#e5e59d"/> - <path d="M480.71 349.31l2.032 2.03-2.03-2.03z" fill="#fef8f1"/> - <path d="M482.742 349.31l2.03 2.03-2.03-2.03z" fill="#fe9f11"/> - <path d="M535.527 349.31l2.03 2.03-2.03-2.03z" fill="#fbead6"/> - <path d="M555.83 349.31l2.03 2.03-2.03-2.03z" fill="#fea522"/> - <path d="M570.04 349.31l2.03 2.03-2.03-2.03z" fill="#fcf1e4"/> - <path d="M592.372 349.31l2.03 2.03-2.03-2.03z" fill="#808067"/> - <path d="M458.38 351.34l2.03 2.032-2.03-2.03z" fill="#0e0e6e"/> - <path d="M460.41 351.34l2.03 2.032-2.03-2.03z" fill="#a4a43d"/> - <path d="M464.47 351.34l2.03 2.032-2.03-2.03z" fill="#d9d868"/> - <path d="M482.742 351.34l2.03 2.032-2.03-2.03z" fill="#f8dcbb"/> - <path d="M553.8 351.34l2.03 2.032-2.03-2.03z" fill="#f9d6aa"/> - <path d="M568.01 351.34l2.03 2.032-2.03-2.03z" fill="#faca88"/> - <path d="M586.282 351.34l2.03 2.032-2.03-2.03z" fill="#f2f1d2"/> - <path d="M592.372 351.34l2.03 2.032-2.03-2.03z" fill="#58587b"/> - <path d="M460.41 353.372l2.03 2.03-2.03-2.03z" fill="#8d8d5b"/> - <path d="M484.772 353.372l2.03 2.03-2.03-2.03z" fill="#f9d6aa"/> - <path d="M525.376 353.372l2.03 2.03-2.03-2.03z" fill="#fdab33"/> - <path d="M527.406 353.372l2.03 2.03-2.03-2.03z" fill="#fff"/> - <path d="M530.796 354.042l1.353.678-1.354-.678z" fill="#fcb144"/> - <path d="M551.768 353.372l-2.03 4.06 2.03-4.06z" fill="#fef8f1"/> - <path d="M553.8 353.372l2.03 2.03-2.03-2.03z" fill="#fe9f11"/> - <path d="M565.98 353.372l-2.03 4.06 2.03-4.06z" fill="#fdab33"/> - <path d="M586.282 353.372l2.03 2.03-2.03-2.03z" fill="#e5e59d"/> - <path d="M592.372 353.372l2.03 2.03-2.03-2.03z" fill="#3a3a7c"/> - <path d="M460.41 355.402l2.03 2.03-2.03-2.03z" fill="#667"/> - <path d="M466.5 355.402l2.03 2.03-2.03-2.03z" fill="#f2f1d2"/> - <path d="M486.802 355.402l2.03 2.03-2.03-2.03z" fill="#f9d6aa"/> - <path d="M525.376 355.402l2.03 2.03-2.03-2.03z" fill="#fe9f11"/> - <path d="M527.406 355.402l2.03 2.03-2.03-2.03z" fill="#faca88"/> - <path d="M529.436 355.402l2.03 2.03-2.03-2.03z" fill="#fea522"/> - <path d="M531.466 355.402l2.03 2.03-2.03-2.03z" fill="#fcf1e4"/> - <path d="M551.768 355.402l2.03 2.03-2.03-2.03z" fill="#fdab33"/> - <path d="M565.98 355.402l2.03 2.03-2.03-2.03z" fill="#fef8f1"/> - <path d="M586.282 355.402l2.03 2.03-2.03-2.03z" fill="#d9d868"/> - <path d="M590.342 355.402l2.03 2.03-2.03-2.03z" fill="#a4a43d"/> - <path d="M592.372 355.402l2.03 2.03-2.03-2.03z" fill="#0e0e6e"/> - <path d="M460.41 357.432l2.03 2.03-2.03-2.03z" fill="#3a3a7c"/> - <path d="M466.5 357.432l2.03 2.03-2.03-2.03z" fill="#e5e59d"/> - <path d="M488.832 357.432l4.06 4.06-4.06-4.06z" fill="#fae3c9"/> - <path d="M490.862 357.432l2.03 2.03-2.03-2.03z" fill="#fe9f11"/> - <path d="M529.436 357.432l2.03 2.03-2.03-2.03z" fill="#f8dcbb"/> - <path d="M547.708 357.432l2.03 2.03-2.03-2.03z" fill="#fcf1e4"/> - <path d="M549.738 357.432l2.03 2.03-2.03-2.03z" fill="#fdab33"/> - <path d="M561.92 357.432l2.03 2.03-2.03-2.03z" fill="#fcb144"/> - <path d="M563.95 357.432l2.03 2.03-2.03-2.03z" fill="#fef8f1"/> - <path d="M584.252 357.432l2.03 2.03-2.03-2.03z" fill="#fbfaf2"/> - <path d="M590.342 357.432l2.03 2.03-2.03-2.03z" fill="#8d8d5b"/> - <path d="M460.41 359.462l2.03 2.03-2.03-2.03z" fill="#0e0e6e"/> - <path d="M462.44 359.462l2.03 2.03-2.03-2.03z" fill="#a4a43d"/> - <path d="M466.5 359.462l2.03 2.03-2.03-2.03z" fill="#d4d456"/> - <path d="M527.406 359.462l2.03 2.03-2.03-2.03z" fill="#f9d6aa"/> - <path d="M545.678 359.462l2.03 2.03-2.03-2.03z" fill="#f9d099"/> - <path d="M547.708 359.462l2.03 2.03-2.03-2.03z" fill="#fe9f11"/> - <path d="M559.89 359.462l2.03 2.03-2.03-2.03z" fill="#faca88"/> - <path d="M584.252 359.462l2.03 2.03-2.03-2.03z" fill="#eeedc1"/> - <path d="M590.342 359.462l2.03 2.03-2.03-2.03z" fill="#58587b"/> - <path d="M462.44 361.492l2.03 2.03-2.03-2.03z" fill="#737370"/> - <path d="M468.53 361.492l2.03 2.03-2.03-2.03z" fill="#f6f6e4"/> - <path d="M490.862 361.492l2.03 2.03-2.03-2.03z" fill="#fbbe66"/> - <path d="M523.346 361.492l2.03 2.03-2.03-2.03z" fill="#fcb144"/> - <path d="M526.046 362.853l.678 1.352-.678-1.352z" fill="#f8dcbb"/> - <path d="M541.617 361.492l2.03 2.03-2.03-2.03z" fill="#fbbe66"/> - <path d="M543.648 361.492l2.03 2.03-2.03-2.03z" fill="#fe9f11"/> - <path d="M555.83 361.492l2.03 2.03-2.03-2.03z" fill="#fbc477"/> - <path d="M557.86 361.492l2.03 2.03-2.03-2.03z" fill="#fcf1e4"/> - <path d="M584.252 361.492l2.03 2.03-2.03-2.03z" fill="#d3d079"/> - <path d="M588.312 361.492l2.03 2.03-2.03-2.03z" fill="#a4a43d"/> - <path d="M590.342 361.492l2.03 2.03-2.03-2.03z" fill="#262678"/> - <path d="M462.44 363.523l2.03 2.03-2.03-2.03z" fill="#49497d"/> - <path d="M468.53 363.523l2.03 2.03-2.03-2.03z" fill="#e0dea1"/> - <path d="M488.832 363.523l2.03 2.03-2.03-2.03z" fill="#fae3c9"/> - <path d="M517.255 363.523l2.03 2.03-2.03-2.03z" fill="#fdab33"/> - <path d="M519.285 363.523l2.03 2.03-2.03-2.03z" fill="#fbc477"/> - <path d="M521.315 363.523l2.03 2.03-2.03-2.03z" fill="#fbead6"/> - <path d="M527.406 363.523l2.03 2.03-2.03-2.03z" fill="#fcb144"/> - <path d="M553.8 363.523l2.03 2.03-2.03-2.03z" fill="#f9d6aa"/> - <path d="M588.312 363.523l2.03 2.03-2.03-2.03z" fill="#99994e"/> - <path d="M462.44 365.553l2.03 2.03-2.03-2.03z" fill="#0e0e6e"/> - <path d="M464.47 365.553l2.03 2.03-2.03-2.03z" fill="#a4a43d"/> - <path d="M468.53 365.553l2.03 2.03-2.03-2.03z" fill="#d4d456"/> - <path d="M486.802 365.553l2.03 2.03-2.03-2.03z" fill="#f9d099"/> - <path d="M488.832 365.553l2.03 2.03-2.03-2.03m10.15 0l2.03 2.03-2.03-2.03z" fill="#fe9f11"/> - <path d="M501.013 365.553l2.03 2.03-2.03-2.03z" fill="#f9d6aa"/> - <path d="M503.044 365.553l2.03 2.03-2.03-2.03z" fill="#f9d099"/> - <path d="M511.164 365.553l2.03 2.03-2.03-2.03z" fill="#f9d6aa"/> - <path d="M513.195 365.553l2.03 2.03-2.03-2.03z" fill="#fae3c9"/> - <path d="M515.225 365.553l2.03 2.03-2.03-2.03z" fill="#fef8f1"/> - <path d="M531.466 365.553l2.03 2.03-2.03-2.03z" fill="#fbead6"/> - <path d="M533.497 365.553l2.03 2.03-2.03-2.03z" fill="#fae3c9"/> - <path d="M535.527 365.553l2.03 2.03-2.03-2.03z" fill="#faca88"/> - <path d="M537.557 365.553l2.03 2.03-2.03-2.03z" fill="#fbc477"/> - <path d="M539.587 365.553l2.03 2.03-2.03-2.03z" fill="#fdab33"/> - <path d="M549.738 365.553l2.03 2.03-2.03-2.03z" fill="#fe9f11"/> - <path d="M551.768 365.553l2.03 2.03-2.03-2.03z" fill="#f9d6aa"/> - <path d="M582.22 365.553l2.032 2.03-2.03-2.03z" fill="#e5e3af"/> - <path d="M588.312 365.553l2.03 2.03-2.03-2.03z" fill="#667"/> - <path d="M464.47 367.583l2.03 2.03-2.03-2.03z" fill="#737370"/> - <path d="M470.56 367.583l2.03 2.03-2.03-2.03z" fill="#f2f1d7"/> - <path d="M484.772 367.583l2.03 2.03-2.03-2.03z" fill="#fea522"/> - <path d="M494.923 367.583l2.03 2.03-2.03-2.03z" fill="#fe9f11"/> - <path d="M496.953 367.583l2.03 2.03-2.03-2.03z" fill="#fbbe66"/> - <path d="M498.983 367.583l2.03 2.03-2.03-2.03z" fill="#fcf1e4"/> - <path d="M547.708 367.583l2.03 2.03-2.03-2.03z" fill="#fea522"/> - <path d="M549.738 367.583l2.03 2.03-2.03-2.03z" fill="#fbead6"/> - <path d="M582.22 367.583l2.032 2.03-2.03-2.03z" fill="#dddc7a"/> - <path d="M586.282 367.583l2.03 2.03-2.03-2.03z" fill="#a4a43d"/> - <path d="M588.312 367.583l2.03 2.03-2.03-2.03z" fill="#262678"/> - <path d="M464.47 369.613l2.03 2.03-2.03-2.03z" fill="#49497d"/> - <path d="M467.17 370.973l.678 1.353-.678-1.353z" fill="#a4a43d"/> - <path d="M470.56 369.613l2.03 2.03-2.03-2.03z" fill="#d3d079"/> - <path d="M486.802 369.613l2.03 2.03-2.03-2.03z" fill="#f9d099"/> - <path d="M488.832 369.613l2.03 2.03-2.03-2.03z" fill="#fcb144"/> - <path d="M490.862 369.613l2.03 2.03-2.03-2.03z" fill="#faca88"/> - <path d="M492.893 369.613l2.03 2.03-2.03-2.03z" fill="#f8dcbb"/> - <path d="M494.923 369.613l2.03 2.03-2.03-2.03z" fill="#fef8f1"/> - <path d="M539.587 369.613l2.03 2.03-2.03-2.03z" fill="#f8dcbb"/> - <path d="M547.708 369.613l2.03 2.03-2.03-2.03z" fill="#fcf1e4"/> - <path d="M580.19 369.613l2.03 2.03-2.03-2.03z" fill="#f6f6e4"/> - <path d="M586.282 369.613l2.03 2.03-2.03-2.03z" fill="#8d8d5b"/> - <path d="M472.59 371.643l2.03 2.03-2.03-2.03z" fill="#fbfaf2"/> - <path d="M539.587 371.643l2.03 2.03-2.03-2.03z" fill="#fbbe66"/> - <path d="M545.678 371.643l2.03 2.03-2.03-2.03z" fill="#faca88"/> - <path d="M580.19 371.643l2.03 2.03-2.03-2.03z" fill="#e1e18c"/> - <path d="M586.282 371.643l2.03 2.03-2.03-2.03z" fill="#49497d"/> - <path d="M466.5 373.674l2.03 2.03-2.03-2.03z" fill="#58587b"/> - <path d="M472.59 373.674l2.03 2.03-2.03-2.03z" fill="#e5e59d"/> - <path d="M539.587 373.674l2.03 2.03-2.03-2.03z" fill="#fe9f11"/> - <path d="M543.648 373.674l2.03 2.03-2.03-2.03z" fill="#fdab33"/> - <path d="M578.16 373.674l2.03 2.03-2.03-2.03z" fill="#fbfaf2"/> - <path d="M584.252 373.674l2.03 2.03-2.03-2.03z" fill="#a4a43d"/> - <path d="M586.282 373.674l2.03 2.03-2.03-2.03z" fill="#0e0e6e"/> - <path d="M466.5 375.704l2.03 2.03-2.03-2.03z" fill="#1b1b74"/> - <path d="M468.53 375.704l2.03 2.03-2.03-2.03z" fill="#a4a43d"/> - <path d="M472.59 375.704l2.03 2.03-2.03-2.03z" fill="#d0d045"/> - <path d="M537.557 375.704l2.03 2.03-2.03-2.03z" fill="#fbead6"/> - <path d="M541.617 375.704l2.03 2.03-2.03-2.03z" fill="#fe9f11"/> - <path d="M543.648 375.704l2.03 2.03-2.03-2.03z" fill="#fbead6"/> - <path d="M578.16 375.704l2.03 2.03-2.03-2.03z" fill="#e5e59d"/> - <path d="M584.252 375.704l2.03 2.03-2.03-2.03z" fill="#667"/> - <path d="M468.53 377.734l2.03 2.03-2.03-2.03z" fill="#6e6c70"/> - <path d="M474.62 377.734l2.03 2.03-2.03-2.03z" fill="#e5e3af"/> - <path d="M538.227 379.094l.678 1.352-.678-1.352z" fill="#faca88"/> - <path d="M541.617 377.734l2.03 2.03-2.03-2.03z" fill="#fae3c9"/> - <path d="M576.13 377.734l2.03 2.03-2.03-2.03z" fill="#fbfaf2"/> - <path d="M582.22 377.734l2.032 2.03-2.03-2.03z" fill="#a4a43d"/> - <path d="M584.252 377.734l2.03 2.03-2.03-2.03m-115.722 2.03l2.03 2.03-2.03-2.03z" fill="#1b1b74"/> - <path d="M470.56 379.764l2.03 2.03-2.03-2.03z" fill="#a4a43d"/> - <path d="M474.62 379.764l2.03 2.03-2.03-2.03z" fill="#d0d045"/> - <path d="M476.65 379.764l2.03 2.03-2.03-2.03z" fill="#fbfaf2"/> - <path d="M539.587 379.764l2.03 2.03-2.03-2.03z" fill="#f9d6aa"/> - <path d="M576.13 379.764l2.03 2.03-2.03-2.03z" fill="#e5e59d"/> - <path d="M582.22 379.764l2.032 2.03-2.03-2.03m-111.662 2.03l2.03 2.03-2.03-2.03z" fill="#6e6c70"/> - <path d="M476.65 381.794l2.03 2.03-2.03-2.03z" fill="#8cbf84"/> - <path d="M477.524 381.794c7.05 14.84 31.99 49.848 51.04 49.166 18.5-.662 39.393-34.82 47.567-49.166h-98.606z" fill="#0cf"/> - <path d="M580.19 381.794l2.03 2.03-2.03-2.03z" fill="#a4a43d"/> - <path d="M582.22 381.794l2.032 2.03-2.03-2.03m-111.662 2.03l2.03 2.03-2.03-2.03z" fill="#1b1b74"/> - <path d="M472.59 383.825l2.03 2.03-2.03-2.03z" fill="#a4a43d"/> - <path d="M476.65 383.825l2.03 2.03-2.03-2.03z" fill="#adb333"/> - <path d="M478.68 383.825l2.03 2.03-2.03-2.03z" fill="#1ac5b5"/> - <path d="M574.1 383.825l2.03 2.03-2.03-2.03z" fill="#68b070"/> - <path d="M580.19 383.825l2.03 2.03-2.03-2.03z" fill="#667"/> - <path d="M472.59 385.855l2.03 2.03-2.03-2.03z" fill="#58587b"/> - <path d="M478.68 385.855l2.03 2.03-2.03-2.03z" fill="#7fb15c"/> - <path d="M572.07 385.855l2.03 2.03-2.03-2.03z" fill="#27c2aa"/> - <path d="M578.16 385.855l-2.03 4.06 2.03-4.06z" fill="#a4a43d"/> - <path d="M580.19 385.855l2.03 2.03-2.03-2.03m-107.6 2.03l2.03 2.03-2.03-2.03z" fill="#0e0e6e"/> - <path d="M474.62 387.885l4.06 4.06-4.06-4.06z" fill="#a4a43d"/> - <path d="M480.71 387.885l2.032 2.03-2.03-2.03z" fill="#34be9e"/> - <path d="M572.07 387.885l2.03 2.03-2.03-2.03z" fill="#96b247"/> - <path d="M578.16 387.885l2.03 2.03-2.03-2.03z" fill="#53527c"/> - <path d="M474.62 389.915l2.03 2.03-2.03-2.03z" fill="#3a3a7c"/> - <path d="M480.71 389.915l2.032 2.03-2.03-2.03z" fill="#a2b23d"/> - <path d="M482.742 389.915l2.03 2.03-2.03-2.03z" fill="#0dc9c1"/> - <path d="M570.04 389.915l2.03 2.03-2.03-2.03z" fill="#5bb47c"/> - <path d="M576.13 389.915l2.03 2.03-2.03-2.03z" fill="#8d8d5b"/> - <path d="M476.65 391.945l2.03 2.03-2.03-2.03z" fill="#737370"/> - <path d="M482.742 391.945l2.03 2.03-2.03-2.03z" fill="#74b166"/> - <path d="M568.01 391.945l2.03 2.03-2.03-2.03z" fill="#27c2aa"/> - <path d="M574.1 391.945l-2.03 4.06 2.03-4.06z" fill="#a4a43d"/> - <path d="M576.13 391.945l2.03 2.03-2.03-2.03z" fill="#262678"/> - <path d="M476.65 393.976l2.03 2.03-2.03-2.03z" fill="#0e0e6e"/> - <path d="M478.68 393.976l4.062 4.06-4.06-4.06z" fill="#a4a43d"/> - <path d="M484.772 393.976l2.03 2.03-2.03-2.03z" fill="#42bb92"/> - <path d="M565.98 393.976l2.03 2.03-2.03-2.03z" fill="#0dc9c1"/> - <path d="M568.01 393.976l2.03 2.03-2.03-2.03z" fill="#96b247"/> - <path d="M574.1 393.976l2.03 2.03-2.03-2.03z" fill="#58587b"/> - <path d="M478.68 396.006l2.03 2.03-2.03-2.03z" fill="#3a3a7c"/> - <path d="M484.772 396.006l2.03 2.03-2.03-2.03z" fill="#adb333"/> - <path d="M486.802 396.006l2.03 2.03-2.03-2.03z" fill="#27c2aa"/> - <path d="M565.98 396.006l2.03 2.03-2.03-2.03z" fill="#74b166"/> - <path d="M572.07 396.006l2.03 2.03-2.03-2.03z" fill="#8d8d5b"/> - <path d="M480.71 398.036l2.032 2.03-2.03-2.03z" fill="#6e6c70"/> - <path d="M486.802 398.036l2.03 2.03-2.03-2.03z" fill="#96b247"/> - <path d="M488.832 398.036l2.03 2.03-2.03-2.03z" fill="#0dc9c1"/> - <path d="M563.95 398.036l2.03 2.03-2.03-2.03z" fill="#42bb92"/> - <path d="M570.04 398.036l-4.06 6.09 4.06-6.09z" fill="#a4a43d"/> - <path d="M572.07 398.036l2.03 2.03-2.03-2.03z" fill="#1b1b74"/> - <path d="M480.71 400.066l2.032 2.03-2.03-2.03z" fill="#0e0e6e"/> - <path d="M482.742 400.066l2.03 2.03-2.03-2.03z" fill="#8d8d5b"/> - <path d="M488.832 400.066l2.03 2.03-2.03-2.03z" fill="#7fb15c"/> - <path d="M561.92 400.066l2.03 2.03-2.03-2.03z" fill="#34be9e"/> - <path d="M570.04 400.066l2.03 2.03-2.03-2.03z" fill="#3a3a7c"/> - <path d="M482.742 402.096l2.03 2.03-2.03-2.03z" fill="#1b1b74"/> - <path d="M484.772 402.096l22.332 22.333-22.332-22.334z" fill="#a4a43d"/> - <path d="M490.862 402.096l2.03 2.03-2.03-2.03z" fill="#74b166"/> - <path d="M559.89 402.096l2.03 2.03-2.03-2.03z" fill="#27c2aa"/> - <path d="M561.92 402.096l2.03 2.03-2.03-2.03z" fill="#adb333"/> - <path d="M568.01 402.096l2.03 2.03-2.03-2.03z" fill="#667"/> - <path d="M484.772 404.127l2.03 2.03-2.03-2.03z" fill="#32327b"/> - <path d="M492.893 404.127l2.03 2.03-2.03-2.03z" fill="#42bb92"/> - <path d="M557.86 404.127l-8.122 10.15 8.12-10.15z" fill="#0dc9c1"/> - <path d="M559.89 404.127l2.03 2.03-2.03-2.03z" fill="#adb333"/> - <path d="M565.98 404.127l2.03 2.03-2.03-2.03z" fill="#737370"/> - <path d="M486.802 406.157l2.03 2.03-2.03-2.03z" fill="#49497d"/> - <path d="M494.923 406.157l2.03 2.03-2.03-2.03z" fill="#42bb92"/> - <path d="M557.86 406.157l2.03 2.03-2.03-2.03z" fill="#96b247"/> - <path d="M563.95 406.157l-2.03 4.06 2.03-4.06z" fill="#8d8d5b"/> - <path d="M565.98 406.157l2.03 2.03-2.03-2.03z" fill="#0e0e6e"/> - <path d="M488.832 408.187l2.03 2.03-2.03-2.03z" fill="#53527c"/> - <path d="M496.953 408.187l2.03 2.03-2.03-2.03z" fill="#42bb92"/> - <path d="M555.83 408.187l2.03 2.03-2.03-2.03z" fill="#96b247"/> - <path d="M563.95 408.187l2.03 2.03-2.03-2.03z" fill="#0e0e6e"/> - <path d="M490.862 410.217l2.03 2.03-2.03-2.03z" fill="#6e6c70"/> - <path d="M498.983 410.217l2.03 2.03-2.03-2.03z" fill="#42bb92"/> - <path d="M553.8 410.217l2.03 2.03-2.03-2.03z" fill="#96b247"/> - <path d="M559.89 410.217l-4.06 6.09 4.06-6.09z" fill="#a4a43d"/> - <path d="M561.92 410.217l2.03 2.03-2.03-2.03z" fill="#262678"/> - <path d="M492.893 412.247l2.03 2.03-2.03-2.03z" fill="#6e6c70"/> - <path d="M501.013 412.247l2.03 2.03-2.03-2.03z" fill="#42bb92"/> - <path d="M551.768 412.247l2.03 2.03-2.03-2.03z" fill="#96b247"/> - <path d="M559.89 412.247l2.03 2.03-2.03-2.03z" fill="#262678"/> - <path d="M494.923 414.278l2.03 2.03-2.03-2.03z" fill="#6e6c70"/> - <path d="M503.044 414.278l2.03 2.03-2.03-2.03z" fill="#68b070"/> - <path d="M547.708 414.278l2.03 2.03-2.03-2.03z" fill="#27c2aa"/> - <path d="M549.738 414.278l2.03 2.03-2.03-2.03z" fill="#adb333"/> - <path d="M557.86 414.278l2.03 2.03-2.03-2.03z" fill="#262678"/> - <path d="M496.953 416.308l2.03 2.03-2.03-2.03z" fill="#667"/> - <path d="M505.074 416.308l2.03 2.03-2.03-2.03z" fill="#74b166"/> - <path d="M545.678 416.308l2.03 2.03-2.03-2.03z" fill="#34be9e"/> - <path d="M547.708 416.308l2.03 2.03-2.03-2.03z" fill="#adb333"/> - <path d="M553.8 416.308l-2.032 4.06 2.03-4.06z" fill="#8d8d5b"/> - <path d="M555.83 416.308l2.03 2.03-2.03-2.03z" fill="#262678"/> - <path d="M498.983 418.338l2.03 2.03-2.03-2.03z" fill="#49497d"/> - <path d="M507.104 418.338l2.03 2.03-2.03-2.03z" fill="#96b247"/> - <path d="M509.134 418.338l2.03 2.03-2.03-2.03z" fill="#0dc9c1"/> - <path d="M543.648 418.338l2.03 2.03-2.03-2.03z" fill="#42bb92"/> - <path d="M553.8 418.338l2.03 2.03-2.03-2.03z" fill="#0e0e6e"/> - <path d="M501.013 420.368l2.03 2.03-2.03-2.03z" fill="#49497d"/> - <path d="M509.134 420.368l2.03 2.03-2.03-2.03z" fill="#a2b23d"/> - <path d="M511.164 420.368l2.03 2.03-2.03-2.03z" fill="#27c2aa"/> - <path d="M541.617 420.368l2.03 2.03-2.03-2.03z" fill="#74b166"/> - <path d="M547.708 420.368l-6.09 8.12 6.09-8.12z" fill="#a4a43d"/> - <path d="M549.738 420.368l2.03 2.03-2.03-2.03z" fill="#808067"/> - <path d="M551.768 420.368l2.03 2.03-2.03-2.03z" fill="#0e0e6e"/> - <path d="M503.044 422.398l2.03 2.03-2.03-2.03z" fill="#262678"/> - <path d="M511.164 422.398l2.03 2.03-2.03-2.03z" fill="#adb333"/> - <path d="M513.195 422.398l2.03 2.03-2.03-2.03z" fill="#42bb92"/> - <path d="M537.557 422.398l2.03 2.03-2.03-2.03z" fill="#0dc9c1"/> - <path d="M539.587 422.398l2.03 2.03-2.03-2.03z" fill="#96b247"/> - <path d="M547.708 422.398l2.03 2.03-2.03-2.03z" fill="#6e6c70"/> - <path d="M505.074 424.43l2.03 2.03-2.03-2.03z" fill="#1b1b74"/> - <path d="M507.104 424.43l2.03 2.03-2.03-2.03z" fill="#8d8d5b"/> - <path d="M515.225 424.43l2.03 2.03-2.03-2.03z" fill="#74b166"/> - <path d="M517.255 424.43l2.03 2.03-2.03-2.03z" fill="#0dc9c1"/> - <path d="M535.527 424.43l2.03 2.03-2.03-2.03z" fill="#34be9e"/> - <path d="M537.557 424.43l2.03 2.03-2.03-2.03z" fill="#adb333"/> - <path d="M545.678 424.43l2.03 2.03-2.03-2.03z" fill="#49497d"/> - <path d="M507.104 426.46l2.03 2.03-2.03-2.03z" fill="#0e0e6e"/> - <path d="M509.134 426.46l2.03 2.03-2.03-2.03z" fill="#6e6c70"/> - <path d="M511.164 426.46l4.06 4.06-4.06-4.06z" fill="#a4a43d"/> - <path d="M517.255 426.46l2.03 2.03-2.03-2.03z" fill="#96b247"/> - <path d="M519.285 426.46l2.03 2.03-2.03-2.03z" fill="#27c2aa"/> - <path d="M533.497 426.46l2.03 2.03-2.03-2.03z" fill="#68b070"/> - <path d="M543.648 426.46l2.03 2.03-2.03-2.03z" fill="#32327b"/> - <path d="M511.164 428.49l2.03 2.03-2.03-2.03z" fill="#49497d"/> - <path d="M521.315 428.49l2.03 2.03-2.03-2.03z" fill="#5bb47c"/> - <path d="M529.436 428.49l2.03 2.03-2.03-2.03z" fill="#27c2aa"/> - <path d="M531.466 428.49l2.03 2.03-2.03-2.03z" fill="#96b247"/> - <path d="M537.557 428.49l-2.03 4.06 2.03-4.06z" fill="#a4a43d"/> - <path d="M539.587 428.49l2.03 2.03-2.03-2.03z" fill="#808067"/> - <path d="M541.617 428.49l2.03 2.03-2.03-2.03z" fill="#0e0e6e"/> - <path d="M513.195 430.52l2.03 2.03-2.03-2.03z" fill="#262678"/> - <path d="M515.225 430.52l2.03 2.03-2.03-2.03z" fill="#8d8d5b"/> - <path d="M523.346 430.52l2.03 2.03-2.03-2.03z" fill="#8bb252"/> - <path d="M525.376 430.52l2.03 2.03-2.03-2.03z" fill="#1ac5b5"/> - <path d="M527.406 430.52l2.03 2.03-2.03-2.03z" fill="#5bb47c"/> - <path d="M537.557 430.52l2.03 2.03-2.03-2.03z" fill="#58587b"/> - <path d="M515.225 432.55l2.03 2.03-2.03-2.03z" fill="#0e0e6e"/> - <path d="M517.255 432.55l2.03 2.03-2.03-2.03z" fill="#667"/> - <path d="M519.285 432.55l2.03 2.03-2.03-2.03z" fill="#a4a43d"/> - <path d="M533.497 432.55l2.03 2.03-2.03-2.03z" fill="#99994e"/> - <path d="M535.527 432.55l2.03 2.03-2.03-2.03m-16.242 2.03l2.03 2.03-2.03-2.03z" fill="#32327b"/> - <path d="M521.315 434.58l2.03 2.03-2.03-2.03z" fill="#99994e"/> - <path d="M529.436 434.58l2.03 2.03-2.03-2.03z" fill="#a4a43d"/> - <path d="M531.466 434.58l2.03 2.03-2.03-2.03z" fill="#667"/> - <path d="M533.497 434.58l2.03 2.03-2.03-2.03m-12.182 2.03l2.03 2.03-2.03-2.03z" fill="#0e0e6e"/> - <path d="M523.346 436.61l2.03 2.03-2.03-2.03z" fill="#667"/> - <path d="M525.376 436.61l2.03 2.03-2.03-2.03z" fill="#a4a43d"/> - <path d="M527.406 436.61l2.03 2.03-2.03-2.03z" fill="#99994e"/> - <path d="M529.436 436.61l2.03 2.03-2.03-2.03z" fill="#32327b"/> - <path d="M525.376 438.64l2.03 2.03-2.03-2.03z" fill="#262678"/> - <path d="M527.406 438.64l2.03 2.03-2.03-2.03z" fill="#0e0e6e"/> - <path d="M529.436 302.617c3.133 7.368 13.176 15.504 15.937 19.492-3.514 3.986-4.216 3.552-3.756 10.96 6.11-6.394 6.22-7.06 10.15-6.09 8.61 8.59 1.542 27.043-5.574 31.055-7.113 4.28-5.822-.148-16.485 5.216 4.89 4.18 10.553-.613 15.182.668 2.516 2.985-1.196 8.424.76 13.546 4.09-.394 3.6-8.653 4.55-11.647 2.99-10.97 20.957-18.623 21.87-28.687 3.79-1.778 7.575-.556 12.182 2.03-2.295-9.428-9.883-9.327-11.918-12.27-4.842-7.4-9.134-15.842-19.475-18.03-7.852-1.664-7.265.5-12.296-2.933-3.127-2.44-12.648-7.053-11.126-3.31z" fill="#f90"/> - <path d="M552.008 310.987a1.636 1.636 0 1 1-3.272-.002 1.636 1.636 0 0 1 3.272.003z" fill-rule="evenodd" fill="#fff"/> - <path d="M504.328 333.876c5.05-6.212 7.553-18.893 9.79-23.197 5.166 1.243 5.11 2.067 11.445-1.8-8.508-2.417-9.15-2.203-10.128-6.13 3.575-11.628 23.192-13.997 30.063-9.58 7.108 4.29 2.59 5.218 12.313 12.14 1.413-6.276-5.47-9.045-6.5-13.736 1.463-3.618 8.006-2.878 11.62-7-2.258-3.432-9.33.86-12.423 1.417-11.097 2.484-26.256-9.827-35.58-5.934-3.343-2.518-4.03-6.437-3.896-11.718-7.264 6.433-3.63 13.095-5.282 16.27-4.28 7.737-9.74 15.475-6.843 25.642 2.197 7.718 3.835 6.19 3.15 12.24-.696 3.905-.326 14.478 2.27 11.384z" fill="#f90"/> - <path d="M501.184 310.008c.8-.422 1.79-.117 2.21.682a1.635 1.635 0 1 1-2.21-.682z" fill-rule="evenodd" fill="#fff"/> - <path d="M545.374 338.236c-7.93-1.11-20.076 3.308-24.916 3.62-1.608-5.065-.874-5.443-7.46-8.864 2.332 8.532 2.847 8.97-.01 11.84-11.798 2.954-23.974-12.61-23.748-20.775-.004-8.302 3.126-4.915 4.02-16.817-6.1 2.037-4.91 9.36-8.39 12.67-3.855.618-6.606-5.364-12.003-6.326-1.77 3.71 5.563 7.542 7.64 9.9 7.864 8.212 5.17 27.554 13.325 33.52-.427 4.164-3.425 6.78-8.014 9.396 9.263 2.89 13.085-3.667 16.656-3.895 8.837-.34 18.283.33 25.486-7.407 5.468-5.874 3.313-6.484 8.845-9.03 3.702-1.422 12.56-7.208 8.57-7.83z" fill="#f90"/> - <path d="M526.574 353.272a1.635 1.635 0 1 1 1.685-2.805 1.637 1.637 0 0 1-1.686 2.805z" fill-rule="evenodd" fill="#fff"/> - </g> -</svg> diff --git a/img/flags/4x3/al.svg b/img/flags/4x3/al.svg deleted file mode 100644 index 8846696..0000000 --- a/img/flags/4x3/al.svg +++ /dev/null @@ -1,5 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" height="480" width="640" viewBox="0 0 640 480"> - <path fill="#e41e20" d="M0 0h640v480H0z"/> - <path id="a" d="M272.09 93.316c-4.667-.08-12.413 1.488-12.24 5.07-13-2.228-14.354 3.142-13.59 7.92 1.237-1.896 2.743-2.926 3.9-3.12 1.734-.288 3.548.272 5.4 1.41 1.853 1.138 3.894 2.974 4.8 4.11-4.588 1.097-8.133.39-11.73-.24-1.773-.31-4.254-1.308-5.73-2.34-1.475-1.033-1.94-2.004-4.26-4.38-2.735-2.8-5.647-2.013-4.74 2.34 2.098 4.042 5.603 5.845 10.02 6.57 2.126.35 5.292 1.106 8.88 1.11 3.59.004 7.618-.52 9.81-.06-1.317.827-2.807 2.252-5.76 2.82-3.002.577-7.567-1.786-10.35-2.43.354 2.34 3.307 4.53 9.12 5.67 9.554 2.08 17.492 3.66 22.74 6.51 5.248 2.85 8.557 6.415 10.92 9.21 4.703 5.56 4.95 9.83 5.25 10.77.968 8.885-2.13 13.884-7.89 15.42-2.88.768-7.994-.678-9.87-2.88-1.875-2.2-3.7-5.985-3.18-11.91.506-2.325 3.164-8.38.9-9.63-10.427-5.763-23.09-11.59-32.25-15.06-2.503-.948-4.566 2.455-5.37 3.78-15.562-1.895-29.594-12.426-35.91-23.64-4.3-7.637-11.39.016-10.2 7.23 1.925 8.052 8.06 13.874 15.42 18 7.555 4.16 16.998 8.253 26.55 8.04 5.147.974 5.096 7.632-1.08 8.88-12.077.077-21.712-.225-30.81-9-6.9-6.3-10.784 1.207-8.79 5.46 3.38 13.112 22.086 16.784 41.01 12.54 7.328-1.213 2.94 6.64.87 6.72-7.907 5.67-22.063 11.217-34.53-.06-5.705-4.368-9.562-.696-7.44 5.61 5.532 16.442 26.692 12.99 41.22 4.89 3.74-2.084 7.133 2.765 2.58 6.45-18.067 12.624-27.1 12.768-35.25 7.92-10.202-4.024-11.1 7.293-5.04 11.01 6.736 4.132 23.876 1.034 36.45-6.87 5.39-4.008 5.635 2.26 2.22 4.74-14.922 12.896-20.804 16.292-36.36 14.19-7.713-.6-7.598 8.91-1.53 12.63 8.285 5.08 24.464-3.353 37.02-13.77 5.285-2.824 6.153 1.807 3.54 7.29-7.672 9.68-14.873 15.387-21.81 18.03-6.936 2.643-13.608 2.222-18.33.6-5.76-1.98-6.482 4.007-3.3 9.45 1.92 3.28 9.87 4.332 18.45 1.29 8.582-3.043 17.795-10.18 24.12-18.54 5.504-4.82 4.82 1.654 2.31 6.21-12.666 20.024-24.25 27.452-39.51 26.19-6.765-1.15-8.302 4.112-3.99 8.97 7.572 6.28 17.04 6.082 25.32-.12 7.362-7.098 21.445-22.38 28.83-30.57 5.205-4.15 6.867-.06 5.34 8.37-1.388 4.826-4.865 9.91-14.34 13.62-6.472 3.694-1.612 8.785 3.24 8.88 2.67.05 8.092-3.07 12.24-7.74 5.457-6.145 5.782-10.27 8.79-19.83 2.843-4.66 7.92-2.486 7.92 2.4-2.435 9.576-4.527 11.293-9.45 15.21-4.708 4.42 3.28 5.894 5.97 4.08 7.786-5.25 10.63-12.037 13.23-18.21 1.878-4.456 7.325-2.296 4.8 4.98-6.034 17.388-15.95 24.234-33.3 27.75-1.758.312-2.83 1.35-2.22 3.39 2.33 2.417 4.662 4.61 6.99 7.02-10.728 3.123-19.444 4.878-30.18 8.01-5.267-3.453-9.522-6.383-14.79-9.84-1.39-3.247-2.036-8.203-9.81-4.71-5.267-2.433-7.697-1.54-10.62.9 4.22.157 6.056 1.287 7.71 3.21 2.16 5.69 7.14 6.24 12.24 4.62 3.317 2.794 5.084 4.938 8.4 7.74-6.19-.212-10.504-.322-16.68-.51-5.895-6.33-10.6-5.983-14.82-1.02-3.216.494-4.58.564-6.78 4.47 3.46-1.42 5.64-1.846 7.14-.3 6.268 3.634 10.362 2.823 13.47 0 6.047.37 11.496.683 17.55 1.08-2.224 1.89-5.276 2.893-7.5 4.8-9.082-2.598-13.822.9-15.42 8.31-1.217 2.992-1.787 6.07-1.26 9.27.88-2.926 2.293-5.442 4.89-7.02 8.095 2.057 11.14-1.248 11.58-6.09 3.902-3.183 9.786-3.885 13.68-7.11 4.553 1.458 6.755 2.36 11.34 3.81 1.63 4.955 5.32 6.916 11.31 5.64 7.13.224 5.872 3.15 6.45 5.49 1.895-3.36 1.842-6.63-2.55-9.6-1.598-4.34-5.138-6.316-9.78-3.81-4.37-1.24-5.517-3.023-9.87-4.26 11.01-3.51 18.82-4.298 29.82-7.8 2.754 2.598 4.936 4.463 7.71 6.78 1.462.873 2.862 1.093 3.72 0 6.894-9.977 9.973-18.77 16.38-25.35 2.448-2.722 5.54-6.394 8.97-7.29 1.715-.447 3.818-.174 5.16 1.29 1.343 1.465 2.398 4.164 1.95 8.19-.642 5.78-2.038 7.605-3.66 11.07-1.62 3.466-3.603 5.597-5.64 8.25-4.073 5.307-9.448 8.396-12.63 10.47-6.362 4.15-9.053 2.333-13.98 2.07-6.367.715-8.06 3.816-2.85 8.1 4.872 2.535 9.25 2.848 12.81 2.19 3.056-.565 6.632-4.51 9.18-6.63 2.868-3.313 7.624.616 4.38 4.47-5.893 7.003-11.783 11.62-19.05 11.52-7.636 1.028-6.208 5.32-1.14 7.41 9.12 3.765 17.357-3.286 21.54-7.92 3.228-3.53 5.52-3.67 4.95 1.8-3.204 9.9-7.583 13.726-14.73 14.22-5.797-.538-5.86 3.937-1.62 6.96 9.658 6.685 16.652-4.7 19.92-11.58 2.33-6.207 5.9-3.255 6.27 1.86.05 6.835-3.04 12.415-11.31 19.41 6.328 10.082 13.705 20.336 20.04 30.45l19.205-213.893-19.2-33.794c-2-1.847-8.763-9.815-10.53-10.92-.644-.69-1.036-1.176-.09-1.53.916-.344 3.06-.73 4.5-.99-4.072-4.08-7.56-5.388-15.27-7.62 1.88-.8 3.706-.335 9.24-.6-2.197-3.12-7.104-7.896-13.44-10.2 4.184-2.976 5-3.175 9.15-6.66-7.187-.51-13.325-1.88-19.5-3.75-3.904-1.827-9.327-3.377-11.97-3.42zm.69 8.37c3.8 0 6.15 1.302 6.15 2.88 0 1.606-2.35 2.91-6.15 2.91-3.782 0-6.18-1.423-6.18-3.03 0-1.578 2.398-2.76 6.18-2.76z"/> - <use height="100%" width="100%" xlink:href="#a" transform="matrix(-1 0 0 1 640 0)"/> -</svg> diff --git a/img/flags/4x3/am.svg b/img/flags/4x3/am.svg deleted file mode 100644 index 046d22f..0000000 --- a/img/flags/4x3/am.svg +++ /dev/null @@ -1,5 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" height="480" width="640" viewBox="0 0 640 480"> - <path d="M0 0h640v160H0z" fill="red"/> - <path d="M0 160h640v160H0z" fill="#00f"/> - <path d="M0 320h640v160H0z" fill="orange"/> -</svg> diff --git a/img/flags/4x3/ao.svg b/img/flags/4x3/ao.svg deleted file mode 100644 index 32b49ea..0000000 --- a/img/flags/4x3/ao.svg +++ /dev/null @@ -1,13 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" height="480" width="640" viewBox="0 0 640 480"> - <g fill-rule="evenodd" stroke-width="1pt"> - <path fill="red" d="M0 0h640v243.574H0z"/> - <path d="M0 236.428h640v243.574H0z"/> - </g> - <path d="M228.67 148.173c165.22 43.304 58.99 255.64-71.216 167.26l-8.817 13.545c76.628 54.658 152.57 10.66 173.9-46.358 22.297-58.788-7.52-141.48-92.51-150.03l-1.356 15.576z" fill-rule="evenodd" fill="#ffec00"/> - <path fill-rule="evenodd" fill="#ffec00" d="M169.955 330.827l21.73 10.125-10.142 21.696-21.73-10.125zm148.985-99.48h23.98v23.942h-23.98zm-11.684-38.892l22.342-8.694 8.707 22.31-22.342 8.693zm-25.894-29.188l17.035-16.85 16.877 17.01-17.035 16.85zm-26.284-39.787l22.434 8.455-8.468 22.4-22.434-8.455zM316.1 270.01l22.265 8.888-8.902 22.23-22.265-8.887zm-69.876 70.05l22.06-9.388 9.402 22.025-22.058 9.39zm-39.504 2.77h23.98v23.94h-23.98zm41.29-115.937l-20.35-15.006-20.245 14.47 8.034-22.92-20.348-14.956 24.447-.17 8.567-22.55 7.782 22.702 24.7-.242-19.586 15.232 6.996 23.44z"/> - <path d="M336.03 346.376c-1.21.418-6.23 12.39-9.675 18.248 1.797.51 2.56.596 3.625 1.025 13.655 4.8 20.384 9.18 26.186 17.504 2.888 2.79 7.032 2.93 10.198.697 0 0 2.795-1.114 6.43-5.02 2.968-4.52 2.194-8.11-1.384-11.16-10.944-7.952-22.9-13.902-35.38-21.295z" fill-rule="evenodd" fill="#fe0"/> - <path d="M365.247 372.842c0 2.388-1.94 4.324-4.33 4.324s-4.333-1.936-4.333-4.324 1.94-4.325 4.332-4.325 4.33 1.936 4.33 4.325zM343.87 359.17c0 2.388-1.94 4.324-4.33 4.324s-4.333-1.936-4.333-4.324 1.94-4.325 4.332-4.325 4.33 1.936 4.33 4.325zm10.898 6.975c0 2.39-1.94 4.325-4.33 4.325s-4.333-1.936-4.333-4.325 1.94-4.324 4.332-4.324 4.33 1.937 4.33 4.325z" fill-rule="evenodd"/> - <path d="M324.47 363.667c-42.57-24.273-87.31-50.52-129.88-74.796-18.75-11.635-19.683-33.384-7.17-49.875 1.302-2.337 2.836-1.758 3.514-.524 1.463 8.03 5.97 16.325 11.37 21.496 44.693 28.383 87.732 55.804 131.71 85.613-3.448 5.767-6.104 12.32-9.55 18.086z" fill-rule="evenodd" fill="#fe0"/> - <path fill-rule="evenodd" fill="#ffec00" d="M297.174 305.457l17.85 15.986-16.01 17.824-17.85-15.986z"/> - <path d="M331.54 348.82L206.58 273.3m109.53 58.093l-42.24-27.28m18.21 42.687l-42.75-24.755" stroke="#000" stroke-width="3.05" fill="none"/> -</svg> diff --git a/img/flags/4x3/aq.svg b/img/flags/4x3/aq.svg deleted file mode 100644 index 656c8b7..0000000 --- a/img/flags/4x3/aq.svg +++ /dev/null @@ -1,6 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" height="480" width="640" viewBox="0 0 640 480"> - <path d="M0 0h640v480H0z" fill="#3a7dce" fill-rule="evenodd"/> - <path d="M184.83 225.328c-2.887-5.906-2.887-5.906-2.887-11.809-1.444 0-1.714.278-2.55.045-.835-.23-1.15 5.445-3.856 4.337-.45-.553 1.94-4.657-.655-6.364-.834-.555.203-3.922-.16-5.4 0 0-3.292 1.754-5.774-4.426-1.219-1.616-2.888 1.475-2.888 1.475s.722 1.891-.585 2.353c-1.85-1.384-3.204-.659-5.55-2.56-2.345-1.904.497-4.083-3.97-5.697 2.89-7.381 2.89-5.906 10.106-8.857-4.33-2.953-4.33-2.953-7.216-7.382-4.332-1.475-5.775-2.95-10.107-5.903-5.775-7.382-8.662-22.142-8.662-32.475 3.656-3.46 8.662 11.809 15.881 16.237l10.106 4.428c5.775 2.952 7.219 5.903 11.55 8.856l12.994 4.429c5.775 4.427 8.662 10.333 12.994 11.808 4.692 0 5.596-2.763 7.1-2.934 8.487-.446 12.82-1.564 14.51-4.17 1.714-2.076 5.82 1.2 17.37-3.229l-1.442-5.906s3.067-2.582 7.219-1.475c-.113-2.698-.385-9.893 3.703-13.14-2.483-2.662-.816-4.572-.816-4.572s2.3-2.261 2.57-3.46c-1.216-6.505 1.057-6.605 1.566-8.52.51-1.912-1.963-1.257-1.265-3.895.695-2.639 4.877-3.265 5.437-5.438.563-2.175-1.19-3.264-1.09-3.783.903-2.076.137-6.965 0-8.857 7.76-2.123 10.288-8.58 12.993-5.905 1.444-8.857 2.888-11.808 11.55-11.808 1.22-2.722-3.159-5.03-1.443-5.905 2.887-.37 5.098-.184 8.484 4.29 1.069 1.418 1.262-2.076 2.344-2.445 1.083-.37 3.675-.375 4.06-2.122.407-1.8.993-4.152 2.437-7.104 1.218-2.4 2.165.923 3.248 5.628 6.09.23 19.851 1.614 25.626 3.229 4.33 1.153 7.218-1.153 11.368-1.615 3.067 3.137 5.955.784 7.58 7.472 2.292 3.61 6.046.325 6.858 1.385 4.828 13.607 21.431 4.428 22.693 4.66 2.119 0 4.709 6.084 6.378 5.932 2.713-.467 1.945-2.359 4.312-1.598-.63 5.121 4.65 11.025 4.65 14.854 0 0 1.285.647 2.475-.49 1.19-1.135 2.284-4.053 3.343-3.985 2.528.37 3.552.702 6.463 1.222 7.828 2.735 11.816 3.352 14.856 4.753 1.416 2.647 2.784 4.001 5.653 3.506 2.368 1.628.64 3.76 2.04 3.898 2.887-1.477 3.833-3.091 6.721-1.615 2.887 1.476 5.775 4.429 7.219 7.381 0 1.476-1.444 7.38 0 16.238.722 2.95 1.071 5.292 4.172 10.355-.824 5.202 3.903 13.954 3.903 16.168 0 2.952-2.302 4.475-3.746 7.425 5.775 4.43 0 11.81-2.887 16.238 21.656 4.43 11.55 13.286 28.874 8.857-4.33 10.334-2.797 9.504 1.534 19.838-8.662 5.904-.18 7.702-5.953 15.082-.362.463 3.427 6.413 8.75 6.413-1.443 11.809-5.774 7.38-4.33 25.094-11.37-.229-6.77 13.24-14.438 11.81.45 8.442 4.376 9.18 2.887 17.713-5.775 1.477-5.775 1.477-8.662 5.906l-4.331-1.477c-1.444 7.381-4.331 8.857 0 16.238 0 0-5.594.185-7.219 0-.135 2.538 2.483 3.23 2.888 5.904-.225 1.062-8.211 5.72-14.438 5.907-1.622 3.643 4.331 7.518 3.971 9.362-6.768 1.338-9.745 9.825-9.745 9.825s3.473 1.431 2.888 2.954c-1.85-1.385-2.888-1.477-5.775-1.477-1.444.37-4.963-.09-8.337 5.732-3.703 1.247-5.45.797-8.259 4.594-1.244-3.62-3.033.034-5.22 1.438-2.184 1.406-5.128 4.9-5.525 4.75.091-1.014 1.354-4.706 1.354-4.706l-7.219 1.477-.888.091c-.568.056-.417-4.309-1.784-4.15-1.37.16-5.282 5.49-6.616 5.658-1.332.168-1.753-1.695-2.902-1.533-1.147.162-3.384 5.625-4.198 5.768-.813.146-4.037-3.318-6.8-2.836-14.212 5.122-16.469-10.101-18.678-1.52-2.978-1.615-2.462-.678-5.487.133-1.932.509-2.107-2.61-3.824-2.561-3.434.099-3.253 3.422-5.128 2.428-1.531-6.919-10.78-5.675-11.684-8.625-.733-3.08 4.008-3.066 5.541-5.152 1.172-3.01-1.224-4.153 3.534-7.056 6.2-4.288 2.635-5.907 3.722-9.128 1.945-4.654 1.956-5.789.332-9.894 0 0-4.828-13.285-5.775-13.285-2.887-.83-2.887 4.889-7.129 6.458-8.662 2.951-23.954-7.474-26.617-7.474-2.435.047-13.717 2.732-13.292-3.02-1.687 5.593-7.89 1.314-8.272 1.314-5.775 0-3.565 4.566-7.444 4.382-1.762-.6-19.535-1.66-19.535-1.66v2.952l-11.55-5.907-10.107-2.95c-8.662-2.953-4.33-10.334-18.768-5.906v-8.857h-7.219c2.887-17.714 0-8.856-1.444-25.094l-5.775 1.477c-5.775-7.98 8.03-6.458-4.331-11.808 0 0 .227-8.813-2.887-5.906-.631.37 1.443 4.43 1.443 4.43-11.55-1.476-14.437-4.43-14.437-16.238 0 0 9.52 1.385 8.662 0-1.352-2.213-3.112-16.606-2.796-17.575-.136-1.938 8.842-6.827 7.106-11.488 1.104-.415 4.352-.459 4.352-.459" fill="#fff"/> - <path d="M574.575 284.306c-.462 1.039-.38 2.077.098 2.817.856-1.284.133-1.877-.098-2.817z" fill="none" stroke="#fff" stroke-width="2.108" stroke-linecap="round" stroke-linejoin="round"/> - <path d="M203.29 167.756s-2.422-.296-1.878 1.828c.79-1.63 1.828-1.728 1.877-1.828zm.543-4.94c-1.334.05-2.965-.197-2.421 1.926.79-1.631 2.371-1.828 2.421-1.926zm9.113 28.312s2.075-.148 1.531 1.976c-.79-1.63-1.48-1.877-1.531-1.976z" fill="none" stroke="#fff" stroke-width="1.976" stroke-linejoin="round"/> -</svg> diff --git a/img/flags/4x3/ar.svg b/img/flags/4x3/ar.svg deleted file mode 100644 index 6750068..0000000 --- a/img/flags/4x3/ar.svg +++ /dev/null @@ -1,32 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" height="480" width="640" viewBox="0 0 640 480"> - <path fill="#74acdf" d="M0 0h640v480H0z"/> - <path fill="#fff" d="M0 160.003h640v160.003H0z"/> - <g id="c" transform="translate(-64) scale(.96)"> - <path id="a" d="M396.84 251.31l28.454 61.992s.49 1.185 1.28.859c.79-.327.299-1.512.299-1.512l-23.715-63.956m-.68 24.12c-.347 9.428 5.452 14.613 4.694 23.032-.757 8.42 3.867 13.18 4.94 16.454 1.073 3.274-1.16 5.232-.198 5.698.963.466 3.07-2.12 2.383-6.775-.687-4.655-4.22-6.037-3.39-16.32.83-10.283-4.206-12.678-2.98-22.058" fill="#f6b40e" stroke="#85340a" stroke-width="1.112"/> - <use height="100%" width="100%" xlink:href="#a" transform="rotate(22.5 400 250)"/> - <use height="100%" width="100%" xlink:href="#a" transform="rotate(45 400 250)"/> - <use height="100%" width="100%" xlink:href="#a" transform="rotate(67.5 400 250)"/> - <path id="b" d="M404.31 274.41c.453 9.054 5.587 13.063 4.579 21.314 2.213-6.525-3.124-11.583-2.82-21.22m-7.649-23.757l19.487 42.577-16.329-43.887" fill="#85340a"/> - <use height="100%" width="100%" xlink:href="#b" transform="rotate(22.5 400 250)"/> - <use height="100%" width="100%" xlink:href="#b" transform="rotate(45 400 250)"/> - <use height="100%" width="100%" xlink:href="#b" transform="rotate(67.5 400 250)"/> - </g> - <use height="100%" width="100%" xlink:href="#c" transform="rotate(90 320 240)"/> - <use height="100%" width="100%" xlink:href="#c" transform="rotate(180 320 240)"/> - <use height="100%" width="100%" xlink:href="#c" transform="rotate(-90 320 240)"/> - <circle r="26.667" cy="240" cx="320" fill="#f6b40e" stroke="#85340a" stroke-width="1.44"/> - <path id="h" d="M329.091 234.298c-1.82 0-3.564.789-4.59 2.43 2.051 1.845 6.582 2.046 9.66-.21a7.04 7.04 0 0 0-5.07-2.22zm-.03.42c1.773-.033 3.429.781 3.66 1.59-2.051 2.256-5.329 2.06-7.38.42.898-1.436 2.342-1.985 3.72-2.01z" fill="#843511"/> - <use height="100%" width="100%" xlink:href="#d" transform="matrix(-1 0 0 1 640.24 0)"/> - <use height="100%" width="100%" xlink:href="#e" transform="matrix(-1 0 0 1 640.24 0)"/> - <use height="100%" width="100%" xlink:href="#f" transform="translate(18.108)"/> - <use height="100%" width="100%" xlink:href="#g" transform="matrix(-1 0 0 1 640.24 0)"/> - <path d="M315.92 243.686c-.877.16-1.5.939-1.5 1.83 0 1.02.842 1.83 1.86 1.83.602 0 1.154-.285 1.5-.78.71.534 1.694.59 2.22.6.08.002.185 0 .24 0 .526-.01 1.51-.066 2.22-.6.346.495.898.78 1.5.78 1.018 0 1.86-.81 1.86-1.83 0-.891-.623-1.67-1.5-1.83.492.174.81.65.81 1.17 0 .68-.548 1.23-1.23 1.23a1.24 1.24 0 0 1-1.23-1.17c-.2.4-.993 1.59-2.55 1.65-1.557-.06-2.35-1.25-2.55-1.65a1.24 1.24 0 0 1-1.23 1.17c-.681 0-1.23-.55-1.23-1.23 0-.52.318-.996.81-1.17zM317.926 249.149c-2.052 0-2.863 1.86-4.71 3.09 1.026-.41 1.834-1.219 3.27-2.04 1.437-.82 2.661.18 3.48.18h.03c.82 0 2.044-1 3.48-.18 1.437.822 2.274 1.63 3.3 2.04-1.846-1.23-2.687-3.09-4.74-3.09-.41 0-1.22.221-2.04.63h-.03c-.819-.41-1.63-.63-2.04-.63z" fill="#85340a"/> - <path d="M317.235 251.578c-.81.035-1.881.198-3.42.66 3.694-.82 4.509.42 6.15.42h.03c1.642 0 2.456-1.24 6.15-.42-4.103-1.231-4.92-.42-6.15-.42h-.03c-.769 0-1.38-.3-2.73-.24z" fill="#85340a"/> - <path d="M314 252.211c-.238.003-.498.005-.78.03 4.308.41 2.237 2.88 6.75 2.88h.03c4.513 0 2.471-2.47 6.78-2.88-4.513-.41-3.086 2.25-6.78 2.25h-.03c-3.463 0-2.396-2.324-5.97-2.28z" fill="#85340a"/> - <path d="M323.696 258.874a3.694 3.694 0 0 0-7.385 0 3.797 3.797 0 0 1 7.385 0z" fill="#85340a"/> - <path id="e" d="M303.42 234.26c4.719-4.103 10.666-4.719 13.95-1.641.803 1.076 1.318 2.226 1.53 3.427.412 2.335-.318 4.859-2.148 7.445.207 0 .618.204.823.41 1.628-3.114 2.204-6.313 1.67-9.356a13.263 13.263 0 0 0-.643-2.338c-4.513-3.691-10.665-4.102-15.178 2.052z" fill="#85340a"/> - <path id="d" d="M310.803 233.03c2.666 0 3.282.616 4.513 1.642 1.232 1.026 1.846.82 2.051 1.026.204.205 0 .82-.41.614-.409-.206-1.231-.614-2.46-1.64-1.232-1.027-2.461-1.026-3.693-1.026-3.692 0-5.743 3.076-6.153 2.871-.41-.206 2.052-3.487 6.153-3.487z" fill="#85340a"/> - <use height="100%" width="100%" xlink:href="#h" transform="translate(-18.414)"/> - <circle id="f" cy="236.304" cx="310.918" r="1.846" fill="#85340a"/> - <path id="g" d="M305.878 237.542c3.488 2.668 6.975 2.462 9.026 1.231 2.051-1.23 2.051-1.64 1.642-1.64-.41 0-.82.41-2.461 1.23-1.642.821-4.102.821-8.204-.82z" fill="#85340a"/> -</svg> diff --git a/img/flags/4x3/as.svg b/img/flags/4x3/as.svg deleted file mode 100644 index 3bdc5bc..0000000 --- a/img/flags/4x3/as.svg +++ /dev/null @@ -1,33 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" height="480" width="640" viewBox="0 0 640 480"> - <defs> - <clipPath id="a"> - <path fill-opacity=".67" d="M0 0h640v480H0z"/> - </clipPath> - </defs> - <g clip-path="url(#a)"> - <path fill="#006" d="M-374-16H650v512H-374z"/> - <path d="M-374 240L650 496V-16L-374 240z" fill-rule="evenodd" fill="#bd1021"/> - <path d="M650 11.43v457.14L-264.29 240 650 11.43z" fill-rule="evenodd" fill="#fff"/> - <g stroke="#000"> - <path stroke-linejoin="round" d="M478 297.4s-6.392-5.23 1.163-13.658c-4.068-3.486-.29-10.17-.29-10.17s-6.975-2.615.29-13.366c-5.23-3.487-2.906-11.333-2.906-11.333s-17.144-6.393-.87-12.494c-13.368 5.81-25.863-7.848-25.863-7.848l-19.468.582c-3.302-16.172-28.97-2.127-9.888-48.52-4.94-.872-10.46-2.324-15.982 1.744-5.522 4.067-21.212 12.784-30.51 4.067s6.1-21.212 6.392-21.502c.29-.29 20.63-10.75 23.536-17.725-.29-5.23-6.682-9.298-.872-20.63 6.683-10.753 47.65-20.923 66.26-24.41 9.007-4.068 13.076-11.914 13.076-11.914l2.034 7.555s41.262-12.205 43.296-18.016.872 5.23.872 5.23c16.272-1.453 36.903-15.4 39.81-9.008 13.656-2.615 39.81-14.238 39.81-14.238s9.006-.29 2.613 9.59c4.068 6.392-1.162 11.913-1.452 11.913-.29 0 1.743 6.394-3.487 9.88 1.745 5.522-3.197 9.88-3.197 9.88s2.326 6.684-6.973 10.17c.872 5.812-5.23 6.975-5.23 6.975s.872 6.102-3.196 8.717c0 4.65-4.65 6.974-4.65 6.974s2.906 1.743-1.163 4.65c-4.067 2.905-46.2 28.766-46.2 28.476 0-.29 30.8 5.52 32.834 6.683s25.28 16.564 25.28 16.564l-23.537 29.056s-26.15-2.905-27.312-1.452 5.52 2.034 6.973 4.358c1.455 2.324 3.78 7.847 8.428 7.265 4.65-.582-8.717 8.427-17.434 9.3 0 3.195 11.04 3.485 13.947.87 2.907-2.615-6.973 7.555-8.136 9.008s13.077-2.034 13.077-2.034-2.324 9.59-14.818 12.496c4.94 8.136 2.905 13.367 2.614 13.367s-8.136-8.137-15.69-6.684c2.033 7.845 8.136 15.108 9.88 16.272 1.742 1.162-13.658.87-15.692-3.488s-3.778 10.46 1.743 15.11c-6.392.29-11.914-3.487-11.914-3.487s-3.776 8.717-1.162 13.077c2.617 4.36-9.006-8.718-9.006-8.718l-22.084 9.3-4.94-8.428z" fill-rule="evenodd" stroke-width="1.761" fill="#9c3900"/> - <path d="M307.325 280.1c.518 0 32.082-.518 46.572-8.797 7.244 11.384 17.076 19.146 17.076 19.146l4.658-16.56s11.385.518 12.42 3.106c-1.553 3.103-2.07 7.243-2.07 7.243s7.76.518 8.28 1.552c.516 1.035-2.07 9.83-2.07 9.83l33.116 7.763s2.587-12.936 5.175-11.384c2.588 1.554 13.972 17.595 30.013 18.63s17.076-13.455 17.076-13.455l3.62 2.07s6.728-14.487 7.763-14.487 2.588 2.07 11.384 2.07c2.587 3.104 3.623 10.347 3.623 10.347s-9.833 9.833-6.728 17.595 3.623 5.69 3.623 5.69l71.408 17.077s3.624 5.693-2.586 8.798c0 .517-71.927-16.56-71.927-16.56s-6.728 7.762-11.902 6.21-1.552 3.105-1.552 3.105l77.618 6.21s5.692 7.244 1.552 9.314c-5.174.517-83.827-5.174-83.827-5.174s-4.66 9.83-9.833 1.552c-3.62 5.69-7.762-1.552-7.762-1.552s-6.726 5.174-7.762-.52c-5.692 4.14-9.314-2.585-9.314-2.585l-33.118-2.07-2.07 3.104s5.692 1.55-3.105 5.174c-8.796 3.622 52.78 2.07 54.333 2.587 1.552.52-4.14 5.176-4.14 5.176s31.566 2.07 37.257-4.657c5.692-6.73-2.07 8.795-2.07 8.795s24.84-1.034 24.84-2.07-.52 7.763-17.595 6.727c10.35 6.728 23.285 10.867 23.285 10.867s-12.936 3.104-27.942-.518c2.586 6.727 13.972 12.936 13.972 12.936s-8.28 7.245-26.91-10.35c5.176 9.315 1.036 12.938.52 11.902-.52-1.035-9.315-13.97-30.013-18.628 12.936 8.28 7.243 11.902 7.243 11.902s-6.726-11.902-17.593 0c-4.14-10.867-20.18-17.076-39.844-18.112-6.21-7.243-9.83-5.174-24.32-9.314-8.28-9.313-20.18-19.663-20.18-19.663s.517-13.97 14.488-12.42c1.552 4.658 1.552 3.106 1.552 3.106s15.524-5.692 20.18 2.07c6.728-11.902 16.042-1.78 17.595 2.36 4.458.654 26.907 1.262 26.907 1.262s-2.588-4.657-1.035-4.14c1.552.518 13.97-4.656 13.454-6.208-.517-1.553-1.034-6.727 1.035-6.21 2.07.517-17.593-2.588-28.46 5.693-3.622-3.623-1.035-13.455-1.035-13.455l-32.08-6.726-1.554 8.28s-9.314 1.55-8.796-.518c.517-2.07-2.07 7.243-2.07 7.243s-12.42-3.104-12.42-3.62 3.623-18.63 3.623-18.112c0 .518-10.35 1.035-24.838 11.902-4.14-12.936-36.74-30.012-36.74-30.53z" fill-rule="evenodd" stroke-width="1.878" fill="#ffc221"/> - <path d="M385.98 284.763l-6.727 30.013m12.935-18.63l-2.07 9.83m35.189-2.068l-3.105 9.314m60.546 53.808c-.517 0-16.558 2.07-18.63 1.554-2.068-.517 25.357 8.28 25.357 11.9m-35.705-9.818s-16.04-10.348-18.628-9.314c-2.587 1.035 16.04-.517 17.594-2.07m-32.086-.52s-16.558.517-18.11-1.035 16.04 11.384 19.145 10.35m-33.118-16.569c-.518 0-11.385-4.14-16.04-5.176 4.138 4.14 7.243 9.833 17.592 11.902m2.588-13.446c-.518-1.035-20.698-7.245-20.698-10.35 4.656 1.553 11.383 3.622 17.592 2.07m110.221-15.528l-2.07 9.314" stroke-width="1.878" fill="none"/> - <path d="M347.688 237.67s-21.734 18.628 0 29.494c1.034-7.244 2.587-8.278 2.587-8.278s18.11 6.726 28.977-9.315c-4.657-6.725-12.937-4.138-12.937-4.138s-17.076 0-18.628-7.76z" fill-rule="evenodd" stroke-width="1.878" fill="#ffc221"/> - <path d="M365.8 245.954l-15.006 12.936m61.222 76.91s3.46 3.814.354 8.47m72.45-4.652l-5.692.52m-40.881-3.633l10.35 1.552m17.486-28.162s.29 10.46-8.427 10.17c-8.717-.29-5.812.29-5.812.29" stroke-width="1.878" fill="none"/> - <path d="M472.774 308.148s3.487 1.162 2.616 3.778c-.872 2.614.87 10.17-9.298 17.434-10.753 2.324-9.59-9.007-9.59-9.007" stroke-width="1.878" fill="none"/> - <path d="M476.55 311.346s6.392-3.777 7.264 2.325c.87 6.102-5.23 17.435-9.59 19.18-4.358 1.742-9.297-.292-8.717-3.197m18.889-15.688s5.813-4.65 7.555 1.452c1.745 6.103-4.648 19.76-7.264 20.05m7.837-20.051s2.907-1.453 4.94.29m-14.237 20.629c-1.162.29-6.102.58-7.845-3.196m-18.3-6.975c-.29 0-6.102.292-6.102.292m28.472 22.67l-.58-9.59-2.325-3.195-4.068 4.068s-.583 9.59-2.326 10.46m2.327-10.76c-.292-.58-3.198-6.1-3.198-6.1l-4.94 6.1s-.58 8.72-2.324 9.592m2.318-9.887c0-.29-2.034-5.81-2.034-5.81s-5.81 3.196-6.392 5.52c-.58 2.325-.872 8.717-2.325 9.3m2.327-10.461s.582-5.23-1.162-5.23c-1.742 0-9.59 7.265-9.88 13.657" stroke-width="1.878" fill="none"/> - <path stroke-linejoin="round" d="M348.402 237.825s2.905-2.906 3.777-6.392c.87-3.487-1.163-7.265 2.324-10.46 3.487-3.198 49.397-22.666 53.176-26.444 3.777-3.778 10.75-11.914 11.623-13.658.87-1.743 3.487 8.717-4.36 13.367 8.428-2.326 13.95-4.94 17.435-3.78-3.487 4.94-12.785 13.078-17.144 13.078 10.17-3.778 19.47-6.975 22.084-4.94 2.615 2.034-12.495 12.204-18.597 12.785 10.17-2.615 23.83-6.683 25.572-2.325-5.52 1.744-3.78 3.195-15.11 9.59-1.453 1.163-8.717 1.452-8.717 1.452 8.717-.872 20.63-4.36 21.792 2.034-6.973 2.615-9.588 6.102-15.4 7.555-5.81 1.453-19.178 4.067-27.315 7.264-8.136 3.196-20.05 12.495-20.05 12.495s-25.86.87-25.86.58c0-.29-4.94-11.914-5.23-12.205z" fill-rule="evenodd" stroke-width="1.878" fill="#fff"/> - <path d="M360.605 235.797s.29-5.81 2.906-7.845c2.616-2.034 15.693-6.975 18.6-11.333 2.904-4.36-4.36 7.554-3.198 10.75m-13.077-.292s6.393 2.326 4.94 7.265" stroke-width="1.878" fill="none"/> - <path d="M373.39 230.422a4.794 4.794 0 1 1-9.59.001 4.794 4.794 0 0 1 9.591-.001z" stroke-width="1.631" fill="none"/> - <path d="M570.116 220.104l50.27 9.59s5.52-6.394 2.615-9.88c7.556-1.743 5.522-11.623 5.522-11.623s8.717-3.776 1.452-12.495c4.942-4.94-1.162-8.717-1.162-8.717s2.034-8.717-4.36-9.59c1.745-6.972-11.04-9.297-11.04-9.297s-26.443 7.265-45.04 7.847c6.102 6.102-2.325 9.88-2.325 9.88s4.94 3.486 3.487 6.392c-1.453 2.905.872 6.1-5.52 8.136 8.426 3.778-.873 10.17-.873 10.17s9.3 6.392 6.976 9.588z" fill-rule="evenodd" stroke-width="1.878" fill="#fff"/> - <path d="M565.17 209.356s44.46 5.23 46.494 5.23 9.88 2.616 11.333 5.23m-55.502-13.081l61.893 1.453m-61.598-2.903s58.698-3.487 62.766-9.59m-61.032-3.195s58.988-6.394 59.57-5.522m-61.599-1.744s57.244-9.007 57.825-7.555m-221.127-29.347s18.016 19.76 16.272 33.126" stroke-width="1.878" fill="none"/> - <path d="M419.303 170.997s5.81 8.426 8.136 9.298 22.665 2.034 23.827 10.752c1.162 5.52-4.358 3.777-3.486 7.845 1.453 5.23 15.11 11.913 29.93 4.068m-13.655 4.07s12.203 18.017 30.22-1.45m-9.301 7.847s14.82 7.845 27.023-12.495M496.3 215.16s7.264 6.102 22.376-2.033m20.927-8.137s22.375 4.647 23.828 6.1m-15.404-11.032c.29 0 15.692.582 15.692.582m-25.285-9.303s26.733-1.743 30.22 3.778m-41.842-12.205s37.486 1.453 39.228 3.487m-30.804 34.863s6.393-1.743 7.265-.87m-21.788 16.562s8.426 7.265 19.18 4.068m-14.533 8.146s9.59 4.358 20.923 1.742m-17.723 5.512s9.588 6.393 15.98 5.23m-20.334-1.44s6.683 4.94 6.973 7.555m-16.269-1.751s2.033 10.46 9.298 14.237m-14.244-9.589s-3.196 13.658 4.94 22.084M501.54 281.41c0 .29-.58 6.393-.29 6.975m-52.015-59.857l15.692-.872s5.81-2.324 1.742-6.1m2.034 3.494c.292 0 14.82 1.16 18.598 5.52 3.778 4.358 8.428 13.075 11.042 14.53 2.616 1.45 3.197-.583 3.197-.583m-6.395-2.325s-7.845 13.368-1.743 17.436m-2.624-2.616s-6.973 9.3-1.453 13.948m-1.449-1.17s-5.52 9.008 1.163 15.11m-3.599-39.003c-.376.375-6.75 4.874-9 3.75m2.25 10.493s2.625 2.624 4.875 2.25M479 273.776l4.19 2.872m-3.626 7.566l3.624 2.186m-69.255-144.7s7.64 3.974 13.75 0c6.112-3.97 35.446-18.943 43.085-21.388 7.638-2.445 11.917-16.5 13.445-22.61M478.41 114.2l42.78-12.527s7.027-5.806 7.332-16.5m-3.062 11.611s42.778-4.278 42.778-20.167m-6.715 10.999S606.44 75.393 610.72 70.81" stroke-width="1.878" fill="none"/> - <path d="M436.233 151.48s27.195-14.057 31.473-15.584c4.277-1.528 14.055-13.75-.61-13.75" stroke-width="1.878" fill="none"/> - <path d="M449.376 156.98c.306 0 22.305-14.363 29.64-16.196 3.972-5.5 1.833-11.305-4.89-10.083" stroke-width="1.878" fill="none"/> - <path d="M480.846 137.118c.612-.306 11.918-.612 7.945 8.25-5.802 4.278-30.86 16.806-30.86 16.806m17.111-34.529l47.67-15.89s3.973-8.25-1.832-9.472m39.727-14.363c0 .307 6.112 3.668 2.445 9.168-6.722 3.973-38.5 11.612-38.5 11.612m84.331-25.667L563.965 95.56m41.551-2.443l-39.11 11.917m35.758-2.139l-34.53 10.39m28.106-.613c-.917 0-25.667 7.64-25.667 7.64m20.173 0l-15.89 6.417m11.917 2.138c-.61 0-13.75 5.805-13.75 5.805m9.777 1.223l-12.22 5.805m-8.867 7.335s1.528.61 1.222 2.445m-32.087 14.36s5.195 1.834.306 6.723c-2.444 3.36-9.472 2.445-13.75 8.556m46.76-83.724s6.418 1.528 1.528 9.778c-12.834 4.89-38.807 12.833-38.807 12.833s-1.22 2.14-4.582 3.973c-3.36 1.832-40.334 12.22-40.334 12.22m84.336-29.332s7.028 3.056 0 8.25c-7.945 4.584-35.75 13.14-35.75 13.14s-.307 2.444-1.528 3.36c-1.223.917-37.89 13.14-37.89 13.14" stroke-width="1.878" fill="none"/> - <path d="M567.636 115.116s7.334 2.14.917 8.25c-7.64 4.584-32.084 12.834-32.084 12.834s-2.445 3.056-6.418 4.278c-3.972 1.222-29.333 11.61-29.333 11.61m68.75-28.721c2.14.917 7.945 1.834.917 7.334-8.25 3.667-28.417 11.612-28.417 11.612l-1.834 3.36-32.083 13.75m63.249-27.805s3.054 3.667-3.668 7.945c-7.334 3.972-23.222 10.083-23.222 10.083m23.226-9.473s3.36 2.14-.915 5.195c-4.89 2.444-24.14 12.528-24.14 12.528l-12.528 8.25" stroke-width="1.878" fill="none"/> - <path d="M523.63 112.06c0 .307 5.194 4.584 3.36 9.473 4.584 3.362 3.667 7.028 3.667 7.028s6.416 3.668 5.5 8.863c6.417 1.528 6.11 5.194 6.11 5.194l-2.138 3.36s6.415-.304.916 7.946c3.36 1.833 1.834 3.972 1.834 3.972m-1.839-3.666c-.917 0-22.305 7.944-27.806 12.833" stroke-width="1.878" fill="none"/> - <path d="M489.41 144.757s6.418-.306 5.502 6.722c7.334-2.445 5.805 4.583 5.805 4.583s8.555-3.362 7.028 7.333c5.5-1.222 4.583 4.278 4.583 4.278s4.89-.306 4.89 2.444c3.36-3.055 7.028-1.527 7.028-1.527s2.444-3.36 5.805-2.444m-34.836-14.972c0 .61-28.723 16.5-28.723 16.5m34.218-11.307l-21.696 13.445m29.034-6.722c0 .305-18.945 11.306-18.945 11.306m23.227-7.028s-13.444 11-16.5 10.39m21.08-7.028s-7.64 5.805-14.057 8.555m22.001-11s2.444 3.056-12.833 11" stroke-width="1.878" fill="none"/> - </g> - </g> -</svg> diff --git a/img/flags/4x3/at.svg b/img/flags/4x3/at.svg deleted file mode 100644 index 0e45da9..0000000 --- a/img/flags/4x3/at.svg +++ /dev/null @@ -1,6 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" height="480" width="640" viewBox="0 0 640 480"> - <g fill-rule="evenodd"> - <path fill="#fff" d="M640 480H0V0h640z"/> - <path fill="#df0000" d="M640 480H0V319.997h640zm0-319.875H0V.122h640z"/> - </g> -</svg> diff --git a/img/flags/4x3/au.svg b/img/flags/4x3/au.svg deleted file mode 100644 index cd823e1..0000000 --- a/img/flags/4x3/au.svg +++ /dev/null @@ -1,9 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" height="480" width="640" viewBox="0 0 640 480"> - <g stroke-width="1pt"> - <path fill="#006" d="M0 0h640v480H0z"/> - <path d="M0 0v27.95L307.037 250h38.647v-27.95L38.647 0H0zm345.684 0v27.95L38.647 250H0v-27.95L307.037 0h38.647z" fill="#fff"/> - <path d="M144.035 0v250h57.614V0h-57.615zM0 83.333v83.333h345.684V83.333H0z" fill="#fff"/> - <path d="M0 100v50h345.684v-50H0zM155.558 0v250h34.568V0h-34.568zM0 250l115.228-83.334h25.765L25.765 250H0zM0 0l115.228 83.333H89.463L0 18.633V0zm204.69 83.333L319.92 0h25.764L230.456 83.333H204.69zM345.685 250l-115.228-83.334h25.765l89.464 64.7V250z" fill="#c00"/> - <path d="M299.762 392.523l-43.653 3.795 6.013 43.406-30.187-31.764-30.186 31.764 6.014-43.406-43.653-3.795 37.68-22.364-24.244-36.495 40.97 15.514 13.42-41.713 13.42 41.712 40.97-15.515-24.242 36.494m224.444 62.372l-10.537-15.854 17.81 6.742 5.824-18.125 5.825 18.126 17.807-6.742-10.537 15.854 16.37 9.718-18.965 1.65 2.616 18.85-13.116-13.793-13.117 13.794 2.616-18.85-18.964-1.65m16.368-291.815l-10.537-15.856 17.81 6.742 5.824-18.122 5.825 18.12 17.807-6.74-10.537 15.855 16.37 9.717-18.965 1.65 2.616 18.85-13.116-13.793-13.117 13.794 2.616-18.85-18.964-1.65m-89.418 104.883l-10.537-15.853 17.808 6.742 5.825-18.125 5.825 18.125 17.808-6.742-10.536 15.853 16.37 9.72-18.965 1.65 2.615 18.85-13.117-13.795-13.117 13.795 2.617-18.85-18.964-1.65m216.212-37.929l-10.558-15.854 17.822 6.742 5.782-18.125 5.854 18.125 17.772-6.742-10.508 15.854 16.362 9.718-18.97 1.65 2.608 18.85-13.118-13.793-13.117 13.793 2.61-18.85-18.936-1.65m-22.251 73.394l-10.367 6.425 2.914-11.84-9.316-7.863 12.165-.896 4.605-11.29 4.606 11.29 12.165.897-9.317 7.863 2.912 11.84" fill-rule="evenodd" fill="#fff"/> - </g> -</svg> diff --git a/img/flags/4x3/aw.svg b/img/flags/4x3/aw.svg deleted file mode 100644 index 7e7087d..0000000 --- a/img/flags/4x3/aw.svg +++ /dev/null @@ -1,186 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" height="480" width="640" viewBox="0 0 640 480"> - <defs> - <clipPath id="a"> - <path fill-opacity=".67" d="M0 0h288v216H0z"/> - </clipPath> - </defs> - <g transform="scale(2.2222)" clip-path="url(#a)"> - <path fill="#39c" d="M0 0v216h324V0H0z"/> - <path fill="#ff0" d="M0 144v12h324v-12H0zm0 24v12h324v-12H0z"/> - </g> - <path fill="#9cc" d="M142.647 28.067l2.952 2.952-2.953-2.953zm-2.952 5.903l2.952 2.953-2.952-2.952m5.904 0l2.95 2.953-2.95-2.952z"/> - <path fill="#ccf" d="M139.695 36.923l2.952 2.952-2.952-2.952m5.904 0l2.95 2.952-2.95-2.952z"/> - <path fill="#6cc" d="M136.743 42.827l2.952 2.952-2.952-2.953z"/> - <path fill="#c66" d="M142.647 42.827l2.952 2.952-2.953-2.953z"/> - <path fill="#6cc" d="M148.55 42.827l2.953 2.952-2.952-2.953z"/> - <path fill="#ccf" d="M136.743 45.78l2.952 2.95-2.952-2.95zm11.807 0l2.953 2.95-2.952-2.95z"/> - <path fill="#fcc" d="M139.695 48.73l2.952 2.954-2.952-2.953m5.904 0l2.95 2.954-2.95-2.953z"/> - <path fill="#6cc" d="M133.79 51.684l2.953 2.952-2.952-2.952z"/> - <path d="M142.16 34.065l-20.695 78.45-78.68 21.367 78.453 20.476 20.922 78.45 20.918-78.45 78.452-20.922-78.452-20.922-20.918-78.45z" stroke="#fff" stroke-width="3.69" fill="#c00"/> - <path fill="#6cc" d="M151.503 51.684l2.952 2.952-2.952-2.952z"/> - <path fill="#9cf" d="M133.79 54.636l2.953 2.952-2.952-2.952m17.713 0l2.952 2.952-2.952-2.952z"/> - <path fill="#fcc" d="M136.743 57.588l2.952 2.952-2.952-2.952m11.808 0l2.953 2.952-2.952-2.952z"/> - <path fill="#69c" d="M130.838 60.54l2.953 2.952-2.952-2.952z"/> - <path fill="#c33" d="M137.726 62.51l.984 1.967-.984-1.968m11.808 0l.984 1.967-.984-1.968z"/> - <path fill="#69c" d="M154.455 60.54l2.952 2.952-2.952-2.952z"/> - <path fill="#9cf" d="M130.838 63.492l2.953 2.952-2.952-2.952m23.617 0l2.952 2.952-2.952-2.952z"/> - <path fill="#fcc" d="M133.79 66.444l2.953 2.952-2.952-2.952m17.713 0l2.952 2.952-2.952-2.952z"/> - <path fill="#69c" d="M127.886 69.396l2.952 2.952-2.952-2.952zm29.521 0l2.952 2.952-2.953-2.952z"/> - <path fill="#9cc" d="M127.886 72.348l2.952 2.952-2.952-2.952m29.52 0l2.953 2.952-2.953-2.952z"/> - <path fill="#cff" d="M127.886 75.3l2.952 2.952-2.952-2.952m29.52 0l2.953 2.952-2.953-2.952z"/> - <path fill="#69c" d="M124.934 78.252l2.952 2.952-2.952-2.952z"/> - <path fill="#fcc" d="M130.838 78.252l2.953 2.952-2.952-2.952m23.617 0l2.952 2.952-2.952-2.952z"/> - <path fill="#69c" d="M160.36 78.252l2.95 2.952-2.95-2.952z"/> - <path fill="#9cc" d="M124.934 81.204l2.952 2.953-2.952-2.952z"/> - <path fill="#c33" d="M131.82 83.174l.986 1.967-.985-1.966m23.618 0l.984 1.967-.984-1.966z"/> - <path fill="#9cc" d="M160.36 81.204l2.95 2.953-2.95-2.952z"/> - <path fill="#cff" d="M124.934 84.157l2.952 2.952-2.952-2.953m35.425 0l2.95 2.952-2.95-2.953z"/> - <path fill="#fcc" d="M127.886 87.11l2.952 2.95-2.952-2.95m29.52 0l2.953 2.95-2.953-2.95z"/> - <path fill="#9cc" d="M121.982 90.06l2.952 2.953-2.952-2.952z"/> - <path fill="#c33" d="M128.87 92.03l.984 1.968-.985-1.968m29.52 0l.985 1.968-.985-1.968z"/> - <path fill="#9cc" d="M163.31 90.06l2.954 2.953-2.953-2.952z"/> - <path fill="#ccf" d="M121.982 93.013l2.952 2.952-2.952-2.952m41.33 0l2.952 2.952-2.953-2.952z"/> - <path fill="#fcc" d="M124.934 95.965l2.952 2.952-2.952-2.952m35.425 0l2.95 2.952-2.95-2.952z"/> - <path fill="#9cc" d="M119.03 98.917l2.952 2.952-2.952-2.953z"/> - <path fill="#c33" d="M125.917 100.886l.984 1.968-.983-1.968m35.425 0l.985 1.968-.985-1.968z"/> - <path fill="#9cc" d="M166.264 98.917l2.952 2.952-2.952-2.953z"/> - <path fill="#ccf" d="M119.03 101.87l2.952 2.95-2.952-2.95m47.234 0l2.952 2.95-2.952-2.95z"/> - <path fill="#fcc" d="M121.982 104.82l2.952 2.953-2.952-2.952m41.33 0l2.952 2.953-2.953-2.952z"/> - <path fill="#9cc" d="M116.078 107.773l2.952 2.952-2.952-2.952z"/> - <path fill="#c33" d="M121.982 107.773l2.952 2.952-2.952-2.952m41.33 0l2.952 2.952-2.953-2.952z"/> - <path fill="#9cc" d="M169.216 107.773l2.952 2.952-2.952-2.952m-61.994 2.952l2.952 2.953-2.952-2.952z"/> - <path fill="#ccf" d="M110.174 110.725l2.952 2.953-2.952-2.952m64.946 0l2.952 2.952-2.952-2.952z"/> - <path fill="#9cc" d="M178.072 110.725l2.952 2.953-2.952-2.952m-79.707 2.952l2.952 2.952-2.952-2.952z"/> - <path fill="#ccf" d="M101.317 113.678l2.953 2.952-2.953-2.952z"/> - <path fill="#fcc" d="M113.126 113.678l2.952 2.952-2.952-2.952z"/> - <path fill="#c33" d="M116.078 113.678l2.952 2.952-2.952-2.952m53.138 0l2.952 2.952-2.952-2.952z"/> - <path fill="#fcc" d="M172.168 113.678l2.952 2.952-2.952-2.952z"/> - <path fill="#ccf" d="M183.976 113.678l2.952 2.952-2.952-2.952z"/> - <path fill="#9cc" d="M186.928 113.678l2.952 2.952-2.952-2.952z"/> - <path fill="#69c" d="M86.557 116.63l2.952 2.952-2.953-2.952z"/> - <path fill="#9cc" d="M89.51 116.63l2.95 2.952-2.95-2.952z"/> - <path fill="#cff" d="M92.46 116.63l2.953 2.952-2.952-2.952z"/> - <path fill="#fcc" d="M104.27 116.63l2.952 2.952-2.952-2.952z"/> - <path fill="#c33" d="M109.19 117.613l1.97.984-1.97-.984m67.9 0l1.967.984-1.968-.984z"/> - <path fill="#fcc" d="M181.024 116.63l2.952 2.952-2.952-2.952z"/> - <path fill="#cff" d="M192.833 116.63l2.952 2.952-2.952-2.952z"/> - <path fill="#9cc" d="M195.785 116.63l2.952 2.952-2.952-2.952z"/> - <path fill="#69c" d="M198.737 116.63l2.952 2.952-2.953-2.952M77.7 119.582l2.953 2.952-2.952-2.952z"/> - <path fill="#9cc" d="M80.653 119.582l2.952 2.952-2.952-2.952z"/> - <path fill="#cff" d="M83.605 119.582l2.952 2.952-2.952-2.952z"/> - <path fill="#fcc" d="M95.413 119.582l2.952 2.952-2.952-2.952z"/> - <path fill="#c33" d="M100.334 120.565l1.968.984-1.968-.985m85.61 0l1.97.984-1.97-.985z"/> - <path fill="#fcc" d="M189.88 119.582l2.953 2.952-2.953-2.952z"/> - <path fill="#cff" d="M201.69 119.582l2.95 2.952-2.95-2.952z"/> - <path fill="#9cc" d="M204.64 119.582l2.953 2.952-2.952-2.952z"/> - <path fill="#69c" d="M207.593 119.582l2.952 2.952-2.952-2.952m-138.75 2.952l2.953 2.952-2.952-2.952z"/> - <path fill="#9cf" d="M71.796 122.534l2.952 2.952-2.952-2.952z"/> - <path fill="#fcc" d="M86.557 122.534l2.952 2.952-2.953-2.952z"/> - <path fill="#c33" d="M91.478 123.517l1.968.984-1.968-.983m103.324 0l1.967.984-1.968-.983z"/> - <path fill="#fcc" d="M198.737 122.534l2.952 2.952-2.953-2.952z"/> - <path fill="#9cf" d="M213.497 122.534l2.952 2.952-2.953-2.952z"/> - <path fill="#69c" d="M216.45 122.534l2.95 2.952-2.95-2.952z"/> - <path fill="#6cc" d="M59.988 125.486l2.952 2.952-2.952-2.952z"/> - <path fill="#9cf" d="M62.94 125.486l2.952 2.952-2.952-2.952z"/> - <path fill="#fcc" d="M74.75 125.486l2.95 2.952-2.95-2.952zm135.795 0l2.952 2.952-2.952-2.952z"/> - <path fill="#9cf" d="M222.353 125.486l2.953 2.952-2.953-2.952z"/> - <path fill="#6cc" d="M225.306 125.486l2.952 2.952-2.952-2.952m-174.174 2.952l2.952 2.952-2.952-2.952z"/> - <path fill="#ccf" d="M54.084 128.438l2.952 2.952-2.952-2.952z"/> - <path fill="#fcc" d="M65.892 128.438l2.952 2.952-2.952-2.952z"/> - <path fill="#c33" d="M70.813 129.42l1.968.985-1.967-.984m144.653 0l1.968.985-1.968-.984z"/> - <path fill="#fcc" d="M219.4 128.438l2.954 2.952-2.953-2.952z"/> - <path fill="#ccf" d="M231.21 128.438l2.952 2.952-2.952-2.952z"/> - <path fill="#6cc" d="M234.162 128.438l2.952 2.952-2.952-2.952z"/> - <path fill="#9cc" d="M42.275 131.39l2.952 2.952-2.952-2.952z"/> - <path fill="#ccf" d="M45.227 131.39l2.953 2.952-2.952-2.952z"/> - <path fill="#fcc" d="M57.036 131.39l2.952 2.952-2.952-2.952zm171.222 0l2.952 2.952-2.952-2.952z"/> - <path fill="#ccf" d="M240.066 131.39l2.952 2.952-2.952-2.952z"/> - <path fill="#9cc" d="M243.018 131.39l2.952 2.952-2.952-2.952M36.37 134.342l2.953 2.952-2.952-2.952z"/> - <path fill="#c66" d="M51.132 134.342l2.952 2.952-2.952-2.952zm183.03 0l2.952 2.952-2.952-2.952z"/> - <path fill="#9cc" d="M248.922 134.342l2.953 2.952-2.953-2.952m-206.647 2.952l2.952 2.953-2.952-2.953z"/> - <path fill="#ccf" d="M45.227 137.294l2.953 2.953-2.952-2.953z"/> - <path fill="#fcc" d="M57.036 137.294l2.952 2.953-2.952-2.953m171.222 0l2.952 2.953-2.952-2.953z"/> - <path fill="#ccf" d="M240.066 137.294l2.952 2.953-2.952-2.953z"/> - <path fill="#9cc" d="M243.018 137.294l2.952 2.953-2.952-2.953z"/> - <path fill="#6cc" d="M51.132 140.247l2.952 2.952-2.952-2.953z"/> - <path fill="#ccf" d="M54.084 140.247l2.952 2.952-2.952-2.953z"/> - <path fill="#fcc" d="M65.892 140.247l2.952 2.952-2.952-2.953z"/> - <path fill="#c33" d="M70.813 141.23l1.968.984-1.967-.984m144.653 0l1.968.984-1.968-.984z"/> - <path fill="#fcc" d="M219.4 140.247l2.954 2.952-2.953-2.953z"/> - <path fill="#ccf" d="M231.21 140.247l2.952 2.952-2.952-2.953z"/> - <path fill="#6cc" d="M234.162 140.247l2.952 2.952-2.952-2.953M59.988 143.2l2.952 2.95-2.952-2.95z"/> - <path fill="#9cf" d="M62.94 143.2l2.952 2.95-2.952-2.95z"/> - <path fill="#fcc" d="M74.75 143.2l2.95 2.95-2.95-2.95zm135.795 0l2.952 2.95-2.952-2.95z"/> - <path fill="#9cf" d="M222.353 143.2l2.953 2.95-2.953-2.95z"/> - <path fill="#6cc" d="M225.306 143.2l2.952 2.95-2.952-2.95z"/> - <path fill="#69c" d="M68.844 146.15l2.952 2.953-2.952-2.952z"/> - <path fill="#9cf" d="M71.796 146.15l2.952 2.953-2.952-2.952z"/> - <path fill="#fcc" d="M86.557 146.15l2.952 2.953-2.953-2.952z"/> - <path fill="#c33" d="M91.478 147.134l1.968.984-1.968-.984m103.324 0l1.967.984-1.968-.984z"/> - <path fill="#fcc" d="M198.737 146.15l2.952 2.953-2.953-2.952z"/> - <path fill="#9cf" d="M213.497 146.15l2.952 2.953-2.953-2.952z"/> - <path fill="#69c" d="M216.45 146.15l2.95 2.953-2.95-2.952M77.7 149.104l2.953 2.952-2.952-2.952z"/> - <path fill="#9cc" d="M80.653 149.103l2.952 2.952-2.952-2.952z"/> - <path fill="#cff" d="M83.605 149.103l2.952 2.952-2.952-2.952z"/> - <path fill="#fcc" d="M95.413 149.103l2.952 2.952-2.952-2.952z"/> - <path fill="#c33" d="M100.334 150.086l1.968.984-1.968-.984m85.61 0l1.97.984-1.97-.984z"/> - <path fill="#fcc" d="M189.88 149.103l2.953 2.952-2.953-2.952z"/> - <path fill="#cff" d="M201.69 149.103l2.95 2.952-2.95-2.952z"/> - <path fill="#9cc" d="M204.64 149.103l2.953 2.952-2.952-2.952z"/> - <path fill="#69c" d="M207.593 149.103l2.952 2.952-2.952-2.952m-121.036 2.952l2.952 2.952-2.953-2.952z"/> - <path fill="#9cc" d="M89.51 152.055l2.95 2.952-2.95-2.952z"/> - <path fill="#cff" d="M92.46 152.055l2.953 2.952-2.952-2.952z"/> - <path fill="#fcc" d="M104.27 152.055l2.952 2.952-2.952-2.952z"/> - <path fill="#c33" d="M109.19 153.038l1.97.984-1.97-.984m67.9 0l1.967.984-1.968-.984z"/> - <path fill="#fcc" d="M181.024 152.055l2.952 2.952-2.952-2.952z"/> - <path fill="#cff" d="M192.833 152.055l2.952 2.952-2.952-2.952z"/> - <path fill="#9cc" d="M195.785 152.055l2.952 2.952-2.952-2.952z"/> - <path fill="#69c" d="M198.737 152.055l2.952 2.952-2.953-2.952z"/> - <path fill="#9cc" d="M98.365 155.007l2.952 2.952-2.952-2.953z"/> - <path fill="#ccf" d="M101.317 155.007l2.953 2.952-2.953-2.953z"/> - <path fill="#fcc" d="M113.126 155.007l2.952 2.952-2.952-2.953z"/> - <path fill="#c33" d="M116.078 155.007l2.952 2.952-2.952-2.953m53.138 0l2.952 2.952-2.952-2.953z"/> - <path fill="#fcc" d="M172.168 155.007l2.952 2.952-2.952-2.953z"/> - <path fill="#ccf" d="M183.976 155.007l2.952 2.952-2.952-2.953z"/> - <path fill="#9cc" d="M186.928 155.007l2.952 2.952-2.952-2.953m-79.706 2.952l2.952 2.95-2.952-2.95z"/> - <path fill="#ccf" d="M110.174 157.96l2.952 2.95-2.952-2.95m64.946 0l2.952 2.95-2.952-2.95z"/> - <path fill="#9cc" d="M178.072 157.96l2.952 2.95-2.952-2.95m-61.994 2.95l2.952 2.953-2.952-2.952z"/> - <path fill="#c33" d="M121.982 160.91l2.952 2.953-2.952-2.952m41.33 0l2.952 2.953-2.953-2.952z"/> - <path fill="#9cc" d="M169.216 160.91l2.952 2.953-2.952-2.952z"/> - <path fill="#fcc" d="M121.982 163.863l2.952 2.952-2.952-2.952m41.33 0l2.952 2.952-2.953-2.952z"/> - <path fill="#ccf" d="M119.03 166.815l2.952 2.953-2.952-2.953z"/> - <path fill="#c33" d="M125.917 168.784l.984 1.968-.983-1.968m35.425 0l.985 1.968-.985-1.968z"/> - <path fill="#ccf" d="M166.264 166.815l2.952 2.953-2.952-2.953z"/> - <path fill="#9cc" d="M119.03 169.768l2.952 2.952-2.952-2.952m47.234 0l2.952 2.952-2.952-2.952z"/> - <path fill="#fcc" d="M124.934 172.72l2.952 2.952-2.952-2.952m35.425 0l2.95 2.952-2.95-2.952z"/> - <path fill="#ccf" d="M121.982 175.672l2.952 2.952-2.952-2.952z"/> - <path fill="#c33" d="M128.87 177.64l.984 1.97-.985-1.97m29.52 0l.985 1.97-.985-1.97z"/> - <path fill="#ccf" d="M163.31 175.672l2.954 2.952-2.953-2.952z"/> - <path fill="#9cc" d="M121.982 178.624l2.952 2.952-2.952-2.952m41.33 0l2.952 2.952-2.953-2.952z"/> - <path fill="#fcc" d="M127.886 181.576l2.952 2.952-2.952-2.952m29.52 0l2.953 2.952-2.953-2.952z"/> - <path fill="#cff" d="M124.934 184.528l2.952 2.952-2.952-2.952z"/> - <path fill="#c33" d="M131.82 186.497l.986 1.968-.985-1.968m23.618 0l.984 1.968-.984-1.968z"/> - <path fill="#cff" d="M160.36 184.528l2.95 2.952-2.95-2.952z"/> - <path fill="#9cc" d="M124.934 187.48l2.952 2.952-2.952-2.952m35.425 0l2.95 2.952-2.95-2.952z"/> - <path fill="#69c" d="M124.934 190.432l2.952 2.952-2.952-2.952z"/> - <path fill="#fcc" d="M130.838 190.432l2.953 2.952-2.952-2.952m23.617 0l2.952 2.952-2.952-2.952z"/> - <path fill="#69c" d="M160.36 190.432l2.95 2.952-2.95-2.952z"/> - <path fill="#cff" d="M127.886 193.384l2.952 2.952-2.952-2.952zm29.521 0l2.952 2.952-2.953-2.952z"/> - <path fill="#9cc" d="M127.886 196.336l2.952 2.953-2.952-2.954m29.52 0l2.953 2.953-2.953-2.954z"/> - <path fill="#69c" d="M127.886 199.29l2.952 2.95-2.952-2.95m29.52 0l2.953 2.95-2.953-2.95z"/> - <path fill="#fcc" d="M133.79 202.24l2.953 2.953-2.952-2.952m17.713 0l2.952 2.953-2.952-2.952z"/> - <path fill="#9cf" d="M130.838 205.193l2.953 2.952-2.952-2.952z"/> - <path fill="#c33" d="M137.726 207.162l.984 1.968-.984-1.968m11.808 0l.984 1.968-.984-1.968z"/> - <path fill="#9cf" d="M154.455 205.193l2.952 2.952-2.952-2.952z"/> - <path fill="#69c" d="M130.838 208.145l2.953 2.952-2.952-2.952m23.617 0l2.952 2.952-2.952-2.952z"/> - <path fill="#fcc" d="M136.743 211.097l2.952 2.952-2.952-2.953m11.808 0l2.953 2.952-2.952-2.953z"/> - <path fill="#9cf" d="M133.79 214.05l2.953 2.95-2.952-2.95zm17.713 0l2.952 2.95-2.952-2.95z"/> - <path fill="#6cc" d="M133.79 217l2.953 2.953L133.79 217m17.713 0l2.952 2.953-2.952-2.952z"/> - <path fill="#fcc" d="M139.695 219.953l2.952 2.952-2.952-2.952m5.904 0l2.95 2.952-2.95-2.952z"/> - <path fill="#ccf" d="M136.743 222.905l2.952 2.952-2.952-2.952m11.808 0l2.953 2.952-2.952-2.952z"/> - <path fill="#6cc" d="M136.743 225.857l2.952 2.953-2.952-2.953z"/> - <path fill="#c66" d="M142.647 225.857l2.952 2.953-2.953-2.953z"/> - <path fill="#6cc" d="M148.55 225.857l2.953 2.953-2.952-2.953z"/> - <path fill="#ccf" d="M139.695 231.762l2.952 2.952-2.952-2.952m5.904 0l2.95 2.952-2.95-2.952z"/> - <path fill="#9cc" d="M139.695 234.714l2.952 2.952-2.952-2.952m5.904 0l2.95 2.952-2.95-2.952m-2.953 5.904l2.952 2.952-2.953-2.952z"/> -</svg> diff --git a/img/flags/4x3/ax.svg b/img/flags/4x3/ax.svg deleted file mode 100644 index fa9417e..0000000 --- a/img/flags/4x3/ax.svg +++ /dev/null @@ -1,18 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" height="480" width="640" viewBox="0 0 640 480"> - <defs> - <clipPath id="a"> - <path fill-opacity=".67" d="M106.25 0h1133.3v850H106.25z"/> - </clipPath> - </defs> - <g clip-path="url(#a)" transform="matrix(.56472 0 0 .56482 -60.002 -.1)"> - <path d="M0 0h1300v850H0z" fill="#0053a5"/> - <g fill="#ffce00"> - <path d="M400 0h250v850H400z"/> - <path d="M0 300h1300v250H0z"/> - </g> - <g fill="#d21034"> - <path d="M475 0h100v850H475z"/> - <path d="M0 375h1300v100H0z"/> - </g> - </g> -</svg> diff --git a/img/flags/4x3/az.svg b/img/flags/4x3/az.svg deleted file mode 100644 index f563b60..0000000 --- a/img/flags/4x3/az.svg +++ /dev/null @@ -1,8 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" height="480" width="640" viewBox="0 0 640 480"> - <path fill="#3f9c35" d="M.1 0h640v480H.1z"/> - <path fill="#ed2939" d="M.1 0h640v320H.1z"/> - <path fill="#00b9e4" d="M.1 0h640v160H.1z"/> - <circle cx="304" cy="240" r="72" fill="#fff"/> - <circle cx="320" cy="240" r="60" fill="#ed2939"/> - <path d="M384 200l7.654 21.522 20.63-9.806-9.806 20.63L424 240l-21.522 7.654 9.806 20.63-20.63-9.806L384 280l-7.654-21.522-20.63 9.806 9.806-20.63L344 240l21.522-7.654-9.806-20.63 20.63 9.806L384 200z" fill="#fff"/> -</svg> diff --git a/img/flags/4x3/ba.svg b/img/flags/4x3/ba.svg deleted file mode 100644 index 9d0ec2d..0000000 --- a/img/flags/4x3/ba.svg +++ /dev/null @@ -1,12 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" height="480" width="640" viewBox="0 0 640 480"> - <defs> - <clipPath id="a"> - <path fill-opacity=".67" d="M-85.333 0h682.67v512h-682.67z"/> - </clipPath> - </defs> - <g clip-path="url(#a)" transform="translate(80) scale(.9375)" fill-rule="evenodd"> - <path fill="#009" d="M-85.333 0h682.67v512h-682.67V0z"/> - <path fill="#FC0" d="M56.489 0l510.978 512.267v-512L56.489 0z"/> - <path fill="#FFF" d="M439.883 481.532l-27.865-20.359-28.639 20.261 10.828-33.243-28.18-20.528 34.914.071 10.855-33.192 10.725 33.233 34.923.099-27.942 20.657 10.381 33.001zm81.294 10.343l-34.923-.099-10.725-33.233-10.855 33.192-34.914-.071 28.18 20.528-10.828 33.243 28.639-20.261 27.865 20.359-10.38-33 27.941-20.658zM365.636 384.666l27.942-20.657-34.923-.099-10.725-33.233-10.855 33.192-34.914-.071 28.18 20.528-10.828 33.243 28.639-20.261 27.865 20.359-10.381-33.001zm-64.355-64.445l27.942-20.657-34.923-.099-10.725-33.233-10.855 33.192-34.914-.071 28.18 20.528-10.828 33.243 28.639-20.261 27.865 20.359-10.381-33.001zm-63.645-63.644l27.941-20.658-34.922-.099-10.725-33.233-10.855 33.192-34.914-.071 28.18 20.528-10.828 33.243 28.639-20.263 27.865 20.36-10.381-32.999zm-64.445-64.267l27.941-20.658-34.922-.099-10.725-33.233-10.855 33.192-34.914-.071 28.18 20.528-10.828 33.243 28.639-20.262 27.865 20.36-10.381-33zm-63.644-63.912l27.941-20.658-34.922-.099L91.84 74.408 80.985 107.6l-34.914-.071 28.18 20.528L63.423 161.3l28.639-20.262 27.865 20.36-10.38-33zm-64-64L73.488 43.74l-34.922-.099L27.84 10.408 16.985 43.6l-34.914-.071 28.18 20.528L-.576 97.3l28.639-20.262 27.865 20.36-10.381-33zm-64-64L9.488-20.259l-34.922-.099-10.726-33.234L-47.015-20.4l-34.914-.071L-53.749.057-64.576 33.3l28.639-20.263 27.865 20.36L-18.453.398z"/> - </g> -</svg> diff --git a/img/flags/4x3/bb.svg b/img/flags/4x3/bb.svg deleted file mode 100644 index 31e7210..0000000 --- a/img/flags/4x3/bb.svg +++ /dev/null @@ -1,6 +0,0 @@ -<svg xmlns:xlink="http://www.w3.org/1999/xlink" xmlns="http://www.w3.org/2000/svg" height="480" width="640" viewBox="0 0 640 480"> - <path fill="#00267f" d="M0 0h640v480H0z"/> - <path fill="#ffc726" d="M213.333 0h213.333v480H213.333z"/> - <path id="a" d="M319.77 135.527c-6.933 18.907-14 38.587-29.12 53.654 4.694-1.546 12.907-2.933 18.187-2.8v79.52l-22.453 3.334c-.8-.08-1.067-1.333-1.067-3.04-2.16-24.693-8-45.44-14.72-66.907-.48-2.933-8.987-14.133-2.427-12.16.8.107 9.574 3.68 8.187 1.974-11.947-12.373-29.413-21.28-46.373-23.92-1.494-.373-2.374.374-1.04 2.107 22.506 34.64 41.333 75.52 41.173 124.027 8.747 0 29.947-5.173 38.72-5.173v56.107h11.067l2.533-156.693z"/> - <use height="100%" width="100%" xlink:href="#a" transform="matrix(-1 0 0 1 639.54 0)"/> -</svg> diff --git a/img/flags/4x3/bd.svg b/img/flags/4x3/bd.svg deleted file mode 100644 index df9a6d8..0000000 --- a/img/flags/4x3/bd.svg +++ /dev/null @@ -1,4 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" height="480" width="640" viewBox="0 0 640 480"> - <path fill="#006a4e" d="M0 0h640v480H0z"/> - <circle cx="280" cy="240" r="160" fill="#f42a41"/> -</svg> diff --git a/img/flags/4x3/be.svg b/img/flags/4x3/be.svg deleted file mode 100644 index 4fd48df..0000000 --- a/img/flags/4x3/be.svg +++ /dev/null @@ -1,7 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" height="480" width="640" viewBox="0 0 640 480"> - <g fill-rule="evenodd" stroke-width="1pt"> - <path d="M0 0h213.335v479.997H0z"/> - <path fill="#ffd90c" d="M213.335 0H426.67v479.997H213.335z"/> - <path fill="#f31830" d="M426.67 0h213.335v479.997H426.67z"/> - </g> -</svg> diff --git a/img/flags/4x3/bf.svg b/img/flags/4x3/bf.svg deleted file mode 100644 index 46061b9..0000000 --- a/img/flags/4x3/bf.svg +++ /dev/null @@ -1,7 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" height="480" width="640" viewBox="0 0 640 480"> - <g fill-rule="evenodd"> - <path fill="#de0000" d="M640.003 479.578H.378V0h639.625z"/> - <path fill="#35a100" d="M639.628 480H.003V240.216h639.625z"/> - <path fill="#fff300" d="M254.612 276.188l-106.066-72.434 131.043.122 40.386-117.322 40.388 117.322 131.043-.087-106.085 72.398 40.59 117.27-105.954-72.573-105.955 72.556"/> - </g> -</svg> diff --git a/img/flags/4x3/bg.svg b/img/flags/4x3/bg.svg deleted file mode 100644 index 3cec9c7..0000000 --- a/img/flags/4x3/bg.svg +++ /dev/null @@ -1,7 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" height="480" width="640" viewBox="0 0 640 480"> - <g fill-rule="evenodd" stroke-width="1pt"> - <path fill="#d62612" d="M0 319.997h640V480H0z"/> - <path fill="#fff" d="M0 0h640v160.003H0z"/> - <path fill="#00966e" d="M0 160.003h640v160.003H0z"/> - </g> -</svg> diff --git a/img/flags/4x3/bh.svg b/img/flags/4x3/bh.svg deleted file mode 100644 index 42dda2c..0000000 --- a/img/flags/4x3/bh.svg +++ /dev/null @@ -1,11 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" height="480" width="640" viewBox="0 0 640 480"> - <defs> - <clipPath id="a"> - <path fill-opacity=".67" d="M0 0h640v480H0z"/> - </clipPath> - </defs> - <g fill-rule="evenodd" stroke-width="1pt" clip-path="url(#a)"> - <path fill="#e10011" d="M-32.5 0h720v480h-720z"/> - <path d="M114.25 479.77L-32.5 480V0l146.06.075 94.242 30.306-93.554 29.542 93.554 30.458-93.554 29.542 93.554 30.458-93.554 29.54 93.554 30.46-93.554 29.54 93.554 30.46-93.554 29.54 93.554 30.46-93.554 29.54 93.554 30.46-93.554 29.54 93.554 30.46-93.554 29.54" fill="#fff"/> - </g> -</svg> diff --git a/img/flags/4x3/bi.svg b/img/flags/4x3/bi.svg deleted file mode 100644 index dc0e0e7..0000000 --- a/img/flags/4x3/bi.svg +++ /dev/null @@ -1,15 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" height="480" width="640" viewBox="0 0 640 480"> - <defs> - <clipPath id="a"> - <path fill-opacity=".67" d="M-90.533 0h682.67v512h-682.67z"/> - </clipPath> - </defs> - <g clip-path="url(#a)" fill-rule="evenodd" transform="translate(84.875) scale(.9375)"> - <path d="M-178 0l428.8 256L-178 512zm857.6 0L250.8 256l428.8 256z" fill="#00cf00"/> - <path d="M-178 0l428.8 256L679.6 0zm0 512l428.8-256 428.8 256z" fill="red"/> - <path d="M679.6 0h-79.902l-777.7 464.3v47.703H-98.1l777.7-464.3z" fill="#fff"/> - <path d="M398.855 256c0 81.767-66.285 148.05-148.052 148.05S102.75 337.768 102.75 256s66.285-148.053 148.053-148.053S398.855 174.232 398.855 256z" fill="#fff"/> - <path d="M-178 0v47.703l777.7 464.3h79.902V464.3L-98.098 0z" fill="#fff"/> - <path stroke="#00de00" stroke-width="3.901" fill="red" d="M279.943 200.164l-19.25.322-9.948 16.442-9.92-16.472-19.22-.41 9.303-16.822-9.245-16.875 19.222-.332 9.977-16.457 9.918 16.496 19.222.41-9.333 16.817zm-64.5 111.62l-19.25.322-9.948 16.442-9.92-16.47-19.22-.41 9.303-16.824-9.245-16.875 19.222-.332 9.977-16.457 9.918 16.496 19.222.41-9.333 16.817zm130.57 0l-19.25.322-9.948 16.442-9.92-16.47-19.22-.41 9.303-16.824-9.245-16.875 19.222-.332 9.977-16.457 9.918 16.496 19.222.41-9.333 16.817z"/> - </g> -</svg> diff --git a/img/flags/4x3/bj.svg b/img/flags/4x3/bj.svg deleted file mode 100644 index a626289..0000000 --- a/img/flags/4x3/bj.svg +++ /dev/null @@ -1,14 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" height="480" width="640" viewBox="0 0 640 480"> - <defs> - <clipPath id="a"> - <path fill="gray" d="M67.64-154h666v666h-666z"/> - </clipPath> - </defs> - <g transform="matrix(.961 0 0 .7207 -65 110.99)" clip-path="url(#a)"> - <g fill-rule="evenodd" stroke-width="1pt"> - <path fill="#319400" d="M0-154h333v666H0z"/> - <path fill="#ffd600" d="M333-154h666v333H333z"/> - <path fill="#de2110" d="M333 179h666v333H333z"/> - </g> - </g> -</svg> diff --git a/img/flags/4x3/bl.svg b/img/flags/4x3/bl.svg deleted file mode 100644 index db651fc..0000000 --- a/img/flags/4x3/bl.svg +++ /dev/null @@ -1,7 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" height="480" width="640" viewBox="0 0 640 480"> - <g fill-rule="evenodd" stroke-width="1pt"> - <path fill="#fff" d="M0 0h640v479.997H0z"/> - <path fill="#00267f" d="M0 0h213.33v479.997H0z"/> - <path fill="#f31830" d="M426.663 0h213.33v479.997h-213.33z"/> - </g> -</svg> diff --git a/img/flags/4x3/bm.svg b/img/flags/4x3/bm.svg deleted file mode 100644 index b7c79f2..0000000 --- a/img/flags/4x3/bm.svg +++ /dev/null @@ -1,99 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" height="480" width="640" viewBox="0 0 640 480"> - <path fill="#cf142b" d="M0 0h640v480H0z"/> - <path fill="#00247d" d="M0 0h320v160H0z"/> - <path d="M0 0v17.888L284.224 160H320v-17.888L35.776 0H0zm320 0v17.888L35.776 160H0v-17.888L284.224 0H320z" fill="#fff"/> - <path d="M133.333 0v160h53.334V0h-53.334zM0 53.333v53.334h320V53.333H0z" fill="#fff"/> - <path d="M0 64v32h320V64H0zM144 0v160h32V0h-32zM0 160l106.667-53.333h23.85L23.85 160H0zM0 0l106.667 53.333h-23.85L0 11.925V0zm189.483 53.333L296.15 0H320L213.333 53.333h-23.85zM320 160l-106.667-53.333h23.85L320 148.075V160z" fill="#cf142b"/> - <path d="M553.83 148.26v135.513c0 36.197-72.36 47.957-72.36 47.957s-72.358-11.76-72.358-47.957V148.26h144.72z" fill="#fff"/> - <path d="M553.83 283.773c0 36.197-72.36 47.957-72.36 47.957s-72.358-11.76-72.358-47.957c0 0 0-2.915 1.472-4.573 0 0-.797 6.02 3.828 10.574 0 0-3.628-6.423-.08-12.736 0 0-1.316 8.122 3.748 12.786 0 0-2.79-6.635.36-14.033 0 0-1.556 12.104 3.947 14.517 0 0 1.514-6.956-.678-11.42 0 0 3.787 1.528 3.587 11.62 0 0 1.196-1.487 1.515-8.765 0 0 .16 8.323 3.03 10.253 0 0 .878-.844-.318-4.624s.518-5.105.797-5.025c0 0-.628 4.18 2.877 7.318 0 0-1.52-6.554.594-7.44 0 0-.438 5.55 3.948 6.797 0 0 .32-1.61-.638-3.418 0 0-.837-2.146-.2-3.787 0 0 1.396 5.033 3.31 5.878 0 0-1.157-2.95-.08-5.878 0 0 .24 4.19 3.987 5.918 0 0-2.47-3.243-1.494-6.81l24.102 1.18 12.48.596 37.442-2.647 6.46-5.55s2.55 3.54-1.476 9.13c0 0 3.99-.725 5.265-6.958 0 0 1.634 3.458-.6 7.28 0 0 4.428-4.424 5.065-9.45 0 0 1.715 4.864-2.472 10.092 0 0 3.748-1.247 5.343-6.796 0 0 1.277 3.343-2.352 8.066 0 0 6.78-3.6 6.58-11.04 0 0 2.83 4.1-.4 9.73 0 0 3.47-3.096 3.79-7.72 0 0 1.913 2.09-.16 7.84 0 0 4.226-3.98 4.864-8.283 0 0 .917 3.98-2.71 9.007 0 0 2.47-.603 4.824-5.51 0 0 .638 1.932-1.515 5.47 0 0 2.314-.402 3.868-4.825 0 0 .28 2.654-.398 5.027 0 0 1.794-1.166 2.193-6.193 0 0 1.002 1.648 1.02 3.698.015 2.052-.002.705-.002.705z" fill="#2f8f22"/> - <path d="M516.57 205.436s-2.516.427-5.745-.557c-3.23-.985-4.535-.585-5.537 0 0 0 1.31-2.596-1.88-4.645 0 0 1.037 2.62-.398 3.843 0 0-.638.6-1.396-.304 0 0-1.116-1.146-2.292-2.03 0 0 2.71-.945 2.213-3.7-.5-2.754-1.974-3.116-2.77-3.457 0 0 .278 1.246 0 2.09 0 0-2.952-1.648 1.055-3.98 4.007-2.333 3.27-3.7 2.552-4.886-.718-1.185-2.253-2.492-3.01-2.955 0 0 .797 1.247.657 2.313-.14 1.065-1.955 1.75-1.596-.12.36-1.87-.02-1.55-.06-3.54 0 0 3.57 1.207 4.965-2.27 0 0 1.374-3.6-3.132-5.39 0 0 1.097 1.468.558 2.574 0 0-.956 1.81-2.093.342s-1.854-1.75-1.734-3.48c0 0 4.086.565 2.97-3.88 0 0-.658 2.957-5.96-1.024 0 0 3.447-3.54 2.112-6.394 0 0-.42-1.307-4.167-.543 0 0 3.25-2.05 1.874-3.8 0 0-.7-1.165-3.73.362 0 0 1.177-2.03-1.794-4.222 0 0-1.993 1.046-3.05 2.01 0 0-2.033-2.573-3.33-3.598 0 0-2.352.905-2.95 3.6 0 0-1.096-1.308-3.588-1.91 0 0-1.196 2.21.36 4.14 0 0-1.158-.04-3.27-.965 0 0-2.413-1.146-2.055.925.36 2.07.538 2.533 1.017 3.498 0 0-5.413-1.257-5.183 1.67.16 2.03.917 3.778 2.592 5.246 0 0-3.032 3.96-5.624.984 0 0-.897.965 1.037 3.498 0 0 1.934 2.13.34 3.48 0 0-2.134 1.707-3.17-1.61 0 0-3.45 3.438.618 6.072 0 0 2.613 1.488 5.284-.805 0 0-.817 6.594-3.37 5.327 0 0-1.535-1.125 1.216-2.472 0 0-3.967-.503-4.605 3.337 0 0-.49 3.055 2.97 4.162 0 0 2.672.965-.1 3.036 0 0-1.954 1.488-.677 3.7 0 0 1.535 2.432-2.353 2.673 0 0-2.113-.02-2.87-.3 0 0-.854 1.584-.258 3.395 0 0-1.936-1.442-6.342.154-4.406 1.597-4.067.47-4.426.954-.36.482-1.217 2.11-1.217 2.11s2.313 2.815 2.352 2.755c.04-.06-.438 3.217-.438 3.217l1.137.543 9.07-4.04 9.212-4.8 7.405.453 4.698 1.118 6.168.45 4.418-2.356h6.4l7.038 3.507 8.034 4.794 4.187.734 3.225-.172v-6.506l-1.57-2.354z" fill="#d40000" stroke="#000" stroke-width=".532" stroke-linejoin="round"/> - <path d="M443.503 213.043s3.51 1.79 4.974-.382c0 0 1.915-3.648-2.288-4.914 0 0 2.287-2.745-.165-5.278 0 0-1.286-1.357-3.53-.36 0 0-.926-1.932-3.11-1.872 0 0-1.913-.03-2.57 2.08 0 0-2.633-1.084-4.098.484 0 0-2.423 2.714.957 4.855l2.432.222 2.392-1.106 2.67.765c.003 0-.685 2.704 2.335 5.508z" fill="#d40000" stroke="#000" stroke-width=".532" stroke-linejoin="round"/> - <path d="M521.83 206.626c4.227-.398 5.72 3.17 5.72 3.17 2.215 5.198-2.49 7.973-2.49 7.973.36 1.165.4 2.692.4 2.692 6.617.805 5.46 8.244 5.46 8.244l-2.192-1.81c-3.828-1.488-7.775 1.77-10.606 7.238-2.83 5.47-1.475 8.042-.997 14.516.48 6.473 11.005 10.334 11.005 10.334s-4.984 12.827-8.214 21.07c-3.23 8.243-9.968 4.825-11.922 3.09-1.954-1.738-2.442-.773-3.43 0-.986.77 4.427 4.992-5.422 8.973-9.85 3.98-11.563 7.037-13.198 8.042-1.634 1.004-8.453.32-9.13-.524-.678-.844-.28-.844-2.83-2.413-2.553-1.568-6.86-2.935-11.565-5.227-4.706-2.292-4.586-5.228-4.546-5.83.04-.603 1.634-5.51-3.876-1.61-5.51 3.9-10.2-1.856-10.2-1.856-1.076-1.415-5.662-13.704-5.662-13.704-1.236-4.584-3.668-9.932-3.668-9.932.12-.04-.24.563 3.828-1.77 4.067-2.33 5.888-6.21 7.296-10.05 1.408-3.84.04-10.416-.478-11.743-.52-1.326-3.55-7.41-7.302-8.684-3.752-1.275-6.268 1.89-6.268 1.89s-1.158-7.44 5.46-8.244c0 0 .04-1.527.4-2.693 0 0-4.705-2.776-2.49-7.975 0 0 1.493-3.567 5.72-3.17l-1.022 1.935s-1.065 10.616 14.474 3.5c15.538-7.12 15.072-8.446 23.924-3.982l6.46-.12s9.33-4.317 12.32-2.46c2.99 1.857 13.756 7.888 13.756 7.888s10.407 3.903 12.44-3.296l-1.156-3.464z" fill="#64b4d1" stroke="#000" stroke-width=".399"/> - <path stroke-miterlimit="10" d="M475.078 252.65s-.54-3.258-1.107-5.368c0 0-1.153-3.31.815-5.636l2.44-2.807s1.515-2.04 3.393-2.318c0 0 1.877-.056 2.056-.438.18-.382 2.233-3.76 7.117 0 0 0 1.557-2.493 3.95-2.915 0 0 2.583-.785 3.833 1.145 0 0 2.904-2.202 5.397 1.342 0 0 3.45-1.94 5.96 1.918 0 0 3.41-1.663 5.503 1.88 2.094 3.546 1.675 4.993 1.675 4.993l1.554 5.63 5.504 6.795-12.8 4.825h-5.74l-11.484 3.076-20.395 1.568-5.682-6.695 8.013-6.996z" fill="#fff" stroke="#00247d" stroke-width=".532"/> - <path d="M457.84 286.547s-3.05.182-4.606.966c-1.555.784-2.75 1.628-4.545 2.774 0 0-.838 1.116-4.367.437 0 0-6.1-1.462-6.1 3.303 0 0-7.298.602-4.307 6.996 0 0 2.033 5.006 6.22 1.448 0 0-2.692 3.86 2.512 5.37 0 0 3.708.904 4.784-2.896 0 0 .6-1.508-.837-3.378 0 0 1.795-.362 3.05-2.292 0 0-3.827 4.838.36 6.58 0 0 5.26 1.32 5.56-4.168 0 0-.428-2.533 1.61-3.438 0 0 4.193-.965 6.107-5.64 0 0-6.028-3.21-5.443-6.06zm-12.32-48.107s-4.704-2.167-6.937 0c0 0-3.11-1.926-6.38 0 0 0-3.11 2.033-5.263 4.27 0 0-1.515 1.3-.957 5.388 0 0 .798 2.883.32 4.33 0 0-1.038-.204-3.11 2.253 0 0-2.633 3.048-4.945.358 0 0 .717 3.744 5.063 3.14 0 0-2.112 1.65-.278 5.912 0 0 1.356 3.016-.797 6.795 0 0 3.788-1.527 3.628-5.99 0 0-.32-3.016.797-5.148 0 0-1.116 1.938 1.476 6.072 0 0 1.993 2.975.36 6.07 0 0 3.747-1.366 3.388-5.91-.358-4.544-2.632-2.654-1.156-6.836 0 0 .36 2.142 1.475 3.222 1.116 1.08 2.552 2.89 1.954 5.906 0 0 2.233-2.775 1.714-5.63-.517-2.855-1.075-3.718-1.075-3.718l7.057-4.002 3.51-6.353.16-10.13z" fill="#d40000" stroke="#000" stroke-width=".532" stroke-linejoin="round"/> - <path stroke-miterlimit="10" d="M434.796 256.37s-2.91-.2-3.39-2.454m-5.104-1.486s1.014-.04 1.932.884c0 0 .7 1.045 1.697.924" fill="none" stroke="#000" stroke-width=".532"/> - <path d="M439.1 247.805s-1.513 0-2.35-.724c0 0-.88-.602-1.397.363 0 0-.797 1.367.678 1.97 0 0 1.835.925-1.076 2.775 0 0 3.47-1.247 2.074-2.935 0 0-1.515-1.086-.957-1.488 0 0 .16-.322.76.08.597.402 1.793.242 2.27-.04z"/> - <path fill="#784421" stroke="#000" stroke-width=".399" d="M484.877 256.09l1.784-.603-11.658-40.264-.427.114z"/> - <path d="M446.057 300.66s-2.75-1.547-5.024.263c0 0 .232-1.006 1.97-1.448 0 0 .94-2.654 3.572-2.413 0 0-1.076 1.286-2.512 2.373 0 0 1.516.156 1.994 1.224z"/> - <path stroke-miterlimit="2.613" d="M436.368 307.054s-4.366-2.744-2.004-7.358c0 0 .688-1.327 2.004-1.056 0 0 2.72.844.598 4.615 0 0-1.077 2.443-.598 3.8zm8.852 4.343s-6.22-2.834-4.307-7.66c0 0 .592-1.63 1.97-1.508 0 0 2.4.12 1.92 3.317 0 0-.72 3.136.417 5.85z" fill="#64b4d1" stroke="#00247d" stroke-width=".399"/> - <path d="M443.904 293.39s-1.87 1.38-2.63 2.305c0 0-.76-.945-1.756-1.518 0 0 1.148-.15 1.757.365 0 0 .954-.924 2.63-1.152z"/> - <path stroke-miterlimit="2.613" d="M449.436 310.19s4.874-1.235 3.978-6.272c0 0-.48-2.2-2.542-1.9 0 0-2.487.635-.868 3.836 0 0 .957 2.286-.568 4.337z" fill="#64b4d1" stroke="#00247d" stroke-width=".399"/> - <path stroke-miterlimit="2.613" d="M471.46 203.645s3.14.963 4.845 1.658c0 0 4.545 2.05 10.317 0 0 0 3.903-1.546 4.424-1.658l-2.99 4.553-.15 2.352 1.87 2.744s-1.12.453-4.47-1.598c0 0-3.71-2.865-8.135 0 0 0-2.42 1.64-4.454 1.598l2.87-3.205-1.106-2.888-3.02-3.557z" fill="#f5ce00" stroke="#000" stroke-width=".532"/> - <path d="M451.32 304.174s.18-.24-.03-.347c0 0-.21-.09-.36.204 0 0-.507.807-.077 1.912 0 0 .407.765.21 1.565 0 0-.028.226.152.256 0 0 .172-.06.206-.225 0 0 .244-.78-.175-1.544 0 0-.508-1.186.075-1.82z" fill="#fff"/> - <path d="M518.84 213.043s-3.51 1.79-4.974-.382c0 0-1.914-3.648 2.288-4.914 0 0-2.288-2.745.164-5.278 0 0 1.286-1.357 3.53-.36 0 0 .926-1.932 3.11-1.872 0 0 1.913-.03 2.57 2.08 0 0 2.633-1.084 4.098.484 0 0 2.422 2.714-.957 4.855l-2.433.222-2.393-1.106-2.67.765c-.002 0 .686 2.704-2.334 5.508z" fill="#d40000" stroke="#000" stroke-width=".532" stroke-linejoin="round"/> - <path stroke-miterlimit="2.613" d="M491.048 210.21s-.09.723-.807.803c0 0-.748.242-1.184-.69 0 0-.05-.212-.062-.315-.05-.436-.2-1.69 1.156-2.714 0 0 2.214-1.81 6.44.382 0 0 3.35 1.608 5.662 2.975 0 0 5.98 3.218 6.7 3.46 0 0 2.63 1.326 6.658 1.487 0 0 5.502.402 7.834-3.458 0 0 1.775-2.936 0-4.806 0 0-.717-.844-1.897-.69-.495.067-1.043.295-1.57.91 0 0-.858 1.248.138 2.173 0 0 1.296.794 1.754-.884 0 0 .02-.12.06.03.025.097.318 1.377-.37 2.462 0 0-3.32 5.024-12.45-.182l-12.042-6.754s-6.04-3.097-9.65 1.748c0 0-2.91 4.02.838 6.655 0 0 2.79 1.668 4.545-.985 0 0 1.457-2.614-.836-3.76 0 0-2.013-.944-2.81 1.066-.798 2.01 1.554 2.533 1.773 1.106 0 0 .06-.343.12-.02z" fill="#f5ce00" stroke="#000" stroke-width=".532"/> - <path stroke-miterlimit="2.613" d="M443.315 230.937v-7.54c0-.592.004-1.085.9-1.81.898-.723 1.855-1.87 3.23 1.39 0 0 2.692-2.836 3.59-3.258 0 0 1.554-1.328 2.63.602 0 0 1.436-2.172 2.572-2.715 0 0 2.692-1.75 2.81 3.5l2.095-1.932s1.614-1.326 3.41.483c0 0 3.05 2.955 3.468 3.8 0 0 .673.914.725 2.357 0 0-.008 1.623.83 2.528 0 0 .956.844 1.883 1.025 0 0 2.183.06 2.96 2.11 0 0 .36-.355 1.436 9.473v17.912l-12.082 14.415-19.378-5.55-7.716-3.196-1.734-5.668 7.476-4.825 4.068-10.978-1.316-7.72-1.857-4.403z" fill="#e4cb5e" stroke="#000" stroke-width=".399"/> - <path d="M496.71 240.446l.917-1.367 2.193-1.69s3.35 8.79 3.51 10.708v2.728s5.023 1.282 5.9 9.002l-4.146 7.64-6.5-3.62-1.873-1.366v-22.036z" fill="#784421" stroke="#000" stroke-width=".399"/> - <path d="M435.156 300.797s.24-.317.075-.452c0 0-.104-.15-.387.21 0 0-1.32 1.477-.27 3.748 0 0 .12.324.33.218 0 0 .18-.09.014-.36 0 0-.94-1.87.24-3.363z" fill="#fff"/> - <path stroke-miterlimit="10" d="M454.75 299.314s.198-.683-.28-1.407c0 0-.318-.523-.2-1.207" fill="none" stroke="#000" stroke-width=".532"/> - <path stroke-miterlimit="10" d="M459.05 221.106s.017 1.885.556 3.273c.538 1.386 2.356 3.785 2.475 5.082" fill="none" stroke="#000" stroke-width=".399"/> - <path d="M504.625 286.547s3.05.182 4.605.966c1.555.784 2.75 1.628 4.545 2.774 0 0 .837 1.116 4.366.437 0 0 6.102-1.462 6.102 3.303 0 0 7.297.602 4.306 6.996 0 0-2.033 5.006-6.22 1.448 0 0 2.692 3.86-2.512 5.37 0 0-3.708.904-4.784-2.896 0 0-.6-1.508.837-3.378 0 0-1.796-.362-3.05-2.292 0 0 3.826 4.838-.36 6.58 0 0-5.262 1.32-5.562-4.168 0 0 .43-2.533-1.61-3.438 0 0-4.192-.965-6.106-5.64 0 0 6.028-3.21 5.443-6.06z" fill="#d40000" stroke="#000" stroke-width=".532" stroke-linejoin="round"/> - <path stroke-miterlimit="10" fill="none" stroke="#000" stroke-width=".399" d="M456.643 229.46l4.978 40.18m-3.828-40.268l5.583 37.453m-4.536-37.627l6.43 37.144"/> - <path fill="#784421" stroke="#000" stroke-width=".399" d="M469.01 263.145l1.782-.603-11.66-40.265-.427.115z"/> - <path stroke-miterlimit="10" fill="none" stroke="#000" stroke-width=".399" d="M462.407 227.723l11.775 29.752m-12.562-29.271l11.365 31.08"/> - <path d="M442.967 308.542s-1.366-1.31-1.176-3.66c0 0 .08-.5-.17-.57 0 0-.268-.112-.307.47 0 0-.38 2.454 1.276 3.86 0 0 .11.142.294.1 0 0 .196-.042.083-.2z" fill="#fff"/> - <path stroke-miterlimit="10" fill="none" stroke="#000" stroke-width=".399" d="M462.938 227.32l12.14 27.14m-15.46-25.454l7.446 36.55"/> - <path stroke-miterlimit="2.613" d="M520.53 256.09c-5.32-3.018-6.485-9.713-6.485-9.713-1.286-6.665 1.316-11.942 1.316-11.942 3.44-7.268 9.333-8.62 9.333-8.62s-5.773 4.005-7.388 9.404c0 0-1.256 4.552-.538 9.046.717 4.493.448 3.347 1.555 6.815l2.207 5.01z" fill="#f5ce00" stroke="#000" stroke-width=".532"/> - <path d="M497.627 239.08l-22.347 7.055-1.22 9.955c-5.302 7.682-16.078 9.045-16.078 9.045l8.384 8.927 16.11 3.378 8.452-6.514 7.656-7.077c-.798-3.78-.36-9.39-.36-9.39 0-.945.36-3.157.36-3.157s-1.316-9.087-.957-12.224z" fill="#784421" stroke="#000" stroke-width=".243"/> - <path stroke-miterlimit="10" d="M474.368 253.59s14.718-4.597 23.494-8.287m-30.559 16.677s18.362-3.32 31.28-10.677l4.746-3.205" fill="none" stroke="#000" stroke-width=".399"/> - <path stroke-miterlimit="10" d="M503.33 250.826l-5.105 3.634s-20.535 9.47-36.17 9.722m36.165-2.992s-15.785 8.127-24.836 8.248" fill="none" stroke="#000" stroke-width=".399"/> - <path d="M517.045 238.44s4.705-2.167 6.938 0c0 0 3.11-1.926 6.38 0 0 0 3.11 2.033 5.263 4.27 0 0 1.515 1.3.957 5.388 0 0-.797 2.883-.32 4.33 0 0 1.038-.204 3.112 2.253 0 0 2.63 3.048 4.944.358 0 0-.72 3.744-5.065 3.14 0 0 2.113 1.65.28 5.912 0 0-1.356 3.016.797 6.795 0 0-3.79-1.527-3.63-5.99 0 0 .32-3.016-.796-5.148 0 0 1.116 1.938-1.475 6.072 0 0-1.993 2.975-.358 6.07 0 0-3.748-1.366-3.39-5.91.36-4.544 2.632-2.654 1.157-6.836 0 0-.36 2.14-1.476 3.222-1.117 1.08-2.552 2.89-1.954 5.906 0 0-2.233-2.775-1.715-5.63s1.077-3.718 1.077-3.718l-7.058-4.002-3.51-6.353-.16-10.13z" fill="#d40000" stroke="#000" stroke-width=".532" stroke-linejoin="round"/> - <path stroke-miterlimit="10" d="M437.1 263.87s.657-3.118 3.648-1.89c0 0 1.017-5.108 6.46-5.29 5.442-.18 5.74 5.31 5.74 5.67 0 0 1.6-2.355 4.27-2.082 0 0 4.602-.27 2.888 7.118l.87.927s3.516-8.254 10.753-6.083c0 0 7.057 2.15 2.452 8.987 0 0 3.483 4.524 6.436 4.1 2.954-.42 5.586-1.325 8.516-6.513 2.93-5.187 9.75-5.97 11.484-5.67 1.734.302 3.104 1.428 3.387 2.655 0 0 3.61-12.05 16.59-10.157l5.202 2.616 1.974.904-2.94 8.304-7.17 16.2-5.44 1.674-5.682-3.257-1.974 1.058-.16 4.852-7.495 5.395-5.204 2.144-5.742 3.92-1.336 3.506s-3.17-1.336-6.75 0l-1.184-2.9-3.35-3.198-13.01-6.138-2.35-7.58-2.376-1.06-2.66 3.046-3.886.453-5.802-3.92-6.16-17.794z" fill="#fff" stroke="#00247d" stroke-width=".532"/> - <path stroke-miterlimit="2.613" d="M493.76 204.88s-4.966-.22-4.787 4.927" fill="none" stroke="#000" stroke-width=".532"/> - <path stroke-miterlimit="2.613" d="M526.426 259.556c-8.643-2.654-11.005-11.942-11.005-11.942-1.764-6.967 1.077-13.058 1.077-13.058 3.948-9.27 10.627-9.27 10.627-9.27 3.35-.09 3.75 2.776 3.75 2.776.317 2.03-1.108 2.764-1.108 2.764-2.293 1.247-3.738-.442-3.738-.442-.957-1.247-.22-2.352-.22-2.352.588-.825 1.715-.463 1.715-.463.892.275.797 1.39.797 1.39.005.03.025.03.025.03.04-.01.025-.024.025-.024s.2-1.367-1.137-1.508c0 0-2.6-.563-5.65 3.237 0 0-4.018 5.127-4.01 11.762 0 0-.507 12.455 12.472 15.682 0 0-1.406 2.02-3.887 9.317 0 0-2.81 9.38-5.495 14.45 0 0-3.567 7.233-11.522 4.278 0 0-4.735-2.08-4.724-5.52 0 0-.33-3.136 2.512-3.377 0 0 2.782-.21 2.75 2.17 0 0 .076 2.58-2.96 1.992 0 0-1.06-.226-.866-1.267 0 0 .17-.935 1.45-.528 0 0 .04.005.045-.015 0 0 .014-.022-.03-.035 0 0-.496-.222-1.02-.04 0 0-.468.157-.506.89 0 0-.03.587.6.92 0 0 .763.27 1.36.21 0 0 .805 1.624 2.625 2.174 2.534.765 4.62.027 5.898-.992 1.39-1.108 2.288-3.046 2.557-3.52.27-.475 2.602-5.7 4.356-11.32 0 0 1.535-4.845 2.76-7.378l.48-.994z" fill="#f5ce00" stroke="#000" stroke-width=".532"/> - <path stroke-miterlimit="2.613" d="M502.038 283.17s1.614-.22 1.614 1.22c0 0-.098 2.104-2.66 1.644 0 0-2.528-.553-1.63-3.378 0 0 .597-1.99 2.99-1.703 0 0 2.317.105 3.334 3.272 0 0 .777 2.67-.553 4.96-1.486 2.558-5.244 4.238-7.057 4.982 0 0-7.268 2.855-9.435 4.488 0 0-3.324 2.468-1.853 4.765 0 0 .568.875 1.42.875 0 0 .973.045 1.137-.95 0 0 .005-.02-.01-.045 0 0-.015 0-.02.025 0 0-.07.608-.598.834 0 0-.708.356-1.45-.272 0 0-.788-.754-.13-1.925 0 0 .862-1.443 2.87-.59 0 0 1.77.876 1.043 2.756 0 0-.65 1.73-2.782 1.724 0 0-1.607-.053-2.634-1.13-1.603-1.68-1.69-4.954-.277-6.647 0 0 1.336-1.8 4.017-2.895 1.553-.635 4.486-1.91 7.536-3.106 2.144-.84 4.108-1.848 5.383-3.358 0 0 1.137-1.266 1.466-3.438 0 0 .313-1.628-.68-1.985 0 0-.503-.226-1.056-.15 0 0-.014 0-.018.01 0 0-.024.024.032.015z" fill="#f5ce00" stroke="#000" stroke-width=".532"/> - <path stroke-miterlimit="2.613" d="M502.173 283.16s1.784-.323 2.9 1.8c0 0 .658 1.366.764 2.157m.583-7.584s-1.788.31-.868 2.838c.867 2.384 2.478 3.165 2.956 3.497" fill="none" stroke="#000" stroke-width=".532"/> - <path stroke-miterlimit="2.613" d="M471.458 210.208s.088.724.806.805c0 0 .75.24 1.186-.69 0 0 .05-.213.062-.316.05-.436.2-1.69-1.157-2.714 0 0-2.213-1.81-6.44.382 0 0-3.35 1.608-5.662 2.976 0 0-5.98 3.217-6.698 3.458 0 0-2.632 1.327-6.66 1.488 0 0-5.502.402-7.834-3.457 0 0-1.773-2.937 0-4.807 0 0 .72-.844 1.9-.688.494.065 1.04.293 1.57.91 0 0 .857 1.247-.14 2.17 0 0-1.296.796-1.754-.883 0 0-.02-.12-.06.03-.026.097-.32 1.377.37 2.463 0 0 3.318 5.023 12.45-.183l12.04-6.754s6.042-3.096 9.65 1.75c0 0 2.91 4.02-.837 6.654 0 0-2.792 1.67-4.546-.985 0 0-1.456-2.614.837-3.76 0 0 2.014-.944 2.812 1.067.797 2.01-1.556 2.533-1.774 1.105 0 0-.06-.343-.12-.022zm-29.482 45.882c5.32-3.018 6.485-9.713 6.485-9.713 1.287-6.665-1.315-11.942-1.315-11.942-3.44-7.268-9.333-8.62-9.333-8.62s5.774 4.005 7.39 9.404c0 0 1.255 4.552.537 9.046-.72 4.493-.45 3.347-1.556 6.815l-2.208 5.01z" fill="#f5ce00" stroke="#000" stroke-width=".532"/> - <path stroke-miterlimit="2.613" d="M468.746 204.88s4.966-.22 4.786 4.927" fill="none" stroke="#000" stroke-width=".532"/> - <path stroke-miterlimit="2.613" d="M436.08 259.556c8.643-2.654 11.005-11.942 11.005-11.942 1.764-6.967-1.077-13.058-1.077-13.058-3.947-9.27-10.626-9.27-10.626-9.27-3.35-.09-3.75 2.776-3.75 2.776-.317 2.03 1.108 2.764 1.108 2.764 2.292 1.247 3.738-.442 3.738-.442.957-1.247.22-2.352.22-2.352-.59-.825-1.715-.463-1.715-.463-.892.275-.797 1.39-.797 1.39-.005.03-.025.03-.025.03-.04-.01-.024-.024-.024-.024s-.2-1.367 1.136-1.508c0 0 2.602-.563 5.652 3.237 0 0 4.017 5.127 4.007 11.762 0 0 .51 12.455-12.47 15.682 0 0 1.406 2.02 3.888 9.317 0 0 2.81 9.38 5.494 14.45 0 0 3.568 7.233 11.522 4.278 0 0 4.737-2.08 4.726-5.52 0 0 .328-3.136-2.512-3.377 0 0-2.782-.21-2.752 2.17 0 0-.075 2.58 2.96 1.992 0 0 1.063-.226.868-1.267 0 0-.17-.935-1.45-.528 0 0-.04.005-.045-.015 0 0-.016-.022.03-.035 0 0 .494-.222 1.018-.04 0 0 .47.157.506.89 0 0 .03.587-.598.92 0 0-.763.27-1.36.21 0 0-.805 1.624-2.625 2.174-2.533.765-4.62.027-5.898-.992-1.39-1.108-2.288-3.046-2.557-3.52-.268-.475-2.6-5.7-4.355-11.32 0 0-1.536-4.845-2.76-7.378l-.48-.994z" fill="#f5ce00" stroke="#000" stroke-width=".532"/> - <path stroke-miterlimit="2.613" d="M460.468 283.17s-1.615-.22-1.615 1.22c0 0 .1 2.104 2.662 1.644 0 0 2.527-.553 1.63-3.378 0 0-.598-1.99-2.99-1.703 0 0-2.318.105-3.335 3.272 0 0-.778 2.67.553 4.96 1.485 2.558 5.243 4.238 7.057 4.982 0 0 7.267 2.855 9.435 4.488 0 0 3.324 2.468 1.854 4.765 0 0-.57.875-1.422.875 0 0-.972.045-1.136-.95 0 0-.005-.02.01-.045 0 0 .015 0 .02.025 0 0 .07.608.598.834 0 0 .708.356 1.45-.272 0 0 .787-.754.13-1.925 0 0-.863-1.443-2.872-.59 0 0-1.77.876-1.04 2.756 0 0 .646 1.73 2.78 1.724 0 0 1.606-.053 2.634-1.13 1.603-1.68 1.69-4.954.277-6.647 0 0-1.337-1.8-4.02-2.895-1.552-.635-4.484-1.91-7.535-3.106-2.144-.84-4.107-1.848-5.383-3.358 0 0-1.136-1.266-1.465-3.438 0 0-.314-1.628.678-1.985 0 0 .503-.226 1.056-.15 0 0 .016 0 .02.01 0 0 .024.024-.032.015z" fill="#f5ce00" stroke="#000" stroke-width=".532"/> - <path stroke-miterlimit="2.613" d="M460.333 283.16s-1.785-.323-2.9 1.8c0 0-.66 1.366-.765 2.157m-.581-7.585s1.787.31.867 2.838c-.868 2.383-2.478 3.164-2.957 3.496m22.935-76.35s4.32-2.705 8.733.29" fill="none" stroke="#000" stroke-width=".532"/> - <path stroke-miterlimit="2.613" d="M452.35 235.943s.6-2.412-2.152-6.635c0 0-1.795-3.86-2.752-6.332m6.221-2.654s1.557 3.794 2.093 5.493c0 0 1.932 4.76 2.342 5.725" fill="none" stroke="#000" stroke-width=".399"/> - <path stroke-miterlimit="10" d="M454.444 238.597s1.624 1.75 1.44 4.704m-6.824-6.574s1.796.865 1.677 5.63c0 0-.18 3.478 2.51 5.227m-4.429 1.226s5.616-.613 5.925 2.845c0 0 .12 3.317 2.033 3.68 0 0 2.867.27 3.435 2.925m-9.625-5.61s.987 1.478 1.944 2.11m5.263-5.76s1.427 2.163 1.696 3.43m4.485-29.455s1.316 1.79 2.592 2.634m2.671 7.961s2.79 1.368 2.313 8.405c0 0-.36 4.126.798 6.38" fill="none" stroke="#000" stroke-width=".399"/> - <path d="M456.09 228.796l.178.663s5.004.21 7.706-3.197l-.29-.654s-4.366-.222-7.595 3.186z" fill="#784421" stroke="#000" stroke-width=".399"/> - <path stroke-miterlimit="10" d="M474.116 255.643s17.307-5.16 23.977-8.168" fill="none" stroke="#000" stroke-width=".399"/> - <path fill="#784421" stroke="#000" stroke-width=".243" d="M472.26 223.724l-.202-.568 8.56-3.257.202.572z"/> - <path stroke-miterlimit="10" fill="none" stroke="#000" stroke-width=".399" d="M472.985 223.448l5.682 27.855m-4.697-28.229l6.51 27.727m-5.402-28.148l7.118 27.525m-4.326-28.585l9.702 20.66m-8.419-21.147l10.347 20.54m-9.397-20.901l11.192 20.334m-13.012 10.445l4.392-1.447m-7.717-1.309s12.873-3.76 22.616-7.69m-22.789 9.1s16.315-4.317 22.788-7.467M479.764 263.447l.854 2.613 2.336-.747-.798-2.59m4.197-1.153l.855 2.612 2.336-.747-.798-2.59m-13.466-14.71l-.202-3.536 21.392-6.496 1.157 2.975M484.15 239.845l1.166 3.122m6.314-5.393l1.36 2.97m.412-3.508l1.274 2.81m.42-3.326l1.34 2.936"/> - <path stroke-miterlimit="10" fill="none" stroke="#000" stroke-width=".399" d="M496.47 236.104l2.353-1.327.997 2.613M497.627 235.452l1.198 2.705"/> - <path stroke-miterlimit="10" d="M444.575 276.173s-4.187-4.24 0-8.393c0 0-4.545-2.223-3.827-5.8m11.304 17.552s-4.336.59-3.05-7.852c0 0-1.795 3.347-2.413 5.067-.464 1.288-.158 3.367 1.678 4.49.733.45 4.62 1.462 5.877-1.113m-6.937-13.511s-1.764 1.63-.508 4.615m2.331-4.223s.21 2.895 1.646 4.524m-.406-5.669s-.012 3.407 2.44 5.518m-1.22-6.695s.024 3.83 2.865 6.183m11.245-.574s1.434-3.137 4.454-2.985c0 0-1.465.663-1.435 2.13 0 0-.18 2.423 2.42 2.664 0 0 2.095.273 3.14-.873" fill="none" stroke="#00247d" stroke-width=".532"/> - <path stroke-miterlimit="10" d="M472.746 284.617s-7.446-3.498-6.67-8.534c0 0 .3-3.076 3.308-4.524m-1.572 3.196s-.658 2.172.808 3.68m.866-5.157s-.897 2.382.598 4.162m1.196-5.32s-1.076 1.972.21 3.75m-6.998 9.26s4.067 3.528 7.237 3.558m-8.523-2.443s3.8 3.076 6.177 3.53m-7.613-2.659s4.7 4.135 7.613 4.437m11.497 3.8s-4.618 2.49-1.038 5.12m-1.892-7.863s5.233-2.745 7.505-3.77m-5.621 5.187s7.566-4.615 9.808-5.61m-5.922 5.911s6.46-4.312 9.93-6.182m-5.653 6.031s4.456-3.498 8.763-6.03m1.525-4.374s-2.183-3.197-9.36 0c0 0 2.63-2.388 7.835-4.24m7.245-13.733s.588 2.592-.04 4.16" fill="none" stroke="#00247d" stroke-width=".532"/> - <path stroke-miterlimit="10" d="M492.364 278.375s1.495-2.202 5.293-3.287c0 0 1.024 2.563 3.978 1.99 0 0 4.455-.875 3.11-5.76 0 0-.927-3.65-6.016-4.01m15.137-6.118s5.173.93 5.084 5.152c0 0 .418 6.333-6.25 7.57m5.515-10.122s1.42-3.088 4.59-4.355m-3.851-1.808s1.413 2.265 2.38 2.595m-3.119-.786s1.332 1.627 1.78 1.9m-2.212-.332s.7 1.036 1.323 1.362m-27.939-25.846s1.007-1.633 3.51-.94m10.217 13.188s1.585-6.612 7.118-4.17m-2.244-.541s.57-3.05-.807-4.6M506 243.844s.705 1.26.102 2.29" fill="none" stroke="#00247d" stroke-width=".532"/> - <path stroke-miterlimit="2.613" d="M517.245 311.397s6.22-2.835 4.306-7.66c0 0-.59-1.63-1.97-1.508 0 0-2.398.12-1.918 3.316 0 0 .72 3.137-.417 5.85z" fill="#64b4d1" stroke="#00247d" stroke-width=".399"/> - <path d="M519.498 308.542s1.367-1.31 1.176-3.66c0 0-.08-.5.17-.57 0 0 .268-.113.308.47 0 0 .38 2.453-1.276 3.86 0 0-.113.14-.296.1 0 0-.196-.042-.082-.2z" fill="#fff"/> - <path stroke-miterlimit="2.613" d="M526.097 307.054s4.366-2.744 2.003-7.358c0 0-.688-1.327-2.003-1.056 0 0-2.722.844-.6 4.615 0 0 1.078 2.443.6 3.8z" fill="#64b4d1" stroke="#00247d" stroke-width=".399"/> - <path d="M527.188 300.796s-.24-.316-.075-.452c0 0 .105-.15.388.21 0 0 1.322 1.478.27 3.748 0 0-.12.324-.328.22 0 0-.18-.092-.015-.363 0 0 .942-1.87-.24-3.364z" fill="#fff"/> - <path stroke-miterlimit="2.613" d="M513.028 310.19s-4.874-1.235-3.978-6.272c0 0 .48-2.2 2.542-1.9 0 0 2.487.635.868 3.836 0 0-.957 2.286.568 4.337z" fill="#64b4d1" stroke="#00247d" stroke-width=".399"/> - <path d="M511.144 304.174s-.18-.24.03-.347c0 0 .21-.09.36.204 0 0 .507.807.077 1.912 0 0-.406.765-.208 1.565 0 0 .027.226-.153.256 0 0-.173-.06-.207-.225 0 0-.243-.78.176-1.544 0 0 .507-1.186-.076-1.82z" fill="#fff"/> - <path d="M516.527 300.66s2.75-1.547 5.024.263c0 0-.232-1.006-1.97-1.448 0 0-.94-2.654-3.572-2.413 0 0 1.077 1.286 2.512 2.373 0 0-1.515.156-1.993 1.224zm2.033-7.27s1.87 1.38 2.63 2.305c0 0 .76-.945 1.757-1.518 0 0-1.148-.15-1.757.365 0 0-.955-.924-2.63-1.152z"/> - <path stroke-miterlimit="10" d="M507.715 299.314s-.2-.683.28-1.407c0 0 .318-.523.2-1.207m19.575-40.33s2.912-.2 3.39-2.454m5.104-1.486s-1.014-.04-1.93.884c0 0-.7 1.045-1.698.924" fill="none" stroke="#000" stroke-width=".532"/> - <path d="M523.465 247.805s1.515 0 2.353-.724c0 0 .877-.602 1.395.363 0 0 .798 1.367-.677 1.97 0 0-1.835.925 1.076 2.775 0 0-3.47-1.247-2.073-2.935 0 0 1.513-1.086.955-1.488 0 0-.16-.322-.757.08-.6.402-1.795.242-2.273-.04z"/> - <path stroke-miterlimit="2.613" d="M525.526 211.188s.684-.93.404-3.725 2.147-3.116 3.08-2.313c0 0 .964.836.077 2.608-.512 1.022-1.33 2.347-3.56 3.43z" fill="#64b4d1" stroke="#00247d" stroke-width=".399"/> - <path d="M526.438 209.102s.91-.978.475-3.1c0 0-.003-.21.117-.224 0 0 .22-.056.258.153 0 0 .49 2.264-.538 3.494 0 0-.187.18-.313 0 0 0-.137-.13 0-.322z" fill="#fff"/> - <path stroke-miterlimit="2.613" d="M524.75 210.172s-.07-1.127-2.018-3.04c-1.947-1.915-.346-3.68.846-3.664 0 0 1.235.02 1.68 1.9.257 1.09.474 2.592-.507 4.804z" fill="#64b4d1" stroke="#00247d" stroke-width=".399"/> - <path d="M524.448 207.723s.035-1.38-1.728-2.82c0 0-.143-.168-.06-.257 0 0 .13-.187.3-.042 0 0 1.898 1.52 1.944 3.177 0 0-.02.27-.24.204 0 0-.193-.017-.216-.26z" fill="#fff"/> - <path stroke-miterlimit="2.613" d="M522.107 209.325s-.51-.918-2.913-1.77c-2.405-.854-1.755-2.954-.743-3.404 0 0 1.05-.46 2.175.947.65.814 1.43 1.99 1.482 4.228z" fill="#64b4d1" stroke="#00247d" stroke-width=".399"/> - <path d="M521.053 207.638s-.546-1.265-2.748-1.82c0 0-.2-.09-.163-.206 0 0 .04-.226.255-.167 0 0 2.357.567 3.094 2.052 0 0 .094.252-.13.284 0 .002-.183.07-.307-.142z" fill="#fff"/> - <path stroke-miterlimit="2.613" d="M523.613 210.244s-1.12.315-3.696-.927c-2.574-1.242-3.702.92-3.25 2.076 0 0 .47 1.197 2.464.987 1.152-.122 2.693-.423 4.483-2.136z" fill="#64b4d1" stroke="#00247d" stroke-width=".399"/> - <path d="M517.626 211.065s1.168.72 3.286-.1c0 0 .216-.04.25.075 0 0 .097.208-.113.284 0 0-2.254.898-3.702.11 0 0-.22-.153-.055-.31 0 0 .112-.162.333-.06z" fill="#fff"/> - <path stroke-miterlimit="2.613" d="M519.846 202.107s1.286.623.987 2.13" fill="none" stroke="#000" stroke-width=".532"/> - <path stroke-miterlimit="10" d="M525.528 202.318s.503 1.592-.052 2.45" fill="none" stroke="#000" stroke-width=".532"/> - <path stroke-miterlimit="2.613" d="M436.818 211.188s-.684-.93-.405-3.725c.28-2.795-2.146-3.116-3.08-2.313 0 0-.964.836-.077 2.608.512 1.022 1.33 2.347 3.562 3.43z" fill="#64b4d1" stroke="#00247d" stroke-width=".399"/> - <path d="M435.905 209.102s-.91-.978-.475-3.1c0 0 .003-.21-.117-.224 0 0-.22-.056-.258.153 0 0-.49 2.264.538 3.494 0 0 .187.18.313 0 0 0 .138-.13 0-.322z" fill="#fff"/> - <path stroke-miterlimit="2.613" d="M437.592 210.172s.072-1.127 2.02-3.04c1.946-1.915.345-3.68-.847-3.664 0 0-1.235.02-1.68 1.9-.257 1.09-.474 2.592.507 4.804z" fill="#64b4d1" stroke="#00247d" stroke-width=".399"/> - <path d="M437.896 207.723s-.035-1.38 1.728-2.82c0 0 .143-.168.06-.257 0 0-.13-.187-.3-.042 0 0-1.898 1.52-1.944 3.177 0 0 .02.27.24.204 0 0 .192-.017.216-.26z" fill="#fff"/> - <path stroke-miterlimit="2.613" d="M440.236 209.325s.51-.918 2.913-1.77c2.404-.854 1.754-2.954.742-3.404 0 0-1.05-.46-2.174.947-.65.814-1.43 1.99-1.482 4.228z" fill="#64b4d1" stroke="#00247d" stroke-width=".399"/> - <path d="M441.29 207.638s.546-1.265 2.748-1.82c0 0 .2-.09.163-.206 0 0-.04-.226-.254-.167 0 0-2.357.567-3.094 2.052 0 0-.093.252.132.284 0 .002.182.07.306-.142z" fill="#fff"/> - <path stroke-miterlimit="2.613" d="M438.73 210.244s1.12.315 3.696-.927c2.574-1.242 3.702.92 3.25 2.076 0 0-.47 1.197-2.464.987-1.15-.122-2.692-.423-4.482-2.136z" fill="#64b4d1" stroke="#00247d" stroke-width=".399"/> - <path d="M444.717 211.065s-1.168.72-3.286-.1c0 0-.215-.04-.25.075 0 0-.096.208.114.284 0 0 2.254.898 3.7.11 0 0 .22-.153.056-.31 0 0-.11-.162-.333-.06z" fill="#fff"/> - <path stroke-miterlimit="2.613" d="M442.497 202.107s-1.286.623-.987 2.13" fill="none" stroke="#000" stroke-width=".532"/> - <path stroke-miterlimit="10" d="M436.815 202.318s-.503 1.592.052 2.45" fill="none" stroke="#000" stroke-width=".532"/> - <path d="M492.633 187.69s.815 2.327.463 4.434c-.314 1.885.115 2.372.796 2.745.59.322 1.955-.243 2.12-1.72 0 0 1.614 3.15-1.526 5.277 0 0-2.258 1.388-4.17-.467-.676-.653-.973-2.458-.644-4.132 0 0 .494-2.27-.33-4.6 0 0 1.286 1.373.958 4.11 0 0-.658 4.908 2.975 4.667 0 0 2.512-.03 2.587-3.076 0 0-.942 1.084-2.108.723-.827-.256-1.586-1.056-1.45-2.316.14-1.32.508-3.625.33-5.646zm-4.117 8.063s-.2 3.88-3.748 4.825c0 0 .5-.703-.3-2.633 0 0-.776-1.126-.716-2.875 0 0-1.13.884.16 3.216.777 1.408.1 3.097-.14 3.157-.24.06 5.86-.805 4.744-5.69zm-4.606-3.86s-.857-.965-.917-3.197c-.06-2.232-.478-2.774-.777-3.036 0 0 .438 1.93.318 3.116-.12 1.186.08 1.87.24 2.433 0 0-1.934.3-3.15-2.515-1.163-2.69-2.333-2.473-2.91-2.453 0 0 .673.075 2.032 2.533 1.358 2.457 1.735 2.957 5.164 3.118zm-9.05-5.831s1.116 2.674 1.156 4.082c0 0-2.592-.865-3.29-3.117 0 0-2.77.945-1.754 4.142 0 0-2.392-.845-3.47-2.796 0 0 1.337 1.005 2.573 1.448 0 0-.14-2.574 3.09-3.54 0 0 .48 2.306 2.093 2.856 0 0-.12-1.447-.398-3.076zm4.266-4.582s.897 1.306 2.73 1.366c.878.03 1.82-.17 2.733-1.367 0 0-.12 2.27-2.733 2.29 0 0-2.73.1-2.73-2.29zm-11.299 15.53s1.36 1.236 1.644 1.643c0 0 .958.935 1.78-.274 0 0 1.048-1.934 2.333-1.883 0 0-.912.634-1.937 2.46 0 0-.276.676-1.04.75-.356.037-.806.152-1.488-.56 0 0-.59-.72-1.29-2.137zm14.03-24.64c-2.73 0-.43 2.112-.43 2.112.06 3.347-2.625 4.377-4.454 3.408-1.83-.97-.4-3.408-.4-3.408s-2.062 1.356-.746 3.317c1.315 1.96 4.764 1.084 6.03-.725 1.266 1.81 4.715 2.684 6.03.724 1.317-1.962-.747-3.318-.747-3.318s1.43 2.437-.398 3.408c-1.83.97-4.516-.06-4.456-3.408 0 0 2.302-2.112-.43-2.11zm1.655-3.618s.956 1.63.747 4.1c0 0 .866-2.472-.748-4.1zm-8.372 3.83s-.21-1.78-1.945-1.93c0 0 1.465 1.056 1.944 1.93zm13.456 0s.21-1.78 1.944-1.93c0 0-1.466 1.056-1.944 1.93zm-16.209 2.714s1.376.423 2.213-.603c0 0-1.585.422-2.213.603zm-4.455-10.916s1.6-.182 3.2 2.2c0 0-1.586.845-1.974 1.358 0 0 0-.784.777-1.478 0 0-.3-1.206-2.003-2.08zm26.794 0s-1.6-.182-3.2 2.2c0 0 1.586.845 1.974 1.358 0 0 0-.784-.777-1.478 0 0 .298-1.206 2.003-2.08zm-12.35 1.777s1.435.394 3.23-.602c0 0 2.212-1.176 3.618 0 0 0-1.227-.545-3.59.602 0 0-2.362 1.295-3.258 0z"/> - <path d="M483.87 167.606s1.227-2.15 4.965-1.723c0 0-1.017 2.99-4.964 1.723z" fill="#fff"/> - <ellipse cx="486.449" cy="166.939" rx=".739" ry=".937" fill="#784421"/> - <ellipse cx="486.449" cy="166.939" rx=".439" ry=".575"/> - <path d="M475.856 163.022s2.362.15 3.798 1.056c0 0 1.525.905 3.26-.393 0 0 1.885-1.085 3.096-2.593 0 0-2.887 1.99-3.964 2.292 0 0-.987-.754-1.375-1.84 0 0 .15-.813 1.705-2.32 0 0-2.093.632-2.512 2.41 0 0 .39 1.087 1.196 1.932 0 0-.39.18-1.406-.453 0 0-2.213-.754-3.798-.09zm6.001 14.188c-2.043 1.766 0 1.585 0 1.585s2.044.18 0-1.584zm-1.182-11.053s-1.436.394-3.23-.602c0 0-2.214-1.176-3.62 0 0 0 1.227-.545 3.59.602 0 0 2.362 1.295 3.26 0z"/> - <path d="M479.18 167.606s-1.227-2.15-4.965-1.723c0 0 1.017 2.99 4.965 1.723z" fill="#fff"/> - <ellipse cx="476.601" cy="166.939" rx=".739" ry=".937" fill="#784421"/> - <ellipse cx="476.601" cy="166.939" rx=".439" ry=".575"/> - <path d="M554.063 148.26v135.513c0 36.197-72.36 47.957-72.36 47.957s-72.36-11.76-72.36-47.957V148.26h144.72z" fill="none" stroke="#000" stroke-width="1.28"/> -</svg> diff --git a/img/flags/4x3/bn.svg b/img/flags/4x3/bn.svg deleted file mode 100644 index 109576c..0000000 --- a/img/flags/4x3/bn.svg +++ /dev/null @@ -1,36 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" height="480" width="640" viewBox="0 0 640 480"> - <path fill="#f7e017" d="M0 0h640v480H0z"/> - <path d="M0 33.333v213.334l640 100V233.333z" fill="#fff"/> - <path d="M0 146.667v100l640 200v-100z"/> - <g transform="translate(-160) scale(.66667)" fill="#cf1126"> - <path d="M695.74 569.72c-19.36-2.57-37.11-8.73-49.44-17.17-2.39-1.64-4.64-2.98-4.99-2.98-.36 0-.65 1.82-.65 4.07 0 6.37-2.56 9.58-9 11.25-6.16 1.6-15.56-1.63-23.18-7.95-7.89-6.55-17-11.55-24.71-13.55-6.35-1.66-14.78-1.39-20.87.65-2.83.95-6.05 2.29-7.17 2.98-1.11.69-2.36 1.25-2.76 1.25-1.08 0-.93-6.85.2-9.04 1.49-2.87 5.16-5.7 9.44-7.26 2.16-.79 3.93-1.8 3.93-2.25 0-.45-.73-2.1-1.62-3.65-2.9-5.08-1.71-10 3.35-13.87 5.18-3.96 13.95-4.64 21.7-1.69 1.95.74 3.77 1.35 4.04 1.35 1.02 0 .4-1.43-2.41-5.52-3.24-4.74-3.88-7.08-3.48-12.72.52-7.14 6.34-12.98 13.47-13.5 5.82-.42 9.44 1.54 18.03 9.72 25.65 24.46 53.54 37.94 86.07 41.59 8.21.92 24.73.43 34.42-1.03 29.27-4.41 58.76-19.13 81.79-40.82 6.38-6.01 9.45-7.6 14.68-7.62 4.55-.02 7.74 1.45 11 5.05 2.97 3.3 3.98 6.43 3.66 11.44-.21 3.21-.73 4.79-2.64 7.9-2.82 4.59-2.34 5.01 3.24 2.85 7.54-2.94 16.83-1.58 21.84 3.18 4.41 4.19 4.83 8.38 1.4 14.06-1.25 2.08-2.27 4.03-2.27 4.34 0 .57.95.84 5.53 1.58 5.99.96 9.42 5.41 9.42 12.21 0 2.04-.25 3.7-.56 3.7-.3 0-2.57-.83-5.04-1.85-6.98-2.88-10.95-3.62-19.11-3.57-6.21.04-8.35.33-12.68 1.74-6.63 2.17-13.72 6.35-19.5 11.5-6.37 5.68-10.38 7.47-16.58 7.42-5.76-.06-9.7-1.73-11.78-5.02-1.11-1.76-1.27-2.83-1-6.81.18-2.59.14-4.71-.07-4.71-.22 0-2.46 1.42-4.99 3.17-6.64 4.56-10.87 6.82-18.47 9.83-23.18 9.17-56.63 13.14-82.24 9.75z"/> - <path d="M706.34 525.17c-38.58-3.703-75.494-23.798-97.939-55.657-24.37-33.235-32.05-77.117-24.611-117.24 3.954-18.267 11.929-36.546 25.544-49.554-10.85 23.003-14.516 49.369-8.73 74.29 8.99 49.753 51.036 91.87 101.34 99.156 19.9 5.761 40.487-.324 59.496-6.493 41.935-14.78 73.88-54.583 77.777-99.08 3.336-24.077-.36-49.113-11.207-70.915 6.183 3.269 13.987 16.087 18.59 24.707 16.002 31.003 16.733 68.155 7.312 101.24-12.78 42.097-44.965 78.978-87.511 92.382-19.308 6.308-39.842 8.231-60.058 7.167z"/> - <g id="a"> - <path d="M512.02 469.9c-2.528-.396-5.316 2.092-4.363 4.697 1.823 2.633 4.964 3.92 7.798 5.18 6.792 2.722 14.18 3.782 21.471 3.605-2.513-.006.863.026 1.802 0 5.774.017 11.516-1.024 16.944-2.98 3.018-1.062 6.864-2.025 8.1-5.363 1.207-2.175-.98-4.347-3.185-3.911-3.072.67-5.944 2.064-8.99 2.857-6.572 1.854-13.494 2.57-20.303 2.012-4.98-.608-9.804-2.2-14.41-4.143-1.597-.705-3.096-1.733-4.865-1.954z"/> - <path d="M514.83 459.52c-2.556-.38-4.758 2.56-3.692 4.908 1.965 2.848 5.267 4.365 8.356 5.699 5.37 2.148 11.204 3.047 16.975 2.875-2.191-.006.753.026 1.565 0a37.592 37.592 0 0 0 14.325-2.832c2.774-1.078 6.17-2.124 7.325-5.177.896-1.677.212-4.116-1.9-4.247-1.929-.096-3.593 1.132-5.378 1.683-6.485 2.681-13.622 3.818-20.614 3.214-4.357-.56-8.52-2.168-12.47-4.03-1.485-.718-2.82-1.836-4.491-2.093z"/> - <path d="M518.28 449.57c-2.19-.263-3.698 2.209-3.329 4.182.327 1.733 1.883 2.898 3.17 3.96 5.328 3.898 12.082 5.558 18.625 5.34-2.541-.009 3.41.042 1.595-.007 4.144-.017 8.238-1.03 11.966-2.825 2.489-1.082 5.411-2.336 6.25-5.177.401-1.324.652-3.227-.841-3.97-1.564-.874-3.117.47-4.539 1.016-4.789 2.437-10.125 3.793-15.507 3.768-4.65.157-9.033-1.8-13.068-3.907-1.464-.746-2.67-2.043-4.321-2.38z"/> - <path d="M481.53 302.7c-3.257 3.26-.77 9.271-.946 13.543 1.688 13.158 3.785 26.484 8.697 38.87 6.015 12.102 18.79 18.573 26.533 29.268 2.767 5.155 1.785 11.355 2.368 16.994.458 15.366.316 30.743.047 46.111 6.939 3.482 14.474 6.986 22.456 5.647 4.73-1.13 13.512-1.832 14.496-6.543-.383-26.5-.63-53.01-.983-79.506-2.69-8.119-10.951-12.32-17.129-17.515a155.468 155.468 0 0 1-14.188-16.099c-2.622-4.417-12.868-6.009-9.161 1.677 2.173 6.654 7.72 11.61 9.109 18.602.303 3.831 4.877 10.879.973 13.114-2.484-4.222-6.082-7.815-10.682-9.958-4.432-3.304-11.759-4.68-13.359-10.517-1.175-8.28-5.415-15.782-10.887-21.986 1.41-7.436.005-16.737-6.423-21.49l-.921-.212z"/> - <path d="M491.44 304.19c-2.963.478-2.862 4.254-1.491 6.239 1.458 4.288 1.855 8.945 1.066 13.409 5.267 6.166 9.347 13.543 10.576 21.64.03 3.044 3.233 4.051 5.309 5.555 4.871 3.102 10.348 5.351 14.686 9.233.913.976 1.602 2.027.957.035-.677-2.547-1.026-5.358-3.021-7.285-2.735-2.94-6.15-5.563-10.133-6.46-.332-4.114-2.292-7.893-4.102-11.532-2.006-3.479-4.102-7.206-7.54-9.462.138-6.098.038-12.495-2.586-18.122-.77-1.446-1.903-3.163-3.72-3.25z"/> - <path d="M499.73 306.62c-2.064.613-1.67 3.159-1.016 4.716.989 4.316 1.144 8.774 1.063 13.184 3.791 3 6.163 7.35 8.322 11.587 1.353 2.83 2.636 5.751 3.155 8.865 3.076 1.018 5.768 2.946 8.171 5.077-.952-2.882-3.076-5.113-4.504-7.744-1.551-2.737-3.033-5.592-3.69-8.693-2.958-3.157-4.587-7.63-3.941-11.952.133-4.776-1.41-9.71-4.606-13.31-.805-.793-1.766-1.67-2.954-1.73z"/> - <path d="M509.16 307.97c-1.122.198-1.805 1.266-2.406 2.137-.233.873.837 1.812 1.008 2.76a21.771 21.771 0 0 1 1.416 10.426c-.086 2.502.809 4.946 2.084 7.065.368-1.563 1.816-2.687 3.386-2.84.571-.101 1.411.188 1.078-.683-.399-4.786-1.128-9.598-2.8-14.12-.649-1.614-1.385-3.314-2.784-4.42-.284-.201-.623-.374-.982-.325z"/> - </g> - <use height="100%" width="100%" xlink:href="#a" transform="matrix(-1 0 0 1 1440 0)"/> - <path d="M715.67 475.98c-13.493-1.285-25.667-11.12-29.829-24 .224-2.219 2.987 1.241 4.292 1.474 2.45 1.36 5.1 2.48 7.92 2.654 3.558 1.529 5.757 5.035 9.152 6.863 1.577 1.228 7.155 3.64 6.119-.264-1.307-2.04-2.206-4.625-1.081-6.962 1.892-4.15 4.802-7.763 7.73-11.226 2.153-.72 3.595 3.527 5.134 4.957 2.131 3.279 4.7 7.28 3.447 11.352-1.22 1.509-2.021 6.047 1.241 4.522 4.022-1.77 7.316-4.742 10.651-7.517 2.919-2.039 6.654-2.183 9.713-3.97 1.417-.36 4.37-3.195 4.986-1.623-1.676 4.488-4.482 8.507-7.482 12.211-4.86 5.55-11.432 9.725-18.786 10.902-4.346.796-8.806.964-13.207.628z"/> - <path d="M731.53 460.22c.297-2.708-.32-5.473-1.703-7.935-2.123-4.326-5.121-8.166-8.046-11.96-2.757-1.616-4.287 3.657-6.12 5.17-2.857 4.277-6.443 8.657-6.617 14.036-1.607 2.502-4.604-2.04-5.896-3.535-2.468-3.491-4.336-7.62-4.03-11.987-.292-7.036 1.057-14.041 3.62-20.581 1.935-5.583 5.076-11.006 4.757-17.105.224-4.59-.708-9.658-4.426-12.745-3.538-2.776 2.291-3.368 4.143-1.928 3.168.212 4.882 5.448 7.777 4.152 1.153-2.735 1.382-5.997 3.76-8.13 2.333-3.196 4.772 1.356 5.57 3.488 1.648 1.873-.092 6.507 2.583 6.628 3.206-2.247 5.492-6.022 9.591-6.844 1.663-.949 4.504-.127 2.312 1.785-3.034 2.844-5.626 6.4-6.179 10.63-.928 5.308.4 10.69 2.713 15.47 4.446 9.39 7.885 19.997 5.636 30.445-1.043 4.644-4.198 8.645-8.032 11.34-.484.293-1.25.273-1.413-.394z"/> - <path d="M726.73 389.63c-1.456-2.624-3.224-5.21-5.673-6.995-2.381-.005-3.85 2.999-5.468 4.573-1.134 2.11-2.512 5.638-5.305 2.88-4.444-2.594-5.23-8.276-5.202-12.959-.28-7.59 2.777-14.674 5.492-21.587 1.728-4.328 1.302-9.199.248-13.634-1.327-5.092-5.414-8.623-8.56-12.595.214-1.536 4.235-.697 5.748-.405 3.36.852 5.367 3.825 7.87 5.926 1.782-.54 1.055-4.14 1.884-5.833.062-2.382 3.233-5.522 4.541-2.112 1.959 2.168-.062 6.465 2.469 7.815 2.411-.893 3.6-3.529 5.866-4.72 2.23-1.52 5.378-1.69 7.778-.497.845 2.213-2.64 4.055-3.65 5.977-4.051 5.006-5.475 11.91-3.74 18.112 1.377 4.865 3.814 9.406 4.655 14.434 1.013 5.653.98 11.59-.484 17.16-.874 3.38-3.802 5.64-6.825 7.044-.746-.694-1.14-1.714-1.644-2.583z"/> - <path d="M711.61 326.89c-3.36-2.46-4.47-4.81-4.47-9.46 0-2.38.44-3.67 2.01-5.83 2.31-3.2 1.89-4.21-1.38-3.27-5.26 1.51-7.77.13-7.95-4.35-.08-2.19.38-3.12 3.33-6.66 2.36-2.84 3.22-4.33 2.75-4.8-.46-.46-3.25 1.96-8.98 7.79-4.57 4.65-9.71 9.4-11.42 10.56-9.84 6.64-19.24 7.67-23.53 2.56-2.2-2.61-2.08-4.08.46-5.66 1.17-.72 3.14-2.38 4.39-3.69 2.95-3.07 11.74-9.41 16.1-11.61 3.54-1.79 4.38-3 2.08-3-2.98 0-12.54 6.22-19.79 12.88-2.13 1.97-5.2 4.16-6.81 4.87-3.62 1.6-10.73 2.19-13.89 1.15-2.23-.74-6.3-4.58-6.3-5.95 0-.36.93-1.16 2.06-1.77 1.13-.6 3.16-2.07 4.5-3.24 5.8-5.09 16.79-10.33 25.51-12.16 2.77-.58 1.75-1.98-1.34-1.84-5.99.26-17.88 5.83-24.98 11.69-8.32 6.86-20.87 6.21-24.91-1.29-.7-1.29-1.11-2.5-.91-2.69.19-.19 2.66-.93 5.49-1.65 3.06-.77 9.12-3.28 14.91-6.17 9.11-4.54 11.81-5.51 18.08-6.52 2.82-.45 2.97-1.83.23-2.15-3.53-.42-8.94 1.35-18.5 6.05-12.28 6.04-15.72 7.08-22.19 6.7-5.9-.36-9.23-1.87-14.02-6.4-3.13-2.97-7.57-10.51-6.7-11.38.21-.21 1.65 0 3.2.45 1.72.51 6.65.85 12.59.86 8.31.02 10.52-.2 14.95-1.48 7.41-2.14 17.26-7.15 24-12.18 12.89-9.64 23.4-13.51 36.8-13.57 12.37-.05 20.24 2.81 27.21 9.88 2.36 2.39 4.37 3.94 4.7 3.61.31-.31.65-4.49.75-9.29 0 0 3.64-.35 4.41.67 0 7.79.09 8.4 1.22 8.4.74 0 1.53-.76 2.02-1.94 1.06-2.55 4.98-6.04 9.17-8.16 9.05-4.59 24.71-4.73 37.29-.34 5.3 1.86 11.18 5.18 16.78 9.5 5.62 4.32 17.11 10.1 23.9 12.03 6.87 1.95 18.98 2.44 25.19 1.03 2.56-.58 4.96-1.06 5.34-1.06 2.29 0-1.61 7.63-6.19 12.1-8.37 8.18-19.26 8.14-34.58-.12-9.55-5.14-20.97-7.95-20.97-5.15 0 .58.6.97 1.49.97 3.32 0 9.73 2.23 18.67 6.47 9.67 4.6 15.1 6.54 18.32 6.54 2.34 0 2.41 1.45.23 4.65-2.31 3.41-6.23 5.1-11.77 5.09-5.29-.02-8.23-1.18-12.96-5.11-7.91-6.58-27.62-13.92-26.86-10 .15.78 1.1 1.26 3.13 1.57 6.86 1.05 14.91 4.89 23.15 11.06 2.54 1.91 5.18 3.79 5.85 4.19 1.13.66 1.15.86.26 2.53-1.48 2.76-5.21 4.9-9.25 5.32-5.23.54-9.78-1.02-14.49-4.96-9.94-8.32-19.31-14.34-22.31-14.34-2.45 0-1.35 1.35 2.97 3.64 5.68 3.01 11.52 7.08 15.82 11.03 2.03 1.88 4.32 3.74 5.08 4.15 1.8.96 1.73 2.37-.25 4.96-2.02 2.64-5.36 3.8-9.69 3.34-8.64-.91-15.38-5.08-25.97-16.07-4.14-4.29-7.83-7.8-8.21-7.8-1.41 0-.58 1.91 2.15 4.97 3.38 3.78 4.03 5.91 2.75 8.98-1.13 2.72-3.01 3.35-6.87 2.31-3.95-1.07-4.57-.1-1.98 3.12 3.86 4.81 3.29 10.7-1.44 14.75-1.47 1.25-3.01 2.28-3.43 2.28-.41 0-1.45-1.07-2.32-2.38-3.04-4.62-5.71-4.59-8.67.08-1.03 1.63-1.9 2.95-1.93 2.94-.04-.01-1.43-1.01-3.08-2.23z"/> - <path d="M726.67 233.03l-5.13 4.06-4.6-3.47v27.74l9.73.12z"/> - <path d="M694.89 204.25c-1.02 13.11-4.35 22.26-8.98 32.35l11.1-10.29 7.72 9.17 8.36-9.33 8.53 7.88 8.2-8.2 8.52 9.97 7.4-8.2 12.54 9c-4.55-10.09-10.71-18.64-9.94-32.84-12.15 9.03-41.02 10.66-53.45.49z"/> - <path d="M716.95 197.56c-4.46.08-9.16.14-13.39.97-2.93.58-5.59 1.53-7.81 3.1.36 8.53 41 12.09 51.9.16-2.29-1.67-5.09-2.66-8.17-3.26-4.07-.79-8.57-.87-12.84-.94 0 2.34.02 4.69.02 7.04l-9.71-.03v-7.04z"/> - <path d="M724.9 153.97l-6.31.05v49.38l6.44.03z"/> - <path d="M724.89 155.24l-2.41 23.64 24.32 11.88-12.31-16.46 16.81-5.45zm-2.71-6.16c-3.69 0-6.42 1.38-6.42 3.02 0 1.64 2.73 3.03 6.42 3.03s6.4-1.39 6.4-3.03-2.71-3.02-6.4-3.02z"/> - </g> - <g fill="#f7e017"> - <path d="M314.033 375.88c2.66-.88 4.174-2.493 5.26-5.6.54-1.547.907-3.153.814-3.573-.227-.994-1.374-.94-2.64.113-.867.727-.974 1.093-.727 2.573.633 3.734-.693 4.66-7.76 5.42-.7.074-2.727-.046-4.513-.266-3.36-.42-4.56-.087-3.34.926.366.307 1.3.72 2.073.914 1.887.486 8.813.16 10.833-.507zm14.647-.62c.4-.367 1.773-1 3.053-1.413 1.707-.547 2.587-1.134 3.307-2.207 2.073-3.087 1.687-5.747-1.36-9.333-1.653-1.947-2.387-1.894-3.707.266-1.14 1.867-1.113 1.987.527 2.414.86.22 1.687.853 2.14 1.633 1.787 3.093 1.26 5.007-1.387 5.027-2.4.02-3.06.36-3.706 1.913-.34.807-.614 1.667-.614 1.913 0 .654.907.54 1.747-.213zm-4.807-3.493c.454-1.227.614-3.434.56-7.934-.033-3.426-.166-6.333-.3-6.466-.4-.4-2.373.873-2.633 1.693-.133.427.087 1.413.487 2.187.613 1.193.693 2.306.506 6.98-.24 5.906.147 6.9 1.38 3.54z"/> - <path d="M312.593 368.953c.24-1.1.547-3.353.687-5 .14-1.646.48-3.726.747-4.626.68-2.307-.007-2.914-1.827-1.62l-1.353.966.28 3.314c.26 2.986-.214 8.553-.9 10.713-.187.573.08.427.833-.453.607-.707 1.3-2.194 1.533-3.294zm-10.006 1.607c2.434-2.036 2.154-5.514 2.693-8.347-.056-1.883 1.203-4.14.39-5.788-2.274.416-3.676 2.57-2.512 4.716.097 2.492.009 5.205-1.272 7.409-1.047 1.441-4.362 1.082-4.209-.96.832-3.072-2.848-1.577-4.284-.772-1.11.773-3.455.83-2.64-1.105-.538-2.577-3.854-.965-5.655-.976-1.701-.031-.14-3.447-2.582-2.848-4.537-.357-9.546.04-13.473-2.7-2.3-1.106-1.958-3.87-.761-5.66 1.429-2.443 1.837-5.5 4.105-7.395 2.246-2.154-2.118-1.245-3.1-.519-2.189 1.198-.156 4.282-1.947 5.993-1.046 1.774-2.424 4.224-4.846 3.886-3.494-.66-5.507-3.91-8.012-6.088-2.145-.428-.939 3.481.169 4.303 2.192 1.641 4.753 2.837 7.394 3.546 2.63-.42 2.715 3.022 4.963 3.562 4.125 1.922 8.722 2.498 13.222 2.733 1.768.147.774 3.295 3.098 2.673 1.298.337 4.231-.483 4.378 1.025-1.968 2.338 1.89 2.285 3.318 1.867 1.828-.28 4.164-.978 4.647 1.528 1.526 1.609 4.328 1.371 6.186.45.261-.15.507-.329.73-.533z"/> - <path d="M262.747 350.38c.74-.94 1.846-2.84 2.46-4.227.606-1.393 1.52-2.973 2.02-3.513 1.173-1.267.52-2.047-1.374-1.627-1 .22-1.406.587-1.573 1.454-.567 2.826-1.593 5.72-2.507 7.066-1.653 2.44-1.693 2.54-1.013 2.54.353 0 1.247-.76 1.987-1.693zm-24.974-15.653c-1.866 0-1.946 1.18-.126 1.813.88.307 1.626 1.047 2.226 2.253 1.774 3.527 2.814 4.154 7.52 4.56l3.02.274.147 1.833c.073 1.013.313 1.853.547 1.853.233 0 1.4-.506 2.58-1.106 2.213-1.12 4.313-3.734 4.313-5.354 0-1.06-1.767-2.206-3.373-2.206-.714 0-2.074.573-3.147 1.353-3.36 2.433-6.953 1.94-8.92-1.227-1.613-2.613-3.3-4.046-4.787-4.046zm16.307 6.5c.893 0 1.113.66.627 1.92-.334.866-1.42.893-1.747.04-.387-1.007.153-1.96 1.12-1.96zm126.48-4.1c-1.22.046-1.58.313-2.353 1.46-1.267 1.88-1.394 5.953-.227 7.393.727.893.833.913 2.373.273 2.147-.9 2.507-.866 2.5.287-.013 2.947-4.24 8.627-8.666 11.647-1.194.813-2.26 1.72-2.374 2.02-.32.84 1.32.653 3.334-.374 2.746-1.4 6.353-5.08 7.833-7.98 1.173-2.313 1.34-3.1 1.48-7.146.127-3.727.027-4.82-.607-6.06-.706-1.394-.933-1.52-2.706-1.52-.214 0-.407-.007-.587 0zm.147 2.6c.92 0 1.08.206 1.186 1.526.094 1.094-.1 1.76-.706 2.307-.827.747-.894.74-1.627-.373-1.027-1.574-.393-3.46 1.147-3.46zm-20.24 28.453c3.9-1.92 6.2-4.08 7.68-7.207.7-1.486 1.273-2.886 1.273-3.126 0-.54-1.92-1.434-3.073-1.434-1.147 0-1.38-.793-.887-2.986.48-2.14-.1-4.82-1.04-4.82-.34 0-.94.5-1.34 1.106-.613.94-.647 1.34-.193 2.707.666 2.027.14 3.54-1.674 4.833-.86.614-1.333 1.32-1.333 2.007 0 .58.073 1.053.16 1.053.093 0 1.04-.493 2.107-1.086l1.946-1.087 1.147.9c.627.493 1.147 1.3 1.147 1.793 0 2.374-6.767 6.36-11.414 6.734-2.473.2-2.893.113-3.753-.74-.7-.7-.9-1.287-.727-2.114.134-.633.374-1.786.534-2.56.426-2.066-.46-1.786-1.994.627-1.26 1.993-1.633 4.12-.926 5.24.58.913 4.433 1.787 7.16 1.62 1.713-.1 3.406-.58 5.2-1.46zm26.026-14.52c2.454-2.447 3.494-5.427 3.507-10.033l.007-3.46 2.026-.96c2.634-1.254 5.127-3.747 5.127-5.134 0-1.426-.633-1.353-1.78.2-.833 1.127-1.947 1.807-6.02 3.68-1.027.474-1.093.727-1.327 5.034-.273 4.966-.946 6.826-3.72 10.22-1.7 2.066-1.76 2.34-.58 2.34.487 0 1.727-.847 2.76-1.887zm-26.72-2.773c.234-.714-1.12-1.22-1.706-.64-.247.246-.314.673-.147.946.387.62 1.613.414 1.853-.306zm36.847-9.54c.24-.714-1.12-1.22-1.7-.64-.253.253-.32.68-.153.953.386.62 1.613.413 1.853-.313zm-44.347-25.827c-.953.454-1.447 1.483-2.11 2.269-.476.324-.094.627.18.932 1.682 1.811 2.393 4.258 3.192 6.54.785 2.693 1.773 5.585.953 8.391-.323 1.075-1.169 2.188-2.431 1.83-2.02-.125-4.009-.661-6.035-.64-1.803.094-3.197 1.735-5.04 1.556-1.179.078-1.129-2.412-2.223-1.746-.542 1.298-.275 2.746-.34 4.119.204.197.777.025 1.12.083h3.63c.257 1.253.225 2.69 1.125 3.687 1.26.448 2.677.061 3.875-.429 1.283-.597 1.455-2.14 1.818-3.343.386-1.292 2.078-.954 3.076-1.461 2.444-.713 4.045-3.253 3.902-5.751-.158-3.815-1.613-7.404-2.718-11.014-.555-1.59-.94-3.25-1.584-4.803-.076-.134-.23-.246-.39-.22zm-6.046 21.813c1.357-.088 1.947 1.58 1.66 2.687-.508 1.503-2.357.54-2.73-.544-.688-.968-.263-2.27 1.07-2.143z"/> - <path d="M295.96 324.813c-.607-.013-1.287.214-1.96.687-3.54 2.48-4.447 5.413-2.04 6.56 1.767.847 1.32 1.84-1.46 3.233-3.98 1.987-7.493 1.74-14.167-1.02-1.64-.68-2.066-.42-1.686 1.08.366 1.474 1.713 2.28 5.06 3.04 3.6.827 7.953.56 10.753-.646 1.367-.587 2.987-1.82 4.353-3.307l2.167-2.38 2.52.313c3.107.38 3.167.414 3.167 1.9 0 1.18.066 1.207 2.92 1.474 1.606.153 3.72.293 4.706.293 1.26.007 1.974.227 2.394.813.56.78.893.82 5.586.4 4.387-.4 5.247-.366 7.227.307 1.407.48 2.953.673 4.127.547 3.36-.38 7.993-3.127 8.666-5.147.08-.247 1.3-.68 2.707-.96 3.393-.68 3.54-1.42.373-1.813-1.373-.174-3.433-.674-4.58-1.127-1.153-.453-2.726-.833-3.5-.833-1.706 0-3.313 1.066-3.313 2.166 0 .72.253.794 2.273.587 1.9-.193 2.454-.087 3.454.707.66.52 1.1 1.133.96 1.353-.447.727-4.414 2.533-6.167 2.813-1.173.187-2.12.06-3.04-.413-1.54-.8-3.807-.92-4.233-.233-.18.3-.667.106-1.334-.52l-1.04-.98-2.353.98c-2.393.993-3.273.953-3.273-.187 0-.52-.7-.58-4.227-.353-3.887.253-4.293.186-5.02-.627-.673-.747-.687-1.007-.207-1.773.44-.707.44-1.014.02-1.434-.42-.42-.966-.413-2.5 0-3.866 1.034-4.96.454-4.96-2.566 0-1.814-1.04-2.914-2.373-2.934zm-.96 2.774c.207 0 .38.126.647.393.34.34.52.933.373 1.313-.347.9-1.987.867-2.333-.04-.167-.44.046-.933.54-1.293.346-.253.566-.38.773-.373z"/> - <path d="M288.067 330.4c2.353-1.493 2.3-1.38 2.64-5.527.233-2.926.193-3.146-.6-3.146-1.154 0-1.754 1.266-1.754 3.68 0 1.546-.24 2.24-1.066 3.06-1.96 1.96-6.827 1.066-7.44-1.367-.207-.833.06-1.587 1.08-3.033 2.126-3.02 1.646-3.76-.96-1.467-1.794 1.567-2.114 1.613-1.774.26.314-1.247-.34-1.74-1.8-1.373-.746.186-1.153.653-1.333 1.56-.173.886-.58 1.38-1.287 1.553-1.18.3-3.193-.82-3.193-1.773 0-.707 3.013-4.387 6.88-8.4 1.46-1.52 2.653-2.934 2.653-3.147 0-.213-.78-.387-1.733-.387-1.393 0-1.733.154-1.733.8 0 .44-1.947 2.994-4.334 5.68-4.973 5.6-5.386 6.767-2.926 8.26 1.98 1.214 4.52 1.12 6.513-.233l1.613-1.1v1.993c0 2.547.507 3.46 2.507 4.52 2.513 1.327 5.553 1.167 8.047-.413zm104.373-34.607c-1.845 1.102-.401 3.416-.122 4.953-.753 2.097-3.448 2.662-5.412 3.051-2.782.461-4.754 2.789-5.812 5.262-.574 1.606-1.958 4.096-3.466 1.651-1.312-1.329-3.722-2.382-5.272-.83-1.178 1.12-1.477 2.77-1.916 4.268-.695-1.151-1.007-2.865-2.48-3.229-2.352.331-1.502 3.296-.396 4.519 1.005 1.425 1.97 3.305.985 4.998-.868 2.034-3.873 3.406-5.637 1.666-1.649-.87-.546-3.976-2.17-4.147-.802.58-.869 3.83-2.153 2.068-.927-1.506-.436-3.568-1.57-4.923-1.34.167-2.418 2.475-1.972 3.714 1.788 2.412 2.523 5.437 3.22 8.311.435 1.151-.063 3.485 1.014 3.94.746-1.852.053-3.953.64-5.823 1.746-.22 3.687.577 5.518.154 2.619-.34 4.643-2.55 5.561-4.904.278-1.77-.053-3.565-.102-5.344 2.07.32 4.219.314 6.21.986.986 1.513-.314 3.632-.587 5.286-1.039 3.368-3.677 5.813-6.244 8.065-1.073.635-1.217 2.318.368 1.412 3.449-1.475 6.02-4.599 7.499-7.98 1.079-2.601.211-5.498.916-8.158 1.041-1.998 3.548-1.577 5.402-1.57 1.92-.074 3.558-2.31 2.917-4.175-.611-2.165 1.679-3.208 3.244-3.981 2.074-1.047 3.665-3.173 3.505-5.572-.086-1.227-.025-3.555-1.688-3.667zm-7.354 12.5c2.222.59-.402 4.835-1.583 2.146-.364-1.026.5-2.183 1.583-2.146zm-10.313 3.04c2.892-.169 1.853 4.054-.59 2.137-1.267-.636-.848-2.215.59-2.137zm-104.706 16.32c.08-.42-.134-.72-.514-.72-.806 0-1.293.707-.913 1.32.393.634 1.26.274 1.427-.6zm33.893-3.786c0-.62-.233-.854-.753-.754-1.134.214-1.26 1.654-.147 1.654.62 0 .9-.28.9-.9zm-41.94-20.347c-1.353-.278-2.204.867-2.667 1.958-1.011 1.7-2.247 3.44-4.062 4.34-1.305.363-2.729-.134-3.854-.807-1.343-.669-1.038-2.284-1.614-3.4-.971-.763-2.694.328-2.655 1.514-.108 1.59 1.38 2.51 2.616 3.124 1.05.643 2.572 1.001 2.991 2.302-.029 1.106.416 2.372 1.762 1.945 1.507-.025 1.897 1.81 1.289 2.911-.62 1.241-1.038 2.695-.741 4.077.72.606 1.455-1.02 1.976-1.484l1.063-1.417c2.666.144 5.329.484 8 .39 1.901-.035 3.52-1.208 4.728-2.584 1.709-1.787 3.113-3.886 5.065-5.428 1.389-.34.642-2.956-.809-2.2-1.307.49-1.718 1.967-2.624 2.909-1.543 1.868-3.118 3.764-5.063 5.229-1.416.587-3.047.33-4.502 0-.607-.531 1.206-.964 1.459-1.554.834-.834 1.825-1.625 2.309-2.72-.463-1.01-1.878-1.092-2.875-1.113-2.457.295-4.334 2.358-6.816 2.552-1.883.066-.903-1.974-.054-2.67 1.661-1.972 3.456-3.83 5.19-5.738.493-.592 2.273-1.154 1.134-1.986-.398-.144-.828-.144-1.246-.15zm1.208 9.98c1.24.696-.79 1.837-1.645 1.681-1.122.336-1.142-.807-.146-1.035.56-.292 1.152-.596 1.791-.647zm-3.812 2.603c.705-.013 2.183.665.795 1.098-.966.75-2.058-.762-.795-1.098z"/> - <path d="M289.433 317.827c0-.94-1.686-.807-1.873.146-.12.614.073.76.86.647.56-.08 1.013-.433 1.013-.793zm74.7-6.614c.174-.9-1.08-1.5-1.74-.84-.66.66-.053 1.914.84 1.74.414-.08.82-.486.9-.9zM247.88 302.06c1.173-1.007 1.187-1.073.68-3.287-.72-3.1-.673-3.433.507-3.726 1.493-.38 5.286 1.653 6.126 3.28.654 1.26.634 1.346-.473 2.373-1.193 1.1-1.187 2.387.007 2.387.986 0 3.713-2.58 3.713-3.507 0-1.287-3.027-4.327-5.42-5.44-1.48-.693-2.96-1.013-4.673-1.02-3.067 0-3.48.66-2.654 4.227.974 4.18-.346 4.746-3.713 1.593-2.5-2.34-3.487-4.773-3.473-8.607.006-4.113 1.58-6.146 5.126-6.626 2.354-.314 2.294-.867-.126-1.227-3.534-.533-6.52 1.827-7.654 6.04-1.26 4.673 1.627 10.367 6.734 13.3 2.673 1.533 3.74 1.58 5.293.24zm139.227-5.127c.286-.286.52-.933.52-1.433s.486-1.573 1.08-2.38c.6-.807 1.086-1.633 1.086-1.833 0-.82-1.353-.794-2.42.053-1.093.853-1.913.873-1.913.04 0-.207.52-.633 1.16-.947 1.587-.773 1.72-1.54.38-2.153-1.72-.78-3.447.647-3.627 3-.113 1.573.014 1.847 1.227 2.56 1.107.653 1.313 1 1.127 1.933-.32 1.62.353 2.187 1.38 1.16zm13.086-1.48c.96-.86 1.74-1.84 1.74-2.166 0-.327.827-1.194 1.84-1.92 2.874-2.067 3.507-4.154 2.22-7.36-.5-1.26-2.073-3-5.493-6.08-2.627-2.374-5.047-4.314-5.36-4.314-.933 0-.767 3.434.18 3.734 1.707.546 2.74 1.246 5.427 3.666 3.12 2.82 4.56 5.454 3.773 6.92-.753 1.42-1.753.98-4.507-1.973-1.446-1.553-2.88-2.82-3.173-2.82-.32.007-.547.567-.547 1.353 0 .987.527 1.927 1.954 3.514 2.326 2.586 2.553 4.14.806 5.513-.626.493-1.273.9-1.433.9-.153 0-.667-.773-1.133-1.713-.974-1.974-6.927-8.26-7.82-8.26-.407 0-.607.506-.607 1.506 0 1.207.24 1.634 1.2 2.127 1.18.613 4.1 3.553 7.033 7.1.84 1.013 1.667 1.833 1.847 1.84.173 0 1.1-.707 2.053-1.567zm5.84-16.713c-.386-1.247-8.373-9.467-9.193-9.467-.427 0-.56.507-.46 1.814.113 1.586.287 1.86 1.38 2.146.68.18 2.787 1.834 4.673 3.667 1.88 1.833 3.534 3.227 3.667 3.087.133-.134.107-.694-.067-1.247zm-47.7 92.52a1.187 1.088 0 1 1-2.374 0 1.187 1.088 0 1 1 2.374 0zm4.194-1.4a1.187 1.088 0 1 1-2.374 0 1.187 1.088 0 1 1 2.374 0z"/> - </g> -</svg> diff --git a/img/flags/4x3/bo.svg b/img/flags/4x3/bo.svg deleted file mode 100644 index c443ec5..0000000 --- a/img/flags/4x3/bo.svg +++ /dev/null @@ -1,686 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" height="480" width="640" viewBox="0 0 640 480"> - <path fill="#007934" d="M0 0h640v480H0z"/> - <path fill="#ffe000" d="M0 0h640v320H0z"/> - <path fill="#d52b1e" d="M0 0h640v160H0z"/> - <path d="M368.579 210.711c-.577.556-97.586 97.453-98.012 97.875a91.75 91.75 0 0 0-1.297-.972c.4-.408 97.455-97.259 98.023-97.846-.249-.29 1.746 1.222 1.286.943z" fill="#a05a2c" stroke="#000" stroke-width=".123"/> - <path d="M374.685 204.532c-.359.687-1.425 2.451-1.01 3.752-.791-.512-1.188-.899-1.947-1.46.51.898.358 1.42-.129 1.744-.318.42-1.407.322-2.103.19.696.425 1.468.864 2.434.958.966.094 1.302.04 1.89.098-.586.315-2.127.83-3.202.997-.538.084-1.58.179-2.04-.1-.576.556-1.853-.356-1.285-.943-.249-.29-.278-.755-.341-1.37-.071-.695.08-1.895.662-3.021.09.563.267 1.157.484 1.697.214.53.664.962 1.11 1.43-.26-.487-.417-1.224.097-1.756.513-.532 1.258-.533 1.958-.256-.623-.482-1.097-.771-1.85-1.32.78-.006 3.269-.964 4.09-1.456.823-.492 3.432-2.557 4.897-3.805-1.208 1.395-3.363 3.949-3.715 4.621z" fill="#e7e7e7" stroke="#000" stroke-width=".123"/> - <path d="M387.026 222.785c-.733.398-125.133 70.613-125.678 70.918-.24-.323-.704-.947-.934-1.241.514-.298 124.945-70.457 125.68-70.888-.146-.337 1.285 1.587.932 1.21z" fill="#a05a2c" stroke="#000" stroke-width=".123"/> - <path d="M394.883 218.288c-.566.576-2.158 2.02-2.177 3.368-.597-.679-.854-1.145-1.403-1.863.202.983-.112 1.448-.684 1.645-.44.329-1.457-.023-2.083-.314.533.573 1.133 1.178 2.031 1.496.899.319 1.239.347 1.785.541-.664.164-2.31.295-3.398.202-.543-.047-1.575-.202-1.928-.578-.733.398-1.667-.78-.932-1.211-.146-.337-.025-.791.112-1.398.155-.684.687-1.802 1.608-2.747a7.777 7.777 0 0 0-.08 1.746c.035.56.329 1.081.606 1.636-.093-.529-.006-1.274.658-1.664.664-.39 1.381-.215 1.965.217-.443-.611-.807-1-1.354-1.706.751.178 3.452-.155 4.4-.433.948-.279 4.12-1.648 5.93-2.5-1.61 1.055-4.502 3-5.056 3.563z" fill="#e7e7e7" stroke="#000" stroke-width=".123"/> - <path d="M376.324 217.483c-.662.482-112.453 84.859-112.944 85.226-.29-.291-.85-.854-1.126-1.117.461-.356 112.292-84.683 112.95-85.197-.2-.316 1.53 1.42 1.12 1.088z" fill="#a05a2c" stroke="#000" stroke-width=".123"/> - <path d="M383.374 212.093c-.467.637-1.809 2.257-1.609 3.595-.7-.601-1.031-1.032-1.692-1.678.36.95.125 1.448-.41 1.71-.383.38-1.446.152-2.114-.062.62.504 1.314 1.031 2.255 1.24.94.208 1.282.195 1.855.322-.63.242-2.24.568-3.332.605-.546.019-1.593-.01-2.003-.342-.662.482-1.778-.574-1.12-1.088-.2-.316-.153-.78-.116-1.397.042-.697.387-1.867 1.146-2.912a7.821 7.821 0 0 0 .205 1.738c.125.55.5 1.032.865 1.548-.177-.513-.213-1.262.382-1.727.594-.465 1.333-.377 1.981-.02-.538-.552-.961-.894-1.617-1.527.772.086 3.393-.565 4.286-.954.894-.39 3.813-2.123 5.466-3.184-1.422 1.238-3.971 3.51-4.428 4.133z" fill="#e7e7e7" stroke="#000" stroke-width=".123"/> - <path d="M271.421 210.711c.577.556 97.586 97.453 98.012 97.875.334-.254.981-.744 1.297-.972-.4-.408-97.455-97.259-98.023-97.846.249-.29-1.746 1.222-1.286.943z" fill="#a05a2c" stroke="#000" stroke-width=".123"/> - <path d="M265.315 204.532c.359.687 1.425 2.451 1.01 3.752.791-.512 1.188-.899 1.947-1.46-.51.898-.358 1.42.129 1.744.318.42 1.407.322 2.103.19-.696.425-1.468.864-2.434.958-.966.094-1.302.04-1.89.098.586.315 2.127.83 3.202.997.538.084 1.58.179 2.04-.1.576.556 1.853-.356 1.285-.943.249-.29.278-.755.341-1.37.071-.695-.08-1.895-.662-3.021a8.013 8.013 0 0 1-.484 1.697c-.214.53-.664.962-1.11 1.43.26-.487.417-1.224-.097-1.756-.513-.532-1.258-.533-1.958-.256.623-.482 1.097-.771 1.85-1.32-.78-.006-3.269-.964-4.09-1.456-.823-.492-3.432-2.557-4.897-3.805 1.208 1.395 3.363 3.949 3.715 4.621z" fill="#e7e7e7" stroke="#000" stroke-width=".123"/> - <path d="M252.974 222.785c.733.398 125.133 70.613 125.678 70.918.24-.323.704-.947.934-1.241-.514-.298-124.945-70.457-125.68-70.888.146-.337-1.285 1.587-.932 1.21z" fill="#a05a2c" stroke="#000" stroke-width=".123"/> - <path d="M245.117 218.288c.566.576 2.158 2.02 2.177 3.368.597-.679.854-1.145 1.403-1.863-.202.983.112 1.448.684 1.645.44.329 1.457-.023 2.083-.314-.533.573-1.133 1.178-2.031 1.496-.899.319-1.239.347-1.785.541.664.164 2.31.295 3.398.202.543-.047 1.575-.202 1.928-.578.733.398 1.667-.78.932-1.211.146-.337.025-.791-.112-1.398-.155-.684-.687-1.802-1.608-2.747.096.562.116 1.176.08 1.746-.035.56-.329 1.081-.606 1.636.093-.529.006-1.274-.658-1.664-.664-.39-1.381-.215-1.965.217.443-.611.807-1 1.354-1.706-.751.178-3.452-.155-4.4-.433-.948-.279-4.12-1.648-5.93-2.5 1.61 1.055 4.502 3 5.056 3.563z" fill="#e7e7e7" stroke="#000" stroke-width=".123"/> - <path d="M263.676 217.483c.662.482 112.453 84.859 112.944 85.226.29-.291.85-.854 1.126-1.117-.461-.356-112.292-84.683-112.95-85.197.2-.316-1.53 1.42-1.12 1.088z" fill="#a05a2c" stroke="#000" stroke-width=".123"/> - <path d="M256.626 212.093c.467.637 1.809 2.257 1.609 3.595.7-.601 1.031-1.032 1.692-1.678-.36.95-.125 1.448.41 1.71.383.38 1.446.152 2.114-.062-.62.504-1.314 1.031-2.255 1.24-.94.208-1.282.195-1.855.322.63.242 2.24.568 3.332.605.546.019 1.593-.01 2.003-.342.662.482 1.778-.574 1.12-1.088.2-.316.153-.78.116-1.397-.042-.697-.387-1.867-1.146-2.912a7.821 7.821 0 0 1-.205 1.738c-.125.55-.5 1.032-.865 1.548.177-.513.213-1.262-.382-1.727-.594-.465-1.333-.377-1.981-.02.538-.552.961-.894 1.617-1.527-.772.086-3.393-.565-4.286-.954-.894-.39-3.813-2.123-5.466-3.184 1.422 1.238 3.971 3.51 4.428 4.133z" fill="#e7e7e7" stroke="#000" stroke-width=".123"/> - <path d="M300.137 283.455c3.917-2.668 15.088-4.065 16.66-3.625-7.94 6.048-15.968 6.269-16.66 3.625z" fill="#00e519" stroke="#000" stroke-width=".123"/> - <path d="M300.176 283.47c.692 2.644 8.68 2.408 16.604-3.606-8.484 2.567-15.65 4.053-16.604 3.607z" fill="#ffe533" stroke="#000" stroke-width=".123"/> - <path d="M300.176 283.47c.692 2.644 8.68 2.408 16.604-3.606-8.484 2.567-15.65 4.053-16.604 3.607z" fill="none" stroke="#000" stroke-width=".123" stroke-linecap="round"/> - <path d="M300.154 283.422c4.17-2.837 15.677-3.922 16.69-3.636-7.953 6.024-15.998 6.28-16.69 3.636z" fill="none" stroke="#000" stroke-width=".123"/> - <path d="M347.561 220.164l-25.466 52.32c-1.265.98-2.314-.335-2.674-.189-1.527 1.713-3.63 2.067-4.073 2.467-1.77 2.412-.796 4.371-.69 4.534 1.325 1.787-1.566 3.527-1.45 4.08-.567 1.002-2.7.775-3.14 1.99-.094-.138-4.334 8.323-4.78 9.23-.633.49-3.647 6.126-3.647 6.126-2.113-.036-10.234-5.217-10.393-5.137 4.563-7.3 15.506-18.501 15.284-19.216 3.076-5.207 7.988-10.849 10.101-10.813 2.997-1.577 4.458-5.633 3.876-6.567 2.302-.054 3.557-1.424 3.717-1.505l18.798-37.572c1.57-.517 1.334.124 1.837 1.028 0 0 1.001-1.203.936-1.35.888-.433 1.753.184 1.764.574z" fill="#a05a2c" stroke="#000" stroke-width=".123"/> - <path d="M348.545 208.75c-.487 1.033.268 1.037.528 1.177l1.08.292c1.222.02 1.866.652 1.877 1.043l-29.935 61.223c-1.265.98-2.474-.256-2.863-.1l20.53-41.83s7.9-14.703 9.97-18.79l-2.716-1.161c-.843-.2-1.096-.765-.725-1.62l12.572-21.617-10.135 20.985-.183.397" fill="#cce5e5" stroke="#000" stroke-width=".123"/> - <path d="M348.545 208.75c-.487 1.033.268 1.037.528 1.177l1.08.292c1.222.02 1.866.652 1.877 1.043l-29.935 61.223c-1.265.98-2.474-.256-2.863-.1l20.53-41.83s7.9-14.703 9.97-18.79l-2.716-1.161c-.843-.2-1.096-.765-.725-1.62l12.572-21.617-10.135 20.985-.183.397" fill="#e7e7e7" stroke="#000" stroke-width=".123"/> - <path d="M308.803 272.44c-2.94-.13-4.589 2.045-2.669 4.65m1.378-2.339c-1.055.573-1.722-.334-1.722-.334m15.251-13.07c-1.554 5.606-4.38 9.323-4.948 10.467-2.16 2.203-3.948 7.211-3.62 8.088l-8.101 13.307" fill="none" stroke="#000" stroke-width=".123"/> - <path d="M321.96 272.698c-1.322-.466-5.702-4.54-10.003-3.829-3.277 3.809-5.24 7.692-5.823 8.222 4 3.299 6.634 4.937 7.61 5.433.638-.407.985-1.535.985-1.535.832-.921-.19-1.739-.19-1.739.112-2.458 1.9-4.172 3.715-4.29 2.277-.187 1.637-.37 1.927-.381 1.044-.597 1.78-1.881 1.78-1.881z" fill="#cce5e5" stroke="#000" stroke-width=".123"/> - <path d="M321.96 272.698c-1.322-.466-5.702-4.54-10.003-3.829-3.277 3.809-5.24 7.692-5.823 8.222 4 3.299 6.634 4.937 7.61 5.433.638-.407.985-1.535.985-1.535.832-.921-.19-1.739-.19-1.739.112-2.458 1.9-4.172 3.715-4.29 2.277-.187 1.637-.37 1.927-.381 1.044-.597 1.78-1.881 1.78-1.881z" fill="none" stroke="#000" stroke-width=".123"/> - <path d="M317.606 272.78c-2.016-.04-4.077.92-4.751 2.633l4.751-2.633" fill="#cce5e5" stroke="#000" stroke-width=".123"/> - <path d="M317.606 272.78c-2.016-.04-4.077.92-4.751 2.633m-3.597.677c.187.417.712.638 1.198.479.485-.16.73-.635.544-1.052-.187-.417-.729-.604-1.214-.444-.486.16-.714.6-.528 1.017zm2.502-3.413c.187.417.741.629 1.226.47.486-.16.704-.626.517-1.043-.186-.417-.701-.614-1.186-.454-.486.16-.743.61-.557 1.027z" fill="none" stroke="#000" stroke-width=".123"/> - <path d="M345.309 226.113c.8-.264 1.15-1.167.765-2.026l-4.69-1.693s-.548.096-1.018.729c-.46.658.169 1.183.169 1.183l4.774 1.807" fill="#cce5e5" stroke="#000" stroke-width=".123"/> - <path d="M345.309 226.113c.8-.264 1.15-1.167.765-2.026l-4.69-1.693s-.548.096-1.018.729c-.46.658.169 1.183.169 1.183l4.774 1.807" fill="none" stroke="#000" stroke-width=".123"/> - <path d="M294.53 286.058c3.862-2.726 15.003-4.29 16.585-3.874-7.818 6.166-15.84 6.507-16.585 3.874z" fill="#00e519" stroke="#000" stroke-width=".123"/> - <path d="M294.57 286.073c.745 2.633 8.727 2.277 16.527-3.854-8.43 2.693-15.565 4.286-16.527 3.854z" fill="#ffe533" stroke="#000" stroke-width=".123"/> - <path d="M294.57 286.073c.745 2.633 8.727 2.277 16.527-3.854-8.43 2.693-15.565 4.286-16.527 3.854z" fill="none" stroke="#000" stroke-width=".123" stroke-linecap="round"/> - <path d="M294.547 286.025c4.111-2.899 15.594-4.156 16.613-3.885-7.83 6.142-15.868 6.517-16.613 3.885z" fill="none" stroke="#000" stroke-width=".123"/> - <path d="M340.659 222.067L316.26 274.76c-1.245.998-2.32-.302-2.677-.15-1.492 1.736-3.587 2.121-4.022 2.528-1.722 2.438-.707 4.382-.598 4.543 1.361 1.767-1.494 3.55-1.366 4.101-.547 1.011-2.685.816-3.099 2.037-.097-.136-4.165 8.387-4.592 9.3-.623.5-3.522 6.18-3.522 6.18-2.113-.005-10.338-5.063-10.496-4.98 4.414-7.368 15.128-18.731 14.89-19.443 2.97-5.252 7.767-10.966 9.88-10.962 2.965-1.622 4.343-5.699 3.742-6.624 2.3-.089 3.527-1.477 3.686-1.56l18.03-37.848c1.56-.54 1.336.104 1.858 1 0 0 .977-1.217.908-1.363.879-.447 1.756.157 1.775.547z" fill="#a05a2c" stroke="#000" stroke-width=".123"/> - <path d="M340.659 222.067L316.26 274.76c-1.245.998-2.32-.302-2.677-.15-1.492 1.736-3.587 2.121-4.022 2.528-1.722 2.438-.707 4.382-.598 4.543 1.361 1.767-1.494 3.55-1.366 4.101-.547 1.011-2.685.816-3.099 2.037-.097-.136-4.165 8.387-4.592 9.3-.623.5-3.522 6.18-3.522 6.18-2.113-.005-10.338-5.063-10.496-4.98 4.414-7.368 15.128-18.731 14.89-19.443 2.97-5.252 7.767-10.966 9.88-10.962 2.965-1.622 4.343-5.699 3.742-6.624 2.3-.089 3.527-1.477 3.686-1.56l18.03-37.848c1.56-.54 1.336.104 1.858 1 0 0 .977-1.217.908-1.363.879-.447 1.756.157 1.775.547z" fill="none" stroke="#000" stroke-width=".123"/> - <path d="M341.41 210.639c-.466 1.04.29 1.034.552 1.17l1.086.276c1.222 0 1.879.624 1.898 1.014l-28.685 61.662c-1.245.998-2.479-.218-2.864-.056l19.675-42.131s7.6-14.82 9.586-18.937l-2.739-1.121c-.847-.188-1.11-.748-.757-1.608l12.13-21.802-9.707 21.133-.175.4" fill="#cce5e5" stroke="#000" stroke-width=".123"/> - <path d="M341.41 210.639c-.466 1.04.29 1.034.552 1.17l1.086.276c1.222 0 1.879.624 1.898 1.014l-28.685 61.662c-1.245.998-2.479-.218-2.864-.056l19.675-42.131s7.6-14.82 9.586-18.937l-2.739-1.121c-.847-.188-1.11-.748-.757-1.608l12.13-21.802-9.707 21.133-.175.4" fill="#e7e7e7" stroke="#000" stroke-width=".123"/> - <path d="M302.97 274.915c-2.942-.086-4.546 2.114-2.573 4.69m1.33-2.36c-1.043.588-1.729-.308-1.729-.308m14.983-13.296c-1.44 5.628-4.189 9.387-4.734 10.54-2.115 2.234-3.801 7.268-3.456 8.14l-7.828 13.426" fill="none" stroke="#000" stroke-width=".123"/> - <path d="M316.131 274.976c-1.331-.446-5.794-4.455-10.08-3.679-3.198 3.857-5.083 7.77-5.654 8.308 4.067 3.239 6.734 4.838 7.72 5.318.628-.416.952-1.548.952-1.548.814-.934-.224-1.737-.224-1.737.062-2.459 1.815-4.2 3.627-4.346 2.272-.22 1.629-.394 1.918-.409 1.032-.612 1.741-1.907 1.741-1.907z" fill="#cce5e5" stroke="#000" stroke-width=".123"/> - <path d="M316.131 274.976c-1.331-.446-5.794-4.455-10.08-3.679-3.198 3.857-5.083 7.77-5.654 8.308 4.067 3.239 6.734 4.838 7.72 5.318.628-.416.952-1.548.952-1.548.814-.934-.224-1.737-.224-1.737.062-2.459 1.815-4.2 3.627-4.346 2.272-.22 1.629-.394 1.918-.409 1.032-.612 1.741-1.907 1.741-1.907z" fill="none" stroke="#000" stroke-width=".123"/> - <path d="M311.78 275.123c-2.017-.01-4.058.98-4.698 2.704l4.697-2.704" fill="#cce5e5" stroke="#000" stroke-width=".123"/> - <path d="M311.78 275.123c-2.017-.01-4.058.98-4.698 2.704m-3.582.73c.195.415.724.628 1.207.461.482-.167.718-.645.523-1.06-.195-.413-.741-.592-1.223-.425-.483.167-.702.611-.507 1.025zm2.432-3.45c.196.415.754.618 1.236.451.482-.166.69-.635.495-1.05-.195-.413-.714-.602-1.195-.435-.482.167-.73.621-.536 1.035z" fill="none" stroke="#000" stroke-width=".123"/> - <path d="M338.528 228.048c.794-.275 1.125-1.183.724-2.036l-4.725-1.623s-.545.104-1.002.744c-.446.664.193 1.18.193 1.18l4.81 1.735" fill="#cce5e5" stroke="#000" stroke-width=".123"/> - <path d="M338.528 228.048c.794-.275 1.125-1.183.724-2.036l-4.725-1.623s-.545.104-1.002.744c-.446.664.193 1.18.193 1.18l4.81 1.735" fill="none" stroke="#000" stroke-width=".123"/> - <path d="M340.62 283.281c-3.957-2.695-15.241-4.106-16.83-3.662 8.022 6.109 16.13 6.332 16.83 3.662z" fill="#00e519" stroke="#000" stroke-width=".123"/> - <path d="M340.58 283.297c-.7 2.67-8.768 2.43-16.772-3.643 8.57 2.592 15.809 4.093 16.772 3.643z" fill="#ffe533" stroke="#000" stroke-width=".123"/> - <path d="M340.58 283.297c-.7 2.67-8.768 2.43-16.772-3.643 8.57 2.592 15.809 4.093 16.772 3.643z" fill="none" stroke="#000" stroke-width=".123" stroke-linecap="round"/> - <path d="M340.602 283.247c-4.212-2.865-15.835-3.96-16.859-3.672 8.034 6.084 16.16 6.342 16.859 3.672z" fill="none" stroke="#000" stroke-width=".123"/> - <path d="M292.716 219.35l25.724 52.85c1.278.99 2.337-.34 2.7-.192 1.543 1.73 3.666 2.088 4.114 2.492 1.79 2.436.804 4.415.698 4.58-1.339 1.805 1.582 3.562 1.464 4.12.573 1.013 2.728.784 3.171 2.01.096-.138 4.38 8.408 4.83 9.324.639.495 3.684 6.188 3.684 6.188 2.134-.036 10.336-5.27 10.497-5.188-4.61-7.374-15.663-18.689-15.438-19.411-3.107-5.26-8.07-10.958-10.204-10.922-3.027-1.593-4.503-5.69-3.914-6.634-2.326-.054-3.593-1.438-3.755-1.52l-18.989-37.951c-1.586-.522-1.346.125-1.854 1.039 0 0-1.012-1.215-.946-1.364-.897-.437-1.77.185-1.782.58z" fill="#a05a2c" stroke="#000" stroke-width=".123"/> - <path d="M291.722 207.82c.492 1.044-.271 1.049-.533 1.19l-1.092.295c-1.233.02-1.884.659-1.895 1.054l30.238 61.84c1.278.99 2.499-.257 2.891-.1l-20.737-42.252s-7.98-14.852-10.07-18.98l2.742-1.173c.852-.203 1.107-.773.733-1.636l-12.7-21.835 10.238 21.196.185.401" fill="#cce5e5" stroke="#000" stroke-width=".123"/> - <path d="M291.722 207.82c.492 1.044-.271 1.049-.533 1.19l-1.092.295c-1.233.02-1.884.659-1.895 1.054l30.238 61.84c1.278.99 2.499-.257 2.891-.1l-20.737-42.252s-7.98-14.852-10.07-18.98l2.742-1.173c.852-.203 1.107-.773.733-1.636l-12.7-21.835 10.238 21.196.185.401" fill="#e7e7e7" stroke="#000" stroke-width=".123"/> - <path d="M331.865 272.154c2.971-.13 4.636 2.067 2.697 4.698m-1.392-2.363c1.065.578 1.74-.337 1.74-.337m-15.406-13.202c1.57 5.663 4.424 9.417 4.998 10.572 2.182 2.226 3.988 7.284 3.657 8.17l8.183 13.44" fill="none" stroke="#000" stroke-width=".123"/> - <path d="M318.575 272.415c1.336-.47 5.76-4.587 10.105-3.868 3.31 3.847 5.294 7.77 5.882 8.305-4.041 3.333-6.702 4.988-7.688 5.488-.643-.41-.994-1.55-.994-1.55-.84-.93.191-1.757.191-1.757-.113-2.482-1.92-4.214-3.752-4.334-2.3-.188-1.654-.374-1.946-.384-1.054-.603-1.798-1.9-1.798-1.9z" fill="#cce5e5" stroke="#000" stroke-width=".123"/> - <path d="M318.575 272.415c1.336-.47 5.76-4.587 10.105-3.868 3.31 3.847 5.294 7.77 5.882 8.305-4.041 3.333-6.702 4.988-7.688 5.488-.643-.41-.994-1.55-.994-1.55-.84-.93.191-1.757.191-1.757-.113-2.482-1.92-4.214-3.752-4.334-2.3-.188-1.654-.374-1.946-.384-1.054-.603-1.798-1.9-1.798-1.9z" fill="none" stroke="#000" stroke-width=".123"/> - <path d="M322.974 272.498c2.036-.04 4.118.929 4.8 2.66l-4.8-2.66" fill="#cce5e5" stroke="#000" stroke-width=".123"/> - <path d="M322.974 272.498c2.036-.04 4.118.929 4.8 2.66m3.632.684c-.189.421-.719.644-1.21.483-.49-.162-.738-.641-.55-1.063.189-.42.737-.61 1.227-.448.49.161.721.607.533 1.028zm-2.528-3.448c-.188.421-.748.635-1.238.474-.49-.162-.71-.632-.522-1.053.189-.421.708-.62 1.199-.458.49.161.75.616.561 1.037z" fill="none" stroke="#000" stroke-width=".123"/> - <path d="M294.991 225.36c-.808-.267-1.161-1.179-.773-2.047l4.738-1.71s.553.097 1.028.736c.464.665-.17 1.196-.17 1.196l-4.823 1.824" fill="#cce5e5" stroke="#000" stroke-width=".123"/> - <path d="M294.991 225.36c-.808-.267-1.161-1.179-.773-2.047l4.738-1.71s.553.097 1.028.736c.464.665-.17 1.196-.17 1.196l-4.823 1.824" fill="none" stroke="#000" stroke-width=".123"/> - <path d="M345.634 286.058c-3.862-2.726-15.003-4.29-16.585-3.874 7.818 6.166 15.84 6.507 16.585 3.874z" fill="#00e519" stroke="#000" stroke-width=".123"/> - <path d="M345.594 286.073c-.745 2.633-8.727 2.277-16.528-3.854 8.431 2.693 15.566 4.286 16.528 3.854z" fill="#ffe533" stroke="#000" stroke-width=".123"/> - <path d="M345.594 286.073c-.745 2.633-8.727 2.277-16.528-3.854 8.431 2.693 15.566 4.286 16.528 3.854z" fill="none" stroke="#000" stroke-width=".123" stroke-linecap="round"/> - <path d="M345.617 286.025c-4.111-2.899-15.595-4.156-16.613-3.885 7.83 6.142 15.868 6.517 16.613 3.885z" fill="none" stroke="#000" stroke-width=".123"/> - <path d="M299.505 222.067l24.398 52.694c1.245.998 2.32-.302 2.677-.15 1.491 1.736 3.586 2.121 4.022 2.528 1.722 2.438.706 4.382.598 4.543-1.362 1.767 1.494 3.55 1.366 4.101.547 1.011 2.684.816 3.099 2.037.097-.136 4.165 8.387 4.592 9.3.623.5 3.522 6.18 3.522 6.18 2.113-.005 10.338-5.063 10.496-4.98-4.414-7.368-15.128-18.731-14.89-19.443-2.97-5.252-7.767-10.966-9.88-10.962-2.965-1.622-4.343-5.699-3.742-6.624-2.301-.089-3.527-1.477-3.686-1.56l-18.03-37.848c-1.56-.54-1.336.104-1.858 1 0 0-.977-1.217-.908-1.363-.879-.447-1.756.157-1.776.547z" fill="#a05a2c" stroke="#000" stroke-width=".123"/> - <path d="M299.505 222.067l24.398 52.694c1.245.998 2.32-.302 2.677-.15 1.491 1.736 3.586 2.121 4.022 2.528 1.722 2.438.706 4.382.598 4.543-1.362 1.767 1.494 3.55 1.366 4.101.547 1.011 2.684.816 3.099 2.037.097-.136 4.165 8.387 4.592 9.3.623.5 3.522 6.18 3.522 6.18 2.113-.005 10.338-5.063 10.496-4.98-4.414-7.368-15.128-18.731-14.89-19.443-2.97-5.252-7.767-10.966-9.88-10.962-2.965-1.622-4.343-5.699-3.742-6.624-2.301-.089-3.527-1.477-3.686-1.56l-18.03-37.848c-1.56-.54-1.336.104-1.858 1 0 0-.977-1.217-.908-1.363-.879-.447-1.756.157-1.776.547z" fill="none" stroke="#000" stroke-width=".123"/> - <path d="M298.753 210.639c.467 1.04-.289 1.034-.55 1.17l-1.088.276c-1.221 0-1.878.624-1.897 1.014l28.685 61.662c1.245.998 2.478-.218 2.864-.056l-19.675-42.131s-7.6-14.82-9.586-18.937l2.739-1.121c.847-.188 1.11-.748.757-1.608l-12.13-21.802 9.707 21.133.174.4" fill="#cce5e5" stroke="#000" stroke-width=".123"/> - <path d="M298.753 210.639c.467 1.04-.289 1.034-.55 1.17l-1.088.276c-1.221 0-1.878.624-1.897 1.014l28.685 61.662c1.245.998 2.478-.218 2.864-.056l-19.675-42.131s-7.6-14.82-9.586-18.937l2.739-1.121c.847-.188 1.11-.748.757-1.608l-12.13-21.802 9.707 21.133.174.4" fill="#e7e7e7" stroke="#000" stroke-width=".123"/> - <path d="M337.193 274.915c2.943-.086 4.547 2.114 2.574 4.69m-1.33-2.36c1.043.588 1.729-.308 1.729-.308m-14.983-13.296c1.44 5.628 4.189 9.387 4.734 10.54 2.115 2.234 3.801 7.268 3.456 8.14l7.828 13.426" fill="none" stroke="#000" stroke-width=".123"/> - <path d="M324.032 274.976c1.332-.446 5.795-4.455 10.08-3.679 3.199 3.857 5.084 7.77 5.655 8.308-4.067 3.239-6.734 4.838-7.72 5.318-.628-.416-.952-1.548-.952-1.548-.814-.934.224-1.737.224-1.737-.062-2.459-1.815-4.2-3.627-4.346-2.272-.22-1.63-.394-1.919-.409-1.03-.612-1.74-1.907-1.74-1.907z" fill="#cce5e5" stroke="#000" stroke-width=".123"/> - <path d="M324.032 274.976c1.332-.446 5.795-4.455 10.08-3.679 3.199 3.857 5.084 7.77 5.655 8.308-4.067 3.239-6.734 4.838-7.72 5.318-.628-.416-.952-1.548-.952-1.548-.814-.934.224-1.737.224-1.737-.062-2.459-1.815-4.2-3.627-4.346-2.272-.22-1.63-.394-1.919-.409-1.03-.612-1.74-1.907-1.74-1.907z" fill="none" stroke="#000" stroke-width=".123"/> - <path d="M328.385 275.123c2.016-.01 4.057.98 4.697 2.704l-4.697-2.704" fill="#cce5e5" stroke="#000" stroke-width=".123"/> - <path d="M328.385 275.123c2.016-.01 4.057.98 4.697 2.704m3.582.73c-.195.415-.725.628-1.207.461-.482-.167-.718-.645-.523-1.06.195-.413.741-.592 1.223-.425.483.167.702.611.507 1.025zm-2.433-3.45c-.195.415-.753.618-1.235.451-.482-.166-.69-.635-.495-1.05.195-.413.713-.602 1.195-.435.482.167.73.621.535 1.035z" fill="none" stroke="#000" stroke-width=".123"/> - <path d="M301.636 228.048c-.794-.275-1.126-1.183-.724-2.036l4.725-1.623s.545.104 1.002.744c.446.664-.193 1.18-.193 1.18l-4.81 1.735" fill="#cce5e5" stroke="#000" stroke-width=".123"/> - <path d="M301.636 228.048c-.794-.275-1.126-1.183-.724-2.036l4.725-1.623s.545.104 1.002.744c.446.664-.193 1.18-.193 1.18l-4.81 1.735" fill="none" stroke="#000" stroke-width=".123"/> - <path d="M315.25 250.666c.522-.58 35.137-37.479 35.536-37.91a97.442 97.442 0 0 1-1.364-.936c-.388.406-35.094 37.343-35.654 37.922-.379-.163 1.89 1.267 1.482.924z" fill="#a05a2c" stroke="#000" stroke-width=".123"/> - <path d="M349.812 212.207c-1.257-1.023-3.447-2.235-4.987-1.838-.519-2.146 2.504-4.384 3.77-4.057-.316 2.353 3.186 3.845 3.12 3.852l-1.903 2.043z" fill="#e7e7e7" fill-rule="evenodd" stroke="#000" stroke-width=".123"/> - <path d="M352.105 210.406c.979.768 1.399.828 2.79 1.577 1.366.734 3.244-1.115 4.114-1.684 0 0 .93 3.4-1.133 5.64-2.063 2.242-4.555 2.717-6.523 2.058 0 0 2.592-2.54 1.523-3.642-1.036-1.069-1.41-1.156-2.444-1.833" fill="#e7e7e7" stroke="#000" stroke-width=".123"/> - <path transform="matrix(-.67726 .73575 -.82314 -.56784 0 0)" fill="#e7e7e7" stroke="#000" stroke-width=".124" d="M-27.732-406.526h4.138v2.264h-4.138z"/> - <path d="M308.168 290.315l-.922 9.039s1.399-1.712 1.735-2.281c.336-.57 1.549-2.09 1.808-7.36 0 0-.947-2.912-1.393-2.906-.741-.366-1.228 3.508-1.228 3.508zm2.223-20.15s-2.427 14.512-2.673 15.832c0 .451 1.232 1.648 2.122-1.158l1.466-10.551s-.66-2.811-.915-4.124z" fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".123"/> - <path d="M315.877 284.565c-.592-.744-1.332-1.673-1.405-2.048l-.382 3.202s2.02 1.475 1.731 4.3l.392-.57.227-1.131s.415-1.886.419-3.015c0 0-.427-.182-.982-.738z" fill="#d52b1e" fill-rule="evenodd" stroke="#000" stroke-width=".123"/> - <path d="M307.246 299.352s3.353-2.868 3.543-9.64l.415-1.886s.07 1.504.742.366c.655-1.514.622-2.83.622-2.83s1.213-1.52 1.578.354c0 0-1.126 8.854-1.203 9.607a51.406 51.406 0 0 1-.267 2.072s-.665-1.119-1.337.019c-.729 1.138-1.885 2.659-4.093 1.938zm4.06-25.065l-1.466 10.55s1.168.548 1.364 2.99c.108 1.126.555.555.742.365.244-.756.063-2.257.063-2.257l.638-7.343s-1.27-3.366-1.341-4.305z" fill="#ffe000" fill-rule="evenodd" stroke="#000" stroke-width=".123"/> - <path d="M310.145 298.749l-.213 2.635s1.003-.014 1.675-1.152c.784-1.14 1.068-2.835 1.068-2.835s-.776-1.118-1.337.018c-.542.948-1.193 1.334-1.193 1.334zm1.8-10.556c.542-.948.715-2.642.623-2.829l-.682.572c.22 1.125.06 2.257.06 2.257z" fill="#ffe000" fill-rule="evenodd" stroke="#000" stroke-width=".123"/> - <path d="M315.247 287.13a4.4 4.4 0 0 0-1.24-1.486l-1.488 11.867s-.419 3.014-2.279 3.793c0 0 1.06 10.327 4.414 7.459.484-.383 1.09-3.588.891-5.466-.234-2.065-.782-4.878-.834-6.005-.032-1.316.154-2.649.476-4.722.133-.753.523-2.406.598-2.595.187-.191-.04-1.723-.538-2.844z" fill="#d52b1e" fill-rule="evenodd" stroke="#000" stroke-width=".123"/> - <path d="M316.86 285.306s.906.928 1.073.925c.223-.003-2.353 19.352-2.353 19.352s.097-2.029-.655-5.97c-.61-3.2.177-7.498.866-9.56 0 0 .813-.606 1.068-4.747z" fill="#d52b1e" fill-rule="evenodd" stroke="#000" stroke-width=".123"/> - <path d="M312.572 278.786s-.502 5.46-.619 7.154c0 0 1.699-2.469 2.137-.218l.382-3.202s-1.478-2.424-1.9-3.734z" fill="#f7e214" fill-rule="evenodd" stroke="#000" stroke-width=".123"/> - <path d="M311.27 287.81s-.557-6.116-3.52-1.792c-.114.002-.271 2.43-.101 3.01.093.778.913 1.74 1.255 2.318.648.964 1.34-.214 1.34-.214s.674-.982 1.027-3.322z" fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".123"/> - <path d="M287.8 236.938c-.11-3.48-1.205-9.27-1.26-13.239l-12.006-12.234s-1.482 9.912-5.84 15.58l19.105 9.9" fill="#d52b1e" stroke="#000" stroke-width=".123"/> - <path d="M288.666 237.35c.506-2.42 1.113-5.144 1.515-10.207l-7.729-7.615c.031 3.177-3.568 8.094-3.812 14.032" fill="#ffe000" stroke="#000" stroke-width=".123"/> - <path d="M295.331 244.682c.887-4.247-1.287-4.774 1.946-10.75l-7.142-6.848c-1.33 4.027-2.227 6.62-2.11 10.1l6.084 4.33" fill="#007934" stroke="#000" stroke-width=".123"/> - <path d="M267.551 270.082c-1.446-4.298.518-12.73.3-18.134-.164-3.485 2.399-16.591 2.344-20.556l-14.115-8.815s-.615 14.324-2.24 29.927c-1.46 8.014-1.451 15.337-.401 21.454 1.5 8.695 2.975 12.265 6.487 15.943 6.234 6.451 19.658 2.724 19.658 2.724 11.308-2.34 17.822-9.463 17.822-9.463s-3.678.869-9.638 1.475c-13.06-.915-18.205 2.349-18.611-11.052" fill="#d52b1e" stroke="#000" stroke-width=".123"/> - <path d="M305.379 278.765l.218-.094c-2.448.916-5.862 1.928-5.862 1.928l-7.958.612c-17.262.404-15.101-10.285-14.417-27.529.164-6.544 1.461-14.785 1.127-17.703l-11.572-6.629c-3.774 10.664-2.598 18.124-3.353 23.579-.395 5.876-1.648 17.352.258 22.359 2.697 11.649 11.818 11.174 24.165 10.15 6.125-.508 9.42-2.083 9.42-2.083l7.967-4.584" fill="#f7e214" stroke="#000" stroke-width=".123"/> - <path d="M305.604 278.531c-2.394 1.24-5.917 2.155-5.917 2.155l-8.066.796c-12.514 1.062-19.84-7.728-18.236-27.605.01-7.022.235-10.141 2.658-19.495l6.878 4.035v.647c-.389 2.1-1.373 7.01-1.373 9.256 0 15.959 10.09 28.217 23.838 30.298l.218-.093" fill="#007a3d" stroke="#000" stroke-width=".123"/> - <path d="M259.92 230.547c1.166 1.96 8.13 12.568 12.031 14.574m-10.858-7.644c1.167 2.007 9.692 13.954 13.532 14.626m-15.483 3.632c1.951 2.34 3.895 6.976 9.692 9.982m-6.963 3.299c3.894 3.632 13.532 11.614 22.835 11.942m-22.835-5.966c1.95 2.34 6.18 13.283 24.008 8.317m-26.737-6.31c1.167 2.625 10.081 17.252 25.96 11.608" fill="none" stroke="#000" stroke-width=".123"/> - <path d="M277.75 264.83c-1.446-4.298.517-12.73.299-18.134-.164-3.485 1.48-15.54 1.426-19.505l-13.196-9.866s-.615 14.324-2.24 29.927c-1.461 8.014-2.575 17.83-1.492 23.942 1.772 10.001 6.581 12.814 7.45 13.588 6.74 6.006 21.958 5.416 23.47 4.875 10.874-3.886 15.611-10.795 15.611-10.795s-5.152-.083-11.111.523c-13.06-.915-19.657-.37-20.064-13.771" fill="#d52b1e" stroke="#000" stroke-width=".123"/> - <path d="M315.578 273.513l.218-.094c-2.448.916-5.863 1.928-5.863 1.928l-7.958.612c-17.262.404-15.1-10.284-14.416-27.528.164-6.544.389-12.422.054-15.34l-10.346-7.548c-3.774 10.664-2.751 16.68-3.507 22.134-.394 5.877-1.647 17.352.258 22.36 2.697 11.648 11.819 11.174 24.166 10.15 6.125-.509 9.42-2.084 9.42-2.084l7.967-4.584" fill="#ffe000" stroke="#000" stroke-width=".123"/> - <path d="M315.884 273.357c-2.394 1.24-5.916 2.155-5.916 2.155l-8.067.796c-12.514 1.062-19.84-7.728-18.236-27.605.01-7.022-.224-7.515 2.199-16.869 3.833 2.484 11.16 8.739 11.16 8.739s-1.993 2.806-1.526 6.729c0 15.959 6.421 24.06 20.168 26.142l1.508-13.034" fill="#007934" stroke="#000" stroke-width=".123"/> - <path d="M270.119 225.296c1.166 1.96 8.13 12.567 12.031 14.573m-10.858-7.643c1.166 2.006 9.692 13.953 13.532 14.626m-15.483 3.631c1.95 2.34 3.895 6.977 9.692 9.983m-6.964 3.298c3.895 3.632 13.532 11.615 22.836 11.942m-22.836-5.966c1.951 2.34 6.18 13.283 24.009 8.317m-26.737-6.31c1.167 2.626 10.081 17.252 25.96 11.608" fill="none" stroke="#000" stroke-width=".123"/> - <path d="M256.173 223.963s-.584 5.083-.64 5.995c-.269 4.408-.145 7.743.063 9.82-.014.224.849 5.498.552 5.78-1.013 1.156-1.05 1.284-2.117.428-.153-.176.46-5.576.506-6.319.104-.797.27-7.106.384-9.857.012-1.088.947-6.443.947-6.443s.124-1.14.3.582" fill="#e8a30e" stroke="#000" stroke-width=".123"/> - <path d="M256.173 223.963s-.584 5.083-.64 5.995c-.269 4.408-.138 7.744.063 9.82-.014.224 1.03 7.565.705 5.786-1.013 1.157-1.221 1.593-2.29.737-.152-.176.48-5.891.526-6.634.104-.797.27-7.106.384-9.857.012-1.088.947-6.443.947-6.443s.124-1.14.3.582l.005.015z" fill="none" stroke="#000" stroke-width=".123"/> - <path d="M256.063 222.181s-1.15 6.09-1.255 9.585c-.15 4.239-.332 5.437-.265 7.909.045.169-.413 3.192-.548 4.507-.096.677.099.173-.014.224-.866.53-1.454.104-1.982-.314-.157-.119 1.4-3.782 1.445-4.524.821-10.757 2.381-17.061 2.381-17.061s-.622 3.816.238-.326" fill="#f7e214" stroke="#000" stroke-width=".123"/> - <path d="M256.063 222.181s-1.15 6.09-1.248 9.585c-.15 4.239-.332 5.438-.265 7.909.045.17-.413 3.193-.548 4.507-.096.678.098.174-.014.224-.866.53-1.454.104-1.982-.314-.157-.118 1.399-3.781 1.445-4.531.821-10.757 2.374-17.061 2.374-17.061s-.622 3.816.239-.326v.007zm-.498 17.315s-.913.414-1.015.179m-.04-1.254s.78-.02.903-.24m-.045-1.049s-.576.375-.732.136m.717-1.682l-.554.024m.591-1.52l-.61.022m.515-2.148s-.344.153-.385-.073m.493-1.7l-.497-.022m-.475 9.563s-.896.128-.995-.158m1.066-1.905s-.892.073-.93-.211m.966-1.277s-.725.023-.776-.035m.919-1.4l-.722-.032m.718-1.69l-.494-.078m.694-1.402s-.45.093-.545-.136m.595-1.59s-.405.263-.388-.018m-.049 8.958s-.888.01-.872-.264m12.754-19.782s-.584 5.083-.64 5.994c-.27 4.408-.145 7.744.062 9.82-.013.224.85 5.498.553 5.78-1.014 1.156-1.05 1.284-2.117.429-.154-.176.46-5.577.506-6.32.103-.797.27-7.106.384-9.857.012-1.088.947-6.443.947-6.443s.124-1.14.299.582" fill="#e8a30e" stroke="#000" stroke-width=".123"/> - <path d="M266.372 218.712s-.584 5.083-.64 5.994c-.27 4.408-.138 7.744.063 9.82-.014.224 1.03 7.565.705 5.787-1.014 1.156-1.222 1.592-2.29.736-.153-.176.48-5.89.526-6.633.103-.798.27-7.107.384-9.858.012-1.088.947-6.443.947-6.443s.124-1.14.299.582l.006.015z" fill="none" stroke="#000" stroke-width=".123"/> - <path d="M266.262 216.93s-1.15 6.09-1.255 9.584c-.15 4.239-.332 5.438-.265 7.909.045.17-.414 3.193-.548 4.507-.097.678.098.174-.014.224-.866.53-1.455.104-1.982-.314-.157-.118 1.399-3.781 1.444-4.524.822-10.757 2.382-17.06 2.382-17.06l.238-.327" fill="#e8a30e" stroke="#000" stroke-width=".123"/> - <path d="M266.262 216.93s-1.15 6.09-1.248 9.584c-.15 4.24-.333 5.438-.265 7.91.044.169-.414 3.192-.549 4.506-.096.678.099.174-.013.225-.866.53-1.455.103-1.982-.314-.157-.119 1.399-3.782 1.444-4.532.822-10.757 2.375-17.061 2.375-17.061l.239-.326v.007zm-.498 17.314s-.913.414-1.015.18m-.04-1.255s.78-.02.903-.24m-.045-1.049s-.576.376-.732.137m.717-1.683l-.555.024m.592-1.519l-.61.021m.515-2.148s-.344.154-.385-.073m.493-1.7l-.497-.022m-.476 9.564s-.895.127-.994-.158m1.066-1.906s-.892.073-.93-.21m.966-1.278s-.725.023-.776-.035m.919-1.4l-.722-.032m.718-1.69l-.494-.077m.693-1.403s-.45.093-.545-.136m.596-1.59s-.405.264-.388-.018m-.05 8.959s-.888.009-.87-.264" fill="none" stroke="#000" stroke-width=".123"/> - <path d="M274.333 211.261s.459 5.14.178 8.043c-.326 3.523-.277 4.532-.627 6.573-.056.137.061 2.679.041 3.778.015.57-.116.136-.011.187.803.51 1.435.206 2.008-.097.224-.083-.97-3.247-.932-3.866.385-8.979-.463-14.328-.463-14.328l-.201-.29" fill="#e8a30e" stroke="#000" stroke-width=".123"/> - <path d="M274.333 211.261s.464 5.14.171 8.043c-.324 3.523-.277 4.531-.627 6.573-.056.136.061 2.678.041 3.778.015.569-.116.136-.01.187.802.51 1.434.205 2.007-.097.224-.083-.97-3.248-.931-3.873.384-8.978-.457-14.327-.457-14.327l-.2-.29zm-.337 14.673s.877.18 1.008-.049m-.787-1.663s.88.134.895-.101m-.819-1.137s.712.078.776.035m-.764-1.236l.722.033m-.526-1.459l.5-.024m-.472-1.216s.376.112.503-.07m-.415-1.366s.368.251.382.017m-.954 7.425s.883.08.897-.147" fill="#e8a30e" stroke="#000" stroke-width=".123"/> - <path d="M306.013 221.647l.797.06s-1.233-.09-.797-.06z" fill="#005000" stroke="#000" stroke-width=".123"/> - <path d="M316.724 256.4s-.371-.159-.464 0c0 .08.093.16.185.16.093 0 .28-.16.28-.16zm-1.022 1.115s1.58-.159 2.137-.159" fill="#fff" fill-rule="evenodd" stroke="#000" stroke-width=".123"/> - <path d="M292.19 284.203c-.228 3.057-7.355 6.571-12.68.12-5.689-4.503-4.458-11.391.063-12.345l54.614-53.263c2.191-1.197 2.402-2.337 3.493-3.502 2.293 2.433 7.039 6.803 9.628 8.914-1.575 1.317-2.855 2.565-3.204 3.593l-51.914 56.483z" fill="#e8a30e" fill-rule="evenodd" stroke="#000" stroke-width=".124"/> - <path d="M337.818 215.05c2.607-3.577 12.77 5.717 10.054 8.603-2.715 2.885-12.456-4.992-10.054-8.603z" fill="#e7e7e7" fill-rule="evenodd" stroke="#000" stroke-width=".123" stroke-linejoin="round"/> - <path d="M346.963 222.96c-1.914 1.452-9.281-4.786-8.062-7.144 2.033-2.21 10.138 5.71 8.062 7.143z" fill="#cccccf" fill-rule="evenodd" stroke="#000" stroke-width=".123"/> - <path d="M344.029 227.873c-4.578-1.46-7.821-4.506-9.875-9.058m-22.97 44.925c-5.757-1.779-9.7-5.532-11.475-11.644m9.14 14.326c-5.756-1.779-9.698-5.532-11.474-11.644m-2.11 25.795c-5.757-1.778-10.38-5.994-12.155-12.106m9.754 14.79c-5.756-1.779-10.448-6.06-12.223-12.173" fill="none" stroke="#000" stroke-width=".123"/> - <path d="M279.346 285.02c-.285 1.36-1.029 1.783-2.068 1.367m13.75-1.919c-2.16 3.4-4.563 2.377-6.573 2.412" fill="none" stroke="#000" stroke-width=".123" stroke-linecap="round"/> - <path d="M276.39 285.201c0 .91.769 1.644 1.719 1.643.95 0 1.723-.737 1.728-1.646.005-.91-.76-1.648-1.71-1.651-.949-.004-1.718 1.004-1.729 1.913" fill="#e8a30e" stroke="#000" stroke-width=".123"/> - <path d="M279.51 284.856c-.285 1.359-1.029 1.783-2.068 1.367m13.586-1.755c-2.16 3.4-4.563 2.377-6.573 2.412" fill="none" stroke="#000" stroke-width=".123" stroke-linecap="round"/> - <path d="M331.832 290.315l.922 9.039s-1.399-1.712-1.735-2.281c-.336-.57-1.549-2.09-1.808-7.36 0 0 .947-2.912 1.393-2.906.741-.366 1.228 3.508 1.228 3.508zm-2.223-20.15s2.427 14.512 2.673 15.832c0 .451-1.232 1.648-2.122-1.158l-1.466-10.551s.66-2.811.915-4.124z" fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".123"/> - <path d="M324.123 284.565c.592-.744 1.332-1.673 1.405-2.048l.382 3.202s-2.02 1.475-1.731 4.3l-.392-.57-.227-1.131s-.415-1.886-.419-3.015c0 0 .427-.182.982-.738z" fill="#d52b1e" fill-rule="evenodd" stroke="#000" stroke-width=".123"/> - <path d="M332.754 299.352s-3.353-2.868-3.543-9.64l-.415-1.886s-.07 1.504-.742.366c-.655-1.514-.622-2.83-.622-2.83s-1.213-1.52-1.578.354c0 0 1.126 8.854 1.203 9.607.096.941.267 2.072.267 2.072s.665-1.119 1.337.019c.729 1.138 1.885 2.659 4.093 1.938zm-4.06-25.065l1.466 10.55s-1.168.548-1.364 2.99c-.108 1.126-.555.555-.742.365-.244-.756-.063-2.257-.063-2.257l-.638-7.343s1.27-3.366 1.341-4.305z" fill="#ffe000" fill-rule="evenodd" stroke="#000" stroke-width=".123"/> - <path d="M329.855 298.749l.213 2.635s-1.003-.014-1.675-1.152c-.784-1.14-1.068-2.835-1.068-2.835s.776-1.118 1.337.018c.542.948 1.193 1.334 1.193 1.334zm-1.8-10.556c-.542-.948-.715-2.642-.623-2.829l.682.572c-.22 1.125-.06 2.257-.06 2.257z" fill="#ffe000" fill-rule="evenodd" stroke="#000" stroke-width=".123"/> - <path d="M324.753 287.13a4.4 4.4 0 0 1 1.24-1.486l1.488 11.867s.419 3.014 2.279 3.793c0 0-1.06 10.327-4.414 7.459-.484-.383-1.09-3.588-.891-5.466.234-2.065.782-4.878.834-6.005.032-1.316-.154-2.649-.476-4.722-.133-.753-.523-2.406-.598-2.595-.187-.191.04-1.723.538-2.844z" fill="#d52b1e" fill-rule="evenodd" stroke="#000" stroke-width=".123"/> - <path d="M323.14 285.306s-.906.928-1.073.925c-.223-.003 2.353 19.352 2.353 19.352s-.097-2.029.655-5.97c.61-3.2-.177-7.498-.866-9.56 0 0-.813-.606-1.068-4.747z" fill="#d52b1e" fill-rule="evenodd" stroke="#000" stroke-width=".123"/> - <path d="M327.428 278.786s.502 5.46.619 7.154c0 0-1.699-2.469-2.137-.218l-.382-3.202s1.478-2.424 1.9-3.734z" fill="#f7e214" fill-rule="evenodd" stroke="#000" stroke-width=".123"/> - <path d="M328.73 287.81s.557-6.116 3.52-1.792c.114.002.271 2.43.101 3.01-.093.778-.913 1.74-1.255 2.318-.648.964-1.34-.214-1.34-.214s-.674-.982-1.027-3.322z" fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".123"/> - <path d="M352.2 236.938c.11-3.48 1.205-9.27 1.26-13.239l12.006-12.234s1.482 9.912 5.84 15.58l-19.105 9.9" fill="#d52b1e" stroke="#000" stroke-width=".123"/> - <path d="M351.334 237.35c-.506-2.42-1.113-5.144-1.515-10.207l7.729-7.615c-.031 3.177 3.568 8.094 3.812 14.032" fill="#ffe000" stroke="#000" stroke-width=".123"/> - <path d="M344.669 244.682c-.887-4.247 1.287-4.774-1.946-10.75l7.142-6.848c1.33 4.027 2.227 6.62 2.11 10.1l-6.084 4.33" fill="#007934" stroke="#000" stroke-width=".123"/> - <path d="M372.449 270.082c1.446-4.298-.518-12.73-.3-18.134.164-3.485-2.399-16.591-2.344-20.556l14.115-8.815s.615 14.324 2.24 29.927c1.46 8.014 1.451 15.337.401 21.454-1.5 8.695-2.975 12.265-6.487 15.943-6.234 6.451-19.658 2.724-19.658 2.724-11.308-2.34-17.822-9.463-17.822-9.463s3.678.869 9.638 1.475c13.06-.915 18.205 2.349 18.611-11.052" fill="#d52b1e" stroke="#000" stroke-width=".123"/> - <path d="M334.621 278.765l-.218-.094c2.448.916 5.862 1.928 5.862 1.928l7.958.612c17.262.404 15.101-10.285 14.417-27.529-.164-6.544-1.461-14.785-1.127-17.703l11.572-6.629c3.774 10.664 2.598 18.124 3.353 23.579.395 5.876 1.648 17.352-.258 22.359-2.697 11.649-11.818 11.174-24.165 10.15-6.125-.508-9.42-2.083-9.42-2.083l-7.967-4.584" fill="#f7e214" stroke="#000" stroke-width=".123"/> - <path d="M334.396 278.531c2.394 1.24 5.917 2.155 5.917 2.155l8.066.796c12.514 1.062 19.84-7.728 18.236-27.605-.01-7.022-.235-10.141-2.658-19.495l-6.878 4.035v.647c.389 2.1 1.373 7.01 1.373 9.256 0 15.959-10.09 28.217-23.838 30.298l-.218-.093" fill="#007a3d" stroke="#000" stroke-width=".123"/> - <path d="M380.08 230.547c-1.166 1.96-8.13 12.568-12.031 14.574m10.858-7.644c-1.167 2.007-9.692 13.954-13.532 14.626m15.483 3.632c-1.951 2.34-3.895 6.976-9.692 9.982m6.963 3.299c-3.894 3.632-13.532 11.614-22.835 11.942m22.835-5.966c-1.95 2.34-6.18 13.283-24.008 8.317m26.737-6.31c-1.167 2.625-10.081 17.252-25.96 11.608" fill="none" stroke="#000" stroke-width=".123"/> - <path d="M362.25 264.83c1.446-4.298-.517-12.73-.299-18.134.164-3.485-1.48-15.54-1.426-19.505l13.196-9.866s.615 14.324 2.24 29.927c1.461 8.014 2.575 17.83 1.492 23.942-1.772 10.001-6.581 12.814-7.45 13.588-6.74 6.006-21.958 5.416-23.47 4.875-10.874-3.886-15.611-10.795-15.611-10.795s5.152-.083 11.111.523c13.06-.915 19.657-.37 20.064-13.771" fill="#d52b1e" stroke="#000" stroke-width=".123"/> - <path d="M324.422 273.513l-.218-.094c2.448.916 5.863 1.928 5.863 1.928l7.958.612c17.262.404 15.1-10.284 14.416-27.528-.164-6.544-.389-12.422-.054-15.34l10.346-7.548c3.774 10.664 2.751 16.68 3.507 22.134.394 5.877 1.647 17.352-.258 22.36-2.697 11.648-11.819 11.174-24.166 10.15-6.125-.509-9.42-2.084-9.42-2.084l-7.967-4.584" fill="#ffe000" stroke="#000" stroke-width=".123"/> - <path d="M324.116 273.357c2.394 1.24 5.916 2.155 5.916 2.155l8.067.796c12.514 1.062 19.84-7.728 18.236-27.605-.01-7.022.224-7.515-2.199-16.869-3.833 2.484-11.16 8.739-11.16 8.739s1.993 2.806 1.526 6.729c0 15.959-6.421 24.06-20.168 26.142l-1.508-13.034" fill="#007934" stroke="#000" stroke-width=".123"/> - <path d="M369.881 225.296c-1.166 1.96-8.13 12.567-12.031 14.573m10.858-7.643c-1.166 2.006-9.692 13.953-13.532 14.626m15.483 3.631c-1.95 2.34-3.895 6.977-9.692 9.983m6.964 3.298c-3.895 3.632-13.532 11.615-22.836 11.942m22.836-5.966c-1.951 2.34-6.18 13.283-24.009 8.317m26.737-6.31c-1.167 2.626-10.081 17.252-25.96 11.608" fill="none" stroke="#000" stroke-width=".123"/> - <path d="M383.827 223.963s.584 5.083.64 5.995c.269 4.408.145 7.743-.063 9.82.014.224-.849 5.498-.552 5.78 1.013 1.156 1.05 1.284 2.117.428.153-.176-.46-5.576-.506-6.319-.104-.797-.27-7.106-.384-9.857-.012-1.088-.947-6.443-.947-6.443s-.124-1.14-.3.582" fill="#f7e214" stroke="#000" stroke-width=".123"/> - <path d="M383.827 223.963s.584 5.083.64 5.995c.269 4.408.138 7.744-.063 9.82.014.224-1.03 7.565-.705 5.786 1.013 1.157 1.221 1.593 2.29.737.152-.176-.48-5.891-.526-6.634-.104-.797-.27-7.106-.384-9.857-.012-1.088-.947-6.443-.947-6.443s-.124-1.14-.3.582l-.005.015z" fill="#e8a30e" stroke="#000" stroke-width=".123"/> - <path d="M383.937 222.181s1.15 6.09 1.255 9.585c.15 4.239.332 5.437.265 7.909-.045.169.413 3.192.548 4.507.096.677-.098.173.014.224.866.53 1.454.104 1.982-.314.157-.119-1.4-3.782-1.445-4.524-.821-10.757-2.381-17.061-2.381-17.061s.622 3.816-.238-.326" fill="#f7e214" stroke="#000" stroke-width=".123"/> - <path d="M383.937 222.181s1.15 6.09 1.248 9.585c.15 4.239.332 5.438.265 7.909-.045.17.413 3.193.548 4.507.096.678-.098.174.014.224.866.53 1.454.104 1.982-.314.157-.118-1.399-3.781-1.445-4.531-.821-10.757-2.374-17.061-2.374-17.061s.622 3.816-.239-.326v.007zm.498 17.315s.913.414 1.015.179m.04-1.254s-.78-.02-.903-.24m.045-1.049s.576.375.732.136m-.717-1.682l.554.024m-.591-1.52l.61.022m-.515-2.148s.344.153.385-.073m-.493-1.7l.497-.022m.475 9.563s.896.128.995-.158m-1.066-1.905s.892.073.93-.211m-.966-1.277s.725.023.776-.035m-.919-1.4l.722-.032m-.718-1.69l.494-.078m-.694-1.402s.45.093.545-.136m-.595-1.59s.405.263.388-.018m.049 8.958s.888.01.872-.264" fill="#e8a30e" stroke="#000" stroke-width=".123"/> - <path d="M373.628 218.712s.584 5.083.64 5.994c.27 4.408.145 7.744-.063 9.82.014.224-.849 5.498-.552 5.78 1.014 1.156 1.05 1.284 2.117.429.153-.176-.46-5.577-.506-6.32-.103-.797-.27-7.106-.384-9.857-.012-1.088-.947-6.443-.947-6.443s-.124-1.14-.299.582" fill="#f7e214" stroke="#000" stroke-width=".123"/> - <path d="M373.628 218.712s.584 5.083.64 5.994c.27 4.408.138 7.744-.063 9.82.014.224-1.03 7.565-.705 5.787 1.014 1.156 1.222 1.592 2.29.736.153-.176-.48-5.89-.526-6.633-.103-.798-.27-7.107-.384-9.858-.012-1.088-.947-6.443-.947-6.443s-.124-1.14-.299.582l-.006.015z" fill="#e8a30e" stroke="#000" stroke-width=".123"/> - <path d="M373.738 216.93s1.15 6.09 1.255 9.584c.15 4.239.332 5.438.265 7.909-.045.17.414 3.193.548 4.507.097.678-.098.174.014.224.866.53 1.455.104 1.982-.314.157-.118-1.399-3.781-1.444-4.524-.822-10.757-2.382-17.06-2.382-17.06l-.238-.327" fill="#f7e214" stroke="#000" stroke-width=".123"/> - <path d="M373.738 216.93s1.15 6.09 1.248 9.584c.15 4.24.333 5.438.265 7.91-.044.169.414 3.192.549 4.506.096.678-.099.174.013.225.866.53 1.455.103 1.982-.314.157-.119-1.399-3.782-1.444-4.532-.822-10.757-2.375-17.061-2.375-17.061l-.239-.326v.007zm.498 17.314s.913.414 1.015.18m.04-1.255s-.78-.02-.903-.24m.045-1.049s.576.376.732.137m-.717-1.683l.555.024m-.592-1.519l.61.021m-.515-2.148s.344.154.385-.073m-.493-1.7l.497-.022m.476 9.564s.895.127.994-.158m-1.066-1.906s.892.073.93-.21m-.966-1.278s.725.023.776-.035m-.919-1.4l.722-.032m-.718-1.69l.494-.077m-.693-1.403s.45.093.545-.136m-.596-1.59s.405.264.388-.018m.05 8.959s.888.009.87-.264M365.667 211.261s-.459 5.14-.178 8.043c.326 3.523.277 4.532.627 6.573.056.137-.061 2.679-.041 3.778-.015.57.116.136.011.187-.803.51-1.435.206-2.008-.097-.224-.083.97-3.247.932-3.866-.385-8.979.463-14.328.463-14.328l.201-.29" fill="#e8a30e" stroke="#000" stroke-width=".123"/> - <path d="M365.667 211.261s-.464 5.14-.171 8.043c.324 3.523.277 4.531.627 6.573.056.136-.061 2.678-.041 3.778-.015.569.116.136.01.187-.802.51-1.434.205-2.007-.097-.224-.083.97-3.248.931-3.873-.384-8.978.457-14.327.457-14.327l.2-.29zm.337 14.673s-.877.18-1.008-.049m.787-1.663s-.88.134-.895-.101m.819-1.137s-.712.078-.776.035m.764-1.236l-.722.033m.526-1.459l-.5-.024m.472-1.216s-.376.112-.503-.07m.415-1.366s-.368.251-.382.017m.954 7.425s-.883.08-.897-.147" fill="#e8a30e" stroke="#000" stroke-width=".123"/> - <path d="M333.987 221.647l-.797.06s1.233-.09.797-.06z" fill="#005000" stroke="#000" stroke-width=".123"/> - <path d="M323.276 256.4s.371-.159.464 0c0 .08-.093.16-.185.16-.093 0-.28-.16-.28-.16zm1.022 1.115s-1.58-.159-2.137-.159" fill="#fff" fill-rule="evenodd" stroke="#000" stroke-width=".123"/> - <path d="M291.666 215.475c-.028-2.1 1.95-3.315 2.254-3.52.97-.656 1.63-1.224 3.722-1.497 0 0 .143.433.135.805-.007.372-.462 1.658-2.07 2.745-1.638 1.107-4.04 1.467-4.04 1.467z" fill="#d52b1e" stroke="#000" stroke-width=".123"/> - <path d="M291.643 214.674l29.644 38.48 1.409-1.388-30.24-39.086-.813 1.994z" fill="#a05a2c" fill-rule="evenodd" stroke="#000" stroke-width=".123"/> - <path d="M291.184 207.16s3.207-.334 2.783-2.167c-.453-1.813-2.613-1.778-3.515-1.863-.932-.062-3.873.622-4.746 1.497-.902.895-2.745 2.425-2.148 4.997s1.354 4.342 2.3 5.944c.94 1.648.704 3.233.453 3.932-.076.297-.372 1.27.431 1.625 1.182.505 1.477.508 2.5-.631 1.048-1.115 2.452-2.92 2.422-5.02-.028-2.099 1.95-3.314 2.254-3.52.97-.655 1.63-1.223 3.722-1.496 0 0-.742-1.21-1.856-1.15-1.137.035-3.395-.966-4.6-2.149z" fill="#d52b1e" stroke="#000" stroke-width=".123"/> - <path d="M291.184 207.16s3.207-.334 2.783-2.167c-.453-1.813-2.613-1.778-3.515-1.863-.932-.062-3.873.622-4.746 1.497-.902.895-2.745 2.425-2.148 4.997s1.354 4.342 2.3 5.944c.94 1.648.704 3.233.453 3.932-.076.297-.372 1.27.431 1.625 1.182.505 1.477.508 2.5-.631 1.048-1.115 2.452-2.92 2.422-5.02-.028-2.099 1.95-3.314 2.254-3.52.97-.655 1.63-1.223 3.722-1.496 0 0-.742-1.21-1.856-1.15-1.137.035-3.395-.966-4.6-2.149z" fill="none" stroke="#000" stroke-width=".123"/> - <path d="M291.184 207.16c-.432.006-1.712-.555-2.599-.24-.864.339-2.654 1.385-2.366 2.903m10.428-.202s-1.85.761-3.153 1.642c-.547.37-2.359 2.043-3.527 3.24-1.031 1.023-1.26 2.4-3.474 3.896m8.988-9.049c-.38.338-.76.675-1.411 1.035-.621.338-.82.88-1.213 1.309" fill="none" stroke="#000" stroke-width=".123"/> - <path d="M347.81 284.203c.228 3.057 7.355 6.571 12.68.12 5.689-4.503 4.458-11.391-.063-12.345l-54.614-53.263c-2.191-1.197-2.402-2.337-3.493-3.502-2.293 2.433-7.039 6.803-9.628 8.914 1.575 1.317 2.855 2.565 3.204 3.593l51.914 56.483z" fill="#e8a30e" fill-rule="evenodd" stroke="#000" stroke-width=".124"/> - <path d="M302.182 215.05c-2.607-3.577-12.77 5.717-10.054 8.603 2.715 2.885 12.456-4.992 10.054-8.603z" fill="#e7e7e7" fill-rule="evenodd" stroke="#000" stroke-width=".123" stroke-linejoin="round"/> - <path d="M293.037 222.96c1.914 1.452 9.281-4.786 8.062-7.144-2.033-2.21-10.138 5.71-8.062 7.143z" fill="#cccccf" fill-rule="evenodd" stroke="#000" stroke-width=".123"/> - <path d="M295.971 227.873c4.578-1.46 7.821-4.506 9.875-9.058m22.97 44.925c5.757-1.779 9.7-5.532 11.475-11.644m-9.14 14.326c5.756-1.779 9.698-5.532 11.474-11.644m2.11 25.795c5.757-1.778 10.38-5.994 12.155-12.106m-9.754 14.79c5.756-1.779 10.448-6.06 12.223-12.173" fill="none" stroke="#000" stroke-width=".123"/> - <path d="M360.654 285.02c.285 1.36 1.029 1.783 2.068 1.367m-13.75-1.919c2.16 3.4 4.563 2.377 6.573 2.412" fill="none" stroke="#000" stroke-width=".123" stroke-linecap="round"/> - <path d="M363.61 285.201c0 .91-.769 1.644-1.719 1.643-.95 0-1.723-.737-1.728-1.646-.005-.91.76-1.648 1.71-1.651.949-.004 1.718 1.004 1.729 1.913" fill="#e8a30e" stroke="#000" stroke-width=".123"/> - <path d="M360.49 284.856c.285 1.359 1.029 1.783 2.068 1.367m-13.586-1.755c2.16 3.4 4.563 2.377 6.573 2.412" fill="none" stroke="#000" stroke-width=".123" stroke-linecap="round"/> - <path d="M339.65 175.519c1.774 2.84 4.406 7.962 5.125 11.887 1.325 7.239-.746 15.265-7.053 20.936-5.138 4.621-13.202 6.05-16.569 6.74-3.359.69-5.789 1.77-6.344 2.512-.028-.523-.105-1.046.455-1.568 1.596-.703 4.184-1.12 7.793-1.863 7.251-1.495 14.87-4.213 19.02-12.126 5.411-10.318 2.187-18.427-2.501-26.476l.074-.042z" fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".123"/> - <path d="M341.642 206.232a.434.567 49.857 0 1-.625-.603.434.567 49.857 1 1 .625.603z" fill="#d52b1e" stroke="#000" stroke-width=".123"/> - <path d="M346.576 204.94c-1.079.64-2.147.807-3.004 1.093-.661.221-1.8.58-2.193.728-.375.14-.96.405-1.46.631-.794.36-1.653 1.356-1.653 1.356s1.208 1.266 2.65 1.087c1.13-.14 1.7-.45 2.267-.727.59-.286.576-.612 1.425-1.224.939-.677 1.597-2.013 1.968-2.945zm-5.651 1.196c-.346.542-1.173.5-1.646.425l-.213.27c.649.01 1.536.017 1.98-.567-.011-.088-.064-.129-.121-.128z" fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".123"/> - <path d="M346.561 204.988c-.976.951-2.798 2.009-4.627 2.79-1.83.782-3.97 1.033-5 1.026l-.271.287c1.482-.138 3.437-.406 5.094-1.086 2.16-.886 3.933-2.025 4.818-2.96l-.014-.057zm-2.378 4.575c-1.947-.068-3.019.538-4.828.933-1.691.37-3.669-.51-4.763 1.118 4.406 2.856 7.588.934 9.591-2.05z" fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".123"/> - <path d="M340.22 213.565c-.84-.72-8.05-3.16-9.202-.433 1.715 1.897 6.736 2.32 9.201.433z" fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".123"/> - <path d="M338.51 215.485c-.761-.12-1.659-.297-2.536-.399-.881-.102-1.227-.254-1.878-.344-1.065-.147-2.285-1.642-6.04-.501 1.453 3.35 6.415 4.052 10.454 1.244zm1.624-1.866c-3.842.767-8.357-.002-10.142-1.055l-.284.19c4.115 1.754 8.114 1.523 10.426.865zm3.988-4.056c-2.262 1.517-5.178 2.648-11.423 1.812l-.086.216c8.558.734 9.405-.835 11.51-2.028z" fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".123"/> - <path d="M338.482 215.512c-2.986.106-4.667 1.436-10.26-1.317-.457-.225-1.067-.381-1.42-.549l-.513.19c.39.173 1.018.168 1.368.323 6.984 3.082 6.788 1.64 10.825 1.353z" fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".123"/> - <path d="M327.252 211.606a.427.576 66.176 1 0 .438.737.427.576 66.176 0 0-.438-.737z" fill="#d52b1e" stroke="#000" stroke-width=".123"/> - <path d="M327.147 212.253c-.644.166-.83.932-.885 1.384l-.333.12c.17-.594.407-1.406 1.122-1.65.085.035.113.094.096.146z" fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".123"/> - <path d="M345.92 186.814a.444.554 15.75 1 1-.864-.206.444.554 15.75 0 1 .865.206z" fill="#d52b1e" stroke="#000" stroke-width=".123"/> - <path d="M341.622 203.154c-.14-2.086-1.152.805-3.197-3.856-.595-1.354-.59-2.218-.993-4.252 1.113 1.758 2.975 2.232 3.73 3.59.744 1.336.554 3.484.46 4.518z" fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".123"/> - <path d="M337.472 195.2s1.008 2.351 2.458 4.015c1.459 1.673 1.732 3.71 1.732 3.71" fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".123"/> - <path d="M338.47 197.197c1.282 1.727 3.007 3.775 3.088 5.924l.2.075c-.298-2.827-1.97-4.133-3-5.559l-.289-.44zm10.847 2.668c-.94.772-1.927 1.052-2.7 1.434-.597.295-1.098.687-1.45.88-.337.184-.885.269-1.33.554-.704.452-2.082 2.032-2.082 2.032s1.307 1.07 2.116.895c2.355-.456 3.042-1.391 4.23-2.256.918-.751.979-2.535 1.216-3.54z" fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".123"/> - <path d="M340.695 204.836l-.221.325c1.351-.133 3.504-1.43 4.94-2.153 1.93-.971 3.012-1.71 3.826-3.093-.922 1.382-2.126 2.166-3.94 3.043-1.522.736-3.686 1.98-4.605 1.878z" fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".123"/> - <path d="M350.118 195.297c-.787.912-1.71 1.347-2.404 1.848-.535.387-.96.854-1.272 1.1-.299.236-.824.409-1.21.761-.614.559-1.525 2.19-1.525 2.19s.653.697 1.42.393c2.374-.294 3.071-1.42 3.954-3.445.494-1.05.983-1.82 1.037-2.847z" fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".123"/> - <path d="M341.539 199.448a.557.442 61.956 1 0 .81-.352.557.442 61.956 0 0-.81.352z" fill="#d52b1e" stroke="#000" stroke-width=".123"/> - <path d="M342.51 201.586l-.16.356c2.846-1.298 6.58-3.914 7.801-6.578-1.737 2.874-4.608 4.769-7.64 6.222zm8.257-10.686c-.676.95-1.515 1.44-2.133 1.98-.477.416-.843.904-1.12 1.167-.264.252-.747.457-1.086.83-.538.59-1.279 2.254-1.279 2.254s.869.817 1.57.467c.7-.35 1.64-1.146 2.105-1.561.484-.432.603-1.475 1.171-2.27.662-.924.796-1.854.772-2.867z" fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".123"/> - <path d="M348.718 193.839c-1.38 1.572-3.079 3.07-4.669 3.756l-.125.36c2.59-1.467 3.68-2.794 4.826-4.066l-.032-.05zm1.07-5.646c-.472.922-1.178 1.47-1.666 2.027-.377.431-.637.907-.852 1.176-.206.257-.626.505-.88.878-.405.59-.81 2.142-.81 2.142s.588.626 1.189.22c.6-.406 1.46-1.235 1.826-1.663.381-.445.573-1.41.97-2.181.462-.899.424-1.724.223-2.6zm-4.37-1.094c-.25.541-.35 1.071-.512 1.63l-.064-.4c.133-.437.24-.896.448-1.298.043-.009.086-.011.128.068z" fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".123"/> - <path d="M348.37 191.04c-1.026 1.564-2.366 3.112-3.748 3.939l-.055.33c2.188-1.65 2.985-2.96 3.843-4.23l-.04-.04zm-5.62 9.896c-.114-.5-.206-.892-.533-1.34-.05-.003-.084.012-.095.059.298.483.424.906.507 1.49l.121-.21z" fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".123"/> - <path d="M341.886 181.318a.43.328 39.522 0 1-.488.442.43.328 39.522 0 1 .488-.442z" fill="#d52b1e" stroke="#000" stroke-width=".123"/> - <path d="M343.15 182.53c-.357-.31-.8-.588-1.249-.863-.051.017-.057.053-.042.098.517.327.97.644 1.354 1.006l-.064-.24zm5.522.356c-1.13 2.386-3.85 4.052-2.76 7.552 2.81 2.539 2.991-4.542 2.76-7.552z" fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".123"/> - <path d="M346.094 177.666c-.463 2.438-2.627 4.455-1.209 7.686 3.985 1.002 2.086-4.368 1.209-7.686z" fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".123"/> - <path d="M343.737 174.014c2.002 3.723 2.483 5.876.12 8.317 0 0-1.24-1.165-1.536-3.31-.25-1.815 1.23-3.987 1.416-5.007z" fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".123"/> - <path d="M340.413 171.853c.532 2.36-1.511 3.442 1.41 6.482 2.085-2.48 1.09-3.1-1.41-6.482z" fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".123"/> - <path d="M339.628 175.983c-3.368.36-2.056-2.56-3.016-5.255 1.983 1.479 4.67 2.073 3.016 5.255zm2.195 4.455c-.947-4.39-3.968-2.673-5.64-4.608.865 2.832 2.135 4.765 5.64 4.608zm1.36 4.085c-2.632-.173-4.766-1.469-6.183-4.38 2.7 1.205 5.692 1.327 6.182 4.38z" fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".123"/> - <path d="M343.581 188.336c-1.038-1.192-1.064-1.96-1.46-2.755-.653-1.316-1.348-2.48-3.041-3.708.012 3.106.454 6.537 4.501 6.463z" fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".123"/> - <path d="M344.18 191.581c-1.616-2.25-3.113-4.163-5.556-5.733 1.014 2.21.545 6.298 5.555 5.733z" fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".123"/> - <path d="M343.723 196.043c-4.957-.14-4.488-4.816-4.53-7.004.896 1.34 1.991 2.503 2.807 3.466.89 1.052 1.748 2.24 1.723 3.538z" fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".123"/> - <path d="M343.125 198.828c-.4-1.014-.093-1.424-.978-2.315-.956-.962-2.79-2.685-3.75-4.662-.14 1.748-.162 4.447 1.192 5.35 1.025.683 1.918.875 3.536 1.627zm-4.33 7.247c-3.89-3.026-1.551-5.58-1.225-7.842.989 2.552 3.771 4.752 1.225 7.842zm1.595-29.177c-1.25-2.346-2.009-3.631-3.677-6.078 1.925 2.783 2.756 4.55 3.863 6.457" fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".123"/> - <path d="M338.852 206.832c.159-3.082-.68-5.737-1.225-8.518.514 2.937 1.244 5.892.969 8.761l.256-.243zm4.618-7.388c-.405-1.884-4.118-3.135-5.045-7.512.76 4.352 4.524 5.449 4.903 7.898l.142-.386zm.831-2.562l-.1.478c-.55-2.95-4.015-4.402-5.016-8.336 1.463 4.263 4.288 4.826 5.116 7.858zm.685-4.417c-1.705-2.6-4.09-3.582-6.345-6.635 2.11 3 4.77 4.407 6.385 7.037l-.04-.402zm-.06-3.422c-1.877-.803-3.824-3.055-5.862-7.17 1.336 3.045 3.03 5.8 5.862 7.629v-.46z" fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".123"/> - <path d="M344.06 185.027c-2.19-1.731-5.03-2.88-7.071-4.914 1.697 1.936 4.956 3.288 7.13 5.201l-.06-.287zm-1.693-4.302c-2.212-1.503-4.344-1.972-6.184-4.818 1.478 2.785 3.83 3.49 6.265 5.029l-.08-.21zm6.305 2.218c-.793 3.073-1.463 6.302-3.565 8.375l.02-.402c.961-.537 2.48-3.739 3.545-7.973zm-2.558-5.162c-.144 3.175-.09 6.534-1.732 8.336l-.121-.363c1.675-1.357 1.536-4.946 1.853-7.973zm-2.256-3.614c.562 2.795.603 5.38-.141 9.56l-.161-.306c.467-2.463.996-4.986.302-9.254zm-3.384-2.218c1.123 2.37 1.983 4.77 1.249 7.342l-.202-.287c.87-2.351-.147-4.703-1.047-7.055zM336.131 203.153c1.328 3.195-.428 5.516-2.503 6.86-1.616-4.643 1.75-4.123 2.503-6.86z" fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".123"/> - <path d="M336.187 203.143c.228 1.977-1.921 4.19-2.587 7.534l-.3.272c.987-4.078 3.07-5.647 2.887-7.806z" fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".123"/> - <path d="M343.718 181.215a.328.43 1.848 1 1-.647-.116.328.43 1.848 0 1 .647.116z" fill="#d52b1e" stroke="#000" stroke-width=".123"/> - <path d="M343.526 182.955c.029-.471-.022-.991-.079-1.515-.045-.03-.077-.013-.103.027.057.608.082 1.16.03 1.686l.152-.198z" fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".123"/> - <path d="M342.818 180.881a.264.383 1.944 0 1-.504.25.264.383 1.944 0 1 .504-.25z" fill="#d52b1e" stroke="#000" stroke-width=".123"/> - <path d="M343.156 182.354c-.109-.387-.288-.77-.473-1.153-.04 0-.06.031-.068.076.208.45.378.871.484 1.313l.057-.236z" fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".123"/> - <path d="M344.702 186.875a.43.328 80.536 1 1-.658.013.43.328 80.536 0 1 .658-.013z" fill="#d52b1e" stroke="#000" stroke-width=".123"/> - <path d="M344.857 188.62c-.065-.469-.216-.97-.375-1.472-.05-.02-.078.003-.096.047.175.585.309 1.122.361 1.648l.11-.224z" fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".123"/> - <path d="M343.61 187.228a.443.331 57.082 1 1-.457.491.443.331 57.082 0 1 .457-.49z" fill="#d52b1e" stroke="#000" stroke-width=".123"/> - <path d="M344.796 188.575c-.334-.345-.75-.654-1.173-.959-.048.02-.053.06-.04.11.486.362.912.714 1.273 1.116l-.06-.267z" fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".123"/> - <path d="M343.352 199.13a.328.43 12.73 1 1-.614-.235.328.43 12.73 0 1 .614.236z" fill="#d52b1e" stroke="#000" stroke-width=".123"/> - <path d="M342.839 200.804c.117-.458.165-.979.208-1.504-.039-.038-.074-.026-.107.007-.058.608-.137 1.156-.287 1.663l.186-.166z" fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".123"/> - <path d="M343.98 199.876a.328.43 50.478 1 0 .487.442.328.43 50.478 1 0-.487-.442z" fill="#d52b1e" stroke="#000" stroke-width=".123"/> - <path d="M342.716 201.089c.357-.31.8-.589 1.249-.864.051.018.057.054.042.099-.517.326-.97.643-1.354 1.006l.063-.241z" fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".123"/> - <path d="M340.713 204.911a.328.43 40.348 1 1-.435-.493.328.43 40.348 0 1 .435.493z" fill="#d52b1e" stroke="#000" stroke-width=".123"/> - <path d="M339.48 206.158c.316-.352.6-.79.882-1.236-.017-.051-.053-.057-.098-.043-.334.512-.657.96-1.025 1.34l.242-.06z" fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".123"/> - <path d="M338.843 204.513a.445.552 10.023 0 0 .886.1.445.552 10.023 1 0-.886-.1z" fill="#d52b1e" stroke="#000" stroke-width=".123"/> - <path d="M339.378 205.072c-.234.603-.067.838.072 1.1l-.147.309c-.207-.346-.285-.729-.102-1.448.086-.033.15-.009.177.04zM327.265 214.455c-.665.057-.998-.314-1.215-.72l-.356-.002c.376.502.775.898 1.534.891.068-.06.072-.125.037-.169z" fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".123"/> - <path d="M327.31 215.146a.58.424 9.459 0 1 .196-.826.58.424 9.459 1 1-.195.826z" fill="#d52b1e" stroke="#000" stroke-width=".123"/> - <path d="M332.694 206.08c.503 3.082-1.295 5.587-4.006 6.364-.886-3.974 2.777-4.116 4.006-6.364z" fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".123"/> - <path d="M332.7 206.105c-.996 2.418-2.343 4.67-4.756 7.15l-.519.068c2.686-2.125 4.16-4.885 5.274-7.218z" fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".123"/> - <path d="M327.8 213.302a.509.378 9.82 1 1-.401-.729.509.378 9.82 0 1 .4.729z" fill="#d52b1e" stroke="#000" stroke-width=".123"/> - <path d="M325.91 213.793c.494-.156.973-.415 1.45-.682-.006-.06-.05-.086-.11-.099-.56.301-1.092.546-1.658.7l.319.081zM328.536 208.8c-.13 1.237-1.104 2.351-2.002 3.22-.898.869-.998 1.194-2.264 1.57-1.218-2.77 2.853-3.32 4.266-4.79z" fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".123"/> - <path d="M328.524 208.77c-1.358 2.54-3.519 3.79-4.697 5.43l-.167-.016c1.687-2.225 3.122-2.647 4.864-5.413z" fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".123"/> - <path d="M300.422 175.519c-1.774 2.84-4.406 7.962-5.125 11.887-1.325 7.239.746 15.265 7.053 20.936 5.138 4.621 13.202 6.05 16.569 6.74 3.359.69 5.789 1.77 6.344 2.512.028-.523.105-1.046-.455-1.568-1.596-.703-4.184-1.12-7.793-1.863-7.251-1.495-14.87-4.213-19.02-12.126-5.411-10.318-2.187-18.427 2.501-26.476l-.074-.042z" fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".123"/> - <path d="M314.103 213.58c-.222.414-4.011 3.738-7.457 3.49-2.523-.183-2.94-.791-2.94-.791s-.235-.626 2.005-1.084c2.263-.463 6.186-2.009 8.392-1.614z" fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".123"/> - <path d="M303.83 216.295c2.709.306 5.468-.788 7.63-1.613" fill="#007934" stroke="#000" stroke-width=".123"/> - <path d="M311.19 208.651c.292.05 3.401 1.643 4.599 3.735.876 1.53.734 1.898.734 1.898s-.222.262-1.31-.976c-1.098-1.25-3.373-3.272-4.023-4.657z" fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".123"/> - <path d="M316.483 214.207c-.886-1.666-2.49-3.086-3.73-4.205" fill="#007934" stroke="#000" stroke-width=".123"/> - <path d="M300.265 175.85c-.073-.306.296-3.427 2.048-4.415 1.283-.724 1.745-.517 1.745-.517s.383.277-.488 1.27c-.879 1.003-2.082 3.163-3.305 3.663z" fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".123"/> - <path d="M303.992 170.95c-1.425.714-2.268 2.237-2.942 3.412" fill="#007934" stroke="#000" stroke-width=".123"/> - <path d="M299.381 177.437c-.156-.208-1.02-2.948-.232-4.731.577-1.306.95-1.397.95-1.397s.346.01.132 1.304c-.216 1.307-.233 3.734-.85 4.824z" fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".123"/> - <path d="M300.067 171.372c-.672 1.378-.68 3.086-.703 4.417" fill="#007934" stroke="#000" stroke-width=".123"/> - <path d="M299.374 177.463c.22.004 2.716-.73 3.882-2.093.854-.999.8-1.287.8-1.287s-.125-.223-1.092.532c-.977.762-2.922 1.925-3.59 2.848z" fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".123"/> - <path d="M304.017 174.134c-.88 1.095-2.25 1.912-3.312 2.558" fill="#007934" stroke="#000" stroke-width=".123"/> - <path d="M298.181 179.59c-.165-.207-1.303-3.113-.867-5.222.32-1.543.633-1.704.633-1.704s.303-.045.298 1.427c-.005 1.487.321 4.187-.064 5.498z" fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".123"/> - <path d="M297.928 172.739c-.393 1.639-.16 3.539.007 5.021" fill="#007934" stroke="#000" stroke-width=".123"/> - <path d="M297.301 181.576c-.255-.173-2.279-2.918-2.08-5.223.144-1.688.528-1.933.528-1.933s.393-.122.65 1.412c.26 1.55 1.175 4.282.902 5.744z" fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".123"/> - <path d="M295.738 174.503c-.225 1.805.423 3.726.91 5.229" fill="#007934" stroke="#000" stroke-width=".123"/> - <path d="M296.213 184.14c-.22-.145-2.188-2.567-2.413-4.708-.165-1.568.084-1.817.084-1.817s.275-.134.718 1.27c.448 1.417 1.579 3.89 1.61 5.256z" fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".123"/> - <path d="M293.889 177.693c.124 1.68.923 3.42 1.533 4.78" fill="#007934" stroke="#000" stroke-width=".123"/> - <path d="M298.237 179.617c.26.062 3.19-.248 4.544-1.718.992-1.077.925-1.465.925-1.465s-.151-.321-1.28.41c-1.141.737-3.416 1.747-4.19 2.773z" fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".123"/> - <path d="M303.66 176.49c-1.02 1.196-2.624 1.903-3.866 2.469" fill="#007934" stroke="#000" stroke-width=".123"/> - <path d="M297.287 181.59c.254.08 3.2-.017 4.657-1.386 1.067-1.003 1.028-1.395 1.028-1.395s-.128-.331-1.307.316c-1.19.654-3.533 1.497-4.378 2.465z" fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".123"/> - <path d="M302.922 178.862c-1.104 1.119-2.754 1.709-4.034 2.184" fill="#007934" stroke="#000" stroke-width=".123"/> - <path d="M296.358 184.174c.275.074 3.423-.155 4.924-1.681 1.099-1.118 1.04-1.536 1.04-1.536s-.15-.35-1.384.393c-1.247.75-3.717 1.752-4.58 2.824z" fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".123"/> - <path d="M302.27 181.015c-1.133 1.244-2.873 1.946-4.223 2.508" fill="#007934" stroke="#000" stroke-width=".123"/> - <path d="M296.834 183.01s-.285-.553-.29-1.066c-.003-.513.128-.778.128-.778l-.2-.123s-.1.55-.099.814c.001.265.01.332.01.332s-.36-.308-.438-.483c-.078-.174-.178-.434-.178-.434l-.175.078s.163.542.301.648c.483.37.777 1.111.777 1.111" fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".123"/> - <path d="M295.595 180.305a.543.369 83.534 1 1 .123 1.08.543.369 83.534 1 1-.123-1.08z" style="marker:none" overflow="visible" fill="#000" fill-rule="evenodd" stroke="#000" stroke-width=".123"/> - <path d="M296.838 180.298a.369.543 19.29 1 1-.359 1.025.369.543 19.29 1 1 .36-1.025z" style="marker:none" overflow="visible" fill="#000" fill-rule="evenodd" stroke="#000" stroke-width=".123"/> - <path d="M296.727 182.952s.57-.249.897-.644c.327-.396.392-.684.392-.684l.233.03s-.27.49-.437.694c-.168.205-.217.252-.217.252s.473-.013.644-.099c.17-.086.413-.225.413-.225l.086.171s-.468.318-.643.313c-.608-.017-1.304.372-1.304.372" fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".123"/> - <path d="M299.394 181.634a.369.543 45.57 1 0-.776.761.369.543 45.57 1 0 .776-.76z" style="marker:none" overflow="visible" fill="#000" fill-rule="evenodd" stroke="#000" stroke-width=".123"/> - <path d="M298.443 180.848a.369.543 19.818 1 0-.368 1.022.369.543 19.818 1 0 .368-1.022z" style="marker:none" overflow="visible" fill="#000" fill-rule="evenodd" stroke="#000" stroke-width=".123"/> - <path d="M295.445 186.87c-.238-.136-2.444-2.525-2.819-4.736-.275-1.619-.032-1.893-.032-1.893s.277-.158.83 1.272c.559 1.444 1.898 3.94 2.021 5.358z" fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".123"/> - <path d="M292.604 180.32c.24 1.74 1.185 3.495 1.91 4.87" fill="#007934" stroke="#000" stroke-width=".123"/> - <path d="M295.598 186.894c.291.06 3.549-.386 5.008-2.072 1.07-1.235.981-1.665.981-1.665s-.18-.353-1.414.5c-1.246.862-3.748 2.066-4.575 3.237z" fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".123"/> - <path d="M301.537 183.22c-1.096 1.369-2.86 2.213-4.225 2.886" fill="#007934" stroke="#000" stroke-width=".123"/> - <path d="M295.173 189.627c.285.005 3.517-.923 5.028-2.65 1.107-1.264 1.038-1.63 1.038-1.63s-.163-.282-1.416.673c-1.266.966-3.785 2.438-4.65 3.607z" fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".123"/> - <path d="M301.187 185.412c-1.14 1.387-2.914 2.42-4.29 3.239" fill="#007934" stroke="#000" stroke-width=".123"/> - <path d="M295.081 189.627c-.333-.103-3.379-2.249-3.836-4.54-.335-1.678.018-2.016.018-2.016s.399-.22 1.135 1.206c.743 1.44 2.556 3.859 2.683 5.35z" fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".123"/> - <path d="M291.275 183.155c.281 1.812 1.562 3.513 2.542 4.848" fill="#007934" stroke="#000" stroke-width=".123"/> - <path d="M295.174 193.072c.29-.049 3.387-1.598 4.594-3.638.883-1.494.745-1.852.745-1.852s-.217-.257-1.307.95c-1.1 1.219-3.375 3.189-4.032 4.54z" fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".123"/> - <path d="M300.473 187.657c-.894 1.624-2.497 3.009-3.737 4.099" fill="#007934" stroke="#000" stroke-width=".123"/> - <path d="M295.024 193.187c-.336-.043-3.619-1.681-4.458-3.965-.615-1.672-.338-2.09-.338-2.09s.342-.303 1.294 1.032c.963 1.348 3.118 3.504 3.502 5.023z" fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".123"/> - <path d="M290.254 187.217c.587 1.822 2.108 3.337 3.278 4.531" fill="#007934" stroke="#000" stroke-width=".123"/> - <path d="M295.075 191.604s-.449-.51-.59-1.052c-.14-.541-.072-.857-.072-.857l-.244-.077s.04.608.112.888c.072.28.098.349.098.349s-.462-.23-.59-.395c-.13-.164-.306-.413-.306-.413l-.164.13s.317.53.492.605c.61.264 1.118.97 1.118.97" fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".123"/> - <path d="M293.019 189.057a.593.402 69.444 1 1 .416 1.11.593.402 69.444 1 1-.416-1.11z" style="marker:none" overflow="visible" fill="#000" fill-rule="evenodd" stroke="#000" stroke-width=".123"/> - <path d="M294.33 188.72a.402.593 5.202 1 1-.107 1.182.402.593 5.202 1 1 .108-1.181z" style="marker:none" overflow="visible" fill="#000" fill-rule="evenodd" stroke="#000" stroke-width=".123"/> - <path d="M295.04 191.554s.537-.416.778-.921c.24-.505.233-.828.233-.828l.255-.03s-.156.59-.279.851c-.123.261-.162.324-.162.324s.497-.139.655-.276c.158-.136.377-.347.377-.347l.137.158s-.412.46-.597.501c-.649.144-1.282.74-1.282.74" fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".123"/> - <path d="M297.525 189.454a.402.593 31.485 1 0-.62 1.011.402.593 31.485 1 0 .62-1.011z" style="marker:none" overflow="visible" fill="#000" fill-rule="evenodd" stroke="#000" stroke-width=".123"/> - <path d="M296.293 188.866a.402.593 5.73 1 0-.118 1.18.402.593 5.73 1 0 .118-1.18z" style="marker:none" overflow="visible" fill="#000" fill-rule="evenodd" stroke="#000" stroke-width=".123"/> - <path d="M295.429 196.224c-.324-.054-3.793-1.79-5.145-4.075-.99-1.672-.835-2.074-.835-2.074s.243-.287 1.464 1.064c1.233 1.365 3.78 3.572 4.516 5.085z" fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".123"/> - <path d="M289.494 190.16c1.002 1.819 2.797 3.37 4.185 4.59" fill="#007934" stroke="#000" stroke-width=".123"/> - <path d="M295.651 196.166c.368-.047 3.964-1.842 4.884-4.342.674-1.832.37-2.288.37-2.288s-.374-.332-1.418 1.129c-1.054 1.476-3.415 3.837-3.836 5.5z" fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".123"/> - <path d="M300.877 189.628c-.644 1.995-2.31 3.654-3.592 4.962" fill="#007934" stroke="#000" stroke-width=".123"/> - <path d="M296.59 199.248c.34-.087 3.672-2.236 4.537-4.77.633-1.854.356-2.263.356-2.263s-.344-.28-1.317 1.257c-.983 1.552-3.178 4.113-3.577 5.776z" fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".123"/> - <path d="M301.456 192.308c-.607 2.01-2.156 3.81-3.348 5.225" fill="#007934" stroke="#000" stroke-width=".123"/> - <path d="M296.337 199.249c-.413.022-4.714-1.23-6.222-3.788-1.103-1.874-.862-2.435-.862-2.435s.345-.439 1.78.955c1.45 1.409 4.511 3.528 5.304 5.268z" fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".123"/> - <path d="M289.303 193.122c1.104 2.059 3.262 3.546 4.928 4.725" fill="#007934" stroke="#000" stroke-width=".123"/> - <path d="M300.152 205.69c.265-.178 2.593-3.074 2.78-5.565.137-1.823-.18-2.1-.18-2.1s-.347-.143-.834 1.503c-.493 1.663-1.785 4.579-1.766 6.163z" fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".123"/> - <path d="M302.749 198.115c-.083 1.953-.995 4.004-1.692 5.609" fill="#007934" stroke="#000" stroke-width=".123"/> - <path d="M299.952 205.62c-.428.131-5.3.02-7.6-2.132-1.683-1.575-1.585-2.198-1.585-2.198s.24-.528 2.138.482c1.918 1.02 5.728 2.324 7.047 3.848z" fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".123"/> - <path d="M290.846 201.372c1.735 1.76 4.419 2.673 6.5 3.407" fill="#007934" stroke="#000" stroke-width=".123"/> - <path d="M298.161 203.082c-.379.02-4.724-1.028-6.81-3.207-1.527-1.594-1.45-2.074-1.45-2.074s.205-.377 1.914.807c1.727 1.196 5.145 2.992 6.346 4.474z" fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".123"/> - <path d="M289.973 197.882c1.576 1.753 3.984 3.014 5.851 4.013" fill="#007934" stroke="#000" stroke-width=".123"/> - <path d="M298.4 202.952c.359-.131 3.568-2.794 3.935-5.58.268-2.04-.138-2.442-.138-2.442s-.45-.258-1.172 1.484c-.73 1.76-2.573 4.728-2.625 6.538z" fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".123"/> - <path d="M302.189 195.032c-.202 2.202-1.505 4.289-2.5 5.927" fill="#007934" stroke="#000" stroke-width=".123"/> - <path d="M297.442 201.461s-.69-.322-1.076-.815c-.387-.494-.458-.848-.458-.848l-.285.03s.314.606.512.861c.199.256.257.314.257.314s-.577-.03-.783-.14c-.206-.111-.498-.288-.498-.288l-.11.206s.562.403.775.402c.743-.002 1.582.495 1.582.495" fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".123"/> - <path d="M294.22 199.783a.664.45 45.889 1 1 .924.953.664.45 45.889 1 1-.924-.953z" style="marker:none" overflow="visible" fill="#000" fill-rule="evenodd" stroke="#000" stroke-width=".123"/> - <path d="M295.416 198.848a.664.45 71.645 1 1 .418 1.26.664.45 71.645 1 1-.418-1.26z" style="marker:none" overflow="visible" fill="#000" fill-rule="evenodd" stroke="#000" stroke-width=".123"/> - <path d="M297.531 201.438s.366-.667.387-1.294c.021-.626-.13-.954-.13-.954l.247-.145s.105.675.095.999c-.01.323-.022.404-.022.404s.449-.364.55-.575c.1-.211.231-.526.231-.526l.211.1s-.216.658-.388.783c-.602.437-.985 1.333-.985 1.333" fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".123"/> - <path d="M299.133 198.173a.45.664 7.93 1 0-.183 1.315.45.664 7.93 1 0 .183-1.315z" style="marker:none" overflow="visible" fill="#000" fill-rule="evenodd" stroke="#000" stroke-width=".123"/> - <path d="M297.616 198.121a.664.45 72.174 1 0 .407 1.264.664.45 72.174 1 0-.407-1.264z" style="marker:none" overflow="visible" fill="#000" fill-rule="evenodd" stroke="#000" stroke-width=".123"/> - <path d="M301.771 207.593c-.303.192-4.25 1.066-6.767-.238-1.843-.955-1.958-1.483-1.958-1.483s.028-.48 1.867-.03c1.859.455 5.324.766 6.858 1.751z" fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".123"/> - <path d="M293.135 205.923c1.942 1.096 4.381 1.31 6.281 1.499" fill="#007934" stroke="#000" stroke-width=".123"/> - <path d="M302.01 207.524c.213-.137 1.953-2.571 1.878-4.86-.055-1.677-.356-1.968-.356-1.968s-.313-.17-.579 1.304c-.268 1.489-1.11 4.053-.943 5.524z" fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".123"/> - <path d="M303.538 200.779c.115 1.802-.48 3.606-.93 5.019" fill="#007934" stroke="#000" stroke-width=".123"/> - <path d="M305.54 210.337c-.374.229-5.108 1.462-7.981.244-2.104-.891-2.199-1.451-2.199-1.451s.07-.518 2.21-.17c2.16.352 6.233.43 7.97 1.377z" fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".123"/> - <path d="M295.461 209.178c2.21 1.036 5.077 1.087 7.308 1.149" fill="#007934" stroke="#000" stroke-width=".123"/> - <path d="M305.764 210.31c.204-.3 1.22-3.828 0-5.651-.892-1.335-1.419-1.311-1.419-1.311s-.482.133-.096 1.58c.39 1.463.58 4.313 1.515 5.381z" fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".123"/> - <path d="M304.394 203.41c1.03 1.387 1.16 3.395 1.282 4.953" fill="#007934" stroke="#000" stroke-width=".123"/> - <path d="M303.341 208.648s-.582.456-1.207.094c-.625-.363-.852-.712-.852-.712l-.293.154s.595.515.917.703c.321.188.409.226.409.226s-.63.215-.899.185c-.267-.03-.655-.095-.655-.095l-.03.268s.756.114 1.001.098c.246-.016 1.531-.515 1.531-.515" fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".123"/> - <path d="M299.464 208.734a.765.52 24.117 1 1 1.397.625.765.52 24.117 1 1-1.397-.625z" style="marker:none" overflow="visible" fill="#000" fill-rule="evenodd" stroke="#000" stroke-width=".123"/> - <path d="M300.339 207.227a.765.52 49.87 1 1 .986 1.17.765.52 49.87 1 1-.986-1.17z" style="marker:none" overflow="visible" fill="#000" fill-rule="evenodd" stroke="#000" stroke-width=".123"/> - <path d="M303.452 209.033s.491-.553.168-1.199c-.323-.646-.658-.895-.658-.895l.172-.283s.477.627.645.96c.168.332.2.422.2.422s.255-.617.24-.886c-.013-.269-.053-.66-.053-.66l.269-.014s.067.763.036 1.007c-.031.243-.61 1.496-.61 1.496" fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".123"/> - <path d="M303.72 205.138a.765.52 69.449 1 0 .537 1.433.765.52 69.449 1 0-.537-1.433zM302.156 205.923a.765.52 43.692 1 0 1.107 1.057.765.52 43.692 1 0-1.107-1.057z" style="marker:none" overflow="visible" fill="#000" fill-rule="evenodd" stroke="#000" stroke-width=".123"/> - <path d="M308.308 211.854c-.26.35-4.218 2.93-7.387 2.302-2.32-.46-2.629-1.061-2.629-1.061s-.136-.596 2.006-.752c2.164-.157 6.012-1.104 8.01-.489z" fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".123"/> - <path d="M298.406 213.123c2.476.595 5.185-.078 7.301-.576" fill="#007934" stroke="#000" stroke-width=".123"/> - <path d="M310.771 212.546s-.467.712-1.282.548c-.816-.165-1.193-.462-1.193-.462l-.262.276s.84.342 1.26.429c.42.086.53.095.53.095s-.61.468-.913.533c-.303.066-.75.139-.75.139l.066.303s.868-.154 1.13-.262c.26-.108 1.479-1.127 1.479-1.127" fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".123"/> - <path d="M306.57 214.057a.881.598 5.412 1 1 1.754.166.881.598 5.412 1 1-1.754-.166zM306.97 212.085a.881.598 31.167 1 1 1.507.912.881.598 31.167 1 1-1.508-.912z" style="marker:none" overflow="visible" fill="#000" fill-rule="evenodd" stroke="#000" stroke-width=".123"/> - <path d="M309.477 212.209c.18-.323.764-3.944-.898-5.577-1.218-1.196-1.806-1.101-1.806-1.101s-.522.197.143 1.573c.672 1.39 1.34 4.178 2.56 5.105z" fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".123"/> - <path d="M306.837 205.586c1.381 1.228 1.845 3.192 2.23 4.714" fill="#007934" stroke="#000" stroke-width=".123"/> - <path d="M311.364 213.077s.22-.823-.447-1.32c-.667-.498-1.14-.581-1.14-.581l.03-.38s.815.397 1.16.653c.345.255.425.33.425.33s-.058-.765-.211-1.035c-.154-.27-.398-.65-.398-.65l.27-.154s.464.75.558 1.016c.094.267.148 1.854.148 1.854" fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".123"/> - <path d="M309.67 208.927a.881.598 42.736 1 0 1.294 1.197.881.598 42.736 1 0-1.294-1.197zM308.467 210.543a.881.598 16.98 1 0 1.686.515.881.598 16.98 1 0-1.686-.515z" style="marker:none" overflow="visible" fill="#000" fill-rule="evenodd" stroke="#000" stroke-width=".123"/> - <path d="M319.105 208.988s-2.341 5.437-1.533 5.976c0 0 2.376-4.22 4.46-5.817 1.085-1.023 1.744.009 1.884-.89.14-.9-2.853-2.19-2.853-2.19l-1.916 2.696" fill="#452c25"/> - <path d="M319.105 208.988s-2.341 5.437-1.533 5.976c0 0 2.376-4.22 4.46-5.818 1.085-1.022 1.744.01 1.884-.89.14-.899-2.853-2.189-2.853-2.189l-1.916 2.696" fill="none" stroke="#000" stroke-width=".164"/> - <path d="M310.565 213.128s-3.403 5.923-2.51 5.993c.892.07 4.53-7.553 4.53-7.553l-1.24.212-.78 1.348z" fill="#452c25"/> - <path d="M310.565 213.128s-3.403 5.923-2.51 5.993c.892.07 4.53-7.553 4.53-7.553l-1.24.212-.78 1.348z" fill="none" stroke="#000" stroke-width=".133"/> - <path d="M311.593 211.477s-3.557 5.828-2.667 5.922c.89.094 4.727-7.427 4.727-7.427l-1.246.179-.814 1.326z" fill="#452c25"/> - <path d="M311.593 211.477s-3.557 5.828-2.667 5.922c.89.094 4.727-7.427 4.727-7.427l-1.246.179-.814 1.326z" fill="none" stroke="#000" stroke-width=".133"/> - <path d="M312.312 210.463s-4.05 5.482-3.171 5.657c.878.174 5.354-6.969 5.354-6.969l-1.256.065-.927 1.247z" fill="#452c25"/> - <path d="M312.312 210.463s-4.05 5.482-3.171 5.657c.878.174 5.354-6.969 5.354-6.969l-1.256.065-.927 1.247z" fill="none" stroke="#000" stroke-width=".133"/> - <path d="M313.395 209.5s-4.742 4.868-3.895 5.163c.846.295 6.232-6.16 6.232-6.16l-1.253-.11-1.084 1.107z" fill="#452c25"/> - <path d="M313.395 209.5s-4.742 4.868-3.895 5.163c.846.295 6.232-6.16 6.232-6.16l-1.253-.11-1.084 1.107z" fill="none" stroke="#000" stroke-width=".133"/> - <path d="M313.564 207.73s-4.138 5.412-3.263 5.602c.875.189 5.467-6.877 5.467-6.877l-1.257.043-.947 1.231z" fill="#452c25"/> - <path d="M313.564 207.73s-4.138 5.412-3.263 5.602c.875.189 5.467-6.877 5.467-6.877l-1.257.043-.947 1.231z" fill="none" stroke="#000" stroke-width=".133"/> - <path d="M312.509 212.38s-4.05 5.483-3.172 5.658c.878.174 5.355-6.969 5.355-6.969l-1.257.065-.926 1.247z" fill="#452c25"/> - <path d="M312.509 212.38s-4.05 5.483-3.172 5.658c.878.174 5.355-6.969 5.355-6.969l-1.257.065-.926 1.247z" fill="none" stroke="#000" stroke-width=".133"/> - <path d="M314.788 211.297s-2.371 4.463-2.1 4.648c.27.184 3.15-2.545 4.572-5.2 1.423-2.656-2.574.442-2.574.442" fill="#452c25"/> - <path d="M314.788 211.297s-2.371 4.463-2.1 4.648c.27.184 3.15-2.545 4.572-5.2 1.423-2.656-2.574.442-2.574.442" fill="none" stroke="#000" stroke-width=".133"/> - <path d="M315.041 210.855s-2.34 5.436-1.532 5.976c0 0 2.937-3.28 3.704-5.886.766-2.607 0-.18 0-.18l-.213-2.831-1.916 2.696" fill="#452c25"/> - <path d="M315.041 210.855s-2.34 5.436-1.532 5.976c0 0 2.937-3.28 3.704-5.886.766-2.607 0-.18 0-.18l-.213-2.831-1.916 2.696" fill="none" stroke="#000" stroke-width=".164"/> - <path d="M313.826 210.38s-4.742 4.868-3.896 5.163c.846.295 6.233-6.16 6.233-6.16l-1.254-.11-1.083 1.106z" fill="#452c25"/> - <path d="M313.826 210.38s-4.742 4.868-3.896 5.163c.846.295 6.233-6.16 6.233-6.16l-1.254-.11-1.083 1.106z" fill="none" stroke="#000" stroke-width=".133"/> - <path d="M314.202 211.04s-4.742 4.868-3.895 5.163c.847.295 6.232-6.16 6.232-6.16l-1.253-.11-1.084 1.106z" fill="#452c25"/> - <path d="M314.202 211.04s-4.742 4.868-3.895 5.163c.847.295 6.232-6.16 6.232-6.16l-1.253-.11-1.084 1.106z" fill="none" stroke="#000" stroke-width=".133"/> - <path d="M314.579 211.809s-4.742 4.868-3.895 5.163c.846.295 6.232-6.16 6.232-6.16l-1.253-.11-1.084 1.107z" fill="#452c25"/> - <path d="M314.579 211.809s-4.742 4.868-3.895 5.163c.846.295 6.232-6.16 6.232-6.16l-1.253-.11-1.084 1.107z" fill="none" stroke="#000" stroke-width=".133"/> - <path d="M314.933 205.125s-3.522 4.5-3.015 5.274c.509.775 3.726-2.066 4.743-4.057 1.016-1.992-1.694-1.365-1.694-1.365" fill="#452c25"/> - <path d="M314.933 205.125s-3.522 4.5-3.015 5.274c.509.775 3.726-2.066 4.743-4.057 1.016-1.992-1.694-1.365-1.694-1.365" fill="none" stroke="#000" stroke-width=".133"/> - <path d="M314.82 209.904s-3.02 5.78-2.24 5.447c.779-.332 3.84-4.678 4.178-5.637.34-.959.225-1.96.225-1.96l-2.337 1.438.2 1.12" fill="#452c25"/> - <path d="M314.82 209.904s-3.02 5.78-2.24 5.447c.779-.332 3.84-4.678 4.178-5.637.34-.959.225-1.96.225-1.96l-2.337 1.438.2 1.12" fill="none" stroke="#000" stroke-width=".133"/> - <path d="M314.841 208.003s2.506-4.606-.017.868c-2.523 5.474-3.467 4.57-3.467 4.57-.195-.311 2.194-4.02 2.194-4.02s1.773-2.854 2.198-3.125" fill="#452c25"/> - <path d="M314.841 208.003s2.506-4.606-.017.868c-2.523 5.474-3.467 4.57-3.467 4.57-.195-.311 2.194-4.02 2.194-4.02s1.773-2.854 2.198-3.125" fill="none" stroke="#000" stroke-width=".113"/> - <path d="M317.528 207.392s2.787-4.575-.007.868c-2.794 5.444-3.883 4.524-3.883 4.524-.227-.316 2.44-3.993 2.44-3.993s1.979-2.83 2.46-3.096" fill="#452c25"/> - <path d="M317.528 207.392s2.787-4.575-.007.868c-2.794 5.444-3.883 4.524-3.883 4.524-.227-.316 2.44-3.993 2.44-3.993s1.979-2.83 2.46-3.096" fill="none" stroke="#000" stroke-width=".121"/> - <path d="M316.506 205.46s-3.523 4.5-3.015 5.275c.508.775 3.726-2.066 4.742-4.057 1.016-1.992-1.694-1.364-1.694-1.364" fill="#452c25" stroke="#000" stroke-width=".133"/> - <path d="M352.821 251.076a32.82 36.922 0 1 1-65.638 0 32.82 36.922 0 1 1 65.638 0z" fill="#e8a30e"/> - <path d="M293.699 251.074c0-17.152 12.068-30.316 26.298-30.316 14.231 0 26.3 13.164 26.3 30.316" style="line-height:normal;-inkscape-font-specification:Sans;text-indent:0;text-align:start;text-decoration-line:none;text-transform:none;block-progression:tb;marker:none" font-weight="400" overflow="visible" color="#000" font-family="Sans" fill="none" stroke="#390" stroke-width=".82"/> - <path d="M287.223 253.01c.895 19.491 15.227 34.986 32.775 34.986 17.549 0 31.878-15.495 32.773-34.986h-65.548z" fill="#007934" stroke="#eee" stroke-width=".082"/> - <path d="M352.821 251.075a32.82 36.922 0 1 1-65.638 0 32.82 36.922 0 1 1 65.638 0z" fill="none" stroke="#000" stroke-width=".369"/> - <path d="M314.506 225.364c-.36 1.405.037 2.562.724 3.652.53.843.88 1.742.863 2.707a7.866 7.866 0 0 0-.694.44l-5.55-3.686 3.726 5.49a7.948 7.948 0 0 0-.195.283c-1.057-.476-2.05-.57-2.995-.388-1.336.259-2.471-.021-3.656-.727.74 1.248 1.843 1.785 3.1 2.07.973.222 1.853.61 2.525 1.306a7.94 7.94 0 0 0-.18.798l-6.533 1.325 6.519 1.247c.018.112.04.224.062.335-1.084.41-1.855 1.044-2.394 1.842-.763 1.128-1.758 1.733-3.095 2.071 1.406.36 2.56-.041 3.65-.728.844-.531 1.742-.88 2.707-.864.137.242.283.472.441.695l-3.684 5.555 5.492-3.733c.091.066.184.135.279.197-.477 1.057-.569 2.054-.386 2.999.258 1.337-.023 2.467-.73 3.651 1.248-.74 1.786-1.843 2.071-3.1.221-.973.609-1.853 1.306-2.524.263.073.527.133.798.179l1.324 6.533 1.247-6.518c.112-.018.224-.04.336-.063.41 1.085 1.044 1.856 1.842 2.395 1.127.762 1.732 1.757 2.07 3.094.36-1.405-.04-2.56-.728-3.65-.532-.845-.877-1.74-.858-2.709.24-.135.468-.282.69-.439l5.554 3.685-3.728-5.494c.066-.09.13-.184.192-.277 1.058.477 2.054.569 3 .386 1.336-.259 2.466.023 3.651.73-.74-1.249-1.841-1.782-3.098-2.067-.972-.22-1.851-.616-2.522-1.312.073-.262.129-.527.174-.796l6.536-1.32-6.52-1.252a7.861 7.861 0 0 0-.063-.336c1.085-.41 1.855-1.043 2.394-1.841.763-1.128 1.76-1.728 3.097-2.066-1.406-.36-2.563.036-3.653.723-.844.532-1.74.877-2.708.859a7.864 7.864 0 0 0-.44-.69l3.687-5.55-5.496 3.723a8.041 8.041 0 0 0-.277-.192c.477-1.057.57-2.049.388-2.994-.258-1.337.021-2.472.728-3.657-1.248.74-1.781 1.842-2.066 3.098-.222.975-.616 1.858-1.315 2.53a7.939 7.939 0 0 0-.794-.182l-1.32-6.535-1.251 6.52c-.112.018-.224.04-.336.063-.41-1.085-1.043-1.856-1.842-2.395-1.127-.762-1.727-1.759-2.066-3.096z" style="marker:none" overflow="visible" fill="#d52b1e" stroke="#000" stroke-width=".123"/> - <use height="330" width="330" transform="rotate(22.502 -417.893 955.825) scale(.14262)" fill="#fcbf49" stroke-width="1.112"/> - <use height="330" width="330" transform="matrix(-.14262 0 0 .14262 333.956 232.69)" fill="#fcbf49" stroke-width="1.112"/> - <path d="M325.847 236.704c-1.64-1.426-3.708-1.64-4.849-.57-.828 1.107-.754 2.41.214 3.779a.54.54 0 0 0-.285.143c-.72-1.37-.843-2.78-.357-4.065 1.57-1.284 3.709-1.426 5.277.713" fill="#000"/> - <path d="M323.28 236.276c-.927 0-1.14.214-1.569.57-.427.357-.641.286-.713.357-.07.071 0 .285.143.214.143-.071.428-.214.856-.57.428-.357.855-.357 1.283-.357 1.284 0 1.997 1.07 2.14.998.142-.07-.714-1.212-2.14-1.212" fill="#000"/> - <path d="M324.92 237.488c-.927-.998-2.638-1.07-3.351.072h.285c.713-1.141 2.425-.642 2.567-.143v.143" fill="#000"/> - <circle r=".642" cy="237.417" cx="323.138" fill="#000"/> - <path d="M321.569 237.56c.713.641 2.282.713 3.351-.072l-.499-.07c-.713.784-1.854.712-2.567.142v-.143" fill="#000"/> - <path d="M324.992 237.845c-1.213.927-2.425.856-3.138.428-.713-.428-.713-.57-.57-.57.142 0 .285.142.855.427.57.285 1.426.285 2.853-.285m-3.494 2.14a.428.428 0 1 1-.571.427c-.071.143-.357.57-.927.57h-.143l.143.214c.143 0 .57 0 .856-.213a.642.642 0 1 0 .642-.999m.855 2.995c-.642-.428-.927-1.07-1.64-1.07-.143 0-.428.072-.713.214h-.143l.143.214c.285 0 .713-.356 1.212-.07.5.284.785.57 1.141.712m-.214 0c-1.426-.428-1.711-.142-2.139-.142h-.143l.143.285c.57 0 .856-.428 2.14-.143" fill="#000"/> - <path d="M322.353 242.98c-1.569-.143-1.07.784-2.353.784h-.143l.143.214c1.569 0 .856-.856 2.353-.999M314.152 236.704c1.64-1.426 3.708-1.64 4.85-.57.827 1.107.753 2.41-.215 3.779a.54.54 0 0 1 .285.143c.72-1.37.843-2.78.357-4.065-1.569-1.284-3.708-1.426-5.277.713" fill="#000"/> - <path d="M316.72 236.276c.926 0 1.14.214 1.568.57.428.357.642.286.713.357.071.071 0 .285-.142.214a4.102 4.102 0 0 1-.856-.57c-.428-.357-.856-.357-1.284-.357-1.283 0-1.996 1.07-2.139.998-.143-.07.713-1.212 2.14-1.212" fill="#000"/> - <path d="M315.08 237.488c.926-.998 2.638-1.07 3.35.072h-.285c-.713-1.141-2.424-.642-2.567-.143v.143" fill="#000"/> - <circle transform="scale(-1 1)" r=".642" cy="237.417" cx="-316.862" fill="#000"/> - <path d="M318.43 237.56c-.712.641-2.281.713-3.35-.072l.498-.07c.713.784 1.854.712 2.567.142v-.143" fill="#000"/> - <path d="M315.008 237.845c1.212.927 2.424.856 3.137.428.714-.428.714-.57.57-.57-.142 0-.284.142-.855.427-.57.285-1.426.285-2.852-.285m3.494 2.14a.428.428 0 1 0 .57.427c.072.143.357.57.927.57h.143l-.143.214c-.142 0-.57 0-.855-.213a.642.642 0 1 1-.642-.999m-.856 2.995c.642-.428.927-1.07 1.64-1.07.143 0 .428.072.713.214h.143l-.143.214c-.285 0-.713-.356-1.212-.07-.499.284-.784.57-1.14.712m.213 0c1.426-.428 1.712-.142 2.14-.142h.142l-.143.285c-.57 0-.855-.428-2.139-.143" fill="#000"/> - <path d="M317.646 242.98c1.57-.143 1.07.784 2.353.784h.143l-.143.214c-1.568 0-.855-.856-2.353-.999" fill="#000"/> - <path d="M323.217 258.424c1.602.203 3.278.154 4.726-.298 1.325-.46 2.768-.769 4.196-.622.007-.2.429-.34.193-.498-.523-.323-1.183-.29-1.83-.618-1.058-.49-1.681-1.328-2.736-1.925-.116-.047-.582-.32-.573-.576 2.22 3.196 7.466 1.564 11.959 1.212.413.114 1.498-.2 2.4-.476 1.087-.368 3.702-.079 4.375-.518.11-.04-1.107-.795-1.34-1.01-.626-.782-2.245-.68-3.05-1.524-1.262-1.416-3.215-1.837-4.799-3.013-.351-.212-1.07-.145-1.6-.269-.652-.55-.015-.532-4.994-4.634-4.508-1.856-4.242-3.265-7.04-4.344-.993-.489-1.9-1.363-2.742-1.134-1.505.405-4.768 2.073-6.23 2.942-1.216.721-2.74 2.017-3.785 2.85-.274.218-3.448 2.909-7.043 4.884-3.595 1.974-8.799 4.68-9.246 4.715 8.113-.406-7.255 2.3 29.159 4.856z" fill="#007934" stroke="#000" stroke-width=".123" stroke-linecap="round"/> - <path d="M303.308 249.078c2.055-1.116 9.917-5.42 12.357-8.448-.333.023.66.942.58 1.317.761-.028.37-.855 1.004-.886.486.016.843-.184 1.267-.335.49-.09.198.218.193.383-.665 1.222-2.082 1.929-3.233 2.863.133.11.266.22.193.384.408.06.894.076 1.185-.173.07-.05.075-.215.079-.321.413.173.257.492.113.705-.295.639-1.48.54-1.85 1.123-.43.627-.867 1.155-1.515 1.623.5-.413 1.074-.937 1.707-.969.977-.073 1.349-.709 2.193-.892.912-.182 1.492-.923 2.212-1.495-.288.42-.864.779-.667 1.275a.582.582 0 0 0 .572.114c-.652.844-1.949 1.454-2.401 2.465-.413-.173-.697.135-.98.179-.416.145-.3.797-.59 1.006-1.202.66-1.803 1.779-2.322 2.727-.072.104-.995.615-1.348.71-.633.25-4.597 3.313-4.651 2.881-.342-2.062-4.348 1.66-13.292-1.552m30.548-.085c-.065-.082-.2-.126-.2-.165.148-.316-.474-.378-.463-.703 1.041.035 1.84 1.227 2.495.523.142-.159-.26-.409.362-.59.138-.03-.131-.163-.06-.245-.342-.011-.625.019-.836-.063-.27-.088-.413-.172-.752-.267-.339-.09-.472-.456.02-.563.91-.133 1.863.502 2.575.165.564-.263 1.122-.323 1.684-.507.275-.07 1.187.005.896.267-.21.156-.695.096-.98.165-.491.142-.918.37-1.411.556.343-.028.261.37.683.265.63-.176 1.27-.397 1.964-.458-.063-.16.147-.277.152-.44l.205.007c-.326-.49.632-.256.996-.65-.003.08.057.082.132.124-.493.181-.29.51-.435.752-.07.077-.277.11-.213.235.267.207.279-.149.49-.063.203.046.482.135.62.1.341.011.697-.135.493-.429-.265-.246-.54-.458-.53-.779.001-.04-.065-.08-.2-.125.554.019.967.196 1.164.44.265.25.322.613.746.712.824.146.769-.257.782-.661.622.06 1.52.332 1.372.648-.068.235-.57.421-1.058.45-.342.023-.146.276-.352.31-.41-.015-.908.048-1.05.206-.144.238.045.724.312.895.404.212 1.25-.037 1.879.063.072-.359.502-.462.86-.698.418-.223-.19-.446-.534-.62-.27-.089-.063-.161.08-.359.213-.23.838-.011.913-.207.145-.237-.117-.607.162-.76.21-.152.483.134.4.334.273-.025.347-.186.63-.216.343-.028.547.256.4.335-.42.267-.776.453-.653.863-.007.202-.496.265-.288.435.4.295.39.577.525.903.125.364.89.47 1.587.335-.25-.692 1.337-.357 2.044-.536.06.002.064-.116.005-.158-.335-.208-.4-.29-.323-.574.001-.035-.124-.123-.2-.165 1.031.356 2.86.844 3.609 1.472-.98.165-2.81-.278-3.792-.069-1.19.282-2.39.642-3.653.6-.555-.02-1.102-.274-1.657-.293m-11.216-.696c.136.039-.34-.05-.407-.093" fill="#007934" stroke="#000" stroke-width=".123"/> - <path d="M321.17 259.149c1.938-.11 2.242 1.395 3.512.08 1.161.213 2.237-.176 2.253-.343 2.705.567 11.109-.212 10.554-.806-.866-.99-2.275-1.363-3.385-2.213-.249-.157-.767-.24-1.148-.348-.637-.194-1.483-.047-2.025-.33-.872-.49-1.797-.914-2.57-1.53-.488-.348-.655-.904-1.189-1.327-.571-.422-1.396-.503-1.983-.763-.884-.354-1.371-1.209-2.193-1.829-.284-.226-.77-.207-1.099-.408-.705-.37-1.247-1.165-1.87-1.056-1.113.19-1.77 1.1-2.87 1.598-.915.412-1.337 1.177-2.131 1.671-.209.13-2.628 1.736-5.327 2.852-2.699 1.116-6.238 2.467-6.566 2.467 0 0 2.384 1.755 7.933 1.52l3.393 1.093 1.897-.334s4.724-.004 4.814.005z" fill="#007934" stroke="#000" stroke-width=".123"/> - <path d="M309.758 254.841c1.246-.598 6.017-2.905 7.488-4.525-.203.012.408.503.36.703.464-.015.222-.457.608-.475.296.008.513-.098.77-.18.299-.048.122.117.12.205-.4.654-1.259 1.033-1.956 1.533.082.06.164.118.12.205.249.032.545.04.721-.093.043-.027.045-.115.047-.172.252.092.159.263.072.377-.176.342-.899.29-1.121.602-.26.335-.523.618-.916.869.303-.222.65-.502 1.036-.52.595-.04.818-.38 1.332-.478.554-.098.904-.495 1.34-.8-.173.224-.522.416-.4.681.042.03.204.18.377.124-.393.452-1.208.716-1.478 1.256-.253-.092-.424.073-.597.097-.252.077-.179.426-.354.538-.73.354-1.09.952-1.401 1.46-.044.055-.604.329-.819.38-.384.134-2.785 1.775-2.82 1.544-.218-1.102-2.55.524-8.018-1.186" fill="#007934" stroke="#000" stroke-width=".123"/> - <path overflow="visible" font-weight="400" style="line-height:normal;-inkscape-font-specification:Sans;text-indent:0;text-align:start;text-decoration-line:none;text-transform:none;block-progression:tb;marker:none" d="M319.997 214.153c-18.125 0-32.819 16.53-32.819 36.921 0 20.392 14.694 36.922 32.82 36.922 18.125 0 32.819-16.53 32.819-36.922 0-20.39-14.694-36.921-32.82-36.921zm0 8.246c13.214 0 24.658 12.287 24.658 28.675 0 16.389-11.444 28.674-24.658 28.674-13.213 0-24.658-12.285-24.658-28.674 0-16.388 11.445-28.675 24.658-28.675z" color="#000" font-family="Sans" fill="#00a6de" stroke="#000" stroke-width=".123"/> - <path d="M324.726 266.791c.004.201-.07.209-.448.26-.37.05-.441.051-.446-.14-.004-.201.078-.21.448-.26.35-.047.441-.072.446.14z" fill="#e8a30e" stroke="#000" stroke-width=".041"/> - <path d="M324.806 266.78c.005.126-.237.157-.527.196-.291.039-.52.066-.526-.053-.006-.127.236-.158.527-.197.29-.039.52-.078.526.054zm-2.831 8.983c.795-2.128 1.004-3.736-.134-6.018 1.89-1.803 3.277-1.178 4.53.103-1.193 2.253-.88 3.859-.2 5.93-1.481.784-2.772.762-4.196-.015z" fill="#e8a30e" stroke="#000" stroke-width=".041"/> - <path d="M324.064 268.624a2.32 2.32 0 0 0-.118.005c.132 2.587.02 5.155-.003 7.724.052.002.105.003.157.003-.009-2.586.14-5.09-.03-7.733h-.007z" fill="#e8a30e" stroke="#000" stroke-width=".041"/> - <path d="M324.422 268.65c-.334 2.356-.458 4.736-.377 7.706l.138-.001c-.02-2.93.083-5.313.37-7.679l-.13-.026zm.641-2.463c-.335.37-.52.367-.352.94.371-.253.361-.462.352-.94z" fill="#e8a30e" stroke="#000" stroke-width=".041"/> - <path d="M324.318 266.435c.22.23.54.35.336.974-.4-.346-.348-.38-.336-.974z" fill="#e8a30e" stroke="#000" stroke-width=".041"/> - <path d="M324.25 267.071c.29.211.556.255.357.799-.254-.304-.365-.279-.357-.799z" fill="#e8a30e" stroke="#000" stroke-width=".041"/> - <path d="M324.17 267.41c.22.227.541.346.338.956-.4-.34-.348-.373-.338-.956z" fill="#e8a30e" stroke="#000" stroke-width=".041"/> - <path d="M324.042 267.905c.257.222.63.342.402.93-.445-.375-.226-.462-.402-.93z" fill="#e8a30e" stroke="#000" stroke-width=".041"/> - <path d="M323.993 268.404c.24.216.62.342.405.911-.343-.314-.387-.364-.405-.911zm1.292-1.696c-.175.146-.578.131-.594.754.496-.286.491-.231.594-.754z" fill="#e8a30e" stroke="#000" stroke-width=".041"/> - <path d="M325.258 267.15c-.186.135-.617.119-.63.702.529-.263.524-.211.63-.701z" fill="#e8a30e" stroke="#000" stroke-width=".041"/> - <path d="M325.195 267.551c-.193.146-.639.129-.654.758.549-.284.542-.23.654-.758z" fill="#e8a30e" stroke="#000" stroke-width=".041"/> - <path d="M325.162 268.102c-.203.075-.676-.074-.68.707.405-.108.377-.346.68-.707z" fill="#e8a30e" stroke="#000" stroke-width=".041"/> - <path d="M324.937 268.577c-.283.119-.443.095-.495.723.41-.277.405-.225.495-.723zm.31.37c-.715 2.048-.865 3.986-.794 7.39l.173-.022c-.035-3.375.094-5.242.75-7.293a2.77 2.77 0 0 0-.13-.075zm1.165-2.256c-.408.289-.587.247-.544.84.418-.166.452-.372.544-.84z" fill="#e8a30e" stroke="#000" stroke-width=".041"/> - <path d="M325.628 266.775c.167.272.456.456.124 1.02-.319-.422-.26-.445-.124-1.02z" fill="#e8a30e" stroke="#000" stroke-width=".041"/> - <path d="M325.427 267.38c.24.266.491.365.18.853-.184-.351-.298-.349-.18-.853z" fill="#e8a30e" stroke="#000" stroke-width=".041"/> - <path d="M325.277 267.693c.167.268.458.45.128 1.002-.32-.415-.262-.438-.128-1.002z" fill="#e8a30e" stroke="#000" stroke-width=".041"/> - <path d="M325.045 268.146c.206.272.546.467.198.991-.357-.459-.123-.497-.198-.991z" fill="#e8a30e" stroke="#000" stroke-width=".041"/> - <path d="M324.89 268.622c.193.26.538.465.206.973-.27-.38-.303-.437-.205-.973zm1.63-1.376c-.203.105-.595.005-.744.607.548-.171.531-.12.744-.607z" fill="#e8a30e" stroke="#000" stroke-width=".041"/> - <path d="M326.4 267.671c-.212.092-.631-.017-.768.549.575-.143.559-.096.768-.549z" fill="#e8a30e" stroke="#000" stroke-width=".041"/> - <path d="M326.253 268.047c-.22.101-.654-.01-.803.6.599-.161.581-.11.803-.6z" fill="#e8a30e" stroke="#000" stroke-width=".041"/> - <path d="M326.103 268.576c-.215.03-.647-.215-.817.544.42-.02.444-.256.817-.544z" fill="#e8a30e" stroke="#000" stroke-width=".041"/> - <path d="M325.78 268.991c-.301.055-.453-.002-.637.597.461-.18.445-.132.637-.597zm.137.43c-.929 1.862-1.126 3.567-.664 6.747.067-.02.136-.044.204-.069-.46-3.036-.279-4.737.574-6.577a3.263 3.263 0 0 0-.114-.1zm1.55-2.226c-.444.232-.618.167-.652.76.437-.111.5-.31.651-.76z" fill="#e8a30e" stroke="#000" stroke-width=".041"/> - <path d="M326.676 267.174c.13.29.394.512-.01 1.025-.263-.458-.202-.473.01-1.025z" fill="#e8a30e" stroke="#000" stroke-width=".041"/> - <path d="M326.397 267.747c.204.295.44.426.07.867-.138-.37-.252-.383-.07-.867z" fill="#e8a30e" stroke="#000" stroke-width=".041"/> - <path d="M326.207 268.038c.133.287.397.506 0 1.007-.266-.452-.205-.467 0-1.007z" fill="#e8a30e" stroke="#000" stroke-width=".041"/> - <path d="M325.92 268.456c.168.296.48.532.067 1.006-.296-.5-.057-.509-.067-1.006z" fill="#e8a30e" stroke="#000" stroke-width=".041"/> - <path d="M325.704 268.906c.157.284.474.53.077.99-.217-.41-.243-.472-.077-.99zm1.796-1.148c-.214.076-.591-.073-.817.503.567-.099.544-.05.817-.503z" fill="#e8a30e" stroke="#000" stroke-width=".041"/> - <path d="M327.327 268.162c-.222.063-.626-.098-.835.442.59-.066.569-.02.835-.442z" fill="#e8a30e" stroke="#000" stroke-width=".041"/> - <path d="M327.132 268.515c-.232.07-.649-.096-.876.488.616-.081.592-.032.876-.488z" fill="#e8a30e" stroke="#000" stroke-width=".041"/> - <path d="M326.915 269.018c-.218.002-.615-.297-.883.432.42.036.474-.196.883-.432z" fill="#e8a30e" stroke="#000" stroke-width=".041"/> - <path d="M326.54 269.387c-.308.015-.45-.06-.71.508.481-.12.458-.072.71-.508zm-2.975-.699c-.042.01-.085.023-.128.035.306 2.357.503 4.736.465 7.628.039.002.078.004.117.004.102-2.95-.105-5.315-.454-7.667zm-.645-2.55c.333.385.518.39.346.957-.37-.27-.359-.48-.346-.956z" fill="#e8a30e" stroke="#000" stroke-width=".041"/> - <path d="M323.663 266.42c-.221.221-.543.327-.343.96.402-.328.351-.366.343-.96z" fill="#e8a30e" stroke="#000" stroke-width=".041"/> - <path d="M323.727 267.06c-.293.196-.559.23-.364.782.257-.294.366-.262.364-.783z" fill="#e8a30e" stroke="#000" stroke-width=".041"/> - <path d="M323.804 267.402c-.222.218-.543.32-.346.94.404-.32.352-.357.346-.94z" fill="#e8a30e" stroke="#000" stroke-width=".041"/> - <path d="M323.928 267.901c-.258.213-.632.315-.408.914.447-.355.228-.452.408-.914z" fill="#e8a30e" stroke="#000" stroke-width=".041"/> - <path d="M323.974 268.404c-.243.204-.623.313-.412.893.345-.3.389-.348.412-.893zm-1.28-1.755c.174.153.577.158.59.781-.496-.308-.49-.254-.59-.78z" fill="#e8a30e" stroke="#000" stroke-width=".041"/> - <path d="M322.717 267.093c.185.143.617.146.626.73-.528-.286-.522-.236-.626-.73z" fill="#e8a30e" stroke="#000" stroke-width=".041"/> - <path d="M322.778 267.496c.191.155.637.158.649.789-.546-.31-.541-.256-.649-.79z" fill="#e8a30e" stroke="#000" stroke-width=".041"/> - <path d="M322.807 268.048c.203.085.677-.043.675.738-.405-.126-.375-.363-.675-.738z" fill="#e8a30e" stroke="#000" stroke-width=".041"/> - <path d="M323.029 268.534c.282.13.44.115.489.744-.408-.294-.403-.242-.49-.744zm-.251.483a3.799 3.799 0 0 0-.127.08c.662 2.032.905 3.912.847 7.212.05.008.102.015.153.021.093-3.337-.16-5.277-.873-7.313zm-1.211-2.435c.407.307.586.273.54.865-.417-.187-.451-.394-.54-.865z" fill="#e8a30e" stroke="#000" stroke-width=".041"/> - <path d="M322.351 266.7c-.168.265-.46.436-.132 1.015.323-.407.265-.433.132-1.015z" fill="#e8a30e" stroke="#000" stroke-width=".041"/> - <path d="M322.547 267.314c-.242.256-.494.344-.187.845.187-.342.301-.335.187-.845z" fill="#e8a30e" stroke="#000" stroke-width=".041"/> - <path d="M322.696 267.634c-.17.261-.461.43-.137.996.324-.4.266-.425.137-.996z" fill="#e8a30e" stroke="#000" stroke-width=".041"/> - <path d="M322.922 268.098c-.206.263-.548.442-.204.982.36-.443.127-.491.204-.982z" fill="#e8a30e" stroke="#000" stroke-width=".041"/> - <path d="M323.073 268.58c-.192.253-.54.441-.211.964.272-.367.305-.422.211-.963zm-1.616-1.448c.201.113.594.032.738.64-.547-.196-.53-.145-.738-.64z" fill="#e8a30e" stroke="#000" stroke-width=".041"/> - <path d="M321.573 267.562c.21.101.631.012.763.583-.574-.169-.559-.12-.763-.583z" fill="#e8a30e" stroke="#000" stroke-width=".041"/> - <path d="M321.716 267.945c.22.11.655.02.799.636-.597-.188-.58-.136-.799-.636z" fill="#e8a30e" stroke="#000" stroke-width=".041"/> - <path d="M321.862 268.48c.215.04.65-.186.813.58-.42-.038-.44-.275-.813-.58z" fill="#e8a30e" stroke="#000" stroke-width=".041"/> - <path d="M322.181 268.91c.302.068.454.019.634.626-.46-.203-.444-.152-.634-.627zm-.063.585a4.112 4.112 0 0 0-.103.09c.84 1.886.977 3.503.703 6.51l.038.022.132.045c.312-3.05.159-4.7-.77-6.667zm-1.607-2.457c.44.251.615.194.644.79-.435-.132-.496-.334-.644-.79z" fill="#e8a30e" stroke="#000" stroke-width=".041"/> - <path d="M321.301 267.053c-.133.285-.398.493.001 1.025.266-.446.205-.464-.001-1.025z" fill="#e8a30e" stroke="#000" stroke-width=".041"/> - <path d="M321.575 267.637c-.207.286-.445.407-.076.865.141-.364.254-.371.076-.865z" fill="#e8a30e" stroke="#000" stroke-width=".041"/> - <path d="M321.762 267.937c-.134.28-.4.487-.006 1.007.27-.44.21-.457.006-1.007z" fill="#e8a30e" stroke="#000" stroke-width=".041"/> - <path d="M322.047 268.369c-.17.288-.485.51-.075 1.003.3-.487.061-.506.075-1.003z" fill="#e8a30e" stroke="#000" stroke-width=".041"/> - <path d="M322.259 268.828c-.159.276-.478.509-.085.986.221-.4.247-.46.085-.986zm-1.788-1.23c.214.087.593-.045.813.54-.566-.124-.542-.074-.813-.54z" fill="#e8a30e" stroke="#000" stroke-width=".041"/> - <path d="M320.642 268.01c.222.073.626-.07.831.481-.59-.093-.567-.047-.83-.48z" fill="#e8a30e" stroke="#000" stroke-width=".041"/> - <path d="M320.835 268.372c.23.082.648-.066.871.528-.615-.109-.591-.059-.871-.528z" fill="#e8a30e" stroke="#000" stroke-width=".041"/> - <path d="M321.048 268.886c.217.01.618-.27.879.471-.42.017-.473-.217-.88-.471z" fill="#e8a30e" stroke="#000" stroke-width=".041"/> - <path d="M321.419 269.27c.308.03.45-.038.708.541-.481-.14-.46-.093-.708-.54zm2.179-3.171c.311.402.495.418.29.972-.352-.29-.33-.498-.29-.972z" fill="#e8a30e" stroke="#000" stroke-width=".041"/> - <path d="M324.325 266.421c-.233.209-.561.295-.397.937.42-.304.371-.344.397-.937z" fill="#e8a30e" stroke="#000" stroke-width=".041"/> - <path d="M324.353 267.062c-.303.181-.572.198-.407.76.272-.278.38-.24.407-.76z" fill="#e8a30e" stroke="#000" stroke-width=".041"/> - <path d="M324.41 267.408c-.234.205-.56.29-.397.919.42-.297.371-.337.397-.919z" fill="#e8a30e" stroke="#000" stroke-width=".041"/> - <path d="M324.507 267.914c-.271.197-.65.277-.46.887.468-.328.254-.438.46-.887z" fill="#e8a30e" stroke="#000" stroke-width=".041"/> - <path d="M324.525 268.417c-.255.19-.641.279-.463.867.361-.28.41-.323.463-.867zm-1.182-1.821c.166.162.567.189.546.811-.478-.335-.475-.28-.546-.811z" fill="#e8a30e" stroke="#000" stroke-width=".041"/> - <path d="M323.342 267.04c.177.153.608.18.585.762-.512-.316-.51-.264-.585-.762z" fill="#e8a30e" stroke="#000" stroke-width=".041"/> - <path d="M323.38 267.444c.182.166.628.193.604.823-.528-.34-.527-.284-.604-.823z" fill="#e8a30e" stroke="#000" stroke-width=".041"/> - <path d="M323.377 267.997c.199.096.68-.005.635.774-.398-.15-.355-.383-.635-.774z" fill="#e8a30e" stroke="#000" stroke-width=".041"/> - <path d="M323.572 268.494c.275.147.435.14.447.77-.391-.317-.388-.265-.447-.77zm-.375.315a2.69 2.69 0 0 0-.14.06c.586 2.393.723 4.601.672 7.47a.822.822 0 0 1 .05.005l.067-.013c.085-2.56 0-5.061-.649-7.523zm-1-2.39c.387.332.57.31.485.897-.406-.213-.425-.421-.484-.897z" fill="#e8a30e" stroke="#000" stroke-width=".041"/> - <path d="M322.973 266.587c-.185.253-.486.405-.196 1.003.348-.385.292-.415.196-1.003z" fill="#e8a30e" stroke="#000" stroke-width=".041"/> - <path d="M323.131 267.212c-.258.24-.516.311-.242.83.21-.33.322-.314.242-.83z" fill="#e8a30e" stroke="#000" stroke-width=".041"/> - <path d="M323.258 267.54c-.186.25-.488.4-.2.984.35-.378.293-.407.2-.983z" fill="#e8a30e" stroke="#000" stroke-width=".041"/> - <path d="M323.456 268.018c-.225.248-.577.405-.268.965.39-.418.159-.483.268-.965z" fill="#e8a30e" stroke="#000" stroke-width=".041"/> - <path d="M323.576 268.508c-.21.239-.569.404-.274.947.296-.349.332-.402.274-.947zm-1.524-1.548c.194.126.592.07.697.686-.533-.231-.52-.178-.697-.686z" fill="#e8a30e" stroke="#000" stroke-width=".041"/> - <path d="M322.14 267.396c.205.114.63.052.727.63-.564-.205-.551-.155-.726-.63z" fill="#e8a30e" stroke="#000" stroke-width=".041"/> - <path d="M322.261 267.786c.212.126.651.062.756.686-.585-.226-.57-.173-.756-.686z" fill="#e8a30e" stroke="#000" stroke-width=".041"/> - <path d="M322.371 268.33c.213.053.662-.144.777.63-.418-.064-.424-.302-.777-.63z" fill="#e8a30e" stroke="#000" stroke-width=".041"/> - <path d="M322.663 268.779c.297.087.452.048.593.664-.446-.23-.434-.18-.593-.664zm-.77.916a2.459 2.459 0 0 0-.052.05c.693 1.39.888 2.53.753 3.69v.001c-.025.76-.14 1.576-.334 2.473.05.024.099.045.147.067l.028.008c.546-2.567.494-4.464-.541-6.29z" fill="#e8a30e" stroke="#000" stroke-width=".041"/> - <path d="M322.483 269.21c-.043.031-.088.063-.13.096.792 2.12.901 4.075.787 6.926l.105.028.046.01c.15-2.902.053-4.93-.808-7.06zm-1.434-2.403c.43.272.607.222.61.817-.43-.15-.48-.354-.61-.817z" fill="#e8a30e" stroke="#000" stroke-width=".041"/> - <path d="M321.838 266.858c-.144.278-.42.475-.043 1.024.286-.434.225-.454.043-1.024z" fill="#e8a30e" stroke="#000" stroke-width=".041"/> - <path d="M322.088 267.455c-.22.275-.463.385-.116.858.159-.357.271-.36.116-.858z" fill="#e8a30e" stroke="#000" stroke-width=".041"/> - <path d="M322.261 267.76c-.147.275-.422.47-.05 1.006.288-.427.229-.447.05-1.005z" fill="#e8a30e" stroke="#000" stroke-width=".041"/> - <path d="M322.527 268.205c-.183.279-.508.487-.119.997.32-.473.084-.502.12-.997z" fill="#e8a30e" stroke="#000" stroke-width=".041"/> - <path d="M322.718 268.673c-.17.268-.499.486-.127.98.239-.39.267-.449.127-.98zm-1.732-1.307c.21.096.594-.02.789.576-.56-.15-.54-.1-.79-.576z" fill="#e8a30e" stroke="#000" stroke-width=".041"/> - <path d="M321.139 267.785c.218.083.628-.043.81.516-.587-.12-.567-.072-.81-.516z" fill="#e8a30e" stroke="#000" stroke-width=".041"/> - <path d="M321.315 268.154c.227.093.652-.037.849.566-.61-.136-.59-.085-.85-.566z" fill="#e8a30e" stroke="#000" stroke-width=".041"/> - <path d="M321.505 268.677c.218.02.63-.242.859.509-.422-.002-.463-.238-.86-.509z" fill="#e8a30e" stroke="#000" stroke-width=".041"/> - <path d="M321.86 269.078c.306.043.452-.02.684.57-.475-.162-.455-.114-.684-.57zm-1.902-1.64c.47.192.634.113.74.7-.448-.073-.533-.266-.74-.7z" fill="#e8a30e" stroke="#000" stroke-width=".041"/> - <path d="M320.742 267.35c-.095.3-.33.542.133 1.02.207-.479.143-.49-.133-1.02z" fill="#e8a30e" stroke="#000" stroke-width=".041"/> - <path d="M321.09 267.896c-.17.31-.388.462.035.87.092-.382.204-.403-.036-.87z" fill="#e8a30e" stroke="#000" stroke-width=".041"/> - <path d="M321.312 268.17c-.096.296-.332.536.125 1.001.209-.472.146-.482-.125-1.001z" fill="#e8a30e" stroke="#000" stroke-width=".041"/> - <path d="M321.65 268.561c-.131.31-.414.571.055 1.007.233-.523-.004-.51-.054-1.007z" fill="#e8a30e" stroke="#000" stroke-width=".041"/> - <path d="M321.92 268.991c-.122.295-.407.567.042.99.167-.426.185-.488-.043-.99zm-1.928-.992c.223.059.58-.121.874.433-.576-.05-.545-.004-.874-.433z" fill="#e8a30e" stroke="#000" stroke-width=".041"/> - <path d="M320.215 268.387c.228.045.61-.15.883.37-.595-.016-.567.028-.883-.37z" fill="#e8a30e" stroke="#000" stroke-width=".041"/> - <path d="M320.451 268.722c.24.052.635-.15.931.412-.623-.029-.593.018-.931-.412z" fill="#e8a30e" stroke="#000" stroke-width=".041"/> - <path d="M320.728 269.205c.217-.017.577-.347.931.355-.414.07-.495-.155-.93-.355z" fill="#e8a30e" stroke="#000" stroke-width=".041"/> - <path d="M321.145 269.54c.308-.01.441-.098.77.446-.494-.078-.466-.034-.77-.446zm3.786-.745c-.673 2.45-.768 4.984-.703 7.558a2.47 2.47 0 0 0 .156-.01c-.028-2.897.086-5.1.688-7.486a2.763 2.763 0 0 0-.14-.062zm1-2.292c-.389.315-.57.284-.49.876.406-.195.428-.403.49-.876z" fill="#e8a30e" stroke="#000" stroke-width=".041"/> - <path d="M325.154 266.636c.184.262.484.427.19 1.012-.347-.4-.29-.428-.19-1.012z" fill="#e8a30e" stroke="#000" stroke-width=".041"/> - <path d="M324.992 267.254c.257.251.515.334.236.84-.208-.337-.32-.328-.236-.84z" fill="#e8a30e" stroke="#000" stroke-width=".041"/> - <path d="M324.863 267.577c.184.257.485.421.193.992-.347-.394-.29-.42-.193-.992z" fill="#e8a30e" stroke="#000" stroke-width=".041"/> - <path d="M324.662 268.044c.221.26.573.432.26.978-.386-.435-.155-.489-.26-.978z" fill="#e8a30e" stroke="#000" stroke-width=".041"/> - <path d="M324.539 268.53c.206.249.565.43.266.959-.293-.362-.33-.417-.266-.96zm1.534-1.48c-.195.118-.592.044-.702.655.536-.207.522-.155.702-.654z" fill="#e8a30e" stroke="#000" stroke-width=".041"/> - <path d="M325.98 267.483c-.204.105-.63.024-.73.597.566-.18.552-.13.73-.597z" fill="#e8a30e" stroke="#000" stroke-width=".041"/> - <path d="M325.859 267.869c-.213.114-.653.03-.763.65.587-.2.573-.147.763-.65z" fill="#e8a30e" stroke="#000" stroke-width=".041"/> - <path d="M325.743 268.406c-.212.044-.66-.174-.78.596.418-.047.426-.284.78-.596z" fill="#e8a30e" stroke="#000" stroke-width=".041"/> - <path d="M325.448 268.841c-.297.075-.452.028-.598.638.449-.21.436-.16.598-.638zm.189.358c-.928 2.1-1.053 4.132-.836 7.085.07-.014.14-.03.209-.047-.24-2.988-.12-4.9.741-6.952a4.056 4.056 0 0 0-.114-.086zm1.44-2.255c-.433.252-.608.194-.617.789.432-.13.484-.333.617-.789z" fill="#e8a30e" stroke="#000" stroke-width=".041"/> - <path d="M326.287 266.958c.143.286.417.495.037 1.027-.283-.447-.223-.466-.037-1.027z" fill="#e8a30e" stroke="#000" stroke-width=".041"/> - <path d="M326.035 267.544c.216.286.458.406.107.864-.154-.365-.268-.372-.107-.864z" fill="#e8a30e" stroke="#000" stroke-width=".041"/> - <path d="M325.857 267.843c.145.28.418.487.044 1.007-.285-.441-.225-.457-.044-1.007z" fill="#e8a30e" stroke="#000" stroke-width=".041"/> - <path d="M325.589 268.273c.181.289.504.512.111 1.003-.316-.487-.08-.505-.111-1.003z" fill="#e8a30e" stroke="#000" stroke-width=".041"/> - <path d="M325.394 268.734c.168.276.495.508.12.985-.235-.4-.263-.46-.12-.985zm1.742-1.229c-.21.086-.593-.046-.793.54.56-.124.54-.075.793-.54z" fill="#e8a30e" stroke="#000" stroke-width=".041"/> - <path d="M326.98 267.918c-.218.072-.627-.072-.813.479.587-.093.566-.047.813-.48z" fill="#e8a30e" stroke="#000" stroke-width=".041"/> - <path d="M326.801 268.278c-.228.082-.65-.065-.852.527.611-.107.589-.058.852-.527z" fill="#e8a30e" stroke="#000" stroke-width=".041"/> - <path d="M326.607 268.792c-.218.011-.628-.27-.862.47.422.017.465-.216.862-.47z" fill="#e8a30e" stroke="#000" stroke-width=".041"/> - <path d="M326.25 269.177c-.306.03-.453-.04-.688.54.475-.141.455-.094.688-.54zm.015.564c-1.084 1.903-.992 3.927-.544 6.253.055-.023.11-.048.167-.074-.191-1.005-.314-1.928-.31-2.802v-.005c-.056-1.016.148-2.045.794-3.265l-.107-.107zm1.898-2.118c-.471.172-.635.085-.745.668.449-.054.536-.244.745-.668z" fill="#e8a30e" stroke="#000" stroke-width=".041"/> - <path d="M327.38 267.5c.093.305.326.557-.142 1.014-.201-.488-.14-.495.142-1.013z" fill="#e8a30e" stroke="#000" stroke-width=".041"/> - <path d="M327.03 268.03c.164.318.383.48-.044.868-.09-.385-.2-.412.043-.867z" fill="#e8a30e" stroke="#000" stroke-width=".041"/> - <path d="M326.802 268.294c.095.3.33.55-.13.996-.207-.481-.143-.489.13-.996z" fill="#e8a30e" stroke="#000" stroke-width=".041"/> - <path d="M326.463 268.67c.13.314.41.59-.063 1.004-.228-.533.009-.51.063-1.004z" fill="#e8a30e" stroke="#000" stroke-width=".041"/> - <path d="M326.19 269.088c.12.3.403.586-.05.988-.165-.433-.181-.497.05-.988zm1.935-.904c-.223.047-.579-.148-.878.392.576-.024.547.02.878-.392z" fill="#e8a30e" stroke="#000" stroke-width=".041"/> - <path d="M327.9 268.561c-.229.034-.609-.178-.887.33.596.011.567.053.886-.33z" fill="#e8a30e" stroke="#000" stroke-width=".041"/> - <path d="M327.66 268.886c-.24.04-.632-.18-.934.37.624-.002.593.044.934-.37z" fill="#e8a30e" stroke="#000" stroke-width=".041"/> - <path d="M327.38 269.355c-.217-.027-.574-.373-.934.313.413.09.497-.132.934-.313z" fill="#e8a30e" stroke="#000" stroke-width=".041"/> - <path d="M326.96 269.671c-.308-.024-.44-.118-.773.411.495-.056.467-.013.773-.41zm-3.488 2.737l1.139.026c.69.015 1.243.172 1.241.353 0 .18-.554.313-1.244.297l-1.138-.026c-.69-.015-1.243-.172-1.242-.353.001-.18.555-.313 1.244-.297z" fill="#e8a30e" stroke="#000" stroke-width=".041"/> - <path d="M322.683 272.39l-.34.573c.052.045.12.073.194.075l.206.004.382-.642-.442-.01zm.887.02l-.382.642.441.01.383-.643-.442-.009zm.888.02l-.383.642.441.01.383-.642-.441-.01zm.886.02l-.382.642.442.01.336-.564a.316.316 0 0 0-.206-.084l-.19-.004z" fill="#e8a30e" stroke="#000" stroke-width=".041"/> - <path d="M316.534 268.808c.009-.002.261 1.784.463 2.652.024.107.15.165.186.268.038.112.011.234.02.351 0 .013.003.026.002.04-.008.16-.129.311-.089.47.023.091.132.135.173.22.237.492.245 1.087.376 1.59.056.213-.04-.04.365.557.041.06.197.063.197.063l.156.006.158.156-.202.22-.67.086-.32-.198s.08-.177.017-.263c-.046-.06-.188-.015-.201-.09-.024-.14-.07-.516-.074-.517-.012 0-.008-.024-.016-.034 0 0-.542-.59-.742-.939-.103-.18-.116-.406-.228-.58-.072-.112-.215-.164-.275-.283-.496-.99-1.068-2.908-1.069-2.897m-6.383-1.118l1.784.419-.482 2.61c-.307.828-.277.858-.177 1.09.207.445.365 1.116 1.089 2.17.252.266.52.291.619.4.047.115.26.286.44.354l.56-.015c.093-.135.094-.091.118-.193-.041-.121-.307-.072-.496-.235-.1-.316-.517-.794-.577-1.127-.23-.726-.167-.749-.117-1.492.024-.383.329-1.234.44-1.696.262-.497.52-1.357.476-1.973l-.771-1.7-.45-.69m-1.684-1.087c-2.846.918-1.633 3.54-.825 3.568m9.196-8.111l.42-.954.027-.348-.04-.073-.755.92-.01.06" fill="#e7e7e7" stroke="#000" stroke-width=".123"/> - <path d="M319.18 262.395c.182.068.413.135.453.027.05-.134.073-.229-.067-.332-.068-.06.035-.152-.044-.322-.5-.35-.843-.358-.966-.637l-.02-.193c-.025-.244-.742-.345-.917-.464 0 0-.303-.15-.463-.185-.068-.015-.208-.01-.208-.01-.73-.006-1.063.76-1.185 1.227 0 0-.143 2.125-.497 3.087a.71.71 0 0 1-.146.233c-.06.065-.124.16-.211.155-2.02-.14-3.395-.23-4.215-.2-.82.03-1.757.666-1.814.736 0 0-.913.598-1.113 1.575-.067.326.013.71.141 1.094.908 2.579 1.803-.01 2.129.02l.4.038c.47.045 1.335 1.489 2.655 1.778 3.985.871 5.078-1.213 4.993-5.845l.048-.067-.013-.158.203-.368-.038-.513-.072-.243.007-.095 1.123-.145.193-.09" fill="#e7e7e7" stroke="#000" stroke-width=".123"/> - <path d="M317.246 261.081l.481-1.091.032-.399-.047-.083-.864 1.053-.01.069m-8.93 7.556c.255.765.715 1.525.682 1.807-.049.422-.286.617-.303.657-.017.036-.105.09-.133.117-.123.114-.204.345-.26.51a1.318 1.318 0 0 0-.083.586c.084.74.51 2.263.531 2.285 0 0 .242.143.31.283.071.143.048.281.039.438-.012.215-.133.694-.133.694s.009.093.036.12c.076.077.334.21.334.21l.54-.014s-.302-.304-.324-.372a.358.358 0 0 1-.017-.22c.038-.16.19-.348.24-.443.054-.102-.005-.369-.005-.369-.005-.097-.084-.142-.09-.183a8.258 8.258 0 0 1-.078-.87c-.012-.282.035-1.124.035-1.124s.128-.109.18-.176c.045-.062.11-.206.11-.206s.653-.376.933-.628c.332-.3.87-1.035.87-1.035s.155-.299.178-.467a.513.513 0 0 0-.014-.175 3.813 3.813 0 0 0-.332-.903 3.205 3.205 0 0 0-.52-.771c-.021-.023-.075-.055-.075-.055m5.94 1.862c-.535.355-1.801.646-1.821.902 0 0-.038 1.605-.22 2.245-.073.252-.192.326-.286.57-.097.252-.09.446-.175.698-.09.27-.252.51-.276.978l.014.388.388.23-.403.137-.63-.251-.052-.591.139-.613.007-.099-.156-.37-.101-1.333.107-.995-.14-3.658m4.677-5.345c.253.203.587.335 1.348.088.146.093.3.21.625-.239m-.343-.525c.005-.006.147.098.2.098.04 0 .091-.084.058-.112-.037-.03-.105-.064-.137-.041-.047.032-.12.064-.121.055z" fill="#e7e7e7" stroke="#000" stroke-width=".123"/> - <path d="M317.778 261.415s.072.002.099.062c.09.203.31.238.483.024a.333.333 0 0 1 .083-.065c-.036-.003-.059 0-.087-.028-.194-.193-.394-.03-.46-.016-.044.009-.075.017-.118.023z" fill="#000"/> - <path d="M329.132 272.906l.001.005a1.913 1.913 0 0 0-.014.744c-.054.27-.058.532-.014.75a1.945 1.945 0 0 0-.012.715 2.006 2.006 0 0 0-.01.677c.246.188.945.21 1.258.04a2.209 2.209 0 0 0-.002-.71c.046-.237.04-.475-.003-.715.047-.218.046-.479-.004-.75.043-.205.05-.446-.005-.744a2.255 2.255 0 0 0-.005-.775c.041-.233.043-.48-.006-.747a2.226 2.226 0 0 0-.006-.775v-.007c.037-.23.038-.489-.005-.782a2.382 2.382 0 0 0-.006-.791c.038-.241.04-.497-.006-.783.045-.229.044-.482-.006-.782.064-.243.039-.549-.008-.79v-.003c.04-.283.037-.54-.004-.78a2.32 2.32 0 0 0-.006-.782 3.247 3.247 0 0 0-.006-.791 2.89 2.89 0 0 0-.009-.781c.03-.237.032-.493-.009-.781a2.569 2.569 0 0 0 0-.794 2.678 2.678 0 0 0-.009-.783c.036-.242.038-.5-.01-.78.043-.282.034-.534-.009-.767.034-.26.032-.45.001-.709a1.98 1.98 0 0 0-.008-.307l-.789-.012c-.033.055-.043.164-.021.311-.04.113-.038.6.008.713a2.305 2.305 0 0 0-.019.766c-.05.28-.051.538-.02.781a2.677 2.677 0 0 0-.018.783 2.57 2.57 0 0 0-.01.793 2.914 2.914 0 0 0-.02.781c-.04.27-.048.523-.018.78-.037.27-.044.533-.016.792-.05.26-.053.521-.016.782a2.47 2.47 0 0 0-.013.78c-.05.24-.08.547-.018.793-.054.3-.058.552-.016.782-.05.284-.05.54-.016.782a2.381 2.381 0 0 0-.016.79 2.631 2.631 0 0 0-.015.79 2.216 2.216 0 0 0-.016.774 2.09 2.09 0 0 0-.015.747 2.25 2.25 0 0 0-.017.77z" fill="#e7e7e7" fill-rule="evenodd" stroke="#000" stroke-width=".123"/> - <path d="M329.124 273.647c.29.135 1.033.112 1.208.022m-1.215-.769c.278.118.941.112 1.21.023m-1.173-.805c.27.135.907.1 1.168.023m-1.152-.765c.297.135.945.098 1.146.02m-1.132-.785c.32.091.88.087 1.126.003m-1.11-.786c.329.079.842.082 1.105.004m-1.09-.797c.3.077.88.082 1.084.005m-1.07-.782c.262.083.811.076 1.064 0m-1.041-.785c.333.08.794.088 1.036.003m-1.02-.797c.338.08.819.07 1.013.006m-1.002-.786c.335.075.86.048.997.004m-.978-.766c.312.057.839.027.972-.016m-.956-.794c.307.083.818.045.95.002m-.93-.765c.293.075.754.044.925-.017m-.9-.78c.287.063.768.04.894-.002m-.883-.785c.287.06.753.034.877-.007m-.85-.773c.313.038.71.034.83-.004m-.811-.795c.26.055.69.05.805.013m-.788-.779c.282.045.673.042.784.006m-.815-.715c.212.022.732.037.819.008m-1.11 15.454c.294.134 1.048.11 1.225.021m-1.24.69c.299.135 1.063.111 1.243.022" fill="#e7e7e7" fill-rule="evenodd" stroke="#000" stroke-width=".123" stroke-linejoin="round"/> - <path d="M331.51 257.073c.477-.105 1.163-.12 2.11-.144a13.677 13.677 0 0 0-.86-.256c.553-.077 1.87-.06 2.209-.063a4.93 4.93 0 0 0-.948-.394c.725-.12 1.59-.005 2.2.092-.284-.16-.606-.365-1.014-.476.87-.06 1.216.01 2.023.119a2.617 2.617 0 0 0-.882-.484c.967-.177 1.51-.215 2.457-.138-2.738-1.253-6.06-.602-8.06.777.2-.315.633-.792 1.055-1.152a2.525 2.525 0 0 0-.693.039c.293-.322.844-.75 1.218-.899-.273-.014-.503-.02-.748.028.367-.34.92-.7 1.39-.94a3.107 3.107 0 0 0-.84.02c.37-.437 1.019-.884 1.592-1.156a3.977 3.977 0 0 0-.936.072c.476-.434 1.113-.89 1.951-1.313-3.32.372-5.154 2.766-5.31 4.794-.885-1.908-3.296-3.733-6.614-3.594.99.302 1.778.67 2.39 1.042a4.362 4.362 0 0 0-1.006.076c.674.19 1.47.546 1.972.937a3.381 3.381 0 0 0-.892.116c.556.172 1.231.455 1.704.748-.27-.01-.512.032-.796.09.431.094 1.121.448 1.512.733-.305-.007-.52.02-.74.072.998.39 1.062.565 1.282.697-2.071-.443-5.065.241-7.367 2.916.334-.282 1.76-.813 2.212-.935-.236.283-.317.431-.504.785.517-.418 1.299-.763 2.044-1.06a4.805 4.805 0 0 0-.405.745c.542-.337.708-.385 1.819-.913-.08.135-.302.43-.407.71.34-.193 1.146-.488 1.693-.685.038-.013-.33.3-.495.677.125-.047.884-.322.912-.33-1.751 1.223-3.057 3.275-2.792 5.771.1-.39.563-1.51.826-1.959-.03.298.038.79.093 1.01.258-.744.541-1.339.964-1.984-.035.398-.025.838.03 1.018.235-.551.422-1.024 1-2.045-.037.152-.045.583-.01.963.192-.42.637-1.248 1.072-1.86-.022.225-.062.606-.045.765.046-.08.183-.306.342-.559.25-.393.553-.85.652-.924.076.077.148.171.216.28.272.437.467 1.105.528 1.797.145-.34.208-.686.227-.869.31.695.66 1.783.686 2.382.104-.318.158-.516.196-1.014.324.52.605 1.8.632 2.355.126-.217.23-.489.306-.895.317.716.442 1.607.519 2.221.813-2.96-.354-4.873-1.778-6.333.358.194.811.592 1.254 1.072a4.875 4.875 0 0 0-.264-.874c.526.374 1.301 1.145 1.517 1.367-.037-.293-.079-.447-.233-.82.62.43 1.175 1.166 1.489 1.572a5.426 5.426 0 0 0-.205-.942c.567.423 1.13 1.273 1.387 1.753-.007-.328-.098-.675-.175-1.032.77.652 1.056 1.342 1.3 1.758.005-2.672-3.088-5.077-5.962-5.327z" fill="#007934" fill-rule="evenodd" stroke="#e7e7e7" stroke-width=".123"/> - <path d="M330.319 257.1c3.134-.448 7.16 2.251 7.153 5.3-.244-.416-.53-1.106-1.3-1.758.077.357.169.704.175 1.032-.257-.48-.82-1.33-1.387-1.753.13.403.18.755.205.942-.315-.406-.869-1.143-1.49-1.573.155.374.197.528.234.821-.216-.222-.991-.993-1.517-1.367.1.225.223.65.264.874-.443-.48-.896-.878-1.254-1.072m-1.785-1.483c-1.876-1.21-5.858-.99-8.748 2.369.334-.282 1.76-.813 2.212-.935-.236.283-.318.431-.504.785.517-.418 1.299-.763 2.044-1.06a4.782 4.782 0 0 0-.405.744c.542-.336.708-.384 1.819-.912-.08.135-.302.43-.407.71.339-.193 1.146-.488 1.693-.685.037-.013-.33.3-.495.677.125-.047.884-.322.912-.33" fill="none" stroke="#e7e7e7" stroke-width=".123" stroke-linecap="round" stroke-linejoin="round"/> - <path d="M329.743 256.586c-.399-2.206-3.041-4.744-6.933-4.581.99.302 1.778.67 2.39 1.042a4.348 4.348 0 0 0-1.006.076c.673.19 1.47.546 1.972.937a3.383 3.383 0 0 0-.893.116c.557.172 1.232.455 1.705.748-.27-.011-.512.032-.796.09.431.094 1.12.448 1.511.733-.304-.007-.52.02-.74.072.998.39 1.063.565 1.283.698m1.48.94c-2.608.795-5.128 3.361-4.77 6.74.1-.39.563-1.51.826-1.958-.03.297.038.79.093 1.01.258-.745.541-1.34.964-1.986-.035.399-.025.839.03 1.02.235-.552.421-1.025 1-2.046-.037.152-.045.582-.01.963a13.31 13.31 0 0 1 1.072-1.86c-.022.225-.062.606-.046.765.119-.206.832-1.362.995-1.483m-1.623.163a8.729 8.729 0 0 0-.388 1.452m-.565-.8a9.718 9.718 0 0 0-.466 1.826m-.492-.913a8.912 8.912 0 0 0-.564 1.889" fill="none" stroke="#e7e7e7" stroke-width=".123" stroke-linecap="round" stroke-linejoin="round"/> - <path class="fil1 str2" fill="none" stroke="#e7e7e7" stroke-width=".123" stroke-linecap="round" stroke-linejoin="round" d="M329.869 258.622l.01-.602"/> - <path d="M332.57 261.25c.08.475.119.726.09 1.408m-1.082-3.054c.103.531.146.883.145 1.594m-1.068-2.66c.115.327.184.749.185 1.293m4.748-.396c.348.447.517.949.584 1.207m-1.994-2.186c.34.4.673 1.114.782 1.464m-1.966-1.86c.293.381.493.786.681 1.23m-10.594-.793a4.665 4.665 0 0 1 1.73-1.195m-.19.92c.388-.491.587-.8 1.604-1.243m-.19 1.075c.32-.41.834-.874 1.614-1.151m-.328 1.176c.508-.464.977-.71 1.6-.975m-3.72-4.057c.67.074 1.597.307 2.163.68m-1.198.333c.61.011 1.445.193 1.873.427m-1.06.437c.603.011 1.36.26 1.98.615m-1.266.208c.81.071 1.364.365 1.725.586m.841.144c1.91-1.624 5.572-2.51 8.546-1.148-.948-.077-1.49-.04-2.457.138.396.113.771.385.882.484-.808-.109-1.153-.179-2.023-.12.408.112.73.318 1.014.477-.61-.098-1.475-.212-2.2-.092.15.03.719.254.947.394-.338.003-1.655-.014-2.209.063.38.1.633.18.862.256-.948.025-1.634.039-2.111.144m4.838-1.606c-.589-.239-1.617-.346-2.145-.313m1.004.678c-1.04-.345-2.03-.327-2.527-.251m1.34.635c-.915-.258-1.988-.265-2.485-.19m1.224.647c-.88-.212-1.512-.183-2.009-.108m.836 1.07c.36.306.618.665.806 1.11" fill="none" stroke="#e7e7e7" stroke-width=".123" stroke-linecap="round" stroke-linejoin="round"/> - <path d="M329.424 255.599c.156-2.028 1.99-4.422 5.31-4.794-.838.423-1.475.879-1.951 1.313.333-.065.562-.078.936-.072-.573.272-1.221.719-1.592 1.155.277-.05.561-.045.84-.019-.47.24-1.023.6-1.39.94.245-.048.475-.042.748-.028-.374.148-.925.577-1.218.899.276-.05.48-.056.693-.039-.422.36-.854.837-1.055 1.151m2.037-3.987c-.485.134-1.1.39-1.546.711m.89.372a4.523 4.523 0 0 0-1.399.515m.85.406c-.476.084-1.017.351-1.47.694m1 .177a3.215 3.215 0 0 0-1.445.792m-.452 2.395a6.022 6.022 0 0 0-.29 1.16m1.17-2.01c1.849 1.615 4.149 3.695 3.09 7.549-.077-.615-.203-1.505-.52-2.22-.075.405-.18.677-.306.894-.026-.555-.308-1.835-.631-2.355a3.529 3.529 0 0 1-.196 1.014c-.026-.6-.376-1.687-.687-2.382-.018.183-.08.53-.226.87-.076-.864-.36-1.69-.745-2.078" fill="none" stroke="#e7e7e7" stroke-width=".123" stroke-linecap="round" stroke-linejoin="round"/> - <path d="M293.296 233.51l1.26.684.306-.564c.157-.288.204-.515.142-.68-.062-.167-.23-.325-.504-.474-.303-.164-.545-.226-.725-.184-.184.04-.334.169-.45.385-.152.279-.226.471-.223.577.005.103.07.188.194.255m1.644.893l1.62.88c.124.067.235.072.333.016.099-.059.215-.212.349-.458.127-.235.211-.432.253-.592.04-.164.034-.299-.017-.406a.714.714 0 0 0-.182-.253 1.884 1.884 0 0 0-.333-.218c-.756-.41-1.309-.29-1.66.362l-.363.669m-2.598-.772c.092-.17.208-.392.349-.668.14-.276.229-.447.264-.513a3.25 3.25 0 0 1 .553-.766c.196-.198.385-.325.567-.381.18-.057.345-.082.495-.073.15.009.293.05.427.122.187.102.33.275.428.52.1.242.143.49.13.745.288-.29.596-.486.925-.588.328-.1.653-.064.975.11.356.194.582.528.678 1.002.092.473-.04 1.039-.398 1.699-.123.225-.255.46-.397.705-.14.243-.256.446-.345.61l-.311.625-.025-.004c-.358-.27-.823-.561-1.396-.872l-1.764-.958c-.554-.3-1.051-.532-1.491-.695l-.014-.026c.144-.232.26-.43.35-.594m8.881-10.827c-.717.599-.593 1.478.374 2.636.488.585.974.93 1.46 1.036.483.105.922-.008 1.316-.336.356-.298.507-.657.452-1.077-.055-.42-.318-.912-.788-1.476-.543-.65-1.036-1.035-1.48-1.155-.444-.123-.889 0-1.334.372m3.729-.184c.528.633.758 1.315.689 2.044-.07.726-.438 1.368-1.107 1.926-.625.522-1.303.767-2.032.735-.729-.031-1.339-.341-1.83-.93-.522-.625-.754-1.317-.695-2.076.06-.76.406-1.403 1.04-1.932.668-.558 1.36-.814 2.077-.768.716.042 1.336.375 1.858 1m8.003-2.606c.15.538.265.872.346 1.002.316-.088.658-.199 1.026-.332.37-.133.66-.246.87-.338l.317-.133.024.026c.013.088.05.24.11.456.021.075.057.184.108.328l-.009.027c-.13.02-.29.056-.48.11l-2.405.669-.646.205-.018-.02c-.048-.372-.168-.907-.36-1.605l-.538-1.934a11.935 11.935 0 0 0-.53-1.557l.013-.029c.241-.05.45-.1.628-.15l.65-.206.014.021c.045.362.166.897.363 1.604l.517 1.857m9.246-2.864a12.19 12.19 0 0 0 .082-1.643l.019-.022c.258.044.48.076.666.097l.68.05.005.024c-.114.423-.206.964-.278 1.623l-.217 1.995a11.875 11.875 0 0 0-.078 1.644l-.019.022c-.258-.045-.48-.077-.666-.097l-.68-.05-.005-.025c.114-.433.205-.974.273-1.622l.218-1.996m9.85 5.236c1.65-1.309 2.7-2.202 3.148-2.68.051.046.187.128.409.247.174.093.293.148.357.164-2.294 1.737-3.851 2.933-4.673 3.589l-.498-.267a316.2 316.2 0 0 1 .21-2.06c.097-.92.176-1.703.24-2.35.064-.651.1-1.113.111-1.387.075.059.315.196.72.414.284.153.47.244.558.272-.24 1.114-.435 2.467-.582 4.058m8.466 3.845c.466-.425.849-.817 1.15-1.178l.028-.004c.164.205.31.376.435.514l.477.488-.013.022c-.364.242-.792.586-1.281 1.032l-1.484 1.351c-.46.42-.843.813-1.147 1.18l-.029.004c-.164-.204-.31-.375-.435-.514l-.477-.487.013-.022c.372-.25.799-.594 1.279-1.035l1.484-1.351m4.985 10.005c.518-.532.96-1.004 1.325-1.416l-.022-.047-1.946.061c.088.216.204.477.347.784.072.155.17.361.296.618m-1.146-1.38c-.852.043-1.494.103-1.926.18a1.858 1.858 0 0 0-.134-.344 2.615 2.615 0 0 0-.216-.408c2.773-.017 4.739-.042 5.899-.075l.31.669c-2.01 2.11-3.32 3.547-3.928 4.31-.025-.091-.123-.321-.294-.69a5.364 5.364 0 0 0-.303-.592c.374-.318.84-.759 1.4-1.323a34.96 34.96 0 0 0-.334-.746c-.13-.28-.288-.608-.474-.981" style="line-height:125%;-inkscape-font-specification:'Linux Biolinum Bold';text-align:center" font-size="100" font-weight="700" letter-spacing="60" font-family="Linux Biolinum" word-spacing="0" text-anchor="middle" fill="#e8a30e" stroke="#000" stroke-width=".123"/> - <path d="M324.923 280.609l-.768 2.208-2.337.048 1.863 1.412-.677 2.238 1.92-1.335 1.918 1.335-.677-2.238 1.863-1.412-2.337-.048zM334.06 276.717l-.769 2.208-2.337.048 1.863 1.412-.677 2.238 1.92-1.335 1.918 1.335-.677-2.238 1.863-1.412-2.337-.048zM348.17 251.757l-.768 2.208-2.337.048 1.863 1.412-.677 2.238 1.919-1.335 1.919 1.335-.677-2.238 1.863-1.412-2.338-.048zM341.47 269.564l.768 2.208 2.338.048-1.863 1.412.677 2.238-1.92-1.335-1.919 1.335.677-2.238-1.863-1.412 2.338-.048zM346.204 261.422l.768 2.209 2.337.047-1.863 1.413.677 2.238-1.919-1.336-1.92 1.336.678-2.238-1.863-1.413 2.337-.047zM315.077 280.609l.768 2.208 2.337.048-1.863 1.412.677 2.238-1.92-1.335-1.918 1.335.677-2.238-1.863-1.412 2.337-.048zM305.94 276.717l.769 2.208 2.337.048-1.863 1.412.677 2.238-1.92-1.335-1.918 1.335.677-2.238-1.863-1.412 2.337-.048zM291.83 251.757l.768 2.208 2.338.048-1.863 1.412.677 2.238-1.92-1.335-1.918 1.335.677-2.238-1.863-1.412 2.337-.048zM298.53 269.564l-.768 2.208-2.338.048 1.863 1.412-.677 2.238 1.92-1.335 1.919 1.335-.677-2.238 1.863-1.412-2.338-.048zM293.796 261.422l-.768 2.209-2.337.047 1.863 1.413-.677 2.238 1.919-1.336 1.92 1.336-.678-2.238 1.863-1.413-2.337-.047z" fill="#e8a30e" stroke="#000" stroke-width=".123" stroke-linecap="square" stroke-linejoin="round"/> - <path d="M321.077 248.093l-.003-.483h.067l-.827-.476h-.665l-.823.476h.066l.003.482h2.182" fill="#e7e7e7" stroke="#000" stroke-width=".043"/> - <path d="M321.077 248.093l-.003-.483h.067l-.827-.476-.062-.725h-.54l-.063.725-.823.475h.066l.003.483h2.182zm.255.633v.15l-2.664-.002-.001-.15 2.665.002" fill="#e7e7e7" stroke="#000" stroke-width=".043"/> - <path d="M321.332 248.726v.15l-2.664-.002-.001-.15 2.665.002zm-2.487-.01l-.002-.51h.108l-.006.517.007-.513-.156-.004v-.11l2.381.003.001.108h-.147l.003.517-.005-.517h.11l.002.511" fill="#e7e7e7" stroke="#000" stroke-width=".043"/> - <path d="M318.845 248.717l-.002-.51.108-.001-.006.517.007-.513-.156-.004v-.11l2.381.003.001.108h-.147l.003.517-.005-.517h.11l.002.511" fill="#e7e7e7" stroke="#000" stroke-width=".043"/> - <path d="M319.357 248.591l-.002-.356h-.32l.002.356h.32" fill="#e7e7e7" stroke="#000" stroke-width=".043"/> - <path d="M319.122 248.31l.001.206h.147l-.001-.207h-.147m1.797.283l-.002-.356h-.318v.356h.32" fill="#e7e7e7" stroke="#000" stroke-width=".043"/> - <path d="M320.685 248.31l.002.207h.146v-.206h-.147m.232-.299l-.002-.356h-.32l.002.356h.32z" fill="#e7e7e7" stroke="#000" stroke-width=".043"/> - <path d="M320.683 247.731v.207h.147v-.207h-.147m-1.329.28l-.002-.355h-.32l.002.355h.32z" fill="#e7e7e7" stroke="#000" stroke-width=".043"/> - <path d="M319.12 247.73v.206h.147l-.001-.206h-.146m.813.282l-.001-.356h-.32l.001.356h.32" fill="#e7e7e7" stroke="#000" stroke-width=".043"/> - <path d="M319.698 247.73l.001.206.146.001v-.207h-.147m.68.282l-.002-.356h-.319l.001.356h.32" fill="#e7e7e7" stroke="#000" stroke-width=".043"/> - <path d="M320.144 247.73l.001.207h.146v-.206h-.147" fill="#e7e7e7" stroke="#000" stroke-width=".043"/> - <path d="M320.458 247.903l.004.82h-.926l-.003-.82h.925" fill="#e7e7e7" stroke="#000" stroke-width=".043"/> - <path d="M320.458 247.903l.004.82h-.926l-.003-.82h.925zm-.93.234l.93.001m-.815.586l-.003-.58m.709.58l-.003-.58m.45-.59l-.521-.34h-.586l-.517.338 1.624.001m-1.06-.413h.492m-.36-.156v.103h.227l-.001-.103h-.226" fill="#e7e7e7" stroke="#000" stroke-width=".043"/> - <path d="M319.576 247.926h.067l-.02.032s.033.038.001.08l.018.03h-.065l.017-.028s-.033-.05.001-.082l-.02-.032m.138 0h.067l-.02.032s.033.037 0 .08l.018.03h-.065l.018-.028s-.033-.05.002-.082l-.02-.032m.15 0h.067l-.02.032s.033.038 0 .08l.018.03h-.064l.017-.028s-.033-.05.001-.081l-.02-.033zm.169 0h.068l-.02.033s.032.037 0 .08l.018.03h-.065l.017-.029s-.032-.05.002-.08l-.02-.034zm.15 0h.067l-.02.033s.033.037 0 .08l.019.03h-.065l.017-.028s-.033-.05.003-.082l-.02-.032m.149 0h.067l-.02.032s.033.037.001.08l.017.03h-.065l.018-.028s-.033-.05.002-.082l-.02-.032" fill="#e7e7e7" stroke="#000" stroke-width=".043"/> - <path d="M319.842 246.03h.321v.375h-.32v-.375z" fill="#e7e7e7" fill-rule="evenodd" stroke="#000" stroke-width=".032"/> - <path d="M320.006 245.572l-.006.478" fill="none" stroke="#000" stroke-width=".074"/> - <path d="M319.828 245.75l.35.005" fill="none" stroke="#000" stroke-width=".093"/> - <path d="M317.14 210.305s-2.341 5.437-1.532 5.976c0 0 2.937-3.28 3.703-5.886.766-2.606 0-.18 0-.18l-.213-2.83-1.915 2.695" fill="#452c25"/> - <path d="M317.14 210.305s-2.341 5.437-1.532 5.976c0 0 2.936-3.28 3.703-5.886.766-2.606 0-.18 0-.18l-.213-2.83-1.915 2.695" fill="none" stroke="#000" stroke-width=".164"/> - <path d="M317.635 207.706s-2.813 5.988-2.17 6.43c0 0 2.337-2.692 2.947-4.83.61-2.14 0-.148 0-.148l.781-3.849" fill="#452c25"/> - <path d="M317.635 207.706s-2.813 5.988-2.17 6.43c0 0 2.337-2.692 2.947-4.83.61-2.14 0-.148 0-.148l.781-3.849" fill="none" stroke="#000" stroke-width=".133"/> - <path d="M320.533 206.372s-2.813 5.988-2.17 6.431c0 0 2.337-2.692 2.947-4.832.61-2.139 0-.147 0-.147l.781-3.85" fill="#452c25"/> - <path d="M320.533 206.372s-2.813 5.988-2.17 6.431c0 0 2.337-2.692 2.947-4.832.61-2.139 0-.147 0-.147l.781-3.85" fill="none" stroke="#000" stroke-width=".133"/> - <path d="M356.838 195.606l3.34 1.895s.814.676-.974.278c-1.789-.398-5.603-1.714-12.808-6.351-3.258-2.097-4.286-2.038-4.286-2.038l4.541.124 10.187 6.092z" fill="#452c25"/> - <path d="M356.838 195.606l3.34 1.895s.814.676-.974.278c-1.789-.398-5.603-1.714-12.808-6.351-3.258-2.097-4.286-2.038-4.286-2.038l4.541.124 10.187 6.092z" fill="none" stroke="#000" stroke-width=".12"/> - <path d="M357.942 194.782l3.34 1.895s.814.676-.975.278c-1.788-.398-5.602-1.714-12.807-6.351-3.258-2.097-.637 1.73-.637 1.73l.552-2.516 10.527 4.964z" fill="#452c25"/> - <path d="M357.942 194.782l3.34 1.895s.814.676-.975.278c-1.788-.398-5.602-1.714-12.807-6.351-3.258-2.097-.637 1.73-.637 1.73l.552-2.516 10.527 4.964z" fill="none" stroke="#000" stroke-width=".12"/> - <path d="M363.498 196.606s-3.989-.74-5.44-1.804c0 0 .254.459-1.696-.43 0 0 .752 1.71-4.74-2.03-5.49-3.74-3.57-1.86-3.57-1.86l1.536-.397s8.43 3.368 9.354 3.72c.925.353 4.556 2.801 4.556 2.801" fill="#452c25"/> - <path d="M363.498 196.606s-3.989-.74-5.44-1.804c0 0 .254.459-1.696-.43 0 0 .752 1.71-4.74-2.03-5.49-3.74-3.57-1.86-3.57-1.86l1.536-.397s8.43 3.368 9.354 3.72c.925.353 4.556 2.801 4.556 2.801z" fill="none" stroke="#000" stroke-width=".117"/> - <path d="M342.645 198.1l1.336 1.906s-.444 1.786-5.083-1.69c-4.638-3.475-4.394-3.188-4.394-3.188l2.562-.357 5.626 3.193" fill="#452c25"/> - <path d="M342.645 198.1l1.336 1.906s-.444 1.786-5.083-1.69c-4.638-3.475-4.394-3.188-4.394-3.188l2.562-.357 5.626 3.193" fill="none" stroke="#000" stroke-width=".133"/> - <path d="M336.62 199.056s2.154 2.818 1.675 3.169c-.48.35-3.024.2-4.84-2.559-1.817-2.758-.039-.14-.039-.14l.169-4.46 3.082 3.853" fill="#452c25"/> - <path d="M336.62 199.056s2.154 2.818 1.675 3.169c-.48.35-3.024.2-4.84-2.559-1.817-2.758-.039-.14-.039-.14l.169-4.46 3.082 3.853" fill="none" stroke="#000" stroke-width=".133"/> - <path d="M338.832 197.758s2.074 2.677 1.848 3.084c-.226.407-3.15.148-5.48-2.493-2.33-2.64-.347-3.484-.347-3.484l3.942 2.753" fill="#452c25"/> - <path d="M338.813 197.688s2.093 2.747 1.867 3.154c-.226.407-3.15.148-5.48-2.493-2.33-2.64-.347-3.484-.347-3.484l3.96 2.823z" fill="none" stroke="#000" stroke-width=".133"/> - <path d="M350.651 196.178s5.911 2.543 1.527 2.377c0 0-8.588-2.313-13.03-6.119l1.256-1.661 10.178 5.255" fill="#452c25"/> - <path d="M350.651 196.178s5.911 2.543 1.527 2.377c0 0-8.588-2.313-13.03-6.119l1.256-1.661 10.178 5.255" fill="none" stroke="#000" stroke-width=".133"/> - <path d="M353.753 195.445s3.2 1.941 3.438 2.679c.238.738-9.943-1.902-15.313-6.374l2.398-1.174 9.477 4.869z" fill="#452c25"/> - <path d="M353.753 195.445s3.2 1.941 3.438 2.679c.238.738-9.943-1.902-15.313-6.374l2.398-1.174 9.477 4.869z" fill="none" stroke="#000" stroke-width=".133"/> - <path d="M344.46 197.203s2.314 1.9 2.052 2.12c-.263.22-4.955-.481-8.639-3.316l.441-1.694 6.192 2.8" fill="#452c25"/> - <path d="M344.46 197.203s2.314 1.9 2.052 2.12c-.263.22-4.955-.481-8.639-3.316l.441-1.694 6.192 2.8" fill="none" stroke="#000" stroke-width=".133"/> - <path d="M348.418 197.042s2.282 1.575 1.81 1.74c-.474.166-2.265 1.573-10.76-3.403l-1.002-.55 1.349-2.12 8.607 4.195" fill="#452c25"/> - <path d="M348.42 196.973s2.28 1.644 1.807 1.81c-.473.165-2.264 1.572-10.76-3.404l-1.001-.55 1.349-2.12 8.605 4.264z" fill="none" stroke="#000" stroke-width=".133"/> - <path d="M339.698 192.38s2.762 2.474 2.41 2.83c-.353.355-3.64-.428-5.09-1.505-1.45-1.078-2.505-2.459-2.505-2.459l3.08-.664 2.105 1.799z" fill="#452c25"/> - <path d="M339.698 192.38s2.762 2.474 2.41 2.83c-.353.355-3.64-.428-5.09-1.505-1.45-1.078-2.505-2.459-2.505-2.459l3.08-.664 2.105 1.799z" fill="none" stroke="#000" stroke-width=".133"/> - <path d="M336.406 188.25l5.031 3s4.106 2.898 3.673 3.158c-.435.26-3.67-.753-5.965-2.004-2.293-1.25-4.954-3.945-4.954-3.945" fill="#452c25"/> - <path d="M336.406 188.25l5.031 3s4.106 2.898 3.673 3.158c-.435.26-3.67-.753-5.965-2.004-2.293-1.25-4.954-3.945-4.954-3.945" fill="none" stroke="#000" stroke-width=".133"/> - <path d="M333.231 202.433s.937 2.398.377 2.606c-.56.209-1.947-.218-3.062-2.393-1.114-2.174.971-1.255.971-1.255l1.714 1.042z" fill="#452c25"/> - <path d="M333.231 202.433s.937 2.398.377 2.606c-.56.209-1.947-.218-3.062-2.393-1.114-2.174.756-1.207.756-1.207l1.929.994z" fill="none" stroke="#000" stroke-width=".133"/> - <path d="M334.9 200.882s1.406 2.325 1.1 2.59c-.307.265-2.162 1.068-4.183-1.93-2.02-2.998 2.08-2.367 2.08-2.367l1.003 1.707z" fill="#452c25"/> - <path d="M334.9 200.882s1.406 2.325 1.1 2.59c-.307.265-2.162 1.068-4.183-1.93-2.02-2.998 2.08-2.367 2.08-2.367l1.003 1.707z" fill="none" stroke="#000" stroke-width=".133"/> - <path d="M330.696 190.392s4.798 9.265 4.4 9.758c-.4.492-2.296-.002-3.358-2.451-1.062-2.45-1.93-5.631-1.93-5.631l.888-1.676z" fill="#452c25"/> - <path d="M330.696 190.392s4.798 9.265 4.4 9.758c-.4.492-2.296-.002-3.358-2.451-1.062-2.45-1.93-5.63-1.93-5.63l.888-1.677z" fill="none" stroke="#000" stroke-width=".133"/> - <path d="M336.286 192.75s4.004 3.403 3.182 3.832c-.822.429-2.415-.192-4.757-2.51-2.342-2.316 1.537-1.463 1.537-1.463" fill="#452c25"/> - <path d="M336.267 192.68s4.023 3.473 3.201 3.902c-.822.429-2.415-.192-4.757-2.51-2.342-2.316 1.556-1.393 1.556-1.393z" fill="none" stroke="#000" stroke-width=".133"/> - <path d="M334.345 192.807s2.862 5.255 2.505 5.75c-.357.494-2.504-1.307-3.563-2.646-1.058-1.339-1.859-3.285-1.859-3.285" fill="#452c25"/> - <path d="M334.345 192.807s2.862 5.255 2.505 5.75c-.357.494-2.504-1.307-3.563-2.646-1.058-1.339-1.859-3.285-1.859-3.285" fill="none" stroke="#000" stroke-width=".133"/> - <path d="M312.9 203.599s-.17 3.097 0 3.329c.17.23 1.74.23 1.825-2.08.085-2.313-.34-2.405-.34-2.405l-1.528 1.063" fill="#452c25"/> - <path d="M312.9 203.599s-.17 3.097 0 3.329c.17.23 1.74.23 1.825-2.08.085-2.313-.34-2.405-.34-2.405l-1.528 1.063" fill="none" stroke="#000" stroke-width=".133"/> - <path d="M313.84 199.866s-1.104 3.467-.043 4.161c1.062.693 1.911-3.422 1.953-4.346.043-.925-1.91.185-1.91.185" fill="#452c25"/> - <path d="M313.84 199.866s-1.104 3.467-.043 4.161c1.062.693 1.911-3.422 1.953-4.346.043-.925-1.91.185-1.91.185z" fill="none" stroke="#000" stroke-width=".133"/> - <path d="M314.598 204.292s.212 3.237.807 3.375c.594.14 1.57-.924 1.57-1.757 0-.832-1.018-2.774-1.018-2.774l-1.402 1.018" fill="#452c25"/> - <path d="M314.598 204.292s.212 3.237.806 3.375c.595.14 1.571-.924 1.571-1.757 0-.832-1.019-2.774-1.019-2.774l-1.4 1.018" fill="none" stroke="#000" stroke-width=".133"/> - <path d="M314.626 200.416s-1.104 3.468-.042 4.161c1.061.694 1.91-3.421 1.953-4.346.043-.924-1.91.185-1.91.185z" fill="#452c25" stroke="#000" stroke-width=".133"/> - <path d="M314.712 194.851s-1.614 1.665-1.57 2.59c.041.924 2.377-1.249 2.59-1.665.211-.416-1.02-.925-1.02-.925" fill="#452c25"/> - <path d="M314.712 194.851s-1.614 1.665-1.57 2.59c.041.924 2.377-1.249 2.59-1.665.211-.416-1.02-.925-1.02-.925z" fill="none" stroke="#000" stroke-width=".133"/> - <path d="M313.603 193.919s-1.274 2.358-.935 3.097c.34.74 1.571-.554 2.166-1.387.595-.832-1.231-1.71-1.231-1.71" fill="#452c25"/> - <path d="M313.603 193.919s-1.274 2.358-.935 3.097c.34.74 1.571-.554 2.166-1.387.595-.832-1.231-1.71-1.231-1.71z" fill="none" stroke="#000" stroke-width=".133"/> - <path d="M331.51 190.795s2.034 3.831 1.475 4.04c-.56.208-1.419-.753-2.271-1.898-.853-1.146.796-2.142.796-2.142" fill="#452c25"/> - <path d="M331.51 190.795s2.034 3.831 1.475 4.04c-.56.208-1.419-.753-2.271-1.898-.853-1.146.796-2.142.796-2.142z" fill="none" stroke="#000" stroke-width=".133"/> - <path d="M331.557 198.63s.738 3.224.09 3.52c-1.267.583-1.974-2.29-2.05-3.369-.086-1.206 1.96-.15 1.96-.15zm-2.535 5.11s.171 2.414-.177 2.63c-.347.218-1.199.275-2.148-1.753-.95-2.029-.508-1.27-.508-1.27l2.334-1.154.507 1.317" fill="#452c25" stroke="#000" stroke-width=".133"/> - <path d="M331.356 203.189s.273 2.556-.24 2.627c-.512.072-1.875-.792-2.469-2.322-.684-1.764 2.38-1.244 2.38-1.244l.33.939z" fill="#452c25" stroke="#000" stroke-width=".133"/> - <path d="M328.953 195.35s2.623 5.87 2.201 6.706c-.826 1.637-3.21-3.575-3.93-5.61-.805-2.275 1.729-1.096 1.729-1.096z" fill="#452c25" stroke="#000" stroke-width=".133"/> - <path d="M327.736 196.33s3.577 6.462 2.068 6.612c-1.508.15-4.25-4.686-4.71-5.81-.46-1.124 2.642-.801 2.642-.801z" fill="#452c25" stroke="#000" stroke-width=".133"/> - <path d="M327.522 197.672s1.76 6.192.627 5.644c-1.134-.547-2.5-5.211-2.685-6.218-.187-1.006 2.058.574 2.058.574zm6.183-8.804s2.713 4.143 1.833 4.266c-.88.123-4.097-2.768-4.126-3.247-.03-.479 2.293-1.02 2.293-1.02z" fill="#452c25" stroke="#000" stroke-width=".133"/> - <path d="M332.01 189.042s3.458 4.721 2.415 4.961c-1.043.24-1.121-.498-1.121-.498s-2.76-2.488-2.946-3.117c-.185-.63 1.55-1.407 1.55-1.407m3.528.134s2.379 2.454 1.754 3.284c-.623.831-3.928-3.106-4.377-3.606-.45-.501 2.881.226 2.881.226m-6.025 3.505s3.83 7.462 3.125 8.22c-.705.759-4.962-5.594-5.11-6.515-.148-.921 2.024-1.844 2.024-1.844" fill="#452c25" stroke="#000" stroke-width=".133"/> - <path d="M327.466 193.2s1.532 2.334 1.445 3.592c-.086 1.257-2.315-1.8-2.507-2.376-.193-.576 1.062-1.217 1.062-1.217z" fill="#452c25" stroke="#000" stroke-width=".155"/> - <path d="M330.617 191.99s1.191 2.409.826 3.134c-.365.725-1.988-1.463-2.553-2.32-.566-.855 1.727-.814 1.727-.814z" fill="#452c25" stroke="#000" stroke-width=".133"/> - <path d="M325.09 194.358s1.87 2.074 1.78 3.18c-.09 1.105-2.804-1.614-3.042-2.123-.237-.509 1.263-1.057 1.263-1.057z" fill="#452c25" stroke="#000" stroke-width=".16"/> - <path d="M337.175 188.374s2.83 2.538 2.39 2.937c-.439.398-4.267-2.344-4.843-2.876-.577-.533 2.453-.061 2.453-.061z" fill="#452c25" stroke="#000" stroke-width=".133"/> - <path d="M334.782 188.19l2.213 1.864s2.056 1.375 1.704 1.73c-.352.356-3.573-1.118-4.144-1.79-.572-.67-.505-1.362-.505-1.362l.732-.442zm7.294.587s8.38 3.398 8.054 4.218c-.326.82-8.786-2.721-10.114-3.655-1.327-.934 1.934-.615 1.934-.615" fill="#452c25" stroke="#000" stroke-width=".133"/> - <path d="M342.378 189.853s6.294 3.544 5.56 3.884c-.735.34-5.24-.863-7.564-2.439-2.325-1.576-3.315-2.45-3.315-2.45l2.87-.669 2.45 1.674zm-15.493 4.307s1.192 2.41.826 3.135c-.365.725-1.55-.62-2.115-1.475-.566-.857 1.29-1.66 1.29-1.66zm.283 5.432s.983 3.511-.101 4.16c-1.085.65-1.791-3.497-1.802-4.423-.01-.926 1.903.263 1.903.263z" fill="#452c25" stroke="#000" stroke-width=".133"/> - <path d="M322.296 193.81s3.5-1.537 4.12-1.414c0 0 .734-.185 1.129-.492s1.298-1.044 1.298-1.044-.62-4.24 3.838-3.81c4.458.43 10.327.983 11.513 1.167 1.185.184 5.53 1.414 6.546 1.905 1.016.492 7.635 3.488 8.99 3.98.802.29 2.572 1.397 3.881 2.252.903.588-.027.167-.027.167s-10.72-5.691-14.51-6.452c-.948-.19.065 1.086.065 1.086s-2.462-.971-3.478-1.402c-1.016-.43-1.863-.614-2.822-.553a5.798 5.798 0 0 1-2.257-.307c-.565-.184-3.782-.307-4.346-.369a7.321 7.321 0 0 1-1.016-.184l.226.369-1.58-.246-.452.676s-1.524.307-1.637-.185c-.112-.491-.903 2.213-1.298 3.012-.395.799-1.862.798-2.314 1.29-.451.492-.733.8-.959.922-.226.123-1.354.799-1.75.799-.395 0-2.82.184-2.82.184l-.622-.983.282-.369zm4.6 9.936s.063 3.102-.115 3.326c-.178.225-1.747.16-1.752-2.154-.005-2.313.422-2.388.422-2.388l1.49 1.125" fill="#452c25" stroke="#000" stroke-width=".133"/> - <path d="M327.274 201.366s-.297-1.343-.51-1.529c-.212-.185.085-.37.085-.37s-.552-1.344-.891-1.575c-.34-.232.042-.417.042-.417s-.595-.927-1.02-1.204c-.424-.278 0-.325 0-.325s-.443-1.244-1.478-1.814c0 0-.686-.721-1.385-.92-.7-.199-2.436-.383-4.534-.345-2.21.04-3.147 1.572-3.147 1.572l-.14 1.777.318-.217-.468 2.213c-.074.506.397 1.385.423 2.443.008.335.029.685.066 1.044.1.949.323 1.956.754 2.885.034.073.065.288.107.218.108-.185.35.627.568.918 0 0 .13 1.104.235.695.041-.16.396.625.614 1.117.08.18.498 1.395.482.841-.017-.605.368 1.29.368 1.562l.51-.741.254.834.424-.047-.127.788s1.189-.973 1.232-1.344c.042-.37.084-.648.084-.648l.382-.37.595-.927s1.487 1.158 1.656 1.575c.17.417.34.787.34.787l.382-.37.34.833.212-.416.206.579.018-.036.136.382c.103.096.34.145.786-.601.637-1.065.595-1.9.637-2.085.043-.185.297.325.297.325s.553-1.02.467-1.668c-.085-.648.34-.417.34-.417s.085-1.714 0-2.13c-.085-.417.297-.325.297-.325s-.127-2.038-.254-2.27c-.128-.231.297-.277.297-.277z" fill="#452c25" stroke="#000" stroke-width=".133"/> - <path d="M324.298 196.65c.3.09.446.428.575.69-.008-.016.019-.092.003-.124-.129-.263-.278-.605-.578-.695.002 0-.02.123 0 .13m.27 1.28c.555.468.602 1.107.571 1.807 0 .02.007.145.011.065.033-.74.024-1.49-.581-2.001.014.012-.025.107 0 .129m1.15.655c.305.502.334 1.055.334 1.634 0 .074.013.074.013 0 0-.615-.016-1.219-.344-1.758.008.013-.02.095-.003.124m.404 2.42c-.034.358-.099.71-.168 1.062a.435.435 0 0 0 .006.112c.07-.36.136-.719.17-1.084.003-.016-.003-.141-.008-.09m-.373 1.856c.029.235.059.468.034.705-.002.017.004.142.009.091.032-.298.003-.59-.034-.887-.006-.05-.01.074-.009.091m-.713-2.33c0 .396.003.792.035 1.188.004.05.011-.075.01-.092-.03-.365-.032-.73-.032-1.096 0-.073-.013-.073-.013 0m-.303 2.572c.03.377.031.754.031 1.132 0 .073.013.073.013 0 0-.408-.002-.816-.036-1.223-.004-.05-.01.075-.009.091m1.7-.327c.163.173.264.377.3.614.005.025.009-.019.01-.023a.435.435 0 0 0-.002-.088 1.164 1.164 0 0 0-.308-.632c.015.016-.025.103 0 .13m-.102-2.597c.168.14.305.312.44.484-.015-.02.024-.099 0-.128a3.102 3.102 0 0 0-.44-.485c.014.011-.025.108 0 .129m-1.396 1.943a5.88 5.88 0 0 1-.098 1.052.439.439 0 0 0 .006.111c.072-.384.102-.772.105-1.163 0-.073-.012-.073-.013 0m-.743.773c.029.316.029.63 0 .947 0 .017.005.141.009.09a6.23 6.23 0 0 0 0-1.129c-.004-.05-.01.075-.009.092"/> - <path d="M310.74 194.326s-.85 3.19-.213 3.514c1.247.633 2.052-2.208 2.166-3.283.127-1.202-1.954-.23-1.954-.23" fill="#452c25"/> - <path d="M310.74 194.326s-.85 3.19-.213 3.514c1.247.633 2.052-2.208 2.166-3.283.127-1.202-1.954-.23-1.954-.23z" fill="none" stroke="#000" stroke-width=".133"/> - <path d="M312.577 194.3s-1.614 1.665-1.57 2.59c.041.925 2.377-1.248 2.589-1.665.213-.416-1.02-.924-1.02-.924" fill="#452c25"/> - <path d="M312.577 194.3s-1.614 1.665-1.57 2.59c.041.925 2.377-1.248 2.589-1.665.213-.416-1.02-.924-1.02-.924z" fill="none" stroke="#000" stroke-width=".133"/> - <path d="M285.056 194.535s-3.334 1.674-3.626 2.39c-.292.715 10.056-1.085 15.742-5.104l-2.306-1.366-9.81 4.08z" fill="#452c25"/> - <path d="M285.056 194.535s-3.334 1.674-3.626 2.39c-.292.715 10.056-1.085 15.742-5.104l-2.306-1.366-9.81 4.08z" fill="none" stroke="#000" stroke-width=".133"/> - <path d="M288.953 195.208s-6.034 2.194-1.646 2.283c0 0 8.695-1.81 13.327-5.35l-1.17-1.732-10.435 4.655" fill="#452c25"/> - <path d="M288.991 195.136s-6.072 2.266-1.684 2.355c0 0 8.695-1.81 13.327-5.35l-1.17-1.732-10.473 4.727z" fill="none" stroke="#000" stroke-width=".133"/> - <path d="M297.91 189.08s-6.411 3.283-5.69 3.653c.722.37 5.266-.648 7.644-2.127 2.378-1.48 3.397-2.312 3.397-2.312l-2.845-.786-2.506 1.572z" fill="#452c25"/> - <path d="M297.91 189.08s-6.411 3.283-5.69 3.653c.722.37 5.266-.648 7.644-2.127 2.378-1.48 3.397-2.312 3.397-2.312l-2.845-.786-2.506 1.572z" fill="none" stroke="#000" stroke-width=".133"/> - <path d="M295.49 196.28s-2.292 1.918-2.026 2.137c.265.218 4.949-.52 8.598-3.383l-.462-1.69-6.158 2.847" fill="#452c25"/> - <path d="M295.49 196.28s-2.292 1.918-2.026 2.137c.265.218 4.949-.52 8.598-3.383l-.462-1.69-6.158 2.847" fill="none" stroke="#000" stroke-width=".133"/> - <path d="M291.502 195.983s-2.2 1.68-1.72 1.824c.481.143 2.342 1.462 10.579-3.91l.972-.598-1.453-2.052-8.39 4.598" fill="#452c25"/> - <path d="M291.497 195.914s-2.195 1.75-1.715 1.893c.481.143 2.342 1.462 10.579-3.91l.972-.598-1.453-2.052-8.383 4.667z" fill="none" stroke="#000" stroke-width=".133"/> - <path d="M289.802 189.592c-6.927 2.424-13.874 7.25-13.874 7.25.68-.23 17.826-7.133 17.826-7.133M305 200.408s-1.486 2.266-1.189 2.543c.298.277 2.124 1.156 4.247-1.757 2.123-2.913-1.996-2.45-1.996-2.45L305 200.407z" fill="#452c25"/> - <path d="M305.001 200.408s-1.486 2.266-1.189 2.543c.298.277 2.124 1.156 4.247-1.757 2.123-2.913-1.996-2.45-1.996-2.45L305 200.407z" fill="none" stroke="#000" stroke-width=".133"/> - <path d="M306.615 202.027s-1.019 2.358-.467 2.589c.552.231 1.953-.139 3.142-2.266 1.19-2.127-.552-1.063-.552-1.063l-2.123.74zm-3.27-3.514s-2.25 2.728-1.783 3.097c.467.37 3.015.324 4.926-2.358 1.91-2.681.042-.138.042-.138l-.552-2.45-2.675 1.71" fill="#452c25"/> - <path d="M306.615 202.027s-1.019 2.358-.467 2.589c.552.231 1.953-.139 3.142-2.266 1.19-2.127-.552-1.063-.552-1.063l-2.123.74zm-3.27-3.514s-2.25 2.728-1.783 3.097c.467.37 3.015.324 4.926-2.358 1.91-2.681.042-.138.042-.138l-.552-2.45-2.675 1.71" fill="none" stroke="#000" stroke-width=".133"/> - <path d="M301.18 197.125s-2.166 2.59-1.954 3.006c.213.416 3.143.277 5.563-2.266s.467-3.468.467-3.468l-4.033 2.59" fill="#452c25"/> - <path d="M301.18 197.125s-2.166 2.59-1.954 3.006c.213.416 3.143.277 5.563-2.266s.467-3.468.467-3.468l-4.033 2.59" fill="none" stroke="#000" stroke-width=".133"/> - <path d="M297.358 197.31l-1.401 1.85s.382 1.803 5.138-1.48 4.501-3.005 4.501-3.005l-2.548-.462-5.733 2.959" fill="#452c25"/> - <path d="M297.337 197.241l-1.38 1.919s.382 1.803 5.138-1.48 4.501-3.005 4.501-3.005l-2.548-.462-5.711 3.028z" fill="none" stroke="#000" stroke-width=".133"/> - <path d="M282.19 194.478l-3.015 1.355s-.681.597 1.09.642c1.77.044 5.428-.445 11.791-4.053 2.877-1.632 4.7-3.187 4.7-3.187l-2.319-.861-12.247 6.104z" fill="#452c25"/> - <path d="M282.19 194.478l-3.015 1.355s-.681.597 1.09.642c1.77.044 5.428-.445 11.791-4.053 2.877-1.632 4.7-3.187 4.7-3.187l-2.319-.861-12.247 6.104z" fill="none" stroke="#000" stroke-width=".133"/> - <path d="M277.027 196.38s4.337-.472 6.06-1.602c0 0-.352.527 1.866-.34 0 0-1.104 1.987 5.362-1.95 6.467-3.936.053-.079.053-.079l7.182-4.115-.42-.82s-13.722 5.877-14.76 6.204c-1.038.328-5.343 2.701-5.343 2.701" fill="#452c25"/> - <path d="M290.342 192.449l7.208-4.155-.42-.82s-13.722 5.877-14.76 6.204c-1.038.328-5.343 2.701-5.343 2.701s4.337-.471 6.06-1.601c0 0-.352.527 1.866-.34 0 0-1.078 1.947 5.389-1.99z" fill="none" stroke="#000" stroke-width=".133"/> - <path d="M308.526 201.927s-.425 3.437.085 3.564c.51.128 1.953-.954 2.548-3.055.594-2.1-2.335-1.846-2.335-1.846l-.425 1.21" fill="#452c25"/> - <path d="M308.526 201.927s-.425 3.437.085 3.564c.51.128 1.953-.954 2.548-3.055.594-2.1-2.335-1.846-2.335-1.846l-.425 1.21" fill="none" stroke="#000" stroke-width=".156"/> - <path d="M310.776 203.506s-.254 2.404.085 2.636c.34.23 1.19.323 2.208-1.665 1.02-1.988.552-1.248.552-1.248l-2.293-1.249-.552 1.295" fill="#452c25"/> - <path d="M310.776 203.39s-.254 2.52.085 2.752c.34.23 1.19.323 2.208-1.665 1.02-1.988.552-1.248.552-1.248l-2.293-1.249-.552 1.41z" fill="none" stroke="#000" stroke-width=".133"/> - <path d="M311.413 199.021s-1.868 4.07-.806 4.023c1.061-.046 2.505-3.098 2.717-3.792.212-.693-1.91-.23-1.91-.23" fill="#452c25"/> - <path d="M311.413 199.021s-1.868 4.07-.806 4.023c1.06-.046 2.505-3.098 2.717-3.792.213-.693-1.91-.23-1.91-.23z" fill="none" stroke="#000" stroke-width=".133"/> - <path d="M311.251 198.985s-.703 4.484.3 4.105c1.004-.38 1.572-3.757 1.59-4.488.019-.73-1.89.383-1.89.383" fill="#452c25"/> - <path d="M311.251 198.985s-.703 4.484.3 4.105c1.004-.38 1.572-3.757 1.59-4.488.019-.73-1.89.383-1.89.383z" fill="none" stroke="#000" stroke-width=".133"/> - <path d="M312.772 199.437s-1.104 3.468-.042 4.161c1.061.694 1.91-3.421 1.953-4.346.042-.924-1.91.185-1.91.185" fill="#452c25"/> - <path d="M312.772 199.437s-1.104 3.468-.042 4.161c1.061.694 1.91-3.421 1.953-4.346.042-.924-1.91.185-1.91.185z" fill="none" stroke="#000" stroke-width=".133"/> - <path d="M308.42 198.296s-1.062 3.19-.425 3.514c1.246.633 2.264-2.209 2.378-3.283.127-1.202-1.953-.231-1.953-.231zm-7.92-6.58s-2.844 2.358-2.505 2.728c.34.37 3.652-.278 5.138-1.295 1.486-1.017 2.08-1.572 2.08-1.572l-2.547-1.572-2.165 1.71z" fill="#452c25" stroke="#000" stroke-width=".133"/> - <path d="M303.006 189.311s-1.826 1.48-1.486 1.85c.34.37 3.609-.971 4.203-1.618.595-.648.552-1.341.552-1.341l-3.27 1.11z" fill="none" stroke="#000" stroke-width=".133"/> - <path d="M304.874 189.08s-2.463 2.035-1.868 2.774c.594.74 4.034-2.543 4.5-2.959.468-.416-2.887.093-2.887.093" fill="#452c25" stroke="#000" stroke-width=".133"/> - <path d="M303.77 188.156l-4.968 2.358s-4.204 2.728-3.78 3.005c.425.278 3.695-.601 6.03-1.757 2.336-1.156 4.926-3.098 4.926-3.098m-.824 2.175s-5.375 4.622-4.568 5.084c.806.462 4.401-1.473 6.821-3.693" fill="#452c25" stroke="#000" stroke-width=".133"/> - <path d="M305.836 192.361s-3.042 5.134-2.703 5.643c.34.508 2.548-1.202 3.652-2.497s1.972-3.207 1.972-3.207" fill="#452c25" stroke="#000" stroke-width=".133"/> - <path d="M307.584 192.814s-3.296 6.126-2.914 6.635c.383.508 2.293.092 3.44-2.312 1.146-2.405 1.048-3.956 1.048-3.956l-1.574-.367z" fill="#452c25" stroke="#000" stroke-width=".133"/> - <path d="M309.5 193.108s-3.664 7.56-2.942 8.3c.722.74 4.778-5.734 4.964-6.648.327-1.608-2.065-1.79-2.065-1.79m-7.683-4.86s-3.312 1.571-2.632 1.895c.679.324 3.779-1.063 4.203-1.202.426-.139-1.57-.694-1.57-.694z" fill="#452c25" stroke="#000" stroke-width=".133"/> - <path d="M302.284 188.618s-2.038 1.618-1.613 2.034c.424.417 3.524-1.248 4.118-1.757.594-.508-2.505-.277-2.505-.277z" fill="#452c25" stroke="#000" stroke-width=".133"/> - <path d="M306.56 188.747s-2.785 3.745-1.932 3.893c.854.148 4.089-2.414 4.134-2.858.045-.444-2.202-1.035-2.202-1.035z" fill="#452c25" stroke="#000" stroke-width=".141"/> - <path d="M307.804 189.589s-2.972 3.745-2.123 3.976c.85.231.934-.37.934-.37s2.335-1.942 2.505-2.45c.17-.509-1.231-1.202-1.231-1.202" fill="#452c25" stroke="#000" stroke-width=".133"/> - <path d="M308.739 190.467s-2.166 3.746-1.614 3.977c.552.231 1.443-.694 2.335-1.804.892-1.109-.721-2.173-.721-2.173z" fill="#452c25" stroke="#000" stroke-width=".133"/> - <path d="M309.29 192.178s-1.274 2.358-.934 3.098c.34.74 1.571-.555 2.166-1.387.594-.832-1.232-1.71-1.232-1.71zm.535 6.546s-.85 3.19-.213 3.514c1.247.633 2.052-2.208 2.166-3.283.127-1.202-1.953-.23-1.953-.23z" fill="#452c25" stroke="#000" stroke-width=".133"/> - <path d="M315.66 194.41s-.85-.278-1.487-.278c0 0-1.868-1.48-2.887-1.618-1.019-.14-.149-.162-.149-.162s-.106-2.428-.403-2.612c0 0-.17-2.497-1.741-2.682-1.571-.185-5.096.138-5.733-.093-.636-.231-2.588-1.045-6.284-.046-3.782 1.023-11.223 4.364-11.605 4.456-.382.093 8.548-1.959 11.053-3.069 0 0 2.505-.185 3.27-.416 0 0-2.845 1.387-.213.786 2.633-.601 2.038 0 2.038 0s-.254.601 1.232.278c1.486-.324 1.486 0 1.486 0s1.699.6 3.015-.186c0 0 .68 2.359 1.529 2.682 0 0 1.009 2.16 3.132 2.577 0 0 1.009.715 1.22.854l1.2.393 1.284-1.003" fill="#452c25" stroke="#000" stroke-width=".133"/> - <path d="M298.25 188.017s-8.492 3.051-8.195 3.884c.297.832 8.874-2.358 10.233-3.237 1.36-.878-1.91-.693-1.91-.693" fill="#452c25" stroke="#000" stroke-width=".133"/> - <path d="M321.76 194.597c.194.033.358.12.532.21.005.003.08.049.093.03.014-.02-.052-.078-.056-.082a1.539 1.539 0 0 0-.362-.268c-.222-.115-.438-.234-.687-.275-.05-.008.134.167.147.177.089.072.216.189.333.208m-6.612 6.412c.126.242.145.52.272.762-.008-.016.019-.093.003-.125-.126-.24-.146-.52-.272-.761.008.015-.02.093-.004.124m1.154-6.54c.284-.1.585-.103.881-.138.014-.002.005-.13 0-.13-.296.036-.597.038-.881.14-.02.006.004.127 0 .128m1.694-.138c.27-.128.555-.139.847-.139a.314.314 0 0 0 0-.129c-.292 0-.577.011-.847.139-.023.01.007.125 0 .129m-2.948 1.498c-.035.006-.037.035-.04.066a.327.327 0 0 0 .004.089c.004.024.008-.02.008-.024-.002.024.013 0 .028-.003.016-.003.003-.13 0-.129m-.176 4.565c0 .238.002.477.037.713.004.025.01-.02.01-.023a.376.376 0 0 0-.004-.088c-.03-.2-.03-.4-.03-.602 0-.073-.013-.073-.013 0"/> - <path d="M316.587 213.894s-.96.743-1.069 1.093a3.78 3.78 0 0 0-.138.687s.86-.103.754.37c0 0 .28.161.723-.868.443-1.03.862-1.474 1.176-1.444.315.03.715.336.917.55.202.216.48.376.83.275 0 0-.367-.56-.135-.682.232-.123.585-.099.585-.099s-.293-.698-.923-.799c-.63-.1-1.066-.276-.917-.55.15-.274.956-2.403.956-2.403l-1.068-1.568-.428 1.365s.14.806.145 1.013c.006.206-.85 1.97-.964 2.071-.115.103-2.404.988-2.677 1.075-.272.087-.842.765-.842.765l-.065.509s.384-.314.507-.127c0 0 .265-.336.504-.21.238.126.2.174.2.174s.424-.28.499-.416c.075-.138.095-.12.095-.12s.214-.057.526-.11" fill="#bd8759"/> - <path d="M316.587 213.894s-.96.743-1.069 1.093a3.78 3.78 0 0 0-.138.687s.86-.103.754.37c0 0 .28.161.723-.868.443-1.03.862-1.474 1.176-1.444.315.03.715.336.917.55.202.216.48.376.83.275 0 0-.367-.56-.135-.682.232-.123.585-.099.585-.099s-.293-.698-.923-.799c-.63-.1-1.066-.276-.917-.55.15-.274.956-2.403.956-2.403l-1.068-1.568-.428 1.365s.14.806.145 1.013c.006.206-.85 1.97-.964 2.071-.115.103-2.404.988-2.677 1.075-.272.087-.842.765-.842.765l-.065.509s.384-.314.507-.127c0 0 .265-.336.504-.21.238.126.2.174.2.174s.424-.28.499-.416c.075-.138.095-.12.095-.12s.214-.057.526-.11" fill="none" stroke="#000" stroke-width=".133"/> - <path d="M323.117 209.17s.04 1.806.04 2.142c0 .336-.04.84-.232 1.134-.193.294-.386.462-.694.462-.31 0-1.119-.042-1.273.252-.155.294-.27.462-.27.462s.501-.294.578 0c.077.294-.192.546-.192.546s.462.084.886-.168.656-.294.849-.294c.193 0 .347.21.347.21s.116.63.077 1.008c-.039.378-.116 1.134.309 1.134 0 0 .154-.378.308-.42.154-.042.579.377.502.503 0 0 .077-.797-.078-1.26a6.735 6.735 0 0 1-.231-.965s1.311.462 1.427.63c.116.168.424.462.54.42.116-.042 0-.42.231-.504.232-.084.347.126.347.126s-.385-.882-.964-1.176c-.578-.294-.964-.294-1.195-.546-.232-.252-.27-.546-.309-.84-.038-.294.01-2.833.01-2.833l-.974-.19" fill="#bd8759"/> - <path d="M323.137 209.038s.02 1.938.02 2.274c0 .336-.04.84-.232 1.134-.193.294-.386.462-.694.462-.31 0-1.119-.042-1.273.252-.154.294-.27.462-.27.462s.501-.294.578 0c.077.294-.192.546-.192.546s.462.084.886-.168.656-.294.849-.294c.193 0 .347.21.347.21s.116.63.077 1.008c-.039.377-.116 1.134.309 1.134 0 0 .154-.378.308-.42.154-.042.579.377.502.503 0 0 .077-.797-.078-1.26-.154-.461-.231-.965-.231-.965s1.311.462 1.427.63c.116.168.424.462.54.42.116-.042 0-.42.231-.504.232-.084.347.126.347.126s-.385-.882-.964-1.176c-.578-.294-.964-.294-1.195-.546-.232-.252-.27-.546-.309-.84-.038-.294.01-2.833.01-2.833l-.993-.155z" fill="none" stroke="#000" stroke-width=".133"/> - <path d="M315.069 197.32s-.128-1.287.233-1.426c0 0 .128-1.179 1.699-1.017 0 0 .53-.879 1.38-.416 0 0 .806-.393 1.274-.162.467.231 1.04.624 1.082.717 0 0 .68-.14.998.115.319.255.17 1.087.17 1.087s.764.585.828 1.102c.063.516.063.724-.107.863 0 0 .34.277.277.67-.064.393-.383.963-.446.963-.064 0 .042 1.025-.297 1.372-.34.347-.659.417-.807.463-.149.046-.53.6-.892.67-.36.07-.849-.555-.891-.74-.043-.185-.531-.393-.531-.393s-1.104 1.18-1.847.994c-.743-.184-1.104-.809-1.168-.924-.064-.116-.276-.971-.276-.971s-.828-.486-.764-.948c.063-.462.403-1.017.403-1.017l-.318-1.002z" fill="#dcddde"/> - <path d="M317.828 211.94c-.1.019-.17.004-.236-.042m.604-.89a.8.8 0 0 1-.317-.113m-.063.592c.071.04.154.056.237.043m-1.021 1.417c.045.032.1.052.158.056m6.429-.935c.157.027.3.111.463.126m-.193-.588c-.125.03-.231.006-.308-.084m.385-.462a.863.863 0 0 1-.424-.042m-.116 1.89c.147.02.283.092.424.126m-.385.462a.217.217 0 0 1 .193.042m-.077 1.553a.402.402 0 0 1 .27.042m-5.092-2.104a.34.34 0 0 0-.268.211m1.054-.137c-.169.098-.32.235-.341.431m-4.536.435c.131.119.325.189.439.299m9.9-.94a.352.352 0 0 0-.192.252m.732-.085a.185.185 0 0 0-.115.169" fill="none" stroke="#000" stroke-width=".133"/> - <path d="M313.45 215.074l.551-.143.053.022s-.36.697-.263.866c.099.169-.492-.306-.34-.745" fill="#d9c0b9"/> - <path d="M313.45 215.074l.551-.143.053.022s-.36.697-.263.866c.099.169-.492-.306-.34-.745z" fill="none" stroke="#000" stroke-width=".133"/> - <path d="M315.545 215.486s-.609 1.017.181 1.525c0 0-.049-.948.57-1.152l-.75-.373z" fill="#d9c0b9"/> - <path d="M315.545 215.486s-.609 1.017.181 1.525c0 0-.049-.948.57-1.152l-.75-.373z" fill="none" stroke="#000" stroke-width=".133"/> - <path d="M319.587 214.537l-.184-.55.214-.289.432-.005.183.087s.348.793.044 1.209c0 0-.129-.448-.276-.51 0 0-.322-.05-.413.058" fill="#d9c0b9"/> - <path d="M319.587 214.537l-.184-.55.214-.289.432-.005.183.087s.348.793.044 1.209c0 0-.129-.448-.276-.51 0 0-.322-.05-.413.058z" fill="none" stroke="#000" stroke-width=".133"/> - <path d="M320.938 213.374h.362l.137.338-.051.312-.312.144s-.515-.131-.389.481c0 0-.241-1.125.253-1.275" fill="#d9c0b9"/> - <path d="M320.938 213.374h.362l.137.338-.051.312-.312.144s-.515-.131-.389.481c0 0-.241-1.125.253-1.275z" fill="none" stroke="#000" stroke-width=".133"/> - <path d="M323.492 215.893l.374-.412.401.212s-.166 1.088-.23 1.169c-.062.081-.074.094-.074.125s-.063-.206-.184-.344c-.12-.137-.246-.737-.287-.75" fill="#d9c0b9"/> - <path d="M323.492 215.893l.374-.412.401.212s-.166 1.088-.23 1.169c-.062.081-.074.094-.074.125s-.063-.206-.184-.344c-.12-.137-.246-.737-.287-.75z" fill="none" stroke="#000" stroke-width=".133"/> - <path d="M325.926 214.8s.603.75.528.993c0 0 .62-.625-.178-1.512l-.35.518z" fill="#d9c0b9"/> - <path d="M325.926 214.8s.603.75.528.993c0 0 .62-.625-.178-1.512l-.35.518z" fill="none" stroke="#000" stroke-width=".133"/> - <path d="M323.282 195.889c.12.034.194.122.235.24a.188.188 0 0 0 .007-.045c0-.025.004-.056-.004-.08-.04-.12-.116-.21-.238-.245.002.001-.02.124 0 .13m.135 2.076c.188.198.327.427.405.69-.006-.02.014-.088.003-.124a1.697 1.697 0 0 0-.408-.695c.015.016-.025.104 0 .13m-.44-1.524c.183.16.339.345.507.52-.015-.016.025-.104 0-.13-.168-.174-.324-.36-.508-.519.014.013-.025.108 0 .13m.505 3.452c.054.31-.018.576-.134.851-.014.034.011.107.004.125.148-.352.202-.71.137-1.087a.466.466 0 0 0-.007.111m.475 1.073c.024.16.028.318 0 .478a.372.372 0 0 0-.002.088c0 .004.004.048.009.023a2.159 2.159 0 0 0 0-.7c-.004-.025-.008.02-.01.023a.435.435 0 0 0 .003.088m1.83 3.78c.122.433.131.875.132 1.322 0 .074.013.074.013 0 0-.488-.008-.974-.14-1.447.005.022-.014.089-.004.125m-.305.88c-.1.305-.2.61-.339.9-.015.032.012.107.003.124.14-.29.24-.595.34-.9.011-.035-.01-.104-.004-.125m-10.23-2.92c.283.37.436.813.675 1.21-.008-.013.021-.095.003-.124-.24-.399-.394-.843-.679-1.214.016.02-.023.099 0 .129m1.796.044c-.259.034-.322-.338-.542-.415.004 0-.021.121 0 .129.219.077.283.45.542.415.014-.002.004-.13 0-.129m-1.019 1.719c.186.326.309.686.509 1.004-.008-.013.021-.096.004-.125-.2-.318-.323-.677-.509-1.004.008.015-.02.095-.003.125m1.188.418c.209.251.398.515.506.828-.006-.02.016-.089.004-.124-.11-.315-.3-.58-.51-.833.016.019-.024.1 0 .129m-.103 1.243c.105.218.2.44.305.658-.008-.016.019-.092.003-.124-.106-.218-.2-.44-.305-.658.008.017-.02.092-.003.124m1.118.243c.061.228.095.462.097.7 0 .072.013.073.013 0a3.305 3.305 0 0 0-.106-.825c.006.022-.014.089-.003.125m-.476 1.032c.073.329.169.65.34.941-.008-.014.02-.094.004-.124-.168-.287-.265-.604-.337-.928a.366.366 0 0 0-.007.111m.274-4.387c.268.102.536.203.813.277 0 0 .019-.125 0-.13a8.08 8.08 0 0 1-.813-.277c.005.002-.021.121 0 .13m.203 1.142c.32.178.656.32.983.484-.008-.004.023-.117 0-.128-.327-.165-.663-.307-.983-.485.01.005-.024.115 0 .129m.305 1.28c.165.201.346.386.542.555-.014-.013.026-.108 0-.13a4.47 4.47 0 0 1-.542-.553c.016.019-.023.1 0 .129m.337 1.59c.138.22.202.463.236.72.003.025.008-.02.01-.023a.373.373 0 0 0-.004-.089 1.791 1.791 0 0 0-.238-.733c.008.013-.022.095-.004.125m.947-3.953c.03.153.066.305.103.456-.006-.022.013-.087.004-.124a10.06 10.06 0 0 1-.1-.444c-.005-.024-.008.02-.008.024a.326.326 0 0 0 .002.088m2.373-.949a3.575 3.575 0 0 1-.238.485c-.017.03.012.11.003.124.091-.156.17-.316.237-.484.015-.035-.01-.106-.003-.125m.978-.042c0 .273-.004.543-.064.81a.393.393 0 0 0 .006.112c.068-.302.07-.612.071-.921 0-.074-.013-.074-.013 0m.205 1.5c.025.233 0 .463-.032.694a.562.562 0 0 0 .006.111 3.72 3.72 0 0 0 .035-.897c-.005-.05-.011.074-.01.091m.748 1.422c-.045.321-.239.578-.471.787-.026.023.014.116 0 .13.238-.215.432-.477.477-.806a.562.562 0 0 0-.006-.111m-2.404-1.392c-.068.135-.155.256-.237.381-.012.017-.005.06-.004.08 0 .004.004.051.007.045.082-.125.17-.247.237-.381.01-.02.005-.058.004-.08 0-.004-.004-.05-.007-.045m.273 1.902a1.89 1.89 0 0 1-.34.381c-.025.02.014.119 0 .13.135-.107.238-.244.34-.382.01-.014.006-.048.006-.064 0-.007-.01-.062-.006-.065m-.848 1.004c-.33-.327-.486-.748-.337-1.223.012-.036-.01-.104-.004-.124-.166.529-.056 1.084.341 1.476-.015-.015.025-.104 0-.129m-1.121-1.056c.025.195.024.385-.032.574-.011.036.009.103.003.124.078-.262.07-.54.035-.81-.004-.025-.008.02-.008.023a.435.435 0 0 0 .002.089m2.576 1.266c-.07.235-.197.44-.305.658-.016.032.011.108.004.125.108-.218.235-.424.305-.658.01-.036-.01-.104-.003-.125m1.66.693a9.23 9.23 0 0 1-.474.727c-.02.027.011.113.004.124.166-.237.33-.474.474-.727.017-.03-.012-.11-.003-.124m.811.871a17 17 0 0 0-.138 1.339c-.002.021.005.144.011.065.033-.432.067-.864.133-1.292a.564.564 0 0 0-.006-.112m1.048-1.554c.003.151.031.3.034.45.002.091.013.007.012-.034-.002-.15-.032-.3-.034-.45-.002-.09-.013-.007-.012.035m-11.144-4.885c-.063.445-.008.87.137 1.295-.007-.02.015-.09.003-.125-.12-.347-.188-.677-.134-1.059a.562.562 0 0 0-.006-.11"/> - <path d="M318.817 196.346c.716-.657 1.66-1.348 2.676-1.107 0 0 .017-.124 0-.129-1.015-.242-1.96.45-2.676 1.106-.025.024.015.116 0 .13m3.44.782c-.718-.489-1.972-.667-2.675-.065-.026.021.014.117 0 .129.703-.602 1.957-.423 2.675.065-.012-.008.025-.113 0-.13m-2.74 1.103c.293.953.674 1.923.507 2.94a.564.564 0 0 0 .006.112c.18-1.103-.19-2.137-.51-3.176.006.02-.015.089-.004.124m-1.148.58c.176.963.064 1.936-.002 2.904-.002.022.006.145.011.066.07-1.027.184-2.06-.002-3.082a.432.432 0 0 0-.006.112m1.532-.708c.936.222 1.851.846 2.355 1.69-.008-.014.021-.095.004-.125-.505-.846-1.42-1.47-2.358-1.694 0 0-.019.126 0 .13m-.835 1.302c.003.592.05 1.184-.123 1.76-.01.035.01.103.003.124.185-.616.136-1.25.133-1.884 0-.074-.013-.074-.013 0m1.47-.131c.589.486 1.055 1.22 1.143 1.998.006.05.01-.074.008-.091-.09-.794-.549-1.538-1.151-2.036.014.011-.025.108 0 .129m-4.33 1.624c.196-.278.437-.595.764-.713.02-.008-.004-.128 0-.13-.33.12-.57.439-.766.719-.02.027.011.113.003.124m1.4-5.063c-.123-.529-.52-.841-.946-1.126.01.007-.023.1 0 .115.422.283.82.595.943 1.122-.004-.02.012-.078.003-.11m-.829-.01c-.49-.232-.997-.26-1.529-.26a.312.312 0 0 0 0 .13c.532 0 1.039.027 1.529.26-.008-.005.023-.119 0-.13m1.532-.081c.064-.509-.01-.99-.45-1.303.012.008-.021.098 0 .113.369.264.503.63.444 1.092a.435.435 0 0 0 .006.098m1.844.6c.46-.244.962-.198 1.465-.195.009 0 .01-.128 0-.128-.503-.004-1.005-.05-1.465.195-.024.012.009.124 0 .129m.828 1.236c.71.075 1.253.44 1.72.976-.032-.036.048-.203 0-.258-.468-.536-1.01-.901-1.72-.977-.01 0-.027.256 0 .259m-3.124 1.958c-.168.68-.04 1.54-.825 1.818-.042.014.008.255 0 .258.795-.282.662-1.14.831-1.827.019-.073-.017-.204-.006-.249" fill="#fff"/> - <path d="M319.515 199.009c.272.714.653 1.443.506 2.236a.873.873 0 0 0 .013.223c.18-.977-.17-1.811-.513-2.708.014.037-.033.18-.006.249m1.022-.126c.693.088 1.303.705 1.395 1.414.007.05.017-.04.017-.047a.95.95 0 0 0-.005-.176c-.093-.722-.697-1.359-1.407-1.45-.009 0-.028.255 0 .259m-.006 1.023c.109.594.277 1.188.067 1.782-.025.07.02.21.007.249.262-.74.075-1.507-.061-2.254a.92.92 0 0 0-.013.223m-.376-2.585c.763-.129 1.57-.244 2.23.26-.027-.02.05-.22 0-.258-.66-.504-1.467-.389-2.23-.26-.031.005-.005.26 0 .258m-1.394-1.514c.091-.63.646-1.081 1.204-1.284.042-.015-.01-.255 0-.258-.576.21-1.123.673-1.217 1.319a.95.95 0 0 0-.005.177c0 .008.01.096.017.046m-.696.379c-.019-.7-.325-1.262-.626-1.873.014.028-.034.163-.006.22.27.547.594 1.082.61 1.713.005.16.024.013.022-.06m-.641.374c-.136-.622-.547-1.035-1.09-1.32.018.01-.047.234 0 .26.525.274.944.678 1.077 1.283a.746.746 0 0 0 .013-.223m-1.026-.25c-.356-.247-.73-.48-1.162-.547-.006 0-.024.198 0 .201.432.067.806.3 1.162.548-.019-.013.04-.174 0-.201m2.22 2.925c.062.66.144 1.328-.185 1.931-.034.062.023.22.007.25.394-.723.27-1.578.197-2.364-.01-.101-.021.15-.018.183" fill="#fff"/> - <path d="M319.387 198.878c.221.622.482 1.283.438 1.958-.003.042.012.29.023.13.053-.821-.182-1.572-.454-2.337.014.04-.031.18-.007.25m.513-.907c.632.194 1.26.401 1.72.91-.032-.034.048-.204 0-.257-.46-.51-1.088-.717-1.72-.911.005 0-.04.246 0 .258m-1.711-1.404c.067-.55.126-1.099.131-1.653.002-.147-.024-.147-.025 0-.005.493-.064.982-.124 1.47-.004.034.006.284.018.183m-1.155-.351c-.467-.212-.882-.515-1.274-.846.028.024-.051.216 0 .259.392.33.807.633 1.274.846-.014-.007.045-.238 0-.259m-.192 3.319c-.3.19-.506.454-.64.785-.018.045-.01.112-.009.16 0 .01.011.1.016.09.132-.328.337-.59.633-.777.05-.031-.022-.244 0-.258m.816.485c-.011.453-.26.828-.56 1.141-.05.052.03.226 0 .259.36-.378.57-.799.584-1.331.002-.083-.019-.25-.024-.07m2.138-3.562c.376-.594 1.285-.643 1.892-.81.038-.01-.002-.257 0-.257-.615.167-1.518.217-1.898.818-.037.058.023.224.007.249m-4.178-.01a2.072 2.072 0 0 1-.411-.193c.011.007-.03.143 0 .16.133.074.266.149.411.193-.003-.001.025-.153 0-.16m.083 3.038c-.131.054-.267.109-.357.225-.022.027-.013.097-.013.129 0 .03 0 .06.004.091 0-.004.006.041.01.038.09-.116.225-.171.356-.224.02-.009.013-.114.013-.13a.745.745 0 0 0-.013-.129m.55.14c-.27.12-.466.354-.635.593-.03.043.018.178.006.195.167-.236.363-.466.63-.585.035-.016-.012-.198 0-.203m1.039.258c-.235.573-.877 1.207-.411 1.848-.017-.022.045-.196.006-.25-.322-.443.245-.943.411-1.35.028-.067-.021-.212-.007-.248m.733-.01c.018.584-.085 1.16-.187 1.733a.858.858 0 0 0 .013.224c.12-.672.219-1.342.198-2.026-.006-.18-.027-.014-.024.069m1.88-.691c.426.558.803 1.158.985 1.847-.012-.044.026-.176.007-.249-.184-.693-.564-1.295-.992-1.856.031.041-.046.197 0 .258m.22-.45c.7.535 1.48 1.036 1.973 1.792-.016-.025.044-.192.006-.25-.496-.759-1.276-1.263-1.98-1.8.026.02-.05.22 0 .259" fill="#fff"/> - <path d="M320.535 197.813c.261-.025.504-.015.752.076.222.082.406.265.608.387.204.123.41.234.575.41.218.228.22.618.284.912.004.02.02-.147.01-.19-.051-.241-.079-.486-.161-.72-.08-.228-.278-.368-.47-.49-.23-.148-.457-.297-.685-.448-.271-.178-.603-.187-.913-.157-.022.002-.01.22 0 .22" fill="#fff"/> - <path d="M322.25 199.248c.077.226.168.447.245.673-.009-.026.02-.116.004-.162-.077-.226-.168-.447-.245-.673.009.026-.02.116-.004.162m-1.962-3.571c.493-.136.998-.226 1.483-.393.041-.014-.007-.256 0-.258-.485.167-.99.257-1.483.393-.038.01.003.257 0 .258m-2.056.248c.069-.262.18-.475.33-.698.183-.275.21-.618.435-.869.049-.054-.03-.223 0-.258-.186.206-.25.471-.357.723-.128.302-.329.525-.415.853-.02.073.018.205.007.249m-1.685 4.617c-.088.425-.071.869.086 1.274-.015-.037.033-.18.007-.249a1.365 1.365 0 0 1-.08-.802.67.67 0 0 0 .004-.176c0-.01-.007-.096-.017-.047m1.023.804c-.177.24-.18.607-.086.884a.341.341 0 0 0 .015-.085c.002-.046.006-.105-.008-.15-.052-.154-.014-.28.08-.406.019-.027.011-.09.011-.122 0-.013-.017-.115-.012-.121m.76-.408c-.008.244-.139.477-.24.692-.023.047.016.156.004.18.127-.267.244-.522.254-.823.002-.06-.014-.18-.018-.05m.023-1.434v.309c0 .009-.002.129.013.129s.013-.12.013-.13v-.308c0-.009.002-.129-.013-.129s-.013.12-.013.13m-.347.18c.02.036.036.073.05.113.008.054.012.057.012.009a.726.726 0 0 0-.014.24c0 .008.008.096.017.047.039-.212.048-.464-.058-.657-.006-.013-.015.08-.016.09 0 .041-.012.12.01.159m-.495-.165c-.051.16-.086.324-.113.49a.802.802 0 0 0-.004.177c0 .008.009.096.017.046a3.27 3.27 0 0 1 .107-.464c.015-.048.01-.109.009-.159 0-.011-.013-.1-.015-.09m-.382.023c-.23.283-.538.47-.85.646-.05.027.018.247 0 .258.312-.175.62-.363.85-.645.021-.027.013-.098.013-.13 0-.013-.017-.124-.013-.129m-.659.112a1.58 1.58 0 0 1-.467.253c-.041.015.008.256 0 .258.169-.059.326-.14.467-.252.022-.018.013-.106.013-.13 0-.007-.012-.13-.013-.129m-.934-.23c-.136.061-.275.114-.411.175-.037.015.01.202 0 .207.136-.06.275-.113.411-.174.037-.016-.01-.202 0-.207m2.844-.112c.003.169.03.333.061.498.01.049.017-.038.018-.047a.802.802 0 0 0-.004-.176c-.023-.113-.048-.228-.05-.344 0-.01-.012-.1-.015-.09-.017.047-.01.11-.01.159m.44-.203c.002.198.021.388.091.574.004.01.016-.08.016-.09.002-.048.008-.114-.01-.16a.959.959 0 0 1-.072-.324c0-.009.002-.129-.013-.129s-.013.12-.013.13m.34-.045c.058.083.125.197.128.303 0 .01.011.1.015.09.017-.047.01-.11.01-.159a.832.832 0 0 0-.147-.483c-.009-.012-.015.082-.016.09 0 .037-.013.127.01.16m.415-.164c.145.031.276.09.384.196-.002-.002.013-.119.013-.129 0-.027.009-.107-.013-.129a.763.763 0 0 0-.384-.196c-.002 0-.035.25 0 .258m.22-.337c.17.142.357.248.576.28.007.002.03-.253 0-.258a1.17 1.17 0 0 1-.576-.28l-.013.129c0 .024-.01.11.013.13m.466-1.123c.149.002.294.026.44.056.002 0 .033-.252 0-.258a2.316 2.316 0 0 0-.44-.057c-.018 0-.02.259 0 .259m-.216-.538c.09-.146.224-.254.353-.36.022-.018.013-.105.013-.129l-.013-.13c-.133.11-.268.22-.36.37-.022.036-.01.12-.009.159 0 .009.008.103.016.09m-.409-.518a.972.972 0 0 1 .186-.459c.021-.028.013-.097.013-.13 0-.013-.018-.122-.013-.128a1.044 1.044 0 0 0-.204.671c0 .007.01.096.018.046m-.333-.24c.17-.237.282-.51.44-.756.022-.035.01-.12.008-.16 0-.008-.008-.102-.016-.09-.156.247-.27.52-.439.758-.023.032-.01.122-.009.159 0 .009.007.102.016.09" fill="#fff"/> - <path d="M318.545 195.302c.006.29.027.579.088.862.011.049.017-.037.018-.046a.652.652 0 0 0-.004-.177 3.657 3.657 0 0 1-.077-.708c-.004-.181-.026-.014-.024.069m-1.227.202c.044.105.103.203.155.305.033.063.062.128.088.195l.025.076c-.016-.052.01-.038-.021.017-.035.06.023.22.007.249.074-.129.063-.337.03-.477-.054-.223-.19-.406-.278-.614.016.035-.035.182-.006.249m-.244.504a4.51 4.51 0 0 0-.549-.449 1.946 1.946 0 0 0-.013.13c0 .021-.009.112.013.128.191.14.381.28.55.45-.003-.003.012-.12.012-.13 0-.028.01-.107-.013-.13m.803.27c.114-.567.092-1.134-.14-1.668.015.035-.036.183-.007.25.17.388.22.768.134 1.194-.01.057-.008.12-.005.177 0 .008.008.095.018.046m1.202-.74c.019 0 .019-.258 0-.258s-.019.259 0 .259" fill="#fff"/> - <path d="M317.72 196.302c.03-.32.105-.634.137-.954.01-.09.008-.184 0-.274-.006-.065-.02-.065-.027 0-.032.32-.107.634-.137.954-.008.09-.01.184 0 .274.006.065.02.066.027 0m3.474 1.992c.278.091.552.28.681.554.008.018.023-.12.024-.135.002-.066.016-.175-.013-.238-.133-.28-.408-.475-.692-.568.009.003-.06.367 0 .387m-.939 1.93a1 1 0 0 1 .023.487 1.167 1.167 0 0 0-.007.265c0 .012.013.143.027.07.07-.387.081-.818-.032-1.196a.694.694 0 0 0-.024.135c-.002.075-.009.165.013.238m-.783-.523c0 .32.02.639-.045.955-.017.084-.012.18-.006.265 0 .013.01.143.026.07.087-.426.066-.859.064-1.29 0-.014.003-.194-.02-.194-.02 0-.018.18-.018.194m-.398.346c-.11.425-.22.85-.307 1.282-.017.085-.012.18-.007.265 0 .013.011.143.026.07.084-.418.19-.83.297-1.243.03-.11-.027-.308-.01-.374m.536.271c.004.365.046.734.006 1.098a1.32 1.32 0 0 0 0 .273c.006.066.02.065.026 0 .052-.458.01-.912.006-1.37 0-.014.003-.194-.018-.194-.023 0-.02.18-.02.193m-2.571.195c.008-.115.006-.138-.003-.069a.567.567 0 0 1-.075.192c-.032.058-.015.176-.013.238 0 .014.013.155.023.136.135-.243.125-.563.087-.831-.01-.075-.025.058-.026.07-.005.087-.006.177.007.264m1.13-.766c.076.145.07.272.07.43 0 .014-.004.194.018.194s.019-.18.019-.193c.002-.268.03-.56-.096-.804-.01-.019-.023.121-.024.135-.002.064-.017.179.014.238m.307-.133a.367.367 0 0 1 .136.182c.008.023.012.094.01.013a.75.75 0 0 0 .009.115c0-.002.006.043.015.02.025-.07.015-.165.013-.238-.004-.189-.03-.358-.183-.48-.006-.004-.014.063-.013.057a1.258 1.258 0 0 0-.006.138c0 .045 0 .091.006.136.002.012.002.047.013.057m.38-.344c.06.124.13.242.192.365.01.02.014-.016.015-.02.006-.037.007-.077.008-.115 0-.05 0-.1-.002-.15-.002-.024 0-.065-.012-.088-.06-.124-.13-.242-.192-.365-.01-.02-.013.016-.014.02a.895.895 0 0 0-.01.115c0 .05 0 .1.003.15.002.024 0 .065.01.088m.852-.308c.15.214.305.424.472.624-.006-.007.019-.175.019-.194 0-.046.013-.155-.02-.193a9.327 9.327 0 0 1-.461-.61c-.013-.02-.023.121-.023.135-.002.054-.021.19.013.238m.44-.73c.113.2.245.39.389.568-.006-.007.019-.174.019-.193 0-.047.013-.154-.02-.194a4.119 4.119 0 0 1-.379-.554c-.01-.019-.023.122-.023.135-.002.061-.019.182.013.238m-4.278-1.951a1.715 1.715 0 0 0-.412-.253 1.108 1.108 0 0 0-.02.194c0 .024-.01.181.02.194.15.063.285.15.412.252 0 0 .018-.18.018-.194 0-.036.015-.167-.018-.193m1.34-.462a.486.486 0 0 1 .04.115.748.748 0 0 0 .012.118c0-.001.005.044.014.02.025-.07.015-.165.013-.238a1 1 0 0 0-.068-.388c-.009-.021-.015.019-.015.02a.746.746 0 0 0-.008.116c-.003.068-.015.173.013.238m1.058-1.005c.006.254-.021.522-.152.744-.032.055-.015.178-.013.238 0 .013.012.154.023.135.206-.349.189-.827.178-1.22a.56.56 0 0 0-.023-.135c-.025.07-.015.165-.013.238m.238 1.432c.225-.15.379-.382.499-.624.03-.06.015-.173.013-.238 0-.013-.014-.153-.023-.135-.118.237-.269.462-.49.61-.032.022-.018.162-.018.194 0 .011.015.196.019.193m.658-.027c.078-.08.143-.172.22-.253.012-.012.012-.042.014-.056.004-.046.006-.092.006-.138 0-.045 0-.091-.006-.136 0 .006-.008-.063-.014-.057-.077.08-.142.172-.22.252-.012.013-.012.042-.013.057a1.258 1.258 0 0 0-.006.137c0 .045 0 .091.006.137 0-.007.008.062.013.057m.99.173a7.599 7.599 0 0 1-.742-.028c-.017-.002-.04.384 0 .388.246.024.494.027.741.028.028 0 .029-.388 0-.388m-.22.893c.33.197.649.411.99.589-.027-.014.07-.35 0-.388-.341-.177-.66-.391-.99-.589.032.02-.073.343 0 .388" fill="#fff"/> - <path d="M319.958 197.958c.294.187.614.33.88.561 0 0 .018-.18.018-.194 0-.037.014-.164-.019-.193-.265-.231-.585-.375-.879-.561a2 2 0 0 0-.019.193c0 .03-.013.173.02.194m-1.89-1.41c.042-.141.041-.293.041-.44 0-.012.003-.193-.019-.193s-.02.18-.02.194c0 .053 0 .008.003 0a.325.325 0 0 1-.015.065c-.022.074-.015.163-.013.239.002.038.002.077.01.115 0-.005.006.045.014.02m-2.314-1.03c.258.315.585.543.903.79.235.184.409.495.663.64-.03-.017.073-.346 0-.387-.229-.13-.382-.407-.585-.577-.335-.281-.7-.51-.98-.854.047.058-.071.3 0 .387m.549 1.044a7.671 7.671 0 0 1-.44-.505c-.003-.005-.014.063-.013.056a1.56 1.56 0 0 0-.006.137c0 .047-.013.154.02.194.14.173.283.345.438.505-.003-.003.02-.178.02-.194 0-.042.014-.16-.02-.193m-.307 2.56c-.103.187-.19.385-.324.554-.032.04-.019.146-.019.193 0 .02.025.186.019.194.137-.174.228-.375.334-.568.032-.057.015-.176.014-.238 0-.013-.013-.154-.024-.136m.29.388c-.006.216-.08.43-.106.644-.011.09-.008.185 0 .274.007.067.019.064.027 0 .034-.275.109-.536.115-.815.002-.073.011-.168-.014-.238a.616.616 0 0 0-.023.135m1.012 1.781c.183-.612.163-1.26.15-1.893-.004-.272-.038-.02-.036.103.009.48.014.954-.124 1.417-.032.108.029.31.01.373m.594-1.486c.07.212.084.406.051.627a1.29 1.29 0 0 0-.007.266c0 .011.015.144.026.069.066-.439.08-.91-.06-1.336a.627.627 0 0 0-.023.135c-.003.074-.01.167.013.239m.582-.218c.213.262.278.61.258.943-.004.063.018.434.032.195.031-.504.045-1.116-.29-1.526.006.007-.02.175-.02.194 0 .047-.013.154.02.194" fill="#fff"/> - <path d="M318.635 199.326a12.6 12.6 0 0 1 .294 1.69c.015.15.031-.224.027-.275-.06-.604-.169-1.2-.31-1.789.015.068-.037.263-.01.374m.548-.14c.244.336.457.69.577 1.093a.684.684 0 0 0 .023-.135c.003-.075.009-.165-.013-.238-.12-.403-.333-.758-.577-1.094.024.032-.068.293-.01.373m1.136-.934c-.113-.196-.353-.22-.554-.204-.039.003-.019.39 0 .388.19-.016.436.002.544.19.01.018.023-.123.023-.136.002-.061.019-.182-.013-.238" fill="#fff"/> - <path d="M319.738 198.098a7.456 7.456 0 0 1 1.071-.056c.03 0 .03-.387 0-.387-.358 0-.715.004-1.07.055-.045.007-.012.39 0 .388m.659-2.94c-.285.34-.436.802-.532 1.232-.018.084-.011.181-.007.265 0 .015.01.143.026.07.091-.409.243-.857.513-1.18.032-.039.018-.147.018-.194 0-.018-.024-.187-.019-.193m-1.547.333c.053.327.187.629.279.945a.68.68 0 0 0 .023-.135c.002-.076.008-.165-.013-.239-.088-.303-.22-.592-.27-.906-.012-.074-.025.058-.026.07-.005.087-.007.178.007.265m-.292.564a1.549 1.549 0 0 1-.297-.526c-.008-.025-.016.024-.015.02a.749.749 0 0 0-.008.115c-.002.076-.009.165.013.239.061.204.176.376.307.54.004.005.014-.064.013-.057.005-.046.006-.091.006-.137 0-.047.014-.153-.019-.194m-.521.253c-.431-.14-.844-.312-1.209-.59.04.03-.076.33 0 .388.365.278.778.45 1.209.59-.01-.004.06-.369 0-.388" fill="#fff"/> - <path d="M318.51 196.2s-1.708.292-2.159.395c-.45.103-1.47.207-1.826.207-.356 0-.902-.285-1.282-.362-.38-.078-1.613-.207-2.064.258-.45.465-.735.62-.877.775-.143.155-.714.662-.737.887-.022.224.144.56.428.56.285 0 .883.605.882.732-.002.211.782.439 1.52.434 1.33-.007 1.985-.678 3.98-.443 1.086.128 3.084-.723 3.44-1.24.356-.517.57-1.059.214-1.653-.356-.594-1.423-.533-1.519-.55" fill="#dba05f"/> - <path d="M318.51 196.2s-1.708.292-2.159.395c-.45.103-1.47.207-1.826.207-.356 0-.902-.285-1.282-.362-.38-.078-1.613-.207-2.064.258-.45.465-.735.62-.877.775-.143.155-.714.662-.737.887-.022.224.144.56.428.56.285 0 .883.605.882.732-.002.211.782.439 1.52.434 1.33-.007 1.985-.678 3.98-.443 1.086.128 3.084-.723 3.44-1.24.356-.517.57-1.059.214-1.653-.356-.594-1.423-.533-1.519-.55z" fill="none" stroke="#000" stroke-width=".133"/> - <path d="M311.358 198.115s-.004.038-.012-.02l-.01-.046-.012-.032-.002-.035c-.008-.012.036.01.174-.127 0 .003.041-.065.116-.177a.838.838 0 0 1 .43-.28c.261-.061.502-.018.535-.016.012-.014-.59-.02-.63.05.003-.047.58-.067.612-.027.008-.014-.545-.018-.586.058 0-.035.5-.059.555-.013 0 0-.093-.01-.118-.008l.043.008h-.07l-.04-.005s.11.014.117.024c0 .002.05-.014-.147-.003 0 0-.12-.022-.316.04-.257.038-.25.386-.639.61"/> - <path d="M311.315 197.97c.022.002.19-.066.35-.363-.045-.082.604-.335.671-.253.003-.003.177 0 .279.016" fill="none"/> - <path d="M311.957 197.408c-.066-.009-.395.269-.365.284-.071.17-.256.282-.278.278m.671-.523c0-.021.446-.064.534-.03M311.902 197.567c-.012-.047.464-.112.509-.08" fill="none"/> - <path d="M312.4 197.87s.02.012-.007-.015l-.02-.024-.013-.02-.017-.014s-.015.006-.134.112c0-.001-.052.039-.114.097-.002-.005-.116.096-.244.166-.136.02-.334.109-.334.144-.012-.053.392-.159.386-.165.029.019-.358.09-.365.168-.014-.047.355-.14.37-.14.019.02-.325.078-.335.152 0 .002.047-.047.066-.048l-.024.018c.012-.012.028-.014.043-.02l.025-.011s-.069.03-.066.044c.003.008-.04-.004.089-.038.002.012.325-.066.694-.407"/> - <path d="M312.34 197.787c-.003-.005-.143.14-.29.244.002.024-.301.201-.38.18-.006-.009-.13.052-.182.116" fill="none"/> - <path d="M311.89 198.147c.023-.023.214-.153.214-.154.067-.072.235-.206.236-.206m-.443.393c.016.016-.284.057-.332.13M311.983 198.172c.02.038-.32.129-.334.14" fill="none"/> - <path d="M312.872 196.487s-.024-.542-.546-.749c-.522-.206-1.115-.232-1.328-.206-.214.025-.25.12-.516.164a2.536 2.536 0 0 0-.551.171s0-.025-.143.233-.38.387-.26.62c.118.232.04.273.185.317.146.044-.072-.08-.072-.08s-.915.296-.692.856c.222.56.445.35.512.34.066-.012.517-.245.517-.245l.74-.692s.873-.341.968-.367c.095-.026.508.01.508.01l.678-.371z" fill="#c6262c"/> - <path d="M312.872 196.487s-.024-.542-.546-.749c-.522-.206-1.115-.232-1.328-.206-.214.025-.25.12-.516.164a2.536 2.536 0 0 0-.551.171s0-.025-.143.233-.38.387-.26.62c.118.232.04.273.185.317.146.044-.072-.08-.072-.08s-.915.296-.692.856c.222.56.445.35.512.34.066-.012.517-.245.517-.245l.74-.692s.873-.341.968-.367c.095-.026.508.01.508.01l.678-.371z" fill="none" stroke="#000" stroke-width=".133"/> - <path d="M312.209 197.76c0 .135-.137.31-.307.39-.17.08-.307.035-.307-.1s.137-.31.307-.39c.17-.08.307-.035.307.1"/> - <path d="M308.585 200.237s-.716-1.231 1.27-1.835c0 0 .6.327.739.553 0 0-.346.578-1.478.73 0 0-.508.15-.53.552" fill="#d9c0b9"/> - <path d="M308.585 200.237s-.716-1.231 1.27-1.835c0 0 .6.327.739.553 0 0-.346.578-1.478.73 0 0-.508.15-.53.552z" fill="none" stroke="#000" stroke-width=".133"/> - <path d="M308.793 200.036s.8.169 1.339-.226c.442-.324.6-.176.715-.15 0 0 .024-.403-.254-.705 0 0-.56.463-.976.59-.415.125-.696.083-.824.491" fill="#d9c0b9"/> - <path d="M308.793 200.036s.8.169 1.339-.226c.442-.324.6-.176.715-.15 0 0 .024-.403-.254-.705 0 0-.56.463-.976.59-.415.125-.696.083-.824.491z" fill="none" stroke="#000" stroke-width=".133"/> - <path d="M311.015 199.632c.149 0 .3.002.446-.033.017-.004 0-.129 0-.129-.146.035-.297.033-.446.033a.312.312 0 0 0 0 .129m-.28-2.069c-.123 0-.086.148-.16.21-.01.009-.006.052-.006.064l.006.065c.074-.062.04-.21.16-.21.01 0 .009-.129 0-.129m.412.279c.062-.116.184-.164.295-.22.023-.011-.008-.124 0-.128-.112.056-.235.105-.298.223-.01.02-.005.059-.005.08 0 .005.005.05.008.045m.534.712a.26.26 0 0 0 .24-.116c.01-.014.006-.048.006-.065 0-.007-.01-.061-.006-.064a.26.26 0 0 1-.24.116c-.006 0-.012.128 0 .13m.422-.152a.753.753 0 0 0 .378-.328c.01-.019.005-.06.005-.08 0-.004-.004-.051-.008-.045a.743.743 0 0 1-.375.324c-.022.009.006.127 0 .13m-.663-.699c-.093.158-.27.238-.376.385-.02.027.01.114.003.124.106-.147.282-.226.376-.384.01-.018.005-.06.005-.08 0-.004-.004-.05-.008-.045m.286 2.061c.339.018.666-.027.992-.116.019-.005-.002-.13 0-.13a3.112 3.112 0 0 1-.992.117c-.008 0-.011.128 0 .129m1.562-.058c.442-.321.815-.595.96-1.156.009-.036-.01-.102-.003-.124-.144.556-.52.833-.956 1.15-.025.019.012.12 0 .13m.262-.769c.315-.187.54-.482.663-.83.013-.034-.01-.104-.003-.124a1.548 1.548 0 0 1-.66.825c-.024.014.01.123 0 .13m-.148-1.958c.241-.03.504.171.673.326-.015-.013.025-.106 0-.13-.169-.154-.432-.354-.673-.325-.013.002-.005.13 0 .129m6.262.976c.274-.443.125-.997-.16-1.394.009.01-.022.097-.002.124.24.336.399.759.16 1.145-.019.03.01.112.002.125m-4.779-.626c.277.2 1.039.711.83 1.13-.015.033.012.11.004.125.285-.574-.451-1.107-.834-1.385.012.01-.026.11 0 .13m2.148 2.062a1.45 1.45 0 0 0 .071-.367.462.462 0 0 0 0-.09c-.003-.023-.007-.023-.009 0a1.302 1.302 0 0 1-.065.332c-.008.023-.005.056-.004.08 0 .004.006.05.008.045" fill="#7a2e26"/> - <path d="M317.859 199.19c.165-.028.33-.112.496-.225m-8.458-.24c-.325.198-.836.2-.938.649-.002.006 0 .03.002.028.101-.447.614-.449.936-.646.006-.004-.003-.03 0-.032" fill="#5e3f17"/> - <path d="M309.677 197.29c.14.002.304.075.283.247a.4.4 0 0 0 0 .091c.002.022.006.021.009 0a.668.668 0 0 0-.023-.324c-.044-.11-.163-.142-.269-.144-.009 0-.01.13 0 .13m.67.257a.654.654 0 0 0-.063-.58c.008.012-.022.097-.003.125.071.102.108.206.064.33-.013.036.01.106.003.125m.543-.573c-.035-.226-.114-.477-.322-.595.01.005-.024.116 0 .13.203.114.282.356.316.576.004.025.008-.019.008-.023a.435.435 0 0 0-.002-.088m.478-.117c.029-.21.01-.434-.163-.575.014.01-.026.108 0 .129.096.078.175.204.156.335a.431.431 0 0 0-.002.088c0 .004.005.048.008.023m-.799-.707c.467-.236 1.418-.341 1.784.13-.016-.02.023-.099 0-.129-.366-.472-1.317-.367-1.784-.13-.024.012.008.125 0 .13" fill="#842116"/> - <path d="M309.456 198.1c.106-.157.072-.367-.031-.515.008.011-.023.097-.004.125.027.038.05.078.069.122.022.054-.008.1-.037.144-.012.016-.005.06-.004.08 0 .004.004.05.008.044m4.767 1.37a.627.627 0 0 0 .29-.419.326.326 0 0 0 .001-.088c0-.004-.004-.048-.008-.023a.61.61 0 0 1-.283.4c-.025.016.011.122 0 .13m.715-.06a.38.38 0 0 0 .092-.251c0-.024.004-.057-.004-.08a.18.18 0 0 0-.008.045c-.002.055-.045.12-.08.158-.01.012-.006.05-.006.064 0 .006.008.063.006.065m4.319-2.37a.92.92 0 0 1 .084.671.394.394 0 0 0 .006.112c.066-.296.064-.64-.088-.908.008.015-.02.095-.003.125m-.429.438c.085.21.079.43.055.652-.002.017.003.142.009.091.032-.295.053-.586-.06-.867.008.018-.017.09-.003.124m-.406.376c0 .158.002.315-.052.464-.013.035.01.105.003.125.068-.187.062-.393.062-.589 0-.073-.013-.073-.013 0" fill="#7a2e26"/> - <path d="M324.253 210.468l.09.255s.02.05.064.09l-.135-.38-.02.035z" fill="#452c25"/> - <path d="M314.452 194.949c-1.714.099-3.405-1.04-3.405-1.04-2.123-.416-2.247-2.337-2.247-2.337-.85-.323-1.58-2.505-1.58-2.505-1.316.786-2.964.01-2.964.01s0-.325-1.486 0c-1.486.323-1.231-.278-1.231-.278s.594-.601-2.039 0c-2.632.6.213-.786.213-.786-.764.23-3.27.416-3.27.416-.92.041-1.852.495-2.868.784-.633.18-1.715.39-2.262.624-1.46.624-4.385 1.965-6.8 2.913-3.177 1.247-5.694 2.195-5.528 2.155.198-.048 3.449-2.107 7.52-3.953 3.78-1.714 8.12-3.3 10.308-3.922 2.84-.941 5.165-.492 6.483-.013.637.231 4.15-.108 5.721.077 1.572.184 1.735 2.768 1.735 2.768.298.185.404 2.612.404 2.612s-.87.024.148.162c1.02.139 2.888 1.619 2.888 1.619.637 0 .709-.023.709-.023s.37-.467.88-.662.977-.39 1.55-.433c.573-.044 1.382-.05 1.955.016.573.065 1.25.07 2.057.222.807.152.892.195 1.146.282.255.087.483.03.483.03 1.05-.438 2.995-1.213 3.443-1.124 0 0 .734-.185 1.13-.492a105.06 105.06 0 0 0 1.297-1.045s-.623-4.388 3.835-3.958c4.459.43 10.37 1.003 11.555 1.187 1.185.184 5.43 1.397 6.446 1.889 1.016.491 3.935 1.799 5.234 2.374.527.233 2.536 1.123 4.022 1.71 2.231.88 3.898 2.348 3.898 2.348-1.398-.592-2.528-1.268-3.635-1.749-.896-.389-1.833-.57-2.561-.893-1.546-.687-2.736-1.312-3.673-1.748-3.453-1.608-3.421-1.673-4.82-1.782-.964-.076.693 1.176.693 1.176s-3.16-1.23-4.176-1.66c-1.016-.43-1.863-.614-2.822-.553a5.797 5.797 0 0 1-2.257-.307c-.565-.184-3.782-.307-4.346-.369a7.32 7.32 0 0 1-1.016-.184l.226.369-1.58-.246-.452.676s-1.523.307-1.637-.185c-.112-.49-.903 2.213-1.298 3.012-.395.798-2.198.534-2.649 1.025-.452.492-1.415.82-1.64.944-.226.123-.91.065-1.306.065-.587 0-.087.009-1.051.192 0 0-.833-.008-1.151-.138-.319-.13-1.02-.332-1.372-.433-.482-.137-3.163-.198-3.545-.177-.382.022-1.028.22-1.453.393-.424.174-1.168.63-1.168.738" fill="#dcddde"/> - <path d="M314.452 194.949c-1.714.099-3.405-1.04-3.405-1.04-2.123-.416-2.247-2.337-2.247-2.337-.85-.323-1.58-2.505-1.58-2.505-1.316.786-2.964.01-2.964.01s0-.325-1.486 0c-1.486.323-1.231-.278-1.231-.278s.594-.601-2.039 0c-2.632.6.213-.786.213-.786-.764.23-3.27.416-3.27.416-.92.041-1.852.495-2.868.784-.633.18-1.715.39-2.262.624-1.46.624-4.385 1.965-6.8 2.913-3.177 1.247-5.694 2.195-5.528 2.155.198-.048 3.449-2.107 7.52-3.953 3.78-1.714 8.12-3.3 10.308-3.922 2.84-.941 5.165-.492 6.483-.013.637.231 4.15-.108 5.721.077 1.572.184 1.735 2.768 1.735 2.768.298.185.404 2.612.404 2.612s-.87.023.148.162c1.02.139 2.888 1.619 2.888 1.619.637 0 .709-.023.709-.023s.37-.467.88-.662.977-.39 1.55-.433c.573-.044 1.382-.05 1.955.016.573.065 1.25.07 2.057.222.807.152.892.195 1.146.282.255.087.483.03.483.03 1.05-.438 2.995-1.213 3.443-1.124 0 0 .734-.184 1.13-.492.394-.307 1.297-1.044 1.297-1.044s-.623-4.389 3.835-3.959c4.459.43 10.37 1.003 11.555 1.187 1.185.184 5.43 1.397 6.446 1.889 1.016.491 3.935 1.8 5.234 2.374.527.233 2.536 1.123 4.022 1.71 2.231.88 3.898 2.348 3.898 2.348-1.398-.592-2.528-1.268-3.635-1.749-.896-.388-1.833-.57-2.561-.893-1.546-.687-2.736-1.312-3.673-1.748-3.453-1.608-3.421-1.673-4.82-1.782-.964-.076.693 1.176.693 1.176s-3.16-1.23-4.176-1.66c-1.016-.43-1.863-.614-2.822-.553a5.797 5.797 0 0 1-2.257-.307c-.565-.184-3.782-.307-4.346-.369a7.32 7.32 0 0 1-1.016-.184l.226.369-1.58-.246-.452.676s-1.523.307-1.637-.184c-.112-.492-.903 2.212-1.298 3.01-.395.8-2.198.535-2.649 1.026-.452.492-1.415.821-1.64.944-.226.123-.91.065-1.306.065-.587 0-.087.009-1.051.192 0 0-.833-.008-1.151-.138-.319-.13-1.02-.332-1.372-.432-.482-.138-3.163-.2-3.545-.178-.382.022-1.028.22-1.453.393-.424.174-1.168.63-1.168.738" fill="#e7e7e7" stroke="#000" stroke-width=".065"/> - <path d="M314.628 194.436s-.18.138-.225.483c-.045.345-.023.207-.023.207" fill="#452c25"/> - <path d="M323.291 193.93c.227.17.462.342.663.544.007.007.072.067.05.019a.543.543 0 0 0-.107-.141 6.537 6.537 0 0 0-.733-.606c-.042-.032.004.044.01.053a.553.553 0 0 0 .117.131" fill="#574f4c"/> -</svg> diff --git a/img/flags/4x3/bq.svg b/img/flags/4x3/bq.svg deleted file mode 100644 index 0a7b5f8..0000000 --- a/img/flags/4x3/bq.svg +++ /dev/null @@ -1,5 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" height="480" width="640" viewBox="0 0 640 480"> - <path d="M0 0h640v480H0z" fill="#21468b"/> - <path d="M0 0h640v320H0z" fill="#fff"/> - <path d="M0 0h640v160H0z" fill="#ae1c28"/> -</svg> diff --git a/img/flags/4x3/br.svg b/img/flags/4x3/br.svg deleted file mode 100644 index c0445ba..0000000 --- a/img/flags/4x3/br.svg +++ /dev/null @@ -1,45 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" height="480" width="640" viewBox="0 0 640 480"> - <g stroke-width="1pt"> - <path fill-rule="evenodd" fill="#229e45" d="M0 0h640v480H0z"/> - <path d="M321.406 435.935l301.483-195.67-303.308-196.2L17.11 240.734l304.296 195.2z" fill-rule="evenodd" fill="#f8e509"/> - <path d="M452.77 240.005c0 70.328-57.103 127.34-127.544 127.34-70.442 0-127.544-57.012-127.544-127.34s57.104-127.34 127.544-127.34c70.442 0 127.545 57.012 127.545 127.34z" fill-rule="evenodd" fill="#2b49a3"/> - <path fill="#ffffef" fill-rule="evenodd" d="M283.3 316.274L279.357 314l-4.093 2.025.917-4.55-3.162-3.332 4.52-.53 2.124-4.08 1.894 4.22 4.46.81-3.345 3.13m86.098 26.224l-3.94-2.274-4.092 2.025.916-4.55-3.16-3.332 4.52-.53 2.122-4.08 1.894 4.22 4.46.81-3.345 3.13m-36.215-29.993l-3.404-1.964-3.536 1.748.792-3.93-2.73-2.88 3.904-.457 1.834-3.523 1.636 3.645 3.853.7-2.89 2.705m86.865-8.477l-3.342-1.928-3.472 1.718.777-3.858-2.68-2.827 3.833-.45 1.8-3.46 1.607 3.58 3.783.686-2.837 2.657M330.37 265.03l-3.94-2.273-4.093 2.025.916-4.55-3.162-3.332 4.522-.53 2.123-4.08 1.894 4.22 4.46.81-3.346 3.13M225.13 225.52l-3.94-2.274-4.094 2.025.916-4.548-3.16-3.333 4.52-.53 2.122-4.08 1.894 4.22 4.46.81-3.345 3.13m13.283 57.14l-3.94-2.275-4.094 2.025.916-4.548-3.16-3.334 4.52-.53 2.123-4.08 1.894 4.22 4.46.81-3.345 3.132m131.954-67.33l-3.48-2.007-3.616 1.788.81-4.017-2.794-2.944 3.994-.47 1.875-3.603 1.673 3.728 3.94.715-2.955 2.766m-6.665 38.24l-2.74-1.582-2.85 1.408.64-3.164-2.2-2.32 3.145-.368 1.477-2.838 1.318 2.936 3.103.563-2.327 2.18m-142.199 50.422l-2.63-1.518-2.734 1.352.61-3.037-2.11-2.225 3.02-.354 1.416-2.723 1.264 2.818 2.978.54-2.233 2.09m200.14 15.164l-2.144-1.135-2.227 1.01.5-2.27-1.72-1.666 2.46-.265 1.154-2.038 1.03 2.108 2.426.404-1.82 1.563"/> - <path fill="#ffffef" fill-rule="evenodd" d="M219.263 287.603l-2.63-1.518-2.734 1.352.61-3.037-2.11-2.225 3.02-.354 1.416-2.723 1.264 2.818 2.978.54-2.233 2.09"/> - <path fill="#ffffef" fill-rule="evenodd" d="M219.263 287.603l-2.63-1.518-2.734 1.352.61-3.037-2.11-2.225 3.02-.354 1.416-2.723 1.264 2.818 2.978.54-2.233 2.09m42.299 3.048l-2.63-1.52-2.733 1.353.61-3.037-2.11-2.225 3.02-.354 1.416-2.722 1.265 2.817 2.978.54-2.233 2.09m-4.786 16.989l-2.63-1.518-2.734 1.352.612-3.038-2.11-2.225 3.017-.354 1.417-2.724 1.265 2.817 2.977.54-2.233 2.09m87.381-22.301l-2.63-1.52-2.733 1.353.61-3.036-2.11-2.225 3.018-.353 1.417-2.724 1.265 2.817 2.977.54-2.233 2.09m-25.099 3.048l-2.63-1.518-2.734 1.352.612-3.037-2.11-2.225 3.018-.353 1.417-2.724 1.264 2.817 2.98.54-2.234 2.09m-68.8-5.838l-1.648-.952-1.714.847.384-1.902-1.323-1.394 1.89-.222.89-1.706.792 1.765 1.864.34-1.4 1.31m167.838 45.384l-2.63-1.518-2.733 1.35.612-3.035-2.11-2.226 3.017-.354 1.417-2.724 1.264 2.817 2.978.54-2.233 2.09m-20.832 5.844l-2.178-1.26-2.264 1.122.507-2.522-1.748-1.848 2.5-.294 1.174-2.262 1.048 2.34 2.466.45-1.85 1.735m10.371 2.297l-2.03-1.173-2.108 1.044.472-2.344-1.63-1.718 2.33-.274 1.093-2.103.976 2.177 2.296.417-1.723 1.615m29.11-22.761l-1.955-1.13-2.03 1.006.454-2.257-1.567-1.655 2.243-.262 1.053-2.024.94 2.092 2.21.402-1.658 1.553M394.24 327.69l-2.554-1.395-2.652 1.24.594-2.786-2.05-2.043 2.93-.325 1.376-2.5 1.227 2.586 2.89.496-2.167 1.92m.549 14.247l-2.33-1.395-2.418 1.24.542-2.786-1.87-2.044 2.673-.324 1.255-2.5 1.12 2.586 2.635.496-1.977 1.918m-18.929-23.055l-1.955-1.13-2.032 1.006.455-2.257-1.568-1.653 2.242-.263 1.054-2.025.94 2.093 2.213.402-1.66 1.554m-17.781 2.273l-1.954-1.13-2.03 1.006.454-2.257-1.57-1.653 2.244-.263 1.053-2.025.94 2.093 2.21.402-1.658 1.554m-30.408-24.59l-1.955-1.128-2.03 1.004.454-2.257-1.568-1.654 2.243-.264 1.053-2.024.94 2.094 2.212.402-1.66 1.553m3.734 57.024l-1.656-.956-1.72.85.386-1.91-1.33-1.4 1.9-.223.893-1.715.795 1.772 1.874.34-1.407 1.316m-46.131-86.63l-3.942-2.274-4.093 2.025.917-4.548-3.162-3.334 4.52-.53 2.124-4.08 1.894 4.22 4.46.81-3.345 3.132"/> - <path d="M444.368 285.817c1.944-5.083 4.45-12.75 5.783-19.786-67.742-59.508-143.26-89.993-238.68-83.72-3.422 6.558-6.16 13.423-8.47 20.853 113.063-10.786 195.936 39.27 241.37 82.654z" fill-rule="evenodd" fill="#fff"/> - <path d="M413.914 252.36l2.42 1.323c-.38.858-.48 1.61-.31 2.25.18.645.625 1.208 1.335 1.688.75.515 1.424.74 2.016.68.6-.06 1.045-.306 1.335-.734a1.27 1.27 0 0 0 .225-.863c-.027-.3-.192-.66-.495-1.075-.21-.28-.72-.873-1.53-1.777-1.04-1.16-1.66-2.138-1.86-2.936-.28-1.122-.11-2.14.51-3.06.4-.59.936-1.03 1.612-1.318.686-.29 1.433-.355 2.24-.198.81.157 1.664.54 2.55 1.143 1.453.987 2.33 2.048 2.63 3.184.305 1.138.117 2.253-.565 3.345l-2.404-1.484c.3-.665.375-1.24.218-1.723-.147-.485-.55-.95-1.21-1.397-.676-.46-1.302-.682-1.874-.663a1.01 1.01 0 0 0-.856.468c-.186.277-.228.59-.13.943.13.45.668 1.193 1.625 2.234.953 1.04 1.604 1.89 1.95 2.547.355.657.516 1.34.482 2.05-.023.706-.284 1.427-.778 2.16a4.11 4.11 0 0 1-1.812 1.493c-.76.33-1.57.412-2.437.24-.86-.177-1.794-.607-2.798-1.29-1.462-.992-2.36-2.093-2.687-3.3-.322-1.213-.125-2.523.6-3.925zm-11.478-7.533l2.472 1.22c-.345.872-.417 1.628-.22 2.26.208.637.672 1.183 1.4 1.635.775.482 1.455.68 2.043.596.6-.086 1.037-.346 1.306-.786a1.25 1.25 0 0 0 .19-.87c-.038-.302-.218-.655-.54-1.058-.22-.272-.75-.84-1.597-1.713-1.087-1.117-1.746-2.07-1.978-2.86-.323-1.11-.194-2.133.385-3.077a3.619 3.619 0 0 1 1.56-1.38c.674-.316 1.42-.413 2.23-.29.818.127 1.685.473 2.595 1.04 1.492.926 2.408 1.952 2.753 3.074.35 1.126.21 2.247-.427 3.365l-2.464-1.385c.275-.676.327-1.252.15-1.728-.168-.482-.59-.93-1.264-1.35-.697-.433-1.33-.628-1.9-.586-.37.025-.647.195-.838.504-.172.282-.204.594-.09.944.145.443.714 1.165 1.71 2.168.994 1 1.68 1.822 2.052 2.465.38.64.568 1.318.563 2.027.007.708-.227 1.437-.69 2.193a4.158 4.158 0 0 1-1.75 1.565c-.746.36-1.556.474-2.427.336-.865-.14-1.815-.536-2.848-1.175-1.498-.933-2.438-1.996-2.815-3.19-.374-1.2-.23-2.514.438-3.943zm-14.206-3.807l7.276-11.966 8.837 5.416-1.23 2.026-6.43-3.942-1.615 2.652 5.983 3.668-1.225 2.015-5.984-3.667-1.977 3.256 6.657 4.08-1.228 2.017-9.063-5.557zm-20.692-16.993l1.08-2.1 5.4 2.796-2.546 4.962c-.79.238-1.78.296-2.982.17a9.355 9.355 0 0 1-3.317-.986c-1.3-.673-2.29-1.528-2.976-2.572a5.911 5.911 0 0 1-.974-3.47 8.61 8.61 0 0 1 .977-3.703c.664-1.298 1.53-2.31 2.59-3.04 1.057-.727 2.25-1.09 3.57-1.09 1.008-.002 2.104.306 3.29.916 1.542.8 2.577 1.747 3.104 2.846.54 1.096.638 2.28.298 3.555l-2.728-.82c.14-.702.057-1.356-.25-1.957-.296-.606-.806-1.095-1.527-1.47-1.097-.567-2.146-.67-3.155-.305-1 .363-1.85 1.23-2.554 2.6-.76 1.48-1.005 2.76-.73 3.842.277 1.073.944 1.886 2.008 2.437.524.27 1.1.44 1.73.507.64.066 1.22.05 1.753-.05l.81-1.582-2.872-1.485zm-90.242-22.379l2.034-13.867 4.172.62 1.123 9.826 3.86-9.093 4.188.618-2.033 13.87-2.59-.382 1.6-10.918-4.343 10.512-2.685-.398-1.134-11.32-1.6 10.915-2.592-.382zm-14.108-1.638l1.305-13.96 10.307.974-.217 2.36-7.503-.706-.29 3.095 6.978.657-.22 2.352-6.98-.658-.353 3.8 7.764.73-.22 2.354-10.572-.998z" fill="#309e3a"/> - <g stroke-opacity=".502"> - <path d="M216.5 191.28c.04-1.43.284-2.62.736-3.58a6.649 6.649 0 0 1 1.346-1.884c.566-.552 1.18-.956 1.844-1.21.88-.347 1.888-.505 3.023-.475 2.056.06 3.682.744 4.877 2.057 1.205 1.315 1.775 3.114 1.714 5.395-.06 2.26-.72 4.017-1.982 5.264-1.26 1.24-2.914 1.834-4.963 1.777-2.077-.056-3.708-.736-4.9-2.037-1.19-1.308-1.755-3.078-1.694-5.307z" fill="#309e3a"/> - <path d="M219.414 191.252c-.043 1.586.29 2.8.997 3.643.708.837 1.625 1.27 2.748 1.3 1.122.03 2.055-.35 2.794-1.138.745-.797 1.14-2.007 1.184-3.633.043-1.605-.277-2.813-.96-3.622-.676-.81-1.595-1.23-2.757-1.262-1.162-.03-2.11.345-2.843 1.128-.733.777-1.12 1.972-1.163 3.584z" fill="#f7ffff"/> - </g> - <g stroke-opacity=".502"> - <path d="M233.052 198.51l.163-14.017 5.933.07c1.494.018 2.574.157 3.244.42.677.257 1.214.71 1.613 1.36s.593 1.385.584 2.215c-.013 1.052-.332 1.918-.956 2.598-.623.675-1.55 1.095-2.777 1.26.605.363 1.104.76 1.49 1.193.397.43.923 1.195 1.585 2.293l1.673 2.754-3.372-.04-2.002-3.074c-.71-1.098-1.198-1.788-1.46-2.072-.265-.29-.545-.487-.842-.593-.297-.11-.77-.17-1.418-.177l-.57-.008-.068 5.852-2.82-.033z" fill="#309e3a"/> - <path d="M235.976 190.455l2.086.024c1.353.016 2.198-.03 2.536-.142.337-.112.603-.305.796-.584s.293-.627.3-1.048c.004-.472-.118-.853-.37-1.142-.243-.296-.594-.486-1.05-.567-.23-.034-.915-.06-2.057-.072l-2.2-.026-.04 3.555z" fill="#fff"/> - </g> - <g stroke-opacity=".502"> - <path d="M249.003 185.188l5.147.26c1.16.06 2.04.195 2.64.405a4.68 4.68 0 0 1 2.036 1.396c.553.646.958 1.426 1.218 2.34.26.907.356 2.015.29 3.326-.058 1.153-.252 2.138-.58 2.96-.4 1-.938 1.797-1.618 2.396-.51.453-1.19.79-2.034 1.016-.632.166-1.468.222-2.51.17l-5.295-.27.706-14z" fill="#309e3a"/> - <path d="M251.706 187.685l-.468 9.274 2.103.105c.786.042 1.357.025 1.71-.046.46-.093.85-.268 1.16-.526.32-.26.59-.695.81-1.31.223-.62.36-1.47.416-2.553s0-1.918-.16-2.507c-.16-.59-.404-1.053-.73-1.397-.327-.342-.75-.583-1.27-.724-.39-.11-1.157-.193-2.306-.25l-1.264-.067z" fill="#fff"/> - </g> - <g stroke-opacity=".502"> - <path d="M317.63 210.22l3.26-13.63 4.4 1.06c1.666.402 2.737.732 3.21.99.73.392 1.274.996 1.634 1.81.36.81.41 1.755.152 2.84-.2.836-.518 1.504-.958 2-.438.5-.932.854-1.48 1.07-.54.212-1.064.31-1.57.3-.685-.028-1.65-.19-2.89-.49l-1.786-.432-1.23 5.142-2.743-.66z" fill="#309e3a"/> - <path d="M323.086 199.552l-.926 3.868 1.5.362c1.082.26 1.82.364 2.218.308a1.85 1.85 0 0 0 1.581-1.448c.12-.496.073-.94-.14-1.33a1.94 1.94 0 0 0-.957-.87c-.312-.143-.96-.332-1.95-.57l-1.324-.32z" fill="#fff"/> - </g> - <g stroke-opacity=".502"> - <path d="M330.606 214.106l4.64-13.22 5.598 1.98c1.408.498 2.387.98 2.937 1.445.56.463.923 1.064 1.093 1.807s.12 1.505-.156 2.286c-.348.992-.928 1.71-1.736 2.153-.806.438-1.817.537-3.032.298.457.54.802 1.076 1.03 1.61.238.536.49 1.43.765 2.683l.704 3.15-3.18-1.126-.913-3.556c-.322-1.27-.562-2.08-.72-2.435-.158-.36-.36-.638-.607-.834-.246-.202-.673-.41-1.286-.627l-.536-.192-1.938 5.52-2.66-.942z" fill="#309e3a"/> - <path d="M335.938 207.426l1.967.695c1.276.452 2.09.68 2.445.683.355.005.67-.093.943-.295.272-.2.478-.5.616-.896.155-.445.162-.845.017-1.2-.135-.36-.408-.65-.813-.876-.206-.106-.847-.35-1.924-.73l-2.075-.736-1.177 3.356z" fill="#fff"/> - </g> - <g stroke-opacity=".502"> - <path d="M347.01 213.6c.424-1.363.982-2.444 1.673-3.24a6.58 6.58 0 0 1 1.808-1.45c.696-.377 1.397-.598 2.102-.665.94-.093 1.953.03 3.038.37 1.965.614 3.344 1.717 4.14 3.308.803 1.593.867 3.48.19 5.658-.67 2.162-1.78 3.67-3.33 4.528-1.548.852-3.302.97-5.26.357-1.982-.62-3.37-1.718-4.164-3.294-.793-1.583-.858-3.44-.196-5.57z" fill="#309e3a"/> - <path d="M349.826 214.385c-.47 1.514-.48 2.773-.026 3.778.455.996 1.22 1.663 2.293 2 1.073.334 2.07.223 2.996-.336.932-.562 1.64-1.62 2.122-3.172.476-1.535.495-2.783.056-3.75-.432-.962-1.204-1.618-2.313-1.964-1.11-.347-2.123-.243-3.04.312-.915.548-1.61 1.592-2.09 3.133z" fill="#fff"/> - </g> - <g stroke-opacity=".502"> - <path d="M374.305 233.12l6.415-12.45 5.27 2.736c1.326.69 2.23 1.3 2.71 1.84.49.532.768 1.18.835 1.94s-.092 1.505-.47 2.242c-.48.934-1.153 1.564-2.017 1.892-.86.322-1.872.28-3.043-.128.378.598.645 1.18.8 1.74.158.564.288 1.484.387 2.763l.262 3.215-2.993-1.555-.415-3.648c-.145-1.304-.27-2.14-.378-2.512-.105-.377-.27-.682-.487-.91-.214-.233-.61-.5-1.186-.798l-.507-.264-2.677 5.197-2.505-1.3z" fill="#309e3a"/> - <path d="M380.503 227.226l1.853.962c1.2.625 1.977.962 2.33 1.016.35.054.675 0 .973-.162.296-.16.54-.428.733-.803.216-.42.276-.814.184-1.186-.087-.374-.315-.702-.685-.98-.19-.134-.79-.465-1.808-.993l-1.952-1.013-1.63 3.16z" fill="#fff"/> - </g> - <g stroke-opacity=".502"> - <path d="M426.107 258.704c.797-1.183 1.642-2.056 2.536-2.62a6.609 6.609 0 0 1 2.146-.862 5.45 5.45 0 0 1 2.2-.028c.93.184 1.864.596 2.805 1.235 1.704 1.156 2.708 2.612 3.014 4.366.31 1.758-.173 3.58-1.448 5.472-1.263 1.873-2.758 2.998-4.488 3.37-1.728.365-3.44-.028-5.14-1.182-1.718-1.168-2.732-2.622-3.04-4.362-.303-1.746.168-3.543 1.413-5.39z" fill="#309e3a"/> - <path d="M428.578 260.254c-.886 1.316-1.256 2.518-1.112 3.61.15 1.087.69 1.945 1.62 2.578.932.632 1.92.815 2.967.55 1.055-.27 2.037-1.077 2.944-2.425.896-1.33 1.273-2.52 1.13-3.572-.138-1.047-.688-1.898-1.65-2.552s-1.962-.85-3-.583c-1.033.26-1.998 1.06-2.9 2.394z" fill="#fff"/> - </g> - <path d="M301.824 204.523l2.248-9.84 7.268 1.675-.378 1.662-5.287-1.217-.504 2.18 4.926 1.136-.382 1.655-4.918-1.132-.614 2.677 5.475 1.26-.378 1.66-7.456-1.717z" fill="#309e3a"/> - </g> -</svg> diff --git a/img/flags/4x3/bs.svg b/img/flags/4x3/bs.svg deleted file mode 100644 index 321eb19..0000000 --- a/img/flags/4x3/bs.svg +++ /dev/null @@ -1,13 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" height="480" width="640" viewBox="0 0 640 480"> - <defs> - <clipPath id="a"> - <path fill-opacity=".67" d="M-12 0h640v480H-12z"/> - </clipPath> - </defs> - <g fill-rule="evenodd" clip-path="url(#a)" transform="translate(12)"> - <path fill="#fff" d="M968.53 480H-10.45V1.77h978.98z"/> - <path fill="#ffe900" d="M968.53 344.48H-10.45V143.3h978.98z"/> - <path fill="#08ced6" d="M968.53 480H-10.45V320.59h978.98zm0-318.69H-10.45V1.9h978.98z"/> - <path d="M-10.913 0c2.173 0 391.71 236.82 391.71 236.82l-392.8 242.38L-10.916 0z"/> - </g> -</svg> diff --git a/img/flags/4x3/bt.svg b/img/flags/4x3/bt.svg deleted file mode 100644 index 05df9c8..0000000 --- a/img/flags/4x3/bt.svg +++ /dev/null @@ -1,91 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" height="480" width="640" viewBox="0 0 640 480"> - <path fill="#ffd520" d="M.1 0h640.1v480H.1z"/> - <path d="M.1 480h640.1V0z" fill="#ff4e12"/> - <g stroke="#000" stroke-width=".521"> - <g fill="#fff"> - <path d="M345.392 150.072c-3.99-1.417-6.567.644-6.437 5.795.127 5.152 2.834 8.114 6.824 6.182l-.387-11.977z" stroke-width=".41680000000000006"/> - <path d="M348.896 140.424c-3.323-2.624-6.423-1.499-7.957 3.42-1.533 4.92.077 8.594 4.477 8.047l3.48-11.466z" stroke-width=".41680000000000006"/> - <path d="M354.432 131.088c-2.863-3.124-6.103-2.51-8.406 2.1-2.3 4.61-1.3 8.494 3.133 8.66l5.273-10.76zM350.8 176.472c-4.893 1.803-5.41 8.5-2.317 12.62 3.09 4.122 8.757 4.894 11.847 0l-9.528-12.623z" stroke-width=".41680000000000006"/> - <path d="M345.136 162.304c-4.637-1.545-8.814 4.682-9.53 10.302-.9 7.083-10.947 9.401-5.407 20.09 1.157-6.825 5.667-10.56 9.27-10.817 3.607-.257 9.017-1.03 11.334-5.409l-5.667-14.166zM359.816 189.864c-5.41 1.288-6.183 8.5-2.32 13.651 3.307 4.41 13.65 3.349 13.394-1.03l-11.074-12.62zM375.144 233.264c.257-4.636-7.21-6.439-10.817-5.538-3.606.902-10.497-.128-12.106-3.992-1.287 3.091.58 6.44 5.796 8.114 3.947 1.267 3.864 4.12 2.704 5.409 2.963.515 11.72.515 14.423-3.993z" stroke-width=".41680000000000006"/> - <path d="M370.896 203.648c-5.28-2.318-8.41 1.213-10.43 4.636-2.964 5.023-12.107-1.416-15.197 5.28 4.186-1.803 8.446 2.042 10.43 3.349 5.667 3.734 16.614 2.575 18.16-6.182l-2.963-7.083z" stroke-width=".41680000000000006"/> - <path d="M373.984 209.824c-5.28 3.992-7.34 8.757-7.21 11.977.13 3.22 4.637 10.302 9.53 10.689 2.834-5.796 4.25-18.03-2.32-22.666zM352.096 234.68c0-1.932 2.833-2.704 4.763-2.06 1.934.643 4.894 2.575 3.864 4.636l-8.627-2.576zM322.984 224.12c-.513-2.318 3.22-6.31 8.243-4.121 5.02 2.19 5.667 6.44 3.604 8.114l-11.847-3.993z" stroke-width=".41680000000000006"/> - <path d="M335.216 228.368c-.387-1.288 3.23-3.86 9.403-2.318 6.18 1.545 7.697 5.525 7.47 8.628l-16.873-6.31zM322.344 224.12c3.22-2.447 2-7.084-.903-8.5-5.28-2.576-3.347-9.272-6.697-10.56-3.347-1.288-6.567-3.606-6.697-5.924-1.673 3.22-.643 6.182 1.677 8.242 2.317 2.061-1.803 10.432 1.157 12.621l11.463 4.121zM253.312 222.32c-2.704-4.25-9.144-3.477-11.848-.515-2.704 2.962-2.318 7.34.258 9.272l11.59-8.758zM268.768 216.008c-1.03-5.666-7.856-6.31-11.59-4.894-3.735 1.417-6.31 7.083-3.864 11.204l15.455-6.31z" stroke-width=".41680000000000006"/> - <path d="M279.072 215.232c2.447-4.765-2.318-11.848-7.727-12.878-4.516-.86-9.852-.837-11.59-5.28-1.095 3.863 1.803 6.31 5.151 8.5 3.348 2.189-.644 7.856 4.765 11.075l9.401-1.417z" stroke-width=".41680000000000006"/> - <path d="M278.56 215.4c-1.127-3.413 1.159-7.955 5.786-7.636 4.627.318 7.264 3.68 5.224 7.884l-11.01-.248z" stroke-width=".41680000000000006"/> - <path d="M288.856 215.656c-.637-3.538 2.264-7.712 6.8-6.748 4.537.964 6.674 4.664 4.067 8.54l-10.867-1.792z" stroke-width=".41680000000000006"/> - <path d="M299.088 217.28c-.46-3.566 2.647-7.59 7.13-6.401 4.483 1.19 6.433 4.992 3.633 8.732l-10.763-2.331zM221.376 276.28c-8.629 0-10.736 2.054-11.977 10.946-1.545 11.076 13.523 12.364 11.977-10.946z" stroke-width=".41680000000000006"/> - <path d="M225.24 264.688c-13.265-5.023-20.476 15.969-33.612 12.234 4.7 7.47 16.094.014 20.347.773 7.212 1.288 22.795-1.417 13.265-13.007zM216.608 293.408c-6.568-2.962-13.651 7.083-12.363 11.462 1.635 5.561 16.613 1.03 12.363-11.462zM185.96 336.68c3.606 1.027 7.984 3.09 7.212 10.043-.773 6.954-13.908 21.12-25.756 21.894-11.848.773-16.099 15.066-26.272 11.073 9.53-1.8 9.53-12.62 16.999-15.966-5.41-1.933-8.243 10.303-15.196 10.303-6.954 0-10.303 11.074-18.803 10.3-8.5-.77-9.394 13.483-26.4 13.654-13.007.126-29.104 15.323-34.9 8.757 12.621-1.804 17.714-8.797 25.242-16.487 12.106-12.36 25.757-6.823 30.393-17.77a31.651 31.651 0 0 1-18.287 5.41c-7.922-.164-16.613 12.62-25.5 6.953 5.152-.643 8.5-2.833 13.91-8.5 5.538-5.803 13.666-2.053 20.09-7.983 10.044-9.274 18.673-1.547 28.332-13.137-2.705-1.287-8.5-.387-13.91 2.447-5.408 2.833-12.362-1.934-18.544 1.416.773-7.596 15.196-3.25 24.211-8.5 10.175-5.923 18.61-4.186 26.659-3.476-11.204-.064-15.583-10.69-31.036-7.6-6.74 1.35-12.106-9.27-18.803-3.864.193-3.99 7.212-7.21 14.424-3.346 7.212 3.863 10.119-3.381 24.47 5.666 5.923 3.734 16.097-2.32 22.536 1.674-.837-2.447-4.508-3.994-8.822-3.67 2.705-5.537 20.155-4.83 27.753.71z" stroke-width=".41680000000000006"/> - <path d="M197.424 328.304c-5.666-4.379-13.522.903-18.931-1.159 0 3.605 1.803 9.015 7.727 11.075 1.803-1.286 9.916-8.37 11.204-9.916z" stroke-width=".41680000000000006"/> - <path d="M206.312 315.816c-8.886-4.507-10.431 6.697-17.386 4.379.258 3.22 2.834 7.212 8.5 8.113l8.887-12.492z" stroke-width=".41680000000000006"/> - <path d="M211.592 305.64c-13.136-5.151-14.81 7.47-22.537 5.022 1.803 4.379 12.879 6.697 18.545 5.152l3.992-10.174zM229.616 250.392c-3.477-4.894-10.818-.901-11.977 4.894-1.159 5.795 1.674 13.908 6.568 12.105l5.409-16.999z" stroke-width=".41680000000000006"/> - <path d="M238.504 234.936c-6.053-1.416-13.007-.773-12.234 5.151-2.319 1.03-2.962 8.63 3.348 10.303l8.886-15.455z" stroke-width=".41680000000000006"/> - <path d="M242.496 230.944c-5.924-6.954-12.53-6.793-16.226-3.864-6.826 5.41-13.459 2.319-13.652 7.727 4.122-3.155 7.727.644 11.076-.515 3.348-1.159 5.795 5.28 15.068 2.576l3.734-5.924zM228.2 334.88c.902 1.673 6.439 2.447 9.144-.387 3.584-3.756-.386-14.167-6.053-14.94-5.666-.772-6.181 11.72-3.09 15.327z" stroke-width=".41680000000000006"/> - <path d="M221.76 335.136c8.113 2.96 11.59-3.737 7.212-7.985-1.16 1.417-5.41 6.568-7.212 7.985z" stroke-width=".41680000000000006"/> - <path d="M191.368 346.208c-1.546 4.637-9.53 5.41-18.545 19.834-9.015 14.423-17.643 8.37-19.833 18.286 10.818-8.757 19.314-2.94 25.756-11.59 9.788-13.137 17.848-11.25 21.636-20.09 5.409-12.62 29.105-12.364 30.393-32.196-7.984-1.546-33.226 19.832-39.407 25.755zM394.592 151.488c10.303 3.348 10.56 16.742 22.406 21.12 11.85 4.379 13.01 14.938 22.667 12.363-9.014-2.447-8.37-12.878-17.77-15.454-11.027-3.02-15.197-19.833-23.957-22.408M441.856 221.416c1.803 4.121 1.547 11.462-4.893 13.394 3.476 2.189 8.626.128 11.46-4.636-4.25 9.4-1.417 17.9 5.28 19.575-3.22-6.568 3.993-9.66 1.676-13.909 4.25 1.803 7.984 7.598 7.854 11.204 5.54-6.182-4.12-14.424-2.317-20.218l-19.06-5.41zM375.144 287.608c-6.31-5.538-9.003 1.448-12.106-.966-2.897-2.254-6.76-2.576-8.24-.322 5.41.193 2.766 4.379 13.263 5.409-10.497.708-8.563 12.428-15.583 11.848 7.47 7.083 11.333-6.31 17.386-4.12-1.803.514 2.833 4.764-.387 10.43 5.217-.128 7.34-7.34 7.987-11.075l-2.32-11.204zM236.184 347.752c-2.318-1.93-9.015-2.833-11.59-1.287-2.576 1.544-1.674 1.93 1.416 2.19 3.091.257 7.082 5.257.387 5.537-3.091.127-2.06 7.597-8.5 8.114 2.64 3.22 10.174 1.093 12.878-2.447-.515 2.897 3.348 5.537 1.803 9.014 4.765.516 1.996-9.657 9.53-9.144-3.09.387-1.803 7.34 3.606 5.537-3.22 1.547-1.545 5.28 2.06 4.38-2.317.773-3.09 3.733.13 5.41 3.09-4.25-.387-19.446-11.72-27.303zM516.68 205.656c9.857 0 17.846-7.992 17.846-17.85 0-9.856-7.99-17.848-17.846-17.848-9.86 0-17.85 7.992-17.85 17.848 0 9.858 7.99 17.85 17.85 17.85z" stroke-width=".41680000000000006"/> - <path d="M423.44 227.216c5.41-5.151 13.654-7.727 19.317-3.864 5.666 3.864 24.47 8.5 33.743 2.061 9.27-6.44 13.65-9.788 17.77-9.015 3.094 4.636 6.827 6.825 11.464 7.212 1.416 1.545 6.44 2.833 9.273 2.446 4.12 1.03 9.143-.257 13.134-4.636 6.183.902 11.977-3.734 14.166-10.688 6.567-.773 6.954-8.114 2.834-13.008-3.864-.772-.9-13.78-14.94-11.204 5.926 3.606 1.416 10.818 6.313 14.167-3.35 0-7.663 1.416-8.694 6.439 1.287-3.477-.193-5.795-1.096-6.568.13-2.962-6.437-10.238-12.62-7.598 4.443.966 1.933 8.113 5.153 10.817-2.32.13-4.767 1.288-6.183 3.349-1.674-2.962-7.597-6.053-11.204-6.31 0-1.03-.193-3.091-.643-4.122-1.61-3.09-2.963-6.76-2.32-11.461-3.09 3.348-5.666 7.985-7.21 11.333-4.893-3.349-17 1.545-22.666 2.833-5.667 1.288-24.727-1.803-29.107-6.44-4.376-4.635-12.876-7.469-20.86-9.787-10.98-3.186-11.076-15.196-23.183-23.438-.257 14.94 22.41 62.331 27.56 67.482zM297.232 341.056c9.53 0 17.257-7.727 17.257-17.257 0-9.53-7.727-17.256-17.257-17.256-9.53 0-17.257 7.726-17.257 17.256 0 9.53 7.726 17.257 17.257 17.257z" stroke-width=".41680000000000006"/> - <path d="M256.016 327.792c3.477 4.508 9.4 4.251 11.848 3.864 2.06 5.407 8.628 5.28 11.462 8.24 2.833 2.964 12.49 2.707 15.324 1.03-2.574-.256-5.923-1.8-9.143-4.506-3.886-3.264-2.06-9.788-5.151-12.105 2.318-2.576 2.704-6.825 2.19-8.5 2.446-1.417 4.249-3.735 4.507-4.894 4.25-.257 7.983-2.447 9.53-4.12 2.19 2.06 7.727-.645 10.69 2.832.644-8.5-7.47-13.007-12.88-10.173-2.19-1.16-7.984-.387-9.014 1.159-1.803-.773-6.826 1.803-9.144 3.477 2.576-1.417 2.962-5.667 1.932-7.212 2.189-.901 4.636-3.863 4.893-6.053 3.091.515 7.726-1.545 9.787-1.03-3.347-4.379-8.884-5.924-14.551-5.538-5.86.323-8.37 4.444-9.144 8.887-3.477 2.06-4.636 9.014-3.348 11.461-1.997-.064-3.864 1.868-4.636 2.962-2.705-1.159-6.568-1.995-9.337-1.995M253.056 298.56c-1.159-3.348.376-6.363 1.159-9.014 1.996-6.761.773-8.5-5.28-7.598-.515 3.219 2.576 13.78 4.121 16.612z" stroke-width=".41680000000000006"/> - <path d="M248.616 282.328c1.545 1.545 7.019 2.254 7.598-2.64.666-5.618-1.61-7.792-6.503-5.602-.386 1.288-.838 6.568-1.095 8.242z" stroke-width=".41680000000000006"/> - <path d="M249.776 273.896c2.06.837 6.504 2.511 8.95-2.254 2.053-3.996-.643-7.083-4.893-6.826-1.03 1.16-3.091 5.28-4.057 9.08z" stroke-width=".41680000000000006"/> - <path d="M253.576 264.432c.515 1.545 5.795 6.697 9.658 2.962 3.864-3.735 3.864-9.272-1.931-11.333-1.546.258-6.182 5.667-7.727 8.37z" stroke-width=".41680000000000006"/> - <path d="M261.296 256.064c1.159 3.22 4.765 8.757 11.462 6.181 6.697-2.575 3.863-10.946.773-12.62-1.803.129-9.144 3.477-12.235 6.439z" stroke-width=".41680000000000006"/> - <path d="M273.536 249.624c-.515 2.833 0 10.56 9.143 10.431 9.143-.128 6.57-10.817 4.25-12.363-3.734 0-10.045.129-13.393 1.932z" stroke-width=".41680000000000006"/> - <path d="M287.312 248.072c-1.03 2.19-3.352 16.6 14.553 12.62 2.316-.514 8.37-13.78-14.553-12.62z" stroke-width=".41680000000000006"/> - <path d="M297.096 249.36c-1.8 1.803 2.833 16.355 14.94 13.908 12.106-2.447 1.933-16.226-14.94-13.908z" stroke-width=".41680000000000006"/> - <path d="M307.4 251.552c-1.93 3.992.97 15.84 15.906 15.84 13.537 0-.71-15.582-15.906-15.84z" stroke-width=".41680000000000006"/> - <path d="M319.12 255.032c-.97 2.213-2.157 14.774 15.454 15.84 12.75.773 9.66-17.257-15.454-15.84z" stroke-width=".41680000000000006"/> - <path d="M338.056 260.312c-2.187 3.864-4.507 13.522 14.81 14.295 12.377.496 4.767-14.037-14.81-14.295z" stroke-width=".41680000000000006"/> - <path d="M354.152 263.272c-2.833 3.864-.747 11.442 6.437 12.878 9.016 1.803 10.303-6.696 4.123-10.817-6.183-4.121-10.56-2.06-10.56-2.06z" stroke-width=".41680000000000006"/> - <path d="M362.912 265.072c-2.06 3.606-.783 12.363 12.877 12.363 2.833 0 13.653-11.075-12.877-12.363zM257.184 433.016c11.064 0 20.034-8.97 20.034-20.034 0-11.066-8.97-20.036-20.034-20.036-11.065 0-20.034 8.97-20.034 20.036 0 11.064 8.97 20.034 20.034 20.034z" stroke-width=".41680000000000006"/> - <path d="M404.12 141.704c-1.547 1.545-4.763 6.181-5.41 7.984-6.697 20.09 11.18 35.097 21.637 56.664 8.243 17 7.213 43.787-5.667 60.786-4.406 5.815-3.09 7.47-8.757 13.394-2.173 2.272-4.636 5.15-3.863 13.393 3.607-1.288 8.757 2.06 9.786 4.894 2.577-1.288 6.184-.773 7.47.772 4.377-2.06 7.984-1.03 11.847 3.092 3.35-.516 6.956 0 10.303 3.605 1.803-3.605 5.41-4.893 7.983-4.12-.256-4.637 4.38-7.985 8.5-6.182-1.286-6.182 4.38-10.819 9.79-9.015 4.634-3.606 13.907-3.864 18.544 1.545-8.243-2.318-7.983 6.44-14.94 5.667 1.803 5.151-2.833 8.113-7.467 9.787 2.96-1.417 6.18-3.09 7.21-1.288 2.577-2.253 7.727-1.416 9.017-.257 3.41-1.095 6.697-.258 8.24 3.863 4.637 2.833 7.727 10.045 4.38 15.454-1.03-5.666-4.893-5.409-6.44-7.727-3.607 1.288-7.213 1.288-8.243-1.03-2.06 2.06-9.014 3.864-12.103.773-1.16 4.636-5.154 8.5-9.79 8.5 1.29 3.605-2.317 9.788-5.15 12.878 4.38 2.317 3.09 7.47 2.06 10.56 6.696 1.03 1.03 6.953 12.62 10.817-5.664 1.803-16.74 0-18.287-6.954-5.667-.256-9.53-5.923-9.27-11.85-4.38-4.12-5.024-10.043 1.03-14.164-5.154 1.545-7.987-6.697-15.457-3.348-3.714 1.666-13.52-1.16-13.39-4.637-1.547 2.576-10.947 1.546-12.238-2.833-3.09 1.674-10.303-1.159-10.173-5.409-3.994 1.803-9.4-1.416-9.143-5.537-3.734-.515-4.12-3.864-3.864-6.697-3.35-1.545-2.446-4.765-1.16-8.628-2.316-2.576-1.286-6.182.517-9.53-2.577-2.576-2.06-5.667-1.29-9.272-12.363-1.03-27.85-4.012-63.36-14.939-53.574-16.484-67.998 22.15-56.15 46.362 13.67 27.935-1.545 34 3.091 54.863 4.894 1.03 7.47 5.15 7.212 9.53 2.897.127 4.958 2.83 3.927 7.984 2.447-.45 5.603.256 7.663 2.316 1.804-3.346 7.728-4.12 10.819-.256 6.695-.517 10.045 4.893 9.788 11.59 3.603 6.44 2.317 14.297-1.547 19.317.387-2.703 0-6.567-.126-8.883-.24-4.264-6.184-5.154-5.54-8.63-3.09.256-6.053-1.417-7.083-3.734-1.803 1.543-4.378 2.06-6.568 1.287 3.477 1.546 6.182 7.726 5.152 11.846 1.803 3.093 1.416 8.76-.773 11.206-1.03 5.02-4.894 6.824-9.916 4.634 2.833-1.8 3.863-5.02 3.734-7.727-1.803-1.543-2.704-4.506-2.833-6.31-5.022.774-11.977-3.476-13.26-5.156-11.064 0-20.033 8.97-20.033 20.036-.515-4.123-5.728-8.183-5.084-11.66-3.09-9.53 1.288-18.416 13.909-20.216-1.545-3.607 3.863-7.344 1.803-11.464-2.632-5.263-7.47-12.106-14.68-20.09 4.378-7.47 3.09-17.514.514-23.696-3.698-8.877-7.212-6.697-20.348 7.726-21.408 23.507-49.968 17-75.21 32.454-6.706 4.107-13.392 5.667-6.18-1.543 7.211-7.214 26.271-14.424 38.634-20.607 23.152-11.577 42.756-30.908 50.483-68.512 18.157-88.368 84.992-59.24 127.232-42.756 39.657 15.477 32.453-19.575 12.363-40.695-24.146-25.386-19.317-45.331-7.983-61.3 20.346-2.834 59.37 4.25 51.513 11.075z" stroke-width=".41680000000000006"/> - <path d="M475.856 358.784c12.174 0 22.043-9.866 22.043-22.04s-9.87-22.043-22.043-22.043c-12.174 0-22.043 9.869-22.043 22.043s9.87 22.04 22.043 22.04z" stroke-width=".41680000000000006"/> - </g> - <g fill="none"> - <path d="M391.76 142.728c-4.893 21.636-.773 31.423 6.44 40.953 14.903 19.697 26.786 64.649 9.786 94.008" stroke-width=".41680000000000006"/> - <g stroke-linecap="round"> - <path d="M417.512 252.328c2.06-.773 5.923-3.22 6.827-7.47M419.056 242.928c.643-3.735 6.437-5.344 6.567-9.336M419.184 228.368c-.387-3.864 5.797-7.34 4.893-11.204M415.84 214.464c-.517-2.19 5.15-6.31 3.607-9.787M411.592 200.944c-1.16-2.447 2.703-5.28 1.03-7.856M405.408 190.12c-.387-1.674 1.997-5.344.71-7.533M399.224 177.376c.513-.644 2.577-2.19 1.737-4.121M394.976 168.04c.837-.451 3.347-1.224 3.027-3.09" stroke-width=".41680000000000006"/> - <path d="M266.064 410.856c-5.151-1.803-11.59.773-12.878 5.153M257.048 420c.644-4.377 7.34-6.31 9.4-4.25-4.249-2.317-6.31 5.923-2.575 6.183M298.52 318.136c-3.09 1.546-3.99 7.212 0 11.463M303.152 319.424c-2.187 1.803-2.06 7.212 1.16 8.5-2.703-1.932 0-5.28 1.933-5.409 1.93-.129 3.217 2.19.9 4.507M484.096 332.168c-7.21-1.93-13.006 6.44-6.44 13.91-.127-7.213 5.023-11.976 11.334-10.69M486.088 340.376c-1.773 0-2.77 1.387-2.77 2.737 0 1.416 1.223 2.77 3.22 2.77 1.29 0 2.32-1.48 2.32-2.64M511.52 182.264c1.16 4.379 7.213 6.182 11.977 5.151M523.496 184.584c-3.733.129-6.823-3.348-6.567-6.31 0 2.189 5.024 3.22 6.567 1.803" stroke-linejoin="round" stroke-width=".41680000000000006"/> - <path d="M267.864 331.656c-1.03-2.577 3.091-5.152 3.22-7.6.129-2.446 4.636-4.378 9.272.258M278.168 296.888c-.901.386-1.674.901-2.447 1.159M287.056 310.92c-1.095.065-3.348-.064-4.572-.902M282.552 315.816c-.901.451-2.898 1.224-4.057 1.482M238.376 393.6c-.129 2.32 2.19 5.667 3.477 6.697M248.424 388.064c-1.288 1.93-2.06 5.28-1.288 7.597M267.608 395.792c-2.318-1.547-.773-5.54-1.03-8.114-.258-2.576 2.704-6.696 8.5-3.22M245.976 381.112c2.318-.387 4.765-.26 6.31.383M275.336 373.768c-1.03 1.417-1.288 2.963-1.416 3.993M286.152 373.512c-1.803 0-3.348 1.287-4.121 2.577M261.168 307.576c2.06.709 7.405 3.992 7.598 7.405M283.064 290.832c-6.31-.129-8.757-6.568-3.992-6.568M294.4 299.456c-2.447 1.03-1.287 5.28 2.19 7.34M279.328 339.896c-1.224-1.543.386-6.05 4.379-4.7M288.728 386.904c.256-3.927 5.216-6.247 7.213-1.803M270.44 398.104c-.322-4.313 1.867-5.73 3.799-5.987 1.931-.256 4.701 1.35 5.989 4.184M232.064 401.328c.258-2.577 2.447-5.28 4.765-4.893M467.736 286.968c-1.677 1.224-2.77 6.697 3.603 7.212M457.952 295.984c0 .644.837 1.545 1.353 1.932M488.344 306.288c-1.673-1.288-5.99 3.928-2.06 7.727M447.392 349.56c-.967-3.67 2.447-4.637 5.667-3.863M439.152 323.544c1.93-1.288 3.863-2.704 6.31-3.348M438.12 337.704c0-3.09 1.543-5.663 2.96-6.437M449.448 302.168c-.257 3.735 1.29 7.34 2.45 9.272M480.104 302.424c-1.87.58-3.543 1.288-4.25 2.833M478.04 312.984c.903-.773 1.933-1.674 2.383-2.318M526.72 200.552c0 3.606-4.507 5.537-7.467 3.22M536.512 200.68c1.993 1.545 8.883.065 7.273-3.927M528.136 221.416c-1.417-.258-3.863-1.803-4.893-3.09M542.304 210.728c-2.317.515-3.863 0-5.023-.515M505.728 223.608c1.287 0 4.377-.515 6.503-1.61M501.864 200.816c-1.673-.193-2.9.129-3.863.773M527.816 207.12c-.45 1.61-1.61 4.121-3.027 5.216" stroke-width=".41680000000000006"/> - <path d="M497.488 212.792c3.22-1.417 7.213 9.53 14.94 5.666M513.072 207.12c-1.03 1.417-1.673 3.606-1.803 5.538" stroke-linejoin="round" stroke-width=".41680000000000006"/> - </g> - <path d="M359.048 190.384c1.03-.129 2.833-.515 3.22-1.803M226.528 310.28c3.864 2.19 6.568 5.924 4.894 11.462M403.6 178.536c1.16.773 5.54.773 7.987-.129M414.68 181.112c-.13 1.803.387 8.628-3.09 10.045M412.88 190.256c3.22 1.03 9.66.644 11.72-5.28M420.088 189.992c1.673 2.576 2.187 7.598-2.833 10.302M421.376 194.248c3.733 1.288 12.363 1.416 11.46-5.924M429.88 194.248c2.577 3.606 13.91 7.856 12.106.386M419.448 204.672c4.377 1.03 10.56-1.932 7.983-9.658M439.792 198.88c.643 2.962 15.066 6.053 13.137-.644M450.224 202.104c2.707 6.181 17 5.666 12.494-2.576M460.4 205.96c2.833 3.477 15.457 1.417 10.434-6.954M470.696 205.832c7.857 5.924 17-2.576 7.083-8.758M482.288 203.904c6.957 5.538 15.457-4.508 9.403-7.34M427.296 201.584c2.19.644 6.827.386 7.857-3.606M433.416 200.68c-.257 5.86 9.597 8.114 12.106 1.353M442.24 205.704c1.803 3.863 10.43 5.409 11.846-.129M452.672 208.152c1.417 3.864 8.886 3.477 10.946-.515M460.912 210.216c2.317 5.022 11.846 5.022 14.037-2.318M473.28 211.112c3.733 2.318 11.72 1.417 11.074-5.795M482.808 210.472c5.537 4.508 13.394.129 9.53-7.47M491.952 216.392c2.963-.515 4.507-6.439 1.417-7.984M423.312 217.424c6.18-3.348 7.34-9.014 3.09-14.552M428.592 211.76c3.863 2.318 11.203-.129 12.49-5.795M433.872 212.4c2.187 2.833 2.573 6.31-.26 9.53M435.672 216.008c6.823-4.25 15.323 3.606 9.014 8.371M443.528 215.624c1.547-.386 4.25-3.22 4.507-6.439M446.616 218.584c2.833-2.962 22.154 3.091 9.917 9.272M455.632 210.472c3.733 1.417 5.667 6.697 0 8.5M460.528 223.352c4.12-4.25 17-1.545 12.363 3.864M469.8 221.672c2.317-7.856 16.097-2.962 11.59.257M466.968 213.816c.387 1.546.513 5.409-2.06 7.47M478.56 212.272c.513 1.288.387 3.735-.773 5.28M487.312 212.4c.773 1.416 2.06 4.121-.773 6.31M377.08 153.16c.127 7.34 2.703 12.234 12.62 7.598M380.168 161.92c-4.893 6.568.643 13.651 10.303 6.568M365.096 165.136c6.697 7.212 18.674 1.932 10.946-9.015M384.16 171.32c-1.29 7.083 4.507 8.5 9.27 5.28M359.176 166.296c1.22 7.121 8.5 12.75 15.583 8.371M367.936 176.088c0 10.174 14.037 11.333 17.257.773M380.168 183.296c4.507 9.272 14.294 5.538 17.514-.129M370.248 168.488c1.803 4.507 5.41 9.53 13.78 5.795M344.496 166.296c1.16 3.735 7.857 8.242 15.583 3.09M349.256 171.064c-4.123 6.053 4.12 11.72 14.037 2.704M354.152 178.536c1.673 8.5 5.02 15.326 17.126 4.379M365.224 187.288c4.38 5.409 11.077 8.757 17.386-.386" stroke-width=".41680000000000006"/> - <path d="M387.248 188.832c-.387 6.439.9 9.658 5.923 9.4 3.96-.202 7.727-3.348 9.917-6.696M392.272 198.24c-.13 7.34 5.663 13.136 16.483 5.667M396.776 206.864c-2.06 5.538 4.12 14.552 16.226 9.916M371.152 192.184c-.77 7.083 5.797 11.848 16.357 2.704M376.304 200.04c.387 5.795 6.953 12.75 16.614 2.704M380.936 207.384c-.773 9.916 8.37 12.75 16.097 5.151M367.16 200.04c2.06.129 3.733-1.674 4.763-2.962M371.536 207.248c1.803.386 4.897-1.288 5.927-3.348M376.048 218.968c2.06 2.19 9.014.644 9.914-2.318M383.776 218.84c3.863 9.014 14.163 8.628 18.414-1.545M400.256 220.904c1.93 5.28 6.827 8.628 14.81 6.825M404.12 226.312c-4.507 7.34 1.417 15.969 11.46 7.47M406.568 237.256c-.513 4.636 3.737 9.916 9.53 10.56M387.504 223.736c-1.547 10.431 5.923 15.454 15.326 9.916M376.56 228.76c2.447 1.932 6.827 2.19 10.946.644M392.528 235.456c-2.32 8.758 6.697 15.068 14.423 5.28M380.04 230.176c.13 4.507 4.51 9.4 12.106 7.984M413.392 247.176c-5.153 3.477-6.183 9.658 1.03 13.65M400.768 245.368c.26 5.28 2.707 8.242 8.5 8.757M393.176 242.664c-7.727 7.083-.13 15.326 9.014 8.371M398.584 253.224c-2.577 8.114 7.083 13.007 12.234 4.765M382.616 235.968c-2.833 7.985.773 13.265 7.34 12.75M372.44 234.424c.387 4.765 4.507 6.439 9.143 5.409M375.4 239.448c-3.477 6.697 1.803 10.302 8.76 7.727M405.28 262.112c-1.16 4.25-.517 7.34 5.793 8.758M405.664 268.168c-7.6 3.477-8.243 10.818-2.32 15.582M399.544 259.992c-3.99 3.606-3.22 9.851 1.16 12.298M365.744 236.488c-4.38 4.315-.193 16.226 9.463 9.724M390.856 251.552c-5.927 4.894-3.22 13.78 6.567 11.333M381.064 247.816c-3.09 8.758-.127 11.848 6.827 11.977" stroke-width=".41680000000000006"/> - <path d="M359.304 236.096c-5.28 3.992-3.863 9.658-1.543 12.234 2.316 2.576 6.693 1.417 8.11-1.931M348.224 232.624c-5.923 7.598 0 16.613 8.374 13.909M379.912 255.16c-6.053 2.19-10.67 7.686-6.957 12.492 2.19 2.833 11.72 3.22 14.424-7.727M368.96 248.072c-3.477 5.023-2.32 9.788 4.12 12.234M368.576 257.48c-3.737 2.06-6.183 4.508-5.28 9.015M360.208 249.624c-1.417 6.053.257 9.788 3.99 11.59M360.08 256.832c-5.797-.386-8.757 2.06-6.827 7.727M353.768 258.248c-5.667-2.06-6.57-6.954-4.123-12.106M348.872 253.744c-6.183.258-8.886 3.348-8.886 7.598" stroke-width=".41680000000000006"/> - <path d="M340.496 229.656c-4.507 1.932-5.923 7.985-4.25 11.333 1.677 3.348 6.957 3.606 10.177 1.416M327.88 224.896c-4.12 4.636.643 13.651 7.987 11.462M317.32 221.288c-3.863 5.409.387 14.424 10.303 11.848M328.136 258.248c-1.03-6.44 5.667-10.689 13.91-2.318M338.056 242.928c-2.447 2.19-3.603 5.666-3.22 8.5M306.76 218.2c-4.25 7.212.903 13.78 10.046 11.204M330.584 236.096c-6.053 6.053-3.993 12.106.513 15.582M326.72 243.184c-9.143.129-9.657 10.689-2.187 14.038M319.768 232.624c-3.733 2.576-4.893 9.658 1.547 12.492M319.512 248.464c-3.863-1.803-8.5.386-8.114 4.894M313.712 248.592c-3.477-8.242-13.65-6.825-12.746 1.674M316.544 238.416c-2.187.386-6.567 1.674-8.24 5.023M308.952 229.144c-4.12 4.636-.903 10.174 2.447 11.333M296.72 216.136c-.773 5.538 1.417 8.242 8.37 7.727M299.16 223.224c-2.707 6.697.9 9.658 7.853 9.272M300.704 231.464c-4.12 4.894-1.287 10.174 2.703 12.363M298.776 237.648c-7.34-.902-8.5 7.598-6.053 11.59" stroke-width=".41680000000000006"/> - <path d="M292.848 215.496c-4.506 1.932-7.081 7.598-4.635 11.075 2.448 3.477 7.342 2.318 10.045.515M289.76 228.112c-3.734 5.666-.387 9.916 3.607 11.59" stroke-width=".41680000000000006"/> - <path d="M275.336 214.848c-2.962 3.09-1.159 9.402 6.053 9.53 5.806.104 8.757-5.409 6.954-9.272M280.36 224.376c-2.318 5.151-.901 10.689 7.856 9.787M291.952 242.28c-5.409-2.447-12.62 0-9.53 6.44M281.648 233.136c-2.19 3.09-1.417 7.47 1.03 10.174M281.264 241.376c-3.606.644-7.083 2.576-4.894 8.242M275.848 244.984c-4.636-1.417-10.56 1.932-6.954 6.697M268.128 247.176c-3.992-.644-8.757 3.606-4.894 7.856M261.688 251.552c-3.606.902-7.856 5.023-4.121 8.242M279.848 231.336c-5.151 2.318-5.667 8.114-3.22 12.363M274.432 220.648c-7.727 2.962-7.598 13.265.901 16.484M271.728 234.808c-4.636 2.704-5.538 7.856-2.447 11.204M263.616 216.784c-3.091 1.03-2.833 10.56 5.409 10.302M255.12 220c-6.182 4.121 1.288 14.552 11.333 7.083M260.912 229.656c-.901 4.25.258 8.886 7.083 9.402M261.296 235.328c-4.894 1.803-5.795 11.848 3.09 12.62M245.72 226.184c-6.31 5.795 5.151 10.818 9.402 2.447M236.96 235.84c-3.091 3.735 7.727 13.522 12.492-2.833M250.608 232.752c.257 3.863 2.576 6.181 7.34 6.439M257.824 242.928c-7.598 1.159-10.045 10.689-1.545 12.75M243.784 241.64c-.258 3.606 3.477 6.568 7.727 5.924M255.376 255.416c-6.954 1.545-7.856 10.56-1.674 10.045M250.48 273.832c-5.796-1.738-5.924-8.629-.773-11.204" stroke-width=".41680000000000006"/> - <path d="M245.72 267.776c-4.893 2.962-2.962 10.045-.386 11.075 2.575 1.03 4.636-.257 4.894-2.446M249.84 286.32c.515 3.348-11.913 2.06-5.537-8.37M244.232 286.904c-4.185 6.568 2.64 11.912 6.954 6.31M244.816 294.824c-1.674 5.28 4.7 9.08 8.82 4.959M230.904 245.368c-2.318 4.765 9.272 6.568 10.045-3.22M227.688 252.456c-2.318 9.272 15.196 7.34 10.689-4.636M238.76 254c2.447 1.417 9.788 1.545 11.59-6.31M245.072 254.256c.515 2.447 2.704 5.409 4.765 6.31M236.704 256.704c-.773 5.023 4.25 9.144 10.045 8.758M237.6 261.6c-2.833 3.864-3.735 11.333 5.152 11.848M224.08 262.888c-1.417 3.992 6.954 8.114 11.848 1.545M221.504 273.056c-.709 3.027 6.825 7.083 11.075-5.795M229.232 273.832c1.803 3.22 7.856 5.795 11.59-.515M234.768 277.184c-1.545 4.507 2.705 8.757 7.856 7.47M225.112 276.152c-1.03 6.439 6.439 10.174 11.075 6.825M220.216 278.984c-2.189 8.242 8.371 11.333 12.363 5.151M229.88 286.584c.387 4.636 7.599 8.628 13.265 4.765M217 290.448c-.515 2.06 8.114 4.121 9.4-3.091M222.024 292.248c2.06 5.28 9.014 6.568 13.007.129M232.712 294.952c.902 4.894 7.212 7.598 12.75 4.25M247.776 301.136c-1.416 6.568 5.409 11.848 9.658 8.242M236.832 299.976c-2.06 7.212 6.954 11.333 11.977 7.34M226.016 296.368c-.515 6.697 4.765 10.689 10.818 7.727M214.552 297.016c-1.803 4.379 7.727 7.985 12.234 4.25M208.624 308.992c2.447 2.833 10.946 0 11.72-6.31M218.032 307.312c3.09 3.606 10.431 5.538 13.394-2.19M228.848 309.12c-.129 5.538 9.788 9.53 13.007-.644M253.504 310.472c-.902 2.705 1.224 7.018 5.666 7.533M245.328 308.8c-.644 3.09 3.864 7.404 8.629 5.666M254.864 315.752c-1.288 3.348-.194 8.177 4.314 8.113M255.312 322c-3.348 2.833-1.932 7.856 2.898 8.05M253.576 326.76c-4.765 3.218-3.09 10.302 3.22 9.918M239.152 313.112c0 6.954 8.628 7.984 10.302 1.545M246.104 318.776c-1.288 4.121 2.06 8.114 7.34 6.954M247.136 368.488c1.16 1.677 5.924-1.157 4.636-3.99-1.287-2.833-6.335-1.293-5.795 1.673M250.608 363.336c.644-5.667-6.053-6.567-7.727-1.673M245.328 358.832c1.674-2.833-3.992-6.697-6.31-2.577M241.08 354.576c1.545-4.123-4.894-5.923-5.409-2.19M234.256 346.976c.773-2.06 7.985-.773 4.894 3.477M244.688 355.608c2.833-2.577-1.931-7.857-4.894-5.923M263.744 363.464c-2.254.257-4.573 1.737-2.898 6.503 1.16 3.307 6.117 3.477 6.825 1.48" stroke-width=".41680000000000006"/> - <path d="M260.464 365.848c-2.19-1.417-6.954.967-4.765 5.603 1.648 3.49 5.795 2.06 6.44.257M248.16 372.48c1.094 1.93 6.567 1.097 7.533-1.03M251.896 366.104c1.159-.773 3.283.19 3.735 1.157M251.512 334.36c-3.735 2.447-1.417 9.917 4.379 7.983M250.352 340.416c-2.962 2.317-.258 9.53 5.28 6.827M251.256 347.24c-2.06 2.06-.065 7.79 5.28 6.697M250.48 350.072c-1.16-.517-4.186-.13-5.474 1.8M247.136 323.992c-2.833 2.704-1.481 8.243 3.799 8.693M246.104 329.656c-4.057 1.997-4.057 10.043 4.056 10.366M245.784 338.736c-2.253 1.803-1.159 8.757 4.636 7.853M247.648 346.336c-.838.837-.967 2.963-.258 3.863M245.072 343.696c-2.06.063-4.765 1.547-5.474 3.67M235.864 339.896c.773-2.06 7.148-1.93 7.598 4.123M244.104 336.808c-.902.193-2.64 1.03-3.09 2.77M241.336 317.944c-2.77 2.511-4.121 10.432 4.314 11.976M235.736 334.296c0-2.127 5.731-3.93 7.727-.773M232.064 322.768c.837 1.61 4.829 3.8 7.276 1.997M211.328 310.152c-.128 3.735 2.962 7.083 7.212 6.568 4.25-.515 5.151-4.25 3.863-6.697M219.184 316.848c-2.833 3.477.644 8.371 3.863 6.954M222.408 314.4c1.674-.644 7.212-1.417 8.886 1.159M204.504 315.432c-1.288 1.932 6.697 3.864 9.4.129M211.2 317.488c-.258 2.576 1.03 6.954 7.598 5.151" stroke-width=".41680000000000006"/> - <path d="M219.832 326.632c1.03-2.19-3.864-5.795-7.598-1.803-3.735 3.992.515 8.5 2.833 6.953M202.704 318.008c-1.932 3.348 5.538 9.466 9.788 3.8" stroke-width=".41680000000000006"/> - <path d="M197.744 323.8c-2.704 2.77.644 7.857 4.701 6.31 4.056-1.545 3.67-5.795 2.705-6.889" stroke-width=".41680000000000006"/> - <path d="M192.528 328.952c-2.19 1.995-.065 6.695 2.962 6.695 3.026 0 4.894-2.38 4.314-5.406M204.824 328.568c-.387 2.962 3.992 5.022 6.825 2.255M211.784 325.408c.386-.644.065-1.74-.579-2.254M187.832 332.944c-2.51 1.997 2.898 7.533 6.31 2.447M207.208 331.848c-1.61 1.543.965 5.6 3.541 4.377M198.392 334.68c.386 2.767 5.795 4.827 9.208.58M201.352 337.448c-.837 1.74.838 4.51 2.898 4.123M252.608 353.36c-1.995 3.927 4.379 8.5 9.015 3.733M257.24 359.216c-.965 2.123.194 5.087 1.932 6.18M251.192 363.656c.451-1.933 3.22-3.737 5.731-2.833M247.84 358.568c.386-1.737 2.704-3.477 4.443-3.023M399.48 278.208c-9.143.129-5.28 14.81 2.577 11.848M396.52 289.032c-1.803 2.962 1.673 7.663 5.537 4.894M401.032 294.504c-2.707 4.507 6.953 11.397 10.817 4.314M408.76 301.52c.127 4.25 12.49 6.954 10.69-1.545M418.288 304.608c2.96 5.022 14.037 5.538 12.877-1.932M428.72 307.832c2.32 3.348 13.137 5.409 12.75-1.546M384.8 265.464c1.543 3.992 6.823 5.409 12.62 3.09M381.456 268.296c3.607 2.318-1.673 12.878-7.21 8.628M381.456 274.864c3.993 1.932 8.886.515 10.303-5.151M389.312 274.088c.387 2.962 4.637 5.28 10.174 4.121M379.392 277.184c5.153 4.379-2.317 13.394-5.667 9.272M381.328 280.528c2.447 1.803 8.757.773 9.4-3.992M387.896 280.528c.517 3.09 2.963 4.25 6.44 4.379M379.912 284.776c2.573 3.606 9.014 4.636 11.846-.129M388.92 287.352c-.257 3.477 3.607 6.31 7.6 5.538M374.888 295.08c3.347 1.674 6.953-4.636 4.12-9.014M378.752 301.776c3.993.258 4.507-5.795.773-9.144M387.896 307.312c3.35-.773 2.317-8.114-5.797-8.758M398.064 312.728c3.22-.902.643-9.015-8.24-8.5M410.304 315.56c2.187-3.348-5.023-9.014-10.946-6.053M416.352 320.192c3.993 1.159 6.697-9.4-5.923-7.727M423.696 320.192c3.48-.901 5.927-7.212-4.247-5.151M431.424 320.712c3.09 1.546 4.507-7.47-4.897-5.022M379.52 292.632c3.863 2.19 9.917-.386 9.4-5.28M387.376 291.608c1.29 2.318.773 6.825-1.673 7.984M387.76 297.016c2.577 1.03 6.053.129 8.114-3.992M392.272 297.016c.77 1.803 1.03 5.409-.647 7.212M392.92 300.104c2.833 1.545 6.18-.515 7.597-3.477M398.712 299.2c2.06 1.288 3.863 7.34.387 9.788M401.032 306.16c2.447.129 6.053.129 8.37-2.962M407.728 304.872c2.19.644 4.763 4.25 3.863 7.47M411.72 311.176c2.45-.258 6.697-1.932 7.857-4.894M418.416 308.216c2.063 1.159 3.48 3.606 3.22 6.439M421.632 312.592c2.447-.129 4.637-1.416 5.28-4.121M426.272 310.28c1.803.644 3.993 2.704 4.123 5.151M430.136 313.88c1.803-.258 3.09-1.417 4.25-3.22M439.28 310.408c2.32 2.318-.77 10.046-5.537 8.629M389.824 154.32c-4.767 2.833-18.29 1.932-11.594-9.272M391.112 146.72c-9.4 3.735-20.994-3.477-8.886-11.333M379.008 132.816c-7.857 0-13.137 12.62-2.573 17M348.488 138.096c-2.06 3.992 5.28 8.37 10.303 4.379 3.89-3.093 3.604-11.462 1.287-14.682M344.496 147.624c-2.577 8.5 16.357 9.014 13.394-4.508M343.464 160.248c.643 6.439 18.16 4.379 12.49-8.629M358.016 148.008c1.417 1.932 5.28 5.28 11.846 4.636M361.104 138.864c.58 2.318 4.507 4.121 9.53 2.383M185.384 334.808c-4.443 3.157 2.383 8.114 4.894 2.64M181.904 337.256c-4.442 3.153 2.383 8.11 4.894 2.637M178.232 339.64c-4.444 3.157 2.382 8.114 4.894 2.64M174.368 341.832c-4.25 2.253.708 7.79 5.022 2.897M170.184 343.96c-4.25 2.25.709 7.79 5.023 2.897M191.76 337.32c-.065 3.283 6.182 4.637 8.434-.26M195.688 340.352c-1.932 2.447 1.61 5.473 3.542 4.377M187.376 339.896c-.194 2.77 5.215 4.38 7.856 1.353M190.344 342.8c-1.739 2.253 1.674 5.28 3.863 4.377M183.776 342.408c.193 2.19 3.283 4.7 6.632 3.283M185.768 345.368c-1.288 1.16-.644 3.867 1.159 4.703M179.072 345.176c-.515 1.997 2.898 5.54 6.375 3.22M179.776 347.496c-2.06 1.61-1.803 4.057.837 4.377M174.824 347.24c-.257 1.35 1.482 3.54 3.671 3.283M163.808 347.112c-2.06 1.093 3.22 6.697 6.503 1.48M158.72 349.424c-2.576 1.227 3.8 7.407 6.633 1.097M175.4 349.168c-1.997.45-3.284 3.35-1.61 4.507M168.896 350.2c-.258 1.16 2.19 3.09 4.186 2.383M167.224 350.72c-1.932 1.223-.902 4.633 1.353 4.12M160.336 352.968c-1.803 1.35-.58 4.057 1.932 3.413M163.616 352.776c.065.707 1.674 1.803 3.027 1.353M154.088 351.616c-2.253.967-2.124 6.633 5.474 3.543M149 353.872c-3.156 1.547-2.125 5.797 4.765 1.74M154.344 355.936c-.837.643-1.738 3.477 1.417 2.38M148.552 357.28c-1.288 1.16-.45 3.543 2.383 2.64M141.92 357.672c-2.318 1.353 2.768 3.157 6.182-.45M143.464 359.344c-1.03 1.03-1.03 4.057 1.674 2.963M136.896 360.568c-1.545 1.16 1.094 2.707 5.924.58M138.824 362.24c-1.803 1.48-1.61 3.347 1.03 2.767M133.48 363.08c-1.996 1.803.901 3.027 4.379 1.543M133.544 365.08c-3.413 1.543-1.932 4.377.193 3.283M247.52 374.928c-.791 1.703 1.803 3.09 4.25 2.703 2.35-.37 4.599-2.306 2.833-5.02M254.728 375.96c2.318 1.803 6.439-.257 6.439-2.963" stroke-width=".41680000000000006"/> - </g> - <g fill="#fff"> - <path d="M396.776 103.064c-10.303-5.151-31.68-14.682-37.734-6.954 5.537-2.318 21.764.129 35.157 12.492l2.577-5.538z" stroke-width=".41680000000000006"/> - <path d="M403.024 102.52c-11.914-13.878-18.93-10.771-27.497-15.551-8.046-4.492-20.863-5.41-23.346 1.733 11.757-5.726 22.55 3.08 29.18 4.145 9.106 1.462 14.246 8.502 16.91 11.74l4.754-2.067zM447.904 100.744c-6.183-14.166-19.403-10.466-25.243-16.484-8.497-8.757-30.003-16.87-38.89-10.818 19.573-1.03 27.91 13.492 38.376 18.545 7.47 3.606 15.454 11.333 25.757 8.758z" stroke-width=".41680000000000006"/> - <path d="M424.728 99.2c-10.56-13.136-26.79-24.726-34.257-20.348 9.787.515 12.877 7.34 19.834 11.72 6.953 4.378 3.863 10.688 14.423 8.628zM374.496 122.384c-11.077-4.121-32.71-6.181-42.757 6.44 16.743 2.832 41.983 1.287 42.757-6.44z" stroke-width=".41680000000000006"/> - <path d="M372.44 127.28c-11.077-5.151-19.726 2.044-30.137 1.03-19.83-1.932-33.997-.773-35.8 8.758 11.334-10.174 30.394-1.803 38.12-3.864 7.727-2.06 36.317-.257 45.33 3.606-4.636-5.666-11.846-7.212-17.513-9.53zM407.208 97.784c-2.573-8.5-2.447-17.514 10.303-16.87-3.22-3.993-15.066-6.053-17 8.886-14.037-10.302-29.363-12.106-32.193-3.22 7.21-6.181 18.413-1.674 31.806 13.523 1.16-.644 4.25-1.932 7.083-2.318z" stroke-width=".41680000000000006"/> - <path d="M387.896 109.504c-7.983-5.151-18.803-13.522.13-16.87-8.114-4.379-19.963-2.447-18.674 12.492-21.636-8.758-37.173-5.802-40.44 2.833-3.606 9.53 9.79 14.81 12.107 8.757-2.447 1.03-10.817-1.803-6.44-7.212 4.38-5.408 26.82-1.348 48.166 9.788 5.924 3.09 26.27 2.576 5.15-9.788z" stroke-width=".41680000000000006"/> - <path d="M382.224 123.672c-6.16-12.578-26.143-1.159-30.17-13.342-5.504 17.85 28.416 7.972 30.17 13.342zM509.336 137.32c4.19 2.082 7.813-1.191 1.403-3.758 4.194 2.08 7.85-1.114 1.44-3.683 4.194 2.081 7.85-1.113 1.44-3.682-1.71 1.722-4.156 8.032-4.283 11.123zM511.52 113.112c9.274-9.787-.77-13.136 10.56-23.18 9.274-8.22 1.77-13.697 10.563-20.091 2.834-2.06 9.014-6.182 9.53-10.303 3.734 9.272-11.593 10.56-10.563 25.5.657 9.512-5.773 8.68-8.24 24.726-.516 3.348-2.833 10.818-11.85 3.348z" stroke-width=".41680000000000006"/> - <path d="M515.648 117.488c5.15-11.075 11.063-10.862 13.906-15.196 5.41-8.242 16.87 1.417 26.53-5.924-1.673 10.431-14.68 6.697-20.346 13.394-5.666 6.696-10.303 9.788-20.09 7.727z" stroke-width=".41680000000000006"/> - <path d="M516.936 121.096c9.017-7.212 15.66-2.4 21.894-6.182 15.71-9.53 22.023 1.932 36.06-2.575-3.737 9.014-24.47 1.288-33.484 7.984-9.016 6.697-40.696 13.136-24.47.773zM490.664 172.48c-.13-4.121-3.993-9.402-9.403-10.045-5.407-.644-7.727-6.31-11.847-6.568-4.12-.257-6.826-8.5-12.493-8.371-5.667.129-7.984 7.47 5.28 14.166 13.266 6.697 27.946 14.424 28.463 10.819zM473.92 175.96c-5.667.258-6.44 8.5-11.846 8.758 7.466 3.992 12.876-1.803 16.74-6.955l-4.894-1.803z" stroke-width=".41680000000000006"/> - <path d="M478.56 176.984c-4.893 4.121-6.31 12.75.773 15.196-4.25-5.86 7.47-8.5 3.864-13.909l-4.637-1.287z" stroke-width=".41680000000000006"/> - <path d="M483.448 177.248c-3.863 7.47 6.053 8.37 3.477 14.038 5.666-1.288 6.57-11.977 1.416-14.81l-4.893.772z" stroke-width=".41680000000000006"/> - <path d="M445.584 161.272c9.274-.515 17.754 4.501 23.44 12.62 3.607 5.152 15.71 7.212 19.834 3.091 4.12-4.12 1.803-12.878-8.5-10.044-2.577-4.379-10.047-2.834-13.65-6.44-3.607-3.605-17.518-13.908-21.124.773z" stroke-width=".41680000000000006"/> - <path d="M480.36 166.944c-2.447.515-3.22 4.765-1.677 6.954M485.64 169.52c.773 1.288.257 3.09-.13 3.992M460.272 161.664c4.763.258 5.667 3.735 10.817 5.023" stroke-linecap="round" stroke-width=".41680000000000006"/> - <path d="M457.12 149.944c16.457 4.121 29.514 7.727 37.61 12.363 8.097 4.637 20.634 5.924 31.604 2.834 10.97-3.091 32.123-5.924 31.08 7.727 5.75-6.826-1.567-14.167-16.194-15.455.263-6.696-6.903-12.75-12.057-8.757 4.767-.644 8.88 8.242-.52 11.848 1.827-6.697-4.833-12.75-11.753-9.788 4.44 1.288 8.93 8.734-1.004 11.59-6.27 1.804-15.41-.514-22.2-4.635-6.79-4.122-44.923-19.06-36.566-7.727z" stroke-width=".41680000000000006"/> - <path d="M498.648 143.248c-5.15 2.318-1.803 7.727-9.786 10.818-7.987 3.09-13.524 10.173-11.72 16.226 5.41-11.848 14.94-11.333 18.286-15.969 3.35-4.636 8.243-11.461 3.22-11.075z" stroke-width=".41680000000000006"/> - <path d="M500.064 144.016c-.257 9.4-7.657 5.976-4.767 19.189.904 4.12 2.577 10.817-.256 17.514 8.306-6.052 2.963-18.768 6.696-23.567 1.804-2.318 4.12-5.924 5.024-9.014-1.934 5.408-1.804 15.454 3.476 18.03-4.25-10.046 11.464-18.288.644-29.878-1.544 2.833-6.44 7.855-10.817 7.727zM473.792 134.616c1.29 1.932 2.577 6.826 1.417 9.53 2.576-1.545 6.313-5.537 7.47-8.242 5.28.773 7.34 7.34 2.32 10.174 3.09 0 8.37 0 11.33-3.477-3.603-3.993-14.806-10.175-22.537-7.985z" stroke-width=".41680000000000006"/> - <path d="M393.688 116.144c-.833-.76-2.24-1.481-4.763-2-7.797-1.599-3.77-8.627 2.866-8.564 14.163-15.454 22.117-3.541 39.374-8.435 6.04-1.712 10.186-1.206 13.477.217 7.726-5.15 16.79-3.712 23.36 2.341.73-1.16 1.71-2.047 3.086-2.43 6.05-1.68 10.944 3.48 12.617 10.176 4.717-.874 10.103 1.46 13.647 4.68 4.906-2.52 8.286-2.632 9.53-.04 4.38-2.061 10.054-3.353 12.886 3.601 2.834 6.954-6.696 4.894-8.243 19.575-.953 9.057-11.073 12.621-19.06 7.212-12.773-8.653-25.24-10.045-31.423 3.09-6.18 13.137-11.023 20.769-26.014 16.485-5.406-1.546-12.363.515-16.74 6.439-4.38 5.924-11.076.386-19.06 1.03 10.044-1.545 6.197-4.072 14.94-4.636 7.984-.515 5.924-7.984 11.074-9.015-20.09 5.152-19.317-2.318-35.8 2.833 7.21-9.272 18.543-4.12 24.21-9.53-14.94-.257-21.62-10.017-28.333-5.923-10.56 6.439-5.927 24.772-33.483 23.18-13.394-.772-21.894 1.03-29.877 9.016 13.91-28.847 32.83-13 41.983-22.15 5.41-5.41 9.53-9.531 12.363-14.682.997-1.814 2.347-2.85 4.033-3.25-22.923-7.213-9.06-18.447 13.35-19.219z" stroke-width=".41680000000000006"/> - <path d="M506.872 112.088c.35.724.53 1.664.53 2.826 0 5.666-8.5 5.924-9.014 14.295-.27 4.379-.773 6.826-3.736 6.31-2.96-.515-5.537-5.15-2.704-10.56" stroke-linecap="round" stroke-width=".41680000000000006"/> - <path d="M397.936 107.704c-2.133-1.499-4.267-2.108-6.18-2.126M444.592 97.32c6.82 2.953 10.146 10.037 20.054 10.384 9.536.335 15.456 14.166 31.423 5.151.433-.244.856-.472 1.266-.683M468 99.704c-1.423 2.263-1.747 5.423-1.357 8.195M436.832 128.824c-12.103 0-15.197 6.181-15.197 12.106 0 5.924 5.667 13.65 15.714 13.65 10.043 0 15.453-6.18 15.453-12.878 0-6.697-6.183-12.878-15.97-12.878z" stroke-width=".41680000000000006"/> - <path d="M439.016 154.32c-.257-3.348-6.31-2.833-6.053-5.409.256-2.576 3.35-3.606 3.35-7.212s5.406-3.863 7.21-1.03c1.803 2.833 7.213 8.37 8.373 5.538M443.528 140.672c-2.833 2.833-4.12 8.628-.387 13.136M447.392 145.048c-.9 1.932-1.157 4.894-.127 6.697" stroke-width=".41680000000000006"/> - <path d="M495.488 135.584c9.466.773 11.077-9.66 3.993-10.302M483.84 107.448c-3.283-4.185-10.817-5.602-10.946 3.284" fill="none" stroke-width=".41680000000000006"/> - <path d="M471.992 120.84c-3.22-7.985-11.463-9.144-15.843-5.151-3.644 3.322-3.734 11.976 4.123 13.78 2.704-3.22 7.984-7.47 11.72-8.628zM468.448 115.816c-4.637-4.121-11.463 3.67-5.28 10.818M380.248 135.328c3.103-.737 7.64.782 14.597 4.054 4.38 2.06 17.517 6.44 25.757 2.06-8.5 3.091-14.937-9.787-21.377-8.242-6.44 1.546-18.223 3.928-23.18-.773 12.103.773 18.613-8.817 32.45-.515 3.867 2.318 8.76 3.864 13.137 3.606-11.33-13.651-26.27-4.894-27.817-15.969 6.827 7.341 23.503-1.674 32.003 12.106M396.264 121.608c-1.593-1.983-.873-3.96-2.583-5.524" stroke-width=".41680000000000006"/> - </g> - <path d="M483.84 107.448c-2.833-3.026-9.014-.644-7.277 5.474 1.354-2.833 4.25-5.216 7.277-5.474zM466.328 123.944c1.95-1.416 3.963-2.579 5.66-3.105-.927-2.292-2.263-4.021-3.807-5.228-1.473-1.018-5.706 4.675-1.853 8.333z" stroke="none"/> - <g fill="none" stroke-linecap="round"> - <path d="M458.72 113.496c-4.637-3.09-8.886-2.833-10.303-.257-3.347-.13-6.117 2.318-6.247 7.211M449.32 122.512c-5.537-3.799-13.137-2.382-12.62 6.118M433.352 133.456c2.703-2.19 6.567-3.735 9.53.129M474.696 125.088c-1.03 1.416-1.803 3.606-.13 6.954-2.06-2.704-7.21-2.704-12.75 4.507M486.928 124.704c-6.697.773-6.567 5.151-1.16 7.083M439.28 108.344c-5.667-1.159-9.786 2.19-1.93 5.023M450.096 104.48c-7.987-1.932-11.206.129-7.6 1.932M427.04 136.552c-.257 2.833 1.287 6.568 5.923 2.318M428.592 145.048c0 .773-.13 1.674-.647 2.318M410.04 107.312c-4.893-1.417-5.793-5.924-.127-5.538M408.368 117.744c-5.41-1.803-5.41-7.083-.903-6.568M418.416 115.04c-6.31-1.546-6.567-5.924-1.8-5.28M419.184 101.648c-3.347-.257-8.5 3.477.13 5.667M428.592 109.12c-7.857-1.159-7.727 2.06-3.093 4.121M434.512 101.648c-6.053-1.159-8.114 2.447-3.993 3.992M415.456 123.928c-1.483-1.223-2.703-7.083 4.377-5.344M430.136 122.128c-4.763-1.288-9.27 3.348-4.893 6.053M436.44 116.592c-5.02-.902-9.27.515-6.567 2.318" stroke-width=".41680000000000006"/> - </g> - <path d="M483.568 107.448c-2.83.524-5.367 2.187-7.01 5.472" fill="#fff" stroke-width=".41680000000000006"/> - </g> -</svg> diff --git a/img/flags/4x3/bv.svg b/img/flags/4x3/bv.svg deleted file mode 100644 index a62e60d..0000000 --- a/img/flags/4x3/bv.svg +++ /dev/null @@ -1,13 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" height="480" width="640" viewBox="0 0 640 480"> - <defs> - <clipPath id="a"> - <path fill-opacity=".67" d="M0 0h640v480H0z"/> - </clipPath> - </defs> - <g fill-rule="evenodd" stroke-width="1pt" clip-path="url(#a)"> - <path fill="#fff" d="M-28 0h699.74v512H-28z"/> - <path fill="#d72828" d="M-52.992-77.837h218.72v276.26h-218.72zM289.42-.572h380.91v199H289.42zM-27.545 320.01h190.33v190.33h-190.33zM292 322.12h378.34v188.21H292z"/> - <path fill="#003897" d="M196.65-25.447h64.425v535.78H196.65z"/> - <path fill="#003897" d="M-27.545 224.84h697.88v63.444h-697.88z"/> - </g> -</svg> diff --git a/img/flags/4x3/bw.svg b/img/flags/4x3/bw.svg deleted file mode 100644 index ed161bf..0000000 --- a/img/flags/4x3/bw.svg +++ /dev/null @@ -1,7 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" height="480" width="640" viewBox="0 0 640 480"> - <g fill-rule="evenodd"> - <path fill="#00cbff" d="M0 0h640v480H0z"/> - <path fill="#fff" d="M0 160h640v160H0z"/> - <path fill="#000" d="M0 185.97h640v108.05H0z"/> - </g> -</svg> diff --git a/img/flags/4x3/by.svg b/img/flags/4x3/by.svg deleted file mode 100644 index bfb0f64..0000000 --- a/img/flags/4x3/by.svg +++ /dev/null @@ -1,61 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" height="480" width="640" viewBox="0 0 640 480"> - <defs> - <clipPath id="a"> - <path fill-opacity=".67" d="M0 0h682.6v512H0z"/> - </clipPath> - </defs> - <g fill-rule="evenodd" clip-path="url(#a)" transform="scale(.9376 .9375)"> - <path fill="#b20000" d="M0 0h1024v340.11H0z"/> - <path fill="#429f00" d="M0 340.11h1024V512H0z"/> - <path fill="#fff" d="M0 0h113.37v512H0z"/> - <g stroke-width="1pt" fill="#b20000"> - <path d="M5.394 8.682h5.398v8.68H5.394zm16.196 0h16.196v8.68H21.59zM26.983 0h5.398v8.68h-5.397zM53.98 0h5.4v8.68h-5.4zm21.59 8.682h16.197v8.68H75.57zM80.98 0h5.398v8.68H80.98z"/> - <path d="M16.196 17.36h10.798v8.68H16.196zm16.196 0H43.19v8.68H32.392zm37.785 0h10.798v8.68H70.177zm16.196 0H97.17v8.68H86.374zm-75.586 8.68h10.798v8.678H10.787zm26.999 0h10.797v8.678H37.786zm26.998 0H75.58v8.678H64.785zm26.983 0h10.797v8.678H91.767zM102.57 8.682h5.397v8.68h-5.398zM5.394 34.718h10.798v8.678H5.394zm37.786 0h10.797v8.678H43.18zm53.995 0h10.798v8.678H97.175zM10.787 60.75h10.798v8.68H10.787zm5.409 8.68h10.798v8.677H16.196zm21.59-8.68h10.797v8.68H37.786zm-5.394 8.68H43.19v8.677H32.392zM21.59 78.107h16.196v8.678H21.59z"/> - <path d="M26.983 86.784h5.398v8.68h-5.397zm37.801-26.032H75.58v8.678H64.785zm5.393 8.678h10.798v8.677H70.177zm21.59-8.68h10.797v8.68H91.767zm-5.394 8.68H97.17v8.677H86.374zM75.57 78.107h16.197v8.678H75.57z"/> - <path d="M80.98 86.784h5.398v8.68H80.98zm-27-8.677h5.4v8.678h-5.4zm-53.98 0h5.398v8.678H0zm107.963 0h5.398v8.678h-5.397zm-80.98 43.39h5.398v8.678h-5.397z"/> - <path d="M21.59 130.174h16.196v8.678H21.59zm-5.394 8.678H43.19v8.678H16.196zm64.784-17.355h5.398v8.678H80.98z"/> - <path d="M75.57 130.174h16.197v8.678H75.57zm-5.393 8.678H97.17v8.678H70.178zm5.393 43.39h26.994v8.678H75.57zM64.784 147.53h37.79v8.68h-37.79zm-53.997 0h37.79v8.68h-37.79zm5.409 43.39h16.196v8.678H16.196zm-5.409-8.678H37.78v8.678H10.788zm75.586-17.356h26.994v8.678H86.373zM80.98 190.92h16.195v8.678H80.98z"/> - <path d="M21.59 199.597h5.398v8.68H21.59zm64.783 0h5.398v8.68h-5.397zM0 164.886h26.994v8.678H0zm48.588 17.356h16.196v8.678H48.588zm5.392 8.678h5.4v8.678h-5.4zm-16.194-26.034h37.79v8.678h-37.79zM59.375 34.718h10.798v8.678H59.375z"/> - <path d="M48.588 43.395h16.196v8.678H48.588z"/> - <path d="M43.18 52.073h10.797v8.68H43.18zm16.195 0h10.798v8.68H59.375zM0 43.395h10.798v8.678H0z"/> - <path d="M5.394 52.073h10.798v8.68H5.394zm97.176-8.678h10.797v8.678H102.57zM97.175 52.073h10.798v8.68H97.175zM0 130.174h5.398v8.678H0zm107.963 0h5.398v8.678h-5.397zm-59.375 69.423h16.196v8.68H48.588z"/> - <path d="M43.18 208.276h10.797v8.678H43.18zm16.195 0h10.798v8.678H59.375zm-21.589 8.678h10.797v8.678H37.786zm26.998 0H75.58v8.678H64.785z"/> - <path d="M32.392 225.63H43.19v8.68H32.392zm37.785 0h10.798v8.68H70.177zm-43.194 8.68H37.78v8.678H26.984zm48.587 0h10.8v8.678h-10.8z"/> - <path d="M16.196 242.987h16.196v8.678H16.196zm64.784 0h16.195v8.678H80.98z"/> - <path d="M91.767 234.31h10.797v8.678H91.767zm5.408-8.68h10.798v8.68H97.175z"/> - <path d="M102.57 216.954h10.797v8.678H102.57zM10.787 234.31h10.798v8.678H10.787zm-5.393-8.68h10.798v8.68H5.394z"/> - <path d="M0 216.954h10.798v8.678H0zm21.59 34.711h5.398v8.678H21.59zm64.783 0h5.398v8.678h-5.397zM53.98 225.63h5.4v8.68h-5.4zm-16.194 26.035h5.398v8.678h-5.398zm32.391 0h5.398v8.678h-5.398zm-16.197 0h5.4v8.678h-5.4zm-53.98 0h5.398v8.678H0zm107.963 0h5.398v8.678h-5.397zM53.98 130.174h5.4v8.678h-5.4zM26.983 43.395h5.398v8.678h-5.397zm53.997 0h5.398v8.678H80.98zM48.588 104.14h16.196v8.68H48.588z"/> - <path d="M37.786 112.818H53.98v8.68H37.787z"/> - <path d="M43.18 121.497h5.397v8.678H43.18zM32.392 104.14H43.19v8.68H32.392z"/> - <path d="M37.786 95.463H53.98v8.678H37.787z"/> - <path d="M43.18 86.784h5.397v8.68H43.18zm16.195 8.679H75.57v8.678H59.376z"/> - <path d="M64.784 86.784h5.398v8.68h-5.398zm5.393 17.356h10.798v8.68H70.177z"/> - <path d="M59.375 112.818H75.57v8.68H59.376z"/> - <path d="M64.784 121.497h5.398v8.678h-5.398zm21.589-17.357H97.17v8.68H86.374z"/> - <path d="M91.767 95.463h16.196v8.678H91.767z"/> - <path d="M102.57 104.14h10.797v8.68H102.57z"/> - <path d="M91.767 112.818h16.196v8.68H91.767z"/> - <path d="M97.175 121.497h5.4v8.678h-5.4zm0-34.713h5.4v8.68h-5.4zM0 104.14h10.798v8.68H0z"/> - <path d="M5.394 95.463H21.59v8.678H5.394z"/> - <path d="M16.196 104.14h10.798v8.68H16.196z"/> - <path d="M5.394 112.818H21.59v8.68H5.394z"/> - <path d="M10.787 121.497h5.398v8.678h-5.398zm0-34.713h5.398v8.68h-5.398zm-5.393 69.424h21.594v8.678H5.394zm26.998 0h21.594v8.678H32.392zm26.983 0H80.97v8.678H59.374zm26.998 0h21.594v8.678H86.373zM43.18 173.563h26.993v8.68H43.18zm-37.786 0h26.993v8.68H5.394zm75.586 0h26.993v8.68H80.98zm26.983 34.713h5.398v8.678h-5.397zM0 208.276h5.398v8.678H0zm5.394 295.051h5.398v-8.678H5.394zm16.196 0h16.196v-8.678H21.59z"/> - <path d="M26.983 511.997h5.398v-8.678h-5.397zm26.997 0h5.4v-8.678h-5.4zm21.59-8.67h16.197v-8.678H75.57z"/> - <path d="M80.98 511.997h5.398v-8.678H80.98zm-64.784-17.352h10.798v-8.678H16.196zm16.196 0H43.19v-8.678H32.392zm37.785 0h10.798v-8.678H70.177zm16.196 0H97.17v-8.678H86.374zm-48.587-8.682h10.797v-8.678H37.786zm26.998 0H75.58v-8.678H64.785zm26.983 0h10.797v-8.678H91.767zm10.803 17.364h5.397v-8.678h-5.398zM5.394 477.293h10.798v-8.678H5.394z"/> - <path d="M43.18 477.293h10.797v-8.678H43.18zm53.995 0h10.798v-8.678H97.175zM10.787 451.26h10.798v-8.68H10.787zm5.409-8.683h10.798V433.9H16.196zm21.59 8.683h10.797v-8.68H37.786zm-5.394-8.683H43.19V433.9H32.392zm-10.802-8.682h16.196v-8.678H21.59z"/> - <path d="M26.983 425.225h5.398v-8.678h-5.397zm37.801 26.035H75.58v-8.68H64.785zm5.393-8.683h10.798V433.9H70.177zm21.59 8.683h10.797v-8.68H91.767zm-5.394-8.683H97.17V433.9H86.374zm-10.803-8.682h16.197v-8.678H75.57z"/> - <path d="M80.98 425.225h5.398v-8.678H80.98zm-27 8.67h5.4v-8.678h-5.4zm-53.98 0h5.398v-8.678H0zm107.963 0h5.398v-8.678h-5.397zm-80.98-43.385h5.398v-8.68h-5.397z"/> - <path d="M21.59 381.84h16.196v-8.68H21.59zm-5.394-8.682H43.19v-8.68H16.196zM80.98 390.51h5.398v-8.68H80.98z"/> - <path d="M75.57 381.84h16.197v-8.68H75.57zm-5.393-8.682H97.17v-8.68H70.178zm5.393-43.386h26.994v-8.68H75.57zm-10.786 34.703h37.79v-8.678h-37.79zm-53.997 0h37.79v-8.678h-37.79zm5.409-43.385h16.196v-8.682H16.196zm-5.409 8.682H37.78v-8.68H10.788zm75.586 17.352h26.994v-8.68H86.373zM80.98 321.09h16.195v-8.68H80.98zM0 347.124h26.994v-8.68H0zm48.588-17.352h16.196v-8.68H48.588zm5.392-8.682h5.4v-8.68h-5.4zm-16.194 26.034h37.79v-8.68h-37.79zm21.589 130.169h10.798v-8.678H59.375zm-10.787-8.683h16.196v-8.677H48.588zm-5.408-8.68h10.797v-8.68H43.18zm16.195 0h10.798v-8.68H59.375zM0 468.61h10.798v-8.677H0zm5.394-8.68h10.798v-8.68H5.394zm97.176 8.68h10.797v-8.677H102.57zm-5.395-8.68h10.798v-8.68H97.175zM0 381.84h5.398v-8.68H0zm107.963 0h5.398v-8.68h-5.397zM43.18 303.738h10.797v-8.68H43.18zm16.195 0h10.798v-8.68H59.375zm-21.589-8.682h10.797v-8.68H37.786zm26.998 0H75.58v-8.68H64.785zm-32.392-8.682H43.19v-8.68H32.392zm37.785 0h10.798v-8.68H70.177z"/> - <path d="M26.983 277.704H37.78v-8.68H26.984zm48.587 0h10.8v-8.68h-10.8zm-59.374-8.682h16.196v-8.68H16.196zm64.784 0h16.195v-8.68H80.98zm10.787 8.682h10.797v-8.68H91.767z"/> - <path d="M97.175 286.374h10.798v-8.68H97.175zm5.395 8.682h10.797v-8.68H102.57zm-91.783-17.352h10.798v-8.68H10.787z"/> - <path d="M5.394 286.374h10.798v-8.68H5.394zM0 295.056h10.798v-8.68H0zm21.59-34.713h5.398v-8.678H21.59zm32.39 26.031h5.4v-8.68h-5.4zm0 95.466h5.4v-8.68h-5.4zm-26.997 86.77h5.398v-8.677h-5.397zm53.997 0h5.398v-8.677H80.98zm-32.392-60.737h16.196v-8.678H48.588zm-10.802-8.683H53.98v-8.677H37.787zm5.394-8.68h5.397v-8.68H43.18zm-10.788 17.363H43.19v-8.678H32.392z"/> - <path d="M37.786 416.543H53.98v-8.678H37.787zm5.394 8.682h5.397v-8.678H43.18zm16.195-8.682H75.57v-8.678H59.376zm5.409 8.682h5.398v-8.678h-5.398z"/> - <path d="M70.177 407.873h10.798v-8.678H70.177zm-10.802-8.683H75.57v-8.677H59.376zm5.409-8.68h5.398v-8.68h-5.398zm21.589 17.363H97.17v-8.678H86.374z"/> - <path d="M91.767 416.543h16.196v-8.678H91.767z"/> - <path d="M102.57 407.873h10.797v-8.678H102.57zm-10.803-8.683h16.196v-8.677H91.767zm5.408-8.68h5.4v-8.68h-5.4zm0 34.715h5.4v-8.678h-5.4zM0 407.873h10.798v-8.678H0z"/> - <path d="M5.394 416.543H21.59v-8.678H5.394z"/> - <path d="M16.196 407.873h10.798v-8.678H16.196zM5.394 399.19H21.59v-8.677H5.394zm5.393-8.68h5.398v-8.68h-5.398zm0 34.715h5.398v-8.678h-5.398zm-5.393-69.419h21.594v-8.68H5.394zm26.998 0h21.594v-8.68H32.392zm26.983 0H80.97v-8.68H59.374zm26.998 0h21.594v-8.68H86.373zM43.18 338.442h26.993v-8.68H43.18zm-37.786 0h26.993v-8.68H5.394zm75.586 0h26.993v-8.68H80.98zm26.983-34.704h5.398v-8.68h-5.397zM0 303.738h5.398v-8.68H0zm48.588-43.395h5.398v8.68h-5.398zm10.787 0h5.398v8.68h-5.398zm0-17.356h5.398v8.678h-5.398zm-10.787 0h5.398v8.678h-5.398zM10.787 477.293h10.798v8.68H10.787zm75.586-164.885h5.398v-8.68h-5.397zm-64.783 0h5.398v-8.68H21.59zm26.995-8.674H64.78v8.677H48.585z"/> - </g> - </g> -</svg> diff --git a/img/flags/4x3/bz.svg b/img/flags/4x3/bz.svg deleted file mode 100644 index 440fd9d..0000000 --- a/img/flags/4x3/bz.svg +++ /dev/null @@ -1,166 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" height="480" width="640" viewBox="0 0 640 480"> - <defs> - <radialGradient id="a"> - <stop offset="0" stop-color="#ffef5d"/> - <stop offset="1" stop-color="#ea5700"/> - </radialGradient> - <radialGradient id="b"> - <stop offset="0" stop-color="#952d1a"/> - <stop offset="1" stop-color="#570a00"/> - </radialGradient> - <radialGradient xlink:href="#a" id="c" gradientTransform="scale(1.22624 .8155)" cx="247.075" cy="238.328" fx="247.075" fy="238.328" r="35.95" gradientUnits="userSpaceOnUse"/> - <radialGradient xlink:href="#a" id="d" gradientTransform="scale(.93615 1.06821)" cx="321.991" cy="152.954" fx="321.991" fy="152.954" r="10.578" gradientUnits="userSpaceOnUse"/> - <radialGradient xlink:href="#b" id="e" gradientTransform="scale(1.2242 .81686)" cx="364.21" cy="237.789" fx="364.21" fy="237.789" r="36.034" gradientUnits="userSpaceOnUse"/> - <radialGradient xlink:href="#b" id="f" gradientTransform="scale(.95596 1.04607)" cx="468.154" cy="156.129" fx="468.154" fy="156.129" r="10.739" gradientUnits="userSpaceOnUse"/> - </defs> - <path fill="#ce1126" d="M0 0h640v480H0z"/> - <path fill="#003f87" d="M0 34.285h640v411.427H0z"/> - <circle cx="320" cy="240" r="188.572" fill="#fff"/> - <circle r="156.3" cy="239.04" cx="320" fill="none" stroke="#552300" stroke-width="3.939"/> - <path d="M301.942 73.191c14.136-15.166 26.918 2.353 26.577 10.562-.341 8.21-14.599 26.32-27.5 11.745 13.365 3.422 17.36-11.523 24.12-11.67-6.76.148-9.523-14.65-23.197-10.636zM154.803 192.115c-7.432-19.298 14.058-22.902 21.32-18.96 7.264 3.94 17.3 24.653-1.582 29.67 9.015-10.373-2.711-20.552.15-26.63-2.861 6.078-17.451 1.977-19.888 15.921zM471.949 173.03c19.361 7.589 7.533 25.754-.302 28.41-7.834 2.657-30.006-3.977-20.987-21.19 1.624 13.604 17.109 11.891 19.695 18.092-2.588-6.201 10.311-14.113 1.593-25.312zM218.797 377.414c-20.713-2.059-14.324-22.737-7.52-27.413 6.808-4.677 29.963-4.296 26.016 14.705-5.3-12.647-19.726-6.808-23.918-12.073 4.19 5.265-6.044 16.368 5.422 24.781zM428.134 362.448c.296 20.656-21.132 16.712-26.59 10.534-5.456-6.178-7.71-29.051 11.761-27.324-12.056 6.667-4.57 20.226-9.363 24.958 4.794-4.732 17.076 4.095 24.193-8.167zM169.894 152.87c-1.889-20.573 19.782-18.267 25.698-12.522 5.916 5.746 9.928 28.382-9.62 28.138 11.51-7.563 2.998-20.514 7.413-25.597-4.414 5.084-17.34-2.785-23.491 9.982zM192.09 345.878c-20.527-3.443-12.745-23.645-5.637-27.857 7.11-4.209 30.187-2.277 24.955 16.416-4.429-12.976-19.219-8.115-23.043-13.65 3.824 5.536-7.142 15.93 3.724 25.09zM354.291 74.042c18.641-9.195 24.32 11.687 21.063 19.241-3.255 7.554-23.065 19.458-29.911 1.284 11.268 7.91 20.353-4.651 26.725-2.407-6.372-2.244-3.66-17.052-17.877-18.118zM393.958 388.31c-9.24 18.512-26.49 5.292-28.501-2.678-2.011-7.97 6.509-29.341 23.036-18.978-13.794.465-13.373 15.923-19.814 17.96 6.441-2.038 13.306 11.38 25.28 3.696zM484.477 209.645c15.663 13.61-1.637 26.767-9.912 26.653-8.278-.113-26.909-13.763-12.58-26.962-3.082 13.352 12.08 16.91 12.414 23.61-.336-6.7 14.493-9.846 10.078-23.301zM221.504 100.838c4.674-20.132 24.537-11.23 28.354-3.938 3.815 7.291.508 30.037-17.986 23.753 13.311-3.62 9.298-18.56 15.09-22.021-5.792 3.46-15.6-8.019-25.457 2.207zM159.94 273.34c-18.24-9.957-4.191-26.491 3.918-28.144 8.108-1.654 29.258 7.711 18.116 23.654.123-13.695-15.455-13.942-17.23-20.416 1.775 6.475-12.027 12.705-4.805 24.907zM423.488 113.74c20.604-2.961 19.43 18.636 13.962 24.804-5.468 6.168-28.032 11.344-28.822-8.042 8.22 11.005 20.799 1.884 26.149 5.99-5.348-4.106 1.884-17.333-11.289-22.75zM306.3 408.115c-19.005 8.429-23.815-12.667-20.25-20.083 3.566-7.413 23.853-18.501 29.94-.063-10.933-8.363-20.53 3.817-26.803 1.316 6.274 2.5 2.952 17.183 17.114 18.83zM476.835 292.877c8.582 18.822-12.653 23.695-20.14 20.192-7.487-3.502-18.756-23.582-.207-29.71-8.374 10.888 3.945 20.352 1.453 26.59 2.492-6.238 17.304-3.01 18.894-17.071zM151.674 232.253c-11.94-16.924 8.02-25.608 16.032-23.538 8.011 2.068 22.826 19.735 5.738 29.161 6.202-12.238-7.668-19.28-6.381-25.867-1.288 6.586-16.444 6.131-15.39 20.244zM263.965 395.597c-19.536 7.136-22.9-14.238-18.837-21.395 4.062-7.159 25.056-16.86 29.875 1.943-10.34-9.077-20.74 2.434-26.831-.483 6.09 2.915 1.774 17.341 15.793 19.934zM258.33 81.541c11.575-17.171 26.956-1.848 27.913 6.312.956 8.161-10.275 28.26-25.315 15.864 13.74 1.309 15.334-14.072 21.987-15.266-6.653 1.193-11.712-12.993-24.585-6.91zM458.5 333.715c1.249 20.623-20.34 17.655-26.074 11.73-5.737-5.925-9.043-28.674 10.49-27.83-11.74 7.205-3.635 20.412-8.205 25.356 4.57-4.944 17.246 3.316 23.788-9.256zM453.19 139.277c20.407 4.088 11.981 24.036 4.741 28.02-7.24 3.982-30.243 1.323-24.416-17.197 4.009 13.109 18.949 8.718 22.594 14.37-3.644-5.65 7.65-15.693-2.918-25.193zM194.758 124.742c.198-20.659 21.526-16.21 26.832-9.904 5.307 6.307 7.014 29.227-12.411 27.04 12.214-6.38 5.053-20.113 9.959-24.731-4.906 4.618-16.972-4.495-24.38 7.596zM168.954 310.954c-18.573-9.334-5.099-26.334 2.949-28.26 8.047-1.926 29.505 6.716 18.92 23.027-.35-13.694-15.927-13.41-17.923-19.822 1.997 6.411-11.583 13.105-3.946 25.055zM392 91.014c19.476-7.296 23.017 14.046 19.017 21.239-4.002 7.192-24.914 17.067-29.89-1.696 10.413 8.99 20.72-2.605 26.833.262-6.115-2.867-1.92-17.329-15.96-19.805zM350.662 405.802c-15.146 14.203-26.69-4.125-25.787-12.293.904-8.17 16.372-25.303 28.241-9.907-13.099-4.296-18.11 10.355-24.866 10.056 6.756.297 8.496 15.246 22.411 12.144zM483.373 247.805c14.21 15.099-4.33 26.469-12.554 25.534-8.224-.935-25.384-16.371-9.794-28.078-4.414 12.979 10.311 18.027 9.967 24.727.344-6.701 15.416-8.357 12.38-22.183z" fill="#007f00"/> - <path d="M301.02 95.498c13.364 3.42 16.714-11.342 23.473-11.49-3.946 4.712-14.237 16.725-23.472 11.49zM301.942 73.191c14.136-15.166 26.918 2.353 26.577 10.562-11.472-20-15.062-16.915-26.573-10.562zM174.54 202.82c9.016-10.375-2.833-19.899.028-25.978 2.509 5.599 8.793 20.083-.027 25.977zM154.803 192.115c-7.432-19.298 14.058-22.902 21.32-18.96-23.15 1.343-21.955 5.904-21.32 18.96zM450.666 180.25c1.623 13.604 16.704 11.36 19.29 17.559-5.856-1.945-20.865-7.123-19.29-17.56zM471.949 173.03c19.361 7.589 7.533 25.754-.302 28.41 14.63-17.856 10.434-20.06.302-28.41zM237.296 364.714c-5.3-12.648-19.192-6.408-23.384-11.672 6.167.286 22.03 1.205 23.384 11.672zM218.797 377.414c-20.713-2.059-14.324-22.737-7.52-27.413-9.168 21.138-4.523 22.122 7.52 27.413zM413.302 345.658c-12.056 6.667-4.228 19.654-9.021 24.386-.416-6.114-1.302-21.859 9.021-24.386zM428.134 362.448c.296 20.656-21.132 16.712-26.59 10.534 22.208 6.634 22.666 1.943 26.59-10.534zM185.974 168.48c11.51-7.563 2.7-19.917 7.116-25 .887 6.066 2.984 21.697-7.116 25zM169.894 152.87c-1.889-20.573 19.782-18.267 25.698-12.522-22.653-4.927-22.747-.216-25.698 12.522zM211.405 334.435c-4.428-12.974-18.713-7.678-22.537-13.211 6.132.698 21.897 2.678 22.537 13.211zM192.09 345.878c-20.527-3.443-12.745-23.645-5.637-27.857-10.585 20.479-6.02 21.771 5.637 27.857zM345.45 94.568c11.268 7.91 19.685-4.71 26.057-2.466-5.375 3.014-19.299 10.613-26.057 2.466zM354.291 74.042c18.641-9.195 24.32 11.687 21.063 19.241-3.57-22.74-8.03-21.123-21.063-19.241zM388.496 366.653c-13.794.465-12.805 15.568-19.246 17.604 2.442-5.627 8.898-20.036 19.246-17.604zM393.958 388.31c-9.24 18.512-26.49 5.292-28.501-2.678 16.705 15.966 19.27 12.001 28.501 2.678zM461.984 209.338c-3.082 13.352 11.88 16.274 12.214 22.975-4.854-3.786-17.234-13.673-12.214-22.975zM484.477 209.645c15.663 13.61-1.637 26.767-9.912 26.653 19.83-11.93 16.624-15.407 9.912-26.653zM231.872 120.653c13.311-3.621 8.829-18.086 14.62-21.547-1.065 6.036-3.987 21.536-14.62 21.547zM221.504 100.838c4.674-20.132 24.537-11.23 28.354-3.938-19.974-11.697-21.544-7.251-28.354 3.938zM181.971 268.848c.124-13.696-15.123-13.363-16.896-19.837 5.56 2.662 19.79 9.681 16.896 19.837zM159.94 273.34c-18.24-9.957-4.191-26.491 3.918-28.144-16.789 15.878-12.907 18.59-3.919 28.145zM408.627 130.502c8.22 11.006 20.184 1.622 25.532 5.727-6.055 1.2-21.674 4.107-25.532-5.727zM423.488 113.74c20.604-2.961 19.43 18.636 13.962 24.804 3.759-22.71-.987-22.553-13.962-24.803zM315.987 387.974c-10.932-8.362-19.864 3.905-26.137 1.4 5.496-2.79 19.722-9.816 26.137-1.4zM306.3 408.115c-19.005 8.429-23.815-12.667-20.25-20.083 2.628 22.867 7.151 21.431 20.25 20.083zM456.483 283.363c-8.373 10.89 4.03 19.696 1.538 25.934-2.84-5.441-9.988-19.526-1.538-25.934zM476.835 292.877c8.582 18.822-12.653 23.695-20.14 20.192 23.03-2.717 21.561-7.198 20.14-20.192zM173.446 237.878c6.202-12.238-7.626-18.616-6.34-25.202 3.803 4.825 13.45 17.356 6.34 25.202zM151.674 232.253c-11.94-16.924 8.02-25.608 16.032-23.538-22.126 6.893-19.848 11.027-16.032 23.538zM274.995 376.147c-10.339-9.077-20.084 2.563-26.172-.352 5.672-2.419 20.344-8.475 26.172.352zM263.965 395.597c-19.536 7.136-22.9-14.238-18.837-21.395 1.064 22.99 5.674 21.862 18.837 21.395zM260.931 103.718c13.74 1.309 14.725-13.794 21.377-14.988-3.154 5.267-11.433 18.728-21.377 14.988zM258.33 81.541c11.575-17.171 26.956-1.848 27.913 6.312-14.486-17.974-17.545-14.37-27.913-6.312zM442.909 317.616c-11.74 7.205-3.319 19.824-7.89 24.769-.697-6.089-2.309-21.777 7.89-24.769zM458.5 333.715c1.249 20.623-20.34 17.655-26.074 11.73 22.49 5.618 22.73.914 26.073-11.73zM433.51 150.096c4.01 13.108 18.458 8.265 22.102 13.917-6.107-.891-21.8-3.367-22.102-13.917zM453.19 139.277c20.407 4.088 11.981 24.036 4.741 28.02 11.24-20.133 6.717-21.569-4.74-28.02zM209.187 141.869c12.214-6.38 4.698-19.549 9.602-24.166.27 6.121.78 21.883-9.602 24.166zM194.758 124.742c.198-20.659 21.526-16.21 26.832-9.904-22.04-7.155-22.61-2.476-26.832 9.904zM190.822 305.722c-.349-13.694-15.573-12.844-17.57-19.254 5.648 2.473 20.11 9.007 17.57 19.254zM168.954 310.954c-18.573-9.334-5.099-26.334 2.949-28.26-16.234 16.435-12.26 19.015-2.95 28.26zM381.123 110.554c10.414 8.99 20.06-2.729 26.176.137-5.653 2.466-20.275 8.642-26.176-.137zM392 91.014c19.476-7.296 23.017 14.046 19.017 21.239-1.26-22.983-5.858-21.815-19.017-21.24zM353.12 383.606c-13.1-4.295-17.455 10.218-24.207 9.918 4.258-4.442 15.354-15.75 24.207-9.918zM350.662 405.802c-15.146 14.203-26.69-4.125-25.787-12.293 10.077 20.713 13.868 17.872 25.787 12.293zM461.024 245.26c-4.413 12.98 10.178 17.375 9.832 24.076-4.447-4.25-15.767-15.318-9.832-24.075zM483.373 247.805c14.21 15.099-4.33 26.469-12.554 25.534 20.937-9.9 18.098-13.677 12.554-25.534z" fill="#005800"/> - <g fill="#730000" stroke="#000" stroke-width=".509"> - <path d="M349.05 120.326s.585-1.369 1.66-.585c.978.78 1.269 4.2 1.269 4.2l-1.563.78s.88-1.267-1.366-4.395zM340.17 150.998s.78-1.073-.293-3.42l1.563-.488s.584 1.855-.196 3.91l-1.074-.002M367.222 145.622l-3.71 2.249 1.857.88 4.491-2.639-2.638-.49M317.504 160.176c-.978.782-1.075 2.15-1.66 2.93-.487.781-1.953 1.855-2.05 3.028-.195 1.171-.292 1.952.195 3.517.583 1.561 3.026 8.497 2.05 13.773-1.075 5.274-.682 7.52-.29 8.303.387.782 1.561 2.93 2.245 2.93 1.562-.196.879-.683 1.464-1.66 1.465-2.54 0-22.175-.684-27.645-.487-4.2-2.443-8.01-2.635-8.4-.195-.49-.585-1.758-.88-2.54-1.463-3.518-3.222-6.543-3.222-13.874 0 0-4.787 1.077-8.887-8.205-2.148-4.688-5.275-4.2-8.985-5.76l1.66-1.078s3.126 1.564 4.689 1.564c1.563 0 1.075-3.126 1.075-3.126l1.563-1.565v6.841c0 3.126 4.297 7.423 6.836 8.693 1.563.78 3.615-2.443 3.127-5.567-.489-3.126 0-7.326 0-7.326l2.148 1.268s-.781 1.367-.585 2.149c.29.783 1.365-.78 2.146-1.564 0 0 .195.197.978.197 0 0-1.563 2.635-2.343 4.005-.78 1.271-.78 6.253-.78 8.11 0 1.856.684 6.152.684 7.519 0 .98 1.854 4.982 3.322 7.426.487.976 1.659 3.515 1.659 3.515 1.172 1.856 1.268 3.126 1.953 4.69.39.78 1.075 3.027 1.563 6.936.196.976.39 4.688.686 7.128.291 2.345 2.246.491 4.587-1.17 2.345-1.758 2.345-5.958 2.345-5.958s1.856-1.563 1.563-.684c-.196.977.978 1.954.978 1.954-1.464 3.32-.585 2.93.88 2.832 1.463-.198 6.54-4.006 6.54-4.006.685-.196 3.713-.196 3.224 0-.585.294-1.368 1.76-1.368 1.76l3.322-.392c-1.172.879-5.569 3.418-6.542 4.005-1.076.685-6.347 3.226-8.594 4.103-2.247.975-6.643 3.125-6.837 5.372-.1 2.248.291 8.303 0 10.256-.196 1.953-.979 10.649-.979 10.649h-10.45s2.051-7.62-.1-9.67c-2.05-2.149-6.836-8.402-9.961-10.553-3.127-2.05 2.05-.484 2.05-.484v-2.15l4.784 5.765s8.301-7.327 0-17.29c-2.636-3.126-5.274-7.912-7.324-8.403-2.148-.585-3.223-1.074-6.838 0-3.711 1.074-12.599 1.074-16.31-4.788l3.127-.488 2.634-1.074s-1.073 3.712 6.348 3.712c7.326 0 8.4 0 7.814-6.838l2.148-1.074 1.564 1.565s-1.075 3.711-.489 5.273c.489 1.562 3.127 2.638 5.178 4.2.879.685 1.563.783 2.148.783.879-.098 1.073-.098 2.246-1.271 1.758-1.954 1.367-1.856 3.125-3.417 0 0 .88-1.37 1.076-1.565l1.075 2.834h-.006z" stroke-width=".48863999999999996"/> - <path d="M319.069 155.002c.389-.388 1.172-1.857 1.855-3.126 1.173-1.954 2.54-3.126 4.102-5.57 1.464-2.246 2.051-5.565 1.464-7.909l1.367.782.1 3.711s1.856-1.565 2.638-1.953l.78.388s-5.86 6.058-11.33 15.826l-.978-2.147.002-.002zM267.7 134.688c.78 1.364 1.563 4.005 3.906 6.055l1.563-.488s-3.613-4.2-3.613-6.055l-1.857.488M276.877 132.336s.487 4.982-.78 6.838l1.562-.778s1.074-3.419.78-5.277l-1.562-.78v-.003zM328.352 116.611s-.295 7.032 1.074 11.331l1.855-.584s-.292-1.274 1.27-1.86c1.563-.487 5.273-2.049 7.128-3.614l-.584-1.56s-2.832 2.246-4.2 2.83c-1.269.49-2.05 1.075-3.125.784-1.076-.294-2.343-2.053-1.563-6.059l-1.855-1.268M349.05 149.434s-.487 4.981-.194 7.131l1.66.392s-.388-5.959.683-6.447l-2.15-1.076M356.48 153.149s-1.856 3.223-4.003 3.517l3.418-.685s.979-.488 2.443-2.05l-1.858-.782" stroke-width=".48863999999999996"/> - </g> - <g fill="#289400" stroke="#030" stroke-width=".509"> - <path d="M326.595 138.394l1.268.778 1.367.198s1.464 1.367 3.126 2.635c1.268 1.077 1.268-.194 1.268-.194l.78 3.126h1.075s-.294 2.05-.294 3.126l1.857-1.564 2.148 1.857s1.563-1.368 2.344-1.368c.78 0 1.073-.779 1.073-.779h.1c-5.177-2.444-7.422-4.982-5.86-7.62 2.54-4.395 6.74-1.564 8.105-.976l18.948 10.158s1.269-.782.39-1.565c-.979-.778-1.368-2.734-1.076-3.514.294-.782 2.443 2.44 3.516 2.733 1.075.293 3.514.685 3.514.685l-.097-.977s3.125 2.147 3.125 3.223c0 0 2.248-1.172 1.464-1.856-.78-.682 3.42 1.662 3.712 2.933l.878-.98c-.099 0 .294-3.126 1.367-4.591.978-1.463 2.052-1.856 2.052-1.856s.978-1.662 1.952-1.662c0 0-.978-.681-1.368-1.463-.487-.783-1.66-1.173-1.66-1.173s1.464-1.073 1.857-1.563c.39-.583.782-.685.782-.685s-2.249-1.855-3.812-2.146c0 0-.098-2.542-2.05-2.736h.88s-1.466-2.735-2.834-2.832c0 0 .88-.976 1.661-1.074 0 0-1.66-2.148-3.905-1.367l1.464-.584s-1.075-1.17-4.393-.585c0 0 .29-1.367-1.172-2.444 0 0-1.27.096-1.27 1.074 0 0-1.172-1.074-2.636-1.074-1.465 0 .488 1.564.488 1.564s-1.953-1.27-3.126-.879c0 0 .488-2.246-.781-3.42 0 0-1.462.782-1.856 1.758l-.39-.976s-1.954 2.344-2.343 1.66c-.293-.39-.585-2.049-.585-2.049l-1.17 1.759.194-2.444s-1.367.782-2.441 3.32c0 0-1.368 1.27-1.368 2.44 0 0-1.075-1.268-2.052 0-.88 1.367 0 1.077 0 1.077s-.39.485-1.367.681l.196.78s-1.268-.682-2.245-.388l.486 1.17s-2.539.197-2.635-1.853c0 0-2.148-1.076-2.442.097l-1.563.978s-.489-.978-1.368-1.171c-.978-.294-.196 1.267-.196 1.267s-.292-1.17-1.464-1.759c-1.17-.485-.195 1.077-.195 1.077s-1.563-1.27-.78-2.246c0 0-1.464 1.367-.78 2.638l-.978.682s-.489-.487-.392-.879c.1-.392-1.66 1.17-1.66 1.17s-1.074-2.537 0-2.537c.098 0-1.855-.098-2.147 2.15 0 0-1.27.097-2.442.485-1.27.392.88 1.271.88 1.271s-1.858-.391-2.932.196l.685.88s-.685-.685-2.345-.1c-1.758.487.39.781.39.781s-1.759-.39-2.637 0c-.88.392.293 1.074.293 1.074s-3.223-.976-3.712-.681c-.486.291 1.076 1.856 1.076 1.856s-1.954.488-2.343 1.954l1.758.681s-.78.39-1.173 1.174c-.387.781 1.173.388 1.173.388s-2.148 1.565-2.148 2.735c0 0 1.562.488 2.735-.682 1.172-1.17.39-.782.39-.782l.097.782s2.248-.975 2.248-1.561c0-.488-.39.78-.39.78l2.247-1.172 1.463.978v-.002h.001z" stroke-width=".48863999999999996"/> - <path d="M324.733 107.923l-.489-2.148 4.98.583.879-2.05s2.343 1.074 3.126 1.853c0 0 4.59-1.17 5.959-.682l-.586 2.15s4.198.291 5.567.78c1.27.488-.585 1.565-.585 1.565s4.785.583 6.837 1.854c2.149 1.269 2.149 2.345 1.076 2.636l2.634 4.2s-4.198.487-4.98 1.56c-.781 1.075-1.563-1.073-1.563-1.073l-.781 2.93s-2.636-1.369-3.71-2.344c0 0-1.269 1.564-.488 2.344l-4.787-3.125s-2.051-.292-2.051 1.564c0 0-2.342-2.638-2.93-3.42l-2.637.782s-.78-1.073-1.757-1.369c-1.075-.193-.294 1.37-.294 1.37l-1.563-1.857-1.562-1.852s-1.368 1.852-2.442 1.852c-.979 0-.979-1.269-.781-2.148.293-.781-3.126-.975-3.419 0 0 0-.978-3.907 2.636-4.98l3.712-.978-.001.003zM305.792 121.306l-1.66 1.563-.978-.487-1.953 2.147-.39-1.174-1.075 1.759-1.66-.585-.781 1.27-1.464-.294s-1.27 1.173-2.051 1.465c-.781.197 0-1.756 0-1.756s-1.173 1.952-2.052 1.952c-.78 0-.487-.879-.487-.879s-.487 1.266-1.464 1.464c-.88.098-.49-.976-.49-.976l-1.563 1.17v-.976l-.684-.292s.39-1.759 1.076-2.149c.683-.391-.684-1.56-.684-1.56l.684-.783s-1.955-.488-1.955-.097c0 0 .978-2.635 2.343-3.128l.1-2.929s1.367-1.17 2.636-1.27c1.366-.196-.39-2.247-.39-2.247l3.125-1.852.39-2.246 4.785.387.977-2.05 3.81.975 3.222-1.66 2.343 2.735 3.516.294s-.098 2.44-.098 3.126c0 0 4.198 1.268 4.688 1.66 0 0-.782 2.54-.782 3.028 0 0 2.932-.782 3.811-.586 0 0 .294 2.736.39 3.419 0 0 4.98 1.564 5.273 2.444 0 0-1.075.681-1.66 1.56 0 0 .584 3.03.584 4.006l-.39.586s-1.464-1.368-2.637-1.562l-.978 2.147-1.757-1.171-1.074.098s-.88-1.074-1.564-1.074l-.099-.978-1.367.88s-2.147-1.076-2.147-1.759c0-.585.098-1.565.098-1.565l-2.247 1.565s-.487-1.17-.388-1.66c.098-.489-.879 1.172-.879 1.172s-1.173-2.052-1.075-2.444l-.294 1.663s-2.343-.78-2.635-2.344v-.002z" stroke-width=".48863999999999996"/> - <path d="M274.534 130.877s4.103 2.054 4.103 3.03c0 0 1.076-2.15.488-2.932l1.564 1.077s.486-1.953-.099-2.541c-.489-.488 3.514-2.146 4.393.49 0 0 2.443-2.54-2.245-4.69 0 0-.39-1.561 2.442-1.17 0 0-.195-.978-.88-1.368h2.736s-1.66-1.369-4.103-1.758c-2.342-.392-.879-.683-.977-1.175-.196-.488 0-2.247 0-2.247s-1.367-.487-2.442.098l.39-.49s-2.54-.681-3.515-.096c0 0-1.465-.586-1.269-2.15 0 0-1.465-.097-2.147 1.464 0 0-1.368 1.564-3.222 1.564-.39 0-1.759-.782-1.759-.782l-1.173 2.736-1.855-.098.585 1.073s-2.832-.779-3.712 0c0 0 1.076 1.663.78 2.833 0 0-2.246.392-2.734.782-.586.387.78.682.78.682s-2.539.781-3.126 1.565l.979.778-1.173 1.566.978.193s-1.66.49-2.538.782c-.88.291 1.562.488 1.562.488l-1.17 1.073 1.855.291s-1.464 3.91-1.563 5.766c0 0 2.248-2.736 2.831-2.93l-1.757 2.93s3.322-1.073 3.616-1.566c.292-.583.584-1.072.584-1.072l.1 1.66s1.268-1.758 1.463-2.442c.1-.682 2.05.684 2.05.684v-.98s1.76.585 2.344.686c.684.097.78-.293.78-.293l1.66-.195-.293 1.364s1.171-.78 1.464-1.562c.196-.783.78 0 .78 0l.78-3.126h1.66l.005.008zM261.152 144.749l1.563 3.223c-1.27.096-3.126 1.561-3.126 1.561.292 5.374-1.073 5.08-1.073 5.08.387.977-.249 2.789-.249 2.789l7.769-4.644.097-.488 9.182-4.3.29.487 2.639-1.463 1.856 4.882-1.856 1.074c.099 1.66 2.051 4.593 2.051 4.593l2.443-.584 2.637-.98s.099 1.465.099.98c0-.395 2.83-1.367 2.83-1.367l1.27 1.27c.979-.098 2.734-2.445 2.734-2.445l2.051.783s.684-1.17.684-2.05c0-.782 2.54-.782 2.54-.782l1.758 1.268 2.246-1.853s.684 1.367 1.563 1.56c.978.099 3.419 1.953 3.419 1.565 0-.39 1.075-2.54 1.075-2.54l4.1 1.661c-.584-1.856-1.95-4.102-1.95-4.102s1.95-1.56 1.561-1.953c-.389-.391-1.562 0-1.562 0l1.17-2.344h-1.561l.486-.584-2.539-1.073 1.366-2.736c-.585-.685-7.324-2.052-7.324-2.052l1.563-1.465s-.781-1.17-1.563-1.17c-.781 0-4.883.097-5.079-.291-.099-.392-1.759-1.86-1.759-1.86l-2.54 1.86-1.269-.392-2.246.88s0 1.267-.295.388c-.291-.783-2.343-2.833-2.343-2.833-.39.682-3.026 3.808-3.026 3.808s-.39 1.663-1.27.488c-.978-1.17-3.027-2.44-3.321-1.463-.293 1.076-2.147 2.05-2.54 1.759-.39-.296-2.54-.098-2.735.487-.098.682-2.443 2.44-2.443 2.44-1.465-.68-3.81-.29-3.81-.29s-.683 1.074-.78 1.953l-4.784 1.267h.004v-.002zM305.302 184.31v-2.052l2.343 1.564 1.368-1.564 1.759 1.757 1.074-1.757v2.834l2.637-2.343 1.56.682v-2.246s1.858-3.128 1.076-3.712l1.563-.487s-2.638-2.638-3.42-3.128c-.78-.584-1.854-.584-1.854-.584s-2.052-2.054-3.419-2.638c-1.269-.488-2.052.584-2.052.584s-.78-1.561-2.148-1.856c-1.267-.29-1.267 1.074-1.267 1.074s-.98-.977-2.247-1.465c-1.27-.583-.391 1.172-.391 1.172l-4.494-1.365.585 1.365-4.198-1.07.485 1.561-2.929-.491-.194 1.273-4.2.78.781 1.366-2.637-1.074v1.857l-2.93 1.073 1.074.979s-3.905 1.856-4.688 2.441c-.78.488 1.563 1.561 1.563 1.561l-4.2-.585 1.564 1.369-3.711 3.42 2.636 1.856-1.563 2.342 3.906.78 1.563 2.638 3.223-.586v2.93l4.689-3.711s3.42 3.028 3.711 2.148c.195-.781.195-3.42.195-3.42h1.66v-2.634l1.269 1.073 2.148-3.128 2.831 3.91 2.148-4.981 3.126.487.005.001zM324.445 172.493l-.488-4.493-1.366 1.367.583-4.2-2.146-.392.78-4.1-1.562-.784.388-1.953 1.563-1.17 2.832-2.736 6.542.1.78-2.15 4.69.783c.78.88 3.22-1.759 3.22-1.759h.979l1.075 2.049s3.419-.488 4.98.585l-1.856 2.54 3.419.292 2.342.492 2.442-.784 3.127-.197.78 1.27h2.931l-.978 1.171 3.81 1.759-.78.782s2.147.782 3.71.782h.78s.781 1.853-.294 2.635c0 0 1.075 2.638 3.42 3.127 2.343.488 2.343.488 2.636 1.073.294.49 0 3.127-2.636 3.127v2.639s-2.052 1.855-2.344 2.635l-1.564-1.075s-1.365 1.565-1.365 2.639c0 0-3.42-4.495-4.69-4.692-1.366-.29-1.075 2.541-1.075 2.541l-3.709-3.126-.489 2.148-3.125-2.635-1.857 1.266-3.322-3.417-3.222.392 1.268-1.662h-3.906l-.78-3.416-.586 2.83-2.342-1.56-3.028 3.32s-.39-.393-.88-1.955c-.486-1.563-1.855 1.855-1.855 1.855l-1.075-2.44-1.27 2.44s-1.074-1.855-2.148-2.44c-.977-.488-2.05 2.928-2.341 4.493l.002.004zM325.03 182.746l.195-1.561 5.566-2.15 4.69-1.76 2.341-1.073 1.076 1.855 1.367-2.635 2.148 2.733 1.172-1.465 1.855 1.367h1.563l.293 2.054s3.907.291 4.199-.487c.293-.783.78 2.635.78 2.635l3.71.488.781 4.2s1.854 3.909 1.27 5.47c-.49 1.661-2.053-2.05-2.053-2.05s-.292 2.93-.585 3.711c-.195.78-4.98-.781-4.98-.781l-2.051 3.907s-2.147-3.126-3.125-3.126c-1.075 0-1.075 3.126-1.075 3.126s-3.126-3.712-4.494-5.276c-1.269-1.561-1.563 1.564-1.563 1.564s-2.05-3.42-2.05-4.395c0-1.074-1.857-2.15-1.857-2.15s-3.223 3.712-5.569 4.69c0 0 .294-2.344-.486-3.126-.781-.782-3.127 1.561-3.127 1.561s-1.66-3.613 0-7.325l.01-.001z" stroke-width=".48863999999999996"/> - </g> - <g fill="none" stroke="#004b00" stroke-width=".509"> - <path d="M350.816 124.522l.489 1.953s1.756-.391 2.93-.293c0 0-.292 1.562-.683 2.247 0 0 2.343-.39 3.419.292l-.49 1.17 2.736 1.173-2.54 2.05s4.1 1.464 4.884 2.639c0 0-2.636 1.854-3.028 1.758-.39-.197-.097.779.586 1.658l-2.247-.097s.879 2.053.78 2.832c-.098.782-3.711.585-3.711.585M368 137.222s.684-3.907-.388-4.884c0 0 2.538 2.15 4.198 2.246 1.759.101-.099-3.222-.099-3.222s2.443 1.269 3.615 1.562c1.172.196-.88-2.442-.88-2.442s.684-1.27 2.637-.098M331.674 114.854s.096-.879-.296-1.367c-2.342-3.223 2.443 2.444 3.418 2.638M339.286 116.122s1.563 1.17 2.345 1.17c.78 0-.488-3.126-.88-3.515-.39-.391 2.832 1.268 4.005 1.465 1.173.291 1.367-1.953 1.367-1.953s3.614.584 4.395 1.074M325.414 113.683s-.292-2.05-.388-2.93M300.81 123.456c-.196-.392.979-2.15.488-2.932 0 0 .684.588 1.367.686.586.097.388-2.249.388-2.249l.782.292s2.051-.977 1.66-1.759c-.392-.78 1.366 1.17 1.366 1.17s1.174-1.17 1.174-1.657c0-.493 1.365 1.17 1.365 1.17s1.464-.294 1.464-1.17c0-.88 1.856.29 1.856.29s.78-1.073.684-1.758M293.677 125.309s.877-2.05-.1-3.417M269.946 131.75c.098-.975.584-3.613.098-4.005-.487-.387.979.392 2.149.685M281.466 128.045c-1.173-1.174-1.857-1.759-3.71-1.759M261.642 134.582c.293-.681.78-2.343.487-3.32M287.13 183.034l1.269-2.638 1.563 3.71 1.073-2.343.39.782 2.343-2.54 2.54 3.81M337.04 167.309l1.66-3.32 2.248 1.173 1.075-3.223 2.342 1.465 1.367-3.027 2.637.682.194-2.148s1.856 1.073 2.344 1.854c.584.784 0-2.635 0-2.635l2.148.976s1.563-1.564-.585-2.444" stroke-width=".48863999999999996"/> - <path d="M343.587 163.114l2.344 3.42 1.951-2.247 1.759 3.808 2.246-1.367 3.222 1.856 1.464-1.17 3.516 2.539 1.465-3.027 3.125.976 2.05-3.514M282.349 155.203s1.368-2.347.88-3.421c-.588-1.074 2.83 1.857 2.83 1.857s.78-2.346.293-3.418c-.586-1.074 3.907 3.125 3.907 3.125s.782-3.613 0-4.397c-.781-.781 4.298 1.077 4.298 1.077s2.051-.585 1.27-1.661c-.783-1.074 3.415 1.561 3.415 1.561s.978-2.634 0-3.615c-1.073-1.072 3.127 1.271 3.127 1.271l-1.563-2.832 3.418.194-.292-3.126M334.208 186.94l2.246-1.073 1.954 1.953 2.149-3.418 2.636 2.539.39-2.539 2.831 1.174.587-1.566 3.125 1.663.292-2.345 1.562.49.295-1.565" stroke-width=".48863999999999996"/> - </g> - <path d="M283.126 298.109a69.836 69.836 0 0 1-5.958-12.99l42.29-37.22 42.292 37.12c-1.465 4.296-3.42 8.89-6.152 13.287l-.338.54c-.78-.29-3.18-1.225-3.18-1.225s-1.368 1.271-2.439 1.367c-1.465.197-2.735-1.267-2.735-1.267s-1.857 1.562-3.711 1.267c-1.857-.193-2.639-1.367-2.639-1.367s-1.952 1.564-3.32 1.271c-1.27-.296-2.149-1.176-2.149-1.176s-1.17 1.468-2.832 1.176c-1.562-.296-3.027-1.176-3.027-1.176s-2.439 1.072-4.004 1.27c-1.56.295-2.93-1.368-2.93-1.368s-2.05 1.367-2.83 1.367c-.782 0-3.712-1.367-3.712-1.367s-3.028.978-4.101.978c-.978 0-4.004-1.269-4.004-1.269s-2.832.78-4.1.78c-1.37 0-3.321-.78-3.321-.78s-2.34 1.075-3.614.78c-1.367-.291-2.442-.78-2.442-.78s-2.539 1.075-4.2.78c-1.563-.291-3.418-1.363-3.418-1.363s-.293.78-3.32 1.363h-.1" fill="#9dd7ff"/> - <path d="M319.462 205.114v42.783l-42.29 37.415c-4.102-11.917-4.394-22.564-4.394-27.154v-53.043h46.684" fill="#fff" stroke="#000" stroke-width=".684"/> - <path d="M319.462 205.114v42.783l42.193 37.415c4.1-11.917 4.394-22.564 4.394-27.154v-53.043h-46.587" fill="#ffd83c" stroke="#000" stroke-width=".684"/> - <g stroke="#000" stroke-width=".509"> - <path d="M292.18 289.22c3.179 1.722 2.102 1.179 8.692 3.513 5.373 1.86 11.622 2.735 20.704 2.735 7.947 0 12.42-.63 14.938-1.325 2.61-.749 3.228-1.802 3.228-1.802l-6.541 6.643s-26.298 1.42-31.06-1.66c-1.854-.978-5.86-4.2-9.96-8.106v.001z" fill="#730000" stroke-width=".48863999999999996"/> - <g fill="none"> - <path d="M330.762 276.816s8.4 4.785 0 13.967M292.966 289.709l12.11-11.53-1.366 15.435M310.054 294.98v-25.786M330.762 294.98v-27.35M320.307 295.469v-29.4" stroke-width=".48863999999999996"/> - </g> - <g fill="#ff0018"> - <path d="M310.054 270.566l-5.47 1.76 5.47.585v-2.345M320.307 266.554l-5.76 2.15 5.76.195v-2.345M330.762 268.118l-5.762 2.15 5.762.292v-2.444.002zM334.18 280.531c-.294-1.173 3.419-1.073 3.419-1.073s1.075 3.905 0 6.346l-3.125-.584s.293-2.636-.295-4.689z" stroke-width=".48863999999999996"/> - </g> - <g fill="#fff"> - <path d="M294.82 288.144l10.255-9.964-.489 5.959s-5.273 3.417-5.273 5.86l-4.494-1.855M300.282 290.198s1.075-3.125 4.004-4.687l-.293 6.251-3.71-1.564h-.001zM315.037 272.909s4.198-.586 7.325 0c0 0-.489 4.2 0 4.98 0 0-5.763-1.368-8.106.78 0 0-.782-3.906.78-5.76zM306.147 273.984s4.2-.586 7.324 0c0 0-.78 4.69-.293 5.471 0 0-4.69-2.638-7.03-.491 0 0-1.565-3.221 0-4.98z" stroke-width=".48863999999999996"/> - <path d="M305.85 279.446s4.199-.487 7.325 0c0 0-.488 4.2 0 4.984 0 0-5.47-1.271-7.815.78.001 0-1.074-3.907.49-5.764zM314.25 278.669s6.055-.779 9.18-.291c0 0-1.27 3.418.294 5.762 0 0-6.544-1.759-8.987.29 0 0-2.05-3.906-.487-5.761zM305.37 285.216l8.104.585s-.78 5.958-.293 6.74c0 0-6.542-1.564-7.815.583 0 0-2.149-5.468 0-7.91h.003v.002zM314.547 285.216s7.03-.49 10.255 0c0 0-1.859 4.496.196 8.4 0 0-9.183-2.634-10.454-.49 0 0-2.145-5.469 0-7.91h.003zM325.29 272.909s4.198-.586 7.324 0c0 0-.486 4.2 0 4.98 0 0-5.762-1.368-8.104.78-.002 0-.783-3.906.78-5.76zM325.29 278.669s4.198-.488 7.324 0c0 0-.486 4.2 0 4.981 0 0-5.762-1.269-8.104.783-.002 0-.783-3.909.78-5.764zM325.78 284.726s4.197-.582 7.42 0c0 0-1.074 6.545-.585 7.326 0 0-4.782-2.246-7.03-.29 0 0-1.367-5.177.194-7.036z" stroke-width=".48863999999999996"/> - <path d="M334.467 285.216s1.365 4.98 3.124 5.567l-2.342 2.833s-2.832-2.052-3.126-4.393c0 0 1.855-2.151 2.344-4.007z" stroke-width=".48863999999999996"/> - </g> - </g> - <g stroke="#000" stroke-width=".61"> - <path d="M355.405 298.694c-6.738 11.235-17.776 21.782-35.94 28.326-18.46-6.64-29.692-17.677-36.334-28.815l.1-.098c3.026-.589 3.32-1.367 3.32-1.367s1.855 1.074 3.418 1.367c1.66.29 4.2-.782 4.2-.782s1.074.49 2.44.782c1.27.29 3.615-.782 3.615-.782s1.953.782 3.32.782c1.269 0 4.102-.782 4.102-.782s3.027 1.268 4.003 1.268c1.075 0 4.101-.978 4.101-.978s2.931 1.37 3.711 1.37c.78 0 2.832-1.37 2.832-1.37s1.367 1.66 2.93 1.37c1.562-.196 4.004-1.269 4.004-1.269s1.464.88 3.027 1.171c1.66.295 2.832-1.17 2.832-1.17s.88.879 2.149 1.17c1.367.295 3.32-1.269 3.32-1.269s.78 1.173 2.638 1.367c1.855.294 3.711-1.267 3.711-1.267s1.267 1.464 2.734 1.267c1.075-.098 2.44-1.367 2.44-1.367s2.443.78 3.321 1.076" fill="#006ac8" stroke="none"/> - <path d="M353.744 301.238c-1.464.1-1.66-.879-1.66-.879s-1.95 1.662-3.808 1.368c-1.953-.29-2.832-1.562-2.832-1.562s-2.052 1.66-3.42 1.367c-1.366-.195-2.341-1.173-2.341-1.173s-1.27 1.467-2.931 1.173c-1.66-.195-3.127-1.173-3.127-1.173s-2.636 1.077-4.298 1.368c-1.66.295-3.027-1.562-3.027-1.562s-3.809 1.271-4.59 1.271c-.879 0-3.615-1.27-3.615-1.27s-1.854 1.173-2.929 1.173c-1.17 0-4.297-1.369-4.297-1.369s-2.931.784-4.298.784c-1.368 0-3.419-.784-3.419-.784s-2.54 1.074-3.906.784c-1.367-.295-2.442-.784-2.442-.784s-2.736 1.074-4.395.784c-1.66-.295-3.615-1.367-3.615-1.367s-.292.68-3.514 1.367h-.1" fill="none" stroke-width=".48863999999999996"/> - <path d="M293.091 305.222s-.273.639-2.82 1.2c-.054-.003-.69.15-.69.15.235-.042.426-.075.63-.12-.09.035-.29.108-.72.24 2.88 4.161 7.194 7.938 11.69 10.966 4.496 3.029 9.663 6.645 18.46 9.225 9.25-3.611 11.718-4.986 17.763-9.034 6.045-4.415 9.195-7.166 12.566-11.697-2.64 1.5-2.26 1.517-3.63 1.32-1.367-.29-2.37-1.29-2.37-1.29s-1.248 1.487-2.91 1.29c-1.66-.29-3.12-1.29-3.12-1.29s-2.17 1.476-4.32 1.38c-1.66-.1-3.03-1.56-3.03-1.56s-3.81 1.26-4.59 1.26c-.879 0-3.6-1.26-3.6-1.26s-1.866 1.17-2.94 1.17c-1.17 0-4.29-1.38-4.29-1.38s-2.923.78-4.29.78c-1.368 0-3.42-.78-3.42-.78s-2.436 1.073-3.9.78c-1.368-.29-2.46-.78-2.46-.78s-2.72 1.073-4.38.78c-1.66-.29-3.63-1.35-3.63-1.35z" fill="#5ac800" stroke-width=".5856"/> - <path d="M319.645 326.89c9.555-3.978 11.28-5.06 17.06-8.593-1.008.027-3.94-.92-2.88-1.221 0 0-1.174 1.058-2.345 1.058-1.076 0-4.2-1.363-4.2-1.363s-2.93.779-4.297.779c-1.368 0-3.419-.779-3.419-.779s-2.54 1.072-3.907.779c-1.368-.291-2.442-.779-2.442-.779s-2.831 1.072-4.394.779c-1.66-.291-3.615-1.367-3.615-1.367s-2.403 1.275-3.913 1.421c4.617 3.382 9.478 6.683 18.352 9.286z" fill="#ffd800" stroke-width=".5856"/> - </g> - <g stroke="#000" stroke-width=".509"> - <path d="M313.165 248.966c1.898-1.545 2.987-3.032 2.354-4.187-.714-.992-1.83.62-3.086.242 0 0-1.897-1.173-2.414-2.014-1.107-1.23-2.53-2.337-3.35-3.394-.87-.98-4.138-5.301-9.113-10.276-1.43-.933-1.103-4.464-2.128-5.56-.088-.764-9.944-10.522-13.461-14.052-1.422-1.046-2.172-1.725-4.67.54-1.973 1.78-2.683 3.617-.095 5.835l12.822 11.658c1.873 1.82 4.489 2.151 5.586 3.094l13.033 13.328c1.64 1.418 2.428 2.423 1.5 3.635-1.03 1.994.073 2.263.307 2.324.15.082 1.07.08 1.685-.394l1.03-.779z" fill="#b34b00" stroke-width=".48863999999999996"/> - <path d="M280.66 214.003l13.399 13.24" fill="none" stroke-width=".48"/> - <path d="M298.803 220.051c.208-.398.66-1.414 1.14-2.522.188-.437 3.793-6.186 5.59-6.355 0 0 11.21 8.155 11.218 8.263.038.44-4.862 7.77-5.288 7.212-.002 0-13.133-5.513-12.66-6.598z" fill="#fff" stroke-width=".54816"/> - <path d="M305.946 221.971c-1.535-1.192-4.073-2.355-6.12-3.72l-.92 1.92c.74.829 10.067 5.166 11.6 6 0 0-1.777-2.037-4.56-4.2z" fill="#ccb8c8" stroke="none"/> - <path d="M299.82 218.006c1.2.84 3.48 2.28 4.92 3.12 2.76 1.92 4.508 4.035 6.48 5.16" fill="none" stroke-width=".384"/> - <path d="M277.107 252.94l25.524-31.587c.478-.438 2.844-.462 3.165 1.985l-24.172 32.943c.001 0-2.753-.273-4.517-3.34z" fill="#782121" stroke-width=".48863999999999996"/> - <path d="M362.662 253.286c-.879.687-2.374.864-2.374.864-1.66-1.953-3.03-4.005-5.373-6.543l-25.493-31.356 2.638-2.54 22.95 26.862c.684.683 4.69 4.885 8.5 9.863.002.002.334 1.95-.848 2.85z" fill="#730000" stroke-width=".48863999999999996"/> - <path d="M338.115 220.253l-4.103-4.885s-3.125.39-3.71 2.053c0 0-2.247 3.712-8.204 4.103 0 0 1.66 6.934 8.594 10.645 0 0 2.54-7.132 4.981-8.402-.001.001 2.538-1.856 2.442-3.514z" fill="#fff" stroke-width=".48863999999999996"/> - <path d="M327.862 241.94c-.584-.198-1.172 0-2.051.488-.78.49-1.757.292-1.66-.686.098-.879 0-.78 1.074-1.463 1.564-.879 3.615-.978 4.884-.49l-2.247 2.15M355.693 214.195c-.196-.681-.389-1.364.293-2.243.684-.782.684-2.15-.979-1.467-1.66.685-2.245 2.54-.877 5.373l1.56-1.663h.003z" fill="#730000" stroke-width=".48863999999999996"/> - <path d="M327.277 242.525l28.91-28.719 7.127 7.62s-1.463-.588-2.05-.198c-.488.392.585 1.857.585 1.857s-1.367-.488-1.952-.098c-.684.389 0 2.05 0 2.05s-1.173-.879-1.76-.49c-.487.393 0 2.246 0 2.246s-1.562-.486-1.95-.098c-.392.392 0 2.053 0 2.053s-1.565-.782-2.345 0c-.78.78.39 1.856.39 1.856s-1.953-.782-2.734.39c-.78 1.172.098 2.246.098 2.246s-1.562-.78-1.952-.392c-.39.392 0 2.246 0 2.246s-1.367-.781-2.247.198c-.879 1.074.098 1.954.098 1.954s-1.268-.784-1.954-.395c-.684.395.196 2.247.196 2.247s-1.269-.88-2.148 0c-.88.98 0 1.953 0 1.953s-1.075-.977-2.148 0c-.979 1.076 0 2.15 0 2.15s-1.561-.78-2.147 0c-.683.78.194 1.857.194 1.857s-1.17-.684-1.952-.296c-.78.391 0 2.15 0 2.15s-1.17-1.271-1.66-.585c-.585.683.098 2.344.098 2.344s-1.075-1.271-1.66-.585c-.684.585.39 2.052.39 2.052s-1.953-.88-1.465-.88z" fill="#fff" stroke-width=".48863999999999996"/> - <g fill="#7e4b7e" stroke="none"> - <path d="M354.522 216.154l-2.247 2.246.488 7.717s.489-2.246 1.172-.685c0 0 .196-1.855.684-1.561-.393-.198-.098-7.717-.097-7.717M350.326 220.349l-1.66 1.56.585 7.718s.49-2.929 1.171-.584c0 0-.098-1.953-.098-2.639.002.49.002-6.055.002-6.055M332.845 237.648l-1.563 1.658.392 4.69s.487-3.026 1.17-.685c0 0-.195-1.95-.195-2.636 0 .489.196-3.029.196-3.029"/> - </g> - <g fill="none" stroke="#7e4b7e" stroke-width=".916"> - <path d="M330.886 218.304c1.076 1.074 4.103 4.98 4.103 4.98M332.26 220.454c-.195.588-.584 2.247-1.463 3.126M332.74 220.838c-.099.39-.099 1.661-1.463 2.932M333.229 221.434c-.196.681-.293 1.17-.78 1.661M333.526 222.02c0 .487-.29.585-.388.879M329.917 220.157c-.39.389-3.224 2.244-4.786 2.832M329.13 221.232c-.39.392-2.149 1.759-3.126 2.15M328.842 222.403c-.585.394-1.563 1.367-2.344 1.661M328.256 223.574c-.39.488-.977.88-1.464 1.174" stroke-width=".87936"/> - <path d="M311.302 224.65c.32-.589.875-1.744 1.6-2.8.921-1.342 1.318-1.568 1.8-2.04" stroke-linecap="square" stroke-width=".87936"/> - </g> - </g> - <path d="M217.011 303.389c1.465.682 0-4.788.487-6.838.586-2.149 4.785 5.274 6.838 6.253 2.148 1.073 15.235-5.179 15.235-5.179l3.126-5.86 1.66 4.786s3.613-4.2 4.688-5.762c1.075-1.562 0 3.127-1.075 4.688-1.075 1.564 3.126 2.15 2.636 5.276-.487 3.126 4.2-2.15 4.2-2.15l12.11 1.074s2.05-7.326 5.274-11.526l.977 4.691 4.98-5.078c5.568 14.652 17.29 30.575 41.314 39.267 22.561-8.205 34.184-22.76 40.237-36.633l6.74 6.939s5.274-1.566 6.25-2.149c1.074-.49 12.404 4.006 12.404 4.006s2.05.781 3.126 1.564c1.073.78.291-3.42.291-3.42s5.763 1.073 5.274 4.2c0 0 1.269-2.929 2.344-3.418 1.075-.488 3.613 2.638 4.2 3.712.488.979 12.893 2.54 14.65 3.614 0 0 1.368 1.565 1.368 2.638 0 0 2.638-.294 4.69-.294 0 0-1.564.779-1.564 2.442 0 1.564-.781 2.835-2.344 3.613-1.563.783 0 1.367 2.052 1.565 2.148.292 0 2.93-4.2 4.496 0 0-.978 2.341.781 3.122 0 0-3.615.295-4.2-.78 0 0-1.267 2.441-1.267 3.712 0 0-3.906-1.27-4.98-1.855 0 0-1.565 1.56-.49 2.341 0 0-7.128-.778-8.497-3.417 0 0-2.54.78-2.052 1.66 0 0-4.98-3.417-6.542-3.417l-1.074 1.755s-3.419-2.05-4.494-2.05c-.98 0-.196 1.562-.196 1.562l-4.784-2.931-1.855 2.93s-3.908-1.857-4.98-2.635c-.98-.78-1.268 1.562-2.051 1.853 0 0-1.563-2.145-3.712-1.853 0 0-.78 2.636-.487 3.418 0 0-6.056-1.269-7.13-1.565-1.075-.291-.487 1.27 0 2.347 0 0-4.493-1.27-5.47-2.054l-.292 2.054s-3.71-.295-4.492-1.076l-2.344 3.221h-3.419l-.78 2.832s-6.542-1.852-7.13-.778c-.487 1.072.294 2.634.294 2.634l-5.762-.78-.486 2.344s-6.643-2.053-8.205-1.076c0 0-2.052 2.15-3.42 2.638-1.266.585 0-.782 0-.782l-2.05-2.83s-2.343 1.268-3.71.78c-1.27-.588-5.47 2.05-6.839 1.268 0 0 0-1.858-1.072-2.344-.979-.489-2.832-.489-3.616.782 0 0-.78-1.076-2.147-3.127-1.27-2.15-3.127.195-3.127.195l-.293-2.54-3.614-.295c-2.149-.293-2.636-2.15-2.636-2.15s-5.567.586-6.349.296l1.366-1.271s-7.617 1.566-9.18.98c-1.66-.488 1.76-2.638 1.76-2.638s-7.034-1.755-8.401-2.05c-1.269-.293-8.888 1.265-9.963 1.265-1.075 0-1.563-1.758-1.563-1.758s-1.858 1.565-3.42 2.055c0 0-1.269-3.126-.486-3.42 0 0-4.98 1.366-5.275 2.638 0 0-1.269-2.051-1.075-2.93 0 0-2.343 3.712-3.418 4.491-1.076.783-.196-1.855-.196-1.855s-2.928 3.71-4.003 4.005v-2.638s-8.401 4.494-10.744 3.909c0 0 0-1.859.78-2.344l-5.274-.294c-1.267-.195-2.83-.78-4.198-1.074-1.269-.197 1.856-1.562 4.004-.978 0 0-5.86-2.148-7.619-1.076 0 0-.781-2.146 2.342-2.93 0 0-4.005-3.906-6.35-3.614 0 0 2.639-1.562 4.787-.783 0 0-2.442-6.64-4.005-7.421 0 0 5.568-.978 7.13-.193l.002-.002z" fill="#289400" stroke="#060" stroke-width=".488"/> - <path d="M208.9 188.803l71.1-36.826c.341-1.903-.74-3.399-1.854-4.885-20.333 9.972-38.838 22.072-61.432 29.403-1.27.49-12.502 5.177-18.264 12.114-1.827 1.832-1.962 4.535-1.962 4.535s.14 3.102.792 3.94c0 0 .17.852 1.231 1.532-.011 0 .657.328 1.12.163.516.097 1.356.09 2.529-1.964 1.173-1.955 4.981-6.447 6.74-8.012z" fill="#730000" stroke="#000" stroke-width=".48863999999999996"/> - <path d="M266.134 152.371l9.18-4.397s3.127 2.345 2.833 4.983c0 0 .683 6.055 8.205 10.255 0 0-6.35 7.91-17.483 8.596 0 0 1.277-10.44-1.065-13.47 0 0-.39.373-.221-.144.333-1.016-.226-4.5-1.651-5.268-.174-.095.113-.38.202-.555z" fill="#fff" stroke="#000" stroke-width=".48863999999999996"/> - <g fill="none" stroke="#7e4b7e" stroke-width=".814"> - <path d="M276.877 153.638c-1.953.782-8.301 4.102-8.301 4.102M273.853 155.587c-.1.977-.685 3.32 0 4.982M272.97 155.885c0 .487-.78 2.246.098 4.591M272 156.374c-.196.98-.39 1.565 0 2.641M271.213 156.96c-.195.585 0 .88 0 1.268M276.973 156.662c.292.78 2.93 4.883 4.493 6.544M277.366 158.515c.295.782 1.76 3.615 2.833 4.69M277.174 160.176c.39.977 1.173 2.736 1.953 3.711M277.174 162.134c.196.783.586 1.76 1.173 2.445" stroke-width=".7814399999999999"/> - </g> - <g stroke="#000" stroke-width=".509"> - <path d="M342.291 148.282l26.119 12.789c5.233 2.544 7.114.194 10.067 1.477l51.547 26.257c4.421 1.932 6.897 2.55 6.262 4.838-.108 3.634 1.718 3.689 2.217 3.727.361.097 2.104-.158 2.831-1.125.546-.63.566-.695.566-.695.584-.584.478-.636.66-.897 2.167-3.119 3.368-5.822 1.1-7.588-2.594-1.216-2.893 1.542-5.624 1.251 0 0-4.884-1.855-6.642-3.125-3.24-1.764-7.761-3.855-8.79-5.003-3.29-.616-28.063-14.55-42.097-21.544-1.505-1.26-2.325-5.92-5.283-7.479-.868-1.26-19.866-9.933-29.801-14.899-3.662-1.368-5.711-2.305-8.35 2.189-2.301 4.406-1.742 6.81 5.218 9.827z" fill="#b34b00" stroke-width=".48863999999999996"/> - <path d="M344.5 142.81l29.239 14.6" fill="none" stroke-width=".48863999999999996"/> - </g> - <g transform="translate(-40) scale(.96)" fill="#ffa54b" stroke="#000" stroke-width=".509"> - <path d="M309.73 165.12c-.203.61-.712.203-.712.408-.405 2.135-.305 3.253-.813 4.475-.712 1.424-3.256 2.748-3.154 2.645-2.034.609-4.475 3.054-8.442.814-.204-.101-.406-.306-.61-.508 0 0 1.117 4.169-2.95 6.204-1.424.713-15.77 8.244-15.77 8.244s-1.526 2.748-.509 6.512c.103.61.305 1.118-.305 1.526-.916.71-2.646 2.748-3.662 6.004 0 0-3.053-1.324-3.053-3.256 0-1.934 1.221-2.951 1.526-4.378.304-1.321 1.117-4.679.712-5.698-.406-1.119-2.238-1.526-2.95-1.933-.61-.408-1.425.406-1.322 1.322.103 1.018.813.812 1.628 1.018 0 0-.916 1.932-.813 3.356l-9.258 4.783s1.22 1.626 1.627 2.34c.405.712 1.321 10.175 4.069 14.653 2.747 4.477 3.663 3.256 4.273 3.866.508.508 1.321 1.321 2.034 1.934.712.508 3.865.811 4.477-.916.712-1.631 1.22-2.647 3.154-4.174 1.933-1.524 5.899-5.391 5.899-7.123 0 0 2.34 6.716 2.034 12.313 0 0 8.546 1.731 16.177 1.932 7.632.105 11.497-1.524 11.497-1.524s1.018-6.409.608-7.631c0 0 1.221 4.172 2.137 5.596 1.019 1.727 2.136 5.288 4.374 5.493 2.137.101 3.969-2.135 4.171-3.051v-6.716h8.647c0-.101 3.866 1.424 5.086 1.22 1.221-.102 1.933-1.22.813-1.628l-.405-.303c1.117 0 2.543.71 2.543.71h4.271c.103-.101 0-.408-.103-.508-.305-1.222-2.544-2.24-4.17-2.95-1.629-.609-3.459-1.324-4.681-1.424-1.932-.206-3.256-.101-6.206.408-.813.101-3.865.405-5.799 1.321-.509.306-1.019.406-.813-.916.306-1.426.204-7.835-1.32-10.583-1.12-1.932-1.018-3.562-.814-5.188.104-1.63.204-7.225 0-8.854-.306-1.627-2.544-3.867-6.611-4.375-3.866-.511-7.123-3.664-7.325-6.207-.305-2.542.408-7.223.814-9.257" fill="url(#c)"/> - <g fill="none"> - <path d="M292.44 153.63c-.712 3.253-.712 6.104-.609 9.257.102 2.135 1.118 4.577 2.034 6.715.609 1.426 1.425 3.052 2.746 3.867 3.562 2.34 6.919-.203 8.852-1.017.916-.308 2.341-1.626 2.747-2.442.508-1.219.303-2.135.812-4.475-.103.1.813-.408.712-.408.916-1.526.712-2.034 1.221-3.054.509-1.018-.609-2.136-1.832-1.931.609-1.933 1.019-4.072.405-5.904-.202-.608.51-2.235-.608-1.832-4.579 1.832-9.97 1.426-14.854 1.426-.406 0-.712-.815-1.321-.71-.103 0-.204.303-.307.505" fill="url(#d)"/> - <path d="M292.03 155.35c-.508-.406-.61-1.319 0-3.256.712-1.929 0-2.034 1.119-3.153 1.12-1.12.814-1.629 1.526-1.932.712-.206 2.849-.206 3.562-.508.609-.308 1.525-.714 2.947-.916 1.526-.308 4.579-.206 6.003.608 1.526.812 2.544 2.85 3.46 3.561 1.02.71 1.63 3.661 1.426 7.938-.307 4.272-1.12 3.458-1.12 3.458s-1.222-2.034-2.238-.308c0 0 0-1.626.204-2.848.102-1.219-.61-3.458.102-4.985 0 0-5.8 1.832-8.751 1.729-3.051-.202-7.322-.916-7.526-1.626l-.714 2.238" fill="#000"/> - <path d="M294.98 151.8c-.305-.61-1.832-2.85-.609-3.561 1.12-.612.406 2.745 1.935 3.458 0 0-.509 1.526-1.321.102l-.005.001z" fill="#fff" stroke="#fff"/> - <path d="M298.34 160.14c-.508 1.732-.712 2.138-.916 3.156M308.01 164.92c.204.61.404.303.914.405M309.33 161.36c.509-.609 1.221-.303.813 1.223"/> - <path d="M292.44 157.7c.916.303 1.832.608 2.748 1.02 1.526.61.61 2.845.204 4.271-.204.714-1.019 1.933-.609 2.546.508.811 1.119.303 2.035.403 0-.303.609-.508.813-.508.712-.1 1.12.508 1.627.308.61-.308.51-1.224.306-1.731M299.46 159.53c.102-.403 1.018-.811 1.526-.915 2.136-.405 3.661-.712 5.393.511M300.68 170.21c-1.729.408-3.561.71-5.188-.206M295.49 169.2c.813-.408 1.12-.816 2.137-.308 0-.101 1.12-.405 1.12-.405.812 0 1.322.304 2.136.812M295.39 169.6c.916-.306 3.358-.306 5.394.102"/> - <path d="M292.34 160.14c.713-.1 1.526-.916 3.154.306 1.12.712-1.832 1.426-1.322 1.324-1.32.202-1.729-.508-1.828-1.122 0-.202-.204-.508 0-.508h-.004zM300.68 160.95c.712-1.426 1.832-1.119 2.849-.816 1.019.306.713.105 1.629.613-1.12.203-.814.303-1.629.71-.916.408-1.729.61-2.341.206-.204-.206-.712-.508-.712-.916-.001.101.102.203.204.203z" fill="#fff" stroke-width=".305"/> - <path d="M293.76 161.36c.406 0 .712-.406.712-.814 0-.508-.306-.916-.712-.916-.507 0-.812.408-.812.916 0 .408.303.814.812.814zM302.41 161.56c.405 0 .712-.403.712-.916 0-.508-.407-.811-.813-.811-.405 0-.712.303-.712.811-.001.514.407.916.813.916z" fill="#000" stroke-width=".305"/> - </g> - <g id="g"> - <g fill="none"> - <path d="M345.85 213.66c-.608-.714-1.018-1.02-1.83-1.324l-2.036-1.016c-.712-.408-1.729-.508-2.34-.916M340.05 213.05c-.306-.203-.508-.304-.812-.51-.306-.101-.712-.101-1.02-.203-.102 0-.102-.204-.203-.204-.915-.102-1.831-.51-2.44-1.321M272.8 201.45c.914.71 3.152 2.24 3.356 5.19.204 1.525 1.019 3.051 1.019 3.051M264.05 201.86c.51 1.727.61 7.425 6.003 13.43M265.07 193.92c-.408 1.119-.916 2.137.202 2.951M279.72 207.56c1.12-2.545 4.578-2.342 4.578-4.782"/> - <path d="M284.81 207.25c-.306-2.849-.916-4.475-.405-8.647.203-1.223.405-5.9 0-8.141 0 0 1.629 7.833-3.662 9.363M315.13 212.34c0-3.97.916-6.209.916-6.209 1.221-5.593-1.119-7.731-.203-9.155.812-1.221 2.035-3.766.407-8.854 0 0 2.847 10.484-4.478 10.484-7.425 0-7.121-2.748-7.121-2.748"/> - <path d="M284.4 190.46c0 2.135 0 8.447 9.055 8.447 2.746 0 5.698-1.933 7.324-3.256M303.02 192.9c-.306-1.934-.306-4.375-.306-6.92M289.08 182.53c2.441-.308 4.376-.61 8.955-.61M298.34 175.6c.509 2.24-.304 5.8 3.866 6.309M306.58 174.79c-.61 1.629-.61 3.256-.814 4.375M305.97 181.92c1.73 0 4.985-1.121 9.054-.306M316.45 204.4c.813 1.63 1.018 3.765 3.561 6.207M288.27 199.21c.204 1.324-1.729 5.698-.306 9.262 1.322 3.559 1.12 7.631-1.12 11.089M293.46 200.54c-.813 1.626-2.238 3.256-2.544 4.68M297.52 203.59c0 1.018-2.744 8.749-4.68 10.886 0 0 3.561 1.424 3.051 6.614M303.22 200.03c0 1.324-.204 1.63.916 2.44M306.58 202.47c1.32 1.628 5.492 6.514 4.576 9.259M303.83 205.22c.306 1.018.306 6.309-.61 8.955M301.09 213.97c-1.12 0-2.746.814-3.052 2.747M306.78 213.66c1.118-.306 3.355 1.626 3.355 7.123M325.81 210.51c-2.136.61-3.052 1.732-2.44 1.119-1.12.916-2.138 1.526-2.138 1.526"/> - </g> - <path d="M289.79 197.99c.608 0 1.118-.408 1.118-.916 0-.411-.507-.816-1.118-.816-.509 0-1.02.405-1.02.816 0 .505.508.916 1.02.916zM312.89 198.3c.51 0 1.02-.405 1.02-.916 0-.505-.508-.811-1.02-.811-.607 0-1.118.306-1.118.811-.001.511.51.916 1.118.916z" fill="#000" stroke-width=".305"/> - <path d="M280.54 239.81c1.22-7.937 4.985-14.551 5.086-15.162 0 0 3.865.816 10.58 1.424 6.612.71 8.444.408 11.496.202 2.949-.303 6.815-.811 6.815-.811s1.221 2.44 1.322 4.883c.305 5.188 2.236 27.677 2.439 33.679 0 0 .814 3.562.814 12.312 0 9.567 2.645 28.999 2.645 39.381l-2.645.51s-14.446 1.119-14.446-.814c0-2.135-.813-27.066 1.322-42.126 0 0-.508-2.95-1.322-5.496-.813-2.442-4.375-10.073-4.375-11.698 0 0-5.695 16.072-6.001 18.824-.304 2.543-1.12 38.357-1.628 41.312 0 0-8.241 6.308-9.36 6.92-1.118.509-9.054-3.36-9.258-4.375-.306-1.118.814-13.229 4.578-33.176 1.425-7.123.61-8.44.61-10.375 0-1.934.103-27.474 1.322-35.412l.006-.002z" fill="#fff"/> - <g fill="none"> - <path d="M294.27 274.92c-.609 2.24-1.628 4.375-3.559 5.803M287.96 227.09c-.304 1.322-2.238 7.325-7.122 10.887M295.08 228.21c-1.12 3.562-5.493 22.693-6.309 45.383M288.47 280.72c-.204 2.135-1.322 18.012-1.628 20.756M286.03 304.53c-.509 1.117-2.746 10.375-2.746 18.619M315.53 287.23c-.204 1.933-1.019 15.668 3.561 27.98M300.58 229.23c-.305 2.237-.813 16.688-.813 17.806 0 1.117 1.628 2.747 2.441 3.054 0 0-1.628.509-1.933 6.003M296.2 243.17c-.308 1.727-1.934 8.547-3.054 11.295M306.27 229.03s4.884 1.018 5.188 0c0 0 1.628 29.512 3.866 45.891M304.14 232.79c0 1.934-.609 16.485-.609 16.485M305.97 251.41s1.931 2.745 1.425 4.066M289.59 227.4c1.629.508 3.053.812 3.053.812M297.83 229.84c-.307.814-.61 4.58-.61 4.58M305.97 273.29c.61.814 1.425 1.936.814 4.377"/> - </g> - <path d="M284.91 224.45s0-3.256 1.22-4.886c0 0 3.457.714 8.342 1.222 4.984.508 8.951.916 12.615.508 3.663-.406 7.428-1.322 7.428-1.322s1.017 4.784.506 5.496c0 0-3.968.814-8.341 1.016-4.477.303-11.902-.408-14.445-.812-3.359-.408-6.31-1.02-7.325-1.222z" fill="#9b5f00"/> - <path d="M288.06 224.85l.608-4.883 1.019.1-.203 5.088-1.424-.305M310.14 220.78l.103 5.496 1.221-.206-.102-5.597-1.222.307M294.47 220.78l-.406 5.291h.713l.712-5.291h-1.019" fill="#fff"/> - <path d="M276.77 320.81c-.305 1.322-.812 3.154-1.018 5.496 0 .508-.507 3.256 1.018 3.356 1.12.103 1.425-2.849 1.425-2.849s-1.019 3.256.305 3.664c1.832.403 2.034-3.562 2.034-3.562-.204 1.119-1.425 3.969.306 4.271 1.831.307 2.339-3.867 2.339-3.867s-1.525 4.174.305 4.275c1.729.1 1.729-4.072 1.729-4.072s-.916 4.988 1.526 4.58c1.321-.203 1.628-1.934 1.933-2.951.406-1.524 1.322-3.457.204-6.612-.812-2.341-.507-2.951-.507-2.951s-2.85 2.138-5.087 3.562c-1.019.609-6.514-2.34-6.514-2.34zM306.48 316.43c-.508-.307-.406 1.832-.609 2.846-.103 1.021.204 3.257 3.663 3.055 3.355-.307 6.715-1.018 8.851-.509 2.137.61 5.289.711 7.021.711 1.729 0 2.849-.202 3.661-.509.713-.303 2.238.408 2.95.408.713 0 1.831-1.119 1.73-1.832-.103-1.324-1.322-1.324-3.054-1.424-1.628-.203-3.865-.511-4.983-.916-1.12-.408-3.154-1.527-5.698-2.035 0 0-4.883.205-5.898.205-1.019 0-7.022.303-7.634 0z"/> - </g> - <g fill="none"> - <path d="M255.71 189.85c-.507.306-1.12-2.035.406-2.951 0 0 .406-1.931 2.035-2.136 0 0 1.321-1.832 3.257-1.626 0 0 2.235-1.525 3.051-1.324.812.102 2.849 2.136 2.95 2.85.204.711 0 1.933-.511 2.442-.609.608-1.018-.102-1.119-.916 0 0 .407 1.524-.813 2.135-1.219.714-1.119.206-1.219-.61 0 0-.308 1.63-1.12 1.832-.814.305-1.322-.408-1.935-.408 0 0 1.019.816.307 1.426-.713.508-1.526.303-2.036-.102-.509-.508-1.12-1.832-3.257-.61l.004-.002z" fill="#ffb366"/> - <path d="M265.68 186.09c-.51-1.629-2.137-3.054-4.069-2.848M263.85 187.61c-.306-.408-.408-.816-.712-1.22-.916-1.528-2.849-1.424-4.477-1.832M261.1 189.14c-.609-.406-.813-1.222-1.425-1.524-1.018-.408-2.034-.916-3.255-.714"/> - </g> - </g> - <g transform="translate(-40) scale(.96)" stroke="#000" stroke-width=".509"> - <path d="M439.14 165.12c.712-.306.51.61.61.916.306 1.321.306 2.748.813 3.967.608 1.119.812 1.526 1.83 2.035 1.627.916 6.407 3.562 9.767 1.424a3.11 3.11 0 0 0 .712-.508s-1.221 4.172 2.95 6.207c1.321.71 15.668 8.241 15.668 8.241s1.525 2.748.609 6.512c-.204.61-.405 1.118.204 1.526 1.019.71 2.644 2.748 3.766 6.004 0 0 2.947-1.324 2.947-3.256 0-1.934-1.219-2.951-1.525-4.375-.202-1.324-1.017-4.682-.608-5.698.405-1.118 2.135-1.526 2.847-1.936.714-.408 1.526.406 1.322 1.322-.102 1.018-.812.816-1.628 1.018 0 0 1.02 1.932.814 3.356l9.358 4.783s-1.221 1.629-1.628 2.34c-.509.715-1.425 10.175-4.171 14.653-2.748 4.477-3.663 3.256-4.171 3.866-.61.508-1.424 1.324-2.137 1.934-.608.508-3.764.814-4.476-.916-.712-1.628-1.221-2.647-3.153-4.174-1.934-1.524-5.9-5.391-5.9-7.123 0 0-2.341 6.719-2.035 12.313 0 0-8.443 1.731-16.176 1.936-7.631.102-11.497-1.528-11.497-1.528s-1.018-6.409-.61-7.631c0 0-1.22 4.172-2.033 5.596-1.118 1.727-2.236 5.291-4.375 5.493-2.236.104-3.968-2.135-4.271-3.051v-6.716h-8.646c0-.101-3.766 1.424-5.087 1.223-1.221-.105-1.832-1.223-.813-1.631l.407-.303c-1.119 0-2.544.71-2.544.71h-4.272c0-.101.103-.408.103-.508.307-1.219 2.545-2.24 4.272-2.95 1.628-.609 3.356-1.324 4.578-1.424 1.933-.203 3.256-.101 6.206.408.812.101 3.967.408 5.798 1.322.508.304 1.118.405.813-.915-.305-1.426-1.221-5.598.307-8.346 1.018-1.933.916-3.559.813-5.189-.204-1.729-1.118-5.598-1.118-7.325 0-5.699 4.375-8.039 8.24-9.262 4.272-1.319 7.121-2.748 6.92-5.288-.104-2.646.608-7.021.202-9.058" fill="url(#e)"/> - <g fill="none"> - <path d="M456.34 153.63c.916 3.356 1.12 4.169 1.12 5.291 0 1.219-.509 1.424-.104 2.748.713 2.441-.712 5.088-2.441 7.937-.813 1.32-1.424 3.052-2.746 3.866-3.356 2.135-7.427-.408-9.563-1.327-1.117-.505-1.729-1.319-2.033-2.135-.407-1.219-.509-2.34-.813-3.967 0-.306.103-1.219-.609-.916-1.22-1.424-1.018-2.034-1.524-3.051-.509-1.021.916-2.139 2.034-1.934-.61-1.933-.916-4.072-.306-5.904.204-.608-.508-2.235.51-1.832 4.577 1.832 9.969 1.426 14.854 1.426.404 0 .71-.812 1.32-.71.098-.001.2.305.301.508" fill="url(#f)"/> - <path d="M456.75 155.35c.508-.406.204-2.34-.306-4.375-.203-1.017-1.018-1.424-2.136-2.542-1.12-1.122-1.525-1.122-2.236-1.424-.609-.206-2.034-.206-2.746-.508-.61-.308-2.238-.105-3.766.101-2.036.304-3.153.202-4.679 1.018-1.526.814-2.746 1.73-3.256 3.256-.406 1.118-1.12 2.542-.814 6.817.204 4.272 1.019 3.458 1.019 3.458s1.12-1.628 1.832-.61c0 0-.103-2.24-.305-3.561-.103-1.222 0-2.748.509-4.58 0 0 4.679 1.732 9.054 1.732 3.053 0 7.021-.306 7.123-1.017l.71 2.235h-.003z" fill="#000"/> - <path d="M450.44 160.14c.61 1.732.104 1.222.408 2.34M440.57 164.51c0 .812-.61.61-1.019.61"/> - <path d="M456.85 158.82c-.916-.713-2.645-.204-3.46.102-1.525.71-.712 2.24-.204 3.664.204.71 1.02 1.727.511 2.441-.407.812-.713.408-1.629.51.104-.308-.812 0-1.117 0-.61-.102-.916.403-1.426.202-.608-.304-.508-1.22-.306-1.729M449.32 159.53c0-.403-1.321-.811-2.745-.915-2.238-.102-2.442.104-4.172 1.322M453.9 168.89c-.405-.608-1.018-.916-2.137-.405 0-.204-1.524-.406-1.524-.406-.812 0-1.321.303-2.136.71M453.69 169.4c-.916-.609-3.256-.201-5.596-.201M448.3 170.01c1.73.512 3.46.816 5.188 0"/> - <path d="M456.44 160.14c-.712-.1-1.018-.916-3.153.306-1.119.61 1.832 1.426 1.425 1.324 1.22.202 1.628-.508 1.729-1.122-.001-.203.203-.508-.001-.508zM448.1 160.95c0-.816-1.829-1.119-2.847-.816-1.019.306-.61.105-1.526.613 1.02.203.712.303 1.526.71.914.408 1.12.814 2.339.206.306-.105.712-.508.813-.916-.101.101-.202.203-.305.203z" fill="#fff" stroke-width=".305"/> - <path d="M455.12 161.36a.802.802 0 0 1-.813-.814c0-.508.307-.916.813-.916.405 0 .712.408.712.916 0 .408-.307.814-.712.814zM446.37 161.56c-.406 0-.712-.403-.712-.916 0-.508.403-.811.812-.811.409 0 .712.303.712.811 0 .514-.303.916-.812.916z" fill="#000" stroke-width=".305"/> - </g> - <use height="100%" width="100%" xlink:href="#g" transform="matrix(-1 0 0 1 748.816 0)" fill="#730000"/> - <g fill="none"> - <path d="M491.64 193.51c.508.206 1.934-2.033.508-3.051 0 0-.508-1.932-2.136-2.034 0 0-1.322-1.933-3.257-1.63 0 0-2.136-1.524-2.948-1.421-.916.202-2.951 2.237-3.053 2.95-.102.609 0 1.832.508 2.441.61.51 1.02-.104 1.119-1.02 0 0-.405 1.529.813 2.24 1.221.71 1.119.1 1.221-.71 0 0 .306 1.626 1.12 1.932.812.303 1.321-.408 1.934-.408 0 0-1.018.815-.305 1.324.713.61 1.525.303 2.035-.104.61-.404.306-1.727 2.441-.509z" fill="#730000"/> - <path d="M482.49 189.75c.506-1.73 2.235-3.153 4.067-2.849M484.42 191.28c.203-.411.305-.816.61-1.224.915-1.524 2.948-1.524 4.576-1.832M487.06 192.7c.61-.408.814-1.118 1.426-1.421 1.018-.512 2.136-.916 3.256-.714"/> - <path d="M482.31 186.77c-.896.716-1.837 1.798-1.906 2.281-.103.61-.008 1.827.5 2.438.551.461.949-.017 1.095-.781-.059.463-.071 1.465.844 2 1.22.71 1.118.095 1.219-.719 0 0 .312 1.635 1.125 1.938.813.306 1.325-.406 1.938-.406 0 0-1.026.804-.312 1.312.712.61 1.522.309 2.031-.094.61-.408.3-1.722 2.438-.5.267.106.804-.452 1.031-1.156l-7.688-5.531-2.315-.782z" fill="#730000" stroke="none"/> - <path d="M480.68 188.19c-1.502 2.582.5 4.132 1.164 2.619-.193 2.386 1.606 2.292 2.285 1.538.658 2.512 1.83 1.395 2.909 1.164-1.223 2.29 1.479 1.609 2.12 1.081.924-1.362 1.356-.277 2.036-.416l1.164-1.247M484.38 187.23c-1.686.896-2.512 2.137-2.535 3.699M486.71 188.73c-1.687.896-2.512 2.137-2.535 3.699M489.58 190.68c-1.687.897-1.765 1.722-2.493 2.826"/> - </g> - </g> - <g fill="#5ac800"> - <path d="M238.496 310.714l-.196-4.493 1.857 1.564.487-3.42c.781-.198 2.052 1.37 2.052 1.37l-.196-3.422 2.832 3.126s-.195-2.638.78-4.202c0 0 2.147 1.858 2.147 4.006 0 1.86 1.857-2.639 1.857-2.639.488 1.565 1.563 4.983 1.563 4.983l1.268-1.857 1.075 3.907 2.344-3.42 1.854 4.008 4.2-.295.489 2.342 1.855-2.05 2.443 1.562s2.051-.585 3.125-.585c1.075 0 2.345 1.37 2.345 1.37s.78-1.37 1.563-1.861c.78-.486 1.857.783 2.146 1.565l1.564-2.832s2.052 2.051 2.343 2.832c0 0 .292-2.343.78-3.127.49-.78 1.27.295 1.857 1.271l1.269-4.2s1.368.29 2.343 1.857c1.072 1.56 1.072-2.344 1.072-2.344s2.344 3.126 2.93 5.274c0 0-16.172 5.552-27.577 4.034-13.423-1.787-24.48-4.326-24.48-4.326M349.347 310.224s.78-2.15 1.858-3.226c0 0 2.05 2.445 2.05 3.226 0 0 .584-.293 1.66-1.076l1.563 1.562 1.858-1.267 1.758 1.56 3.222-1.367 1.27 1.368 4.98-.582 1.855.78 1.76-2.248 1.66 1.759 2.636-2.638s1.27 1.073 1.563 1.857c0 0 2.148-1.072 2.637-1.857 0 0 2.05-.78 2.343.488 0 0 1.269-.977 1.173-2.05-.098-1.073 1.464-.294 1.952 1.073 0 0 .585-2.146 2.147-2.342 0 0 1.073 1.266.78 3.616 0 0 2.344-1.86 3.419-2.056 0 0 .488 2.639-.293 4.986 0 0 2.441-4.007 2.931-2.638.196.78.781 3.418.196 5.272l2.148-1.367.78 2.638 2.342-.489s-13.864 2.124-26.928.878c-13.063-1.246-25.32-5.86-25.32-5.86M339.69 319.92c.634-.392-4.365 10.28-16.484 10.847-16.86.79-31.274-7.622-31.274-7.622s1.76-2.93 2.832-3.713c0 0 2.343 1.859 3.125 4.2 0 0 .294-1.562 1.075-2.929 0 0 2.93 1.365 3.419 3.224 0 0 1.075-1.858 1.857-2.344.78-.588 1.563 2.05 1.563 3.615 0 0 1.854-1.956 2.93-2.053 0 0 2.051.976 2.637 4.396 0 0 1.953-1.855 2.636-1.565 0 0 2.344 1.565 1.757 3.712-.292 1.174 2.344-1.364 5.569-2.147l2.83 2.147s2.637-3.514 3.42-4.69c0 0 2.148.784 2.148 2.056 0 0 .978-3.714 1.758-4.104.78-.488 1.854 1.171 1.854 2.248 0 0 .295-2.834 1.858-3.42 0 0 1.563 1.074 1.563 2.151-.003-.002 1.657-3.226 2.927-4.009z"/> - </g> - <g fill="none" stroke="#060" stroke-width=".509"> - <path d="M238.496 310.714l-.196-4.493 1.857 1.564.487-3.42c.781-.195 2.052 1.37 2.052 1.37l-.196-3.42 2.832 3.126s-.195-2.638.78-4.2c0 0 2.147 1.857 2.147 4.005 0 1.859 1.857-2.638 1.857-2.638.488 1.566 1.563 4.984 1.563 4.984l1.268-1.859 1.074 3.906 2.343-3.417 1.856 4.005 4.2-.295.489 2.345 1.855-2.051 2.443 1.564s2.05-.585 3.125-.585c1.075 0 2.344 1.365 2.344 1.365s.78-1.365 1.563-1.854c.78-.488 1.855.78 2.145 1.561l1.564-2.83s2.052 2.05 2.344 2.83c0 0 .292-2.341.781-3.125.49-.78 1.268.294 1.856 1.27l1.269-4.2s1.367.292 2.342 1.856c1.075 1.561 1.075-2.346 1.075-2.346s2.343 3.128 2.932 5.275M349.347 310.224s.78-2.146 1.856-3.222c0 0 2.05 2.443 2.05 3.222 0 0 .586-.293 1.661-1.072l1.563 1.56 1.856-1.267 1.759 1.562 3.223-1.367 1.266 1.367 4.98-.583 1.859.78 1.756-2.244 1.661 1.755 2.636-2.635s1.27 1.07 1.563 1.855c0 0 2.149-1.074 2.637-1.855 0 0 2.05-.781 2.342.485 0 0 1.269-.976 1.172-2.05-.099-1.073 1.464-.291 1.953 1.078 0 0 .584-2.15 2.148-2.348 0 0 1.073 1.27.78 3.616 0 0 2.343-1.855 3.418-2.052 0 0 .489 2.635-.292 4.982 0 0 2.442-4.005 2.93-2.637.196.78.782 3.42.196 5.273l2.148-1.367.781 2.638 2.342-.49M291.853 323.165s1.759-2.93 2.83-3.712c0 0 2.345 1.857 3.127 4.2 0 0 .295-1.561 1.075-2.929 0 0 2.93 1.364 3.418 3.223 0 0 1.076-1.856 1.857-2.343.78-.589 1.563 2.05 1.563 3.613 0 0 1.856-1.955 2.93-2.052 0 0 2.051.976 2.637 4.397 0 0 1.954-1.856 2.636-1.565 0 0 2.344 1.565 1.758 3.712-.293 1.172 2.344-1.365 5.568-2.147l2.83 2.147s2.637-3.515 3.42-4.69c0 0 2.148.782 2.148 2.054 0 0 .978-3.714 1.759-4.102.78-.488 1.853 1.17 1.853 2.246 0 0 .295-2.833 1.859-3.42 0 0 1.563 1.074 1.563 2.15 0 0 1.66-3.222 2.93-4.007" stroke-width=".48863999999999996"/> - </g> - <g fill="#fff"> - <path d="M319.462 361.9c21.977.198 34.967-7.815 42.097-12.601 16.7-11.231 20.217-11.623 22.952-11.43 3.127.297 7.714 1.37 7.91 4.106.294 4.2-6.542 6.055-10.45 6.055-4.003 0-14.456-2.638-14.456-2.638l-2.736 1.858c1.857.88 23.247 8.009 27.349 1.27 4.197-6.837 8.399-17.877 8.399-17.877s-4.688-8.4-15.14-8.4c-10.548 0-20.805 6.644-27.64 11.621-6.838 4.982-15.43 11.82-38.287 11.82-22.855 0-31.546-6.838-38.382-11.82-6.836-4.98-17.093-11.622-27.542-11.622-10.547 0-15.237 8.401-15.237 8.401s4.2 11.04 8.4 17.877c4.1 6.739 25.492-.39 27.345-1.27l-2.636-1.858s-10.548 2.638-14.456 2.638c-4.004 0-10.841-1.855-10.548-6.055.196-2.736 4.785-3.811 7.912-4.106 2.734-.193 6.25.199 22.95 11.43 7.134 4.786 20.124 12.504 42.196 12.602"/> - <path d="M284.106 336.01s0-1.86-.296-4.592c-.39-3.518-2.44-4.397-4.1-3.908-1.074.387-3.222 3.029-3.222 3.029v.098a31.068 31.068 0 0 0-3.028-1.857c.782-.88 5.274-3.614 6.349-3.614.978 0 14.455 5.47 18.75 9.18 1.076.98 1.858 7.035 1.27 8.986-7.227-1.855-11.915-4.59-15.726-7.227v-.098M277.654 349.69s-2.93 2.929-3.026 8.302c-.1 6.348 4.492 6.643 7.52 6.543 3.614-.1 6.542-2.148 6.446-8.889 0 0-5.96-2.54-10.94-5.958M354.723 336.01s.1-1.86.392-4.592c.387-3.518 2.342-4.397 4.003-3.908 1.074.387 3.222 3.029 3.222 3.029v.098c.976-.686 1.95-1.27 3.026-1.857-.78-.88-5.272-3.614-6.25-3.614-1.073 0-14.55 5.47-18.848 9.18-.98.98-1.76 7.035-1.27 8.986 7.326-1.855 11.915-4.59 15.725-7.227v-.098M361.165 349.69s2.93 2.929 3.028 8.302c.195 6.348-4.495 6.643-7.52 6.543-3.615-.1-6.446-2.148-6.446-8.889 0 0 5.958-2.54 10.94-5.958"/> - </g> - <g fill="#69f"> - <path d="M271.309 345.389s-10.452 2.638-14.358 2.638c-4.003 0-10.841-1.853-10.547-6.056.195-2.736 4.785-3.808 7.91-4.1 2.344-.2 5.372.096 16.995 7.518M367.52 345.389s10.45 2.638 14.456 2.638c3.907 0 10.743-1.853 10.45-6.056-.195-2.736-4.784-3.808-7.91-4.1-2.346-.2-5.374.096-16.996 7.518M284.106 336.106c-1.075-.782-2.149-1.566-3.128-2.344-1.464-1.076-2.93-2.053-4.494-3.126 0 0 2.149-2.736 3.223-3.03 1.66-.584 3.71.292 4.1 3.809.294 2.736.294 4.692.294 4.692M276.973 363.658c1.858 1.076 3.907.979 5.178.879 3.614-.098 6.543-2.149 6.446-8.888 0 0 4.491 2.247 11.817 4.005 0 0 1.173 1.464 1.367 4.393.296 2.445-1.367 5.08-3.319 4.887 0 0-10.255-1.857-16.504-2.93-3.615-.682-4.981-2.344-4.981-2.344M354.723 336.106c1.073-.782 2.149-1.566 3.221-2.344 1.369-1.076 2.832-2.053 4.396-3.126 0 0-2.148-2.736-3.222-3.03-1.66-.584-3.614.292-4.003 3.809-.295 2.733-.392 4.69-.392 4.69M361.846 363.658c-1.855 1.076-3.907.979-5.177.879-3.614-.098-6.446-2.149-6.446-8.888 0 0-4.494 2.247-11.72 4.005 0 0-1.27 1.464-1.466 4.393-.196 2.445 1.465 5.08 3.32 4.887 0 0 10.352-1.857 16.506-2.93 3.614-.682 4.98-2.344 4.98-2.344"/> - </g> - <g fill="none" stroke="#000" stroke-width=".712"> - <path d="M319.462 361.9c21.978.196 34.967-7.816 42.097-12.601 16.7-11.233 20.217-11.622 22.951-11.428 3.127.293 7.718 1.368 7.91 4.102.295 4.2-6.542 6.055-10.451 6.055-4.003 0-14.455-2.633-14.455-2.633l-2.734 1.856c1.857.88 23.244 8.01 27.346 1.267 4.2-6.837 8.398-17.874 8.398-17.874s-4.688-8.404-15.14-8.404c-10.546 0-20.802 6.645-27.64 11.626-6.836 4.981-15.429 11.82-38.285 11.82-22.855 0-31.545-6.839-38.382-11.82-6.836-4.98-17.094-11.626-27.543-11.626-10.546 0-15.235 8.404-15.235 8.404s4.198 11.037 8.4 17.874c4.101 6.74 25.492-.387 27.346-1.267l-2.635-1.856s-10.55 2.633-14.454 2.633c-4.006 0-10.842-1.851-10.55-6.055.196-2.736 4.785-3.808 7.912-4.102 2.733-.194 6.248.197 22.95 11.428 7.132 4.788 20.122 12.506 42.194 12.602z" stroke-width=".6835199999999999"/> - <path d="M271.309 345.389s-10.453 2.638-14.356 2.638c-4.005 0-10.841-1.856-10.55-6.056.196-2.736 4.786-3.811 7.912-4.1 2.341-.2 5.371.096 16.994 7.518zM367.51 345.389s10.452 2.638 14.456 2.638c3.906 0 10.743-1.856 10.45-6.056-.195-2.736-4.783-3.811-7.908-4.1-2.344-.2-5.374.097-16.994 7.518h-.004zM284.106 336.106c-1.076-.782-2.149-1.566-3.128-2.344-1.462-1.076-2.929-2.053-4.492-3.126 0 0 2.149-2.736 3.222-3.03 1.66-.584 3.71.292 4.1 3.813.298 2.73.298 4.687.298 4.687z" stroke-width=".6835199999999999"/> - <path d="M284.106 336.01s0-1.859-.296-4.592c-.388-3.518-2.44-4.397-4.1-3.908-1.075.39-3.224 3.029-3.224 3.029v.098a31.881 31.881 0 0 0-3.028-1.857c.782-.88 5.274-3.614 6.35-3.614.979 0 14.454 5.47 18.751 9.183 1.076.978 1.856 7.032 1.27 8.987-7.228-1.86-11.917-4.593-15.728-7.228M277.654 349.69s-2.929 2.929-3.026 8.302c-.098 6.344 4.492 6.641 7.52 6.543 3.615-.1 6.542-2.148 6.448-8.892 0 0-5.958-2.54-10.94-5.96l-.002.007z" stroke-width=".6835199999999999"/> - <path d="M280.102 351.149s-2.341 2.441-2.733 6.446c-.196 3.127 1.855 4.883 4.492 4.688 3.711-.193 5.178-5.272 3.42-8.105l-5.179-3.03" stroke-width=".6835199999999999"/> - <path d="M276.973 363.658c1.856 1.074 3.905.977 5.176.879 3.615-.1 6.542-2.15 6.448-8.89 0 0 4.492 2.247 11.818 4.005 0 0 1.173 1.464 1.366 4.397.295 2.442-1.366 5.08-3.318 4.883 0 0-10.257-1.857-16.506-2.93-3.617-.686-4.984-2.344-4.984-2.344zM354.723 336.106c1.075-.782 2.149-1.566 3.223-2.344 1.368-1.076 2.832-2.053 4.395-3.126 0 0-2.148-2.736-3.223-3.03-1.66-.584-3.614.292-4.003 3.813-.294 2.732-.39 4.688-.39 4.688h-.002v-.001z" stroke-width=".6835199999999999"/> - <path d="M354.723 336.01s.1-1.859.392-4.592c.389-3.518 2.342-4.397 4.003-3.908 1.075.39 3.222 3.029 3.222 3.029v.098a31.881 31.881 0 0 1 3.028-1.857c-.782-.88-5.274-3.614-6.252-3.614-1.074 0-14.55 5.47-18.848 9.183-.98.978-1.76 7.032-1.27 8.987 7.326-1.86 11.915-4.593 15.725-7.228M361.165 349.69s2.93 2.929 3.028 8.302c.195 6.344-4.495 6.641-7.522 6.543-3.613-.1-6.444-2.148-6.444-8.892 0 0 5.956-2.54 10.938-5.96v.007z" stroke-width=".6835199999999999"/> - <path d="M358.726 351.149s2.345 2.441 2.735 6.446c.295 3.127-1.857 4.883-4.493 4.688-3.71-.193-5.078-5.272-3.419-8.105l5.177-3.03" stroke-width=".6835199999999999"/> - <path d="M361.846 363.658c-1.855 1.074-3.907.977-5.177.879-3.613-.1-6.444-2.15-6.444-8.89 0 0-4.495 2.247-11.72 4.005 0 0-1.27 1.464-1.465 4.397-.195 2.442 1.465 5.08 3.32 4.883 0 0 10.354-1.857 16.505-2.93 3.615-.686 4.981-2.344 4.981-2.344z" stroke-width=".6835199999999999"/> - </g> - <g fill="none" stroke="#fff" stroke-width=".712"> - <path d="M299.638 361.411s3.223 2.347-.683 5.276M289.971 359.846l9.864 4.3M291.622 362.093l7.225 3.124M294.166 360.24l5.47 2.445M339.286 361.411s-3.321 2.347.586 5.276M348.858 359.846l-9.865 4.3M347.293 362.093l-7.226 3.124M344.662 360.24l-5.372 2.445" stroke-width=".6835199999999999"/> - </g> - <g stroke="#000" stroke-width=".7"> - <path d="M261.018 331.363c.14.227.229.464.273.707a2.51 2.51 0 0 1-.029.83 2.346 2.346 0 0 1-1.157 1.644c-.634.372-1.36.475-2.164.321a3.68 3.68 0 0 1-1.087-.386 4.348 4.348 0 0 1-.887-.594c-.107.127-.22.249-.334.376-.157-.028-.313-.06-.469-.089.151-.945.3-1.892.456-2.836l.476.092c.03.367.089.7.167 1.007.073.308.2.598.368.887.16.265.363.495.614.68.245.186.549.317.908.383.27.054.513.063.732.03.213-.033.399-.097.543-.203.147-.104.272-.238.368-.399.093-.157.159-.345.203-.577a1.71 1.71 0 0 0-.107-.973c-.13-.323-.378-.589-.719-.806a48.251 48.251 0 0 0-.812-.503c-.306-.187-.569-.346-.788-.506-.427-.298-.746-.634-.937-1.03-.196-.387-.247-.852-.142-1.398.06-.312.18-.588.362-.837.18-.251.41-.45.69-.62.266-.165.565-.264.898-.324a2.902 2.902 0 0 1 1.001.017c.382.071.721.197 1.001.37.279.176.535.358.754.564.105-.114.212-.23.316-.346l.471.09-.473 2.74-.478-.092c-.025-.329-.064-.647-.114-.954a3.557 3.557 0 0 0-.277-.857c-.125-.26-.3-.477-.514-.657-.214-.181-.503-.301-.859-.37a1.378 1.378 0 0 0-1.02.175c-.304.191-.494.447-.558.788-.066.353-.036.664.088.932.121.27.33.505.623.718.26.193.524.358.782.511.256.153.5.307.738.47.215.143.426.3.618.472.187.168.35.354.475.553M272.998 333.043c-.1-.05-.257-.107-.464-.175-.209-.067-.39-.1-.556-.084-.163.013-.334.133-.516.354a5.674 5.674 0 0 0-.572.874c-.586 1.063-1.175 2.126-1.76 3.19-.225.406-.505.711-.843.918-.337.208-.7.326-1.084.365-.38.04-.741.008-1.095-.074a4.164 4.164 0 0 1-.945-.368c-.445-.246-.815-.52-1.1-.829-.285-.314-.5-.63-.621-.958a2.225 2.225 0 0 1-.155-.971c.02-.319.109-.614.26-.887l2.394-4.34a.904.904 0 0 0 .109-.34c.002-.098-.043-.22-.124-.356a1.497 1.497 0 0 0-.269-.305c-.124-.1-.22-.18-.307-.236.066-.122.135-.246.202-.367 1.035.572 2.065 1.14 3.099 1.708l-.203.367c-.1-.052-.23-.099-.393-.155a1.933 1.933 0 0 0-.372-.104c-.141-.022-.26 0-.35.078a.878.878 0 0 0-.236.28c-.746 1.352-1.493 2.703-2.238 4.056-.108.197-.2.416-.27.653a1.79 1.79 0 0 0-.078.746c.028.267.133.517.3.767.17.25.46.487.866.712.38.211.74.331 1.067.356.324.02.616-.02.876-.134.241-.108.456-.246.623-.418.17-.17.313-.36.427-.564l1.66-3.012c.213-.384.36-.712.435-.988.08-.274.083-.471.019-.611-.07-.156-.205-.315-.385-.476a3.569 3.569 0 0 0-.444-.353l.203-.366 3.042 1.679a19.19 19.19 0 0 1-.202.368M277.309 340.502c.13.267.205.56.21.87.006.313-.083.636-.275.97a1.932 1.932 0 0 1-.73.751 2.166 2.166 0 0 1-.936.278c-.324.03-.65-.006-.988-.09a4.031 4.031 0 0 1-.98-.4l-3.486-2.008.21-.364c.087.043.214.096.388.163.174.07.302.109.386.12a.54.54 0 0 0 .342-.063.712.712 0 0 0 .243-.268c1.002-1.74 2.004-3.482 3.007-5.221a.941.941 0 0 0 .12-.34.557.557 0 0 0-.115-.352 1.678 1.678 0 0 0-.28-.32c-.115-.099-.207-.18-.293-.235.068-.12.14-.242.21-.362 1.13.65 2.263 1.302 3.398 1.957.263.152.5.32.713.51.207.191.385.413.53.665.133.238.213.5.22.778.01.28-.062.571-.23.863a1.806 1.806 0 0 1-.534.596c-.207.15-.439.244-.692.29a2.482 2.482 0 0 1-.743.029 3.325 3.325 0 0 1-.794-.165c-.01.016-.02.03-.027.047a5 5 0 0 1 .62.562c.216.235.388.48.506.74zm-.626-1.818c.217-.075.395-.18.545-.326.146-.146.293-.335.432-.577.228-.399.297-.776.208-1.133-.086-.36-.374-.671-.85-.946-.11-.061-.25-.142-.42-.234-.173-.095-.315-.17-.424-.226-.54.934-1.074 1.863-1.612 2.795l.654.376c.286.166.548.27.791.314.246.043.47.034.676-.043zm-.612 2.733c.247-.427.3-.862.172-1.308-.13-.449-.471-.823-1.018-1.139-.221-.127-.41-.235-.561-.317l-.348-.183-1.475 2.561a.62.62 0 0 0-.018.638c.112.21.326.405.644.586.512.297.993.38 1.438.24.445-.146.831-.496 1.166-1.078zM294.982 345.734a3.455 3.455 0 0 0-.479-.126 1.43 1.43 0 0 0-.561-.03c-.16.03-.318.168-.478.406-.16.24-.321.551-.482.926l-1.434 3.35c-.183.426-.432.758-.746.998a2.572 2.572 0 0 1-1.043.47c-.376.077-.738.081-1.096.032a4.306 4.306 0 0 1-2.156-.986c-.315-.285-.558-.576-.715-.89a2.226 2.226 0 0 1-.25-.95c-.012-.32.045-.623.168-.911l1.951-4.555a.902.902 0 0 0 .077-.347.711.711 0 0 0-.158-.341 1.597 1.597 0 0 0-.3-.278c-.132-.086-.235-.158-.328-.204.056-.128.11-.259.164-.383l3.254 1.393c-.056.127-.11.257-.166.383a3.451 3.451 0 0 0-.407-.116 2.308 2.308 0 0 0-.38-.067c-.144-.01-.259.025-.341.112a.945.945 0 0 0-.207.302c-.608 1.42-1.216 2.839-1.822 4.26-.09.205-.158.43-.207.672-.055.248-.053.5-.001.753.055.262.183.5.376.733.193.23.503.44.932.62.401.174.772.257 1.1.25.322-.013.61-.08.856-.22.23-.134.43-.29.581-.477.151-.184.277-.388.37-.604l1.353-3.16c.173-.404.287-.745.337-1.026.049-.283.034-.478-.044-.61-.088-.15-.235-.294-.432-.437a3.722 3.722 0 0 0-.475-.306l.164-.383c1.063.456 2.13.911 3.192 1.367-.057.124-.113.253-.167.38M304.17 356.525l-3.605-1.043.117-.403c.133.032.302.067.515.105.209.032.361.043.45.027a.81.81 0 0 0 .336-.176.713.713 0 0 0 .181-.323l1.695-5.858a1.379 1.379 0 0 0-.089-.024c-1.576 2.029-3.19 4.028-4.769 6.058-.094-.027-.187-.056-.286-.083-.192-2.59-.435-5.18-.627-7.769a.712.712 0 0 0-.074-.021c-.463 1.601-.927 3.203-1.389 4.808-.135.462-.206.82-.216 1.086-.014.26.03.458.119.6.06.106.216.228.46.38.243.15.405.234.484.262l-.117.403c-1.097-.317-2.195-.634-3.295-.95l.117-.406c.178.032.37.06.571.071.2.017.363-.001.494-.06.162-.07.3-.198.418-.408.112-.205.242-.563.39-1.076l1.19-4.121a1.73 1.73 0 0 0 .084-.608.949.949 0 0 0-.14-.443 1.227 1.227 0 0 0-.373-.352 2.04 2.04 0 0 0-.49-.234l.117-.402 2.778.803c.182 2.243.415 4.482.595 6.727 1.14-1.5 2.314-2.98 3.456-4.48.128-.167.25-.34.36-.533a2.83 2.83 0 0 0 .199-.382c.886.257 1.776.513 2.66.77l-.116.402a3.857 3.857 0 0 0-.422-.066 2.406 2.406 0 0 0-.392-.022.44.44 0 0 0-.33.153.937.937 0 0 0-.168.325c-.56 1.938-1.12 3.871-1.678 5.807a.791.791 0 0 0-.03.354c.02.104.086.207.196.315.06.06.171.127.34.209.168.086.299.141.403.178l-.12.4M312.896 353.875c.22.197.406.437.53.722.125.287.173.62.124 1-.048.383-.18.708-.381.977-.208.264-.46.464-.755.619-.29.152-.607.246-.948.3-.35.048-.7.054-1.058.01-1.33-.168-2.66-.336-3.99-.502l.052-.418c.097.007.233.007.421 0a1.73 1.73 0 0 0 .405-.039.522.522 0 0 0 .29-.19.722.722 0 0 0 .121-.34c.252-1.993.5-3.985.752-5.979a.969.969 0 0 0-.02-.36.569.569 0 0 0-.242-.281 1.662 1.662 0 0 0-.38-.183c-.147-.05-.261-.089-.361-.105.017-.14.033-.278.052-.417 1.296.163 2.592.328 3.891.49.3.04.582.103.858.197.264.096.511.228.74.409.215.166.393.377.509.63.116.255.157.549.115.885-.037.29-.124.543-.257.756a1.735 1.735 0 0 1-.526.538c-.202.137-.43.234-.673.313a3.407 3.407 0 0 1-.796.155l-.009.053c.24.061.5.15.79.277.284.13.538.29.746.483zm-1.28-1.434c.17-.152.297-.32.38-.512.077-.19.138-.42.172-.7.059-.456-.024-.826-.245-1.125-.22-.298-.602-.472-1.15-.541a27.263 27.263 0 0 0-.96-.102c-.135 1.069-.267 2.136-.403 3.203.252.03.5.061.749.094.325.041.612.035.855-.018.238-.053.44-.151.601-.299zm.493 2.758c.06-.492-.058-.913-.346-1.275-.295-.362-.754-.576-1.38-.655-.256-.031-.467-.058-.64-.074-.176-.019-.305-.028-.396-.036l-.369 2.934a.626.626 0 0 0 .232.595c.184.15.46.247.82.292.589.075 1.062-.034 1.417-.337.357-.308.578-.782.662-1.444zM323.542 357.84h-2.291c-.498-.792-.965-1.457-1.366-2.034-.41-.574-.86-1.151-1.337-1.765h-.868v2.659c0 .136.025.26.065.359.043.106.14.187.283.243.07.028.197.051.376.077.181.022.333.036.456.041v.421h-3.59v-.42c.094-.006.232-.023.42-.042.18-.02.305-.049.377-.077a.512.512 0 0 0 .261-.224.742.742 0 0 0 .079-.378v-6.061c0-.133-.019-.26-.059-.368-.043-.103-.134-.186-.283-.24a2.226 2.226 0 0 0-.389-.1c-.161-.026-.293-.05-.406-.053v-.42h3.922c.358 0 .694.033 1.012.106a2.8 2.8 0 0 1 .855.356c.245.16.447.356.592.613.146.254.222.561.222.921 0 .326-.05.608-.149.857-.1.25-.25.46-.444.644a2.532 2.532 0 0 1-.646.438c-.251.124-.528.229-.83.319.412.551.77 1.005 1.047 1.38.27.375.62.824 1.016 1.365a2.526 2.526 0 0 0 .9.8c.1.055.234.089.389.115.156.03.288.044.388.05-.002.137-.002.277-.002.418zm-3.148-6.246c0-.507-.154-.904-.442-1.21-.29-.298-.712-.444-1.25-.444h-1.02v3.592h.785c.55 0 1.016-.166 1.377-.52.36-.353.55-.82.55-1.418zM333.325 357.216l-3.522.268c-.012-.14-.022-.281-.032-.42.31-.042.564-.1.77-.177.197-.077.295-.154.288-.241-.003-.036-.015-.076-.022-.13a.464.464 0 0 0-.046-.133c-.277-.608-.569-1.21-.847-1.82l-2.974.225a9.564 9.564 0 0 0-.214.74c-.055.213-.107.404-.147.58a3.39 3.39 0 0 0-.077.42c-.01.11-.017.196-.01.26.011.158.144.266.403.338.258.07.542.095.86.089l.033.42-3.19.242c-.011-.14-.02-.28-.032-.42.102-.013.23-.045.382-.098.152-.05.275-.107.371-.18.153-.12.265-.238.345-.365.082-.12.153-.282.22-.497.337-1.081.736-2.291 1.14-3.64.404-1.348.791-2.546 1.107-3.597l.478-.035c1.106 2.34 2.26 4.655 3.37 6.991.07.15.15.266.231.358.086.09.194.174.338.25.095.05.217.087.369.11.151.03.273.04.376.036.012.145.022.286.032.426zm-3.665-3.16c-.503-1.048-1.028-2.088-1.533-3.14-.33 1.115-.686 2.221-1.02 3.334.852-.066 1.7-.129 2.553-.194zM345.373 347.443a27.85 27.85 0 0 0-.428.116c-.165-.28-.422-.55-.77-.827-.346-.274-.646-.394-.89-.367-.126.02-.27.043-.432.08-.168.042-.353.087-.565.143-.459.124-.915.25-1.374.373l.88 3.249.94-.256c.284-.077.505-.164.645-.27.135-.1.252-.228.327-.377.054-.109.092-.26.107-.455.016-.19.01-.39-.026-.598l.433-.118c.289 1.065.577 2.125.862 3.184-.14.037-.287.076-.432.118a2.865 2.865 0 0 0-.272-.54c-.13-.192-.246-.326-.348-.4a.874.874 0 0 0-.508-.177 2.285 2.285 0 0 0-.66.1l-.94.256c.254.93.504 1.857.756 2.786.034.124.09.232.171.316.074.086.181.137.327.166.066.016.202.01.402-.008.2-.012.355-.038.455-.06.035.135.074.272.11.406-1.185.32-2.37.643-3.554.964-.035-.134-.074-.272-.11-.406.116-.037.268-.094.454-.165.183-.072.306-.122.358-.167.102-.08.17-.18.193-.287a.808.808 0 0 0-.017-.374l-1.583-5.836a1.099 1.099 0 0 0-.154-.32c-.07-.082-.182-.133-.332-.16a2.428 2.428 0 0 0-.45-.018 2.36 2.36 0 0 0-.443.047l-.11-.407 6.429-1.742c.181.678.366 1.356.549 2.031M354.838 346.723c.311.774.616 1.55.926 2.323l-5.98 2.888-.183-.38c.084-.046.2-.12.36-.219a1.45 1.45 0 0 0 .302-.231.507.507 0 0 0 .142-.32.776.776 0 0 0-.095-.37l-2.61-5.406a.935.935 0 0 0-.214-.291.51.51 0 0 0-.357-.1c-.1-.01-.237.006-.408.037a1.93 1.93 0 0 0-.403.107l-.181-.38 3.227-1.558.183.38a2.79 2.79 0 0 0-.362.238c-.148.11-.253.195-.307.257a.41.41 0 0 0-.144.338.795.795 0 0 0 .09.362l2.449 5.072c.111.23.208.407.298.523.089.122.19.199.31.225.11.027.253.01.427-.059.175-.057.407-.155.7-.3.134-.062.267-.136.412-.21.142-.074.27-.16.387-.238.117-.085.215-.174.306-.26a.589.589 0 0 0 .165-.252c.064-.237.126-.562.16-.994.029-.423.043-.756.017-1 .129-.058.257-.12.383-.182M359.312 338.42a4.184 4.184 0 0 1 1.466.753c.46.372.86.832 1.197 1.402a4.94 4.94 0 0 1 .643 1.724c.094.576.06 1.126-.067 1.654-.124.515-.354.98-.67 1.41-.314.429-.711.78-1.194 1.063-.508.3-1.03.49-1.577.549-.546.06-1.067.028-1.573-.132a4.047 4.047 0 0 1-1.438-.767 5.026 5.026 0 0 1-1.155-1.348 4.968 4.968 0 0 1-.65-1.738 4.353 4.353 0 0 1 .059-1.646c.126-.521.363-.992.682-1.425.319-.433.713-.78 1.182-1.057a3.99 3.99 0 0 1 1.53-.54 3.845 3.845 0 0 1 1.565.097zm2.253 5.574a3.932 3.932 0 0 0-.198-1.3c-.142-.44-.355-.9-.639-1.38a7.213 7.213 0 0 0-.95-1.281c-.34-.354-.7-.617-1.06-.799a2.39 2.39 0 0 0-1.111-.254c-.375 0-.755.119-1.122.335-.41.242-.708.54-.881.901-.175.36-.271.75-.266 1.165.007.401.08.823.235 1.273.153.452.359.896.62 1.339.287.486.596.9.911 1.243.319.341.673.604 1.04.799.366.193.732.275 1.116.281.38 0 .77-.108 1.16-.34.366-.216.653-.504.845-.844.19-.346.297-.727.3-1.138zM372.1 338.275c-.622.44-1.25.885-1.87 1.326-.861-.358-1.63-.63-2.289-.868-.668-.236-1.372-.441-2.107-.667l-.713.504 1.538 2.169c.078.108.174.19.26.254.1.061.222.068.37.034.076-.017.19-.071.354-.156.163-.084.289-.161.394-.23l.243.342c-.976.694-1.952 1.385-2.929 2.077l-.243-.342c.075-.06.178-.15.318-.275.133-.12.22-.215.263-.284a.487.487 0 0 0 .08-.332.744.744 0 0 0-.15-.352c-1.17-1.648-2.34-3.3-3.506-4.946a1.055 1.055 0 0 0-.26-.262c-.095-.063-.217-.079-.366-.036a3.07 3.07 0 0 0-.74.335l-.244-.342 3.197-2.267a4.56 4.56 0 0 1 .887-.496 2.72 2.72 0 0 1 .904-.208c.295-.015.572.036.835.156.271.122.508.332.715.624.19.267.316.525.373.786.066.26.069.517.016.78a2.52 2.52 0 0 1-.276.73 4.856 4.856 0 0 1-.495.74c.658.213 1.211.374 1.655.52.435.15.984.313 1.618.525a2.504 2.504 0 0 0 1.196.132c.115-.013.24-.063.385-.13.145-.064.26-.133.343-.185.08.114.164.23.243.344zm-6.178-3.273c-.294-.415-.653-.651-1.061-.732-.413-.073-.84.047-1.28.36-.276.195-.552.39-.832.59l2.08 2.933c.214-.151.427-.302.642-.456.45-.317.73-.725.818-1.22.09-.5-.023-.99-.367-1.475zM379.098 332.995c.233.79.467 1.582.705 2.37-2.207.82-4.41 1.635-6.615 2.454-.05-.13-.099-.263-.146-.393.111-.047.26-.118.431-.215.178-.095.293-.158.34-.209a.586.586 0 0 0 .17-.308.737.737 0 0 0-.054-.364c-.7-1.885-1.396-3.766-2.097-5.652a.975.975 0 0 0-.181-.303c-.077-.075-.193-.114-.345-.13-.117-.012-.268 0-.448.024-.191.02-.331.05-.437.084-.049-.13-.1-.263-.146-.393l6.165-2.288.702 1.896c-.141.054-.284.105-.42.157-.177-.259-.456-.49-.815-.715-.372-.23-.67-.309-.908-.256a4.274 4.274 0 0 0-.423.12c-.168.058-.35.118-.558.195l-1.25.463c.384 1.04.773 2.083 1.157 3.121.3-.11.596-.22.9-.334.285-.104.49-.208.605-.316a.877.877 0 0 0 .248-.392c.046-.14.06-.306.054-.512-.01-.2-.032-.377-.074-.547.138-.05.28-.102.42-.156l1.143 3.083c-.141.054-.284.105-.42.156a3.172 3.172 0 0 0-.33-.524c-.138-.168-.258-.288-.368-.35a.87.87 0 0 0-.497-.133c-.17.007-.37.059-.612.15l-.9.333c.292.79.58 1.574.875 2.363.088.234.174.41.26.54a.543.543 0 0 0 .308.235c.12.037.275.027.447-.014.177-.049.422-.124.73-.238.125-.047.285-.105.49-.18.203-.075.373-.141.502-.215.134-.07.277-.151.414-.246.137-.1.227-.187.26-.278.108-.242.193-.58.245-1.009.052-.429.083-.737.067-.922.136-.052.267-.1.406-.152M386.202 327.178c.42.338.781.755 1.055 1.268.277.521.464 1.1.55 1.758.089.661.058 1.272-.083 1.838a4.139 4.139 0 0 1-.707 1.497c-.311.423-.71.76-1.169 1.033-.46.271-.96.436-1.512.51-.59.078-1.144.046-1.664-.113-.525-.157-.999-.39-1.401-.735a4.097 4.097 0 0 1-1.019-1.268 4.867 4.867 0 0 1-.539-1.693 4.94 4.94 0 0 1 .082-1.855c.14-.557.385-1.05.704-1.49a3.978 3.978 0 0 1 2.687-1.556 4.063 4.063 0 0 1 1.619.102c.518.146.987.375 1.397.704zm-.109 6.011c.173-.389.291-.81.331-1.274.037-.46.02-.966-.053-1.52a6.983 6.983 0 0 0-.374-1.549 3.884 3.884 0 0 0-.656-1.15 2.422 2.422 0 0 0-.924-.67 2.25 2.25 0 0 0-1.164-.13c-.475.062-.866.218-1.169.485-.3.261-.543.582-.702.968-.144.37-.247.787-.276 1.26-.04.476-.025.967.041 1.476.074.559.196 1.06.356 1.5.155.439.382.818.645 1.14.257.324.56.54.912.698.35.15.755.2 1.205.14a2.29 2.29 0 0 0 1.102-.445 2.38 2.38 0 0 0 .726-.929z" stroke-width=".6719999999999999"/> - </g> - <path d="M366.051 205.114v53.04c0 10.548-1.464 52.554-46.589 68.868-45.22-16.314-46.684-58.316-46.684-68.868v-53.04h93.273" fill="none" stroke="#000" stroke-width=".977"/> -</svg> diff --git a/img/flags/4x3/ca.svg b/img/flags/4x3/ca.svg deleted file mode 100644 index fb542b0..0000000 --- a/img/flags/4x3/ca.svg +++ /dev/null @@ -1,6 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" height="480" width="640" viewBox="0 0 640 480"> - <g transform="translate(74.118) scale(.9375)"> - <path fill="#fff" d="M81.137 0h362.276v512H81.137z"/> - <path fill="#bf0a30" d="M-100 0H81.138v512H-100zm543.413 0H624.55v512H443.414zM135.31 247.41l-14.067 4.808 65.456 57.446c4.95 14.764-1.72 19.116-5.97 26.86l71.06-9.02-1.85 71.512 14.718-.423-3.21-70.918 71.13 8.432c-4.402-9.297-8.32-14.233-4.247-29.098l65.414-54.426-11.447-4.144c-9.36-7.222 4.044-34.784 6.066-52.178 0 0-38.195 13.135-40.698 6.262l-9.727-18.685-34.747 38.17c-3.796.91-5.413-.6-6.304-3.808l16.053-79.766-25.42 14.297c-2.128.91-4.256.125-5.658-2.355l-24.45-49.06-25.21 50.95c-1.9 1.826-3.803 2.037-5.382.796l-24.204-13.578 14.53 79.143c-1.156 3.14-3.924 4.025-7.18 2.324l-33.216-37.737c-4.345 6.962-7.29 18.336-13.033 20.885-5.744 2.387-24.98-4.823-37.873-7.637 4.404 15.895 18.176 42.302 9.46 50.957z"/> - </g> -</svg> diff --git a/img/flags/4x3/cc.svg b/img/flags/4x3/cc.svg deleted file mode 100644 index 0e44596..0000000 --- a/img/flags/4x3/cc.svg +++ /dev/null @@ -1,19 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" height="480" width="640" viewBox="0 0 640 480"> - <defs> - <path d="M0-360l69.42 215.845 212.04-80.3L155.987-35.604l194.986 115.71-225.88 19.65 31.104 224.592L0 160l-156.198 164.35 31.105-224.592-225.88-19.65 194.985-115.71-125.47-188.854 212.037 80.3z" id="a"/> - <path d="M0-210L54.86-75.508l144.862 10.614L88.765 28.842l34.67 141.052L0 93.334l-123.435 76.56 34.67-141.052-110.957-93.736L-54.86-75.508z" id="b"/> - </defs> - <path fill="green" d="M0 0h640v480H0z"/> - <circle cx="320" cy="240" r="66.667" fill="#ffe000"/> - <circle cx="340.787" cy="240" r="54.857" fill="green"/> - <circle cx="109.841" cy="173.333" r="69.841" fill="#ffe000"/> - <path d="M105.022 225.994h17.44s.787-1.6-.176-2.398c-.963-.8-4.713-.975-3.7-3.803 2.083-5.813 2.374-4.02 3.682-17.827 1.308-13.806 1.937-35.46 1.937-35.46h-2.52s.486 6.734-.967 15.502c-1.454 8.77-1.89 9.543-3.488 16.277-1.6 6.733-1.84 7.314-3.294 11.238-1.453 3.924-1.6 4.118-3.876 7.75-2.276 3.634-1.453 2.277-2.712 4.457-.63 1.09-1.405.8-1.83 1.593-.423.793-.496 2.67-.496 2.67z" fill="#802000" stroke="#7b3100" stroke-width="1.481"/> - <path d="M118.33 122.45c.145 2.71-.127 6.295-1.25 9.213-1.138 3.252-2.376 6.494-2.315 9.86-1.81.617-3.674-3.915-5.416-1.25 1.308 3.685 4.33 6.6 6.403 9.92.35 1.03 3.33 3.716 1.605 4.34-4.353-1.49-5.407-7.003-8.107-10.352-3.134-5.634-8.98-9.617-15.49-9.892-2.447.064-10.4-.607-8.33 3.582 3.047 2.072 6.802 3.423 9.81 5.748 2.243.21 6.306 3.952 6.07 5.367-3.944-1.597-5.79-3.512-10.037-5.19-5.757-2.225-13.72-.887-16.905 4.825-.594 1.488-1.47 5.824.397 6.238 2.183-3.41 5.306-7.22 9.933-6.197 3.635.285-4.055 6.772-1.114 5.466.932-.413 3.085-1.826 4.578-1.974 1.493-.147 2.327.97 3.46 1.125 2.266.31 2.89 1.26 2.68 1.812-.248.65-.968.094-3.27.825-1.153.365-1.754 1.377-3.098 1.84-1.343.464-4.138.496-5.182.086-3.654-1.586-9.644-1.31-10.783 3.268-.002 2.014-1.794-.222-2.622.648-.62 2.197-.78 4.453-4.04 4.253-1.978 2.074-4.004 4.223-6.515 5.7 1.474 3.383 7.314-3.398 7.04-.54-2.552 3.482 1.314 4.215 3.007 1.535 2.863-3.025 6.408-6.706 10.68-3.658 2.035 1.915 3.217-1.013 4.69-.856.927 2.38 2.095.118 3.148-.555 1.723-.214 1.238 2.153 3.287.695 4.082-2.702 9.104-.432 13.092-3.06 4.244-1.934.596 1.557-.576 2.922-1.864 3.617-.247 8.366-4.292 10.612-1.625 4.31 1.92 9.994-1.696 13.183-.525 2 4.65 1.77 6.103 2.593 2.545.1-.11-5.826 2.416-6.62 3.388 2.096 3.23-3.75 2.53-5.553.328-4.098.56-8.58 2.596-12.292 2.165-4.55 4.17 1.853 1.746 3.655-1.377 4.183-3.38 9.42-.25 13.31.902.202 1.643 2.39 2.81 3.06 1.17.673 2.765-.17 3.056-2.16 1.498-5.99.743-12.434 2.883-18.26 1.512-1.806 3.595-.292 4.532 1.368 3 3.48 5.107 7.833 8.737 10.702 3.305 1.547 6.228 3.886 7.75 7.29-.02 2.625 7.46 3.027 5.224.11-2.144-2.842-.73-5.684 1.442-7.573 1.163.287.82-1.796-.092-.972-1.46-.345-1.554-3.017.476-1.747 3.418 1.104-.267-2.474-1.502-2.583-2.89-1.792-6.21-3.853-7.632-6.967 3.762.04 7.668 2.068 11.512.81 3.082-1.584 6.208.13 7.284 2.848 2.382-.38 1.367-2.77 0-3.565 1.743-.718 2.948-2.21.835-3.524-1.116-1.456 1.496-3.94-1.714-3.836.104-2.453-.86-4.697-3.534-5.544-2.68-2.268-10.538 3.34-10.31-1.77-.792-2.783 3.192-.373 4.306-1.76 1.15-2.933-5.482-2.647-3.294-4.92 1.43-.92 8.137-2.243 2.877-3.227-2.626.72-4.88.186-6.945-1.113-1.883 3.15-7.26-1.71-6.302 3.89-.736 2.108-5.54 7.59-6.842 3.39 1.107-3.29 6.8-4.368 5.035-8.806-.27-2.77-2.568.483-3.65.276-.548-1.724 1.658-3.757 3.195-4.166 3.05 2.346 3.142-2.96 6.043-2.528 2.118-.47-.684-1.38-1.275-1.778.58-1.55 3.832-2.342.644-3.688-2.813-2.087-4.898 2.077-7.218 2.3-2.227-2.515 2.022-3.723 3.194-5.047.063-.988-2.477-.3-1.713-1.158.664-1.187 5.162-1.275 3.056-3.056-3.17-1.09-7.265-.818-10.31.593-1.916.62-2.48 4.956-4.134 4.776-.777-1.93.253-5.738-2.407-6.296zm15 42.362c2.417-.41.05 3.67-1.11 3.61.102-1.465-3.497-1.324-1.264-2.6a7.277 7.277 0 0 1 2.374-1.01z" fill="green"/> - <g transform="translate(0 80) scale(.0635)" fill="#ffe000"> - <use height="100%" width="100%" xlink:href="#a" x="7560" y="4200"/> - <use height="100%" width="100%" xlink:href="#a" x="6300" y="2205"/> - <use height="100%" width="100%" xlink:href="#a" x="7560" y="840"/> - <use height="100%" width="100%" xlink:href="#a" x="8680" y="1869"/> - <use height="100%" width="100%" xlink:href="#b" x="8064" y="2730"/> - </g> -</svg> diff --git a/img/flags/4x3/cd.svg b/img/flags/4x3/cd.svg deleted file mode 100644 index d8931c2..0000000 --- a/img/flags/4x3/cd.svg +++ /dev/null @@ -1,5 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" height="480" width="640" viewBox="0 0 640 480"> - <path fill="#007fff" d="M0 0h640v480H0z"/> - <path d="M28.8 96H96l20.8-67.2L137.6 96h67.2l-54.4 41.6 20.8 67.2-54.4-41.6-54.4 41.6 20.8-67.2L28.8 96zM600 0L0 360v120h40l600-360V0h-40" fill="#f7d618"/> - <path d="M640 0L0 384v96L640 96V0" fill="#ce1021"/> -</svg> diff --git a/img/flags/4x3/cf.svg b/img/flags/4x3/cf.svg deleted file mode 100644 index 8a67616..0000000 --- a/img/flags/4x3/cf.svg +++ /dev/null @@ -1,15 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" height="480" width="640" viewBox="0 0 640 480"> - <defs> - <clipPath id="a"> - <path fill-opacity=".67" d="M-12.355 32h640v480h-640z"/> - </clipPath> - </defs> - <g clip-path="url(#a)" fill-rule="evenodd" transform="translate(12.355 -32)"> - <path fill="#00f" d="M-52 32h719.29v118.94H-52z"/> - <path fill="#ff0" d="M-52 391.65h719.29V512H-52z"/> - <path fill="#009a00" d="M-52 271.3h719.29v120.35H-52z"/> - <path fill="#fff" d="M-52 150.94h719.29v120.35H-52z"/> - <path fill="red" d="M247.7 32.474h119.88v479.53H247.7z"/> - <path fill="#ff0" d="M99.253 137.653L67.837 115.93l-31.314 21.937 10.87-36.717-30.457-23.118 38.14-.968 12.49-36.22 12.702 36.113 38.173.732-30.284 23.288"/> - </g> -</svg> diff --git a/img/flags/4x3/cg.svg b/img/flags/4x3/cg.svg deleted file mode 100644 index f37bff8..0000000 --- a/img/flags/4x3/cg.svg +++ /dev/null @@ -1,12 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" height="480" width="640" viewBox="0 0 640 480"> - <defs> - <clipPath id="a"> - <path fill-opacity=".67" d="M-79.458 32h640v480h-640z"/> - </clipPath> - </defs> - <g stroke-width="1pt" fill-rule="evenodd" clip-path="url(#a)" transform="translate(79.458 -32)"> - <path fill="#ff0" d="M-119.46 32h720v480h-720z"/> - <path d="M-119.46 32v480l480-480h-480z" fill="#00ca00"/> - <path d="M120.54 512h480V32l-480 480z" fill="red"/> - </g> -</svg> diff --git a/img/flags/4x3/ch.svg b/img/flags/4x3/ch.svg deleted file mode 100644 index 6157702..0000000 --- a/img/flags/4x3/ch.svg +++ /dev/null @@ -1,9 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" height="480" width="640" viewBox="0 0 640 480"> - <g fill-rule="evenodd" stroke-width="1pt"> - <path fill="#d52b1e" d="M0 0h640v480H0z"/> - <g fill="#fff"> - <path d="M170 194.997h299.996v89.997H170z"/> - <path d="M275 89.997h89.996v299.996H275z"/> - </g> - </g> -</svg> diff --git a/img/flags/4x3/ci.svg b/img/flags/4x3/ci.svg deleted file mode 100644 index 6b4f66e..0000000 --- a/img/flags/4x3/ci.svg +++ /dev/null @@ -1,7 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" height="480" width="640" viewBox="0 0 640 480"> - <g fill-rule="evenodd"> - <path fill="#00cd00" d="M426.83 0H640v480H426.83z"/> - <path fill="#ff9a00" d="M0 0h212.88v480H0z"/> - <path fill="#fff" d="M212.88 0h213.95v480H212.88z"/> - </g> -</svg> diff --git a/img/flags/4x3/ck.svg b/img/flags/4x3/ck.svg deleted file mode 100644 index f3ce1af..0000000 --- a/img/flags/4x3/ck.svg +++ /dev/null @@ -1,9 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" height="480" width="640" viewBox="0 0 640 480"> - <path fill="#006" d="M0 0h640v480H0z"/> - <g stroke-width="1pt"> - <path d="M0 0v24.81l319.75 197.106H360v-24.81L40.25 0H.002zm360.004 0v24.81L40.246 221.917H0v-24.814L319.75-.003H360z" fill="#fff"/> - <path d="M150.003 0v221.92h60V0h-60zM0 73.973v73.973h360.004V73.973H0z" fill="#fff"/> - <path d="M0 88.766v44.384h360.004V88.766H0zM162.003 0v221.92h36V0h-36zM0 221.92l120.004-73.974h26.833l-120.004 73.97H-.003zM0 0l120.004 73.973H93.17L.004 16.54V0zm213.172 73.973L333.168 0H360L239.998 73.973h-26.833zm146.832 147.95L240 147.948h26.833L360 205.38v16.542z" fill="#c00"/> - </g> - <path d="M471.6 213l5.2-16.668-14.013-10.647 17.655-.224 5.883-16.437 5.708 16.527 17.657.484-14.128 10.438 5.028 16.744-14.44-10.078m27.05 13.135l10.408-13.934-9.68-14.798 16.706 5.795 10.977-13.484-.086 17.512 16.474 6.463-16.76 5.026-.8 17.485-10.272-14.408m-98.397 14.976l-.693-17.47-16.746-5.183 16.53-6.296.027-17.487 10.905 13.578 16.77-5.63-9.793 14.685 10.336 14.016-16.956-4.503m-39.69 40.867l-7.332-15.822-17.415 1.824 12.818-12.317-6.675-16.123 15.25 8.21 13.292-11.798-3.394 17.39 14.894 8.84-17.348 2.535m-17.474 55.583l-13.31-11.106-14.964 9.22 6.375-16.7-12.845-11.664 17.247.787 7.023-16.44 4.283 17.19 17.19 1.508-14.6 9.836m3.275 60.417l-16.568-4.817-10.11 14.498-.703-17.895-16.36-5.516 16.13-6.24-.004-17.916 10.672 14.04 16.364-5.554-9.538 14.917m29.527 50.852l-17.074 2.394-3.463 17.41-7.78-16.078-17.162 1.67 12.265-12.328-7.15-16.382 15.36 8.46 12.748-11.796-2.772 17.556m45.038 37.956l-15.208 8.226 2.676 17.55-12.775-12.362-15.537 7.577 7.314-15.863-12.288-12.87 17.295 2.56 7.95-15.535 3.374 17.447m53.832 8.963l-8.3 15.322 11.7 13.21-17.36-3.266-8.924 14.962-2.428-17.338-17.226-3.962 15.86-7.448-1.716-17.417 12.23 12.738m57.333-13.123l-.517 17.475 16.345 6.365-16.924 5.103-1.237 17.442-9.94-14.32-17.116 4.423 10.783-13.952-9.342-14.716 16.604 5.698m54.4-203.218l11.944 12.604 15.92-7.39-8.25 15.835 11.418 13.102-17.04-2.82-8.864 15.496-2.28-17.577-16.9-3.53 15.632-8.043m34.244 21.104l5.42 16.595 17.507.293-14.174 10.68 4.734 16.815-14.176-9.994-14.585 10.107 5.412-16.857-13.75-10.576 17.524-.422m19.513 33.206l-2.006 17.364 15.742 7.775-17.296 3.598-2.72 17.27-8.68-15.14-17.43 2.904L587.82 319.2l-8.05-15.48 16.054 7.133m2.931 39.795l-7.767 15.607 12.148 12.79-17.462-2.652-8.406 15.268-3.02-17.24-17.353-3.35 15.596-8.006-2.314-17.345 12.66 12.296m-9.834 39.108l-14.675 9.17 3.747 17.348-13.508-11.534-15.043 8.542 6.328-16.293-13.053-12.072 17.417 1.465 6.983-16.006 4.437 17.2" fill-rule="evenodd" fill="#fff"/> -</svg> diff --git a/img/flags/4x3/cl.svg b/img/flags/4x3/cl.svg deleted file mode 100644 index 63ee47c..0000000 --- a/img/flags/4x3/cl.svg +++ /dev/null @@ -1,13 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" height="480" width="640" viewBox="0 0 640 480"> - <defs> - <clipPath id="a"> - <path fill-opacity=".67" d="M0 0h682.67v512H0z"/> - </clipPath> - </defs> - <g fill-rule="evenodd" clip-path="url(#a)" transform="scale(.9375)" fill-opacity=".996"> - <path fill="#fff" d="M255.99 0H768v256H255.99z"/> - <path fill="#0039a6" d="M0 0h256v256H0z"/> - <path d="M167.82 191.71l-39.653-29.737-39.458 30.03 14.674-48.8-39.386-30.133 48.728-.42L127.84 64l15.437 48.537 48.728.064-39.184 30.418 15 48.69z" fill="#fff"/> - <path fill="#d52b1e" d="M0 256h768v256H0z"/> - </g> -</svg> diff --git a/img/flags/4x3/cm.svg b/img/flags/4x3/cm.svg deleted file mode 100644 index 2719c4e..0000000 --- a/img/flags/4x3/cm.svg +++ /dev/null @@ -1,15 +0,0 @@ -<svg xmlns:xlink="http://www.w3.org/1999/xlink" xmlns="http://www.w3.org/2000/svg" height="480" width="640" viewBox="0 0 640 480"> - <path fill="#007a5e" d="M0 0h213.333v480H0z"/> - <path fill="#ce1126" d="M213.333 0h213.333v480H213.333z"/> - <path fill="#fcd116" d="M426.667 0H640v480H426.667z"/> - <g transform="translate(320 240) scale(7.1111)" fill="#fcd116"> - <g id="b"> - <path id="a" d="M0-8L-2.472-.392 1.332.845z"/> - <use height="100%" width="100%" xlink:href="#a" transform="scale(-1 1)"/> - </g> - <use height="100%" width="100%" xlink:href="#b" transform="rotate(72)"/> - <use height="100%" width="100%" xlink:href="#b" transform="rotate(144)"/> - <use height="100%" width="100%" xlink:href="#b" transform="rotate(-144)"/> - <use height="100%" width="100%" xlink:href="#b" transform="rotate(-72)"/> - </g> -</svg> diff --git a/img/flags/4x3/cn.svg b/img/flags/4x3/cn.svg deleted file mode 100644 index 4381476..0000000 --- a/img/flags/4x3/cn.svg +++ /dev/null @@ -1,11 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" height="480" width="640" viewBox="0 0 640 480"> - <defs> - <path id="a" fill="#ffde00" d="M-.588.81L0-1 .588.81-.952-.31H.952z"/> - </defs> - <path d="M0 0h640v480H0z" fill="#de2910"/> - <use xlink:href="#a" transform="matrix(71.9991 0 0 72 119.999 120)" width="30" height="20"/> - <use xlink:href="#a" transform="matrix(-12.33562 -20.5871 20.58684 -12.33577 240.291 47.996)" width="30" height="20"/> - <use xlink:href="#a" transform="matrix(-3.38573 -23.75998 23.75968 -3.38578 287.95 95.796)" width="30" height="20"/> - <use xlink:href="#a" transform="matrix(6.5991 -23.0749 23.0746 6.59919 287.959 168.012)" width="30" height="20"/> - <use xlink:href="#a" transform="matrix(14.9991 -18.73557 18.73533 14.99929 239.933 216.054)" width="30" height="20"/> -</svg> diff --git a/img/flags/4x3/co.svg b/img/flags/4x3/co.svg deleted file mode 100644 index 671f0a3..0000000 --- a/img/flags/4x3/co.svg +++ /dev/null @@ -1,7 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" height="480" width="640" viewBox="0 0 640 480"> - <g fill-rule="evenodd" stroke-width="1pt"> - <path fill="#ffe800" d="M0 0h640v480H0z"/> - <path fill="#00148e" d="M0 240h640v240H0z"/> - <path fill="#da0010" d="M0 360h640v120H0z"/> - </g> -</svg> diff --git a/img/flags/4x3/cr.svg b/img/flags/4x3/cr.svg deleted file mode 100644 index ca6d24f..0000000 --- a/img/flags/4x3/cr.svg +++ /dev/null @@ -1,7 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" height="480" width="640" viewBox="0 0 640 480"> - <g fill-rule="evenodd" stroke-width="1pt"> - <path fill="#0000b4" d="M0 0h640v480H0z"/> - <path fill="#fff" d="M0 75.428h640v322.285H0z"/> - <path fill="#d90000" d="M0 157.716h640V315.43H0z"/> - </g> -</svg> diff --git a/img/flags/4x3/cu.svg b/img/flags/4x3/cu.svg deleted file mode 100644 index 0e7c323..0000000 --- a/img/flags/4x3/cu.svg +++ /dev/null @@ -1,13 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" height="480" width="640" viewBox="0 0 640 480"> - <defs> - <clipPath id="a"> - <path fill-opacity=".67" d="M-32 0h682.67v512H-32z"/> - </clipPath> - </defs> - <g fill-rule="evenodd" clip-path="url(#a)" transform="translate(30) scale(.94)"> - <path fill="#0050f0" d="M-32 0h768v512H-32z"/> - <path fill="#fff" d="M-32 102.4h768v102.4H-32zm0 204.8h768v102.4H-32z"/> - <path d="M-32 0l440.69 255.67L-32 511.01V0z" fill="#ed0000"/> - <path d="M161.75 325.47l-47.447-35.432-47.214 35.78 17.56-58.144-47.13-35.904 58.306-.5 18.084-57.97 18.472 57.836 58.305.077-46.886 36.243 17.948 58.016z" fill="#fff"/> - </g> -</svg> diff --git a/img/flags/4x3/cv.svg b/img/flags/4x3/cv.svg deleted file mode 100644 index bf9427b..0000000 --- a/img/flags/4x3/cv.svg +++ /dev/null @@ -1,13 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" height="480" width="640" viewBox="0 0 640 480"> - <defs> - <clipPath id="a"> - <path fill-opacity=".67" d="M-123.43 0h682.67v512h-682.67z"/> - </clipPath> - </defs> - <g fill-rule="evenodd" clip-path="url(#a)" transform="translate(115.72) scale(.94)"> - <path fill="#fff" d="M-123.43 233.05H723.1v205.97h-846.53z"/> - <path fill="#081873" d="M-122.76 0h845.95v256.64h-845.95zm.24 385.87H729.6V512h-852.12z"/> - <path fill="#de3929" d="M-122.52 302.55h845.95v39.65h-845.95z"/> - <path fill="#ffce08" d="M130.92 399.168l6.65 20.468h21.522l-17.412 12.65 6.65 20.47-17.41-12.65-17.41 12.65 6.65-20.47-17.412-12.65h21.522m192.64-169.138l6.65 20.468h21.522l-17.412 12.65 6.65 20.47-17.41-12.65-17.41 12.65 6.65-20.47-17.412-12.65h21.522M88.27 335.448l6.65 20.468h21.523l-17.412 12.65 6.652 20.47-17.41-12.65-17.412 12.65 6.65-20.47-17.41-12.65h21.52m235.289-26.458l6.65 20.468h21.522l-17.412 12.65 6.65 20.47-17.41-12.65-17.41 12.65 6.65-20.47-17.412-12.65h21.522m-40.44-161.748l6.65 20.468h21.522l-17.412 12.65 6.65 20.47-17.41-12.65-17.41 12.65 6.65-20.47-17.412-12.65h21.522m-64.43-45.218l6.65 20.468h21.522l-17.412 12.65 6.65 20.47-17.41-12.65-17.41 12.65 6.65-20.47-17.412-12.65h21.522m-64.44 2.892l6.65 20.468h21.522l-17.412 12.65 6.65 20.47-17.41-12.65-17.41 12.65 6.65-20.47-17.412-12.65H121m-34.816 43.242l6.65 20.468h21.522l-17.412 12.65 6.65 20.47-17.41-12.65-17.41 12.65 6.65-20.47-17.412-12.65h21.522M198.74 420.408l6.65 20.468h21.522l-17.412 12.65 6.65 20.47-17.41-12.65-17.41 12.65 6.65-20.47-17.412-12.65h21.522m82.17-41.708l6.65 20.468h21.522l-17.412 12.65 6.65 20.47-17.41-12.65-17.41 12.65 6.65-20.47-17.412-12.65h21.522"/> - </g> -</svg> diff --git a/img/flags/4x3/cw.svg b/img/flags/4x3/cw.svg deleted file mode 100644 index dce07cf..0000000 --- a/img/flags/4x3/cw.svg +++ /dev/null @@ -1,14 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" height="480" width="640" viewBox="0 0 640 480"> - <defs> - <path id="b" d="M0-1l.225.69H.95L.364.12l.225.69L0 .383-.588.81l.225-.692L-.95-.31h.725z"/> - <clipPath id="a"> - <path fill-opacity=".67" d="M0 0h682.67v512H0z"/> - </clipPath> - </defs> - <g clip-path="url(#a)" transform="scale(.94)"> - <path fill="#002b7f" d="M0 0h768v512H0z"/> - <path fill="#f9e814" d="M0 320h768v64H0z"/> - <use xlink:href="#b" transform="scale(42.67)" height="9000" width="13500" y="2" x="2" fill="#fff"/> - <use xlink:href="#b" transform="scale(56.9)" height="9000" width="13500" y="3" x="3" fill="#fff"/> - </g> -</svg> diff --git a/img/flags/4x3/cx.svg b/img/flags/4x3/cx.svg deleted file mode 100644 index 1c9105a..0000000 --- a/img/flags/4x3/cx.svg +++ /dev/null @@ -1,15 +0,0 @@ -<svg xmlns:xlink="http://www.w3.org/1999/xlink" xmlns="http://www.w3.org/2000/svg" height="480" width="640" viewBox="0 0 640 480"> - <path fill="#0021ad" d="M0 0h640v480H0z"/> - <path d="M0 0h640v480z" fill="#1c8a42"/> - <circle cx="320" cy="240" r="57.805" fill="#ffc639"/> - <path d="M284.698 214.035c3.954 5.425 9.946 14.52 14.766 12.147 3.76.013 5.702.277 6.212 2.78 8.87 1.51 23.778-2.232 33.054-14.314 0 0 .78.103.51-4.49.05-2 2.735-1.6 2.8-.948.373.993.31 1.735.812 1.76 1.142-.38 2.703-2.94 4.012-4.566.355-.716.162-1.47.245-2.374.69-1.697 2.412-1.33 2.773-.44.33.575.336 1.014.658 1.588 1.75 1.168 4.904.077 5.15.077.31-1.425 1.225-1.29 1.225-1.29 1.167-.258.71-.155 1.477.245-.677 7.684 1.51 8.025 1.33 11.966.076 4.4-1.33 5.65-1.33 7.328.445 2.052 6.934 2.123 4.65 3.858-2.005 1.07.007 3.077-3.012 3.858-8.786 4.457-10.47 8.283-10.47 8.283s-2.206 4.167-2.45 4.167c-1.472 2.78-3.336 1.264-4.374 2.62-.516 1.702-1.097 5.476-.065 7.437.517 2.696-.063 4.167-.708 6.863-.58 5.625-2.813 6.477-3.07 8.45-1.033 2.11.218 12.02-.762 12.02-6.54.128-11.554-1.253-14.14-1.77 2.522-10.87 1.54-20.415 1.54-21.396-.644-7.773-11.642-5.883-13.326-6.915-1.393-.298-2.27-1.433-2.76-1.923-1.556-.168-2.136-.523-3.69-.684-.775.387-.31.787-2.04 1.322-4.386.53-6.32-3.825-6.32-3.825.212-1.464-9.864.297-15.34-.974-2.246 1.25-3.227 4.954-5.065 5.393-.053 1.147-3.027-.943-3.626-2.072-.123-3.283 2.864-4.735 2.864-4.735 2.374-1.67 3.78-1.942 4.922-3.096.574-2.858.283-4.974 1.503-7.122 1.032-1.64 2.554-.87 3.586-1.606 1.11-.737 1.58-5.55.554-6.865 0 0-4.438-4.006-4.683-4.25-1.444-4.142 1.69-6.813 2.588-6.51z" fill="#1c8a42"/> - <path d="M561.875 142.435c-2.62-10.364-26.06-32.685-43.678-46.89-4.206-2.865-6.947-1.158-6.4 2.927 2.194 3.66 3.84 7.68 6.032 11.34.612 2.437 1.767 4.144 2.38 6.582 0 0 .18 4.206.548 4.572 5.483 6.037 6.22 11.156 6.22 11.156 3.166 6.097 5.972 10.546 11.52 15.546 6.22 3.903 1.645 16.03 1.826 22.494 0 4.083-2.923 3.6-5.484 3.11-20.178-18.534-40.175-18.592-57.792-23.96-6.89-.728-7.012 2.562-4.754 4.387 12.314 13.172 23.893 22.132 39.136 29.628l7.683 4.76c2.923 2.44 5.85 4.877 8.773 7.316 6.767 4.386 7.322 8.41 7.322 8.773.18 8.23-4.212 14.63-5.49 17.19-2.31 8.728-6.947 10.245-6.947 10.245-37.678 25.422-57.43 32.002-118.514 24.138-.916-.483-6.767.49 0 2.93 15.546 5.18 53.735 13.488 90.682-4.007 8.87-6.218 14.804-4.18 21.23-7.902 10.553-6.508 25.622-14.61 28.363-15.52 8.232-4.393 31.275-9.328 36.584-13.72 6.09-.49 12.41-1.29 12.837-6.53 2-1.295 4.93-.347 7.103-4.617 4.832-.84 4.02-2.568 4.02-2.568-1.22-3.412-5.736-4.82-8.96-7.315-4.762-1.587-8.052-2.077-11.53-.368-1.096.49-2.192.974-3.29 1.465 0 0-5.12-.736-5.12-1.097-11.38-.626-10.27-38.337-14.296-54.066z" fill="#ffc639"/> - <path d="M588.563 204.166a2.818 1.76 15.947 1 1-5.373-1.687 2.818 1.76 15.947 0 1 5.373 1.686z" fill="#1c8a42"/> - <g transform="matrix(.64 0 0 .64 0 80)" fill="#fff"> - <path id="a" d="M188.16 190.94l-12.75-11.936-12.905 11.77 1.383-17.405-17.25-2.754 14.476-9.774-8.606-15.197 16.668 5.22 6.518-16.205 6.31 16.287 16.734-5.007-8.8 15.086 14.348 9.96-17.283 2.53 1.158 17.424z"/> - <path d="M233.39 335.53l-13.752-9.167-13.39 9.664 4.71-15.568-13.58-9.416 16.666-.446 4.988-15.496 5.595 15.3 16.667-.156-13.21 9.902 5.307 15.382z"/> - <use height="100%" width="100%" xlink:href="#a" x="2.522" y="269.061"/> - <use height="100%" width="100%" xlink:href="#a" x="-112.066" y="123.223"/> - <use height="100%" width="100%" xlink:href="#a" x="108.427" y="85.027"/> - </g> -</svg> diff --git a/img/flags/4x3/cy.svg b/img/flags/4x3/cy.svg deleted file mode 100644 index aa46cda..0000000 --- a/img/flags/4x3/cy.svg +++ /dev/null @@ -1,6 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" height="480" width="640" viewBox="0 0 640 480"> - <path fill="#fff" d="M0 0h640v480H0z"/> - <path id="a" d="M307.84 398.6a.815.815 0 0 1-.278-.196l-.1-.094c-.26-.237-.688-.657-1.265-1.314-1.066-1.21-2.495-2.982-3.752-4.548-2.492-3.106-4.55-5.782-4.94-6.286l-.634-.826-6.212-1.916-4.537-2.115 2.425-2.725 8.326 3.565 6.215 1.275 11.49 8.45-.01.008c-.022.02-1.67 1.39-3.308 2.88-.73.663-1.65 1.516-2.3 2.226-.3.326-.565.65-.745.912-.11.16-.172.306-.202.377l.714-.444.773.6-1.574.147-.072.016zm-42.672-12.816c-5.422 0-10.777-1.5-15.916-4.454l-.006-.003.002-.006s.672-1.28 2.302-2.475c1.553-1.14 4.354-2.503 8.88-2.52h.094c5.36 0 11.92 1.822 19.498 5.416-.256.17-6.204 4.045-14.852 4.045l.008.008zm-23.496-5.208c-1.002 0-1.903-.38-2.536-1.066-.52-.565-.89-1.317-1.138-2.303-.403-1.614-.292-3.22-.28-3.373a3.48 3.48 0 0 1 1.25-.284l.09-.002c2.008 0 3.59 1.743 4.27 3.47.384.982.458 1.807.218 2.454-.24.648-.992 1.096-1.872 1.096zm41.344-4.792c-13.887-1.983-19.774-7.004-22.266-10.866-2.66-4.12-2.113-7.93-2.108-7.968l.002-.012.01-.003c.005 0 .85-.228 2.127-.234 3.696 0 13.145 1.86 22.24 19.075l.006.01-.016-.007zm-28.464-2.752c-5.933 0-10.45-1.024-13.426-3.043-1.71-1.16-2.547-2.436-2.948-3.3a5.408 5.408 0 0 1-.476-1.62c.157-.072 2.586-1.15 6.212-1.32.307-.014.616-.023.94-.024 4.585 0 11.558 1.496 18.916 8.624l.007.007h-.01c-3.36.44-6.463.673-9.223.673zm-28.728-1.104c-6.256 0-14.85-1.91-20.21-7.27l-.006-.006.016-.004c.056-.014 5.873-1.49 12.418-1.65.39-.01.783-.014 1.18-.014 5.866 0 10.355 1.137 13.346 3.38 1.044.783 1.614 1.512 1.742 2.226.107.597-.208 1.24-.845 1.72-1.346 1.017-3.753 1.56-7.156 1.614l-.48.016zm-20.272-10.4a2.56 2.56 0 0 1-1.983-.934c-.406-.49-.688-1.132-.888-2.017-.334-1.48-.233-2.925-.232-2.94v-.014a2.43 2.43 0 0 1 .974-.22h.002c.926 0 1.63.504 2.07.927a5.57 5.57 0 0 1 1.352 2.116c.292.824.34 1.513.144 2.108-.16.472-.704.968-1.44.968zm46.824-1.056c-1.002 0-1.903-.38-2.536-1.066-.52-.565-.89-1.317-1.138-2.303-.403-1.614-.292-3.22-.28-3.373a3.48 3.48 0 0 1 1.25-.284l.09-.002c2.008 0 3.59 1.743 4.27 3.47.384.982.458 1.807.218 2.454-.24.656-1 1.096-1.872 1.096zm-22.808-.944c-12.59-.443-19.123-4.022-22.387-6.946-1.837-1.647-2.858-3.28-3.39-4.358-.504-1.02-.694-1.8-.728-1.95l.017-.007s1.19-.426 3.107-.464l.295-.003c4.245 0 12.888 1.784 23.08 13.723v.008zm13.672-1.272c-10.13-1.542-15.867-5.89-18.898-9.268-3.176-3.54-4.128-6.837-4.17-6.99.018-.006 1.256-.328 3.12-.376a14.24 14.24 0 0 1 .862 0c5.094.112 14.347 2.42 19.084 16.628h.008zm-52-4.864c-3.32 0-6.54-.384-9.57-1.142-5.303-1.326-7.578-3.35-8.552-4.816-.554-.832-.755-1.562-.825-2.028a3.414 3.414 0 0 1-.025-.858l.025-.01c.013-.002 3.52-.987 8.37-1.06a35.027 35.027 0 0 1 7.43.66c8.43 1.683 12.802 8.046 12.845 8.11l.004.007-.01.002c-.05.008-4.065 1.136-9.697 1.136zm23.512-8.544c-1.015 0-1.916-.37-2.538-1.043-.51-.553-.883-1.315-1.136-2.327-.404-1.612-.292-3.2-.28-3.348a3.48 3.48 0 0 1 1.25-.283l.09-.002c2.004 0 3.59 1.743 4.27 3.47.374.95.44 1.767.194 2.428-.248.672-.976 1.104-1.848 1.104zm-17.68-2.424c-.076-.018-4.782-1.23-9.574-4.18-4.435-2.73-9.86-7.56-10.522-15.064v-.004l.01-.003c.002 0 .414-.1 1.024-.123.084-.003.173-.005.267-.005 1.325 0 4.037.373 7.317 2.867 4.176 3.184 8.032 8.736 11.48 16.52zm11.544-.424c-.03-.012-3.383-1.354-7.575-4.867-3.905-3.274-9.396-9.168-13.372-18.664.002-.002.914-.488 2.31-.576a3.31 3.31 0 0 1 .244-.007c.12 0 .244.004.37.007 1.93.055 4.866.856 8.123 4.37 3.74 4.038 7.08 10.673 9.923 19.722l.008.025-.024-.007zm-29.912-.872c-3.857 0-5.177-2.092-5.566-2.992-.638-1.48-.444-2.95-.443-2.966l.002-.016a8.498 8.498 0 0 1 1.92-.25l.13-.002c3.04 0 5.44 1.544 6.468 3.073.204.303.83 1.355.312 2.177-.416.648-1.36.976-2.824.976zm-8.544-10.776c-2.154 0-5.45-.132-8.913-.762-3.435-.624-5.382-3.545-6.41-5.884-1.12-2.548-1.435-4.98-1.44-5.004h.01c10.627.312 15.645 3.417 17.984 5.966 2.415 2.632 2.558 5.365 2.566 5.538h-.007c-.017 0-1.513.144-3.793.144zm11.064-11.056a42.733 42.733 0 0 1-2.426-3.382c-1.26-1.956-2.423-3.997-2.423-5.668 0-1.612-.38-5.012-.605-6.895-.287-2.387-.576-4.43-.6-4.604l.01.003c.27.097 6.646 2.49 6.646 8.47 0 5.993-.59 12.013-.596 12.073v.01h-.008zm-8.264-.568c-.067 0-.134-.006-.2-.017-1.885-.313-5.197-1.754-8.858-3.853-4.066-2.33-7.368-4.83-9.296-7.033-1.76-2.01-2.803-5.166-3.104-9.38-.214-2.992.042-5.484.07-5.73.33-.11.68-.164 1.05-.164 1.412.023 2.92.658 4.952 2.06 1.585 1.09 3.332 2.576 5.192 4.41 3.21 3.166 5.735 6.346 5.76 6.377l.025.032c.213.38 2.03 3.656 3.447 6.845.9 2.026 1.413 3.486 1.62 4.597.117.633.15 1.048-.004 1.425a.721.721 0 0 1-.308.358.866.866 0 0 1-.352.072z" fill="#435125"/> - <use height="100%" width="100%" xlink:href="#a" transform="matrix(-1 0 0 1 593.742 0)"/> - <path d="M519.064 76.38l-1.884.75-.738.296-2.284-.126-2.138 1.026-3.792 2.592-.167.12-1.413.368-1.313-.566-.745.34-.258 1.535-.71 1.103-.873.614-3.028.31-2.552 1.316-3.32-.89-1.542.605-3.28 2.953-1.675.794-.586-.034-2.222-.114-.94.307-1.4 1.354-2.652.206-.827.572-1.294 2.608-1.402 1.446-.803.17-.87-.318-.653.115-.296 1.67-.634.698-1.776.612-1.418 1.182-1.245.64-1.667-.043h-.383l-1.66.918-3.125.274-1.3 1.24-.286.264-.606.366-.992.592-.243.147-1.196-.212-1.4.554-.567-.87-.968.58-1.284.056-1.598-.712-1.218-.542-.89.13-.31 1.55-.03.166-.937 1.245-1.747 1.06-.238.308-1.988 2.567-3.777 3.972-3.195 1.623-3.31 1.007-2.318 1.904-6.08 3.014-9.595 4.773-1.962.63-2.816.45-5.024 1.848-4.43 1.338-.247.075-.878.266-6.248 1.89-2.908-.308-1.722.626-4.484-.498-3.118.062-1.974.41-3.71 1.78-6.26 3.01-2.07 1.892-3.22 1.68-3.773 1.195.01-1.586-.024-.067-1.307.413-.945.3-3.06.47h-1.703l-1.056-.306-.165.055-6.254 2.06-6.974.673-3.49 1.12-2.61-.042-1.63.486-3.195.39-1.14-.304-.26-.07-9.4.408-4.297-.486-2.05.466-3.438-1.156-5.015-.58-1.172-.352-2.636-.783-1.193.686-.893.096-2.134-.774-.768-.02-1.762.637-1.013-.26-.942-.75-2.21-.33-1.344-1.13-7.522.996-2.04-.6-6.844-1.992-1.09.055-1.355 1.017-2.04.743-1.768.46-2.41.084-2.798-.735-2.884-1.398-1.067-.254-2.38.24-.727.067-4.374-2.346-5.633-3.522-3.823-1.837-1.435-.232-.193.683.712 2.245.243 2.22-.073 2.05-.04 1.27.357 1.14 1.38 1.53.577 1.535.42 4.227-.005 4.29-.67 6.84-.227 1.042-.8 3.543-.732 3.255-2.837 8.666-.78 1.075-1.912 1.304-4.335 2.95-3.193 1.84-1.01.42-2.592.195-1.614-.085-2.01-1.09-1.973-.507-2.586-1.86-2.875-.594-3.153-1.822-.82-.987-1.717-.16-2.38-.716v-.005l-.873-.26-.604-.177-3.037-.084-2.83-1.308-1.492-.36-2.038-.103-2.133.99v-.002l-1.08.505-1.367-.543-.988.062-1.12 1.692-.166.262-.772.408-.96-.013-.75-.02-.814.355-1.094.474v.002l-.966.422-.472.204-.008-.008-.29.058-.517.09-.64.122-1.128-.66-.6-.353-1.005-.205-.542.39-.106 1.842-.495 1.102-1.57 1.386-1.593 1.404-1.11 1.638-2.942 6.712-1.842 2.708-.572.63-1.927 2.126-1.708 1.325-3.937 3.05-3.727 1.394-3.21.656-1.562.006-2.956-.393-2.66-.816-2.92-1.826-3.2-2.573-4.636-4.58-.656-.393-.137-.09-1.46-.935-1.082.027-.424.7-.232 1.01-.196.896-.532 5.093.04.295.28 2.1 3.52 4.92 1.086 2.613.178.298.727 1.22.553.93.055.096 1.203 3.59-.846 2.027.428 1.358-1.07.83-.195 1.173 3.16 3.962.69 1.748-.77 2.423-1.23 1.337-.342.366.174 1.023 1.454 1.308 2.47 2.2 1.32 3.27 1 .876 1.166-.248.648.495.982-.017.967.966.626.303.99.493.78 1.018.174 3.13 1.457 3.887.023 2.108.008.3.907 1.558.285 1.23-.484 3.256 1.156 1.045 1.254-.257.81.128 1.3 1.084 1.576 2.4 1.54-.225.978.47 4.722 4.267 1.07.54.06.035.77.386.958.967 1.485-.986.165-.018 1.614-.142.71.477 1.362.92 1.787-.024 3.875 1.188 1.696.436 3.408 2.118 1.45.896.857.697 1.138.93 2.276.978 1.952.467 1.058.25.796.31.02-.05.01.002-.018.05 4.227 1.62 2.288.533 2.12.78 1.54.563 1.132.018 1.6-1.346 1.55-.09 1.286.322 1.256-.21 1.988-1.226.388-.575 1.41-.67 4.755-.59 1.39.45 3.568-1.552 2.39.666 2.117-.75 4.623 1.026 1.23.865 1.373 1.572.168.006 1.53.03-.64 1.065 2.02 2.118 1.823 2.756.123.364 1.326 3.89.985 1.38.69 1.924.033 1.254-1.072.818-.176.466-.06.173.217.524.404-.22.77-.427.933-.145 1.653.176 1.09.115 1.724-.855 1.142-.568 1.834.79 2.016-.023.847.376 2.396 1.087 1.222.115.452-.297.288-.684-.148-.797-.916-1.06-2.025-2.35-.83-1.207-.63-1.75-.196-2.234-.14-1.51.252-1.98.543-.708.4-1.575h.007l.103-.412 1.125-1.492 2.98-1.915 3.2-2.865 2.53-1.668 2.607-1.13.07-.317.29.117 6.634-2.255.108-.013 2.954-.514 19.936 1.404.74-.224.002-.005.664-1.864.358-.345.237-.227 2.19-.965 1.026-.146 2.845.702 1.166.288 1.865-1.046 1.324.022 2.734-1.492 1.69.042.64-.257 3.29-2.363 3.17-.908.824-.44.29-.158 3.248-1.716 2.063-1.584 1.78-.947 1.95-.503 5.105-.36 1.027-1.71 2.195-.292 1.326-1.496 1.516-.617 1.088-1.567.91-1.312 1.274-.737 4.08-.255 4.836.6.64-.39 1.092-3.9 1.144-.73 3.08-4.49.01-1.637.004-1.366.506-1.946-.344-3.512.408-3.557 1.915-4.52 1.688-1.823 2.72-1.84 1.384-.604 1.96-.33v-.004l.287-.05.5-.085 6.745-.09c.093-.07 2.453-.035 2.453-.035l2.25-.03 5.69 1.012.406.07 1.923.624 2.22 1.727 2.348 2.294.44.43 1.523.64.46.2 1.257-.2 1.79-.932 1.35-1.142 1.84-1.005.045-.063 1.036-1.56.033-.03.022.005.002-.01-.018-.003.408-.62 3.558-1.387 4.184-.243.47-.255.262-.14 1.105-1.298 1.036-.01 2.508.908 1.765-.35 1.4.56 1.088-.13 2.052-.242 2.203 1.55 1.284.164 4.526 2.648.235.038.122.023.26.042.536-.16.8-.23.105-.03.1.138.515.725.706.102.835-1.114-.33-.506-.127-.184-1.616-.33-1.452-2.48 1.382-1.49-2.17-2.66-.36-.44-.12-.19-.75-1.137-3.798-5.787-4.946-3.948-.002.003-1.732-1.386-.01-.008-.608-.476-2.64-2.687-1.888-2.503-.247-.54-.39-.85-1.13-2.46-1.97-1.518-1.604-1.754-.08-.103-3.31-4.5-.545-.755-.782-.452-1.653-.01-.156-.158-.093-.097.056-.058.793-.788.884-.222.38-.872-1.686-4.883-.01-.17-.125-1.56 1.374-7.084.175-.863 2.342-4.767 1.452-1.19 1.583-3.112 1.356-1.99 1.3-1.265.227-.135 2.347-1.42 1.972-.278 1.878-.265 3.28 1.01 3.12-.06.61-.064 1.415-.163 2.328-.733 1.1-.68.57-.873 1.19-3.99.38-1.27.735-1.378 4.245-4.887 3.21-2.97 7.214-5.29 3.532-2.11 1.803-1.078 16.1-7.157 4.185-4.24 2.18-2.207 3.857-2.588 4.51-1.85 3.885-3.072.848-1.068 1.068-3.442.892-.215.804-1.74.23-.494 3.167-2.234.36-.18 12.31-6.167 1.788.245.96-1.435 3.58-.6.66-.112.883-.44.75-1.28v-.253l.104-3.42.765-.923.417-2.252.39-.52.412-.54 1.014-.714-.176-.425z" fill="#d47600"/> -</svg> diff --git a/img/flags/4x3/cz.svg b/img/flags/4x3/cz.svg deleted file mode 100644 index 236c4ba..0000000 --- a/img/flags/4x3/cz.svg +++ /dev/null @@ -1,12 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" height="480" width="640" viewBox="0 0 640 480"> - <defs> - <clipPath id="a"> - <path fill-opacity=".67" d="M-74 0h682.67v512H-74z"/> - </clipPath> - </defs> - <g fill-rule="evenodd" clip-path="url(#a)" transform="translate(69.38) scale(.94)" stroke-width="1pt"> - <path fill="#e80000" d="M-74 0h768v512H-74z"/> - <path fill="#fff" d="M-74 0h768v256H-74z"/> - <path d="M-74 0l382.73 255.67L-74 511.01V0z" fill="#00006f"/> - </g> -</svg> diff --git a/img/flags/4x3/de.svg b/img/flags/4x3/de.svg deleted file mode 100644 index 344d6c9..0000000 --- a/img/flags/4x3/de.svg +++ /dev/null @@ -1,5 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" height="480" width="640" viewBox="0 0 640 480"> - <path fill="#ffce00" d="M0 320h640v160.002H0z"/> - <path d="M0 0h640v160H0z"/> - <path fill="#d00" d="M0 160h640v160H0z"/> -</svg> diff --git a/img/flags/4x3/dj.svg b/img/flags/4x3/dj.svg deleted file mode 100644 index eb23800..0000000 --- a/img/flags/4x3/dj.svg +++ /dev/null @@ -1,13 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" height="480" width="640" viewBox="0 0 640 480"> - <defs> - <clipPath id="a"> - <path fill-opacity=".67" d="M-40 0h682.67v512H-40z"/> - </clipPath> - </defs> - <g clip-path="url(#a)" fill-rule="evenodd" transform="translate(37.5) scale(.94)"> - <path fill="#0c0" d="M-40 0h768v512H-40z"/> - <path fill="#69f" d="M-40 0h768v256H-40z"/> - <path d="M-40 0l382.73 255.67L-40 511.01V0z" fill="#fffefe"/> - <path d="M119.8 292.07l-30.82-22.18-30.67 22.4 11.407-36.41-30.613-22.48 37.874-.31 11.747-36.3 12 36.216 37.874.048-30.458 22.695 11.66 36.328z" fill="red"/> - </g> -</svg> diff --git a/img/flags/4x3/dk.svg b/img/flags/4x3/dk.svg deleted file mode 100644 index b29f331..0000000 --- a/img/flags/4x3/dk.svg +++ /dev/null @@ -1,5 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" height="480" width="640" viewBox="0 0 640 480"> - <path fill="#c60c30" d="M0 0h640.1v480H0z"/> - <path fill="#fff" d="M205.714 0h68.57v480h-68.57z"/> - <path fill="#fff" d="M0 205.714h640.1v68.57H0z"/> -</svg> diff --git a/img/flags/4x3/dm.svg b/img/flags/4x3/dm.svg deleted file mode 100644 index b060f6f..0000000 --- a/img/flags/4x3/dm.svg +++ /dev/null @@ -1,152 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" height="480" width="640" viewBox="0 0 640 480"> - <defs> - <clipPath id="a"> - <path fill-opacity=".67" d="M-85.01 0h682.67v512H-85.01z"/> - </clipPath> - </defs> - <g fill-rule="evenodd" clip-path="url(#a)" transform="translate(79.7) scale(.94)"> - <path fill="#108c00" d="M-258.27 0h1027.5v512h-1027.5z"/> - <path fill="#ffd600" d="M-260 178.16H772.6v50.162H-260z"/> - <path fill="#ffd600" d="M181.08 0h48.432v512H181.08z"/> - <path d="M227.78 0h48.432v512H227.78z"/> - <path d="M-260 226.59H772.6v50.162H-260z"/> - <path fill="#fff" d="M-260 276.76H772.6v50.162H-260z"/> - <path fill="#fff" d="M276.22 0h48.432v512H276.22z"/> - <rect transform="scale(-1)" ry="137.51" width="273.75" y="-393.87" x="-394.56" height="275.03" fill="#e72910"/> - <g stroke-width="1pt"> - <path d="M250.51 136.92c0-.258 5.61-15.997 5.61-15.997l5.098 15.74s17.08.515 17.08.257-13.51 10.32-13.51 10.32 6.373 18.062 6.118 17.546c-.255-.516-14.787-10.837-14.787-10.837s-14.787 10.32-14.532 10.32 5.608-17.03 5.608-17.03l-13.256-10.063 16.57-.258z"/> - <path d="M251.274 137.72c0-.224 4.857-13.855 4.857-13.855l4.417 13.63s14.794.448 14.794.225-11.7 8.938-11.7 8.938 5.52 15.643 5.298 15.196c-.22-.447-12.807-9.386-12.807-9.386s-12.805 8.94-12.584 8.94 4.857-14.75 4.857-14.75l-11.48-8.716 14.35-.223z" fill="#ffe700"/> - <path d="M253.328 139.987c0-.13 2.8-7.99 2.8-7.99l2.547 7.86s8.53.26 8.53.13-6.747 5.154-6.747 5.154 3.182 9.02 3.055 8.762c-.127-.257-7.384-5.41-7.384-5.41s-7.385 5.153-7.257 5.153 2.8-8.504 2.8-8.504l-6.62-5.025 8.275-.13z" fill="#108c00"/> - </g> - <g stroke-width="1pt"> - <path d="M356.875 211.8c0-.258 5.608-15.997 5.608-15.997l5.1 15.74s17.08.515 17.08.257-13.512 10.32-13.512 10.32 6.375 18.062 6.12 17.546c-.255-.516-14.787-10.837-14.787-10.837s-14.786 10.32-14.53 10.32 5.607-17.03 5.607-17.03l-13.256-10.063 16.57-.258z"/> - <path d="M357.638 212.6c0-.224 4.857-13.855 4.857-13.855l4.416 13.63s14.795.448 14.795.225-11.702 8.938-11.702 8.938 5.52 15.643 5.3 15.196c-.222-.447-12.808-9.386-12.808-9.386s-12.806 8.94-12.585 8.94 4.857-14.75 4.857-14.75l-11.48-8.716 14.35-.223z" fill="#ffe700"/> - <path d="M359.692 214.867c0-.13 2.8-7.99 2.8-7.99l2.547 7.86s8.53.26 8.53.13-6.748 5.154-6.748 5.154 3.182 9.02 3.055 8.762c-.127-.257-7.384-5.41-7.384-5.41s-7.384 5.153-7.256 5.153 2.8-8.504 2.8-8.504l-6.62-5.025 8.275-.13z" fill="#108c00"/> - </g> - <g stroke-width="1pt"> - <path d="M325.875 330.65c0-.258 5.608-15.997 5.608-15.997l5.1 15.74s17.08.515 17.08.257-13.512 10.32-13.512 10.32 6.375 18.062 6.12 17.546c-.255-.516-14.787-10.837-14.787-10.837S316.697 358 316.953 358s5.607-17.03 5.607-17.03l-13.256-10.063 16.57-.258z"/> - <path d="M326.638 331.45c0-.224 4.857-13.855 4.857-13.855l4.416 13.63s14.795.448 14.795.225-11.702 8.938-11.702 8.938 5.52 15.643 5.3 15.196c-.222-.447-12.808-9.386-12.808-9.386s-12.806 8.94-12.585 8.94 4.857-14.75 4.857-14.75l-11.48-8.716 14.35-.223z" fill="#ffe700"/> - <path d="M328.692 333.717c0-.13 2.8-7.99 2.8-7.99l2.547 7.86s8.53.26 8.53.13-6.748 5.154-6.748 5.154 3.182 9.02 3.055 8.762c-.127-.257-7.384-5.41-7.384-5.41s-7.384 5.153-7.256 5.153 2.8-8.504 2.8-8.504l-6.62-5.025 8.275-.13z" fill="#108c00"/> - </g> - <g stroke-width="1pt"> - <path d="M177.167 330.65c0-.258 5.608-15.997 5.608-15.997l5.1 15.74s17.08.515 17.08.257-13.512 10.32-13.512 10.32 6.374 18.062 6.12 17.546c-.256-.516-14.788-10.837-14.788-10.837S167.99 358 168.245 358s5.607-17.03 5.607-17.03l-13.256-10.063 16.57-.258z"/> - <path d="M177.93 331.45c0-.224 4.857-13.855 4.857-13.855l4.416 13.63s14.794.448 14.794.225-11.702 8.938-11.702 8.938 5.52 15.643 5.3 15.196c-.222-.447-12.808-9.386-12.808-9.386s-12.806 8.94-12.585 8.94 4.857-14.75 4.857-14.75l-11.482-8.716 14.352-.223z" fill="#ffe700"/> - <path d="M179.984 333.717c0-.13 2.8-7.99 2.8-7.99l2.547 7.86s8.53.26 8.53.13-6.746 5.154-6.746 5.154 3.182 9.02 3.055 8.762c-.128-.257-7.385-5.41-7.385-5.41s-7.384 5.153-7.256 5.153 2.8-8.504 2.8-8.504l-6.62-5.025 8.274-.13z" fill="#108c00"/> - </g> - <g stroke-width="1pt"> - <path d="M150.01 208.74c0-.258 5.608-15.997 5.608-15.997l5.1 15.74s17.08.515 17.08.257-13.512 10.32-13.512 10.32 6.374 18.062 6.12 17.546c-.256-.516-14.788-10.837-14.788-10.837s-14.786 10.32-14.53 10.32 5.607-17.03 5.607-17.03l-13.256-10.063 16.57-.258z"/> - <path d="M150.773 209.54c0-.224 4.857-13.855 4.857-13.855l4.416 13.63s14.794.448 14.794.225-11.702 8.938-11.702 8.938 5.52 15.643 5.3 15.196c-.222-.447-12.808-9.386-12.808-9.386s-12.806 8.94-12.585 8.94 4.857-14.75 4.857-14.75l-11.48-8.716 14.35-.223z" fill="#ffe700"/> - <path d="M152.827 211.807c0-.13 2.8-7.99 2.8-7.99l2.547 7.86s8.53.26 8.53.13-6.747 5.154-6.747 5.154 3.182 9.02 3.055 8.762c-.127-.257-7.384-5.41-7.384-5.41s-7.384 5.153-7.256 5.153 2.8-8.504 2.8-8.504l-6.62-5.025 8.275-.13z" fill="#108c00"/> - </g> - <g stroke-width="1pt"> - <path d="M324.615 174.14c0 .258-5.608 15.997-5.608 15.997l-5.1-15.74s-17.08-.515-17.08-.257 13.512-10.32 13.512-10.32-6.375-18.062-6.12-17.546c.255.516 14.787 10.837 14.787 10.837s14.786-10.32 14.53-10.32-5.607 17.03-5.607 17.03l13.256 10.063-16.57.258z"/> - <path d="M323.852 173.34c0 .224-4.857 13.855-4.857 13.855l-4.416-13.63s-14.795-.448-14.795-.225 11.702-8.938 11.702-8.938-5.52-15.643-5.3-15.196c.222.447 12.808 9.386 12.808 9.386s12.806-8.94 12.585-8.94-4.857 14.75-4.857 14.75l11.48 8.716-14.35.223z" fill="#ffe700"/> - <path d="M321.798 171.073c0 .13-2.8 7.99-2.8 7.99l-2.547-7.86s-8.53-.26-8.53-.13 6.748-5.154 6.748-5.154-3.182-9.02-3.055-8.762c.127.257 7.384 5.41 7.384 5.41s7.384-5.153 7.256-5.153-2.8 8.504-2.8 8.504l6.62 5.025-8.275.13z" fill="#108c00"/> - </g> - <g stroke-width="1pt"> - <path d="M367.315 290.28c0 .258-5.608 15.997-5.608 15.997l-5.1-15.74s-17.08-.515-17.08-.257 13.512-10.32 13.512-10.32-6.375-18.062-6.12-17.546c.255.516 14.787 10.837 14.787 10.837s14.786-10.32 14.53-10.32-5.607 17.03-5.607 17.03l13.256 10.063-16.57.258z"/> - <path d="M366.552 289.48c0 .224-4.857 13.855-4.857 13.855l-4.416-13.63s-14.795-.448-14.795-.225 11.702-8.938 11.702-8.938-5.52-15.643-5.3-15.196c.222.447 12.808 9.386 12.808 9.386s12.806-8.94 12.585-8.94-4.857 14.75-4.857 14.75l11.48 8.716-14.35.223z" fill="#ffe700"/> - <path d="M364.498 287.213c0 .13-2.8 7.99-2.8 7.99l-2.547-7.86s-8.53-.26-8.53-.13 6.748-5.154 6.748-5.154-3.182-9.02-3.055-8.762c.127.257 7.384 5.41 7.384 5.41s7.384-5.153 7.256-5.153-2.8 8.504-2.8 8.504l6.62 5.025-8.275.13z" fill="#108c00"/> - </g> - <g stroke-width="1pt"> - <path d="M261.425 375.25c0 .258-5.608 15.997-5.608 15.997l-5.1-15.74s-17.08-.515-17.08-.257 13.512-10.32 13.512-10.32-6.375-18.062-6.12-17.546c.255.516 14.787 10.837 14.787 10.837s14.786-10.32 14.53-10.32-5.607 17.03-5.607 17.03l13.256 10.063-16.57.258z"/> - <path d="M260.662 374.45c0 .224-4.857 13.855-4.857 13.855l-4.416-13.63s-14.795-.448-14.795-.225 11.702-8.938 11.702-8.938-5.52-15.643-5.3-15.196c.222.447 12.808 9.386 12.808 9.386s12.806-8.94 12.585-8.94-4.857 14.75-4.857 14.75l11.48 8.716-14.35.223z" fill="#ffe700"/> - <path d="M258.608 372.183c0 .13-2.8 7.99-2.8 7.99l-2.547-7.86s-8.53-.26-8.53-.13 6.748-5.154 6.748-5.154-3.182-9.02-3.055-8.762c.127.257 7.384 5.41 7.384 5.41s7.384-5.153 7.256-5.153-2.8 8.504-2.8 8.504l6.62 5.025-8.275.13z" fill="#108c00"/> - </g> - <g stroke-width="1pt"> - <path d="M161.935 290.28c0 .258-5.608 15.997-5.608 15.997l-5.1-15.74s-17.08-.515-17.08-.257 13.512-10.32 13.512-10.32-6.375-18.062-6.12-17.546c.255.516 14.787 10.837 14.787 10.837s14.786-10.32 14.53-10.32-5.607 17.03-5.607 17.03l13.256 10.063-16.57.258z"/> - <path d="M161.172 289.48c0 .224-4.857 13.855-4.857 13.855l-4.416-13.63s-14.795-.448-14.795-.225 11.702-8.938 11.702-8.938-5.52-15.643-5.3-15.196c.222.447 12.808 9.386 12.808 9.386s12.806-8.94 12.585-8.94-4.857 14.75-4.857 14.75l11.48 8.716-14.35.223z" fill="#ffe700"/> - <path d="M159.118 287.213c0 .13-2.8 7.99-2.8 7.99l-2.547-7.86s-8.53-.26-8.53-.13 6.748-5.154 6.748-5.154-3.182-9.02-3.055-8.762c.127.257 7.384 5.41 7.384 5.41s7.384-5.153 7.256-5.153-2.8 8.504-2.8 8.504l6.62 5.025-8.275.13z" fill="#108c00"/> - </g> - <g stroke-width="1pt"> - <path d="M198.655 175.85c0 .258-5.608 15.997-5.608 15.997l-5.1-15.74s-17.08-.515-17.08-.257 13.512-10.32 13.512-10.32-6.375-18.062-6.12-17.546c.255.516 14.787 10.837 14.787 10.837s14.786-10.32 14.53-10.32-5.607 17.03-5.607 17.03l13.256 10.063-16.57.258z"/> - <path d="M197.892 175.05c0 .224-4.857 13.855-4.857 13.855l-4.416-13.63s-14.795-.448-14.795-.225 11.702-8.938 11.702-8.938-5.52-15.643-5.3-15.196c.222.447 12.808 9.386 12.808 9.386s12.806-8.94 12.585-8.94-4.857 14.75-4.857 14.75l11.48 8.716-14.35.223z" fill="#ffe700"/> - <path d="M195.838 172.783c0 .13-2.8 7.99-2.8 7.99l-2.547-7.86s-8.53-.26-8.53-.13 6.748-5.154 6.748-5.154-3.182-9.02-3.055-8.762c.127.257 7.384 5.41 7.384 5.41s7.384-5.153 7.256-5.153-2.8 8.504-2.8 8.504l6.62 5.025-8.275.13z" fill="#108c00"/> - </g> - <g transform="matrix(1.04 0 0 1.04 -250.6 359.43)"> - <g transform="matrix(.16 -.02 0 .18 429.84 -215.63)" stroke="#000" stroke-width="2.5" fill="#009200"> - <ellipse rx="30.805" ry="189.82" transform="matrix(1.4 0 0 1 -534.29 263.72)" cy="586.13" cx="680.21"/> - <ellipse rx="30.805" ry="189.82" transform="matrix(1.5 0 0 1 -547.22 267.05)" cy="586.13" cx="680.21"/> - <ellipse rx="30.805" ry="189.82" transform="matrix(1.2 0 0 1.1 -364.93 214.1)" cy="586.13" cx="680.21"/> - </g> - <g stroke="#000" transform="translate(72.86 -9.8)"> - <path d="M388.528-52.952c5.994-.333 3.33-3.33 6.327-4.995 2.998-1.666 7.327-.666 8.659 1.332 1.332 1.998.333 3.996 1.998 3.996s46.912-2.535 48.576-.87c1.665 1.665 1.998 4.996.333 6.327-1.665 1.332-58.9 2.868-60.898 1.536-1.998-1.332-4.995-6.993-4.995-7.326z" stroke-width=".501" fill="#a95600"/> - <path d="M529.59 405.46c0 39.983 45.562 27.88 46.81 61.25-.724 35.407-76.706 3.466-78.635-61.25 1.93-64.716 75.107-97.93 76.705-61.01 1.246 30.685-44.88 21.027-44.88 61.01z" transform="matrix(.15 0 0 .1 340.42 -81.69)" stroke-width="3.853" fill="#ff0"/> - <path d="M529.59 405.46c0 39.983 45.562 27.88 46.81 61.25-.724 35.407-76.706 3.466-78.635-61.25 1.93-64.716 75.107-97.93 76.705-61.01 1.246 30.685-44.88 21.027-44.88 61.01z" transform="matrix(.15 0 0 .1 344.42 -81.64)" stroke-width="3.853" fill="#ff0"/> - <path d="M529.59 405.46c0 39.983 45.562 27.88 46.81 61.25-.724 35.407-76.706 3.466-78.635-61.25 1.93-64.716 75.107-97.93 76.705-61.01 1.246 30.685-44.88 21.027-44.88 61.01z" transform="matrix(.15 0 0 .1 348.71 -81.8)" stroke-width="3.853" fill="#ff0"/> - <path d="M529.59 405.46c0 39.983 45.562 27.88 46.81 61.25-.724 35.407-76.706 3.466-78.635-61.25 1.93-64.716 75.107-97.93 76.705-61.01 1.246 30.685-44.88 21.027-44.88 61.01z" transform="matrix(.15 0 0 .1 352.71 -81.75)" stroke-width="3.853" fill="#ff0"/> - <ellipse rx="3.534" ry="3.403" transform="matrix(1.1 .02 -.02 1.15 -75.57 4.68)" cy="-41.086" cx="478.38" stroke-width=".399" fill="#a95600"/> - </g> - <g transform="rotate(-5.8 688.37 -625.22)" stroke="#000" stroke-width="2.5" fill="#009200"> - <ellipse rx="20.814" ry="24.144" transform="matrix(.17 0 0 .32 369.8 -361.65)" cy="905" cx="427.11"/> - <ellipse rx="20.814" ry="24.144" transform="matrix(.17 0 0 .32 364.04 -362.7)" cy="905" cx="427.11"/> - <ellipse rx="20.814" ry="24.144" transform="matrix(.17 0 0 .32 360.64 -370.55)" cy="905" cx="427.11"/> - <ellipse rx="20.814" ry="24.144" transform="matrix(.16 0 0 .35 369.3 -399.35)" cy="905" cx="427.11"/> - <ellipse rx="20.814" ry="24.144" transform="matrix(.16 0 0 .33 377.41 -379.07)" cy="905" cx="427.11"/> - <ellipse rx="20.814" ry="24.144" transform="matrix(.16 0 0 .33 373.22 -382.21)" cy="905" cx="427.11"/> - <ellipse rx="20.814" ry="24.144" transform="matrix(.16 0 0 .33 367.99 -386.66)" cy="905" cx="427.11"/> - <ellipse rx="20.814" ry="24.144" transform="matrix(.16 0 0 .33 363.01 -389.54)" cy="905" cx="427.11"/> - </g> - <path d="M482.57-141.072s-11.702 10.055-10.09 36.95c1.775 27.045 26.52 39.53 26.52 39.53s6.192-7.742 5.231-29.476c-2.097-31.772-13.868-45.705-13.868-45.705l-7.793-1.299z" stroke="#000" stroke-width=".4562" fill="#804bff"/> - <g transform="rotate(4.47 180.98 769.89)" stroke="#000" stroke-width="2.5" fill="#009200"> - <ellipse rx="20.814" ry="24.144" transform="matrix(.17 0 0 .32 369.8 -361.65)" cy="905" cx="427.11"/> - <ellipse rx="20.814" ry="24.144" transform="matrix(.17 0 0 .32 364.04 -362.7)" cy="905" cx="427.11"/> - <ellipse rx="20.814" ry="24.144" transform="matrix(.17 0 0 .32 360.64 -370.55)" cy="905" cx="427.11"/> - <ellipse rx="20.814" ry="24.144" transform="matrix(.16 0 0 .35 369.3 -399.35)" cy="905" cx="427.11"/> - <ellipse rx="20.814" ry="24.144" transform="matrix(.16 0 0 .33 377.41 -379.07)" cy="905" cx="427.11"/> - <ellipse rx="20.814" ry="24.144" transform="matrix(.16 0 0 .33 373.22 -382.21)" cy="905" cx="427.11"/> - <ellipse rx="20.814" ry="24.144" transform="matrix(.16 0 0 .33 367.99 -386.66)" cy="905" cx="427.11"/> - <ellipse rx="20.814" ry="24.144" transform="matrix(.16 0 0 .33 363.01 -389.54)" cy="905" cx="427.11"/> - </g> - <ellipse rx="58.28" ry="186.49" stroke="#000" transform="matrix(.16 -.06 .06 .15 369.61 -145.05)" cy="606.11" cx="624.42" stroke-width="1pt" fill="#c90000"/> - <g stroke="#000" fill="#009200" transform="rotate(1.02 242.4 -1957.8)"> - <ellipse rx="10.823" ry="12.905" transform="matrix(.4 0 0 .3 445.07 -230.53)" cy="356.75" cx="218.13" stroke-width="1.464"/> - <ellipse rx="10.823" ry="12.905" transform="matrix(.35 0 0 .3 457.17 -235.92)" cy="356.75" cx="218.13" stroke-width="1.546"/> - <ellipse rx="10.823" ry="12.905" transform="matrix(.35 0 0 .3 452 -235.92)" cy="356.75" cx="218.13" stroke-width="1.546"/> - <ellipse rx="10.823" ry="12.905" transform="matrix(.37 0 0 .27 449.48 -233.46)" cy="356.75" cx="218.13" stroke-width="1.56"/> - <ellipse rx="10.823" ry="12.905" transform="matrix(.37 0 0 .27 448.95 -237.93)" cy="356.75" cx="218.13" stroke-width="1.56"/> - <ellipse rx="10.823" ry="12.905" transform="matrix(.35 0 0 .3 447.01 -238.85)" cy="356.75" cx="218.13" stroke-width="1.546"/> - <ellipse rx="10.823" ry="12.905" transform="matrix(.35 0 0 .3 448.08 -241.58)" cy="356.75" cx="218.13" stroke-width="1.562"/> - <ellipse rx="10.823" ry="12.905" transform="matrix(.4 0 0 .3 432.77 -243.48)" cy="356.75" cx="218.13" stroke-width="1.464"/> - <ellipse rx="10.823" ry="12.905" transform="matrix(.37 0 0 .27 445.92 -243.48)" cy="356.75" cx="218.13" stroke-width="1.56"/> - <ellipse rx="10.823" ry="12.905" transform="matrix(.35 0 0 .3 444.16 -246.97)" cy="356.75" cx="218.13" stroke-width="1.562"/> - <ellipse rx="10.823" ry="12.905" transform="matrix(.35 0 0 .3 436.14 -243.17)" cy="356.75" cx="218.13" stroke-width="1.546"/> - <ellipse rx="10.823" ry="12.905" transform="matrix(.35 0 0 .3 437.42 -243.88)" cy="356.75" cx="218.13" stroke-width="1.562"/> - <ellipse rx="10.823" ry="12.905" transform="matrix(.35 0 0 .3 438.99 -247.02)" cy="356.75" cx="218.13" stroke-width="1.562"/> - </g> - <g stroke="#000" fill="#009200" transform="matrix(.18 0 0 .2 420.99 -216.8)"> - <ellipse rx="67.438" ry="205.64" transform="matrix(.98 -.3 .36 .87 -245.81 324.4)" cy="564.48" cx="528.68" stroke-width="2.545"/> - <ellipse rx="13.321" ry="40.796" transform="rotate(-23.38 630.52 660.85)" cy="646.07" cx="528.68" stroke-width="2.5"/> - <path d="M139.87 643.99c0 57.677-18.755 86.17-34.55 110.32 7.516-32.47 12.904-52.637 12.904-110.31 0-57.677 29.58-85.337 40.38-101.99-4.187 16.652-18.734 44.312-18.734 101.99z" transform="matrix(1.88 -.46 .95 1.18 -352.26 -10.02)" stroke-width="1.533"/> - <path d="M139.87 643.99c0 57.677-18.755 86.17-34.55 110.32 7.516-32.47 12.904-52.637 12.904-110.31 0-57.677 29.58-85.337 40.38-101.99-4.187 16.652-18.734 44.312-18.734 101.99z" transform="matrix(1.88 -.46 .95 1.18 -348.42 44.06)" stroke-width="1.533"/> - <path d="M139.87 643.99c0 57.677-18.755 86.17-34.55 110.32 7.516-32.47 12.904-52.637 12.904-110.31 0-57.677 29.58-85.337 40.38-101.99-4.187 16.652-18.734 44.312-18.734 101.99z" transform="matrix(1.87 -.5 .98 1.16 -361.92 105.78)" stroke-width="1.533"/> - <ellipse rx="13.321" ry="40.796" transform="matrix(1.8 -.4 .7 1.64 -915.63 -221.01)" cy="646.07" cx="528.68" stroke-width="1.389"/> - <ellipse rx="13.321" ry="40.796" transform="matrix(1.63 -.23 .54 1.35 -739.49 -91.78)" cy="646.07" cx="528.68" stroke-width="1.64"/> - <ellipse rx="13.321" ry="40.796" transform="matrix(1.63 -.2 .5 1.36 -750.62 -91.83)" cy="646.07" cx="528.68" stroke-width="1.64"/> - <ellipse rx="13.321" ry="40.796" transform="matrix(1.3 -.2 .47 1 -531.06 47.57)" cy="646.07" cx="528.68" stroke-width="2.097"/> - <ellipse rx="13.321" ry="40.796" transform="matrix(1.33 -.13 .4 1.03 -517.87 12.21)" cy="646.07" cx="528.68" stroke-width="2.097"/> - <path d="M145.7 569.47c0 34.006-6.712 61.61-14.985 61.61-8.272 0-14.986-27.604-14.986-61.61" transform="matrix(1.03 -.5 .46 1.18 12.77 -14.52)" stroke-width="2.086"/> - <ellipse rx="13.321" ry="40.796" transform="matrix(1.33 -.13 .4 1.03 -519.53 -34.41)" cy="646.07" cx="528.68" stroke-width="2.097"/> - <ellipse rx="13.321" ry="40.796" transform="matrix(1.33 -.1 .38 1.04 -533.98 -40.12)" cy="646.07" cx="528.68" stroke-width="2.097"/> - <path d="M145.7 569.47c0 34.006-6.712 61.61-14.985 61.61-8.272 0-14.986-27.604-14.986-61.61" transform="matrix(.67 -.47 .46 .8 39.49 143.28)" stroke-width="2.88"/> - <path d="M145.7 569.47c0 34.006-6.712 61.61-14.985 61.61-8.272 0-14.986-27.604-14.986-61.61" transform="matrix(.67 -.47 .46 .8 51.14 125.79)" stroke-width="2.88"/> - <path d="M145.7 569.47c0 34.006-6.712 61.61-14.985 61.61-8.272 0-14.986-27.604-14.986-61.61" transform="matrix(.94 -.64 .64 1.1 -40.2 -10.74)" stroke-width="2.086"/> - <path d="M145.7 569.47c0 34.006-6.712 61.61-14.985 61.61-8.272 0-14.986-27.604-14.986-61.61" transform="matrix(.67 -.52 .46 .88 68.63 71.18)" stroke-width="2.742"/> - </g> - <g stroke="#000" stroke-width="2.5" fill="#804bff"> - <path d="M276.27 345.41c-12.278 9.174.41 25.144 12.022 30.68 13.06 7.67 86.603 58.184 136.32 11.998-40.795.833-118.66-63.183-148.34-42.678z" transform="matrix(.16 0 0 .22 457.95 -214.27)"/> - <path d="M276.27 345.41c-12.278 9.174.41 25.144 12.022 30.68 13.06 7.67 86.603 58.184 136.32 11.998-40.795.833-118.66-63.183-148.34-42.678z" transform="matrix(.16 0 0 .22 456.55 -220.15)"/> - <path d="M276.27 345.41c-12.278 9.174.41 25.144 12.022 30.68 13.06 7.67 86.603 58.184 136.32 11.998-40.795.833-118.66-63.183-148.34-42.678z" transform="matrix(.16 0 0 .22 454.77 -225.77)"/> - <path d="M276.27 345.41c-12.278 9.174.41 25.144 12.022 30.68 13.06 7.67 86.603 58.184 136.32 11.998-40.795.833-118.66-63.183-148.34-42.678z" transform="matrix(.16 0 0 .22 450.9 -232.2)"/> - </g> - <g transform="rotate(1.02 -589.59 681.63)"> - <path d="M211.17 247.3c21.773-12.065 56.618-9.75 79.734 11.165 19.36 16.943 45.307 75.194 70.322 92.834-20.227.018-31.298-5.77-42.24-15.18-28.768 15.44-38.128 16.723-63.89 15.63-35.882-1.333-62.46-17.653-68.18-40.603-6.165-21.804 4.926-52.498 24.254-63.847z" transform="matrix(.2 -.04 .05 .18 407.8 -213.64)" stroke="#000" stroke-width="2.5" fill="#804bff"/> - <ellipse rx="14.154" ry="14.986" stroke="#000" transform="matrix(.25 0 0 .13 401.82 -215.18)" cy="323.04" cx="287.23" stroke-width="2.5" fill="red"/> - <ellipse rx="23.254" ry="15.895" stroke="#000" transform="matrix(.2 -.08 .07 .17 398.66 -208.06)" cy="348.26" cx="204.58" stroke-width="2.5" fill="#ff0"/> - <ellipse rx="5.828" ry="5.828" transform="matrix(.2 0 0 .2 411.29 -233.74)" cy="333.86" cx="283.9"/> - <path d="M516.8 260.29c4.425 18.107-6.674 43.083-33.133 52.61-26.775 13.172-46.08 41.83-55.64 88.016-47.245-103.27-23.108-148.28 20.6-160.35 37.376-14.363 60.42-13.37 68.173 19.72z" transform="matrix(.1 0 0 .08 417.85 -191.49)" stroke="#000" stroke-width="6.56" fill="#ff0"/> - <ellipse rx="4.71" ry="4.71" transform="matrix(.2 0 0 .2 418.69 -234.98)" cy="362.39" cx="198.98"/> - </g> - </g> - </g> -</svg> diff --git a/img/flags/4x3/do.svg b/img/flags/4x3/do.svg deleted file mode 100644 index 2923855..0000000 --- a/img/flags/4x3/do.svg +++ /dev/null @@ -1,6745 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" height="480" width="640" viewBox="0 0 640 480"> - <defs> - <clipPath id="a"> - <path fill-opacity=".67" d="M-222.55-115.23H735.4v718.46h-957.95z"/> - </clipPath> - </defs> - <g clip-path="url(#a)" transform="matrix(.67 0 0 .67 148.68 76.99)"> - <path fill-rule="evenodd" fill="#00319c" d="M322.04 328.99H768.5v273.89H322.04z"/> - <path fill-rule="evenodd" fill="#d62918" d="M-256.67 329.84h445.19v273.04h-445.19z"/> - <path fill-rule="evenodd" fill="#00319c" d="M-255.82-115.23h445.19v305.39h-445.19z"/> - <path fill-rule="evenodd" fill="#d62918" d="M324.6-112.67h443.04v305.7H324.6z"/> - <path fill-rule="evenodd" fill="#fff" d="M-256.41 190.12h1025.9v141.69h-1025.9z"/> - <path fill-rule="evenodd" fill="#fff" d="M187.42-113.73h138.27v716.96H187.42z"/> - <path fill="#cecece" d="M246.46 194.28l.703.67-.703-.67z"/> - <path fill="#bdbdbd" d="M247.17 194.28l.704.67-.704-.67z"/> - <path fill="#ada5a5" d="M247.87 194.28l.703.67-.703-.67z"/> - <path fill="#848c9c" d="M252.79 194.28l.704.67-.704-.67z"/> - <path fill="#848ca5" d="M253.97 194.5l.47.223-.47-.223z"/> - <path fill="#848c9c" d="M254.9 194.28l.703.67-.703-.67z"/> - <path fill="#9c9494" d="M259.83 194.28l.704.67-.704-.67z"/> - <path fill="#bdbdbd" d="M260.53 194.28l.704.67-.704-.67z"/> - <path fill="#cecece" d="M261.24 194.28l.703.67-.703-.67z"/> - <path fill="#efefef" d="M241.54 194.95l.704.67-.704-.67z"/> - <path fill="#bdbdbd" d="M242.24 194.95l.703.67-.703-.67z"/> - <path fill="#8c8c8c" d="M242.94 194.95l.703.67-.703-.67z"/> - <path fill="#42425a" d="M243.65 194.95l.703.67-.703-.67z"/> - <path fill="#425a84" d="M244.35 194.95l.704.67-.704-.67z"/> - <path fill="#00184a" d="M245.52 195.17l.47.223-.47-.223z"/> - <path fill="#002984" d="M246.93 195.17l.47.223-.47-.223z"/> - <path fill="#003994" d="M235.73 201.47c-8.315.163-19.44.722-26.72 4.93-4.847 2.8-4.324 10.662 2.098 10.466v.67H209.7v.67l10.553-2.68v-.668h-4.22v-.67h4.923l-1.407-2.677 25.325-2.677-1.407-4.686c9.453-1.136 16.938-.302 26.03 2.01v.668l-5.63-1.34c.654 2.9 3.945 2.17 6.333 1.34l-7.034 1.34v.668l16.18 1.453 16.884 3.902v.67l-9.146-1.34v.67l11.256 3.347-2.11-2.008v-.67l2.814 3.348c4.464.185 7.817 1.192 10.552 4.685l-9.85-4.016 5.63 12.718h.703v-2.008h.702v2.008l6.33-1.34c-1.638-6.74-4.457-14.707-11.255-18.073.6-2.57-.006-3.685-2.11-5.356 2.61 5.14-1.745 7.274-5.628 3.347l-1.408 1.34 1.407-4.686-4.222 4.016.703-4.685h-.702l-.704 4.016-2.11-2.007-.704 2.008-11.256-1.338v-6.024l1.407 2.008h.705v-2.008l3.517 2.008h.704l14.07.67.703 5.354h.703l2.11-4.685c-8.132-3.426-17.9-4.513-26.733-4.686.46-4.552-4.547-5.375-8.44-5.936-6.717-.966-27.388-3.33-28.14 5.935z"/> - <path fill="#002984" d="M261 195.17l.47.223-.47-.223z"/> - <path fill="#00184a" d="M262.41 195.17l.47.223-.47-.223z"/> - <path fill="#314a7b" d="M263.35 194.95l.704.67-.704-.67z"/> - <path fill="#42425a" d="M264.05 194.95l.703.67-.703-.67z"/> - <path fill="#8c8c8c" d="M264.75 194.95l.703.67-.703-.67z"/> - <path fill="#ada5a5" d="M265.46 194.95l.703.67-.703-.67z"/> - <path fill="#dedede" d="M266.16 194.95l.704.67-.704-.67z"/> - <path fill="#ada5a5" d="M239.43 195.62l.703.67-.703-.67z"/> - <path fill="#63636b" d="M240.13 195.62l.703.67-.703-.67z"/> - <path fill="#21315a" d="M240.83 195.62l.703.67-.703-.67z"/> - <path fill="#00215a" d="M241.54 195.62l.704.67-.704-.67z"/> - <path fill="#002984" d="M242.24 195.62l.703.67-.703-.67m23.215 0l.703.67-.703-.67z"/> - <path fill="#00216b" d="M266.16 195.62l.704.67-.704-.67z"/> - <path fill="#10295a" d="M266.86 195.62l.703.67-.703-.67z"/> - <path fill="#636b7b" d="M267.57 195.62l.703.67-.703-.67z"/> - <path fill="#ada5a5" d="M268.27 195.62l.703.67-.703-.67z"/> - <path fill="#efefef" d="M237.32 196.29l.703.67-.703-.67z"/> - <path fill="#8c8c8c" d="M238.02 196.29l.703.67-.703-.67z"/> - <path fill="#10214a" d="M238.72 196.29l.704.67-.704-.67z"/> - <path fill="#00216b" d="M239.43 196.29l.703.67-.703-.67z"/> - <path fill="#184a8c" d="M246.46 196.29l.703.67-.703-.67z"/> - <path fill="#5a6b63" d="M247.17 196.29l.704.67-.704-.67z"/> - <path fill="#295284" d="M247.87 196.29l.703.67-.703-.67m1.407 0l.703.67-.703-.67zm4.223 0l.704.67-.704-.67z"/> - <path fill="#4a636b" d="M257.72 196.29l.703.67-.703-.67z"/> - <path fill="#7b7b52" d="M259.83 196.29l.704.67-.704-.67z"/> - <path fill="#5a6b63" d="M260.53 196.29l.704.67-.704-.67z"/> - <path fill="#002984" d="M268.27 196.29l.703.67-.703-.67z"/> - <path fill="#10295a" d="M268.97 196.29l.704.67-.704-.67z"/> - <path fill="#63636b" d="M269.68 196.29l.703.67-.703-.67z"/> - <path fill="#dedede" d="M270.38 196.29l.703.67-.703-.67z"/> - <path fill="#efefef" d="M235.91 196.96l-.703 1.34.703-1.34z"/> - <path fill="#8c8c8c" d="M236.61 196.96l.703.67-.703-.67z"/> - <path fill="#10295a" d="M237.32 196.96l.703.67-.703-.67z"/> - <path fill="#5a6b63" d="M241.54 196.96l.704.67-.704-.67z"/> - <path fill="#7b7b52" d="M242.24 196.96l.703.67-.703-.67z"/> - <path fill="#ad9431" d="M242.94 196.96l.703.67-.703-.67z"/> - <path fill="#9c8c42" d="M243.65 196.96l.703.67-.703-.67z"/> - <path fill="#395273" d="M244.35 196.96l.704.67-.704-.67z"/> - <path fill="#8c8442" d="M246.46 196.96l.703.67-.703-.67z"/> - <path fill="#9c8c42" d="M247.87 196.96l.703.67-.703-.67z"/> - <path fill="#395273" d="M249.28 196.96l.703.67-.703-.67zm4.22 0l.704.67-.704-.67z"/> - <path fill="#9c8c42" d="M260.53 196.96l.704.67-.704-.67z"/> - <path fill="#bd9c29" d="M263.82 197.18l.47.223-.47-.223z"/> - <path fill="#295284" d="M264.75 196.96l.703.67-.703-.67z"/> - <path fill="#00184a" d="M270.38 196.96l.703.67-.703-.67z"/> - <path fill="#63636b" d="M271.08 196.96l.703.67-.703-.67z"/> - <path fill="#dedede" d="M271.79 196.96l.704.67-.704-.67z"/> - <path fill="#31394a" d="M235.91 197.62l.704.67-.704-.67z"/> - <path fill="#deb518" d="M241.54 197.62l.704.67-.704-.67z"/> - <path fill="#efbd08" d="M244.35 197.62l.704.67-.704-.67z"/> - <path fill="#bd9c29" d="M246.46 197.62l.703.67-.703-.67z"/> - <path fill="#efbd08" d="M247.87 197.62l.703.67-.703-.67z"/> - <path fill="#7b7b52" d="M255.61 197.62l.704.67-.704-.67z"/> - <path fill="#003994" d="M256.31 197.62l.703.67-.703-.67z"/> - <path fill="#4a636b" d="M257.01 197.62l.704.67-.704-.67z"/> - <path fill="#395273" d="M258.42 197.62l.704.67-.704-.67z"/> - <path fill="#184a8c" d="M262.64 197.62l.703.67-.703-.67z"/> - <path fill="#4a636b" d="M264.75 197.62l.703.67-.703-.67z"/> - <path fill="#10214a" d="M271.79 197.62l1.407 1.34-1.407-1.34z"/> - <path fill="#cecece" d="M272.49 197.62l.703.67-.703-.67z"/> - <path fill="#212139" d="M235.21 198.29l.703.67-.703-.67z"/> - <path fill="#bd9c29" d="M241.54 198.29l.704.67-.704-.67z"/> - <path fill="#cead21" d="M242.24 198.29l.703.67-.703-.67z"/> - <path fill="#003994" d="M243.18 198.74l.235.446-.235-.446z"/> - <path fill="#395273" d="M243.88 198.74l.235.446-.235-.446z"/> - <path fill="#6b735a" d="M245.06 198.29l.703.67-.703-.67z"/> - <path fill="#cead21" d="M247.17 198.29l.704.67-.704-.67z"/> - <path fill="#5a6b63" d="M248.57 198.29l.703.67-.703-.67z"/> - <path fill="#9c8c42" d="M255.61 198.29l.704.67-.704-.67z"/> - <path fill="#395273" d="M256.31 198.29l.703.67-.703-.67z"/> - <path fill="#9c8c42" d="M257.01 198.29l.704.67-.704-.67z"/> - <path fill="#184a8c" d="M258.42 198.29l.704.67-.704-.67z"/> - <path fill="#295284" d="M259.12 198.29l.703.67-.703-.67z"/> - <path fill="#8c8442" d="M262.64 198.29l.703.67-.703-.67z"/> - <path fill="#7b7b52" d="M264.75 198.29l.703.67-.703-.67z"/> - <path fill="#efefef" d="M273.19 198.29l.703.67-.703-.67z"/> - <path fill="#cecece" d="M234.5 198.96l.703.67-.703-.67z"/> - <path fill="#00216b" d="M235.21 198.96l.703.67-.703-.67z"/> - <path fill="#7b7b52" d="M241.54 198.96l.704.67-.704-.67z"/> - <path fill="#395273" d="M245.06 198.96l.703.67-.703-.67z"/> - <path fill="#295284" d="M245.76 198.96l.703.67-.703-.67z"/> - <path fill="#4a636b" d="M247.17 198.96l.704.67-.704-.67z"/> - <path fill="#deb518" d="M247.87 198.96l.703.67-.703-.67z"/> - <path fill="#ad9431" d="M248.57 198.96l.703.67-.703-.67m9.145 0l.704.67-.705-.67z"/> - <path fill="#395273" d="M259.36 199.41l.235.446-.235-.446z"/> - <path fill="#efbd08" d="M262.64 198.96l.703.67-.703-.67z"/> - <path fill="#ad9431" d="M263.35 198.96l.704.67-.704-.67z"/> - <path fill="#cead21" d="M264.05 198.96l.703.67-.703-.67z"/> - <path fill="#ad9431" d="M264.75 198.96l.703.67-.703-.67z"/> - <path fill="#002984" d="M272.49 198.96l.703.67-.703-.67z"/> - <path fill="#9c9494" d="M273.19 198.96l.703.67-.703-.67m-38.692.67l.703.67-.702-.67z"/> - <path fill="#002984" d="M235.44 200.08l.235.446-.235-.446z"/> - <path fill="#6b735a" d="M241.54 199.63l.704.67-.704-.67z"/> - <path fill="#bd9c29" d="M242.94 199.63l.703.67-.703-.67z"/> - <path fill="#184a8c" d="M245.06 199.63l.703.67-.703-.67z"/> - <path fill="#5a6b63" d="M245.76 199.63l.703.67-.703-.67z"/> - <path fill="#7b7b52" d="M247.17 199.63l.704.67-.704-.67z"/> - <path fill="#cead21" d="M247.87 199.63l.703.67-.703-.67z"/> - <path fill="#9c8c42" d="M255.61 199.63l.704.67-.704-.67z"/> - <path fill="#4a636b" d="M256.31 199.63l.703.67-.703-.67z"/> - <path fill="#deb518" d="M257.01 199.63l.704.67-.704-.67z"/> - <path fill="#5a6b63" d="M261.94 199.63l.703.67-.703-.67z"/> - <path fill="#4a636b" d="M263.35 199.63l.704.67-.704-.67z"/> - <path fill="#bd9c29" d="M264.52 199.86l.47.223-.47-.223z"/> - <path fill="#bdbdbd" d="M234.5 200.3l.703.67-.703-.67z"/> - <path fill="#395273" d="M241.54 200.3l.704.67-.704-.67z"/> - <path fill="#cead21" d="M242.94 200.3l.703.67-.703-.67z"/> - <path fill="#8c8442" d="M243.65 200.3l.703.67-.703-.67z"/> - <path fill="#395273" d="M244.35 200.3l.704.67-.704-.67z"/> - <path fill="#8c8442" d="M245.76 200.3l.703.67-.703-.67z"/> - <path fill="#5a6b63" d="M249.28 200.3l.703.67-.703-.67z"/> - <path fill="#7b7b52" d="M255.84 200.75l.235.446-.235-.446m1.173-.446l1.407 2.008-1.407-2.008z"/> - <path fill="#4a636b" d="M259.12 200.3l.703.67-.703-.67z"/> - <path fill="#bd9c29" d="M261.94 200.3l.703.67-.703-.67z"/> - <path fill="#deb518" d="M264.05 200.3l.703.67-.703-.67z"/> - <path fill="#ada5a5" d="M231.69 200.97l.703.67-.703-.67z"/> - <path fill="#42425a" d="M234.5 200.97l.703.67-.703-.67z"/> - <path fill="#00216b" d="M235.21 200.97l.703.67-.703-.67z"/> - <path fill="#7b7b52" d="M242.94 200.97l.703.67-.703-.67z"/> - <path fill="#bd9c29" d="M245.76 200.97l.703.67-.703-.67z"/> - <path fill="#cead21" d="M246.46 200.97l.703.67-.703-.67z"/> - <path fill="#395273" d="M247.17 200.97l.704.67-.704-.67z"/> - <path fill="#295284" d="M247.87 200.97l.703.67-.703-.67z"/> - <path fill="#deb518" d="M248.57 200.97l.703.67-.703-.67z"/> - <path fill="#bd9c29" d="M249.28 200.97l.703.67-.703-.67z"/> - <path fill="#7b7b52" d="M259.12 200.97l.703.67-.703-.67z"/> - <path fill="#ad9431" d="M262.64 200.97l.703.67-.703-.67z"/> - <path fill="#cead21" d="M264.05 200.97l.703.67-.703-.67z"/> - <path fill="#184a8c" d="M265.46 200.97l.703.67-.703-.67z"/> - <path fill="#002984" d="M272.49 200.97l.703.67-.703-.67z"/> - <path fill="#42425a" d="M273.19 200.97l.703.67-.703-.67z"/> - <path fill="#9c9494" d="M276.01 200.97l.703.67-.703-.67z"/> - <path fill="#efefef" d="M278.82 200.97l.703.67-.703-.67z"/> - <path fill="#cecece" d="M223.25 201.64l.703.67-.703-.67z"/> - <path fill="#bdbdbd" d="M223.95 201.64l.704.67-.704-.67z"/> - <path fill="#8c8c8c" d="M225.12 201.86l.47.223-.47-.223z"/> - <path fill="#42425a" d="M226.06 201.64l.703.67-.703-.67z"/> - <path fill="#314a7b" d="M226.76 201.64l.704.67-.704-.67z"/> - <path fill="#00184a" d="M227.94 201.86l.47.223-.47-.223z"/> - <path fill="#00216b" d="M228.87 201.64l.703.67-.703-.67z"/> - <path fill="#9c8c42" d="M242.94 201.64l.703.67-.703-.67z"/> - <path fill="#ffce08" d="M245.76 201.64l.703.67-.703-.67z"/> - <path fill="#8c8442" d="M246.46 201.64l.703.67-.703-.67z"/> - <path fill="#6b735a" d="M248.57 201.64l.703.67-.703-.67z"/> - <path fill="#8c8442" d="M249.28 201.64l.703.67-.703-.67z"/> - <path fill="#184a8c" d="M250.68 201.64l.703.67-.703-.67z"/> - <path fill="#7b7b52" d="M251.39 201.64l.703.67-.703-.67z"/> - <path fill="#184a8c" d="M252.09 201.64l.703.67-.703-.67z"/> - <path fill="#395273" d="M254.9 201.64l.703.67-.703-.67m2.11 0l.704.67-.704-.67z"/> - <path fill="#5a6b63" d="M259.12 201.64l.703.67-.703-.67z"/> - <path fill="#bd9c29" d="M259.83 201.64l.704.67-.704-.67z"/> - <path fill="#8c8442" d="M261.24 201.64l.703.67-.703-.67z"/> - <path fill="#184a8c" d="M262.64 201.64l.703.67-.703-.67z"/> - <path fill="#395273" d="M264.05 201.64l.703.67-.703-.67m1.407 0l.703.67-.703-.67z"/> - <path fill="#00216b" d="M278.82 201.64l.703.67-.703-.67z"/> - <path fill="#00184a" d="M280 201.86l.47.223-.47-.223z"/> - <path fill="#314a7b" d="M280.93 201.64l.703.67-.703-.67z"/> - <path fill="#42425a" d="M281.64 201.64l.703.67-.703-.67z"/> - <path fill="#7b7373" d="M282.34 201.64l.703.67-.703-.67z"/> - <path fill="#8c8c8c" d="M283.04 201.64l.704.67-.704-.67z"/> - <path fill="#bdbdbd" d="M283.75 201.64l.703.67-.703-.67z"/> - <path fill="#cecece" d="M284.45 201.64l.703.67-.703-.67m-65.425.67l.703.67-.703-.67z"/> - <path fill="#9c9494" d="M219.73 202.31l.703.67-.703-.67z"/> - <path fill="#7b7373" d="M220.43 202.31l.704.67-.704-.67z"/> - <path fill="#42425a" d="M221.14 202.31l.703.67-.703-.67z"/> - <path fill="#29396b" d="M221.84 202.31l.704.67-.704-.67z"/> - <path fill="#00184a" d="M222.54 202.31l.703.67-.703-.67z"/> - <path fill="#00216b" d="M223.25 202.31l.703.67-.703-.67z"/> - <path fill="#002984" d="M223.95 202.31l.704.67-.704-.67z"/> - <path fill="#00216b" d="M234.5 202.31l.703.67-.703-.67z"/> - <path fill="#8c8442" d="M242.24 202.31l.703.67-.703-.67z"/> - <path fill="#7b7b52" d="M242.94 202.31l.703.67-.703-.67z"/> - <path fill="#184a8c" d="M264.05 202.31l.703.67-.703-.67z"/> - <path fill="#7b7b52" d="M264.75 202.31l.703.67-.703-.67z"/> - <path fill="#295284" d="M265.46 202.31l.703.67-.703-.67z"/> - <path fill="#00184a" d="M271.79 202.31l.704.67-.704-.67z"/> - <path fill="#002984" d="M284.22 202.53l.47.223-.47-.223z"/> - <path fill="#00184a" d="M285.15 202.31l.703.67-.703-.67z"/> - <path fill="#10295a" d="M285.86 202.31l.704.67-.704-.67z"/> - <path fill="#42425a" d="M286.56 202.31l.704.67-.704-.67z"/> - <path fill="#636b7b" d="M287.26 202.31l.703.67-.703-.67z"/> - <path fill="#8c8c8c" d="M287.97 202.31l.703.67-.703-.67z"/> - <path fill="#cecece" d="M288.67 202.31l.704.67-.704-.67z"/> - <path fill="#bdbdbd" d="M216.21 202.98l.704.67-.704-.67z"/> - <path fill="#8c8c8c" d="M216.92 202.98l.703.67-.703-.67z"/> - <path fill="#525a6b" d="M217.62 202.98l.704.67-.704-.67z"/> - <path fill="#10295a" d="M218.32 202.98l.703.67-.703-.67z"/> - <path fill="#00216b" d="M219.03 202.98l.704.67-.704-.67z"/> - <path fill="#395273" d="M226.76 202.98l.704.67-.704-.67z"/> - <path fill="#00184a" d="M234.5 202.98l.703.67-.703-.67z"/> - <path fill="#00215a" d="M271.79 202.98l-.703 1.34.703-1.34z"/> - <path fill="#395273" d="M275.31 202.98l.703.67-.703-.67z"/> - <path fill="#184a8c" d="M276.01 202.98l.703.67-.703-.67z"/> - <path fill="#395273" d="M277.42 202.98l.704.67-.704-.67z"/> - <path fill="#00216b" d="M288.67 202.98l.704.67-.704-.67z"/> - <path fill="#00184a" d="M289.38 202.98l.704.67-.704-.67z"/> - <path fill="#42425a" d="M290.08 202.98l.703.67-.703-.67z"/> - <path fill="#8c8c8c" d="M290.78 202.98l.703.67-.703-.67z"/> - <path fill="#ada5a5" d="M291.49 202.98l.704.67-.704-.67z"/> - <path fill="#efefef" d="M292.19 202.98l.703.67-.703-.67z"/> - <path fill="#dedede" d="M213.4 203.65l.704.67-.704-.67z"/> - <path fill="#7b7373" d="M214.1 203.65l.704.67-.704-.67z"/> - <path fill="#314a7b" d="M214.8 203.65l.703.67-.703-.67z"/> - <path fill="#00184a" d="M215.51 203.65l.703.67-.703-.67z"/> - <path fill="#002984" d="M216.21 203.65l.704.67-.704-.67z"/> - <path fill="#184a8c" d="M221.14 203.65l.703.67-.703-.67z"/> - <path fill="#6b735a" d="M221.84 203.65l.704.67-.704-.67z"/> - <path fill="#395273" d="M222.54 203.65l.703.67-.703-.67z"/> - <path fill="#5a6b63" d="M225.36 203.65l.703.67-.703-.67z"/> - <path fill="#efbd08" d="M226.06 203.65l.703.67-.703-.67z"/> - <path fill="#ffce08" d="M227.23 203.87l.47.223-.47-.223z"/> - <path fill="#4a636b" d="M228.17 203.65l.703.67-.703-.67z"/> - <path fill="#00215a" d="M234.5 203.65l.703.67-.703-.67z"/> - <path fill="#002984" d="M246.23 203.87l.47.223-.47-.223z"/> - <path fill="#00215a" d="M247.17 203.65l.704.67-.704-.67z"/> - <path fill="#00184a" d="M247.87 203.65l.703.67-.703-.67z"/> - <path fill="#29396b" d="M248.57 203.65l.703.67-.703-.67z"/> - <path fill="#425a84" d="M249.28 203.65l.703.67-.703-.67z"/> - <path fill="#636b7b" d="M253.5 203.65l.704.67-.704-.67z"/> - <path fill="#737b94" d="M254.2 203.65l.703.67-.703-.67z"/> - <path fill="#29396b" d="M259.12 203.65l.703.67-.703-.67z"/> - <path fill="#00184a" d="M260.3 203.87l.47.223-.47-.223z"/> - <path fill="#002984" d="M261.7 203.87l.47.223-.47-.223z"/> - <path fill="#6b6b4a" d="M271.79 203.65l.704.67-.704-.67z"/> - <path fill="#7b7b52" d="M276.01 203.65l1.407 5.355-1.407-5.355z"/> - <path fill="#cead21" d="M279.53 203.65l.703.67-.703-.67z"/> - <path fill="#4a636b" d="M280.23 203.65l.704.67-.704-.67z"/> - <path fill="#8c8442" d="M281.64 203.65l.703.67-.703-.67z"/> - <path fill="#395273" d="M284.45 203.65l-.703 2.678.703-2.678z"/> - <path fill="#002984" d="M291.49 203.65l.704.67-.704-.67z"/> - <path fill="#00215a" d="M292.19 203.65l.703.67-.703-.67z"/> - <path fill="#314a7b" d="M292.89 203.65l.704.67-.704-.67z"/> - <path fill="#7b7373" d="M293.6 203.65l.703.67-.703-.67z"/> - <path fill="#cecece" d="M294.3 203.65l.704.67-.704-.67z"/> - <path fill="#efefef" d="M211.29 204.32l.704.67-.704-.67z"/> - <path fill="#8c8c8c" d="M211.99 204.32l.703.67-.703-.67z"/> - <path fill="#31425a" d="M212.69 204.32l.703.67-.703-.67z"/> - <path fill="#00216b" d="M213.4 204.32l.704.67-.704-.67z"/> - <path fill="#5a6b63" d="M220.43 204.32l.704.67-.704-.67z"/> - <path fill="#cead21" d="M223.25 204.32l.703.67-.703-.67z"/> - <path fill="#deb518" d="M225.83 204.54l.47.223-.47-.223z"/> - <path fill="#7b7b52" d="M226.76 204.32l.704.67-.704-.67z"/> - <path fill="#deb518" d="M227.94 204.54l.47.223-.47-.223z"/> - <path fill="#00216b" d="M235.21 204.32l.703.67-.703-.67m8.442 0l.703.67-.703-.67z"/> - <path fill="#63636b" d="M244.35 204.32l.704.67-.704-.67z"/> - <path fill="#cecece" d="M261.24 204.32l.703.67-.703-.67z"/> - <path fill="#bdbdbd" d="M261.94 204.32l.703.67-.703-.67z"/> - <path fill="#ada5a5" d="M262.64 204.32l.703.67-.703-.67z"/> - <path fill="#8c8c8c" d="M263.35 204.32l.704.67-.704-.67z"/> - <path fill="#00184a" d="M264.28 204.77l.235.446-.235-.446z"/> - <path fill="#001039" d="M271.08 204.32l.703.67-.703-.67z"/> - <path fill="#deb518" d="M271.79 204.32l.704.67-.704-.67z"/> - <path fill="#bd9c29" d="M278.12 204.32l.703.67-.703-.67z"/> - <path fill="#7b7b52" d="M278.82 204.32l-.703 1.34.703-1.34z"/> - <path fill="#deb518" d="M279.53 204.32l.703.67-.703-.67z"/> - <path fill="#bd9c29" d="M281.64 204.32l1.407 1.34-1.407-1.34zm4.22 0l.704.67-.704-.67z"/> - <path fill="#ffce08" d="M286.56 204.32l.704.67-.704-.67z"/> - <path fill="#bd9c29" d="M287.26 204.32l.703.67-.703-.67z"/> - <path fill="#ad9431" d="M287.97 204.32l.703.67-.703-.67z"/> - <path fill="#4a636b" d="M288.67 204.32l.704.67-.704-.67z"/> - <path fill="#00216b" d="M294.3 204.32l.704.67-.704-.67z"/> - <path fill="#21315a" d="M295 204.32l.703.67-.703-.67z"/> - <path fill="#8c8c8c" d="M295.71 204.32l.704.67-.704-.67z"/> - <path fill="#dedede" d="M296.41 204.32l.703.67-.703-.67z"/> - <path fill="#9c9494" d="M209.88 204.99l.703.67-.703-.67z"/> - <path fill="#525a6b" d="M210.58 204.99l.704.67-.704-.67z"/> - <path fill="#00215a" d="M211.29 204.99l.704.67-.704-.67z"/> - <path fill="#bd9c29" d="M217.62 204.99l.704.67-.704-.67z"/> - <path fill="#deb518" d="M221.14 204.99l.703.67-.703-.67z"/> - <path fill="#4a636b" d="M221.84 204.99l.704.67-.704-.67z"/> - <path fill="#9c8c42" d="M222.54 204.99l.703.67-.703-.67z"/> - <path fill="#7b7b52" d="M223.95 204.99l.704.67-.704-.67z"/> - <path fill="#ffce08" d="M225.36 204.99l1.407 1.34-1.407-1.34z"/> - <path fill="#8c8442" d="M226.06 204.99l.703.67-.703-.67z"/> - <path fill="#003994" d="M226.76 204.99l.704.67-.704-.67z"/> - <path fill="#295284" d="M227.47 204.99l.704.67-.704-.67z"/> - <path fill="#5a6b63" d="M228.17 204.99l.703.67-.703-.67z"/> - <path fill="#001039" d="M235.21 204.99l.703.67-.703-.67z"/> - <path fill="#00216b" d="M241.54 204.99l.704.67-.704-.67z"/> - <path fill="#00184a" d="M242.24 204.99l.703.67-.703-.67z"/> - <path fill="#00216b" d="M242.94 204.99l.703.67-.703-.67z"/> - <path fill="#8c8c8c" d="M244.35 204.99l.704.67-.704-.67z"/> - <path fill="#dedede" d="M262.64 204.99l.703.67-.703-.67z"/> - <path fill="#63636b" d="M263.58 205.43l.235.446-.235-.446z"/> - <path fill="#002984" d="M264.99 205.43l.235.446-.235-.446z"/> - <path fill="#313931" d="M271.08 204.99l.703.67-.703-.67z"/> - <path fill="#295284" d="M276.71 204.99l.703.67-.703-.67z"/> - <path fill="#003994" d="M278.82 204.99l.703.67-.703-.67z"/> - <path fill="#8c8442" d="M279.53 204.99l.703.67-.703-.67z"/> - <path fill="#184a8c" d="M280.93 204.99l.703.67-.703-.67z"/> - <path fill="#efbd08" d="M281.64 204.99l.703.67-.703-.67z"/> - <path fill="#003994" d="M283.04 204.99l.704.67-.704-.67m2.345.446l.235.447-.235-.447z"/> - <path fill="#cead21" d="M285.86 204.99l.704.67-.704-.67z"/> - <path fill="#efbd08" d="M286.56 204.99l.704.67-.704-.67z"/> - <path fill="#cead21" d="M287.26 204.99l.703.67-.703-.67z"/> - <path fill="#295284" d="M289.38 204.99l.704.67-.704-.67z"/> - <path fill="#ffce08" d="M290.08 204.99l.703.67-.703-.67z"/> - <path fill="#cead21" d="M290.78 204.99l.703.67-.703-.67z"/> - <path fill="#8c8442" d="M291.49 204.99l.704.67-.704-.67z"/> - <path fill="#5a6b63" d="M292.19 204.99l.703.67-.703-.67z"/> - <path fill="#184a8c" d="M292.89 204.99l.704.67-.704-.67z"/> - <path fill="#00216b" d="M296.41 204.99l.703.67-.703-.67z"/> - <path fill="#31394a" d="M297.11 204.99l.704.67-.704-.67z"/> - <path fill="#9c9494" d="M297.82 204.99l.703.67-.703-.67z"/> - <path fill="#efefef" d="M298.52 204.99l.703.67-.703-.67z"/> - <path fill="#ada5a5" d="M208.47 205.66l.703.67-.703-.67z"/> - <path fill="#212139" d="M209.18 205.66l.703.67-.703-.67z"/> - <path fill="#002984" d="M209.88 205.66l.703.67-.703-.67z"/> - <path fill="#5a6b63" d="M212.69 205.66l.703.67-.703-.67z"/> - <path fill="#9c8c42" d="M213.4 205.66l.704.67-.704-.67z"/> - <path fill="#deb518" d="M214.1 205.66l.704.67-.704-.67z"/> - <path fill="#bd9c29" d="M215.51 205.66l.703.67-.703-.67z"/> - <path fill="#7b7b52" d="M217.62 205.66l.704.67-.704-.67z"/> - <path fill="#184a8c" d="M219.03 205.66l.704.67-.704-.67z"/> - <path fill="#395273" d="M219.73 205.66l.703 2.008-.703-2.008z"/> - <path fill="#7b7b52" d="M221.14 205.66l.703.67-.703-.67z"/> - <path fill="#003994" d="M221.84 205.66v2.678h1.407v-2.678h-1.407z"/> - <path fill="#efbd08" d="M223.25 205.66l.703.67-.703-.67z"/> - <path fill="#deb518" d="M223.95 205.66l.704.67-.704-.67z"/> - <path fill="#bd9c29" d="M225.36 205.66l.703.67-.703-.67z"/> - <path fill="#efbd08" d="M226.76 205.66l.704.67-.704-.67z"/> - <path fill="#bd9c29" d="M227.47 205.66l-.704 1.34.704-1.34z"/> - <path fill="#7b7b52" d="M228.17 205.66l.703.67-.703-.67z"/> - <path fill="#00215a" d="M235.21 205.66l.703.67-.703-.67z"/> - <path fill="#002984" d="M238.02 205.66l.703.67-.703-.67z"/> - <path fill="#00184a" d="M239.72 206.6v1.613h3.322l-3.322-1.613z"/> - <path fill="#00215a" d="M240.83 205.66l.703.67-.703-.67z"/> - <path fill="#002984" d="M241.54 205.66l.704.67-.704-.67z"/> - <path fill="#31394a" d="M244.35 205.66l.704.67-.704-.67z"/> - <path fill="#00216b" d="M267.57 205.66l1.407 1.34-1.407-1.34z"/> - <path fill="#002984" d="M268.27 205.66l.703.67-.703-.67z"/> - <path fill="#00184a" d="M270.62 206.1l.235.446-.235-.446z"/> - <path fill="#8c8442" d="M271.08 205.66l.703.67-.703-.67z"/> - <path fill="#9c8c42" d="M280.23 205.66l.704.67-.704-.67z"/> - <path fill="#003994" d="M281.17 206.1l.235.446-.235-.446z"/> - <path fill="#deb518" d="M282.34 205.66l.703.67-.703-.67z"/> - <path fill="#6b735a" d="M283.04 205.66l.704.67-.704-.67z"/> - <path fill="#295284" d="M284.45 205.66l.703.67-.703-.67z"/> - <path fill="#ad9431" d="M286.56 205.66l.704.67-.704-.67z"/> - <path fill="#003994" d="M287.26 205.66l.703.67-.703-.67z"/> - <path fill="#295284" d="M287.97 205.66l.703.67-.703-.67z"/> - <path fill="#8c8442" d="M289.38 205.66l.704.67-.704-.67z"/> - <path fill="#9c8c42" d="M290.08 205.66l.703.67-.703-.67z"/> - <path fill="#deb518" d="M290.78 205.66l.703.67-.703-.67z"/> - <path fill="#ffce08" d="M291.49 207l2.11-.67-2.11.67z"/> - <path fill="#6b735a" d="M293.6 205.66l.703.67-.703-.67z"/> - <path fill="#295284" d="M295 205.66l-.704 1.34.704-1.34z"/> - <path fill="#10214a" d="M298.52 205.66l.703.67-.703-.67z"/> - <path fill="#9c9494" d="M299.22 205.66l.704.67-.704-.67z"/> - <path fill="#bdbdbd" d="M207.07 206.33l.703.67-.703-.67z"/> - <path fill="#42425a" d="M207.77 206.33l.704.67-.704-.67z"/> - <path fill="#002984" d="M208.47 206.33l.703.67-.703-.67z"/> - <path fill="#ad9431" d="M212.69 206.33l.703.67-.703-.67z"/> - <path fill="#bd9c29" d="M214.57 206.55l.47.223-.47-.223m1.641-.223l.705.67-.704-.67z"/> - <path fill="#6b735a" d="M217.62 206.33l.704.67-.704-.67z"/> - <path fill="#395273" d="M221.14 206.33l.703.67-.703-.67z"/> - <path fill="#184a8c" d="M225.59 206.77l.235.446-.235-.446z"/> - <path fill="#9c8c42" d="M226.06 206.33l.703.67-.703-.67z"/> - <path fill="#ffce08" d="M227.94 206.55l.47.223-.47-.223z"/> - <path fill="#8c8442" d="M228.87 206.33l.703.67-.703-.67z"/> - <path fill="#00184a" d="M236.14 206.77l.235.446-.235-.446z"/> - <path fill="#002984" d="M236.61 206.33l.703.67-.703-.67z"/> - <path fill="#001039" d="M237.32 206.33l.703.67-.703-.67z"/> - <path fill="#00216b" d="M238.02 206.33l.703.67-.703-.67z"/> - <path fill="#00215a" d="M244.35 206.33l.704.67-.704-.67z"/> - <path fill="#efefef" d="M245.06 206.33l.703.67-.703-.67z"/> - <path fill="#21315a" d="M263.35 206.33l.704.67-.704-.67z"/> - <path fill="#00184a" d="M268.97 206.33l.704.67-.704-.67z"/> - <path fill="#9c8c42" d="M278.12 206.33l.703.67-.703-.67z"/> - <path fill="#bd9c29" d="M278.82 206.33l.703.67-.703-.67z"/> - <path fill="#efbd08" d="M279.53 206.33l.703.67-.703-.67z"/> - <path fill="#deb518" d="M280.23 206.33l.704.67-.704-.67z"/> - <path fill="#8c8442" d="M284.45 206.33l.703.67-.703-.67z"/> - <path fill="#184a8c" d="M285.15 206.33l.703.67-.703-.67z"/> - <path fill="#bd9c29" d="M286.56 206.33l.704.67-.704-.67z"/> - <path fill="#4a636b" d="M287.26 206.33l.703.67-.703-.67z"/> - <path fill="#7b7b52" d="M287.97 206.33l.703.67-.703-.67z"/> - <path fill="#4a636b" d="M289.38 206.33l.704.67-.704-.67z"/> - <path fill="#5a6b63" d="M290.78 206.33l.703.67-.703-.67z"/> - <path fill="#6b735a" d="M292.19 206.33l.703.67-.703-.67z"/> - <path fill="#7b7b52" d="M292.89 206.33l.704.67-.704-.67z"/> - <path fill="#184a8c" d="M293.6 206.33l.703.67-.703-.67z"/> - <path fill="#efbd08" d="M295.71 206.33l.704.67-.704-.67z"/> - <path fill="#002984" d="M299.22 206.33l.704.67-.704-.67z"/> - <path fill="#212139" d="M299.93 206.33l.704.67-.704-.67z"/> - <path fill="#ada5a5" d="M300.63 206.33l.703.67-.703-.67z"/> - <path fill="#9c9494" d="M206.36 207l-.703 1.34.703-1.34z"/> - <path fill="#00215a" d="M207.07 207l.703.67-.703-.67z"/> - <path fill="#6b735a" d="M212.69 207l.703.67-.703-.67z"/> - <path fill="#295284" d="M214.1 207l.704.67-.704-.67z"/> - <path fill="#003994" d="M214.8 207v2.678h.703L214.8 207z"/> - <path fill="#9c8c42" d="M215.51 207l.703.67-.703-.67z"/> - <path fill="#184a8c" d="M216.92 207l1.407 1.34-1.407-1.34z"/> - <path fill="#395273" d="M217.62 207l.704.67-.704-.67zm8.44 0l.703.67-.703-.67z"/> - <path fill="#003994" d="M227.23 207.22l.47.223-.47-.223z"/> - <path fill="#deb518" d="M228.17 207l.703.67-.703-.67z"/> - <path fill="#bd9c29" d="M228.87 207l.703.67-.703-.67z"/> - <path fill="#001039" d="M236.85 207.44l.235.446-.235-.446z"/> - <path fill="#002984" d="M244.35 207l.704.67-.704-.67z"/> - <path fill="#9c9494" d="M245.06 207l.703.67-.703-.67z"/> - <path fill="#cecece" d="M262.64 207l.703.67-.703-.67z"/> - <path fill="#00216b" d="M263.35 207l.704.67-.704-.67z"/> - <path fill="#000818" d="M269.68 207l.703.67-.703-.67z"/> - <path fill="#395273" d="M278.12 207l.703.67-.703-.67z"/> - <path fill="#003994" d="M278.82 207l.703.67-.703-.67z"/> - <path fill="#7b7b52" d="M279.53 207l-.703 1.34.703-1.34z"/> - <path fill="#ffce08" d="M280.23 207l.704.67-.704-.67z"/> - <path fill="#9c8c42" d="M282.34 207l.703.67-.703-.67z"/> - <path fill="#7b7b52" d="M283.75 207l.703.67-.703-.67z"/> - <path fill="#395273" d="M284.92 207.22l.47.223-.47-.223z"/> - <path fill="#9c8c42" d="M290.78 207l.703.67-.703-.67z"/> - <path fill="#efbd08" d="M291.49 207l.704.67-.704-.67z"/> - <path fill="#cead21" d="M294.3 207l.704.67-.704-.67z"/> - <path fill="#395273" d="M298.52 207l.703.67-.703-.67z"/> - <path fill="#184a8c" d="M299.22 207l.704.67-.704-.67z"/> - <path fill="#00216b" d="M300.63 207l.703.67-.703-.67z"/> - <path fill="#63636b" d="M301.33 207l1.407 1.34-1.407-1.34z"/> - <path fill="#00216b" d="M206.36 207.67l.703.67-.703-.67z"/> - <path fill="#295284" d="M212.69 207.67l.703.67-.703-.67z"/> - <path fill="#184a8c" d="M215.51 207.67l.703.67-.703-.67z"/> - <path fill="#5a6b63" d="M216.92 207.67l.703.67-.703-.67z"/> - <path fill="#7b7b52" d="M219.03 207.67l.704.67-.704-.67z"/> - <path fill="#cead21" d="M221.14 207.67l.703.67-.703-.67m2.11 0l.704.67-.704-.67z"/> - <path fill="#7b7b52" d="M225.36 207.67l.703.67-.703-.67z"/> - <path fill="#6b735a" d="M226.76 207.67l.704.67-.704-.67z"/> - <path fill="#efbd08" d="M228.41 208.11l.235.446-.235-.446z"/> - <path fill="#ad9431" d="M228.87 207.67l.703.67-.703-.67z"/> - <path fill="#00216b" d="M237.32 207.67l.703.67-.703-.67z"/> - <path fill="#002984" d="M237.32 209l2.11-1.34-2.11 1.34z"/> - <path fill="#00216b" d="M239.43 207.67l.703.67-.703-.67z"/> - <path fill="#525a6b" d="M245.06 207.67l.703.67-.703-.67z"/> - <path fill="#63636b" d="M262.64 207.67l.703.67-.703-.67z"/> - <path fill="#00216b" d="M266.86 207.67l.703.67-.703-.67z"/> - <path fill="#002984" d="M266.86 209l2.11-1.34-2.11 1.34z"/> - <path fill="#00184a" d="M268.97 207.67l.704.67-.704-.67z"/> - <path fill="#00216b" d="M269.68 207.67l.703.67-.703-.67z"/> - <path fill="#5a6b63" d="M276.71 207.67l.703.67-.703-.67z"/> - <path fill="#9c8c42" d="M278.12 207.67l.703.67-.703-.67z"/> - <path fill="#efbd08" d="M279.53 207.67l.703.67-.703-.67z"/> - <path fill="#deb518" d="M280.23 207.67l.704.67-.704-.67z"/> - <path fill="#6b735a" d="M282.34 207.67l.703.67-.703-.67zm2.81 0l.703.67-.703-.67m1.407 0l.703.67-.703-.67z"/> - <path fill="#5a6b63" d="M287.26 207.67l.703.67-.703-.67z"/> - <path fill="#efbd08" d="M287.97 207.67l.703.67-.703-.67z"/> - <path fill="#cead21" d="M290.78 207.67l.703.67-.703-.67z"/> - <path fill="#bd9c29" d="M291.49 207.67l.704.67-.704-.67z"/> - <path fill="#6b735a" d="M293.6 207.67l.703.67-.703-.67z"/> - <path fill="#9c8c42" d="M299.93 207.67l.704.67-.704-.67z"/> - <path fill="#002984" d="M301.33 207.67l.703.67-.703-.67z"/> - <path fill="#ada5a5" d="M204.96 208.34l.704.67-.704-.67z"/> - <path fill="#00216b" d="M205.66 208.34l.703.67-.703-.67z"/> - <path fill="#efbd08" d="M213.4 208.34l.704.67-.704-.67z"/> - <path fill="#9c8c42" d="M214.1 208.34l.704.67-.704-.67z"/> - <path fill="#7b7b52" d="M217.15 208.78l.235.446-.235-.446z"/> - <path fill="#ad9431" d="M219.03 208.34l.704.67-.704-.67z"/> - <path fill="#8c8442" d="M220.43 208.34l.704.67-.704-.67z"/> - <path fill="#ad9431" d="M222.31 208.56l.47.223-.47-.223m1.641-.223l.705.67-.704-.67z"/> - <path fill="#efbd08" d="M226.06 208.34l.703.67-.703-.67z"/> - <path fill="#4a636b" d="M228.87 208.34l.703.67-.703-.67z"/> - <path fill="#00184a" d="M243.65 208.34l.703.67-.703-.67z"/> - <path fill="#636b7b" d="M245.06 208.34l.703.67-.703-.67z"/> - <path fill="#8c8c8c" d="M261.94 208.34l.703.67-.703-.67z"/> - <path fill="#424242" d="M262.64 208.34l.703.67-.703-.67z"/> - <path fill="#8c8442" d="M271.08 208.34l.703.67-.703-.67z"/> - <path fill="#5a6b63" d="M280.23 208.34l.704.67-.704-.67z"/> - <path fill="#8c8442" d="M284.45 208.34l.703.67-.703-.67z"/> - <path fill="#7b7b52" d="M285.15 208.34l.703.67-.703-.67z"/> - <path fill="#184a8c" d="M286.56 208.34l.704.67-.704-.67z"/> - <path fill="#7b7b52" d="M291.49 208.34l.704.67-.704-.67z"/> - <path fill="#184a8c" d="M292.89 208.34l.704.67-.704-.67z"/> - <path fill="#efbd08" d="M293.6 208.34l.703.67-.703-.67z"/> - <path fill="#bd9c29" d="M294.3 208.34l.704.67-.704-.67z"/> - <path fill="#7b7b52" d="M295 208.34l-.704 1.34.704-1.34z"/> - <path fill="#5a6b63" d="M297.82 208.34l.703.67-.703-.67z"/> - <path fill="#ffce08" d="M298.52 208.34l.703.67-.703-.67z"/> - <path fill="#efbd08" d="M300.63 208.34l.703.67-.703-.67z"/> - <path fill="#002984" d="M302.04 208.34l.704.67-.704-.67z"/> - <path fill="#8c8c8c" d="M302.74 208.34l.704.67-.704-.67z"/> - <path fill="#525a6b" d="M204.96 209l.704.67-.704-.67z"/> - <path fill="#bd9c29" d="M213.4 209l.704.67-.704-.67z"/> - <path fill="#deb518" d="M214.1 209l.704.67-.704-.67z"/> - <path fill="#184a8c" d="M215.51 209l.703.67-.703-.67z"/> - <path fill="#cead21" d="M218.32 209l.703.67-.703-.67z"/> - <path fill="#bd9c29" d="M219.03 209l-.703 1.34.703-1.34z"/> - <path fill="#ad9431" d="M221.14 209l.703.67-.703-.67z"/> - <path fill="#bd9c29" d="M223.25 209l.703.67-.703-.67z"/> - <path fill="#4a636b" d="M226.76 209l.704.67-.704-.67z"/> - <path fill="#5a6b63" d="M227.47 209l.704.67-.704-.67z"/> - <path fill="#184a8c" d="M228.17 209l.703.67-.703-.67z"/> - <path fill="#292921" d="M244.35 209l.704.67-.704-.67z"/> - <path fill="#cecece" d="M245.06 209l.703.67-.703-.67m16.884 0l.703.67-.703-.67z"/> - <path fill="#efefef" d="M262.64 209l1.407 1.34-1.407-1.34z"/> - <path fill="#31394a" d="M263.35 209l.704.67-.704-.67z"/> - <path fill="#7b7b52" d="M281.64 209l.703.67-.703-.67z"/> - <path fill="#9c8c42" d="M282.34 209l.703.67-.703-.67z"/> - <path fill="#6b735a" d="M284.45 209l.703.67-.703-.67z"/> - <path fill="#ad9431" d="M285.15 209l.703.67-.703-.67z"/> - <path fill="#deb518" d="M287.97 209l.703.67-.703-.67z"/> - <path fill="#395273" d="M290.08 209l.703.67-.703-.67m1.407 0l.703.67-.703-.67z"/> - <path fill="#bd9c29" d="M292.89 209l.704.67-.704-.67z"/> - <path fill="#8c8442" d="M295 209l.703.67L295 209z"/> - <path fill="#cead21" d="M295.71 209l.704.67-.704-.67z"/> - <path fill="#003994" d="M299.22 209l-.703 2.678h.703V209z"/> - <path fill="#7b7b52" d="M299.93 209l.704.67-.704-.67z"/> - <path fill="#5a6b63" d="M301.33 209l.703.67-.703-.67z"/> - <path fill="#425a84" d="M302.98 209.45l.235.446-.235-.446z"/> - <path fill="#42425a" d="M204.96 209.67l.704.67-.704-.67z"/> - <path fill="#7b7b52" d="M213.4 209.67l.704.67-.704-.67m1.407 0l.703.67-.703-.67z"/> - <path fill="#deb518" d="M215.51 209.67l.703.67-.703-.67z"/> - <path fill="#5a6b63" d="M216.92 209.67l.703.67-.703-.67z"/> - <path fill="#ffce08" d="M219.03 209.67l.704.67-.704-.67z"/> - <path fill="#00216b" d="M242.24 209.67l.703.67-.703-.67z"/> - <path fill="#21315a" d="M242.94 209.67l.703.67-.703-.67z"/> - <path fill="#63636b" d="M243.65 209.67l.703.67-.703-.67z"/> - <path fill="#efefef" d="M244.35 209.67l.704.67-.704-.67z"/> - <path fill="#8c8c8c" d="M264.05 209.67l.703.67-.703-.67z"/> - <path fill="#21315a" d="M264.75 209.67l.703.67-.703-.67z"/> - <path fill="#00216b" d="M265.46 209.67l.703.67-.703-.67z"/> - <path fill="#395273" d="M285.86 209.67l.704.67-.704-.67z"/> - <path fill="#8c8442" d="M287.97 209.67l.703.67-.703-.67z"/> - <path fill="#6b735a" d="M288.67 209.67l.704.67-.704-.67z"/> - <path fill="#7b7b52" d="M290.08 209.67l.703.67-.703-.67z"/> - <path fill="#6b735a" d="M292.19 209.67l.703.67-.703-.67z"/> - <path fill="#bd9c29" d="M295.71 209.67l-.703 2.008.703-2.008z"/> - <path fill="#5a6b63" d="M297.11 209.67l.704.67-.704-.67z"/> - <path fill="#ffce08" d="M297.82 209.67l.703.67-.703-.67z"/> - <path fill="#5a6b63" d="M298.52 209.67l.703.67-.703-.67z"/> - <path fill="#395273" d="M299.93 209.67l.704.67-.704-.67z"/> - <path fill="#6b735a" d="M301.33 209.67l.703.67-.703-.67z"/> - <path fill="#7b7373" d="M204.96 210.34l.704.67-.704-.67z"/> - <path fill="#395273" d="M213.4 210.34l.704.67-.704-.67z"/> - <path fill="#9c8c42" d="M216.21 210.34l.704.67-.704-.67z"/> - <path fill="#184a8c" d="M218.32 210.34l.703.67-.703-.67z"/> - <path fill="#002984" d="M226.76 210.34l.704.67-.704-.67z"/> - <path fill="#00216b" d="M227.47 210.34l.704.67-.704-.67z"/> - <path fill="#00184a" d="M228.17 210.34l.703.67-.703-.67z"/> - <path fill="#10295a" d="M228.87 210.34l.703.67-.703-.67z"/> - <path fill="#525a6b" d="M238.02 210.34l.703.67-.703-.67z"/> - <path fill="#848c9c" d="M238.72 210.34l.704.67-.704-.67z"/> - <path fill="#cecece" d="M242.24 210.34l.703.67-.703-.67z"/> - <path fill="#dedede" d="M265.46 210.34l.703.67-.703-.67z"/> - <path fill="#848c9c" d="M268.97 210.34l.704.67-.704-.67z"/> - <path fill="#636b7b" d="M269.68 210.34l.703.67-.703-.67z"/> - <path fill="#10295a" d="M278.82 210.34l.703.67-.703-.67z"/> - <path fill="#00184a" d="M279.53 210.34l.703.67-.703-.67z"/> - <path fill="#00216b" d="M280.23 210.34l.704.67-.704-.67z"/> - <path fill="#002984" d="M280.93 210.34l.703.67-.703-.67z"/> - <path fill="#4a636b" d="M290.08 210.34l.703.67-.703-.67z"/> - <path fill="#6b735a" d="M290.78 210.34l.703.67-.703-.67z"/> - <path fill="#efbd08" d="M292.19 210.34l.703.67-.703-.67z"/> - <path fill="#cead21" d="M292.89 210.34l.704.67-.704-.67z"/> - <path fill="#4a636b" d="M294.3 210.34l.704.67-.704-.67z"/> - <path fill="#deb518" d="M295 210.34l.703.67-.703-.67m2.58.223l.468.223-.468-.223z"/> - <path fill="#8c8442" d="M299.93 210.34l.704.67-.704-.67z"/> - <path fill="#184a8c" d="M301.33 210.34l.703.67-.703-.67z"/> - <path fill="#525a6b" d="M302.74 210.34l.704.67-.704-.67z"/> - <path fill="#cecece" d="M204.96 211.01l.704.67-.704-.67z"/> - <path fill="#00216b" d="M205.66 211.01l.703.67-.703-.67z"/> - <path fill="#7b7b52" d="M214.1 211.01l.704.67-.704-.67z"/> - <path fill="#4a636b" d="M214.8 211.01l.703.67-.703-.67z"/> - <path fill="#002984" d="M219.73 212.35l2.11-.67-2.11.67z"/> - <path fill="#00215a" d="M221.84 211.01l.704.67-.704-.67z"/> - <path fill="#00184a" d="M222.54 211.01l.703.67-.703-.67z"/> - <path fill="#314a7b" d="M223.25 211.01l.703.67-.703-.67z"/> - <path fill="#42425a" d="M223.95 211.01l.704.67-.704-.67z"/> - <path fill="#636b7b" d="M224.65 211.01l.704.67-.704-.67z"/> - <path fill="#8c8c8c" d="M225.36 211.01l.703.67-.703-.67z"/> - <path fill="#9c9494" d="M226.06 211.01l.703.67-.703-.67z"/> - <path fill="#bdbdbd" d="M226.76 211.01l.704.67-.704-.67z"/> - <path fill="#cecece" d="M227.47 211.01l.704.67-.704-.67z"/> - <path fill="#dedede" d="M280.23 211.01l.704.67-.704-.67z"/> - <path fill="#bdbdbd" d="M280.93 211.01l.703.67-.703-.67z"/> - <path fill="#9c9494" d="M281.64 211.01l.703.67-.703-.67z"/> - <path fill="#8c8c8c" d="M282.34 211.01l.703.67-.703-.67z"/> - <path fill="#7b7373" d="M283.04 211.01l.704.67-.704-.67z"/> - <path fill="#42425a" d="M283.75 211.01l.703.67-.703-.67z"/> - <path fill="#314a7b" d="M284.45 211.01l.703.67-.703-.67z"/> - <path fill="#00184a" d="M285.15 211.01l.703.67-.703-.67z"/> - <path fill="#00215a" d="M285.86 211.01l.704.67-.704-.67z"/> - <path fill="#002984" d="M287.03 211.24l.47.223-.47-.223z"/> - <path fill="#184a8c" d="M292.89 211.01l.704.67-.704-.67z"/> - <path fill="#5a6b63" d="M296.41 211.01l.703.67-.703-.67zm1.41 0l.703.67-.703-.67z"/> - <path fill="#295284" d="M299.22 211.01l.704.67-.704-.67z"/> - <path fill="#bd9c29" d="M300.63 211.01l.703.67-.703-.67z"/> - <path fill="#9c9494" d="M302.74 211.01l.704.67-.704-.67z"/> - <path fill="#dedede" d="M204.96 211.68l.704.67-.704-.67z"/> - <path fill="#001039" d="M205.66 211.68l.703.67-.703-.67z"/> - <path fill="#63636b" d="M220.43 211.68l.704.67-.704-.67z"/> - <path fill="#bdbdbd" d="M221.14 211.68l.703.67-.703-.67z"/> - <path fill="#efefef" d="M221.84 211.68l-.703 1.34.703-1.34z"/> - <path fill="#bdbdbd" d="M286.56 211.68l.704.67-.704-.67z"/> - <path fill="#8c8c8c" d="M287.26 211.68l.703.67-.703-.67z"/> - <path fill="#00216b" d="M287.97 211.68l.703.67-.703-.67z"/> - <path fill="#395273" d="M295 211.68l.703.67-.703-.67z"/> - <path fill="#6b735a" d="M295.71 211.68l.704.67-.704-.67z"/> - <path fill="#deb518" d="M296.41 211.68l.703.67-.703-.67z"/> - <path fill="#bd9c29" d="M297.82 211.68l.703.67-.703-.67z"/> - <path fill="#7b7b52" d="M298.52 211.68l.703.67-.703-.67z"/> - <path fill="#00215a" d="M302.04 211.68l.704.67-.704-.67z"/> - <path fill="#bdbdbd" d="M302.74 211.68l.704.67-.704-.67z"/> - <path fill="#dedede" d="M203.55 212.35l.703.67-.703-.67z"/> - <path fill="#63636b" d="M204.25 212.35l.703.67-.703-.67z"/> - <path fill="#001039" d="M205.19 212.8l.235.446-.235-.446z"/> - <path fill="#00216b" d="M217.62 212.35l-.703 1.34.703-1.34z"/> - <path fill="#00184a" d="M218.32 212.35l.703.67-.703-.67z"/> - <path fill="#00216b" d="M219.03 212.35l.704.67-.704-.67z"/> - <path fill="#10214a" d="M220.43 212.35l.704.67-.704-.67z"/> - <path fill="#dedede" d="M286.56 212.35l.704.67-.704-.67z"/> - <path fill="#212139" d="M287.26 212.35l.703.67-.703-.67z"/> - <path fill="#00184a" d="M287.97 212.35l.703.67-.703-.67z"/> - <path fill="#002984" d="M288.91 212.8l.235.446-.235-.446z"/> - <path fill="#184a8c" d="M296.41 212.35l.703.67-.703-.67z"/> - <path fill="#9c8c42" d="M297.11 212.35l.704.67-.704-.67z"/> - <path fill="#295284" d="M299.93 212.35l.704.67-.704-.67z"/> - <path fill="#00216b" d="M302.74 212.35l.704.67-.704-.67z"/> - <path fill="#42425a" d="M303.45 212.35l.703.67-.703-.67z"/> - <path fill="#bdbdbd" d="M304.15 212.35l.703.67-.703-.67z"/> - <path fill="#cecece" d="M202.85 213.02l-1.407 2.008 1.407-2.008z"/> - <path fill="#10214a" d="M203.55 213.02l-1.407 2.008 1.407-2.008z"/> - <path fill="#003994" d="M204.25 213.02c-2.02 2.108-4.886 4.447-3.518 7.363-3.733 2.017-4.397 6.38-5.628 10.04l7.74 1.34 5.627-12.718-7.738.67v-.67l7.035-.67-3.517-5.354z"/> - <path fill="#002984" d="M214.1 213.02l.704.67-.704-.67z"/> - <path fill="#00215a" d="M214.8 213.02l.703.67-.703-.67z"/> - <path fill="#00184a" d="M215.98 213.24l.47.223-.47-.223z"/> - <path fill="#002984" d="M217.62 213.02l.704.67-.704-.67z"/> - <path fill="#63636b" d="M221.14 213.02l.703.67-.703-.67z"/> - <path fill="#8c8c8c" d="M286.56 213.02l.704.67-.704-.67z"/> - <path fill="#002984" d="M287.26 213.02l.703.67-.703-.67z"/> - <path fill="#00216b" d="M291.49 213.02l.704.67-.704-.67z"/> - <path fill="#184a8c" d="M297.82 213.02l.703.67-.703-.67z"/> - <path fill="#395273" d="M298.52 213.02l.703.67-.703-.67z"/> - <path fill="#00215a" d="M304.15 213.02l.703.67-.703-.67z"/> - <path fill="#9c9494" d="M304.85 213.02l2.11 2.008-2.11-2.008z"/> - <path fill="#00216b" d="M204.96 213.69l.704.67-.704-.67z"/> - <path fill="#002984" d="M205.66 213.69l.703.67-.703-.67z"/> - <path fill="#00216b" d="M211.99 213.69l.703.67-.703-.67z"/> - <path fill="#00184a" d="M213.16 213.91l.47.223-.47-.223z"/> - <path fill="#00216b" d="M214.1 213.69l.704.67-.704-.67z"/> - <path fill="#42425a" d="M221.14 213.69l.703.67-.703-.67z"/> - <path fill="#636b7b" d="M286.56 213.69l.704.67-.704-.67z"/> - <path fill="#002984" d="M291.49 213.69l.704.67-.704-.67z"/> - <path fill="#00215a" d="M292.19 213.69l.703.67-.703-.67z"/> - <path fill="#00184a" d="M293.36 213.91l.47.223-.47-.223z"/> - <path fill="#00216b" d="M294.53 214.14l.235.446-.235-.446m10.318-.446l.703.67-.702-.67z"/> - <path fill="#001039" d="M205.66 214.36l.703.67-.703-.67z"/> - <path fill="#00216b" d="M210.11 214.81l.235.446-.235-.446z"/> - <path fill="#00184a" d="M211.05 214.58l.47.223-.47-.223z"/> - <path fill="#00215a" d="M216.21 214.36l.704.67-.704-.67z"/> - <path fill="#002984" d="M220.43 214.36l.704.67-.704-.67z"/> - <path fill="#21315a" d="M221.14 214.36l.703.67-.703-.67z"/> - <path fill="#8c8c8c" d="M285.86 214.36l.704.67-.704-.67z"/> - <path fill="#101810" d="M286.56 214.36l.704.67-.704-.67z"/> - <path fill="#00184a" d="M287.73 214.58l.47.223-.47-.223z"/> - <path fill="#00215a" d="M288.67 214.36l.704.67-.704-.67z"/> - <path fill="#00184a" d="M289.38 214.36l.704.67-.704-.67z"/> - <path fill="#00216b" d="M290.08 214.36l.703.67-.703-.67z"/> - <path fill="#00184a" d="M295.47 214.58l.47.223-.47-.223z"/> - <path fill="#00216b" d="M305.56 214.36l.704.67-.704-.67z"/> - <path fill="#efefef" d="M200.73 215.03l.703.67-.703-.67z"/> - <path fill="#212139" d="M201.44 215.03l.703.67-.703-.67z"/> - <path fill="#00216b" d="M205.66 215.03l.703.67-.703-.67z"/> - <path fill="#002984" d="M206.36 215.03l.703.67-.703-.67z"/> - <path fill="#00184a" d="M208.94 215.25l.47.223-.47-.223z"/> - <path fill="#00216b" d="M214.1 215.03l.704.67-.704-.67z"/> - <path fill="#00184a" d="M214.8 215.03l.703.67-.703-.67z"/> - <path fill="#00216b" d="M215.51 215.03l.703.67-.703-.67z"/> - <path fill="#001039" d="M220.43 215.03l.704.67-.704-.67z"/> - <path fill="#8c8c8c" d="M221.14 215.03l-.704 1.34.704-1.34z"/> - <path fill="#7b7373" d="M285.86 215.03l.704.67-.704-.67z"/> - <path fill="#bdbdbd" d="M286.56 215.03l.704.67-.704-.67z"/> - <path fill="#00215a" d="M287.26 215.03l.703.67-.703-.67z"/> - <path fill="#002984" d="M290.08 215.03l.703.67-.703-.67z"/> - <path fill="#00184a" d="M291.25 215.25l.47.223-.47-.223z"/> - <path fill="#002984" d="M292.19 215.03l.703.67-.703-.67z"/> - <path fill="#00216b" d="M296.41 215.03l.703.67-.703-.67z"/> - <path fill="#00184a" d="M297.11 215.03l.704.67-.704-.67z"/> - <path fill="#002984" d="M297.82 215.03l.703.67-.703-.67z"/> - <path fill="#00184a" d="M306.26 215.03l.703.67-.703-.67z"/> - <path fill="#cecece" d="M306.96 215.03l.703.67-.703-.67z"/> - <path fill="#52525a" d="M200.73 215.7l.703.67-.703-.67z"/> - <path fill="#002984" d="M208.47 215.7l.703.67-.703-.67z"/> - <path fill="#00184a" d="M213.16 215.92l.47.223-.47-.223z"/> - <path fill="#002984" d="M214.1 215.7l.704.67-.704-.67z"/> - <path fill="#10214a" d="M219.73 215.7l.703.67-.703-.67z"/> - <path fill="#ada5a5" d="M287.26 215.7l.703.67-.703-.67z"/> - <path fill="#21315a" d="M287.97 215.7l.703.67-.703-.67z"/> - <path fill="#00216b" d="M292.19 215.7l.703.67-.703-.67z"/> - <path fill="#001039" d="M292.89 215.7l.704.67-.704-.67z"/> - <path fill="#002984" d="M293.6 215.7l.703.67-.703-.67z"/> - <path fill="#31425a" d="M306.96 215.7l.703.67-.703-.67z"/> - <path fill="#efefef" d="M307.67 215.7l.703.67-.703-.67z"/> - <path fill="#ada5a5" d="M200.03 216.37l.703.67-.703-.67z"/> - <path fill="#00216b" d="M200.73 216.37l.703.67-.703-.67m5.628 0l.703.67-.702-.67z"/> - <path fill="#00184a" d="M211.76 216.59l.47.223-.47-.223z"/> - <path fill="#00216b" d="M217.62 216.37l.704.67-.704-.67z"/> - <path fill="#21315a" d="M218.32 216.37l.703.67-.703-.67z"/> - <path fill="#8c8c8c" d="M219.03 216.37l.704.67-.704-.67z"/> - <path fill="#efefef" d="M219.73 216.37l.703.67-.703-.67m68.24 0l.702.67-.703-.67z"/> - <path fill="#8c8c8c" d="M288.67 216.37l.704.67-.704-.67z"/> - <path fill="#314a7b" d="M289.38 216.37l.704.67-.704-.67z"/> - <path fill="#00216b" d="M290.08 216.37l.703.67-.703-.67m3.518 0l-.704 1.34.703-1.34z"/> - <path fill="#001039" d="M294.3 216.37l.704.67-.704-.67z"/> - <path fill="#002984" d="M295 216.37l.703.67-.703-.67z"/> - <path fill="#7b7373" d="M307.67 216.37l.703.67-.703-.67z"/> - <path fill="#efefef" d="M199.33 217.04l.704.67-.704-.67z"/> - <path fill="#10214a" d="M200.03 217.04l.703.67-.703-.67z"/> - <path fill="#002984" d="M207.77 217.04l.704.67-.704-.67m1.407 0l.703.67-.703-.67z"/> - <path fill="#00184a" d="M210.35 217.26l.47.223-.47-.223z"/> - <path fill="#002984" d="M214.1 217.04l.704.67-.704-.67z"/> - <path fill="#00216b" d="M214.8 217.04l.703.67-.703-.67z"/> - <path fill="#00184a" d="M215.51 217.04l.703.67-.703-.67z"/> - <path fill="#42425a" d="M216.21 217.04l.704.67-.704-.67z"/> - <path fill="#8c8c8c" d="M216.92 217.04l.703.67-.703-.67z"/> - <path fill="#cecece" d="M217.62 217.04l.704.67-.704-.67z"/> - <path fill="#dedede" d="M290.08 217.04l.703.67-.703-.67z"/> - <path fill="#8c8c8c" d="M290.78 217.04l.703.67-.703-.67z"/> - <path fill="#525a6b" d="M291.49 217.04l.704.67-.704-.67z"/> - <path fill="#10295a" d="M292.19 217.04l.703.67-.703-.67z"/> - <path fill="#002984" d="M293.6 217.04l.703.67-.703-.67z"/> - <path fill="#003994" d="M294.3 217.04l.704.67-.704-.67z"/> - <path fill="#00216b" d="M295 217.04l.703.67-.703-.67z"/> - <path fill="#001039" d="M295.71 217.04l.704.67-.704-.67z"/> - <path fill="#00216b" d="M296.41 217.04l.703.67-.703-.67m2.814 0l.704.67-.704-.67m8.442 0l.703.67-.704-.67z"/> - <path fill="#bdbdbd" d="M308.37 217.04l.704.67-.704-.67z"/> - <path fill="#8c8c8c" d="M199.33 217.71l.704.67-.704-.67z"/> - <path fill="#00215a" d="M207.77 217.71l.704.67-.704-.67z"/> - <path fill="#00216b" d="M209.18 217.71l.703.67-.703-.67m2.11 0l.704.67-.704-.67z"/> - <path fill="#21315a" d="M211.99 217.71l.703.67-.703-.67z"/> - <path fill="#525a6b" d="M212.69 217.71l.703.67-.703-.67z"/> - <path fill="#ada5a5" d="M214.1 217.71l.704.67-.704-.67z"/> - <path fill="#dedede" d="M214.8 217.71l.703.67-.703-.67m78.088 0l.704.67-.704-.67z"/> - <path fill="#bdbdbd" d="M293.6 217.71l.703.67-.703-.67z"/> - <path fill="#525a6b" d="M295 217.71l.703.67-.703-.67z"/> - <path fill="#21315a" d="M295.71 217.71l.704.67-.704-.67z"/> - <path fill="#002984" d="M298.52 217.71l.703.67-.703-.67z"/> - <path fill="#42425a" d="M308.37 217.71l.704.67-.704-.67z"/> - <path fill="#dedede" d="M198.62 218.38l.703.67-.703-.67z"/> - <path fill="#10295a" d="M199.33 218.38l.704.67-.704-.67z"/> - <path fill="#00215a" d="M204.96 218.38l.704.67-.704-.67z"/> - <path fill="#21315a" d="M209.88 218.38l.703.67-.703-.67z"/> - <path fill="#52525a" d="M210.58 218.38l.704.67-.704-.67z"/> - <path fill="#7b7373" d="M211.29 218.38l.704.67-.704-.67z"/> - <path fill="#9c9494" d="M214.1 218.38l.704.67-.704-.67z"/> - <path fill="#8c8c8c" d="M292.19 218.38l.703.67-.703-.67z"/> - <path fill="#9c9494" d="M292.89 218.38l.704.67-.704-.67z"/> - <path fill="#bdbdbd" d="M295.47 218.6l.47.223-.47-.223z"/> - <path fill="#8c8c8c" d="M296.41 218.38l.703.67-.703-.67z"/> - <path fill="#292921" d="M297.11 218.38l.704.67-.704-.67z"/> - <path fill="#080829" d="M297.82 218.38l.703.67-.703-.67z"/> - <path fill="#00216b" d="M301.33 218.38l.703.67-.703-.67z"/> - <path fill="#ada5a5" d="M309.07 218.38l.703.67-.703-.67z"/> - <path fill="#63636b" d="M198.62 219.05l.703.67-.703-.67z"/> - <path fill="#00215a" d="M200.73 219.05l.703.67-.703-.67z"/> - <path fill="#00184a" d="M201.91 219.27l.47.223-.47-.223z"/> - <path fill="#00216b" d="M202.85 219.05l.703.67-.703-.67z"/> - <path fill="#8c8c8c" d="M209.18 219.05l.703.67-.703-.67z"/> - <path fill="#efefef" d="M209.88 219.05l.703.67-.703-.67z"/> - <path fill="#8c8c8c" d="M298.52 219.05l.703.67-.703-.67z"/> - <path fill="#10295a" d="M299.22 219.05l.704.67-.704-.67z"/> - <path fill="#00216b" d="M303.45 219.05l.703.67-.703-.67z"/> - <path fill="#00184a" d="M304.62 219.27l.47.223-.47-.223z"/> - <path fill="#002984" d="M305.79 219.49l.235.446-.235-.446z"/> - <path fill="#212139" d="M309.07 219.05l.703.67-.703-.67z"/> - <path fill="#dedede" d="M197.92 219.71l.703.67-.703-.67z"/> - <path fill="#10214a" d="M207.77 219.71l.704.67-.704-.67z"/> - <path fill="#cecece" d="M208.47 219.71l-.704 1.34.704-1.34m90.75 0l1.408 1.34-1.407-1.34z"/> - <path fill="#10214a" d="M299.93 219.71l.704.67-.704-.67z"/> - <path fill="#00184a" d="M306.26 219.71l.703.67-.703-.67z"/> - <path fill="#00216b" d="M306.96 219.71l2.814 2.678-2.814-2.678z"/> - <path fill="#002984" d="M309.07 219.71l.703.67-.703-.67z"/> - <path fill="#9c9494" d="M309.78 219.71l.703.67-.703-.67z"/> - <path fill="#8c8c8c" d="M197.92 220.38l.703.67-.703-.67z"/> - <path fill="#001039" d="M198.62 220.38l.703.67-.703-.67z"/> - <path fill="#10295a" d="M207.07 220.38l.703.67-.703-.67z"/> - <path fill="#101831" d="M300.63 220.38l.703.67-.703-.67z"/> - <path fill="#42425a" d="M309.78 220.38l.703.67-.703-.67z"/> - <path fill="#efefef" d="M197.22 221.05l.703.67-.703-.67z"/> - <path fill="#101829" d="M197.92 221.05l.703.67-.703-.67z"/> - <path fill="#002984" d="M206.36 221.05l.703.67-.703-.67z"/> - <path fill="#9c9494" d="M207.07 221.05l.703.67-.703-.67z"/> - <path fill="#cecece" d="M213.4 221.05l.704.67-.704-.67z"/> - <path fill="#bdbdbd" d="M214.1 221.05v.67h80.902l-24.622-.67H214.1m86.53 0l.703.67-.703-.67z"/> - <path fill="#00215a" d="M301.33 221.05l.703.67-.703-.67z"/> - <path fill="#00216b" d="M309.78 221.05l.703.67-.703-.67z"/> - <path fill="#dedede" d="M310.48 221.05l.703.67-.703-.67z"/> - <path fill="#424242" d="M197.22 221.72l.703.67-.703-.67z"/> - <path fill="#002984" d="M197.92 221.72l.703.67-.703-.67z"/> - <path fill="#52525a" d="M206.36 221.72l.703.67-.703-.67z"/> - <path fill="#9c9494" d="M213.4 221.72l3.518 3.347-3.518-3.347z"/> - <path fill="#00216b" d="M214.1 221.72l2.11 2.008-2.11-2.008z"/> - <path fill="#003994" d="M214.8 221.72l5.907 7.363.424 26.106h6.333c0-8.335 1.86-16.855-4.22-23.43l8.44 5.355-3.517-10.04 19.698 18.742-14.773-22.76 14.07 18.075h.705V221.72H214.8z"/> - <path fill="#00184a" d="M247.87 221.72v20.082h.703l-.703-20.082z"/> - <path fill="#631808" d="M259.83 221.72v20.082h.704l-.704-20.082z"/> - <path fill="#de2110" d="M260.53 221.72v18.743l14.773-17.404-14.773 22.758 20.4-18.743-4.22 9.371 8.442-5.355c-4.55 8.335-4.22 14.558-4.22 24.1h6.33l.424-26.107 5.908-7.363H260.53z"/> - <path fill="#b51010" d="M293.6 221.72l.703.67-.703-.67z"/> - <path fill="#63636b" d="M294.3 221.72l-1.407 2.008 1.407-2.008z"/> - <path fill="#8c8c8c" d="M301.33 221.72l.703.67-.703-.67z"/> - <path fill="#002984" d="M302.04 221.72l.704.67-.704-.67z"/> - <path fill="#63636b" d="M310.48 221.72l.703.67-.703-.67z"/> - <path fill="#ada5a5" d="M196.51 222.39l.704.67-.704-.67z"/> - <path fill="#000818" d="M197.22 222.39l.703.67-.703-.67z"/> - <path fill="#00184a" d="M205.66 222.39l.703.67-.703-.67z"/> - <path fill="#efefef" d="M206.36 222.39l.703.67-.703-.67z"/> - <path fill="#ad1810" d="M292.89 222.39l.704.67-.704-.67z"/> - <path fill="#21315a" d="M302.04 222.39l.704.67-.704-.67z"/> - <path fill="#00184a" d="M309.07 222.39l.703.67-.703-.67z"/> - <path fill="#10214a" d="M310.48 222.39l.703.67-.703-.67z"/> - <path fill="#efefef" d="M311.18 222.39l.704.67-.704-.67z"/> - <path fill="#313931" d="M196.51 223.06l.704.67-.704-.67z"/> - <path fill="#00216b" d="M197.22 223.06l.703.67-.703-.67z"/> - <path fill="#63636b" d="M205.66 223.06l.703.67-.703-.67z"/> - <path fill="#002984" d="M233.1 223.06l.704.67-.704-.67z"/> - <path fill="#8c8c8c" d="M302.04 223.06l.704.67-.704-.67z"/> - <path fill="#00184a" d="M310.01 223.51l.235.446-.235-.446z"/> - <path fill="#9c9494" d="M311.18 223.06l.704.67-.704-.67m-115.14 1.116l.235.446-.235-.446z"/> - <path fill="#292921" d="M196.51 223.73l.704.67-.704-.67z"/> - <path fill="#00216b" d="M204.96 223.73l.704.67-.704-.67z"/> - <path fill="#cecece" d="M205.66 223.73l.703.67-.703-.67z"/> - <path fill="#00215a" d="M216.21 223.73l.704.67-.704-.67z"/> - <path fill="#001039" d="M233.1 223.73l.704.67-.704-.67z"/> - <path fill="#212139" d="M233.8 223.73l1.407 1.34-1.407-1.34z"/> - <path fill="#100808" d="M274.6 223.73l.704.67-.704-.67z"/> - <path fill="#9c9494" d="M292.19 223.73l-4.22 4.686 4.22-4.686z"/> - <path fill="#efefef" d="M302.04 223.73l.704.67-.704-.67z"/> - <path fill="#10295a" d="M302.74 223.73l.704.67-.704-.67z"/> - <path fill="#31425a" d="M311.18 223.73l.704.67-.704-.67z"/> - <path fill="#10295a" d="M196.51 224.4l.704.67-.704-.67z"/> - <path fill="#42425a" d="M204.96 224.4l.704.67-.704-.67z"/> - <path fill="#001039" d="M216.92 224.4l.703.67-.703-.67z"/> - <path fill="#002984" d="M233.1 224.4l.704.67-.704-.67z"/> - <path fill="#6b5a00" d="M233.8 224.4l.703.67-.703-.67z"/> - <path fill="#5a1008" d="M273.19 224.4l.703.67-.703-.67z"/> - <path fill="#7b5a00" d="M273.9 224.4l.703.67-.703-.67z"/> - <path fill="#63636b" d="M302.74 224.4l.704.67-.704-.67z"/> - <path fill="#00216b" d="M311.18 224.4l.704.67-.704-.67z"/> - <path fill="#bdbdbd" d="M311.89 224.4l.703.67-.703-.67z"/> - <path fill="#8c8c8c" d="M195.81 225.07l.703.67-.703-.67z"/> - <path fill="#002984" d="M204.25 225.07l.703.67-.703-.67z"/> - <path fill="#9c9494" d="M204.96 225.07l.704.67-.704-.67z"/> - <path fill="#cecece" d="M216.92 225.07l3.518 3.347-3.518-3.347z"/> - <path fill="#10214a" d="M217.62 225.07l.704.67-.704-.67z"/> - <path fill="#392121" d="M233.8 225.07l.703.67-.703-.67z"/> - <path fill="#cea508" d="M234.74 225.52l.235.446-.235-.446z"/> - <path fill="#293129" d="M235.21 225.07l1.407 1.34-1.407-1.34z"/> - <path fill="#631808" d="M272.49 225.07l.703.67-.703-.67z"/> - <path fill="#634a00" d="M273.9 225.07l.703.67-.703-.67z"/> - <path fill="#ce2110" d="M274.6 225.07l.704.67-.704-.67z"/> - <path fill="#dedede" d="M302.74 225.07l.704.67-.704-.67z"/> - <path fill="#00216b" d="M303.45 225.07l.703.67-.703-.67z"/> - <path fill="#636b7b" d="M311.89 225.07l.703.67-.703-.67z"/> - <path fill="#42425a" d="M195.81 225.74l.703.67-.703-.67z"/> - <path fill="#21315a" d="M204.25 225.74l.703.67-.703-.67z"/> - <path fill="#10214a" d="M218.32 225.74l.703.67-.703-.67z"/> - <path fill="#00216b" d="M233.8 225.74l.703.67-.703-.67z"/> - <path fill="#efbd08" d="M235.21 225.74l.703.67-.703-.67z"/> - <path fill="#5a2908" d="M271.79 225.74l.704.67-.704-.67z"/> - <path fill="#efbd08" d="M273.19 225.74l.703.67-.703-.67z"/> - <path fill="#631808" d="M273.9 225.74l.703.67-.703-.67z"/> - <path fill="#42425a" d="M303.45 225.74l.703.67-.703-.67z"/> - <path fill="#10214a" d="M311.89 225.74l.703.67-.703-.67z"/> - <path fill="#efefef" d="M195.11 226.41l.703.67-.703-.67z"/> - <path fill="#00215a" d="M195.81 226.41l.703.67-.703-.67z"/> - <path fill="#8c8c8c" d="M204.25 226.41l.703.67-.703-.67z"/> - <path fill="#10214a" d="M219.03 226.41l.704.67-.704-.67z"/> - <path fill="#634a00" d="M234.5 226.41l.703.67-.703-.67z"/> - <path fill="#deb508" d="M235.21 226.41l.703.67-.703-.67z"/> - <path fill="#292100" d="M235.91 226.41l.704.67-.704-.67z"/> - <path fill="#211800" d="M271.79 226.41l.704.67-.704-.67z"/> - <path fill="#bd2110" d="M273.9 226.41l.703.67-.703-.67z"/> - <path fill="#9c9494" d="M303.45 226.41l.703.67-.703-.67z"/> - <path fill="#002984" d="M304.15 226.41l.703.67-.703-.67z"/> - <path fill="#00216b" d="M311.89 226.41l.703.67-.703-.67z"/> - <path fill="#bdbdbd" d="M312.59 226.41l.703.67-.703-.67z"/> - <path fill="#9c9494" d="M195.11 227.08l.703.67-.703-.67z"/> - <path fill="#002984" d="M195.81 227.08l.703.67-.703-.67z"/> - <path fill="#00216b" d="M203.55 227.08l.703.67-.703-.67z"/> - <path fill="#cecece" d="M204.25 227.08l.703.67-.703-.67z"/> - <path fill="#10214a" d="M219.73 227.08l.703.67-.703-.67z"/> - <path fill="#00184a" d="M228.41 227.52l.235.446-.235-.446z"/> - <path fill="#10295a" d="M234.5 227.08l.703.67-.703-.67z"/> - <path fill="#000818" d="M235.21 227.08l.703.67-.703-.67z"/> - <path fill="#392100" d="M235.91 227.08l1.407 1.34-1.407-1.34z"/> - <path fill="#00184a" d="M236.61 227.08l.703.67-.703-.67z"/> - <path fill="#7b1008" d="M271.08 227.08l.703.67-.703-.67z"/> - <path fill="#392100" d="M271.79 227.08l.704.67-.704-.67z"/> - <path fill="#210800" d="M272.49 227.08l.703.67-.703-.67z"/> - <path fill="#5a1008" d="M273.19 227.08l.703.67-.703-.67z"/> - <path fill="#631808" d="M279.53 227.08l.703.67-.703-.67z"/> - <path fill="#ce2110" d="M280.23 227.08l.704.67-.704-.67z"/> - <path fill="#7b1008" d="M287.97 227.08l.703.67-.703-.67z"/> - <path fill="#00184a" d="M304.15 227.08l.703.67-.703-.67z"/> - <path fill="#7b7373" d="M312.59 227.08l.703.67-.703-.67z"/> - <path fill="#636b7b" d="M195.11 227.75l.703.67-.703-.67z"/> - <path fill="#21315a" d="M203.55 227.75l.703.67-.703-.67z"/> - <path fill="#10295a" d="M220.43 227.75l.704.67-.704-.67z"/> - <path fill="#102110" d="M228.87 227.75l.703.67-.703-.67z"/> - <path fill="#002984" d="M229.58 227.75l.703.67-.703-.67z"/> - <path fill="#101810" d="M235.91 227.75l.704.67-.704-.67z"/> - <path fill="#00216b" d="M237.32 227.75l.703.67-.703-.67z"/> - <path fill="#b51010" d="M270.38 227.75l.703.67-.703-.67z"/> - <path fill="#211800" d="M271.55 227.97l.47.223-.47-.223z"/> - <path fill="#b51010" d="M272.49 227.75l.703.67-.703-.67z"/> - <path fill="#bd2110" d="M278.12 227.75l.703.67-.703-.67z"/> - <path fill="#5a2908" d="M278.82 227.75l.703.67-.703-.67z"/> - <path fill="#310000" d="M279.53 227.75l.703.67-.703-.67z"/> - <path fill="#7b1008" d="M287.26 227.75l.703.67-.703-.67z"/> - <path fill="#42425a" d="M304.15 227.75l.703.67-.703-.67z"/> - <path fill="#314a7b" d="M312.59 227.75l.703.67-.703-.67z"/> - <path fill="#10214a" d="M195.11 228.42l.703.67-.703-.67z"/> - <path fill="#636b7b" d="M203.55 228.42l.703.67-.703-.67z"/> - <path fill="#42425a" d="M220.43 228.42v27.445h.704c0-7.83 2.47-20.25-.704-27.445z"/> - <path fill="#634a00" d="M228.87 228.42l.703.67-.703-.67z"/> - <path fill="#8c7300" d="M229.58 228.42l.703.67-.703-.67z"/> - <path fill="#10214a" d="M230.28 228.42l.704.67-.704-.67z"/> - <path fill="#002984" d="M235.91 228.42l.704.67-.704-.67z"/> - <path fill="#211800" d="M236.61 228.42l.703.67-.703-.67z"/> - <path fill="#181000" d="M237.32 228.42l.703.67-.703-.67z"/> - <path fill="#ce2110" d="M269.68 228.42l.703.67-.703-.67z"/> - <path fill="#311000" d="M270.38 228.42l.703.67-.703-.67z"/> - <path fill="#392100" d="M271.08 228.42l-1.407 2.008 1.407-2.008z"/> - <path fill="#7b1008" d="M271.79 228.42l.704.67-.704-.67m5.628 0l.704.67-.704-.67z"/> - <path fill="#7b5a00" d="M278.12 228.42l.703.67-.703-.67z"/> - <path fill="#6b5a00" d="M278.82 228.42l.703.67-.703-.67z"/> - <path fill="#b51010" d="M279.53 228.42l.703.67-.703-.67z"/> - <path fill="#631808" d="M287.26 228.42v26.776h.703c0-7.654 2.4-19.74-.703-26.776z"/> - <path fill="#8c8c8c" d="M304.15 228.42l.703.67-.703-.67z"/> - <path fill="#00216b" d="M312.59 228.42l.703.67-.703-.67z"/> - <path fill="#dedede" d="M313.29 228.42l.703.67-.703-.67z"/> - <path fill="#bdbdbd" d="M194.4 229.09l.703.67-.703-.67z"/> - <path fill="#00216b" d="M195.11 229.09l.703.67-.703-.67z"/> - <path fill="#002984" d="M202.85 229.09l.703.67-.703-.67z"/> - <path fill="#9c9494" d="M203.55 229.09l.703.67-.703-.67z"/> - <path fill="#00215a" d="M228.87 229.09l.703.67-.703-.67z"/> - <path fill="#bd9408" d="M229.58 229.09l.703.67-.703-.67z"/> - <path fill="#cea508" d="M230.28 229.09l.704.67-.704-.67z"/> - <path fill="#293129" d="M230.99 229.09l.703.67-.703-.67z"/> - <path fill="#002984" d="M231.69 229.09l.703.67-.703-.67z"/> - <path fill="#00184a" d="M236.61 229.09l.703.67-.703-.67z"/> - <path fill="#392100" d="M237.32 229.09l1.407 1.34-1.407-1.34z"/> - <path fill="#101829" d="M238.02 229.09l.703.67-.703-.67z"/> - <path fill="#5a1008" d="M269.68 229.09l.703.67-.703-.67z"/> - <path fill="#420000" d="M271.08 229.09l.703.67-.703-.67z"/> - <path fill="#ce2110" d="M276.01 229.09l.703.67-.703-.67z"/> - <path fill="#5a2908" d="M276.71 229.09l.703.67-.703-.67z"/> - <path fill="#bd9408" d="M277.42 229.09l.704.67-.704-.67z"/> - <path fill="#efbd08" d="M278.12 229.09l.703.67-.703-.67z"/> - <path fill="#631808" d="M278.82 229.09l.703.67-.703-.67z"/> - <path fill="#cecece" d="M304.15 229.09l.703.67-.703-.67z"/> - <path fill="#00216b" d="M304.85 229.09l.703.67-.703-.67z"/> - <path fill="#8c8c8c" d="M313.29 229.09l.703.67-.703-.67m-118.89.67l.703.67-.703-.67z"/> - <path fill="#00215a" d="M202.85 229.76l.703.67-.703-.67z"/> - <path fill="#dedede" d="M203.55 229.76l.703.67-.703-.67z"/> - <path fill="#313918" d="M229.58 229.76l.703.67-.703-.67z"/> - <path fill="#ffce08" d="M230.28 229.76l.704.67-.704-.67z"/> - <path fill="#ad8c08" d="M230.99 229.76l.703.67-.703-.67z"/> - <path fill="#00215a" d="M231.69 229.76l.703.67-.703-.67z"/> - <path fill="#101829" d="M237.32 229.76l.703.67-.703-.67z"/> - <path fill="#00184a" d="M238.72 229.76l.704.67-.704-.67z"/> - <path fill="#941808" d="M268.97 229.76l.704.67-.704-.67z"/> - <path fill="#ce2110" d="M271.08 229.76l.703.67-.703-.67z"/> - <path fill="#ad1810" d="M276.01 229.76l.703.67-.703-.67z"/> - <path fill="#7b5a00" d="M276.71 229.76l.703.67-.703-.67z"/> - <path fill="#ffce08" d="M277.42 229.76l.704.67-.704-.67z"/> - <path fill="#634a00" d="M278.12 229.76l-.704 1.34.704-1.34z"/> - <path fill="#ce2110" d="M278.82 229.76l.703.67-.703-.67z"/> - <path fill="#10214a" d="M304.85 229.76l.703.67-.703-.67z"/> - <path fill="#00216b" d="M306.26 229.76l.703.67-.703-.67z"/> - <path fill="#525a6b" d="M313.29 229.76l.703.67-.703-.67z"/> - <path fill="#bdbdbd" d="M193.7 230.43l.704.67-.704-.67z"/> - <path fill="#dedede" d="M194.4 230.43l.703.67-.703-.67z"/> - <path fill="#9c9494" d="M195.11 230.43l.703.67-.703-.67z"/> - <path fill="#7b7373" d="M195.81 230.43l.703.67-.703-.67z"/> - <path fill="#42425a" d="M196.51 230.43l.704.67-.704-.67z"/> - <path fill="#00184a" d="M197.22 230.43l.703.67-.703-.67z"/> - <path fill="#002984" d="M197.92 230.43l.703.67-.703-.67z"/> - <path fill="#314a7b" d="M202.85 230.43l.703.67-.703-.67z"/> - <path fill="#002984" d="M229.58 230.43l.703.67-.703-.67z"/> - <path fill="#423100" d="M230.28 230.43l.704.67-.704-.67z"/> - <path fill="#211800" d="M230.99 230.43l.703.67-.703-.67z"/> - <path fill="#181000" d="M231.69 230.43l.703.67-.703-.67z"/> - <path fill="#002984" d="M232.39 230.43l.703.67-.703-.67z"/> - <path fill="#181000" d="M238.02 230.43l.703.67-.703-.67z"/> - <path fill="#211800" d="M238.72 230.43l.704.67-.704-.67z"/> - <path fill="#002984" d="M239.43 230.43l.703.67-.703-.67z"/> - <path fill="#bd2110" d="M268.27 230.43l.703.67-.703-.67z"/> - <path fill="#ad1810" d="M270.38 230.43l.703.67-.703-.67z"/> - <path fill="#ce2110" d="M275.31 230.43l-.704 1.34.704-1.34z"/> - <path fill="#211800" d="M276.71 230.43l.703.67-.703-.67z"/> - <path fill="#631808" d="M278.12 230.43l.703.67-.703-.67z"/> - <path fill="#636b7b" d="M304.85 230.43l.703.67-.703-.67z"/> - <path fill="#000818" d="M306.26 230.43l.703.67-.703-.67z"/> - <path fill="#002984" d="M309.78 230.43l.703.67-.703-.67z"/> - <path fill="#00184a" d="M310.48 230.43l.703.67-.703-.67z"/> - <path fill="#314a7b" d="M311.18 230.43l.704.67-.704-.67z"/> - <path fill="#636b7b" d="M311.89 230.43l.703.67-.703-.67z"/> - <path fill="#63636b" d="M312.59 230.43l.703.67-.703-.67z"/> - <path fill="#cecece" d="M313.29 230.43l.703.67-.703-.67z"/> - <path fill="#bdbdbd" d="M195.11 231.09l.703.67-.703-.67z"/> - <path fill="#dedede" d="M195.81 231.09l.703.67-.703-.67z"/> - <path fill="#bdbdbd" d="M196.51 231.09l.704.67-.704-.67m1.407 0l.703.67-.703-.67z"/> - <path fill="#8c8c8c" d="M198.62 231.09l.703.67-.703-.67z"/> - <path fill="#314a7b" d="M199.33 231.09l.704.67-.704-.67z"/> - <path fill="#00216b" d="M200.03 231.09l.703.67-.703-.67z"/> - <path fill="#7b7373" d="M202.85 231.09l.703.67-.703-.67z"/> - <path fill="#cecece" d="M204.25 231.09l.703.67-.703-.67z"/> - <path fill="#efefef" d="M204.96 231.09l.704.67-.704-.67z"/> - <path fill="#001039" d="M230.99 231.09l2.11 2.008-2.11-2.008z"/> - <path fill="#392100" d="M231.69 231.09l4.925 4.686-4.925-4.686z"/> - <path fill="#001010" d="M232.39 231.09l.703.67-.703-.67z"/> - <path fill="#00216b" d="M238.02 231.09l.703.67-.703-.67z"/> - <path fill="#392100" d="M238.72 231.09l2.11 2.008-2.11-2.008z"/> - <path fill="#101810" d="M239.43 231.09l.703.67-.703-.67z"/> - <path fill="#310000" d="M268.27 231.09l1.407 1.34-1.407-1.34z"/> - <path fill="#392100" d="M268.97 231.09l.704.67-.704-.67z"/> - <path fill="#631808" d="M269.68 231.09l.703.67-.703-.67z"/> - <path fill="#420000" d="M276.71 231.09l.703.67-.703-.67z"/> - <path fill="#ce2110" d="M277.42 231.09l.704.67-.704-.67m7.035 0l.703.67-.703-.67z"/> - <path fill="#9c9494" d="M304.85 231.09l.703.67-.703-.67z"/> - <path fill="#001000" d="M306.26 231.09l.703.67-.703-.67z"/> - <path fill="#00216b" d="M307.67 231.09l.703.67-.703-.67z"/> - <path fill="#21315a" d="M308.37 231.09l.704.67-.704-.67z"/> - <path fill="#7b7373" d="M309.07 231.09l.703.67-.703-.67z"/> - <path fill="#bdbdbd" d="M311.65 231.32l.47.223-.47-.223z"/> - <path fill="#cecece" d="M193 231.76l.703.67-.703-.67z"/> - <path fill="#ada5a5" d="M193.7 231.76l.704.67-.704-.67z"/> - <path fill="#cecece" d="M195.81 231.76l1.407 1.34-1.407-1.34z"/> - <path fill="#ada5a5" d="M196.51 231.76l.704.67-.704-.67z"/> - <path fill="#8c8c8c" d="M197.22 231.76l2.11 2.678-2.11-2.678z"/> - <path fill="#9c9494" d="M197.92 231.76l.703.67-.703-.67z"/> - <path fill="#efefef" d="M199.09 231.99l.47.223-.47-.223z"/> - <path fill="#dedede" d="M200.03 231.76l-.704 1.34.704-1.34z"/> - <path fill="#8c8c8c" d="M200.73 231.76l2.11 3.347-2.11-3.347z"/> - <path fill="#314a7b" d="M201.44 231.76l.703.67-.703-.67z"/> - <path fill="#00184a" d="M202.14 231.76l.704.67-.704-.67z"/> - <path fill="#ada5a5" d="M202.85 231.76l.703.67-.703-.67z"/> - <path fill="#6b735a" d="M204.25 231.76l.703.67-.703-.67z"/> - <path fill="#63636b" d="M204.96 231.76l.704.67-.704-.67z"/> - <path fill="#002984" d="M284.02 231.3l.703.67-.703-.67z"/> - <path fill="#000818" d="M223.95 231.76l.704.67-.704-.67z"/> - <path fill="#00216b" d="M224.65 231.76l.704.67-.704-.67z"/> - <path fill="#001010" d="M233.1 231.76l.704.67-.704-.67z"/> - <path fill="#001039" d="M238.72 231.76l.704.67-.704-.67m1.407 0l.703.67-.703-.67z"/> - <path fill="#631808" d="M267.57 231.76l.703.67-.703-.67z"/> - <path fill="#392100" d="M268.27 231.76l.703.67-.703-.67z"/> - <path fill="#5a1008" d="M274.6 231.76l-1.407 2.008 1.407-2.008z"/> - <path fill="#392100" d="M275.31 231.76l-2.11 2.678 2.11-2.678z"/> - <path fill="#ce2110" d="M276.71 231.76l.703.67-.703-.67z"/> - <path fill="#ad1810" d="M283.04 231.76l.704.67-.704-.67z"/> - <path fill="#310000" d="M283.75 231.76l.703.67-.703-.67z"/> - <path fill="#941808" d="M284.45 231.76l.703.67-.703-.67z"/> - <path fill="#8c8c8c" d="M296.64 232.21l.235.446-.235-.446z"/> - <path fill="#dedede" d="M299.93 231.76l.704.67-.704-.67z"/> - <path fill="#7b7373" d="M300.63 231.76l.703.67-.703-.67z"/> - <path fill="#dedede" d="M304.85 231.76l.703.67-.703-.67z"/> - <path fill="#080829" d="M305.56 231.76l.704.67-.704-.67z"/> - <path fill="#184a00" d="M306.26 231.76l.703.67-.703-.67z"/> - <path fill="#424242" d="M306.96 231.76l.703.67-.703-.67z"/> - <path fill="#9c9494" d="M307.67 231.76l1.407 1.34-1.407-1.34z"/> - <path fill="#cecece" d="M308.37 231.76l.704.67-.704-.67z"/> - <path fill="#424242" d="M310.48 231.76l.703.67-.703-.67z"/> - <path fill="#cecece" d="M311.18 231.76l.704.67-.704-.67z"/> - <path fill="#9c9494" d="M193 232.43l.703.67-.703-.67z"/> - <path fill="#dedede" d="M193.7 232.43l.704.67-.704-.67z"/> - <path fill="#9c9494" d="M195.81 232.43l.703.67-.703-.67m4.925 0l.703.67-.704-.67z"/> - <path fill="#dedede" d="M201.91 232.66l.47.223-.47-.223z"/> - <path fill="#cecece" d="M203.55 232.43l.703.67-.703-.67z"/> - <path fill="#294200" d="M204.25 232.43l.703.67-.703-.67z"/> - <path fill="#295200" d="M204.96 232.43l.704.67-.704-.67z"/> - <path fill="#bdbdbd" d="M205.66 232.43l.703.67-.703-.67z"/> - <path fill="#00184a" d="M223.95 232.43l.704.67-.704-.67z"/> - <path fill="#8c7300" d="M224.65 232.43l.704.67-.704-.67z"/> - <path fill="#392121" d="M225.36 232.43l.703.67-.703-.67z"/> - <path fill="#002984" d="M226.06 232.43l.703.67-.703-.67z"/> - <path fill="#00184a" d="M231.69 232.43v4.686h.703l-.703-4.686z"/> - <path fill="#001010" d="M233.8 232.43l.703.67-.703-.67m5.628 0l.703.67-.702-.67z"/> - <path fill="#00215a" d="M240.83 232.43l.703.67-.703-.67z"/> - <path fill="#ad1810" d="M266.86 232.43l.703.67-.703-.67z"/> - <path fill="#211800" d="M266.86 233.77l2.11-.67-2.11.67z"/> - <path fill="#bd2110" d="M268.97 232.43l.704.67-.704-.67z"/> - <path fill="#001010" d="M275.31 232.43l-.704 1.34.704-1.34z"/> - <path fill="#6b1821" d="M276.01 232.43l.703.67-.703-.67z"/> - <path fill="#ad1810" d="M281.64 232.43l.703.67-.703-.67z"/> - <path fill="#5a2908" d="M282.34 232.43l1.407 1.34-1.407-1.34z"/> - <path fill="#8c7300" d="M283.04 232.43l.704.67-.704-.67z"/> - <path fill="#5a1008" d="M283.75 232.43l.703.67-.703-.67z"/> - <path fill="#ada5a5" d="M297.11 232.43l-.703 1.34.703-1.34z"/> - <path fill="#101810" d="M300.63 232.43l.703.67-.703-.67z"/> - <path fill="#efefef" d="M301.33 232.43l.703.67-.703-.67m3.283.223l.47.223-.47-.223z"/> - <path d="M305.56 232.43l.704.67-.704-.67z"/> - <path fill="#297b00" d="M306.26 232.43l.703.67-.703-.67z"/> - <path fill="#313931" d="M306.96 232.43l.703.67-.703-.67z"/> - <path fill="#cecece" d="M307.67 232.43l.703.67-.703-.67z"/> - <path fill="#52525a" d="M310.48 232.43l.703.67-.703-.67z"/> - <path fill="#9c9494" d="M311.18 232.43l.704.67-.704-.67z"/> - <path fill="#7b7373" d="M193 233.1l.703.67-.703-.67z"/> - <path fill="#bdbdbd" d="M194.17 233.33l.47.223-.47-.223m2.814 0l.47.223-.47-.223z"/> - <path fill="#ada5a5" d="M199.33 233.1l.704.67-.704-.67z"/> - <path fill="#9c9494" d="M200.03 233.1l.703.67-.703-.67z"/> - <path fill="#7b7373" d="M201.44 233.1l.703.67-.703-.67z"/> - <path fill="#efefef" d="M202.85 233.1l.703.67-.703-.67z"/> - <path fill="#314231" d="M203.55 233.1l.703.67-.703-.67z"/> - <path fill="#397b00" d="M204.25 233.1l.703.67-.703-.67z"/> - <path fill="#428c00" d="M204.96 233.1l-1.407 5.355h-.703l1.407-4.686h-.704l-.703 5.354 2.814-1.338-3.518 5.355 2.814-2.007-3.517 2.677-.704 3.347h.703l7.035-8.032-2.11.67v-.67l2.11-.67v-.67h-2.814l-.704-4.685z"/> - <path fill="#5a6b52" d="M205.66 233.1l.703.67-.703-.67z"/> - <path fill="#102121" d="M224.65 233.1l.704.67-.704-.67z"/> - <path fill="#efbd08" d="M225.36 233.1l.703.67-.703-.67z"/> - <path fill="#ad8c08" d="M226.06 233.1l.703.67-.703-.67z"/> - <path fill="#102121" d="M226.76 233.1l.704.67-.704-.67z"/> - <path fill="#002984" d="M227.47 233.1l.704.67-.704-.67z"/> - <path fill="#003994" d="M232.39 233.1c.067 5.37 3.225 7.87 7.738 10.71-.357-4.51-4.177-7.979-7.738-10.71z"/> - <path fill="#001010" d="M233.1 233.1l.704.67-.704-.67z"/> - <path fill="#001039" d="M234.5 233.1l.703.67-.703-.67z"/> - <path fill="#002984" d="M239.43 233.1l.703.67-.703-.67z"/> - <path fill="#211800" d="M240.6 233.33l.47.223-.47-.223z"/> - <path fill="#002984" d="M241.54 233.1l.704.67-.704-.67z"/> - <path fill="#ce2110" d="M266.16 233.1l.704.67-.704-.67z"/> - <path fill="#392100" d="M267.57 233.1l-1.407 2.008 1.407-2.008z"/> - <path fill="#941808" d="M268.27 233.1l.703.67-.703-.67z"/> - <path fill="#003994" d="M275.31 233.1l-7.035 10.71c3.894-2.317 9.184-5.778 7.035-10.71z"/> - <path fill="#ce2110" d="M280.23 233.1l.704.67-.704-.67z"/> - <path fill="#6b2908" d="M280.93 233.1l.703.67-.703-.67z"/> - <path fill="#9c7b08" d="M281.64 233.1l.703.67-.703-.67z"/> - <path fill="#ffce08" d="M282.34 233.1l-.703 1.34.703-1.34z"/> - <path fill="#ce2110" d="M283.75 233.1l.703.67-.703-.67z"/> - <path fill="#294221" d="M300.63 233.1l1.407 1.34-1.407-1.34z"/> - <path fill="#8c8c8c" d="M301.33 233.1l.703.67-.703-.67z"/> - <path fill="#bdbdbd" d="M304.62 233.33l.47.223-.47-.223z"/> - <path fill="#103910" d="M305.56 233.1l.704.67-.704-.67z"/> - <path fill="#319400" d="M306.26 233.1l.703 14.057h.704l2.11-12.05h-.703l-1.407 8.034h-.703l-.704-10.04z"/> - <path fill="#424242" d="M306.96 233.1l.703.67-.703-.67z"/> - <path fill="#bdbdbd" d="M307.67 233.1l.703.67-.703-.67z"/> - <path fill="#185200" d="M309.78 233.1l.703.67-.703-.67z"/> - <path fill="#7b7373" d="M311.18 233.1l.704.67-.704-.67z"/> - <path fill="#ada5a5" d="M312.59 233.1l.703.67-.703-.67z"/> - <path fill="#cecece" d="M313.29 233.1l-.703 1.34.703-1.34z"/> - <path fill="#ada5a5" d="M315.4 233.1l.703.67-.703-.67z"/> - <path fill="#8c8c8c" d="M193 233.77l2.11 2.008-2.11-2.008z"/> - <path fill="#cecece" d="M194.4 233.77l.703 2.008h.704l-1.407-2.008z"/> - <path fill="#9c9494" d="M195.11 233.77l.703.67-.703-.67z"/> - <path fill="#dedede" d="M197.22 233.77l.703.67-.703-.67z"/> - <path fill="#9c9494" d="M197.92 233.77l-.703 1.34.703-1.34z"/> - <path fill="#425242" d="M199.33 233.77l.704.67-.704-.67z"/> - <path fill="#213918" d="M200.03 233.77l.703.67-.703-.67z"/> - <path fill="#ada5a5" d="M200.73 233.77l.703.67-.703-.67z"/> - <path fill="#63636b" d="M202.85 233.77l.703.67-.703-.67z"/> - <path fill="#294200" d="M204.49 234.22l.235.446-.235-.446z"/> - <path fill="#295200" d="M205.66 233.77l.703.67-.703-.67z"/> - <path fill="#dedede" d="M206.36 233.77l.703.67-.703-.67z"/> - <path fill="#4a4208" d="M225.36 233.77l.703.67-.703-.67z"/> - <path fill="#ffce08" d="M226.06 233.77l.703.67-.703-.67z"/> - <path fill="#bd9408" d="M226.76 233.77l.704.67-.704-.67z"/> - <path fill="#00184a" d="M227.47 233.77l.704.67-.704-.67z"/> - <path fill="#001010" d="M233.8 233.77l.703.67-.703-.67z"/> - <path fill="#001039" d="M235.21 233.77l.703.67-.703-.67z"/> - <path fill="#00215a" d="M240.13 233.77l.703.67-.703-.67z"/> - <path fill="#392100" d="M240.83 233.77l1.407 1.34-1.407-1.34z"/> - <path fill="#001010" d="M241.54 233.77l.704.67-.704-.67z"/> - <path fill="#efefef" d="M255.61 233.77l.704.67-.704-.67z"/> - <path fill="#420000" d="M266.16 233.77l.704.67-.704-.67z"/> - <path fill="#5a1008" d="M267.57 233.77l.703.67-.703-.67z"/> - <path fill="#7b1008" d="M272.49 233.77l.703.67-.703-.67z"/> - <path fill="#181000" d="M273.9 233.77l-1.407 2.008 1.407-2.008z"/> - <path fill="#002984" d="M274.6 233.77l.704.67-.704-.67z"/> - <path fill="#941808" d="M280.23 233.77l.704.67-.704-.67z"/> - <path fill="#7b5a00" d="M280.93 233.77l.703.67-.703-.67m1.407 0l.703.67-.703-.67z"/> - <path fill="#b51010" d="M283.04 233.77l.704.67-.704-.67z"/> - <path fill="#bdbdbd" d="M296.41 233.77l.703.67-.703-.67z"/> - <path fill="#103910" d="M297.11 233.77l.704.67-.704-.67z"/> - <path fill="#dedede" d="M297.82 233.77l.703.67-.703-.67z"/> - <path fill="#4a6342" d="M300.63 233.77l.703.67-.703-.67z"/> - <path fill="#7b7373" d="M304.85 233.77l.703.67-.703-.67z"/> - <path fill="#185200" d="M305.56 233.77l.704.67-.704-.67z"/> - <path fill="#7b8c73" d="M306.96 233.77l.703.67-.703-.67z"/> - <path fill="#395231" d="M309.07 233.77l.703.67-.703-.67z"/> - <path fill="#319400" d="M309.78 233.77l.703.67-.703-.67z"/> - <path fill="#9c9494" d="M313.29 233.77l.703.67-.703-.67z"/> - <path fill="#63636b" d="M314.7 233.77l.703.67-.703-.67z"/> - <path fill="#9c9494" d="M315.4 233.77l.703.67-.703-.67z"/> - <path fill="#7b7373" d="M193 234.44l.703.67-.703-.67z"/> - <path fill="#cecece" d="M197.92 234.44l.703.67-.703-.67z"/> - <path fill="#424242" d="M198.62 234.44l.703.67-.703-.67z"/> - <path fill="#295200" d="M199.33 234.44l.704.67-.704-.67z"/> - <path fill="#294200" d="M200.03 234.44l.703.67-.703-.67z"/> - <path fill="#9c9494" d="M200.73 234.44l1.407 1.34-1.407-1.34z"/> - <path fill="#397b00" d="M202.85 234.44l.703.67-.703-.67z"/> - <path fill="#9c9494" d="M206.36 234.44l.703.67-.703-.67z"/> - <path fill="#002984" d="M225.36 234.44l1.407 1.34-1.407-1.34z"/> - <path fill="#6b5a00" d="M226.06 234.44l.703.67-.703-.67z"/> - <path fill="#211800" d="M226.76 234.44l2.11 1.34-2.11-1.34z"/> - <path fill="#00216b" d="M228.17 234.44l.703.67-.703-.67z"/> - <path fill="#001010" d="M234.5 234.44l.703.67-.703-.67z"/> - <path fill="#001039" d="M235.91 234.44l.704.67-.704-.67m4.925 0l.703.67-.704-.67z"/> - <path fill="#00184a" d="M242.24 234.44l.703.67-.703-.67z"/> - <path fill="#bd9408" d="M253.5 234.44v.67l1.407 2.677h.703l-2.11-3.347z"/> - <path fill="#7b1008" d="M265.46 234.44l.703.67-.703-.67z"/> - <path fill="#311000" d="M266.86 234.44l.703.67-.703-.67z"/> - <path fill="#ce2110" d="M267.57 234.44l.703.67-.703-.67z"/> - <path fill="#941808" d="M271.79 234.44l-.703 1.34.703-1.34z"/> - <path fill="#211800" d="M272.49 234.44l.703.67-.703-.67z"/> - <path fill="#002984" d="M273.9 234.44l.703.67-.703-.67z"/> - <path fill="#ad1810" d="M279.53 234.44l.703.67-.703-.67z"/> - <path fill="#211800" d="M280.23 234.44l-1.407 2.008 1.407-2.008z"/> - <path fill="#181000" d="M280.93 234.44l.703.67-.703-.67z"/> - <path fill="#6b5a00" d="M281.64 234.44l.703.67-.703-.67z"/> - <path fill="#7b1008" d="M282.34 234.44l.703.67-.703-.67z"/> - <path fill="#dedede" d="M296.41 234.44l.703.67-.703-.67z"/> - <path fill="#185200" d="M297.11 234.44l.704.67-.704-.67z"/> - <path fill="#425242" d="M297.82 234.44l.703.67-.703-.67z"/> - <path fill="#6b735a" d="M300.63 234.44l.703.67-.703-.67z"/> - <path fill="#296300" d="M301.33 234.44l.703.67-.703-.67z"/> - <path fill="#ada5a5" d="M302.04 234.44l.704.67-.704-.67z"/> - <path fill="#313931" d="M304.85 234.44l.703.67-.703-.67z"/> - <path fill="#297b00" d="M305.56 234.44l.704.67-.704-.67z"/> - <path fill="#4a6342" d="M306.96 234.44v3.347h.703l-.703-3.347z"/> - <path fill="#7b7373" d="M308.37 234.44l.704.67-.704-.67z"/> - <path fill="#297b00" d="M309.54 234.66l.47.223-.47-.223z"/> - <path fill="#63636b" d="M310.48 234.44l.703.67-.703-.67z"/> - <path fill="#7b7373" d="M311.18 234.44l.704.67-.704-.67z"/> - <path fill="#bdbdbd" d="M312.36 234.66l.47.223-.47-.223z"/> - <path fill="#8c8c8c" d="M313.29 234.44l-.703 1.34.703-1.34z"/> - <path fill="#7b7373" d="M314 234.44l.704.67-.704-.67z"/> - <path fill="#103910" d="M314.7 234.44l.703.67-.703-.67z"/> - <path fill="#efefef" d="M315.4 234.44l.703.67-.703-.67z"/> - <path fill="#cecece" d="M192.29 235.11l.703.67-.703-.67z"/> - <path fill="#9c9494" d="M193 235.11l.703.67-.703-.67z"/> - <path fill="#ada5a5" d="M195.81 235.11l.703.67-.703-.67z"/> - <path fill="#bdbdbd" d="M197.92 235.11l.703.67-.703-.67z"/> - <path fill="#001000" d="M198.62 235.11l.703.67-.703-.67z"/> - <path fill="#397b00" d="M199.33 235.11v2.008l2.11-.67v-.67l-2.11-.668z"/> - <path fill="#213918" d="M200.73 235.11l.703.67-.703-.67z"/> - <path fill="#294200" d="M202.14 235.11l.704.67-.704-.67z"/> - <path fill="#397b00" d="M204.02 235.33l.47.223-.47-.223z"/> - <path fill="#8c8c8c" d="M206.36 235.11l.703.67-.703-.67z"/> - <path fill="#00216b" d="M226.76 235.11l.704.67-.704-.67z"/> - <path fill="#00184a" d="M228.87 235.11l.703.67-.703-.67z"/> - <path fill="#002984" d="M234.5 235.11l2.11 2.008-2.11-2.008z"/> - <path fill="#181000" d="M235.21 235.11l.703.67-.703-.67z"/> - <path fill="#00184a" d="M236.61 235.11l.703.67-.703-.67z"/> - <path fill="#181000" d="M241.54 235.11l.704.67-.704-.67z"/> - <path fill="#211800" d="M242.48 235.56l.235.446-.235-.446z"/> - <path fill="#00216b" d="M242.94 235.11l.703.67-.703-.67z"/> - <path fill="#7b5a00" d="M252.79 235.11v2.678h.704l-.704-2.678z"/> - <path fill="#ffce08" d="M253.5 235.11v3.347h-2.814v2.008h2.814v8.033h.704l.703-8.033h3.517v-2.008h-3.517v-3.347H253.5z"/> - <path fill="#b51010" d="M264.75 235.11l.703.67-.703-.67z"/> - <path fill="#211800" d="M265.93 235.33l.47.223-.47-.223z"/> - <path fill="#b51010" d="M266.86 235.11l.703.67-.703-.67z"/> - <path fill="#211800" d="M271.79 235.11l-2.11 2.678 2.11-2.678z"/> - <path fill="#002984" d="M273.19 235.11l.703.67-.703-.67z"/> - <path fill="#941808" d="M278.82 235.11l.703.67-.703-.67z"/> - <path fill="#7b1008" d="M280.93 235.11l.703.67-.703-.67z"/> - <path fill="#b51010" d="M281.64 235.11l.703.67-.703-.67z"/> - <path fill="#214210" d="M297.11 235.11l.704.67-.704-.67z"/> - <path fill="#296300" d="M297.82 235.11l.703.67-.703-.67z"/> - <path fill="#ada5a5" d="M298.52 235.11l.703.67-.703-.67z"/> - <path fill="#8c8c8c" d="M300.63 235.11l.703.67-.703-.67z"/> - <path fill="#319400" d="M301.33 235.11l.703.67-.703-.67z"/> - <path fill="#425242" d="M302.04 235.11l.704.67-.704-.67z"/> - <path fill="#52525a" d="M304.85 235.11l.703.67-.703-.67z"/> - <path fill="#395231" d="M308.37 235.11l.704.67-.704-.67z"/> - <path fill="#296300" d="M309.78 235.11l.703.67-.703-.67z"/> - <path fill="#424242" d="M310.48 235.11l.703.67-.703-.67z"/> - <path fill="#9c9494" d="M311.18 235.11l.704.67-.704-.67z"/> - <path fill="#cecece" d="M311.89 235.11l.703.67-.703-.67z"/> - <path fill="#52525a" d="M313.29 235.11l.703.67-.703-.67z"/> - <path fill="#185200" d="M314 235.11l.704.67-.704-.67z"/> - <path fill="#63636b" d="M314.7 235.11l.703.67-.703-.67z"/> - <path fill="#dedede" d="M193.7 235.78l.704.67-.704-.67z"/> - <path fill="#efefef" d="M194.4 235.78l.703.67-.703-.67z"/> - <path fill="#dedede" d="M195.58 236l.47.223-.47-.223z"/> - <path fill="#9c9494" d="M196.51 235.78l.704.67-.704-.67z"/> - <path fill="#424242" d="M197.92 235.78l.703.67-.703-.67z"/> - <path fill="#428c00" d="M198.62 235.78c-1.91 4.1-1.667 6.585 0 10.71h1.407l1.407-10.04h-.703l-.703 8.032h-1.407v-8.702z"/> - <path fill="#313931" d="M201.44 235.78l.703.67-.703-.67z"/> - <path fill="#294200" d="M203.78 236.23l.235.446-.235-.446z"/> - <path fill="#6b735a" d="M206.36 235.78l.703.67-.703-.67z"/> - <path fill="#00216b" d="M227.47 235.78l1.407 1.34-1.407-1.34z"/> - <path fill="#100808" d="M228.17 235.78l.703.67-.703-.67z"/> - <path fill="#392100" d="M228.87 235.78l2.814 2.678-2.814-2.678z"/> - <path fill="#001039" d="M229.58 235.78l.703.67-.703-.67z"/> - <path fill="#181000" d="M235.91 235.78l1.407 1.34-1.407-1.34z"/> - <path fill="#211800" d="M236.61 235.78l2.814 3.347-2.814-3.347z"/> - <path fill="#00216b" d="M237.32 235.78l.703.67-.703-.67z"/> - <path fill="#002984" d="M241.54 235.78l.704.67-.704-.67z"/> - <path fill="#181000" d="M242.94 235.78l.703.67-.703-.67z"/> - <path fill="#311000" d="M264.75 235.78l.703.67-.703-.67z"/> - <path fill="#392100" d="M265.46 235.78l-.703 1.34.703-1.34z"/> - <path fill="#7b1008" d="M266.16 235.78l.704.67-.704-.67z"/> - <path fill="#ad1810" d="M270.38 235.78l.703.67-.703-.67z"/> - <path fill="#00216b" d="M272.49 235.78l.703.67-.703-.67z"/> - <path fill="#631808" d="M278.12 235.78l.703.67-.703-.67z"/> - <path fill="#5a1008" d="M280.23 235.78l.704.67-.704-.67z"/> - <path fill="#5a6b52" d="M297.11 235.78l.704.67-.704-.67z"/> - <path fill="#319400" d="M297.82 235.78l.703.67-.703-.67z"/> - <path fill="#103910" d="M298.52 235.78l.703.67-.703-.67z"/> - <path fill="#efefef" d="M299.22 235.78l.704.67-.704-.67z"/> - <path fill="#9c9494" d="M300.63 235.78l.703.67-.703-.67z"/> - <path fill="#297b00" d="M301.33 235.78l.703.67-.703-.67z"/> - <path fill="#185200" d="M302.04 235.78l.704.67-.704-.67z"/> - <path fill="#cecece" d="M302.74 235.78l.704.67-.704-.67z"/> - <path fill="#315221" d="M304.85 235.78l.703.67-.703-.67z"/> - <path fill="#185200" d="M308.37 235.78l.704.67-.704-.67m1.407 0l.703.67-.703-.67z"/> - <path fill="#ada5a5" d="M310.48 235.78l.703.67-.703-.67z"/> - <path fill="#efefef" d="M311.65 236l.47.223-.47-.223z"/> - <path fill="#ada5a5" d="M312.59 235.78l.703.67-.703-.67z"/> - <path fill="#214210" d="M313.29 235.78l.703.67-.703-.67z"/> - <path fill="#296300" d="M314 235.78l.704.67-.704-.67z"/> - <path fill="#bdbdbd" d="M314.7 235.78l.703.67-.703-.67z"/> - <path fill="#397b00" d="M197.92 236.45l.703.67-.703-.67z"/> - <path fill="#103900" d="M201.44 236.45l.703.67-.703-.67z"/> - <path fill="#8c8c8c" d="M206.36 236.45l.703.67-.703-.67z"/> - <path fill="#002984" d="M227.47 236.45v18.743h-6.33v.67l7.034-.67v3.347h.703c0-5.777 2.308-17.424-1.407-22.09z"/> - <path fill="#001010" d="M228.87 236.45l.703.67-.703-.67m1.407 0l.704.67-.703-.67z"/> - <path fill="#00216b" d="M238.02 236.45l.703.67-.703-.67z"/> - <path fill="#00184a" d="M242.24 236.45l.703.67-.703-.67z"/> - <path fill="#392100" d="M242.94 236.45l1.407 1.34-1.407-1.34z"/> - <path fill="#101829" d="M243.65 236.45l.703.67-.703-.67z"/> - <path fill="#631808" d="M264.05 236.45l.703.67-.703-.67z"/> - <path fill="#420000" d="M265.46 236.45l.703.67-.703-.67z"/> - <path fill="#b51010" d="M269.68 236.45l.703.67-.703-.67z"/> - <path fill="#00216b" d="M271.79 236.45l.704.67-.704-.67z"/> - <path fill="#ce2110" d="M276.71 236.45l.703.67-.703-.67z"/> - <path fill="#5a1008" d="M277.42 236.45l.704.67-.704-.67z"/> - <path fill="#392100" d="M278.12 236.45l-2.11 2.678 2.11-2.678z"/> - <path fill="#181000" d="M278.82 236.45l.703.67-.703-.67z"/> - <path fill="#002984" d="M279.53 236.45l.703.67-.703-.67z"/> - <path fill="#631808" d="M280.23 236.45v18.743h.704l-.704-18.743z"/> - <path fill="#8c8c8c" d="M297.11 236.45l.704.67-.704-.67z"/> - <path fill="#297b00" d="M298.29 236.67l.47.223-.47-.223z"/> - <path fill="#52525a" d="M299.22 236.45l.704.67-.704-.67z"/> - <path fill="#bdbdbd" d="M300.63 236.45l.703.67-.703-.67z"/> - <path fill="#296300" d="M301.33 236.45l.703.67-.703-.67z"/> - <path fill="#319400" d="M302.04 236.45l2.814 16.735h.703c1.165-5.97.057-11.613-3.517-16.735z"/> - <path fill="#63636b" d="M302.74 236.45l.704.67-.704-.67z"/> - <path fill="#cecece" d="M304.15 236.45l.703.67-.703-.67z"/> - <path fill="#185200" d="M304.85 236.45l.703.67-.703-.67z"/> - <path fill="#297b00" d="M308.37 236.45l.704.67-.704-.67z"/> - <path fill="#184a00" d="M309.78 236.45l.703.67-.703-.67z"/> - <path fill="#314231" d="M312.59 236.45l.703.67-.703-.67z"/> - <path fill="#319400" d="M313.29 236.45l.703.67-.703-.67z"/> - <path fill="#294221" d="M314 236.45l.704.67-.704-.67z"/> - <path fill="#efefef" d="M196.51 237.12l.704.67-.704-.67z"/> - <path fill="#214210" d="M197.22 237.12l.703.67-.703-.67z"/> - <path fill="#295200" d="M199.56 237.57l.235.446-.235-.446z"/> - <path fill="#294200" d="M201.44 237.12l.703.67-.703-.67z"/> - <path fill="#397b00" d="M203.31 237.34l.47.223-.47-.223z"/> - <path fill="#294200" d="M205.66 237.12l.703.67-.703-.67z"/> - <path fill="#315221" d="M206.83 237.34l.47.223-.47-.223z"/> - <path fill="#294200" d="M207.77 237.12l.704.67-.704-.67z"/> - <path fill="#8c8442" d="M208.47 237.12l.703.67-.703-.67z"/> - <path fill="#63636b" d="M209.18 237.12l.703.67-.703-.67z"/> - <path fill="#bdbdbd" d="M209.88 237.12l.703.67-.703-.67z"/> - <path fill="#003994" d="M228.87 237.12c0 5.062-2.5 18.23.723 22.29 1.415 1.782 4.9 1.956 7.015 2.478 0-10.244 2.075-18.383-7.738-24.767z"/> - <path fill="#101829" d="M229.58 237.12l.703.67-.703-.67z"/> - <path fill="#100808" d="M230.99 237.12l.703.67-.703-.67z"/> - <path fill="#001039" d="M231.69 237.12l.703.67-.703-.67z"/> - <path fill="#00216b" d="M236.61 237.12l.703.67-.703-.67m2.11 0l.704.67-.703-.67z"/> - <path fill="#001010" d="M242.94 237.12l.703.67-.703-.67z"/> - <path fill="#00184a" d="M244.35 237.12l.704.67-.704-.67z"/> - <path fill="#941808" d="M263.35 237.12l.704.67-.704-.67z"/> - <path fill="#211800" d="M263.35 238.46l2.11-1.34-2.11 1.34z"/> - <path fill="#ce2110" d="M265.46 237.12l.703.67-.703-.67z"/> - <path fill="#b51010" d="M268.97 237.12l.704.67-.704-.67z"/> - <path fill="#00216b" d="M271.08 237.12l.703.67-.703-.67z"/> - <path fill="#5a1831" d="M276.01 237.12l.703.67-.703-.67z"/> - <path fill="#311000" d="M276.71 237.12l.703.67-.703-.67z"/> - <path fill="#001010" d="M278.12 237.12l.703.67-.703-.67z"/> - <path fill="#003994" d="M271.79 261.89c2.29-.565 5.6-.767 7.314-2.48 3.624-3.615 1.128-17.412 1.128-22.288-10.98 4.843-8.442 15.064-8.442 24.767z"/> - <path fill="#dedede" d="M297.11 237.12l.704.67-.704-.67z"/> - <path fill="#185200" d="M297.82 237.12l.703.67-.703-.67z"/> - <path fill="#319400" d="M298.52 237.12l5.628 21.42h-.703c-1.12-3.75-5.566-18.02-11.256-12.718 7.536.308 10.027 13.084 11.255 18.743h.703l9.145-26.776h-.703l-7.035 17.403h-.704c-1.9-5.697-1.75-13.722-6.33-18.074z"/> - <path fill="#296300" d="M299.22 237.12l.704.67-.704-.67z"/> - <path fill="#ada5a5" d="M299.93 237.12l.704.67-.704-.67z"/> - <path fill="#dedede" d="M300.63 237.12l.703.67-.703-.67z"/> - <path fill="#185200" d="M301.33 237.12l.703.67-.703-.67z"/> - <path fill="#184a00" d="M302.74 237.12l.704.67-.704-.67z"/> - <path fill="#dedede" d="M303.45 237.12l.703.67-.703-.67z"/> - <path fill="#8c8c8c" d="M304.15 237.12l-.703 1.34.703-1.34z"/> - <path fill="#297b00" d="M304.85 237.12l.703.67-.703-.67z"/> - <path fill="#395231" d="M307.67 237.12l.703.67-.703-.67z"/> - <path fill="#4a6342" d="M309.78 237.12l.703.67-.703-.67z"/> - <path fill="#8c8c8c" d="M311.89 237.12l.703.67-.703-.67z"/> - <path fill="#297b00" d="M313.06 237.34l.47.223-.47-.223z"/> - <path fill="#8c8c8c" d="M314 237.12l.704.67-.704-.67z"/> - <path fill="#7b7373" d="M196.51 237.79l.704.67-.704-.67z"/> - <path fill="#295200" d="M201.44 237.79l.703.67-.703-.67z"/> - <path fill="#294200" d="M202.85 237.79l.703.67-.703-.67z"/> - <path fill="#397b00" d="M204.25 237.79l-2.814.67v.67l2.814-1.34z"/> - <path fill="#103900" d="M204.96 237.79l.704.67-.704-.67z"/> - <path fill="#397b00" d="M208.71 238.23l.235.446-.235-.446z"/> - <path fill="#428c00" d="M209.18 237.79l.703.67-.703-.67z"/> - <path fill="#294200" d="M209.88 237.79l.703.67-.703-.67z"/> - <path fill="#313931" d="M210.58 237.79l.704.67-.704-.67z"/> - <path fill="#001039" d="M230.28 237.79l.704.67-.704-.67z"/> - <path fill="#181000" d="M231.69 237.79l.703.67-.703-.67z"/> - <path fill="#00216b" d="M232.39 237.79l1.407 1.34-1.407-1.34m4.925 0l.703.67-.704-.67z"/> - <path fill="#181000" d="M238.72 237.79l2.11 2.008-2.11-2.008z"/> - <path fill="#002984" d="M239.43 237.79l.703.67-.703-.67z"/> - <path fill="#211800" d="M244.12 238.01l.47.223-.47-.223z"/> - <path fill="#002984" d="M245.06 237.79l.703.67-.703-.67z"/> - <path fill="#dedede" d="M249.28 237.79l.703.67-.703-.67z"/> - <path fill="#ada584" d="M249.98 237.79l.704.67-.704-.67z"/> - <path fill="#9c7b08" d="M252.79 237.79l.704.67-.704-.67z"/> - <path fill="#cea508" d="M254.9 237.79l.703.67-.703-.67z"/> - <path fill="#9c9463" d="M255.61 237.79l.704.67-.704-.67z"/> - <path fill="#bdb584" d="M256.31 237.79v.67h2.11l-2.11-.67z"/> - <path fill="#bdbdbd" d="M258.42 237.79l.704.67-.704-.67z"/> - <path fill="#ce2110" d="M262.64 237.79l.703.67-.703-.67z"/> - <path fill="#ad1810" d="M264.75 237.79l.703.67-.703-.67z"/> - <path fill="#bd2110" d="M268.27 237.79l.703.67-.703-.67z"/> - <path fill="#210800" d="M268.97 237.79l.704.67-.704-.67z"/> - <path fill="#392100" d="M269.68 237.79l-1.407 2.008 1.407-2.008z"/> - <path fill="#00184a" d="M270.38 237.79l.703.67-.703-.67z"/> - <path fill="#002984" d="M275.31 237.79l.703.67-.703-.67z"/> - <path fill="#100808" d="M276.01 237.79l.703.67-.703-.67z"/> - <path fill="#101829" d="M277.42 237.79l.704.67-.704-.67z"/> - <path fill="#bdbdbd" d="M294.3 237.79l.704.67-.704-.67z"/> - <path fill="#8c8c8c" d="M295 237.79l.703.67-.703-.67z"/> - <path fill="#315221" d="M297.82 237.79l.703.67-.703-.67z"/> - <path fill="#103910" d="M299.93 237.79l.704.67-.704-.67z"/> - <path fill="#efefef" d="M300.63 237.79l.703.67-.703-.67z"/> - <path fill="#184a00" d="M301.33 237.79l.703.67-.703-.67z"/> - <path fill="#297b00" d="M302.74 237.79l.704.67-.704-.67z"/> - <path fill="#5a6b52" d="M304.15 237.79l.703.67-.703-.67z"/> - <path fill="#294221" d="M306.96 237.79l.703.67-.703-.67z"/> - <path fill="#185200" d="M307.67 237.79l.703.67-.703-.67z"/> - <path fill="#5a6b52" d="M309.78 237.79l.703.67-.703-.67z"/> - <path fill="#dedede" d="M311.18 237.79l.704.67-.704-.67z"/> - <path fill="#184a00" d="M311.89 237.79l.703.67-.703-.67m1.407 0l.703.67-.703-.67z"/> - <path fill="#efefef" d="M314 237.79l.704.67-.704-.67z"/> - <path fill="#5a5231" d="M196.51 238.46l.704.67-.704-.67z"/> - <path fill="#294200" d="M199.33 238.46v2.008h.704l-.704-2.008m4.925 0l.703.67-.704-.67m3.284.223l.468.223-.468-.223z"/> - <path fill="#214210" d="M209.18 238.46l.703.67-.703-.67z"/> - <path fill="#9c9494" d="M209.88 238.46l.703.67-.703-.67z"/> - <path fill="#00215a" d="M230.99 238.46l.703.67-.703-.67z"/> - <path fill="#211800" d="M231.69 238.46v.67l2.11.67-2.11-1.34z"/> - <path fill="#00216b" d="M238.02 238.46l.703.67-.703-.67z"/> - <path fill="#002984" d="M240.13 238.46l.703.67-.703-.67z"/> - <path fill="#00216b" d="M243.65 238.46l.703.67-.703-.67z"/> - <path fill="#392100" d="M244.35 238.46l2.11 2.008-2.11-2.008z"/> - <path fill="#101810" d="M245.06 238.46l.703.67-.703-.67z"/> - <path fill="#bd9408" d="M249.98 238.46v2.008h.704l-.704-2.008z"/> - <path fill="#310000" d="M262.64 238.46l.703.67-.703-.67z"/> - <path fill="#392100" d="M263.35 238.46l-.703 1.34.703-1.34z"/> - <path fill="#631808" d="M264.05 238.46l.703.67-.703-.67z"/> - <path fill="#ce2110" d="M267.57 238.46l-.703 1.34.703-1.34z"/> - <path fill="#311000" d="M268.27 238.46l.703.67-.703-.67z"/> - <path fill="#001039" d="M269.68 238.46l.703.67-.703-.67z"/> - <path fill="#00216b" d="M274.6 238.46l-.703 1.34.703-1.34z"/> - <path fill="#181000" d="M275.31 238.46l.703.67-.703-.67z"/> - <path fill="#001039" d="M276.71 238.46l.703.67-.703-.67z"/> - <path fill="#101810" d="M295 238.46l.703.67-.703-.67z"/> - <path fill="#efefef" d="M295.71 238.46l.704.67-.704-.67z"/> - <path fill="#63636b" d="M297.82 238.46l.703.67-.703-.67z"/> - <path fill="#297b00" d="M299.93 238.46l.704.67-.704-.67z"/> - <path fill="#7b7373" d="M300.63 238.46l.703.67-.703-.67z"/> - <path fill="#315221" d="M301.33 238.46l.703.67-.703-.67z"/> - <path fill="#214210" d="M303.45 238.46l.703.67-.703-.67z"/> - <path fill="#103900" d="M304.15 238.46l.703.67-.703-.67z"/> - <path fill="#184a00" d="M306.96 238.46v4.016h.703l-.703-4.016z"/> - <path fill="#297b00" d="M307.67 238.46l.703.67-.703-.67z"/> - <path fill="#8c8c8c" d="M309.78 238.46l.703.67-.703-.67z"/> - <path fill="#63636b" d="M311.18 238.46l.704.67-.704-.67z"/> - <path fill="#297b00" d="M311.89 238.46l.703.67-.703-.67z"/> - <path fill="#5a6b52" d="M313.29 238.46l.703.67-.703-.67z"/> - <path fill="#294200" d="M196.51 239.13l.704.67-.704-.67m5.628 0l.704.67-.704-.67m1.407 0l.703.67-.703-.67z"/> - <path fill="#103900" d="M206.36 239.13l.703.67-.703-.67z"/> - <path fill="#397b00" d="M207.07 239.13l.703.67-.703-.67z"/> - <path fill="#294200" d="M208.47 239.13l.703.67-.703-.67z"/> - <path fill="#cecece" d="M209.18 239.13l.703.67-.703-.67z"/> - <path fill="#00216b" d="M231.69 239.13l.703.67-.703-.67z"/> - <path fill="#001039" d="M233.8 239.13l1.407 1.34-1.407-1.34z"/> - <path fill="#00184a" d="M238.72 239.13l.704.67-.704-.67z"/> - <path fill="#392100" d="M239.43 239.13l5.628 5.355-5.628-5.355z"/> - <path fill="#001039" d="M244.35 239.13l.704.67-.704-.67m1.407 0l.703.67-.703-.67z"/> - <path fill="#631808" d="M261.94 239.13l.703.67-.703-.67z"/> - <path fill="#311000" d="M263.35 239.13l.704.67-.704-.67m4.22 0l.704.67-.703-.67z"/> - <path fill="#001039" d="M268.97 239.13l.704.67-.704-.67z"/> - <path fill="#211800" d="M273.9 240.47l2.11-.67-2.11.67z"/> - <path fill="#00215a" d="M276.01 239.13l.703.67-.703-.67z"/> - <path fill="#103900" d="M295 239.13l.703.67-.703-.67z"/> - <path fill="#8c8c8c" d="M295.71 239.13l.704.67-.704-.67z"/> - <path fill="#ada5a5" d="M297.82 239.13l.703.67-.703-.67z"/> - <path fill="#297b00" d="M298.52 239.13l.703.67-.703-.67z"/> - <path fill="#295210" d="M300.63 239.13l.703.67-.703-.67z"/> - <path fill="#395231" d="M301.33 239.13l.703.67-.703-.67z"/> - <path fill="#297b00" d="M303.45 239.13l.703.67-.703-.67z"/> - <path fill="#185200" d="M304.15 239.13l.703.67-.703-.67z"/> - <path fill="#297b00" d="M309.07 239.13l.703.67-.703-.67z"/> - <path fill="#9c9494" d="M309.78 239.13l.703.67-.703-.67z"/> - <path fill="#dedede" d="M310.48 239.13l.703.67-.703-.67z"/> - <path fill="#184a00" d="M311.18 239.13l.704.67-.704-.67z"/> - <path fill="#296300" d="M312.59 239.13l.703.67-.703-.67z"/> - <path fill="#ada5a5" d="M313.29 239.13l.703.67-.703-.67z"/> - <path fill="#cecece" d="M195.81 239.8l.703.67-.703-.67z"/> - <path fill="#397b00" d="M196.51 239.8l.704.67-.704-.67z"/> - <path fill="#295200" d="M202.14 239.8l.704.67-.704-.67z"/> - <path fill="#103900" d="M202.85 239.8l-.704 2.008h.704V239.8m2.814 0l-.704 1.34.704-1.34z"/> - <path fill="#397b00" d="M207.77 239.8l.704.67-.704-.67z"/> - <path fill="#8c8c8c" d="M208.47 239.8l.703.67-.703-.67m2.814 0l.704.67-.704-.67z"/> - <path fill="#002984" d="M232.39 239.8l.703.67-.703-.67z"/> - <path fill="#392100" d="M233.8 239.8l2.814 2.678-2.814-2.678z"/> - <path fill="#001039" d="M239.43 239.8l.703.67-.703-.67z"/> - <path fill="#001010" d="M240.83 239.8l.703.67-.703-.67z"/> - <path fill="#101810" d="M245.06 239.8l.703.67-.703-.67z"/> - <path fill="#00216b" d="M246.46 239.8l.703.67-.703-.67z"/> - <path fill="#b51010" d="M261.24 239.8l.703.67-.703-.67z"/> - <path fill="#211800" d="M261.24 241.14l2.11-.67-2.11.67z"/> - <path fill="#bd2110" d="M263.35 239.8l.704.67-.704-.67z"/> - <path fill="#310000" d="M266.86 239.8l.703.67-.703-.67z"/> - <path fill="#422100" d="M267.57 239.8l.703.67-.703-.67z"/> - <path fill="#101829" d="M268.27 239.8l.703.67-.703-.67z"/> - <path fill="#001039" d="M273.19 239.8l-.703 1.34.703-1.34z"/> - <path fill="#181000" d="M274.6 239.8l-.703 1.34.703-1.34z"/> - <path fill="#00216b" d="M275.31 239.8l.703.67-.703-.67z"/> - <path fill="#426331" d="M295 239.8l.703.67-.703-.67z"/> - <path fill="#214210" d="M295.71 239.8l.704.67-.704-.67z"/> - <path fill="#efefef" d="M296.41 239.8l.703.67-.703-.67z"/> - <path fill="#103900" d="M298.52 239.8l.703.67-.703-.67z"/> - <path fill="#297b00" d="M300.63 239.8l.703.67-.703-.67z"/> - <path fill="#001000" d="M301.33 239.8l.703.67-.703-.67z"/> - <path fill="#103900" d="M304.15 239.8l.703.67-.703-.67z"/> - <path fill="#296300" d="M309.07 239.8l.703.67-.703-.67z"/> - <path fill="#bdbdbd" d="M309.78 239.8l.703.67-.703-.67z"/> - <path fill="#63636b" d="M310.48 239.8l.703.67-.703-.67z"/> - <path fill="#297b00" d="M311.18 239.8l.704.67-.704-.67z"/> - <path fill="#315221" d="M312.59 239.8l.703.67-.703-.67z"/> - <path fill="#9c9494" d="M196.04 240.91l.235.446-.235-.446z"/> - <path fill="#295200" d="M199.33 240.47l.704.67-.704-.67z"/> - <path fill="#397b00" d="M201.67 240.91l.235.446-.235-.446m1.173-.446l.703.67-.704-.67z"/> - <path fill="#425242" d="M207.77 240.47l.704.67-.704-.67z"/> - <path fill="#001000" d="M211.29 240.47l.704.67-.704-.67z"/> - <path fill="#bdbdbd" d="M211.99 240.47l.703.67-.703-.67z"/> - <path fill="#ada5a5" d="M217.62 240.47l.704.67-.704-.67z"/> - <path fill="#52525a" d="M218.32 240.47l.703.67-.703-.67z"/> - <path fill="#9c9494" d="M219.03 240.47l.704.67-.704-.67z"/> - <path fill="#001010" d="M233.8 240.47l.703.67-.703-.67m1.407 0l.703.67-.703-.67z"/> - <path fill="#001039" d="M240.13 240.47l.703.67-.703-.67z"/> - <path fill="#001010" d="M241.54 240.47l.704.67-.704-.67z"/> - <path fill="#002984" d="M245.06 240.47l.703.67-.703-.67z"/> - <path fill="#211800" d="M246.23 240.69l.47.223-.47-.223z"/> - <path fill="#dedede" d="M249.28 240.47l.703.67-.703-.67z"/> - <path fill="#ada584" d="M249.98 240.47l.704.67-.704-.67z"/> - <path fill="#9c7b08" d="M252.79 240.47l.704.67-.704-.67z"/> - <path fill="#cea508" d="M254.9 240.47l.703.67-.703-.67z"/> - <path fill="#9c9463" d="M255.61 240.47l.704.67-.704-.67z"/> - <path fill="#bdbdbd" d="M258.42 240.47l.704.67-.704-.67z"/> - <path fill="#ce2110" d="M260.53 240.47l.704.67-.704-.67z"/> - <path fill="#392100" d="M261.94 240.47l-1.407 2.008 1.407-2.008z"/> - <path fill="#941808" d="M262.64 240.47l.703.67-.703-.67z"/> - <path fill="#5a1008" d="M266.16 240.47l-1.407 2.008 1.407-2.008z"/> - <path fill="#392100" d="M266.86 240.47l-1.407 2.008 1.407-2.008z"/> - <path fill="#001010" d="M267.57 240.47l.703.67-.703-.67z"/> - <path fill="#392100" d="M273.19 240.47l-2.11 2.678 2.11-2.678z"/> - <path fill="#002984" d="M274.6 240.47l.704.67-.704-.67z"/> - <path fill="#4a6342" d="M295 240.47l.703.67-.703-.67z"/> - <path fill="#297b00" d="M295.71 240.47l.704.67-.704-.67z"/> - <path fill="#52525a" d="M296.41 240.47l.703.67-.703-.67z"/> - <path fill="#5a6b52" d="M298.52 240.47l.703.67-.703-.67z"/> - <path fill="#103900" d="M301.33 240.47l.703.67-.703-.67z"/> - <path fill="#185200" d="M304.15 240.47l.703.67-.703-.67z"/> - <path fill="#297b00" d="M304.85 240.47l-.703 1.34.703-1.34z"/> - <path fill="#185200" d="M309.07 240.47l.703.67-.703-.67z"/> - <path fill="#dedede" d="M309.78 240.47l.703.67-.703-.67z"/> - <path fill="#184a00" d="M310.48 240.47l.703.67-.703-.67z"/> - <path fill="#297b00" d="M311.89 240.47l.703.67-.703-.67z"/> - <path fill="#8c8c8c" d="M312.59 240.47l.703.67-.703-.67z"/> - <path fill="#cecece" d="M314.7 240.47l.703.67-.703-.67z"/> - <path fill="#294221" d="M315.4 240.47l.703.67-.703-.67z"/> - <path fill="#103900" d="M316.11 240.47l.703.67-.703-.67z"/> - <path fill="#9c9494" d="M316.81 240.47l.704.67-.704-.67z"/> - <path fill="#397b00" d="M198.62 241.14v3.347h1.407v-3.347h-1.407z"/> - <path fill="#103900" d="M204.25 241.14l.703.67-.703-.67z"/> - <path fill="#295200" d="M207.07 241.14l.703.67-.703-.67z"/> - <path fill="#bdbdbd" d="M207.77 241.14l.704.67-.704-.67z"/> - <path fill="#efefef" d="M210.58 241.14l.704.67-.704-.67z"/> - <path fill="#295200" d="M211.29 241.14l1.407 1.34-1.407-1.34z"/> - <path fill="#425242" d="M211.99 241.14l.703.67-.703-.67z"/> - <path fill="#bdbdbd" d="M216.21 241.14l.704.67-.704-.67z"/> - <path fill="#5a5231" d="M216.92 241.14l.703.67-.703-.67z"/> - <path fill="#397b00" d="M217.62 241.14l.704.67-.704-.67z"/> - <path fill="#396b10" d="M218.32 241.14l.703.67-.703-.67z"/> - <path fill="#efefef" d="M219.03 241.14l.704.67-.704-.67z"/> - <path fill="#001039" d="M234.5 241.14l.703.67-.703-.67z"/> - <path fill="#181000" d="M235.91 241.14l1.407 1.34-1.407-1.34z"/> - <path fill="#002984" d="M236.61 241.14l.703.67-.703-.67z"/> - <path fill="#52525a" d="M240.83 241.14l.703.67-.703-.67z"/> - <path fill="#001010" d="M242.24 241.14l.703.67-.703-.67z"/> - <path fill="#00184a" d="M245.76 241.14l.703.67-.703-.67z"/> - <path fill="#392100" d="M246.46 241.14l1.407 1.34-1.407-1.34z"/> - <path fill="#001010" d="M247.17 241.14l.704.67-.704-.67z"/> - <path fill="#7b5a00" d="M252.79 241.14v7.363h.704l-.704-7.363z"/> - <path fill="#420000" d="M260.53 241.14l.704.67-.704-.67z"/> - <path fill="#5a1008" d="M261.94 241.14l.703.67-.703-.67z"/> - <path fill="#313931" d="M266.86 241.14l.703.67-.703-.67z"/> - <path fill="#314a7b" d="M267.57 241.14l.703.67-.703-.67z"/> - <path fill="#001010" d="M271.79 241.14l.704.67-.704-.67m1.407 0l.703.67-.703-.67z"/> - <path fill="#8c8c8c" d="M295 241.14l.703.67-.703-.67z"/> - <path fill="#319400" d="M295.71 241.14l3.518 6.024h.703l-4.22-6.024z"/> - <path fill="#296300" d="M296.41 241.14l.703.67-.703-.67z"/> - <path fill="#ada5a5" d="M297.11 241.14l.704.67-.704-.67z"/> - <path fill="#9c9494" d="M298.52 241.14l.703.67-.703-.67z"/> - <path fill="#297b00" d="M299.22 241.14l.704.67-.704-.67z"/> - <path fill="#296300" d="M301.33 241.14l1.407 1.34-1.407-1.34z"/> - <path fill="#297b00" d="M302.04 241.14l.704.67-.704-.67z"/> - <path fill="#184a00" d="M304.85 241.14l.703.67-.703-.67z"/> - <path fill="#214210" d="M309.07 241.14l.703.67-.703-.67z"/> - <path fill="#63636b" d="M309.78 241.14l.703.67-.703-.67z"/> - <path fill="#297b00" d="M310.48 241.14l.703.67-.703-.67z"/> - <path fill="#185200" d="M311.89 241.14l.703.67-.703-.67z"/> - <path fill="#dedede" d="M312.59 241.14l.703.67-.703-.67z"/> - <path fill="#8c8c8c" d="M314 241.14l.704.67-.704-.67z"/> - <path fill="#184a00" d="M314.7 241.14l.703.67-.703-.67z"/> - <path fill="#319400" d="M311.18 245.82l7.035-2.008-1.407-2.678-5.628 4.686z"/> - <path fill="#214210" d="M316.81 241.14l.704.67-.704-.67z"/> - <path fill="#cecece" d="M317.52 241.14l.703.67-.703-.67m-121.7.67l.703.67-.703-.67z"/> - <path fill="#397b00" d="M196.51 241.8l.704.67-.704-.67z"/> - <path fill="#294200" d="M201.67 242.25l.235.446-.235-.446m1.876-.446l.703.67-.704-.67z"/> - <path fill="#397b00" d="M204.25 241.8l.703.67-.703-.67z"/> - <path fill="#425242" d="M207.07 241.8l.703.67-.703-.67z"/> - <path fill="#bdbdbd" d="M210.58 241.8l.704.67-.704-.67z"/> - <path fill="#397b00" d="M211.29 241.8l.704.67-.704-.67z"/> - <path fill="#cecece" d="M212.69 241.8l.703.67-.703-.67z"/> - <path fill="#7b7373" d="M215.51 241.8l.703.67-.703-.67z"/> - <path fill="#295200" d="M216.21 241.8l.704.67-.704-.67z"/> - <path fill="#428c00" d="M214.1 251.85h-.704v-7.363h-.703l-.703 3.347h-.704v-3.347h-.703l-4.22 15.396h.702l1.407-2.678h.704l-1.407 3.347h.702l3.518-4.686-2.814 6.025h.703l7.11-10.04 1.33-10.04c-4.6 2.11-4.22 5.718-4.22 10.04z"/> - <path fill="#63636b" d="M218.32 241.8l.703.67-.703-.67z"/> - <path fill="#001039" d="M235.21 241.8l.703.67-.703-.67z"/> - <path fill="#00216b" d="M237.32 241.8l1.407 1.34-1.407-1.34z"/> - <path fill="#efefef" d="M240.83 241.8l2.11 2.008-2.11-2.008z"/> - <path fill="#313931" d="M241.54 241.8l.704.67-.704-.67z"/> - <path fill="#001039" d="M242.94 241.8l.703.67-.703-.67z"/> - <path fill="#101829" d="M246.46 241.8l.703.67-.703-.67z"/> - <path d="M247.87 241.8l.703.67-.703-.67z"/> - <path fill="#210800" d="M259.83 241.8l.704.67-.704-.67z"/> - <path fill="#ce2110" d="M261.94 241.8l.703.67-.703-.67z"/> - <path fill="#292921" d="M266.16 241.8l.704.67-.704-.67z"/> - <path fill="#efefef" d="M266.86 241.8l.703.67-.703-.67z"/> - <path fill="#002984" d="M270.38 241.8l.703.67-.703-.67z"/> - <path fill="#181000" d="M271.08 241.8l.703.67-.703-.67z"/> - <path fill="#001039" d="M272.49 241.8l.703.67-.703-.67z"/> - <path fill="#9c9494" d="M295.24 242.25l.235.446-.235-.446z"/> - <path fill="#297b00" d="M295.71 241.8l.704.67-.704-.67z"/> - <path fill="#103910" d="M297.11 241.8l.704.67-.704-.67z"/> - <path fill="#efefef" d="M297.82 241.8l.703.67-.703-.67z"/> - <path fill="#dedede" d="M298.52 241.8l.703.67-.703-.67z"/> - <path fill="#185200" d="M299.22 241.8l.704.67-.704-.67z"/> - <path fill="#297b00" d="M301.33 241.8l.703.67-.703-.67z"/> - <path fill="#103900" d="M304.85 241.8l.703.67-.703-.67z"/> - <path fill="#294221" d="M309.07 241.8l.703.67-.703-.67z"/> - <path fill="#184a00" d="M309.78 241.8l.703.67-.703-.67z"/> - <path fill="#425242" d="M311.89 241.8l.703.67-.703-.67z"/> - <path fill="#63636b" d="M313.29 241.8l-1.407 2.008 1.407-2.008z"/> - <path fill="#297b00" d="M314 241.8l.704.67-.704-.67z"/> - <path fill="#425242" d="M317.52 241.8l.703.67-.703-.67z"/> - <path fill="#396b10" d="M196.51 242.47l.704.67-.704-.67z"/> - <path fill="#295200" d="M202.85 242.47l.703.67-.703-.67z"/> - <path fill="#397b00" d="M203.55 242.47l.703.67-.703-.67z"/> - <path fill="#314231" d="M206.36 242.47l.703.67-.703-.67z"/> - <path fill="#efefef" d="M207.07 242.47l-.703 1.34.703-1.34z"/> - <path fill="#7b7373" d="M210.58 242.47l.704.67-.704-.67z"/> - <path fill="#428c00" d="M211.76 242.7l.47.223-.47-.223z"/> - <path fill="#7b7373" d="M212.69 242.47l.703.67-.703-.67z"/> - <path fill="#63636b" d="M214.8 242.47l-.704 1.34.704-1.34z"/> - <path fill="#397b00" d="M215.51 242.47l.703.67-.703-.67m2.11 0l.704.67-.704-.67z"/> - <path fill="#bdbdbd" d="M218.32 242.47l.703.67-.703-.67z"/> - <path fill="#00216b" d="M235.91 242.47l.704.67-.704-.67z"/> - <path fill="#211800" d="M237.08 242.7l.47.223-.47-.223z"/> - <path fill="#313931" d="M242.24 242.47l.703.67-.703-.67z"/> - <path fill="#001039" d="M243.65 242.47l.703.67-.703-.67z"/> - <path fill="#181000" d="M247.17 242.47l.704.67-.704-.67z"/> - <path fill="#211800" d="M248.1 242.92l.235.446-.235-.446z"/> - <path fill="#bdbdbd" d="M248.57 242.47l.703.67-.703-.67z"/> - <path fill="#dedede" d="M259.12 242.47l.703.67-.703-.67z"/> - <path fill="#b51010" d="M261.24 242.47l.703.67-.703-.67z"/> - <path fill="#941808" d="M264.05 242.47l-1.407 2.008 1.407-2.008z"/> - <path fill="#211800" d="M264.75 242.47l-3.518 4.016 3.518-4.016z"/> - <path fill="#212118" d="M265.46 242.47l-.703 1.34.703-1.34z"/> - <path fill="#cecece" d="M266.16 242.47l-1.407 2.008 1.407-2.008z"/> - <path fill="#00216b" d="M269.68 242.47l-.704 1.34.704-1.34z"/> - <path fill="#181000" d="M270.38 242.47l.703.67-.703-.67z"/> - <path fill="#001039" d="M271.79 242.47l.704.67-.704-.67z"/> - <path fill="#cecece" d="M293.6 242.47l.703.67-.703-.67z"/> - <path fill="#8c8c8c" d="M294.3 242.47l.704.67-.704-.67z"/> - <path fill="#296300" d="M295.71 242.47l.704.67-.704-.67z"/> - <path fill="#297b00" d="M297.11 242.47l.704.67-.704-.67z"/> - <path fill="#52525a" d="M297.82 242.47l.703.67-.703-.67z"/> - <path fill="#395231" d="M299.22 242.47l.704.67-.704-.67z"/> - <path fill="#184a00" d="M302.04 242.47v2.008h.704l-.704-2.008z"/> - <path fill="#296300" d="M305.32 242.7l.47.223-.47-.223m1.64-.223l.705.67-.704-.67z"/> - <path fill="#001000" d="M309.07 242.47l.703.67-.703-.67z"/> - <path fill="#297b00" d="M309.78 242.47l.703.67-.703-.67m1.407 0l.704.67-.703-.67z"/> - <path fill="#9c9494" d="M311.89 242.47l.703.67-.703-.67z"/> - <path fill="#297b00" d="M313.29 242.47l.703.67-.703-.67z"/> - <path fill="#296300" d="M317.52 242.47l.703.67-.703-.67z"/> - <path fill="#9c9494" d="M318.22 242.47l.703.67-.703-.67z"/> - <path fill="#5a6b52" d="M196.51 243.14l.704.67-.704-.67z"/> - <path fill="#397b00" d="M200.73 243.14v.67h2.11l-2.11-.67z"/> - <path fill="#294200" d="M202.85 243.14l.703.67-.703-.67z"/> - <path fill="#295200" d="M204.96 243.14l.704.67-.704-.67z"/> - <path fill="#52525a" d="M205.66 243.14l.703.67-.703-.67z"/> - <path fill="#efefef" d="M209.88 243.14l.703.67-.703-.67z"/> - <path fill="#214210" d="M210.58 243.14l.704.67-.704-.67z"/> - <path fill="#397b00" d="M210.58 243.81v.67l2.11.67v-2.01l-2.11.67z"/> - <path fill="#5a5231" d="M212.69 243.14l.703.67-.703-.67z"/> - <path fill="#397b00" d="M214.8 243.14l.703.67-.703-.67z"/> - <path fill="#295200" d="M217.38 243.37l.47.223-.47-.223z"/> - <path fill="#dedede" d="M218.32 243.14l.703.67-.703-.67z"/> - <path fill="#424242" d="M236.61 243.14l.703.67-.703-.67z"/> - <path fill="#212118" d="M237.32 243.14l.703.67-.703-.67z"/> - <path fill="#392100" d="M238.02 243.14l2.814 2.678-2.814-2.678z"/> - <path fill="#001039" d="M238.72 243.14l.704.67-.704-.67z"/> - <path fill="#292921" d="M242.94 243.14l.703.67-.703-.67z"/> - <path fill="#001039" d="M244.35 243.14l.704.67-.704-.67z"/> - <path fill="#00216b" d="M247.17 243.14l.704.67-.704-.67z"/> - <path fill="#211810" d="M248.57 243.14l.703.67-.703-.67z"/> - <path fill="#efefef" d="M249.28 243.14l.703.67-.703-.67z"/> - <path fill="#313931" d="M259.12 243.14l.703.67-.703-.67z"/> - <path fill="#392100" d="M259.83 243.14l-.703 1.34.703-1.34z"/> - <path fill="#631808" d="M260.53 243.14l.704.67-.704-.67z"/> - <path fill="#211800" d="M270.15 243.37l.47.223-.47-.223z"/> - <path fill="#313931" d="M271.08 243.14l.703.67-.703-.67z"/> - <path fill="#63636b" d="M292.89 243.14l.704.67-.704-.67z"/> - <path fill="#185200" d="M293.6 243.14l.703.67-.703-.67z"/> - <path fill="#297b00" d="M294.3 243.14l.704.67-.704-.67z"/> - <path fill="#295210" d="M295 243.14l.703.67-.703-.67z"/> - <path fill="#103900" d="M295.71 243.14l.704.67-.704-.67z"/> - <path fill="#296300" d="M297.82 243.14l.703.67-.703-.67z"/> - <path fill="#9c9494" d="M298.52 243.14l1.407 1.34-1.407-1.34z"/> - <path fill="#8c8c8c" d="M299.22 243.14l.704.67-.704-.67z"/> - <path fill="#103900" d="M305.56 243.14l.704.67-.704-.67z"/> - <path fill="#297b00" d="M308.37 243.14l1.407 1.34-1.407-1.34z"/> - <path fill="#184a00" d="M309.07 243.14l.703.67-.703-.67z"/> - <path fill="#214210" d="M311.18 243.14l.704.67-.704-.67z"/> - <path fill="#297b00" d="M312.59 243.14l.703.67-.703-.67m1.407 0l-4.22 2.678v.67l1.406.668 2.814-4.016z"/> - <path fill="#214210" d="M314.7 243.14l.703.67-.703-.67z"/> - <path fill="#5a6b52" d="M315.4 243.14l.703.67-.703-.67z"/> - <path fill="#214210" d="M316.11 243.14l.703.67-.703-.67z"/> - <path fill="#296300" d="M316.81 243.14l.704.67-.704-.67z"/> - <path fill="#294221" d="M318.22 243.14l-.703 1.34.703-1.34z"/> - <path fill="#bdbdbd" d="M196.51 243.81l.704.67-.704-.67z"/> - <path fill="#295200" d="M197.22 243.81l.703.67-.703-.67z"/> - <path fill="#103900" d="M200.73 243.81l.703.67-.703-.67m1.407 0l.704.67-.703-.67z"/> - <path fill="#397b00" d="M203.55 243.81l-.703 1.34.703-1.34z"/> - <path fill="#5a5231" d="M204.25 243.81l.703.67-.703-.67z"/> - <path fill="#bdbdbd" d="M204.96 243.81l.704.67-.704-.67z"/> - <path fill="#9c9494" d="M209.88 243.81l.703.67-.703-.67z"/> - <path fill="#295200" d="M212.69 243.81l1.407 1.34-1.407-1.34z"/> - <path fill="#52525a" d="M213.4 243.81l.704.67-.704-.67z"/> - <path fill="#397b00" d="M214.1 243.81l.704.67-.704-.67z"/> - <path fill="#294200" d="M216.45 244.26l.235.446-.235-.446m1.173-.446v4.685h.703l-.704-4.686z"/> - <path d="M236.61 243.81v18.074h.703l-.703-18.074z" fill-opacity=".481" fill="#8c8c8c"/> - <path fill="#cecece" d="M237.32 243.81l.703.67-.703-.67z"/> - <path fill="#211810" d="M238.02 243.81l.703.67-.703-.67z"/> - <path fill="#001039" d="M239.43 243.81l.703.67-.703-.67z"/> - <path fill="#cecece" d="M242.94 243.81l2.11 2.008-2.11-2.008z"/> - <path fill="#212118" d="M243.65 243.81l.703.67-.703-.67z"/> - <path fill="#00215a" d="M245.06 243.81l.703.67-.703-.67z"/> - <path fill="#001039" d="M247.87 243.81l.703.67-.703-.67z"/> - <path fill="#392100" d="M248.57 243.81l1.407 1.34-1.407-1.34z"/> - <path fill="#424242" d="M249.28 243.81l.703.67-.703-.67z"/> - <path fill="#7b7373" d="M258.42 243.81l.704.67-.704-.67z"/> - <path fill="#310000" d="M259.83 243.81l.704.67-.704-.67z"/> - <path fill="#001039" d="M268.27 243.81l.703.67-.703-.67z"/> - <path fill="#392100" d="M268.97 243.81l-2.11 2.678 2.11-2.678z"/> - <path fill="#212118" d="M269.68 243.81l.703.67-.703-.67z"/> - <path fill="#ada5a5" d="M270.38 243.81l.703.67-.703-.67z"/> - <path fill="#8c8c8c" d="M271.08 243.81v18.074h.703l-.703-18.074m21.105 0l.703.67-.703-.67z"/> - <path fill="#296300" d="M292.89 243.81l.704.67-.704-.67z"/> - <path fill="#185200" d="M295.71 243.81l.704.67-.704-.67z"/> - <path fill="#296300" d="M296.41 243.81l.703.67-.703-.67z"/> - <path fill="#214210" d="M298.52 243.81l.703.67-.703-.67z"/> - <path fill="#296300" d="M299.93 243.81l.704.67-.704-.67z"/> - <path fill="#184a00" d="M305.56 243.81l.704.67-.704-.67z"/> - <path fill="#297b00" d="M306.26 243.81l-.704 1.34.704-1.34z"/> - <path fill="#185200" d="M308.37 243.81l.704.67-.704-.67z"/> - <path fill="#314231" d="M314 243.81l-1.407 2.008L314 243.81z"/> - <path fill="#efefef" d="M314.7 243.81l-2.11 2.678 2.11-2.678z"/> - <path fill="#bdbdbd" d="M316.81 243.81l.704.67-.704-.67z"/> - <path fill="#185200" d="M318.22 243.81l.703.67-.703-.67z"/> - <path fill="#ada5a5" d="M318.92 243.81l.703.67-.703-.67z"/> - <path fill="#63636b" d="M197.22 244.48l.703.67-.703-.67z"/> - <path fill="#295200" d="M200.73 244.48l.703.67-.703-.67z"/> - <path fill="#397b00" d="M201.44 244.48l.703.67-.703-.67z"/> - <path fill="#63636b" d="M203.55 244.48l-.703 1.34.703-1.34z"/> - <path fill="#7b7373" d="M204.25 244.48l.703.67-.703-.67z"/> - <path fill="#8c8c8c" d="M204.96 244.48l.704.67-.704-.67z"/> - <path fill="#efefef" d="M205.66 244.48l.703.67-.703-.67m3.518 0l.703.67-.702-.67z"/> - <path fill="#214210" d="M209.88 244.48l.703.67-.703-.67z"/> - <path fill="#efefef" d="M238.02 244.48l1.407 1.34-1.407-1.34z"/> - <path fill="#313931" d="M238.72 244.48l.704.67-.704-.67z"/> - <path d="M240.13 244.48l.703.67-.703-.67z"/> - <path fill="#efefef" d="M240.83 244.48l.703.67-.703-.67z"/> - <path fill="#212118" d="M244.35 244.48l1.407 1.34-1.407-1.34z"/> - <path fill="#211800" d="M245.06 244.48l2.814 3.347-2.814-3.347z"/> - <path fill="#00216b" d="M245.76 244.48l.703.67-.703-.67z"/> - <path fill="#00184a" d="M247.87 244.48v2.008h.703l-.703-2.008z"/> - <path fill="#313931" d="M248.57 244.48l.703.67-.703-.67z"/> - <path fill="#8c8c8c" d="M249.98 244.48l.704.67-.704-.67z"/> - <path fill="#bdbdbd" d="M257.72 244.48l.703.67-.703-.67z"/> - <path fill="#211800" d="M258.66 244.93l.235.446-.235-.446z"/> - <path fill="#211810" d="M259.12 244.48l.703.67-.703-.67z"/> - <path fill="#b51010" d="M261.94 244.48l.703.67-.703-.67z"/> - <path fill="#9c9494" d="M264.05 244.48l-1.407 2.008 1.407-2.008z"/> - <path fill="#efefef" d="M266.86 244.48l-.704 1.34.704-1.34z"/> - <path fill="#292921" d="M267.57 244.48l.703.67-.703-.67z"/> - <path fill="#211810" d="M268.97 244.48l.704.67-.704-.67z"/> - <path fill="#cecece" d="M269.68 244.48l.703.67-.703-.67z"/> - <path fill="#bdbdbd" d="M291.49 244.48l.704.67-.704-.67z"/> - <path fill="#185200" d="M292.19 244.48l.703.67-.703-.67z"/> - <path fill="#103900" d="M296.41 244.48l2.11 2.008-2.11-2.008z"/> - <path fill="#297b00" d="M297.11 244.48l.704.67-.704-.67m1.407 0l.703.67-.703-.67z"/> - <path fill="#314231" d="M299.22 244.48l.704.67-.704-.67z"/> - <path fill="#185200" d="M299.93 244.48l.704.67-.704-.67m2.11 0l.704.67-.704-.67z"/> - <path fill="#297b00" d="M302.74 244.48l.704.67-.704-.67z"/> - <path fill="#296300" d="M306.26 244.48l.703.67-.703-.67z"/> - <path fill="#103900" d="M308.37 244.48l.704.67-.704-.67z"/> - <path fill="#185200" d="M310.48 244.48l.703.67-.703-.67z"/> - <path fill="#8c8c8c" d="M318.22 244.48l.703.67-.703-.67z"/> - <path fill="#63636b" d="M318.92 244.48l.703.67-.703-.67z"/> - <path fill="#dedede" d="M197.22 245.15l.703.67-.703-.67z"/> - <path fill="#294200" d="M197.92 245.15l.703.67-.703-.67z"/> - <path fill="#397b00" d="M200.5 245.37l.47.223-.47-.223z"/> - <path fill="#295200" d="M202.14 245.15l.704.67-.704-.67z"/> - <path fill="#6b735a" d="M204.25 245.15l.703.67-.703-.67z"/> - <path fill="#295200" d="M204.96 245.15l.704.67-.704-.67z"/> - <path fill="#396b10" d="M205.66 245.15l.703.67-.703-.67z"/> - <path fill="#7b7373" d="M206.36 245.15l.703.67-.703-.67z"/> - <path fill="#efefef" d="M207.07 245.15l.703.67-.703-.67z"/> - <path fill="#8c8c8c" d="M209.18 245.15l.703.67-.703-.67z"/> - <path fill="#295200" d="M211.29 245.15l.704.67-.704-.67z"/> - <path fill="#294200" d="M213.4 245.15v6.024h.704l-.704-6.024z"/> - <path fill="#397b00" d="M215.98 245.37l.47.223-.47-.223z"/> - <path fill="#52525a" d="M239.43 245.15l.703.67-.703-.67z"/> - <path fill="#211810" d="M240.83 245.15l.703.67-.703-.67z"/> - <path fill="#cecece" d="M241.54 245.15l.704.67-.704-.67z"/> - <path fill="#00216b" d="M246.46 245.15l.703.67-.703-.67z"/> - <path fill="#cecece" d="M248.57 245.15l.703.67-.703-.67z"/> - <path fill="#392121" d="M249.28 245.15l.703.67-.703-.67z"/> - <path fill="#211800" d="M249.98 245.15l.704.67-.704-.67z"/> - <path fill="#cecece" d="M250.68 245.15l.703.67-.703-.67z"/> - <path fill="#efefef" d="M257.01 245.15l.704.67-.704-.67z"/> - <path fill="#211810" d="M257.72 245.15l.703.67-.703-.67z"/> - <path fill="#ada5a5" d="M259.12 245.15l.703.67-.703-.67z"/> - <path fill="#b51010" d="M261.24 245.15l.703.67-.703-.67z"/> - <path fill="#313931" d="M266.86 245.15l.703.67-.703-.67m1.407 0l.703.67-.703-.67z"/> - <path fill="#efefef" d="M268.97 245.15l-.703 1.34.703-1.34z"/> - <path fill="#294221" d="M291.49 245.15l.704.67-.704-.67z"/> - <path fill="#297b00" d="M292.89 245.15l.704.67-.704-.67z"/> - <path fill="#185200" d="M293.6 245.15l.703.67-.703-.67z"/> - <path fill="#184a00" d="M294.3 245.15l.704.67-.704-.67z"/> - <path fill="#297b00" d="M297.82 245.15l.703.67-.703-.67z"/> - <path fill="#296300" d="M299.22 245.15l.704.67-.704-.67z"/> - <path fill="#103900" d="M299.93 245.15l.704.67-.704-.67z"/> - <path fill="#296300" d="M302.51 245.37l.47.223-.47-.223z"/> - <path fill="#184a00" d="M306.26 245.15l.703.67-.703-.67z"/> - <path fill="#297b00" d="M307.67 245.15l.703.67-.703-.67z"/> - <path fill="#185200" d="M308.37 245.15l.704.67-.704-.67z"/> - <path fill="#103900" d="M310.48 245.15l.703.67-.703-.67z"/> - <path fill="#9c9494" d="M314.94 245.6l.235.446-.235-.446z"/> - <path fill="#63636b" d="M197.92 245.82l.703.67-.703-.67z"/> - <path fill="#294200" d="M200.27 246.27l.235.446-.235-.446z"/> - <path fill="#8c8c8c" d="M202.14 245.82l.704.67-.704-.67m2.345.446l.235.447-.235-.447z"/> - <path fill="#397b00" d="M205.42 246.04l.47.223-.47-.223z"/> - <path fill="#428c00" d="M206.36 245.82l.703 6.024h.704l-1.407-6.024z"/> - <path fill="#315221" d="M207.07 245.82l.703.67-.703-.67z"/> - <path fill="#cecece" d="M207.77 245.82l.704.67-.704-.67z"/> - <path fill="#dedede" d="M208.47 245.82l.703.67-.703-.67z"/> - <path fill="#63636b" d="M240.13 245.82l.703.67-.703-.67z"/> - <path fill="#211800" d="M240.83 245.82l2.11 1.34v-.67l-2.11-.67z"/> - <path fill="#212118" d="M241.54 245.82l.704.67-.704-.67z"/> - <path fill="#9c9494" d="M245.06 245.82l.703.67-.703-.67z"/> - <path fill="#002984" d="M247.17 245.82l.704.67-.704-.67z"/> - <path fill="#8c8c8c" d="M249.28 245.82l.703.67-.703-.67z"/> - <path fill="#392100" d="M249.98 245.82l2.11 2.008-2.11-2.008z"/> - <path fill="#313931" d="M250.68 245.82l.703.67-.703-.67z"/> - <path fill="#efefef" d="M251.39 245.82l.703.67-.703-.67z"/> - <path fill="#424242" d="M257.01 245.82l.704.67-.704-.67z"/> - <path fill="#392100" d="M257.72 245.82l.703.67-.703-.67z"/> - <path fill="#7b7373" d="M258.42 245.82l.704.67-.704-.67z"/> - <path fill="#b51010" d="M260.53 245.82l.704.67-.704-.67z"/> - <path fill="#cecece" d="M265.46 245.82l.703.67-.703-.67z"/> - <path fill="#211810" d="M266.16 245.82l.704.67-.704-.67z"/> - <path fill="#52525a" d="M267.57 245.82l.703.67-.703-.67z"/> - <path fill="#8c8c8c" d="M290.78 245.82l.703.67-.703-.67z"/> - <path fill="#297b00" d="M291.49 245.82l.704.67-.704-.67z"/> - <path fill="#185200" d="M292.19 245.82l.703.67-.703-.67z"/> - <path fill="#63636b" d="M292.89 245.82l.704.67-.704-.67z"/> - <path fill="#dedede" d="M293.6 245.82l.703.67-.703-.67z"/> - <path fill="#cecece" d="M294.3 245.82l.704.67-.704-.67z"/> - <path fill="#214210" d="M295 245.82l.703.67-.703-.67z"/> - <path fill="#297b00" d="M297.11 245.82l.704.67-.704-.67z"/> - <path fill="#184a00" d="M299.93 245.82l.704.67-.704-.67z"/> - <path fill="#297b00" d="M302.04 245.82l.704.67-.704-.67z"/> - <path fill="#185200" d="M302.74 245.82l.704.67-.704-.67z"/> - <path fill="#103900" d="M306.26 245.82l.703.67-.703-.67z"/> - <path fill="#184a00" d="M307.67 245.82l.703.67-.703-.67z"/> - <path fill="#185200" d="M310.48 245.82l.703.67-.703-.67z"/> - <path fill="#293129" d="M311.89 245.82l.703.67-.703-.67z"/> - <path fill="#cecece" d="M313.29 245.82l.703.67-.703-.67z"/> - <path fill="#292921" d="M314 245.82l.704.67-.704-.67z"/> - <path fill="#424242" d="M195.11 246.49l1.407 1.34-1.407-1.34z"/> - <path fill="#dedede" d="M195.81 246.49l.703.67-.703-.67z"/> - <path fill="#bdbdbd" d="M197.92 246.49l.703.67-.703-.67z"/> - <path fill="#292100" d="M198.62 246.49l.703.67-.703-.67z"/> - <path fill="#295200" d="M199.33 246.49l.704.67-.704-.67z"/> - <path fill="#315221" d="M201.44 246.49l.703.67-.703-.67z"/> - <path fill="#428c00" d="M204.96 246.49c-.15 3.57-.888 6.695 2.814 8.702l-2.814-8.702z"/> - <path fill="#294200" d="M205.89 246.94l.235.446-.235-.446z"/> - <path fill="#214210" d="M207.77 246.49l.704.67-.704-.67z"/> - <path fill="#424242" d="M208.47 246.49l.703.67-.703-.67z"/> - <path fill="#9c9494" d="M240.83 246.49l.703.67-.703-.67m2.11 0l.704.67-.704-.67z"/> - <path fill="#8c8c8c" d="M245.76 246.49l.703.67-.703-.67z"/> - <path fill="#181000" d="M247.17 246.49l1.407 1.34-1.407-1.34z"/> - <path fill="#001039" d="M247.87 246.49l.703.67-.703-.67z"/> - <path fill="#52525a" d="M249.98 246.49l.704.67-.704-.67z"/> - <path fill="#63636b" d="M251.39 246.49l.703.67-.703-.67z"/> - <path fill="#8c8c8c" d="M256.31 246.49l.703.67-.703-.67z"/> - <path fill="#211800" d="M257.01 246.49l.704.67-.704-.67z"/> - <path d="M257.72 246.49l.703.67-.703-.67z"/> - <path fill="#8c8c8c" d="M258.42 246.49l.704.67-.704-.67z"/> - <path fill="#bdbdbd" d="M259.12 246.49l-.704 2.008.704-2.008z"/> - <path fill="#5a1008" d="M259.83 246.49l.704.67-.704-.67z"/> - <path fill="#210800" d="M260.53 246.49l.704.67-.704-.67z"/> - <path fill="#392100" d="M261.24 246.49l-.704 1.34.704-1.34z"/> - <path fill="#63636b" d="M261.94 246.49l.703.67-.703-.67z"/> - <path fill="#ada5a5" d="M264.75 246.49l.703.67-.703-.67z"/> - <path fill="#212118" d="M265.46 246.49l.703.67-.703-.67z"/> - <path fill="#211800" d="M266.16 246.49l-1.407 2.008 1.407-2.008z"/> - <path fill="#63636b" d="M266.86 246.49l.703.67-.703-.67z"/> - <path fill="#efefef" d="M290.08 246.49l.703.67-.703-.67z"/> - <path fill="#214210" d="M291.25 246.71l.47.223-.47-.223z"/> - <path fill="#9c9494" d="M292.19 246.49l.703.67-.703-.67z"/> - <path fill="#ada5a5" d="M295 246.49l.703.67-.703-.67z"/> - <path fill="#296300" d="M295.71 246.49l.704.67-.704-.67m2.11 0l.704.67-.704-.67z"/> - <path fill="#185200" d="M298.52 246.49l.703.67-.703-.67m1.407 0l1.407 1.34-1.407-1.34z"/> - <path fill="#297b00" d="M300.63 246.49l.703.67-.703-.67z"/> - <path fill="#184a00" d="M302.74 246.49l.704.67-.704-.67m3.518 0l1.407 1.34-1.408-1.34z"/> - <path fill="#103900" d="M307.67 246.49l.703.67-.703-.67z"/> - <path fill="#184a00" d="M309.78 246.49l1.407 1.34-1.407-1.34z"/> - <path fill="#214210" d="M311.18 246.49l.704.67-.704-.67z"/> - <path fill="#cecece" d="M311.89 246.49l-.704 1.34.704-1.34z"/> - <path fill="#9c9494" d="M312.59 246.49l.703.67-.703-.67z"/> - <path fill="#184a00" d="M313.29 246.49l.703.67-.703-.67z"/> - <path fill="#294221" d="M314 246.49l.704.67-.704-.67z"/> - <path fill="#dedede" d="M317.52 246.49l.703.67-.703-.67z"/> - <path fill="#9c9494" d="M318.22 246.49l.703.67-.703-.67z"/> - <path fill="#214210" d="M195.11 247.16l.703.67-.703-.67z"/> - <path fill="#efefef" d="M196.51 247.16l.704.67-.704-.67z"/> - <path fill="#5a1010" d="M197.92 247.16l.703.67-.703-.67z"/> - <path fill="#ce2110" d="M198.62 247.16l.703.67-.703-.67z"/> - <path fill="#bd2110" d="M199.33 247.16l.704.67-.704-.67z"/> - <path fill="#311000" d="M200.03 247.16l.703.67-.703-.67z"/> - <path fill="#397b00" d="M200.73 247.16l.703.67-.703-.67z"/> - <path fill="#9c9494" d="M201.44 247.16l.703.67-.703-.67z"/> - <path fill="#5a6b52" d="M204.25 247.16l.703.67-.703-.67z"/> - <path fill="#295200" d="M208.47 247.16l-.704 1.34.704-1.34m2.814 0l.704.67-.704-.67z"/> - <path fill="#ada5a5" d="M241.54 247.16l.704.67-.704-.67z"/> - <path fill="#212118" d="M242.24 247.16l.703.67-.703-.67z"/> - <path fill="#392100" d="M242.94 247.16l2.814 2.678-2.814-2.678z"/> - <path fill="#63636b" d="M243.65 247.16l.703.67-.703-.67z"/> - <path fill="#bdbdbd" d="M245.99 247.61l.235.446-.235-.446z"/> - <path fill="#520808" d="M246.46 247.16l.703.67-.703-.67z"/> - <path fill="#cecece" d="M248.57 247.16l.703.67-.703-.67z"/> - <path fill="#efefef" d="M249.98 247.16l.704.67-.704-.67z"/> - <path fill="#392121" d="M250.68 247.16l.703.67-.703-.67z"/> - <path fill="#ada5a5" d="M252.09 247.16l.703.67-.703-.67z"/> - <path fill="#9c7b08" d="M254.9 247.16l.703.67-.703-.67z"/> - <path fill="#424242" d="M255.61 247.16l.704.67-.704-.67z"/> - <path fill="#9c9494" d="M256.31 247.16l.703.67-.703-.67z"/> - <path fill="#cecece" d="M257.01 247.16l.704.67-.704-.67z"/> - <path d="M259.83 247.16l.704.67-.704-.67z"/> - <path fill="#bdbdbd" d="M262.17 247.61l.235.446-.235-.446z"/> - <path fill="#9c9494" d="M264.05 247.16l.703.67-.703-.67m2.11 0l.704.67-.703-.67z"/> - <path fill="#63636b" d="M290.08 247.16l.703.67-.703-.67z"/> - <path fill="#425242" d="M290.78 247.16l.703.67-.703-.67z"/> - <path fill="#cecece" d="M291.49 247.16l.704.67-.704-.67z"/> - <path fill="#5a6b52" d="M295.71 247.16l.704.67-.704-.67z"/> - <path fill="#297b00" d="M296.41 247.16l.703.67-.703-.67z"/> - <path fill="#184a00" d="M298.52 247.16l.703.67-.703-.67z"/> - <path fill="#297b00" d="M298.52 248.5l2.11-.67-2.11.67z"/> - <path fill="#103900" d="M302.74 247.16l.704.67-.704-.67z"/> - <path fill="#296300" d="M306.26 247.16v2.008h.703l-.703-2.008m1.407 0l.703.67-.703-.67z"/> - <path fill="#103900" d="M309.78 247.16l-.703 2.008.703-2.008z"/> - <path fill="#8c8c8c" d="M311.89 247.16l.703.67-.703-.67z"/> - <path fill="#185200" d="M312.59 247.16l-.703 1.34.703-1.34z"/> - <path fill="#296300" d="M313.29 247.16l.703.67-.703-.67z"/> - <path fill="#9c9494" d="M314 247.16l.704.67-.704-.67z"/> - <path fill="#bdbdbd" d="M316.11 247.16l.703.67-.703-.67z"/> - <path fill="#424242" d="M316.81 247.16l.704.67-.704-.67z"/> - <path fill="#313931" d="M317.52 247.16l.703.67-.703-.67z"/> - <path fill="#efefef" d="M318.22 247.16l-1.407 2.008 1.407-2.008z"/> - <path fill="#295200" d="M195.11 247.83l.703.67-.703-.67z"/> - <path fill="#397b00" d="M195.81 247.83l.703.67-.703-.67z"/> - <path fill="#314231" d="M196.51 247.83l.704.67-.704-.67z"/> - <path fill="#8c8c8c" d="M197.22 247.83l.703.67-.703-.67z"/> - <path fill="#ad1810" d="M197.92 247.83l.703.67-.703-.67z"/> - <path fill="#941808" d="M200.03 247.83l.703.67-.703-.67z"/> - <path fill="#313931" d="M200.73 247.83l.703.67-.703-.67z"/> - <path fill="#526b42" d="M204.25 247.83l.703.67-.703-.67z"/> - <path fill="#397b00" d="M206.13 248.05l.47.223-.47-.223m2.345-.223l.703.67-.703-.67z"/> - <path fill="#295200" d="M210.58 247.83l.704.67-.704-.67z"/> - <path fill="#524242" d="M242.24 247.83l.703.67-.703-.67z"/> - <path fill="#210800" d="M242.94 247.83l.703.67-.703-.67z"/> - <path fill="#424242" d="M244.35 247.83l.704.67-.704-.67z"/> - <path fill="#efefef" d="M245.06 247.83l.703.67-.703-.67z"/> - <path fill="#ad1810" d="M246.7 248.28l.235.446-.235-.446z"/> - <path fill="#5a1008" d="M247.17 247.83l1.407 1.34-1.407-1.34z"/> - <path fill="#392100" d="M247.87 247.83l1.407 1.34-1.407-1.34z"/> - <path fill="#211810" d="M248.57 247.83l.703.67-.703-.67z"/> - <path fill="#dedede" d="M249.28 247.83l.703.67-.703-.67z"/> - <path fill="#bdbdbd" d="M250.68 247.83l-.704 1.34.704-1.34z"/> - <path fill="#211800" d="M251.39 247.83l.703.67-.703-.67z"/> - <path fill="#212118" d="M252.09 247.83l.703.67-.703-.67z"/> - <path fill="#6b5a10" d="M254.2 247.83l.703.67-.703-.67z"/> - <path fill="#9c9494" d="M254.9 247.83l.703.67-.703-.67z"/> - <path fill="#bdbdbd" d="M256.31 247.83l.703.67-.703-.67z"/> - <path fill="#7b7373" d="M257.01 247.83l.704.67-.704-.67z"/> - <path fill="#8c8c8c" d="M257.72 247.83l.703.67-.703-.67z"/> - <path fill="#dedede" d="M259.12 247.83l.703.67-.703-.67z"/> - <path fill="#313931" d="M259.83 247.83l.704.67-.704-.67z"/> - <path fill="#de2110" d="M261.47 248.28l.235.446-.235-.446z"/> - <path fill="#63636b" d="M263.35 247.83l.704.67-.704-.67z"/> - <path fill="#392100" d="M264.05 247.83l-2.11 2.678 2.11-2.678z"/> - <path fill="#524242" d="M265.46 247.83l.703.67-.703-.67z"/> - <path fill="#9c9494" d="M290.08 247.83l.703.67-.703-.67z"/> - <path fill="#bdbdbd" d="M293.6 247.83l.703.67-.703-.67z"/> - <path fill="#8c8c8c" d="M294.3 247.83l.704.67-.704-.67z"/> - <path fill="#dedede" d="M295.71 247.83l-.703 1.34.703-1.34z"/> - <path fill="#214210" d="M296.41 247.83l.703.67-.703-.67z"/> - <path fill="#103900" d="M299.22 247.83l.704.67-.704-.67z"/> - <path fill="#319400" d="M299.93 247.83l.704.67-.704-.67z"/> - <path fill="#103900" d="M300.63 247.83l-.704 2.008.704-2.008z"/> - <path fill="#184a00" d="M302.74 247.83l.704.67-.704-.67z"/> - <path fill="#082108" d="M306.96 247.83l.703.67-.703-.67z"/> - <path fill="#297b00" d="M309.07 247.83l.703.67-.703-.67z"/> - <path fill="#8c8c8c" d="M310.71 248.28l.235.446-.235-.446z"/> - <path fill="#63636b" d="M311.18 247.83l.704.67-.704-.67z"/> - <path fill="#319400" d="M312.59 247.83l-4.925 7.363 4.925-7.363z"/> - <path fill="#294221" d="M313.29 247.83l.703.67-.703-.67z"/> - <path fill="#bdbdbd" d="M314.7 247.83l.703.67-.703-.67z"/> - <path fill="#425242" d="M315.4 247.83l.703.67-.703-.67z"/> - <path fill="#184a00" d="M316.11 247.83l.703.67-.703-.67z"/> - <path fill="#314231" d="M316.81 247.83l.704.67-.704-.67z"/> - <path fill="#294200" d="M195.11 248.5v1.34l1.407-1.34h-1.407z"/> - <path fill="#428c00" d="M196.51 248.5l1.407 2.678-2.11-1.34c.688 2.7 1.413 4.337 4.22 5.356v.67l-2.813-.67 1.407 2.008-2.11-.67 6.332 6.025.703-2.677 2.11 1.338-4.22-4.016v-.67l2.11.67c-1.027-4.063-3.114-6.76-7.035-8.702z"/> - <path fill="#294200" d="M197.22 248.5l.703.67-.703-.67z"/> - <path fill="#5a1008" d="M197.92 248.5l.703.67-.703-.67z"/> - <path fill="#ce2110" d="M198.62 248.5l.703.67-.703-.67z"/> - <path fill="#5a1008" d="M200.03 248.5l1.407 1.34-1.407-1.34z"/> - <path fill="#7b7373" d="M200.73 248.5l.703.67-.703-.67z"/> - <path fill="#bdbdbd" d="M201.44 248.5l.703.67-.703-.67z"/> - <path fill="#294200" d="M204.25 248.5l.703.67-.703-.67z"/> - <path fill="#295200" d="M206.36 248.5l.703.67-.703-.67z"/> - <path fill="#294200" d="M207.77 248.5v6.024h.704l-.704-6.024m3.05.446l.233.447-.234-.447z"/> - <path fill="#295200" d="M215.51 248.5l.703.67-.703-.67z"/> - <path fill="#527b31" d="M217.62 248.5l.704.67-.704-.67z"/> - <path d="M242.24 248.5v14.727h.703l-.703-14.727z" fill-opacity=".575" fill="#734a42"/> - <path fill="#ce2110" d="M242.94 248.5l1.407 1.34-1.407-1.34z"/> - <path fill="#311000" d="M243.65 248.5l.703.67-.703-.67z"/> - <path fill="#313931" d="M245.06 248.5l.703.67-.703-.67z"/> - <path fill="#9c9494" d="M245.76 248.5l.703.67-.703-.67z"/> - <path fill="#de2110" d="M247.17 248.5v1.34h1.407l-1.407-1.34z"/> - <path fill="#313931" d="M249.28 248.5l.703.67-.703-.67z"/> - <path fill="#8c8c8c" d="M250.68 248.5l.703.67-.703-.67z"/> - <path fill="#52525a" d="M251.39 248.5l.703.67-.703-.67z"/> - <path fill="#392121" d="M252.09 248.5l.703.67-.703-.67z"/> - <path fill="#423100" d="M252.79 248.5l.704.67-.704-.67z"/> - <path fill="#5a5231" d="M253.5 248.5l.704.67-.704-.67z"/> - <path fill="#cecece" d="M254.2 248.5l.703.67-.703-.67z"/> - <path fill="#dedede" d="M254.9 248.5l.703.67-.703-.67z"/> - <path fill="#8c8c8c" d="M255.61 248.5l-.703 1.34.703-1.34z"/> - <path fill="#9c9494" d="M256.31 248.5l.703.67-.703-.67z"/> - <path fill="#8c8c8c" d="M259.83 248.5l-2.814 1.34v.668l3.517-1.34-.703-.668z"/> - <path fill="#ada5a5" d="M261.94 248.5l.703.67-.703-.67z"/> - <path fill="#424242" d="M262.64 248.5l.703.67-.703-.67z"/> - <path fill="#210800" d="M264.05 248.5l.703.67-.703-.67z"/> - <path fill="#b51010" d="M264.75 248.5l.703.67-.703-.67z"/> - <path fill="#734a42" d="M265.46 248.5l-.703 15.396h.703c1.27-4.087 1.75-11.427 0-15.396z"/> - <path d="M294.3 248.5l.704.67-.704-.67z"/> - <path fill="#8c8c8c" d="M296.41 248.5l.703.67-.703-.67z"/> - <path fill="#297b00" d="M297.11 248.5l.704.67-.704-.67z"/> - <path fill="#296300" d="M299.22 248.5l.704.67-.704-.67z"/> - <path fill="#185200" d="M299.93 248.5l.704.67-.704-.67z"/> - <path fill="#296300" d="M303.21 248.72l.47.223-.47-.223z"/> - <path fill="#103900" d="M306.96 248.5l.703.67-.703-.67z"/> - <path fill="#52525a" d="M309.78 248.5l.703.67-.703-.67z"/> - <path fill="#296300" d="M311.18 248.5l.704.67-.704-.67m1.407 0l.703.67-.703-.67z"/> - <path fill="#bdbdbd" d="M313.29 248.5l.703.67-.703-.67z"/> - <path fill="#7b7373" d="M314 248.5l.704.67-.704-.67z"/> - <path fill="#185200" d="M314.7 248.5l.703.67-.703-.67z"/> - <path fill="#297b00" d="M315.4 248.5l-1.407.67v.67l1.407-1.34z"/> - <path fill="#52525a" d="M316.11 248.5l.703.67-.703-.67z"/> - <path fill="#397b00" d="M195.81 249.17l.703.67-.703-.67z"/> - <path fill="#295200" d="M196.51 249.17l.704.67-.704-.67z"/> - <path fill="#293100" d="M198.62 249.17l.703.67-.703-.67z"/> - <path fill="#311000" d="M199.33 249.17l.704.67-.704-.67z"/> - <path fill="#103900" d="M200.03 249.17l.703.67-.703-.67z"/> - <path fill="#941808" d="M201.44 249.17l.703.67-.703-.67z"/> - <path fill="#5a2121" d="M202.14 249.17l.704.67-.704-.67z"/> - <path fill="#cecece" d="M202.85 249.17l.703.67-.703-.67z"/> - <path fill="#dedede" d="M203.55 249.17l.703.67-.703-.67z"/> - <path fill="#295200" d="M204.25 249.17l.703.67-.703-.67z"/> - <path fill="#397b00" d="M215.27 249.39l.47.223-.47-.223z"/> - <path fill="#526b42" d="M217.62 249.17l.704.67-.704-.67z"/> - <path fill="#de2110" d="M242.94 249.17v14.057l7.738 1.34c-1.69-4.943-2.716-12.724-7.738-15.397z"/> - <path fill="#5a1008" d="M244.35 249.17l.704.67-.704-.67z"/> - <path fill="#100808" d="M245.76 249.17l.703.67-.703-.67z"/> - <path fill="#941808" d="M246.46 249.17l.703.67-.703-.67z"/> - <path fill="#310000" d="M248.57 249.17l.703.67-.703-.67z"/> - <path fill="#524242" d="M249.28 249.17l.703.67-.703-.67z"/> - <path fill="#ada5a5" d="M250.21 249.61l.235.446-.235-.446z"/> - <path fill="#efefef" d="M252.79 249.17l.704.67-.704-.67z"/> - <path fill="#7b7373" d="M253.73 249.61l.235.446-.235-.446z"/> - <path fill="#bdbdbd" d="M254.2 249.17l.703.67-.703-.67z"/> - <path fill="#dedede" d="M257.01 249.17l.704.67-.704-.67z"/> - <path fill="#bdbdbd" d="M259.83 249.17l.704.67-.704-.67z"/> - <path fill="#100808" d="M260.53 249.17l.704.67-.704-.67z"/> - <path fill="#bd2110" d="M261.24 249.17l.703.67-.703-.67z"/> - <path fill="#101810" d="M261.94 249.17l.703.67-.703-.67z"/> - <path fill="#311000" d="M263.35 249.17l.704.67-.704-.67z"/> - <path fill="#ce2110" d="M264.05 249.17l-.704 1.34.704-1.34z"/> - <path fill="#de2110" d="M264.75 249.17l-2.814 2.008 2.814 8.702-4.925 1.34.704 2.677 4.924-.67-.704-14.057z"/> - <path fill="#214210" d="M294.3 249.17l.704.67-.704-.67z"/> - <path fill="#425242" d="M295 249.17l.703.67-.703-.67z"/> - <path fill="#395231" d="M297.11 249.17l.704.67-.704-.67z"/> - <path fill="#184a00" d="M300.63 249.17l.703.67-.703-.67z"/> - <path fill="#297b00" d="M301.33 249.17l.703.67-.703-.67z"/> - <path fill="#184a00" d="M303.45 249.17v2.008h.703l-.703-2.008z"/> - <path fill="#185200" d="M306.26 249.17l.703.67-.703-.67z"/> - <path fill="#297b00" d="M306.96 249.17l.703.67-.703-.67z"/> - <path fill="#292921" d="M309.07 249.17l.703.67-.703-.67z"/> - <path fill="#bdbdbd" d="M309.78 249.17l.703.67-.703-.67z"/> - <path fill="#184a00" d="M310.48 249.17l.703.67-.703-.67z"/> - <path fill="#102110" d="M312.59 249.17l.703.67-.703-.67z"/> - <path fill="#314231" d="M313.29 249.17l.703.67-.703-.67z"/> - <path fill="#63636b" d="M314.7 249.84v.67h2.11l-2.11-.67z"/> - <path fill="#426331" d="M195.11 249.84l.703.67-.703-.67z"/> - <path fill="#294200" d="M196.51 249.84l.704.67-.704-.67z"/> - <path fill="#397b00" d="M197.22 249.84l.703.67-.703-.67z"/> - <path fill="#295200" d="M199.33 249.84l2.11 2.008-2.11-2.008z"/> - <path fill="#211800" d="M200.03 249.84l.703.67-.703-.67z"/> - <path fill="#ce2110" d="M202.38 250.28l.235.446-.235-.446z"/> - <path fill="#7b7373" d="M203.08 250.28l.235.446-.235-.446z"/> - <path fill="#bdbdbd" d="M203.55 249.84l.703.67-.703-.67z"/> - <path fill="#397b00" d="M204.25 249.84l.703.67-.703-.67z"/> - <path fill="#295200" d="M210.58 249.84l.704.67-.704-.67z"/> - <path fill="#6b735a" d="M217.62 249.84l.704.67-.704-.67z"/> - <path fill="#631808" d="M245.06 249.84l.703.67-.703-.67z"/> - <path fill="#211800" d="M245.76 249.84l1.407 1.34v-1.34h-1.407z"/> - <path fill="#631808" d="M247.17 249.84l.704.67-.704-.67z"/> - <path fill="#5a2121" d="M247.87 249.84l.703.67-.703-.67z"/> - <path fill="#9c9494" d="M248.81 250.28l.235.446-.235-.446z"/> - <path fill="#8c8c8c" d="M250.68 249.84v.67h2.11l-2.11-.67z"/> - <path fill="#bdbdbd" d="M252.79 249.84l.704.67-.704-.67z"/> - <path fill="#dedede" d="M255.61 249.84l.704.67-.704-.67z"/> - <path fill="#7b7373" d="M256.31 249.84l.703.67-.703-.67z"/> - <path fill="#efefef" d="M257.72 249.84l.703.67-.703-.67z"/> - <path fill="#313931" d="M260.53 249.84l.704.67-.704-.67z"/> - <path fill="#211800" d="M261.24 249.84l.703.67-.703-.67z"/> - <path fill="#5a1008" d="M262.64 249.84l.703.67-.703-.67z"/> - <path fill="#4a6342" d="M294.3 249.84l.704.67-.704-.67z"/> - <path fill="#296300" d="M295 249.84l.703.67-.703-.67z"/> - <path fill="#bdbdbd" d="M295.71 249.84l.704.67-.704-.67m1.64.446l.236.447-.235-.447z"/> - <path fill="#185200" d="M297.82 249.84l.703.67-.703-.67z"/> - <path fill="#297b00" d="M299.93 249.84l.704.67-.704-.67z"/> - <path fill="#082108" d="M300.63 249.84l.703.67-.703-.67z"/> - <path fill="#185200" d="M301.33 249.84l.703.67-.703-.67z"/> - <path fill="#184a00" d="M306.49 250.28l.235.446-.235-.446z"/> - <path fill="#296300" d="M308.37 249.84l.704.67-.704-.67z"/> - <path fill="#9c9494" d="M309.07 249.84l.703.67-.703-.67z"/> - <path fill="#314231" d="M309.78 249.84l.703.67-.703-.67z"/> - <path fill="#185200" d="M311.89 249.84l.703.67-.703-.67z"/> - <path fill="#184a00" d="M312.59 249.84l.703.67-.703-.67z"/> - <path fill="#319400" d="M313.29 249.84l-.703 1.34.703-1.34z"/> - <path fill="#296300" d="M314 249.84l.704.67-.704-.67z"/> - <path fill="#efefef" d="M315.4 249.84l.703.67-.703-.67z"/> - <path fill="#ada5a5" d="M316.81 249.84l.704.67-.704-.67z"/> - <path fill="#6b735a" d="M195.11 250.51l.703.67-.703-.67z"/> - <path fill="#103900" d="M197.22 250.51l.703.67-.703-.67z"/> - <path fill="#941808" d="M200.73 250.51l.703.67-.703-.67z"/> - <path fill="#8c8c8c" d="M203.55 250.51l.703.67-.703-.67z"/> - <path fill="#397b00" d="M210.35 250.73l.47.223-.47-.223z"/> - <path fill="#8c8c8c" d="M217.62 250.51l.704.67-.704-.67z"/> - <path fill="#941808" d="M245.76 250.51l.703.67-.703-.67z"/> - <path d="M247.17 250.51l3.518 13.388c4.284-1.497 10.863-2.087 13.366-6.025l-12.663 4.017-4.22-11.38z"/> - <path fill="#ada5a5" d="M247.87 250.51l.703.67-.703-.67z"/> - <path fill="#63636b" d="M249.28 250.51l.703.67-.703-.67z"/> - <path fill="#bdbdbd" d="M249.98 250.51l.704.67-.704-.67z"/> - <path fill="#9c9494" d="M253.5 250.51l.704.67-.704-.67z"/> - <path fill="#cecece" d="M254.2 250.51l.703.67-.703-.67z"/> - <path fill="#efefef" d="M256.31 250.51l.703.67-.703-.67z"/> - <path fill="#bdbdbd" d="M258.66 250.95l.235.446-.235-.446z"/> - <path fill="#9c9494" d="M259.12 250.51l.703.67-.703-.67z"/> - <path fill="#8c8c8c" d="M260.3 250.73l.47.223-.47-.223z"/> - <path d="M261.24 250.51l.703.67-.703-.67z"/> - <path fill="#631808" d="M261.94 250.51l.703.67-.703-.67z"/> - <path fill="#6b735a" d="M294.3 250.51l.704.67-.704-.67z"/> - <path fill="#319400" d="M295 250.51l5.628 21.42h-.704v-1.34h-.703l.704 6.026h-.703v-1.34h-.702v5.356h-.704c-.06-6.818-2.76-12.92-6.33-18.743l-1.408 1.338v.67c5.153 4.894 6.732 15.39 7.034 22.09h-1.407l-2.814-14.058h-.704l2.11 18.743h-.703l-2.814-14.057h-.705l2.11 21.42h-.703l-1.407-17.404h-.703l1.407 17.404h-.705l-.703-9.37h-.704l.704 11.38h-.704l-.703-9.373h-.704l-2.11 12.718 7.74-.668v-.67l-4.925-.67v-.668l18.29 4.685v-.67l-8.44-2.678v-.67l12.662 2.68c-3.97-4.813-9.023-4.04-14.773-3.348v-.67l16.18.67v-.67l-11.256-2.677v-.67l11.256.67v-.67c-8.045-1.75-12.078-.742-18.29 4.686L295 294.69h-.704l-.703 2.007h-.704l3.517-10.04h.703l-.703 7.362 16.18-6.025v-.67l-14.773 4.017c5.638-4.407 13.79-8.15 21.105-8.702v-.67c-8.423 0-12.94 1.932-19.7 6.694 5.294-6.566 13.515-7.24 21.106-10.04v-.67c-9.55.717-14.09 2.88-21.808 8.033 4.773-4.54 12.924-12.457 20.4-10.71l-1.406-3.347c-6.478 1.464-12.116 5.04-16.884 9.37 3.276-4.387 14.795-16.512 20.4-16.064-5.69-4.97-16.608 10.185-20.4 13.388l15.477-16.735-13.366 11.38 14.772-18.744v-.67c-7 2.46-9.068 10.783-14.07 15.397l10.552-16.735c-4.702 3.227-8.536 9.358-9.85 14.727-3.236.387-2.11 5.495-2.11 8.032h-.703c0-8.138-.98-18.033-6.33-24.767z"/> - <path fill="#314231" d="M295.71 250.51l.704.67-.704-.67z"/> - <path fill="#8c8c8c" d="M296.41 250.51l.703.67-.703-.67z"/> - <path fill="#6b735a" d="M297.82 250.51l.703.67-.703-.67z"/> - <path fill="#184a00" d="M300.63 250.51l.703.67-.703-.67z"/> - <path fill="#103900" d="M301.33 250.51l.703.67-.703-.67m7.035 0l.703.67-.703-.67z"/> - <path fill="#63636b" d="M309.07 250.51l.703.67-.703-.67z"/> - <path fill="#297b00" d="M309.78 250.51l.703.67-.703-.67m1.407 0l1.407 1.34-1.407-1.34z"/> - <path fill="#103900" d="M311.89 250.51l.703.67-.703-.67z"/> - <path fill="#185200" d="M313.29 250.51l-4.22 3.347v.67l4.22-4.017z"/> - <path fill="#8c8c8c" d="M314 250.51l-.703 1.34.703-1.34z"/> - <path fill="#ada5a5" d="M314.7 250.51l.703.67-.703-.67z"/> - <path fill="#102110" d="M315.4 250.51l.703.67-.703-.67z"/> - <path fill="#7b7373" d="M316.11 250.51l.703.67-.703-.67z"/> - <path fill="#9c9494" d="M195.11 251.18l.703.67-.703-.67z"/> - <path fill="#397b00" d="M195.81 251.18l.703.67-.703-.67z"/> - <path fill="#103900" d="M197.92 251.18l2.11 2.008-2.11-2.008z"/> - <path fill="#5a1008" d="M201.44 251.18l.703.67-.703-.67z"/> - <path fill="#733939" d="M202.14 251.18l.704.67-.704-.67z"/> - <path fill="#dedede" d="M202.85 251.18l.703.67-.703-.67z"/> - <path fill="#9c9494" d="M203.55 251.18l.703.67-.703-.67z"/> - <path fill="#295200" d="M206.36 251.18l1.407 1.34-1.407-1.34z"/> - <path fill="#294200" d="M209.88 251.18l.703.67-.703-.67z"/> - <path fill="#397b00" d="M213.4 251.18l.704.67-.704-.67m3.518 0l.703.67-.702-.67z"/> - <path fill="#bdbdbd" d="M217.62 251.18l.704.67-.704-.67z"/> - <path fill="#100808" d="M246.46 251.18l.703.67-.703-.67z"/> - <path fill="#63636b" d="M247.87 251.18l.703.67-.703-.67z"/> - <path fill="#cecece" d="M250.68 251.18l.703.67-.703-.67z"/> - <path fill="#8c8c8c" d="M251.39 251.18v.67h2.11l-2.11-.67z"/> - <path fill="#efefef" d="M253.5 251.18l.704.67-.704-.67z"/> - <path fill="#dedede" d="M256.31 251.18l.703.67-.703-.67z"/> - <path fill="#7b7373" d="M257.48 251.4l.47.223-.47-.223z"/> - <path fill="#dedede" d="M259.12 251.18l.703.67-.703-.67m1.407 0l.704.67-.703-.67z"/> - <path fill="#210800" d="M261.24 251.18l.703.67-.703-.67z"/> - <path fill="#bdbdbd" d="M292.89 251.18l.704.67-.704-.67z"/> - <path fill="#efefef" d="M293.6 251.18l.703.67-.703-.67z"/> - <path fill="#8c8c8c" d="M294.3 251.18l-.703 1.34.703-1.34z"/> - <path fill="#185200" d="M295.71 251.18l.704.67-.704-.67z"/> - <path fill="#7b7373" d="M296.41 251.18l.703.67-.703-.67z"/> - <path fill="#292921" d="M297.11 251.18l.704.67-.704-.67z"/> - <path fill="#cecece" d="M297.82 251.18l.703.67-.703-.67z"/> - <path fill="#185200" d="M298.52 251.18l.703.67-.703-.67z"/> - <path fill="#297b00" d="M300.63 251.18l.703.67-.703-.67z"/> - <path fill="#082108" d="M301.33 251.18l.703.67-.703-.67z"/> - <path fill="#185200" d="M303.45 251.18l1.407 1.34-1.407-1.34z"/> - <path fill="#297b00" d="M304.15 251.18l.703.67-.703-.67z"/> - <path fill="#296300" d="M306.02 251.4l.47.223-.47-.223z"/> - <path fill="#102110" d="M308.37 251.18l.704.67-.704-.67z"/> - <path fill="#296300" d="M309.07 251.18l.703.67-.703-.67z"/> - <path fill="#184a00" d="M311.18 251.18l.704.67-.704-.67z"/> - <path fill="#425242" d="M314 251.18l.704.67-.704-.67z"/> - <path fill="#185200" d="M314.7 251.18l.703.67-.703-.67z"/> - <path fill="#314231" d="M315.4 251.18l.703.67-.703-.67z"/> - <path fill="#efefef" d="M195.11 251.85l.703.67-.703-.67z"/> - <path fill="#295200" d="M195.81 251.85l.703.67-.703-.67z"/> - <path fill="#214210" d="M201.44 251.85l.703.67-.703-.67z"/> - <path fill="#efefef" d="M202.14 251.85l.704.67-.704-.67z"/> - <path fill="#bdbdbd" d="M203.55 251.85l.703.67-.703-.67z"/> - <path fill="#397b00" d="M204.25 251.85l.703.67-.703-.67m2.11 0l.704.67-.704-.67z"/> - <path fill="#295200" d="M209.88 251.85l.703.67-.703-.67z"/> - <path fill="#103900" d="M212.69 251.85l.703.67-.703-.67z"/> - <path fill="#397b00" d="M214.57 252.07l.47.223-.47-.223z"/> - <path fill="#315221" d="M216.92 251.85l.703.67-.703-.67z"/> - <path fill="#420000" d="M246.46 251.85l.703.67-.703-.67z"/> - <path fill="#101810" d="M247.87 251.85l.703.67-.703-.67z"/> - <path fill="#ada5a5" d="M249.28 251.85l-.703 1.34.703-1.34z"/> - <path fill="#7b7373" d="M249.98 251.85l.704.67-.704-.67z"/> - <path fill="#9c9494" d="M250.68 251.85l.703.67-.703-.67z"/> - <path fill="#8c8c8c" d="M256.08 252.07l.47.223-.47-.223z"/> - <path fill="#efefef" d="M257.01 251.85l1.407 4.016h.704l-2.11-4.016m2.11 0l.704.67-.704-.67z"/> - <path fill="#bdbdbd" d="M260.06 252.29l.235.446-.235-.446z"/> - <path fill="#ada5a5" d="M260.53 251.85l.704.67-.704-.67z"/> - <path fill="#313931" d="M261.24 251.85l.703.67-.703-.67z"/> - <path fill="#bd2110" d="M261.94 251.85l.703.67-.703-.67z"/> - <path fill="#ada5a5" d="M292.89 251.85l.704.67-.704-.67m1.407 0l.703.67-.703-.67z"/> - <path fill="#297b00" d="M295 251.85l.703.67-.703-.67z"/> - <path fill="#5a6b52" d="M296.41 251.85l.703.67-.703-.67z"/> - <path fill="#103900" d="M297.11 251.85l.704.67-.704-.67z"/> - <path fill="#7b7373" d="M297.82 251.85l.703.67-.703-.67z"/> - <path fill="#6b735a" d="M298.52 251.85l.703.67-.703-.67z"/> - <path fill="#297b00" d="M299.22 251.85l.704.67-.704-.67z"/> - <path fill="#103900" d="M301.33 251.85l.703.67-.703-.67z"/> - <path fill="#297b00" d="M303.45 251.85l.703.67-.703-.67z"/> - <path fill="#184a00" d="M305.56 251.85l.704.67-.704-.67z"/> - <path fill="#297b00" d="M307.67 251.85l1.407 1.34-1.407-1.34z"/> - <path fill="#103900" d="M308.37 251.85l.704.67-.704-.67z"/> - <path fill="#296300" d="M310.48 251.85l.703.67-.703-.67z"/> - <path fill="#313931" d="M312.59 251.85l.703.67-.703-.67z"/> - <path fill="#214210" d="M313.29 251.85l.703.67-.703-.67z"/> - <path fill="#297b00" d="M314 251.85l.704.67-.704-.67z"/> - <path fill="#103910" d="M314.7 251.85l.703.67-.703-.67z"/> - <path fill="#efefef" d="M315.4 251.85l.703.67-.703-.67z"/> - <path fill="#425242" d="M195.81 252.52l.703.67-.703-.67z"/> - <path fill="#63636b" d="M202.14 252.52l.704.67-.704-.67z"/> - <path fill="#dedede" d="M203.55 252.52l-.703 1.34.703-1.34z"/> - <path fill="#396b10" d="M204.25 252.52l.703.67-.703-.67z"/> - <path fill="#397b00" d="M209.88 252.52l.703.67-.703-.67m1.407 1.34l2.11-.67-2.11.67z"/> - <path fill="#103900" d="M214.1 252.52l.704.67-.704-.67z"/> - <path fill="#8c8c8c" d="M216.92 252.52l.703.67-.703-.67z"/> - <path fill="#941808" d="M246.46 252.52l.703.67-.703-.67z"/> - <path fill="#cecece" d="M249.28 252.52l.703.67-.703-.67z"/> - <path fill="#dedede" d="M251.39 252.52l.703.67-.703-.67z"/> - <path fill="#ada5a5" d="M252.09 252.52l.703.67-.703-.67m2.11 0l.704.67-.704-.67z"/> - <path fill="#cecece" d="M254.9 252.52l.703.67-.703-.67z"/> - <path fill="#7b7373" d="M257.72 252.52l.703.67-.703-.67z"/> - <path fill="#8c8c8c" d="M258.89 252.74l.47.223-.47-.223z"/> - <path fill="#efefef" d="M260.53 252.52l.704.67-.704-.67z"/> - <path fill="#8c8c8c" d="M261.24 252.52l.703.67-.703-.67z"/> - <path fill="#7b1008" d="M261.94 252.52l.703.67-.703-.67z"/> - <path fill="#dedede" d="M292.89 252.52l.704.67-.704-.67z"/> - <path fill="#101810" d="M293.6 252.52l.703.67-.703-.67z"/> - <path fill="#cecece" d="M294.3 252.52l.704.67-.704-.67z"/> - <path fill="#296300" d="M295 252.52l.703.67-.703-.67z"/> - <path fill="#184a00" d="M296.41 252.52l.703.67-.703-.67z"/> - <path fill="#082108" d="M297.11 252.52l.704.67-.704-.67z"/> - <path fill="#185200" d="M297.82 252.52l.703.67-.703-.67z"/> - <path fill="#9c9494" d="M298.52 252.52l.703.67-.703-.67z"/> - <path fill="#184a00" d="M299.22 252.52l.704.67-.704-.67z"/> - <path fill="#296300" d="M301.8 252.74l.47.223-.47-.223z"/> - <path fill="#103900" d="M304.15 252.52l.703.67-.703-.67m1.407 0l.704.67-.703-.67m2.11 0l.704.67-.703-.67m2.814 0l.705.67-.704-.67z"/> - <path d="M311.89 252.52l.703.67-.703-.67z"/> - <path fill="#296300" d="M312.59 252.52l.703.67-.703-.67z"/> - <path fill="#184a00" d="M314 252.52l.704.67-.704-.67z"/> - <path fill="#cecece" d="M314.7 252.52l.703.67-.703-.67z"/> - <path fill="#dedede" d="M195.11 253.18l.703.67-.703-.67z"/> - <path fill="#bdbdbd" d="M195.81 253.18l.703.67-.703-.67z"/> - <path fill="#295200" d="M196.51 253.18l.704.67-.704-.67z"/> - <path fill="#292100" d="M200.03 253.18l.703.67-.703-.67z"/> - <path fill="#294200" d="M202.14 253.18l.704.67-.704-.67z"/> - <path fill="#8c8c8c" d="M204.25 253.18l.703.67-.703-.67z"/> - <path fill="#397b00" d="M204.96 253.18l.704.67-.704-.67z"/> - <path fill="#294200" d="M211.99 253.18l.703.67-.703-.67z"/> - <path fill="#428c00" d="M212.69 253.18l-.703 1.34.703-1.34z"/> - <path fill="#295200" d="M213.4 253.18l.704.67-.704-.67z"/> - <path fill="#397b00" d="M214.1 253.18l.704.67-.704-.67z"/> - <path fill="#213918" d="M216.21 253.18l.704.67-.704-.67z"/> - <path fill="#efefef" d="M216.92 253.18l.703.67-.703-.67z"/> - <path fill="#ce2110" d="M246.46 253.18l.703.67-.703-.67z"/> - <path fill="#63636b" d="M248.57 253.18l.703.67-.703-.67z"/> - <path fill="#bdbdbd" d="M249.98 253.18l.704.67-.704-.67z"/> - <path fill="#8c8c8c" d="M251.15 253.41l.47.223-.47-.223z"/> - <path fill="#cecece" d="M252.09 253.18l2.11 2.008-2.11-2.008z"/> - <path fill="#8c8c8c" d="M254.9 253.18l.703.67-.703-.67z"/> - <path fill="#efefef" d="M255.61 253.18l1.407 2.008-1.407-2.008z"/> - <path fill="#8c8c8c" d="M256.78 253.41l.47.223-.47-.223z"/> - <path fill="#dedede" d="M260.53 253.18l1.407 1.34-1.407-1.34z"/> - <path fill="#bdbdbd" d="M261.24 253.18l.703.67-.703-.67z"/> - <path fill="#210800" d="M261.94 253.18l.703.67-.703-.67z"/> - <path fill="#103910" d="M293.6 253.18l.703.67-.703-.67z"/> - <path fill="#9c9494" d="M294.3 253.18l.704.67-.704-.67z"/> - <path fill="#184a00" d="M295 253.18l.703.67-.703-.67z"/> - <path fill="#297b00" d="M296.41 253.18l.703.67-.703-.67z"/> - <path fill="#001000" d="M297.11 253.18l.704.67-.704-.67z"/> - <path fill="#319400" d="M297.82 253.18l.703.67-.703-.67z"/> - <path fill="#103910" d="M298.52 253.18l.703.67-.703-.67z"/> - <path fill="#425242" d="M299.22 253.18l.704.67-.704-.67z"/> - <path fill="#103900" d="M302.04 253.18l.704.67-.704-.67z"/> - <path fill="#184a00" d="M304.15 253.18l.703.67-.703-.67z"/> - <path fill="#185200" d="M305.56 253.18l.704.67-.704-.67z"/> - <path fill="#297b00" d="M306.96 253.18l1.407 1.34-1.407-1.34z"/> - <path fill="#184a00" d="M307.67 253.18l.703.67-.703-.67z"/> - <path fill="#103900" d="M309.78 253.18l.703.67-.703-.67z"/> - <path fill="#001000" d="M311.18 253.18l-.703 1.34.703-1.34z"/> - <path fill="#297b00" d="M311.89 253.18l.703.67-.703-.67m1.407 0l-.703 1.34.703-1.34z"/> - <path fill="#8c8c8c" d="M314 253.18l.704.67-.704-.67z"/> - <path fill="#dedede" d="M314.7 253.18l.703.67-.703-.67z"/> - <path fill="#63636b" d="M315.4 253.18l.703.67-.703-.67z"/> - <path fill="#6b735a" d="M316.11 253.18l.703.67-.703-.67z"/> - <path fill="#8c9c84" d="M316.81 253.18l.704.67-.704-.67z"/> - <path fill="#8c8c8c" d="M317.52 253.18l.703.67-.703-.67z"/> - <path fill="#bdbdbd" d="M318.22 253.18l.703.67-.703-.67z"/> - <path fill="#313931" d="M195.11 253.85l.703.67-.703-.67z"/> - <path fill="#63636b" d="M195.81 253.85l.703.67-.703-.67z"/> - <path fill="#425242" d="M196.51 253.85l.704.67-.704-.67z"/> - <path fill="#397b00" d="M200.03 253.85l.703.67-.703-.67z"/> - <path fill="#294200" d="M200.73 253.85l.703.67-.703-.67z"/> - <path fill="#7b7373" d="M202.85 253.85l.703.67-.703-.67z"/> - <path fill="#425242" d="M204.96 253.85l.704.67-.704-.67z"/> - <path fill="#103900" d="M211.29 253.85l.704.67-.704-.67z"/> - <path fill="#397b00" d="M212.69 253.85l-.703 1.34.703-1.34z"/> - <path fill="#294200" d="M213.4 253.85l.704.67-.704-.67m2.11 0l.704.67-.704-.67z"/> - <path fill="#cecece" d="M216.21 253.85l.704.67-.704-.67z"/> - <path fill="#420000" d="M247.17 253.85l.704.67-.704-.67z"/> - <path fill="#101810" d="M248.57 253.85l.703.67-.703-.67z"/> - <path fill="#dedede" d="M249.28 253.85l.703.67-.703-.67z"/> - <path fill="#9c9494" d="M249.98 253.85l.704.67-.704-.67z"/> - <path fill="#ada5a5" d="M253.5 253.85l.704.67-.704-.67z"/> - <path fill="#9c9494" d="M254.2 253.85l.703.67-.703-.67z"/> - <path fill="#7b7373" d="M254.9 253.85l.703.67-.703-.67z"/> - <path fill="#dedede" d="M256.31 253.85l.703.67-.703-.67z"/> - <path fill="#8c8c8c" d="M258.42 253.85v.67h2.11l-2.11-.67z"/> - <path fill="#ada5a5" d="M260.53 253.85l.704.67-.704-.67z"/> - <path fill="#313931" d="M261.94 253.85l.703.67-.703-.67z"/> - <path fill="#bd2110" d="M262.64 253.85l.703.67-.703-.67z"/> - <path fill="#4a6342" d="M293.6 253.85l.703.67-.703-.67z"/> - <path fill="#294221" d="M294.3 253.85l.704.67-.704-.67z"/> - <path fill="#4a6342" d="M295 253.85l.703.67-.703-.67z"/> - <path fill="#103900" d="M297.11 253.85l.704.67-.704-.67z"/> - <path fill="#297b00" d="M297.11 255.19l2.11-.67-2.11.67z"/> - <path fill="#313931" d="M299.22 253.85l.704.67-.704-.67z"/> - <path fill="#296300" d="M299.93 253.85l.704.67-.704-.67z"/> - <path fill="#185200" d="M302.04 253.85l1.407 1.34-1.407-1.34z"/> - <path fill="#297b00" d="M302.74 253.85l.704.67-.704-.67z"/> - <path fill="#103900" d="M306.96 253.85l.703.67-.703-.67z"/> - <path fill="#297b00" d="M311.18 253.85l.704.67-.704-.67z"/> - <path fill="#425242" d="M313.29 253.85l.703.67-.703-.67z"/> - <path fill="#cecece" d="M314 253.85l.704.67-.704-.67z"/> - <path fill="#214210" d="M314.7 253.85l.703.67-.703-.67z"/> - <path fill="#297b00" d="M315.4 253.85l.703.67-.703-.67m2.11 0l.704.67-.704-.67z"/> - <path fill="#296300" d="M318.22 253.85l.703.67-.703-.67z"/> - <path fill="#184a00" d="M318.92 253.85l.703.67-.703-.67z"/> - <path fill="#425242" d="M319.63 253.85l.704.67-.704-.67z"/> - <path fill="#9c9494" d="M320.56 254.3l.235.446-.235-.446z"/> - <path fill="#8c8c8c" d="M195.11 254.52l.703.67-.703-.67z"/> - <path fill="#428c00" d="M195.81 254.52l.703.67-.703-.67z"/> - <path fill="#294200" d="M196.51 254.52l.704.67-.704-.67z"/> - <path fill="#103900" d="M197.22 254.52l.703.67-.703-.67z"/> - <path fill="#397b00" d="M197.92 254.52l.703.67-.703-.67z"/> - <path fill="#295200" d="M200.73 254.52l.703.67-.703-.67z"/> - <path fill="#397b00" d="M201.67 254.97l.235.446-.235-.446z"/> - <path fill="#315221" d="M202.85 254.52l.703.67-.703-.67z"/> - <path fill="#cecece" d="M204.96 254.52l.704.67-.704-.67z"/> - <path fill="#294200" d="M205.66 254.52l.703.67-.703-.67z"/> - <path fill="#295200" d="M207.77 254.52l.704.67-.704-.67z"/> - <path fill="#103900" d="M210.58 254.52l.704.67-.704-.67z"/> - <path fill="#294200" d="M212.69 254.52l.703.67-.703-.67z"/> - <path fill="#295200" d="M214.8 254.52l-.704 1.34.704-1.34z"/> - <path fill="#9c9494" d="M215.51 254.52l-.703 1.34.703-1.34z"/> - <path fill="#941808" d="M247.17 254.52l.704.67-.704-.67z"/> - <path fill="#ada5a5" d="M249.28 254.52l.703.67-.703-.67z"/> - <path fill="#dedede" d="M250.68 254.52l.703.67-.703-.67z"/> - <path fill="#7b7373" d="M251.86 254.75l.47.223-.47-.223z"/> - <path fill="#ada5a5" d="M252.79 254.52l.704.67-.704-.67m2.58.223l.468.223-.468-.223z"/> - <path fill="#8c8c8c" d="M257.01 254.52l.704.67-.704-.67z"/> - <path fill="#7b7373" d="M257.72 254.52l.703.67-.703-.67z"/> - <path fill="#8c8c8c" d="M261.94 254.52l-2.814.67v.67l3.518-.67-.704-.67z"/> - <path fill="#7b1008" d="M262.64 254.52l.703.67-.703-.67z"/> - <path fill="#8c8c8c" d="M293.6 254.52l.703.67-.703-.67z"/> - <path fill="#296300" d="M294.3 254.52l.704.67-.704-.67z"/> - <path fill="#001000" d="M295 254.52l.703.67-.703-.67z"/> - <path fill="#185200" d="M297.82 254.52l.703.67-.703-.67z"/> - <path fill="#319400" d="M298.52 254.52l2.814 11.38h.703c-.035-4.11-.55-8.216-3.517-11.38z"/> - <path fill="#184a00" d="M299.22 254.52l.704.67-.704-.67z"/> - <path fill="#103900" d="M299.93 254.52l.704.67-.704-.67z"/> - <path fill="#297b00" d="M302.04 254.52l.704.67-.704-.67z"/> - <path fill="#103900" d="M304.85 254.52l.703.67-.703-.67z"/> - <path fill="#184a00" d="M306.96 254.52l.703.67-.703-.67m2.11 0l.704.67-.704-.67z"/> - <path fill="#103900" d="M309.78 254.52l.703.67-.703-.67z"/> - <path fill="#297b00" d="M310.48 254.52l.703.67-.703-.67z"/> - <path fill="#214210" d="M312.59 254.52l.703.67-.703-.67z"/> - <path fill="#bdbdbd" d="M313.29 254.52l.703.67-.703-.67z"/> - <path fill="#214210" d="M314 254.52l.704.67-.704-.67z"/> - <path fill="#297b00" d="M316.11 254.52l.703.67-.703-.67z"/> - <path fill="#185200" d="M316.81 254.52l.704.67-.704-.67z"/> - <path fill="#184a00" d="M317.52 254.52l.703.67-.703-.67z"/> - <path fill="#295210" d="M318.22 254.52l.703.67-.703-.67z"/> - <path fill="#4a6342" d="M318.92 254.52l.703.67-.703-.67z"/> - <path fill="#5a6b52" d="M319.63 254.52l.704.67-.704-.67z"/> - <path fill="#dedede" d="M195.11 255.19l.703.67-.703-.67z"/> - <path fill="#295200" d="M195.81 255.19l2.11 1.34-2.11-1.34m2.11 0l.704.67-.704-.67z"/> - <path fill="#103900" d="M198.62 255.19l.703.67-.703-.67z"/> - <path fill="#295200" d="M199.33 255.19l.704.67-.704-.67z"/> - <path fill="#397b00" d="M202.85 255.19l.703.67-.703-.67z"/> - <path fill="#cecece" d="M203.55 255.19l.703.67-.703-.67z"/> - <path fill="#8c8c8c" d="M205.66 255.19l.703.67-.703-.67z"/> - <path fill="#397b00" d="M206.36 255.19v.67h2.11l-2.11-.67z"/> - <path fill="#103900" d="M209.88 255.19l.703.67-.703-.67m2.11 0l.704.67-.704-.67z"/> - <path fill="#00215a" d="M227.47 255.19l.704.67-.704-.67z"/> - <path fill="#ce2110" d="M247.17 255.19l.704.67-.704-.67z"/> - <path fill="#63636b" d="M249.28 255.19l.703.67-.703-.67z"/> - <path fill="#bdbdbd" d="M249.98 255.19l.704.67-.704-.67z"/> - <path fill="#8c8c8c" d="M250.68 255.19l.703.67-.703-.67z"/> - <path fill="#efefef" d="M251.62 255.64l.235.446-.235-.446z"/> - <path fill="#bdbdbd" d="M254.43 255.64l.235.446-.235-.446z"/> - <path fill="#dedede" d="M255.14 255.64l.235.446-.235-.446z"/> - <path fill="#7b7373" d="M255.84 255.64l.235.446-.235-.446z"/> - <path fill="#bdbdbd" d="M256.31 255.19l.703.67-.703-.67z"/> - <path fill="#dedede" d="M257.01 255.19l.704.67-.704-.67z"/> - <path fill="#cecece" d="M261.94 255.19l.703.67-.703-.67z"/> - <path fill="#210800" d="M262.64 255.19l.703.67-.703-.67z"/> - <path fill="#520808" d="M280.23 255.19l.704.67-.704-.67z"/> - <path fill="#ad1810" d="M280.93 255.19v.67h6.33l-6.33-.67z"/> - <path fill="#520808" d="M287.26 255.19l.703.67-.703-.67z"/> - <path fill="#7b7373" d="M291.49 255.19l.704.67-.704-.67z"/> - <path fill="#ada5a5" d="M293.6 255.19l.703.67-.703-.67z"/> - <path fill="#297b00" d="M294.3 255.19l.704.67-.704-.67z"/> - <path fill="#082108" d="M295 255.19l.703.67-.703-.67z"/> - <path fill="#103900" d="M297.82 255.19l.703.67-.703-.67z"/> - <path fill="#297b00" d="M299.22 255.19l.704.67-.704-.67z"/> - <path fill="#001000" d="M299.93 255.19l.704.67-.704-.67z"/> - <path fill="#297b00" d="M300.63 255.19l.703.67-.703-.67z"/> - <path fill="#184a00" d="M302.98 255.64l.235.446-.235-.446z"/> - <path fill="#103900" d="M306.26 255.19l.703.67-.703-.67m2.11 0l1.407 1.34-1.407-1.34z"/> - <path fill="#185200" d="M309.07 255.19l.703.67-.703-.67z"/> - <path fill="#296300" d="M309.78 255.19l.703.67-.703-.67z"/> - <path fill="#297b00" d="M311.89 255.19l.703.67-.703-.67z"/> - <path fill="#7b7373" d="M312.59 255.19l.703.67-.703-.67z"/> - <path fill="#314231" d="M313.29 255.19l-.703 1.34.703-1.34z"/> - <path fill="#297b00" d="M314 255.19l.704.67-.704-.67z"/> - <path fill="#214210" d="M315.4 255.19l.703.67-.703-.67z"/> - <path fill="#ada5a5" d="M316.11 255.19l-.703 1.34.703-1.34z"/> - <path fill="#5a5231" d="M195.81 255.86l.703.67-.703-.67z"/> - <path fill="#294200" d="M200.5 256.09l.47.223-.47-.223z"/> - <path fill="#8c8c8c" d="M203.55 255.86l.703.67-.703-.67z"/> - <path fill="#314231" d="M206.36 255.86l.703.67-.703-.67z"/> - <path fill="#294200" d="M207.07 255.86l.703.67-.703-.67z"/> - <path fill="#295200" d="M209.18 255.86l.703.67-.703-.67z"/> - <path fill="#397b00" d="M209.88 255.86l.703.67-.703-.67z"/> - <path fill="#103900" d="M211.29 255.86l.704.67-.704-.67z"/> - <path fill="#214210" d="M213.4 255.86l.704.67-.704-.67z"/> - <path fill="#ada5a5" d="M214.1 255.86l.704.67-.704-.67z"/> - <path fill="#7b7373" d="M220.43 255.86l.704.67-.704-.67z"/> - <path d="M221.14 255.86v.67h6.33v10.04c3.817-6.062.247-10.705-6.33-10.71z" fill-opacity=".309" fill="#bdbdbd"/> - <path fill="#8c8c8c" d="M227.47 255.86l.704.67-.704-.67z"/> - <path fill="#420000" d="M247.87 255.86l.703.67-.703-.67z"/> - <path fill="#101810" d="M249.28 255.86l.703.67-.703-.67z"/> - <path fill="#8c8c8c" d="M250.68 256.53v.67l3.518-.67h-3.518m7.035-.67l.703.67-.703-.67z"/> - <path fill="#7b7373" d="M258.42 255.86l.704.67-.704-.67z"/> - <path fill="#dedede" d="M259.12 255.86l.703.67-.703-.67z"/> - <path fill="#292921" d="M262.64 255.86l.703.67-.703-.67z"/> - <path fill="#bd2110" d="M263.35 255.86l.704.67-.704-.67z"/> - <path fill="#63636b" d="M280.23 255.86l.704.67-.704-.67z"/> - <path fill="#bdbdbd" d="M280.93 255.86v.67h6.33l-6.33-.67z"/> - <path fill="#63636b" d="M287.26 255.86l.703.67-.703-.67z"/> - <path fill="#292921" d="M291.49 255.86l.704.67-.704-.67z"/> - <path fill="#bdbdbd" d="M292.19 255.86l.703.67-.703-.67m1.64.446l.236.446-.235-.446z"/> - <path fill="#296300" d="M294.3 257.2l2.11-.67-2.11.67z"/> - <path fill="#185200" d="M297.82 255.86l1.407 1.34-1.407-1.34z"/> - <path fill="#297b00" d="M298.52 255.86l.703.67-.703-.67z"/> - <path fill="#296300" d="M299.93 255.86l.704.67-.704-.67z"/> - <path fill="#185200" d="M300.63 255.86l.703.67-.703-.67z"/> - <path fill="#184a00" d="M306.26 255.86l.703.67-.703-.67z"/> - <path fill="#319400" d="M306.96 255.86l.703.67-.703-.67z"/> - <path fill="#184a00" d="M307.67 255.86l.703.67-.703-.67z"/> - <path fill="#214210" d="M311.89 255.86l.703.67-.703-.67z"/> - <path fill="#297b00" d="M313.29 255.86l.703.67-.703-.67z"/> - <path fill="#296300" d="M314.7 255.86l.703.67-.703-.67z"/> - <path fill="#8c8c8c" d="M195.81 256.53l.703.67-.703-.67z"/> - <path fill="#397b00" d="M197.22 256.53l.703.67-.703-.67z"/> - <path fill="#294200" d="M197.92 256.53l.703.67-.703-.67m3.986.223l.47.223-.47-.223z"/> - <path fill="#5a6b52" d="M203.55 256.53l.703.67-.703-.67z"/> - <path fill="#9c9494" d="M206.36 256.53l.703.67-.703-.67z"/> - <path fill="#292100" d="M207.07 256.53l.703.67-.703-.67z"/> - <path fill="#294200" d="M209.18 256.53l.703.67-.703-.67m1.407 0l.704.67-.703-.67z"/> - <path fill="#397b00" d="M211.29 256.53l.704.67-.704-.67z"/> - <path fill="#314231" d="M212.69 256.53l.703.67-.703-.67z"/> - <path fill="#cecece" d="M213.4 256.53l.704.67-.704-.67z"/> - <path fill="#8c8c8c" d="M220.43 256.53v5.355h.704l-.704-5.355z"/> - <path fill="#941808" d="M247.87 256.53l.703.67-.703-.67z"/> - <path fill="#ada5a5" d="M249.98 256.53l.704.67-.704-.67z"/> - <path fill="#dedede" d="M252.09 256.53l.703.67-.703-.67z"/> - <path fill="#efefef" d="M254.9 256.53l1.407 1.34-1.407-1.34z"/> - <path fill="#bdbdbd" d="M255.61 256.53l.704.67-.704-.67z"/> - <path fill="#ada5a5" d="M256.78 256.75l.47.223-.47-.223z"/> - <path fill="#dedede" d="M257.72 256.53l.703.67-.703-.67z"/> - <path fill="#efefef" d="M259.12 256.53l.703.67-.703-.67z"/> - <path fill="#ada5a5" d="M259.83 256.53l.704.67-.704-.67z"/> - <path fill="#8c8c8c" d="M261 256.75l.47.223-.47-.223z"/> - <path fill="#9c9494" d="M261.94 256.53l.703.67-.703-.67z"/> - <path fill="#7b7373" d="M262.64 256.53l.703.67-.703-.67z"/> - <path fill="#7b1008" d="M263.35 256.53l.704.67-.704-.67z"/> - <path fill="#8c8c8c" d="M280.23 256.53v8.702h.704l-.704-8.702m7.035 0v10.04h.703l-.703-10.04z"/> - <path fill="#6b735a" d="M291.49 256.53l.704.67-.704-.67z"/> - <path fill="#395231" d="M292.19 256.53l.703.67-.703-.67z"/> - <path fill="#319400" d="M295 256.53l3.518 12.05h.703L295 256.53z"/> - <path fill="#103900" d="M295.71 256.53l.704.67-.704-.67z"/> - <path fill="#297b00" d="M297.82 256.53l.703.67-.703-.67z"/> - <path fill="#184a00" d="M300.87 256.98l.235.446-.235-.446z"/> - <path fill="#296300" d="M302.74 256.53l.704.67-.704-.67z"/> - <path fill="#297b00" d="M303.45 256.53l-.704 1.34.704-1.34z"/> - <path fill="#184a00" d="M305.56 256.53l.704.67-.704-.67z"/> - <path fill="#296300" d="M307.43 256.75l.47.223-.47-.223z"/> - <path fill="#185200" d="M308.37 256.53l.704.67-.704-.67z"/> - <path fill="#297b00" d="M311.18 256.53l.704.67-.704-.67z"/> - <path d="M311.89 256.53l.703.67-.703-.67z"/> - <path fill="#297b00" d="M312.59 256.53l.703.67-.703-.67z"/> - <path fill="#425242" d="M314.7 256.53l.703.67-.703-.67z"/> - <path fill="#efefef" d="M195.81 257.2l.703.67-.703-.67z"/> - <path fill="#315221" d="M196.51 257.2l.704.67-.704-.67z"/> - <path fill="#103900" d="M198.62 257.2l.703.67-.703-.67z"/> - <path fill="#397b00" d="M199.56 257.65l.235.446-.235-.446m2.58-.446l.703.67-.703-.67z"/> - <path fill="#103900" d="M202.85 257.2l1.407 1.34-1.407-1.34z"/> - <path fill="#213918" d="M203.55 257.2l.703.67-.703-.67z"/> - <path fill="#dedede" d="M206.36 257.2l.703.67-.703-.67z"/> - <path fill="#295200" d="M207.07 257.2l.703.67-.703-.67z"/> - <path fill="#103900" d="M208.47 257.2l.703.67-.703-.67z"/> - <path fill="#397b00" d="M209.88 257.2l.703.67-.703-.67z"/> - <path fill="#295200" d="M210.58 257.2l.704.67-.704-.67z"/> - <path fill="#213918" d="M211.99 257.2l.703.67-.703-.67z"/> - <path fill="#efefef" d="M212.69 257.2l.703.67-.703-.67z"/> - <path fill="#ce2110" d="M247.87 257.2l.703.67-.703-.67z"/> - <path fill="#63636b" d="M249.98 257.2l.704.67-.704-.67z"/> - <path fill="#efefef" d="M252.09 257.2l.703.67-.703-.67z"/> - <path fill="#9c9494" d="M252.79 257.2l.704.67-.704-.67z"/> - <path fill="#8c8c8c" d="M253.5 257.2v.67h2.11l-2.11-.67m2.814 0l-2.11 1.34v.668l2.11-2.008m2.11 0l.704.67-.703-.67z"/> - <path fill="#7b7373" d="M259.12 257.2l.703.67-.703-.67z"/> - <path fill="#cecece" d="M259.83 257.2l.704.67-.704-.67m2.814 0l-.703 1.34.704-1.34z"/> - <path fill="#210800" d="M263.35 257.2l.704.67-.704-.67z"/> - <path fill="#8c8c8c" d="M291.49 257.2l.704.67-.704-.67z"/> - <path fill="#296300" d="M292.42 257.65l.235.446-.235-.446z"/> - <path fill="#8c8c8c" d="M292.89 257.2l.704.67-.704-.67z"/> - <path fill="#185200" d="M294.3 257.2l.704.67-.704-.67z"/> - <path fill="#184a00" d="M295.71 257.2l.704.67-.704-.67z"/> - <path fill="#297b00" d="M296.41 257.2l-.704 1.34.704-1.34z"/> - <path fill="#103900" d="M298.52 257.2l.703.67-.703-.67z"/> - <path fill="#297b00" d="M301.33 257.2l-.703 1.34.703-1.34z"/> - <path fill="#184a00" d="M303.68 257.65l.235.446-.235-.446z"/> - <path fill="#103900" d="M305.56 257.2l.704.67-.704-.67m1.407 0l.703.67-.703-.67z"/> - <path fill="#184a00" d="M308.37 257.2l.704.67-.704-.67m2.814 0l.704.67-.704-.67z"/> - <path fill="#296300" d="M311.89 257.2l.703.67-.703-.67z"/> - <path fill="#184a00" d="M314 257.2l.704.67-.704-.67z"/> - <path fill="#cecece" d="M314.7 257.2l.703.67-.703-.67z"/> - <path fill="#efefef" d="M317.4 260.45l-2.814 4.686c1.887-1.316 3.672-2.43 2.814-4.686z"/> - <path fill="#dedede" d="M321.74 257.2l.703.67-.703-.67z"/> - <path fill="#bdbdbd" d="M196.51 257.87l.704.67-.704-.67z"/> - <path fill="#295200" d="M197.22 257.87l.703.67-.703-.67z"/> - <path fill="#294200" d="M200.03 257.87l.703.67-.703-.67z"/> - <path fill="#bdbdbd" d="M204.25 257.87l.703.67-.703-.67z"/> - <path fill="#8c8c8c" d="M206.36 257.87l.703.67-.703-.67z"/> - <path fill="#295200" d="M207.77 257.87l.704.67-.704-.67z"/> - <path fill="#397b00" d="M208.47 257.87l.703.67-.703-.67z"/> - <path fill="#294200" d="M209.88 257.87l.703.67-.703-.67m1.407 0l.704.67-.703-.67z"/> - <path fill="#cecece" d="M211.99 257.87l.703.67-.703-.67z"/> - <path fill="#9c9494" d="M214.57 258.09l.47.223-.47-.223z"/> - <path fill="#420000" d="M248.57 257.87l.703.67-.703-.67z"/> - <path fill="#101810" d="M249.98 257.87l.704.67-.704-.67z"/> - <path fill="#8c8c8c" d="M251.39 257.87l.703.67-.703-.67z"/> - <path fill="#7b7373" d="M252.09 257.87l.703.67-.703-.67z"/> - <path fill="#dedede" d="M252.79 257.87l.704.67-.704-.67z"/> - <path fill="#7b7373" d="M257.72 257.87l.703.67-.703-.67z"/> - <path fill="#cecece" d="M258.42 257.87l.704.67-.704-.67z"/> - <path fill="#8c8c8c" d="M262.64 257.87l.703.67-.703-.67z"/> - <path fill="#ce2110" d="M264.05 257.87l.703.67-.703-.67z"/> - <path fill="#cecece" d="M291.49 257.87l.704.67-.704-.67z"/> - <path fill="#184a00" d="M292.89 257.87l-.703 1.34.703-1.34z"/> - <path fill="#dedede" d="M293.6 257.87l.703.67-.703-.67z"/> - <path fill="#184a00" d="M294.53 258.32l.235.446-.235-.446z"/> - <path fill="#185200" d="M296.41 257.87l.703.67-.703-.67m2.11 0l.704.67-.703-.67z"/> - <path fill="#297b00" d="M299.22 257.87l.704.67-.704-.67z"/> - <path fill="#296300" d="M301.33 257.87l.703.67-.703-.67z"/> - <path fill="#185200" d="M304.85 257.87l.703.67-.703-.67z"/> - <path fill="#296300" d="M305.56 257.87l.704.67-.704-.67z"/> - <path fill="#184a00" d="M306.26 257.87l.703.67-.703-.67z"/> - <path fill="#103900" d="M307.67 257.87l.703.67-.703-.67z"/> - <path fill="#185200" d="M311.18 257.87l.704.67-.704-.67z"/> - <path fill="#297b00" d="M313.29 257.87l.703.67-.703-.67z"/> - <path fill="#7b7373" d="M314 257.87l.704.67-.704-.67z"/> - <path fill="#8c8c8c" d="M320.33 257.87l.703.67-.703-.67z"/> - <path fill="#424242" d="M321.03 257.87l.703.67-.703-.67z"/> - <path fill="#7b7373" d="M197.22 258.54l.703.67-.703-.67z"/> - <path fill="#294200" d="M200.73 258.54l1.407 1.34-1.407-1.34z"/> - <path fill="#397b00" d="M201.44 258.54l.703.67-.703-.67z"/> - <path fill="#315221" d="M204.25 258.54l.703.67-.703-.67z"/> - <path fill="#efefef" d="M205.42 258.76l.47.224-.47-.224z"/> - <path fill="#214210" d="M206.36 258.54l.703.67-.703-.67z"/> - <path fill="#103900" d="M207.77 258.54l.704.67-.704-.67z"/> - <path fill="#295200" d="M209.18 258.54l.703.67-.703-.67z"/> - <path fill="#397b00" d="M209.88 258.54l.703.67-.703-.67z"/> - <path fill="#7b7373" d="M211.29 258.54l.704.67-.704-.67z"/> - <path fill="#315221" d="M214.1 258.54l.704.67-.704-.67z"/> - <path fill="#7b7373" d="M214.8 258.54l.703.67-.703-.67z"/> - <path fill="#00216b" d="M228.17 258.54l.703.67-.703-.67z"/> - <path fill="#941808" d="M248.57 258.54l.703.67-.703-.67z"/> - <path fill="#ada5a5" d="M250.68 258.54l.703.67-.703-.67z"/> - <path fill="#9c9494" d="M253.5 258.54l.704.67-.704-.67z"/> - <path fill="#cecece" d="M256.31 258.54l.703.67-.703-.67z"/> - <path fill="#ada5a5" d="M257.01 258.54l.704.67-.704-.67m2.11 0l.704.67-.704-.67z"/> - <path fill="#52525a" d="M259.83 258.54l.704.67-.704-.67z"/> - <path fill="#313931" d="M260.53 258.54l.704.67-.704-.67z"/> - <path fill="#941808" d="M264.05 258.54l.703.67-.703-.67z"/> - <path fill="#319400" d="M292.89 258.54l4.925 16.065h.703c-.05-5.603-1.818-11.69-5.628-16.065z"/> - <path fill="#425242" d="M293.6 258.54l.703.67-.703-.67z"/> - <path fill="#103900" d="M296.41 258.54l.703.67-.703-.67z"/> - <path fill="#184a00" d="M299.22 258.54l.704.67-.704-.67z"/> - <path fill="#103900" d="M301.57 258.99l.235.446-.235-.446m3.283-.446l.704.67-.704-.67z"/> - <path fill="#319400" d="M305.56 258.54l.704.67-.704-.67z"/> - <path fill="#103900" d="M306.26 258.54l.703.67-.703-.67z"/> - <path fill="#184a00" d="M307.67 258.54l.703.67-.703-.67z"/> - <path fill="#103900" d="M310.48 258.54l.703.67-.703-.67z"/> - <path fill="#103910" d="M313.29 258.54l.703.67-.703-.67z"/> - <path fill="#efefef" d="M314 258.54l.704.67-.704-.67z"/> - <path fill="#8c8c8c" d="M315.4 258.54l.703.67-.703-.67z"/> - <path fill="#ada5a5" d="M316.11 258.54l.703.67-.703-.67z"/> - <path fill="#bdbdbd" d="M318.92 258.54l.703.67-.703-.67z"/> - <path fill="#314231" d="M319.63 258.54l-1.407 2.678 1.407-2.678z"/> - <path fill="#313931" d="M320.33 258.54l.703.67-.703-.67z"/> - <path fill="#efefef" d="M197.22 259.21l2.11 2.008-2.11-2.008z"/> - <path fill="#314231" d="M197.92 259.21l.703.67-.703-.67z"/> - <path fill="#397b00" d="M202.14 259.21l.704.67-.704-.67z"/> - <path fill="#63636b" d="M204.96 259.21l.704.67-.704-.67z"/> - <path fill="#8c8c8c" d="M205.66 259.21l.703.67-.703-.67z"/> - <path fill="#397b00" d="M207.07 259.21l.703.67-.703-.67z"/> - <path fill="#295200" d="M207.77 259.21l.704.67-.704-.67z"/> - <path fill="#294200" d="M209.18 259.21l.703.67-.703-.67z"/> - <path fill="#295200" d="M210.58 259.21l.704.67-.704-.67z"/> - <path fill="#cecece" d="M211.29 259.21l.704.67-.704-.67z"/> - <path fill="#63636b" d="M213.4 259.21l.704.67-.704-.67z"/> - <path fill="#5a5231" d="M214.8 259.21l.703.67-.703-.67z"/> - <path fill="#101829" d="M228.17 259.21l.703.67-.703-.67z"/> - <path fill="#ce2110" d="M248.57 259.21l.703.67-.703-.67z"/> - <path fill="#63636b" d="M250.68 259.21l.703.67-.703-.67z"/> - <path fill="#efefef" d="M251.62 259.66l.235.446-.235-.446z"/> - <path fill="#9c9494" d="M252.09 259.21l.703.67-.703-.67z"/> - <path fill="#7b7373" d="M252.79 259.21l.704.67-.704-.67z"/> - <path fill="#bdbdbd" d="M253.5 259.21l.704.67-.704-.67z"/> - <path fill="#7b7373" d="M257.01 259.21l.704.67-.704-.67z"/> - <path fill="#cecece" d="M257.72 259.21l.703.67-.703-.67z"/> - <path fill="#313931" d="M258.42 259.21l.704.67-.704-.67z"/> - <path fill="#210800" d="M263.35 259.21l.704.67-.704-.67z"/> - <path fill="#7b1008" d="M264.05 259.21l.703.67-.703-.67z"/> - <path fill="#10214a" d="M279.53 259.21l.703.67-.703-.67z"/> - <path fill="#4a6342" d="M292.42 259.66l.235.446-.235-.446z"/> - <path fill="#296300" d="M293.6 259.21l.703.67-.703-.67z"/> - <path fill="#103900" d="M294.53 259.66l.235.446-.235-.446z"/> - <path fill="#296300" d="M296.88 259.43l.47.224-.47-.224z"/> - <path fill="#103900" d="M299.22 259.21l.704.67-.704-.67z"/> - <path fill="#185200" d="M305.32 259.43l.47.224-.47-.224m1.64-.223l.705.67-.704-.67z"/> - <path fill="#103900" d="M309.78 259.21l.703.67-.703-.67z"/> - <path fill="#296300" d="M312.59 259.21l.703.67-.703-.67z"/> - <path fill="#9c9494" d="M313.29 259.21l.703.67-.703-.67z"/> - <path fill="#dedede" d="M314 259.21l.704.67-.704-.67z"/> - <path fill="#425242" d="M314.7 259.21l.703.67-.703-.67z"/> - <path fill="#313931" d="M315.4 259.21l.703.67-.703-.67z"/> - <path fill="#efefef" d="M316.11 259.21l.703.67-.703-.67m1.407 0l.703.67-.703-.67z"/> - <path fill="#63636b" d="M318.22 259.21l.703.67-.703-.67z"/> - <path fill="#185200" d="M318.92 259.21l.703.67-.703-.67z"/> - <path fill="#ada5a5" d="M189.48 259.88l.703.67-.703-.67z"/> - <path fill="#efefef" d="M190.18 259.88l.703.67-.703-.67z"/> - <path fill="#314231" d="M198.62 259.88l.703.67-.703-.67z"/> - <path fill="#397b00" d="M199.33 259.88l1.407 1.34-1.407-1.34m4.22 0l.704.67-.703-.67m1.408 0l.704.67-.704-.67z"/> - <path fill="#214210" d="M205.66 259.88l.703.67-.703-.67z"/> - <path fill="#295200" d="M206.36 259.88l.703.67-.703-.67z"/> - <path fill="#292100" d="M207.07 259.88l.703.67-.703-.67z"/> - <path fill="#397b00" d="M208.47 259.88v1.34h1.407l-1.407-1.34z"/> - <path fill="#295200" d="M209.18 259.88l.703.67-.703-.67z"/> - <path fill="#5a5231" d="M210.58 259.88l.704.67-.704-.67z"/> - <path fill="#9c9494" d="M212.69 259.88l.703.67-.703-.67z"/> - <path fill="#294200" d="M214.8 259.88l.703.67-.703-.67z"/> - <path fill="#efefef" d="M215.51 259.88l.703.67-.703-.67z"/> - <path fill="#ada5a5" d="M228.17 259.88l.703.67-.703-.67z"/> - <path fill="#7b7373" d="M228.87 259.88l.703.67-.703-.67z"/> - <path fill="#10214a" d="M229.58 259.88l.703.67-.703-.67z"/> - <path fill="#420000" d="M249.28 259.88l.703.67-.703-.67z"/> - <path fill="#101810" d="M250.68 259.88l.703.67-.703-.67z"/> - <path fill="#dedede" d="M252.09 259.88l.703.67-.703-.67m2.11 0l.704.67-.704-.67z"/> - <path fill="#ada5a5" d="M254.9 259.88l.703.67-.703-.67z"/> - <path fill="#8c8c8c" d="M256.08 260.1l.47.224-.47-.224z"/> - <path fill="#313931" d="M257.01 259.88l.704.67-.704-.67z"/> - <path fill="#101810" d="M257.72 259.88l.703.67-.703-.67z"/> - <path fill="#310000" d="M261.24 259.88l.703.67-.703-.67z"/> - <path fill="#941808" d="M261.94 259.88l.703.67-.703-.67z"/> - <path fill="#00184a" d="M278.12 259.88l.703.67-.703-.67z"/> - <path fill="#636b7b" d="M278.82 259.88l.703.67-.703-.67z"/> - <path fill="#efefef" d="M279.53 259.88l.703.67-.703-.67z"/> - <path fill="#297b00" d="M295 259.88l-.704 1.34.704-1.34z"/> - <path fill="#184a00" d="M297.11 259.88l.704.67-.704-.67z"/> - <path fill="#185200" d="M299.22 259.88l1.407 1.34-1.407-1.34z"/> - <path fill="#297b00" d="M299.93 259.88l.704.67-.704-.67z"/> - <path fill="#296300" d="M301.33 259.88l.703.67-.703-.67z"/> - <path fill="#297b00" d="M302.04 259.88l-.703 1.34.703-1.34z"/> - <path fill="#184a00" d="M304.38 260.32l.235.446-.235-.446z"/> - <path fill="#103900" d="M305.56 259.88l.704.67-.704-.67z"/> - <path fill="#319400" d="M306.26 259.88l.703.67-.703-.67z"/> - <path fill="#103900" d="M306.96 259.88l.703.67-.703-.67z"/> - <path fill="#296300" d="M309.54 260.1l.47.224-.47-.224z"/> - <path fill="#425242" d="M312.59 259.88l.703.67-.703-.67z"/> - <path fill="#8c8c8c" d="M313.29 259.88l.703.67-.703-.67z"/> - <path fill="#184a00" d="M314.47 260.1l.47.224-.47-.224z"/> - <path fill="#cecece" d="M315.4 259.88l.703.67-.703-.67z"/> - <path fill="#8c8c8c" d="M316.81 259.88l.704.67-.704-.67z"/> - <path fill="#214210" d="M317.52 259.88l.703.67-.703-.67z"/> - <path fill="#297b00" d="M318.22 259.88l.703.67-.703-.67z"/> - <path fill="#8c9c84" d="M189.48 260.55l.703.67-.703-.67z"/> - <path fill="#7b7373" d="M190.18 260.55l.703.67-.703-.67z"/> - <path fill="#63636b" d="M199.33 260.55l.704.67-.704-.67z"/> - <path fill="#001000" d="M203.55 260.55l.703.67-.703-.67z"/> - <path fill="#295200" d="M204.25 260.55l.703.67-.703-.67z"/> - <path fill="#292100" d="M205.66 260.55l.703.67-.703-.67z"/> - <path fill="#ad1810" d="M206.83 260.77l.47.224-.47-.224z"/> - <path fill="#311000" d="M207.77 260.55l.704.67-.704-.67z"/> - <path fill="#8c8c8c" d="M210.58 260.55l.704.67-.704-.67z"/> - <path fill="#bdbdbd" d="M211.99 260.55l.703.67-.703-.67z"/> - <path fill="#295200" d="M212.69 260.55l.703.67-.703-.67z"/> - <path fill="#428c00" d="M209.72 267.39h-.703c-.13-3.835-1.626-6.29-5.628-7.363.097 2.042 1.564 10.015 4.923 7.363h.704l-1.407 6.024c2.1-2.215 10.778-10.023 7.017-13.46-3.22-2.943-4.87 5.967-4.907 7.436z"/> - <path fill="#295200" d="M214.1 260.55l.704.67-.704-.67z"/> - <path fill="#bdbdbd" d="M215.51 260.55l.703.67-.703-.67z"/> - <path fill="#efefef" d="M229.58 260.55l.703.67-.703-.67z"/> - <path fill="#9c9494" d="M230.28 260.55l.704.67-.704-.67z"/> - <path fill="#31425a" d="M230.99 260.55l.703.67-.703-.67z"/> - <path fill="#00216b" d="M231.69 260.55l.703.67-.703-.67z"/> - <path fill="#941808" d="M249.28 260.55l.703.67-.703-.67z"/> - <path fill="#9c9494" d="M251.39 260.55l.703.67-.703-.67z"/> - <path fill="#efefef" d="M252.79 260.55l.704.67-.704-.67z"/> - <path fill="#63636b" d="M253.5 260.55l.704.67-.704-.67z"/> - <path fill="#310000" d="M259.83 260.55l.704.67-.704-.67z"/> - <path fill="#ad1810" d="M260.53 260.55l.704.67-.704-.67z"/> - <path fill="#00216b" d="M276.01 260.55l.703.67-.703-.67z"/> - <path fill="#21315a" d="M276.71 260.55l.703.67-.703-.67z"/> - <path fill="#8c8c8c" d="M277.42 260.55l.704.67-.704-.67z"/> - <path fill="#efefef" d="M278.12 260.55l.703.67-.703-.67m11.96 0l.702.67-.703-.67z"/> - <path fill="#8c8c8c" d="M290.78 260.55l.703.67-.703-.67z"/> - <path fill="#cecece" d="M291.49 260.55l.704.67-.704-.67z"/> - <path fill="#8c8c8c" d="M292.19 260.55l.703.67-.703-.67z"/> - <path fill="#184a00" d="M295 260.55l.703.67-.703-.67z"/> - <path fill="#103900" d="M297.11 260.55l.704.67-.704-.67z"/> - <path fill="#297b00" d="M297.82 260.55l-.704 1.34.704-1.34m1.407 0l.704.67-.703-.67z"/> - <path fill="#185200" d="M305.56 260.55l.704.67-.704-.67z"/> - <path fill="#103900" d="M309.07 260.55l.703.67-.703-.67z"/> - <path fill="#185200" d="M311.89 260.55l.703.67-.703-.67z"/> - <path fill="#102110" d="M312.59 260.55l.703.67-.703-.67z"/> - <path fill="#296300" d="M313.76 260.77l.47.224-.47-.224z"/> - <path fill="#8c8c8c" d="M314.7 260.55l.703.67-.703-.67z"/> - <path fill="#dedede" d="M315.4 260.55l.703.67-.703-.67z"/> - <path fill="#425242" d="M316.11 260.55l.703.67-.703-.67z"/> - <path fill="#297b00" d="M316.81 260.55l-2.11 3.347 3.517-3.347h-1.407z"/> - <path fill="#295200" d="M190.18 261.22l.703.67-.703-.67z"/> - <path fill="#8c8c8c" d="M190.89 261.22l.704.67-.704-.67z"/> - <path fill="#dedede" d="M199.33 261.22l.704.67-.704-.67z"/> - <path fill="#7b7373" d="M200.03 261.22l.703.67-.703-.67z"/> - <path fill="#295200" d="M200.73 261.22l.703.67-.703-.67z"/> - <path fill="#397b00" d="M202.85 261.22v.67h2.11l-2.11-.67z"/> - <path fill="#294200" d="M204.96 261.22l.704.67-.704-.67z"/> - <path fill="#103900" d="M205.66 261.22l.703.67-.703-.67z"/> - <path fill="#941808" d="M208 261.66l.235.446-.235-.446z"/> - <path fill="#292100" d="M208.47 261.22l.703.67-.703-.67z"/> - <path fill="#295200" d="M209.88 261.22l.703.67-.703-.67z"/> - <path fill="#bdbdbd" d="M210.58 261.22l.704.67-.704-.67z"/> - <path fill="#cecece" d="M211.29 261.22l.704.67-.704-.67z"/> - <path fill="#214210" d="M211.99 261.22l.703.67-.703-.67z"/> - <path fill="#294200" d="M213.63 261.66l.235.446-.235-.446z"/> - <path fill="#8c8c8c" d="M215.74 261.66l.235.446-.235-.446z"/> - <path fill="#dedede" d="M231.69 261.22l.703.67-.703-.67z"/> - <path fill="#9c9494" d="M232.39 261.22l.703.67-.703-.67z"/> - <path fill="#636b7b" d="M233.1 261.22l.704.67-.704-.67z"/> - <path fill="#21315a" d="M233.8 261.22l.703.67-.703-.67z"/> - <path fill="#00216b" d="M234.5 261.22l.703.67-.703-.67z"/> - <path fill="#002984" d="M235.21 261.22l.703.67-.703-.67z"/> - <path fill="#ce2110" d="M249.28 261.22l.703.67-.703-.67z"/> - <path fill="#424242" d="M251.39 261.22l.703.67-.703-.67z"/> - <path fill="#7b7373" d="M252.09 261.22l.703.67-.703-.67z"/> - <path fill="#101810" d="M252.79 261.22l.704.67-.704-.67z"/> - <path fill="#100808" d="M257.72 261.22l.703.67-.703-.67z"/> - <path fill="#310000" d="M258.42 261.22l.704.67-.704-.67z"/> - <path fill="#210800" d="M259.12 261.22l.703.67-.703-.67z"/> - <path fill="#002984" d="M272.49 261.22l.703.67-.703-.67z"/> - <path fill="#00216b" d="M273.19 261.22l.703.67-.703-.67z"/> - <path fill="#10295a" d="M273.9 261.22l.703.67-.703-.67z"/> - <path fill="#525a6b" d="M274.6 261.22l.704.67-.704-.67z"/> - <path fill="#8c8c8c" d="M275.31 261.22l.703.67-.703-.67z"/> - <path fill="#cecece" d="M276.01 261.22l.703.67-.703-.67z"/> - <path fill="#63636b" d="M290.08 261.22l.703.67-.703-.67z"/> - <path fill="#297b00" d="M290.78 261.22l1.407 1.34-1.407-1.34z"/> - <path fill="#103910" d="M291.49 261.22l.704.67-.704-.67z"/> - <path fill="#7b7373" d="M292.19 261.22l.703.67-.703-.67z"/> - <path fill="#103900" d="M295 261.22l.703.67-.703-.67z"/> - <path fill="#297b00" d="M295.71 261.22l-.703 1.34.703-1.34z"/> - <path fill="#185200" d="M297.82 261.22l.703.67-.703-.67z"/> - <path fill="#103900" d="M299.93 261.22l.704.67-.704-.67z"/> - <path fill="#184a00" d="M304.85 261.22l.703.67-.703-.67z"/> - <path fill="#103900" d="M308.37 261.22l.704.67-.704-.67z"/> - <path fill="#297b00" d="M311.18 261.22v.67h2.814v-.67h-2.814z"/> - <path fill="#425242" d="M314 261.22l.704.67-.704-.67z"/> - <path fill="#ada5a5" d="M314.7 261.22l.703.67-.703-.67z"/> - <path fill="#214210" d="M315.4 261.22l.703.67-.703-.67z"/> - <path fill="#52525a" d="M317.52 261.22l.703.67-.703-.67z"/> - <path fill="#428c00" d="M190.18 261.89l.703.67-.703-.67z"/> - <path fill="#397b00" d="M191.12 262.33l.235.446-.235-.446z"/> - <path fill="#314231" d="M191.59 261.89l.703.67-.703-.67z"/> - <path fill="#bdbdbd" d="M192.29 261.89l.703.67-.703-.67z"/> - <path fill="#dedede" d="M195.11 261.89l.703.67-.703-.67z"/> - <path fill="#efefef" d="M198.62 261.89l.703.67-.703-.67z"/> - <path fill="#101810" d="M199.33 261.89l.704.67-.704-.67z"/> - <path fill="#bdbdbd" d="M200.73 261.89l.703.67-.703-.67z"/> - <path fill="#315221" d="M201.44 261.89l.703.67-.703-.67z"/> - <path fill="#295200" d="M202.85 261.89l.703.67-.703-.67z"/> - <path fill="#292100" d="M205.66 261.89l.703.67-.703-.67z"/> - <path fill="#941808" d="M206.36 261.89l.703.67-.703-.67z"/> - <path fill="#103900" d="M208.47 261.89l.703.67-.703-.67z"/> - <path fill="#5a2908" d="M209.18 261.89l-.703 1.34.703-1.34z"/> - <path fill="#7b1008" d="M209.88 261.89l.703.67-.703-.67z"/> - <path fill="#5a3131" d="M210.58 261.89l.704.67-.704-.67z"/> - <path fill="#314231" d="M211.29 261.89l.704.67-.704-.67z"/> - <path fill="#cecece" d="M219.73 261.89l.703.67-.703-.67z"/> - <path fill="#52525a" d="M220.43 261.89l.704.67-.704-.67z"/> - <path fill="#dedede" d="M221.14 261.89l.703.67-.703-.67m13.366 0l.703.67-.704-.67z"/> - <path fill="#bdbdbd" d="M235.21 261.89l.703.67-.703-.67z"/> - <path fill="#9c9494" d="M235.91 261.89l.704.67-.704-.67z"/> - <path fill="#bdbdbd" d="M236.61 261.89l.703.67-.703-.67z"/> - <path fill="#420000" d="M249.98 261.89l.704.67-.704-.67z"/> - <path fill="#100808" d="M256.31 261.89l.703.67-.703-.67z"/> - <path fill="#7b0008" d="M257.01 261.89l.704.67-.704-.67z"/> - <path fill="#de2110" d="M254.2 262.56v.67h2.11c-5.4 8.378-1.462 19.627-.703 28.783h.704c1.97-8.2 2.16-19.985 0-28.114l2.814 1.338.704-2.677-.703-.67-4.925.67z"/> - <path fill="#940008" d="M259.12 261.89l.703.67-.703-.67z"/> - <path fill="#ad1810" d="M259.83 261.89l.704.67-.704-.67z"/> - <path fill="#bdbdbd" d="M271.08 261.89l.703.67-.703-.67z"/> - <path fill="#9c9494" d="M271.79 261.89l.704.67-.704-.67z"/> - <path fill="#bdbdbd" d="M272.49 261.89l.703.67-.703-.67z"/> - <path fill="#dedede" d="M273.19 261.89l.703.67-.703-.67z"/> - <path fill="#cecece" d="M289.38 261.89l.704.67-.704-.67z"/> - <path fill="#185200" d="M290.08 261.89l.703.67-.703-.67z"/> - <path fill="#313931" d="M292.19 261.89l.703.67-.703-.67z"/> - <path fill="#297b00" d="M292.89 261.89l.704.67-.704-.67z"/> - <path fill="#184a00" d="M295.71 261.89l.704.67-.704-.67z"/> - <path fill="#103900" d="M297.82 261.89l.703.67-.703-.67z"/> - <path fill="#184a00" d="M299.93 261.89l.704.67-.704-.67z"/> - <path fill="#297b00" d="M300.63 261.89l-.704 1.34.704-1.34z"/> - <path fill="#103900" d="M304.85 261.89l.703.67-.703-.67z"/> - <path fill="#185200" d="M307.67 261.89l.703.67-.703-.67z"/> - <path fill="#184a00" d="M311.18 261.89l.704.67-.704-.67z"/> - <path fill="#319400" d="M312.59 261.89l-.703 1.34.703-1.34z"/> - <path fill="#082108" d="M313.53 262.33l.235.446-.235-.446z"/> - <path fill="#52525a" d="M314 261.89l.704.67-.704-.67z"/> - <path fill="#296300" d="M314.7 261.89l.703.67-.703-.67z"/> - <path fill="#63636b" d="M316.81 261.89l-2.11 2.678 2.11-2.678z"/> - <path fill="#295200" d="M190.18 262.56l.703.67-.703-.67z"/> - <path fill="#428c00" d="M191.59 262.56l1.407 4.016h.703l.704-2.677-2.814-1.34z"/> - <path fill="#295200" d="M192.29 262.56l.703.67-.703-.67z"/> - <path fill="#63636b" d="M193 262.56l.703.67-.703-.67z"/> - <path fill="#efefef" d="M193.7 262.56l.704.67-.704-.67z"/> - <path fill="#101810" d="M195.11 262.56l.703.67-.703-.67z"/> - <path fill="#efefef" d="M195.81 262.56l.703.67-.703-.67z"/> - <path fill="#425242" d="M198.62 262.56l.703.67-.703-.67z"/> - <path fill="#294200" d="M199.33 262.56l.704.67-.704-.67z"/> - <path fill="#8c8c8c" d="M202.14 262.56l.704.67-.704-.67z"/> - <path fill="#001000" d="M202.85 262.56l.703.67-.703-.67z"/> - <path fill="#294200" d="M206.36 262.56l.703.67-.703-.67z"/> - <path fill="#4a1000" d="M207.07 262.56l.703.67-.703-.67z"/> - <path fill="#294200" d="M207.77 262.56l.704.67-.704-.67z"/> - <path fill="#631808" d="M210.58 262.56l.704.67-.704-.67z"/> - <path fill="#397b00" d="M213.16 262.78l.47.224-.47-.224z"/> - <path fill="#6b735a" d="M215.51 262.56l.703.67-.703-.67z"/> - <path fill="#efefef" d="M216.92 262.56l.703.67-.703-.67z"/> - <path fill="#8c8c8c" d="M217.62 262.56l.704.67-.704-.67z"/> - <path fill="#526b42" d="M218.32 262.56l.703.67-.703-.67z"/> - <path fill="#396b10" d="M219.03 262.56l.704.67-.704-.67z"/> - <path fill="#295200" d="M219.73 262.56l.703.67-.703-.67z"/> - <path fill="#213918" d="M220.43 262.56l.704.67-.704-.67z"/> - <path fill="#efefef" d="M221.14 262.56l.703.67-.703-.67z"/> - <path fill="#941808" d="M249.98 262.56l.704.67-.704-.67z"/> - <path fill="#520808" d="M252.79 262.56l-.703 1.34.703-1.34z"/> - <path fill="#ad0008" d="M253.5 262.56l.704.67-.704-.67z"/> - <path fill="#520808" d="M259.83 262.56l.704.67-.704-.67z"/> - <path fill="#7b7373" d="M289.38 262.56l.704.67-.704-.67z"/> - <path fill="#297b00" d="M290.08 262.56l.703.67-.703-.67z"/> - <path fill="#184a00" d="M292.19 262.56l.703.67-.703-.67z"/> - <path fill="#296300" d="M292.89 262.56l.704.67-.704-.67z"/> - <path fill="#103900" d="M295.71 262.56l.704.67-.704-.67z"/> - <path fill="#297b00" d="M296.41 262.56l-.704 1.34.704-1.34z"/> - <path fill="#185200" d="M297.82 262.56l1.407 1.34-1.407-1.34z"/> - <path fill="#297b00" d="M298.52 262.56l.703.67-.703-.67z"/> - <path fill="#185200" d="M300.63 262.56l.703.67-.703-.67m1.407 0l.704.67-.703-.67z"/> - <path fill="#297b00" d="M302.74 262.56l.704.67-.704-.67m1.407 0l1.407 1.34-1.407-1.34z"/> - <path fill="#185200" d="M304.85 262.56l.703.67-.703-.67z"/> - <path fill="#297b00" d="M306.96 262.56l.703.67-.703-.67z"/> - <path fill="#184a00" d="M307.67 262.56l.703.67-.703-.67z"/> - <path fill="#297b00" d="M310.48 262.56l1.407 1.34-1.407-1.34zm3.52 0l.704.67-.704-.67z"/> - <path fill="#dedede" d="M317.52 262.56l.703.67-.703-.67z"/> - <path fill="#5a6b52" d="M318.22 262.56l.703.67-.703-.67z"/> - <path fill="#425242" d="M318.92 262.56l.703.67-.703-.67z"/> - <path fill="#ada5a5" d="M319.63 262.56l.704.67-.704-.67z"/> - <path fill="#8c9c84" d="M189.48 263.23l.703.67-.703-.67z"/> - <path fill="#428c00" d="M190.18 263.23l2.11 3.347-2.11-3.347z"/> - <path fill="#103900" d="M190.89 263.23l.704.67-.704-.67z"/> - <path fill="#314231" d="M193.7 263.23l.704.67-.704-.67z"/> - <path fill="#bdbdbd" d="M194.4 263.23l.703.67-.703-.67z"/> - <path fill="#295200" d="M195.11 263.23l.703.67-.703-.67z"/> - <path fill="#314231" d="M195.81 263.23l.703.67-.703-.67z"/> - <path fill="#ada5a5" d="M197.92 263.23l.703.67-.703-.67z"/> - <path fill="#397b00" d="M199.09 263.45l.47.224-.47-.224z"/> - <path fill="#dedede" d="M200.03 263.23l.703.67-.703-.67z"/> - <path fill="#7b8c73" d="M202.85 263.23l.703.67-.703-.67z"/> - <path fill="#295200" d="M207.07 263.23l1.407 1.34v-1.34h-1.407z"/> - <path fill="#4a1000" d="M208.47 263.23l.703.67-.703-.67z"/> - <path fill="#bd2110" d="M209.88 263.23l.703.67-.703-.67z"/> - <path fill="#526b42" d="M215.51 263.23l.703.67-.703-.67z"/> - <path fill="#9c9494" d="M216.21 263.23l.704.67-.704-.67z"/> - <path fill="#214210" d="M216.92 263.23l.703.67-.703-.67z"/> - <path fill="#428c00" d="M214.8 268.58l1.407-.67v.67l-4.924 4.016c4.37-1.655 6.58-3.93 8.44-8.032l-2.11 1.338 1.408-2.677-4.22 5.355z"/> - <path fill="#294200" d="M219.03 263.23l-.703 1.34.703-1.34z"/> - <path fill="#397b00" d="M219.73 263.23l-.704 1.34.704-1.34z"/> - <path fill="#424242" d="M220.43 263.23l.704.67-.704-.67z"/> - <path fill="#9c9494" d="M242.24 263.23l.703.67-.703-.67z"/> - <path fill="#845a52" d="M242.94 263.23l.703.67-.703-.67z"/> - <path fill="#734a42" d="M243.65 263.23l.703.67-.703-.67z"/> - <path fill="#842118" d="M244.35 263.23l.704.67-.704-.67z"/> - <path fill="#7b1008" d="M245.06 263.23l.703.67-.703-.67z"/> - <path fill="#b51010" d="M245.76 263.23l.703.67-.703-.67z"/> - <path fill="#ce2110" d="M249.98 263.23l.704.67-.704-.67z"/> - <path fill="#310000" d="M251.39 263.23l.703.67-.703-.67z"/> - <path fill="#310010" d="M252.79 263.23l.704.67-.704-.67z"/> - <path fill="#180821" d="M253.5 263.23l.704.67-.704-.67z"/> - <path fill="#310010" d="M254.2 263.23l.703.67-.703-.67z"/> - <path fill="#7b1008" d="M254.9 263.23l.703.67-.703-.67z"/> - <path fill="#b51010" d="M255.61 263.23l.704.67-.704-.67z"/> - <path fill="#7b1008" d="M259.83 263.23l.704.67-.704-.67z"/> - <path fill="#bd2110" d="M261.94 263.23l.703.67-.703-.67z"/> - <path fill="#7b1008" d="M262.64 263.23l.703.67-.703-.67z"/> - <path fill="#631808" d="M263.35 263.23l.704.67-.704-.67z"/> - <path fill="#8c4a4a" d="M264.05 263.23l.703.67-.703-.67z"/> - <path fill="#9c9494" d="M265.46 263.23l.703.67-.703-.67z"/> - <path fill="#214210" d="M289.38 263.23l.704.67-.704-.67z"/> - <path fill="#297b00" d="M292.19 263.23l.703.67-.703-.67z"/> - <path fill="#103900" d="M292.89 263.23l.704.67-.704-.67z"/> - <path fill="#185200" d="M296.41 263.23l.703.67-.703-.67z"/> - <path fill="#297b00" d="M297.82 263.23l.703.67-.703-.67z"/> - <path fill="#184a00" d="M300.63 263.23l.703.67-.703-.67z"/> - <path fill="#103900" d="M304.38 263.67l.235.446-.235-.446m2.58-.446l.703.67-.703-.67z"/> - <path fill="#184a00" d="M312.59 263.23l.703.67-.703-.67z"/> - <path fill="#8c8c8c" d="M316.81 263.23l.704.67-.704-.67z"/> - <path fill="#184a00" d="M317.52 263.23l.703.67-.703-.67z"/> - <path fill="#296300" d="M319.63 263.23l.704.67-.704-.67z"/> - <path fill="#63636b" d="M320.33 263.23l1.407 1.34-1.407-1.34z"/> - <path fill="#8c8c8c" d="M189.71 264.34l.234.446-.234-.446z"/> - <path fill="#295200" d="M190.89 263.89l.704.67-.704-.67z"/> - <path fill="#397b00" d="M191.59 263.89l.703.67-.703-.67z"/> - <path fill="#102110" d="M194.4 263.89l.703.67-.703-.67z"/> - <path fill="#397b00" d="M195.11 263.89v.67l2.11.67-2.11-1.34z"/> - <path fill="#63636b" d="M196.51 263.89l.704.67-.704-.67z"/> - <path fill="#7b7373" d="M197.92 263.89l.703.67-.703-.67z"/> - <path fill="#428c00" d="M198.62 263.89v3.347h-.703l-.704-2.008h-.703l.703 6.693h-.703l-.704-7.364h-.703l-.704 5.354h-.704l-3.518-2.677 2.11 4.016h-.703l-2.814-3.347c2.364 7.92 5.74 6.83 11.362 11.28 2.092 1.654 3.414 5.24 4.82 7.464l-2.815-2.01 1.407 2.01-3.517-2.01 4.22 4.018.704-2.008h.705c-1.768 3.205-4.893 3.58-8.442 4.016v-.67l1.407-1.338 3.517.67c-2.53-2.53-5.68-2.957-9.145-2.01l4.22 3.348v.67l-4.22 4.685 8.442-1.338-.704 1.34h.704l4.22-2.01-8.44 4.017v.668c7.115-.874 7.968-3.24 11.958-8.032-.554 2.154-.553 3.365 1.407 4.685l-1.1-7.994 9.54-10.747-3.517 2.676 2.814-4.016c-3.983.784-5.715 3.588-5.628 7.363l-4.222 4.016h-.703c1.5-4.21 5.582-6.61 4.22-11.38-3.67 2.603-4.73 5.793-4.924 10.04l-2.813-13.388.704 2.678h-.703v-1.34h-.703l.703 9.373h-.703c-2.2-5.128-.277-15.42-4.925-18.743z"/> - <path fill="#9c9494" d="M200.03 263.89l.703.67-.703-.67z"/> - <path fill="#8c8c8c" d="M203.08 264.34l.235.446-.235-.446z"/> - <path fill="#397b00" d="M204.96 263.89l1.407 1.34-1.407-1.34z"/> - <path fill="#5a1008" d="M209.18 263.89l.703.67-.703-.67z"/> - <path fill="#311000" d="M209.88 263.89l.703.67-.703-.67z"/> - <path fill="#213918" d="M215.51 263.89l.703.67-.703-.67z"/> - <path fill="#295200" d="M216.21 263.89l.704.67-.704-.67z"/> - <path fill="#315221" d="M219.73 263.89l.703.67-.703-.67z"/> - <path fill="#efefef" d="M245.06 263.89l.703.67-.703-.67z"/> - <path fill="#9c9494" d="M245.76 263.89l.703.67-.703-.67z"/> - <path fill="#736b6b" d="M246.46 263.89l.703.67-.703-.67z"/> - <path fill="#6b2908" d="M247.17 263.89l.704.67-.704-.67z"/> - <path fill="#941808" d="M247.87 263.89l.703.67-.703-.67z"/> - <path fill="#ad1810" d="M250.68 263.89l.703.67-.703-.67z"/> - <path fill="#000818" d="M251.39 263.89l.703.67-.703-.67z"/> - <path fill="#00216b" d="M252.09 263.89l-.703 1.34.703-1.34z"/> - <path fill="#003994" d="M249.98 287.32h.704c-1.136-8.55-.665-15.642 3.517-23.43-8.294 4.046-7.8 16.764-4.22 23.43z"/> - <path fill="#52525a" d="M254.2 263.89l.703.67-.703-.67z"/> - <path fill="#9c2118" d="M254.9 263.89l.703.67-.703-.67z"/> - <path fill="#ce0008" d="M257.72 263.89l.703.67-.703-.67z"/> - <path fill="#bd0008" d="M259.12 263.89l.703.67-.703-.67z"/> - <path fill="#520808" d="M259.83 263.89l.704.67-.704-.67z"/> - <path fill="#5a1008" d="M260.53 263.89l.704.67-.704-.67z"/> - <path fill="#7b5252" d="M261.24 263.89l.703.67-.703-.67z"/> - <path fill="#9c9494" d="M261.94 263.89l.703.67-.703-.67z"/> - <path fill="#dedede" d="M262.64 263.89l.703.67-.703-.67z"/> - <path fill="#efefef" d="M279.53 263.89l.703.67-.703-.67z"/> - <path fill="#9c9494" d="M288.67 263.89l.704.67-.704-.67z"/> - <path fill="#296300" d="M289.38 263.89l.704.67-.704-.67z"/> - <path fill="#314231" d="M290.08 263.89l.703.67-.703-.67z"/> - <path fill="#185200" d="M290.78 263.89l.703.67-.703-.67z"/> - <path fill="#184a00" d="M292.89 263.89l.704.67-.704-.67z"/> - <path fill="#297b00" d="M293.6 263.89l-.704 1.34.704-1.34z"/> - <path fill="#103900" d="M296.41 263.89l.703.67-.703-.67z"/> - <path fill="#184a00" d="M298.75 264.34l.235.446-.235-.446z"/> - <path fill="#185200" d="M300.63 263.89l.703.67-.703-.67z"/> - <path fill="#184a00" d="M306.49 264.34l.235.446-.235-.446z"/> - <path fill="#297b00" d="M306.96 263.89l.703.67-.703-.67m2.814 0l.703.67-.703-.67z"/> - <path fill="#296300" d="M314 263.89l.704.67-.704-.67z"/> - <path fill="#dedede" d="M315.4 263.89l.703.67-.703-.67z"/> - <path fill="#425242" d="M316.11 263.89l.703.67-.703-.67z"/> - <path fill="#297b00" d="M316.81 263.89l.704.67-.704-.67m3.518 0l.703.67-.702-.67z"/> - <path fill="#294200" d="M191.59 264.56l.703.67-.703-.67m2.814 0l.703.67-.703-.67z"/> - <path fill="#295200" d="M196.04 265.01l.235.446-.235-.446z"/> - <path fill="#ada5a5" d="M197.22 264.56l.703.67-.703-.67z"/> - <path fill="#526b42" d="M197.92 264.56l.703.67-.703-.67z"/> - <path fill="#5a6b52" d="M200.03 264.56l.703.67-.703-.67z"/> - <path fill="#294200" d="M204.96 264.56l.704.67-.704-.67m3.518 0l.703.67-.702-.67z"/> - <path fill="#397b00" d="M209.18 264.56l.703.67-.703-.67z"/> - <path fill="#295200" d="M209.88 264.56l.703.67-.703-.67z"/> - <path fill="#294200" d="M215.74 265.01l.235.446-.235-.446z"/> - <path fill="#397b00" d="M217.62 264.56l.704.67-.704-.67z"/> - <path fill="#295200" d="M218.32 264.56l.703.67-.703-.67z"/> - <path fill="#9c9494" d="M219.73 264.56l.703.67-.703-.67z"/> - <path fill="#313931" d="M228.17 264.56l.703.67-.703-.67z"/> - <path fill="#bdbdbd" d="M247.87 264.56l.703.67-.703-.67z"/> - <path fill="#7b7373" d="M248.57 264.56l.703.67-.703-.67z"/> - <path fill="#733939" d="M249.28 264.56l.703.67-.703-.67z"/> - <path fill="#7b1008" d="M249.98 264.56l.704.67-.704-.67z"/> - <path fill="#631808" d="M250.68 264.56l.703.67-.703-.67z"/> - <path fill="#00184a" d="M253.5 264.56l.704.67-.704-.67z"/> - <path fill="#6b5252" d="M254.2 264.56l.703.67-.703-.67z"/> - <path fill="#310000" d="M257.72 264.56l.703.67-.703-.67z"/> - <path fill="#5a1010" d="M259.12 264.56l.703.67-.703-.67z"/> - <path fill="#ada5a5" d="M259.83 264.56l.704.67-.704-.67z"/> - <path fill="#63636b" d="M279.53 264.56l.703.67-.703-.67z"/> - <path fill="#5a6b52" d="M288.67 264.56l.704.67-.704-.67z"/> - <path fill="#214210" d="M289.38 264.56l.704.67-.704-.67z"/> - <path fill="#dedede" d="M290.08 264.56l.703.67-.703-.67z"/> - <path fill="#425242" d="M290.78 264.56l.703.67-.703-.67z"/> - <path fill="#103900" d="M293.6 264.56l.703.67-.703-.67z"/> - <path fill="#185200" d="M296.41 264.56l.703.67-.703-.67z"/> - <path fill="#297b00" d="M297.11 264.56l-.703 1.34.703-1.34z"/> - <path fill="#184a00" d="M300.87 265.01l.235.446-.235-.446z"/> - <path fill="#297b00" d="M303.45 264.56l1.407 1.34-1.407-1.34z"/> - <path fill="#185200" d="M304.15 264.56l.703.67-.703-.67z"/> - <path fill="#297b00" d="M305.56 264.56l1.407 1.34-1.407-1.34z"/> - <path fill="#103900" d="M310.48 264.56l.703.67-.703-.67z"/> - <path fill="#185200" d="M313.29 264.56l-2.814 3.347 2.814-3.347z"/> - <path fill="#7b7373" d="M314 264.56l.704.67-.704-.67z"/> - <path fill="#ada5a5" d="M314.7 264.56l.703.67-.703-.67z"/> - <path fill="#214210" d="M315.4 264.56l.703.67-.703-.67z"/> - <path fill="#297b00" d="M316.11 264.56l.703.67-.703-.67z"/> - <path fill="#184a00" d="M317.52 264.56l.703.67-.703-.67z"/> - <path fill="#5a6b52" d="M318.22 264.56l.703.67-.703-.67z"/> - <path fill="#395231" d="M318.92 264.56l.703.67-.703-.67z"/> - <path fill="#296300" d="M319.63 264.56l.704.67-.704-.67z"/> - <path fill="#297b00" d="M321.27 265.01l.235.446-.235-.446z"/> - <path fill="#8c8c8c" d="M321.74 264.56l.703.67-.703-.67z"/> - <path fill="#bdbdbd" d="M189.71 265.68l.234.446-.234-.446z"/> - <path fill="#397b00" d="M190.18 265.23l.703.67-.703-.67m1.407 0l.703.67-.703-.67z"/> - <path fill="#295200" d="M192.29 265.23l.703.67-.703-.67z"/> - <path fill="#397b00" d="M194.17 265.46l.47.224-.47-.224z"/> - <path fill="#213918" d="M197.22 265.23l.703.67-.703-.67z"/> - <path fill="#5a5231" d="M197.92 265.23l.703.67-.703-.67z"/> - <path fill="#295200" d="M200.03 265.23l.703.67-.703-.67z"/> - <path fill="#efefef" d="M200.73 265.23l.703.67-.703-.67z"/> - <path fill="#ada5a5" d="M202.85 265.23l.703.67-.703-.67z"/> - <path fill="#397b00" d="M203.55 265.23l.703.67-.703-.67z"/> - <path fill="#103900" d="M205.66 265.23l.703.67-.703-.67z"/> - <path fill="#001000" d="M209.18 265.23l.703.67-.703-.67z"/> - <path fill="#295200" d="M212.69 265.23l-.703 1.34.703-1.34z"/> - <path fill="#103900" d="M217.62 265.23l.704.67-.704-.67z"/> - <path fill="#214210" d="M219.03 265.23l.704.67-.704-.67z"/> - <path fill="#efefef" d="M219.73 265.23l.703.67-.703-.67z"/> - <path fill="#b51010" d="M228.17 265.23l.703.67-.703-.67z"/> - <path fill="#733939" d="M228.87 265.23l.703.67-.703-.67z"/> - <path fill="#cecece" d="M229.58 265.23l.703.67-.703-.67m20.4 0l.705.67-.704-.67z"/> - <path fill="#001039" d="M250.68 265.23l.703.67-.703-.67z"/> - <path fill="#002984" d="M252.79 265.23l.704.67-.704-.67z"/> - <path fill="#8c8c8c" d="M253.5 265.23l.704.67-.704-.67z"/> - <path fill="#842118" d="M254.2 265.23l.703.67-.703-.67z"/> - <path d="M257.72 265.23l.703.67-.703-.67z"/> - <path fill="#ad0008" d="M258.42 265.23l.704.67-.704-.67z"/> - <path fill="#8c8c8c" d="M259.12 265.23l.703.67-.703-.67z"/> - <path fill="#debdb5" d="M278.12 265.23l.703.67-.703-.67z"/> - <path fill="#8c4a4a" d="M278.82 265.23l.703.67-.703-.67z"/> - <path fill="#ce1810" d="M279.53 265.23l.703.67-.703-.67z"/> - <path fill="#946b63" d="M280.46 265.68l.235.446-.235-.446z"/> - <path fill="#001000" d="M288.67 265.23l.704.67-.704-.67z"/> - <path fill="#ada5a5" d="M289.38 265.23l.704.67-.704-.67m1.407 0l.703.67-.703-.67z"/> - <path fill="#296300" d="M291.49 265.23l.704.67-.704-.67z"/> - <path fill="#184a00" d="M293.6 265.23l.703.67-.703-.67z"/> - <path fill="#297b00" d="M294.3 265.23l-.703 1.34.703-1.34z"/> - <path fill="#184a00" d="M297.11 265.23l.704.67-.704-.67z"/> - <path fill="#296300" d="M298.52 265.23l.703.67-.703-.67z"/> - <path fill="#297b00" d="M299.22 265.23l-.703 1.34.703-1.34z"/> - <path fill="#103900" d="M303.68 265.68l.235.446-.235-.446m1.876-.446l.704.67-.704-.67z"/> - <path d="M309.78 265.23l.703.67-.703-.67z"/> - <path fill="#297b00" d="M310.48 265.23l.703.67-.703-.67z"/> - <path fill="#8c8c8c" d="M313.29 265.23l.703.67-.703-.67z"/> - <path fill="#63636b" d="M314 265.23l.704.67-.704-.67z"/> - <path fill="#296300" d="M314.7 265.23l.703.67-.703-.67z"/> - <path fill="#103900" d="M316.81 265.23l.704.67-.704-.67z"/> - <path fill="#cecece" d="M317.52 265.23l.703.67-.703-.67z"/> - <path fill="#ada5a5" d="M319.63 265.23l.704.67-.704-.67z"/> - <path fill="#294221" d="M320.33 265.23l.703.67-.703-.67z"/> - <path fill="#184a00" d="M321.74 265.23l.703.67-.703-.67z"/> - <path fill="#cecece" d="M322.44 265.23l.704.67-.704-.67z"/> - <path fill="#ada5a5" d="M186.66 265.9l.703.67-.703-.67z"/> - <path fill="#8c8c8c" d="M187.84 266.13l.47.224-.47-.224z"/> - <path fill="#9c9494" d="M188.78 265.9l.703.67-.703-.67z"/> - <path fill="#294200" d="M190.18 265.9l1.407 1.34-1.407-1.34z"/> - <path fill="#103900" d="M192.29 265.9l.703.67-.703-.67z"/> - <path fill="#294200" d="M193.7 265.9l-.703 2.008.703-2.008m2.11 0v2.008h.704l-.704-2.008z"/> - <path fill="#292100" d="M197.92 265.9l.703.67-.703-.67z"/> - <path fill="#9c9494" d="M200.73 265.9l.703.67-.703-.67z"/> - <path fill="#294200" d="M203.55 265.9l.703.67-.703-.67m2.814 0l.703.67-.703-.67z"/> - <path fill="#103900" d="M209.18 265.9l.703.67-.703-.67z"/> - <path fill="#397b00" d="M212.69 265.9l.703.67-.703-.67m2.58.223l.468.223-.468-.223z"/> - <path fill="#103900" d="M216.92 265.9l.703.67-.703-.67z"/> - <path fill="#7b7373" d="M219.03 265.9l.704.67-.704-.67z"/> - <path fill="#de2110" d="M228.87 265.9v10.71h-.703l-.704-9.372h-6.33v19.412l2.813-1.338 1.407 4.685 3.517-2.008.704 7.362 6.33-2.008c2.962 2.01 4.85 2.025 6.333-1.34h1.407l4.22 4.018-.703-12.718-12.662-.67v-.67l11.96.67v-2.008c-8.865-.198-9.85-5.54-9.85-12.718l-7.738-2.008z"/> - <path fill="#b51010" d="M229.58 265.9l.703.67-.703-.67z"/> - <path fill="#7b5252" d="M230.28 265.9l.704.67-.704-.67z"/> - <path fill="#cecece" d="M230.99 265.9l.703.67-.703-.67z"/> - <path fill="#7b7373" d="M249.98 265.9l.704.67-.704-.67z"/> - <path fill="#002984" d="M250.68 265.9l.703.67-.703-.67z"/> - <path fill="#10214a" d="M252.79 265.9l.704.67-.704-.67z"/> - <path fill="#c6b5b5" d="M253.5 265.9l.704.67-.704-.67z"/> - <path fill="#ce1810" d="M254.2 265.9l.703.67-.703-.67z"/> - <path fill="#6b0808" d="M257.01 265.9l.704.67-.704-.67z"/> - <path fill="#100808" d="M257.72 265.9l.703.67-.703-.67z"/> - <path fill="#5a3131" d="M258.42 265.9l.704.67-.704-.67z"/> - <path fill="#dedede" d="M276.71 265.9l.703.67-.703-.67z"/> - <path fill="#a56363" d="M277.42 265.9l.704.67-.704-.67z"/> - <path fill="#b51010" d="M278.12 265.9l.703.67-.703-.67z"/> - <path fill="#de2110" d="M271.79 267.91c0 6.753-.655 12.3-9.145 12.718 1.878 5.082 10.972 1.852 13.994-.82 4.19-3.706 3.592-8.948 3.592-13.907l-8.442 2.01z"/> - <path fill="#bdbdbd" d="M287.97 265.9l.703.67-.703-.67z"/> - <path fill="#8c8c8c" d="M288.67 265.9l.704.67-.704-.67z"/> - <path fill="#315221" d="M291.49 265.9l.704.67-.704-.67z"/> - <path fill="#103900" d="M294.3 265.9l.704.67-.704-.67m2.814 0l.704.67-.704-.67z"/> - <path fill="#184a00" d="M299.22 265.9l.704.67-.704-.67z"/> - <path fill="#296300" d="M304.85 265.9l.703.67-.703-.67z"/> - <path fill="#185200" d="M305.56 265.9l.704.67-.704-.67z"/> - <path fill="#297b00" d="M304.15 271.93l6.33-6.024c-3.48.84-4.903 3.057-6.33 6.024z"/> - <path fill="#103900" d="M309.07 265.9l.703.67-.703-.67z"/> - <path fill="#7b7373" d="M312.59 265.9l.703.67-.703-.67z"/> - <path fill="#294221" d="M313.29 265.9l.703.67-.703-.67z"/> - <path fill="#297b00" d="M314 265.9l.704.67-.704-.67z"/> - <path fill="#185200" d="M316.11 265.9l.703.67-.703-.67z"/> - <path fill="#9c9494" d="M316.81 265.9l.704.67-.704-.67z"/> - <path fill="#efefef" d="M320.33 265.9l.703.67-.703-.67z"/> - <path fill="#7b7373" d="M321.03 265.9l.703.67-.703-.67z"/> - <path fill="#185200" d="M321.74 265.9l.703.67-.703-.67z"/> - <path fill="#294221" d="M322.44 265.9l.704.67-.704-.67z"/> - <path fill="#efefef" d="M323.14 265.9l.703.67-.703-.67m-136.48.67l.703.67-.703-.67z"/> - <path fill="#293129" d="M187.37 266.57l.703.67-.703-.67z"/> - <path fill="#428c00" d="M188.54 266.8l.47.224-.47-.224z"/> - <path fill="#397b00" d="M189.71 267.02l.234.446-.234-.446z"/> - <path fill="#295200" d="M190.18 266.57l.703.67-.703-.67m1.407 0l.703.67-.703-.67z"/> - <path fill="#397b00" d="M192.29 266.57l.703.67-.703-.67z"/> - <path fill="#294200" d="M197.92 266.57l.703.67-.703-.67z"/> - <path fill="#425242" d="M200.73 266.57l.703.67-.703-.67z"/> - <path fill="#5a6b52" d="M203.55 266.57l.703.67-.703-.67z"/> - <path fill="#295200" d="M206.36 266.57l.703.67-.703-.67z"/> - <path fill="#294200" d="M209.18 266.57v2.008h.703l-.703-2.008m3.048.446l.235.446-.235-.446m2.58-.446l.703.67-.702-.67z"/> - <path fill="#397b00" d="M216.68 266.8l.47.224-.47-.224z"/> - <path fill="#295200" d="M218.32 266.57l.703.67-.703-.67z"/> - <path fill="#dedede" d="M219.03 266.57l.704.67-.704-.67z"/> - <path fill="#52525a" d="M220.43 266.57l.704.67-.704-.67z"/> - <path fill="#5a3131" d="M227.47 266.57l.704.67-.704-.67z"/> - <path fill="#b51010" d="M230.99 266.57l.703.67-.703-.67z"/> - <path fill="#842118" d="M231.69 266.57l.703.67-.703-.67z"/> - <path fill="#8c6363" d="M232.39 266.57l.703.67-.703-.67z"/> - <path fill="#cecece" d="M233.1 266.57l.704.67-.704-.67z"/> - <path fill="#dedede" d="M249.28 266.57l.703.67-.703-.67z"/> - <path fill="#00184a" d="M249.98 266.57l.704.67-.704-.67z"/> - <path fill="#002984" d="M252.09 266.57l.703.67-.703-.67z"/> - <path fill="#8c8c8c" d="M252.79 266.57l.704.67-.704-.67z"/> - <path fill="#8c6363" d="M253.5 266.57l.704.67-.704-.67z"/> - <path fill="#941808" d="M257.01 266.57l.704.67-.704-.67z"/> - <path fill="#4a2129" d="M257.72 266.57l.703.67-.703-.67z"/> - <path fill="#efefef" d="M258.42 266.57l.704.67-.704-.67z"/> - <path fill="#d6a5a5" d="M274.6 266.57l.704.67-.704-.67z"/> - <path fill="#946b63" d="M275.31 266.57l.703.67-.703-.67z"/> - <path fill="#a52921" d="M276.01 266.57l.703.67-.703-.67z"/> - <path fill="#b51010" d="M276.71 266.57l.703.67-.703-.67z"/> - <path fill="#4a2129" d="M280.23 266.57l.704.67-.704-.67z"/> - <path fill="#42425a" d="M280.93 266.57v.67h6.33l-6.33-.67z"/> - <path fill="#212139" d="M287.26 266.57l.703.67-.703-.67z"/> - <path fill="#dedede" d="M290.08 266.57l2.11 1.34v-.67l-2.11-.67z"/> - <path fill="#8c8c8c" d="M291.49 266.57l.704.67-.704-.67z"/> - <path fill="#297b00" d="M292.19 266.57l.703.67-.703-.67z"/> - <path fill="#184a00" d="M294.3 266.57l.704.67-.704-.67z"/> - <path fill="#297b00" d="M295 266.57l-.704 1.34.704-1.34m2.11 0l.704.67-.704-.67z"/> - <path fill="#296300" d="M297.82 266.57l.703.67-.703-.67z"/> - <path fill="#103900" d="M299.22 266.57l.704.67-.704-.67z"/> - <path fill="#297b00" d="M300.63 266.57l.703.67-.703-.67m1.407 0l.704.67-.703-.67z"/> - <path fill="#296300" d="M303.45 266.57l.703.67-.703-.67z"/> - <path fill="#103900" d="M304.85 266.57l.703.67-.703-.67m3.518 0l.703.67-.702-.67z"/> - <path fill="#313931" d="M311.89 266.57l.703.67-.703-.67z"/> - <path fill="#184a00" d="M312.59 266.57l.703.67-.703-.67z"/> - <path fill="#296300" d="M315.4 266.57l.703.67-.703-.67z"/> - <path fill="#8c8c8c" d="M316.11 266.57l.703.67-.703-.67z"/> - <path fill="#bdbdbd" d="M321.74 266.57l.703.67-.703-.67z"/> - <path fill="#424242" d="M322.44 266.57l.704.67-.704-.67z"/> - <path fill="#9c9494" d="M323.14 266.57l.703.67-.703-.67z"/> - <path fill="#cecece" d="M187.37 267.24l.703.67-.703-.67z"/> - <path fill="#294200" d="M188.07 267.24l.704.67-.704-.67z"/> - <path fill="#103900" d="M188.78 267.24l.703.67-.703-.67z"/> - <path fill="#292100" d="M192.29 267.24l.703.67-.703-.67z"/> - <path fill="#295200" d="M193.7 267.24l.704.67-.704-.67m5.16.446l.234.446-.235-.446m1.875-.446l.703.67-.703-.67z"/> - <path fill="#dedede" d="M201.44 267.24l.703.67-.703-.67m2.11 0l.704.67-.704-.67z"/> - <path fill="#294200" d="M204.25 267.24l.703.67-.703-.67m2.814 0l.703.67-.703-.67z"/> - <path fill="#397b00" d="M214.1 267.24l.704.67-.704-.67z"/> - <path fill="#295200" d="M214.8 267.24l.703.67-.703-.67z"/> - <path fill="#294200" d="M216.21 267.24l.704.67-.704-.67z"/> - <path fill="#6b735a" d="M218.32 267.24l.703.67-.703-.67z"/> - <path fill="#ce1810" d="M233.1 267.24l.704.67-.704-.67z"/> - <path fill="#a51008" d="M233.8 267.24l.703.67-.703-.67z"/> - <path fill="#ad1810" d="M234.5 267.24l.703.67-.703-.67z"/> - <path fill="#943131" d="M235.68 267.46l.47.224-.47-.224z"/> - <path fill="#c6b5b5" d="M236.61 267.24l.703.67-.703-.67z"/> - <path fill="#8c8c8c" d="M249.28 267.24l.703.67-.703-.67z"/> - <path fill="#001039" d="M252.09 267.24l.703.67-.703-.67z"/> - <path fill="#efefef" d="M252.79 267.24l.704.67-.704-.67z"/> - <path fill="#943131" d="M253.5 267.24l.704.67-.704-.67z"/> - <path fill="#ce1810" d="M256.31 267.24l1.407 6.024-1.407-6.024z"/> - <path fill="#6b0808" d="M257.01 267.24l1.407 1.34-1.407-1.34z"/> - <path fill="#733939" d="M257.72 267.24l.703.67-.703-.67z"/> - <path fill="#c69c94" d="M271.08 267.24l.703.67-.703-.67z"/> - <path fill="#ad3931" d="M272.26 267.46l.47.224-.47-.224z"/> - <path fill="#bd2110" d="M273.19 267.24l.703.67-.703-.67z"/> - <path fill="#b51010" d="M273.9 267.24l.703.67-.703-.67z"/> - <path fill="#ce1810" d="M274.6 267.24l.704.67-.704-.67z"/> - <path fill="#00184a" d="M280.23 267.24v5.355h.704l-.704-5.355z"/> - <path fill="#003994" d="M280.93 267.24c0 12.41-7.252 16.998-19.698 16.065l-.704 12.718c2.66-.043 6.397.155 7.035-2.678l2.815 2.01 2.814-2.68-.704 2.68 1.407-1.34h.704l4.22-.67-.704 2.01 2.11-2.68 1.408 1.34h2.11v-2.008l1.407.67.705-6.025c3.57-2.97 1.407-14.982 1.407-19.412h-6.332z"/> - <path fill="#424242" d="M290.08 267.24l.703.67-.703-.67z"/> - <path fill="#185200" d="M292.19 267.24l.703.67-.703-.67m2.814 0l.703.67-.703-.67z"/> - <path fill="#184a00" d="M297.82 267.24v2.008h.703l-.703-2.008z"/> - <path fill="#185200" d="M299.22 267.24l.704.67-.704-.67z"/> - <path fill="#184a00" d="M301.33 267.24v3.347h.703l-.703-3.347z"/> - <path fill="#185200" d="M304.15 267.24l.703.67-.703-.67z"/> - <path fill="#296300" d="M304.85 267.24l.703.67-.703-.67z"/> - <path fill="#082108" d="M307.67 267.24l.703.67-.703-.67z"/> - <path d="M311.18 267.24l.704.67-.704-.67z"/> - <path fill="#296300" d="M311.89 267.24l.703.67-.703-.67z"/> - <path fill="#297b00" d="M314.7 267.24l-1.407 2.008 1.407-2.008z"/> - <path fill="#63636b" d="M315.4 267.24l.703.67-.703-.67m-127.33.67l.704.67-.704-.67z"/> - <path fill="#294200" d="M189.48 267.91l1.407 1.34-1.407-1.34z"/> - <path fill="#295200" d="M190.18 267.91l.703.67-.703-.67z"/> - <path fill="#103900" d="M193 267.91l.703.67-.703-.67z"/> - <path fill="#397b00" d="M193.7 267.91l.704.67-.704-.67m2.11 0v1.34h1.407v-1.34h-1.407z"/> - <path fill="#8c8c8c" d="M201.44 267.91l.703.67-.703-.67z"/> - <path fill="#7b7373" d="M204.25 267.91l.703.67-.703-.67z"/> - <path fill="#103900" d="M215.51 267.91l.703.67-.703-.67z"/> - <path fill="#396b10" d="M217.62 267.91l.704.67-.704-.67z"/> - <path fill="#dedede" d="M218.32 267.91l.703.67-.703-.67z"/> - <path d="M236.61 267.91v6.024h.703l-.703-6.024z" fill-opacity=".475" fill="#8c7373"/> - <path fill="#efefef" d="M248.57 267.91l.703.67-.703-.67z"/> - <path fill="#10214a" d="M249.28 267.91l.703.67-.703-.67z"/> - <path fill="#636b7b" d="M252.09 267.91l.703.67-.7-.67z"/> - <path fill="#ad1810" d="M253.5 267.91l.704.67-.704-.67z"/> - <path fill="#420000" d="M257.01 267.91l.704.67-.704-.67z"/> - <path fill="#8c8c8c" d="M290.08 267.91l.703.67-.703-.67z"/> - <path fill="#63636b" d="M290.78 267.91l.703.67-.703-.67z"/> - <path fill="#425242" d="M292.19 267.91l.703.67-.703-.67z"/> - <path fill="#103900" d="M295 267.91l.703.67-.703-.67z"/> - <path fill="#184a00" d="M299.22 267.91l.704.67-.704-.67z"/> - <path fill="#297b00" d="M303.45 267.91l1.407 1.34-1.407-1.34z"/> - <path fill="#103900" d="M304.15 267.91l.703.67-.703-.67m2.814 0l.703.67-.703-.67m2.814 0l-3.518 4.016 3.518-4.016z"/> - <path fill="#082108" d="M310.48 267.91l.703.67-.703-.67z"/> - <path fill="#297b00" d="M311.18 267.91l.704.67-.704-.67z"/> - <path fill="#314231" d="M314.7 267.91l-.704 1.34.704-1.34z"/> - <path fill="#bdbdbd" d="M188.07 268.58l.704.67-.704-.67z"/> - <path fill="#397b00" d="M188.78 268.58l.703.67-.703-.67m2.11 0l.704.67-.703-.67z"/> - <path fill="#294200" d="M193.93 269.03l.235.446-.235-.446m4.925 0l.234.446-.235-.446z"/> - <path fill="#526b42" d="M201.44 268.58l.703.67-.703-.67z"/> - <path fill="#efefef" d="M204.25 268.58l.703.67-.703-.67z"/> - <path fill="#314231" d="M204.96 268.58l.704.67-.704-.67z"/> - <path fill="#397b00" d="M209.18 268.58l.703.67-.703-.67m4.22.67v.67h2.112l-2.11-.67m2.11-.67l.703.67-.704-.67m1.41 0l.702.67-.704-.67z"/> - <path fill="#8c8c8c" d="M217.62 268.58l.704.67-.704-.67z"/> - <path fill="#7b7373" d="M242.71 268.8l.47.224-.47-.224z"/> - <path fill="#8c8c8c" d="M243.65 268.58l.703.67-.703-.67z"/> - <path fill="#bdbdbd" d="M244.35 268.58l.704.67-.704-.67z"/> - <path fill="#cecece" d="M245.06 268.58l.703.67-.703-.67z"/> - <path fill="#9c9494" d="M248.57 268.58l.703.67-.703-.67z"/> - <path fill="#00216b" d="M249.28 268.58l.703.67-.703-.67z"/> - <path fill="#00215a" d="M251.39 268.58l.703.67-.703-.67z"/> - <path fill="#ada5a5" d="M252.09 268.58l.703.67-.703-.67z"/> - <path fill="#a51008" d="M253.5 268.58l.704.67-.704-.67z"/> - <path fill="#310000" d="M257.01 268.58l.704.67-.704-.67z"/> - <path fill="#940008" d="M257.72 268.58l.703.67-.703-.67z"/> - <path fill="#bdbdbd" d="M258.42 268.58l.704.67-.704-.67z"/> - <path fill="#cecece" d="M262.64 268.58l.703.67-.703-.67z"/> - <path fill="#bdbdbd" d="M263.35 268.58l.704.67-.704-.67z"/> - <path fill="#8c8c8c" d="M264.52 268.8l.47.224-.47-.224z"/> - <path fill="#7b7373" d="M265.46 268.58l.703.67-.703-.67z"/> - <path fill="#bdbdbd" d="M290.08 268.58l.703.67-.703-.67z"/> - <path fill="#103900" d="M290.78 268.58l.703.67-.703-.67z"/> - <path fill="#bdbdbd" d="M291.49 268.58l.704.67-.704-.67z"/> - <path fill="#9c9494" d="M292.19 268.58l.703.67-.703-.67z"/> - <path fill="#297b00" d="M292.89 268.58l.704.67-.704-.67z"/> - <path fill="#296300" d="M295.47 268.8l.47.224-.47-.224z"/> - <path fill="#297b00" d="M298.52 268.58l.703.67-.703-.67z"/> - <path fill="#185200" d="M299.22 268.58l.704.67-.704-.67z"/> - <path fill="#297b00" d="M299.93 268.58l.704.67-.704-.67z"/> - <path fill="#103900" d="M303.45 268.58l.703.67-.703-.67m2.814 0l.703.67-.703-.67z"/> - <path fill="#efefef" d="M314.7 268.58l.703.67-.703-.67z"/> - <path fill="#396b10" d="M188.78 269.25l.703.67-.703-.67z"/> - <path fill="#103900" d="M190.89 269.25l.704.67-.704-.67z"/> - <path fill="#294200" d="M196.75 269.7l.235.446-.235-.446z"/> - <path fill="#396b10" d="M201.44 269.25l.703.67-.703-.67z"/> - <path fill="#bdbdbd" d="M203.55 269.25l.703.67-.703-.67z"/> - <path fill="#dedede" d="M204.96 269.25l.704.67-.704-.67z"/> - <path fill="#214210" d="M205.66 269.25l2.11 2.008-2.11-2.008z"/> - <path fill="#294200" d="M208.71 269.7l.235.446-.235-.446z"/> - <path fill="#103900" d="M214.1 269.25l.704.67-.704-.67z"/> - <path fill="#314231" d="M216.92 269.25l.703.67-.703-.67z"/> - <path fill="#003994" d="M242.94 269.25c.042 3.358.415 5.073 4.22 5.355.59-3.62-.563-4.587-4.22-5.355z"/> - <path fill="#002984" d="M244.35 269.25l.704.67-.704-.67z"/> - <path fill="#00216b" d="M245.06 269.25l.703.67-.703-.67z"/> - <path fill="#10214a" d="M245.76 269.25l.703.67-.703-.67z"/> - <path fill="#636b7b" d="M246.46 269.25l.703.67-.703-.67z"/> - <path fill="#9c9494" d="M247.17 269.25l.704.67-.704-.67z"/> - <path fill="#efefef" d="M247.87 269.25l.703.67-.703-.67z"/> - <path fill="#31425a" d="M248.57 269.25l.703.67-.703-.67z"/> - <path fill="#21315a" d="M251.39 269.25l.703.67-.703-.67z"/> - <path fill="#bdbdbd" d="M252.79 269.25l.704.67-.704-.67z"/> - <path fill="#ce1810" d="M253.5 269.25l.704.67-.704-.67z"/> - <path fill="#420000" d="M257.01 269.25l.704.67-.704-.67z"/> - <path fill="#ce0008" d="M257.72 269.25l.703.67-.703-.67z"/> - <path fill="#8c8c8c" d="M258.42 269.25l.704.67-.704-.67z"/> - <path fill="#ada5a5" d="M260.53 269.25l.704.67-.704-.67z"/> - <path fill="#63636b" d="M261.24 269.25l.703.67-.703-.67z"/> - <path fill="#21315a" d="M261.94 269.25l.703.67-.703-.67z"/> - <path fill="#00216b" d="M262.64 269.25l.703.67-.703-.67z"/> - <path fill="#002984" d="M263.35 269.25l.704.67-.704-.67z"/> - <path fill="#003994" d="M259.12 270.59c1.647 5.808 6.266 3.942 6.33-1.34l-6.33 1.34z"/> - <path fill="#efefef" d="M290.08 269.25l.703.67-.703-.67z"/> - <path fill="#185200" d="M290.78 269.25l.703.67-.703-.67z"/> - <path fill="#425242" d="M291.49 269.25l.704.67-.704-.67z"/> - <path fill="#efefef" d="M292.19 269.25l.703.67-.703-.67z"/> - <path fill="#103900" d="M292.89 269.25l.704.67-.704-.67m2.814 0l.704.67-.704-.67zm9.856 0l.704.67-.704-.67z"/> - <path fill="#185200" d="M309.07 269.25l.703.67-.703-.67z"/> - <path fill="#214210" d="M313.29 269.25l.703.67-.703-.67z"/> - <path fill="#cecece" d="M314 269.25l-.703 1.34.703-1.34z"/> - <path fill="#5a6b52" d="M188.78 269.92l.703.67-.703-.67z"/> - <path fill="#397b00" d="M190.89 269.92l.704.67-.704-.67z"/> - <path fill="#295200" d="M191.59 269.92l.703.67-.703-.67m2.814 0l.703.67-.703-.67m4.22 0l.704.67-.703-.67z"/> - <path fill="#425242" d="M203.55 269.92l.703.67-.703-.67z"/> - <path fill="#cecece" d="M205.66 269.92l2.11 2.008-2.11-2.008z"/> - <path fill="#397b00" d="M212.69 269.92l.703.67-.703-.67z"/> - <path fill="#214210" d="M216.21 269.92l-.703 1.34.703-1.34z"/> - <path fill="#cecece" d="M216.92 269.92l-.704 1.34.704-1.34z"/> - <path fill="#002984" d="M247.17 269.92l.704.67-.704-.67z"/> - <path fill="#001039" d="M247.87 269.92l.703.67-.703-.67z"/> - <path fill="#00184a" d="M248.57 269.92l.703.67-.703-.67z"/> - <path fill="#7b7373" d="M251.39 269.92l.703.67-.703-.67z"/> - <path fill="#b5adad" d="M252.79 269.92l.704.67-.704-.67z"/> - <path fill="#6b0808" d="M257.01 269.92l.704.67-.704-.67z"/> - <path fill="#de2110" d="M257.72 269.92l.703.67-.703-.67z"/> - <path fill="#524242" d="M258.42 269.92l.704.67-.704-.67z"/> - <path fill="#525a6b" d="M259.12 269.92l.703.67-.703-.67z"/> - <path fill="#00184a" d="M259.83 269.92l.704.67-.704-.67z"/> - <path fill="#002984" d="M260.53 269.92l.704.67-.704-.67z"/> - <path fill="#395231" d="M290.78 269.92l.703.67-.703-.67z"/> - <path fill="#296300" d="M291.49 269.92l.704.67-.704-.67z"/> - <path fill="#9c9494" d="M292.19 269.92l.703.67-.703-.67z"/> - <path fill="#5a6b52" d="M292.89 269.92l.704.67-.704-.67z"/> - <path fill="#185200" d="M295.71 269.92l1.407 1.34-1.407-1.34z"/> - <path fill="#297b00" d="M296.41 269.92l.703.67-.703-.67z"/> - <path fill="#103900" d="M298.75 270.37l.235.446-.235-.446z"/> - <path fill="#297b00" d="M299.22 269.92l.704.67-.704-.67z"/> - <path fill="#103900" d="M304.85 269.92l.703.67-.703-.67z"/> - <path fill="#296300" d="M308.37 269.92l.704.67-.704-.67z"/> - <path fill="#103900" d="M312.59 269.92l.703.67-.703-.67z"/> - <path fill="#9c9494" d="M188.78 270.59l.703.67-.703-.67z"/> - <path fill="#294200" d="M191.59 270.59l.703.67-.703-.67m3.048.446l.235.446-.235-.446z"/> - <path fill="#295200" d="M196.51 270.59l.704.67-.704-.67z"/> - <path fill="#9c9494" d="M204.25 270.59l.703.67-.703-.67z"/> - <path fill="#397b00" d="M207.77 270.59l.704.67-.704-.67z"/> - <path fill="#295200" d="M208.47 270.59l.703.67-.703-.67z"/> - <path fill="#397b00" d="M211.99 270.59l.703.67-.703-.67z"/> - <path fill="#00215a" d="M247.87 270.59l.703.67-.703-.67z"/> - <path fill="#002984" d="M248.57 270.59l.703.67-.703-.67z"/> - <path fill="#00216b" d="M250.68 270.59l.703.67-.703-.67z"/> - <path fill="#bdbdbd" d="M251.39 270.59l.703.67-.703-.67z"/> - <path fill="#ad0008" d="M257.72 270.59l.703.67-.703-.67z"/> - <path fill="#390821" d="M258.42 270.59l.704.67-.704-.67z"/> - <path fill="#7b7373" d="M290.78 270.59l.703.67-.703-.67z"/> - <path fill="#319400" d="M291.49 270.59l.704.67-.704-.67z"/> - <path fill="#103910" d="M292.19 270.59l.703.67-.703-.67z"/> - <path fill="#8c8c8c" d="M292.89 270.59l.704.67-.704-.67z"/> - <path fill="#297b00" d="M293.6 270.59l.703.67-.703-.67m2.11 0l.704.67-.703-.67z"/> - <path fill="#184a00" d="M299.93 270.59l.704.67-.704-.67z"/> - <path fill="#185200" d="M301.33 270.59l.703.67-.703-.67z"/> - <path fill="#103900" d="M304.15 270.59l.703.67-.703-.67z"/> - <path fill="#297b00" d="M307.67 270.59l.703.67-.703-.67z"/> - <path fill="#185200" d="M311.89 270.59l.703.67-.703-.67z"/> - <path fill="#9c9494" d="M312.59 270.59l.703.67-.703-.67z"/> - <path fill="#dedede" d="M188.78 271.26l.703.67-.703-.67z"/> - <path fill="#295200" d="M189.48 271.26l.703.67-.703-.67m2.814 0l.703.67-.703-.67z"/> - <path fill="#397b00" d="M196.51 271.26l.704.67-.704-.67z"/> - <path fill="#6b735a" d="M202.85 271.26l.703.67-.703-.67z"/> - <path fill="#214210" d="M204.25 271.26l1.407 1.34-1.407-1.34z"/> - <path fill="#cecece" d="M204.96 271.26l1.407 1.34-1.407-1.34z"/> - <path fill="#001000" d="M207.77 271.26l.704.67-.704-.67z"/> - <path fill="#103900" d="M210.58 271.26l.704.67-.704-.67z"/> - <path fill="#397b00" d="M211.29 271.26l.704.67-.704-.67m2.11 0l.704.67-.704-.67z"/> - <path fill="#214210" d="M214.1 271.26l.704.67-.704-.67z"/> - <path fill="#7b7373" d="M214.8 271.26l.703.67-.703-.67z"/> - <path fill="#dedede" d="M215.51 271.26l.703.67-.703-.67z"/> - <path fill="#001039" d="M247.87 271.26l.703.67-.703-.67z"/> - <path fill="#00184a" d="M250.68 271.26l.703.67-.703-.67z"/> - <path fill="#7b0008" d="M257.01 271.26l.704.67-.704-.67m1.407 0l.704.67-.703-.67z"/> - <path fill="#efefef" d="M289.14 271.48l.47.224-.47-.224z"/> - <path fill="#9c9494" d="M290.78 271.26l.703.67-.703-.67z"/> - <path fill="#297b00" d="M291.95 271.48l.47.224-.47-.224z"/> - <path fill="#7b7373" d="M292.89 271.26l.704.67-.704-.67z"/> - <path fill="#185200" d="M293.6 271.26l.703.67-.703-.67z"/> - <path fill="#184a00" d="M296.64 271.7l.235.446-.235-.446m2.11 0l.235.446-.235-.446z"/> - <path fill="#296300" d="M299.93 271.26l.704.67-.704-.67m1.407 0l.703.67-.703-.67z"/> - <path fill="#184a00" d="M303.45 271.26l.703.67-.703-.67z"/> - <path fill="#297b00" d="M306.96 271.26l.703.67-.703-.67z"/> - <path fill="#296300" d="M311.18 271.26l.704.67-.704-.67z"/> - <path fill="#8c8c8c" d="M311.89 271.26l.703.67-.703-.67z"/> - <path fill="#dedede" d="M314.7 271.26l.703.67-.703-.67z"/> - <path fill="#7b7373" d="M315.4 271.26l.703.67-.703-.67z"/> - <path fill="#214210" d="M316.11 271.26l.703.67-.703-.67z"/> - <path fill="#395231" d="M316.81 271.26l.704.67-.704-.67z"/> - <path fill="#9c9494" d="M317.52 271.26l.703.67-.703-.67z"/> - <path fill="#5a5231" d="M189.48 271.93l.703.67-.703-.67z"/> - <path fill="#294200" d="M192.29 271.93l.703.67-.703-.67z"/> - <path fill="#295200" d="M194.4 271.93l1.407 1.34-1.407-1.34z"/> - <path fill="#397b00" d="M195.11 271.93l.703.67-.703-.67m3.518 0l-.704 1.34h1.407l-.702-1.34z"/> - <path fill="#396b10" d="M201.44 271.93l.703.67-.703-.67z"/> - <path fill="#526b42" d="M203.08 272.37l.235.446-.235-.446z"/> - <path fill="#efefef" d="M207.07 271.93l-.703 1.34.703-1.34z"/> - <path fill="#294200" d="M207.77 271.93l.704.67-.704-.67m2.345.446l.235.446-.235-.446z"/> - <path fill="#295200" d="M210.58 271.93l.704.67-.704-.67z"/> - <path fill="#294200" d="M211.99 271.93l.703.67-.703-.67z"/> - <path fill="#63636b" d="M212.69 271.93l.703.67-.703-.67z"/> - <path fill="#ada5a5" d="M213.4 271.93l.704.67-.704-.67z"/> - <path fill="#00184a" d="M247.87 271.93l.703.67-.703-.67z"/> - <path fill="#31425a" d="M250.68 271.93l.703.67-.703-.67z"/> - <path fill="#6b0808" d="M257.95 272.37l.235.446-.235-.446z"/> - <path fill="#bd0008" d="M258.42 271.93l.704.67-.704-.67z"/> - <path fill="#00215a" d="M259.12 271.93l.703.67-.703-.67z"/> - <path fill="#bdbdbd" d="M288.67 271.93l.704.67-.704-.67z"/> - <path fill="#7b7373" d="M289.38 271.93l.704.67-.704-.67z"/> - <path fill="#dedede" d="M290.78 271.93l.703.67-.703-.67z"/> - <path fill="#185200" d="M291.49 271.93l.704.67-.704-.67z"/> - <path fill="#184a00" d="M292.89 271.93l.704.67-.704-.67z"/> - <path fill="#314231" d="M293.6 271.93l.703.67-.703-.67z"/> - <path fill="#184a00" d="M301.33 271.93v2.678h.703l-.703-2.678z"/> - <path fill="#185200" d="M303.21 272.15l.47.224-.47-.224m2.345-.223l-1.407 2.008 1.407-2.008z"/> - <path fill="#296300" d="M306.26 271.93l.703.67-.703-.67z"/> - <path fill="#297b00" d="M310.48 271.93l-1.407 3.347h.703l.704-3.347z"/> - <path fill="#63636b" d="M311.18 271.93l.704.67-.704-.67z"/> - <path fill="#9c9494" d="M313.29 271.93l.703.67-.703-.67z"/> - <path fill="#425242" d="M314 271.93l.704.67-.704-.67z"/> - <path fill="#185200" d="M314.7 271.93l.703.67-.703-.67z"/> - <path fill="#297b00" d="M315.4 271.93l.703.67-.703-.67z"/> - <path fill="#184a00" d="M317.52 271.93l.703.67-.703-.67z"/> - <path fill="#cecece" d="M318.22 271.93l.703.67-.703-.67z"/> - <path fill="#8c8c8c" d="M189.48 272.6l.703.67-.703-.67z"/> - <path fill="#397b00" d="M192.76 272.82l.47.224-.47-.224z"/> - <path fill="#526b42" d="M201.44 272.6l.703.67-.703-.67z"/> - <path fill="#397b00" d="M204.02 272.82l.47.224-.47-.224z"/> - <path fill="#314231" d="M205.66 272.6l.703.67-.703-.67z"/> - <path fill="#8c8c8c" d="M207.07 272.6l-.703 1.34.703-1.34z"/> - <path fill="#397b00" d="M209.18 272.6v2.008l2.11-2.008h-2.11z"/> - <path fill="#5a6b52" d="M211.29 272.6l.704.67-.704-.67z"/> - <path fill="#bdbdbd" d="M211.99 272.6l.703.67-.703-.67z"/> - <path fill="#525a6b" d="M242.24 272.6l.703.67-.703-.67z"/> - <path fill="#00216b" d="M247.63 272.82l.47.224-.47-.224z"/> - <path fill="#7b7373" d="M250.68 272.6l.703.67-.703-.67z"/> - <path fill="#de2110" d="M258.66 273.04l.235.446-.235-.446z"/> - <path fill="#390821" d="M259.12 272.6l.703.67-.703-.67z"/> - <path fill="#00215a" d="M280.23 272.6l.704.67-.704-.67z"/> - <path fill="#292921" d="M289.38 272.6l.704.67-.704-.67z"/> - <path fill="#315221" d="M291.49 272.6l.704.67-.704-.67z"/> - <path fill="#297b00" d="M292.89 272.6l.704.67-.704-.67z"/> - <path fill="#001000" d="M293.6 272.6l.703.67-.703-.67z"/> - <path fill="#297b00" d="M294.3 272.6l.704.67-.704-.67z"/> - <path fill="#296300" d="M296.88 272.82l.47.224-.47-.224z"/> - <path fill="#185200" d="M298.52 272.6l.703.67-.703-.67z"/> - <path fill="#296300" d="M302.74 272.6l.704.67-.704-.67z"/> - <path fill="#425242" d="M310.48 272.6l.703.67-.703-.67z"/> - <path fill="#efefef" d="M311.18 272.6l.704.67-.704-.67z"/> - <path fill="#8c8c8c" d="M311.89 272.6l.703.67-.703-.67z"/> - <path fill="#315221" d="M312.59 272.6l.703.67-.703-.67z"/> - <path fill="#297b00" d="M313.29 272.6l.703.67-.703-.67z"/> - <path fill="#314231" d="M318.22 272.6l.703.67-.703-.67z"/> - <path fill="#dedede" d="M189.48 273.27l.703.67-.703-.67z"/> - <path fill="#295200" d="M190.18 273.27l.703.67-.703-.67z"/> - <path fill="#103900" d="M193 273.27l.703.67-.703-.67z"/> - <path fill="#294200" d="M195.11 273.27l.703.67-.703-.67z"/> - <path fill="#295200" d="M197.92 273.27l.703.67-.703-.67z"/> - <path fill="#6b735a" d="M201.44 273.27l.703.67-.703-.67z"/> - <path fill="#7b7373" d="M202.85 273.27l.703.67-.703-.67z"/> - <path fill="#294200" d="M204.49 273.71l.235.446-.235-.446z"/> - <path fill="#315221" d="M207.07 273.27l.703.67-.703-.67z"/> - <path fill="#103900" d="M209.18 273.27l.703.67-.703-.67z"/> - <path fill="#63636b" d="M210.58 273.27l-.703 1.34.703-1.34z"/> - <path fill="#292921" d="M211.99 273.27l.703.67-.703-.67z"/> - <path fill="#dedede" d="M212.69 273.27l.703.67-.703-.67z"/> - <path fill="#733939" d="M220.43 273.27l.704.67-.704-.67z"/> - <path fill="#bd2110" d="M227.47 273.27l.704.67-.704-.67z"/> - <path fill="#8c8c8c" d="M242.24 273.27l.703.67-.703-.67z"/> - <path fill="#002984" d="M249.98 273.27l.704.67-.704-.67z"/> - <path fill="#9c9494" d="M250.68 273.27l.703.67-.703-.67z"/> - <path fill="#b51010" d="M257.01 273.27l.704.67-.704-.67z"/> - <path fill="#520808" d="M257.72 273.27l.703.67-.703-.67z"/> - <path fill="#7b0008" d="M259.12 273.27l.703.67-.703-.67z"/> - <path fill="#636b7b" d="M265.46 273.27l.703.67-.703-.67z"/> - <path fill="#002984" d="M280.46 273.71l.235.446-.235-.446z"/> - <path fill="#001000" d="M289.38 273.27l.704.67-.704-.67z"/> - <path fill="#dedede" d="M290.08 273.27l.703.67-.703-.67z"/> - <path fill="#6b735a" d="M291.49 273.27l.704.67-.704-.67z"/> - <path fill="#185200" d="M294.07 273.49l.47.224-.47-.224z"/> - <path fill="#103900" d="M297.11 273.27l.704.67-.704-.67z"/> - <path fill="#297b00" d="M299.22 273.27l.704.67-.704-.67z"/> - <path fill="#293129" d="M309.78 273.27l.703.67-.703-.67z"/> - <path fill="#7b7373" d="M310.48 273.27l.703.67-.703-.67z"/> - <path fill="#214210" d="M311.18 273.27l.704.67-.704-.67z"/> - <path fill="#297b00" d="M311.89 273.27l.703.67-.703-.67z"/> - <path fill="#185200" d="M318.22 273.27l.703.67-.703-.67z"/> - <path fill="#cecece" d="M318.92 273.27l.703.67-.703-.67z"/> - <path fill="#314231" d="M190.18 273.94l.703.67-.703-.67z"/> - <path fill="#295200" d="M193 273.94l.703.67-.703-.67z"/> - <path fill="#397b00" d="M195.11 273.94l.703.67-.703-.67z"/> - <path fill="#295200" d="M195.81 273.94l.703.67-.703-.67z"/> - <path fill="#294200" d="M197.92 273.94l.703.67-.703-.67z"/> - <path fill="#8c8c8c" d="M201.67 274.38l.235.446-.235-.446m1.173-.446l.703.67-.704-.67z"/> - <path fill="#294200" d="M206.36 273.94l.703.67-.703-.67z"/> - <path fill="#397b00" d="M207.07 273.94l-.703 3.347h.703v-3.347z"/> - <path fill="#294200" d="M208.71 274.38l.235.446-.235-.446z"/> - <path fill="#bdbdbd" d="M211.29 273.94l.704.67-.704-.67z"/> - <path fill="#294200" d="M212.23 274.38l.235.446-.235-.446z"/> - <path fill="#bdbdbd" d="M212.69 273.94l.703.67-.703-.67m5.628 0l.703.67-.702-.67z"/> - <path fill="#8c8c8c" d="M219.03 273.94l.704.67-.704-.67z"/> - <path fill="#315221" d="M219.73 273.94l.703.67-.703-.67z"/> - <path fill="#310000" d="M220.43 273.94l.704.67-.704-.67z"/> - <path fill="#a51008" d="M228.17 273.94l.703.67-.703-.67z"/> - <path fill="#845a52" d="M236.61 273.94l.703.67-.703-.67z"/> - <path fill="#dedede" d="M242.24 273.94l.703.67-.703-.67z"/> - <path fill="#10214a" d="M242.94 273.94l.703.67-.703-.67z"/> - <path fill="#00216b" d="M249.98 273.94l.704.67-.704-.67z"/> - <path fill="#bdbdbd" d="M250.68 273.94l.703.67-.703-.67z"/> - <path fill="#a51008" d="M257.01 273.94l.704.67-.704-.67z"/> - <path fill="#940008" d="M257.72 273.94l1.407 1.34-1.407-1.34z"/> - <path fill="#bd0008" d="M258.89 274.16l.47.224-.47-.224z"/> - <path fill="#00215a" d="M259.83 273.94l.704.67-.704-.67z"/> - <path fill="#10214a" d="M264.75 273.94l.703.67-.703-.67z"/> - <path fill="#cecece" d="M265.46 273.94l-.703 1.34.703-1.34z"/> - <path fill="#103900" d="M289.38 273.94l.704.67-.704-.67z"/> - <path fill="#8c8c8c" d="M290.08 273.94l.703.67-.703-.67z"/> - <path fill="#9c9494" d="M291.49 273.94l.704.67-.704-.67z"/> - <path fill="#297b00" d="M292.19 273.94l.703.67-.703-.67z"/> - <path fill="#103900" d="M294.3 273.94l.704.67-.704-.67z"/> - <path fill="#184a00" d="M297.11 273.94l.704.67-.704-.67zm7.04 0l.703.67-.703-.67z"/> - <path fill="#103900" d="M309.07 273.94l.703.67-.703-.67z"/> - <path fill="#184a00" d="M309.78 273.94l.703.67-.703-.67z"/> - <path fill="#297b00" d="M310.48 273.94l.703.67-.703-.67m6.097.223l.47.223-.47-.223m1.642-.223l.702.67-.704-.67z"/> - <path fill="#7b7373" d="M318.92 273.94l.703.67-.703-.67z"/> - <path fill="#bdbdbd" d="M190.18 274.6l.703.67-.703-.67z"/> - <path fill="#295200" d="M190.89 274.6l.704.67-.704-.67z"/> - <path fill="#103900" d="M193.7 274.6l.704.67-.704-.67z"/> - <path fill="#294200" d="M195.81 274.6l1.407 1.34-1.407-1.34z"/> - <path fill="#397b00" d="M196.51 274.6l.704.67-.704-.67z"/> - <path fill="#295200" d="M197.92 274.6l-.703 2.008.703-2.008z"/> - <path fill="#bdbdbd" d="M202.85 274.6l.703.67-.703-.67z"/> - <path fill="#397b00" d="M203.55 274.6l.703.67-.703-.67z"/> - <path fill="#295200" d="M204.96 274.6l.704.67-.704-.67z"/> - <path fill="#738c63" d="M209.18 274.6l.703.67-.703-.67z"/> - <path fill="#cecece" d="M210.58 274.6l-2.814 3.347 2.814-3.347z"/> - <path fill="#214210" d="M211.29 274.6l.704.67-.704-.67z"/> - <path fill="#8c8c8c" d="M212.93 275.05l.235.446-.235-.446z"/> - <path fill="#efefef" d="M215.51 274.6l.703.67-.703-.67z"/> - <path fill="#8c8c8c" d="M216.21 274.6l.704.67-.704-.67z"/> - <path fill="#315221" d="M216.92 274.6l.703.67-.703-.67z"/> - <path fill="#294200" d="M217.62 274.6v2.008h.704l-.704-2.008z"/> - <path fill="#397b00" d="M218.79 274.83l.47.224-.47-.224z"/> - <path fill="#214210" d="M219.73 274.6l.703.67-.703-.67z"/> - <path fill="#733939" d="M220.43 274.6l.704.67-.704-.67z"/> - <path fill="#941808" d="M228.17 274.6l.703.67-.703-.67z"/> - <path fill="#943131" d="M236.61 274.6l.703.67-.703-.67z"/> - <path fill="#cecece" d="M242.94 274.6l.703.67-.703-.67z"/> - <path fill="#636b7b" d="M243.65 274.6l.703.67-.703-.67z"/> - <path fill="#10295a" d="M244.35 274.6l.704.67-.704-.67z"/> - <path fill="#00184a" d="M245.52 274.83l.47.224-.47-.224z"/> - <path fill="#001039" d="M246.46 274.6l.703.67-.703-.67z"/> - <path fill="#00215a" d="M249.98 274.6l.704.67-.704-.67z"/> - <path fill="#efefef" d="M250.68 274.6l.703.67-.703-.67z"/> - <path fill="#b51010" d="M257.01 274.6l.704.67-.704-.67z"/> - <path fill="#bd0008" d="M257.72 274.6l.703.67-.703-.67z"/> - <path fill="#de2110" d="M259.12 274.6l2.814 7.363-2.814-7.363z"/> - <path fill="#391810" d="M259.83 274.6l.704.67-.704-.67z"/> - <path fill="#636b7b" d="M260.53 274.6l.704.67-.704-.67z"/> - <path fill="#21315a" d="M261.24 274.6l.703.67-.703-.67z"/> - <path fill="#525a6b" d="M264.05 274.6l.703.67-.703-.67z"/> - <path fill="#9c4a42" d="M271.08 274.6l.703.67-.703-.67z"/> - <path fill="#ce1810" d="M279.53 274.6l.703.67-.703-.67z"/> - <path fill="#184a00" d="M289.61 275.05l.235.446-.235-.446z"/> - <path fill="#395231" d="M290.08 274.6l.703.67-.703-.67z"/> - <path fill="#dedede" d="M291.49 274.6l-.703 1.34.703-1.34z"/> - <path fill="#296300" d="M292.19 274.6l.703.67-.703-.67z"/> - <path fill="#184a00" d="M294.3 274.6l.704.67-.704-.67z"/> - <path fill="#185200" d="M297.11 274.6l.704.67-.704-.67z"/> - <path fill="#103900" d="M303.45 274.6l.703.67-.703-.67z"/> - <path fill="#296300" d="M307.9 275.05l.235.446-.235-.446z"/> - <path fill="#103900" d="M308.37 274.6l.704.67-.704-.67z"/> - <path fill="#185200" d="M314.7 274.6l.703.67-.703-.67z"/> - <path fill="#425242" d="M315.4 274.6l.703.67-.703-.67z"/> - <path fill="#9c9494" d="M316.11 274.6l.703.67-.703-.67z"/> - <path fill="#7b7373" d="M316.81 274.6l.704.67-.704-.67z"/> - <path fill="#185200" d="M317.52 274.6l1.407 1.34-1.407-1.34z"/> - <path fill="#315221" d="M318.92 274.6l.703.67-.703-.67z"/> - <path fill="#7b7373" d="M190.89 275.27l.704.67-.704-.67z"/> - <path fill="#397b00" d="M191.59 275.27l1.407 1.34-1.407-1.34m2.11 0l2.11 1.34v-.67l-2.11-.67z"/> - <path fill="#294200" d="M194.4 275.27l.703.67-.703-.67z"/> - <path fill="#397b00" d="M197.22 275.27l.703.67-.703-.67z"/> - <path fill="#9c9494" d="M201.44 275.27l.703.67-.703-.67z"/> - <path fill="#efefef" d="M202.85 275.27l.703.67-.703-.67z"/> - <path fill="#295200" d="M203.55 275.27l.703.67-.703-.67z"/> - <path fill="#294200" d="M204.96 275.27v2.008h.704l-.704-2.008z"/> - <path fill="#295200" d="M207.77 275.27l.704.67-.704-.67z"/> - <path fill="#396b10" d="M208.47 275.27l.703.67-.703-.67z"/> - <path fill="#efefef" d="M209.18 275.27l.703.67-.703-.67z"/> - <path fill="#214210" d="M210.58 275.27l.704.67-.704-.67z"/> - <path fill="#295200" d="M211.99 275.27l.703.67-.703-.67z"/> - <path fill="#efefef" d="M214.1 275.27l-.704 1.34.704-1.34z"/> - <path fill="#63636b" d="M214.8 275.27l.703.67-.703-.67z"/> - <path fill="#396b10" d="M215.51 275.27l.703.67-.703-.67z"/> - <path fill="#295200" d="M219.03 275.27l.704.67-.704-.67z"/> - <path fill="#8c8c8c" d="M219.73 275.27l.703.67-.703-.67z"/> - <path fill="#ad1810" d="M228.17 275.27l.703.67-.703-.67z"/> - <path fill="#a51008" d="M236.61 275.27l.703.67-.703-.67z"/> - <path fill="#bdbdbd" d="M246.46 275.27l.703.67-.703-.67z"/> - <path fill="#00216b" d="M247.17 275.27l.704.67-.704-.67z"/> - <path fill="#00184a" d="M249.98 275.27l.704.67-.704-.67z"/> - <path fill="#8c8c8c" d="M252.79 275.27l.704.67-.704-.67z"/> - <path fill="#a51008" d="M257.01 275.27l.704.67-.704-.67z"/> - <path fill="#6b0808" d="M258.66 275.72l.235.446-.235-.446z"/> - <path fill="#7b0008" d="M259.83 275.27l.704.67-.704-.67z"/> - <path fill="#dedede" d="M260.53 275.27l.704.67-.704-.67z"/> - <path fill="#ad3931" d="M271.08 275.27l.703.67-.703-.67z"/> - <path fill="#842118" d="M279.53 275.27l.703.67-.703-.67z"/> - <path fill="#185200" d="M290.08 275.27l.703.67-.703-.67z"/> - <path fill="#184a00" d="M292.19 275.27l.703.67-.703-.67z"/> - <path fill="#296300" d="M294.77 275.5l.47.224-.47-.224z"/> - <path fill="#185200" d="M299.22 275.27l.704.67-.704-.67z"/> - <path fill="#297b00" d="M306.26 275.27l1.407 1.34-1.407-1.34z"/> - <path fill="#103900" d="M306.96 275.27l.703.67-.703-.67z"/> - <path fill="#296300" d="M313.29 275.27l.703.67-.703-.67z"/> - <path fill="#425242" d="M314 275.27l.704.67-.704-.67z"/> - <path fill="#bdbdbd" d="M314.7 275.27l.703.67-.703-.67z"/> - <path fill="#9c9494" d="M317.52 275.27l.703.67-.703-.67z"/> - <path fill="#296300" d="M318.92 275.27l.703.67-.703-.67z"/> - <path fill="#cecece" d="M319.63 275.27l.704.67-.704-.67z"/> - <path fill="#dedede" d="M324.55 275.27l.703.67-.703-.67z"/> - <path fill="#8c8c8c" d="M325.49 275.72l.235.446-.235-.446z"/> - <path fill="#63636b" d="M191.59 275.94l.703.67-.703-.67z"/> - <path fill="#001000" d="M197.92 275.94l.703.67-.703-.67z"/> - <path fill="#397b00" d="M200.73 275.94l.703.67-.703-.67z"/> - <path fill="#bdbdbd" d="M201.44 275.94l.703.67-.703-.67z"/> - <path fill="#294200" d="M203.55 275.94l.703.67-.703-.67z"/> - <path fill="#103900" d="M207.77 275.94l.704.67-.704-.67z"/> - <path fill="#bdc6ad" d="M208.47 275.94l.703.67-.703-.67z"/> - <path fill="#214210" d="M209.88 275.94l.703.67-.703-.67z"/> - <path fill="#295200" d="M211.29 275.94l.704.67-.704-.67z"/> - <path fill="#526b42" d="M212.93 276.39l.235.446-.235-.446z"/> - <path fill="#314231" d="M214.1 275.94l.704.67-.704-.67z"/> - <path fill="#397b00" d="M218.32 275.94l.703.67-.703-.67z"/> - <path fill="#214210" d="M219.03 275.94l.704.67-.704-.67z"/> - <path fill="#ce2110" d="M228.17 275.94l.703.67-.703-.67z"/> - <path fill="#ce1810" d="M236.61 275.94l.703.67-.703-.67z"/> - <path fill="#a59494" d="M237.32 275.94l.703.67-.703-.67z"/> - <path fill="#9c9494" d="M246.46 275.94l.703.67-.703-.67z"/> - <path fill="#002984" d="M247.17 275.94l.704.67-.704-.67z"/> - <path fill="#10295a" d="M249.98 275.94l.704.67-.704-.67z"/> - <path fill="#c6b5b5" d="M252.79 275.94l.704.67-.704-.67z"/> - <path fill="#ce1810" d="M253.73 276.39l.235.446-.235-.446z"/> - <path fill="#bd0008" d="M259.83 275.94l.704.67-.704-.67z"/> - <path fill="#8c8c8c" d="M260.53 275.94l.704.67-.704-.67z"/> - <path fill="#debdb5" d="M270.38 275.94l.703.67-.703-.67z"/> - <path fill="#ce1810" d="M271.08 275.94l.703.67-.703-.67z"/> - <path fill="#00184a" d="M279.53 275.94l.703.67-.703-.67z"/> - <path fill="#5a7b42" d="M289.38 275.94l.704.67-.704-.67z"/> - <path fill="#297b00" d="M290.08 275.94l.703.67-.703-.67z"/> - <path fill="#8c8c8c" d="M290.78 275.94l.703.67-.703-.67z"/> - <path fill="#315221" d="M292.19 275.94l.703.67-.703-.67z"/> - <path fill="#297b00" d="M294.3 275.94l.704.67-.704-.67z"/> - <path fill="#184a00" d="M295 275.94v2.008h.703L295 275.94z"/> - <path fill="#185200" d="M298.05 276.39l.235.446-.235-.446z"/> - <path fill="#296300" d="M299.22 275.94l.704.67-.704-.67z"/> - <path fill="#184a00" d="M302.04 275.94l.704.67-.704-.67z"/> - <path fill="#185200" d="M305.56 275.94l.704.67-.704-.67z"/> - <path fill="#184a00" d="M306.26 275.94l.703.67-.703-.67z"/> - <path fill="#296300" d="M311.89 275.94l.703.67-.703-.67z"/> - <path fill="#395231" d="M312.59 275.94l.703.67-.703-.67z"/> - <path fill="#bdbdbd" d="M313.29 275.94l.703.67-.703-.67z"/> - <path fill="#63636b" d="M318.22 275.94l.703.67-.703-.67z"/> - <path fill="#297b00" d="M318.92 275.94l.703.67-.703-.67z"/> - <path fill="#63636b" d="M319.63 275.94l.704.67-.704-.67z"/> - <path fill="#dedede" d="M322.44 275.94l.704.67-.704-.67z"/> - <path fill="#8c8c8c" d="M323.14 275.94l.703.67-.703-.67z"/> - <path fill="#314231" d="M323.85 275.94l.703.67-.703-.67z"/> - <path fill="#001000" d="M324.55 275.94l.703.67-.703-.67z"/> - <path fill="#8c8c8c" d="M192.29 276.61l.703.67-.703-.67z"/> - <path fill="#214210" d="M193 276.61l.703.67-.703-.67z"/> - <path fill="#397b00" d="M197.92 276.61l.703.67-.703-.67z"/> - <path fill="#294200" d="M198.86 277.06l.235.446-.235-.446z"/> - <path fill="#8c8c8c" d="M201.44 276.61l.703.67-.703-.67z"/> - <path fill="#5a5231" d="M203.55 276.61l.703.67-.703-.67z"/> - <path fill="#295200" d="M207.07 276.61l-.703 1.34.703-1.34z"/> - <path fill="#425242" d="M207.77 276.61l.704.67-.704-.67z"/> - <path fill="#214210" d="M209.18 276.61l.703.67-.703-.67z"/> - <path fill="#103900" d="M211.29 276.61l.704.67-.704-.67z"/> - <path fill="#425242" d="M213.4 276.61l.704.67-.704-.67z"/> - <path fill="#103900" d="M216.92 276.61l.703.67-.703-.67z"/> - <path fill="#397b00" d="M217.62 276.61l.704.67-.704-.67z"/> - <path fill="#6b735a" d="M219.03 276.61l.704.67-.704-.67z"/> - <path fill="#a51008" d="M228.87 276.61l.703.67-.703-.67z"/> - <path fill="#842118" d="M237.32 276.61l.703.67-.703-.67z"/> - <path fill="#8c8c8c" d="M246.46 276.61l.703.67-.703-.67z"/> - <path fill="#42425a" d="M249.98 276.61v5.355h.704l-.704-5.355z"/> - <path fill="#bdbdbd" d="M252.79 276.61l.704.67-.704-.67z"/> - <path fill="#a51008" d="M257.01 276.61l.704.67-.704-.67z"/> - <path fill="#ad0008" d="M259.12 276.61l.703.67-.703-.67z"/> - <path fill="#733939" d="M260.53 276.61l.704.67-.704-.67z"/> - <path fill="#9c4239" d="M270.38 276.61l.703.67-.703-.67z"/> - <path fill="#ce1810" d="M278.82 276.61l.703.67-.703-.67z"/> - <path fill="#7b7373" d="M287.97 276.61l1.407 1.34-1.407-1.34z"/> - <path fill="#4a6342" d="M289.61 277.06l.235.446-.235-.446z"/> - <path fill="#314231" d="M290.78 276.61l.703.67-.703-.67z"/> - <path fill="#4a6342" d="M292.19 276.61l.703.67-.703-.67z"/> - <path fill="#296300" d="M301.33 276.61l.703.67-.703-.67z"/> - <path fill="#185200" d="M302.04 276.61l.704.67-.704-.67z"/> - <path fill="#103900" d="M304.85 276.61l.703.67-.703-.67z"/> - <path fill="#296300" d="M305.56 276.61l.704.67-.704-.67m4.925 0l.703.67-.703-.67z"/> - <path fill="#294221" d="M311.18 276.61l.704.67-.704-.67z"/> - <path fill="#9c9494" d="M311.89 276.61l.703.67-.703-.67z"/> - <path fill="#7b7373" d="M318.92 276.61l.703.67-.703-.67z"/> - <path fill="#52525a" d="M319.63 276.61l.704.67-.704-.67z"/> - <path fill="#cecece" d="M320.33 276.61l.703.67-.703-.67z"/> - <path fill="#8c8c8c" d="M321.03 276.61l.703.67-.703-.67z"/> - <path fill="#314231" d="M321.74 276.61l.703.67-.703-.67z"/> - <path fill="#185200" d="M322.67 277.06l.235.446-.235-.446z"/> - <path fill="#296300" d="M323.14 276.61l.703.67-.703-.67z"/> - <path fill="#294221" d="M323.85 276.61l.703.67-.703-.67z"/> - <path fill="#bdbdbd" d="M324.55 276.61l.703.67-.703-.67z"/> - <path fill="#efefef" d="M193 277.28l.703.67-.703-.67z"/> - <path fill="#8c8c8c" d="M193.7 277.28l.704.67-.704-.67z"/> - <path fill="#5a5231" d="M194.4 277.28l.703.67-.703-.67z"/> - <path fill="#295200" d="M195.11 277.28l.703.67-.703-.67z"/> - <path fill="#5a6b52" d="M201.44 277.28l.703.67-.703-.67z"/> - <path fill="#526b42" d="M203.55 277.28l.703.67-.703-.67z"/> - <path fill="#213918" d="M207.07 277.28l.703.67-.703-.67z"/> - <path fill="#315221" d="M208.47 277.28l.703.67-.703-.67z"/> - <path fill="#295200" d="M210.58 277.28l.704.67-.704-.67z"/> - <path fill="#397b00" d="M211.29 277.28l.704.67-.704-.67z"/> - <path fill="#292100" d="M212.69 277.28l.703.67-.703-.67z"/> - <path fill="#397b00" d="M213.4 277.28l.704.67-.704-.67z"/> - <path fill="#295200" d="M216.21 277.28l.704.67-.704-.67z"/> - <path fill="#397b00" d="M216.92 277.28l.703.67-.703-.67m1.407 0l.703.67-.703-.67z"/> - <path fill="#ada5a5" d="M219.03 277.28l.704.67-.704-.67z"/> - <path fill="#ad1810" d="M228.87 277.28l.703.67-.703-.67z"/> - <path fill="#ce1810" d="M237.32 277.28l.703.67-.703-.67z"/> - <path fill="#8c8c8c" d="M238.02 277.28l.703.67-.703-.67z"/> - <path fill="#7b7373" d="M246.46 277.28l.703.67-.703-.67z"/> - <path fill="#efefef" d="M252.79 277.28l.704.67-.704-.67z"/> - <path fill="#b51010" d="M253.5 277.28l.704.67-.704-.67z"/> - <path fill="#ad0008" d="M257.72 277.28l.703.67-.703-.67z"/> - <path fill="#bd0008" d="M258.42 277.28l.704.67-.704-.67z"/> - <path fill="#7b0008" d="M259.12 277.28l.703.67-.703-.67z"/> - <path fill="#940008" d="M260.53 277.28l.704.67-.704-.67z"/> - <path fill="#dedede" d="M261.24 277.28l.703.67-.703-.67z"/> - <path fill="#a5847b" d="M269.68 277.28l-.704 1.34.704-1.34z"/> - <path fill="#ce1810" d="M270.38 277.28l.703.67-.703-.67z"/> - <path fill="#392121" d="M278.82 277.28l.703.67-.703-.67z"/> - <path fill="#103910" d="M287.97 277.28l.703.67-.703-.67z"/> - <path fill="#185200" d="M290.78 277.28l.703.67-.703-.67z"/> - <path fill="#efefef" d="M291.49 277.28l.704.67-.704-.67z"/> - <path fill="#6b735a" d="M292.19 277.28l.703.67-.703-.67z"/> - <path fill="#184a00" d="M298.05 277.73l.235.446-.235-.446z"/> - <path fill="#297b00" d="M300.63 277.28l1.407 1.34-1.407-1.34z"/> - <path fill="#103900" d="M301.33 277.28l.703.67-.703-.67m2.814 0l.703.67-.703-.67z"/> - <path fill="#297b00" d="M309.07 277.28l.703.67-.703-.67z"/> - <path fill="#214210" d="M309.78 277.28l.703.67-.703-.67z"/> - <path fill="#9c9494" d="M310.48 277.28l.703.67-.703-.67z"/> - <path fill="#bdbdbd" d="M316.58 277.51l.47.224-.47-.224z"/> - <path fill="#8c8c8c" d="M317.52 277.28l.703.67-.703-.67z"/> - <path fill="#6b735a" d="M318.22 277.28l.703.67-.703-.67z"/> - <path fill="#4a6342" d="M318.92 277.28l.703.67-.703-.67z"/> - <path fill="#184a00" d="M319.63 277.28l.704.67-.704-.67z"/> - <path fill="#296300" d="M320.33 277.28l.703.67-.703-.67z"/> - <path fill="#297b00" d="M321.03 277.28l-.703 1.34.703-1.34z"/> - <path fill="#319400" d="M321.74 277.28l.703.67-.703-.67z"/> - <path fill="#7b7373" d="M323.14 277.28l.703.67-.703-.67z"/> - <path fill="#efefef" d="M323.85 277.28l.703.67-.703-.67z"/> - <path fill="#dedede" d="M195.11 277.95l.703.67-.703-.67z"/> - <path fill="#8c8c8c" d="M195.81 277.95l.703.67-.703-.67z"/> - <path fill="#5a5231" d="M196.51 277.95l.704.67-.704-.67z"/> - <path fill="#295200" d="M197.22 277.95l.703.67-.703-.67m2.11 0l.704.67-.703-.67z"/> - <path fill="#315221" d="M201.44 277.95l.703.67-.703-.67z"/> - <path fill="#292100" d="M206.36 277.95l.703.67-.703-.67z"/> - <path fill="#8c8c8c" d="M207.07 277.95l.703.67-.703-.67z"/> - <path fill="#63636b" d="M207.77 277.95l.704.67-.704-.67z"/> - <path fill="#294200" d="M210.58 277.95l.704.67-.704-.67m2.11 0l.704.67-.704-.67z"/> - <path fill="#397b00" d="M215.51 277.95l.703.67-.703-.67z"/> - <path fill="#294200" d="M216.21 277.95l.704.67-.704-.67m2.11 0l.704.67-.704-.67z"/> - <path fill="#941808" d="M229.58 277.95l.703.67-.703-.67z"/> - <path fill="#b51010" d="M238.02 277.95l1.407 1.34-1.407-1.34z"/> - <path fill="#a59494" d="M238.72 277.95l.704.67-.704-.67z"/> - <path fill="#a51008" d="M253.5 277.95l.704.67-.704-.67z"/> - <path fill="#de2110" d="M258.42 277.95v9.371h2.11l-2.11-9.37z"/> - <path fill="#6b0808" d="M259.36 278.4l.235.446-.235-.446z"/> - <path fill="#ce0008" d="M260.53 277.95l.704.67-.704-.67z"/> - <path fill="#7b7373" d="M261.24 277.95l.703.67-.703-.67z"/> - <path fill="#ce1810" d="M269.68 277.95l.703.67-.703-.67z"/> - <path fill="#ad1810" d="M278.12 277.95l.703.67-.703-.67z"/> - <path fill="#5a6b52" d="M287.97 277.95l.703.67-.703-.67z"/> - <path fill="#185200" d="M288.67 277.95l.704.67-.704-.67z"/> - <path fill="#103910" d="M289.38 277.95l.704.67-.704-.67z"/> - <path fill="#297b00" d="M290.78 277.95l.703.67-.703-.67z"/> - <path fill="#9c9494" d="M291.49 277.95l.704.67-.704-.67z"/> - <path fill="#8c9c84" d="M292.42 278.4l.235.446-.235-.446z"/> - <path fill="#296300" d="M295 277.95l.703.67-.703-.67z"/> - <path fill="#297b00" d="M295.71 277.95l-.703 1.34.703-1.34z"/> - <path fill="#185200" d="M300.63 277.95l.703.67-.703-.67m2.11 0l-2.11 2.678 2.11-2.678z"/> - <path fill="#184a00" d="M303.45 277.95l.703.67-.703-.67z"/> - <path fill="#297b00" d="M307.67 277.95l.703.67-.703-.67z"/> - <path fill="#214210" d="M308.37 277.95l.704.67-.704-.67z"/> - <path fill="#8c8c8c" d="M309.07 277.95l.703.67-.703-.67z"/> - <path fill="#cecece" d="M309.78 277.95l.703.67-.703-.67z"/> - <path fill="#bdbdbd" d="M310.48 277.95l.703.67-.703-.67z"/> - <path fill="#8c8c8c" d="M311.65 278.17l.47.224-.47-.224z"/> - <path fill="#6b735a" d="M312.59 277.95l.703.67-.703-.67z"/> - <path fill="#4a6342" d="M313.29 277.95l.703.67-.703-.67z"/> - <path fill="#426331" d="M314 277.95l.704.67-.704-.67z"/> - <path fill="#184a00" d="M314.7 277.95l.703.67-.703-.67z"/> - <path fill="#185200" d="M315.4 277.95l.703.67-.703-.67z"/> - <path fill="#296300" d="M316.58 278.17l.47.224-.47-.224z"/> - <path fill="#184a00" d="M321.03 277.95l.703.67-.703-.67z"/> - <path fill="#63636b" d="M321.74 277.95l.703.67-.703-.67z"/> - <path fill="#dedede" d="M322.44 277.95l.704.67-.704-.67m-125.22.67l.703.67-.703-.67z"/> - <path fill="#52525a" d="M197.92 278.62l.703.67-.703-.67z"/> - <path fill="#103900" d="M198.62 278.62l.703.67-.703-.67z"/> - <path fill="#422100" d="M199.33 278.62l.704.67-.704-.67z"/> - <path fill="#294200" d="M200.03 278.62l1.407 1.34-1.407-1.34z"/> - <path fill="#397b00" d="M201.44 278.62l.703.67-.703-.67z"/> - <path fill="#bdbdbd" d="M202.14 278.62l.704.67-.704-.67z"/> - <path fill="#293129" d="M206.36 278.62l.703.67-.703-.67z"/> - <path fill="#dedede" d="M207.07 278.62l.703.67-.703-.67z"/> - <path fill="#295200" d="M207.77 278.62l.704.67-.704-.67z"/> - <path fill="#103900" d="M209.88 278.62l.703.67-.703-.67z"/> - <path fill="#295200" d="M212.69 278.62l.703.67-.703-.67z"/> - <path fill="#103900" d="M215.51 278.62l.703.67-.703-.67z"/> - <path fill="#5a6b52" d="M218.32 278.62l.703.67-.703-.67z"/> - <path fill="#ce2110" d="M229.58 278.62l.703.67-.703-.67z"/> - <path fill="#b51010" d="M230.28 278.62l1.407 2.008-1.407-2.008z"/> - <path fill="#8c7373" d="M239.43 278.62l.703.67-.703-.67z"/> - <path fill="#efefef" d="M240.13 278.62l.703.67-.703-.67z"/> - <path fill="#ad1810" d="M253.5 278.62l.704.67-.704-.67z"/> - <path fill="#a51008" d="M257.95 279.07l.235.446-.235-.446z"/> - <path fill="#6b2131" d="M261.24 278.62l.703.67-.703-.67z"/> - <path fill="#946b63" d="M268.27 278.62l.703.67-.703-.67z"/> - <path fill="#ce1810" d="M268.97 278.62l.704.67-.704-.67m8.442 0l-.704 1.34.704-1.34z"/> - <path fill="#00216b" d="M278.12 278.62l.703.67-.703-.67z"/> - <path fill="#8c8c8c" d="M287.97 278.62l.703.67-.703-.67z"/> - <path fill="#319400" d="M288.67 278.62l.704.67-.704-.67z"/> - <path fill="#103900" d="M289.38 278.62l.704.67-.704-.67z"/> - <path fill="#5a6b52" d="M291.49 278.62l.704.67-.704-.67z"/> - <path fill="#185200" d="M295.94 279.07l.235.446-.235-.446m1.876-.446l.704.67-.704-.67z"/> - <path fill="#297b00" d="M306.26 278.62l.703.67-.703-.67z"/> - <path fill="#184a00" d="M306.96 278.62l.703.67-.703-.67z"/> - <path fill="#001000" d="M307.67 278.62l.703.67-.703-.67z"/> - <path fill="#395231" d="M308.37 278.62l.704.67-.704-.67z"/> - <path fill="#184a00" d="M309.07 278.62l.703.67-.703-.67z"/> - <path fill="#185200" d="M309.78 278.62l.703.67-.703-.67z"/> - <path fill="#296300" d="M310.48 278.62l.703.67-.703-.67z"/> - <path fill="#297b00" d="M318.92 278.62l.703.67-.703-.67z"/> - <path fill="#184a00" d="M319.63 278.62l.704.67-.704-.67z"/> - <path fill="#63636b" d="M320.33 278.62l.703.67-.703-.67z"/> - <path fill="#dedede" d="M321.03 278.62l.703.67-.703-.67z"/> - <path fill="#8c8c8c" d="M197.92 279.29l.703.67-.703-.67z"/> - <path fill="#bd2110" d="M198.62 279.29l.703.67-.703-.67z"/> - <path fill="#ce2110" d="M200.03 279.29l.703.67-.703-.67z"/> - <path fill="#425242" d="M202.14 279.29l.704.67-.704-.67z"/> - <path fill="#397b00" d="M205.66 279.29l.703.67-.703-.67z"/> - <path fill="#ada5a5" d="M206.36 279.29l.703.67-.703-.67z"/> - <path fill="#8c8c8c" d="M207.07 279.29l.703.67-.703-.67z"/> - <path fill="#397b00" d="M209.65 279.51l.47.224-.47-.224m2.814 0l.47.224-.47-.224z"/> - <path fill="#103900" d="M214.8 279.29l.703.67-.703-.67z"/> - <path fill="#397b00" d="M217.62 279.29l.704.67-.704-.67z"/> - <path fill="#9c9494" d="M218.32 279.29l.703.67-.703-.67z"/> - <path fill="#ad1810" d="M240.13 279.29l.703.67-.703-.67z"/> - <path fill="#8c7373" d="M240.83 279.29l.703.67-.703-.67z"/> - <path fill="#efefef" d="M241.54 279.29l.704.67-.704-.67z"/> - <path fill="#943131" d="M253.73 279.74l.235.446-.235-.446z"/> - <path fill="#940008" d="M259.12 279.29l.703.67-.703-.67z"/> - <path fill="#ad0008" d="M259.83 279.29l.704.67-.704-.67z"/> - <path fill="#940008" d="M261.24 279.29l.703.67-.703-.67z"/> - <path fill="#cecece" d="M261.94 279.29l.703.67-.703-.67z"/> - <path fill="#a5847b" d="M266.86 279.29l.703.67-.703-.67z"/> - <path fill="#9c2118" d="M267.57 279.29l.703.67-.703-.67z"/> - <path fill="#00216b" d="M277.42 279.29l.704.67-.704-.67z"/> - <path fill="#bdbdbd" d="M288.2 279.74l.235.446-.235-.446z"/> - <path fill="#297b00" d="M288.67 279.29v.67h2.11v-.67h-2.11z"/> - <path fill="#185200" d="M289.38 279.29l.704.67-.704-.67z"/> - <path fill="#184a00" d="M291.49 279.29l.704.67-.704-.67z"/> - <path fill="#395231" d="M292.19 279.29l.703.67-.703-.67z"/> - <path fill="#184a00" d="M297.82 279.29l.703.67-.703-.67m7.738 0l.704.67-.704-.67z"/> - <path fill="#082108" d="M306.26 279.29l.703.67-.703-.67z"/> - <path fill="#185200" d="M306.96 279.29l.703.67-.703-.67z"/> - <path fill="#297b00" d="M317.52 279.29l.703.67-.703-.67z"/> - <path fill="#214210" d="M318.22 279.29l.703.67-.703-.67z"/> - <path fill="#63636b" d="M318.92 279.29l.703.67-.703-.67z"/> - <path fill="#dedede" d="M319.63 279.29l.704.67-.704-.67z"/> - <path fill="#52525a" d="M197.92 279.96l.703.67-.703-.67z"/> - <path fill="#422100" d="M200.73 279.96l.703.67-.703-.67z"/> - <path fill="#295200" d="M202.14 279.96l.704.67-.704-.67z"/> - <path fill="#bdbdbd" d="M202.85 279.96l.703.67-.703-.67z"/> - <path fill="#214210" d="M205.66 279.96l.703.67-.703-.67z"/> - <path fill="#314231" d="M207.07 279.96l.703.67-.703-.67z"/> - <path fill="#294200" d="M209.18 279.96l.703.67-.703-.67z"/> - <path fill="#103900" d="M211.99 279.96l.703.67-.703-.67z"/> - <path fill="#294200" d="M214.1 279.96l.704.67-.704-.67z"/> - <path fill="#397b00" d="M214.8 279.96l.703.67-.703-.67z"/> - <path fill="#396b10" d="M217.62 279.96l.704.67-.704-.67z"/> - <path fill="#efefef" d="M218.32 279.96l.703.67-.703-.67z"/> - <path fill="#a51008" d="M231.69 279.96l.703.67-.703-.67m9.85 0l.702.67-.703-.67z"/> - <path fill="#9c2929" d="M242.24 279.96l.703.67-.703-.67z"/> - <path fill="#845a52" d="M242.94 279.96l.703.67-.703-.67z"/> - <path fill="#a59494" d="M243.65 279.96l.703.67-.703-.67z"/> - <path fill="#c6b5b5" d="M244.35 279.96l.704.67-.704-.67z"/> - <path fill="#8c7373" d="M245.52 280.18l.47.224-.47-.224z"/> - <path fill="#212139" d="M246.46 279.96l.703.67-.703-.67z"/> - <path fill="#b51010" d="M257.72 279.96l.703.67-.703-.67z"/> - <path fill="#ce0008" d="M259.12 279.96l.703.67-.703-.67z"/> - <path fill="#6b0808" d="M259.83 279.96l.704.67-.704-.67z"/> - <path fill="#ce0008" d="M261.24 279.96l.703.67-.703-.67z"/> - <path fill="#734a42" d="M261.94 279.96l.703.67-.703-.67z"/> - <path fill="#946b63" d="M262.64 279.96l.703.67-.703-.67z"/> - <path fill="#bd8c8c" d="M263.35 279.96l.704.67-.704-.67z"/> - <path fill="#a5847b" d="M264.05 279.96l.703.67-.703-.67z"/> - <path fill="#9c5a52" d="M264.75 279.96l.703.67-.703-.67z"/> - <path fill="#ad3931" d="M265.46 279.96l.703.67-.703-.67z"/> - <path fill="#b51010" d="M266.16 279.96l.704.67-.704-.67m9.85 0l.702.67-.703-.67z"/> - <path fill="#00216b" d="M276.71 279.96l.703.67-.703-.67z"/> - <path fill="#296300" d="M288.67 279.96l.704.67-.704-.67z"/> - <path fill="#103900" d="M290.31 280.41l.235.446-.235-.446z"/> - <path fill="#297b00" d="M291.49 279.96l.704.67-.704-.67z"/> - <path fill="#082108" d="M292.19 279.96l.703.67-.703-.67z"/> - <path fill="#184a00" d="M295.71 279.96v2.008h.704l-.704-2.008z"/> - <path fill="#103900" d="M304.85 279.96l.703.67-.703-.67z"/> - <path fill="#297b00" d="M315.4 279.96l.703.67-.703-.67z"/> - <path fill="#185200" d="M316.11 279.96l.703.67-.703-.67z"/> - <path fill="#425242" d="M316.81 279.96l.704.67-.704-.67z"/> - <path fill="#9c9494" d="M317.52 279.96l.703.67-.703-.67z"/> - <path fill="#efefef" d="M318.22 279.96l.703.67-.703-.67z"/> - <path fill="#ada5a5" d="M197.92 280.63l.703.67-.703-.67z"/> - <path fill="#7b1008" d="M198.62 280.63l.703.67-.703-.67z"/> - <path fill="#941808" d="M200.03 280.63l.703.67-.703-.67z"/> - <path fill="#213918" d="M200.73 280.63l.703.67-.703-.67z"/> - <path fill="#314231" d="M202.85 280.63l.703.67-.703-.67z"/> - <path fill="#5a6b52" d="M205.66 280.63l.703.67-.703-.67z"/> - <path fill="#efefef" d="M206.36 280.63l.703.67-.703-.67z"/> - <path fill="#295200" d="M207.07 280.63l.703.67-.703-.67m2.11 0l.704.67-.704-.67m2.11 0l-1.406 2.678h.703l.704-2.678z"/> - <path fill="#397b00" d="M211.99 280.63l.703.67-.703-.67z"/> - <path fill="#295200" d="M213.87 280.85l.47.224-.47-.224z"/> - <path fill="#397b00" d="M216.92 280.63l.703.67-.703-.67z"/> - <path fill="#8c8c8c" d="M217.62 280.63l.704.67-.704-.67z"/> - <path fill="#ce2110" d="M231.69 280.63l.703.67-.703-.67z"/> - <path fill="#941808" d="M232.39 280.63l.703.67-.703-.67z"/> - <path fill="#7b1008" d="M246.46 280.63l.703.67-.703-.67z"/> - <path fill="#8c6363" d="M253.5 280.63l.704.67-.704-.67z"/> - <path fill="#a51008" d="M257.95 281.08l.235.446-.235-.446z"/> - <path fill="#520808" d="M259.83 280.63l.704.67-.704-.67z"/> - <path fill="#ad1810" d="M261.94 280.63l.703.67-.703-.67z"/> - <path fill="#7b1008" d="M275.31 280.63l.703.67-.703-.67z"/> - <path fill="#002984" d="M276.01 280.63l.703.67-.703-.67z"/> - <path fill="#185200" d="M288.67 280.63l.704.67-.704-.67z"/> - <path fill="#103900" d="M292.19 280.63l.703.67-.703-.67z"/> - <path fill="#297b00" d="M300.63 280.63l.703.67-.703-.67z"/> - <path fill="#296300" d="M303.45 280.63l.703.67-.703-.67z"/> - <path fill="#103900" d="M304.15 280.63l.703.67-.703-.67z"/> - <path fill="#297b00" d="M314 280.63l.704.67-.704-.67z"/> - <path fill="#214210" d="M314.7 280.63l.703.67-.703-.67z"/> - <path fill="#7b7373" d="M315.4 280.63l.703.67-.703-.67z"/> - <path fill="#dedede" d="M316.11 280.63l.703.67-.703-.67z"/> - <path fill="#cecece" d="M198.62 281.3l.703.67-.703-.67z"/> - <path fill="#8c8c8c" d="M199.33 281.3l.704.67-.704-.67z"/> - <path fill="#bdbdbd" d="M200.03 281.3l.703.67-.703-.67z"/> - <path fill="#cecece" d="M200.73 281.3l.703.67-.703-.67z"/> - <path fill="#294200" d="M201.44 281.3l.703.67-.703-.67z"/> - <path fill="#397b00" d="M202.85 281.3l.703.67-.703-.67z"/> - <path fill="#292921" d="M203.55 281.3l.703.67-.703-.67z"/> - <path fill="#8c8c8c" d="M205.66 281.3l.703.67-.703-.67z"/> - <path fill="#bdbdbd" d="M206.36 281.3l.703.67-.703-.67z"/> - <path fill="#397b00" d="M207.07 281.3l.703.67-.703-.67z"/> - <path fill="#294200" d="M211.29 281.3l.704.67-.704-.67z"/> - <path fill="#103900" d="M212.69 281.3l.703.67-.703-.67z"/> - <path fill="#397b00" d="M213.4 281.3l.704.67-.704-.67z"/> - <path fill="#314231" d="M216.92 281.3l-1.407 2.008 1.407-2.008z"/> - <path fill="#ad1810" d="M233.1 281.3l.704.67-.704-.67z"/> - <path fill="#941808" d="M233.8 281.3l.703.67-.703-.67z"/> - <path fill="#a51008" d="M246.46 281.3l.703.67-.703-.67z"/> - <path fill="#8c7373" d="M253.5 281.3l.704.67-.704-.67z"/> - <path fill="#6b0808" d="M259.83 281.3l.704.67-.704-.67z"/> - <path fill="#b51010" d="M261.94 281.3l.703.67-.703-.67z"/> - <path fill="#ad1810" d="M273.9 281.3l.703.67-.703-.67z"/> - <path fill="#291029" d="M274.6 281.3l.704.67-.704-.67z"/> - <path fill="#29396b" d="M287.26 281.3l.703.67-.703-.67z"/> - <path fill="#184a00" d="M288.67 281.3l.704.67-.704-.67z"/> - <path fill="#296300" d="M290.08 281.3l.703.67-.703-.67z"/> - <path fill="#297b00" d="M290.78 281.3l.703.67-.703-.67z"/> - <path fill="#184a00" d="M292.19 281.3l.703.67-.703-.67m10.552 0l.704.67-.704-.67z"/> - <path fill="#185200" d="M303.45 281.3l.703.67-.703-.67z"/> - <path fill="#297b00" d="M309.07 281.3l1.407 1.34-1.407-1.34z"/> - <path fill="#185200" d="M309.78 281.3l.703.67-.703-.67z"/> - <path fill="#184a00" d="M310.48 281.3v.67h2.814l-2.814-.67z"/> - <path fill="#185200" d="M313.29 281.3l.703.67-.703-.67z"/> - <path fill="#296300" d="M314 281.3l.704.67-.704-.67z"/> - <path fill="#184a00" d="M314.7 281.3v.67h2.11l-2.11-.67z"/> - <path fill="#4a6342" d="M316.81 281.3v.67h2.11l-2.11-.67z"/> - <path fill="#7b8c73" d="M318.92 281.3l.703.67-.703-.67z"/> - <path fill="#8c8c8c" d="M319.63 281.3l.704.67-.704-.67z"/> - <path fill="#bdbdbd" d="M320.33 281.3l.703.67-.703-.67z"/> - <path fill="#efefef" d="M198.62 281.97l.703.67-.703-.67z"/> - <path fill="#7b7373" d="M201.44 281.97l.703.67-.703-.67z"/> - <path fill="#294200" d="M203.55 281.97l.703.67-.703-.67z"/> - <path fill="#295200" d="M204.96 281.97l.704.67-.704-.67z"/> - <path fill="#5a1008" d="M205.66 281.97l.703.67-.703-.67z"/> - <path fill="#733939" d="M206.36 281.97l.703.67-.703-.67z"/> - <path fill="#397b00" d="M211.29 281.97l.704.67-.704-.67z"/> - <path fill="#103900" d="M211.99 281.97l.703.67-.703-.67z"/> - <path fill="#efefef" d="M216.92 281.97l-.704 1.34.704-1.34z"/> - <path fill="#b51010" d="M234.5 281.97l.703.67-.703-.67z"/> - <path fill="#941808" d="M235.21 281.97l.703.67-.703-.67z"/> - <path fill="#b51010" d="M235.91 281.97l1.407 1.34-1.407-1.34z"/> - <path fill="#ce1810" d="M246.46 281.97l.703.67-.703-.67z"/> - <path fill="#00216b" d="M247.17 281.97l.704.67-.704-.67z"/> - <path fill="#425a84" d="M249.98 281.97l.704.67-.704-.67z"/> - <path fill="#b5adad" d="M253.5 281.97l.704.67-.704-.67z"/> - <path fill="#b51010" d="M257.72 281.97l.703.67-.703-.67z"/> - <path fill="#940008" d="M260.3 282.19l.47.224-.47-.224z"/> - <path fill="#ad0008" d="M261.24 281.97l.703.67-.703-.67z"/> - <path fill="#ad1810" d="M261.94 281.97l1.407 1.34-1.407-1.34z"/> - <path fill="#ce1810" d="M271.79 281.97l.704.67-.704-.67z"/> - <path fill="#ad1810" d="M272.49 281.97l.703.67-.703-.67z"/> - <path fill="#00184a" d="M273.19 281.97l.703.67-.703-.67z"/> - <path fill="#42425a" d="M287.26 281.97l.703.67-.703-.67z"/> - <path fill="#396321" d="M288.67 281.97l.704.67-.704-.67z"/> - <path fill="#184a00" d="M290.78 281.97v2.008h.703l-.703-2.008z"/> - <path fill="#296300" d="M292.19 281.97l.703.67-.703-.67z"/> - <path fill="#297b00" d="M292.89 281.97l-.703 1.34.703-1.34z"/> - <path fill="#296300" d="M295.71 281.97v3.347h1.407l-1.407-3.347z"/> - <path fill="#297b00" d="M296.41 281.97l.703.67-.703-.67z"/> - <path fill="#103900" d="M302.04 281.97l-1.407 2.008 1.407-2.008z"/> - <path fill="#297b00" d="M302.74 281.97l.704.67-.704-.67z"/> - <path fill="#296300" d="M307.9 282.41l.235.446-.235-.446z"/> - <path fill="#103900" d="M308.37 281.97l.704.67-.704-.67z"/> - <path fill="#185200" d="M309.07 281.97l.703.67-.703-.67z"/> - <path fill="#297b00" d="M318.92 281.97l.703.67-.703-.67z"/> - <path fill="#184a00" d="M319.63 281.97l.704.67-.704-.67z"/> - <path fill="#313931" d="M320.33 281.97l.703.67-.703-.67z"/> - <path fill="#8c8c8c" d="M198.62 282.64l.703.67-.703-.67z"/> - <path fill="#63636b" d="M199.33 282.64l.704.67-.704-.67z"/> - <path fill="#efefef" d="M200.03 282.64l.703.67-.703-.67z"/> - <path fill="#cecece" d="M201.44 282.64l.703.67-.703-.67z"/> - <path fill="#295200" d="M202.14 282.64l.704.67-.704-.67z"/> - <path fill="#397b00" d="M204.49 283.08l.235.446-.235-.446z"/> - <path fill="#7b1008" d="M204.96 282.64l.704.67-.704-.67z"/> - <path fill="#de2110" d="M205.89 283.08l.235.446-.235-.446z"/> - <path fill="#631808" d="M206.6 283.08l.235.446-.235-.446z"/> - <path fill="#294200" d="M209.18 282.64l.703.67-.703-.67z"/> - <path fill="#397b00" d="M214.8 282.64l.703.67-.703-.67z"/> - <path fill="#946b63" d="M220.43 282.64l.704.67-.704-.67z"/> - <path fill="#bd2110" d="M235.91 282.64l.704.67-.704-.67z"/> - <path fill="#941808" d="M237.32 282.64l.703.67-.703-.67z"/> - <path fill="#ad1810" d="M238.02 282.64l.703.67-.703-.67z"/> - <path fill="#a51008" d="M238.72 282.64l.704.67-.704-.67z"/> - <path fill="#ce1810" d="M239.43 282.64v.67h5.628l-5.628-.67z"/> - <path fill="#941808" d="M245.06 282.64l.703.67-.703-.67z"/> - <path fill="#a51008" d="M245.76 282.64l.703.67-.703-.67z"/> - <path fill="#ad1810" d="M246.46 282.64l.703.67-.703-.67z"/> - <path fill="#00184a" d="M247.17 282.64l.704.67-.704-.67m3.05.446l.233.446-.235-.446z"/> - <path fill="#bdbdbd" d="M253.5 282.64l.704.67-.704-.67z"/> - <path fill="#ce1810" d="M254.43 283.08l.235.446-.235-.446z"/> - <path fill="#000818" d="M260.53 282.64l.704.67-.704-.67z"/> - <path fill="#00184a" d="M261.24 282.64l.703.67-.703-.67z"/> - <path fill="#080829" d="M261.94 282.64l.703.67-.703-.67z"/> - <path fill="#ce1810" d="M263.35 282.64l.704.67-.704-.67z"/> - <path fill="#b51010" d="M268.97 282.64l.704.67-.704-.67z"/> - <path fill="#ad1810" d="M269.68 282.64l.703.67-.703-.67z"/> - <path fill="#5a1021" d="M270.38 282.64l.703.67-.703-.67z"/> - <path fill="#00215a" d="M271.08 282.64l.703.67-.703-.67z"/> - <path fill="#292921" d="M287.26 282.64l.703.67-.703-.67z"/> - <path fill="#5a7b42" d="M288.67 282.64l.704.67-.704-.67z"/> - <path fill="#185200" d="M292.89 282.64l.704.67-.704-.67z"/> - <path fill="#297b00" d="M302.04 282.64l.704.67-.704-.67m3.518 0l1.407 1.34-1.407-1.34z"/> - <path fill="#185200" d="M306.26 282.64l.703.67-.703-.67z"/> - <path fill="#103900" d="M306.96 282.64l.703.67-.703-.67z"/> - <path fill="#297b00" d="M315.4 282.64l.703.67-.703-.67z"/> - <path fill="#296300" d="M316.11 282.64l.703.67-.703-.67z"/> - <path fill="#185200" d="M316.81 282.64l.704.67-.704-.67z"/> - <path fill="#395231" d="M317.52 282.64l.703.67-.703-.67z"/> - <path fill="#63636b" d="M318.22 282.64l.703.67-.703-.67z"/> - <path fill="#9c9494" d="M318.92 282.64l.703.67-.703-.67z"/> - <path fill="#dedede" d="M319.63 282.64l.704.67-.704-.67z"/> - <path fill="#9c9494" d="M198.62 283.31l.703.67-.703-.67z"/> - <path fill="#397b00" d="M199.33 283.31l.704.67-.704-.67z"/> - <path fill="#294200" d="M200.03 283.31l.703.67-.703-.67z"/> - <path fill="#6b735a" d="M200.73 283.31l.703.67-.703-.67z"/> - <path fill="#bdbdbd" d="M201.44 283.31l.703.67-.703-.67z"/> - <path fill="#5a5231" d="M202.14 283.31l.704.67-.704-.67z"/> - <path fill="#ad1810" d="M204.96 283.31l.704.67-.704-.67z"/> - <path fill="#397b00" d="M208.94 283.53l.47.224-.47-.224z"/> - <path fill="#396b10" d="M214.1 283.31l.704.67-.704-.67z"/> - <path fill="#b51010" d="M239.43 283.31l.703.67-.703-.67zm4.92 0l.704.67-.704-.67z"/> - <path fill="#391810" d="M247.17 283.31l.704.67-.704-.67z"/> - <path fill="#dedede" d="M253.5 283.31l.704.67-.704-.67z"/> - <path fill="#291029" d="M260.53 283.31l.704.67-.704-.67z"/> - <path fill="#002984" d="M264.05 283.31v.67h4.924l-4.924-.67z"/> - <path fill="#082108" d="M287.26 283.31l.703.67-.703-.67z"/> - <path fill="#ada5a5" d="M287.97 283.31l.703.67-.703-.67z"/> - <path fill="#4a6342" d="M288.91 283.75l.235.446-.235-.446z"/> - <path fill="#184a00" d="M293.13 283.75l.235.446-.235-.446z"/> - <path fill="#297b00" d="M301.33 283.31l.703.67-.703-.67z"/> - <path fill="#185200" d="M304.85 283.31l.703.67-.703-.67z"/> - <path fill="#103900" d="M305.56 283.31l.704.67-.704-.67z"/> - <path fill="#297b00" d="M311.89 283.31l.703.67-.703-.67z"/> - <path fill="#296300" d="M312.59 283.31l.703.67-.703-.67z"/> - <path fill="#184a00" d="M313.29 283.31l.703.67-.703-.67z"/> - <path fill="#4a6342" d="M314 283.31l.704.67-.704-.67z"/> - <path fill="#8c8c8c" d="M314.7 283.31l.703.67-.703-.67z"/> - <path fill="#9c9494" d="M315.4 283.31l.703.67-.703-.67z"/> - <path fill="#bdbdbd" d="M316.11 283.31l.703.67-.703-.67z"/> - <path fill="#cecece" d="M198.62 283.98l.703.67-.703-.67z"/> - <path fill="#295200" d="M199.33 283.98l.704.67-.704-.67z"/> - <path fill="#292100" d="M200.03 283.98l.703.67-.703-.67z"/> - <path fill="#397b00" d="M200.73 283.98l1.407 1.34v-1.34h-1.407z"/> - <path fill="#292100" d="M202.14 283.98l.704.67-.704-.67z"/> - <path fill="#397b00" d="M202.85 283.98l.703.67-.703-.67z"/> - <path fill="#392100" d="M204.96 283.98l.704.67-.704-.67z"/> - <path fill="#b51010" d="M205.66 283.98l.703.67-.703-.67z"/> - <path fill="#5a2908" d="M206.36 283.98l.703.67-.703-.67z"/> - <path fill="#294200" d="M208.47 283.98l.703.67-.703-.67z"/> - <path fill="#214210" d="M212.69 283.98l.703.67-.703-.67z"/> - <path fill="#63636b" d="M213.4 283.98l.704.67-.704-.67z"/> - <path fill="#dedede" d="M214.1 283.98l.704.67-.704-.67z"/> - <path fill="#ad1810" d="M247.17 283.98l.704.67-.704-.67z"/> - <path fill="#00215a" d="M247.87 283.98l.703.67-.703-.67m2.11 0l.704.67-.703-.67z"/> - <path fill="#dedede" d="M250.68 283.98l.703.67-.703-.67z"/> - <path fill="#a51008" d="M254.2 283.98l.703.67-.703-.67z"/> - <path fill="#390821" d="M260.53 283.98l.704.67-.704-.67z"/> - <path fill="#184a00" d="M287.26 283.98l1.407 1.34-1.407-1.34z"/> - <path fill="#5a6b52" d="M287.97 283.98l.703.67-.703-.67z"/> - <path fill="#185200" d="M290.78 283.98l.703.67-.703-.67z"/> - <path fill="#297b00" d="M291.49 283.98l-.703 1.34.703-1.34z"/> - <path fill="#185200" d="M299.22 285.98l2.11-2.008-2.11 2.008z"/> - <path fill="#297b00" d="M303.45 283.98l1.407 1.34-1.407-1.34z"/> - <path fill="#103900" d="M304.15 283.98l.703.67-.703-.67z"/> - <path fill="#296300" d="M304.85 283.98l.703.67-.703-.67m5.628 0l.703.67-.702-.67z"/> - <path fill="#315221" d="M311.18 283.98l.704.67-.704-.67z"/> - <path fill="#8c8c8c" d="M311.89 283.98l.703.67-.703-.67z"/> - <path fill="#bdbdbd" d="M312.59 283.98l.703.67-.703-.67z"/> - <path fill="#dedede" d="M190.89 284.65l.704.67-.704-.67z"/> - <path fill="#efefef" d="M191.59 284.65l.703.67-.703-.67z"/> - <path fill="#315221" d="M199.33 284.65l.704.67-.704-.67z"/> - <path fill="#103900" d="M200.73 284.65l.703.67-.703-.67z"/> - <path fill="#295200" d="M202.85 284.65l.703.67-.703-.67z"/> - <path fill="#294200" d="M203.55 284.65l.703 2.008h.704l-1.407-2.008z"/> - <path fill="#397b00" d="M205.66 284.65l.703.67-.703-.67z"/> - <path fill="#103900" d="M206.36 284.65l.703.67-.703-.67z"/> - <path fill="#397b00" d="M208.24 284.87l.47.224-.47-.224m2.345-.223l.704.67-.705-.67z"/> - <path fill="#315221" d="M211.29 284.65l.704.67-.704-.67z"/> - <path fill="#8c8c8c" d="M211.99 284.65l.703.67-.703-.67z"/> - <path fill="#dedede" d="M212.69 284.65l.703.67-.703-.67z"/> - <path fill="#391810" d="M247.87 284.65l.703.67-.703-.67z"/> - <path fill="#00216b" d="M249.98 284.65l.704.67-.704-.67z"/> - <path fill="#bdbdbd" d="M250.68 284.65l.703.67-.703-.67z"/> - <path fill="#ad1810" d="M254.2 284.65l.703.67-.703-.67z"/> - <path fill="#b51010" d="M257.72 284.65l.703.67-.703-.67z"/> - <path fill="#6b0808" d="M260.53 284.65l.704.67-.704-.67z"/> - <path fill="#395231" d="M288.67 284.65l.704.67-.704-.67z"/> - <path fill="#296300" d="M291.49 284.65l.704.67-.704-.67z"/> - <path fill="#185200" d="M292.89 284.65l.704.67-.704-.67z"/> - <path fill="#297b00" d="M293.6 284.65l-.704 1.34.704-1.34z"/> - <path fill="#296300" d="M302.74 284.65l.704.67-.704-.67z"/> - <path fill="#103900" d="M303.45 284.65l.703.67-.703-.67z"/> - <path fill="#185200" d="M309.07 284.65l.703.67-.703-.67z"/> - <path fill="#425242" d="M309.78 284.65l.703.67-.703-.67z"/> - <path fill="#9c9494" d="M310.48 284.65l.703.67-.703-.67z"/> - <path fill="#8c8c8c" d="M190.89 285.32l.704.67-.704-.67z"/> - <path fill="#293129" d="M191.59 285.32l.703.67-.703-.67z"/> - <path fill="#8c8c8c" d="M192.29 285.32l.703.67-.703-.67z"/> - <path fill="#bdbdbd" d="M193 285.32l.703.67-.703-.67z"/> - <path fill="#efefef" d="M193.7 285.32l.704.67-.704-.67z"/> - <path fill="#8c8c8c" d="M199.33 285.32l.704.67-.704-.67z"/> - <path fill="#295200" d="M201.44 285.32l.703.67-.703-.67z"/> - <path fill="#294200" d="M202.14 285.32l.704.67-.704-.67z"/> - <path fill="#397b00" d="M203.55 285.32l.703.67-.703-.67z"/> - <path fill="#294200" d="M207.77 285.32l.704.67-.704-.67z"/> - <path fill="#295200" d="M209.88 285.32l.703.67-.703-.67z"/> - <path fill="#8c8c8c" d="M210.58 285.32l.704.67-.704-.67z"/> - <path fill="#9c9494" d="M211.99 285.32l.703.67-.703-.67z"/> - <path fill="#314231" d="M212.69 285.32l.703.67-.703-.67z"/> - <path fill="#dedede" d="M218.32 285.32l.703.67-.703-.67z"/> - <path fill="#bdbdbd" d="M219.03 285.32l.704.67-.704-.67z"/> - <path fill="#bd2110" d="M223.25 285.32l.703.67-.703-.67z"/> - <path fill="#10214a" d="M248.57 285.32l.703.67-.703-.67z"/> - <path fill="#9c9494" d="M250.68 285.32l.703.67-.703-.67z"/> - <path fill="#943131" d="M254.43 285.76l.235.446-.235-.446z"/> - <path fill="#a51008" d="M257.72 285.32l.703.67-.703-.67z"/> - <path fill="#297b00" d="M287.97 285.32l.703.67-.703-.67z"/> - <path fill="#082108" d="M288.67 285.32l.704.67-.704-.67z"/> - <path fill="#184a00" d="M291.72 285.76l.235.446-.235-.446z"/> - <path fill="#296300" d="M293.6 285.32l.703.67-.703-.67z"/> - <path fill="#297b00" d="M296.18 285.54l.47.224-.47-.224m2.345-.223l.703.67-.703-.67z"/> - <path fill="#184a00" d="M302.04 285.32l.704.67-.704-.67z"/> - <path fill="#185200" d="M302.74 285.32l.704.67-.704-.67z"/> - <path fill="#297b00" d="M307.67 285.32l.703.67-.703-.67z"/> - <path fill="#294221" d="M308.37 285.32l.704.67-.704-.67z"/> - <path fill="#bdbdbd" d="M309.07 285.32l.703.67-.703-.67z"/> - <path fill="#cecece" d="M190.89 285.98l.704.67-.704-.67z"/> - <path fill="#295200" d="M191.59 285.98l.703.67-.703-.67zm2.11 0l.704.67-.704-.67z"/> - <path fill="#294200" d="M194.87 286.21l.47.224-.47-.224z"/> - <path fill="#526b42" d="M195.81 285.98l.703.67-.703-.67z"/> - <path fill="#5a6b52" d="M196.51 285.98l.704.67-.704-.67z"/> - <path fill="#8c8c8c" d="M197.22 285.98l.703.67-.703-.67z"/> - <path fill="#bdbdbd" d="M197.92 285.98l.703.67-.703-.67z"/> - <path fill="#dedede" d="M198.62 285.98l.703.67-.703-.67z"/> - <path fill="#efefef" d="M199.33 285.98l.704.67-.704-.67z"/> - <path fill="#315221" d="M200.03 285.98l-.704 1.34.704-1.34z"/> - <path fill="#397b00" d="M202.14 285.98l.704.67-.704-.67z"/> - <path fill="#103900" d="M202.85 285.98l.703.67-.703-.67z"/> - <path fill="#295200" d="M207.77 285.98l.704.67-.704-.67z"/> - <path fill="#397b00" d="M209.18 285.98l.703.67-.703-.67z"/> - <path fill="#ada5a5" d="M209.88 285.98l.703.67-.703-.67z"/> - <path fill="#5a6b52" d="M211.99 285.98l.703.67-.703-.67z"/> - <path fill="#397b00" d="M212.69 285.98v2.678h.703l-.703-2.678z"/> - <path fill="#63636b" d="M213.4 285.98l.704.67-.704-.67z"/> - <path fill="#ada5a5" d="M218.32 285.98l.703.67-.703-.67z"/> - <path fill="#213918" d="M219.03 285.98l1.407 1.34-1.407-1.34z"/> - <path fill="#cecece" d="M219.73 285.98l.703.67-.703-.67z"/> - <path fill="#941808" d="M222.54 285.98l-1.407 2.008 1.407-2.008z"/> - <path fill="#181000" d="M223.25 285.98l.703.67-.703-.67z"/> - <path fill="#8c8c8c" d="M248.57 285.98l.703.67-.703-.67z"/> - <path fill="#00216b" d="M249.28 285.98l.703.67-.703-.67z"/> - <path fill="#8c8c8c" d="M250.68 285.98l.703.67-.703-.67z"/> - <path fill="#b51010" d="M257.72 285.98l.703.67-.703-.67z"/> - <path fill="#319400" d="M287.97 285.98v2.008h.703l-.703-2.008z"/> - <path fill="#103900" d="M288.67 285.98l.704.67-.704-.67z"/> - <path fill="#184a00" d="M293.83 286.43l.235.446-.235-.446z"/> - <path fill="#297b00" d="M299.22 287.99l3.518-2.008-3.518 2.008z"/> - <path fill="#103900" d="M301.33 285.98l.703.67-.703-.67z"/> - <path fill="#296300" d="M306.96 285.98l.703.67-.703-.67z"/> - <path fill="#52525a" d="M307.67 285.98l.703.67-.703-.67z"/> - <path fill="#efefef" d="M308.37 285.98l.704.67-.704-.67z"/> - <path fill="#315221" d="M191.59 286.65l.703.67-.703-.67z"/> - <path fill="#397b00" d="M197.92 286.65l.703.67-.703-.67z"/> - <path fill="#295200" d="M198.62 286.65l.703.67-.703-.67z"/> - <path fill="#52525a" d="M200.03 286.65l.703.67-.703-.67z"/> - <path fill="#295200" d="M200.73 286.65l2.11 2.008-2.11-2.008z"/> - <path fill="#294200" d="M203.55 286.65l.703.67-.703-.67z"/> - <path fill="#103900" d="M204.96 286.65l.704.67-.704-.67z"/> - <path fill="#52525a" d="M209.18 286.65l.703.67-.703-.67z"/> - <path fill="#dedede" d="M211.29 286.65l.704.67-.704-.67z"/> - <path fill="#294200" d="M211.99 286.65l.703.67-.703-.67z"/> - <path fill="#428c00" d="M212.69 286.65l.703.67-.703-.67z"/> - <path fill="#8c8c8c" d="M214.1 286.65l.704.67-.704-.67z"/> - <path fill="#63636b" d="M218.32 286.65l.703.67-.703-.67z"/> - <path fill="#428c00" d="M219.03 286.65c-2.28 4.675-4.734 9.722 1.407 12.718 0-3.93 1.482-9.69-1.407-12.718z"/> - <path fill="#bd2110" d="M221.14 286.65l.703.67-.703-.67z"/> - <path fill="#295200" d="M222.54 286.65l.703.67-.703-.67z"/> - <path fill="#397b00" d="M223.25 286.65l-.703 1.34h1.407l-.704-1.34z"/> - <path fill="#b51010" d="M223.95 286.65l.704.67-.704-.67z"/> - <path fill="#31394a" d="M249.28 286.65l.703.67-.703-.67z"/> - <path fill="#525a6b" d="M250.68 286.65l.703.67-.703-.67z"/> - <path fill="#8c7373" d="M254.43 287.1l.235.446-.235-.446z"/> - <path fill="#a51008" d="M257.72 286.65l.703.67-.703-.67z"/> - <path fill="#002984" d="M286.09 287.1l.235.446-.235-.446z"/> - <path fill="#00216b" d="M286.56 286.65l.704.67-.704-.67z"/> - <path fill="#001000" d="M287.26 286.65l.703.67-.703-.67z"/> - <path fill="#184a00" d="M288.67 286.65l.704.67-.704-.67z"/> - <path fill="#185200" d="M291.49 286.65l.704.67-.704-.67z"/> - <path fill="#297b00" d="M296.41 286.65l-.704 1.34.704-1.34z"/> - <path fill="#103900" d="M300.63 286.65l.703.67-.703-.67z"/> - <path fill="#297b00" d="M305.56 286.65l.704.67-.704-.67z"/> - <path fill="#103900" d="M306.26 286.65l.703.67-.703-.67z"/> - <path fill="#7b7373" d="M306.96 286.65l.703.67-.703-.67z"/> - <path fill="#ada5a5" d="M307.67 286.65l.703.67-.703-.67z"/> - <path fill="#8c8c8c" d="M308.84 286.88l.47.224-.47-.224z"/> - <path fill="#4a6342" d="M310.25 286.88l.47.224-.47-.224z"/> - <path fill="#295210" d="M311.18 286.65l.704.67-.704-.67z"/> - <path fill="#184a00" d="M311.89 286.65l.703.67-.703-.67z"/> - <path fill="#296300" d="M312.59 286.65v.67h3.518l-3.518-.67z"/> - <path fill="#184a00" d="M316.11 286.65l.703.67-.703-.67z"/> - <path fill="#082108" d="M316.81 286.65l.704.67-.704-.67z"/> - <path fill="#313931" d="M317.52 286.65l.703.67-.703-.67z"/> - <path fill="#63636b" d="M318.22 286.65l.703.67-.703-.67z"/> - <path fill="#9c9494" d="M318.92 286.65l.703.67-.703-.67m-127.33.67l.703.67-.703-.67z"/> - <path fill="#295200" d="M193.7 287.32l.704.67-.704-.67z"/> - <path fill="#294200" d="M194.87 287.55l.47.224-.47-.224z"/> - <path fill="#397b00" d="M196.04 287.77l.235.446-.235-.446z"/> - <path fill="#292100" d="M200.73 287.32l.703.67-.703-.67z"/> - <path fill="#397b00" d="M204.96 287.32l-.703 2.008h.703v-2.008m3.518 0l.703.67-.702-.67z"/> - <path fill="#8c8c8c" d="M209.18 287.32l.703.67-.703-.67z"/> - <path fill="#425242" d="M211.29 287.32l.704.67-.704-.67z"/> - <path fill="#428c00" d="M211.99 287.32c-1.65 4.31-1.22 6.867 1.407 10.71h.704v-10.71h-.703v8.033h-1.407v-8.033z"/> - <path fill="#315221" d="M214.1 287.32l.704.67-.704-.67z"/> - <path fill="#efefef" d="M217.62 287.32l.704.67-.704-.67z"/> - <path fill="#396b10" d="M218.32 287.32l.703.67-.703-.67z"/> - <path fill="#293129" d="M220.43 287.32l.704.67-.704-.67z"/> - <path fill="#293100" d="M221.84 287.32l.704.67-.704-.67z"/> - <path fill="#631808" d="M223.95 287.32l.704.67-.704-.67z"/> - <path fill="#cecece" d="M249.28 287.32l.703.67-.703-.67z"/> - <path fill="#001039" d="M249.98 287.32l.704.67-.704-.67z"/> - <path fill="#42425a" d="M250.68 287.32l.703.67-.703-.67z"/> - <path fill="#520808" d="M257.72 287.32l.703.67-.703-.67z"/> - <path fill="#6b5252" d="M258.42 287.32l.704.67-.704-.67z"/> - <path fill="#8c8c8c" d="M259.12 287.32l.703.67-.703-.67z"/> - <path fill="#290018" d="M259.83 287.32l.704.67-.704-.67z"/> - <path fill="#420000" d="M260.53 287.32l.704.67-.704-.67z"/> - <path fill="#001010" d="M286.56 287.32l.704.67-.704-.67z"/> - <path fill="#292921" d="M287.26 287.32l.703.67-.703-.67z"/> - <path fill="#185200" d="M288.67 287.32l1.407 1.34-1.407-1.34z"/> - <path fill="#297b00" d="M289.38 287.32l.704.67-.704-.67z"/> - <path fill="#184a00" d="M291.49 287.32v2.008h.704l-.704-2.008z"/> - <path fill="#185200" d="M293.6 287.32l.703.67-.703-.67z"/> - <path fill="#103900" d="M299.93 287.32l.704.67-.704-.67z"/> - <path fill="#297b00" d="M303.45 287.32l.703.67-.703-.67z"/> - <path fill="#184a00" d="M304.15 287.32v.67h2.11l-2.11-.67z"/> - <path fill="#296300" d="M306.73 287.55l.47.224-.47-.224z"/> - <path fill="#297b00" d="M307.67 287.32l.703.67-.703-.67m4.925 0l.703.67-.703-.67z"/> - <path fill="#185200" d="M313.29 287.32l.703.67-.703-.67z"/> - <path fill="#315221" d="M314 287.32l.704.67-.704-.67z"/> - <path fill="#6b735a" d="M314.7 287.32l.703.67-.703-.67z"/> - <path fill="#8c8c8c" d="M315.4 287.32l.703.67-.703-.67z"/> - <path fill="#bdbdbd" d="M316.11 287.32l.703.67-.703-.67z"/> - <path fill="#425242" d="M192.29 287.99l.703.67-.703-.67z"/> - <path fill="#103900" d="M201.44 287.99l.703.67-.703-.67z"/> - <path fill="#294200" d="M204.96 287.99l.704.67-.704-.67m3.518 0l1.407 1.34-1.407-1.34z"/> - <path fill="#5a5231" d="M209.18 287.99l.703.67-.703-.67z"/> - <path fill="#ada5a5" d="M210.58 287.99l.704.67-.704-.67z"/> - <path fill="#397b00" d="M211.29 287.99l.704.67-.704-.67m2.814 0l.703.67-.703-.67z"/> - <path fill="#9c9494" d="M214.8 287.99l.703.67-.703-.67z"/> - <path fill="#52525a" d="M217.62 287.99l.704.67-.704-.67z"/> - <path fill="#294200" d="M219.26 288.44l.235.446-.235-.446z"/> - <path fill="#295200" d="M220.43 287.99l.704.67-.704-.67z"/> - <path fill="#100808" d="M221.14 287.99l.703.67-.703-.67z"/> - <path fill="#428c00" d="M221.84 287.99l-.703 10.71 2.11-2.008h.704l-.703 2.677c5.504-1.57 6.518-5.128 4.925-10.042l-3.518 7.364h-.703v-8.702h-.703l-1.407 7.363v-7.363z"/> - <path fill="#295200" d="M222.54 287.99l.703.67-.703-.67z"/> - <path fill="#293100" d="M223.95 287.99l.704.67-.704-.67z"/> - <path fill="#ce2110" d="M227.47 287.99l.704.67-.704-.67z"/> - <path fill="#7b1008" d="M228.17 287.99l.703.67-.703-.67z"/> - <path fill="#8c8c8c" d="M249.98 287.99l.704.67-.704-.67z"/> - <path fill="#080829" d="M250.68 287.99l.703.67-.703-.67z"/> - <path fill="#c6b5b5" d="M254.2 287.99l.703.67-.703-.67z"/> - <path fill="#b51010" d="M257.01 287.99l.704.67-.704-.67z"/> - <path fill="#cecece" d="M257.72 287.99l.703.67-.703-.67z"/> - <path fill="#103900" d="M286.56 287.99l.704.67-.704-.67z"/> - <path fill="#63636b" d="M287.26 287.99l.703.67-.703-.67z"/> - <path fill="#297b00" d="M288.44 288.22l.47.224-.47-.224z"/> - <path fill="#184a00" d="M293.6 287.99l.703.67-.703-.67z"/> - <path fill="#185200" d="M295.71 287.99l.704.67-.704-.67z"/> - <path fill="#184a00" d="M299.22 287.99l.704.67-.704-.67z"/> - <path fill="#185200" d="M302.04 287.99l.704.67-.704-.67z"/> - <path fill="#103900" d="M302.74 287.99l.704.67-.704-.67z"/> - <path fill="#185200" d="M303.45 287.99l.703.67-.703-.67z"/> - <path fill="#297b00" d="M309.78 287.99l.703.67-.703-.67z"/> - <path fill="#185200" d="M310.48 287.99l.703.67-.703-.67z"/> - <path fill="#315221" d="M311.18 287.99l.704.67-.704-.67z"/> - <path fill="#6b735a" d="M311.89 287.99l.703.67-.703-.67z"/> - <path fill="#9c9494" d="M312.59 287.99l.703.67-.703-.67z"/> - <path fill="#dedede" d="M313.29 287.99l.703.67-.703-.67z"/> - <path fill="#cecece" d="M192.29 288.66l1.407 1.34-1.407-1.34z"/> - <path fill="#214210" d="M193 288.66l.703.67-.703-.67z"/> - <path fill="#397b00" d="M202.14 288.66l1.407 1.34v-1.34h-1.407z"/> - <path fill="#103900" d="M203.55 288.66l.703.67-.703-.67m2.814 0l-.703 1.34.704-1.34z"/> - <path fill="#397b00" d="M207.07 288.66l.703.67-.703-.67z"/> - <path fill="#295200" d="M208.47 288.66l.703.67-.703-.67z"/> - <path fill="#213918" d="M210.58 288.66l.704.67-.704-.67z"/> - <path fill="#294200" d="M212.69 288.66v3.347h.703l-.703-3.347z"/> - <path fill="#526b42" d="M214.8 288.66l.703.67-.703-.67z"/> - <path fill="#ada5a5" d="M216.92 288.66l.703.67-.703-.67z"/> - <path fill="#397b00" d="M217.62 288.66l.704.67-.704-.67z"/> - <path fill="#103900" d="M221.14 288.66l.703.67-.703-.67z"/> - <path fill="#294200" d="M222.54 288.66v2.678h.703l-.703-2.678z"/> - <path fill="#397b00" d="M223.95 288.66l.704.67-.704-.67z"/> - <path fill="#941808" d="M224.65 288.66l.704.67-.704-.67m2.11 0l-.703 1.34.704-1.34z"/> - <path fill="#293100" d="M227.47 288.66l.704.67-.704-.67z"/> - <path fill="#103900" d="M228.17 288.66l.703.67-.703-.67z"/> - <path fill="#efefef" d="M249.98 288.66l.704.67-.704-.67z"/> - <path fill="#292921" d="M250.68 288.66l.703.67-.703-.67z"/> - <path fill="#efefef" d="M251.39 288.66l.703.67-.703-.67z"/> - <path fill="#842118" d="M257.01 288.66l.704.67-.704-.67z"/> - <path fill="#293129" d="M287.26 288.66l.703.67-.703-.67z"/> - <path fill="#296300" d="M287.97 288.66l.703.67-.703-.67z"/> - <path fill="#103900" d="M289.38 288.66l.704.67-.704-.67z"/> - <path fill="#185200" d="M293.6 288.66l.703.67-.703-.67z"/> - <path fill="#103900" d="M295.71 288.66l.704.67-.704-.67z"/> - <path fill="#296300" d="M300.63 288.66l.703.67-.703-.67z"/> - <path fill="#103900" d="M301.33 288.66l.703.67-.703-.67z"/> - <path fill="#296300" d="M302.04 288.66l.704.67-.704-.67z"/> - <path fill="#297b00" d="M307.67 288.66l.703.67-.703-.67z"/> - <path fill="#103900" d="M308.37 288.66l.704.67-.704-.67z"/> - <path fill="#001000" d="M309.07 288.66l.703.67-.703-.67z"/> - <path fill="#101810" d="M309.78 288.66l.703.67-.703-.67z"/> - <path fill="#8c8c8c" d="M310.48 288.66l.703.67-.703-.67z"/> - <path fill="#bdbdbd" d="M311.65 288.89l.47.224-.47-.224z"/> - <path fill="#214210" d="M193.7 289.33l1.407 1.34-1.407-1.34z"/> - <path fill="#397b00" d="M199.56 289.78l.235.446-.235-.446m9.614-.446l.704.67-.704-.67z"/> - <path fill="#63636b" d="M209.88 289.33l.703.67-.703-.67z"/> - <path fill="#397b00" d="M210.58 289.33l.704.67-.704-.67z"/> - <path fill="#294200" d="M215.04 289.78l.235.446-.235-.446z"/> - <path fill="#dedede" d="M216.21 289.33l.704.67-.704-.67z"/> - <path fill="#214210" d="M216.92 289.33l.703.67-.703-.67z"/> - <path fill="#295200" d="M219.03 289.33l.704.67-.704-.67m2.11 0l.704.67-.704-.67z"/> - <path fill="#422100" d="M224.65 289.33l.704.67-.704-.67z"/> - <path fill="#295200" d="M226.76 289.33l.704.67-.704-.67m1.407 0l.703.67-.703-.67z"/> - <path fill="#ce2110" d="M228.87 289.33l.703.67-.703-.67z"/> - <path fill="#bdbdbd" d="M250.68 289.33l.703.67-.703-.67z"/> - <path fill="#8c8c8c" d="M251.62 289.78l.235.446-.235-.446z"/> - <path fill="#736b6b" d="M257.01 289.33l.704.67-.704-.67z"/> - <path fill="#185200" d="M287.26 289.33l.703.67-.703-.67z"/> - <path fill="#184a00" d="M287.97 289.33l.703.67-.703-.67m1.407 0l.704.67-.703-.67z"/> - <path fill="#296300" d="M291.49 289.33l.704 2.678h.703l-1.407-2.678z"/> - <path fill="#297b00" d="M292.19 289.33l.703.67-.703-.67z"/> - <path fill="#184a00" d="M293.6 289.33l.703.67-.703-.67z"/> - <path fill="#297b00" d="M295 289.33l.703.67-.703-.67zm4.22 0l1.407 1.34-1.407-1.34z"/> - <path fill="#184a00" d="M299.93 289.33l.704.67-.704-.67z"/> - <path fill="#185200" d="M300.63 289.33l.703.67-.703-.67z"/> - <path fill="#297b00" d="M305.56 289.33l.704.67-.704-.67z"/> - <path fill="#184a00" d="M306.26 289.33v.67l2.814.67V290l-2.814-.67z"/> - <path fill="#103900" d="M306.96 289.33l.703.67-.703-.67z"/> - <path fill="#185200" d="M307.67 289.33l.703.67-.703-.67z"/> - <path fill="#319400" d="M308.37 289.33v.67h2.11l-2.11-.67z"/> - <path fill="#297b00" d="M310.71 289.78l.235.446-.235-.446z"/> - <path fill="#296300" d="M311.18 289.33v.67l2.814.67V290l-2.814-.67z"/> - <path fill="#185200" d="M312.59 289.33l.703.67-.703-.67z"/> - <path fill="#103900" d="M313.29 289.33l.703.67-.703-.67z"/> - <path fill="#4a6342" d="M314 289.33l.704.67-.704-.67z"/> - <path fill="#8c8c8c" d="M314.7 289.33l.703.67-.703-.67z"/> - <path fill="#bdbdbd" d="M315.4 289.33l.703.67-.703-.67z"/> - <path fill="#ada5a5" d="M193.7 290l.704.67-.704-.67z"/> - <path fill="#294200" d="M197.69 290.22l.47.224-.47-.224z"/> - <path fill="#295200" d="M198.62 290l.703.67-.703-.67z"/> - <path fill="#292100" d="M204.96 290l.704.67-.704-.67z"/> - <path fill="#001000" d="M209.88 290l.703.67-.703-.67z"/> - <path fill="#5a6b52" d="M216.21 290l.704.67-.704-.67z"/> - <path fill="#294200" d="M219.26 290.45l.235.446-.235-.446z"/> - <path fill="#397b00" d="M220.9 290.22l.47.224-.47-.224z"/> - <path fill="#294200" d="M224.65 290l.704.67-.704-.67z"/> - <path fill="#bd2110" d="M225.36 290l.703.67-.703-.67z"/> - <path fill="#294200" d="M226.06 290l.703.67-.703-.67z"/> - <path fill="#397b00" d="M228.17 290l.703.67-.703-.67z"/> - <path fill="#941808" d="M228.87 290l.703.67-.703-.67z"/> - <path fill="#efefef" d="M252.09 290l-.703 1.34.703-1.34z"/> - <path fill="#ce1810" d="M256.31 290l.703.67-.703-.67z"/> - <path fill="#cecece" d="M257.01 290l.704.67-.704-.67z"/> - <path fill="#297b00" d="M287.26 290l.703.67-.703-.67z"/> - <path fill="#082108" d="M287.97 290l.703.67-.703-.67z"/> - <path fill="#185200" d="M289.38 290l.704.67-.704-.67z"/> - <path fill="#297b00" d="M290.08 290l.703.67-.703-.67z"/> - <path fill="#185200" d="M293.6 290l.703.67-.703-.67z"/> - <path fill="#103900" d="M299.22 290l.704.67-.704-.67z"/> - <path fill="#297b00" d="M303.45 290l1.407 1.34-1.407-1.34z"/> - <path fill="#185200" d="M304.15 290l.703.67-.703-.67z"/> - <path fill="#103900" d="M304.85 290l.703.67-.703-.67z"/> - <path fill="#185200" d="M306.02 290.22l.47.224-.47-.224m3.048-.223l.704.67-.704-.67z"/> - <path fill="#296300" d="M310.01 290.45l.235.446-.235-.446z"/> - <path fill="#319400" d="M311.18 290l.704.67-.704-.67z"/> - <path fill="#297b00" d="M311.89 290l.703.67-.703-.67z"/> - <path fill="#185200" d="M314 290l.704.67L314 290z"/> - <path fill="#184a00" d="M314.7 290l.703.67-.703-.67z"/> - <path fill="#082108" d="M315.4 290l.703.67-.703-.67z"/> - <path d="M316.11 290l.703.67-.703-.67z"/> - <path fill="#313931" d="M316.81 290l.704.67-.704-.67z"/> - <path fill="#7b7373" d="M317.52 290l.703.67-.703-.67z"/> - <path fill="#dedede" d="M194.64 291.12l.235.446-.235-.446z"/> - <path fill="#52525a" d="M195.11 290.67l.703.67-.703-.67z"/> - <path fill="#294200" d="M195.81 290.67l.703.67-.703-.67z"/> - <path fill="#295200" d="M196.51 290.67l.704.67-.704-.67z"/> - <path fill="#294200" d="M204.25 290.67l.703.67-.703-.67z"/> - <path fill="#397b00" d="M204.96 290.67l.704.67-.704-.67m3.283.223l.47.223-.47-.223z"/> - <path fill="#294200" d="M210.11 291.12l.235.446-.235-.446z"/> - <path fill="#397b00" d="M214.8 290.67l.703.67-.703-.67z"/> - <path fill="#ada5a5" d="M215.51 290.67l.703.67-.703-.67z"/> - <path fill="#295200" d="M216.21 290.67l.704.67-.704-.67z"/> - <path fill="#294200" d="M220.43 290.67v2.008h.704l-.704-2.008z"/> - <path fill="#397b00" d="M224.65 290.67v1.34h1.407l-1.407-1.34z"/> - <path fill="#211800" d="M225.36 290.67l.703.67-.703-.67z"/> - <path fill="#294200" d="M227.47 290.67l.704.67-.704-.67z"/> - <path fill="#5a2908" d="M228.87 290.67l.703.67-.703-.67z"/> - <path fill="#63636b" d="M252.09 290.67l.703.67-.703-.67z"/> - <path fill="#9c2118" d="M256.31 290.67l.703.67-.703-.67z"/> - <path fill="#00216b" d="M285.86 290.67l.704.67-.704-.67z"/> - <path fill="#103910" d="M286.56 290.67l.704.67-.704-.67z"/> - <path fill="#103900" d="M288.2 291.12l.235.446-.235-.446z"/> - <path fill="#296300" d="M289.84 290.89l.47.224-.47-.224z"/> - <path fill="#103900" d="M297.82 290.67l.703.67-.703-.67z"/> - <path fill="#296300" d="M302.27 291.12l.235.446-.235-.446z"/> - <path fill="#103900" d="M303.21 290.89l.47.224-.47-.224z"/> - <path fill="#319400" d="M295 298.7c6.744-3.558 11.844-6.024 19.698-6.024-6.507-3.734-17.534-1.503-19.698 6.024z"/> - <path fill="#297b00" d="M309.07 290.67l.703.67-.703-.67z"/> - <path fill="#185200" d="M310.48 290.67l.703.67-.703-.67z"/> - <path fill="#103900" d="M311.18 290.67l.704.67-.704-.67z"/> - <path fill="#293129" d="M311.89 290.67l.703.67-.703-.67z"/> - <path fill="#7b7373" d="M312.59 290.67l.703.67-.703-.67z"/> - <path fill="#ada5a5" d="M313.29 290.67l.703.67-.703-.67z"/> - <path fill="#314231" d="M195.11 291.34l.703.67-.703-.67z"/> - <path fill="#295200" d="M201.44 291.34l.703.67-.703-.67z"/> - <path fill="#294200" d="M202.14 291.34l.704.67-.704-.67z"/> - <path fill="#397b00" d="M203.55 291.34l.703.67-.703-.67z"/> - <path fill="#295200" d="M204.25 291.34l.703.67-.703-.67m3.518 0l.703.67-.702-.67z"/> - <path fill="#294200" d="M214.8 291.34l.703.67-.703-.67z"/> - <path fill="#63636b" d="M215.51 291.34l.703.67-.703-.67z"/> - <path fill="#397b00" d="M218.79 291.56l.47.224-.47-.224m3.752-.223v2.008h.703l-.703-2.008z"/> - <path fill="#295200" d="M226.76 291.34l.704.67-.704-.67z"/> - <path fill="#293100" d="M228.87 291.34l.703.67-.703-.67z"/> - <path fill="#9c9494" d="M252.09 291.34l.703.67-.703-.67z"/> - <path fill="#bdbdbd" d="M252.79 291.34l.704.67-.704-.67z"/> - <path fill="#8c6363" d="M256.31 291.34l.703.67-.703-.67z"/> - <path fill="#00184a" d="M285.15 291.34l.703.67-.703-.67z"/> - <path fill="#21315a" d="M285.86 291.34l.704.67-.704-.67z"/> - <path fill="#5a7b42" d="M286.56 291.34l.704.67-.704-.67z"/> - <path fill="#184a00" d="M290.08 291.34l.703.67-.703-.67z"/> - <path fill="#297b00" d="M291.49 291.34l.704.67-.704-.67z"/> - <path fill="#185200" d="M300.63 291.34l.703.67-.703-.67z"/> - <path fill="#103900" d="M301.33 291.34l.703.67-.703-.67z"/> - <path fill="#297b00" d="M312.59 291.34l.703.67-.703-.67z"/> - <path fill="#103900" d="M313.29 291.34l.703.67-.703-.67z"/> - <path fill="#5a6b52" d="M314 291.34l.704.67-.704-.67z"/> - <path fill="#9c9494" d="M314.7 291.34l.703.67-.703-.67z"/> - <path fill="#dedede" d="M315.4 291.34l.703.67-.703-.67z"/> - <path fill="#efefef" d="M193.7 292.01l.704.67-.704-.67z"/> - <path fill="#314231" d="M194.4 292.01l.703.67-.703-.67z"/> - <path fill="#295200" d="M200.03 292.01l.703.67-.703-.67z"/> - <path fill="#103900" d="M200.73 292.01l.703.67-.703-.67z"/> - <path fill="#397b00" d="M201.44 292.01l.703.67-.703-.67z"/> - <path fill="#103900" d="M203.55 292.01l.703.67-.703-.67z"/> - <path fill="#294200" d="M208 292.46l.235.446-.235-.446z"/> - <path fill="#295200" d="M209.88 292.01l.703.67-.703-.67m2.814 0l.703.67-.703-.67z"/> - <path fill="#526b42" d="M215.27 292.23l.47.224-.47-.224z"/> - <path fill="#295200" d="M218.32 292.01l.703.67-.703-.67z"/> - <path fill="#294200" d="M224.89 292.46l.235.446-.235-.446m2.11 0l.235.446-.235-.446z"/> - <path fill="#397b00" d="M228.87 292.01l.703.67-.703-.67z"/> - <path fill="#b51010" d="M242.24 292.01l.703.67-.703-.67z"/> - <path fill="#ad1810" d="M242.94 292.01l.703.67-.703-.67z"/> - <path fill="#63636b" d="M252.79 292.01l.704.67-.704-.67z"/> - <path fill="#dedede" d="M256.31 292.01l.703.67-.703-.67z"/> - <path fill="#00216b" d="M283.75 292.01l.703.67-.703-.67z"/> - <path d="M285.15 292.01l.703.67-.703-.67z"/> - <path fill="#ada5a5" d="M285.86 292.01l.704.67-.704-.67z"/> - <path fill="#396321" d="M286.56 292.01l.704.67-.704-.67z"/> - <path fill="#185200" d="M287.97 292.01l.703.67-.703-.67z"/> - <path fill="#297b00" d="M288.67 292.01l.704.67-.704-.67z"/> - <path fill="#185200" d="M290.08 292.01l.703.67-.703-.67m2.11 0l.704.67-.704-.67m3.518 0l.703.67-.702-.67z"/> - <path fill="#296300" d="M299.22 292.01l.704.67-.704-.67z"/> - <path fill="#103900" d="M299.93 292.01l.704.67-.704-.67z"/> - <path fill="#296300" d="M300.63 292.01l.703.67-.703-.67z"/> - <path fill="#297b00" d="M314.7 292.01l.703.67-.703-.67z"/> - <path fill="#185200" d="M315.4 292.01l.703.67-.703-.67z"/> - <path fill="#314231" d="M316.11 292.01l.703.67-.703-.67z"/> - <path fill="#9c9494" d="M316.81 292.01l.704.67-.704-.67z"/> - <path fill="#424242" d="M193.7 292.68l.704.67-.704-.67z"/> - <path fill="#397b00" d="M197.92 292.68l.703.67-.703-.67z"/> - <path fill="#294200" d="M199.09 292.9l.47.224-.47-.224z"/> - <path fill="#397b00" d="M200.03 292.68l.703.67-.703-.67z"/> - <path fill="#103900" d="M202.85 292.68l.703.67-.703-.67z"/> - <path fill="#294200" d="M210.11 293.12l.235.446-.235-.446z"/> - <path fill="#397b00" d="M211.99 292.68v2.678h1.407v-2.678h-1.407z"/> - <path fill="#6b735a" d="M214.8 292.68l.703.67-.703-.67z"/> - <path fill="#396b10" d="M215.51 292.68l.703.67-.703-.67z"/> - <path fill="#294200" d="M218.32 292.68v3.347h.703l-.703-3.347z"/> - <path fill="#295200" d="M220.67 293.12l.235.446-.235-.446z"/> - <path fill="#392100" d="M242.24 292.68l.703.67-.703-.67z"/> - <path fill="#292100" d="M242.94 292.68l.703.67-.703-.67z"/> - <path fill="#9c9494" d="M252.79 292.68l.704.67-.704-.67z"/> - <path fill="#cecece" d="M253.5 292.68l.704.67-.704-.67z"/> - <path fill="#8c8c8c" d="M254.2 292.68l-.704 1.34.704-1.34z"/> - <path fill="#bd0008" d="M254.9 292.68l.703.67-.703-.67z"/> - <path fill="#63636b" d="M255.61 292.68l.704.67-.704-.67z"/> - <path fill="#00216b" d="M271.79 292.68l-.703 1.34.703-1.34z"/> - <path fill="#002984" d="M272.73 293.12l.235.446-.235-.446m7.504-.446l.704.67-.704-.67z"/> - <path fill="#00184a" d="M280.93 292.68l2.814 2.008v-.67l-2.814-1.338z"/> - <path fill="#001010" d="M283.75 292.68l.703.67-.703-.67z"/> - <path fill="#002984" d="M284.45 292.68l.703.67-.703-.67z"/> - <path fill="#103900" d="M285.15 292.68l.703.67-.703-.67z"/> - <path fill="#dedede" d="M285.86 292.68l.704.67-.704-.67z"/> - <path fill="#184a00" d="M286.8 293.12l.235.446-.235-.446z"/> - <path fill="#296300" d="M288.44 292.9l.47.224-.47-.224z"/> - <path fill="#184a00" d="M290.08 292.68l.703.67-.703-.67z"/> - <path fill="#297b00" d="M291.49 292.68l.704.67-.704-.67z"/> - <path fill="#296300" d="M292.19 292.68l-.704 2.678.704-2.678z"/> - <path fill="#103900" d="M294.3 292.68l.704.67-.704-.67z"/> - <path fill="#319400" d="M295.24 293.12l.235.446-.235-.446z"/> - <path fill="#103900" d="M295.71 292.68l.704.67-.704-.67z"/> - <path fill="#297b00" d="M297.11 293.35v.67h2.11l-2.11-.67z"/> - <path fill="#103900" d="M298.52 292.68l.703.67-.703-.67z"/> - <path fill="#185200" d="M299.22 292.68l.704.67-.704-.67z"/> - <path fill="#297b00" d="M306.96 292.68l.703.67-.703-.67z"/> - <path fill="#296300" d="M307.67 292.68l.703.67-.703-.67z"/> - <path fill="#184a00" d="M308.37 292.68l-1.407.67v.67l1.407-1.34z"/> - <path fill="#315221" d="M309.07 292.68l.703.67-.703-.67z"/> - <path fill="#4a6342" d="M309.78 292.68v.67h4.925l-4.925-.67z"/> - <path fill="#295210" d="M314.7 292.68l.703.67-.703-.67z"/> - <path fill="#184a00" d="M315.4 292.68l.703.67-.703-.67z"/> - <path fill="#296300" d="M316.11 292.68l.703.67-.703-.67z"/> - <path fill="#185200" d="M316.81 292.68l.704.67-.704-.67z"/> - <path fill="#294221" d="M317.52 292.68l.703.67-.703-.67z"/> - <path fill="#9c9494" d="M318.22 292.68l.703.67-.703-.67m-125.22.67l.703.67-.703-.67z"/> - <path fill="#397b00" d="M193.7 293.35l.704.67-.704-.67z"/> - <path fill="#295200" d="M196.51 293.35l.704.67-.704-.67z"/> - <path fill="#294200" d="M197.22 293.35l.703.67-.703-.67z"/> - <path fill="#295200" d="M197.92 293.35l.703.67-.703-.67z"/> - <path fill="#292100" d="M202.14 293.35l.704.67-.704-.67m5.628 0l.704.67-.704-.67z"/> - <path fill="#397b00" d="M214.1 293.35l.704.67-.704-.67z"/> - <path fill="#ada5a5" d="M214.8 293.35l.703.67-.703-.67z"/> - <path fill="#294200" d="M215.51 293.35l.703.67-.703-.67m7.035 0l.703.67-.703-.67z"/> - <path fill="#397b00" d="M224.42 293.57l.47.224-.47-.224z"/> - <path fill="#295200" d="M226.76 293.35l.704.67-.704-.67z"/> - <path fill="#bd2110" d="M235.91 293.35l.704.67-.704-.67z"/> - <path fill="#631808" d="M241.54 293.35l.704.67-.704-.67z"/> - <path fill="#397b00" d="M242.24 293.35l1.407 1.34-1.407-1.34z"/> - <path fill="#428c00" d="M242.94 293.35l.703.67-.703-.67z"/> - <path fill="#631808" d="M243.65 293.35l.703.67-.703-.67z"/> - <path fill="#8c7373" d="M254.2 293.35l.703.67-.703-.67z"/> - <path fill="#6b0808" d="M254.9 293.35l.703.67-.703-.67z"/> - <path fill="#dedede" d="M255.61 293.35l.704.67-.704-.67z"/> - <path fill="#000818" d="M267.57 293.35l.703.67-.703-.67z"/> - <path fill="#082108" d="M271.79 293.35l.704.67-.704-.67z"/> - <path fill="#002984" d="M277.42 293.35l1.407 1.34v-1.34h-1.407z"/> - <path fill="#001039" d="M280.23 293.35l.704.67-.704-.67m2.11 0l.704.67-.703-.67z"/> - <path fill="#103900" d="M283.75 293.35l.703.67-.703-.67z"/> - <path d="M284.45 293.35l.703.67-.703-.67z"/> - <path fill="#296300" d="M285.15 293.35l.703.67-.703-.67z"/> - <path fill="#9c9494" d="M285.86 293.35l.704.67-.704-.67z"/> - <path fill="#185200" d="M290.31 293.79l.235.446-.235-.446z"/> - <path fill="#297b00" d="M293.6 293.35v.67l3.518 1.338v-.67l-3.518-1.338z"/> - <path fill="#185200" d="M294.3 293.35l.704.67-.704-.67z"/> - <path fill="#184a00" d="M295.71 293.35l.704.67-.704-.67z"/> - <path fill="#103900" d="M297.82 293.35l.703.67-.703-.67z"/> - <path fill="#296300" d="M304.85 293.35l.703.67-.703-.67z"/> - <path fill="#103900" d="M306.02 293.57l.47.224-.47-.224z"/> - <path fill="#214210" d="M308.37 293.35l.704.67-.704-.67z"/> - <path fill="#5a6b52" d="M309.07 293.35l.703.67-.703-.67z"/> - <path fill="#8c8c8c" d="M309.78 293.35l.703.67-.703-.67z"/> - <path fill="#cecece" d="M310.48 293.35l.703.67-.703-.67m5.628 0l.703.67-.702-.67z"/> - <path fill="#ada5a5" d="M316.81 293.35l.704.67-.704-.67z"/> - <path fill="#7b7373" d="M317.52 293.35l.703.67-.703-.67z"/> - <path fill="#292921" d="M318.69 293.57l.47.224-.47-.224z"/> - <path fill="#315221" d="M193 294.02l.703.67-.703-.67z"/> - <path fill="#295200" d="M195.11 294.02l.703.67-.703-.67z"/> - <path fill="#294200" d="M195.81 294.02l.703.67-.703-.67m5.628 0l.703.67-.702-.67z"/> - <path fill="#397b00" d="M202.14 294.02l.704.67-.704-.67z"/> - <path fill="#294200" d="M204.25 294.02l-.703 1.34.703-1.34z"/> - <path fill="#397b00" d="M204.96 294.02l.704.67-.704-.67z"/> - <path fill="#295200" d="M207.07 294.02l.703.67-.703-.67z"/> - <path fill="#63636b" d="M207.77 294.02l.704.67-.704-.67z"/> - <path fill="#397b00" d="M208.47 294.02l.703.67-.703-.67m1.876.223l.47.223-.47-.223z"/> - <path fill="#295200" d="M214.1 294.02l.704.67-.704-.67z"/> - <path fill="#efefef" d="M214.8 294.02l.703.67-.703-.67z"/> - <path fill="#426331" d="M215.51 294.02l.703.67-.703-.67z"/> - <path fill="#294200" d="M220.67 294.46l.235.446-.235-.446z"/> - <path fill="#295200" d="M222.54 294.02l.703.67-.703-.67m1.407 0l.704.67-.703-.67z"/> - <path fill="#397b00" d="M226.53 294.24l.47.224-.47-.224m2.345-.223l.703.67-.703-.67z"/> - <path fill="#b51010" d="M235.21 294.02l.703.67-.703-.67z"/> - <path fill="#211800" d="M235.91 294.02l.704.67-.704-.67z"/> - <path fill="#ce2110" d="M236.61 294.02l1.407 1.34-1.407-1.34z"/> - <path fill="#b51010" d="M240.83 294.02l.703.67-.703-.67z"/> - <path fill="#294200" d="M241.54 294.02l.704.67-.704-.67z"/> - <path fill="#428c00" d="M242.24 294.02l-1.407 4.016-2.11-1.338 2.11 5.355h.703v-2.678h.704v4.686c3.403-2.147 2.963-5.962 2.11-9.37h-.703v6.693h-.703l-.704-7.363z"/> - <path fill="#294200" d="M243.65 294.02l.703.67-.703-.67z"/> - <path fill="#ce2110" d="M244.35 294.02l.704.67-.704-.67z"/> - <path fill="#7b7373" d="M253.5 294.02l.704.67-.704-.67z"/> - <path fill="#6b4242" d="M254.2 294.02l.703.67-.703-.67z"/> - <path fill="#63636b" d="M254.9 294.02l.703.67-.703-.67z"/> - <path fill="#103910" d="M267.57 294.02l.703.67-.703-.67z"/> - <path fill="#10214a" d="M268.27 294.02l.703.67-.703-.67z"/> - <path fill="#002984" d="M270.38 294.02l.703.67-.703-.67z"/> - <path fill="#103900" d="M271.08 294.02l.703.67-.703-.67z"/> - <path fill="#184a00" d="M271.79 294.02l.704.67-.704-.67z"/> - <path fill="#002984" d="M273.9 294.02l.703.67-.703-.67z"/> - <path fill="#001010" d="M277.42 294.02l.704.67-.704-.67z"/> - <path fill="#184a00" d="M280.23 294.02l.704.67-.704-.67z"/> - <path fill="#296300" d="M283.75 294.02l.703.67-.703-.67z"/> - <path fill="#424242" d="M284.45 294.02l.703.67-.703-.67z"/> - <path fill="#319400" d="M285.15 294.02l-4.22 12.05c4.018-2.114 6.002-8 4.22-12.05z"/> - <path fill="#293129" d="M285.86 294.02l.704.67-.704-.67z"/> - <path fill="#296300" d="M286.56 294.02l.704.67-.704-.67z"/> - <path fill="#184a00" d="M293.6 294.02l.703.67-.703-.67z"/> - <path fill="#185200" d="M296.18 294.24l.47.224-.47-.224z"/> - <path fill="#184a00" d="M297.11 294.02l.704.67-.704-.67z"/> - <path fill="#185200" d="M302.74 294.02l.704.67-.704-.67z"/> - <path fill="#184a00" d="M302.74 294.69v.67h3.518l-3.518-.67z"/> - <path fill="#297b00" d="M304.85 294.02l.703.67-.703-.67z"/> - <path fill="#319400" d="M305.56 294.02v.67h4.925l-4.925-.67z"/> - <path fill="#296300" d="M310.48 294.02l.703.67-.703-.67z"/> - <path fill="#315221" d="M311.18 294.02l-.703 1.34.703-1.34z"/> - <path fill="#7b7373" d="M311.89 294.02l.703.67-.703-.67z"/> - <path fill="#cecece" d="M312.59 294.02l.703.67-.703-.67z"/> - <path fill="#dedede" d="M318.92 294.02l.703.67-.703-.67z"/> - <path fill="#bdbdbd" d="M192.29 294.69l.703.67-.703-.67z"/> - <path fill="#397b00" d="M193 294.69l.703.67-.703-.67z"/> - <path fill="#103900" d="M194.4 294.69l.703.67-.703-.67z"/> - <path fill="#397b00" d="M195.11 294.69l.703.67-.703-.67m4.925 0v2.008h.703l-.704-2.008z"/> - <path fill="#103900" d="M200.73 294.69l.703.67-.703-.67z"/> - <path fill="#295200" d="M204.25 294.69l.703.67-.703-.67z"/> - <path fill="#425242" d="M207.07 294.69l.703.67-.703-.67z"/> - <path fill="#315221" d="M208.47 294.69l.703.67-.703-.67z"/> - <path fill="#103900" d="M210.58 294.69l.704.67-.704-.67z"/> - <path fill="#5a5231" d="M214.1 294.69l.704.67-.704-.67z"/> - <path fill="#526b42" d="M215.51 294.69l.703.67-.703-.67z"/> - <path fill="#397b00" d="M222.31 294.91l.47.224-.47-.224z"/> - <path fill="#294200" d="M224.18 295.13l.235.446-.235-.446m1.876-.446l.703.67-.704-.67m2.814 0l.703.67-.703-.67z"/> - <path fill="#631808" d="M235.21 294.69l.703.67-.703-.67z"/> - <path fill="#397b00" d="M235.91 294.69l1.407 3.347h2.11l-3.517-3.347z"/> - <path fill="#311000" d="M236.61 294.69l.703.67-.703-.67z"/> - <path fill="#422100" d="M240.83 294.69l.703.67-.703-.67z"/> - <path fill="#294200" d="M242.94 294.69v2.678h.703l-.703-2.678z"/> - <path fill="#5a1008" d="M244.35 294.69l.704.67-.704-.67z"/> - <path fill="#9c9494" d="M253.5 294.69l.704.67-.704-.67z"/> - <path fill="#101810" d="M254.2 294.69l.703.67-.703-.67z"/> - <path fill="#dedede" d="M254.9 294.69l.703.67-.703-.67z"/> - <path fill="#083121" d="M267.57 294.69l.703.67-.703-.67z"/> - <path fill="#185200" d="M268.27 294.69l.703.67-.703-.67z"/> - <path fill="#002984" d="M268.97 294.69l.704.67-.704-.67z"/> - <path fill="#102110" d="M270.38 294.69l.703.67-.703-.67z"/> - <path fill="#319400" d="M271.08 294.69l-.703 6.024h.703v-6.024z"/> - <path fill="#083121" d="M271.79 294.69l.704.67-.704-.67z"/> - <path fill="#000818" d="M273.9 294.69l.703.67-.703-.67z"/> - <path fill="#00216b" d="M276.71 294.69l.703.67-.703-.67z"/> - <path fill="#082108" d="M277.42 294.69l-.703 1.34.703-1.34z"/> - <path fill="#00215a" d="M279.53 294.69l.703.67-.703-.67z"/> - <path fill="#297b00" d="M280.23 294.69l.704.67-.704-.67z"/> - <path fill="#00215a" d="M280.93 294.69l.703.67-.703-.67z"/> - <path fill="#103910" d="M281.64 294.69l.703.67-.703-.67z"/> - <path fill="#424242" d="M282.34 294.69l.703.67-.703-.67z"/> - <path fill="#103910" d="M283.04 294.69l.704.67-.704-.67z"/> - <path fill="#185200" d="M283.75 294.69l-.704 1.34.704-1.34z"/> - <path fill="#294221" d="M284.45 294.69l.703.67-.703-.67z"/> - <path fill="#103900" d="M285.86 294.69l.704.67-.704-.67z"/> - <path fill="#297b00" d="M286.56 294.69l.704.67-.704-.67z"/> - <path fill="#296300" d="M290.31 295.13l.235.446-.235-.446z"/> - <path fill="#103900" d="M293.6 294.69l.703.67-.703-.67z"/> - <path fill="#296300" d="M295 294.69l.703.67-.703-.67z"/> - <path fill="#185200" d="M301.33 294.69l.703.67-.703-.67z"/> - <path fill="#103900" d="M302.04 294.69l.704.67-.704-.67m4.22 0l.704.67-.703-.67z"/> - <path fill="#082108" d="M306.96 294.69v.67h2.11l-2.11-.67z"/> - <path fill="#4a6342" d="M309.54 294.91l.47.224-.47-.224z"/> - <path fill="#184a00" d="M311.18 294.69l.704.67-.704-.67z"/> - <path fill="#296300" d="M311.89 294.69l.703.67-.703-.67z"/> - <path fill="#103900" d="M312.59 294.69l.703.67-.703-.67z"/> - <path fill="#425242" d="M313.29 294.69l.703.67-.703-.67z"/> - <path fill="#dedede" d="M314 294.69l1.407 1.34-1.407-1.34z"/> - <path fill="#7b7373" d="M192.29 295.36l.703.67-.703-.67z"/> - <path fill="#397b00" d="M197.22 295.36l.703 2.678h.704l-1.407-2.678z"/> - <path fill="#294200" d="M199.09 295.58l.47.224-.47-.224z"/> - <path fill="#295200" d="M202.14 295.36l.704.67-.704-.67z"/> - <path fill="#103900" d="M202.85 295.36l.703.67-.703-.67z"/> - <path fill="#397b00" d="M203.55 295.36l.703.67-.703-.67z"/> - <path fill="#213918" d="M206.36 295.36l.703.67-.703-.67z"/> - <path fill="#efefef" d="M207.07 295.36l.703.67-.703-.67z"/> - <path fill="#8c8c8c" d="M208.47 295.36l.703.67-.703-.67z"/> - <path fill="#294200" d="M209.18 295.36l.703.67-.703-.67z"/> - <path fill="#5a2908" d="M209.88 295.36l.703.67-.703-.67z"/> - <path fill="#7b1008" d="M210.58 295.36l.704.67-.704-.67z"/> - <path fill="#292100" d="M211.29 295.36l.704.67-.704-.67z"/> - <path fill="#5a6b52" d="M214.1 295.36l.704.67-.704-.67z"/> - <path fill="#7b7373" d="M215.51 295.36l.703.67-.703-.67z"/> - <path fill="#295200" d="M220.43 295.36l.704.67-.704-.67z"/> - <path fill="#103900" d="M226.06 295.36l.703.67-.703-.67z"/> - <path fill="#181000" d="M228.87 295.36l.703.67-.703-.67z"/> - <path fill="#310000" d="M229.58 295.36l.703.67-.703-.67z"/> - <path fill="#313918" d="M235.21 295.36l.703.67-.703-.67z"/> - <path fill="#295200" d="M235.91 295.36l.704.67-.704-.67z"/> - <path fill="#293100" d="M237.32 295.36l.703.67-.703-.67z"/> - <path fill="#5a1010" d="M238.02 295.36l.703.67-.703-.67z"/> - <path fill="#734a42" d="M239.19 295.58l.47.224-.47-.224z"/> - <path fill="#5a2121" d="M240.13 295.36l.703.67-.703-.67z"/> - <path fill="#397b00" d="M240.83 295.36l.703.67-.703-.67z"/> - <path fill="#295200" d="M244.35 295.36l.704.67-.704-.67z"/> - <path fill="#bd2110" d="M245.06 295.36l.703.67-.703-.67z"/> - <path fill="#bdbdbd" d="M253.5 295.36l.704.67-.704-.67z"/> - <path fill="#8c8c8c" d="M254.2 295.36l.703.67-.703-.67z"/> - <path fill="#002984" d="M264.05 295.36l.703.67-.703-.67z"/> - <path fill="#00216b" d="M264.75 295.36l.703.67-.703-.67z"/> - <path fill="#103921" d="M267.57 295.36l.703.67-.703-.67z"/> - <path fill="#319400" d="M268.27 295.36l-.703 8.702c2.614-2.436 2.55-5.768.703-8.702z"/> - <path fill="#102121" d="M268.97 295.36l.704.67-.704-.67z"/> - <path fill="#212139" d="M269.68 295.36l.703.67-.703-.67z"/> - <path fill="#296300" d="M270.38 295.36l.703.67-.703-.67z"/> - <path fill="#293129" d="M271.79 295.36l.704.67-.704-.67z"/> - <path fill="#42425a" d="M272.49 295.36l.703.67-.703-.67z"/> - <path fill="#31425a" d="M273.19 295.36l.703.67-.703-.67z"/> - <path fill="#103900" d="M273.9 295.36l.703.67-.703-.67z"/> - <path fill="#31425a" d="M274.6 295.36l.704.67-.704-.67z"/> - <path fill="#42425a" d="M275.77 295.58l.47.224-.47-.224z"/> - <path fill="#184a00" d="M277.65 295.8l.235.446-.235-.446z"/> - <path fill="#42425a" d="M278.12 295.36l.703.67-.703-.67z"/> - <path fill="#636b7b" d="M278.82 295.36l.703.67-.703-.67z"/> - <path fill="#082108" d="M279.53 295.36l.703.67-.703-.67z"/> - <path fill="#292921" d="M280.93 295.36l.703.67-.703-.67z"/> - <path fill="#185200" d="M281.64 295.36l.703.67-.703-.67z"/> - <path fill="#9c9494" d="M282.34 295.36l.703.67-.703-.67z"/> - <path fill="#184a00" d="M283.75 295.36l.703.67-.703-.67z"/> - <path fill="#214210" d="M284.45 295.36l.703.67-.703-.67z"/> - <path fill="#185200" d="M291.49 295.36l.704.67-.704-.67m1.407 0l.704.67-.703-.67z"/> - <path fill="#297b00" d="M293.6 295.36l.703.67-.703-.67z"/> - <path fill="#103900" d="M295 295.36l.703.67-.703-.67z"/> - <path fill="#185200" d="M299.93 295.36l.704.67-.704-.67z"/> - <path fill="#103900" d="M300.63 295.36l.703.67-.703-.67z"/> - <path fill="#296300" d="M301.33 295.36l.703.67-.703-.67z"/> - <path fill="#297b00" d="M307.67 295.36l.703.67-.703-.67z"/> - <path fill="#296300" d="M308.37 295.36l.704.67-.704-.67z"/> - <path fill="#214210" d="M309.07 295.36l.703.67-.703-.67z"/> - <path fill="#7b7373" d="M309.78 295.36l.703.67-.703-.67z"/> - <path fill="#dedede" d="M310.48 295.36l.703.67-.703-.67z"/> - <path fill="#cecece" d="M311.89 295.36l.703.67-.703-.67z"/> - <path fill="#bdbdbd" d="M312.59 295.36l-.703 1.34.703-1.34z"/> - <path fill="#8c8c8c" d="M313.29 295.36l.703.67-.703-.67z"/> - <path fill="#7b7373" d="M314 295.36l.704.67-.704-.67z"/> - <path fill="#314231" d="M192.29 296.03l.703.67-.703-.67z"/> - <path fill="#397b00" d="M193 296.03l.703.67-.703-.67z"/> - <path fill="#295200" d="M193.7 296.03l.704.67-.704-.67z"/> - <path fill="#396b10" d="M194.4 296.03l.703.67-.703-.67z"/> - <path fill="#213918" d="M195.11 296.03l.703.67-.703-.67z"/> - <path fill="#294200" d="M196.28 296.25l.47.224-.47-.224z"/> - <path fill="#428c00" d="M199.09 296.25l.47.224-.47-.224z"/> - <path fill="#294200" d="M201.2 296.25l.47.224-.47-.224z"/> - <path fill="#397b00" d="M202.14 296.03l.704.67-.704-.67z"/> - <path fill="#315221" d="M205.66 296.03l.703.67-.703-.67z"/> - <path fill="#cecece" d="M206.36 296.03l.703.67-.703-.67z"/> - <path fill="#420000" d="M209.18 296.03l.703.67-.703-.67z"/> - <path fill="#bd2110" d="M211.52 296.47l.235.446-.235-.446z"/> - <path fill="#295200" d="M211.99 296.03l.703 2.678h.704l-1.407-2.678z"/> - <path fill="#8c8c8c" d="M214.34 296.47l.235.446-.235-.446z"/> - <path fill="#efefef" d="M215.51 296.03l.703.67-.703-.67z"/> - <path fill="#214210" d="M216.21 296.03l.704.67-.704-.67z"/> - <path fill="#294200" d="M220.43 296.03l.704.67-.704-.67z"/> - <path fill="#295200" d="M223.95 296.03l.704.67-.704-.67z"/> - <path fill="#294200" d="M225.36 296.03l.703.67-.703-.67z"/> - <path fill="#295200" d="M228.17 296.03l.703.67-.703-.67z"/> - <path fill="#ada5a5" d="M228.87 296.03l.703.67-.703-.67z"/> - <path fill="#313931" d="M229.58 296.03l.703.67-.703-.67z"/> - <path fill="#213918" d="M230.28 296.03l.704.67-.704-.67z"/> - <path fill="#63636b" d="M230.99 296.03l.703.67-.703-.67z"/> - <path fill="#8c8c8c" d="M231.69 296.03l.703.67-.703-.67z"/> - <path fill="#bdbdbd" d="M232.39 296.03l.703.67-.703-.67z"/> - <path fill="#cecece" d="M233.1 296.03l.704.67-.704-.67z"/> - <path fill="#526b42" d="M235.21 296.03l.703.67-.703-.67z"/> - <path fill="#428c00" d="M235.91 296.03l1.407 1.34-1.407-1.34z"/> - <path fill="#103900" d="M236.61 296.03l.703.67-.703-.67z"/> - <path fill="#425242" d="M238.72 296.03l.704.67-.704-.67z"/> - <path fill="#dedede" d="M239.43 296.03l.703.67-.703-.67z"/> - <path fill="#5a5231" d="M240.13 296.03l.703.67-.703-.67z"/> - <path fill="#313931" d="M245.06 296.03l.703.67-.703-.67z"/> - <path fill="#7b5252" d="M245.76 296.03l.703.67-.703-.67z"/> - <path fill="#5a1008" d="M246.46 296.03l.703.67-.703-.67z"/> - <path fill="#ad1810" d="M247.17 296.03l.704.67-.704-.67z"/> - <path fill="#002984" d="M260.53 296.03l.704.67-.704-.67z"/> - <path fill="#00184a" d="M261.24 296.03l.703.67-.703-.67z"/> - <path fill="#42425a" d="M261.94 296.03l.703.67-.703-.67z"/> - <path fill="#8c8c8c" d="M262.64 296.03l.703.67-.703-.67z"/> - <path fill="#9c9494" d="M263.35 296.03l.704.67-.704-.67z"/> - <path fill="#bdbdbd" d="M264.05 296.03l.703.67-.703-.67z"/> - <path fill="#dedede" d="M264.75 296.03l.703.67-.703-.67z"/> - <path fill="#214210" d="M268.97 296.03l.704.67-.704-.67z"/> - <path fill="#425242" d="M269.68 296.03l.703.67-.703-.67z"/> - <path fill="#63636b" d="M273.19 296.03l.703.67-.703-.67z"/> - <path fill="#9c9494" d="M276.01 296.03l.703.67-.703-.67z"/> - <path fill="#296300" d="M276.71 296.03l.703.67-.703-.67z"/> - <path fill="#bdbdbd" d="M278.82 296.03l.703.67-.703-.67z"/> - <path fill="#103900" d="M280.93 296.03l1.407 1.34-1.407-1.34z"/> - <path fill="#296300" d="M281.64 296.03l.703.67-.703-.67z"/> - <path fill="#313931" d="M282.34 296.03l.703.67-.703-.67z"/> - <path fill="#297b00" d="M283.04 296.03l.704.67-.704-.67z"/> - <path fill="#103900" d="M283.75 296.03l.703.67-.703-.67z"/> - <path fill="#185200" d="M284.45 296.03l.703.67-.703-.67m5.628 0l.703.67-.702-.67z"/> - <path fill="#184a00" d="M291.72 296.47l.235.446-.235-.446m1.173-.446l.703.67-.703-.67z"/> - <path fill="#297b00" d="M294.3 296.03l1.407 1.34-1.407-1.34z"/> - <path fill="#184a00" d="M295 296.03l.703.67-.703-.67z"/> - <path fill="#297b00" d="M298.52 296.03l.703.67-.703-.67z"/> - <path fill="#103900" d="M299.22 296.03l.704.67-.704-.67z"/> - <path fill="#296300" d="M299.93 296.03l.704.67-.704-.67z"/> - <path fill="#297b00" d="M309.78 296.03l.703.67-.703-.67z"/> - <path fill="#185200" d="M310.48 296.03l.703.67-.703-.67z"/> - <path fill="#5a6b52" d="M311.18 296.03l.704.67-.704-.67z"/> - <path fill="#bdbdbd" d="M192.76 296.92l.47.224-.47-.224z"/> - <path fill="#efefef" d="M194.4 296.69l.703.67-.703-.67z"/> - <path fill="#214210" d="M195.11 296.69l.703.67-.703-.67z"/> - <path fill="#428c00" d="M196.51 299.37l1.407-2.008c-1.82-.4-2.914.654-1.407 2.008z"/> - <path fill="#294200" d="M199.09 296.92l.47.224-.47-.224z"/> - <path fill="#295200" d="M200.03 296.69l.703.67-.703-.67z"/> - <path fill="#397b00" d="M204.25 296.69l.703.67-.703-.67z"/> - <path fill="#63636b" d="M204.96 296.69l.704.67-.704-.67z"/> - <path fill="#efefef" d="M205.66 296.69l.703.67-.703-.67z"/> - <path fill="#5a2121" d="M209.18 296.69l.703.67-.703-.67z"/> - <path fill="#8c8c8c" d="M216.21 296.69l.704.67-.704-.67z"/> - <path fill="#397b00" d="M216.92 296.69l.703.67-.703-.67z"/> - <path fill="#295200" d="M220.67 297.14l.235.446-.235-.446m2.58-.446l.703.67-.704-.67z"/> - <path fill="#63636b" d="M228.17 296.69l.703.67-.703-.67z"/> - <path fill="#dedede" d="M229.58 296.69l.703.67-.703-.67z"/> - <path fill="#294200" d="M230.28 296.69l.704.67-.704-.67z"/> - <path fill="#428c00" d="M230.99 296.69l.703 4.686 3.518 2.677 4.925.67.704-.67c-.52-1.812-6.268-9.642-7.036-5.355l-1.407-2.008h-1.407z"/> - <path fill="#397b00" d="M232.39 296.69v1.34l1.407-1.34h-1.407z"/> - <path fill="#295200" d="M233.8 296.69l.703.67-.703-.67z"/> - <path fill="#294200" d="M234.97 296.92l.47.224-.47-.224z"/> - <path fill="#397b00" d="M236.14 297.14l.235.446-.235-.446z"/> - <path fill="#294200" d="M237.32 296.69l.703.67-.703-.67z"/> - <path fill="#214210" d="M239.43 296.69l.703.67-.703-.67z"/> - <path fill="#295200" d="M240.13 296.69l.703.67-.703-.67z"/> - <path fill="#526b42" d="M245.06 296.69l.703.67-.703-.67z"/> - <path fill="#bdbdbd" d="M247.17 296.69l.704.67-.704-.67z"/> - <path fill="#63636b" d="M247.87 296.69l.703.67-.703-.67z"/> - <path fill="#8c8c8c" d="M248.57 296.69l.703.67-.703-.67z"/> - <path fill="#efefef" d="M249.28 296.69l.703.67-.703-.67m9.145 0l.704.67-.705-.67z"/> - <path fill="#8c8c8c" d="M259.12 296.69l.703.67-.703-.67z"/> - <path fill="#63636b" d="M259.83 296.69l.704.67-.704-.67z"/> - <path fill="#ada5a5" d="M260.53 296.69l.704.67-.704-.67z"/> - <path fill="#efefef" d="M261.24 296.69l.703.67-.703-.67z"/> - <path fill="#296300" d="M268.97 296.69l.704.67-.704-.67z"/> - <path fill="#103900" d="M269.68 296.69l.703.67-.703-.67z"/> - <path fill="#dedede" d="M272.49 296.69l.703.67-.703-.67z"/> - <path fill="#184a00" d="M273.19 296.69l.703.67-.703-.67z"/> - <path fill="#efefef" d="M275.31 296.69l.703.67-.703-.67z"/> - <path fill="#294221" d="M276.01 296.69l.703.67-.703-.67z"/> - <path fill="#319400" d="M276.71 296.69l-4.925 8.033c5.518-.063 7.887-2.874 8.442-8.033h-.703l-4.925 7.363 2.11-7.363z"/> - <path fill="#4a6342" d="M277.42 296.69l.704.67-.704-.67z"/> - <path fill="#425242" d="M278.82 296.69l.703.67-.703-.67z"/> - <path fill="#185200" d="M280.23 296.69l.704.67-.704-.67z"/> - <path fill="#297b00" d="M280.93 296.69l.703.67-.703-.67z"/> - <path fill="#184a00" d="M282.34 296.69l.703.67-.703-.67z"/> - <path fill="#319400" d="M283.04 296.69l-4.924 8.702c3.275-1.536 5.708-5.148 4.924-8.702z"/> - <path fill="#082108" d="M283.75 296.69l.703.67-.703-.67z"/> - <path fill="#297b00" d="M284.45 296.69l.703.67-.703-.67z"/> - <path fill="#184a00" d="M290.08 296.69l.703.67-.703-.67z"/> - <path fill="#185200" d="M294.3 296.69l.704.67-.704-.67m3.518 0l.703.67-.702-.67z"/> - <path fill="#184a00" d="M298.52 296.69l.703.67-.703-.67z"/> - <path fill="#185200" d="M301.1 296.92l.47.224-.47-.224z"/> - <path fill="#296300" d="M302.04 296.69l.704.67-.704-.67z"/> - <path fill="#184a00" d="M302.74 296.69v.67h2.11l-2.11-.67z"/> - <path fill="#185200" d="M304.85 296.69l.703.67-.703-.67z"/> - <path fill="#184a00" d="M306.02 296.92l.47.224-.47-.224z"/> - <path fill="#185200" d="M306.96 296.69l.703.67-.703-.67z"/> - <path fill="#296300" d="M307.9 297.14l.235.446-.235-.446z"/> - <path fill="#297b00" d="M308.37 296.69l.704.67-.704-.67z"/> - <path fill="#185200" d="M311.89 296.69l.703.67-.703-.67z"/> - <path fill="#63636b" d="M312.59 296.69l.703.67-.703-.67z"/> - <path fill="#efefef" d="M313.29 296.69l.703.67-.703-.67z"/> - <path fill="#8c8c8c" d="M194.4 297.36l.703.67-.703-.67z"/> - <path fill="#397b00" d="M196.51 297.36l-.703 1.34h1.407l-.704-1.34z"/> - <path fill="#103900" d="M197.22 297.36l.703.67-.703-.67z"/> - <path fill="#295200" d="M202.85 297.36l.703.67-.703-.67z"/> - <path fill="#5a5231" d="M203.55 297.36l.703.67-.703-.67z"/> - <path fill="#ada5a5" d="M204.25 297.36l.703.67-.703-.67z"/> - <path fill="#bdbdbd" d="M207.07 297.36l.703.67-.703-.67z"/> - <path fill="#8c8c8c" d="M207.77 297.36l.704.67-.704-.67z"/> - <path fill="#8c9c84" d="M208.47 297.36l.703.67-.703-.67z"/> - <path fill="#5a5231" d="M209.18 297.36l.703.67-.703-.67z"/> - <path fill="#422100" d="M209.88 297.36l.703.67-.703-.67z"/> - <path fill="#5a2908" d="M210.58 297.36l.704.67-.704-.67z"/> - <path fill="#311000" d="M211.29 297.36l.704.67-.704-.67z"/> - <path fill="#397b00" d="M212.69 297.36l.703.67-.703-.67z"/> - <path fill="#5a6b52" d="M214.1 297.36l.704.67-.704-.67z"/> - <path fill="#52525a" d="M216.92 297.36l.703.67-.703-.67z"/> - <path fill="#103900" d="M223.25 297.36l.703.67-.703-.67z"/> - <path fill="#314231" d="M227.47 297.36l-.704 1.34.704-1.34z"/> - <path fill="#dedede" d="M228.17 297.36l.703.67-.703-.67z"/> - <path fill="#63636b" d="M230.28 297.36l.704.67-.704-.67z"/> - <path fill="#295200" d="M231.69 297.36l.703.67-.703-.67z"/> - <path fill="#103900" d="M236.61 297.36l.703.67-.703-.67z"/> - <path fill="#294200" d="M238.02 297.36l-.703 1.34.703-1.34z"/> - <path fill="#103900" d="M240.13 297.36l.703.67-.703-.67z"/> - <path fill="#295200" d="M243.18 297.81l.235.446-.235-.446z"/> - <path fill="#294200" d="M245.29 297.81l.235.446-.235-.446z"/> - <path fill="#dedede" d="M248.57 297.36l.703.67-.703-.67z"/> - <path fill="#7b7373" d="M249.28 297.36l.703.67-.703-.67z"/> - <path fill="#8c8c8c" d="M249.98 297.36l.704.67-.704-.67z"/> - <path fill="#9c9494" d="M257.72 297.36l.703.67-.703-.67z"/> - <path fill="#63636b" d="M258.42 297.36l.704.67-.704-.67z"/> - <path fill="#dedede" d="M259.12 297.36l.703.67-.703-.67z"/> - <path fill="#184a00" d="M269.68 297.36l.703.67-.703-.67z"/> - <path fill="#63636b" d="M272.49 297.36l-.704 1.34.704-1.34z"/> - <path fill="#297b00" d="M273.19 297.36l.703.67-.703-.67z"/> - <path fill="#8c8c8c" d="M275.31 297.36l.703.67-.703-.67z"/> - <path fill="#297b00" d="M276.01 297.36l.703.67-.703-.67z"/> - <path fill="#8c8c8c" d="M277.89 297.59l.47.224-.47-.224z"/> - <path fill="#296300" d="M278.82 297.36l.703.67-.703-.67z"/> - <path fill="#103900" d="M280.23 297.36l.704.67-.704-.67z"/> - <path fill="#319400" d="M280.93 297.36l.703.67-.703-.67z"/> - <path fill="#082108" d="M281.64 297.36l.703.67-.703-.67z"/> - <path fill="#297b00" d="M282.34 297.36l.703.67-.703-.67z"/> - <path fill="#103900" d="M283.75 297.36l.703.67-.703-.67z"/> - <path fill="#296300" d="M290.08 297.36l.703.67-.703-.67m1.407 0l.703.67-.703-.67z"/> - <path fill="#103900" d="M294.3 297.36l.704.67-.704-.67z"/> - <path fill="#297b00" d="M295.71 298.03v.67h2.11l-2.11-.67z"/> - <path fill="#103900" d="M297.11 297.36l.704.67-.704-.67z"/> - <path fill="#296300" d="M297.82 297.36l.703.67-.703-.67z"/> - <path fill="#082108" d="M308.37 297.36l.704.67-.704-.67z"/> - <path fill="#001000" d="M309.07 297.36l.703.67-.703-.67z"/> - <path fill="#395231" d="M309.78 297.36l.703.67-.703-.67z"/> - <path fill="#184a00" d="M310.48 297.36l.703.67-.703-.67z"/> - <path fill="#296300" d="M311.18 297.36l.704.67-.704-.67z"/> - <path fill="#297b00" d="M312.36 297.59l.47.224-.47-.224z"/> - <path fill="#214210" d="M313.29 297.36l.703.67-.703-.67z"/> - <path fill="#9c9494" d="M314 297.36l.704.67-.704-.67z"/> - <path fill="#5a5231" d="M194.4 298.03l.703.67-.703-.67z"/> - <path fill="#397b00" d="M199.33 298.03l.704.67-.704-.67z"/> - <path fill="#295200" d="M200.03 298.03l.703.67-.703-.67z"/> - <path fill="#294200" d="M200.73 298.03l.703.67-.703-.67z"/> - <path fill="#5a5231" d="M201.44 298.03l.703.67-.703-.67z"/> - <path fill="#7b7373" d="M202.14 298.03l.704.67-.704-.67z"/> - <path fill="#ada5a5" d="M202.85 298.03l.703.67-.703-.67z"/> - <path fill="#efefef" d="M204.02 298.26l.47.224-.47-.224z"/> - <path fill="#9c9494" d="M204.96 298.03l.704.67-.704-.67z"/> - <path fill="#5a6b52" d="M205.66 298.03l.703.67-.703-.67z"/> - <path fill="#396b10" d="M206.36 298.03l.703.67-.703-.67z"/> - <path fill="#397b00" d="M207.07 298.03l.703.67-.703-.67z"/> - <path fill="#428c00" d="M205.66 298.7v.67h6.33v.67h-6.33v.668h1.407v.67c-3.843.2-5.79 1.557-7.738 4.685l11.958-.67v.67c-3.244.98-7.965.63-9.146 4.017 4.49-1.744 10.988-2.342 13.366-6.694l-4.22 2.008 2.11-2.678-6.332-.67v-.67l11.256.67v.67h-2.11v.67l9.145-.67v-.67h-2.11v-.67h4.22v-.668l-5.627 1.34-16.18-3.348z"/> - <path fill="#294200" d="M213.4 298.03l.704.67-.704-.67z"/> - <path fill="#315221" d="M214.1 298.03l.704.67-.704-.67z"/> - <path fill="#efefef" d="M216.92 298.03l.703.67-.703-.67z"/> - <path fill="#314231" d="M217.62 298.03l.704.67-.704-.67z"/> - <path fill="#294200" d="M220.43 298.03l1.407 1.34-1.407-1.34z"/> - <path fill="#397b00" d="M223.01 298.26l.47.224-.47-.224m3.05-.223l.702.67-.704-.67z"/> - <path fill="#efefef" d="M227.47 298.03l.704.67-.704-.67z"/> - <path fill="#ada5a5" d="M230.28 298.03l.704.67-.704-.67z"/> - <path fill="#397b00" d="M230.99 298.03l.703.67-.703-.67z"/> - <path fill="#294200" d="M232.86 298.26l.47.224-.47-.224z"/> - <path fill="#295200" d="M238.02 298.03l2.11 1.34v-.67l-2.11-.67z"/> - <path fill="#103900" d="M238.96 298.48l.235.446-.235-.446z"/> - <path fill="#294200" d="M240.83 298.03l.703.67-.703-.67z"/> - <path fill="#bdbdbd" d="M249.98 298.03l.704.67-.704-.67z"/> - <path fill="#52525a" d="M250.68 298.03l.703.67-.703-.67z"/> - <path fill="#cecece" d="M251.39 298.03l.703.67-.703-.67m4.925 0l-1.407 2.008 1.407-2.008z"/> - <path fill="#63636b" d="M257.01 298.03l.704.67-.704-.67z"/> - <path fill="#bdbdbd" d="M257.72 298.03l.703.67-.703-.67z"/> - <path fill="#185200" d="M269.68 298.03l.703.67-.703-.67z"/> - <path fill="#184a00" d="M272.49 298.03l.703.67-.703-.67z"/> - <path fill="#319400" d="M273.19 298.03l-4.22 6.694c2.666-1.298 5.056-3.697 4.22-6.694z"/> - <path fill="#184a00" d="M273.9 298.03l.703.67-.703-.67z"/> - <path fill="#cecece" d="M274.6 298.03l.704.67-.704-.67z"/> - <path fill="#184a00" d="M275.31 298.03l.703.67-.703-.67z"/> - <path fill="#296300" d="M276.71 298.03l.703.67-.703-.67z"/> - <path fill="#9c9494" d="M277.42 298.03l.704.67-.704-.67z"/> - <path fill="#214210" d="M278.12 298.03l.703.67-.703-.67z"/> - <path fill="#184a00" d="M280.23 298.03l1.407 1.34-1.407-1.34z"/> - <path fill="#297b00" d="M280.93 298.03l1.407 1.34-1.407-1.34z"/> - <path fill="#103900" d="M281.64 298.03l.703.67-.703-.67z"/> - <path fill="#297b00" d="M283.04 298.03l.704.67-.704-.67z"/> - <path fill="#296300" d="M283.75 298.03l.703.67-.703-.67z"/> - <path fill="#185200" d="M288.67 298.03l.704.67-.704-.67zm5.63 0l.704.67-.704-.67z"/> - <path fill="#103900" d="M296.41 298.03l.703.67-.703-.67z"/> - <path fill="#296300" d="M309.07 298.03l.703.67-.703-.67z"/> - <path fill="#425242" d="M309.78 298.03l.703.67-.703-.67z"/> - <path fill="#efefef" d="M310.48 298.03l.703.67-.703-.67z"/> - <path fill="#bdbdbd" d="M311.18 298.03l.704.67-.704-.67z"/> - <path fill="#8c8c8c" d="M311.89 298.03l.703.67-.703-.67z"/> - <path fill="#5a6b52" d="M312.59 298.03l.703.67-.703-.67z"/> - <path fill="#185200" d="M313.29 298.03l.703.67-.703-.67z"/> - <path fill="#184a00" d="M314 298.03l.704.67-.704-.67z"/> - <path fill="#7b7373" d="M314.7 298.03l.703.67-.703-.67z"/> - <path fill="#294200" d="M194.64 299.15l.235.446-.235-.446m1.876-.446l.704.67-.704-.67z"/> - <path fill="#526b42" d="M197.22 298.7l.703.67-.703-.67z"/> - <path fill="#8c8c8c" d="M198.39 298.93l.47.224-.47-.224z"/> - <path fill="#bdbdbd" d="M199.33 298.7l.704.67-.704-.67z"/> - <path fill="#dedede" d="M200.03 298.7l.703.67-.703-.67z"/> - <path fill="#9c9494" d="M202.85 298.7l.703.67-.703-.67z"/> - <path d="M203.55 298.7l.703.67-.703-.67z"/> - <path fill="#295200" d="M204.25 298.7l.703.67-.703-.67z"/> - <path fill="#397b00" d="M204.96 298.7l.704.67-.704-.67z"/> - <path fill="#292100" d="M214.1 298.7l.704.67-.704-.67z"/> - <path fill="#8c8c8c" d="M214.8 298.7l.703.67-.703-.67z"/> - <path fill="#ada5a5" d="M216.92 298.7l.703.67-.703-.67z"/> - <path fill="#63636b" d="M217.62 298.7l.704.67-.704-.67z"/> - <path fill="#103900" d="M218.32 298.7l.703.67-.703-.67z"/> - <path fill="#001000" d="M220.43 298.7l.704.67-.704-.67z"/> - <path fill="#295200" d="M221.84 298.7l.704.67-.704-.67z"/> - <path fill="#103900" d="M222.54 298.7l.703.67-.703-.67z"/> - <path fill="#397b00" d="M224.65 298.7l.704.67-.704-.67z"/> - <path fill="#214210" d="M225.36 298.7l.703.67-.703-.67z"/> - <path fill="#8c8c8c" d="M226.06 298.7l.703.67-.703-.67z"/> - <path fill="#efefef" d="M230.28 298.7l.704.67-.704-.67z"/> - <path fill="#295200" d="M230.99 298.7l.703.67-.703-.67z"/> - <path fill="#103900" d="M233.8 298.7l1.407 1.34-1.407-1.34z"/> - <path fill="#295200" d="M240.83 298.7l.703.67-.703-.67z"/> - <path fill="#294200" d="M242.94 298.7v2.678h.703l-.703-2.678z"/> - <path fill="#295200" d="M245.06 298.7l.703.67-.703-.67z"/> - <path fill="#7b7373" d="M251.39 298.7l.703.67-.703-.67z"/> - <path fill="#9c9494" d="M252.09 298.7l2.11 2.678-2.11-2.678z"/> - <path fill="#7b7373" d="M256.31 298.7l-1.407 2.008 1.407-2.008z"/> - <path fill="#efefef" d="M257.01 298.7l.704.67-.704-.67z"/> - <path fill="#184a00" d="M269.91 299.15l.235.446-.235-.446z"/> - <path d="M271.79 298.7l.704.67-.704-.67z"/> - <path fill="#297b00" d="M272.49 298.7l.703.67-.703-.67z"/> - <path fill="#315221" d="M273.9 298.7l.703.67-.703-.67z"/> - <path fill="#314231" d="M274.6 298.7l.704.67-.704-.67z"/> - <path fill="#103900" d="M276.71 298.7l.703.67-.703-.67z"/> - <path fill="#425242" d="M277.42 298.7l.704.67-.704-.67z"/> - <path fill="#297b00" d="M278.12 298.7l.703.67-.703-.67z"/> - <path fill="#103900" d="M280.23 298.7l.704.67-.704-.67m2.814 0l.704.67-.704-.67z"/> - <path fill="#184a00" d="M288.67 298.7l.704.67-.704-.67z"/> - <path fill="#296300" d="M295 298.7l.703.67-.703-.67z"/> - <path fill="#103900" d="M295.71 298.7l.704.67-.704-.67z"/> - <path fill="#297b00" d="M309.78 298.7l.703.67-.703-.67z"/> - <path fill="#103910" d="M310.48 298.7l.703.67-.703-.67z"/> - <path fill="#ada5a5" d="M311.18 298.7l.704.67-.704-.67z"/> - <path fill="#efefef" d="M313.29 298.7l.703.67-.703-.67z"/> - <path fill="#9c9494" d="M314 298.7l.704.67-.704-.67z"/> - <path fill="#52525a" d="M314.7 298.7l.703.67-.703-.67z"/> - <path fill="#424242" d="M315.4 298.7l.703.67-.703-.67z"/> - <path fill="#dedede" d="M193.7 299.37l.704.67-.704-.67z"/> - <path fill="#213918" d="M195.11 299.37l.703.67-.703-.67z"/> - <path fill="#9c9494" d="M195.81 299.37l.703.67-.703-.67z"/> - <path fill="#efefef" d="M196.51 299.37l.704.67-.704-.67z"/> - <path fill="#bdbdbd" d="M203.55 299.37l1.407 1.34-1.407-1.34z"/> - <path fill="#214210" d="M204.25 299.37l.703.67-.703-.67z"/> - <path fill="#294200" d="M204.96 299.37v.67h3.518l-3.518-.67z"/> - <path fill="#295200" d="M208.47 299.37l.703.67-.703-.67z"/> - <path fill="#397b00" d="M209.18 299.37l.703.67-.703-.67z"/> - <path fill="#295200" d="M209.88 299.37l.703.67-.703-.67z"/> - <path fill="#294200" d="M210.58 299.37l.704.67-.704-.67z"/> - <path fill="#295200" d="M211.29 299.37l.704.67-.704-.67z"/> - <path fill="#213918" d="M214.8 299.37l.703.67-.703-.67z"/> - <path fill="#cecece" d="M215.51 299.37l.703.67-.703-.67z"/> - <path fill="#7b7373" d="M216.21 299.37l.704.67-.704-.67z"/> - <path fill="#ad1810" d="M216.92 299.37l.703.67-.703-.67z"/> - <path fill="#941808" d="M218.32 299.37l.703.67-.703-.67z"/> - <path fill="#397b00" d="M219.03 299.37l.704.67-.704-.67z"/> - <path fill="#295200" d="M219.73 299.37l.703.67-.703-.67z"/> - <path fill="#941808" d="M220.43 299.37l.704.67-.704-.67z"/> - <path fill="#de2110" d="M221.14 299.37l-.704 1.34.704-1.34z"/> - <path fill="#b51010" d="M221.84 299.37l.704.67-.704-.67z"/> - <path fill="#294200" d="M222.54 299.37l.703.67-.703-.67z"/> - <path fill="#295200" d="M223.25 299.37l.703.67-.703-.67z"/> - <path fill="#102110" d="M223.95 299.37l.704.67-.704-.67z"/> - <path fill="#63636b" d="M224.65 299.37l.704.67-.704-.67z"/> - <path fill="#bdbdbd" d="M225.36 299.37l.703.67-.703-.67z"/> - <path fill="#315221" d="M230.99 299.37l.703.67-.703-.67z"/> - <path fill="#397b00" d="M235.21 299.37l2.11 2.008-2.11-2.008m4.22 0l.704.67-.703-.67z"/> - <path fill="#294200" d="M241.77 299.82l.235.446-.235-.446m3.283-.446l.703.67-.703-.67z"/> - <path fill="#6b735a" d="M267.57 299.37l.703.67-.703-.67z"/> - <path fill="#297b00" d="M271.08 299.37l.703.67-.703-.67z"/> - <path fill="#184a00" d="M271.79 299.37l.704.67-.704-.67z"/> - <path fill="#101810" d="M273.9 299.37l.703.67-.703-.67z"/> - <path fill="#297b00" d="M274.6 299.37l.704.67-.704-.67z"/> - <path fill="#001000" d="M276.71 299.37l.703.67-.703-.67z"/> - <path fill="#296300" d="M277.42 299.37l.704.67-.704-.67m2.11 0l.704.67-.703-.67z"/> - <path fill="#185200" d="M280.7 299.6l.47.224-.47-.224z"/> - <path fill="#184a00" d="M283.04 299.37l.704.67-.704-.67z"/> - <path fill="#297b00" d="M285.15 299.37l1.407 1.34-1.407-1.34z"/> - <path fill="#184a00" d="M295 299.37l.703.67-.703-.67z"/> - <path fill="#297b00" d="M297.11 299.37l1.407 1.34-1.407-1.34z"/> - <path fill="#185200" d="M297.82 299.37l.703.67-.703-.67z"/> - <path fill="#184a00" d="M298.52 299.37v.67h2.11l-2.11-.67z"/> - <path fill="#296300" d="M300.63 299.37l.703.67-.703-.67z"/> - <path fill="#184a00" d="M301.33 299.37v.67h3.518l-3.518-.67z"/> - <path fill="#296300" d="M304.85 299.37l.703.67-.703-.67z"/> - <path fill="#184a00" d="M305.56 299.37l.704.67-.704-.67z"/> - <path fill="#296300" d="M306.26 299.37l.703.67-.703-.67z"/> - <path fill="#297b00" d="M306.96 299.37l.703.67-.703-.67z"/> - <path fill="#185200" d="M311.18 299.37l1.407 1.34-1.407-1.34z"/> - <path fill="#9c9494" d="M311.89 299.37l.703.67-.703-.67z"/> - <path fill="#bdbdbd" d="M193.7 300.04l.704.67-.704-.67z"/> - <path fill="#313931" d="M194.4 300.04l.703.67-.703-.67z"/> - <path fill="#efefef" d="M195.11 300.04l-1.407.67v.67l1.407-1.34z"/> - <path fill="#103900" d="M204.96 300.04l.704.67-.704-.67z"/> - <path fill="#295200" d="M211.99 300.04l.703.67-.703-.67z"/> - <path fill="#294200" d="M212.69 300.04l.703.67-.703-.67m2.814 0l.703.67-.703-.67z"/> - <path fill="#391810" d="M216.21 300.04l.704.67-.704-.67z"/> - <path fill="#423100" d="M219.49 300.26l.47.224-.47-.224z"/> - <path fill="#ce2110" d="M221.14 300.04l.703.67-.703-.67z"/> - <path fill="#631808" d="M221.84 300.04l.704.67-.704-.67z"/> - <path fill="#293100" d="M222.54 300.04l.703.67-.703-.67z"/> - <path fill="#397b00" d="M223.25 300.04v.67h2.814l-2.814-.67z"/> - <path fill="#294200" d="M226.06 300.04l.703.67-.703-.67z"/> - <path fill="#315221" d="M226.76 300.04l.704.67-.704-.67z"/> - <path fill="#5a6b52" d="M227.47 300.04l.704.67-.704-.67z"/> - <path fill="#ada5a5" d="M228.17 300.04l.703.67-.703-.67z"/> - <path fill="#6b735a" d="M230.99 300.04l.703.67-.703-.67z"/> - <path fill="#294200" d="M235.21 300.04l.703.67-.703-.67m4.22 0l.704 2.008h.704l-1.407-2.008z"/> - <path fill="#315221" d="M245.06 300.04l.703.67-.703-.67z"/> - <path fill="#bdbdbd" d="M254.2 300.04l.703.67-.703-.67z"/> - <path fill="#4a6342" d="M267.57 300.04l.703.67-.703-.67z"/> - <path fill="#103900" d="M271.08 300.04l.703.67-.703-.67z"/> - <path fill="#185200" d="M273.19 300.04l.703.67-.703-.67z"/> - <path fill="#103900" d="M273.9 300.04l-.703 1.34.703-1.34z"/> - <path fill="#297b00" d="M276.01 300.04l1.407 1.34-1.407-1.34z"/> - <path fill="#103900" d="M276.71 300.04l.703.67-.703-.67z"/> - <path fill="#184a00" d="M279.53 300.04l.703.67-.703-.67z"/> - <path fill="#103900" d="M280.23 300.04l.704.67-.704-.67z"/> - <path fill="#297b00" d="M282.34 300.04l1.407 1.34-1.407-1.34z"/> - <path fill="#185200" d="M283.04 300.04l.704.67-.704-.67m2.11 0l.704.67-.703-.67z"/> - <path fill="#297b00" d="M295.71 300.04l.704.67-.704-.67z"/> - <path fill="#184a00" d="M296.41 300.04l.703.67-.703-.67z"/> - <path fill="#185200" d="M297.11 300.04l.704.67-.704-.67z"/> - <path fill="#297b00" d="M305.56 300.04l.704.67-.704-.67z"/> - <path fill="#103900" d="M306.26 300.04l.703.67-.703-.67z"/> - <path fill="#101810" d="M306.96 300.04l.703.67-.703-.67z"/> - <path fill="#425242" d="M307.67 300.04l.703.67-.703-.67z"/> - <path fill="#315221" d="M308.37 300.04l.704.67-.704-.67z"/> - <path fill="#185200" d="M309.07 300.04l.703.67-.703-.67z"/> - <path fill="#296300" d="M309.78 300.04l.703.67-.703-.67z"/> - <path fill="#8c8c8c" d="M312.59 300.04l.703.67-.703-.67z"/> - <path fill="#ada5a5" d="M202.85 300.71l.703.67-.703-.67z"/> - <path fill="#5a5231" d="M203.55 300.71l.703.67-.703-.67z"/> - <path fill="#295200" d="M204.25 300.71l.703.67-.703-.67z"/> - <path fill="#397b00" d="M204.96 300.71l.704.67-.704-.67z"/> - <path fill="#294200" d="M206.13 300.93l.47.224-.47-.224z"/> - <path fill="#397b00" d="M216.21 300.71l.704.67-.704-.67z"/> - <path fill="#293100" d="M216.92 300.71l.703.67-.703-.67z"/> - <path fill="#631808" d="M217.62 300.71l.704.67-.704-.67z"/> - <path fill="#941808" d="M218.32 300.71l.703.67-.703-.67z"/> - <path fill="#295200" d="M219.03 300.71l.704.67-.704-.67z"/> - <path fill="#294200" d="M219.73 300.71l.703.67-.703-.67z"/> - <path fill="#ad1810" d="M220.43 300.71l.704.67-.704-.67z"/> - <path fill="#392100" d="M221.14 300.71l.703.67-.703-.67z"/> - <path fill="#397b00" d="M227.47 300.71l-2.11 2.008 2.11-2.008z"/> - <path fill="#294200" d="M228.17 300.71v1.34h1.407l-1.407-1.34z"/> - <path fill="#213918" d="M228.87 300.71l.703.67-.703-.67z"/> - <path fill="#9c9494" d="M229.58 300.71l1.407 1.34-1.407-1.34z"/> - <path fill="#8c8c8c" d="M230.99 300.71l.703.67-.703-.67z"/> - <path fill="#294200" d="M235.91 300.71l.704.67-.704-.67z"/> - <path fill="#397b00" d="M239.43 300.71l.703.67-.703-.67z"/> - <path fill="#295200" d="M241.54 300.71l.704.67-.704-.67z"/> - <path fill="#8c8c8c" d="M245.06 300.71l.703.67-.703-.67m9.145 0l.704.67-.705-.67z"/> - <path fill="#294221" d="M267.57 300.71l.703.67-.703-.67z"/> - <path fill="#296300" d="M271.08 300.71l.703.67-.703-.67z"/> - <path fill="#297b00" d="M273.9 300.71l.703.67-.703-.67z"/> - <path fill="#184a00" d="M276.01 300.71l.703.67-.703-.67z"/> - <path fill="#297b00" d="M278.82 300.71l.703.67-.703-.67z"/> - <path d="M279.53 300.71l.703.67-.703-.67z"/> - <path fill="#297b00" d="M280.23 300.71l.704.67-.704-.67z"/> - <path fill="#185200" d="M282.34 300.71l.703.67-.703-.67z"/> - <path fill="#103900" d="M285.15 300.71l.703.67-.703-.67z"/> - <path fill="#296300" d="M287.97 300.71l.703.67-.703-.67z"/> - <path fill="#184a00" d="M289.14 300.93l.47.224-.47-.224z"/> - <path fill="#185200" d="M290.08 300.71l.703.67-.703-.67z"/> - <path fill="#297b00" d="M290.78 300.71l-.703 1.34.703-1.34m2.814 0l.703.67-.703-.67m13.366 0l.703.67-.703-.67z"/> - <path fill="#103910" d="M307.67 300.71l.703.67-.703-.67z"/> - <path fill="#bdbdbd" d="M308.37 300.71l.704.67-.704-.67z"/> - <path fill="#efefef" d="M309.07 300.71l.703.67-.703-.67z"/> - <path fill="#bdbdbd" d="M309.78 300.71l.703.67-.703-.67z"/> - <path fill="#8c8c8c" d="M310.48 300.71l.703.67-.703-.67z"/> - <path fill="#294221" d="M311.18 300.71l.704.67-.704-.67z"/> - <path fill="#296300" d="M311.89 300.71l.703.67-.703-.67z"/> - <path fill="#297b00" d="M312.59 300.71l.703.67-.703-.67z"/> - <path fill="#63636b" d="M313.29 300.71l1.407 1.34-1.407-1.34z"/> - <path fill="#efefef" d="M201.44 301.38l-1.407 2.008 1.407-2.008z"/> - <path fill="#425242" d="M202.14 301.38l.704.67-.704-.67z"/> - <path fill="#397b00" d="M202.85 301.38l.703.67-.703-.67z"/> - <path fill="#294200" d="M207.54 301.6l.47.224-.47-.224z"/> - <path fill="#397b00" d="M208.71 301.83l.235.446-.235-.446z"/> - <path fill="#294200" d="M218.79 301.6l.47.224-.47-.224z"/> - <path d="M220.43 301.38l.704.67-.704-.67z"/> - <path fill="#397b00" d="M221.14 301.38l.703.67-.703-.67z"/> - <path fill="#294200" d="M223.25 301.38v.67h2.11l-2.11-.67z"/> - <path fill="#103900" d="M229.58 301.38l.703.67-.703-.67z"/> - <path fill="#bdbdbd" d="M230.99 301.38l.703.67-.703-.67z"/> - <path fill="#397b00" d="M231.69 301.38l.703.67-.703-.67z"/> - <path fill="#294200" d="M232.39 301.38l.703.67-.703-.67z"/> - <path fill="#422100" d="M233.1 301.38l.704.67-.704-.67z"/> - <path fill="#4a4208" d="M233.8 301.38l.703.67-.703-.67z"/> - <path fill="#103900" d="M236.61 301.38l.703.67-.703-.67z"/> - <path fill="#295200" d="M237.32 301.38v1.34h1.407l-1.407-1.34zm7.03 0l.704.67-.704-.67z"/> - <path fill="#dedede" d="M245.06 301.38l.703.67-.703-.67z"/> - <path fill="#cecece" d="M266.86 301.38l.703.67-.703-.67z"/> - <path fill="#185200" d="M267.57 301.38l.703.67-.703-.67z"/> - <path fill="#297b00" d="M269.68 301.38l1.407 1.34-1.407-1.34z"/> - <path fill="#185200" d="M272.49 301.38l.703.67-.703-.67z"/> - <path fill="#296300" d="M273.19 301.38l.703.67-.703-.67z"/> - <path fill="#297b00" d="M275.31 301.38l1.407 1.34-1.407-1.34z"/> - <path fill="#103900" d="M276.01 301.38l.703.67-.703-.67z"/> - <path fill="#184a00" d="M279.29 301.6l.47.224-.47-.224m3.048-.223l.704.67-.704-.67z"/> - <path fill="#297b00" d="M284.45 301.38l1.407 1.34-1.407-1.34z"/> - <path fill="#185200" d="M285.15 301.38l.703.67-.703-.67z"/> - <path fill="#296300" d="M290.78 301.38l.703.67-.703-.67z"/> - <path fill="#184a00" d="M291.49 301.38l.704.67-.704-.67z"/> - <path fill="#103900" d="M292.19 301.38l.703.67-.703-.67z"/> - <path fill="#296300" d="M292.89 301.38l.704.67-.704-.67z"/> - <path fill="#185200" d="M297.82 301.38l.703.67-.703-.67z"/> - <path fill="#184a00" d="M298.52 301.38l.703.67-.703-.67z"/> - <path fill="#296300" d="M299.22 301.38v1.34h1.407l-1.407-1.34z"/> - <path fill="#297b00" d="M299.93 301.38l.704.67-.704-.67z"/> - <path fill="#185200" d="M308.37 301.38l.704.67-.704-.67z"/> - <path fill="#8c8c8c" d="M309.07 301.38l.703.67-.703-.67z"/> - <path fill="#bdbdbd" d="M311.89 301.38l.703.67-.703-.67z"/> - <path fill="#6b735a" d="M312.59 301.38l.703.67-.703-.67z"/> - <path fill="#082108" d="M313.29 301.38l.703.67-.703-.67z"/> - <path fill="#efefef" d="M314.7 301.38l.703.67-.703-.67z"/> - <path fill="#314231" d="M201.44 302.05l.703.67-.703-.67z"/> - <path fill="#295200" d="M209.18 302.05l.703.67-.703-.67z"/> - <path fill="#294200" d="M209.88 302.05v.67h2.814l-2.814-.67z"/> - <path fill="#295200" d="M212.69 302.05l.703.67-.703-.67z"/> - <path fill="#397b00" d="M213.4 302.05v2.008l2.814-2.008H213.4z"/> - <path fill="#294200" d="M216.68 302.27l.47.224-.47-.224z"/> - <path fill="#397b00" d="M217.62 302.05l.704.67-.704-.67z"/> - <path fill="#103900" d="M221.84 302.05l.704.67-.704-.67z"/> - <path fill="#295200" d="M222.54 302.05l.703.67-.703-.67z"/> - <path fill="#214210" d="M226.06 302.05l.703.67-.703-.67z"/> - <path fill="#63636b" d="M226.76 302.05l.704.67-.704-.67z"/> - <path fill="#8c8c8c" d="M227.47 302.05l-.704 1.34.704-1.34z"/> - <path fill="#bdbdbd" d="M228.17 302.05v1.34h1.407l-1.407-1.34z"/> - <path fill="#cecece" d="M230.05 302.27l.47.224-.47-.224z"/> - <path d="M231.69 302.05l.703.67-.703-.67z"/> - <path fill="#bd2110" d="M232.39 302.05l.703.67-.703-.67zm1.41 0l.703.67-.703-.67z"/> - <path fill="#294200" d="M234.5 302.05l.703.67-.703-.67z"/> - <path fill="#397b00" d="M240.6 302.27l.47.224-.47-.224z"/> - <path fill="#5a6b52" d="M244.35 302.05l.704.67-.704-.67z"/> - <path fill="#7b7373" d="M266.86 302.05l.703.67-.703-.67z"/> - <path fill="#103900" d="M269.68 302.05l.703.67-.703-.67z"/> - <path fill="#297b00" d="M271.79 302.05l1.407 1.34-1.407-1.34z"/> - <path fill="#103900" d="M272.49 302.05l.703.67-.703-.67z"/> - <path fill="#184a00" d="M275.54 302.5l.235.446-.235-.446z"/> - <path fill="#297b00" d="M278.12 302.05l1.407 1.34-1.407-1.34z"/> - <path fill="#082108" d="M278.82 302.05l.703.67-.703-.67z"/> - <path fill="#296300" d="M282.11 302.27l.47.224-.47-.224z"/> - <path fill="#185200" d="M284.45 302.05l.703.67-.703-.67m8.676.446l.235.446-.234-.446z"/> - <path fill="#103900" d="M293.83 302.5l.235.446-.235-.446z"/> - <path fill="#297b00" d="M294.3 302.05l.704.67-.704-.67z"/> - <path fill="#296300" d="M296.41 302.05l.703.67-.703-.67z"/> - <path fill="#297b00" d="M297.11 302.05l-1.407 2.008 1.407-2.008z"/> - <path fill="#184a00" d="M300.63 302.05v.67h2.11l-2.11-.67z"/> - <path fill="#185200" d="M302.74 302.05l1.407 1.34v-1.34h-1.407z"/> - <path fill="#297b00" d="M304.15 302.05l.703.67-.703-.67m4.925 0l2.11 2.008-2.11-2.008z"/> - <path fill="#63636b" d="M309.78 302.05l2.11 2.008-2.11-2.008z"/> - <path fill="#efefef" d="M313.29 302.05l.703.67-.703-.67z"/> - <path fill="#8c8c8c" d="M314.47 302.27l.47.224-.47-.224z"/> - <path fill="#314231" d="M200.73 302.72l.703.67-.703-.67z"/> - <path fill="#292100" d="M213.4 302.72l.704.67-.704-.67z"/> - <path fill="#397b00" d="M223.25 302.72l2.814 1.34v-.67l-2.814-.67z"/> - <path fill="#103900" d="M223.95 302.72l.704.67-.704-.67z"/> - <path fill="#292921" d="M224.65 302.72l.704.67-.704-.67z"/> - <path fill="#7b7373" d="M225.36 302.72l.703.67-.703-.67z"/> - <path fill="#bdbdbd" d="M226.06 302.72l.703.67-.703-.67z"/> - <path fill="#9c9494" d="M227.47 302.72l.704.67-.704-.67z"/> - <path fill="#dedede" d="M229.58 302.72l.703.67-.703-.67z"/> - <path fill="#734a42" d="M231.69 302.72l.703.67-.703-.67z"/> - <path fill="#423100" d="M234.5 302.72l.703.67-.703-.67z"/> - <path fill="#295200" d="M241.07 303.17l.235.446-.235-.446z"/> - <path fill="#397b00" d="M243.65 302.72l.703.67-.703-.67z"/> - <path fill="#9c9494" d="M244.35 302.72l.704.67-.704-.67z"/> - <path fill="#315221" d="M266.86 302.72l.703.67-.703-.67z"/> - <path fill="#185200" d="M269.21 303.17l.235.446-.235-.446z"/> - <path fill="#296300" d="M269.68 302.72l.703.67-.703-.67z"/> - <path fill="#103900" d="M271.79 302.72l.704.67-.704-.67z"/> - <path fill="#297b00" d="M274.6 302.72l.704.67-.704-.67z"/> - <path fill="#184a00" d="M278.35 303.17l.235.446-.235-.446m3.283-.446l.704.67-.704-.67z"/> - <path fill="#103900" d="M284.45 302.72l.703.67-.703-.67z"/> - <path fill="#297b00" d="M286.56 302.72l.704.67-.704-.67z"/> - <path fill="#185200" d="M287.26 302.72l.703.67-.703-.67z"/> - <path fill="#184a00" d="M285.86 303.39v.67l6.332-.67h-6.332z"/> - <path fill="#296300" d="M292.19 302.72l-.704 1.34.704-1.34z"/> - <path d="M294.3 302.72l.704.67-.704-.67z"/> - <path fill="#103900" d="M295 302.72l.703.67-.703-.67z"/> - <path fill="#185200" d="M297.11 302.72l.704.67-.704-.67z"/> - <path fill="#103900" d="M297.82 302.72l.703.67-.703-.67z"/> - <path fill="#296300" d="M298.52 302.72l.703.67-.703-.67z"/> - <path d="M304.15 302.72l.703.67-.703-.67z"/> - <path fill="#52525a" d="M304.85 302.72l.703.67-.703-.67z"/> - <path fill="#315221" d="M305.56 302.72l.704.67-.704-.67z"/> - <path fill="#185200" d="M306.26 302.72l.703.67-.703-.67z"/> - <path fill="#297b00" d="M306.96 302.72l.703.67-.703-.67z"/> - <path fill="#314231" d="M200.03 303.39l.703.67-.703-.67z"/> - <path fill="#295200" d="M209.18 303.39l-.703 1.34.703-1.34z"/> - <path fill="#294200" d="M209.88 303.39l.703.67-.703-.67z"/> - <path fill="#295200" d="M212.69 303.39l-.703 2.008.703-2.008z"/> - <path fill="#103900" d="M215.51 303.39l.703.67-.703-.67z"/> - <path fill="#6b735a" d="M216.21 303.39l.704.67-.704-.67z"/> - <path fill="#315221" d="M216.92 303.39l.703.67-.703-.67z"/> - <path fill="#295200" d="M217.62 303.39l.704.67-.704-.67z"/> - <path fill="#397b00" d="M218.32 303.39v.67h2.814l-2.814-.67z"/> - <path fill="#294200" d="M221.14 303.39l.703.67-.703-.67z"/> - <path fill="#103900" d="M221.84 303.39l.704.67-.704-.67z"/> - <path fill="#292100" d="M222.54 303.39l.703.67-.703-.67z"/> - <path fill="#428c00" d="M219.73 306.74l14.773-2.008c-4.594-1.838-11.355-1.68-14.773 2.008z"/> - <path fill="#397b00" d="M228.17 303.39v.67h2.11l-2.11-.67z"/> - <path fill="#294200" d="M230.28 303.39v.67h2.11l-2.11-.67z"/> - <path fill="#422100" d="M232.39 303.39l.703.67-.703-.67z"/> - <path fill="#5a2908" d="M233.1 303.39l.704.67-.704-.67z"/> - <path fill="#5a1008" d="M233.8 303.39l.703.67-.703-.67z"/> - <path fill="#294200" d="M234.5 303.39l1.407 1.34-1.407-1.34z"/> - <path fill="#214210" d="M243.65 303.39l.703.67-.703-.67z"/> - <path fill="#bdbdbd" d="M266.16 303.39l.704.67-.704-.67z"/> - <path fill="#185200" d="M270.38 304.73l2.11-1.34-2.11 1.34z"/> - <path fill="#103900" d="M274.6 303.39l.704.67-.704-.67z"/> - <path fill="#297b00" d="M277.42 303.39l-1.407 2.008h2.11l-.703-2.008z"/> - <path fill="#296300" d="M281.4 303.61l.47.224-.47-.224z"/> - <path fill="#185200" d="M283.75 303.39l.703.67-.703-.67z"/> - <path fill="#296300" d="M284.92 303.61l.47.224-.47-.224z"/> - <path fill="#185200" d="M290.08 303.39l.703.67-.703-.67z"/> - <path fill="#297b00" d="M292.19 303.39l-.704 1.34.704-1.34z"/> - <path fill="#319400" d="M292.89 303.39v.67l9.85 2.677v-.67l-9.85-2.677z"/> - <path fill="#296300" d="M295 303.39l.703.67-.703-.67z"/> - <path fill="#185200" d="M298.52 303.39l.703.67-.703-.67z"/> - <path fill="#103900" d="M299.22 303.39l.704.67-.704-.67z"/> - <path fill="#185200" d="M299.93 303.39l.704.67-.704-.67z"/> - <path fill="#297b00" d="M304.15 303.39l1.407 1.34-1.407-1.34z"/> - <path fill="#314231" d="M304.85 303.39l.703.67-.703-.67z"/> - <path fill="#cecece" d="M305.56 303.39l1.407 1.34-1.407-1.34z"/> - <path fill="#dedede" d="M306.26 303.39l.703.67-.703-.67z"/> - <path fill="#9c9494" d="M306.96 303.39l.703.67-.703-.67z"/> - <path fill="#6b735a" d="M307.67 303.39l.703.67-.703-.67z"/> - <path fill="#214210" d="M308.37 303.39l.704.67-.704-.67z"/> - <path fill="#297b00" d="M309.07 303.39l.703.67-.703-.67z"/> - <path fill="#63636b" d="M199.33 304.06l.704.67-.704-.67z"/> - <path fill="#397b00" d="M200.03 304.06l.703.67-.703-.67m2.814 0v1.34h2.11v-1.34h-2.11z"/> - <path fill="#295200" d="M204.96 304.06l.704.67-.704-.67z"/> - <path fill="#294200" d="M205.66 304.06l.703.67-.703-.67z"/> - <path fill="#295200" d="M206.36 304.06l.703.67-.703-.67z"/> - <path fill="#294200" d="M207.54 304.28l.47.224-.47-.224z"/> - <path fill="#8c8c8c" d="M215.51 304.06l.703.67-.703-.67z"/> - <path fill="#dedede" d="M217.62 304.06l.704.67-.704-.67z"/> - <path fill="#bdbdbd" d="M218.32 304.06v.67h2.814l-2.814-.67z"/> - <path fill="#52525a" d="M221.14 304.06l.703.67-.703-.67z"/> - <path fill="#397b00" d="M221.84 304.06l.704.67-.704-.67m12.663 0l.703.67-.703-.67z"/> - <path fill="#292100" d="M235.91 304.06v.67h2.11l-2.11-.67z"/> - <path fill="#295200" d="M238.02 304.06l.703.67-.703-.67z"/> - <path fill="#397b00" d="M240.13 304.06l.703.67-.703-.67z"/> - <path fill="#103900" d="M240.83 304.06l.703.67-.703-.67z"/> - <path fill="#313931" d="M243.65 304.06l.703.67-.703-.67z"/> - <path fill="#bd8c8c" d="M244.82 304.28l.47.224-.47-.224z"/> - <path fill="#845a52" d="M245.76 304.06l.703.67-.703-.67z"/> - <path fill="#9c4a42" d="M253.5 304.06l.704.67-.704-.67z"/> - <path fill="#ad524a" d="M254.2 304.06l.703.67-.703-.67z"/> - <path fill="#845a52" d="M261.94 304.06l.703.67-.703-.67z"/> - <path fill="#bd8c8c" d="M263.11 304.28l.47.224-.47-.224z"/> - <path fill="#293129" d="M266.16 304.06l.704.67-.704-.67z"/> - <path fill="#082108" d="M268.27 304.06l.703.67-.703-.67z"/> - <path fill="#103900" d="M277.42 304.06l.704.67-.704-.67z"/> - <path fill="#297b00" d="M280.23 304.06l-.703 1.34.703-1.34z"/> - <path fill="#103900" d="M280.93 304.06l.703.67-.703-.67z"/> - <path fill="#297b00" d="M283.04 304.06l1.407 1.34-1.407-1.34z"/> - <path fill="#184a00" d="M283.75 304.06l.703.67-.703-.67z"/> - <path fill="#319400" d="M283.75 306.07l17.587 2.678v2.677c1.992-5.878-14.25-9.76-17.587-5.355z"/> - <path fill="#103900" d="M292.19 304.06l.703.67-.703-.67z"/> - <path fill="#184a00" d="M292.89 304.06l.704.67-.704-.67z"/> - <path fill="#185200" d="M293.6 304.06l1.407 1.34-1.407-1.34z"/> - <path fill="#297b00" d="M294.3 304.06l.704.67-.704-.67z"/> - <path fill="#296300" d="M299.93 304.06l.704.67-.704-.67z"/> - <path fill="#082108" d="M300.63 304.06l.703.67-.703-.67z"/> - <path fill="#103900" d="M301.33 304.06l.703.67-.703-.67z"/> - <path fill="#296300" d="M302.04 304.06l.704.67-.704-.67z"/> - <path fill="#214210" d="M305.56 304.06l.704.67-.704-.67z"/> - <path fill="#9c9494" d="M309.07 304.06l.703.67-.703-.67z"/> - <path fill="#425242" d="M309.78 304.06l.703.67-.703-.67z"/> - <path fill="#185200" d="M310.95 304.28l.47.224-.47-.224z"/> - <path fill="#9c9494" d="M311.89 304.06l.703.67-.703-.67m-113.26.67l-1.407 2.008 1.407-2.01z"/> - <path fill="#397b00" d="M199.33 304.73l.704.67-.704-.67z"/> - <path fill="#295200" d="M200.73 304.73l.703.67-.703-.67z"/> - <path fill="#294200" d="M201.91 304.95l.47.224-.47-.224m9.38-.223l.703.67-.703-.67z"/> - <path fill="#315221" d="M214.8 304.73l.703.67-.703-.67z"/> - <path fill="#efefef" d="M219.73 304.73l-.704 1.34.704-1.34z"/> - <path fill="#293129" d="M220.43 304.73l.704.67-.704-.67z"/> - <path fill="#397b00" d="M232.86 304.95l.47.224-.47-.224z"/> - <path fill="#294200" d="M233.8 304.73l.703.67-.703-.67z"/> - <path fill="#423100" d="M234.5 304.73l.703.67-.703-.67z"/> - <path fill="#422100" d="M235.68 304.95l.47.224-.47-.224z"/> - <path fill="#5a2908" d="M236.61 304.73l.703.67-.703-.67z"/> - <path fill="#631808" d="M237.32 304.73v.67h2.11l-2.11-.67z"/> - <path fill="#ad1810" d="M239.43 304.73v.67h2.11l-2.11-.67z"/> - <path fill="#bd2110" d="M241.54 304.73l.704.67-.704-.67z"/> - <path fill="#de2110" d="M225.36 316.78v-.67l-4.22.67v-.67c19.037-5.743 47.093-5.743 66.128 0v.67l-3.517-.67c3.472 5.038 12.97 1.915 9.817-3.945-2.688-4.997-12.483-5.588-17.555-6.277-14.296-1.94-30.052-2.1-44.32.128-5.08.793-11.26 1.215-15.316 4.598-2.888 2.41-1.836 7.29 2.015 8.37 2.38.667 5.028-1.13 6.97-2.204z"/> - <path fill="#ce2110" d="M266.16 304.73l.704.67-.704-.67z"/> - <path fill="#7b1008" d="M268.97 304.73l.704.67-.704-.67z"/> - <path fill="#631808" d="M270.15 304.95l.47.224-.47-.224z"/> - <path fill="#6b2908" d="M271.08 304.73l.703.67-.703-.67z"/> - <path fill="#184a00" d="M273.9 304.73l.703.67-.703-.67z"/> - <path fill="#185200" d="M274.6 304.73l.704.67-.704-.67z"/> - <path fill="#296300" d="M275.31 304.73l.703.67-.703-.67z"/> - <path fill="#103900" d="M276.71 304.73l.703.67-.703-.67m3.518 0l-.704 1.34.703-1.34m2.814 0l.705.67-.704-.67z"/> - <path fill="#297b00" d="M293.6 304.73l.703.67-.703-.67z"/> - <path fill="#184a00" d="M295.47 304.95l.47.224-.47-.224z"/> - <path fill="#297b00" d="M296.41 304.73l-.704 1.34.704-1.34m4.22 0l.704.67-.703-.67z"/> - <path fill="#214210" d="M301.33 304.73l.703.67-.703-.67z"/> - <path fill="#8c8c8c" d="M302.04 304.73l1.407 1.34-1.407-1.34z"/> - <path fill="#7b7373" d="M302.74 304.73l.704.67-.704-.67z"/> - <path fill="#315221" d="M303.45 304.73l.703.67-.703-.67z"/> - <path fill="#185200" d="M304.15 304.73l.703.67-.703-.67z"/> - <path fill="#103910" d="M306.26 304.73l.703.67-.703-.67z"/> - <path fill="#efefef" d="M306.96 304.73l1.407 1.34-1.407-1.34z"/> - <path fill="#cecece" d="M310.48 304.73l.703.67-.703-.67z"/> - <path fill="#63636b" d="M311.18 304.73l.704.67-.704-.67z"/> - <path fill="#102110" d="M311.89 304.73l.703.67-.703-.67z"/> - <path fill="#cecece" d="M312.59 304.73l.703.67-.703-.67z"/> - <path fill="#294200" d="M198.62 305.4l4.22 2.008-4.22-2.008z"/> - <path fill="#397b00" d="M210.11 305.84l.235.446-.235-.446z"/> - <path fill="#294200" d="M210.58 305.4l.704.67-.704-.67z"/> - <path fill="#214210" d="M214.1 305.4l.704.67-.704-.67z"/> - <path fill="#cecece" d="M214.8 305.4l.703.67-.703-.67z"/> - <path fill="#314231" d="M219.73 305.4l.703.67-.703-.67z"/> - <path fill="#397b00" d="M228.17 305.4l.703.67-.703-.67z"/> - <path fill="#295200" d="M228.87 305.4l.703.67-.703-.67z"/> - <path fill="#294200" d="M229.58 305.4l.703.67-.703-.67z"/> - <path fill="#422100" d="M230.28 305.4l.704.67-.704-.67z"/> - <path fill="#520808" d="M230.99 305.4l.703.67-.703-.67z"/> - <path fill="#631808" d="M231.69 305.4l.703.67-.703-.67z"/> - <path fill="#ad1810" d="M232.39 305.4l.703.67-.703-.67z"/> - <path fill="#bd2110" d="M233.1 305.4l.704.67-.704-.67m41.506 0l.704.67-.704-.67z"/> - <path fill="#ad1810" d="M275.31 305.4l.703.67-.703-.67z"/> - <path fill="#7b1008" d="M276.01 305.4l.703.67-.703-.67z"/> - <path fill="#631808" d="M276.71 305.4l.703.67-.703-.67z"/> - <path fill="#422100" d="M277.42 305.4l.704.67-.704-.67z"/> - <path fill="#4a4208" d="M278.12 305.4l.703.67-.703-.67z"/> - <path fill="#184a00" d="M278.82 305.4l.703.67-.703-.67z"/> - <path fill="#296300" d="M280.23 305.4l.704.67-.704-.67z"/> - <path fill="#297b00" d="M282.34 305.4l.703.67-.703-.67z"/> - <path fill="#296300" d="M283.04 305.4l.704.67-.704-.67m1.407 0l3.518.67-3.518-.67z"/> - <path fill="#297b00" d="M287.26 305.4l.703.67-.703-.67z"/> - <path fill="#185200" d="M296.41 305.4l.703.67-.703-.67z"/> - <path fill="#082108" d="M297.11 305.4l.704.67-.704-.67z"/> - <path fill="#103900" d="M297.82 305.4l.703.67-.703-.67z"/> - <path fill="#297b00" d="M298.52 305.4l.703.67-.703-.67z"/> - <path fill="#185200" d="M302.04 305.4l.704.67-.704-.67z"/> - <path fill="#bdbdbd" d="M304.15 305.4l.703.67-.703-.67z"/> - <path fill="#6b735a" d="M304.85 305.4l.703.67-.703-.67z"/> - <path fill="#184a00" d="M305.56 305.4l.704.67-.704-.67z"/> - <path fill="#297b00" d="M306.26 305.4l.703.67-.703-.67z"/> - <path fill="#314231" d="M306.96 305.4l.703.67-.703-.67z"/> - <path fill="#efefef" d="M311.89 305.4l.703.67-.703-.67z"/> - <path fill="#dedede" d="M312.59 305.4l.703.67-.703-.67z"/> - <path fill="#292100" d="M197.92 306.07l.703.67-.703-.67z"/> - <path fill="#397b00" d="M202.85 306.07v1.34h1.407v-1.34h-1.407m5.16.446l.233.446-.234-.446z"/> - <path fill="#294200" d="M208.94 306.29l.47.224-.47-.224z"/> - <path fill="#397b00" d="M212.69 306.07l.703.67-.703-.67z"/> - <path fill="#314231" d="M213.4 306.07l.704.67-.704-.67z"/> - <path fill="#dedede" d="M214.1 306.07l.704.67-.704-.67z"/> - <path fill="#425242" d="M219.03 306.07l.704.67-.704-.67z"/> - <path fill="#397b00" d="M222.31 306.29l.47.224-.47-.224z"/> - <path fill="#294200" d="M223.72 306.29l.47.224-.47-.224z"/> - <path fill="#292100" d="M224.65 306.07l.704.67-.704-.67z"/> - <path fill="#181000" d="M225.36 306.07l.703.67-.703-.67z"/> - <path fill="#310000" d="M226.06 306.07l.703.67-.703-.67z"/> - <path fill="#631808" d="M226.76 306.07l.704.67-.704-.67z"/> - <path fill="#941808" d="M227.47 306.07l.704.67-.704-.67z"/> - <path fill="#ad1810" d="M228.17 306.07l.703.67-.703-.67z"/> - <path fill="#ce2110" d="M228.87 306.07l.703.67-.703-.67z"/> - <path fill="#de3110" d="M244.35 306.07l.704.67-.704-.67z"/> - <path fill="#e75a10" d="M245.06 306.07l.703.67-.703-.67z"/> - <path fill="#de3110" d="M245.76 306.07l.703.67-.703-.67z"/> - <path fill="#e75a10" d="M248.57 306.07l.703.67-.703-.67z"/> - <path fill="#de3110" d="M249.28 306.07l.703.67-.703-.67z"/> - <path fill="#e75a10" d="M254.67 306.29l.47.224-.47-.224z"/> - <path fill="#de3110" d="M255.61 306.07l.704.67-.704-.67z"/> - <path fill="#e75a10" d="M259.59 306.29l.47.224-.47-.224z"/> - <path fill="#de3110" d="M260.53 306.07l.704.67-.704-.67z"/> - <path fill="#ad1810" d="M279.53 306.07l.703.67-.703-.67z"/> - <path fill="#941808" d="M280.23 306.07l.704.67-.704-.67z"/> - <path fill="#631808" d="M280.93 306.07l.703.67-.703-.67z"/> - <path fill="#5a2908" d="M281.64 306.07l.703.67-.703-.67z"/> - <path fill="#293100" d="M282.34 306.07l.703.67-.703-.67z"/> - <path fill="#185200" d="M283.04 306.07l.704.67-.704-.67z"/> - <path fill="#297b00" d="M283.75 306.07l.703.67-.703-.67z"/> - <path fill="#184a00" d="M287.97 306.07v.67h2.11l-2.11-.67z"/> - <path fill="#185200" d="M290.08 306.07l1.407 1.34-1.407-1.34z"/> - <path fill="#297b00" d="M290.78 306.07l.703.67-.703-.67z"/> - <path fill="#185200" d="M297.82 306.07l.703.67-.703-.67z"/> - <path fill="#001000" d="M298.52 306.07l.703.67-.703-.67z"/> - <path fill="#293129" d="M299.22 306.07l.704.67-.704-.67z"/> - <path fill="#214210" d="M299.93 306.07l.704.67-.704-.67z"/> - <path fill="#296300" d="M300.63 306.07l.703.67-.703-.67m2.11 0l1.407 1.34-1.407-1.34z"/> - <path fill="#63636b" d="M303.45 306.07l.703.67-.703-.67z"/> - <path fill="#dedede" d="M305.56 306.07l.704.67-.704-.67z"/> - <path fill="#63636b" d="M306.26 306.07l.703.67-.703-.67z"/> - <path fill="#214210" d="M306.96 306.07l.703.67-.703-.67z"/> - <path fill="#63636b" d="M307.67 306.07l.703.67-.703-.67z"/> - <path fill="#cecece" d="M197.22 306.74l.703.67-.703-.67z"/> - <path fill="#295200" d="M204.25 306.74l.703.67-.703-.67z"/> - <path fill="#294200" d="M204.96 306.74l.704.67-.704-.67z"/> - <path fill="#295200" d="M205.66 306.74l.703.67-.703-.67z"/> - <path fill="#294200" d="M206.83 306.96l.47.224-.47-.224z"/> - <path fill="#397b00" d="M211.29 306.74l.704.67-.704-.67z"/> - <path fill="#214210" d="M211.99 306.74l.703.67-.703-.67z"/> - <path fill="#8c8c8c" d="M212.69 306.74l.703.67-.703-.67z"/> - <path fill="#7b7373" d="M218.32 306.74l.703.67-.703-.67z"/> - <path fill="#397b00" d="M219.49 306.96l.47.224-.47-.224z"/> - <path fill="#294200" d="M218.32 308.07v.67l4.22-1.34-4.22.67z"/> - <path fill="#293100" d="M222.54 306.74l.703.67-.703-.67z"/> - <path fill="#5a2908" d="M223.25 306.74l.703.67-.703-.67z"/> - <path fill="#7b1008" d="M223.95 306.74l.704.67-.704-.67z"/> - <path fill="#b51010" d="M224.65 306.74l.704.67-.704-.67z"/> - <path fill="#de3110" d="M233.8 306.74l.703.67-.703-.67zm2.81 0l1.407 1.34-1.407-1.34z"/> - <path fill="#e75a10" d="M243.65 306.74l.703.67-.703-.67zm2.81 0l.703.67-.703-.67z"/> - <path fill="#f7b508" d="M249.28 306.74l.703.67-.703-.67z"/> - <path fill="#de3110" d="M257.01 306.74l1.407 1.34-1.407-1.34z"/> - <path fill="#ef9408" d="M258.42 306.74l1.407 1.34-1.407-1.34z"/> - <path fill="#e75a10" d="M261.24 306.74l1.407 1.34-1.407-1.34z"/> - <path fill="#de3110" d="M261.94 306.74l.703.67-.703-.67z"/> - <path fill="#e75a10" d="M264.75 306.74l.703.67-.703-.67z"/> - <path fill="#ef9408" d="M266.16 306.74l-.703 4.686.703-4.686z"/> - <path fill="#e75a10" d="M266.86 306.74l.703.67-.703-.67z"/> - <path fill="#de3110" d="M268.27 306.74l.703.67-.703-.67z"/> - <path fill="#ef9408" d="M268.97 306.74l.704.67-.704-.67z"/> - <path fill="#ef7b08" d="M269.68 306.74l.703.67-.703-.67z"/> - <path fill="#e75a10" d="M271.08 306.74l.703.67-.703-.67z"/> - <path fill="#de3110" d="M273.9 306.74l.703.67-.703-.67z"/> - <path fill="#bd2110" d="M283.04 306.74l.704.67-.704-.67z"/> - <path fill="#941808" d="M283.75 306.74l.703.67-.703-.67z"/> - <path fill="#4a1000" d="M284.45 306.74l.703.67-.703-.67z"/> - <path fill="#293100" d="M285.15 306.74l.703.67-.703-.67z"/> - <path fill="#297b00" d="M286.56 306.74l.704.67-.704-.67z"/> - <path fill="#319400" d="M287.26 306.74v.67l7.035 1.338-7.035-2.008z"/> - <path fill="#297b00" d="M290.08 306.74l.703.67-.703-.67z"/> - <path fill="#184a00" d="M291.49 306.74l.704.67-.704-.67z"/> - <path fill="#103900" d="M292.19 306.74l.703.67-.703-.67z"/> - <path fill="#296300" d="M293.13 307.18l.235.446-.235-.446m6.097-.446l.704.67-.703-.67z"/> - <path fill="#425242" d="M299.93 306.74l.704.67-.704-.67z"/> - <path fill="#8c8c8c" d="M300.63 306.74l.703.67-.703-.67z"/> - <path fill="#63636b" d="M301.33 306.74l.703.67-.703-.67z"/> - <path fill="#184a00" d="M302.04 306.74l.704.67-.704-.67z"/> - <path fill="#297b00" d="M302.74 306.74l.704.67-.704-.67z"/> - <path fill="#8c8c8c" d="M304.15 306.74l.703.67-.703-.67z"/> - <path fill="#efefef" d="M306.96 306.74l.703.67-.703-.67z"/> - <path fill="#8c8c8c" d="M307.67 306.74l.703.67-.703-.67z"/> - <path fill="#cecece" d="M308.37 306.74l.704.67-.704-.67z"/> - <path fill="#bdbdbd" d="M201.44 307.41l.703.67-.703-.67z"/> - <path fill="#397b00" d="M202.14 307.41l.704.67-.704-.67m6.332 0l.703.67-.704-.67z"/> - <path fill="#295200" d="M209.18 307.41l.703.67-.703-.67z"/> - <path fill="#396b10" d="M209.88 307.41l.703.67-.703-.67z"/> - <path fill="#5a6b52" d="M210.58 307.41l.704.67-.704-.67z"/> - <path fill="#ada5a5" d="M211.29 307.41l.704.67-.704-.67m6.33 0l.705.67-.704-.67z"/> - <path fill="#295200" d="M218.32 307.41l.703.67-.703-.67z"/> - <path fill="#5a1008" d="M221.14 307.41l.703.67-.703-.67z"/> - <path fill="#941808" d="M221.84 307.41l.704.67-.704-.67z"/> - <path fill="#ef9408" d="M230.28 307.41l.704.67-.704-.67z"/> - <path fill="#f7b508" d="M236.61 307.41l.703.67-.703-.67m2.11 0l.704.67-.703-.67m5.394.223l.47.223-.47-.223z"/> - <path fill="#e75a10" d="M245.06 307.41l.703.67-.703-.67z"/> - <path fill="#f7b508" d="M246.23 307.63l.47.224-.47-.224z"/> - <path fill="#ef9408" d="M257.01 307.41l.704.67-.704-.67z"/> - <path fill="#f7b508" d="M261 307.63l.47.224-.47-.224z"/> - <path fill="#de3110" d="M264.05 307.41l.703.67-.703-.67z"/> - <path fill="#de2110" d="M268.5 307.85l.235.446-.235-.446z"/> - <path fill="#ef9408" d="M275.31 307.41l1.407 1.34-1.407-1.34z"/> - <path fill="#ef7b08" d="M277.42 307.41l.704.67-.704-.67z"/> - <path fill="#de3110" d="M280.23 307.41l.704.67-.704-.67z"/> - <path fill="#b51010" d="M285.86 307.41l.704.67-.704-.67z"/> - <path fill="#631808" d="M286.56 307.41l.704.67-.704-.67z"/> - <path fill="#293100" d="M287.26 307.41l.703.67-.703-.67z"/> - <path fill="#296300" d="M287.97 307.41l.703.67-.703-.67z"/> - <path fill="#103900" d="M293.6 307.41l.703.67-.703-.67z"/> - <path fill="#001000" d="M294.3 307.41l.704.67-.704-.67z"/> - <path fill="#103900" d="M295 307.41l.703.67-.703-.67z"/> - <path fill="#185200" d="M295.71 307.41l.704.67-.704-.67z"/> - <path fill="#297b00" d="M296.41 307.41l.703.67-.703-.67m3.518 0l.703.67-.702-.67z"/> - <path fill="#184a00" d="M300.63 307.41l.703.67-.703-.67z"/> - <path fill="#7b7373" d="M301.33 307.41l.703.67-.703-.67z"/> - <path fill="#cecece" d="M302.04 307.41l.704.67-.704-.67z"/> - <path fill="#63636b" d="M302.74 307.41l.704.67-.704-.67z"/> - <path fill="#184a00" d="M303.91 307.63l.47.224-.47-.224z"/> - <path fill="#bdbdbd" d="M304.85 307.41l.703.67-.703-.67z"/> - <path fill="#9c9494" d="M201.44 308.07l.703.67-.703-.67z"/> - <path fill="#397b00" d="M205.66 308.07l.703.67-.703-.67z"/> - <path fill="#396b10" d="M206.36 308.07l.703.67-.703-.67z"/> - <path fill="#526b42" d="M207.07 308.07l.703.67-.703-.67z"/> - <path fill="#8c8c8c" d="M207.77 308.07l.704.67-.704-.67z"/> - <path fill="#ada5a5" d="M208.47 308.07l.703.67-.703-.67z"/> - <path fill="#dedede" d="M209.18 308.07l.703.67-.703-.67z"/> - <path fill="#efefef" d="M216.92 308.07l.703.67-.703-.67z"/> - <path fill="#213918" d="M217.62 308.07l.704.67-.704-.67z"/> - <path fill="#4a1000" d="M219.03 308.07l.704.67-.704-.67z"/> - <path fill="#941808" d="M219.73 308.07l.703.67-.703-.67z"/> - <path fill="#de3110" d="M224.42 308.3l.47.224-.47-.224z"/> - <path fill="#ef7b08" d="M229.58 308.07l.703.67-.703-.67zm3.75.45l.235.446-.235-.446z"/> - <path fill="#de2110" d="M235.21 308.07l.703.67-.703-.67z"/> - <path fill="#de3110" d="M235.91 308.07l.704.67-.704-.67z"/> - <path fill="#e75a10" d="M237.32 308.07l.703.67-.703-.67z"/> - <path fill="#de3110" d="M245.76 308.07l.703.67-.703-.67z"/> - <path fill="#ef7b08" d="M246.46 308.07l.703.67-.703-.67m1.407 0l.703.67-.703-.67zm2.113 0l.704.67-.704-.67z"/> - <path fill="#de2110" d="M255.61 308.07v2.008h.704l-.704-2.008z"/> - <path fill="#ef9408" d="M256.31 308.07l.703.67-.703-.67z"/> - <path fill="#de3110" d="M259.12 308.07l.703.67-.703-.67z"/> - <path fill="#de2110" d="M259.83 308.07l.704 2.008-.704-2.008z"/> - <path fill="#e75a10" d="M264.05 308.07l.703.67-.703-.67z"/> - <path fill="#ef9408" d="M264.75 308.07l.703.67-.703-.67z"/> - <path fill="#ef7b08" d="M274.6 308.07l.704.67-.704-.67z"/> - <path fill="#ffce08" d="M275.31 308.07l.703.67-.703-.67z"/> - <path fill="#f7b508" d="M276.71 308.07l.703.67-.703-.67z"/> - <path fill="#de3110" d="M278.12 308.07l.703.67-.703-.67z"/> - <path fill="#ef7b08" d="M279.53 308.07l.703.67-.703-.67z"/> - <path fill="#ffce08" d="M280.23 308.07l-.703 2.008.703-2.008z"/> - <path fill="#ef7b08" d="M281.17 308.52l.235.446-.235-.446z"/> - <path fill="#e75a10" d="M283.04 308.07l.704.67-.704-.67z"/> - <path fill="#de3110" d="M283.75 308.07l.703.67-.703-.67z"/> - <path fill="#941808" d="M287.97 308.07l.703.67-.703-.67z"/> - <path fill="#5a2908" d="M288.67 308.07l.704.67-.704-.67z"/> - <path fill="#184a00" d="M289.38 308.07l.704.67-.704-.67z"/> - <path fill="#297b00" d="M290.08 308.07l.703.67-.703-.67m4.455.446l.235.446-.235-.446z"/> - <path fill="#184a00" d="M295 308.07l.703.67-.703-.67z"/> - <path fill="#424242" d="M295.71 308.07l.704.67-.704-.67z"/> - <path fill="#8c8c8c" d="M296.41 308.07l.703.67-.703-.67z"/> - <path fill="#5a6b52" d="M297.11 308.07l.704.67-.704-.67z"/> - <path fill="#214210" d="M297.82 308.07l.703.67-.703-.67z"/> - <path fill="#296300" d="M298.52 308.07l.703.67-.703-.67z"/> - <path fill="#297b00" d="M301.33 308.07l1.407 1.34-1.407-1.34z"/> - <path fill="#314231" d="M302.04 308.07l.704.67-.704-.67z"/> - <path fill="#dedede" d="M303.45 308.07l.703.67-.703-.67z"/> - <path fill="#63636b" d="M304.15 308.07l.703.67-.703-.67z"/> - <path fill="#101810" d="M304.85 308.07l.703.67-.703-.67z"/> - <path fill="#8c8c8c" d="M201.44 308.74l.703.67-.703-.67z"/> - <path fill="#294200" d="M204.25 308.74l.703.67-.703-.67z"/> - <path fill="#6b735a" d="M204.96 308.74l.704.67-.704-.67z"/> - <path fill="#bdbdbd" d="M205.66 308.74l.703.67-.703-.67z"/> - <path fill="#52525a" d="M216.92 308.74l.703.67-.703-.67z"/> - <path fill="#311000" d="M217.62 308.74l.704.67-.704-.67z"/> - <path fill="#b51010" d="M218.32 308.74l.703.67-.703-.67z"/> - <path fill="#ef7b08" d="M221.84 308.74l.704.67-.704-.67z"/> - <path fill="#ef9408" d="M222.54 308.74l.703.67-.703-.67z"/> - <path fill="#f7b508" d="M223.25 308.74l.703.67-.703-.67z"/> - <path fill="#ffce08" d="M223.95 308.74l.704.67-.704-.67z"/> - <path fill="#ef9408" d="M224.65 308.74l.704.67-.704-.67z"/> - <path fill="#de3110" d="M230.99 308.74l.703.67-.703-.67zm6.33 0l.703.67-.703-.67z"/> - <path fill="#ef9408" d="M249.04 308.97l.47.224-.47-.224z"/> - <path fill="#ef7b08" d="M256.31 308.74l.703.67-.703-.67m7.738 0l.704.67-.704-.67z"/> - <path fill="#de3110" d="M268.27 308.74l.703.67-.703-.67z"/> - <path fill="#ef9408" d="M269.68 308.74l.703.67-.703-.67z"/> - <path fill="#de2110" d="M276.01 308.74v2.678l2.814-.67-2.814-2.008z"/> - <path fill="#e75a10" d="M278.12 308.74l.703.67-.703-.67z"/> - <path fill="#f7b508" d="M279.53 308.74l.703.67-.703-.67m3.987.223l.468.223-.468-.223z"/> - <path fill="#de3110" d="M285.15 308.74l.703.67-.703-.67z"/> - <path fill="#e75a10" d="M285.86 308.74l.704.67-.704-.67z"/> - <path fill="#bd2110" d="M289.38 308.74l.704.67-.704-.67z"/> - <path fill="#5a1008" d="M290.08 308.74l.703.67-.703-.67z"/> - <path fill="#184a00" d="M291.25 308.97l.47.224-.47-.224z"/> - <path fill="#185200" d="M292.19 308.74l.703.67-.703-.67z"/> - <path fill="#296300" d="M293.36 308.97l.47.224-.47-.224z"/> - <path fill="#319400" d="M295 308.74l.703.67-.703-.67z"/> - <path fill="#297b00" d="M295.71 308.74l.704.67-.704-.67z"/> - <path fill="#185200" d="M296.41 308.74l.703.67-.703-.67z"/> - <path fill="#7b7373" d="M297.11 308.74l.704.67-.704-.67z"/> - <path fill="#efefef" d="M297.82 308.74l.703.67-.703-.67z"/> - <path fill="#ada5a5" d="M298.52 308.74l1.407 2.008-1.407-2.008z"/> - <path fill="#63636b" d="M299.22 308.74l.704.67-.704-.67z"/> - <path fill="#214210" d="M299.93 308.74l.704.67-.704-.67z"/> - <path fill="#297b00" d="M300.63 308.74l.703.67-.703-.67z"/> - <path fill="#ada5a5" d="M302.74 308.74l.704.67-.704-.67z"/> - <path fill="#397b00" d="M202.85 309.41l.703.67-.703-.67z"/> - <path fill="#425242" d="M203.55 309.41l.703.67-.703-.67z"/> - <path fill="#dedede" d="M204.25 309.41l.703.67-.703-.67m11.256 0l.703.67-.704-.67z"/> - <path fill="#524242" d="M216.21 309.41l.704.67-.704-.67z"/> - <path fill="#941808" d="M216.92 309.41l.703.67-.703-.67z"/> - <path fill="#de3110" d="M219.49 309.64l.47.224-.47-.224z"/> - <path fill="#f7b508" d="M221.84 309.41l.704.67-.704-.67z"/> - <path fill="#ef7b08" d="M223.25 309.41l.703.67-.703-.67z"/> - <path fill="#de2110" d="M227.47 309.41l.704.67-.704-.67z"/> - <path fill="#ef7b08" d="M228.17 309.41l.703.67-.703-.67z"/> - <path fill="#e75a10" d="M231.22 309.86l.235.446-.235-.446z"/> - <path fill="#ef7b08" d="M246.46 309.41l.703.67-.703-.67z"/> - <path fill="#de3110" d="M247.17 309.41l.704.67-.704-.67z"/> - <path fill="#ffce08" d="M248.1 309.86l.235.446-.235-.446m2.11 0l.235.446-.234-.446z"/> - <path fill="#ef9408" d="M256.78 309.64l.47.224-.47-.224z"/> - <path fill="#de3110" d="M259.12 309.41l.703.67-.703-.67z"/> - <path fill="#ef9408" d="M263.35 309.41l.704.67-.704-.67zm8.44 0l-.703 2.678.703-2.678z"/> - <path fill="#de3110" d="M273.9 309.41l.703.67-.703-.67z"/> - <path fill="#ffce08" d="M274.84 309.86l.235.446-.235-.446z"/> - <path fill="#ef7b08" d="M275.54 309.86l.235.446-.235-.446z"/> - <path fill="#e75a10" d="M278.82 309.41l.703.67-.703-.67z"/> - <path fill="#f7b508" d="M280.23 309.41l.704.67-.704-.67z"/> - <path fill="#ef9408" d="M281.17 309.86l.235.446-.235-.446z"/> - <path fill="#de3110" d="M282.34 309.41l.703.67-.703-.67z"/> - <path fill="#ef7b08" d="M285.15 309.41l.703.67-.703-.67z"/> - <path fill="#ffce08" d="M285.86 309.41l.704.67-.704-.67z"/> - <path fill="#ad1810" d="M290.78 309.41l.703.67-.703-.67z"/> - <path fill="#210800" d="M291.49 309.41l.704.67-.704-.67z"/> - <path fill="#292921" d="M292.19 309.41l.703.67-.703-.67z"/> - <path fill="#313931" d="M292.89 309.41l.704.67-.704-.67z"/> - <path fill="#8c8c8c" d="M293.6 309.41l.703.67-.703-.67z"/> - <path fill="#9c9494" d="M294.3 309.41l1.407 1.34-1.407-1.34z"/> - <path fill="#8c8c8c" d="M295 309.41l.703.67-.703-.67z"/> - <path fill="#5a6b52" d="M295.71 309.41l.704.67-.704-.67z"/> - <path fill="#214210" d="M296.41 309.41l.703.67-.703-.67z"/> - <path fill="#184a00" d="M297.11 309.41l.704.67-.704-.67z"/> - <path fill="#293129" d="M297.82 309.41l.703.67-.703-.67z"/> - <path fill="#efefef" d="M299.93 309.41l.704.67-.704-.67z"/> - <path fill="#294221" d="M300.63 309.41l.703.67-.703-.67z"/> - <path fill="#296300" d="M302.04 309.41l.704.67-.704-.67z"/> - <path fill="#bdbdbd" d="M302.74 309.41l.704.67-.704-.67z"/> - <path fill="#295200" d="M202.14 310.08l.704.67-.704-.67z"/> - <path fill="#63636b" d="M202.85 310.08l.703.67-.703-.67z"/> - <path fill="#9c9494" d="M214.8 310.08l.703.67-.703-.67z"/> - <path fill="#631808" d="M215.51 310.08l.703.67-.703-.67z"/> - <path fill="#ce2110" d="M216.21 310.08l.704.67-.704-.67z"/> - <path fill="#e75a10" d="M217.62 310.08l.704.67-.704-.67z"/> - <path fill="#ef9408" d="M218.32 310.08l.703.67-.703-.67zm2.11 0l.704.67-.704-.67z"/> - <path fill="#ef7b08" d="M221.84 310.08l.704.67-.704-.67z"/> - <path fill="#de3110" d="M223.25 310.08l.703.67-.703-.67z"/> - <path fill="#ef7b08" d="M226.06 310.08l.703.67-.703-.67z"/> - <path fill="#de3110" d="M229.58 310.08l.703.67-.703-.67z"/> - <path fill="#e75a10" d="M235.21 310.08l.703.67-.703-.67z"/> - <path fill="#de2110" d="M235.91 310.08l.704.67-.704-.67z"/> - <path fill="#f7b508" d="M244.12 310.31l.47.224-.47-.224m2.11 0l.47.224-.47-.224z"/> - <path fill="#e75a10" d="M247.17 310.08l-.703 1.34.703-1.34z"/> - <path fill="#ef9408" d="M249.04 310.31l.47.224-.47-.224z"/> - <path fill="#e75a10" d="M250.68 310.08l.703.67-.703-.67z"/> - <path fill="#ef7b08" d="M255.61 310.08l.704.67-.704-.67z"/> - <path fill="#e75a10" d="M257.01 310.08l.704.67-.704-.67z"/> - <path fill="#de3110" d="M257.72 310.08l.703.67-.703-.67z"/> - <path fill="#f7b508" d="M261 310.31l.47.224-.47-.224z"/> - <path fill="#ef7b08" d="M263.35 310.08l.704.67-.704-.67z"/> - <path fill="#f7b508" d="M264.75 310.08l.703.67-.703-.67z"/> - <path fill="#ef9408" d="M270.38 310.08l.703.67-.703-.67zm9.15 0l.703.67-.703-.67z"/> - <path fill="#ef7b08" d="M280.23 310.08l.704.67-.704-.67z"/> - <path fill="#e75a10" d="M282.34 310.08l.703.67-.703-.67m2.11 0l.704.67-.704-.67z"/> - <path fill="#f7b508" d="M285.15 310.08l.703.67-.703-.67z"/> - <path fill="#ef9408" d="M285.86 310.08l.704.67-.704-.67z"/> - <path fill="#e75a10" d="M287.97 310.08l.703.67-.703-.67z"/> - <path fill="#ffce08" d="M288.91 310.53l.235.446-.235-.446z"/> - <path fill="#7b1008" d="M292.19 310.08l.703.67-.703-.67z"/> - <path fill="#185200" d="M292.89 310.08l1.407 1.34v-1.34h-1.407z"/> - <path fill="#314231" d="M294.3 310.08l.704.67-.704-.67z"/> - <path fill="#dedede" d="M297.11 310.08l.704.67-.704-.67z"/> - <path fill="#9c9494" d="M297.82 310.08l.703.67-.703-.67z"/> - <path fill="#63636b" d="M298.52 310.08l.703.67-.703-.67z"/> - <path fill="#6b735a" d="M300.63 310.08l.703.67-.703-.67z"/> - <path fill="#184a00" d="M302.04 310.08l.704.67-.704-.67z"/> - <path fill="#52525a" d="M202.14 310.75l.704.67-.704-.67z"/> - <path fill="#cecece" d="M214.1 310.75l.704.67-.704-.67z"/> - <path fill="#631818" d="M214.8 310.75l.703.67-.703-.67z"/> - <path fill="#de3110" d="M216.92 310.75l.703.67-.703-.67z"/> - <path fill="#ffce08" d="M217.62 310.75l.704.67-.704-.67z"/> - <path fill="#ef7b08" d="M219.03 310.75l.704.67-.704-.67z"/> - <path fill="#ef9408" d="M219.73 310.75l.703.67-.703-.67z"/> - <path fill="#e75a10" d="M221.84 310.75l.704.67-.704-.67m4.22 0l.704.67-.703-.67z"/> - <path fill="#f7b508" d="M227.47 310.75l.704.67-.704-.67z"/> - <path fill="#e75a10" d="M228.17 310.75l.703.67-.703-.67z"/> - <path fill="#f7b508" d="M230.28 310.75l.704.67-.704-.67z"/> - <path fill="#ef9408" d="M230.99 310.75l-.704 1.34.704-1.34zm9.84 0l.703.67-.703-.67z"/> - <path fill="#e75a10" d="M243.65 310.75l.703.67-.703-.67z"/> - <path fill="#ef9408" d="M247.17 310.75l.704.67-.704-.67z"/> - <path fill="#f7b508" d="M247.87 310.75l.703.67-.703-.67m2.11 0l.704.67-.703-.67z"/> - <path fill="#ef9408" d="M250.68 310.75l.703.67-.703-.67z"/> - <path fill="#f7b508" d="M256.31 310.75l.703.67-.703-.67z"/> - <path fill="#ef9408" d="M258.42 310.75l.704.67-.704-.67z"/> - <path fill="#e75a10" d="M263.35 310.75l.704.67-.704-.67z"/> - <path fill="#ef7b08" d="M264.75 310.75l.703.67-.703-.67z"/> - <path fill="#f7b508" d="M274.6 310.75l.704.67-.704-.67z"/> - <path fill="#ef9408" d="M275.31 310.75l.703.67-.703-.67z"/> - <path fill="#ef7b08" d="M276.71 310.75l1.407 1.34-1.407-1.34z"/> - <path fill="#e75a10" d="M278.12 310.75l.703.67-.703-.67z"/> - <path fill="#ffce08" d="M278.82 310.75l.703.67-.703-.67z"/> - <path fill="#f7b508" d="M283.04 310.75l.704.67-.704-.67z"/> - <path fill="#ef7b08" d="M284.45 310.75l-.703 1.34.703-1.34zm1.41 0l.704.67-.704-.67z"/> - <path fill="#de3110" d="M287.26 310.75l.703.67-.703-.67z"/> - <path fill="#941808" d="M292.89 310.75l.704.67-.704-.67z"/> - <path fill="#319400" d="M294.3 310.75l.704.67-.704-.67z"/> - <path fill="#296300" d="M295.24 311.2l.235.446-.235-.446z"/> - <path fill="#314231" d="M295.71 310.75l.704.67-.704-.67z"/> - <path fill="#cecece" d="M296.41 310.75l.703.67-.703-.67z"/> - <path fill="#8c8c8c" d="M300.63 310.75l.703.67-.703-.67z"/> - <path fill="#4a6342" d="M302.04 310.75l.704.67-.704-.67z"/> - <path fill="#dedede" d="M213.4 311.42l.704.67-.704-.67z"/> - <path fill="#631818" d="M214.1 311.42l.704.67-.704-.67z"/> - <path fill="#de2110" d="M219.03 311.42l.704.67-.704-.67z"/> - <path fill="#e75a10" d="M219.73 311.42l.703.67-.703-.67z"/> - <path fill="#de3110" d="M221.14 311.42l.703.67-.703-.67z"/> - <path fill="#de2110" d="M222.07 311.87l.235.446-.235-.446z"/> - <path fill="#ef9408" d="M223.48 311.87l.235.446-.235-.446z"/> - <path fill="#e75a10" d="M223.95 311.42l1.407 1.34-1.407-1.34z"/> - <path fill="#de3110" d="M226.06 311.42l.703.67-.703-.67z"/> - <path fill="#e75a10" d="M227.47 311.42l.704.67-.704-.67zm5.63 0l.704.67-.704-.67z"/> - <path fill="#de3110" d="M238.02 311.42l.703.67-.703-.67zm6.33 0l.704.67-.704-.67z"/> - <path fill="#e75a10" d="M245.06 311.42l.703.67-.703-.67z"/> - <path fill="#de3110" d="M245.76 311.42l.703.67-.703-.67m1.876.223l.47.223-.47-.223m2.814 0l.47.223-.47-.223zm8.67-.223l.703.67-.703-.67z"/> - <path fill="#e75a10" d="M259.83 311.42l.704.67-.704-.67z"/> - <path fill="#de3110" d="M260.53 311.42l.704.67-.704-.67z"/> - <path fill="#e75a10" d="M262.64 311.42l.703.67-.703-.67m1.407 0l.703.67-.703-.67z"/> - <path fill="#de3110" d="M264.75 311.42v.67h2.11l-2.11-.67m3.518 0l.703.67-.703-.67z"/> - <path fill="#ef9408" d="M268.97 311.42l.704.67-.704-.67z"/> - <path fill="#ef7b08" d="M274.6 311.42l.704.67-.704-.67z"/> - <path fill="#ef9408" d="M279.53 311.42l.703.67-.703-.67z"/> - <path fill="#ffce08" d="M281.17 311.87l.235.446-.235-.446z"/> - <path fill="#f7b508" d="M282.34 311.42l.703.67-.703-.67m2.11 0l.704.67-.704-.67z"/> - <path fill="#e75a10" d="M285.86 311.42l.704.67-.704-.67z"/> - <path fill="#5a1008" d="M293.6 311.42l.703.67-.703-.67z"/> - <path fill="#103900" d="M294.3 311.42l.704.67-.704-.67z"/> - <path fill="#297b00" d="M295.71 311.42l.704.67-.704-.67z"/> - <path fill="#185200" d="M296.41 311.42l.703.67-.703-.67z"/> - <path fill="#7b7373" d="M297.11 311.42l.704.67-.704-.67z"/> - <path fill="#bdbdbd" d="M300.87 311.87l.235.446-.235-.446z"/> - <path fill="#296300" d="M301.33 311.42l.703.67-.703-.67z"/> - <path fill="#8c8c8c" d="M302.04 311.42l.704.67-.704-.67m-88.64.67l.704.67-.704-.67z"/> - <path fill="#ce2110" d="M214.1 312.09l.704.67-.704-.67z"/> - <path fill="#e75a10" d="M217.62 312.09l.704.67-.704-.67z"/> - <path fill="#ffce08" d="M218.32 312.09l.703.67-.703-.67z"/> - <path fill="#ef7b08" d="M221.14 312.09l.703.67-.703-.67z"/> - <path fill="#f7b508" d="M222.54 312.09l.703.67-.703-.67z"/> - <path fill="#de2110" d="M223.95 312.09l.704.67-.704-.67z"/> - <path fill="#ef7b08" d="M225.36 312.09l.703.67-.703-.67z"/> - <path fill="#f7b508" d="M226.76 312.09l.704.67-.704-.67z"/> - <path fill="#ef7b08" d="M227.47 312.09l.704.67-.704-.67z"/> - <path fill="#e75a10" d="M230.99 312.09l.703.67-.703-.67z"/> - <path fill="#ef7b08" d="M231.69 312.09l.703.67-.703-.67z"/> - <path fill="#e75a10" d="M232.39 312.09l.703.67-.703-.67m42.913 0l.703.67-.703-.67z"/> - <path fill="#ef9408" d="M276.01 312.09l.703.67-.703-.67z"/> - <path fill="#e75a10" d="M276.71 312.09l.703.67-.703-.67z"/> - <path fill="#de3110" d="M277.42 312.09l.704.67-.704-.67z"/> - <path fill="#e75a10" d="M278.82 312.09l.703.67-.703-.67m1.407 0l.704.67-.703-.67z"/> - <path fill="#de3110" d="M281.64 312.09l.703.67-.703-.67z"/> - <path fill="#ffce08" d="M282.57 312.54l.235.446-.235-.446z"/> - <path fill="#e75a10" d="M283.51 312.31l.47.224-.47-.224z"/> - <path fill="#de2110" d="M285.86 312.09l.704.67-.704-.67z"/> - <path fill="#ef7b08" d="M286.56 312.09l.704.67-.704-.67z"/> - <path fill="#e75a10" d="M287.97 312.09l.703.67-.703-.67zm1.64.45l.235.446-.235-.446z"/> - <path fill="#736b6b" d="M294.3 312.09l.704.67-.704-.67z"/> - <path fill="#cecece" d="M295 312.09l.703.67-.703-.67z"/> - <path fill="#8c8c8c" d="M295.71 312.09l.704.67-.704-.67z"/> - <path fill="#294221" d="M296.41 312.09l.703.67-.703-.67z"/> - <path fill="#082108" d="M297.11 312.09l.704.67-.704-.67z"/> - <path fill="#8c8c8c" d="M297.82 312.09l.703.67-.703-.67z"/> - <path fill="#103900" d="M301.33 312.09l.703.67-.703-.67z"/> - <path fill="#dedede" d="M302.04 312.09l.704.67-.704-.67z"/> - <path fill="#6b4242" d="M213.4 312.76l.704.67-.704-.67z"/> - <path fill="#ef7b08" d="M219.73 312.76l.703.67-.703-.67z"/> - <path fill="#ef9408" d="M220.43 312.76l.704.67-.704-.67z"/> - <path fill="#ef7b08" d="M222.54 312.76l.703.67-.703-.67z"/> - <path fill="#f7b508" d="M225.36 312.76l.703.67-.703-.67z"/> - <path fill="#e75a10" d="M226.76 312.76l.704.67-.704-.67z"/> - <path fill="#de3110" d="M227.47 312.76l.704.67-.704-.67z"/> - <path fill="#ad1810" d="M242.94 312.76v.67h4.22l-4.22-.67z"/> - <path fill="#7b1008" d="M247.17 312.76l.704.67-.704-.67z"/> - <path fill="#631808" d="M247.87 312.76v.67h13.366l-13.366-.67z"/> - <path fill="#ad1810" d="M261.24 312.76v.67h4.22l-4.22-.67z"/> - <path fill="#ce2110" d="M265.46 312.76l.703.67-.703-.67z"/> - <path fill="#de3110" d="M280.23 312.76l.704.67-.704-.67z"/> - <path fill="#ef7b08" d="M280.93 312.76l.703.67-.703-.67z"/> - <path fill="#e75a10" d="M281.64 312.76l.703.67-.703-.67z"/> - <path fill="#de3110" d="M283.51 312.98l.47.224-.47-.224z"/> - <path fill="#f7b508" d="M285.15 312.76l1.407 1.34-1.407-1.34z"/> - <path fill="#e75a10" d="M285.86 312.76l.704.67-.704-.67z"/> - <path fill="#ef9408" d="M287.97 312.76l.703.67-.703-.67z"/> - <path fill="#631818" d="M294.3 312.76l.704.67-.704-.67z"/> - <path fill="#cecece" d="M297.35 313.21l.235.446-.235-.446z"/> - <path fill="#7b7373" d="M297.82 312.76l.703.67-.703-.67z"/> - <path fill="#dedede" d="M298.52 312.76l.703.67-.703-.67m2.11 0l.704.67-.704-.67z"/> - <path fill="#52525a" d="M301.33 312.76l.703.67-.703-.67z"/> - <path fill="#dedede" d="M204.96 313.43l.704.67-.704-.67z"/> - <path fill="#8c8c8c" d="M205.66 313.43l.703.67-.703-.67z"/> - <path fill="#6b4242" d="M206.36 313.43l.703.67-.703-.67z"/> - <path fill="#8c8c8c" d="M209.18 313.43l.703.67-.703-.67z"/> - <path fill="#9c9494" d="M209.88 313.43l.703.67-.703-.67z"/> - <path fill="#bdbdbd" d="M210.58 313.43l.704.67-.704-.67z"/> - <path fill="#6b2908" d="M213.4 313.43l.704.67-.704-.67z"/> - <path fill="#ef9408" d="M218.32 313.43l.703.67-.703-.67z"/> - <path fill="#ffce08" d="M219.26 313.88l.235.446-.235-.446z"/> - <path fill="#f7b508" d="M221.14 313.43l.703.67-.703-.67z"/> - <path fill="#e75a10" d="M223.95 313.43l.704.67-.704-.67z"/> - <path fill="#de3110" d="M224.65 313.43l.704.67-.704-.67z"/> - <path fill="#ad1810" d="M234.27 313.65l.47.224-.47-.224z"/> - <path fill="#941808" d="M235.21 313.43l.703.67-.703-.67z"/> - <path fill="#631808" d="M235.91 313.43l.704.67-.704-.67z"/> - <path fill="#733129" d="M236.61 313.43l.703.67-.703-.67z"/> - <path fill="#734a42" d="M237.79 313.65l.47.224-.47-.224z"/> - <path fill="#845a52" d="M238.72 313.43l.704.67-.704-.67z"/> - <path fill="#8c8c8c" d="M239.43 313.43v.67h2.814l-2.814-.67z"/> - <path fill="#ada5a5" d="M242.24 313.43l.703.67-.703-.67z"/> - <path fill="#bdbdbd" d="M242.94 313.43v.67h2.11l-2.11-.67z"/> - <path fill="#cecece" d="M245.06 313.43l.703.67-.703-.67z"/> - <path fill="#63636b" d="M245.76 313.43l.703.67-.703-.67z"/> - <path fill="#295200" d="M246.46 313.43l2.11 2.008-2.11-2.008z"/> - <path fill="#428c00" d="M247.17 313.43c1.85 2.222 3.342 3.202 6.332 2.678l-6.332-2.678z"/> - <path fill="#397b00" d="M251.39 313.43l1.407 3.347h1.408l-2.814-3.347z"/> - <path fill="#63636b" d="M252.09 313.43l2.11 2.008-2.11-2.008z"/> - <path fill="#cecece" d="M254.9 313.43l-.703 1.34.703-1.34z"/> - <path fill="#214210" d="M255.61 313.43l.704.67-.704-.67z"/> - <path fill="#319400" d="M256.31 316.78l5.628-2.678c-2.867-1.142-6.19-.818-5.628 2.678z"/> - <path fill="#185200" d="M261.94 313.43l.703.67-.703-.67z"/> - <path fill="#8c8c8c" d="M262.64 313.43l.703.67-.703-.67z"/> - <path fill="#946b63" d="M268.97 313.43l.704.67-.704-.67z"/> - <path fill="#734a42" d="M270.15 313.65l.47.224-.47-.224z"/> - <path fill="#8c3939" d="M271.08 313.43l.703.67-.703-.67z"/> - <path fill="#631808" d="M271.79 313.43l.704.67-.704-.67z"/> - <path fill="#7b1008" d="M272.49 313.43l.703.67-.703-.67z"/> - <path fill="#ad1810" d="M273.66 313.65l.47.224-.47-.224z"/> - <path fill="#ce2110" d="M274.6 313.43l.704.67-.704-.67z"/> - <path fill="#ef9408" d="M284.92 313.65l.47.224-.47-.224m1.64-.223l.705.67-.704-.67z"/> - <path fill="#ef7b08" d="M287.26 313.43l.703.67-.703-.67z"/> - <path fill="#f7b508" d="M287.97 313.43l.703.67-.703-.67z"/> - <path fill="#de3110" d="M289.38 313.43l.704.67-.704-.67z"/> - <path fill="#631808" d="M294.3 313.43l.704.67-.704-.67z"/> - <path fill="#9c9494" d="M297.82 313.43l.703.67-.703-.67z"/> - <path fill="#8c8c8c" d="M298.52 313.43l.703.67-.703-.67zm3.52 0l.704.67-.704-.67z"/> - <path fill="#cecece" d="M302.74 313.43l.704.67-.704-.67z"/> - <path fill="#bdbdbd" d="M204.25 314.1l.703.67-.703-.67z"/> - <path fill="#631818" d="M204.96 314.1l.704.67-.704-.67z"/> - <path fill="#bd2110" d="M205.66 314.1l.703.67-.703-.67z"/> - <path fill="#de2110" d="M204.96 320.12c7.344-4.21 16.793 7.4 22.512-2.008l-.704-.67c-2.337.82-5.164 2.753-7.735 2.393-1.72-.24-19.48-11.747-14.073.285z"/> - <path fill="#bd2110" d="M209.88 314.1l.703.67-.703-.67z"/> - <path fill="#ad1810" d="M210.58 314.1l.704.67-.704-.67z"/> - <path fill="#631818" d="M211.29 314.1l.704.67-.704-.67z"/> - <path fill="#63636b" d="M211.99 314.1l.703.67-.703-.67z"/> - <path fill="#ada5a5" d="M212.69 314.1l.703.67-.703-.67z"/> - <path fill="#734a42" d="M213.4 314.1l.704.67-.704-.67z"/> - <path fill="#de3110" d="M218.32 314.1l.703.67-.703-.67z"/> - <path fill="#ef7b08" d="M219.73 314.1l.703.67-.703-.67z"/> - <path fill="#ce2110" d="M228.17 314.1l.703.67-.703-.67z"/> - <path fill="#ad1810" d="M228.87 314.1l.703.67-.703-.67z"/> - <path fill="#631808" d="M229.58 314.1l.703.67-.703-.67z"/> - <path fill="#733129" d="M230.28 314.1l.704.67-.704-.67z"/> - <path fill="#734a42" d="M230.99 314.1l.703.67-.703-.67z"/> - <path fill="#8c6363" d="M231.69 314.1l.703.67-.703-.67z"/> - <path fill="#8c8c8c" d="M232.86 314.32l.47.224-.47-.224z"/> - <path fill="#bdbdbd" d="M234.27 314.32l.47.224-.47-.224z"/> - <path fill="#efefef" d="M235.21 314.1l.703.67-.703-.67z"/> - <path fill="#9c9494" d="M246.46 314.1l2.11 2.008-2.11-2.008z"/> - <path fill="#103910" d="M254.9 314.1l.703.67-.703-.67z"/> - <path fill="#214210" d="M261.24 314.1l.703.67-.703-.67z"/> - <path fill="#ada5a5" d="M261.94 314.1l.703.67-.703-.67z"/> - <path fill="#bdbdbd" d="M273.66 314.32l.47.224-.47-.224z"/> - <path fill="#8c8c8c" d="M275.07 314.32l.47.224-.47-.224z"/> - <path fill="#8c7373" d="M276.01 314.1l.703.67-.703-.67z"/> - <path fill="#734a42" d="M276.71 314.1l.703.67-.703-.67z"/> - <path fill="#733939" d="M277.42 314.1l.704.67-.704-.67z"/> - <path fill="#631808" d="M278.12 314.1l.703.67-.703-.67z"/> - <path fill="#ad1810" d="M278.82 314.1l.703.67-.703-.67z"/> - <path fill="#bd2110" d="M279.53 314.1l.703.67-.703-.67z"/> - <path fill="#e75a10" d="M285.86 314.1l.704.67-.704-.67m2.345.446l.235.446-.235-.446z"/> - <path fill="#6b2908" d="M294.3 314.1l.704.67-.704-.67z"/> - <path fill="#cecece" d="M295 314.1l.703.67-.703-.67z"/> - <path fill="#7b7373" d="M295.71 314.1l.704.67-.704-.67z"/> - <path fill="#733129" d="M296.41 314.1l.703.67-.703-.67z"/> - <path fill="#941808" d="M297.11 314.1l.704.67-.704-.67z"/> - <path fill="#bd2110" d="M297.82 314.1l.703.67-.703-.67z"/> - <path fill="#de2110" d="M282.34 317.45c-.974 9.363 16.566.076 21.105 2.678 2.42-5.114-3.23-7.393-7.61-4.728-2.097 1.277-3.144 3.904-5.784 4.367-2.602.456-5.402-1.404-7.71-2.317z"/> - <path fill="#ce2110" d="M302.04 314.1l.704.67-.704-.67z"/> - <path fill="#7b1008" d="M302.74 314.1l.704.67-.704-.67z"/> - <path fill="#9c9494" d="M303.45 314.1l.703.67-.703-.67m-99.896.67l.703.67-.703-.67z"/> - <path fill="#631808" d="M204.25 314.77l.703.67-.703-.67z"/> - <path fill="#941808" d="M212.69 314.77l.703.67-.703-.67z"/> - <path fill="#310000" d="M213.4 314.77l.704.67-.704-.67z"/> - <path fill="#ce2110" d="M214.1 314.77l.704.67-.704-.67z"/> - <path fill="#ef9408" d="M219.03 314.77l.704.67-.704-.67z"/> - <path fill="#e75a10" d="M219.73 314.77l.703.67-.703-.67z"/> - <path fill="#ce2110" d="M223.95 314.77l.704.67-.704-.67z"/> - <path fill="#ad1810" d="M224.65 314.77l.704.67-.704-.67z"/> - <path fill="#7b1008" d="M225.36 314.77l.703.67-.703-.67z"/> - <path fill="#6b2908" d="M226.06 314.77l.703.67-.703-.67z"/> - <path fill="#734a42" d="M226.76 314.77l.704.67-.704-.67z"/> - <path fill="#7b7373" d="M227.47 314.77l.704.67-.704-.67z"/> - <path fill="#9c9494" d="M228.17 314.77l.703.67-.703-.67z"/> - <path fill="#bdbdbd" d="M228.87 314.77l.703.67-.703-.67z"/> - <path fill="#293129" d="M254.2 314.77l.703.67-.703-.67z"/> - <path fill="#297b00" d="M254.9 314.77l1.407 2.008-1.407-2.008m4.925 0l-.704 1.34.705-1.34z"/> - <path fill="#103910" d="M260.53 314.77l.704.67-.704-.67z"/> - <path fill="#cecece" d="M261.24 314.77l-.704 1.34.704-1.34z"/> - <path fill="#bdbdbd" d="M278.82 314.77l.703.67-.703-.67z"/> - <path fill="#9c9494" d="M279.53 314.77l.703.67-.703-.67z"/> - <path fill="#8c8c8c" d="M280.23 314.77l.704.67-.704-.67z"/> - <path fill="#734a42" d="M280.93 314.77l.703.67-.703-.67z"/> - <path fill="#733129" d="M281.64 314.77l.703.67-.703-.67z"/> - <path fill="#7b1008" d="M282.34 314.77l.703.67-.703-.67z"/> - <path fill="#ad1810" d="M283.04 314.77l.704.67-.704-.67z"/> - <path fill="#ce2110" d="M283.75 314.77l.703.67-.703-.67z"/> - <path fill="#f7b508" d="M288.67 314.77l.704.67-.704-.67z"/> - <path fill="#420000" d="M294.3 314.77l.704.67-.704-.67z"/> - <path fill="#941808" d="M295 314.77l.703.67-.703-.67m8.442 0l.703.67-.703-.67z"/> - <path fill="#8c8c8c" d="M304.15 314.77l.703.67-.703-.67z"/> - <path fill="#efefef" d="M202.85 315.44l.703.67-.703-.67z"/> - <path fill="#842118" d="M203.55 315.44l.703.67-.703-.67z"/> - <path fill="#bd2110" d="M213.4 315.44l.704.67-.704-.67z"/> - <path fill="#631808" d="M214.1 315.44l.704.67-.704-.67z"/> - <path fill="#ad1810" d="M221.84 315.44l.704.67-.704-.67z"/> - <path fill="#520808" d="M224.65 315.44l.704.67-.704-.67z"/> - <path fill="#bdbdbd" d="M225.36 315.44l.703.67-.703-.67z"/> - <path fill="#214210" d="M248.57 315.44l.703.67-.703-.67z"/> - <path fill="#103900" d="M254.2 315.44l.703.67-.703-.67z"/> - <path fill="#293129" d="M259.83 315.44l.704.67-.704-.67z"/> - <path fill="#dedede" d="M282.34 315.44l.703.67-.703-.67z"/> - <path fill="#391810" d="M283.04 315.44l.704.67-.704-.67z"/> - <path fill="#7b1008" d="M283.75 315.44l.703.67-.703-.67z"/> - <path fill="#5a1008" d="M284.45 315.44l.703.67-.703-.67z"/> - <path fill="#631808" d="M285.15 315.44l.703.67-.703-.67z"/> - <path fill="#941808" d="M285.86 315.44l1.407 1.34-1.407-1.34m7.738 0l.704.67-.704-.67z"/> - <path fill="#ad1810" d="M294.3 315.44l.704.67-.704-.67z"/> - <path fill="#7b1008" d="M304.15 315.44l.703.67-.703-.67z"/> - <path fill="#bdbdbd" d="M304.85 315.44l.703.67-.703-.67z"/> - <path fill="#8c8c8c" d="M202.85 316.11l.703.67-.703-.67z"/> - <path fill="#bd2110" d="M203.55 316.11l.703.67-.703-.67z"/> - <path fill="#7b1008" d="M214.1 316.11l.704.67-.704-.67z"/> - <path fill="#b51010" d="M214.8 316.11l.703.67-.703-.67z"/> - <path fill="#941808" d="M221.61 316.33l.47.224-.47-.224z"/> - <path fill="#631818" d="M225.36 316.11l.703.67-.703-.67z"/> - <path fill="#ada5a5" d="M226.06 316.11l.703.67-.703-.67z"/> - <path fill="#cecece" d="M245.76 316.11l.703.67-.703-.67z"/> - <path fill="#7b7373" d="M246.46 316.11l.703.67-.703-.67z"/> - <path fill="#734a42" d="M247.17 316.11v.67h2.11l-2.11-.67z"/> - <path fill="#293100" d="M249.28 316.11l.703.67-.703-.67z"/> - <path fill="#397b00" d="M249.98 316.11l.704.67-.704-.67z"/> - <path fill="#295200" d="M254.2 316.11l.703.67-.703-.67z"/> - <path fill="#082108" d="M254.9 316.11l.703.67-.703-.67z"/> - <path fill="#296300" d="M257.72 316.11l.703.67-.703-.67z"/> - <path fill="#184a00" d="M258.42 316.11l.704.67-.704-.67z"/> - <path fill="#392100" d="M259.12 316.11l.703.67-.703-.67z"/> - <path fill="#733939" d="M259.83 316.11l.704.67-.704-.67z"/> - <path fill="#734a42" d="M260.53 316.11l.704.67-.704-.67z"/> - <path fill="#736b6b" d="M261.24 316.11l.703.67-.703-.67z"/> - <path fill="#ada5a5" d="M261.94 316.11l.703.67-.703-.67z"/> - <path fill="#cecece" d="M281.64 316.11l-.703 1.34.703-1.34z"/> - <path fill="#5a1010" d="M282.34 316.11l.703.67-.703-.67z"/> - <path fill="#ce2110" d="M283.04 316.11l.704.67-.704-.67z"/> - <path fill="#ad1810" d="M285.86 316.11l.704.67-.704-.67z"/> - <path fill="#ce2110" d="M292.89 316.11l1.407 1.34-1.407-1.34z"/> - <path fill="#5a1008" d="M293.6 316.11l.703.67-.703-.67z"/> - <path fill="#736b6b" d="M304.85 316.11l.703.67-.703-.67z"/> - <path fill="#8c6363" d="M202.85 316.78l.703.67-.703-.67z"/> - <path fill="#520808" d="M214.8 316.78l.703.67-.703-.67z"/> - <path fill="#ce2110" d="M215.51 316.78l.703.67-.703-.67z"/> - <path fill="#bd2110" d="M224.65 316.78l.704.67-.704-.67z"/> - <path fill="#7b1008" d="M225.36 316.78l-.704 1.34.704-1.34z"/> - <path fill="#100808" d="M226.06 316.78l.703.67-.703-.67z"/> - <path fill="#9c9494" d="M226.76 316.78l.704.67-.704-.67z"/> - <path fill="#bdbdbd" d="M242.94 316.78l.703.67-.703-.67z"/> - <path fill="#ada5a5" d="M243.65 316.78l.703.67-.703-.67z"/> - <path fill="#8c8c8c" d="M244.35 316.78l.704.67-.704-.67z"/> - <path fill="#52525a" d="M245.06 316.78l.703.67-.703-.67z"/> - <path fill="#7b1008" d="M245.76 316.78l.703.67-.703-.67z"/> - <path fill="#ce2110" d="M246.46 316.78l.703.67-.703-.67z"/> - <path fill="#de2110" d="M245.76 320.12l5.628.67c-.344-4.107-4.818-5.11-5.628-.67z"/> - <path fill="#b51010" d="M249.98 316.78l.704.67-.704-.67z"/> - <path fill="#7b1008" d="M250.68 316.78l.703.67-.703-.67z"/> - <path fill="#292100" d="M251.39 316.78l.703.67-.703-.67z"/> - <path fill="#422100" d="M252.09 316.78l.703.67-.703-.67z"/> - <path fill="#941808" d="M252.79 316.78l.704.67-.704-.67z"/> - <path fill="#ad1810" d="M253.5 316.78v.67h2.11l-2.11-.67z"/> - <path fill="#311000" d="M255.61 316.78l.704.67-.704-.67z"/> - <path fill="#293100" d="M256.31 316.78l.703.67-.703-.67z"/> - <path fill="#631808" d="M257.01 316.78l.704.67-.704-.67z"/> - <path fill="#941808" d="M257.72 316.78l.703.67-.703-.67z"/> - <path fill="#de2110" d="M257.01 317.45l.704 3.347 4.924-.67c-.576-3.284-2.52-3.348-5.628-2.677z"/> - <path fill="#b51010" d="M261.94 316.78l.703.67-.703-.67z"/> - <path fill="#423131" d="M262.64 316.78l.703.67-.703-.67z"/> - <path fill="#8c8c8c" d="M263.35 316.78l.704.67-.704-.67z"/> - <path fill="#9c9494" d="M264.05 316.78l.703.67-.703-.67z"/> - <path fill="#bdbdbd" d="M264.75 316.78l.703.67-.703-.67z"/> - <path fill="#efefef" d="M265.46 316.78l.703.67-.703-.67z"/> - <path fill="#101810" d="M281.64 316.78l.703.67-.703-.67z"/> - <path fill="#631808" d="M282.34 316.78l.703.67-.703-.67z"/> - <path fill="#b51010" d="M283.04 316.78l.704.67-.704-.67z"/> - <path fill="#520808" d="M292.89 316.78l.704.67-.704-.67z"/> - <path fill="#734a42" d="M305.09 317.22l.235.446-.235-.446z"/> - <path fill="#8c8c8c" d="M202.85 317.45l.703.67-.703-.67z"/> - <path fill="#bd2110" d="M214.8 317.45l.703.67-.703-.67z"/> - <path fill="#631808" d="M215.51 317.45l.703.67-.703-.67z"/> - <path fill="#ad1810" d="M223.25 317.45l.703.67-.703-.67z"/> - <path fill="#5a1008" d="M223.95 317.45l.704.67-.704-.67z"/> - <path fill="#ce2110" d="M225.36 317.45l.703.67-.703-.67z"/> - <path fill="#5a1008" d="M226.76 317.45l.704.67-.704-.67z"/> - <path fill="#cecece" d="M227.47 317.45l.704.67-.704-.67z"/> - <path fill="#efefef" d="M240.13 317.45l.703.67-.703-.67z"/> - <path fill="#ada5a5" d="M240.83 317.45l.703.67-.703-.67z"/> - <path fill="#736b6b" d="M241.54 317.45l.704.67-.704-.67z"/> - <path fill="#631818" d="M242.24 317.45l.703.67-.703-.67z"/> - <path fill="#941808" d="M242.94 317.45l.703.67-.703-.67z"/> - <path fill="#b51010" d="M243.65 317.45l.703.67-.703-.67z"/> - <path fill="#de2110" d="M244.35 317.45l-2.814.67v4.016c2.433-.982 3.837-2.122 2.814-4.686z"/> - <path fill="#5a1008" d="M245.06 317.45l.703.67-.703-.67z"/> - <path fill="#520808" d="M251.39 317.45l.703.67-.703-.67z"/> - <path fill="#de2110" d="M252.09 317.45v4.016h4.22v-4.016h-4.22z"/> - <path fill="#520808" d="M256.31 317.45l.703.67-.703-.67z"/> - <path fill="#941808" d="M262.64 317.45l.703.67-.703-.67z"/> - <path fill="#b51010" d="M263.35 317.45l.704.67-.704-.67z"/> - <path fill="#bd2110" d="M264.05 317.45l.703.67-.703-.67z"/> - <path fill="#ad1810" d="M264.75 317.45l.703.67-.703-.67z"/> - <path fill="#7b1008" d="M265.46 317.45l.703.67-.703-.67z"/> - <path fill="#6b4242" d="M266.16 317.45l.704.67-.704-.67z"/> - <path fill="#8c8c8c" d="M266.86 317.45l.703.67-.703-.67z"/> - <path fill="#dedede" d="M267.57 317.45l.703.67-.703-.67z"/> - <path fill="#efefef" d="M280.23 317.45l.704.67-.704-.67z"/> - <path fill="#5a1010" d="M280.93 317.45l.703.67-.703-.67z"/> - <path fill="#ce2110" d="M281.64 317.45l.703.67-.703-.67z"/> - <path fill="#941808" d="M283.04 317.45l.704.67-.704-.67z"/> - <path fill="#5a1008" d="M283.75 317.45l.703.67-.703-.67z"/> - <path fill="#941808" d="M284.45 317.45l.703.67-.703-.67z"/> - <path fill="#7b1008" d="M292.19 317.45l.703.67-.703-.67z"/> - <path fill="#ad1810" d="M292.89 317.45l.704.67-.704-.67z"/> - <path fill="#bdbdbd" d="M203.08 318.56l.235.446-.235-.446z"/> - <path fill="#ad1810" d="M203.55 318.12l.703.67-.703-.67z"/> - <path fill="#ce2110" d="M207.07 318.12l.703.67-.703-.67z"/> - <path fill="#bd2110" d="M207.77 318.12l.704.67-.704-.67z"/> - <path fill="#7b1008" d="M215.51 318.12l.703.67-.703-.67z"/> - <path fill="#ad1810" d="M216.21 318.12l.704.67-.704-.67z"/> - <path fill="#bd2110" d="M221.84 318.12l.704.67-.704-.67z"/> - <path fill="#520808" d="M222.54 318.12l.703.67-.703-.67z"/> - <path fill="#941808" d="M223.25 318.12l.703.67-.703-.67z"/> - <path fill="#ada5a5" d="M227.47 318.12l.704.67-.704-.67z"/> - <path fill="#bdbdbd" d="M240.37 318.56l.235.446-.235-.446z"/> - <path fill="#941808" d="M240.83 318.12l.703.67-.703-.67z"/> - <path fill="#631808" d="M245.06 318.12v2.678h.703l-.703-2.678m6.33 0v2.678h.705l-.704-2.678z"/> - <path fill="#941808" d="M256.31 318.12l.703.67-.703-.67z"/> - <path fill="#bd2110" d="M257.01 318.12l.704.67-.704-.67z"/> - <path fill="#ad1810" d="M262.64 318.12l-2.11 3.347h2.11v-1.34l1.407.67v-2.677h-1.407z"/> - <path fill="#de2110" d="M264.05 318.12v3.347l2.814.67.703-3.348-3.517-.67z"/> - <path fill="#bd2110" d="M266.86 318.12l.703.67-.703-.67z"/> - <path fill="#6b4242" d="M267.57 318.12l.703.67-.703-.67z"/> - <path fill="#bdbdbd" d="M280.23 318.12l.704.67-.704-.67z"/> - <path fill="#ad1810" d="M280.93 318.12l.703.67-.703-.67m3.518 0l.703.67-.702-.67z"/> - <path fill="#520808" d="M285.15 318.12l.703.67-.703-.67z"/> - <path fill="#ad1810" d="M285.86 318.12l.704.67-.704-.67z"/> - <path fill="#bd2110" d="M291.49 318.12l.704.67-.704-.67z"/> - <path fill="#631808" d="M292.19 318.12l.703.67-.703-.67z"/> - <path fill="#bd2110" d="M300.4 318.34l.47.224-.47-.224m3.752-.223l.703.67-.703-.67z"/> - <path fill="#8c8c8c" d="M304.85 318.12l.703.67-.703-.67z"/> - <path fill="#cecece" d="M197.92 318.78l.703.67-.703-.67z"/> - <path fill="#bdbdbd" d="M198.62 318.78l.703.67-.703-.67z"/> - <path fill="#9c9494" d="M202.14 318.78l.704.67-.704-.67z"/> - <path fill="#5a1010" d="M203.55 318.78l.703.67-.703-.67z"/> - <path fill="#bd2110" d="M205.66 318.78l.703.67-.703-.67z"/> - <path fill="#5a1008" d="M206.36 318.78l.703.67-.703-.67z"/> - <path fill="#631808" d="M207.07 318.78l.703.67-.703-.67z"/> - <path fill="#941808" d="M207.77 318.78l.704.67-.704-.67z"/> - <path fill="#631808" d="M208.47 318.78l.703.67-.703-.67z"/> - <path fill="#7b1008" d="M209.18 318.78l.703.67-.703-.67z"/> - <path fill="#5a1008" d="M209.88 318.78l.703.67-.703-.67z"/> - <path fill="#bd2110" d="M210.58 318.78l.704.67-.704-.67z"/> - <path fill="#5a1008" d="M216.21 318.78l.704.67-.704-.67z"/> - <path fill="#941808" d="M217.15 319.23l.235.446-.235-.446z"/> - <path fill="#b51010" d="M220.43 318.78l.704.67-.704-.67z"/> - <path fill="#5a1008" d="M221.14 318.78l.703.67-.703-.67z"/> - <path fill="#631808" d="M221.84 318.78l.704.67-.704-.67z"/> - <path fill="#ce2110" d="M222.54 318.78l.703.67-.703-.67z"/> - <path fill="#941808" d="M226.76 318.78l.704.67-.704-.67z"/> - <path fill="#cecece" d="M227.47 318.78l.704.67-.704-.67z"/> - <path fill="#ad1810" d="M240.83 318.78l.703.67-.703-.67m15.477 0v1.34h1.407v-1.34h-1.407z"/> - <path fill="#8c8c8c" d="M267.8 319.23l.235.446-.235-.446z"/> - <path fill="#dedede" d="M280.23 318.78l.704.67-.704-.67z"/> - <path fill="#631808" d="M280.93 318.78l.703.67-.703-.67z"/> - <path fill="#941808" d="M285.86 318.78l.704.67-.704-.67z"/> - <path fill="#5a1008" d="M286.56 318.78l.704.67-.704-.67z"/> - <path fill="#ad1810" d="M287.26 318.78l.703.67-.703-.67z"/> - <path fill="#b51010" d="M290.78 318.78l.703.67-.703-.67z"/> - <path fill="#520808" d="M291.49 318.78l.704.67-.704-.67z"/> - <path fill="#ce2110" d="M292.19 318.78l.703.67-.703-.67m4.925 0l.703.67-.703-.67z"/> - <path fill="#7b1008" d="M297.82 318.78l.703.67-.703-.67z"/> - <path fill="#631808" d="M298.99 319.01l.47.224-.47-.224z"/> - <path fill="#941808" d="M299.93 318.78l.704.67-.704-.67z"/> - <path fill="#7b1008" d="M300.63 318.78l.703.67-.703-.67z"/> - <path fill="#5a1008" d="M301.33 318.78l.703.67-.703-.67z"/> - <path fill="#b51010" d="M302.04 318.78l.704.67-.704-.67z"/> - <path fill="#520808" d="M304.15 318.78l.703.67-.703-.67z"/> - <path fill="#ada5a5" d="M305.32 319.01l.47.224-.47-.224z"/> - <path fill="#bdbdbd" d="M309.54 319.01l.47.224-.47-.224z"/> - <path fill="#ada5a5" d="M195.81 319.45l.703.67-.703-.67z"/> - <path fill="#63636b" d="M196.51 319.45l.704.67-.704-.67z"/> - <path fill="#733129" d="M197.22 319.45l.703.67-.703-.67z"/> - <path fill="#941808" d="M197.92 319.45l.703.67-.703-.67z"/> - <path fill="#de2110" d="M194.4 321.46c2.827 5.764 17.61 7.367 21.105 1.34-8.182.983-13.45-5.158-21.105-1.34z"/> - <path fill="#ce2110" d="M202.14 319.45l.704.67-.704-.67z"/> - <path fill="#ad1810" d="M202.85 319.45l.703.67-.703-.67z"/> - <path fill="#7b1008" d="M203.55 319.45l.703.67-.703-.67z"/> - <path fill="#ce2110" d="M206.36 319.45l.703.67-.703-.67z"/> - <path fill="#de2110" d="M214.8 322.13c-6.6-5.067-10.878 1.308 0 0z"/> - <path fill="#ce2110" d="M209.88 319.45l.703.67-.703-.67z"/> - <path fill="#7b1008" d="M210.58 319.45l.704.67-.704-.67z"/> - <path fill="#520808" d="M211.29 319.45l.704.67-.704-.67z"/> - <path fill="#941808" d="M211.99 319.45l.703.67-.703-.67zm8.44 0l.704.67-.704-.67z"/> - <path fill="#ce2110" d="M221.14 319.45l.703.67-.703-.67z"/> - <path fill="#5a2121" d="M226.76 319.45l.704.67-.704-.67z"/> - <path fill="#7b1008" d="M240.83 319.45l.703.67-.703-.67z"/> - <path fill="#736b6b" d="M280.93 319.45l.703.67-.703-.67z"/> - <path fill="#ce2110" d="M281.64 319.45l.703.67-.703-.67z"/> - <path fill="#941808" d="M287.26 319.45l.703.67-.703-.67z"/> - <path fill="#5a1008" d="M287.97 319.45l.703.67-.703-.67z"/> - <path fill="#ad1810" d="M295.71 319.45l.704.67-.704-.67z"/> - <path fill="#631808" d="M296.88 319.68l.47.224-.47-.224z"/> - <path fill="#bd2110" d="M297.82 319.45l.703.67-.703-.67z"/> - <path fill="#de2110" d="M293.6 321.46v.67c3.633.437 7.668 1.733 8.442-2.678l-8.442 2.008z"/> - <path fill="#520808" d="M302.04 319.45l.704.67-.704-.67z"/> - <path fill="#b51010" d="M303.45 319.45l.703.67-.703-.67z"/> - <path fill="#5a1008" d="M304.15 319.45l-.703 1.34.703-1.34z"/> - <path fill="#ad1810" d="M304.85 319.45l.703.67-.703-.67z"/> - <path fill="#ce2110" d="M305.56 319.45l.704.67-.704-.67z"/> - <path fill="#de2110" d="M292.89 322.8c3.475 5.997 18.307 4.366 21.105-1.34-7.655-3.817-12.922 2.324-21.105 1.34z"/> - <path fill="#941808" d="M309.78 319.45l.703.67-.703-.67z"/> - <path fill="#6b2908" d="M310.48 319.45l.703.67-.703-.67z"/> - <path fill="#736b6b" d="M311.18 319.45l.704.67-.704-.67z"/> - <path fill="#9c9494" d="M311.89 319.45l.703.67-.703-.67z"/> - <path fill="#efefef" d="M312.59 319.45l.703.67-.703-.67z"/> - <path fill="#cecece" d="M194.4 320.12l-1.407 2.008 1.407-2.008z"/> - <path fill="#5a3131" d="M195.11 320.12l.703.67-.703-.67z"/> - <path fill="#941808" d="M195.81 320.12l.703.67-.703-.67z"/> - <path fill="#631808" d="M204.25 320.12l.703.67-.703-.67z"/> - <path fill="#ad1810" d="M211.99 320.12l.703.67-.703-.67z"/> - <path fill="#5a1008" d="M213.16 320.35l.47.224-.47-.224z"/> - <path fill="#bd2110" d="M214.1 320.12l.704.67-.704-.67z"/> - <path fill="#631818" d="M226.06 320.12l.703.67-.703-.67z"/> - <path fill="#cecece" d="M226.76 320.12l-.703 1.34.703-1.34z"/> - <path fill="#631808" d="M240.83 320.12l.703.67-.703-.67z"/> - <path fill="#ad1810" d="M245.76 320.12v.67l2.814.67-2.814-1.34z"/> - <path fill="#941808" d="M256.31 320.12l1.407 1.34-1.407-1.34z"/> - <path fill="#ce2110" d="M257.01 320.12l.704.67-.704-.67z"/> - <path fill="#b51010" d="M259.83 320.12l.704.67-.704-.67z"/> - <path fill="#941808" d="M262.64 320.12l1.407 1.34-1.407-1.34z"/> - <path fill="#ad1810" d="M266.86 320.12l.703.67-.703-.67z"/> - <path fill="#bdbdbd" d="M267.57 320.12l.703.67-.703-.67z"/> - <path fill="#efefef" d="M280.93 320.12l.703.67-.703-.67z"/> - <path fill="#5a2121" d="M281.64 320.12l1.407 1.34-1.407-1.34z"/> - <path fill="#ce2110" d="M293.6 320.12l.703.67-.703-.67z"/> - <path fill="#7b1008" d="M294.3 320.12l-.703 1.34.703-1.34z"/> - <path fill="#5a1008" d="M295 320.12l.703.67-.703-.67z"/> - <path fill="#941808" d="M295.71 320.12l.704.67-.704-.67z"/> - <path fill="#b51010" d="M302.04 320.12l.704.67-.704-.67z"/> - <path fill="#631808" d="M302.74 320.12l.704.67-.704-.67z"/> - <path fill="#b51010" d="M311.89 320.12l.703.67-.703-.67z"/> - <path fill="#5a2121" d="M312.59 320.12l.703.67-.703-.67z"/> - <path fill="#bdbdbd" d="M313.29 320.12l.703.67-.703-.67z"/> - <path fill="#631818" d="M194.4 320.79l.703.67-.703-.67z"/> - <path fill="#ce2110" d="M204.25 320.79l.703.67-.703-.67z"/> - <path fill="#210800" d="M204.96 320.79l.704.67-.704-.67z"/> - <path fill="#ad1810" d="M205.66 320.79l-.704 1.34.704-1.34z"/> - <path fill="#ce2110" d="M213.4 320.79l.704.67-.704-.67z"/> - <path fill="#7b1008" d="M214.1 320.79l.704.67-.704-.67z"/> - <path fill="#420000" d="M214.8 320.79l.703.67-.703-.67z"/> - <path fill="#ad1810" d="M215.51 320.79l.703.67-.703-.67z"/> - <path fill="#bd2110" d="M224.65 320.79l.704.67-.704-.67z"/> - <path fill="#5a1010" d="M225.36 320.79l.703.67-.703-.67z"/> - <path fill="#734a42" d="M240.83 320.79l.703.67-.703-.67z"/> - <path fill="#ce2110" d="M244.35 320.79l.704.67-.704-.67z"/> - <path fill="#310000" d="M245.06 320.79l.703.67-.703-.67z"/> - <path fill="#941808" d="M245.99 321.24l.235.446-.235-.446z"/> - <path fill="#b51010" d="M246.93 321.02l.47.224-.47-.224z"/> - <path fill="#7b1008" d="M248.57 320.79l.703.67-.703-.67z"/> - <path fill="#5a1008" d="M249.28 320.79l.703.67-.703-.67z"/> - <path fill="#631808" d="M249.98 320.79l.704.67-.704-.67z"/> - <path fill="#7b1008" d="M250.68 320.79l.703.67-.703-.67z"/> - <path fill="#520808" d="M251.39 320.79l.703.67-.703-.67z"/> - <path fill="#420000" d="M256.31 320.79l.703.67-.703-.67z"/> - <path fill="#631808" d="M257.72 320.79v.67h2.11l-2.11-.67z"/> - <path fill="#941808" d="M259.83 320.79l.704.67-.704-.67z"/> - <path fill="#bd2110" d="M261.24 320.79l.703.67-.703-.67z"/> - <path fill="#310000" d="M262.64 320.79l.703.67-.703-.67z"/> - <path fill="#941808" d="M266.86 320.79l.703.67-.703-.67z"/> - <path fill="#cecece" d="M267.57 320.79l.703.67-.703-.67m14.07 0l.703.67-.703-.67z"/> - <path fill="#b51010" d="M283.04 320.79l.704.67-.704-.67m9.145 0l.704.67-.705-.67z"/> - <path fill="#520808" d="M292.89 320.79l.704.67-.704-.67z"/> - <path fill="#bd2110" d="M294.3 320.79l.704.67-.704-.67m7.738 0l.704.67-.704-.67z"/> - <path fill="#210800" d="M302.74 320.79l.704.67-.704-.67z"/> - <path fill="#bd2110" d="M303.45 320.79l.703.67-.703-.67z"/> - <path fill="#7b1008" d="M313.29 320.79l.703.67-.703-.67z"/> - <path fill="#9c9494" d="M314 320.79l.704.67-.704-.67z"/> - <path fill="#631818" d="M193.7 321.46l3.518 4.016-3.518-4.016z"/> - <path fill="#420000" d="M205.66 321.46l.703.67-.703-.67z"/> - <path fill="#842118" d="M214.8 321.46l.703.67-.703-.67z"/> - <path fill="#8c8c8c" d="M215.51 321.46l.703.67-.703-.67z"/> - <path fill="#524242" d="M216.21 321.46l.704.67-.704-.67z"/> - <path fill="#7b1008" d="M216.92 321.46l.703.67-.703-.67z"/> - <path fill="#b51010" d="M217.62 321.46l.704.67-.704-.67m5.628 0l.703.67-.702-.67z"/> - <path fill="#5a1008" d="M223.95 321.46l.704.67-.704-.67z"/> - <path fill="#7b7373" d="M224.65 321.46l.704.67-.704-.67z"/> - <path fill="#efefef" d="M225.36 321.46l.703.67-.703-.67z"/> - <path fill="#845a52" d="M240.83 321.46l.703.67-.703-.67z"/> - <path fill="#bd2110" d="M242.24 321.46l.703.67-.703-.67z"/> - <path fill="#631818" d="M242.94 321.46l.703.67-.703-.67z"/> - <path fill="#7b5252" d="M243.65 321.46l.703.67-.703-.67z"/> - <path fill="#8c8c8c" d="M244.35 321.46l.704.67-.704-.67z"/> - <path fill="#63636b" d="M245.06 321.46l.703.67-.703-.67z"/> - <path fill="#de2110" d="M246.46 321.46v.67h2.814l-2.814-.67z"/> - <path fill="#b51010" d="M249.28 321.46l.703.67-.703-.67z"/> - <path fill="#941808" d="M249.98 321.46l.704.67-.704-.67z"/> - <path fill="#5a1008" d="M250.68 321.46l.703.67-.703-.67z"/> - <path fill="#392100" d="M251.39 321.46l.703.67-.703-.67z"/> - <path fill="#292100" d="M252.09 321.46l.703.67-.703-.67z"/> - <path fill="#7b1008" d="M252.79 321.46l.704.67-.704-.67z"/> - <path fill="#ad1810" d="M253.97 321.69l.47.224-.47-.224z"/> - <path fill="#941808" d="M254.9 321.46l.703.67-.703-.67z"/> - <path fill="#311000" d="M255.61 321.46l.704.67-.704-.67z"/> - <path fill="#292100" d="M256.31 321.46l.703.67-.703-.67z"/> - <path fill="#4a1000" d="M257.01 321.46l.704.67-.704-.67z"/> - <path fill="#7b1008" d="M257.72 321.46l.703.67-.703-.67z"/> - <path fill="#ad1810" d="M258.42 321.46l.704.67-.704-.67z"/> - <path fill="#de2110" d="M259.12 321.46v.67h2.814l-2.814-.67z"/> - <path fill="#b51010" d="M261.94 321.46l.703.67-.703-.67z"/> - <path fill="#5a1010" d="M262.64 321.46l.703.67-.703-.67z"/> - <path fill="#9c9494" d="M263.35 321.46l.704.67-.704-.67z"/> - <path fill="#7b7373" d="M264.05 321.46l.703.67-.703-.67z"/> - <path fill="#6b2131" d="M264.75 321.46l.703.67-.703-.67z"/> - <path fill="#941808" d="M265.46 321.46l.703.67-.703-.67z"/> - <path fill="#631808" d="M266.86 321.46l.703.67-.703-.67z"/> - <path fill="#8c8c8c" d="M283.04 321.46l.704.67-.704-.67z"/> - <path fill="#631818" d="M283.75 321.46l.703.67-.703-.67z"/> - <path fill="#ad1810" d="M284.45 321.46l.703.67-.703-.67z"/> - <path fill="#b51010" d="M290.08 321.46l.703.67-.703-.67z"/> - <path fill="#7b1008" d="M290.78 321.46l.703.67-.703-.67z"/> - <path fill="#733939" d="M291.49 321.46l.704.67-.704-.67z"/> - <path fill="#8c8c8c" d="M292.19 321.46l.703.67-.703-.67z"/> - <path fill="#631818" d="M292.89 321.46l.704.67-.704-.67z"/> - <path fill="#941808" d="M314 321.46l.704.67-.704-.67z"/> - <path fill="#ada5a5" d="M314.7 321.46l.703.67-.703-.67z"/> - <path fill="#63636b" d="M193 322.13l2.814 2.678L193 322.13z"/> - <path fill="#941808" d="M205.66 322.13l.703.67-.703-.67z"/> - <path fill="#5a1008" d="M206.36 322.13l1.407 1.34-1.407-1.34z"/> - <path fill="#ce2110" d="M211.99 322.13l.703.67-.703-.67z"/> - <path fill="#ad1810" d="M212.93 322.58l.235.446-.235-.446z"/> - <path fill="#631808" d="M213.87 322.35l.47.224-.47-.224z"/> - <path fill="#7b1008" d="M214.8 322.13l.703.67-.703-.67z"/> - <path fill="#392121" d="M215.51 322.13l.703.67-.703-.67z"/> - <path fill="#efefef" d="M216.92 322.13l.703.67-.703-.67z"/> - <path fill="#ada5a5" d="M217.62 322.13l.704.67-.704-.67z"/> - <path fill="#7b7373" d="M218.32 322.13l.703.67-.703-.67z"/> - <path fill="#6b2131" d="M219.03 322.13l.704.67-.704-.67z"/> - <path fill="#631808" d="M219.73 322.13l.703.67-.703-.67z"/> - <path fill="#9c4239" d="M220.43 322.13l.704.67-.704-.67z"/> - <path fill="#ad524a" d="M221.14 322.13l.703.67-.703-.67z"/> - <path fill="#734a42" d="M221.84 322.13l.704.67-.704-.67z"/> - <path fill="#63636b" d="M222.54 322.13l.703.67-.703-.67z"/> - <path fill="#ada5a5" d="M223.25 322.13l.703.67-.703-.67z"/> - <path fill="#efefef" d="M223.95 322.13l.704.67-.704-.67z"/> - <path fill="#8c8c8c" d="M240.83 322.13l.703.67-.703-.67z"/> - <path fill="#6b2131" d="M241.54 322.13l.704.67-.704-.67z"/> - <path fill="#8c8c8c" d="M242.24 322.13l.703.67-.703-.67z"/> - <path fill="#efefef" d="M242.94 322.13l.703.67-.703-.67m2.11 0l.704.67-.704-.67z"/> - <path fill="#313931" d="M245.76 322.13l.703.67-.703-.67z"/> - <path fill="#184a00" d="M246.46 322.13v.67h2.814l-2.814-.67z"/> - <path fill="#296300" d="M249.28 322.13l.703.67-.703-.67z"/> - <path fill="#297b00" d="M249.98 322.13l-.703 2.678.703-2.678z"/> - <path fill="#319400" d="M251.15 322.35l.47.224-.47-.224z"/> - <path fill="#214210" d="M252.09 322.13l-.703 1.34.703-1.34z"/> - <path fill="#9c9494" d="M252.79 322.13l.704.67-.704-.67z"/> - <path fill="#bdbdbd" d="M253.97 322.35l.47.224-.47-.224z"/> - <path fill="#efefef" d="M254.9 322.13l.703.67-.703-.67z"/> - <path fill="#63636b" d="M255.61 322.13l.704.67-.704-.67z"/> - <path fill="#397b00" d="M256.31 322.13l.703.67-.703-.67z"/> - <path fill="#428c00" d="M257.01 322.13c2.57 3 6.954 6.73 10.552 3.347l-10.552-3.347z"/> - <path fill="#397b00" d="M258.42 322.13l.704.67-.704-.67z"/> - <path fill="#294200" d="M259.12 322.13v.67h2.814l-2.814-.67z"/> - <path fill="#103900" d="M261.94 322.13l.703.67-.703-.67z"/> - <path fill="#8c8c8c" d="M262.64 322.13l.703.67-.703-.67z"/> - <path fill="#bdbdbd" d="M265.46 322.13l.703.67-.703-.67z"/> - <path fill="#524242" d="M266.16 322.13l.704.67-.704-.67z"/> - <path fill="#5a1010" d="M266.86 322.13l.703.67-.703-.67z"/> - <path fill="#bdbdbd" d="M284.45 322.13l.703.67-.703-.67z"/> - <path fill="#7b7373" d="M285.15 322.13l.703.67-.703-.67z"/> - <path fill="#734a42" d="M285.86 322.13l.704.67-.704-.67z"/> - <path fill="#ad524a" d="M287.03 322.35l.47.224-.47-.224z"/> - <path fill="#631808" d="M287.97 322.13l.703.67-.703-.67z"/> - <path fill="#733129" d="M288.67 322.13l.704.67-.704-.67z"/> - <path fill="#736b6b" d="M289.38 322.13l.704.67-.704-.67z"/> - <path fill="#9c9494" d="M290.08 322.13l.703.67-.703-.67z"/> - <path fill="#dedede" d="M290.78 322.13l.703.67-.703-.67z"/> - <path fill="#52525a" d="M292.19 322.13l.703.67-.703-.67z"/> - <path fill="#5a1008" d="M292.89 322.13l.704.67-.704-.67z"/> - <path fill="#631808" d="M294.07 322.35l.47.224-.47-.224z"/> - <path fill="#ad1810" d="M295.24 322.58l.235.446-.235-.446z"/> - <path fill="#ce2110" d="M295.71 322.13l.704.67-.704-.67z"/> - <path fill="#941808" d="M301.33 322.13l.703.67-.703-.67z"/> - <path fill="#631818" d="M314 322.13l.704.67-.704-.67z"/> - <path fill="#63636b" d="M314.7 322.13l-.704 1.34.704-1.34z"/> - <path fill="#efefef" d="M315.4 322.13l.703.67-.703-.67z"/> - <path fill="#8c8c8c" d="M192.29 322.8l2.814 2.678-2.814-2.678z"/> - <path fill="#cecece" d="M193 322.8l.703.67-.703-.67z"/> - <path fill="#b51010" d="M206.36 322.8l.703.67-.703-.67z"/> - <path fill="#631808" d="M208.24 323.02l.47.224-.47-.224z"/> - <path fill="#941808" d="M209.18 322.8l.703.67-.703-.67z"/> - <path fill="#ad1810" d="M209.88 322.8l.703.67-.703-.67z"/> - <path fill="#941808" d="M210.58 322.8l.704.67-.704-.67z"/> - <path fill="#631808" d="M211.76 323.02l.47.224-.47-.224z"/> - <path fill="#5a1008" d="M215.51 322.8l.703.67-.703-.67z"/> - <path fill="#cecece" d="M216.21 322.8l.704.67-.704-.67z"/> - <path fill="#dedede" d="M240.83 322.8l.703.67-.703-.67z"/> - <path fill="#cecece" d="M244.35 322.8l.704.67-.704-.67z"/> - <path fill="#294221" d="M245.06 322.8l.703.67-.703-.67z"/> - <path fill="#297b00" d="M245.76 322.8l.703.67-.703-.67z"/> - <path fill="#319400" d="M241.54 325.48c3.306 3.105 6.798.214 9.145-2.678l-9.145 2.678z"/> - <path fill="#cecece" d="M252.09 322.8l-.703 1.34.703-1.34z"/> - <path fill="#8c8c8c" d="M256.31 322.8l.703.67-.703-.67z"/> - <path fill="#294200" d="M257.01 322.8l.704.67-.704-.67z"/> - <path fill="#397b00" d="M262.64 322.8l.703.67-.703-.67z"/> - <path fill="#52525a" d="M263.35 322.8l.704.67-.704-.67z"/> - <path fill="#efefef" d="M264.05 322.8l.703.67-.703-.67z"/> - <path fill="#dedede" d="M266.86 322.8l.703.67-.703-.67z"/> - <path fill="#420000" d="M292.19 322.8l.703.67-.703-.67z"/> - <path fill="#7b1008" d="M295.71 322.8l.704.67-.704-.67z"/> - <path fill="#631808" d="M296.41 322.8l.703.67-.703-.67z"/> - <path fill="#7b1008" d="M297.11 322.8l.704.67-.704-.67z"/> - <path fill="#ad1810" d="M297.82 322.8l.703.67-.703-.67z"/> - <path fill="#941808" d="M298.52 322.8l.703.67-.703-.67z"/> - <path fill="#631808" d="M299.22 322.8v.67h2.11l-2.11-.67z"/> - <path fill="#ad1810" d="M301.33 322.8l.703.67-.703-.67z"/> - <path fill="#520808" d="M313.29 322.8l.703.67-.703-.67z"/> - <path fill="#cecece" d="M314.7 322.8l-1.407 2.008 1.407-2.008z"/> - <path fill="#8c8c8c" d="M315.4 322.8l.703.67-.703-.67z"/> - <path fill="#dedede" d="M191.59 323.47l.703.67-.703-.67z"/> - <path fill="#cecece" d="M193.7 323.47l.704.67-.704-.67z"/> - <path fill="#7b1008" d="M215.51 323.47l.703.67-.703-.67z"/> - <path fill="#dedede" d="M216.21 323.47l.704.67-.704-.67z"/> - <path fill="#8c8c8c" d="M243.65 323.47l.703.67-.703-.67z"/> - <path fill="#184a00" d="M244.35 323.47l.704.67-.704-.67z"/> - <path fill="#314231" d="M250.68 323.47l-.704 1.34.704-1.34z"/> - <path fill="#bdbdbd" d="M257.01 323.47l.704.67-.704-.67z"/> - <path fill="#213918" d="M257.72 323.47l.703.67-.703-.67m6.332 0l.703.67-.703-.67z"/> - <path fill="#bdbdbd" d="M264.75 323.47l.703.67-.703-.67z"/> - <path fill="#5a1008" d="M292.19 323.47l.703.67-.703-.67z"/> - <path fill="#631808" d="M312.59 323.47l.703.67-.703-.67z"/> - <path fill="#424242" d="M313.29 323.47l.703.67-.703-.67z"/> - <path fill="#7b7373" d="M314.7 323.47l-1.407 2.008 1.407-2.008z"/> - <path fill="#9c9494" d="M315.4 323.47l-.703 1.34.703-1.34z"/> - <path fill="#cecece" d="M192.29 324.14l.703.67-.703-.67m2.11 0l.704.67-.704-.67z"/> - <path fill="#b51010" d="M214.8 324.14l-.704 1.34.704-1.34z"/> - <path fill="#63636b" d="M215.51 324.14l.703.67-.703-.67z"/> - <path fill="#bdbdbd" d="M242.24 324.14l.703.67-.703-.67z"/> - <path fill="#294221" d="M242.94 324.14l.703.67-.703-.67z"/> - <path fill="#296300" d="M243.65 324.14l.703.67-.703-.67z"/> - <path fill="#efefef" d="M250.68 324.14l.703.67-.703-.67m7.035 0l.703.67-.703-.67z"/> - <path fill="#425242" d="M258.42 324.14l.704.67-.704-.67z"/> - <path fill="#397b00" d="M259.12 324.14l.703.67-.703-.67z"/> - <path fill="#295200" d="M264.75 324.14l.703.67-.703-.67z"/> - <path fill="#425242" d="M265.46 324.14l.703.67-.703-.67z"/> - <path fill="#bdbdbd" d="M266.16 324.14l.704.67-.704-.67z"/> - <path fill="#8c8c8c" d="M292.19 324.14l.703.67-.703-.67z"/> - <path fill="#ad1810" d="M292.89 324.14l.704.67-.704-.67z"/> - <path fill="#941808" d="M311.89 324.14l-1.407 2.008 1.407-2.008z"/> - <path fill="#424242" d="M312.59 324.14l-1.407 2.008 1.407-2.008z"/> - <path fill="#7b7373" d="M316.11 324.14l.703.67-.703-.67z"/> - <path fill="#dedede" d="M191.59 324.81l.703.67-.703-.67z"/> - <path fill="#cecece" d="M193 324.81l1.407 1.34-1.407-1.34z"/> - <path fill="#7b7373" d="M193.7 324.81l.704.67-.704-.67z"/> - <path fill="#cecece" d="M195.11 324.81l.703.67-.703-.67z"/> - <path fill="#7b7373" d="M195.81 324.81l1.407 1.34-1.407-1.34z"/> - <path fill="#5a3131" d="M214.8 324.81l.703.67-.703-.67z"/> - <path fill="#bdbdbd" d="M240.83 324.81l.703.67-.703-.67z"/> - <path fill="#425242" d="M241.54 324.81l.704.67-.704-.67z"/> - <path fill="#296300" d="M242.24 324.81l.703.67-.703-.67z"/> - <path fill="#185200" d="M248.57 324.81l.703.67-.703-.67z"/> - <path fill="#7b7373" d="M249.28 324.81l.703.67-.703-.67z"/> - <path fill="#8c8c8c" d="M259.12 324.81l.703.67-.703-.67z"/> - <path fill="#295200" d="M259.83 324.81l.704.67-.704-.67m6.33 0l.705.67-.704-.67z"/> - <path fill="#63636b" d="M266.86 324.81l.703.67-.703-.67z"/> - <path fill="#dedede" d="M267.57 324.81l.703.67-.703-.67z"/> - <path fill="#63636b" d="M292.89 324.81l.704.67-.704-.67z"/> - <path fill="#941808" d="M293.6 324.81l.703.67-.703-.67z"/> - <path fill="#dedede" d="M312.59 324.81l.703.67-.703-.67z"/> - <path fill="#a59494" d="M314 324.81l.704.67-.704-.67z"/> - <path fill="#63636b" d="M315.4 324.81l.703.67-.703-.67z"/> - <path fill="#dedede" d="M316.11 324.81l-.703 2.008.703-2.008z"/> - <path fill="#bdbdbd" d="M192.29 325.48l.703.67-.703-.67z"/> - <path fill="#7b7373" d="M194.4 325.48l.703.67-.703-.67z"/> - <path fill="#ada5a5" d="M195.11 325.48l4.925 4.016-4.925-4.016z"/> - <path fill="#9c9494" d="M195.81 325.48l.703.67-.703-.67z"/> - <path fill="#7b1008" d="M197.22 325.48l.703.67-.703-.67z"/> - <path fill="#941808" d="M203.55 325.48l.703.67-.703-.67z"/> - <path fill="#631808" d="M204.25 325.48l.703.67-.703-.67z"/> - <path fill="#8c3939" d="M204.96 325.48l.704.67-.704-.67z"/> - <path fill="#843129" d="M209.88 325.48l.703.67-.703-.67z"/> - <path fill="#6b5252" d="M213.4 325.48l.704.67-.704-.67z"/> - <path fill="#9c9494" d="M214.1 325.48l.704.67-.704-.67m26.03 0l.702.67-.703-.67z"/> - <path fill="#184a00" d="M240.83 325.48l.703.67-.703-.67z"/> - <path fill="#297b00" d="M247.17 325.48l.704.67-.704-.67z"/> - <path fill="#294221" d="M247.87 325.48l.703.67-.703-.67z"/> - <path fill="#bdbdbd" d="M248.57 325.48l.703.67-.703-.67z"/> - <path fill="#ada5a5" d="M259.83 325.48l.704.67-.704-.67z"/> - <path fill="#213918" d="M260.53 325.48l.704.67-.704-.67z"/> - <path fill="#103900" d="M267.57 325.48l.703.67-.703-.67z"/> - <path fill="#9c9494" d="M268.27 325.48l.703.67-.703-.67z"/> - <path fill="#ada5a5" d="M293.6 325.48l.703.67-.703-.67z"/> - <path fill="#736b6b" d="M294.3 325.48l.704.67-.704-.67z"/> - <path fill="#5a1008" d="M295 325.48l.703.67-.703-.67z"/> - <path fill="#842118" d="M297.82 325.48l.703.67-.703-.67z"/> - <path fill="#8c4a4a" d="M298.52 325.48l.703.67-.703-.67zm4.22 0l.704.67-.704-.67z"/> - <path fill="#631808" d="M303.45 325.48l.703.67-.703-.67z"/> - <path fill="#941808" d="M304.15 325.48l.703.67-.703-.67z"/> - <path fill="#ce2110" d="M304.85 325.48l.703.67-.703-.67z"/> - <path fill="#cecece" d="M311.89 325.48l-2.11 2.678 2.11-2.678z"/> - <path fill="#8c8c8c" d="M312.59 325.48l-3.518 4.686 3.518-4.686z"/> - <path fill="#ada5a5" d="M313.76 325.7l.47.224-.47-.224z"/> - <path fill="#dedede" d="M192.29 326.15l.703.67-.703-.67z"/> - <path fill="#cecece" d="M193 326.15l1.407 2.008L193 326.15z"/> - <path fill="#efefef" d="M194.4 326.15l.703.67-.703-.67z"/> - <path fill="#9c9494" d="M196.51 326.15l.704.67-.704-.67z"/> - <path fill="#52525a" d="M197.22 326.15l.703.67-.703-.67z"/> - <path fill="#941808" d="M197.92 326.15l.703.67-.703-.67z"/> - <path fill="#bd2110" d="M201.44 326.15l.703.67-.703-.67z"/> - <path fill="#5a1008" d="M202.14 326.15l.704.67-.704-.67z"/> - <path fill="#736b6b" d="M202.85 326.15l.703.67-.703-.67z"/> - <path fill="#bdbdbd" d="M203.55 326.15l.703.67-.703-.67z"/> - <path fill="#efefef" d="M240.13 326.15l.703.67-.703-.67z"/> - <path fill="#314231" d="M240.83 326.15l.703.67-.703-.67z"/> - <path fill="#297b00" d="M241.54 326.15l1.407 1.34-1.407-1.34z"/> - <path fill="#185200" d="M246.46 326.15l.703.67-.703-.67z"/> - <path fill="#7b7373" d="M247.17 326.15l.704.67-.704-.67z"/> - <path fill="#efefef" d="M247.87 326.15l.703.67-.703-.67m12.663 0l.704.67-.704-.67z"/> - <path fill="#7b7373" d="M261.24 326.15l.703.67-.703-.67z"/> - <path fill="#294200" d="M261.94 326.15l.703.67-.703-.67z"/> - <path fill="#397b00" d="M266.86 326.15l-.704 1.34.704-1.34z"/> - <path fill="#52525a" d="M267.57 326.15l.703.67-.703-.67z"/> - <path fill="#efefef" d="M268.27 326.15l.703.67-.703-.67z"/> - <path fill="#cecece" d="M304.15 326.15l.703.67-.703-.67z"/> - <path fill="#7b7373" d="M304.85 326.15l.703.67-.703-.67z"/> - <path fill="#631818" d="M305.56 326.15l.704.67-.704-.67z"/> - <path fill="#b51010" d="M306.26 326.15l.703.67-.703-.67m3.518 0l-.704 1.34.703-1.34z"/> - <path fill="#292921" d="M310.48 326.15l.703.67-.703-.67z"/> - <path fill="#cecece" d="M313.29 326.15l.703.67-.703-.67m1.407 0l-2.11 2.678 2.11-2.678z"/> - <path fill="#bdbdbd" d="M193.7 326.82l.704.67-.704-.67z"/> - <path fill="#dedede" d="M195.11 326.82l.703.67-.703-.67z"/> - <path fill="#424242" d="M197.92 326.82l.703.67-.703-.67z"/> - <path fill="#ad1810" d="M198.62 326.82l.703.67-.703-.67m2.11 0l.704.67-.704-.67z"/> - <path fill="#63636b" d="M201.44 326.82l.703.67-.703-.67z"/> - <path fill="#efefef" d="M202.14 326.82l.704.67-.704-.67z"/> - <path fill="#63636b" d="M241.54 326.82l.704.67-.704-.67z"/> - <path fill="#296300" d="M245.06 326.82l.703.67-.703-.67z"/> - <path fill="#425242" d="M245.76 326.82l.703.67-.703-.67z"/> - <path fill="#bdbdbd" d="M246.46 326.82l.703.67-.703-.67z"/> - <path fill="#dedede" d="M261.94 326.82l.703.67-.703-.67z"/> - <path fill="#425242" d="M262.64 326.82l.703.67-.703-.67z"/> - <path fill="#295200" d="M263.35 326.82l.704.67-.704-.67z"/> - <path fill="#63636b" d="M266.86 326.82l.703.67-.703-.67z"/> - <path fill="#8c8c8c" d="M306.26 326.82l.703.67-.703-.67z"/> - <path fill="#941808" d="M306.96 326.82l.703.67-.703-.67z"/> - <path fill="#292921" d="M309.78 326.82l.703.67-.703-.67z"/> - <path fill="#cecece" d="M312.59 326.82l.703.67-.703-.67z"/> - <path fill="#ada5a5" d="M314.7 326.82l-1.407 2.008 1.407-2.008z"/> - <path fill="#cecece" d="M195.81 327.49l2.814 2.678-2.814-2.678z"/> - <path fill="#7b7373" d="M196.51 327.49l.704.67-.704-.67z"/> - <path fill="#292921" d="M198.62 327.49l.703.67-.703-.67z"/> - <path fill="#b51010" d="M199.33 327.49l.704.67-.704-.67z"/> - <path fill="#941808" d="M200.03 327.49l.703.67-.703-.67z"/> - <path fill="#8c8c8c" d="M200.73 327.49l.703.67-.703-.67m41.506 0l.703.67-.704-.67z"/> - <path fill="#185200" d="M242.94 327.49l.703.67-.703-.67z"/> - <path fill="#296300" d="M243.65 327.49l.703.67-.703-.67z"/> - <path fill="#395231" d="M244.35 327.49l.704.67-.704-.67z"/> - <path fill="#bdbdbd" d="M245.06 327.49l.703.67-.703-.67m18.29 0l.705.67-.704-.67z"/> - <path fill="#5a5231" d="M264.05 327.49l.703.67-.703-.67z"/> - <path fill="#397b00" d="M264.75 327.49l.703.67-.703-.67z"/> - <path fill="#295200" d="M265.46 327.49l.703.67-.703-.67z"/> - <path fill="#9c9494" d="M266.16 327.49l.704.67-.704-.67m40.803 0l.703.67-.703-.67z"/> - <path fill="#5a1008" d="M307.67 327.49l.703.67-.703-.67z"/> - <path fill="#ce2110" d="M308.37 327.49l.704.67-.704-.67z"/> - <path fill="#391810" d="M309.07 327.49l.703.67-.703-.67z"/> - <path fill="#cecece" d="M311.89 327.49l.703.67-.703-.67z"/> - <path fill="#7b7373" d="M197.22 328.16l.703.67-.703-.67z"/> - <path fill="#313931" d="M199.33 328.16l.704.67-.704-.67z"/> - <path fill="#9c9494" d="M200.03 328.16l.703.67-.703-.67z"/> - <path fill="#ada5a5" d="M242.94 328.16l.703.67-.703-.67z"/> - <path fill="#9c9494" d="M243.65 328.16l.703.67-.703-.67m21.105 0l.703.67-.703-.67z"/> - <path fill="#ada5a5" d="M265.46 328.16l.703.67-.703-.67z"/> - <path fill="#cecece" d="M307.67 328.16l1.407 1.34-1.407-1.34z"/> - <path fill="#292921" d="M308.37 328.16l.704.67-.704-.67z"/> - <path fill="#bdbdbd" d="M309.07 328.16l.703.67-.703-.67m2.11 0l.704.67-.704-.67z"/> - <path fill="#8c8c8c" d="M195.11 328.83l.703.67-.703-.67z"/> - <path fill="#cecece" d="M195.81 328.83l2.814 2.678-2.814-2.678z"/> - <path fill="#7b7373" d="M197.92 328.83l.703.67-.703-.67z"/> - <path fill="#bdbdbd" d="M310.48 328.83l.703.67-.703-.67z"/> - <path fill="#dedede" d="M311.89 328.83l-.704 1.34.704-1.34z"/> - <path fill="#7b7373" d="M312.59 328.83l-.703 1.34.703-1.34m-116.78.67l.703.67-.703-.67z"/> - <path fill="#8c8c8c" d="M198.62 329.49l.703.67-.703-.67z"/> - <path fill="#bdbdbd" d="M309.78 329.49l.703.67-.703-.67z"/> - <path fill="#8c8c8c" d="M196.51 330.16l1.407 1.34-1.407-1.34z"/> - <path fill="#efefef" d="M198.62 330.16l.703.67-.703-.67z"/> - <path fill="#dedede" d="M310.48 330.16l.703.67-.703-.67m-113.97.67l1.407 1.338-1.407-1.34z"/> - <path fill="#efefef" d="M309.78 330.83l.703.67-.703-.67z"/> - <path fill="#dedede" d="M311.18 330.83l-.703 1.34.703-1.34z"/> - <path opacity=".99" d="M230.89 207.51l1.132-.302a.824.824 0 0 0 .362.452c.164.092.38.122.65.09.298-.034.515-.112.652-.233a.344.344 0 0 0 .114-.31.285.285 0 0 0-.11-.196c-.063-.045-.197-.078-.402-.1-.952-.086-1.563-.195-1.832-.327-.372-.184-.584-.474-.635-.87-.045-.36.065-.677.33-.956.267-.28.713-.454 1.337-.527.595-.07 1.05-.028 1.36.123.314.15.548.4.704.748l-1.06.318a.64.64 0 0 0-.313-.34c-.14-.07-.328-.092-.568-.064-.304.036-.516.1-.636.197-.08.068-.115.147-.103.238.01.078.058.14.14.185.114.06.485.122 1.113.183.63.06 1.08.174 1.347.337.265.167.42.424.464.772.05.38-.076.724-.373 1.036-.297.312-.772.505-1.424.58-.592.07-1.076.01-1.452-.178a1.63 1.63 0 0 1-.794-.852zm-5.1-.368a2.14 2.14 0 0 1 .146-1.087c.145-.362.377-.653.698-.872.323-.22.698-.353 1.123-.403.658-.076 1.223.065 1.695.424.472.356.748.844.828 1.464.08.626-.066 1.17-.44 1.632-.37.46-.876.726-1.52.8-.398.047-.79.005-1.174-.124a1.869 1.869 0 0 1-.92-.656c-.23-.31-.376-.703-.437-1.178zm1.185-.078c.053.41.195.712.428.907.232.195.5.275.8.24a.976.976 0 0 0 .71-.415c.176-.242.238-.57.185-.985-.052-.405-.195-.705-.427-.9a1.006 1.006 0 0 0-.794-.24.996.996 0 0 0-.715.416c-.176.242-.238.568-.185.978zm-3.578-2.25l-.13-1.014 1.15-.133.13 1.012-1.15.133zm.603 4.694l-.53-4.135 1.15-.133.53 4.134-1.15.134zm-6.78-5.005l2.213-.257c.5-.058.885-.066 1.156-.024.364.058.687.198.97.42.284.223.514.51.692.86.178.35.3.79.37 1.325.06.47.05.882-.028 1.236a2.482 2.482 0 0 1-.513 1.083c-.185.22-.45.404-.792.555-.257.112-.61.194-1.057.246l-2.278.265-.732-5.707zm1.335.825l.485 3.78.904-.105c.338-.04.58-.086.726-.14.19-.07.342-.167.456-.294.117-.127.2-.323.25-.587.047-.266.044-.62-.013-1.06-.056-.442-.14-.776-.253-1.003a1.323 1.323 0 0 0-.414-.513 1.21 1.21 0 0 0-.595-.204c-.173-.016-.507.004-1 .06l-.545.065z" fill="#ecca5e"/> - <path fill-rule="evenodd" fill="#ecca5e" d="M233.383 223.395l17.104 21.387-.83.96-17.103-21.387zm44.017-1.627l-19.112 25.276-1.465-.506 19.113-25.276zm-48.427 5.858l20.24 18.744-.67 1.065-20.24-18.744zm-4.687 4.334l22.225 16.585-.547 1.128-22.225-16.585zm55.989-3.244l-20.037 18.942-1.108-.656 20.036-18.943zm4.435 3.51l-22.435 16.328-1.01-.787L283.7 231.44z"/> - <path d="M271.26 229.62l4.638-5.894-.563-.4-4.075 6.294z" fill-opacity=".564" fill="#7b5a00"/> - <path d="M260.75 243.52l4.638-5.894-.563-.4-4.075 6.294z" fill-opacity=".475" fill="#7b5a00"/> - <path d="M266 236.85l4.638-5.894-.563-.4L266 236.85z" fill-opacity=".68" fill="#7b5a00"/> - <path d="M276.83 237.56l6.493-4.007-.383-.56-6.11 4.567z" fill-opacity=".525" fill="#7b5a00"/> - <path d="M268.33 239.95l5.77-4.907-.47-.5-5.3 5.407z" fill-opacity=".398" fill="#7b5a00"/> - <path fill="#428c00" d="M213.63 288.63h-.703c-.13-3.835-1.626-6.29-5.628-7.363.097 2.042 1.564 10.015 4.923 7.363h.703l-1.407 6.024c2.1-2.215 10.777-10.023 7.017-13.46-3.22-2.943-4.87 5.967-4.907 7.436zm-5.38-47.91h-.704c-.13-3.835-1.625-6.29-5.627-7.363.097 2.042 1.564 10.015 4.923 7.363h.703l-1.407 6.024c2.1-2.215 10.777-10.023 7.017-13.46-3.22-2.943-4.87 5.967-4.907 7.436z"/> - <path opacity=".99" d="M299.51 210.84l-1.068-.118.074-.608c-.206.216-.438.37-.695.46a1.686 1.686 0 0 1-.75.09c-.5-.055-.904-.293-1.215-.715-.307-.424-.42-.98-.336-1.665.085-.7.324-1.214.715-1.54.39-.327.852-.462 1.38-.403.487.054.884.293 1.192.716l.252-2.057 1.15.13-.7 5.71zm-2.806-2.498c-.054.44-.03.768.075.98a.87.87 0 0 0 .724.514.876.876 0 0 0 .715-.245c.21-.194.343-.504.395-.93.058-.475.01-.827-.145-1.055a.866.866 0 0 0-.653-.392.9.9 0 0 0-.726.236c-.207.183-.336.48-.386.89zm-4.633-1.24l-1.02-.295c.165-.387.403-.66.713-.822s.747-.21 1.313-.146c.513.056.888.156 1.125.3.238.143.396.31.475.5.082.188.094.52.036.995l-.167 1.276c-.045.365-.06.636-.046.814.017.175.064.368.14.576l-1.137-.126a4.66 4.66 0 0 1-.072-.336c-.01-.067-.02-.11-.025-.133-.218.16-.445.273-.68.34-.235.066-.48.085-.734.057-.448-.05-.787-.205-1.018-.465-.23-.26-.32-.566-.278-.92.03-.233.113-.434.253-.603.14-.17.32-.293.542-.366.224-.075.54-.127.948-.156.55-.036.933-.084 1.15-.145l.014-.11c.026-.21-.01-.364-.108-.465-.1-.103-.3-.17-.602-.205-.205-.022-.37 0-.494.064-.123.064-.233.187-.327.372zm1.43 1.058c-.152.03-.392.06-.72.09-.327.03-.543.07-.65.122-.16.084-.253.205-.272.36a.518.518 0 0 0 .132.418.641.641 0 0 0 .438.218c.207.023.413-.02.618-.13a.717.717 0 0 0 .32-.33c.04-.09.076-.267.11-.53l.025-.218zm-2.933-2.505l-.107.873-.786-.087-.204 1.668c-.04.338-.06.536-.052.595.01.056.038.105.086.148.05.043.113.068.19.077.106.01.264-.006.475-.054l-.007.86c-.28.08-.59.1-.93.063a1.514 1.514 0 0 1-.548-.16.84.84 0 0 1-.337-.297 1.019 1.019 0 0 1-.108-.448c-.008-.13.01-.388.058-.775l.22-1.804-.527-.06.107-.87.528.057.1-.822 1.234-.51-.18 1.46.786.087zm-4.662 3.677l-1.15-.127.505-4.138 1.07.12-.073.587c.217-.258.403-.423.558-.495.16-.073.33-.1.516-.078.263.03.508.126.733.29l-.472.916c-.18-.14-.352-.22-.518-.24a.665.665 0 0 0-.425.084c-.122.07-.23.213-.322.426-.09.214-.178.673-.264 1.377l-.155 1.277zm-3.086-1.676l1.123.31a1.844 1.844 0 0 1-.812.838c-.34.173-.75.232-1.23.18-.755-.084-1.286-.38-1.59-.892-.242-.408-.327-.9-.257-1.473.084-.687.34-1.202.763-1.548.424-.348.924-.49 1.5-.426.647.072 1.132.332 1.456.782.325.446.427 1.088.31 1.925l-2.884-.32c-.032.326.03.59.185.79.156.2.366.314.63.344.18.02.338-.01.473-.09.133-.08.245-.22.333-.42zm.2-1.1c.03-.317-.026-.567-.17-.75a.804.804 0 0 0-.567-.314.83.83 0 0 0-.654.192c-.187.155-.296.383-.33.682l1.72.19zm-8.052 1.564l.7-5.71 1.15.127-.25 2.057c.4-.346.844-.49 1.33-.437.53.058.945.29 1.247.695.302.402.41.944.328 1.627-.087.706-.33 1.23-.732 1.573a1.713 1.713 0 0 1-2.07.173 1.76 1.76 0 0 1-.56-.595l-.073.61-1.068-.12zm1.407-2.03c-.052.427-.02.752.097.973.163.313.41.488.74.524a.839.839 0 0 0 .685-.236c.206-.187.336-.503.39-.947.058-.472.01-.823-.145-1.05a.868.868 0 0 0-.654-.393.899.899 0 0 0-.725.232c-.208.182-.337.48-.388.897zm-3.112-2.92l.124-1.014 1.15.128-.123 1.013-1.15-.128zm-.575 4.698l.506-4.138 1.15.128-.506 4.137-1.15-.127zm-5.08-.563l.692-5.665 1.212.134-.576 4.703 3.014.334-.118.963-4.225-.468z" fill="#ecca5e"/> - <path fill="#428c00" d="M201.08 254.06h-.704c-.13-3.835-1.625-6.29-5.627-7.363.097 2.042 1.564 10.015 4.923 7.363h.703l-1.407 6.024c2.1-2.215 10.777-10.023 7.017-13.46-3.22-2.943-4.87 5.967-4.907 7.436z"/> - <path d="M225.94 232.795c0 .514-.583.93-1.303.93s-1.303-.416-1.303-.93c0-.513.583-.93 1.303-.93s1.304.417 1.304.93zm4.4-4.66c0 .514-.583.93-1.303.93s-1.303-.416-1.303-.93c0-.513.583-.93 1.303-.93s1.304.417 1.304.93zm4.07-4.34c0 .514-.583.93-1.303.93s-1.303-.416-1.303-.93c0-.513.583-.93 1.303-.93s1.304.417 1.304.93zm43.34-1.7c0 .514-.583.93-1.303.93s-1.303-.416-1.303-.93c0-.513.583-.93 1.303-.93s1.304.417 1.304.93zm3.09 6.04c0 .514-.583.93-1.303.93s-1.303-.416-1.303-.93c0-.513.583-.93 1.303-.93s1.304.417 1.304.93zm4.57 3.88c0 .514-.583.93-1.303.93s-1.303-.416-1.303-.93c0-.513.583-.93 1.303-.93s1.304.417 1.304.93z" fill-rule="evenodd" fill="#fac349"/> - <path opacity=".99" d="M262.6 199.3l-1.05-.19c.122-.402.33-.698.62-.89.29-.19.72-.282 1.288-.277.517.004.9.067 1.152.187.252.117.428.267.528.448.103.18.152.507.147.986l-.026 1.286c-.005.366.01.637.045.812.036.173.105.36.204.56l-1.147-.01a4.019 4.019 0 0 1-.108-.327 1.45 1.45 0 0 0-.04-.13c-.2.18-.412.316-.638.406-.226.09-.467.134-.723.132-.45-.004-.805-.124-1.064-.36a1.13 1.13 0 0 1-.378-.885 1.125 1.125 0 0 1 .683-1.044c.214-.098.523-.18.925-.25.542-.092.918-.18 1.128-.26v-.11c.004-.213-.05-.363-.16-.453-.11-.094-.316-.142-.62-.144-.206 0-.368.036-.484.113-.116.074-.21.207-.284.4zm1.54.908c-.148.046-.384.1-.706.163-.322.063-.533.125-.633.187-.15.1-.228.23-.23.386 0 .155.058.288.178.402a.66.66 0 0 0 .46.173c.21 0 .41-.062.6-.19.14-.1.234-.22.28-.363.03-.094.048-.273.05-.537l.003-.22zm-4.733-2.773l.01-1.02 1.16.012-.01 1.02-1.16-.012zm-.047 4.73l.04-4.165 1.16.01-.042 4.167-1.158-.012zm-2.177-.02l-1.158-.01.042-4.166 1.076.01-.006.59c.187-.277.353-.46.5-.547a.976.976 0 0 1 .504-.13c.265.004.518.075.76.216l-.367.956c-.194-.122-.375-.183-.542-.185-.162 0-.3.042-.413.127-.113.083-.204.235-.272.456-.066.222-.102.687-.11 1.396l-.012 1.285zm-1.87-4.182l-.008.878-.792-.006-.017 1.68c-.003.34 0 .538.015.595.017.054.05.1.103.138.054.037.12.056.197.056.107 0 .263-.033.467-.1l.09.855c-.27.106-.576.158-.917.155-.208 0-.396-.036-.563-.103a.878.878 0 0 1-.37-.262 1.049 1.049 0 0 1-.155-.433c-.023-.13-.033-.388-.03-.777l.02-1.816-.533-.004.007-.88.532.005.007-.827 1.17-.633-.016 1.47.793.008zm-5.85 1.217l-1.05-.19c.123-.4.33-.697.62-.888.29-.19.72-.284 1.29-.28.516.005.9.068 1.15.188.253.118.43.267.53.448.1.18.15.508.145.986l-.025 1.286c-.004.367.01.637.046.813.035.173.103.36.203.56l-1.146-.01a4.209 4.209 0 0 1-.108-.328l-.04-.13c-.2.182-.413.317-.64.406-.226.09-.467.134-.722.132-.45-.004-.806-.124-1.065-.36a1.134 1.134 0 0 1-.378-.885c.003-.235.063-.444.183-.626.12-.183.287-.323.5-.418.215-.097.523-.18.925-.25.543-.092.92-.18 1.128-.26l.002-.11c.003-.212-.05-.363-.16-.453-.11-.093-.316-.14-.62-.144-.207 0-.368.036-.485.113-.116.074-.21.208-.284.4zm1.54.91c-.148.044-.383.1-.705.16-.323.063-.533.126-.633.187-.152.1-.23.23-.23.387a.52.52 0 0 0 .177.4c.12.115.273.173.46.174.21 0 .408-.06.6-.19.14-.1.234-.22.28-.363.03-.094.047-.272.05-.537l.003-.22zm-8.057 1.926l.058-5.75 1.958.018c.742.007 1.225.04 1.45.1.345.09.633.28.864.572.23.29.344.664.34 1.12-.005.354-.075.65-.212.89s-.31.427-.52.564c-.208.134-.42.222-.634.265-.292.052-.714.075-1.266.07l-.796-.007-.02 2.17-1.222-.012zm1.27-4.766l-.018 1.632.668.006c.48.004.802-.023.965-.082s.29-.15.383-.28a.734.734 0 0 0 .145-.445.709.709 0 0 0-.19-.518.852.852 0 0 0-.487-.26c-.144-.027-.436-.043-.876-.047l-.59-.006zm2.404 110.66l-.8-.02c.04-.312.155-.555.346-.73.19-.174.497-.292.92-.353.382-.055.674-.052.876.007.2.06.35.15.446.272.1.12.176.36.233.714l.144.954c.044.272.09.47.136.597.05.125.123.255.222.39l-.85.124c-.03-.05-.07-.128-.12-.23-.023-.046-.038-.076-.047-.09-.125.156-.265.28-.422.373-.156.09-.33.152-.518.18-.334.047-.612 0-.833-.146a.859.859 0 0 1-.392-.61.849.849 0 0 1 .057-.485.821.821 0 0 1 .317-.368c.147-.096.365-.193.654-.29.39-.13.657-.238.802-.322l-.013-.08c-.025-.16-.083-.264-.175-.318-.092-.056-.252-.068-.478-.036a.644.644 0 0 0-.344.14.596.596 0 0 0-.16.33zm1.255.497c-.104.05-.272.118-.503.2-.23.083-.38.154-.444.21-.1.092-.14.196-.123.313.02.114.08.206.182.277.103.07.224.095.363.075a.765.765 0 0 0 .42-.21.495.495 0 0 0 .16-.3c.012-.072.002-.206-.03-.402l-.025-.163zm-2.552-.34l-.824.27a.596.596 0 0 0-.255-.337.612.612 0 0 0-.41-.065.652.652 0 0 0-.48.287c-.104.157-.13.4-.077.73.058.367.164.617.317.75.154.132.34.182.558.15a.59.59 0 0 0 .38-.19c.09-.102.14-.265.147-.487l.865.015c-.028.38-.152.683-.37.907-.22.224-.537.367-.955.427-.475.07-.877-.02-1.205-.263-.327-.243-.53-.617-.61-1.122-.083-.51-.004-.927.234-1.25.237-.327.597-.524 1.08-.594.395-.057.722-.02.98.108.26.127.468.35.622.666zm-4.783-.67l-.12-.757.86-.124.12.756-.86.124zm.56 3.507l-.493-3.09.86-.123.492 3.09-.86.124zm-1.74.25l-.68-4.262.86-.124.68 4.263-.86.125zm-3.86.56l-.68-4.264.86-.124.244 1.535c.22-.324.51-.513.873-.565.395-.057.744.032 1.047.268.302.234.494.606.575 1.116.083.526.016.95-.204 1.275a1.28 1.28 0 0 1-1.462.516 1.37 1.37 0 0 1-.528-.325l.073.453-.8.115zm.597-1.736c.05.32.14.55.272.688a.705.705 0 0 0 .644.24.614.614 0 0 0 .446-.3c.11-.175.138-.428.085-.76-.056-.352-.164-.596-.323-.732a.66.66 0 0 0-.554-.16.648.648 0 0 0-.477.303c-.112.17-.143.412-.093.72zm-2.246 1.974l-.073-.463a1.23 1.23 0 0 1-.406.457c-.175.123-.37.2-.584.23-.218.032-.42.015-.61-.052a.851.851 0 0 1-.436-.33c-.104-.153-.18-.375-.225-.666l-.312-1.955.86-.125.225 1.42c.07.434.127.7.174.793a.48.48 0 0 0 .21.208.578.578 0 0 0 .332.04.734.734 0 0 0 .377-.17.59.59 0 0 0 .193-.32c.025-.122 0-.403-.07-.845l-.207-1.303.86-.124.492 3.088-.797.116zm-6.477-2.224l.8-.115.073.454c.08-.17.2-.317.362-.44.16-.122.35-.2.566-.23.377-.055.72.04 1.027.283.31.243.503.615.583 1.117.083.516.014.937-.205 1.262-.22.322-.517.51-.894.566a1.2 1.2 0 0 1-.506-.03 1.788 1.788 0 0 1-.514-.284l.25 1.556-.86.124-.68-4.264zm1.088 1.37c.056.347.17.593.34.74a.7.7 0 0 0 .57.17.63.63 0 0 0 .46-.3c.11-.172.135-.43.08-.778-.052-.324-.158-.555-.32-.692a.667.667 0 0 0-.545-.162.664.664 0 0 0-.485.308c-.115.173-.147.41-.1.713zm-2.328.964l.878.013c-.063.314-.2.568-.414.76-.212.188-.496.31-.852.36-.565.082-1.01-.034-1.337-.345-.26-.25-.423-.59-.49-1.018-.083-.512-.007-.933.23-1.262.233-.332.566-.528.996-.59.483-.07.888.027 1.216.29.326.263.534.708.622 1.336l-2.152.31c.045.243.144.42.298.538.154.115.33.158.527.13a.536.536 0 0 0 .323-.155.645.645 0 0 0 .154-.368zm-.083-.833c-.045-.237-.138-.407-.28-.51a.611.611 0 0 0-.475-.123.61.61 0 0 0-.434.262c-.1.147-.132.332-.095.555l1.284-.186zm-6.152 2.74l-.68-4.264 1.903-.276c.48-.07.834-.08 1.062-.035.23.045.426.156.588.333.162.177.262.39.303.643.05.32-.006.6-.17.838-.165.236-.44.41-.824.52.212.08.392.177.54.288.15.112.357.317.626.618l.68.753-1.082.156-.802-.833c-.285-.298-.477-.484-.577-.557a.722.722 0 0 0-.3-.138 1.62 1.62 0 0 0-.463.017l-.183.026.283 1.78-.905.13zm.512-2.592l.67-.097c.433-.062.7-.118.804-.17a.482.482 0 0 0 .225-.216.55.55 0 0 0 .04-.333.511.511 0 0 0-.178-.328.578.578 0 0 0-.366-.12c-.075.002-.296.03-.663.082l-.706.102.173 1.08zm67.049.453l-.76-.24c.13-.286.315-.487.55-.602.236-.115.565-.145.987-.088.384.05.663.133.838.245.175.11.29.238.347.382.058.143.06.392.008.747l-.15.954c-.04.272-.056.474-.05.61.01.13.042.275.096.433l-.85-.112c-.016-.058-.03-.142-.05-.253-.006-.05-.01-.085-.015-.1a1.568 1.568 0 0 1-.515.242c-.178.046-.36.056-.55.03-.336-.044-.587-.165-.756-.364a.845.845 0 0 1-.192-.694.851.851 0 0 1 .614-.715 2.97 2.97 0 0 1 .714-.1c.413-.02.7-.05.866-.09l.012-.082c.023-.157 0-.274-.073-.35-.07-.08-.22-.135-.447-.165a.641.641 0 0 0-.37.04c-.094.045-.178.135-.253.272zm1.054.818c-.115.02-.296.038-.543.055-.244.017-.408.044-.488.08-.123.06-.194.15-.21.266a.385.385 0 0 0 .09.314.474.474 0 0 0 .325.17.775.775 0 0 0 .465-.085.528.528 0 0 0 .245-.245 1.55 1.55 0 0 0 .093-.394l.024-.162zm-2.886 1.13l-.86-.115.232-1.58c.05-.333.063-.55.04-.653a.441.441 0 0 0-.146-.254.52.52 0 0 0-.285-.122c-.15-.02-.29 0-.42.064a.603.603 0 0 0-.29.276c-.06.122-.118.356-.17.702l-.205 1.4-.86-.113.455-3.094.8.105-.068.454c.335-.312.718-.44 1.15-.382.19.025.358.082.505.17a.83.83 0 0 1 .32.294.876.876 0 0 1 .117.366c.014.132.003.318-.033.557l-.282 1.923zm-5.485-2.924l-.76-.24c.13-.286.315-.487.55-.602.236-.115.565-.145.987-.088.384.05.663.133.838.245.175.11.29.237.347.38.058.144.06.393.008.748l-.15.954c-.04.272-.057.475-.05.61.01.13.042.275.096.433l-.853-.113a3.203 3.203 0 0 1-.047-.253 1.036 1.036 0 0 0-.016-.1c-.167.115-.34.196-.516.24a1.409 1.409 0 0 1-.55.032c-.336-.045-.587-.166-.756-.365a.84.84 0 0 1-.19-.694.859.859 0 0 1 .613-.714c.17-.054.408-.087.714-.102.41-.018.7-.048.865-.09l.012-.08c.023-.158 0-.275-.073-.352-.07-.08-.22-.134-.447-.164a.648.648 0 0 0-.372.04c-.094.045-.177.136-.25.273zm1.054.818c-.116.02-.297.038-.543.055-.245.017-.41.044-.49.08-.122.06-.193.15-.21.266a.395.395 0 0 0 .09.315.48.48 0 0 0 .325.17.775.775 0 0 0 .465-.085.53.53 0 0 0 .245-.243c.033-.068.063-.2.092-.395l.024-.163zm-2.344-1.02l-.87.032a.561.561 0 0 0-.143-.39.596.596 0 0 0-.373-.175.676.676 0 0 0-.546.143c-.146.123-.244.35-.293.68-.054.367-.028.635.08.804.107.17.27.268.49.297a.612.612 0 0 0 .42-.078c.116-.075.212-.218.287-.428l.825.25c-.144.357-.353.614-.63.77-.276.154-.624.203-1.042.148-.476-.064-.834-.257-1.076-.58-.24-.323-.322-.738-.248-1.242.075-.51.275-.89.6-1.135.327-.25.732-.34 1.215-.276.395.053.698.176.907.37.21.193.342.462.396.808zm-4.38-1.945l.11-.757.86.114-.11.758-.86-.115zm-.52 3.514l.457-3.093.86.115-.455 3.093-.86-.114zm-.872-.116l-.86-.115.234-1.58c.05-.334.063-.552.04-.654a.44.44 0 0 0-.147-.254.508.508 0 0 0-.284-.12c-.15-.02-.29 0-.42.062s-.225.154-.29.276c-.06.123-.117.356-.168.702l-.207 1.402-.86-.115.456-3.095.8.107-.068.454c.335-.31.718-.44 1.15-.38.19.024.357.08.505.167a.847.847 0 0 1 .32.295.866.866 0 0 1 .117.367 2.37 2.37 0 0 1-.032.556l-.284 1.924zm-4.18-4.14l.112-.758.86.115-.112.76-.86-.116zm-.518 3.513l.456-3.093.86.114-.455 3.094-.86-.115zm-5.184-3.846l.793.107-.06.422c.33-.29.693-.41 1.085-.358.21.028.383.093.524.195.14.102.248.242.32.42.168-.146.34-.25.518-.308.177-.06.36-.078.548-.053.24.032.434.106.585.22a.846.846 0 0 1 .312.455c.04.14.038.358-.006.653l-.29 1.978-.862-.115.26-1.768c.046-.307.046-.51 0-.606-.062-.127-.176-.202-.342-.224a.615.615 0 0 0-.63.337c-.067.128-.122.338-.165.63l-.22 1.485-.86-.115.25-1.696c.045-.3.058-.496.04-.587a.358.358 0 0 0-.114-.214.439.439 0 0 0-.25-.1.658.658 0 0 0-.374.054.574.574 0 0 0-.274.264c-.064.122-.118.33-.16.628l-.223 1.504-.86-.115.455-3.094zm-4.186.975c.04-.27.15-.525.328-.76.178-.236.406-.404.682-.503.28-.1.578-.13.897-.086.49.065.872.272 1.14.618.27.345.37.75.303 1.214-.07.468-.286.835-.65 1.102-.36.264-.783.364-1.264.3-.3-.04-.575-.14-.827-.306-.25-.164-.43-.38-.533-.644-.104-.268-.13-.58-.078-.935zm.876.162c-.045.307-.003.552.125.736.13.183.306.29.53.32a.753.753 0 0 0 .6-.17c.177-.142.288-.37.334-.68.045-.303.003-.546-.126-.73a.73.73 0 0 0-.527-.32.761.761 0 0 0-.602.17c-.176.142-.287.367-.332.674zm-4.807-3.42l1.657.222c.374.05.655.114.843.195.252.11.458.27.618.484.16.212.27.462.327.75.058.284.057.627 0 1.026-.053.352-.143.65-.273.89a1.896 1.896 0 0 1-.592.69c-.18.126-.407.21-.687.258-.208.033-.48.027-.816-.017l-1.704-.228.63-4.272zm.8.845l-.416 2.828.677.09c.254.034.44.045.555.033a.84.84 0 0 0 .39-.13c.11-.07.21-.196.3-.378.09-.184.16-.44.207-.77.05-.33.055-.59.02-.774a.958.958 0 0 0-.196-.447.867.867 0 0 0-.39-.257c-.122-.044-.368-.09-.738-.14l-.407-.054z" fill="#ecca5e"/> - </g> -</svg> diff --git a/img/flags/4x3/dz.svg b/img/flags/4x3/dz.svg deleted file mode 100644 index 9971ec6..0000000 --- a/img/flags/4x3/dz.svg +++ /dev/null @@ -1,5 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" height="480" width="640" viewBox="0 0 640 480"> - <path fill="#fff" d="M320 0h320v480H320z"/> - <path fill="#006233" d="M0 0h320v480H0z"/> - <path d="M424 180a120 120 0 1 0 0 120 96 96 0 1 1 0-120m4 60l-108-35.2 67.2 92V183.2l-67.2 92z" fill="#d21034"/> -</svg> diff --git a/img/flags/4x3/ec.svg b/img/flags/4x3/ec.svg deleted file mode 100644 index 01ef340..0000000 --- a/img/flags/4x3/ec.svg +++ /dev/null @@ -1,143 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" height="480" width="640" viewBox="0 0 640 480"> - <g fill-rule="evenodd" stroke-width="1pt"> - <path fill="#ffe800" d="M0 0h640v480H0z"/> - <path fill="#00148e" d="M0 240h640v240H0z"/> - <path fill="#da0010" d="M0 360h640v120H0z"/> - </g> - <g fill-rule="evenodd"> - <path d="M269.55 290.834l-72.424 76.485-1.277-1.644 72.422-76.485 1.277 1.644zm50.452 12.5l-94.777 99.908-1.662-1.572 94.777-99.91 1.662 1.574z"/> - <path d="M478.35 60.236v88.583l17.717 88.582 17.717-88.583V60.235H478.35z" transform="matrix(-.07 -.07 -.1 .1 265.03 429.55)" stroke="#000" stroke-width="4.104" fill="gray"/> - <path d="M478.35 60.236v88.583l17.717 88.582 17.717-88.583V60.235H478.35z" transform="matrix(-.07 -.07 -.1 .1 240.59 390.52)" stroke="#000" stroke-width="4.104" fill="gray"/> - </g> - <path d="M301.18 272.84s-17.716 336.61 53.15 336.61 106.3-35.433 106.3-35.433l-.86-185.03-158.59-116.15z" fill-rule="evenodd" transform="matrix(.45 0 0 .64 72.37 -59.76)" stroke="#000" stroke-width="1pt" fill="#ffdf00"/> - <path d="M344.46 304.2c0 17.717-7.846 269.82 27.587 269.82s88.583-17.717 88.583-17.717l-.86-167.31-115.31-84.79z" fill-rule="evenodd" transform="matrix(.45 0 0 .64 72.37 -59.76)" stroke="#000" stroke-width="1pt" fill="#0000c4"/> - <path d="M367.52 321.16c0 17.717 4.525 217.42 39.958 217.42h53.15l-.86-149.59-92.248-67.833z" fill-rule="evenodd" transform="matrix(.45 0 0 .64 72.37 -59.76)" stroke="#000" stroke-width="1pt" fill="#e10000"/> - <path d="M206.202 116.02l72.422 76.485 1.277-1.642-72.422-76.485-1.276 1.642z" fill-rule="evenodd"/> - <path d="M301.18 272.84s-35.433 336.61 70.866 336.61c88.583 0 88.583-53.15 106.3-53.15l-17.72-124.02-159.45-159.44z" fill-rule="evenodd" stroke="#000" stroke-width="1pt" fill="#ffdf00" transform="matrix(.58 0 0 .62 9.63 -10.18)"/> - <g stroke="#000"> - <path d="M269.59 155.24c1.133 0 28.318-94.016 118.94-147.25" transform="matrix(.4 -.03 -.05 .35 135.14 147.37)" stroke-width="2.305" fill="none"/> - <path d="M421.37-20.327c0 18.133-4.567 31.716-11.328 45.31-5.627-18.125-9.06-27.177-9.06-45.31s6.83-35.114 12.458-48.707c2.23 12.46 7.93 30.574 7.93 48.707z" fill-rule="evenodd" transform="matrix(.14 -.22 .3 .14 175.87 257.36)" stroke-width="1pt" fill="#005b00"/> - <path d="M454.22-169.28c0 4.066-3.804 7.363-8.495 7.363s-8.496-3.297-8.496-7.363 3.803-7.363 8.495-7.363 8.495 3.297 8.495 7.363z" fill-rule="evenodd" transform="matrix(.18 -.1 .1 .17 177.61 256.68)" stroke-width="1pt" fill="red"/> - <path d="M421.37-20.327c0 18.133-4.567 31.716-11.328 45.31-5.627-18.125-9.06-27.177-9.06-45.31s6.83-35.114 12.458-48.707c2.23 12.46 7.93 30.574 7.93 48.707z" fill-rule="evenodd" transform="matrix(.18 .12 -.13 .33 181 96.41)" stroke-width="1pt" fill="#005b00"/> - <path d="M421.37-20.327c0 18.133-4.567 31.716-11.328 45.31-5.627-18.125-9.06-27.177-9.06-45.31s6.83-35.114 12.458-48.707c2.23 12.46 7.93 30.574 7.93 48.707z" fill-rule="evenodd" transform="matrix(.17 -.03 -.03 .33 179.31 159.26)" stroke-width="1pt" fill="#005b00"/> - <path d="M421.37-20.327c0 18.133-4.567 31.716-11.328 45.31-5.627-18.125-9.06-27.177-9.06-45.31s6.83-35.114 12.458-48.707c2.23 12.46 7.93 30.574 7.93 48.707z" fill-rule="evenodd" transform="matrix(.06 .25 -.17 .2 227.98 45.45)" stroke-width="1pt" fill="#005b00"/> - <path d="M421.37-20.327c0 18.133-4.567 31.716-11.328 45.31-5.627-18.125-9.06-27.177-9.06-45.31s6.83-35.114 12.458-48.707c2.23 12.46 7.93 30.574 7.93 48.707z" fill-rule="evenodd" transform="matrix(.2 -.2 .2 .24 150.27 241.08)" stroke-width="1pt" fill="#005b00"/> - <path d="M421.37-20.327c0 18.133-4.567 31.716-11.328 45.31-5.627-18.125-9.06-27.177-9.06-45.31s6.83-35.114 12.458-48.707c2.23 12.46 7.93 30.574 7.93 48.707z" fill-rule="evenodd" transform="matrix(.22 -.22 .25 .2 135.57 282.11)" stroke-width="1pt" fill="#005b00"/> - <path d="M421.37-20.327c0 18.133-4.567 31.716-11.328 45.31-5.627-18.125-9.06-27.177-9.06-45.31s6.83-35.114 12.458-48.707c2.23 12.46 7.93 30.574 7.93 48.707z" fill-rule="evenodd" transform="matrix(.26 .1 -.2 .32 130.78 147.66)" stroke-width="1pt" fill="#005b00"/> - <path d="M421.37-20.327c0 18.133-4.567 31.716-11.328 45.31-5.627-18.125-9.06-27.177-9.06-45.31s6.83-35.114 12.458-48.707c2.23 12.46 7.93 30.574 7.93 48.707z" fill-rule="evenodd" transform="matrix(.15 .2 -.32 .22 178.5 103.35)" stroke-width="1pt" fill="#005b00"/> - <path d="M421.37-20.327c0 18.133-4.567 31.716-11.328 45.31-5.627-18.125-9.06-27.177-9.06-45.31s6.83-35.114 12.458-48.707c2.23 12.46 7.93 30.574 7.93 48.707z" fill-rule="evenodd" transform="matrix(.08 .1 -.14 .16 250.68 102.64)" stroke-width="1pt" fill="#005b00"/> - <path d="M421.37-20.327c0 18.133-4.567 31.716-11.328 45.31-5.627-18.125-9.06-27.177-9.06-45.31s6.83-35.114 12.458-48.707c2.23 12.46 7.93 30.574 7.93 48.707z" fill-rule="evenodd" transform="matrix(.1 0 -.08 .17 238.09 136.41)" stroke-width="1pt" fill="#005b00"/> - <path d="M421.37-20.327c0 18.133-4.567 31.716-11.328 45.31-5.627-18.125-9.06-27.177-9.06-45.31s6.83-35.114 12.458-48.707c2.23 12.46 7.93 30.574 7.93 48.707z" fill-rule="evenodd" transform="matrix(0 .14 -.14 .08 287.38 81.13)" stroke-width="1pt" fill="#005b00"/> - <path d="M421.37-20.327c0 18.133-4.567 31.716-11.328 45.31-5.627-18.125-9.06-27.177-9.06-45.31s6.83-35.114 12.458-48.707c2.23 12.46 7.93 30.574 7.93 48.707z" fill-rule="evenodd" transform="matrix(.07 .1 -.25 .15 220.69 115.6)" stroke-width="1pt" fill="#005b00"/> - <path d="M421.37-20.327c0 18.133-4.567 31.716-11.328 45.31-5.627-18.125-9.06-27.177-9.06-45.31s6.83-35.114 12.458-48.707c2.23 12.46 7.93 30.574 7.93 48.707z" fill-rule="evenodd" transform="matrix(.13 .22 -.33 .2 207.03 70.11)" stroke-width="1pt" fill="#005b00"/> - <path d="M269.59 155.24c1.133 0 28.318-94.016 118.94-147.25" transform="matrix(.35 -.2 .14 .28 111.76 227.82)" stroke-width="2.37" fill="none"/> - <path d="M454.22-169.28c0 4.066-3.804 7.363-8.495 7.363s-8.496-3.297-8.496-7.363 3.803-7.363 8.495-7.363 8.495 3.297 8.495 7.363z" fill-rule="evenodd" transform="matrix(.18 -.1 .1 .17 200.34 224.62)" stroke-width="1pt" fill="red"/> - <path d="M454.22-169.28c0 4.066-3.804 7.363-8.495 7.363s-8.496-3.297-8.496-7.363 3.803-7.363 8.495-7.363 8.495 3.297 8.495 7.363z" fill-rule="evenodd" transform="matrix(.18 -.1 .1 .17 211.12 218.26)" stroke-width="1pt" fill="red"/> - <path d="M454.22-169.28c0 4.066-3.804 7.363-8.495 7.363s-8.496-3.297-8.496-7.363 3.803-7.363 8.495-7.363 8.495 3.297 8.495 7.363z" fill-rule="evenodd" transform="matrix(.2 -.1 .07 .13 166.81 232.7)" stroke-width="1pt" fill="red"/> - <path d="M454.22-169.28c0 4.066-3.804 7.363-8.495 7.363s-8.496-3.297-8.496-7.363 3.803-7.363 8.495-7.363 8.495 3.297 8.495 7.363z" fill-rule="evenodd" transform="matrix(.2 -.1 .07 .13 169.93 231.34)" stroke-width="1pt" fill="red"/> - <path d="M454.22-169.28c0 4.066-3.804 7.363-8.495 7.363s-8.496-3.297-8.496-7.363 3.803-7.363 8.495-7.363 8.495 3.297 8.495 7.363z" fill-rule="evenodd" transform="matrix(.2 -.1 .07 .13 168.14 234.25)" stroke-width="1pt" fill="red"/> - <path d="M252.646 167.252c.407.813-.024 1.853-.963 2.322s-2.029.19-2.435-.623.024-1.853.963-2.322 2.028-.19 2.435.623z" fill-rule="evenodd" stroke-width=".22361pt" fill="red"/> - <path d="M254.936 164.872c.407.813-.024 1.853-.963 2.322s-2.029.19-2.435-.623.024-1.853.963-2.322 2.028-.19 2.435.623z" fill-rule="evenodd" stroke-width=".22361pt" fill="red"/> - <path d="M255.516 166.022c.407.813-.024 1.853-.963 2.322s-2.029.19-2.435-.623.024-1.853.963-2.322 2.028-.19 2.435.623z" fill-rule="evenodd" stroke-width=".22361pt" fill="red"/> - </g> - <path d="M336.61 308.27c0 17.717-35.433 212.6 53.15 265.75 35.433 17.716 88.582-17.717 88.582 0l-17.71-141.74-124.02-124.01z" fill-rule="evenodd" transform="matrix(.58 0 0 .62 9.63 -10.18)" stroke="#000" stroke-width="1pt" fill="#0000c4"/> - <path d="M372.05 343.7c0 17.717-17.716 159.45 35.433 194.88 35.433 35.433 124.02 25.822 124.02 25.822l-70.87-132.12-88.58-88.58z" fill-rule="evenodd" stroke="#000" stroke-width="1pt" fill="#e10000" transform="matrix(.58 0 0 .62 9.63 -10.18)"/> - <path d="M183.85 158.08l94.775 99.91 1.662-1.573-94.776-99.91-1.66 1.574z" fill-rule="evenodd"/> - <path d="M460.63 184.25l17.716 35.433V237.4c-.865-1.305 0 17.716-17.716 17.716-17.717 0-17.717-35.433-17.717-35.433s-17.716 35.433-17.716 70.866 17.716 53.15 17.716 53.15-2.61-36.704 17.717-35.434c20.328 1.27 17.716 17.716 17.716 17.716v35.433h17.717v-141.73l17.717-35.433-27.136-53.15-26.014 53.15z" fill-rule="evenodd" transform="matrix(.14 -.14 .1 .1 86.35 192.15)" stroke="#000" stroke-width="1pt" fill="#cececc"/> - <path d="M557.82 95.67l-26.323 70.865 17.717 53.15-35.433-17.716 35.434 53.148v35.433h17.716v-35.43l35.433-53.15-35.433 17.717 17.717-53.15L557.82 95.67z" fill-rule="evenodd" transform="matrix(.1 -.16 .14 .1 113.99 183.83)" stroke="#000" stroke-width="1pt" fill="#cececc"/> - <path d="M422.53 136.96c0 2.068-1.958 3.746-4.37 3.746-2.413 0-4.372-1.678-4.372-3.746s1.96-3.747 4.37-3.747c2.414 0 4.372 1.68 4.372 3.747zm-6.244 7.91c0 35.8 20.917 187.81 22.582 191.56.14 4.44-4.718 6.382-7.077.832-6.55-17.342-20.743-159.91-21.332-193.22-.244-13.734 3.76-14.8 8.326-14.57 3.76.21 8.325 3.725 8.325 7.91 0 4.995-5.83 8.74-10.824 7.492z" fill-rule="evenodd" transform="matrix(.4 0 0 .3 43.75 69.8)" stroke="#000" stroke-width="1pt" fill="#e10000"/> - <path d="M422.53 136.96c0 2.068-1.958 3.746-4.37 3.746-2.413 0-4.372-1.678-4.372-3.746s1.96-3.747 4.37-3.747c2.414 0 4.372 1.68 4.372 3.747zm-6.244 7.91c31.488 61.414 48.722 166.77 50.387 170.52.14 4.44-4.718 6.382-7.077.832-2.48-3.315-12.667-100.18-49.138-172.18-.244-13.734 3.76-14.8 8.326-14.57 3.76.21 8.325 3.725 8.325 7.91 0 4.995-5.83 8.74-10.824 7.492z" fill-rule="evenodd" transform="matrix(.38 .1 -.15 .3 76.05 38.16)" stroke="#000" stroke-width="1pt" fill="#0000c4"/> - <path d="M186.655 151.54c0 1.034-.979 1.873-2.185 1.873-1.207 0-2.186-.839-2.186-1.873s.98-1.873 2.185-1.873c1.207 0 2.186.84 2.186 1.873zm-3.122 3.955c0 17.9 10.458 93.905 11.291 95.78.07 2.22-2.359 3.191-3.539.416-3.275-8.671-10.371-79.955-10.666-96.61-.122-6.867 1.88-7.4 4.163-7.285 1.88.105 4.163 1.863 4.163 3.955 0 2.498-2.915 4.37-5.412 3.746z" fill-rule="evenodd" stroke="#000" stroke-width=".5pt" fill="#e10000"/> - <path d="M422.53 136.96c0 2.068-1.958 3.746-4.37 3.746-2.413 0-4.372-1.678-4.372-3.746s1.96-3.747 4.37-3.747c2.414 0 4.372 1.68 4.372 3.747zm-6.244 7.91c31.488 61.414 48.722 166.77 50.387 170.52.14 4.44-4.718 6.382-7.077.832-2.48-3.315-12.667-100.18-49.138-172.18-.244-13.734 3.76-14.8 8.326-14.57 3.76.21 8.325 3.725 8.325 7.91 0 4.995-5.83 8.74-10.824 7.492z" fill-rule="evenodd" transform="matrix(.48 .15 -.2 .48 16.67 31.58)" stroke="#000" stroke-width="1pt" fill="#0000c4"/> - <g fill-rule="evenodd"> - <path d="M370.454 290.834l72.423 76.485 1.277-1.644-72.423-76.485-1.276 1.644zM320 303.334l94.778 99.908 1.662-1.572-94.777-99.91-1.662 1.574z"/> - <path d="M478.35 60.236v88.583l17.717 88.582 17.717-88.583V60.235H478.35z" transform="matrix(.07 -.07 .1 .1 374.97 429.55)" stroke="#000" stroke-width="4.104" fill="gray"/> - <path d="M478.35 60.236v88.583l17.717 88.582 17.717-88.583V60.235H478.35z" transform="matrix(.07 -.07 .1 .1 399.41 390.52)" stroke="#000" stroke-width="4.104" fill="gray"/> - </g> - <g fill-rule="evenodd" stroke-width="1pt"> - <path d="M301.18 272.84s-17.716 336.61 53.15 336.61 106.3-35.433 106.3-35.433l-.86-185.03-158.59-116.15z" transform="matrix(-.45 0 0 .64 567.65 -59.76)" stroke="#000" fill="#ffdf00"/> - <path d="M344.46 304.2c0 17.717-7.846 269.82 27.587 269.82s88.583-17.717 88.583-17.717l-.86-167.31-115.31-84.79z" transform="matrix(-.45 0 0 .64 567.65 -59.76)" stroke="#000" fill="#0000c4"/> - <path d="M367.52 321.16c0 17.717 4.525 217.42 39.958 217.42h53.15l-.86-149.59-92.248-67.833z" transform="matrix(-.45 0 0 .64 567.65 -59.76)" stroke="#000" fill="#e10000"/> - <path d="M433.814 116.02l-72.423 76.485-1.276-1.642 72.423-76.485 1.277 1.642z"/> - <g stroke="#000" fill="#005b00"> - <path d="M428.17-16.928s81.556 90.618 111.01 154.05c29.45 63.432 54.37 156.32 54.37 156.32s2.266-86.086-36.246-163.11c-52.1-97.42-131.4-142.73-129.13-147.26z" transform="matrix(.16 -.07 .08 .35 309.51 210.98)"/> - <path d="M428.17-16.928s81.556 90.618 111.01 154.05c29.45 63.432 54.37 156.32 54.37 156.32s2.266-86.086-36.246-163.11c-52.1-97.42-131.4-142.73-129.13-147.26z" transform="matrix(.2 -.05 .07 .4 291.49 182.57)"/> - <path d="M428.17-16.928s81.556 90.618 111.01 154.05c29.45 63.432 54.37 156.32 54.37 156.32s2.266-86.086-36.246-163.11c-52.1-97.42-131.4-142.73-129.13-147.26z" transform="matrix(.23 .14 -.03 .4 296.48 69.41)"/> - <path d="M428.17-16.928s81.556 90.618 111.01 154.05c29.45 63.432 54.37 156.32 54.37 156.32s2.266-86.086-36.246-163.11c-52.1-97.42-131.4-142.73-129.13-147.26z" transform="matrix(.25 .03 .02 .44 274.4 114.91)"/> - <path d="M428.17-16.928s81.556 90.618 111.01 154.05c29.45 63.432 54.37 156.32 54.37 156.32s2.266-86.086-36.246-163.11c-52.1-97.42-131.4-142.73-129.13-147.26z" transform="matrix(.18 .17 -.04 .35 329.99 66.98)"/> - <path d="M428.17-16.928s81.556 90.618 111.01 154.05c29.45 63.432 54.37 156.32 54.37 156.32s2.266-86.086-36.246-163.11c-52.1-97.42-131.4-142.73-129.13-147.26z" transform="matrix(.23 0 .03 .4 280.58 141.86)"/> - <path d="M428.17-16.928s81.556 90.618 111.01 154.05c29.45 63.432 54.37 156.32 54.37 156.32s2.266-86.086-36.246-163.11c-52.1-97.42-131.4-142.73-129.13-147.26z" transform="matrix(.2 -.07 .07 .38 290.14 196.84)"/> - <path d="M428.17-16.928s81.556 90.618 111.01 154.05c29.45 63.432 54.37 156.32 54.37 156.32s2.266-86.086-36.246-163.11c-52.1-97.42-131.4-142.73-129.13-147.26z" transform="matrix(.2 -.03 .05 .4 292.69 166.78)"/> - <path d="M428.17-16.928s81.556 90.618 111.01 154.05c29.45 63.432 54.37 156.32 54.37 156.32s2.266-86.086-36.246-163.11c-52.1-97.42-131.4-142.73-129.13-147.26z" transform="matrix(.22 .15 -.05 .38 305.08 65.51)"/> - <path d="M428.17-16.928s81.556 90.618 111.01 154.05c29.45 63.432 54.37 156.32 54.37 156.32s2.266-86.086-36.246-163.11c-52.1-97.42-131.4-142.73-129.13-147.26z" transform="matrix(.24 .05 0 .44 278.88 97.67)"/> - <path d="M428.17-16.928s81.556 90.618 111.01 154.05c29.45 63.432 54.37 156.32 54.37 156.32s2.266-86.086-36.246-163.11c-52.1-97.42-131.4-142.73-129.13-147.26z" transform="matrix(.17 .17 -.06 .33 338.96 70)"/> - <path d="M428.17-16.928s81.556 90.618 111.01 154.05c29.45 63.432 54.37 156.32 54.37 156.32s2.266-86.086-36.246-163.11c-52.1-97.42-131.4-142.73-129.13-147.26z" transform="matrix(.24 .02 0 .4 276.43 128.02)"/> - </g> - <path d="M301.18 272.84s-35.433 336.61 70.866 336.61c88.583 0 88.583-53.15 106.3-53.15l-17.72-124.02-159.45-159.44z" transform="matrix(-.58 0 0 .62 630.39 -10.18)" stroke="#000" fill="#ffdf00"/> - <path d="M336.61 308.27c0 17.717-35.433 212.6 53.15 265.75 35.433 17.716 88.582-17.717 88.582 0l-17.71-141.74-124.02-124.01z" transform="matrix(-.58 0 0 .62 630.39 -10.18)" stroke="#000" fill="#0000c4"/> - <path d="M372.05 343.7c0 17.717-17.716 159.45 35.433 194.88 35.433 35.433 124.02 25.822 124.02 25.822l-70.87-132.12-88.58-88.58z" transform="matrix(-.58 0 0 .62 630.39 -10.18)" stroke="#000" fill="#e10000"/> - <path d="M456.172 158.08l-94.777 99.91-1.66-1.573 94.775-99.91 1.662 1.574z"/> - <path d="M460.63 184.25l17.716 35.433V237.4c-.865-1.305 0 17.716-17.716 17.716-17.717 0-17.717-35.433-17.717-35.433s-17.716 35.433-17.716 70.866 17.716 53.15 17.716 53.15-2.61-36.704 17.717-35.434c20.328 1.27 17.716 17.716 17.716 17.716v35.433h17.717v-141.73l17.717-35.433-27.136-53.15-26.014 53.15z" transform="matrix(-.14 -.14 -.1 .1 553.66 192.15)" stroke="#000" fill="#cececc"/> - <path d="M557.82 95.67l-26.323 70.865 17.717 53.15-35.433-17.716 35.434 53.148v35.433h17.716v-35.43l35.433-53.15-35.433 17.717 17.717-53.15L557.82 95.67z" transform="matrix(-.1 -.16 -.14 .1 526.03 183.83)" stroke="#000" fill="#cececc"/> - <path d="M422.53 136.96c0 2.068-1.958 3.746-4.37 3.746-2.413 0-4.372-1.678-4.372-3.746s1.96-3.747 4.37-3.747c2.414 0 4.372 1.68 4.372 3.747zm-6.244 7.91c0 35.8 20.917 187.81 22.582 191.56.14 4.44-4.718 6.382-7.077.832-6.55-17.342-20.743-159.91-21.332-193.22-.244-13.734 3.76-14.8 8.326-14.57 3.76.21 8.325 3.725 8.325 7.91 0 4.995-5.83 8.74-10.824 7.492z" transform="matrix(-.4 0 0 .3 596.29 69.8)" stroke="#000" fill="#e10000"/> - <path d="M422.53 136.96c0 2.068-1.958 3.746-4.37 3.746-2.413 0-4.372-1.678-4.372-3.746s1.96-3.747 4.37-3.747c2.414 0 4.372 1.68 4.372 3.747zm-6.244 7.91c31.488 61.414 48.722 166.77 50.387 170.52.14 4.44-4.718 6.382-7.077.832-2.48-3.315-12.667-100.18-49.138-172.18-.244-13.734 3.76-14.8 8.326-14.57 3.76.21 8.325 3.725 8.325 7.91 0 4.995-5.83 8.74-10.824 7.492z" transform="matrix(-.38 .1 .15 .3 563.96 38.16)" stroke="#000" fill="#0000c4"/> - <path d="M453.345 151.54c0 1.034.979 1.873 2.185 1.873 1.207 0 2.186-.839 2.186-1.873s-.98-1.873-2.185-1.873c-1.207 0-2.186.84-2.186 1.873zm3.122 3.955c0 17.9-10.458 93.905-11.291 95.78-.07 2.22 2.359 3.191 3.539.416 3.275-8.671 10.371-79.955 10.666-96.61.122-6.867-1.88-7.4-4.163-7.285-1.88.105-4.163 1.863-4.163 3.955 0 2.498 2.915 4.37 5.412 3.746z" stroke="#000" fill="#e10000" stroke-width=".5pt"/> - <path d="M422.53 136.96c0 2.068-1.958 3.746-4.37 3.746-2.413 0-4.372-1.678-4.372-3.746s1.96-3.747 4.37-3.747c2.414 0 4.372 1.68 4.372 3.747zm-6.244 7.91c31.488 61.414 48.722 166.77 50.387 170.52.14 4.44-4.718 6.382-7.077.832-2.48-3.315-12.667-100.18-49.138-172.18-.244-13.734 3.76-14.8 8.326-14.57 3.76.21 8.325 3.725 8.325 7.91 0 4.995-5.83 8.74-10.824 7.492z" transform="matrix(-.48 .15 .2 .48 623.32 31.58)" stroke="#000" fill="#0000c4"/> - </g> - <g fill-rule="evenodd" stroke="#000" stroke-width="1pt"> - <path d="M478.35 698.03c17.717 10.652 37.09 8.268 53.15 0V556.3h-35.433c17.717 53.15 17.717 106.3-17.717 141.73z" fill="#e10000" transform="matrix(.58 0 0 .62 9.63 -10.18)"/> - <path d="M513.78 609.45c0 88.582-42.466 108.27-42.466 125.98 17.716 0 29.465-8.248 42.466-19.685 17.716-17.717 19.426-107.68 17.716-106.3H513.78z" transform="matrix(.35 0 0 .7 123.48 -89.93)" fill="#0000c4"/> - <path d="M478.35 609.45c-.81 51.77-44.794 99.64-36.497 110.24 9.474 9.475 36.497-21.654 71.93-3.937 17.717-17.717 19.427-107.68 17.717-106.3h-53.15z" transform="matrix(.35 0 0 .7 123.48 -89.93)" fill="#0000c4"/> - <path d="M513.78 609.45c0 88.582-40.696 94.47-40.696 118.09 17.717 0 40.603-12.912 40.696-11.79 17.716-17.718 19.426-107.68 17.716-106.3H513.78z" transform="matrix(.35 0 0 .46 112.52 51)" fill="#ffdf00"/> - <path d="M478.35 609.45c-.81 51.77-43.73 95.702-35.433 106.3 9.474 9.475 35.433-17.717 70.867 0 17.716-17.717 19.426-107.68 17.716-106.3h-53.15z" transform="matrix(.35 0 0 .46 112.52 51)" fill="#ffdf00"/> - <path d="M478.35 698.03c17.717 10.652 37.09 8.252 53.15-.015v-141.72h-35.433c17.717 53.15 17.717 106.3-17.717 141.73z" transform="matrix(-.58 0 0 .62 630.39 -10.17)" fill="#e10000"/> - <path d="M513.78 609.45c0 88.582-42.466 108.27-42.466 125.98 17.716 0 29.465-8.248 42.466-19.685 17.716-17.717 19.426-107.68 17.716-106.3H513.78z" transform="matrix(-.35 0 0 .7 516.53 -89.92)" fill="#0000c4"/> - <path d="M478.35 609.45c-.81 51.77-44.794 99.64-36.497 110.24 9.474 9.475 36.497-21.654 71.93-3.937 17.717-17.717 19.427-107.68 17.717-106.3h-53.15z" transform="matrix(-.35 0 0 .7 516.53 -89.92)" fill="#0000c4"/> - <path d="M513.78 609.45c0 88.582-40.696 94.47-40.696 118.09 17.717 0 40.603-12.912 40.696-11.79 17.716-17.718 19.426-107.68 17.716-106.3H513.78z" transform="matrix(-.35 0 0 .46 527.51 51.01)" fill="#ffdf00"/> - <path d="M478.35 609.45c-.81 51.77-43.73 95.702-35.433 106.3 9.474 9.475 35.433-17.717 70.867 0 17.716-17.717 19.426-107.68 17.716-106.3h-53.15z" transform="matrix(-.35 0 0 .46 527.51 51)" fill="#ffdf00"/> - </g> - <g stroke="#000" fill-rule="evenodd"> - <path d="M198.56 77.952l-89.676 35.434 89.676 35.434 44.837-17.717 22.42 17.717 22.418 35.433 22.42-35.433 22.418-17.717 1201.9-.002V95.668l-1201.9.002-22.42-17.718c0-17.716 4.704-35.433 22.42-35.433 17.717 0 54.242-.003 89.675-.003 0-17.716-44.838-53.15-134.51-53.15-89.675 0-134.51 35.434-134.51 53.15l89.675.002c17.716 0 22.42 17.716 22.42 35.432l-22.44 17.717-44.84-17.717z" transform="matrix(.12 0 0 .22 217.8 324.36)" stroke-width="4.467" fill="#908f8a"/> - <path transform="matrix(.28 0 0 .27 216.06 334.6)" stroke-width="1.838" fill="#b74d00" d="M204.35 95.67h336.61v17.718H204.35z"/> - <path transform="matrix(.28 0 0 .27 216.06 334.6)" stroke-width="1.838" fill="#b74d00" d="M204.35 77.955h336.61v17.717H204.35zm0-17.718h336.61v17.717H204.35z"/> - <path transform="matrix(.28 0 0 .27 216.06 334.6)" stroke-width="1.838" fill="#b74d00" d="M204.35 42.522h336.61V60.24H204.35zm0-17.717h336.61v17.717H204.35z"/> - <path transform="matrix(.28 0 0 .27 216.06 334.6)" stroke-width="1.838" fill="#b74d00" d="M204.35 7.09h336.61v17.716H204.35zm0-17.718h336.61V7.09H204.35z"/> - <path d="M423.23 60.236l137.8 124.02h19.686l-137.8-124.02H423.23z" transform="matrix(.25 0 0 .27 171.89 315.18)" stroke-width="3.255" fill="#908f8a"/> - <path d="M423.23 60.236l137.8 124.02h19.686l-137.8-124.02H423.23z" transform="matrix(.25 0 0 -.27 171.89 382.19)" stroke-width="3.255" fill="#908f8a"/> - <path d="M425.2 60.236v124.02h17.716V60.236H425.2z" transform="matrix(.28 0 0 .27 159.56 315.18)" stroke-width="3.087" fill="#908f8a"/> - <path d="M423.23 60.236l137.8 124.02h19.686l-137.8-124.02H423.23z" transform="matrix(.25 0 0 .27 216.23 315.18)" stroke-width="3.255" fill="#908f8a"/> - <path d="M423.23 60.236l137.8 124.02h19.686l-137.8-124.02H423.23z" transform="matrix(.25 0 0 -.27 216.23 382.19)" stroke-width="3.255" fill="#908f8a"/> - <path d="M425.2 60.236v124.02h17.716V60.236H425.2z" transform="matrix(.28 0 0 .27 238.4 315.18)" stroke-width="3.087" fill="#908f8a"/> - <path d="M425.2 60.236v124.02h17.716V60.236H425.2z" transform="matrix(.28 0 0 .27 203.91 315.18)" stroke-width="3.087" fill="#908f8a"/> - <path d="M425.2 60.236v124.02h17.716V60.236H425.2z" transform="matrix(.28 0 0 .27 194.05 315.18)" stroke-width="3.087" fill="#908f8a"/> - </g> - <g stroke="#000" stroke-width="1pt" fill="#ffdf00" fill-rule="evenodd"> - <path d="M655.51 396.85c0 88.016-55.56 159.45-124.02 159.45-68.456 0-124.02-71.433-124.02-159.45 0-88.015 55.56-159.45 124.02-159.45 68.457 0 124.02 71.433 124.02 159.45zm-17.717 0c0 78.237-47.622 141.73-106.3 141.73-58.677 0-106.3-63.495-106.3-141.73 0-78.236 47.622-141.73 106.3-141.73 58.677 0 106.3 63.497 106.3 141.73z" transform="matrix(.58 0 0 .62 9.63 -10.18)"/> - <path d="M579.75 249.94c-14.836-8.072-31.144-12.537-48.258-12.537s-33.422 4.465-48.257 12.537l6.893 16.323c12.716-7.175 26.695-11.144 41.364-11.144s28.648 3.968 41.364 11.143l6.894-16.323z" transform="matrix(.58 0 0 .62 9.63 -10.18)"/> - <path d="M579.75 249.94c-14.836-8.072-31.144-12.537-48.258-12.537s-33.422 4.465-48.257 12.537l6.893 16.323c12.716-7.175 26.695-11.144 41.364-11.144s28.648 3.968 41.364 11.143l6.894-16.323z" transform="matrix(.58 0 0 -.62 9.75 479.31)"/> - </g> - <path d="M379.554 235.867c0 48.532-27.603 87.873-61.654 87.873-34.05 0-61.654-39.343-61.654-87.873 0-48.532 27.603-87.873 61.654-87.873 34.05 0 61.654 39.343 61.654 87.873z" fill-rule="evenodd" fill="#a7cfff"/> - <path d="M637.8 396.85c1.133 26.658-4.634 39.635-11.89 67.356-1.912 2.98-10.966-6.537-16.447-11.236s-7.812 4.24-14.537-3.046c-6.725-7.284-11.05 2.058-15.983-4.095s-51.3-7.057-51.366-7.586c4.59-2.276 28.27.152 24.474-11.193-4.3-11.72-31.093-.35-34.69-15.364-2.44-14.907-53.567-15.543-57.22-19.225 1.444 5.665 39.728 8.05 38.814 22.57-.833 5.916-37.693 7.645-41.247 12.652-3.045 6.295 28.927-1.707 30.114 6.032-.077 3.185-4.704.068-21.357 4.99-8.326 2.46 15.454 10.33 6.41 14.637-9.045 4.308-28.26 6.188-27.433 7.998 2.94 8.908 44.693 19.536 40.535 21.065-14.754 6.56-22.552 10.872-29.627 14.652-19.24-25.653-31.146-61.087-31.146-100.2 31.716-11.405 24.968-13.735 83.645-13.735s77.98 2.33 128.95 13.735z" fill-rule="evenodd" stroke="#000" stroke-width="1pt" fill="#afff7b" transform="matrix(.58 0 0 .62 9.63 -10.18)"/> - <path d="M637.8 396.85c-8.07 0-16.454 3.4-25.07 3.4-8.617 0-17.465-3.4-26.466-3.4s-19.287 4.532-28.512 4.532c-9.224 0-17.388-4.53-26.676-4.53-9.287 0-18.566 3.397-27.755 3.397s-18.288-3.4-27.218-3.4-17.69 3.4-26.2 3.4-16.77-3.4-24.7-3.4c0-19.56 2.976-38.197 8.358-55.15 27.075 2 11.042-15.716 27.075-15.716 8.655 0 17.434 1.86 25.238 9.788 2.447 0 14.48-11.373 27.912-9.788 13.432 1.586 8.492 27.272 26.37 28.637 9.063 6.797 14.393 11.134 26.78 13.872 17.716 1.606 68.35-2.5 68.704-.194a188.21 188.21 0 0 1 2.16 28.552z" fill-rule="evenodd" stroke="#000" stroke-width="1pt" fill="#fff" transform="matrix(.58 0 0 .62 9.63 -10.18)"/> - <path d="M549.85 473.94c0-5.664 13.512-9.462 13.512-18.524s-11.914-9.35-12.38-17.86c-.2-3.46 10.32-7.046 14.915-7.335s8.493 7.42 8.493 9.12-4.662-4.192-8.578-4.378-12.313.63-12.313 2.33c0 3.4 14.85 7.598 13.717 18.925-1.132 11.327-12.71 14.657-12.71 18.055s5.056 12.86 5.056 12.86-9.713-7.53-9.713-13.192z" fill-rule="evenodd" transform="matrix(.2 0 0 .48 217.23 59.5)" stroke="#000" stroke-width="1pt"/> - <path d="M549.85 473.94c0-5.664 13.512-9.462 13.512-18.524s-11.95-9.348-12.38-17.86c-.946-3.962 11.814-6.544 16.41-6.833s9.985 7.92 9.985 9.62-5.41-5.195-9.325-5.38-14.553.63-14.553 2.33c0 3.398 14.85 7.597 13.717 18.924-1.132 11.327-12.71 14.657-12.71 18.055s5.056 12.86 5.056 12.86-9.713-7.53-9.713-13.192z" fill-rule="evenodd" transform="matrix(-.2 0 0 .48 445.83 59.12)" stroke="#000" stroke-width="1pt"/> - <path d="M332.965 264.846c0 1.333-.65 2.413-1.454 2.413-.803 0-1.454-1.08-1.454-2.414s.65-2.413 1.455-2.413c.804 0 1.455 1.08 1.455 2.413zm16.951 8.964h.465v19.617h-.464zm4.182-1.487h.464v19.616h-.464z" fill-rule="evenodd"/> - <path fill-rule="evenodd" d="M352.597 281.23l.004-.493 3.978.684-.004.495z"/> - <path d="M497.26 478.07s26.052 11.328 31.716 18.124c5.664 6.797 3.398 6.796 3.398 6.796l57.77 2.266c0-3.398 10.193-3.4 12.46-11.328 2.264-7.93 2.264-10.194 2.264-10.194l-18.123 5.664 1.132-10.194H572.02l-2.266 10.194-33.982-1.133 2.266-27.186-6.796 1.132-1.133 26.053c-1.134 0-31.718-7.93-32.85-10.195z" fill-rule="evenodd" transform="matrix(.58 0 0 .62 6.99 -9.48)" stroke="#000" stroke-width="1pt" fill="#b74d00"/> - <path d="M440.53 316.28s37.645-11.214 92.11-10.413 92.11 12.815 91.31 12.815-10.414-18.422-10.414-18.422-38.446-10.412-81.697-11.213c-43.253-.8-80.898 8.01-80.097 8.81L440.53 316.28z" fill-rule="evenodd" stroke="#fede00" stroke-width="1pt" fill="#fede00" transform="matrix(.58 0 0 .62 9.63 -10.18)"/> - <path fill-rule="evenodd" fill="#38a9f9" d="M306.072 169.855l13.562-.262.137 7.9-13.56.264zm-31.297 4.3l-4.783 7.784 16.165-1.992-1.297-7.783-10.085 1.99zm13.778-2.995l13.518-1.187.62 7.876-13.516 1.187zm48.837-.806l-13.538-.91-.475 7.888 13.537.91zm29.182 4.953l4.918 9.69-14.642-3.614 1.63-7.714 8.094 1.637zm-11.736-2.817l-13.453-1.83-.957 7.837 13.453 1.832z"/> - <path fill-rule="evenodd" stroke="#000" stroke-width="1pt" fill="#ffdf00" d="M532.64 323.49l-2.58-13.47-7.54 11.46 2.77-13.43-11.34 7.7 7.7-11.35-13.43 2.78 11.45-7.54-13.47-2.58 13.47-2.58-11.45-7.53 13.43 2.77-7.7-11.35 11.34 7.7-2.77-13.43 7.54 11.46 2.58-13.47 2.57 13.47 7.54-11.46-2.77 13.43 11.35-7.7-7.71 11.35 13.44-2.77-11.46 7.53 13.47 2.58-13.47 2.58 11.46 7.54-13.44-2.78 7.71 11.35-11.35-7.7 2.77 13.43-7.54-11.46z" transform="matrix(.58 0 0 .62 9.63 -10.18)"/> - <path d="M547.05 293.86c0 9.29-6.634 16.82-14.818 16.82s-14.818-7.53-14.818-16.82 6.634-16.82 14.818-16.82 14.818 7.53 14.818 16.82z" fill-rule="evenodd" transform="matrix(.57 0 0 .5 18.27 21.75)" stroke="#000" stroke-width="1pt" fill="#ffdf00"/> - <path d="M320.676 170.552c0 .545-1.257.988-2.807.988s-2.807-.443-2.807-.988 1.256-.988 2.806-.988 2.806.442 2.806.988zm6.079-.002c0 .547-.943.99-2.105.99s-2.105-.443-2.105-.99c0-.544.942-.987 2.105-.987s2.105.443 2.105.988z" fill-rule="evenodd"/> - <path d="M529.43 297.86l.8.8c-1.9-1.9-.995-1.125 1.603 3.204 2.393-.495 3.09-1.39 4.806-2.403" transform="matrix(.56 -.18 .17 .6 -26.71 90.63)" stroke="#000" stroke-width="1pt" fill="none"/> - <path d="M527.83 304.27l.8.8c-1.9-1.9-1.123-.994 3.205 1.603 4.027.544 8.092-1.196 10.412-4.005" transform="matrix(.58 0 0 .62 8.7 -10.18)" stroke="#000" stroke-width="1pt" fill="none"/> - <path d="M281.395 194.854s.93 7.945-5.11 17.877c-6.04 9.933-5.11 6.457-5.11 6.457s2.787 5.462 2.323 5.462-4.646-4.966-4.646-4.966l-5.11 5.462s4.646-8.442 4.18-8.442-1.393-2.98-1.393-2.98l3.715-1.49s5.575-10.428 5.575-9.93-16.724 11.42-16.724 11.42l22.3-18.87zm3.718 2.982c-.465 0 2.322 7.946 4.645 11.918 2.323 3.973 2.323 8.94 2.323 8.94l7.9 3.972-10.222-15.394 6.504 2.482-11.15-11.918zm0 20.857s5.574 5.96 6.04 7.945.463 6.456.463 6.456l-2.322-4.966-3.252 4.47s2.323-6.953 1.858-7.45-3.717 2.484-3.717 2.484 1.394-3.973 1.394-4.47 0-2.98-.464-4.47zm-27.875 13.9c1.858-1.49 5.574-2.482 5.574-2.482s-2.323 3.973-2.787 3.973-1.858 0-2.787-1.49zm64.107-21.848s12.078 7.45 12.078 7.946-7.897-3.476-7.897-3.476l-4.18-4.47zm-21.831-15.395c.93.497 17.653 14.4 17.188 14.4s-7.432-3.972-7.432-3.475v3.476l-3.717-7.945-.93 2.98-5.11-9.435zm4.176 22.345l4.646 9.435 4.645-.993s-8.825-8.442-9.29-8.442zm14.407-5.958c0 1.49.465 8.938.465 8.938s2.787 2.483 2.787 1.987-2.788-10.43-3.253-10.925z" fill-rule="evenodd" fill="#b7e1ff"/> - <g> - <path d="M182.612 89.522s20.98-11.61 44.87-20.254c23.886-8.644 50.68-14.325 54.222-14.325 7.077 0 19.21 17.783 21.233 17.783 2.022 0 10.11-4.94 20.223-4.94s16.178 7.904 18.2 7.904h18.2c2.023 0-6.066-19.76 0-18.77 3.034.493 28.817 4.445 52.833 12.225 24.014 7.78 58.103 21.515 58.103 21.515s-55.714 7.44-70.488 5.24c-2.022.988-.1 13.07-2.933 7.754-4.656-1.063-21.744-3.727-24.778-3.727s-8.69 3.427-16.78 5.402c-8.088 1.976-18.2 4.94-18.2 4.94l13.146 20.747-16.178 7.903s-10.11-23.71-14.156-23.71-6.067 16.795-11.123 15.807c-5.056-.988-7.078-15.808-11.123-19.76-4.044-3.95-25.368-5.39-33.458-7.366-8.09-1.975-21.144-3.5-28.222-5.476-7.078-1.976-14.155 4.94-17.19 4.94-3.032 0 4.046-5.928 1.012-6.916s-5.055 2.964-7.078 2.964c-2.022 0-23.256-3.952-25.278-4.94-2.022-.988 5.056-4.94 3.034-4.94h-8.09z" fill-rule="evenodd" fill="#984000"/> - <path d="M462.91-64.94c0 21.15-20.5 38.298-45.79 38.298S371.327-43.79 371.327-64.94s20.5-38.298 45.79-38.298S462.91-86.09 462.91-64.94z" fill-rule="evenodd" transform="matrix(.22 0 0 .26 231.63 96.52)" stroke="#772600" stroke-width="3.706" fill="gray"/> - <path d="M284.74-59.945c6.66-6.66 14.987-16.65 36.633-16.65 4.996-1.666 4.996-11.657 16.65-11.657 11.657 0 8.327 9.99 16.653 13.32 8.325 3.33 76.596-3.33 76.596-3.33s6.66 4.996 6.66 11.657c0 6.66-4.995 11.656-6.66 11.656s-68.27-4.995-73.266-3.33c-4.995 1.666-8.326 3.33-19.982 3.33-11.655 0-14.986-11.655-23.31-11.655-8.327 0-16.653-1.665-29.974 6.66z" fill-rule="evenodd" transform="matrix(.27 0 0 .32 205.39 100.65)" stroke="#772600" stroke-width="5.25" fill="#984000"/> - <path d="M487.88-76.597h26.642c9.572.114 12.873 3.005 21.647 3.33h23.31c8.476-.314 12.952-2.295 21.648-3.33 14.504-.175 9.555-1.306 6.66-9.99-2.625-6.565-2.95-9.61-6.66-13.322-1.396-7.944-4.655-10.77-4.996-19.98-1.527-7.027-4.342-11.753-1.665-19.983 3.84 5.647 5.387 7.97 14.986 8.326 10.045 0 13.937-.206 19.982 3.33 4.663 4.89 10.886 3.33 19.982 3.33 7.677 1.406 8.96 5.313 14.986 8.326 7.103 3.935 11.694 4.995 21.646 4.995 7.967 1.422 14.88 2.578 19.98 4.995 4.25 5.08 10.952 6.338 19.983 6.66 5.05 0 8.95-.524 13.32-1.665 7.678.37 15.474 0 24.978 0 6.163 7.21 7.587 9.862 18.317 9.99 7.338 5.155 13.527 6.037 19.982 8.327h24.976c8.928.687 11.79 4.35 19.98 6.66 8.115 3.768 15.722 6.35 21.648 8.326 5.89 1.28 13.574 1.665 21.646 1.665 6.183 3.175 13.61 3.46 18.317 6.66 6.89 1.477 16.302 3.215 21.647 4.996 8.816 1.168 12.187 3.94 19.98 4.995 6.704 1.915-2.223 3.56-6.66 4.995-9.826-.364-10.536-3.946-19.98-4.995-5.024-2.94-12.64-2.548-19.982-4.996h-1.666c6.6 3.903 12.948 6.422 9.99 13.32-8.49 0-15.366-1.097-23.31-1.665-8.385-1.616-12.227-3.33-21.647-3.33 9.394-2.264 11.854.27 18.315 3.33 2.396 8.06-2.725 4.996-11.656 4.996-7.61-2.73-12.174-5.983-21.648-6.66h-19.98c9.89.366 11.976 4.1 18.315 8.326.518 2.59-.132 2.472-4.995 3.33-5.16-4.478-11.89-6.013-19.982-8.326-7.88-.28-16.217-.965-23.31-3.33-4.868-.304-4.117-6.177 6.66 3.33 6.532 3.843 8.832 6.946 8.325 9.99-8.576-2.143-12.825-5.58-18.317-8.324-7.736-2.855-14.128-3.33-23.312-3.33-8.61-2.266.894-3.574 6.66 4.995 12.38 8.77-1.632 5.007-6.66 3.33-7.507-2.144-15.284-5.184-21.646-6.66-5.046-1.44-9.44-2.855-14.986-3.33 8.63.785 11.57 3.823 14.986 9.99 8.755 6.032-.384 3.1-8.326 1.666-5.07-4.402-11.487-6.658-14.986-11.656-8.35-4.176-8.563-8.982-3.33 1.665 1.363 3.407 1.11 10.795 1.665 11.656-6.136-6.625-4.825-8.325-11.656-8.325-4.634-3.244-11.496-5.765-14.986-9.99-6.435-.604-6.84-2.9-13.32-4.996 5.34 6.273 12.39 12.478 16.65 18.315 7.598 4.242 9.7 8.06 14.987 11.656 2.14 3.64 7.904 6.657 1.665 1.666-7.144-7.043-12.46-8.67-23.312-13.32-6.15-4.96-8.37-7.045-14.986-11.657-9.003-2.905-5.508-4.543 0 4.995 6.318 5.77 11.17 12.23 16.652 16.65 3.767 4.908 10.136 10.12 14.986 13.322 1.5 2.25 5.99 2.664 0 3.33-5.09-4.598-12.398-7.53-18.317-11.656-8.302-2.34-12.19-6.652-18.316-11.655-3.9-5.85-10.383-10.38-14.987-14.986-9.63-3.77 1.9 3.636 4.995 8.325 2.153 6.068 4.788 11.035 6.66 16.65 2.78 5.56-8.47-1.327-11.655-3.33-7.32-4.157-12.674-6.937-21.647-8.325-5.98-1.3-13.602-2.468-19.982-3.33-7.614-2.05 4.042 4.8 8.326 11.656 8.418 7.908-8.332 1.425-13.32 0-8.224-1.645-16.288-1.666-24.978-1.666-10.67.628-3.05 1.947 0 6.66 3.287 2.53 5.637 7.855 4.995 9.992-7.032-.95-13.025-3.023-21.646-3.33-6.96 2.32-15.344 1.665-23.31 1.665-.382 4.19 1.443.654 4.994 4.995 5.763 2.34 9.585 5.177 8.326 8.326H497.87c-5.29 1.447 1.14.704 5 6.663-2.16 5.403-4.95 3.332-11.655 3.332-4.545-1.818-13.598-2.636-18.317-4.996-4.69 0-4.336-1.22-8.325-1.665 14.035 9.93 7.073 7.45 14.986 14.987 1.366.456 4.523 1.665 1.664 1.665M371.32 73.265c-.997 0-3.2-5.375-6.66-9.99-2.327-6.05-5.392-2.59-8.326-11.657.348-9.402.684-11.094 0-19.982-6.863-4.783-9.714-6.27-14.986-14.986-8.46-7.078 1.236-19.063 2.845-27.85-7.375-1.638-11 11.477-22.34 16.194-8.156 5.492-.912-11.354-4.892-21.188-2.774-13.872-10.825 6.956-13.91 12.862-5.467 3.718-7.128 8.542-14.986 1.665 0-5.144 4.937-19.49 2.845-22.28-7.815 3.815-18.088 15.49-26.158 17.284-8.13-1.767 1.77-14.828 1.77-24.518-2.938-.98-14.696 25.755-19.52 26.002-4.824.248-2.713-25.993-4.972-25.428-3.542 4.96-10.65 15.43-15.576 18.948-9.454-1.22 1.398-17.435 2.845-23.427 1.628-7.168-8.905 13.75-14.502 15.102-4.1 3.554-12.237 6.072-14.986 6.66 3.24-6.13 19.076-18.712 17.935-22.278-9.21.34-23.31 12.556-31.256 13.952-5.19 0-12.387 1.758-13.32 1.665.448-7.926 19.418-14.65 22.445-19.465-9.306 1.494-27.186 9.706-32.436 16.135-6.146 1.336-13.944 3.02-19.983 0 .897-7.475 14.856-21.998 17.936-26.758-8.396 3.697-12.642 6.59-21.647 8.325-1.652 1.652-6.524 5.23-4.995 1.665 2.656-6.945 6.676-10.11 9.99-14.986-7.45 1.364-10.28 5.634-18.315 9.99-5.094.222-19.646 14.855-24.596 15.103-11.45 8.382-16.01 9.807-28.308 13.32-7.587 1.356-11.26 2.934-14.986 6.66 3.796-6.687 9.597-13.092 14.986-16.65 3.677-5.567 7.12-10.195 14.986-13.32 1.897-2.32 7.188-2.906 1.665-3.33-4.746 4.236-12.696 8.965-16.65 11.655-5.102 3.207-11.01 6.48-13.322 4.995 2.62-7.197 7.438-8.902 11.657-14.986 8.81-5.604.042-1.914-6.66 0-4.338 3.868-12.122 6.727-18.316 9.992-7.113 1.856-11.703 6.132-19.98 8.326 0 2.375 2.364-4.25 3.33-6.66 6.83-7.41 8.656-9.476 16.65-11.657 1.912-2.866 4.42-1.664-1.665-1.664-4.514 4.024-10.81 6.212-16.65 9.99-5.892 1.282-13.575 1.666-21.648 1.666-10.355 1.243-9.46 2.025 0-3.33 5.357-5.042 9.77-3.775 9.99-9.99C10.394-40.43 2.78-37.1-4.998-33.304c-6.434.19-8.133 1.665-14.985 1.665 3.298-3.415 5.277-7.633 9.99-9.99 6.896-7.663-4.377-1.478-6.66 0H-41.63c-4.465 5.58-.23.05 3.33-3.33 4.306-2.24 8.756-5.155 8.326-6.66-4.972 4.314-10.726 6.297-14.986 9.99-4.64 1.39-9.99 2.084-9.99 3.33 3.626-5.346 9.524-8.576 13.32-13.32 5.612-1.22 10.396-2.936 11.656-4.996h-23.312 16.65c8.4 0 15.63-.75 23.313-1.665 13.263-2.21-1.16-3.33-8.326-3.33-1.39-2.548 4.11-3.987 9.99-4.995 5.024-2.38 11.233-4.493 16.65-6.66 5.257-1.434 12.707-5.81 13.322-6.66-5.015.263-4.975 1.4-9.99 1.664 7.446-.574 12.8-1.666 21.646-1.666 8.028-2.58 14.906-5.41 21.647-8.326 2.936-3.588 4.24-3.33-3.33-3.33 6.713-2.158 16.238-3.193 21.647-4.995 7.872-1.687 14.9-4.253 19.982-6.66 4.876-3.316 7.69-7.176 13.32-9.99 6.528 4.437 6.602 4.994 18.318 4.994 9.41-.112 15.17-2.373 19.98-6.66 7.208-1.966 8.483-5.43 16.652-6.66 7.444 1.328 15.03 1.664 23.312 1.664 8.096-2.12 15.677-6.01 21.647-9.99 5.093-2.502 11.14-6.12 16.65-8.326 6.07 3.133 10.844 5.65 18.318 6.66 7.728-1.148 11.747-4.868 18.317-6.66 3.577-4.33 8.777-6.632 14.986-8.325 9.67-4.75 8.913 1.573 13.32 6.66 4.896 5.132 11.374 2.68 18.318 4.995 3.83 5.893 6.647 9.914 11.657 13.32 3.89 4.71 8.508 6.035 16.65 6.66 2.968 3.958.602 6.812 6.662 8.327 2.387 2.53 6.517 3.606 9.99 4.995" transform="matrix(.27 0 0 .32 205.39 104.9)" stroke="#772600" stroke-width="3.5" fill="none"/> - <path d="M468.74 30.803v.833c0-2.327-.103-1.09 1.665 3.33.595 3.64-.81 3.22-2.498 5.828-.286 3.723-.832 6.4-.832 10.823-.537 3.612-2.57 7.04-4.163 9.99-1.604 3.133-8.555 4.87-8.326 9.16-3.99 1.14-4.084-1.445-4.162-5.83-2.386-2.726-3.212-6.466-4.996-9.99-1.108-3.476-3.47-6.032-4.995-9.99-2.46-3.787-4.546-4.876-6.66-9.16-.827-2.065-.683-4.617-2.498-5.827-2.72-3.438-4.49-3.99-9.16-4.163-3.59.845-4.97 2.416-8.324 3.33-2.57.857-7.57.58-10.823 1.666-.808 1.314 1.6 1.94 2.498 4.995-2.135 1.764-2.926 4.883-4.163 7.493-1.965 2.487-3.283 3.706-4.163 7.494 1.362 2.316.2 5.387-1.666 7.493-.574 3.864-2.434 5.874-3.33 9.16-2.686 1.825-3.652 3.537-5.828 6.66-1.914 2.678-3.636 2.497-8.326 2.497-3.667-1-4.18-2.988-7.493-4.163-.352-1.056-.608-1.312-1.665-1.664" transform="matrix(.27 0 0 .32 205.39 104.9)" stroke="#782600" stroke-width="3.125" fill="none"/> - <path d="M307.65 125.534s-.455 4.955-3.643 8.258-9.794 7.157-9.794 7.157 8.882-4.222 9.793-3.304c.91.917-5.694 8.258-5.694 8.258s8.655-7.708 9.794-7.708 3.644 7.524 4.555 7.34c.912-.183-2.05-9.542-1.593-11.01.455-1.468 0-9.36 0-9.36l-3.416.368zm20.496-.672s-.456 5.297-3.644 8.828-9.794 7.65-9.794 7.65 8.882-4.512 9.793-3.53c.913.98-5.692 8.827-5.692 8.827s8.654-8.24 9.793-8.24 3.645 8.043 4.556 7.847c.91-.196-2.05-10.2-1.594-11.77.455-1.57 0-10.004 0-10.004l-3.416.392zm-28.693-48.045c0 .987-.967 1.788-2.16 1.788s-2.158-.8-2.158-1.788.966-1.787 2.16-1.787 2.158.8 2.158 1.787z" fill-rule="evenodd" fill="#812e00"/> - </g> -</svg> diff --git a/img/flags/4x3/ee.svg b/img/flags/4x3/ee.svg deleted file mode 100644 index e4eead4..0000000 --- a/img/flags/4x3/ee.svg +++ /dev/null @@ -1,7 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" height="480" width="640" viewBox="0 0 640 480"> - <g fill-rule="evenodd" stroke-width="1pt"> - <rect rx="0" ry="0" height="477.9" width="640"/> - <rect rx="0" ry="0" height="159.3" width="640" y="320.7" fill="#fff"/> - <path fill="#1291ff" d="M0 0h640v159.3H0z"/> - </g> -</svg> diff --git a/img/flags/4x3/eg.svg b/img/flags/4x3/eg.svg deleted file mode 100644 index d4bed74..0000000 --- a/img/flags/4x3/eg.svg +++ /dev/null @@ -1,38 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" height="480" width="640" viewBox="0 0 640 480"> - <path d="M0 320h640v160H0z"/> - <path fill="#fff" d="M0 160h640v160H0z"/> - <path fill="#ce1126" d="M0 0h640v160H0z"/> - <g transform="matrix(.8 0 0 .8 -40.004 .002)" fill="#fff" stroke="#c09300"> - <path d="M450.81 302.4l68.488 63.58-4.876-115.47c-.716-17.5-15.924-13.486-26.97-7.173-11.192 7.172-23.96 7.172-37.447 2.437-13.485 4.735-26.253 4.735-37.444-2.437-11.045-6.313-26.25-10.328-26.97 7.172l-4.878 115.47 70.098-63.58z" stroke-width="1.27" stroke-linejoin="round"/> - <path d="M393.47 246.49l-4.734 112.32-8.035 7.168 4.88-115.47c2.294-1.578 6.313-4.017 7.89-4.017zm9.62 8.04l-4.017 93.955-8.032 8.22 4.878-108.49c1.58 1.577 6.314 5.45 7.172 6.31zm8.75 7.17l-3.155 78.362-6.455 6.31 4.018-89.406c1.574 1.578 4.73 3.874 5.592 4.734zm9.47 4.02l-3.156 66.787-6.313 5.12 3.157-74.345c1.58.717 4.735 2.438 6.313 2.438zm8.75 0l-2.297 55.657-6.455 6.313 2.44-61.252c1.575 0 5.593 0 6.312-.718z" id="a" fill="#c09300" stroke="none"/> - <use height="100%" width="100%" xlink:href="#a" transform="matrix(-1 0 0 1 900 0)"/> - <path d="M453.16 315.06l9.613 43.755-3.158 3.155-3.3-2.44-5.45-39.017 2.294 39.018-3.157 4.017-3.157-4.016 2.296-39.017-5.45 39.018-3.303 2.44-3.155-3.155 9.61-43.755h6.315z" fill="#c09300" stroke-width="1.074"/> - <g id="b" fill="none" stroke-width="1.27" stroke-linejoin="round"> - <path d="M428.48 295.84l-19.08 67.705 26.255 4.018 11.188-50.924-18.363-20.8z" fill="#fff" stroke-width="1.189"/> - <path d="M422.17 318.94l2.296 5.593 12.405-11.848"/> - <path d="M430.76 304.92l2.596 24.346 7.89-10.328m-3.156 4.012l4.31 14.875m1.69-5.465l-8.718 13.24m2.72 13.217l-2.79-13.198-2.437-13.424-5.84 7.91-2.562-9.12-8.174 8.385 4.156 15.252 5.738-9.435 3.155 9.612 5.89-9.163"/> - <path d="M414.99 361.97l5.3-7.444 3.452 11.457 4.735-8.032 3.157 9.615"/> - </g> - <use height="100%" width="100%" xlink:href="#b" transform="matrix(-1 0 0 1 900 0)"/> - <g stroke-width="1.27" stroke-linecap="round" stroke-linejoin="round"> - <path d="M450 393.81c19.943 0 39.024-1.578 50.213-4.734 4.735-.86 4.735-3.298 4.735-6.455 4.736-1.577 2.295-7.17 5.595-7.17-3.3.863-4.016-5.594-8.033-4.73 0-5.598-5.596-6.314-10.33-4.74-9.47 3.16-26.255 3.876-42.18 3.876-15.924-.717-32.567-.717-42.18-3.875-4.733-1.574-10.326-.858-10.326 4.74-4.018-.864-4.736 5.593-8.034 4.73 3.3 0 .86 5.593 5.594 7.17 0 3.158 0 5.597 4.878 6.456 11.045 3.156 30.128 4.734 50.068 4.734z" stroke-width="2.378"/> - <path d="M422.89 363.54c6.454.86 13.628 1.578 19.225.86 3.153 0 5.45 5.452-.863 6.314-5.593.715-14.345 0-19.08-.862-4.017-.718-12.768-2.295-18.364-3.876-5.594-2.436-1.576-7.168 1.578-6.452 4.88 1.577 11.192 3.157 17.505 4.016zm54.23 0c-6.457.86-13.628 1.578-19.08.86-3.302 0-5.597 5.452.716 6.314 5.596.715 14.347 0 19.078-.862 4.02-.718 12.77-2.295 18.364-3.876 5.597-2.436 1.58-7.168-1.577-6.452-4.877 1.577-11.19 3.157-17.5 4.016z"/> - <path d="M403.09 360.39c-4.877-.86-7.172 4.732-5.593 7.887.717-1.578 4.017-1.578 4.735-3.155.858-2.437-.718-2.437.858-4.732zm19.08 14.67c0-3.153 3.155-2.765 3.155-5.921 0-1.578-.86-4.02-2.437-4.02-1.58 0-3.158 1.58-3.158 3.157-.718 3.157 2.44 3.63 2.44 6.783zm22.71-9.08c4.73 0 4.262 6.314 1.966 9.47 0-2.295-4.017-3.156-4.017-4.732 0-2.442 3.625-2.442 2.05-4.738zm52.03-5.59c4.878-.86 7.174 4.732 5.595 7.887-.718-1.578-4.017-1.578-4.734-3.155-.86-2.437.72-2.437-.86-4.732zm-19.08 14.67c0-3.153-3.153-2.765-3.153-5.921 0-1.578.86-4.02 2.438-4.02 1.577 0 3.156 1.58 3.156 3.157.72 3.157-2.44 3.63-2.44 6.783zm-22.71-9.08c-4.732 0-4.263 6.314-1.967 9.47 0-2.295 4.015-3.156 4.015-4.732 0-2.442-3.626-2.442-2.048-4.738z"/> - <path d="M404.67 361.97c1.58 0 4.018.718 4.735 1.577l-4.74-1.58zm7.88 2.44c.862 0 4.018.716 5.596 1.575l-5.6-1.58zm28.7 3.15c-1.578 0-4.734 0-5.593.715l5.59-.72zm-8.75 0c-.86-.862-4.016-.862-5.593 0h5.59zm62.84-5.59c-1.578 0-3.875.718-4.735 1.577l4.735-1.577zm-7.89 2.44c-.86 0-4.017.716-5.595 1.575l5.6-1.58zm-28.7 3.15c1.58 0 4.735 0 5.595.715l-5.6-.72zm8.75 0c.86-.862 4.018-.862 5.595 0h-5.6z" stroke-width=".891"/> - <g fill="#c09300" stroke="none"> - <path d="M403.34 374.58c-.534-.102-.815-.525-.68-1.025.164-.61.65-.957 1.112-.794.294.105.83.646.832.84.003.222-.28.752-.402.754-.053 0-.135.046-.182.102-.1.118-.413.175-.68.124zm54.93 3.92c-.2-.074-.515-.518-.515-.724.002-.387.574-1.018.93-1.02.174-.002.654.247.833.433.325.337.254.892-.154 1.207-.2.155-.8.212-1.094.103zm.36 2.48c-.42-.142-.574-.348-.608-.814-.036-.485.012-.56.525-.84l.365-.2.347.155c.478.215.692.446.71.768.017.348-.24.704-.64.883-.353.16-.374.16-.7.05z"/> - <path d="M407.75 370.09c-.346-.01-.82.307-1.094.47-.65.15-1.404.55-2.03.124-.618-.19-1.44-.04-1.532.718.158.652 1.07 1.025 1.625.594.41-.537 1.53-.853 1.655.063-.457.69-.405 1.608-.78 2.343-.062.457-.253.892-.5 1.28-.463.047-.955-.007-1.345.282-.626.034-1.265.345-1.625.875-.403.578-.79 1.165-.906 1.875.106.725.936.933 1.56.97.668.182 1.336.423 2 .624 1.087.242 2.103.634 3.19.874 1.583.477 3.247.697 4.842 1.125.168.054.325.103.5.124.663.137 1.008-.583 1.063-1.125.33-1.16.58-2.34.906-3.5.226-.467.498-1.518-.405-1.282-.515.308-.952.773-1.594.812-.873.05-.374.945-.03 1.313.076.587-.11 1.288-.5 1.75-.52.33-1.172-.057-1.72-.188-.573.01-1.722-.283-1.186-1.062.19-.577.207-1.21.437-1.782.295-.613.337-1.284.47-1.936-.36-.777-.98.256-1.47.344-.337.234-1.604.334-.936.937.575.437.134 1.197.03 1.75-.036.77-.837.954-1.468.78-.628-.03-1.5-.496-.97-1.186.122-.576.323-1.14.44-1.72.236-.698.436-1.363.686-2.062.11-.62.33-1.208.625-1.75.018-.686.478-1.276.47-1.97-.048-.338-.2-.46-.407-.468zm-3.594 7.25a.353.353 0 0 1 .22.03c.25.107.256.31 0 .532-.113.097-.24.19-.282.188-.468-.04-.606-.11-.625-.28-.02-.152.03-.196.342-.345a1.45 1.45 0 0 1 .344-.125zm-1.036 5.02c-.496-.466-.416-.806.317-1.353.314-.234.505-.208.863.12.553.504.575.823.087 1.255-.24.213-.346.257-.627.26-.293.003-.376-.034-.64-.282zm3.05.92a.86.86 0 0 1-.623-1.088c.13-.434.203-.477.84-.483.716-.008.854.11.86.74.005.355-.022.437-.2.6a1.07 1.07 0 0 1-.877.23zm89.11.08c-.227-.19-.273-.274-.275-.515-.003-.41.233-.712.746-.944.683-.307.96-.265 1.217.187.342.6.325.847-.084 1.252-.225.223-.268.236-.785.24-.507.004-.565-.01-.818-.22zm-85.06 1.15c-.364-.097-.552-.37-.557-.807-.004-.334.02-.387.253-.57.152-.118.39-.22.58-.245.266-.037.363-.013.578.138.55.387.668.77.35 1.14-.34.397-.663.488-1.204.344zm21.92.98c-.08-.1-.26-.16-.278-.287.032-.555.06-1.117.236-1.648.096-.523.012-1.07.194-1.58.187-.926.187-1.88.402-2.802.01-.475.055-.95.193-1.406.157-.722.013-1.476.226-2.19-.023-.267.285-.983.556-.56.393.578.91 1.046 1.42 1.517.438.252.036.624-.266.75-.416.163-.517.62-.487 1.022-.058.414-.225.806-.242 1.23-.087.622-.07 1.254-.15 1.876-.183.61-.114 1.26-.174 1.888.01.398-.18.76-.155 1.16-.048.406-.066.894-.407 1.172-.33.166-.804.138-1.068-.142zm29.7-9.8c-.482.365-.914.795-1.344 1.22-.592.448.487.71.625 1.093.158.586.15 1.21.19 1.812.178.552.257 1.138.217 1.72-.05.62-.863.49-1.218.843-.493.207-.69.69-1.064 1.03-.246.484-.312 1.077-.344 1.626.036.448-.302.95 0 1.344.04.055.086.132.125.187.102.145.343.03.5.063.504-.03 1.03.047 1.5-.157 1.21-.208 2.432-.225 3.657-.28.75.024 1.47-.237 2.218-.22.587.13.85-.505.844-.967-.332-.654-.045-1.43-.312-2.094-.235-.674-.143-1.43-.25-2.126-.015-.55-.71-.752-1.063-.344-.34.345-.892.414-1.155.844-.297.602.627.603.78 1.062.177.465.12.98.157 1.47.115.592-.53.625-.937.687-.537.2-1.29.336-1.594-.313-.19-.48-.164-.993-.218-1.5-.013-.892-.227-1.768-.28-2.656-.052-1.097-.242-2.187-.313-3.28-.01-.457-.072-1.2-.72-1.064zm-.625 8.25l.313.03.03.376.032.375-.406.126a3.28 3.28 0 0 1-.407.094 2.55 2.55 0 0 1-.187-.125c-.22-.16-.164-.385.125-.688.163-.17.24-.203.5-.187zm-29.965-9.28c-.38.135-.862.693-1.25.688-.88.062-.757.92-.125 1.218.083.26.005.588.03.875.124.79-.374 1.426-.28 2.22-.044.87-.307 1.718-.344 2.594-.246.903-.25 1.832-.405 2.75-.104.823-.7.533-1.22.312-.003-.356-.026-.705-.03-1.062.216-.817-.44-1.056-1.094-1.156-.685.065-1.022-.523-.874-1.125.295-.35 1.036-.254 1.5-.313.98.204.942-1.112.438-1.562-.345-.636-1.2-.91-1.438-1.563.096-.866-.48-1.732-1.187-2.156-1.09-.077-1.912.862-2.314 1.78-.452.13-.904.267-1.344.438-.71.177-1.72 1.407-.75 1.875.545.15 2.2.528 1.47 1.28-.413.708-1.202.72-1.907.532-.724 0-1.53-.352-1.5-1.187-.148-.75-.123-1.558-.47-2.25-.147-.84-1.1-.643-1.155.125-.733.534-.636 1.397-.125 2.03.32.73.003 1.578-.313 2.25-.19.876-1.155.906-1.843 1.188-.34.132-1.63-.077-1.158.658.754.265 1.653.505 2.438.312.823-.102 1.538-.665 1.938-1.375.552-.56 1.502-.267 2.218-.28.773-.003 1.563.54 2.313.186.216-.563 1.22-1.494 1.53-.53-.053.863.71 1.326 1.5 1.22.864-.05.544.61.53 1.124.058.934.66 1.425 1.44 1.812.264.072.544.048.81 0 .75-.235 1.555-.568 1.782-1.406.304-.68.31-1.45.532-2.156.177-1.13.406-2.26.437-3.406.277-1.04.198-2.136.407-3.188.133-.782.23-1.563.313-2.344-.092-.417-.272-.487-.5-.406zm-6.78 4.156c.15.02.234.204.25.53.015.366.205.662.436.72.183.046.167.24-.03.375-.116.08-.322.128-.688.126-.578-.003-.937-.153-1.25-.47l-.188-.186.28-.188c.143-.108.4-.332.564-.5.285-.29.473-.424.625-.406zm66.03-7.876a8.365 8.365 0 0 0-1.656.25c-1.04-.065-1.563 1.027-.563 1.563.603 1.534 1.542-.317 2.5-.188 1.44.28 1.56 1.832 1.783 3 .08 1.157.414 2.282.75 3.375.962 1.07-.72 1.74-1.438.906-.61-.664-1.92-1.48-2.656-.562-.905.382-.942 1.59-1.69 1.937-1.208.37-1.36-1.118-2-1.75-.586-.823-1.71-.895-2.624-1.186-.43-.87-.205-2.346-1.094-2.938-.745.304-2.113 1.702-.968 2.344 1.117.96-.488 1.4-1 2.063-.732.814-.85 1.936-.97 2.968-1.258.697-1.503-.786-1.655-1.717-.1-1.112-1.037-.786-1.69-.375-.95.385-1.427 1.29-2.092 2-.08.647.037 1.356.03 2.03.217.812 1.203.43 1.813.376.98-.41 1.38.627.595 1.22-.532.675-2.22.32-2.063 1.405.544.062 1.11.042 1.657 0 1.09-.3 2.26-1.07 2.374-2.282.143-1.06 1.667-.866 2.5-1.094 1.04-.3 2.294-.377 2.53.937.71.746 2.25 1.585 3.032.564.795-.485 1.176-1.338 1.125-2.25-.16-.785 1.27-.813 1.626-.375.52.857 2.15.604 2.938.124.836-.617 1.017-1.705 2.218-1.72 1.783-.533 3.635-.84 5.375-1.5 1.41-.306-.21-1.197-.562-1.718-1.074-.53-2.008 1.642-3.22.563-.935-.717-.87-2.078-1.218-3.126-.237-1.358-.177-2.923-1.156-4-.67-.715-1.585-.887-2.53-.844zm-6.813 9.47c.126-.004.268.058.5.186.44.242.75.643.75.97 0 .212-.054.226-.375.374-.197.09-.42.19-.5.188-.18-.002-.624-.357-.625-.5 0-.06-.058-.287-.125-.47-.117-.32-.1-.316.063-.53.103-.138.187-.216.313-.22zm6.532.343c.37-.025.592.09.75.375.18.33.057.58-.408.78-.203.09-.407.16-.437.157-.03-.003-.198-.102-.375-.22-.27-.176-.31-.263-.313-.467-.003-.316.35-.597.782-.625zm-8.94.093c.11-.017.21.04.345.156.18.155.237.28.28.594.033.22.028.502 0 .625-.047.227-.052.217-.56.22-.642.006-.7-.064-.69-.656.01-.377.013-.478.22-.688.16-.162.297-.233.406-.25zm-5.5 1.438a.57.57 0 0 1 .44.437c.064.32.007.463-.25.595-.223.113-.735.15-.876.063a.613.613 0 0 1-.188-.188c-.068-.12-.055-.18.03-.25.062-.05.127-.12.126-.156 0-.037.068-.163.157-.28a.543.543 0 0 1 .56-.22zm9.25 1.187c.18 0 .33.062.44.157.184.163.178.4-.033.563-.135.104-.87.095-1.125 0-.112-.042-.155-.1-.156-.22-.002-.14.038-.226.28-.343.206-.097.417-.155.595-.156zm-17.169 4.819c-.096-.063-.238-.117-.095-.222.173-.302.518-.407.825-.52a3.436 3.436 0 0 0 1.373-1.118c.05-.333.424-.513.422-.86.003-.476.032-.963-.084-1.427-.128-.426-.45-.752-.826-.974-.256-.203-.674-.26-.768-.615-.053-.343.253-.604.36-.91.223-.42.41-.863.65-1.275.26-.288.66-.015.794.263.19.277.357.576.45.897.303.332.57.72.68 1.162.148.31.383.602.37.966 0 .416.234.787.22 1.206.013.56.012 1.145-.192 1.674-.14.294-.42.47-.607.733-.318.296-.67.58-1.08.737-.288.092-.456.426-.818.345-.514.01-1.037.08-1.547-.004.032.054-.156-.092-.125-.058zm-6.85.45c-.243-.25-.295-.355-.298-.6-.003-.248.045-.346.282-.586.44-.443.653-.453 1.41-.07.722.365.967.4 1.032.14.062-.25.478-.48.874-.48a.82.82 0 0 1 .592.202c.25.196.263.227.27.68.004.463-.002.48-.29.736-.278.244-.323.26-.666.224-.437-.043-.7-.244-.77-.588-.052-.25-.14-.31-.206-.14-.02.055-.13.122-.24.15-.203.05-.548.268-.793.5-.093.087-.255.128-.52.13-.354.004-.404-.017-.677-.298zm-19.82-8.9c-.665.007-1.38.566-1.47 1.22.153.75.778 1.488.376 2.28.278 1.013-.76 1.397-1.47.813-.426-.972-.642-2.036-1.28-2.907-.804-.227-1.154 1.057-1.72 1.5.28.755 1.097 1.433 1.19 2.375.194.916-.362 1.932-1.157 2.407-.687.655-1.627.42-2.47.563-1.024.6.752.818 1.22.844 1.046.106 2.134-.032 2.905-.813.77-.366.71-1.696 1.625-1.843 1.588-.07 3.163.244 4.75.282.85.202 2.163-.102 2.75.53.002 1.107.94 1.79 1.844 2.22.498.137 1.024-.48 1.53-.595.966-.308.673-1.502 1.25-1.97 1.65-.088 3.317-.07 4.97-.093.314.008.407-.44.625-.625-.038-.638-.06-1.272-.158-1.906-.318-.805.052-1.843-.53-2.53-.83-.226-1.537.534-2.376.594-.926.412-1.706 1.268-1.75 2.312-.548.897-1.427-.16-1.125-.906-.033-.325.072-.704-.03-1-.507-.608-1.395-.41-2.094-.5-1.018.04-2.012-.18-3.03-.156-.894-.068-1.823.078-2.688-.156-1.032-.03-.89-1.04-1.063-1.75a1.018 1.018 0 0 0-.625-.188zm2 3.688c.343.006.667.05 1 .093.43.072.89-.147 1.313 0 .976.167 1.953.128 2.937.22.26-.004.446.185.625.344.002.683 0 1.38 0 2.062-.03.258.076.598-.156.78a.7.7 0 0 1-.25.126c-.272-.07-.56-.247-.69-.5-.04-.357.02-.704.032-1.062-.007-.093.04-.237 0-.313a1.248 1.248 0 0 0-.718-.25c-.85-.03-1.682-.09-2.53-.125-.708-.044-1.435.06-2.127-.125-.268-.097-.617-.064-.78-.343-.235-.273.103-.597.343-.72a2.28 2.28 0 0 1 1-.187zm11.28.25c.16-.003.21.05.282.343.046.19.1.418.125.5.037.12-.022.157-.187.22-.494.186-.986.168-1.156-.063-.078-.104.012-.434.156-.562.29-.26.61-.437.78-.438z"/> - </g> - </g> - <path d="M449.98 327.23c32.642-25.106 29.843-61.883 29.843-61.883-.86.172-1.68.258-2.54.258-6.848 0-23.18-3.917-26.99-8.892-4.08 4.503-20.77 8.892-27.573 8.892-.86 0-1.722-.086-2.54-.258 0 0-2.843 36.776 29.8 61.883z" stroke-width="1.15"/> - <path d="M477.22 268.04c-.28.018-.563.026-.848.026-6.205 0-20.62-3.183-26.175-7.957-5.82 4.41-20.47 7.956-26.576 7.956a4.7 4.7 0 0 1-.848-.086c-.015 1.39.058 2.832.144 4.144.323 4.9 1.183 9.82 2.488 14.552 4.108 14.895 12.516 27.553 24.572 37.155 12.066-9.61 20.484-22.28 24.6-37.185 1.308-4.732 2.17-9.65 2.496-14.55.086-1.285.157-2.692.148-4.055z" stroke-width=".916"/> - <path d="M439.38 265.03c-5.872 1.845-12.23 3.03-15.75 3.03-.286 0-.563-.04-.844-.093-.014 1.39.07 2.846.156 4.157a72.77 72.77 0 0 0 2.47 14.53c2.764 10.026 7.506 19.033 13.968 26.782V265.03zm20.62-.09v49.25c6.794-7.92 11.733-17.206 14.594-27.562a72.952 72.952 0 0 0 2.47-14.53c.084-1.285.165-2.7.155-4.064-.282.018-.56.032-.845.032-3.73 0-10.42-1.17-16.375-3.125z" fill="#c09300" stroke="none"/> - <g stroke-width="1.27"> - <path d="M462.31 253.09c.667.04-.902-3.568-.902-3.568 1.765 1.804 8.43 2.235 8.43 2.235-4-1.766-7.998-15.096-7.528-25.72.432-10.665-1.528-14.86-3.097-16.43-2-2-8.43-3.763-12.664-3.998-2.393-.12-2 1.802-2 1.802-4.43-1.137-8.86-1.568-10.862-.235-1.882 1.255-2.274 7.528-.9 6.43 3.33-2.666 6.233-.235 8.232 2.666 1.764 2.55 1.647 9.763-.902 18.192-2.666 8.86-9.96 17.722-9.96 17.722 3.96 0 9.53-3.528 9.53-3.528l-1.334 5.527c4.195-2 7.528-5.097 7.528-5.097l4 4.195c1.332-1.764 3.998-4.195 3.998-4.195s3.333 3.53 8.43 4z" stroke-width="1.218"/> - <path d="M446.12 227.57s-2.235 16.428-6.43 21.094m9.96-21.524s-.863 16.623-3.764 21.956m6.894-21.286s0 18.192 1.098 21.29m2.862-20.39s.902 15.29 4.666 20.82" fill="none"/> - <path d="M442.08 219.61c-.196-1.45-.55-2.588-1.06-3.333-1.998-2.9-4.9-5.332-8.232-2.666 0 0 1.137-3.528 3.568-3.645 1.882-.118 6.155 1.41 9.92 7.84 0 0-2.784-.626-3.45-.038-1.256 1.098-.746 1.843-.746 1.843z" fill="#c09300" stroke-width=".354"/> - <path d="M432.44 209.26c.274-.902.706-1.725 1.255-2.078 2-1.333 6.43-.902 10.86.235 0 0-.392-1.92 2-1.803 4.234.235 10.664 2 12.663 4 .47.51 1.02 1.254 1.49 2.39h-.078c-.98-1.372-3.764-1.293-4.43-1.215-1.06.117-1.726.077-3.138.43-.666.157-1.686.353-2.235.784-.43.353-.784 1.647-1.45 1.647-1.06 0-.98-.273-1.255-.587-.353-.43-.55-1.06-.902-1.02-1.097.197-2.862-.666-5.096-2.43-2.235-1.765-3.098-2.196-6-2-2.86.235-3.763 1.843-3.763 1.843l.08-.196z" fill="#c09300" stroke-width=".354"/> - <circle cx="448.824" cy="210.672" r="1.176" stroke="none"/> - </g> - </g> -</svg> diff --git a/img/flags/4x3/eh.svg b/img/flags/4x3/eh.svg deleted file mode 100644 index efdd83b..0000000 --- a/img/flags/4x3/eh.svg +++ /dev/null @@ -1,15 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" height="480" width="640" viewBox="0 0 640 480"> - <defs> - <clipPath id="a"> - <path fill-opacity=".67" d="M-158.67 0H524v512h-682.67z"/> - </clipPath> - </defs> - <g clip-path="url(#a)" fill-rule="evenodd" transform="translate(148.75) scale(.94)"> - <path d="M-180 0H844v256H-180z"/> - <path fill="#107b00" d="M-180 256H844v256H-180z"/> - <path fill="#fff" d="M-180 169.31H844v176.13H-180z"/> - <path d="M309.98 195.55c-45.202-19.423-84.107 20.644-84.063 58.085.046 39.158 38.02 80.92 86.168 62.43-34.087-10.037-48.156-35.215-48.15-60.68-.245-25.216 15.887-54.54 46.045-59.835z" fill="#f0f"/> - <path fill="#ff1800" d="M363.145 294.214l-25.835-18.868-25.993 18.898 9.963-30.403-26-18.87 31.984.07 9.93-30.552 9.816 30.435 32.115.005-25.924 18.735"/> - <path d="M314.34 315.65c-50.517 17.536-88.554-20.48-89.216-59.456-.66-38.976 37.59-79.167 89.473-60.865-29.355 4.352-50.912 30.08-51.17 59.168-.196 21.994 12.812 53.345 50.913 61.152zM-179.98 0l348.61 256.62L-180 512l.002-509.38.015-2.622z" fill="red"/> - </g> -</svg> diff --git a/img/flags/4x3/er.svg b/img/flags/4x3/er.svg deleted file mode 100644 index 4a2b17c..0000000 --- a/img/flags/4x3/er.svg +++ /dev/null @@ -1,8 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" height="480" width="640" viewBox="0 0 640 480"> - <g fill-rule="evenodd"> - <path fill="#be0027" d="M-.002 0h640.008v480H-.002z"/> - <path d="M-.002 480l640.008-.3-.032-239.7L-.002 480z" fill="#b4d7f4"/> - <path d="M-.002 0l640.008.3-.032 239.7L-.002 0z" fill="#239e46"/> - <path d="M186.23 360.4c-10.713 2.958-16.854 11.27-16.697 19.11l52.73-.21c.475-8.427-6.457-16.22-17.01-19.29 51.627-1.065 96.478-20.404 104.63-32.813-8.066-3.5-17.392 2.134-24.04.837 15.784-7.295 63.073-37.903 55.384-70.717-5.976 18.226-24.08 33.306-31.79 37.354 17.664-26.822 41.785-54.748 20.858-76.373 1.057 12.533-7.965 26.327-11.95 27.364 10.248-28.34 20.025-63.925-2.177-87.383 2.916 8.48 1.738 32.396-2.276 33.47-1.236-19.27-4.525-59.807-24.82-59.23 6.445 5.738 9.266 21.4 9.41 37.22-4.626-10.838-9.883-18.998-21.126-27-9.095-17.444-25.28-31.897-41.464-42.25 1.817 12.696 3.32 22.713 21.048 35.882-9.243-.576-18.484-18.098-28.362-18.583-7.857-.38-14.024 7.12-26.864 2.805 1.422 4.238 7.412 6.115 8.676 9.25-2.75 1.9-9.28-.296-14.707-3.123 7.467 10.17 19.036 16.15 28.858 14.13 11.682-2.245 24.205-1.057 36.15 5.74-3.05 1.567-14.925 1.556-22.545.603 6.927 7.013 11.572 11.66 23.615 11.584 10.757-.07 16.397-5.74 19.16-2.228 6.746 7.993 11.286 15.984 16.93 25.397-12.467 1.377-8.708-14.1-22.593-22.016-7.8 16.148 8.973 35.29 20.39 43.245.155 12.136 1.93 22.29 7.077 31.53 3.47 6.515 7.956 13.184 6.264 27.887-6.835-4.98-13.515-21.768-11.058-35.096-8.555 2.333-11.9 17.377-7.867 24.95 3.012 5.764 5.022 16.798 1.548 21.73-3.384 4.595-3.74 4.08-3.695 13.943.12 5.9-3.175 12.88-8.545 17.745 1.12-4.158 2.4-11.312 1.158-15.784-4.245 7.2-14.893 14.652-18.246 22.392-3.293 7.76-4.128 21.198-20.062 24.297-20.5 4.068-27.575 7.62-40.766 13.018-1.464-10.02 2.917-30.912 11.295-29.72 8.18 1.455 32.98-8.546 24.108-29.44-1.753 6.586-7.598 13.012-13.917 13.297 6.828-8.858 19.013-18.03 13.08-32.872-3.3 6.31-8.488 13.88-16.355 18.14 8.434-16.162.98-20.997-9.036-7.685-3.783 5.135-6.068 15.427-8.47 28.497-3.935-10.63-3.675-24.623-8.337-35.985-4.87-12.287 6.463-15.532 11.796-14.546 13.057 3.486 34.88 3.484 33.258-18.088-5.64 7.297-15.53 9.55-26.21 6.924 11.995-8.76 21.466-25.234 8.1-33.836-.446 9.12-7.505 19.35-16.93 24.06-2.205-7.698-2.205-15.865-.314-24.82-5.262 5.538-9.105 17.064-12.162 30.166-.23-12.95 2.22-22.282 4.037-29.25 2.753-10.175 9.6-3.554 20.078-2.804 10.092.572 23.986-5.005 21.33-18.69-3.445 5.415-10.518 7.522-17.745 6.95 8.7-5.272 23.86-14.638 15.546-29.044-3.493 5.456-4.624 10.124-14.732 11.798 2.647-6.09 3.087-14.7 10.933-18.11-13.994-2.787-22.007 6.397-26.08 20.78-1.65-9.972-3.617-13.643-4.008-20.94 7.565-8.4 8.357-24.838-8.02-28.514-.973 8.48-.685 10.5 1.178 17.403-7.688-4.568-18.524-7.088-25.738-.63 4.888 5.275 12.453 9.918 24.113 4.166-2.754 9.01-9.918 7.468-19.762 4.032 6.017 11.302 13.61 13.31 21.99 12.007 4.388 11.568 4.58 20.357-8.24 37.203.592-10.47-.152-18.268-8.47-26.732-7.127-6.98-12.92.3-1.78 15.818-6.758-4.976-14.406-15.076-16.708-25.174-2.228 12.475-.222 27.178 6.684 35.42-3.268 3.492-6.982-.37-12.476-8.91 2.078 27.328 13.737 32.6 29.406 26.51.445 15 .445 28.888 1.336 47.007-9.136-13.142-20.718-22.946-27.18-25.396-2.004 7.353 5.572 16.93 9.804 22.277-6.46-1.337-20.496-12.03-20.496-12.03-1.412 12.18 14.334 23.467 24.506 28.516-11.955-.52-17.23-5.05-24.952-12.475.15 33.788 36.608 27.92 43.442 22.722.89 16.635 2.16 35.864 3.053 52.5-10.307-1.8-9.497-4.898-18.316-5.715-24.478-.954-43.895-29.384-50.325-50.297-1.845 3.442-.382 7.043-2.07 11.27-3.973-10.264-9.05-23.52-15.86-29.69 1.735 5.983 1.918 12.065 1.315 23.25-2.337-7.248-4.51-9.47-4.667-17.977.15-6.53 6.3-11.35 5.96-20.535-.252-6.706-6.37-21.242-7.27-32.495-2.96 11.582-4.82 23.79-9.357 30.96 2.255-12.367 1.532-20.902 5.346-29.226 4.404-8.763 8.15-16.586 5.217-25.43-2.813 3.416-1.845 6.52-8.912 14.818-1.535-9.025 9.138-23.47 19.496-29.277 7.306-3.85 16.515-17.617 10.516-27.053-6.87 4.934-9.955 11.6-19.66 22.99 6.923-27.06 24.91-34.138 46.44-34.23 4.765-.023 14.37-1.743 17.067-8.048-6.07 2.343-13.245 2.64-19.63 1.363 4.646-6.823 14.434-5.936 23.554-5.977 7.154-.034 18.322-1.004 22.837-11.193-8.727 3.78-22.337 4.567-30.906 1.89 13.628-7.062 34.975-7.822 45.924-17.088-12.48-9.315-43.706 2.168-63.43 15.696 5.512-5.04 14.225-13.983 19.032-21.202-10.787-5.172-38.068 25.05-47.466 43.008-8.927 5.04-12.497 12.943-15.963 18.457 4.756-16.073 5.26-27.736 9.228-40.97-30.6 10.532-17.88 67.068-24.536 80.594.784-14.933.15-34.116-6-44.008-9.423 7.19-10.184 49.51-1.335 84.74-3.196-9.43-9.226-18.23-11.16-29.705-13.95 25.44 8.175 55.454 26.677 79.162-13.93-7.255-27.7-22.86-36.747-35.94 2.496 45.532 50.046 54.992 57.427 66.183-10.02-4.664-29.173-13.892-37.3-4.223 13.23 3.055 23.785 6.586 32.29 12.16 12.34 15.407 35.707 22.145 76.403 23.847z" fill="#f3e295"/> - </g> -</svg> diff --git a/img/flags/4x3/es-ct.svg b/img/flags/4x3/es-ct.svg deleted file mode 100644 index cc6f6bc..0000000 --- a/img/flags/4x3/es-ct.svg +++ /dev/null @@ -1,4 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" height="480" width="640" viewBox="0 0 640 480"> - <path fill="#fcdd09" d="M0 0h640v480H0z"/> - <path d="M0 90h810m0 120H0m0 120h810m0 120H0" stroke="#da121a" stroke-width="60" transform="matrix(.79012 0 0 .88889 0 0)"/> -</svg> diff --git a/img/flags/4x3/es.svg b/img/flags/4x3/es.svg deleted file mode 100644 index 3a9dcd2..0000000 --- a/img/flags/4x3/es.svg +++ /dev/null @@ -1,581 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" height="480" width="640" viewBox="0 0 640 480"> - <path fill="#c60b1e" d="M0 0h640v480H0z"/> - <path fill="#ffc400" d="M0 120h640v240H0z"/> - <path d="M127.27 213.35s-.49 0-.76-.152c-.27-.157-1.084-.927-1.084-.927l-.652-.463-.593-.822s-.704-1.124-.38-2c.323-.873.866-1.183 1.356-1.44.49-.255 1.515-.564 1.515-.564s.818-.358 1.088-.412c.27-.05 1.25-.307 1.25-.307s.27-.152.54-.255c.273-.102.65-.102.87-.156.216-.053.76-.227 1.084-.244.504-.02 1.303.09 1.576.09.27 0 1.193.053 1.57.053.378 0 1.735-.106 2.116-.106.378 0 .652-.047 1.088 0 .432.05 1.19.306 1.41.412.217.103 1.52.566 2.006.72.49.15 1.684.357 2.228.614.54.26.87.692 1.14 1.052.274.36.324.75.433 1.01.102.255.106.807.003 1.064-.11.255-.494.784-.494.784l-.6.974-.757.614s-.544.518-.975.463c-.437-.043-4.832-.82-7.654-.82s-7.328.82-7.328.82" fill="#ad1519"/> - <path d="M127.27 213.35s-.49 0-.76-.152c-.27-.157-1.084-.927-1.084-.927l-.652-.463-.593-.822s-.704-1.124-.38-2c.323-.873.866-1.183 1.356-1.44.49-.255 1.515-.564 1.515-.564s.818-.358 1.088-.412c.27-.05 1.25-.307 1.25-.307s.27-.152.54-.255c.273-.102.65-.102.87-.156.216-.053.76-.227 1.084-.244.504-.02 1.303.09 1.576.09.27 0 1.193.053 1.57.053.378 0 1.735-.106 2.116-.106.378 0 .652-.047 1.088 0 .432.05 1.19.306 1.41.412.217.103 1.52.566 2.006.72.49.15 1.684.357 2.228.614.54.26.87.692 1.14 1.052.274.36.324.75.433 1.01.102.255.106.807.003 1.064-.11.255-.494.784-.494.784l-.6.974-.757.614s-.544.518-.975.463c-.437-.043-4.832-.82-7.654-.82s-7.328.82-7.328.82h.004z" fill="none" stroke="#000" stroke-width=".25" stroke-linejoin="round"/> - <path d="M133.306 207.055c0-1.326.593-2.396 1.324-2.396.73 0 1.325 1.07 1.325 2.395 0 1.32-.595 2.393-1.325 2.393s-1.324-1.073-1.324-2.393" fill="#c8b100"/> - <path d="M133.306 207.055c0-1.326.593-2.396 1.324-2.396.73 0 1.325 1.07 1.325 2.395 0 1.32-.595 2.393-1.325 2.393s-1.324-1.073-1.324-2.393z" fill="none" stroke="#000" stroke-width=".25"/> - <path d="M134.047 207.055c0-1.22.274-2.208.608-2.208.34 0 .608.99.608 2.208 0 1.21-.27 2.2-.608 2.2-.334 0-.608-.99-.608-2.2" fill="#c8b100"/> - <path d="M134.047 207.055c0-1.22.274-2.208.608-2.208.34 0 .608.99.608 2.208 0 1.21-.27 2.2-.608 2.2-.334 0-.608-.99-.608-2.2z" fill="none" stroke="#000" stroke-width=".25"/> - <path d="M133.762 204.522c0-.46.396-.842.886-.842s.886.382.886.842c0 .464-.396.835-.886.835s-.886-.37-.886-.835" fill="#c8b100"/> - <path d="M135.274 204.226v.558h-1.37v-.558h.448v-1.258h-.593v-.556h.592v-.545h.583v.545h.59v.556h-.59v1.258h.34" fill="#c8b100"/> - <path d="M135.274 204.226v.558h-1.37v-.558h.448v-1.258h-.593v-.556h.592v-.545h.583v.545h.59v.556h-.59v1.258h.34" fill="none" stroke="#000" stroke-width=".288"/> - <path d="M135.886 204.226v.558h-2.433v-.558h.9v-1.258h-.594v-.556h.592v-.545h.583v.545h.59v.556h-.59v1.258h.95" fill="#c8b100"/> - <path d="M135.886 204.226v.558h-2.433v-.558h.9v-1.258h-.594v-.556h.592v-.545h.583v.545h.59v.556h-.59v1.258h.95" fill="none" stroke="#000" stroke-width=".288"/> - <path d="M134.903 203.715c.368.102.63.426.63.807 0 .464-.395.835-.885.835s-.886-.37-.886-.835c0-.388.277-.72.656-.81" fill="none" stroke="#000" stroke-width=".25"/> - <path d="M134.65 213.198h-4.614l-.106-1.132-.217-1.18-.23-1.472c-1.272-1.678-2.44-2.78-2.834-2.543.093-.31.205-.54.45-.684 1.13-.672 3.462.94 5.216 3.59.158.24.31.483.443.726h3.81c.137-.24.288-.48.446-.727 1.75-2.648 4.085-4.26 5.212-3.59.245.144.357.376.454.686-.395-.23-1.562.866-2.84 2.544l-.227 1.473-.216 1.18-.106 1.13h-4.64" fill="#c8b100"/> - <path d="M134.65 213.198h-4.614l-.106-1.132-.217-1.18-.23-1.472c-1.272-1.678-2.44-2.78-2.834-2.543.093-.31.205-.54.45-.684 1.13-.672 3.462.94 5.216 3.59.158.24.31.483.443.726h3.81c.137-.24.288-.48.446-.727 1.75-2.648 4.085-4.26 5.212-3.59.245.144.357.376.454.686-.395-.23-1.562.866-2.84 2.544l-.227 1.473-.216 1.18-.106 1.13h-4.643z" fill="none" stroke="#000" stroke-width=".25"/> - <path d="M126.852 206.827c.867-.51 2.893 1.095 4.538 3.59m11.087-3.59c-.87-.51-2.894 1.095-4.54 3.59" fill="none" stroke="#000" stroke-width=".25"/> - <path d="M127.834 215.28c-.19-.548-.554-1.04-.554-1.04 1.868-.548 4.47-.892 7.364-.9 2.89.008 5.515.352 7.38.9l-.498.88c-.162.284-.373.777-.36.777-1.687-.517-3.862-.783-6.536-.786-2.67.004-5.24.33-6.58.822.014 0-.093-.31-.227-.65h.01" fill="#c8b100"/> - <path d="M127.834 215.28c-.19-.548-.554-1.04-.554-1.04 1.868-.548 4.47-.892 7.364-.9 2.89.008 5.515.352 7.38.9l-.498.88c-.162.284-.373.777-.36.777-1.687-.517-3.862-.783-6.536-.786-2.67.004-5.24.33-6.58.822.014 0-.093-.31-.227-.65h.01" fill="none" stroke="#000" stroke-width=".25"/> - <path d="M134.644 217.657c2.333-.004 4.906-.358 5.853-.603.638-.185 1.007-.47.94-.802-.032-.156-.17-.292-.353-.37-1.397-.447-3.906-.764-6.44-.768-2.53.004-5.057.32-6.45.767-.183.08-.32.216-.352.372-.07.33.302.617.935.802.95.245 3.535.6 5.867.603" fill="#c8b100"/> - <path d="M134.644 217.657c2.333-.004 4.906-.358 5.853-.603.638-.185 1.007-.47.94-.802-.032-.156-.17-.292-.353-.37-1.397-.447-3.906-.764-6.44-.768-2.53.004-5.057.32-6.45.767-.183.08-.32.216-.352.372-.07.33.302.617.935.802.95.245 3.535.6 5.867.603z" fill="none" stroke="#000" stroke-width=".25"/> - <path d="M142.143 213.198l-.572-.514s-.54.333-1.22.23c-.677-.1-.896-.922-.896-.922s-.76.636-1.383.59c-.622-.056-1.03-.59-1.03-.59s-.675.483-1.273.436c-.597-.055-1.166-.798-1.166-.798s-.596.77-1.193.825c-.598.048-1.088-.52-1.088-.52s-.27.568-1.03.693c-.76.13-1.408-.59-1.408-.59s-.435.696-.95.877c-.514.18-1.195-.26-1.195-.26s-.11.26-.187.413c-.083.154-.3.182-.3.182l.17.46c1.86-.54 4.38-.873 7.23-.876 2.856.003 5.444.337 7.31.88l.19-.516" fill="#c8b100"/> - <path d="M142.143 213.198l-.572-.514s-.54.333-1.22.23c-.677-.1-.896-.922-.896-.922s-.76.636-1.383.59c-.622-.056-1.03-.59-1.03-.59s-.675.483-1.273.436c-.597-.055-1.166-.798-1.166-.798s-.596.77-1.193.825c-.598.048-1.088-.52-1.088-.52s-.27.568-1.03.693c-.76.13-1.408-.59-1.408-.59s-.435.696-.95.877c-.514.18-1.195-.26-1.195-.26s-.11.26-.187.413c-.083.154-.3.182-.3.182l.17.46c1.86-.54 4.38-.873 7.23-.876 2.856.003 5.444.337 7.31.88l.19-.516h-.008z" fill="none" stroke="#000" stroke-width=".25"/> - <path d="M134.66 210.712l.268.05a.977.977 0 0 0-.053.356c0 .56.478 1.013 1.073 1.013.474 0 .874-.293 1.015-.698.018.01.104-.368.147-.362.032 0 .028.393.046.386.066.507.533.856 1.06.856.59 0 1.063-.453 1.063-1.012 0-.042 0-.083-.007-.123l.335-.335.183.426c-.073.13-.1.28-.1.44 0 .536.46.97 1.02.97.355 0 .664-.175.85-.434l.215-.273-.004.34c0 .332.145.632.473.687 0 0 .37.027.875-.368.496-.393.77-.72.77-.72l.03.402s-.487.804-.934 1.06c-.242.143-.617.293-.91.24-.31-.046-.533-.298-.65-.584-.22.132-.48.207-.762.207-.605 0-1.148-.334-1.363-.827-.28.3-.664.48-1.118.48a1.56 1.56 0 0 1-1.202-.552 1.547 1.547 0 0 1-1.05.406 1.564 1.564 0 0 1-1.282-.66c-.27.393-.745.66-1.278.66-.407 0-.778-.154-1.05-.406a1.56 1.56 0 0 1-1.204.552 1.49 1.49 0 0 1-1.116-.48c-.215.49-.76.827-1.364.827-.28 0-.543-.075-.763-.207-.115.286-.338.538-.648.585-.295.052-.665-.098-.91-.24-.447-.257-.973-1.06-.973-1.06l.07-.404s.276.327.77.72c.5.394.874.367.874.367.328-.055.472-.355.472-.688l-.004-.34.215.274c.183.26.494.433.85.433.56 0 1.017-.433 1.017-.968a.909.909 0 0 0-.096-.442l.18-.426.335.335a.71.71 0 0 0-.01.123c0 .56.476 1.012 1.07 1.012.525 0 .99-.35 1.058-.856.014.007.01-.386.046-.386.042-.007.132.373.147.362.14.405.543.7 1.018.7.59 0 1.07-.455 1.07-1.014a.91.91 0 0 0-.055-.357l.28-.048" fill="#c8b100"/> - <path d="M134.66 210.712l.268.05a.977.977 0 0 0-.053.356c0 .56.478 1.013 1.073 1.013.474 0 .874-.293 1.015-.698.018.01.104-.368.147-.362.032 0 .028.393.046.386.066.507.533.856 1.06.856.59 0 1.063-.453 1.063-1.012 0-.042 0-.083-.007-.123l.335-.335.183.426c-.073.13-.1.28-.1.44 0 .536.46.97 1.02.97.355 0 .664-.175.85-.434l.215-.273-.004.34c0 .332.145.632.473.687 0 0 .37.027.875-.368.496-.393.77-.72.77-.72l.03.402s-.487.804-.934 1.06c-.242.143-.617.293-.91.24-.31-.046-.533-.298-.65-.584-.22.132-.48.207-.762.207-.605 0-1.148-.334-1.363-.827-.28.3-.664.48-1.118.48a1.56 1.56 0 0 1-1.202-.552 1.547 1.547 0 0 1-1.05.406 1.564 1.564 0 0 1-1.282-.66c-.27.393-.745.66-1.278.66-.407 0-.778-.154-1.05-.406a1.56 1.56 0 0 1-1.204.552 1.49 1.49 0 0 1-1.116-.48c-.215.49-.76.827-1.364.827-.28 0-.543-.075-.763-.207-.115.286-.338.538-.648.585-.295.052-.665-.098-.91-.24-.447-.257-.973-1.06-.973-1.06l.07-.404s.276.327.77.72c.5.394.874.367.874.367.328-.055.472-.355.472-.688l-.004-.34.215.274c.183.26.494.433.85.433.56 0 1.017-.433 1.017-.968a.909.909 0 0 0-.096-.442l.18-.426.335.335a.71.71 0 0 0-.01.123c0 .56.476 1.012 1.07 1.012.525 0 .99-.35 1.058-.856.014.007.01-.386.046-.386.042-.007.132.373.147.362.14.405.543.7 1.018.7.59 0 1.07-.455 1.07-1.014a.91.91 0 0 0-.055-.357l.28-.048h.008z" fill="none" stroke="#000" stroke-width=".25"/> - <path d="M134.644 213.345c-2.893.003-5.496.347-7.36.9-.127.04-.28-.056-.32-.168-.04-.118.05-.265.172-.306 1.875-.572 4.542-.933 7.508-.936 2.963.003 5.64.364 7.516.937.123.042.212.19.173.307-.036.112-.194.208-.317.168-1.867-.553-4.48-.897-7.372-.9" fill="#c8b100"/> - <path d="M134.644 213.345c-2.893.003-5.496.347-7.36.9-.127.04-.28-.056-.32-.168-.04-.118.05-.265.172-.306 1.875-.572 4.542-.933 7.508-.936 2.963.003 5.64.364 7.516.937.123.042.212.19.173.307-.036.112-.194.208-.317.168-1.867-.553-4.48-.897-7.372-.9z" fill="none" stroke="#000" stroke-width=".25" stroke-linejoin="round"/> - <path d="M131.844 214.37c0-.217.187-.395.42-.395.232 0 .418.178.418.396 0 .222-.186.395-.418.395-.233 0-.42-.173-.42-.394" fill="#fff"/> - <path d="M131.844 214.37c0-.217.187-.395.42-.395.232 0 .418.178.418.396 0 .222-.186.395-.418.395-.233 0-.42-.173-.42-.394z" fill="none" stroke="#000" stroke-width=".25"/> - <path d="M134.677 214.542h-.93c-.17 0-.315-.137-.315-.3 0-.162.14-.294.31-.294h1.884a.3.3 0 0 1 .31.293c0 .165-.14.302-.313.302h-.946" fill="#ad1519"/> - <path d="M134.677 214.542h-.93c-.17 0-.315-.137-.315-.3 0-.162.14-.294.31-.294h1.884a.3.3 0 0 1 .31.293c0 .165-.14.302-.313.302h-.946" fill="none" stroke="#000" stroke-width=".25"/> - <path d="M130.015 214.86l-.665.1c-.17.024-.335-.085-.36-.248a.296.296 0 0 1 .26-.334l.668-.1.685-.105c.17-.02.327.086.356.246a.305.305 0 0 1-.264.336l-.68.105" fill="#058e6e"/> - <path d="M130.015 214.86l-.665.1c-.17.024-.335-.085-.36-.248a.296.296 0 0 1 .26-.334l.668-.1.685-.105c.17-.02.327.086.356.246a.305.305 0 0 1-.264.336l-.68.105" fill="none" stroke="#000" stroke-width=".25"/> - <path d="M127.326 215.328l.296-.476.63.12-.368.535-.558-.18" fill="#ad1519"/> - <path d="M127.326 215.328l.296-.476.63.12-.368.535-.558-.18" fill="none" stroke="#000" stroke-width=".25"/> - <path d="M136.61 214.37c0-.217.187-.395.42-.395.23 0 .418.178.418.396a.404.404 0 0 1-.417.395c-.233 0-.42-.173-.42-.394" fill="#fff"/> - <path d="M136.61 214.37c0-.217.187-.395.42-.395.23 0 .418.178.418.396a.404.404 0 0 1-.417.395c-.233 0-.42-.173-.42-.394z" fill="none" stroke="#000" stroke-width=".25"/> - <path d="M139.276 214.86l.67.1a.314.314 0 0 0 .357-.248.294.294 0 0 0-.256-.334l-.673-.1-.68-.105c-.173-.02-.33.086-.357.246-.03.158.09.312.263.336l.676.105" fill="#058e6e"/> - <path d="M139.276 214.86l.67.1a.314.314 0 0 0 .357-.248.294.294 0 0 0-.256-.334l-.673-.1-.68-.105c-.173-.02-.33.086-.357.246-.03.158.09.312.263.336l.676.105" fill="none" stroke="#000" stroke-width=".25"/> - <path d="M141.91 215.356l-.236-.508-.648.054.31.57.575-.116" fill="#ad1519"/> - <path d="M141.91 215.356l-.236-.508-.648.054.31.57.575-.116" fill="none" stroke="#000" stroke-width=".25"/> - <path d="M134.636 217.115c-2.334-.003-4.447-.208-6.053-.623 1.606-.413 3.72-.67 6.053-.675 2.337.003 4.46.26 6.07.675-1.61.415-3.733.62-6.07.623" fill="#ad1519"/> - <path d="M134.636 217.115c-2.334-.003-4.447-.208-6.053-.623 1.606-.413 3.72-.67 6.053-.675 2.337.003 4.46.26 6.07.675-1.61.415-3.733.62-6.07.623z" fill="none" stroke="#000" stroke-width=".25" stroke-linejoin="round"/> - <path d="M142.005 212.05c.06-.18.004-.36-.125-.404-.13-.036-.288.08-.35.253-.06.183-.008.365.126.405.13.037.284-.075.35-.255" fill="#c8b100"/> - <path d="M142.005 212.05c.06-.18.004-.36-.125-.404-.13-.036-.288.08-.35.253-.06.183-.008.365.126.405.13.037.284-.075.35-.255z" fill="none" stroke="#000" stroke-width=".25"/> - <path d="M137.355 211.15c.02-.188-.07-.355-.205-.372-.138-.017-.267.126-.288.314-.025.187.065.354.2.37.14.014.268-.13.293-.312" fill="#c8b100"/> - <path d="M137.355 211.15c.02-.188-.07-.355-.205-.372-.138-.017-.267.126-.288.314-.025.187.065.354.2.37.14.014.268-.13.293-.312z" fill="none" stroke="#000" stroke-width=".25"/> - <path d="M131.95 211.15c-.02-.188.07-.355.208-.372.136-.017.266.126.29.314.023.187-.068.354-.205.37-.133.014-.267-.13-.292-.312" fill="#c8b100"/> - <path d="M131.95 211.15c-.02-.188.07-.355.208-.372.136-.017.266.126.29.314.023.187-.068.354-.205.37-.133.014-.267-.13-.292-.312z" fill="none" stroke="#000" stroke-width=".25"/> - <path d="M127.3 212.05c-.06-.18-.003-.36.128-.404.13-.036.287.08.348.253.062.183.007.365-.126.405-.13.037-.285-.075-.35-.255" fill="#c8b100"/> - <path d="M127.3 212.05c-.06-.18-.003-.36.128-.404.13-.036.287.08.348.253.062.183.007.365-.126.405-.13.037-.285-.075-.35-.255z" fill="none" stroke="#000" stroke-width=".25"/> - <path d="M134.636 208.463l-.823.497.612 1.326.21.14.21-.14.616-1.326-.824-.497" fill="#c8b100"/> - <path d="M134.636 208.463l-.823.497.612 1.326.21.14.21-.14.616-1.326-.824-.497" fill="none" stroke="#000" stroke-width=".25"/> - <path d="M132.834 210.468l.374.546 1.288-.397.134-.18-.138-.185-1.284-.375-.374.59" fill="#c8b100"/> - <path d="M132.834 210.468l.374.546 1.288-.397.134-.18-.138-.185-1.284-.375-.374.59" fill="none" stroke="#000" stroke-width=".25"/> - <path d="M136.45 210.468l-.373.546-1.29-.397-.136-.18.14-.185 1.287-.375.374.59" fill="#c8b100"/> - <path d="M136.45 210.468l-.373.546-1.29-.397-.136-.18.14-.185 1.287-.375.374.59" fill="none" stroke="#000" stroke-width=".25"/> - <path d="M129.28 209.053l-.647.61.827 1.092.22.087.162-.167.288-1.318-.85-.304" fill="#c8b100"/> - <path d="M129.28 209.053l-.647.61.827 1.092.22.087.162-.167.288-1.318-.85-.304" fill="none" stroke="#000" stroke-width=".25"/> - <path d="M127.923 211.24l.487.457 1.173-.633.09-.204-.17-.154-1.342-.116-.237.65" fill="#c8b100"/> - <path d="M127.923 211.24l.487.457 1.173-.633.09-.204-.17-.154-1.342-.116-.237.65" fill="none" stroke="#000" stroke-width=".25"/> - <path d="M131.467 210.53l-.25.602-1.346-.122-.172-.155.094-.207 1.177-.62.497.5" fill="#c8b100"/> - <path d="M131.467 210.53l-.25.602-1.346-.122-.172-.155.094-.207 1.177-.62.497.5" fill="none" stroke="#000" stroke-width=".25"/> - <path d="M126.628 211.41l-.108.64-1.342.14-.202-.117.043-.217 1.01-.84.598.395" fill="#c8b100"/> - <path d="M126.628 211.41l-.108.64-1.342.14-.202-.117.043-.217 1.01-.84.598.395" fill="none" stroke="#000" stroke-width=".25"/> - <path d="M129.22 210.863c0-.25.212-.45.472-.45s.47.2.47.45a.46.46 0 0 1-.47.446.46.46 0 0 1-.472-.447" fill="#c8b100"/> - <path d="M129.22 210.863c0-.25.212-.45.472-.45s.47.2.47.45a.46.46 0 0 1-.47.446.46.46 0 0 1-.472-.447z" fill="none" stroke="#000" stroke-width=".25"/> - <path d="M140.02 209.053l.646.61-.828 1.092-.223.087-.157-.167-.292-1.318.853-.304" fill="#c8b100"/> - <path d="M140.02 209.053l.646.61-.828 1.092-.223.087-.157-.167-.292-1.318.853-.304" fill="none" stroke="#000" stroke-width=".25"/> - <path d="M141.372 211.24l-.486.457-1.174-.633-.093-.204.176-.154 1.343-.116.232.65" fill="#c8b100"/> - <path d="M141.372 211.24l-.486.457-1.174-.633-.093-.204.176-.154 1.343-.116.232.65" fill="none" stroke="#000" stroke-width=".25"/> - <path d="M137.833 210.53l.25.602 1.337-.122.178-.155-.098-.207-1.173-.62-.494.5" fill="#c8b100"/> - <path d="M137.833 210.53l.25.602 1.337-.122.178-.155-.098-.207-1.173-.62-.494.5" fill="none" stroke="#000" stroke-width=".25"/> - <path d="M142.484 211.41l.112.64 1.343.14.2-.117-.047-.217-1.01-.84-.6.395" fill="#c8b100"/> - <path d="M142.484 211.41l.112.64 1.343.14.2-.117-.047-.217-1.01-.84-.6.395" fill="none" stroke="#000" stroke-width=".25"/> - <path d="M134.173 210.44a.46.46 0 0 1 .47-.45c.264 0 .473.198.473.45a.46.46 0 0 1-.472.447.461.461 0 0 1-.47-.446" fill="#c8b100"/> - <path d="M134.173 210.44a.46.46 0 0 1 .47-.45c.264 0 .473.198.473.45a.46.46 0 0 1-.472.447.461.461 0 0 1-.47-.446z" fill="none" stroke="#000" stroke-width=".25"/> - <path d="M139.144 210.863c0-.25.212-.45.47-.45a.46.46 0 0 1 .472.45.46.46 0 0 1-.47.446.46.46 0 0 1-.472-.447" fill="#c8b100"/> - <path d="M139.144 210.863c0-.25.212-.45.47-.45a.46.46 0 0 1 .472.45.46.46 0 0 1-.47.446.46.46 0 0 1-.472-.447z" fill="none" stroke="#000" stroke-width=".25"/> - <path d="M124.814 212.158c-.015.01-.363-.464-.63-.702-.19-.167-.648-.31-.648-.31 0-.085.267-.276.558-.276a.54.54 0 0 1 .428.19l.04-.184s.234.045.342.308c.11.272.04.685.04.685s-.044.19-.13.288" fill="#c8b100"/> - <path d="M124.814 212.158c-.015.01-.363-.464-.63-.702-.19-.167-.648-.31-.648-.31 0-.085.267-.276.558-.276a.54.54 0 0 1 .428.19l.04-.184s.234.045.342.308c.11.272.04.685.04.685s-.044.19-.13.288z" fill="none" stroke="#000" stroke-width=".25"/> - <path d="M124.832 211.923c.11-.116.342-.092.51.055.174.146.224.36.113.48-.112.12-.343.093-.512-.054-.172-.147-.222-.365-.11-.48" fill="#c8b100"/> - <path d="M124.832 211.923c.11-.116.342-.092.51.055.174.146.224.36.113.48-.112.12-.343.093-.512-.054-.172-.147-.222-.365-.11-.48z" fill="none" stroke="#000" stroke-width=".25"/> - <path d="M144.302 212.158c.01.01.364-.464.63-.702.183-.167.648-.31.648-.31 0-.085-.27-.276-.562-.276-.17 0-.33.07-.428.19l-.04-.184s-.234.045-.34.308c-.106.272-.038.685-.038.685s.04.19.13.288" fill="#c8b100"/> - <path d="M144.302 212.158c.01.01.364-.464.63-.702.183-.167.648-.31.648-.31 0-.085-.27-.276-.562-.276-.17 0-.33.07-.428.19l-.04-.184s-.234.045-.34.308c-.106.272-.038.685-.038.685s.04.19.13.288z" fill="none" stroke="#000" stroke-width=".25"/> - <path d="M144.312 211.923c-.11-.116-.34-.092-.513.055-.175.146-.225.36-.114.48.113.12.342.093.516-.054.172-.147.22-.365.11-.48" fill="#c8b100"/> - <path d="M144.312 211.923c-.11-.116-.34-.092-.513.055-.175.146-.225.36-.114.48.113.12.342.093.516-.054.172-.147.22-.365.11-.48z" fill="none" stroke="#000" stroke-width=".25"/> - <path d="M123.997 223.074h21.395v-5.608h-21.395v5.608z" fill="#c8b100"/> - <path d="M123.997 223.074h21.395v-5.608h-21.395v5.608z" fill="none" stroke="#000" stroke-width=".374"/> - <path d="M126.242 226.806a.934.934 0 0 1 .397-.06h16.02c.16 0 .31.026.436.077-.547-.183-.943-.68-.943-1.268 0-.586.428-1.094.982-1.285-.125.04-.313.08-.463.08H126.64a1.43 1.43 0 0 1-.45-.053l.086.014c.572.178.9.686.9 1.245a1.33 1.33 0 0 1-.934 1.25" fill="#c8b100"/> - <path d="M126.242 226.806a.934.934 0 0 1 .397-.06h16.02c.16 0 .31.026.436.077-.547-.183-.943-.68-.943-1.268 0-.586.428-1.094.982-1.285-.125.04-.313.08-.463.08H126.64a1.43 1.43 0 0 1-.45-.053l.086.014c.572.178.9.686.9 1.245a1.33 1.33 0 0 1-.934 1.25z" fill="none" stroke="#000" stroke-width=".374" stroke-linejoin="round"/> - <path d="M126.64 226.745h16.02c.544 0 .983.337.983.75 0 .416-.44.754-.982.754h-16.02c-.545 0-.984-.34-.984-.755 0-.413.44-.75.983-.75" fill="#c8b100"/> - <path d="M126.64 226.745h16.02c.544 0 .983.337.983.75 0 .416-.44.754-.982.754h-16.02c-.545 0-.984-.34-.984-.755 0-.413.44-.75.983-.75z" fill="none" stroke="#000" stroke-width=".374"/> - <path d="M126.64 223.074h16.032c.54 0 .983.286.983.634 0 .354-.444.64-.983.64H126.64c-.545 0-.984-.286-.984-.64 0-.348.44-.634.983-.634" fill="#c8b100"/> - <path d="M126.64 223.074h16.032c.54 0 .983.286.983.634 0 .354-.444.64-.983.64H126.64c-.545 0-.984-.286-.984-.64 0-.348.44-.634.983-.634z" fill="none" stroke="#000" stroke-width=".374"/> - <path d="M149.63 317.45c-1.48 0-2.798-.31-3.77-.83-.965-.49-2.27-.79-3.71-.79-1.447 0-2.786.304-3.75.797-.97.51-2.308.822-3.77.822-1.48 0-2.797-.346-3.77-.863-.955-.47-2.238-.758-3.64-.758-1.452 0-2.74.276-3.705.777-.973.516-2.32.842-3.794.842v2.316c1.476 0 2.822-.337 3.795-.848.965-.498 2.253-.78 3.704-.78 1.398 0 2.68.29 3.64.763.97.516 2.29.866 3.77.866 1.462 0 2.8-.32 3.77-.823.964-.5 2.303-.805 3.75-.805 1.44 0 2.745.304 3.71.798.972.517 2.268.83 3.752.83l.017-2.317" fill="#005bbf"/> - <path d="M149.63 317.45c-1.48 0-2.798-.31-3.77-.83-.965-.49-2.27-.79-3.71-.79-1.447 0-2.786.304-3.75.797-.97.51-2.308.822-3.77.822-1.48 0-2.797-.346-3.77-.863-.955-.47-2.238-.758-3.64-.758-1.452 0-2.74.276-3.705.777-.973.516-2.32.842-3.794.842v2.316c1.476 0 2.822-.337 3.795-.848.965-.498 2.253-.78 3.704-.78 1.398 0 2.68.29 3.64.763.97.516 2.29.866 3.77.866 1.462 0 2.8-.32 3.77-.823.964-.5 2.303-.805 3.75-.805 1.44 0 2.745.304 3.71.798.972.517 2.268.83 3.752.83l.017-2.317z" fill="none" stroke="#000" stroke-width=".374"/> - <path d="M149.63 319.766c-1.48 0-2.798-.313-3.77-.83-.965-.494-2.27-.798-3.71-.798-1.447 0-2.786.304-3.75.805-.97.504-2.308.823-3.77.823-1.48 0-2.797-.35-3.77-.865-.955-.473-2.238-.762-3.64-.762-1.452 0-2.74.282-3.705.78-.973.51-2.32.848-3.794.848v2.312c1.476 0 2.822-.33 3.795-.842.965-.505 2.253-.784 3.704-.784 1.398 0 2.68.29 3.64.764.97.515 2.29.862 3.77.862 1.462 0 2.8-.32 3.77-.825.964-.497 2.303-.8 3.75-.8 1.44 0 2.745.303 3.71.797.972.515 2.268.828 3.752.828l.017-2.312" fill="#ccc"/> - <path d="M149.63 319.766c-1.48 0-2.798-.313-3.77-.83-.965-.494-2.27-.798-3.71-.798-1.447 0-2.786.304-3.75.805-.97.504-2.308.823-3.77.823-1.48 0-2.797-.35-3.77-.865-.955-.473-2.238-.762-3.64-.762-1.452 0-2.74.282-3.705.78-.973.51-2.32.848-3.794.848v2.312c1.476 0 2.822-.33 3.795-.842.965-.505 2.253-.784 3.704-.784 1.398 0 2.68.29 3.64.764.97.515 2.29.862 3.77.862 1.462 0 2.8-.32 3.77-.825.964-.497 2.303-.8 3.75-.8 1.44 0 2.745.303 3.71.797.972.515 2.268.828 3.752.828l.017-2.312" fill="none" stroke="#000" stroke-width=".374"/> - <path d="M149.63 322.078c-1.48 0-2.798-.313-3.77-.828-.965-.494-2.27-.798-3.71-.798-1.447 0-2.786.304-3.75.8-.97.506-2.308.826-3.77.826-1.48 0-2.797-.347-3.77-.862-.955-.474-2.238-.764-3.64-.764-1.452 0-2.74.28-3.705.784-.973.512-2.32.842-3.794.842v2.31c1.476 0 2.822-.33 3.795-.844.965-.497 2.253-.777 3.704-.777 1.398 0 2.68.29 3.64.76.97.518 2.29.862 3.77.862 1.462 0 2.8-.317 3.77-.82.964-.5 2.303-.803 3.75-.803 1.44 0 2.745.3 3.71.795.972.52 2.268.827 3.752.827l.017-2.312" fill="#005bbf"/> - <path d="M149.63 322.078c-1.48 0-2.798-.313-3.77-.828-.965-.494-2.27-.798-3.71-.798-1.447 0-2.786.304-3.75.8-.97.506-2.308.826-3.77.826-1.48 0-2.797-.347-3.77-.862-.955-.474-2.238-.764-3.64-.764-1.452 0-2.74.28-3.705.784-.973.512-2.32.842-3.794.842v2.31c1.476 0 2.822-.33 3.795-.844.965-.497 2.253-.777 3.704-.777 1.398 0 2.68.29 3.64.76.97.518 2.29.862 3.77.862 1.462 0 2.8-.317 3.77-.82.964-.5 2.303-.803 3.75-.803 1.44 0 2.745.3 3.71.795.972.52 2.268.827 3.752.827l.017-2.312" fill="none" stroke="#000" stroke-width=".374"/> - <path d="M149.612 326.704c-1.484 0-2.78-.313-3.752-.83-.965-.492-2.27-.793-3.71-.793-1.447 0-2.786.302-3.75.8-.97.505-2.308.824-3.77.824-1.48 0-2.797-.348-3.77-.866-.955-.47-2.238-.757-3.64-.757-1.452 0-2.74.28-3.705.78-.973.514-2.32.844-3.794.844v-2.3c1.476 0 2.822-.345 3.795-.86.965-.497 2.253-.777 3.704-.777 1.398 0 2.68.29 3.64.76.97.518 2.29.862 3.77.862 1.462 0 2.8-.317 3.77-.82.964-.5 2.303-.803 3.75-.803 1.44 0 2.745.3 3.71.795.972.52 2.29.827 3.77.827l-.018 2.314" fill="#ccc"/> - <path d="M149.612 326.704c-1.484 0-2.78-.313-3.752-.83-.965-.492-2.27-.793-3.71-.793-1.447 0-2.786.302-3.75.8-.97.505-2.308.824-3.77.824-1.48 0-2.797-.348-3.77-.866-.955-.47-2.238-.757-3.64-.757-1.452 0-2.74.28-3.705.78-.973.514-2.32.844-3.794.844v-2.3c1.476 0 2.822-.345 3.795-.86.965-.497 2.253-.777 3.704-.777 1.398 0 2.68.29 3.64.76.97.518 2.29.862 3.77.862 1.462 0 2.8-.317 3.77-.82.964-.5 2.303-.803 3.75-.803 1.44 0 2.745.3 3.71.795.972.52 2.29.827 3.77.827l-.018 2.314" fill="none" stroke="#000" stroke-width=".374"/> - <path d="M149.612 329.02c-1.484 0-2.78-.315-3.752-.83-.965-.497-2.27-.8-3.71-.8-1.447 0-2.786.306-3.75.804-.97.504-2.308.825-3.77.825-1.48 0-2.797-.352-3.77-.867-.955-.473-2.238-.763-3.64-.763-1.452 0-2.74.283-3.705.783-.973.512-2.32.846-3.794.846v-2.296c1.476 0 2.822-.35 3.795-.865.965-.5 2.253-.775 3.704-.775 1.398 0 2.68.286 3.64.757.97.514 2.29.862 3.77.862 1.462 0 2.8-.32 3.77-.824.964-.498 2.303-.795 3.75-.795 1.44 0 2.745.297 3.71.79.972.516 2.283.83 3.765.83l-.013 2.314" fill="#005bbf"/> - <path d="M149.612 329.02c-1.484 0-2.78-.315-3.752-.83-.965-.497-2.27-.8-3.71-.8-1.447 0-2.786.306-3.75.804-.97.504-2.308.825-3.77.825-1.48 0-2.797-.352-3.77-.867-.955-.473-2.238-.763-3.64-.763-1.452 0-2.74.283-3.705.783-.973.512-2.32.846-3.794.846v-2.296c1.476 0 2.822-.35 3.795-.865.965-.5 2.253-.775 3.704-.775 1.398 0 2.68.286 3.64.757.97.514 2.29.862 3.77.862 1.462 0 2.8-.32 3.77-.824.964-.498 2.303-.795 3.75-.795 1.44 0 2.745.297 3.71.79.972.516 2.283.83 3.765.83l-.013 2.314z" fill="none" stroke="#000" stroke-width=".374"/> - <path d="M126.242 307.952c.052.195.123.386.123.593 0 1.404-1.212 2.522-2.696 2.522h22.018c-1.483 0-2.697-1.118-2.697-2.522 0-.205.04-.398.093-.593a1.29 1.29 0 0 1-.422.05h-16.02c-.13 0-.282-.013-.398-.05" fill="#c8b100"/> - <path d="M126.242 307.952c.052.195.123.386.123.593 0 1.404-1.212 2.522-2.696 2.522h22.018c-1.483 0-2.697-1.118-2.697-2.522 0-.205.04-.398.093-.593a1.29 1.29 0 0 1-.422.05h-16.02c-.13 0-.282-.013-.398-.05z" fill="none" stroke="#000" stroke-width=".374" stroke-linejoin="round"/> - <path d="M126.64 306.496h16.02c.544 0 .983.34.983.754 0 .416-.44.754-.982.754h-16.02c-.545 0-.984-.338-.984-.754 0-.413.44-.754.983-.754" fill="#c8b100"/> - <path d="M126.64 306.496h16.02c.544 0 .983.34.983.754 0 .416-.44.754-.982.754h-16.02c-.545 0-.984-.338-.984-.754 0-.413.44-.754.983-.754z" fill="none" stroke="#000" stroke-width=".374"/> - <path d="M123.698 316.668h21.96v-5.6H123.7v5.6z" fill="#c8b100"/> - <path d="M123.698 316.668h21.96v-5.6H123.7v5.6z" fill="none" stroke="#000" stroke-width=".374"/> - <path d="M121.98 286.673c-2.173 1.255-3.645 2.54-3.407 3.18.12.59.81 1.03 1.795 1.685 1.552 1.08 2.495 3.01 1.757 3.9 1.285-1.036 2.098-2.584 2.098-4.306 0-1.8-.856-3.422-2.242-4.46" fill="#ad1519"/> - <path d="M121.98 286.673c-2.173 1.255-3.645 2.54-3.407 3.18.12.59.81 1.03 1.795 1.685 1.552 1.08 2.495 3.01 1.757 3.9 1.285-1.036 2.098-2.584 2.098-4.306 0-1.8-.856-3.422-2.242-4.46z" fill="none" stroke="#000" stroke-width=".374"/> - <path d="M126.844 305.59h15.604v-76.45h-15.604v76.45z" fill="#ccc"/> - <path d="M137.967 229.244v76.285m1.753-76.286v76.285m-12.876.062h15.604v-76.45h-15.604v76.45z" fill="none" stroke="#000" stroke-width=".374"/> - <path d="M158.387 257.735c-3.405-1.407-9.193-2.45-15.834-2.67-2.29.02-4.842.234-7.477.673-9.333 1.557-16.443 5.283-15.877 8.318.01.064.03.196.045.255 0 0-3.497-7.883-3.556-8.184-.623-3.368 7.263-7.506 17.623-9.234 3.25-.543 6.42-.754 9.174-.727 6.628 0 12.387.85 15.856 2.138l.044 9.432" fill="#ad1519"/> - <path d="M158.387 257.735c-3.405-1.407-9.193-2.45-15.834-2.67-2.29.02-4.842.234-7.477.673-9.333 1.557-16.443 5.283-15.877 8.318.01.064.03.196.045.255 0 0-3.497-7.883-3.556-8.184-.623-3.368 7.263-7.506 17.623-9.234 3.25-.543 6.42-.754 9.174-.727 6.628 0 12.387.85 15.856 2.138l.044 9.432" fill="none" stroke="#000" stroke-width=".374" stroke-linejoin="round"/> - <path d="M126.82 267.33c-4.328-.31-7.282-1.465-7.62-3.274-.268-1.442 1.194-3.038 3.807-4.486 1.166.125 2.48.286 3.837.286l-.025 7.475" fill="#ad1519"/> - <path d="M126.82 267.33c-4.328-.31-7.282-1.465-7.62-3.274-.268-1.442 1.194-3.038 3.807-4.486 1.166.125 2.48.286 3.837.286l-.025 7.475" fill="none" stroke="#000" stroke-width=".374"/> - <path d="M142.477 261.49c2.703.408 4.734 1.08 5.744 1.904l.092.166c.482.99-1.893 3.093-5.86 5.442l.025-7.513" fill="#ad1519"/> - <path d="M142.477 261.49c2.703.408 4.734 1.08 5.744 1.904l.092.166c.482.99-1.893 3.093-5.86 5.442l.025-7.513" fill="none" stroke="#000" stroke-width=".374"/> - <path d="M117.125 282.08c-.41-1.236 3.81-3.707 9.773-5.895 2.725-.975 4.975-1.992 7.763-3.22 8.285-3.664 14.404-7.867 13.652-9.4l-.083-.157c.442.358 1.125 7.908 1.125 7.908.757 1.405-4.844 5.546-12.472 9.2-2.44 1.167-7.595 3.072-10.028 3.924-4.352 1.51-8.68 4.358-8.282 5.414l-1.448-7.77" fill="#ad1519"/> - <path d="M117.125 282.08c-.41-1.236 3.81-3.707 9.773-5.895 2.725-.975 4.975-1.992 7.763-3.22 8.285-3.664 14.404-7.867 13.652-9.4l-.083-.157c.442.358 1.125 7.908 1.125 7.908.757 1.405-4.844 5.546-12.472 9.2-2.44 1.167-7.595 3.072-10.028 3.924-4.352 1.51-8.68 4.358-8.282 5.414l-1.448-7.77v-.005z" fill="none" stroke="#000" stroke-width=".374" stroke-linejoin="round"/> - <path d="M125.768 254.068c1.908-.696 3.157-1.518 2.545-3.02-.386-.956-1.372-1.14-2.844-.6l-2.61.947 2.35 5.792c.256-.116.51-.236.778-.334.262-.096.54-.168.81-.246l-1.03-2.536v-.002zm-1.134-2.796l.66-.24c.546-.2 1.165.09 1.44.765.203.515.15 1.087-.48 1.49a4.397 4.397 0 0 1-.673.313l-.946-2.328m7.231-2.422c-.274.073-.547.156-.825.21-.275.054-.56.085-.84.122l1.352 6.024 4.208-.845c-.05-.118-.116-.245-.14-.368-.03-.126-.025-.266-.033-.392-.737.212-1.544.44-2.512.635l-1.205-5.386m8.422 5.194c.795-2.185 1.756-4.28 2.702-6.4a5.287 5.287 0 0 1-1.04.07c-.503 1.537-1.13 3.074-1.79 4.605-.79-1.453-1.665-2.87-2.332-4.334-.327.042-.662.09-.993.113-.327.02-.67.015-.997.02a131.437 131.437 0 0 1 3.492 5.986c.154-.028.313-.065.48-.076.156-.01.32.005.478.01m8.797-4.63c.146-.294.295-.58.46-.853-.226-.215-.922-.527-1.736-.61-1.716-.17-2.702.593-2.817 1.63-.242 2.168 3.18 1.98 3.024 3.42-.068.62-.727.87-1.425.803-.78-.08-1.35-.508-1.45-1.145l-.213-.02a7.262 7.262 0 0 1-.455 1.106c.5.324 1.153.508 1.775.57 1.75.173 3.086-.528 3.212-1.68.227-2.06-3.23-2.18-3.096-3.393.057-.51.45-.846 1.343-.756.64.065 1.038.412 1.21.91l.17.018" fill="#c8b100"/> - <path d="M277.852 211.606s-.705.743-1.22.85c-.515.1-1.166-.464-1.166-.464s-.464.483-1.033.612c-.57.13-1.36-.64-1.36-.64s-.54.77-1.028.95c-.49.18-1.083-.23-1.083-.23s-.216.38-.623.592c-.174.082-.46-.054-.46-.054l-.575-.358-.652-.695-.596-.234s-.27-.872-.298-1.025l-.08-.54c-.122-.624.838-1.348 2.21-1.658.788-.184 1.474-.17 1.98-.014.547-.466 1.706-.79 3.07-.79 1.234 0 2.318.26 2.916.667.59-.406 1.673-.668 2.912-.668 1.356 0 2.515.325 3.063.79.508-.155 1.19-.166 1.984.015 1.367.31 2.332 1.034 2.21 1.657l-.082.54c-.03.154-.3 1.026-.3 1.026l-.597.233-.652.694-.564.358s-.29.136-.462.054c-.407-.208-.627-.592-.627-.592s-.596.41-1.083.23c-.488-.18-1.032-.95-1.032-.95s-.785.77-1.358.64c-.568-.13-1.03-.612-1.03-.612s-.652.565-1.165.463c-.518-.106-1.216-.85-1.216-.85" fill="#ad1519"/> - <path d="M277.852 211.606s-.705.743-1.22.85c-.515.1-1.166-.464-1.166-.464s-.464.483-1.033.612c-.57.13-1.36-.64-1.36-.64s-.54.77-1.028.95c-.49.18-1.083-.23-1.083-.23s-.216.38-.623.592c-.174.082-.46-.054-.46-.054l-.575-.358-.652-.695-.596-.234s-.27-.872-.298-1.025l-.08-.54c-.122-.624.838-1.348 2.21-1.658.788-.184 1.474-.17 1.98-.014.547-.466 1.706-.79 3.07-.79 1.234 0 2.318.26 2.916.667.59-.406 1.673-.668 2.912-.668 1.356 0 2.515.325 3.063.79.508-.155 1.19-.166 1.984.015 1.367.31 2.332 1.034 2.21 1.657l-.082.54c-.03.154-.3 1.026-.3 1.026l-.597.233-.652.694-.564.358s-.29.136-.462.054c-.407-.208-.627-.592-.627-.592s-.596.41-1.083.23c-.488-.18-1.032-.95-1.032-.95s-.785.77-1.358.64c-.568-.13-1.03-.612-1.03-.612s-.652.565-1.165.463c-.518-.106-1.216-.85-1.216-.85h-.004z" fill="none" stroke="#000" stroke-width=".259"/> - <path d="M276.51 207.55c0-1.04.59-1.882 1.32-1.882.73 0 1.325.84 1.325 1.88 0 1.045-.594 1.89-1.325 1.89-.73 0-1.32-.845-1.32-1.89" fill="#c8b100"/> - <path d="M276.51 207.55c0-1.04.59-1.882 1.32-1.882.73 0 1.325.84 1.325 1.88 0 1.045-.594 1.89-1.325 1.89-.73 0-1.32-.845-1.32-1.89z" fill="none" stroke="#000" stroke-width=".25"/> - <path d="M277.247 207.55c0-.955.274-1.732.61-1.732.336 0 .607.777.607 1.73 0 .96-.27 1.737-.608 1.737-.335 0-.61-.778-.61-1.736" fill="#c8b100"/> - <path d="M277.247 207.55c0-.955.274-1.732.61-1.732.336 0 .607.777.607 1.73 0 .96-.27 1.737-.608 1.737-.335 0-.61-.778-.61-1.736z" fill="none" stroke="#000" stroke-width=".25"/> - <path d="M271.037 215.28a4.536 4.536 0 0 0-.56-1.04c1.87-.548 4.473-.892 7.367-.9 2.895.008 5.515.352 7.384.9l-.5.88c-.163.284-.376.777-.36.777-1.69-.517-3.863-.783-6.534-.786-2.675.004-5.246.33-6.585.822.018 0-.094-.31-.227-.65h.014" fill="#c8b100"/> - <path d="M271.037 215.28a4.536 4.536 0 0 0-.56-1.04c1.87-.548 4.473-.892 7.367-.9 2.895.008 5.515.352 7.384.9l-.5.88c-.163.284-.376.777-.36.777-1.69-.517-3.863-.783-6.534-.786-2.675.004-5.246.33-6.585.822.018 0-.094-.31-.227-.65h.014" fill="none" stroke="#000" stroke-width=".25"/> - <path d="M277.844 217.657c2.336-.004 4.907-.358 5.857-.603.634-.185 1.006-.47.936-.802-.03-.156-.168-.292-.353-.37-1.393-.447-3.904-.764-6.44-.768-2.528.004-5.052.32-6.45.767-.178.08-.32.216-.35.372-.07.33.3.617.938.802.948.245 3.53.6 5.864.603" fill="#c8b100"/> - <path d="M277.844 217.657c2.336-.004 4.907-.358 5.857-.603.634-.185 1.006-.47.936-.802-.03-.156-.168-.292-.353-.37-1.393-.447-3.904-.764-6.44-.768-2.528.004-5.052.32-6.45.767-.178.08-.32.216-.35.372-.07.33.3.617.938.802.948.245 3.53.6 5.864.603z" fill="none" stroke="#000" stroke-width=".25"/> - <path d="M283.507 208.392c0-.23.194-.413.43-.413.243 0 .437.183.437.412 0 .228-.194.41-.436.41a.42.42 0 0 1-.43-.41" fill="#fff"/> - <path d="M283.507 208.392c0-.23.194-.413.43-.413.243 0 .437.183.437.412 0 .228-.194.41-.436.41a.42.42 0 0 1-.43-.41zm-.244-1.439a.42.42 0 0 1 .432-.412c.24 0 .435.184.435.413 0 .225-.196.41-.435.41a.422.422 0 0 1-.432-.41zm-1.088-.9c0-.228.193-.412.436-.412.237 0 .433.185.433.412 0 .23-.196.413-.432.413a.422.422 0 0 1-.435-.413zm-1.358-.433c0-.232.195-.416.435-.416.242 0 .433.184.433.416 0 .222-.19.41-.433.41-.24 0-.435-.188-.435-.41zm-1.382.048c0-.23.194-.412.432-.412.242 0 .437.183.437.412 0 .228-.195.408-.437.408a.42.42 0 0 1-.432-.408z" fill="none" stroke="#000" stroke-width=".202"/> - <path d="M287.798 211.187c.13-.317.21-.67.21-1.033 0-1.527-1.21-2.768-2.712-2.768-.48 0-.93.13-1.32.354" fill="none" stroke="#000" stroke-width=".25" stroke-linecap="round"/> - <path d="M282.967 209.244c.14-.25.24-.552.24-.84 0-1.1-1.137-1.992-2.536-1.992-.597 0-1.145.163-1.576.432" fill="none" stroke="#000" stroke-width=".25"/> - <path d="M288.172 209.933c0-.226.198-.413.436-.413.24 0 .435.187.435.413 0 .228-.195.41-.435.41-.238 0-.436-.182-.436-.41zm-.164-1.514c0-.23.197-.41.437-.41a.42.42 0 0 1 .433.41c0 .224-.195.408-.433.408-.24 0-.437-.184-.437-.41zm-.973-1.16a.42.42 0 0 1 .432-.41c.24 0 .434.185.434.41a.423.423 0 0 1-.433.412.423.423 0 0 1-.432-.412zm-1.304-.618c0-.224.196-.408.436-.408s.433.184.433.408c0 .23-.195.417-.434.417a.427.427 0 0 1-.435-.418zm-1.384.056c0-.23.194-.413.434-.413s.437.184.437.413c0 .224-.196.41-.437.41-.24 0-.434-.186-.434-.41z" fill="none" stroke="#000" stroke-width=".202"/> - <path d="M285.34 213.198l-.566-.514s-.544.333-1.223.23c-.676-.1-.893-.922-.893-.922s-.762.636-1.382.59c-.623-.056-1.03-.59-1.03-.59s-.68.483-1.277.436c-.597-.055-1.167-.798-1.167-.798s-.596.77-1.194.825c-.597.048-1.084-.52-1.084-.52s-.273.568-1.033.693c-.76.13-1.41-.59-1.41-.59s-.43.696-.948.877c-.514.18-1.19-.26-1.19-.26s-.11.26-.192.413c-.083.154-.3.182-.3.182l.17.46c1.86-.54 4.382-.873 7.232-.876 2.854.003 5.445.337 7.303.88l.19-.516" fill="#c8b100"/> - <path d="M285.34 213.198l-.566-.514s-.544.333-1.223.23c-.676-.1-.893-.922-.893-.922s-.762.636-1.382.59c-.623-.056-1.03-.59-1.03-.59s-.68.483-1.277.436c-.597-.055-1.167-.798-1.167-.798s-.596.77-1.194.825c-.597.048-1.084-.52-1.084-.52s-.273.568-1.033.693c-.76.13-1.41-.59-1.41-.59s-.43.696-.948.877c-.514.18-1.19-.26-1.19-.26s-.11.26-.192.413c-.083.154-.3.182-.3.182l.17.46c1.86-.54 4.382-.873 7.232-.876 2.854.003 5.445.337 7.303.88l.19-.516h-.004z" fill="none" stroke="#000" stroke-width=".25"/> - <path d="M271.258 208.392c0-.23.193-.413.435-.413.237 0 .432.183.432.412a.42.42 0 0 1-.432.41c-.242 0-.435-.182-.435-.41" fill="#fff"/> - <path d="M271.258 208.392c0-.23.193-.413.435-.413.237 0 .432.183.432.412a.42.42 0 0 1-.432.41c-.242 0-.435-.182-.435-.41zm.245-1.439c0-.23.194-.412.435-.412.238 0 .432.184.432.413 0 .225-.194.41-.432.41-.24 0-.435-.185-.435-.41zm1.083-.9c0-.228.194-.412.435-.412.242 0 .437.185.437.412 0 .23-.195.413-.436.413a.424.424 0 0 1-.434-.413zm1.357-.433c0-.232.195-.416.435-.416.242 0 .436.184.436.416 0 .222-.194.41-.436.41-.24 0-.435-.188-.435-.41zm1.385.048c0-.23.194-.412.432-.412.242 0 .436.183.436.412 0 .228-.194.408-.436.408a.42.42 0 0 1-.432-.408z" fill="none" stroke="#000" stroke-width=".202"/> - <path d="M267.832 211.187a2.793 2.793 0 0 1-.21-1.033c0-1.527 1.213-2.768 2.712-2.768.48 0 .93.13 1.323.354" fill="none" stroke="#000" stroke-width=".25" stroke-linecap="round"/> - <path d="M272.697 209.21c-.14-.246-.275-.518-.275-.805 0-1.1 1.14-1.993 2.54-1.993a3 3 0 0 1 1.576.432" fill="none" stroke="#000" stroke-width=".25"/> - <path d="M266.59 209.933c0-.226.192-.413.435-.413.235 0 .43.187.43.413a.42.42 0 0 1-.43.41c-.243 0-.436-.182-.436-.41zm.16-1.514c0-.23.198-.41.437-.41.24 0 .435.18.435.41 0 .224-.194.408-.435.408-.24 0-.436-.184-.436-.41zm.98-1.16c0-.225.194-.41.436-.41a.42.42 0 0 1 .432.41.423.423 0 0 1-.432.412.424.424 0 0 1-.436-.412zm1.303-.618c0-.224.194-.408.43-.408.244 0 .437.184.437.408 0 .23-.193.417-.436.417a.425.425 0 0 1-.43-.418zm1.382.056c0-.23.194-.413.436-.413a.42.42 0 0 1 .433.413.42.42 0 0 1-.432.41c-.24 0-.435-.186-.435-.41z" fill="none" stroke="#000" stroke-width=".202"/> - <path d="M277.86 210.712l.27.05a.998.998 0 0 0-.052.356c0 .56.48 1.013 1.07 1.013.475 0 .88-.293 1.016-.698.016.01.103-.368.146-.362.04 0 .033.393.043.386.07.507.536.856 1.062.856.59 0 1.068-.453 1.068-1.012a.712.712 0 0 0-.01-.123l.338-.335.18.426a.92.92 0 0 0-.1.44c0 .536.458.97 1.02.97.356 0 .67-.175.85-.434l.215-.273-.004.34c0 .332.146.632.47.687 0 0 .38.027.877-.368.5-.393.775-.72.775-.72l.028.402s-.49.804-.933 1.06c-.244.143-.616.293-.91.24-.314-.046-.533-.298-.65-.584a1.49 1.49 0 0 1-.765.207c-.604 0-1.147-.334-1.36-.827a1.5 1.5 0 0 1-1.12.48c-.48 0-.924-.215-1.202-.552a1.542 1.542 0 0 1-1.052.406c-.53 0-1.01-.267-1.28-.66-.27.393-.742.66-1.28.66-.406 0-.776-.154-1.05-.406a1.556 1.556 0 0 1-1.2.552c-.454 0-.84-.18-1.117-.48-.213.49-.76.827-1.36.827-.28 0-.54-.075-.763-.207-.115.286-.338.538-.648.585-.296.052-.667-.098-.91-.24-.45-.257-.977-1.06-.977-1.06l.07-.404s.27.327.77.72c.5.394.877.367.877.367.327-.055.467-.355.467-.688v-.34l.214.274c.184.26.496.433.85.433.566 0 1.022-.433 1.022-.968a.922.922 0 0 0-.1-.442l.18-.426.333.335c-.007.04-.007.08-.007.123 0 .56.476 1.012 1.06 1.012.53 0 .996-.35 1.064-.856.014.007.01-.386.046-.386.048-.007.133.373.148.362.14.405.543.7 1.018.7.592 0 1.07-.455 1.07-1.014a.982.982 0 0 0-.05-.357l.277-.048" fill="#c8b100"/> - <path d="M277.86 210.712l.27.05a.998.998 0 0 0-.052.356c0 .56.48 1.013 1.07 1.013.475 0 .88-.293 1.016-.698.016.01.103-.368.146-.362.04 0 .033.393.043.386.07.507.536.856 1.062.856.59 0 1.068-.453 1.068-1.012a.712.712 0 0 0-.01-.123l.338-.335.18.426a.92.92 0 0 0-.1.44c0 .536.458.97 1.02.97.356 0 .67-.175.85-.434l.215-.273-.004.34c0 .332.146.632.47.687 0 0 .38.027.877-.368.5-.393.775-.72.775-.72l.028.402s-.49.804-.933 1.06c-.244.143-.616.293-.91.24-.314-.046-.533-.298-.65-.584a1.49 1.49 0 0 1-.765.207c-.604 0-1.147-.334-1.36-.827a1.5 1.5 0 0 1-1.12.48c-.48 0-.924-.215-1.202-.552a1.542 1.542 0 0 1-1.052.406c-.53 0-1.01-.267-1.28-.66-.27.393-.742.66-1.28.66-.406 0-.776-.154-1.05-.406a1.556 1.556 0 0 1-1.2.552c-.454 0-.84-.18-1.117-.48-.213.49-.76.827-1.36.827-.28 0-.54-.075-.763-.207-.115.286-.338.538-.648.585-.296.052-.667-.098-.91-.24-.45-.257-.977-1.06-.977-1.06l.07-.404s.27.327.77.72c.5.394.877.367.877.367.327-.055.467-.355.467-.688v-.34l.214.274c.184.26.496.433.85.433.566 0 1.022-.433 1.022-.968a.922.922 0 0 0-.1-.442l.18-.426.333.335c-.007.04-.007.08-.007.123 0 .56.476 1.012 1.06 1.012.53 0 .996-.35 1.064-.856.014.007.01-.386.046-.386.048-.007.133.373.148.362.14.405.543.7 1.018.7.592 0 1.07-.455 1.07-1.014a.982.982 0 0 0-.05-.357l.277-.048h.008z" fill="none" stroke="#000" stroke-width=".25"/> - <path d="M277.844 213.345c-2.894.003-5.493.347-7.36.9-.126.04-.28-.056-.32-.168-.04-.118.05-.265.17-.306 1.88-.572 4.545-.933 7.51-.936 2.963.003 5.64.364 7.517.937.125.042.216.19.177.307-.04.112-.2.208-.32.168-1.87-.553-4.478-.897-7.373-.9" fill="#c8b100"/> - <path d="M277.844 213.345c-2.894.003-5.493.347-7.36.9-.126.04-.28-.056-.32-.168-.04-.118.05-.265.17-.306 1.88-.572 4.545-.933 7.51-.936 2.963.003 5.64.364 7.517.937.125.042.216.19.177.307-.04.112-.2.208-.32.168-1.87-.553-4.478-.897-7.373-.9z" fill="none" stroke="#000" stroke-width=".25"/> - <path d="M275.044 214.37c0-.217.187-.395.422-.395.23 0 .417.178.417.396a.404.404 0 0 1-.417.395c-.235 0-.422-.173-.422-.394" fill="#fff"/> - <path d="M275.044 214.37c0-.217.187-.395.422-.395.23 0 .417.178.417.396a.404.404 0 0 1-.417.395c-.235 0-.422-.173-.422-.394z" fill="none" stroke="#000" stroke-width=".25"/> - <path d="M277.88 214.542h-.93c-.175 0-.32-.137-.32-.3 0-.162.14-.294.315-.294h1.883a.3.3 0 0 1 .308.293c0 .165-.14.302-.312.302h-.944" fill="#ad1519"/> - <path d="M277.88 214.542h-.93c-.175 0-.32-.137-.32-.3 0-.162.14-.294.315-.294h1.883a.3.3 0 0 1 .308.293c0 .165-.14.302-.312.302h-.944" fill="none" stroke="#000" stroke-width=".25"/> - <path d="M273.216 214.86l-.666.1a.316.316 0 0 1-.36-.248.294.294 0 0 1 .258-.334l.67-.1.683-.105c.172-.02.33.086.36.246a.302.302 0 0 1-.264.336l-.68.105" fill="#058e6e"/> - <path d="M273.216 214.86l-.666.1a.316.316 0 0 1-.36-.248.294.294 0 0 1 .258-.334l.67-.1.683-.105c.172-.02.33.086.36.246a.302.302 0 0 1-.264.336l-.68.105" fill="none" stroke="#000" stroke-width=".25"/> - <path d="M270.526 215.328l.296-.476.634.12-.368.535-.562-.18" fill="#ad1519"/> - <path d="M270.526 215.328l.296-.476.634.12-.368.535-.562-.18" fill="none" stroke="#000" stroke-width=".25"/> - <path d="M279.81 214.37c0-.217.19-.395.42-.395.232 0 .422.178.422.396 0 .222-.19.395-.42.395-.23 0-.42-.173-.42-.394" fill="#fff"/> - <path d="M279.81 214.37c0-.217.19-.395.42-.395.232 0 .422.178.422.396 0 .222-.19.395-.42.395-.23 0-.42-.173-.42-.394z" fill="none" stroke="#000" stroke-width=".25"/> - <path d="M282.477 214.86l.67.1a.312.312 0 0 0 .356-.248.292.292 0 0 0-.255-.334l-.67-.1-.683-.105c-.173-.02-.332.086-.357.246-.03.158.094.312.263.336l.677.105" fill="#058e6e"/> - <path d="M282.477 214.86l.67.1a.312.312 0 0 0 .356-.248.292.292 0 0 0-.255-.334l-.67-.1-.683-.105c-.173-.02-.332.086-.357.246-.03.158.094.312.263.336l.677.105" fill="none" stroke="#000" stroke-width=".25"/> - <path d="M285.113 215.356l-.238-.508-.65.054.312.57.576-.116" fill="#ad1519"/> - <path d="M285.113 215.356l-.238-.508-.65.054.312.57.576-.116" fill="none" stroke="#000" stroke-width=".25"/> - <path d="M277.84 217.115c-2.335-.003-4.448-.208-6.057-.623 1.61-.413 3.722-.67 6.058-.675 2.337.003 4.46.26 6.065.675-1.604.415-3.728.62-6.064.623" fill="#ad1519"/> - <path d="M277.84 217.115c-2.335-.003-4.448-.208-6.057-.623 1.61-.413 3.722-.67 6.058-.675 2.337.003 4.46.26 6.065.675-1.604.415-3.728.62-6.064.623z" fill="none" stroke="#000" stroke-width=".25" stroke-linejoin="round"/> - <path d="M285.206 212.05c.06-.18.008-.36-.127-.404-.13-.036-.284.08-.346.253-.064.183-.008.365.122.405.13.037.288-.075.35-.255" fill="#c8b100"/> - <path d="M285.206 212.05c.06-.18.008-.36-.127-.404-.13-.036-.284.08-.346.253-.064.183-.008.365.122.405.13.037.288-.075.35-.255z" fill="none" stroke="#000" stroke-width=".25"/> - <path d="M280.555 211.15c.025-.188-.07-.355-.205-.372-.133-.017-.267.126-.288.314-.025.187.064.354.202.37.136.014.266-.13.29-.312" fill="#c8b100"/> - <path d="M280.555 211.15c.025-.188-.07-.355-.205-.372-.133-.017-.267.126-.288.314-.025.187.064.354.202.37.136.014.266-.13.29-.312z" fill="none" stroke="#000" stroke-width=".25"/> - <path d="M275.156 211.15c-.025-.188.064-.355.2-.372.138-.017.267.126.293.314.02.187-.07.354-.203.37-.136.014-.267-.13-.29-.312" fill="#c8b100"/> - <path d="M275.156 211.15c-.025-.188.064-.355.2-.372.138-.017.267.126.293.314.02.187-.07.354-.203.37-.136.014-.267-.13-.29-.312z" fill="none" stroke="#000" stroke-width=".25"/> - <path d="M270.505 212.05c-.065-.18-.007-.36.122-.404.13-.036.288.08.35.253.06.183.007.365-.122.405-.134.037-.29-.075-.35-.255" fill="#c8b100"/> - <path d="M270.505 212.05c-.065-.18-.007-.36.122-.404.13-.036.288.08.35.253.06.183.007.365-.122.405-.134.037-.29-.075-.35-.255z" fill="none" stroke="#000" stroke-width=".25"/> - <path d="M277.84 208.463l-.823.497.61 1.326.214.14.21-.14.615-1.326-.824-.497" fill="#c8b100"/> - <path d="M277.84 208.463l-.823.497.61 1.326.214.14.21-.14.615-1.326-.824-.497" fill="none" stroke="#000" stroke-width=".25"/> - <path d="M276.033 210.468l.376.546 1.284-.397.136-.18-.136-.185-1.285-.375-.377.59" fill="#c8b100"/> - <path d="M276.033 210.468l.376.546 1.284-.397.136-.18-.136-.185-1.285-.375-.377.59" fill="none" stroke="#000" stroke-width=".25"/> - <path d="M279.655 210.468l-.378.546-1.285-.397-.136-.18.136-.185 1.285-.375.378.59" fill="#c8b100"/> - <path d="M279.655 210.468l-.378.546-1.285-.397-.136-.18.136-.185 1.285-.375.378.59" fill="none" stroke="#000" stroke-width=".25"/> - <path d="M272.48 209.053l-.646.61.827 1.092.22.087.164-.167.29-1.318-.854-.304" fill="#c8b100"/> - <path d="M272.48 209.053l-.646.61.827 1.092.22.087.164-.167.29-1.318-.854-.304" fill="none" stroke="#000" stroke-width=".25"/> - <path d="M271.124 211.24l.485.457 1.173-.633.09-.204-.168-.154-1.342-.116-.24.65" fill="#c8b100"/> - <path d="M271.124 211.24l.485.457 1.173-.633.09-.204-.168-.154-1.342-.116-.24.65" fill="none" stroke="#000" stroke-width=".25"/> - <path d="M274.666 210.53l-.248.602-1.344-.122-.174-.155.092-.207 1.178-.62.496.5" fill="#c8b100"/> - <path d="M274.666 210.53l-.248.602-1.344-.122-.174-.155.092-.207 1.178-.62.496.5" fill="none" stroke="#000" stroke-width=".25"/> - <path d="M269.832 211.41l-.11.64-1.346.14-.204-.117.05-.217 1.012-.84.598.395" fill="#c8b100"/> - <path d="M269.832 211.41l-.11.64-1.346.14-.204-.117.05-.217 1.012-.84.598.395" fill="none" stroke="#000" stroke-width=".25"/> - <path d="M272.42 210.863c0-.25.213-.45.472-.45a.46.46 0 0 1 .47.45.46.46 0 0 1-.47.446.46.46 0 0 1-.472-.447" fill="#c8b100"/> - <path d="M272.42 210.863c0-.25.213-.45.472-.45a.46.46 0 0 1 .47.45.46.46 0 0 1-.47.446.46.46 0 0 1-.472-.447z" fill="none" stroke="#000" stroke-width=".25"/> - <path d="M283.22 209.053l.647.61-.83 1.092-.22.087-.16-.167-.292-1.318.854-.304" fill="#c8b100"/> - <path d="M283.22 209.053l.647.61-.83 1.092-.22.087-.16-.167-.292-1.318.854-.304" fill="none" stroke="#000" stroke-width=".25"/> - <path d="M284.576 211.24l-.486.457-1.174-.633-.094-.204.174-.154 1.342-.116.238.65" fill="#c8b100"/> - <path d="M284.576 211.24l-.486.457-1.174-.633-.094-.204.174-.154 1.342-.116.238.65" fill="none" stroke="#000" stroke-width=".25"/> - <path d="M281.034 210.53l.247.602 1.345-.122.172-.155-.09-.207-1.176-.62-.496.5" fill="#c8b100"/> - <path d="M281.034 210.53l.247.602 1.345-.122.172-.155-.09-.207-1.176-.62-.496.5" fill="none" stroke="#000" stroke-width=".25"/> - <path d="M285.688 211.41l.108.64 1.34.14.204-.117-.05-.217-1.008-.84-.594.395" fill="#c8b100"/> - <path d="M285.688 211.41l.108.64 1.34.14.204-.117-.05-.217-1.008-.84-.594.395" fill="none" stroke="#000" stroke-width=".25"/> - <path d="M277.377 210.44c0-.252.207-.45.47-.45.257 0 .473.198.473.45 0 .245-.213.447-.472.447a.458.458 0 0 1-.47-.446" fill="#c8b100"/> - <path d="M277.377 210.44c0-.252.207-.45.47-.45.257 0 .473.198.473.45 0 .245-.213.447-.472.447a.458.458 0 0 1-.47-.446z" fill="none" stroke="#000" stroke-width=".25"/> - <path d="M282.344 210.863c0-.25.212-.45.47-.45.263 0 .478.2.478.45 0 .245-.215.446-.477.446a.46.46 0 0 1-.47-.447" fill="#c8b100"/> - <path d="M282.344 210.863c0-.25.212-.45.47-.45.263 0 .478.2.478.45 0 .245-.215.446-.477.446a.46.46 0 0 1-.47-.447z" fill="none" stroke="#000" stroke-width=".25"/> - <path d="M276.963 205.396c0-.465.396-.84.885-.84.488 0 .89.375.89.84 0 .463-.402.838-.89.838-.49 0-.885-.375-.885-.838" fill="#c8b100"/> - <path d="M278.474 205.098v.556h-1.368v-.556h.448v-1.254h-.595v-.56h.594v-.547h.586v.548h.583v.56h-.583v1.253h.33" fill="#c8b100"/> - <path d="M278.474 205.098v.556h-1.368v-.556h.448v-1.254h-.595v-.56h.594v-.547h.586v.548h.583v.56h-.583v1.253h.334z" fill="none" stroke="#000" stroke-width=".288"/> - <path d="M279.087 205.098v.556h-2.434v-.556h.9v-1.254h-.594v-.56h.594v-.547h.586v.548h.586v.56h-.586v1.253h.947" fill="#c8b100"/> - <path d="M278.104 204.59c.366.1.633.424.633.806 0 .463-.395.838-.89.838-.488 0-.884-.375-.884-.838 0-.39.278-.713.655-.812" fill="none" stroke="#000" stroke-width=".25"/> - <path d="M268.014 212.158c-.01.01-.364-.464-.63-.702-.187-.167-.647-.31-.647-.31 0-.085.27-.276.562-.276.168 0 .33.07.425.19l.034-.184s.237.045.34.308c.11.272.04.685.04.685s-.043.19-.126.288" fill="#c8b100"/> - <path d="M268.014 212.158c-.01.01-.364-.464-.63-.702-.187-.167-.647-.31-.647-.31 0-.085.27-.276.562-.276.168 0 .33.07.425.19l.034-.184s.237.045.34.308c.11.272.04.685.04.685s-.043.19-.126.288z" fill="none" stroke="#000" stroke-width=".25"/> - <path d="M268.032 211.923c.113-.116.342-.092.512.055.173.146.223.36.11.48-.11.12-.338.093-.51-.054-.173-.147-.223-.365-.112-.48" fill="#c8b100"/> - <path d="M268.032 211.923c.113-.116.342-.092.512.055.173.146.223.36.11.48-.11.12-.338.093-.51-.054-.173-.147-.223-.365-.112-.48z" fill="none" stroke="#000" stroke-width=".25"/> - <path d="M287.5 212.158c.016.01.364-.464.632-.702.184-.167.648-.31.648-.31 0-.085-.27-.276-.562-.276-.17 0-.33.07-.428.19l-.035-.184s-.24.045-.343.308c-.108.272-.04.685-.04.685s.043.19.13.288" fill="#c8b100"/> - <path d="M287.5 212.158c.016.01.364-.464.632-.702.184-.167.648-.31.648-.31 0-.085-.27-.276-.562-.276-.17 0-.33.07-.428.19l-.035-.184s-.24.045-.343.308c-.108.272-.04.685-.04.685s.043.19.13.288z" fill="none" stroke="#000" stroke-width=".25"/> - <path d="M287.514 211.923c-.114-.116-.342-.092-.516.055-.173.146-.22.36-.112.48.112.12.342.093.514-.054.173-.147.225-.365.114-.48" fill="#c8b100"/> - <path d="M287.514 211.923c-.114-.116-.342-.092-.516.055-.173.146-.22.36-.112.48.112.12.342.093.514-.054.173-.147.225-.365.114-.48z" fill="none" stroke="#000" stroke-width=".25"/> - <path d="M267.165 223.074h21.394v-5.608h-21.395v5.608z" fill="#c8b100"/> - <path d="M267.165 223.074h21.394v-5.608h-21.395v5.608z" fill="none" stroke="#000" stroke-width=".374"/> - <path d="M286.315 226.806a.944.944 0 0 0-.396-.06h-16.023c-.16 0-.31.026-.443.077.55-.183.947-.68.947-1.268 0-.586-.43-1.094-.985-1.285.133.04.312.08.47.08h16.034c.16 0 .312-.008.448-.053l-.09.014c-.572.178-.9.686-.9 1.245 0 .538.363 1.078.937 1.25" fill="#c8b100"/> - <path d="M286.315 226.806a.944.944 0 0 0-.396-.06h-16.023c-.16 0-.31.026-.443.077.55-.183.947-.68.947-1.268 0-.586-.43-1.094-.985-1.285.133.04.312.08.47.08h16.034c.16 0 .312-.008.448-.053l-.09.014c-.572.178-.9.686-.9 1.245 0 .538.363 1.078.937 1.25z" fill="none" stroke="#000" stroke-width=".374" stroke-linejoin="round"/> - <path d="M269.897 226.745h16.022c.538 0 .978.337.978.75 0 .416-.44.754-.98.754H269.9c-.545 0-.984-.34-.984-.755 0-.413.44-.75.983-.75" fill="#c8b100"/> - <path d="M269.897 226.745h16.022c.538 0 .978.337.978.75 0 .416-.44.754-.98.754H269.9c-.545 0-.984-.34-.984-.755 0-.413.44-.75.983-.75z" fill="none" stroke="#000" stroke-width=".374"/> - <path d="M269.885 223.074h16.034c.538 0 .978.286.978.634 0 .354-.44.64-.98.64h-16.033c-.542 0-.982-.286-.982-.64 0-.348.44-.634.982-.634" fill="#c8b100"/> - <path d="M269.885 223.074h16.034c.538 0 .978.286.978.634 0 .354-.44.64-.98.64h-16.033c-.542 0-.982-.286-.982-.64 0-.348.44-.634.982-.634z" fill="none" stroke="#000" stroke-width=".374"/> - <path d="M262.925 317.45c1.482 0 2.8-.31 3.77-.83.967-.49 2.273-.79 3.712-.79 1.444 0 2.787.304 3.752.797.964.51 2.302.822 3.764.822 1.476 0 2.8-.346 3.772-.863.957-.47 2.235-.758 3.642-.758 1.452 0 2.736.276 3.705.777.968.516 2.317.842 3.793.842v2.316c-1.476 0-2.825-.337-3.793-.848-.97-.498-2.253-.78-3.705-.78-1.407 0-2.685.29-3.642.763-.968.516-2.296.866-3.772.866-1.458 0-2.797-.32-3.765-.823-.966-.5-2.305-.805-3.753-.805-1.44 0-2.745.304-3.71.798-.973.517-2.27.83-3.75.83l-.022-2.317" fill="#005bbf"/> - <path d="M262.925 317.45c1.482 0 2.8-.31 3.77-.83.967-.49 2.273-.79 3.712-.79 1.444 0 2.787.304 3.752.797.964.51 2.302.822 3.764.822 1.476 0 2.8-.346 3.772-.863.957-.47 2.235-.758 3.642-.758 1.452 0 2.736.276 3.705.777.968.516 2.317.842 3.793.842v2.316c-1.476 0-2.825-.337-3.793-.848-.97-.498-2.253-.78-3.705-.78-1.407 0-2.685.29-3.642.763-.968.516-2.296.866-3.772.866-1.458 0-2.797-.32-3.765-.823-.966-.5-2.305-.805-3.753-.805-1.44 0-2.745.304-3.71.798-.973.517-2.27.83-3.75.83l-.022-2.317z" fill="none" stroke="#000" stroke-width=".374"/> - <path d="M262.925 319.766c1.482 0 2.8-.313 3.77-.83.967-.494 2.273-.798 3.712-.798 1.444 0 2.787.304 3.752.805.964.504 2.302.823 3.764.823 1.476 0 2.8-.35 3.772-.865.957-.473 2.235-.762 3.642-.762 1.452 0 2.736.282 3.705.78.968.51 2.317.848 3.793.848v2.312c-1.476 0-2.825-.33-3.793-.842-.97-.505-2.253-.784-3.705-.784-1.407 0-2.685.29-3.642.764-.968.515-2.296.862-3.772.862-1.458 0-2.797-.32-3.765-.825-.966-.497-2.305-.8-3.753-.8-1.44 0-2.745.303-3.71.797-.973.515-2.27.828-3.75.828l-.022-2.312" fill="#ccc"/> - <path d="M262.925 319.766c1.482 0 2.8-.313 3.77-.83.967-.494 2.273-.798 3.712-.798 1.444 0 2.787.304 3.752.805.964.504 2.302.823 3.764.823 1.476 0 2.8-.35 3.772-.865.957-.473 2.235-.762 3.642-.762 1.452 0 2.736.282 3.705.78.968.51 2.317.848 3.793.848v2.312c-1.476 0-2.825-.33-3.793-.842-.97-.505-2.253-.784-3.705-.784-1.407 0-2.685.29-3.642.764-.968.515-2.296.862-3.772.862-1.458 0-2.797-.32-3.765-.825-.966-.497-2.305-.8-3.753-.8-1.44 0-2.745.303-3.71.797-.973.515-2.27.828-3.75.828l-.022-2.312" fill="none" stroke="#000" stroke-width=".374"/> - <path d="M262.925 322.078c1.482 0 2.8-.313 3.77-.828.967-.494 2.273-.798 3.712-.798 1.444 0 2.787.304 3.752.8.964.506 2.302.826 3.764.826 1.476 0 2.8-.347 3.772-.862.957-.474 2.235-.764 3.642-.764 1.452 0 2.736.28 3.705.784.968.512 2.317.842 3.793.842v2.31c-1.476 0-2.825-.33-3.793-.844-.97-.497-2.253-.777-3.705-.777-1.407 0-2.685.29-3.642.76-.968.518-2.296.862-3.772.862-1.458 0-2.797-.317-3.765-.82-.966-.5-2.305-.803-3.753-.803-1.44 0-2.745.3-3.71.795-.973.52-2.27.827-3.75.827l-.022-2.312" fill="#005bbf"/> - <path d="M262.925 322.078c1.482 0 2.8-.313 3.77-.828.967-.494 2.273-.798 3.712-.798 1.444 0 2.787.304 3.752.8.964.506 2.302.826 3.764.826 1.476 0 2.8-.347 3.772-.862.957-.474 2.235-.764 3.642-.764 1.452 0 2.736.28 3.705.784.968.512 2.317.842 3.793.842v2.31c-1.476 0-2.825-.33-3.793-.844-.97-.497-2.253-.777-3.705-.777-1.407 0-2.685.29-3.642.76-.968.518-2.296.862-3.772.862-1.458 0-2.797-.317-3.765-.82-.966-.5-2.305-.803-3.753-.803-1.44 0-2.745.3-3.71.795-.973.52-2.27.827-3.75.827l-.022-2.312" fill="none" stroke="#000" stroke-width=".374"/> - <path d="M262.946 326.704c1.48 0 2.778-.313 3.75-.83.966-.492 2.272-.793 3.71-.793 1.445 0 2.788.302 3.753.8.964.505 2.302.824 3.764.824 1.476 0 2.8-.348 3.772-.866.957-.47 2.235-.757 3.642-.757 1.452 0 2.736.28 3.705.78.968.514 2.317.844 3.793.844v-2.3c-1.476 0-2.825-.345-3.793-.86-.97-.497-2.253-.777-3.705-.777-1.407 0-2.685.29-3.642.76-.968.518-2.296.862-3.772.862-1.458 0-2.797-.317-3.765-.82-.966-.5-2.305-.803-3.753-.803-1.44 0-2.745.3-3.71.795-.973.52-2.29.827-3.772.827l.02 2.314" fill="#ccc"/> - <path d="M262.946 326.704c1.48 0 2.778-.313 3.75-.83.966-.492 2.272-.793 3.71-.793 1.445 0 2.788.302 3.753.8.964.505 2.302.824 3.764.824 1.476 0 2.8-.348 3.772-.866.957-.47 2.235-.757 3.642-.757 1.452 0 2.736.28 3.705.78.968.514 2.317.844 3.793.844v-2.3c-1.476 0-2.825-.345-3.793-.86-.97-.497-2.253-.777-3.705-.777-1.407 0-2.685.29-3.642.76-.968.518-2.296.862-3.772.862-1.458 0-2.797-.317-3.765-.82-.966-.5-2.305-.803-3.753-.803-1.44 0-2.745.3-3.71.795-.973.52-2.29.827-3.772.827l.02 2.314" fill="none" stroke="#000" stroke-width=".374"/> - <path d="M262.946 329.02c1.48 0 2.778-.315 3.75-.83.966-.497 2.272-.8 3.71-.8 1.445 0 2.788.306 3.753.804.964.504 2.302.825 3.764.825 1.476 0 2.8-.352 3.772-.867.957-.473 2.235-.763 3.642-.763 1.452 0 2.736.283 3.705.783.968.512 2.317.846 3.793.846v-2.296c-1.476 0-2.825-.35-3.793-.865-.97-.5-2.253-.775-3.705-.775-1.407 0-2.685.286-3.642.757-.968.514-2.296.862-3.772.862-1.458 0-2.797-.32-3.765-.824-.966-.498-2.305-.795-3.753-.795-1.44 0-2.745.297-3.71.79-.973.516-2.286.83-3.765.83l.014 2.314" fill="#005bbf"/> - <path d="M262.946 329.02c1.48 0 2.778-.315 3.75-.83.966-.497 2.272-.8 3.71-.8 1.445 0 2.788.306 3.753.804.964.504 2.302.825 3.764.825 1.476 0 2.8-.352 3.772-.867.957-.473 2.235-.763 3.642-.763 1.452 0 2.736.283 3.705.783.968.512 2.317.846 3.793.846v-2.296c-1.476 0-2.825-.35-3.793-.865-.97-.5-2.253-.775-3.705-.775-1.407 0-2.685.286-3.642.757-.968.514-2.296.862-3.772.862-1.458 0-2.797-.32-3.765-.824-.966-.498-2.305-.795-3.753-.795-1.44 0-2.745.297-3.71.79-.973.516-2.286.83-3.765.83l.014 2.314z" fill="none" stroke="#000" stroke-width=".374"/> - <path d="M286.31 307.952c-.05.195-.117.386-.117.593 0 1.404 1.21 2.522 2.69 2.522H266.87c1.478 0 2.69-1.118 2.69-2.522 0-.205-.04-.398-.085-.593.12.045.27.05.418.05h16.022c.13 0 .28-.013.392-.05" fill="#c8b100"/> - <path d="M286.31 307.952c-.05.195-.117.386-.117.593 0 1.404 1.21 2.522 2.69 2.522H266.87c1.478 0 2.69-1.118 2.69-2.522 0-.205-.04-.398-.085-.593.12.045.27.05.418.05h16.022c.13 0 .28-.013.392-.05h.004z" fill="none" stroke="#000" stroke-width=".374" stroke-linejoin="round"/> - <path d="M269.897 306.496h16.022c.538 0 .978.34.978.754 0 .416-.44.754-.98.754H269.9c-.545 0-.984-.338-.984-.754 0-.413.44-.754.983-.754" fill="#c8b100"/> - <path d="M269.897 306.496h16.022c.538 0 .978.34.978.754 0 .416-.44.754-.98.754H269.9c-.545 0-.984-.338-.984-.754 0-.413.44-.754.983-.754z" fill="none" stroke="#000" stroke-width=".374"/> - <path d="M266.895 316.668h21.962v-5.6h-21.962v5.6z" fill="#c8b100"/> - <path d="M266.895 316.668h21.962v-5.6h-21.962v5.6z" fill="none" stroke="#000" stroke-width=".374"/> - <path d="M290.572 286.673c2.175 1.255 3.65 2.54 3.413 3.18-.12.59-.81 1.03-1.796 1.685-1.553 1.08-2.5 3.01-1.76 3.9-1.282-1.036-2.093-2.584-2.093-4.306 0-1.8.854-3.422 2.235-4.46" fill="#ad1519"/> - <path d="M290.572 286.673c2.175 1.255 3.65 2.54 3.413 3.18-.12.59-.81 1.03-1.796 1.685-1.553 1.08-2.5 3.01-1.76 3.9-1.282-1.036-2.093-2.584-2.093-4.306 0-1.8.854-3.422 2.235-4.46z" fill="none" stroke="#000" stroke-width=".374"/> - <path d="M270.106 305.59h15.604v-76.45h-15.604v76.45z" fill="#ccc"/> - <path d="M281.425 229.11v76.29m1.754-76.287V305.4m-13.073.19h15.604v-76.45h-15.604v76.45z" fill="none" stroke="#000" stroke-width=".374"/> - <path d="M254.167 257.735c3.407-1.407 9.197-2.45 15.838-2.67 2.288.02 4.84.234 7.476.673 9.33 1.557 16.44 5.283 15.875 8.318-.01.064-.03.196-.047.255 0 0 3.5-7.883 3.553-8.184.627-3.368-7.256-7.506-17.615-9.234a53.48 53.48 0 0 0-9.176-.727c-6.63 0-12.39.85-15.86 2.138l-.043 9.432" fill="#ad1519"/> - <path d="M254.167 257.735c3.407-1.407 9.197-2.45 15.838-2.67 2.288.02 4.84.234 7.476.673 9.33 1.557 16.44 5.283 15.875 8.318-.01.064-.03.196-.047.255 0 0 3.5-7.883 3.553-8.184.627-3.368-7.256-7.506-17.615-9.234a53.48 53.48 0 0 0-9.176-.727c-6.63 0-12.39.85-15.86 2.138l-.043 9.432" fill="none" stroke="#000" stroke-width=".374" stroke-linejoin="round"/> - <path d="M285.738 267.33c4.327-.31 7.282-1.465 7.617-3.274.27-1.442-1.195-3.038-3.805-4.486-1.17.125-2.484.286-3.84.286l.028 7.475" fill="#ad1519"/> - <path d="M285.738 267.33c4.327-.31 7.282-1.465 7.617-3.274.27-1.442-1.195-3.038-3.805-4.486-1.17.125-2.484.286-3.84.286l.028 7.475" fill="none" stroke="#000" stroke-width=".374"/> - <path d="M270.08 261.49c-2.706.408-4.734 1.08-5.748 1.904l-.09.166c-.486.99 1.892 3.093 5.86 5.442l-.02-7.513" fill="#ad1519"/> - <path d="M270.08 261.49c-2.706.408-4.734 1.08-5.748 1.904l-.09.166c-.486.99 1.892 3.093 5.86 5.442l-.02-7.513" fill="none" stroke="#000" stroke-width=".374"/> - <path d="M295.428 282.08c.41-1.236-3.81-3.707-9.772-5.895-2.725-.975-4.976-1.992-7.764-3.22-8.283-3.664-14.402-7.867-13.647-9.4l.08-.157c-.436.358-1.12 7.908-1.12 7.908-.755 1.405 4.846 5.546 12.464 9.2 2.44 1.167 7.598 3.072 10.032 3.924 4.352 1.51 8.676 4.358 8.283 5.414l1.443-7.77" fill="#ad1519"/> - <path d="M295.428 282.08c.41-1.236-3.81-3.707-9.772-5.895-2.725-.975-4.976-1.992-7.764-3.22-8.283-3.664-14.402-7.867-13.647-9.4l.08-.157c-.436.358-1.12 7.908-1.12 7.908-.755 1.405 4.846 5.546 12.464 9.2 2.44 1.167 7.598 3.072 10.032 3.924 4.352 1.51 8.676 4.358 8.283 5.414l1.443-7.77v-.005z" fill="none" stroke="#000" stroke-width=".374" stroke-linejoin="round"/> - <path d="M263.892 254.385c.59-2.24 1.353-4.405 2.102-6.597-.165.045-.344.08-.51.106a5.2 5.2 0 0 1-.522.047c-.356 1.576-.84 3.16-1.357 4.74-.922-1.384-1.926-2.728-2.725-4.125-.32.065-.652.143-.98.192-.32.047-.662.07-.992.102a131.248 131.248 0 0 1 4.032 5.674c.154-.04.304-.092.475-.116.154-.02.316-.017.477-.023m5.934-6.552c-.286.013-.57.034-.855.03-.282-.004-.566-.037-.847-.058l-.116 6.156 4.305.074c-.022-.126-.054-.263-.05-.392 0-.127.04-.26.06-.386-.77.05-1.61.1-2.598.082l.102-5.505m6.757 1.011c.688.058 1.35.177 2.013.297-.012-.13-.032-.26-.022-.393.01-.126.06-.253.094-.376l-5.83-.483c.015.13.037.257.023.382-.01.137-.058.26-.09.385a19.3 19.3 0 0 1 2.113.048l-.508 5.54c.284.006.568.003.85.026.283.022.565.073.845.115l.508-5.54m2.388 6.067c.28.044.564.077.843.14.277.057.548.147.818.224l.69-2.83.076.018c.16.388.37.862.48 1.135l.863 2.138c.338.054.675.098 1.008.17.34.075.668.174.996.266l-.298-.64c-.465-.966-.954-1.927-1.357-2.904 1.073.047 1.905-.342 2.113-1.204.148-.6-.09-1.07-.656-1.474-.416-.296-1.226-.453-1.748-.57l-2.35-.513-1.476 6.043m3.015-5.205c.678.15 1.524.26 1.524 1.03-.004.193-.023.33-.054.452-.22.904-.904 1.217-2.045.876l.575-2.358m8.082 7.05c-.052.668-.17 1.316-.3 2.018.294.14.586.266.87.422.285.158.547.33.82.502l.577-6.942a3.41 3.41 0 0 1-.75-.41l-6.12 3.888c.163.078.33.15.488.235.16.09.292.184.45.273.514-.433 1.054-.784 1.674-1.244l2.29 1.254v.003zm-1.734-1.585l2.038-1.32-.237 2.302-1.8-.982" fill="#c8b100"/> - <path d="M182.19 192.43c0-1.09.933-1.973 2.08-1.973 1.146 0 2.082.883 2.082 1.974 0 1.09-.932 1.97-2.08 1.97-1.15 0-2.08-.88-2.08-1.97z" fill="none" stroke="#000" stroke-width=".048"/> - <path d="M205.663 175.414c6.38 0 12.055.944 15.752 2.41 2.116.955 4.957 1.66 8.067 2.076 2.368.317 4.618.38 6.576.232 2.618-.05 6.404.715 10.19 2.382 3.135 1.39 5.752 3.082 7.49 4.72l-1.504 1.34-.435 3.802-4.127 4.724-2.062 1.75-4.884 3.91-2.495.204-.757 2.16-31.602-3.704-31.696 3.703-.76-2.16-2.498-.202-4.884-3.91-2.062-1.75-4.125-4.724-.43-3.803-1.51-1.34c1.745-1.637 4.362-3.328 7.49-4.72 3.787-1.666 7.574-2.432 10.19-2.38 1.957.148 4.208.084 6.576-.233 3.113-.416 5.956-1.12 8.068-2.076 3.7-1.466 9.06-2.41 15.435-2.41z" fill="#ad1519" stroke="#000" stroke-width=".25"/> - <path d="M206.148 217.132c-11.774-.017-22.32-1.41-29.846-3.678-.55-.167-.84-.672-.807-1.194-.01-.507.275-.967.807-1.128 7.526-2.264 18.072-3.658 29.846-3.675 11.77.017 22.31 1.41 29.838 3.675.532.16.812.62.802 1.128.03.522-.255 1.027-.802 1.194-7.527 2.267-18.067 3.66-29.838 3.678" fill="#c8b100" stroke="#000" stroke-width=".374"/> - <path d="M206.12 215.587c-10.626-.013-20.23-1.24-27.54-3.128 7.31-1.894 16.914-3.05 27.54-3.07 10.622.02 20.277 1.176 27.588 3.07-7.31 1.887-16.966 3.114-27.59 3.127" fill="#ad1519"/> - <path d="M206.908 215.652v-6.305" fill="none" stroke="#000" stroke-width=".086"/> - <path d="M205.196 215.652v-6.305" fill="none" stroke="#000" stroke-width=".134"/> - <path d="M203.58 215.652v-6.305" fill="none" stroke="#000" stroke-width=".173"/> - <path d="M201.977 215.652v-6.305" fill="none" stroke="#000" stroke-width=".221"/> - <path d="M200.548 215.652v-6.305" fill="none" stroke="#000" stroke-width=".269"/> - <path d="M197.825 215.312l-.038-5.738m1.33 5.814v-6.003" fill="none" stroke="#000" stroke-width=".317"/> - <path d="M195.31 215.053v-5.286m1.274 5.438l-.037-5.626" fill="none" stroke="#000" stroke-width=".355"/> - <path d="M191.938 214.752v-4.645m1.106 4.72v-4.87m1.14 5.022v-5.063" fill="none" stroke="#000" stroke-width=".403"/> - <path d="M190.755 214.714v-4.494" fill="none" stroke="#000" stroke-width=".442"/> - <path d="M189.653 214.487v-4.19" fill="none" stroke="#000" stroke-width=".49"/> - <path d="M188.47 214.374v-3.89" fill="none" stroke="#000" stroke-width=".538"/> - <path d="M186.05 214.035l-.038-3.097m1.28 3.248v-3.475" fill="none" stroke="#000" stroke-width=".576"/> - <path d="M184.81 213.77v-2.72" fill="none" stroke="#000" stroke-width=".605"/> - <path d="M183.673 213.55v-2.266" fill="none" stroke="#000" stroke-width=".653"/> - <path d="M182.433 213.248v-1.774" fill="none" stroke="#000" stroke-width=".701"/> - <path d="M181.158 213.097v-1.32" fill="none" stroke="#000" stroke-width=".739"/> - <path d="M179.81 212.795v-.642" fill="none" stroke="#000" stroke-width=".874"/> - <path d="M213.72 215.312v-5.776m-2.9 5.965l.038-6.115m-2.153 6.192v-6.23" fill="none" stroke="#000" stroke-width=".048"/> - <path d="M206.066 207.447c-11.914.023-22.608 1.517-30.135 3.836.626-.298.57-1.068-.208-3.07-.94-2.426-2.404-2.32-2.404-2.32 8.322-2.457 19.905-3.995 32.798-4.013 12.898.018 24.575 1.556 32.897 4.013 0 0-1.465-.106-2.404 2.32-.78 2.002-.837 2.772-.21 3.07-7.526-2.32-18.42-3.813-30.334-3.836" fill="#c8b100" stroke="#000" stroke-width=".374"/> - <path d="M206.116 201.883c-12.893.02-24.476 1.555-32.798 4.017-.555.166-1.142-.05-1.32-.576-.18-.526.118-1.13.673-1.3 8.358-2.563 20.24-4.172 33.45-4.2 13.212.025 25.14 1.637 33.497 4.2.555.17.854.774.674 1.3-.18.525-.766.742-1.32.576-8.323-2.462-19.956-3.996-32.854-4.017" fill="#c8b100" stroke="#000" stroke-width=".374"/> - <path d="M206.12 215.587c-10.626-.013-20.23-1.24-27.54-3.128 7.31-1.894 16.914-3.05 27.54-3.07 10.622.02 20.277 1.176 27.588 3.07-7.31 1.887-16.966 3.114-27.59 3.127z" fill="none" stroke="#000" stroke-width=".374" stroke-linejoin="round"/> - <path d="M196.92 204.812c0-.55.47-.995 1.05-.995.584 0 1.057.446 1.057.995 0 .548-.473 1-1.056 1-.58 0-1.05-.452-1.05-1" fill="#fff" stroke="#000" stroke-width=".374"/> - <path d="M206.142 205.596h-3.154c-.582 0-1.065-.443-1.065-.995 0-.548.472-.997 1.052-.997h6.376c.58 0 1.054.45 1.054.998 0 .553-.482.996-1.067.996h-3.195" fill="#ad1519" stroke="#000" stroke-width=".374"/> - <path d="M190.293 206.465l-2.27.263c-.578.07-1.115-.32-1.187-.863-.07-.548.34-1.046.92-1.11l2.282-.266 2.32-.268c.576-.067 1.102.314 1.174.863.07.545-.352 1.046-.928 1.11l-2.31.27" fill="#058e6e" stroke="#000" stroke-width=".374"/> - <path d="M181.072 206.664c0-.55.47-.996 1.05-.996.584 0 1.055.447 1.055.996 0 .552-.47.998-1.055.998-.58 0-1.05-.446-1.05-.998" fill="#fff" stroke="#000" stroke-width=".374"/> - <path d="M174.056 208.477l1.17-1.53 3.233.408-2.587 1.886-1.817-.763" fill="#ad1519" stroke="#000" stroke-width=".374"/> - <path d="M221.995 206.465l2.267.263c.575.07 1.117-.32 1.188-.863.065-.548-.342-1.046-.918-1.11l-2.282-.266-2.32-.268c-.58-.067-1.106.314-1.175.863-.072.545.353 1.046.928 1.11l2.312.27" fill="#058e6e" stroke="#000" stroke-width=".374"/> - <path d="M213.26 204.812c0-.55.474-.995 1.054-.995.582 0 1.054.446 1.054.995 0 .548-.472 1-1.054 1-.58 0-1.053-.452-1.053-1m15.849 1.852c0-.55.472-.996 1.052-.996.583 0 1.054.447 1.054.996 0 .552-.47.998-1.054.998-.58 0-1.052-.446-1.052-.998" fill="#fff" stroke="#000" stroke-width=".374"/> - <path d="M238.23 208.477l-1.168-1.53-3.233.408 2.584 1.886 1.817-.763" fill="#ad1519" stroke="#000" stroke-width=".374"/> - <path d="M177.31 212.796c7.444-2.09 17.566-3.385 28.81-3.406 11.242.02 21.414 1.316 28.858 3.406" fill="none" stroke="#000" stroke-width=".374"/> - <path d="M182.324 183.762l1.332 1.068 1.997-3.262c-2.167-1.327-3.653-3.63-3.653-6.257 0-.295.017-.584.055-.87.208-4.164 5.28-7.604 11.718-7.604 3.34 0 6.358.914 8.482 2.38.057-.644.115-1.196.205-1.782-2.34-1.365-5.375-2.185-8.687-2.185-7.403 0-13.195 4.204-13.476 9.186-.03.29-.043.583-.043.875 0 2.658 1.213 5.05 3.13 6.714l-1.06 1.738" fill="#c8b100"/> - <path d="M182.324 183.762l1.332 1.068 1.997-3.262c-2.167-1.327-3.653-3.63-3.653-6.257 0-.295.017-.584.055-.87.208-4.164 5.28-7.604 11.718-7.604 3.34 0 6.358.914 8.482 2.38.057-.644.115-1.196.205-1.782-2.34-1.365-5.375-2.185-8.687-2.185-7.403 0-13.195 4.204-13.476 9.186-.03.29-.043.583-.043.875 0 2.658 1.213 5.05 3.13 6.714l-1.06 1.738" fill="none" stroke="#000" stroke-width=".374"/> - <path d="M182.41 183.8c-2.527-1.886-4.095-4.45-4.095-7.27 0-3.254 2.126-6.154 5.358-8.077-1.994 1.6-3.203 3.67-3.376 5.983-.03.29-.043.583-.043.875 0 2.658 1.213 5.05 3.13 6.714l-.974 1.775" fill="#c8b100"/> - <path d="M182.41 183.8c-2.527-1.886-4.095-4.45-4.095-7.27 0-3.254 2.126-6.154 5.358-8.077-1.994 1.6-3.203 3.67-3.376 5.983-.03.29-.043.583-.043.875 0 2.658 1.213 5.05 3.13 6.714l-.974 1.775" fill="none" stroke="#000" stroke-width=".374"/> - <path d="M160.12 187.092c-1.416-1.584-2.283-3.633-2.283-5.873 0-1.352.312-2.643.877-3.795 2.045-4.206 8.46-7.268 16.083-7.268 2.078 0 4.065.226 5.9.644-.407.445-.726.932-1.038 1.423a25.514 25.514 0 0 0-4.863-.457c-6.98 0-12.818 2.714-14.51 6.38a7.065 7.065 0 0 0-.702 3.073c0 2.228 1.044 4.226 2.678 5.59l-2.526 4.127-1.353-1.076 1.735-2.764" fill="#c8b100"/> - <path d="M160.12 187.092c-1.416-1.584-2.283-3.633-2.283-5.873 0-1.352.312-2.643.877-3.795 2.045-4.206 8.46-7.268 16.083-7.268 2.078 0 4.065.226 5.9.644-.407.445-.726.932-1.038 1.423a25.514 25.514 0 0 0-4.863-.457c-6.98 0-12.818 2.714-14.51 6.38a7.065 7.065 0 0 0-.702 3.073c0 2.228 1.044 4.226 2.678 5.59l-2.526 4.127-1.353-1.076 1.735-2.764v-.004z" fill="none" stroke="#000" stroke-width=".374"/> - <path d="M162.707 173.263c-1.837 1.156-3.226 2.577-3.993 4.162a8.596 8.596 0 0 0-.877 3.794c0 2.24.867 4.288 2.282 5.872l-1.535 2.49c-1.468-1.887-2.322-4.088-2.322-6.43 0-4.033 2.566-7.557 6.444-9.89" fill="#c8b100"/> - <path d="M162.707 173.263c-1.837 1.156-3.226 2.577-3.993 4.162a8.596 8.596 0 0 0-.877 3.794c0 2.24.867 4.288 2.282 5.872l-1.535 2.49c-1.468-1.887-2.322-4.088-2.322-6.43 0-4.033 2.566-7.557 6.444-9.89z" fill="none" stroke="#000" stroke-width=".374"/> - <path d="M206.037 164.416c1.692 0 3.146 1.12 3.493 2.62.226 1.325.367 2.835.398 4.444.003.167-.01.33-.01.494.004.19.04.396.043.59.06 3.374.54 6.354 1.228 8.178l-5.153 4.93-5.21-4.93c.69-1.824 1.17-4.804 1.234-8.178.003-.194.04-.4.04-.59 0-.164-.01-.327-.007-.494.025-1.61.17-3.12.395-4.445.343-1.5 1.858-2.62 3.546-2.62" fill="#c8b100"/> - <path d="M206.037 164.416c1.692 0 3.146 1.12 3.493 2.62.226 1.325.367 2.835.398 4.444.003.167-.01.33-.01.494.004.19.04.396.043.59.06 3.374.54 6.354 1.228 8.178l-5.153 4.93-5.21-4.93c.69-1.824 1.17-4.804 1.234-8.178.003-.194.04-.4.04-.59 0-.164-.01-.327-.007-.494.025-1.61.17-3.12.395-4.445.343-1.5 1.858-2.62 3.546-2.62h.003z" fill="none" stroke="#000" stroke-width=".374"/> - <path d="M206.037 166.022c.88 0 1.62.56 1.8 1.336.213 1.254.35 2.687.378 4.2 0 .157-.008.314-.008.466 0 .188.032.376.036.567.055 3.188.512 5.997 1.167 7.726l-3.4 3.218-3.4-3.218c.65-1.725 1.106-4.538 1.163-7.725.004-.19.037-.378.04-.566 0-.152-.01-.31-.01-.466a28.14 28.14 0 0 1 .38-4.2c.177-.776.98-1.336 1.854-1.336" fill="#c8b100"/> - <path d="M206.037 166.022c.88 0 1.62.56 1.8 1.336.213 1.254.35 2.687.378 4.2 0 .157-.008.314-.008.466 0 .188.032.376.036.567.055 3.188.512 5.997 1.167 7.726l-3.4 3.218-3.4-3.218c.65-1.725 1.106-4.538 1.163-7.725.004-.19.037-.378.04-.566 0-.152-.01-.31-.01-.466a28.14 28.14 0 0 1 .38-4.2c.177-.776.98-1.336 1.854-1.336z" fill="none" stroke="#000" stroke-width=".374"/> - <path d="M229.712 183.762l-1.332 1.068-1.997-3.262c2.165-1.327 3.653-3.63 3.653-6.257a7.08 7.08 0 0 0-.053-.87c-.207-4.164-5.285-7.604-11.718-7.604-3.348 0-6.36.914-8.487 2.38a23.008 23.008 0 0 0-.206-1.782c2.34-1.365 5.374-2.185 8.693-2.185 7.402 0 13.192 4.204 13.476 9.186.026.29.04.583.04.875 0 2.658-1.21 5.05-3.13 6.714l1.062 1.738" fill="#c8b100"/> - <path d="M229.712 183.762l-1.332 1.068-1.997-3.262c2.165-1.327 3.653-3.63 3.653-6.257a7.08 7.08 0 0 0-.053-.87c-.207-4.164-5.285-7.604-11.718-7.604-3.348 0-6.36.914-8.487 2.38a23.008 23.008 0 0 0-.206-1.782c2.34-1.365 5.374-2.185 8.693-2.185 7.402 0 13.192 4.204 13.476 9.186.026.29.04.583.04.875 0 2.658-1.21 5.05-3.13 6.714l1.062 1.738" fill="none" stroke="#000" stroke-width=".374"/> - <path d="M229.626 183.8c2.526-1.886 4.096-4.45 4.096-7.27 0-3.254-2.128-6.154-5.356-8.077 1.99 1.6 3.2 3.67 3.375 5.983.026.29.04.583.04.875 0 2.658-1.21 5.05-3.13 6.714l.976 1.775" fill="#c8b100"/> - <path d="M229.626 183.8c2.526-1.886 4.096-4.45 4.096-7.27 0-3.254-2.128-6.154-5.356-8.077 1.99 1.6 3.2 3.67 3.375 5.983.026.29.04.583.04.875 0 2.658-1.21 5.05-3.13 6.714l.976 1.775" fill="none" stroke="#000" stroke-width=".374"/> - <path d="M251.92 187.092c1.412-1.584 2.278-3.633 2.278-5.873a8.654 8.654 0 0 0-.873-3.795c-2.05-4.206-8.462-7.268-16.088-7.268-2.077 0-4.063.226-5.9.644.412.445.73.932 1.043 1.423a25.447 25.447 0 0 1 4.854-.457c6.98 0 12.822 2.714 14.51 6.38.453.936.703 1.98.703 3.073 0 2.228-1.045 4.226-2.68 5.59l2.528 4.127 1.357-1.076-1.734-2.764" fill="#c8b100"/> - <path d="M251.92 187.092c1.412-1.584 2.278-3.633 2.278-5.873a8.654 8.654 0 0 0-.873-3.795c-2.05-4.206-8.462-7.268-16.088-7.268-2.077 0-4.063.226-5.9.644.412.445.73.932 1.043 1.423a25.447 25.447 0 0 1 4.854-.457c6.98 0 12.822 2.714 14.51 6.38.453.936.703 1.98.703 3.073 0 2.228-1.045 4.226-2.68 5.59l2.528 4.127 1.357-1.076-1.734-2.764.003-.004z" fill="none" stroke="#000" stroke-width=".374"/> - <path d="M249.33 173.263c1.835 1.156 3.225 2.577 3.995 4.162a8.7 8.7 0 0 1 .873 3.794c0 2.24-.866 4.288-2.277 5.872l1.53 2.49c1.47-1.887 2.318-4.088 2.318-6.43 0-4.033-2.562-7.557-6.438-9.89" fill="#c8b100"/> - <path d="M249.33 173.263c1.835 1.156 3.225 2.577 3.995 4.162a8.7 8.7 0 0 1 .873 3.794c0 2.24-.866 4.288-2.277 5.872l1.53 2.49c1.47-1.887 2.318-4.088 2.318-6.43 0-4.033-2.562-7.557-6.438-9.89z" fill="none" stroke="#000" stroke-width=".374"/> - <path d="M204.206 181.376c0-.955.82-1.724 1.83-1.724 1.007 0 1.827.77 1.827 1.724 0 .958-.82 1.732-1.828 1.732-1.01 0-1.83-.774-1.83-1.732" fill="#fff"/> - <path d="M204.206 181.376c0-.955.82-1.724 1.83-1.724 1.007 0 1.827.77 1.827 1.724 0 .958-.82 1.732-1.828 1.732-1.01 0-1.83-.774-1.83-1.732z" fill="none" stroke="#000" stroke-width=".374"/> - <path d="M204.206 177.984c0-.954.82-1.732 1.83-1.732 1.007 0 1.827.778 1.827 1.732 0 .955-.82 1.728-1.828 1.728-1.01 0-1.83-.773-1.83-1.728m.367-3.648c0-.764.656-1.38 1.463-1.38.8 0 1.457.616 1.457 1.38 0 .763-.656 1.38-1.457 1.38-.807 0-1.463-.617-1.463-1.38m.41-3.29c0-.547.473-.994 1.053-.994.582 0 1.05.447 1.05.994 0 .553-.468 1-1.05 1-.58 0-1.053-.447-1.053-1m.21-2.876c0-.444.376-.798.843-.798.463 0 .84.354.84.798 0 .44-.377.798-.84.798-.467 0-.843-.358-.843-.798" fill="#fff" stroke="#000" stroke-width=".374"/> - <path d="M206.19 191.786l1.187.22c-.19.48-.23 1.004-.23 1.557 0 2.464 2.116 4.47 4.72 4.47 2.093 0 3.875-1.296 4.487-3.086.07.047.45-1.616.648-1.595.165.017.147 1.728.208 1.697.303 2.252 2.362 3.777 4.68 3.777 2.602 0 4.712-1.995 4.712-4.463 0-.184-.01-.368-.036-.546l1.48-1.466.793 1.868c-.316.587-.442 1.246-.442 1.95 0 2.357 2.016 4.262 4.503 4.262 1.566 0 2.94-.753 3.748-1.895l.947-1.204-.007 1.476c0 1.482.626 2.812 2.073 3.046 0 0 1.662.103 3.863-1.625 2.203-1.728 3.416-3.16 3.416-3.16l.19 1.732s-1.83 2.827-3.82 3.98c-1.087.632-2.74 1.297-4.052 1.083-1.39-.226-2.38-1.34-2.89-2.625a6.72 6.72 0 0 1-3.413.923c-2.692 0-5.112-1.476-6.07-3.698-1.237 1.336-2.962 2.157-4.984 2.157-2.148 0-4.118-.967-5.352-2.454a6.934 6.934 0 0 1-4.68 1.787c-2.38 0-4.502-1.167-5.705-2.926-1.202 1.758-3.323 2.925-5.7 2.925a6.943 6.943 0 0 1-4.68-1.787c-1.23 1.487-3.204 2.454-5.353 2.454-2.023 0-3.747-.82-4.987-2.157-.956 2.222-3.374 3.698-6.068 3.698a6.698 6.698 0 0 1-3.408-.923c-.515 1.284-1.505 2.4-2.89 2.625-1.315.214-2.967-.45-4.056-1.084-1.99-1.15-3.817-3.978-3.817-3.978l.192-1.73s1.213 1.43 3.412 3.16c2.204 1.73 3.863 1.624 3.863 1.624 1.447-.234 2.072-1.564 2.072-3.047l-.007-1.477.947 1.204c.806 1.142 2.186 1.895 3.748 1.895 2.487 0 4.502-1.905 4.502-4.26 0-.706-.127-1.365-.443-1.952l.793-1.868 1.482 1.466a4.442 4.442 0 0 0-.036.546c0 2.468 2.106 4.463 4.71 4.463 2.322 0 4.377-1.525 4.68-3.778.064.03.047-1.68.21-1.698.197-.02.58 1.642.646 1.595.615 1.79 2.394 3.085 4.493 3.085 2.604 0 4.714-2.005 4.714-4.47 0-.552-.033-1.077-.227-1.557l1.232-.22" fill="#c8b100" stroke="#000" stroke-width=".374"/> - <path d="M238.6 197.676c.27-.8.028-1.59-.548-1.764-.576-.18-1.268.324-1.54 1.12-.275.8-.03 1.586.547 1.767.574.172 1.265-.33 1.54-1.124m-20.519-3.973c.105-.835-.294-1.564-.895-1.633-.6-.072-1.177.544-1.285 1.377-.108.83.29 1.565.892 1.637.602.067 1.178-.55 1.287-1.382m-23.827.001c-.107-.835.296-1.564.893-1.633.6-.072 1.177.544 1.286 1.377.104.83-.29 1.565-.892 1.637-.602.067-1.178-.55-1.286-1.382m-20.518 3.975c-.273-.8-.028-1.59.548-1.764.576-.18 1.263.324 1.537 1.12.27.8.025 1.586-.548 1.767-.576.172-1.263-.33-1.537-1.124" fill="#fff" stroke="#000" stroke-width=".374"/> - <path d="M182.648 183.984c1.02.643 1.908 1.715 2.217 2.912 0 0 .12-.246.68-.57.566-.317 1.044-.308 1.044-.308s-.162.93-.242 1.266c-.082.327-.09 1.326-.305 2.226-.217.9-.61 1.62-.61 1.62a1.9 1.9 0 0 0-1.51-.4 1.832 1.832 0 0 0-1.275.862s-.63-.548-1.156-1.322c-.53-.775-.89-1.71-1.09-1.992-.2-.286-.685-1.11-.685-1.11s.447-.168 1.092-.05c.642.12.844.315.844.315-.136-1.23.27-2.516.994-3.45" fill="#c8b100" stroke="#000" stroke-width=".374"/> - <path d="M183.08 193.785a1.745 1.745 0 0 1-.648-1.037c-.08-.42.01-.835.224-1.176 0 0-.85-.43-1.762-.668-.69-.18-1.906-.188-2.274-.194l-1.1-.027s.06.167.268.53c.252.44.476.716.476.716-1.218.28-2.254 1.08-2.91 2.008.952.657 2.216 1.056 3.456.93 0 0-.108.332-.186.832-.065.413-.06.584-.06.584l1.024-.38c.342-.125 1.484-.52 2.07-.916.766-.525 1.422-1.2 1.422-1.2m2.728-.46a1.65 1.65 0 0 0 .235-1.18 1.72 1.72 0 0 0-.634-1.035s.64-.68 1.406-1.2c.584-.396 1.727-.795 2.07-.917.342-.126 1.026-.382 1.026-.382s.003.174-.062.587a5.742 5.742 0 0 1-.187.828c1.243-.13 2.508.286 3.46.948-.655.923-1.7 1.71-2.912 1.99a6.44 6.44 0 0 0 .745 1.248s-.734-.017-1.1-.023c-.368-.006-1.584-.01-2.275-.194-.91-.243-1.772-.665-1.772-.665" fill="#c8b100" stroke="#000" stroke-width=".374"/> - <path d="M182.19 192.43c0-1.09.933-1.973 2.08-1.973 1.146 0 2.082.883 2.082 1.974 0 1.09-.932 1.97-2.08 1.97-1.15 0-2.08-.88-2.08-1.97" fill="#ad1519" stroke="#000" stroke-width=".374"/> - <path d="M206.11 180.83c1 .908 1.77 2.263 1.87 3.658 0 0 .178-.252.873-.504.694-.252 1.227-.154 1.227-.154s-.37 1.013-.533 1.366c-.16.356-.37 1.467-.803 2.425a8.232 8.232 0 0 1-1.007 1.692 2.13 2.13 0 0 0-1.606-.72c-.644 0-1.22.284-1.6.72 0 0-.587-.726-1.012-1.69-.43-.96-.64-2.07-.8-2.426-.16-.353-.536-1.366-.536-1.366s.537-.1 1.228.154c.694.252.878.504.878.504.097-1.395.825-2.75 1.82-3.658" fill="#c8b100" stroke="#000" stroke-width=".374"/> - <path d="M204.558 191.838a1.916 1.916 0 0 1-.507-1.275c0-.48.185-.93.494-1.268 0 0-.857-.642-1.82-1.077-.732-.334-2.09-.566-2.496-.642l-1.224-.23s.033.193.19.64c.192.542.383.89.383.89-1.41.085-2.74.786-3.662 1.697.922.903 2.247 1.588 3.662 1.68 0 0-.19.345-.382.89-.158.44-.19.638-.19.638s.813-.15 1.223-.224c.407-.082 1.764-.31 2.495-.648.964-.437 1.835-1.066 1.835-1.066m3.134-.005c.31-.345.507-.79.507-1.275 0-.48-.182-.93-.492-1.268 0 0 .857-.642 1.822-1.077.733-.334 2.09-.566 2.497-.642l1.216-.23s-.028.193-.19.64c-.192.542-.378.89-.378.89 1.41.085 2.74.786 3.657 1.697-.918.903-2.243 1.588-3.657 1.68 0 0 .186.345.378.89.16.44.19.638.19.638l-1.216-.224c-.407-.082-1.764-.31-2.497-.648-.965-.437-1.837-1.066-1.837-1.066m21.989-7.859c-1.014.643-1.902 1.715-2.213 2.912 0 0-.124-.246-.684-.57-.562-.317-1.046-.308-1.046-.308s.163.93.246 1.266c.084.327.087 1.326.302 2.226.217.9.607 1.62.607 1.62a1.91 1.91 0 0 1 1.513-.4c.56.096 1.016.426 1.278.862 0 0 .627-.548 1.157-1.322.524-.775.888-1.71 1.082-1.992.2-.286.688-1.11.688-1.11s-.45-.168-1.094-.05c-.645.12-.848.315-.848.315.144-1.23-.266-2.516-.99-3.45" fill="#c8b100" stroke="#000" stroke-width=".374"/> - <path d="M229.254 193.785c.322-.257.57-.615.644-1.037a1.64 1.64 0 0 0-.22-1.176s.847-.43 1.757-.668c.692-.18 1.913-.188 2.274-.194l1.102-.027s-.058.167-.27.53a6.2 6.2 0 0 1-.474.716c1.215.28 2.252 1.08 2.907 2.008-.946.657-2.21 1.056-3.455.93 0 0 .112.332.188.832.06.413.056.584.056.584s-.683-.253-1.02-.38c-.343-.125-1.485-.52-2.072-.916-.762-.525-1.418-1.2-1.418-1.2m-2.73-.46a1.674 1.674 0 0 1-.235-1.18c.08-.422.314-.78.637-1.035 0 0-.644-.68-1.41-1.2-.584-.396-1.73-.795-2.07-.917a171.41 171.41 0 0 1-1.022-.382s-.003.174.06.587c.077.498.185.828.185.828-1.243-.13-2.51.286-3.456.948.655.923 1.696 1.71 2.908 1.99 0 0-.22.276-.472.716-.21.37-.27.532-.27.532s.73-.017 1.1-.023c.362-.006 1.586-.01 2.273-.194a11.117 11.117 0 0 0 1.77-.665" fill="#c8b100" stroke="#000" stroke-width=".374"/> - <path d="M225.98 192.43c0-1.09.93-1.973 2.08-1.973 1.152 0 2.084.883 2.084 1.974 0 1.09-.932 1.97-2.084 1.97-1.15 0-2.08-.88-2.08-1.97m23.27 4.377c-.49-.518-1.505-.41-2.264.24-.76.643-.98 1.59-.49 2.105.49.518 1.505.406 2.263-.238.76-.65.98-1.596.49-2.107" fill="#ad1519" stroke="#000" stroke-width=".374"/> - <path d="M246.295 198.062c.105-.354.342-.716.69-1.015.76-.648 1.774-.757 2.265-.24.06.07.13.16.17.243 0 0 1.054-2 2.303-2.665 1.25-.672 3.363-.502 3.363-.502 0-1.535-1.257-2.774-2.877-2.774-.952 0-1.85.394-2.38 1.062l-.22-1.03s-1.303.26-1.9 1.75c-.594 1.493.053 3.65.053 3.65s-.324-.927-.812-1.545c-.486-.612-1.735-1.284-2.386-1.59-.652-.304-1.318-.76-1.318-.76s-.03.166-.054.58a4.91 4.91 0 0 0 .015.796c-1.195-.157-2.59.038-3.675.46.464.913 1.35 1.773 2.508 2.212 0 0-.417.345-.8.723a3.94 3.94 0 0 0-.416.47s.817.117 1.228.174c.405.055 1.762.27 2.573.215a14.513 14.513 0 0 0 1.67-.215m-80.259.001c-.104-.354-.34-.716-.69-1.015-.76-.648-1.772-.757-2.266-.24-.064.07-.13.16-.17.243 0 0-1.058-2-2.306-2.665-1.245-.672-3.358-.502-3.358-.502 0-1.535 1.257-2.774 2.876-2.774.954 0 1.847.394 2.382 1.062l.217-1.03s1.304.26 1.9 1.75c.597 1.493-.053 3.65-.053 3.65s.324-.927.814-1.545c.49-.612 1.74-1.284 2.39-1.59.65-.304 1.318-.76 1.318-.76s.025.166.05.58c.027.492-.014.796-.014.796 1.192-.157 2.59.038 3.676.46-.465.913-1.348 1.773-2.51 2.212 0 0 .418.345.8.723.317.32.42.47.42.47l-1.226.174c-.412.055-1.764.27-2.575.215a14.658 14.658 0 0 1-1.674-.215" fill="#c8b100" stroke="#000" stroke-width=".374"/> - <path d="M163.08 196.808c.494-.518 1.506-.41 2.265.24.763.643.978 1.59.49 2.105-.49.518-1.506.406-2.264-.238-.76-.65-.978-1.596-.49-2.107m40.969-6.245c0-1.09.932-1.97 2.08-1.97 1.15 0 2.085.88 2.085 1.97 0 1.09-.93 1.974-2.084 1.974-1.148 0-2.08-.884-2.08-1.974" fill="#ad1519" stroke="#000" stroke-width=".374"/> - <path d="M201.8 160.61c0-2.23 1.906-4.03 4.252-4.03 2.347 0 4.25 1.8 4.25 4.03 0 2.22-1.903 4.02-4.25 4.02-2.346 0-4.252-1.8-4.252-4.02" fill="#005bbf" stroke="#000" stroke-width=".25"/> - <path d="M204.938 149.316v2.174h-2.326v2.205h2.326v6.345h-2.93c-.034.206-.21.357-.21.573 0 .556.115 1.09.33 1.57.007.014.025.018.03.03h7.794c.006-.012.025-.016.03-.03.216-.48.333-1.014.333-1.57 0-.215-.177-.368-.21-.574h-2.84v-6.344h2.325v-2.206h-2.326v-2.174h-2.326z" fill="#c8b100" stroke="#000" stroke-width=".25"/> - <path d="M206.473 330.56c-12.558 0-25.006-3.078-35.47-8.2-7.713-3.82-12.828-11.524-12.828-20.34v-31.968h96.406v31.97c0 8.814-5.113 16.518-12.83 20.34-10.462 5.12-22.715 8.198-35.277 8.198" fill="#ccc"/> - <path d="M206.473 330.56c-12.558 0-25.006-3.078-35.47-8.2-7.713-3.82-12.828-11.524-12.828-20.34v-31.968h96.406v31.97c0 8.814-5.113 16.518-12.83 20.34-10.462 5.12-22.715 8.198-35.277 8.198z" fill="none" stroke="#000" stroke-width=".499"/> - <path d="M206.268 269.997h48.31v-53.485h-48.31v53.485z" fill="#ccc"/> - <path d="M206.268 269.997h48.31v-53.485h-48.31v53.485z" fill="none" stroke="#000" stroke-width=".499"/> - <path d="M206.304 301.983c0 12.634-10.706 22.874-24.04 22.874-13.34 0-24.154-10.24-24.154-22.874v-32.017h48.194v32.017" fill="#ad1519"/> - <path d="M168.64 320.86c1.505.8 3.573 2.13 5.783 2.663l-.14-54.685h-5.644v52.022z" fill="#c8b100" stroke="#000" stroke-width=".499"/> - <path d="M158.03 301.552c.148 6.747 2.826 11.762 5.504 15.047v-47.496H158.1l-.07 32.448z" fill="#c8b100" stroke="#000" stroke-width=".48" stroke-linejoin="round"/> - <path d="M179.384 324.722a26.58 26.58 0 0 0 5.644 0v-55.884h-5.644v55.884z" fill="#c7b500" stroke="#000" stroke-width=".499"/> - <path d="M189.99 323.523c2.21-.444 4.7-1.82 5.785-2.53v-52.155h-5.644l-.14 54.685z" fill="#c8b100" stroke="#000" stroke-width=".499"/> - <path d="M158.113 269.997h48.172v-53.485h-48.172v53.485z" fill="#ad1519"/> - <path d="M158.113 269.997h48.172v-53.485h-48.172v53.485z" fill="none" stroke="#000" stroke-width=".499"/> - <path d="M201.02 316.067c2.35-2.087 4.56-6.837 5.363-12.25l.14-34.98h-5.644l.14 47.23z" fill="#c8b100" stroke="#000" stroke-width=".499"/> - <path d="M206.304 301.983c0 12.634-10.706 22.874-24.04 22.874-13.34 0-24.154-10.24-24.154-22.874v-32.017h48.194v32.017" fill="none" stroke="#000" stroke-width=".499"/> - <path d="M254.624 269.966v32.017c0 12.634-10.827 22.874-24.167 22.874-13.336 0-24.153-10.24-24.153-22.874v-32.017h48.32" fill="#ad1519"/> - <path d="M254.624 269.966v32.017c0 12.634-10.827 22.874-24.167 22.874-13.336 0-24.153-10.24-24.153-22.874v-32.017h48.32" fill="none" stroke="#000" stroke-width=".499"/> - <path d="M215.093 294.132c.077.164.12.328.12.502 0 .59-.5 1.06-1.124 1.06-.62 0-1.123-.47-1.123-1.06 0-.174.043-.338.122-.48l-1.57-.022c-.033.16-.052.328-.052.502 0 1.11.768 2.052 1.828 2.37l-.002 3.85 1.645.01.002-3.878a2.56 2.56 0 0 0 1.63-1.55h4.418v-1.303h-5.897m21.677 0v1.302l-3.973.01a2.55 2.55 0 0 1-.256.487l4.616 5.243-1.238 1.003-4.593-5.25c-.085.027-.127.06-.216.085l-.013 8.675h-1.626l-.003-8.713c-.07-.016-.127-.05-.19-.08l-4.782 5.283-1.238-1.003 4.778-5.304a2.13 2.13 0 0 1-.2-.435h-4.106v-1.302h13.044-.004zm2.647 0v1.302h4.422c.262.73.857 1.302 1.627 1.55l.003 3.88 1.642-.01-.004-3.852c1.062-.317 1.833-1.26 1.833-2.37 0-.173-.017-.34-.058-.5h-1.562c.076.163.116.327.116.5 0 .59-.497 1.06-1.12 1.06-.618 0-1.123-.47-1.123-1.06a.98.98 0 0 1 .123-.48l-5.9-.02m-6.678 22.12c1.29-.205 2.478-.56 3.65-1.053l.807 1.373a17.6 17.6 0 0 1-4.32 1.223c-.252 1.122-1.3 1.964-2.558 1.964-1.257 0-2.305-.832-2.564-1.945a17.522 17.522 0 0 1-4.542-1.242l.81-1.373c1.236.52 2.553.868 3.92 1.058.29-.625.818-1.11 1.513-1.335l.014-6.726h1.623l.015 6.702c.72.214 1.328.705 1.63 1.352h.003zm-11.033-2.257l-.8 1.38a16.654 16.654 0 0 1-3.647-3.085c-.835.247-1.78.1-2.49-.48-1.103-.893-1.237-2.46-.293-3.5l.137-.146a15.272 15.272 0 0 1-1.267-4.804l1.642.007a13.127 13.127 0 0 0 1.05 4.105c.46-.065.954-.01 1.397.153l4.106-4.544 1.238 1-4.08 4.537c.55.838.528 1.92-.102 2.744a15.172 15.172 0 0 0 3.11 2.636zm-6.09-4.766c.405-.45 1.113-.5 1.584-.12.472.382.53 1.057.126 1.5a1.167 1.167 0 0 1-1.584.12 1.026 1.026 0 0 1-.127-1.5zm-2.07-4.493l-1.687-.378-.238-4.276 1.674-.553.002 2.453c0 .95.085 1.85.25 2.754zm1.4-5.3l1.682.395s.087 2.747.05 2.13c-.043-.72.184 2.15.184 2.15l-1.694.557c-.17-.873-.226-1.767-.226-2.687l.003-2.547h.004zm5.543 13.676a15.667 15.667 0 0 0 4.84 2.57l.374-1.626a13.696 13.696 0 0 1-4.007-2.01l-1.207 1.066m-.813 1.404a17.4 17.4 0 0 0 4.84 2.547l-1.258 1.176a18.707 18.707 0 0 1-3.955-2.03l.373-1.693m2.194-9.42l1.604.68 2.937-3.26-.964-1.386-3.577 3.966m-1.246-1.006l-.963-1.394 2.94-3.26 1.6.685-3.576 3.97m18.08 9.906l.802 1.38a16.698 16.698 0 0 0 3.646-3.085c.83.247 1.78.1 2.49-.48 1.102-.893 1.23-2.46.29-3.5l-.138-.146a15.04 15.04 0 0 0 1.263-4.804l-1.633.007a13.268 13.268 0 0 1-1.052 4.105 2.916 2.916 0 0 0-1.4.153l-4.103-4.544-1.24 1 4.08 4.537a2.36 2.36 0 0 0 .1 2.744 15.085 15.085 0 0 1-3.107 2.636zm6.086-4.766a1.16 1.16 0 0 0-1.58-.12 1.025 1.025 0 0 0-.126 1.5 1.167 1.167 0 0 0 1.584.12 1.024 1.024 0 0 0 .122-1.5zm2.07-4.493l1.688-.378.238-4.276-1.67-.553-.004 2.453c0 .95-.084 1.85-.252 2.754zm-1.396-5.3l-1.68.395s-.092 2.747-.055 2.13c.045-.72-.185 2.15-.185 2.15l1.695.557c.17-.873.227-1.767.227-2.687l-.003-2.547m-5.544 13.677a15.722 15.722 0 0 1-4.838 2.57l-.374-1.626a13.674 13.674 0 0 0 4.003-2.01l1.21 1.066m.814 1.404a17.453 17.453 0 0 1-4.84 2.547l1.258 1.176c1.41-.52 2.74-1.21 3.956-2.03l-.374-1.693m-2.193-9.42l-1.604.68-2.938-3.26.965-1.386 3.578 3.966m1.245-1.006l.963-1.394-2.938-3.26-1.6.685 3.575 3.97m-20.105-8.652l.493 1.6h4.525l.487-1.6h-5.505m21.135 0l-.496 1.6h-4.523l-.487-1.6h5.505m-11.62 21.837c0-.59.502-1.066 1.122-1.066.618 0 1.118.475 1.118 1.065 0 .587-.5 1.06-1.118 1.06-.62 0-1.123-.473-1.123-1.06zm1.902-7.752l1.69-.473v-4.28l-1.69-.462v5.215m-1.637 0l-1.684-.473v-4.28l1.684-.462v5.215" fill="#c8b100"/> - <path d="M211.52 294.17c.194-.892.89-1.616 1.79-1.886l-.014-5.282h1.63l.002 5.31c.804.253 1.422.847 1.67 1.612l4.392.007v.24h-5.897a1.16 1.16 0 0 0-1.004-.566c-.436 0-.818.242-1 .586l-1.57-.02m12.206 0v-.24h4.08a2.37 2.37 0 0 1 .174-.385l-5.032-5.608 1.237-1.004 4.97 5.517c.085-.042.176-.08.264-.11l.004-7.35h1.627v7.304c.074.02.184.042.257.063l4.853-5.526 1.247.99-4.872 5.503c.126.185.21.39.28.608h3.952v.24h-13.045.004zm21.59 0a1.153 1.153 0 0 1 1-.566c.44 0 .818.242 1.004.586l1.562-.02c-.194-.892-.885-1.616-1.784-1.886l.01-5.28h-1.624l-.007 5.31c-.8.254-1.418.845-1.667 1.61l-4.393.007v.24h5.9m-30.13-14.918l6.054 6.786 1.24-1.004-6.086-6.76c.12-.18.207-.378.28-.59h4.428v-1.544h-4.43c-.34-1-1.333-1.718-2.502-1.718-1.448 0-2.625 1.114-2.625 2.488 0 1.088.736 2.018 1.766 2.353l-.01 5.235h1.628v-5.2c.07-.02.193-.02.26-.046zm31.94.035l-.015 5.21h-1.628v-5.23a2.452 2.452 0 0 1-.364-.15l-6.02 6.796-1.245-.99 6.135-6.93c-.05-.096-.104-.2-.14-.31h-4.452v-1.543h4.438c.342-1 1.325-1.718 2.49-1.718 1.447 0 2.625 1.114 2.625 2.488 0 1.116-.76 2.058-1.824 2.377zm-16.06-.02l-.013 3.21h-1.626l.004-3.184a2.57 2.57 0 0 1-1.715-1.61h-3.97v-1.543h3.97c.343-1 1.32-1.718 2.488-1.718 1.166 0 2.152.717 2.495 1.718h4.05v1.543h-4.06a2.528 2.528 0 0 1-1.62 1.583zm-17.75 3.895l-1.69.475v4.29l1.69.465v-5.23m1.637 0l1.684.475v4.29l-1.684.465v-5.23m30.515 0l-1.684.475v4.29l1.683.465v-5.23m1.638 0l1.69.475v4.29l-1.69.465v-5.23m-25.547.847l1.608-.683 2.937 3.265-.965 1.393-3.58-3.976m-1.243 1.01l-.96 1.398 2.936 3.262 1.6-.687-3.576-3.972m18.444-1.137l-1.608-.67-2.91 3.29.976 1.383 3.543-4.003m1.254 1l.974 1.388-2.908 3.29-1.605-.673 3.54-4.003m-20.335 9.044l.493-1.602h4.525l.488 1.602h-5.506m-6.634-17.016c0-.587.503-1.066 1.124-1.066.618 0 1.12.48 1.12 1.066 0 .588-.502 1.062-1.12 1.062-.62 0-1.124-.474-1.124-1.062zm12.1.775l-.495 1.606h-4.52l-.49-1.606h5.507m0-1.555l-.496-1.6h-4.52l-.49 1.6h5.507m15.668 17.796l-.496-1.602h-4.523l-.487 1.602h5.505m4.39-17.016c0-.587.5-1.066 1.122-1.066.62 0 1.12.48 1.12 1.066 0 .588-.5 1.062-1.12 1.062-.622 0-1.123-.474-1.123-1.062zm-16.123 0c0-.587.504-1.066 1.122-1.066.62 0 1.12.48 1.12 1.066 0 .588-.5 1.062-1.12 1.062-.618 0-1.122-.474-1.122-1.062zm6.266.775l.497 1.606h4.52l.49-1.606h-5.507m0-1.555l.497-1.6h4.52l.49 1.6h-5.507m-5.906 5.012l-1.685.474v4.29l1.685.465v-5.23m1.62 0l1.684.475v4.29l-1.684.465v-5.23" fill="#c8b100"/> - <path d="M232.738 316.252c1.29-.204 2.478-.56 3.65-1.052l.807 1.373a17.6 17.6 0 0 1-4.32 1.223c-.252 1.122-1.3 1.964-2.558 1.964-1.257 0-2.305-.832-2.564-1.945a17.522 17.522 0 0 1-4.542-1.242l.81-1.373c1.236.52 2.553.868 3.92 1.06.29-.627.818-1.11 1.513-1.337l.014-6.726h1.623l.015 6.702c.72.214 1.328.705 1.63 1.352h.003zm-4.707-20.378a2.282 2.282 0 0 1-.198-.44h-4.107v-1.54h4.08a2.6 2.6 0 0 1 .178-.383l-5.035-5.6 1.237-1.002 4.973 5.506a2.16 2.16 0 0 1 .266-.108l.004-7.337h1.622v7.29c.073.02.184.042.257.066l4.853-5.52 1.247.992-4.872 5.49c.125.183.21.388.28.605h3.952v1.54l-3.974.012c-.058.174-.16.334-.252.487l4.616 5.247-1.238 1-4.593-5.252c-.085.03-.127.064-.22.088l-.01 8.676h-1.628l-.005-8.713c-.068-.02-.124-.056-.19-.086l-4.78 5.287-1.237-1 4.776-5.306m-12.842-16.632l6.053 6.774 1.24-1.002-6.086-6.747c.12-.18.207-.378.28-.59h4.428v-1.54h-4.43c-.34-1-1.333-1.715-2.502-1.715-1.448 0-2.625 1.112-2.625 2.482 0 1.087.736 2.014 1.766 2.348l-.01 5.227h1.628v-5.193c.07-.02.193-.02.26-.045zm6.517 34.754l-.8 1.38a16.654 16.654 0 0 1-3.647-3.085c-.835.247-1.78.1-2.49-.48-1.103-.893-1.237-2.46-.293-3.5l.137-.146a15.272 15.272 0 0 1-1.267-4.804l1.642.007a13.127 13.127 0 0 0 1.05 4.105c.46-.065.954-.01 1.397.154l4.106-4.545 1.238 1-4.08 4.537c.55.838.528 1.92-.102 2.744a15.172 15.172 0 0 0 3.11 2.636zm-8.41-13.14v-3.853c-1.06-.314-1.83-1.26-1.83-2.37 0-1.108.782-2.062 1.844-2.383l-.014-5.27h1.63l.002 5.3c.804.253 1.422.843 1.67 1.607l4.392.007v1.54h-4.42a2.56 2.56 0 0 1-1.627 1.552l-.003 3.88-1.646-.01m2.32 8.374c.406-.45 1.114-.5 1.585-.12.472.382.53 1.057.126 1.5a1.167 1.167 0 0 1-1.584.12 1.026 1.026 0 0 1-.127-1.5zm-2.068-4.493l-1.688-.378-.238-4.276 1.674-.553.002 2.453c0 .95.085 1.85.25 2.754zm1.4-5.3l1.68.395s.088 2.747.052 2.13c-.044-.72.184 2.15.184 2.15l-1.696.557c-.17-.873-.226-1.767-.226-2.687l.003-2.547h.004zm5.542 13.676a15.667 15.667 0 0 0 4.84 2.57l.374-1.626a13.696 13.696 0 0 1-4.007-2.01l-1.207 1.066m-.813 1.404a17.4 17.4 0 0 0 4.84 2.547l-1.258 1.176a18.707 18.707 0 0 1-3.955-2.03l.373-1.693" fill="none" stroke="#c8b100" stroke-width=".25"/> - <path d="M221.87 305.096l1.604.68 2.937-3.258-.964-1.387-3.577 3.966m-1.246-1.006l-.963-1.394 2.94-3.26 1.6.685-3.576 3.97m-7.657-9.456c0-.59.503-1.067 1.122-1.067.62 0 1.12.476 1.12 1.067 0 .59-.5 1.06-1.12 1.06-.62 0-1.123-.47-1.123-1.06zm25.736 19.362l.803 1.38a16.698 16.698 0 0 0 3.646-3.085c.83.247 1.78.1 2.49-.48 1.102-.893 1.23-2.46.29-3.5l-.138-.146a15.04 15.04 0 0 0 1.263-4.804l-1.633.007a13.268 13.268 0 0 1-1.052 4.105 2.916 2.916 0 0 0-1.4.154l-4.103-4.545-1.24 1 4.08 4.537a2.36 2.36 0 0 0 .1 2.744 15.085 15.085 0 0 1-3.107 2.636zm8.413-13.14l-.004-3.853c1.062-.314 1.832-1.26 1.832-2.37 0-1.108-.78-2.062-1.843-2.383l.012-5.27h-1.628l-.007 5.3c-.8.253-1.418.843-1.667 1.607l-4.394.007v1.54h4.423c.262.73.856 1.303 1.626 1.552l.003 3.88 1.642-.01h.004zm-2.326 8.374a1.16 1.16 0 0 0-1.58-.12 1.025 1.025 0 0 0-.126 1.5 1.167 1.167 0 0 0 1.584.12 1.024 1.024 0 0 0 .122-1.5zm2.07-4.493l1.688-.378.238-4.276-1.67-.552-.004 2.45c0 .952-.084 1.852-.252 2.755zm-1.396-5.3l-1.68.395s-.092 2.748-.055 2.13c.045-.72-.185 2.15-.185 2.15l1.695.557c.17-.873.227-1.767.227-2.687l-.003-2.547m1.662-20.16l-.014 5.203h-1.628v-5.225a2.248 2.248 0 0 1-.364-.147l-6.02 6.782-1.245-.99 6.135-6.913c-.05-.098-.104-.2-.14-.31h-4.452v-1.54h4.438c.342-1 1.325-1.715 2.49-1.715 1.447 0 2.625 1.11 2.625 2.482 0 1.115-.76 2.055-1.824 2.372zm-16.058-.02l-.014 3.204h-1.626l.004-3.177a2.568 2.568 0 0 1-1.715-1.606h-3.97v-1.54h3.97c.343-1 1.32-1.715 2.487-1.715s2.153.716 2.496 1.714h4.05v1.54h-4.06a2.523 2.523 0 0 1-1.622 1.58zm8.852 33.857a15.722 15.722 0 0 1-4.838 2.57l-.374-1.626a13.674 13.674 0 0 0 4.003-2.01l1.21 1.066m.814 1.404a17.453 17.453 0 0 1-4.84 2.547l1.258 1.176c1.41-.52 2.74-1.21 3.956-2.028l-.374-1.695m-27.418-31.372l-1.688.475v4.28l1.688.464v-5.22m1.638 0l1.684.476v4.28l-1.684.464v-5.22m30.515 0l-1.685.476v4.28l1.684.464v-5.22" fill="none" stroke="#c8b100" stroke-width=".25"/> - <path d="M247.108 283.145l1.69.475v4.28l-1.69.464v-5.22m-8.567 21.952l-1.604.68-2.938-3.258.965-1.387 3.578 3.966m1.245-1.006l.963-1.394-2.937-3.26-1.6.685 3.575 3.97m-18.224-20.1l1.608-.682 2.937 3.26-.965 1.39-3.58-3.968m-1.243 1.01l-.96 1.394 2.936 3.256 1.6-.685-3.576-3.966m18.444-1.136l-1.608-.667-2.91 3.282.977 1.38 3.54-3.996m1.254 1l.974 1.383-2.908 3.283-1.605-.672 3.54-3.995m-20.335 9.028l.493-1.6h4.525l.488 1.6h-5.506m0 1.548l.493 1.6h4.525l.488-1.6h-5.506m-6.634-18.53c0-.586.503-1.064 1.124-1.064.618 0 1.12.478 1.12 1.063 0 .587-.502 1.06-1.12 1.06-.62 0-1.124-.473-1.124-1.06zm12.1.773l-.495 1.603h-4.52l-.49-1.602h5.507m0-1.55l-.496-1.6h-4.52l-.49 1.6h5.507m20.046 18.504c0-.59.505-1.067 1.123-1.067.623 0 1.12.476 1.12 1.067 0 .59-.497 1.06-1.12 1.06-.618 0-1.123-.47-1.123-1.06zm-4.378-.743l-.496-1.6h-4.523l-.487 1.6h5.505m0 1.548l-.496 1.6h-4.523l-.487-1.6h5.505m-11.62 21.837c0-.59.502-1.066 1.122-1.066.618 0 1.118.475 1.118 1.065 0 .587-.5 1.06-1.118 1.06-.62 0-1.123-.473-1.123-1.06zm1.902-7.752l1.69-.473v-4.28l-1.69-.462v5.215m-1.637 0l-1.684-.473v-4.28l1.684-.462v5.215m15.744-32.616c0-.585.5-1.063 1.123-1.063.62 0 1.12.478 1.12 1.063 0 .587-.5 1.06-1.12 1.06-.622 0-1.123-.473-1.123-1.06zm-16.122 0c0-.585.504-1.063 1.122-1.063.62 0 1.12.478 1.12 1.063 0 .587-.5 1.06-1.12 1.06-.618 0-1.122-.473-1.122-1.06zm6.266.774l.497 1.603h4.52l.49-1.602h-5.507m0-1.55l.497-1.6h4.52l.49 1.6h-5.507m-5.91 4.994l-1.685.474v4.282l1.685.464v-5.22m1.62 0l1.684.474v4.282l-1.684.464v-5.22" fill="none" stroke="#c8b100" stroke-width=".25"/> - <path d="M227.688 294.66c0-1.376 1.178-2.49 2.63-2.49 1.446 0 2.622 1.114 2.622 2.49 0 1.37-1.176 2.482-2.623 2.482-1.45 0-2.63-1.11-2.63-2.482" fill="#058e6e"/> - <path d="M230.892 229.69l.054-.593.082-.33s-1.546.126-2.36-.103c-.814-.23-1.548-.566-2.308-1.206-.76-.646-1.058-1.048-1.602-1.128-1.302-.21-2.306.382-2.306.382s.98.36 1.713 1.257c.73.903 1.527 1.36 1.87 1.468.57.174 2.55.05 3.093.072.544.027 1.764.183 1.764.183" fill="#db4446"/> - <path d="M230.892 229.69l.054-.593.082-.33s-1.546.126-2.36-.103c-.814-.23-1.548-.566-2.308-1.206-.76-.646-1.058-1.048-1.602-1.128-1.302-.21-2.306.382-2.306.382s.98.36 1.713 1.257c.73.903 1.527 1.36 1.87 1.468.57.174 2.55.05 3.093.072.544.027 1.764.183 1.764.183v-.003z" fill="none" stroke="#000" stroke-width=".374"/> - <path d="M238.124 227.515s.004.692.07 1.354c.067.633-.203 1.188-.1 1.54.1.355.15.634.29.89.128.255.2.903.2.903s-.37-.263-.713-.52c-.337-.258-.58-.418-.58-.418s.07.692.102.99c.037.295.21.854.49 1.185.278.324.833.856 1.004 1.282.177.43.142 1.378.142 1.378s-.45-.72-.837-.85c-.38-.133-1.215-.596-1.215-.596s.766.76.766 1.483c0 .722-.31 1.544-.31 1.544s-.347-.654-.796-1.083c-.454-.426-1.08-.856-1.08-.856s.49 1.12.49 1.872c0 .76-.137 2.373-.137 2.373s-.382-.623-.764-.927c-.384-.293-.835-.556-.976-.75-.136-.197.455.62.52 1.114.067.495.3 2.257 1.842 4.507.9 1.315 2.292 3.616 5.276 2.86 2.988-.754 1.88-4.77 1.253-6.645-.628-1.87-.94-3.948-.905-4.673.033-.72.554-2.856.486-3.256-.068-.39-.23-1.92.14-3.15.383-1.28.7-1.778.905-2.307.204-.526.377-.823.446-1.283.07-.46.07-1.32.07-1.32s.554 1.023.694 1.384c.138.366.138 1.447.138 1.447s.103-1.08.94-1.606c.835-.53 1.805-1.087 2.05-1.383.242-.3.313-.494.313-.494s-.07 1.845-.59 2.57c-.345.47-1.705 2.005-1.705 2.005s.698-.266 1.182-.293c.487-.037.833 0 .833 0s-.59.46-1.354 1.578c-.762 1.115-.45 1.214-1.006 2.134-.56.92-1.01.955-1.704 1.514-1.043.84-.48 4.172-.345 4.668.14.49 1.944 4.573 1.98 5.56.032.988.21 3.19-1.53 4.604-1.12.918-2.95.925-3.37 1.187-.418.258-1.245 1.08-1.245 2.79 0 1.716.62 1.975 1.106 2.404.49.43 1.113.198 1.252.53.14.326.21.523.418.72.21.195.35.427.278.785-.068.364-.868 1.186-1.146 1.782-.28.586-.835 2.137-.835 2.366 0 .232-.065.955.173 1.32 0 0 .868 1.012.277 1.21-.382.13-.755-.24-.936-.198-.518.137-.79.456-.938.43-.348-.066-.348-.236-.383-.723-.032-.492-.015-.692-.17-.692-.21 0-.313.17-.35.43-.036.262-.036.85-.276.85-.243 0-.59-.425-.798-.52-.21-.1-.8-.198-.832-.46-.036-.263.346-.822.727-.922.382-.098.73-.292.486-.49s-.486-.198-.727 0c-.244.198-.763.03-.73-.265.035-.297.104-.656.067-.822-.032-.16-.45-.49.102-.792.558-.293.798.267 1.353.167.558-.093.836-.298 1.044-.622.21-.327.173-1.02-.208-1.445-.383-.43-.764-.498-.905-.76-.14-.263-.345-.887-.345-.887s.1 1.15.03 1.316c-.066.164-.03.852-.03.852s-.382-.427-.695-.753c-.31-.33-.623-1.314-.623-1.314s-.033.92-.033 1.284c0 .357.414.69.277.822-.14.13-.796-.692-.97-.822-.177-.132-.73-.558-.976-1.022-.24-.46-.418-1.115-.485-1.35-.07-.23-.185-1.255-.07-1.514.172-.392.45-1.085.45-1.085h-1.354c-.727 0-1.25-.228-1.526.262-.277.495-.14 1.484.206 2.765.35 1.278.553 1.906.453 2.137-.102.23-.555.758-.727.853-.178.102-.664.068-.873-.027-.205-.1-.55-.267-1.213-.267-.658 0-1.076.03-1.317-.027-.243-.067-.835-.365-1.116-.3-.278.068-.757.313-.626.693.212.59-.205.724-.486.69-.277-.034-.514-.133-.868-.23-.344-.1-.867 0-.797-.397.067-.396.208-.426.38-.72.175-.3.24-.49.046-.51-.244-.025-.49-.052-.68.105-.183.153-.482.485-.727.362-.245-.13-.435-.413-.435-1.034 0-.616-.65-1.155-.053-1.128.597.028 1.357.465 1.494.13.134-.337.05-.487-.272-.75-.326-.256-.732-.41-.297-.743.434-.332.542-.332.708-.515.162-.177.394-.756.7-.613.595.283.027.695.624 1.36.598.667.976.903 1.98.797 1.003-.102 1.278-.232 1.278-.515 0-.284-.084-.795-.112-1.003-.025-.204.138-.95.138-.95s-.462.285-.598.564c-.13.284-.404.77-.404.77s-.11-.577-.08-1.048c.02-.276.117-.757.107-.852-.026-.255-.216-.9-.216-.9s-.164.696-.27.9c-.11.205-.162 1.03-.162 1.03s-.638-.556-.46-1.49c.132-.72-.11-1.67.106-1.98.213-.31.728-1.57 1.978-1.623 1.248-.047 2.223.054 2.66.03.434-.03 1.98-.31 1.98-.31s-2.85-1.462-3.5-1.902c-.65-.433-1.656-1.564-1.983-2.08-.325-.514-.623-1.513-.623-1.513s-.512.023-.975.28a4.92 4.92 0 0 0-1.192.947c-.274.31-.705 1.005-.705 1.005s.078-.9.078-1.183c0-.276-.053-.824-.053-.824s-.325 1.233-.976 1.693c-.652.468-1.41 1.11-1.41 1.11s.082-.69.082-.846c0-.153.16-.95.16-.95s-.46.687-1.166.824c-.705.126-1.738.1-1.82.54-.08.43.19 1.024.028 1.33-.163.31-.514.516-.514.516s-.407-.338-.76-.362c-.353-.027-.68.157-.68.157s-.3-.39-.19-.645c.11-.256.65-.64.517-.797-.136-.154-.57.054-.842.18-.27.13-.842.256-.788-.18.055-.437.19-.692.055-1.003-.136-.303-.055-.51.165-.59.215-.07 1.083.024 1.165-.173.08-.208-.216-.464-.788-.594-.57-.126-.842-.463-.542-.746.298-.283.38-.358.515-.616.135-.26.19-.72.707-.49.51.23.403.796.95.976.538.184 1.815-.074 2.084-.228.275-.157 1.142-.798 1.44-.954.3-.15 1.545-1.077 1.545-1.077s-.73-.51-1.003-.77c-.27-.257-.756-.87-.997-1-.246-.133-1.44-.59-1.847-.617-.407-.027-1.656-.46-1.656-.46s.57-.184.76-.338c.19-.153.62-.542.84-.514.215.028.267.028.267.028s-1.16-.056-1.407-.127c-.244-.083-.95-.52-1.218-.52-.276 0-.815.107-.815.107s.73-.463 1.327-.565c.597-.1 1.06-.08 1.06-.08s-.922-.255-1.142-.562c-.216-.31-.43-.767-.598-.975-.162-.204-.27-.54-.57-.565-.297-.027-.814.36-1.11.334-.296-.024-.516-.21-.546-.643-.02-.438 0-.286-.102-.514-.11-.234-.544-.774-.138-.9.41-.13 1.278.076 1.357-.078.083-.154-.46-.617-.812-.797-.353-.18-.922-.49-.623-.744.3-.256.596-.357.76-.59.162-.23.352-.872.706-.67.352.207.84 1.212 1.112 1.134.274-.08.294-.798.244-1.104-.055-.31 0-.85.266-.8.274.052.49.41.925.44.432.025 1.084-.1 1.03.203-.054.307-.3.688-.598 1.026-.29.337-.428 1.002-.24 1.438.19.44.68 1.137 1.112 1.416.43.282 1.245.49 1.764.822.513.338 1.71 1.284 2.116 1.387.407.105.814.31.814.31s.46-.205 1.086-.205c.623 0 2.06.102 2.603-.13.543-.234 1.25-.616 1.032-1.107-.215-.485-1.41-.924-1.303-1.306.11-.385.543-.41 1.273-.44.732-.023 1.736.13 1.924-.9.19-1.025.245-1.62-.782-1.847-1.032-.232-1.794-.255-1.98-1.002-.19-.744-.38-.924-.165-1.132.22-.2.597-.307 1.357-.354.76-.055 1.627-.055 1.872-.24.245-.173.295-.663.594-.872.297-.2 1.468-.386 1.468-.386s1.394.683 2.69 1.644c1.158.866 2.206 2.144 2.206 2.144" fill="#ed72aa" stroke="#000" stroke-width=".374"/> - <path d="M228.124 226.792s-.162-.462-.19-.592c-.025-.127-.11-.283-.11-.283s.844 0 .816.255c-.026.26-.27.26-.325.358-.054.106-.19.262-.19.262"/> - <path d="M228.124 226.792s-.162-.462-.19-.592c-.025-.127-.11-.283-.11-.283s.844 0 .816.255c-.026.26-.27.26-.325.358-.054.106-.19.262-.19.262z" fill="none" stroke="#000" stroke-width=".25"/> - <path d="M231.98 225.453l-.058-.412s.734.008 1.087.257c.543.385.89.977.866 1.002-.094.09-.514-.257-.814-.36 0 0-.216.052-.434.052-.216 0-.325-.102-.354-.205-.024-.105.03-.283.03-.283l-.324-.047"/> - <path d="M231.98 225.453l-.058-.412s.734.008 1.087.257c.543.385.89.977.866 1.002-.094.09-.514-.257-.814-.36 0 0-.216.052-.434.052-.216 0-.325-.102-.354-.205-.024-.105.03-.283.03-.283l-.324-.047v-.004z" fill="none" stroke="#000" stroke-width=".048"/> - <path d="M237.27 231.262s-.327-.464-.406-.62c-.083-.15-.22-.46-.22-.46" fill="none" stroke="#000" stroke-width=".25"/> - <path d="M217.405 226.636s.46.33.814.382c.35.054.733.054.787.054.054 0 .165-.52.108-.872-.19-1.16-1.25-1.415-1.25-1.415s.316.703.163 1.026c-.216.464-.623.826-.623.826" fill="#db4446"/> - <path d="M217.405 226.636s.46.33.814.382c.35.054.733.054.787.054.054 0 .165-.52.108-.872-.19-1.16-1.25-1.415-1.25-1.415s.316.703.163 1.026c-.216.464-.623.826-.623.826z" fill="none" stroke="#000" stroke-width=".374"/> - <path d="M215.205 227.638s-.407-.746-1.273-.644c-.868.102-1.44.774-1.44.774s.958-.03 1.194.125c.354.233.462.826.462.826s.518-.31.68-.516a7.23 7.23 0 0 0 .377-.566" fill="#db4446"/> - <path d="M215.205 227.638s-.407-.746-1.273-.644c-.868.102-1.44.774-1.44.774s.958-.03 1.194.125c.354.233.462.826.462.826s.518-.31.68-.516a7.23 7.23 0 0 0 .377-.566z" fill="none" stroke="#000" stroke-width=".374"/> - <path d="M214.148 230.642s-.732.105-1.138.57c-.41.462-.352 1.335-.352 1.335s.484-.51.92-.51c.437 0 1.113.152 1.113.152s-.215-.546-.215-.775c0-.23-.327-.773-.327-.773" fill="#db4446"/> - <path d="M214.148 230.642s-.732.105-1.138.57c-.41.462-.352 1.335-.352 1.335s.484-.51.92-.51c.437 0 1.113.152 1.113.152s-.215-.546-.215-.775c0-.23-.327-.773-.327-.773z" fill="none" stroke="#000" stroke-width=".374"/> - <path d="M228.153 230.54l.323-.512.32.464-.643.047"/> - <path d="M228.153 230.54l.323-.512.32.464-.643.047" fill="none" stroke="#000" stroke-width=".25"/> - <path d="M228.937 230.515l.38-.51.41.458-.79.052"/> - <path d="M228.937 230.515l.38-.51.41.458-.79.052" fill="none" stroke="#000" stroke-width=".25"/> - <path d="M228.586 227.355l.787.283-.705.358-.082-.64"/> - <path d="M228.586 227.355l.787.283-.705.358-.082-.64" fill="none" stroke="#000" stroke-width=".25"/> - <path d="M229.534 227.614l.706.178-.568.436-.138-.614"/> - <path d="M229.534 227.614l.706.178-.568.436-.138-.614" fill="none" stroke="#000" stroke-width=".25"/> - <path d="M224.243 233.652s-.773.225-1.058.64c-.352.514-.326 1.03-.326 1.03s.65-.54 1.49-.31c.844.23.923.31 1.28.286.352-.027 1.22-.338 1.22-.338s-.705.822-.626 1.39c.082.564.187.82.164 1.106-.058.695-.57 1.544-.57 1.544s.298-.184 1.003-.337a4.58 4.58 0 0 0 1.682-.77c.38-.287.867-.98.867-.98s-.158.952 0 1.364c.162.413.216 1.595.216 1.595s.453-.4.812-.593c.19-.106.68-.362.873-.668.134-.22.3-1.024.3-1.024s.107.866.377 1.286c.273.405.676 1.67.676 1.67s.274-.82.573-1.158c.296-.334.652-.77.677-1.03.025-.256-.08-.818-.08-.818l.378.818m-10.96.59s.462-.795.898-1.054c.435-.258 1.033-.72 1.194-.77.158-.052.868-.44.868-.44m.95 4.963s1.045-.535 1.357-.722c.65-.383 1.112-1.078 1.112-1.078" fill="none" stroke="#000" stroke-width=".374"/> - <path d="M216.616 240.357s-.406-.433-1.112-.307c-.706.13-1.166.927-1.166.927s.597-.157.95-.078c.352.077.598.435.598.435s.324-.283.432-.436c.11-.154.295-.543.295-.543" fill="#db4446"/> - <path d="M216.616 240.357s-.406-.433-1.112-.307c-.706.13-1.166.927-1.166.927s.597-.157.95-.078c.352.077.598.435.598.435s.324-.283.432-.436c.11-.154.295-.543.295-.543h.003z" fill="none" stroke="#000" stroke-width=".374"/> - <path d="M215.803 243.21s-.598-.102-1.112.31c-.514.412-.542 1.207-.542 1.207s.49-.413.87-.357c.378.047.84.254.84.254s.082-.49.107-.616c.083-.36-.162-.8-.162-.8" fill="#db4446"/> - <path d="M215.803 243.21s-.598-.102-1.112.31c-.514.412-.542 1.207-.542 1.207s.49-.413.87-.357c.378.047.84.254.84.254s.082-.49.107-.616c.083-.36-.162-.8-.162-.8z" fill="none" stroke="#000" stroke-width=".374"/> - <path d="M217.19 245.835s-.04.763.323 1.23c.38.49 1.087.567 1.087.567s-.237-.512-.274-.772c-.053-.384.325-.72.325-.72s-.35-.356-.7-.356c-.355 0-.76.05-.76.05" fill="#db4446"/> - <path d="M217.19 245.835s-.04.763.323 1.23c.38.49 1.087.567 1.087.567s-.237-.512-.274-.772c-.053-.384.325-.72.325-.72s-.35-.356-.7-.356c-.355 0-.76.05-.76.05zm16.01 1.281s1.954 1.21 1.9 2.213c-.057 1.002-1.087 2.313-1.087 2.313" fill="none" stroke="#000" stroke-width=".374"/> - <path d="M224.243 252.594s-.49-.616-1.166-.592c-.68.027-1.387.664-1.387.664s.844-.072 1.06.208c.22.287.435.64.435.64s.38-.2.544-.33c.162-.125.513-.59.513-.59" fill="#db4446"/> - <path d="M224.243 252.594s-.49-.616-1.166-.592c-.68.027-1.387.664-1.387.664s.844-.072 1.06.208c.22.287.435.64.435.64s.38-.2.544-.33c.162-.125.513-.59.513-.59z" fill="none" stroke="#000" stroke-width=".374"/> - <path d="M222.153 255.29s-.893-.128-1.33.335c-.435.46-.406 1.31-.406 1.31s.545-.59 1.03-.54c.49.052 1.033.31 1.033.31s-.083-.514-.137-.746c-.054-.232-.19-.67-.19-.67" fill="#db4446"/> - <path d="M222.153 255.29s-.893-.128-1.33.335c-.435.46-.406 1.31-.406 1.31s.545-.59 1.03-.54c.49.052 1.033.31 1.033.31s-.083-.514-.137-.746c-.054-.232-.19-.67-.19-.67z" fill="none" stroke="#000" stroke-width=".374"/> - <path d="M224.082 258.145s-.436.616-.108 1.104c.324.49 1 .722 1 .722s-.24-.358-.132-.775c.085-.326.65-.77.65-.77l-1.41-.28" fill="#db4446"/> - <path d="M224.082 258.145s-.436.616-.108 1.104c.324.49 1 .722 1 .722s-.24-.358-.132-.775c.085-.326.65-.77.65-.77l-1.41-.28v-.002z" fill="none" stroke="#000" stroke-width=".374"/> - <path d="M235.992 259.304s-.783-.185-1.22.075c-.43.254-.784 1.335-.784 1.335s.705-.59 1.22-.518c.515.08.897.287.897.287s.078-.44.024-.744c-.033-.184-.138-.436-.138-.436" fill="#db4446"/> - <path d="M235.992 259.304s-.783-.185-1.22.075c-.43.254-.784 1.335-.784 1.335s.705-.59 1.22-.518c.515.08.897.287.897.287s.078-.44.024-.744c-.033-.184-.138-.436-.138-.436z" fill="none" stroke="#000" stroke-width=".374"/> - <path d="M236.374 262.178s-.597.616-.382 1.13c.22.515.598 1.054.598 1.054s-.022-.766.22-.974c.35-.308 1-.36 1-.36s-.514-.462-.68-.513a15.836 15.836 0 0 1-.756-.337" fill="#db4446"/> - <path d="M236.374 262.178s-.597.616-.382 1.13c.22.515.598 1.054.598 1.054s-.022-.766.22-.974c.35-.308 1-.36 1-.36s-.514-.462-.68-.513a15.836 15.836 0 0 1-.756-.337z" fill="none" stroke="#000" stroke-width=".374"/> - <path d="M239.358 263.08s-.298.743.274 1.23c.568.492 1.06.543 1.06.543s-.437-.774-.3-1.183c.14-.426.514-.692.514-.692s-.706-.235-.814-.208c-.107.024-.734.31-.734.31" fill="#db4446"/> - <path d="M239.358 263.08s-.298.743.274 1.23c.568.492 1.06.543 1.06.543s-.437-.774-.3-1.183c.14-.426.514-.692.514-.692s-.706-.235-.814-.208c-.107.024-.734.31-.734.31z" fill="none" stroke="#000" stroke-width=".374"/> - <path d="M208.79 316.368c2.01.605 3.028 2.1 3.028 3.852 0 2.28-2.213 4.012-5.086 4.012-2.872 0-5.2-1.73-5.2-4.012 0-1.725.956-3.65 2.954-3.79 0 0-.06-.18-.233-.478-.208-.22-.616-.633-.616-.633s.763-.144 1.202.023c.442.167.733.446.733.446s.21-.41.5-.727c.296-.314.678-.51.678-.51s.442.37.587.62c.144.255.238.56.238.56s.406-.337.76-.473c.35-.14.805-.248.805-.248s-.13.44-.216.664c-.086.223-.133.692-.133.692" fill="#ffd691" stroke="#000" stroke-width=".499"/> - <path d="M206.308 326.708s-3.82-2.574-5.475-2.922c-2.117-.446-4.496-.085-5.525-.14.028.03 1.234.89 1.763 1.422.53.528 2.294 1.585 3.29 1.834 3.1.778 5.948-.194 5.948-.194m1.089.225s2.447-2.544 5.007-2.895c3.027-.42 5.007.25 6.183.556.026 0-.972.474-1.5.835-.53.36-1.893 1.503-3.977 1.527-2.087.03-4.39-.22-4.772-.16-.382.05-.94.136-.94.136" fill="#058e6e" stroke="#000" stroke-width=".499"/> - <path d="M206.664 323.786a4.852 4.852 0 0 1 .003-7.13 4.845 4.845 0 0 1 1.552 3.562 4.864 4.864 0 0 1-1.556 3.568" fill="#ad1519" stroke="#000" stroke-width=".499"/> - <path d="M205.692 329.002s.59-1.46.648-2.713c.05-1.05-.148-2.087-.148-2.087h.763s.382 1.114.382 2.086c0 .973-.176 2.27-.176 2.27s-.528.08-.704.162c-.174.086-.764.28-.764.28" fill="#058e6e" stroke="#000" stroke-width=".499"/> - <path d="M254.005 190.727c0-.553.47-.993 1.05-.993.585 0 1.052.44 1.052.993 0 .552-.467.995-1.05.995-.58 0-1.052-.443-1.052-.995" fill="#fff"/> - <path d="M254.005 190.727c0-.553.47-.993 1.05-.993.585 0 1.052.44 1.052.993 0 .552-.467.995-1.05.995-.58 0-1.052-.443-1.052-.995z" fill="none" stroke="#000" stroke-width=".374"/> - <path d="M255.444 188.177c0-.55.468-.992 1.052-.992.58 0 1.05.443 1.05.992 0 .556-.47 1-1.05 1-.584 0-1.052-.444-1.052-1" fill="#fff"/> - <path d="M255.444 188.177c0-.55.468-.992 1.052-.992.58 0 1.05.443 1.05.992 0 .556-.47 1-1.05 1-.584 0-1.052-.444-1.052-1z" fill="none" stroke="#000" stroke-width=".374"/> - <path d="M256.4 185.225c0-.55.473-.995 1.058-.995.58 0 1.05.446 1.05.995 0 .552-.47 1-1.05 1-.585 0-1.057-.448-1.057-1" fill="#fff"/> - <path d="M256.4 185.225c0-.55.473-.995 1.058-.995.58 0 1.05.446 1.05.995 0 .552-.47 1-1.05 1-.585 0-1.057-.448-1.057-1z" fill="none" stroke="#000" stroke-width=".374"/> - <path d="M256.525 182.057c0-.552.47-.994 1.05-.994.58 0 1.05.442 1.05.994 0 .553-.47.996-1.05.996-.58 0-1.05-.443-1.05-.996" fill="#fff"/> - <path d="M256.525 182.057c0-.552.47-.994 1.05-.994.58 0 1.05.442 1.05.994 0 .553-.47.996-1.05.996-.58 0-1.05-.443-1.05-.996z" fill="none" stroke="#000" stroke-width=".374"/> - <path d="M255.743 178.94c0-.55.473-.993 1.05-.993.584 0 1.056.443 1.056.992 0 .554-.473.998-1.056.998-.578 0-1.05-.444-1.05-1" fill="#fff"/> - <path d="M255.743 178.94c0-.55.473-.993 1.05-.993.584 0 1.056.443 1.056.992 0 .554-.473.998-1.056.998-.578 0-1.05-.444-1.05-1z" fill="none" stroke="#000" stroke-width=".374"/> - <path d="M254.124 176.11c0-.553.47-.996 1.05-.996.584 0 1.054.443 1.054.995s-.47.998-1.053.998c-.58 0-1.05-.446-1.05-1" fill="#fff"/> - <path d="M254.124 176.11c0-.553.47-.996 1.05-.996.584 0 1.054.443 1.054.995s-.47.998-1.053.998c-.58 0-1.05-.446-1.05-1z" fill="none" stroke="#000" stroke-width=".374"/> - <path d="M251.964 173.784c0-.552.47-.998 1.05-.998.585 0 1.055.446 1.055.998 0 .55-.47.996-1.055.996-.58 0-1.05-.447-1.05-.996" fill="#fff"/> - <path d="M251.964 173.784c0-.552.47-.998 1.05-.998.585 0 1.055.446 1.055.998 0 .55-.47.996-1.055.996-.58 0-1.05-.447-1.05-.996z" fill="none" stroke="#000" stroke-width=".374"/> - <path d="M249.454 171.852c0-.553.473-1 1.056-1 .58 0 1.05.447 1.05 1 0 .548-.47.994-1.05.994-.583 0-1.056-.446-1.056-.994" fill="#fff"/> - <path d="M249.454 171.852c0-.553.473-1 1.056-1 .58 0 1.05.447 1.05 1 0 .548-.47.994-1.05.994-.583 0-1.056-.446-1.056-.994z" fill="none" stroke="#000" stroke-width=".374"/> - <path d="M246.457 170.27c0-.553.47-.992 1.05-.992.584 0 1.056.44 1.056.99 0 .554-.472 1-1.055 1-.58 0-1.05-.446-1.05-1" fill="#fff"/> - <path d="M246.457 170.27c0-.553.47-.992 1.05-.992.584 0 1.056.44 1.056.99 0 .554-.472 1-1.055 1-.58 0-1.05-.446-1.05-1z" fill="none" stroke="#000" stroke-width=".374"/> - <path d="M243.347 169.14c0-.548.47-.994 1.054-.994.58 0 1.053.446 1.053.995 0 .553-.473 1-1.052 1-.582 0-1.053-.447-1.053-1" fill="#fff"/> - <path d="M243.347 169.14c0-.548.47-.994 1.054-.994.58 0 1.053.446 1.053.995 0 .553-.473 1-1.052 1-.582 0-1.053-.447-1.053-1z" fill="none" stroke="#000" stroke-width=".374"/> - <path d="M239.87 168.52c0-.548.47-.998 1.05-.998.585 0 1.054.45 1.054.998 0 .55-.47.997-1.053.997-.58 0-1.05-.448-1.05-.997" fill="#fff"/> - <path d="M239.87 168.52c0-.548.47-.998 1.05-.998.585 0 1.054.45 1.054.998 0 .55-.47.997-1.053.997-.58 0-1.05-.448-1.05-.997z" fill="none" stroke="#000" stroke-width=".374"/> - <path d="M236.568 168.347c0-.55.473-.992 1.055-.992.58 0 1.053.442 1.053.992 0 .553-.473 1-1.053 1-.582 0-1.055-.447-1.055-1" fill="#fff"/> - <path d="M236.568 168.347c0-.55.473-.992 1.055-.992.58 0 1.053.442 1.053.992 0 .553-.473 1-1.053 1-.582 0-1.055-.447-1.055-1z" fill="none" stroke="#000" stroke-width=".374"/> - <path d="M233.328 168.46c0-.55.474-.996 1.055-.996.584 0 1.052.447 1.052.996 0 .552-.468.998-1.052.998-.58 0-1.055-.446-1.055-.998" fill="#fff"/> - <path d="M233.328 168.46c0-.55.474-.996 1.055-.996.584 0 1.052.447 1.052.996 0 .552-.468.998-1.052.998-.58 0-1.055-.446-1.055-.998z" fill="none" stroke="#000" stroke-width=".374"/> - <path d="M230.093 168.46c0-.55.47-.996 1.05-.996.58 0 1.052.447 1.052.996 0 .552-.472.998-1.05.998-.58 0-1.052-.446-1.052-.998" fill="#fff"/> - <path d="M230.093 168.46c0-.55.47-.996 1.05-.996.58 0 1.052.447 1.052.996 0 .552-.472.998-1.05.998-.58 0-1.052-.446-1.052-.998z" fill="none" stroke="#000" stroke-width=".374"/> - <path d="M231.714 171.238c0-.552.47-.998 1.05-.998.584 0 1.05.446 1.05.998 0 .55-.466.998-1.05.998-.58 0-1.05-.45-1.05-.998m.658 3.068c0-.552.472-1 1.05-1 .584 0 1.056.448 1.056 1 0 .546-.472.992-1.055.992-.58 0-1.05-.446-1.05-.992m.117 3.058c0-.556.473-1 1.055-1 .58 0 1.05.444 1.05 1 0 .548-.47.995-1.05.995-.582 0-1.055-.448-1.055-.996m-.957 2.782c0-.55.47-.998 1.05-.998.584 0 1.053.45 1.053.998 0 .552-.47.995-1.053.995-.58 0-1.05-.443-1.05-.995m-1.789 2.557c0-.55.472-.998 1.05-.998.583 0 1.052.45 1.052.998 0 .55-.47.996-1.05.996-.58 0-1.052-.446-1.052-.996" fill="#fff" stroke="#000" stroke-width=".374"/> - <path d="M227.642 166.53c0-.55.472-.992 1.054-.992.58 0 1.052.443 1.052.992 0 .552-.472 1-1.052 1-.582 0-1.054-.448-1.054-1" fill="#fff"/> - <path d="M227.642 166.53c0-.55.472-.992 1.054-.992.58 0 1.052.443 1.052.992 0 .552-.472 1-1.052 1-.582 0-1.054-.448-1.054-1z" fill="none" stroke="#000" stroke-width=".374"/> - <path d="M224.765 164.94c0-.548.47-.997 1.052-.997.58 0 1.05.45 1.05.998 0 .55-.47.997-1.05.997-.582 0-1.052-.446-1.052-.996" fill="#fff"/> - <path d="M224.765 164.94c0-.548.47-.997 1.052-.997.58 0 1.05.45 1.05.998 0 .55-.47.997-1.05.997-.582 0-1.052-.446-1.052-.996z" fill="none" stroke="#000" stroke-width=".374"/> - <path d="M221.595 163.983c0-.55.472-.99 1.053-.99.58 0 1.052.44 1.052.99 0 .552-.472 1-1.052 1-.58 0-1.053-.448-1.053-1" fill="#fff"/> - <path d="M221.595 163.983c0-.55.472-.99 1.053-.99.58 0 1.052.44 1.052.99 0 .552-.472 1-1.052 1-.58 0-1.053-.448-1.053-1z" fill="none" stroke="#000" stroke-width=".374"/> - <path d="M218.298 163.418c0-.55.472-.996 1.05-.996.584 0 1.052.447 1.052.996 0 .548-.468.995-1.05.995-.58 0-1.052-.447-1.052-.995" fill="#fff"/> - <path d="M218.298 163.418c0-.55.472-.996 1.05-.996.584 0 1.052.447 1.052.996 0 .548-.468.995-1.05.995-.58 0-1.052-.447-1.052-.995z" fill="none" stroke="#000" stroke-width=".374"/> - <path d="M215.07 163.472c0-.548.47-1 1.05-1 .583 0 1.054.452 1.054 1 0 .553-.47.996-1.054.996-.58 0-1.05-.443-1.05-.996" fill="#fff"/> - <path d="M215.07 163.472c0-.548.47-1 1.05-1 .583 0 1.054.452 1.054 1 0 .553-.47.996-1.054.996-.58 0-1.05-.443-1.05-.996z" fill="none" stroke="#000" stroke-width=".374"/> - <path d="M211.71 164.038c0-.548.472-.993 1.052-.993.583 0 1.054.445 1.054.993 0 .555-.47 1-1.054 1-.58 0-1.052-.445-1.052-1" fill="#fff"/> - <path d="M211.71 164.038c0-.548.472-.993 1.052-.993.583 0 1.054.445 1.054.993 0 .555-.47 1-1.054 1-.58 0-1.052-.445-1.052-1z" fill="none" stroke="#000" stroke-width=".374"/> - <path d="M208.6 165.112c0-.553.472-1 1.05-1 .585 0 1.056.447 1.056 1 0 .548-.47 1-1.055 1-.578 0-1.05-.452-1.05-1" fill="#fff"/> - <path d="M208.6 165.112c0-.553.472-1 1.05-1 .585 0 1.056.447 1.056 1 0 .548-.47 1-1.055 1-.578 0-1.05-.452-1.05-1z" fill="none" stroke="#000" stroke-width=".374"/> - <path d="M155.928 190.727c0-.553.473-.993 1.052-.993.583 0 1.05.44 1.05.993 0 .552-.467.995-1.05.995-.58 0-1.052-.443-1.052-.995" fill="#fff"/> - <path d="M155.928 190.727c0-.553.473-.993 1.052-.993.583 0 1.05.44 1.05.993 0 .552-.467.995-1.05.995-.58 0-1.052-.443-1.052-.995z" fill="none" stroke="#000" stroke-width=".374"/> - <path d="M154.488 188.177c0-.55.472-.992 1.052-.992.583 0 1.055.443 1.055.992 0 .556-.472 1-1.055 1-.58 0-1.052-.444-1.052-1" fill="#fff"/> - <path d="M154.488 188.177c0-.55.472-.992 1.052-.992.583 0 1.055.443 1.055.992 0 .556-.472 1-1.055 1-.58 0-1.052-.444-1.052-1z" fill="none" stroke="#000" stroke-width=".374"/> - <path d="M153.527 185.225c0-.55.472-.995 1.055-.995.58 0 1.052.446 1.052.995 0 .552-.472 1-1.052 1-.583 0-1.055-.448-1.055-1" fill="#fff"/> - <path d="M153.527 185.225c0-.55.472-.995 1.055-.995.58 0 1.052.446 1.052.995 0 .552-.472 1-1.052 1-.583 0-1.055-.448-1.055-1z" fill="none" stroke="#000" stroke-width=".374"/> - <path d="M153.408 182.057c0-.552.473-.994 1.052-.994.583 0 1.055.442 1.055.994 0 .553-.472.996-1.055.996-.58 0-1.052-.443-1.052-.996" fill="#fff"/> - <path d="M153.408 182.057c0-.552.473-.994 1.052-.994.583 0 1.055.442 1.055.994 0 .553-.472.996-1.055.996-.58 0-1.052-.443-1.052-.996z" fill="none" stroke="#000" stroke-width=".374"/> - <path d="M154.19 178.94c0-.55.47-.993 1.05-.993.58 0 1.052.443 1.052.992 0 .554-.472.998-1.052.998-.58 0-1.05-.444-1.05-1" fill="#fff"/> - <path d="M154.19 178.94c0-.55.47-.993 1.05-.993.58 0 1.052.443 1.052.992 0 .554-.472.998-1.052.998-.58 0-1.05-.444-1.05-1z" fill="none" stroke="#000" stroke-width=".374"/> - <path d="M155.805 176.11c0-.553.473-.996 1.056-.996.58 0 1.052.443 1.052.995s-.472.998-1.05.998c-.584 0-1.057-.446-1.057-1" fill="#fff"/> - <path d="M155.805 176.11c0-.553.473-.996 1.056-.996.58 0 1.052.443 1.052.995s-.472.998-1.05.998c-.584 0-1.057-.446-1.057-1z" fill="none" stroke="#000" stroke-width=".374"/> - <path d="M157.966 173.784c0-.552.472-.998 1.054-.998.58 0 1.052.446 1.052.998 0 .55-.473.996-1.052.996-.582 0-1.054-.447-1.054-.996" fill="#fff"/> - <path d="M157.966 173.784c0-.552.472-.998 1.054-.998.58 0 1.052.446 1.052.998 0 .55-.473.996-1.052.996-.582 0-1.054-.447-1.054-.996z" fill="none" stroke="#000" stroke-width=".374"/> - <path d="M160.475 171.852c0-.553.47-1 1.054-1 .58 0 1.05.447 1.05 1 0 .548-.47.994-1.05.994-.584 0-1.055-.446-1.055-.994" fill="#fff"/> - <path d="M160.475 171.852c0-.553.47-1 1.054-1 .58 0 1.05.447 1.05 1 0 .548-.47.994-1.05.994-.584 0-1.055-.446-1.055-.994z" fill="none" stroke="#000" stroke-width=".374"/> - <path d="M163.473 170.27c0-.553.47-.992 1.055-.992.58 0 1.05.44 1.05.99 0 .554-.47 1-1.05 1-.584 0-1.055-.446-1.055-1" fill="#fff"/> - <path d="M163.473 170.27c0-.553.47-.992 1.055-.992.58 0 1.05.44 1.05.99 0 .554-.47 1-1.05 1-.584 0-1.055-.446-1.055-1z" fill="none" stroke="#000" stroke-width=".374"/> - <path d="M166.583 169.14c0-.548.472-.994 1.052-.994.582 0 1.054.446 1.054.995 0 .553-.473 1-1.055 1-.58 0-1.052-.447-1.052-1" fill="#fff"/> - <path d="M166.583 169.14c0-.548.472-.994 1.052-.994.582 0 1.054.446 1.054.995 0 .553-.473 1-1.055 1-.58 0-1.052-.447-1.052-1z" fill="none" stroke="#000" stroke-width=".374"/> - <path d="M170.064 168.52c0-.548.47-.998 1.052-.998.578 0 1.05.45 1.05.998 0 .55-.472.997-1.05.997-.58 0-1.052-.448-1.052-.997" fill="#fff"/> - <path d="M170.064 168.52c0-.548.47-.998 1.052-.998.578 0 1.05.45 1.05.998 0 .55-.472.997-1.05.997-.58 0-1.052-.448-1.052-.997z" fill="none" stroke="#000" stroke-width=".374"/> - <path d="M173.362 168.347c0-.55.47-.992 1.054-.992.58 0 1.05.442 1.05.992 0 .553-.47 1-1.05 1-.584 0-1.054-.447-1.054-1" fill="#fff"/> - <path d="M173.362 168.347c0-.55.47-.992 1.054-.992.58 0 1.05.442 1.05.992 0 .553-.47 1-1.05 1-.584 0-1.054-.447-1.054-1z" fill="none" stroke="#000" stroke-width=".374"/> - <path d="M176.6 168.46c0-.55.472-.996 1.05-.996.585 0 1.056.447 1.056.996 0 .552-.47.998-1.055.998-.578 0-1.05-.446-1.05-.998" fill="#fff"/> - <path d="M176.6 168.46c0-.55.472-.996 1.05-.996.585 0 1.056.447 1.056.996 0 .552-.47.998-1.055.998-.578 0-1.05-.446-1.05-.998z" fill="none" stroke="#000" stroke-width=".374"/> - <path d="M179.84 168.46c0-.55.47-.996 1.05-.996.584 0 1.056.447 1.056.996 0 .552-.472.998-1.055.998-.58 0-1.05-.446-1.05-.998" fill="#fff"/> - <path d="M179.84 168.46c0-.55.47-.996 1.05-.996.584 0 1.056.447 1.056.996 0 .552-.472.998-1.055.998-.58 0-1.05-.446-1.05-.998z" fill="none" stroke="#000" stroke-width=".374"/> - <path d="M178.22 171.238c0-.552.472-.998 1.052-.998.582 0 1.054.446 1.054.998 0 .55-.472.998-1.054.998-.58 0-1.052-.45-1.052-.998m-.658 3.068c0-.552.467-1 1.05-1 .58 0 1.052.448 1.052 1 0 .546-.472.992-1.05.992-.585 0-1.052-.446-1.052-.992m-.122 3.058c0-.556.47-1 1.054-1 .58 0 1.05.444 1.05 1 0 .548-.47.995-1.05.995-.583 0-1.054-.448-1.054-.996m.96 2.782c0-.55.472-.998 1.05-.998.585 0 1.056.45 1.056.998 0 .552-.47.995-1.055.995-.578 0-1.05-.443-1.05-.995m1.787 2.557c0-.55.474-.998 1.052-.998.583 0 1.055.45 1.055.998 0 .55-.472.996-1.055.996-.578 0-1.052-.446-1.052-.996" fill="#fff" stroke="#000" stroke-width=".374"/> - <path d="M182.288 166.53c0-.55.472-.992 1.05-.992.584 0 1.055.443 1.055.992 0 .552-.47 1-1.054 1-.58 0-1.052-.448-1.052-1" fill="#fff"/> - <path d="M182.288 166.53c0-.55.472-.992 1.05-.992.584 0 1.055.443 1.055.992 0 .552-.47 1-1.054 1-.58 0-1.052-.448-1.052-1z" fill="none" stroke="#000" stroke-width=".374"/> - <path d="M185.168 164.94c0-.548.47-.997 1.05-.997.583 0 1.055.45 1.055.998 0 .55-.472.997-1.055.997-.58 0-1.05-.446-1.05-.996" fill="#fff"/> - <path d="M185.168 164.94c0-.548.47-.997 1.05-.997.583 0 1.055.45 1.055.998 0 .55-.472.997-1.055.997-.58 0-1.05-.446-1.05-.996z" fill="none" stroke="#000" stroke-width=".374"/> - <path d="M188.334 163.983c0-.55.473-.99 1.055-.99.58 0 1.05.44 1.05.99 0 .552-.47 1-1.05 1-.583 0-1.056-.448-1.056-1" fill="#fff"/> - <path d="M188.334 163.983c0-.55.473-.99 1.055-.99.58 0 1.05.44 1.05.99 0 .552-.47 1-1.05 1-.583 0-1.056-.448-1.056-1z" fill="none" stroke="#000" stroke-width=".374"/> - <path d="M191.635 163.418c0-.55.472-.996 1.05-.996.585 0 1.057.447 1.057.996 0 .548-.472.995-1.056.995-.58 0-1.05-.447-1.05-.995" fill="#fff"/> - <path d="M191.635 163.418c0-.55.472-.996 1.05-.996.585 0 1.057.447 1.057.996 0 .548-.472.995-1.056.995-.58 0-1.05-.447-1.05-.995z" fill="none" stroke="#000" stroke-width=".374"/> - <path d="M194.865 163.472c0-.548.467-1 1.05-1 .58 0 1.05.452 1.05 1 0 .553-.47.996-1.05.996-.583 0-1.05-.443-1.05-.996" fill="#fff"/> - <path d="M194.865 163.472c0-.548.467-1 1.05-1 .58 0 1.05.452 1.05 1 0 .553-.47.996-1.05.996-.583 0-1.05-.443-1.05-.996z" fill="none" stroke="#000" stroke-width=".374"/> - <path d="M198.223 164.038c0-.548.47-.993 1.05-.993.585 0 1.052.445 1.052.993 0 .555-.467 1-1.052 1-.58 0-1.05-.445-1.05-1" fill="#fff"/> - <path d="M198.223 164.038c0-.548.47-.993 1.05-.993.585 0 1.052.445 1.052.993 0 .555-.467 1-1.052 1-.58 0-1.05-.445-1.05-1z" fill="none" stroke="#000" stroke-width=".374"/> - <path d="M201.33 165.112c0-.553.47-1 1.054-1 .58 0 1.05.447 1.05 1 0 .548-.47 1-1.05 1-.584 0-1.054-.452-1.054-1" fill="#fff"/> - <path d="M201.33 165.112c0-.553.47-1 1.054-1 .58 0 1.05.447 1.05 1 0 .548-.47 1-1.05 1-.584 0-1.054-.452-1.054-1z" fill="none" stroke="#000" stroke-width=".374"/> - <path d="M174.647 228.876h-.887v-.888h-1.553v3.55h1.553v2.44h-3.327v7.098h1.774v14.197h-3.55v7.32h27.286v-7.32h-3.55v-14.197h1.775v-7.1h-3.327v-2.438h1.554v-3.55h-1.553v.888h-.886v-.888H188.4v.888h-1.108v-.888h-1.554v3.55h1.554v2.44h-3.328v-7.765h1.774v-3.55h-1.774v.888h-.887v-.886h-1.553v.887h-.887v-.886h-1.775v3.55h1.775v7.763h-3.328v-2.44h1.552v-3.55h-1.553v.89h-.89v-.89h-1.773v.89zm-5.99 33.718h27.286m-27.285-1.775h27.285m-27.285-1.776h27.285m-27.285-1.775h27.285m-27.285-1.997h27.285m-23.736-1.553h20.187m-20.187-1.775h20.187m-20.187-1.996h20.187m-20.187-1.776h20.187m-20.187-1.775h20.187m-20.187-1.775h20.187m-20.187-1.775h20.187m-21.96-1.774h23.734m-23.735-1.775h23.735m-23.735-1.773h23.735m-23.735-1.775h23.735m-20.408-1.775h17.08m-10.203-1.774h3.327m-3.327-1.775h3.327m-3.327-1.774h3.327m-3.327-1.775h3.327m-5.102-2.22h6.876m-11.978 7.543h3.55m-5.103-2.22h6.655m-6.655 32.61v-1.774m0-1.776v-1.775m-1.774 1.774v1.775m3.327 0v-1.776m1.774 3.55v-1.775m0-1.776v-1.775m0-1.997v-1.553m0-1.775v-1.996m-1.774 7.32v-1.997m-3.327 1.996v-1.997m6.876 0v1.996m1.552-1.997v-1.553m-5.102-1.775v1.775m3.55-1.775v1.775m3.327-1.775v1.775m-1.775-1.775v-1.996m1.775-1.776v1.775m0-5.325v1.774m-1.775-3.55v1.775m1.775-3.55v1.775m-3.328-1.774v1.774m-3.55-1.774v1.774m-1.553-3.55v1.776m3.327-1.775v1.776m3.328-1.775v1.776m1.775-3.55v1.775m-3.328-1.773v1.774m-3.55-1.773v1.774m-1.553-3.548v1.775m6.655-1.775v1.775m-3.328-5.324v1.774m15.307-1.774h-3.548m5.102-2.22h-6.656m6.656 32.61v-1.774m0-1.776v-1.775m1.774 1.774v1.775m-3.327 0v-1.776m-1.774 3.55v-1.775m0-1.776v-1.775m0-1.997v-1.553m0-1.775v-1.996m1.775 7.32v-1.997m3.328 1.996v-1.997m-6.876 0v1.996m-1.554-1.997v-1.553m5.103-1.775v1.775m-3.548-1.775v1.775m-3.328-1.775v1.775m1.774-1.775v-1.996m-1.774-1.776v1.775m0-5.325v1.774m1.774-3.55v1.775m-1.774-3.55v1.775m3.328-1.774v1.774m3.55-1.774v1.774m1.552-3.55v1.776m-3.328-1.775v1.776m-3.328-1.775v1.776m-1.774-3.55v1.775m3.328-1.773v1.774m3.55-1.773v1.774m1.552-3.548v1.775m-6.656-1.775v1.775m3.328-5.324v1.774m-6.877 17.968v-1.996m0-5.325v-1.775m0 5.324V246.4m0-5.324V239.3m0-1.773v-1.775m0-3.55v-1.774m0-1.774v-1.775m-8.43 4.658h3.55m3.327-5.325h3.327m3.328 5.325h3.55" fill="#c8b100" stroke="#000" stroke-width=".442"/> - <path d="M186.848 262.594v-4.66c0-.886-.444-3.548-4.66-3.548-3.992 0-4.435 2.662-4.435 3.55v4.658h9.095z" fill="#c8b100" stroke="#000" stroke-width=".442"/> - <path d="M179.305 258.156l-2.217-.22c0-.888.22-2.22.887-2.663l1.997 1.553c-.222.222-.667.887-.667 1.33zm5.99 0l2.218-.22c0-.888-.22-2.22-.887-2.663l-1.997 1.553c.22.222.665.887.665 1.33zm-2.218-2.218l1.11-1.996c-.445-.222-1.333-.443-1.998-.443-.444 0-1.33.22-1.775.442l1.11 1.996h1.552zm-4.215-5.545v-4.88c0-1.33-.887-2.44-2.44-2.44s-2.44 1.11-2.44 2.44v4.88h4.88zm6.876 0v-4.88c0-1.33.888-2.44 2.44-2.44 1.554 0 2.44 1.11 2.44 2.44v4.88h-4.88zm-1.774-11.979l.444-4.437h-4.215l.222 4.437h3.55zm3.328 0l-.444-4.437h4.436l-.443 4.437h-3.548zm-9.982 0l.22-4.437h-4.214l.444 4.437h3.55z" fill="#c8b100" stroke="#000" stroke-width=".442"/> - <path d="M185.295 262.594V258.6c0-.665-.444-2.662-3.106-2.662-2.44 0-2.885 1.997-2.885 2.662v3.994h5.99zm-6.877-12.644v-4.216c0-1.11-.665-2.218-1.997-2.218-1.33 0-1.994 1.11-1.994 2.218v4.215h3.992zm7.765 0v-4.216c0-1.11.665-2.218 1.996-2.218 1.33 0 1.995 1.11 1.995 2.218v4.215h-3.992z" fill="#0039f0"/> - <path d="M190.808 269.766c0-9.698 6.987-17.56 15.604-17.56 8.62 0 15.608 7.862 15.608 17.56 0 9.698-6.987 17.56-15.608 17.56-8.617 0-15.604-7.862-15.604-17.56" fill="#ad1519"/> - <path d="M190.808 269.766c0-9.698 6.987-17.56 15.604-17.56 8.62 0 15.608 7.862 15.608 17.56 0 9.698-6.987 17.56-15.608 17.56-8.617 0-15.604-7.862-15.604-17.56z" fill="none" stroke="#000" stroke-width=".586"/> - <path d="M195.437 269.732c0-7.112 4.913-12.875 10.982-12.875 6.064 0 10.978 5.763 10.978 12.875 0 7.114-4.914 12.88-10.98 12.88-6.068 0-10.98-5.766-10.98-12.88" fill="#005bbf"/> - <path d="M195.437 269.732c0-7.112 4.913-12.875 10.982-12.875 6.064 0 10.978 5.763 10.978 12.875 0 7.114-4.914 12.88-10.98 12.88-6.068 0-10.98-5.766-10.98-12.88z" fill="none" stroke="#000" stroke-width=".586"/> - <path d="M201.232 260.868s-1.304 1.428-1.304 2.75c0 1.33.55 2.434.55 2.434-.196-.524-.73-.902-1.355-.902-.79 0-1.437.607-1.437 1.36 0 .218.134.56.235.746l.468.945c.155-.348.52-.54.944-.54.567 0 1.03.432 1.03.97a.88.88 0 0 1-.033.238l-1.17.004v.996h1.043l-.777 1.54 1.03-.4.776.875.806-.876 1.026.4-.773-1.54h1.044v-.995l-1.173-.004a.878.878 0 0 1-.024-.237c0-.538.453-.97 1.02-.97.426 0 .79.192.948.54l.464-.944c.1-.187.235-.528.235-.746 0-.753-.64-1.36-1.436-1.36-.627 0-1.156.378-1.354.902 0 0 .547-1.104.547-2.433 0-1.324-1.33-2.752-1.33-2.752" fill="#c8b100"/> - <path d="M201.232 260.868s-1.304 1.428-1.304 2.75c0 1.33.55 2.434.55 2.434-.196-.524-.73-.902-1.355-.902-.79 0-1.437.607-1.437 1.36 0 .218.134.56.235.746l.468.945c.155-.348.52-.54.944-.54.567 0 1.03.432 1.03.97a.88.88 0 0 1-.033.238l-1.17.004v.996h1.043l-.777 1.54 1.03-.4.776.875.806-.876 1.026.4-.773-1.54h1.044v-.995l-1.173-.004a.878.878 0 0 1-.024-.237c0-.538.453-.97 1.02-.97.426 0 .79.192.948.54l.464-.944c.1-.187.235-.528.235-.746 0-.753-.64-1.36-1.436-1.36-.627 0-1.156.378-1.354.902 0 0 .547-1.104.547-2.433 0-1.324-1.33-2.752-1.33-2.752h.002z" fill="none" stroke="#000" stroke-width=".326" stroke-linejoin="round"/> - <path d="M199.16 269.868h4.177v-.996h-4.178v.996z" fill="#c8b100"/> - <path d="M199.16 269.868h4.177v-.996h-4.178v.996z" fill="none" stroke="#000" stroke-width=".326"/> - <path d="M211.436 260.868s-1.302 1.428-1.302 2.75c0 1.33.547 2.434.547 2.434-.194-.524-.726-.902-1.353-.902-.795 0-1.436.607-1.436 1.36 0 .218.135.56.235.746l.464.945c.158-.348.522-.54.947-.54.568 0 1.025.432 1.025.97a.89.89 0 0 1-.028.238l-1.17.004v.996h1.043l-.777 1.54 1.026-.4.78.875.804-.876 1.03.4-.778-1.54h1.043v-.995l-1.17-.004a.84.84 0 0 1-.028-.237c0-.538.457-.97 1.026-.97.425 0 .788.192.943.54l.467-.944c.102-.187.234-.528.234-.746 0-.753-.643-1.36-1.436-1.36-.624 0-1.16.378-1.355.902 0 0 .55-1.104.55-2.433 0-1.324-1.33-2.752-1.33-2.752" fill="#c8b100"/> - <path d="M211.436 260.868s-1.302 1.428-1.302 2.75c0 1.33.547 2.434.547 2.434-.194-.524-.726-.902-1.353-.902-.795 0-1.436.607-1.436 1.36 0 .218.135.56.235.746l.464.945c.158-.348.522-.54.947-.54.568 0 1.025.432 1.025.97a.89.89 0 0 1-.028.238l-1.17.004v.996h1.043l-.777 1.54 1.026-.4.78.875.804-.876 1.03.4-.778-1.54h1.043v-.995l-1.17-.004a.84.84 0 0 1-.028-.237c0-.538.457-.97 1.026-.97.425 0 .788.192.943.54l.467-.944c.102-.187.234-.528.234-.746 0-.753-.643-1.36-1.436-1.36-.624 0-1.16.378-1.355.902 0 0 .55-1.104.55-2.433 0-1.324-1.33-2.752-1.33-2.752h.002z" fill="none" stroke="#000" stroke-width=".326" stroke-linejoin="round"/> - <path d="M209.363 269.868h4.176v-.996h-4.177v.996z" fill="#c8b100"/> - <path d="M209.363 269.868h4.176v-.996h-4.177v.996z" fill="none" stroke="#000" stroke-width=".326"/> - <path d="M206.333 269.646s-1.304 1.428-1.304 2.755.55 2.43.55 2.43c-.197-.524-.727-.903-1.356-.903-.792 0-1.437.608-1.437 1.36 0 .222.133.56.234.747l.47.944c.158-.347.517-.545.94-.545.57 0 1.032.436 1.032.975a.86.86 0 0 1-.033.242l-1.17.003v.996h1.047l-.778 1.54 1.026-.406.777.876.807-.876 1.03.406-.783-1.54h1.048v-.997l-1.17-.003a.9.9 0 0 1-.03-.242c0-.54.458-.975 1.028-.975.423 0 .783.198.942.545l.47-.944c.098-.188.232-.525.232-.746 0-.753-.644-1.36-1.436-1.36-.625 0-1.154.378-1.356.903 0 0 .55-1.103.55-2.43 0-1.326-1.335-2.754-1.335-2.754" fill="#c8b100"/> - <path d="M206.333 269.646s-1.304 1.428-1.304 2.755.55 2.43.55 2.43c-.197-.524-.727-.903-1.356-.903-.792 0-1.437.608-1.437 1.36 0 .222.133.56.234.747l.47.944c.158-.347.517-.545.94-.545.57 0 1.032.436 1.032.975a.86.86 0 0 1-.033.242l-1.17.003v.996h1.047l-.778 1.54 1.026-.406.777.876.807-.876 1.03.406-.783-1.54h1.048v-.997l-1.17-.003a.9.9 0 0 1-.03-.242c0-.54.458-.975 1.028-.975.423 0 .783.198.942.545l.47-.944c.098-.188.232-.525.232-.746 0-.753-.644-1.36-1.436-1.36-.625 0-1.154.378-1.356.903 0 0 .55-1.103.55-2.43 0-1.326-1.335-2.754-1.335-2.754h.003z" fill="none" stroke="#000" stroke-width=".326" stroke-linejoin="round"/> - <path d="M204.26 278.65h4.178v-.997h-4.178v.996z" fill="#c8b100"/> - <path d="M204.26 278.65h4.178v-.997h-4.178v.996z" fill="none" stroke="#000" stroke-width=".326"/> - <path d="M237.567 223.398l-.278.02a1.483 1.483 0 0 1-.256.342c-.246.234-.616.26-.825.064a.472.472 0 0 1-.134-.393.498.498 0 0 1-.49-.006c-.248-.143-.31-.483-.13-.767.03-.054.058-.125.1-.167l-.017-.31-.336.08-.097.182c-.208.236-.518.297-.673.158a.555.555 0 0 1-.126-.253c.003.008-.08.082-.166.102-.513.126-.72-1.006-.73-1.3l-.17.24s.153.677.076 1.25c-.075.573-.278 1.146-.278 1.146.717.184 1.79.766 2.855 1.588 1.066.815 1.904 1.7 2.25 2.322 0 0 .552-.308 1.13-.49.574-.188 1.303-.192 1.303-.192l.21-.205c-.308.044-1.52.095-1.495-.413.005-.08.065-.17.076-.17a.667.667 0 0 1-.29-.065c-.175-.116-.17-.412.024-.658l.17-.123.01-.326-.325.045c-.03.04-.105.087-.15.128-.254.222-.62.238-.823.03a.422.422 0 0 1-.107-.446.548.548 0 0 1-.433-.045c-.248-.15-.295-.5-.104-.773.09-.134.266-.29.297-.307l-.067-.287" fill="#c8b100"/> - <path d="M237.567 223.398l-.278.02a1.483 1.483 0 0 1-.256.342c-.246.234-.616.26-.825.064a.472.472 0 0 1-.134-.393.498.498 0 0 1-.49-.006c-.248-.143-.31-.483-.13-.767.03-.054.058-.125.1-.167l-.017-.31-.336.08-.097.182c-.208.236-.518.297-.673.158a.555.555 0 0 1-.126-.253c.003.008-.08.082-.166.102-.513.126-.72-1.006-.73-1.3l-.17.24s.153.677.076 1.25c-.075.573-.278 1.146-.278 1.146.717.184 1.79.766 2.855 1.588 1.066.815 1.904 1.7 2.25 2.322 0 0 .552-.308 1.13-.49.574-.188 1.303-.192 1.303-.192l.21-.205c-.308.044-1.52.095-1.495-.413.005-.08.065-.17.076-.17a.667.667 0 0 1-.29-.065c-.175-.116-.17-.412.024-.658l.17-.123.01-.326-.325.045c-.03.04-.105.087-.15.128-.254.222-.62.238-.823.03a.422.422 0 0 1-.107-.446.548.548 0 0 1-.433-.045c-.248-.15-.295-.5-.104-.773.09-.134.266-.29.297-.307l-.067-.287-.007-.003z" fill="none" stroke="#000" stroke-width=".25"/> - <path d="M235.406 224.06c.048-.06.148-.056.223.002.074.058.095.15.05.205-.047.054-.145.054-.223-.007-.072-.054-.097-.147-.05-.2"/> - <path d="M235.406 224.06c.048-.06.148-.056.223.002.074.058.095.15.05.205-.047.054-.145.054-.223-.007-.072-.054-.097-.147-.05-.2z" fill="none" stroke="#000" stroke-width=".048"/> - <path d="M236.317 224.825l-.314-.242c-.057-.044-.075-.115-.04-.156.037-.038.113-.038.17.003l.313.246.32.243c.055.04.075.11.04.155-.04.037-.115.034-.172-.007l-.317-.243"/> - <path d="M236.317 224.825l-.314-.242c-.057-.044-.075-.115-.04-.156.037-.038.113-.038.17.003l.313.246.32.243c.055.04.075.11.04.155-.04.037-.115.034-.172-.007l-.317-.243" fill="none" stroke="#000" stroke-width=".048"/> - <path d="M234.644 223.68l-.25-.146c-.06-.037-.093-.11-.063-.156.026-.052.1-.06.162-.02l.247.145.252.147c.06.034.09.106.065.157-.028.044-.1.054-.165.017l-.248-.144"/> - <path d="M234.644 223.68l-.25-.146c-.06-.037-.093-.11-.063-.156.026-.052.1-.06.162-.02l.247.145.252.147c.06.034.09.106.065.157-.028.044-.1.054-.165.017l-.248-.144" fill="none" stroke="#000" stroke-width=".048"/> - <path d="M233.653 222.996c.047-.05.15-.05.223.007.076.058.097.15.05.204-.047.055-.146.05-.222-.003-.075-.062-.098-.15-.05-.208"/> - <path d="M233.653 222.996c.047-.05.15-.05.223.007.076.058.097.15.05.204-.047.055-.146.05-.222-.003-.075-.062-.098-.15-.05-.208z" fill="none" stroke="#000" stroke-width=".048"/> - <path d="M237.325 225.528c.047-.055.024-.143-.05-.204-.076-.06-.177-.062-.224-.003-.045.054-.024.146.05.204.076.06.177.06.225.004"/> - <path d="M237.325 225.528c.047-.055.024-.143-.05-.204-.076-.06-.177-.062-.224-.003-.045.054-.024.146.05.204.076.06.177.06.225.004z" fill="none" stroke="#000" stroke-width=".048"/> - <path d="M237.876 226.16l.204.196c.05.047.13.066.174.027.043-.033.037-.1-.01-.15l-.203-.2-.208-.205c-.05-.047-.13-.06-.173-.023-.047.03-.04.105.013.152l.203.202"/> - <path d="M237.876 226.16l.204.196c.05.047.13.066.174.027.043-.033.037-.1-.01-.15l-.203-.2-.208-.205c-.05-.047-.13-.06-.173-.023-.047.03-.04.105.013.152l.203.202" fill="none" stroke="#000" stroke-width=".048"/> - <path d="M238.785 226.935c.048-.057.026-.146-.05-.207-.075-.06-.176-.06-.223-.003-.047.058-.025.146.05.207.076.055.178.06.223.003"/> - <path d="M238.785 226.935c.048-.057.026-.146-.05-.207-.075-.06-.176-.06-.223-.003-.047.058-.025.146.05.207.076.055.178.06.223.003z" fill="none" stroke="#000" stroke-width=".048"/> - <path d="M236.146 221.14l-.567.018-.112.835.06.133.148-.01.727-.49-.257-.486" fill="#c8b100"/> - <path d="M236.146 221.14l-.567.018-.112.835.06.133.148-.01.727-.49-.257-.486" fill="none" stroke="#000" stroke-width=".25"/> - <path d="M234.608 221.604l-.016.522.883.11.137-.06-.01-.142-.516-.686-.478.256" fill="#c8b100"/> - <path d="M234.608 221.604l-.016.522.883.11.137-.06-.01-.142-.516-.686-.478.256" fill="none" stroke="#000" stroke-width=".25"/> - <path d="M236.432 222.644l-.47.262-.517-.687-.01-.14.137-.06.886.106-.026.518" fill="#c8b100"/> - <path d="M236.432 222.644l-.47.262-.517-.687-.01-.14.137-.06.886.106-.026.518" fill="none" stroke="#000" stroke-width=".25"/> - <path d="M235.29 222a.28.28 0 0 1 .378-.09.25.25 0 0 1 .095.356.287.287 0 0 1-.378.092.255.255 0 0 1-.095-.358" fill="#c8b100"/> - <path d="M235.29 222a.28.28 0 0 1 .378-.09.25.25 0 0 1 .095.356.287.287 0 0 1-.378.092.255.255 0 0 1-.095-.358z" fill="none" stroke="#000" stroke-width=".25"/> - <path d="M233.226 221.138c-.015.003-.124-.44-.246-.686-.083-.177-.375-.408-.375-.408.03-.055.397-.188.836.088.357.294-.028.832-.028.832s-.094.13-.184.174" fill="#c8b100"/> - <path d="M233.226 221.138c-.015.003-.124-.44-.246-.686-.083-.177-.375-.408-.375-.408.03-.055.397-.188.836.088.357.294-.028.832-.028.832s-.094.13-.184.174h-.003z" fill="none" stroke="#000" stroke-width=".25"/> - <path d="M234.217 221.437l-.402.348-.656-.57.057-.08.023-.14.888-.066.09.507" fill="#c8b100"/> - <path d="M234.217 221.437l-.402.348-.656-.57.057-.08.023-.14.888-.066.09.507" fill="none" stroke="#000" stroke-width=".25"/> - <path d="M233.107 221.082c.05-.143.175-.227.276-.197.1.037.14.177.093.317-.05.143-.176.225-.276.198-.105-.038-.144-.178-.093-.318" fill="#c8b100"/> - <path d="M233.107 221.082c.05-.143.175-.227.276-.197.1.037.14.177.093.317-.05.143-.176.225-.276.198-.105-.038-.144-.178-.093-.318z" fill="none" stroke="#000" stroke-width=".25"/> - <path d="M238.32 222.5l-.564-.06-.237.815.043.14.148.003.792-.386-.18-.51" fill="#c8b100"/> - <path d="M238.32 222.5l-.564-.06-.237.815.043.14.148.003.792-.386-.18-.51" fill="none" stroke="#000" stroke-width=".25"/> - <path d="M236.727 222.753l-.09.515.857.225.144-.04.01-.14-.407-.754-.513.193" fill="#c8b100"/> - <path d="M236.727 222.753l-.09.515.857.225.144-.04.01-.14-.407-.754-.513.193" fill="none" stroke="#000" stroke-width=".25"/> - <path d="M238.383 224.02l-.507.202-.407-.75.01-.143.143-.04.857.227-.097.504" fill="#c8b100"/> - <path d="M238.383 224.02l-.507.202-.407-.75.01-.143.143-.04.857.227-.097.504" fill="none" stroke="#000" stroke-width=".25"/> - <path d="M237.346 223.237c.094-.116.27-.125.386-.037a.25.25 0 0 1 .043.365.29.29 0 0 1-.39.036.25.25 0 0 1-.04-.363" fill="#c8b100"/> - <path d="M237.346 223.237c.094-.116.27-.125.386-.037a.25.25 0 0 1 .043.365.29.29 0 0 1-.39.036.25.25 0 0 1-.04-.363z" fill="none" stroke="#000" stroke-width=".25"/> - <path d="M240.22 224.264l.102.534-.838.28-.148-.03-.017-.14.348-.775.55.13" fill="#c8b100"/> - <path d="M240.22 224.264l.102.534-.838.28-.148-.03-.017-.14.348-.775.55.13" fill="none" stroke="#000" stroke-width=".25"/> - <path d="M240.068 225.794l-.536.12-.297-.8.034-.135.147-.02.817.333-.166.5" fill="#c8b100"/> - <path d="M240.068 225.794l-.536.12-.297-.8.034-.135.147-.02.817.333-.166.5" fill="none" stroke="#000" stroke-width=".25"/> - <path d="M238.613 224.314l-.173.495.818.33.15-.02.03-.137-.292-.794-.533.124" fill="#c8b100"/> - <path d="M238.613 224.314l-.173.495.818.33.15-.02.03-.137-.292-.794-.533.124" fill="none" stroke="#000" stroke-width=".25"/> - <path d="M239.517 225.242a.26.26 0 0 0 .015-.373.298.298 0 0 0-.393-.014.257.257 0 0 0-.01.373.29.29 0 0 0 .387.012" fill="#c8b100"/> - <path d="M239.517 225.242a.26.26 0 0 0 .015-.373.298.298 0 0 0-.393-.014.257.257 0 0 0-.01.373.29.29 0 0 0 .387.012z" fill="none" stroke="#000" stroke-width=".25"/> - <path d="M240.837 226.973c-.003.014.48.025.757.085.198.042.504.263.504.263.054-.04.108-.405-.27-.755-.378-.27-.85.204-.85.204s-.115.112-.14.203" fill="#c8b100"/> - <path d="M240.837 226.973c-.003.014.48.025.757.085.198.042.504.263.504.263.054-.04.108-.405-.27-.755-.378-.27-.85.204-.85.204s-.115.112-.14.203z" fill="none" stroke="#000" stroke-width=".25"/> - <path d="M240.32 226.114l-.277.447.726.492.09-.08.118-.04-.112-.84-.547.022" fill="#c8b100"/> - <path d="M240.32 226.114l-.277.447.726.492.09-.08.118-.04-.112-.84-.547.022" fill="none" stroke="#000" stroke-width=".25"/> - <path d="M240.917 227.072c.133-.074.198-.21.144-.296-.057-.09-.21-.1-.344-.024-.134.078-.198.207-.14.3.052.085.208.096.34.02" fill="#c8b100"/> - <path d="M240.917 227.072c.133-.074.198-.21.144-.296-.057-.09-.21-.1-.344-.024-.134.078-.198.207-.14.3.052.085.208.096.34.02z" fill="none" stroke="#000" stroke-width=".25"/> - <path d="M279.087 205.098v.556h-2.434v-.556h.9v-1.254h-.594v-.56h.594v-.547h.586v.548h.586v.56h-.586v1.253h.947" fill="none" stroke="#000" stroke-width=".288"/> - <path d="M134.418 217.104v-1.216" fill="none" stroke="#000" stroke-width=".019"/> - <path d="M134.087 217.104v-1.216" fill="none" stroke="#000" stroke-width=".029"/> - <path d="M133.775 217.104v-1.216m-.31 1.216v-1.216" fill="none" stroke="#000" stroke-width=".038"/> - <path d="M133.19 217.104v-1.216" fill="none" stroke="#000" stroke-width=".048"/> - <path d="M132.665 217.04l-.008-1.11m.256 1.123v-1.16" fill="none" stroke="#000" stroke-width=".058"/> - <path d="M132.18 216.99v-1.022m.245 1.05l-.007-1.086" fill="none" stroke="#000" stroke-width=".067"/> - <path d="M131.528 216.93v-.896m.214.91v-.94m.22.97v-.977" fill="none" stroke="#000" stroke-width=".077"/> - <path d="M131.3 216.924v-.868" fill="none" stroke="#000" stroke-width=".086"/> - <path d="M131.087 216.88v-.81" fill="none" stroke="#000" stroke-width=".096"/> - <path d="M130.86 216.857v-.75" fill="none" stroke="#000" stroke-width=".106"/> - <path d="M130.392 216.792l-.008-.598m.247.627v-.67m-.479.589v-.524" fill="none" stroke="#000" stroke-width=".115"/> - <path d="M129.933 216.698v-.437" fill="none" stroke="#000" stroke-width=".125"/> - <path d="M129.693 216.64v-.342" fill="none" stroke="#000" stroke-width=".134"/> - <path d="M129.448 216.612v-.256" fill="none" stroke="#000" stroke-width=".144"/> - <path d="M129.188 216.553v-.124" fill="none" stroke="#000" stroke-width=".173"/> - <path d="M135.733 217.04v-1.116m-.56 1.15l.007-1.18m-.416 1.196v-1.202" fill="none" stroke="#000" stroke-width=".01"/> - <path d="M277.777 217.125v-1.217" fill="none" stroke="#000" stroke-width=".019"/> - <path d="M277.447 217.125v-1.217" fill="none" stroke="#000" stroke-width=".029"/> - <path d="M277.135 217.125v-1.217m-.309 1.217v-1.217" fill="none" stroke="#000" stroke-width=".038"/> - <path d="M276.55 217.125v-1.217" fill="none" stroke="#000" stroke-width=".048"/> - <path d="M276.024 217.06l-.008-1.11m.258 1.123v-1.157" fill="none" stroke="#000" stroke-width=".058"/> - <path d="M275.54 217.01v-1.022m.245 1.05l-.008-1.086" fill="none" stroke="#000" stroke-width=".067"/> - <path d="M274.888 216.95v-.895m.214.91v-.94m.22.97v-.977" fill="none" stroke="#000" stroke-width=".077"/> - <path d="M274.66 216.944v-.867" fill="none" stroke="#000" stroke-width=".086"/> - <path d="M274.447 216.9v-.81" fill="none" stroke="#000" stroke-width=".096"/> - <path d="M274.22 216.878v-.75" fill="none" stroke="#000" stroke-width=".106"/> - <path d="M273.752 216.812l-.008-.597m.247.627v-.67m-.479.588v-.524" fill="none" stroke="#000" stroke-width=".115"/> - <path d="M273.293 216.72v-.438" fill="none" stroke="#000" stroke-width=".125"/> - <path d="M273.053 216.66v-.34" fill="none" stroke="#000" stroke-width=".134"/> - <path d="M272.807 216.632v-.256" fill="none" stroke="#000" stroke-width=".144"/> - <path d="M272.547 216.573v-.124" fill="none" stroke="#000" stroke-width=".173"/> - <path d="M279.092 217.06v-1.116m-.56 1.15l.008-1.178m-.415 1.194v-1.202" fill="none" stroke="#000" stroke-width=".01"/> -</svg> diff --git a/img/flags/4x3/et.svg b/img/flags/4x3/et.svg deleted file mode 100644 index 09e5d3d..0000000 --- a/img/flags/4x3/et.svg +++ /dev/null @@ -1,14 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" height="480" width="640" viewBox="0 0 640 480"> - <defs> - <clipPath id="a"> - <path fill-opacity=".67" d="M-61.312 0h682.67v512h-682.67z"/> - </clipPath> - </defs> - <g fill-rule="evenodd" clip-path="url(#a)" transform="translate(57.48) scale(.94)" stroke-width="1pt"> - <path fill="#ffc621" d="M-237.99 3.5h1037.9v498h-1037.9z"/> - <path fill="#ef2118" d="M-240 342.5H799.3V512H-240z"/> - <path fill="#298c08" d="M-237.99 0h1038v180h-1038z"/> - <ellipse cx="534.22" rx="199.65" cy="352.97" transform="matrix(.54 0 0 .54 -25.81 73.95)" ry="199.65" fill="#006bc6"/> - <path d="M214.25 188.2l-6.432 4.522 23.494 33.02 6.266-3.995-23.33-33.546zm29.41 77.942l-9.66-6.736 3.99-12.676-48.12.672-13.93-10.664 65.69-.708 12.184-36.908 6.545 14.924-16.7 52.098zm76.522-70.68l-6.254-4.764-24.378 32.374 5.703 4.766 24.93-32.375zM254.77 247.05l3.503-11.245 13.29-.024-15.182-45.67 5.958-16.5 20.524 62.408 38.864.46-12.248 10.748-54.71-.176zm90.672 51.165l2.615-7.415-38.295-13.262-2.785 6.89 38.465 13.786zm-69.18-46.416l11.778-.12 4.104 12.64 38.803-28.468 17.532.604-53.093 38.693 11.493 37.127-13.99-8.357-16.628-52.12zm-19.748 102.08l7.862.114.363-40.524-7.42-.443-.806 40.853zm21.944-80.366l3.867 11.125-10.673 7.917 39.353 27.705 5.016 16.81-53.596-37.99-31.528 22.73 3.462-15.924 44.1-32.375zM175.188 286.5l2.325 7.51 38.646-12.202-1.877-7.192L175.19 286.5zm83.21-4.02l-9.38 7.12-10.835-7.695-14.157 45.997-14.432 9.975 19.525-62.727-31.376-22.94 16.213-1.638 44.44 31.908z" fill="#ffc621"/> - </g> -</svg> diff --git a/img/flags/4x3/eu.svg b/img/flags/4x3/eu.svg deleted file mode 100644 index 4cf8a66..0000000 --- a/img/flags/4x3/eu.svg +++ /dev/null @@ -1,28 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" height="480" width="640" viewBox="0 0 640 480"> - <defs> - <g id="d"> - <g id="b"> - <path d="M0-1l-.31.95.477.156z" id="a"/> - <use transform="scale(-1 1)" xlink:href="#a"/> - </g> - <g id="c"> - <use transform="rotate(72)" xlink:href="#b"/> - <use transform="rotate(144)" xlink:href="#b"/> - </g> - <use transform="scale(-1 1)" xlink:href="#c"/> - </g> - </defs> - <path fill="#039" d="M0 0h640v480H0z"/> - <g transform="translate(320 242.263) scale(23.7037)" fill="#fc0"> - <use height="100%" width="100%" xlink:href="#d" y="-6"/> - <use height="100%" width="100%" xlink:href="#d" y="6"/> - <g id="e"> - <use height="100%" width="100%" xlink:href="#d" x="-6"/> - <use height="100%" width="100%" xlink:href="#d" transform="rotate(-144 -2.344 -2.11)"/> - <use height="100%" width="100%" xlink:href="#d" transform="rotate(144 -2.11 -2.344)"/> - <use height="100%" width="100%" xlink:href="#d" transform="rotate(72 -4.663 -2.076)"/> - <use height="100%" width="100%" xlink:href="#d" transform="rotate(72 -5.076 .534)"/> - </g> - <use height="100%" width="100%" xlink:href="#e" transform="scale(-1 1)"/> - </g> -</svg> diff --git a/img/flags/4x3/fi.svg b/img/flags/4x3/fi.svg deleted file mode 100644 index a7b58e2..0000000 --- a/img/flags/4x3/fi.svg +++ /dev/null @@ -1,5 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" height="480" width="640" viewBox="0 0 640 480"> - <path fill="#fff" d="M0 0h640v480H0z"/> - <path fill="#003580" d="M0 174.545h640v130.909H0z"/> - <path fill="#003580" d="M175.455 0h130.909v480H175.455z"/> -</svg> diff --git a/img/flags/4x3/fj.svg b/img/flags/4x3/fj.svg deleted file mode 100644 index 9f5e2a5..0000000 --- a/img/flags/4x3/fj.svg +++ /dev/null @@ -1,126 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" height="480" width="640" viewBox="0 0 640 480"> - <path d="M0 0v480h640V.079H402.442V0H0z" fill="#68bfe5"/> - <g stroke-miterlimit="4.8"> - <path d="M420.887 193.236v136.357c0 44.599 80.581 71.08 80.581 71.08s80.582-26.483 80.582-71.08V193.236z" fill="#fff"/> - <path d="M490.299 241.146v61.396h-69.412v22.34H490.3v71.539l11.17 4.252 11.17-4.252v-71.54h69.41v-22.339h-69.41v-61.396z" fill="#d21034"/> - <path d="M420.887 193.236H582.05v52.657H420.887z" fill="#d21034"/> - <g stroke-miterlimit="3"> - <g fill="#fff" stroke="#000" stroke-width=".805" transform="translate(-96.907 97.536) scale(.66486)"> - <ellipse ry="10.962" rx="13.623" cy="192.212" cx="798.23" stroke-width=".803"/> - <ellipse ry="6.123" rx="12.114" cy="186.525" cx="798.23"/> - <ellipse ry="6.123" rx="12.114" cy="198.769" cx="798.23"/> - <ellipse ry="6.123" rx="12.114" cy="192.213" cx="798.23"/> - </g> - <path d="M578.06 235.448l-1.32-3.64s-3.612-1.474-3.887-3.393c-.643-5.115-2.47-7.032-5.206-7.764-2.742-.73-4.566.458-4.566.458-.825 1.188-4.937 1.188-7.22 1.278-2.283.093-2.322-.992-2.322-.992-1.774.013-2.52-1.291-2.52-1.291-1.16-2.319-2.025-3.186-2.598-3.48 2.963.044 5.195-1.323 8.54-4.833 3.652-3.837 6.26-2.353 6.26-2.353-1.774 3.583.589 3.266.589 3.266 4.84-2.464.638-8.677-.823-8.402-1.46.272-1.878-.711-1.878-.711.045 1.115-1.622 1.559-1.622 1.559 1.25-7.097-2.985-8.979-2.985-8.979-.64.64-1.007 1.918-1.007 1.918-1.186 4.293-5.114 3.654-9.501 1.552-4.383-2.1-16.076 2.194-19.728 3.655-3.657 1.462-10.324 3.746-16.353.365-6.027-3.382-7.492-2.742-9.866-2.101-2.376.638-6.574 1.646-8.126.822-1.555-.822-3.326-.873-3.326-.873.423-.236-.238-1.228-.238-1.228-1.826-2.465.238-3.976.238-3.976s-3.4.957-2.048 6.76l.622.871s.455 1.825 1.463 2.374l-.037.4s.86-.4 1.13.787c.278 1.187 1.556.091 2.105-.912 0 0-.916 5.298 5.663 6.576 0 0-.735-.822-.46-1.37.273-.548-.82-1.009-.728-1.828.09-.82-1.642-1.186-.275-1.828 1.368-.64 2.012-1.919 4.933-.183 2.922 1.736 5.208 1.373 5.208 1.373s-1.782-3.659-.8-3.656c.982.001 5.4 5.471 7.576 5.2 2.175-.267 6.378-2.734 8.48-1.82 0 0 .18-1.097 8.217-2.467 8.04-1.371 17.955-5.377 21.674-1.867 0 0 .435 2.78 1.986 3.513 0 0-.278 5.753-10.23 2.554l-3.61-.95s-.554-1.747-19.483 3.121c0 0-1.113.389-1.844.938-.733.546-1.739-.275-5.484 1.094-3.742 1.373-17.72 5.94-26.304 4.295l-.011.023c-1.891-.565-3.663-.273-3.734-.571-.093-.366 1.006.092 1.006.092-.639-.732-.914-.791-.914-.791-7.217-.792-5.941-4.052-5.941-4.052l.368 1.006c1.188-1.552-.46-5.206-.46-5.206l-.07.012a3.776 3.776 0 0 0-.067-.333l.597-.412c3.472-2.924 7.492-3.472 7.492-3.472-2.377-2.921-7.403-1.368-7.403-1.368.093-3.562-1.368-7.674-1.368-7.674-4.935.548-7.764 4.658-7.764 4.658-.183-3.653-4.843-5.752-4.843-5.752 1.734 2.1.64 7.123.64 7.123l.183.092c-.288-.008-.458 0-.458 0l-.103 1.077-.171-.072s-1.734.638-3.743 5.206c0 0-.203 1.08-.98 2.053-.007-.126.007-.24-.009-.372 0 0-2.244 2.94-7.43 0 0 0-7.047-4.18-9.523-4.026-2.477.154-4.105 1.316-3.947 2.012 0 0-5.654-.465-7.588 2.785 0 0-4.258 1.549-.619 5.033 0 0 .488 1.514 1.547 2.326 0 0-.15-3.181.62-2.246 0 0 .2.313.581.533.101.446.443 1.685 1.2 2.316l.544-.173c.083-.793.255-1.795.431-2.217l.18.024c-.024.023-.047.036-.07.057l1.006 1.549 1.16-.62c.544-.079 1.24.466 1.24.466l1.316-1.085c-.008-.012-.016-.014-.024-.027 1.296.217 1.65-2.296 1.65-2.296 1.165.306 2.254-.037 3.181-.598.565 2.084 5.18 4.318 5.18 4.318l.2-.016c-.391.25-.624.437-.624.437 2.1 1.464 6.029 1.098 6.029 1.098-1.643.64-1.413 3.68-1.413 3.68-.96.395-1.054 1.343-1.054 1.343 3.198 1.276 5.382.22 5.382.22.176 1.04-.083 1.15-.083 1.15-1.278 2.74-1.826 5.389-1.826 5.389.028.012.06.018.088.028-.04.072-.088.141-.118.215 0 0-5.574 1.935-8.051 4.645 0 0-.233-.775-.93-.775-.697 0-2.865-1.779-3.872-2.09-1.004-.308-2.476.311-2.864-.152-.35-.423-.193-3.594-.863-4.106l.013.003-.698-1.935c-.464 1.005-2.399.773-2.399.773-.076.046-.374.263-.795.577-.386.02-.83-.112-.83-.112-.2.04-.396.598-.54 1.14l-.235.177v-.543c-.385.31-1.16-.155-1.47-.155-.152 0-.34.443-.492.899-.788.146-1.831.185-1.831.185-.31.155-.08 2.555-.08 2.555-2.243 1.24-1.16 3.096-1.16 3.096 1.239 6.039 11.535 3.329 12.31 4.105.772.775 2.554.927 3.484.927.927 0 2.087 2.246 3.405 2.478 1.317.233 0-1.78 6.105-3.238 6.103-1.459 8.137-3.962 8.137-3.962 1.912-.368 2.444-2.691 2.587-3.63.018.433.07.911.139 1.456.275 2.102-1.177 2.867-1.177 2.867l5.289-1.588c2.099-.548 1.826-2.376 1.826-2.376 2.009 5.755 5.664 6.12 5.664 6.12.73-2.193.64-2.833.64-2.833l1.644-.089c.067-1.239-1.027-2.145-1.66-2.566l2.573 1.56 1.003-.182c0 .914 1.37 1.734 1.37 1.734l.185-1.185c1.188 1.553 3.38 1.004 3.38 1.004a7.34 7.34 0 0 0-.194-.853c4.681 2.889 12.158-.79 12.158-.79 2.009.455 2.283-.733 2.283-.733 2.284.273 2.813-1.287 2.813-1.287 5.375-.465 9.157-4.286 9.157-4.286 2.646-.183 2.732-2.075 2.732-2.075s2.654.523 5.213-2.675c5.935-8.493 14.813-4.071 14.813-4.071l-5.133.325c-13.426-.09-7.86 9.04-7.86 9.04l.828-.087c1.279.273 5.661 3.745 4.045 6.33-.025.046-.06.087-.09.129-2.737 3.747-7.807.173-9.251-2.989-1.464-3.196-4.388-2.464-4.388-2.464s-7.58 1.279-4.475 7.307l.114.004c.057 1.47.98 3.147 3.684 4.813 1.52 2.148 6.512 2.373 10.18 1.578 1.706-.373 10.711-4.244 10.711-4.244.661-1.962 2.899-1.51 4.908-4.341 2.009-2.832-2.832-3.838-3.928-5.389-1.098-1.555.275-1.28.275-1.28 4.383 2.375 4.748-5.207 4.748-5.207.458 4.383 4.293 5.571 4.293 5.571 2.377-2.372.643-7.215.643-7.215 5.664 10.14 9.094 8.525 9.094 8.525-3.049-1.888-1.514-4.415-1.514-4.415 2.737 10.779 13.977 1.371 13.977 1.371-.548 1.551.002 2.464 1.006 3.47 1.004 1.004 2.192 1.462 1.646 3.289-.55 1.826-5.753 1.462-5.753 1.462s-5.118-.273-4.659 4.02c.268 1.003 3.65 1.369 4.93 1.096 0 0-.528.115 1.363.368.633.08 1.398.094 2.177.069 2.18-.067 4.501-.437 4.501-.437 2.92-.638 2.465-1.646 2.465-1.646 4.472-.824 4.931-3.84 4.931-3.84z" fill="#ffd100" stroke="#000" stroke-width=".798"/> - <path d="M429.633 216.743c.003-.005.24-.565.69-.632.349-.051.77.206 1.217.748l.244-.183c-.01-.019-1.206-1.76-.73-2.99.213-.547.741-.923 1.568-1.109l-.067-.3c-.933.213-1.533.651-1.786 1.3a2.09 2.09 0 0 0-.134.756c0 .6.211 1.21.428 1.677-.27-.17-.533-.24-.786-.202-.459.07-.682.4-.804.615zm140.981 23.925c-3.052.484-7.532.752-7.888-.171-.062-.165-.073-.824 2.426-2.45l-.292-.448c-2.084 1.358-2.924 2.34-2.633 3.09.64 1.661 7.18.712 8.486.504zm-58.374 1.762c-.696-1.065-.384-2.523.929-4.338l-.433-.312c-1.458 2.007-1.776 3.673-.945 4.943z"/> - <path d="M508.117 237.835c.067 1.84 1.367 3.55 3.856 5.074l.28-.456c-2.33-1.425-3.54-2.985-3.602-4.636-.092-2.535 2.586-4.49 2.612-4.51l-.312-.435c-.12.085-2.938 2.138-2.834 4.963zm52.053.685c-.838 1.236-.558 2.733-.547 2.796l.525-.103c-.005-.015-.248-1.347.467-2.396.43-.631 1.121-1.04 2.06-1.218l-.097-.525c-1.087.205-1.895.691-2.409 1.446zm-119.257-23.376l-.165-.042-.023.17c-.004.017-.237 1.638-.973 2.08-.206.122-.428.136-.684.042l-1.248-.76c-.25-.219-.463-.38-.823-.275a1.801 1.801 0 0 1-.343-1.323c.089-.732.6-1.437 1.522-2.095l-.175-.25c-1 .715-1.554 1.491-1.652 2.314-.111.952.44 1.6.464 1.627l.074.086.101-.047c.278-.122.359-.05.63.19l1.347.819c.342.126.659.103.945-.068.761-.456 1.028-1.782 1.09-2.15 3.242.696 5.852-3.245 5.965-3.415l-.259-.167c-.023.041-2.686 4.078-5.793 3.264z"/> - <path d="M433.14 214.539c-.161.656-.05 1.3.325 1.916.358.583.71.893 1.078.942.449.062.807-.27 1.123-.562.23-.215.448-.415.628-.402l.278.193.24-.191-.497-.306c-.313-.024-.577.22-.857.482-.28.257-.568.528-.874.485-.266-.036-.553-.307-.858-.801-.33-.542-.43-1.11-.29-1.683.35-1.447 2.08-2.51 2.098-2.52l-.157-.26c-.077.044-1.856 1.136-2.236 2.707zm-4.46 20.651c.154-.56.584-1.036 1.275-1.42-.136.013.678.675 1.376.6l.453-.244c.185.16 1.394 1.26 1.394 2.653 0 .294-.054.595-.185.9l.283.119c.884-2.094-1.34-3.952-1.36-3.972l-.082-.063-.137.088-.397.216c-.57.06-1.315-.545-1.32-.55-.94.41-1.419.95-1.597 1.595zm10.325-5.346c-.668.056-2.528.411-3.135 1.377-.22.35-.252.735-.092 1.152l.244.65c.579 1.557 1.18 3.167 1.836 3.531l.149-.266c-.557-.309-1.164-1.937-1.7-3.372l-.242-.65c-.125-.328-.104-.617.063-.883.498-.791 2.17-1.173 2.902-1.234.426-.034.565 1.538.65 2.478l.304-.028c-.122-1.385-.25-2.816-.98-2.755z"/> - <path d="M433.905 231.373c-.39.35-.312.876-.307.899.003.144.177 4.034 2.024 4.838l.121-.28c-1.671-.728-1.84-4.55-1.842-4.588 0-.023-.055-.41.21-.643.281-.249.838-.268 1.61-.055l.082-.294c-.892-.246-1.53-.205-1.898.123z"/> - <path d="M432.443 231.692c-.817.569-.784 2.192-.783 2.26l.305-.005c0-.017-.03-1.531.652-2.004.255-.176.59-.183.998-.019l.114-.282c-.51-.208-.943-.19-1.286.05z"/> - <g transform="translate(-96.907 97.536) scale(.66486)"> - <path d="M862.33 169.49c.022.038 1.31 2.945 1.31 5.305 0 .419-.198.717-.291 1.081-.052-.135-.5-1.366-.5-1.366l-.39.987c-.017.055-.525 1.384.382 2.883 1.2 1.977 4.187 3.243 8.884 3.758h-.002c0 .004.059.055.066.065-.195.026-.341.08-.385.122l-.189.16.025.4c.122.488.678.512 1.784.554.187.01.49.055.705.066.275.077.557.153.557.153l-.094-.108c1.07.074 2.274.338 3.581.826-.289.076-.995.252-.995.252l1.162.458c.088.035 8.648 3.474 12.191 6.303-1.006.872-5.3 4.08-12.736 2.247l-1.246-.306.845.965c.052.058 4.896 5.614 5.9 8.983-1.687.017-8.185-.042-10.455-1.971l-.588.535c.03.05 3.115 4.576 3.804 8.105-.884.116-3 .203-4.252-1.433l-.577-.751-.313 2.037c-.605-.456-1.367-1.137-1.367-1.867v-.48l-1.833.333-3.765-2.283a7.975 7.975 0 0 0-.605-.365c-.004-.004-.035-.022-.035-.022l-.027-.016-.39.706s.448.267.577.348c.806.525 2.186 1.67 2.325 3.188-.595.035-2.448.136-2.448.136l.046.426v.067c0 .252-.08 1.304-.848 3.679-1.158-.276-5.37-1.744-7.858-8.874l-.775.192c.004.02.013.114.013.265 0 .65-.23 2.279-2.465 2.86-.013.004-4.15 1.248-6.452 1.937.43-.616.824-1.46.824-2.685 0-.26-.017-.54-.051-.837-.14-1.036-.224-1.899-.224-2.619 0-1.501.369-2.395 1.406-3.031l-.362-.716c-.097.038-9.618 3.82-14.339 2.25.216-.922 1.016-4.162 2.628-7.616l-.208.198c.31-.132.625-.615.364-2.166l-.086-.528-.484.233c-.03.015-3.052 1.363-7.417-.236.089-.358.32-1.001 1.235-1.38l.268-.108-.026-.292c0-.01-.01-.213-.01-.531 0-1.179.184-3.94 1.88-4.602l-.18-.777c-.055.007-5.161.415-8.257-1.307.812-.56 2.519-1.592 4.505-1.878l.318-.045.022-.318c.004-.016.011-.11.011-.26 0-.403-.156-1.219-.511-2.04 1.178.328 2.59.625 3.091.249l.17-.128-.146-3.099-.803.039.123 2.562c-.504.027-1.788-.23-3.035-.626l-1.234-.392.795 1.024c.645.829.727 1.858.737 2.331-2.79.519-4.976 2.251-5.07 2.33l-.41.337.435.303c2.4 1.672 6.153 1.817 8.08 1.775-1.136 1.28-1.328 3.421-1.328 4.492 0 .22.007.278.011.386-1.363.736-1.568 2.118-1.577 2.182l-.03.3.282.116c4.125 1.644 6.941.85 7.897.497.007.128.035.302.035.393 0 .378-.07.494-.07.494-2.026 4.248-2.875 8.286-2.885 8.324l-.066.334.313.124c3.828 1.53 10.705-.559 13.75-1.634-.399.689-.632 1.464-.632 2.429 0 .809.098 1.718.233 2.731.035.257.05.494.05.724 0 2.28-1.541 3.142-1.615 3.18l.306.741 7.955-2.389c1.84-.478 2.531-1.565 2.824-2.489 3.139 7.444 8.066 8.115 8.285 8.14l.32.027.1-.302c.766-2.287.943-3.449.978-4.01a439.55 439.55 0 0 0 2.462-.131l.02-.361c.004-.063.004-.123.004-.182 0-.658-.205-1.24-.49-1.764.498.3 1.377.834 1.377.834l1.318-.24c.344 1.33 1.923 2.374 2.127 2.499l.512.307s.188-1.212.267-1.74c1.965 1.758 4.753 1.235 4.885 1.202l.352-.09-.052-.357c-.4-2.688-2.204-5.886-3.265-7.596 3.491 1.587 9.85 1.471 10.163 1.461l.474-.016-.093-.465c-.564-2.825-4.094-7.272-5.57-9.04 8.201 1.541 12.606-2.714 12.795-2.907l.288-.306-.317-.278c-2.757-2.402-9.112-5.19-11.665-6.257l.894-.226-.883-.494c-2.135-1.2-4.398-1.349-5.928-1.415l-.007-.012c-.97-1.111-1.464-1.289-1.589-1.316-5.546-.612-7.579-2.166-8.317-3.366-.062-.099-.031-.166-.077-.262.12-.16.244-.318.244-.318.535-.697.726-1.63.726-2.617 0-2.547-1.294-5.457-1.367-5.625l-.738.334z"/> - <path d="M836.8 167.86c-.017.08-.608 3.119-3.196 4.543-1.947 1.07-4.52.982-7.639-.266l-.351-.14.037.376c.008.078.213 1.864 1.897 3.172 1.402 1.092 3.408 1.475 5.922 1.2-.841.998-3.544 4.452-3.544 7.802 0 .177.011.354.028.528.344.247 4.58 1.395 6.544-1.116.07 1.077.379 4.522 1.724 5.87.737.733.91 1.804.91 2.66 0 .771-.146 1.367-.146 1.379l-.152.613.511-.372c.163-.119 4.057-2.971 5.302-6.707-.004.01.623-.937 1.825-1.325-.025.163-.046.33-.046.563 0 1.444.633 4.064 4.836 5.671l.345.132-.031-.367a7.135 7.135 0 0 1-.028-.726c0-1.055.146-2.993 1.15-3.997.662-.66.86-1.404.86-2.049 0-.507-.112-.918-.226-1.22.849.215 2.855.862 3.672 2.39 1.186 2.223 5.338.454 5.516.38l-.143-.437c-.017.004-1.746.391-2.837-.358-.48-.33-.768-.837-.869-1.51l-.192-2.31c-.042-1.047-.187-1.712-.713-2.271.55-.05 1.652-.031 2.118 1 .734 1.617 3.251 1.774 3.356 1.783l.861.045-.723-.468c-.024-.014-2.198-1.456-1.822-3.336l.313-1.376c.595-2.48 1.585-6.632.779-9.181l-.438.14c.2.636.282 1.39.282 2.196 0 2.26-.64 4.944-1.072 6.738l-.316 1.395a2.608 2.608 0 0 0-.052.538c0 1.217.79 2.146 1.405 2.705-.74-.16-1.766-.512-2.151-1.37-.605-1.326-2.229-1.387-3.004-1.23l-.542.109.462.307c.73.487.75 1.054.802 2.293l.195 2.358c.115.804.473 1.419 1.06 1.824.515.35 1.117.4 1.666.44-1.233.321-2.924.522-3.531-.62-1.145-2.132-4.292-2.702-4.424-2.727l-.48-.083.24.421c.026.046.358.652.358 1.422 0 .546-.167 1.171-.733 1.735-1.116 1.126-1.287 3.167-1.287 4.296 0 .221.011.252.015.387-3.595-1.511-4.231-3.749-4.231-5.016 0-.539.104-.898.118-.945l.105-.354-.365.062c-1.746.288-2.472 1.71-2.503 1.77-.999 2.991-3.71 5.359-4.691 6.148a6.88 6.88 0 0 0 .066-.895c0-.935-.202-2.126-1.05-2.976-1.43-1.429-1.624-5.973-1.624-6.019l-.03-.82-.4.712c-1.582 2.833-6.2 1.472-6.245 1.46-.195-3.58 3.866-8.16 3.908-8.206l.425-.472-.626.092c-2.652.384-4.712.03-6.123-1.06a4.63 4.63 0 0 1-1.644-2.499c3.076 1.146 5.656 1.21 7.642.113 2.774-1.534 3.383-4.675 3.407-4.807 2.913-6.606 5.458-7.649 5.486-7.656l-.16-.431c-.115.04-2.74 1.073-5.768 7.95z"/> - <path d="M843.45 158.07l-.194.007-2.364 3.24.702.07c12.829 1.248 19.613 8.988 19.679 9.068l.296.344 2.326-2.527-.17-.26c-6.506-10.244-20.136-9.947-20.275-9.942zm.22.804c1.585.004 13.27.365 19.189 9.331-.29.313-.935 1.019-1.28 1.397-1.387-1.438-7.962-7.582-19.237-8.906a631.23 631.23 0 0 1 1.328-1.822z"/> - <path d="M841.6 164.84c-1.096 1.495-2.114 3.707-2.114 4.742 0 .198.038.354.122.453.007.01.046.013.059.029-1.336 1.197-2.131 3.196-2.131 5.456 0 1.243.22 2.538.681 3.773l.257.695c1.259 3.424 2.344 6.384 7.788 4.641 5.244-1.675 5.45-2.011 6.77-4.189l.345-.564c.72-1.17 1.506-1.404 2.343-1.652.999-.3 2.034-.608 2.942-2.4l.883-1.324c.953-1.313 2.142-2.94 2.285-5.023l-.46-.031c-.132 1.95-1.28 3.518-2.197 4.78l-.922 1.388c-.82 1.616-1.715 1.884-2.664 2.167-.883.263-1.79.534-2.604 1.853l-.348.566c-1.27 2.096-1.431 2.366-6.512 3.994-5.027 1.606-5.946-.9-7.218-4.364l-.257-.702c-1.433-3.818-.313-7.669 1.55-9.049l.64-.475-.887.1c-.01-.038-.02-.071-.02-.131 0-.624.681-2.611 2.037-4.464 1.158-1.578 3.89-3.142 3.92-3.157l-.23-.399c-.115.069-2.845 1.63-4.058 3.287z"/> - <path d="M839.16 178.65c.9.624 2.166.58 3.692 0 .007.544.129 1.7 1.078 2.538 1.116.988 2.965 1.178 5.5.574l-.108-.446c-2.375.567-4.089.407-5.087-.469-1.072-.945-.922-2.45-.918-2.463l.042-.394-.365.155c-1.537.662-2.74.702-3.575.125-1.495-1.04-1.383-3.755-1.38-3.786l-.46-.022c-.001.124-.127 3.002 1.581 4.188z"/> - <path d="M842.07 174.99c-.656.156-.827.706-.827 1.13 0 .102.011.197.024.279.115 1.182 1.398 1.969 2.563 2.306 1.133.328 2.528.35 3.077-.356.22-.282.38-.79-.1-1.61-1.75-2.977-4.581-1.811-4.737-1.749zm1.888 3.271c-1.02-.291-2.142-.953-2.232-1.933-.022-.094-.132-.752.448-.89l.046-.015c.104-.047 2.611-1.136 4.19 1.55.281.48.327.845.132 1.093-.338.44-1.454.526-2.584.195zm-1.934-3.254c.004-.004.046-.018.046-.018l-.046.018zm1.626 5.973c-.295 2.514-.115 2.574.066 2.63l.16.05.18-.212 1.456-1.92-1.828-.866-.034.318zm.421.376l.737.348c-.198.253-.566.744-.845 1.11.007-.378.053-.912.108-1.458zm-4.211-2.396l-.097 2.376 1.995-2.413-1.887-.209-.011.246zm.449.266l.552.06c-.195.233-.324.392-.585.706.02-.37.027-.575.033-.766z"/> - <path d="M838.53 178.2c.017.031 1.484 2.9 1.745 3.947.167.665 1.015 1.422 2.027 1.797 1.008.38 1.953.318 2.659-.174l1.325-1.101c.441-.425.588-.544.945-.483l.077-.453c-.601-.101-.894.179-1.34.603l-1.269 1.058c-.782.546-1.739.313-2.239.12-.946-.35-1.63-1.028-1.742-1.48-.275-1.094-1.721-3.92-1.78-4.04l-.408.206zm1.91-8.6c-1.62.748-2.305 2.713-2.333 2.796l.435.151c.007-.019.654-1.87 2.092-2.53.702-.322 1.488-.311 2.344.025l.17-.425c-.973-.393-1.884-.396-2.708-.017zm10.89 5.16c.128.096 3.188 2.414 1.43 5.243l.39.243c1.984-3.188-1.514-5.83-1.545-5.858l-.275.372zm-9.2.45s-.476 1.73 1.957 2.34c0 0-2.288-.02-2.433-.61-.154-.591.013-1.9.476-1.73zm7.44 2.07c0 .15-.122.274-.271.274a.275.275 0 0 1-.271-.274c0-.148.124-.271.27-.271.15 0 .272.123.272.271zm.27 1.08c0 .15-.122.275-.271.275a.272.272 0 0 1-.268-.275.27.27 0 0 1 .268-.27c.149 0 .271.125.271.27z"/> - <circle r=".27" cy="177.825" cx="848.01"/> - <path d="M848.75 179.45a.27.27 0 1 1-.539 0c0-.151.123-.275.268-.275.149 0 .271.123.271.275zm-7.1-7.32a.273.273 0 0 1-.546 0c0-.146.125-.271.271-.271.154 0 .275.125.275.271z"/> - <circle r=".27" cy="173.22" cx="841.65"/> - <circle r=".27" cy="172.68" cx="840.09"/> - <path d="M840.83 174.3a.276.276 0 0 1-.275.271.273.273 0 0 1 0-.546.278.278 0 0 1 .275.275zm4.74-9.55s3.518 2.165.132 6.228c0 0 1.666-1.237 1.836-3.362.178-2.123-1.207-3.816-1.968-2.866zm13.5 5.84c-1.133.582-2.764-.496-3.58-1.514-.814-1.02-2.5-1.28-3.55.58-1.048 1.864-2.56 2.562-2.56 2.562s1.477-.872 2.998-2.503c1.512-1.627 2.385-.32 3.87.466 1.484.786 1.717.959 2.763.552l.059-.143z"/> - <path d="M858.78 170.86c-.463.348-1.312.64-2.212-.09-.9-.727-1.658-1.715-2.792-1.134-1.138.584-3.293 2.212-3.293 2.212s3.495-2.417 4.165-1.892c.668.526 2.243 1.805 3.202 1.43.961-.383.93-.526.93-.526z"/> - <path d="M856.1 172.34c-1.105-.844-2.212.989-3.143.76-.931-.237-1.69-1.779-1.69-1.779s.877 1.631 2.097 1.252c1.224-.377 2.069-1.135 2.824-.555.757.585-.088.322-.088.322z"/> - <path d="M854.37 172.57c-2.183.226-2.399-1.813-2.399-1.834 0 0 .689 1.78 2.619 1.457l-.22.377z"/> - <path d="M854.3 171.18c.143.552.112.803-.473.803-.588 0-.987-.196-.987-.766 0-.571 1.374-.392 1.46-.037zm-7.84-3.03c0 .38-.313.685-.7.685-.386 0-.462-.26-.462-.636 0-.375.076-.73.462-.73.387 0 .7.307.7.681z"/> - <path d="M844.05 165.71s3.74.04 1.888 4.72c0 0 1.425-2.33.531-4.006-.897-1.674-2.305-1.252-2.305-1.252s-.343.317-.114.538z"/> - <path d="M843.94 167.58c-.01.938.616 1.907 1.856 2.876l.286-.36c-1.123-.876-1.69-1.72-1.682-2.506.007-.786.612-1.253.619-1.26l-.275-.37c-.032.026-.79.604-.804 1.62z"/> - <path d="M844.77 168.37c.16.539.577.946 1.244 1.212l.17-.425c-.527-.21-.855-.518-.972-.913-.237-.796.403-1.724.41-1.732l-.372-.267c-.036.048-.779 1.12-.48 2.125zm5.13 2.6s.696 1.512-.32 3.143c-1.02 1.63-.992 1.544-.992 1.544s1.224-2.241.759-3.175c-.462-.931.553-1.512.553-1.512zm14.55 15.79c3.842.724 12.51 7.52 12.6 7.59l.498-.636c-.365-.282-8.915-6.985-12.948-7.744l-.15.79zm3.41 9.59c.257 3.41 3.967 5.528 4.127 5.614l.392-.7c-.038-.018-3.49-1.996-3.72-4.975l-.799.061zm-9.21.71c0 3.824 3.584 8.45 3.738 8.647l.632-.497c-.034-.043-3.567-4.602-3.567-8.15h-.803zm-12.15.43c.632 1.262.566 1.902.403 2.215-.19.353-.58.407-.594.41l.094.801c.295-.035.887-.24 1.2-.816.383-.7.253-1.7-.383-2.964l-.72.354z"/> - </g> - <g fill="#fff" stroke="#000" stroke-width=".36"> - <path d="M429.57 216.3s.155 1.702 1.47 2.712c0 0-.154-1.861.234-2.633 0 0-.696-.774-1.704-.079zm2.627 1.084s.31 1.546 1.24 2.244l.544-.154s.232-1.937.541-2.169c.31-.23-1.315.697-2.325.08z" stroke-width=".239"/> - <path d="M434.524 217.304l1.006 1.549 1.16-.62-.232-1.856s-.695-.157-1.934.927z" stroke-width=".239"/> - <path d="M439.244 217.617l-1.316 1.084s-.696-.543-1.24-.465l.234-1.703s.93-.697 2.322 1.084zm-9.368 16.023s-.231-2.4.08-2.555c0 0 .926.31 1.314-.079 0 0 .543 1.937.387 2.711-.154.773-1.083.466-1.78-.077zm5.964-2.48s-.077-2.013.31-2.247c0 0 1.934.233 2.399-.772l.697 1.935s-2.168-.233-3.406 1.084z" stroke-width=".239"/> - <path d="M433.752 231.546s.387-2.09.775-2.167c0 0 1.006.309 1.316-.08l-.077 2.557s.077-1.085-2.014-.31zm-2.247.312s.464-1.858.775-1.858 1.085.464 1.471.155v1.394s-1.706-.387-1.936 1.934l-.31-1.625z" stroke-width=".233"/> - </g> - </g> - <g fill="#00a651" stroke="#000" stroke-width=".78"> - <path d="M461.683 270.4s5.262 4.887 3.886 9.147c0 0 3.382-7.268-.25-9.399-3.636-2.13-3.76-.497-3.636.252z" stroke-width=".519"/> - <path d="M455.041 275.154s-1.376 1.884.125 3.261c0 0-1.627 2.377-.372 4.385 0 0-1.005 2.13-.753 4.386 0 0-.879 3.507 1 5.139 0 0 2.007 1.003 2.885.125 0 0 1.753-2.63.624-5.39 0 0 1.253-2.255-.124-5.137 0 0 .376-1.63-.752-3.507 0 0 .752-1.255.124-2.256 0 0-2.505-2.634-2.757-1.006z" fill="#964b36" stroke-width=".519"/> - <path d="M456.544 269.017s-6.265-12.027-10.651-12.531c-4.387-.502-4.636-4.76-4.636-4.76s.5 2.004 4.01 2.004 10.276 4.886 11.027 8.645c.75 3.759 1.505 3.26 1.505 3.26l-1.255 3.382z" stroke-width=".519"/> - <path d="M456.544 268.14s2.256-15.163 12.157-15.415c9.897-.252 6.642.752 9.02-.878 0 0-6.638 3.511-10.775 4.01-4.134.502-7.519 8.519-7.393 10.026.124 1.503-2.255 4.386-3.383 3.385-1.128-1.003.374-1.129.374-1.129z" stroke-width=".519"/> - <path d="M458.798 273.784s2.254-6.015 6.14-4.008c0 0-3.01-5.767-8.397-.754 0 0 2.382 3.258 2.257 4.762zm-7.52-6.024s3.26 13.41-1.754 17.544c0 0 .124-6.888-2.883-11.024-3.005-4.138 3.007-8.646 4.637-6.52z" stroke-width=".519"/> - <path d="M451.657 270.148s5.891 5.64 6.268 7.52c.376 1.879 1.753-5.64-1.003-7.768-2.757-2.133-5.764-2.508-5.764-2.508l.5 2.756z" stroke-width=".519"/> - <path d="M440.793 284.927s.534 2.368 1.987 2.825c0 0 .075 1.76 1.375 2.293 0 0-.69 1.453.46 2.368 0 0-.232 2.903.838 3.516 0 0 2.6-.153 3.514-.918 0 0 .536-1.907-.913-3.82 0 0 .226-1.834-1.226-2.826 0 0 .459-2.448-1.375-3.363 0 0-.304-1.988-1.452-2.98 0 0-2.214 3.132-3.208 2.905z" fill="#964b36" stroke-width=".519"/> - <path d="M443.692 282.022s-7.716-2.827-11.995 1.223c0 0 6.569.918 7.41 2.216.84 1.297 4.89-2.138 4.585-3.44z" stroke-width=".519"/> - <path d="M441.325 286.836s-.61-.534-1.374-1.07c-.764-.534-7.257-2.292-8.177 3.973 0 0-2.37-6.188 1.07-7.03 3.44-.841 6.19 1.147 8.48 4.127m-5.078-12.806s2.378 5.137 3.257 5.391c.877.248 1.502-.626 1.502-.626s-3.131-4.637-4.76-4.765zm-1.756-7.892s-2.006-6.64-4.385-4.886c-2.381 1.754-1.755 6.514-1.755 6.514s-4.762-4.884-2.006-8.77c2.76-3.885 8.146.376 8.146 7.142z" stroke-width=".519"/> - <path d="M439.882 279.795s0 1.253.878 1.627c.878.377 2.506 1 2.506.252 0-.751-1.252-3.634-1.756-3.257-.502.377-1.376.372-1.628 1.378z" fill="#964b36" stroke-width=".519"/> - <path d="M438.38 272.03s-.25-5.764 3.506-7.897c0 0 .754.13 1.13-.998 0 0-3.01 7.265-2.132 10.9l-.124.501" stroke-width=".519"/> - <path d="M439.131 265.008s6.766-14.036 15.038-9.15c0 0-8.646 1.756-11.777 7.896l-3.135 4.632-.125-3.378z" stroke-width=".519"/> - <path d="M435.494 270.148s-2.005-9.398-3.258-10.649c-1.254-1.254-3.384-2.632-5.891-.503 0 0 4.387-3.886 9.023-.626 4.635 3.259 3.633 8.396 3.633 8.396l-.5 6.517-3.133-2.883" stroke-width=".519"/> - <path d="M442.761 281.297s-8.27-15.659-13.657-4.508c0 0-1.006 2.88.122 4.006 0 0-3.008-2.253-1.629-7.767 1.377-5.511 10.524-3.007 13.158 1.505 2.63 4.51 3.384 6.768 3.008 7.016-.378.252-1.002-.252-1.002-.252zm23.31 4.515s6.018-12.407 9.524-6.769c0 0 1.001 2.756-.504 3.887 0 0-2.378-2.883-4.507.626-2.131 3.507-1.254 3.259-1.254 3.259s-2.256.626-3.259-1.004z" stroke-width=".519"/> - <path d="M475.087 282.926s3.257 1.752 2.133 5.261c0 0 4.383-8.394-1.63-9.147 0 0 1.13 2.633-.503 3.886zm.379-8.516s7.896 2.253 8.146 5.64c0 0 1.38-6.52-3.133-8.524.001.001-5.39.88-5.013 2.883z" stroke-width=".519"/> - <path d="M478.976 264.004c3.385-6.641 7.645 2.13 7.645 2.13s1.502-6.89-2.756-8.145c-4.263-1.253-7.018 14.66-7.018 14.66l-5.014 1.128s1.38-13.907 8.897-15.162l.876.127" stroke-width=".519"/> - <path d="M472.96 268.013s-4.76-9.773-8.02-10.774c-3.259-1.003 1.757-2.507 3.761-.628 2.002 1.878 5.761 4.26 5.386 9.273l-1.128 2.13zm-4.888 13.411s1.378-6.64 5.137-8.646c3.759-2.006 7.268-1.252 7.268-1.252s-4.512 1-5.262 3.259c-.753 2.254-2.006 2.378-2.006 2.378l-5.137 4.26z" stroke-width=".519"/> - <path d="M466.071 285.812s-2.13 4.01-1.63 4.635c0 0-2.254 3.258-1.378 4.887 0 0 2.257 1.754 3.26 1.001 0 0 2.628-3.632 1.877-5.638 0 0 1.754-2.379 1.13-3.882 0 0-2.63.125-3.259-1.003z" fill="#964b36" stroke-width=".519"/> - <path d="M455.048 278.651c.141.072 1.406.686 2.258.402l.608-.52-.478-.238c-.312.62-1.69.109-2.15-.12l-.238.476zm-.206 3.889l-.104.525c.108.021 2.65.513 3.863-.564l-.356-.398c-1.013.9-3.378.445-3.403.438zm-.645 4.428l-.314.433c.03.023 2.985 2.127 4.876-.17l-.414-.34c-1.57 1.906-4.043.154-4.148.077zm-11.476.639l.111.286c.106-.044 2.61-1.049 2.769-2.88l-.304-.028c-.143 1.644-2.552 2.612-2.576 2.622zm1.416 2.287l.022.305c.097-.008 2.409-.18 2.812-1.796l-.298-.077c-.348 1.401-2.513 1.565-2.536 1.568zm.479 2.366l-.017.308c.111.005 2.7.139 3.579-1.295l-.261-.162c-.784 1.281-3.275 1.152-3.3 1.15zm19.634-1.621c.046.048 1.162 1.15 2.466 1.102.638-.023 1.204-.317 1.682-.866l-.404-.351c-.377.434-.814.665-1.295.683-1.068.04-2.064-.935-2.074-.947l-.375.379z" fill="#000" stroke="none"/> - </g> - <g fill="#964b36" stroke="#000" stroke-width=".279"> - <path d="M542.065 299.8a1.104 1.104 0 0 0-.405.268l.405-.268zm9.215-2.307c-.09-.229-.148-.132-.266-.234-.168-.138-.265-.582-.414-.748-.088-.101-.189-.003-.284-.028-.215-.474-.469-.973-.696-1.43a.397.397 0 0 0 .063-.213 7.61 7.61 0 0 0-.114-.4c-.064-.101-.166-.042-.229-.199-.07-.157-.016-.466-.041-.652-.019-.154-.08-.24-.07-.458.01-.189.111-.409.1-.575-.005-.103-.127-.337-.164-.425-.149-.358-.273-.696-.291-1.138-.019-.4.062-.644.091-.991.038-.416-.182-.618-.182-1.002.002-.293.126-.624.162-.887.048-.36.052-.883.022-1.252-.027-.354-.127-.567-.072-.964.014-.098.06-.176.072-.312-.003-.098-.003-.192-.003-.287v-.57c0-.185.019-.393.003-.574-.016-.15-.104-.305-.104-.423 0-.203.13-.3.102-.576-.018-.198-.047-.245-.092-.418-.088-.328-.028-.659-.082-1.01-.025-.168-.079-.222-.095-.414-.022-.226.048-.305.07-.465.023-.16.047-.37.025-.538-.025-.204-.122-.348-.095-.57l-.074 2.515c-.062-2.194-.15-4.225-.15-4.225l-3.336-1.567s-.283 6.126-.21 6.979c.066.855.353 6.699.21 7.41-.144.713-.495 4.275-.495 4.275s-1.631 1.14-2.27 2.42c-.64 1.283-.497 1.71-.712 1.71l1.585-.246-1.18.788a.721.721 0 0 1 .735.114c.027.022.203.173.226.173.062 0 .148-.159.224-.187.246-.083.453.378.686.343.125-.019.296-.15.398-.284.085-.114.117-.312.206-.388.081-.07.28.011.365.011.233 0 .47.007.702 0 .31-.009.562-.446.849-.693.266-.224.462-.303.747-.287.312.023.594.315.911.333.24.012.407.041.601-.21.134-.176.229-.437.356-.62l.788-.122c.156.065.316.137.45.132.201-.01.41-.034.609-.003.076.01.226.188.288.144.042-.033.114-.273.157-.345-.018-.096-.047-.337-.082-.417z"/> - <path d="M544.532 299.687c.2 0 .385-.046.554.102l.079.154a.173.173 0 0 0 .167.024c.113.076.136.12.26.148.116.025.243-.005.359-.003.146.005.217.055.353.111.238.098.395.005.601-.143.239-.176.326-.042.555.178.171.164.136.149.29.037.024-.053.051-.104.077-.148.077-.032.155-.053.233-.067.128-.06.255-.053.375-.1.127-.049.22-.19.354-.164.115.023.248.118.358.153a.747.747 0 0 1 .24.122c.16-.328.512-.426.736-.584.234-.162.45.034.707.036.137 0 .192-.079.29-.11.108-.04.232.017.337-.026.11-.042.131-.148.253-.162.227-.028.48.341.706.41.127.043.715.175.628-.258-.083-.411-.452-.126-.53-.415-.043-.165.043-.398-.008-.583-.044-.168-.23-.363-.34-.4-.139-.043-.22.102-.337-.011-.098-.09-.135-.428-.22-.562-.114.083-.185.16-.335.13-.172-.042-.155-.1-.282-.262-.278-.348-.438.208-.694.12-.194-.062-.375-.552-.527-.752-.081-.106-.31-.45-.428-.374-.198.13-.018.504-.122.67-.074.116-.337-.002-.432.016-.15.033-.178.072-.287.252-.22.364-.347.652-.688.61-.162-.018-.284-.182-.442-.122-.169.065-.263.245-.449.266a.977.977 0 0 1-.42-.035c-.13-.058-.275-.3-.393-.367a.153.153 0 0 0-.16-.03 8.658 8.658 0 0 0-.194-.112c-.206-.06-.189-.052-.273.22-.048.168-.067.342-.129.502-.06.134-.191.3-.268.39-.144.154-.213.113-.4.169-.15.049-.35.282-.43-.018-.12-.454.333-1.131-.171-1.013-.132.03-.21.055-.291.25-.09.224-.018.37-.058.615-.053.31-.643.83-.526 1.11.078.197.342-.106.414-.058.12.083.085.28.17.412.179.273.708-.423.738-.046m-2.142-2.709c0-.039-.008-.076-.01-.117-.142-.025-.301-.175-.43-.178-.123-.007-.361.292-.445.434-.258.428-.187 1.01-.621 1.002-.107-.003-.356-.075-.45-.01-.163.116-.06.458-.06.691 0 .22.1 0-.017.285-.035.078-.141.104-.17.208-.087.372.223.254.36.25.35-.003.7-.003 1.047 0 .21.004.337-.07.533-.146.13-.044.405-.042.514-.157a2.21 2.21 0 0 0 .184-.407c.028-.144-.027-.317.008-.437.055-.21.243-.13.277-.414.09-.696-.653-.175-.536-.86"/> - </g> - <g stroke="#000" stroke-width=".519"> - <path d="M550.808 277.9c0 .901-.617 1.627-1.382 1.627-.756 0-1.378-.726-1.378-1.627 0-.9.622-1.63 1.378-1.63.764 0 1.382.73 1.382 1.63zm-4.508-2.008c0 .9-.617 1.627-1.379 1.627s-1.381-.728-1.381-1.627c0-.9.619-1.63 1.381-1.63s1.38.73 1.38 1.63z"/> - <path d="M548.68 276.517c0 .901-.617 1.627-1.378 1.627-.762 0-1.378-.726-1.378-1.627 0-.902.616-1.63 1.378-1.63.76 0 1.378.73 1.378 1.63z"/> - <path d="M546.373 278.006c0 .902-.62 1.632-1.38 1.632-.76 0-1.378-.731-1.378-1.632 0-.899.617-1.627 1.378-1.627.761 0 1.38.727 1.38 1.627z"/> - <path d="M548.514 279.25c0 .899-.621 1.631-1.38 1.631-.76 0-1.38-.732-1.38-1.632 0-.899.62-1.627 1.38-1.627.758 0 1.38.728 1.38 1.627z"/> - </g> - <path d="M549.179 261.478s13.907-19.42 28.82.754c0 0 .125 2.006-1.253 4.135l-.377-1.628-.876.25-.25-1.003-1.633-.124.505-2.131-1.757 1.378.252-1.504-2.005 2.008.252-4.263-2.132 3.634.25-2.504-.75 1.125-.453-1.46-.674 1.46-1.005-.75v1.002l-1.752-1.503-.626 2.004-.877-2.129-.251 1.502-.88-1.754-.122 1.88-2.884-1.254.626 1.755-1.376-1 .25 1-1.877-.374.123 1.126-2.005-.376.377 1-2.758-.373.999 1.128-.278.458s15.066-4.968 16.069 13.827l-2.758 1.378.753-1.5-.753-.504-2.254-1.752.627-2.383-.751.252-.127-1.377-.375.25-.88-1.379-.249.502-.626-1.631-.626 1.13-.378-2.758-1 1.757-.128-1.003-.377.626-1.252-1.504-.373 1.002-.504-.751-.374.876-1.379-1.255v1.006l-.876-.754-.38.502-2.126-1.128-.13 1-1.125-1-.377 1s13.662 7.772 9.399 20.428l-.754 1.628-.247-4.258-1.253 2.254.871-4.887-.871.876-.13-1.877-1.123 1.877-.382-2.129-.497.627-.755-3.26-.627 1.38-1-3.634-.752 1.503-.502-3.13-.501 1.879-1.505-2.758-.248 1.125-.876-2.253-.504.754s-2.506-.128-3.257-.754c-.752-.624-2.883 3.76-2.883 3.76l.252-2.632-.876 1.752v-1.752l-1.63 5.261-.377-3.758-.877 3.257-.377-1-.25 1.38-.502-.504-.437 1.48-.818-.602v2.004l-.75-1.002-.627 3.007-.375-1.25v1.376l-.626-.749-.629 3.008-.876-1.252-.123 2.127.373 1.631-1.001-.502.377 2.628s-3.885-7.265.753-14.284c4.633-7.013 10.9-8.895 10.9-8.895l-.63-.624-.124-.628-3.759 1.879.127-1.13-1.003.877-.25-1.252-.629 1.128-.122-.502-.879 1.38-.503-2.006-.625 2.383-.591-1.667-1.288 3.544v-2.63l-1.003 2.757-.375-3.008-.75 3.507v-3.132l-1.131 3.132-.751-3.006-.502 2.88-.75-2.253-.755 3.382-1.125-3.008-.627 4.512-.75-1.756-.127 3.259-.875-2.004.875 4.258-1.128-1.628.377 2.63-1.628-2.882.125 3.387-.878-1.13-.378 1.253s-.372-13.032 8.521-15.54c8.9-2.505 14.664.754 14.664.754l-3.383-2.756.375-.879h-1.252l.5-1.002-2.63.126.751-1.002-2.006.25v-.626l-1.253 1 .502-1.126-1.755 1.125-.106-1.666-.897 1.42-.497-1.506-4.013 4.008 1.128-4.134-.751.879-.124-.879-1.129 1.756-.25-1.254-.503 1.503-.377-1.753-.874 1.753-.879-1.626-.374 2.13-.629-1.13-.751 1.63-1-1.004-.128 1.003-2.005-.877.502 1.504-1.505-1.252-.377 2.004-.874-1.003-.627 2.508-.626-2.382-.626 1.88s7.836-20.136 27.661-6.999c0 0 2.16 2.111 2.661 3.615.502 1.504.127.253.127.253l-.377-13.91.751 6.015.501-2.131-.124 3.133 2.002-4.387s-2.378 7.27-1.503 9.9c0 0 .88-8.394 3.889-9.398l-2.758 6.014.876-.126-.627 1.255h.752l-.909 1.988-.47 1.02.5 1 .757-.758z" fill="#00a651" stroke="#000" stroke-width=".519"/> - <path d="M547.118 269.649l.395.356c.053-.055 1.292-1.376 3.373.381l.345-.41c-2.488-2.103-4.102-.346-4.113-.327zm-.605-6.822l-.082.482.967-.412c-.155.276-.664 1.162-.664 1.162l1.44-.48-1.786 2.34.425.328 2.843-3.724-1.766.59.758-1.334-1.528.657c.101-.618.316-1.911.316-1.911l-.53-.089-.393 2.391z"/> - <path d="M543.86 262.98s.351.777.615 1.356c-.114-.047-.98-.394-.98-.394l2.891 5.115s.35-.446.37-.474c-.291.747-.582 1.5-.582 1.5l.5.195 1.245-3.206-.46-.261-1.003 1.285c-.27-.481-1.27-2.251-1.745-3.088.06.022.802.321.802.321l-.8-1.764 1.084.677v-1.906h-.534v.943l-1.77-1.105.367.806zm-1.822 6.423l.213.49c.783-.335 1.428-.391 1.918-.157.574.275.747.866.749.87l.515-.138c-.007-.034-.234-.83-1.026-1.211-.633-.305-1.43-.256-2.369.146zm2.245 5.418l-.44-2.802.53-.083.44 2.802zm3.849-.461l-.714-2.14.508-.17.714 2.14zm1.412 1.582l-.536-2.138.52-.13.536 2.138z"/> - <path d="M442.568 340.237s-2.35-1.067-3.42-.286c-1.068.786-.922 1.923-1.85 1.852 0 0 3.56.783 4.343-.144.783-.922.927-1.21.927-1.21m.432.772s-1.546 2.067-1.011 3.278c.533 1.212 1.677 1.315 1.407 2.204 0 0 1.53-3.307.795-4.272-.735-.96-.98-1.16-.98-1.16m-2.817-5.774s-2.467.765-2.743 2.057c-.283 1.294.584 2.052-.154 2.614 0 0 3.179-1.782 3.15-2.996-.03-1.212-.11-1.518-.11-1.518m1.307.694s1.17-2.305.433-3.403c-.735-1.106-1.883-1.01-1.77-1.93 0 0-.94 3.52-.048 4.345.892.818 1.172.976 1.172.976m-2.207-.826s.056-2.577-1.085-3.25c-1.14-.675-2.134-.095-2.432-.976 0 0 .682 3.583 1.844 3.941 1.16.35 1.48.37 1.48.37m4.408 4.21s2.704-.929 2.92 1.993c.213 2.92-.144 1.924-.144 1.924s-1.424-3.134-2.99-3.633l.214-.284z" stroke-width=".519" fill="#00a651" stroke="#000"/> - <path d="M442.954 341.268c0 .062.283 2.27.283 2.27l.38-.05-.286-2.208c.01.003.925-4.854.925-4.854l-.377-.069-.925 4.91z"/> - <path d="M440.494 340.55l-.126.36c1.293.455 3.099-.967 3.174-1.027l-.24-.297c-.016.011-1.713 1.352-2.808.964zm3.39-2.85l-6.052-3.061.241-.477 6.052 3.061z"/> - <path d="M439.496 337.013l-.377-.378 1.211-1.21.377.378zm2.119-.588l-1.282-2.78.485-.223 1.281 2.779zm1.791 3.4l.034.534c1.646-.111 2.048.955 2.05.967l.526-.11c-.062-.304-.721-1.518-2.61-1.391z"/> - <path d="M471.17 341.055c2.018-1.13 2.423-5.091 2.423-5.091-.483 1.457-4.196 2.909-4.196 2.909 2.744-1.7 6.052-9.364 6.052-9.364-.887 2.745-8.07 5.004-12.673 7.587-4.603 2.581-2.18 10.011-2.18 10.011-1.29-.889-3.794-4.842-4.276-8.317-.488-3.47-1.86-4.84-5.007-5.245-3.15-.404-5.006 3.146-5.006 3.146l-4.681 2.425 4.76.16s3.395 1.132 3.395 3.796c0 2.665-2.987 13.32 1.934 19.295 3.426 4.152 16.067 6.538 16.067 6.538" fill="#fff" stroke="#000" stroke-width=".665"/> - <path d="M461.89 349.286s.968-4.764 4.116-4.602c3.148.161 4.036-3.55 5.893-4.117 1.856-.564 11.463-3.146 12.513-7.75 0 0-.888 7.59-9.685 11.384 0 0 7.1-2.342 7.91-3.876 0 0-3.15 6.781-10.819 7.83 0 0 7.185-.564 8.235-2.5 0 0-3.23 4.277-8.556 4.844 0 0 4.923 2.017 6.216.321 0 0-2.665 3.148-5.976 3.389l.89.243s-3.148 3.715-6.62 1.211c-3.47-2.504-3.553.648-3.553.648" fill="#fff" stroke="#000" stroke-width=".665"/> - <path d="M469.056 356.466s4.055 6.783 4.46 10.415c0 0 7.75 8.559 10.656 9.04 0 0-1.373.563-3.877-1.533 0 0 2.1 2.18 2.504 2.26.402.084-1.696-.161-2.02-.728 0 0 .89 1.295 1.453 1.456.567.162-.564-.16-.564-.16s-1.051-.163-1.535-.567c-.485-.402-.162 1.047-.162 1.047s-1.21-.323-1.613-.726c-.404-.402.162.89.162.89l-1.049-.243-.726.483s-.081.485-.569.081c-.481-.4-1.37 0-1.37 0s-.648.567-.97.162c-.32-.403-1.544 1.553-1.544 1.553l-5.083-12.27" fill="#fff" stroke="#000" stroke-width=".665"/> - <path d="M473.88 378.724l-6.424-12.228.674-.354 6.425 12.228zm5.613-.824l-10.991-12.306.57-.51 10.992 12.306zm2.507-1.085l-12.542-11.688.52-.56 12.543 11.69z"/> - <g transform="translate(-96.907 97.536) scale(.66486)"> - <path d="M823.44 360.84s-1.231-2.204-2.303-1.376c-1.069.825-1.685.976-1.87.919 0 0 1.076.059 1.687-.522.613-.586 1.656-.216 2.486.979zm-6.66-1.01s.676 1.398.685 1.422c-.068.004-.763 2.257-.763 2.257l.553.17.75-2.453c-.013-.213-.703-1.642-.703-1.642l-.522.246z"/> - <path d="M823.16 360.5s-.918 1.075-2.176.766l-1.252-.306s1.066.06 1.776.093c.7.029 1.618-.337 1.652-.553z"/> - <path d="M822.86 360.72s-1.132-1.195-1.9-.858c0 0 1.35-.43 2.116.73l-.216.128z"/> - <path d="M822.67 360.5s-1.286.887-2.699-.09l-.086-.066.183-.059c.001.001 1.778.735 2.602.215z"/> - <circle r=".383" cy="360.284" cx="821.573"/> - </g> - <path d="M450.015 359.625s-.662 1.219-.316 1.953c.351.734 1.922 1.114 2.13 2.092.212.98.736.978 1.469.842.735-.141.874-.175.874-.175s-3.075-1.645-3.88-4.296l-.277-.416z"/> - <g> - <g fill="#964b36" stroke="#000" stroke-width=".48"> - <path d="M549.398 334.792s5.597-7.38 10.56-5.441c4.963 1.94 8.188 2.873 8.188 2.873s.094 4.97-2.545 4.97c-2.633 0-5.157-4.964-7.557-3.489-2.404 1.473-4.378 3.49-4.533 4.187-.155.696-6.357.852-4.112-3.1z" stroke-width=".319"/> - <path d="M528.156 370.375s-1.548 1.626-.85 2.016c.7.386 2.092-.082 2.092-.622 0-.546-.928-1.548-1.242-1.394z" stroke-width=".519"/> - <path d="M526.92 371.924s-2.867-1.632-5.116 2.245c-2.252 3.876-4.11 10.157-5.428 11.01-1.317.853 12.793-6.202 12.948-9.147 0 0 .929-3.8-.543-3.725-1.473.082-1.551.237-1.862-.383z" stroke-width=".519"/> - <path d="M527.305 372.39s-2.945.693-3.565 4.878c-.62 4.19-4.73 6.36-4.961 6.513m49.375-51.555s-4.48 1.558-3.706 4.66" stroke-width=".319"/> - </g> - <path d="M533.74 341.3s.155-10.62 8.833-10.156c1.644.152.86 2.092.86 2.092s1.877-1.315 2.735.774c0 0 2.737-1.239 3.048 1.476 0 0 2.972-.386 2.58 2.015 0 0 2.032-.464 1.956 1.241 0 0 2.344-.93 2.108 1.473 0 0 2.58-1.706 2.192 1.394 0 0 2.658-1.858 3.592 1.242.938 3.1-2.656 9.69-6.174 11.395" fill="#fff200" stroke="#000" stroke-width=".319"/> - <path d="M557.855 341.946c.012.083 1.17 8.31-3.495 11.32l.164.26c4.834-3.12 3.645-11.54 3.635-11.625l-.304.045zm-5.618 9.009l.216.22c2.954-2.876 3.59-10.623 3.612-10.95l-.302-.026c-.007.081-.65 7.961-3.526 10.755zm-2.759-1.842l.305.025c.38-4.784 4.12-10.256 4.159-10.312l-.252-.171c-.04.054-3.824 5.594-4.212 10.458zm-2.168-1.396l.305.03c.533-5.77 4.344-10.103 4.381-10.144l-.226-.205c-.04.043-3.917 4.447-4.46 10.32zm-3.024-1.928l.304.01c.303-6.813 4.774-10.158 4.818-10.19l-.18-.248c-.044.034-4.633 3.458-4.942 10.428zm-2.793-1.696l.307-.01c-.223-6.2 4.545-9.914 4.594-9.952l-.185-.242c-.049.04-4.942 3.843-4.716 10.204zm-5.033-2.267l.302.038c.831-6.713 6.806-8.46 6.866-8.477l-.083-.294c-.06.016-6.232 1.814-7.085 8.733z"/> - <path d="M528.621 354.173s-1.47-9.849 4.42-12.947c0 0 1.089-.233 1.706 1.163 0 0 3.103-1.317 3.181 1.315 0 0 1.549-1.24 1.937.465 0 0 3.334-.696 2.714 1.784 0 0 2.79-.775 2.557 1.626 0 0 2.792-1.007 2.325 1.086 0 0 2.944-.695 2.249 1.707 0 0 3.645-.386 2.56 2.17 0 0 2.713-.696 2.091 1.397 0 0 3.567.622 1.937 2.87-1.627 2.245-5.737 5.657-9.764 7.13" fill="#00a651" stroke="#000" stroke-width=".319"/> - <path d="M525.443 364.092s-2.404-8.214 2.174-10.311c0 0 .848-.234 1.003.622 0 0 1.01-1.32 1.787-.155 0 0 2.323-1.086 2.869.619 0 0 1.548-1.32 2.325.617 0 0 1.473-.617 1.473.931 0 0 2.015-.852 2.015 1.009 0 0 1.935-.775 1.55 1.317 0 0 2.946.465 2.093 1.86 0 0 2.64.696 1.628 1.784 0 0 2.867-.31 1.317 1.627 0 0 2.171-.695.932 1.71-1.242 2.4-5.116 5.036-7.83 5.346" fill="#00a651" stroke="#000" stroke-width=".319"/> - <path d="M528.309 370.601s-5.116-4.96-2.71-6.433c0 0 1.082.308 1.47 1.394 0 0 1.24-1.782 1.94.077 0 0 1.862-.62 1.862.624l1.47 1.086s1.708-.157 1.399.93c0 0 1.86-.235 1.781.774 0 0 1.63.076 1.476 1.16 0 0 2.787.465 1.548 1.864 0 0-4.884 1.005-8.294-.389 0 0-1.787-.622-1.942-1.087z" fill="#00a651" stroke="#000" stroke-width=".319"/> - <path d="M545.855 362.404l.109.284c3.03-1.168 8.296-8.354 8.52-8.66l-.247-.182c-.055.077-5.434 7.422-8.382 8.557zm-1.722-1.31l.148.266c2.638-1.472 7.89-8.428 8.111-8.724l-.243-.184c-.053.074-5.435 7.203-8.017 8.641zm-1.496-.612l.197.234c2.785-2.312 6.842-9.95 7.015-10.273l-.27-.144c-.04.078-4.202 7.91-6.942 10.184zm-1.37-1.762l.303.043c.53-3.861 5.953-9.938 6.006-9.998l-.227-.204c-.224.252-5.541 6.207-6.082 10.16zm-10.857-4.694l.305-.027c-.455-5.453 4.11-11.46 4.156-11.52l-.242-.184c-.049.059-4.683 6.158-4.22 11.731zm2.872.479l.303-.053c-.755-4.372 4.408-10.59 4.462-10.65l-.234-.2c-.217.26-5.308 6.387-4.53 10.903zm4.415 1.609l.305-.009c-.15-4.991 4.639-9.994 4.688-10.045l-.219-.213c-.049.05-4.93 5.147-4.774 10.267zm-10.532 9.042l.287-.107c-1.74-4.611 1.28-10.517 1.31-10.574l-.275-.142c-.03.061-3.11 6.083-1.322 10.823zm2.008.299l.291-.094c-1.516-4.697 1.054-10.993 1.082-11.055l-.285-.117c-.024.061-2.636 6.463-1.088 11.266zm8.311 4.695l.105.288c4.946-1.78 8.18-6.29 8.213-6.333l-.25-.179c-.03.045-3.208 4.48-8.068 6.223zm-1.017-1.078l.124.28c3.946-1.78 7.624-6.745 7.659-6.797l-.245-.178c-.038.05-3.667 4.948-7.538 6.695zm-.957-.372l.178.248c3.086-2.236 7.05-7.966 7.092-8.025l-.251-.17c-.04.058-3.974 5.742-7.02 7.946zm-4.947-2.879l.303-.044c-.682-4.929 2.508-10.776 2.543-10.834l-.268-.148c-.035.06-3.274 5.996-2.578 11.026zm2.147 1.336l.206.227c3.183-2.874 4.268-10.62 4.312-10.947l-.304-.042c-.01.079-1.112 7.965-4.214 10.763z"/> - <path d="M534.891 368.075l.179.247c4.493-3.25 5.711-9.49 5.721-9.55l-.298-.058c-.012.06-1.208 6.18-5.602 9.361zm.519-13.45c0 .291.014.581.041.876-.005-.025-3.407 11.025-3.407 11.025l.29.09 3.417-11.086c-.527-5.359 4.186-11.208 4.233-11.266l-.236-.191c-.047.053-4.338 5.38-4.338 10.552z"/> - <path d="M538.973 357.324c-.044.155-1.082 7.724-5.164 10.517l.173.252c4.198-2.871 5.218-10.335 5.26-10.65 1.811-2.156 5.986-9.716 6.029-9.792l-.268-.147c-.043.075-4.201 7.612-6.03 9.82zm-12.053 8.271c.03.159.712 3.92 1.493 5.247l.263-.154c-.755-1.281-1.446-5.107-1.453-5.146l-.304.053zm1.934.047c.033 1.872.042 4.944-.062 5.217l.284.111c.157-.393.097-4.51.085-5.33l-.307.002z"/> - <path d="M529.027 371.007l.278.124c1.31-2.852 1.714-4.82 1.719-4.838l-.3-.06c-.005.016-.4 1.956-1.697 4.774z"/> - <path d="M529.32 371.093l.154.264c2.432-1.413 2.996-3.87 3.016-3.974l-.298-.067c-.007.025-.559 2.435-2.873 3.777z"/> - <path d="M529.772 371.306l.03.303c2.383-.238 4.006-3.133 4.075-3.255l-.269-.148c-.015.03-1.614 2.878-3.836 3.1z"/> - <path d="M530.011 371.459l.018.305c3.826-.236 5.548-2.522 5.617-2.619l-.247-.18c-.016.02-1.713 2.27-5.388 2.494z"/> - <path d="M530.284 371.539l-.063.298c.206.047 5.08 1.08 6.75-1.46l-.256-.167c-1.552 2.365-6.384 1.338-6.431 1.329z"/> - </g> - <path d="M420.887 193.236v136.357c0 44.599 80.581 71.08 80.581 71.08s80.582-26.483 80.582-71.08V193.236z" fill="none" stroke="#000" stroke-width="2.792"/> - </g> - <path d="M0 0v240.339h358.036V0H0z" fill="#002868"/> - <path style="line-height:normal;text-indent:0;text-align:start;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000;text-transform:none;block-progression:tb;isolation:auto;mix-blend-mode:normal" d="M0 0v26.872l138.99 93.296L0 213.468v26.87h40.03l138.99-93.296 138.989 93.297h40.027v-26.872l-138.988-93.299 138.988-93.297V0H318.01L179.02 93.3 40.03 0H0z" color="#000" font-weight="400" font-family="sans-serif" white-space="normal" overflow="visible" fill="#fff"/> - <path d="M0 0v14.867L169.725 99.73 0 184.592v14.867h29.732l169.725-84.863 169.727 84.863h29.732V184.59L229.191 99.729l169.725-84.862V0h-29.732L199.457 84.861 29.732 0H0z" style="line-height:normal;text-indent:0;text-align:start;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000;text-transform:none;block-progression:tb;isolation:auto;mix-blend-mode:normal" color="#000" font-weight="400" font-family="sans-serif" white-space="normal" overflow="visible" fill="#ce1126" transform="scale(.89752 1.20495)"/> - <path style="line-height:normal;text-indent:0;text-align:start;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000;text-transform:none;block-progression:tb;isolation:auto;mix-blend-mode:normal" d="M149.182 0v80.113H0v80.113h149.182v80.113h59.673v-80.113h149.181V80.113H208.855V0h-59.673z" color="#000" font-weight="400" font-family="sans-serif" white-space="normal" overflow="visible" fill="#fff"/> - <path style="line-height:normal;text-indent:0;text-align:start;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000;text-transform:none;block-progression:tb;isolation:auto;mix-blend-mode:normal" d="M161.116 0v96.135H0v48.069h161.116v96.135h35.804v-96.135h161.116V96.135H196.92V0h-35.804z" color="#000" font-weight="400" font-family="sans-serif" white-space="normal" overflow="visible" fill="#ce1126"/> -</svg> diff --git a/img/flags/4x3/fk.svg b/img/flags/4x3/fk.svg deleted file mode 100644 index 7864f54..0000000 --- a/img/flags/4x3/fk.svg +++ /dev/null @@ -1,90 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" height="480" width="640" viewBox="0 0 640 480"> - <defs> - <linearGradient id="a"> - <stop stop-color="#a43907" stop-opacity=".996" offset="0"/> - <stop stop-color="#fff" offset="1"/> - </linearGradient> - <linearGradient id="b" y2="577.14" xlink:href="#a" gradientUnits="userSpaceOnUse" x2="470.9" y1="592.2" x1="444.4"/> - <linearGradient id="c" y2="552.83" xlink:href="#a" gradientUnits="userSpaceOnUse" x2="520.55" gradientTransform="scale(.94 1.07)" y1="562.51" x1="458.24"/> - <linearGradient id="d" y2="580.2" xlink:href="#a" gradientUnits="userSpaceOnUse" x2="445.28" y1="578.68" x1="472.38"/> - <linearGradient id="e" y2="558.12" xlink:href="#a" gradientUnits="userSpaceOnUse" x2="456.44" gradientTransform="scale(.94 1.07)" y1="553.74" x1="517.97"/> - <linearGradient id="f" y2="369.94" xlink:href="#a" gradientUnits="userSpaceOnUse" x2="646.19" y1="369.94" x1="851.78"/> - <linearGradient id="g" y2="508.75" xlink:href="#a" gradientUnits="userSpaceOnUse" x2="677.4" gradientTransform="scale(.82 1.22)" y1="507.23" x1="388.53"/> - <linearGradient id="h" y2="505.86" xlink:href="#a" gradientUnits="userSpaceOnUse" x2="556.8" gradientTransform="scale(.84 1.2)" y1="504.94" x1="579.84"/> - <linearGradient id="i" y2="514.33" xlink:href="#a" gradientUnits="userSpaceOnUse" x2="558.88" gradientTransform="scale(.82 1.22)" y1="512.01" x1="581.43"/> - <linearGradient id="j" y2="503.9" xlink:href="#a" gradientUnits="userSpaceOnUse" x2="589.77" gradientTransform="scale(.84 1.2)" y1="517.88" x1="552"/> - </defs> - <path fill="#006" d="M0 0h640v480H0z"/> - <path fill-rule="evenodd" fill="#006" d="M0 0h400v200H0z"/> - <g stroke-width="1pt"> - <path d="M0 0v25.562L317.137 228.63h39.92v-25.56L39.918 0H0zm357.056 0v25.56L39.92 228.63H0v-25.562L317.137 0h39.92z" fill="#fff"/> - <path d="M148.773 0v228.63h59.51V0h-59.51zM0 76.21v76.21h357.056V76.21H0z" fill="#fff"/> - <path d="M0 91.452v45.726h357.056V91.452H0zM160.675.002v228.627h35.706V0h-35.705zM0 228.63l119.02-76.21h26.61L26.614 228.63H0zM0 0l119.02 76.21H92.405L0 17.042V.002zm211.425 76.21L330.445 0h26.61L238.038 76.21h-26.612zm145.63 152.42l-119.018-76.21h26.613l92.406 59.168v17.04z" fill="#c00"/> - </g> - <path d="M670.97 321.56a13.22 13.22 0 0 0-2.03.188c-3.39.59-8.734 11.63-11.69 18.094-4.62 5.644-7.088 10.03-9.03 13.28-.755 1.263-1.92 2.728-1.563 4.407-6.996 1.718-7.344 7.724-7.344 10.06 0 2.48.782 3.72.782 3.72l4.187 7.843.03.094c4.458 9.216 11.058 21.626 14.75 22.656 5.244 1.462 18.822-3.55 29-12.156 16.69 6.875 38.073 12.562 61.97 12.562 23.896 0 45.248-5.69 61.938-12.563 10.18 8.606 23.758 13.618 29 12.156 3.705-1.033 10.324-13.525 14.78-22.75l4.19-7.844s.78-1.24.78-3.72c0-2.338-.377-8.344-7.375-10.062.35-1.678-.776-3.143-1.53-4.406-1.958-3.274-4.42-7.7-9.095-13.406-2.966-6.48-8.29-17.382-11.656-17.97-4.742-.825-14.97 1.58-14.97 2.407 0 .02-.057.45-.062.5l-20.54 19.4c0 .557 1.09 14.594 4.938 27-13.75 5.006-30.626 8.532-50.406 8.532-19.793 0-36.715-3.52-50.47-8.532 3.85-12.406 4.97-26.443 4.97-27l-20.53-19.4c-.005-.05-.063-.48-.063-.5 0-.723-7.83-2.675-12.968-2.593zm5.25 24.094c2.582-.032 5.332 2.095 7.594 4.47-.078.465-.157.943-.25 1.374-.624 2.872-1.696 6.663-3.188 10.625-5.87-3.43-10.66-6.996-14.312-10.312 2.228-2.37 5.806-5.596 9.594-6.124.185-.026.375-.03.563-.03zm147.56 0c.187.002.377.005.563.03 3.788.53 7.397 3.757 9.625 6.126-3.66 3.324-8.457 6.91-14.344 10.344-1.498-3.97-2.563-7.778-3.188-10.656-.094-.432-.172-.907-.25-1.375 2.265-2.38 5.006-4.5 7.594-4.47zm-166 27.375c2.73 2.09 6.296 4.475 10.594 7-1.19.755-2.456 1.316-3.78 1.624-1.766.41-3.622.33-5.5-.063-.588-1.45-1.083-3.274-1.22-5.717a70.286 70.286 0 0 1-.094-2.844zm184.47 0c-.014.877-.068 1.825-.125 2.843-.137 2.443-.6 4.267-1.188 5.72-1.88.392-3.766.47-5.53.06-1.326-.307-2.56-.868-3.75-1.624 4.3-2.525 7.862-4.908 10.593-7z" fill-rule="evenodd" transform="matrix(1.17 0 0 1.17 -389.23 -21.96)" stroke="#fff" stroke-width="10" fill="url(#b)"/> - <path d="M445.63 595.48s5.625-8.75 10.313-8.125c4.687.625 9.062 6.25 9.375 6.562.312.313 7.187-7.187 6.875-7.5-.313-.312-7.188-16.562-10.938-17.187s-11.847 1.196-11.847 1.82-3.778 24.43-3.778 24.43z" fill-rule="evenodd" transform="matrix(-1.48 0 0 1.54 1073.61 -525.43)" stroke="#000" stroke-width="1.16" fill="url(#b)"/> - <path d="M433.13 586.11c0 .625 1.875 23.75 10 31.875s21.25 13.125 25.938 11.875c4.687-1.25 15.312-24.687 15.312-24.687s-11.25 11.25-19.687 9.375c-8.438-1.875-13.438-15.938-15-22.813-1.563-6.875-.313-20.313-.313-20.313l-16.25 14.688z" fill-rule="evenodd" transform="matrix(-1.48 0 0 1.54 1073.61 -525.43)" stroke="#000" stroke-width="1.16" fill="url(#c)"/> - <path d="M445.63 595.48s5.625-8.75 10.313-8.125c4.687.625 9.062 6.25 9.375 6.562.312.313 7.187-7.187 6.875-7.5-.313-.312-7.188-16.562-10.938-17.187s-11.847 1.196-11.847 1.82-3.778 24.43-3.778 24.43z" fill-rule="evenodd" transform="matrix(1.48 0 0 1.54 -99.78 -525.43)" stroke="#000" stroke-width="1.16" fill="url(#d)"/> - <path d="M433.13 586.11c0 .625 1.875 23.75 10 31.875s21.25 13.125 25.938 11.875c4.687-1.25 15.312-24.687 15.312-24.687s-11.25 11.25-19.687 9.375c-8.438-1.875-13.438-15.938-15-22.813-1.563-6.875-.313-20.313-.313-20.313l-16.25 14.688z" fill-rule="evenodd" transform="matrix(1.48 0 0 1.54 -99.78 -525.43)" stroke="#000" stroke-width="1.16" fill="url(#e)"/> - <path d="M656.44 338.56c-4.742 5.785-7.274 10.257-9.25 13.562-1.976 3.306-.814 7.906 3.75 14.47 4.92 7.072 45.374 34.718 98.062 34.718 52.69 0 93.142-27.646 98.062-34.72 4.564-6.562 5.695-11.162 3.72-14.468-1.977-3.306-4.478-7.777-9.22-13.562 0 8.677-33.512 40.03-92.562 40.03s-92.562-31.353-92.562-40.03z" fill-rule="evenodd" transform="matrix(1.17 0 0 1.17 -388.04 -20.79)" stroke="#000" stroke-width="1.5" fill="url(#f)"/> - <path d="M467.82 625.48c.625-.937 7.187-11.875 7.187-11.875l-3.598-2.538c-1.106 3.094-5.153 4.1-5.778 7.85s2.813 7.5 2.188 6.563z" fill-rule="evenodd" transform="matrix(1.48 0 0 1.54 -98.8 -524.06)" stroke="#000" stroke-width="1.16" fill="url(#g)"/> - <path d="M475 622.98s1.25-5.312-2.812-5.937c-4.063-.625-6.214 2.973-5.625 1.562.654-1.567 3.125-3.125 3.437-8.437.313-5.313-.312-8.125-.312-8.125s1.562-6.876 8.125-5.938c6.562.938 6.875 5.938 6.875 7.813s-.625 2.812-.625 2.812L475 622.98z" fill-rule="evenodd" transform="matrix(1.48 0 0 1.54 -99.78 -525.43)" stroke="#000" stroke-width="1.16" fill="url(#h)"/> - <path d="M568.3 406.338l1.973 3.453 1.332-.83-.884-2.28.165-.448 2.318-1.446 6.067 10.608-.15.516-1.2.88.546.957 5.777-3.606-.547-.954-1.31.686-.507-.106-6.068-10.61 2.32-1.447.434.072 1.52 1.883 1.335-.833-1.973-3.452-11.148 6.958zm-14.253 8.169l.48.993 1.216-.513.478.155 5.21 10.764-.165.494-1.117.716.48.993 5.687-3.002-.48-.993-1.256.536-.48-.154-2.47-5.108 5.806-3.065 2.47 5.11-.143.482-1.158.737.48.993 5.667-2.99-.48-.993-1.215.514-.478-.154-5.21-10.765.165-.493 1.116-.718-.48-.993-5.665 2.99.48.994 1.256-.535.46.165 2.147 4.44-5.807 3.064-2.148-4.438.165-.494 1.157-.74-.48-.992-5.687 3zm-3.337 9.151l.305 1.066 1.628-.39.432.198 1.275 4.437c-.55.217-.952.368-1.168.435-3.32 1.037-6.004-.613-7.128-4.53-1.093-3.806.24-6.687 3.455-7.692a4.747 4.747 0 0 1 1.89-.21l.434.29 1.072 2.177 1.574-.492-1.06-3.697c-1.735.02-3.334.26-4.758.704-4.787 1.496-7.015 5.44-5.734 9.9 1.3 4.523 5.26 6.7 9.788 5.285 1.574-.493 3.083-1.296 4.575-2.403l-1.454-5.068.257-.413 1.22-.5-.306-1.066-6.298 1.968zm-13.338 12.512l6.428-2.024-.32-1.064-1.473.346-.45-.24-3.483-11.577.253-.412 1.407-.563-.32-1.064-6.428 2.025.32 1.064 1.452-.338.435.196 3.484 11.578-.24.456-1.385.554.32 1.064zm-34.8 5.693l11.316-1.036-.345-4.047-1.433.13-.155 2.432-.243.387-4.888.446-.502-5.88 2.74-.252.322.29.35 1.61 1.242-.115-.447-5.25-1.243.115-.073 1.65-.268.34-2.74.252-.458-5.383 4.194-.384.3.27.484 1.962 1.475-.136-.3-3.55-10.622.97.095 1.11 1.295-.005.364.287 1.028 12.056-.307.392-1.276.23.095 1.108zm-16.845-14.916l.02 1.112 1.228.092.345.357.21 12.053-.332.37-1.225.133.02 1.112 5.985-.104-.02-1.112-1.27-.09-.345-.358-.1-5.72 6.112-.107.1 5.72-.31.37-1.267.134.02 1.113 5.965-.104-.02-1.113-1.23-.092-.343-.357-.21-12.054.33-.37 1.226-.135-.02-1.113-5.965.104.02 1.113 1.272.092.323.358.087 4.97-6.113.108-.087-4.97.332-.37 1.267-.136-.02-1.112-5.985.105zm-12.847-.431l-.038 4.02 1.46.017.36-2.426.342-.29 2.54.03-.117 12.35-.364.36-1.376.095-.01 1.112 6.326.076.01-1.112-1.375-.13-.356-.367.116-12.35 2.54.03.314.3.337 2.434 1.458.017.038-4.018-12.206-.146zm-19.483 12.839l11.06.548.18-4.058-1.402-.07-.456 2.387-.285.35-4.778-.237.258-5.897 2.677.132.275.333.135 1.642 1.215.06.23-5.26-1.214-.06-.278 1.623-.303.302-2.677-.133.236-5.397 4.1.203.256.308.22 2.013 1.442.07.156-3.56-10.38-.514-.05 1.11 1.252.176.316.334-.53 12.088-.345.346-1.262.05-.048 1.11zm-25.347-6.559l5.87 1.98.324-1.06-1.282-.55-.208-.45 3.536-11.518.407-.197 1.35.336.324-1.058-5.87-1.98-.324 1.06 1.262.544.22.41-3.535 11.515-.42.24-1.33-.33-.324 1.06zm-10.438-4.054a11.392 11.392 0 0 0 3.572 1.99c3.22 1.086 5.773-.103 6.563-2.674.39-1.275.12-2.654-.772-3.838-.906-1.21-1.848-1.887-2.33-2.502-.828-1.04-1.18-1.875-.874-2.87.366-1.188 1.514-1.753 2.948-1.27.628.212 1.047.47 1.34.784l.183.396-.355 2.36 1.413.477 1.074-3.5c-1.09-.893-2.247-1.57-3.465-1.98-2.807-.946-5.204.296-5.94 2.694-.326 1.06-.18 2.276.465 3.423.618 1.09 1.43 1.77 2.08 2.466 1.156 1.247 1.625 2.263 1.267 3.43-.366 1.188-1.574 1.735-3.165 1.2a5.534 5.534 0 0 1-1.634-.887l-.155-.41.482-2.698-1.494-.504-1.2 3.912zm-13.266-5.554l9.996 4.997 1.672-3.665-1.265-.632-1.308 2.013-.392.207-4.318-2.158 2.43-5.327 2.42 1.21.13.417-.49 1.567 1.1.55 2.167-4.753-1.1-.55-.858 1.384-.39.155-2.42-1.21 2.223-4.873 3.703 1.85.12.388-.54 1.943 1.3.653 1.468-3.216-9.383-4.69-.458 1.002 1.09.67.166.436-4.977 10.916-.448.18-1.182-.467-.457 1.003zm-1.684-18.191l-5.03-3.466-.585.93.99.82.086.493-6.333 10.065-.466.113-1.11-.63-.585.93 5.03 3.465c1.723 1.187 3.194 1.793 4.835 1.62 2.136-.214 3.957-1.46 5.364-3.695 2.504-3.98 1.8-7.888-2.198-10.643zm-2.098.076l1 .69c2.74 1.886 2.98 4.526.74 8.09s-4.667 4.39-7.407 2.504l-1-.69 6.667-10.594zm40.078 15.69l-.224 1.088 1.167.376.258.383-2.438 11.837-.395.284-1.213-.152-.224 1.088 5.685 1.257.224-1.088-1.207-.382-.25-.426 1.03-4.998.343.075c2.035.45 2.363 1.52 2.553 3.77.104 1.135.08 2.176.945 3.296.398.53 1.088.96 1.956 1.152a13.78 13.78 0 0 0 2.052.27l.22-1.068-.262-.058c-1.35-.298-1.886-.764-2.06-2.08-.153-1.195-.067-2.43-.49-3.546-.317-.813-.917-1.386-1.834-1.845 2.374.037 3.83-.987 4.25-3.03.508-2.467-.83-4.156-3.955-4.847l-6.128-1.355zm3.872 2.18l.928.205c1.954.432 2.772 1.68 2.397 3.502-.422 2.045-1.642 2.75-3.798 2.273-.223-.05-.464-.102-.722-.183l1.194-5.797zm74.094 1.29l.173 1.098 1.33-.11.406.253 1.883 11.943-.3.42-1.294.334.173 1.098 6.265-1.07-.173-1.098-1.373.12-.413-.297-.795-5.042.378-.064c2.244-.383 2.973.482 3.997 2.493.525 1.013.886 1.988 2.18 2.687.602.334 1.466.462 2.422.3a16.52 16.52 0 0 0 2.192-.56l-.17-1.075-.29.05c-1.487.253-2.206.03-2.868-1.122-.598-1.047-.966-2.227-1.81-3.096-.624-.63-1.448-.925-2.552-.99 2.436-.9 3.542-2.423 3.217-4.484-.393-2.488-2.382-3.53-5.827-2.94l-6.755 1.153zm4.757.5l1.022-.175c2.155-.368 3.45.47 3.74 2.306.325 2.063-.66 3.197-3.036 3.603-.244.042-.51.087-.803.114l-.922-5.847z"/> - <path d="M467.82 625.48c.625-.937 7.187-11.875 7.187-11.875l-3.598-2.538c-1.106 3.094-5.153 4.1-5.778 7.85s2.813 7.5 2.188 6.563z" fill-rule="evenodd" transform="matrix(-1.48 0 0 1.54 1072.67 -524.06)" stroke="#000" stroke-width="1.16" fill="url(#i)"/> - <path d="M475 622.98s1.25-5.312-2.812-5.937c-4.063-.625-6.214 2.973-5.625 1.562.654-1.567 3.125-3.125 3.437-8.437.313-5.313-.312-8.125-.312-8.125s1.562-6.876 8.125-5.938c6.562.938 6.875 5.938 6.875 7.813s-.625 2.812-.625 2.812L475 622.98z" fill-rule="evenodd" transform="matrix(-1.48 0 0 1.54 1073.61 -525.43)" stroke="#000" stroke-width="1.16" fill="url(#j)"/> - <path d="M396.85 605.91s-75.43-21.26-74.99-102.14l.58-106.91h148.82l.584 106.3c.44 80.882-74.993 102.76-74.993 102.76z" fill-rule="evenodd" fill-opacity=".996" transform="matrix(1.48 0 0 1.54 -99.33 -521.46)" stroke="#fff" stroke-width="3.867" fill="#0072c4"/> - <g fill-rule="evenodd"> - <path d="M392.306 128.963c.184 0 1.534-1.282 2.77-2.412 1.727-.864 3.324-2.08 5.08-2.896 1.307-.757 3.89-1.344 5.077-1.93 1.555-.815 2.824-1.752 4.156-3.38.158-2.16.46-3.71.46-6.275 1.837-.885 3.467-1.742 5.078-2.415 2.31-.65 2.812-1.574 5.08-1.93 1.46-.51 3.87-.485 6-.485 2.297 0 3.747 1.633 5.81 2.02 2.447.986 3.59 1.67 5.54 3.38 1.102 1.394 1.788 2.528 3.667 3.578 1.488.763 2.88 1.92 4.617 2.413 1.905 1.105 3.597 1.745 5.077 3.38 1.355.965 1.915 2.397 3.23 3.38 1.526 1.264 2.972 2.403 4.618 3.38 1.978 1.324 3.94 2.33 7.143 2.043 1.697-.1 3.523-.296 5.54.08 2.26 0 4.464-.04 6.464.485 2.355 0 4.26.318 6.463.482 2.064.386 4.168.483 6.463.483 2.002.522 4.205.482 6.464.482h12.926c2.352 0 4.733.096 6.463.484 2.33 0 4.333-.22 6.463-.485 2.507 0 4.42-.46 6.926-.482h7.85c2.014.552 4.59.93 6 1.93 1.848.528 2.768 1.404 4.616 1.932 1.416.726 3.565 1.875 4.617 3.378 1.303 1.363 2.64 3.314 3.693 5.31 1.285 1.855 1.774 3.974 2.77 6.276.528 2.205.895 4.302.923 6.757.502 2.093.464 4.396.464 6.758-.528 2.2-.643 4.65-1.386 6.758-.08 2.356-.55 4.487-.923 6.276-.41 1.975-.894 3.246-.924 5.792v6.758c-.16 2.217-.646 3.845-.922 6.275-1.117 2.108-2.186 4.573-3.23 7.24-1.537 1.072-2.87 2.595-3.694 3.863-.985.61-1.556 1.532-1.386 1.93 1.845.643 1.386 1.927 1.386 4.345.24 1.86.42 4.17.923 6.276.17 2.303.662 3.712 1.385 5.308.728.95.87.483-.924.483-1.334 1.047-2.684.5-3.23-1.448-1.078-1.3-1.432-2.87-1.847-5.31-.255-2.234-.612-4.412-1.385-5.79-.236-2.722-.96-2.694-3.693-2.898-1.3-1.152-3.017-1.45-5.54-1.45-2.513 0-2.724-.255-2.77 2.416v6.758c-.434 1.96-1.387 3.547-1.847 5.31-1.377 1.008-2.093 2.7-3.693 3.86-.762 2.193-1.87 2.574-4.156 2.897-.8-.998-2.102-2.3-2.77-3.378 1.293-2.17 2.422-2.496 3.233-4.827.98-1.922 1.556-3.17 2.306-4.828-.985-1.516-1.87-2.2-2.77-4.345-.76-1.168-1.81-3.68-2.307-5.31-1.517-.527-3.904-.612-5.08-1.448-2.24-.522-2.866 1.93-5.54 1.93h-6.462c-2.858 0-3.572 1.596-6.002 1.45-.714.23-2.445-.103-5.08 0-1.928.67-4.252.48-6.462.48-2.342-.03-4.258-.568-6-.965-2.122-.58-4.232-1.17-6.464-1.447-2.71 0-3.72.216-5.54 1.447-1.44.855-3.528 2.807-5.08 3.862-.655 1.602-.996 4.313-1.846 6.276-.49 1.883-1.288 3.077-1.846 4.828-.625 1.633-1.216 3.314-1.385 5.793-.156 3.253-.867 2.855-2.77 1.93-.793-1.346-2.057-2.827-2.77-4.344.42-2.457.893-3.68.924-6.276-.45-1.874-1.498-1.813-2.77-.483 0 2.528.117 4.477-.924 5.793-.52 1.995-1.356 2.857-2.77 3.862-.69 1.792-2.226 2.612-3.693 3.38-.235-.082 0-.647 0-1.93-1.106-2.208-.08-4.04-.08-6.76.03-2.437-.11-4.052.597-6.275 0-2.34-1.085-4.566-1.44-6.275-.858-1.793-1.353-2.68-3.693-3.38-1.645-.653-4.014-1.537-5.08-2.896-1.34-1.74-2.195-2.454-4.153-3.38-2.124-.77-3.155-1.473-4.616-2.414-1.427-1.574-2.587-2.256-3.232-4.343-.964-1.485-1.13-4.242-1.847-6.277-.157-2.12-.764-4.088-1.384-5.792-.274-2.12-.608-3.67-1.385-5.793-.257-1.984-.83-4.06-1.384-6.273 0-2.362.04-4.667-.462-6.76v-6.757c-.332-1.95-.455-4.807-.923-6.276 0-2.626-.28-4.11-.923-5.793-1.056-1.704-1.142-2.47-2.77-2.895-1.176 1.5-3.114 2.112-5.54 2.415-1.695-.387-4.086-.638-6.002-1.45-1.85-.455-3.117-1.187-4.617-1.93-.82-1.262-1.8-2.69-2.77-3.862-.286-2.52-.836-3.82-.923-6.275 0-1.843.044-.865 1.846-3.38z" fill="#bcbcbc"/> - <path d="M419.65 146.357l.328-.34c-.742.774-.47.4 1.306-.343.993-.625 2.88-1.727 3.59-2.39.854-.39 2.21-.9 2.938-1.705.91-.97 1.82-1.776 2.938-2.732 1.293-1.097 2.498-1.457 3.918-2.39 1.847-.137 2.516-.928 4.243-.34 1.622.367 2.294.377 3.592-1.025 1.31-.84 2.753-1.654 3.265-3.073v-2.046c-.025 2.23-.427 2.953-1.96 3.753-1.067 1.224-2.398 2.608-2.937 3.756-1.037 1.5-1.257 2.34-2.285 3.072-.844 1.075-2.292 1.644-2.61 3.412.464.813.04 1.258.977 1.366.946.812 1.93.466 3.265 0 1.328-1.537 1.925-2.53 2.612-4.095 1.095-1.497 1.708-2.21 2.284-3.414 1.135-.823 1.856-1.464 2.286-2.73 1.313-.77 2.393-1.578 3.263-2.39.976-.628 1.494-1.138 2.938-1.366-.02 1.833-.29 2.7-.978 3.755-.325 1.9-.26 2.802.326 4.096.938.58.772 1.084 1.306 2.39.532-1.13.802-3.415.98-4.78v-.342c0 1.493.136 3.473-.327 4.438.022 1.99.464 2.878.98 4.437.55.752.938 1.24 1.632 1.707.064-1.97.556-3.267.652-5.12.455 1.43.303 3.32.653 4.778.118 1.607.7 2.852 1.306 4.097.744.46.997 1.813 1.305.683.773-2.402.792-5.03 1.306-7.51.094-1.26.195-3.133.654-4.096l-.653 4.095c.094-1.26.195-3.132.654-4.095v-.34c.305 1.797.593 3.533.653 5.46 0 1.536-.1 3.1.327 4.437 1.086-.503 1.715-1.68 2.285-3.073.87-1.65 1.465-2.382 2.61-3.754l-2.61 3.754c.87-1.65 1.465-2.382 2.61-3.754v-.34c-.18 1.573-.325 3.056-.325 4.777 0 1.574-.018 3.358.326 4.438.385 1.81.91 2.145.98 4.095 0 .95-.124 1.92.327 2.39 1.406.367 1.41-.452 1.632-2.39.017-2.202.58-3.703.65-5.802 0-2.59.367.316.654 1.366.66 1.52.864 2.872.98 4.437 0 .95-.123 1.92.326 2.39 1.26-.523 1.76-1.996 2.612-2.732.65-1.616 1.322-2.33 1.96-3.41 1.69-.355 1.607-1.05 1.63-3.073 0-1.633-.127-3.352.328-4.78.523-1.483 1.016-3.134 1.305-4.436.61-.364 1.27.538 1.63 1.366.716 1.1.654 2.705.654 4.437.314 1.51.942 2.69 1.632 4.096.818 1.577 1.483 2.533 2.285 3.413.344 1.08.327 2.864.327 4.437 1.272-1.445 1.515-3.598 1.632-5.802-.17-1.5-.202-3.368-.653-4.78-.052-1.503-.32-3.055-.653-4.095-1.102-.53-1.276-1-.326-2.39 1.05-.908 2.185-.557 3.918-.34.876.915 1.236 1.405 1.305 3.41 0 1.82.077 3.218.653 4.44.64.982 1.272 1.657 1.63 3.413.502.428.89 1.12 1.634.342.41-1 .65-3.062.98-4.097.318-1.295.893-1.93 1.632-2.39 0 1.9-.022 3.066.653 4.44.638 1.524 1.082 2.097 1.63 3.755.697.485.786 1.53 1.633 2.046.2-1.602.327-3.437.327-5.46v-4.78c.12-1.625.514-2.54.98-3.752 1.05 1.31.98 1.852.98 3.753 1.073-.4 1.253-1.17 1.63-2.387.767-.675.976-.99 1.306.68.23 1.787.665 3.395.98 5.122.67.788 1.447 2.696 2.285 3.414.575.975 1.22 1.92 1.96 2.73.508 1.123.638 1.71 1.958 2.047 0-2.31.077-4.627-.326-6.826 0-1.96-.428-2.66-.653-4.437-.545-1.177-.865-2.912-.654-3.412 1.53 1.517 2.22 2.398 2.938 4.096.766 1.64 1.41 2.743 1.958 4.437.755.648 2.092 2.59 2.612 3.414 1.165 1.04 1.733 2.126 2.938 3.07.623.588 1.94.916 2.285.684-.06-2-.364-3.72-.98-5.46-.02-1.91-.458-2.948-.978-4.096-1.285-1.108-2.26-1.863-2.94-3.414-.505-.432-.604-.755-.653-1.705 1.876 1.552 3.187 2.936 4.57 4.777.936 1.213 1.412 1.763 2.613 2.39.65.73 2.545 1.638 3.916 2.048.823 1.09 1.922 1.718 3.265 2.05l-3.264-2.05c.823 1.09 1.922 1.718 3.265 2.05v.34c-.163-2.135-.947-3.695-1.958-5.462-.85-1.868-1.63-2.56-2.938-3.755-.854-1.352-1.81-2.15-3.264-3.07-.9-1.06-2.25-2.82-2.938-3.415 1.392-.874 3.027.592 4.57 1.366 1.274 1.38 2.465 3.18 3.264 4.095.87 1.753 1.537 2.838 2.94 4.437 1.405.834 2.38 1.66 3.59 2.73 1.87.518 1.124-.166.653-1.706-.647-1.926-.072-1.956 1.305-.682.908.647 1.92 1.725 3.263 2.39.58.752 1.457 1.17 2.286.682.345-.482.326-.427.326-1.024-.687-2.118-1.325-3.767-2.938-4.438-.74-.942-1.942-2.063-2.937-3.072-.65-1-1.408-1.576-1.96-2.73l1.96 2.73c-.65-1-1.408-1.576-1.96-2.73h-.326c1.97.073 2.672.573 4.242 1.366 1.12.408 2.327 1.475 2.94 2.388.635.845 1.655 1.753 2.284 2.73 1.003.773 2.11 1.652 3.265 2.39 1.087 1.425 1.282 2.352 1.307 4.44.626.964.738 2.938.978 4.094-.24 1.877-.882.403-.978-.683-.277-1.507-.85-1.428-1.96-1.023 0 2.062.228 2.626.98 4.096-.204 1.41-.672 2.44-1.306 3.414-.76.454-.925-1.004-1.63-1.707-.076-2.11-.67-2.343-1.96-3.414v1.366c.728 1.457 1.497 2.785 1.632 4.78.504 1.52.653 2.482.653 4.436 0 1.67.027 3.3-.326 4.78 0 1.85-.307 2.645-.328 4.437v9.558c-.25 1.207-.326 2.78-.326 4.436l.326-4.438c-.25 1.208-.326 2.782-.326 4.437v.34c-.62-1.715-1.296-3.267-1.632-5.12-1.058-1.047-1.73-2.126-2.286-3.413-.25-1.464-.406-3.253-.653-4.438-.46-1.203-.947-2.486-1.96-1.706-.4 2.544.106 4.06.98 6.484.513 1.608.457 2.872.98 4.438.757 1.805 1.365 2.064 0 4.095-.673 1.084-1.034 1.427-1.306 2.732-1.208.632-1.51.913-1.632 2.39-.406-1.328-1.393-2.884-1.96-4.438-.584-1.634-1.306-3.313-1.63-4.778-.793-1.143-1.722-2.992-2.613-3.755-.82-1.102-1.997-2.94-2.612-4.095-1.25-1.457-1.526-2.3-2.61-3.07-.28-.683-.612-1.534-1.306-1.025 0 1.632-.13 3.35.326 4.777.33 2.013.91 3.13.98 5.12v3.756c-.785-1.923-1.622-3.64-2.286-5.462-.713-1.018-1.41-3.003-2.285-3.754-.555-1.324-.988-2.422-1.632-3.412-.167-.992-.606-.98-.98-1.707.022 1.935.61 2.613.98 4.095.636 1.3.84 3.48.653 4.096-.823-2.392-1.568-5.008-2.612-7.167-.99-1.402-1.955-3.204-2.61-4.437-.972-1.172-1.97-1.21-2.938-2.048-.882-.437-1.726-.926-2.285-1.707.257 1.8.927 2.924 1.305 4.438.215 1.716.97 3.09 1.306 4.438-.363 2.335-.89-.648-1.306-1.707-.344-1.922-.98-2.99-1.632-4.097-.875-.622-1.67-1.727-2.612-2.39-.916-.367-.653.067-.653 1.366 0 2.112.077 3.507.653 4.78.652 1 .653 2.306.653 4.094-.056 1.68-.325 3.03-.325 4.78V188c-.75-1.45-1.46-2.275-1.96-4.096-1.132-1.55-1.468-2.688-2.285-4.436-.724-.305-1.902-.556-2.61 0 .127 1.727.89 2.487.98 4.436-1.302 1.333-1.067 1.713-1.96-.34-.744-1.557-1.61-1.484-2.61-2.39-1.64-.214-1.12-1.263-1.634-2.73 0-1.315.13-2.642-.326-3.756-1.79 0-2.816-.064-3.917 1.025-.518 1.08-.335 3.033 0 4.436v4.778c-.372 1.196-1.11 1.26-1.306 2.73-.63 1.458-.84 3.066-1.305 4.098-1.163 1.05-.658 1.182-1.306-.683v-10.925c0-1.854.267-2.758.326-4.435-.677-1.415-.86-1.68-2.938-1.707-.506.882-.313 2.52 0 3.414 0 1.654.075 3.23.326 4.436 0 1.813.214 2.912.327 4.438-.062 1.81-.4 3.25-1.306 4.096-1.177.308-.128 1.057-1.305 1.366-1.18-.592-2.568-1.396-3.59-2.39-1.27-.404-2.466-.682-4.244-.682-2.164-.028-2.2-.29-2.938-2.05-.662-1.88-.973-3.514-1.306-5.46-.718-1.598-.886-2.687-1.306-4.437-.548-1.043-1.133-1.83-1.957-2.39-.473 1.726-.917 3.17-.98 5.12-.382.8-.462 2.834-.652 3.754-.655-1.01-.912-2.995-1.305-4.435-.62-2.07-1.148-3.414-3.265-2.73-2.197.027-2.26.09-2.286 2.39.946 1.48 1.956 2.918 2.612 4.094v4.778c0 1.973.115 2.544-1.306 3.072-.54-2.048-1.688-4.003-2.938-5.803-.17-1.392-.6-1.024-1.957-1.024-.91 0-1.837-.128-2.286.34 0 1.19.097 2.842 0 3.074-.788.145-1.106-.008-1.633-.683-.57.993-.14 2.393 0 3.755-.415 1.518-.91 2.905-1.633 3.753-.144-.454-.47-.342 0-.342-2.24-.86-3.993-1.39-5.875-2.045-1.134.146-1.957 1.19-2.613 2.046-1.66.56-2.393 1.002-4.244 1.025-1.776 0-2.64.28-4.244.342-1.155.262-2.662.34-4.244.34-.878-.26-2.41-.268-2.94-.682.675-1.005 1.426-1.513 1.96-3.07.894-.637 1.732-1.452 2.612-2.39.86-.613 1.87-1.883 2.61-2.73.51-1.645 1.21-1.93 2.286-2.732 1.94.076 2.32.692 4.244 1.024 1.88.712 2.92.922 3.918-.34 1.56-.66 2.882-1.69 4.57-2.05 1.307-.653 2.144-1.288 3.264-2.048 1.39-.837 2.05-1.696 3.265-2.73.347-1.392 1.33-2.467.98-4.097-1.767-.462-2.89-.277-3.918.683-1.43 1.177-1.7 1.666-3.265 2.73-1.352.385-1.93.98-3.59 1.366-1.365.476-3.01.342-4.57.342-1.428 0-3.322-.142-4.245.34 1.452-.977 3.197-1.993 4.57-2.39 1.318-.884 1.816-1.332 3.592-1.364.823-1.078 1.673-1.105 1.956-2.73.553-2.02-1.204-1.38-2.61-.684-1.327.244-2.79 1.183-3.918 1.707-1.09.38-2.68.663-4.244.683-.412-.615.322-1.106.653-2.05 1.525-.54 1.77-.738 1.96-2.388-1.73.24-2.39.808-3.92 1.024-1.665.436-3.394.63-5.22.683h-4.572c-1.604-.062-2.47-.342-4.243-.342-1.3-.68-1.306-1.002-1.306-3.072 1.024-1.176 2.02-1.022 3.917-1.022 1.46-.718 2.597-1.1 3.59-1.707 1.183-.254 1.99-.76 1.633-1.364h-4.57c-1.76-.745-.08-1.086.98-1.707 1.587 0 3.225.093 4.243.682 1.963-.076 2.647-.697 4.242-2.05 1.25-1.03 1.864-1.687 3.265-2.388 1.006-1.11 1.956-1.723 2.612-2.73 1.342-1.28 2.23-1.988 2.937-3.072.864-.476 1.392-1.09.98-1.707-2.046.25-2.874.993-4.245 2.048-.796.793-1.57 1.503-2.612 2.048-1.47.874-2.385 1.228-4.242 1.365-1.676 0-2.964-.28-4.57-.34-1.774-.186-.142-.6.325-1.365.686-.48 1.22-1.542.653-2.39-1.365-.475-3.008-.34-4.57-.34h-4.57c-1.725-.067-2.455-.463-3.59-1.025-.353-.958.062-.683 1.305-.683 1.574-.062 2.69-.276 4.245-.683 1.535-.438 1.727-.95 1.958-2.732-1.506 0-3.21.02-4.243-.34h-2.94zm-28.274-7.739c-.287-2.52-.836-3.82-.924-6.275 0-1.843.045-.865 1.847-3.38.182 0 1.532-1.282 2.77-2.412 1.726-.864 3.323-2.08 5.078-2.896 1.307-.757 3.89-1.344 5.077-1.93 1.556-.815 2.825-1.752 4.156-3.38.16-2.16.464-3.71.464-6.275 1.836-.885 3.465-1.742 5.077-2.415 2.312-.65 2.812-1.574 5.08-1.93 1.46-.51 3.872-.485 6-.485 2.298 0 3.747 1.633 5.81 2.02 2.447.986 3.59 1.67 5.54 3.38 1.103 1.394 1.788 2.528 3.668 3.578 1.487.763 2.88 1.92 4.616 2.413.015 1.743.386 1.442-.858 1.442-.132 1.786-.56 1.675-2.286 1.707a8.002 8.002 0 0 1-2.938-2.732c.653-1.773.22 1.435 0 2.048-.84.69-1.338 1.426-2.285.683-.53-1.666-.978-2.817-.978-4.78-.25-2.132-.846-.584-1.307.343-.442 1.72-.24 2.343.326 3.753-1.666 0-2.942-.157-4.245-.34-1.21-.302-2.572.068-3.918.682-1.71 1.073-1.177 1.08-.326 2.39 1.51.444 2.593 1.28 3.92 2.048 1.505-.3 3.08-.635 4.57-1.025 1.555-.54 2.98-.196 4.57 0 .788.414 1.825.497 2.284 1.026 0 1.055.084 2.158-.326 2.73-.68.452-1.324 1.7-2.286 2.047-1.44.825-2.95 1.344-4.57 1.707-2 .076-2.73.515-4.243 1.366-.25 1.725-.753 2.212-2.287 2.73-1.526.667-2.74 1.025-4.57 1.025-.908 0-1.835.13-2.285-.34 1.454-1.66 1.89-2.44 2.612-4.097.282-.69.873-1.134.327-1.707-1.934.076-2.44.063-2.612 2.048-.22 1.798-.91 2.1-2.285 2.73.37-1.664.432-2.943.98-4.436-1.156.262-2.662.34-4.245.34-.99.628-1.4.872-.98 2.05-1.312.456-2.91.175-4.57 0-1.386-.076-.62-.705-1.63-1.366-.663-1.3-1.424-1.616-2.94-1.707-.752.94-2.145 1.33-2.938 2.048-1.43.5-2.34.085-3.59-.683-1.63.05-1.412.576-.98 1.707.622.434-.038.907.98 1.024.938.852 1.74 1.025 3.59 1.025 1.415-.37 2.974-.34 4.57-.34 1.612.05 1.307.43 1.307 2.047-1.054.746-2.59.683-4.245.683-1.576-.196-2.784-.604-3.917-1.024-1.53-.113-2.752-.405-3.918 0-.526.583-2.11.838-.326 1.025.7.66 4.478.342 4.747 1.466.89.99.692 2.29-.83 2.29-.925-.483-1.64-.364-2.286 0-1.086.285-2.377.078-4.274.22 2.477.204-1.8-2.69-2.77-3.862z" fill="#fefefe"/> - <path d="M401.687 127.25c-.108 0-1.083.677-1.96 1.364-1.433.768-2.965 2.075-3.916 2.73-.748.6-.744.862-1.63 1.026 1.555-.22 2.248-.617 3.59-1.366 1.695-.204 3.338-.564 4.244-1.365.85-.298-.064-1.66-.327-2.39zm15.025-16.05c.187 0 .57 1.067 1.304 1.706.47 1.31.903 2.235.98 3.755.4-1.667 1.084-3.008 1.305-4.778-.507-.9-.54-1.32-1.958-1.365 0 .922.108.32-1.63.682z" fill="#bcbcbc"/> - <path d="M349.36 417.73c-.494 0 .87-.492 1.326-.663.364-.767.653-1.31 1.326-1.767 1.107.085 1.65.404 2.21 1.104.93.254 1.265.697 2.43.884.434.366 1.02.408 0 .663-.692.367-1.563.443-2.65.443-1.14.082-1.955.333-2.653.663-1.48 0-1.243.05-1.99-1.326z" transform="matrix(1.48 0 0 1.54 -109.52 -520.08)" stroke="#000" stroke-width=".875" fill="#c4c4c2"/> - <path d="M422.576 111.54v.34c0-.92-.02-.45.327 1.366.54 1.145.653 2.373.653 4.097.857-.64 1.572-1.916 1.96-3.073 0-2.695-.366-2.536-2.94-2.73zm12.084 39.25h.327c-.96 0-.42.06 1.306-1.024 1.117-.778 2.03-1.93 3.592-2.39 1.51-1.24 2.673-1.82 4.242-2.388.766-.367 1.44-1.005 2.286-.34-.243 1.683-.522 2.32-1.96 3.07-.742.973-1.912 1.54-2.936 2.048-1.062.488-2.23.513-2.612 1.707-1.776.817-1.994.68-4.244-.683zm6.205 9.902c.583-.46 2.627-2.592 3.59-3.412 1.09-1.503 2.193-2.653 3.265-3.414.952-1.465 2.17-2.446 2.94-3.755.906-1.147 1.573-2.12 2.61-3.412 0 1.492-.136 3.47.325 4.437 0 2.062-.227 2.626-.978 4.096-.74 1.21-1.294 2.01-2.938 2.732-1.484.822-2.373 1.11-3.592 2.047-.93.597-1.897 1.192-2.94 1.706-.932.42-.504.236-2.283-1.024zm-10.119 7.848h.326c-.96 0-.42.058 1.306-1.025 1.393-1.457 2.503-1.963 4.245-2.73 1.325-.108 2.928-.452 3.917-1.025.79-.146 1.34-.648 1.958 0 1.025 1.45 1.307 1.858-.327 2.73-.78.694-2.158 1.392-3.262 1.708-.815.702-2.43.746-3.918 1.024-1.334 0-2.075.157-2.612-.683l2.612.682c-1.334 0-2.075.157-4.244-.683zm14.034 0v-.342c0 .953-.04.448.653-1.366 1.224-1.91 1.684-2.963 3.265-3.414.74-.936 2.023-1.178 3.59-1.707.59 1.027.137 2.223 0 3.415-.425 1.275-1.59 2.174-2.284 3.073-1.018.723-1.433 1.418-2.938 1.706-1.246 0-.585-.032-2.286-1.365z" fill="#bcbcbc"/> - <path d="M412.788 124.16c0 .942-.73 1.706-1.632 1.706-.9 0-1.632-.764-1.632-1.707 0-.944.73-1.708 1.632-1.708.902 0 1.632.764 1.632 1.707z"/> - </g> - <g stroke-opacity=".996" fill-rule="evenodd" fill-opacity=".996" stroke="#002b0d" stroke-width="1pt" fill="#005120"> - <path d="M351.79 479.6h.884c-2.77 0-1.115-.185 3.535 3.535 1.947-1.623 1.924-1.842 3.535.884.93 1.55 1.203-.16 2.65-1.768.7 3.21 1.146 6.578 3.537 3.535 2.73 0 5.59-.227 7.07.884 1.79 3.326 1.205-.563 2.653.885 3.892.467 3.818-3.338 8.057-4.322 2.635 3.293 3.79.76 7.072-.883 2.438.682 4.736 4.38 5.2.785 1.996-3.256 2.17-2.98 3.536 0 1.94 1.748 2.76-.874 4.42-1.767 2.958 1.73 6.258 1.97 10.606.884.736 2.944 2.592 1.667 4.42.883 3.91 1.643 5.273 2.146 9.722 0 2.204-2.604.956.073 2.65 1.768 3.297-1.023 2.387-1.24 6.19-.884 3.82 0 4.13-.093 5.302-2.652 1.92 1.92 2.614 3.304 5.303.884 4.12.12 2.846.52 5.304-.884 1.818 4.026 2.245 1.117 4.42 2.65-1.433 3.632-3.633 5.335-6.188 7.072-1.7 2.816-2.764 5.857-6.188 7.072-2.498 2.548-5.16 4.025-7.955 6.187-3.832.957-8.05.883-12.375.883h-37.12c-2.64 1.32-6.96 1.948-10.608 2.65-4.075 0-8.694.05-11.49-.883-1.895-1.894-5.22-4.01-7.07-6.187-1.875-1.51-1.93-4.46-3.537-6.187-1.48-2.53-1.936-6.486-3.535-8.84V479.6z" transform="matrix(1.48 0 0 1.54 -103 -521.43)"/> - <path d="M437.52 487.56v.884c0-2.47.11-1.158-1.768 3.535-.38 1.14-1.212 1.407-2.652 1.767m-3.53-2.656h.884c-3.273 3.09-5.476 4.515-6.188 7.955l6.188-7.955c-3.273 3.09-5.476 4.515-6.188 7.955m-7.076-12.365c0 .08-.124 3.153-.884 4.42m-2.646 1.76v.884-.884zm-7.07-5.3h.884-.884c.294 0 .59 0 0 0zm-49.5 0c.422 0 2.16 2.806 4.42 4.42-.563 2.585-1.427 5.577 0 7.954m2.65-7.074c.422 0 2.16 2.807 4.42 4.42l-4.42-4.42c.422 0 2.16 2.807 4.42 4.42v.884c0-2.73-.227-5.59.883-7.072.983 1.663 2.224 4.337 2.652 1.768 4.978-.178 7.38-1.576 10.607-2.65 0 1.3-.21.674.884 1.766m60.104-3.536h.884c-1.667 1.39-2.946 4.222-4.42 6.187m-32.704-8.837h7.07" transform="matrix(1.48 0 0 1.54 -103 -521.43)"/> - </g> - <path d="M413.61 239.342c-15.702 0-20.906 16.41-36.61 16.41-.302 0-.588-.024-.883-.035v.993c-.06 11.375.835 21.97 2.466 31.864 14.485-1.058 19.866-16.41 35.028-16.41 15.704 0 20.945 16.446 36.65 16.446s20.943-16.447 36.646-16.447 20.944 16.447 36.648 16.447 20.944-16.447 36.647-16.447c15.123 0 20.52 15.244 34.92 16.373 1.724-10.158 2.635-21.07 2.574-32.784v-.037c-.294.012-.58.037-.883.037-15.702 0-20.906-16.41-36.61-16.41s-20.944 16.41-36.647 16.41-20.944-16.41-36.648-16.41-20.944 16.41-36.647 16.41-20.944-16.41-36.647-16.41zm0 64.064c-12.214 0-18.09 9.902-27.485 14.313a151.431 151.431 0 0 0 11.664 24.836c4.46-3.374 9.202-6.292 15.822-6.292 15.695-.012 20.934 16.4 36.64 16.4 15.705 0 20.945-16.41 36.65-16.41 15.702 0 20.943 16.41 36.646 16.41s20.944-16.41 36.648-16.41c6.472 0 11.15 2.794 15.527 6.07a152.782 152.782 0 0 0 11.7-24.725c-9.244-4.47-15.123-14.203-27.227-14.203-15.703 0-20.944 16.41-36.647 16.41s-20.945-16.41-36.65-16.41c-15.702 0-20.943 16.41-36.646 16.41s-20.944-16.41-36.648-16.41zm73.284 64.052c-15.703 0-20.944 16.448-36.647 16.448-14.85 0-20.347-14.703-34.182-16.3 18.49 20.597 39.458 33.068 53.757 39.92 4.836-3.752 9.844 4.564 17.072 4.564 7.178 0 12.16-8.36 16.963-4.636 14.14-6.885 34.853-19.375 53.242-39.775-13.384 1.956-18.932 16.225-33.558 16.225-15.703 0-20.944-16.447-36.648-16.447z" fill-rule="evenodd" fill="#fff"/> - <g transform="matrix(1.18 0 0 1.18 -406.92 -18.22)"> - <path d="M332.54 541.35c1.744-.58 10.173-3.197 10.464-2.907.29.29 16.278 15.697 16.278 15.697l-13.37 2.616-13.372-15.406z" stroke-opacity=".996" transform="matrix(1.25 0 0 1.3 259.35 -430)" stroke="#512007" stroke-width=".475" fill="none"/> - <path d="M413.64 471.01c.29-4.65 8.72-31.103 8.72-31.103m-5.82 31.413c0-.29 6.686-31.127 6.686-31.127m-4.396 31.177c.29-1.744 5.558-31.175 5.558-31.175M413.93 467.23c1.453-.872 5.813-2.035 5.813-2.035m-3.783-2.615c1.453 0 4.36-1.163 4.36-1.163m-3.49-2.327c0-.29 4.36-1.163 4.36-1.163m-3.78-3.197l4.65-.872m-2.61-2.908c0 .29 3.197.29 3.197.29m-2.327-3.78c.58 0 3.197.58 3.197.58" stroke-opacity=".996" transform="matrix(1.06 0 0 1.03 276.8 -177.96)" stroke="#512007" stroke-width=".594" fill="none"/> - <path d="M413.64 471.01c.29-4.65 8.72-31.103 8.72-31.103m-5.82 30.223c0-.29 6.686-29.94 6.686-29.94m-3.776 27.62c.29-1.744 4.94-27.614 4.94-27.614m-10.46 27.034c1.453-.872 5.813-2.035 5.813-2.035m-3.783-2.615c1.453 0 4.36-1.163 4.36-1.163m-3.49-2.327c0-.29 4.36-1.163 4.36-1.163m-3.78-3.197l4.65-.872m-2.61-2.908c0 .29 3.197.29 3.197.29m-2.327-3.78c.58 0 3.197.58 3.197.58" stroke-opacity=".996" transform="matrix(-1.25 0 0 1.76 1290.4 -502.06)" stroke="#512007" stroke-width=".41" fill="none"/> - <path d="M413.64 471.01c.29-4.65 8.72-31.103 8.72-31.103m-5.82 30.223c0-.29 6.686-29.94 6.686-29.94m-3.776 27.62c.29-1.744 4.94-27.614 4.94-27.614m-10.46 27.034c1.453-.872 5.813-2.035 5.813-2.035m-3.783-2.615c1.453 0 4.36-1.163 4.36-1.163m-3.49-2.327c0-.29 4.36-1.163 4.36-1.163m-3.78-3.197l4.65-.872m-2.61-2.908c0 .29 3.197.29 3.197.29m-2.327-3.78c.58 0 3.197.58 3.197.58" stroke-opacity=".996" transform="matrix(-1.25 0 0 1.3 1321.3 -301.92)" stroke="#512007" stroke-width=".475" fill="none"/> - <path d="M395.32 572.16c0-.29.872-72.96.872-72.96s2.616-.29 2.616 0-.29 72.67-.58 72.96-3.2.58-2.908 0zm28.49-69.76c0 .582-.582 61.333-.582 61.333l-2.035 2.326.582-63.66h2.035z" stroke-opacity=".996" fill-rule="evenodd" transform="matrix(1.25 0 0 1.3 259.35 -430)" stroke="#512007" stroke-width=".475" fill="#dd8b59"/> - <path d="M363.06 560.24s2.907 29.94 36.335 29.068 42.73-30.23 42.73-30.23-14.244-.582-14.535-.582c-.29 0-11.627 13.953-26.16 13.662s-19.185-3.78-22.383-6.685c-3.197-2.907-6.104-7.267-6.104-7.267l-16.86-6.686.873 6.395 6.104 2.325zm90.24-3.11c-.29-.872-1.007-3.866-1.007-3.866v-3.488l1.61-3.532s-25.29 3.623-25.29 3.914c0-.335-.156 6.885-.156 6.885l24.843.087z" stroke-opacity=".996" fill-rule="evenodd" transform="matrix(1.25 0 0 1.3 259.35 -430)" stroke="#512007" stroke-width=".475" fill="#dd8b59"/> - <path d="M448.52 549.78l-.58 6.104h4.068l-.29-6.104h-3.198zm-4.36.29l-.29 6.394 2.615-.29.29-6.104h-2.615zm-4.36 6.39v-4.94l2.616-.873.29 4.94-2.906.873zm-4.95-.28l.582-4.36 2.906.29.29 4.65-3.778-.58zm-5.52 0l.29-3.78 2.908-.29v4.36l-3.198-.29zm-67.44 3.77c.872 0 7.558 1.453 7.558 1.453l6.976 9.302" stroke-opacity=".996" transform="matrix(1.25 0 0 1.3 259.35 -430)" stroke="#512007" stroke-width=".475" fill="none"/> - <path d="M366.84 561.12c.29.29 6.104 19.766 34.01 19.766s34.59-22.09 34.59-22.09" stroke-opacity=".996" transform="matrix(1.25 0 0 1.3 259.35 -430)" stroke="#512007" stroke-width=".475" fill="none"/> - <path d="M439.8 559.37s-13.37 29.068-38.95 27.033c-25.58-2.034-29.65-11.627-31.685-16.568-2.035-4.942-3.197-9.01-3.197-9.01" stroke-opacity=".996" transform="matrix(1.25 0 0 1.3 259.35 -430)" stroke="#512007" stroke-width=".475" fill="none"/> - <path d="M373.23 558.21c.29-1.745.29-54.357.29-54.357l-1.744-.29-.29 53.775 1.744.872zm-41.57-17.15l22.09 10.755-.58 1.453s-21.22-9.883-21.22-10.174c0-.29.29-1.453-.29-2.034z" stroke-opacity=".996" fill-rule="evenodd" transform="matrix(1.25 0 0 1.3 259.35 -430)" stroke="#512007" stroke-width=".475" fill="#dd8b59"/> - <path d="M341.84 537.86c0 .872 3.198 18.603 3.198 18.603s2.035.29 2.035 0-3.49-18.312-3.49-18.312l-1.743-.29zm20.34.58c1.163 0 20.93-3.197 20.93-3.197l-.292 3.197-19.475 2.035-1.163-2.035z" stroke-opacity=".996" fill-rule="evenodd" transform="matrix(1.25 0 0 1.3 259.35 -430)" stroke="#512007" stroke-width=".475" fill="#dd8b59"/> - <path d="M365.09 514.32c.58 0 6.976 3.198 9.592 2.326s.872-2.907 1.453-2.907c.582 0 2.616 1.452 3.78.29 1.162-1.163 2.034-4.65 1.453-4.36-.582.29-15.988 5.813-16.278 4.65z" stroke-opacity=".996" fill-rule="evenodd" transform="matrix(1.25 0 0 1.3 259.35 -430)" stroke="#512007" stroke-width=".475" fill="#fecf3e"/> - <path d="M362.48 521.58c1.163.29 23.836-6.104 23.836-6.104s0 2.035-.29 2.035-23.546 6.105-23.546 6.105v-2.035z" stroke-opacity=".996" fill-rule="evenodd" transform="matrix(1.25 0 0 1.3 259.35 -430)" stroke="#512007" stroke-width=".475" fill="#dd8b59"/> - <path d="M415.09 512.57s1.454 3.488 2.907 2.907 2.907-1.744 2.907-1.744 1.163 2.907 3.197 2.325c2.036-.58 3.2-3.78 3.2-3.78s2.033.583 2.905.292c.873-.29 2.035-4.94 2.035-4.94l-17.15 4.94zm-1.75 28.2c-.29.58 1.454 2.035 2.907 2.035s2.035-2.035 2.325-1.454c.29.583.29 3.2 4.07 2.327s3.78-3.488 3.78-3.488-1.164.87 1.452 1.16c2.616.292 5.232-3.778 4.942-3.778-.29 0-18.894 3.49-19.476 3.198z" stroke-opacity=".996" fill-rule="evenodd" transform="matrix(1.25 0 0 1.3 259.35 -430)" stroke="#512007" stroke-width=".475" fill="#fecf3e"/> - <path d="M363.35 513.15c-.29 1.163.29 2.617.29 2.617l18.894-6.395s.872-1.454 0-1.454-19.475 5.814-19.184 5.232zm25-4.07c.58 0 19.475-6.104 19.475-6.104s.29 2.616 0 2.616-17.73 5.232-17.73 5.232l-1.745-1.744z" stroke-opacity=".996" fill-rule="evenodd" transform="matrix(1.25 0 0 1.3 259.35 -430)" stroke="#512007" stroke-width=".475" fill="#dd8b59"/> - <path d="M413.34 521.88s-2.907 3.197-2.035 7.557c.872 4.36 2.035 8.14 2.326 8.14s3.49-5.814 6.977-6.105 9.883 3.198 9.883 3.198-.872-6.977-.58-10.174c.29-3.198 5.23-8.72 5.23-8.72l-21.8 6.104z" stroke-opacity=".996" fill-rule="evenodd" transform="matrix(1.25 0 0 1.3 259.35 -430)" stroke="#512007" stroke-width=".475" fill="#fecf3e"/> - <path d="M386.89 516.64s-.58 2.616-.29 2.616 24.707-6.395 24.707-6.395v-1.743l-24.417 5.523z" stroke-opacity=".996" fill-rule="evenodd" transform="matrix(1.25 0 0 1.3 259.35 -430)" stroke="#512007" stroke-width=".475" fill="#dd8b59"/> - <path d="M355.5 551.82s-5.813-.872-5.523.58c.29 1.454 2.907 2.908 3.198 3.78.29.872-.872 4.07.872 3.78 1.744-.292 3.488-1.455 3.488-2.327s-.29-4.94-.29-4.94l-1.745-.873z" stroke-opacity=".996" fill-rule="evenodd" fill-opacity=".996" transform="matrix(1.25 0 0 1.3 259.35 -430)" stroke="#512007" stroke-width=".475" fill="#b6b6b4"/> - <path d="M387.76 537.28v2.034l20.93-2.906-.582-1.454-20.348 2.326z" stroke-opacity=".996" fill-rule="evenodd" transform="matrix(1.25 0 0 1.3 259.35 -430)" stroke="#512007" stroke-width=".475" fill="#dd8b59"/> - <path d="M363.06 540.77c.29 0 0 2.616 2.325 2.035 2.326-.582 2.907-2.035 2.907-2.035s.58 3.197 3.78 2.907c3.196-.29 4.94-3.78 4.94-3.78s.29 2.617 2.326 1.745 2.616-2.907 2.616-2.907l-18.313 2.616-.58-.58zm0-17.15s-2.616.872-1.744 6.104 2.907 8.14 3.197 8.14c.29 0 2.616-4.942 6.104-5.814 3.49-.873 9.593 2.616 9.593 2.616s-.582-4.65.29-9.01c.873-4.362 3.78-7.56 3.78-7.56s-20.348 5.524-21.22 5.524z" stroke-opacity=".996" fill-rule="evenodd" transform="matrix(1.25 0 0 1.3 259.35 -430)" stroke="#512007" stroke-width=".475" fill="#fecf3e"/> - <path d="M411.89 538.73l.29 1.744s20.93-2.616 20.93-2.907c0-.29 0-2.034-.29-2.034-.292 0-20.64 3.488-20.93 3.197zm-.29-18.6l.29 2.034 24.708-6.685s.582-1.745.29-1.745-24.707 7.267-25.288 6.395z" stroke-opacity=".996" fill-rule="evenodd" transform="matrix(1.25 0 0 1.3 259.35 -430)" stroke="#512007" stroke-width=".475" fill="#dd8b59"/> - <path d="M414.22 510.83s-.29 1.744 0 1.744 18.313-4.36 18.313-4.65c0-.29 1.744-2.036.29-1.745-1.453.29-18.02 5.522-18.603 4.65zm38.66 33.72l-18.03-28.49m-2.32 19.77c.29-.872 1.163-18.312 1.163-18.312" stroke-opacity=".996" transform="matrix(1.25 0 0 1.3 259.35 -430)" stroke="#512007" stroke-width=".475" fill="none"/> - <path d="M388.93 509.96c1.163.29 3.198 3.197 4.36 2.616 1.163-.58 2.907-2.325 2.907-2.325s-.29 3.49 2.035 2.907c2.325-.58 2.616-2.906 2.616-2.906s1.744.873 3.197 0c1.454-.87 2.907-5.232 2.326-5.232s-16.858 5.233-17.44 4.942zm-.58 8.43c0 .58-2.907 5.232-2.035 9.592s2.616 8.43 2.907 8.43 4.65-4.65 8.43-5.523c3.778-.873 9.3 2.906 9.01 2.906-.29 0-1.453-4.36-1.453-7.558 0-3.198 4.36-13.08 4.36-13.08l-21.22 5.232zm0 20.93c0 .29.872 2.326 2.907 2.326 2.034 0 2.325-2.035 2.325-2.035s-.29 3.49 2.907 3.2c3.196-.292 4.36-3.49 4.36-3.49s.29 1.745 2.906.873c2.616-.873 6.104-3.78 5.813-3.78-.29 0-20.93 3.78-21.22 2.907z" stroke-opacity=".996" fill-rule="evenodd" transform="matrix(1.25 0 0 1.3 259.35 -430)" stroke="#512007" stroke-width=".475" fill="#fecf3e"/> - <use xlink:href="#k" transform="translate(-6.56 7.28)" height="496.063" width="992.126"/> - <use xlink:href="#k" transform="translate(6.56 3.76)" height="496.063" width="992.126"/> - <use xlink:href="#k" transform="translate(0 11.03)" height="496.063" width="992.126"/> - <path id="k" d="M408.98 476.96a1.89 1.89 0 1 1-3.78 0 1.89 1.89 0 0 1 3.78 0z" stroke-opacity=".996" fill-rule="evenodd" fill-opacity=".996" transform="matrix(.04 -1.07 1.02 .04 251.6 667.92)" stroke="#512007" stroke-width=".581" fill="#be0f17"/> - <path d="M398.23 500.07c0-.29 9.01 3.78 9.01 4.07 0 .29 31.975 42.73 32.266 42.73m-15.986-42.73l8.14 3.49 2.615 6.393M372.94 503.56c-.29 0 9.01 6.976 9.01 6.976l1.164 5.814M341.26 546c4.07-1.744 32.265-26.452 32.265-26.452M333.7 541.35c3.49-2.907 31.684-26.742 31.684-26.742m21.216 4.072l29.94 49.706m-3.53-29.156s3.532 11.71 7.02 13.455 7.557 4.65 7.557 4.65" stroke-opacity=".996" transform="matrix(1.25 0 0 1.3 259.35 -430)" stroke="#512007" stroke-width=".475" fill="none"/> - <path d="M412.61 539.48s2.48 13.793 5.97 16.41 6.976 5.522 6.976 5.522" stroke-opacity=".996" transform="matrix(1.25 0 0 1.3 259.35 -430)" stroke="#512007" stroke-width=".475" fill="none"/> - <path d="M390.96 439.03s3.488 19.185 10.465 23.545c6.976 4.36 12.79 8.14 12.79 8.14" stroke-opacity=".996" transform="matrix(1.25 0 0 1.3 256.26 -299.49)" stroke="#512007" stroke-width=".475" fill="none"/> - <path d="M390.67 438.74s7.557 15.116 13.952 19.767c6.395 4.65 15.115 9.01 15.115 9.01M366.26 439.9c2.034 3.488 1.744 10.174 4.07 12.5 2.324 2.325 5.813 7.557 5.813 7.557" stroke-opacity=".996" transform="matrix(1.25 0 0 1.3 256.26 -299.49)" stroke="#512007" stroke-width=".475" fill="none"/> - <path d="M366.84 440.19c1.163 1.744 4.406 10.428 6.395 13.08 1.454 2.326 16.278 17.15 16.278 17.15" stroke-opacity=".996" transform="matrix(1.25 0 0 1.3 256.26 -299.49)" stroke="#512007" stroke-width=".475" fill="none"/> - <path d="M384.57 471.15a2.18 2.18 0 1 1-4.36 0 2.18 2.18 0 0 1 4.36 0zm10.75 4.65a1.89 1.89 0 1 1-3.78 0 1.89 1.89 0 0 1 3.78 0zm13.66 1.16a1.89 1.89 0 1 1-3.78 0 1.89 1.89 0 0 1 3.78 0zm11.92-4.5c0 .963-.716 1.744-1.6 1.744-.882 0-1.597-.78-1.597-1.744 0-.963.715-1.744 1.598-1.744.884 0 1.6.78 1.6 1.744zm9.59-5.67c0 .883-.846 1.6-1.89 1.6s-1.89-.717-1.89-1.6c0-.883.847-1.6 1.89-1.6s1.89.717 1.89 1.6z" stroke-opacity=".996" fill-rule="evenodd" transform="matrix(1.25 0 0 1.3 256.26 -299.49)" stroke="#512007" stroke-width=".475"/> - <path d="M374.1 404.44c-.872.582-15.406 4.07-13.37 3.78 2.033-.29 13.66 2.906 13.37 2.034s0-5.232 0-5.814zm24.71-4.36c-.582 0-9.012 3.198-8.72 3.198s9.592 2.616 9.3 2.034c-.29-.58-.29-4.36-.58-5.232zm25.29 2.91c-.582.29-10.465 2.616-8.72 2.907s8.43 2.616 8.43 2.035c0-.582 0-4.65.29-4.942z" stroke-opacity=".996" fill-rule="evenodd" fill-opacity=".996" transform="matrix(1.25 0 0 1.3 256.26 -299.49)" stroke="#512007" stroke-width=".475" fill="red"/> - <path d="M413.64 471.01c.29-4.65 8.72-31.103 8.72-31.103m-5.82 30.223c0-.29 6.686-29.94 6.686-29.94m-3.776 27.62c.29-1.744 4.94-27.614 4.94-27.614m-10.46 27.034c1.453-.872 5.813-2.035 5.813-2.035m-3.783-2.615c1.453 0 4.36-1.163 4.36-1.163m-3.49-2.327c0-.29 4.36-1.163 4.36-1.163m-3.78-3.197l4.65-.872m-2.61-2.908c0 .29 3.197.29 3.197.29m-2.327-3.78c.58 0 3.197.58 3.197.58" stroke-opacity=".996" transform="matrix(1.25 0 0 1.3 256.26 -299.49)" stroke="#512007" stroke-width=".475" fill="none"/> - <path d="M413.64 471.01c.29-4.65 8.72-31.103 8.72-31.103m-5.82 31.413c0-.29 6.686-31.127 6.686-31.127m-4.396 31.177c.29-1.744 5.558-31.175 5.558-31.175M413.93 467.23c1.453-.872 5.813-2.035 5.813-2.035m-3.783-2.615c1.453 0 4.36-1.163 4.36-1.163m-3.49-2.327c0-.29 4.36-1.163 4.36-1.163m-3.78-3.197l4.65-.872m-2.61-2.908c0 .29 3.197.29 3.197.29m-2.327-3.78c.58 0 3.197.58 3.197.58" stroke-opacity=".996" transform="matrix(1.25 0 0 1.36 225.31 -323.36)" stroke="#512007" stroke-width=".475" fill="none"/> - <path d="M413.64 471.01c.29-4.65 8.72-31.103 8.72-31.103m-5.82 30.223c0-.29 6.686-29.94 6.686-29.94m-3.776 27.62c.29-1.744 4.94-27.614 4.94-27.614m-10.46 27.034c1.453-.872 5.813-2.035 5.813-2.035m-3.783-2.615c1.453 0 4.36-1.163 4.36-1.163m-3.49-2.327c0-.29 4.36-1.163 4.36-1.163m-3.78-3.197l4.65-.872m-2.61-2.908c0 .29 3.197.29 3.197.29m-2.327-3.78c.58 0 3.197.58 3.197.58" stroke-opacity=".996" transform="matrix(-1.25 0 0 1.32 1259.2 -307.28)" stroke="#512007" stroke-width=".474" fill="none"/> - <path d="M426.42 558.5l27.614.582.29-2.035-28.486-.29.582 1.743zm1.17-7.27c3.198 0 27.324-4.65 27.324-4.65s.872-2.907 0-2.907-27.324 5.523-27.324 5.523v2.034z" stroke-opacity=".996" fill-rule="evenodd" transform="matrix(1.25 0 0 1.3 259.35 -430)" stroke="#512007" stroke-width=".475" fill="#dd8b59"/> - <use xlink:href="#k" transform="translate(0 5.52)" height="496.063" width="992.126"/> - </g> -</svg> diff --git a/img/flags/4x3/fm.svg b/img/flags/4x3/fm.svg deleted file mode 100644 index e9d1f66..0000000 --- a/img/flags/4x3/fm.svg +++ /dev/null @@ -1,11 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" height="480" width="640" viewBox="0 0 640 480"> - <defs> - <clipPath id="a"> - <path fill-opacity=".67" d="M-81.333 0h682.67v512h-682.67z"/> - </clipPath> - </defs> - <g fill-rule="evenodd" clip-path="url(#a)" transform="translate(76.25) scale(.94)" stroke-width="1pt"> - <path fill="#6797d6" d="M-252 0H772v512H-252z"/> - <path fill="#fff" d="M259.787 122.985l-32.44 22.214 12.433-35.9-32.475-22.177 40.122.038 12.366-35.92 12.366 35.92 40.12-.026L279.8 109.3l12.43 35.905m-32.443 244.847l-32.44-22.214 12.433 35.9-32.475 22.176 40.122-.038 12.366 35.92 12.366-35.92 40.12.027-32.48-22.166 12.43-35.905m-188.384-92.465l-24.53 30.73 1.395-37.967-37.54-11.713 38.38-11.695 1.324-37.966 22.328 30.735 38.36-11.755-24.58 30.694 22.383 30.7m274.28-11.763l24.53 30.73-1.395-37.967 37.54-11.713-38.38-11.695-1.324-37.966-22.328 30.735-38.36-11.755 24.58 30.694-22.383 30.7"/> - </g> -</svg> diff --git a/img/flags/4x3/fo.svg b/img/flags/4x3/fo.svg deleted file mode 100644 index d22c0cb..0000000 --- a/img/flags/4x3/fo.svg +++ /dev/null @@ -1,12 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" height="480" width="640" viewBox="0 0 640 480"> - <defs> - <clipPath id="a"> - <path fill-opacity=".67" d="M-78.015 32h640v480h-640z"/> - </clipPath> - </defs> - <g fill-rule="evenodd" clip-path="url(#a)" transform="translate(78.02 -32)" stroke-width="0"> - <path fill="#fff" d="M-78.015 32h663.91v480h-663.91z"/> - <path d="M-76.033 218.67h185.9V32h106.23v186.67h371.79v106.67h-371.79v186.67h-106.23V325.34h-185.9V218.67z" fill="#003897"/> - <path d="M-76.033 245.33h212.45V32h53.113v213.33h398.35v53.333H189.53v213.33h-53.113v-213.33h-212.45V245.33z" fill="#d72828"/> - </g> -</svg> diff --git a/img/flags/4x3/fr.svg b/img/flags/4x3/fr.svg deleted file mode 100644 index b17c8ad..0000000 --- a/img/flags/4x3/fr.svg +++ /dev/null @@ -1,7 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" height="480" width="640" viewBox="0 0 640 480"> - <g fill-rule="evenodd" stroke-width="1pt"> - <path fill="#fff" d="M0 0h640v480H0z"/> - <path fill="#00267f" d="M0 0h213.337v480H0z"/> - <path fill="#f31830" d="M426.662 0H640v480H426.662z"/> - </g> -</svg> diff --git a/img/flags/4x3/ga.svg b/img/flags/4x3/ga.svg deleted file mode 100644 index 1c7fdd3..0000000 --- a/img/flags/4x3/ga.svg +++ /dev/null @@ -1,7 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" height="480" width="640" viewBox="0 0 640 480"> - <g fill-rule="evenodd"> - <path fill="#ffe700" d="M640 480H0V0h640z"/> - <path fill="#36a100" d="M640 160.003H0V0h640z"/> - <path fill="#006dbc" d="M640 480H0V319.997h640z"/> - </g> -</svg> diff --git a/img/flags/4x3/gb-eng.svg b/img/flags/4x3/gb-eng.svg deleted file mode 100644 index 7fa48fa..0000000 --- a/img/flags/4x3/gb-eng.svg +++ /dev/null @@ -1,5 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" height="480" width="640" viewBox="0 0 640 480"> - <path fill="#fff" d="M0 0h640v480H0z"/> - <path fill="#ce1124" d="M281.6 0h76.8v480h-76.8z"/> - <path fill="#ce1124" d="M0 201.6h640v76.8H0z"/> -</svg> diff --git a/img/flags/4x3/gb-nir.svg b/img/flags/4x3/gb-nir.svg deleted file mode 100644 index 8c26551..0000000 --- a/img/flags/4x3/gb-nir.svg +++ /dev/null @@ -1,158 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" height="480" width="640" viewBox="0 0 640 480"> - <rect height="480" width="640" rx="0" ry="0" fill="#fff" fill-rule="evenodd"/> - <rect id="a" y="192" ry="0" rx="0" height="96" width="640" fill="#c00" fill-rule="evenodd"/> - <use xlink:href="#a" height="300" width="600" transform="matrix(0 .75 -1 0 560 0)"/> - <path d="M355.205 146.61c3.08-4.82 1.239-7.933-3.42-8.895 0 0-14.867 4.766-30.924 5.289-16.056.523-35.132-4.038-35.132-4.038-3.421 2.147-2.586 7.241-.89 10.421 0 0 16.809 5.584 35.944 5.036 12.153-.348 23.67-3.45 30.13-5.505 3.712-1.18 4.294-2.254 4.292-2.308z" fill="#ebeae3" fill-rule="evenodd" stroke="#000" stroke-width=".522"/> - <path d="M320 357.552l-30.857-64.106-70.946 5.33L258.285 240l-40.088-58.776 70.946 5.33L320 122.448l30.857 64.106 70.946-5.33L381.715 240l40.088 58.776-70.946-5.33z" fill="#fff" stroke="#161111" stroke-width="1.6"/> - <path d="M319.54 122.228c38.763 6.39 37.378 8.2 37.378 8.2l10.117-30.245s1.065-5.963-1.704-9.584c-2.769-3.62-10.543-1.597-10.543-1.597s-1.065-4.899-4.472-6.07c-3.408-1.172-16.08 4.579-20.021 5.857-3.94 1.278-5.964 2.556-11.501 2.45-5.538-.107-15.442-5.006-17.252-5.965-1.81-.958-4.473-1.916-6.922-1.81-2.45.107-5.005.746-6.283 2.45-1.278 1.703-1.278 3.833-1.278 3.833s-2.024-1.278-5.218-1.278c-3.195 0-5.006.426-6.497 2.13-1.49 1.704-3.407 6.496-3.407 6.496l3.62 8.2.213 11.288 7.561 11.928 36.208-6.283z" fill="#b02320" fill-rule="evenodd" stroke="#000" stroke-width="1.304"/> - <path d="M355.674 139.315s1.952 2.327 1.877 3.153c-.075.825-.901 1.576-.901 1.576s.6.6.45 1.502c-.15.9-1.35.975-1.35.975s.224.826-.526 1.202c-.751.375-3.829 1.05-3.829 1.05s-15.014-4.278-31.078-4.278c-16.065 0-34.983 5.18-34.983 5.18s-1.951-.676-2.026-1.952c-.075-1.277.225-2.177.225-2.177s-1.069.11-1.351-.826c-.396-1.31.15-2.327.15-2.327s-.745.24.075-1.502c.6-1.276 1.501-1.726 1.501-1.726s16.815-6.006 35.958-6.08c19.143-.076 35.808 6.08 35.808 6.23z" fill="#ebeae3" fill-rule="evenodd" stroke="#000" stroke-width=".522"/> - <path d="M276.229 101.495s-.641-2.18.769-4.102c1.41-1.923 3.974-1.795 4.744-1.41.769.384.64 1.282 1.666 1.538 1.026.256 1.795-.513 1.795-.513" fill="none" stroke="#000" stroke-width="1.147"/> - <path d="M369.824 106.598l-5.822 12.046-2.289.402s-1.396-.84-5.38-.562c-2.851.2-3.694.923-3.694.923l5.18-12.006s.403 2.58 1.003 4.096c.763 1.927 3.654 3.734 3.654 3.734s.4-2.305-.361-5.1c-.843-3.091-2.81-7.267-2.81-7.267l10.52 3.734z" fill="#fc0" fill-opacity=".941" fill-rule="evenodd" stroke="#000" stroke-width="1.2"/> - <path fill="#121116" stroke="#121116" stroke-width="1.17" stroke-linejoin="round" d="M316.492 69.161h6.516v27.694h-6.516z"/> - <path d="M276.56 120.235l4.185 8.955s17.81-6.943 38.833-6.813c31.534.194 40.489 6.52 40.489 6.52l4.671-11.095-3.503 2.044-3.602 2.239-4.087 1.557-4.964-.39-4.38-3.211-2.238-4.672-3.699 3.407-6.52 1.46-6.424-1.655-5.645-7.105s-4.205 7.898-9.539 8.37c-7.688.681-12.165-3.698-12.165-3.698s-2.859 6.423-7.592 7.591c-7.494 1.85-13.723-3.504-13.82-3.504z" fill="#f6ca1f" fill-rule="evenodd" stroke="#000" stroke-width=".991"/> - <g stroke-width="2.243"> - <path d="M348.447 65.647c0 1.881-1.502 3.407-3.358 3.411-1.856.004-3.365-1.516-3.372-3.398-.007-1.881 1.49-3.413 3.345-3.424 1.856-.012 3.37 1.503 3.385 3.384" fill="#eee" stroke="#1e1e1e" stroke-linejoin="round" stroke-width="1.16983665"/> - <path d="M343.515 67.399s2.72-.047 2.996-1.153c.277-1.106-.184-2.535-.184-2.535s1.29 1.429.922 2.535c-.37 1.106-.73 1.392-1.66 1.614-.63.15-1.567-.093-2.074-.461z" fill="#a3afb8" fill-rule="evenodd"/> - <path d="M340.272 69.469c0 1.881-1.503 3.407-3.359 3.411-1.856.004-3.365-1.516-3.372-3.398-.007-1.881 1.49-3.414 3.345-3.425 1.856-.01 3.37 1.503 3.385 3.385" fill="#eee" stroke="#1e1e1e" stroke-linejoin="round" stroke-width="1.16983665"/> - <path d="M335.339 71.22s2.72-.046 2.996-1.152c.277-1.107-.184-2.536-.184-2.536s1.29 1.43.922 2.536c-.369 1.106-.73 1.392-1.66 1.613-.629.15-1.567-.092-2.074-.46z" fill="#a3afb8" fill-rule="evenodd"/> - <path d="M357.94 63.406c0 1.88-1.503 3.407-3.36 3.41-1.855.005-3.364-1.516-3.371-3.397-.008-1.881 1.49-3.414 3.345-3.425 1.856-.01 3.37 1.503 3.385 3.385" fill="#eee" stroke="#1e1e1e" stroke-linejoin="round" stroke-width="1.16983665"/> - <path d="M353.007 65.157s2.72-.046 2.996-1.152c.277-1.107-.184-2.536-.184-2.536s1.29 1.43.922 2.536c-.37 1.106-.73 1.392-1.66 1.613-.63.15-1.567-.092-2.074-.46z" fill="#a3afb8" fill-rule="evenodd"/> - <path d="M368.631 65.557c0 1.881-1.502 3.408-3.358 3.411-1.856.004-3.365-1.516-3.372-3.398-.008-1.88 1.489-3.413 3.345-3.424 1.856-.011 3.37 1.503 3.385 3.384" fill="#eee" stroke="#1e1e1e" stroke-linejoin="round" stroke-width="1.16983665"/> - <path d="M363.698 67.309s2.72-.046 2.997-1.153c.277-1.106-.184-2.535-.184-2.535s1.29 1.429.922 2.535c-.37 1.107-.731 1.393-1.66 1.614-.63.15-1.567-.093-2.075-.461z" fill="#a3afb8" fill-rule="evenodd"/> - <path d="M376.78 72.272c0 1.881-1.502 3.408-3.358 3.411-1.856.004-3.365-1.516-3.372-3.398-.007-1.88 1.49-3.413 3.345-3.424 1.856-.011 3.37 1.503 3.385 3.384" fill="#eee" stroke="#1e1e1e" stroke-linejoin="round" stroke-width="1.16983665"/> - <path d="M371.848 74.024s2.72-.046 2.996-1.153c.277-1.106-.184-2.535-.184-2.535s1.29 1.429.922 2.535c-.369 1.107-.73 1.393-1.66 1.614-.63.15-1.567-.092-2.074-.461z" fill="#a3afb8" fill-rule="evenodd"/> - <path d="M380.3 83.29c0 1.881-1.502 3.407-3.358 3.411-1.856.004-3.364-1.516-3.372-3.398-.007-1.881 1.49-3.413 3.346-3.424 1.856-.012 3.37 1.503 3.385 3.384" fill="#eee" stroke="#1e1e1e" stroke-linejoin="round" stroke-width="1.16983665"/> - <path d="M375.368 85.042s2.72-.047 2.997-1.153c.276-1.106-.185-2.535-.185-2.535s1.291 1.429.922 2.535c-.369 1.106-.73 1.392-1.66 1.614-.629.15-1.567-.093-2.074-.461z" fill="#a3afb8" fill-rule="evenodd"/> - <path d="M378.997 94.438c0 1.881-1.503 3.408-3.359 3.411-1.856.004-3.364-1.516-3.371-3.397-.008-1.882 1.489-3.414 3.345-3.425 1.856-.011 3.37 1.503 3.385 3.384" fill="#eee" stroke="#1e1e1e" stroke-linejoin="round" stroke-width="1.16983665"/> - <path d="M374.064 96.19s2.72-.046 2.997-1.153c.276-1.106-.185-2.535-.185-2.535s1.291 1.429.922 2.535c-.368 1.107-.73 1.393-1.66 1.614-.629.15-1.567-.092-2.074-.461z" fill="#a3afb8" fill-rule="evenodd"/> - <path d="M374.042 104.217c0 1.882-1.502 3.408-3.358 3.412-1.856.003-3.365-1.517-3.372-3.398-.008-1.882 1.49-3.414 3.345-3.425 1.856-.011 3.37 1.503 3.385 3.384" fill="#eee" stroke="#1e1e1e" stroke-linejoin="round" stroke-width="1.16983665"/> - <path d="M369.11 105.969s2.72-.046 2.996-1.153c.277-1.106-.184-2.535-.184-2.535s1.29 1.43.922 2.535c-.37 1.107-.73 1.393-1.66 1.614-.63.15-1.567-.092-2.074-.461z" fill="#a3afb8" fill-rule="evenodd"/> - <path d="M332.318 72.402c0 1.882-1.503 3.408-3.359 3.412-1.856.003-3.364-1.517-3.372-3.398-.007-1.882 1.49-3.414 3.346-3.425 1.856-.011 3.37 1.503 3.385 3.385" fill="#eee" stroke="#1e1e1e" stroke-linejoin="round" stroke-width="1.16983665"/> - <path d="M327.385 74.154s2.72-.046 2.997-1.152c.276-1.107-.185-2.536-.185-2.536s1.291 1.43.922 2.536c-.369 1.106-.73 1.392-1.66 1.613-.629.15-1.567-.092-2.074-.46z" fill="#a3afb8" fill-rule="evenodd"/> - <g stroke-width="2.682"> - <path d="M322.15 71.53c0 1.573-1.256 2.85-2.808 2.853-1.552.003-2.814-1.269-2.82-2.842-.006-1.573 1.246-2.855 2.798-2.864 1.552-.01 2.818 1.257 2.83 2.83" fill="#eee" stroke="#1e1e1e" stroke-linejoin="round" stroke-width="1.16978112"/> - <path d="M318.026 72.995s2.274-.039 2.506-.964c.23-.925-.155-2.12-.155-2.12s1.08 1.195.771 2.12c-.308.925-.61 1.164-1.387 1.35-.527.124-1.311-.078-1.735-.386z" fill="#a3afb8" fill-rule="evenodd"/> - </g> - <g stroke-width="2.682"> - <path d="M322.183 75.075c0 1.574-1.256 2.85-2.808 2.853-1.552.003-2.814-1.268-2.82-2.841-.006-1.574 1.245-2.855 2.797-2.864 1.552-.01 2.819 1.257 2.831 2.83" fill="#eee" stroke="#1e1e1e" stroke-linejoin="round" stroke-width="1.16978112"/> - <path d="M318.058 76.54s2.275-.038 2.506-.964c.231-.925-.154-2.12-.154-2.12s1.08 1.195.77 2.12c-.307.926-.61 1.165-1.387 1.35-.526.125-1.31-.077-1.735-.386z" fill="#a3afb8" fill-rule="evenodd"/> - </g> - <g stroke-width="2.682"> - <path d="M322.379 80.29c0 1.574-1.257 2.85-2.809 2.854-1.552.003-2.813-1.268-2.82-2.842-.006-1.573 1.246-2.855 2.798-2.864 1.552-.01 2.819 1.257 2.83 2.83" fill="#eee" stroke="#1e1e1e" stroke-linejoin="round" stroke-width="1.16978112"/> - <path d="M318.254 81.756s2.274-.039 2.506-.964c.231-.925-.154-2.12-.154-2.12s1.079 1.195.77 2.12c-.308.925-.61 1.164-1.387 1.35-.527.125-1.311-.078-1.735-.386z" fill="#a3afb8" fill-rule="evenodd"/> - </g> - <g stroke-width="2.48"> - <path d="M322.67 85.832c0 1.702-1.359 3.082-3.037 3.086-1.679.003-3.043-1.372-3.05-3.073-.006-1.702 1.347-3.088 3.026-3.098 1.678-.01 3.048 1.36 3.061 3.061" fill="#eee" stroke="#1e1e1e" stroke-linejoin="round" stroke-width="1.1697663999999999"/> - <path d="M318.21 87.417s2.459-.042 2.71-1.043c.25-1-.168-2.293-.168-2.293s1.168 1.293.834 2.293c-.333 1-.66 1.26-1.5 1.46-.57.135-1.418-.084-1.877-.417z" fill="#a3afb8" fill-rule="evenodd"/> - </g> - <path d="M322.995 93.265c0 1.88-1.503 3.407-3.358 3.41-1.856.005-3.365-1.516-3.372-3.397-.008-1.881 1.489-3.414 3.345-3.425 1.856-.01 3.37 1.503 3.385 3.385" fill="#eee" stroke="#1e1e1e" stroke-linejoin="round" stroke-width="1.16983665"/> - <path d="M318.062 95.016s2.72-.046 2.997-1.152c.276-1.107-.184-2.536-.184-2.536s1.29 1.43.921 2.536c-.368 1.106-.73 1.392-1.66 1.613-.629.15-1.566-.092-2.074-.46z" fill="#a3afb8" fill-rule="evenodd"/> - <g stroke-width="2.388"> - <path d="M322.658 108.517c0 1.767-1.411 3.2-3.154 3.204-1.743.003-3.16-1.424-3.167-3.191-.007-1.767 1.399-3.206 3.142-3.216 1.743-.01 3.165 1.411 3.179 3.178" fill="#eee" stroke="#1e1e1e" stroke-linejoin="round" stroke-width="1.1696901599999998"/> - <path d="M318.025 110.162s2.555-.043 2.815-1.082c.26-1.039-.174-2.381-.174-2.381s1.213 1.342.866 2.381c-.346 1.04-.686 1.308-1.558 1.515-.591.141-1.472-.086-1.949-.433z" fill="#a3afb8" fill-rule="evenodd"/> - </g> - <path d="M313.552 72.312c0 1.881-1.502 3.407-3.358 3.411-1.856.004-3.365-1.516-3.372-3.398-.008-1.881 1.49-3.413 3.345-3.424 1.856-.012 3.37 1.503 3.385 3.384" fill="#eee" stroke="#1e1e1e" stroke-linejoin="round" stroke-width="1.16983665"/> - <path d="M308.62 74.064s2.72-.047 2.996-1.153c.277-1.106-.184-2.535-.184-2.535s1.29 1.429.922 2.535c-.37 1.106-.731 1.392-1.66 1.614-.63.15-1.567-.093-2.074-.461z" fill="#a3afb8" fill-rule="evenodd"/> - <g> - <path d="M305.209 69.021c0 1.882-1.503 3.408-3.359 3.412-1.856.004-3.364-1.517-3.372-3.398-.007-1.881 1.49-3.414 3.346-3.425 1.856-.01 3.37 1.503 3.385 3.385" fill="#eee" stroke="#1e1e1e" stroke-linejoin="round" stroke-width="1.16983665"/> - <path d="M300.276 70.773s2.72-.046 2.997-1.152c.276-1.107-.185-2.536-.185-2.536s1.291 1.43.922 2.536c-.369 1.106-.73 1.392-1.66 1.613-.629.15-1.567-.092-2.074-.46z" fill="#a3afb8" fill-rule="evenodd"/> - </g> - <g> - <path d="M297.218 65.261c0 1.881-1.503 3.408-3.359 3.411-1.856.004-3.364-1.516-3.372-3.397-.007-1.882 1.49-3.414 3.346-3.425 1.856-.011 3.37 1.503 3.385 3.384" fill="#eee" stroke="#1e1e1e" stroke-linejoin="round" stroke-width="1.16983665"/> - <path d="M292.285 67.013s2.72-.046 2.997-1.153c.276-1.106-.185-2.535-.185-2.535s1.291 1.429.922 2.535c-.368 1.107-.73 1.393-1.66 1.614-.629.15-1.567-.092-2.074-.461z" fill="#a3afb8" fill-rule="evenodd"/> - </g> - <g> - <path d="M288.052 63.263c0 1.882-1.503 3.408-3.359 3.412-1.856.003-3.364-1.517-3.372-3.398-.007-1.882 1.49-3.414 3.346-3.425 1.856-.011 3.37 1.503 3.385 3.385" fill="#eee" stroke="#1e1e1e" stroke-linejoin="round" stroke-width="1.16983665"/> - <path d="M283.12 65.015s2.72-.046 2.996-1.152c.276-1.107-.185-2.536-.185-2.536s1.291 1.43.922 2.536c-.368 1.106-.73 1.392-1.66 1.613-.629.15-1.567-.092-2.074-.46z" fill="#a3afb8" fill-rule="evenodd"/> - </g> - <g> - <path d="M277.24 65.849c0 1.881-1.502 3.407-3.358 3.411-1.856.004-3.364-1.516-3.372-3.398-.007-1.881 1.49-3.413 3.346-3.425 1.856-.01 3.37 1.503 3.385 3.385" fill="#eee" stroke="#1e1e1e" stroke-linejoin="round" stroke-width="1.16983665"/> - <path d="M272.308 67.6s2.72-.046 2.997-1.152c.276-1.106-.185-2.536-.185-2.536s1.291 1.43.922 2.536c-.369 1.106-.73 1.392-1.66 1.613-.629.15-1.567-.092-2.074-.46z" fill="#a3afb8" fill-rule="evenodd"/> - </g> - <g> - <path d="M269.602 73.487c0 1.881-1.502 3.408-3.358 3.411-1.856.004-3.365-1.516-3.372-3.398-.007-1.88 1.49-3.413 3.345-3.424 1.856-.011 3.37 1.503 3.385 3.384" fill="#eee" stroke="#1e1e1e" stroke-linejoin="round" stroke-width="1.16983665"/> - <path d="M264.67 75.239s2.72-.046 2.996-1.153c.277-1.106-.184-2.535-.184-2.535s1.29 1.429.922 2.535c-.369 1.107-.73 1.393-1.66 1.614-.63.15-1.567-.093-2.074-.461z" fill="#a3afb8" fill-rule="evenodd"/> - </g> - <g> - <path d="M266.43 84.18c0 1.882-1.503 3.408-3.359 3.412-1.856.004-3.365-1.516-3.372-3.398-.007-1.881 1.49-3.414 3.345-3.425 1.856-.01 3.37 1.503 3.386 3.385" fill="#eee" stroke="#1e1e1e" stroke-linejoin="round" stroke-width="1.16983665"/> - <path d="M261.497 85.932s2.72-.046 2.996-1.152c.277-1.107-.184-2.536-.184-2.536s1.29 1.43.922 2.536c-.369 1.106-.73 1.392-1.66 1.613-.629.15-1.567-.092-2.074-.46z" fill="#a3afb8" fill-rule="evenodd"/> - </g> - <g> - <path d="M267.84 95.344c0 1.882-1.503 3.408-3.359 3.412-1.856.003-3.364-1.517-3.372-3.398-.007-1.882 1.49-3.414 3.346-3.425 1.856-.011 3.37 1.503 3.385 3.385" fill="#eee" stroke="#1e1e1e" stroke-linejoin="round" stroke-width="1.16983665"/> - <path d="M262.907 97.096s2.72-.046 2.997-1.152c.276-1.107-.185-2.536-.185-2.536s1.291 1.43.922 2.536c-.369 1.106-.73 1.392-1.66 1.613-.629.15-1.567-.092-2.074-.46z" fill="#a3afb8" fill-rule="evenodd"/> - </g> - <g> - <path d="M273.01 105.45c0 1.882-1.502 3.408-3.358 3.412-1.856.003-3.365-1.517-3.372-3.398-.007-1.881 1.49-3.414 3.345-3.425 1.856-.01 3.37 1.503 3.385 3.385" fill="#eee" stroke="#1e1e1e" stroke-linejoin="round" stroke-width="1.16983665"/> - <path d="M268.078 107.202s2.72-.046 2.996-1.152c.277-1.107-.184-2.536-.184-2.536s1.29 1.43.922 2.536c-.369 1.106-.73 1.392-1.66 1.613-.63.15-1.567-.092-2.074-.46z" fill="#a3afb8" fill-rule="evenodd"/> - </g> - <g stroke-width="2.832"> - <path d="M430.628 247.41c0 3.607-2.88 6.533-6.44 6.54-3.558.007-6.45-2.907-6.465-6.515-.014-3.607 2.856-6.545 6.415-6.566 3.558-.021 6.462 2.882 6.49 6.49" fill="#eee" stroke="#1e1e1e" stroke-linejoin="round" transform="matrix(.31597 -.08466 .13499 .50378 109.39 30)"/> - <path d="M276.318 120.676s1.636-.486 1.517-1.6c-.118-1.113-.767-2.419-.767-2.419s1.151 1.17 1.214 2.3c.063 1.128-.082 1.463-.587 1.827-.343.247-.974.166-1.377-.108z" fill="#a3afb8" fill-rule="evenodd"/> - </g> - <g stroke-width="2.832"> - <path d="M430.628 247.41c0 3.607-2.88 6.533-6.44 6.54-3.558.007-6.45-2.907-6.465-6.515-.014-3.607 2.856-6.545 6.415-6.566 3.558-.021 6.462 2.882 6.49 6.49" fill="#eee" stroke="#1e1e1e" stroke-linejoin="round" transform="matrix(.31758 .0784 -.125 .50636 259.933 -40.204)"/> - <path d="M362.342 119.795s1.667.364 2.101-.669c.434-1.032.495-2.489.495-2.489s.444 1.581-.046 2.6c-.49 1.019-.778 1.242-1.397 1.317-.42.051-.932-.325-1.153-.76z" fill="#a3afb8" fill-rule="evenodd"/> - </g> - </g> - <path d="M316.722 53.812l.243 5.699s-6.757.593-7.033 1.212c-1.313 2.943 1.576 6.912 1.576 6.912s2.272-1.698 8.003-1.698c5.457 0 8.246 1.334 8.246 1.334s1.455-2.304 1.455-4.001c0-1.698-.606-3.396-.606-3.396s-2.79-.363-3.638-.363h-2.425l-.243-5.82-5.578.12z" fill="#b3a192" fill-rule="evenodd" stroke="#000" stroke-width="1.17"/> - <path d="M326.359 62.653c0 .64-.54 1.158-1.207 1.16-.667 0-1.209-.516-1.211-1.155-.003-.639.535-1.16 1.201-1.163.667-.004 1.212.51 1.217 1.149M329.144 63.274c0 .667-.563 1.208-1.26 1.21-.695 0-1.26-.538-1.264-1.205-.003-.667.559-1.21 1.255-1.214.695-.004 1.263.532 1.269 1.2M323.57 62.609c0 .639-.54 1.158-1.207 1.159-.666.001-1.209-.515-1.211-1.154-.003-.64.535-1.16 1.201-1.164.667-.004 1.212.51 1.217 1.15M317.98 62.672c0 .665-.56 1.204-1.255 1.206-.694.001-1.258-.536-1.26-1.201-.004-.665.556-1.207 1.25-1.211.694-.004 1.26.531 1.266 1.196M314.878 62.879c0 .665-.561 1.204-1.255 1.206-.694.001-1.259-.536-1.261-1.201-.003-.665.556-1.207 1.25-1.211.694-.004 1.26.531 1.266 1.196M320.573 59.39c0 .56-.474 1.016-1.06 1.017-.585.001-1.06-.452-1.063-1.013-.002-.561.47-1.018 1.055-1.022.585-.003 1.063.448 1.068 1.01M320.573 54.66c0 .562-.474 1.017-1.06 1.018-.585.001-1.061-.452-1.063-1.013-.002-.561.47-1.018 1.055-1.022.585-.003 1.063.448 1.068 1.01M320.573 57.207c0 .561-.474 1.016-1.06 1.017-.585.002-1.06-.452-1.063-1.013-.002-.56.47-1.018 1.055-1.021.585-.004 1.063.448 1.068 1.009M311.734 63.723c0 .642-.542 1.163-1.212 1.164-.67.002-1.214-.517-1.217-1.159-.003-.641.538-1.164 1.207-1.168.67-.004 1.217.513 1.222 1.154" fill="#f0ddcb" stroke="#121116" stroke-width=".596" stroke-linejoin="round"/> - <path d="M320.845 62.36c0 .702-.595 1.272-1.331 1.273-.736.002-1.334-.565-1.336-1.268-.003-.702.59-1.274 1.325-1.278.736-.004 1.336.561 1.342 1.263" fill="#916c68" stroke="#4d3126" stroke-width=".596" stroke-linejoin="round"/> - <g stroke-width="2.534"> - <path d="M322.063 45.45c0 1.392-1.112 2.521-2.486 2.524-1.374.003-2.49-1.122-2.496-2.514-.005-1.393 1.103-2.527 2.476-2.535 1.374-.008 2.495 1.112 2.506 2.505" fill="#eee" stroke="#1e1e1e" stroke-width="1.169966" stroke-linejoin="round"/> - <path d="M318.412 46.746s2.013-.034 2.218-.853c.204-.819-.137-1.876-.137-1.876s.955 1.057.683 1.876c-.273.819-.541 1.03-1.229 1.194-.466.111-1.16-.068-1.535-.341z" fill="#a3afb8" fill-rule="evenodd"/> - </g> - <path d="M279.967 130.135s2.222 2.074 2.815 3.926c.592 1.852 1.481 6.815 1.481 6.815s23.259-6.444 34.666-5.926c11.407.519 37.702 6.296 37.702 6.296s.444-2.815.963-5.777c.518-2.963 2.666-6.222 2.666-6.222s-25.11-7.852-40.961-7.111c-15.851.74-23.777 2.444-27.332 3.555-3.556 1.111-12.222 4.519-12 4.444z" fill="#fc0" fill-rule="evenodd" stroke="#000" stroke-width=".522"/> - <path d="M314.661 36.048h10.004s-2.469 1.708-2.971 3.334c-.432 1.4-.303 3.699-.303 3.699s2.728 0 3.94-1.031c1.213-1.03 3.76-2.85 3.76-2.85v12.732s-2.456-2.374-3.941-3.152a14.443 14.443 0 0 0-3.577-1.274s0 2.062.848 3.274c.85 1.213 4.244 5.82 4.244 5.82l-14.308.546s3.394-3.578 4.79-6.184c.91-1.697.545-3.456.545-3.456s-2.425 0-3.637.85c-1.213.848-3.335 3.394-3.335 3.394V39.504s.91 2.364 2.91 3.273c2.001.91 3.88.425 3.88.425s.389-2.437-.424-3.941c-.838-1.55-2.607-3.274-2.425-3.213z" fill="#fc0" fill-rule="evenodd" stroke="#000" stroke-width="1.17"/> - <path d="M313.877 76.449s-7.116-.086-13.204-3.687c-6.088-3.601-12.228-7.373-21.264-5.23-1.85.438-8.66 3.43-11.66 13.118-2.106 6.798.342 15.004 2.486 18.691 2.144 3.687 5.6 7.424 5.6 7.424l3.676-2.49s-9.362-7.935-8.247-18.224c1.115-10.288 6.259-12.69 6.259-12.69s6.345-4.972 14.833-.256c8.489 4.715 16.805 6.859 16.805 6.859s7.803 1.886 8.489 1.8c.686-.085-3.944-5.401-3.773-5.315z" fill="#fc0" fill-rule="evenodd" stroke="#121116" stroke-width="1.17"/> - <path d="M274.515 115.04l-3.78-7.433 11.343-4.433s-2.738 3.65-3.39 6.259c-.796 3.185-.522 5.867-.522 5.867s1.043-.782 2.347-2.868c.99-1.584 2.608-7.302 2.608-7.302l5.085 16.298c.04.044-2.614-2.614-4.48-2.93-2.103-.355-4.647.323-4.647.323l-2.999.912-1.565-4.694z" fill="#fc0" fill-rule="evenodd" stroke="#000" stroke-width="1.2"/> - <path d="M326.703 76.314s7.117-.085 13.204-3.686c6.088-3.602 12.228-7.373 21.264-5.23 1.85.438 8.66 3.429 11.66 13.118 2.106 6.798-.342 15.004-2.486 18.691-2.143 3.687-3.601 5.856-3.601 5.856l-4.419-1.587s8.106-7.27 6.991-17.559c-1.114-10.289-6.259-12.69-6.259-12.69s-6.345-4.972-14.833-.256c-8.488 4.715-16.805 6.859-16.805 6.859s-7.803 1.886-8.489 1.8c-.685-.085 3.945-5.401 3.773-5.316z" fill="#fc0" fill-rule="evenodd" stroke="#121116" stroke-width="1.17"/> - <path fill="#fc0" stroke="#121116" stroke-width="1.17" stroke-linejoin="round" d="M323.028 69.272h2.971v27.707h-2.971zM313.024 69.151h3.516v27.707h-3.516z"/> - <path d="M329.212 62.724c0 4.915-4.331 8.903-9.681 8.913-5.35.01-9.699-3.962-9.72-8.877-.021-4.915 4.293-8.919 9.643-8.948 5.35-.029 9.715 3.927 9.758 8.842" fill="#fc0" stroke="#121116" stroke-width="1.17" stroke-linejoin="round"/> - <path d="M310.907 96.747l16.681-.137s-1.956 1.167-3.638 4.153c-1.682 2.986-1.442 4.874-1.442 4.874s2.54-.034 4.325-1.339c1.785-1.304 3.776-3.741 3.776-3.741l-.069 15.377s-1.201-1.956-3.192-3.123c-1.99-1.167-4.805-1.167-4.805-1.167h-5.698s-2.605.154-3.776.926c-1.65 1.09-3.707 3.193-3.707 3.193l-.274-14.52s.823 2.54 3.5 3.57c2.678 1.03 4.188.893 4.188.893s0-3.261-1.373-4.943c-1.373-1.682-4.496-3.947-4.496-4.016z" fill="#fc0" fill-rule="evenodd" stroke="#000" stroke-width=".991"/> - <path d="M320.201 108.821s2.441 5.695 5.279 8.209c1.652 1.463 6.619 2.565 8.864 1.992 5.047-1.289 8.515-5.326 8.515-5.326s-.18 4.423 2.979 6.86c3.16 2.437 5.687 3.07 8.304 2.347 2.618-.722 10.02-6.228 10.02-6.228l1.535 1.354s-4.245 4.122-8.707 6.31c-2.297 1.127-9.27.501-11.527-1.304-2.257-1.806-3.597-6.18-3.597-6.18s-1.39 2.812-4.368 3.805c-2.98.993-7.073.95-10.874-.16-2.558-.748-5.881-4.277-6.513-5.45-.632-1.174-.451-1.806-.451-1.806s-1.875 5.373-5.777 6.84c-3.686 1.383-7.887 1.394-11.457.368-3.608-1.038-3.89-3.055-3.89-3.055s-.27 5.687-8.123 7.311c-7.854 1.625-14.082-4.152-14.082-4.152l1.083-1.625s4.423 4.965 11.193 4.514c6.77-.452 9.027-9.117 9.027-9.117s2.979 4.513 10.923 4.603c7.943.09 10.2-10.29 10.2-10.29l1.444.18z" fill="#f6ca1f" fill-rule="evenodd" stroke="#000" stroke-width=".939"/> - <g fill="#fc0" stroke="#000" stroke-width="2.2"> - <path d="M300.629 112.134s.06-2.764.654-3.595c.842-1.178 1.989-1.226 2.574-1.062.721.202 1.47.858 1.348 2.778-.123 1.92-.654 2.86-.082 3.595.572.736.654 1.226 1.757 1.062 1.103-.163 1.593-.53 1.348-1.552-.245-1.022-.572.082-.776-.776-.204-.858 1.067-4.565.858-6.864-.204-2.247-1.062-4.045-2.778-4.495-1.613-.422-2.983-.408-4.495.695-1.45 1.058-3.309 4.535-3.309 4.535l-.04 7.436 3.023-.163-.082-1.594z" fill-rule="evenodd" stroke-width="1.14741"/> - <path d="M294.997 114.136s-1.157-2.512-2.033-3.037c-1.242-.745-2.313-.332-2.784.052-.58.473-1.007 1.373-.129 3.085.878 1.712 1.74 2.362 1.508 3.265-.232.902-.111 1.385-1.188 1.674-1.077.29-1.673.148-1.855-.886-.183-1.035.557-.153.402-1.022-.154-.868-2.798-3.76-3.522-5.953-.709-2.142-.638-4.133.756-5.229 1.311-1.03 2.573-1.563 4.4-1.154 1.75.392 4.842 2.84 4.842 2.84l3.001 6.804-2.838 1.055-.56-1.494z" fill-rule="evenodd" stroke-width="1.14741"/> - <path d="M294.419 92.114s-2.942 4.944-2.288 8.744c.653 3.8 4.576 11.97 4.576 11.97l.04 1.104 2.117-.229-.482-1.12s1.057-9.781.408-12.87c-.482-2.295-4.33-7.558-4.371-7.599zM299.117 114.749s1.47 1.759 3.228 2.615c1.92.935 2.71.941 3.473.368.559-.42.367-2.207-.286-2.697-.654-.49-1.396-.241-1.512.245-.197.821-.464.766-1.062.45-.873-.463-2.901-1.716-2.901-1.716l-.94.735zM296.84 115.148s-.619 2.207-1.87 3.71c-1.368 1.64-2.085 1.97-3.016 1.76-.683-.154-1.241-1.861-.846-2.577.395-.715 1.173-.792 1.48-.397.515.669.737.509 1.152-.026.607-.78 1.941-2.755 1.941-2.755l1.16.285z" fill-rule="evenodd" stroke-width="1.14741"/> - <path d="M302.445 113.372c.108.645-1.838 1.509-4.349 1.931-2.51.423-4.639.244-4.757-.398-.118-.643 1.82-1.508 4.33-1.933 2.51-.425 4.646-.25 4.774.391" stroke-linejoin="round" stroke-width="1.14741"/> - </g> - <g fill="#fc0" stroke="#000" stroke-width="2.2"> - <path d="M345.636 113.242s1.025-2.568 1.873-3.138c1.202-.808 2.293-.45 2.783-.092.605.442 1.076 1.32.288 3.074-.788 1.756-1.615 2.45-1.337 3.339.278.89.182 1.377 1.273 1.61 1.09.234 1.678.062 1.807-.98.128-1.043-.565-.125-.455-1 .11-.875 2.6-3.9 3.21-6.127.597-2.176.424-4.16-1.025-5.183-1.363-.961-2.65-1.428-4.453-.925-1.729.482-4.69 3.086-4.69 3.086l-2.645 6.95 2.889.907.482-1.521z" fill-rule="evenodd" stroke-width="1.14741"/> - <path d="M339.66 113.141s-.203-2.758-.839-3.557c-.902-1.133-2.05-1.121-2.625-.928-.71.24-1.425.933-1.203 2.845.221 1.91.8 2.822.267 3.586-.533.764-.59 1.258-1.7 1.152-1.11-.107-1.618-.449-1.426-1.481.192-1.033.575.052.735-.816.16-.867-1.302-4.503-1.212-6.81.088-2.255.852-4.094 2.543-4.632 1.589-.505 2.957-.562 4.524.462 1.503.982 3.54 4.358 3.54 4.358l.424 7.424-3.028-.007v-1.596z" fill-rule="evenodd" stroke-width="1.14741"/> - <path d="M346.84 92.316s-4.488 3.598-5.208 7.385c-.72 3.788.087 12.816.087 12.816l-.349 1.047 2.063.528-.06-1.217s4.421-8.79 4.897-11.91c.353-2.318-1.406-8.597-1.43-8.65zM343.303 115.16s.76 2.163 2.106 3.581c1.47 1.55 2.207 1.832 3.123 1.562.671-.197 1.118-1.937.678-2.625-.44-.689-1.222-.715-1.502-.3-.472.7-.703.554-1.152.047-.656-.74-2.115-2.624-2.115-2.624l-1.138.36zM341.03 114.736s-1.353 1.85-3.052 2.817c-1.856 1.057-2.643 1.114-3.442.591-.585-.383-.509-2.178.112-2.71.62-.53 1.377-.33 1.524.148.25.807.513.735 1.09.38.84-.518 2.783-1.9 2.783-1.9l.986.674z" fill-rule="evenodd" stroke-width="1.14741"/> - <path d="M346.902 115.038c-.125.641-2.25.768-4.75.283-2.499-.485-4.43-1.398-4.315-2.041.115-.643 2.233-.774 4.733-.292 2.5.483 4.439 1.396 4.334 2.04" stroke-linejoin="round" stroke-width="1.14741"/> - </g> - <path d="M279.09 129.87s.487 2.045 1.655.974c1.167-1.07 17.227-7.397 39.904-7.397 22.677 0 37.568 6.23 38.444 6.619.876.389 1.266.876 2.044 0 .779-.876-.778-2.239-.778-2.239s-15.767-6.716-40.391-6.618c-24.624.097-40.586 7.105-40.586 7.105s-1.07.778-.292 1.557z" fill="#cca715" fill-rule="evenodd" stroke="#000" stroke-width=".522"/> - <path d="M307.846 139.304s.724-2.012 1.987-2.399c1.007-.308 2.598.682 2.598.682s-1.916-.176-2.516.165c-.541.308-.705 1.223-.705 1.223s.411-.73 1.881-.659c1.47.07 1.634.07 1.634.07s-2.492.189-3.068.906c-.576.717 2.351 1.046 2.351 1.046s-4.48.024-5.067-.247c-.588-.27-.964-1.187-1.964-.905-.999.282-2.022 1.176-2.022 1.176s1.14-1.917 1.858-1.928c.717-.012 1.14-.047 1.787.247.647.293 1.246.623 1.246.623zM291.097 142.932s.339-2.11 1.509-2.725c.933-.49 2.68.19 2.68.19s-1.917.181-2.443.627c-.475.403-.467 1.332-.467 1.332s.27-.792 1.727-.995a68.51 68.51 0 0 0 1.62-.233s-2.416.646-2.85 1.457c-.433.812 2.505.594 2.505.594s-4.398.851-5.025.694c-.628-.157-1.167-.988-2.097-.526-.93.462-1.77 1.529-1.77 1.529s.766-2.094 1.469-2.238c.703-.145 1.112-.257 1.802-.088.69.17 1.34.382 1.34.382zM321.972 138.56s.84-1.966 2.123-2.28c1.024-.249 2.554.832 2.554.832s-1.903-.287-2.52.019c-.56.276-.776 1.18-.776 1.18s.453-.704 1.916-.549c1.463.156 1.627.165 1.627.165s-2.499.044-3.115.726c-.617.683 2.286 1.181 2.286 1.181s-4.473-.236-5.044-.54c-.571-.304-.894-1.241-1.908-1.017-1.014.223-2.086 1.056-2.086 1.056s1.25-1.847 1.966-1.817c.716.03 1.14.019 1.77.35.628.33 1.207.694 1.207.694zM336.116 140.16s1.062-1.855 2.374-2.016c1.045-.129 2.44 1.124 2.44 1.124s-1.857-.507-2.507-.276c-.587.209-.907 1.081-.907 1.081s.532-.646 1.967-.32c1.435.324 1.597.353 1.597.353s-2.487-.248-3.18.358c-.691.605 2.134 1.44 2.134 1.44s-4.415-.757-4.947-1.126c-.532-.368-.742-1.337-1.776-1.233-1.033.104-2.196.806-2.196.806s1.457-1.689 2.165-1.576c.709.114 1.131.153 1.717.555.586.401 1.119.83 1.119.83zM350.16 142.667s.99-1.412 2.055-1.446c.85-.027 1.879 1.082 1.879 1.082s-1.455-.544-1.994-.405c-.487.125-.808.802-.808.802s.475-.48 1.604-.114c1.129.367 1.257.402 1.257.402s-1.98-.382-2.58.054c-.601.436 1.608 1.313 1.608 1.313s-3.492-.931-3.893-1.266c-.4-.336-.499-1.13-1.336-1.121-.838.008-1.824.486-1.824.486s1.294-1.25 1.855-1.107c.56.143.898.205 1.339.57.441.367.838.75.838.75z" fill-rule="evenodd"/> - <path d="M305.022 129.722c.338 1.676-1.634 3.485-4.402 4.04-2.768.554-5.283-.356-5.617-2.033-.338-1.675 1.633-3.484 4.401-4.038 2.768-.555 5.284.355 5.618 2.031z" fill="#0f6545" stroke="#000" stroke-width=".697" stroke-linejoin="round"/> - <path d="M298.753 129.448c.081.407-.347.835-.956.957-.61.122-1.17-.108-1.25-.515-.082-.406.346-.834.955-.956.61-.122 1.17.108 1.25.515z" fill="#cecfc1"/> - <path d="M344.14 131.75c-.51 1.631-3.108 2.268-5.802 1.423-2.693-.846-4.46-2.854-3.947-4.484.51-1.632 3.108-2.269 5.802-1.423 2.693.845 4.46 2.853 3.947 4.484z" fill="#0f6545" stroke="#000" stroke-width=".697" stroke-linejoin="round"/> - <path d="M338.776 128.493c-.124.395-.705.565-1.298.379-.593-.186-.973-.657-.849-1.053.124-.395.705-.564 1.298-.378.593.186.973.657.849 1.052z" fill="#cecfc1"/> - <path fill="#1f2d86" stroke="#000" stroke-width=".991" stroke-linejoin="round" d="M314.603 125.943h10.14v5.112h-10.14z"/> - <path d="M318.877 127.033c0 .231-.432.419-.964.419s-.963-.188-.963-.42c0-.23.431-.418.963-.418s.964.187.964.419z" fill="#707c8b"/> - <path d="M285.944 131.055l1.676 4.944-3.1 1.676s-1.425 1.006-2.85.251c-1.424-.754-2.264-3.013-1.508-3.938 1.501-1.836 5.782-3.017 5.782-2.933z" fill="#9f1209" fill-rule="evenodd" stroke="#000" stroke-width=".522"/> - <path d="M283.347 134.575c0 .833-.638 1.509-1.425 1.509s-1.425-.676-1.425-1.51c0-.833.638-1.509 1.425-1.509s1.425.676 1.425 1.51z" fill="#8f322f"/> - <path d="M281.999 133.984c.044.266-.019.53-.163.69a.418.418 0 0 1-.538.087c-.189-.106-.331-.335-.374-.601-.044-.267.018-.53.163-.69a.418.418 0 0 1 .538-.088c.188.106.33.336.374.602z" fill="#e2a494"/> - <path d="M353.88 131.699l-1.665 4.403 3.947 2.067s1.745.779 2.846-.188c.941-.826 1.155-2.738.403-3.705-.712-.915-5.585-2.604-5.531-2.577z" fill="#9f1209" fill-rule="evenodd" stroke="#000" stroke-width=".522"/> - <path d="M358.605 135.23c0 .54-.565.98-1.262.98-.696 0-1.261-.44-1.261-.98 0-.542.565-.98 1.261-.98.697 0 1.262.438 1.262.98z" fill="#aa675d"/> - <path d="M357.397 135.082c0 .259-.112.499-.295.628a.498.498 0 0 1-.591 0c-.183-.13-.296-.37-.295-.628 0-.26.112-.5.295-.629a.498.498 0 0 1 .591 0c.183.13.295.37.295.629z" fill="#e2a494"/> - <g fill="#f5d8bc"> - <path d="M328.55 126.38c0 .377-.319.682-.713.682-.395 0-.714-.305-.714-.681 0-.377.32-.682.714-.682.394 0 .714.305.713.682zM332.865 126.63c0 .376-.32.681-.714.681-.394 0-.714-.305-.713-.681 0-.377.319-.682.713-.682.395 0 .714.305.714.682zM330.678 128.306c0 .473-.401.856-.897.856s-.897-.383-.897-.856.401-.857.897-.857.898.384.897.857zM332.76 131.12c0 .377-.32.682-.714.682-.394 0-.714-.305-.713-.681 0-.377.32-.682.713-.682.395 0 .714.305.714.682zM328.596 130.584c0 .376-.32.681-.713.681-.395 0-.714-.305-.714-.681 0-.376.32-.682.714-.682.394 0 .714.306.713.682z"/> - </g> - <g fill="#f5d8bc"> - <path d="M307.729 127.115c.085.367-.158.736-.542.825-.384.09-.764-.136-.849-.503-.085-.366.157-.736.542-.825.384-.089.764.137.849.503zM311.988 126.384c.085.367-.157.736-.541.825-.385.09-.765-.136-.85-.503-.085-.366.158-.736.542-.825.384-.089.764.137.849.503zM310.236 128.51c.107.461-.198.925-.68 1.037-.484.112-.962-.171-1.068-.632-.107-.46.198-.925.68-1.037.484-.112.961.172 1.068.632zM312.9 130.783c.084.367-.158.736-.542.825-.385.09-.765-.136-.85-.503-.085-.366.158-.736.542-.825.384-.089.765.137.85.503zM308.721 131.2c.086.366-.157.736-.541.825-.384.089-.764-.137-.849-.503-.085-.367.157-.736.541-.825.385-.09.765.136.85.503z"/> - </g> - <g fill="#f5d8bc"> - <path d="M289.54 131.041c.137.35-.05.751-.418.894-.367.142-.776-.026-.912-.377-.136-.35.051-.751.419-.894.368-.143.776.026.912.377zM293.653 129.711c.136.351-.051.751-.419.894-.367.143-.776-.026-.912-.377-.136-.35.051-.75.419-.894.368-.142.776.027.912.377zM292.221 132.065c.172.441-.064.944-.526 1.123-.462.18-.975-.032-1.146-.473-.172-.441.064-.944.526-1.124.462-.179.975.033 1.146.474zM295.18 133.936c.137.35-.05.751-.418.894-.367.142-.776-.026-.912-.377s.051-.751.419-.894c.368-.143.776.026.912.377zM291.105 134.943c.136.35-.051.75-.419.893-.367.143-.776-.026-.912-.377-.136-.35.051-.75.419-.893.368-.143.776.026.912.377z"/> - </g> - <g fill="#f5d8bc"> - <path d="M347.283 129.063c-.096.394-.508.631-.921.53-.413-.1-.669-.502-.572-.896.096-.394.509-.631.921-.53.413.1.67.502.572.896zM351.735 130.43c-.096.393-.51.63-.922.53-.413-.102-.669-.503-.572-.897.096-.393.509-.631.922-.53.412.101.669.503.572.896zM349.017 131.623c-.121.495-.64.793-1.158.666-.52-.127-.841-.631-.72-1.126.121-.495.64-.794 1.159-.667.518.127.84.632.719 1.127zM350.474 135.102c-.096.394-.509.632-.922.53-.412-.1-.669-.502-.572-.896.096-.393.509-.63.922-.53.412.101.669.503.572.896zM346.254 133.473c-.096.394-.509.632-.921.53-.413-.1-.67-.502-.573-.896.096-.394.51-.631.922-.53.413.101.669.502.572.896z"/> - </g> - <path d="M355.973 88.931s-2.05 1.923-4.487 1.923c-2.436 0-3.846-1.025-4.615-1.538-.77-.513.256-2.052.256-2.052" fill="none" stroke="#000" stroke-width="1.2"/> - <path d="M312.896 92.777s-3.718-.64-5.257-1.154c-1.538-.512-1.153-1.538-2.948-1.41-1.795.128-3.59 1.41-3.206 3.205.385 1.795 1.667 2.052 2.95 1.667 1.281-.385.897-2.564-.77-2.436-1.667.128-.256 1.539-.256 1.539" fill="none" stroke="#000" stroke-width="1.095"/> - <path d="M287.255 89.957s1.025 1.538 3.718 1.282c2.692-.257 3.718-1.667 3.846-2.308.128-.64 0-1.795-.513-2.308-.513-.512-2.308-.769-2.308-.769" fill="none" stroke="#000" stroke-width="1.043"/> - <g stroke="#161111"> - <path d="M339.19 270.402c2.487-2.448 6.486-5.158 8.707-11.048 2.08-5.513 3.087-15.633 4.984-20.762 2.48-8.792 7.474-17.364 1.53-16.778-5.66.56-7.49 6.028-9.635 10.03-.994 1.49-3.283 4.683-3.716 6.497-.087-3.045-1.625-11.926-1.94-20.857-.293-8.341-.056-17.023-.28-20.263-.272-4.277-.244-8.295-1.247-11.456-.467-1.474-2.633-2.89-3.743-2.829-2.281.017-3.66 2.001-3.969 3.865-.222 1.473-.16.936-.31 2.84-.19 2.408.045 5.513-.128 8.239-.187 2.94.197 6.204.037 8.939-.323 5.514-.722 10.566-.885 11.6 0-2.045-.935-11.704-1.247-20.872-.119-3.479-.2-6.908-.261-10.101-.05-2.583.063-5.33-.214-7.336-.473-3.424-1.58-4.983-4.064-4.983-1.675 0-4.073 1.219-4.84 5.026-.413 2.053-.43 4.566-.362 7.31.063 2.55.199 5.298.158 8.057-.155 10.444-.34 21.513-.766 24.774-.069-1.072-1.114-6.536-1.396-13.852-.111-2.882-.268-6.36-.422-9.684-.185-3.975-.17-6.94-.27-9.591-.028-1.602-.665-6.212-3.748-5.935-1.618-.198-3.332.93-4.022 5.293-.384 2.43-.375 6.612-.439 9.835-.121 6.12-.386 11.479-.092 16.927.183 3.4.155 6.02.194 7.695.04.445-.868-2.856-1.327-7.343-.45-4.389-.847-9.976-.811-8.687 0-2.266-.11-5.64-.314-8.424-.16-2.175-.06-4.574-2.418-4.382-2.394.194-3.864 1.003-4.36 5.102-.32 2.655-.408 8.394-.478 10.475.258 5.292-1.156 17.63-1.797 21.138-.175 2.486-1.156 5.72-1.571 9.185-.893 7.46-.044 16.192.944 20.662 1.963 7.056 7.087 10.222 6.83 15.01-.258 4.788 0 13.23 0 17.01 0 3.78 3.283 3.984 10.08 2.52 11.115-2.394 17.188 2.394 26.365-1.134-1.164-10.458 1.104-16.745 1.045-20.525zM332.705 245.69c2.299-6.346 5.202-8.839 8.004-10.223" fill="#c00" stroke-width="1.6"/> - <path d="M307.432 239.148c3.461-1.365 7.055-2.356 10.572-3.558 4.304-1.214 8.472-2.954 12.913-3.642 2.14-.436 4.291-.858 6.474-1.005M301.259 273.007c.484-.32.95.188 1.416.285.652.2 1.334.402 2.022.284 1.35-.022 2.703-.024 4.054.005 1.603-.059 2.93-.117 4.22-1.024M323.012 273.171c.464.381.992.68 1.55.9.859.38 1.798.429 7.368-.02 3.454.221 6.513-2.762 7.375-3.567" fill="none" stroke-width="1.6"/> - </g> -</svg> diff --git a/img/flags/4x3/gb-sct.svg b/img/flags/4x3/gb-sct.svg deleted file mode 100644 index 5e47f07..0000000 --- a/img/flags/4x3/gb-sct.svg +++ /dev/null @@ -1,4 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" height="480" width="640" viewBox="0 0 640 480"> - <path fill="#0065bd" d="M0 0h640v480H0z"/> - <path d="M0 0l5 3M0 3l5-3" stroke="#fff" stroke-width=".6" transform="scale(128 160)"/> -</svg> diff --git a/img/flags/4x3/gb-wls.svg b/img/flags/4x3/gb-wls.svg deleted file mode 100644 index 59b4181..0000000 --- a/img/flags/4x3/gb-wls.svg +++ /dev/null @@ -1,9 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" height="480" width="640" viewBox="0 0 640 480"> - <path fill="#00ab39" d="M0 240h640v240H0z"/> - <path fill="#fff" d="M0 0h640v240H0z"/> - <g stroke="#000" stroke-width="1.388"> - <path d="M418.916 70.772c-.008.015-.014.033-.024.048.026-.014.047-.034.073-.048h-.05zm-.024.048c-40.283 22.275-76.34 45.452-111.783 74.988-17.01 14.86-12.21 26.704-12.868 40.048.548 8.958-1.936 17.292-7.446 22.314-12.607 2.55-25.226 5.113-37.83 7.663-1.21-3.49-2.408-6.972-3.615-10.46 1.153-5.35 5.577-7.98 14.892-4.625.734-6.88-4.802-9.68-11.277-12.072-2.225-1.732-4.988-3.062-4.627-9.013-1.09-13.468 20.523.964 20.723.964.202 0-.72-13.592-10.65-16.313-5.414-1.916-7.705-7.627-5.638-11.855 4.332-8.644 12.487.676 18.723 1.01-.234-5.64-1.84-9.662-6.7-14.216-2.614-1.61-9.038-2.82-9.204-5.518-.135-3.664 6.022-5.23 14.483-4.217-1.764-5.136-7.454-8.458-15.277-10.868l-4.627-8.05c-2.19-4.054-3.174-4.164 1.903-11.854 4.56-2.95 10.62-7.122 15.18-10.072-1.677-.202-3.358-.402-5.035-.603.67-5.5.747-7.35 2.024-16.482-4.894 6.688-11.007 5.492-16.506 8.242 0 0-15.676 2.783-20.723 9.446-.2 0-39.422-2-39.422-2-8.357 1.164-15.497 3.533-16.89 11.663-19.117 1.93-39.136.223-53.71 18.507 9.922-.47 18.61-2.833 29.758-1.398 0 0 9.5.18 11.47 10.24.2.402 3.23.41 3.23.41 1.206.938 2.405 1.88 3.613 2.82.47-1.275.93-2.56 1.4-3.832l3.228 2.216c.334-1.408.677-2.808 1.012-4.216 1.073.737 2.13 1.48 3.205 2.216.067-1.676.15-3.36.216-5.036l4.218 3.012v-6.626s15.57-.036 20.314 9.855c.202.2-43.694 8.067-86.097 4.433 4.09-2.012 8.175-4.036 12.265-6.048-15.46-3.143-29.996-5.985-43.638-16.7 5.148 19.384 31.754 42.15 37.205 42.05 0 .2-5.23-9.447-5.23-9.447 15.358.67 30.717 1.33 46.073 2 1.677 5.097.935 10.81 5.036 15.302 0 0-2.544 8.424 3.108 11.855.202.402 6.747-17.085 6.747-17.085s2.006 4.705 4.026 7.832c2.926-15.042 19.3-17.494 19.3-17.494s3.423 7.847 3.423 8.05c-5.118.74-11.483 11.17-8.05 16.89-3.43.065-9.524 10.167-7.638 15.687-2.885 2.87-10.07 6.698-8.242 18.723-5.655 1.212-9.003 11.56-7.252 22.53-8.752 8.146-6.603 23.1 1.205 29.156-3.24 2.884-5.237 5.102-5.23 8.65-3.08-1.144-5.92-.187-7.253 1.832-3.776-3.87-9.2-7.262-13.06-3.638-1-4.58-6.964-9.62-13.493-9.036.382-4.83-2.125-10.81-9.037-12.892 0 0-1.4-22.637-8.265-29.976-.673-4.107.393-6.9 6.048-10.265 5.647-3.013 6.847-5.35 6.434-13.88 2.226-5.704 3.917-11.518-3.012-15.47.21 6.782-1.873 10.048-4.626 13.06-3.29-.48-4.44 3.36-6.652 5.036-3.097-4.174 6.532-10.64-.603-19.927-.4-.405-4.98-12.125-16.29-11.857 5.376 3.148 7.65 8.444 7.64 13.88-3.566 10.058-5.377 17.832-1.807 29.373-4.698-7.04-7.363-20.42-11.253-22.747-3.41-.666-5.076-8.73-18.314-6.435 5.712 1.536 7.525 5.897 9.062 9.856-3.502 1.806-1.762 6.57.795 9.856-.486 7.722 4.14 12.234 11.06 15.108-1.14 10.528-2.282 21.038-3.422 31.566-2.748-.35-6.978 10.352-8.65 10.675-2.69 1.674-7.388 6.177-2 7.446-1.6 5.778-3.085 9.26-11.687 10.46 0 0 9.09 5.39 16.626-3.832 8.077-.203 5.42-9.833 9.326-14.073 0-.2 2.216-1.593 5.445-10.072 1.413 7.572 9.182 30.757 26.748 42.265 15.31 16.39 27.894 31.87 27.76 53.71 5.975-5.557 9.543-14.36 12.288-22.746 8.31-2.89 20.197-3.994 30.796-3.518-1.818 3.825-3.853 7.496-1.23 9.976-7.396 2.54-9.017 7.91-6.047 13.277-7.798 5.295-8.31 8.698-8.435 17.494-14.425 18.496-23.324 17.88-37.614 13.085-4.692-2.754-11.955-6.72-15.3-4.627-6.172-4.113-15.046-4.723-16.506 4.627 4.63-3.84 7.396-3.098 11.084.603-.742 1.878-1.362 3.75 1.397 4.82-1.207 1.34-2.406 2.683-3.614 4.023-6.64-1.02-15.57-.963-17.903 8.65 3.412-2.825 10.98-3.488 17.084-.793 1.142.402 2.283.8 3.424 1.204.134 1.543.276 3.085.41 4.627 0 0-9.047-1.396-11.47 13.278 8.48-9.023 14.48-6.65 14.48-6.65 3.27 4.784 15.3 4.064 23.953-3.808 12.154-6.794 15.697 2.97 23.542-3.422 6.504-4.85 14.2-1.625 19.493 4.025 6.103 2.29 12.49 4.173 17.518 0 0 0 6.14-3.918 12.266 2.41.067-7.136-4.99-10.926-11.855-11.06l-2.024-2.025c-6.437-1.342-13.67-.798-19.3-4.024 2.653-10.074 6.52-19.202 14.072-26.963 9.32-9.992 16.182-14.535 27.952-29.832-.455 8.645 6.17 18.257 9.662 27.037 0 0 7.03-11.223 8.05-20.337.2 0 8.807-4.48 12.48-8.29 7.754 4.81 20.392-3.85 28.555-11.01 5.03 1.903 8.85 1.766 14.698 0-4.694 9.552 2.715 18.414 14.482 22.12 1.088 8.433 9.607 10.2 22.53 10.264.545 4.962 8.242 5.637 8.242 5.637-4.865 2.267-7.4 4.54-7.23 9.663-4.985.034-8.76 1.288-10.073 7.036-6.844.117-13.82.642-19.71 4.024-6.305-.978-13.974-3.59-18.917-8.65-2.55-2.147-3.185-5.24-7.638-6.435-2.822-3.335-6.2-2.59-7.253.603-2.918-2.278-13.86-3.337-15.688 7.037 5.108-3.74 9.688-5.164 12.892-.603-1.746 3.166 4.253 4.978 9.446 6.24 3.683.23 10.214 3.584 12.265 9.254-4.75 1.44-11.95.966-16.7-2.627-4.22-3.534-9.924-3.113-13.06-.796-4.348-2.772-14.705 2.462-15.107 10.843 4.362-3.997 8.333-5.93 12.288-3.397-1.968.467-1.22.66-1.012 1.807 3.353 1.945 6.696 3.887 10.05 5.83-4.932 1.302-9.567 3.27-7.423 12.46 0 0 4.017-7.94 13.06-5.013.202-.2 1.248 2.836 3.832.796 3.914-4.454 12.864-6.448 20.723-7.23 6.308-.753 12.605-2.61 18.097.99 4.89-2.517 10.333-4.208 15.903-.194 6.572 2.08 11.37 9.74 19.71 6.24 4.15-2.87 9.246-3.016 14.483 2.82.064-7.358-5.45-9.825-13.277-11.47-1.81-1.074-3.61-2.155-5.42-3.228-5.03-.74-10.08.152-15.11-2.218 26.32-6.804 44.772-21.482 57.76-42.434 4.158 1.476 8.3 2.934 12.458 4.41 2.95.19 3.174 1.214 9.253 3.037.23-8.956-3.615-18.18-19.71-19.11l-21.132-8.047c-4.486-4.73-6.514-14.768-.796-20.723 5.597-4.983 6.573-4.387 10.265-10.458 4.49-.41 8.72 4.217 12.868 4.217 1.97 5.85 13.32 11.022 20.53 9.253 4.517 4 13.114 6.223 22.53 3.012 5.344 4.678 12.306 6.63 20.506 3.012 2.178 2.176 6.774 3.907 12.073 2.82.403 0 2.678 5.813 8.458 7.854-2.52 2.45-.97 13.082 1.615 16.89-1.764 4.09-2.32 8.45-.82 12.676-5.827 3.747-7.014 6.535-4.41 12.868-7.632 12.265-16.763 13.667-25.348 9.88-3.086-1.946-6.167-3.91-9.253-5.857-3.286-3.218-6.57-6.418-9.855-9.637-1.674-1.57-5.137-2.064-5.857 1.398 0 0-12.645-2.82-13.663 7.856 5.242-5.105 12.675-.61 12.675-.41 0 .202-1.77 1.406-.41 3.446.307-.255 9.233 3.33 17.182 6.747 4.318 1.636 5.267 2.148 7.156 3.156a340.807 340.807 0 0 0-7.156-3.157c-4.84-1.835-9.553-3.3-10.94-2.94-4.504-.42-9.28-.98-11.47 2.41-4.84 2.047-12.402 3.687-12.073 12.674 3.27-5.35 7.754-5.125 13.47-4.627-.134.403-.25.802-.385 1.205 6.206 2.827 5.03-.77 10.818-1.3 4.84-.445 11.7 1.288 15.325 2.505-4.56 1.34-10.76.778-13.686 4.024-.537 1.075-2.415.636-1.59 3.206 0 0-8.894-.23-11.278 12.072 9.043-5.79 15.895-5.614 16.096-5.614.2 0 2.82.602 2.82.602s10.86-7.253 11.06-7.253c.2 0 10.515-4.567 15.276.602 4.155 2.043 8.6 2.173 12.892-.41 8.456-3.677 16.37-3.935 24.145 1.23l7.034 4.216c1.006-.67 2.007-1.352 3.013-2.023 0 0 7.964-2.25 13.807 4.843-2.415-12.27-11.18-12.674-11.18-12.674-.672-.604-1.355-1.204-2.025-1.807-4.16-1.61-8.3-3.235-12.46-4.844-1.814-4.493-6.374-8.07-1.83-13.47 4.642-23.076 10.192-40.406 1.205-63.784 8.382 3.62 14.654 14.818 25.156 10.868 0-9.39-34.56-27.215-60.962-41.542 43.253-2.213 95.236-34.142 75.253-74.723 3.153-9.79 6.294-19.583 9.447-29.374 4.45 8.964 13.457 15.795 21.54 18.7-6.662-12.72-10.485-51.61-6.65-78.458-17.428 21.53-36.674 40.638-57.132 60.048 10.063 2.352 18.855.697 28.58-.506-2.75 5.633-5.42 11.283-8.17 16.916-26.582-15.566-57.79-3.884-58.024 16.892.91 24.227 30.865 27.67 48.145 19.228-3.425 22.09-54.193 13.952-54.193 13.952-18.038-6.218-35.17-5.153-54.12-5.012 3.938-12.113 25.8-22.864 42.458-18.12-23.32-26.147 3.296-58.61 35.397-68.603-34.99-11.54-4.86-38.213 21.326-57.325 0 0-75.306 31.692-82.17 31.59-21.42-1.61-15.58-26.962-7.42-40.602zm-236.36 30.434c1.752.01 3.812.18 5.444.578 3.396.828 7.53 1.302 7.47 2.314-1.57 2.63-5.433 5.805-9.228 5.614-3.795-.19-5.99-2.466-7.253-8.17.388-.21 1.813-.345 3.566-.336zm316.987 89.35c4.936-.068 10.85 2.02 16.625 8.144-2.776 7.997-26.866 12.103-28.48.265-.49-3.58 4.638-8.312 11.854-8.41z" fill="#d21034"/> - <path d="M207.406 171.15l3.653 5.313m-.167.168s0 7.14 1.494 7.308m-3.32 3.818c.165.167 3.82 6.31 3.82 6.31m-10.463 1.66c.165 0 4.65 5.15 4.65 5.15m3.895-3.995c0 .167 4.24 8.147 4.573 8.147m-10.13-2.657s1.495 9.63 2.823 9.3m-9.1 8.35l4.285 6.43m3.654-13.286s2.325 9.133 4.15 8.302m1.824-13.786c.166.166 4.322 6.15 5.483 5.318m-.994 2.324l3.985 7.972m-10.627-1.828c.166.333 3.32 9.467 3.32 9.467m-10.96-4.65s2.99 10.13 5.648 8.468m-6.808 4.984s.166 5.314 2.823 5.645m1.827-8.303c0 .166 2.657 3.82 2.657 3.82m4.932-10.14l2.207 3.497m4.815-9.963l3.322 4.15m-18.732-51.767c.166 4.484 7.277-1.58 10.1-5.4m-13.123 20.967s7.805-5.48 13.784-13.783m-16.276 26.9c5.48-1.495 15.564-13.69 17.556-20.166m-18.718 32.287c1.496.665 20.33-12.9 20.83-22.864m-21.327 33.327c0-.165 17.22-4.39 24.36-23.32m-25.284 37.65s27.495-16.488 28.99-28.61m185.653 56.294s-1.773 14.228-16.055 16.387m20.538 9.02c.166-.166 13.617-14.945 10.13-19.43m21.09 5.15s-.166 10.295-8.636 17.435m25.408-14.447s.333 12.454-4.982 17.436m20.425-9.965s-5.958 11.663-8.117 12.826m7.86 7.845s7.84 1.954 10.33-3.194m-8.298 20.113s7.248 1.31 10.57-5.665m-11.347 18.725s5.866 4.928 9.85-1.547m-94.032-94.412s-.665 25.242 34.872 30.39c39.69 10.96 58.453 5.147 60.78 49.652-1.495 16.938-3.6 36.07-15.888 28.762m-117.452-85.552s5.647 10.13 12.455 9.465c8.967-2.656 12.288 2.824 12.288 2.824m-48.987-2.16s14.947 7.308 27.732-4.483m-26.07-5.977c1.327 17.437-20.095 27.4-28.565 25.74m29.58 41.076c.166 0 11.604-6.867 9.28-11.684m-32.05 1.496c.33-.334 19.262-2.16 22.75-8.97m-31.552-18.93c0-.166 26.868.074 28.694 5.055m7.01-20.997s-26.24 44.837 22.25 44.837m-49.984-45.502s-5.647 16.774-13.618 22.42m-14.28-28.23s9.743 18.852-.055 28.15M261.06 280.78c.166.332 3.155 26.736-3.488 34.208m-9.132-33.378s.996 16.772-3.985 22.75c-4.983 5.98 1.166 18.396 1.166 18.396m-60.53 8.063s3.567 6.256 8.55 4.097m-2.492-17.768s7.97 3.487 10.628 2.158m-1.993-30.39s-11.79 3.322-7.306 17.27c6.807 5.482 13.45 4.65 13.45 4.65M176.534 348.2c-.165 0 1.33 10.96 8.968 2.656 5.314-11.125 22.086-42.512 25.906-53.306m7.804-5.147s-8.137-6.31-7.804 2.49c-.167 5.48 2.49 6.808 2.49 6.808.332 3.987 3.82 9.632 6.642 4.485 1.163-4.982-.83-7.14-.83-7.14m4.65-8.968c-7.307-.5-11.292 15.61 2.824 5.482M232 284.596s-1.827 2.492-4.65-.166c-1.496-2.655-6.808 11.96 2.49 12.456 1.66-4.318 6.81-5.48 6.81-5.48m4.318-13.783s-4.153 1.992-5.647 1.66c-4.98 1.163-3.985 12.788 2.325 12.123 2.158-2.49 4.484-5.978 4.484-5.978m-40.32-23.002c-.168 0-16.48 25.653 9.093 32.46m197.945-71.073s-9.964 8.47-.664 22.086c-30.89-.5-47.493 13.782-48.822 23.413-39.357-2.822-32.216 8.802-45.003 12.62-17.105-14.28-42.18-6.31-40.52 7.972-11.46-16.108-29.06-8.303-31.22-4.318-2.158 3.986-1.328-19.76-1.328-19.76s-11.458 5.147-19.43 14.613c.167-6.31 0-16.607 0-19.928-9.576 1.937-18.82 2.047-28.73 1.827m-25.904-7.308s14.28 7.97 31.884-2.823m-33.047-25.906s11.127 9.962 32.05 6.808m-25.074-29.725s2.49 8.137 26.405 8.635m-18.306-27.454s9.005 11.014 21.127 9.354m-13.45-25.076s3.487 5.978 16.772 6.974m-8.97-24.41s6.976 7.638 14.947 6.31m26.55-68.394s3.088-3.088 8.236-1.544m-10.466 17.845s-9.61-.344-8.924-4.118c.688-4.29 10.125-7.38 10.125-7.38s12.524-8.063 14.412-10.81m-56.622 43.926l12.183 23.336 5.834-8.75 3.09 6.004 4.975-8.75 8.578 5.49-3.26-10.638 7.206-.515s-1.888-5.147-8.408-6.177c1.716-1.372 7.72-5.32 7.72-5.32s-3.43-3.945-8.75-4.117c1.717-1.888 4.12-6.52 3.947-6.52-.17 0-5.32-1.202-5.32-1.202s12.184 3.946 21.62-1.544m-23.325-18.867c.17.172-.687 4.805-3.26 7.55m-43.754 5.32s7.537-2.075 13.177-.9c5.587 1.15 13.077 3.13 13.077 3.13s8.92-1.2 11.84-3.26m-56.796 6.005s-1.028 3.603-1.37 6.006c0 1.715-5.493 3.946-5.493 3.946m10.297-17.33s4.804 6.005 4.975 9.436c.17 3.432-3.604 6.006-3.604 6.006m-50.96 25.566l-4.976-8.064 4.46-1.544m90.372 120.844c-3.985-5.148 2.99-84.195 17.77-104.783-5.15 37.198 11.955 75.226 16.273 75.06m-78.96-97.15s6.726 2.575 20.675-8.47m18.848 26.74l10.004.124m300.33-62.08s-166.7 77.894-169.13 82.02c28.15-8.495 147.532-28.392 150.447-26.694-7.038 1.7-151.905 34.942-158.698 42.95 36.155-1.213 111.87 11.648 123.75 24.023-25.72-5.824-102.646-17.23-126.18-12.134 17.23 4.126 83.232 46.833 83.232 53.627-9.95-9.463-89.3-42.222-92.453-39.067 18.198 10.92 43.922 51.442 43.92 61.392-5.338-8.493-51.2-57.753-53.87-54.6 4.855 6.797 14.472 64.944 9.555 67.64 0-7.038-17.804-57.932-19.26-59.388-3.64.97-26.334 62.094-21.838 67.778-2.91-20.382.484-62.924 6.065-61.226-9.947 1.456-41.698 43.32-38.302 49.87.97-10.433 2.39-17.353 20.346-52.054-19.898 1.212-61.148 27.178-68.187 36.4 5.58-16.5 40.524-44.408 55.81-46.35m71.956-60.72c17.62-9.777 72.065-29.73 108.383-44.37m-142.582 96.987s12.01-.17 24.022-32.772c11.836-44.607 105.692-94.365 107.58-103.634M128.018 252.767s-2.788 5.94-6.22 7.656m19.682 1.345s-3.724 7.233-4.582 10.665m17.465-7.128s3.124 9.873.55 14.506m-36.425-40.137c-9.437 5.32 5.37 38.935 50.152 42.195m-7.207-18.186s-1.2 6.005 7.207 18.016c-2.402 13.383 10.174 23.9 15.15 25.616m-25.96-164.25c0-.17 1.37-3.602 1.37-3.602l1.53 3.967 2.463-.063 1.625-3.977 1.334 3.992h2.446l1.51-4.433 2.28 4.196 1.936.098 1.525-5.112 3.143 3.662 1.142-.442.98-5.113 3.104 3.575.89-.523 1.44-5.04 2.58 3.748 1.3-.423 1.205-4.236 2.398 3.894m-38.965 6.283l18.717-.278c5.956-.09 15.763-8.344 26.745-5.77m-84.912 46.09s3.088 6.693 7.378 2.918m-14.584 1.545s-6.006 16.128 1.2 19.902m-9.78-37.748s0 3.775 7.893-2.058m-32.442 86.815s6.35 1.888 5.32 6.692m-2.92-80.817s3.945 1.887 7.72-3.946m34.145 189.602c6.177-.343 7.507 2.446 13.126 2.446 6.474.197 12.783-2.446 21.02-4.677m53.018 14.93c-.172 0-2.917 5.832-.515 8.748m-87.51-8.235s9.78-8.065 14.928-3.088c4.977 1.716 7.72 1.372 7.72 1.372m-17.495-21.274s2.402 6.176-5.663 5.32m-2.402 8.92s5.147 3.262-.686 7.55m3.774 5.835s7.034 1.03 2.916 6.69m224.316-49.437s19.104 1.977 19.983 3.405c2.195-2.306 19.254-16.124-1.717-18.1-3.512 14.385-17.938 14.916-18.267 14.696zm-6.807 9.552c7.135 5.71 4.21 9.13 26.61-5.91m-36.823 13.048s10.54 11.31 18.226-2.416m-38.32 6.478l-14.272 7.466m-25.692 10.542s8.674-7.467 12.736-3.514c4.062 3.952 21.3-3.403 21.3-3.403m-27.56-25.475s2.967 5.928-2.744 6.697m-8.563 11.86s3.008 5.574-2.812 7.11m9.51 8.04s9.003.44 5.82 7.247m78.395-8.455s-4.94 4.172-1.317 8.895m73.015-38.87s5.71 2.745-1.098 7.467m-5.71 9.882s4.282 4.5 1.428 8.233m10.54 9.003s5.93 1.647 5.27 6.588m77.734-10.98s-4.94 3.623-2.306 8.345M426.96 236.346c11.858-1.427 28.875 24.924 37.55 30.085m51.87-67.412s6.008 5.243.723 17.893m10.414-38.065c1.67 1.3 8.126 4.745 12.39 12.72m4.096-52.17c0 .108-8.344 22.507-8.344 22.507m17.676-23.606s-1.647 19.98-4.062 24.044m-33.124 36.413c-2.776 7.997-26.864 12.09-28.48.25-.822-6.026 14.268-15.322 28.48-.25z" fill="none" stroke-linejoin="round"/> - <path d="M182.346 101.32l9.268 1.715s-6.523 8.75-9.268-1.716z" stroke-linejoin="round"/> - </g> -</svg> diff --git a/img/flags/4x3/gb.svg b/img/flags/4x3/gb.svg deleted file mode 100644 index 7296592..0000000 --- a/img/flags/4x3/gb.svg +++ /dev/null @@ -1,15 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" height="480" width="640" viewBox="0 0 640 480"> - <defs> - <clipPath id="a"> - <path fill-opacity=".67" d="M-85.333 0h682.67v512h-682.67z"/> - </clipPath> - </defs> - <g clip-path="url(#a)" transform="translate(80) scale(.94)"> - <g stroke-width="1pt"> - <path fill="#006" d="M-256 0H768.02v512.01H-256z"/> - <path d="M-256 0v57.244l909.535 454.768H768.02V454.77L-141.515 0H-256zM768.02 0v57.243L-141.515 512.01H-256v-57.243L653.535 0H768.02z" fill="#fff"/> - <path d="M170.675 0v512.01h170.67V0h-170.67zM-256 170.67v170.67H768.02V170.67H-256z" fill="#fff"/> - <path d="M-256 204.804v102.402H768.02V204.804H-256zM204.81 0v512.01h102.4V0h-102.4zM-256 512.01L85.34 341.34h76.324l-341.34 170.67H-256zM-256 0L85.34 170.67H9.016L-256 38.164V0zm606.356 170.67L691.696 0h76.324L426.68 170.67h-76.324zM768.02 512.01L426.68 341.34h76.324L768.02 473.848v38.162z" fill="#c00"/> - </g> - </g> -</svg> diff --git a/img/flags/4x3/gd.svg b/img/flags/4x3/gd.svg deleted file mode 100644 index 5d84dc7..0000000 --- a/img/flags/4x3/gd.svg +++ /dev/null @@ -1,27 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" height="480" width="640" viewBox="0 0 640 480"> - <defs> - <g id="c"> - <g id="b"> - <path fill="#fcd116" transform="rotate(18 0 -1)" d="M0-1v1h.5" id="a"/> - <use transform="scale(-1 1)" xlink:href="#a"/> - </g> - <use transform="rotate(72)" xlink:href="#b"/> - <use transform="rotate(144)" xlink:href="#b"/> - <use transform="rotate(216)" xlink:href="#b"/> - <use transform="rotate(288)" xlink:href="#b"/> - </g> - </defs> - <path fill="#ce1126" d="M0 .05h640v480H0z"/> - <path fill="#007a5e" d="M67.2 67.2h505.6v345.6H67.2z"/> - <path d="M67.2 67.25h505.6L67.2 412.85h505.6z" fill="#fcd116"/> - <circle cx="319.917" cy="240.05" r="57.6" fill="#ce1126"/> - <use height="100%" width="100%" xlink:href="#c" transform="matrix(52.8 0 0 52.8 319.917 240.05)"/> - <use height="100%" width="100%" xlink:href="#d" x="-100" transform="translate(-30.327)"/> - <use height="100%" width="100%" id="d" xlink:href="#c" transform="matrix(31.2 0 0 31.2 320 33.65)"/> - <use height="100%" width="100%" xlink:href="#d" x="100" transform="translate(30.327)"/> - <path d="M102.315 240.706c7.206 13.424 21.224 28.032 33.466 33.168.196-13.632-4.64-31.104-11.255-45.024l-22.21 11.856z" fill="#ce1126"/> - <path d="M90.096 194.658c10.446 21.776-27.093 73.728 35.45 85.904-7.716-10.528-12.69-27.904-10.809-41.856 13.122 4.992 26.928 19.6 32.508 30.768 16.368-59.44-41.984-55.824-57.15-74.816z" fill="#fcd116"/> - <use transform="translate(-30.327 414.55)" x="-100" xlink:href="#d" width="100%" height="100%"/> - <use transform="matrix(31.2 0 0 31.2 320 448.2)" xlink:href="#c" width="100%" height="100%"/> - <use transform="translate(30.327 414.55)" x="100" xlink:href="#d" width="100%" height="100%"/> -</svg> diff --git a/img/flags/4x3/ge.svg b/img/flags/4x3/ge.svg deleted file mode 100644 index 0a9129c..0000000 --- a/img/flags/4x3/ge.svg +++ /dev/null @@ -1,6 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" height="480" width="640" viewBox="0 0 640 480"> - <path d="M0 0h640v480H0z" fill="#fff"/> - <path d="M272.001 0h96v480h-96z" fill="#f00"/> - <path d="M0 192h640v96H0z" fill="#f00"/> - <path style="mix-blend-mode:multiply" d="M146.848 373.155c1.023-16.824 3.969-31.155 3.969-31.155s-9.84 1.008-14.817 1.008c-4.902 0-14.814-1.008-14.814-1.008s2.946 14.331 3.969 31.155C108.33 372.129 94 369.186 94 369.186s1.008 7.407 1.008 14.814c0 7.41-1.008 14.814-1.008 14.814s14.331-2.943 31.155-3.969c-1.023 16.824-3.97 31.155-3.97 31.155s7.41-1.008 14.815-1.008c7.41 0 14.817 1.008 14.817 1.008s-2.946-14.331-3.97-31.155c16.822 1.026 31.153 3.969 31.153 3.969s-1.005-9.84-1.005-14.814c0-4.902 1.005-14.814 1.005-14.814s-14.331 2.943-31.152 3.969zm367.997-288c1.026-16.824 3.97-31.155 3.97-31.155s-9.84 1.008-14.815 1.008c-4.902 0-14.814-1.008-14.814-1.008s2.943 14.331 3.97 31.155C476.33 84.129 462 81.186 462 81.186s1.008 7.407 1.008 14.814c0 7.41-1.008 14.814-1.008 14.814s14.331-2.943 31.155-3.969C492.13 123.669 489.186 138 489.186 138s7.407-1.008 14.814-1.008c7.41 0 14.814 1.008 14.814 1.008s-2.943-14.331-3.969-31.155c16.824 1.026 31.155 3.969 31.155 3.969s-1.008-9.84-1.008-14.814c0-4.902 1.008-14.814 1.008-14.814s-14.331 2.943-31.155 3.969zm-367.997 0C147.87 68.331 150.817 54 150.817 54s-9.84 1.008-14.817 1.008c-4.902 0-14.814-1.008-14.814-1.008s2.946 14.331 3.969 31.155C108.33 84.129 94 81.186 94 81.186S95.008 88.593 95.008 96c0 7.41-1.008 14.814-1.008 14.814s14.331-2.943 31.155-3.969c-1.023 16.824-3.97 31.155-3.97 31.155s7.41-1.008 14.815-1.008c7.41 0 14.817 1.008 14.817 1.008s-2.946-14.331-3.97-31.155c16.822 1.026 31.153 3.969 31.153 3.969s-1.005-9.84-1.005-14.814c0-4.902 1.005-14.814 1.005-14.814s-14.331 2.943-31.152 3.969zm367.997 288c1.026-16.824 3.97-31.155 3.97-31.155s-9.84 1.008-14.815 1.008c-4.902 0-14.814-1.008-14.814-1.008s2.943 14.331 3.97 31.155C476.33 372.129 462 369.186 462 369.186s1.008 7.407 1.008 14.814c0 7.41-1.008 14.814-1.008 14.814s14.331-2.943 31.155-3.969C492.13 411.669 489.186 426 489.186 426s7.407-1.008 14.814-1.008c7.41 0 14.814 1.008 14.814 1.008s-2.943-14.331-3.969-31.155c16.824 1.026 31.155 3.969 31.155 3.969s-1.008-9.84-1.008-14.814c0-4.902 1.008-14.814 1.008-14.814s-14.331 2.943-31.155 3.969z" fill="#f00" fill-rule="evenodd"/> -</svg> diff --git a/img/flags/4x3/gf.svg b/img/flags/4x3/gf.svg deleted file mode 100644 index 25d0159..0000000 --- a/img/flags/4x3/gf.svg +++ /dev/null @@ -1,5 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" height="480" width="640" viewBox="0 0 640 480"> - <path fill="#078930" d="M0 0h640v480z"/> - <path fill="#fcdd09" d="M0 0l640 480H0z"/> - <path fill="#da121a" d="M252.37 218.025h135.26L278.203 297.53 320 168.89l41.798 128.64z"/> -</svg> diff --git a/img/flags/4x3/gg.svg b/img/flags/4x3/gg.svg deleted file mode 100644 index 4869ed6..0000000 --- a/img/flags/4x3/gg.svg +++ /dev/null @@ -1,9 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" height="480" width="640" viewBox="0 0 640 480"> - <path d="M0 0h640v480H0z" fill="#fff"/> - <path d="M256 0h128v480H256z" fill="#e8112d"/> - <path d="M0 176h640v128H0z" fill="#e8112d"/> - <path id="a" d="M109.991 286.667l23.342-23.343h210.01v-46.666h-210.01l-23.342-23.325z" fill="#f9dd16"/> - <use xlink:href="#a" transform="rotate(90 320 240)" height="24" width="36"/> - <use xlink:href="#a" transform="rotate(-90 320 240)" height="24" width="36"/> - <use xlink:href="#a" transform="rotate(180 320 240)" height="24" width="36"/> -</svg> diff --git a/img/flags/4x3/gh.svg b/img/flags/4x3/gh.svg deleted file mode 100644 index 56c18f6..0000000 --- a/img/flags/4x3/gh.svg +++ /dev/null @@ -1,6 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" height="480" width="640" viewBox="0 0 640 480"> - <path fill="#006b3f" d="M0 0h640v480H0z"/> - <path fill="#fcd116" d="M0 0h640v320H0z"/> - <path fill="#ce1126" d="M0 0h640v160H0z"/> - <path d="M320 160l51.987 160-136.104-98.885h168.234L268.013 320z"/> -</svg> diff --git a/img/flags/4x3/gi.svg b/img/flags/4x3/gi.svg deleted file mode 100644 index 33460ba..0000000 --- a/img/flags/4x3/gi.svg +++ /dev/null @@ -1,33 +0,0 @@ -<svg xmlns:xlink="http://www.w3.org/1999/xlink" xmlns="http://www.w3.org/2000/svg" height="480" width="640" viewBox="0 0 640 480"> - <path fill="#da000c" d="M0 0h640v480H0z"/> - <path fill="#fff" d="M0 0h640v321.563H0z"/> - <g transform="translate(-160) scale(1.875)" stroke="#000"> - <g id="a" fill="#da000c" stroke-linecap="square"> - <path fill="#000" stroke="none" d="M196.57 116.303h64v43.993h-64z"/> - <path d="M229.82 153.865h-39.07l-8.66 5.7v6.04h47.73m-16.35-37.011c5.624 0 10.218 4.69 10.218 10.47v14.78h7.343v-56h-40.28v56h12.5v-14.78c0-5.555 4.515-10.47 10.22-10.47z"/> - <path fill="#000" stroke="none" d="M204.528 59.962h18.523v33.96H204.53z"/> - <path d="M223 88.656h-16.21v-5.75h-11.884v5.75h-8.062v-5.75h-4.813v10.438H223m-36.156-.038h34.97v4.538h-34.97zm13.876-45.681v35.28h6.07V73.22c0-3.63 2.563-6.6 6.148-6.782.115-.006.226 0 .343 0a6.78 6.78 0 0 1 6.782 6.78v9.688h5.782v-35.28zm-2.19-4.781v4.78h29.25v-4.78zm-3.75-9.156v9.156h35.095v-9.157h-5.406v4.657h-6.532v-4.657h-9.97v4.657h-6.53v-4.657zm-12.69 125.876H230m31-2.751h-32.438l-9.78 4.718v7.032H261"/> - <path d="M218.77 161.52H262" stroke-linecap="butt"/> - </g> - <use height="100%" width="100%" xlink:href="#a" transform="matrix(-1 0 0 1 512 0)"/> - <g fill="#f8d80e"> - <g stroke-linecap="round"> - <path d="M273.297 150.03c-2.654.884-5.053 2.37-7.47 3.754-3.1 1.83-6.106 3.827-8.903 6.1-.985.648-1.93 1.36-2.69 2.272-1.025.878-2.064 2.055-1.868 3.513.05.642.873-.756 1.414-.824a4.39 4.39 0 0 1 3.142-.47c1.27-1.34 2.91-2.237 4.325-3.407 3.004-2.244 6.236-4.17 9.525-5.962 1.148-.59 2.3-1.186 3.525-1.602l-1-3.375z" stroke-width=".768"/> - <path d="M260.4 157.39v3.913m2.417-5.618v3.883m2.416-5.388v3.858m2.417-5.344v3.98"/> - <path d="M238.89 150.156l-1.186 3.313c5.536 2.1 10.808 4.877 15.797 8.06 1.692 1.15 3.468 2.265 4.797 3.845.293.81-.514 1.49-1.314 1.244-.732-.25-1.453-.533-2.226-.005-1.107.503-2.106 2.14-.426 2.69 2.316 1.556 6.083.88 7.196-1.844.58-1.4.618-3.195-.508-4.344-2.063-2.364-4.797-4.008-7.42-5.672-4.69-2.82-9.574-5.374-14.707-7.288z" stroke-width=".768"/> - <path d="M254.05 158.035l-.313 3.34m3.095-1.635l-.862 3.27m3.834-.998l-1.808 2.537m2.719 3.631l-2.61-1.4m3.423-1.35l-2.995.28m-.868 4.055l-.205-2.633m-.892-.376l-2.473 1.822m-9.418-15.641v3.115m6.286.192v3.534m-3.143-5.185v3.32"/> - </g> - <path d="M235.78 227.563v8.03h5.032v-4.03h6.844v4.03h5.406v-8.03zm0 11.062v8.063h17.282v-8.063h-5.406v4.03h-6.844v-4.03z"/> - <path d="M253.052 193.65h4.99v58.116h-4.99z"/> - <path d="M253.052 198.68h4.99v50.06h-4.99z"/> - <path d="M255.547 179.406l10.625 6.188-10.625 6.156-10.625-6.156zm-14.22 3.97h-2.78v4.436h2.78l14.22 8.25 14.22-8.25h2.78v-4.437h-2.78l-14.22-8.25z" stroke-width="1.024"/> - <path d="M255.344 164.28c-2.42.34-4.226 2.73-4.094 5.135.01 3.738-.018 7.476.014 11.214.13 2.407 2.233 4.565 4.675 4.587 1.984.188 3.978-.972 4.81-2.78l-1.718-1.03c-.444 1.183-1.724 1.917-2.97 1.78-1.634.046-2.958-1.544-2.812-3.134.01-3.713-.02-7.428.015-11.14.09-1.516 1.535-2.755 3.048-2.6.626-.18 1.487.676 1.875-.063.583-.83-.415-1.477-.97-1.937-.613-.085-1.253-.008-1.874-.032zm5.78 3.907c-.395.746-1.215 1.19-1.874 1.58v7.514l2 1.157c-.008-3.204.016-6.408-.01-9.61-.033-.198-.01-.5-.115-.64z" stroke-width="1.024"/> - </g> - <g fill="#da000c"> - <path fill="#000" d="M240.803 38.35h29.33v53.256h-29.33z" stroke="none"/> - <path d="M238.75 38.375v44.563h9.313v-13.22c0-3.048 1.952-7.28 7.937-7.28s7.938 4.232 7.938 7.28v13.22h9.312V38.374zm15.813 5h2.875v15.25h-2.875zm-8.25 3h2.906V57.53h-2.907zm16.468 0h2.908V57.53h-2.907zM235.594 31.97v6.343h40.812v-6.344zm-3.844-7.376v7.375h48.5v-7.376h-6.094v4.062h-6.875v-4.062h-7.842v4.062h-6.875v-4.062h-7.844v4.062h-6.876v-4.062zm-9 73.25v4.594h66.5v-4.594z"/> - <path d="M220.03 82.906v14.938h71.94V82.906h-6.814v5.75h-9.062v-5.75h-12.156v5.75h-15.875v-5.75h-12.157v5.75h-9.062v-5.75z"/> - <path d="M228.688 102.438v54.343h12.843v-20.343c0-9.582 6.398-14.093 14.47-14.093 7.76 0 14.47 4.51 14.47 14.094v20.343h12.842v-54.343z" stroke-linejoin="round"/> - </g> - </g> -</svg> diff --git a/img/flags/4x3/gl.svg b/img/flags/4x3/gl.svg deleted file mode 100644 index c41d1f4..0000000 --- a/img/flags/4x3/gl.svg +++ /dev/null @@ -1,4 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" height="480" width="640" viewBox="0 0 640 480"> - <path d="M0 0h640v480H0z" fill="#fff"/> - <path d="M0 240h640v240H0zm80 0c.014 88.356 71.644 159.975 160 159.975S399.986 328.355 400 240c-.014-88.356-71.644-159.975-160-159.975S80.014 151.645 80 240" fill="#d00c33"/> -</svg> diff --git a/img/flags/4x3/gm.svg b/img/flags/4x3/gm.svg deleted file mode 100644 index 9d2ce5c..0000000 --- a/img/flags/4x3/gm.svg +++ /dev/null @@ -1,14 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" height="480" width="640" viewBox="0 0 640 480"> - <defs> - <clipPath id="a"> - <path fill-opacity=".67" d="M0-48h640v480H0z"/> - </clipPath> - </defs> - <g fill-rule="evenodd" clip-path="url(#a)" transform="translate(0 48)" stroke-width="1pt"> - <path fill="red" d="M0-128h640V85.33H0z"/> - <path fill="#fff" d="M0 85.333h640v35.556H0z"/> - <path fill="#009" d="M0 120.89h640v142.22H0z"/> - <path fill="#fff" d="M0 263.11h640v35.556H0z"/> - <path fill="#090" d="M0 298.67h640V512H0z"/> - </g> -</svg> diff --git a/img/flags/4x3/gn.svg b/img/flags/4x3/gn.svg deleted file mode 100644 index 4a3adab..0000000 --- a/img/flags/4x3/gn.svg +++ /dev/null @@ -1,7 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" height="480" width="640" viewBox="0 0 640 480"> - <g fill-rule="evenodd" stroke-width="1pt"> - <path fill="red" d="M0 0h213.333v480H0z"/> - <path fill="#ff0" d="M213.333 0h213.333v480H213.333z"/> - <path fill="#090" d="M426.666 0H640v480H426.665z"/> - </g> -</svg> diff --git a/img/flags/4x3/gp.svg b/img/flags/4x3/gp.svg deleted file mode 100644 index b17c8ad..0000000 --- a/img/flags/4x3/gp.svg +++ /dev/null @@ -1,7 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" height="480" width="640" viewBox="0 0 640 480"> - <g fill-rule="evenodd" stroke-width="1pt"> - <path fill="#fff" d="M0 0h640v480H0z"/> - <path fill="#00267f" d="M0 0h213.337v480H0z"/> - <path fill="#f31830" d="M426.662 0H640v480H426.662z"/> - </g> -</svg> diff --git a/img/flags/4x3/gq.svg b/img/flags/4x3/gq.svg deleted file mode 100644 index 9e3c900..0000000 --- a/img/flags/4x3/gq.svg +++ /dev/null @@ -1,31 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" height="480" width="640" viewBox="0 0 640 480"> - <path fill="#e32118" d="M0 0h640v480H0z"/> - <path fill="#fff" d="M0 0h640v320H0z"/> - <path fill="#3e9a00" d="M0 0h640v160H0z"/> - <path d="M0 0v480l180-240z" fill="#0073ce"/> - <g stroke="#000"> - <path d="M281.563 191.76h76.6V272c0 27-35.2 6.2-38.2 20.6-5.2-14.8-38.2 6.6-38.2-22.2 0-28-.2-78.64-.2-78.64z" fill="#fff" stroke-width=".96"/> - <path d="M325.363 279.8s-1 1-2.8.2c-1.8-.8-2-51.4-2-51.4 4-4.4 7.2-5.8 7.2-5.8l2.4 2c-9 4.6-8.2 11.2-7.4 22.6.2 4.2.2 9.6 1.2 14.8 1.4 6.6 4.2 12.2 4.4 16.4.2 2.6-3 1.2-3 1.2z" fill="#73452b" stroke-width=".2"/> - <path d="M319.163 221.6h3.6c-3 29-.4 46.2-.4 54.6 0 2.8 1.6 3.8 1.4 3.8-3.6 4-5.4-.2-5.4-.2z" fill="#73452b" stroke-width=".2"/> - <path d="M313.563 279.8c-3.4 1.6-3.8-1.6-3.6-2 7.4-15 10.6-48 3.8-51.6l.4-3.2c2.6.8 5 4.2 5 4.2 1 37 0 52.2-.6 52.8-3.6 3.8-5-.6-5.2-1" fill="#a36629" stroke-width=".2"/> - <path d="M313.363 279.2c-.6-3.2 5.2-11.4 4.8-20M323.163 266.2c1.8 5 2.6 9.4 2.2 13.6" fill="none" stroke-width=".2"/> - <path d="M330.963 208c1.2-1.4 1.2-1.4 3.4-1.4.4-3 5.4-3 5.8.8 4-.8 4.8 1.6 3.2 4 3.8-1 7.2 0 6.2 4.4 6.8 1.8 4.2 6.6 1.2 7.6-.4 3-3.2 4-7 2.8-4.8 3.4-7.6 2.2-9.8-1.2-5.4.8-5.8-.4-8.2-3.4-4.2 1.8-5 1.8-8.6-.4-.2 2.8-1.2 2-3 1.8.2 3.6-1.2 5.2-4.4 4 2.4 5-3.8 7.2-6.8 3-2.8.2-3-.6-4.4-1.6-1.2 4-5.6 3.4-6.4 1.2-5.6-.8-5-3.8-.4-4 .4-3.2 3.2-2.6 5-2.2.2-2 1.4-1.6 2.4-1.2-.6-1.4-.2-2.2 1.6-2.6-2.6-3.4-1-4.6 1.6-5.8-1.4-3.2 1-3 2.8-3.2-.2-3.4.8-4 4.4-4.4-.4-1.2.2-2.2 2.2-2.2-1.2-3.4.4-4.18 4-3.6.6-4.94 11.2-2.6 10.4 4.2 3 .4 4 1 4.8 3.4z" fill="#009a3b" stroke-width=".2"/> - <g fill="none"> - <path d="M309.563 206.2c.8.4 1.8 0 2 2.2 1.6-2.8 3.6-1.2 3.6 2M326.163 204.6c-.8 1.2-3.8 1.2-3.4 4.4-1-1.4-3-1.8-3.8-.4M330.963 208c0 .8-.2 3.2-1 4.4M343.363 211.4c.2.2-2.8 0-4.2 1M350.763 223.4c-.8-.4-2.4-1.4-3.6.2 0-.8 0-3-2.2-3M343.763 226.2c0-2-.4-2.6-.8-3.2M337.163 223.4c-1.6-1.2-3.2.6-3.2 1.6M325.563 221.6c0-.8-.6-2.4.8-3M302.763 230c.4-2 1.8-2 1.6-3-.2-1.6-2-3-4.2-.8M304.363 227c1.2-.4 2.4-.2 2.8.4M300.963 219.6c.8-.8 2.8-.6 4 0M304.963 214.8c1 0 2.8-.4 3.4 1.4 2.2-3.4 3.8-3 4.2-2.2M316.563 213.6c1.6-.6 4.4 1 6 3.8.8-2.2 2-1.8 3.2-2M333.363 217.4c2.6-1.2 4.2 1.2 5 2.2 1.2-1.6 2.2-1.6 3.4-1.6M309.163 222.2c.6-1 2-1.2 3-.6-.2-1.8 1-2.6 1.8-2.2" stroke-width=".2"/> - </g> - <g fill="gold" stroke-width="3.5"> - <path d="M317.363 180.52l-4.4.2-2.2 3.94-2.4-3.76-4.4.18 2-3.96-2.4-3.76 4.6-.2 2-3.94 2.4 3.76 4.4-.18-2 3.96zM298.563 181.98l-4.4 1.08-1.2 4.26-3.2-3.2-4.2 1.04 1.2-4.26-3-3.24 4.2-1.06 1.2-4.28 3.2 3.2 4.4-1.04-1.4 4.28zM280.363 185.72l-4 1.98-.2 4.44-3.8-2.44-4 1.96.4-4.44-3.8-2.46 4-2 .4-4.44 3.6 2.44 4-1.96-.2 4.44zM323.163 180.52l4.4.2 2 3.94 2.4-3.76 4.4.18-2-3.96 2.4-3.76-4.4-.2-2.2-3.94-2.4 3.76-4.4-.18 2 3.96zM341.963 181.98l4.2 1.08 1.2 4.26 3.2-3.2 4.2 1.04-1.2-4.26 3.2-3.24-4.4-1.06-1.2-4.28-3.2 3.2-4.2-1.04 1.2 4.28zM359.963 185.72l4 1.98.2 4.44 3.8-2.44 4 1.96-.2-4.44 3.6-2.46-4-2-.2-4.44-3.8 2.44-4-1.96.4 4.44z" stroke-width=".7000000000000001"/> - </g> - <g> - <g fill="#fff" stroke-width="3.5"> - <path d="M365.363 270.4l5 7.2 4.6-6.8-3.2-5.8zM333.563 291.4l.4 7.2s2 0 3.8-.6c1.6-.6 3-1.8 3-1.8l-.2-3.8zM306.763 291.4l-.4 7s-1.8 0-3.6-.4c-1.6-.4-3-1.4-3-1.4l-2-4.8zM274.563 270.4l-5.2 7.2-5.6-9.2 4.2-4.4z" stroke-width=".7000000000000001"/> - <path d="M299.563 305.8c0 6.8 41.2 6.8 41.2 0v-9.6c0 5-41.2 4-41.2 0z" stroke-width=".7000000000000001"/> - <path d="M262.763 283.6c3.6 18.4 36.8 18.8 36.8 18.8v-6.2c-.8-2.4.6-3.2 6-4 2.2-.2 1.2-3.4 1.2-3.4s-14.4 2.6-24.6-1.4c-13.8-5.6-15.8-16.4-15.8-16.4s-1 8.4-3.6 12.6zM377.363 283.6c-3.4 18.4-36.6 18.8-36.6 18.8v-6.2c.6-2.4-.8-3.2-6.2-4-2.2-.2-1-3.4-1-3.4s14.4 2.6 24.6-1.4c13.6-5.6 15.2-16.4 15.2-16.4s1.4 8.4 4 12.6z" stroke-width=".7000000000000001"/> - <path d="M265.363 276.6c-9.2-5-2-10.2-1.2-25 1.4 9 11.6 12.8 10.4 18.6-4.2.2-6.2-6.2-8.2.8l-1 5.6zM374.763 276.6c9.2-5.2 1.6-10.2.8-25-1.4 9-11.4 12.8-10.2 18.6 4 .2 6-6.2 8 .8l1.4 5.4z" stroke-width=".7000000000000001"/> - </g> - <g stroke="none"> - <path d="M270.963 283.4l1 .8-2.2 2.4c-.88.96-1.093 1.596-.481 2.181.759.726 1.293.474 2.081-.381l2.4-2.6.8.8-2.397 2.798c-1.302 1.519-2.51 1.171-3.524.224-.883-.824-1.39-2.02-.09-3.49l2.42-2.72zM274.963 286.8l1 .6-.2 4.8 2.2-3.4 1 .6-3.2 5.2-1.2-.6.2-4.8-2.2 3.4-1-.6zM276.763 295.2l2.8-5.6 1 .6-2.6 5.4zM281.163 290.4l-2.208 5.796 2.208.804c2.058.75 3.024-.156 3.678-1.896.66-1.77.372-3.072-1.686-3.9l-1.992-.804zm.792 1.404c2.07.72 2.196 1.506 1.632 2.928-.546 1.35-1.056 1.878-3.024.864l1.392-3.792zM287.763 292.6l-3.6 5.4 1.392.408.804-1.404 2.4.6.204 1.404 1.392.192-1.392-6.396-1.2-.204zm.396 1.404l.396 2.4-1.596-.204 1.2-2.196zM291.183 293.12l-.216 6.198 2.354.046c2.188.042 2.81-1.124 2.864-2.982.054-1.89-.642-3.03-2.86-3.143l-2.141-.12zm1.201 1.075c2.193.01 2.568.71 2.49 2.24-.073 1.454-.39 2.117-2.576 1.793l.086-4.033zM312.163 301.8v6.396h1.404v-2.4s1.2.072 2.196-.192c.786-.204 1.332-.708 1.35-1.95.018-1.218-.69-1.854-1.914-1.854h-3.04zm1.404.996l1.41.018c1.176 0 .954 1.782.036 1.782h-1.446v-1.8zM319.363 301.8l-2.604 6.396h1.404l.6-1.596h2.604l.6 1.596h1.392l-2.6-6.4h-1.4zm.6 1.404l.996 2.4h-1.8l.804-2.4zM323.363 307l3.4-4.2h-3v-1h4.8v1l-3.6 4.2h3.6v1.2h-5.2zM343.563 294.6l1.2-.2.6 3.6c.214 1.28-.371 2.153-1.282 2.489-1.038.383-2.362.033-2.518-1.689l1-.2c.233 1.03.648 1.12 1.128.958.38-.128.577-.728.472-1.358zM345.563 294.24l1.185-.225.548 2.996c.234 1.282.636 1.827 1.47 1.682 1.034-.18 1.148-.76.928-1.902l-.736-3.196 1.211-.183.804 3.324c.47 1.945-.546 2.716-1.91 2.97-1.187.222-2.45-.08-2.864-1.997zM351.763 297l1-.4c.491.881 1.256.836 1.851.573.827-.366.922-1.088.513-1.333-.583-.349-1.974.147-2.723-.127-.896-.327-1.281-.831-1.235-1.606.055-.933.876-1.446 1.769-1.723.999-.31 1.985-.2 2.625 1.016l-1.2.4c-.39-.657-.893-.626-1.339-.416-.373.177-.957.508-.644 1.042.255.436 1.725.153 2.5.184.8.033 1.447.567 1.555 1.338.151 1.073-.246 1.655-1.488 2.139-1.533.598-2.916-.072-3.183-1.087zM357.163 292l-1.6.8-.4-1 4.4-1.8.4.8-1.6.8 1.8 4.4-1 .6zM359.763 289.8l1-.6 2.8 5.2-1 .6zM366.563 290.2l1.2-.4c.565 1.186-.283 3.343-2.355 3.299-3.032-.065-3.36-3.406-2.884-4.508.801-1.85 3.045-1.815 4.04-.791l-1 .8c-.634-.813-2.043-.3-2.138.447-.155 1.222.382 2.358 1.474 2.897.926.457 2.352-.692 1.663-1.744zM365.963 286l1-.8 3.6 4.8-1 .8zM369.763 283l-.996.804 2.196 6 .996-.996-.6-1.2 1.8-1.608 1.2.6 1.008-.792-5.604-2.808zm.396 1.404l2.004.996-1.2 1.2-.804-2.196z"/> - </g> - </g> - </g> -</svg> diff --git a/img/flags/4x3/gr.svg b/img/flags/4x3/gr.svg deleted file mode 100644 index 5126e38..0000000 --- a/img/flags/4x3/gr.svg +++ /dev/null @@ -1,22 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" height="480" width="640" viewBox="0 0 640 480"> - <defs> - <clipPath id="a"> - <path fill-opacity=".67" d="M0 0h120v90H0z"/> - </clipPath> - </defs> - <g fill-rule="evenodd" clip-path="url(#a)" transform="scale(5.33)" stroke-width="1pt"> - <path fill="#0d5eaf" d="M0 0h135v10H0z"/> - <path fill="#fff" d="M0 10h135v10H0z"/> - <path fill="#0d5eaf" d="M0 20h135v10H0z"/> - <path fill="#fff" d="M0 30h135v10H0z"/> - <path fill="#0d5eaf" d="M0 40h135v10H0z"/> - <path fill="#fff" d="M0 50h135v10H0z"/> - <path fill="#0d5eaf" d="M0 60h135v10H0z"/> - <path fill="#fff" d="M0 70h135v10H0z"/> - <path fill="#0d5eaf" d="M0 80h135v10H0zM0 0h50v50H0z"/> - <g fill="#fff"> - <path d="M20 0h10v50H20z"/> - <path d="M0 20h50v10H0z"/> - </g> - </g> -</svg> diff --git a/img/flags/4x3/gs.svg b/img/flags/4x3/gs.svg deleted file mode 100644 index 43b8fd6..0000000 --- a/img/flags/4x3/gs.svg +++ /dev/null @@ -1,205 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" height="480" width="640" viewBox="0 0 640 480"> - <defs> - <linearGradient id="b"> - <stop stop-color="#d5dfff" offset="0"/> - <stop stop-color="#fff" offset="1"/> - </linearGradient> - <linearGradient id="a"> - <stop stop-color="#474747" offset="0"/> - <stop stop-color="#f50" offset="1"/> - </linearGradient> - <linearGradient id="c" y2="173.45" xlink:href="#a" gradientUnits="userSpaceOnUse" x2="110.94" gradientTransform="matrix(1.5 0 0 .65 40.51 .01)" y1="218.47" x1="109.34"/> - <linearGradient id="d" y2="337.23" gradientUnits="userSpaceOnUse" x2="126.02" gradientTransform="matrix(1.23 0 0 .8 40.51 .01)" y1="316.38" x1="125.91"> - <stop stop-color="#b50000" offset="0"/> - <stop stop-color="#ffc500" offset="1"/> - </linearGradient> - <linearGradient id="e" y2="147.35" xlink:href="#b" gradientUnits="userSpaceOnUse" x2="456.4" gradientTransform="matrix(.56 0 0 1.76 40.51 .01)" y1="149.38" x1="407.87"/> - <linearGradient id="f" y2="102.99" xlink:href="#a" gradientUnits="userSpaceOnUse" x2="228.97" gradientTransform="matrix(.74 0 0 1.33 40.51 .01)" y1="102.99" x1="215.83"/> - <linearGradient id="g" y2="1003.7" xlink:href="#b" gradientUnits="userSpaceOnUse" x2="78.221" gradientTransform="matrix(2.56 0 0 .38 40.51 .01)" y1="1040.4" x1="117.6"/> - <linearGradient id="h" y2="226.38" xlink:href="#b" gradientUnits="userSpaceOnUse" x2="255.03" gradientTransform="matrix(.9 0 0 1.1 40.51 .01)" y1="245.98" x1="264.72"/> - </defs> - <path fill="#006" d="M0 0h640v480H0z"/> - <g stroke-width="1pt"> - <path fill="#fff" d="M0 0v32.946l403.223 261.736h50.755v-32.945L50.755 0H0zm453.978 0v32.945L50.755 294.68H0v-32.944L403.223 0h50.755z"/> - <path fill="#fff" d="M189.157 0v294.68h75.663V0h-75.663zM0 98.227v98.227h453.978V98.227H0z"/> - <path fill="#c00" d="M0 117.872v58.937h453.978V117.87H0zM204.29 0v294.68h45.398V0H204.29zM0 294.68l151.326-98.226h33.836L33.836 294.68H0zM0 0l151.326 98.227H117.49L0 21.965V0zm268.816 98.227L420.142 0h33.836L302.652 98.227h-33.836zM453.978 294.68l-151.326-98.226h33.836l117.49 76.263v21.964z"/> - </g> - <path d="M463.75 349.947s-2.878 7.61-4.523 7.61c-1.646 0-7.61-3.29-7.61-3.29s-4.32 6.99-6.58 7.403c-2.263.41-8.227-1.03-8.227-1.03s-5.758 0-5.964-.82c-.206-.824.206-2.47.206-2.47s-8.227 6.582-10.078 6.17c-1.85-.41-8.02-8.226-8.02-8.226l-1.03 4.123-11.723-.413-10.283-6.584s-5.758 9.46-5.964 9.255c-.205-.206-10.077 2.262-10.077 2.262l-.617-1.85-6.582-3.908s5.14-7.2 5.14-7.405c0-.205-2.467-1.028-2.467-1.028l-3.7 3.085-7.61 4.935-7.61-3.496 3.292-6.168.41-4.525 5.965-9.05 73.008-70.95 35.99 66.427-5.347 19.948z" fill-rule="evenodd" stroke="#000" stroke-width="1.147" fill="#6a4c2d"/> - <path d="M515.62 354.25l19.003-.682-8.09-3.996 72.41-2.73-10.232-3.897-9.063-12.28-37.52-2.826s-2.827-2.145-7.407-1.073c-.195-2.923-3.704-6.724-3.704-6.724l-23.097-1.754-14.425 9.842 9.746 24.948 12.378 1.17z" fill-rule="evenodd" stroke="#000" stroke-width="1.147" fill="#fff"/> - <path d="M121.32 150.76l2.224-7.561s3.892-6.562 3.892-9.453c0-2.892 2.89-6.34 2.89-6.34s8.897-2.557 10.787 2.892c9.563-14.457 20.794-.668 20.794-.668l3.114-3.67 6.34-7.783s9.006 8.45 9.117 9.895 1.557.445 1.557.445l9.786-.778s4.644 3.635 3.67 10.564c3.448 2.034 6.56 14.01 6.56 14.01l-80.73-1.556z" fill-rule="evenodd" stroke="#000" stroke-width="1pt" fill="url(#c)" transform="matrix(.86 0 0 .86 337.27 11.7)"/> - <path d="M515.505 218.72c1.45-.893 6.023-2.343 5.465-9.035-.557-6.692-6.357-7.473-9.592-7.25-3.235.223-6.135 3.01-6.135 3.01l-10.707-6.802s5.353-33.797 11.042-35.916c5.402-3.893 6.358-5.577 6.358-6.47s-2.008-3.122-2.008-3.122l-34.912-4.127L442 152.912s-2.564 3.904-2.23 5.465.446 3.235 6.358 7.808c6.54 5.03 11.042 33.908 11.042 33.908s-9.258 4.573-9.815 4.015c-.558-.557-3.346-1.115-4.796-.892-1.45.223-6.247 2.677-6.247 9.034 0 6.358 4.796 10.04 4.796 10.04s31.564-3.68 36.25 5.018c4.572-10.484 34.576-6.803 38.145-8.588z" fill-rule="evenodd" stroke="#000" stroke-width=".86pt" fill="#656263"/> - <path stroke-linejoin="round" d="M549.51 183.588s.35-3.67 2.97-5.415c2.62-1.747 20.088-2.62 24.28 0s5.765 15.547 5.765 15.547 2.62 4.542 2.795 7.86.524 5.59.524 5.59 13.975 18.168 14.15 34.588c1.572 11.18 1.222 41.05-3.145 52.405-.176 14.148-6.115 23.407-6.115 23.407s1.398 2.445 1.223 5.066c-.175 2.62-1.573 5.066-1.573 5.066l20.438 10.132-7.51-2.795s7.686 6.46 7.51 6.287c-.174-.175-8.56-4.018-8.56-4.018l5.067 5.065c-.175-.175-12.402-5.59-12.402-5.59s5.763 5.416 5.414 5.24c-.35-.174-9.258-4.367-9.258-4.367s5.59 5.94 5.416 5.59-8.036-3.493-8.036-3.493l.35 2.97s-6.29-.35-6.29-5.067c-3.143-1.747-5.24-4.192-5.24-4.192l-14.498-2.445-16.42-49.086 3.843-82.974 1.047-4.193-1.748-11.18z" stroke-opacity=".979" fill-rule="evenodd" stroke="#000" stroke-width="1.075"/> - <path d="M538.536 448.752s-8.41-17.698-12.604-17.946c-3.784-7.212 13.15-66.187 45.907-69.55 18.01 1.485 1.48 20.763-10.36 14.83 1.478 5.19 7.4 12.605 7.4 12.605s-23.438 10.135-30.344 60.062z" fill-rule="evenodd" stroke="#000" stroke-width="1.139" fill="#fb0"/> - <path d="M425.773 451.332s6.96-20.138 11.187-20.386c4.226-.25-11.187-67.126-44.75-67.623-18.148 1.492-1.49 20.883 10.442 14.917-1.49 5.22-7.458 12.68-7.458 12.68s23.618 10.192 30.58 60.412z" fill-rule="evenodd" stroke="#000" stroke-width=".86pt" fill="#fb0"/> - <path d="M456.56 325.54c-.08-.162-8.33 2.588-2.99 11.565.403-3.478 4.123-5.58 4.123-5.58s-5.66 6.712.324 12.373c.727-5.337 4.124-7.035 4.124-7.035s-4.204 12.373.082 14.88c.485-4.934 3.64-7.117 3.64-7.117s-3.802 11.08-.405 13.587c.404-4.205 3.235-6.066 3.235-6.066s-1.7 11.485 2.75 12.293c.08-4.043 3.315-8.006 3.315-8.006s-1.456 9.38 5.5 9.786c.08-3.56 1.375-7.603 1.375-7.603s3.154 9.948 7.763 8.33c-.08-2.91.08-8.41 0-8.41s2.912 9.462 8.41 7.683c-.807-2.67.325-5.824.325-5.824s2.912 5.904 8.17 3.963c.888-1.78-.245-5.257-.245-5.257s7.684 7.926 10.03 3.154c2.345-4.772-6.148-6.39-6.148-6.39h5.743s-1.86-4.85-9.625-5.903c2.67-1.213 5.42-.324 5.42-.324s-1.618-6.065-9.544-6.712c3.074-1.052 6.47-.324 6.47-.324s-1.05-5.74-9.785-7.36c1.376-1.536 5.095-1.05 5.095-1.05s-3.477-5.42-7.44-5.096-39.79-3.64-39.71-3.558z" fill-rule="evenodd" stroke="#000" stroke-width=".86pt" fill="#00713d"/> - <path d="M491.898 354.737s3.154 1.537 3.073 2.912m-1.207-5.415s4.044 2.83 3.963 4.933m-.411-6.395s3.235 2.022 3.397 5.177m2.021-3.879s1.618 3.48 1.05 4.125m2.192-2.267c.243 2.75-.243 2.992-.243 2.992m-39.635-20.38s3.8 2.425 3.478 5.822m-3.719-2.907s1.78 1.697 1.375 2.83m3.321-5.66s2.507 3.478 1.698 5.904m2.585-3.642s1.132 2.184.08 3.397m1.941-2.348s1.375 2.184.16 2.91m-1.691 4.288s3.558.81 4.044 3.478m-1.946-5.902s3.72.242 4.125 4.205m.811-5.582c.08 0 2.507 4.286 2.103 5.66m2.671-5.256s.97 4.125.242 5.418m2.828-3.801c0 .08.08 4.77.08 4.77m-4.767-11.237s2.345.89 2.183 3.154m-.007-5.261s2.992 1.7 2.668 4.934m.815-6.301s2.588 3.072 1.617 6.47m2.907-5.748s-.972 3.8-.568 5.338m3.318-2.749s-1.697 1.294-.808 2.912m-13.905 11.888s.565 2.91 0 3.396m-3.724-5.09s1.86 3.234 1.212 4.852m-5.177-5.015s2.103 2.426 2.022 4.367m-5.255-3.886s1.94 1.86 1.78 2.91m-3.475-.08s1.86 1.94 1.78 2.345" stroke-width="1.075" stroke="#3ec26d" stroke-linecap="round" fill="none"/> - <path d="M430.89 222.21l26.748-.477s17.674 0 19.585 5.732c3.343-7.642 18.628-7.164 18.628-7.164 9.236-.317 18.47-.637 27.705-.955l.48 66.873c-5.415 25.953-24.203 44.263-44.902 52.065-24.68-7.962-40.283-28.82-45.378-52.543l-2.865-63.53z" fill-rule="evenodd" stroke="#000" stroke-width=".86pt" fill="#fff"/> - <path d="M440.418 221.96l38.964 103.84 35.2-106.098c-10.918.704-34.347-1.72-37.258 8.244-4.503-8.917-29.15-5.322-36.906-5.982z" fill-rule="evenodd" stroke="#000" stroke-width=".86pt" fill="#006b00"/> - <path d="M466.94 278.18c1.5.784 1.458-28.18 3.426-29.08.563-2.398.845-3.448 1.547-5.996-1.687-2.998-9.28-2.848-12.09-.3 1.264 4.048 1.826 5.397 1.826 5.397 3.796 6.146 3.042 30.633 5.29 29.98z" fill-rule="evenodd" stroke="#006b00" stroke-linecap="round" stroke-width=".593" fill="#ffc900"/> - <path stroke-linejoin="round" d="M456.5 54.31s2.753-3.127 2.878-3.877c.126-.75 12.512-1.25 19.893-15.014 4.13-7.258 0-3.004 0-3.004l-.25-3.503s5.13-4.88 3.255-7.507c-1.877-2.627-1.252 3.378-4.255 3.253-3.002-.126-1.376-6.507-1.376-6.507s-.25-.75-1.126-1.126c-1.25.125-.876 2.377-2.002 2.627-1.125.25-2.126-5.255-2.126-5.255s-1.877-2.503-3.504 5.38c.876 8.382 6.256 6.756 6.256 12.26 0 5.505-4.755 9.76-6.13 9.884-1.377.126-.877-4.63-.877-4.63s-.75-2.25-1.25-2.25 2.752-.5 2.252-6.757c-1.127-7.507-2.002 1.75-4.004 1.376s-.5-6.88.25-7.632-.876-3.877-5.255 4.13c-.375 3.88-.876-1-1.75-.75-1.503 3.127-1.253 5.38.874 8.257 3.128 2.877 5.13 5.755 5.005 7.256-.125 1.502-1.75 4.88-4.004 4.88s.125-4.13 0-5.505c-.125-1.376-3.878-6.38-3.878-6.38s-2.628-4.255-2.377-4.38c.25-.125-.25-.75-1.502 3.628s-2.753-2.877-2.753-2.877-1.75 5.38 2.002 8.63c-2.877-.374-3.128.752-3.128.752 0 1.502 3.88 2.127 4.38 4.754s-4.004 4.13-4.004 4.13 1.877 2.627 7.13-2.503c.127 3.253-2 5.505-2 5.505 1.75.792 3.127.71 3.377 2.753z" fill-rule="evenodd" stroke="#000" stroke-width="1.075" fill="#cdad56"/> - <path stroke-linejoin="round" d="M439.335 54.31s-2.338-3.47-2.444-4.154c-.105-.683-11.502.864-16.895-13.035-3.506-6.603 0-2.732 0-2.732l.213-3.187s-3.732-4.565-2.138-6.955c1.594-2.39.938 3.073 2.988 3.085 2.55-.114 1.168-5.92 1.168-5.92s.212-.684.957-1.025c1.062.114 1.494 3.54 2.452 3.767.955.228 2.93-4.03 3.557-4.907.875-.125.842-3.528 2.224 3.645-.744 7.627-7.064 6.147-7.064 11.156 0 5.01 4.038 8.88 5.206 8.994 1.17.114.744-4.212.744-4.212s.637-2.05 1.062-2.05c.426 0-3.713.796-3.29-4.896.958-5.33 3.078.343 4.778 0 1.7-.34-.2-5.635.288-6.443.113-.81 2.62-4.28 3.588 3.38.32 3.53 2.244-3.037 2.988-2.81 1.276 2.847-.564 6.648-2.37 9.266-2.656 2.62-3.856 5.488-3.75 6.854.106 1.366.737 3.063 2.65 3.063 1.913 0 .644-2.38.75-3.633.107-1.252 3.295-5.305 3.295-5.305.626-1 .106-2.87.77-3.735 1.037.01 1.462-1.434 2.525 2.55 1.062 3.986 2.337-2.617 2.337-2.617s1.488 4.895-1.7 7.855c2.445-.34 2.656.683 2.656.683 0 1.367-1.166 1.937-1.592 4.327-.425 2.39 1.273 3.757 1.273 3.757s-1.594 2.39-6.057-2.277c-.107 2.96 1.7 5.01 1.7 5.01-1.487.72-2.655.645-2.87 2.504z" fill-rule="evenodd" stroke="#000" stroke-width=".945" fill="#cdad56"/> - <path d="M508.083 237.45c-2.33-2.115-2.607-.267-3.754-.74-.562-.236-1.003-.762-1.49-1.24-.426-.437-.93-.617-1.492-.854l-.636 1.88c-.212.625.59 1.663.572 2.603-.16 1.396-.728 2.552-2.48 3.03.5-.99.782-1.038.63-2.246-.076-.604-1.765-1.675-1.557-2.247.31-.92.838-1.982.448-2.9-.72.492-1.66.234-2.38.534-.604.27-.645 1.395-1.486 1.863-.863.403-2.764.203-4.35-.698.97-.735 1.77-.24 2.74-.975.486-.368.464-1.944.95-2.312s1.645-.76 2.13-1.128c-.435-.497-.412-1.284-.848-1.78-.437-.497-2.37-.39-2.808-.887-.872-.993-.706-2.3-1.58-3.295 2.26.81 1.932 1.91 2.498 1.828 1.07-.513 2.138-.615 2.7-.38.56.237 1.63 1.633 2.19 1.87.212-.627.52-1.422.733-2.048.212-.627-.953-1.712-.74-2.34.423-1.25 1.476-2.358 1.9-3.61.152 1.207.353 2.223.505 3.43.076.605 1.263.918 1.34 1.523.075.605-.62 2.007-.545 2.61.65-.13 1.587-.04 2.235-.17.648-.13 1.08-1.637 1.727-1.766 1.297-.258 2.23-.18 3.552.07-.97.904-1.723.843-2.33 1.675-.486.367.188 1.58-1.215 2.432-.527.306-1.912-.062-2.397.306l1.308 1.49s2.396.728 2.832 1.225c.872.995 1.334 2.18 1.095 3.247zm-59.916 1.023c2.33-2.115 2.608-.268 3.754-.74.562-.237 1.003-.763 1.49-1.24.426-.437.93-.618 1.492-.854l.636 1.878s-.59 1.663-.572 2.603c.158 1.4.728 2.554 2.48 3.034-.5-.99-.782-1.04-.63-2.247.076-.604 1.765-1.675 1.557-2.248-.31-.918-.838-1.98-.448-2.9.72.492 1.66.235 2.38.533.604.27.645 1.394 1.486 1.862.863.404 2.764.204 4.35-.696-.97-.738-1.77-.24-2.74-.978-.486-.368-.463-1.943-.948-2.31-.486-.37-1.648-.76-2.133-1.13.436-.496.412-1.283.848-1.78.437-.496 2.37-.39 2.808-.886.872-.994.706-2.302 1.578-3.295-2.257.812-1.93 1.912-2.497 1.828-1.07-.512-2.137-.614-2.7-.378-.56.236-1.627 1.632-2.19 1.868-.21-.626-.52-1.422-.732-2.048-.212-.626.953-1.71.74-2.337-.423-1.253-1.476-2.36-1.9-3.613-.152 1.208-.353 2.223-.505 3.43-.076.605-1.264.92-1.34 1.524-.076.604.62 2.005.545 2.61-.65-.13-1.587-.042-2.235-.17-.648-.13-1.08-1.637-1.728-1.767-1.297-.26-2.23-.18-3.552.07.97.904 1.724.842 2.332 1.675.485.368-.19 1.58 1.213 2.433.526.305 1.913-.06 2.398.307l-1.31 1.49c-.435.496-2.394.728-2.83 1.225-.873.993-1.335 2.18-1.096 3.246z" fill-rule="evenodd" fill="#ffc900"/> - <path stroke-linejoin="round" d="M505.993 244.14c-2.11 1.65-15.747 5.096-15.887 16.938-.14 11.842 2.39 14.54-.14 14.84-4.922 0-5.625-13.19-5.484-19.036.14-5.847.28-4.947.28-4.947s3.374.9 3.094 3.748c-.28 2.847 3.374-7.045 2.11-9.744 2.248 2.248 5.2 1.348 5.2 1.198 0-.15-1.686-1.948-2.39-3.297-.702-1.35 2.532.75 2.532.75s.14-2.248-2.672-2.1c-3.655 0 .563-1.198.563-1.198s2.108 1.948 3.514-.15c-1.547-1.648-3.796-2.548-3.796-2.548s-1.97-3.747-4.64-4.496c-3.093-.75-2.672 1.348-6.187 1.05-.7 1.347-.7 1.498.705 1.947-2.39 1.65-1.125 4.947-1.125 4.947s3.796-1.65 3.655 1.05c-.14 2.697-2.25 2.248-3.655.6-1.265-.75-1.687.748-1.687.748l1.968 2.098s-3.796-.15-4.78 2.4c2.11-.15 3.235.45 3.235.45s-4.36 1.948-4.782 2.997c-.42 1.05-.56-1.2-.702-1.2-.14 0-4.217-1.498-4.217-1.498l-1.408 6.482s2.814 2.81 4.36 1.91c1.548-.9 4.36-3.597 6.046-2.848-4.92 3.748-9.84 9.144-12.512 9.894-.703-.6-3.093-2.998-4.077-1.8-.983 1.2-.28 2.7.985 2.55 1.265-.15-4.077 1.198-2.952 3.446 1.125 2.25.984 2.1 1.968 1.5.985-.6-.842-.75 2.813-1.8 3.655-1.048 3.514-2.098 3.514-2.098s-.702 1.65-2.67 2.1c-1.968.45-3.516.45-3.093 1.048.42.6 1.264 1.65.983 2.25-.28.598 4.078-3.15 5.203-.15 2.953-.15 4.92-3.748 3.514-5.847.14 2.248 1.547 2.997.703 4.047s6.608-3.448 2.952-6.146c.985 2.25 1.124 4.047 1.124 4.047s1.688-.15 2.11-.75c.42-.6-.844 1.65-.28 2.1.56.45 3.232 2.998 2.107 4.797-.7-1.05-.842-2.7-1.685-2.55-.845.15-4.36 2.7-6.468 2.85s2.53 7.794 2.53 7.794-3.234-.45-3.654-.15c-.422.3-2.53-2.698-2.953-.9-.704 2.25.702 1.35.702 1.35s-1.827-.9-2.81.15c-.985 1.05-1.97 2.098-1.267 2.547.703.45 3.797.45 4.218.3s-3.515.3-3.796.75c-.282.45-.843 2.1 0 2.7s2.953-.3 3.093-.75c.14-.45.282 1.65.282 1.65s3.655.298 3.655-3.45.282 2.7.282 2.7 3.654.598 3.794-3.15.422 2.55.422 2.55 2.39-.75 2.39-1.35c0-.6-.14 7.495-1.827 9.744-2.673-1.8-4.36 1.198-4.36 1.198s.14 4.348-.14 5.397c-.28 1.048 1.827-.6 1.968-1.05.14-.45 2.67-1.65 2.812-1.95l.843-1.798s-.563 2.098-1.546 2.398-1.97 1.35-1.548 2.25c.422.898 1.97 1.498 2.53 2.397.563.9 2.53-5.246 2.53-5.246l.142 1.35s2.53-.6 2.812-1.8c.28-1.198-2.67-2.247-.28-4.196 2.39-1.948 0 1.8 0 1.8s.842 2.847 1.405 2.847 1.966-5.395.56-6.745c-1.405-1.348 2.11 1.65 2.11 1.65s1.97-5.546-.14-6.296-3.094-1.05-3.094-1.05 1.125-1.5.563-1.65 2.95 3.3 3.513 2.4 1.407-3.6-2.67-5.097c-4.078-1.5-.14-5.697-.14-5.697s2.53 2.998 4.358 1.35c1.828-1.65-.14-1.65-.14-1.65s5.202-3.296 5.342-4.946c-.984-.15-2.67.15-2.67.15s2.952-1.948 2.25-5.096c-1.126 1.648-2.673 1.65-2.673 1.65s2.53-2.55 2.108-4.948c-1.546 1.2-1.406 2.098-2.39 1.8s-2.67-9.744 1.265-10.345c3.937-.597 1.828 4.65 1.97 4.65.14 0 5.904-2.4 0-6.297 1.405-.45 4.357 2.25 4.357 2.25s-1.265-6.598-7.592-2.55c1.547-1.648 2.53-2.698 3.796-2.398 1.266.3 5.766-.15 5.766-1.5-1.125-.9-3.516.45-4.782 0-1.265-.45 8.998-1.2 8.155-6.294z" fill-rule="evenodd" stroke="#006b00" stroke-linecap="round" stroke-width=".593" fill="#ffc900"/> - <path d="M481.3 118.54s12.247-6.43 18.37 1.53m4.9 12.25c-.306 0-4.286 3.98-5.205 3.98m13.475 8.88s11.328.918 18.676-10.41" transform="matrix(.46 0 0 .5 240.33 190.12)" stroke="#006b00" stroke-linecap="round" stroke-width="1.25" fill="none"/> - <path d="M525.08 141.81s.92 6.123 2.756 6.123-3.062 1.53-4.9.306c2.144 2.755 3.37 7.654 0 9.49" transform="matrix(.46 0 0 .5 240.33 190.12)" stroke="#006b00" stroke-linecap="round" stroke-width="1.25" fill="none"/> - <path d="M519.26 218.97s-3.98 4.286-8.88 4.592" fill-rule="evenodd" transform="matrix(.46 0 0 .5 240.33 190.12)" stroke="#006b00" stroke-linecap="round" stroke-width="1.25" fill="#e80000"/> - <path d="M523.86 199.37s-2.45-12.247-.92-15.31c.92-3.978 4.9-5.51 7.962-10.715m-8.272 17.145s-3.062 7.348-16.533 4.9m20.213-23.27s.92 9.797-11.328 6.123M511.3 128.04s-4.9 4.287-3.062 10.104" transform="matrix(.46 0 0 .5 240.33 190.12)" stroke="#006b00" stroke-linecap="round" stroke-width="1.25" fill="none"/> - <path d="M483.732 247.596s2.955-1.2 3.517-1.8c.562-.6 1.547-1.8 1.828-2.7.282-.9-1.97-2.25-.844-4.2.704-.9 1.688-1.05 3.377 0 1.69 1.05-1.547-3.3-3.235-3.45s-2.814 1.2-3.236.9c-.423-.3.14 1.2-.564 1.2s1.407 1.2 1.267 1.95c-.14.75 2.25 3.3 2.11 3.9-.14.6-3.517 4.05-4.22 4.2z" fill-rule="evenodd" fill="#006b00"/> - <path stroke-linejoin="round" d="M534.27 97.112c2.794-.636 3.243.07 2.755 2.45-1.31-.66-1.79-1.218-2.755-2.45z" fill-rule="evenodd" transform="matrix(.46 0 0 .5 240.33 190.12)" stroke="#ffc900" stroke-linecap="round" stroke-width="1.25" fill="#ffc900"/> - <path stroke-linejoin="round" d="M514.71 233.52s-1.033 6.41 1.49 6.946c-.125-2.48.537-4.176 1.157-4.837-.538-.25-2.522-2.068-2.647-2.11zm-5.68-7.89c-2.316-.33-6.23 1.59-5.105 3.91 1.88-1.62 3.626.135 4.94-1.518.405-.453.29-1.812.165-2.392zm-.02-4.58s-3.65-.58-4.157 1.948c2.52-.32 3.274-.59 4.11-.06.24-.54.007-1.762.047-1.888z" fill-rule="evenodd" transform="matrix(.46 0 0 .5 240.33 190.12)" stroke="#006b00" stroke-width="1.25" fill="#e80000"/> - <path stroke-linejoin="round" d="M493.54 184.94s2.19.828 2.81 3.06c1.737-1.075 2.565-5.83-2.81-3.06zm-5.42 5.45c.083-.04 4.59-2.77 5.045-.165-.952.95-1.365 1.57-2.11 1.778-.578 0-1.736-1.778-2.935-1.613zm-.45 8.85c.082-.042 2.894-2.522 3.97-.868 1.074 1.653-.87 1.57-.87 1.57s-.992-.454-3.1-.702zm-3.97-49.28c-.04 0-3.597-1.364-5.085 1.116 2.357.29 3.184 1.117 4.258 1.944-.29-1.034-.785-2.605.827-3.06zm-6.9 18.56s.165-4.176 2.15-5.87c1.116.62 1.446 1.61 2.19 2.852-1.487.33-3.472.413-4.34 3.018zm9.5-2.98s-3.928 1.82-2.646 3.804c1.282-1.364 2.688-.95 2.688-.992s0-2.77-.042-2.812z" fill-rule="evenodd" transform="matrix(.46 0 0 .5 240.33 190.12)" stroke="#006b00" stroke-width="1pt" fill="#e80000"/> - <path stroke-linejoin="round" d="M480.64 125.6c-1.406 1.57 1.736 5.003 5.044 4.507.827-3.72-4.217-5.664-5.044-4.507z" fill-rule="evenodd" transform="matrix(.46 0 0 .5 240.33 190.12)" stroke="#006b00" stroke-width="1pt" fill="#ffc900"/> - <path d="M461.183 248.13c-.317.857.943 2.06 1.672 1.72.297-.877-1.343-2.402-1.672-1.72z" fill="none"/> - <path stroke-linejoin="round" d="M484.28 122.75s.62 2.936 3.473 2.15c-.455-2.274-2.44-3.97-2.44-3.97-.123.663.414 1.696-1.033 1.82zm1.9 8.52s1.57 1.695 4.672-1.778c-1.405.413-3.886-.827-3.886-.827s0 2.398-.786 2.605z" fill-rule="evenodd" transform="matrix(.46 0 0 .5 240.33 190.12)" stroke="#006b00" stroke-width="1pt" fill="#e80000"/> - <path stroke-linejoin="round" d="M480.46 118.86c-1.406 1.57.583 3.762 3.89 3.266.828-3.72-3.063-4.423-3.89-3.266z" fill-rule="evenodd" transform="matrix(.46 0 0 .5 240.33 190.12)" stroke="#006b00" stroke-width="1pt" fill="#ffc900"/> - <path d="M144.62 266.62s7.037-2.01 10.77 1.005 3.735.287 3.735.287 5.457 2.01 7.037 1.58-1.148.144 1.006-1.15c2.154-1.29-4.31.29-4.883-2.44-1.006-1.724.143-3.878-2.154-3.16-1.58-2.01 1.006-3.446.43-5.6-1.578 1.148-2.44-.432-3.733 2.44-3.015-.574-.43-4.74-3.734-5.17 0 3.016-2.442 3.16-2.585 4.883-1.436 1.006-7.755 4.74-5.888 7.325z" fill-rule="evenodd" fill="url(#d)" transform="matrix(.86 0 0 .86 337.27 11.7)"/> - <path d="M391.987 437.9c3.926-.95 25.203 4.696 33.405 13.49-1.74-15.662-6.08-27.66-6.08-27.66s-12.68-3.618-14.42-1.877c-2.552 2.688-10.22 10.743-12.905 16.046zm-6.487-72.344c-1.49.248-2.983 1.243-4.474 3.73-1.74 4.225-2.984 14.915-5.47 17.402-2.486 2.486-4.724 2.734-4.724 4.972 0 2.237.25 7.458 6.962 9.447 6.712.25 17.403-10.69 17.403-10.69s5.47-5.967 7.706-12.43c-12.927 4.474-22.126-7.46-17.402-12.43z" fill-rule="evenodd" stroke="#000" stroke-width=".86pt" fill="#c01500"/> - <path d="M572.47 435.405c-3.895-.943-25.417 4.67-33.556 13.413 1.728-15.57 6.034-27.5 6.034-27.5 1.502-.41 12.444-3.596 14.172-1.865 2.533 2.673 10.686 10.68 13.35 15.952zm6.03-71.922c1.48.247 2.004 2.192 3.212 4.663 1.726 4.2 3.506 10.322 5.974 12.793 2.466 2.472 4.687 6.133 4.687 8.358 0 2.223-.52 5.23-7.18 7.206-6.662.247-16.314-8.305-16.314-8.305s-5.428-5.934-7.65-12.36c12.83 4.45 21.138-7.005 17.27-12.357z" fill-rule="evenodd" stroke="#000" stroke-width="1.139" fill="#c01500"/> - <path d="M378.043 424.233s13.424 9.2 13.674 13.425c36.05-53.452 128.036-70.11 180.496-3.73 6.96-9.198 14.17-12.18 14.17-12.18-55.193-72.103-165.084-63.15-208.342 2.485z" fill-rule="evenodd" stroke="#000" stroke-width=".86pt" fill="#fb0"/> - <g stroke="#000" fill-rule="evenodd" fill="#1e5aa6"> - <path d="M514.93 219.86l5.258-.124-9.39 11.893 11.27 13.145-22.162 27.92 20.91 25.166c-2.296 5.635-4.968 10.77-8.515 15.4l-12.018-13.27 21.785-27.17-17.904-20.282 10.767-32.677zm-75.12 2.376l-5.634.125 10.516 11.394-11.143 13.898 23.16 25.165-19.155 25.666c2.296 5.634 5.593 11.894 9.14 16.526l11.393-14.4-23.412-26.04 17.152-21.785-12.02-30.55z" stroke-width="1.147"/> - <path d="M465.85 289.844l-8.263 11.018 29.548 34.18c5.217-2.63 9.307-5.634 13.772-9.265l-15.4-17.78 6.26-18.404 9.015 10.392-28.17 35.933c-4.716-2.003-9.933-5.133-14.65-9.015l14.9-18.905-7.01-18.154zm-9.14-17.152l5.385 6.76-3.505-9.14-1.88 2.38z" stroke-width="1.147"/> - <path d="M495.274 278.673c.118-.125 4.345-5.76 4.345-5.76l-1.645-2.253-2.7 8.013z" stroke-width="1.111"/> - </g> - <text font-weight="bold" transform="matrix(.56 -.65 .65 .56 337.27 11.7)" font-size="14" y="362.397" x="-328.344" font-family="Timmons"> - <tspan y="362.397" x="-328.344">L</tspan> - </text> - <text font-weight="bold" transform="matrix(.6 -.6 .6 .6 337.27 11.7)" font-size="14" y="384.266" x="-292.335" font-family="Timmons"> - <tspan y="384.266" x="-292.335">E</tspan> - </text> - <text font-weight="bold" transform="matrix(.66 -.47 .5 .65 337.27 11.7)" font-size="14" y="451.681" x="-239.78" font-family="Timmons"> - <tspan y="451.681" x="-239.78">O</tspan> - </text> - <text font-weight="bold" transform="matrix(.7 -.48 .48 .7 337.27 11.7)" font-size="14" y="429.958" x="-188.526" font-family="Timmons"> - <tspan y="429.958" x="-188.526">T</tspan> - </text> - <text font-weight="bold" transform="matrix(.78 -.37 .37 .78 337.27 11.7)" font-size="14" y="451.479" x="-115.426" font-family="Timmons"> - <tspan y="451.479" x="-115.426">E</tspan> - </text> - <text font-weight="bold" transform="matrix(.8 -.35 .35 .8 337.27 11.7)" font-size="14" y="453.046" x="-94.111" font-family="Timmons"> - <tspan y="453.046" x="-94.111">R</tspan> - </text> - <text font-weight="bold" transform="matrix(.8 -.32 .32 .8 337.27 11.7)" font-size="14" y="454.982" x="-68.371" font-family="Timmons"> - <tspan y="454.982" x="-68.371">R</tspan> - </text> - <text font-weight="bold" transform="matrix(.86 -.07 .07 .86 337.27 11.7)" font-size="14" y="445.666" x="112.016" font-family="Timmons"> - <tspan y="445.666" x="112.016">R</tspan> - </text> - <text font-weight="bold" transform="matrix(.86 0 0 .86 337.27 11.7)" font-size="14" y="430.793" x="180.225" font-family="Timmons"> - <tspan y="430.793" x="180.225">R</tspan> - </text> - <text font-weight="bold" transform="matrix(.75 .43 -.43 .75 337.27 11.7)" font-size="14" y="275.217" x="414.759" font-family="Timmons"> - <tspan y="275.217" x="414.759">R</tspan> - </text> - <text font-weight="bold" transform="matrix(.66 .55 -.55 .66 337.27 11.7)" font-size="14" y="193.05" x="483.878" font-family="Timmons"> - <tspan y="193.05" x="483.878">E</tspan> - </text> - <text font-weight="bold" transform="matrix(.83 .16 -.13 .82 337.27 11.7)" font-size="14" y="414.028" x="309.116" font-family="Timmons"> - <tspan y="414.028" x="309.116">O</tspan> - </text> - <text font-weight="bold" transform="matrix(.78 -.1 .12 .84 337.27 11.7)" font-size="14" y="459.272" x="105.058" font-family="Timmons"> - <tspan y="459.272" x="105.058">O</tspan> - </text> - <text font-weight="bold" transform="matrix(.8 -.3 .3 .8 337.27 11.7)" font-size="14" y="455.835" x="-45.708" font-family="Timmons"> - <tspan y="455.835" x="-45.708">A</tspan> - </text> - <text font-weight="bold" transform="matrix(.6 .6 -.6 .6 337.27 11.7)" font-size="14" y="144.724" x="518.35" font-family="Timmons"> - <tspan y="144.724" x="518.35">A</tspan> - </text> - <text font-weight="bold" transform="matrix(.84 .17 -.17 .84 337.27 11.7)" font-size="14" y="388.298" x="271.188" font-family="Timmons"> - <tspan y="388.298" x="271.188">A</tspan> - </text> - <text font-weight="bold" transform="matrix(.85 -.16 .16 .85 337.27 11.7)" font-size="14" y="455.168" x="40.322" font-family="Timmons"> - <tspan y="455.168" x="40.322">M</tspan> - </text> - <text font-weight="bold" transform="matrix(.86 -.1 .1 .86 337.27 11.7)" font-size="14" y="448.079" x="94.429" font-family="Timmons"> - <tspan y="448.079" x="94.429">P</tspan> - </text> - <text font-weight="bold" transform="matrix(.86 0 0 .86 337.27 11.7)" font-size="14" y="437.607" x="155.088" font-family="Timmons"> - <tspan y="437.607" x="155.088">P</tspan> - </text> - <text font-weight="bold" transform="matrix(.75 .42 -.42 .75 337.27 11.7)" font-size="14" y="276.665" x="405.134" font-family="Timmons"> - <tspan y="276.665" x="405.134">P</tspan> - </text> - <text font-weight="bold" transform="matrix(.85 .1 -.1 .85 337.27 11.7)" font-size="14" y="409.793" x="232.095" font-family="Timmons"> - <tspan y="409.793" x="232.095">I</tspan> - </text> - <text font-weight="bold" transform="matrix(.6 .63 -.63 .6 337.27 11.7)" font-size="14" y="132.089" x="530.392" font-family="Timmons"> - <tspan y="132.089" x="530.392">T</tspan> - </text> - <text font-weight="bold" transform="matrix(.7 .52 -.52 .7 337.27 11.7)" font-size="14" y="218.519" x="464.158" font-family="Timmons"> - <tspan y="218.519" x="464.158">T</tspan> - </text> - <text font-weight="bold" transform="matrix(.83 .24 -.24 .83 337.27 11.7)" font-size="14" y="361.961" x="313.725" font-family="Timmons"> - <tspan y="361.961" x="313.725">M</tspan> - </text> - <text font-weight="bold" transform="matrix(.58 .64 -.64 .58 337.27 11.7)" font-size="14" y="123.248" x="513.704" font-family="Timmons"> - <tspan y="123.248" x="513.704">G</tspan> - </text> - <path d="M557.378 184.508s5.188-4.447 8.894-4.57m-8.145 3.952c.123-.124 31.003-4.447 31.99-5.435m-31.87 5.685c.124-.125 34.586-2.966 34.586-2.966m-34.706 3.086s36.685-1.73 38.908.123m-39.037-.243s35.944.245 36.562 1.11m-36.433-1.11l34.584 2.84m-34.954-2.592c.123 0 35.203 3.088 38.66 7.534m1.846 6.295c-.123-.123-11.98-14.205-40.638-13.958m.132.249s19.886 1.358 26.186 8.276m-25.816-8.524s12.845-2.47 26.31 13.71" stroke-width=".86pt" stroke="#fff700" stroke-linecap="round" fill="none"/> - <path d="M247.4 217.74s20.718.813 20.718 2.844-15.437 5.89-15.64 14.422c-.203 8.53 11.78 9.14 12.593 19.905.814 10.767-9.342 12.39-11.374 15.235-2.03 1.422-6.906 16.656-6.296 25.593.61 8.938 3.25 39.203 7.92 45.296 3.658 2.844 9.142 11.984 15.032 9.14 5.89-2.843 1.828-13.202 1.22-16.046s2.436-7.516 2.436-11.78c0-4.267-2.234-7.72-2.03-8.735.202-1.016 16.452 3.86 15.436 19.906-1.015 16.045-7.515 11.17-7.515 11.17s2.03 19.703-3.048 22.343c-9.14 4.875-15.843-1.015-15.843-1.015l.858 4.007-6.953-3.6s-8.937-12.798-10.968-18.485-4.47-31.077-3.656-36.56c.813-5.486 1.422-37.58 1.016-39.204s-2.03-28.436-1.015-32.5c1.016-4.06 7.313-21.936 7.11-21.936z" fill-rule="evenodd" stroke="#000" stroke-width="1pt" fill="url(#e)" transform="matrix(.86 0 0 .86 337.27 11.7)"/> - <path d="M530.822 194.416s12.402-12.053 19.564-10.656c3.668 0 .174 2.62.174 2.62s6.29.524 7.162 3.32c.175 1.222-2.97 1.57-2.97 1.57s2.62.525 2.796 2.796-26.552.524-26.726.35z" fill-rule="evenodd" stroke="#000" stroke-width=".86pt" fill="#ff7000"/> - <path d="M531.518 193.89s13.276-1.746 18.866-7.336m-5.414 3.673s9.78-.35 9.78 1.05" stroke="#000" stroke-width=".86pt" fill="none"/> - <path stroke-linejoin="round" d="M579.73 333.116s8.385-1.92 10.655-4.89c1.4-1.05 8.735 11.004-10.655 4.89z" fill-rule="evenodd" stroke="#000" stroke-width="1.075" fill="#fff"/> - <path d="M577.46 263.766s1.048 6.463-1.923 10.83c-1.572 1.747-6.288 4.716-6.288 6.813 0 2.095 1.746 4.89 1.396 7.336s-2.97 4.89-2.795 6.987c0 2.096 2.97 13.276 2.622 13.45m-8.382-66.374s-6.636 2.27-8.034 8.91" stroke="#fff" stroke-linecap="round" stroke-width="1.075" fill="none"/> - <path d="M559.288 190.227s2.27 6.29 9.608.35c-4.717-6.462-9.608-.175-9.608-.35z" fill-rule="evenodd" stroke="#000" stroke-width=".86pt" fill="#c75b00"/> - <path d="M564.865 190.086c0 .338-.352.612-.787.612s-.786-.274-.786-.612c0-.338.352-.612.786-.612s.787.274.787.612z" fill-rule="evenodd"/> - <path d="M499.303 175.633s13.912 15.058 22.913 14.895c1.637 4.42-4.086 8.53-6.378 10.493-4.582-1.472-8.724.27-19.363-12.824.655-8.347 2.99-12.235 2.828-12.563zm18.825-35.028c1.8-5.564 5.4-9.983 8.51-10.474-.817-4.255 6.548-23.077 27.99-30.278 1.308 9.656-9.167 19.15-9.167 19.15s31.59-5.402 37.972-13.422c-.654 3.6-7.037 26.024-40.753 25.86 12.765 12.112-4.093 21.77-11.295 18.822 13.258-10.148-3.764-16.203-13.258-9.657z" fill-rule="evenodd" stroke="#000" stroke-width=".86pt" fill="#fff"/> - <path d="M528.93 132.754c6.383-4.092 8.674-4.092 13.912-3.274-3.765.49-3.765.655-3.765.655s-.327.49 1.964 2.62c-2.617-.656-4.91-2.13-12.11 0z" fill-rule="evenodd" stroke="#ccc" stroke-width=".86pt" fill="#cccccd"/> - <path d="M526.47 130.13s12.602-6.71 19.64-11.293" stroke="#000" stroke-width=".86pt" fill="none"/> - <path d="M515.668 201.003s17.35 4.747 19.313-20.132c-3.763-10.8-9-34.042-.98-40.752-7.366-5.074-15.386.164-15.386.164-.49 1.145-7.038 10.474 1.8 26.842-20.95-5.565-12.44 14.24-12.44 14.24.82-3.11 11.95-6.057 14.73 9.82 1.147 3.927-7.527 9.983-7.036 9.82z" fill-rule="evenodd" stroke="#000" stroke-width=".86pt" fill="#00f"/> - <path d="M535.147 181.034s18.33-9.82 17.84-32.898c-15.55.328-21.113 20.46-21.113 20.46l3.274 12.438z" fill-rule="evenodd" stroke="#000" stroke-width=".86pt" fill="#00f"/> - <path d="M452.983 179.89s-13.585 11.785-21.277 8.02c-5.73 3.437-12.44-2.62-12.44-2.62s7.857 28.97 36.008 8.02c-.49-6.382-1.964-12.93-2.29-13.42z" fill-rule="evenodd" stroke="#000" stroke-width=".86pt" fill="#fff"/> - <path d="M431.543 187.415c1.146-6.056 5.892-9 9.657-3.273 5.074.982 10.148-19.804-7.856-16.367 5.074-27.17-10.147-37.317-10.147-37.317s-5.4 30.115-2.946 35.68c2.456 5.565-3.6-10.31-23.077-14.73-.327 22.75 21.77 33.39 21.77 33.39s6.218 5.727 12.6 2.618z" fill-rule="evenodd" stroke="#000" stroke-width=".86pt" fill="#00f"/> - <path d="M433.34 167.61s-8.51 7.2-6.546 17.02m-6.379-18s-1.964 7.037 2.29 17.02m-3.6 2.295s3.928-6.383 12.44 1.8" stroke="#000" stroke-width=".86pt" fill="none"/> - <path d="M420.742 141.75c0-.164-12.93 0-5.238 13.093-5.728 1.8-18.495-6.547-9.657-17.677-28.97-.654-40.754-14.566-40.754-27.332 8.51 8.838 28.806 5.237 36.008 10.638-8.837-8.184-7.037-19.476-7.037-19.476s24.715 7.365 29.133 29.296c-1.473 4.256-2.127 11.785-2.455 11.457z" fill-rule="evenodd" stroke="#000" stroke-width=".86pt" fill="#fff"/> - <path d="M400.86 119.905c4.77 4.853 17.025 6.303 23.244 11.704" stroke="#000" stroke-width=".86pt" fill="none"/> - <path d="M406.503 134.224s10.145-1.31 13.085 2.292c-3.97 0-5.293-.983-11.027 1.145 1.618-.817 1.177-2.29 2.06-2.29s-3.677-1.146-4.118-1.146z" fill-rule="evenodd" stroke="#ccc" stroke-width=".815" fill="#cccccd"/> - <path d="M457.077 54.843s5.564-4.91 11.62-.49c-2.736 8.174-12.603 5.072-12.603 5.072s.328 4.092-.654 6.056c1.975 1.486 3.6 6.384 3.6 6.384s10.15-2.455 12.276 1.964c3.886-.536 6.71 0 6.71 0s7.857-1.964 10.64-1.964c2.78 0 11.62 2.292 12.438 3.93.818 1.635 3.764 12.6 5.728 12.438 1.964-.164-4.746 2.618-6.546-.164-1.8-2.782-1.31 3.6-1.31 3.6s5.565 5.893 6.22 7.202c.654 1.31-3.437 11.948-.328 19.313-2.724.252-2.946 3.11-2.946 3.11-.15 3.242-4.255 4.092-4.255 4.092l-.982-4.42-2.783 1.637 1.146-3.437s3.765-9.166 4.092-12.11c.327-2.947-3.437-8.185-6.383-8.185s-5.074 9.33-5.074 9.33-1.473 7.037-.982 7.692c.492.655-1.963-2.29-1.963-2.29s-1.31 4.254-2.29 5.563c-.983 1.31-3.11 1.8-3.11 1.8s-1.474-4.255-.983-5.89c.49-1.638 8.02-8.02 7.365-12.604-.656-4.582 0-3.436-.165-3.6-.163-.163-3.928-3.437-4.09-5.237-.165-1.8-4.912 2.29-11.13.982-1.904 3.326-2.128 11.62-2.128 11.62s-.655 9.984.654 11.13c1.31 1.145-3.272 3.6-3.272 3.6l-3.274 4.42s-1.145-2.783-1.145-2.62c0 .164-2.293 1.637-2.293 1.637l1.31-3.273c-.08-2.48 3.182-9.246 3.182-14.975 0-5.73.417-11.868.417-11.868s-6.055-.328-5.892 5.892c.164 6.218-1.473 6.546-1.145 8.346.327 1.8 1.964 6.874 1.473 8.347-.49 1.473-2.455 1.964-2.455 1.964l-.49.82s-6.057 2.78-5.894 3.927c.164 1.145-.163-3.274-.163-3.274l-.327-4.746s3.6-2.292 3.6-8.02c0-5.73-.83-6.543-.665-7.852.164-1.31.993-6.06.83-6.55-.164-.492-3.437 1.308-4.42 1.308s1.8-3.437 2.128-5.892c.328-2.455-3.273 2.29-6.22-.49 1.37-3.023 3.438-3.93 3.765-6.22s-2.29 1.964-4.58.327c.185-2.196 2.454-4.092 2.454-4.092s-1.865-.228-2.62 0c-1.472-.49 1.638-2.782 1.8-6.056.165-3.273-1.8-4.582-1.8-4.746 0-.163-3.272-2.945-3.763-4.09-.49-1.146-.49-2.456-.49-2.456s-5.402 3.928-11.785-4.42c5.845-4.99 12.11-1.308 12.11-1.308s1.638-4.583 9.167-4.256c7.53.328 9.002 4.583 8.675 4.092z" fill-rule="evenodd" stroke="#000" stroke-width=".86pt" fill="#923f00"/> - <path d="M498.253 139.505c.137 0 13.904.408 14.04 7.77.136 7.36-4.226 5.45-4.362 5.45s-10.086-1.225-10.086-1.225l.41-11.996z" fill-rule="evenodd" stroke="#000" stroke-width=".86pt" fill="#00f"/> - <path d="M484.89 137.458s17.174-.137 16.22 7.36c-.955 7.497-5.317 5.998-5.317 5.998l-8.314-.682-2.59-12.676z" fill-rule="evenodd" stroke="#000" stroke-width=".86pt" fill="#fffeff"/> - <path d="M475.214 136.64l9.95.82s5.998.816 5.725 6.54c-.273 5.726-6.135 5.863-6.135 5.863l-9.677-.546.136-12.676z" fill-rule="evenodd" stroke="#000" stroke-width=".86pt" fill="#00f"/> - <path d="M451.908 139.505c-.136 0-13.904.408-14.04 7.77-.136 7.36 4.226 5.45 4.362 5.45s10.087-1.225 10.087-1.225l-.412-11.997z" fill-rule="evenodd" stroke="#000" stroke-width=".86pt" fill="#fff"/> - <path d="M465.264 137.458s-17.175-.137-16.22 7.36c.954 7.497 5.315 5.998 5.315 5.998l8.314-.682 2.59-12.676z" fill-rule="evenodd" stroke="#000" stroke-width=".86pt" fill="#00f"/> - <path d="M474.947 136.64l-9.95.82s-5.997.816-5.725 6.54c.273 5.726 6.134 5.863 6.134 5.863l9.678-.546-.137-12.676z" fill-rule="evenodd" stroke="#000" stroke-width=".86pt" fill="#fff"/> - <path d="M501.59 219.4s7.155-10.546 10.168-9.417c2.636.88.628 9.04-.628 9.792l-9.54-.376zm-49.046 1.882c-2.26-3.138-5.523-11.8-8.536-9.415-2.636.878-.627 9.038.628 9.792l7.908-.378z" fill-rule="evenodd" stroke="#000" stroke-width=".86pt" fill="#5e0043"/> - <path d="M457.283 200.427s13.942 8.59 18.516 8.812c4.572.222 19.072-11.156 19.072-11.156" stroke="#000" stroke-width=".86pt" fill="none"/> - <path d="M458.625 166.75l2.677-3.347 13.385 6.804 13.607-6.023 2.677 2.788-15.168 10.708-17.177-10.93z" fill-rule="evenodd" stroke="#000" stroke-width=".86pt" fill="#5e0043"/> - <path stroke-linejoin="round" d="M447.995 166.57c1.087 1.372 9.738 11.89 11.3 20.59 1.56 8.7-.893-11.934-.893-11.934s10.708 5.242 11.043 8.588c.334 3.346 5.12-.226 5.348-.798L443.79 162.88l4.205 3.69zm52.899-.603s-11.266 14.835-9.927 31.007c-2.324-7.744-.447-20.523-.447-20.523l-2.453 1.563s-2.566 10.93-5.8 12.604c-.546-1.302-.447-1.785-.447-1.785s-3.457 4.462-4.127 4.908c-.67.446.224 15.058.224 15.058s1.16 10.59 2.5 10.48c-1.523.745-3.393 1.903-3.393 1.903l-1.387-28.277 3.172-3.178s4.237-5.13 4.572-10.15c-1.84 1.56-3.904 2.008-3.904 2.008s-.558 7.138-2.23 8.142c-1.674 1.004-1.72 2.866-1.72 2.866l-.397-9.328 25.763-17.295z" fill-rule="evenodd" stroke="#474747" stroke-width="1.075" fill="#474747"/> - <path d="M475.128 183.14l2.176 44.61" stroke="#000" stroke-linecap="round" stroke-width="1.075" fill="none"/> - <path d="M447.694 204.443s5.13 3.012 7.027 12.158c16.73-1.226 21.974 4.686 21.974 4.686s13.72-6.58 20.077-5.354c2.23-4.685 8.59-10.708 8.59-10.708" stroke="#000" stroke-width=".86pt" fill="none"/> - <path d="M440.694 160.72l34.438 22.532 31.008-20.858s6.47-3.57 5.912-6.134-2.788-1.562-3.904-1.116c-1.115.447-32.458 22.642-32.458 22.642l-33.35-21.08s-2.454-.78-2.9.78.92 2.455 1.253 3.235z" fill-rule="evenodd" stroke="#000" stroke-width=".86pt" fill="#b4b6b9"/> - <path stroke-linejoin="round" d="M502.278 154.873s-8.81-3.74-8.81-.5c0 3.243.248 3.575 1.66 5.654 1.414 2.078-1.08 3.408-1.08 3.408s-.332-.914-.83-2.328c-.5-1.413-5.238-2.41-5.653-4.073-.416-1.662.997-4.323-1.83-4.655-2.826-.334-5.57 1.163-6.15 4.405-.583 3.242-4.24 10.807-4.24 10.807l.5-17.208c6.205.443 17.733 1.8 26.6 2.826-2.66-.415.997.166.914 1.08-.25.75-1.165.832-1.082.583zm-31.175-4.326c-1.58 0-9.476.915-11.47 2.078-1.996 1.164 3.24 2.993 2.576 4.572-.666 1.58-.75 4.74-3.243 4.074-2.494-.664-10.89-4.82-11.14-6.234-.248-1.413-1.994-1.496-1.994-1.496s24.107-3.242 25.27-2.993z" fill-rule="evenodd" stroke="#474747" stroke-width="1.075" fill="#474747"/> - <path d="M474.904 148.57l-.06 21.14m-16.219-46.047s-9.66 15.684-9.85 16.162" stroke="#000" stroke-width=".86pt" fill="none"/> - <path d="M161.8 129.74s4.893 6.672 4.337 8.562c2 1.557 4.225 7.784 4.225 7.784" fill-rule="evenodd" stroke="#000" stroke-width="1pt" fill="url(#f)" transform="matrix(.86 0 0 .86 337.27 11.7)"/> - <path d="M492.672 122.322s-9.085 12.815-8.798 13.77" stroke="#000" stroke-width=".86pt" fill="none"/> - <path d="M446.213 61.426c-.206.717-1.364.995-2.588.62s-2.048-1.26-1.842-1.976c.206-.717 1.365-.995 2.588-.62s2.05 1.26 1.843 1.976zm3.673-.253c.206.717 1.364.995 2.588.62s2.047-1.26 1.842-1.976c-.206-.717-1.365-.995-2.588-.62s-2.048 1.26-1.842 1.976z" fill-rule="evenodd"/> - <path stroke-linejoin="round" d="M556.13 326.572s-3.367.63-3.262.947-9.79.63-10 .315c-.212-.316-1.475 1.684-1.475 1.684l1.58-.948s2.42 2.527 3.158 2.316c.737-.21-.315.947-.105 1.158.21.21.948-.42.948-.42l16.36-.275-7.2-4.778z" fill-rule="evenodd" stroke="#000" stroke-width=".86pt" fill="#ff7000"/> - <path stroke-linejoin="round" d="M562.23 331.663l-13.363.387s-3.37 3.053-3.58 3.79 2.21.947 2.21.947l.738 2.527 1.685-.632s11.36 1.69 21.79-.632c5.265-1.842 6.186-4.053 2.5-5.395-3.683-1.342-11.876-.94-11.98-.992z" fill-rule="evenodd" stroke="#000" stroke-width="1.075" fill="#ff7000"/> - <path d="M208.37 403.93l27.97-1.246-5.208-4.416 75.647-3.058-2.606-6.002-84.707 3.398 10.192 4.756-22.876.68.68 2.377-6.002-.227s6.68 2.605 6.908 3.737z" fill-rule="evenodd" stroke="#000" stroke-width="1pt" fill="url(#g)" transform="matrix(.86 0 0 .86 337.27 11.7)"/> - <path d="M239.73 249.42c-2.222-1.11-11.998-2.444-22.884 4.666l.444 25.106s15.997-8.665 23.773-6.666c-.444-7.776-.444-17.774-1.333-23.106z" fill-rule="evenodd" stroke="#000" stroke-width="1pt" fill="url(#h)" transform="matrix(.86 0 0 .86 337.27 11.7)"/> - <path d="M410.434 291.76l-56.723 56.31m82.003-55.898l-46.037 60.63m43.983-76.454l-61.453 74.398m-1.849-1.032l5.96-6.987m69.054-28.977l-23.84 32.886m-1.029 4.317l.617 12.53m35.14-38.227l-25.278 31.65m20.763-2.462l10.276-16.852m-6.371-3.289l-12.332 13.975m8.632-27.124l-8.425 10.276m-2.47-25.283s-25.69 37.61-25.278 40.692m22.603-45.619c-.616.41-22.196 28.977-22.196 28.977m-1.229 9.033l-3.905 4.728m-4.933 7.202l-5.96 7.808" stroke="#000" stroke-width=".86pt" fill="none"/> - <path d="M407.627 205.2s-1.74 5.47 0 8.204 12.68 24.86 12.68 24.86 7.458-9.197 10.193-9.446c2.735-.248 1.49 23.867 1.49 23.867s-4.473 4.227-7.208 3.978c-2.735-.248 6.712 9.447 6.464 17.652s-12.43 48.976-16.906 49.722c-4.475.746 1.99-7.458 1.74-9.696-.25-2.236-1.492-.745-2.486-3.23-.995-2.487 1.492-6.216.994-8.702s-2.734-1.99-2.983-3.73 1.492-2.237 1.243-4.225c-.25-1.99-2.983-1.493-2.735-3.233.25-1.74.498-.994.25-4.226-.25-3.232-.747 2.237-3.482 2.486-2.733.25-4.97 6.464-4.97 6.464s-5.47 7.707-10.94 4.226c3.232 6.96.746 9.945-.497 10.193s.994 5.47-1.99 5.72 2.238 11.683-1.242 12.677c3.73 1.74.747 3.98.747 3.98s-8.618.715-6.713 11.932c-25.36-8.935-37.79-24.346-37.54-40.007.248-15.662 5.22-29.833 17.402-35.054 3.48-12.928 9.447-26.85 9.447-26.85s-.994-5.718-.248-9.447c.746-3.73 4.226-7.458 4.226-7.458s-.496-8.95-.247-13.425c.248-4.475 1.99-6.465 2.237-8.95.25-2.486-.746-15.166 1.74-17.403 2.487-2.238 7.21-1.99 9.696-3.48 2.486-1.492 5.718-4.227 8.95-3.98s5.967 2.488 5.967 2.488 12.182 0 12.927 4.724c.746 4.722-2.486 6.462-2.486 6.462s1.74 6.713-5.718 12.928z" fill-rule="evenodd" stroke="#2b2b2b" stroke-width=".86pt" fill="#8a9396"/> - <path d="M396.852 188.097c.39.722-.5 1.96-1.986 2.764s-3.01.875-3.4.153c-.39-.72.498-1.958 1.986-2.764s3.01-.874 3.4-.153z" fill-rule="evenodd" stroke="#2b2b2b" stroke-width="1.147" fill="#cecfcf"/> - <path d="M394.787 189.354c0 .455-.414.824-.925.824-.51 0-.924-.37-.924-.824 0-.454.414-.823.924-.823s.925.37.925.824z" fill-rule="evenodd"/> - <path d="M412.925 197.46s3.02 13.48-.59 22.793m1.519-28.693s5.89 7.792 5.13 17.483m-4.56-19.193c.19 0 4.94 4.18 4.75 7.03m-3.61-8.742s3.23 2.28 3.99 4.56" stroke="#2b2b2b" stroke-width=".537" fill="none"/> - <path d="M414.044 186.805s-11.592 18.813-10.072 30.595" stroke="#000" stroke-width=".86pt" fill="none"/> - <path d="M414.804 186.237s-15.393 9.122-18.243 38.957" stroke="#2b2b2b" stroke-width=".537" fill="none"/> - <path d="M413.094 191.75l-6.082 4.56" stroke="#000" stroke-width=".86pt" fill="none"/> - <path d="M390.86 226.906s8.552-35.537 23.754-40.667" stroke="#2b2b2b" stroke-width=".537" fill="none"/> - <path d="M420.505 238.878s8.172-10.262 10.072-9.882c1.9.38 1.33 23.754 1.33 23.754s-6.08 4.56-7.412 4.37c-1.33-.19 6.842 11.023 6.652 15.204-.19 4.18-.38 4.18-.38 4.18s0-2.47-1.9-6.46c-1.9-3.99-.76-8.552-13.113-18.624-3.04-6.27 6.08 3.8 7.98 2.28 1.902-1.52-3.42-14.632-3.23-14.822z" fill-rule="evenodd" stroke="#2b2b2b" stroke-width=".86pt" fill="#2b2b2b"/> - <path d="M405.978 181.086s-3.435.936-3.904 2.342c-.468 1.405-2.498 2.81-3.59 2.342-1.094-.468-3.125-2.186-3.125-2.186" stroke="#2b2b2b" stroke-width=".86pt" fill="none"/> - <path stroke-linejoin="round" d="M386.46 193.108s-5.155 5.154-2.656 5.778c2.498.625 5.153-4.06 5.153-4.06s0 7.964 2.186 6.715 8.59-5.777 8.59-5.777 2.185-.156 2.653 0c.47.156 5.934 4.84 9.526 3.123-2.03 5.31-4.373 5.934-4.373 5.934s-3.748 4.84-8.59 3.748c-4.84-1.093-6.09-3.123-6.09-3.123s-4.06.312-5.308-1.562c-1.25-1.874-1.718-2.967-1.718-2.967s-2.342 2.343-2.967 1.25c-.625-1.094 0-7.496 3.59-9.057z" fill-rule="evenodd" stroke="#2b2b2b" stroke-width="1.075" fill="#2b2b2b"/> - <path d="M415.66 185.927s-9.526-2.81-12.805 1.874c-3.28 4.686-2.498 7.34-.78 7.81" stroke="#2b2b2b" stroke-width=".86pt" fill="none"/> - <path d="M417.13 185.66c0 1.124-.804 2.034-1.796 2.034s-1.796-.91-1.796-2.033.804-2.033 1.796-2.033 1.796.91 1.796 2.034z" fill-rule="evenodd"/> - <path d="M389.407 209.964s3.884 5.976 8.515 7.62-3.212 3.062-7.843-.075c-3.362-4.558-2.466-7.844-2.466-7.844s.896-.897 1.793.298zm33.24 35.26s-10.906-15.162-14.043-15.984c-3.138-.822 2.39-1.494 5.75 1.718 3.362 3.212-.895-5.23-.895-5.23l9.186 19.496z" fill-rule="evenodd" stroke="#2b2b2b" stroke-width=".86pt" fill="#2b2b2b"/> - <path stroke-linejoin="round" d="M388.362 332.84c4.183-1.12 22.408 10.46 26.516 13.372 4.108 2.913 12.698 1.045 12.698 1.045s-3.96 2.39-6.424 2.988 7.32.598 7.32.598-23.305 6.423-46.983-6.05c-2.167-9.71 5.078-11.877 6.87-11.952z" fill-rule="evenodd" stroke="#2b2b2b" stroke-width="1.075" fill="#2b2b2b"/> - <path d="M415.028 248.957s-3.063-.598-4.63-2.39c-1.57-1.793-3.81-6.2-6.126-8.068s-13.894-8.217-18.077-7.77c-4.183.45-5.452-.447-5.975-.97-.523-.523-2.24.224-1.942 2.39.298 2.167-3.212 6.947-1.942 9.188 1.27 2.24 7.245 11.353 8.44 11.652 1.195.3.448 5.303.448 5.303s5.304 5.378 6.648 5.677c1.345.3 2.69 1.27 2.54 2.54-.15 1.27-5.826 8.216-5.826 8.216s-6.125 3.212-6.2 5.005c-.075 1.793 1.494 5.528 6.35 6.723 4.854 1.195 17.926.224 18.598-.896.672-1.12 1.718-7.843 1.27-8.515-.448-.673-3.66-2.69-5.303-2.39-1.643.298-3.137 1.643-2.987 1.94.15.3-2.316 1.57-2.316.375s4.855-6.573 5.304-6.125c.45.448 7.32 1.12 8.59 4.556s1.27 5.9 4.856 5.528c3.585-.374 8.59-3.66 9.037-10.532.45-6.872-4.033-11.503-5.154-12.175-1.12-.673-4.856-2.914-5.155-3.96-.298-1.045-1.045-4.48-.448-5.303z" fill-rule="evenodd" stroke="#2b2b2b" stroke-width=".86pt" fill="#2b2b2b"/> - <path d="M350.416 279.29s11.577-2.99 14.566-2.914c2.988.075 14.266 5.303 17.553 8.515 3.287 3.213 10.01 10.832 14.416 10.16 4.408-.673 5.678-1.57 5.678-1.57l-1.718 3.287s-3.585.97-5.378.523c-1.792-.448-5.303-1.568-8.814-5.004-3.51-3.436-14.34-12.698-23.53-12.026-9.186.672-14.49 9.71-14.49 9.71s.075-4.407.45-5.378c.372-.97-1.944 2.09-1.944 2.09l3.212-7.394z" fill-rule="evenodd" stroke="#2b2b2b" stroke-width=".86pt" fill="#2b2b2b"/> - <path d="M393.067 288.25c.074.075 2.913.822 7.693.822s7.32-2.092 7.32-2.092l-.298-1.867.747-2.614s3.66 3.733 3.584 4.48c-.075.747-1.494 1.046-1.494 1.046l-.523-1.793-1.27 1.57s-6.946 5.526-10.756 4.705c-3.808-.822-7.32-3.287-6.348-3.884s1.494-.374 1.345-.374zm-16.881 9.787s-4.183-.075-6.05.822c-1.868.895-2.54 2.015-3.81 1.866-1.27-.15-2.24-1.793-1.867-2.465.522-1.045 2.987-2.39 7.692-2.016s4.034 1.793 4.034 1.793zm14.641 11.353c0-.225-.3-6.126-2.615-8.516s-5.154-2.39-6.424-2.092c-1.27.3 4.706 2.913 5.304 4.63.597 1.72 2.54 6.5 2.017 7.695-.524 1.195-1.495-3.36-5.155-4.63s-8.74-.6-7.694 1.045 5.155.15 7.246 3.66 3.66 7.245 3.66 7.245l.673-2.54 1.866-.522.224-4.856.897-1.12z" fill-rule="evenodd" stroke="#2b2b2b" stroke-width=".86pt" fill="#2b2b2b"/> - <path stroke-linejoin="round" d="M387.84 328.507l-3.81-7.62s-1.196-4.854-4.408-6.2c-3.212-1.343-7.47-1.12-7.544.524-.074 1.644 6.872 3.736 7.32 4.632.45.897.224 2.39-.373 2.465-.598.075-3.66-1.12-5.23-.747-1.567.374-2.464 2.39-4.78 1.793-2.315-.598-4.257-7.993-3.36-8.74.896-.746-1.718 1.345-2.24-.597-.524-1.942.746-7.992-.15-8.74-.897-.746-5.23-3.36-5.304-3.883-.074-.523.225-29.73 24.65-5.528-10.457-12.4-14.566-11.054-16.507-11.13-1.42 0-10.906.822-13.296 12.923-2.39 12.1-5.23 4.557-5.23 4.557s-.522 5.228 2.018 6.722c2.54 1.494-1.195 5.826-1.195 5.826s-4.556-11.13-3.884-15.985c-.897 3.885-.822 13.52 4.93 24.052 6.722 7.096 13.072 13.67 29.953 21.064 8.888-13.595 8.44-15.237 8.44-15.387z" fill-rule="evenodd" stroke="#2b2b2b" stroke-width="1.075" fill="#2b2b2b"/> - <path stroke-linejoin="round" d="M371.854 328.584s4.93.598 6.274 3.137c1.345 2.54 1.942 6.425 1.942 6.425.822-1.643 1.196-3.062 2.84-4.257s2.837-1.345 2.763-2.24c-.075-.898-5.23-6.35-7.843-6.65-2.615-.298-7.17 2.84-7.17 2.84s-.823 1.194 1.194.746z" fill-rule="evenodd" stroke="#2b2b2b" stroke-width="1.075" fill="#8a9396"/> - <path d="M383.114 341.433s12.776 5.824 33.82 6.2" stroke="#8a9396" stroke-linecap="round" stroke-width="1.075" fill="none"/> - <path d="M425.764 282.127s-1.1 10.72-9.345 31.88" stroke="#2b2b2b" stroke-linecap="round" stroke-width="1.075" fill="none"/> - <path d="M424.12 288.723s-2.472 7.696-9.343 13.467" stroke="#2b2b2b" stroke-width=".86pt" fill="none"/> -</svg> diff --git a/img/flags/4x3/gt.svg b/img/flags/4x3/gt.svg deleted file mode 100644 index 0fdaa11..0000000 --- a/img/flags/4x3/gt.svg +++ /dev/null @@ -1,204 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" height="480" width="640" viewBox="0 0 640 480"> - <defs> - <radialGradient id="a"> - <stop offset=".216" stop-color="#f9f0aa"/> - <stop offset="1" stop-color="#b07e09"/> - </radialGradient> - <radialGradient r="16.534" cy="308.269" cx="447.418" gradientUnits="userSpaceOnUse" xlink:href="#a" id="d"/> - <radialGradient r="10.911" cy="312.995" cx="451.558" gradientUnits="userSpaceOnUse" xlink:href="#a" id="e"/> - <radialGradient r="9.78" cy="308.643" cx="454.11" gradientUnits="userSpaceOnUse" xlink:href="#a" id="f"/> - <radialGradient r="17.354" cy="307.057" cx="458.39" gradientUnits="userSpaceOnUse" xlink:href="#a" id="g"/> - <radialGradient r="13.018" cy="252.363" cx="445.976" gradientUnits="userSpaceOnUse" xlink:href="#a" id="j"/> - <radialGradient r=".345" cy="215.266" cx="477.858" gradientUnits="userSpaceOnUse" id="m"> - <stop offset=".259" stop-color="#a50a0a"/> - <stop offset="1" stop-color="#4c0505"/> - </radialGradient> - <radialGradient id="n" gradientTransform="scale(.97707 1.02346)" cx="489.072" cy="210.326" fx="489.072" fy="210.326" r=".345" gradientUnits="userSpaceOnUse"> - <stop offset="0" stop-color="#fff"/> - <stop offset="1" stop-opacity="0" stop-color="#fff"/> - </radialGradient> - <linearGradient y2="231.963" x2="472.357" y1="259.171" x1="473.906" gradientUnits="userSpaceOnUse" id="h"> - <stop offset=".216" stop-opacity="0" stop-color="#b07e09"/> - <stop offset="1" stop-color="#b07e09"/> - </linearGradient> - <linearGradient y2="326.583" x2="485.495" y1="296.656" x1="483.126" gradientUnits="userSpaceOnUse" id="i"> - <stop offset=".216" stop-opacity="0" stop-color="#b07e09"/> - <stop offset="1" stop-color="#b07e09"/> - </linearGradient> - <linearGradient y2="240.576" x2="455.366" y1="249.523" x1="451.541" gradientUnits="userSpaceOnUse" id="k"> - <stop offset=".216" stop-color="#f9f0aa"/> - <stop offset="1" stop-color="#b07e09"/> - </linearGradient> - <linearGradient y2="270.446" x2="475.929" y1="237.247" x1="473.314" gradientUnits="userSpaceOnUse" id="l"> - <stop offset=".216" stop-color="#f9f0aa"/> - <stop offset="1" stop-color="#b07e09"/> - </linearGradient> - </defs> - <path fill="#4997d0" d="M0 0h640v480H0z"/> - <path fill="#fff" d="M213.333 0h213.333v480H213.333z"/> - <g transform="translate(0 40) scale(.66667)"> - <g stroke="#24420e"> - <path d="M452.12 377.48c2.67-.407 4.208-1.138 6.035-1.786m2.215-4.054c1.347 1.43 2.417 2.95 2.993 4.635m-8.113-5.075c1.405 1.313 2.376 2.712 3.138 4.152M408.81 238.77c-1.044 1.602-3.092 2.726-4.78 3.428m-.34-.198c.035-1.368-.236-3.026.05-4.394m-1.98 5.024c.114.37.435 1.4.676 2.028m2.024.922c-.378.082-1.52.257-2.028.338m-3.952-.878c-.013 2.52.286 5.553.53 7.82m-1.79-.96c.472.757.947 1.504 1.545 1.883m-4.585 6.467c.49.94.943 2.122 1.304 3.96m3.716-4.63c-.414.205-1.215.93-1.93 1.545m1.59 4.395c-.98.872-2.198 1.504-3.428 2.124m-3.812 40.406c1.153 1.893 2.42 3.56 3.96 4.684m.58 1.686c-1.294-.166-2.16-.545-2.945-.966m4.395 8.406l1.69.966m-.44 3.474c1.255.816 2.51 2.283 3.765 3.862m-1.445 2.848c1.385.293 2.493.64 3.235 1.062m-1.065 2.418l2.124.072m1.206-5.382c-.102 1.534-.253 2.972-.483 4.25m1.013 1.59l.434-1.642m4.686 5.992l-.146 3.236m39.206 27.904l-1.16 1.593m-2.41-3.913l-.676-1.834" fill="none" stroke-width=".437"/> - <g stroke-width=".164"> - <path d="M486.11 384.93c-.797-1.256-2.108-2.028-3.277-2.656-7.727-4.056-15.406-5.843-24.116-7.244-2.013-.337-4.027-2.22-6.087-3.187-4.963-2.365-10.49-3.284-15.31-5.697-.33-.146-1.546-.87-2.11-1.545-1.918-2.22-5.384-2.898-7.537-4.974-8.335-7.87-17.184-15.116-21.772-25.547-5.572-12.7-12.503-25.787-11.566-40.227.608-9.126-.75-18.35 1.497-27.043 3.326-12.894 7.588-25.64 15.407-36.314l-1.31.82c-7.868 10.675-12.128 23.423-15.453 36.316-2.248 8.692-.89 17.916-1.5 27.043-.935 14.44 5.996 27.526 11.568 40.274 4.588 10.382 13.485 17.625 21.774 25.546 2.154 2.027 5.62 2.703 7.54 4.973.56.626 1.824 1.4 2.105 1.544 4.825 2.415 10.35 3.332 15.314 5.65 2.06 1.014 4.074 2.85 6.087 3.188 8.71 1.4 16.39 3.235 24.116 7.242 1.217.628 2.482 1.4 3.28 2.657l1.356-.82" fill="#406325"/> - <g fill="#67923d"> - <path d="M406.34 331.62c-2.794-6.3-1.365-21.608-.198-23.53 6.633 13.006 4.425 23.74.198 23.53zm45.86 45.39c-7.092.364-20.61 9.295-21.864 11.396 15.085.116 24.02-7.315 21.864-11.396zm7.46-4.29c-6.845-5.45-14.19-23.66-14.032-26.5 15.11 10.833 18.936 24.28 14.032 26.5z"/> - <path d="M454.61 372.78c-6.95-4.235-15.786-20.115-15.938-22.754 15.202 8.194 20.198 20.13 15.938 22.754zM439.05 366c.984-7.822-5.666-24.24-7.585-25.98-2.95 16.468 2.997 27.574 7.585 25.98zm-27.31-24.28c-2.304-5.646-.613-19.32.47-20.998 5.52 11.696 3.264 21.218-.47 20.998zm-13.71-76.83c3.59-6.648 18.38-15.712 20.99-15.93-6.77 14.568-18.037 19.828-20.99 15.93z"/> - <path d="M398.74 259.33c2.148-7.282 14.874-19.265 17.36-20.034-3.727 15.676-13.678 23.18-17.36 20.034zm27.81 99.15c-4.992-6.176-8.011-23.865-7.29-26.36 11.27 12.514 12.03 25.233 7.29 26.36zm-28.65-36.46c-6.91 1.089-21.36-4.636-22.92-6.337 14.532-3.15 24.287 2.072 22.92 6.337zm-2.22-9.68c.823-5.577 8.665-15.81 10.36-16.66-1.11 11.958-7.448 18.6-10.36 16.66zm51.33 58.54c-8.475.435-24.63 11.107-26.128 13.618 18.028.143 28.705-8.74 26.128-13.618z"/> - </g> - <g fill="#406325"> - <path d="M406.41 331.47c4.227.21 6.405-10.396-.27-23.38 1.212 12.32 1.21 22.31.27 23.38zm11.18 19.99c-4.474-5.47-19.38-11.328-21.712-11.14 8.885 12.08 19.88 15.096 21.712 11.14zm-24.42-52.98c-1.147-8.043-12.334-22.713-14.743-23.97 1.517 17.176 10.548 26.698 14.743 23.97zm8.39 34.29c-4.993-3.68-18.97-5.344-20.94-4.723 10.137 8.305 20.212 8.458 20.94 4.723zm-9.36-24.83c-2.885-5.69-14.812-13.482-16.892-13.7 5.517 12.386 14.558 16.938 16.892 13.7zm2.73-47.54c.905-7.573-5.533-23.446-7.345-25.158-2.866 15.925 2.918 26.664 7.345 25.158zm4.47-14.92c2.658-6.496.756-22.43-.522-24.417-6.403 13.51-3.827 24.648.522 24.417z"/> - <path d="M404.42 237.83c3.136-4.77 4.162-17.685 3.485-19.47-7.236 9.715-6.958 18.944-3.485 19.47zm5.95-6.14c4.402-3.477 9.224-15.5 9.084-17.433-9.74 6.954-12.22 15.84-9.084 17.433zm-16.05 43.2c.108.868-.978-8.18-10.054-18.314.41 14.818 6.25 20.42 10.054 18.314zm32.56 85.78c-6.176-4.56-23.385-6.729-25.767-5.927 12.562 10.355 24.878 10.55 25.767 5.927zm12.07 5.24c-4.542 1.593-10.443-9.417-7.54-25.883 2.81 13.955 6.18 25.063 7.54 25.883zm13.3 11.15c2.116 4.082-6.7 11.436-21.787 11.315 11.952-4.89 21.24-9.86 21.787-11.315zm7.39-4.47c4.865-2.25 1.1-15.536-14.01-26.37 8.596 13.215 14.456 24.61 14.01 26.37z"/> - <path d="M454.57 372.67c4.278-2.666-.69-14.444-15.89-22.64 9.403 11.184 16.094 20.968 15.89 22.64zm-42.79-30.99c3.735.222 5.957-9.262.477-20.924.718 10.974.418 19.978-.477 20.924zm-13.76-76.74c2.95 3.897 14.055-1.31 20.837-15.923-10.165 9.338-19.225 16.064-20.837 15.923z"/> - <path d="M398.86 259.33c3.682 3.145 13.542-4.302 17.27-19.977-8.097 11.245-15.645 19.736-17.27 19.977zm27.72 99.09c4.74-1.125 3.954-13.784-7.254-26.272 5.013 13.416 8.016 24.756 7.254 26.272zm-28.87-36.46c1.407-4.24-8.297-9.37-22.803-6.26 12.26 2.196 22.043 5.043 22.803 6.26zm-1.94-9.61c2.903 1.887 9.178-4.66 10.286-16.617-4.674 9.18-9.166 16.265-10.286 16.617zm51.2 58.68c2.576 4.876-7.96 13.667-26.035 13.522 14.283-5.844 25.38-11.783 26.035-13.522z"/> - <path d="M399.36 326.3c-2.658-6.262-14.798-15.462-16.982-15.84 4.946 13.637 14.248 19.145 16.982 15.84z"/> - </g> - <g fill="#67923d"> - <path d="M392.42 273.92c4.074-4.666 17.47-9.134 19.6-8.865-8.043 10.41-17.942 12.515-19.6 8.865zm25.07 77.59c-1.807 3.918-12.696.916-21.646-11.152 10.885 6.83 20.244 11.51 21.646 11.152zm-24.39-53.05c-4.195 2.727-13.128-6.738-14.685-23.884 6.623 13.203 13.037 23.384 14.685 23.884zm8.42 34.34c-.77 3.73-10.688 3.59-20.864-4.717 10.73 3.406 19.74 5.332 20.864 4.717zm-9.45-24.95c-2.333 3.24-11.29-1.27-16.807-13.657 8.192 7.967 15.492 13.744 16.807 13.657zm2.76-47.55c-4.427 1.556-10.16-9.08-7.294-25.005 2.667 13.488 5.935 24.175 7.294 25.005zm4.47-14.86c-4.304.227-6.87-10.815-.468-24.322-.822 12.797-.507 23.234.468 24.322zm5.04-7.67c-3.473-.525-3.717-9.655 3.52-19.37-2.74 9.977-4.15 18.367-3.52 19.37zm5.98-6.08c-3.136-1.643-.7-10.43 9.038-17.337-5.526 8.644-9.318 16.178-9.038 17.337z"/> - <path d="M394.25 274.9c-3.804 2.106-9.577-3.503-9.987-18.322 5.102 11.684 8.603 17.807 9.987 18.322zm32.57 85.8c-.886 4.625-13.144 4.4-25.678-5.895 13.168 4.274 24.246 6.694 25.678 5.895zm-8.17-9.48c-4.023-4.343-7.158-17.347-6.747-19.242 9.012 8.743 10.215 18.165 6.747 19.242zm-16.88-24.99c-3.57-5.786-3.876-20.907-2.92-22.956 8.264 11.81 7.254 22.585 2.92 22.956zm-2.63.09c-2.736 3.305-11.93-2.159-16.872-15.833 8.132 9.11 15.474 15.812 16.872 15.833z"/> - </g> - <g fill="#406325"> - <path d="M392.37 274c1.617 3.623 11.45 1.53 19.493-8.88-11.97 6.793-16.71 9.74-19.493 8.88zm9.34 52.07c4.332-.37 5.33-11.037-2.933-22.846 2.664 11.854 3.79 21.678 2.933 22.846zm16.96 25.11c3.47-1.07 2.25-10.45-6.713-19.178 4.403 9.727 7.205 18.01 6.713 19.178z"/> - <path d="M394.23 291.77c2.058-8.386-1.702-22.6-4.3-25.56-4.716 15.428-.245 26.6 4.3 25.56z"/> - </g> - <path d="M393.93 293.77c-5.895 1.34-8.645-12.034-4.08-27.078 1.07 13.546 2.834 26.147 4.08 27.078z" fill="#67923d"/> - <path d="M392.73 293.72c-.558-7.527 6.934-23.087 8.915-24.707 2.015 15.803-4.462 26.308-8.915 24.707z" fill="#67923d"/> - <path d="M392.84 293.61c4.413 1.636 10.85-8.76 8.835-24.564-3.51 13.267-7.445 23.764-8.835 24.564z" fill="#406325"/> - <path d="M394.13 303.26c.005-7.61 8.47-22.23 10.562-23.62.834 16.163-6.332 25.83-10.562 23.62z" fill="#67923d"/> - <path d="M394.21 303.41c4.23 2.21 11.306-7.364 10.47-23.525-4.408 12.857-9.047 22.9-10.47 23.525z" fill="#406325"/> - </g> - <g fill="#ba1f3e" stroke="#511124" stroke-width=".218"> - <circle cx="396.835" cy="251.27" r="1.085" stroke-width=".186"/> - <circle cx="405.205" cy="245.07" r="1.085" stroke-width=".186"/> - <circle cx="401.564" cy="241.71" r="1.086" stroke-width=".186"/> - <circle cx="392.503" cy="313.12" r="1.277"/> - <circle cx="395.033" cy="297.13" r="1.277"/> - <circle cx="408.213" cy="334.46" r="1.277"/> - <circle cx="402.393" cy="336.43" r="1.277"/> - <circle cx="446.703" cy="367.63" r="1.277"/> - <circle cx="449.613" cy="374.71" r="1.277"/> - </g> - </g> - <g stroke="#24420e"> - <path d="M561.15 258.97c.623.62 1.174.808 2.295 1.895m-6.625-18.945c-.035-1.368-.633-3.605-.918-4.973m3.448 2.983c.055 1.952-.218 3.81-1.062 5.504m-4.158-.534c1.753 1.576 3.505 3.077 5.258 3.892m3.822 1.228c.105 1.98-.142 3.96-.683 5.94m.323 1.51l1.314-2.262M562.3 267.43c1.4.29 2.81 1.946 3.505 3.482m.475-1.292l1.64-2.185m1.71 30.725a23.9 23.9 0 0 1-2.458 3.483m-3.962-.073c.79 1.456 1.556 2.946 2.595 4.03m2.455 5.87c-1.307 1.773-2.766 3.165-4.438 4.03m.138 4.5c-1.093.75-2.426 2.953-3.687 4.712m8.437-20.182l-2.124.87m-1.396-7.49l1.256 1.11m-9.296 37.39c-.84-.108-1.456.01-2.124.072m-1.996-1.932l.615 1.64m-7.715 5.12c-.262 1.866-.072 3.733.204 5.6m4.306-9.02l1.024 2.254m3.826-.204l-2.526.41m-30.854 25.27l-.917 1.738m11.897-3.928c-1.492.187-2.778-.043-4.097-.204m-5.463 5.944a27.282 27.282 0 0 0-2.936-.956m-14.744 2.656c-.906.773-1.99 2.435-3.073 4.097m-.547-4.567c-2.433 1.253-3.182 3.71-4.438 5.804m2.798 2.866c-1.553-.46-3.412-1.228-5.326-2.048m16.766-.682c-2.32-1.205-4.748-1.087-7.135-1.468m10.755-.342c-3.628-.707-7.01-.61-10.276-.137m7.776-2.603l-1.4-.58m-5.53 5.5l-2.323-1.296m57.943-49.194c-1.256.816-2.51 2.283-3.766 3.863m1.826-79.623l-2.153-.724" fill="none" stroke-width=".437"/> - <g stroke-width=".164"> - <path d="M474.39 384.85c.797-1.256 2.108-2.028 3.277-2.656 7.726-4.056 15.406-5.843 24.117-7.244 2.013-.337 4.027-2.22 6.087-3.187 4.964-2.365 10.49-3.284 15.312-5.697.328-.146 1.545-.87 2.108-1.545 1.92-2.22 5.385-2.898 7.54-4.974 8.333-7.87 17.183-15.116 21.77-25.546 5.573-12.7 12.504-25.787 11.568-40.225-.61-9.126.75-18.35-1.498-27.043-3.326-12.893-7.59-25.643-15.408-36.314l1.31.82c7.868 10.675 12.128 23.424 15.453 36.315 2.248 8.692.89 17.916 1.5 27.043.935 14.44-5.996 27.526-11.567 40.275-4.59 10.384-13.486 17.627-21.774 25.547-2.154 2.027-5.62 2.703-7.54 4.973-.56.627-1.825 1.4-2.106 1.545-4.823 2.415-10.35 3.332-15.313 5.65-2.06 1.014-4.073 2.85-6.087 3.188-8.71 1.4-16.388 3.235-24.113 7.242-1.217.628-2.482 1.4-3.278 2.657l-1.358-.822" fill="#406325"/> - <g fill="#406325"> - <path d="M553.65 334.6c2.74-7.416-.01-24.838-1.49-26.95-6.648 15.37-3.34 27.5 1.49 26.95z"/> - <path d="M546.54 341.64c2.304-5.646.613-19.32-.47-20.998-5.52 11.696-3.265 21.218.47 20.998zm16.81-74.15c-3.293-6.1-16.867-14.418-19.26-14.618 6.212 13.368 16.55 18.195 19.26 14.618z"/> - <path d="M561.76 259.47c-1.79-6.068-12.395-16.053-14.466-16.694 3.105 13.063 11.398 19.315 14.466 16.694zm4.74 14.96c-3.537-4.05-15.164-7.928-17.013-7.695 6.98 9.036 15.572 10.864 17.013 7.695zm-2.8 46.33c6.132.966 18.96-4.115 20.345-5.625-12.9-2.797-21.56 1.84-20.345 5.625zm-.15-5.64c-.043-5.638-6.395-16.856-7.956-17.933-.556 11.996 4.803 19.453 7.956 17.933z"/> - <path d="M563.96 301.44c-.005-7.61-8.47-22.23-10.562-23.62-.834 16.162 6.332 25.83 10.562 23.62zm-52.89 75.27c4.477 5.503 19.653 11.133 22.088 10.904-8.805-12.233-20.07-15.05-22.088-10.904z"/> - </g> - <g fill="#67923d"> - <path d="M553.56 334.43c-4.824.55-8.09-11.437-1.395-26.785-.49 14.192.24 25.63 1.395 26.785zm-53.37 43.66c7.093.363 20.61 9.295 21.865 11.396-15.086.117-24.02-7.315-21.865-11.396zm0-7.94c2.098-7.967 15.006-21.21 17.514-22.15-3.603 17.133-13.74 25.534-17.514 22.15zm21.27-4.23c-.985-7.822 5.665-24.24 7.585-25.98 2.95 16.467-2.997 27.575-7.585 25.98zm21.46-14.54c4.474-5.47 19.38-11.328 21.712-11.14-8.885 12.08-19.88 15.096-21.712 11.14zm25.79-53.26c.903-6.332 9.71-17.88 11.606-18.87-1.194 13.52-8.304 21.018-11.606 18.87z"/> - <path d="M557.02 336.18c5.817-4.29 22.105-6.228 24.4-5.504-11.814 9.676-23.553 9.855-24.4 5.504zm10.27-24.52c3.033-5.98 15.566-14.17 17.754-14.4-5.8 13.02-15.3 17.803-17.754 14.4zm-1.48-45.56c-.098-7.625 7.984-22.728 9.966-24.24 1.165 16.14-5.723 26.206-9.965 24.24zm-6.93-25.92c-2.322-5.28-1.1-18.414-.093-20.074 5.55 10.963 3.672 20.17.093 20.074zm-4.23-2.18c-5.274-4.683-10.645-19.756-10.41-22.103 11.75 9.263 14.385 20.36 10.41 22.103z"/> - <path d="M566.28 272.54c-.317.815 2.945-7.695 14.22-15.308-4.013 14.27-11.045 18.28-14.22 15.308zm-34.1 89.9c7.006-5.173 26.532-7.634 29.232-6.724-14.253 11.748-28.225 11.97-29.232 6.724zm14.33-20.84c-3.735.222-5.957-9.262-.477-20.924-.72 10.974-.418 19.978.477 20.924zm16.85-74.07c-2.708 3.576-12.897-1.202-19.12-14.61 9.327 8.57 17.64 14.74 19.12 14.61zm-1.7-8.06c-3.068 2.62-11.285-3.583-14.39-16.646 6.745 9.37 13.035 16.446 14.39 16.646zm4.89 15.03c-1.405 3.145-9.94 1.328-16.92-7.708 10.39 5.896 14.505 8.455 16.92 7.708zm-2.69 46.21c-1.25-3.764 7.365-8.317 20.24-5.556-10.883 1.95-19.566 4.477-20.24 5.556zm-.4-5.6c-3.136 1.467-8.445-5.885-7.888-17.88 3.36 9.74 6.828 17.375 7.888 17.88z"/> - <path d="M563.88 301.59c-4.23 2.21-11.305-7.364-10.47-23.525 4.408 12.857 9.047 22.898 10.47 23.525zm-52.69 75.07c2.018-4.146 13.15-1.378 21.976 10.888-10.995-6.75-20.482-11.305-21.976-10.888z"/> - </g> - <g fill="#406325"> - <path d="M521.55 365.83c4.542 1.593 10.443-9.417 7.54-25.883-2.81 13.955-6.18 25.064-7.54 25.883z"/> - <path d="M531.83 360.59c4.34-6.65 5.55-24.554 4.58-26.967-9.944 13.594-9.41 26.324-4.58 26.967zm-31.69 17.54c-2.116 4.08 6.7 11.436 21.787 11.315-11.95-4.89-21.238-9.86-21.787-11.315zm.16-8.05c3.785 3.338 13.808-4.948 17.41-22.083-8.128 12.423-15.724 21.8-17.41 22.083zm42.71-18.65c1.807 3.918 12.696.916 21.646-11.152-10.885 6.83-20.244 11.512-21.646 11.152zm25.75-53.33c3.303 2.147 10.335-5.303 11.56-18.803-5.213 10.395-10.262 18.41-11.56 18.803zm-11.69 38.11c.895 4.348 12.454 4.183 24.312-5.496-12.502 3.97-23 6.214-24.312 5.496zm10.36-24.64c2.453 3.405 11.865-1.334 17.664-14.352-8.61 8.373-16.28 14.445-17.664 14.352zm-1.51-45.56c4.238 2.016 11.064-7.952 9.899-24.093-4.08 13.13-8.46 23.412-9.9 24.093zm-6.96-25.87c3.542.093 5.415-9.033-.134-19.995.95 10.498.913 19.08.134 19.995zm-4.23-2.24c3.972-1.742 1.33-12.71-10.422-21.972 6.472 11.02 10.853 20.573 10.422 21.972zm11.61 34.67c3.175 2.97 10.143-1.06 14.155-15.33-7.798 10.084-12.688 15.17-14.155 15.33zm-34.09 89.91c1.005 5.247 14.913 4.994 29.132-6.688-14.94 4.85-27.508 7.595-29.132 6.688z"/> - <path d="M539.14 354.75c3.272-4.934 4.274-18.274 3.564-20.077-7.488 10.08-7.16 19.572-3.564 20.077zm19.6-28.61c3.57-5.786 3.876-20.908 2.92-22.957-8.264 11.81-7.255 22.586-2.92 22.957z"/> - </g> - <path d="M531.79 360.54c-4.83-.638-5.33-13.312 4.552-26.873-3.626 13.856-5.464 25.442-4.552 26.873zm35.16-68.33c-.943-7.765 3.976-20.143 6.632-22.522 2.573 14.385-2.66 23.95-6.632 22.522zm-27.84 62.49c-3.597-.5-3.9-9.954 3.54-20.007-2.78 10.308-4.213 18.935-3.54 20.007zm23.36-104.24c-2.167-5.88.03-20.04 1.236-21.774 5.29 12.257 2.638 22.116-1.236 21.774zm-58.08 120.15c2.474-8.09 16.19-21.08 18.807-21.915-4.335 17.42-15.065 25.53-18.807 21.915zm54.53-41.59c2.658-6.262 14.798-15.462 16.98-15.84-4.944 13.637-14.247 19.145-16.98 15.84zm-.12-3.03c-4.333-.37-5.33-11.037 2.933-22.846-2.664 11.854-3.79 21.678-2.933 22.846z" fill="#67923d"/> - <path d="M567 294.04c5.158 1.842 9.078-9.89 6.598-23.914-2.428 12.067-5.377 23.21-6.598 23.914z" fill="#406325"/> - <path d="M567.77 293.64c.557-7.527-6.935-23.086-8.915-24.707-2.015 15.803 4.463 26.31 8.915 24.707zm-5.22-43.22c3.834.337 6.473-9.435 1.187-21.69.33 11.446-.283 20.75-1.187 21.69zM504.5 370.53c3.787 3.62 14.37-4.417 18.704-21.838-8.84 12.353-16.968 21.612-18.704 21.838zm54.64-41.49c2.735 3.305 11.93-2.158 16.872-15.833-8.133 9.11-15.474 15.812-16.872 15.833z" fill="#406325"/> - <path d="M567.66 293.53c-4.413 1.636-10.85-8.76-8.835-24.563 3.51 13.267 7.445 23.763 8.835 24.563z" fill="#67923d"/> - </g> - <g fill="#ba1f3e" stroke="#511124" stroke-width=".218"> - <circle cx="564.625" cy="254.9" r="1.085"/> - <circle cx="568.415" cy="266.82" r="1.085"/> - <circle cx="569.757" cy="304.3" r="1.277"/> - <circle cx="564.647" cy="297.29" r="1.277"/> - <circle cx="549.907" cy="337.17" r="1.277"/> - <circle cx="556.197" cy="339.9" r="1.277"/> - <circle cx="513.797" cy="372.26" r="1.277"/> - <circle cx="506.797" cy="377.29" r="1.277"/> - <circle cx="557.054" cy="249.25" r="1.084"/> - </g> - </g> - <g id="b" fill="#8c959d" stroke="#485654" stroke-width=".109"> - <path d="M434.25 336.27c-.134 1.066.842 2.34 2.128 2.07.386-.08.624-.58.132-.49-.425.108-.88-.07-1.202-.374a1.677 1.677 0 0 1-.396-1.92c-.23.25-.45.485-.66.713h-.002z"/> - <path d="M437.24 338.34c-1.016 1.165-2.568 1.676-3.427.834-.573-.565-.777-1.205-.468-1.912-.443.482-.822.897-1.12 1.23.046.09.714 1.31 1.707 1.76 1.223.55 2.972-.28 4.018-1.565.738-.91 1.56-2.428.967-3.61-.365-.728-1.24-1.423-1.967-1.698-.35.374-.695.746-1.027 1.1.51-.24 1.148-.135 1.695.312 1.274 1.035.537 2.5-.378 3.546v.002z" stroke="none"/> - <path d="M437.24 338.34a4.006 4.006 0 0 1-1.162.956c-.444.235-.957.39-1.473.318a1.48 1.48 0 0 1-.71-.296 2.364 2.364 0 0 1-.51-.58 1.61 1.61 0 0 1-.248-.737c-.02-.262.038-.528.14-.767l.123.08-1.11 1.24.013-.1c.276.48.624.937 1.042 1.3.21.18.442.335.694.436a2 2 0 0 0 .796.133c.55-.016 1.088-.206 1.573-.477a5.1 5.1 0 0 0 1.297-1.042c.37-.417.69-.887.935-1.388.24-.5.41-1.05.374-1.595a1.833 1.833 0 0 0-.224-.774 3.063 3.063 0 0 0-.5-.655 4.185 4.185 0 0 0-1.37-.932l.09-.022-1.034 1.093-.085-.117c.236-.107.5-.145.754-.118.254.03.498.117.715.245.427.257.798.65.925 1.145.13.494.002 1.008-.208 1.448a5.128 5.128 0 0 1-.84 1.205v.002zm0-.002c.314-.375.595-.78.794-1.225.196-.44.302-.942.167-1.404-.13-.46-.492-.827-.9-1.064-.407-.238-.924-.305-1.345-.1l-.084-.117 1.018-1.11.04-.042.053.02c.55.21 1.034.55 1.447.96.204.21.39.437.536.698.146.257.23.557.25.852.043.598-.138 1.177-.383 1.7a6.39 6.39 0 0 1-.962 1.44c-.39.433-.85.8-1.358 1.082-.51.278-1.076.478-1.67.493a2.202 2.202 0 0 1-.876-.153 2.734 2.734 0 0 1-.744-.473 5 5 0 0 1-1.073-1.363l-.03-.054.042-.046 1.13-1.22.124.078c-.1.22-.155.46-.142.7.012.24.093.474.217.682.124.207.288.403.472.557.187.155.416.254.657.295.486.082.99-.053 1.435-.273.446-.225.846-.54 1.185-.912z" fill="#485654" stroke="none"/> - <path d="M515.24 249.25l-40.137 39.515c-3.053 3.032-37.963 36.38-41.105 39.384-1.103 1.322-4.233 4.857-4.56 5.352-2.13 2.31-4.44 5.33-7.198 8.03-.49.62-1.142.394-1.734.737-1.814 1.05-3.697 2.87-5.053 4.37l-12.208 13.505c-.786.854-.996 1.38-.464 1.87l6.624 8.85c1.23 1.214 2.644 1.838 3.195.82 3.146-5.447 10.96-13.76 13.914-20.335 1.764-3.93 3.978-11.058 5.558-12.782 1.94-2.157 7.17-7.73 11.806-12.705.314-.335.624-.668.93-.997l.947-1.02c23.506-23.95 50.715-53.045 70.526-73.557-.777-.776-.285-.312-1.04-1.04z" fill="#6c301e" stroke="#351710" stroke-width=".218" stroke-linejoin="round"/> - <path d="M431.89 328.11c-1.225.043-2.022-.707-2.848-1.4 1.17.346 2.345.797 3.452.338l-.604 1.062z"/> - <path d="M557.05 220.1l-31.804 26.22c-.306.373-.624.266-.93 0l-2.894-2.418c.004-.037.014-.073.014-.11 0-.162-.032-.318-.082-.464l1.42-1.447c.177-.22.12-.31-.123-.545-.182-.19-.342-.365-.586-.6-.228-.177-.416-.037-.642.176l-1.434 1.476c-.734.03-1.33.63-1.352 1.366-19.238 18.73-35.794 35.435-54.938 53.872l-22.573 21.55c-.806 1.042-4.29 2.906-6.596 4.41-.818.532-1.524 1.016-1.817 1.543l-1.844 5.435c-.583 1.194-2.432 4.003-2.514 4.193 2.37 2.386 2.248 2.212 3.865 3.728 1.82-2.023 6.69-7.112 11.117-11.853.357-.382.38-.422.833-.97-.346-.488-.927-1.205-1.393-1.652a34.105 34.105 0 0 0-1.2-1.093c-.246-.212-.47-.39-.63-.546-.162-.157.24-.445.424-.643 26.465-25.58 54.963-53.695 78.277-76.595a1.41 1.41 0 0 0 1.025-.096l2.785 3.21c.655.652 1.21.64 1.735.395l31.86-28.54z" fill="#b2b6ba" stroke-width=".218"/> - <path d="M430.95 330.39c.2.03.405.048.606.03a1.5 1.5 0 0 0 .574-.16l-.017.018a124.9 124.9 0 0 1 1.475-4.744l.005.027c-.195-.222-.436-.42-.73-.495.298.057.558.244.77.46l.01.01-.004.016c-.23.798-.468 1.59-.71 2.382-.247.79-.493 1.58-.754 2.366l-.005.014-.01.006a1.407 1.407 0 0 1-.602.14 2.87 2.87 0 0 1-.61-.068z" fill="#485654" stroke="none"/> - <circle cx="438.179" cy="328.135" r=".619" fill="none" stroke-width=".164"/> - <circle cx="434.436" cy="331.877" r=".619" fill="none" stroke-width=".164"/> - <path d="M440.97 322.38c-.32-.24-.615-.505-.906-.775a11.58 11.58 0 0 1-.832-.854c.32.24.615.506.906.776.288.273.57.55.832.854z" fill="#485654" stroke="none"/> - <path d="M502.17 259.06l3.487 3.41.645-.586-3.487-3.41-.645.586z"/> - </g> - <use height="100%" width="100%" xlink:href="#b" transform="rotate(-177.16 487.09 -.23)"/> - <g stroke="#24420e" stroke-width=".164"> - <path d="M433.91 365.36c-7.866-3.32-26.89-.67-29.22.932 16.286 8.01 29.54 4.574 29.22-.932zm89.02 3.32c7.866-3.32 26.89-.67 29.22.933-16.286 7.982-29.54 4.573-29.22-.933z" fill="#67923d"/> - <path d="M433.76 365.48c.32 5.506-12.79 8.885-29.075.903 15.295.932 27.793.378 29.075-.903zm89.32 3.29c-.32 5.506 12.79 8.885 29.075.903-15.295.933-27.793.408-29.075-.903z" fill="#406325"/> - </g> - <g id="c"> - <path d="M508.49 359.99c-20.733-30.12-51.995-54.61-76.102-67.99 3.557-.167 11.46 3.88 14.67 5.948 23.94 15.427 44.3 35.803 65.664 59.822-1.258 1.245-2.082 1.98-3.446 3.05l-.786-.83z" fill="#b2b6ba" stroke="#485654" stroke-width=".218"/> - <path d="M510.55 359.75l-1.45 1.394c-23.01-29.62-55.094-57.945-76.67-69.13 30.08 13.855 55.392 41.77 78.034 67.65l.085.085z" fill="#8c959d"/> - <path d="M510.56 359.75l-1.448 1.397-.004.003-.003-.004c-5.325-6.824-10.975-13.39-16.864-19.73a336.016 336.016 0 0 0-18.366-18.337c-6.36-5.87-12.943-11.496-19.81-16.76a195.858 195.858 0 0 0-10.542-7.564c-3.6-2.393-7.297-4.652-11.133-6.644l.094-.196c7.892 3.644 15.34 8.195 22.375 13.28 7.038 5.092 13.676 10.716 20.028 16.632 6.352 5.92 12.422 12.135 18.328 18.497 5.902 6.367 11.63 12.892 17.343 19.425zm0 0c-5.74-6.51-11.494-13.012-17.42-19.353-5.916-6.35-11.99-12.556-18.35-18.463-6.356-5.904-12.998-11.515-20.036-16.59-7.036-5.07-14.478-9.605-22.36-13.23l.096-.196c3.845 2 7.54 4.27 11.144 6.67 3.6 2.405 7.108 4.95 10.542 7.586 6.864 5.278 13.444 10.918 19.798 16.798a336.06 336.06 0 0 1 18.35 18.37c5.867 6.363 11.49 12.956 16.79 19.8l-.007-.002 1.453-1.39z" fill="#485654"/> - <g fill="#fab81c" stroke="#6c301e" stroke-width=".109"> - <path d="M517.5 355.07c-1.974.51-3.726 1.253-5.258 2.226-.228 1.397-1.953 2.957-3.587 3.31-.297-.377-.367-.487-.592-.77a.13.13 0 0 0-.17-.038c-.14.076-.33.18-.572.34-.61-.103-1.336.197-1.66.975-.377.97.386 2.248 1.225 3.084.924.73 1.387 1.07 2.458.92 1.083-.224 1.68-1.213 1.925-1.528 3.72 4.502 6.517 6.932 11.23 10.64 2.098.016 3.224-1.307 2.52-2.803-.233-.502-.84-.836-1.333-.652.04-.15.024-.305 0-.45 2.463-2.265 3.514-5.09.915-9.874-2.224-4.03-4.712-5.396-7.088-5.38h-.012zm6.246 4.53c.438.742.692 1.38 1.024 2.054 1.483 3 .196 6.602-2.334 7.706-.123-.005-.085-.02-.213.022.413-.687-.827-2.154-1.46-1.64.3-.758-.67-2.018-1.462-1.693.415-.706-.532-1.906-1.42-1.516.46-.767-.323-1.866-1.242-1.666.277-.818-.418-1.753-1.352-1.598.08-.723-.157-1.12-.507-1.45 1.11-.846 2.346-2.15 3.437-2.738 2.72-1.178 4.403 1.073 5.527 2.518z" stroke-width=".218"/> - <path d="M524.89 362.77c-.515-.253-.756-.76-.587-1.105.17-.342.702-.432 1.217-.178.516.254.802.744.633 1.088-.172.343-.747.45-1.264.196z"/> - <path d="M524.59 361.75c-.515-.253-.756-.76-.587-1.105.17-.342.702-.432 1.218-.177.516.253.802.744.633 1.088-.172.343-.747.45-1.263.195z"/> - <path d="M523.97 360.62c-.515-.253-.756-.76-.587-1.105.168-.342.7-.433 1.217-.178.516.254.802.744.633 1.088-.172.343-.748.45-1.264.196z"/> - <path d="M523.19 359.6c-.516-.253-.756-.76-.587-1.105.17-.342.7-.432 1.217-.178.516.253.802.744.633 1.088-.172.343-.748.45-1.263.196z"/> - <path d="M522.16 358.61c-.515-.253-.756-.76-.587-1.105.023-.046.007-.136.055-.114.21.11.644.188.597-.136-.065-.113-.146-.227-.07-.142.15.004.464.134.636.222.517.253.803.744.634 1.088-.172.343-.747.45-1.264.195v-.007z"/> - </g> - <path d="M511.27 363.6c.682-1.774 2.047-3.414 3.508-3.806m-3.278 4.056c1.263.262 3.31-1.243 3.806-2.588m-2.616 4.038c1.656.38 3.29-1.218 3.934-2.409m-2.444 3.989c1.957.064 3.164-1.326 3.74-2.39m-2.23 3.92c1.66.01 3.172-1.36 3.646-2.424m-2.186 3.824c1.808-.073 3.084-.895 3.62-2.075m-1.98 3.495c1.66.096 3.003-.896 3.443-1.862m-1.663 3.312c1.66.096 2.695-.93 3.136-1.897" fill="#fab81c"/> - <path d="M511.27 363.6a7.112 7.112 0 0 1 1.309-2.329c.293-.338.616-.654.984-.914.367-.26.776-.467 1.214-.562-.424.14-.813.36-1.164.63-.35.268-.67.578-.952.917-.577.674-1.028 1.447-1.392 2.26zm.23.25c.405.057.81-.045 1.18-.193a4.88 4.88 0 0 0 1.048-.592c.328-.233.63-.505.9-.802.272-.298.513-.628.678-1-.123.39-.35.74-.613 1.055-.264.315-.572.59-.9.835a4.573 4.573 0 0 1-1.084.582c-.385.136-.81.218-1.21.115zm1.19 1.45c.405.07.818.035 1.204-.086.385-.12.747-.31 1.076-.548.333-.23.634-.506.91-.804.28-.298.528-.623.744-.97a4.68 4.68 0 0 1-.68 1.026 5.235 5.235 0 0 1-.91.837 3.703 3.703 0 0 1-1.117.54c-.402.107-.832.12-1.227.005zm1.49 1.58a4.21 4.21 0 0 0 1.146-.183 3.833 3.833 0 0 0 1.033-.507 4.72 4.72 0 0 0 .865-.764c.26-.287.487-.605.694-.936a4.552 4.552 0 0 1-1.5 1.79c-.327.22-.688.395-1.07.497-.382.104-.78.136-1.17.103zm1.51 1.53c.767-.042 1.493-.332 2.113-.765.314-.212.6-.463.86-.74.26-.275.493-.58.672-.92-.138.36-.357.686-.61.977-.25.293-.545.55-.86.773a4.236 4.236 0 0 1-1.036.517c-.37.12-.757.183-1.14.158zm1.46 1.4a7.09 7.09 0 0 0 1.078-.187 4.63 4.63 0 0 0 1.013-.388c.323-.164.62-.378.88-.63.26-.25.477-.546.65-.87-.132.344-.337.66-.59.93-.256.27-.562.49-.89.667a4.51 4.51 0 0 1-2.14.478zm1.64 1.42c.345-.004.687-.04 1.02-.12a4 4 0 0 0 .952-.36c.303-.155.583-.353.834-.583.25-.23.47-.496.636-.8a2.524 2.524 0 0 1-.578.86 3.576 3.576 0 0 1-.842.62c-.31.158-.642.28-.986.344-.342.066-.693.08-1.036.04zm1.78 1.45a3.94 3.94 0 0 0 .96-.12 3.305 3.305 0 0 0 1.617-.986 4.03 4.03 0 0 0 .56-.79 3.056 3.056 0 0 1-1.24 1.495 2.983 2.983 0 0 1-.918.362 3.018 3.018 0 0 1-.98.038z" fill="#6c301e"/> - </g> - <use height="100%" width="100%" xlink:href="#c" transform="rotate(-176.592 489.967 -.41)"/> - <g stroke="#24420e" stroke-width=".164"> - <path d="M409.24 240.02c7.21-2.367 18.73-15.453 19.478-17.917-15.593 4.154-22.757 14.343-19.478 17.917zm145.74 4.7c-1.702-7.045-13.28-19.01-15.568-19.91 2.763 15.16 11.916 22.758 15.568 19.91z" fill="#406325"/> - <path d="M409.24 240.02c-3.325-3.574 3.792-13.666 19.34-17.82-10.958 8.403-19.2 16.178-19.34 17.82zm145.74 4.7c-3.656 2.892-12.72-4.654-15.486-19.77 7.163 11.072 13.934 19.51 15.486 19.77z" fill="#67923d"/> - </g> - <g stroke="#999270" stroke-width=".164"> - <path d="M452.21 318.1s-6.158.662-7.884-7.833c-1.846-9.087 5.306-10.052 5.306-10.052s8.103-.78 13.15-.91l2.24 17.954-12.812.84z" fill="url(#d)"/> - <path d="M453.02 315.36s-3.985.762-4.807-5.553c-.583-4.473 2.185-5.108 2.185-5.108l9.236 1.563.05 8.24-6.664.857z" fill="url(#e)"/> - <path d="M450.4 304.7s5.905-.43 8.99-.83l1.28 5.71-7.102.446s-.487-5.155-3.168-5.326z" fill="url(#f)"/> - <path d="M449.16 300.36s7.575-1.857 8.517 6.49c.245 2.18-.942 7.166-4.656 8.513l13.875-1.456-1.256-15.007-4.675.39s-9.923.34-11.805 1.07z" fill="url(#g)"/> - <path d="M452.2 318.1c.047 0 51.903-3.49 57.217-3.274 15.743-8.638-.076-42.56-13.342-61.532 1.515-4.276-29.858-13.892-44.047-13.024-1.782.11-3.505.227-5.154.354-7.696.816-7.775 10.694-4.637 16.923 3.045 6.043 30.315 55.126 11.14 60.317l-1.176.236z" fill="#f9f0aa"/> - <path d="M507.79 273.34c-3.52-7.304-7.734-14.35-11.718-20.046 1.514-4.276-29.86-13.892-44.047-13.024-1.782.11-3.505.227-5.154.354-7.695.816-7.774 10.694-4.636 16.923.956 1.898 4.3 8.04 7.847 15.733" fill="url(#h)"/> - <path d="M455.04 284.95c5.555 14.65 8.664 30.117-1.64 32.907l-1.178.236c.047 0 51.903-3.49 57.216-3.274 8.538-4.685 7.793-16.805 3.207-29.944" fill="url(#i)"/> - <path d="M447.4 243.49c-3.705 0-4.656 3.562-4.605 5.817.134 5.91 4.605 6.192 4.605 6.192l5.965-.333 2.857-12.163-8.822.486z" fill="url(#j)"/> - <path d="M447.4 243.53l8.822-.486.908 9.086-7.696.337s2.49-7.274-2.034-8.937z" fill="url(#k)"/> - <path d="M496.12 253.29c6.686-1.074 6.595-10.07 2.026-13.673-15.498-.57-35.895-.143-50.63.96 1.676-.05 6.337.376 6.855 6.51.243 2.863-1.164 5.492-3.06 6.986-1.853 1.462-3.906 1.462-3.906 1.462.248.095 2.163.007 3.6-.087.738-.048 2.55-.264 3.054-.33 21.012-2.762 41.987-1.823 41.987-1.823l.08.003-.005-.008z" fill="url(#l)"/> - <path d="M458.47 267.42c-.143-.33-.323-.75-.73-.805-.25.014-.645-.052-.567-.392.235-.113.533-.04.794-.065.56.01 1.113-.114 1.67-.148.338.092.262.537-.104.463-.408.093-.175.563-.075.81.444 1.034.872 2.075 1.328 3.104.127.303.38.57.722.605.362.036.756.045 1.09-.116.31-.2.242-.624.2-.937-.124-.364.54-.282.495.043.13.43.28.854.447 1.27-.022.2-.275.143-.42.168-.993.077-1.988.132-2.98.224-.317-.017-.795.28-.99-.096-.118-.386.512-.17.596-.463-.003-.327-.195-.615-.307-.916-.39-.917-.78-1.836-1.17-2.75zm4.83-.34c-.14-.32-.302-.72-.687-.796-.247-.022-.653-.017-.616-.374.157-.162.457-.058.67-.092.592.02 1.175-.09 1.76-.144.29-.027.4.518.026.444-.358.012-.383.405-.233.65.47 1.143.96 2.278 1.437 3.416.105.245.24.548.54.586.252.05.648-.03.705.316-.04.267-.434.12-.63.16-.522-.036-1.042.032-1.556.12-.226.064-.55.027-.56-.27.054-.273.585-.07.61-.402-.04-.326-.215-.615-.33-.92l-1.136-2.694zm4.46.71c.09.227.404.064.586.075.263-.025.543-.215.52-.51-.044-.45-.265-.907-.633-1.182-.34-.24-.78-.213-1.172-.162-.022.156.1.305.146.454l.554 1.326zm.668 1.596c.164.35.28.745.565 1.017.244.172.57.093.843.066.302-.022.48-.332.386-.61-.142-.635-.554-1.3-1.238-1.437a2.43 2.43 0 0 0-.915 0c-.025.143.09.288.134.43l.224.533zm-2.034-2.37c-.158-.35-.31-.77-.688-.927-.245-.082-.643.03-.696-.324.065-.303.562-.09.8-.16.865-.022 1.744-.263 2.595-.003.734.182 1.39.81 1.45 1.587.024.377-.262.684-.582.837-.04-.135.367.06.506.082.582.186 1.118.575 1.377 1.143.2.398.357.93.04 1.314-.362.396-.94.413-1.438.438-.75.02-1.506.025-2.245.172-.267.047-.458-.482-.09-.45.37-.012.404-.412.244-.667l-1.276-3.046zm7.416-1.906c.327-.054.358.316.458.532.098.284.276.542.348.83-.277.277-.5-.144-.624-.358-.144-.248-.383-.476-.69-.45a8.31 8.31 0 0 0-1.22.07c-.143.16.066.394.114.577.19.447.36.902.56 1.34.272-.02.62.016.815-.207.076-.23-.27-.747.21-.64.298.17.264.602.416.882.127.388.384.724.492 1.115-.263.29-.524-.13-.62-.363-.187-.347-.624-.306-.96-.296-.24-.05-.074.172-.04.284.216.493.384 1.01.66 1.475.207.342.65.29.993.28.33-.02.734-.026.927-.34.216-.25-.274-.75.132-.83.346-.03.336.376.428.607.073.28.185.55.284.823-.026.2-.277.14-.423.163-1.02.065-2.042.11-3.06.19-.3 0-.805.24-.902-.198.026-.287.646-.135.554-.544-.073-.346-.25-.66-.373-.993-.377-.896-.732-1.8-1.123-2.69-.14-.297-.368-.62-.73-.63-.24.047-.602-.13-.463-.407.347-.067.712-.02 1.065-.056l2.77-.164zm2.31 1.32c-.154-.348-.302-.77-.68-.93-.256-.076-.725.014-.696-.394.247-.19.66-.03.97-.09.8-.01 1.62-.237 2.406 0 .825.23 1.515.973 1.573 1.842.027.416-.307.753-.685.864-.296.015.23.1.31.196.632.304 1.07.877 1.406 1.474.075.225.52.696.586.246-.027-.49.638-.075.488.264.002.356-.352.587-.682.583-.464.036-.904-.232-1.138-.624-.42-.553-.708-1.223-1.265-1.662-.23-.166-.56-.27-.83-.152-.058.14.07.28.105.416.18.41.305.845.547 1.223.2.31.593.358.93.356.36.09.26.576-.123.433-.585 0-1.175-.044-1.753.077-.27.126-.866.01-.65-.37.283-.017.675-.173.48-.525-.332-.872-.7-1.73-1.045-2.598l-.255-.627zm1.404.893c.134.326.595.145.86.114.36-.08.35-.508.235-.777-.164-.47-.374-1.03-.89-1.195-.263-.035-.846-.202-.886.152.19.535.423 1.054.63 1.583l.05.123zm7.216 1.717c.11.26.213.61.538.656.255.06.665-.024.717.33-.05.265-.44.105-.636.143-.54-.05-1.077.01-1.61.083-.23.07-.55-.03-.518-.32.125-.21.648-.037.62-.402-.086-.4-.276-.767-.416-1.15-.383-.962-.762-1.925-1.148-2.885-.095-.305-.443-.297-.702-.28-.274.002-.683.06-.684.416-.087.23.218.617-.044.736-.3.064-.362-.275-.426-.487-.098-.322-.26-.62-.385-.927.036-.214.32-.176.493-.194 1.377-.058 2.754-.12 4.13-.174.304-.047.504.19.52.477.107.336.27.653.413.974-.114.33-.508.047-.554-.196-.2-.347-.51-.69-.94-.71-.257.013-.642-.085-.815.146.007.24.145.453.22.678l1.225 3.086zm3.73-.91c-.192 0-.097.242-.118.367.012.282-.017.57.03.848.132.31.527.234.784.318.23.13.173.502-.136.388-.422-.025-.85-.068-1.267.034-.25.133-.713-.123-.493-.392.2-.034.448-.1.494-.334.072-.414.034-.838.048-1.256l.022-3.714c.12-.28.514-.044.603.166 1.192 1.516 2.37 3.045 3.593 4.535.192.232.462.4.768.417.26.002.402.53.027.426-.51-.028-1.026-.062-1.535.023-.228.006-.492.112-.696-.022-.243-.178-.07-.435.196-.403.352-.1-.005-.476-.117-.652-.19-.255-.38-.513-.59-.752-.17-.084-.373-.022-.558-.03-.35.01-.706.02-1.055.034zm1.173-.512c.182.012-.057-.155-.087-.235-.424-.554-.848-1.11-1.273-1.663.084-.013.017.175.04.255-.003.562.003 1.123-.003 1.684.44-.012.884-.027 1.324-.04zm3.057-1.848c-.15-.398-.35-.887-.818-.98-.243.043-.702-.178-.452-.44.55-.008 1.103.03 1.653-.017.698-.06 1.416-.042 2.08.205 1.46.492 2.672 1.778 2.914 3.32.107.606-.08 1.304-.625 1.642-.735.467-1.642.38-2.47.334-.47-.023-.938.04-1.404.086-.304-.042-.337-.513.023-.457.373-.012.366-.422.23-.668l-1.13-3.025zm1.97 2.494c.15.34.24.755.563.976.302.143.657.116.98.08.44-.06.714-.493.718-.91.028-.755-.28-1.475-.63-2.126-.375-.7-1.056-1.233-1.845-1.372-.324-.053-.665-.103-.99-.05-.07.124.06.273.086.402l1.12 3zm-21.11 12.416c.116.35.44.6.805.634.257.045.7-.016.713.354-.138.234-.53.07-.77.122a8.628 8.628 0 0 0-1.55.093c-.276.01-.566.125-.837.048-.243-.115-.193-.47.108-.425.247-.058.604-.135.622-.45-.023-.284-.182-.534-.278-.798-.385-.917-.76-1.838-1.152-2.75-.086-.326-.446-.335-.715-.285-.248.047-.616.124-.677-.22.03-.292.497-.238.703-.39.312-.12.62-.256.94-.356.215-.047.324.15.38.32.57 1.368 1.14 2.74 1.71 4.104zm.75-4.51c.682-.026 1.367.077 2.046.002.3-.03.095-.497.384-.47.37.017.31.477.335.74a.518.518 0 0 1-.57.582c-.533.03-1.065-.05-1.598-.02.12.41.288.81.445 1.208.027-.134.46-.155.64-.18 1.063-.048 2.166.56 2.612 1.543.215.477.328 1.1-.028 1.54-.387.456-1.03.55-1.596.554-.49-.007-1.064-.113-1.353-.55-.167-.215-.138-.68.22-.64.306.003.66.263.61.595.163.222.525.144.776.14.3-.01.584-.242.57-.56.006-.485-.186-.96-.455-1.358-.292-.423-.783-.708-1.303-.696-.293-.05-.547.148-.827.147-.284-.037-.334-.366-.435-.58a23.87 23.87 0 0 1-.65-1.818c-.02-.107.076-.193.177-.18zm6.85 1.02c-.16-.395-.37-.882-.84-.968-.243.057-.705-.17-.463-.43.557-.022 1.117 0 1.673-.067.704-.085 1.432-.07 2.105.176 1.486.494 2.71 1.82 2.934 3.388.088.584-.115 1.238-.633 1.563-.718.467-1.608.398-2.424.378-.453-.005-.9.07-1.347.128-.3-.034-.353-.503.008-.46.373-.028.343-.44.202-.683-.405-1.007-.81-2.017-1.216-3.023zm2.03 2.46c.16.34.26.754.59.97.302.136.654.098.973.053.44-.075.687-.524.678-.94.004-.762-.324-1.48-.693-2.13-.39-.69-1.078-1.213-1.87-1.332-.322-.043-.66-.083-.98-.02-.066.127.067.273.098.403l1.206 2.998zm6.44-4.26c.312-.053.353.293.437.504.1.284.245.55.346.832-.19.31-.507-.057-.588-.283-.145-.247-.356-.52-.674-.512a9.647 9.647 0 0 0-1.234.036c-.225.1.016.39.054.566.183.452.346.913.543 1.358.265-.01.573.012.798-.152.176-.212-.267-.736.213-.68.327.12.277.57.416.838.123.397.354.748.49 1.14-.176.33-.544-.055-.594-.302-.14-.32-.52-.362-.828-.35-.205-.036-.37.01-.226.215.215.515.38 1.054.655 1.54.204.348.65.303.995.3.33-.013.736-.01.94-.318.206-.243-.197-.658.082-.81.337-.097.416.276.466.52.075.308.184.606.29.902-.032.198-.28.133-.427.153-1.03.044-2.06.067-3.09.128-.286-.02-.69.206-.87-.114-.182-.395.504-.18.532-.524.02-.305-.16-.573-.25-.855-.385-.965-.752-1.937-1.148-2.898-.136-.313-.36-.66-.74-.68-.237.042-.603-.135-.457-.41.357-.06.728-.006 1.09-.036l2.78-.106zm-27.28 14.28c.15.487.668.686 1.11.818.77.26 1.6.518 2.15 1.158.305.37.518.854.495 1.342-.04.496-.465.87-.924.99a2.49 2.49 0 0 1-1.734-.096c-.266-.115-.165.467-.497.27-.24-.182-.164-.56-.296-.815a9.043 9.043 0 0 0-.386-.964c.013-.326.48-.156.496.098.327.595.924 1.12 1.633 1.126.358.01.807-.18.838-.583.007-.535-.42-.954-.865-1.183-.64-.332-1.375-.437-1.994-.812-.555-.334-.947-.954-.948-1.608.013-.437.37-.778.768-.903a2.63 2.63 0 0 1 1.567-.053c.24.125.34-.274.595-.076.115.196.085.46.194.672.08.286.27.537.334.825-.16.244-.466.014-.517-.203-.222-.366-.518-.772-.984-.805-.346-.026-.785-.03-1.006.288-.097.154-.092.35-.03.515zm6.69-1.65c.327-.06.336.314.418.528.08.272.21.527.29.8-.14.286-.494.024-.537-.212-.136-.26-.337-.572-.672-.552-.41-.007-.82.03-1.226.075-.227.1-.007.39.025.57.158.452.296.91.467 1.356.267-.02.575-.01.8-.18.194-.2-.194-.605.138-.696.373-.047.344.44.434.684.097.45.335.85.468 1.286-.145.317-.533.01-.55-.247-.113-.33-.484-.4-.79-.368-.178-.01-.42-.013-.275.21.18.505.318 1.027.55 1.512.12.284.45.346.726.323.392-.027.846.015 1.153-.282.244-.234.04-.585.094-.853.25-.2.526.068.5.342.07.346.16.687.267 1.022-.04.2-.29.142-.444.168-1.018.078-2.037.133-3.053.228-.28-.013-.684.235-.856-.087-.158-.384.457-.207.538-.502.08-.295-.098-.575-.173-.854-.336-.98-.654-1.966-1.002-2.94-.116-.308-.327-.66-.7-.664-.237.056-.59-.132-.428-.402.345-.072.71-.028 1.064-.07l2.774-.198zm4.18 4.14c.09.304.27.638.612.7.25.09.665-.073.732.286-.012.328-.493.15-.712.204a6.28 6.28 0 0 0-1.523.104c-.218.032-.545.108-.61-.188-.053-.336.464-.147.574-.4.08-.26-.066-.516-.136-.764-.337-1.005-.663-2.014-1.008-3.016-.115-.292-.27-.674-.63-.708-.232-.01-.63-.03-.558-.367.175-.165.486-.052.713-.082.73.016 1.45-.192 2.18-.144.75.03 1.483.508 1.736 1.228.165.405.22.917-.08 1.276-.386.454-1.02.547-1.58.622-.21-.028-.04.19-.026.3.105.318.212.634.316.95zm-.57-1.72c.204.03.46-.025.675-.083.313-.064.478-.4.396-.696-.087-.422-.227-.864-.543-1.174-.304-.253-.746-.26-1.112-.163-.14.122.002.32.035.47.183.55.365 1.1.55 1.647zm6.15 1.43c.09.255.17.61.492.652.246.054.66-.036.69.32-.06.265-.44.115-.643.155-.54-.04-1.075.03-1.606.112-.226.077-.55-.023-.494-.313.137-.213.65-.05.644-.415-.055-.39-.218-.756-.33-1.133-.317-.968-.63-1.936-.95-2.902-.077-.31-.43-.29-.68-.27-.254.02-.62.048-.692.35-.083.256.04.534-.015.78-.237.162-.467-.09-.457-.33a6.588 6.588 0 0 0-.344-1.002c-.01-.24.304-.22.48-.236 1.38-.082 2.76-.17 4.14-.248.302-.055.49.188.483.47.083.336.223.654.345.975-.068.283-.486.13-.502-.12-.174-.352-.445-.732-.874-.76-.28-.006-.626-.058-.86.123-.053.206.078.403.125.6.35 1.063.696 2.127 1.045 3.19zm2.1-3.29c-.105-.305-.22-.693-.57-.79-.237-.06-.65.01-.627-.355.096-.212.417-.08.608-.12.6.027 1.194-.06 1.788-.118.267-.12.48.42.152.42-.255 0-.545.19-.442.475.132.53.325 1.045.486 1.568.24.733.467 1.47.717 2.2.068.23.25.432.5.44.24.002.663.035.588.38-.18.156-.48.058-.71.08-.537-.044-1.07.048-1.603.114-.232.1-.536-.14-.392-.378.206-.097.647-.043.617-.384-.078-.41-.237-.8-.357-1.2l-.753-2.332zm5.76-1.6c.317-.057.333.305.404.517.078.277.202.54.28.815-.146.284-.495.018-.534-.22-.133-.262-.33-.575-.666-.56a9.663 9.663 0 0 0-1.232.052c-.23.094-.015.388.013.568.15.452.28.912.443 1.358.268-.01.578.002.806-.163.2-.196-.18-.607.154-.69.376-.04.337.446.424.69.086.45.32.85.443 1.29-.115.288-.527.04-.528-.215-.095-.32-.43-.452-.74-.422-.145.017-.502-.075-.357.17.175.516.306 1.05.532 1.547.118.286.448.353.725.334.394-.02.85.034 1.164-.257.25-.227.054-.58.113-.847.253-.192.526.075.495.35a9.3 9.3 0 0 0 .248 1.02c-.04.195-.28.14-.43.16-1.03.06-2.063.095-3.092.17-.275-.017-.644.204-.838-.065-.218-.387.38-.25.507-.485.134-.266-.042-.547-.108-.81-.32-.995-.63-1.994-.96-2.986-.11-.323-.315-.704-.704-.715-.237.052-.59-.14-.423-.408.343-.064.704-.016 1.054-.05.937-.048 1.876-.098 2.81-.147zm2 .96c-.066-.358-.34-.677-.734-.622-.374.097-.5-.57-.033-.43.508.003 1.03-.078 1.53.036.242.263.438.576.662.86l2.17 2.903c-.16.035-.036-.186-.053-.3l.355-3.543c.273-.226.73-.13 1.077-.202.282-.042.925-.136.745.35-.338.054-.77.22-.537.645.36 1.197.738 2.388 1.115 3.58.068.418.49.545.857.527.317.017.333.562-.048.43-.593-.013-1.19-.05-1.78.064-.264.09-.82.06-.64-.355.298-.054.795-.143.587-.573-.317-1.06-.657-2.113-.984-3.17.07.095-.01.255-.004.377-.096.99-.228 1.976-.292 2.968-.04.26.05.574-.074.798-.235.116-.385-.113-.503-.276l-2.856-3.698c.098-.036.086.21.14.29.307.96.59 1.928.912 2.882.1.388.494.5.848.505.378.193.098.547-.232.403-.5-.072-.998.028-1.493.084-.314-.01-.33-.513.03-.447.468.004.325-.523.216-.8-.34-1.092-.68-2.184-1.022-3.275a3.35 3.35 0 0 1 .042-.012zm8.74.85c.06.225.364.074.526.097.286-.016.62-.175.636-.498.01-.437-.157-.906-.5-1.19-.33-.252-.77-.23-1.16-.19-.042.144.062.3.092.45l.406 1.33zm.487 1.598c.125.348.193.743.45 1.023.238.18.568.105.843.088.257-.02.487-.23.46-.5-.03-.596-.315-1.26-.906-1.493-.34-.125-.713-.127-1.07-.09-.11.096.04.288.055.42.055.185.11.37.167.553zm-1.773-2.402c-.117-.345-.224-.77-.586-.934-.233-.088-.642.018-.663-.338.083-.29.544-.08.774-.138.886.01 1.794-.224 2.66.063.693.184 1.284.818 1.28 1.557-.004.408-.334.716-.687.865-.024-.134.36.07.5.095.528.19 1.018.557 1.224 1.094.178.415.28.954-.037 1.33-.362.4-.95.43-1.454.443-.79.003-1.586-.018-2.368.114-.284.036-.396-.502-.04-.447.36 0 .46-.38.324-.656l-.928-3.048zm5.006-.176c-.114-.346-.218-.77-.578-.937-.238-.09-.687.012-.665-.37.193-.256.656-.04.954-.104.68.004 1.358-.13 2.035-.046.79.093 1.55.646 1.74 1.44.144.422.05.955-.358 1.192-.087.096-.52.198-.444.19.604.24 1.12.69 1.412 1.273.16.26.24.58.466.796.267.198.298-.164.343-.327.35-.175.528.316.386.58-.148.42-.68.504-1.06.404-.344-.077-.604-.34-.758-.645-.34-.538-.554-1.17-1.03-1.612-.224-.196-.566-.31-.85-.197-.074.136.04.29.062.43.127.392.208.8.386 1.173.158.327.543.408.873.41.322-.008.345.56-.032.428-.61-.002-1.223-.075-1.83.034-.22-.005-.53.136-.673-.1-.214-.42.418-.228.558-.468.09-.28-.065-.56-.13-.832-.268-.904-.537-1.814-.805-2.714zm1.313.917c.098.327.555.15.805.145.29-.03.46-.326.398-.6-.075-.447-.192-.942-.548-1.254-.306-.225-.72-.224-1.08-.162-.153.128-.012.34.02.503l.405 1.367zm6.887-2.537c.312-.05.326.298.384.51.07.282.188.55.257.833-.134.258-.487.03-.513-.205-.13-.26-.292-.59-.625-.605a9.508 9.508 0 0 0-1.286.005c-.234.083-.03.383-.008.562.135.453.25.913.397 1.36.26 0 .54.01.78-.103.28-.16-.112-.59.186-.702.374-.082.37.394.427.64.068.466.295.887.41 1.34-.125.282-.53.028-.525-.228-.08-.296-.373-.453-.667-.44-.14.027-.556-.12-.435.136.16.523.274 1.063.487 1.568.11.29.44.364.718.356.398-.007.855.062 1.183-.217.26-.215.074-.575.144-.836.258-.18.527.087.486.363.05.344.126.684.214 1.02-.053.194-.296.127-.45.143-1.037.024-2.076.026-3.114.066-.268-.024-.607.16-.818-.056-.263-.378.298-.304.473-.467.19-.22.033-.512-.024-.757-.297-1.023-.58-2.05-.885-3.072-.1-.31-.272-.68-.637-.722-.237.01-.61-.094-.485-.405.3-.105.656-.003.977-.035.983-.017 1.97-.037 2.95-.053zm-32.82 13.13c-.093-.368-.217-.85-.644-.95-.237.007-.644-.06-.5-.392.307-.124.674-.028 1.003-.076.818-.042 1.652-.245 2.464-.027 1.192.273 2.23 1.187 2.582 2.37.226.73.26 1.6-.23 2.236-.52.667-1.41.853-2.213.863-.617-.006-1.237-.01-1.845.113-.236.143-.63-.092-.422-.354.258-.075.67-.15.59-.518-.093-.514-.24-1.017-.36-1.526-.14-.58-.284-1.162-.426-1.738zm1.64 2.44c.1.323.138.71.406.944.275.16.616.097.918.07.47-.062.815-.477.89-.93.14-.758-.08-1.535-.38-2.23-.26-.6-.8-1.08-1.447-1.213-.377-.076-.778-.113-1.157-.038-.085.116.022.273.036.403l.735 2.994zm7.06-4.43c.318-.06.31.304.362.514.056.276.16.54.214.815-.128.26-.487.06-.5-.186-.114-.255-.27-.584-.594-.586a9.25 9.25 0 0 0-1.277.06c-.234.085-.05.384-.032.567.114.452.208.91.335 1.36.274-.017.585-.007.818-.172.214-.188-.13-.617.208-.692.377-.045.303.448.368.688.05.445.252.852.34 1.288-.12.284-.53.058-.51-.21-.07-.323-.402-.452-.703-.417-.147.02-.497-.075-.374.172.134.516.222 1.047.41 1.547.097.29.43.35.697.328.417-.02.905.022 1.22-.306.245-.225.018-.602.17-.833.292-.168.485.14.444.407.033.33.093.658.162.98-.06.2-.307.142-.467.166-1.026.067-2.052.112-3.077.195-.256-.01-.55.154-.78.012-.258-.27.095-.41.325-.44.29-.095.26-.443.188-.677-.263-1.08-.512-2.162-.784-3.24-.083-.3-.24-.676-.6-.7-.236.027-.603-.083-.462-.39.296-.12.652-.03.97-.075.976-.06 1.954-.117 2.928-.178zm6.49 4.1c.045.31.285.57.596.62.237.1.605-.037.733.244.092.35-.39.235-.59.25-.574-.01-1.15-.02-1.718.067-.285.02-.573.097-.858.066-.277-.117-.15-.502.147-.444.27-.06.63-.13.707-.44.033-.27-.08-.528-.125-.79-.216-.92-.422-1.844-.643-2.763-.032-.327-.39-.336-.636-.296-.23.01-.587.163-.66-.162-.036-.34.465-.27.67-.407.37-.127.732-.272 1.107-.38.213-.047.302.15.32.32l.95 4.115zm3.69-3.32c-.073-.363-.28-.786-.69-.84-.29-.055-.67.03-.776.344a.924.924 0 0 0 .37 1.022c.27.198.59.312.893.454.06-.12.247-.35.237-.56a1.446 1.446 0 0 0-.034-.42zm.836 2.893c-.102-.487-.57-.77-.996-.948-.185-.032-.445-.278-.558-.177-.31.268-.457.714-.32 1.107.113.483.48.96 1.005 1 .348.047.76-.11.863-.473a.958.958 0 0 0 .006-.51zm.89-.208c.136.48-.06 1.02-.47 1.3-.582.4-1.356.428-2.017.23-.588-.17-1.082-.662-1.186-1.275-.122-.488.08-1.045.513-1.31.1-.1.488-.14.175-.216-.498-.245-.99-.646-1.092-1.223-.12-.486.106-1.034.552-1.274.858-.468 2.087-.192 2.583.676.218.368.26.86 0 1.22-.14.194-.322.39-.565.443.486.1.928.398 1.223.794.14.187.233.406.283.634zm3.264.555c.243.01.504-.135.54-.393.086-.196-.083-.615.256-.59.308.018.277.377.31.6.025.398-.003.873-.345 1.138-.248.158-.557.092-.835.096-.562-.018-1.123-.136-1.685-.072-.236.024-.495.287-.717.098-.192-.223-.077-.52-.005-.764.194-.615.624-1.117 1.1-1.538.334-.313.71-.652.76-1.136a1.95 1.95 0 0 0-.293-1.187c-.283-.45-.95-.607-1.398-.32-.232.15-.414.495-.228.745.21.163.6.018.7.354.13.233-.004.598-.3.595-.44.068-.838-.278-.952-.686-.18-.51.02-1.13.495-1.406.5-.313 1.134-.305 1.69-.17.565.14 1.042.58 1.214 1.138.154.432.16.933-.08 1.336-.377.717-1.15 1.074-1.66 1.677-.14.156-.243.37-.184.585.076-.203.397-.132.582-.167.347-.014.69.076 1.035.067zm3.94-.42c.038.31.274.576.584.632.228.1.567-.016.715.225.143.345-.334.284-.537.27-.59-.02-1.184-.05-1.773.027-.287.013-.577.082-.863.045-.28-.13-.13-.497.158-.44.27-.052.634-.113.72-.422.038-.265-.067-.524-.108-.784-.195-.923-.38-1.848-.58-2.77-.02-.284-.316-.346-.547-.312-.236-.026-.563.165-.714-.093-.173-.353.345-.346.552-.44.408-.124.81-.276 1.222-.383.21-.044.298.155.312.325.286 1.373.57 2.746.858 4.118z" fill="#b07e09" stroke="none"/> - </g> - <g fill="#448127" stroke="#34541f" stroke-width=".218"> - <path d="M475.8 219.41l-3.77 4.483c-1.2 5.24 1.78 9.187 7.648 12.614 4.753 2.95 13.55 3.69 16.327 1.31l-13.714-13.07-6.49-5.337z" fill="url(#m)" stroke="#4c0505"/> - <path d="M503.58 354.27c-.672-.81-1.352-1.617-2.035-2.424-8.558 11.298-19.248 21.43-32.617 28.575 15.077-4.268 24.945-15.256 34.652-26.15zm-15.44 35.71c5.316-10.772 11.73-21.544 18.203-32.317a274.31 274.31 0 0 0-2.144-2.636c-7.353 12.186-15.98 26.68-16.06 34.952zm41.73-114.5c-.985-4.247-2.27-8.838-4.31-13.055-2.656-5.43-6.622-10.83-11.83-16.804-9.384-10.172-18.772-19.996-31.927-27.25l.07-.137.076.045h.163l-.16-.2h.47l-.255-.255h.437l-.352-.4h.46l-.328-.328h.493l-.273-.364.397.03-.372-.386.548-.11-.444-.278.48-.092-.403-.276.587-.187-.516-.305.653-.288-.632-.456.67-.228-.726-.295.612-.322-.72-.13.488-.566-.702.036.32-.597-.668.055c-.015-.02-.028-.04-.044-.058l.366-.45-.675.12.297-.61-.65.324.186-.706-.628.433.096-.72-.578.497.06-.688-.51.534.046-.725-.503.61-.05-.712-.403.56-.205-.677-.335.677-.17-.717-.317.717-.155-.717-.273.717-.206-.677-.214.677-.16-.595-.24.716-.223-.675-.24.77-.293-.69-.126.824-.352-.673-.04.795-.383-.603-.026.788-.408-.568.032.69-.434-.364.213.744-.525-.306.197.65-.433-.24.154.63-.392-.125.206.47-.03.065-.304-.056.175.365c-.383 1.04-.413 2.28-.35 3.515.01.23.593.464.685.607.276.43.226.66.226.66-1.592 2.58-3.015 4.574-3.175 7.532 1.28-1.62 2.604-3.6 4.462-3.6-.92 1.536-1.357 6.17-.324 6.876l.77-1.352c.03 1.075.18 1.792.39 2.322.323-.65.642-1.27.963-1.742.075 1.506.268 2.715.705 3.312.43-.74 1.008-1.19 1.618-1.57-.21.86-.52 1.672-.39 2.703.645-1.102 1.29-1.753 1.933-2.513-.373 1.586-.034 2.77.417 4.522.4-2.077.557-2.297 1.516-3.17.105 1.902-.26 3.63.142 4.693.874-1.675 1.46-1.436 1.982-2.52-.102 1.58-.42 3.292-.014 4.702.337-1.413 1.244-2.17 1.945-2.67.057 2.198.565 1.836-.802 3.7.58.266 2.54-.376 3.605-.832-.514 1.178-.363 2.102-.878 2.936 1.08-.544 2-1.422 2.9-2.323-.416 1.352-1.524 2.704-.968 4.056.25-1.263 1.273-2.303 2.242-2.493-.15.708-.252 2.174-1.273 2.883 2.444.25 3.408-1.398 4.638-2.704-.16 1.357-.114 2.442 1.552 4.354-.336-2.43.242-1.93 1.343-3.392.532 2.148 1.143 4.43 3.382 6.014-.928-2.267-1.1-3.435-.573-4.862.288 1.473 1.684 3.25 2.02 4.644.206-1.547.44-3.045.96-4.055.653 1.756 1.2 3.57 1.353 5.598.488-1.01.885-2.034 1.16-3.085 19.737 20.623 24.138 46.84 2.514 74.54 7.77-5.248 9.775-13.568 14.092-20.66-4.214 9.287-6.092 19.736-13.513 27.42 7.187-6.202 8.71-11.885 13.033-17.862-4.607 12.5-10.982 26.2-19.82 38.742 1.57 1.707 3.14 3.44 4.717 5.19 1.372-2.284 2.743-4.565 4.097-6.85 9.37-15.435 24.658-37.5 16.913-71.146z"/> - </g> - <path d="M473.16 215.29c-.997.226-1.392.642-2.11 1.443.916.2 1.69.246 2.52.264.257-.022.344-.348.287-.585l-.128-.955c-.024-.217-.602-.2-.875-.086l.305-.08z" fill="#eac102" stroke="#a08307" stroke-width=".218"/> - <path d="M471.04 216.73a9.89 9.89 0 0 1 1.053-.298 9.76 9.76 0 0 1 1.078-.19 9.82 9.82 0 0 1-1.052.297 9.94 9.94 0 0 1-1.078.19z" fill="#a08307"/> - <ellipse cx="477.68" cy="215.416" rx=".775" ry=".811" stroke="#000" stroke-width=".098"/> - <ellipse cx="477.86" cy="215.261" rx=".337" ry=".353" fill="url(#n)"/> - <g fill="#34541f"> - <path d="M488.18 389.69a83.377 83.377 0 0 1 1.528-4.44 96.152 96.152 0 0 1 1.783-4.346c1.26-2.87 2.664-5.672 4.136-8.435a199.58 199.58 0 0 1 4.663-8.155 354.41 354.41 0 0 1 2.453-4.003l2.51-3.968-2.42 4.024a400.05 400.05 0 0 0-2.4 4.033c-1.584 2.7-3.144 5.413-4.615 8.172a133.673 133.673 0 0 0-4.174 8.4 98.092 98.092 0 0 0-1.836 4.316 82.656 82.656 0 0 0-1.628 4.402zm-18.84-9.46a75.798 75.798 0 0 0 4.88-2.375 72.32 72.32 0 0 0 4.703-2.704 72.04 72.04 0 0 0 8.733-6.416c2.755-2.342 5.328-4.894 7.762-7.57a113.56 113.56 0 0 0 3.555-4.1c1.16-1.39 2.29-2.805 3.4-4.235a153.748 153.748 0 0 1-3.317 4.3 111.896 111.896 0 0 1-3.513 4.147 81.9 81.9 0 0 1-7.745 7.624 69.946 69.946 0 0 1-8.786 6.393 71.284 71.284 0 0 1-4.742 2.657 76.913 76.913 0 0 1-4.93 2.28zm37.28-29.34c.77-1.074 1.486-2.186 2.202-3.296.715-1.11 1.415-2.232 2.098-3.362 1.368-2.26 2.69-4.55 3.96-6.866a341.82 341.82 0 0 0 3.75-6.985l3.677-7.026-1.745 3.562-1.783 3.542a255.98 255.98 0 0 1-3.71 7.013 160.464 160.464 0 0 1-4.008 6.85c-1.405 2.24-2.852 4.457-4.442 6.57zm5.89-25.11a58.374 58.374 0 0 0 4.692-6.42 60.202 60.202 0 0 0 3.81-6.974c2.235-4.81 3.84-9.894 4.975-15.07.144-.647.283-1.295.414-1.944a61.004 61.004 0 0 0 .694-5.915c.18-2.644.18-5.3-.03-7.942a50.632 50.632 0 0 0-1.24-7.846 53.36 53.36 0 0 0-2.402-7.58 53.484 53.484 0 0 1 2.507 7.554 50.47 50.47 0 0 1 1.28 7.858c.22 2.65.235 5.314.066 7.966a61.252 61.252 0 0 1-.67 5.944 90.31 90.31 0 0 1-.406 1.95c-1.16 5.184-2.794 10.274-5.056 15.084a59.876 59.876 0 0 1-3.853 6.97 58.223 58.223 0 0 1-4.78 6.364z"/> - <path d="M510.87 320.07c1.843-1.762 3.47-3.74 4.898-5.85 1.436-2.103 2.682-4.332 3.795-6.623 1.114-2.29 2.098-4.642 3.027-7.015.464-1.186.915-2.378 1.36-3.572l.334-.896c.106-.296.202-.6.294-.904.186-.61.355-1.224.578-1.83l-.005.017c.507-2.524.78-5.095.81-7.67a45.833 45.833 0 0 0-.57-7.698c-.4-2.547-.996-5.06-1.732-7.532a80.218 80.218 0 0 0-2.553-7.304 80.346 80.346 0 0 1 2.656 7.273 57.405 57.405 0 0 1 1.773 7.54c.414 2.55.63 5.136.61 7.722a41.437 41.437 0 0 1-.78 7.71l-.002.008-.002.01c-.22.59-.393 1.204-.582 1.813-.095.306-.19.61-.302.915l-.338.895c-.45 1.193-.907 2.383-1.38 3.57-.94 2.37-1.937 4.72-3.065 7.012-1.126 2.29-2.383 4.52-3.837 6.62-1.46 2.093-3.116 4.05-4.984 5.788z"/> - <path d="M505.05 349.23c1.202-1.66 2.39-3.327 3.573-4.998l1.778-2.507c.59-.838 1.208-1.654 1.734-2.53 1.068-1.746 1.99-3.576 2.898-5.41.9-1.84 1.82-3.67 2.71-5.515 1.78-3.686 3.504-7.405 4.966-11.228a75.285 75.285 0 0 0 3.45-11.763c.848-4.004 1.417-8.063 1.886-12.13.426-4.065.47-8.18.038-12.248a52.36 52.36 0 0 0-2.725-11.94c-1.35-3.863-3.116-7.576-5.098-11.16 2.013 3.566 3.81 7.264 5.197 11.125a52.395 52.395 0 0 1 2.77 11.96c.446 4.078.414 8.202 0 12.283-.46 4.072-1.016 8.138-1.854 12.153a75.517 75.517 0 0 1-3.495 11.784c-1.477 3.827-3.213 7.543-5.006 11.226-.897 1.843-1.82 3.67-2.727 5.507-.914 1.833-1.84 3.664-2.92 5.41-.536.877-1.163 1.69-1.76 2.522l-1.797 2.49c-1.2 1.66-2.4 3.32-3.618 4.97z"/> - <path d="M507.81 352.25c2.362-3.835 4.71-7.68 6.954-11.583 2.25-3.9 4.483-7.814 6.465-11.856 1.985-4.037 3.7-8.213 4.996-12.522.65-2.153 1.2-4.336 1.653-6.54a59.28 59.28 0 0 0 .592-3.32c.17-1.11.33-2.225.472-3.34.582-4.463.928-8.958.922-13.458-.005-4.498-.365-9-1.198-13.424-.83-4.42-2.14-8.756-3.977-12.865a54.004 54.004 0 0 0-6.956-11.532 54.076 54.076 0 0 1 7.055 11.49c1.852 4.11 3.177 8.453 4.02 12.882.847 4.43 1.22 8.943 1.24 13.45.017 4.51-.317 9.015-.89 13.486a133.98 133.98 0 0 1-.48 3.346 58.79 58.79 0 0 1-.605 3.328 74.245 74.245 0 0 1-1.674 6.55c-1.31 4.316-3.04 8.496-5.04 12.534-1.997 4.042-4.24 7.953-6.503 11.846-2.276 3.89-4.655 7.714-7.047 11.53zM480 220.77c.474-.012.95.04 1.418.113.47.073.934.174 1.394.294.92.245 1.815.572 2.687.954 1.742.768 3.37 1.775 4.9 2.903a35.81 35.81 0 0 1 4.255 3.786 45.252 45.252 0 0 1 1.904 2.116c.606.73 1.197 1.472 1.757 2.236a60.86 60.86 0 0 0-1.84-2.166c-.626-.71-1.273-1.4-1.942-2.07-1.335-1.34-2.747-2.604-4.266-3.728a26.78 26.78 0 0 0-4.84-2.925c-.856-.397-1.74-.74-2.646-1.004-.906-.267-1.836-.473-2.784-.51z"/> - </g> - <g fill="#448127"> - <path d="M496.38 231.57s3.06 1.798 4.725 4.439c0 0-4.717-.884-8.07-4.653"/> - <path d="M496.38 231.57c.48.26.933.566 1.38.88.44.322.87.663 1.28 1.025.412.36.796.753 1.16 1.163.363.412.704.846.997 1.313l.136.218-.248-.053a14.54 14.54 0 0 1-2.272-.712 15.702 15.702 0 0 1-2.138-1.038c-1.37-.795-2.623-1.8-3.64-3.008a15.17 15.17 0 0 0 3.72 2.866 18.27 18.27 0 0 0 2.13.997 14.4 14.4 0 0 0 2.24.683l-.11.163a11.15 11.15 0 0 0-.966-1.296c-.35-.41-.735-.794-1.126-1.168a17.708 17.708 0 0 0-1.23-1.064 18.56 18.56 0 0 0-1.314-.968z" fill="#34541f"/> - <path d="M489.58 230.69s7.226 4.61 8.273 4.978c0 0-1.608-3.478-5.05-4.972"/> - <path d="M489.58 230.69l4.14 2.488c.687.42 1.376.835 2.07 1.243.346.204.694.406 1.044.602.347.194.702.405 1.053.55l-.128.14a10.67 10.67 0 0 0-.925-1.526c-.35-.484-.728-.95-1.142-1.38a10.732 10.732 0 0 0-1.347-1.184c-.48-.36-1-.666-1.542-.926a8.43 8.43 0 0 1 1.596.85c.503.337.967.73 1.4 1.154.432.425.832.883 1.19 1.374.356.49.683 1 .957 1.55l.124.25-.25-.108c-.77-.33-1.438-.757-2.137-1.167-.69-.416-1.376-.84-2.06-1.265a151.55 151.55 0 0 1-4.043-2.645z" fill="#34541f"/> - <path d="M492.46 228.36s3.76 1.6 4.61 4.38c0 0-6.752-2.842-7.96-4.35"/> - <path d="M492.46 228.36a10.668 10.668 0 0 1 2.805 1.682 7.17 7.17 0 0 1 1.14 1.194c.33.443.607.935.77 1.47l.066.224-.21-.09a79.6 79.6 0 0 1-2.083-.936 49.78 49.78 0 0 1-2.05-1.003 33.948 33.948 0 0 1-1.994-1.11c-.324-.2-.643-.41-.95-.634-.305-.227-.61-.465-.844-.766.25.286.564.506.875.72.315.21.64.405.97.59.66.375 1.334.722 2.016 1.055a84.15 84.15 0 0 0 4.143 1.885l-.145.13a4.833 4.833 0 0 0-.725-1.415 7.8 7.8 0 0 0-1.09-1.184c-.402-.36-.834-.688-1.287-.986-.45-.305-.92-.58-1.406-.824z" fill="#34541f"/> - <path d="M486.76 231.25s6.646 4.758 8.613 4.758c0 0-1.948-3.258-5.388-4.752"/> - <path d="M486.76 231.25c.688.456 1.38.908 2.076 1.35.695.445 1.396.88 2.106 1.298.707.423 1.423.833 2.157 1.2.366.185.738.36 1.118.507.376.145.77.288 1.154.3l-.09.156c-.312-.505-.68-.99-1.07-1.45-.39-.456-.804-.898-1.247-1.308-.44-.41-.915-.788-1.41-1.135a10.974 10.974 0 0 0-1.57-.91c1.13.45 2.166 1.128 3.08 1.933.46.403.895.834 1.292 1.298.4.463.773.944 1.104 1.467l.104.16-.19-.004c-.447-.01-.845-.157-1.236-.303a13.663 13.663 0 0 1-1.133-.523 33.267 33.267 0 0 1-2.158-1.23 63.89 63.89 0 0 1-2.075-1.357 56.27 56.27 0 0 1-2.012-1.447z" fill="#34541f"/> - <path d="M486.76 232.74s3.46 2.92 5.427 2.92c0 0-1.948-3.258-5.388-4.752"/> - <path d="M486.76 232.74c.418.312.84.615 1.272.905.428.293.866.573 1.315.83.445.265.902.51 1.376.71.236.1.478.186.723.25.244.07.494.12.74.12l-.088.158a12.4 12.4 0 0 0-1.07-1.45c-.393-.458-.805-.9-1.248-1.31-.442-.41-.915-.787-1.41-1.134a11.007 11.007 0 0 0-1.57-.912c1.13.45 2.165 1.13 3.08 1.934.46.402.894.834 1.292 1.297.4.463.773.944 1.104 1.466l.1.158h-.19c-.55-.002-1.062-.18-1.544-.39a11.45 11.45 0 0 1-1.39-.74c-.442-.28-.87-.58-1.287-.895a17.6 17.6 0 0 1-1.205-1z" fill="#34541f"/> - <path d="M485.03 226.18s7.207 5.117 8.06 7.896c0 0-6.523-2.994-7.732-4.502"/> - <path d="M485.03 226.18a51.627 51.627 0 0 1 2.304 1.68 51.03 51.03 0 0 1 2.205 1.808 25.733 25.733 0 0 1 2.053 1.988c.322.352.63.718.912 1.11.276.39.54.803.687 1.28l.072.23-.22-.102a77.007 77.007 0 0 1-2.022-.985 50.288 50.288 0 0 1-1.99-1.05 34.833 34.833 0 0 1-1.934-1.15 15.42 15.42 0 0 1-.92-.65c-.296-.23-.59-.47-.82-.767.247.282.55.505.853.723.306.214.623.413.943.605.64.387 1.295.748 1.957 1.095a87.25 87.25 0 0 0 4.023 1.983l-.148.13c-.14-.433-.384-.84-.653-1.22a12.21 12.21 0 0 0-.888-1.098c-.632-.703-1.32-1.354-2.02-1.994a51.15 51.15 0 0 0-2.16-1.852 71.205 71.205 0 0 0-2.234-1.764z" fill="#34541f"/> - </g> - <g stroke="#24420e" stroke-width=".164"> - <path d="M445.02 370.33c-4.89 3.644-18.553 5.43-20.448 4.8 9.943-8.27 19.725-8.47 20.448-4.8zm69.76 4.44c5.254 4.768 21.104 8.053 23.475 7.46-10.542-10.77-22.102-11.862-23.475-7.46z" fill="#406325"/> - <path d="M444.98 370.3c-.72-3.67-10.458-3.45-20.378 4.775 10.446-3.442 19.238-5.405 20.378-4.775zm69.91 4.41c1.37-4.402 12.794-3.338 23.364 7.462-11.884-5.02-21.947-8.1-23.364-7.462z" fill="#67923d"/> - </g> - </g> -</svg> diff --git a/img/flags/4x3/gu.svg b/img/flags/4x3/gu.svg deleted file mode 100644 index b4885bd..0000000 --- a/img/flags/4x3/gu.svg +++ /dev/null @@ -1,39 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" height="480" width="640" viewBox="0 0 640 480"> - <path fill-rule="evenodd" fill="#be0027" d="M0 0h640v480H0z"/> - <path fill-rule="evenodd" fill="#3b5aa3" d="M25.6 27.343h589.54v428.37H25.6z"/> - <path d="M314.345 413.235c2.423 1.33 6.257 1.26 8.414.105 137.788-73.3 137.868-274.325.2-346.592-2.557-1.348-6.275-1.275-8.816.104-134.27 73.46-134.63 272.206.2 346.393z" fill-rule="evenodd" fill="#cbe0e5"/> - <path d="M314.345 416.86c2.142 1.748 6.462 1.58 8.414.106 101.54-76.02 102.134-123.41 97.634-123.407l-200.965.103c-3.073.003 1.77 48.107 94.914 123.198z" fill-rule="evenodd" fill="#add2d9"/> - <path d="M235.345 331.223c8.713-2.267 19.238-2.866 27.813 1.715 7.618 3.98 12.032 3.942 20.24 4.05 8.59.117 15.344 6.43 24.633 6.676 17.104.448 24.31 8.93 11.014 8.946-6.286.01-19.76-4.19-26.262-3.287-13.587 1.402-22.21 4.41-34.994 18.632l14.777 10.125c12.782-5.21 14.924-11.07 22.002-11.303 7.996-.257 10.713-5.21 19.96-5.222 10.505 1.91 24.734-1.304 33.07-3.17 14.783-3.44 7.75-13.77-1.21-17.516-7.246-3.085-20.81-.114-29.232-3.174-6.375-2.475-1.13-6.454 2.293-7.304 3.46-.638 7.17.494 11.474 1.186 7.68.664 17.33-.074 24.073-1.13 13.944-2.16 13.356-6.25 20.09-6.36 4.91-.235 8.647-1.703 11.99-4.106 3.932-2.632 8.02-8.026 12.785-7.823l12.755.54-17.966 40.405-50.756 51.662-26.286 9.97-57.78-37.613-29.136-44.69 4.654-1.21z" fill-rule="evenodd" fill="#fdf9a1"/> - <path d="M301.747 291.937l116.016-.54 2.04-10.28s-4.14-.617-7.48-.813c-4.164-.255-11.304 4.357-16.087 4.33-3.383-.025-7.26-6.08-10.647-5.954-5.914-.055-6.44 5.267-12.012 5.413-4.497-.154-6.413-3.588-12.236-3.247-6.107.345-5.652 3.706-13.367 3.515-10.19-.254-14.28-9.096-22.433-9.195-13.607-.162-14.05 12.985-23.795 16.77z" fill-rule="evenodd" fill="#179a3b"/> - <path d="M301.747 294.416l119.414-.608v-3.244l-122.13.608 2.717 3.244z" fill-rule="evenodd" fill="#fdf9a1"/> - <path d="M350.818 330.303c1.84 7.053 3.78 9.45 11.196 11.25 7.326 1.8 18.502-5.342 11.557-12.237-6.613-6.415-13.562-8.044-19.487-13.82-12.47-12.32-31.255-42.503-31.273-63.79-.015-18.278-1.778-55.796-1.79-91.33.01-2.303-6.944 6.455-6.933 8.795.32 31.35.27 55.043 1.544 86.655 1.975 23.108 13.003 38.668 22.685 52.712 4.338 6.73 10.608 13.987 12.502 21.767z" fill-rule="evenodd" fill="#a79270"/> - <text font-family="helvetica" font-size="25.614" stroke="#fff" y="269.487" x="465.114" stroke-width="1.638" fill="#bd0728" transform="matrix(1.33 0 0 1.33 -363.07 -108.06)"> - <tspan>G</tspan> - </text> - <text font-family="helvetica" font-size="25.614" stroke="#fff" y="269.607" x="488.065" stroke-width="1.638" fill="#bd0728" transform="matrix(1.33 0 0 1.33 -363.07 -108.06)"> - <tspan>U</tspan> - </text> - <text font-family="helvetica" font-size="25.614" stroke="#fff" y="269.59" x="516.053" stroke-width="1.638" fill="#bd0728" transform="matrix(1.33 0 0 1.33 -363.07 -108.06)"> - <tspan>A</tspan> - </text> - <text font-family="helvetica" font-size="25.614" stroke="#fff" y="269.542" x="539.532" stroke-width="1.638" fill="#bd0728" transform="matrix(1.33 0 0 1.33 -363.07 -108.06)"> - <tspan>M</tspan> - </text> - <path d="M259.623 160.893c-1.54 2.972 3.606-.868 4.772-1.282 6.67-2.372 9.283-10.798 20.773-5.725 9.045 3.907 21.187 1.636 14.84 5.593-7.842 4.694-23.462 9.896-23.77 33.177 1.306 2.277 1.4 1.918 2.49-.523 2.374-5.426 13.695-20.162 19.297-18.936 2.255.584 8.877-6.66 9.032-4.592.6 5.814-8.993 17.575-8.89 33.318.023 3.646 4.508 4.827 6.67 2.262 2.148-2.262 3.358-4.6 7.12-7.572 6.653-5.46 4.817-28.61 5.638-27.522 4.71 6.097 5.432 23.293 12.447 30.346 5.83 5.86 10.542 3.055 9.27-5.086-2.532-16.32-10.246-11.654-13.917-28.533-.746-3.288-.93-6.258 3.423-4.883 5.32 1.543 8.444 4.014 12.414 10.017 3.968 5.726 11.41 11.213 15.71 14.582 7.504 5.766 10.138.732 6.558-6.668-3.963-8.302-12.898-15.186-21.023-18.197-6.156-2.127-8.35-2.33-13.774-3.37-1.508-.32-3.065-3.41-.385-5.115 5.744-3.51 12.617-7.477 19.585-7.677 6.71-.17 12.024 5.208 16.73 6.554 9.382 2.46 9.334-3.496 5.198-7.913-3.396-3.73-10.582-9.984-17.29-9.154-13.538 1.66-12.684 1.28-20.987 6.79-3.047 1.795-6.43 3.776-5.167 1.6 3.038-5.466.207-4.527 4.9-10.088 3.65-4.075 6.33-7.008 9.948-8.025 3.437-.828 7.976-4.478 9.38-6.33 3.372-4.664.465-7.326-4.745-5.764-4.522 1.244-6.954 4.254-10.062 5.086-7.29 2.297-13.174 18.978-14.072 21.34-1.162 2.823-2.447 1.424-2.21-.966 1.053-11.778 2.048-31.498-2.11-39.616-6.262-11.97-5.682-6.388-8.086-.708-3.62 9.024-2.362 17.435-.083 26.28.996 4.414 4.694 9.437 5.357 12.902.477 2.72-1.58-.848-2.777-2.48-3.93-6.016-6.805-10.085-13.207-13.36-4.373-2.77-16.155-3.142-20.257-1.88-1.776.547 1.97 3.08 3.556 4.34 4.292 3.413 12.426 4.476 17.9 7.84 4.7 2.89 8.278 4.75 9.836 8.743.65 2.966 1.612 7.368-.342 7.26-5.128-.293-13.096-4.73-29.457-2.906-8.355 1.106-15.61 8.253-20.233 16.843z" fill-rule="evenodd" fill="#239e46"/> - <path fill-rule="evenodd" d="M295.28 310.558h4.747v7.912h-4.747z"/> - <path d="M271.712 257.85c18.825 26.066 49 41.263 49.603 53.1-19.064-.075-39.73.01-58.794-.064 13.508-16.24 21.74-27.205 9.192-53.037z" fill-rule="evenodd" fill="#fdf9ff"/> - <path d="M254.595 311.542c25.576 5.702 56.11 8.845 75.612-.798.16 5.7-6.34 13.907-11.67 13.907H269.46c5.7-.817 8.95-2.555 18.226-3.037l-26.055.32c-2.878.107-7.995-7.622-7.036-10.392z" fill-rule="evenodd" fill="#a68861"/> - <path d="M312.597 425.057c2.6 1.425 6.71 1.35 9.023.114 147.763-78.65 147.843-294.328.216-371.88-2.744-1.447-6.73-1.368-9.455.11-143.985 78.82-144.37 292.056.217 371.657zm.734-17.755c2.272 1.257 5.858 1.192 7.878.098 123.686-72.793 125.2-265.096.188-334.03-2.393-1.757-5.873-1.207-8.252.1-118.46 70.053-125.066 254.428.187 333.83z" fill-rule="evenodd" fill="#be0027"/> - <text font-size="25.614" y="269.487" x="465.114" font-family="helvetica" fill="#bd0728" transform="matrix(1.33 0 0 1.33 -363.07 -108.06)"> - <tspan>G</tspan> - </text> - <text font-size="25.614" y="269.607" x="488.065" font-family="helvetica" fill="#bd0728" transform="matrix(1.33 0 0 1.33 -363.07 -108.06)"> - <tspan>U</tspan> - </text> - <text font-size="25.614" y="269.59" x="516.053" font-family="helvetica" fill="#bd0728" transform="matrix(1.33 0 0 1.33 -363.07 -108.06)"> - <tspan>A</tspan> - </text> - <text font-size="25.614" y="269.542" x="539.532" font-family="helvetica" fill="#bd0728" transform="matrix(1.33 0 0 1.33 -363.07 -108.06)"> - <tspan>M</tspan> - </text> -</svg> diff --git a/img/flags/4x3/gw.svg b/img/flags/4x3/gw.svg deleted file mode 100644 index 1278928..0000000 --- a/img/flags/4x3/gw.svg +++ /dev/null @@ -1,13 +0,0 @@ -<svg xmlns:xlink="http://www.w3.org/1999/xlink" xmlns="http://www.w3.org/2000/svg" height="480" width="640" viewBox="0 0 640 480"> - <path fill="#ce1126" d="M0 0h220v480H0z"/> - <path fill="#fcd116" d="M220 0h420v240H220z"/> - <path fill="#009e49" d="M220 240h420v240H220z"/> - <g id="b" transform="matrix(80 0 0 80 110 240)"> - <path id="a" d="M0-1v1h.5" transform="rotate(18 0 -1)"/> - <use height="100%" width="100%" xlink:href="#a" transform="scale(-1 1)"/> - </g> - <use height="100%" width="100%" xlink:href="#b" transform="rotate(72 110 240)"/> - <use height="100%" width="100%" xlink:href="#b" transform="rotate(144 110 240)"/> - <use height="100%" width="100%" xlink:href="#b" transform="rotate(-144 110 240)"/> - <use height="100%" width="100%" xlink:href="#b" transform="rotate(-72 110 240)"/> -</svg> diff --git a/img/flags/4x3/gy.svg b/img/flags/4x3/gy.svg deleted file mode 100644 index 218ecce..0000000 --- a/img/flags/4x3/gy.svg +++ /dev/null @@ -1,9 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" height="480" width="640" viewBox="0 0 640 480"> - <g fill-rule="evenodd"> - <path fill="#399408" d="M2.426 0h637.557v480H2.426z"/> - <path d="M.167 0C-.67.073 619.765 241.48 619.765 241.48L-.005 479.77.166 0z" fill="#fff"/> - <path d="M.28 20.186c3.462 0 559.053 217.89 555.893 220.03L1.867 463.266.287 20.186z" fill="#ffde08"/> - <path d="M1.863.783c1.848 0 290.94 240.92 290.94 240.92L1.863 476.983V.783z"/> - <path d="M.28 33.902c1.658-14.986 260.9 208.4 260.9 208.4L.268 451.702V33.912z" fill="#de2110"/> - </g> -</svg> diff --git a/img/flags/4x3/hk.svg b/img/flags/4x3/hk.svg deleted file mode 100644 index df8aefd..0000000 --- a/img/flags/4x3/hk.svg +++ /dev/null @@ -1,34 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" height="480" width="640" viewBox="0 0 640 480"> - <defs> - <clipPath id="a"> - <path fill-opacity=".67" d="M-89.048 0h682.67v512h-682.67z"/> - </clipPath> - </defs> - <g clip-path="url(#a)" transform="translate(83.48) scale(.94)"> - <path fill-rule="evenodd" fill="#ba0000" d="M618 512h-731.43V0H618z"/> - <path d="M241.874 247.803s-51.62-22.226-44.213-79.817c7.172-27.723 19.837-46.602 42.78-56.878 10.753-3.346 21.748-4.78 32.98-5.736-2.95 2.788-5.417 5.577-6.692 9.082-2.47 6.293-.638 12.347 2.628 18.4 4.142 7.01 6.61 14.26 7.408 23.66 1.513 13.223-4.142 25.97-14.578 33.697-6.612 5.1-14.418 6.852-20.792 12.667-4.938 4.86-7.965 9.72-9.08 18.162-.16 16.09 4.223 18.322 9.56 26.766z" fill-rule="evenodd" fill="#fff"/> - <path d="M232.076 164.476v-.238" fill-rule="evenodd" stroke="#000" stroke-width="2.152" fill="#ba0000"/> - <path d="M235.337 241.823c-20.078-17.766-18.323-62.45-3.027-77.347" stroke="#ba0000" stroke-width="2.152" fill="none"/> - <path fill-rule="evenodd" fill="#ba0000" d="M244.634 154.48l3.3 5.518-6.12-2.493-4.574 4.91.8-6.445-6.126-2.484 6.614-1.49.787-6.446 3.29 5.525 6.61-1.5"/> - <path d="M246.26 243.992s6.125-55.866 63.36-65.66c28.607-1.267 50.368 5.31 66.916 24.234 6.35 9.302 10.942 19.393 15.147 29.852-3.53-2.002-6.918-3.545-10.643-3.736-6.74-.518-11.992 3.008-16.824 7.904-5.488 6.015-11.696 10.498-20.45 14.015-12.2 5.323-26.044 3.65-36.49-4.063-6.81-4.828-10.774-11.777-18.2-16.168-6.095-3.298-11.63-4.768-20.028-3.36-15.432 4.562-16.28 9.406-22.79 16.983z" fill-rule="evenodd" fill="#fff"/> - <path d="M323.06 210.208l.227-.07" fill-rule="evenodd" stroke="#000" stroke-width="2.152" fill="#ba0000"/> - <path d="M250.062 235.99c11.104-24.402 54.34-35.818 73.066-25.56" stroke="#ba0000" stroke-width="2.152" fill="none"/> - <path fill-rule="evenodd" fill="#ba0000" d="M336.298 219.285l-4.31 4.77.59-6.58-6.035-2.934 6.396-1.123.58-6.584 3.362 5.887 6.393-1.137-4.318 4.764 3.372 5.88"/> - <path d="M250.118 248.027s54.92-11.935 82.382 39.225c10.287 26.723 10.962 49.447-1.727 71.148-6.803 8.975-14.914 16.535-23.495 23.844.777-3.983 1.164-7.687.162-11.28-1.65-6.555-6.66-10.415-12.838-13.44-7.446-3.296-13.67-7.758-19.784-14.94-8.92-9.88-11.732-23.538-7.736-35.892 2.415-7.993 7.747-13.957 9.55-22.394 1.192-6.826.828-12.54-3.174-20.057-9.227-13.183-14.09-12.45-23.342-16.215z" fill-rule="evenodd" fill="#fff"/> - <path d="M306.543 310.12l.14.193" fill-rule="evenodd" stroke="#000" stroke-width="2.152" fill="#ba0000"/> - <path d="M258.913 249.09c26.665 2.78 51.22 40.15 47.44 61.165" stroke="#ba0000" stroke-width="2.152" fill="none"/> - <path fill-rule="evenodd" fill="#ba0000" d="M302.14 325.555l-5.893-2.572 6.43-1.53.864-6.654 3.098 5.706 6.428-1.54-4.515 5.058 3.11 5.7-5.888-2.58-4.507 5.064"/> - <g> - <path d="M248.88 253.69s26.88 49.358-14.51 90.083c-22.758 17.38-44.378 24.407-68.77 18.323-10.524-4.01-20.057-9.67-29.482-15.853 4.04-.373 7.704-1.042 10.87-3.012 5.83-3.423 8.127-9.317 9.297-16.095 1.07-8.072 3.605-15.298 8.782-23.184 6.975-11.335 19.295-17.87 32.275-17.503 8.35.074 15.57 3.515 24.175 2.877 6.885-.773 12.267-2.727 18.358-8.68 10.062-12.557 7.992-17.02 9.008-26.956z" fill-rule="evenodd" fill="#fff"/> - <path d="M205.134 325.283l-.147.188" fill-rule="evenodd" stroke="#000" stroke-width="2.152" fill="#ba0000"/> - <path d="M250.33 262.43c4.823 26.373-24.15 60.436-45.38 62.708" stroke="#ba0000" stroke-width="2.152" fill="none"/> - <path fill-rule="evenodd" fill="#ba0000" d="M189.083 325.392l.813-6.378 3.275 5.74 6.63-1.04-4.61 4.577 3.284 5.737-6.12-2.912-4.6 4.584.824-6.377-6.127-2.902"/> - </g> - <g> - <path d="M242.792 252.62s-37.622 41.75-89.786 16.245c-23.953-15.692-37.766-33.748-40.13-58.774.283-11.258 2.454-22.13 5.155-33.074 1.695 3.686 3.543 6.92 6.454 9.252 5.166 4.36 11.49 4.568 18.27 3.42 7.97-1.673 15.627-1.683 24.785.58 13.008 2.813 23.264 12.26 27.232 24.625 2.705 7.9 1.858 15.854 5.32 23.757 3.016 6.237 6.647 10.664 14.284 14.43 15.188 5.32 18.71 1.885 28.42-.46z" fill-rule="evenodd" fill="#fff"/> - <path d="M160.732 235.146l-.226-.076" fill-rule="evenodd" stroke="#000" stroke-width="2.152" fill="#ba0000"/> - <path d="M235.03 256.89c-23.27 13.312-65.026-2.696-74.223-21.965" stroke="#ba0000" stroke-width="2.152" fill="none"/> - <path fill-rule="evenodd" fill="#ba0000" d="M155.296 220.043l6.286-1.352-4.327 4.997 3.183 5.907-5.847-2.826-4.32 5.002.714-6.74-5.852-2.816 6.288-1.34.702-6.744"/> - </g> - </g> -</svg> diff --git a/img/flags/4x3/hm.svg b/img/flags/4x3/hm.svg deleted file mode 100644 index 67cec54..0000000 --- a/img/flags/4x3/hm.svg +++ /dev/null @@ -1,9 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" height="480" width="640" viewBox="0 0 640 480"> - <g stroke-width="1pt"> - <path fill="#006" d="M0 0h640v480H0z"/> - <path d="M0 0v30.59l372.58 243.023h46.898v-30.59L46.898 0H0zm419.478 0v30.59L46.898 273.612H0v-30.59L372.58 0h46.898z" fill="#fff"/> - <path d="M174.782 0v273.612h69.913V0h-69.913zM0 91.204v91.204h419.478V91.204H0z" fill="#fff"/> - <path d="M0 109.445v54.722h419.478v-54.722H0zM188.765 0v273.612h41.948V0h-41.948zM0 273.612l139.826-91.204h31.265L31.266 273.612H0zM0 0l139.826 91.204H108.56L0 20.394V0zm248.387 91.204L388.213 0h31.265L279.652 91.204h-31.265zm171.09 182.408l-139.825-91.204h31.265l108.56 70.81v20.394z" fill="#c00"/> - <path fill-rule="evenodd" fill="#fff" d="M125.512 416.48l-27.478-2.388 23.717-14.077-15.26-22.972 25.79 9.766 8.448-26.258 8.447 26.257 25.79-9.767-15.26 22.972 23.716 14.077-27.477 2.39 3.786 27.32-19.002-19.993-19.002 19.993M492.164 445.697l-19.346-1.684 16.698-9.913-10.748-16.173 18.165 6.877 5.943-18.49 5.943 18.49 18.164-6.877-10.748 16.173 16.698 9.913-19.346 1.684 2.67 19.23-13.382-14.072-13.382 14.073m2.671-307.008l-19.346-1.683 16.698-9.912-10.748-16.175 18.165 6.878 5.943-18.487 5.943 18.488 18.164-6.878-10.748 16.175 16.698 9.912-19.346 1.684 2.67 19.232-13.382-14.073-13.382 14.072M384.248 274.83l-19.346-1.684 16.698-9.913-10.748-16.173 18.165 6.877 5.943-18.49 5.943 18.49 18.165-6.877-10.748 16.173 16.698 9.913-19.346 1.684 2.67 19.23-13.382-14.072-13.382 14.073m206.48-48.009l-19.317-1.683 16.728-9.915-10.77-16.173 18.18 6.878 5.9-18.49 5.97 18.49 18.13-6.878-10.72 16.173 16.692 9.914-19.353 1.682 2.662 19.23-13.383-14.07-13.38 14.07m-22.247 40.414l-9.503 8.022 2.97 12.08-10.575-6.555-10.575 6.555 2.97-12.08-9.503-8.02 12.41-.915 4.698-11.518 4.698 11.518"/> - </g> -</svg> diff --git a/img/flags/4x3/hn.svg b/img/flags/4x3/hn.svg deleted file mode 100644 index 6e9bb25..0000000 --- a/img/flags/4x3/hn.svg +++ /dev/null @@ -1,18 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" height="480" width="640" viewBox="0 0 640 480"> - <path d="M0 0h640v480H0z" fill="#0073cf"/> - <path d="M0 160h640v160H0z" fill="#fff"/> - <g id="c" transform="matrix(26.66665 0 0 26.66665 320 240)" fill="#0073cf"> - <g id="b"> - <path id="a" d="M-.31-.05l.477.156L0-1z"/> - <use height="100%" width="100%" xlink:href="#a" transform="scale(-1 1)"/> - </g> - <use height="100%" width="100%" xlink:href="#b" transform="rotate(72)"/> - <use height="100%" width="100%" xlink:href="#b" transform="rotate(-72)"/> - <use height="100%" width="100%" xlink:href="#b" transform="rotate(144)"/> - <use height="100%" width="100%" xlink:href="#b" transform="rotate(-144)"/> - </g> - <use height="100%" width="100%" xlink:href="#c" transform="translate(133.333 -42.666)"/> - <use height="100%" width="100%" xlink:href="#c" transform="translate(133.333 37.333)"/> - <use height="100%" width="100%" xlink:href="#c" transform="translate(-133.333 -42.666)"/> - <use height="100%" width="100%" xlink:href="#c" transform="translate(-133.333 37.333)"/> -</svg> diff --git a/img/flags/4x3/hr.svg b/img/flags/4x3/hr.svg deleted file mode 100644 index bf33cbe..0000000 --- a/img/flags/4x3/hr.svg +++ /dev/null @@ -1,61 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" height="480" width="640" viewBox="0 0 640 480"> - <path fill="#171796" d="M0 0h640v480H0z"/> - <path fill="#fff" d="M0 0h640v320H0z"/> - <path fill="red" d="M0 0h640v160H0z"/> - <path d="M320.03 364.15c51.322 0 93.31-41.99 93.31-93.31V159.964H226.72V270.84c0 51.322 41.99 93.31 93.308 93.31z" fill="red"/> - <path d="M320.03 362.654c50.343 0 91.53-41.19 91.53-91.53V161.76H228.5v109.365c0 50.342 41.188 91.53 91.53 91.53z" fill="#fff"/> - <g fill="red"> - <path d="M267.133 165.2H231.91v38.7h35.223zm0 77.4h35.225v-38.7h-35.225zm-35.223 28.31c0 3.513.217 6.98.622 10.39h34.6v-38.7H231.91v28.31zm105.675-28.31h-35.227v38.7h35.227zm0 77.398h35.224V281.3h-35.225zm35.225 21.17A89.19 89.19 0 0 0 392.92 320h-20.11v21.168zm-105.674-21.17h35.224V281.3h-35.224zm-20.144 0a89.168 89.168 0 0 0 20.144 21.194v-21.194h-20.144zm79.114 38.702c3.898-.274 7.73-.8 11.476-1.567v-37.135h-35.224v37.14a87.06 87.06 0 0 0 11.443 1.558c4.103.254 8.204.24 12.304 0z"/> - <path d="M407.375 281.3c.407-3.422.625-6.9.625-10.426v-28.272h-35.193v38.7h34.568zm-69.79-38.7h35.224v-38.7h-35.225zm0-77.4H302.36v38.7h35.225zM408 203.9v-38.7h-35.19v38.7z"/> - </g> - <path d="M409.972 158.83l21.84-49.51-16.64-26.87-27.567 10.207-19.355-22.125-25.504 14.616-22.742-18.626-22.74 18.626-25.505-14.616L252.4 92.655l-27.57-10.206-16.643 26.875L230 158.843c27.485-12.44 57.96-19.372 90.005-19.372 32.03 0 62.49 6.927 89.97 19.36z" fill="#fff"/> - <path d="M253.008 94.842l-.04.047-27.338-10.124-15.3 24.7 5.86 13.325 14.847 33.702a219.67 219.67 0 0 1 34.582-11.962l-12.61-49.686z" fill="#0093dd"/> - <path d="M251.435 119.268a13.258 13.258 0 0 1 1.533 6.2c0 7.36-6.002 13.363-13.362 13.363-6.486 0-11.917-4.662-13.116-10.807 2.308 4.08 6.69 6.844 11.694 6.844 7.395 0 13.428-6.03 13.428-13.43 0-.738-.06-1.463-.177-2.172z" fill="#fff" stroke="#000" stroke-width=".28"/> - <path d="M227.59 113.915l.93-4.794-3.677-3.215-.17-.15.213-.072 4.618-1.59.945-4.794.044-.22.17.145 3.686 3.207 4.623-1.58.216-.072-.046.22-.932 4.796 3.68 3.216.17.147-.215.072-4.618 1.593-.947 4.793-.045.22-.168-.148-3.687-3.204-4.623 1.578-.216.073z"/> - <path d="M233.64 107.59l3.447 3.007 4.315-1.485zm.027-.15l7.766 1.517-3.436-3.004zm-8.337-1.634l7.764 1.52-3.448-3.006zm7.735 1.674l-7.765-1.52 3.436 3.002zm.435-.293l5.198-5.964-4.32 1.474zm-5.584 6.405l5.2-5.964-4.328 1.484zm5.318-5.862l-5.2 5.964 4.32-1.474zm5.583-6.405l-5.2 5.964 4.328-1.484zm-5.619 5.881l-2.566-7.483-.884 4.48zm2.756 8.038l-2.566-7.483-.88 4.49zm-2.419-7.534l2.566 7.484.885-4.478zm-2.755-8.04l2.565 7.487.88-4.49z" fill="#f7db17"/> - <path d="M297.5 87.406l-.047.038-25.29-14.493-19.155 21.892 12.61 49.686a219.78 219.78 0 0 1 36.117-6.033l-4.237-51.09z" fill="#171796"/> - <path d="M262.49 132.196a232.25 232.25 0 0 1 38.195-6.38l-1.07-12.913a245.548 245.548 0 0 0-40.315 6.732l3.187 12.56zm-6.34-24.971a257.957 257.957 0 0 1 42.405-7.082l-1.052-12.678a270.72 270.72 0 0 0-44.483 7.43l3.13 12.33z" fill="red"/> - <g transform="translate(-160) scale(.00237)"> - <path d="M212105 36890l-23 13-9517-7794-9497 7778 1788 21560c2543-210 5113-322 7709-322 2608 0 5190 113 7744 325l1795-21560z" fill="#0093dd"/> - <g id="a"> - <path d="M202545 46585c-18-2-44 10-69 45-186 250-359 469-545 720-195 61-242 180-167 348-261-26-291 193-302 432-250-379-522-482-814-307-11-230-187-338-439-392-180-10-319-65-436-145-60-42-110-64-170-106-126-88-226-5-172 74 267 434 535 868 802 1302-14 80 6 151 88 204 47 133 93 265 140 397-11 38-21 75-32 113-221-105-443-118-664-133-170-8-287-50-361-137-54-63-91-26-92 82-3 534 162 1014 599 1492-231 4-462 11-694 21-79 6-95 39-73 104 126 304 339 579 822 766-208 112-327 285-357 520-9 224-75 382-212 455-60 32-81 65-24 106 253 185 565 193 895 112-157 270-226 553-198 850 208 56 412 15 614-52-29 61-44 175-52 309-7 115-41 229-104 343-32 33-65 84 4 102 336 91 648 52 915-47 0 243 2 487 76 727 18 58 70 102 125 26 155-214 322-396 527-517 31 90 75 168 156 215 96 55 147 170 153 343 0 30-2 60 35 90 149 7 514-380 589-597 206 121 284 246 439 461 55 76 99 29 128-25 62-243 67-481 66-724 267 99 579 138 915 47 69-19 36-70 4-102-62-114-105-250-113-365-9-133-14-226-43-287 202 68 405 108 614 52 29-297-53-579-211-850 330 80 655 73 908-112 57-41 35-74-24-106-136-73-203-231-212-455-30-235-149-409-357-520 483-187 696-463 822-766 22-66 6-99-73-104-231-10-480-24-711-27 437-478 606-961 604-1495-1-108-38-146-92-82-74 87-179 137-348 146-222 15-435 24-656 128-11-38-21-75-32-113 46-132 106-260 153-393 82-53 102-123 88-204 267-434 513-868 781-1302 54-79-46-162-171-74-60 42-110 64-170 106-117 80-257 134-437 145-251 54-417 167-428 397-293-175-564-73-814 307-11-239-41-457-302-432 75-168 17-291-178-352-186-250-458-470-644-720-31-35-51-47-69-45z"/> - <g fill="#f7db17"> - <path d="M205075 47978c-51-26-124 17-162 95s-33 170 19 196c40 20 84-6 119-56l22-36c2-3 4-6 5-9 38-78 49-163-2-188zm-5008 0c52-26 124 17 162 95s39 165-13 191-103-24-141-102-60-158-9-184zm4539 905c-32 0-59 27-59 59s26 59 59 59 59-26 59-59c0-32-26-59-59-59zm-4032 0c-32 0-59 26-59 59 0 32 26 59 59 59s59-26 59-59-26-59-59-59zm4294-304c-754-91-1506-133-2260-133s-1509 41-2269 115c-26 8-21 90 14 86 756-73 1507-113 2256-113 743 0 1485 40 2228 129 39 4 54-80 32-84z"/> - <path d="M200319 48495c768-75 1530-117 2289-116 754 0 1507 42 2261 133l111-184c-32 10-62 9-90-5-76-38-92-161-36-274 56-114 164-175 240-138 39 19 62 62 68 114l446-739c-204 130-328 214-581 252-281 41-409 139-368 307 38 156-57 133-201 54-314-171-541 71-652 353-73 186-159 181-168-13-4-70 0-131-7-200-21-223-89-286-216-224-161 78-175 25-137-58 28-60 86-128 66-221-9-67-66-92-151-98-182-244-467-483-649-727-182 244-374 483-556 727-86 5-142 30-152 98-20 93 52 157 80 217 38 82 23 135-137 57-127-61-186-3-207 220-7 69-10 139-13 209-9 194-95 199-168 13-111-282-352-524-667-353-145 79-203 102-182-54 23-172-107-266-388-307-253-37-377-122-581-252l419 682c12-25 29-45 53-57 76-38 184 24 240 138 56 113 40 237-36 274-10 5-21 8-32 10l100 163zm4389 911c-7 3-7 4-24 11-46 19-80 66-134 124-57 60-128 125-211 188-12 10-25 19-44-6s-7-35 6-44c80-62 149-124 204-182 30-32 56-63 77-92-95-11-190-21-284-30-79 24-157 55-222 95-59 35-107 77-137 125-8 14-16 27-44 11-27-16-19-30-11-44 35-58 91-107 158-147 33-20 69-38 106-54-107-9-214-18-321-25-22 13-42 29-61 47-20 19-39 42-56 67-9 13-18 26-44 8s-18-31-8-44c19-29 41-54 64-77l9-9c-80-5-161-10-241-14-2 2-5 5-8 7-21 18-40 38-55 59s-28 43-38 67c-6 15-12 29-41 18-29-12-23-26-17-41 12-29 27-55 45-81 8-11 18-22 27-33-115-5-230-9-344-12-4 5-9 8-14 11-25 15-47 32-66 51s-35 40-48 63c-8 14-16 28-43 12-28-16-20-29-12-43 16-28 35-54 59-77 7-7 14-13 21-19-122-2-244-4-365-4-120 0-240 1-360 3 8 7 15 13 22 20 23 23 42 49 59 77 8 14 16 27-12 43s-35 2-44-12c-13-23-29-44-48-63s-41-36-66-51c-6-3-12-7-15-12-115 2-230 6-345 11 11 11 20 23 29 35 19 25 33 52 45 81 6 15 12 29-17 41s-35-3-41-18c-9-24-22-46-38-67-15-21-34-41-55-59-4-3-7-6-10-10-81 4-162 8-243 13 4 4 9 8 13 12 24 23 45 48 64 77 9 13 18 26-8 44s-35 5-44-8c-18-26-36-48-56-67s-41-35-64-49c-1-1-3-2-5-3-110 7-220 14-330 23 43 18 85 38 122 61 67 40 124 89 158 147 8 14 16 27-11 44-27 16-35 3-44-11-29-48-78-90-137-125-72-44-159-77-246-102h-2c-90 7-179 15-268 24 22 33 51 68 86 106 55 58 124 120 204 182 13 9 25 19 6 44s-32 15-44 6c-83-64-155-128-211-188-37-38-99-111-135-140-196-90-354-127-575-147-153-14-318-9-458-79 36 85 75 164 126 229 53 68 120 121 209 147 8 2 21 16 22 25 28 157 84 286 169 386 52 60 114 110 188 149-75-81-132-166-172-251-67-142-90-286-77-420 1-16 3-32 34-29 32 3 30 19 29 35-11 123 9 256 72 387 56 118 159 237 291 346 24 19 0 63-29 55-154-44-290-123-383-231-89-104-149-237-180-397-94-32-165-90-222-164-47-60-85-131-118-205 28 428 182 801 456 1137 61 75 165 182 255 216 92 35 95 100-20 101-34 1-69 1-105 1 84 31 164 66 233 105 127 73 217 162 224 273 1 16 2 32-29 34-32 2-33-14-34-29-6-86-82-160-192-223-113-65-259-117-402-160-154 0-312-1-459 3 39 28 80 57 131 84 82 44 188 86 343 122 89 21 166 52 233 91 71 42 130 93 177 150 10 12 20 25-5 45s-34 8-45-5c-42-52-95-98-159-135-61-36-133-64-216-84-161-38-272-81-358-128-75-40-131-82-184-123 180 393 450 573 835 689 23 7 43 13 61 19 3 1 6 1 9 2 86 21 175 40 266 55 92 15 166 28 261 37 16 1 32 3 29 34-3 32-19 30-34 29-99-9-174-22-266-38-58-10-115-21-171-33-26 6-64 9-107 12-232 14-420 225-435 494 0 5 0 11-1 16 88-80 179-157 273-212 117-68 239-103 364-69 15 4 31 8 22 39-8 31-23 27-39 22-106-28-212 3-316 63-108 63-213 158-315 253-24 147-82 285-205 377 61 34 104 65 163 45 86-39 172-78 261-108 91-31 184-52 282-57 16-1 32-1 33 31s-14 32-31 33c-91 4-179 24-264 53-75 26-149 58-222 91 221 47 460-1 667-79 60-22 105-42 133-41 51-30 112-53 172-79 66-28 132-51 182-57 16-2 32-4 35 28 4 32-12 33-28 35-112 13-127 21-222 79 0 21-66 57-126 96-36 24-70 52-87 67-95 86-144 181-188 287-29 70-52 145-68 224 55-108 121-211 201-303 94-108 208-201 345-265 14-7 29-13 42 15 13 29-1 35-15 42-129 60-236 147-324 250-90 103-161 222-219 345-31 64-8 1-42 86 110-122 212-224 323-307 132-100 283-157 418-133 15 3 31 6 26 37s-21 28-37 26c-116-21-250 32-369 121-121 92-244 223-366 361 184 26 366-26 542-85 91-30 183-135 239-152 19-24 38-46 57-67 33-37 67-71 102-100 12-10 24-20 45 4s8 34-4 45c-33 28-65 60-96 94-32 35-62 73-92 113-6 8-13 17-24 16-60 70-151 162-172 240-57 210-25 370-122 576 71-38 128-81 175-134 53-60 94-135 128-230 37-104 95-195 167-270 75-77 165-136 261-172 15-5 30-11 41 19s-4 35-19 41c-87 32-169 86-238 157-66 68-119 151-153 247-37 102-81 183-141 250-44 50-95 91-156 127 52-3 78-10 121-7 79-6 211-66 279-119 66-51 116-120 154-206 6-15 13-29 42-16s23 27 16 42c-42 96-99 174-173 231-56 43-121 75-196 93 161-5 311-42 467-100 65-24 87-168 127-208 32-58 66-112 105-158 47-56 101-101 164-127 15-6 29-12 41 18 12 29-3 35-17 41-52 21-98 60-139 108-36 42-68 93-98 147 10 73-51 228-53 305-7 205-2 409 53 612 53-71 107-134 162-192 0-5 0-10 1-15 18-106 33-219 40-332 7-112 7-223-6-329-2-16-4-32 27-35 32-4 34 12 35 28 14 111 14 226 7 340-6 90-16 180-30 269 54-51 53-51 77-103 37-80 59-159 67-237 9-80 5-157-13-230-4-15-7-31 24-38s35 8 38 24c19 80 25 165 14 252-8 65-24 132-49 199 56-42 114-82 178-122-4-75-5-153-3-227 2-68 7-134 18-190 4-20 7-40 47-33s37 27 33 48c-9 50-14 111-16 177-2 78 0 162 4 243 5 82 49 185 125 230 103 62 158 163 186 274 16-145 17-280 3-400-17-143-55-267-114-368-8-14-16-27 12-44 27-16 35-2 43 12 63 110 104 241 122 393 17 146 13 310-13 488 102-82 381-258 352-594-7-27-16-52-28-75-7-14-14-28 14-42s35 0 42 14c17 33 30 69 39 110 5 24 8 49 11 76 13-7 45-43 51-39 24 16 58 38 80 54-21-60-35-120-42-178-10-87-5-172 14-252 4-15 7-31 38-24s27 23 24 38c-18 73-22 151-13 230 9 77 31 157 67 237 4 8 8 16 5 25 24 21 47 42 70 65-13-84-22-170-28-255-8-115-7-230 7-341 2-16 4-32 35-28s29 20 27 35c-13 106-13 217-6 329 7 113 22 225 40 332 1 2 1 5 1 7 54 59 95 120 152 196 55-203 73-407 66-612-2-76-69-227-65-302-30-55-63-107-100-151-41-49-87-87-139-108-15-6-29-12-18-41 12-29 27-24 41-18 62 26 117 71 164 127 38 45 72 98 103 154 57 7 78 179 143 212 154 57 298 94 453 100-75-19-140-50-195-93-74-57-131-135-173-231-6-15-13-29 16-42s35 2 42 16c38 86 88 156 154 206 85 66 289 124 400 127-61-37-113-78-157-128-59-67-104-148-141-250-34-95-87-179-153-247-68-71-150-124-238-157-15-6-29-11-19-41 11-29 26-24 41-19 96 36 186 94 261 172 72 74 130 166 167 270 34 95 75 169 128 230 47 54 105 98 177 135-98-207-66-367-122-577-35-129-232-277-193-320 45-51 133 88 248 127 175 59 357 111 540 85-122-138-244-269-366-361-119-90-237-140-352-120-16 3-31 6-37-26-5-31 10-34 26-37 135-24 269 32 401 132 111 84 201 175 311 298-18-47 0-14-30-77-59-123-130-241-220-345-89-102-196-189-324-250-14-7-28-13-15-42 13-28 28-22 42-15 137 65 251 157 345 265 81 93 147 198 203 307-15-81-39-157-68-227-44-106-93-201-188-287-62-56-209-140-208-179-29-15-33-11-63-24-61-26-121-46-164-52-16-2-32-4-28-35 4-32 19-30 35-28 50 6 115 28 182 56 33 14 66 43 98 60 53 4 139 47 208 74 206 78 446 126 666 79-73-33-147-65-223-91-85-29-172-49-264-53-16-1-32-1-31-33s17-31 33-31c98 4 191 26 282 57 89 30 175 69 261 108 59 27 101-7 163-45-123-92-181-230-205-376l-2-2c-102-95-207-190-315-253-104-60-210-91-316-63-15 4-31 8-39-22-8-31 7-35 22-39 125-33 247 1 364 69 94 55 186 132 274 213 0-6-1-11-1-17-15-270-203-480-435-494-78-5-189 21-186-32 4-59 97-44 234-86 385-116 655-296 836-690-54 41-110 83-186 124-86 47-198 91-358 128-82 19-154 48-216 84-64 38-117 84-159 135-10 12-20 25-45 5s-14-32-5-45c47-57 106-108 177-150 67-39 145-70 233-91 155-36 261-78 343-122 51-27 92-55 131-84-148-4-305-3-459-3-143 44-289 96-402 160-110 63-186 136-192 223-1 16-2 32-34 29-32-2-31-18-29-34 8-111 97-200 224-273 69-39 149-74 233-105-35 0-70 0-104-1-116-2-112-66-20-101 90-34 190-141 251-216 271-334 412-714 456-1130-33 72-69 140-115 198-57 73-128 131-222 164-31 160-91 293-180 397-92 108-216 185-369 230-29 8-52-35-29-55 132-109 221-226 278-344 62-131 83-264 72-387-1-16-3-32 29-35 31-3 33 13 34 29 12 134-10 278-78 420-40 85-97 170-172 251 73-39 136-89 187-149 85-100 141-229 170-386 1-8 14-22 22-25 89-27 155-79 209-147 51-65 90-143 126-228-140 69-304 64-457 78-213 19-369 68-554 152z"/> - <path d="M204649 49231c-680-88-1359-113-2041-114-684 0-1369 40-2058 112-20 6-15 33-14 46 2 28 37 35 121 27 643-60 1285-93 1932-93 674 0 1351 21 2038 102 33 9 77-85 22-81z"/> - <path d="M200570 49160c683-71 1362-110 2038-110 675 0 1349 40 2025 127l31-127c-17 9-37 15-58 15-67 0-123-55-123-123s55-123 123-123c51 0 94 31 113 75l60-170c-724-84-1446-122-2171-122-729 0-1459 38-2193 107l58 164c22-32 59-54 101-54 68 0 123 55 123 123s-55 123-123 123c-12 0-25-2-36-6l33 94-2 7zm3067-416c-68 0-123 55-123 123s55 123 123 123 123-55 123-123-55-123-123-123zm0 64c-33 0-59 27-59 59s26 59 59 59c32 0 59-27 59-59s-26-59-59-59zm-1082-91c-67 0-123 55-123 123s55 123 123 123 123-55 123-123-55-123-123-123zm0 64c-32 0-59 26-59 59s26 59 59 59 59-26 59-59c0-32-26-59-59-59zm-1064-40c-68 0-123 55-123 123s55 123 123 123c67 0 123-55 123-123s-55-123-123-123zm0 64c-33 0-59 26-59 59s26 59 59 59c32 0 59-26 59-59 0-32-26-59-59-59z" fill-rule="evenodd"/> - </g> - <path d="M202601 47974c-14-68-49-129-100-175-51-47-116-78-187-88-33-4-39-58-7-68 60-20 114-67 157-133 45-69 79-157 95-256 5-34 64-35 69-1 15 84 51 153 97 208 55 66 125 112 193 138 31 12 25 63-8 68-59 9-105 42-141 87-50 62-81 145-100 221-8 33-62 31-69-2zm33-118c20-52 47-103 81-146 28-34 60-64 99-84-51-30-100-70-143-120-28-34-53-73-73-116-19 59-45 112-75 158-31 47-67 86-108 116 50 19 95 47 134 82 34 31 63 68 85 110zm799 5115l-515 206c-17 7-35 14-48-21-14-34 4-41 21-48l515-206c17-7 35-14 48 21 14 34-4 41-21 48zm59-326l-604 328c-16 9-33 18-51-15s-1-42 15-51l604-328c16-9 33-18 51 15s1 42-15 51zm-1826-65l604 328c16 9 33 18 15 51s-34 24-51 15l-604-328c-16-9-33-18-15-51s34-24 51-15zm51 322l515 206c18 7 35 14 21 48-14 35-31 28-49 21l-515-206c-17-7-34-14-21-48 14-35 31-28 48-21zm224 434c137 33 261 48 358 31 88-16 155-60 191-146v-493c-107-1-212-15-303-41-109-31-170-98-201-178-41-107-27-235-4-329 5-18 9-36 45-27s32 27 27 45c-20 82-33 194 1 284 23 60 69 110 152 133 91 25 198 38 307 38 107 0 214-13 304-40 82-24 148-69 192-123s65-117 57-176c-5-36-24-62-49-80-34-24-82-35-128-37-47-2-94 7-142 16-25 5-50 9-77 13-19 2-37 5-42-32s14-40 32-42c23-3 48-8 73-12 52-10 105-20 159-18 60 2 121 18 168 51 42 29 72 72 80 131 11 80-16 163-73 233-53 65-131 119-229 147-83 24-178 38-274 42v483c3 5 3 11 2 16 37 82 102 125 188 141 97 18 221 2 358-31 18-5 36-9 45 27 8 37-9 41-28 45-146 35-279 51-388 32-92-17-165-58-215-132-49 74-124 115-215 132-109 20-242 4-388-32-18-4-37-8-28-45 8-36 27-32 45-27zm356 210l402-9c19 0 38-1 38 37 1 38-18 38-37 38l-402 9c-19 0-37 1-38-37s18-38 37-38zm593-3082c151-125 293-227 423-297 133-72 254-111 359-106 19 1 37 1 36 39-1 37-20 37-39 36-92-4-200 32-322 97-125 67-263 166-410 289-14 12-29 24-53-5s-9-41 5-53zm-605 56c-141-130-298-240-445-314-139-71-268-108-363-100-19 2-37 4-40-34-4-37 15-39 34-40 110-10 252 31 404 107 152 77 315 191 461 325 14 13 28 25 2 53-25 27-39 15-53 2zm-213 1004c37-83 83-155 136-219 53-63 112-119 174-170 14-12 29-24 52 5 24 29 9 41-5 53-59 48-114 101-164 160-49 59-91 125-125 201-8 17-15 34-49 19s-27-32-19-49zm371-1734c49 66 88 139 114 223 26 82 40 175 39 279 5 80 6 165-7 249-13 86-42 170-97 246-43 60-101 97-165 113-53 13-109 10-164-7 29 100 51 208 6 308-8 18-33 27-51 18-43-22-86-43-128-62s-84-36-127-51l-1-1c-95-37-173-73-236-112-65-39-115-80-150-124l1 2c-44-49-72-106-88-170-14-55-20-114-22-174-72-39-138-78-194-116-64-43-118-87-161-131-13-14-26-27 1-53s40-12 53 1c39 40 89 80 150 121 60 40 128 81 204 121 124 13 247 51 370 109 106 50 211 115 317 192 13 7 19 16 27 20 8 6 16 13 25 19 51 22 104 28 152 16 47-11 90-39 122-84 48-66 72-139 84-214 12-77 11-157 6-234v-2c1-97-12-183-35-258-24-76-58-142-102-201-11-15-22-30 7-52s41-7 52 7zm-375 1047c-104-77-207-141-311-190-105-49-210-83-314-98 2 48 8 93 18 135 13 52 35 99 71 138l1 1c30 37 73 72 130 107 60 36 134 71 225 106l-1-1c45 16 89 34 133 54 31 14 61 28 93 44 19-83-10-179-37-267-2-8-5-15-9-29zm776-1003c-44 59-79 125-102 201-24 76-36 161-35 258v2c-5 77-6 158 6 234 12 75 37 148 84 214 32 45 75 72 122 84 48 12 101 6 152-16 8-6 17-13 25-19 6-4 13-12 27-20 105-77 211-143 317-192 123-58 246-95 370-109 75-40 144-80 204-121s111-81 149-121c13-13 26-27 53-1s14 39 0 53c-43 44-97 88-161 131-57 38-122 77-194 116-2 61-8 119-22 174-16 63-44 121-88 170l1-2c-35 44-85 85-150 124-63 38-141 75-237 112l-1 1c-43 15-85 32-127 51-43 19-85 40-128 62-18 9-43 0-51-18-45-100-23-208 6-308-55 18-111 20-164 7-64-15-122-53-165-113-55-76-84-160-97-246-13-85-12-169-7-249-1-104 13-196 39-279 26-84 65-158 114-223 11-15 22-30 52-7 30 22 19 37 7 52zm940 715c-105 15-209 49-314 98-104 49-207 113-311 190-4 13-6 21-8 29-27 88-56 184-37 267 31-15 62-30 93-44 44-20 87-38 133-54l-1 1c91-35 165-70 225-106 58-34 100-70 131-107l1-1c35-39 57-86 71-138 11-42 16-87 19-135z"/> - <path d="M203459 50602c-119 0-216 97-216 216s97 217 216 217 216-97 216-217c0-119-97-216-216-216zm0 69c-81 0-147 66-147 147s66 147 147 147 147-66 147-147-66-147-147-147zm0 60c-48 0-87 39-87 87s39 87 87 87 87-39 87-87-39-87-87-87zm-1697-124c119 0 217 97 217 216s-97 217-217 217c-119 0-216-97-216-217 0-119 97-216 216-216zm0 69c81 0 147 66 147 147s-66 147-147 147-147-66-147-147 66-147 147-147zm0 60c48 0 87 39 87 87s-39 87-87 87-87-39-87-87 39-87 87-87z" fill-rule="evenodd"/> - </g> - <use height="100%" width="100%" xlink:href="#a" transform="rotate(-2.173 -55532.79 156275.842)"/> - <use height="100%" width="100%" xlink:href="#a" transform="rotate(2.18 459865.852 156275.76)"/> - </g> - <path d="M387.186 94.883l-.06.02-19.197-21.94-25.24 14.466-4.258 51.097a219.715 219.715 0 0 1 36.12 6.045l12.63-49.687z" fill="#171796"/> - <path d="M347.668 98.03c.877-.213 1.742-.258 2.58.256.37.152.646.346.816.595.39-.3.785-.582 1.195-.824.575-.426 1.163-.803 1.795-1.014.906-.46 1.81-.732 2.714-.815.957-.164 1.92-.173 2.876-.116.8.048 1.572.268 2.31.693.667.33 1.333.666 2 .997.707.394 1.414.75 2.12 1.048.896.353 1.903.472 2.977.512.526.02 1.043.02 1.55-.116.41-.11.666.15.213.43-3.318 2.035-5.918.224-8.136-.587.813.55 1.528 1.12 2.133 1.7.844.813 1.787 1.637 3.455 2.398 1.012.46 2.114.822 3.53.834.478.004.995-.015 1.554-.107.282-.045.403-.02.408.128.004.1-.022.3-.19.41-.856.574-1.66.726-2.56.783-1.71.11-3.54-.453-5.214-1.35-1.34-.722-2.242-1.6-3.308-2.385-1.064-.785-1.984-1.22-2.972-1.43-.974-.208-2.03-.184-2.918.09.266.053.49.178.628.337.458.27 1.046.39 1.896.486.444.053.306.36-.376.726-.41.53-.944.813-1.652.744-.977.647-1.325.256-1.652-.168-.04.268-.12.53-.235.785a.602.602 0 0 1-.014.426c.156.242.232.477.18.735.026.137.07.27.218.393.205.186.335.4.36.66.004.173.1.315.236.443.2.164.4.308.6.553.59.213.862.666.96 1.25.445.145.63.468.718.852.253.106.485.234.618.46.91.002 1.8.002 2.63.09.78.083 1.416.568 1.985 1.2.383.058.772.077 1.17-.013.41-.18.844-.318 1.316-.358.78-.066 1.56-.107 2.306.07.503.122.897.39 1.22.755.464.528 1.18.457 1.79.197.83-.355 1.52-.343 2.37.03a2.33 2.33 0 0 1 1.086-.17c.31-.335.64-.418.98-.428.55-.02.952.066.848.775-.03.192-.143.377-.287.443-.254.548-.737.71-1.35.657-.067.377-.22.656-.468.836.28.87.01 1.22-.634 1.207-.135.25-.336.407-.68.358a1.38 1.38 0 0 1-.872.514c.038.227.135.334.296.578.44.664-.22.932-.822.94.154.44.173.878.118 1.316.614.372.697.764.13 1.15.415.725.254 1.258-.523 1.647-.012.405-.052.813-.322 1.04-.184.157-.45.185-.274.48.315.52.246 1.18-.22 1.198-.1-.008-.19.006-.197.165 0 .054-.05.11-.14.163-.56.3-1.084.645-1.565 1.04-.072.048-.143.08-.214.017-.35.764-1.004 1.54-1.727 2.318-.11.574-.436.963-.974 1.164a.41.41 0 0 1-.32.327c.3.334.414.657.123.974-.358.39-.83.773-1.3.894-1.004.256-1.632.208-2.035-.176-.355-.34-.216-.595.01-.7-.62.048-.745-.28-.728-.715.036-.217.11-.188.327-.18.337.008.64-.174.958-.278.123-.21.284-.39.483-.54.11-.702.555-1.09 1.157-1.32.485-.186.95-.655 1.4-1.262l.835-1.434a1.237 1.237 0 0 1-.254-.76 1.478 1.478 0 0 1-.557-.517c-.437-.032-.617-.23-.68-.5a1.1 1.1 0 0 1-.328-.044c-.214.138-.43.26-.697.247a6.86 6.86 0 0 1-1.09.91c-.13.36-.39.505-.704.55-.895.106-1.43 1.223-1.924 1.678-.2.148-.322.408-.41.72-.042.59-.144 1.05-.466 1.058-.29-.012-.335-.043-.344-.073a1.186 1.186 0 0 0-.377.016c.24.267.28.6.056.895-.223.29-.543.38-.85.4-.638.043-1.155-.014-1.634-.208-.457-.188-.512-.46-.498-.726-.33-.155-.395-.31-.36-.465.045-.2.228-.3.458-.237.2-.095.398-.16.597-.197.577-.622 1.172-1.158 1.826-1.407a2.97 2.97 0 0 1 .68-.614c.076-.56.444-1 .894-1.41.04-.202.106-.406.22-.608-.026-.12.007-.177.01-.29-.183-.34-.292-.748-.157-1.087a1.314 1.314 0 0 1-.05-.54c-1.075.64-1.407.422-1.53-.097-.394.33-.76.483-1.024.01-.383.113-.767.24-1.148.09-.25.097-.5.184-.787.203-.116.23-.273.46-.484.69-.01.484-.18.968-.49 1.45a9.272 9.272 0 0 1-.696 1.55.985.985 0 0 1-.107.5c.083.594-.116.883-.443 1.03a2.41 2.41 0 0 1-.417.72c-.01.08-.017.16-.026.237.13.35.153.7-.203 1.05-.287.18-.592.37-.896.52-.357.175-.69.092-.99-.017-.528-.19-.488-.375-.42-.555a.644.644 0 0 1-.52-.007c-.128-.08-.21-.163-.337-.246-.114-.207-.154-.394.123-.54.35-.155.586-.27.86-.55.095-.214.216-.375.387-.418.166-.388.37-.65.647-.723.204-.48.422-1.01.68-1.47.09-.14.157-.285.114-.443-.005-.13.005-.254.114-.328.06-.053.17-.1.033-.174a1.36 1.36 0 0 1 .164-1.154c.28-.422.593-1.44.297-1.94-.054-.28-.108-.6-.073-.863-.102-.006-.178.008-.28-.063-.227-.14-.417-.007-.59.246-.125.318-.25.598-.376.598-.118.82-.52 1.458-.94 1.622-.098.377-.16.753-.107 1.13.043.41 0 .69-.19.737-.208.05-.403.172-.523.506a1.05 1.05 0 0 0-.074.337c.29.3.202.67-.076.946-.625.615-1.403.525-2.225.283-.595-.235-.74-.483-.68-.737-.844-.07-.676-.718.023-.912.752-.21 1.36-.693 1.86-1.38.046-.815.233-1.37.672-1.457.042-.5.2-.95.41-1.377.22-.387.355-.81.277-1.328-.467-.29-.486-.592-.057-.9.142-.083.126-.168-.05-.254-.284-.028-.25-.3-.23-.557-.012-.13-.08-.2-.206-.202-.63-.093-.474-.35-.204-.63.114-.13.19-.318.07-.394-.096-.062-.162-.278-.183-.467-.387-.292-.22-.59 0-.877-.22-.185-.32-.455-.35-.77-.72-.03-.987-.396-.598-.927a3.38 3.38 0 0 1 .63-.647c.165-.268.324-.536.245-.803-.206-.524.453-.92 1.017-1.328a.88.88 0 0 1-.123-.41c-.32-.305-.238-.59.113-.86a1.064 1.064 0 0 1-.13-.417c-.79.156-.785-.315-.418-1.074-.457-.263-.33-.73.5-1.44a.953.953 0 0 1 .09-.378 1.92 1.92 0 0 0-1 .304c-.315.206-.628.18-.943.05a1.496 1.496 0 0 0-.417-.41.622.622 0 0 1-.22-.63c-.93.05-1.107-.636-.55-1.04.31-.248.538-.506.623-.788.25-.638.784-1.07 1.303-1.517 0-.182.042-.365.1-.55-.23-.154-.473-.265-.74-.286a1.176 1.176 0 0 0-.572-.64c-.173-.103-.23-.2-.123-.435-.493-.44-.37-.71-.244-.962z"/> - <g fill="#f7db17"> - <path d="M364.524 121.963a1.37 1.37 0 0 1-.176.007 8.45 8.45 0 0 1-.79.696c-.23-.265-.572.027-.238.188l-.17.118c-.11.29-.21.413-.532.462-.05.007-.1.017-.15.03a2.953 2.953 0 0 1 .015-.36 3.48 3.48 0 0 1 .07-.42c.004-.027.01-.05-.04-.063-.05-.01-.056.016-.06.042a3.875 3.875 0 0 0-.074.433 2.75 2.75 0 0 0-.015.396c-.813.262-1.283 1.108-1.837 1.71-.24.206-.36.49-.448.79-.047.158-.064.886-.228.897-.078.003-.16 0-.248 0-.088-.132-.207-.135-.356-.01-.34-.006-.7-.01-1 .04-.206.222.36.14.66.324.14.084.198.247.143.475-.276.66-1.824.447-2.338.175-.24-.126-.25-.27-.24-.476.107 0 .216-.008.325-.024.185-.026.368-.08.548-.183.05-.028.102-.056.045-.158-.057-.103-.11-.075-.16-.046a1.25 1.25 0 0 1-.463.154 2.57 2.57 0 0 1-.486.016c-.013 0-.028-.002-.04 0-.09-.052-.158-.114-.12-.168.038-.052.187.005.215.014.24-.11.448-.182.707-.232.545-.583 1.1-1.13 1.85-1.432.226-.27.47-.483.764-.677.104-.65.42-.997.89-1.428.058-.268.124-.46.257-.695-.03-.15-.007-.244 0-.395-.18-.342-.287-.638-.145-1.02-.088-.277-.076-.464-.042-.72a.35.35 0 0 0-.003-.144 6.223 6.223 0 0 1 .848-.574c-.02.256-.01.524.04.803l-.003.003a1.28 1.28 0 0 0-.197.263.53.53 0 0 0-.073.277c0 .026 0 .052.052.05.05 0 .05-.026.05-.052a.43.43 0 0 1 .06-.225c.043-.08.107-.16.183-.24a.105.105 0 0 0 .02-.026c.248-.007.492-.14.736-.336.22-.18.44-.412.658-.656-.002.356-.005.71-.01 1.067-.213.19-.395.422-.538.705-.01.023-.023.045.022.068.047.024.06 0 .068-.023a2.27 2.27 0 0 1 .49-.65h.008c.052 0 .052-.026.052-.052v-.002a3.17 3.17 0 0 1 .917-.526c-.045.312-.066.618-.01.912.058.322.21.626.518.89.004.006.012.008.02.01z"/> - <path d="M349.043 112.947c.04-.073.142-.168.175-.16l.02-.006c.11-.207.227-.402.348-.577a3.98 3.98 0 0 1 .497-.6c.02-.02.038-.035.074 0 .035.038.016.055 0 .074a3.91 3.91 0 0 0-.486.583 5.82 5.82 0 0 0-.34.57c.035.046.052.12.033.172.035.324.078.507.223.694a.202.202 0 0 1 .05-.033c.06-.145.14-.273.24-.386a1.65 1.65 0 0 1 .45-.35c.125-.103.224-.207.305-.316.08-.106.145-.215.19-.327.01-.023.02-.047.07-.028.046.02.037.045.027.07-.05.12-.116.236-.2.35a2.056 2.056 0 0 1-.328.334l-.01.003c-.17.093-.313.202-.427.33a1.247 1.247 0 0 0-.21.327c.075.054.108.204.037.3-.216.31-.472.492-.07.757a.635.635 0 0 0 .19.512c.093.096.084.435-.144.68-.213.215-.05.158.17.184l.05.017v-.002c.08-.156.176-.296.28-.426a4.34 4.34 0 0 1 .327-.363c.16-.157.285-.328.375-.5.087-.17.14-.342.15-.508 0-.026 0-.052.056-.048.052.003.05.03.047.055a1.41 1.41 0 0 1-.16.55c-.095.18-.227.36-.393.522a3.78 3.78 0 0 0-.318.354 2.6 2.6 0 0 0-.27.41c.267.16.182.45.222.715.052.008.097.02.137.04a.029.029 0 0 1 .01-.015l.155-.246.247-.393c.014-.02.028-.045.07-.016.046.03.032.05.017.072l-.247.39-.157.248a.052.052 0 0 1-.007.01c.163.134.175.376-.027.56-.396.3-.284.392.086.63.046.347.048.627-.027.923l.004.026c.01.096.017.196.024.293l.025.296c.002.025.004.05-.048.056-.052.005-.054-.02-.057-.047l-.023-.298a.644.644 0 0 1-.005-.075c-.02.045-.038.092-.062.142-.265.58-.54 1.053-.6 1.705-.637.152-.542.78-.578 1.335-.502.677-1.085 1.22-1.893 1.49-.153.05-.52.14-.556.332-.005.07.247.218.408.13.445-.426.668-.19.156.247-.04.082-.007.174.08.252.463.415 1.608.55 2.13.22.385-.24.587-.506.25-.874.022-.52.225-1.03.775-1.178.064-.118.045-.338.017-.46-.052-.452.02-.855.13-1.29.02-.055.06-.1.15-.124.208-.043.61-.647.734-1.228.03-.125.05-.256.074-.386.033-.202.11-.237.213-.12.098-.13.096-.207.155-.357.213-.31.52-.56.882-.383a3.036 3.036 0 0 1-.176-.832 2.7 2.7 0 0 1 .115-1.03c.014-.05.03-.098.11-.087.103-.246.205-.49.31-.737l.312-.742c.01-.023.02-.047.067-.028.047.02.038.045.028.07l-.313.74-.31.735c.044.034.03.077.016.12a2.515 2.515 0 0 0-.102.943c.023.346.11.68.237.953.012.026.027.052.022.078.17.1.168.123.16.35-.004.18.02.354.063.567.34.627-.014 1.674-.344 2.198a1.09 1.09 0 0 0-.134.834c.204.197.07.4-.11.538-.013.048 0 .102.003.15.018.204-.055.374-.162.542-.277.5-.49 1.034-.713 1.558-.403.11-.486.346-.647.722-.235.067-.26.135-.358.35a2.71 2.71 0 0 1-.875.594c-.286.13-.01.256.192.393.183.134.422-.16.572-.382.162-.247.328-.174.22.018a1.95 1.95 0 0 0-.214.674c-.062.17.587.3.7.305.395.02.892-.367 1.203-.564.257-.262.217-.492.103-.812l.002-.02a1.97 1.97 0 0 1-.476-.048 3.432 3.432 0 0 1-.56-.185c-.024-.01-.048-.02-.03-.07.02-.046.046-.037.07-.027.185.075.363.14.543.177.15.033.303.05.467.045l.026-.25a2.7 2.7 0 0 0 .46-.804c.438-.207.44-.42.38-.89.098-.19.12-.3.112-.516a9.93 9.93 0 0 0 .723-1.597c.347-.46.513-.894.473-1.44.03-.214.11-.335.265-.328a3.82 3.82 0 0 0 .308-.505.46.46 0 0 0 .057.005.081.081 0 0 1 0-.038c.03-.126.062-.237.105-.33a.798.798 0 0 1 .142-.225.918.918 0 0 0 .07-.455 1.107 1.107 0 0 0-.153-.443.492.492 0 0 1-.116-.185c-.02-.074-.006-.148.067-.22.02-.02.038-.037.074 0s.02.056 0 .072c-.042.04-.05.078-.037.116a.456.456 0 0 0 .097.15l.005.01c.092.158.154.322.17.49a1.01 1.01 0 0 1-.083.514c0 .002-.01.014-.01.017a.722.722 0 0 0-.13.2 1.69 1.69 0 0 0-.097.308l-.004.02c.245 0 .46-.077.695-.193l.014-.014c.118-.094.243-.238.348-.428.087-.16.158-.353.2-.576.003-.026.008-.05.06-.043.05.01.045.036.043.06a2.035 2.035 0 0 1-.21.61c-.08.148-.175.27-.27.364.38.114.708.002 1.07-.11-.053-.506-.046-.893.008-1.196.06-.33.17-.56.31-.736.017-.022.03-.04.074-.01.04.034.026.052.01.074-.13.163-.235.38-.29.692-.052.29-.06.66-.01 1.147.003-.002.01-.002.018-.005.15.26.232.446.542.244.114-.076.233-.15.327-.25.035-.04.023-.06.05-.09.298-.316.596-.61.893-.87.298-.264.597-.49.895-.67.022-.016.045-.03.072.015.026.046.004.058-.017.072a6.45 6.45 0 0 0-.882.66c-.252.222-.506.468-.76.734.015.045.022.123.03.242.025.35.09.56.59.37.28-.107.307-.12.566-.273a1.34 1.34 0 0 1 .305-.157 7.99 7.99 0 0 1 .49-.358c.158-.106.32-.203.478-.29.026-.188.07-.373.13-.55.155-.456.413-.878.738-1.276l.016-.014c.27-.147.49-.32.666-.517.178-.197.31-.417.41-.656.01-.024.02-.048.07-.03.046.02.037.046.027.07-.104.25-.244.48-.426.685a2.525 2.525 0 0 1-.69.535c-.314.39-.565.797-.712 1.235a2.69 2.69 0 0 0-.116.474c.01.003.02.012.028.03.024.048 0 .06-.02.07-.008.002-.015.007-.022.012a2.81 2.81 0 0 0 .023.805c.222-.007.445-.13.67-.312.24-.194.483-.462.725-.734.002-.007.002-.012.01-.017a1.7 1.7 0 0 1 .234-.503.95.95 0 0 1 .397-.327c.024-.01.048-.022.07.028.018.048-.003.057-.03.07a.862.862 0 0 0-.355.29 1.66 1.66 0 0 0-.225.49c-.002.368-.007.738-.01 1.108.012-.01.027-.02.038-.03.273-.212.586-.368.925-.492.035-.014.076.02.068.057-.052.333-.08.663-.026.966.052.284.18.55.436.787a2.78 2.78 0 0 1 .48-.628c.096-.097.196-.188.3-.273.076-.07.152-.14.225-.21l.228-.212c.02-.02.04-.035.074.003.036.038.017.057-.002.073l-.228.21-.227.212-.003.002c-.097.08-.19.162-.28.252.003.097.008.192.013.29l.004.155c.22.06.35.062.573.057.073.438.11.507.493.517a3.244 3.244 0 0 1 .014-.457c.02-.17.054-.336.114-.493.01-.023.018-.047.066-.03.05.018.04.042.03.066a1.89 1.89 0 0 0-.108.467 3.1 3.1 0 0 0-.015.448h.03c.153.314.333.468.655.607.09-.142.157-.284.2-.426a1.37 1.37 0 0 0 .056-.476c-.002-.026-.002-.052.048-.054.052-.002.054.02.057.047.01.17-.01.342-.062.512-.05.17-.134.338-.248.506-.01.015-.02.03-.035.03.014.18.045.316.11.454a3.02 3.02 0 0 1 .153-.3c.078-.136.168-.26.277-.368.02-.02.036-.036.073 0 .036.035.02.054 0 .073-.1.1-.184.22-.26.348a3.984 3.984 0 0 0-.183.363c.036.062.08.123.133.194-.607 1.04-1.256 2.482-2.453 2.956-.62.244-.89.56-1.012 1.22-.232.18-.398.363-.55.614-.403.135-.763.337-1.2.318 0 .282.093.405.375.407.538-.27.66-.32.707-.282.066.057-.076.444-.522.756-.068.042-.066.068-.026.14.376.59 1.364.378 1.895.24.38-.1 1.064-.55 1.254-.93.072-.176-.093-.4-.26-.586-.758.116-.613-.61.04-.308.22-.066.247-.07.31-.313.58-.225.82-.47.954-1.092.586-.63 1.173-1.28 1.595-2.035.115-.142.184-.394.15-.524a1.07 1.07 0 0 0 .2-.42c.038-.153.062-.302.057-.454 0-.026-.003-.052.05-.054.052-.002.052.024.054.05.006.16-.018.32-.058.48a4.48 4.48 0 0 1-.12.37c.037.095.056.16.14.136.506-.408 1.018-.695 1.565-1.034.038-.232.188-.346.417-.355.093 0 .126-.027.16-.113.127-.32-.034-.54-.188-.805-.142-.396.11-.49.365-.68.266-.197.247-.72.257-1.02h.002l-.03-.154a2.623 2.623 0 0 0-.092-.32c-.01-.023-.016-.05.03-.066.05-.017.058.007.068.033.04.116.07.225.094.332.01.043.017.085.026.126.254-.13.52-.282.62-.564.087-.314-.084-.61-.236-.876a9.567 9.567 0 0 1-.595.256c-.023.01-.047.02-.066-.028-.02-.048.004-.06.028-.067a10.22 10.22 0 0 0 .687-.303 1.29 1.29 0 0 0 .313-.263c.182-.264-.308-.5-.48-.608 0-.007.003-.014.003-.02l-.736-.68c-.02-.016-.038-.035-.002-.073.036-.04.054-.022.073-.003l.683.626c.038-.387.043-.756-.078-1.14-.038-.124-.083-.244-.126-.365a1.116 1.116 0 0 1-.48-.398 1.037 1.037 0 0 1-.157-.496c-.003-.026-.003-.052.05-.057.052-.002.052.024.056.05.012.16.052.313.14.446.088.135.22.253.413.35.206.107.64.053.89-.068.35-.197-.106-.595-.213-.83-.076-.168-.094-.34-.128-.52.03-.006.062-.013.095-.018a1.044 1.044 0 0 0-.14-.147.602.602 0 0 0-.187-.113c-.024-.01-.05-.017-.03-.067.016-.05.042-.04.066-.03a.71.71 0 0 1 .22.132c.065.057.127.126.186.206a.875.875 0 0 0 .102-.02c.344-.067.533-.26.742-.506a3.597 3.597 0 0 0-.374-.386 10.09 10.09 0 0 0-.427-.36c-.02-.017-.04-.034-.008-.074.033-.04.052-.024.073-.007.147.12.294.24.432.365.14.128.272.263.393.41.012.014.024.028.014.047.315.03.368-.035.526-.317a1.53 1.53 0 0 0-.19-.41 2.5 2.5 0 0 0-.314-.386c-.02-.02-.036-.038 0-.074.038-.036.056-.017.073 0 .122.128.236.263.326.403.09.137.16.28.202.434.147.002.305.01.43-.067.276-.163.044-.75-.028-.98.005 0 .008-.003.012-.008a2.762 2.762 0 0 0-.11-.07c-.063-.04-.13-.08-.193-.122-.022-.014-.044-.028-.018-.07.03-.046.05-.032.07-.018l.196.124.142.09c.02-.017.043-.034.064-.05.2-.16.273-.375.334-.597.095-.343.114-.19.512-.25.43-.067.66-.114.915-.616.133-.067.2-.124.225-.287.043-.296.02-.448-.32-.474-.474-.038-.763.057-1.083.37l.128.194c.014.02.028.043-.014.073s-.056.007-.07-.014l-.12-.185c-.433-.04-.78.027-1.18.18l-.122-.05c.085.113.15.222.2.33.07.15.105.295.11.432 0 .026.003.053-.05.055-.052.002-.052-.024-.054-.05a1.036 1.036 0 0 0-.1-.396 1.842 1.842 0 0 0-.298-.442l-.003-.002a2.62 2.62 0 0 0-.96-.176c.053.053.107.105.16.154.068.067.137.133.203.2.02.018.038.035 0 .073-.035.038-.054.02-.073 0a7.742 7.742 0 0 1-.204-.2 6.458 6.458 0 0 1-.205-.198l-.02-.022a2.72 2.72 0 0 0-.85.22c-.192.08-.388.142-.58.178.142.137.263.29.357.467.1.18.176.38.226.6.004.025.01.05-.038.06-.05.013-.057-.013-.062-.037a2.147 2.147 0 0 0-.216-.574 1.89 1.89 0 0 0-.353-.455c-.015-.012-.027-.026-.022-.045a1.78 1.78 0 0 1-.526.003l.21.348c.013.024.022.047-.023.07-.048.02-.06 0-.07-.025l-.194-.408a1.446 1.446 0 0 1-.474-.187c.05.187.088.39.116.602.038.282.062.583.07.9 0 .027 0 .053-.05.053-.053 0-.053-.026-.053-.05a7.85 7.85 0 0 0-.066-.89 4.7 4.7 0 0 0-.15-.71 1.662 1.662 0 0 1-.214-.2 2.1 2.1 0 0 0-.57-.442.95.95 0 0 1-.21.728c-.014.02-.028.04-.07.01-.04-.034-.027-.053-.01-.074a.846.846 0 0 0 .175-.72 3.13 3.13 0 0 0-1.05-.254 5.312 5.312 0 0 1 .55.872c.145.122.224.27.27.43.04.16.05.33.058.502 0 .025.002.05-.05.054-.052.002-.052-.024-.054-.05a2.087 2.087 0 0 0-.055-.48.714.714 0 0 0-.243-.38.09.09 0 0 1-.014-.017 5.64 5.64 0 0 0-.268-.476 4.61 4.61 0 0 0-.33-.454l-.004-.005c-.124-.006-.25-.01-.376-.006.022.028.043.057.062.087a.577.577 0 0 1 .085.248c.004.026.006.052-.046.057-.052.005-.055-.02-.057-.048a.498.498 0 0 0-.07-.203.675.675 0 0 0-.112-.138c-.26.007-.52.03-.768.05.26.334.47.68.63 1.036.18.395.3.803.37 1.225.005.026.01.052-.043.06-.05.01-.054-.017-.06-.044a4.793 4.793 0 0 0-.362-1.2 5.12 5.12 0 0 0-.66-1.068l-.04.003c-.2.02-.404.06-.598.116.087.054.163.11.23.163.09.074.16.147.222.22.017.022.033.04-.007.074-.04.034-.058.016-.074-.006a1.573 1.573 0 0 0-.21-.208 2.403 2.403 0 0 0-.298-.204 4.91 4.91 0 0 0-.308.11c-.057.023-.11.044-.168.06.175.126.344.264.505.418.194.187.377.398.54.642.014.02.03.043-.014.07-.043.03-.057.008-.073-.013a3.796 3.796 0 0 0-.524-.627 4.668 4.668 0 0 0-.564-.457c-.214.047-.43.06-.645.052.133.263.25.528.337.796.094.29.16.58.182.877.003.027.005.053-.047.058-.053.005-.056-.02-.058-.048-.02-.29-.085-.57-.178-.853a6.224 6.224 0 0 0-.358-.834 7.972 7.972 0 0 1-.396-.043c.076.242.143.49.2.745.066.298.12.604.16.914.003.025.005.052-.044.06-.052.006-.055-.02-.06-.046a9.248 9.248 0 0 0-.158-.906 9.28 9.28 0 0 0-.22-.81c-.375-.406-.79-.8-1.297-1.012a1.704 1.704 0 0 1 .374 1.123c0 .026 0 .052-.05.05-.053 0-.053-.03-.05-.053a1.633 1.633 0 0 0-.12-.67 1.676 1.676 0 0 0-.352-.525 1.953 1.953 0 0 0-.358-.07 15.624 15.624 0 0 0-1-.067c.256.232.457.445.438.704-.002.025-.005.05-.057.046-.052-.005-.05-.03-.047-.057.016-.24-.22-.456-.498-.702-.2-.007-.4-.01-.6-.012.11.11.204.223.28.334.105.152.178.303.214.455v.007c.02.235.078.44.182.612.102.168.25.298.45.39.024.013.048.022.026.07-.02.047-.045.037-.068.025-.22-.1-.382-.247-.496-.432a1.51 1.51 0 0 1-.196-.65 1.255 1.255 0 0 0-.197-.416 2.675 2.675 0 0 0-.344-.396c-.22 0-.442-.003-.665-.003.093.264.157.534.202.81.052.335.076.68.083 1.027 0 .026 0 .052-.052.052-.053 0-.053-.026-.053-.05a7.143 7.143 0 0 0-.08-1.014 4.475 4.475 0 0 0-.21-.825h-.06a1.003 1.003 0 0 0-.49-.438.604.604 0 0 1-.107.282c-.012.02-.03.043-.072.014-.042-.027-.028-.048-.014-.07a.495.495 0 0 0 .09-.27c-.033-.014-.07-.028-.106-.045-.107-.446-.207-.63-.562-.782-.003.123-.01.25-.033.38-.028.163-.08.326-.177.483-.014.02-.03.045-.07.016-.046-.028-.032-.05-.018-.07.09-.146.138-.295.164-.444.022-.135.03-.273.03-.405l-.062-.022c-.095-.622-.21-.97-.856-1.217.007.08.01.164.005.247-.007.14-.033.282-.09.43-.01.022-.02.048-.066.03-.047-.02-.037-.043-.03-.067.052-.135.076-.268.083-.398a1.9 1.9 0 0 0-.02-.368c-.137-.156-.333-.305-.502-.47a2.28 2.28 0 0 1-.09.686 3.06 3.06 0 0 1-.385.834c-.014.022-.028.045-.07.017-.046-.028-.032-.05-.018-.07a3 3 0 0 0 .375-.807 2.2 2.2 0 0 0 .08-.773 1.04 1.04 0 0 1-.177-.26l-.015.033-.075.17c-.012.024-.022.048-.07.03-.047-.022-.037-.046-.028-.07l.076-.17.06-.138c-.005-.03-.01-.058-.012-.09-.02-.198-.127-.352-.272-.482l-.002-.002a1.482 1.482 0 0 1-.25.476c-.018.02-.032.04-.075.01-.04-.034-.023-.053-.008-.074.07-.09.125-.18.168-.268.035-.076.06-.15.08-.23a.962.962 0 0 1-.15-.246.796.796 0 0 1-.1.17c-.05.067-.115.13-.195.197-.02.018-.04.034-.074-.006-.032-.04-.01-.057.01-.073.072-.06.13-.118.174-.177a.65.65 0 0 0 .097-.176c.034-.092.046-.033.015-.182.055-.294-.054-.47-.21-.713a.07.07 0 0 1 .01-.02.89.89 0 0 0-.316.084 2.76 2.76 0 0 0-.456.265c-.022.015-.043.03-.072-.013-.03-.043-.01-.057.015-.07a3.16 3.16 0 0 1 .47-.274.9.9 0 0 1 .4-.092.37.37 0 0 0 .01-.227c-.473.176-.847.26-1.148.278a1.64 1.64 0 0 1-.76-.116c-.023-.01-.047-.02-.026-.068.02-.048.045-.038.07-.03.186.082.412.13.71.11.296-.02.66-.1 1.13-.275-.002-.003-.002-.008-.004-.013.085-.19.154-.374.2-.56a1.705 1.705 0 0 1-.5.04h-.032c-.026 0-.052-.004-.052-.053 0-.053.028-.053.052-.053h.033c.177.004.352.01.525-.048.012-.062.02-.124.03-.185.027-.206.27-.256.44-.07.142.15.272.312.412.378.284.135.604.014.834-.17l-.21-.07c-.026-.007-.05-.016-.033-.063.016-.05.04-.043.064-.034.09.03.18.057.27.088a.947.947 0 0 0 .063-.064c.587.05.97-.073 1.346-.453a6.927 6.927 0 0 1-.892-.03c-.285-.035-.52-.092-.692-.177-.024-.012-.048-.024-.024-.07.024-.046.047-.034.07-.022.16.08.385.136.658.167.277.03.604.04.976.028h.005c.034-.038.067-.078.103-.12.16-.067.322-.14.44-.273-.685-.074-1.336-.21-1.95-.53-.16-.177-.41-.276-.678-.345-.498-.06-.938.062-1.344.273-.105-.1-.188-.19-.293-.287-.156-.02-.303-.102-.46-.12-.208-.025-.426.016-.635-.008-.026-.002-.052-.005-.045-.057.005-.052.03-.05.057-.045.21.024.427-.017.635.007.2.024.393.112.594.135.673-.253 1.23-.393 1.71-.372a5.68 5.68 0 0 1 1.73-.218.102.102 0 0 1-.022-.02c-.07-.068-.036-.103 0-.136.315-.32.39-.615.287-.88-.106-.276-.39-.534-.786-.77-.422.047-.827-.067-1.275-.017a3.95 3.95 0 0 0-.826.182c.226.08.422.213.583.403.2.235.342.555.418.957.01.048.016.098-.08.114-.094.018-.103-.032-.112-.08-.07-.366-.197-.656-.375-.866-.187-.268-.616-.373-.75-.427-.45.045-.89.095-1.274.194-.29.075-.543.177-.737.328.29-.06.59-.05.85.08.25.124.46.356.593.733.017.046.03.094-.06.125-.094.03-.11-.015-.125-.062-.11-.325-.286-.52-.492-.62-.41-.205-1.257-.027-1.614.238a4.23 4.23 0 0 0-.625.594c-.038.045-.078.088-.166.012-.088-.08-.05-.12-.01-.164.216-.244.434-.46.66-.626.217-.16.442-.277.674-.33.237-.264.588-.423.993-.527.396-.103.85-.156 1.308-.2-.135-.273-.308-.437-.507-.524-.213-.095-.457-.11-.723-.083-.552.19-1.042.486-1.514.82.044 0 .086 0 .127.002.14.01.265-.012.38.033.046.017.094.033.06.126-.04.11-.346.043-.452.035a1.352 1.352 0 0 0-.4.037c-.022.005-.046.012-.067.005-.576.356-.988.716-1.467 1.12l-.08.03c-.426-.017-.72.042-.896.175-.158.12-.17.31-.14.566-.073.24-.165.503-.19.782-.5.43-1.056.858-1.314 1.484a1.42 1.42 0 0 1-.275.487.538.538 0 0 1 .25.097c.022.02.044.038.063.062.01-.107.028-.213.054-.315.036-.146.088-.28.156-.39.015-.02.03-.043.072-.014.045.028.03.05.016.07a1.2 1.2 0 0 0-.144.36c-.04.164-.062.345-.067.51-.002.053-.097.057-.104.005a.287.287 0 0 0-.11-.2.52.52 0 0 0-.27-.086c-.107.117-.228.22-.35.318-.1.08-.193.168-.215.3-.014.226.266.266.53.283.606.036.124.38.456.68.162.112.312.242.425.4.23.084.373.065.53-.006.03-.41-.006-.62.174-.62h.018a.768.768 0 0 1 .18-.386c.017-.02.034-.04.074-.007.04.033.024.052.007.073a.807.807 0 0 0-.122.204.75.75 0 0 0-.043.17c.03.062.024.183.022.4.343-.17.656-.212 1.007-.23.657-.767.936-.572.36-.013l-.092.176a1.4 1.4 0 0 0-.185.602c-.168.147-.993.825-.685 1.076.216-.03.35-.02.268.14-.102.216-.41.664-.308.91.038.09.17.08.3.05.01-.01.02-.017.03-.026a6.2 6.2 0 0 0 .656-.61 3.8 3.8 0 0 0 .566-.795c.02-.043.043-.083.104-.07a9.07 9.07 0 0 1 .226-.708c.087-.244.187-.49.293-.737.017-.035.067-.042.09-.01.09.13.178.226.266.287a.393.393 0 0 0 .232.083.42.42 0 0 0 .232-.078c.086-.06.17-.15.26-.272.013-.022.03-.043.072-.012.042.03.028.05.01.073a1.18 1.18 0 0 1-.283.296.49.49 0 0 1-.292.097.504.504 0 0 1-.29-.105 1.134 1.134 0 0 1-.238-.24c-.093.217-.178.432-.256.648-.087.24-.163.48-.23.72.055.046.032.088.01.13-.17.32-.38.598-.602.842-.18.2-.372.375-.56.533.027.177.072.343.153.513.36-.308.693-.62.987-.943.294-.325.55-.66.75-1.007.015-.02.027-.045.072-.02.044.027.03.05.018.072a5.98 5.98 0 0 1-.35.53c.023.034.004.048-.015.065-.038.03-.06.154-.07.313-.013.215 0 .483.025.675.002.026.007.052-.045.06-.052.007-.055-.02-.06-.046-.025-.2-.037-.476-.025-.694.002-.057.01-.11.016-.156-.078.092-.16.184-.242.277a11.547 11.547 0 0 1-1.014.966c.01.02.02.038.033.057-.316.23-.575.31-.22.618.12-.084.238-.17.356-.255l.38-.272c.02-.014.042-.03.073.012.03.042.01.056-.013.073l-.38.273-.37.264a.623.623 0 0 0 .09.362.528.528 0 0 1 .08-.007l.796-.58c.02-.016.043-.03.073.013.03.042.01.057-.012.073-.255.187-.514.375-.772.562a.714.714 0 0 1-.093.118c-.26.188-1.17.75-1.074 1.138v.002c.218-.06.436-.137.644-.244.216-.11.427-.26.626-.464.02-.02.036-.036.074 0 .035.035.02.054 0 .073a2.544 2.544 0 0 1-.65.482v.01l-.004.106c-.003.036-.003.072-.005.107-.002.026-.002.052-.054.05-.052-.002-.05-.03-.05-.055.003-.035.003-.07.005-.106.004-.02.004-.04.004-.06a3.62 3.62 0 0 1-.562.202c.078.367-.114.683-.31.998-.112.09-1.022.827-.643 1.047a.98.98 0 0 0 .33.087z"/> - <path d="M349.455 100.128c-.19-.114-.434-.254-.67-.3a1.44 1.44 0 0 0-.505-.563c-.176-.114-.176-.104-.11-.23.2-.02.283-.076.285-.13a.897.897 0 0 1 .27.043.4.4 0 0 1 .202.14c.016.02.03.042.073.01s.026-.053.01-.075a.542.542 0 0 0-.252-.175 1.023 1.023 0 0 0-.37-.047c-.01 0-.02 0-.03.005a.743.743 0 0 0-.332-.054c-.135-.127-.25-.276-.194-.46.007.006.02.008.03.01.107.03.207.062.292.102.083.036.152.08.2.133.016.02.035.038.073.002.038-.035.02-.054.004-.073a.744.744 0 0 0-.23-.16 2.052 2.052 0 0 0-.226-.082c.782-.16 1.48-.147 2.18.268.368.152.54.327.74.597l-.2.17c-.457-.013-.793.05-1.004.212-.19.14-.228.397-.235.653z"/> - </g> - <path d="M365.002 121.77c-.154.095-.28.162-.438.188a.072.072 0 0 0 .02-.02c.1-.19.22-.36.352-.51.017-.02.036-.04.052-.06l.007.19.007.215zm1.96 4.196a2.3 2.3 0 0 1-.376.428 3.99 3.99 0 0 1-.477.363c-.022.014-.046.03-.074-.014-.03-.043-.007-.057.014-.07.166-.11.322-.23.464-.354.14-.127.264-.262.36-.41.015-.023.03-.044.074-.016.043.03.03.05.014.072zm1.298-1.546c-.068.1-.132.2-.198.3-.014.023-.028.044-.073.015-.044-.028-.03-.05-.016-.07.067-.1.13-.202.197-.302.015-.02.03-.042.075-.014.042.028.028.05.014.073zm-.707-.1a1.11 1.11 0 0 1-.183.423c-.095.13-.235.246-.436.338-.024.013-.047.023-.07-.025-.02-.047.004-.06.027-.068a.987.987 0 0 0 .397-.306.972.972 0 0 0 .166-.383c.005-.026.012-.05.062-.038.05.01.045.035.038.06zm1.27-1.55a.934.934 0 0 0-.138.178 1.15 1.15 0 0 0-.1.22c-.01.022-.016.048-.066.032-.05-.017-.043-.043-.034-.067a1.136 1.136 0 0 1 .26-.433c.02-.02.037-.036.074 0 .036.035.02.054 0 .073zm1.037.103c-.044.147-.087.296-.14.443-.056.152-.122.3-.207.45-.015.02-.027.045-.072.02-.044-.027-.032-.05-.018-.072.083-.145.145-.29.2-.43.052-.146.094-.293.14-.44.006-.026.014-.05.063-.035.05.013.043.037.036.063zm-.47-6.075c.322.474.393.963.405 1.453a7.29 7.29 0 0 1 .125-.534c0-.003.007-.017.007-.017.135-.19.22-.38.263-.567.043-.188.043-.377.01-.565-.005-.026-.01-.05.042-.06.05-.008.057.018.062.044.036.2.036.405-.01.607a1.68 1.68 0 0 1-.272.596c-.088.33-.152.66-.213.993l-.013.06c-.01.05-.104.043-.104-.01 0-.037 0-.072.002-.11.007-.62.014-1.24-.386-1.828-.016-.02-.032-.042.013-.073.043-.03.06-.008.073.013zm-.79 1.017l-.012.12c-.002.04-.007.08-.01.12-.002.026-.004.052-.056.047-.052-.005-.05-.03-.048-.057.003-.04.008-.08.01-.12.002-.04.007-.08.012-.12.002-.025.005-.052.057-.047.052.005.05.03.047.057zm-.22 1.379c.08.263.142.53.187.806.03.187.05.377.06.57a.983.983 0 0 1 .07-.1c.086-.107.2-.2.334-.278.023-.014.046-.026.073.02.026.044.004.058-.02.07a1.048 1.048 0 0 0-.303.254.704.704 0 0 0-.147.322c-.01.052-.104.043-.104-.01a5.054 5.054 0 0 0-.065-.83 5.904 5.904 0 0 0-.183-.793c-.007-.026-.016-.05.034-.064.05-.013.057.01.064.034zm1.1.493a3.564 3.564 0 0 1 .064 1.19c-.003.027-.008.053-.06.046-.052-.007-.047-.033-.045-.06.02-.177.027-.362.018-.556a3.603 3.603 0 0 0-.08-.597c-.005-.027-.012-.05.04-.063.05-.012.057.014.06.04zm.943-.175c.035.194.054.384.045.566a1.47 1.47 0 0 1-.12.53 1.19 1.19 0 0 0-.037.584c.034.2.11.398.2.6.012.024.022.047-.026.07-.047.02-.06-.004-.07-.027a2.54 2.54 0 0 1-.207-.624 1.298 1.298 0 0 1 .04-.636l.003-.005a1.36 1.36 0 0 0 .11-.496 2.25 2.25 0 0 0-.044-.543c-.005-.025-.01-.05.043-.058.05-.01.055.016.06.042zm.455-1.564c-.024.097-.048.197-.074.296-.024.097-.047.197-.073.296-.004.026-.01.05-.06.038-.05-.012-.046-.038-.04-.064l.075-.296c.023-.097.047-.197.073-.296.007-.026.012-.05.064-.038.05.012.045.038.038.064zm-.468-2.598c.03.09.055.18.084.27.007.027.014.05-.036.064-.05.017-.057-.01-.064-.033-.028-.09-.054-.18-.083-.27-.008-.025-.015-.05.034-.063.05-.014.057.01.064.033zm.24-1.974c.002.123.002.247-.007.775a.773.773 0 0 0-.235.383 1.38 1.38 0 0 0-.007.585c.006.026.01.052-.04.062-.054.01-.058-.017-.063-.043a1.423 1.423 0 0 1 .01-.63.862.862 0 0 1 .265-.432l-.02-.33c-.004-.122-.004-.246-.006-.367 0-.026 0-.052.052-.052s.052.026.052.052zm-1.96-.686c.303.198.564.418.744.68.183.262.287.563.275.92a.053.053 0 0 1-.074.044c-.17-.074-.344-.147-.515-.22.115.736.087 1.324-.074 1.774-.17.477-.486.8-.937.986a.052.052 0 0 1-.07-.064c.088-.28.14-.56.162-.84.02-.278.01-.558-.038-.835-.005-.026-.01-.053.043-.06.052-.01.057.017.06.043.046.287.06.576.037.863-.02.252-.062.5-.133.754a1.5 1.5 0 0 0 .776-.88c.16-.452.185-1.054.057-1.817-.007-.04.036-.073.07-.057l.53.228c-.005-.3-.1-.555-.256-.78-.173-.25-.422-.46-.716-.652-.02-.014-.042-.028-.013-.073.028-.043.05-.028.07-.014zm5.13-1.01l-.04.1c-.016.034-.028.07-.042.103-.01.024-.02.047-.066.028-.048-.018-.038-.04-.03-.065.016-.033.03-.07.044-.102.014-.033.026-.07.04-.102.01-.022.02-.046.067-.027.047.02.038.042.028.066zm-1.205-.027c.1.04.18.095.246.16a.83.83 0 0 1 .16.224c.012.024.024.047-.02.07-.05.022-.06 0-.07-.023a.78.78 0 0 0-.14-.196.592.592 0 0 0-.213-.138c-.024-.01-.047-.02-.03-.066.02-.048.044-.038.068-.03zm-1.792.514c.13.145.216.313.26.505.046.187.053.396.03.62-.003.025-.005.05-.058.046-.052-.005-.05-.03-.045-.057.022-.212.017-.41-.026-.584a1.034 1.034 0 0 0-.237-.458c-.016-.018-.035-.037.005-.073.038-.036.057-.014.073.005zm-6.055.583l-.022.204-.02.204c0 .026-.003.052-.055.047-.052-.004-.05-.03-.044-.056l.02-.205.02-.204c.002-.025.005-.05.057-.046.052.004.05.03.047.056zm1.122-.592c.03.097.058.194.09.29l.025.09c.007.025.014.05-.036.063-.05.015-.058-.008-.065-.034l-.026-.088-.088-.292c-.007-.023-.015-.05.035-.064.05-.014.057.01.064.036zm2.305 1.547c.012.043.02.086.02.126a1.11 1.11 0 0 1 0 .127c0 .026-.004.052-.056.047-.053-.005-.05-.03-.048-.057a.837.837 0 0 0 0-.11.552.552 0 0 0-.02-.108c-.006-.027-.013-.05.036-.065.05-.014.057.012.064.038zm.795-1.753c.05.05.082.104.094.156a.234.234 0 0 1-.024.168c-.012.024-.026.048-.07.022-.046-.024-.034-.048-.023-.07a.14.14 0 0 0 .015-.1.25.25 0 0 0-.067-.108c-.02-.02-.035-.035 0-.073.036-.036.055-.02.074 0zm-5.5.278a.934.934 0 0 0 .254.663c.12.137.182.272.216.41.033.135.035.267.042.398 0 .027.003.053-.05.055-.052.003-.052-.023-.054-.05-.005-.127-.01-.255-.038-.38a.86.86 0 0 0-.192-.366 1.054 1.054 0 0 1-.216-.347 1.126 1.126 0 0 1-.066-.39c0-.025 0-.05.052-.05s.052.025.052.05zm2.226 1.497c.123.23.192.455.218.682.028.225.014.454-.026.694-.045.277.014.547.166.8.14.238.36.463.644.672a2.86 2.86 0 0 1-.128-.9c.015-.34.12-.67.358-.98.102-.133.17-.27.218-.41.05-.14.076-.282.095-.42.003-.025.008-.05.058-.044.052.004.047.03.045.057-.02.145-.047.292-.097.44a1.52 1.52 0 0 1-.235.438 1.587 1.587 0 0 0-.335.922c-.015.324.056.66.165 1.007.015.045-.04.083-.078.06-.358-.243-.63-.508-.798-.79a1.256 1.256 0 0 1-.178-.87c.038-.23.05-.45.024-.666a1.81 1.81 0 0 0-.207-.643c-.012-.022-.026-.045.022-.07.045-.025.06-.002.07.022zm-.894 1.367c0 .247-.068.493-.192.74a3.387 3.387 0 0 1-.377.578c.08-.03.16-.062.237-.1a2.212 2.212 0 0 0 .7-.497c.097-.1.194-.216.294-.353.014-.022.03-.043.073-.012.043.03.026.052.012.073a3.59 3.59 0 0 1-.305.365 2.48 2.48 0 0 1-.27.242 24.48 24.48 0 0 1 .07.34c.004.027.01.05-.04.063-.05.012-.058-.014-.063-.04l-.038-.183a1.542 1.542 0 0 0-.024-.114 2.21 2.21 0 0 1-.37.21c-.14.068-.28.117-.42.17-.046.016-.09-.045-.058-.083.2-.237.367-.472.484-.707.116-.232.182-.462.182-.692 0-.026 0-.052.052-.052s.052.026.052.052zm-1.088-.087v.234c0 .027 0 .053-.052.053s-.052-.026-.052-.052v-.233c0-.026 0-.053.052-.053s.052.027.052.053z"/> - <path d="M363.052 113.675c.142.348.18.673.126.976a1.85 1.85 0 0 1-.413.852l-.007.007a1.89 1.89 0 0 0-.474.63c-.078.16-.137.334-.182.516.056-.078.113-.152.182-.22.135-.138.296-.244.51-.304.218-.12.424-.253.616-.403.194-.152.374-.318.54-.505.017-.02.036-.038.074-.005s.02.052.004.073c-.17.192-.355.363-.554.517-.2.154-.41.292-.635.415l-.013.005a1.026 1.026 0 0 0-.47.277 2.287 2.287 0 0 0-.322.443c-.026.043-.104.014-.095-.036.053-.293.13-.57.25-.822.118-.25.28-.474.497-.66.204-.252.34-.518.39-.802.048-.285.013-.59-.122-.92-.01-.023-.02-.047.028-.07.048-.017.06.006.07.03zm2.211 3.545c-.033.095.036.183.175.363l.095.123c.188.25.256.53.26.827.006.29-.05.59-.106.882-.01.05-.094.047-.102-.003a1.79 1.79 0 0 0-.386-.86 3.432 3.432 0 0 0-.79-.692c-.02-.014-.043-.028-.014-.073.028-.043.05-.03.07-.015.323.216.603.45.814.716.16.202.282.42.353.66a3.4 3.4 0 0 0 .06-.612 1.28 1.28 0 0 0-.24-.766c-.036-.05-.067-.088-.093-.12-.163-.212-.24-.314-.192-.46.01-.024.017-.05.067-.034.05.017.04.043.033.067zm.943-.06c.038.04.08.08.116.122.038.04.08.08.117.123.018.02.034.038-.004.074-.038.034-.057.015-.073-.004-.038-.04-.078-.08-.116-.123-.038-.04-.08-.08-.116-.123-.016-.02-.035-.038.003-.074.038-.035.057-.016.073.003zm1.157.37c-.074.233-.145.463-.216.695-.073.232-.144.462-.218.694-.008.026-.015.05-.065.033-.05-.015-.042-.04-.033-.064.074-.234.145-.463.216-.696.073-.232.144-.462.218-.694.007-.026.014-.05.064-.036.05.017.042.04.033.067zm.654 3.88a.242.242 0 0 0 0 .173c.01.024.02.05-.03.067-.048.02-.058-.005-.067-.03a.347.347 0 0 1 0-.25c.01-.026.02-.05.066-.03.05.018.04.042.03.066zm-.687-1.14c-.03.12-.064.245-.095.365-.03.124-.062.244-.095.368-.007.026-.014.05-.064.038-.05-.014-.045-.037-.038-.063.03-.124.064-.244.095-.368.03-.122.064-.245.095-.366.007-.026.012-.05.064-.038.05.012.045.038.038.064zm-.99-.004l.09.09c.018.02.035.035 0 .073-.04.035-.058.018-.074 0l-.09-.09c-.02-.02-.036-.036 0-.074.038-.036.056-.02.073 0zm-1.165-.556a7.324 7.324 0 0 1-.073.205c-.024.07-.047.137-.074.206-.01.025-.016.05-.066.032-.047-.017-.04-.043-.03-.066a5.08 5.08 0 0 1 .073-.207 5.08 5.08 0 0 1 .073-.207c.01-.026.017-.05.067-.033s.04.043.033.066zm-1.665 1.76a.693.693 0 0 0-.138.222 1.29 1.29 0 0 0-.062.252c-.005.026-.01.052-.06.042-.05-.01-.046-.033-.042-.06.017-.09.036-.18.07-.27a.77.77 0 0 1 .155-.255c.017-.018.036-.037.074 0 .038.034.02.053.002.072zm-4.77 4.67a.663.663 0 0 1-.1.16 1.098 1.098 0 0 1-.16.154c-.02.016-.04.033-.073-.01-.033-.04-.012-.057.007-.073a.817.817 0 0 0 .23-.272c.012-.023.02-.047.068-.028.048.02.036.045.026.07zm.747-.395a.352.352 0 0 1-.1.135.612.612 0 0 1-.163.093c-.026.01-.05.02-.066-.03-.02-.05.007-.06.03-.068a.427.427 0 0 0 .13-.073.285.285 0 0 0 .075-.097c.01-.024.02-.048.068-.026.05.02.037.044.027.067zm.991-.605a.48.48 0 0 1-.062.086.524.524 0 0 1-.106.085c-.022.016-.045.03-.07-.015-.027-.045-.006-.06.018-.07a.38.38 0 0 0 .135-.134c.014-.02.026-.044.07-.016.046.026.032.048.02.07zm1.492-3.877c-.05.14-.082.278-.094.415a1.4 1.4 0 0 0 .024.41c.005.026.012.05-.038.062-.05.012-.057-.014-.06-.04a1.397 1.397 0 0 1-.028-.444c.015-.147.048-.294.098-.438.01-.026.016-.05.066-.033.05.016.04.042.033.066zm1.013-10.316a.872.872 0 0 1-.09.343 1.4 1.4 0 0 1-.235.337c-.016.02-.035.038-.073.002-.038-.036-.02-.055-.002-.074.094-.104.168-.21.218-.31a.768.768 0 0 0 .08-.304c0-.026 0-.052.053-.05.053.003.05.03.05.055zm-1.036-.915c.09.156.145.315.176.474.03.156.038.315.028.472 0 .026 0 .052-.053.05-.052-.003-.05-.03-.05-.055a1.76 1.76 0 0 0-.026-.446 1.463 1.463 0 0 0-.163-.443c-.01-.02-.026-.045.02-.07.044-.027.06-.003.07.018zm-1.372 1.702a1.51 1.51 0 0 1-.405-.417.653.653 0 0 1-.095-.437c.005-.026.01-.05.06-.042.052.01.047.033.042.06-.02.122.01.243.08.366.077.128.202.256.377.387.022.015.043.032.012.074-.03.043-.052.026-.073.012zm1.519 2.581v.225c0 .026 0 .052-.052.052s-.052-.026-.052-.052v-.225c0-.026 0-.053.052-.053s.052.027.052.053zm-1.941-1.955c.306.288.49.637.586 1.023.06.24.086.493.09.76.004 0 .008-.004.013-.004.138-.048.244-.17.318-.368.08-.21.12-.498.126-.865a.11.11 0 0 1 .007-.026 1.9 1.9 0 0 0 .22-.535 3.49 3.49 0 0 0 .084-.543c.004-.045.066-.064.095-.026.177.252.334.512.455.792.12.28.2.576.232.898 0 .026.004.052-.05.057-.05.005-.053-.02-.055-.047a2.905 2.905 0 0 0-.223-.865 3.868 3.868 0 0 0-.363-.656 2.897 2.897 0 0 1-.072.417 1.94 1.94 0 0 1-.225.553c-.007.375-.05.67-.13.887-.086.23-.214.372-.382.43-.016.003-.03.008-.044 0-.002.13-.01.26-.02.392 0 .026-.004.052-.056.048-.052-.005-.05-.03-.047-.057.035-.432.026-.842-.07-1.21a1.977 1.977 0 0 0-.556-.975c-.02-.017-.038-.036-.002-.074.035-.038.054-.02.073-.002zm1.137 4.865c-.02.137-.042.272-.063.41-.02.135-.043.272-.064.408-.002.026-.007.052-.06.042-.05-.007-.047-.033-.042-.06l.065-.407c.02-.137.043-.272.064-.41.004-.026.006-.05.058-.042.05.01.048.033.043.06zm-2.184.927l.057.31c.004.026.01.05-.043.06-.05.01-.057-.017-.062-.043l-.056-.312c-.005-.026-.01-.05.042-.06.05-.01.057.018.06.044zm1.889-2.508a2.27 2.27 0 0 1-.16.597c-.082.193-.196.38-.345.558l-.002.003a1.127 1.127 0 0 0-.306.636 1.8 1.8 0 0 0 .064.685c.007.027.012.05-.038.065-.05.012-.057-.012-.064-.038a1.89 1.89 0 0 1-.066-.723c.03-.24.13-.472.33-.692a2.1 2.1 0 0 0 .33-.53 2.1 2.1 0 0 0 .152-.57c.003-.026.008-.052.057-.045.052.007.048.033.045.06zm-.493-.734c.035.2.005.395-.078.594a2.22 2.22 0 0 1-.387.58l-.004.003a1.83 1.83 0 0 0-.403.48c-.1.172-.173.35-.247.53-.01.024-.02.047-.07.028-.046-.02-.037-.042-.027-.066.073-.183.15-.366.254-.544.104-.177.237-.348.42-.505.163-.18.288-.363.366-.546a.915.915 0 0 0 .07-.533c-.003-.025-.008-.05.044-.06.05-.01.057.016.062.042zm-2.412 1.144c.058.398-.003.74-.153 1.038-.147.3-.38.555-.668.785-.02.016-.04.033-.074-.01-.034-.04-.012-.057.01-.073.274-.22.5-.467.64-.75.14-.28.198-.6.144-.978-.003-.026-.008-.052.045-.06.052-.006.054.02.06.046zm-3.077 1.704c.03.062.06.123.088.185.034.066.065.13.095.197.012.023.022.047-.023.068-.048.022-.06 0-.07-.023-.03-.067-.063-.13-.094-.197-.028-.062-.06-.123-.088-.182-.01-.024-.02-.048.024-.07.048-.02.06 0 .07.025zm-1.221.024a2.69 2.69 0 0 0 .074.69c.06.222.154.438.31.644l.005.01c.08.158.124.317.155.478.02.12.036.237.043.356.15-.16.263-.32.346-.488a1.44 1.44 0 0 0 .15-.605c0-.026 0-.052.05-.05.053 0 .053.027.05.053a1.549 1.549 0 0 1-.158.647c-.102.208-.25.407-.448.6-.03.03-.085.01-.087-.036a3.252 3.252 0 0 0-.047-.457 1.762 1.762 0 0 0-.142-.448 1.94 1.94 0 0 1-.324-.677 2.703 2.703 0 0 1-.078-.718c0-.027 0-.053.052-.053s.052.026.052.053zm.166 4.168a2.63 2.63 0 0 1 .18-.766c.01-.022.02-.046.067-.027.05.02.038.042.03.066a2.524 2.524 0 0 0-.173.732c-.002.027-.002.053-.056.048-.053-.003-.05-.03-.048-.055zm-.142 1.162c.02-.154.043-.308.064-.462.002-.026.007-.052.06-.045.05.007.047.033.044.06-.02.153-.042.307-.064.46-.002.027-.007.053-.06.046-.05-.006-.046-.032-.044-.058zm-.799 1.946c.076-.076.15-.166.218-.266.07-.102.138-.213.204-.33.01-.023.025-.044.07-.02.045.026.033.047.02.07a4.037 4.037 0 0 1-.21.34c-.073.104-.15.2-.232.28-.02.018-.038.035-.073 0-.036-.036-.017-.055 0-.074zm-1.154-6.53v.192c0 .026 0 .053-.052.053-.05 0-.05-.027-.05-.053v-.192c0-.026 0-.052.05-.052.053 0 .053.026.053.052zm-1.953 4.499a2.863 2.863 0 0 0-.01-.142l-.01-.145c0-.026 0-.052.05-.055.053-.002.056.022.056.05l.01.142c0 .048.004.095.01.143 0 .026 0 .052-.05.054-.053.002-.056-.02-.056-.05zm4.904-8.001c-.1.343-.178.7-.17 1.007.004.296.087.543.3.68.25.16.358.403.462.638.007.015.012.03.02.043.03-.116.056-.24.068-.362.017-.15.017-.298-.005-.43-.006-.027-.01-.053.042-.062.05-.01.057.016.06.042.023.142.023.3.006.46-.02.178-.06.358-.11.514-.015.043-.077.048-.096.007a5.946 5.946 0 0 1-.078-.17c-.097-.22-.2-.447-.424-.592-.247-.158-.344-.436-.35-.765-.006-.318.072-.685.174-1.038.007-.026.014-.05.064-.036.05.013.043.037.036.063zm-.344-1.311a2.52 2.52 0 0 1-.02.763 4.006 4.006 0 0 1-.233.76 2.41 2.41 0 0 0-.166 1c.017.34.105.676.26.996.013.024.025.048-.022.07-.048.023-.06 0-.07-.025a2.537 2.537 0 0 1-.1-2.078 3.8 3.8 0 0 0 .227-.743c.045-.238.054-.475.02-.73-.002-.027-.006-.053.046-.06.05-.007.055.02.06.045zm-2.277 3.242a.79.79 0 0 0-.06.47c.03.158.097.32.195.48.014.022.026.046-.017.072-.044.025-.058.003-.07-.02a1.504 1.504 0 0 1-.206-.517.876.876 0 0 1 .066-.53c.012-.022.02-.046.07-.025.046.022.034.045.025.07zm-.993-.355c.016.092.02.2.01.31a.858.858 0 0 1-.07.27v.003a.397.397 0 0 0-.038.263c.02.092.067.185.13.28.015.02.03.042-.014.073-.042.032-.056.01-.073-.013a.852.852 0 0 1-.147-.318.484.484 0 0 1 .047-.333.76.76 0 0 0 .062-.234c.01-.098.005-.197-.01-.282-.004-.025-.01-.052.043-.06.052-.008.057.018.06.044zm5.806-8.602a2.318 2.318 0 0 0 .313 1.468c.013.02.025.045-.02.07-.045.027-.057.003-.07-.018a2.59 2.59 0 0 1-.288-.723 2.33 2.33 0 0 1-.038-.806c.002-.025.005-.05.057-.044.053.005.05.03.046.057zm-.728.705c.136.24.252.497.34.78.087.282.146.592.168.936.002.027.002.053-.05.055-.052.003-.052-.024-.055-.05a3.77 3.77 0 0 0-.492-1.668c-.01-.024-.026-.045.02-.07.044-.027.06-.004.07.018zm-3.608.111c-.347.496-.5.898-.527 1.247-.03.346.064.635.2.903l.004.007c.094.275.137.547.13.822a2.58 2.58 0 0 1-.16.82c-.008.026-.015.05-.065.03-.05-.015-.04-.042-.03-.065.094-.263.146-.524.153-.787a2.25 2.25 0 0 0-.123-.782 1.7 1.7 0 0 1-.21-.954c.03-.365.186-.787.546-1.3.015-.02.03-.042.074-.013.042.03.028.052.012.073zm3.364-1.426c.03.15.017.305-.052.457-.06.14-.168.272-.327.398a.81.81 0 0 0-.3.486c-.044.202-.034.437.016.7.005.026.01.052-.042.062-.05.01-.057-.017-.062-.043-.05-.278-.06-.525-.01-.74a.913.913 0 0 1 .335-.546.986.986 0 0 0 .297-.357c.06-.13.07-.266.045-.394-.004-.026-.01-.05.04-.06.05-.01.058.015.062.04zm-3.562.305c.07.22.07.436.007.652-.062.213-.19.424-.385.63l-.004.005a1.21 1.21 0 0 0-.37.576 2.87 2.87 0 0 0-.115.737c-.003.026-.003.052-.055.05-.052-.003-.05-.03-.05-.055a3.04 3.04 0 0 1 .12-.763c.075-.237.198-.45.4-.62.182-.195.3-.392.36-.59a1.01 1.01 0 0 0-.007-.59c-.007-.027-.017-.05.033-.065.05-.014.057.01.064.036zm2.038.107a.763.763 0 0 0 0 .232c.012.074.04.145.088.213.014.022.03.043-.014.074-.043.03-.057.01-.074-.013a.628.628 0 0 1-.104-.254.816.816 0 0 1 0-.263c.002-.026.007-.052.06-.045.052.007.047.033.044.06zm-.097-.536a.853.853 0 0 0-.43.4c-.1.188-.16.43-.18.726.013.014.02.026.02.036.1.135.168.296.21.476.048.197.065.42.058.66 0 .027 0 .053-.054.05-.052 0-.05-.028-.05-.05a2.423 2.423 0 0 0-.054-.636c-.038-.16-.097-.3-.18-.42-.386.36-.576.758-.588 1.192-.014.453.164.946.505 1.472.013.02.028.045-.015.073-.043.03-.057.005-.07-.016-.354-.546-.537-1.058-.523-1.532.015-.467.218-.894.638-1.278v-.002c.016-.325.08-.59.192-.8a.955.955 0 0 1 .483-.447c.024-.008.048-.018.07.03.018.047-.006.06-.03.07zm-.578-.749c-.005.043-.01.076-.012.112-.026.245-.052.522-.24.69a.83.83 0 0 0-.217.318 1.61 1.61 0 0 0-.088.39c-.002.025-.005.05-.057.044-.05-.005-.046-.03-.044-.06a1.71 1.71 0 0 1 .095-.414.92.92 0 0 1 .245-.358c.156-.14.185-.398.206-.623a2.69 2.69 0 0 0 .013-.114c.002-.026.007-.052.06-.045.05.007.047.033.044.06zm5.662 6.041c.062.128.11.26.144.396.035.135.05.275.044.42 0 .026-.002.052-.054.05-.053-.003-.05-.03-.05-.055a1.433 1.433 0 0 0-.038-.392c-.03-.126-.08-.25-.14-.375-.012-.023-.02-.047.026-.068.048-.022.057 0 .07.023zm.016 1.858c.046.214.048.432.01.65-.038.218-.12.44-.237.666l-.24.562c-.01.023-.02.047-.068.028-.048-.02-.038-.045-.03-.07.082-.186.16-.376.24-.563l.003-.006a2.15 2.15 0 0 0 .23-.635 1.606 1.606 0 0 0-.008-.612c-.005-.026-.01-.052.04-.062.05-.012.057.014.06.04zm-1.18-1.73c.34.377.56.775.664 1.195.106.42.095.86-.033 1.32-.007.027-.015.05-.064.037-.05-.015-.043-.038-.036-.064.123-.444.135-.866.033-1.268-.102-.403-.315-.787-.642-1.152-.017-.02-.033-.038.005-.074s.057-.015.073.004zm-.103 2.086a5.328 5.328 0 0 1-.867 1.322 2.52 2.52 0 0 0-.54.94c-.014.046-.104.03-.1-.02a1.453 1.453 0 0 0-.05-.47 1.866 1.866 0 0 0-.21-.47c-.19-.278-.27-.56-.256-.84.017-.28.128-.557.327-.834.114-.194.195-.39.252-.585a2.39 2.39 0 0 0 .092-.588c0-.026.002-.052.055-.05.052.002.05.028.05.054a2.61 2.61 0 0 1-.36 1.224l-.003.005c-.188.262-.294.523-.308.78-.015.262.064.52.24.78v.003c.1.166.174.332.222.5.02.08.038.157.047.235a2.65 2.65 0 0 1 .47-.728 4.92 4.92 0 0 0 .496-.65c.14-.217.256-.433.355-.648.013-.024.023-.048.07-.026.047.02.036.045.026.068zm-3.094-.995c-.007.258.017.5.07.727.05.225.136.436.255.63.015.022.027.046-.016.072-.045.028-.057.004-.07-.017a2.254 2.254 0 0 1-.27-.66 2.994 2.994 0 0 1-.07-.753c0-.026.003-.053.052-.05.052.002.052.028.05.052zm-1.761.943v.302c0 .027 0 .053-.052.053s-.052-.026-.052-.052v-.303c0-.026 0-.052.053-.052.052 0 .052.026.052.052zm.583-1.61c.005.178-.02.35-.073.517a1.437 1.437 0 0 1-.273.474c-.016.02-.033.042-.073.006-.042-.033-.023-.052-.006-.073.118-.14.2-.287.25-.44a1.37 1.37 0 0 0 .07-.482c0-.025-.002-.052.05-.052.052 0 .052.027.052.05zm-1.585 3.124c-.285-.708-.353-1.27-.282-1.727.072-.463.285-.813.565-1.1.187-.192.35-.382.457-.62.107-.236.157-.52.12-.904-.004-.026-.006-.052.046-.057.052-.005.052.02.057.047.038.403-.014.704-.128.958-.11.252-.282.45-.476.65a1.87 1.87 0 0 0-.535 1.043c-.07.44 0 .986.277 1.676.01.022.02.046-.028.065-.048.02-.06-.005-.07-.028zm-.915-1.164a.72.72 0 0 0-.045.344c.012.114.054.23.125.346.015.022.03.045-.016.07-.045.03-.057.006-.07-.015a.942.942 0 0 1-.14-.39.83.83 0 0 1 .05-.39c.01-.024.02-.047.067-.03.05.018.037.042.03.066zm4.498-3.194c.187.263.296.535.318.82.02.284-.043.578-.204.884-.012.02-.024.045-.07.02-.046-.022-.032-.046-.02-.068.15-.286.213-.56.192-.827a1.51 1.51 0 0 0-.3-.768c-.015-.02-.03-.042.013-.073.043-.03.057-.01.073.012zm1.406-1.1a2.402 2.402 0 0 1 .07 1.67c-.014.048-.1.04-.1-.013a1.784 1.784 0 0 0-.162-.702 1.523 1.523 0 0 0-.43-.534c-.018-.017-.04-.034-.007-.074.034-.04.053-.024.074-.007.2.16.353.35.457.57.064.136.112.283.14.44.03-.173.045-.346.038-.52a2.25 2.25 0 0 0-.175-.79c-.01-.025-.02-.048.028-.07.048-.02.06.005.07.03zm.834-1.14c.185.183.315.424.396.723.078.293.106.64.092 1.035v.002a2.02 2.02 0 0 0-.007.484.95.95 0 0 0 .137.41c.015.022.03.046-.014.074-.045.03-.06.005-.073-.017a1.06 1.06 0 0 1-.154-.455 2.28 2.28 0 0 1 .007-.507v.003a3.518 3.518 0 0 0-.088-1.005 1.478 1.478 0 0 0-.367-.676c-.02-.02-.038-.035 0-.073.035-.038.054-.02.073 0zm-2.214-.22c-.12.147-.194.32-.23.512-.035.194-.03.407.005.64.005.026.01.05-.043.06-.05.008-.054-.018-.06-.044a2.023 2.023 0 0 1-.004-.675c.038-.21.12-.397.252-.56.016-.02.033-.04.073-.008.04.034.024.052.007.074zm-4.339 2.922a1.98 1.98 0 0 1-.346 1.07 2.485 2.485 0 0 1-.8.705c-.023.014-.046.026-.072-.02-.027-.044-.005-.056.018-.07.31-.182.576-.4.768-.675.193-.273.312-.605.33-1.015 0-.026.003-.052.055-.05.052.003.05.03.05.055zm-.113-1.493c.025.16.016.317-.02.474a2.172 2.172 0 0 1-.175.466c-.012.023-.024.045-.07.023-.047-.024-.035-.048-.023-.07.076-.15.135-.298.168-.442.034-.145.043-.287.022-.437-.003-.025-.007-.05.045-.058.052-.007.057.02.06.045zm2.94-.215v.146l.05.763.005.068c.002.026.002.052-.048.057h-.016c-.006.01-.018.014-.042.014-.052 0-.052-.027-.052-.053v-.844l-.014-.206c-.003-.026-.005-.052.047-.057.05-.002.054.022.056.048v.016c.012.01.012.026.012.043zm.71-1.31c-.21.252-.293.496-.297.736-.005.24.068.478.177.715.247.397.327.79.3 1.186-.022.394-.153.785-.326 1.176-.012.024-.02.047-.07.026-.046-.02-.034-.045-.025-.07.17-.378.293-.76.317-1.14a1.848 1.848 0 0 0-.287-1.127l-.002-.004c-.116-.25-.195-.504-.19-.765.005-.262.097-.528.32-.8.017-.02.033-.04.074-.007.04.033.023.052.007.073zm-4.56-8.128c.345-.263.68-.412 1.035-.45.35-.036.713.04 1.106.225.132-.003.262-.003.392-.005.133-.002.268-.005.4-.005.027 0 .053 0 .053.052s-.026.052-.052.052c-.135.002-.268.004-.4.004-.12.003-.24.003-.36.005l-.008.008c-.422.372-.782.576-1.102.642a1.06 1.06 0 0 1-.872-.19c-.025-.018-.05-.037-.016-.09.036-.05.064-.035.09-.016a.96.96 0 0 0 .773.168c.28-.06.597-.232.97-.547-.342-.15-.655-.21-.956-.178-.326.033-.643.176-.968.424-.026.02-.052.04-.09-.01-.038-.053-.014-.072.012-.09z"/> - <path d="M351.64 100.993a.26.26 0 0 1 .26.26.26.26 0 0 1-.26.26.26.26 0 0 1-.26-.26.26.26 0 0 1 .26-.26zm1.794 1.577c.188-.098.332-.203.453-.31.12-.106.213-.215.294-.324.015-.02.032-.043.074-.012.043.03.027.052.012.074a2.265 2.265 0 0 1-.308.343c-.125.113-.277.22-.474.32-.023.013-.047.025-.07-.02-.022-.045 0-.06.023-.07zm3.7-1.532a.522.522 0 0 1 .29.002.766.766 0 0 1 .28.154c.018.017.04.033.006.074-.033.04-.052.023-.074.007a.666.666 0 0 0-.24-.133.463.463 0 0 0-.236-.002c-.026.007-.05.014-.064-.038-.014-.05.012-.057.036-.064zm-2.116.085a.852.852 0 0 1 .38-.426c.172-.09.387-.128.65-.105.027.003.053.005.048.057-.005.05-.03.05-.057.047-.245-.022-.442.01-.593.092a.728.728 0 0 0-.335.376c-.01.024-.02.047-.068.026-.048-.02-.038-.045-.026-.07zm.242.347a.423.423 0 0 1 .115-.24.558.558 0 0 1 .268-.147c.026-.007.05-.014.064.035.014.05-.012.057-.035.064a.445.445 0 0 0-.218.12.346.346 0 0 0-.088.184c-.005.026-.01.05-.06.042-.05-.007-.047-.033-.042-.06zm-3.522 1.17c-.057.09-.11.182-.147.282a.823.823 0 0 0-.047.332c.003.026.005.052-.047.054-.052.003-.055-.02-.057-.047a.944.944 0 0 1 .05-.374c.04-.11.096-.208.157-.303.015-.02.03-.045.072-.017.044.03.03.05.015.072zm1.009.453v.156c0 .025 0 .05-.052.05s-.052-.025-.052-.05v-.157c0-.026 0-.053.052-.053s.052.027.052.053zm-.657-1.128a.96.96 0 0 0 .31.06c.105 0 .212-.015.316-.04.026-.004.05-.01.062.04.012.05-.014.056-.038.063a1.4 1.4 0 0 1-.34.04.995.995 0 0 1-.347-.066c-.026-.01-.05-.02-.03-.067.018-.05.042-.038.065-.03zm.65-1.895a.318.318 0 0 0-.21.065.377.377 0 0 0-.13.19c-.006.026-.013.05-.063.035-.05-.014-.043-.04-.035-.064a.49.49 0 0 1 .168-.242.43.43 0 0 1 .272-.085c.026 0 .053 0 .053.05 0 .053-.027.053-.053.053zm-1.05.108a.796.796 0 0 0-.187.11.254.254 0 0 0-.083.112c-.01.026-.017.05-.066.033-.05-.016-.04-.04-.034-.066.02-.06.06-.11.117-.16a.863.863 0 0 1 .215-.127c.024-.01.048-.02.067.03.02.046-.004.058-.03.068zm-.647.018a.82.82 0 0 0-.163.147.67.67 0 0 0-.107.183c-.01.024-.017.05-.066.03-.048-.016-.04-.042-.03-.066a.737.737 0 0 1 .122-.213.9.9 0 0 1 .184-.168c.02-.015.043-.03.073.013s.01.057-.014.073zm-.833.666a1.702 1.702 0 0 0-.378.392c-.014.02-.03.042-.073.01-.044-.03-.028-.05-.013-.072.06-.083.123-.16.19-.228.066-.068.137-.13.21-.184.022-.017.043-.03.074.01.032.042.01.056-.01.072zm.084.918c-.05.054-.1.11-.15.16l-.15.162c-.017.02-.036.038-.074.002-.038-.035-.022-.054-.003-.073l.15-.16.15-.16c.018-.02.037-.04.075-.004.038.036.02.055.002.074zm-.841.244v.322c0 .026 0 .052-.052.052-.05 0-.05-.026-.05-.052v-.322c0-.026 0-.052.05-.052.053 0 .053.026.053.052zm1.077 1.416c-.015.176-.032.352-.05.53 0 .016 0 .033-.003.05-.003.025-.005.05-.057.047-.052-.005-.05-.03-.048-.057.003-.017.003-.033.005-.05l.05-.528c.002-.027.005-.053.057-.048.052.005.05.03.047.057zm-.632-.468c-.002.114-.007.23-.01.343 0 .026-.004.053-.056.05-.052-.002-.05-.028-.05-.052.003-.116.007-.23.012-.346 0-.026.002-.052.055-.05.05.003.048.03.048.055zm-.588-4.489a.73.73 0 0 1 .467.467c.01.026.017.05-.033.066-.05.017-.057-.01-.066-.033a.65.65 0 0 0-.156-.254.696.696 0 0 0-.25-.152c-.023-.01-.047-.02-.03-.067.02-.048.043-.04.066-.03zm5.162 6.731c.1.225.155.45.157.673.004.225-.04.45-.136.675-.01.024-.02.048-.067.03-.047-.02-.037-.046-.028-.07a1.547 1.547 0 0 0-.022-1.266c-.012-.023-.022-.047.026-.068.047-.022.06.002.068.026zm-1.682 1.946c.073-.254.18-.474.303-.676.123-.2.263-.384.403-.564.16-.21.268-.436.325-.668a1.82 1.82 0 0 0 .02-.76c-.005-.025-.01-.048.042-.058.05-.01.057.017.06.043.047.26.045.533-.02.8-.06.247-.17.49-.343.71a6.316 6.316 0 0 0-.397.554c-.118.195-.223.41-.29.65-.008.026-.016.05-.065.036-.05-.014-.043-.038-.036-.064zm-2.164-.572a.718.718 0 0 1 .16-.25.902.902 0 0 1 .262-.186c.024-.012.047-.02.07.024.02.047 0 .06-.027.07a.795.795 0 0 0-.234.162.573.573 0 0 0-.135.216c-.01.024-.018.05-.066.03-.047-.016-.04-.042-.03-.066zm-.42-.151c.08-.105.162-.202.254-.287.095-.088.202-.16.325-.21.023-.01.047-.02.066.027.02.05-.004.06-.03.067a.967.967 0 0 0-.29.19 2.06 2.06 0 0 0-.243.274c-.017.022-.03.043-.073.01-.043-.03-.026-.052-.01-.074zm2.244-2.223c.09.04.174.06.257.06a.826.826 0 0 0 .242-.03c.025-.007.048-.014.063.036.014.05-.012.057-.036.064a.794.794 0 0 1-.57-.036c-.022-.01-.046-.02-.025-.068.02-.048.045-.036.07-.026zm-1.118-.144c.026-.032.052-.06.078-.09l.01-.013c.017-.02.035-.038.073-.005.038.036.022.055.005.074l-.01.012c-.025.03-.05.06-.08.09-.017.02-.033.038-.073.005-.038-.034-.022-.055-.005-.074zm24.136 6.962c.05.055.093.112.13.173.036.062.065.126.088.194.01.026.017.05-.033.063-.05.017-.057-.01-.066-.033a.76.76 0 0 0-.078-.173.796.796 0 0 0-.118-.154c-.016-.02-.035-.038.003-.073.038-.036.057-.017.073.002zm-26.795 12.575c.114.105.232.2.363.266a.95.95 0 0 0 .43.104c.027 0 .053 0 .053.052 0 .05-.027.05-.053.05-.178 0-.334-.044-.48-.115-.14-.07-.267-.17-.385-.28-.02-.016-.038-.035-.002-.073.035-.038.054-.02.073-.002z"/> - <g fill="red"> - <path d="M368.9 99.6a8.222 8.222 0 0 0 1.655-.08c-.52.378-1.187.63-1.905.75a.77.77 0 0 0 .27-.34.426.426 0 0 0-.02-.33zm-1.42-.148c.385.064.786.11 1.182.135.004.01.012.017.016.026.064.088.083.173.055.256-.033.094-.123.194-.27.296-.04.028-.08.057-.024.135a5.63 5.63 0 0 1-1.215.022.177.177 0 0 0 .04-.033c.145-.153.238-.31.264-.473a.627.627 0 0 0-.05-.362zm-10.49-3.014c.668-.088 1.348-.11 2.04-.093a.985.985 0 0 1 .5.406c.114.2.154.46.107.785-.007.047-.014.097.083.11.097.013.104-.037.11-.084.05-.37.003-.67-.132-.907a1.046 1.046 0 0 0-.256-.294c.062.002.124.004.185.01.797.042 1.415.27 2.107.613a.118.118 0 0 1 .017.02c.148.153.197.312.174.475-.026.173-.13.36-.296.552-.03.038-.064.074.01.138.075.064.108.026.14-.012.186-.22.31-.44.34-.652a.696.696 0 0 0-.035-.348c.583.29 1.175.566 1.75.87.013.007.025.01.037.02 0 .01.004.025.01.036a.484.484 0 0 1-.053.425c-.088.125-.247.234-.476.32-.045.016-.09.033-.056.125.033.09.08.074.125.057.27-.103.46-.233.568-.394a.63.63 0 0 0 .107-.453c.38.206.763.42 1.154.607v.002c.07.138.082.26.027.375-.057.12-.19.234-.4.338-.043.022-.088.043-.045.13.042.09.087.067.13.046.254-.125.415-.27.49-.43a.544.544 0 0 0 .043-.346c.135.06.273.116.413.168a8.1 8.1 0 0 0 1.32.35.466.466 0 0 1 .11.377.736.736 0 0 1-.212.368c-.033.035-.066.068.002.137a.27.27 0 0 0 .03.026c-1.48-.15-2.798-.86-4.177-1.393-.163-.064-.33-.126-.492-.19-.51-.192-1.024-.453-1.536-.66a.16.16 0 0 0-.066-.034c-.036-.012-.07-.024-.105-.033-.02-.01-.044-.017-.065-.027.002.003.007.005.01.008a8.477 8.477 0 0 0-1.418-.33 6.112 6.112 0 0 0-1.626-.018l-.09-.014c.05-.292.01-.548-.134-.77a1.25 1.25 0 0 0-.47-.415z"/> - <path d="M354.565 97.09a8.688 8.688 0 0 1 2.074-.603c.32.128.534.285.655.47.116.182.145.395.104.642a4.197 4.197 0 0 0-1.84.225c-.156-.33-.367-.53-.614-.638a1.243 1.243 0 0 0-.38-.1zm7.458 3.772a9.414 9.414 0 0 0-.56-.334 6.92 6.92 0 0 0-3.037-.86c.01-.007.016-.017.026-.024.377-.384.46-.746.332-1.085-.1-.264-.33-.508-.647-.73.355-.018.684.004 1.054.056.523.073 1.198.25 1.814.497.152.332.195.624.128.87-.07.26-.263.474-.576.652-.042.024-.085.047-.038.133.048.085.09.06.133.035.364-.204.586-.46.67-.772.063-.24.044-.51-.062-.812.417.187.794.41 1.057.654.343.237.682.476 1.014.727.002.42-.122.66-.326.786-.215.13-.523.147-.874.112-.047-.005-.097-.01-.107.087v.005z"/> - <path d="M364.052 102.39c-.616-.482-1.218-.985-1.865-1.42.358.03.678 0 .92-.143.234-.145.388-.396.414-.806.387.3.76.615 1.113.954.177.168.355.334.538.498 0 .002.003.004.003.01.043.15.057.28.045.39a.46.46 0 0 1-.11.263.547.547 0 0 1-.274.154c-.173.05-.398.058-.675.028-.046-.005-.094-.01-.106.073z"/> - <path d="M366.178 103.79c-.213-.11-.417-.223-.614-.34-.472-.28-.915-.6-1.348-.933.265.02.488.007.668-.043a.75.75 0 0 0 .365-.21c.09-.1.143-.224.16-.375a.922.922 0 0 0-.002-.215c.424.363.87.7 1.35.993.252.154.505.3.757.434-.003.017 0 .033.002.052.03.195-.078.318-.277.396-.233.092-.58.13-.974.154-.045.002-.088.005-.093.08z"/> - <path d="M368.448 104.68a11.886 11.886 0 0 1-2.054-.782c.365-.026.687-.068.92-.16.262-.105.414-.266.404-.524a10.8 10.8 0 0 0 1.273.55c.077.168.082.305.01.42-.085.143-.272.262-.504.364-.045.02-.09.04-.05.128v.002z"/> - <path d="M373.18 104.2c.06-.01.44-.11.243.035-1.394.912-3.162.91-4.828.48.26-.115.47-.255.576-.43a.57.57 0 0 0 .058-.443c.53.173 1.07.296 1.624.367a.376.376 0 0 1-.088.252c-.088.11-.237.216-.48.323-.046.02-.09.038-.05.128.037.09.082.07.127.05.276-.12.454-.25.558-.38a.55.55 0 0 0 .13-.353 8.963 8.963 0 0 0 2.133-.033zm-9.638 24.005c-.104.11-.19.23-.277.372-.405.135-.763.337-1.2.318 0 .282.093.405.375.407.538-.27.66-.32.707-.282.066.057-.076.444-.522.756-.068.043-.066.07-.026.14.376.59 1.364.38 1.895.24.38-.1 1.064-.55 1.254-.93.072-.172-.093-.4-.26-.585-.42.065-.563-.13-.497-.264-.443-.157-.936-.19-1.45-.17zm-15.152-4.775c-.307.25-.65.45-1.05.583-.153.05-.52.14-.556.33-.005.07.247.22.408.132.445-.427.668-.19.156.246-.04.084-.007.177.08.255.463.415 1.608.55 2.13.22.385-.24.587-.507.25-.874a1.74 1.74 0 0 1 .026-.246l-.637-.064-.39-.227-.416-.353zm9.974 3.47c-.038.004-.078.01-.116.016-.206.223.36.14.66.325.14.084.198.247.143.475-.276.66-1.824.447-2.338.175-.24-.126-.25-.27-.24-.476.107 0 .216-.008.325-.024.185-.026.368-.08.548-.183.05-.028.102-.06.045-.158-.057-.103-.11-.075-.16-.046a1.294 1.294 0 0 1-.463.154 2.57 2.57 0 0 1-.486.016h-.04c-.09-.052-.158-.114-.12-.168.038-.052.187.005.215.014.24-.11.448-.182.707-.232.035-.036.068-.074.104-.11.47.04.922.112 1.22.22zm-7.154-.406c-.096.057-.13.137-.198.287-.27.273-.528.437-.874.593-.287.13-.01.256.192.394.182.135.422-.16.57-.382.164-.246.33-.173.224.02-.12.21-.204.513-.216.672-.062.17.588.3.7.306.395.02.893-.367 1.203-.564.26-.264.22-.494.105-.814l.003-.02a1.97 1.97 0 0 1-.477-.05 3.432 3.432 0 0 1-.558-.184c-.024-.01-.047-.02-.028-.068.01-.03.026-.038.042-.036l-.682-.156zm2.77-26.378c.11-.005.218-.01.324.002.202.024.394.112.595.135.672-.253 1.23-.393 1.71-.372a5.68 5.68 0 0 1 1.728-.217.076.076 0 0 1-.02-.02c-.07-.067-.037-.103 0-.136.314-.32.387-.614.285-.88-.104-.274-.388-.533-.784-.77-.423.048-.828-.066-1.276-.016a4.06 4.06 0 0 0-.825.183c.224.08.42.213.582.403.2.235.34.555.417.958.01.047.016.094-.08.113-.094.02-.103-.03-.113-.078-.068-.368-.196-.657-.374-.868-.187-.268-.616-.372-.75-.427-.45.045-.89.095-1.274.194-.29.073-.544.175-.738.327.29-.062.59-.05.85.08.25.123.46.356.593.732.017.044.03.092-.062.123-.092.03-.11-.015-.123-.062-.11-.324-.287-.518-.493-.62-.41-.204-1.256-.026-1.614.24a4.23 4.23 0 0 0-.623.592c-.02.026-.045.05-.073.052.767.052 1.54.093 2.137.332zm-2.278-.434c-.017-.042.012-.073.038-.104.216-.244.434-.46.66-.626.217-.16.442-.277.674-.332.237-.263.588-.42.996-.526.395-.102.848-.154 1.305-.2-.135-.27-.308-.435-.507-.523-.213-.093-.46-.108-.723-.082-.552.19-1.042.486-1.514.82.044 0 .086 0 .127.003.14.01.265-.01.38.034.05.017.094.033.06.126-.04.11-.346.042-.452.035a1.352 1.352 0 0 0-.4.038c-.024.005-.046.012-.067.005-.495.306-.87.616-1.27.955.303.107.54.232.694.38z"/> - </g> - <g> - <path d="M409.028 156.5l20.742-47.013-15.3-24.705-27.287 10.103-12.63 49.687a219.388 219.388 0 0 1 34.472 11.93z" fill="#0093dd"/> - <path d="M382.576 113.013a251.716 251.716 0 0 1 39.59 13.704l-8.003 18.147a231.952 231.952 0 0 0-36.474-12.623z" fill="#fff"/> - <path d="M415.45 141.95l5.347-12.12a248.557 248.557 0 0 0-39.055-13.518l-3.152 12.398a235.895 235.895 0 0 1 37.045 12.822l-.185.417z" fill="red"/> - <path d="M385.59 125.755c.358-.226.74-.17 1.124-.11.31-.116.668-.156 1.057-.142.167-.09.36-.154.577-.194.116-.09.12-.188.016-.293a.62.62 0 0 1-.158-.353c-.616-.357-.844-.903-1.08-1.443-.35-.09-.513-.21-.55-.343-.17-.016-.34-.033-.508-.052-.8.088-1.005-.17-1.29-.38-.236-.08-.443-.21-.575-.46l-.263-.33c-.22-.278-.153-.645.176-.624.233.027.463.027.676-.065.25-.112.62-.11.903-.086.334-.02.545-.235.87-.54-.003-.13-.003-.257-.005-.387-.052-.14.014-.202.2-.183a.98.98 0 0 1 .866.508c.505.087.903.33 1.17.753.672.004 1.125.257 1.18.506.04.182-.157.39-.46.614.002.045.004.092.004.137.18.157.3.313.36.467.377.145.737.34 1.074.623.96-.11 2.578.586 4.766 1.982a18.58 18.58 0 0 1 4.12 1.217c.28.01.558.017.836.026 2.372-.35 4.67-.08 6.804 1.55.806.097 1.53.35 2.228.64.52.213 1.047.296 1.58.346a7.93 7.93 0 0 1 2.605.698c.974.218 1.884.524 2.448 1.206.402.484.305.93-.205 1.114-.308.65-.922.678-1.84.358-.634.116-1.33-.39-1.964-.867-.878-.283-1.686-.79-2.485-1.33-.415-.31-.834-.508-1.242-.596-.32-.068-.606-.113-.798 0-.095.057-.083.09 0 .16.222.186.38.466.43.803.044.296-.004.637.013 1 .02.38.25.66.633.896.264.16.576.33 1.03.395.215.043.276.17.27.332.12.578.232 1.16.443 1.685.06.15.173.22.343.346.586.423.282.895-.25.997-.468.412-.87.69-1.35.798-.38.128-.538-.028-.666-.215a.483.483 0 0 1-.443-.247c-.467-.343-.068-.94 1.048-.685.024-.13.118-.17.213-.168-.066-.29-.104-.61.02-.912-.098-.064-.183-.145-.328-.192-.403-.128-.784-.313-1.085-.595-.572-.537-1.465-.988-2.325-1.44-.71-.036-1.24-.363-1.797-.64l-.754-.01c-.22-.073-.4.003-.534.16-.223.272-.48.227-.787.19-.35-.04-.707-.013-1.058-.018-.173.043-.343.097-.53.1-.396-.022-.783-.026-1.046.194-.218.23-.436.213-.654.128a.978.978 0 0 1-.35-.242c-.276-.057-.453-.125-.513-.208-.463-.13-.593-.26-.572-.39-.614-.148-.322-.632.076-.648.47-.02.898.07 1.358.135.386.11.863.046 1.178-.24.204-.184.28-.342.53-.48-.795-.052-1.38-.192-1.812-.464-1.16-.733-2.09-.91-2.83-.29-.197.112-.35.157-.562.076a1.063 1.063 0 0 0-.583-.028c-.42.095-.834.043-1.253-.11a4.09 4.09 0 0 1-1.84.063c-.518.272-.898.303-1.14.094a8.548 8.548 0 0 1-.646-.397c-.33-.05-.472-.132-.486-.242-.422-.046-.474-.2-.472-.368-.175-.202-.11-.356.066-.486.313-.13.638-.178.998.007.216.102.375.2.505.303.24-.028.446 0 .626.067.133-.21.51-.218.923-.195.206-.137.452-.234.768-.263-.01-.05-.018-.1-.026-.147-.414-.11-.628-.41-.834-.713-.637-.012-1.095-.28-1.55-.56-.374.032-.675-.092-.967-.267-.237.02-.5.028-.75-.036a2.55 2.55 0 0 1-1.4 0c-.31.03-.56-.002-.815-.026-.29.334-.618.394-.976.223-.197-.25-.476-.413-.83-.506-.267-.087-.35-.204-.398-.33-.327-.2-.26-.4.055-.55.236-.115.532-.136.982.086.147.055.31.093.496.107z"/> - <path d="M401.218 130.518c-.03-.054-.097-.192-.336-.054-.742-.04-1.57-.03-2.195-.398-.65-.382-1.318-.78-2.036-.752.215-.2.48-.34.788-.422.413-.11.9-.116 1.44-.028.76.123 1.428.27 1.945.465.497.186.848.418 1.002.717a.406.406 0 0 0 .043.047c.2.128.372.258.516.396.11.102.204.208.285.322a2.5 2.5 0 0 1-.715-.043 2.875 2.875 0 0 1-.74-.256z" fill="#fff"/> - <path d="M402.925 94.71l.042.223.934 4.835-3.713 3.237-.17.15.215.075 4.655 1.61.946 4.834.045.223.17-.15 3.72-3.225 4.663 1.597.217.073-.043-.223-.934-4.837 3.714-3.237.17-.15-.215-.073-4.656-1.612-.945-4.834-.046-.222-.17.15-3.724 3.227-4.66-1.6z"/> - <path d="M400.65 102.95l3.47-3.024 4.362 1.503zm8.41-1.632l3.482-3.027 4.35 1.506zm7.862-1.368l-3.47 3.024-4.363-1.502zm-8.412 1.635l-3.48 3.024-4.35-1.503zm-5.092-6.429l4.353 1.493.883 4.528zm5.622 6.464l4.36 1.503.872 4.52zm5.114 6.125l-4.354-1.49-.88-4.53zm-5.622-6.465l-4.36-1.5-.873-4.52zm3.022-7.627l.884 4.517-3.482 3.027zm-2.79 8.101l.88 4.53-3.477 3.016zm-2.746 7.494l-.884-4.518 3.48-3.026zm2.789-8.101l-.88-4.53 3.478-3.014z" fill="#f7db17"/> - </g> -</svg> diff --git a/img/flags/4x3/ht.svg b/img/flags/4x3/ht.svg deleted file mode 100644 index 4cee314..0000000 --- a/img/flags/4x3/ht.svg +++ /dev/null @@ -1,128 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" height="480" width="640" viewBox="0 0 640 480"> - <path fill="#d21034" d="M0 0h640v480H0z"/> - <path fill="#00209f" d="M0 0h640v240H0z"/> - <g fill="#f1b517" stroke="#000" stroke-width=".183"> - <path fill="#fff" d="M244.286 179.654h151.428V300.2H244.286z" stroke="none"/> - <path d="M350.475 266.826l-30.902.897-30.764.35s-15.806 5.845-22.266 7.157c-6.442 1.308-5.605 3.424-10.59 4.538-3.992.892-4.453 1.174-6.796 1.328-1.417.093-3.163 1.183-4.87 2.385v16.72h151.425v-15.902c-1.64-.895-3.205-1.51-4.806-2.054-2.224-.757-3.724-1.584-7.716-2.476-4.984-1.114-4.147-3.23-10.588-4.538-6.46-1.312-22.127-8.404-22.127-8.404z" fill="#016a16" stroke="#016a16" stroke-width=".293"/> - <g transform="translate(-80) scale(1.6)"> - <g id="a"> - <path d="M244.53 143.512l1.396-.033 2.555 10.748-.544 3.386-3.407-14.102z"/> - <path d="M243.064 136.346l.954 8.284 1.022-.066-1.976-8.218z" fill="#fff"/> - <path d="M245.722 154.59l-4.293-11.54 1.6-.098 5.01 14.102-2.318-2.465z"/> - <path d="M239.42 136.477l1.77 8.02h1.432l-3.203-8.02z" fill="#fff"/> - <path d="M241.906 150.546l-2.52-5.424 1.09-.23 4.6 9.007-3.17-3.354z"/> - <path d="M236.08 138.778l2.794 7.626h1.43l-4.224-7.626z" fill="#fff"/> - <path d="M242.25 151.364l-11.437-12.484c-3.57 2.828-2.908 8.02-2.908 8.02l12.957 10.167 1.387-5.703z" fill="#0a328c"/> - <path d="M248.86 158.235l-8.482-8.594c-3.587.126-.74 5.48-.56 6.153l9.043 7.734v-5.292z" fill="#d20014"/> - <path d="M248.14 156.757l-17.54-18.78-.685.483 18.56 20.622-.336-2.325zm-18.554-19.985l-.385-.446.04-.89-3.62-2.304 1.617 3.64 1.232.223.384.446.732-.668z"/> - <path d="M227.738 138.11c.616-.743 1.348-1.486 2.657-2.192l1 1.45-2.155 1.82-1.502-1.078z"/> - <path d="M225.81 141.278l.59 1.026c.363-.135 4.03-3.457 4.03-3.457l2.632-.08.756-.838c-1.932-2.08-3.752.296-3.752.296l-4.255 3.052z" fill="#0a328c" stroke="#0a328c"/> - <path d="M227.91 143.007c.14-.918 1.877-3.214 2.13-3.295 1.302.39 2.514 1.14 3.834-1.837-1.148 1.46-3.47-.027-3.47-.027l-1.01.838.03.405-3.053 2.837 1.54 1.08z" fill="#d20014" stroke="#d20014"/> - <g> - <path d="M237.252 154.672l-14.367-11.41c-2.46 2.502-.415 10.23-.415 10.23l14.043 7.608.74-6.428z" fill="#0a328c"/> - <path d="M249.166 163.917l-11.818-9.467c-4.036.566-.864 6.506-.623 7.16l12.48 6.77-.04-4.463z" fill="#d20014"/> - <path d="M248.697 162.005l-25.554-19.182-.587.59 26.837 20.956-.696-2.365zm-26.769-20.198l-.46-.374-.122-.885-3.98-1.662 2.25 3.314 1.253.014.458.374.6-.78z"/> - <path d="M220.35 143.433c.472-.835 1.06-1.69 2.22-2.603l1.247 1.26-1.795 2.152-1.673-.81z"/> - <path d="M218.925 146.64l.16 1.06c.337-.187 3.56-3.725 3.56-3.725l2.586-.477.528-.833c-1.797-2.114-3.713.698-3.713.698l-3.12 3.278z" fill="#0a328c" stroke="#0a328c"/> - <path d="M220.97 148.545c-.122-.982 1.22-3.863 1.456-3.98 1.547.46 2.894 1.152 3.462-2.07-.897 1.614-3.46.363-3.46.363l-.86.98.12.53-2.61 3.37 1.893.807z" fill="#d20014" stroke="#d20014"/> - </g> - <g> - <path d="M236.224 161.65c-.19-.045-18.517-10.44-18.517-10.44-1.334 2.25-.128 5.52.457 6.028.034 1.5-.602 2.306.707 5.44.387 2.035 1.33 3.912 2.7 5.026 1.672 6.417 8.223 6.848 10.747 1.624l3.907-7.677z" fill="#0a328c"/> - <path d="M248.352 168.512l-12.548-7.355c-4.036.567.085 8.056.326 8.71l12.116 4.304.106-5.658z" fill="#d20014"/> - <path d="M246.243 165.846l-28.35-15.09-.484.673 29.904 16.646-1.07-2.23zm-29.715-15.909l-.514-.3-.265-.856-4.2-1.04 2.757 2.935 1.24-.177.515.3.466-.86z"/> - <path d="M215.232 151.782c.332-.896.773-1.828 1.772-2.907l1.436 1.056-1.425 2.4-1.783-.548z"/> - <path d="M214.1 155.18l.593 1.168c.307-.232 3.004-4.578 3.004-4.578l2.492-.82.468-1.014c-2.002-1.85-3.498 1.342-3.498 1.342l-3.06 3.903z" fill="#0a328c" stroke="#0a328c"/> - <path d="M216.772 156.836c-.2-1 .484-4.197.7-4.345 1.56.466 2.863.598 3.223-2.62-.907 1.528-3.328.952-3.328.952l-.71 1.085.15.38-2.06 3.95 2.025.6z" fill="#d20014" stroke="#d20014"/> - </g> - </g> - <use height="100%" width="100%" xlink:href="#a" transform="matrix(-1 0 0 1 499.86 0)"/> - </g> - <g transform="translate(-80) scale(1.6)"> - <path d="M248.757 125.603l-.465 9.07h2.9l-.425-8.992 3.023-.423-.335-3.582-7.51.29.04 3.253 2.772.385z" fill="#016a16" stroke="#016a16"/> - <g id="b" fill="#016a16"> - <path d="M249.817 121.898c-7.764-7.77-13.878-3.98-15.334-2.902.963.187 1.826-.412 2.273-.48-.28.353-.865 1.23-.865 1.23s2.4-1.135 2.67-1.03c-.347.275-.728.935-.728.935.178.07 1.528-1.056 1.795-1.076-.41.466-.54 1.528-.54 1.528l1.17-.545c.305.216-.084.63.18.61 1.945-.16 4.678 1.776 5.054 2.37"/> - <path d="M247.895 123.32c-.81-1.853-15.588-5.004-18.56.245 1.164.293 2.276-.976 2.276-.976l-.1 1.17 1.972-1.512-.708 1.56 1.568-1.268-.05 1.27 1.92-2.1-.252 1.22 1.72-.73-.203 1.023"/> - <path d="M247.238 123.614c-3.793-2.537-9.66-.83-9.66-.83-3.74 2.1-5.736 1.72-6.22 5.61.355-.145 1.366-1.365 1.366-1.365l.76 1.512.25-2.147.608 1.66.91-2.733.203 1.854 1.416-1.854.658.536.607-1.415.556.927s.962-.585 1.52-.244l1.06-1.22.253.88.91-1.074.355.78.91-.83-.05.586 3.135.05"/> - <path d="M246.38 124.053c-2.643-.05-10.226 2.812-12.188 5.806a13.29 13.29 0 0 1 1.263-.636l.387 1.203.473-1.203.1.927c.29-.723.618-.805 1.164-.048l.2-1.122.305 1.073.505-1.17s.318 1.27.506 1.22c0 0 .838-2.195 1.214-2.294l.1 1.365.506-1.366.456 1.024.1-1.464.506 1.122s.266-1.103.658-1.317l.758.683 3.378-2.427"/> - <path d="M246.888 124.678c-3.52 1.35-6.67 6.18-6.43 8.226 1.565-1.94 1.23-1.674 1.928.56 0 0 .264-1.955.53-2.187l.46 1.446.17-1.892.47.023-.12-1.187.698.535c-.163-.677-.338-.906.386-1.488 0 0-.917.117-.193-1.535l.675.65s-.12-.72.12-1l2.485-.86"/> - <path d="M247.23 125.04l-1.33 2.534.68.197-1.534 1.153 1.296-.132s-1.978.725-2.217 2.666l2.013-.888s-1.706 1.744-1.945 2.797l1.16-1.02s-1.125 1.217-.955 3.06l.853-.954c-.204 2.238-.136 2.436.888 4.147 0 0-.273-2.633.034-2.962l2.25 2.337-1.26-3.324s1.397 2.106 2.25 1.91l-1.774-2.7 1.74 1.415-1.978-2.96 1.84.558s-1.33-1.677-1.227-2.73l1.262 1.382s-.477-1.58-.34-2.04l.647.132-1.262-1.448.853-.165-.102-.953.615-.197-.034-1.053m-1.093-.005c-2.184 2.96-1.058 7.535-2.354 9.87"/> - </g> - <use height="100%" width="100%" xlink:href="#b" transform="matrix(-1 0 0 1 499.86 0)"/> - <path d="M250.945 166.535s1.19-9.945 1.186-14.225c0-3.37-.813-10.835-.813-10.835H247.9s-.52 7.43-.442 10.79c.1 4.28 1.186 14.27 1.186 14.27h2.3z"/> - <path d="M247.674 141.953h3.96l-.465-2.666h-2.87l-.626 2.666z"/> - <path d="M247.927 139.816h3.54l-.668-2.666h-2.18l-.693 2.666z"/> - <path d="M248.155 137.655h2.95l-.5-2.666h-1.876l-.575 2.665z"/> - <path d="M250.71 134.673h-2.064l-.21.964h2.442l-.17-.964zm.422 29.694h-2.62m2.763-1.947h-2.94m3.329-1.976h-3.727m3.919-2.154h-3.9m3.927-2.15h-4.102m4.262-1.97h-4.45m4.46-1.79h-4.65m4.622-2.16h-4.65m4.495-2.136h-4.495m4.289-2.17H247.6m3.867-1.959h-3.672"/> - <path d="M249.91 119.044c-.69-.324-2.246-1.313-1.784-1.903l.713-1.213c1.01-2.277-.02-1.395-.127-2.106-.103-.68 3.865-.148 3.924 1.398.016.426-.295.176-.252 2.61l-.755 1.46c-.565.052-1.234-.015-1.72-.244z" fill="#0a328c" stroke="#0a328c"/> - <path d="M250.392 124.934l-.986-.83.273-7.105.964.282-.252 7.652z"/> - <path d="M251.672 119.246c.62-.362 1.024-1.443.65-2.085-1.016-1.286-1.673-.755-3.378-1.335-.34.362-1.055 1.06-.902 1.58 2.242 1.055 1.372.155 2.114.287.4.07.658.545 1.516 1.554z" fill="#d20014" stroke="#d20014"/> - </g> - <g transform="translate(-80) scale(1.6)"> - <use height="100%" width="100%" xlink:href="#c" transform="matrix(1 0 0 -1 -.002 320.37)"/> - <path d="M238.358 161.75c0 1.3-.815 2.353-1.818 2.353-1.004 0-1.82-1.054-1.82-2.353v-1.276h3.638v1.276z" fill="#016a16" stroke="#fff" stroke-width=".181" stroke-linecap="round"/> - <ellipse cx="236.539" cy="160.063" rx="1.806" ry=".898" fill="#fff" stroke="none"/> - <path d="M236.126 161.075l-.31-3.297h1.382l-.226 3.297h-.846z" fill="#016a16" stroke="#f1b517"/> - <path id="c" d="M238.538 160.118c-.265.493-1.06.852-2 .852-.937 0-1.727-.36-1.992-.852a.756.756 0 0 0-.1.36c0 .668.938 1.21 2.093 1.21 1.154 0 2.09-.542 2.09-1.21a.748.748 0 0 0-.092-.36z" fill="#016a16" stroke="#fff" stroke-width=".237" stroke-linecap="round"/> - <g id="d"> - <path d="M246.035 172.786l-7.06-2.19-3.076-5.254-10.894-.535.378 3.94 9.28 1.777.882 1.58 10.666 2.97-.177-2.288z"/> - <path d="M238.662 174.254l-11.149-16.398-.547.41 11.06 16.468.636-.48z" fill="#503200"/> - <path d="M228.55 158.5l-1.19-1.992c-.222-.368-.56-.49-1.058-.228-.484.255-.437.76-.24 1.123l1.1 1.852 1.39-.755z" fill="#fff"/> - <path d="M239.986 164.127l-22.496-2.286-.547 3.272 22.387 2.25.656-3.235z"/> - <path d="M217.09 160.997l-.584 4.538h.948l.656-4.15-1.02-.388zm3.754.738l-.255 4.08.582.07.474-3.622-.802-.528zm15.241 1.759l-.547 3.834 1.094-.035.437-3.8h-.985zm3.351.106l-.78 4.433 1.24.18.353-2.332c.1.47.53.825 1.045.825.59 0 1.07-.464 1.07-1.032 0-.568-.48-1.026-1.07-1.026-.41 0-.78.24-.94.687l.23-1.662-1.15-.073zm-8.119.72l-3.094 3.48.36.424 3.972-2.71-1.238-1.195zm-7.193 8.68l3.094-3.482-.36-.423-3.972 2.71 1.238 1.195zm8.096-.87l-3.764-2.91-.387.272 2.964 3.756 1.186-1.12zm-9.282-6.717l3.816 2.81.464-.348-2.99-3.755-1.29 1.293zm4.152-2.319l.365 4.573.513-.022 1.207-4.452-2.085-.1zm1.25 11.096l-.364-4.574-.565-.053-.69 4.626h1.62zm5.06-6.164l-4.794.51-.073.457 4.85.634.018-1.6zm-11.407 1.584l4.68-.74.1-.365-4.842-.54.063 1.644z"/> - <ellipse cx="227.693" cy="168.548" rx="1.27" ry="1.225"/> - <path d="M234.438 168.548c0 3.592-3.022 6.507-6.745 6.507-3.723 0-6.745-2.915-6.745-6.507 0-3.592 3.022-6.507 6.745-6.507 3.723 0 6.745 2.916 6.745 6.508zm-1.347 0c0 2.874-2.418 5.207-5.397 5.207-2.98 0-5.398-2.333-5.398-5.207 0-2.874 2.42-5.207 5.398-5.207 2.98 0 5.398 2.334 5.398 5.208z" fill-rule="evenodd" stroke-linecap="round"/> - <path d="M223.48 165.264l-1.057-.796m8.611.025l.902-.92m1.031 9.127l-1.11-.87m-8.377 1.866l.954-1.02M246.196 162.122l1.155 5.886-.94.497-1.015-6.3.8-.083z"/> - <path d="M245.592 161.364c-.535-.224-1.232.155-2.374-1.292-1.878 1.723-.107 1.98.18 3.686.53.218.857-1.323 2.3-1.48.18-.02 2.3-.204 2.3-.204l-.533-.726s-1.474.04-1.873.016z" fill="#fff"/> - <path d="M246.36 162.518l-.215-1.756c-.232-.62-1-.087-1 .275l.197 1.62 1.017-.14z" fill="#fff"/> - <path d="M240.765 167.372l.02 1.637c-.537.182-.455.584-.438 1.167l.02 4.772c-.19.315-.78.33-1.055.578-.277.248-.242.73 1.02 1.047l.975.035c1.486-.325 1.793-.818 1.048-1.095-.397-.148-.92-.324-1.117-.557l.033-1.137.965.036c.26 0 .753-.652.77-1.185l.005-2.47c-.035-1.4-1.085-1.558-1.38-1.54l.02-1.29-.885.002zm1.63 2.73c.018-.4-.555-.757-.786-.767-.23-.01-.735.467-.752.867v1c.034.367.327 1.61.915 1.7.28.044.64-.4.64-.766l-.017-2.034z" fill-rule="evenodd"/> - <path d="M234.275 172.328c-.636-.257-.63 1.172-.63 1.172l1.002.01c.44.2.792.843.512 1.16-.232.26-2.178-.442-2.31-.038.345 1.94 2.918 2.688 3.85 1.84.91-.832 1.14-3.05-1.818-3.63l-.607-.514zm.595.528l-.292.64" fill="#fff"/> - <path d="M214.943 173.055l-.963-4.05m2.132 3.817l-1.48-3.153m4.026 2.324l-3.337-1.792m4.782 1.427l-6.192-2.688"/> - <path d="M210.215 166.013s-2.254-.036-2.656.122c-.163.064.566.825.415 1.115-.563 1.083-4.394.934-4.697.698-.52-.405 3.568-.753 3.595-1.03.03-.315-.605-1.145-.506-1.654.128-.66 1.788-.907 1.788-.907l2.06 1.656z" fill="#d20014" stroke="#d20014"/> - <path d="M213.233 168.05l-5.102-4.222s-.224-.238-.412-.033c-.184.2.07.43.07.43l5.262 4.35.183-.525z" fill="#503200"/> - <path d="M218.146 172.217c-.09-.087-4.155-3.608-4.155-3.608l-.27-1.03s-.628.426-.858.646c-.23.22-.587.82-.587.82l1.138.05 3.595 3.295 1.138-.173z"/> - <g> - <ellipse cx="232.534" cy="177.056" rx=".74" ry=".715"/> - <ellipse cx="230.641" cy="175.716" rx=".74" ry=".715"/> - <ellipse cx="228.091" cy="176.593" rx=".74" ry=".715"/> - <ellipse cx="224.153" cy="177.445" rx=".74" ry=".715"/> - <ellipse cx="222.487" cy="177.64" rx=".74" ry=".715"/> - <ellipse cx="220.846" cy="177.64" rx=".74" ry=".715"/> - <ellipse cx="219.18" cy="177.591" rx=".74" ry=".715"/> - <ellipse cx="219.988" cy="176.325" rx=".74" ry=".715"/> - <ellipse cx="221.604" cy="176.398" rx=".74" ry=".715"/> - <ellipse cx="223.144" cy="176.203" rx=".74" ry=".715"/> - <ellipse cx="222.361" cy="174.961" rx=".74" ry=".715"/> - <ellipse cx="220.846" cy="174.937" rx=".74" ry=".715"/> - </g> - <path d="M236.47 177.99c0-.315-.77-.18-.77-.55 0-.41 1.174-.11 1.336.253.66-.596.944-.16 1.348.02.575-.855 1.287-.823 1.98-.197.402-.443 1.41-.297 1.758.197.664-.66 1.255-.497 1.715-.02.186-.346.458-.27.654-.02.355-.628 1.243-.44 1.617-.024.332-.367.673-.08 1.114.19.298-.28.78-.228.78.05 0 .288-.63.187-.63.473 0 .256.46.127.46.45 0 .255-.68.35-.786-.056-.23.44-1.062.27-1.144-.138-.276.334-.897.435-1.246-.06-.286.234-.63.267-.787.03-.517.557-1.388.443-1.688-.17l-.295.013c-.508.69-1.302.37-1.52-.01-.853.615-1.362.42-1.838.02-.548.666-1.38.62-1.573 0-.368.267-1.137.33-1.137.017 0-.3.653-.192.653-.47zm1.655.15c0 .144-.195.26-.436.26-.24 0-.436-.116-.436-.26 0-.142.195-.26.435-.26s.435.118.435.26zm1.82-.217c0 .172-.235.312-.524.312-.288 0-.523-.14-.523-.312 0-.173.235-.312.524-.312.29 0 .525.14.525.313zm3.575.197c0 .175-.212.316-.474.316s-.474-.14-.474-.316c0-.174.212-.316.474-.316s.474.142.474.316zm-1.904-.083c0 .22-.207.4-.463.4s-.464-.18-.464-.4c0-.22.207-.4.463-.4s.463.18.463.4zm4.06.01c0 .198-.186.358-.414.358-.23 0-.415-.16-.415-.358 0-.197.186-.357.415-.357.228 0 .414.16.414.357zm-1.244.083c0 .128-.12.23-.267.23-.148 0-.268-.102-.268-.23 0-.127.12-.23.268-.23.147 0 .267.103.267.23zm2.422.094c0 .183-.135.33-.302.33-.166 0-.3-.147-.3-.33 0-.183.134-.332.3-.332.167 0 .302.15.302.332z" fill-rule="evenodd"/> - </g> - <use height="100%" width="100%" xlink:href="#d" transform="matrix(-1 0 0 1 499.86 0)"/> - <g stroke-width=".231"> - <path d="M249.837 165.718c-2.512 0-4.55.944-4.55 2.102 0 .2.057.39.17.572.542.63 2.306 1.087 4.397 1.087 1.957 0 3.625-.403 4.277-.97.165-.217.257-.447.257-.69 0-1.158-2.038-2.102-4.55-2.102z" fill="#0a328c" stroke="#0a328c"/> - <path d="M254.427 167.98v7.06c0 .827-2.048 1.498-4.572 1.498s-4.573-.67-4.573-1.5v-7.057c0 .83 2.05 1.5 4.573 1.5 2.524 0 4.572-.67 4.572-1.5z" stroke-width=".187"/> - <path d="M245.282 167.982v1.082l2.22 6.845 1.772-5.265 1.946 5.465 1.425-5.16 1.783 3.47v-1.92l-1.656-3.363a8.25 8.25 0 0 1-.593.134l-1.03 3.813-1.446-3.604a14.522 14.522 0 0 1-.715-.024l-1.454 3.627-1.66-4.367c-.377-.217-.594-.466-.594-.734z" fill="#d20014" stroke="#d20014" stroke-width=".183"/> - <path d="M254.427 173.72v1.32c0 .826-2.048 1.498-4.572 1.498s-4.573-.672-4.573-1.5v-1.317c0 .83 2.05 1.5 4.573 1.5 2.524 0 4.572-.67 4.572-1.5z" fill="#0a328c" stroke="#0a328c" stroke-width=".187"/> - <path d="M251.737 175.085c-.372.055-.77.097-1.185.118l.01 1.317c.418-.02.815-.062 1.187-.118l-.013-1.317zm-4.869-.23l-.012 1.312c.353.1.75.185 1.186.246v-1.317a8.907 8.907 0 0 1-1.174-.24zm-1.586-1.132v1.317c0 .246.185.474.506.68l.023-1.302c-.335-.21-.528-.443-.528-.695zm9.146.14l-.023.006c-.08.266-.38.515-.83.722l.005 1.312c.53-.245.848-.54.848-.863v-1.177z" stroke-width=".187"/> - <path d="M254.427 168.027v7.012c0 .827-2.048 1.498-4.572 1.498s-4.573-.67-4.573-1.5v-7.01" fill="none" stroke-width=".187"/> - <path d="M253.392 167.52c0 .5-1.584.907-3.537.907-1.954 0-3.538-.406-3.538-.907 0-.5 1.584-.907 3.538-.907 1.953 0 3.537.406 3.537.907z" fill="#fff" stroke="#fff" stroke-width=".192"/> - <path d="M248.698 168.19l.157 1.25c.307.022.626.038.953.04l.232-1.29h-1.342zm4.102-.303l-.91.247.057 1.177c.31-.052.602-.116.866-.19l-.012-1.233zm-5.403-1.907c-.26.075-.5.164-.72.262l.127.945.58-.185.013-1.023zm2.44-.374c-.122 0-.24.007-.36.01l.197 1.184.605-.012.237-1.154a9.727 9.727 0 0 0-.68-.028zm2.673.418l-.122 1.034.69.244.077-1.015a5.26 5.26 0 0 0-.645-.263z"/> - <path d="M245.993 168.8l.184-1.288-.935-.506.028 1.465.723.33zm8.403-.278l.042-1.288-.876.262.834 1.026z" stroke-width=".183"/> - </g> - <path d="M263.686 160.03c.83-.116 2.062 1.023 2.136 2.432.06 1.118-1.69 1.06-1.69 1.06-.09.458-1.055.88-1.84.916-.763.033.207-1.432.207-1.432-.476-1.26.147-2.748.147-2.748l1.04-.23z"/> - <path d="M262.5 162.948l.8-.03s.06.415.208.43c.157.018.326-.4.326-.4l1.217-.03"/> - <path d="M264.13 160.86c.68-.492.085-1.48-.385-1.49l-1.098.03c-.517.01-1.392.572-1.276 1.058.103.424.388.618.832.544.202-.033.626-.563.83-.572.276-.013.88.588 1.1.43z" fill="#d20014" stroke="#f1b517"/> - <path d="M214.242 174.855c-.617.078-.73.788-.5 1.44-2.686.756-5.086 1.74-7.455 2.406-.095-.473 1.174-1.844 1.174-1.844.337.162.588.93.588.93.084-1.578 1.64-2.628 1.64-2.628-.925-.122-3.733.967-4.07 1.412 0 0 1.088-.12 1.256 0 0 0-2.14 2.312-2.237 3 .333.75 4.027 1.31 4.027 1.31-.058.196-1.087.932-1.087.932 1.47.322 3.685-.718 4.347-1.35 0 0-1.728-.144-3.074-1.235 0 0 .277.68.11 1.004 0 0-2.1-.604-2.318-.952.006-.03 4.966-1.315 7.368-2 .088.428.565 1.238 1.138 1.047.374-.125.256-.866.117-1.39a.77.77 0 0 0 .505.185c.422 0 .767-.327.767-.735 0-.407-.345-.74-.767-.74a.755.755 0 0 0-.72.505c-.096-.453-.345-1.354-.808-1.295zm1.89 1.528c0 .19-.162.345-.36.345a.352.352 0 0 1-.357-.345c0-.19.16-.345.358-.345.197 0 .358.154.358.345z" fill-rule="evenodd"/> - <g> - <path d="M293.068 177.884c.183-.367-.162-2.212-.162-2.212-.373.042-.882.68-.882.68.48-1.51-.865-4.036-.865-4.036.91.19 3.944 3.128 4.102 3.657 0 0-1.33-.474-1.53-.415.217 1.506 1.258 2.205 1.65 2.988 0 0-1.726.38-1.553 1.822l-1.128.02c-.39-.48.152-1.275.152-1.275l-7.74-3.24c-.498-.21-1.62-.72-1.45-1.32.168-.603 2.015.252 2.47.4l6.934 2.93z"/> - <path d="M285.635 176.54l.91-1.672c.326-.44-.346-.92-.823-.356l-1.02 1.527c-.454.836.5 1.066.933.5z"/> - </g> - </g> - <g fill="#fff" stroke-width=".293"> - <path d="M290.187 288.586l-.1-2.92-3.532.195-.2 3.18 3.832-.454z"/> - <path d="M264.38 292.678l-4.722-2.648c19.47 1.784 23.446-5.006 28.15-5.37 2.893-.226 3.344 3.203-2.26 1.572l1.45 3.586s-13.822 7.776-27.407 4.564l4.79-1.704zm84.818-4.092l.1-2.92 4.32.1.202 3.18-4.622-.36z"/> - <path d="M375.902 291.963l4.443-2.424c-22.302.663-17.224-3.664-28.383-4.878-2.883-.313-5.05 3.393 2.26 1.572l-1.448 3.586 3.507.003c7.598 5.003 17.85 5.45 24.643 3.843l-5.02-1.703z"/> - <path d="M285.47 286.253v5.047s12.364 4.587 34.43 4.587c22.16 0 34.43-4.587 34.43-4.587v-5.047s-9.36 4.312-34.43 4.312c-24.978 0-34.43-4.312-34.43-4.312z"/> - </g> - <path d="M287.317 291.328l1.09-3.695.508.14-.963 3.258 1.887.52-.13.436-2.393-.658zm3.578-1.625l.06-.726.164-.622.54.13-.164.624-.31.664-.29-.07zm5.32-.25l.517.102-.46 2.175c-.08.38-.187.67-.322.876a1.158 1.158 0 0 1-.596.448c-.26.094-.58.104-.955.03-.367-.07-.653-.19-.86-.358a1.056 1.056 0 0 1-.386-.625c-.05-.25-.034-.574.05-.972l.46-2.176.515.102-.46 2.172c-.068.327-.088.575-.057.742a.7.7 0 0 0 .25.422c.135.114.313.193.535.236.38.075.668.045.865-.09.196-.134.344-.437.444-.91l.458-2.172zm.582 4.017l.642-3.792.533.085 1.56 3.302.504-2.977.5.08-.644 3.79-.534-.084-1.56-3.305-.505 2.98-.498-.08zm4.065.614l.547-3.806.52.07-.546 3.806-.522-.07zm1.5-1.68c.075-.632.31-1.11.706-1.428.395-.32.87-.45 1.43-.388.364.04.683.16.957.362.273.2.47.46.587.778.118.318.155.668.11 1.05a2.212 2.212 0 0 1-.367 1.012 1.657 1.657 0 0 1-.77.618 2.046 2.046 0 0 1-.99.13 1.923 1.923 0 0 1-.966-.37 1.69 1.69 0 0 1-.584-.785 2.097 2.097 0 0 1-.114-.978zm.54.07c-.055.46.03.835.255 1.128.225.293.53.46.918.504.394.043.734-.055 1.02-.294.286-.24.46-.605.517-1.096.037-.31.014-.588-.067-.832-.08-.243-.22-.44-.414-.59a1.33 1.33 0 0 0-.682-.27c-.37-.04-.704.047-1 .263-.297.216-.48.61-.547 1.186zm3.693 2.265l.324-3.83.538.042 1.83 3.17.255-3.006.503.04-.324 3.83-.54-.043-1.83-3.174-.254 3.008-.503-.04zm5.582.387l.174-3.838 2.685.112-.02.453-2.158-.09-.053 1.187 1.867.08-.02.452-1.867-.08-.08 1.745-.525-.023zm2.934.125l1.607-3.813.568.01 1.552 3.872-.6-.01-.44-1.173-1.666-.032-.46 1.155-.56-.01zm1.182-1.556l1.35.025-.395-1.07a9.822 9.822 0 0 1-.266-.802c-.055.245-.13.488-.23.73l-.458 1.118zm3.06 1.617l.01-3.842.526.002-.008 3.842h-.527zm2.47-.01l-.05-3.39-1.313.02-.008-.454 3.156-.045.007.454-1.317.017.05 3.388-.527.008zm3.906-.093l-.186-3.838.526-.024.165 3.385 1.96-.088.02.453-2.485.112zm2.68-.117l1.242-3.937.567-.04 1.908 3.72-.598.043-.55-1.13-1.66.114-.35 1.19-.56.04zm1.03-1.652l1.346-.092-.493-1.033c-.15-.314-.262-.572-.34-.775a4.75 4.75 0 0 1-.16.746l-.352 1.154zm4.675 1.213l-.437-3.818 2.67-.285.052.45-2.147.23.136 1.182 1.858-.198.052.45-1.858.2.198 1.734-.524.056zm2.92-2.192c-.094-.63.01-1.15.307-1.554.3-.406.726-.647 1.282-.723.364-.05.704-.01 1.02.116.318.126.576.33.773.61.198.278.325.607.38.988.06.386.03.742-.088 1.068-.116.327-.31.59-.583.786a2.02 2.02 0 0 1-.923.367c-.37.05-.714.008-1.032-.124a1.736 1.736 0 0 1-.77-.616 2.124 2.124 0 0 1-.365-.92zm.54-.065c.067.458.248.802.542 1.03.295.23.635.317 1.02.264.393-.056.696-.233.91-.534.215-.302.286-.697.213-1.187a1.922 1.922 0 0 0-.282-.79 1.25 1.25 0 0 0-.556-.47 1.348 1.348 0 0 0-.73-.094c-.37.05-.67.217-.9.498-.23.28-.303.708-.218 1.28zm4.18 1.29l-.71-3.78 1.737-.305c.35-.06.62-.074.815-.038.195.036.363.13.504.284.14.153.23.333.27.54.05.27.002.51-.143.727-.146.215-.402.38-.768.496a1.4 1.4 0 0 1 .347.133c.177.107.35.25.525.427l.875.91-.652.114-.667-.696a7.436 7.436 0 0 0-.472-.455 1.198 1.198 0 0 0-.31-.207.818.818 0 0 0-.256-.06c-.06 0-.16.01-.292.034l-.602.105.316 1.68-.518.09zm.122-2.203l1.114-.195a1.74 1.74 0 0 0 .542-.17.588.588 0 0 0 .302-.636.573.573 0 0 0-.284-.405c-.156-.09-.38-.112-.67-.06l-1.24.216.235 1.252zm6.29-.42l.543.016c-.013.43-.134.783-.364 1.058-.23.275-.548.456-.952.544-.42.09-.78.082-1.08-.025a1.63 1.63 0 0 1-.765-.585 2.57 2.57 0 0 1-.44-.96c-.09-.39-.093-.747-.006-1.072.087-.324.256-.592.506-.805.25-.213.547-.357.89-.43.388-.085.737-.06 1.047.073.31.133.557.36.74.685l-.478.226c-.154-.254-.33-.424-.53-.51a1.098 1.098 0 0 0-.69-.047c-.3.064-.533.187-.702.368a1.102 1.102 0 0 0-.292.648c-.027.25-.01.5.047.747a2.3 2.3 0 0 0 .34.803c.15.217.342.362.572.435.23.075.464.086.7.035a1.14 1.14 0 0 0 .676-.4c.162-.203.242-.47.24-.8zm1.463 1.046l-1.07-3.7 2.773-.748.127.437-2.265.61.328 1.134 2.12-.57.127.433-2.122.572.365 1.26 2.354-.635.127.437-2.86.77z" fill="#000" stroke="none"/> - </g> -</svg> diff --git a/img/flags/4x3/hu.svg b/img/flags/4x3/hu.svg deleted file mode 100644 index cb7e5ee..0000000 --- a/img/flags/4x3/hu.svg +++ /dev/null @@ -1,7 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" height="480" width="640" viewBox="0 0 640 480"> - <g fill-rule="evenodd"> - <path fill="#fff" d="M640.006 479.994H0V0h640.006z"/> - <path fill="#388d00" d="M640.006 479.994H0V319.996h640.006z"/> - <path fill="#d43516" d="M640.006 160.127H0V.13h640.006z"/> - </g> -</svg> diff --git a/img/flags/4x3/id.svg b/img/flags/4x3/id.svg deleted file mode 100644 index 4df97ba..0000000 --- a/img/flags/4x3/id.svg +++ /dev/null @@ -1,6 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" height="480" width="640" viewBox="0 0 640 480"> - <g fill-rule="evenodd" stroke-width="1pt"> - <path fill="#e70011" d="M0 0h639.958v248.947H0z"/> - <path fill="#fff" d="M0 240h639.958v240H0z"/> - </g> -</svg> diff --git a/img/flags/4x3/ie.svg b/img/flags/4x3/ie.svg deleted file mode 100644 index b295b50..0000000 --- a/img/flags/4x3/ie.svg +++ /dev/null @@ -1,7 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" height="480" width="640" viewBox="0 0 640 480"> - <g fill-rule="evenodd" stroke-width="1pt"> - <path fill="#fff" d="M0 0h639.995v480.004H0z"/> - <path fill="#009A49" d="M0 0h213.334v480.004H0z"/> - <path fill="#FF7900" d="M426.668 0h213.334v480.004H426.668z"/> - </g> -</svg> diff --git a/img/flags/4x3/il.svg b/img/flags/4x3/il.svg deleted file mode 100644 index b22f792..0000000 --- a/img/flags/4x3/il.svg +++ /dev/null @@ -1,14 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" height="480" width="640" viewBox="0 0 640 480"> - <defs> - <clipPath id="a"> - <path fill-opacity=".67" d="M-87.62 0h682.67v512H-87.62z"/> - </clipPath> - </defs> - <g fill-rule="evenodd" clip-path="url(#a)" transform="translate(82.14) scale(.94)"> - <path fill="#fff" d="M619.43 512H-112V0h731.43z"/> - <path fill="#00c" d="M619.43 115.23H-112V48.003h731.43zm0 350.45H-112v-67.227h731.43zm-483-274.9l110.12 191.54 112.49-190.75-222.61-.79z"/> - <path d="M225.75 317.81l20.95 35.506 21.4-35.36-42.35-.145z" fill="#fff"/> - <path d="M136.02 320.58l110.13-191.54 112.48 190.75-222.61.79z" fill="#00c"/> - <path d="M225.75 191.61l20.95-35.506 21.4 35.36-42.35.145zm-43.78 79.5l-21.64 35.982 40.9-.127-19.26-35.855zm-21.27-66.5l41.225.29-19.834 36.26-21.39-36.55zm151.24 66.91l20.83 35.576-41.71-.533 20.88-35.043zm20.45-66.91l-41.225.29L311 241.16l21.39-36.55zm-114.27-.04l-28.394 51.515 28.8 50.297 52.73 1.217 32.044-51.515-29.61-51.92-55.572.405z" fill="#fff"/> - </g> -</svg> diff --git a/img/flags/4x3/im.svg b/img/flags/4x3/im.svg deleted file mode 100644 index 5864dc0..0000000 --- a/img/flags/4x3/im.svg +++ /dev/null @@ -1,36 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" height="480" width="640" viewBox="0 0 640 480"> - <defs> - <clipPath id="a"> - <path fill-opacity=".67" d="M-77.62 0h682.67v512H-77.62z"/> - </clipPath> - </defs> - <g clip-path="url(#a)" transform="translate(72.77) scale(.94)"> - <path fill-rule="evenodd" fill="#ba0000" d="M629.43 512H-102V0h731.43z"/> - <path d="M281.02 376.01c.2-.605.603-6.844.402-6.844s-9.46-10.867-9.258-10.867c.202 0 11.874 2.616 11.874 2.213 0-.402 4.63-11.47 4.63-11.672 0-.2 5.634 13.485 5.634 13.485l11.47 5.032-8.05 6.64s1.813 12.88 1.813 13.083c0 .2-8.05-7.65-8.05-7.65l-8.857 1.008s-1.206-4.025-1.608-4.427z" fill-rule="evenodd" fill-opacity=".988" stroke="#000" stroke-width="2.204" fill="#ffef00"/> - <path d="M218.66 206.89c-7.647 3.938-36.996 37.486-41.02 42.718-3.373 7.596-9.97 17.205-16.763 23.39-7.252 5.488-11.282 12.983-10.284 20.08-.08 8.83 4.87 14.842 8.814 21.056 2.335 2.838 5.475 4.673 8.815 4.896 6.85.905 7.458 3.014 10.887 4.32 13.505 18.39 33.653 31.95 48.163 42.69 9.25 4.876 15.68 9.75 17.885 12.412 4.248 8.112 3.466 16.022 2.884 19.908-3.59 13.55-7.182 27.097-10.773 40.646-1.813 11.07 7.807 8.58 8.324 6.366 4.34-5.635 10.82-1.678 20.077-34.28 4.245-5.713 8.49-11.426 12.733-17.14 0 0 4.898-1.958 4.898-2.447 7.448-8.942 1.778-14.06-2.45-15.67-3.1-1.142-6.2-2.286-9.302-3.43 0 0-10.773-10.772-11.263-10.772-5.12-14.893-30.248-46.687-36.085-51.114-4.04-4.21-5.963-6.005-9.798-8.347-5.897-2.82-7.8-3.738-11.41-5.18-3.008-1.206-.867-4.507 1.045-6.016 19.903-10.834 35.68-22.875 54.778-35.118l2.938-1.96-6.856-39.175-31.83-11.264c-1.67 1.143-2.937 2.287-4.407 3.43z" fill-rule="evenodd" stroke="#000" stroke-width="2.636" fill="#fff"/> - <path d="M245.29 413.15c.1-.402 19.923-4.025 19.923-4.025s-2.314 7.346-2.415 7.346l-19.72 5.937 2.212-9.257z" fill-rule="evenodd" fill="#ffec00"/> - <path d="M193.64 338.51c3.824-10.163 14.438-18.21 21.568-20.43" stroke="#000" stroke-width="2.204" fill="none"/> - <path d="M244.58 413.32c1.28-.36 6.96-2.018 8.616-2.276 1.765-.414 3.523-.876 5.22-1.424 1.96-.4 3.186-.768 5.22-1.14 1.595-.607 3.17-1.024 4.874-1.422m-27.52 18.518c.167-.22 1.517-1.415 2.487-1.992 1.143-.36 5.05-2.018 6.527-2.276a53.935 53.935 0 0 0 4.662-1.424c1.75-.4 2.845-.768 4.663-1.14 1.422-.607 2.83-1.023 4.35-1.422" stroke="#000" stroke-width="2.437" fill="none"/> - <path d="M249.04 341.38h-.284c.89 0 .344-.074-.855 1.423-.425 1.15-4.08 3.7-6.83 3.7-1.327.142-3.367.284-4.696.284-.38 0-.9-.284-1.28-.284m13.665 53.517h1.422c1.476 0 2.957.263 4.27.284 1.423 0 2.846.404 4.27.404 1.436.203 3.167.137 4.653.348 1.666.057 3.004.386 4.738.386 1.398.053 2.152.286 3.7.286l-3.7-.286c1.398.053 2.152.286 3.7.286M239.08 434.74c.152-.222 1.39-1.415 2.276-1.992 1.047-.36 4.624-2.018 5.978-2.276a46.719 46.719 0 0 0 4.268-1.424c1.604-.4 2.606-.768 4.27-1.14 1.304-.607 2.592-1.024 3.984-1.422m5.874-41.216c-.805 2.337.238 2.924.67 3.933.75.977 2.666 2.466 5.693 3.415 1.167.314 2.064.622 3.415 1.14.894.082 1.334.305 1.992.568M153.13 299.55h.284c-.892 0-.357.058 1.14-1.14.923-1.032 1.695-1.5 2.56-2.56m14.436 23.97c.19 0 16.557-8.25 18.305-10.01 1.238-.9 2.176-1.846 3.68-2.866.967-.504 1.66-1.15 2.564-1.707.75-1.09 1.733-1.748 2.275-2.745 1.005-.87.574-1.815 1.39-2.864.384-1.075 1.105-2.885 1.34-3.87M221.95 308c.09.59-.26 2.402-.236 3.782-.057 1.6-2.115 6.543-4.603 8.02" stroke="#000" stroke-width="2.204" fill="none"/> - <path d="M192.55 307.82c.096 0 2.587.81 6.75 2.09 5.013 1.803 15.438 8.372 16.472 9.277 1.057.83 2.946 1.573 3.67 2.56 1.133.98 1.962 2.108 2.847 3.13 1.04 1.27 1.925 2.342 2.56 3.417 3.165 2.567 11.68 20.343 11.953 21.346.478.94 1.07 2.246 1.424 3.13.63.728 1.06 1.756 1.707 2.847.595 1.415 1.262 2.06 1.994 3.13.942.656 2.212 1.9 3.415 2.562 1.283 1.096 2.486 1.543 3.415 2.277 1.343.57 16.342 10.052 17.038 10.527 1.37 1.1 5.555 5.437 2.617 8.59-1.246 1.067-2.37 2.48-3.433 3.082-1.085 1.086-2.594 1.572-3.84 2.134-6.758 1.997-10.2 1.282-11.53 1.282h-1.423M159.42 274.29c1.92.752 1.146.197 2.875.984 1.162.51 1.927.522 3.07.94 1.21.387 4.597.997 6.223 2.63 1.194 1.078 2.105 1.99 3.416 2.776 1.55 1.07 2.67 1.545 4.592 2.347 1.622.607 3.435 1.28 5.075 1.338 1.705.1 2.114.014 3.75.014h3.984-3.985 3.984" stroke="#000" stroke-width="2.204" fill="none"/> - <path d="M158.96 293.28c4.268-.284 11.383.997 11.525.997l9.393-.142c4.934-.476 6.024-2.373 6.83-3.702 1.85-2.845 3.132-3.84 4.555-5.976 2.276-1.707 5.41 2.277 5.55 2.277 7.97 7.543 1.565 16.792 1.138 17.076-3.983 3.653-4.837 3.89-7.256 1.565-2.42-2.846-3.13-4.126-5.123-5.123-3.84-1.85-11.81-.426-11.954-.426-.142 0-4.126 1.565-4.126 1.565-1.946.712-3.18 2.42-6.546 2.988-3.415.238-4.554-.094-6.262-2.845-2.276-3.557-1.14-7.827 2.278-8.253z" fill-rule="evenodd" stroke="#000" stroke-width="2.204" fill="#ffe606"/> - <path d="M381.8 120.66c-.625.122-6.26 2.828-6.162 3.004.098.176-4.837 13.57-4.936 13.395-.1-.177-3.54-11.634-3.89-11.436-.35.197-12.267 1.587-12.443 1.686-.176.098 8.99-11.52 8.99-11.52l-1.235-12.466 9.734 3.763s10.34-7.892 10.515-7.99c.175-.1-2.722 10.765-2.722 10.765l5.218 7.226s-2.916 3.024-3.07 3.57z" fill-rule="evenodd" fill-opacity=".988" stroke="#000" stroke-width="2.204" fill="#ffef00"/> - <path d="M264.93 257.9c7.18 4.736 50.806 13.878 57.34 14.822 8.274-.783 19.883.257 28.605 3.148 8.337 3.632 16.845 3.472 22.542-.876 7.737-4.258 10.552-11.52 14.035-18.003 1.33-3.425 1.39-7.062-.052-10.082-2.57-6.415-1.028-7.98-1.57-11.607 9.41-20.784 11.356-44.992 13.608-62.905-.284-10.45.814-18.447 2.054-21.672 4.988-7.68 12.267-10.874 15.94-12.27 13.57-3.512 27.14-7.02 40.71-10.53 10.537-3.846 3.652-11.01 1.47-10.377-7.04-1.022-6.766-8.61-39.72-.7l-21.18-2.7s-4.11-3.31-4.536-3.07c-11.444-2.108-13.126 5.343-12.458 9.816l1.57 9.79s-4.11 14.67-3.87 15.097c-10.473 11.76-26.062 49.528-27.06 56.785-.473 6.82-3.048 5.588-2.357 12.217.026 5.18-.576 1.946 1.153 12.618.422 3.213-3.505 2.965-5.758 2.037-19.198-12.04-37.426-19.89-57.458-30.538-1.05-.534-2.098-1.07-3.147-1.602l-30.788 25.175 5.78 33.266c1.815.895 3.433 1.44 5.15 2.16z" fill-rule="evenodd" stroke="#000" stroke-width="2.636" fill="#fff"/> - <path d="M431.67 133.6c-.4.11-13.273-15.394-13.273-15.394s7.538-1.583 7.587-1.495l14.84 14.282-9.154 2.607z" fill-rule="evenodd" fill="#ffec00"/> - <path d="M391.93 215.21c-10.733 1.648-22.95-3.66-28.38-8.787" stroke="#000" stroke-width="2.204" fill="none"/> - <path d="M432.18 134.14c-.94-.94-5.17-5.08-6.207-6.395a66.484 66.484 0 0 0-3.8-3.853c-1.308-1.51-2.23-2.4-3.55-3.992-1.31-1.09-2.447-2.26-3.63-3.55m29.63 14.91c-.275-.034-1.978-.626-2.956-1.19-.874-.82-4.234-3.41-5.183-4.573a54.209 54.209 0 0 0-3.525-3.366c-1.208-1.33-2.065-2.102-3.28-3.506-1.227-.942-2.28-1.964-3.372-3.095" stroke="#000" stroke-width="2.437" fill="none"/> - <path d="M367.28 165.51l.14.248c-.437-.777-.234-.263 1.66.047 1.21-.192 5.223 1.743 6.57 4.14.776 1.09 1.9 2.797 2.55 3.956.186.33.194.925.38 1.257m39.95-38.138l-.14-.248c.187.332-.37-.66-.557-.99-.723-1.288-1.22-2.708-1.845-3.863-.697-1.24-1.043-2.68-1.74-3.92-.527-1.352-1.433-2.828-1.977-4.227-.767-1.48-1.135-2.807-1.985-4.32-.64-1.244-.806-2.015-1.565-3.366l1.565 3.367c-.64-1.245-.806-2.016-1.565-3.367m44.819 12.354c-.268-.024-1.914-.517-2.852-1.008-.827-.736-4.025-3.04-4.914-4.095a47.069 47.069 0 0 0-3.332-3.023c-1.135-1.202-1.947-1.894-3.086-3.164-1.17-.838-2.163-1.757-3.193-2.775M397.35 129.45c2.432-.444 2.432-1.64 3.1-2.51.484-1.134.843-3.534.187-6.637-.298-1.172-.47-2.105-.68-3.536-.367-.82-.388-1.312-.482-2.015M377.82 269.62l-.14-.248c.438.778.226.283-1.55-.434-1.354-.3-2.14-.743-3.487-.978m13.817-24.34c-.093-.166-15.305-10.39-17.697-11.05-1.39-.638-2.674-.99-4.3-1.804-.914-.594-1.817-.88-2.746-1.397-1.318-.122-2.372-.656-3.507-.64-1.252-.45-1.864.39-3.178.194-1.125.19-3.056.45-4.03.727m.458-24.17c.47-.366 2.222-.95 3.413-1.648 1.422-.735 6.74-1.363 9.245.082" stroke="#000" stroke-width="2.204" fill="none"/> - <path d="M365.71 231.2c-.047-.084-.562-2.652-1.486-6.91-.886-5.252-.268-17.558.013-18.904.207-1.328-.072-3.34.433-4.454.298-1.466.876-2.743 1.334-4.015.596-1.528 1.097-2.826 1.723-3.906.686-4.017 12.008-20.15 12.75-20.88a43.017 43.017 0 0 1 2.03-2.775c.325-.907 1.01-1.784 1.645-2.884.94-1.21 1.177-2.108 1.752-3.27.11-1.143.57-2.86.558-4.233.328-1.656.127-2.924.312-4.094-.16-1.45.753-19.172.826-20.01.288-1.735 2.017-7.507 6.206-6.492 1.54.565 3.32.852 4.368 1.484 1.48.413 2.642 1.49 3.743 2.3 5.052 4.913 6.115 8.264 6.766 9.423l.698 1.24M352.64 275.94l-.14-.248c.377.67.17.336-.31-1.132-.125-1.263-.515-2.97-.712-4.17-.255-1.247-.84-2.667-.68-3.536-.447-1.266-.166-2.31-.046-3.566.354-1.568.514-2.703.558-4.232.172-1.875.034-3.205.14-4.977-.494-1.46-.594-2.682-1.348-4.14-.67-1.394-1.182-2.684-1.984-4.11l-1.953-3.473 1.953 3.474-1.953-3.473" stroke="#000" stroke-width="2.204" fill="none"/> - <path d="M369.5 267.6c-2.34-3.58-4.71-10.41-4.78-10.535l-4.727-8.118c-2.833-4.068-5.02-4.088-6.574-4.14-3.387-.218-4.884-.846-7.442-1.04-2.604-1.148-.666-5.83-.736-5.955 2.67-10.642 13.87-9.593 14.328-9.36 5.137 1.682 5.762 2.31 4.92 5.558-1.294 3.505-2.06 4.75-1.954 6.976.27 4.256 5.417 10.505 5.488 10.63.07.124 3.386 2.83 3.386 2.83 1.574 1.347 3.668 1.585 5.812 4.242 1.882 2.86 2.15 4.016.59 6.852-1.986 3.728-6.265 4.83-8.312 2.06z" fill-rule="evenodd" stroke="#000" stroke-width="2.204" fill="#ffe606"/> - <path d="M105.242 168.67c.444.457 5.795 3.69 5.888 3.51s14.004-3.387 13.91-3.208-7.793 9.333-7.435 9.518c.356.186 8.047 9.394 8.226 9.487.18.092-14.563-1.212-14.563-1.212l-9.75 7.86-2.185-10.203s-12.266-4.328-12.445-4.42c-.178-.093 10.497-3.62 10.497-3.62l3.188-8.324s4.128.784 4.67.612z" fill-rule="evenodd" fill-opacity=".988" stroke="#000" stroke-width="2.204" fill="#ffef00"/> - <path d="M284.058 191.255c.03-8.6-16.22-50.106-19.01-56.09-5.187-6.492-10.676-16.774-13.035-25.654-1.527-8.963-6.322-15.994-13.08-18.378-7.8-4.14-15.418-2.517-22.75-1.88-3.595.764-6.67 2.706-8.407 5.566-3.96 5.663-6.11 5.23-8.85 7.672-22.544 3.513-43.862 15.146-60.082 23.074-8.588 5.962-15.878 9.425-19.256 10.154-9.156.033-15.816-4.306-18.997-6.613l-31.108-28.29c-8.99-6.71-11.212 2.975-9.486 4.454 3 6.45-3.496 10.375 21.172 33.613l9.344 19.197s-.518 5.25-.084 5.475c4.504 10.73 11.66 8.056 15.036 5.046l7.33-6.676s14.525-4.597 14.75-5.03c15.576 2.318 55.712-5.328 62.33-8.47 5.965-3.34 6.345-.51 11.512-4.72 4.32-2.858 1.944-.582 9.925-7.874 2.458-2.113 4.4 1.308 4.86 3.7.443 22.657 3.86 42.207 5.925 64.798.13 1.17.257 2.34.385 3.51 12.64 3.99 25.285 7.978 37.926 11.967 8.22-7.686 16.444-15.373 24.664-23.06-.244-2.007-.675-3.66-1.012-5.49z" fill-rule="evenodd" stroke="#000" stroke-width="2.637" fill="#fff"/> - <path d="M88.737 119.85c.31.275-5.608 19.537-5.608 19.537s-5.455-5.44-5.408-5.53l3.82-20.237 7.195 6.23z" fill-rule="evenodd" fill="#ffec00"/> - <path d="M178.78 108.395c7.258 8.077 9.51 21.205 8.194 28.556" stroke="#000" stroke-width="2.204" fill="none"/> - <path d="M88.917 119.143c-.27 1.302-1.416 7.108-1.95 8.696a66.817 66.817 0 0 0-1.142 5.288c-.547 1.923-.785 3.18-1.394 5.158-.194 1.694-.55 3.284-.982 4.98m-3.754-32.955c.12.25.557 1.998.622 3.125-.206 1.18-.535 5.41-.987 6.84a54.356 54.356 0 0 0-.886 4.794c-.45 1.737-.628 2.88-1.138 4.663-.116 1.543-.394 2.984-.74 4.517" stroke="#000" stroke-width="2.437" fill="none"/> - <path d="M150.694 156.247l.13-.252c-.41.79-.09.34-.868-1.415-.825-.908-1.403-5.325-.136-7.766.486-1.244 1.3-3.12 1.912-4.3.174-.335.667-.668.842-1.005M98.8 128.987l-.13.252-.525 1.01c-.68 1.31-1.596 2.502-2.22 3.657-.655 1.263-1.67 2.34-2.325 3.604-.842 1.182-1.58 2.75-2.454 3.97-.817 1.453-1.726 2.488-2.525 4.027-.69 1.217-1.244 1.78-1.958 3.153l1.96-3.153c-.692 1.217-1.246 1.78-1.96 3.153M72.44 104.386c.127.237.616 1.885.72 2.938-.163 1.095-.34 5.034-.735 6.354-.298 1.47-.55 2.96-.703 4.444-.384 1.607-.52 2.666-.957 4.314-.06 1.438-.285 2.773-.573 4.192m33.872 24.222c-1.703-1.793-2.705-1.137-3.8-1.22-1.21.217-3.416 1.23-5.653 3.48-.815.89-1.502 1.546-2.584 2.506-.485.756-.886 1.043-1.422 1.506m141.417-66.717l-.13.252c.41-.792.112-.343.485 1.536.49 1.296.55 2.197 1.092 3.453M205.55 97.41c-.088.17-.31 18.495.45 20.858.226 1.513.635 2.78.846 4.587.002 1.09.257 2.002.335 3.06.62 1.17.752 2.345 1.387 3.286.31 1.294 1.347 1.346 1.903 2.553.776.837 2.05 2.31 2.815 2.973m-20.472 12.861c-.563-.192-2.01-1.34-3.247-1.953-1.395-.787-4.833-4.89-4.997-7.78" stroke="#000" stroke-width="2.204" fill="none"/> - <path d="M206.527 121.572c-.044.085-1.91 1.923-4.967 5.028-3.91 3.618-14.542 9.843-15.822 10.344-1.224.555-2.754 1.89-3.963 2.077-1.39.555-2.775.772-4.09 1.085-1.605.34-2.965.63-4.212.7-3.737 1.625-23.436.992-24.452.77a43.156 43.156 0 0 1-3.434-.178c-.936.225-2.046.13-3.313.204-1.53-.123-2.41.17-3.697.327-1.015.535-2.704 1.09-3.847 1.85-1.566.634-2.516 1.497-3.596 1.983-1.125.928-16.452 9.872-17.193 10.27-1.608.71-7.384 2.425-8.83-1.636-.372-1.597-1.107-3.244-1.152-4.467-.465-1.463-.2-3.026-.125-4.39 1.342-6.92 3.563-9.643 4.175-10.823l.656-1.263m142.437-25.449l-.13.253c.353-.683.188-.325-.778.88-.987.796-2.203 2.057-3.1 2.88-.902.896-1.77 2.162-2.583 2.505-.814 1.068-1.843 1.405-2.958 1.992-1.506.563-2.543 1.05-3.846 1.85-1.664.885-2.7 1.73-4.24 2.61-.95 1.213-1.918 1.967-2.725 3.395-.8 1.324-1.597 2.46-2.35 3.91l-1.837 3.537 1.837-3.537-1.837 3.537m11.75 73.122l.263-.506c-.485.935-.315.69.14-.888.005-1.892.454-4.18.473-5.85.285-1.766.574-3.675.592-5.464-.107-2.094-.104-3.97-.417-5.99-.024-1.857-.24-3.784-.296-5.605-.035-1.803-.17-3.35-.56-5.1-.037-1.31-.118-3.11-.437-4.716.17-1.267-.19-2.432-.458-3.445-.49-1.95-.68-3.09-1.195-5.11-.31-1.084-.615-2.468-1.082-4.09-.17-1.537-.992-3.533-1.326-4.858-.457-.974-.918-2.294-1.095-3.453-.478-1.07-1.16-2.375-1.345-3.585-.504-.924-1.04-2.36-1.598-3.718-.48-1.116-.834-2.49-1.345-3.584-.517-1.38-1.147-2.56-1.468-3.97-.493-.476-.605-1-.87-1.412" stroke="#000" stroke-width="2.204" fill="none"/> - <path d="M234.893 98.47c-1.714 3.92-6.13 9.644-6.195 9.77l-4.202 8.402c-1.85 4.598-.67 6.44.137 7.767 1.673 2.952 1.967 4.548 3.205 6.795.467 2.807-4.512 3.75-4.578 3.877-10.366 3.596-15.623-6.35-15.68-6.86-1.406-5.218-1.222-6.085 1.956-7.16 3.64-.837 5.104-.878 6.907-2.187 3.412-2.557 5.82-10.286 5.887-10.413.065-.126.512-4.383.512-4.383.266-2.056-.683-3.938.365-7.188 1.363-3.14 2.182-3.998 5.41-4.246 4.207-.38 7.472 2.596 6.276 5.825z" fill-rule="evenodd" stroke="#000" stroke-width="2.204" fill="#ffe606"/> - <path d="M221.29 199.65c-1.566-1.422 29.458 11.24 33.726 11.385 5.836-2.134 29.886-22.484 29.886-22.484.237 1.993 1.09 7.163 3.414 8.255-9.296 7.543-17.74 14.8-27.037 22.34.663 11.955-1.52 24.62 4.552 37.998 0 0-7.256.14-7.256 0-6.404-6.404-8.682-37.284-8.682-37.284-10.198-4.555-20.398-8.966-30.596-13.52 1.47-.95 2.656-3.89 1.992-6.69z" fill-rule="evenodd" fill-opacity=".987" stroke="#000" stroke-width="2.204" fill="#ffef00"/> - <path d="M250.81 231.3c.496-.36-5.596 2.83-7.16 3.63-28.186 15.036-42.69 36.906-43.594 37.732-.487.932-1.384 2.174-2.204 3.392-.66 1.02-1.61 2.076-2.234 3.108-.864 1.196-2.68 3.558-3.67 4.606-.124.676.47-.23.276.22m77.846-70.558c-.547-.277 5.077 3.682 6.505 4.707 26.26 18.187 52.344 21.082 53.492 21.507 1.05.007 2.566.236 4.023.41 1.21.12 2.583.48 3.787.563 1.458.22 4.39.754 5.775 1.157.656-.2-.42-.312.067-.346" stroke="#000" stroke-width="2.204" fill="none"/> - </g> -</svg> diff --git a/img/flags/4x3/in.svg b/img/flags/4x3/in.svg deleted file mode 100644 index 42fe3c9..0000000 --- a/img/flags/4x3/in.svg +++ /dev/null @@ -1,25 +0,0 @@ -<svg xmlns:xlink="http://www.w3.org/1999/xlink" xmlns="http://www.w3.org/2000/svg" height="480" width="640" viewBox="0 0 640 480"> - <path fill="#f93" d="M0 0h640v160H0z"/> - <path fill="#fff" d="M0 160h640v160H0z"/> - <path fill="#128807" d="M0 320h640v160H0z"/> - <g transform="matrix(3.2 0 0 3.2 320 240)"> - <circle r="20" fill="#008"/> - <circle r="17.5" fill="#fff"/> - <circle r="3.5" fill="#008"/> - <g id="d"> - <g id="c"> - <g id="b"> - <g id="a" fill="#008"> - <circle r=".875" transform="rotate(7.5 -8.75 133.5)"/> - <path d="M0 17.5L.6 7 0 2l-.6 5L0 17.5z"/> - </g> - <use height="100%" width="100%" xlink:href="#a" transform="rotate(15)"/> - </g> - <use height="100%" width="100%" xlink:href="#b" transform="rotate(30)"/> - </g> - <use height="100%" width="100%" xlink:href="#c" transform="rotate(60)"/> - </g> - <use height="100%" width="100%" xlink:href="#d" transform="rotate(120)"/> - <use height="100%" width="100%" xlink:href="#d" transform="rotate(-120)"/> - </g> -</svg> diff --git a/img/flags/4x3/io.svg b/img/flags/4x3/io.svg deleted file mode 100644 index d5c6db5..0000000 --- a/img/flags/4x3/io.svg +++ /dev/null @@ -1,152 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" height="480" width="640" viewBox="0 0 640 480"> - <defs> - <clipPath id="a"> - <path fill-opacity=".67" d="M0 0h682.67v512H0z"/> - </clipPath> - </defs> - <g clip-path="url(#a)" transform="scale(.9375)"> - <path fill-rule="evenodd" fill="#fff" d="M0 0h1024v512H0z"/> - <path d="M1024 445.24c-11.474 6.903-21.332 23.035-51.814 23.035-60.947 0-76.188-33.965-121.9-33.965-30.474 0-45.712 33.965-76.187 33.965-60.952 0-76.191-33.965-121.9-33.965-30.477 0-45.715 33.965-76.191 33.965-60.952 0-76.191-33.965-121.9-33.965-30.477 0-45.715 33.965-76.191 33.965-60.952 0-76.191-33.965-121.9-33.965-30.478 0-45.715 33.965-76.191 33.965-60.952 0-76.192-33.965-121.91-33.965-30.476 0-39.619 24.203-57.905 24.203v43.727c18.286 0 27.428-24.2 57.905-24.2 45.715 0 60.955 33.96 121.9 33.96 30.476 0 45.713-33.965 76.191-33.965 45.713 0 60.952 33.965 121.9 33.965 30.476 0 45.714-33.965 76.191-33.965 45.714 0 60.952 33.965 121.9 33.965 30.476 0 45.714-33.965 76.191-33.965 45.714 0 60.952 33.965 121.9 33.965 30.476 0 45.714-33.965 76.187-33.965 45.715 0 60.956 33.965 121.9 33.965 30.482 0 40.34-9.625 51.814-16.528v-50.235zM1024 360.32c-11.474 6.903-21.332 23.035-51.814 23.035-60.947 0-76.188-33.965-121.9-33.965-30.474 0-45.712 33.965-76.187 33.965-60.952 0-76.191-33.965-121.9-33.965-30.477 0-45.715 33.965-76.191 33.965-60.952 0-76.191-33.965-121.9-33.965-30.477 0-45.715 33.965-76.191 33.965-60.952 0-76.191-33.965-121.9-33.965-30.478 0-45.715 33.965-76.191 33.965-60.952 0-76.192-33.965-121.91-33.965-30.476 0-39.619 24.203-57.905 24.203v43.727c18.286.01 27.428-24.2 57.905-24.2 45.714 0 60.953 33.965 121.91 33.965 30.476 0 45.713-33.965 76.191-33.965 45.713 0 60.952 33.965 121.9 33.965 30.476 0 45.714-33.965 76.191-33.965 45.714 0 60.952 33.965 121.9 33.965 30.476 0 45.714-33.965 76.191-33.965 45.714 0 60.952 33.965 121.9 33.965 30.476 0 45.714-33.965 76.187-33.965 45.715 0 60.956 33.965 121.9 33.965 30.482 0 40.34-9.625 51.814-16.528v-50.235zM1024 275.41c-11.474 6.903-21.332 23.035-51.814 23.035-60.947 0-76.188-33.965-121.9-33.965-30.474 0-45.712 33.965-76.187 33.965-60.952 0-76.191-33.965-121.9-33.965-30.477 0-45.715 33.965-76.191 33.965-60.952 0-76.191-33.965-121.9-33.965-30.477 0-45.715 33.965-76.191 33.965-60.952 0-76.191-33.965-121.9-33.965-30.478 0-45.715 33.965-76.191 33.965-60.952 0-76.192-33.965-121.91-33.965-30.476 0-39.619 24.203-57.905 24.203v43.727c18.286 0 27.428-24.2 57.905-24.2 45.714 0 60.953 33.965 121.91 33.965 30.476 0 45.713-33.965 76.191-33.965 45.713 0 60.952 33.965 121.9 33.965 30.476 0 45.714-33.965 76.191-33.965 45.714 0 60.952 33.965 121.9 33.965 30.476 0 45.714-33.965 76.191-33.965 45.714 0 60.952 33.965 121.9 33.965 30.476 0 45.714-33.965 76.187-33.965 45.715 0 60.956 33.965 121.9 33.965 30.482 0 40.34-9.625 51.814-16.528v-50.235zM1024 190.5c-11.474 6.903-21.332 23.035-51.814 23.035-60.947 0-76.188-33.965-121.9-33.965-30.474 0-45.712 33.965-76.187 33.965-60.952 0-76.191-33.965-121.9-33.965-30.477 0-45.715 33.965-76.191 33.965-60.952 0-76.191-33.965-121.9-33.965-30.477 0-45.715 33.965-76.191 33.965-60.952 0-76.191-33.965-121.9-33.965-30.478 0-45.715 33.965-76.191 33.965-60.952 0-76.192-33.965-121.91-33.965-30.476 0-39.619 24.203-57.905 24.203V247.5c18.286 0 27.428-24.2 57.905-24.2 45.714 0 60.953 33.965 121.91 33.965 30.476 0 45.713-33.965 76.191-33.965 45.713 0 60.952 33.965 121.9 33.965 30.476 0 45.714-33.965 76.191-33.965 45.714 0 60.952 33.965 121.9 33.965 30.476 0 45.714-33.965 76.191-33.965 45.714 0 60.952 33.965 121.9 33.965 30.476 0 45.714-33.965 76.187-33.965 45.715 0 60.956 33.965 121.9 33.965 30.482 0 40.34-9.625 51.814-16.528v-50.235zM1024 105.59c-11.474 6.903-21.332 23.035-51.814 23.035-60.947 0-76.188-33.965-121.9-33.965-30.474 0-45.712 33.965-76.187 33.965-60.952 0-76.191-33.965-121.9-33.965-30.477 0-45.715 33.965-76.191 33.965-60.952 0-76.191-33.965-121.9-33.965-30.477 0-45.715 33.965-76.191 33.965-60.952 0-76.191-33.965-121.9-33.965-30.478 0-45.715 33.965-76.191 33.965-60.952 0-76.192-33.965-121.91-33.965-30.491-.002-39.634 24.2-57.92 24.2v43.727c18.286 0 27.428-24.203 57.905-24.203 45.714 0 60.953 33.965 121.91 33.965 30.476 0 45.713-33.965 76.191-33.965 45.713 0 60.952 33.965 121.9 33.965 30.476 0 45.714-33.965 76.191-33.965 45.714 0 60.952 33.965 121.9 33.965 30.476 0 45.714-33.965 76.191-33.965 45.714 0 60.952 33.965 121.9 33.965 30.476 0 45.714-33.965 76.187-33.965 45.715 0 60.956 33.965 121.9 33.965 30.482 0 40.34-9.625 51.814-16.528v-50.235zM1024 20.675c-11.474 6.903-21.332 23.035-51.814 23.035-60.947 0-76.188-33.965-121.9-33.965-30.474 0-45.712 33.965-76.187 33.965-60.952 0-76.191-33.965-121.9-33.965-30.477 0-45.715 33.965-76.191 33.965-60.952 0-76.191-33.965-121.9-33.965-30.477 0-45.715 33.965-76.191 33.965-60.952 0-76.191-33.965-121.9-33.965-30.478 0-45.715 33.965-76.191 33.965-60.952 0-76.192-33.965-121.91-33.965-30.491 0-39.634 24.203-57.92 24.203v43.727c18.286 0 27.428-24.203 57.905-24.203 45.714 0 60.953 33.965 121.91 33.965 30.476 0 45.713-33.965 76.191-33.965 45.713 0 60.952 33.965 121.9 33.965 30.476 0 45.714-33.965 76.191-33.965 45.714 0 60.952 33.965 121.9 33.965 30.476 0 45.714-33.965 76.191-33.965 45.714 0 60.952 33.965 121.9 33.965 30.476 0 45.714-33.965 76.187-33.965 45.715 0 60.956 33.965 121.9 33.965 30.482 0 40.34-9.625 51.814-16.528V20.674z" fill-rule="evenodd" fill="#000063"/> - <path fill-rule="evenodd" fill="#000063" d="M0 .063h261.31v157.91H0z"/> - <g stroke-width="1pt"> - <path d="M0 .063v17.654L232.097 157.97h29.215v-17.654L29.215.064H0zm261.312 0v17.654L29.215 157.968H0v-17.654L232.097.064h29.215z" fill="#fff"/> - <path d="M108.88.063v157.905h43.552V.063H108.88zM0 52.698v52.635h261.312V52.698H0z" fill="#fff"/> - <path d="M0 63.225v31.581h261.312v-31.58H0zM117.59.063v157.905h26.132V.063H117.59zM0 157.968l87.104-52.635h19.476l-87.104 52.635H0zM0 .063l87.104 52.635H67.628L0 11.833V.063zm154.732 52.635L241.836.063h19.476l-87.104 52.635h-19.476zm106.58 105.27l-87.104-52.635h19.476l67.628 40.866v11.77z" fill="#c00"/> - </g> - <path d="M814.96-301.18l-17.72 708.66c0 37.298 80.097 37.298 88.583 0l-17.717-708.66h-53.149z" fill-rule="evenodd" transform="matrix(.2064 0 0 .4902 211.633 267.436)" stroke="#fff" stroke-width="6.935" fill="#a24300"/> - <path d="M496.06 549.21l17.717 70.866 35.433-53.15-17.717 88.583 35.433-35.433-35.433 88.582 35.433-35.433-35.433 88.583 35.433-35.433-35.433 106.3 35.433-35.433-35.433 106.3 35.433-35.433-35.433 106.3-17.716 53.151-17.717 17.72-17.717-17.72-17.716-53.151-35.433-106.3 35.433 35.433-35.433-106.3 35.433 35.433-35.433-106.3 35.433 35.433-35.433-88.583 35.433 35.433-35.433-88.582 35.433 35.433-17.717-88.583 35.433 53.15 17.717-70.866z" fill-rule="evenodd" transform="matrix(-.2354 .06743 -.1035 -.19501 591.314 322.549)" stroke="#fff" stroke-width="8.25" fill="#006d00"/> - <path d="M496.06 549.21v496.07M425.2 868.11l70.86 106.3 70.87-106.3" transform="matrix(-.2354 .06743 -.1035 -.19501 591.314 322.549)" stroke="#000" stroke-width="1pt" fill="none"/> - <path d="M425.2 797.24l70.866 106.3 70.866-106.3" transform="matrix(-.2354 .06743 -.1035 -.19501 591.314 322.549)" stroke="#000" stroke-width="1pt" fill="none"/> - <path d="M425.2 726.38l70.866 106.3 70.866-106.3" transform="matrix(-.2354 .06743 -.1035 -.19501 591.314 322.549)" stroke="#000" stroke-width="1pt" fill="none"/> - <path d="M425.2 673.23l70.866 88.583 70.866-88.583" transform="matrix(-.2354 .06743 -.1035 -.19501 591.314 322.549)" stroke="#000" stroke-width="1pt" fill="none"/> - <path d="M425.2 620.08l70.866 88.582 70.866-88.582" transform="matrix(-.2354 .06743 -.1035 -.19501 591.314 322.549)" stroke="#000" stroke-width="1pt" fill="none"/> - <path d="M442.91 566.93l53.15 106.3 53.15-106.3" transform="matrix(-.2354 .06743 -.1035 -.19501 591.314 322.549)" stroke="#000" stroke-width="1pt" fill="none"/> - <g> - <path d="M496.06 549.21l17.717 70.866 35.433-53.15-17.717 88.583 35.433-35.433-35.433 88.582 35.433-35.433-35.433 88.583 35.433-35.433-35.433 106.3 35.433-35.433-35.433 106.3 35.433-35.433-35.433 106.3-17.716 53.151-17.717 17.72-17.717-17.72-17.716-53.151-35.433-106.3 35.433 35.433-35.433-106.3 35.433 35.433-35.433-106.3 35.433 35.433-35.433-88.583 35.433 35.433-35.433-88.582 35.433 35.433-17.717-88.583 35.433 53.15 17.717-70.866z" fill-rule="evenodd" transform="matrix(.17703 -.18126 .22077 .14638 73.835 93.526)" stroke="#fff" stroke-width="8.25" fill="#006d00"/> - <path d="M496.06 549.21v496.07M425.2 868.11l70.86 106.3 70.87-106.3" transform="matrix(.17703 -.18126 .22077 .14638 73.835 93.526)" stroke="#000" stroke-width="1pt" fill="none"/> - <path d="M425.2 797.24l70.866 106.3 70.866-106.3" transform="matrix(.17703 -.18126 .22077 .14638 73.835 93.526)" stroke="#000" stroke-width="1pt" fill="none"/> - <path d="M425.2 726.38l70.866 106.3 70.866-106.3" transform="matrix(.17703 -.18126 .22077 .14638 73.835 93.526)" stroke="#000" stroke-width="1pt" fill="none"/> - <path d="M425.2 673.23l70.866 88.583 70.866-88.583" transform="matrix(.17703 -.18126 .22077 .14638 73.835 93.526)" stroke="#000" stroke-width="1pt" fill="none"/> - <path d="M425.2 620.08l70.866 88.582 70.866-88.582" transform="matrix(.17703 -.18126 .22077 .14638 73.835 93.526)" stroke="#000" stroke-width="1pt" fill="none"/> - <path d="M442.91 566.93l53.15 106.3 53.15-106.3" transform="matrix(.17703 -.18126 .22077 .14638 73.835 93.526)" stroke="#000" stroke-width="1pt" fill="none"/> - </g> - <g> - <path d="M496.06 549.21l17.717 70.866 35.433-53.15-17.717 88.583 35.433-35.433-35.433 88.582 35.433-35.433-35.433 88.583 35.433-35.433-35.433 106.3 35.433-35.433-35.433 106.3 35.433-35.433-35.433 106.3-17.716 53.151-17.717 17.72-17.717-17.72-17.716-53.151-35.433-106.3 35.433 35.433-35.433-106.3 35.433 35.433-35.433-106.3 35.433 35.433-35.433-88.583 35.433 35.433-35.433-88.582 35.433 35.433-17.717-88.583 35.433 53.15 17.717-70.866z" fill-rule="evenodd" transform="matrix(.1135 .2156 -.24917 .1076 581.756 -57.78)" stroke="#fff" stroke-width="8.25" fill="#006d00"/> - <path d="M496.06 549.21v496.07M425.2 868.11l70.86 106.3 70.87-106.3" transform="matrix(.1135 .2156 -.24917 .1076 581.756 -57.78)" stroke="#000" stroke-width="1pt" fill="none"/> - <path d="M425.2 797.24l70.866 106.3 70.866-106.3" transform="matrix(.1135 .2156 -.24917 .1076 581.756 -57.78)" stroke="#000" stroke-width="1pt" fill="none"/> - <path d="M425.2 726.38l70.866 106.3 70.866-106.3" transform="matrix(.1135 .2156 -.24917 .1076 581.756 -57.78)" stroke="#000" stroke-width="1pt" fill="none"/> - <path d="M425.2 673.23l70.866 88.583 70.866-88.583" transform="matrix(.1135 .2156 -.24917 .1076 581.756 -57.78)" stroke="#000" stroke-width="1pt" fill="none"/> - <path d="M425.2 620.08l70.866 88.582 70.866-88.582" transform="matrix(.1135 .2156 -.24917 .1076 581.756 -57.78)" stroke="#000" stroke-width="1pt" fill="none"/> - <path d="M442.91 566.93l53.15 106.3 53.15-106.3" transform="matrix(.1135 .2156 -.24917 .1076 581.756 -57.78)" stroke="#000" stroke-width="1pt" fill="none"/> - </g> - <g> - <path d="M496.06 549.21l17.717 70.866 35.433-53.15-17.717 88.583 35.433-35.433-35.433 88.582 35.433-35.433-35.433 88.583 35.433-35.433-35.433 106.3 35.433-35.433-35.433 106.3 35.433-35.433-35.433 106.3-17.716 53.151-17.717 17.72-17.717-17.72-17.716-53.151-35.433-106.3 35.433 35.433-35.433-106.3 35.433 35.433-35.433-106.3 35.433 35.433-35.433-88.583 35.433 35.433-35.433-88.582 35.433 35.433-17.717-88.583 35.433 53.15 17.717-70.866z" fill-rule="evenodd" transform="matrix(-.15682 .19451 -.23555 -.12827 705.85 197.798)" stroke="#fff" stroke-width="8.25" fill="#006d00"/> - <path d="M496.06 549.21v496.07M425.2 868.11l70.86 106.3 70.87-106.3" transform="matrix(-.15682 .19451 -.23555 -.12827 705.85 197.798)" stroke="#000" stroke-width="1pt" fill="none"/> - <path d="M425.2 797.24l70.866 106.3 70.866-106.3" transform="matrix(-.15682 .19451 -.23555 -.12827 705.85 197.798)" stroke="#000" stroke-width="1pt" fill="none"/> - <path d="M425.2 726.38l70.866 106.3 70.866-106.3" transform="matrix(-.15682 .19451 -.23555 -.12827 705.85 197.798)" stroke="#000" stroke-width="1pt" fill="none"/> - <path d="M425.2 673.23l70.866 88.583 70.866-88.583" transform="matrix(-.15682 .19451 -.23555 -.12827 705.85 197.798)" stroke="#000" stroke-width="1pt" fill="none"/> - <path d="M425.2 620.08l70.866 88.582 70.866-88.582" transform="matrix(-.15682 .19451 -.23555 -.12827 705.85 197.798)" stroke="#000" stroke-width="1pt" fill="none"/> - <path d="M442.91 566.93l53.15 106.3 53.15-106.3" transform="matrix(-.15682 .19451 -.23555 -.12827 705.85 197.798)" stroke="#000" stroke-width="1pt" fill="none"/> - </g> - <g> - <path d="M496.06 549.21l17.717 70.866 35.433-53.15-17.717 88.583 35.433-35.433-35.433 88.582 35.433-35.433-35.433 88.583 35.433-35.433-35.433 106.3 35.433-35.433-35.433 106.3 35.433-35.433-35.433 106.3-17.716 53.151-17.717 17.72-17.717-17.72-17.716-53.151-35.433-106.3 35.433 35.433-35.433-106.3 35.433 35.433-35.433-106.3 35.433 35.433-35.433-88.583 35.433 35.433-35.433-88.582 35.433 35.433-17.717-88.583 35.433 53.15 17.717-70.866z" fill-rule="evenodd" transform="matrix(-.15547 -.16616 .17678 -.15123 275.837 396.088)" stroke="#fff" stroke-width="8.25" fill="#006d00"/> - <path d="M496.06 549.21v496.07M425.2 868.11l70.86 106.3 70.87-106.3" transform="matrix(-.15547 -.16616 .17678 -.15123 275.837 396.088)" stroke="#000" stroke-width="1pt" fill="none"/> - <path d="M425.2 797.24l70.866 106.3 70.866-106.3" transform="matrix(-.15547 -.16616 .17678 -.15123 275.837 396.088)" stroke="#000" stroke-width="1pt" fill="none"/> - <path d="M425.2 726.38l70.866 106.3 70.866-106.3" transform="matrix(-.15547 -.16616 .17678 -.15123 275.837 396.088)" stroke="#000" stroke-width="1pt" fill="none"/> - <path d="M425.2 673.23l70.866 88.583 70.866-88.583" transform="matrix(-.15547 -.16616 .17678 -.15123 275.837 396.088)" stroke="#000" stroke-width="1pt" fill="none"/> - <path d="M425.2 620.08l70.866 88.582 70.866-88.582" transform="matrix(-.15547 -.16616 .17678 -.15123 275.837 396.088)" stroke="#000" stroke-width="1pt" fill="none"/> - <path d="M442.91 566.93l53.15 106.3 53.15-106.3" transform="matrix(-.15547 -.16616 .17678 -.15123 275.837 396.088)" stroke="#000" stroke-width="1pt" fill="none"/> - </g> - <g> - <path d="M460.63 549.21l28.643 70.866 42.223-53.15-10.184 88.583 27.9-35.433-17.716 88.582 25.249-35.433-25.249 88.583 35.433-35.433-35.433 106.3 35.433-35.433-35.433 106.3 35.433-35.433-35.433 106.3-17.716 53.151-17.717 17.72-17.717-17.72-17.716-53.151-35.433-106.3 35.433 35.433-35.433-106.3 35.433 35.433-35.433-106.3 35.433 35.433-45.617-88.583 45.617 35.433-53.15-88.582 42.966 35.433-25.25-88.583 35.433 53.15.001-70.866z" fill-rule="evenodd" transform="matrix(-.27108 -.06397 -.15704 .20433 684.121 -32.23)" stroke="#fff" stroke-width="8.25" fill="#006d00"/> - <path d="M467.21 584.65l28.855 124.02v336.62" transform="matrix(-.27108 -.06397 -.15704 .20433 684.121 -32.23)" stroke="#000" stroke-width="1pt" fill="none"/> - <path d="M436.23 885.83l59.833 88.582 60.682-88.582" transform="matrix(-.27108 -.06397 -.15704 .20433 684.121 -32.23)" stroke="#000" stroke-width="1pt" fill="none"/> - <path d="M434.53 814.96l61.53 88.582 60.682-88.582" transform="matrix(-.27108 -.06397 -.15704 .20433 684.121 -32.23)" stroke="#000" stroke-width="1pt" fill="none"/> - <path d="M435.38 744.1l60.682 88.582 59.833-88.582" transform="matrix(-.27108 -.06397 -.15704 .20433 684.121 -32.23)" stroke="#000" stroke-width="1pt" fill="none"/> - <path d="M432.84 690.94l63.228 70.866 53.149-70.866" transform="matrix(-.27108 -.06397 -.15704 .20433 684.121 -32.23)" stroke="#000" stroke-width="1pt" fill="none"/> - <path d="M425.2 637.8l70.866 70.865 45.406-70.865" transform="matrix(-.27108 -.06397 -.15704 .20433 684.121 -32.23)" stroke="#000" stroke-width="1pt" fill="none"/> - <path d="M436.12 593.24l53.15 86.886 35.327-95.478" transform="matrix(-.27108 -.06397 -.15704 .20433 684.121 -32.23)" stroke="#000" stroke-width="1pt" fill="none"/> - </g> - <g> - <path d="M460.63 549.21l28.643 70.866 42.223-53.15-10.184 88.583 27.9-35.433-17.716 88.582 25.249-35.433-25.249 88.583 35.433-35.433-35.433 106.3 35.433-35.433-35.433 106.3 35.433-35.433-35.433 106.3-17.716 53.151-17.717 17.72-17.717-17.72-17.716-53.151-35.433-106.3 35.433 35.433-35.433-106.3 35.433 35.433-35.433-106.3 35.433 35.433-45.617-88.583 45.617 35.433-53.15-88.582 42.966 35.433-25.25-88.583 35.433 53.15.001-70.866z" fill-rule="evenodd" transform="matrix(.27011 .06695 .00989 .24471 240.767 -138.419)" stroke="#fff" stroke-width="8.25" fill="#006d00"/> - <path d="M467.21 584.65l28.855 124.02v336.62" transform="matrix(.27011 .06695 .00989 .24471 240.767 -138.419)" stroke="#000" stroke-width="1pt" fill="none"/> - <path d="M436.23 885.83l59.833 88.582 60.682-88.582" transform="matrix(.27011 .06695 .00989 .24471 240.767 -138.419)" stroke="#000" stroke-width="1pt" fill="none"/> - <path d="M434.53 814.96l61.53 88.582 60.682-88.582" transform="matrix(.27011 .06695 .00989 .24471 240.767 -138.419)" stroke="#000" stroke-width="1pt" fill="none"/> - <path d="M435.38 744.1l60.682 88.582 59.833-88.582" transform="matrix(.27011 .06695 .00989 .24471 240.767 -138.419)" stroke="#000" stroke-width="1pt" fill="none"/> - <path d="M432.84 690.94l63.228 70.866 53.149-70.866" transform="matrix(.27011 .06695 .00989 .24471 240.767 -138.419)" stroke="#000" stroke-width="1pt" fill="none"/> - <path d="M425.2 637.8l70.866 70.865 45.406-70.865" transform="matrix(.27011 .06695 .00989 .24471 240.767 -138.419)" stroke="#000" stroke-width="1pt" fill="none"/> - <path d="M436.12 593.24l53.15 86.886 35.327-95.478" transform="matrix(.27011 .06695 .00989 .24471 240.767 -138.419)" stroke="#000" stroke-width="1pt" fill="none"/> - </g> - <g> - <path d="M354.33 531.5l88.583 88.583 17.716-53.149v88.582l35.433-35.433-17.716 88.583 35.432-35.434-17.716 88.584 35.433-35.433-17.716 106.3 35.433-35.433-35.433 106.3 35.433-35.433-17.717 106.3-17.716 53.151-17.717 17.72-17.717-17.72-17.716-53.151-53.15-82.294 35.434 11.429-35.433-106.3 35.433 35.433-53.15-106.3 35.433 35.433-53.15-88.584 53.15 35.434-70.866-88.583 53.149 35.433-70.866-70.866 70.866 35.433-53.149-88.583z" fill-rule="evenodd" transform="matrix(.03453 -.23456 .24402 .04167 115.462 229.538)" stroke="#fff" stroke-width="8.25" fill="#006d00"/> - <path d="M378.96 560.02l63.952 95.497 17.716 53.15 8.859 45.205 8.858 78.811 9.315 70.866 8.401 141.74" transform="matrix(.03453 -.23456 .24402 .04167 115.462 229.538)" stroke="#000" stroke-width="1pt" fill="none"/> - <path d="M425.2 903.54l63.665 70.866 50.749-88.583" transform="matrix(.03453 -.23456 .24402 .04167 115.462 229.538)" stroke="#000" stroke-width="1pt" fill="none"/> - <path d="M417.08 814.96l70.579 88.583 50.75-88.583" transform="matrix(.03453 -.23456 .24402 .04167 115.462 229.538)" stroke="#000" stroke-width="1pt" fill="none"/> - <path d="M407.48 752.44l70.867 80.235 45.948-88.583M372.05 637.8l88.583 70.866 25.831-70.866" transform="matrix(.03453 -.23456 .24402 .04167 115.462 229.538)" stroke="#000" stroke-width="1pt" fill="none"/> - <path d="M360.62 602.36l82.296 53.149 10.515-53.149M389.76 690.94l81.095 70.866 33.946-70.866" transform="matrix(.03453 -.23456 .24402 .04167 115.462 229.538)" stroke="#000" stroke-width="1pt" fill="none"/> - </g> - <g fill-rule="evenodd"> - <path d="M541.46 1173.3l-1.7-229.13-61.1-106.94c-15.277-52.618-7.754-78.079 16.973-79.776 24.728-1.698 49.224 13.579 84.868 15.276 35.645 1.697 28.856-59.408 81.474-57.71 52.618 1.697 144.28 32.25 222.36 37.342 78.078 5.092 118.81-27.158 208.77-30.553 89.97-3.395 113.73 42.435 118.82 42.435s30.55-18.672 56.01-22.066c25.46-3.395 33.95 10.184 33.95 10.184s-1.7 57.71-13.58 91.657c-11.88 33.948-54.32 89.961-56.01 89.961-1.7 0-15.28 249.52-15.28 251.21 0 1.7-675.55-6.79-675.55-11.88z" stroke="#000" stroke-width="1pt" fill="#c00" transform="matrix(.13659 0 0 .12573 266.36 208.19)"/> - <g stroke="#000" stroke-width="1pt"> - <path d="M531.5 584.65s-67.982-52.097-69.813-177.17c-1.053-71.929 34.38-124.02 122.96-124.02 124.02 0 301.18 53.149 301.18 53.149v17.717s-141.73-53.15-301.18-53.15c-70.866 0-106.3 52.087-106.3 105.24 0 88.583 70.867 178.23 70.867 178.23v141.73h-17.717v-141.73z" fill="#fff100" transform="matrix(-.13659 0 0 .12573 508.357 252.74)"/> - <path d="M478.35 549.21c0 9.785-7.932 17.717-17.717 17.717-9.785 0-17.717-7.932-17.717-17.717 0-9.785 7.932-17.717 17.717-17.717 9.785 0 17.717 7.932 17.717 17.717z" transform="matrix(-.13659 0 0 .12573 506.168 252.526)" fill="#fff"/> - <path d="M478.35 549.21c0 9.785-7.932 17.717-17.717 17.717-9.785 0-17.717-7.932-17.717-17.717 0-9.785 7.932-17.717 17.717-17.717 9.785 0 17.717 7.932 17.717 17.717z" transform="matrix(-.13659 0 0 .12573 508.588 247.431)" fill="#fff"/> - <path d="M478.35 549.21c0 9.785-7.932 17.717-17.717 17.717-9.785 0-17.717-7.932-17.717-17.717 0-9.785 7.932-17.717 17.717-17.717 9.785 0 17.717 7.932 17.717 17.717z" transform="matrix(-.13659 0 0 .12573 509.849 242.243)" fill="#fff"/> - <path d="M478.35 549.21c0 9.785-7.932 17.717-17.717 17.717-9.785 0-17.717-7.932-17.717-17.717 0-9.785 7.932-17.717 17.717-17.717 9.785 0 17.717 7.932 17.717 17.717z" transform="matrix(-.13659 0 0 .12573 510.776 236.694)" fill="#fff"/> - <path d="M478.35 549.21c0 9.785-7.932 17.717-17.717 17.717-9.785 0-17.717-7.932-17.717-17.717 0-9.785 7.932-17.717 17.717-17.717 9.785 0 17.717 7.932 17.717 17.717z" transform="matrix(-.13659 0 0 .12573 510.545 230.678)" fill="#fff"/> - <path d="M478.35 549.21c0 9.785-7.932 17.717-17.717 17.717-9.785 0-17.717-7.932-17.717-17.717 0-9.785 7.932-17.717 17.717-17.717 9.785 0 17.717 7.932 17.717 17.717z" transform="matrix(-.13659 0 0 .12573 502.69 257.008)" fill="#fff"/> - <path d="M478.35 549.21c0 9.785-7.932 17.717-17.717 17.717-9.785 0-17.717-7.932-17.717-17.717 0-9.785 7.932-17.717 17.717-17.717 9.785 0 17.717 7.932 17.717 17.717z" transform="matrix(-.13659 0 0 .12573 508.487 224.996)" fill="#fff"/> - <path d="M478.35 549.21c0 9.785-7.932 17.717-17.717 17.717-9.785 0-17.717-7.932-17.717-17.717 0-9.785 7.932-17.717 17.717-17.717 9.785 0 17.717 7.932 17.717 17.717z" transform="matrix(-.13659 0 0 .12573 504.082 220.515)" fill="#fff"/> - <path d="M478.35 549.21c0 9.785-7.932 17.717-17.717 17.717-9.785 0-17.717-7.932-17.717-17.717 0-9.785 7.932-17.717 17.717-17.717 9.785 0 17.717 7.932 17.717 17.717z" transform="matrix(-.13659 0 0 .12573 498.054 217.528)" fill="#fff"/> - <path d="M478.35 549.21c0 9.785-7.932 17.717-17.717 17.717-9.785 0-17.717-7.932-17.717-17.717 0-9.785 7.932-17.717 17.717-17.717 9.785 0 17.717 7.932 17.717 17.717z" transform="matrix(-.13659 0 0 .12573 492.026 217.1)" fill="#fff"/> - <path d="M478.35 549.21c0 9.785-7.932 17.717-17.717 17.717-9.785 0-17.717-7.932-17.717-17.717 0-9.785 7.932-17.717 17.717-17.717 9.785 0 17.717 7.932 17.717 17.717z" transform="matrix(-.13659 0 0 .12573 485.535 217.314)" fill="#fff"/> - <path d="M478.35 549.21c0 9.785-7.932 17.717-17.717 17.717-9.785 0-17.717-7.932-17.717-17.717 0-9.785 7.932-17.717 17.717-17.717 9.785 0 17.717 7.932 17.717 17.717z" transform="matrix(-.13659 0 0 .12573 479.043 218.168)" fill="#fff"/> - <path d="M478.35 549.21c0 9.785-7.932 17.717-17.717 17.717-9.785 0-17.717-7.932-17.717-17.717 0-9.785 7.932-17.717 17.717-17.717 9.785 0 17.717 7.932 17.717 17.717z" transform="matrix(-.13659 0 0 .12573 472.55 219.022)" fill="#fff"/> - <path d="M478.35 549.21c0 9.785-7.932 17.717-17.717 17.717-9.785 0-17.717-7.932-17.717-17.717 0-9.785 7.932-17.717 17.717-17.717 9.785 0 17.717 7.932 17.717 17.717z" transform="matrix(-.13659 0 0 .12573 465.596 220.088)" fill="#fff"/> - <path d="M478.35 549.21c0 9.785-7.932 17.717-17.717 17.717-9.785 0-17.717-7.932-17.717-17.717 0-9.785 7.932-17.717 17.717-17.717 9.785 0 17.717 7.932 17.717 17.717z" transform="matrix(-.13659 0 0 .12573 459.568 221.583)" fill="#fff"/> - </g> - <path d="M478.35 549.21c0 9.785-7.932 17.717-17.717 17.717-9.785 0-17.717-7.932-17.717-17.717 0-9.785 7.932-17.717 17.717-17.717 9.785 0 17.717 7.932 17.717 17.717z" transform="matrix(.13659 0 0 .12573 268.548 252.526)" stroke="#000" stroke-width="1pt" fill="#fff"/> - <path d="M478.35 549.21c0 9.785-7.932 17.717-17.717 17.717-9.785 0-17.717-7.932-17.717-17.717 0-9.785 7.932-17.717 17.717-17.717 9.785 0 17.717 7.932 17.717 17.717z" transform="matrix(.13659 0 0 .12573 266.128 247.432)" stroke="#000" stroke-width="1pt" fill="#fff"/> - <path d="M478.35 549.21c0 9.785-7.932 17.717-17.717 17.717-9.785 0-17.717-7.932-17.717-17.717 0-9.785 7.932-17.717 17.717-17.717 9.785 0 17.717 7.932 17.717 17.717z" transform="matrix(.13659 0 0 .12573 264.867 242.243)" stroke="#000" stroke-width="1pt" fill="#fff"/> - <path d="M478.35 549.21c0 9.785-7.932 17.717-17.717 17.717-9.785 0-17.717-7.932-17.717-17.717 0-9.785 7.932-17.717 17.717-17.717 9.785 0 17.717 7.932 17.717 17.717z" transform="matrix(.13659 0 0 .12573 263.94 236.694)" stroke="#000" stroke-width="1pt" fill="#fff"/> - <path d="M478.35 549.21c0 9.785-7.932 17.717-17.717 17.717-9.785 0-17.717-7.932-17.717-17.717 0-9.785 7.932-17.717 17.717-17.717 9.785 0 17.717 7.932 17.717 17.717z" transform="matrix(.13659 0 0 .12573 264.172 230.678)" stroke="#000" stroke-width="1pt" fill="#fff"/> - <path d="M478.35 549.21c0 9.785-7.932 17.717-17.717 17.717-9.785 0-17.717-7.932-17.717-17.717 0-9.785 7.932-17.717 17.717-17.717 9.785 0 17.717 7.932 17.717 17.717z" transform="matrix(.13659 0 0 .12573 266.23 224.996)" stroke="#000" stroke-width="1pt" fill="#fff"/> - <path d="M478.35 549.21c0 9.785-7.932 17.717-17.717 17.717-9.785 0-17.717-7.932-17.717-17.717 0-9.785 7.932-17.717 17.717-17.717 9.785 0 17.717 7.932 17.717 17.717z" transform="matrix(.13659 0 0 .12573 270.635 220.515)" stroke="#000" stroke-width="1pt" fill="#fff"/> - <path d="M478.35 549.21c0 9.785-7.932 17.717-17.717 17.717-9.785 0-17.717-7.932-17.717-17.717 0-9.785 7.932-17.717 17.717-17.717 9.785 0 17.717 7.932 17.717 17.717z" transform="matrix(.13659 0 0 .12573 276.662 217.527)" stroke="#000" stroke-width="1pt" fill="#fff"/> - <path d="M478.35 549.21c0 9.785-7.932 17.717-17.717 17.717-9.785 0-17.717-7.932-17.717-17.717 0-9.785 7.932-17.717 17.717-17.717 9.785 0 17.717 7.932 17.717 17.717z" transform="matrix(.13659 0 0 .12573 282.69 217.1)" stroke="#000" stroke-width="1pt" fill="#fff"/> - <path d="M478.35 549.21c0 9.785-7.932 17.717-17.717 17.717-9.785 0-17.717-7.932-17.717-17.717 0-9.785 7.932-17.717 17.717-17.717 9.785 0 17.717 7.932 17.717 17.717z" transform="matrix(.13659 0 0 .12573 289.181 217.314)" stroke="#000" stroke-width="1pt" fill="#fff"/> - <path d="M478.35 549.21c0 9.785-7.932 17.717-17.717 17.717-9.785 0-17.717-7.932-17.717-17.717 0-9.785 7.932-17.717 17.717-17.717 9.785 0 17.717 7.932 17.717 17.717z" transform="matrix(.13659 0 0 .12573 295.674 218.168)" stroke="#000" stroke-width="1pt" fill="#fff"/> - <path d="M478.35 549.21c0 9.785-7.932 17.717-17.717 17.717-9.785 0-17.717-7.932-17.717-17.717 0-9.785 7.932-17.717 17.717-17.717 9.785 0 17.717 7.932 17.717 17.717z" transform="matrix(.13659 0 0 .12573 302.166 219.021)" stroke="#000" stroke-width="1pt" fill="#fff"/> - <path d="M478.35 549.21c0 9.785-7.932 17.717-17.717 17.717-9.785 0-17.717-7.932-17.717-17.717 0-9.785 7.932-17.717 17.717-17.717 9.785 0 17.717 7.932 17.717 17.717z" transform="matrix(.13659 0 0 .12573 309.12 220.088)" stroke="#000" stroke-width="1pt" fill="#fff"/> - <path d="M478.35 549.21c0 9.785-7.932 17.717-17.717 17.717-9.785 0-17.717-7.932-17.717-17.717 0-9.785 7.932-17.717 17.717-17.717 9.785 0 17.717 7.932 17.717 17.717z" transform="matrix(.13659 0 0 .12573 315.149 221.583)" stroke="#000" stroke-width="1pt" fill="#fff"/> - <path d="M478.35 549.21c0 9.785-7.932 17.717-17.717 17.717-9.785 0-17.717-7.932-17.717-17.717 0-9.785 7.932-17.717 17.717-17.717 9.785 0 17.717 7.932 17.717 17.717z" transform="matrix(.13659 0 0 .12573 272.026 257.008)" stroke="#000" stroke-width="1pt" fill="#fff"/> - <path d="M531.5 584.65s-67.982-52.097-69.813-177.17c-1.053-71.929 34.38-124.02 122.96-124.02 124.02 0 301.18 53.149 301.18 53.149v17.717s-141.73-53.15-301.18-53.15c-70.866 0-106.3 52.087-106.3 105.24 0 88.583 70.867 178.23 70.867 178.23v141.73h-17.717v-141.73z" transform="matrix(.13659 0 0 .12573 266.36 252.74)" stroke="#000" stroke-width="1pt" fill="#fff100"/> - <path d="M1240.2 531.5s15.35-35.433 70.86-35.433c37.79 0 70.87 35.433 70.87 70.866v70.866h35.43v-70.866c0-35.47 35.44-70.866 70.87-70.866 53.15 0 70.87 35.433 70.87 35.433s0-106.3-70.87-106.3c-53.15 0-70.87 35.433-70.87 35.433s17.72-53.15 17.72-106.3-35.43-88.583-35.43-88.583c0 6.79-35.44 35.433-35.44 88.583 0 53.149 17.72 106.3 17.72 106.3s-17.72-35.433-70.87-35.433c-70.86 0-70.86 106.3-70.86 106.3z" transform="matrix(.04553 0 0 .0479 299.433 309.064)" stroke="#000" stroke-width="2.991" fill="#fff100"/> - <path d="M1240.2 531.5s15.35-35.433 70.86-35.433c37.79 0 70.87 35.433 70.87 70.866v70.866h35.43v-70.866c0-35.47 35.44-70.866 70.87-70.866 53.15 0 70.87 35.433 70.87 35.433s0-106.3-70.87-106.3c-53.15 0-70.87 35.433-70.87 35.433s17.72-53.15 17.72-106.3-35.43-88.583-35.43-88.583c0 6.79-35.44 35.433-35.44 88.583 0 53.149 17.72 106.3 17.72 106.3s-17.72-35.433-70.87-35.433c-70.86 0-70.86 106.3-70.86 106.3z" transform="matrix(.04553 0 0 .0479 347.83 309.064)" stroke="#000" stroke-width="2.991" fill="#fff100"/> - <path d="M531.5 832.68V673.23s35.433 53.15 88.583 53.15c43.489 0 88.582-70.866 88.582-70.866s41.515 53.149 88.583 53.149c42.021 0 88.516-68.572 88.516-68.572s43.207 68.572 88.649 68.572c45.441 0 88.581-53.149 88.581-53.149s46.29 70.866 106.3 70.866c53.15 0 70.87-53.15 70.87-53.15v159.45h-708.66z" transform="matrix(.13659 0 0 .12573 266.36 252.74)" stroke="#000" stroke-width="1pt" fill="#fff100"/> - <path d="M708.66 832.68V708.66s106.3 35.433 106.3 124.02h-106.3z" transform="matrix(.13659 0 0 .12573 242.16 252.74)" stroke="#000" stroke-width="1pt" fill="#fff100"/> - <path d="M708.66 832.68V708.66s106.3 35.433 106.3 124.02h-106.3z" transform="matrix(-.13659 0 0 .12573 532.547 252.74)" stroke="#000" stroke-width="1pt" fill="#fff100"/> - <path d="M602.36 832.68c0-88.583 106.37-144.6 106.37-144.6s106.23 56.016 106.23 144.6h-212.6z" transform="matrix(.13659 0 0 .12573 266.36 252.74)" stroke="#000" stroke-width="1pt" fill="#fff100"/> - <path d="M602.36 832.68c0-88.583 106.37-144.6 106.37-144.6s106.23 56.016 106.23 144.6h-212.6z" transform="matrix(.13659 0 0 .12573 314.758 252.74)" stroke="#000" stroke-width="1pt" fill="#fff100"/> - <path d="M584.65 847.53c0-88.583 124.08-159.45 124.08-159.45s123.95 70.866 123.95 159.45H584.65z" transform="matrix(.13659 0 0 .12573 290.558 250.873)" stroke="#000" stroke-width="1pt" fill="#fff100"/> - <path d="M1275.6 655.51c-35.43-17.716-166.02-35.433-376.28-35.433s-350.1 17.717-385.53 35.433c-35.434 17.717-35.434 53.149-.001 70.866 35.433 17.716 175.28 35.433 385.54 35.433s340.84-17.716 376.28-35.433c35.43-17.716 35.43-53.149 0-70.866z" transform="matrix(.13505 0 0 .12573 265.898 275.015)" stroke="#000" stroke-width="1pt" fill="#fff"/> - <path d="M435.757 366.342c0 4.455-40.256 4.455-48.399 4.455-8.797 0-48.398 1.207-48.398-4.455 0-4.455 39.928-4.455 48.398-4.455 8.47 0 48.399.906 48.399 4.455z" fill="gray"/> - <path d="M343.797 350.342c0 1.456-1.084 2.636-2.42 2.636-1.337 0-2.42-1.18-2.42-2.636s1.083-2.637 2.42-2.637c1.336 0 2.42 1.18 2.42 2.637zM435.753 350.342c0 1.456-1.083 2.636-2.42 2.636-1.336 0-2.42-1.18-2.42-2.636s1.084-2.637 2.42-2.637c1.337 0 2.42 1.18 2.42 2.637z" fill="#c00"/> - <path d="M392.195 348.932c0 1.456-2.167 2.636-4.84 2.636s-4.84-1.18-4.84-2.636 2.167-2.636 4.84-2.636 4.84 1.18 4.84 2.636z"/> - <path d="M415.41 348.932c0 1.456-1.625 2.636-3.63 2.636-2.004 0-3.63-1.18-3.63-2.636s1.626-2.636 3.63-2.636c2.005 0 3.63 1.18 3.63 2.636zM365.576 348.932c0 1.456-1.626 2.636-3.63 2.636-2.005 0-3.63-1.18-3.63-2.636s1.625-2.636 3.63-2.636c2.004 0 3.63 1.18 3.63 2.636z" fill="#006300"/> - <path d="M1257.9 496.06s35.44-53.15 70.87-53.15h35.43v35.433c0 53.15-53.15 70.867-53.15 70.867h141.74s-53.15-17.717-53.15-70.867V442.91h35.43c35.43 0 70.87 53.15 70.87 53.15V354.33s-35.44 53.15-70.87 53.15h-35.43v-35.433c0-53.15 53.15-70.867 53.15-70.867h-141.74s53.15 17.717 53.15 70.867v35.433h-35.43c-35.43 0-70.87-53.15-70.87-53.15v141.73z" transform="matrix(.07805 0 0 .07185 279.5 297.926)" stroke="#000" stroke-width="2.188" fill="#fff100"/> - <path d="M1381.9 549.21l70.87.001s-53.15-17.717-53.15-70.867v-35.433h35.43c35.43 0 70.87 53.15 70.87 53.15v-141.73s-35.44 53.15-70.87 53.15h-35.43v-35.433c0-53.15 53.15-70.867 53.15-70.867h-70.87v248.03z" transform="matrix(.03903 0 0 .06287 285.03 307.314)" stroke="#000" stroke-width="3.307" fill="#fff100"/> - <path d="M1381.9 549.21l70.87.001s-53.15-17.717-53.15-70.867v-35.433h35.43c35.43 0 70.87 53.15 70.87 53.15v-141.73s-35.44 53.15-70.87 53.15h-35.43v-35.433c0-53.15 53.15-70.867 53.15-70.867h-70.87v248.03z" transform="matrix(-.03903 0 0 .06287 489.685 307.314)" stroke="#000" stroke-width="3.307" fill="#fff100"/> - <path d="M903.54 602.36c0 9.785-7.932 17.717-17.717 17.717-9.785 0-17.717-7.932-17.717-17.717 0-9.785 7.932-17.717 17.717-17.717 9.785 0 17.717 7.932 17.717 17.717z" transform="matrix(.13659 0 0 .12573 266.36 252.74)" stroke="#000" stroke-width="1pt" fill="#fff"/> - <path d="M1257.9 496.06s35.44-53.15 70.87-53.15h35.43v35.433c0 53.15-53.15 70.867-53.15 70.867h141.74s-53.15-17.717-53.15-70.867V442.91h35.43c35.43 0 70.87 53.15 70.87 53.15V354.33s-35.44 53.15-70.87 53.15h-35.43v-35.433c0-53.15 53.15-70.867 53.15-70.867h-141.74s53.15 17.717 53.15 70.867v35.433h-35.43c-35.43 0-70.87-53.15-70.87-53.15v141.73z" transform="matrix(.07805 0 0 .07185 279.5 251.15)" stroke="#000" stroke-width="2.188" fill="#fff100"/> - <path d="M903.54 602.36c0 9.785-7.932 17.717-17.717 17.717-9.785 0-17.717-7.932-17.717-17.717 0-9.785 7.932-17.717 17.717-17.717 9.785 0 17.717 7.932 17.717 17.717z" transform="matrix(.13659 0 0 .12573 266.592 206.336)" stroke="#000" stroke-width="1pt" fill="#fff"/> - <path stroke="#000" stroke-width="1pt" fill="#fff100" d="M850.39 655.51h70.866v53.15H850.39z" transform="matrix(.13659 0 0 .12573 266.36 208.19)"/> - <path stroke="#000" stroke-width="1pt" fill="#fff100" d="M850.39 683.3h70.866v202.53H850.39z" transform="matrix(.13659 0 0 .12573 266.36 208.19)"/> - <path d="M478.35 549.21c0 9.785-7.932 17.717-17.717 17.717-9.785 0-17.717-7.932-17.717-17.717 0-9.785 7.932-17.717 17.717-17.717 9.785 0 17.717 7.932 17.717 17.717z" transform="matrix(.13659 0 0 .12573 324.438 246.057)" stroke="#000" stroke-width="1pt" fill="#fff"/> - <path d="M478.35 549.21c0 9.785-7.932 17.717-17.717 17.717-9.785 0-17.717-7.932-17.717-17.717 0-9.785 7.932-17.717 17.717-17.717 9.785 0 17.717 7.932 17.717 17.717z" transform="matrix(.13659 0 0 .12573 324.438 240.295)" stroke="#000" stroke-width="1pt" fill="#fff"/> - <path d="M478.35 549.21c0 9.785-7.932 17.717-17.717 17.717-9.785 0-17.717-7.932-17.717-17.717 0-9.785 7.932-17.717 17.717-17.717 9.785 0 17.717 7.932 17.717 17.717z" transform="matrix(.13659 0 0 .12573 324.438 234.92)" stroke="#000" stroke-width="1pt" fill="#fff"/> - <path d="M478.35 549.21c0 9.785-7.932 17.717-17.717 17.717-9.785 0-17.717-7.932-17.717-17.717 0-9.785 7.932-17.717 17.717-17.717 9.785 0 17.717 7.932 17.717 17.717z" transform="matrix(.13659 0 0 .12573 324.438 229.372)" stroke="#000" stroke-width="1pt" fill="#fff"/> - <path d="M392.495 357.482c0 1-2.202 1.81-4.918 1.81s-4.918-.81-4.918-1.81 2.202-1.811 4.918-1.811c2.717 0 4.918.81 4.918 1.81zM437.065 361.903c-.272.685-2.668.742-5.35.127-2.683-.615-4.638-1.67-4.366-2.355.273-.686 2.668-.743 5.35-.128 2.684.616 4.638 1.67 4.366 2.356zM418.437 358.899c-.108.882-2.439 1.44-5.206 1.247-2.768-.194-4.925-1.065-4.817-1.947.108-.882 2.439-1.44 5.206-1.247 2.768.193 4.925 1.065 4.817 1.947zM336.567 361.903c.272.685 2.668.742 5.35.127 2.683-.615 4.638-1.67 4.366-2.355-.273-.686-2.668-.743-5.35-.128-2.684.616-4.638 1.67-4.366 2.356zM356.128 358.472c.108.882 2.439 1.44 5.206 1.247 2.768-.193 4.925-1.065 4.817-1.947-.108-.882-2.439-1.44-5.207-1.247-2.767.193-4.924 1.065-4.816 1.947z"/> - </g> - </g> -</svg> diff --git a/img/flags/4x3/iq.svg b/img/flags/4x3/iq.svg deleted file mode 100644 index c1fb196..0000000 --- a/img/flags/4x3/iq.svg +++ /dev/null @@ -1,10 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" height="480" width="640" viewBox="0 0 640 480"> - <path fill="#fff" d="M0 160h640v160H0z"/> - <path fill="#ce1126" d="M0 0h640v160H0z"/> - <path d="M0 320h640v160H0z"/> - <g transform="translate(-179.27 -92.847) scale(1.75182)" fill="#007a3d"> - <path d="M325.525 173.177c-.558-.294-1.186-.767-1.395-1.053-.314-.44-.13-.456 1.163-.105 2.32.628 3.815.383 5.298-.873l1.31-1.103 1.54.784c.847.428 1.747.724 2.007.656.667-.176 2.05-1.95 2.005-2.564-.054-.76.587-.57.896.263.615 1.63-.28 3.503-1.865 3.918-.774.203-1.488.128-2.66-.28-1.438-.5-1.683-.494-2.405.058-1.617 1.24-3.87 1.356-5.893.3zm5.733-5.242c-.563-.716-1.24-3.423-1.02-4.088.192-.575.39-.69.914-.526.918.288 1.13.92.993 3.064-.107 1.748-.366 2.207-.887 1.55zm-67.515-1.945c-.185 1.31 2.325 4.568 3.458 5.158-.77.345-1.727.19-2.433.577-3.948 3.948-18.367 18.005-21 21.366 7.8.155 16.45-.105 23.76-.44-.006-5.298 5.02-5.572 8.382-7.502 1.73 2.725 6.074 2.516 6.617 6.618 0 4.91.01 12.306.01 17.646H215.91c-1.17 5.176-5.843 9.125-12.353 7.5 2.014-2.103 5.406-2.827 6.62-5.734 1.024-6.365-2.046-10.296-4.032-13.907 3.284-1.194 3.782-1.492 7.12-3.736-2.342 7.12 6.092 6.338 12.354 6.175.21-2.418.088-5.272-1.767-5.625 2.396-.87 2.794-1.168 6.62-4.412v9.592c14.885 0 30.942-.11 46.138-.11 0-3.003.796-7.825-1.58-7.825-2.27 0-.107 6.173-1.87 6.173h-35.63c0-1.328-.034-4.104-.034-6.104 1.51-1.512 1.33-1.38 11.648-11.7 1.028-1.028 8.266-7.566 14.6-13.71zm89.06-.253c2.488 1.338 4.457 3.19 7.502 3.97-.353 1.26-1.475 1.76-1.77 3.088v26.91c3.403.75 4.12-1.178 5.738-2.205.442 4.307 3.185 8.53 3.088 11.91h-14.558v-43.673zM333.39 180.15s5.297-4.472 5.297-4.644v23.485l3.814-.005c0-8.948-.117-18.023-.117-26.338 1.548-1.55 4.58-3.792 5.338-5.36v42.06c-10.745 0-30.792.013-33.442.013-.493-8.73-.577-17.77 9.6-15.827v-3.562c-.31-.608-.87.148-1-.644 1.617-1.617 2.164-2.03 6.54-5.85 0 4.61.08 15.498.08 15.498 1.07 0 3.153.004 3.857.004 0 0 .036-18.228.036-18.83zm-12.553 18.6c.716 1.076 3.155 1.057 3.04-.754-.41-1.493-3.615-.924-3.04.755z"/> - <circle cx="224.026" cy="214.369" r="2.042"/> - <path d="M287.048 165.78c2.488 1.338 4.457 3.19 7.502 3.97-.353 1.26-1.476 1.76-1.768 3.087v26.91c3.4.75 4.117-1.178 5.736-2.205.44 4.307 3.185 8.53 3.088 11.91h-14.56c.002-14.555.002-29.114.002-43.673z"/> - </g> -</svg> diff --git a/img/flags/4x3/ir.svg b/img/flags/4x3/ir.svg deleted file mode 100644 index 9a6feaf..0000000 --- a/img/flags/4x3/ir.svg +++ /dev/null @@ -1,223 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" height="480" width="640" viewBox="0 0 640 480"> - <defs> - <clipPath id="a"> - <path fill-opacity=".67" d="M-85.311 0h682.67v512h-682.67z"/> - </clipPath> - </defs> - <g clip-path="url(#a)" fill-rule="evenodd" transform="translate(79.98) scale(.9375)"> - <path fill="#fff" d="M-191.96 0h896v512h-896z"/> - <path fill="#da0000" d="M-191.96 343.84h896V512h-896z"/> - <g stroke-width="1pt" fill="#fff"> - <path d="M-21.628 350.958h49.07v3.377h-49.07zM-14.312 367.842h3.377v3.28h-3.377zM27.57 367.736v3.377h-9.807v-3.377zM32.844 350.958h3.377v20.16h-3.377z"/> - <path d="M52.379 367.736v3.377H33.794v-3.377zM17.763 359.849h3.377v11.27h-3.377z"/> - <path d="M49.614 350.958h3.377v20.16h-3.377zM41.172 350.958h3.377v20.16h-3.377zM-3.627 358.982v3.377h-17.91v-3.377zM35.673 358.982v3.377h-17.91v-3.377z"/> - <path d="M17.763 359.849h3.377v11.27h-3.377z"/> - <path d="M17.763 359.849h3.377v11.27h-3.377z"/> - <path d="M17.763 359.849h3.377v11.27h-3.377zM-21.537 359.849h3.377v11.27h-3.377zM7.27 359.849h3.376v11.27H7.27zM-7.002 359.849h3.377v11.27h-3.377z"/> - <path d="M9.639 367.736v3.377h-15.14v-3.377zM10.646 358.982v3.377H1.048v-3.377z"/> - </g> - <g stroke-width="1pt" fill="#fff"> - <path d="M-102.228 350.958h49.07v3.377h-49.07zM-94.912 367.842h3.377v3.28h-3.377zM-53.03 367.736v3.377h-9.807v-3.377zM-47.756 350.958h3.377v20.16h-3.377z"/> - <path d="M-28.221 367.736v3.377h-18.585v-3.377zM-62.837 359.849h3.377v11.27h-3.377z"/> - <path d="M-30.986 350.958h3.377v20.16h-3.377zM-39.428 350.958h3.377v20.16h-3.377zM-84.227 358.982v3.377h-17.91v-3.377zM-44.927 358.982v3.377h-17.91v-3.377z"/> - <path d="M-62.837 359.849h3.377v11.27h-3.377z"/> - <path d="M-62.837 359.849h3.377v11.27h-3.377z"/> - <path d="M-62.837 359.849h3.377v11.27h-3.377zM-102.137 359.849h3.377v11.27h-3.377zM-73.33 359.849h3.376v11.27h-3.377zM-87.602 359.849h3.377v11.27h-3.377z"/> - <path d="M-70.961 367.736v3.377h-15.14v-3.377zM-69.954 358.982v3.377h-9.598v-3.377z"/> - </g> - <g stroke-width="1pt" fill="#fff"> - <path d="M58.297 350.958h49.07v3.377h-49.07zM65.613 367.842h3.376v3.28h-3.376zM107.494 367.736v3.377h-9.807v-3.377zM112.769 350.958h3.377v20.16h-3.377z"/> - <path d="M132.303 367.736v3.377H113.72v-3.377zM97.687 359.849h3.377v11.27h-3.377z"/> - <path d="M129.539 350.958h3.377v20.16h-3.377zM121.097 350.958h3.377v20.16h-3.377zM76.298 358.982v3.377h-17.91v-3.377zM115.597 358.982v3.377h-17.91v-3.377z"/> - <path d="M97.687 359.849h3.377v11.27h-3.377z"/> - <path d="M97.687 359.849h3.377v11.27h-3.377z"/> - <path d="M97.687 359.849h3.377v11.27h-3.377zM58.388 359.849h3.377v11.27h-3.377zM87.194 359.849h3.377v11.27h-3.377zM72.922 359.849H76.3v11.27h-3.377z"/> - <path d="M89.563 367.736v3.377h-15.14v-3.377zM90.57 358.982v3.377h-9.598v-3.377z"/> - </g> - <g stroke-width="1pt" fill="#fff"> - <path d="M622.682 350.958h49.07v3.377h-49.07zM629.998 367.842h3.377v3.28h-3.377zM671.88 367.736v3.377h-9.807v-3.377zM677.154 350.958h3.377v20.16h-3.377z"/> - <path d="M696.689 367.736v3.377h-18.585v-3.377zM662.073 359.849h3.377v11.27h-3.377z"/> - <path d="M693.924 350.958h3.377v20.16h-3.377zM685.482 350.958h3.377v20.16h-3.377zM640.683 358.982v3.377h-17.91v-3.377zM679.983 358.982v3.377h-17.91v-3.377z"/> - <path d="M662.073 359.849h3.377v11.27h-3.377z"/> - <path d="M662.073 359.849h3.377v11.27h-3.377z"/> - <path d="M662.073 359.849h3.377v11.27h-3.377zM622.773 359.849h3.377v11.27h-3.377zM651.58 359.849h3.376v11.27h-3.377zM637.308 359.849h3.377v11.27h-3.377z"/> - <path d="M653.949 367.736v3.377h-15.14v-3.377zM654.956 358.982v3.377h-9.598v-3.377z"/> - </g> - <g stroke-width="1pt" fill="#fff"> - <path d="M138.742 350.958h49.07v3.377h-49.07zM146.058 367.842h3.377v3.28h-3.377zM187.94 367.736v3.377h-9.807v-3.377zM193.214 350.958h3.377v20.16h-3.377z"/> - <path d="M212.749 367.736v3.377h-18.585v-3.377zM178.133 359.849h3.377v11.27h-3.377z"/> - <path d="M209.984 350.958h3.377v20.16h-3.377zM201.542 350.958h3.377v20.16h-3.377zM156.743 358.982v3.377h-17.91v-3.377zM196.043 358.982v3.377h-17.91v-3.377z"/> - <path d="M178.133 359.849h3.377v11.27h-3.377z"/> - <path d="M178.133 359.849h3.377v11.27h-3.377z"/> - <path d="M178.133 359.849h3.377v11.27h-3.377zM138.833 359.849h3.377v11.27h-3.377zM167.64 359.849h3.376v11.27h-3.377zM153.368 359.849h3.377v11.27h-3.377z"/> - <path d="M170.009 367.736v3.377h-15.14v-3.377zM171.016 358.982v3.377h-9.598v-3.377z"/> - </g> - <g stroke-width="1pt" fill="#fff"> - <path d="M219.482 350.958h49.07v3.377h-49.07zM226.798 367.842h3.377v3.28h-3.377zM268.68 367.736v3.377h-9.807v-3.377zM273.954 350.958h3.377v20.16h-3.377z"/> - <path d="M293.489 367.736v3.377h-18.585v-3.377zM258.873 359.849h3.377v11.27h-3.377z"/> - <path d="M290.724 350.958h3.377v20.16h-3.377zM282.282 350.958h3.377v20.16h-3.377zM237.483 358.982v3.377h-17.91v-3.377zM276.783 358.982v3.377h-17.91v-3.377z"/> - <path d="M258.873 359.849h3.377v11.27h-3.377z"/> - <path d="M258.873 359.849h3.377v11.27h-3.377z"/> - <path d="M258.873 359.849h3.377v11.27h-3.377zM219.573 359.849h3.377v11.27h-3.377zM248.38 359.849h3.376v11.27h-3.377zM234.108 359.849h3.377v11.27h-3.377z"/> - <path d="M250.749 367.736v3.377h-15.14v-3.377zM251.756 358.982v3.377h-9.598v-3.377z"/> - </g> - <path fill="#239f40" d="M-191.96 0h896v168.16h-896z"/> - <g stroke-width="1pt" fill="#fff"> - <path d="M300.692 350.958h49.07v3.377h-49.07zM308.008 367.842h3.377v3.28h-3.377zM349.89 367.736v3.377h-9.807v-3.377zM355.164 350.958h3.377v20.16h-3.377z"/> - <path d="M374.699 367.736v3.377h-18.585v-3.377zM340.083 359.849h3.377v11.27h-3.377z"/> - <path d="M371.934 350.958h3.377v20.16h-3.377zM363.492 350.958h3.377v20.16h-3.377zM318.693 358.982v3.377h-17.91v-3.377zM357.993 358.982v3.377h-17.91v-3.377z"/> - <path d="M340.083 359.849h3.377v11.27h-3.377z"/> - <path d="M340.083 359.849h3.377v11.27h-3.377z"/> - <path d="M340.083 359.849h3.377v11.27h-3.377zM300.783 359.849h3.377v11.27h-3.377zM329.59 359.849h3.376v11.27h-3.377zM315.318 359.849h3.377v11.27h-3.377z"/> - <path d="M331.959 367.736v3.377h-15.14v-3.377zM332.966 358.982v3.377h-9.598v-3.377z"/> - </g> - <g stroke-width="1pt" fill="#fff"> - <path d="M381.422 350.958h49.07v3.377h-49.07zM388.738 367.842h3.377v3.28h-3.377zM430.62 367.736v3.377h-9.807v-3.377zM435.894 350.958h3.377v20.16h-3.377z"/> - <path d="M455.429 367.736v3.377h-18.585v-3.377zM420.813 359.849h3.377v11.27h-3.377z"/> - <path d="M452.664 350.958h3.377v20.16h-3.377zM444.222 350.958h3.377v20.16h-3.377zM399.423 358.982v3.377h-17.91v-3.377zM438.723 358.982v3.377h-17.91v-3.377z"/> - <path d="M420.813 359.849h3.377v11.27h-3.377z"/> - <path d="M420.813 359.849h3.377v11.27h-3.377z"/> - <path d="M420.813 359.849h3.377v11.27h-3.377zM381.513 359.849h3.377v11.27h-3.377zM410.32 359.849h3.376v11.27h-3.377zM396.048 359.849h3.377v11.27h-3.377z"/> - <path d="M412.689 367.736v3.377h-15.14v-3.377zM413.696 358.982v3.377h-9.598v-3.377z"/> - </g> - <g stroke-width="1pt" fill="#fff"> - <path d="M462.162 350.958h49.07v3.377h-49.07zM469.478 367.842h3.377v3.28h-3.377zM511.36 367.736v3.377h-9.807v-3.377zM516.634 350.958h3.377v20.16h-3.377z"/> - <path d="M536.169 367.736v3.377h-18.585v-3.377zM501.553 359.849h3.377v11.27h-3.377z"/> - <path d="M533.404 350.958h3.377v20.16h-3.377zM524.962 350.958h3.377v20.16h-3.377zM480.163 358.982v3.377h-17.91v-3.377zM519.463 358.982v3.377h-17.91v-3.377z"/> - <path d="M501.553 359.849h3.377v11.27h-3.377z"/> - <path d="M501.553 359.849h3.377v11.27h-3.377z"/> - <path d="M501.553 359.849h3.377v11.27h-3.377zM462.253 359.849h3.377v11.27h-3.377zM491.06 359.849h3.376v11.27h-3.377zM476.788 359.849h3.377v11.27h-3.377z"/> - <path d="M493.429 367.736v3.377h-15.14v-3.377zM494.436 358.982v3.377h-9.598v-3.377z"/> - </g> - <g stroke-width="1pt" fill="#fff"> - <path d="M543.372 350.958h49.07v3.377h-49.07zM550.688 367.842h3.377v3.28h-3.377zM592.57 367.736v3.377h-9.807v-3.377zM597.844 350.958h3.377v20.16h-3.377z"/> - <path d="M617.379 367.736v3.377h-18.585v-3.377zM582.763 359.849h3.377v11.27h-3.377z"/> - <path d="M614.614 350.958h3.377v20.16h-3.377zM606.172 350.958h3.377v20.16h-3.377zM561.373 358.982v3.377h-17.91v-3.377zM600.673 358.982v3.377h-17.91v-3.377z"/> - <path d="M582.763 359.849h3.377v11.27h-3.377z"/> - <path d="M582.763 359.849h3.377v11.27h-3.377z"/> - <path d="M582.763 359.849h3.377v11.27h-3.377zM543.463 359.849h3.377v11.27h-3.377zM572.27 359.849h3.376v11.27h-3.377zM557.998 359.849h3.377v11.27h-3.377z"/> - <path d="M574.639 367.736v3.377h-15.14v-3.377zM575.646 358.982v3.377h-9.598v-3.377z"/> - </g> - <g stroke-width="1pt" fill="#fff"> - <path d="M-183.788 350.958h49.07v3.377h-49.07zM-176.472 367.842h3.377v3.28h-3.377zM-134.59 367.736v3.377h-9.807v-3.377zM-129.316 350.958h3.377v20.16h-3.377z"/> - <path d="M-109.781 367.736v3.377h-18.585v-3.377zM-144.397 359.849h3.377v11.27h-3.377z"/> - <path d="M-112.546 350.958h3.377v20.16h-3.377zM-120.988 350.958h3.377v20.16h-3.377zM-165.787 358.982v3.377h-17.91v-3.377zM-126.487 358.982v3.377h-17.91v-3.377z"/> - <path d="M-144.397 359.849h3.377v11.27h-3.377z"/> - <path d="M-144.397 359.849h3.377v11.27h-3.377z"/> - <path d="M-144.397 359.849h3.377v11.27h-3.377zM-183.697 359.849h3.377v11.27h-3.377zM-154.89 359.849h3.376v11.27h-3.377zM-169.162 359.849h3.377v11.27h-3.377z"/> - <path d="M-152.521 367.736v3.377h-15.14v-3.377zM-151.514 358.982v3.377h-9.598v-3.377z"/> - </g> - <g stroke-width="1pt" fill="#fff"> - <path d="M-21.628 143.442h49.07v3.377h-49.07zM-14.312 160.326h3.377v3.28h-3.377zM27.57 160.22v3.377h-9.807v-3.377zM32.844 143.442h3.377v20.16h-3.377z"/> - <path d="M52.379 160.22v3.377H33.794v-3.377zM17.763 152.333h3.377v11.27h-3.377z"/> - <path d="M49.614 143.442h3.377v20.16h-3.377zM41.172 143.442h3.377v20.16h-3.377zM-3.627 151.466v3.377h-17.91v-3.377zM35.673 151.466v3.377h-17.91v-3.377z"/> - <path d="M17.763 152.333h3.377v11.27h-3.377z"/> - <path d="M17.763 152.333h3.377v11.27h-3.377z"/> - <path d="M17.763 152.333h3.377v11.27h-3.377zM-21.537 152.333h3.377v11.27h-3.377zM7.27 152.333h3.376v11.27H7.27zM-7.002 152.333h3.377v11.27h-3.377z"/> - <path d="M9.639 160.22v3.377h-15.14v-3.377zM10.646 151.466v3.377H1.048v-3.377z"/> - </g> - <g stroke-width="1pt" fill="#fff"> - <path d="M-102.228 143.442h49.07v3.377h-49.07zM-94.912 160.326h3.377v3.28h-3.377zM-53.03 160.22v3.377h-9.807v-3.377zM-47.756 143.442h3.377v20.16h-3.377z"/> - <path d="M-28.221 160.22v3.377h-18.585v-3.377zM-62.837 152.333h3.377v11.27h-3.377z"/> - <path d="M-30.986 143.442h3.377v20.16h-3.377zM-39.428 143.442h3.377v20.16h-3.377zM-84.227 151.466v3.377h-17.91v-3.377zM-44.927 151.466v3.377h-17.91v-3.377z"/> - <path d="M-62.837 152.333h3.377v11.27h-3.377z"/> - <path d="M-62.837 152.333h3.377v11.27h-3.377z"/> - <path d="M-62.837 152.333h3.377v11.27h-3.377zM-102.137 152.333h3.377v11.27h-3.377zM-73.33 152.333h3.376v11.27h-3.377zM-87.602 152.333h3.377v11.27h-3.377z"/> - <path d="M-70.961 160.22v3.377h-15.14v-3.377zM-69.954 151.466v3.377h-9.598v-3.377z"/> - </g> - <g stroke-width="1pt" fill="#fff"> - <path d="M58.297 143.442h49.07v3.377h-49.07zM65.613 160.326h3.376v3.28h-3.376zM107.494 160.22v3.377h-9.807v-3.377zM112.769 143.442h3.377v20.16h-3.377z"/> - <path d="M132.303 160.22v3.377H113.72v-3.377zM97.687 152.333h3.377v11.27h-3.377z"/> - <path d="M129.539 143.442h3.377v20.16h-3.377zM121.097 143.442h3.377v20.16h-3.377zM76.298 151.466v3.377h-17.91v-3.377zM115.597 151.466v3.377h-17.91v-3.377z"/> - <path d="M97.687 152.333h3.377v11.27h-3.377z"/> - <path d="M97.687 152.333h3.377v11.27h-3.377z"/> - <path d="M97.687 152.333h3.377v11.27h-3.377zM58.388 152.333h3.377v11.27h-3.377zM87.194 152.333h3.377v11.27h-3.377zM72.922 152.333H76.3v11.27h-3.377z"/> - <path d="M89.563 160.22v3.377h-15.14v-3.377zM90.57 151.466v3.377h-9.598v-3.377z"/> - </g> - <g stroke-width="1pt" fill="#fff"> - <path d="M622.682 143.442h49.07v3.377h-49.07zM629.998 160.326h3.377v3.28h-3.377zM671.88 160.22v3.377h-9.807v-3.377zM677.154 143.442h3.377v20.16h-3.377z"/> - <path d="M696.689 160.22v3.377h-18.585v-3.377zM662.073 152.333h3.377v11.27h-3.377z"/> - <path d="M693.924 143.442h3.377v20.16h-3.377zM685.482 143.442h3.377v20.16h-3.377zM640.683 151.466v3.377h-17.91v-3.377zM679.983 151.466v3.377h-17.91v-3.377z"/> - <path d="M662.073 152.333h3.377v11.27h-3.377z"/> - <path d="M662.073 152.333h3.377v11.27h-3.377z"/> - <path d="M662.073 152.333h3.377v11.27h-3.377zM622.773 152.333h3.377v11.27h-3.377zM651.58 152.333h3.376v11.27h-3.377zM637.308 152.333h3.377v11.27h-3.377z"/> - <path d="M653.949 160.22v3.377h-15.14v-3.377zM654.956 151.466v3.377h-9.598v-3.377z"/> - </g> - <g stroke-width="1pt" fill="#fff"> - <path d="M138.742 143.442h49.07v3.377h-49.07zM146.058 160.326h3.377v3.28h-3.377zM187.94 160.22v3.377h-9.807v-3.377zM193.214 143.442h3.377v20.16h-3.377z"/> - <path d="M212.749 160.22v3.377h-18.585v-3.377zM178.133 152.333h3.377v11.27h-3.377z"/> - <path d="M209.984 143.442h3.377v20.16h-3.377zM201.542 143.442h3.377v20.16h-3.377zM156.743 151.466v3.377h-17.91v-3.377zM196.043 151.466v3.377h-17.91v-3.377z"/> - <path d="M178.133 152.333h3.377v11.27h-3.377z"/> - <path d="M178.133 152.333h3.377v11.27h-3.377z"/> - <path d="M178.133 152.333h3.377v11.27h-3.377zM138.833 152.333h3.377v11.27h-3.377zM167.64 152.333h3.376v11.27h-3.377zM153.368 152.333h3.377v11.27h-3.377z"/> - <path d="M170.009 160.22v3.377h-15.14v-3.377zM171.016 151.466v3.377h-9.598v-3.377z"/> - </g> - <g stroke-width="1pt" fill="#fff"> - <path d="M219.482 143.442h49.07v3.377h-49.07zM226.798 160.326h3.377v3.28h-3.377zM268.68 160.22v3.377h-9.807v-3.377zM273.954 143.442h3.377v20.16h-3.377z"/> - <path d="M293.489 160.22v3.377h-18.585v-3.377zM258.873 152.333h3.377v11.27h-3.377z"/> - <path d="M290.724 143.442h3.377v20.16h-3.377zM282.282 143.442h3.377v20.16h-3.377zM237.483 151.466v3.377h-17.91v-3.377zM276.783 151.466v3.377h-17.91v-3.377z"/> - <path d="M258.873 152.333h3.377v11.27h-3.377z"/> - <path d="M258.873 152.333h3.377v11.27h-3.377z"/> - <path d="M258.873 152.333h3.377v11.27h-3.377zM219.573 152.333h3.377v11.27h-3.377zM248.38 152.333h3.376v11.27h-3.377zM234.108 152.333h3.377v11.27h-3.377z"/> - <path d="M250.749 160.22v3.377h-15.14v-3.377zM251.756 151.466v3.377h-9.598v-3.377z"/> - </g> - <g stroke-width="1pt" fill="#fff"> - <path d="M300.692 143.442h49.07v3.377h-49.07zM308.008 160.326h3.377v3.28h-3.377zM349.89 160.22v3.377h-9.807v-3.377zM355.164 143.442h3.377v20.16h-3.377z"/> - <path d="M374.699 160.22v3.377h-18.585v-3.377zM340.083 152.333h3.377v11.27h-3.377z"/> - <path d="M371.934 143.442h3.377v20.16h-3.377zM363.492 143.442h3.377v20.16h-3.377zM318.693 151.466v3.377h-17.91v-3.377zM357.993 151.466v3.377h-17.91v-3.377z"/> - <path d="M340.083 152.333h3.377v11.27h-3.377z"/> - <path d="M340.083 152.333h3.377v11.27h-3.377z"/> - <path d="M340.083 152.333h3.377v11.27h-3.377zM300.783 152.333h3.377v11.27h-3.377zM329.59 152.333h3.376v11.27h-3.377zM315.318 152.333h3.377v11.27h-3.377z"/> - <path d="M331.959 160.22v3.377h-15.14v-3.377zM332.966 151.466v3.377h-9.598v-3.377z"/> - </g> - <g stroke-width="1pt" fill="#fff"> - <path d="M381.422 143.442h49.07v3.377h-49.07zM388.738 160.326h3.377v3.28h-3.377zM430.62 160.22v3.377h-9.807v-3.377zM435.894 143.442h3.377v20.16h-3.377z"/> - <path d="M455.429 160.22v3.377h-18.585v-3.377zM420.813 152.333h3.377v11.27h-3.377z"/> - <path d="M452.664 143.442h3.377v20.16h-3.377zM444.222 143.442h3.377v20.16h-3.377zM399.423 151.466v3.377h-17.91v-3.377zM438.723 151.466v3.377h-17.91v-3.377z"/> - <path d="M420.813 152.333h3.377v11.27h-3.377z"/> - <path d="M420.813 152.333h3.377v11.27h-3.377z"/> - <path d="M420.813 152.333h3.377v11.27h-3.377zM381.513 152.333h3.377v11.27h-3.377zM410.32 152.333h3.376v11.27h-3.377zM396.048 152.333h3.377v11.27h-3.377z"/> - <path d="M412.689 160.22v3.377h-15.14v-3.377zM413.696 151.466v3.377h-9.598v-3.377z"/> - </g> - <g stroke-width="1pt" fill="#fff"> - <path d="M462.162 143.442h49.07v3.377h-49.07zM469.478 160.326h3.377v3.28h-3.377zM511.36 160.22v3.377h-9.807v-3.377zM516.634 143.442h3.377v20.16h-3.377z"/> - <path d="M536.169 160.22v3.377h-18.585v-3.377zM501.553 152.333h3.377v11.27h-3.377z"/> - <path d="M533.404 143.442h3.377v20.16h-3.377zM524.962 143.442h3.377v20.16h-3.377zM480.163 151.466v3.377h-17.91v-3.377zM519.463 151.466v3.377h-17.91v-3.377z"/> - <path d="M501.553 152.333h3.377v11.27h-3.377z"/> - <path d="M501.553 152.333h3.377v11.27h-3.377z"/> - <path d="M501.553 152.333h3.377v11.27h-3.377zM462.253 152.333h3.377v11.27h-3.377zM491.06 152.333h3.376v11.27h-3.377zM476.788 152.333h3.377v11.27h-3.377z"/> - <path d="M493.429 160.22v3.377h-15.14v-3.377zM494.436 151.466v3.377h-9.598v-3.377z"/> - </g> - <g stroke-width="1pt" fill="#fff"> - <path d="M543.372 143.442h49.07v3.377h-49.07zM550.688 160.326h3.377v3.28h-3.377zM592.57 160.22v3.377h-9.807v-3.377zM597.844 143.442h3.377v20.16h-3.377z"/> - <path d="M617.379 160.22v3.377h-18.585v-3.377zM582.763 152.333h3.377v11.27h-3.377z"/> - <path d="M614.614 143.442h3.377v20.16h-3.377zM606.172 143.442h3.377v20.16h-3.377zM561.373 151.466v3.377h-17.91v-3.377zM600.673 151.466v3.377h-17.91v-3.377z"/> - <path d="M582.763 152.333h3.377v11.27h-3.377z"/> - <path d="M582.763 152.333h3.377v11.27h-3.377z"/> - <path d="M582.763 152.333h3.377v11.27h-3.377zM543.463 152.333h3.377v11.27h-3.377zM572.27 152.333h3.376v11.27h-3.377zM557.998 152.333h3.377v11.27h-3.377z"/> - <path d="M574.639 160.22v3.377h-15.14v-3.377zM575.646 151.466v3.377h-9.598v-3.377z"/> - </g> - <g stroke-width="1pt" fill="#fff"> - <path d="M-183.788 143.442h49.07v3.377h-49.07zM-176.472 160.326h3.377v3.28h-3.377zM-134.59 160.22v3.377h-9.807v-3.377zM-129.316 143.442h3.377v20.16h-3.377z"/> - <path d="M-109.781 160.22v3.377h-18.585v-3.377zM-144.397 152.333h3.377v11.27h-3.377z"/> - <path d="M-112.546 143.442h3.377v20.16h-3.377zM-120.988 143.442h3.377v20.16h-3.377zM-165.787 151.466v3.377h-17.91v-3.377zM-126.487 151.466v3.377h-17.91v-3.377z"/> - <path d="M-144.397 152.333h3.377v11.27h-3.377z"/> - <path d="M-144.397 152.333h3.377v11.27h-3.377z"/> - <path d="M-144.397 152.333h3.377v11.27h-3.377zM-183.697 152.333h3.377v11.27h-3.377zM-154.89 152.333h3.376v11.27h-3.377zM-169.162 152.333h3.377v11.27h-3.377z"/> - <path d="M-152.521 160.22v3.377h-15.14v-3.377zM-151.514 151.466v3.377h-9.598v-3.377z"/> - </g> - <g stroke-width="1pt" fill="#d90000"> - <path d="M-68.83 339.507h6.048v10.505h-6.048zM91.702 339.507h6.048v10.505h-6.048zM-192.003 339.507h6.048v10.505h-6.048zM-110.528 339.507h6.048v10.505h-6.048zM-29.633 339.507h6.048v10.505h-6.048zM10.391 339.507h6.049v10.505H10.39zM51.252 339.507H57.3v10.505h-6.048zM131.727 339.507h6.048v10.505h-6.048zM334.783 339.507h6.048v10.505h-6.048zM172.586 339.507h6.048v10.505h-6.048zM212.621 339.507h6.048v10.505h-6.048zM253.059 339.507h6.048v10.505h-6.048zM293.507 339.507h6.048v10.505h-6.048zM616.65 339.507h6.047v10.505h-6.048zM373.98 339.507h6.048v10.505h-6.048zM414.84 339.507h6.049v10.505h-6.049zM456.124 339.507h6.049v10.505h-6.049zM494.9 339.507h6.049v10.505H494.9zM536.174 339.507h6.048v10.505h-6.048zM576.622 339.507h6.048v10.505h-6.048zM696.296 339.507h6.048v10.505h-6.048zM657.518 339.507h6.048v10.505h-6.048zM-151.39 339.507h6.048v10.505h-6.048z"/> - </g> - <g stroke-width="1pt" fill="#239e3f"> - <path d="M-68.83 162.607h6.048v10.505h-6.048zM91.702 162.607h6.048v10.505h-6.048zM-192.003 162.607h6.048v10.505h-6.048zM-110.528 162.607h6.048v10.505h-6.048zM-29.633 162.607h6.048v10.505h-6.048zM10.391 162.607h6.049v10.505H10.39zM51.252 162.607H57.3v10.505h-6.048zM131.727 162.607h6.048v10.505h-6.048zM334.783 162.607h6.048v10.505h-6.048zM172.586 162.607h6.048v10.505h-6.048zM212.621 162.607h6.048v10.505h-6.048zM253.059 162.607h6.048v10.505h-6.048zM293.507 162.607h6.048v10.505h-6.048zM616.65 162.607h6.047v10.505h-6.048zM373.98 162.607h6.048v10.505h-6.048zM414.84 162.607h6.049v10.505h-6.049zM456.124 162.607h6.049v10.505h-6.049zM494.9 162.607h6.049v10.505H494.9zM536.174 162.607h6.048v10.505h-6.048zM576.622 162.607h6.048v10.505h-6.048zM696.296 162.607h6.048v10.505h-6.048zM657.518 162.607h6.048v10.505h-6.048zM-151.39 162.607h6.048v10.505h-6.048z"/> - </g> - <g fill="#da0000"> - <path d="M279.8 197.489c8.453 10.36 34.511 67.652-15.73 105.18-23.62 17.777-8.994 18.675-8.296 21.663 37.966-20.167 50.366-47.49 50.078-71.966-.29-24.476-13.266-46.102-26.052-54.873z"/> - <path d="M284.826 194.826c18.75 9.6 59.553 57.879 15.635 112.344 27.288-6.056 61.98-86.417-15.635-112.344zM227.245 194.826c-18.749 9.6-59.553 57.879-15.635 112.344-27.288-6.056-61.98-86.417 15.635-112.344z"/> - <path d="M232.2 197.489c-8.454 10.36-34.512 67.652 15.73 105.18 23.618 17.777 8.993 18.675 8.294 21.663-37.965-20.167-50.365-47.49-50.077-71.966.289-24.476 13.265-46.102 26.052-54.873z"/> - <path d="M304.198 319.111c-14.86.236-33.593-2.047-47.486-9.267 2.288 4.45 4.189 7.252 6.477 11.701 13.25 1.222 31.535 2.734 41.01-2.434zM209.225 319.111c14.86.236 33.593-2.047 47.487-9.267-2.289 4.45-4.19 7.252-6.478 11.701-13.25 1.222-31.535 2.734-41.01-2.434zM236.482 180.397c3.011 8.002 10.91 9.165 19.365 4.454 6.161 3.697 15.69 3.93 18.976-4.067 2.499 19.784-18.305 15.104-19.08 11.231-7.745 7.487-22.165 3.163-19.26-11.618z"/> - <path d="M256.402 331.569l7.813-8.93 1.117-120.178-9.302-8.185-9.3 7.813 1.859 120.92 7.813 8.558z"/> - </g> - </g> -</svg> diff --git a/img/flags/4x3/is.svg b/img/flags/4x3/is.svg deleted file mode 100644 index f5c5c9a..0000000 --- a/img/flags/4x3/is.svg +++ /dev/null @@ -1,12 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" height="480" width="640" viewBox="0 0 640 480"> - <defs> - <clipPath id="a"> - <path fill-opacity=".67" d="M0 0h640v480H0z"/> - </clipPath> - </defs> - <g fill-rule="evenodd" stroke-width="0" clip-path="url(#a)"> - <path fill="#003897" d="M0 0h666.67v480H0z"/> - <path d="M0 186.67h186.67V0h106.67v186.67h373.33v106.67H293.34v186.67H186.67V293.34H0V186.67z" fill="#fff"/> - <path d="M0 213.33h213.33V0h53.333v213.33h400v53.333h-400v213.33H213.33v-213.33H0V213.33z" fill="#d72828"/> - </g> -</svg> diff --git a/img/flags/4x3/it.svg b/img/flags/4x3/it.svg deleted file mode 100644 index 05d58ec..0000000 --- a/img/flags/4x3/it.svg +++ /dev/null @@ -1,7 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" height="480" width="640" viewBox="0 0 640 480"> - <g fill-rule="evenodd" stroke-width="1pt"> - <path fill="#fff" d="M0 0h640v479.997H0z"/> - <path fill="#009246" d="M0 0h213.331v479.997H0z"/> - <path fill="#ce2b37" d="M426.663 0h213.331v479.997H426.663z"/> - </g> -</svg> diff --git a/img/flags/4x3/je.svg b/img/flags/4x3/je.svg deleted file mode 100644 index c5c1877..0000000 --- a/img/flags/4x3/je.svg +++ /dev/null @@ -1,32 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" height="480" width="640" viewBox="0,0 30,18"> - <defs> - <clipPath id="a"> - <path fill-opacity=".67" d="M-5.254-6h40v30h-40z"/> - </clipPath> - </defs> - <g clip-path="url(#a)" transform="matrix(.75 0 0 .75 3.94 2.25)"> - <path fill="#fff" d="M-10.254-6h50v30h-50z"/> - <path d="M-10.254-6v1.927L11.517 9l-21.771 13.073V24h3.281l21.72-13.073L36.464 24h3.281v-1.927L17.976 9l21.77-13.073V-6h-3.28L14.745 7.073-6.973-6h-3.281z" fill-rule="evenodd" fill="#df112d"/> - <g transform="translate(-9.649 -6.038) scale(.20361)"> - <path d="M132.66 22.233c3.156 12.778 1.425 28.56-12.829 37.316-14.255-8.756-15.986-24.538-12.829-37.316 3.36-3.055 18.632-4.938 25.658 0z" stroke="#000" stroke-width=".125" fill="#e8112d"/> - <path d="M119.81 19.667c5.226 0 10.093 1.383 12.962 3.176.563-4.405 2.561-8.811 4.918-12.142-2.459-.05-3.561 1.256-3.586 2.613-.615-1.742-3.023-1.64-3.766-.691 2.69 1.818.615 5.046-1.818 4.38-1.143-.313-1.747-1.11-1.961-2.267a1.322 1.322 0 1 0-.564-.088c-.769 1.256-2.148 1.632-3.136 1.356-1.281-.359-1.819-1.512-1.819-2.536 0-2.664 2.561-3.074 3.33-2.613-.051-1.793-2.869-3.227-3.74-1.742.973-1.742.922-4.2-.82-5.84-1.741 1.64-1.793 4.098-.819 5.84-.871-1.485-3.689-.051-3.74 1.742.768-.461 3.33-.051 3.33 2.613 0 1.024-.538 2.177-1.819 2.536-.988.276-2.367-.1-3.137-1.356a1.31 1.31 0 0 0 .552-.398 1.322 1.322 0 1 0-1.115.486c-.214 1.157-.819 1.954-1.961 2.267-2.433.666-4.508-2.562-1.819-4.38-.742-.948-3.15-1.05-3.765.691-.026-1.357-1.127-2.664-3.586-2.613 2.356 3.33 4.354 7.736 4.918 12.142 2.869-1.793 7.736-3.176 12.961-3.176z" stroke="#000" stroke-width=".125" fill="#f9dd16"/> - <g id="b" stroke="#000"> - <g stroke-width=".125" fill="#f9dd16"> - <path d="M130.65 32.2c-.315.075-.315.481-.48.481.819-.023 1.217-.248 1.465-.661-.18.165-.023.48-.083.556.601-.21.887-.722.677-1.067.135.195.526.3.646.315-.421-.33-.12-1.082-.797-1.473.226-.015.662.24.782.541-.105-.676-.211-1.112-.767-1.488.06.068.376.128.511 0-.36-.225-.466-.6-.435-.841.042-.337-.181-.406-.602-.3-.379.094-1.247.15-1.758.15-1.052 0-1.969 0-2.841-.602 1.308.541 2.976-.601 2.976-1.548 0-1.052-1.293-1.909-3.908-1.338-2.615.572-5.801.331-5.801-.54 0-.872 2.284-.993 3.457-.812 1.172.18 2.013.3 4.208-.481-.541.21-2.285.27-3.667-.12-1.383-.391-4.78-.391-4.81 1.442-.03 1.834 3.617 1.667 6.764 1.203 1.833-.27 2.795-.09 2.795.51 0 .572-1.683.812-2.976.662-1.292-.15-2.615-.12-4.148.33-1.28.377-2.164 0-3.577.241-.685.117-2.345 0-3.164-1.352-.504.36-2.022 1.116-2.277 1.852-.361.676-.12 1.349.36 2.01.606.833-.3.707-.946.737-.886.041-2.072-.094-2.691-.797-.548-.622-1.278-1.121-1.861-.66-.3.238-.012.55.225.463.235-.087.513.087.764.197-.401-.172-.842-.038-1.014.115-.237.213.051.619.338.475.225-.112.687-.187.987.088-.325-.063-.663-.05-.825.125s-.037.428.313.412c.562-.025.706.37 1.269.288-.346.045-.542.226-.632.36.526-.24 1.107.409 1.789.256-.266.11-.695.371-.691.572.405-.466 3.126.36 3.186-.662.075.21.06.526-.15.797.348-.21 1.473-.286 1.818-1.097.03.24-.015.556-.225.63.361.119.836-.15 1.322-.87.193-.287.239-.477.206-.692.482.018.831-.103 1.207-.421.391-.33.812.27 1.473-.15.662-.421 1.233-.06 1.593-.27.361-.211.857.074 1.248-.166s.997.118 1.644-.393c1.018.372 2.206 1.063 5.12.528 1.67-.307 2.194.256 2.194 1.022 0 .526-.308.572-.541.586-.929.057-1.328-.347-1.695-.218-.246.088-.396.488-.04.625-.294.15-.256.432-.106.535s.537.01.8-.113c-.338.153-.688.428-.488.716.121.174.427.322.713-.05.287-.375.812-.688 1.146-.638zm-18.51-7.936c-.842-.346-1.126-.355-.932.33.083.294.285.707.488.895.008-.285.113-1.075.444-1.225z"/> - <path d="M114.77 24.264c.842-.346 1.126-.355.932.33-.083.294-.286.707-.489.895-.007-.285-.112-1.075-.443-1.225z"/> - <path d="M113.46 23.802c1.593 0 1.792.748 1.784 1.68-.007 1.007-.548.66-.856 1.953-.12.506-.523.534-.928.534-.406 0-.808-.028-.929-.534-.307-1.292-.849-.946-.856-1.953-.008-.932.191-1.68 1.785-1.68z"/> - <path d="M109.36 27.495c-.406-.24-.668-.074-.833-.029.526.135.547.81 1.75 1.126-.271-.075-.421.075-.677-.06.496.39 1.052.843 2.225.857.654.007.202.346-.226.15.444.459 1.323.083 1.879.917.105-.646-1.037-1.668-.511-2.405-1.622-.069-1.755-.968-2.69-1.683-.761-.582-.829-1.173-1.165-2.28-.153-.501-.74-.814-1.065-.695-.284.104-.388.35-.144.535.244.184.556.209.623.676-.317-.38-.792-.517-1.02-.28-.139.145-.083.482.216.513.487.05.137.525.691.99-.491-.552-.916-.602-1.179-.302-.157.18 0 .5.338.465.489-.05 1.056 1.19 1.788 1.505zm13.07 4.644c-.256.045-.18.466-.526.496.827 0 1.247-.195 1.638-.511-.18.105-.255.376-.27.526.436-.376 1.473-.406 2.014-.3s.631-.15.826-.496c.196-.346-.075-.542-.345-.812-.271-.27-.331-.646-.271-1.278-1.443-1.923-4.028-.992-4.058-.15.932 1.082 1.052.962 1.834 1.112.781.15 1.26.15.736.586-.18.15-.932.08-1.518.106-1.311.057-1.911-.906-2.298-.406-.319.411.01.593.66.57-.45.004-1.047-.02-.945.399.172.706.847-.131 1.11.16-.225-.054-.575.084-.588.296-.012.213.5.488 1.063.04a1.64 1.64 0 0 1 .938-.338z"/> - </g> - <g stroke-width=".125" fill="none"> - <path d="M123.55 29.206c-.469-.172-.899-.277-1.449-.163m-5.621-.06c-.386.83-.152 1.239-.095 1.624m-4.015-5.555c.265.133.414-.242.803.156-.107-.116-.24.308-.538.026m1.895-.182c-.265.133-.414-.242-.803.156.107-.116.24.308.538.026"/> - <path d="M113.73 25.207c-.091.075-.1-.06-.031.295.128.651.279.956-.248.956-.538 0-.375-.305-.248-.956.07-.355.061-.22-.03-.295"/> - </g> - <path d="M113.46 27.706c.428 0 .676-.007.609-.609-.028-.241.293-.337.18-.729.12.481-.789.435-.789.217 0 .218-.909.264-.789-.217-.113.392.207.488.18.73-.067.6.181.608.609.608z" stroke-width=".063" fill="#ff0016"/> - <path d="M113.07 26.489l-1.028-.287m1.028.341l-1.148-.01m1.158.069l-.979.262m1.739-.375l1.028-.287m-1.028.341l1.148-.01m-1.158.069l.979.262" stroke-width=".063"/> - <path d="M108.13 23.414c-.299-.372-1.048-.058-1.063.404.253-.3.666.132.891.041.156-.063.293-.294.172-.445zm-.38.881c-.299-.372-1.047-.058-1.062.404.252-.3.665.132.891.041.156-.062.293-.293.171-.445zm-.2 1.184c-.339-.336-1.047.06-1.01.52.218-.325.676.057.89-.058.148-.08.258-.325.12-.462zm.36 3.669c-.376-.295-1.033.18-.944.634.179-.349.678-.022.877-.161.138-.097.22-.353.067-.473zm-.02.803c-.448-.165-.928.49-.703.893.062-.387.638-.23.785-.423.102-.134.1-.403-.082-.47zm.57.6c-.448-.165-.928.49-.704.893.063-.387.639-.23.786-.423.102-.134.1-.403-.082-.47zm11.74 1.163c-.448-.165-.928.49-.703.893.063-.387.638-.23.785-.423.102-.134.1-.403-.082-.47zm.61.544c-.464-.113-.866.592-.597.968.018-.392.608-.301.732-.51.086-.145.054-.412-.135-.458zm-.43-1.316c-.414-.239-.998.325-.845.76.128-.37.668-.117.846-.283.123-.115.167-.38-.001-.477zm8.35.941c-.464-.113-.866.592-.597.968.019-.392.609-.301.732-.51.086-.145.054-.412-.135-.458zm.02-.737c-.421-.225-.985.359-.818.79.115-.375.664-.141.836-.313.119-.12.154-.385-.018-.477zm.32 1.396c-.468-.093-.839.63-.554.993.002-.392.595-.327.709-.542.08-.149.036-.413-.155-.451zm-15.58-5.197c.294 0 .413.086.413.617 0 1.125-.013 1.609-.375 1.609-.363 0-.338-.46-.338-1.286 0-.43 0-.646-.087-.61 0-.282.125-.33.387-.33z" stroke-width=".013" fill="#0051ba"/> - </g> - <use xlink:href="#b" transform="matrix(.9 0 0 .9 11.6 13.7)" height="18" width="30"/> - <use xlink:href="#b" transform="matrix(.67 0 0 .75 39.2 27.5)" height="18" width="30"/> - </g> - </g> -</svg> diff --git a/img/flags/4x3/jm.svg b/img/flags/4x3/jm.svg deleted file mode 100644 index bda8cd3..0000000 --- a/img/flags/4x3/jm.svg +++ /dev/null @@ -1,8 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" height="480" width="640" viewBox="0 0 640 480"> - <g fill-rule="evenodd"> - <path d="M0 0l320 240L0 480zM640 0L320 240l320 240z"/> - <path d="M0 0l320 240L640 0zM0 480l320-240 320 240z" fill="#090"/> - <path d="M640 0h-59.625L0 435.281V480h59.629L640.004 44.719z" fill="#fc0"/> - <path d="M0 0v44.722l580.375 435.28h59.629v-44.72L59.629 0z" fill="#fc0"/> - </g> -</svg> diff --git a/img/flags/4x3/jo.svg b/img/flags/4x3/jo.svg deleted file mode 100644 index a321347..0000000 --- a/img/flags/4x3/jo.svg +++ /dev/null @@ -1,16 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" height="480" width="640" viewBox="0 0 640 480"> - <defs> - <clipPath id="a"> - <path fill-opacity=".67" d="M-117.82 0h682.67v512h-682.67z"/> - </clipPath> - </defs> - <g clip-path="url(#a)" transform="translate(110.46) scale(.9375)"> - <g fill-rule="evenodd" stroke-width="1pt"> - <path d="M-117.82 0H906.182v170.667H-117.82z"/> - <path fill="#fff" d="M-117.82 170.667H906.182v170.667H-117.82z"/> - <path fill="#090" d="M-117.82 341.334H906.182v170.667H-117.82z"/> - <path d="M-117.82 512.001l512.001-256L-117.82 0v512.001z" fill="red"/> - <path fill="#fff" d="M24.528 288.964l5.664-24.82H4.743l22.928-11.045-15.867-19.9 22.93 11.05 5.664-24.82 5.661 24.82 22.93-11.05-15.866 19.9 22.93 11.045H50.602l5.663 24.82-15.867-19.92z"/> - </g> - </g> -</svg> diff --git a/img/flags/4x3/jp.svg b/img/flags/4x3/jp.svg deleted file mode 100644 index ed5fd40..0000000 --- a/img/flags/4x3/jp.svg +++ /dev/null @@ -1,11 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" height="480" width="640" viewBox="0 0 640 480"> - <defs> - <clipPath id="a"> - <path fill-opacity=".67" d="M-88.001 32h640v480h-640z"/> - </clipPath> - </defs> - <g fill-rule="evenodd" clip-path="url(#a)" transform="translate(88.001 -32)" stroke-width="1pt"> - <path fill="#fff" d="M-128 32h720v480h-720z"/> - <ellipse rx="194.93" ry="194.93" transform="translate(-168.44 8.618) scale(.76554)" cy="344.05" cx="523.08" fill="#d30000"/> - </g> -</svg> diff --git a/img/flags/4x3/ke.svg b/img/flags/4x3/ke.svg deleted file mode 100644 index 884aece..0000000 --- a/img/flags/4x3/ke.svg +++ /dev/null @@ -1,23 +0,0 @@ -<svg xmlns:xlink="http://www.w3.org/1999/xlink" xmlns="http://www.w3.org/2000/svg" height="480" width="640" viewBox="0 0 640 480"> - <defs> - <path stroke-miterlimit="10" d="M-28.58 47.5l1.733 1 46.713-80.91c2.732-.73 4.232-3.33 5.732-5.927 1-1.732 5-8.66 6.734-17.663-6.93 6.003-10.93 12.93-11.93 14.663-1.5 2.598-3 5.196-2.268 7.928z" id="a"/> - </defs> - <path d="M0 0h640v480H0z" fill="#fff"/> - <path d="M0 0h640v144H0z"/> - <path d="M0 336h640v144H0z" fill="#060"/> - <g id="b" transform="matrix(3 0 0 3 320 240)"> - <use height="100%" width="100%" xlink:href="#a" stroke="#000"/> - <use height="100%" width="100%" xlink:href="#a" fill="#fff"/> - </g> - <use height="100%" width="100%" xlink:href="#b" transform="matrix(-1 0 0 1 640 0)"/> - <path d="M640.5 168H377c-9-24-39-72-57-72s-48 48-57 72H-.227v144H263c9 24 39 72 57 72s48-48 57-72h263.5V168z" fill="#b00"/> - <path id="c" d="M377 312c9-24 15-48 15-72s-6-48-15-72c-9 24-15 48-15 72s6 48 15 72"/> - <use height="100%" width="100%" xlink:href="#c" transform="matrix(-1 0 0 1 640 0)"/> - <g transform="matrix(3 0 0 3 320 240)" fill="#fff"> - <ellipse rx="4" ry="6"/> - <path id="d" d="M1 5.85s4 8 4 21-4 21-4 21z"/> - <use height="100%" width="100%" xlink:href="#d" transform="scale(-1)"/> - <use height="100%" width="100%" xlink:href="#d" transform="scale(-1 1)"/> - <use height="100%" width="100%" xlink:href="#d" transform="scale(1 -1)"/> - </g> -</svg> diff --git a/img/flags/4x3/kg.svg b/img/flags/4x3/kg.svg deleted file mode 100644 index fba85f5..0000000 --- a/img/flags/4x3/kg.svg +++ /dev/null @@ -1,15 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" height="480" width="640" viewBox="0 0 640 480"> - <defs> - <clipPath id="a"> - <path fill-opacity=".67" d="M-84.949 0h682.67v512h-682.67z"/> - </clipPath> - </defs> - <g clip-path="url(#a)" fill-rule="evenodd" transform="translate(79.64) scale(.9375)"> - <path fill="#be0027" d="M-128 0h768.77v512H-128z"/> - <path d="M105.45 261.14c13.658-16.61 41.95-.399 65.045-12.359-27.358 1.504-42.27-13.129-63.884-11.078 22.395-13.757 41.461 4.5 66.502-2.839-33.165-2.79-31.727-17.615-61.884-19.72 26.788-11.426 40.036 11.75 66.276 6.479-30.927-7.14-35.045-25.356-58.039-29.212 33.608-5.073 31.417 14.794 64.364 17.22-33.441-14.345-24.676-26.797-52.645-37.723 31.297-.74 29.222 20.95 60.93 26.64-27.144-17.22-23.791-32.935-46.149-45.232 26.524.48 29.114 27.629 56.184 36.04-24.148-19.16-17.797-35.313-38.664-52.423 26.383 6.188 22.542 29.61 50.019 44.552-20.363-22.615-12.55-38.805-30.314-57.318 25.374 8.172 15.735 30.432 42.065 51.595-15.094-24.855-5.775-40.707-20.629-61.677 23.559 12.166 12.151 34.872 34.023 57.558-10.295-25.508.015-41.352-10.507-63.941 20.152 15.057 8.166 39.323 24.422 62.472-5.926-31.92 7.841-37.17 3.557-65.124 15.306 18.79-1.802 37.58 9.949 65.26-1.43-31.476 15.294-38.795 12.394-64.067 15.169 22.645-8.507 42.353 1.395 66.605 2.56-29.864 22.185-37.597 22.49-60.836 11.933 21.332-14.111 36.672-9.884 64.955 8.57-31.196 29.476-35.051 31.943-56.025 7.235 24.678-21.265 36.15-19.598 63.5 8.489-27.735 34.62-30.988 39.962-51.475 3.297 26.107-22.4 30.742-29.635 59.585 13.512-23.54 37.143-25.471 47.783-44.09-.835 25.816-29.844 29.2-38.748 53.373 16.725-20.51 37.691-16.95 54.415-35.135-1.765 23.299-31.293 21.982-47.009 46.104 18.136-16.732 45.435-11.718 59.33-26.125-.674 20.608-36.908 19.059-53.996 37.479 21.075-11.545 47.757-4.764 63.225-15.487-2.826 18.068-41.076 13.845-59.356 27.946 25.211-6.985 44.677 3.81 65.102-3.995-9.94 17.587-44.634 6.455-63.054 17.888 21.88-3.705 45.126 9.55 65.091 5.297-6.562 15.201-44.58-.918-65.09 8.538 24.51-.215 40.402 15.434 63.133 14.4-12.363 13.762-45.788-5.163-65.262-1.93 23.76 4.914 41.911 24.601 59.926 25.55-14.784 11.351-42.423-14.498-64.864-11.216 23.105 6.185 42.516 32.472 55.774 33.048-14.284 9.762-42.517-22.464-61.86-21.319 23.495 10.62 34.271 37.515 49.697 41.296-19.099 6.128-37.868-29.217-58.39-30.442 23.771 14.993 25.114 37.918 43.417 48.124-19.257 4.708-32.964-35.167-53.259-38.532 19.49 14.327 22.428 44.931 35.351 54.608-19.607 1.036-26.692-40.714-46.787-46.678 17.216 14.38 13.094 45.58 26.48 58.863-20.426-4.19-17.793-40.538-39.118-52.778 15.32 19.32 7.527 46.846 17.512 62.337-19.87-8.038-11.24-40.568-30.21-58.99 10.348 20.582-.774 44.586 7.387 64.486-18.153-8.854-5.944-47.384-19.856-62.666 6.395 23.786-5.4 43.47-.646 64.794-18.559-21.526 2.817-43.189-13.281-65.125 4.273 25.177-13.336 42.697-10.567 63.771-14.716-17.19 7.905-44.774-3.528-66.478 2.462 24.754-20.276 46.44-18.715 62.03-11.978-19.968 13.298-43.583 6.53-66.286-1.425 23.572-24.37 36.382-28.691 57.856-7.713-23.689 19.564-40.812 17.209-64.09-7.811 22.144-29.982 31.023-37.793 52.484-6.395-23.623 25.914-36.167 26.768-61.02-9.987 23.308-36.522 28.426-45.28 46.264-3.269-23.5 33.808-34.007 35.188-56.275-11.936 21.382-40.97 22.25-50.991 39.254-1.52-23.416 37.582-26.316 43.72-50.825-11.882 18.278-43.734 15.907-56.986 30.767 2.09-21.722 44.388-23.066 51.129-42.6-15.723 15.168-44.963 8.882-61.426 20.913 9.163-21.335 48.838-16.812 57.808-32.267-17.564 9.164-48.68.28-63.997 9.444 13.92-20.206 44.803-8.135 62.28-22.05-28.428 4.143-45.506-7.17-65.182-1.933z" fill="#ff0"/> - <path d="M355.939 256.111c0 54.8-44.424 99.223-99.223 99.223-54.8 0-99.222-44.424-99.222-99.223 0-54.8 44.424-99.222 99.222-99.222 54.8 0 99.223 44.423 99.223 99.222z" fill="#ff0"/> - <path d="M343.17 256.307c0 47.644-38.623 86.265-86.265 86.265-47.643 0-86.264-38.622-86.264-86.265s38.622-86.264 86.264-86.264c47.644 0 86.265 38.622 86.265 86.264z" fill="#be0027"/> - <path d="M331.156 256.487c0 40.911-33.164 74.075-74.074 74.075-40.911 0-74.075-33.165-74.075-74.075 0-40.91 33.165-74.075 74.075-74.075 40.91 0 74.074 33.165 74.074 74.075z" fill="#ff0"/> - <path d="M194.04 207.95c20.501-.451 46.033 1.418 62.859 14.893 17.859-11.154 39.005-16.311 60.54-14.313l11.025 20.115c-15.989-1.613-31.591.646-50.095 8.124 23.597 18.696 35.395 42.81 34.622 72.144-2.707 3.352-6.963 7.091-9.67 10.443 3.932-28.496-11.09-60.279-32.881-76.978 17.73 25.596 28.304 48.676 25.339 80.46-3.16 1.87-6.9 4.513-10.058 6.383 4.64-28.045-1.933-60.926-22.63-80.074 11.927 17.537 23.855 48.999 16.44 81.04-3.224.968-8.188 3.676-11.411 4.643 8.317-26.239 3.093-59.056-10.832-78.719-13.796 19.794-18.31 50.029-10.445 77.946-3.869-.967-6.77-2.128-10.637-3.095-5.673-30.043 2.193-63.957 15.86-81.62-13.925 8.06-27.078 42.614-23.404 77.946-3.352-1.547-5.932-2.708-9.283-4.256-4.513-26.369 7.413-60.666 24.564-80.46-19.471 12.25-35.266 42.294-32.494 74.658-2.966-2.643-5.739-3.932-8.704-6.575-3.417-28.24 12.894-56.67 32.106-73.691-16.182-7.222-30.043-8.64-50.094-8.318 3.159-6.512 6.125-14.183 9.284-20.695z" fill="#be0027"/> - </g> -</svg> diff --git a/img/flags/4x3/kh.svg b/img/flags/4x3/kh.svg deleted file mode 100644 index 7183591..0000000 --- a/img/flags/4x3/kh.svg +++ /dev/null @@ -1,74 +0,0 @@ -<svg xmlns:xlink="http://www.w3.org/1999/xlink" xmlns="http://www.w3.org/2000/svg" height="480" width="640" viewBox="0 0 640 480"> - <path fill="#032ea1" d="M0 0h640v480H0z"/> - <path fill="#e00025" d="M0 120h640v240H0z"/> - <g transform="matrix(1.2 0 0 1.2 85.571 -521.92)" fill="#fff" stroke="#000" stroke-width=".96"> - <g stroke-linejoin="bevel"> - <path d="M139.02 623.46h113.8v43.788h-113.8z"/> - <path d="M246.95 647.64h3.586v16.495h-3.586zM139.02 639.49h113.8v5.09h-113.8zM139.02 632.59h113.8v4.489h-113.8z"/> - <path stroke-width=".945" d="M139.02 625.7h113.8v4.354h-113.8z"/> - <path d="M168.98 647.64h3.586v16.495h-3.586zM217.97 647.64h3.586v16.495h-3.586zM139.92 647.64h3.586v16.495h-3.586zM146.95 647.64h3.586v16.495h-3.586zM154.45 647.64h3.586v16.495h-3.586zM161.95 647.64h3.586v16.495h-3.586zM224.77 647.64h3.586v16.495h-3.586zM232.27 647.64h3.586v16.495h-3.586zM239.77 647.64h3.586v16.495h-3.586z"/> - <path d="M94.509 669.55c1.76-.897 3.768-2.984 4.425-5.319h193.07c.657 2.335 2.665 4.422 4.425 5.319z" stroke-linejoin="miter"/> - </g> - <path d="M193 556.8s-.144-4.112 2.25-4.157c2.396.044 2.251 4.157 2.251 4.157zM180.51 611.34v-5.536c-.079-2.768-2.76-2.968-2.838-4.986 0 0-.346-3.027.452-4.408 1.084 4.047 3.056 3.304 3.056 1.64 0-1.453-1.117-2.804-3.408-6.33-.732-1.128-.28-4.66.747-5.923.398 3.07.853 4.54 2.171 4.54.805 0 1.462-.524 1.462-2.062 0-1.957-1.325-2.945-1.977-4.725-.76-2.078-.236-4.196 1.026-5.38.541 3.03.38 4.237 1.726 4.237 2.713-.858 0-4.786-.58-5.777-.666-1.155.897-3.46.897-3.46.863 2.69 1.14 2.91 2.07 2.66 1.174-.315 1.023-2.056-.41-3.463-.904-.889-.808-2.212.163-3.274.975 1.905 2.223 1.79 2.343.658l-.784-4.393h17.255l-.857 4.249c-.245 1.216 1.396 1.48 2.416-.514.972 1.062 1.067 2.385.163 3.274-1.432 1.407-1.584 3.148-.41 3.463.93.25 1.208.03 2.07-2.66 0 0 1.403 1.571.897 3.46-.58.99-3.293 4.919-.58 5.777 1.346 0 1.185-1.208 1.726-4.237 1.263 1.184 1.786 3.302 1.026 5.38-.651 1.78-1.976 2.768-1.976 4.725 0 1.538.657 2.062 1.461 2.062 1.319 0 1.774-1.47 2.172-4.54 1.026 1.263 1.479 4.795.747 5.922-2.291 3.527-3.408 4.878-3.408 6.33 0 1.665 1.971 2.408 3.056-1.64.797 1.382.451 4.41.451 4.41-.079 2.017-2.759 2.217-2.838 4.985v5.536zM187.73 565.32l-.397-3.125h15.838l-.397 3.125zM188.79 562.13l-.341-2.569h13.604l-.341 2.569zM190.95 559.47l-.227-2.569h9.058l-.227 2.569zM223.97 669.55c-2.027-.781-4.977-2.919-4.977-5.07v-24.297l2.638-3.358h-52.776l2.53 3.359v24.297c0 2.15-2.027 4.288-4.053 5.07z"/> - <path stroke-linejoin="bevel" d="M178.24 647.64h3.586v16.495h-3.586zM208.56 647.64h3.586v16.495h-3.586z"/> - <path d="M167.91 609.17v27.656h54.023v-5.957l.078-21.7c-2.21.869-2.597 2.872-2.597 2.872v11.777h-48.75V612.04s-.544-2.003-2.754-2.871z"/> - <path d="M214.6 669.55c-1.766-.781-5.612-2.919-5.612-5.07v-27.192c.378-1.518 2.436-2.414 3.761-3.358h-35.823c1.705.902 3.606 1.652 4.285 3.359v27.192c0 2.15-3.041 4.288-4.807 5.069z"/> - <path d="M219.41 634.22v-19.587h-4.91v-1.909h-38.84v1.909h-4.91v19.587zM206.86 669.55c-1.73-.781-4.249-2.919-4.249-5.07v-23.214l1.42-2.11h-17.69l1.42 2.11v23.215c0 2.15-2.519 4.288-4.249 5.07z"/> - <path d="M190.71 639.16h8.966v30.377h-8.966z" stroke-width=".981"/> - <path d="M204.38 632.48c.021-2.001 5.838-2.091 8.832-3.795H177.26c2.994 1.704 8.675 1.844 8.675 3.795l1.217 3.882 14.883.598z" stroke-linejoin="bevel"/> - <path d="M211.41 611.34c0-4.899.205-6.786 1.71-6.786v15.58c-3.69 1.34-6.325 6.05-6.325 6.05h-23.211s-2.634-4.71-6.325-6.05v-15.58c1.856 0 1.868 1.972 1.868 6.786zM213.12 609.33c0-5.618 4.851-6.25 4.851-6.25v5c-1.846-.08-2.737 1.578-2.737 4.044 0 2.466 1.487 2.506 1.487 2.506v14.19h-3.601z"/> - <path d="M177.28 609.33c0-5.618-4.851-6.25-4.851-6.25v5c1.846-.08 2.737 1.578 2.737 4.044 0 2.466-1.487 2.506-1.487 2.506v14.19h3.601z"/> - <g fill="none" stroke-width=".8"> - <path d="M186.84 570.62h17.128M184.81 575.97h20.921M182.78 582.46h24.904M180.66 590.39h29.536M179.98 599.43h30.426"/> - <path d="M170.75 628.92h48.661M186.19 628.93h18.036v6.629H186.19z" stroke-width=".96"/> - </g> - <g> - <path d="M183.93 614.24c2.99 3.59 2.713 9.68 2.679 13.27h17.343c-.035-3.59-.312-9.68 2.678-13.27zM193.68 573.11l-2.376-1.224v-3.497c.971.292 2.062.411 2.168 1.96.338-2.21.948-2.103 1.907-2.964.958.861 1.568.753 1.906 2.963.107-1.548 1.197-1.667 2.169-1.96v3.498l-2.377 1.224z"/> - <path d="M193.52 578.85l-3.946-2.713v-3.223c1.383.32 2.936.451 3.088 2.149.482-2.423 1.35-3.675 2.715-4.62 1.365.945 2.233 2.197 2.715 4.62.152-1.698 1.705-1.828 3.089-2.149v3.223l-3.947 2.713z"/> - <path d="M193.24 587.8l-4.538-3.985v-4.736c1.591.471 3.377.663 3.552 3.157.553-3.56 1.552-5.4 3.121-6.787 1.57 1.388 2.568 3.227 3.122 6.787.175-2.494 1.96-2.686 3.551-3.157v4.736l-4.537 3.985zM201.61 593.09l-4.104 5.676h-4.646l-4.104-5.676zM186.39 602.62c2.053 1.122 2.81 3.357 3.03 7.553h11.55c.22-4.196.977-6.431 3.03-7.553z"/> - <path d="M204.17 593.09v-5.702c-1.95.537-3.213 1.691-3.776 3.258 0-1.893-2.49-6.257-5.207-8.43-2.724 2.432-5.257 6.38-5.206 8.43-.464-1.492-1.826-2.721-3.776-3.258v5.702z" stroke-linejoin="bevel"/> - <path d="M205.04 602.62v-5.702c-2.138.537-3.522 1.691-4.139 3.258 0-1.893-2.73-6.258-5.708-8.43-2.986 2.432-5.763 6.38-5.707 8.43-.508-1.492-2.002-2.721-4.139-3.258v5.702z" stroke-linejoin="bevel"/> - <path d="M207.44 614.32v-6.577c-2.66.687-4.312 2.653-5.15 3.8 0-3.561-4.02-8.99-7.1-10.768-3.16 1.825-7.101 7.435-7.101 10.768-.86-1.14-2.49-3.113-5.15-3.8v6.577z" stroke-linejoin="bevel"/> - <path d="M206 628.92v-6.762c-2.346.92-3.048 3.18-3.786 4.717.29-6.859-3.862-14.23-7.024-16.1-3.163 1.87-7.393 9.4-7.024 16.1-.758-1.527-1.44-3.797-3.786-4.717v6.762z" stroke-linejoin="bevel"/> - <path d="M204.36 639.16v-6.762c-2.458.585-2.61 1.491-3.392 3.006.29-4.097-2.611-8.77-5.773-10.64-3.163 1.87-6.064 6.544-5.774 10.64-.782-1.515-.878-2.421-3.392-3.006v6.762z"/> - </g> - <g id="a"> - <path d="M98.935 664.23v-20.44c-.67-2.603-2.88-4.905-4.54-5.366V620.43l3.741 2.023 4.271 18.81v22.966z"/> - <path d="M98.935 664.31v-20.519c-.67-2.603-2.88-4.905-4.54-5.366v-19.243c2.511 0 3.741 3.273 3.741 3.273l4.271 18.81v22.887z"/> - <path d="M96.275 669.55c1.73-.781 4.249-2.919 4.249-5.07v-25.547l-1.185-2.108h43.522l-1.699 2.108v25.547c0 2.151 1.73 4.289 3.46 5.07z"/> - <path d="M135.84 669.55c-1.73-.781-4.249-2.919-4.249-5.07v-24.297l3.62-3.359h-29.589l3.62 3.36v24.296c0 2.151-2.52 4.289-4.25 5.07z"/> - <path d="M131.69 669.55c-1.73-.781-4.249-2.919-4.249-5.07v-21.965l2.37-3.359h-18.799l2.37 3.36v21.965c0 2.15-2.52 4.288-4.25 5.069z"/> - <path d="M115.92 639.16h8.982v30.393h-8.982z"/> - <path stroke-linejoin="bevel" d="M103.7 647.64h3.586v16.495H103.7zM134.45 647.64h3.586v16.495h-3.586zM100.64 619.82h4.32v16.909h-4.32zM100.64 616.64h4.295v3.139h-4.295z"/> - <path d="M136.17 623.46h6.16v13.054h-6.16z" stroke-width="1.034" stroke-linejoin="bevel"/> - <path d="M104.89 636.6v-28.941c1.232 0 1.422 4.242 4.249 4.242 1.472 0 1.315-1.757.489-3.188-.732-1.268-1.637-3.018-.407-6.279.843 2.495 3.112 3.287 2.693 1.722-.72-2.688-2.795-3.13-1.239-7.302.54 3.48 2.773 3.327 2.231 1.304-.61-2.28-1.873-3.214-.316-6.428.873 3.65 2.052 3.435 2.052 1.171 0-3.347-.128-6.957 4.203-8.296 0 0 .25-3.068 1.812-3.068 1.563 0 1.813 3.068 1.813 3.068 4.33 1.34 4.202 4.95 4.202 8.296 0 2.264 1.18 2.478 2.052-1.17 1.558 3.213.295 4.147-.315 6.427-.543 2.023 1.69 2.177 2.23-1.304 1.557 4.172-.517 4.614-1.238 7.302-.42 1.565 1.85.773 2.693-1.722 1.23 3.26.325 5.011-.407 6.279-.826 1.43-.983 3.188.489 3.188 2.827 0 3.017-4.242 4.249-4.242V636.6zM98.124 614.74v22.079h2.511v-22.135c-.905-.457-1.755-.527-2.511.056z"/> - <path d="M98.203 629.03c3.112 1.591 6.195 3.433 6.975 7.793h-6.975zM141.37 622.42v14.407h2.035v-14.443c-.635-.298-1.503-.344-2.035.036z"/> - <path d="M143.41 628.92c-3.112 1.591-6.195 3.433-6.975 7.793h6.975z"/> - <g> - <path d="M122.83 595.27l1.814-1.525v-1.953c-.664.065-1.026.293-1.516.936-.417-1.295-1.334-2.305-2.562-2.933-1.229.628-2.146 1.593-2.563 2.887-.49-.643-.852-.825-1.516-.89v1.953l1.815 1.525z"/> - <path d="M123.8 600.16l.843-1.825v-2.539c-.664.066-1.026.297-1.516.949-.417-1.313-1.334-2.338-2.562-2.974-1.229.636-2.146 1.615-2.563 2.927-.49-.651-.852-.836-1.516-.902v2.539l.844 1.825z"/> - <path d="M123.93 606.79l2.695-3.287v-3.243c-.986.111-1.524.503-2.252 1.606-.62-2.222-1.981-2.708-3.806-3.786-1.825 1.078-3.187 1.485-3.806 3.707-.729-1.103-1.267-1.416-2.252-1.527v3.243l2.694 3.287z"/> - <path d="M124.72 613.3s3.14-2.74 3.327-4.244v-3.467c-1.217.143-2.368.459-3.267 1.883-.765-2.87-1.959-3.67-4.212-5.062-2.253 1.392-3.447 2.192-4.212 5.062-.899-1.425-2.05-1.74-3.267-1.883v3.467c.397 1.504 3.327 4.244 3.327 4.244z"/> - <path d="M126.06 625.32s4.301-4.761 4.4-6.616v-5.406c-1.61.223-3.132 1.33-4.321 3.551-1.011-4.475-2.59-7.595-5.57-9.765-2.98 2.17-4.56 5.29-5.57 9.765-1.19-2.221-2.712-3.329-4.321-3.551v5.406c.308 1.855 4.4 6.616 4.4 6.616z"/> - <path d="M126.06 632.43s3.676-3.742 4.4-5.366v-5.406c-1.61.223-3.132 1.33-4.321 3.551-1.011-4.475-2.59-7.037-5.57-9.207-2.98 2.17-4.56 4.732-5.57 9.207-1.19-2.221-2.712-3.329-4.321-3.551v5.406c.933 1.624 4.4 5.366 4.4 5.366z"/> - <path d="M127.54 636.56c-1.073-4.668-1.996-8.13-7.163-11.641-5.167 3.51-6.09 6.973-7.163 11.641z"/> - <path d="M130.2 639.16v-6.762c-2.346.92-4.467 2.28-5.249 3.795-.873-3.754-2.557-5.408-4.653-7.679-2.097 2.271-3.501 3.925-4.375 7.679-.782-1.515-2.902-2.875-5.249-3.795v6.762z"/> - </g> - </g> - <use height="100%" width="100%" xlink:href="#a" transform="matrix(-1 0 0 1 390.74 0)"/> - <g> - <path d="M72.694 694.25h245.33v12.531H72.694z"/> - <path d="M66.228 706.76h258.26v12.512H66.228zM85.576 675.51h219.56v8.11H85.576z"/> - <path d="M79.157 683.56h232.4v10.622h-232.4zM89.412 669.28h211.89v6.174H89.412z"/> - <path d="M112.41 669.31h16.005v49.935H112.41z" stroke-width="1.045"/> - <path d="M115.95 669.31h8.917v49.936h-8.917z" stroke-width="1.043"/> - <path d="M187.08 669.31h16.006v49.935h-16.005z" stroke-width="1.045"/> - <path d="M190.73 669.31h8.917v49.936h-8.917z" stroke-width="1.043"/> - <path d="M262.19 669.31h16.005v49.935H262.19z" stroke-width="1.045"/> - <path d="M265.73 669.31h8.917v49.936h-8.917z" stroke-width="1.043"/> - </g> - <g fill="none"> - <path d="M98.935 664.23h193.07M115.79 712.97h9.244m-9.244-6.25h9.244m-9.244-6.25h9.244m-9.244-6.25h9.244m-9.244-6.25h9.244m-9.244-6.25h9.244m-9.244-6.25h9.244M190.77 712.98h8.607m-8.607-6.253h8.607m-8.607-6.254h8.607m-8.607-6.253h8.607m-8.607-6.253h8.607m-8.607-6.253h8.607m-8.607-6.254h8.607M265.57 712.97h9.244m-9.244-6.25h9.244m-9.244-6.25h9.244m-9.244-6.25h9.244m-9.244-6.25h9.244m-9.244-6.25h9.244m-9.244-6.25h9.244"/> - </g> - </g> -</svg> diff --git a/img/flags/4x3/ki.svg b/img/flags/4x3/ki.svg deleted file mode 100644 index 11b0d40..0000000 --- a/img/flags/4x3/ki.svg +++ /dev/null @@ -1,36 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" height="480" width="640" viewBox="0 0 640 480"> - <defs> - <clipPath id="a"> - <path fill-opacity=".67" d="M-86.325 0h682.67v512h-682.67z"/> - </clipPath> - </defs> - <g clip-path="url(#a)" transform="translate(80.93) scale(.9375)"> - <path fill-rule="evenodd" fill="#e73e2d" d="M-164.28 0h835.79v306.49h-835.79z"/> - <path d="M204.3 282.11c-19.435-15.174-55.633-10.041-61.596-51.286 27.717 21.469 22.686-1.227 64.082 19.229L204.3 282.11z" fill-rule="evenodd" stroke="#d8aa3f" stroke-width="1.665" fill="#fec74a"/> - <path d="M209.47 263.35c-13.852-20.398-49.882-26.602-42.922-67.69 19.807 28.928 21.971 5.782 55.109 37.936L209.47 263.35z" fill-rule="evenodd" stroke="#d8aa3f" stroke-width="1.665" fill="#fec74a"/> - <path d="M215.77 250.01c-5-24.145-35.922-43.653-13.782-78.958 7.242 34.303 18.091 13.743 36.418 56.124l-22.637 22.834z" fill-rule="evenodd" stroke="#d8aa3f" stroke-width="1.665" fill="#fec74a"/> - <path d="M230.32 237.61c2.653-24.514-20.786-52.572 11.123-79.376-3.638 34.87 12.998 18.633 17.431 64.594l-28.553 14.782z" fill-rule="evenodd" stroke="#d8aa3f" stroke-width="1.665" fill="#fec74a"/> - <path d="M243.26 227.67c12.457-21.279 2.56-56.474 42.646-67.864-17.596 30.324 4.23 22.321-10.543 66.068l-32.103 1.796z" fill-rule="evenodd" stroke="#d8aa3f" stroke-width="1.665" fill="#fec74a"/> - <path d="M262.07 230.29c18.559-16.234 20.327-52.751 61.957-50.849-26.3 23.183-3.062 22.511-30.94 59.321l-31.017-8.471z" fill-rule="evenodd" stroke="#d8aa3f" stroke-width="1.665" fill="#fec74a"/> - <path d="M278.57 239.87c22.506-10.072 34.914-44.463 74.152-30.426-31.946 14.444-9.534 20.621-46.987 47.628L278.57 239.87z" fill-rule="evenodd" stroke="#d8aa3f" stroke-width="1.665" fill="#fec74a"/> - <path d="M292.49 254.93c24.431-3.33 46.018-32.837 79.718-8.323-34.72 4.867-14.953 17.104-58.494 32.476L292.49 254.93z" fill-rule="evenodd" stroke="#d8aa3f" stroke-width="1.665" fill="#fec74a"/> - <path d="M379.46 259.6l-112.06 2.46 4.705 30.194 107.36-32.654z" fill-rule="evenodd" stroke="#d8aa3f" stroke-width="1.665" fill="#fec74a"/> - <path d="M363 218.41l-103.84 39.859 17.386 33.373 86.458-73.232z" fill-rule="evenodd" stroke="#d8aa3f" stroke-width="1.665" fill="#fec74a"/> - <path d="M280.58 280.67l53.722-97.54-82.407 76.705 28.684 20.835z" fill-rule="evenodd" stroke="#d8aa3f" stroke-width="1.665" fill="#fec74a"/> - <path d="M279.46 272.63l17.268-109.47-53.811 97.285 36.543 12.187z" fill-rule="evenodd" stroke="#d8aa3f" stroke-width="1.665" fill="#fec74a"/> - <path d="M273.01 263.74l-18.035-110.25-19.989 110.73 38.025-.482z" fill-rule="evenodd" stroke="#d8aa3f" stroke-width="1.665" fill="#fec74a"/> - <path d="M263.68 254.29l-52.292-92.072 20.095 111.92 32.197-19.845z" fill-rule="evenodd" stroke="#d8aa3f" stroke-width="1.665" fill="#fec74a"/> - <path d="M255.56 253.6l-81.101-68.479 57.667 98.003 23.435-29.524z" fill-rule="evenodd" stroke="#d8aa3f" stroke-width="1.665" fill="#fec74a"/> - <path d="M145.95 218.89l87.069 71.891 13.387-37.606-100.46-34.285z" fill-rule="evenodd" stroke="#d8aa3f" stroke-width="1.665" fill="#fec74a"/> - <path d="M232.1 260.85l-102.31-1.438 101.88 34.01.429-32.572z" fill-rule="evenodd" stroke="#d8aa3f" stroke-width="1.665" fill="#fec74a"/> - <path d="M315.121 279.224c0 33.896-27.478 61.374-61.374 61.374s-61.373-27.478-61.373-61.374 27.478-61.374 61.373-61.374 61.374 27.478 61.374 61.374z" fill-rule="evenodd" stroke="#d8aa3f" stroke-width="1.6651236" fill="#fec74a"/> - <path fill-rule="evenodd" fill="#005989" d="M-165.12 303.4h839.9V512h-839.9z"/> - <path d="M-165.6 454c15.618 7.228 37.991 25.319 61.922 25.303 40.042-.26 41.108-27.425 81.669-26.133 40.667 1.035 33.311 29.634 88.224 29.491 45.369-.119 60.026-34.665 99.134-30.526 28.963-1.49 40.817 32.714 85.334 33.148 46.172.987 63.126-37.28 92.09-34.112 30.856 0 40.964 30.821 84.253 31.043 55.136.278 64.829-32.078 99.323-30.008 24.55-.518 43.91 23.714 79.887 24.317 28.707.489 52.74-21.214 68.975-28.974l.803-36.827c-17.015 6.327-42.386 27.073-67.756 27.301-36.51 1.336-59.094-23.946-84.464-23.718-30.397.273-42.51 31.284-94.076 31.284-47.11 0-57.918-31.284-88.316-31.284-29.712.228-38.815 34.026-90.253 33.4-41.96-.505-58.31-32.262-88.023-32.034-31.5 0-64.072 30.881-98.951 29.39-48.14-2.034-58.541-29.39-90.041-29.39-23.542 0-48.948 25.635-77.31 26.062-28.205.434-59.891-25.508-62.826-26.062l.402 38.33zM-165.6 381.07c15.618 7.228 37.991 25.319 61.922 25.303 40.042-.26 41.108-27.425 81.669-26.133 40.667 1.035 33.311 29.634 88.224 29.491 45.369-.119 60.026-34.665 99.134-30.526 28.963-1.49 40.817 32.714 85.334 33.148 46.172.987 63.126-37.28 92.09-34.112 30.856 0 40.964 30.821 84.253 31.043 55.136.278 64.829-32.078 99.323-30.008 24.55-.518 43.91 23.714 79.887 24.317 28.707.489 52.74-21.214 68.975-28.974l.803-36.827c-17.015 6.327-42.386 27.073-67.756 27.301-36.51 1.336-59.094-23.946-84.464-23.718-30.397.273-42.51 31.284-94.076 31.284-47.11 0-57.918-31.284-88.316-31.284-29.712.228-38.815 34.026-90.253 33.4-41.96-.505-58.31-32.262-88.023-32.034-31.5 0-64.072 30.881-98.951 29.39-48.14-2.034-58.541-29.39-90.041-29.39-23.542 0-48.948 25.635-77.31 26.062-28.205.434-59.891-25.508-62.826-26.062l.402 38.33z" fill-rule="evenodd" fill="#fff"/> - <path d="M-165.6 308.92c15.603 7.228 37.955 25.319 61.865 25.303 40.004-.26 41.07-27.425 81.593-26.133 40.629 1.035 33.28 29.634 88.141 29.491 45.327-.119 59.97-34.665 99.042-30.526 28.936-1.49 40.779 32.714 85.254 33.148 46.129.987 63.067-37.28 92.004-34.112 30.827 0 40.926 30.821 84.174 31.043 55.085.278 64.769-32.078 99.23-30.008 24.528-.518 43.869 23.714 79.813 24.317 28.68.489 52.691-21.214 68.911-28.974l.802-36.827c-17 6.327-42.346 27.073-67.693 27.301-36.475 1.336-59.038-23.946-84.385-23.718-30.369.273-42.471 31.284-93.988 31.284-47.065 0-57.864-31.284-88.234-31.284-29.684.228-38.779 34.026-90.169 33.4-41.921-.505-58.255-32.262-87.941-32.034-31.47 0-64.012 30.881-98.859 29.39-48.095-2.034-58.486-29.39-89.957-29.39-23.52 0-48.903 25.635-77.237 26.062-28.15.44-59.81-25.5-62.74-26.06l.401 38.33z" fill-rule="evenodd" fill="#fff"/> - <path d="M136.81 75.956c61.048-4.18 49.921-9.394 74.493-13.316 30.964 4.257 34.505 23.004 51.758 34.505 0 0-6.485 21.926-27.706 18.822-2.853-8.796 10.273-11.515-27.497-34.54-21.958-1.307-61.25 3.854-71.048-5.472zM326.07 109.89l-43.979 1.81v10.866c29.664.949 35.011-3.018 43.979-12.676z" fill-rule="evenodd" stroke="#d8aa3f" stroke-width="1.776" fill="#ffc84b"/> - <path stroke-linejoin="round" d="M174.84 108.07c7.665-3.92 11.477-2.32 18.118-2.579 4.57 8.278 8.882 9.054 18.885 10.09 15.263 21.471 36.735 21.73 39.839 21.73 29.923-.778 39.409-21.73 59.501-24.06h21.214c-3.535-6.036-6.295-9.486-13.97-9.83-15.781-.863-36.217-.431-54.067 3.621l-25.094 6.21c-7.33-3.536-25.266-22.335-36.735-21.99-6.726 1.81-6.726 4.139-10.089 6.726-6.467 2.76-12.936 1.437-17.601 10.08z" fill-rule="evenodd" stroke="#d8aa3f" stroke-width="1.665" fill="#ffc84b"/> - <path d="M205.104 98.914a3.174 3.174 0 1 1-6.348 0 3.174 3.174 0 0 1 6.348 0z" fill-rule="evenodd" stroke="#d8aa3f" stroke-width="1.664882" fill="#ffc84b"/> - <path d="M225.56 107.82c44.927-54.154 84.163-47.514 135.3-51.222 1.725 6.295 1.122 15.695-23.282 24.059-33.372 4.915-93.132 40.097-93.39 40.097-11.126-.517-18.886-12.158-18.627-12.935z" fill-rule="evenodd" stroke="#d8aa3f" stroke-width="1.776" fill="#ffc84b"/> - <path d="M317.87 72.536l33.134 1.436M314.26 77.942l24.152 1.97" stroke="#d9a43e" stroke-linecap="round" stroke-width="1.776" fill="none"/> - </g> -</svg> diff --git a/img/flags/4x3/km.svg b/img/flags/4x3/km.svg deleted file mode 100644 index b3dfb68..0000000 --- a/img/flags/4x3/km.svg +++ /dev/null @@ -1,16 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" height="480" width="640" viewBox="0 0 640 480"> - <defs> - <clipPath id="a"> - <path fill-opacity=".67" d="M0 0h682.67v512H0z"/> - </clipPath> - </defs> - <g clip-path="url(#a)" fill-rule="evenodd" transform="scale(.9375)"> - <path fill="#ff0" d="M0 0h768.77v128H0z"/> - <path fill="#fff" d="M0 128h768.77v128H0z"/> - <path fill="#be0027" d="M0 256h768.77v128H0z"/> - <path fill="#3b5aa3" d="M0 384h768.77v128H0z"/> - <path d="M0 0v512l381.86-255.28L0 0z" fill="#239e46"/> - <path d="M157.21 141.43C72.113 137.12 33.34 204.9 33.43 257.3c-.194 61.97 58.529 113.08 112.81 109.99-29.27-13.84-65.008-52.66-65.337-110.25-.3-52.18 29.497-97.55 76.307-115.61z" fill="#fff"/> - <path fill="#fff" d="M155.927 197.058l-11.992-9.385-14.539 4.576 5.215-14.317-8.831-12.41 15.227.528 9.065-12.238 4.195 14.649 14.452 4.846-12.644 8.524zM155.672 249.121l-11.993-9.385-14.538 4.576 5.215-14.317-8.831-12.41 15.227.528 9.065-12.238 4.194 14.649 14.453 4.846-12.645 8.524zM155.927 301.698l-11.992-9.385-14.539 4.576 5.215-14.317-8.831-12.41 15.227.528 9.065-12.239 4.195 14.65 14.452 4.846-12.644 8.524zM155.672 354.778l-11.993-9.385-14.538 4.576 5.215-14.317-8.831-12.41 15.227.528 9.065-12.239 4.194 14.65 14.453 4.846-12.645 8.524z"/> - </g> -</svg> diff --git a/img/flags/4x3/kn.svg b/img/flags/4x3/kn.svg deleted file mode 100644 index d078161..0000000 --- a/img/flags/4x3/kn.svg +++ /dev/null @@ -1,14 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" height="480" width="640" viewBox="0 0 640 480"> - <defs> - <clipPath id="a"> - <path fill-opacity=".67" d="M-80.109 0h682.67v512h-682.67z"/> - </clipPath> - </defs> - <g fill-rule="evenodd" clip-path="url(#a)" transform="translate(75.102) scale(.9375)"> - <path fill="#ffe900" d="M-107.85.239H629.8v511.29h-737.65z"/> - <path d="M-108.24.239l.86 368.58L466.6-.001l-574.84.238z" fill="#35a100"/> - <path d="M630.69 511.53l-1.347-383.25-578.98 383.54 580.33-.283z" fill="#c70000"/> - <path d="M-107.87 396.61l.49 115.39 125.25-.16L629.63 101.7l-.69-100.32L505.18.239l-613.05 396.37z"/> - <path fill="#fff" d="M380.455 156.62l-9.913-42.245 33.354 27.075 38.014-24.636-17.437 41.311 33.404 27.021-44.132-1.541-17.37 41.333-9.835-42.265-44.138-1.48zM105.21 335.53l-9.913-42.245 33.354 27.075 38.014-24.636-17.437 41.311 33.404 27.021-44.132-1.541-17.37 41.333-9.835-42.265-44.138-1.48z"/> - </g> -</svg> diff --git a/img/flags/4x3/kp.svg b/img/flags/4x3/kp.svg deleted file mode 100644 index f986141..0000000 --- a/img/flags/4x3/kp.svg +++ /dev/null @@ -1,15 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" height="480" width="640" viewBox="0 0 640 480"> - <defs> - <clipPath id="a"> - <path fill-opacity=".67" d="M5.077.1h682.53V512H5.077z"/> - </clipPath> - </defs> - <g fill-rule="evenodd" clip-path="url(#a)" transform="translate(-4.761 -.094) scale(.93768)"> - <path stroke="#000" stroke-width="1.014" fill="#fff" d="M775.94 511.52H-75.92V.57h851.86z"/> - <path fill="#3e5698" d="M775.94 419.07H-75.92v92.457h851.86z"/> - <path fill="#c60000" d="M775.94 397.65H-75.92V114.44h851.86z"/> - <path fill="#3e5698" d="M775.94.576H-75.92v92.457h851.86z"/> - <path d="M328.518 256.07c0 63.45-53.108 114.886-118.619 114.886-65.512 0-118.618-51.437-118.618-114.886 0-63.45 53.108-114.885 118.618-114.885 65.512 0 118.619 51.436 118.619 114.885z" fill="#fff"/> - <path fill="#c40000" d="M175.83 270.567l-57.06-40.618 71.056-.289 22.636-66.367 21.164 66.147 71.057-.407-57.978 41.177 21.275 66.117-56.998-40.696-57.908 41.264z"/> - </g> -</svg> diff --git a/img/flags/4x3/kr.svg b/img/flags/4x3/kr.svg deleted file mode 100644 index ee84b6e..0000000 --- a/img/flags/4x3/kr.svg +++ /dev/null @@ -1,24 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" height="480" width="640" viewBox="0 0 640 480"> - <defs> - <clipPath id="a"> - <path fill-opacity=".67" d="M-95.808-.44h682.67v512h-682.67z"/> - </clipPath> - </defs> - <g fill-rule="evenodd" clip-path="url(#a)" transform="translate(89.82 .412) scale(.9375)"> - <path fill="#fff" d="M610.61 511.56h-730.17v-512h730.17z"/> - <path d="M251.871 256.021c0 62.137-50.372 112.508-112.507 112.508-62.137 0-112.507-50.372-112.507-112.508 0-62.137 50.371-112.507 112.507-112.507 62.137 0 112.507 50.372 112.507 112.507z" fill="#fff"/> - <path d="M393.011 262.55c0 81.079-65.034 146.803-145.261 146.803S102.488 343.63 102.488 262.55s65.034-146.804 145.262-146.804S393.01 181.471 393.01 262.55z" fill="#c70000"/> - <path d="M-49.417 126.44l83.66-96.77 19.821 17.135-83.66 96.771zM-22.018 150.127l83.66-96.77 19.82 17.135-83.66 96.77z"/> - <path d="M-49.417 126.44l83.66-96.77 19.821 17.135-83.66 96.771z"/> - <path d="M-49.417 126.44l83.66-96.77 19.821 17.135-83.66 96.771zM5.967 174.32l83.66-96.77 19.82 17.136-83.66 96.77z"/> - <path d="M-49.417 126.44l83.66-96.77 19.821 17.135-83.66 96.771z"/> - <path d="M-49.417 126.44l83.66-96.77 19.821 17.135-83.66 96.771zM459.413 29.638l83.002 97.335-19.937 17-83.002-97.334zM403.707 77.141l83.002 97.335-19.936 17-83.002-97.334z"/> - <path d="M417.55 133.19l78.602-67.814 14.641 16.953-83.996 75.519-9.247-24.659z" fill="#fff"/> - <path d="M514.228 372.013l-80.416 95.829-19.716-16.4 80.417-95.828zM431.853 53.14l83.002 97.334-19.936 17.001-83.002-97.334zM541.475 394.676l-80.417 95.829-19.715-16.399 80.417-95.829zM486.39 348.857l-80.417 95.83-19.715-16.4 80.416-95.829z"/> - <path d="M104.6 236.68c4.592 36.974 11.297 78.175 68.199 82.455 21.328 1.278 62.817-5.074 77.061-63.19 18.688-55.829 74.975-71.88 113.28-41.613 21.718 14.166 27.727 36.666 29.283 53.557-1.739 54.243-32.874 101.2-72.823 122.14-45.93 27.3-109.56 27.87-165.3-13.49-25.12-23.57-60.219-67.02-49.7-139.86z" fill="#3d5897"/> - <path d="M435.91 370.59l78.734 67.661-14.591 16.997-87.156-71.851 23.013-12.807z" fill="#fff"/> - <path d="M-1.887 357.197l83.002 97.335-19.937 17-83.002-97.334z"/> - <path d="M-16.188 437.25l78.602-67.814 14.641 16.953-83.996 75.519-9.247-24.659z" fill="#fff"/> - <path d="M25.672 333.696l83.003 97.334-19.937 17-83.002-97.334zM-30.033 381.199l83.002 97.334-19.936 17L-49.97 398.2z"/> - </g> -</svg> diff --git a/img/flags/4x3/kw.svg b/img/flags/4x3/kw.svg deleted file mode 100644 index 3217d78..0000000 --- a/img/flags/4x3/kw.svg +++ /dev/null @@ -1,13 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" height="480" width="640" viewBox="0 0 640 480"> - <defs> - <clipPath id="a"> - <path fill-opacity=".67" d="M0 0h682.67v512H0z"/> - </clipPath> - </defs> - <g fill-rule="evenodd" clip-path="url(#a)" transform="scale(.9375)" stroke-width="1pt"> - <path fill="#fff" d="M0 170.64h1024v170.68H0z"/> - <path fill="#f31830" d="M0 341.32h1024V512H0z"/> - <path fill="#00d941" d="M0 0h1024v170.68H0z"/> - <path d="M0 0v512l255.45-170.7.55-170.77L0 0z"/> - </g> -</svg> diff --git a/img/flags/4x3/ky.svg b/img/flags/4x3/ky.svg deleted file mode 100644 index ac1d318..0000000 --- a/img/flags/4x3/ky.svg +++ /dev/null @@ -1,65 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" height="480" width="640" viewBox="0 0 640 480"> - <path fill="#006" d="M0 0h640v480H0z"/> - <path fill-rule="evenodd" fill="#006" d="M0 0h400v200H0z"/> - <g stroke-width="1pt"> - <path fill="#fff" d="M0 0v27.09l334.411 215.208h42.094v-27.09L42.093.002H0zm376.505 0v27.089L42.093 242.297H0v-27.089L334.411 0h42.094z"/> - <path fill="#fff" d="M156.877 0v242.297h62.75V0h-62.75zM0 80.766v80.765h376.505V80.766H0z"/> - <path fill="#c00" d="M0 96.919v48.46h376.505v-48.46H0zM169.427 0v242.297h37.65V0h-37.65zM0 242.297l125.502-80.766h28.062L28.062 242.297H0zM0 0l125.502 80.766H97.439L0 18.06V0zm222.941 80.766L348.443 0h28.062L251.003 80.766h-28.062zm153.564 161.53l-125.502-80.765h28.062l97.44 62.707v18.059z"/> - </g> - <g> - <path d="M448.33 179.141c-1.009.61-3.028 2.44-5.048 1.83-2.019-.61-6.562-8.542-11.61-7.322-5.05 1.22-8.078 3.051-10.097 3.051-2.02 0-7.573 1.831-7.573 6.712 0 4.882.505 8.543 1.515 8.543 1.01 0 2.524-3.05 2.524-3.05s.505 6.1 4.039 6.1 11.106.611 11.61 2.442c.506 1.83-3.533 6.102-2.523 9.763 1.01 3.661 5.553 9.763 5.553 9.763s-6.563 4.881-6.563 7.933 1.01 6.102 1.01 6.102l-29.28 1.22s-2.02 86.647-1.01 93.36c1.01 6.71 3.533 23.186 3.533 23.186s-6.562-2.134-12.116 3.358c-5.553 5.493-24.988 14.948-25.493 19.219-.505 4.271-2.272 7.934-.252 10.984 2.019 3.05 9.124 11.34 7.067 10.985-6.777-1.17-9.3-10.798-13.882-14.34-4.504-3.476-13.378-2.745-14.387.914-1.01 3.662-.505 9.763 0 10.984.504 1.22 6.057 20.747 7.572 25.018s17.416 10.677 24.484 10.068c13.377.304 19.435-5.796 19.94-5.184.505.608 28.78 29.768 86.83 29.898 45.188.1 79.258-29.29 79.258-28.678 0 .609 18.679 6.101 25.241 4.272 6.563-1.834 16.155-6.105 18.174-10.376 2.02-4.27 7.573-26.239 8.078-29.897.505-3.663 0-7.934-4.544-9.155s-7.067-.916-9.591.304-3.282 4.58-7.068 10.68c-2.019 1.833-7.32 6.713-5.805 5.492s4.795-10.372 5.3-13.426c.505-3.05 2.02-8.542-1.514-11.593-3.534-3.05-8.947-4.297-15.145-8.846-5.886-4.034-10.6-10.68-14.135-10.68-3.534 0-7.573-1.829-7.068-1.829.505 0 4.552-8.865 3.542-18.016-1.01-9.155.496-96.7-.008-96.7-.505 0-25.242 1.83-25.242.61s2.02-9.763 0-15.255c-2.019-5.491-10.601-9.153-8.077-10.373 2.524-1.22 13.63-4.271 13.125-9.153-.505-4.882-7.572-4.271-10.601-6.102-3.029-1.83-12.116-10.373-13.126-10.373-1.01 0 26.25-16.475 24.232-16.475-2.019 0-12.62-3.05-16.154-1.22 0-3.051 14.64-12.204 12.116-13.425-2.524-1.22-14.136-2.44-11.107-3.05 3.03-.61 4.039-7.933 3.534-7.933-.505 0-13.125 1.83-13.125 1.83s-3.03-4.27-4.039-4.27c-1.01 0-5.553 2.44-5.553 2.44l-2.524-6.712-5.553 3.661-2.524-3.051s-4.544 1.22-4.544 0c.191-.044-.523-3.064-1.236-3.064-.715 0-5.712 3.883-5.89 3.667-.179-.215-5.712-7.982-5.712-7.766 0 .216-3.927 14.67-4.105 14.67-.178 0-3.927.431-4.105.647-.179.216-19.99-11.434-19.811-11.218.178.216 5.175 11.218 5.175 11.218s-4.283 2.373-4.283 2.59c0 .215.714 4.96.714 4.96l-13.21-4.53s4.998 10.139 4.64 10.139c-.356 0-9.816.432-9.637.432.178 0 4.462 8.413 4.462 8.413l-1.606 4.962s14.217 10.033 13.207 10.644zm84.307 212.347c1.262 1.83 8.077 10.372 7.067 10.372-1.01 0-17.92 11.289-24.737 13.426-6.815 2.134-29.027 6.1-27.765 5.796 1.262-.304 19.946-10.535 27.519-15.414 7.572-4.88 17.915-13.57 17.915-14.18zm-105.513-.308c-1.01 1.22-5.806 10.68-5.806 10.68s13.883 9.763 24.232 13.425c10.349 3.659 28.018 4.88 27.008 4.575-1.01-.304-22.212-9.763-28.27-14.643-6.058-4.883-16.912-14.038-17.165-14.038z" fill-rule="evenodd" fill="#fff"/> - <g fill-rule="evenodd" stroke="#6d6666" fill="#fec500"> - <path d="M394.65-212.97s28.777 17.265 35.354 21.376 27.954 22.199 29.598 21.377c1.645-.822 13.155-9.866 13.155-9.866s-23.843-18.91-38.642-23.021-39.465-8.222-39.465-9.866z" stroke-width="1.403" transform="matrix(.307 0 0 .37108 317.054 244.257)"/> - <path d="M390.54-231.88c2.467 0 47.687 23.022 61.664 34.532s19.732 26.31 21.377 26.31c1.644 0 23.021-3.289 22.198-3.289-.822 0-9.866-29.598-30.42-38.642-20.555-9.044-73.996-18.911-74.819-18.911z" stroke-width="1.403" transform="matrix(.307 0 0 .37108 317.054 244.257)"/> - <path d="M603.48-296.01c-.822 0-9.044 24.666-11.511 32.065-2.466 7.4-6.577 23.021-6.577 23.021s-36.176 3.289-34.532-.822c1.645-4.111 55.086-54.264 52.62-54.264z" transform="matrix(.307 0 0 .37108 317.054 245.983)" stroke-width="1.403"/> - <path d="M398.76-261.48s42.754 28.776 57.553 45.22c14.799 16.443 29.598 45.22 30.42 45.22.823 0 40.287-8.222 40.287-7.4s-46.042-46.042-68.241-60.019-59.197-21.377-60.019-23.021z" stroke-width="1.403" transform="matrix(.307 0 0 .37108 317.054 244.257)"/> - <path d="M443.16-273.81s21.377 32.887 25.487 44.398c4.111 11.51 16.444 41.109 16.444 41.109H518.8s-16.443-36.998-34.531-55.086-40.287-28.776-41.109-30.421z" transform="matrix(.307 0 0 .37108 317.054 245.983)" stroke-width="1.403"/> - <path d="M454.66-291.9c.823 2.467 31.243 31.243 38.643 50.153 7.399 18.91 13.155 42.754 13.155 42.754l29.598-7.4s-26.31-48.509-42.753-61.664c-16.444-13.154-36.998-22.198-38.643-23.843z" transform="matrix(.307 0 0 .37108 317.054 245.983)" stroke-width="1.403"/> - <path d="M700.5-209.68s-61.663 6.578-83.862 12.333-34.532 27.132-34.532 27.132 28.777 10.688 30.421 9.044 18.91-18.91 37.82-25.488c18.91-6.577 51.797-22.199 50.153-23.021z" stroke-width="1.403" transform="matrix(.307 0 0 .37108 317.054 244.257)"/> - <path d="M698.03-249.97c-1.645.823-50.975 41.11-66.597 54.264-15.621 13.155-30.421 27.132-32.065 27.954-1.644.823-32.065-4.11-30.421-5.755 1.645-1.644 45.22-36.998 73.997-52.619 28.776-15.622 52.619-22.199 55.086-23.844z" stroke-width="1.403" transform="matrix(.307 0 0 .37108 317.054 244.257)"/> - <path d="M685.7-278.75c-4.933 5.755-53.442 45.22-66.597 59.197s-34.531 38.643-34.531 38.643-25.488-11.511-23.843-16.444c1.644-4.933 36.175-33.709 60.841-50.153 24.665-16.444 66.596-29.599 64.13-31.243z" stroke-width="1.403" transform="matrix(.307 0 0 .37108 317.054 244.257)"/> - <path d="M636.37-282.04c-.822.823-29.598 31.243-35.354 39.465-5.755 8.222-23.021 44.398-23.021 44.398s-25.487-22.199-25.487-23.021 32.065-34.532 50.975-47.687 33.709-10.688 32.887-13.155z" stroke-width="1.403" transform="matrix(.307 0 0 .37108 317.054 244.257)"/> - <path d="M565.09-241.77c0 5.78-4.685 10.465-10.465 10.465s-10.465-4.685-10.465-10.465 4.685-10.465 10.465-10.465 10.465 4.685 10.465 10.465zM586.02-227.81c0 5.137-4.685 9.302-10.465 9.302s-10.465-4.165-10.465-9.302 4.685-9.302 10.465-9.302 10.465 4.165 10.465 9.302zM539.51-238.28c0 5.137-5.726 9.302-12.79 9.302-7.064 0-12.79-4.165-12.79-9.302s5.726-9.302 12.79-9.302c7.064 0 12.79 4.165 12.79 9.302z" transform="matrix(.307 0 0 .37108 317.054 245.983)" stroke-width="1.497"/> - <path d="M573.23-219.09c0 9.954-6.507 18.022-14.534 18.022-8.027 0-14.534-8.069-14.534-18.022 0-9.954 6.507-18.022 14.534-18.022 8.027 0 14.534 8.069 14.534 18.022zM533.7-218.51c0 7.706-6.507 13.953-14.534 13.953-8.027 0-14.534-6.247-14.534-13.953 0-7.706 6.507-13.953 14.534-13.953 8.027 0 14.534 6.247 14.534 13.953z" transform="matrix(.307 0 0 .37108 317.054 245.983)" stroke-width="1.497"/> - <path d="M513.93-207.46c0 6.743-4.946 12.209-11.046 12.209s-11.046-5.466-11.046-12.209c0-6.743 4.945-12.209 11.046-12.209 6.1 0 11.046 5.466 11.046 12.209zM595.32-208.63c0 8.027-7.548 14.534-16.86 14.534-9.311 0-16.86-6.507-16.86-14.534 0-8.027 7.548-14.534 16.86-14.534 9.311 0 16.86 6.507 16.86 14.534zM554.63-229.56c0 4.816-5.987 8.72-13.372 8.72s-13.372-3.904-13.372-8.72 5.987-8.72 13.372-8.72 13.372 3.904 13.372 8.72z" transform="matrix(.307 0 0 .37108 317.054 245.983)" stroke-width="1.497"/> - <path d="M556.95-210.37c0 7.064-8.33 12.79-18.604 12.79s-18.604-5.726-18.604-12.79c0-7.064 8.33-12.79 18.604-12.79s18.604 5.726 18.604 12.79zM604.62-187.7c0 8.67-7.809 15.697-17.441 15.697s-17.441-7.028-17.441-15.697 7.809-15.697 17.441-15.697c9.633 0 17.441 7.028 17.441 15.697zM509.28-191.77c0 5.78-4.425 10.465-9.883 10.465s-9.884-4.685-9.884-10.465 4.425-10.465 9.884-10.465 9.883 4.685 9.883 10.465z" transform="matrix(.307 0 0 .37108 317.054 245.983)" stroke-width="1.497"/> - <path d="M579.04-193.51c0 7.385-6.768 13.372-15.116 13.372-8.348 0-15.116-5.987-15.116-13.372s6.768-13.372 15.116-13.372c8.348 0 15.116 5.987 15.116 13.372zM531.37-194.09c0 6.422-5.987 11.627-13.371 11.627-7.385 0-13.371-5.206-13.371-11.627 0-6.422 5.987-11.627 13.371-11.627 7.385 0 13.371 5.206 13.371 11.627z" transform="matrix(.307 0 0 .37108 317.054 245.983)" stroke-width="1.497"/> - <path d="M554.63-190.61c0 7.064-6.247 12.79-13.953 12.79-7.706 0-13.953-5.726-13.953-12.79 0-7.064 6.247-12.79 13.953-12.79 7.706 0 13.953 5.726 13.953 12.79zM494.16-267.35c3.488 0 27.906 8.139 27.906 8.139s-30.232 11.628-25.581 10.465 33.72-4.651 31.394-4.651c-2.325 0-25.58 22.092-18.604 20.929 6.977-1.162 20.93-15.115 22.092-15.115 1.163 0 15.116 22.092 16.279 20.929 1.162-1.163 0-22.092 1.162-22.092 1.163 0 29.069 13.953 26.743 12.79-2.325-1.163-18.603-17.441-17.441-17.441 1.163 0 38.371 3.488 36.045 2.325-2.325-1.162-24.417-11.627-24.417-11.627s16.278-15.115 12.79-15.115-30.231 15.115-27.906 13.952c2.326-1.162 29.069-31.393 29.069-31.393l-26.743 12.79s4.651-18.604 2.325-17.442c-2.325 1.163-20.929 24.418-22.092 24.418s-5.814-23.255-5.814-23.255 1.163 25.58-5.813 26.743c-6.977 1.163-31.394 5.814-31.394 4.651z" transform="matrix(.307 0 0 .37108 317.054 245.983)" stroke-width="1.497"/> - </g> - <g fill-rule="evenodd"> - <path d="M445.509 216.536c.178.863 5.89 16.396 14.636 15.964s12.315-3.02 11.958-3.236c-.357-.216-4.105-2.804-6.247-8.414-2.142-5.609-2.499-7.982-2.499-7.982l-17.848 3.668zM476.744 210.495s6.425 15.317 9.28 17.474c2.857 2.158 9.46 3.884 12.316 3.668 2.856-.216 6.247 0 6.247 0s-2.855-1.51-5.176-9.924-3.034-11.218-3.034-11.218h-19.633zM516.01 216.104s-1.25 11.218 0 14.023c1.25 2.805 7.496 7.982 7.496 7.982s7.496-1.079 7.675-7.982c.178-6.904-2.499-13.376-2.499-13.376l-12.672-.647z" fill="#00389b"/> - <path d="M288.94 21.015s1.163 4.65 0 8.14-11.046 12.79-11.046 20.347c0 7.558 11.627 30.812 47.091 31.394 35.463.581 80.229-19.185 79.647-19.767-.58-.58-84.88-56.974-86.04-56.393-1.16.582-29.65 17.441-29.65 16.28zM523.23 61.129s7.557 20.348 10.464 22.674c2.907 2.325 4.07 6.976 4.651 6.976s48.835 10.464 48.835 10.464 4.651-13.37-2.325-23.836c-6.977-10.465-33.138-37.789-33.138-37.789l-28.49 21.511zM556.37 36.13c1.162 0 12.79 9.883 22.092 4.65 9.301-5.231 24.417-19.184 24.417-19.184s-12.79 4.07-22.092 3.488c-9.302-.581-23.836 11.627-24.417 11.046z" stroke="#000" stroke-width="1.497" fill="#005120" transform="matrix(.307 0 0 .37108 350.733 188.675)"/> - <path d="M287.2 23.34s-3.488-9.883-12.79-10.465c-9.302-.581-26.162 1.163-31.975-3.488-5.814-4.651-7.558-15.697-10.465-15.116-2.907.581-10.465 0-11.046 0s-3.488-9.302 4.651-13.953 15.116-.582 19.766-4.07c4.651-3.488 11.628-5.814 20.93-6.395 9.302-.581 24.417 11.628 31.394 14.534 6.976 2.907 22.092 6.395 27.905 3.488 5.814-2.907 38.371-15.697 49.998-16.278 11.627-.581 36.045-1.162 45.347-.581s45.928 5.232 56.974 10.465c11.046 5.232 69.764 25.58 77.903 30.23 8.139 4.652 26.162 11.628 26.162 11.628s-31.976 31.394-47.672 36.626c-15.697 5.232-65.695 13.372-95.345 11.627-29.65-1.744-52.904-4.651-75.578-16.278-22.68-11.626-47.1-22.672-48.26-28.486-1.16-5.813-.58-13.371-.58-13.371l-27.324 9.883z" stroke="#000" stroke-width="1.497" fill="#005120" transform="matrix(.307 0 0 .37108 350.733 188.675)"/> - <path d="M251.15-14.449c-1.163.581-6.976 2.907-5.814 4.07 1.163 1.162 3.489 4.65 10.465 4.07 6.977-.582 14.534-4.652 14.534-4.652s-8.72-4.07-19.185-3.488z" stroke="#000" stroke-width="1.497" fill="#005120" transform="matrix(.307 0 0 .37108 350.733 188.675)"/> - <path d="M250.57-13.286v6.395s8.139 2.325 8.139.581c0-1.744.581-5.813-1.163-5.813s-6.395-.582-6.976-1.163z" stroke="#000" stroke-width="1.497" transform="matrix(.307 0 0 .37108 350.733 188.675)"/> - <path d="M331.95-8.453c2.056-3.7 0-8.632 11.922-14.388 11.921-5.755 32.681-4.11 32.681-4.11s-5.96 4.521-6.166 9.249c-.205 4.727.411 6.783.411 6.783s-11.305-3.7-19.938-1.439-18.704 4.522-18.91 3.905zM385.4-28.596c-1.233.617-10.277 10.688-9.25 13.772 1.028 3.083 13.155 10.483 17.061 9.866 3.905-.616 21.787-9.25 22.815-13.566 1.028-4.316 1.85-10.072.411-11.305-1.439-1.233-30.832 1.645-31.037 1.233zM424.66-30.24c-2.261 2.261-1.439 13.155-.617 14.388.822 1.233 15.005 15.416 18.088 16.238 3.083.822 25.899-1.439 27.749-3.905s7.399-12.95 5.755-15.416c-1.645-2.467-6.578-5.756-21.788-9.044s-24.254-2.878-29.187-2.261zM482.82-16.469c3.7 1.85 25.282 12.333 38.026 20.76 12.743 8.427 17.882 18.088 21.582 18.91 3.7.822 18.704-8.222 19.321-10.688.617-2.467-18.293-15.621-31.037-21.582-12.744-5.96-47.892-6.783-47.892-7.4zM478.3-7.63c-1.85 1.644 23.021 45.014 27.748 46.453 4.728 1.438 33.093-8.428 32.682-11.716-.41-3.288-7.81-9.866-25.28-19.526C495.98-2.08 481.8-8.452 478.3-7.63zM447.47 8.196c-3.905 2.261-10.071 41.11-6.166 42.96 3.905 1.85 52.003-4.728 53.853-9.044 1.849-4.317-19.733-38.643-26.105-38.643-6.371 0-17.882 1.645-21.582 4.728zM397.73-.025c-5.14 4.727-4.11 40.903-1.85 43.164 2.261 2.26 30.831 9.66 33.914 6.988 3.084-2.672 7.195-43.37 4.317-46.453-2.878-3.083-10.894-10.483-17.06-11.099-6.167-.616-16.444 5.96-19.321 7.4zM333.19-.642c-4.728 3.7-4.933 13.36.205 15.005 5.139 1.644 17.882 7.194 29.804 12.333 11.922 5.139 18.705 11.305 22.199 11.099 3.494-.206 6.783-36.381 3.083-38.437-3.7-2.055-14.594-3.7-24.871-3.289-10.277.411-25.282 1.44-30.42 3.289z" stroke="#000007" stroke-width="1.497" fill="#001707" transform="matrix(.307 0 0 .37108 350.733 188.675)"/> - </g> - <path d="M387.976 359.201c2.59-2.52 6.616-8.682 12.081-8.962 5.466-.28 11.22 4.761 11.22 4.761s5.752 23.528 5.465 23.528c-.288 0-9.493 6.722-9.78 6.722-.288 0-4.028-9.243-7.48-8.404-3.451.841-3.164 13.445-3.739 12.605-.575-.84-15.245-18.206-14.67-18.766.576-.56 7.192-10.642 6.904-11.483zM539.866 356.12c1.726-.28 9.493-6.163 14.958-5.882 5.466.28 8.63 2.8 11.506 5.321 2.876 2.521 6.329 8.962 6.329 8.962s-6.904 19.046-7.479 19.046-3.452 1.681-4.028.28-2.3-5.882-5.753-6.442c-3.451-.56-4.315 6.161-4.315 6.161l-11.217-27.447z" fill-rule="evenodd" fill-opacity=".996" fill="#d40f0f"/> - <path d="M543.604 362.007c0 1.682 10.643 28.01 27.903 33.05 17.258 5.041 22.724-4.761 24.737-8.122 2.013-3.361 9.205-3.08 9.205-3.08s-1.725 24.647-4.603 27.727c-2.876 3.081-5.178 9.803-21.286 10.082-16.107.281-30.778-15.123-35.667-19.605-4.892-4.482-11.22-16.244-13.81-21.567-2.587-5.32 13.809-17.924 13.52-18.485zM356.048 414.374c.288 0 7.767 8.123 18.697 7.282 10.931-.839 29.629-7.282 38.258-18.485 8.63-11.202 12.944-23.247 12.944-23.247s-12.656-22.406-12.944-22.406c-.288 0-1.438 7.282-3.74 12.043-2.301 4.762-8.63 18.205-19.272 22.408-10.644 4.2-10.644 5.88-14.958 5.32-4.315-.56-15.533-7.281-15.533-7.562 0-.28-5.465 13.165-5.465 13.165s-1.151 8.682 2.013 11.483z" fill-rule="evenodd" fill-opacity=".996" fill="#fddc59"/> - <path d="M387.782 358.423c-.814 0-21.154 11.091-20.34 15.844.813 4.753 34.985 72.089 108.206 72.88 73.223.794 117.975-60.998 114.719-71.296-3.254-10.298-26.034-22.181-26.034-22.181s5.694 4.753 4.881 11.09c-.814 6.338-26.036 61-89.497 59.416-63.461-1.585-93.565-49.908-93.565-55.453 0-5.545 3.255-8.715 1.628-10.299z" fill-rule="evenodd" fill-opacity=".996" fill="#fddc59"/> - <path d="M586.171 407.38c1.727-1.4 12.37-30.529 18.41-29.688 6.042.84 4.029 9.522 3.453 11.763-.575 2.24-6.616 22.407-6.616 22.407s.288-4.762-3.74-5.882c-4.026-1.12-10.643 1.961-11.506 1.401zM356.048 414.671c0-1.583-4.882-7.129.813-8.714 5.696-1.583 13.019 1.585 13.019 1.585s-4.069-11.883-8.95-21.39c-4.882-9.505-6.51-7.92-10.577-6.337-4.068 1.585-3.97 5.778-1.528 12.115 2.44 6.338 7.223 24.326 7.223 22.741z" fill-rule="evenodd" fill-opacity=".996" fill="#d40f0f"/> - <path fill="#fdc400" fill-rule="evenodd" d="M423.176 360.347l7.063-23.923-19.616-15.038 24.568-.567 8.012-23.608 8.123 23.568 24.567.455-19.549 15.13 7.17 23.887-20.201-14.216z"/> - <path d="M555.637 235.833v92.04c.18 44.983-45.689 84.374-76.147 92.04-30.461-7.666-76.328-47.057-76.147-92.036v-92.04h152.294z" fill-rule="evenodd" fill="#fff"/> - <path d="M177.16 325.98l.421 160.73s2.386-3.288 35.012-1.284c32.627 2.004 35.433 35.433 70.867 35.433 35.433 0 35.433-35.433 70.866-35.433s35.433 35.433 70.866 35.433 35.433-35.433 70.866-35.433 35.433 35.433 72.87 37.459c33.429-2.026 33.429-37.459 69.062-39.463l35.233 2.004v-159.45h-496.06z" fill-rule="evenodd" fill-opacity=".996" transform="matrix(.307 0 0 .35829 348.952 119.039)" stroke="#000" stroke-width="1.497" fill="#d40f0f"/> - <path d="M403.34 312.006v19.043h10.879c10.016.718 10.878 12.695 21.756 12.695s10.878-12.695 21.756-12.695 10.878 12.695 21.757 12.695 10.878-12.695 21.756-12.695 10.263 11.969 21.756 12.695c10.263-.726 10.817-11.977 21.757-12.695h10.878v-19.043h-10.878c-10.879 0-10.879 12.695-21.757 12.695-10.878 0-10.878-12.695-21.756-12.695S490.366 324.7 479.488 324.7c-10.879 0-10.879-12.695-21.757-12.695S446.853 324.7 435.975 324.7s-10.878-12.695-21.756-12.695H403.34zM406.623 350.088l7.596 19.043c10.017.718 10.878 12.695 21.757 12.695 10.878 0 10.878-12.695 21.756-12.695s10.878 12.695 21.756 12.695 10.879-12.695 21.757-12.695 10.263 11.97 21.756 12.695c10.263-.726 10.564-11.977 21.504-12.695l7.85-19.337-7.598.294c-10.878 0-10.878 12.695-21.756 12.696-10.878 0-10.878-12.696-21.756-12.696s-10.878 12.695-21.757 12.695c-10.878 0-10.878-12.695-21.756-12.695s-10.878 12.695-21.756 12.695-10.878-12.695-21.757-12.695h-7.596zM479.49 419.911c10.879 0 35.803-19.043 35.548-19.043.253 0-2.914-12.695-13.792-12.695s-10.878 12.695-21.757 12.695c-10.878 0-10.878-12.695-21.756-12.695s-13.655 12.695-13.68 12.695c-.504 0 24.558 19.043 35.435 19.043z" fill-rule="evenodd" fill-opacity=".996" fill="#0062bb"/> - <path d="M90.849 117.57c.822 0 8.222 1.233 13.565.822 5.344-.411 7.4-2.467 7.4-2.878v-1.233h6.988s1.233 5.755.411 6.166-2.878 2.056-3.289 2.056 0-2.878-.822-2.056-1.233 2.056-1.233 2.056-.822-1.234-1.233-1.234-1.233 1.234-1.233 1.234 0-1.234-.412-1.234c-.411 0-2.466 2.056-2.466 2.056l-2.055-1.645s-1.234 2.056-1.645 2.056-2.877-1.644-2.877-1.644l-4.111 2.466s0-3.7-.822-3.289c-.822.411-5.344.411-5.344.411s-1.234 2.467-1.645 2.467-2.055-2.055-1.644-2.055 1.233-1.234.822-1.645c-.41-.411-2.466 0-2.466-.411s-.822-2.878-.411-2.878 2.055.412 2.055.412v-2.467h2.055l.412 2.467z" fill-rule="evenodd" fill-opacity=".996" transform="matrix(1.5005 0 0 1.3054 286.934 126.302)" stroke="#000" stroke-width=".701" fill="#fdc400"/> - <path d="M98.248 94.136c-.411 0-3.289 3.289-2.878 6.988.411 3.7 7.4 9.044 7.4 9.044s3.7-1.644 4.933 0 1.233 6.577.822 6.577-5.344 1.234-5.344.41c0-.821 0-1.643-.411-1.643s-4.933.41-4.933.41l.411-1.643-4.11-.822 1.644-1.645s-6.578-2.877-6.167-2.877 2.878-1.644 2.878-1.644L87.56 104h2.878s-4.111-3.288-3.7-3.288c.41 0 2.466.41 2.466.41l-1.233-3.287h1.233l-1.233-2.467 2.055-.822 1.234 2.055-.411-4.933 2.877.412v4.11s1.233-2.466 1.233-2.877c0-.411 3.7 1.644 3.289.822z" fill-rule="evenodd" fill-opacity=".996" transform="matrix(1.5005 0 0 1.3054 286.934 126.302)" stroke="#000" stroke-width=".701" fill="#fdc400"/> - <path d="M529.965 282.453c-.771.671-3.085 2.146-3.085 2.146s5.244-.402 5.09-.402-1.85-1.342-2.005-1.744zM534.436 284.998c-.307.403-1.233 4.562-.616 4.293.616-.268 3.083-3.354 3.083-3.354l-2.467-.939zM541.519 285.534c.77.67 4.317 3.755 3.854 3.084-.462-.67-.925-3.488-1.233-3.62-.31-.135-2.314.803-2.621.536zM479.384 281.108c-.462.135-4.317 2.684-4.317 2.684s6.477-1.074 6.167-1.074c-.307 0-2.004-1.206-1.85-1.61zM483.39 284.333c-.616.536-2.62 4.292-1.85 4.159.772-.135 4.164-2.55 4.164-2.55l-2.313-1.61zM480.915 279.098c-.462-.134-3.702-1.476-3.547-1.476s4.318-.939 4.318-.939l-.771 2.415zM419.858 277.362l-4.626-3.22 5.86 1.61-1.234 1.61zM415.849 279.503c-.617 0-6.477 3.219-6.323 3.219s8.173.134 8.019 0c-.154-.133-1.388-2.95-1.696-3.22zM419.549 284.202c-.617.27-5.243 3.354-4.935 3.354.309 0 6.94.134 6.94 0s-1.851-3.22-2.005-3.354zM418.932 250.792s-1.696-3.756-1.542-3.756c.154 0 4.318 2.951 4.318 2.951l-2.776.805zM423.558 246.096c0-.134.463-2.414.463-2.414s4.163 2.817 4.009 2.817c-.154 0-4.164 0-4.472-.403zM430.035 247.84c0-.134.463-3.488.463-3.488s3.855 4.562 3.547 4.696c-.309.134-3.701-.67-4.01-1.208z" fill-rule="evenodd" fill-opacity=".996"/> - <path d="M137.26 110.86c0 .206 4.316 3.7 4.419 4.522.102.822-7.811 1.028-7.811 1.028s-2.261-1.747-2.98-1.645c-.72.103-1.028 1.85-1.028 1.85l1.85 1.028-3.494.205 1.028 1.953 2.672-.206-.617 1.85s1.644 1.234 1.953 1.028c.308-.205 1.336-2.055 2.158-2.364.822-.308 2.569-.308 2.569-.308s-1.336 2.261-.719 2.261c.616 0 3.391-2.364 3.391-2.364s.617 2.158.719 2.158c.103 0 2.056-2.466 2.056-2.466s0 1.953.308 1.953 3.186-2.467 3.186-2.467 2.261 2.878 2.569 2.672c.309-.205.617-3.083.925-3.083s2.261-.308 2.261-.411-1.233-1.131-1.439-2.569c-.205-1.439.206-4.83.103-4.83s-13.874.513-14.079.205z" fill-rule="evenodd" fill-opacity=".996" transform="matrix(1.5005 0 0 1.3054 285.91 126.597)" stroke="#000" stroke-width=".701" fill="#fdc400"/> - <path d="M115.37 104.6h40.286c4.111 0 7.81-1.644 7.81-4.111 0-2.466-6.577-2.877-9.043-2.055-2.467.822-13.155 5.755-17.677 5.344s-8.632-3.289-9.043-6.166c-.412-2.878 2.055-5.344 6.577-5.344s10.277 1.644 11.51 1.233 4.111-3.7 5.344-4.11c1.233-.412 4.933-.823 4.933-.823l-1.644 1.233 5.344-1.233s-4.111 4.522-8.222 5.755c-4.111 1.234-12.743.822-16.032.822s-4.933-.41-4.522 2.056c.411 2.466 2.878 4.111 4.933 3.699 2.056-.411 8.222-2.466 8.222-2.466l-1.645-1.233 7.4-.411s-.411-1.233 0-1.233 4.111.41 4.111.41-2.467-1.233-2.056-1.233 2.056 0 5.344.412c3.289.41 10.277 1.644 9.866 4.932-.411 3.289-2.877 6.166-5.755 6.166s-5.344-.822-5.344.412c0 1.233 3.289 2.055 5.344 2.055s4.522-1.644 4.933-1.644 1.233 2.466 1.644 2.466 2.878-.822 2.878-.822l-1.644 4.522 2.877.822s-1.644 1.644-1.233 1.644 2.877 0 2.877.411-3.288 2.878-3.288 3.289 2.466 1.644 2.466 1.644-1.644 2.467-2.055 2.056-2.056-2.467-2.056-2.467-.411 1.645-1.233 1.645-2.466-.411-2.466-.411 1.233-2.467.822-2.467-2.467 1.644-2.467 1.233l-1.232-1.236s3.288-1.336 3.288-3.289c0-1.952-1.336-3.905-7.296-4.213-5.961-.309-6.064 1.438-10.483 1.233-4.419-.206-4.419-1.953-7.708-1.953-3.288 0-13.463 4.111-18.19 4.008-4.727-.102-10.688-.411-10.483-.616.206-.206 3.906-9.661 4.008-9.966z" fill-rule="evenodd" fill-opacity=".996" transform="matrix(1.5005 0 0 1.3054 285.91 126.597)" stroke="#000" stroke-width=".701" fill="#fdc400"/> - <path d="M106.88 102.46c-.411.206-4.008.72-4.214 4.522-.205 3.803.309 3.803.72 3.597.411-.205 1.233-3.494 1.233-3.494s-1.233 4.522.103 5.55a9.298 9.298 0 0 0 2.775 1.438l.513-3.597s-1.027 3.495 1.439 4.728c2.467 1.233 3.392.308 3.186-.617-.205-.925-.925-3.288-.925-3.288s1.953 2.158 2.056 2.363c.102.206 1.027 1.85 3.494 1.131 2.466-.72.719-2.364.719-2.364l-2.98-2.46s3.083 3.185 4.419 2.055-1.028-3.597-.925-3.494 1.953 3.494 2.672 1.336-1.13-2.775-1.747-4.83c-.617-2.056-1.131-2.261-.514-3.495.617-1.233.72-3.596.72-3.596s2.569.616 2.363-1.542c-.205-2.158-2.775-2.672-3.288-2.775-.514-.103-.412-2.26-.617-2.158-.206.103-1.85 1.336-1.85 1.336s-1.439-3.392-1.747-3.186-1.953 1.953-3.186 2.055c-1.233.103-1.953 1.85-1.953 1.85s-4.316-2.055-4.213 1.336c.103 3.392 2.569 2.57 2.569 2.672s-.411 4.728-.822 4.933z" fill-rule="evenodd" fill-opacity=".996" transform="matrix(1.5005 0 0 1.3054 286.934 126.302)" stroke="#000" stroke-width=".701" fill="#fdc400"/> - <path d="M450.874 253.257c.742-.227 1.833-1.174 3.098-1.06s3.291 1.085 2.288 1.615c-1.005.53-1.745.758-2.88.491-1.133-.267-2.005-.837-2.506-1.046zM463.452 253.123c-.742-.227-1.833-1.175-3.098-1.06s-3.29 1.085-2.287 1.615c1.004.53 1.745.757 2.88.49 1.132-.266 2.004-.836 2.505-1.045z" fill-rule="evenodd" fill-opacity=".996"/> - <path d="M110.99 103.17c.103.514.411 4.831.616 4.522.206-.308 1.748-4.419 1.645-4.419s-2.158.103-2.261-.103z" fill-rule="evenodd" fill-opacity=".996" transform="matrix(1.5005 0 0 1.3054 287.143 126.366)" stroke="#000" stroke-width=".421" fill="#000039"/> - <path d="M109.96 103.17c.049-1.215.822-1.13 2.467-.925 1.644.206 2.466 1.028 2.363 1.234-.102.205-1.438.719-2.569.616-1.336-.411-2.298.089-2.261-.925z" transform="matrix(1.5005 0 0 1.3054 287.143 126.556)" stroke="#000" stroke-width=".842" fill="none"/> - <path d="M112.43 100.08l-.206 1.953M119.32 94.844s1.336.617 1.131 1.233c-.206.617-1.131.925-1.131.925M108.12 94.33c-.308.103-.719.308-.925 1.13-.205.823.925 1.337.925 1.337" transform="matrix(1.5005 0 0 1.3054 287.143 126.556)" stroke="#000" stroke-width="1.497" fill="none"/> - <path d="M111.19 136.13s-1.454 1.454 1.017 1.454.727-1.308.727-1.308" transform="matrix(1.5005 0 0 1.3054 287.361 77.606)" stroke="#000" stroke-width="1.497" fill="none"/> - <path fill="#fdc400" fill-rule="evenodd" d="M462.348 403.76l6.41-21.062-17.8-13.24 22.293-.498 7.271-20.784 7.37 20.75 22.294.4-17.74 13.32 6.506 21.03-18.33-12.516z"/> - <path fill="#003017" fill-rule="evenodd" fill-opacity=".996" d="M465.383 398.115l5.34-16.73-14.832-10.518 18.577-.396 6.06-16.51 6.141 16.482 18.578.318-14.783 10.582 5.421 16.705-15.275-9.942z"/> - <path fill="#fdc400" fill-rule="evenodd" d="M425.661 361.105l6.34-19.917-17.607-12.52 22.052-.472 7.193-19.655 7.291 19.622 22.053.378-17.548 12.597 6.435 19.887-18.132-11.836z"/> - <path fill="#003017" fill-rule="evenodd" fill-opacity=".996" d="M428.673 355.764l5.283-15.822-14.673-9.946 18.377-.374 5.994-15.614 6.076 15.588 18.377.3-14.623 10.007 5.363 15.798-15.11-9.403z"/> - <path fill="#fdc400" fill-rule="evenodd" d="M499.57 361.105l6.423-19.917-17.835-12.52 22.337-.472 7.285-19.655 7.385 19.622 22.337.378-17.774 12.597 6.518 19.887-18.366-11.836z"/> - <path fill="#003017" fill-rule="evenodd" fill-opacity=".996" d="M502.618 355.764l5.352-15.822-14.862-9.946 18.614-.374 6.07-15.614 6.154 15.588 18.614.3-14.811 10.007 5.431 15.798-15.304-9.403z"/> - <path d="M373.272 372.554c8.026 34.543 41.902 60.18 87.528 66.243 58.605 7.787 114.514-21.906 124.795-66.277" fill="none"/> - <path d="M373.128 377.899l11.006-6.218 1.036 2.263-4.317 2.439 1.429 3.12 4.316-2.438 1.036 2.263-11.006 6.218-1.036-2.263 4.988-2.818-1.428-3.121-4.988 2.818-1.036-2.263m4.607 9.63l10.276-7.607 3.516 5.865-1.708 1.264-2.25-3.752-2.375 1.759 2.094 3.492-1.628 1.205-2.094-3.492-2.829 2.094 2.303 3.84-1.735 1.285-3.57-5.954m7.16 11.046l9.065-9.315 1.552 1.863-3.555 3.654 2.139 2.57 3.555-3.653 1.552 1.864-9.065 9.315-1.551-1.864 4.108-4.222-2.14-2.57-4.108 4.222-1.551-1.864m11.837 5.516l1.47 1.434 2.674-5.05-4.144 3.616m-5.75 1.72l10.232-8.277 2.321 2.261-6.031 12.372-1.863-1.815 1.588-3.039-1.99-1.938-2.491 2.157-1.767-1.72m8.93 8.294l6.097-9.238-2.134-1.739 1.205-1.825 6.122 4.99-1.204 1.825-2.134-1.74-6.097 9.24-1.856-1.513m5.008 4.003l6.432-11.71 1.95 1.322-2.522 4.593 2.69 1.824 2.522-4.593 1.95 1.323-6.432 11.71-1.95-1.322 2.915-5.308-2.69-1.824-2.915 5.308-1.95-1.323m12.09 7.652l5.19-12.448 5.857 3.014-.849 2.037-3.768-1.94-1.227 2.943 3.557 1.83-.829 1.99-3.557-1.832-2.285 5.48-2.088-1.074m11.453-1.89c-.721 2.11-1.065 3.486-1.033 4.128.039.64.358 1.085.958 1.338.59.249 1.083.152 1.48-.29.403-.446.97-1.735 1.698-3.868s1.075-3.516 1.041-4.153c-.034-.637-.348-1.08-.943-1.332-.594-.25-1.095-.15-1.5.301-.406.452-.973 1.743-1.701 3.876m-2.197-.927c.465-1.36.893-2.421 1.285-3.183.394-.768.783-1.306 1.169-1.613.533-.442 1.076-.69 1.626-.744.55-.054 1.204.08 1.964.4s1.33.703 1.709 1.149c.38.446.64 1.032.78 1.758.1.526.067 1.217-.1 2.074-.162.859-.474 1.966-.937 3.32-.46 1.35-.888 2.408-1.282 3.176-.392.762-.78 1.304-1.164 1.625-.539.44-1.083.686-1.633.74-.55.054-1.205-.08-1.965-.4s-1.329-.703-1.708-1.149c-.38-.446-.637-1.03-.773-1.755-.105-.514-.076-1.2.086-2.06.164-.865.478-1.977.943-3.338m10.62-2.914l2.205.73-2.375 8.862c-.271 1.014-.345 1.739-.223 2.176.13.433.478.744 1.047.932.564.186 1.002.133 1.315-.16.317-.291.614-.952.89-1.983l2.366-8.828 2.175.72-2.432 9.076c-.237.882-.456 1.513-.658 1.892a2.88 2.88 0 0 1-.732.92 2.867 2.867 0 0 1-1.539.625c-.584.054-1.234-.037-1.951-.274-1.353-.448-2.221-1.088-2.605-1.922-.378-.837-.35-2.067.085-3.69l2.432-9.076m5.906 16.178l2.696-13.388 2.308.574 1.252 10.143 1.823-9.379 2.12.528-2.696 13.387-2.292-.57-1.272-10.166-1.827 9.396-2.112-.525m12.07.682l1.006.175c.512.09.877.11 1.094.064a.966.966 0 0 0 .551-.337c.26-.315.48-.77.655-1.365.177-.6.36-1.575.55-2.925.185-1.314.267-2.28.246-2.896-.021-.617-.137-1.1-.347-1.45a1.086 1.086 0 0 0-.47-.406c-.198-.1-.518-.19-.961-.266l-.975-.17-1.35 9.576m-2.507 1.61l1.91-13.554 3.652.636c.745.13 1.326.303 1.745.52.424.218.756.51.996.877.363.538.58 1.177.655 1.917.08.735.015 1.848-.195 3.338-.27 1.925-.523 3.276-.757 4.053-.233.77-.535 1.41-.904 1.916-.358.509-.804.831-1.337.967-.527.13-1.405.089-2.636-.125l-3.129-.545m9.55 1.57l1.188-13.655 6.312.677-.197 2.27-4.038-.433-.275 3.157 3.76.403-.189 2.164-3.759-.404-.326 3.76 4.133.444-.2 2.305-6.408-.687m10.43-1.106l1.018.04c.518.022.882-.005 1.093-.08a1 1 0 0 0 .511-.408c.225-.347.393-.828.504-1.441.111-.62.189-1.612.233-2.978.043-1.329.021-2.299-.066-2.908-.087-.61-.254-1.074-.5-1.393a1.048 1.048 0 0 0-.511-.341c-.206-.074-.534-.12-.982-.138l-.986-.04-.314 9.687m-2.317 1.931l.444-13.71 3.694.148c.753.03 1.35.125 1.788.285.444.16.805.407 1.083.739.418.486.703 1.092.856 1.817.159.72.213 1.833.165 3.34-.064 1.947-.17 3.322-.319 4.124-.148.796-.379 1.47-.691 2.023-.301.552-.71.931-1.224 1.136-.51.2-1.386.275-2.63.225l-3.166-.127m13.754.18l-.49-13.71 2.3-.1.49 13.708-2.3.102m6.141-.361l-.844-11.419-2.637.241-.166-2.255 7.567-.69.167 2.255-2.637.24.844 11.418-2.294.21m8.1-14.71l2.268-.438 1.425 9.11c.163 1.042.387 1.728.672 2.059.29.324.726.43 1.31.316.58-.112.951-.376 1.114-.793.168-.419.169-1.157.003-2.216l-1.42-9.076 2.236-.431 1.46 9.33c.141.906.198 1.58.169 2.02-.025.432-.12.827-.287 1.185a3.267 3.267 0 0 1-1.128 1.321c-.5.338-1.12.578-1.856.72-1.39.269-2.425.125-3.103-.431-.674-.563-1.142-1.679-1.403-3.346l-1.46-9.33m12.285 3.479l.935-.253c.696-.189 1.151-.47 1.366-.847.213-.381.24-.939.08-1.672-.163-.738-.405-1.214-.726-1.426-.318-.22-.838-.232-1.56-.037l-.965.262.87 3.973m-.514 8.08l-2.922-13.33 3.88-1.05c1.183-.32 2.1-.257 2.748.191.648.448 1.119 1.342 1.412 2.68.289 1.316.226 2.372-.188 3.169-.41.79-1.184 1.338-2.321 1.646l-1.628.44 1.239 5.652-2.22.601m8.817-9.659c.614 2.151 1.113 3.468 1.498 3.95.387.473.887.602 1.498.387.601-.212.934-.628.998-1.249.067-.628-.21-2.029-.83-4.203s-1.122-3.499-1.504-3.974c-.383-.476-.877-.607-1.484-.394-.606.214-.942.638-1.008 1.272-.066.634.212 2.037.832 4.211m-2.239.79c-.396-1.388-.653-2.515-.772-3.383-.12-.873-.115-1.563.015-2.07.171-.715.458-1.283.859-1.705.401-.422.989-.77 1.763-1.042.775-.273 1.435-.366 1.982-.278.546.088 1.078.368 1.594.84.372.343.733.907 1.08 1.694.354.785.727 1.869 1.122 3.25.392 1.376.649 2.5.77 3.374.118.868.117 1.56-.005 2.076-.177.717-.466 1.286-.867 1.707-.4.422-.989.77-1.763 1.042-.775.273-1.435.366-1.982.278-.546-.088-1.075-.369-1.586-.843-.37-.33-.73-.889-1.084-1.674-.354-.79-.73-1.88-1.126-3.267m11.286 3.136l-4.594-12.735 2.196-.977 6.197 7.576-3.273-8.88 2.017-.897 4.594 12.734-2.18.972-6.226-7.584 3.279 8.896-2.01.895m14.3-7.024l-4.816-10.13-2.34 1.374-.951-2 6.713-3.942.951 2-2.339 1.374 4.817 10.13-2.034 1.194m5.435-3.24l-6.593-11.6 1.932-1.356 2.586 4.55 2.664-1.87-2.586-4.55 1.932-1.355 6.593 11.6-1.932 1.355-2.988-5.257-2.664 1.87 2.988 5.257-1.932 1.355m8.236-5.932l-7.441-10.947 5.06-4.247 1.238 1.82-3.238 2.716 1.72 2.531 3.014-2.529 1.18 1.735-3.014 2.529 2.048 3.014 3.315-2.781 1.256 1.848-5.138 4.311m6.352-11.772l1.641-1.792.557.63c.532.6.962.939 1.29 1.014.328.066.658-.082.99-.444.347-.38.524-.764.53-1.154.011-.395-.152-.783-.49-1.164-.258-.293-.542-.474-.851-.544-.313-.074-.825-.048-1.537.08l-1.425.257c-1.22.231-2.089.273-2.61.125-.516-.152-1.018-.503-1.505-1.054-.726-.822-1.077-1.705-1.05-2.65.026-.944.424-1.837 1.194-2.678.816-.89 1.66-1.325 2.534-1.304s1.72.495 2.54 1.423c.082.093.144.167.185.222.045.051.082.098.112.14l-1.555 1.698-.23-.26c-.469-.53-.882-.823-1.24-.882-.36-.058-.718.109-1.076.5-.263.287-.394.601-.393.941 0 .332.136.65.406.956.363.41 1.103.497 2.22.26a.103.103 0 0 1 .029-.005l1.505-.307c1.063-.229 1.897-.257 2.5-.083.6.17 1.188.58 1.765 1.233.787.89 1.165 1.826 1.135 2.808-.03.983-.471 1.938-1.321 2.866-.885.966-1.769 1.432-2.653 1.398-.88-.038-1.782-.578-2.703-1.62-.098-.11-.251-.3-.46-.571l-.034-.038m9.554-3.854l-9.463-8.811 4.073-5.401 1.573 1.465-2.606 3.455 2.188 2.037 2.426-3.217 1.5 1.397-2.426 3.216 2.605 2.426 2.668-3.537 1.598 1.487-4.136 5.483m2.404-12.282l1.093-1.803-4.847-2.307 3.754 4.11m2.264 6.12l-8.687-10.229 1.725-2.844 11.809 5.078-1.384 2.284-2.914-1.365-1.479 2.438 2.242 2.473-1.312 2.165m1.465-11.156l1.051-2.275.707.403c.675.385 1.179.556 1.511.512.33-.052.602-.307.815-.767.222-.48.28-.908.177-1.28-.102-.38-.366-.69-.794-.935-.328-.187-.65-.26-.963-.218-.318.039-.797.243-1.436.612l-1.28.742c-1.092.646-1.906.99-2.442 1.03-.533.037-1.109-.121-1.727-.474-.922-.526-1.505-1.242-1.747-2.148-.242-.906-.117-1.893.376-2.96.523-1.13 1.201-1.839 2.036-2.124.835-.284 1.773-.13 2.814.464.105.06.184.109.239.147.057.032.105.063.146.093l-.996 2.155-.293-.166c-.594-.34-1.07-.474-1.427-.404-.356.07-.65.354-.88.85-.168.365-.203.708-.106 1.031.095.315.314.57.656.765.461.263 1.189.087 2.182-.528a.079.079 0 0 1 .025-.016l1.342-.816c.945-.59 1.729-.907 2.35-.953.618-.048 1.293.137 2.025.554.999.57 1.622 1.327 1.871 2.27.25.943.102 2.004-.443 3.182-.566 1.226-1.274 1.977-2.123 2.254-.846.271-1.854.073-3.024-.594a11.54 11.54 0 0 1-.599-.382l-.042-.024"/> - </g> -</svg> diff --git a/img/flags/4x3/kz.svg b/img/flags/4x3/kz.svg deleted file mode 100644 index 7949bce..0000000 --- a/img/flags/4x3/kz.svg +++ /dev/null @@ -1,23 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" height="480" width="640" viewBox="0 0 640 480"> - <g fill-rule="evenodd"> - <path fill="#6fdcff" d="M0 0h640v480H0z"/> - <g fill="#ffe400"> - <path d="M60.235 466.995c3.252 3.184 2.182 8.539 11.225 7.85 13.806 0 14.204-8.445 14.204-14.343 0-5.888-20.571-14.124-21.518-22.789-.96-8.674 4.748-11.096 9.524-11.096 4.748 0 8.082 2.777 8.082 5.198s-2.374 3.122-5.708 3.122 1.427-1.733-1.427-3.122-4.762 2.078-4.762 4.166c0 2.077 7.136 2.766 11.897 1.21.961 4.677 1.428 5.032-5.242 12.997 4.776-3.121 5.229-3.81 10.485-2.077-5.243-4.51-1.318-13.696-1.14-16.035s-1.001-5.115-3.142-6.503c-3.815-3.466-12.145-3.622-17.14-1.388-7.273 3.246-7.63 12.819-5.722 15.95l20.159 20.67c1.427 2.432 1.92 9.186-6.642 9.53-9.044.69-12.145-11.64-13.75-15.742-2.155 4.479-4.557 16.838-13.6 16.15-8.577-.345-10.224-7.1-8.797-9.531l20.708-21.077c1.894-3.131 1.537-12.704-5.736-15.95-4.995-2.234-13.311-2.078-17.126 1.388-2.141 1.388-3.335 4.165-3.156 6.503s4.103 11.525-1.14 16.035c5.256-1.733 5.723-1.044 10.485 2.077-6.67-7.965-6.19-8.32-5.242-12.997 4.762 1.556 11.911.867 11.911-1.21 0-2.088-1.921-5.554-4.775-4.166-2.841 1.389 1.907 3.122-1.414 3.122-3.348 0-5.722-.7-5.722-3.122s3.334-5.198 8.096-5.198 10.47 2.422 9.51 11.096c-.947 8.665-22.053 18.123-22.053 24.01 0 5.898 1.469 13.122 15.274 13.122 9.044.689 10.114-4.666 13.394-7.85z"/> - <path d="M59.137 343.293c3.252-3.184 5.928-12.621 14.972-11.932 13.805 0 19.034 7.63 19.034 13.529 0 5.887-28.078 54.084-29.024 62.749-.961 8.674 4.748 11.096 9.523 11.096 4.748 0 8.083-2.776 8.083-5.198s-2.374-3.122-5.709-3.122 1.428 1.733-1.427 3.122-4.762-2.078-4.762-4.165c0-2.078 7.136-2.767 11.898-1.211.96-4.677 1.427-5.032-5.242-12.997 4.776 3.121 5.228 3.81 10.484 2.077-5.242 4.51-1.317 13.696-1.139 16.035s-1.001 5.115-3.142 6.503c-3.815 3.466-12.145 3.623-17.14 1.389-7.273-3.247-7.63-12.82-5.723-15.951l27.13-58.594c1.428-2.433-2.373-10.408-10.937-10.752-9.043-.69-12.144 8.79-13.75 12.892l12.323-.898s.48 1.9 0 3.132c-6.367.417-12.323 1.576-12.323 1.576l-.467 6.242h6.08l-.48 2.767s-5.133-.345-5.6 0c-.48.344-.96 6.253-.96 6.253s-.947.344-1.976.344c-1.043 0-1.99-.344-1.99-.344s-.48-5.909-.947-6.253c-.48-.345-5.613 0-5.613 0l-.466-2.767h6.079l-.48-6.242s-5.956-1.159-12.324-1.576c-.466-1.232 0-3.132 0-3.132l12.324.898c-1.606-4.103-4.707-13.581-13.737-12.892-8.577.344-12.378 8.32-10.951 10.752l27.144 58.594c1.894 3.132 1.537 12.704-5.736 15.95-4.995 2.235-13.312 2.078-17.126-1.388-2.141-1.388-3.335-4.165-3.157-6.503s4.103-11.525-1.139-16.035c5.256 1.733 5.723 1.044 10.485-2.077-6.67 7.965-6.19 8.32-5.243 12.997 4.762-1.556 11.912-.867 11.912 1.21 0 2.088-1.921 5.554-4.776 4.166-2.84-1.389 1.908-3.122-1.413-3.122-3.349 0-5.723.7-5.723 3.122s3.335 5.198 8.097 5.198 10.47-2.422 9.51-11.096c-.947-8.665-29.024-56.862-29.024-62.75 0-5.897 5.228-13.528 19.034-13.528 9.043-.69 12.254 8.748 15.534 11.932z"/> - <path d="M59.137 319.408c3.252 3.184 5.928 12.621 14.972 11.932 13.805 0 19.034-7.63 19.034-13.529 0-5.888-28.078-54.084-29.025-62.749-.96-8.675 4.749-11.096 9.524-11.096 4.748 0 8.083 2.776 8.083 5.198s-2.374 3.121-5.709 3.121 1.427-1.732-1.427-3.12-4.762 2.077-4.762 4.164c0 2.078 7.136 2.767 11.898 1.211.96 4.677 1.427 5.032-5.242 12.997 4.775-3.121 5.228-3.81 10.484-2.077-5.242-4.51-1.317-13.696-1.139-16.035s-1.002-5.115-3.142-6.503c-3.815-3.466-12.145-3.623-17.14-1.389-7.274 3.247-7.63 12.82-5.723 15.951l27.13 58.594c1.428 2.433-2.374 10.408-10.937 10.752-9.043.69-12.145-8.79-13.75-12.892l12.323.898s.48-1.9 0-3.132c-6.367-.417-12.323-1.576-12.323-1.576l-.467-6.243h6.08l-.48-2.766s-5.133.345-5.6 0c-.48-.344-.96-6.253-.96-6.253s-.947-.344-1.977-.344c-1.042 0-1.99.344-1.99.344s-.48 5.909-.946 6.253c-.48.345-5.613 0-5.613 0l-.467 2.766h6.08l-.48 6.243s-5.956 1.159-12.324 1.576c-.466 1.232 0 3.132 0 3.132l12.323-.898c-1.605 4.103-4.707 13.581-13.736 12.892-8.577-.344-12.378-8.32-10.951-10.752l27.144-58.594c1.894-3.132 1.537-12.704-5.736-15.95-4.995-2.235-13.312-2.078-17.127 1.388-2.14 1.388-3.334 4.165-3.156 6.503s4.103 11.525-1.139 16.035c5.256-1.733 5.723-1.044 10.484 2.077-6.669-7.965-6.189-8.32-5.242-12.997 4.762 1.556 11.912.867 11.912-1.21 0-2.088-1.921-5.554-4.776-4.166-2.84 1.389 1.908 3.121-1.413 3.121-3.349 0-5.723-.699-5.723-3.12s3.335-5.2 8.097-5.2 10.47 2.422 9.51 11.097c-.947 8.665-29.024 56.861-29.024 62.75 0 5.897 5.228 13.528 19.034 13.528 9.043.689 12.254-8.748 15.534-11.932z"/> - <path d="M59.137 160.61c3.252-3.184 5.928-12.62 14.972-11.932 13.805 0 19.034 7.631 19.034 13.53 0 5.887-28.078 54.084-29.024 62.748-.961 8.675 4.748 11.097 9.523 11.097 4.748 0 8.083-2.777 8.083-5.199s-2.374-3.121-5.709-3.121 1.428 1.733-1.427 3.121-4.762-2.077-4.762-4.165c0-2.077 7.136-2.766 11.898-1.21.96-4.678 1.427-5.032-5.242-12.997 4.776 3.12 5.228 3.81 10.484 2.077-5.242 4.51-1.317 13.696-1.139 16.034s-1.001 5.115-3.142 6.504c-3.815 3.465-12.145 3.622-17.14 1.388-7.273-3.246-7.63-12.819-5.723-15.95l27.13-58.595c1.428-2.432-2.373-10.407-10.937-10.752-9.043-.689-12.144 8.79-13.75 12.892l12.323-.898s.48 1.9 0 3.132c-6.367.418-12.323 1.576-12.323 1.576l-.467 6.243h6.08l-.48 2.766s-5.133-.344-5.6 0c-.48.345-.96 6.253-.96 6.253s-.947.345-1.976.345c-1.043 0-1.99-.345-1.99-.345s-.48-5.908-.947-6.253c-.48-.344-5.613 0-5.613 0l-.466-2.766h6.079l-.48-6.243s-5.956-1.158-12.324-1.576c-.466-1.232 0-3.132 0-3.132l12.324.898c-1.606-4.102-4.707-13.58-13.737-12.892-8.577.345-12.378 8.32-10.951 10.752l27.144 58.594c1.894 3.132 1.537 12.705-5.736 15.951-4.995 2.234-13.312 2.077-17.126-1.388-2.141-1.389-3.335-4.165-3.157-6.504s4.103-11.524-1.139-16.034c5.256 1.733 5.723 1.044 10.485-2.077-6.67 7.965-6.19 8.32-5.243 12.996 4.762-1.555 11.912-.866 11.912 1.211 0 2.088-1.921 5.554-4.776 4.165-2.84-1.388 1.908-3.121-1.413-3.121-3.349 0-5.723.7-5.723 3.121s3.335 5.199 8.097 5.199 10.47-2.422 9.51-11.097c-.947-8.664-29.024-56.861-29.024-62.749 0-5.898 5.228-13.529 19.034-13.529 9.043-.689 12.254 8.748 15.534 11.932z"/> - <path d="M59.137 136.726c3.252 3.184 5.928 12.62 14.972 11.932 13.805 0 19.034-7.631 19.034-13.53 0-5.887-28.078-54.084-29.025-62.748-.96-8.675 4.749-11.097 9.524-11.097 4.748 0 8.083 2.777 8.083 5.199s-2.374 3.121-5.709 3.121 1.427-1.733-1.427-3.121-4.762 2.077-4.762 4.165c0 2.077 7.136 2.766 11.898 1.21.96 4.677 1.427 5.032-5.242 12.997 4.775-3.12 5.228-3.81 10.484-2.077-5.242-4.51-1.317-13.696-1.139-16.034s-1.002-5.115-3.142-6.504c-3.815-3.466-12.145-3.622-17.14-1.388-7.274 3.246-7.63 12.819-5.723 15.95l27.13 58.595c1.428 2.432-2.374 10.407-10.937 10.752-9.043.689-12.145-8.79-13.75-12.892l12.323.897s.48-1.9 0-3.131c-6.367-.418-12.323-1.577-12.323-1.577l-.467-6.242h6.08l-.48-2.766s-5.133.344-5.6 0c-.48-.345-.96-6.253-.96-6.253s-.947-.345-1.977-.345c-1.042 0-1.99.345-1.99.345s-.48 5.908-.946 6.253c-.48.344-5.613 0-5.613 0l-.467 2.766h6.08l-.48 6.242s-5.956 1.16-12.324 1.577c-.466 1.232 0 3.131 0 3.131l12.323-.897c-1.605 4.102-4.707 13.58-13.736 12.892-8.577-.345-12.378-8.32-10.951-10.752l27.144-58.594c1.894-3.132 1.537-12.705-5.736-15.951-4.995-2.234-13.312-2.078-17.127 1.388-2.14 1.389-3.334 4.165-3.156 6.504s4.103 11.524-1.139 16.034c5.256-1.733 5.723-1.044 10.484 2.077-6.669-7.965-6.189-8.32-5.242-12.996 4.762 1.555 11.912.866 11.912-1.211 0-2.088-1.921-5.554-4.776-4.165-2.84 1.388 1.908 3.121-1.413 3.121-3.349 0-5.723-.7-5.723-3.121s3.335-5.199 8.097-5.199 10.47 2.422 9.51 11.097c-.947 8.664-29.024 56.861-29.024 62.749 0 5.898 5.228 13.529 19.034 13.529 9.043.689 12.254-8.748 15.534-11.932z"/> - <path d="M60.234 13.003c3.253-3.184 2.182-8.54 11.226-7.85 13.805 0 14.203 8.445 14.203 14.343 0 5.887-20.57 14.124-21.518 22.788-.96 8.675 4.749 11.097 9.524 11.097 4.748 0 8.083-2.777 8.083-5.199s-2.374-3.121-5.709-3.121 1.427 1.733-1.427 3.121-4.762-2.077-4.762-4.165c0-2.077 7.136-2.766 11.898-1.21.96-4.678 1.427-5.033-5.242-12.997 4.775 3.12 5.228 3.81 10.484 2.077-5.242 4.51-1.317 13.696-1.139 16.034s-1.002 5.115-3.142 6.504c-3.815 3.465-12.145 3.622-17.14 1.388-7.274-3.246-7.63-12.819-5.723-15.95l20.16-20.67c1.426-2.432 1.92-9.186-6.643-9.53-9.043-.69-12.145 11.639-13.75 15.741-2.155-4.478-4.556-16.838-13.6-16.149-8.576.345-10.223 7.099-8.796 9.53l20.708 21.077c1.894 3.132 1.537 12.705-5.736 15.951-4.995 2.234-13.312 2.077-17.127-1.388-2.14-1.389-3.334-4.165-3.156-6.504s4.103-11.524-1.139-16.034c5.256 1.733 5.723 1.044 10.484-2.077-6.669 7.964-6.189 8.32-5.242 12.996 4.762-1.555 11.912-.866 11.912 1.211 0 2.088-1.921 5.554-4.776 4.165-2.84-1.388 1.908-3.121-1.413-3.121-3.349 0-5.723.7-5.723 3.121s3.335 5.199 8.097 5.199 10.47-2.422 9.51-11.097c-.947-8.664-22.053-18.122-22.053-24.01 0-5.898 1.468-13.121 15.274-13.121 9.043-.69 10.114 4.666 13.393 7.85z"/> - </g> - <g fill="#ffe400" transform="translate(-194.73 8.285) scale(1.0673)"> - <rect rx="85.12" ry="80.648" height="161.3" width="170.24" y="104.45" x="425.9"/> - <path d="M506.94 56.355c-.708-.007-4.534 26.842-6.013 32.876-1.325 13.43 18.07 12.94 14.897-.532l-8.88-32.344zM513.77 316.21c.706.053 6.49-26.479 8.408-32.401 2.306-13.31-17.078-14.098-14.9-.45l6.492 32.85zM378.17 184.61c-.06.669 27.915 6.277 34.156 8.123 14.037 2.249 14.962-16.113.547-14.115l-34.703 5.992zM649.89 187.8c.03-.67-28.166-5.274-34.483-6.896-14.123-1.745-14.234 16.638.079 14.125l34.404-7.23zM406.79 99.641c-.482.492 17.893 21.249 21.605 26.348 9.588 9.97 22.265-3.945 9.616-10.793l-31.22-15.559zM617.95 270.64c.435-.53-19.772-19.698-23.937-24.472-10.465-9.145-21.819 5.761-8.59 11.543l32.528 12.929zM448.97 70.619c-.644.28 7.966 26.114 9.34 32.171 4.84 12.685 22.167 4.414 13.24-6.493l-22.58-25.678zM571.98 302.96c.663-.237-6.032-26.575-6.96-32.708-3.897-12.973-21.79-5.862-13.682 5.606l20.642 27.101zM602.16 88.602c-.511-.465-22.711 16.61-28.152 20.045-10.676 8.923 3.807 21.156 11.236 9.282l16.916-29.327zM419.24 282.33c.476.497 23.874-15.076 29.553-18.145 11.304-8.199-2.247-21.355-10.528-9.999L419.24 282.33zM384.15 138.16c-.29.612 24.124 14.715 29.362 18.422 12.449 6.543 19.765-10.482 5.47-13.139l-34.832-5.283zM638.07 236.6c.335-.591-22.987-16.266-27.941-20.309-11.939-7.347-20.486 9.156-6.419 12.748l34.36 7.561zM557.37 63.719c-.657-.251-14.571 23.416-18.275 28.521-6.412 12.042 11.831 18.301 14.072 4.662l4.204-33.183zM463.52 307.97c.637.294 16.252-22.401 20.322-27.25 7.28-11.591-10.461-19.035-13.696-5.577l-6.626 32.826zM386.04 238.68c.257.625 27.986-5.986 34.449-6.926 13.652-3.825 5.965-20.703-6.056-12.906L386.04 238.68zM638.13 136.11c-.21-.64-28.357 4.13-34.873 4.643-13.899 2.917-7.468 20.261 5.096 13.273l29.777-17.916z"/> - <path d="M534.62 58.119c-.692-.141-10.14 25.429-12.87 31.058-4.149 12.903 14.954 16.119 14.705 2.318L534.62 58.12zM486.15 313.97c.68.187 11.979-24.7 15.115-30.136 5.085-12.599-13.736-17.064-14.5-3.28l-.615 33.416zM476.38 60.639c-.692.144 1.918 27.122 1.9 33.317 1.88 13.37 20.668 8.783 14.395-3.675l-16.29-29.642zM544.39 312.46c.7-.098.075-27.183.546-33.362-.895-13.462-19.974-10.121-14.628 2.72l14.082 30.641zM428.16 83.092c-.58.384 12.765 24.345 15.26 30.07 7.154 11.661 22.642.589 11.8-8.63l-27.06-21.44zM593.02 290.86c.607-.345-10.95-25.126-13.019-31.002-6.283-12.104-22.545-2.077-12.404 7.834l25.423 23.168zM393 116.64c-.397.556 21.128 18.39 25.624 22.888 11.091 8.456 21.36-7.142 7.75-12.065L393 116.64zM627.19 256.26c.436-.529-19.729-19.736-23.885-24.519-10.445-9.165-21.832 5.72-8.615 11.526l32.5 12.992zM377.57 158.53c-.181.649 26.336 10.784 32.143 13.63 13.409 4.53 17.693-13.4 3.13-13.809l-35.273.179zM645.04 216.35c.229-.635-25.482-12.49-31.067-15.712-13.045-5.4-18.632 12.204-4.135 13.57l35.202 2.143zM376.7 209.96c.098.665 28.689.262 35.207.752 14.214-.753 10.823-18.853-2.767-13.879L376.7 209.96zM646.91 164.97c-.05-.67-28.601-2.149-35.067-3.067-14.235-.184-12.178 18.095 1.743 14.027l33.324-10.96zM401.18 263.43c.395.557 25.926-11.641 32.015-13.899 12.438-6.562 1.04-21.438-8.89-11.338L401.18 263.43zM623.48 111.1c-.353-.582-26.717 9.907-32.956 11.759-12.889 5.727-2.61 21.318 8.037 11.896l24.92-23.654zM442.83 298.77c.597.362 18.872-20.474 23.505-24.846 8.643-10.718-8.072-20.052-12.925-7.037l-10.58 31.883zM582.54 75.063c-.569-.4-20.327 19.183-25.269 23.239-9.407 10.124 6.583 20.535 12.378 7.87l12.891-31.11z"/> - <g transform="matrix(2.1824 0 0 2.0629 -405.01 -272.56)"> - <path d="M360.137 247.889c.625 2.5.781 16.562 14.844 30 14.062 13.437 37.969 16.406 37.969 16.406s.156 1.875-1.563 2.031c-1.719.157-9.844-1.562-13.906-2.812-4.063-1.25-7.656-3.438-8.125-3.281-.469.156-1.25 1.562-2.5 1.406s-7.031-6.25-9.531-7.813c-2.5-1.562-10.938-10.781-13.75-15.312-2.813-4.531-3.438-7.5-4.375-7.5-.938 0-4.219 2.187-4.219 2.187s-2.969-4.531-5.625-11.719c-2.656-7.187-2.344-11.406-1.719-11.718.625-.313.625 5.312 2.656 10.468 2.032 5.157 4.844 6.719 4.844 6.719s-1.875-2.656-3.281-9.375-1.875-13.125-.938-15.156c.938-2.031 1.875-2.656 2.032-2.5.156.156-1.719 3.125-.469 10.781s4.844 14.219 5.625 13.906c.781-.312-.469-1.875-1.094-6.406s.625-7.344 1.719-7.656c.469-.469 1.25 5 1.406 7.344zM350.292 260.699c-2.656-2.5-6.875-11.25-7.812-10.781-.938.469 6.875 12.969 7.031 14.063.156 1.093 1.875 4.531.625 4.062s-10.625-10.312-9.531-8.437 8.125 10.468 7.656 10.937-5.781-4.688-5.937-4.062c-.157.625 5.312 5.781 5.156 6.406s-3.438-3.281-3.438-2.5 3.438 4.687 3.438 5.312-2.969-2.812-2.031-.937c.937 1.875 3.593 3.594 3.437 4.219s-2.187-.782-2.187-.469c0 .312 3.906 1.719 4.843 2.812.938 1.094 7.344 8.438 12.188 12.188s18.594 10.156 19.531 10.156c.938 0 2.344-2.031 2.031-2.812-.312-.782-13.75-5.313-17.5-8.75-3.75-3.438-12.968-11.563-13.75-12.032-.781-.468-2.812-.312-2.812-.781s2.656.313 2.5 0c-.156-.312-3.75-1.875-3.594-2.187.156-.313 2.5.625 2.5.312 0-.312-4.219-2.656-4.062-3.125.156-.469 3.125 1.406 3.125 1.094 0-.313-4.063-3.125-3.907-3.594.157-.469 3.125 2.188 2.969 1.563s-2.344-3.907-2.344-4.375c0-.469 3.594 3.437 3.907 2.656.312-.781-1.25-7.188-1.094-7.344s2.645 1.422 3.114.484c.468-.937-1.837-2.241-4.052-4.078zM396.4 309.9c-1.893.249-2.747-.393-1.672-1.934 1.488-.11 5.449-1.379 6.849-1.96s2.894-1.416 4.137-2.534c1.24-1.22 1.903.782 1.282 1.819-.515.73-2.838 2.044-4.545 2.739-2.479.825-4.61 1.967-6.051 1.87zM408.887 304.769c-1.25-1.407-.156-2.344 1.719-3.438 2.812-1.562 2.032-3.593 5.625-5.312 1.563-.938 23.906-10 31.25-14.844s27.813-20.313 33.281-30.938c5.469-10.625 2.813-11.406 3.594-11.875.781-.468 1.563 1.563 1.406 3.907-.156 2.343-1.875 9.375-1.406 10s8.281-5.469 11.406-12.969 5.625-15.313 7.188-15.313c1.562 0-2.656 12.813-5.313 17.813-2.656 5-5.781 7.5-5 8.594.782 1.093 8.594-5.469 11.25-10.313 2.657-4.844 5.157-9.219 5.625-8.281.469.937-2.5 11.25-6.718 16.094-4.219 4.843-9.219 8.281-8.438 9.062.781.782 6.406 1.563 12.344-2.5 5.937-4.062 6.562-10 7.344-9.687.781.312-.782 8.437-6.407 13.437s-13.281 5.469-12.968 6.563c.312 1.094 16.25-4.531 15.937-3.281-.312 1.25-20.625 9.218-20.782 10 .001.625 3.439.781 8.907-.469 5.469-1.25 10.626-5.468 11.407-4.531.155 1.406-3.907 4.844-10.157 6.406-6.25 1.563-9.375 3.75-9.531 4.219-.156.468 11.094-1.407 11.094-.782s-14.688 3.438-14.844 4.22c-.156.781 14.062-2.813 13.75-2.032-.313.781-19.219 6.406-19.063 6.719.157.312 15.782-3.438 15.469-2.813-.312.625-26.406 7.969-26.562 8.438-.157.468 22.968-5.157 22.812-4.688s-12.031 3.437-12.031 3.75c0 .312 9.531-1.562 9.375-1.094-.156.469-24.063 6.563-24.532 7.5-.468.938 12.344-2.5 12.188-.781s-27.656 11.094-27.813 9.375c-.156-1.719 16.719-6.094 16.563-6.562-.156-.469-9.687 1.093-9.844.156-.156-.938 6.25-2.969 5.782-3.438-.469-.468-5.313 1.406-4.844.313.469-1.094 9.531-5.313 9.375-5.625-.156-.313-3.281 1.093-2.969 0 .313-1.094 19.687-6.719 19.375-7.344-.313-.625-8.906 1.406-9.687 1.562-.313-.624 12.031-5.156 11.718-5.937-.312-.781-6.562 2.656-6.874 1.719-.313-.938 10.781-5.313 10.156-5.938s-5.781 1.719-6.406 1.094 10.468-8.437 8.749-8.594c-1.718-.156-3.75 2.345-4.062.782.313-2.032 8.75-5.313 6.875-6.875-2.969-.938-13.125.625-17.344 3.125s-18.125 16.406-21.563 18.593c-3.437 2.188-15 7.032-17.187 7.969-3.438 1.25-4.063 3.125-7.5 4.844-6.251 1.719-6.25 3.594-9.219 4.687-1.093.313-12.343 5.781-12.5 5.313zM393.107 311.797c-1.875.938-3.593 3.438-2.501 4.375.626 1.25 2.501-2.656 4.063-2.5 1.563.156 3.75.157 7.969.47 4.219.312 6.406-.938 8.75-.782s7.657-1.25 10.157-1.25 2.968.312 3.281-.782c.312-1.093-7.813-.312-11.407-.468-3.593-.156-8.125.781-10.781.781-2.5-.156-6.875-.938-9.531.156z"/> - <rect rx="1.719" ry="1.484" height="2.969" width="3.438" y="309.14" x="401.7"/> - <path d="M445.02 307.731c1.718-.313 6.307 1.25 9.478 2.031 5.828 2.188 16.603 1.094 16.603 2.188s-.67 2.5-3.242 2.656-8.758-.937-8.587-.937 4.972 2.187 3.6 2.812-5.486-1.25-6.171-.781 3.771 1.406 3.086 1.719c-.686.312-3.782-.469-4.811-.312-1.028.155.868 1.249-.333 1.718-1.199.469-3.216-.624-4.073-.313-.857.314 1.845 2.032.645 2.188-1.2.156-4.089-.781-5.632-.937-1.543-.156 1.518 1.562.49 1.718-1.03.156-3.827-1.249-4.512-1.249s.054 1.874-.974 1.874c-1.029 0-2.239-1.562-2.753-1.562s.01 1.875-1.018 1.875-1.397-2.031-2.254-1.875c-1.014.157.025 2.656-1.346 2.5-1.371-.157-1.553-2.656-2.581-2.5-1.03.156.182 2.5-.847 2.5-1.028 0-1.195-2.344-2.224-2.5-1.028-.156-.52 2.187-1.205 2.187s-1.195-2.187-1.538-2.187c-.342 0-.004 2.187-1.205 2.031s-1.194-2.5-1.538-2.344c-.342.157-.348 1.719-1.204 1.719s-.853-1.562-1.195-1.406c-.344.156-1.548 2.187-2.405 1.875-.857-.313.206-1.875-.136-1.875-.343 0-1.406 1.093-2.092.937s.035-1.406-.137-1.406c-.171 0-1.75.781-2.435.781s-2.571 1.094-3.086.156c-.513-.937 1.342-.937 1.684-1.875.344-.937-.998-3.593.373-4.531 1.372-.937 5.658 1.25 12-.312 11.656-3.125 20.652-6.718 21.575-6.563z"/> - </g> - </g> - </g> -</svg> diff --git a/img/flags/4x3/la.svg b/img/flags/4x3/la.svg deleted file mode 100644 index 72ba65f..0000000 --- a/img/flags/4x3/la.svg +++ /dev/null @@ -1,12 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" height="480" width="640" viewBox="0 0 640 480"> - <defs> - <clipPath id="a"> - <path fill-opacity=".67" d="M0 0h640v480H0z"/> - </clipPath> - </defs> - <g fill-rule="evenodd" clip-path="url(#a)"> - <path fill="#e90012" d="M-40 0h720v480H-40z"/> - <path fill="#003dd2" d="M-40 119.26h720v241.48H-40z"/> - <path d="M423.42 239.998a103.419 103.419 0 1 1-206.838 0 103.419 103.419 0 1 1 206.837 0z" fill="#fff"/> - </g> -</svg> diff --git a/img/flags/4x3/lb.svg b/img/flags/4x3/lb.svg deleted file mode 100644 index a6b1794..0000000 --- a/img/flags/4x3/lb.svg +++ /dev/null @@ -1,15 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" height="480" width="640" viewBox="0 0 640 480"> - <defs> - <clipPath id="a"> - <path fill-opacity=".67" d="M-85.333 0h682.67v512h-682.67z"/> - </clipPath> - </defs> - <g clip-path="url(#a)" transform="translate(80) scale(.9375)"> - <g fill-rule="evenodd" stroke-width="1pt"> - <path fill="red" d="M-128 383.993h767.975v128H-128zM-128 0h767.975v128.001H-128z"/> - <path fill="#fff" d="M-128 128.001h767.975v255.992H-128z"/> - </g> - <path d="M252.1 129.95c-7.81 15.593-13.018 15.593-26.034 25.99-5.206 5.198-13.016 7.797-2.603 12.996-10.413 5.197-15.62 7.797-20.827 18.192l2.603 2.599s9.895-4.85 10.414-2.599c1.73 2.078-13.024 10.051-14.929 11.263-1.904 1.212-11.106 6.93-11.106 6.93-13.016 10.397-20.827 7.796-28.637 23.39l26.034-2.597c5.207 18.192-13.017 20.79-26.034 28.588l-20.827 12.996c5.208 18.192 20.827 7.796 33.844 2.598l2.604 2.6v5.197l-26.034 12.996s-30.733 17.584-31.24 18.192c-.21.942 0 5.198 0 5.198 10.413 2.6 26.034 5.199 36.448 0 13.016-5.198 15.619-10.396 31.24-10.396-18.224 12.994-31.24 18.193-52.068 20.791v10.397c15.62 0 26.033 0 39.051-2.599l33.844-10.396c7.81 0 15.62 7.797 13.017 15.593-7.81 28.588-39.052 23.391-49.466 46.781l41.656-15.593c10.413-5.198 20.826-10.396 33.843-7.796 15.62 5.196 15.62 15.594 36.448 20.79l-5.206-12.993c5.206 2.598 10.413 2.598 15.619 5.197 13.018 5.2 15.621 10.396 31.24 7.797-13.016-15.594-15.619-12.994-26.033-23.39-10.413-15.594-15.62-38.984 0-41.584l18.224 5.199c18.223 2.598 18.223-2.599 44.257 7.797 15.621 5.197 20.828 12.994 39.052 7.796-7.81-18.192-36.448-31.188-54.671-36.386 20.826-12.996 15.619 5.198 44.257-2.6v-5.196c-20.826-15.594-28.637-28.59-57.275-28.59l44.259-5.198v-5.198s-43.649-11.451-44.664-11.858c.304-1.32 1.372-3.366 4.27-4.497 8.289 5.366 33.357 4.74 34.78 4.64-.732-6.396-12.61-11.676-23.023-16.873 0 0-44.59-27.483-44.811-29.916.884-6.965 18.314 1.107 37 6.524-5.206-10.396-15.62-15.593-26.033-18.192l15.62-2.598c-10.413-23.391-36.448-20.792-52.067-31.188-10.415-7.797-10.415-12.996-26.034-20.792z" fill="#007900"/> - <path stroke-linejoin="round" d="M223.96 303.07c1.932-6.194 4.476-11.674-7.117-16.954-11.593-5.278 5.795 21.114 7.117 16.954zM237.69 290.68c-2.337.304-3.56 8.835 1.117 11.169 5.188.81.917-11.066-1.117-11.169zM251.22 289.77c-2.442.712-2.543 12.691 6 10.56 8.543-2.13-.103-11.573-6-10.56zM266.98 259.01c1.83-2.945-.101-15.025-7.425-9.95-7.321 5.077 5.085 10.762 7.425 9.95zM251.01 248.96c2.239-.812 2.442-8.223-3.964-6.294-6.405 1.93 2.238 7.817 3.964 6.294zM236.58 251.9s-4.475-6.193-7.933-4.874c-4.373 4.163 8.238 4.975 7.933 4.874zM186.99 271.69c1.905.173 16.027-2.329 20.908-7.81 4.88-5.483-25.127 2.346-25.127 2.447 0 .101 2.835 4.844 4.22 5.363zM328.1 236.73c.728-1.295-7.517-7.172-12.416-4.856-1.261 4.339 12.375 5.748 12.416 4.856zM300.34 222.76c1.526-2.233-3.558-11.37-13.727-6.294-10.17 5.076 10.676 9.848 13.727 6.294zM268.2 217.38s2.541-8.223 8.644-6.6c6.916 5.281-8.34 6.905-8.644 6.6zM262.2 211.19c-.917-2.335-7.323-.913-14.644 3.858-7.324 4.772 16.88 1.422 14.644-3.858zM280.91 189.06s6.523-2.92 8.44 0c2.747 4.366-8.541.102-8.44 0zM275.44 186.2c-1.322-2.64-8.54-2.89-8.355.925-1.21 2.989 9.38 2.432 8.355-.925zM258.24 186.21c-.711-1.523-10.98.029-14.032 6.193 4.899 2.382 16.271-2.335 14.032-6.193zM236.27 192.51s-13.51 8.26-14.339 14.315c.41 5.229 16.778-9.442 16.778-9.442s1.424-5.787-2.439-4.873zM221.32 185c.378-1.68 6.675-5.572 7.22-5.28.51 1.694-5.143 6.28-7.22 5.28zM225.59 216.57c.304-2.437-16.068-2.235-9.864 5.278 5.166 6.301 10.984-4.161 9.864-5.278zM210.69 227.35c-.854-1.647-2.082-6.038-4.324-6.442-1.827-.103-11.672 1.928-12.425 3.594-.406 1.32 4.075 9.435 5.602 9.638 1.729.71 10.842-5.978 11.147-6.79zM299.02 282.46c.508-1.725 17.239-7.507 23.015-1.976 6.812 9.34-23.421 4.922-23.015 1.976zM345 293.39c3.666-6.204-11.257-13.559-17.592-6.47 2.165 8.517 14.628 11.6 17.592 6.47z" fill-rule="evenodd" stroke="#fff" stroke-linecap="round" stroke-width="3.219" fill="#fff"/> - </g> -</svg> diff --git a/img/flags/4x3/lc.svg b/img/flags/4x3/lc.svg deleted file mode 100644 index aacce3e..0000000 --- a/img/flags/4x3/lc.svg +++ /dev/null @@ -1,8 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" height="480" width="640" viewBox="0 0 640 480"> - <g fill-rule="evenodd"> - <path fill="#65cfff" d="M0 0h640v480H0z"/> - <path d="M318.9 41.991l162.66 395.3-322.6.91L318.9 41.991z" fill="#fff"/> - <path d="M319.09 96.516l140.67 339.99-278.99.78 138.32-340.77z"/> - <path d="M318.9 240.1l162.66 197.64-322.6.46L318.9 240.1z" fill="#ffce00"/> - </g> -</svg> diff --git a/img/flags/4x3/li.svg b/img/flags/4x3/li.svg deleted file mode 100644 index 57ef479..0000000 --- a/img/flags/4x3/li.svg +++ /dev/null @@ -1,43 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" height="480" width="640" viewBox="0 0 640 480"> - <path fill="#002b7f" d="M0 0h640v240H0z"/> - <path fill="#ce1126" d="M0 240h640v240H0z"/> - <g transform="scale(.8)" fill="#ffd83d" stroke="#000" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"> - <g id="a"> - <path d="M216.377 122.29l-1.838 62.5h-63.42c-7.803-15.17-14.247-28.053-14.247-45.498 0-14.6 11.483-26.195 28.033-26.195 17.52 0 36.77 5.904 51.47 9.192z" stroke="none"/> - <g stroke-width="1.5"> - <path d="M144.456 125.16v36.076m5.094-39.756v48.033m5.093-50.561v57.225m5.093-58.407v44.882m5.094-45.104v45.327m5.093-46.91v46.885m5.094-46.885v46.885m5.093-46.426v46.885m5.094-46.425v46.885m5.093-43.899v46.886m5.093-46.426v52.86m5.094-52.86v46.886m5.093-46.886v46.886"/> - <path d="M176.395 117.923c10.764 1.775 34.407 12.837 31.71 27.803-3.82 21.21-16.208 12.698-32.63 9.65l-12.407 4.137c-4.44 4.532-10.978 8.683-15.395 3.217h-7.353v28.722h81.342V122.06z" fill="#000"/> - </g> - <circle cx="212.815" cy="112.983" r="4.94"/> - <circle cx="201.713" cy="110.311" r="4.94"/> - <circle cx="190.45" cy="107.482" r="4.94"/> - <circle cx="179.143" cy="105.596" r="4.94"/> - <circle cx="167.836" cy="104.481" r="4.94"/> - <circle cx="156.749" cy="105.113" r="4.94"/> - <circle cx="146.179" cy="108.732" r="4.94"/> - <circle cx="137.276" cy="115.28" r="4.94"/> - <circle cx="130.957" cy="124.414" r="4.94"/> - <circle cx="127.912" cy="135.156" r="4.94"/> - <circle cx="128.027" cy="146.301" r="4.94"/> - <circle cx="130.152" cy="157.215" r="4.94"/> - <path d="M214.998 119.53l-.46 6.435c-12.29-1.883-29.714-8.732-45.955-8.732-15.006 0-26.654 6.003-26.654 21.14 0 14.92 6.316 28.485 14.704 42.28l-8.73 4.136c-7.804-15.17-14.248-28.053-14.248-45.498 0-14.6 11.484-28.952 31.25-28.952 17.52 0 35.39 5.904 50.092 9.19z"/> - </g> - <use height="100%" width="100%" xlink:href="#a" transform="matrix(-1 0 0 1 443.938 0)"/> - <path d="M221.97 53.125l-5.157 9.656 5.156 9.626 5.155-9.625-5.156-9.655zm0 24.375l-5.157 9.625 5.156 9.656 5.155-9.655-5.156-9.625zm-18.383-2.547l8.132 5.156 8.104-5.157-8.105-5.156-8.133 5.156zm20.526 0l8.106 5.156 8.13-5.157-8.13-5.156-8.107 5.156z"/> - <circle cx="221.969" cy="75.069" r="3.906"/> - <circle cx="221.969" cy="100" r="10.455"/> - <path d="M219.344 89.875c0 3.114-.022 4.924-.03 6.625a62.506 62.506 0 0 0-7.44.78m20.19 0a62.126 62.126 0 0 0-7.44-.78v-6.625m-12.78 12.688a61.39 61.39 0 0 1 10.125-.844c3.45 0 6.83.292 10.124.843" fill="none" stroke-width="1.5"/> - <path d="M211.75 117.688c-.992 17.082-3.01 34.48-9.656 47.124l10.812-4.375c3.777-14.328 4.57-32.842 5.72-41.593l-6.876-1.156zm20.438 0l-6.875 1.156c1.148 8.75 1.942 27.265 5.718 41.594l10.814 4.375c-6.648-12.646-8.665-30.043-9.656-47.125z"/> - <path d="M221.953 154.688c-12.913 0-22.4 6.086-22.97 21.593-3.155-5.554-16.51-23.024-28.967-20.686-7.41 1.39-13.957 11.666-12.844 23.437-6.135-17.63-24.107-20.518-37.22-10.093 11.643 9.573 16.822 37.835 26.626 50.094h150.75c9.804-12.258 15.014-40.52 26.656-50.093-13.112-10.425-31.083-7.536-37.218 10.094 1.113-11.77-5.466-22.046-12.875-23.436-12.458-2.338-25.78 15.132-28.937 20.687-.57-15.506-10.086-21.593-23-21.593z"/> - <g stroke-width="1.5"> - <path d="M297.107 219.026c0 5.58-33.662 11.718-75.138 11.718-41.477 0-75.14-6.137-75.14-11.718 0-5.58 33.663-8.502 75.14-8.502 41.475 0 75.137 2.92 75.137 8.502z" fill="#000"/> - <circle cx="221.969" cy="114.445" r="3.504"/> - <circle cx="221.969" cy="122.027" r="3.734"/> - <circle cx="221.969" cy="130.184" r="4.079"/> - <circle cx="221.969" cy="139.261" r="4.653"/> - <circle cx="221.969" cy="149.371" r="5.113"/> - <path d="M219.938 159.206c-.553-.007-1.076.46-.938 1.344.163 1.043.367 2.995.563 4.312.22 1.493 1.09 1.13 1.312-.03.22-1.162.132-1.907.188-4.064.027-1.078-.573-1.555-1.125-1.562zm4.062 0c-.553.007-1.153.484-1.125 1.562.055 2.157-.034 2.902.188 4.063.22 1.162 1.09 1.525 1.312.032.195-1.317.4-3.27.563-4.312.138-.885-.385-1.35-.938-1.344zm-7.687.562c-.506.07-1.03.58-1 1.125.055.996.33 2.19.437 3.688.11 1.55 1.202.948 1.313.063.11-.884.235-2.192.125-3.906-.042-.643-.323-.925-.657-.97a.84.84 0 0 0-.217 0zm11.093 0c-.334.043-.615.326-.656.97a20.13 20.13 0 0 0 .125 3.905c.11.885 1.202 1.486 1.313-.062.107-1.498.382-2.69.437-3.687.03-.544-.494-1.054-1-1.125a.84.84 0 0 0-.22 0zm-15.437 1.75c-.464.12-.89.677-.75 1.313.275 1.273.53 2.68.53 3.97 0 1.106.945.71 1-.063a59.76 59.76 0 0 0 .156-3.906c0-1.114-.474-1.43-.937-1.312zm19.686 0c-.33.09-.625.477-.625 1.313 0 1.494.103 3.133.158 3.907.055.774 1 1.17 1 .063 0-1.29.254-2.697.53-3.97.14-.635-.286-1.192-.75-1.312a.55.55 0 0 0-.312 0zm-59.093.17c-.555-.017-.943.735-.563 1.564.608 1.327 1.254 2.165 1.875 3.594.553 1.27 1.4.478 1.125-.407-.277-.885-.577-1.87-1.406-3.75-.31-.706-.7-.99-1.03-1zm98.812 0c-.332.012-.72.296-1.03 1-.83 1.88-1.13 2.867-1.407 3.75-.277.886.57 1.68 1.125.408.62-1.43 1.266-2.267 1.875-3.594.38-.83-.008-1.58-.563-1.563zm-94.812.064c-.408.124-.656.642-.407 1.25.498 1.216 1.217 2.463 1.72 3.78.44 1.162 1.425.833 1.093-.218-.333-1.05-.432-1.665-1.095-3.656-.332-.995-.905-1.28-1.312-1.156zm90.5 0c-.35.074-.752.41-1 1.156-.664 1.99-.763 2.606-1.094 3.656-.333 1.05.65 1.38 1.093.22.502-1.32 1.22-2.566 1.718-3.782.25-.608.003-1.126-.405-1.25a.592.592 0 0 0-.312 0zm-85.5.97c-.515.096-.913.88-.563 1.842.443 1.217 1.072 2.368 1.625 3.75.553 1.383 1.47 1.104 1.25.22-.22-.886-.492-2.352-1.156-4.563-.29-.967-.758-1.325-1.157-1.25zm80.812 0c-.4-.078-.866.28-1.156 1.25-.665 2.21-.936 3.676-1.157 4.56-.222.886.696 1.165 1.25-.218.553-1.382 1.182-2.533 1.625-3.75.35-.96-.05-1.746-.563-1.843zm-93.187.686c-.557.057-1.065.965-.72 1.656.554 1.106.904 1.483 1.438 2.657.553 1.217 1.16.275.938-.5-.222-.774-.505-1.675-.78-2.78-.204-.81-.542-1.066-.876-1.032zm105.562 0c-.334-.034-.672.22-.875 1.03-.276 1.107-.56 2.008-.78 2.783-.223.775.383 1.717.936.5.535-1.173.885-1.55 1.44-2.656.344-.69-.163-1.6-.72-1.656zm-67.03 2.798c-.585 0-1.21.774-1 1.5.33 1.16.843 2.19 1.218 3.687.33 1.327 1.274.666 1.218-.218-.055-.885-.207-2.09-.593-3.97-.146-.704-.494-1-.844-1zm28.5 0c-.352 0-.7.295-.845 1-.387 1.88-.538 3.084-.594 3.97-.054.883.888 1.544 1.22.217.374-1.496.887-2.526 1.22-3.687.206-.726-.417-1.5-1-1.5zm-14.25 1.187c-.72 0-.82.966-.845 1.75-.083 2.572-1.15 5.07-2.062 6.313-.913 1.244-2.256.913-3.5.25-1.245-.664-1.986-1.16-3.313-2.156-1.327-.996-2.334-.414-.75 1.843 4.617 6.58 9.625 12.205 9.625 22.938 0 1.39.242 1.813.844 1.813.6 0 .874-.424.874-1.812 0-10.732 4.976-16.356 9.594-22.937 1.583-2.257.577-2.84-.75-1.843-1.327.995-2.07 1.492-3.313 2.156-1.244.663-2.588.994-3.5-.25-.913-1.244-1.98-3.74-2.062-6.313-.026-.784-.125-1.75-.844-1.75zm-35.282-1.61a.592.592 0 0 0-.188.03c-.27.086-.448.41-.344.97.186 1.002.88 2.967 1.157 3.906.276.94 1.432.74 1.156-.532-.278-1.272-.263-1.656-.595-3.094-.18-.786-.747-1.27-1.187-1.28zm70.562 0c-.44.012-1.006.495-1.187 1.28-.332 1.44-.318 1.823-.594 3.095-.278 1.272.878 1.472 1.155.53.276-.938.97-2.903 1.156-3.905.105-.56-.074-.884-.342-.97a.598.598 0 0 0-.188-.03zm-91.53.406c-.58.045-.995.772-.407 1.843.633 1.157 1.72 2.608 2.218 3.438.5.83 1.36.27.75-.78-.607-1.05-.81-2.258-1.53-3.75-.27-.56-.684-.778-1.03-.75zm112.5 0c-.35-.028-.763.19-1.032.75-.72 1.492-.924 2.7-1.532 3.75-.608 1.05.253 1.61.75.78.498-.83 1.585-2.28 2.22-3.437.587-1.07.172-1.798-.407-1.844zm-144.19 3.328c-.667-.035-.876 1.17-.25 1.97.914 1.16 1.55 1.776 2.595 2.718.83.746 1.07-.222.656-.97-.413-.745-1.013-1.504-1.842-2.75-.455-.68-.853-.95-1.157-.968zm175.876 0c-.303.016-.7.287-1.156.97-.83 1.244-1.43 2.003-1.844 2.75-.414.746-.173 1.714.657.968 1.046-.942 1.68-1.558 2.593-2.72.627-.797.418-2.003-.25-1.968zm-170.843 1c-.533.007-.884.4-.47 1.313.595 1.307 1.378 2.787 1.876 3.782.496.995 2.013 1.33 1.405-.22-.608-1.547-.728-2.342-1.28-3.78-.278-.72-1-1.1-1.532-1.094zm165.812 0c-.532-.007-1.255.375-1.53 1.094-.554 1.438-.674 2.233-1.282 3.78-.61 1.55.908 1.215 1.406.22.497-.995 1.28-2.475 1.874-3.78.414-.914.063-1.307-.47-1.314zm-175.562.344c-.774.008-.84.784-.157 1.28.913.665 2 1.4 3.063 2.25 1.243.997 1.725.08 1.06-.75-.662-.828-1.308-1.67-2.967-2.5-.415-.206-.743-.282-1-.28zm185.312 0c-.258-.003-.585.074-1 .28-1.66.83-2.305 1.672-2.97 2.5-.662.83-.18 1.747 1.064.75 1.06-.85 2.15-1.585 3.06-2.25.685-.496.62-1.272-.155-1.28zm-109.656.72c-.434.06-.808.55-.626 1.186.33 1.16.708 2.392.937 3.594.223 1.162 1.566 1.176 1.345.125-.22-1.05-.332-2.365-.72-3.97-.144-.6-.447-.89-.75-.936a.62.62 0 0 0-.186 0zm33.81 0c-.3.046-.604.335-.75.936-.385 1.604-.497 2.92-.717 3.97-.222 1.05 1.122 1.036 1.343-.126.23-1.202.606-2.433.938-3.594.18-.635-.192-1.127-.625-1.187a.62.62 0 0 0-.19 0zm-63.905-1.986c-.34.094-.536.744-.28 1.656 1.41 5.06 1.84 7.724 1.593 8.97-.25 1.243-.932 1.413-1.844 1a18.844 18.844 0 0 1-2.813-1.595c-.828-.58-1.69.114-.5 1.094 6.056 4.977 10.253 10.665 11.876 17.563.332 1.41 1.218 1.576.97 0-1.373-8.69-1.637-15.833.437-20.312.78-1.683-.006-3.3-1.25-.562-.83 1.825-2.172 2.545-3.25.97-1.08-1.577-3.306-5.78-3.97-7.69-.248-.714-.555-1.045-.812-1.092a.352.352 0 0 0-.155 0zm94.03 0c-.255.047-.562.378-.81 1.093-.665 1.907-2.892 6.11-3.97 7.687-1.08 1.576-2.42.856-3.25-.97-1.244-2.736-2.03-1.12-1.25.564 2.074 4.48 1.81 11.623.438 20.313-.25 1.576.637 1.41.968 0 1.624-6.898 5.82-12.586 11.876-17.562 1.192-.98.33-1.674-.5-1.093-.83.58-1.9 1.18-2.812 1.594-.912.415-1.595.245-1.844-1-.25-1.244.184-3.91 1.594-8.968.254-.912.058-1.562-.28-1.656a.352.352 0 0 0-.158 0zm-124.467 2.422c-.547.007-1 .39-.75 1.22.398 1.328 1.223 2.764 1.5 3.593.276.83 1.165.443 1-.718-.166-1.16-.248-1.853-.47-3.125-.11-.636-.734-.976-1.28-.97zm155.062 0c-.546-.007-1.17.333-1.28.97-.223 1.27-.304 1.963-.47 3.124-.166 1.16.723 1.548 1 .72.276-.83 1.1-2.266 1.5-3.595.25-.83-.204-1.212-.75-1.22zm-136.28-1.735c-.636-.114-.728 1.524-.19 2.188.72.886 1.72 1.955 2.72 3.157.83.995 1.342.11.844-.72-.498-.83-1.236-1.71-2.563-3.81-.33-.527-.6-.776-.81-.814zm117.5 0c-.213.038-.482.287-.814.813-1.327 2.1-2.065 2.982-2.562 3.812-.498.83.014 1.714.844.72 1-1.203 2-2.272 2.718-3.157.54-.663.448-2.3-.187-2.187zm-132 3.954c-.395-.027-.73.292-.564 1.094.232 1.117.567 2.044.844 3.095.276 1.05 1 .87 1-.125 0-.996-.178-2.106-.344-3.157-.083-.525-.543-.878-.937-.906zm146.5 0c-.395.028-.856.38-.94.906-.165 1.05-.342 2.16-.342 3.157 0 .995.723 1.175 1 .125.276-1.05.612-1.978.843-3.094.167-.8-.167-1.12-.56-1.093zm-133.407 1.42c-.62.095-1.164.693-.438 1.626 1.16 1.493 2.432 2.54 2.875 3.094.442.553 1.563.35.844-.813-.735-1.186-1.846-2.615-2.344-3.5-.187-.33-.566-.462-.937-.406zm120.062 0c-.272.03-.548.16-.687.407-.498.885-1.61 2.314-2.344 3.5-.72 1.162.4 1.366.844.813.442-.553 1.713-1.6 2.875-3.094.725-.933.18-1.53-.438-1.625a.873.873 0 0 0-.25 0zm-140.72 4.174c-.487-.043-.656.35 0 1.25 1.494 2.047 3.14 5.143 3.25 6.47.112 1.327-.544 1.312-1.155 1.312-1.825 0-2.716-1.332-4.375-1.72-1.66-.386-1.9.487-.72 1.345 6.084 4.424 12.18 9.36 14.626 13.844.996 1.826 2.342 2.493 1.595.75-2.287-5.336-2.84-9.856-2.344-12.593.5-2.737 1.178-4.58 1.095-6.156-.083-1.575-.977-1.467-1.344 0-.248.996-.73 2.315-1.06 2.813-.333.498-1.667.777-2.94-.937-1.27-1.714-4.48-5.015-5.53-5.844-.394-.31-.8-.505-1.094-.53zm161.626 0c-.292.027-.7.22-1.092.532-1.05.83-4.26 4.13-5.532 5.844-1.272 1.714-2.606 1.435-2.937.937-.333-.498-.815-1.817-1.064-2.812-.367-1.467-1.26-1.575-1.343 0-.083 1.577.595 3.42 1.093 6.157s-.056 7.257-2.343 12.594c-.747 1.743.598 1.076 1.593-.75 2.447-4.484 8.543-9.42 14.625-13.843 1.182-.858.942-1.73-.717-1.344-1.66.387-2.55 1.72-4.375 1.72-.61 0-1.268.014-1.157-1.313.112-1.327 1.758-4.423 3.25-6.47.658-.9.49-1.293 0-1.25z" fill="#000" stroke="none"/> - <path d="M150.127 212.65l1.95 6.175m2.06-7.344l1.728 6.24m2.605-6.952l1.187 6.365m2.833-7.17l1.27 6.35m3.886-6.858l1.032 6.392m4.452-6.385l1.112 6.378m4.242-8.19l.803 6.426m4.234-6.1l.804 6.425m4.07-7.073l.805 6.424m4.088-6.928l.442 6.46m4.786-6.462l.384 6.463m4.357-6.79l.326 6.467m4.9-6.793l.272 6.47m5.74-6.632l.272 6.47m79.044.176l-1.95 6.175m-2.06-7.344l-1.728 6.24m-2.604-6.952l-1.187 6.365m-2.832-7.17l-1.27 6.35m-3.886-6.858l-1.033 6.392m-4.453-6.385l-1.112 6.378m-4.24-8.19l-.805 6.426m-4.233-6.1l-.804 6.425m-4.07-7.073l-.804 6.424m-4.09-6.928l-.442 6.46m-4.787-6.462l-.382 6.463m-4.357-6.79l-.326 6.467m-4.9-6.793l-.27 6.47m-5.742-6.632l-.27 6.47m-7.203-6.89v7.122"/> - </g> - </g> -</svg> diff --git a/img/flags/4x3/lk.svg b/img/flags/4x3/lk.svg deleted file mode 100644 index 13b5592..0000000 --- a/img/flags/4x3/lk.svg +++ /dev/null @@ -1,22 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" height="480" width="640" viewBox="0 0 640 480"> - <path fill="#ffb700" d="M0 0h640v480H0z"/> - <path d="M26.667 240l88-213.333h88v426.666h-88z" fill="#ff5b00"/> - <path fill="#005641" d="M26.667 26.667h88v426.666h-88z"/> - <path fill="#8d2029" d="M229.333 26.667H616v426.666H229.332z"/> - <path id="a" d="M579.253 408.565s3.626 7.382 7.632 10.39c5.935 4.456 18.104 4.134 23.27 9.333 6.187 6.13-.482 14.23-.426 14.933l.338 4.28s-4.173.05-5.93.323c-2.642.412-3.672 2.562-8.59 2.243-12.37-.803-11.87-11.945-12.57-21.467-.62-3.627-2.058-8.354-2.875-11.98-.7-3.107-.85-8.055-.85-8.055z" fill="#ffb700" stroke="#000" stroke-width="1.134"/> - <use height="100%" width="100%" xlink:href="#a" transform="matrix(-1 0 0 1 845.333 0)"/> - <use height="100%" width="100%" xlink:href="#a" transform="matrix(1 0 0 -1 0 480)"/> - <use height="100%" width="100%" xlink:href="#a" transform="rotate(180 422.667 240)"/> - <g transform="translate(0 -76)"> - <use xlink:href="#b" width="100%" height="100%" stroke="#000" stroke-width="5.56"/> - <g id="b" fill="#ffb700"> - <path d="M363.488 415.765l2.325-1.342.995 1.345c1.325 1.79 4.99 1.77 7.424-.04l1.86-1.387 1.558 1.387c2.048 1.822 5.873 1.824 8.315.006 1.71-1.274 1.95-1.3 3.08-.33.673.577 2.65 1.235 4.392 1.46 3.138.408 3.185.386 5.02-2.368 1.538-2.306 1.78-3.24 1.412-5.477a59.406 59.406 0 0 1-.583-5.304c-.14-2.597-.125-2.613 3.658-3.93 2.09-.728 4.508-1.703 5.374-2.17 1.51-.81 5.675-5.705 5.675-6.67 0-.255-1.627-.647-3.616-.87-7.912-.887-9.25-5.135-4.11-13.025 8.388-12.87 13.45-25.4 13.483-33.384.015-3.57.218-4.767.677-3.99 1.874 3.17-1.483 16.467-6.57 26.015l-2.046 3.846 1.954-.45c1.074-.247 7.392-2.913 14.04-5.924 18.194-8.24 24.444-9.855 36.22-9.36 9.864.416 14.065 2.344 21.03 9.65 3.69 3.87 7.245 6.638 13.747 10.708 13.853 8.672 14.43 9.423 15.09 19.62.667 10.333.335 10.893-7.48 12.62-6.68 1.475-10.866 4.59-11.99 8.915-.6 2.31.663 2.377 4.03.213l2.468-1.586 1.098 1.586c1.443 2.085 4.51 2.094 7.057.02L511 413.98l1.967 1.567c3.055 2.435 7.118 1.844 8.265-1.2.22-.586.808-.4 2 .636 2.232 1.94 7.954 2.772 8.57 1.247.237-.582-.21-2.02-.994-3.194-3.33-4.992-4.37-7.372-4.414-10.09-.06-3.78 1.067-5.602 5.366-8.676 5.222-3.734 6.835-8.55 2.864-8.55-2.452 0-4.923-2.168-6.5-5.7-3.204-7.18-2.576-15.228 2.233-28.617 4.885-13.6 5.427-16.108 5.446-25.203.016-7.354-.17-8.626-1.842-12.658-1.022-2.465-3.098-6.136-4.612-8.157l-2.753-3.675 3.534-2.928c10.79-8.94 8.583-23.572-4.407-29.21-3.975-1.725-4.968-1.877-11.932-1.83-4.177.028-10.55.578-14.157 1.222-3.68.656-9.907 1.184-14.18 1.2-6.785.028-7.937-.14-10.553-1.53-2.727-1.453-3.195-2.142-3.728-5.497-.11-.69-.592-1.378-1.072-1.53-.927-.29-5.21 3.426-5.844 5.073-.312.813-.567.757-1.483-.327-.61-.72-1.458-2.373-1.888-3.674-1.08-3.273.247-5.726 4.093-7.564l2.984-1.426-1.76-1.092c-3.63-2.253-9.805-.712-12.038 3.005-.632 1.052-1.32 1.914-1.53 1.916-.21 0-1.412-1.002-2.67-2.23-4.687-4.58-3.075-11.358 3.196-13.428 3.344-1.103 6.303-.26 6.918 1.968.94 3.405 3.862-1.07 3.338-5.11-.348-2.688-.296-2.78 1.563-2.78 2.584 0 8.087 3.392 9.79 6.036 1.976 3.07 1.832 7.906-.343 11.51l-1.708 2.83 2.233-.448c3.276-.657 6.46-2.69 8.07-5.16 1.702-2.608 1.885-7.687.376-10.428-1.464-2.657-1.297-3.078.866-2.18 3.68 1.526 5.645 3.21 7.12 6.096 1.33 2.6 1.403 3.244.684 5.95-.444 1.67-1.43 3.864-2.194 4.88-1.188 1.58-1.23 1.844-.282 1.844 1.762 0 5.443-1.668 6.75-3.06.66-.703 1.624-2.434 2.14-3.847l.94-2.57 1.078 1.96c1.526 2.768 4.492 5.26 8.11 6.81 3.89 1.668 5.508 1.762 3.474.202-1.37-1.052-3.9-8.47-3.133-9.194.45-.426 5.732 3.638 11.762 9.05 5.704 5.12 9.288 6.8 14.527 6.8 6.692 0 10.59-5.827 7.58-11.335-1.753-3.212-5.66-3.658-7.944-.908-1.05 1.265-1.34 2.27-1.03 3.598.376 1.625.23 1.84-1.252 1.84-1.945 0-5.78-2.487-12.59-8.17-10.384-8.665-23.002-16.01-32.114-18.693-5.847-1.722-18.337-2.394-24.28-1.306-6.434 1.177-14.043 4.858-18.19 8.8-7.344 6.982-7.46 16.275-.31 24.738l2.05 2.424-1.387 2.154c-2.018 3.134-1.845 7.352.428 10.46 1.002 1.367 2.012 2.486 2.245 2.485.233 0 .49-.88.568-1.955.2-2.718 1.368-4.54 3.37-5.26 1.804-.65 2.97-.343 11.227 2.953 8.688 3.468 22.975 3.706 38.166.637 7.447-1.504 16.228-1.416 20.092.203 7.082 2.967 8.724 10.686 3.517 16.545-2.254 2.536-4.428 3.57-11.725 5.572-5.553 1.524-6.868 1.625-19.49 1.5-10.782-.11-14.658.1-19.06 1.018-4.778.997-7.717 1.098-21.754.744l-16.23-.41 1.8 1.49c.99.82 2.39 1.83 3.11 2.243 1.223.702 1.182.797-.637 1.47-1.07.398-3.443.722-5.274.722h-3.33l-.45 2.83c-.245 1.555-.227 3.372.042 4.037.398.98.25 1.12-.783.745-.702-.254-2.652-.755-4.335-1.112-1.684-.358-3.95-1.085-5.036-1.617-1.828-.895-2.03-.87-2.704.32-.6 1.063-6.24 5.26-7.068 5.26-.134 0-.306-.808-.383-1.798-.078-.99-.89-3.564-1.81-5.723-.916-2.158-1.874-4.513-2.127-5.232-.383-1.086-.556-1.14-1.017-.327-.304.54-.75 2.01-.99 3.27-.24 1.26-1.09 3.304-1.89 4.545l-1.452 2.256-.926-1.93c-.995-2.07-2.646-4.217-3.244-4.217-.202 0-.546.662-.764 1.472-.456 1.69-4.372 6.376-5.328 6.376-.352 0-.64-1.325-.64-2.944 0-1.618-.31-2.943-.69-2.943-.38 0-.692.418-.692.93 0 1.245-3.344 4.956-4.466 4.956-.49 0-1.277.44-1.75.98-1.232 1.408-2.24 1.21-1.723-.337.243-.726.085-2.418-.35-3.76-.437-1.345-.9-2.775-1.03-3.18-.166-.508-1.365-.373-3.9.44-4.1 1.315-5.474 1.082-3.366-.57.77-.602 1.942-2.693 2.604-4.645.662-1.95 1.64-3.683 2.17-3.848.745-.23.706.055-.172 1.242-.627.846-1.142 1.99-1.144 2.54 0 .548-.474 1.85-1.048 2.894-.574 1.042-.935 2-.802 2.125s1.692-.468 3.465-1.318l3.224-1.545.013 1.382c.007.76.396 2.766.863 4.458l.85 3.075 2.194-1.008c2.243-1.03 4.367-4.706 4.367-7.555 0-1.408.807-1.192 1.137.305.098.44.604 2.088 1.126 3.664l.95 2.864 1.502-1.81c.826-.994 1.862-2.946 2.302-4.336.763-2.413 1.962-3.45 1.962-1.698 0 1.263 3.447 5.792 4.11 5.403.323-.188.963-1.888 1.423-3.778.96-3.93 2.505-6.602 3.487-6.028.37.217.513.636.32.933-.194.296.6 2.85 1.763 5.678a2557.7 2557.7 0 0 1 2.597 6.323c.425 1.048.81.896 3.304-1.307 1.553-1.37 2.962-2.906 3.132-3.41.256-.764.602-.736 2.054.165 2.03 1.26 8.856 3.29 9.383 2.79.198-.187.4-1.98.45-3.984l.09-3.643 1.964.408c1.078.224 3.348.21 5.043-.03l3.082-.44-2.746-1.883c-1.512-1.036-3.04-2.377-3.395-2.98-.38-.642-1.724-1.187-3.247-1.316-4.114-.35-11.407-4.44-11.407-6.4 0-.367 1.01.258 2.246 1.39 2.738 2.51 6.543 4.085 9.866 4.085h2.486l-1.538-2.045c-.883-1.175-1.676-3.405-1.862-5.24-.296-2.922-.605-3.387-3.657-5.508-1.833-1.275-4.104-3.186-5.046-4.246l-1.713-1.928-.873 2.29c-.48 1.258-1.068 2.288-1.305 2.288-.238 0-1.162-.736-2.054-1.635-.892-.898-1.8-1.63-2.02-1.627-.218.004-1.01 1.216-1.756 2.692l-1.358 2.685-1.05-1.547c-.578-.85-1.942-2.357-3.03-3.346-1.09-.99-1.664-1.8-1.274-1.8.39 0 1.733 1.03 2.988 2.29l2.28 2.29.93-1.677c.55-.995.756-2.525.507-3.76-.364-1.804-.313-1.91.378-.777.44.72 1.774 2.1 2.965 3.065l2.167 1.757 1.494-2.738c1.487-2.725 1.498-2.73 2.174-1.103.906 2.176 7.456 7.546 13.033 10.684.86.483.498-1.18-1.09-5.004-.42-1.012-.764-2.838-.764-4.057 0-1.808-.522-2.612-2.834-4.372-3.34-2.54-4.42-4.347-5.048-8.445-.255-1.66-.84-3.507-1.298-4.103-.682-.886-.794-.39-.612 2.69.123 2.078-.147 4.66-.6 5.74l-.824 1.96-.637-1.634c-.35-.9-1.898-2.463-3.44-3.475-1.543-1.013-2.626-2.01-2.407-2.218.22-.208 1.807.714 3.527 2.05 2.622 2.034 3.2 2.254 3.562 1.358.426-1.053 0-5.633-.825-8.834-.41-1.598-.375-1.59 1.597.382 1.454 1.454 2.258 3.188 2.88 6.213.792 3.843 1.192 4.483 4.746 7.604 2.134 1.874 3.99 3.302 4.127 3.173.136-.13.405-4.976.6-10.773.37-11.115-.05-13.76-2.727-17.194l-1.375-1.764 2.162-2.333c2.82-3.042 4.116-5.48 4.678-8.808l.457-2.706-2.44 2.31c-1.998 1.892-2.953 2.31-5.267 2.31-2.29 0-3.186-.383-4.73-2.03-1.853-1.973-5.136-3.873-8.293-4.797-1.167-.342-1.554-.193-1.554.596 0 .577-.645 2.246-1.432 3.708l-1.43 2.657-3-2.964c-1.84-1.818-4.024-3.233-5.648-3.66-4.15-1.092-4.375-.983-4.375 2.108 0 4.69-2.002 5.564-5.606 2.447-2.747-2.377-5.025-2.893-10.235-2.32l-4.023.442.723 1.816c.605 1.517.468 2.156-.827 3.88-2.1 2.793-4.833 4.004-9.04 4.004-1.936 0-4.36.4-5.386.89-1.025.49-3.574 1.055-5.663 1.255-2.09.2-4.316.557-4.948.793-.99.37-1.1.065-.78-2.186.487-3.445-1.92-5.986-5.67-5.986-4.863 0-7.107 4.352-5.202 10.092a44.633 44.633 0 0 1 1.066 3.872c.228 1.063 2.42 3.884 5.103 6.57 2.587 2.588 5.033 5.282 5.434 5.985.402.703 1.73 1.832 2.95 2.51l2.22 1.228-.294-2.373c-.322-2.61.247-3.02 1.635-1.177.498.658 1.758 1.722 2.803 2.364 1.646 1.012 1.9 1.032 1.9.154 0-.558.335-1.842.745-2.855l.745-1.84 1.293 2.504c.712 1.378 3.025 4.51 5.14 6.96 4.107 4.752 6.61 10.063 5.318 11.286-.524.496-1.94.457-4.874-.132-2.274-.456-5.087-.698-6.25-.536-2.38.33-2.566.023-1.104-1.807 1.543-1.932 1.298-2.25-1.734-2.25-3.507 0-12.213-1.682-15.556-3.005-3.25-1.286-4-.965-4.956 2.117-.43 1.386-1.22 3.9-1.752 5.585l-.97 3.064 3.518-.34c1.933-.186 4.42-.61 5.527-.94 1.106-.332 2.112-.508 2.234-.392.123.116-.37 1.313-1.096 2.66l-1.317 2.45 2.192-.447c1.206-.245 3.02-.847 4.03-1.336 1.76-.85 1.903-.79 3.29 1.44 1.708 2.74 3.073 2.626 3.376-.28.315-3.004 1.303-2.56 3.162 1.42 1.787 3.83 3.647 5.18 4.004 2.91.12-.752 1.082-1.978 2.14-2.724 2.14-1.508 3.754-1.055 4.678 1.312.958 2.45-1.177 4.977-7.388 8.742-12.44 7.54-19.672 17.856-21.737 31.002-1.863 11.857 3.953 24.11 15.62 32.91 5.584 4.212 14.454 8.657 13.89 6.96-2.394-7.2-2.315-20.945.133-23.263.368-.348.242 1.086-.28 3.186-1.944 7.825-1.1 14.06 3.883 28.673 4.507 13.217 3.883 18.866-2.495 22.6-2.048 1.2-3.367 1.396-8.876 1.33-5.977-.073-6.628.047-8.547 1.576-1.86 1.482-4.272 6.35-4.272 8.62 0 1.23 1.366 1.068 4.05-.482z"/> - <path d="M460.507 415.5l2.507-1.613 1.7 1.612c2.23 2.11 4.842 2.063 6.985-.128.934-.955 1.774-1.617 1.865-1.47.09.145.508.853.927 1.573.53.91 1.62 1.37 3.585 1.507 2.37.167 3.005-.062 3.946-1.422l1.122-1.622 2.468 1.586c6.757 4.343 10.358-.213 7.338-9.286-1.534-4.613-.69-7.206 4.26-13.078 2.086-2.476 3.795-5.118 3.797-5.872 0-1.202-.386-1.363-3.164-1.308-2.657.053-3.435-.233-4.834-1.773-2.276-2.505-2.14-5.373.402-8.557l2.032-2.543-3.605-2.446c-1.984-1.345-5.56-4.528-7.947-7.074-5.362-5.717-10.634-8.428-17.587-9.042l-4.66-.413.006 3.53c.01 4.542 2.14 8.912 7.96 16.313 6.615 8.416 7.077 9.72 7.345 20.718l.227 9.304-1.915 1.816c-1.73 1.64-2.51 1.85-8.093 2.173-5.314.306-6.43.58-7.99 1.962-2.07 1.835-2.69 2.833-3.33 5.367-.373 1.476-.222 1.798.844 1.798.715 0 2.427-.725 3.806-1.61zm-142.203-24.044c.59-.8 1.075-2.09 1.075-2.87 0-1.175.525-1.49 3.11-1.856l3.11-.442-2.075-1.653c-2.464-1.963-2.692-3.497-.52-3.5 2.163 0 5.827-2.247 6.383-3.91.26-.77.096-1.804-.368-2.333-1.213-1.384-3.492-1.176-3.916.358-.455 1.65-1.217 1.653-2.945.016-2.6-2.46-2.658-7.556-.122-10.523 1.196-1.4 1.185-1.49-.34-2.934-1.64-1.554-2.81-4.628-2.04-5.357.246-.232 1.54-.047 2.88.41 1.9.652 2.652.662 3.435.046 2.373-1.866-.198-4.265-4.003-3.736-1.532.213-2.165 0-2.385-.794-.166-.603-1.506-1.39-3.015-1.77-2.697-.683-2.716-.674-2.716 1.184 0 2.036-1.162 2.42-3.37 1.114-1.796-1.062-3.536-.238-3.536 1.674 0 1.783 1.793 2.662 5.007 2.455 2.465-.16 2.556 1.674.215 4.31l-1.683 1.894 1.333 1.917c1.976 2.838 1.81 7.55-.348 9.892l-1.692 1.834-1.11-1.472c-1.542-2.045-3.652-1.908-4.23.275-.38 1.43-.066 2.083 1.724 3.598 1.203 1.018 2.96 1.85 3.902 1.85 2.336 0 2.244 1.837-.183 3.692l-1.9 1.452 2.936.454c1.613.25 2.934.72 2.934 1.047 0 1.248 2.034 5.13 2.688 5.13.378 0 1.17-.656 1.762-1.455z"/> - <path d="M356.523 374.89c2.666-1.05 8.438-5.937 8.438-7.145 0-.38-1.592-2.132-3.54-3.893-4.097-3.707-8.554-9.95-9.708-13.6-.602-1.904-3.512-5.162-11.707-13.11L329.1 326.563l-3.144.796c-1.73.438-3.838.807-4.687.82-1.465.022-1.438.106.507 1.612l2.053 1.59 2.878-1.6c2.79-1.547 2.89-1.556 3.233-.31.202.73-.232 1.993-1.004 2.922-.747.9-1.173 1.92-.946 2.27.227.347-.49 1.074-1.596 1.615-2.048 1.002-3.47 4.304-1.853 4.304 1.454 0 4.66-3.956 4.29-5.294-.188-.685-.097-1.39.204-1.566 1.25-.73 1.17 2.375-.098 3.902-.747.9-1.173 1.92-.946 2.27.227.347-.49 1.075-1.596 1.616-2.035.996-3.47 4.304-1.87 4.304 1.572 0 4.725-3.78 4.335-5.194-.206-.74-.127-1.49.174-1.666.84-.492 1.295 1.96.585 3.16-.38.645-.378 1.523.008 2.22.698 1.262-.01 3.685-1.297 4.44-.55.322-.177.955 1.16 1.966 1.938 1.463 1.975 1.616 1.975 8.07 0 5.392.218 6.784 1.21 7.723 1.11 1.054 1.208 1.057 1.208.047 0-1.103 1.937-2.452 3.52-2.452.47 0 3.39 2.475 6.49 5.5 3.12 3.043 6.386 5.632 7.31 5.797.92.164 1.915.338 2.212.387.297.05 1.695-.366 3.107-.923zM323.18 348.8c0-1.74-3.588-3.594-7.877-4.075-3.463-.39-3.52-.367-3.52 1.363 0 1.432.545 1.995 2.935 3.036 3.842 1.673 8.46 1.496 8.46-.324z"/> - <path d="M327.11 348.64c1.75-1.587 2.577-3.475 1.525-3.475-1.21 0-4.423 2.883-4.423 3.97 0 1.694.597 1.592 2.897-.495zm-3.73-5.14c.15-.982-.457-1.637-2.276-2.458-3.923-1.772-8.613-2.593-9.743-1.705-2.08 1.636-.693 3.83 2.67 4.226 1.353.16 3.19.572 4.078.918 2.585 1.004 5.042.547 5.273-.98zm0-5.255c.213-1.4-.682-1.9-7.987-4.47-5.453-1.92-7.868-1.015-6.125 2.296.607 1.154 1.626 1.68 3.912 2.023 1.7.255 4.022.752 5.162 1.106 3.044.944 4.803.61 5.04-.955zm3.66-4.922c1.102-1.118 2.004-2.436 2.004-2.93 0-1.604-4.353 1.233-4.908 3.198-.665 2.357.414 2.258 2.904-.267zm-3.66-.331c.242-1.594-2.41-3.033-7.622-4.14-3.825-.812-5.512-.35-5.225 1.426.156.97 1.43 1.68 5.043 2.807 5.783 1.804 7.522 1.784 7.805-.093zm5.1-7.419c6.68-2.973 7.258-10.472.96-12.44-2.617-.818-4.286-.377-5.287 1.394-.767 1.357-.254 3.823.794 3.823.355 0 .644.457.644 1.014 0 2.604-10.198 3.784-14.38 1.664-1.47-.745-2.11-2.678-.886-2.678.914 0 1.546-1.97 1.08-3.363-.638-1.898-2.55-2.556-5.326-1.83-6.26 1.637-6.085 8.994.29 12.116 5.227 2.56 16.686 2.716 22.112.3z"/> - <path d="M324.325 319.808c.387-.366.22-.93-.43-1.44-1.42-1.115-1.344-2.775.214-4.676 1.17-1.427 1.315-3.563 1.717-25.106.694-37.126 3.455-65.05 7.094-71.75 1.45-2.666 1.246-2.677-2.497-.13-4.823 3.28-8.494 7.554-11.747 13.67-6.142 11.547-8.277 27.083-8.277 60.245 0 18.83.128 21.294 1.2 23.064 1.02 1.68 1.073 2.302.357 4.098-.464 1.164-.674 2.276-.467 2.472 1.37 1.3 11.36.954 12.835-.443zm56.123-35.403c.21-.32-.253-1.94-1.027-3.597-1.207-2.585-1.693-3.014-3.413-3.014-5.387 0-14.048-2.408-22.977-6.388-5.156-2.298-6.937-2.826-7.556-2.24-1.577 1.494 1.045 5.04 5.105 6.904 3.6 1.654 13.67 3.686 18.265 3.686 2.665 0 2.728.12 1.21 2.312l-1.114 1.612 3.015.078c1.658.042 3.947.302 5.087.576 2.96.714 2.987.714 3.407.072z"/> - <path d="M411.92 301.136c0-.96-2.818-3.56-5.674-5.236-2.242-1.316-2.613-1.356-2.618-.282-.007 1.63-1.456 5.723-2.025 5.723-.32 0-.795-.8-1.055-1.777-.26-.978-1.346-2.905-2.415-4.282l-1.945-2.503-1.514 2.32c-1.412 2.163-3.857 4.282-4.942 4.282-.26 0-.31-1.14-.113-2.533.213-1.513.048-2.713-.412-2.982-.423-.247-.77-.16-.77.192 0 .815-3.395 4.668-4.114 4.668-.296 0-.71-1.104-.92-2.453-.21-1.35-.57-3.483-.796-4.742-.227-1.26.257-.405 1.075 1.897l1.487 4.187 1.63-2.552c.898-1.403 1.633-2.936 1.635-3.407 0-.47.305-.68.674-.464.368.217.88 1.904 1.14 3.75l.47 3.356 1.794-1.968c.987-1.082 2.144-2.53 2.57-3.22.762-1.228.805-1.227 2.32.057.847.72 2.15 2.44 2.897 3.824.747 1.383 1.457 2.413 1.58 2.29.12-.126.394-1.553.606-3.172.212-1.618.4-3.003.42-3.076.106-.4 5.406 3.043 7.367 4.788 1.26 1.12 2.457 1.88 2.66 1.69.203-.192.368-1.847.368-3.676 0-2.836-.3-3.596-2.034-5.146-1.994-1.783-2.05-1.793-2.786-.49-.957 1.694-2.085 1.718-2.085.046 0-1.22-3.768-5.91-4.75-5.91-.253 0-1.046 1.03-1.762 2.29s-1.486 2.288-1.71 2.287c-.968-.005-6.28-5.928-6.278-6.997 0-.85.358-.633 1.29.787.707 1.08 2.12 2.69 3.14 3.58 2.066 1.802 2.817 1.364 3.614-2.11.227-.988.62-1.797.876-1.797.884 0 5.508 4.912 6.16 6.54l.652 1.636.495-1.8c.604-2.2 1.272-2.28 2.237-.274.404.838 2.396 2.58 4.428 3.873l3.693 2.35.743-2.364c.407-1.3.948-2.047 1.2-1.66.376.577-.584 4.492-1.308 5.335-.11.127-1.306-.57-2.66-1.55l-2.463-1.777-.01 3.184c-.006 1.75-.196 3.847-.425 4.656-.448 1.583-1.637 2.028-1.637.613zm-18.416-25.386c-4.39-3.666-5.057-4.505-4.96-6.242l.104-1.85.287 1.787c.167 1.043 1.336 2.606 2.81 3.756l2.523 1.97 1.55-1.793c.854-.986 1.563-2.16 1.577-2.61.035-1.173.246-1.075 3.218 1.504 2.64 2.292 2.682 2.303 3.075.82.22-.83.14-2.387-.173-3.464-.863-2.96-.694-3.407.614-1.622.65.89 1.698 2.147 2.326 2.795 1.095 1.125 1.162 1.11 1.57-.33.233-.826.43-2.34.434-3.363l.01-1.86 2.38 2.698c2.225 2.522 2.43 2.615 3.11 1.413.398-.707.73-2.41.736-3.78.007-1.775.194-2.222.645-1.547.754 1.13.23 4.2-1.16 6.815l-.997 1.877-1.31-2.04c-1.676-2.61-2.234-2.568-3.31.248-1.015 2.66-1.676 2.863-2.666.817-.64-1.324-.763-1.162-1.218 1.62l-.506 3.092-3.03-2.352-3.027-2.35-1.362 1.548c-.75.85-1.372 1.916-1.384 2.365-.027.976-.755 1.006-1.866.08zm39.051-13.654c-1.598-1.44-2.7-2.813-2.447-3.052.253-.24.537-.308.632-.152.095.155 1.4 1.528 2.903 3.052 3.457 3.507 2.746 3.607-1.088.152zm-52.015-5.376c-1.455-1.965-1.355-3.268.415-5.398 1.278-1.54 1.862-1.748 4.095-1.465 1.432.182 4.514 1.448 6.85 2.812 2.695 1.576 5.484 2.63 7.644 2.894 1.87.227 3.4.313 3.4.19 0-.122-.776-1.388-1.726-2.813-2.255-3.382-2.178-3.745.366-1.718 2.61 2.08 5.734 2.69 12.712 2.477l3.41-.105-1.978-1.955c-2.766-2.735-1.915-2.98 1.14-.328 2.865 2.486 2.686 2.662-3.345 3.263-2.562.256-5.318.07-7.61-.512-3.426-.87-3.56-.858-2.91.29.374.663.98 1.204 1.347 1.204.366 0 .666.336.666.746 0 1.26-7.402.152-10.94-1.64-8.08-4.09-9.097-4.444-11.02-3.838-1.07.337-2.14 1.324-2.51 2.313-1.232 3.3 3.448 5.865 5.378 2.948.56-.845.43-1.424-.554-2.452-1.347-1.41-1.22-1.61.597-.95 1.29.47 1.465 3.568.264 4.705-1.373 1.3-4.508.932-5.692-.67z" fill="#000"/> - <path d="M412.368 248.57c-1.01-.956-.218-1.19 4.312-1.275 5.604-.105 9.008-1.04 13.024-3.574 3.218-2.03 4.09-1.63 1.036.476-2.786 1.92-7.132 3.398-11.328 3.85-2.03.22-4.347.522-5.145.673-.798.15-1.653.084-1.9-.15z" fill="#000"/> - </g> - </g> -</svg> diff --git a/img/flags/4x3/lr.svg b/img/flags/4x3/lr.svg deleted file mode 100644 index 56fdc62..0000000 --- a/img/flags/4x3/lr.svg +++ /dev/null @@ -1,14 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" height="480" width="640" viewBox="0 0 640 480"> - <defs> - <clipPath id="a"> - <path fill-opacity=".67" d="M0 0h682.67v512H0z"/> - </clipPath> - </defs> - <g clip-path="url(#a)" fill-rule="evenodd" transform="scale(.9375)"> - <path fill="#fff" d="M0 .084h767.87v511.92H0z"/> - <path fill="#006" d="M0 0h232.74v232.75H0z"/> - <path fill="#c00" d="M0 464.87h767.89v47.127H0z"/> - <path fill="#c00" d="M0 465.43h767.89v46.574H0zM0 372.52h767.89v46.21H0zM0 279.26h765.96v46.7H0zM232.67.055h535.17v46.494H232.67zM232.67 186.06h535.17v46.796H232.67zM232.67 93.361h535.17v46.494H232.67z"/> - <path d="M166.35 177.47l-50.71-30.98-50.465 31.29 18.769-50.85-50.373-31.394 62.321-.438 19.328-50.691 19.744 50.574 62.321.067-50.115 31.693 19.184 50.732z" fill="#fff"/> - </g> -</svg> diff --git a/img/flags/4x3/ls.svg b/img/flags/4x3/ls.svg deleted file mode 100644 index e7bf1c2..0000000 --- a/img/flags/4x3/ls.svg +++ /dev/null @@ -1,8 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" height="480" width="640" viewBox="0 0 640 480"> - <path d="M0 0h640v480H0z" fill="#fff"/> - <path d="M0 336h640v144H0z" fill="#009543"/> - <path d="M0 0h640v144H0z" fill="#00209f"/> - <path d="M319.622 152.91c-2.736.06-5.404 3.088-5.404 3.088l.236 32.375-10.22 10.707h8.272l-.07 18.563-48.945 65.909-7.235-2.5-12.648 26.977s31.28 19.585 76.682 19.051c49.828-.592 76.902-19.955 76.902-19.955l-13.069-26.63-6.4 2.783-49.573-65.568-.068-19.116h8.272l-11.26-10.576.068-32.255s-2.804-2.912-5.54-2.853z" stroke="#000" stroke-width="1.601"/> - <path d="M336.688 230.416h-33.845s-12.285-25.883-10.293-43.978c2.028-18.425 12.557-27.14 26.557-27.296 16.552-.184 25.227 8.112 27.848 26.559 2.597 18.278-10.269 44.713-10.269 44.713z" fill="none" stroke="#000" stroke-width="8"/> - <path d="M260.46 292.112c-.553.736-4.61 8.851-4.61 8.851l7.008-1.475-2.397-7.376zm4.058 10.512l-7.376 2.397 8.852 3.504-1.476-5.901zm3.319-10.328l3.69 10.88 9.036-2.58-2.398-5.166-10.328-3.136zm5.718 14.754l1.29 4.425 11.989 2.952-4.796-10.144-8.483 2.767zm13.277-9.221l4.243 10.144 9.037-3.504-2.952-4.427-10.326-2.213zm5.902 13.832l1.476 3.872 14.016 2.029-5.901-9.221-9.59 3.32zm13.463-10.882l5.165 9.037 13.092-4.795-1.475-3.504-16.782-.736zm7.561 12.357l2.767 4.795 16.229-.553-6.087-9.037-12.909 4.795zm17.152-11.987l4.426 7.56 10.328-4.98-2.768-4.057-11.986 1.477zm16.967 5.715l-10.328 5.165 2.766 4.425 13.832-2.212-6.272-7.376zm3.32-7.93l5.347 6.64 8.669-6.824-2.952-3.136-11.064 3.32zm15.859 3.504l-8.3 6.272 2.215 3.872 11.434-2.95-5.349-7.194zm11.435-13.094l2.027 2.952-5.716 8.483-5.901-7.561 9.59-3.872zm3.872 7.378l3.504 7.008-7.008 2.398-.553-3.32 4.057-6.086z" fill="#fff"/> -</svg> diff --git a/img/flags/4x3/lt.svg b/img/flags/4x3/lt.svg deleted file mode 100644 index 1ca1cd4..0000000 --- a/img/flags/4x3/lt.svg +++ /dev/null @@ -1,7 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" height="480" width="640" viewBox="0 0 640 480"> - <g fill-rule="evenodd" transform="matrix(.64143 0 0 .96773 0 0)" stroke-width="1pt"> - <rect transform="matrix(.93865 0 0 .69686 0 0)" rx="0" ry="0" width="1063" height="708.66" fill="#007308"/> - <rect transform="matrix(.93865 0 0 .69686 0 0)" rx="0" ry="0" width="1063" y="475.56" height="236.22" fill="#bf0000"/> - <path fill="#ffb300" d="M0 0h997.77v164.61H0z"/> - </g> -</svg> diff --git a/img/flags/4x3/lu.svg b/img/flags/4x3/lu.svg deleted file mode 100644 index d7f4a7c..0000000 --- a/img/flags/4x3/lu.svg +++ /dev/null @@ -1,5 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" height="480" width="640" viewBox="0 0 640 480"> - <path fill="#00a1de" d="M0 240h640v240H0z"/> - <path fill="#ed2939" d="M0 0h640v240H0z"/> - <path fill="#fff" d="M0 160h640v160H0z"/> -</svg> diff --git a/img/flags/4x3/lv.svg b/img/flags/4x3/lv.svg deleted file mode 100644 index 338addd..0000000 --- a/img/flags/4x3/lv.svg +++ /dev/null @@ -1,6 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" height="480" width="640" viewBox="0 0 640 480"> - <g fill-rule="evenodd"> - <path fill="#fff" d="M0 0h640v480.003H0z"/> - <path fill="#ab231d" d="M0 0h640v192.001H0zM0 288.002h640v192.001H0z"/> - </g> -</svg> diff --git a/img/flags/4x3/ly.svg b/img/flags/4x3/ly.svg deleted file mode 100644 index 96ab5ad..0000000 --- a/img/flags/4x3/ly.svg +++ /dev/null @@ -1,13 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" height="480" width="640" viewBox="0 0 640 480"> - <defs> - <clipPath id="a"> - <path d="M166.67-20h666.67v500H166.67z"/> - </clipPath> - </defs> - <g clip-path="url(#a)" transform="matrix(.96 0 0 .96 -160 19.2)"> - <path fill="#239e46" d="M0-20h1000v500H0z"/> - <path d="M0-20h1000v375H0z"/> - <path fill="#e70013" d="M0-20h1000v125H0z"/> - <path d="M544.2 185.8a54.3 54.3 0 1 0 0 88.4 62.5 62.5 0 1 1 0-88.4M530.4 230l84.1-27.3-52 71.5v-88.4l52 71.5z" fill="#fff"/> - </g> -</svg> diff --git a/img/flags/4x3/ma.svg b/img/flags/4x3/ma.svg deleted file mode 100644 index 10447a4..0000000 --- a/img/flags/4x3/ma.svg +++ /dev/null @@ -1,4 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" height="480" width="640" viewBox="0 0 640 480"> - <path fill="#c1272d" d="M640 0H0v480h640z"/> - <path d="M320 179.452l-35.574 109.496 93.12-67.647H262.453l93.122 67.648z" fill="none" stroke="#006233" stroke-width="11.704"/> -</svg> diff --git a/img/flags/4x3/mc.svg b/img/flags/4x3/mc.svg deleted file mode 100644 index 8a4e827..0000000 --- a/img/flags/4x3/mc.svg +++ /dev/null @@ -1,6 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" height="480" width="640" viewBox="0 0 640 480"> - <g fill-rule="evenodd" stroke-width="1pt"> - <path fill="#f31830" d="M0 0h640v240H0z"/> - <path fill="#fff" d="M0 240h640v240H0z"/> - </g> -</svg> diff --git a/img/flags/4x3/md.svg b/img/flags/4x3/md.svg deleted file mode 100644 index 8d51756..0000000 --- a/img/flags/4x3/md.svg +++ /dev/null @@ -1,72 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" height="480" width="640" viewBox="0 0 640 480"> - <g fill-rule="evenodd" stroke-width="1pt"> - <path fill="#00319c" d="M0 0h213.337v480H0z"/> - <path fill="#ffde00" d="M213.337 0h213.338v480H213.337z"/> - <path fill="#de2110" d="M426.662 0H640v480H426.662z"/> - </g> - <path d="M360.376 320.377l24.267 35.012c1.348 1.945 2.696 3.89.66 5.178-2.035 1.289-1.374 6.467-.026 8.412 2.696 3.89 6.08 4.547 8.116 3.259l18.319-11.594c2.036-1.288 2.723-4.522.027-8.412-1.548-1.96-6.08-4.547-8.116-3.259-2.036 1.289-3.384-.656-4.732-2.602l-24.267-35.012" fill-rule="evenodd" stroke="#000" stroke-width=".7295678999999999" fill="#ff1900"/> - <path d="M177.17 696.26c0 24.461-9.518 44.291-21.26 44.291-11.741 0-21.26-19.83-21.26-44.291s9.518-44.291 21.26-44.291c11.741 0 21.26 19.83 21.26 44.291z" fill-rule="evenodd" transform="matrix(.52728 -.42386 .44358 .50386 -32.42 19.918)" stroke="#000" stroke-width="2.54" fill="#a77b3b"/> - <path d="M261.952 306.142L240.53 342.81c-1.19 2.037-2.38 4.074-4.512 2.937-2.132-1.138-6.645 1.8-7.835 3.836-2.38 4.075-1.439 7.249.693 8.386l19.186 10.236c2.132 1.137 5.454.238 7.834-3.837 1.114-2.213 1.44-7.248-.693-8.386-2.132-1.137-.941-3.174.249-5.211l21.423-36.667" fill-rule="evenodd" stroke="#000" stroke-width=".7295678999999999" fill="#ff1900"/> - <path d="M331.169 280.577h-19.532c-.646.617-6.2 35.598-12.208 48.993-7.324 16.33-29.26 30.741-29.26 30.741s13.142 3.98 17.053 6.586c.972-.273 21.936-4.665 24.377-30.329 2.442 25.664-14.61 37.329-14.61 37.329s24.415 6.999 24.415 23.33c0-16.331 24.415-23.33 24.415-23.33s-12.246-11.665-14.687-37.329c4.882 25.664 23.48 30.056 24.453 30.33 3.91-2.607 17.053-6.587 17.053-6.587s-21.936-14.41-29.26-30.741c-6.007-13.395-11.562-48.376-12.207-48.993zM248.124 163.907l36.623 11.665c12.207 0 24.415-11.652 24.415-23.318.406-25.95-9.766-35.007-12.208-35.007l4.884-4.666-7.325-7s2.449-12.102 26.856-11.652c24.407.45 24.416 11.665 24.416 23.33s-12.208 11.665-12.208 34.996c0 11.665 12.208 23.33 24.416 23.33l36.623-11.665v116.651H248.124V163.908z" fill-rule="evenodd" stroke="#000" stroke-width="1.7113473" fill="#a77b3b"/> - <g stroke="#000" fill="none"> - <path d="M302.16 292.24l14.645 14.964 14.644-14.964 14.645 14.964 29.29-14.964 14.261 15.809 15.028-15.809 21.605 15.809 22.329-15.809 14.645 14.964 14.645-14.964" transform="matrix(.16672 0 0 .46773 253.9 31.899)" stroke-width=".49"/> - <path d="M432.28 435.83l-7.086 38.976M435.83 435.83v38.976M442.91 435.83v38.976M450 435.83l3.543 38.976M457.09 435.83l3.543 38.976" transform="matrix(.68905 0 0 .65843 16.176 -144.034)" stroke-width=".203"/> - </g> - <g stroke="#000" stroke-width="2.54"> - <path d="M318.9 361.42c35.433 17.717 35.433 53.149 35.433 70.866-1.251 16.117 0 354.33 0 354.33s-2.306-20.022-17.717-35.433L318.9 733.467l-17.717-17.717c-12.951-11.774-17.716-35.433-17.716-53.15V414.57s0-17.717 35.433-53.15z" fill-rule="evenodd" transform="matrix(-.68905 0 0 .65843 443.445 -144.034)" fill="#a77b3b"/> - <path d="M283.46 574.02c.417 0 17.716-17.717 17.716-17.717l17.717 17.717 17.716-17.717 17.717 17.717" transform="matrix(-.68905 0 0 .65843 443.445 -237.354)" fill="none"/> - <path d="M283.46 574.02c.417 0 17.716-17.717 17.716-17.717l17.717 17.717 17.716-17.717 17.717 17.717" transform="matrix(-.68905 0 0 -.65843 443.445 530.2)" fill="none"/> - <path d="M283.46 574.02c.417 0 17.716-17.717 17.716-17.717l17.717 17.717 17.716-17.717 17.717 17.717" transform="matrix(-.68905 0 0 .65843 443.445 -190.695)" fill="none"/> - <path d="M301.39 556.99l-.208 158.76" transform="matrix(-.68905 0 0 1.24911 443.445 -566.794)" fill="none"/> - <path d="M301.39 539.27l-.208 176.48" transform="matrix(-.68905 0 0 1.12111 431.38 -463.993)" fill="none"/> - <path d="M301.39 539.27l-.208 176.48" transform="matrix(-.68905 0 0 1.2559 419.17 -548.331)" fill="none"/> - </g> - <g stroke="#000" stroke-width="2.54"> - <path d="M318.9 361.42c35.433 17.717 35.433 53.149 35.433 70.866-1.251 16.117 0 354.33 0 354.33s-2.306-20.022-17.717-35.433L318.9 733.467l-17.717-17.717c-12.951-11.774-17.716-35.433-17.716-53.15V414.57s0-17.717 35.433-53.15z" fill-rule="evenodd" transform="matrix(.68905 0 0 .65843 199.292 -144.034)" fill="#a77b3b"/> - <path d="M283.46 574.02c.417 0 17.716-17.717 17.716-17.717l17.717 17.717 17.716-17.717 17.717 17.717" transform="matrix(.68905 0 0 .65843 199.292 -237.354)" fill="none"/> - <path d="M283.46 574.02c.417 0 17.716-17.717 17.716-17.717l17.717 17.717 17.716-17.717 17.717 17.717" transform="matrix(.68905 0 0 -.65843 199.292 530.2)" fill="none"/> - <path d="M283.46 574.02c.417 0 17.716-17.717 17.716-17.717l17.717 17.717 17.716-17.717 17.717 17.717" transform="matrix(.68905 0 0 .65843 199.292 -190.695)" fill="none"/> - <path d="M301.39 556.99l-.208 158.76" transform="matrix(.68905 0 0 1.24911 199.292 -566.794)" fill="none"/> - <path d="M301.39 539.27l-.208 176.48" transform="matrix(.68905 0 0 1.12111 211.358 -463.993)" fill="none"/> - <path d="M301.39 539.27l-.208 176.48" transform="matrix(.68905 0 0 1.2559 223.56 -548.331)" fill="none"/> - </g> - <path d="M177.17 696.26c0 24.461-9.518 44.291-21.26 44.291-11.741 0-21.26-19.83-21.26-44.291s9.518-44.291 21.26-44.291c11.741 0 21.26 19.83 21.26 44.291z" fill-rule="evenodd" transform="matrix(.63605 .25323 -.26502 .60778 361.151 -165.211)" stroke="#000" stroke-width="2.54" fill="#a77b3b"/> - <path fill-rule="evenodd" fill="red" d="M248.119 175.588h146.493v69.991H248.119z"/> - <path d="M248.12 245.58h146.492v34.996c0 23.33-36.623 23.33-73.246 46.66-36.624-23.33-73.247-23.33-73.247-46.66V245.58z" fill-rule="evenodd" fill="#564dff"/> - <path d="M336.61 485.43h212.6v159.45c0 35.433-53.15 35.433-106.3 70.866-53.149-35.433-106.3-35.433-106.3-70.866V485.43z" transform="matrix(.68905 0 0 .65843 16.177 -144.034)" stroke="#ff0" stroke-width="2.032" fill="none"/> - <path d="M385.59 129.9s-50.618 55.447-50.618 108.6c0 53.149 53.149 70.866 53.149 70.866s-17.717 0-17.717 70.866c0 35.433 53.15 17.717 53.15 35.433 0 17.717-.751 60.578 0 88.583 0 17.716-35.433 0-35.433 17.716 0 8.859 26.575 53.15 53.15 53.15 26.574 0 53.149-44.291 53.149-53.15 0-17.716-35.433 0-35.433-17.716v-88.583c0-17.716 53.15 0 53.15-35.433 0-70.866-17.717-70.866-17.717-70.866s53.15-17.717 53.15-70.866-50.619-108.6-50.619-108.6c0-.001 28.473 73.163 28.473 108.6 0 17.717-13.287 53.149-48.72 53.149 0 0-8.961-17.716-17.717 0 0 0-10.189-17.716-17.716 0-2.598 6.115-7.207-17.716-17.717 0-4.465 4.697-7.984-17.716-17.717 0-17.716 0-53.148-17.716-53.149-53.149 0-35.433 32.902-108.6 32.902-108.6z" fill-rule="evenodd" transform="matrix(.48234 0 0 .30917 108.523 140.092)" stroke="#000" stroke-width="2.448" fill="#ff0"/> - <path d="M382.68 248.03c-3.543 3.543 4.581 61.274 7.087 63.779 3.543 3.543 24.803 3.543 28.346 0 2.525-2.525 0-56.693-3.543-60.236-3.543-3.544-29.384-6.049-31.89-3.543z" fill-rule="evenodd" transform="matrix(.48234 0 0 .30917 110.363 201.59)" stroke="#000" stroke-width="2.448" fill="#ff0"/> - <path d="M382.68 248.03c-3.543 3.543 4.581 61.274 7.087 63.779 3.543 3.543 24.803 3.543 28.346 0 2.525-2.525 0-56.693-3.543-60.236-3.543-3.544-29.384-6.049-31.89-3.543z" fill-rule="evenodd" transform="matrix(-.48234 0 0 .30917 532.374 201.59)" stroke="#000" stroke-width="2.448" fill="#ff0"/> - <path d="M414.57 228.54c0 8.806-7.139 15.945-15.945 15.945-8.806 0-15.945-7.139-15.945-15.945 0-8.806 7.139-15.945 15.945-15.945 8.806 0 15.945 7.139 15.945 15.945z" fill-rule="evenodd" transform="matrix(.5544 0 0 .38542 82.69 183.727)" stroke="#000" stroke-width="2.448" fill="#ff0"/> - <path d="M414.57 228.54c0 8.806-7.139 15.945-15.945 15.945-8.806 0-15.945-7.139-15.945-15.945 0-8.806 7.139-15.945 15.945-15.945 8.806 0 15.945 7.139 15.945 15.945z" fill-rule="evenodd" transform="matrix(.55441 0 0 .38543 118.046 183.727)" stroke="#000" stroke-width="2.448" fill="#ff0"/> - <path d="M336.753 307.498c0 1.513-1.913 2.739-4.273 2.739-2.36 0-4.272-1.226-4.272-2.739s1.913-2.739 4.272-2.739c2.36 0 4.273 1.226 4.273 2.739zM314.531 307.498c0 1.513-1.913 2.739-4.273 2.739-2.36 0-4.272-1.226-4.272-2.739s1.913-2.739 4.272-2.739c2.36 0 4.273 1.226 4.273 2.739z" fill-rule="evenodd"/> - <path fill-rule="evenodd" transform="matrix(.67225 0 0 .64237 26.002 -133.336)" stroke="#000" stroke-width="1.084" fill="#ff0" d="M439.37 549.92l-7.78-10.26-12.77 1.75 1.76-12.76-10.26-7.78 10.26-7.79-1.76-12.76 12.77 1.76 7.78-10.27 7.78 10.27 12.77-1.76-1.76 12.76 10.26 7.79-10.26 7.78 1.76 12.76-12.77-1.75z"/> - <path d="M496.06 591.73l21.26 10.63 21.26-10.63-21.26-10.63-21.26 10.63z" fill-rule="evenodd" transform="matrix(.68905 0 0 .65843 16.176 -144.034)" stroke="#000" stroke-width="1.084" fill="#ff0"/> - <path d="M496.06 591.73l21.26 10.63 21.26-10.63-21.26-10.63-21.26 10.63z" fill-rule="evenodd" transform="matrix(.68905 0 0 .65843 -88.808 -144.034)" stroke="#000" stroke-width="1.084" fill="#ff0"/> - <path d="M535.04 659.06c-3.543-7.086-14.173-10.63-21.259-10.63-7.087 0-14.174 0-21.26 10.63 0-14.173 10.502-21.26 21.26-21.26 10.756 0 21.259 10.503 21.259 21.26z" fill-rule="evenodd" transform="matrix(.59753 -.3279 .34316 .57097 -165.149 86.49)" stroke="#000" stroke-width="1.084" fill="#ff0"/> - <path d="M386.22 651.97a7.087 7.087 0 1 1-14.173 0 7.087 7.087 0 0 1 14.173 0z" fill-rule="evenodd" transform="matrix(.68905 0 0 .65843 13.735 -155.7)" stroke="#000" stroke-width="1.084" fill="#ff0"/> - <path d="M386.22 651.97a7.087 7.087 0 1 1-14.173 0 7.087 7.087 0 0 1 14.173 0z" fill-rule="evenodd" transform="matrix(.68905 0 0 .65843 8.851 -139.368)" stroke="#000" stroke-width="1.084" fill="#ff0"/> - <path d="M386.22 651.97a7.087 7.087 0 1 1-14.173 0 7.087 7.087 0 0 1 14.173 0z" fill-rule="evenodd" transform="matrix(.68905 0 0 .65843 6.41 -148.7)" stroke="#000" stroke-width="1.084" fill="#ff0"/> - <path d="M386.22 651.97a7.087 7.087 0 1 1-14.173 0 7.087 7.087 0 0 1 14.173 0z" fill-rule="evenodd" transform="matrix(.68905 0 0 .65843 18.618 -139.368)" stroke="#000" stroke-width="1.084" fill="#ff0"/> - <path d="M386.22 651.97a7.087 7.087 0 1 1-14.173 0 7.087 7.087 0 0 1 14.173 0z" fill-rule="evenodd" transform="matrix(.68905 0 0 .65843 21.06 -148.7)" stroke="#000" stroke-width="1.084" fill="#ff0"/> - <path d="M386.22 651.97a7.087 7.087 0 1 1-14.173 0 7.087 7.087 0 0 1 14.173 0z" fill-rule="evenodd" transform="matrix(.68905 0 0 .65843 13.735 -146.367)" stroke="#000" stroke-width="1.084" fill="#ff0"/> - <g fill-rule="evenodd"> - <path d="M297.774 120.38c-12.323 0-13.952 1.945-19.533 3.89 0-5.366 13.722-11.666 26.044-11.666 0 3.889-3.256 7.778-6.511 7.777z" fill="#da4500"/> - <path d="M316.484 107.932c0 2.577-2.186 4.666-4.883 4.666s-4.883-2.089-4.883-4.666 2.186-4.666 4.883-4.666 4.883 2.09 4.883 4.666z" fill="#cac9c7"/> - <path d="M361.42 357.87v10.63h17.717v53.15h10.63V368.5h17.716v-10.63h-17.716v-14.173h-10.63v14.173H361.42z" stroke="#000" stroke-width="1.084" fill="#ff0" transform="matrix(.68905 0 0 .65843 16.176 -144.034)"/> - <path d="M304.263 112.607c-14.375 0-22.787 1.294-29.298 3.887 0-7.155 8.412-15.553 22.787-15.553 3.255 0 6.51 7.776 6.51 11.666z" fill="#da4500"/> - </g> - <g fill-rule="evenodd"> - <path d="M67.323 612.99c-14.173-14.17-16.634-21.36 3.543-10.1l283.75 247.5-3.366 6.968-283.93-244.37z" transform="matrix(.38821 .29653 -.14073 .23692 237.452 71.286)" stroke="#000" stroke-width=".711" fill="#008500"/> - <path d="M228.398 330.405c.77-10.585-18.61-22.036-19.377-21.292-.767.744 1.178 6.907 4.854 10.119-7.038-3.626-14.41-5.859-14.564-4.285-.574 2.122 10.937 7.19 11.893 9.148.156 1.399-8.454 1.216-8.297 2.615.156 1.4 24.25 13.573 25.49 3.694zM209.035 299.57c.769-10.584-18.611-22.035-19.378-21.29-.767.743 1.178 6.906 4.854 10.117-7.038-3.625-14.41-5.858-14.564-4.284-.574 2.122 10.938 7.19 11.893 9.147.156 1.4-8.453 1.217-8.297 2.616.156 1.399 24.25 13.573 25.491 3.694zM194.217 271.574c.77-10.585-18.611-22.035-19.377-21.291-.767.743 1.178 6.906 4.853 10.118-7.038-3.626-14.409-5.859-14.563-4.285-.574 2.123 10.937 7.19 11.893 9.148.156 1.399-8.454 1.216-8.298 2.615.157 1.4 24.25 13.573 25.492 3.695zM179.568 241.24c.769-10.585-18.611-22.035-19.378-21.291-.767.743 1.179 6.906 4.854 10.118-7.038-3.626-14.41-5.859-14.564-4.285-.574 2.123 10.938 7.19 11.894 9.148.156 1.399-8.454 1.216-8.298 2.615.156 1.4 24.25 13.573 25.491 3.695z" fill="#008f00"/> - <path d="M184.603 239.866c9.377-5.682 7.54-27.385 6.46-27.533-1.082-.15-5.124 5-5.652 9.733-1.116-7.565-3.603-14.562-5.022-13.748-2.129.816.423 12.68-.66 14.575-1.087.95-6.036-5.784-7.123-4.835-1.086.95 2.935 26.709 11.997 21.808zM198.185 266.497c10.825-2.365 16.676-23.408 15.709-23.893-.967-.486-6.576 3.08-8.728 7.372 1.592-7.487 1.692-14.876.07-14.561-2.291.09-4.03 12.087-5.714 13.528-1.356.549-3.669-7.378-5.025-6.83-1.356.549-6.565 26.112 3.689 24.384zM214.41 293.739c9.872-4.857 10.078-26.63 9.015-26.87-1.063-.241-5.57 4.542-6.54 9.21-.403-7.63-2.224-14.812-3.713-14.122-2.197.63-.767 12.665-2.024 14.46-1.171.853-5.47-6.278-6.64-5.426-1.172.853.418 26.853 9.902 22.747zM231.972 329.307c10.336-3.878 12.845-25.519 11.813-25.861-1.032-.343-6.023 3.98-7.482 8.53.408-7.63-.644-14.95-2.198-14.408-2.253.415-2.105 12.526-3.545 14.19-1.255.735-4.776-6.775-6.032-6.04-1.255.736-2.426 26.756 7.444 23.588z" fill="#008f00"/> - </g> - <path d="M209.06 775.98c0 7.828-10.312 14.173-23.031 14.173-12.72 0-23.031-6.346-23.031-14.173 0-7.828 10.312-14.173 23.031-14.173 12.72 0 23.031 6.346 23.031 14.173z" fill-rule="evenodd" transform="matrix(.60164 .32097 -.3359 .5749 389.583 -146.809)" stroke="#000" stroke-width="1.084" fill="#ff1900"/> - <g stroke="#000" fill-rule="evenodd" fill="#ff0"> - <path d="M155.91 414.57v-7.087h7.086v-7.086h7.087v7.086h7.086v7.087h-7.086v17.716h-7.087V414.57h-7.086z" transform="matrix(.49887 .1571 -.1826 .4713 451.443 -3.726)" stroke-width=".508"/> - <path stroke-width=".512" d="M162.99 474.8h7.087v205.51h-7.087z" transform="matrix(.49887 .1571 -.1826 .4713 451.443 -3.726)"/> - <path stroke-width=".508" d="M159.45 676.77h14.173v56.693H159.45zM155.91 439.37h21.259c14.174 0-3.543 38.976-3.543 38.976h-14.173s-17.717-38.976-3.543-38.976z" transform="matrix(.49887 .1571 -.1826 .4713 451.443 -3.726)"/> - <path d="M173.62 434.06c0 2.935-3.173 5.315-7.087 5.315s-7.086-2.38-7.086-5.315 3.173-5.315 7.086-5.315 7.087 2.38 7.087 5.315z" stroke-width=".508" transform="matrix(.49887 .1571 -.1826 .4713 451.443 -3.726)"/> - </g> - <path d="M209.06 775.98c0 7.828-10.312 14.173-23.031 14.173-12.72 0-23.031-6.346-23.031-14.173 0-7.828 10.312-14.173 23.031-14.173 12.72 0 23.031 6.346 23.031 14.173z" fill-rule="evenodd" transform="matrix(.57449 -.36357 .38048 .54895 -2.259 4.212)" stroke="#000" stroke-width="1.084" fill="#ff1900"/> -</svg> diff --git a/img/flags/4x3/me.svg b/img/flags/4x3/me.svg deleted file mode 100644 index ed97b12..0000000 --- a/img/flags/4x3/me.svg +++ /dev/null @@ -1,118 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" height="480" width="640" viewBox="0 0 640 480"> - <path fill="#d3ae3b" d="M0 0h640v480H0z"/> - <path fill="#c40308" d="M24 24h592v432H24z"/> - <path d="M424.46 236.1c2.811-.793 12.585-3.65 19.471-9.237 6.887-5.589 8.231-10.066 8.787-12.485.552-2.417.791-4.32-.99-2.932-1.78 1.385-7.123 5.588-10.764 7.61-3.643 2.02-7.008 2.972-8.986 3.529-1.979.552-3.563.909-1.66.156 1.897-.751 8.113-2.934 12.902-7.728 4.788-4.795 8.571-11.982 8.652-16.395.08-4.412-.235-4.098-1.654-2.994-1.419 1.103-6.462 7.329-9.297 9.691-2.837 2.366-7.407 5.517-9.692 6.855-2.286 1.341-5.515 2.838-1.024-.235 4.491-3.07 12.999-10.322 16.468-19.698 3.467-9.377 2.835-14.89 2.757-15.837-.078-.945-.867-2.837-1.654-1.101-.788 1.731-6.464 13.078-11.031 17.962-4.572 4.886-3.468 3.941-4.493 4.728-1.023.788-2.758 2.207-.549-.553 2.207-2.756 6.776-9.14 9.141-15.441 2.361-6.305 2.993-12.609 3.071-16.233.08-3.624-1.496-8.666-2.207-10.161-.708-1.5-1.417-2.601-1.656-.87-.234 1.734-3.859 12.922-5.83 18.358-1.97 5.438-5.907 11.585-6.697 12.767-.786 1.182-2.835 3.624-.63-.473 2.206-4.098 6.46-16.153 7.014-27.577.55-11.426-1.025-17.729-2.601-20.88-1.575-3.153-2.94-4.27-2.94-4.27s.27 7.8-2.058 19.004c-2.33 11.207-5.729 17.123-5.729 17.123s-1.431 1.614-.45-1.075c.665-1.81 2.031-5.79 2.657-12.538.658-7.078.736-15.132-1.331-21.988-2.25-7.467-6.156-11.284-6.156-11.284-1.089 10.712-.873 24.515-4.798 35.704-.735-.657-1.707-1.872-2.094.602-.717 3.676-2.15 10.579-6.981 19.364-4.836 8.786-6.803 9.951-6.803 9.951s-.895-2.152-1.524-3.316c-.625-1.165-.984-1.794-1.791-.18-.802 1.614-3.489 7.8-9.399 14.613-5.907 6.813-9.219 10.13-9.039 15.239.18 5.11 2.864 7.711 6.444 10.04 3.582 2.333 4.21 3.585 3.67 6.365-.536 2.781-3.76 3.765-6.532 3.855-2.778.09-6.268-.18-7.521.537-1.254.718-1.342 2.51-2.596 3.763-1.251 1.257-1.788 1.971-2.954 2.154-.41.063-.742.101-1 .13-.258-13.478 4.965-19.487 4.965-19.487l-14.597-17.15c-.754.371-1.508.718-2.264 1.045a4.084 4.084 0 0 0-.427-.648c-1.943-2.481-2.579-4.584-2.579-7.764.726.072 2.183.597 3.506.331 1.323-.264.33-1.591-.066-2.851-.398-1.263-.795-5.64-.531-7.3.265-1.658.396-2.323.396-2.323s2.12 2.324 3.441 2.324c1.326 0 1.191-1.326 1.39-2.787.299-2.201 1.334-4.979 3.042-6.503 0 0 2.315 1.595 4.964 1.595 2.644 0 6.216-.731 9.06-3.45 2.845-2.72 2.78-3.384 2.78-3.384s5.29 1.857 9.326 2.058c4.035.198 8.336-.467 10.386-4.712 2.051-4.246-.597-8.16-1.057-8.824-.465-.665-1.787-1.196-1.787 0 0 1.195.068 4.378-2.382 5.971-2.448 1.592-4.365 1.524-6.68.795-2.315-.729-5.557-1.659-9.262-1.128-3.322.476-3.772.738-3.829.788.172-.177 3.189-3.27 6.144-4.172 3.043-.928 4.831.332 5.823 1.526.991 1.194 1.851 3.12 2.646.331.793-2.785.331-5.97-.992-8.028-1.324-2.056-4.167-3.384-7.144-3.051-2.978.332-4.034.795-4.034.795s-1.524-4.311-5.359-5.107c-4.68-.972-9.843.787-13.892 3.05 0 0-3.175.733-6.415-.197-2.123-.61-4.245-1.901-5.459-2.717.37-1.24 1.095-3.531 1.095-3.531s.927-.282 1.896-.646c.97-.363.768-.687.89-1.494.12-.807-1.821-2.213-1.821-2.213s-.28-2.425 2.91-4.089c3.189-1.663 2.842-1.386 2.842-1.386s1.871.347 2.634-.208c.762-.555.762-.902.762-.902s1.413-.463 1.932-1.315c.518-.851.614-2.081.234-3.074-.375-.994-.85-1.183-.328-1.657.517-.473.99-1.608 1.036-2.412.048-.807.048-.993.048-.993s1.085-.381 1.035-2.036c-.048-1.657-.943-2.32-1.464-2.463-.517-.141-.846-.141-.846-.141s-.094-.994-.943-2.317c-.852-1.326-1.416-1.893-1.416-1.893s.612-.47.282-1.559-1.086-1.75-1.84-1.99c-.755-.236-1.556 0-1.556 0s-2.5-1.514-3.68-2.129c-1.18-.615-1.464-.756-1.464-.756s-.046-1.041-.47-1.61c-.425-.568-1.417-.805-1.936-.805-.519 0-1.084.285-1.084.285s-4.248-1.09-5.993-1.374c-1.746-.283-1.842-.426-1.842-.426s-3.772-1.798-5.233-2.082c-1.464-.283-1.887-.424-1.887-.424s1.527-1.848 1.62-3.977c.096-2.13-1.319-4.138-2.828-5.037-.852-.505-1.309-.59-1.587-.763l-.031-1.466 2.835.285.234-4.563-2.76.35.423-2.747-5.784-.066.423 2.745-2.783-.19.236 4.497 2.926-.378-.283 1.7s-1.071.182-1.979.851c-1.509.9-2.785 2.652-2.69 4.782.092 2.129 1.366 4.023 1.366 4.023s-.377.095-1.839.377c-1.463.283-5.238 2.082-5.238 2.082s-.095.14-1.84.426c-1.745.283-5.992 1.374-5.992 1.374s-.565-.285-1.086-.285c-.519 0-1.509.237-1.933.805-.425.567-.471 1.61-.471 1.61s-.284.142-1.464.756c-1.18.615-3.68 2.128-3.68 2.128s-.804-.235-1.558 0c-.755.239-1.509.902-1.839 1.99-.33 1.09.282 1.559.282 1.559s-.567.567-1.416 1.893c-.848 1.323-.942 2.318-.942 2.318s-.332 0-.849.14c-.519.143-1.416.806-1.463 2.464-.048 1.654 1.038 2.035 1.038 2.035s0 .188.047.993c.048.806.52 1.94 1.038 2.412.519.474.048.663-.33 1.658-.377.993-.284 2.223.235 3.073.52.852 1.931 1.316 1.931 1.316s0 .346.762.901 2.634.209 2.634.209-.345-.278 2.842 1.386c3.188 1.663 2.91 4.089 2.91 4.089s-1.94 1.406-1.819 2.212c.121.807-.081 1.131.888 1.494.969.364 1.897.646 1.897.646s.725 2.29 1.094 3.532c-1.214.816-3.335 2.107-5.456 2.716-3.241.93-6.418.198-6.418.198-4.046-2.263-9.209-4.023-13.89-3.051-3.837.797-5.36 5.108-5.36 5.108s-1.057-.464-4.033-.795c-2.976-.333-5.822.994-7.146 3.05-1.323 2.059-1.785 5.243-.992 8.029.794 2.788 1.655.862 2.646-.332.993-1.194 2.78-2.454 5.822-1.526 2.955.902 5.971 3.995 6.144 4.172-.059-.05-.506-.312-3.83-.787-3.703-.531-6.945.399-9.259 1.128-2.315.729-4.233.796-6.681-.795-2.448-1.595-2.382-4.778-2.382-5.972 0-1.194-1.323-.664-1.785 0-.462.665-3.11 4.58-1.059 8.825 2.05 4.245 6.35 4.909 10.384 4.711 4.035-.201 9.327-2.058 9.327-2.058s-.064.665 2.78 3.384c2.844 2.72 6.415 3.45 9.063 3.45 2.647 0 4.96-1.595 4.96-1.595 1.709 1.526 2.747 4.304 3.044 6.503.198 1.461.067 2.787 1.39 2.787 1.322 0 3.44-2.324 3.44-2.324s.132.665.396 2.324c.264 1.659-.132 6.036-.53 7.299-.396 1.26-1.389 2.587-.064 2.852 1.323.265 2.778-.26 3.505-.332 0 3.18-.637 5.283-2.58 7.764a4.405 4.405 0 0 0-.408.61 53.879 53.879 0 0 1-2.169-1.006l-14.596 17.15s5.247 6.037 4.963 19.588v-.094c-.265-.026-.619-.068-1.062-.135-1.165-.182-1.7-.897-2.955-2.154-1.252-1.254-1.342-3.045-2.595-3.764-1.252-.718-4.744-.448-7.519-.537-2.777-.091-5.997-1.075-6.536-3.855-.535-2.781.092-4.032 3.671-6.364 3.58-2.331 6.265-4.931 6.445-10.041.179-5.11-3.132-8.427-9.04-15.239-5.909-6.813-8.594-12.999-9.399-14.613-.806-1.614-1.164-.985-1.791.18-.627 1.164-1.521 3.317-1.521 3.317s-1.97-1.166-6.803-9.951c-4.834-8.786-6.267-15.687-6.982-19.365-.389-2.474-1.362-1.257-2.094-.602-3.93-11.188-3.713-24.993-4.8-35.704 0 0-3.906 3.817-6.156 11.284-2.066 6.855-1.988 14.91-1.329 21.989.625 6.747 1.99 10.729 2.653 12.537.984 2.689-.447 1.075-.447 1.075s-3.402-5.916-5.728-17.122c-2.328-11.205-2.06-19.005-2.06-19.005s-1.363 1.117-2.94 4.27c-1.575 3.152-3.15 9.455-2.599 20.88.552 11.426 4.807 23.48 7.014 27.578 2.206 4.096.157 1.654-.632.472-.787-1.182-4.726-7.327-6.697-12.766-1.97-5.436-5.594-16.625-5.83-18.359-.238-1.732-.946-.63-1.657.87-.709 1.497-2.284 6.539-2.206 10.161.08 3.624.71 9.929 3.073 16.233 2.364 6.303 6.933 12.686 9.14 15.441 2.206 2.76.472 1.341-.552.554-1.025-.788.08.156-4.491-4.728-4.57-4.884-10.244-16.232-11.031-17.963-.789-1.735-1.577.156-1.656 1.101-.078.947-.71 6.46 2.758 15.837 3.467 9.377 11.976 16.628 16.469 19.698 4.491 3.074 1.26 1.577-1.025.236-2.284-1.338-6.855-4.49-9.691-6.855-2.837-2.363-7.88-8.59-9.297-9.692-1.419-1.104-1.733-1.419-1.655 2.994.078 4.413 3.863 11.598 8.652 16.395 4.788 4.794 11.001 6.977 12.903 7.728 1.901.753.317.396-1.663-.156-1.977-.555-5.342-1.509-8.984-3.53-3.642-2.023-8.983-6.224-10.765-7.609-1.782-1.387-1.544.515-.99 2.933.555 2.418 1.9 6.897 8.785 12.484 6.887 5.589 16.662 8.444 19.472 9.237 2.811.79.831.79.831.79s-1.109-.155-6.807-1.427c-5.699-1.268-14.328-5.784-16.664-7.251-2.335-1.469-2.689-2.022-2.374 1.069.318 3.09 3.603 9.711 8.866 12.803 5.264 3.091 14.763 4.678 17.217 4.795 2.454.12 1.821.476.713.554-1.109.079-3.84.079-8.312-.434-3.666-.423-9.11-2.203-10.957-2.833-.207-.79-.398-1.554-.485-2.025-.217-1.178-.826-1.004-1.219-.74-.393.258-.61.477-1.914 1.133-1.308.657-1.352-.13-1.395-.522-.044-.396-.305-2.099-.348-2.969-.044-.876-.524-.92-1.131-.657-.61.264-3.528 1.485-4.616 1.968-1.089.479-.087 1.352.479 2.399a147.271 147.271 0 0 0 1.437 2.578s-2.744.743-3.615.962c-.87.219-.609.83-.392 1.443.22.609 1.568 3.667 1.916 4.54.348.873 1.132.35 1.132.35l2.742-1.616.957 3.666c-.046.059-1.267.291-2.655 1.265-1.386.972-1.039 2.224.624 2.712 1.662.486 3.605 1.321 5.753 5.214 2.148 3.895 2.703 10.914 4.02 21.97 1.317 11.05 8.386 16.683 9.357 17.379.97.696.415 1.251.415 1.251s-.97 1.394-.553 3.548c.415 2.152 2.286 3.406 3.256 3.753.97.345.693 1.32.693 1.32s-.486 2.362 0 6.675c.485 4.309 4.02 9.175 4.991 10.01.969.833 1.04 1.252.901 1.6-.138.346-.763.07-1.94.972-1.18.904-2.497 2.155-3.326 3.684-.833 1.531-.555 2.434-.279 4.52.277 2.087 3.327 3.964 3.327 3.964s-.555.139-.692 1.668c-.138 1.53.97 3.267 2.357 4.378 1.386 1.113 4.02 1.67 4.02 1.67s.208 1.32.346 2.223c.138.906 1.872 1.806 2.981 2.433 1.108.625 3.256.279 4.158-.14.9-.415 1.524.07 2.077.972.557.906.348 4.38.348 5.772 0 1.39-.832 2.85-.348 3.546.486.695 1.803.207 3.12-.556 1.317-.767 1.664-.209 2.843.556 1.179.764 3.05 1.461 3.535 1.39.485-.07.278-1.321.278-2.363 0-1.043.187-3.402.672-3.75.23-.165 2.27-.317 3.832-.978.728-.306 1.664-.624 1.733-1.32.069-.695-.97-.695-3.257-1.877-2.287-1.18-2.703-1.88-4.158-2.851-1.456-.972-.762-1.32-.762-1.737 0-.414.692-.903.97-1.46.277-.556.137-1.806.137-1.806s1.18-1.182 1.733-1.809c.555-.624 1.248-1.6 2.01-2.224.762-.624 1.94-3.614 2.703-4.589.762-.972 2.496-2.016 3.534-3.337 1.04-1.322 3.813-3.476 5.407-4.52 1.595-1.042 5.891-3.06 5.891-3.06s-.069 2.573 1.04 3.824c1.108 1.254 2.563-.971 7.484-4.45 4.922-3.475 8.664-4.726 8.664-4.726s1.04 1.598 2.355 3.267c1.317 1.67 2.496-.07 8.526-8.41 4.757-6.582 11.022-12.599 13.455-14.847.449.199.893.399 1.335.603-.114.32-.24.684-.366 1.081-.553 1.728-1.45 2.835-2.625 5.25-1.174 2.417-2.968 2.969-5.041 6.218-2.072 3.246-2.348 5.454-2.556 8.77-.207 3.315 1.657 4.007 1.657 4.007s-3.039 2.968-3.937 5.179c-.897 2.21-1.382 6.7-1.382 6.7s-.484.206-1.588 2.486c-1.106 2.282-3.11 2.624-6.009 5.526-2.903 2.901-6.147 4.145-7.667 5.039-1.519.901-1.105 1.797-.69 2.971.413 1.173 2.486 2.348 4.904 3.246 2.418.897 3.246.552 4.905.483 1.657-.067.345 1.244-.345 1.932-.69.693-1.589 3.108-1.45 5.802.137 2.696 2.141 2.072 4.628 1.658 2.486-.413 5.387-1.658 5.387-1.658l-.276.762c-.276.759-.414 1.31-.414 3.455 0 2.14.345 3.175.967 3.726.623.553 1.866-.62 2.763-.896.899-.28 2.418-1.174 4.628-1.657 2.21-.485 3.037-1.451 3.037-1.451s-.552.689-.69 2.21c-.139 1.52-.069 3.798.278 5.112.343 1.309 1.311 2.899 2.83 4.28 1.52 1.384 1.865.761 2.969-.965 1.105-1.728 3.384-3.94 3.384-3.94s.138.554 1.657 5.458c1.52 4.905 6.492 8.979 6.492 8.979s4.973-4.076 6.492-8.98c1.52-4.903 1.656-5.456 1.656-5.456s2.282 2.21 3.386 3.939c1.105 1.725 1.452 2.347 2.97.966 1.52-1.382 2.485-2.97 2.832-4.281.345-1.314.414-3.593.279-5.112-.141-1.521-.693-2.21-.693-2.21s.83.966 3.039 1.45c2.21.484 3.729 1.379 4.626 1.658.898.276 2.143 1.449 2.764.896.621-.551.968-1.587.968-3.726 0-2.145-.138-2.696-.414-3.455l-.278-.762s2.903 1.245 5.388 1.658c2.486.412 4.488 1.036 4.63-1.658.136-2.694-.763-5.109-1.453-5.802-.691-.688-2.002-2-.345-1.932 1.656.069 2.486.413 4.904-.483 2.416-.898 4.49-2.073 4.905-3.246.414-1.174.83-2.071-.69-2.971-1.52-.896-4.767-2.14-7.667-5.039-2.899-2.902-4.905-3.244-6.01-5.526-1.103-2.281-1.586-2.485-1.586-2.485s-.486-4.491-1.383-6.701c-.898-2.212-3.937-5.18-3.937-5.18s1.866-.691 1.657-4.006c-.207-3.316-.481-5.524-2.554-8.77-2.073-3.248-3.87-3.8-5.045-6.218-1.173-2.415-2.071-3.522-2.623-5.25-.11-.348-.23-.696-.353-1.044.593-.264 1.188-.526 1.782-.781 2.417 2.227 8.71 8.265 13.481 14.866 6.031 8.345 7.21 10.083 8.527 8.412 1.316-1.666 2.355-3.265 2.355-3.265s3.743 1.249 8.664 4.725c4.92 3.477 6.377 5.701 7.484 4.45.586-.658.717-1.752.787-2.59 0 0 2.828.826 6.066 1.96 1.943.681 4.1 1.539 5.702 2.216 4.263 1.804 4.725 2.733 8.116 5.412 3.392 2.679 8.22 2.42 12.794 1.029 4.57-1.39 16.75-5.408 21.63-7.521 4.881-2.117 8.376-3.97 8.89-4.95.513-.978 1.077-3.711 1.077-4.688 0-.98-1.077-2.421-1.438-2.68-.357-.26-.203-1.032-.102-1.649.102-.62-.204-2.473-.974-3.3-.77-.825-.667-1.131-.565-3.505.217-5.027-3.37-11.364-8.454-13.382 0 0-.137-.585-.549-.93-.408-.343-1.095-.652-1.095-.652s.1-2.891.067-3.512c-.033-.62.24-.547.587-.378.342.171.89.861 1.713 1.068.823.206 1.338-.381 1.51-1.308.17-.928.857-2.787 1.166-3.717.31-.927-.07-1.066-.447-1.168-.377-.105-1.611-.24-2.196-.381-.582-.137-.582-.171-.446-.48.14-.308.344-.79 1.097-1.962.756-1.17.07-1.205-.653-1.443-.72-.242-3.976-1.24-4.869-1.379-.894-.138-1.099.62-1.099.998 0 .38.034 2.03.069 2.65.034.62-.548.447-.891.276-.345-.171-1.133-.655-1.749-1.137-.618-.48-1.064-.033-1.305.656-.24.687-.993 3.511-1.233 4.336-.24.827-.173 1.479.171 1.616.343.139 1.954 0 2.916 0 .958 0 .41.552.41.552s-1.03 1.686-1.373 2.338c-.342.656-.926.759-1.715.759s-2.112-.01-2.112-.01-5.27.198-9.151 3.084c-3.879 2.884-4.973 5.27-5.57 6.661-.597 1.395-1.291 1.094-1.891 1.593-.596.498-2.286 2.289-2.286 3.384 0 1.094.397 1.689-1.292 2.783-1.693 1.095-3.085 5.869-.796 8.356 2.287 2.484 3.183 4.97 3.88 6.165.693 1.194 0 1.69-.598 1.69-.596 0-1.842-1.013-2.883-1.79-1.041-.776-6.296-4.88-8.553-6.563-2.26-1.686-.597-1.492-.597-1.492s.574.052 1.893-.503c1.315-.556 1.525-1.25.205-1.668-1.315-.415-3.88-1.876-4.572-2.572-.694-.695-1.039-1.46.278-2.156 1.315-.694 4.227-2.572 1.941-3.198-2.289-.628-4.992-1.111-7.21-1.738-2.219-.626-2.428-1.251-2.428-1.251l1.458-2.087s1.178-1.666-.208-1.876c-1.386-.21-4.713-.626-7.763-1.949-6.091-2.638-9.907-7.113-11.322-12.574l.101-.132c1.138 2.251 3.787 6.459 7.782 6.589 5.46.18 6.085-1.525 4.833-3.318-1.253-1.792-2.685-3.406-3.042-3.943-.36-.539-.45-1.257.982.09 1.433 1.347 4.16 5.916 12.396 5.379 8.234-.537 8.193-2.153 8.193-2.6 0-1.581-1.677-1.831-2.665-2.823-.516-.517-.83-1.269.832-.634 1.662.634 5.736 1.386 11.28.196 2.187-.466 7.986-2.998 8.547-5.943 0 0-3.68-.201-6.252-1.31-2.574-1.111-4.117-2.02-1.386-1.465 2.732.554 8.036 1.662 12.705.08 2.729-.927 6.255-3.135 6.254-7.175 0 0-5.066-1.07-6.926-1.744-1.86-.674-2.454-1.188-2.454-1.188s7.24 2.296 13.812-1.032c6.57-3.329 6.846-7.886 6.846-8.957 0-1.071-.157-1.389-.157-1.389s-5.976 1.469-10.448 1.428c-4.473-.039-5.859-.436-5.859-.436s12.509-.357 18.8-4.202c6.292-3.844 6.651-11.416 6.651-11.416s-7.127 2.536-11.597 3.054c-4.471.513-7.204.513-8.311.433-1.109-.078-1.74-.433.712-.553 2.457-.117 11.952-1.706 17.217-4.796 5.265-3.093 8.549-9.714 8.867-12.802.316-3.092-.039-2.537-2.376-1.07-2.336 1.467-10.962 5.984-16.66 7.251-5.699 1.272-6.808 1.428-6.808 1.428s-2.19-.105.63-.885zm-225.15 14.37c-.609.35-2.525 1.44-2.525 1.44s-1.002-2.052-1.263-2.663c-.26-.612-.13-.874.216-.874.35 0 1.395-.304 2.222-.392.118-.013.226-.031.322-.054.276.788.64 1.641 1.116 2.498-.03.03-.06.045-.09.06zm76.77 44.955c-1.526 2.853-5.684 5.843-8.733 7.162-3.05 1.32-6.377 1.739-7.763 1.946-1.386.208-.208 1.878-.208 1.878l1.455 2.088s-.207.624-2.426 1.251c-2.218.624-4.92 1.11-7.207 1.737-2.288.624.624 2.502 1.94 3.2 1.316.693.97 1.459.277 2.154-.693.696-3.257 2.155-4.574 2.572-1.317.417-1.11 1.115.207 1.67 1.317.553 4.922 1.249 4.922 1.249s-.069.14-2.286 1.809c-2.219 1.668-6.1 2.781-8.664 2.919-2.565.138-6.62.306-11.762.069-5.14-.234-5.731-.352-5.731-.352s-.177-1.716-.533-4.257c-.354-2.54-1.89-6.146-3.072-7.799-1.183-1.656-3.663-4.965-3.663-4.965s.059-.71.236-1.536c.177-.826.058-1.714-.542-3.276-.601-1.563-3.604-3.844-3.604-3.844s-.122-1.682-.122-3.245c0-1.561-1.08-7.689-2.043-10.572-.96-2.883-5.646-10.452-7.809-14.056-2.163-3.603-3.447-8.946-4.1-13.094-.655-4.149-.392-5.502-.175-6.594.096-.478.3-.913.492-1.3a12.887 12.887 0 0 0 3.477 3.123c6.293 3.844 18.8 4.201 18.8 4.201s-1.386.398-5.858.437c-4.471.039-10.447-1.428-10.447-1.428s-.159.318-.159 1.389c0 1.07.279 5.628 6.847 8.956 6.569 3.33 13.812 1.032 13.812 1.032s-.594.515-2.454 1.188c-1.86.675-6.925 1.745-6.925 1.745 0 4.039 3.526 6.247 6.252 7.174 4.671 1.584 9.973.474 12.706-.08 2.73-.554 1.188.353-1.386 1.466-2.57 1.109-6.252 1.31-6.252 1.31.564 2.944 6.363 5.476 8.549 5.943 5.541 1.189 9.616.438 11.28-.197 1.663-.634 1.345.117.831.635-.989.991-2.666 1.242-2.666 2.823 0 .448-.042 2.062 8.193 2.599 8.235.537 10.962-4.032 12.395-5.379 1.432-1.345 1.342-.628.984-.09-.357.536-1.79 2.151-3.042 3.944-1.254 1.792-.627 3.498 4.833 3.318 4.021-.132 6.682-4.398 7.806-6.636l.075.103c.073.1.148.2.22.294-.51 1.32-1.395 3.48-2.37 5.31zm66.42-178.14c-.744-1.417-1.139-2.085-1.139-2.085s3.102 1.455 4.949 3.542c1.845 2.089 1.804 3.19 2.08 4.216.276 1.025 0 2.913-.274 4.686-.276 1.772-.276 2.837.08 3.467.352.63.667.945.667.945s-1.377.354-2.671.867c-1.296.513-2.984.984-3.926.196-.944-.787-1.177-1.34-.588-1.851.588-.513 2.785-1.143 3.062-4.923.27-3.781-1.485-7.641-2.235-9.06zm-16.92 10.286c.708-1.796.999-3.51.458-7.188-.455-3.092-1.055-5.74-1.208-9.071 0 0 2.292.503 5.585 3.512 3.289 3.009 4.042 6.102 4.042 7.608 0 1.503-.793 3.343-.918 4.807-.124 1.463.415 2.759.415 2.759s-1.209.499-2.29 1.25c-1.083.754-1.833 1.214-3.5 1.13-1.668-.084-2.668-.835-3.627-1.338-.958-.502-1.58-.585-1.58-.585s1.904-1.086 2.61-2.884zm-16.05-12.747c3.292-3.008 5.583-3.512 5.583-3.512-.151 3.332-.751 5.979-1.209 9.07-.54 3.679-.249 5.393.459 7.189.71 1.798 2.625 2.884 2.625 2.884s-.624.084-1.584.585c-.957.501-1.958 1.254-3.626 1.338-1.666.083-2.416-.376-3.499-1.13a13.957 13.957 0 0 0-2.292-1.25s.541-1.296.415-2.759c-.124-1.462-.914-3.303-.914-4.808.015-1.505.765-4.598 4.05-7.607zm-11.865 18.295c-.944.788-2.631.317-3.929-.196-1.296-.513-2.67-.867-2.67-.867s.314-.314.668-.945c.354-.629.354-1.694.078-3.467-.275-1.773-.55-3.661-.275-4.686.275-1.026.236-2.127 2.081-4.216 1.846-2.087 4.948-3.542 4.948-3.542s-.393.668-1.138 2.085c-.747 1.419-2.514 5.279-2.238 9.062.276 3.78 2.475 4.408 3.063 4.923.585.51.345 1.062-.6 1.849zm43.86 31.617c-3.243 1.793-5.094 1.394-4.962 2.72.134 1.327 3.04 2.323 3.04 2.323s-2.976 3.185-5.292 4.646c-2.312 1.459-5.029 2.388-5.029 2.388s-.924.133-.396 1.593c.531 1.459 1.456 2.454 2.183 2.853.727.397 1.126.53 1.126.53s-4.035 4.313-5.821 5.707c-1.787 1.393-2.78 1.857-4.233 2.455-1.457.597-.726 2.985-.398 4.049.33 1.059 1.587 2.52 2.316 2.719.725.2.992.729.066 2.19-.693 1.089-3.002 3.986-4.103 5.583l-.067.035c-1.093-1.587-3.433-4.521-4.13-5.618-.925-1.461-.661-1.99.066-2.19.728-.2 1.986-1.659 2.316-2.72.329-1.063 1.058-3.451-.4-4.048-1.454-.598-2.447-1.062-4.232-2.455-1.786-1.394-5.821-5.706-5.821-5.706s.397-.134 1.125-.531c.729-.4 1.654-1.394 2.184-2.853.528-1.46-.398-1.593-.398-1.593s-2.712-.929-5.028-2.388c-2.313-1.461-5.292-4.646-5.292-4.646s2.91-.996 3.044-2.323c.132-1.328-1.72-.929-4.962-2.72-3.242-1.791-4.3-4.047-4.3-4.047s3.77-1.261 5.623-5.043c.655-1.34.813-2.562.744-3.585l.142.048c6.021 1.96 13.06 2.745 19.35 2.745 6.281 0 13.316-.789 19.325-2.745l.142-.048c-.07 1.023.087 2.245.743 3.585 1.852 3.782 5.625 5.043 5.625 5.043s-1.05 2.265-4.29 4.065z" fill="#b96b29"/> - <path d="M361.205 237.75c0-10.178 4.683-16.614 4.683-16.614l-12.74-14.595c-12.133 4.69-23.25 4.976-33.147-.06-9.897 5.035-21.013 4.75-33.144.06l-12.744 14.595s4.685 6.436 4.685 16.614c0 10.179-1.968 17.73-3.119 22.654-1.149 4.925-2.133 14.117.494 20.685 2.625 6.564 5.416 12.311 16.743 17.072 11.326 4.761 17.236 7.221 21.175 10.506 3.941 3.28 5.91 5.907 5.91 5.907s1.97-2.628 5.91-5.907c3.938-3.283 9.848-5.745 21.176-10.506 11.325-4.761 14.117-10.507 16.743-17.071 2.625-6.569 1.641-15.761.492-20.685-1.14-4.92-3.105-12.465-3.105-22.65z" fill="#d4af3a"/> - <path d="M357.2 241.95c-1.597-9.722 4.006-18.284 4.006-18.284L350.3 210.915c-8.403 4.72-20.097 4.086-30.261-.59-10.161 4.675-21.86 5.31-30.26.59l-10.906 12.752s5.604 8.561 4.003 18.283c-1.6 9.72-5.044 25.104-4.183 31.378.861 6.276 5.292 13.536 9.845 17.351 4.552 3.814 11.32 7.016 16.117 8.738 4.8 1.722 9.477 5.044 11.693 6.768 2.213 1.721 3.69 3.2 3.69 3.2s1.477-1.477 3.692-3.2c2.216-1.724 6.891-5.045 11.688-6.769 4.8-1.722 11.57-4.923 16.121-8.737 4.554-3.814 8.983-11.076 9.844-17.35.855-6.3-2.595-21.676-4.2-31.396z" fill="#b96b29"/> - <path d="M356.15 243.105c-1.58-10.497 3.156-18.953 3.156-18.953l-9.845-10.962c-8.32 4.274-18.433 3.17-29.45-.65-11.017 3.82-21.128 4.922-29.45.65l-9.846 10.962s4.739 8.456 3.159 18.953-3.995 22.386-3.531 29.355c.031.478.082.966.151 1.458h8.967s.52-.605 1.518-1.03c.996-.431 1.281-.717 1.281-.717s.191-1.811 1.283-2.192c1.092-.383 1.567-.383 1.995-.383.427 0 .76-.094 1.282-.619.524-.523 1.946-1.809 2.564-3.62.618-1.81.999-2.526.999-3.717 0-1.189.427-3.094.427-3.094s-.238-.572-1.14-.237c-.903.333-1.045-.572-1.138-1.478-.096-.906-.048-2.761.474-3.619.522-.858.713-1.145.713-1.145l-.382-1.426s-5.698 1.141-6.694-3.288c-.998-4.43-1.188-6.576-1.33-7.049-.143-.478-.285-.718-1.046-.667-.76.046-2.374-.476-3.514-2.765-1.14-2.286-1.235-3.238-.903-4.143.332-.906.95-.571 1.14-.286.188.286 1.71 2.478 2.327 1.857.617-.62.285-.62-.57-2.334-.855-1.715-.57-2.285-.475-3.146.094-.856-.284-2-.284-2.476 0-.474.522-.857 1.044-.62.524.239.998.62 1.235.907.237.285.333.717.808.43.476-.286.19-1.86.19-2.382 0-.525.617-.906 1.378-.477.759.429 1.138 1.238 1.138 1.809 0 .573.048 1.097.333 1.097.285 0 .618-.859.665-1.432.046-.568.38-1.428.903-.712.523.712.712 1.764.523 2.857-.19 1.094.19.525-.19 2.43-.378 1.907-.569 2.763-.522 4.193.048 1.428.095 2.238.807 4.002.713 1.762 1.281 3.808 2.611 3.856 1.331.047 1.71.047 1.71.047s1.472-2.857 2.613-3.525c1.14-.666 2.754-.764 3.894-.906 1.14-.144 1.614-.477 1.614-.764 0-.286-.379-.379-1.756-.571-1.376-.189-2.516-.525-2.562-1.572-.048-1.047.235-1.953-.666-2-.902-.048-3.134-.766-3.94-2.239-.808-1.478-.619-1.812-.523-2.619.095-.81 1.139-2.432 1.805-.906.666 1.525 1.093 1.714 1.662 2.047.57.336 1.329.431.951-.619-.381-1.047-.618-1.713-.524-2.474.095-.764.618-1.094 1.236-1.238.617-.144 2.47-.717 3.419-.906.948-.19.997-.284.997-.284s.095-.667 1.33-1.048c1.234-.381 2.041-.428 2.944-.428.901 0 1.566.142 2.754-.43 1.188-.57 2.136-.665 2.896-.618.76.048 1.331.334 1.901.714.57.382.38.906.38 1.429 0 .525.094.81.901.81.81 0 1.522 0 2.281.285.762.286 1.806.714 1.14 1.524-.663.811-.709 1.716-1.14 1.668-.424-.048-.378.429-.57.716-.189.283-.331.523.146.81.471.284.52.571 1.187 1.189.663.62 1.66 1.287.663 2.288-.995.999-2.753 1.81-2.753 1.81s-.999.474.141 1.145c1.14.664 1.664 2.047 2.091 2.284.426.238.855.62 1.14.762.284.144.237 1.095.237 1.095s-.616.43-1.471.763c-.855.335-1.758.716-2.564.716-.808 0-1.236 0-.903.762.332.76.903 1.573 1.044 2 .143.428.333 1.192.333 1.192s1.328.283 2.517.283c1.187 0 1.71.048 4.322-.237 2.611-.283 3.373-.38 5.89-.096 2.519.285 2.895.192 3.561.43.665.238 1.329.574 1.329.574s3.563-.05 5.51-.477c1.947-.429 2.424-1.67 2.14-2.334-.285-.668-.24-1.667-3.658-2.145-3.417-.479-4.796-.287-7.505-.812-2.706-.523-6.934-1.905-7.692-5.286-.762-3.382 1.994-4.81 3.372-5.476 1.377-.669 4.368-1.716 5.747-2.286 1.375-.573 3.895-1.143 6.553-.763 2.658.382 4.178 1.094 5.223.476 1.044-.619 1.9-.144 1.71.809-.187.953-1.234 2.907-4.227 3.812-2.991.906-6.598 1-8.547.477-1.948-.527-3.418-1.287-4.606-.86-1.187.429-2.517 1.907-1.236 3.667 1.285 1.766 7.839 2.288 9.594 2.477 1.758.194 8.263-.285 10.116 2.954 1.85 3.241.378 6.859-1.805 7.67-2.184.809-4.036 1.335-5.698 1.572l-1.662.237s.759 1.716.759 2.432c0 .714-.095 2.047.714 2.57.807.526 1.948.905 3.325.763 1.377-.141 3.039.81 3.135 2.049.093 1.238.474 2.952.615 5.43.144 2.477 0 4.526 0 4.526s-.094.954-.426 1.857c-.333.906-2.043 4.414-2.043 4.414h9.563c.069-.492.12-.978.153-1.458.39-7.065-2.025-18.945-3.6-29.445z" fill="#1d5e91"/> - <path d="M281.63 278.58c1.875 5.356 5.739 10.78 11.622 14.323 8.175 4.923 11.706 4.274 19.416 9.29 7.712 5.016 7.247 5.853 7.34 5.853.093 0-.372-.839 7.34-5.853 7.71-5.018 11.24-4.367 19.415-9.29 5.885-3.543 9.747-8.967 11.62-14.323h-76.737z" fill="#6d8c3e"/> - <path d="M288.32 237.195c.877.922 1.526 1.203 2.865 1.065 1.341-.142 1.663.833 1.895 1.895.23 1.063.23 3.557 1.201 5.867.969 2.31 4.205 2.45 4.205 2.45.09-1.115.478-2.613.97-3.836.087-.219.507-1.249-.648-1.249s-1.109-.462-1.802-1.57c-.691-1.109-2.032-4.066-2.354-5.962-.323-1.894.277-4.713.6-5.728.324-1.017.37-1.71 0-1.895-.371-.186-1.109 0-1.109 0s.278.878-.048 1.016c-.323.141-.6-.462-.83-1.107-.232-.648-.508-.555-.97-.51-.462.046-.462.463-.138.925.323.461.138 1.292.138 1.292s-1.017-.738-1.433-.924c-.415-.183-1.386.186-1.479.741-.091.552.371 1.984 1.249 2.724.877.741.877 2.265.6 2.96-.276.691-1.571.598-1.848.277a.788.788 0 0 0-1.202 0c-.375.42-.75.66.135 1.575zM287.81 234.75s-.508-.414-.693-.645a35.123 35.123 0 0 1-.555-.743s-.093.231-.093.786.6 1.157.6 1.157l.735-.555zM289.745 228.33c.417-.184.74-.279.417-.74-.324-.461-.602-.97-.925-1.063-.325-.091-.6-.045-.6-.045s.368.833.46 1.341c.09.51.24.69.645.51zM292.16 226.38c-.046.415.046.602.415.415.371-.185.509-.692.323-1.063-.184-.369-.6-.645-.6-.645l-.278-.188c-.03 0 .166 1.065.12 1.47zM295.61 226.935c.045-.462-.14-.969-.14-.969s0 .553-.23.879c-.231.323-.185.231.046.508.225.285.27.045.315-.42zM301.04 250.425c.68 1.575 2.406-.892 3.975-2.888 1.568-1.993 1.517-.469 1.307 1.156-.209 1.627.418 3.36 1.047 4.462.627 1.098 1.15.47 1.41-.318.262-.783.47-2.41.994-3.198.524-.787 1.046-.105 1.098.576.053.681.888 2.205 1.673 3.095.783.894 1.15-.314 1.411-1.415.261-1.101.575-2.781.785-3.465.208-.681.94-.103.94-.103s.525.525 1.57 1.52c1.043 1 1.15-.577 1.255-1.36.103-.789-.158-2.52.156-2.784.313-.261 1.201.369 2.563 1.053 1.359.68 1.308-.631 1.152-1.367-.159-.732-.94-2.412-2.04-3.355-1.098-.945-1.254-2.046-.888-2.52.365-.47 1.673-.053 2.508-.156.839-.105 1.257-.209 1.884-.312.627-.107.627-.737.627-.737s-.47-.786-1.359-1.572c-.891-.789-1.41-1.416-2.51-1.68-1.099-.262-2.614 0-2.614 0l-.157-.315c-.156-.313-.47-.313-.68 0-.21.315-.732.735-1.152 1.101-.417.368-.68.578-.94.419-.263-.156.208-.525.208-.525s.576-.417 1.1-1.469c.522-1.05.679-2.047.26-2.518-.418-.474-1.568 0-2.195 0-.629 0-.995.103-1.046-.21-.054-.315.627-.156 1.412-.264.786-.104 1.255-1.049 1.516-1.836.261-.788.471-.683.942-.21.47.472.891.367.993.051.102-.315.524-1.1 1.046-1.889.523-.786.837-1.887.26-2.62-.575-.735-1.987-.633-2.561-.156-.575.47-.941.942-1.097 2.095-.157 1.155-.471.524-.471.156 0-.367-.471-.945-.262-1.416.21-.469 0-.997 0-.997s-.104-.995-1.203-1.206c-1.1-.212-2.354.052-3.452.315-1.098.262-.89 1.209-.89 1.209s-.836.05-1.726.156c-.888.103-1.935.47-2.772.68-.835.211-1.15.314-1.15.733 0 .421.157 1.104.157 1.104s.68 0 1.046.208c.366.212.156.578-.263.735-.417.16-.574.21-.574.734 0 .526.21.631.627.631.417 0 1.308 0 2.353.47 1.047.471 1.308 1.414 1.203 1.94-.105.526-1.57 1.207-2.302 1.207s-.941.159-.941.63c0 .472.89.421.89.421s.888.051 2.614.26c1.727.211 1.988.579 2.774 1.26.783.682.208.84-.158 1.048-.366.212-.942.683-1.516.894-.576.209-.942.63-1.466.732-.523.105-1.831.054-4.236 1-2.406.943-3.243 4.093-3.243 4.093s.314-.107 1.412-.686c1.098-.576 2.458-1.206 3.714-1.992 1.254-.784 1.254.37.627 1.469-.627 1.101.576.891.942.577.366-.316.837-.63 2.038-1.26 1.205-.628.785.368.785.368s-.366.733-.47 2.467c-.105 1.731 1.725.104 2.562-.997.837-1.101 1.203 0 .575 1.26-.627 1.26-1.83 2.254-2.51 2.254-.681 0-1.203-.733-1.255-1.153-.053-.42.21-1.68-.209-1.994-.42-.313-1.623.053-2.511.576-.89.525-1.1.107-1.308-.366-.21-.472.314-.63.105-.943-.21-.317-.68 0-1.047.156-.366.156-1.203.63-2.823 1.468-1.623.839-1.516 1.31-1.516 2.517 0 1.208.3 1.485.975 3.06z" fill="#d4af3a"/> - <path d="M316.73 224.16c.34-.216.959-.464.959-.464s.772-.184 1.482-.279c.709-.093.586-.495.43-.832-.153-.344-.43-.465-1.354-.465-.929 0-1.517.465-2.04.678-.527.217-1.143.372-1.143.372s.124.154.463.65c.33.524.855.584 1.185.36zM320.51 227.91c.37 0 .772-.217.772-.217s.677-.341 1.298-.556c.617-.217.864-.31 1.233-1.051.37-.741-.402-.741-1.48-1.017-1.082-.282-1.607.09-1.729.492-.126.402-.094.864-.526 1.638-.435.765.06.705.435.705zM320.165 228.855c-1.048 0-2.221 1.575-2.655 1.853-.433.277-.186.554-.186.554s.309.65.43 1.266c.127.62.157 1.67.157 1.67s.154.063.77.063c.62 0 .989-.31 1.577-.743.588-.432 1.05-.588 1.884-.742.836-.153 1.235-.308 2.16-.801.929-.494-.493-1.359-1.48-2.162-.99-.765-1.605-.93-2.655-.93zM306.2 232.485c.831-.093 1.202-.507 1.202-.969 0-.462-.42-.97-1.48-.877-2.602.23-5.125-.702-5.59-3.281 0 0-.877 1.614.74 3.419 1.635 1.8 4.305 1.8 5.145 1.71zM297.335 273.465c.132.23.294.372.459.458h3.987c.68-.191.684-.817.717-1.249.039-.514.433-1.975.986-4.626.552-2.647 1.498-4.542 1.891-5.61.393-1.068-.395-1.422-.67-2.095-.276-.67-.71-1.856-.828-2.448-.119-.594-1.064-.514-1.577-.475-.513.038-.593.87-.67 1.66-.078.787-.434 3.122-.827 5.138-.395 2.015-2.68 4.703-3.31 5.294-.632.594-1.143.831-1.577.831-.433 0-1.379 0-1.853.278-.47.278-.943 1.029-.984 1.619-.039.593.908.91.908.91s.749-.435 1.024-.79c.276-.356.906-.436 1.536-.553.63-.118.71.117.473.432-.24.3-.165.375.315 1.215zM291.23 273.255c-.301.106-.522.406-.658.655h2.605c-.032-.213-.102-.466-.252-.655-.315-.39-1.155-.195-1.695 0z" fill="#d4af3a"/> - <path d="M294.77 273.18c-.318.172-.702.455-.897.734h2.805c.099-.261.13-.611-.213-.891-.63-.526-1.26-.09-1.695.15zM319.1 272.025c-.306 0-.578.273-1.018.578-.44.305-.575.781-.642 1.156a.253.253 0 0 0 .016.162h1.191a.217.217 0 0 0 .08-.162c0-.342.135-.648.645-1.089.524-.45.044-.645-.256-.645zM321.44 273.315c0-.372-.137-.713-.406-.678-.27.035-.711.51-1.083.781a2.367 2.367 0 0 0-.476.504h1.761c.105-.21.21-.435.21-.615z" fill="#d4af3a"/> - <path d="M332.27 260.37c.845-.612.711-.781.743-1.427.033-.646.033-.848-.305-1.085-.339-.24-1.59-.782-2.775-.782-1.185 0-3.421.272-4.268.848-.847.579-1.254 2.65-1.254 3.735 0 1.084.17 1.257.474 1.257.305 0 .813-.782.813-.782s1.116 1.461 1.794 2.481c.678 1.019.372 1.425.071 2.205-.306.782-1.422 2.853-2.303 3.296-.883.442-1.56.031-2.608-.135-1.049-.171-1.626.135-2.235.745s-.032 1.089.339 1.089c.373 0 .88-.034 1.287.474.282.353.091 1.158-.051 1.623h5.188c.885-.393 1.496-1.608 1.734-2.271.273-.746 1.39-1.73 1.932-2.238.54-.511.61-.85.61-1.971 0-1.12-.305-1.766-.715-2.546-.406-.781-.71-1.903-.576-2.547.09-.69 1.215-1.395 2.055-2.01z" fill="#d4af3a"/> - <path d="M323.735 247.425c.519.843.261 1.004-.484 1.164a8.541 8.541 0 0 1-2.717.195c-1.163-.098-1.133.065-1.163.648-.031.582-.132 1.812-.81 2.716-.679.906-1.52.551-2.038.195-.518-.355-.809-.26-1.002.387-.194.648-.55 1.101-1.1 2.07-.55.971-.906 1.004-1.294.906-.389-.097-.744-.679-1.133-.712-.388-.033-1.003-.807-1.585-1.748-.582-.936-.873.096-1.26.908-.39.807-.776 1.392-1.521 1.291-.744-.094-1.584-1.486-2.004-2.328-.422-.843-.68-1.65-1.326-1.618-.647.033-1.715 1.392-2.427 1.746-.713.357-.906.228-1.229-.224-.322-.453-.744.162-1.164 1.229-.42 1.068.033 1.971.615 2.263.582.291 1.746-.55 2.523-1.068.776-.516 1.131-.387 1.941-.387.809 0 .744 1.328 1.1 3.266.355 1.941 1.488 2.2 1.488 2.2s.388.324 1.261-1.162c.873-1.488.97-2.945 1.812-2.945.84 0 .906.194 1.746 1.358.842 1.164 1.553 2.037 2.037 1.164.485-.875.906-2.168 1.457-2.619.549-.455 1.066-.584.484.258-.583.841-.841 1.746.356 1.392 1.197-.354 5.757-2.2 7.6-2.555 0 0 2.166-.355 4.658-.484 2.49-.132 3.103-.293 4.075-.293.97 0 1.002-.097 1.068-.744.063-.648-.453-.517-2.265-.517-1.81 0-3.073.226-4.335.421-1.261.194-1.842.161-1.618-.162.228-.324.583-.55 2.04-.775 1.453-.227 4.431-.39 5.983-.422 1.551-.031 1.067.453.936 1.488-.13 1.034.131 2.556.228 3.527.095.969.128 1.261.97 2.619.841 1.357 3.75 2.2 4.592 2.653.842.453.713 0 .68-.81-.033-.807.646-.775 1.39-.355.743.423 1.973.778 2.846 1.005.873.223 1.002.387 1.002.84 0 .453.097 1.456.196 2.395.095.938.063 1.227-.325 1.811-.389.583-2.037 2.262-2.037 2.262s-.744 0-2.33.391c-1.585.389-2.071 1.133-2.231 1.78-.161.646.292.841.357 1.099.034.142.02.492.002.777h.366c.133-.227.322-.524.568-.843.552-.711 1.944-.873 2.847-.453.594.277.602.898.538 1.294h3.623c.489-.943 1.649-3.199 1.953-3.883.387-.872.613-1.422.646-2.619.033-1.197.161-5.822-.064-6.081-.227-.26.064-1.035 0-2.33-.066-1.293 0-2.265-2.394-2.49-2.396-.226-3.138-1.227-3.947-2.038-.811-.807-.615-2.684-1.26-4.947-.648-2.264-2.232-2.62-5.046-3.171-2.815-.548-4.885-.614-6.987-.419-2.101.195-4.72.486-6.177.354-1.425-.18-1.2.24-.675 1.08z" fill="#d4af3a"/> - <path d="M337.325 273.405c-.246.159-.41.348-.519.513h2.445a.954.954 0 0 0-.24-.708c-.36-.45-1.08-.195-1.68.195zM341.705 273.24a2.222 2.222 0 0 0-.811.678h2.479a.966.966 0 0 0-.014-.286c-.075-.39-.825-.81-1.65-.39zM280.625 274.785c.138.768.318 1.546.541 2.33h77.678c.224-.782.405-1.562.54-2.33h-78.759zM332.975 237.675c2.454 1.633 10.245 1.72 13.903 2.454 3.659.73 3.404 3.53 2.282 4.992-1.119 1.466-6.266 1.641-7.188 1.764.498.345 1.248 1.42 1.248 1.42s.561-.04 2.109-.172c1.548-.128 4.261-.514 6.112-2.066 1.852-1.548 1.721-4.044.088-5.722-1.637-1.68-4.349-1.851-7.104-2.152-2.754-.302-4.907-.518-8.006-1.034-3.097-.516-4.605-1.764-4.605-3.573 0-1.808 1.68-2.754 2.885-3.099 1.204-.344 3.14-.858 4.863-.216 1.722.646 3.745.73 7.146.303 3.402-.432 4.176-2.799 4.176-2.799s-.432.216-2.153.258c-1.722.042-2.971-.73-6.111-.777-3.145-.042-4.264 1.08-5.727 1.595-1.464.517-5.379.906-6.541 3.444-1.155 2.55.18 3.75 2.64 5.385z" fill="#d4af3a"/> - <ellipse rx="1.466" ry="1.443" cy="225.96" cx="312.56" fill="#b96b29"/> - <path d="M344.03 228.42c-1.94-.171-4.479.344-4.479.344s.472.388 1.119.344c.645-.043 1.809-.087 3.702.257 1.895.346 3.272-.56 3.272-.56s-1.68-.21-3.615-.39z" fill="#b96b29"/> - <path d="M325.61 264.57c-.474-.747-.61-.678-1.155-.203-.541.474-1.087-1.156-1.155-2.173-.067-1.016.407-4.138.407-4.138s-2.648.543-4.071 1.017c-1.424.475-2.781.612-3.935.885-1.153.272-1.764.54-2.374.406-.611-.135-1.901-.204-2.918-.204-1.017 0-.948.204-1.968 1.221-1.017 1.016-1.288 1.558-2.103 3.46-.815 1.898-1.086 3.662-1.356 5.969-.179 1.51-.471 2.553-.654 3.096h12.162c.145-.39.334-.88.5-1.244.317-.701.986-1.147 1.465-1.37.478-.224.894-.224 1.115-.762.222-.543.829-.99 1.467-1.277.637-.286 1.752-.127 2.773.159 1.018.285 1.37-.414 1.655-.796.286-.383.415-.924.958-1.623.541-.704.135-1.341.135-1.341s-.495-.33-.975-1.08zM345.125 264.9c-.158-.702-.095-.795-.51-.894-.414-.096-1.115-.222-1.719-.475-.605-.256-.541 1.369-.541 1.369s-1.436.156-3.059-.032c-1.624-.192-3.535-1.656-4.206-2.136-.667-.477-1.402-1.56-1.402-1.56s-.51.477-1.02.765c-.51.288-.797 1.307-.891 2.327-.096 1.02 1.179 2.26 1.273 3.28.096 1.022-1.114 3.06-1.72 3.888-.413.569-.948 1.78-1.244 2.486h5.871c.123-.302.324-.683.63-.987.603-.606 1.626-.734 1.626-.734s0-.255.222-.795c.22-.541.828-1.179 2.292-1.753 1.467-.573 3.219-.669 3.219-.669s.699-.573 1.21-1.37c.51-.795.135-1.995-.03-2.7z" fill="#1d5e91"/> - <path d="M296.225 329.655c1.093.364 3.136-.436 4.158-1.677 1.02-1.24 1.386-3.14 2.115-4.232.729-1.095 1.259-1.906 1.259-1.906s-.156 1.803-1.124 4.22c-.922 2.303-1.083 5.455-.864 6.805.438 2.698 2.189 3.136 3.21 2.77.776-.276 1.95-1.471 3.029-3.265.34-.569.579-1.355.912-1.986.693-1.313 1.312-3.463 1.618-3.404.675.132.243 1.652-.012 2.673-.511 2.042-1.531 5.034-1.605 6.858-.073 1.824.147 5.106 1.97 5.253 1.824.146 2.772-1.46 3.792-5.18 1.021-3.719 1.242-4.889 1.678-4.889.438 0 .438 2.553.438 3.648 0 .377.015 1.413.164 2.455.283 1.994.865 4.388 1.441 4.914.875.803 1.605.656 1.605.656s.728.148 1.605-.655c.875-.803 1.604-6.277 1.604-7.37 0-1.094 0-3.648.436-3.648.441 0 .657 1.168 1.679 4.888 1.023 3.72 1.969 5.327 3.793 5.181 1.824-.147 2.045-3.429 1.971-5.253-.073-1.824-1.093-4.816-1.606-6.858-.512-2.043.219-1.897 1.606.73.432.82.88 1.825 1.32 2.527.972 1.546 1.917 2.473 2.619 2.724 1.02.366 2.772-.072 3.21-2.77.438-2.702-1.605-10.435-1.605-10.435l.876 1.314c.729 1.094 1.093 2.991 2.116 4.232 1.02 1.24 3.065 2.041 4.158 1.677 1.094-.365 1.241-2.409.437-6.057-.802-3.648-4.086-5.69-6.42-8.609-2.148-2.682-3.803-7.404-4.051-8.143-2.939 1.455-5.516 3.106-7.844 5.538-4.829 5.037-5.877 6.295-5.877 6.295s-1.05-1.258-5.877-6.295c-2.345-2.447-4.936-4.101-7.897-5.564-.273.623-2.28 5.132-4.45 7.845-1.078 1.349-2.565 2.367-3.62 3.662-1.227 1.504-1.974 3.309-2.406 5.27-.78 3.63-.63 5.67.465 6.044z" fill="#d4af3a"/> - <path d="M296.09 342.015c1.413-1.244 2.14-1.929 2.14-1.929s1.028-.855.771.772c-.258 1.626-.814 4.967-.47 6.42.341 1.457.512 2.697 2.311 1.626 1.798-1.069 2.226-1.713 3.083-2.61.854-.9 1.754-1.282 1.54.13-.216 1.411-.857 3.552-.556 6.42.3 2.866 1.712 3.294 3.551.855a32.263 32.263 0 0 0 3.51-5.864c.557-1.198 1.67-2.224 1.67 0 0 4.788 1.098 11.753 6.377 13.611 5.281-1.859 6.379-8.823 6.379-13.611 0-2.224 1.11-1.198 1.665 0 .558 1.2 1.67 3.425 3.512 5.864 1.84 2.439 3.253 2.011 3.552-.855.298-2.868-.344-5.009-.557-6.42-.213-1.412.686-1.03 1.542-.13.855.899 1.281 1.541 3.081 2.61 1.799 1.071 1.97-.169 2.312-1.626.342-1.455-.215-4.794-.47-6.42-.258-1.627.77-.772.77-.772s.727.685 2.142 1.929c1.41 1.24 3.349 1.315 3.349 1.315s.908-5.026-1.186-8.028c-2.094-3.001-2.864-3.978-2.864-3.978s-1.185-.069-2.092-.417c-.906-.349-1.788-1.005-1.788-1.005v2.782s2.566 2.438 3.166 3.166c.597.724 1.797 1.968.044.77a50.518 50.518 0 0 1-3.212-2.398s-.344 2.526-1.071 3.168c-.726.641-1.755.725-2.181.555l-.427-.172-.13.987s1.583 2.954 1.796 4.152c.216 1.198-.129 1.068-.855-.472-.728-1.538-2.139-3.509-2.781-4.579-.642-1.069-1.584-1.798-1.499-.427.087 1.37-.469 3.85-.942 4.749-.469.9-.769 1.198-.769 1.198s.983 3.47 1.111 4.11c.131.643.042 1.37-.513.556-.556-.813-2.142-4.236-2.142-4.236s-2.097-.086-2.695-.686c-.599-.6-1.54-2.907-1.54-2.907s-.858 2.946-1.57 3.893c-.709.945-2.362 1.888-2.362 1.888s-.118 5.124-.234 6.03c-.12.906-.158 1.299-.541 1.299s-.423-.394-.542-1.299c-.116-.906-.234-6.03-.234-6.03s-1.656-.943-2.365-1.888c-.708-.947-1.568-3.893-1.568-3.893s-.94 2.307-1.54 2.907c-.599.6-2.696.686-2.696.686s-1.584 3.423-2.14 4.236c-.557.814-.642.087-.513-.555s1.113-4.11 1.113-4.11-.3-.299-.771-1.199c-.471-.898-1.028-3.38-.941-4.749.084-1.371-.858-.642-1.5.427-.642 1.07-2.053 3.04-2.781 4.578-.727 1.541-1.07 1.671-.855.473.215-1.198 1.797-4.152 1.797-4.152l-.127-.987-.428.172c-.429.17-1.455.086-2.184-.555-.727-.643-1.07-3.168-1.07-3.168s-1.454 1.199-3.21 2.397c-1.754 1.199-.556-.043.044-.769.599-.728 3.165-3.167 3.165-3.167v-2.781s-.879.656-1.786 1.005c-.908.348-2.094.417-2.094.417s-.768.977-2.862 3.978c-2.094 3.002-1.187 8.028-1.187 8.028s1.95-.06 3.36-1.29zM321.845 375.48c-1.353-1.583-1.804-2.37-1.804-2.37s-.452.787-1.803 2.37c-1.356 1.58-4.515 4.062-4.515 4.062s.282 4.176 1.806 6.43c1.284 1.906 2.512 3.646 4.512 4.967 1.999-1.321 3.229-3.062 4.513-4.966 1.526-2.255 1.806-6.431 1.806-6.431s-3.165-2.49-4.515-4.065z" fill="#d4af3a"/> - <path d="M319.355 380.595c.124.969.042 3.418.631 3.418.59 0 .505-2.45.632-3.418.125-.969.167-3.292.167-3.292h-1.601c.015-.015.06 2.31.18 3.285z" fill="#b96b29"/> - <path d="M319.97 151.305c-5.649.096-12.276-.684-15.922-2.042-1.296.287-2.592.572-3.888.857 6.01 2.264 11.032 3.141 19.81 3.23 8.78-.089 13.8-.966 19.809-3.23-1.296-.285-2.593-.57-3.89-.857-3.644 1.352-10.274 2.132-15.93 2.042zM340.52 146.59c-.449-.373-3.02-2.206-3.69-2.54-.67-.338-.148-1.234-.036-1.607.111-.375 3.018-1.197 4.622-1.608 1.6-.411 1.34-.749 1.34-.749s-.932-1.084-6.746-1.719c-5.811-.634-16.02-.486-16.02-.486s-10.211-.15-16.025.486c-5.812.635-6.744 1.72-6.744 1.72s-.261.337 1.343.748c1.601.411 4.507 1.233 4.62 1.608.112.373.634 1.27-.037 1.606-.67.335-3.243 2.168-3.688 2.541-.447.375-.484.972.224 1.01.708.036.72.025 2.719-.375 5.982-1.19 11.613-1.522 17.59-1.605 5.975.083 11.604.415 17.59 1.605 1.998.399 2.01.411 2.719.375.705-.037.675-.634.225-1.01z" fill="#d4af3a"/> - <path d="M333.905 149.06c-3.989-.473-6.52-.989-13.905-.923-7.383.065-9.914.45-13.905.922 2.513 1.009 6.576 1.516 13.905 1.516 7.335 0 11.4-.51 13.905-1.511zM318.95 91.497l-.18 2.837 3.045-.246-.285-2.661 3.27.454.135-2.626-3.435.316.6-2.836-3.78-.035.66 2.871-3.33-.316v2.626zM325.415 98.64h-4.089v-3.487a6.027 6.027 0 0 0-1.208-.119c-.365 0-.721.032-1.067.095v3.512h-4.23a4.573 4.573 0 0 0-.18 1.997h10.951c.027-.197.039-.395.039-.594a5.396 5.396 0 0 0-.24-1.404z" fill="#d4af3a"/> - <path d="M320.12 105.048c2.432 0 4.495-1.431 5.228-3.414H314.89c.735 1.984 2.805 3.414 5.235 3.414zM322.37 95.472v2.397h2.712c-.555-1.059-1.515-1.913-2.715-2.397zM317.855 95.472c-1.187.484-2.151 1.338-2.713 2.397h2.713v-2.397z" fill="#1d5e91"/> - <path d="M323.255 139.968c-1.032-.487-3.282-1.449-3.282-1.449s-2.139 1.054-3.301 1.638c-1.163.582-1.013.412-1.37 1.26-.357.847.036 1.147.543 1.372.507.227 4.185 2.11 4.185 2.11s3.639-1.694 4.52-2.11c.883-.412.717-.826.47-1.468-.24-.638-.734-.863-1.754-1.353z" fill="#b96b29"/> - <path fill="#d4af3a" d="M319.97 139.333l-3.51 1.707 3.6 1.834 3.555-1.833zM319.97 126.972s-.303 1.27-.71 1.809c-.406.54-.713 1.022-.596 1.679.117.655.867 1.093 1.306 1.093.438 0 1.19-.438 1.305-1.093.119-.657-.189-1.139-.595-1.679-.39-.538-.705-1.809-.705-1.809z"/> - <circle cy="132.84" cx="320" r=".677" fill="#d4af3a"/> - <path d="M317.585 129.36s1.17-1.299 1.602-2.123c.433-.821.786-1.558.786-1.558s.351.737.784 1.559c.434.822 1.602 2.122 1.602 2.122s1.646-.867 2.597-4.026c.954-3.16-.219-6.493-.651-10.086-.432-3.592-.78-9.781-.78-9.781-1.247.714-2.424 1.017-3.555 1.036-1.131-.021-2.31-.324-3.557-1.036 0 0-.345 6.189-.778 9.781-.434 3.594-1.602 6.926-.65 10.086.96 3.159 2.595 4.026 2.595 4.026z" fill="#d4af3a"/> - <ellipse rx="2.841" ry="2.742" cy="122.259" cx="319.97" fill="#b96b29"/> - <ellipse rx="2.733" ry="2.639" cy="115.83" cx="319.97" fill="#b96b29"/> - <ellipse rx="2.607" ry="2.516" cy="109.681" cx="319.97" fill="#b96b29"/> - <ellipse rx="1.506" ry="1.452" cy="121.767" cx="319.97" fill="#d4af3a"/> - <ellipse rx="1.449" ry="1.397" cy="115.358" cx="319.97" fill="#d4af3a"/> - <ellipse rx="1.27" ry="1.226" cy="109.23" cx="319.97" fill="#d4af3a"/> - <path d="M319.895 336.06c.175.036.21-.415.244-1.252.033-.834.141-2.85.347-4.032.208-1.184-.314-1.113-.627-1.043-.312.069-.484.972-.484 1.496 0 .52.137 3.511.137 4.137 0 .625.209.66.383.694z" fill="#b96b29"/> - <path d="M290.42 359.115c1.262-.801 2.357-1.689 5.217-3.588 2.86-1.9 3.912-4.01 3.912-4.01h-1.01c-.547 0-1.009-.76-1.051-1.519-.043-.76 0-2.32.21-4.136.21-1.813-.294-3.29-.294-3.29s-1.22 1.137-3.07 2.109c-1.851.97-2.61.505-2.61.505l-.464-1.854s-.798 1.689-1.935 3.669c-1.137 1.983-4.207 4.179-6.394 5.823-2.189 1.647-4.587 3.378-6.396 4.011-1.81.631-.757 1.478-.757 1.478s1.81 1.812 6.479 2.656c4.67.845 6.902-1.053 8.163-1.854z" fill="#d4af3a"/> - <path d="M306.755 357.3c-1.668-.175-2.666-.805-2.988-2.618-.211-1.18.086-5.697.086-5.697s-.548.464-1.18 1.226c-.631.757-2.062.927-2.062.927s-.21.633-.841 1.644c-.632 1.016-1.431 2.24-3.03 3.25-1.598 1.015-3.449 2.197-4.67 3.209-1.221 1.014-2.65 2.196-4.25 3.081-1.598.887-3.03 2.322-3.577 4.683-.546 2.363-.124 3.123 1.725 2.997 1.851-.127 2.063.042 5.049-.718 2.988-.76 7.236-4.092 10.349-6.075 3.118-1.985 5.389-5.909 5.389-5.909z" fill="#d4af3a"/> - <path d="M315.035 360.03s-1.263-1.6-1.725-3.418c-.464-1.814-1.345-5.4-1.345-5.4s-.422 1.14-1.431 3.288c-1.011 2.154-2.735 2.66-2.735 2.66s-.086.927-1.515 2.742c-1.431 1.814-3.533 3.502-5.68 4.77-2.147 1.263-4.923 2.997-6.438 5.148-1.514 2.153-1.641 4.388-.924 5.359.715.969 1.723-.128 3.154-.845 1.431-.717 5.513-1.35 11.15-4.389 5.637-3.037 7.489-9.915 7.489-9.915z" fill="#d4af3a"/> - <path d="M317.48 372.66c1.557-2.32 1.81-7.973 1.81-7.973s-.546-.379-1.305-1.015c-.756-.633-2.229-2.868-2.229-2.868s-.925 1.94-1.934 3.755c-1.01 1.816-1.517 2.448-3.62 4.389-2.103 1.942-4.965 3.841-6.186 5.908-1.22 2.067-.546 6.203.254 7.595.799 1.395 1.935.927 3.112-.21 1.179-1.139 1.557-1.434 3.618-3.207s4.925-4.053 6.48-6.374z" fill="#d4af3a"/> - <path d="M298.97 325.335c.828-1.692 1.764-3.744 2.52-4.785a14.915 14.915 0 0 0 1.294-2.234s-2.015 1.836-2.807 3.132c-.791 1.295-1.295 2.555-1.656 3.96-.357 1.403-.179 1.617.649-.073zM306.965 326.775c.324-1.117.505-1.86.505-1.86s.326-1.08.146-1.152c-.18-.073-1.01.67-1.585 2.505-.578 1.837-1.44 4.498-1.26 4.606.178.11 1.87-2.983 2.194-4.099zM313.265 331.845c.36-.79.36-.827.36-.827s.648-2.087.648-2.52c0-.43-.216-.934-.754.145-.542 1.081-.576 2.122-.686 2.592-.106.468-.719 2.088-.54 2.232.18.144.612-.827.972-1.622zM293.705 351.045l-.843-.507s-.504.676-1.22 1.435c-.715.758-1.516 1.055-2.062 1.773a7.945 7.945 0 0 1-2.692 2.279c-1.304.675-1.81.887-1.556 1.098.252.212 1.135-.295 1.135-.295s.378-.044 1.935-.971c1.557-.927 1.935-1.434 2.945-2.32 1.01-.887 2.358-2.492 2.358-2.492zM300.53 359.115c.59-.633 1.22-1.056.883-1.395-.337-.336-.757-.294-1.305.17-.546.465-2.103 1.939-2.818 2.574-.716.633-1.304 1.014-2.019 1.561-.716.549-2.272 1.392-3.029 1.814-.757.423-.042.468-.042.468s.59-.299 1.22-.51c.63-.21 2.439-1.013 2.439-1.013s.716-.337 1.683-1.012c.968-.674 2.399-2.025 2.988-2.657zM308.39 364.56c.504-1.011-.042-.719-.883-.378-.842.338-2.735 2.406-3.829 3.163-1.093.758-2.02 1.055-2.944 1.521-.925.464-.925.716-.882.928.04.211.418.211.798.042.38-.168 1.683-.929 1.683-.929s.547-.166 1.053-.211c.505-.042 1.22-.594 2.356-1.562 1.133-.97 2.142-1.558 2.648-2.574zM312.05 371.775c-1.389.845-3.786 2.742-4.418 4.01-.633 1.267-1.053 2.152-.843 2.362.21.211.884-.211 1.18-.719.293-.505.925-1.266.925-1.266s2.397-2.36 3.28-2.91c.884-.549 2.315-2.109 2.652-3.037.336-.93.084-1.434.084-1.434s-1.473 2.15-2.86 2.994z" fill="#b96b29"/> - <path d="M274.985 169.92c-1.272-.747-4.692-2.21-8.334-2.518-3.639-.308-6.453.24-9.474 1.056-2.164.585-3.918.675-5.652.21-2.605-.695-4.626-3.047-5.313-5.928 0 0-2.403 3.08.054 6.424 1.18 1.608 2.718 2.613 4.284 2.93 5.099 1.027 10.1-2.085 14.346-2.357 4.079-.266 7.281 2.32 7.281 2.32s.965.802 2.324.011c1.362-.795 1.756-1.401.484-2.148z" fill="#c52126"/> - <path d="M260.3 317.49s-.501-.05-1.203-.151c-.702-.101-2.206-.603-2.658-.806-.452-.2-1.153-.25-1.605.252-.451.504-4.113 2.666-4.113 2.666h6.069c2.106 0 3.51-1.961 3.51-1.961z" fill="#d4af3a"/> - <path d="M277.385 316.455v-.606l-.808-1.742s-.944.593-1.863 1.544c-1.184 1.228-2.457 2.955-3.026 3.684-1.011 1.295-2.424 2.513-1.212.444 1.212-2.067 1.615-2.958 2.584-4.336.971-1.377 1.698-1.985 1.578-2.067-.121-.081-.89-.201-3.436-.525-2.544-.327-4.12-1.298-5.292-1.988-1.172-.688-3.273-1.822-3.273-1.822s-4.323 1.822-5.94 2.227c-1.617.405-2.586.648-1.011 1.419 1.576.77 2.908 1.013 3.676 1.497.767.489 3.152 1.257 4.607 1.257 1.453 0 3.918.039 2.949 1.053-.969 1.016-2.061 2.961-3.111 5.916-1.05 2.961-1.09 5.594-1.09 6.891 0 1.298.16 2.592.16 2.592s1.777-1.983 6.546-4.981c4.767-3 6.544-4.013 7.434-4.42.888-.403 1.335-.403 1.171-1.537-.159-1.135-.643-3.931-.643-4.5z" fill="#d4af3a"/> - <path d="M295.595 301.965a68.5 68.5 0 0 1-.885-.402c-.08.021-.153.043-.219.078-.56.28-3.468 2.238-4.642 4.141-1.175 1.901-2.35 2.07-1.064 0 1.287-2.073 2.238-3.246 3.245-4.141.388-.345.736-.633 1.015-.854-2.34-1.128-4.881-2.494-7.34-4.206-.317.635-.928 1.76-1.62 2.489-1.006 1.062-3.244 1.959-3.244 1.959s1.79-1.847 2.406-3.246c.392-.893.648-1.854.782-2.432-1.712-1.333-3.351-2.853-4.815-4.597-.299 1.21-1.266 4.156-4.133 7.365-3.747 4.197-11.244 6.321-11.244 6.321s-2.628.28-.502.84c2.125.56 3.636 1.51 7.776.781 4.138-.724 4.417-.894 4.977-1.059.559-.169 2.07-.057 0 .726-2.069.782-6.881 1.508-8.726 1.343-1.846-.167-4.363-.56-1.734.84 2.63 1.4 3.749 1.957 5.37 1.957 1.623 0 2.294.504 3.861.504 1.566 0 2.012-.28 3.132-.504 1.119-.222 1.845.167 1.845.615 0 .447-1.509 1.677-1.453 4.755.055 3.077.279 5.091.558 5.982.282.899.952 2.351 1.399 3.192.447.839.617 1.676 1.062-.112.447-1.791 1.454-4.364 1.847-6.096.391-1.734.615-1.79.783-2.685.166-.896 1.119-1.566.67.055a133.43 133.43 0 0 0-1.285 5.147c-.338 1.455-1.12 4.138.222 2.013 1.342-2.124 6.376-7.775 7.215-8.781.838-1.007 1.51-1.959 2.125-2.796.615-.84 2.349-1.959 3.189-3.189.759-1.113 2.982-3.28 3.936-4.056-1.423-.605-2.925-1.238-4.509-1.947zM226.055 172.845c.134 3.083 3.546 8.98 5.487 12.13 1.941 3.152 2.475 4.421 2.142 4.624-.336.2-1.139-1.407-2.21-2.813-1.07-1.407-3.143-4.69-4.883-7.17-1.74-2.48-4.283-8.376-4.617-8.913-.335-.535-.47-.872-1.338-.203-.87.671-2.543 7.172-.534 11.596 2.007 4.422 5.017 7.636 6.288 9.178 1.272 1.542 2.944 3.954 2.676 4.157-.267.199-.735-.404-2.274-2.012-1.54-1.608-4.083-4.356-5.754-6.366-1.36-1.632-3.203-4.947-3.85-6.132-.242-.449-.556-.327-.79-.093-.55.553-1.432 1.839-1.048 5.354.535 4.893 3.078 7.707 5.352 10.186 2.275 2.48 4.55 4.556 4.216 4.891-.334.337-2.676-1.742-4.282-3.283-1.605-1.54-5.555-5.36-6.423-6.434-.872-1.07-2.141-.537-2.075 3.686.066 4.222 4.75 8.511 6.69 10.857 1.943 2.344 4.35 3.75 4.15 4.22-.2.469-2.141-.736-3.412-1.609-1.27-.871-6.022-3.954-6.958-4.624-.936-.669-1.406.603-.201 4.624 1.204 4.019 4.684 7.236 6.757 8.71 2.075 1.474 5.42 3.281 5.219 3.754-.2.468-1.605-.135-3.546-1.074-1.94-.938-4.281-1.809-5.955-2.277-1.674-.47-1.673.735-1.673.735s-.336 3.417 2.14 6.165c2.477 2.748 5.287 3.82 7.963 4.287 2.676.47 3.078.605 3.01 1.008-.066.402-.334.468-.936.468-.601 0-3.078.269-5.353.269-2.276 0-3.479.533-3.479 1.54 0 1.006-.067 2.346 3.345 4.623 3.411 2.28 7.226 2.615 8.832 2.95 1.605.335 1.671.47 1.338.94-.334.467-1.07.401-3.613.668-2.543.268-4.082 1.274-4.416 1.943-.335.67.2 2.682 2.277 4.088 2.073 1.408 4.749 1.878 8.764 1.609 4.016-.27 5.019-.336 5.153.336.135.669-1.203.872-3.212 1.208-2.007.333-3.547.333-4.684 1.272-1.139.939-.267 2.881 1.672 4.288 1.94 1.407 6.759 1.407 8.766 1.274 2.007-.134 5.085-.872 5.286-.336.201.535-1.471 1.342-3.544 2.077-2.076.74-2.68 1.206-3.078 2.079-.404.87-.068 1.674 2.407 2.611 2.475.94 6.089.94 7.962.068 1.875-.87 2.877-1.208 3.213-.87.333.338 0 .67-.402 1.14-.4.47-2.007 1.741-4.081 2.278-2.075.537-2.276.537-3.012 2.211-.735 1.676 1.137 3.018 4.884 3.153 3.748.132 8.766-1.34 10.372-2.281 1.607-.939 2.208-1.139 2.475-.802.267.334.201.535-.601 1.137-.804.606-3.347 2.413-4.617 2.749-1.271.335-1.406 1.272-1.406 2.143 0 .87-.335 2.614 3.01 3.419 3.347.804 7.293.203 10.907-2.346 1.164-.819 1.84-1.496 2.221-2.082-.292-3.421-.138-5.773.273-7.942-.709-.075-2.055-.28-3.432-.833-2.007-.802-2.809-2.679-3.279-3.685-.469-1.005-1.137-1.005-1.94-.738-.804.271-1.607.604-2.744.538-1.137-.066-3.546-.67-5.286-2.75-1.74-2.077-1.407-4.085-1.473-5.093-.067-1.005-1.672-.267-2.475-.267-.804 0-3.145-.336-5.284-1.81-2.142-1.474-2.142-3.484-2.343-4.29-.201-.802-1.071-1.337-1.74-1.607-.668-.267-1.74-.534-3.213-1.742-1.472-1.206-2.006-3.55-2.073-4.354-.066-.804-.938-.872-3.948-2.412-3.011-1.541-2.744-4.758-2.609-6.03.134-1.275 1.538-2.345 1.538-2.817 0-.47-1.004-.602-2.007-1.206-1.004-.602-3.546-1.608-3.612-5.36-.068-3.753 2.409-4.155 2.409-4.155s-.47-.202-1.473-.804c-1.004-.604-3.746-2.48-3.746-4.692 0-2.211 1.002-3.216 1.738-3.753.737-.535 2.744-1.071 2.744-1.071s-1.272-.805-1.808-2.547c-.535-1.743-.736-3.885.534-5.427 1.272-1.542 3.413-1.542 4.551-1.542 1.139 0 2.141.603 2.543.27.402-.336.468-.603.066-1.474-.4-.87-.468-3.017-.134-3.752.336-.738.402-2.211 3.281-3.15 2.875-.937 5.886 1.005 6.823 1.542.938.537.536-.74.536-1.675 0-.938-1.94-3.284-4.149-6.635-2.208-3.351-3.212-5.094-5.688-10.186-2.477-5.093-4.083-11.66-4.416-13.335-.335-1.676-1.004-.873-1.004-.873s-.669.27-2.208 4.155c-1.536 3.888-1.803 7.44-1.669 10.519z" fill="#d4af3a"/> - <path d="M276.53 241.38c-1.725-.087-3.965-1.034-5.688-3.537-1.722-2.503-4.31-3.11-8.791-3.024-4.482.087-6.551-2.07-7.671-5.176-1.121-3.11.172-6.65 4.74-8.894 4.567-2.244 6.637-4.747 6.808-8.63.172-3.885-4.566-8.719-9.307-14.157-4.742-5.437-8.447-13.122-8.447-13.122s-1.379 1.814-1.379 3.626c0 1.812.689 3.711 0 4.228-.69.52-.948-.775-3.705-1.984-2.758-1.209-4.999-1.38-6.723.604-1.723 1.985 0 5.438 1.551 7.079 1.553 1.64 2.844 2.85 2.414 3.454-.43.605-2.759-.949-3.534-1.468-.776-.519-2.586-2.502-5.258-2.244-2.671.258-3.62 1.035-3.879 3.28-.258 2.244 2.414 4.227 4.137 5.093 1.724.861 2.414 1.64 1.982 1.983-.43.346-.863 0-1.638-.257-.774-.259-2.93-.517-4.308 0-1.38.518-3.621 2.415-1.553 4.748 2.069 2.331 6.378 3.193 7.241 3.364.861.173 1.293-.087 1.378.603.086.693-1.81.693-4.137.78-2.326.087-3.016 2.33-2.671 4.056.345 1.727 4.222 3.624 6.376 3.971 2.157.345 2.931 0 3.104.603.174.603-.258.862-1.466 1.209-1.206.343-3.534.604-3.966 2.503-.43 1.9-.516 2.762 1.295 4.404 1.81 1.64 4.741 1.38 5.602 1.208.863-.171 1.898-1.124 2.759-.258.861.861-.777 1.552-2.243 2.589-1.465 1.038-1.378 3.022 1.121 4.404 2.499 1.383 5 .861 6.033.517 1.033-.343 2.413-1.984 3.102-.949.69 1.035-2.154 1.381-3.362 2.848-1.206 1.466-.775 3.882 1.638 5.35 2.414 1.468 6.378.431 7.068-.172.689-.603 1.55-.86 2.067-.343.516.514-.258 1.896-.775 3.105-.516 1.209-1.466 4.747 2.155 6.129 3.621 1.38 6.896-1.727 7.499-2.333.603-.603 1.206-.69 1.723-.43.516.261.26.777-.172 1.381-.43.603-1.379 3.192 1.206 5.007 1.765 1.238 3.691 1.146 4.735.966.539-2.022 1.24-4.182 1.953-7.207h-.54c-.345 0-.414.518-.414.725 0 .207.104.379-.208.379-.31 0-.345.172-.794.484-.448.311-.862.689-1.105.518-.242-.172.933-.795 1.243-1.174.312-.381.933-.968.968-1.38.034-.416.241-.657.862-1.175.194-.16.345-.352.465-.538.416-2.013.822-4.37 1.193-7.223.25-1.936.393-3.76.448-5.464l-1.132-.059zM202.865 187.575c3.85 7.79 9.288 12.175 9.288 12.175s-.714-1.935-1.03-3.265c-.314-1.332-.07-2.838-.07-2.838s-1.364-1.75-3.886-5.637c-2.521-3.886-3.852-9.629-3.852-9.629s2.346 5.742 4.167 8.79c1.823 3.047 3.924 5.532 3.924 5.532s.734-2.694 1.26-2.835c.525-.139.91.281 1.365.875.456.596.843.54.843.54s-.622-1.286-1.58-2.828c-.434-.7-1.069-1.456-1.517-2.164-1.436-2.268-4.53-6.577-6.117-10.889-1.587-4.312-5.06-15.124-5.664-18.302-.603-3.176-1.208-1.437-1.812.909-.603 2.344-1.434 5.671-.906 10.662.528 4.99 1.735 11.115 5.587 18.904zM207.845 208.605a135.863 135.863 0 0 0 3.549 2.494s-.335-.781-.546-1.719c-.211-.937-.301-2.868-.301-2.868s-1.69-1.482-2.865-2.508c-1.176-1.027-2.655-2.356-5.58-5.98-2.926-3.626-.574-1.449 1.808 1.149s6.938 6.372 6.938 6.372 0-.06.03-.845a3.123 3.123 0 0 1 .695-1.902c.422-.544.199-.62-2.369-2.586-2.567-1.966-9.213-9.453-11.931-13.917-2.72-4.462-5.664-10.512-5.664-10.512s-1.434 8.925 4.003 18.756c5.436 9.83 10.799 13.007 12.233 14.066zM236.375 264.9c2.979-1.155 2.163-4.093 2.163-4.141 0-.049-1.827.578-3.507 1.202-1.683.629-5.816 1.83-7.449 1.877-1.632.048-1.632-.19-1.681-.432-.049-.239 1.249 0 3.602-.432 2.356-.434 6.488-2.6 7.208-3.08.72-.483.624-.58-.432-.676-1.057-.095-1.97-.578-2.355-.912-.382-.338-1.488.145-4.179.772-2.692.624-8.266 1.587-12.543 1.587-4.276 0-8.263-.721-8.937-.867-.673-.144-1.393.242.674 3.708 2.065 3.464 9.322 5.342 14.367 5.292 5.044-.05 10.09-2.745 13.069-3.898zM222.965 257.745c5.205.043 7.146-1.503 7.146-1.503s0-.266-.705-1.325c-.707-1.058-.573-2.87-.573-2.87s-1.236.22-3.398.53c-2.161.31-4.675.619-7.455.133-2.779-.486-1.587-.795.618-.531 2.207.265 6.44-.531 7.808-1.016 1.366-.486.793-.927-.132-1.239-.926-.306-3.44-1.899-3.44-1.899s-6.307.795-12.174.135c-5.866-.666-9.573-2.166-10.764-2.343-1.19-.177-1.147.31-1.147.31s-.309.528 1.719 3.707c2.03 3.184 6 5.26 9.352 6.231 3.353.974 7.94 1.637 13.145 1.68zM221.63 245.55s-.22-.309-.53-1.371c-.309-1.06.573-1.854.573-1.854s-1.19-.352-5.073-.84c-3.882-.486-4.1-.795-6.484-1.326-2.382-.53-3.969-1.236-3.926-1.502.044-.265.794.134 2.205.662 1.41.531 7.367 1.149 9.881 1.503 2.514.352 3.925.62 4.367.352.44-.265 1.984-.663 1.984-.663s-1.059-.306-2.382-.529c-1.325-.22-2.514-.795-3.219-1.281-.707-.486-.927-.621-4.103-.97-3.176-.353-5.734-1.372-11.425-3.448-5.688-2.077-9.969-4.549-11.115-5.476-1.147-.927-1.059-.264-.75.927.309 1.194.264 2.694 3.132 6.051 2.867 3.358 4.278 4.815 11.511 7.468 7.237 2.65 15.354 2.297 15.354 2.297zM200.24 227.925c6.396 4.506 13.892 6.16 15.482 6.36.357-.417-.387-1.914-.045-2.827.414-1.094 1.104-1.104 2.647-1.193 1.544-.091.53-.399.177-.399-.352 0-.441-.043-3-.706-2.559-.66-5.16-1.061-8.688-2.387-3.53-1.324-4.587-2.296-4.5-2.562.089-.264 1.632.842 4.898 2.078 3.264 1.236 7.057 1.722 9.13 2.166 2.073.437.264-.445-.706-1.019-.971-.576-2.339-2.696-2.339-2.696s-2.293-.397-6.042-1.545c-3.75-1.148-6.88-2.431-10.012-4.196-1.076-.61-2.117-1.394-3.239-2.2-2.146-1.539-4.303-3.112-5.142-3.72-1.281-.927-.882-.177-.75.398s1.014 3.227 3.042 6.141c2.03 2.916 2.691 3.8 9.087 8.307zM199.19 215.25c6.308 4.994 11.732 6.535 12.659 6.934.925.4.838-.131.661-.661-.177-.531-.31-2.251-.31-2.251s-2.25-1.283-4.764-2.741c-2.515-1.46-5.293-3.445-7.145-4.725-1.853-1.281-.75-1.192-.177-.71.573.487 3.132 1.99 5.69 3.58 2.559 1.591 6.439 3.888 6.439 3.888s.089-.839.618-1.37c.53-.531 1.851-.396 1.851-.396s-.661-.663-1.059-1.281c-.396-.621-2.47-1.281-4.807-2.388-2.339-1.102-6.53-4.194-9.617-6.801-3.087-2.605-9.087-9.144-9.483-9.675-.398-.531-.661-.441-.707.22-.043.662-.263 1.105.398 4.109.666 3.003 3.444 9.276 9.753 14.268zM221.51 168.045c.716 1.485 1.498 2.607 2.063 3.575.851 1.46 1.331 2.407 1.331 2.407s.171-.514.036-1.392c-.135-.877-.27-2.094-.033-3.545.125-.777.293-1.55.251-2.24-.05-.785-.312-1.463-.418-1.91-.203-.846-1.112-4.524-1.552-7.122-.437-2.6-.908-6.312-.875-9.588.033-3.275.505-1.621.505-.033 0 1.589.168 4.019.673 7.764.506 3.747 2.09 9.451 2.09 9.451s.1-.877.573-2.126c.472-1.25 1.248-2.666 1.854-4.22.606-1.552.393-1.812.393-1.812s-2.214-10.599-2.796-15.609c-.583-5.009-1.515-18.174-1.515-18.174-3.24 3.26-5.649 11.838-6.078 19.951-.321 6.113.666 11.771.953 14.064.567 4.542 1.356 8.088 2.545 10.559zM214.325 184.77c.1-2.4.652-4.216 2.2-4.749 0 0-1.369-2.401-2.566-5.824-.818-2.345-1.494-5.351-1.837-7.658-.847-5.68-1.525-11.532.169-1.95 1.692 9.58 3.724 12.972 3.724 12.972l2.456 3.986c-.363-1.751-.42-2.981-.327-4.893.093-1.913.338-4.503.92-6.554 0 0-2.964-5.934-4.826-13.059-1.861-7.125-2.926-13.603-2.964-17.466-.17-3.732-.254-5.173-.254-5.173s-3.046 2.289-4.062 13.905c-1.017 11.617 2.033 22.726 3.555 26.967 1.524 4.237 3.812 9.496 3.812 9.496zM247.565 273.36s-.48-.336-1.921-1.251c-1.442-.912-1.009-3.657-1.009-3.657s-.384.288-1.443 1.011c-1.057.722-2.257 1.538-3.699 2.117-1.441.579-2.163.963-3.075 1.25-.913.29-.672-.094.096-.529.768-.432 1.01-.673 2.933-1.443 1.92-.771 5.764-4.14 5.764-4.14s-.913-.096-2.499-.144c-1.585-.048-3.604-.865-3.604-.865s-1.584 1.443-7.976 4.185c-6.391 2.745-11.821 3.465-11.821 3.465s.673 3.274 3.748 4.381c2.547 1.107 6.056 1.78 12.927.146 6.87-1.635 11.579-4.526 11.579-4.526zM255.98 279.915c.53-2.699-1.01-4.575-1.01-4.575s-.336.192-1.296 1.059c-.961.867-2.356 2.504-5.046 3.849-2.689 1.346-3.652 1.251-1.057-.145 2.595-1.397 6.391-5.342 6.391-5.342l-1.007-.386c-1.012-.385-2.741.289-9.949 4.619-7.207 4.332-11.437 4.478-11.437 4.478s3.219 3.898 11.966 3.609c8.746-.285 11.917-4.473 12.445-7.166zM272.51 276.78s-.962 1.345-2.259 2.212c-1.298.867-4.756 1.397-4.756 1.397s-.145.385-.817 1.251c-.673.867-2.163 2.937-3.7 4.044-1.536 1.107-3.94 1.827-4.085 1.537-.143-.289 1.394-.865 2.884-1.78 1.489-.912 2.835-2.6 3.844-3.753 1.01-1.157-.432-.963-.432-.963s-1.826.046-3.509-.096c-1.681-.147-1.345 0-1.825.819s-1.154 1.539-2.403 2.983c-1.524 1.761-2.972 3.357-4.42 5.099-.96 1.156-.24 1.492-.24 1.492s.433.723 4.324 1.155c2.403.269 5.005-.034 7.744-1.614 1.697-.984 3.447-2.542 5.232-4.497 4.658-5.098 4.418-9.286 4.418-9.286zM274.58 287.31c-.962 1.252-1.491 1.782-1.491 1.782s.673-2.07 1.25-3.033c.307-.513.64-1 .888-1.341-.644-1.446-1.172-3-1.562-4.676-.428 1.385-1.758 5.447-3.411 8.088-2.016 3.222-3.797 4.379-2.643 5.243 1.153.867 3.411 1.06 5.96-.192 2.46-1.208 3.17-3.317 3.52-5.019a24.77 24.77 0 0 1-1.212-2.091c-.318.196-.78.564-1.299 1.239z" fill="#d4af3a"/> - <ellipse rx="1.788" ry="1.638" cy="158.625" cx="274.01" fill="#d4af3a"/> - <path d="M270.245 155.535c1.632-.039 2.51-.811 4.311-.637 2.126.207 5.005 1.446 8.504 3.303 2.734 1.236 6.344 1.854 9.821.856.974-.28 1.937-.813 2.868-1.338 4.253-2.409 3.224-7.156 3.224-7.156-3.138 2.263-7.017 3.48-10.63 3.234 0 0 .274.207.89.826.618.62 1.748 1.34 1.373 1.653-.373.31-1.92-1.171-3.224-2.134-1.303-.965-3.223-2.271-6.516-3.231-3.292-.966-6.996-1.032-9.465.34-2.469 1.379-2.674 3.099-2.33 3.786.188.386.643.512 1.174.498zM316.46 190.2c-.754-.207-2.057-.412-3.771-1.995-1.716-1.581-5.83-6.123-6.312-6.948-.48-.827-.275-1.583.892-2.066 1.166-.48 1.99-1.995 1.99-1.995s-2.537-.964-4.252-2.203c-1.716-1.236-5.694-4.815-6.243-5.709-.549-.894-.274-1.032.55-1.307.824-.276 1.03-.826 1.03-.826s-1.853-1.169-3.566-2.544c-1.716-1.376-4.047-3.647-4.047-3.647-2.569 1.032-6.601.597-8.779.207-3.842-.687-6.653-2.27-6.653-2.27s-.138.619-.618 1.789c-.48 1.168-2.263 1.858-4.047.687-1.783-1.169-1.372-3.714-1.372-3.714s-1.44-.894-4.389-1.995c-2.949-1.101-5.349-1.239-7.75-.138-2.402 1.1-3.568 4.402-3.568 6.88 0 2.475 1.305 1.445 1.578 1.098.275-.343.824-2.133 3.842-2.613 3.018-.483 5.761.963 9.19 3.782 3.43 2.823 4.184 3.028 5.898 4.816 1.715 1.79.344 2.751-2.605 3.716-2.949.964-6.722-.963-6.86-.893-.567.284 1.272 2.907 3.816 3.899 2.544.99 5.796.348 8.325-.666 1.715-.687 2.034.022 2.537.55 2.785 2.928 3.51 5.672 3.978 9.014 1.423-.438 2.409-1.86 2.607-3.027.094-.56.274-1.79 1.234-.896.96.896 1.715 5.847 1.715 8.118s-.687 5.298-.687 5.298l.687-.069c.412-.069 1.234-.55 2.332-1.168 1.097-.621 1.166.069 1.166 1.306 0 1.238.411 3.578 2.058 7.775 1.647 4.197 4.047 5.571 4.047 5.571s.481-.825.961-2.475c.479-1.652.824-4.884.824-7.706 0-2.821-.755-8.875-.755-8.875s3.431 4.197 6.996 5.23c3.567 1.032 7.134.413 8.643-1.308 1.505-1.719.132-2.475-.622-2.683z" fill="#d4af3a"/> - <path d="M293 201.06s-1.083 2.396-1.674 3.249c-.591.854-.854.987-.854.987s1.084.918 2.66 1.41c1.577.493 2.988.787 2.988.787s-1.774-2.431-2.397-4.137c-.624-1.707-.723-2.296-.723-2.296zM314.42 199.65a71.58 71.58 0 0 0-.854-2.102c-2.188.439-6.34-.589-8.143-1.673 0 0 1.643 3.346 3.284 4.497 1.642 1.149 1.872 1.215 1.872 1.215s-1.641.264-3.842-1.904c-2.199-2.167-3.184-4.663-3.184-4.663s.492 5.779-.395 9.324c-.886 3.544-1.083 4.005-1.083 4.005s4.66.82 9.849-.624c5.187-1.446 5.58-1.905 5.58-1.905s.622-.164-.197-1.247c-.82-1.081-2.362-3.577-2.887-4.923z" fill="#d4af3a"/> - <path d="M305 186.96c-1.596-1.835-1.755-2.274-1.755-2.274s-.558.558-.081 1.357c.478.797 2.752 2.79 4.308 3.668a11.1 11.1 0 0 0 3.111 1.156l-.08-.319c0 .001-3.909-1.754-5.503-3.588zM298.67 199.005s-.399-7.26-.399-8.337-.678-.798-.678-.798l-.796.358 1.56 10.616c.169 1.143.732 1.046 1.02.995-.57-.296-.683-2.503-.707-2.834zM288.875 167.58c-.593-.591-1.925-1.034-.64.396 1.282 1.431 2.962 3.21 3.454 4.692.495 1.48.79 3.306-.048 2.912-.84-.397-1.433-.397-2.32-1.136-.89-.741-2.567-1.977-3.258-2.172-.692-.198-1.925 0-.938 1.085.987 1.087 2.075 2.125 3.95 3.505 1.876 1.383 2.962 1.974 3.949 2.666a36.877 36.877 0 0 0 1.974 1.284s-.89-5.924-2.518-8.54c-1.63-2.616-3.012-4.098-3.605-4.692zM256.865 266.805c-1.203.912-2.78 1.286-2.78 1.286s-.747-.04-.747.25.872 0 1.784-.165c.912-.167 2.157-1.08 2.613-1.411.456-.333 1.12-.749.912-1.331-.207-.582-.58.458-1.782 1.371zM267.2 272.34c-.249.288-2.24 1.785-2.24 1.785s-.622.414-1.287.663c-.663.25-.828.625-.828.625s.125.164.828-.04c.705-.21 2.781-1.663 3.443-2.245.663-.584.956-.747.707-.996-.248-.25-.372-.083-.623.208zM225.305 197.895c.372.453.825 1.073 1.032.866.207-.206-.042-.413-.537-.992-.495-.578-.783-.867-.783-.867s-.7-1.116-1.114-1.53c-.413-.412-1.032-.62-.248.33.785.953 1.28 1.737 1.65 2.193zM222.125 204.87c.453.415.866.784 1.36 1.321.495.537.867 1.115 1.155.827.29-.29-.742-.907-1.195-1.488a7.497 7.497 0 0 0-1.404-1.404 9.965 9.965 0 0 0-1.28-.827s.91 1.158 1.364 1.571zM223.31 216.135c.787.83 1.948 1.079 2.115.749.167-.333-.083-.6-.744-.93-.658-.33-1.732-1.033-2.27-1.405-.535-.373-1.072-.786-1.444-1.156-.37-.372-.81-.707-.948-.58-.138.127 1.093 1.452 1.466 1.66.373.207 1.037.831 1.825 1.662zM225.59 225.15c0-.332.081-.496-.582-.54a26.858 26.858 0 0 1-1.577-.164s-1.285-.499-1.369-.25c-.083.25 1.079.75 1.577.833.498.084 1.119.249 1.408.412.293.165.543.039.543-.291zM226.58 234.945c-1.409 0-2.613-.335-2.696-.126-.082.208.664.541 1.37.789.707.25 2.034.333 2.946.373.912.041 1.079-.165 1.036-.62-.042-.46-1.245-.416-2.656-.416zM237.62 245.67c-.207-.207-.705-.04-1.494.124-.786.168-2.073.417-2.82.377-.747-.04-2.364-.084-2.364-.084l-.912.207c0 .208 1.202.166 2.945.373 1.741.209 2.902-.165 3.732-.29.83-.125 1.122-.497.913-.707zM242.18 253.305c-.872.333-1.492.414-2.157.414-.663 0-2.24.291-2.24.291s-.746.084-.622.375c.124.29.373 0 1.035-.084.664-.084 1.163 0 2.324-.04 1.16-.043 1.825-.335 2.53-.458.705-.126 1.492-.5 1.12-.957-.373-.455-1.119.126-1.99.459zM251.06 259.08c-.498.5-2.406 1.786-2.406 1.786s-.373.291-1.12.665c-.747.373-.705.541-.581.748.124.207.58-.29.995-.457.413-.167 1.783-1.083 2.488-1.66.705-.586 1.617-1.042 1.45-1.456-.163-.415-.328-.123-.826.374zM236.285 184.305s.165.38 1.696 2.296c1.533 1.916.713.109.329-.38-.384-.495-2.627-3.666-3.393-4.544-.765-.876-.875-.438-.492.108.384.548 1.86 2.52 1.86 2.52zM233.06 194.145c.219-.219-.275-.438-1.149-1.532-.876-1.094-2.627-3.337-2.627-3.337s-.493-1.04-.656-.931c-.164.109.601 1.75 1.312 2.464.713.711 1.641 2.079 2.135 2.68.493.602.766.875.985.656zM237.305 212.595c0-.535-1.732-.455-2.515-.62-.785-.164-2.187-.454-2.187-.454s-1.652-.29-1.693-.082c-.042.204.33.41 1.238.579.907.163 2.27.577 3.301.742 1.032.165 1.856.374 1.856-.165zM233.06 202.635c1.149.93 1.914 1.368 2.517 1.696.602.327 1.093.822 1.423.438.329-.385-.274-.657-1.258-1.095-.986-.438-1.478-.82-1.478-.82s-.547-.273-1.04-.548c-.494-.273-1.314-.601-.164.329zM242.96 196.065c-.713-.602-1.314-.933-1.314-.933s-.874-.82-1.04-.547c-.163.275.985 1.094 1.532 1.586.547.494 1.533 1.917 2.025 1.643.492-.273-.493-1.147-1.203-1.749zM236.495 221.775s-.956.247-1.577.414c-.62.167-.663.459.458.459 1.12 0 1.577-.291 2.696-.501 1.12-.207 1.495-.332 1.327-.705-.165-.375-.747-.249-1.203-.125-.456.125-1.701.458-1.701.458zM238.235 231.09c-.083.21.787 0 1.368-.207.58-.208 1.784-.83 2.489-1.038.706-.207.706-.333.706-.749 0-.414-.749-.084-1.659.209-.912.291-2.075 1.206-2.075 1.206s-.746.372-.829.579zM250.22 236.73c.831-.501.998-.873.705-1.123-.29-.248-.538-.208-1.202.332-.664.54-1.95 1.454-1.95 1.454s-.662.25-1.16.5c-.498.248-1.121.664-.954.913.165.249 1.203 0 1.741-.458.54-.456 1.992-1.122 2.82-1.618zM255.875 244.215c.332-.292 1.326-.621 1.784-.956.456-.332.747-1.328.373-1.453-.373-.124-.58.414-1.368.995-.789.583-3.485 2.368-3.485 2.368l-.706.291c-.747.29-.414.5.208.415.623-.085 1.037-.085 1.784-.662.745-.582 1.077-.707 1.41-.998zM264.245 251.31c.707-.29 1.743-1.204 2.241-1.659.496-.459 1.119-1.04.747-1.33-.375-.29-.787.084-1.37.62-.58.542-2.116 2.162-2.116 2.162s-.207.04-1.036.707c-.83.663.042.538.331.249.291-.29.5-.458 1.203-.749z" fill="#b96b29"/> - <path fill="#d4af3a" d="M295.22 143.502l3.15 1.38 3.375-2.397-3.975-1.018z"/> - <ellipse rx="3.219" ry="3.103" cy="142.074" cx="309.17" fill="#b96b29"/> - <ellipse cx="309.17" rx="1.942" cy="141.417" ry="1.855" fill="#d4af3a"/> - <path d="M302.45 131.412c.828.307 1.905.172 1.905.172s.325-1.427-.462-2.123c-.787-.693-1.5-1.194-1.962-1.658-.462-.465-.576-.62-.576-.62s0 1.235-.06 2.008c-.056.774.328 1.91 1.155 2.221z" fill="#d4af3a"/> - <ellipse cx="304.16" rx=".591" cy="132.975" ry=".559" fill="#d4af3a"/> - <path d="M299.765 132.375c-.25.348-.787.906-.787.906s.653.02 1.192.405c.538.387 1.231.714 1.866.637.634-.079.904-.678.77-1.1-.134-.425-.442-.866-1.481-1.255-1.04-.383-1.31.059-1.56.407z" fill="#d4af3a"/> - <path d="M302.015 136.134c-2.022.181-4.694-2.054-4.694-2.054-.249 1.796-1.359 2.727-3.06 3.068l.156.08s1.582.808 3.449 1.091c.845.13 1.596-.016 2.504-.198 1.095-.222 2.326-.534 2.992-.945 1.22-.753.855-2.704.855-2.704s-.178 1.479-2.202 1.662zM294.14 134.106c-.83-.312-2.075-.91-2.594-.938-.519-.025-1.272-.156-1.141.807.129.963 1.115 1.431 2.073 1.457.96.027 1.453-.338 2.023-.625.572-.285.468-.389-.361-.701zM287.81 130.671c-.906-.65-1.713-.831-1.713-.831s-.596 1.562-.26 2.525c.338.962 1.038 1.22 1.893 1.193.857-.024 2.127-.468 1.764-1.117-.361-.648-.777-1.119-1.684-1.77z" fill="#d4af3a"/> - <ellipse cx="288.635" rx=".699" cy="135.061" ry=".504" fill="#d4af3a"/> - <path d="M290.57 127.297c-.561-2.66-.467-5.555 2.055-9.244 2.523-3.69 6.91-5.184 6.91-5.184s.14-.28 1.541-1.773c1.401-1.496 4.25-3.361 4.25-3.361s-3.306.815-5.186 1.417l.002.099c0 1.276-1.014 2.312-2.265 2.312-.477 0-.922-.154-1.288-.412-1.02.199-4.416 2.228-5.285 2.953.216.353.342.77.342 1.217 0 1.274-1.015 2.31-2.266 2.31-.375 0-.728-.091-1.04-.257a9.588 9.588 0 0 0-.29.492 23.365 23.365 0 0 0-1.624 3.717c.58.4.969 1.149.969 2.004 0 1.269-.86 2.3-1.921 2.311-.074.747-.068 1.269-.04 1.493.094.748.374 1.215 1.68 1.588 1.309.373 3.083 2.661 3.083 2.661.126 0 1.059-1.68.374-4.342z" fill="#d4af3a"/> - <path d="M298.61 110.259c.477-.387.561-.98.181-1.319-.374-.34-1.066-.3-1.543.09-.475.39-.56.983-.181 1.322.376.339 1.068.3 1.543-.093zM290.15 115.975c.535-.488.63-1.228.204-1.655-.424-.427-1.204-.376-1.743.113-.537.486-.628 1.227-.204 1.653.424.428 1.204.377 1.743-.11z" fill="#d4af3a"/> - <ellipse cx="285.11" rx="1.306" cy="123.163" ry="1.284" fill="#d4af3a"/> - <path d="M313.31 105.025c-.678.149-1.932.557-3.808 1.54h.034c1.305 0 2.319.833 2.319 1.913 0 1.082-1.187 2.257-2.49 2.257-1.304 0-2.192-1.133-2.192-2.215 0-.253.06-.499.167-.722-.556.343-1.15.722-1.784 1.15-4.156 2.802-5.136 4.157-7.189 7.986-2.055 3.826-2.802 8.03-1.916 10.505.888 2.473 4.157 2.988 4.203 2.988.047 0-.373-.374-.421-.839-.047-.47.094-.702.234-1.637.14-.931.046-2.051.046-2.051s.747-.095 1.167.42c.422.512 1.03 1.12 1.448 1.631.42.514 1.54 1.496 1.54 1.496s.656-.936.656-2.057c0-1.118-.747-2.332-.888-4.294-.141-1.962.888-5.465 2.8-8.031 1.916-2.568 5.51-4.902 6.584-5.417 1.074-.511 1.26-1.307 1.308-1.774.046-.467.14-.792.232-1.96.096-1.168-.978-1.121-2.05-.889z" fill="#d4af3a"/> - <path d="M309.185 109.46c.735 0 1.404-.662 1.404-1.268 0-.607-.572-1.075-1.308-1.075-.735 0-1.332.493-1.332 1.097 0 .605.5 1.246 1.236 1.246zM315.365 133.874c1.002.408 2.133.178 2.666-.177.532-.357.712-1.265.08-1.784-.628-.517-1.565-.5-2.147-.177-.582.324-1.892 1.247-1.892 1.247s.291.486 1.293.89z" fill="#d4af3a"/> - <path d="M318.575 134.999c-.361.558-.628.897-1.742.945-1.113.048-2.32-.024-3.046-.752-.726-.726-1.233-1.746-1.233-1.746l-1.257-.024s-.41 1.748-.966 2.229c-.556.486-2.491.56-3.337-.072-.846-.631-1.62-1.407-1.764-1.31-.144.098 0 .728.87 1.48.87.75 1.473 1.213 2.877 1.213h7.977s1.62.095 2.08-.874c.459-.97.48-1.577.266-1.818-.217-.242-.362.169-.725.728z" fill="#d4af3a"/> - <path d="M306.44 133.647c1.197.664 1.859.26 2.293-.276.438-.534.518-.777.518-.777s-1.131-.406-1.68-.73c-.55-.323-.921-.632-1.47-.568-.55.066-.63.147-.63.147s-.227 1.538.969 2.204z" fill="#d4af3a"/> - <ellipse cx="300.665" rx="2.662" cy="121.86" ry="2.639" fill="#b96b29"/> - <path d="M305.285 112.716c-1.065-.717-2.63-.43-3.497.639-.864 1.072-.7 2.524.368 3.24 1.065.718 2.632.43 3.498-.639.864-1.068.699-2.52-.369-3.24z" fill="#b96b29"/> - <ellipse cx="300.56" rx="1.546" cy="121.518" ry="1.474" fill="#d4af3a"/> - <path d="M304.175 113.007c-.685-.188-1.533.15-1.89.753-.357.605.021 1.248.934 1.434 1.682.344 2.483-1.768.956-2.187zM263.51 319.005s-4.113 1.965-5.417 2.314c-1.303.356-1.605.356-1.605.356s-2.809 2.563-4.866 3.77c-2.16 1.272-4.639 2.194-7.122 2.469-3.211.349-12.037.249-16 .099-3.963-.15-6.418.804-8.126 2.716-1.705 1.913-2.105 4.678.052 6.792 2.157 2.113 4.563 1.057 5.367-.25.8-1.31.4-2.97.049-3.724-.35-.756.703-1.008 1.806-1.057 1.104-.05 2.96.1 4.665.352 1.706.251 4.716 1.257 6.02 1.962 1.304.705.551.806-.352.654-.903-.151-1.905-.502-3.511-1.104-1.605-.603-2.96-.906-3.962-.958-1.002-.05-.654.504-.451.855.2.352.751 1.208.901 1.611.152.403-.3 1.908-.3 1.908l.501.959s.602-.959.803-1.458c.2-.506-.051-1.46.15-1.913.201-.453 1.053-.453 1.705.303.653.753 1.406 1.66 1.755 3.568.351 1.913-.301 3.272-.301 3.272s.804.657.954 1.105c.151.455-.201 2.267-.201 2.267s.552.351 1.054-.707c.501-1.054 1.103-2.916 1.253-3.571.15-.654.601-1.86 1.404-.956.802.905 1.354 2.013 1.506 2.567.148.552.148 1.006.148 1.006s1.806-1.762 2.408-2.769c.601-1.006 1.855-2.515 3.562-3.922 1.706-1.409 4.664-4.226 6.119-5.183 1.453-.955 5.166-2.968 6.32-3.672 1.153-.703 1.354-.753 1.555-2.718.201-1.963 1.155-3.72 1.605-5.08.435-1.365.54-1.86.54-1.86zM197.735 245.28c-.033-.335-.702-1.509-.869-2.112-.168-.602-.769-.235-.769-.235s-1.305.738-2.274 1.006c-.969.269-1.104-.099-1.204-.602-.1-.506-.335-2.08-.501-3.187-.168-1.104-.402-1.036-.803-.873-.4.17-1.605.605-2.44.975-.836.367-.569.771-.302 1.239.267.471 1.238 2.448 1.671 3.153.435.704.033 1.006-.47 1.242-.5.234-1.236.335-2.239.669-1.004.335-.936.57-.837.906.1.338.77 1.712 1.137 2.346.367.638.702.203.702.203s1.071-.971 1.972-1.409c.904-.433.97-.301 1.204.37.234.671 1.272 4.193 1.471 4.863.201.668.535.602 1.004.404.468-.201 1.102-.303 1.638-.471.535-.167.736-1.24.736-1.24s-1.972-3.554-2.508-4.461c-.535-.907 0-1.108.402-1.174.4-.066 1.57-.234 2.574-.469.99-.255.72-.825.69-1.17zM220.025 341.85c-.15-.857 0-1.713-.652-2.365-.653-.656-1.455-1.962-1.755-3.018-.3-1.058.25-1.56.15-2.165-.1-.603-.903-.603-1.704.053-.804.654-1.857 1.257-1.857 3.168 0 1.909.703 4.176 3.361 4.978 2.655.81 2.61.21 2.46-.645zM222.725 340.935s-.552-.351-.802.151c-.251.503-.202.756.5 1.862.702 1.105 1.155 1.359 1.956 1.86.803.504.251-.501.15-.804-.099-.303 0-.704-.199-.957-.201-.252-.303-.553-.303-1.356 0-.795-1.305-.75-1.305-.75z" fill="#d4af3a"/> - <path d="M225.98 349.995c.501-.757.954-.957 2.157-1.509 1.203-.552 3.41-.855 4.161-.906.753-.051 2.458-1.509 2.207-3.021-.251-1.509-1.355-2.112-2.307-2.313-.953-.201-1.806-.201-2.106.25-.302.455-.854 1.058-1.907 1.409s-1.204.705-1.855.906c-.653.203-.152.605-.702 1.058-.552.451-1.304 0-2.157-.253-.852-.252-.903-.402-1.856-.454-.953-.05-3.46-.2-3.46-.2s-.101-.05-.651-.05c-.552 0-.603.1-.852.705-.251.602.049 2.113.652 2.867.602.753 2.558 1.106 3.861 1.51 1.305.4 1.958.553 3.062.752 1.14.195 1.29-.015 1.784-.765zM238.175 351.195c1.053-.705.45-1.913.201-2.666-.25-.756-1.706-.906-2.458-.906-.753 0-1.154 0-1.556.351-.402.351-.952.855-2.056 1.21-1.101.35-1.956.752-3.461 1.357-1.504.602-1.957 1.608-2.608 2.014-.653.401-1.905 0-1.905 0s-.905-.253-1.205 0c-.301.248 0 .752.602 1.406.603.657 1.755.605 3.058 1.008 1.305.402 1.556.099 2.058-.252.501-.351.903-1.105 1.806-1.66.903-.553 2.859-.655 3.812-.754.975-.105 2.685-.405 3.735-1.11zM238.175 346.62c.45.405.953.959 1.355.301.402-.652 1.053-2.011.601-2.815-.453-.804-1.002-1.51-1.002-1.51s-.753 2.314-1.104 2.919c-.33.615-.285.705.165 1.11zM234.11 339.675c0-1.31-.903-2.919-.903-2.919s-.301 1.208-.852 2.265c-.552 1.054-1.104 1.61-1.104 1.61s1.305.35 1.806.35c.501 0 1.065.016 1.065-1.29zM226.595 342.45c1.404-.301 2.157-.855 2.759-1.357.601-.503.953-1.864.551-2.566-.4-.708-1.404-1.459-1.804-1.459h-.753s-.402 1.308-.953 1.962c-.551.655-1.202 1.105-1.153 1.962.045.84-.06 1.74 1.35 1.44zM229.445 336.06c.051-.654-.203-1.357-.652-1.81-.452-.453-.754-.753-.754-.753s-.1 1.005-.199 1.558c-.1.553-.15.654-.15.654s.402.405.753.555c.345.135.945.45.99-.21zM212.105 300.375l.948-5.928c-.713-5.926-3.795-11.537-6.243-15.411-2.451-3.872-4.98-9.957-6.087-13.198-1.105-3.242-1.848-7.679-1.848-10.001 0-2.325.992-3.52.992-3.52s.43-.63.033-1.03c-.398-.397-1.025-.031-1.655.597-.63.629-1.29 1.792-1.556 2.621-.265.833-.265 1.13-.265 1.13s-1.257-.297-3.276-.131c-2.019.164-2.978.332-3.045.762-.066.432.265.765 1.72 1.395 1.457.63 2.384.895 3.111 1.76.73.862 2.591 5.197 3.16 7.29.568 2.093 1.784 7.77 2.278 12.224.493 4.455 1.996 9.852 4.098 14.36.69 1.485 4.455 8.505 7.635 7.095zM215.78 310.815c-1.373.766-1.321 6.375-.713 9.282.611 2.909 3.458 6.53 4.322 7.498.866.97 1.068.97 1.527.714.459-.253.66-.253.66-.253s1.221-.408 2.138-1.122c.913-.716.557-2.5.404-4.082-.153-1.584-1.372-4.746-3.609-8.415-2.22-3.675-3.345-4.395-4.71-3.63zM217.295 306.27c0-1.83-1.587-3.213-3.411-3.213-.863 0-1.623.217-2.094.642-1.851 1.67-.735 5.836 1.94 5.836.969 0 2.101-.162 2.802-.832.63-.585.764-1.56.764-2.43zM243.815 358.98c-.73-.129-1.161-.427-2.238-1.16-1.075-.73-2.797-2.237-3.099-2.97-.303-.732-.303-.775-1.335-.429-1.034.344-2.498.3-3.615.344-1.119.044.128 1.29.903 2.456.775 1.16.516 5.077.516 5.077s0 .345-.173.906c-.172.558-.042.947.258 1.075.302.13.473-.129 1.248-1.035.776-.903 2.196-3.268 2.196-3.268s.216.04 1.421.343c1.204.303 3.142.13 4.132-.172 1.02-.3.54-1.035-.195-1.17z" fill="#d4af3a"/> - <path d="M239.21 362.01c-.516-.087-.73-.13-.99.211-.257.347-.472.995-.602 1.337-.128.345-.086.648.217.906.301.26.732.56.732.56s.43.474.862.687c.43.217.515-.428.515-.903 0-.473.258-1.335.258-1.895s-.45-.825-.975-.9z" fill="#d4af3a"/> - <path d="M434.93 324.165c-1.258-.298-1.792-.777-1.792-.777s-.539-.06-.962.719c-.414.775-2.031 1.792-2.031 1.792s-2.272.6-2.572 2.157c-.299 1.554.778 2.093 1.854 1.913 1.08-.18 3.71-.719 4.843-2.093 1.137-1.377 1.317-2.155 1.556-2.695.21-.525.344-.705-.916-1.005zM438.455 311.775c-.818-3.459-3.051-7.732-7.357-9.873 0 0-1.616 5.685-2.095 7.48-.48 1.793-.48 1.734.897 2.094 1.374.357 5.801 1.314 6.7 1.554.898.24 2.4 1.005 1.86-1.275zM417.935 308.55c1.016.18.897-.24 1.256-1.615.358-1.374 2.152-8.195 2.152-8.195s-4.544-.18-8.493 1.732c-3.95 1.915-5.684 5.444-5.684 5.444s1.019.419 3.711 1.019c2.7.585 6.045 1.425 7.065 1.605zM407.405 317.94c-1.613-.298-2.212-.478-2.212-.478s1.017 3.886 2.692 6.042c1.674 2.153 3.53 3.232 6.999 3.29 3.47.06 6.1-1.854 6.52-3.349.419-1.497 1.138-2.631 1.138-2.631s-6.282-.842-8.855-1.438c-2.61-.6-4.695-1.14-6.315-1.44z" fill="#1d5e91"/> - <path d="M406.325 315.48c1.557.358 14.358 2.811 15.435 3.051 1.079.237 1.974.477 2.274.177.301-.297.478-.477 1.615-.898 1.137-.416 1.079-1.554 1.079-1.554s.298-1.079.415-2.154c.122-1.076.72-1.436 1.976-.119 1.257 1.314 1.496 3.228 1.734 5.085.24 1.854 3.172 2.333 4.306 2.513 1.139.18 1.674-.18 2.334-1.256.659-1.077 1.019-3.231 1.197-4.608.179-1.374.062-1.255-1.375-1.614-1.435-.357-8.076-1.852-9.274-2.155-1.194-.299-.956-1.076-.777-1.913.178-.837 2.81-9.274 2.81-9.274-1.873-1.158-4.506-1.848-7.656-2.213 0 0-1.914 8.613-2.275 9.932-.357 1.314-1.197 1.314-2.571 1.074-1.377-.237-11.309-2.568-11.309-2.568l-.775 1.85c-.779 1.855-1.137 4.07-1.137 5.206 0 1.135.405 1.11 1.95 1.455z" fill="#d4af3a"/> - <path d="M440.3 323.265c-1.32-.863-2.29-1.09-2.978.516-.688 1.607-.744 3.96-2.463 5.622-1.719 1.663-4.125 3.384-6.53 3.213-2.405-.172-3.78-.747-3.209-3.5.574-2.752 4.24-3.613 5.098-5.047.858-1.434.63-3.098-.631-4.186-1.26-1.092-3.093-1.32-3.608-.975-.514.343-2.005 1.606-2.748 3.668-.745 2.066-1.203 3.73-2.808 5.05-1.6 1.318-5.725 2.638-8.932 1.891-3.207-.746-4.352-1.72-5.556-4.875-1.203-3.155-2.634-8.373-3.266-8.948-.628-.573-1.43-1.032-2.805-.058-1.375.973-1.489 2.409-1.66 3.558-.173 1.146 0 2.469 1.372 4.131 1.376 1.662 2.808 3.325 3.324 5.044.516 1.721 2.061 4.361-.115 4.475-2.175.114-3.149.171-4.81-1.433-1.661-1.606-8.135-6.024-9.908-7.459-1.776-1.434-2.52-1.892-2.52-1.892-2.996-.052-5.996-1.284-8.991-3.325 0 0 1.719 4.414 2.061 6.078.343 1.663.286 2.58.286 2.58s6.528 3.327 9.107 4.59c2.577 1.261 7.788 4.245 10.306 5.791 2.523 1.551 4.641 3.96 9.108 3.042 4.469-.918 13.515-3.67 16.436-4.531 2.922-.861 10.998-2.868 13.975-4.932 2.978-2.064 3.266-1.95 3.779-4.016.51-2.025 0-3.165-1.32-4.035zM423.065 292.38c.496-.066.696-.134 2.219-.332 1.525-.2.96 1.26.694 1.824-.264.563-.728 1.691-1.355 2.751-.632 1.065.197 1.23.628 1.395.43.168 1.059.233 2.284.566 1.227.33.993-.566 1.028-1.029.033-.467.097-2.888.232-3.749.132-.86.925-.63 1.224-.465.298.165 1.059.594 1.69.926.627.336.926-.032 1.06-.396.133-.364.429-1.028.696-1.99.265-.962-.332-.764-.93-.764-.594 0-1.457 0-2.45-.032-.993-.033-.364-.996-.364-.996s.729-1.192 1.291-2.089c.564-.895.366-1.028-.2-1.196-.56-.166-2.317-.563-2.814-.695-.496-.131-.727-.066-.727.267s-.068 2.055-.068 2.719c0 .661-.064 1.06-.927 1.093-.86.032-1.392-.468-2.086-1.228-.696-.76-.993-.464-1.06-.164-.067.299-.63 2.487-.763 3.084-.165.585.165.555.66.48zM427.865 314.115s-.061 1.736-.24 2.333c-.18.6-.597 1.497.12 1.735.719.24 1.375.537 1.791.418.421-.118.24-.957 0-1.674-.237-.718-.596-1.617-1.135-2.214l-.525-.585zM438.395 321.045c.24.537.719.657 1.079.778.358.119.838.119.838-.538s.118-1.496-.417-2.214c-.538-.719-.825-1.242-1.137-.18-.315 1.08-.6 1.635-.36 2.16zM401.72 314.055c.298.06 1.435.418 1.435.418s0-1.675.239-2.812c.238-1.134.719-1.913.3-1.913-.418 0-.657.359-.96.837-.297.477-1.137.599-1.434 1.974-.3 1.365.12 1.425.42 1.485z" fill="#d4af3a"/> - <circle cy="311.175" cx="408.905" r="2.334" fill="#b96b29"/> - <circle cy="312.795" cx="415.475" r="2.392" fill="#b96b29"/> - <circle cy="316.86" cx="434.63" r="2.394" fill="#b96b29"/> - <circle cy="314.355" cx="422.06" r="2.394" fill="#b96b29"/> - <circle cy="308.61" cx="423.8" r="2.394" fill="#b96b29"/> - <circle cy="302.865" cx="425.48" r="2.394" fill="#b96b29"/> - <circle cy="310.95" cx="409.07" r="1.165" fill="#d4af3a"/> - <circle cy="312.555" cx="415.655" r="1.197" fill="#d4af3a"/> - <circle cy="316.62" cx="434.81" r="1.196" fill="#d4af3a"/> - <circle cy="314.115" cx="422.24" r="1.196" fill="#d4af3a"/> - <circle cy="308.37" cx="423.98" r="1.196" fill="#d4af3a"/> - <circle cy="302.625" cx="425.66" r="1.197" fill="#d4af3a"/> - <path d="M349.528 359.115c-1.261-.801-2.356-1.689-5.217-3.588-2.86-1.9-3.912-4.01-3.912-4.01h1.01c.547 0 1.01-.76 1.051-1.519.044-.76 0-2.32-.21-4.136-.21-1.813.294-3.29.294-3.29s1.22 1.137 3.071 2.109c1.851.97 2.61.505 2.61.505l.463-1.854s.798 1.689 1.935 3.669c1.137 1.983 4.208 4.179 6.395 5.823 2.188 1.647 4.587 3.378 6.396 4.011 1.809.631.756 1.478.756 1.478s-1.809 1.812-6.479 2.656c-4.669.845-6.901-1.053-8.163-1.854z" fill="#d4af3a"/> - <path d="M333.193 357.3c1.668-.175 2.666-.805 2.988-2.618.212-1.18-.085-5.697-.085-5.697s.547.464 1.179 1.226c.631.757 2.062.927 2.062.927s.21.633.842 1.644c.631 1.016 1.431 2.24 3.03 3.25 1.597 1.015 3.448 2.197 4.67 3.209 1.22 1.014 2.65 2.196 4.249 3.081 1.599.887 3.03 2.322 3.577 4.683.546 2.363.125 3.123-1.725 2.997-1.85-.127-2.062.042-5.049-.718-2.988-.76-7.236-4.092-10.348-6.075-3.119-1.985-5.39-5.909-5.39-5.909z" fill="#d4af3a"/> - <path d="M324.913 360.03s1.263-1.6 1.725-3.418c.464-1.814 1.346-5.4 1.346-5.4s.421 1.14 1.431 3.288c1.011 2.154 2.734 2.66 2.734 2.66s.086.927 1.515 2.742c1.431 1.814 3.533 3.502 5.681 4.77 2.146 1.263 4.923 2.997 6.438 5.148 1.513 2.153 1.641 4.388.924 5.359-.716.969-1.724-.128-3.155-.845-1.43-.717-5.512-1.35-11.149-4.389-5.637-3.037-7.49-9.915-7.49-9.915z" fill="#d4af3a"/> - <path d="M322.468 372.66c-1.557-2.32-1.81-7.973-1.81-7.973s.546-.379 1.305-1.015c.756-.633 2.229-2.868 2.229-2.868s.925 1.94 1.935 3.755c1.01 1.816 1.516 2.448 3.62 4.389 2.102 1.942 4.964 3.841 6.185 5.908 1.22 2.067.546 6.203-.253 7.595-.8 1.395-1.935.927-3.113-.21-1.179-1.139-1.557-1.434-3.618-3.207-2.06-1.773-4.924-4.053-6.48-6.374z" fill="#d4af3a"/> - <path d="M340.978 325.335c-.828-1.692-1.764-3.744-2.52-4.785a14.915 14.915 0 0 1-1.294-2.234s2.016 1.836 2.808 3.132c.79 1.295 1.294 2.555 1.656 3.96.357 1.403.178 1.617-.65-.073zM332.983 326.775c-.324-1.117-.505-1.86-.505-1.86s-.326-1.08-.146-1.152c.18-.073 1.01.67 1.586 2.505.577 1.837 1.44 4.498 1.26 4.606-.179.11-1.87-2.983-2.195-4.099zM326.683 331.845c-.36-.79-.36-.827-.36-.827s-.648-2.087-.648-2.52c0-.43.216-.934.755.145.541 1.081.576 2.122.685 2.592.107.468.719 2.088.54 2.232-.18.144-.612-.827-.972-1.622zM346.243 351.045l.843-.507s.504.676 1.22 1.435c.715.758 1.516 1.055 2.062 1.773a7.945 7.945 0 0 0 2.693 2.279c1.303.675 1.809.887 1.555 1.098-.252.212-1.135-.295-1.135-.295s-.378-.044-1.935-.971c-1.557-.927-1.935-1.434-2.945-2.32-1.009-.887-2.358-2.492-2.358-2.492zM339.418 359.115c-.589-.633-1.219-1.056-.883-1.395.337-.336.757-.294 1.305.17.546.465 2.103 1.939 2.818 2.574.716.633 1.304 1.014 2.02 1.561.715.549 2.272 1.392 3.028 1.814.757.423.042.468.042.468s-.59-.299-1.22-.51c-.63-.21-2.439-1.013-2.439-1.013s-.715-.337-1.683-1.012c-.967-.674-2.398-2.025-2.988-2.657zM331.558 364.56c-.504-1.011.042-.719.884-.378.841.338 2.734 2.406 3.828 3.163 1.093.758 2.02 1.055 2.944 1.521.926.464.926.716.882.928-.04.211-.418.211-.798.042-.379-.168-1.683-.929-1.683-.929s-.547-.166-1.053-.211c-.505-.042-1.219-.594-2.356-1.562-1.133-.97-2.142-1.558-2.648-2.574zM327.898 371.775c1.39.845 3.786 2.742 4.418 4.01.633 1.267 1.053 2.152.843 2.362-.21.211-.884-.211-1.179-.719-.294-.505-.926-1.266-.926-1.266s-2.397-2.36-3.28-2.91c-.884-.549-2.315-2.109-2.652-3.037-.336-.93-.084-1.434-.084-1.434s1.473 2.15 2.86 2.994z" fill="#b96b29"/> - <path d="M364.963 169.92c1.272-.747 4.692-2.21 8.334-2.518 3.64-.308 6.453.24 9.474 1.056 2.165.585 3.918.675 5.652.21 2.606-.695 4.626-3.047 5.313-5.928 0 0 2.403 3.08-.054 6.424-1.18 1.608-2.718 2.613-4.284 2.93-5.098 1.027-10.099-2.085-14.346-2.357-4.078-.266-7.28 2.32-7.28 2.32s-.965.802-2.324.011c-1.362-.795-1.757-1.401-.485-2.148z" fill="#c52126"/> - <path d="M379.648 317.49s.501-.05 1.203-.151c.702-.101 2.207-.603 2.658-.806.452-.2 1.154-.25 1.605.252.452.504 4.113 2.666 4.113 2.666h-6.069c-2.106 0-3.51-1.961-3.51-1.961z" fill="#d4af3a"/> - <path d="M362.563 316.455v-.606l.809-1.742s.943.593 1.863 1.544c1.183 1.228 2.457 2.955 3.025 3.684 1.011 1.295 2.424 2.513 1.212.444-1.212-2.067-1.615-2.958-2.584-4.336-.97-1.377-1.698-1.985-1.578-2.067.121-.081.891-.201 3.436-.525 2.544-.327 4.121-1.298 5.292-1.988 1.172-.688 3.273-1.822 3.273-1.822s4.323 1.822 5.94 2.227c1.617.405 2.586.648 1.011 1.419-1.576.77-2.908 1.013-3.676 1.497-.767.489-3.152 1.257-4.607 1.257-1.453 0-3.918.039-2.949 1.053.97 1.016 2.061 2.961 3.111 5.916 1.05 2.961 1.091 5.594 1.091 6.891 0 1.298-.16 2.592-.16 2.592s-1.778-1.983-6.547-4.981c-4.767-3-6.544-4.013-7.434-4.42-.888-.403-1.335-.403-1.171-1.537.159-1.135.643-3.931.643-4.5z" fill="#d4af3a"/> - <path d="M344.353 301.965a68.5 68.5 0 0 0 .885-.402c.08.021.153.043.22.078.559.28 3.467 2.238 4.642 4.141 1.174 1.901 2.349 2.07 1.063 0-1.287-2.073-2.238-3.246-3.244-4.141a23.401 23.401 0 0 0-1.016-.854c2.34-1.128 4.881-2.494 7.34-4.206.318.635.928 1.76 1.62 2.489 1.006 1.062 3.244 1.959 3.244 1.959s-1.789-1.847-2.406-3.246c-.391-.893-.648-1.854-.781-2.432 1.711-1.333 3.351-2.853 4.815-4.597.298 1.21 1.266 4.156 4.132 7.365 3.747 4.197 11.244 6.321 11.244 6.321s2.628.28.503.84c-2.126.56-3.636 1.51-7.776.781-4.139-.724-4.418-.894-4.977-1.059-.56-.169-2.07-.057 0 .726 2.068.782 6.88 1.508 8.725 1.343 1.847-.167 4.364-.56 1.734.84-2.629 1.4-3.748 1.957-5.37 1.957-1.623 0-2.293.504-3.86.504-1.567 0-2.012-.28-3.133-.504-1.119-.222-1.845.167-1.845.615 0 .447 1.51 1.677 1.454 4.755-.056 3.077-.279 5.091-.558 5.982-.282.899-.953 2.351-1.4 3.192-.447.839-.616 1.676-1.062-.112-.447-1.791-1.453-4.364-1.846-6.096-.392-1.734-.615-1.79-.783-2.685-.167-.896-1.119-1.566-.67.055a133.43 133.43 0 0 1 1.285 5.147c.337 1.455 1.119 4.138-.222 2.013-1.343-2.124-6.377-7.775-7.215-8.781-.839-1.007-1.51-1.959-2.126-2.796-.615-.84-2.349-1.959-3.189-3.189-.759-1.113-2.982-3.28-3.936-4.056 1.424-.605 2.925-1.238 4.51-1.947zM413.893 172.845c-.133 3.083-3.546 8.98-5.487 12.13-1.94 3.152-2.475 4.421-2.142 4.624.336.2 1.139-1.407 2.21-2.813 1.071-1.407 3.144-4.69 4.884-7.17 1.74-2.48 4.282-8.376 4.617-8.913.334-.535.47-.872 1.338-.203.87.671 2.542 7.172.534 11.596-2.007 4.422-5.018 7.636-6.288 9.178-1.272 1.542-2.945 3.954-2.676 4.157.267.199.735-.404 2.274-2.012 1.539-1.608 4.083-4.356 5.754-6.366 1.359-1.632 3.202-4.947 3.849-6.132.243-.449.556-.327.79-.093.551.553 1.433 1.839 1.049 5.354-.536 4.893-3.078 7.707-5.352 10.186-2.276 2.48-4.551 4.556-4.217 4.891.335.337 2.676-1.742 4.283-3.283 1.605-1.54 5.554-5.36 6.423-6.434.871-1.07 2.14-.537 2.074 3.686-.066 4.222-4.75 8.511-6.69 10.857-1.942 2.344-4.35 3.75-4.15 4.22.201.469 2.142-.736 3.412-1.609 1.271-.871 6.023-3.954 6.959-4.624.936-.669 1.405.603.201 4.624-1.205 4.019-4.685 7.236-6.758 8.71-2.074 1.474-5.419 3.281-5.218 3.754.2.468 1.605-.135 3.546-1.074 1.94-.938 4.281-1.809 5.955-2.277 1.674-.47 1.672.735 1.672.735s.336 3.417-2.14 6.165c-2.477 2.748-5.286 3.82-7.962 4.287-2.676.47-3.078.605-3.01 1.008.065.402.334.468.935.468.602 0 3.078.269 5.354.269 2.275 0 3.478.533 3.478 1.54 0 1.006.068 2.346-3.345 4.623-3.41 2.28-7.225 2.615-8.832 2.95-1.605.335-1.67.47-1.338.94.335.467 1.07.401 3.614.668 2.542.268 4.081 1.274 4.416 1.943.334.67-.201 2.682-2.277 4.088-2.073 1.408-4.749 1.878-8.765 1.609-4.015-.27-5.019-.336-5.152.336-.135.669 1.203.872 3.211 1.208 2.007.333 3.548.333 4.685 1.272 1.138.939.267 2.881-1.673 4.288-1.939 1.407-6.759 1.407-8.766 1.274-2.007-.134-5.085-.872-5.286-.336-.2.535 1.472 1.342 3.545 2.077 2.076.74 2.679 1.206 3.078 2.079.403.87.067 1.674-2.408 2.611-2.475.94-6.088.94-7.962.068-1.875-.87-2.877-1.208-3.213-.87-.333.338 0 .67.402 1.14.401.47 2.007 1.741 4.082 2.278 2.074.537 2.275.537 3.012 2.211.735 1.676-1.137 3.018-4.884 3.153-3.749.132-8.766-1.34-10.373-2.281-1.606-.939-2.208-1.139-2.475-.802-.267.334-.2.535.602 1.137.804.606 3.346 2.413 4.617 2.749 1.27.335 1.405 1.272 1.405 2.143 0 .87.335 2.614-3.01 3.419-3.347.804-7.293.203-10.907-2.346-1.164-.819-1.84-1.496-2.221-2.082.292-3.421.138-5.773-.273-7.942.71-.075 2.055-.28 3.432-.833 2.007-.802 2.81-2.679 3.279-3.685.47-1.005 1.137-1.005 1.941-.738.804.271 1.606.604 2.743.538 1.137-.066 3.546-.67 5.286-2.75 1.74-2.077 1.407-4.085 1.473-5.093.068-1.005 1.673-.267 2.475-.267.804 0 3.146-.336 5.285-1.81 2.142-1.474 2.142-3.484 2.343-4.29.201-.802 1.071-1.337 1.74-1.607.667-.267 1.74-.534 3.213-1.742 1.471-1.206 2.005-3.55 2.073-4.354.066-.804.937-.872 3.948-2.412 3.01-1.541 2.743-4.758 2.608-6.03-.133-1.275-1.537-2.345-1.537-2.817 0-.47 1.003-.602 2.007-1.206 1.003-.602 3.546-1.608 3.612-5.36.067-3.753-2.409-4.155-2.409-4.155s.47-.202 1.473-.804c1.003-.604 3.745-2.48 3.745-4.692 0-2.211-1.002-3.216-1.738-3.753-.737-.535-2.744-1.071-2.744-1.071s1.272-.805 1.808-2.547c.535-1.743.736-3.885-.534-5.427-1.272-1.542-3.413-1.542-4.551-1.542-1.139 0-2.14.603-2.543.27-.402-.336-.468-.603-.066-1.474.401-.87.468-3.017.134-3.752-.336-.738-.402-2.211-3.28-3.15-2.876-.937-5.887 1.005-6.824 1.542-.938.537-.536-.74-.536-1.675 0-.938 1.94-3.284 4.15-6.635 2.207-3.351 3.211-5.094 5.687-10.186 2.477-5.093 4.083-11.66 4.416-13.335.335-1.676 1.004-.873 1.004-.873s.669.27 2.208 4.155c1.536 3.888 1.803 7.44 1.67 10.519z" fill="#d4af3a"/> - <path d="M363.418 241.38c1.725-.087 3.965-1.034 5.688-3.537 1.722-2.503 4.31-3.11 8.792-3.024 4.482.087 6.55-2.07 7.671-5.176 1.12-3.11-.173-6.65-4.74-8.894-4.568-2.244-6.638-4.747-6.809-8.63-.172-3.885 4.566-8.719 9.308-14.157 4.741-5.437 8.446-13.122 8.446-13.122s1.379 1.814 1.379 3.626c0 1.812-.689 3.711 0 4.228.69.52.948-.775 3.705-1.984 2.758-1.209 5-1.38 6.723.604 1.723 1.985 0 5.438-1.551 7.079-1.553 1.64-2.844 2.85-2.414 3.454.431.605 2.759-.949 3.534-1.468.776-.519 2.586-2.502 5.258-2.244 2.671.258 3.621 1.035 3.879 3.28.258 2.244-2.414 4.227-4.137 5.093-1.724.861-2.414 1.64-1.982 1.983.431.346.863 0 1.638-.257.774-.259 2.93-.517 4.308 0 1.38.518 3.621 2.415 1.553 4.748-2.069 2.331-6.378 3.193-7.24 3.364-.862.173-1.294-.087-1.379.603-.086.693 1.81.693 4.137.78 2.326.087 3.016 2.33 2.671 4.056-.345 1.727-4.222 3.624-6.376 3.971-2.157.345-2.931 0-3.104.603-.174.603.258.862 1.466 1.209 1.206.343 3.534.604 3.966 2.503.43 1.9.516 2.762-1.295 4.404-1.81 1.64-4.741 1.38-5.602 1.208-.863-.171-1.898-1.124-2.759-.258-.86.861.777 1.552 2.243 2.589 1.465 1.038 1.378 3.022-1.12 4.404-2.5 1.383-5 .861-6.034.517-1.033-.343-2.413-1.984-3.102-.949-.69 1.035 2.154 1.381 3.362 2.848 1.206 1.466.775 3.882-1.638 5.35-2.414 1.468-6.378.431-7.068-.172-.689-.603-1.55-.86-2.067-.343-.516.514.258 1.896.775 3.105.516 1.209 1.466 4.747-2.155 6.129-3.621 1.38-6.896-1.727-7.499-2.333-.603-.603-1.206-.69-1.723-.43-.516.261-.26.777.172 1.381.431.603 1.379 3.192-1.206 5.007-1.765 1.238-3.691 1.146-4.735.966-.539-2.022-1.239-4.182-1.953-7.207h.54c.345 0 .414.518.414.725 0 .207-.104.379.208.379.311 0 .345.172.794.484.448.311.862.689 1.105.518.242-.172-.933-.795-1.243-1.174-.312-.381-.933-.968-.968-1.38-.034-.416-.241-.657-.862-1.175a2.345 2.345 0 0 1-.465-.538 97.893 97.893 0 0 1-1.193-7.223 57.121 57.121 0 0 1-.448-5.464l1.132-.059zM437.083 187.575c-3.85 7.79-9.288 12.175-9.288 12.175s.714-1.935 1.031-3.265c.313-1.332.069-2.838.069-2.838s1.365-1.75 3.886-5.637c2.522-3.886 3.852-9.629 3.852-9.629s-2.346 5.742-4.167 8.79c-1.822 3.047-3.924 5.532-3.924 5.532s-.733-2.694-1.26-2.835c-.525-.139-.91.281-1.365.875-.456.596-.843.54-.843.54s.623-1.286 1.58-2.828c.435-.7 1.07-1.456 1.518-2.164 1.435-2.268 4.53-6.577 6.117-10.889 1.587-4.312 5.06-15.124 5.664-18.302.603-3.176 1.207-1.437 1.812.909.603 2.344 1.434 5.671.906 10.662-.528 4.99-1.736 11.115-5.588 18.904zM432.103 208.605a135.863 135.863 0 0 1-3.549 2.494s.335-.781.546-1.719c.212-.937.302-2.868.302-2.868s1.689-1.482 2.865-2.508c1.176-1.027 2.655-2.356 5.58-5.98 2.925-3.626.573-1.449-1.809 1.149-2.382 2.598-6.938 6.372-6.938 6.372s0-.06-.03-.845a3.123 3.123 0 0 0-.694-1.902c-.423-.544-.2-.62 2.368-2.586 2.567-1.966 9.213-9.453 11.931-13.917 2.72-4.462 5.664-10.512 5.664-10.512s1.434 8.925-4.003 18.756c-5.436 9.83-10.799 13.007-12.233 14.066zM403.573 264.9c-2.979-1.155-2.163-4.093-2.163-4.141 0-.049 1.827.578 3.507 1.202 1.683.629 5.816 1.83 7.45 1.877 1.631.048 1.631-.19 1.681-.432.048-.239-1.25 0-3.603-.432-2.355-.434-6.488-2.6-7.208-3.08-.72-.483-.624-.58.432-.676 1.058-.095 1.97-.578 2.355-.912.383-.338 1.488.145 4.18.772 2.692.624 8.266 1.587 12.542 1.587 4.277 0 8.264-.721 8.937-.867.674-.144 1.394.242-.673 3.708-2.066 3.464-9.323 5.342-14.367 5.292-5.045-.05-10.09-2.745-13.07-3.898zM416.983 257.745c-5.205.043-7.146-1.503-7.146-1.503s0-.266.705-1.325c.707-1.058.573-2.87.573-2.87s1.236.22 3.398.53c2.161.31 4.675.619 7.455.133 2.78-.486 1.587-.795-.618-.531-2.207.265-6.44-.531-7.808-1.016-1.366-.486-.793-.927.132-1.239.926-.306 3.44-1.899 3.44-1.899s6.307.795 12.174.135c5.866-.666 9.573-2.166 10.764-2.343 1.191-.177 1.147.31 1.147.31s.31.528-1.719 3.707c-2.029 3.184-6 5.26-9.352 6.231-3.353.974-7.94 1.637-13.145 1.68zM418.318 245.55s.221-.309.53-1.371c.309-1.06-.573-1.854-.573-1.854s1.191-.352 5.073-.84c3.882-.486 4.101-.795 6.484-1.326 2.382-.53 3.97-1.236 3.926-1.502-.044-.265-.794.134-2.205.662-1.41.531-7.367 1.149-9.88 1.503-2.515.352-3.926.62-4.367.352-.441-.265-1.985-.663-1.985-.663s1.06-.306 2.382-.529c1.325-.22 2.514-.795 3.22-1.281.706-.486.926-.621 4.102-.97 3.177-.353 5.734-1.372 11.425-3.448 5.688-2.077 9.97-4.549 11.115-5.476 1.148-.927 1.06-.264.75.927-.309 1.194-.264 2.694-3.132 6.051-2.866 3.358-4.278 4.815-11.51 7.468-7.238 2.65-15.355 2.297-15.355 2.297zM439.708 227.925c-6.396 4.506-13.891 6.16-15.481 6.36-.357-.417.387-1.914.045-2.827-.414-1.094-1.104-1.104-2.648-1.193-1.543-.091-.529-.399-.177-.399.353 0 .441-.043 3-.706 2.56-.66 5.16-1.061 8.688-2.387 3.53-1.324 4.587-2.296 4.5-2.562-.088-.264-1.632.842-4.897 2.078-3.264 1.236-7.058 1.722-9.13 2.166-2.074.437-.265-.445.706-1.019.97-.576 2.338-2.696 2.338-2.696s2.294-.397 6.042-1.545c3.75-1.148 6.881-2.431 10.013-4.196 1.075-.61 2.116-1.394 3.238-2.2 2.147-1.539 4.304-3.112 5.142-3.72 1.281-.927.882-.177.75.398s-1.014 3.227-3.042 6.141c-2.029 2.916-2.69 3.8-9.087 8.307zM440.758 215.25c-6.307 4.994-11.731 6.535-12.658 6.934-.926.4-.839-.131-.662-.661.177-.531.311-2.251.311-2.251s2.25-1.283 4.764-2.741c2.514-1.46 5.292-3.445 7.144-4.725 1.853-1.281.75-1.192.177-.71-.573.487-3.132 1.99-5.689 3.58-2.559 1.591-6.44 3.888-6.44 3.888s-.088-.839-.618-1.37c-.529-.531-1.85-.396-1.85-.396s.661-.663 1.058-1.281c.396-.621 2.471-1.281 4.808-2.388 2.338-1.102 6.53-4.194 9.616-6.801 3.087-2.605 9.087-9.144 9.483-9.675.398-.531.662-.441.707.22.043.662.264 1.105-.398 4.109-.666 3.003-3.444 9.276-9.753 14.268zM418.438 168.045c-.715 1.485-1.498 2.607-2.062 3.575-.852 1.46-1.332 2.407-1.332 2.407s-.171-.514-.036-1.392c.135-.877.27-2.094.033-3.545-.125-.777-.293-1.55-.25-2.24.049-.785.311-1.463.418-1.91.202-.846 1.111-4.524 1.551-7.122.438-2.6.909-6.312.876-9.588-.033-3.275-.506-1.621-.506-.033 0 1.589-.168 4.019-.673 7.764-.506 3.747-2.09 9.451-2.09 9.451s-.1-.877-.573-2.126c-.472-1.25-1.248-2.666-1.854-4.22-.606-1.552-.393-1.812-.393-1.812s2.214-10.599 2.796-15.609c.584-5.009 1.515-18.174 1.515-18.174 3.24 3.26 5.65 11.838 6.078 19.951.321 6.113-.666 11.771-.952 14.064-.567 4.542-1.356 8.088-2.546 10.559zM425.623 184.77c-.1-2.4-.652-4.216-2.2-4.749 0 0 1.37-2.401 2.566-5.824.818-2.345 1.494-5.351 1.838-7.658.846-5.68 1.524-11.532-.17-1.95-1.692 9.58-3.724 12.972-3.724 12.972l-2.456 3.986c.363-1.751.42-2.981.327-4.893-.093-1.913-.337-4.503-.919-6.554 0 0 2.964-5.934 4.825-13.059 1.862-7.125 2.927-13.603 2.964-17.466.17-3.732.254-5.173.254-5.173s3.046 2.289 4.062 13.905c1.017 11.617-2.033 22.726-3.555 26.967-1.524 4.237-3.812 9.496-3.812 9.496zM392.383 273.36s.48-.336 1.922-1.251c1.441-.912 1.008-3.657 1.008-3.657s.384.288 1.443 1.011c1.057.722 2.257 1.538 3.699 2.117 1.441.579 2.163.963 3.075 1.25.913.29.672-.094-.096-.529-.768-.432-1.01-.673-2.933-1.443-1.92-.771-5.764-4.14-5.764-4.14s.913-.096 2.499-.144c1.585-.048 3.604-.865 3.604-.865s1.584 1.443 7.976 4.185c6.391 2.745 11.821 3.465 11.821 3.465s-.673 3.274-3.748 4.381c-2.547 1.107-6.056 1.78-12.927.146-6.87-1.635-11.579-4.526-11.579-4.526zM383.968 279.915c-.529-2.699 1.01-4.575 1.01-4.575s.336.192 1.296 1.059c.961.867 2.356 2.504 5.046 3.849 2.69 1.346 3.652 1.251 1.057-.145-2.595-1.397-6.391-5.342-6.391-5.342l1.008-.386c1.011-.385 2.74.289 9.948 4.619 7.207 4.332 11.437 4.478 11.437 4.478s-3.219 3.898-11.965 3.609c-8.747-.285-11.918-4.473-12.446-7.166zM367.438 276.78s.962 1.345 2.26 2.212c1.297.867 4.756 1.397 4.756 1.397s.144.385.816 1.251c.673.867 2.163 2.937 3.7 4.044 1.536 1.107 3.941 1.827 4.085 1.537.144-.289-1.394-.865-2.883-1.78-1.49-.912-2.835-2.6-3.845-3.753-1.009-1.157.432-.963.432-.963s1.826.046 3.509-.096c1.681-.147 1.345 0 1.825.819s1.154 1.539 2.403 2.983c1.524 1.761 2.972 3.357 4.421 5.099.96 1.156.24 1.492.24 1.492s-.434.723-4.325 1.155c-2.403.269-5.005-.034-7.744-1.614-1.697-.984-3.447-2.542-5.232-4.497-4.658-5.098-4.418-9.286-4.418-9.286zM365.368 287.31c.962 1.252 1.491 1.782 1.491 1.782s-.673-2.07-1.249-3.033c-.308-.513-.64-1-.888-1.341.643-1.446 1.171-3 1.561-4.676.428 1.385 1.758 5.447 3.411 8.088 2.016 3.222 3.797 4.379 2.643 5.243-1.153.867-3.41 1.06-5.959-.192-2.46-1.208-3.171-3.317-3.52-5.019a24.77 24.77 0 0 0 1.211-2.091c.318.196.78.564 1.3 1.239z" fill="#d4af3a"/> - <ellipse cx="-365.939" cy="158.625" ry="1.638" rx="1.788" transform="scale(-1 1)" fill="#d4af3a"/> - <path d="M369.703 155.535c-1.632-.039-2.509-.811-4.31-.637-2.126.207-5.006 1.446-8.504 3.303-2.735 1.236-6.345 1.854-9.822.856-.974-.28-1.937-.813-2.868-1.338-4.253-2.409-3.224-7.156-3.224-7.156 3.138 2.263 7.017 3.48 10.631 3.234 0 0-.275.207-.891.826-.618.62-1.748 1.34-1.373 1.653.374.31 1.92-1.171 3.224-2.134 1.303-.965 3.223-2.271 6.516-3.231 3.292-.966 6.996-1.032 9.465.34 2.469 1.379 2.674 3.099 2.331 3.786-.189.386-.644.512-1.175.498zM323.488 190.2c.755-.207 2.057-.412 3.771-1.995 1.716-1.581 5.831-6.123 6.312-6.948.48-.827.275-1.583-.892-2.066-1.166-.48-1.989-1.995-1.989-1.995s2.536-.964 4.251-2.203c1.716-1.236 5.694-4.815 6.243-5.709.549-.894.274-1.032-.549-1.307-.825-.276-1.03-.826-1.03-.826s1.852-1.169 3.565-2.544c1.716-1.376 4.047-3.647 4.047-3.647 2.57 1.032 6.601.597 8.78.207 3.841-.687 6.652-2.27 6.652-2.27s.138.619.618 1.789c.48 1.168 2.263 1.858 4.047.687 1.783-1.169 1.372-3.714 1.372-3.714s1.44-.894 4.39-1.995c2.948-1.101 5.348-1.239 7.75-.138 2.401 1.1 3.567 4.402 3.567 6.88 0 2.475-1.305 1.445-1.578 1.098-.275-.343-.824-2.133-3.842-2.613-3.018-.483-5.761.963-9.19 3.782-3.429 2.823-4.184 3.028-5.898 4.816-1.715 1.79-.344 2.751 2.605 3.716 2.95.964 6.722-.963 6.86-.893.567.284-1.272 2.907-3.816 3.899-2.544.99-5.796.348-8.325-.666-1.715-.687-2.034.022-2.537.55-2.785 2.928-3.51 5.672-3.978 9.014-1.423-.438-2.409-1.86-2.607-3.027-.094-.56-.274-1.79-1.234-.896-.96.896-1.715 5.847-1.715 8.118s.687 5.298.687 5.298l-.687-.069c-.412-.069-1.234-.55-2.332-1.168-1.097-.621-1.166.069-1.166 1.306 0 1.238-.41 3.578-2.058 7.775-1.647 4.197-4.047 5.571-4.047 5.571s-.481-.825-.961-2.475c-.479-1.652-.824-4.884-.824-7.706 0-2.821.755-8.875.755-8.875s-3.43 4.197-6.996 5.23c-3.567 1.032-7.134.413-8.643-1.308-1.505-1.719-.132-2.475.622-2.683z" fill="#d4af3a"/> - <path d="M346.948 201.06s1.083 2.396 1.674 3.249c.591.854.854.987.854.987s-1.083.918-2.66 1.41a35.445 35.445 0 0 1-2.988.787s1.775-2.431 2.397-4.137c.624-1.707.723-2.296.723-2.296zM325.528 199.65a71.58 71.58 0 0 1 .854-2.102c2.188.439 6.34-.589 8.143-1.673 0 0-1.642 3.346-3.283 4.497-1.643 1.149-1.872 1.215-1.872 1.215s1.641.264 3.841-1.904c2.2-2.167 3.185-4.663 3.185-4.663s-.492 5.779.394 9.324c.887 3.544 1.083 4.005 1.083 4.005s-4.66.82-9.849-.624c-5.187-1.446-5.58-1.905-5.58-1.905s-.622-.164.197-1.247c.82-1.081 2.362-3.577 2.887-4.923z" fill="#d4af3a"/> - <path d="M334.948 186.96c1.596-1.835 1.755-2.274 1.755-2.274s.558.558.081 1.357c-.478.797-2.752 2.79-4.308 3.668-1.557.877-3.11 1.156-3.11 1.156l.079-.319c0 .001 3.909-1.754 5.503-3.588zM341.278 199.005s.4-7.26.4-8.337.677-.798.677-.798l.797.358-1.56 10.616c-.17 1.143-.732 1.046-1.02.995.57-.296.682-2.503.706-2.834zM351.073 167.58c.593-.591 1.925-1.034.641.396-1.283 1.431-2.963 3.21-3.455 4.692-.495 1.48-.79 3.306.048 2.912.84-.397 1.433-.397 2.321-1.136.89-.741 2.566-1.977 3.258-2.172.691-.198 1.924 0 .937 1.085-.987 1.087-2.074 2.125-3.949 3.505-1.877 1.383-2.963 1.974-3.95 2.666a36.877 36.877 0 0 1-1.974 1.284s.89-5.924 2.519-8.54c1.629-2.616 3.012-4.098 3.604-4.692zM383.083 266.805c1.203.912 2.78 1.286 2.78 1.286s.747-.04.747.25-.872 0-1.784-.165c-.912-.167-2.157-1.08-2.613-1.411-.456-.333-1.12-.749-.912-1.331.207-.582.581.458 1.782 1.371zM372.748 272.34c.25.288 2.24 1.785 2.24 1.785s.622.414 1.287.663c.663.25.828.625.828.625s-.125.164-.828-.04c-.705-.21-2.781-1.663-3.443-2.245-.663-.584-.955-.747-.706-.996.247-.25.372-.083.622.208zM414.643 197.895c-.372.453-.825 1.073-1.032.866-.207-.206.042-.413.537-.992.495-.578.783-.867.783-.867s.701-1.116 1.115-1.53c.412-.412 1.032-.62.247.33-.784.953-1.279 1.737-1.65 2.193zM417.823 204.87c-.453.415-.865.784-1.36 1.321-.495.537-.867 1.115-1.155.827-.29-.29.742-.907 1.195-1.488.455-.579.825-.95 1.404-1.404a9.965 9.965 0 0 1 1.28-.827s-.909 1.158-1.364 1.571zM416.638 216.135c-.787.83-1.948 1.079-2.115.749-.166-.333.083-.6.744-.93.659-.33 1.733-1.033 2.27-1.405.535-.373 1.072-.786 1.444-1.156.371-.372.81-.707.948-.58.138.127-1.093 1.452-1.465 1.66-.374.207-1.038.831-1.826 1.662zM414.358 225.15c0-.332-.08-.496.582-.54.663-.04 1.577-.164 1.577-.164s1.285-.499 1.37-.25c.082.25-1.079.75-1.577.833-.498.084-1.119.249-1.409.412-.292.165-.543.039-.543-.291zM413.368 234.945c1.409 0 2.613-.335 2.696-.126.082.208-.663.541-1.37.789-.706.25-2.034.333-2.946.373-.912.041-1.078-.165-1.036-.62.042-.46 1.245-.416 2.656-.416zM402.328 245.67c.207-.207.705-.04 1.494.124.786.168 2.073.417 2.82.377.747-.04 2.364-.084 2.364-.084l.912.207c0 .208-1.201.166-2.944.373-1.742.209-2.903-.165-3.732-.29-.831-.125-1.122-.497-.914-.707zM397.768 253.305c.872.333 1.493.414 2.157.414.663 0 2.24.291 2.24.291s.747.084.622.375c-.124.29-.373 0-1.035-.084-.664-.084-1.162 0-2.323-.04-1.161-.043-1.826-.335-2.53-.458-.706-.126-1.493-.5-1.121-.957.373-.455 1.119.126 1.99.459zM388.888 259.08c.498.5 2.406 1.786 2.406 1.786s.374.291 1.121.665c.747.373.705.541.58.748-.124.207-.58-.29-.994-.457-.414-.167-1.784-1.083-2.489-1.66-.705-.586-1.617-1.042-1.45-1.456.163-.415.328-.123.826.374zM403.663 184.305s-.165.38-1.696 2.296c-1.533 1.916-.713.109-.329-.38.384-.495 2.627-3.666 3.393-4.544.765-.876.875-.438.492.108-.384.548-1.86 2.52-1.86 2.52zM406.888 194.145c-.219-.219.275-.438 1.15-1.532.875-1.094 2.626-3.337 2.626-3.337s.493-1.04.657-.931c.163.109-.602 1.75-1.313 2.464-.712.711-1.64 2.079-2.134 2.68-.494.602-.767.875-.986.656zM402.643 212.595c0-.535 1.733-.455 2.516-.62.784-.164 2.187-.454 2.187-.454s1.651-.29 1.692-.082c.042.204-.33.41-1.238.579-.907.163-2.269.577-3.301.742-1.032.165-1.856.374-1.856-.165zM406.888 202.635c-1.149.93-1.914 1.368-2.517 1.696-.601.327-1.093.822-1.423.438-.329-.385.274-.657 1.258-1.095.986-.438 1.478-.82 1.478-.82s.547-.273 1.041-.548c.493-.273 1.314-.601.163.329zM396.988 196.065c.713-.602 1.314-.933 1.314-.933s.875-.82 1.04-.547c.163.275-.984 1.094-1.532 1.586-.547.494-1.533 1.917-2.025 1.643-.492-.273.494-1.147 1.203-1.749zM403.453 221.775s.956.247 1.577.414c.621.167.663.459-.458.459-1.12 0-1.576-.291-2.695-.501-1.12-.207-1.496-.332-1.328-.705.165-.375.747-.249 1.203-.125.456.125 1.701.458 1.701.458zM401.713 231.09c.083.21-.787 0-1.368-.207-.58-.208-1.783-.83-2.488-1.038-.707-.207-.707-.333-.707-.749 0-.414.749-.084 1.66.209.911.291 2.074 1.206 2.074 1.206s.747.372.83.579zM389.728 236.73c-.83-.501-.997-.873-.705-1.123.29-.248.539-.208 1.202.332.664.54 1.95 1.454 1.95 1.454s.663.25 1.161.5c.498.248 1.12.664.954.913-.165.249-1.203 0-1.742-.458-.54-.456-1.992-1.122-2.82-1.618zM384.073 244.215c-.331-.292-1.326-.621-1.783-.956-.456-.332-.747-1.328-.374-1.453.374-.124.581.414 1.368.995.79.583 3.485 2.368 3.485 2.368l.706.291c.747.29.414.5-.208.415-.623-.085-1.037-.085-1.784-.662-.745-.582-1.077-.707-1.41-.998zM375.703 251.31c-.706-.29-1.743-1.204-2.24-1.659-.497-.459-1.12-1.04-.748-1.33.375-.29.788.084 1.37.62.58.542 2.116 2.162 2.116 2.162s.207.04 1.037.707c.83.663-.042.538-.332.249-.29-.29-.499-.458-1.203-.749z" fill="#b96b29"/> - <path fill="#d4af3a" d="M338.203 142.485l3.975-1.019 2.55 2.036-3.15 1.38z"/> - <ellipse cx="-330.779" cy="142.074" transform="scale(-1 1)" ry="3.103" rx="3.219" fill="#b96b29"/> - <ellipse ry="1.855" cy="141.417" rx="1.942" cx="-330.779" transform="scale(-1 1)" fill="#d4af3a"/> - <path d="M337.498 131.412c-.828.307-1.905.172-1.905.172s-.325-1.427.462-2.123c.788-.693 1.5-1.194 1.962-1.658.462-.465.576-.62.576-.62s0 1.235.06 2.008c.056.774-.328 1.91-1.155 2.221z" fill="#d4af3a"/> - <ellipse ry=".559" cy="132.975" rx=".591" cx="-335.788" transform="scale(-1 1)" fill="#d4af3a"/> - <path d="M340.183 132.375c.251.348.788.906.788.906s-.654.02-1.193.405c-.538.387-1.231.714-1.866.637-.634-.079-.904-.678-.769-1.1.133-.425.441-.866 1.48-1.255 1.04-.383 1.31.059 1.56.407z" fill="#d4af3a"/> - <path d="M337.933 136.134c2.022.181 4.694-2.054 4.694-2.054.249 1.796 1.359 2.727 3.06 3.068l-.156.08s-1.581.808-3.449 1.091c-.844.13-1.596-.016-2.503-.198-1.095-.222-2.327-.534-2.993-.945-1.219-.753-.855-2.704-.855-2.704s.179 1.479 2.202 1.662zM345.808 134.106c.83-.312 2.075-.91 2.594-.938.519-.025 1.272-.156 1.141.807-.129.963-1.114 1.431-2.073 1.457-.96.027-1.453-.338-2.023-.625-.572-.285-.468-.389.361-.701zM352.138 130.671c.906-.65 1.713-.831 1.713-.831s.596 1.562.26 2.525c-.338.962-1.038 1.22-1.893 1.193-.857-.024-2.127-.468-1.764-1.117.361-.648.777-1.119 1.684-1.77z" fill="#d4af3a"/> - <ellipse ry=".504" cy="135.061" rx=".699" cx="-351.314" transform="scale(-1 1)" fill="#d4af3a"/> - <path d="M349.378 127.297c.561-2.66.467-5.555-2.055-9.244-2.523-3.69-6.91-5.184-6.91-5.184s-.14-.28-1.54-1.773c-1.402-1.496-4.25-3.361-4.25-3.361s3.306.815 5.185 1.417l-.002.099c0 1.276 1.014 2.312 2.265 2.312.477 0 .923-.154 1.289-.412 1.02.199 4.416 2.228 5.284 2.953a2.332 2.332 0 0 0-.342 1.217c0 1.274 1.016 2.31 2.267 2.31.375 0 .727-.091 1.04-.257.101.162.197.325.289.492a23.365 23.365 0 0 1 1.624 3.717c-.58.4-.969 1.149-.969 2.004 0 1.269.86 2.3 1.922 2.311.073.747.067 1.269.039 1.493-.093.748-.374 1.215-1.68 1.588-1.308.373-3.083 2.661-3.083 2.661-.126 0-1.059-1.68-.373-4.342z" fill="#d4af3a"/> - <path d="M341.338 110.259c-.477-.387-.56-.98-.181-1.319.375-.34 1.066-.3 1.543.09.476.39.56.983.182 1.322-.377.339-1.068.3-1.544-.093zM349.798 115.975c-.535-.488-.63-1.228-.204-1.655.425-.427 1.205-.376 1.743.113.537.486.629 1.227.204 1.653-.424.428-1.204.377-1.743-.11z" fill="#d4af3a"/> - <ellipse ry="1.284" cy="123.163" rx="1.306" cx="-354.839" transform="scale(-1 1)" fill="#d4af3a"/> - <path d="M326.638 105.025c.678.149 1.932.557 3.809 1.54h-.035c-1.305 0-2.319.833-2.319 1.913 0 1.082 1.187 2.257 2.49 2.257 1.304 0 2.192-1.133 2.192-2.215 0-.253-.06-.499-.167-.722.557.343 1.151.722 1.784 1.15 4.156 2.802 5.136 4.157 7.19 7.986 2.054 3.826 2.801 8.03 1.915 10.505-.888 2.473-4.157 2.988-4.203 2.988-.047 0 .373-.374.421-.839.047-.47-.094-.702-.234-1.637-.139-.931-.046-2.051-.046-2.051s-.747-.095-1.167.42c-.422.512-1.029 1.12-1.448 1.631-.42.514-1.54 1.496-1.54 1.496s-.656-.936-.656-2.057c0-1.118.747-2.332.888-4.294.141-1.962-.888-5.465-2.8-8.031-1.916-2.568-5.51-4.902-6.584-5.417-1.074-.511-1.26-1.307-1.308-1.774-.046-.467-.139-.792-.232-1.96-.096-1.168.978-1.121 2.05-.889z" fill="#d4af3a"/> - <path d="M330.763 109.46c-.735 0-1.404-.662-1.404-1.268 0-.607.572-1.075 1.308-1.075.735 0 1.332.493 1.332 1.097 0 .605-.499 1.246-1.236 1.246zM324.583 133.874c-1.002.408-2.133.178-2.665-.177-.533-.357-.713-1.265-.081-1.784.628-.517 1.566-.5 2.148-.177.582.324 1.891 1.247 1.891 1.247s-.29.486-1.293.89z" fill="#d4af3a"/> - <path d="M321.373 134.999c.362.558.629.897 1.742.945 1.113.048 2.32-.024 3.046-.752.726-.726 1.233-1.746 1.233-1.746l1.257-.024s.41 1.748.966 2.229c.557.486 2.492.56 3.338-.072.846-.631 1.62-1.407 1.764-1.31.144.098 0 .728-.87 1.48-.87.75-1.473 1.213-2.877 1.213h-7.977s-1.62.095-2.08-.874c-.46-.97-.48-1.577-.266-1.818.216-.242.361.169.724.728z" fill="#d4af3a"/> - <path d="M333.508 133.647c-1.197.664-1.858.26-2.293-.276-.438-.534-.518-.777-.518-.777s1.131-.406 1.68-.73c.551-.323.921-.632 1.47-.568.551.066.63.147.63.147s.227 1.538-.969 2.204z" fill="#d4af3a"/> - <ellipse ry="2.639" cy="121.86" rx="2.662" cx="-339.284" transform="scale(-1 1)" fill="#b96b29"/> - <path d="M334.663 112.716c1.065-.717 2.63-.43 3.497.639.864 1.072.7 2.524-.368 3.24-1.065.718-2.632.43-3.498-.639-.864-1.068-.699-2.52.37-3.24z" fill="#b96b29"/> - <ellipse ry="1.474" cy="121.518" rx="1.546" cx="-339.388" transform="scale(-1 1)" fill="#d4af3a"/> - <path d="M335.773 113.007c.686-.188 1.533.15 1.89.753.357.605-.02 1.248-.934 1.434-1.682.344-2.483-1.768-.956-2.187z" fill="#d4af3a"/> -</svg> diff --git a/img/flags/4x3/mf.svg b/img/flags/4x3/mf.svg deleted file mode 100644 index b17c8ad..0000000 --- a/img/flags/4x3/mf.svg +++ /dev/null @@ -1,7 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" height="480" width="640" viewBox="0 0 640 480"> - <g fill-rule="evenodd" stroke-width="1pt"> - <path fill="#fff" d="M0 0h640v480H0z"/> - <path fill="#00267f" d="M0 0h213.337v480H0z"/> - <path fill="#f31830" d="M426.662 0H640v480H426.662z"/> - </g> -</svg> diff --git a/img/flags/4x3/mg.svg b/img/flags/4x3/mg.svg deleted file mode 100644 index cce2bf1..0000000 --- a/img/flags/4x3/mg.svg +++ /dev/null @@ -1,7 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" height="480" width="640" viewBox="0 0 640 480"> - <g stroke-width="1pt" fill-rule="evenodd"> - <path fill="#ff3319" d="M213.33 0H640v240H213.33z"/> - <path fill="#00cc28" d="M213.33 240H640v240H213.33z"/> - <path fill="#fff" d="M0 0h213.33v480H0z"/> - </g> -</svg> diff --git a/img/flags/4x3/mh.svg b/img/flags/4x3/mh.svg deleted file mode 100644 index ed16809..0000000 --- a/img/flags/4x3/mh.svg +++ /dev/null @@ -1,7 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" height="480" width="640" viewBox="0 0 640 480"> - <g fill-rule="evenodd"> - <path fill="#3b5aa3" d="M0 0h639.864v480H0z"/> - <path d="M0 467.08L639.904 0l-.027 86.915L0 479.995v-12.92z" fill="#e2ae57"/> - <path d="M22.397 479.98L639.98 179.22l-.133-95.479-639.85 396.26 22.396-.02zM175.32 15.163l-6.314 102.79-27.01-65.552 10.361 69.775-41.83-56.378 27.42 64.338L83.012 87.52l42.765 53.546-62.102-27.52 54.392 41.19-67.65-8.95 63.93 25.34-100.35 9.18 100.59 6.723-63.742 26.207 66.972-9.062-54.195 40.018 62.891-27.595-42.896 53.99 54.573-41.318-27.036 62.889 43.684-54.69-11.824 68.173 27.478-63.7 6.212 100.63 9.69-100.38 23.692 64.088-9.032-69.057 43.468 54.738-28.561-63.93 54.55 43.996-43.37-54.93 64.834 26.995-57.38-41.902 69.879 11.78-66.896-25.694 104.05-6.46-104.05-9.691 68.486-22.828-70.972 8.914 58.638-40.996-66.091 26.586 45.644-55.334-55.582 43.408 26.746-66.412-43.146 56.474 9.267-70.43-25.665 66.455-9.587-102.79z" fill="#fff"/> - </g> -</svg> diff --git a/img/flags/4x3/mk.svg b/img/flags/4x3/mk.svg deleted file mode 100644 index 1bbecc7..0000000 --- a/img/flags/4x3/mk.svg +++ /dev/null @@ -1,5 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" height="480" width="640" viewBox="0 0 640 480"> - <path fill="#d20000" d="M0 0h640v480H0z"/> - <path d="M0 0h96l224 231.43L544 0h96L0 480h96l224-231.43L544 480h96zm640 192v96L0 192v96zM280 0l40 205.714L360 0zm0 480l40-205.714L360 480z" fill="#ffe600"/> - <circle r="77.143" cy="240" cx="320" fill="#ffe600" stroke="#d20000" stroke-width="17.143"/> -</svg> diff --git a/img/flags/4x3/ml.svg b/img/flags/4x3/ml.svg deleted file mode 100644 index cb24844..0000000 --- a/img/flags/4x3/ml.svg +++ /dev/null @@ -1,7 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" height="480" width="640" viewBox="0 0 640 480"> - <g fill-rule="evenodd"> - <path fill="red" d="M425.75 0H640v480H425.75z"/> - <path fill="#009a00" d="M0 0h212.88v480H0z"/> - <path fill="#ff0" d="M212.88 0h213.95v480H212.88z"/> - </g> -</svg> diff --git a/img/flags/4x3/mm.svg b/img/flags/4x3/mm.svg deleted file mode 100644 index 07480bc..0000000 --- a/img/flags/4x3/mm.svg +++ /dev/null @@ -1,16 +0,0 @@ -<svg xmlns:xlink="http://www.w3.org/1999/xlink" xmlns="http://www.w3.org/2000/svg" height="480" width="640" viewBox="0 0 640 480"> - <defs> - <path id="a" transform="scale(8.844)" fill="#fff" d="M0-.5l.162.5h-.324z"/> - <g id="b"> - <use xlink:href="#a" transform="rotate(-144)" width="18" height="12"/> - <use xlink:href="#a" transform="rotate(-72)" width="18" height="12"/> - <use xlink:href="#a" width="18" height="12"/> - <use xlink:href="#a" transform="rotate(72)" width="18" height="12"/> - <use xlink:href="#a" transform="rotate(144)" width="18" height="12"/> - </g> - </defs> - <path d="M0-.1h640V160H0z" fill="#fecb00"/> - <path d="M0 320h640v160H0z" fill="#ea2839"/> - <path d="M0 160h640v160H0z" fill="#34b233"/> - <use xlink:href="#b" x="9" y="6.422" width="18" height="12" transform="matrix(40 0 0 40 -40 0)"/> -</svg> diff --git a/img/flags/4x3/mn.svg b/img/flags/4x3/mn.svg deleted file mode 100644 index 766d2b1..0000000 --- a/img/flags/4x3/mn.svg +++ /dev/null @@ -1,13 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" height="480" width="640" viewBox="0 0 640 480"> - <path fill="#c4272f" d="M-.05 0h640.1v480H-.05z"/> - <path fill="#015197" d="M213.317 0h213.367v480H213.317z"/> - <circle cx="107" cy="189.056" r="35" fill="#f9cf02"/> - <circle cx="107" cy="173.147" r="38.182" fill="#c4272f"/> - <path d="M91.113 131.805c0 8.774 7.113 15.887 15.887 15.887 8.774 0 15.887-7.113 15.887-15.887 0-6.355-3.972-7.15-3.972-9.532 0-2.383 2.383-5.56-2.383-9.533 2.383 3.972-1.588 4.767-1.588 8.738 0 3.972 1.588 3.972 1.588 7.15a3.177 3.177 0 0 1-6.355 0c0-3.178 3.178-6.355 3.178-11.121 0-4.767-.795-6.355-3.178-10.327-2.383-3.972-6.354-7.15-3.177-10.327-4.766 1.59-2.383 7.944-2.383 11.916 0 3.971-3.177 6.355-3.177 11.12 0 4.767 2.383 5.561 2.383 8.739a3.177 3.177 0 0 1-6.355 0c0-3.178 1.588-3.178 1.588-7.15 0-3.971-3.971-4.766-1.588-8.738-4.766 3.972-2.383 7.15-2.383 9.533 0 2.383-3.972 3.177-3.972 9.532z" fill="#f9cf02" fill-rule="evenodd"/> - <circle cx="107" cy="179.51" r="25.455" fill="#f9cf02"/> - <path d="M37 230.42v152.727h31.818V230.419zm108.182 0v152.727H177V230.419zm-70 25.454V268.6h63.636v-12.727zm0 89.09v12.728h63.636v-12.727zm0-114.545h63.636L107 249.51zm0 133.637h63.636L107 383.146z" fill="#f9cf02"/> - <circle cx="107" cy="306.783" r="33.727" fill="#f9cf02" stroke="#c4272f" stroke-width="3.818"/> - <path d="M107 273.056a16.864 16.864 0 0 1 0 33.727 16.864 16.864 0 1 0 0 33.727" fill="none" stroke="#c4272f" stroke-width="3.818"/> - <circle r="6.364" cy="289.919" cx="107" fill="#c4272f"/> - <circle r="6.364" cy="323.647" cx="107" fill="#c4272f"/> -</svg> diff --git a/img/flags/4x3/mo.svg b/img/flags/4x3/mo.svg deleted file mode 100644 index 074c2e9..0000000 --- a/img/flags/4x3/mo.svg +++ /dev/null @@ -1,9 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" height="480" width="640" viewBox="0 0 640 480"> - <path fill="#00785e" d="M0 0h640v480H0z"/> - <path fill="#fbd116" d="M294.915 108.727L335.5 138.21 320 90.5l-15.5 47.71 40.585-29.483z"/> - <g id="a"> - <path d="M320 331.625H217.523a146.33 146.33 0 0 1-3.805-4H320a2.14 2.14 0 0 1 1.425 1.894c.046.92-.533 1.783-1.425 2.105zm0-31.336c.595-1.216 1.753-4.03 1.227-7.55a12.39 12.39 0 0 0-1.227-3.81c-5.75 5.44-16.555 14.16-32.493 18.982A81.04 81.04 0 0 1 264 311.374h-63.133a144.396 144.396 0 0 0 5.852 8h61.03c19.9 0 38.13-7.18 52.25-19.085zm-109.594-24.696a32.286 32.286 0 0 1-9.695 2.1c14.87 16.818 36.596 27.43 60.79 27.43 22.98 0 43.736-9.572 58.5-24.945a440.94 440.94 0 0 0 4.546-58.908 440.923 440.923 0 0 0-4.546-67.67c-6.595 5.91-18.95 18.684-24.775 38.267a81.045 81.045 0 0 0-3.35 23.13c0 16.68 5.042 32.188 13.687 45.086-10.616-13.713-16.938-30.914-16.938-49.586 0-12.403 2.79-24.157 7.774-34.673a32.49 32.49 0 0 1-7.53-12.984c-6.68 11.786-10.494 25.4-10.494 39.907 0 18.042 5.9 34.71 15.875 48.187-17.37-18.21-41.867-29.562-69-29.562-1.458 0-2.91.037-4.353.1a32.644 32.644 0 0 1 6.75 8.9c26.992.04 51.36 11.32 68.69 29.4-16.55-13.825-37.853-22.15-61.086-22.15-12.983 0-25.363 2.6-36.647 7.305 11.595 30.638 41.214 52.445 75.898 52.445 2.248 0 4.474-.1 6.673-.28-4.68.84-9.5 1.28-14.42 1.28-21.886 0-41.75-8.68-56.347-22.78zM320 364.374h-53.11c16.437 6.533 34.355 10.125 53.11 10.125a10.912 10.912 0 0 0 1.25-4.956 10.927 10.927 0 0 0-1.25-5.17zm0-24.5h-93.633a143.792 143.792 0 0 0 7.82 6.25H320c.215-.22 1.273-1.348 1.273-3.125 0-1.778-1.058-2.906-1.273-3.125zm0 12.5h-76.695a143.623 143.623 0 0 0 14.446 8H320a7.557 7.557 0 0 0 1.16-4.193 7.53 7.53 0 0 0-1.16-3.805z" fill="#fff"/> - <path fill="#fbd116" d="M200.484 174.766l25.384 23.67-6.625-34.07-14.664 31.462 30.35-16.836zm36.891-32.009l34.71.603-27.725-20.884 10.148 33.196 11.304-32.828z"/> - </g> - <use height="100%" width="100%" xlink:href="#a" transform="matrix(-1 0 0 1 640 0)"/> -</svg> diff --git a/img/flags/4x3/mp.svg b/img/flags/4x3/mp.svg deleted file mode 100644 index 0dd4c3e..0000000 --- a/img/flags/4x3/mp.svg +++ /dev/null @@ -1,88 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" height="480" width="640" viewBox="0 0 640 480"> - <defs> - <clipPath id="a"> - <path fill-opacity=".67" d="M0 0h640v480H0z"/> - </clipPath> - </defs> - <g clip-path="url(#a)"> - <path fill-rule="evenodd" fill="#0071bc" d="M-160 0h960v480h-960z"/> - <path d="M369.927 365.661s15.223-16.1 29.86-13.027c4.392-16.98 20.932-18.297 20.932-18.297s-1.61-18.736 19.615-22.834c.585-12.735 13.467-23.274 13.467-23.274s-2.635-19.76 10.832-24.298c-8.198-15.662 2.78-27.08 2.634-27.372-.146-.293-13.905-24.738-1.61-31.764-13.027-10.978-8.782-23.42-8.782-23.42s-14.2-3.66-9.076-20.64c-11.71-2.049-14.052-20.931-14.052-20.931s-18.004 3.659-20.2-12.004c-11.856 1.903-13.174-9.806-13.32-9.806-.146 0-23.567 6.294-28.25-11.418-9.075 4.684-13.028-3.66-13.028-3.66s-13.027 6.441-20.785-6c-15.516 9.66-24.152-.44-24.152-.44s-20.346 13.467-27.08 3.074c-12.003 12.15-22.688 6.88-22.688 6.88s-9.075 16.1-23.713 12.002c-3.366 14.93-20.2 15.223-20.2 15.223s1.757 13.174-18.443 16.687c-2.634 15.516-13.173 18.15-13.173 18.15s1.024 15.078-8.49 19.907c3.366 8.49-5.416 18.883-5.416 18.883s9.368 11.71-3.367 24.884c12.296 3.22 3.367 24.445 3.367 24.445s16.98 7.611 6.294 21.663c12.15 3.953 8.343 13.613 8.49 19.322 7.758 3.513 14.637 1.757 11.271 17.419 23.86 2.635 12.588 15.809 12.588 15.809s11.124.439 6.734 9.222c20.346-.44 23.273 15.223 23.273 15.223s18.883-4.977 21.372 2.342c2.488 7.319-8.197 56.647-8.197 56.647s-15.955 0-27.812-12.734c-27.81-.732-21.663-19.029-22.103-19.029-.439 0-9.222 3.367-13.76-11.856-18.59 3.806-18.004-11.856-18.15-12.002-.146-.147-8.343-3.806-5.27-11.564-19.174 1.756-17.71-16.98-17.71-16.98-4.197-1.707-5.758-5.61-5.124-9.514-2.488-.878-19.468-1.17-10.685-23.566-16.248-9.807-6.148-21.078-6.148-21.078s-22.396-11.563-5.123-24.883c-12.882-19.029 1.024-28.543 1.024-28.543s-17.858-18.151.293-31.032c-2.927-27.519 13.467-34.106 13.467-34.106s-8.636-22.395 14.784-31.764c1.463-22.688 17.858-23.273 17.858-23.273s.439-18.005 26.201-16.248c4.977-16.1 22.542-12.881 22.542-12.881s5.416-19.468 29.275-10.1c12.15-23.713 30.154-11.564 30.154-11.564s11.417-7.465 17.126-5.123c7.249-12.457 22.68-.483 32.66 1.928 3.615-1.406 16.522-11.15 26.476 1.146 13.174-8.636 24.445 6.88 24.445 6.88s18.15-9.221 26.64 11.856c38.498-3.513 32.935 21.664 32.935 21.664s30.3-6.88 23.713 23.273c27.519 1.903 24.738 20.054 24.738 20.054s17.418 13.174 9.806 25.03c15.516.732 9.807 15.662 9.807 15.662s11.856 4.538 2.05 22.982c22.687 18.15 4.39 36.155 4.244 36.009-.146-.147 12.15 14.637 1.025 31.617 3.367 26.933-10.246 33.813-10.246 33.813s3.513 17.419-11.71 22.396c-.293 20.492-19.615 22.981-19.615 22.981s5.124 8.902-14.051 18.27c-.757 13.712-20.786 14.812-20.786 14.812s-1.903 25.176-27.373 18.443c-6.181 20.2-36.008 14.198-36.593 13.905-.586-.293-5.709-43.327-5.709-43.474z" fill-rule="evenodd" stroke="#000" stroke-width="1.8570921599999999" fill="#fff"/> - <path stroke-linejoin="round" d="M184.94 124.083c.074 0 6.455 5.534 5.264 13.875-1.192 8.34-6.009 19.935-5.04 28.573.591 3.463.367 9.669.367 9.669s-5.784-8.22-5.859-17.008 6.264-17.131 6.264-23.61-1.145-11.648-.996-11.5zM181.772 126.572s-8.373 7.993-9.451 15.761c-.797 4.004-1.106 22.662-1.2 30.943-.188 2.54-1.24 12.57-1.464 16.218-.224 3.65 6.159-6.229 6.524-14.272-.2-8.325-.2-25.86.646-28.496.753-3.387.59-7.13 1.754-10.528 1.54-4.715 3.266-9.552 3.191-9.626z" fill-rule="evenodd" stroke="#000" stroke-width="1.8570921599999999" fill="#217900"/> - <g fill-rule="evenodd" stroke="#ef8a10" fill="#ffd200"> - <path d="M365.965 100.453s10.856-5.008 13.96-14.335-9.396-9.416-11.047-6.451c-1.651 2.964 1.408 10.345.62 12.296-.788 1.952-5.204 6.662-3.533 8.49z" stroke-width="1.8576071200000002"/> - <path d="M269.745 103.855s7.048-9.657 5.22-19.316c-1.827-9.657-12.79-3.654-12.79-.26 0 3.393 6.265 8.352 6.526 10.44.26 2.088-1.305 8.353 1.044 9.136zM250.691 109.599s7.048-9.658 5.22-19.316c-1.827-9.658-12.79-3.655-12.79-.261 0 3.393 6.265 8.352 6.526 10.44.261 2.089-1.305 8.353 1.044 9.136zM229.55 116.124s7.047-9.658 5.22-19.316c-1.828-9.658-12.79-3.655-12.79-.261 0 3.393 6.264 8.352 6.525 10.44.261 2.089-1.305 8.353 1.044 9.136zM214.672 131.001s7.047-9.657 5.22-19.316c-1.827-9.657-12.79-3.654-12.79-.26 0 3.392 6.264 8.352 6.526 10.44.26 2.088-1.306 8.353 1.044 9.136zM199.01 145.358s7.048-9.658 5.22-19.316c-1.826-9.658-12.789-3.655-12.789-.261 0 3.393 6.264 8.352 6.525 10.44.261 2.089-1.305 8.353 1.045 9.136z" stroke-width="2.47736633"/> - <path d="M235.018 61.727s-9.385 7.406-10.222 17.2c-.837 9.793 11.336 6.959 12.248 3.69.913-3.268-3.787-9.73-3.477-11.81.31-2.082 3.504-7.695 1.451-9.08zM266.34 52.068s-9.385 7.407-10.222 17.2c-.837 9.793 11.336 6.959 12.249 3.69.912-3.268-3.788-9.73-3.478-11.81.31-2.082 3.504-7.694 1.451-9.08zM149.617 136.623s1.982 11.79 10.167 17.233c8.185 5.442 11.552-6.595 9.125-8.966s-10.352-1.357-12.028-2.63c-1.676-1.272-5.062-6.77-7.264-5.637zM133.974 176.656s.097 11.956 7.32 18.622c7.224 6.665 12.449-4.689 10.426-7.414s-10.009-2.973-11.463-4.494c-1.454-1.522-3.93-7.485-6.283-6.714zM170.064 221.381s-4.267-11.169-13.364-14.891c-9.097-3.723-10.026 8.741-7.18 10.588 2.848 1.847 10.417-.71 12.311.207 1.894.918 6.298 5.64 8.233 4.096zM162.567 202.053s7.234-9.519 5.595-19.21c-1.639-9.692-12.716-3.903-12.782-.51-.066 3.392 6.1 8.472 6.32 10.565.22 2.093-1.467 8.326.867 9.154zM388.15 110.11s10.856-5.008 13.959-14.334-9.395-9.417-11.047-6.452c-1.65 2.964 1.409 10.345.62 12.297-.788 1.95-5.204 6.661-3.533 8.489zM420.975 126.484s6.386-10.107 3.917-19.622c-2.47-9.514-13.006-2.79-12.779.595.227 3.386 6.809 7.915 7.21 9.981.4 2.066-.744 8.421 1.652 9.046zM510.581 219.51s-4.282-11.162-13.384-14.873c-9.102-3.71-10.014 8.755-7.165 10.598 2.85 1.843 10.416-.724 12.311.19 1.895.916 6.305 5.633 8.238 4.085zM466.764 226.443s.248-11.953 7.555-18.528c7.307-6.574 12.388 4.845 10.331 7.545-2.057 2.698-10.045 2.846-11.519 4.349-1.473 1.502-4.024 7.434-6.367 6.633zM459.714 99.684s-11.176-4.245-20.008.069c-8.832 4.314-.145 13.3 3.128 12.404 3.272-.897 6.4-8.248 8.345-9.052 1.946-.803 8.401-.948 8.536-3.42zM434.139 78.28s-11.177-4.246-20.008.068c-8.832 4.315-.146 13.301 3.127 12.405 3.273-.897 6.4-8.249 8.346-9.052 1.945-.804 8.4-.948 8.535-3.421zM396 57.87s-9.474 7.29-10.432 17.072c-.957 9.783 11.25 7.098 12.202 3.841.953-3.257-3.667-9.775-3.332-11.853.336-2.077 3.598-7.65 1.563-9.061zM371.16 51.894s-4.32 11.148-.066 20.008c4.254 8.86 13.299.236 12.425-3.043-.875-3.28-8.205-6.457-8.996-8.407-.79-1.95-.89-8.407-3.363-8.558zM300.715 94.851s7.728-9.121 6.605-18.886c-1.123-9.765-12.491-4.572-12.737-1.187-.246 3.384 5.643 8.784 5.752 10.886.11 2.101-1.907 8.236.38 9.187z" stroke-width="1.8576071200000002"/> - </g> - <path d="M342.775 114.432s18.526 1.166 19.433 11.789-4.405 17.1-4.405 17.1 2.332 22.932-15.805 29.668c-19.433 2.332-49.877.519-49.877.519s-8.94 2.202-12.566-16.324c-3.628-18.525-4.664-31.61-4.664-31.61s1.814-10.365 14.898-11.012c13.085-.648 52.857.13 52.987-.13z" fill-rule="evenodd" stroke="#000" stroke-width="1.8570921599999999" fill="#8c8a8c"/> - <path d="M357.674 143.193s-9.976 12.437-8.94 17.49" stroke="#000" stroke-linecap="round" stroke-width="1.8570921599999999" fill="none"/> - <path d="M344.333 172.337c2.462 2.073 4.793 4.405 5.312 12.049l1.036 15.287 12.955 116.595 11.4 84.339.778 13.085s-2.72 9.586-10.364 10.363c-5.57 11.66-35.756 15.028-38.736 14.899-2.72-.13-12.308-4.146-18.138-3.628-5.83.518-15.935 4.405-20.469 3.757-4.534-.647-14.768-4.145-16.582-11.53-12.696-4.016-14.769-13.732-14.769-13.732l13.733-97.554 13.343-123.33s1.555-16.453 8.162-18.915c6.866-.648 42.363.648 52.338-1.684z" fill-rule="evenodd" stroke="#000" stroke-width="1.8570921599999999" fill="#8c8a8c"/> - <path d="M274.375 341.147l-2.721 86.281M358.196 352.547l7.644 71.124" stroke="#000" stroke-width="1.8570921599999999" fill="none"/> - <path d="M136.572 296.312l-.284.995M494.972 293.188l.284.995" stroke="#000" stroke-width=".96770688" fill="none"/> - <path stroke-linejoin="round" d="M126.965 179.83s5.675 7.86 6.694 12.37c1.019 4.512 2.91 13.39 5.385 17.028 2.474 3.638 16.591 23.868 17.319 32.308.145 5.53-5.822 14.99-14.7 15.136-5.53-.146-19.792-3.784-20.375-16.01-.582-12.225 4.366-12.515 4.949-19.937.582-7.423.727-40.75.727-40.896z" stroke="#6b18b5" stroke-width="1.8570921599999999" fill="none"/> - <path stroke-linejoin="round" d="M224.466 72.814s-5.876.42-10.4 2.872c-3.505 2.161-9.443 5.271-13.592 11.024-10.554 8.227-26.43 12.066-31.438 18.9-2.997 4.65-2.813 15.834 4.697 20.57 4.801 2.749 18.878 7.05 25.726-3.094 6.849-10.144 2.772-12.963 6.13-19.608 5.542-15.23 18.802-30.54 18.878-30.664zM367.012 57.968s-4.39-3.93-9.298-5.474c-3.991-1.015-10.638-.573-17.516-1.248-13.251-1.859-26.913-11.442-35.306-10.285-5.425 1.081-13.331 8.993-11.51 17.683 1.365 5.36 7.361 16.203 19.412 14.068 12.051-2.136 11.947-4.765 19.056-6.974 17.34-9.724 35.02-7.738 35.162-7.77zM508.373 195.364c.99-2.261-.832-6.512-2.127-11.492-1.256-3.922-3.132-10.009-7.72-15.42-5.452-12.22-4.517-28.977-9.95-35.48-3.793-4.026-14.693-6.533-21.094-.38-3.822 4-11.377 16.632-3.175 25.716 8.202 9.084 11.776 5.663 17.42 10.518 13.454 9.038 20.043 24.88 26.646 26.537zM503.552 302.116c1.838-2.544 5.127-7.446 4.736-11.53-.31-3.233 1.482-13.037 1.678-17.315 1.216-13.326 9.557-24.142 7.289-35.72-1.342-5.366-9.203-13.022-17.794-10.783-5.289 1.623-17.065 8.103-14.35 20.036 2.717 11.934 6.573 11.736 9.123 18.73 7.321 14.46 2.636 31.637 9.318 36.581z" stroke="#6b18b5" stroke-width=".96770688" fill="none"/> - <path d="M405.485 386.834s-2.259 4.344 6.777 8.167M423.56 376.583s10.078-2.433 16.855 0M453.618 351.207c0 .174-1.39 4.518 6.603 10.773M459.353 339.92s5.908 4.344 15.812 4.17M399.75 352.599s.348 11.468-5.56 16.855M419.557 334.872s9.73 2.433 17.724-1.564M481.944 318.024s2.085 2.954 12.859 2.433M439.894 311.245c.348.174 12.685 4.17 20.505.522M464.566 263.982s.52-.695 4.344 12.685M474.12 226.275s-.52 7.124-6.255 10.252M510.784 197.078s-8.34 6.777-6.777 9.557M469.256 192.214s4.344 7.298-2.78 12.337M448.231 160.937s7.472-.347 10.774 6.082M434.16 139.738h5.734M463.87 113.675c0 .173 1.563 1.563-1.39 4.517M410.524 114.37s3.996 6.256 3.301 13.902M433.637 93.17c1.738-.174 7.646-2.78 7.646-2.78M407.922 68.321c-.174 0-2.26 7.82 1.564 10.6M398.358 103.944c0 8.34 6.603 6.255 2.085 14.248M382.197 96.992c-.173 0-10.425 7.993-10.425 9.383M355.437 92.649s4.344 4.344 3.302 10.252M342.758 89.173s-2.259 6.603-5.213 8.34M319.644 87.435c-.173.348-3.649 7.82-6.081 9.21M288.02 87.61c.174 0 3.475 6.95-.869 11.99M280.719 51.64c.173.173.695 5.386-2.607 9.904M249.442 63.456c0 .173 1.39 5.908-7.82 7.82M231.724 116.45c.174.348 8.862 1.738 8.862 1.738M210.003 136.614c.174-.174 10.6-3.301 10.6-3.301M193.146 149.642c.348 0 7.298 1.216 9.036.347M188.282 156.073s2.259 1.216.347 12.858M154.395 125.492l4.17 6.256M140.149 157.64c0-.175 4.17 6.254 9.73 7.47M172.992 190.308c.173 0 6.776-1.39 7.82-2.085M170.033 213.935c.174 0-.174-4.344 5.213-7.298M162.906 224.709c0 .173 5.039 6.429 8.514 7.298M159.955 236.7c.522-.173 5.908-4.865 12.164-4.518M158.215 252.86s.174 5.388 16.16 3.998M159.781 271.797c0-.174 4.692-10.773 14.249-14.77M172.644 285.356s1.39-4.518 9.382-7.646M181.503 303.248s5.734-4.692 7.819-5.387M188.63 317.154s3.475 3.65 12.163-2.606M146.745 320.104c1.043-.174 13.727-3.127 18.072 3.476M151.793 330.53s13.38-1.738 15.117-.348M199.577 333.314s-1.737 3.65 14.77-2.432M220.08 339.92c-2.954 5.039.695 9.035-3.128 11.294M169.859 346.864c.521-.347 6.082-2.259 5.213-10.252M174.897 358.856c.696-.174 9.905-4.17 11.817-2.085M192.972 370.5s1.217-8.167 3.823-9.036M206.87 382.831s7.646-.174 10.948-2.606M221.638 355.21c.174.173 7.124 3.822 21.894.173M227.199 388.392s2.085 10.6 1.911 13.033" stroke="#000" stroke-width="1.8570921599999999" fill="none"/> - <g fill-rule="evenodd" stroke="#000" stroke-width="1.483" fill="#de2010"> - <path d="M232.84 119.03c.002-2.109-.794-4.058-2.087-5.114-1.294-1.055-2.888-1.055-4.18 0s-2.09 3.005-2.088 5.114c-.002 2.109.794 4.058 2.087 5.114 1.293 1.055 2.887 1.055 4.18 0s2.09-3.005 2.088-5.114z" transform="matrix(1.60885 -.2011 .2072 1.65762 94.795 74.927)"/> - <path d="M232.84 119.03c.002-2.109-.794-4.058-2.087-5.114-1.294-1.055-2.888-1.055-4.18 0s-2.09 3.005-2.088 5.114c-.002 2.109.794 4.058 2.087 5.114 1.293 1.055 2.887 1.055 4.18 0s2.09-3.005 2.088-5.114z" transform="matrix(1.60885 -.2011 .2072 1.65762 93.358 57.275)"/> - <path d="M232.84 119.03c.002-2.109-.794-4.058-2.087-5.114-1.294-1.055-2.888-1.055-4.18 0s-2.09 3.005-2.088 5.114c-.002 2.109.794 4.058 2.087 5.114 1.293 1.055 2.887 1.055 4.18 0s2.09-3.005 2.088-5.114z" transform="matrix(1.58497 -.3417 .35206 1.633 78.089 74.089)"/> - <path d="M232.84 119.03c.002-2.109-.794-4.058-2.087-5.114-1.294-1.055-2.888-1.055-4.18 0s-2.09 3.005-2.088 5.114c-.002 2.109.794 4.058 2.087 5.114 1.293 1.055 2.887 1.055 4.18 0s2.09-3.005 2.088-5.114z" transform="matrix(1.4455 -.73446 .7567 1.4893 55.863 162.938)"/> - <path d="M232.84 119.03c.002-2.109-.794-4.058-2.087-5.114-1.294-1.055-2.888-1.055-4.18 0s-2.09 3.005-2.088 5.114c-.002 2.109.794 4.058 2.087 5.114 1.293 1.055 2.887 1.055 4.18 0s2.09-3.005 2.088-5.114z" transform="matrix(1.4455 -.73446 .7567 1.4893 48.885 147.133)"/> - <path d="M232.84 119.03c.002-2.109-.794-4.058-2.087-5.114-1.294-1.055-2.888-1.055-4.18 0s-2.09 3.005-2.088 5.114c-.002 2.109.794 4.058 2.087 5.114 1.293 1.055 2.887 1.055 4.18 0s2.09-3.005 2.088-5.114z" transform="matrix(1.3781 -.85423 .88011 1.41987 39.958 167.39)"/> - <path d="M232.84 119.03c.002-2.109-.794-4.058-2.087-5.114-1.294-1.055-2.888-1.055-4.18 0s-2.09 3.005-2.088 5.114c-.002 2.109.794 4.058 2.087 5.114 1.293 1.055 2.887 1.055 4.18 0s2.09-3.005 2.088-5.114z" transform="matrix(1.28907 -.98346 1.01327 1.32812 33.795 193.08)"/> - <path d="M232.84 119.03c.002-2.109-.794-4.058-2.087-5.114-1.294-1.055-2.888-1.055-4.18 0s-2.09 3.005-2.088 5.114c-.002 2.109.794 4.058 2.087 5.114 1.293 1.055 2.887 1.055 4.18 0s2.09-3.005 2.088-5.114z" transform="matrix(1.1329 -1.15994 1.19508 1.16722 35.345 239.043)"/> - <path d="M232.84 119.03c.002-2.109-.794-4.058-2.087-5.114-1.294-1.055-2.888-1.055-4.18 0s-2.09 3.005-2.088 5.114c-.002 2.109.794 4.058 2.087 5.114 1.293 1.055 2.887 1.055 4.18 0s2.09-3.005 2.088-5.114z" transform="matrix(1.02138 -1.25922 1.29739 1.05234 34.295 262.698)"/> - <path d="M232.84 119.03c.002-2.109-.794-4.058-2.087-5.114-1.294-1.055-2.888-1.055-4.18 0s-2.09 3.005-2.088 5.114c-.002 2.109.794 4.058 2.087 5.114 1.293 1.055 2.887 1.055 4.18 0s2.09-3.005 2.088-5.114z" transform="matrix(.79817 -1.41132 1.45408 .82236 51.907 315.002)"/> - <path d="M232.84 119.03c.002-2.109-.794-4.058-2.087-5.114-1.294-1.055-2.888-1.055-4.18 0s-2.09 3.005-2.088 5.114c-.002 2.109.794 4.058 2.087 5.114 1.293 1.055 2.887 1.055 4.18 0s2.09-3.005 2.088-5.114z" transform="matrix(.66642 -1.4781 1.52289 .6866 56.808 337.386)"/> - <path d="M232.84 119.03c.002-2.109-.794-4.058-2.087-5.114-1.294-1.055-2.888-1.055-4.18 0s-2.09 3.005-2.088 5.114c-.002 2.109.794 4.058 2.087 5.114 1.293 1.055 2.887 1.055 4.18 0s2.09-3.005 2.088-5.114z" transform="matrix(.56582 -1.51945 1.5655 .58296 57.907 352.404)"/> - <path d="M232.84 119.03c.002-2.109-.794-4.058-2.087-5.114-1.294-1.055-2.888-1.055-4.18 0s-2.09 3.005-2.088 5.114c-.002 2.109.794 4.058 2.087 5.114 1.293 1.055 2.887 1.055 4.18 0s2.09-3.005 2.088-5.114z" transform="matrix(.4482 -1.5582 1.60543 .46178 63.012 370.362)"/> - <path d="M232.84 119.03c.002-2.109-.794-4.058-2.087-5.114-1.294-1.055-2.888-1.055-4.18 0s-2.09 3.005-2.088 5.114c-.002 2.109.794 4.058 2.087 5.114 1.293 1.055 2.887 1.055 4.18 0s2.09-3.005 2.088-5.114z" transform="matrix(.20288 -1.60864 1.65738 .20903 94.656 408.901)"/> - <path d="M232.84 119.03c.002-2.109-.794-4.058-2.087-5.114-1.294-1.055-2.888-1.055-4.18 0s-2.09 3.005-2.088 5.114c-.002 2.109.794 4.058 2.087 5.114 1.293 1.055 2.887 1.055 4.18 0s2.09-3.005 2.088-5.114z" transform="matrix(.06506 -1.62008 1.66918 .06703 106.295 427.394)"/> - <path d="M232.84 119.03c.002-2.109-.794-4.058-2.087-5.114-1.294-1.055-2.888-1.055-4.18 0s-2.09 3.005-2.088 5.114c-.002 2.109.794 4.058 2.087 5.114 1.293 1.055 2.887 1.055 4.18 0s2.09-3.005 2.088-5.114z" transform="matrix(.06506 -1.62008 1.66918 .06703 88.849 428.012)"/> - <path d="M232.84 119.03c.002-2.109-.794-4.058-2.087-5.114-1.294-1.055-2.888-1.055-4.18 0s-2.09 3.005-2.088 5.114c-.002 2.109.794 4.058 2.087 5.114 1.293 1.055 2.887 1.055 4.18 0s2.09-3.005 2.088-5.114z" transform="matrix(-.36132 -1.5806 1.62852 -.37226 172.505 473.533)"/> - <path d="M232.84 119.03c.002-2.109-.794-4.058-2.087-5.114-1.294-1.055-2.888-1.055-4.18 0s-2.09 3.005-2.088 5.114c-.002 2.109.794 4.058 2.087 5.114 1.293 1.055 2.887 1.055 4.18 0s2.09-3.005 2.088-5.114z" transform="matrix(-.49045 -1.54542 1.59227 -.50531 188.286 485.828)"/> - <path d="M232.84 119.03c.002-2.109-.794-4.058-2.087-5.114-1.294-1.055-2.888-1.055-4.18 0s-2.09 3.005-2.088 5.114c-.002 2.109.794 4.058 2.087 5.114 1.293 1.055 2.887 1.055 4.18 0s2.09-3.005 2.088-5.114z" transform="matrix(-.67103 -1.476 1.52073 -.69138 221.877 499.092)"/> - <path d="M232.84 119.03c.002-2.109-.794-4.058-2.087-5.114-1.294-1.055-2.888-1.055-4.18 0s-2.09 3.005-2.088 5.114c-.002 2.109.794 4.058 2.087 5.114 1.293 1.055 2.887 1.055 4.18 0s2.09-3.005 2.088-5.114z" transform="matrix(-.7945 -1.41337 1.4562 -.81858 241.371 508.33)"/> - <path d="M232.84 119.03c.002-2.109-.794-4.058-2.087-5.114-1.294-1.055-2.888-1.055-4.18 0s-2.09 3.005-2.088 5.114c-.002 2.109.794 4.058 2.087 5.114 1.293 1.055 2.887 1.055 4.18 0s2.09-3.005 2.088-5.114z" transform="matrix(-.94339 -1.31867 1.35863 -.97197 271.636 515.396)"/> - <path d="M232.84 119.03c.002-2.109-.794-4.058-2.087-5.114-1.294-1.055-2.888-1.055-4.18 0s-2.09 3.005-2.088 5.114c-.002 2.109.794 4.058 2.087 5.114 1.293 1.055 2.887 1.055 4.18 0s2.09-3.005 2.088-5.114z" transform="matrix(-1.05159 -1.2341 1.27151 -1.08344 292.379 520.207)"/> - <path d="M232.84 119.03c.002-2.109-.794-4.058-2.087-5.114-1.294-1.055-2.888-1.055-4.18 0s-2.09 3.005-2.088 5.114c-.002 2.109.794 4.058 2.087 5.114 1.293 1.055 2.887 1.055 4.18 0s2.09-3.005 2.088-5.114z" transform="matrix(-1.13737 -1.15553 1.19056 -1.17183 308.9 526.104)"/> - <path d="M232.84 119.03c.002-2.109-.794-4.058-2.087-5.114-1.294-1.055-2.888-1.055-4.18 0s-2.09 3.005-2.088 5.114c-.002 2.109.794 4.058 2.087 5.114 1.293 1.055 2.887 1.055 4.18 0s2.09-3.005 2.088-5.114z" transform="matrix(-1.2301 -1.05628 1.08829 -1.26738 331.402 529.562)"/> - <path d="M232.84 119.03c.002-2.109-.794-4.058-2.087-5.114-1.294-1.055-2.888-1.055-4.18 0s-2.09 3.005-2.088 5.114c-.002 2.109.794 4.058 2.087 5.114 1.293 1.055 2.887 1.055 4.18 0s2.09-3.005 2.088-5.114z" transform="matrix(-1.33573 -.91908 .94693 -1.3762 362.524 526.12)"/> - <path d="M232.84 119.03c.002-2.109-.794-4.058-2.087-5.114-1.294-1.055-2.888-1.055-4.18 0s-2.09 3.005-2.088 5.114c-.002 2.109.794 4.058 2.087 5.114 1.293 1.055 2.887 1.055 4.18 0s2.09-3.005 2.088-5.114z" transform="matrix(-1.47374 -.67597 .69645 -1.51841 415.897 504.087)"/> - <path d="M232.84 119.03c.002-2.109-.794-4.058-2.087-5.114-1.294-1.055-2.888-1.055-4.18 0s-2.09 3.005-2.088 5.114c-.002 2.109.794 4.058 2.087 5.114 1.293 1.055 2.887 1.055 4.18 0s2.09-3.005 2.088-5.114z" transform="matrix(-1.52895 -.53958 .55593 -1.5753 438.682 497.522)"/> - <path d="M232.84 119.03c.002-2.109-.794-4.058-2.087-5.114-1.294-1.055-2.888-1.055-4.18 0s-2.09 3.005-2.088 5.114c-.002 2.109.794 4.058 2.087 5.114 1.293 1.055 2.887 1.055 4.18 0s2.09-3.005 2.088-5.114z" transform="matrix(-1.61445 -.12005 .15429 -1.33344 500.491 405.96)"/> - <path d="M232.84 119.03c.002-2.109-.794-4.058-2.087-5.114-1.294-1.055-2.888-1.055-4.18 0s-2.09 3.005-2.088 5.114c-.002 2.109.794 4.058 2.087 5.114 1.293 1.055 2.887 1.055 4.18 0s2.09-3.005 2.088-5.114z" transform="matrix(-1.58082 -.36035 .37125 -1.62873 468.417 480.766)"/> - </g> - <path d="M480.012 194.65c2.146-2.297 4.143-2.946 6.669-2.109-.891-6.06-2.809-8.116-5.145-7.386-2.336.73-3.393 3.845-1.524 9.496zM483.293 212.934c2.313-2.129 4.353-2.626 6.809-1.6-.432-6.11-2.19-8.305-4.574-7.754-2.384.552-3.673 3.579-2.235 9.354zM475.53 177.95c1.493-2.766 3.259-3.902 5.915-3.733-2.4-5.635-4.778-7.137-6.852-5.838-2.074 1.3-2.305 4.58.938 9.572zM467.394 161.312c1.492-2.767 3.258-3.903 5.914-3.734-2.4-5.635-4.777-7.137-6.852-5.838-2.074 1.3-2.305 4.581.938 9.572zM447.874 130.818c1.028-2.97 2.59-4.375 5.238-4.635-3.275-5.176-5.863-6.277-7.701-4.661s-1.54 4.892 2.463 9.296zM435.117 117.53c.915-3.008 2.421-4.47 5.058-4.83-3.468-5.05-6.095-6.05-7.871-4.367-1.777 1.684-1.354 4.947 2.813 9.197zM408.287 94.895c-.056-3.143.927-4.999 3.325-6.154-4.855-3.735-7.663-3.878-8.834-1.73-1.17 2.15.236 5.124 5.509 7.884zM422.246 105.36c.49-3.105 1.779-4.762 4.34-5.484-4.135-4.52-6.875-5.147-8.4-3.234-1.526 1.914-.656 5.087 4.06 8.718zM392.362 86.106c-.38-3.12.406-5.067 2.672-6.463-5.214-3.215-8.022-3.068-8.965-.81-.943 2.259.763 5.072 6.293 7.273zM376.088 79.002c-.822-3.035-.323-5.074 1.72-6.78-5.62-2.435-8.378-1.888-8.989.482-.61 2.37 1.481 4.91 7.269 6.298zM358.553 73.569c-1.076-2.954-.751-5.028 1.14-6.901-5.807-1.95-8.509-1.172-8.916 1.241-.408 2.414 1.891 4.767 7.776 5.66zM341.33 70.234c-1.286-2.868-1.112-4.96.638-6.965-5.932-1.526-8.57-.554-8.802 1.883-.232 2.436 2.231 4.617 8.165 5.082zM323.09 68.836c-1.577-2.719-1.62-4.818-.087-6.993-6.059-.902-8.582.338-8.56 2.785.022 2.447 2.698 4.362 8.648 4.208zM287.376 71.526c-2.186-2.258-2.735-4.285-1.772-6.766-6.097.585-8.247 2.397-7.635 4.767.611 2.37 3.67 3.582 9.407 2zM304.955 69.212c-1.86-2.534-2.13-4.616-.84-6.943-6.12-.246-8.495 1.259-8.21 3.69.285 2.43 3.151 4.045 9.05 3.253zM270.128 75.253c-2.488-1.922-3.321-3.85-2.723-6.443-5.95 1.454-7.819 3.555-6.874 5.813.945 2.257 4.146 3.019 9.597.63zM237.102 90.437c-2.808-1.413-3.992-3.147-3.899-5.806-5.565 2.559-6.999 4.977-5.642 7.013 1.357 2.037 4.644 2.176 9.542-1.207zM253.028 82.302c-2.616-1.744-3.581-3.608-3.165-6.237-5.835 1.864-7.552 4.09-6.452 6.277 1.1 2.186 4.345 2.723 9.617-.04zM207.48 111.061c-3.041-.797-4.561-2.246-5.024-4.866-4.91 3.662-5.808 6.326-4.057 8.035 1.752 1.71 4.996 1.16 9.08-3.169zM221.612 99.495c-2.97-1.033-4.37-2.596-4.627-5.245-5.182 3.267-6.286 5.852-4.673 7.693 1.612 1.841 4.89 1.548 9.3-2.448zM194.922 123.43c-3.101-.518-4.746-1.822-5.445-4.39-4.557 4.094-5.21 6.829-3.31 8.371 1.9 1.543 5.08.701 8.755-3.981zM183.67 138.033c-3.135-.234-4.892-1.384-5.822-3.878-4.166 4.49-4.567 7.273-2.535 8.637 2.032 1.364 5.123.237 8.356-4.76zM174.253 152.966c-3.133.249-5.045-.618-6.346-2.94-3.43 5.075-3.4 7.886-1.183 8.923 2.217 1.037 5.099-.55 7.53-5.983zM165.986 168.917c-3.075.654-5.083.042-6.674-2.091-2.742 5.477-2.348 8.26-.015 9 2.333.741 4.984-1.207 6.69-6.909zM159.372 185.287c-2.932 1.132-5.012.846-6.92-1.008-1.84 5.842-1.01 8.528 1.41 8.89 2.42.362 4.73-1.982 5.51-7.882zM154.943 203.518c-2.85 1.326-4.945 1.18-6.973-.542-1.444 5.952-.437 8.577 2.003 8.775 2.44.199 4.586-2.294 4.97-8.233zM153.141 218.704c-2.683 1.421-4.774 1.589-6.967.515-.798 4.85.48 6.768 2.918 6.595 2.438-.173 4.3-2.412 4.05-7.11zM460.127 146.483c1.073-2.955 2.655-4.336 5.307-4.556-3.196-5.225-5.766-6.364-7.629-4.777-1.863 1.587-1.613 4.868 2.322 9.332zM485.295 231.47c2.313-2.129 4.352-2.626 6.808-1.6-.431-6.11-2.189-8.305-4.573-7.753-2.384.551-3.673 3.578-2.235 9.353z" fill-rule="evenodd" fill="#ffe300"/> - <path stroke-linejoin="round" d="M461.32 132.01c-.075 0-6.926 6.852-5.735 15.192 1.192 8.341 6.48 18.618 5.511 27.257-.968 8.639-2.532 14.373-2.532 14.373s8.043-9.16 8.118-17.948c.074-8.788-5.511-20.33-5.511-26.81s.298-12.212.149-12.063zM474.051 160.006s-5.362 3.947-4.84 13.033c.52 9.085 9.904 25.767 9.904 25.767s6.851 14.075 6.628 17.724c-.224 3.649 1.266-3.5.596-11.543s-11.022-25.767-11.022-25.767-2.234-3.649-2.01-9.681c.223-6.032.818-9.458.744-9.533z" fill-rule="evenodd" stroke="#000" stroke-width="1.8570921599999999" fill="#217900"/> - <path d="M312.926 47.43c0-1.88-2.114-3.405-4.724-3.405s-4.724 1.525-4.723 3.405c-.001 1.88 2.114 3.405 4.723 3.405s4.725-1.524 4.724-3.405zM314.945 55.35c0-1.804-2.177-3.266-4.863-3.266-2.685 0-4.862 1.462-4.862 3.265s2.177 3.265 4.862 3.265c2.686 0 4.863-1.461 4.863-3.265zM320.985 45.972s-5.558 4.168-3.265 5.835c2.292 1.667 8.614-3.612 8.614-3.612l-5.35-2.223zM484.32 141.4c.002-1.184-.554-2.28-1.457-2.873a2.616 2.616 0 0 0-2.918 0c-.902.593-1.458 1.689-1.456 2.873-.002 1.185.554 2.28 1.456 2.874a2.616 2.616 0 0 0 2.918 0c.903-.593 1.459-1.689 1.457-2.874zM482.197 133.455c0-1.976-1.365-3.578-3.048-3.578s-3.048 1.602-3.048 3.578 1.364 3.578 3.048 3.578 3.048-1.602 3.048-3.578zM483.659 149.616c0-1.025-.534-1.856-1.193-1.856s-1.193.83-1.193 1.856.534 1.855 1.193 1.855 1.193-.83 1.193-1.855zM488.558 135.17c0-1.172-.534-2.12-1.193-2.12-.658 0-1.192.948-1.192 2.12s.534 2.12 1.192 2.12c.659 0 1.193-.95 1.193-2.12zM475.174 136.632c0-.952-.534-1.723-1.193-1.723s-1.193.771-1.193 1.723c0 .951.534 1.722 1.193 1.722s1.193-.771 1.193-1.722zM477.297 148.032c0-1.538-1.127-2.784-2.518-2.784s-2.518 1.246-2.518 2.784c0 1.537 1.127 2.784 2.518 2.784s2.519-1.247 2.518-2.784zM470.666 142.993c0-1.317-.95-2.385-2.12-2.385-1.172 0-2.12 1.068-2.12 2.385s.948 2.385 2.12 2.385c1.17 0 2.12-1.068 2.12-2.385zM469.613 136.231c0-.71-.353-1.368-.927-1.724a1.749 1.749 0 0 0-1.857 0c-.574.356-.928 1.013-.927 1.724 0 .711.353 1.368.927 1.724a1.749 1.749 0 0 0 1.857 0c.574-.356.928-1.013.927-1.724zM499.819 170.597c-2.737-3.613-7.12-5.135-9.789-3.4-2.668 1.735-2.612 6.07.125 9.682 2.737 3.613 7.12 5.135 9.789 3.4 2.668-1.735 2.612-6.07-.125-9.682zM507.599 237.249c.53-4.433-1.632-8.337-4.83-8.72-3.197-.383-6.22 2.9-6.75 7.334-.53 4.433 1.632 8.337 4.83 8.72 3.197.382 6.22-2.901 6.75-7.334zM509.244 276.044c.91-4.37-.906-8.447-4.059-9.104-3.152-.657-6.447 2.353-7.358 6.724-.911 4.37.906 8.447 4.058 9.104 3.153.657 6.447-2.353 7.359-6.724zM516.719 239.729c0-1.757-1.187-3.18-2.65-3.18s-2.651 1.423-2.651 3.18c0 1.756 1.187 3.18 2.65 3.18s2.651-1.424 2.651-3.18zM510.227 247.021l-5.433 6.163s-5.102.132-4.837 1.789c.265 1.656 7.023 6.626 6.957 8.614-.066 1.988 4.506-.464 4.506-.464s3.644-11.066 3.644-11.132c0-.066-.199-7.687-2.186-7.554-1.988.133-2.527 2.444-2.65 2.585zM152.837 244.585a2.586 2.586 0 1 0-5.172 0 2.586 2.586 0 0 0 5.172 0zM155.274 236.683c0-1.508-1.158-2.73-2.586-2.73s-2.586 1.222-2.586 2.73 1.157 2.73 2.586 2.73c1.428 0 2.586-1.222 2.586-2.73zM134.04 199.106c-.97-2.174-2.99-3.386-4.512-2.707-1.521.68-1.968 2.992-.999 5.166.97 2.173 2.99 3.385 4.512 2.706 1.521-.679 1.968-2.991.999-5.165zM140.453 222.516c-1.332-2.818-4.106-4.389-6.197-3.509s-2.705 3.878-1.372 6.695 4.107 4.388 6.197 3.508 2.705-3.877 1.372-6.694zM147.32 239.685c.431-3.519-1.027-6.751-3.257-7.22-2.23-.468-4.389 2.004-4.82 5.523-.432 3.52 1.026 6.752 3.256 7.22 2.23.47 4.389-2.004 4.82-5.523zM136.302 242.192c1.38-3.266.863-6.775-1.153-7.837s-4.77.725-6.15 3.991-.862 6.775 1.154 7.836 4.77-.724 6.15-3.99z" fill-rule="evenodd" fill="#6b18b5"/> - <path d="M131.281 234.812c0-1.666-1.286-3.017-2.873-3.017s-2.874 1.35-2.874 3.017 1.287 3.017 2.874 3.017 2.873-1.35 2.873-3.017zM128.984 227.345c0-1.507-1.158-2.73-2.586-2.73-1.429 0-2.586 1.223-2.586 2.73 0 1.508 1.157 2.73 2.586 2.73s2.586-1.222 2.586-2.73zM131.429 212.978c0-2.54-1.126-4.598-2.514-4.598-1.389 0-2.514 2.059-2.514 4.598 0 2.539 1.125 4.597 2.514 4.597s2.514-2.058 2.514-4.597zM139.165 211.872c.335-2.516-.509-4.705-1.885-4.888-1.377-.184-2.764 1.708-3.099 4.225-.335 2.517.51 4.706 1.886 4.889 1.376.183 2.763-1.709 3.098-4.226zM194.286 101.894c1.025-3.564-.032-7.147-2.36-8.001-2.328-.855-5.047 1.342-6.071 4.906-1.025 3.565.032 7.147 2.36 8.002 2.329.854 5.047-1.343 6.071-4.907zM183.817 117.756c3.071-2.613 4.383-6.227 2.93-8.071-1.452-1.845-5.119-1.221-8.19 1.392s-4.382 6.227-2.93 8.072c1.453 1.844 5.12 1.22 8.19-1.393zM177.708 108.952c3.037-2.244 4.334-5.346 2.898-6.93s-5.063-1.047-8.1 1.196c-3.036 2.244-4.333 5.346-2.897 6.93s5.063 1.047 8.1-1.196zM201.257 93.467c2.048-1.566 2.923-3.73 1.954-4.835-.969-1.105-3.414-.731-5.462.834s-2.922 3.73-1.954 4.835c.969 1.105 3.414.731 5.462-.834z" fill-rule="evenodd" fill="#6b18b5"/> - <path d="M188.978 108.47c1.4-2.163 1.494-4.496.21-5.21-1.284-.713-3.46.462-4.86 2.626s-1.495 4.497-.211 5.21c1.284.714 3.46-.461 4.86-2.625zM206.696 99.198c2.202-1.856 3.06-4.314 1.916-5.49-1.143-1.178-3.856-.627-6.058 1.229s-3.06 4.314-1.916 5.49c1.143 1.178 3.856.627 6.058-1.229zM174.68 120.828c2.059-.103 3.612-1.128 3.47-2.29-.141-1.163-1.925-2.022-3.983-1.919-2.059.103-3.613 1.128-3.471 2.29.142 1.163 1.925 2.022 3.984 1.919zM213.44 87.703c1.4-2.164 1.495-4.497.21-5.21-1.284-.714-3.46.462-4.86 2.626s-1.495 4.497-.21 5.21c1.284.714 3.46-.462 4.86-2.626z" fill-rule="evenodd" fill="#6b18b5"/> - <path d="M446.83 153.375s6.386-10.108 3.917-19.621c-2.47-9.515-13.006-2.791-12.78.595.228 3.385 6.81 7.915 7.21 9.981.4 2.066-.744 8.422 1.653 9.045z" fill-rule="evenodd" stroke="#ef8a10" stroke-width=".96770688" fill="#ffd200"/> - <path stroke-linejoin="round" d="M324.883 69.303s23.012.894 23.16 15.788c-.074 2.308 0 5.064-.818 11.691 4.542-2.457 7.596-9.309 7-13.702.074-15.118-20.554-25.47-29.342-13.778z" fill-rule="evenodd" stroke="#000" stroke-width="2.3218003200000004" fill="#217900"/> - <path stroke-linejoin="round" d="M310.29 68.633s18.542-3.873 18.691 11.021c.15 14.894-5.883 17.277-5.883 17.277s14.224-3.053 14.298-18.17c.075-15.118-18.32-21.82-27.107-10.128z" fill-rule="evenodd" stroke="#000" stroke-width="2.3218003200000004" fill="#217900"/> - <path stroke-linejoin="round" d="M373.282 389.952s86.796-24.518 113.005-131.041C471.069 368.252 376.1 402.915 376.1 402.915l-2.818-12.963z" fill-rule="evenodd" stroke="#000" stroke-width="2.47736633" fill="#f7df73"/> - <path d="M382.186 396.584c2.682 0 9.32-7.343 13.132-8.19 3.812-.847 4.236-4.66-.142-4.8-4.377-.142-8.19 4.942-8.19 4.942s-3.812 3.247-7.766 3.671c-3.953.424-1.412 5.366 2.966 4.377z" fill-rule="evenodd" fill="#8c1800"/> - <path d="M432.167 359.298s-9.037 5.225-7.766 6.496c1.271 1.27 9.32-4.942 9.46-5.084.142-.14 3.39-4.094-1.694-1.412z" fill-rule="evenodd" stroke="#8c1800" stroke-width="2.47736633" fill="#8c1800"/> - <path d="M400.678 383.036s-2.683-.988 4.236-3.67c6.92-2.684 6.496-5.79 8.755-7.061 2.26-1.27 7.06-4.66 8.048-2.683s-5.083 5.93-6.495 6.354c-1.412.424-8.331 6.778-10.308 7.343-1.977.565-3.389.282-4.236-.283z" fill-rule="evenodd" fill="#8c1800"/> - <path d="M445.582 346.035c-5.93 6.636-5.93 6.495-5.93 6.495" stroke="#8c1800" stroke-linecap="round" stroke-width="3.0186115699999996" fill="none"/> - <path d="M454.485 335.16l-5.648 6.919" stroke="#8c1800" stroke-linecap="round" stroke-width="2.78641068" fill="none"/> - <path d="M463.373 321.044l-6.355 10.166" stroke="#8c1800" stroke-linecap="round" stroke-width="2.55420979" fill="none"/> - <path d="M470.856 306.644l-5.224 10.449M474.248 299.01l-1.695 3.67" stroke="#8c1800" stroke-linecap="round" stroke-width="2.3220088999999997" fill="none"/> - <path d="M478.056 288.987l-1.412 4.377" stroke="#8c1800" stroke-linecap="round" stroke-width="1.39320534" fill="none"/> - <g> - <path stroke-linejoin="round" d="M160.26 215.97s51.958-14.677 67.647-78.444c-9.11 65.454-65.96 86.204-65.96 86.204l-1.687-7.76z" fill-rule="evenodd" stroke="#000" stroke-width="1.483" fill="#f7df73" transform="matrix(-1.65528 0 0 1.70062 524.795 20.382)"/> - <path d="M250.697 394.416c-2.658 0-9.234-7.475-13.012-8.337-3.778-.862-4.197-4.744.14-4.888 4.337-.143 8.115 5.032 8.115 5.032s3.778 3.306 7.695 3.737c3.918.432 1.4 5.462-2.938 4.456z" fill-rule="evenodd" fill="#8c1800"/> - <path d="M195.51 197.62s-5.41 3.127-4.649 3.888c.76.761 5.579-2.958 5.663-3.043.085-.084 2.029-2.451-1.014-.845z" fill-rule="evenodd" stroke="#8c1800" stroke-width="1.483" fill="#8c1800" transform="matrix(-1.65528 0 0 1.70062 524.795 20.382)"/> - <path d="M232.373 380.624s2.659-1.006-4.197-3.737-6.436-5.894-8.675-7.188c-2.239-1.293-6.996-4.743-7.975-2.73s5.037 6.037 6.436 6.468c1.4.431 8.255 6.9 10.214 7.475 1.959.575 3.358.287 4.197-.288z" fill-rule="evenodd" fill="#8c1800"/> - <path d="M203.54 189.68c-3.55 3.973-3.55 3.888-3.55 3.888" stroke="#8c1800" stroke-linecap="round" stroke-width="1.807" fill="none" transform="matrix(-1.65528 0 0 1.70062 524.795 20.382)"/> - <path d="M208.87 183.17l-3.381 4.142" stroke="#8c1800" stroke-linecap="round" stroke-width="1.668" fill="none" transform="matrix(-1.65528 0 0 1.70062 524.795 20.382)"/> - <path d="M214.19 174.72l-3.804 6.086" stroke="#8c1800" stroke-linecap="round" stroke-width="1.529" fill="none" transform="matrix(-1.65528 0 0 1.70062 524.795 20.382)"/> - <path d="M218.67 166.1l-3.127 6.255M220.7 161.53l-1.014 2.198" stroke="#8c1800" stroke-linecap="round" stroke-width="1.39" fill="none" transform="matrix(-1.65528 0 0 1.70062 524.795 20.382)"/> - <path d="M222.98 155.53l-.845 2.62" stroke="#8c1800" stroke-linecap="round" stroke-width=".834" fill="none" transform="matrix(-1.65528 0 0 1.70062 524.795 20.382)"/> - </g> - <path stroke-linejoin="round" d="M490.42 239.302c.427 6.682 6.967 13.08 4.408 24.738-3.27 13.221-14.786 44.641-12.795 50.186-3.412-4.692-2.844-9.1-3.128-15.64-.285-6.539 9.525-30.85 10.378-39.096 0-7.392.711-17.486 1.137-20.188z" fill-rule="evenodd" stroke="#000" stroke-width="2.3218003200000004" fill="#217900"/> - <path stroke-linejoin="round" d="M490.42 239.442s10.663 13.506 10.094 24.169c-.568 10.663-6.54 23.173-4.55 28.718-3.411-4.692-4.264-7.678-4.549-14.217-.284-6.54 5.26-13.791 4.123-20.9-1.137-7.108-5.26-17.77-5.118-17.77zM141.123 242.427c-.426 6.682-5.402 12.652-2.843 24.31 3.27 13.222 14.928 29.999 13.08 49.192 3.412-4.692 4.407-9.952 4.691-16.492.285-6.54-12.938-28.576-13.79-36.822 0-7.392-.711-17.486-1.138-20.188z" fill-rule="evenodd" stroke="#000" stroke-width="2.3218003200000004" fill="#217900"/> - <path stroke-linejoin="round" d="M141.123 242.575s-10.378 13.08-9.81 23.742c.142 7.109 13.222 36.822 11.232 42.367 3.412-4.691 4.407-4.123 4.264-11.231-3.838-18.198-10.663-29.856-9.525-36.965 1.137-7.108 3.98-17.913 3.839-17.913z" fill-rule="evenodd" stroke="#000" stroke-width="2.3218003200000004" fill="#217900"/> - <path stroke-linejoin="round" fill="#fff" stroke-dashoffset="1" transform="matrix(1.16516 0 0 1.16534 201.97 -23.618)" stroke="#000" stroke-linecap="square" stroke-width="1.661" d="M99.959 125.78l22.172 68.231 71.743.003-58.04 42.172 22.167 68.233-58.041-42.15-58.044 42.16 22.168-68.23-58.04-42.17h71.743z"/> - </g> -</svg> diff --git a/img/flags/4x3/mq.svg b/img/flags/4x3/mq.svg deleted file mode 100644 index bde2166..0000000 --- a/img/flags/4x3/mq.svg +++ /dev/null @@ -1,7 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" height="480" width="640" viewBox="0 0 640 480"> - <g stroke-width="1pt" fill-rule="evenodd"> - <path fill="#fff" d="M0 0h640v480H0z"/> - <path fill="#00267f" d="M0 0h213.33v480H0z"/> - <path fill="#f31830" d="M426.67 0H640v480H426.67z"/> - </g> -</svg> diff --git a/img/flags/4x3/mr.svg b/img/flags/4x3/mr.svg deleted file mode 100644 index 372e864..0000000 --- a/img/flags/4x3/mr.svg +++ /dev/null @@ -1,13 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" height="480" width="640" viewBox="0 0 640 480"> - <path fill="#006233" d="M0 0h640v480H0z"/> - <circle cx="320" cy="180" r="155" fill="#ffc400"/> - <path d="M243.425 11.216A150 150 0 0 0 170 140a150 150 0 0 0 150 150 150 150 0 0 0 150-150 150 150 0 0 0-73.433-128.784H243.425z" fill="#006233"/> - <g id="b" transform="matrix(5 0 0 5 320 140)"> - <path id="a" d="M0-12L-3.708-.587l5.706 1.854" fill="#ffc400"/> - <use height="100%" width="100%" xlink:href="#a" transform="scale(-1 1)"/> - </g> - <use height="100%" width="100%" xlink:href="#b" transform="rotate(72 320 140)"/> - <use height="100%" width="100%" xlink:href="#b" transform="rotate(144 320 140)"/> - <use height="100%" width="100%" xlink:href="#b" transform="rotate(-144 320 140)"/> - <use height="100%" width="100%" xlink:href="#b" transform="rotate(-72 320 140)"/> -</svg> diff --git a/img/flags/4x3/ms.svg b/img/flags/4x3/ms.svg deleted file mode 100644 index 2af2479..0000000 --- a/img/flags/4x3/ms.svg +++ /dev/null @@ -1,39 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" height="480" width="640" viewBox="0 0 640 480"> - <path fill="#006" d="M0 0h640v480H0z"/> - <g fill-rule="evenodd"> - <path d="M408.303 192.25h214.293l-.255 153.441c1.782 61.682-36.423 99.957-106.72 117.214-49.926-12.476-107.489-38.28-107.573-115.464l.255-155.193z" fill="#fff"/> - <path d="M44.069 22.713h169.3l-.201 120.79c1.408 48.558-28.777 78.69-84.317 92.276-39.437-9.82-84.916-30.13-84.982-90.9l.201-122.17z" stroke="#000" stroke-width="1pt" fill="#00a2bd" transform="matrix(1.2096 0 0 1.2172 359.74 169.23)"/> - <path d="M616.248 361.329c-7.45 56.418-50.63 81.069-100.65 94.152-44.276-11.951-91.91-31.032-101.143-93.869l201.798-.283z" fill="#a53d08"/> - </g> - <g stroke="#000" fill-rule="evenodd"> - <path stroke-linejoin="round" d="M155.77 197.17c.094.094.658 9.295-4.319 14.929 4.413 1.409 7.418-.282 8.826-2.066 1.409-1.784 1.879-4.037 1.879-4.037s1.22-.751 1.408-2.441c.094-2.348-.939-2.348-1.784-2.817l.187-5.258s-5.07-3.099-6.197 1.69z" stroke-width="1.25" fill="#ffc6b5" transform="matrix(1.2096 0 0 1.2172 359.74 169.23)"/> - <path d="M155.49 210.32l-1.503-1.221" stroke-linecap="round" stroke-width="1pt" fill="#ff9a08" transform="matrix(1.2096 0 0 1.2172 359.74 169.23)"/> - </g> - <path d="M141.64 69.393s.117 5.625-.235 6.211c-.351.586-3.554 2.07-3.554 2.07l2.734 5.82s7.695-1.093 7.734-1.093 3.321-8.711 3.321-8.711-1.719-2.89-1.289-5.898c-2.578-8.165-8.594 1.64-8.711 1.601z" fill-rule="evenodd" stroke="#000" stroke-width="1pt" fill="#ffc6b5" transform="matrix(1.2096 0 0 1.2172 359.74 169.23)"/> - <path stroke-linejoin="round" d="M131.45 203.09s4.319 4.319 9.295 3.756c11.268-1.22 14.554-11.267 18.028-11.361s5.634 6.103 8.92 5.352c-2.817-5.164-5.821-16.619-5.352-24.694.47-8.075.47-42.065.47-42.065s-5.634-17.558-8.263-20.469c2.629-2.817 4.413-7.793 4.319-13.239-.094-5.446 0-11.455 0-11.455s1.314-1.502 1.221-5.727c-.094-4.226-7.136-10.328-8.075-10.047-.939.281-9.765 7.887-10.516 9.67-.752 1.785-1.784-6.478-.094-7.23 1.69-.75-3.944-1.22-7.512 3.005-3.568 4.226-2.535 124.69-2.441 124.5z" fill-rule="evenodd" stroke="#000" stroke-width="1.25" fill="#005121" transform="matrix(1.2096 0 0 1.2172 359.74 169.23)"/> - <path d="M467.518 224.122l39.97.144-.286-18.531 14.562.144.142 18.387h39.828l.142 14.365-39.97.144-.32 169.41-14.202.09-.182-169.641-39.693.143.009-14.652z" fill-rule="evenodd"/> - <path d="M122.03 81.959s-2.258-.398-3.984.133 2.656-19.586 2.656-21.246c1.527-.73 9.162-2.125 8.963-7.503-.531-3.253-11.818.2-11.619 4.316-.73 2.058-8.099 23.038-6.639 29.943 2.589 2.058 7.37 1.66 10.623 1.129v-6.772z" fill-rule="evenodd" stroke="#000" stroke-width="1pt" fill="#ffc6b5" transform="matrix(1.2096 0 0 1.2172 359.74 169.23)"/> - <path d="M124.22 53.211s-.664 3.718 2.722 4.25" stroke="#000" stroke-linecap="round" stroke-width=".625" fill="none" transform="matrix(1.2096 0 0 1.2172 359.74 169.23)"/> - <path d="M129.2 53.144c-.133.066-4.382 2.722-4.382 2.722M128.94 54.804l-2.988 2.191M127.81 52.348l-3.32 1.992" stroke="#000" stroke-width=".375" fill="none" transform="matrix(1.2096 0 0 1.2172 359.74 169.23)"/> - <path d="M95.49 163.56l30.14 31.267c10.422-11.455 3.193-54.272-10.515-62.158-1.643 5.07-4.437 11.149-7.407 13.109-6.534 4.453-22.546 9.659-17.194 12.993 1.22-1.69 4.413-3.286 5.915.47 1.784 5.915-6.666 6.291-6.666 6.291s-5.352-.658-6.291-6.104c-.939-5.445 7.972-10.417 8.732-10.797.751-.282 12.394-3.38 14.366-13.709 2.441-10.141 4.976-8.638 5.446-8.826 15.21 1.502 25.163 28.732 25.727 47.886.563 19.154-7.793 31.83-9.296 32.675-1.502.845-36.243-41.219-36.243-41.219l3.286-1.878z" fill-rule="evenodd" stroke="#000" stroke-width="1pt" fill="#ff9a08" transform="matrix(1.2096 0 0 1.2172 359.74 169.23)"/> - <path d="M117.46 134.45l.187 56.43M114.08 135.48l.187 51.267M110.42 142.9l.187 40.75M107.42 145.81l.188 33.709M104.22 147.32v28.45M100.75 149.57v22.534M97.744 151.35v17.276" stroke="#000" stroke-width="1pt" fill="none" transform="matrix(1.2096 0 0 1.2172 359.74 169.23)"/> - <path d="M95.021 167.13l31.079 35.58M127.6 144.69s14.085 30.798 1.033 56.149M91.359 160.65s1.033-2.723 2.347-1.596M88.918 152.76s-5.634 4.976-2.535 8.169" stroke="#ffdf00" stroke-linecap="round" stroke-width="1.25" fill="none" transform="matrix(1.2096 0 0 1.2172 359.74 169.23)"/> - <path d="M141.03 82.999s.47 4.32-.469 7.605 3.568 12.394 1.877 14.272M142.91 113.7l11.831-.094" stroke="#000" stroke-width="1pt" fill="none" transform="matrix(1.2096 0 0 1.2172 359.74 169.23)"/> - <path d="M138.59 118.49c.094.187 1.408 6.197 1.032 10.328M142.44 120.65c-.375 1.221-5.258 15.117-5.07 15.68M145.35 114.36c.094.282-.375 8.826-1.69 10.047M151.36 113.7s7.7 17.84 7.606 24.882 2.629 21.314.845 27.605M153.8 138.4s-.564 13.239-6.103 18.403c-5.54 5.165 13.239 19.906 13.239 19.906" stroke="#000" stroke-linecap="round" stroke-width="1pt" fill="none" transform="matrix(1.2096 0 0 1.2172 359.74 169.23)"/> - <path d="M153.61 175.86s2.066 18.215 5.54 19.53M136.62 145.34c.094.188-1.878 12.3-.282 14.272 1.597 1.972 14.836 20.469 14.272 39.624M146.85 193.51s-.376 11.549-11.08 12.488M143.66 185.91s3.193 12.018-7.699 19.624" stroke="#000" stroke-linecap="round" stroke-width="1.25" fill="none" transform="matrix(1.2096 0 0 1.2172 359.74 169.23)"/> - <path d="M147.88 156.89s12.3 12.77 12.864 18.404M151.45 113.98s2.16 9.107 1.315 10.704" stroke="#000" stroke-linecap="round" stroke-width="1pt" fill="none" transform="matrix(1.2096 0 0 1.2172 359.74 169.23)"/> - <path d="M113.51 132.69s-1.317-2.305-1.152-4.857-.412-6.502 7.82-9.713c5.021-5.103 10.618-8.149 13.663-9.712 4.445-2.881 7.327-2.223 9.96-3.211 1.729-1.975 1.646-6.338 3.457-10.206 1.811-3.869 5.021-11.853 8.478-10.618 3.458 1.235.741 11.606-.576 15.228s-2.469 7.408-4.774 9.63c-2.305 2.223-12.758 6.256-14.816 6.997s-11.441 2.88-13.828 6.174c-2.388 3.292-2.223 8.149-8.232 10.289z" fill-rule="evenodd" stroke="#000" stroke-width="1pt" fill="#ffc6b5" transform="matrix(1.2096 0 0 1.2172 359.74 169.23)"/> - <path d="M112.85 125.78c.247-.082 4.115-1.317 5.926 2.141" stroke="#000" stroke-width="1pt" fill="none" transform="matrix(1.2096 0 0 1.2172 359.74 169.23)"/> - <path stroke-linejoin="round" d="M141.91 55.2s-1.74 2.837-2.222 4.561c-.374 1.29-1.58-.087-2.218 2.708l1.035.181c-.412.823-.546 2.214-.628 2.543-.083.33-.662 1.834-.576 2.964.046.583 1.152 3.128 10.124-.741 8.972-3.869-2.881-14.85-5.515-12.216z" fill-rule="evenodd" stroke="#000" stroke-width="1.25" fill="#ffc6b5" transform="matrix(1.2096 0 0 1.2172 359.74 169.23)"/> - <path stroke-linejoin="round" d="M140.9 55.563c.921-.494 7.457-1.07 6.368 11.688 1.257-.165 2.011-.33 2.764.905.754 1.235.671 2.717 2.011 2.717 1.341 0 1.509-.247 1.844-1.235.334-.988 5.53 1.152 6.869-3.457-.232-.897-3.183-2.305-3.519-3.951.755-2.305-.335-9.795-9.885-10.207-4.944-.082-5.948 1.975-6.452 3.54z" fill-rule="evenodd" stroke="#000" stroke-linecap="round" stroke-width="1.261" fill="#c59200" transform="matrix(1.2096 0 0 1.2172 359.74 169.23)"/> - <path d="M140.42 58.115c.083.082 2.964.905 3.293 2.305" stroke="#000" stroke-linecap="round" stroke-width="1pt" fill="none" transform="matrix(1.2096 0 0 1.2172 359.74 169.23)"/> - <path d="M531.733 244.091c0 .526-.402.951-.898.951s-.897-.425-.897-.95.401-.951.897-.951.898.425.898.95z" fill-rule="evenodd"/> - <path stroke-linejoin="round" d="M154.38 61.542s-1.055 5.078 3.594 7.07M150.94 62.167s1.722.078 1.722 1.68c0 1.601-1.414 1.796-1.296 3.086.117 1.289 2.425 1.718 2.503 2.812M143.4 52.792c.078 0 8.243.938 7.774 2.969-.469 2.031-1.758 1.21-1.719 2.968s3.281.704 3.281.704.196-1.485 1.563-1.368.742 1.68 2.617 1.64" stroke="#000" stroke-linecap="round" stroke-width="1.25" fill="none" transform="matrix(1.2096 0 0 1.2172 359.74 169.23)"/> - <path d="M138.41 65.458l1.936-.064" stroke="#000" stroke-linecap="round" stroke-width="1.25" fill="none" transform="matrix(1.2096 0 0 1.2172 359.74 169.23)"/> - <path d="M143.45 73.696s.72 3.36-2 3.04" stroke="#000" stroke-linecap="round" stroke-width="1pt" fill="none" transform="matrix(1.2096 0 0 1.2172 359.74 169.23)"/> - <g stroke-width="1pt"> - <path fill="#fff" d="M0 .063v28.44l343.648 225.93h43.256v-28.438L43.256.064H0zm386.904 0v28.439L43.256 254.433H0v-28.439L343.648.063h43.256z"/> - <path fill="#fff" d="M161.21.063v254.37h64.484V.063H161.21zM0 84.853v84.79h386.904v-84.79H0z"/> - <path fill="#c00" d="M0 101.811v50.874h386.904v-50.874H0zM174.107.063v254.37h38.69V.063h-38.69zM0 254.433l128.968-84.79h28.837l-128.968 84.79H0zM0 .063l128.968 84.79h-28.837L0 19.023V.063zm229.099 84.79L358.067.063h28.837l-128.968 84.79h-28.837zm157.805 169.58l-128.968-84.79h28.837l100.131 65.831v18.959z"/> - </g> -</svg> diff --git a/img/flags/4x3/mt.svg b/img/flags/4x3/mt.svg deleted file mode 100644 index 74554ce..0000000 --- a/img/flags/4x3/mt.svg +++ /dev/null @@ -1,49 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" height="480" width="640" viewBox="0 0 640 480"> - <g fill-rule="evenodd" stroke-width="1pt"> - <path fill="#ce0000" d="M320 0h320v480H320z"/> - <path fill="#fff" d="M0 0h320v480H0z"/> - </g> - <g transform="translate(-12.38 -30.751) scale(1.5986)"> - <path d="M104.824 108.068c0 .81-.918 1.466-2.049 1.466-1.131 0-2.049-.656-2.049-1.466 0-.81.918-1.466 2.049-1.466 1.131 0 2.049.656 2.049 1.466z" fill-rule="evenodd" fill="#f1eeee"/> - <path d="M40.727 100.98v37.209h37.211c0 6.2 6.202 12.402 12.404 12.402v37.207h37.208v-37.207c6.202 0 12.404-6.202 12.404-12.402h37.211V100.98h-37.211c0-6.2-6.202-12.402-12.404-12.402V51.371H90.342v37.207c-6.202 0-12.404 6.202-12.404 12.402H40.727z" fill-rule="evenodd" fill="#c00"/> - <path d="M41.969 102.22v34.727H79.18c0 6.2 6.2 12.404 12.402 12.404v37.207h34.73v-37.207c6.202 0 12.402-6.204 12.402-12.404h37.211V102.22h-37.211c0-6.2-6.2-12.404-12.402-12.404V52.609h-34.73v37.207c-6.202 0-12.402 6.204-12.402 12.404H41.969z" fill-rule="evenodd" fill="#ffe600"/> - <path d="M43.209 103.46v32.249h37.208c0 6.2 6.202 12.402 12.404 12.402v37.207h32.248v-37.207c6.202 0 12.404-6.202 12.404-12.402h37.208V103.46h-37.208c0-6.2-6.202-12.402-12.404-12.402V53.851H92.821v37.207c-6.202 0-12.404 6.202-12.404 12.402H43.209z" fill-rule="evenodd" fill="#707070"/> - <path d="M44.45 104.7v29.766h37.208c0 6.2 6.202 12.404 12.404 12.404v37.207h29.767V146.87c6.202 0 12.404-6.204 12.404-12.404h37.208V104.7h-37.208c0-6.2-6.202-12.402-12.404-12.402V55.091H94.062v37.207c-6.202 0-12.404 6.202-12.404 12.402H44.45z" fill-rule="evenodd" fill="#a0a0a0"/> - <g fill-rule="evenodd"> - <path d="M94.37 89.223c2.179 2.18.412 7.48-3.947 11.84s-9.66 6.125-11.84 3.946c-2.18-2.18-.413-7.48 3.946-11.84s9.66-6.126 11.84-3.946z" fill="#d0d0d0"/> - <path d="M91.74 91.852c2.18 2.18 1.59 6.303-1.316 9.209s-7.03 3.495-9.209 1.315c-2.18-2.18-1.59-6.302 1.316-9.208s7.029-3.495 9.209-1.316z" fill="gray"/> - <path d="M80.774 98.429l.877-.877 3.508 1.754-1.754-3.508.877-.877 3.508 7.016-7.016-3.508zM86.037 93.167l.877-.877 5.263 5.262-.877.877z" fill="#d0d0d0"/> - </g> - <g fill-rule="evenodd"> - <path d="M139.308 105.009c-2.18 2.18-7.481.412-11.84-3.947s-6.127-9.66-3.947-11.84c2.18-2.179 7.48-.412 11.84 3.947s6.126 9.66 3.947 11.84z" fill="#d0d0d0"/> - <path d="M136.678 102.38c-2.18 2.179-6.303 1.59-9.209-1.316s-3.495-7.03-1.315-9.209c2.18-2.18 6.302-1.59 9.209 1.316s3.495 7.029 1.315 9.208z" fill="gray"/> - <path d="M130.101 91.414l.877.877-1.754 3.508 3.508-1.754.877.877-7.016 3.508 3.508-7.016zM135.363 96.677l.877.877-5.262 5.262-.877-.877z" fill="#d0d0d0"/> - </g> - <g fill-rule="evenodd"> - <path d="M123.52 149.947c-2.179-2.18-.412-7.48 3.947-11.84s9.66-6.125 11.84-3.946c2.18 2.18.413 7.48-3.946 11.84s-9.66 6.126-11.84 3.946z" fill="#d0d0d0"/> - <path d="M126.15 147.318c-2.18-2.18-1.59-6.303 1.316-9.209s7.03-3.495 9.209-1.315c2.18 2.18 1.59 6.302-1.316 9.208s-7.029 3.495-9.209 1.316z" fill="gray"/> - <path d="M137.116 140.741l-.877.877-3.508-1.754 1.754 3.508-.877.877-3.508-7.016 7.016 3.508zM131.853 146.003l-.877.877-5.263-5.262.877-.877z" fill="#d0d0d0"/> - </g> - <g fill-rule="evenodd"> - <path d="M78.585 134.157c2.18-2.18 7.481-.412 11.84 3.947s6.127 9.66 3.947 11.84c-2.18 2.179-7.48.412-11.84-3.947s-6.126-9.66-3.947-11.84z" fill="#d0d0d0"/> - <path d="M81.215 136.787c2.18-2.18 6.303-1.59 9.209 1.315s3.495 7.03 1.315 9.209c-2.18 2.18-6.302 1.59-9.209-1.316s-3.495-7.029-1.315-9.208z" fill="gray"/> - <path d="M87.792 147.752l-.877-.877 1.754-3.508-3.508 1.754-.877-.877 7.016-3.508-3.508 7.016zM82.53 142.489l-.877-.877 5.262-5.262.877.877z" fill="#d0d0d0"/> - </g> - <path d="M269.29 414.57c0 41.095-34.107 74.409-76.181 74.409s-76.181-33.314-76.181-74.409 34.107-74.409 76.181-74.409 76.181 33.314 76.181 74.409z" transform="matrix(.34191 0 0 .35003 42.921 -25.527)" stroke="#707070" stroke-width="1pt" fill="none"/> - <path d="M269.29 414.57c0 41.095-34.107 74.409-76.181 74.409s-76.181-33.314-76.181-74.409 34.107-74.409 76.181-74.409 76.181 33.314 76.181 74.409z" transform="matrix(.2605 0 0 .26669 58.641 9.023)" stroke="#707070" stroke-width="1pt" fill="none"/> - <path d="M100.265 140.667a1.24 1.24 0 1 1-2.481 0 1.24 1.24 0 0 1 2.48 0zM120.11 140.667a1.24 1.24 0 1 1-2.48 0 1.24 1.24 0 0 1 2.48 0zM108.12 140.67v1.293h-1.654c-1.654 0-1.654 1.293 0 1.293h1.654v1.294c.006 1.34 1.443 1.502 1.549.104l.105-1.398h1.654c1.653 0 1.653-1.293 0-1.293h-1.654v-1.293c0-1.293-1.654-1.293-1.654 0z" fill-rule="evenodd" fill="#d0d0d0"/> - <path d="M102.77 122.35v.733s-.389.561-2.868.733c-2.48.172-2.868 0-2.868 0 .065.64.547 1.852.41 3.3.096 1.685-.475 3.21-.475 3.21.065.089-.233.133-.754.089.41-.367.362-1.428.41-2.933.047-1.506-1.565-3.772-1.23-4.399.335-.627 7.375-.733 7.375-.733zM112.61 119.69c2.412-.111 6.459-.087 6.459-.087s.954 1.914.915 2.971c-.04 1.058-.368 1.958-.819 1.508-.45-.45.209-.366.29-1.508.08-1.142-.771-2.325-.771-2.325s-1.73.755-4.332.603c-2.602-.153-1.45-1.117-1.742-1.162z" fill-rule="evenodd" stroke="#707070" stroke-width=".146" fill="#d0d0d0"/> - <path d="M113.43 121.58c2.412-.111 3.995.258 3.995.258s.954 1.915.915 2.972c-.04 1.057-.368 1.957-.819 1.507-.45-.45.21-.365.29-1.507.08-1.142-.771-2.326-.771-2.326s-1.73.756-4.332.603c-2.602-.152-1.86-.308-2.152-.353-.291-.045-.362.72-4.298.827-3.937.107-5.944-.827-5.944-.827s-.39.561-2.868.733c-2.48.172-2.868 0-2.868 0 .064.64.547 1.852.41 3.3.096 1.685-.475 3.21-.475 3.21.065.089-.233.133-.755.089.41-.367.363-1.428.41-2.933.047-1.506-1.564-3.772-1.23-4.399.336-.627 2.12-.04 2.46-.366.337-.326-1.59-2.621-1.23-4.766.36-2.145 2.404-1.54 4.917-1.466 2.512.074 8.078.724 9.423 0 1.345-.725.763-3.407 2.049-5.132.819-1.1 2.048-1.466 3.277-1.466.82 0 2.049 2.932 2.049 3.665l-.41.367h-.41v.366c-.935.094-1.065-.8-1.639-1.466-.246 1.033.82 4.4.82 6.598 0 1.833-.766 2.641-.814 2.512z" fill-rule="evenodd" stroke="#707070" stroke-width=".146" fill="#d0d0d0"/> - <path d="M105.54 118.4c.034.73-3.166 2.369-3.427 3.017-.26.649.814 1.008.481 1.378-.332.37-.605.233-.673.302-.068.068-1.204-2.541-1.204-2.541s3.002-1.354 2.888-1.938c-.114-.585-2.216-.94-2.599-2.412s-.17-4.315-.481-4.91c-.311-.594-3.995-1.161-3.999-2.06-.003-.9 3.787-3.367 4.197-3.733.41-.367.82.366.41.733-.41.366-3.377 2.633-3.377 3 0 .366 2.458.733 3.277.733.82 0 1.23-.367 1.23-.733.004-.317-.82-.367-.82-1.1s.41-1.1 1.229-1.1c.41 0 1.197.47 1.229 1.1s-.729.684-.82 1.1c-.09.416.82.733 1.64.733.819 0 3.616 2.132 4.026 2.499.41.366.82.366.41.733-.41.366-.17.8-.58.434-.348-.354-.41-.733-.41-.733-.035-.334-3.037-1.833-3.447-1.467-.41.367 0 4.766 0 5.132 0 .733.854.73.82 1.833z" fill-rule="evenodd" stroke="#707070" stroke-width=".146" fill="#d0d0d0"/> - <path fill-rule="evenodd" fill="#a7a7a7" d="M100.32 109.9h4.917v5.132h-4.917z"/> - <rect transform="matrix(.55442 .83223 -.88237 .47055 0 0)" fill-rule="evenodd" rx=".445" ry=".199" height=".399" width="30.647" y="-25.672" x="138.6" fill="gray"/> - <path d="M180.71 42.52a7.087 7.087 0 1 1-14.173 0 7.087 7.087 0 0 1 14.173 0z" fill-rule="evenodd" transform="matrix(.11563 0 0 .10345 80.65 101.47)" stroke="#707070" stroke-width="1pt" fill="#d0d0d0"/> - <path d="M115.88 112.54c0 .304-1.902.66-4.097.66-2.195 0-4.097-.356-4.097-.66 0-.304 1.902.44 4.097.44 2.195 0 4.097-.744 4.097-.44z" fill-rule="evenodd" fill="gray"/> - <path fill-rule="evenodd" fill="#a7a7a7" d="M100.73 115.03h4.097v1.466h-4.097z"/> - <path d="M114.048 111.417c-.397.744-.774 1.275-.841 1.186-.068-.089.199-.764.596-1.508.397-.744.774-1.275.842-1.186.068.089-.2.764-.597 1.508zM115.083 113.343c-.452.397-.83.654-.842.574-.013-.08.344-.466.796-.863.453-.397.83-.654.842-.574.013.08-.343.466-.796.863z" fill-rule="evenodd" fill="gray"/> - <path d="M114.564 112.414c.333.606.553 1.12.491 1.146-.062.027-.383-.443-.717-1.05-.334-.607-.553-1.12-.491-1.147.062-.027.383.444.717 1.05zM114.244 115.583c0 .1-1.284.183-2.868.183s-2.867-.082-2.867-.183c0-.102 1.284-.184 2.867-.184 1.584 0 2.868.082 2.868.184zM104.824 115.215c0 .102-.918.184-2.049.184-1.131 0-2.049-.082-2.049-.184 0-.1.918-.183 2.049-.183 1.131 0 2.049.082 2.049.183z" fill-rule="evenodd" fill="gray"/> - <path d="M95.813 127.96s.676 1.643 3.556 1.666c2.881.022 3.872-.493 2.707-1.363s-3.333-.6-3.053.151c.28.751-.813 1.001-1.07.473-.257-.527-1.289-2.09.567-2.195 1.855-.105 5.784-.674 6.766.416.982 1.09-1.11 2.078.472 2.31 1.582.23 1.807-.265 4.528-.414 2.722-.15 3.761.505 4.694.413.932-.09.8-1.694.062-2.1-.737-.407-2.154-.482-2.517-.928-.363-.446-1.351-.083-1.26-.587.093-.503 1.402.347 1.417.09 0-.008.216-.179.26-.222-.165-.038-.259.023-.383.089.135-.108.126-.157.171-.245-.023-.033-.186.124-.213.092-.028-.033.19-.257.09-.176-.033.024-.292.152-.295.064.004-.036.136-.128.09-.178-.038-.042-.235.048-.26.058.113-.15.105-.148-.004-.26-.094-.111-.163-.109-.317.017.064-.18.081-.219-.074-.287-.127-.07-.133-.135-.291.189.06-.347-.102-.362-.035-.526.04-.15.252-.214.6-.18.676.005 1.038.816 1.259.813.22-.002.468-.858 1.416-.51.948.347 1.065.417 1.542.624.477.206-.335.52-.063.927.273.407 2.134 1.764 1.605 3.18-.529 1.415-1.892 1.64-2.014 2.252-.122.613 4.314.362 5.445.568 1.13.206 1.843 1.05 1.888 1.192.046.142-1.983.133-1.983.133s-1.041-.538-3.525-.587c-2.483-.049-3.429-1.05-4.358-1.176-.93-.126-2.911.21-4.018.16-1.108-.049-2.23-.224-2.947-.321-.717-.098-4.286 1.61-4.274 2.009-.744-.029-2.495-.124-2.423-.076.072.047.314-.775 1.68-.92 1.365-.144 2.694-.798 2.65-1.228-.044-.43.264-1.904.378-2.536.114-.632.625-.938.503-1.268-.122-.331-1.682-.672-3.179-.663-1.497.01-3.157.094-3.399.454-.24.361-.059 1.408.252 1.287.311-.12-.075-.805.252-.946.327-.14 1.165-.266 1.951-.284.787-.018 2.154.67 2.14.89-.014.22.44.952-.188 1.23-.63.279-1.916.403-3.148.34-1.232-.061-2.478-.485-2.927-.756-.448-.272-.723-1.098-.723-1.155z" fill-rule="evenodd" stroke="gray" stroke-width=".078" fill="#d0d0d0"/> - <path d="M114.053 125.53a.329.329 0 1 1-.657 0 .329.329 0 0 1 .657 0z" fill-rule="evenodd"/> - <path d="M129.51 120.77l1.595.344 2.665-1.824-.206.958-1.389.927c-.258.17-.514.326-.767.467.158.221.334.485.525.793l.86 1.39-.198.917-1.66-2.84-1.595-.345.17-.787zM126.79 109.04l3.086-1.421-.838-1.82.413-.191 2.017 4.38-.413.19-.842-1.828-3.086 1.421-.337-.731zM122.01 103.23l2.841-2.602.558.61-.073 4.398 2.23-2.042.522.569-2.841 2.602-.558-.61.075-4.4-2.233 2.044-.52-.569zM109.59 98.214l.466-3.824.799.097-.411 3.373 2.974.362-.055.452-3.773-.46zM103.48 98.762l-.69-3.79.793-.144.608 3.342 2.947-.536.082.448-3.74.68zM92.198 104.33l-.283-.353 2.01-1.613.894 1.116a5.69 5.69 0 0 1-.673 1.118c-.266.34-.572.65-.917.927-.466.373-.941.65-1.424.83-.482.177-.916.224-1.302.14a1.59 1.59 0 0 1-.934-.569 1.702 1.702 0 0 1-.367-1.049c-.009-.41.119-.822.383-1.235.264-.414.632-.81 1.106-1.189a4.786 4.786 0 0 1 1.014-.637c.335-.153.632-.23.89-.231.258 0 .51.068.754.205l-.488.552a1.293 1.293 0 0 0-.555-.148c-.176-.003-.383.048-.621.153a3.203 3.203 0 0 0-.719.444c-.287.23-.512.457-.677.681-.166.222-.278.43-.335.625-.055.192-.075.37-.06.536.028.283.13.533.304.75.214.268.466.435.755.5.292.062.612.026.96-.11.349-.135.68-.329.993-.58.272-.217.512-.463.718-.735.206-.275.345-.504.42-.686l-.45-.56-1.396 1.118zM92.068 132.03l-3.141 2.23-2.377-3.346.371-.263 1.91 2.69.973-.69-1.653-2.329.37-.263 1.654 2.328 1.427-1.013.466.656zM87.441 127.02c.447-.126.746-.414.897-.866.149-.453.143-.965-.02-1.538-.164-.583-.429-1.025-.794-1.328-.367-.304-.788-.39-1.266-.255a1.36 1.36 0 0 0-.72.466c-.18.224-.289.509-.324.855-.037.345-.002.71.107 1.096.155.548.408.987.76 1.316.348.327.802.412 1.36.254zm.218.8c-.615.174-1.17.05-1.665-.375-.496-.423-.861-1.047-1.094-1.872-.152-.54-.209-1.051-.167-1.531s.176-.875.405-1.184a1.63 1.63 0 0 1 .898-.624c.375-.106.746-.081 1.11.074.364.156.686.432.963.828.276.397.485.849.629 1.357.156.552.21 1.068.164 1.55-.046.481-.183.875-.412 1.181-.229.306-.506.505-.83.597zM87.981 120l-3.852-.087.061-2.697c.013-.542.057-.953.134-1.234.074-.28.2-.503.38-.668a.821.821 0 0 1 .586-.24c.273.006.5.151.682.435.18.284.29.718.328 1.302.07-.21.137-.371.203-.48.141-.232.317-.452.527-.657l1.072-1.034-.023 1.012-.82.787c-.236.23-.417.42-.543.569-.126.149-.215.284-.267.404-.052.118-.088.24-.11.363-.015.092-.024.24-.029.447l-.021.934 1.71.04-.018.804zm-2.134-.853l.04-1.731a4.067 4.067 0 0 0-.052-.864c-.044-.209-.118-.368-.22-.478a.48.48 0 0 0-.344-.17c-.182-.004-.334.098-.456.306-.122.204-.188.531-.198.982l-.044 1.926 1.274.029zM96.55 102.2l.026-4.505.745-.446 4.115 2.027-.787.47-1.208-.636-2.183 1.307.026 1.344-.734.439zm.694-2.259l1.77-1.059-1.093-.59a8.264 8.264 0 0 1-.78-.463c.06.251.092.518.096.8l.007 1.312zM115.85 98.734l4.157-1.738.7.51-.255 4.58-.741-.54.113-1.36-2.056-1.498-1.227.55-.691-.504zm2.35-.245l1.667 1.215.115-1.237a8.44 8.44 0 0 1 .122-.9 3.692 3.692 0 0 1-.698.402l-1.205.52zM128.5 112.83l3.747-.897.628 2.624c.126.527.188.936.185 1.227 0 .29-.067.538-.198.743a.82.82 0 0 1-.506.381c-.265.064-.522-.019-.77-.247-.247-.228-.463-.62-.648-1.176a2.463 2.463 0 0 1-.074.517c-.078.26-.192.517-.343.769l-.773 1.273-.236-.984.592-.97c.17-.282.297-.512.382-.688.083-.177.135-.33.154-.46.02-.127.025-.253.015-.379a3.717 3.717 0 0 0-.087-.44l-.217-.908-1.664.398-.187-.783zm2.28.282l.403 1.683c.086.358.176.632.27.823.096.19.208.326.335.406.13.08.254.106.375.077.177-.043.298-.18.364-.411.066-.23.046-.563-.059-1.002l-.448-1.872-1.24.296z" fill="#d0d0d0"/> - </g> -</svg> diff --git a/img/flags/4x3/mu.svg b/img/flags/4x3/mu.svg deleted file mode 100644 index d59b2e2..0000000 --- a/img/flags/4x3/mu.svg +++ /dev/null @@ -1,8 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" height="480" width="640" viewBox="0 0 640 480"> - <g fill-rule="evenodd"> - <path d="M0 360h640v120H0z" fill="#00a04d"/> - <path d="M0 120h640v120H0z" fill="#151f6d"/> - <path d="M0 0h640v120H0z" fill="#ee2737"/> - <path d="M0 240h640v120H0z" fill="#ffcd00"/> - </g> -</svg> diff --git a/img/flags/4x3/mv.svg b/img/flags/4x3/mv.svg deleted file mode 100644 index 7ca4f38..0000000 --- a/img/flags/4x3/mv.svg +++ /dev/null @@ -1,6 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" height="480" width="640" viewBox="0 0 640 480"> - <path fill="#d21034" d="M0 0h640v480H0z"/> - <path fill="#007e3a" d="M120 120h400v240H120z"/> - <circle r="80" cy="240" cx="350" fill="#fff"/> - <circle r="80" cy="240" cx="380" fill="#007e3a"/> -</svg> diff --git a/img/flags/4x3/mw.svg b/img/flags/4x3/mw.svg deleted file mode 100644 index f4475eb..0000000 --- a/img/flags/4x3/mw.svg +++ /dev/null @@ -1,12 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" height="480" width="640" viewBox="0 0 640 480"> - <g stroke-width="1pt" fill-rule="evenodd"> - <path fill="#f41408" d="M0 0h639.998v480H0z"/> - <path fill="#21873b" d="M0 319.997h639.998V480H0z"/> - <path d="M0 0h639.998v160.003H0z"/> - <g> - <path d="M220.479 141.06c22.308-49.262 84.502-72.826 138.83-52.597 27.36 10.188 46.74 27.754 57.987 52.56l-196.81.037zM194.509 147.425c-23.45-1.577-48.376-6.456-52.443-7.798-4.066-1.343-4.223-3.585-3.722-5.303.501-1.717 3.096-3.667 6.127-2.94 5.682 1.363 28.788 6.905 50.034 16.044zM319.139 61.514c-4.208-20.98-5.27-44.078-4.86-47.985.41-3.906 2.765-4.608 4.724-4.6 1.96.008 4.693 1.796 4.68 4.638-.027 5.33-.132 27.003-4.544 47.948zM330.679 62.001c-2.21-21.23-1.086-44.326-.308-48.186.778-3.86 3.19-4.376 5.141-4.216 1.952.16 4.507 2.153 4.224 4.984-.53 5.308-2.682 26.893-9.057 47.418zM341.139 63.286c-.276-21.322 2.94-44.256 4.066-48.046 1.126-3.789 3.576-4.123 5.506-3.818 1.93.305 4.295 2.483 3.757 5.283-1.01 5.25-5.113 26.601-13.329 46.581zM352.149 65.519c1.793-21.262 7.222-43.85 8.711-47.536 1.49-3.684 3.963-3.821 5.855-3.364 1.894.458 4.039 2.816 3.23 5.562-1.514 5.15-7.673 26.09-17.796 45.338zM362.999 68.653c3.867-21.034 11.486-43.097 13.33-46.647 1.844-3.55 4.321-3.488 6.161-2.88 1.841.609 3.747 3.13 2.674 5.8-2.01 5.007-10.2 25.37-22.16 43.726zM373.109 72.484c5.836-20.657 15.507-42.048 17.679-45.443 2.172-3.394 4.634-3.14 6.41-2.39 1.777.748 3.438 3.407 2.117 5.985-2.478 4.833-12.552 24.486-26.206 41.848zM383.059 77.207c7.808-20.113 19.507-40.655 21.999-43.863 2.491-3.21 4.92-2.76 6.617-1.873 1.697.887 3.095 3.668 1.53 6.13-2.935 4.618-14.868 23.396-30.146 39.607zM392.469 82.675c9.712-19.42 23.341-38.958 26.131-41.958 2.79-3 5.166-2.36 6.771-1.343 1.606 1.018 2.732 3.899.936 6.228-3.367 4.368-17.06 22.132-33.838 37.074zM401.329 88.875c11.544-18.577 27.001-36.963 30.07-39.73 3.068-2.768 5.374-1.943 6.875-.802 1.502 1.14 2.345 4.1.332 6.278-3.775 4.085-19.126 20.697-37.277 34.254zM409.579 95.765c13.292-17.59 30.464-34.68 33.787-37.192 3.324-2.514 5.54-1.51 6.926-.254 1.386 1.256 1.94 4.27-.275 6.281-4.154 3.77-21.049 19.1-40.439 31.166zM417.159 103.31c14.943-16.466 33.701-32.123 37.255-34.362 3.554-2.24 5.665-1.062 6.924.299 1.259 1.36 1.52 4.408-.881 6.235-4.504 3.424-22.815 17.352-43.298 27.828zM423.679 111.045c16.41-15.274 36.549-29.451 40.297-31.413 3.748-1.961 5.743-.629 6.872.823 1.129 1.452 1.108 4.508-1.454 6.146-4.803 3.071-24.338 15.56-45.715 24.444zM429.579 119.433c17.791-13.944 39.193-26.508 43.113-28.172 3.92-1.664 5.782-.18 6.77 1.353.987 1.534.678 4.578-2.03 6.01-5.075 2.688-25.715 13.615-47.853 20.808zM435.049 128.99c19.138-12.39 41.731-23.103 45.804-24.43 4.073-1.328 5.775.304 6.602 1.915.827 1.61.208 4.615-2.633 5.814-5.329 2.25-26.996 11.397-49.773 16.701zM439.229 138.221c20.24-10.856 43.763-19.771 47.946-20.778 4.183-1.006 5.725.753 6.396 2.422.672 1.67-.229 4.614-3.173 5.588-5.522 1.827-27.974 9.255-51.17 12.768zM442.589 148.006c21.216-9.197 45.514-16.198 49.779-16.867 4.265-.667 5.63 1.208 6.136 2.924.507 1.716-.676 4.578-3.704 5.313-5.678 1.378-28.765 6.984-52.21 8.63zM307.849 61.912c-6.33-20.538-9.744-43.448-9.733-47.373.01-3.924 2.283-4.82 4.234-4.976 1.952-.157 4.856 1.394 5.132 4.225.518 5.309 2.624 26.898.367 48.123zM296.749 63.213c-8.283-19.958-13.889-42.511-14.256-46.421-.367-3.91 1.81-4.982 3.739-5.293 1.93-.31 4.972 1.005 5.52 3.803 1.026 5.248 5.203 26.587 4.997 47.91zM285.719 65.413c-10.19-19.218-17.97-41.235-18.72-45.102-.746-3.865 1.32-5.107 3.21-5.57 1.892-.464 5.05.602 5.868 3.346 1.532 5.146 7.766 26.07 9.633 47.325zM275.319 68.359c-11.95-18.365-21.76-39.703-22.86-43.498-1.105-3.794.836-5.19 2.677-5.797 1.841-.608 5.088.212 6.16 2.883 2.009 5.008 10.179 25.376 14.03 46.412zM265.159 72.131c-13.65-17.369-25.44-37.867-26.9-41.562-1.46-3.695.343-5.237 2.12-5.985 1.777-.748 5.09-.184 6.409 2.395 2.475 4.834 12.539 24.492 18.362 45.152zM254.889 76.934c-15.313-16.183-29.09-35.636-30.91-39.196-1.82-3.56-.179-5.243 1.516-6.133 1.696-.89 5.051-.599 6.622 1.86 2.944 4.613 14.92 23.369 22.773 43.47zM245.539 82.306c-16.8-14.924-32.37-33.226-34.53-36.63-2.153-3.404-.677-5.21.927-6.229 1.605-1.02 4.975-.992 6.774 1.336 3.372 4.364 17.089 22.113 26.826 41.524zM236.779 88.282c-18.139-13.57-35.382-30.6-37.847-33.825-2.465-3.226-1.165-5.139.337-6.278 1.503-1.14 4.864-1.374 6.875.806 3.771 4.088 19.108 20.71 30.635 39.297zM228.269 95.23c-19.4-12.053-38.25-27.621-41.02-30.634-2.772-3.014-1.665-5.024-.281-6.28 1.385-1.258 4.709-1.762 6.926.247 4.158 3.766 21.068 19.083 34.377 36.663zM220.919 102.358c-20.447-10.533-40.668-24.614-43.709-27.406-3.041-2.792-2.124-4.88-.86-6.237 1.263-1.358 4.529-2.112 6.924-.28 4.492 3.438 22.758 17.416 37.645 33.922zM213.879 110.5c-21.398-8.842-42.92-21.237-46.223-23.772-3.303-2.536-2.594-4.69-1.469-6.143 1.126-1.454 4.305-2.47 6.87-.837 4.811 3.062 24.376 15.511 40.822 30.753zM207.569 119.324c-22.191-7.056-44.858-17.638-48.4-19.893-3.542-2.255-3.05-4.457-2.074-5.997s4.041-2.812 6.759-1.396c5.096 2.655 25.819 13.453 43.716 27.287zM202.329 128.292c-22.785-5.275-46.383-14.025-50.128-15.992-3.745-1.967-3.467-4.2-2.643-5.811.825-1.612 3.756-3.12 6.6-1.925 5.331 2.243 27.014 11.362 46.17 23.728zM198.129 137.278c-23.192-3.524-47.516-10.45-51.43-12.126-3.914-1.675-3.843-3.922-3.17-5.59.672-1.669 3.454-3.395 6.398-2.419 5.52 1.83 27.969 9.268 48.202 20.135z" fill="#f31509"/> - <path d="M194.509 147.425c-23.45-1.577-48.376-6.456-52.443-7.798-4.066-1.343-4.223-3.585-3.722-5.303.501-1.717 3.096-3.667 6.127-2.94 5.682 1.363 28.788 6.905 50.034 16.044z" fill="#f31509"/> - <path d="M129.386 141.522h381.23v12.562h-381.23z"/> - </g> - </g> -</svg> diff --git a/img/flags/4x3/mx.svg b/img/flags/4x3/mx.svg deleted file mode 100644 index 868fc2c..0000000 --- a/img/flags/4x3/mx.svg +++ /dev/null @@ -1,385 +0,0 @@ -<svg xmlns:xlink="http://www.w3.org/1999/xlink" xmlns="http://www.w3.org/2000/svg" height="480" width="640" viewBox="0 0 640 480"> - <defs> - <linearGradient id="a"> - <stop offset="0" stop-color="#fff"/> - <stop offset="1" stop-color="#f15770"/> - </linearGradient> - <radialGradient gradientTransform="matrix(.14152 .03595 -.03453 .14198 213.144 162.444)" r="25.859" cy="103.66" cx="842.31" gradientUnits="userSpaceOnUse" xlink:href="#a" id="b"/> - <radialGradient gradientTransform="matrix(-.13441 -.05384 .04964 -.12489 397.879 -24.245)" r="25.859" cy="550.46" cx="651.52" gradientUnits="userSpaceOnUse" xlink:href="#a" id="c"/> - <radialGradient gradientTransform="matrix(.07536 .00282 -.00343 .14804 412.4 -203.629)" r="25.859" cy="740.37" cx="380.84" gradientUnits="userSpaceOnUse" xlink:href="#a" id="d"/> - </defs> - <path fill="#ce1126" d="M426.667 0H640v480H426.667z"/> - <path fill="#fff" d="M213.333 0h213.333v480H213.333z"/> - <path fill="#006847" d="M0 0h213.333v480H0z"/> - <path d="M355.778 289.435l.224 4.478 1.69-1.117-1.296-3.687z" fill="#fcca3e" stroke="#aa8c30" stroke-width=".267"/> - <circle r="1.442" cy="288.216" cx="355.582" fill="#fcca3e" stroke="#aa8c30" stroke-width=".229"/> - <path d="M361.142 296.414l-3.277-3.138-1.471 1.183 4.451 2.594z" fill="#fcca3e" stroke="#aa8c30" stroke-width=".267"/> - <path d="M360.86 298.181c-.464-.62-.307-1.526.34-2.025.65-.498 1.552-.399 2.015.22.458.62.307 1.529-.342 2.028-.65.497-1.552.397-2.013-.222z" fill="#fcca3e" stroke="#aa8c30" stroke-width=".229"/> - <path d="M386.315 249.58l3.358 3.34.39-1.69-3.069-2.059z" fill="#fcca3e" stroke="#aa8c30" stroke-width=".267"/> - <circle r="1.406" cy="248.719" cx="385.866" fill="#fcca3e" stroke="#aa8c30" stroke-width=".229"/> - <path d="M395.16 251.56l-5.13 1.465.423-1.695 4.411-.43z" fill="#fcca3e" stroke="#aa8c30" stroke-width=".267"/> - <circle r="1.374" cy="250.852" cx="395.993" fill="#fcca3e" stroke="#aa8c30" stroke-width=".229"/> - <path d="M377.927 276.84l-3.13-4.874.503-.251 3.541 4.181z" fill="#fcca3e" stroke="#aa8c30" stroke-width=".267"/> - <circle r="1.454" cy="270.833" cx="374.489" fill="#fcca3e" stroke="#aa8c30" stroke-width=".229"/> - <path d="M378.125 276.97l3.975.726.147-.544-3.33-1.32z" fill="#fcca3e" stroke="#aa8c30" stroke-width=".267"/> - <circle r="1.439" cy="277.74" cx="383.315" fill="#fcca3e" stroke="#aa8c30" stroke-width=".229"/> - <path d="M284.639 288.056c0 .693-.544 1.185-1.06 1.185-.512 0-.929-.56-.929-1.25 0-.692.417-1.252.93-1.252.515 0 1.059.628 1.059 1.317z" fill="#fcca3e" stroke="#aa8c30" stroke-width=".229"/> - <path d="M284.616 290.288l.91 5.002-1.21-.478-.436-4.347z" fill="#fcca3e" stroke="#aa8c30" stroke-width=".267"/> - <path d="M285.72 288.59c.585.757-.404 1.913-1.454 2.2-1.05.286-2.36-.198-2.347-1.16.014-1.09 1.531-.523 1.939-.65.629-.198 1.235-1.206 1.863-.39z" fill="#fcca3e" stroke="#aa8c30" stroke-width=".229"/> - <ellipse ry="1.13" rx="1.558" cy="296.261" cx="277.002" fill="#fcca3e" stroke="#aa8c30" stroke-width=".229"/> - <path d="M279.64 295.995l4.806-.24-.813-.956-3.947.429z" fill="#fcca3e" stroke="#aa8c30" stroke-width=".267"/> - <path d="M280.045 295.439c.4 1.217.433 2.875-.928 2.7-1.365-.177-1.107-1.396-1.213-1.866-.195-.854-.995-1.623-.173-2.456.822-.836 1.91.403 2.314 1.622z" fill="#fcca3e" stroke="#aa8c30" stroke-width=".229"/> - <ellipse ry="1.433" rx=".942" cy="269.187" cx="264.384" fill="#fcca3e" stroke="#aa8c30" stroke-width=".229"/> - <path d="M264.403 272.36l.11 4.656-1.212-1.1.085-3.708z" fill="#fcca3e" stroke="#aa8c30" stroke-width=".267"/> - <path d="M266.2 270.943c.246 1.074-1.329 1.68-2.4 1.48-1.072-.196-1.882-.756-1.72-1.744.162-.99 1.493-.767 1.947-.493.454.27 1.833-.75 2.174.757z" fill="#fcca3e" stroke="#aa8c30" stroke-width=".229"/> - <ellipse ry=".741" rx="1.623" cy="276.46" cx="256.173" fill="#fcca3e" stroke="#aa8c30" stroke-width=".229"/> - <path d="M259.092 276.46l3.655-.248 1.557 1.204-5.269-.198z" fill="#fcca3e" stroke="#aa8c30" stroke-width=".267"/> - <path d="M257.751 274.501c.986.032 1.667 1.119 1.526 2.272-.14 1.153-1.028 2.086-1.936 1.945-.91-.146-.844-.914-.822-1.142.022-.233.53-.65.585-1.023.053-.37-.26-1.196-.143-1.579.12-.385.347-.486.79-.472zM254.803 246.166c-.409.65-1.185 1.142-1.578.89-.394-.254-.253-1.159.154-1.809.406-.648 1.055-.97 1.449-.717.393.255.38.987-.025 1.636z" fill="#fcca3e" stroke="#aa8c30" stroke-width=".229"/> - <path d="M250.727 253.488l2.04-4.808-.305-.264-2.313 3.377z" fill="#fcca3e" stroke="#aa8c30" stroke-width=".267"/> - <path d="M252.395 248.688c-1.01-.739-1.233-1.496-.908-2.243.324-.745 1.08-.261 1.08-.261s.499.55.866.745c.368.2.954-.064 1.386.55.433.613.172 1.228-.174 1.382-.347.152-1.406.439-2.25-.173zM243.915 248.056c.725.413 1.11 1.11.86 1.567-.249.448-1.04.482-1.766.068-.722-.411-1.108-1.111-.857-1.565.248-.452 1.038-.483 1.763-.07z" fill="#fcca3e" stroke="#aa8c30" stroke-width=".229"/> - <path d="M246.033 250.166l3.769 2.26-.11 1.778-4.09-3.514z" fill="#fcca3e" stroke="#aa8c30" stroke-width=".267"/> - <path d="M246.003 250.593c-.836.934-1.603 1.074-2.296.661-.695-.413-.135-1.122-.135-1.122s.595-.437.83-.785c.236-.35.045-.969.697-1.334.65-.364 1.223-.033 1.335.335.11.366.267 1.465-.431 2.245z" fill="#fcca3e" stroke="#aa8c30" stroke-width=".229"/> - <path d="M356.593 289.77s-.275.182-.425.478c-.143.295-.308.888-.308.888l.017-1.448.488-.281.228.363z" fill="#aa8c30"/> - <path d="M356.807 288.863s-.337.572-1.137.527c-.798-.043-1.19-.415-1.285-.823-.098-.405-.098-.701.16-1.175.26-.471-.378.45-.378.45v.9l.584.693.496.153.49.032.627-.208.42-.318.023-.23zM361.02 296.223s-.404.21-.712.098c-1.889-.67-3.475-1.778-3.475-1.778l3.795 2.357.392-.677zM363.382 297.298s-.043.663-.778.994c-.733.33-1.248.178-1.516-.14-.267-.318-.401-.58-.384-1.12.024-.541-.133.572-.133.572l.403.804.83.346.515-.09.447-.198.466-.475.234-.478-.084-.215zM387.648 249.717s-.096.149-.096.395c0 .248-.015.693-.015.693l-.827-.92.419-.545.52.377zM387.207 248.52c.048.659-.908 1.596-1.622 1.3-.714-.295-1.233-1.037-.842-1.779.388-.74-.196.28-.196.28l.099 1.088.679.624.845.05.667-.377.404-.742-.035-.443zM397.24 250.311s-.161-.451-.078.057c.079.512-.576 1.607-1.342 1.506-.76-.098-1.109-.764-1.045-1.383.065-.617-.128.214-.128.214l.12.825.409.387.583.345.681-.117.617-.395.275-.58v-.414l-.091-.445z" fill="#aa8c30"/> - <path d="M393.805 251.073s.026.346-.429.594c-.454.246-1.314.757-1.314.757l2.824-.822-.234-.685-.847.156zM376.708 273.465s-.153.166-.161.518c-.01.357.071.776.071.776l-1.582-2.502.47-.297 1.201 1.505zM375.839 271.111c-.282.66-1.434 1.079-1.986.758-.552-.32-1.022-1.516-.347-2.042l-.352.307-.178.682.253.714.552.625.509.157.813-.163.592-.463s.429-1.232.144-.575zM381.416 276.848s.015.295-.504.295c-.517 0-1.605.018-1.605.018l2.63.507.13-.525-.65-.295z" fill="#aa8c30"/> - <path d="M384.647 277.465c.235.877-.544 1.723-1.55 1.428-1.006-.3-1.276-1.298-.96-1.836l-.25.627.184.834.617.538.63.137.646-.16.651-.625.162-.747-.13-.196zM285.652 288.62c.271.306-.15 1.448-1.286 1.91-1.137.458-1.7.02-2.002-.364-.303-.383-.282-.789-.282-.789l-.162.208.152.594.574.492 1.005.219.748-.142.736-.395.377-.396.326-.482.043-.592-.184-.298h-.044l-.018.024.017.01z" fill="#aa8c30"/> - <path d="M284.639 291.111s-.194.064-.367.352c-.172.284-.238.788-.238.788l-.087-1.337.585-.309.107.506zM280.852 295.134s-.107.286.195.438c.304.156 1.017.33 1.017.33l-1.86.065-.195-.723.843-.11zM280.22 296.292s.022.067.018.188a1.432 1.432 0 0 1-.148.537c-.217.459-.303.988-.973.854-.672-.13-.952-.637-1.017-1.074-.066-.438-.217-.614-.217-.614v.59l.41.99.671.307h.585l.454-.176.216-.593.11-.484-.11-.525z" fill="#aa8c30"/> - <path d="M275.527 296.162s.217.857 1.168.878c.953.024 1.191-.265 1.191-.265l.108.33-.346.175-.827.095-.728-.145-.338-.25-.258-.45.03-.368zM266.087 270.76s.032.099-.034.411c-.065.312-.647 1.054-1.736 1.07-1.087.017-1.54-.347-1.833-.709-.292-.36-.341-.872-.341-.872l-.033.544.422.675 1.071.503 1.023.007 1.038-.303.455-.504.106-.553-.139-.268zM264.365 273.07s-.39.033-.584.206a3.934 3.934 0 0 0-.366.386l-.015-1.291.965.073v.625zM259.687 276.482s-.075.076.488.33c.563.253 3.128.526 3.128.526l-4.113-.111.152-.702.344-.042zM259.222 276.559s-.01.156-.216.571c-.205.418-.723 1.526-1.59 1.373-.866-.154-.757-.759-.757-.855 0-.1-.012-.31-.012-.31l-.15.628.204.438.357.221.704.088.475-.21.52-.495.27-.526.217-.56-.022-.363zM257.005 276.665s-.024.197-.705.221c-.682.018-1.655-.276-1.655-.276l.325.405.562.144.703.01.552-.054.218-.45zM254.91 247.781s.15.44-.239.725c-.389.284-1.234.46-1.774.152-.54-.307-1.516-1.294-1.516-1.294l.456.813.713.593.995.284.951-.15.435-.377.13-.305-.152-.44z" fill="#aa8c30"/> - <path d="M252.007 249.1s.02.113 0 .55c-.022.44-.196 1.164-.196 1.164l.866-1.934-.346-.308-.324.528zM246.643 250.616s-.13-.133.129.438c.26.572 2.38 2.613 2.38 2.613l-3.375-2.851.389-.553.477.353zM245.515 250.943s-.433.268-.822.287c-.39.022-1.039-.022-1.125-.484-.087-.458.13-.656.13-.656l-.282.636.109.349.498.287.693.066.626-.308.173-.177zM244.151 249.496s.043.132-.585.044c-.627-.088-1.383-.812-1.383-.812l.496.79 1.06.438.412-.46z" fill="#aa8c30"/> - <path d="M399.854 240.155c-.307 3.834-4.09 5.792-6.068 7.226-1.983 1.435-2.94 3.212-2.94 3.212l-.665 2.236-.325 1.43-.064.497c.13.399.299 1.09.324 2.126.05 1.743-.111 4.228-.111 4.228l2.662-1.91 1.93-.724.582-.093s-2.142 2.13-2.985 4.434c-.842 2.305-2.402 7.2-5.322 8.779-2.92 1.581-4.74.924-5.713 1.78-.972.855-1.007 1.085-1.007 1.085l-1.243 1.702-.984 1.273-.92.637-.583.471c-.02.475-.076 1.09-.235 1.656-.32 1.126-.7 2.378-.7 2.378s.584-.355 1.292-.443c.703-.092 1.36-.083 1.36-.083s-.55.675-.744 1.333c-.195.66.13 4.61-3.635 6.98-3.766 2.37-13.351 1.997-13.351 1.997l-1.816.723-1.709 1.276-1.56 1.71-.116.462s-1.179 1.437-2.026 1.999c-.842.559-2.789 1.84-2.789 1.84s1.653-.062 2.207.132c.55.2 3.505 1.517 3.505 1.517s-2.165-.043-3.635.525c-1.473.57-8.179 4.369-11.424 4.259-3.244-.108-7.877-4.851-7.877-4.851l-2.099-1.47-3.483-.68-4.307-.242.062-.564.082-.696s1.46-.166 3.811.112c2.01.24 2.68.906 4.366 1.104 1.69.197 2.936-.05 3.554-.327.617-.285 5.825-4.694 5.825-4.694l5.857-2.055 2.24.326.99.264.911.264s-.307.479-.958 1.087a7.298 7.298 0 0 1-1.461 1.021l.715.573 3.698-.59 1.208.311s.094.026.347.186c.058-.266.206-.82.54-1.255.454-.592 2.531-2.288 3.42-2.88.897-.592 1.09-.675 1.384-.988.29-.313 1.492-3.41 1.492-3.41l.163-1.577 4.09-3.936 2.757-2.93 1.202-3.342-.13-.674s.99 1.02.812 3.094c-.179 2.074-.635 2.799-.635 2.799s2.79-1.927 4.285-2.587c1.198-.527 2.083-.492 2.39-.459.394-.223 1.468-.888 2.12-1.843.812-1.183 1.024-1.532 1.024-2.009 0-.477.13-2.781.13-2.781l-.26-7.064 2.402-5.316 3.487-3.128.667-.396s-.278.74-.326 1.252c-.049.509-.049 1.414-.049 1.414s1.768-2.418 2.678-2.863c.208-.102.391-.188.558-.266a6.98 6.98 0 0 0 .72-1.953c.28-1.337.326-3.136.326-3.136l.053-2.925-.568-2.274-1.624-4.363-.064-5.744-1.216-1.64s1.152-.09 2.578 1.97c1.428 2.059 1.852 4.954 1.852 4.954l3.314-10.173s.89 1.201 1.519 3.21c.636 2.009.829 3.374.829 3.374l1.305-2.824c-.01.03-.04.196.156.997.226.938 2.254 2.109 1.947 5.944zm-67.297 65.025s-.62-1.557-3.811-3.138c-3.192-1.579-5.57-1.886-5.57-1.886l-.035 1.173 5.01 2.185 2.499 2.041 1.907-.375z" fill="#9ca168"/> - <path d="M355.367 295.621c.308-.41 3.005-2.813 4.382-3.522 1.38-.709 3.212-.84 3.212-.84 1.9-.347 2.208-.066 6.59-2.485 4.381-2.418 5.356-5.202 6.2-5.877.842-.676 2.383-.84 2.383-.84s-1.834 2.157-3.44 3.918c-1.605 1.764-3.328 2.88-5.795 4.544-2.465 1.663-7.59 1.746-7.59 1.746-2.16.495-2.89 1.019-4.092 2.071-1.2 1.056-2.015 2.203-2.015 2.203s-.142-.506.165-.918zm12.09-12.691c-4.055 3.704-5.387 7.145-5.387 7.145s3.603-3.094 5.453-4.871c1.85-1.779 4.444-2.636 5.615-3.722 1.169-1.087 1.233-2.008 1.979-2.701.745-.69 1.3-1.02 1.3-1.02s-1.787-1.382-8.96 5.168zm-8.555 8.573s1.734-.76 2.39-2.317c.487-1.153.228-1.447.974-2.767 0 0 4.22-4.074 5.71-5.827 2.663-3.128 1.461-5.695 1.461-5.695s.291 1.317-.81 2.699c-1.104 1.382-6.547 5.103-7.207 7.244-.661 2.14-.29 2.219-.584 3.357-.674 2.623-1.934 3.306-1.934 3.306zm-2.804 10.525s-2.122-1.425-4.5-1.273c-4.846.308-8.947 3.291-12.147 3.38-3.205.087-4.463-1.52-6.937-3.206-2.638-1.799-9.173-1.537-9.173-1.537l-.041.155-.046.191s4.493.045 6.409.577c3.66 1.01 5.632 4.82 9.787 4.576 5.392-.318 9.813-3.601 12.017-3.59 3.786.024 4.63.727 4.63.727zm-24.043-2.455s3.76.677 6.68-1.465c2.921-2.14 6.392-5.036 8.309-5.168 1.914-.132 3.927.362 3.927.362s-2.436-1.087-4.38-1.055c-1.95.034-3.929.297-5.748 1.384-1.816 1.088-2.693 3.06-4.672 4.312-1.981 1.254-4.116 1.63-4.116 1.63zm-.671 5.055c-.503 0-1.088.327-1.283.296-.193-.032-1.345-1.22-2.952-2.073-1.608-.856-4.002-1.373-4.002-1.373s-.299.074.237.254c.535.181 2.514.854 3.78 1.447 1.267.595 2.546 1.942 2.662 2.157.114.217.568.822 1.51.789.94-.032 1.315-.572 1.214-.937-.094-.361-.663-.56-1.166-.56zm2.645-3.653s1.488.85 3.957.789c5.26-.132 8.57-3.731 12.015-5.048 3.436-1.319 5.201-.177 5.201-.177s.09-.186-.02-.267c-.485-.363-2.083-1.23-3.844-1.203-5.778.088-11.184 3.73-13.542 4.718-2.278.953-3.766 1.187-3.766 1.187zm55.919-39.826c-1.772 1.83-4.416 7.673-5.583 9.269-1.167 1.598-2.631 2.074-3.262 2.717-.555.564-2.677 3.424-3.165 4.117-.485.69-.633.492-.974.789-.339.295-.518.313.049.163.568-.146.747-.492 1.623-1.48.875-.988.827-1.433 2.222-2.683 1.395-1.254 3.923-2.678 5.178-4.216 1.253-1.537 3.814-7.484 5.153-8.932 1.45-1.57 3.982-2.504 3.982-2.504s-1.996-.581-5.223 2.76zm-8.99 11.081s-.066-1.054 1.233-2.603c1.297-1.549 1.753-1.348 2.79-3.621 1.038-2.272 1.496-4.476 2.338-6.88.842-2.406 2.303-4.777 2.303-4.777s-1.362.131-2.76 2.011c-1.396 1.877-3.602 5.301-4.739 8.66-1.136 3.357-1.165 7.21-1.165 7.21zm-1.656 2.203s.487-.26.55-3.19c.067-2.932-.16-7.046.684-9.088.842-2.04 5.322-6.948 5.322-6.948s-1.851.462-4.447 2.536c-2.594 2.072-3.698 4.677-3.57 6.649.132 1.978 1.236 4.216 1.333 6.16.094 1.94.128 3.88.128 3.88zm10.546-20.168s1.105-3.974 1.557-4.94c.458-.968.478-1.537 2.727-4.06 1.29-1.447 2.556-2.374 3.093-4.39.542-2.023.523-7.661.523-7.661s-.585.523-1.06 1.513c-.478.99-.131 4.652-.976 6.342-.844 1.692-2.746 5.667-3.7 6.521 0 0-.193-2.853.152-5.73.347-2.874 1.322-3.75 1.753-5.64.433-1.885.173-6.76.173-6.76s-1.535 1.583-2.295 3.402c-.753 1.821-1.21 5.091-1.232 7.55-.022 2.46.564 4.457.65 5.862.083 1.404.193 2.062-.37 3.599-.562 1.537-.28.484-.626 1.976a34.834 34.834 0 0 1-.712 2.613l.343-.197zm-3.503-21.556s1.34 1.69 1.122 3.622c-.216 1.93-.95 4.478-.193 6.497.758 2.018 1.883 2.217 2.187 3.379.303 1.163.322 3.433.322 3.433s.628-4.312.195-5.497c-.43-1.183-.626-.637-1.253-1.887-.63-1.25.02-4.673-.456-6.67-.475-1.999-1.924-2.877-1.924-2.877z" fill="#717732"/> - <path d="M306.704 304.84s.406-1.134 3.132-2.466c2.726-1.335 6.83-3.13 7.22-2.9.39.232-.212 1.715-.212 1.715l-2.643.805-2.11 1.236-2.466 1.596-2.921.014z" fill="#9ca168"/> - <path d="M313.652 297.671c-3.483.132-5.383.989-6.053 1.12-.23.046-.732.402-1.16.19-.818-.405-1.528-1.527-1.528-1.527l-.736-.614-.173 2.5-5.085-4.41-.542 2.918-.648 1.341-5.042-4.765.238 3.687s-1.318.174-1.384.132l-3.592-2.502-1.06.351 1.17 2.173-4.546.353s-.367.2-.984.766a6.3 6.3 0 0 0-.957 1.103s-.137.231.024.338c.163.107 1.405.083 1.794-.067.389-.148.64-.69.754-.468.113.223.259 1.22.86 1.12.602-.099 2.713-1.7 4.219-.996 1.679.782-2.174 1.918-1.776 3.112.395 1.187 3.171.683 3.877.302.706-.377 2.814-3.006 3.676-2.007 1.2 1.392-2.523 2.47-1.834 3.859.666 1.342 2.743 1.04 3.748.462 1.008-.575 3.346-4.174 3.864-3.4.9 1.349-1.973 2.635-1.251 3.68.723 1.044 2.313-.039 3.368-.782 1.055-.741 1.477-2.504 2.936-3.326 1.46-.822 1.362-.48 1.763-.493.403-.019 1.532-1.136 1.532-1.136l3.432-1.457 1.68.122.868.412 1.721.24.202-1.451s-1.99-.931-3.374-.88zm-27.47.028l.727-1.29-.411-.626s-1.211-.679-2.315-1.796c-1.103-1.122-1.507-1.379-2.012-1.631-.506-.255-2.206-1.362-2.206-1.362l-.767-2.829-.453-.818-1.312.514-1.727-6.085-.337-1.091-.713-.042-1.416 3.69-1.583-2.305-.403-5.043-.987 1.107-1.27 1.291-2.26-4.571s-.183-.117-.299.264c-.114.37-.309 1.813-.168 2.67-.603-.377-1.641-1.089-3.031-2.287-2.294-1.975-2.846-2.991-2.846-2.991l-1.07-2.417 1.005-2.126.503-2.534-2.206.902-.39-5.729-.341-1.81-2.661 3.805s-1.037-1.466-1.037-1.63c0-.164.047-3.621.047-3.621l-.713-.216-1.09 2.041s-1.045-2.106-1.506-2.555c.073-.809.194-2.876-.297-4.472-.623-2.03-1.35-3.112-1.09-4.77.261-1.658.934-1.816.857-2.555-.078-.736-1.17.477-.805-.499.364-.973 3.843-3.186 3.116-4.345-.728-1.16-4.076 1.818-3.297-.182.777-2.002 3.997-2.03 4.18-4.821.112-1.739-3.039 1.08-3.324.21-.285-.868 1.946-2.658 1.922-3.791-.027-1.132.415-1.263-.209-1.87-.622-.605-2.544 2.37-2.544 2.37l-2.103-.792-.728 3.006-.647 2.552-2.597-1.525.7 3.108.624 3.029-2.701-.686 1.429 2.58 1.86 1.89 1.15 1.56.833.447 1.115 1.109.39 1.658s.65 1.819.65 1.898c0 .078.103 1.79.103 1.79l.026 1.184-.058.92-.04.345-.057.396-.023 1.084c-.508.048-1.332-.778-1.634-.263-.323.561 1.56 2.008 1.202 2.37-.357.365-3.116-.558-3.278.33-.163.889.26 2.14 1.85 2.535s5.29 1.25 4.674 1.974c-.618.727-4.641-2.204-4.478-.064.161 2.139 1.557 3.028 2.596 3.424 1.039.396 5.094-.064 4.867.889-.226.956-3.31-.297-3.602 1.086-.291 1.385 2.142 1.58 2.663 1.58.518 0 2.205-.064 2.854.43.65.493 2.92 2.896 4.35 4.115 1.212 1.032 3.83 2.846 4.594 3.373l-.037-.005c-.77-.072-2.363-.24-2.616.334-.323.74 6.103 3.032 4.26 3.743-1.845.708-3.831-1.963-4.363-.331-.534 1.633 1.22 3.012 2.221 3.607 1 .593 6.698.12 5.581 1.408-1.116 1.293-5.245-.87-5.283.66-.04 1.53 2.752 3.952 4.18 3.884 1.428-.064 2.998-2.357 3.648-1.118.65 1.237-1.104 1.739.272 2.068 1.376.328 2.35-1.41 3.946-1.094 1.596.316 4.103 1.328 5.505 2.605a78.992 78.992 0 0 1 2.842 2.753z" fill="#9ca168"/> - <path d="M308.372 304.132c.974.017 1.104.544 1.234.527.13-.017 1.77-1.416 3.327-2.271 1.558-.858 3.926-1.367 3.926-1.367l.148.214s-2.822.705-4.186 1.662c-1.69 1.186-3.019 1.928-3.101 2.14-.081.213-.696.626-1.655.644-.956.014-1.363-.558-1.363-.842 0-.278.698-.722 1.67-.707zm8.504-4.308s-.843.088-1.32-.33c-.476-.417-1.536-.79-2.554-.79-1.016 0-2.645.561-3.936 1.798-.104.101-.363.577-1.473 1.32.386.074 1.133-.438 1.948-1.097 1.168-.951 2.64-1.209 3.678-1.36 1.037-.157 1.688.438 2.165.766.475.331 1.448.24 1.448.24l.044-.547zM266.4 279.197c.106-.044.09-.274.02-.673-.157-.059-.785-.324-2.197-1.165-1.655-.989-5.095-3.724-5.095-3.724s1.43 1.386 2.857 2.67c1.427 1.282 3.993 2.863 3.993 2.863l.012.01c.22.021.376.034.41.019zm35.634 25.242s.52-.681 1.444-2.169c.925-1.487 1.769-1.963 1.898-2.144.13-.181-.357-.906-.633-1.466-.275-.56-.226-1.152-.226-1.2 0-.05.34.87 1.021 1.382a9.517 9.517 0 0 1 1.093.937s1.357-.18 1.39-.445c.033-.264-.033-.444-.26-.542-.226-.1-.486.203-1.103-.068-1.282-.557-1.802-2.5-2.565-2.566-.762-.066-.217 2.058-.551 2.09-1.185.114-2.11-4.313-4.95-4.494-1.999-.13-2.353.248-2.45.69-.096.445 2.418 3.098 1.574 3.473-.843.382-3.521-4.163-5.468-4.214-1.947-.05-2.11.693-1.964 1.12.145.429 2.158.807 1.687 2.224-.456 1.374-2.417-2.122-4.218-1.927-1.801.197-1.996.329-2.078.839-.08.51.633 1.251.374 1.432-.259.18-1.396.13-2.304.757-.908.627-2.175 2.339-2.175 2.339s1.185-1.679 2.758-1.861c1.574-.18 5.55.018 5.55.018s-.535-.33-1.119-.857c-.584-.528-1.087-1.597-1.087-1.597s.877.824 1.72 1.514c.844.694 1.898 1.22 1.898 1.22s1.688.164 1.802.363c.114.197-.05.59-.746 1.347-.698.758-1.704 1.65-1.704 1.65s1.687-1.286 2.012-1.566c.324-.279 1.493-1.168 1.493-1.168s1.234.163 1.363.131.07-.46-.758-1.679c-.826-1.217-1.61-2.536-1.61-2.536s1.015.935 2.043 2.29c1.027 1.354.877 1.98 1.298 2.047.422.065 1.103.158 1.411.143.414-.022.31.59-.406 1.678-.713 1.087-1.134 2.485-1.134 2.485s.728-1.17 1.507-1.975c.78-.807 1.186-1.763 1.494-1.812.31-.049 1.352.082 1.499.02.145-.069-.25-.497-.8-1.618-.553-1.118-.731-2.667-.731-2.667s.536 1.451 1.38 2.504c.843 1.053 1.168 1.9 1.351 1.912.184.009.836-.076 1.31-.07.238.006.265-.052.292.099.08.464-.115.742-.682 1.812a17.704 17.704 0 0 0-.94 2.125zm-21.55-12.498c1.218.415 1.688.415 1.688.415s-1.671-.99-2.11-2.39c-.44-1.397-.049-4.346-.762-4.312-.715.034-1.12 2.173-1.834 1.746-.715-.427.243-4.364-.536-6.041-.778-1.681-2.612-2.85-3.035-2.242-.422.613-.323 4.232-1.46 3.443-1.136-.79.098-3.886-.244-5.302-.34-1.417-1.2-2.437-1.849-2.091-.65.348.258 2.997-.763 3.028-1.023.035-.876-1.86-1.314-2.04-.438-.181-.585.381-.828.02-.244-.365-.113-1.715-.65-1.584-.534.132-.437 1.17-.291 1.745.145.576.47 1.4.697 1.78.227.378 1.039.854.975 1.17-.065.312-.489.576-1.039.59-.553.017-1.803-.034-1.803-.034s1.331.414 1.834.463c.503.049 1.478-.214 1.72.23.243.446 1.412 2.025 1.412 2.025s.275-.822.422-2.274c.146-1.446.08-2.716.08-2.716s.39 1.681.342 2.686c-.048 1.002-.423 2.961-.423 2.961s1.103.922.78 1.17c-.324.248-1.477.216-2.824.198-1.346-.017-3.26-.478-3.26-.478s1.72.824 2.92 1.02c1.2.2 3.813.264 3.813.264l1.784 2.022s.855-1.467.974-2.925c.12-1.462-.032-3.156-.032-3.156s.373 1.524.44 2.825c.063 1.303-.424 3.606-.585 3.803-.163.198-1.075.765-1.878.966-1.179.297-3.543.597-3.543.597s2.181.291 3.749-.083c1.57-.37 1.753-.807 2.19-.543.44.266.829.743.829.743s.94.729 1.363.92c.066.147-.725.474-1.126.727-.4.251-1.455.74-1.455.74s1.542-.56 2.224-.74c.341-.093 1.168-.397 1.168-.397l.455.248s.032-.33-.097-1.25c-.13-.922-.326-1.813-.326-1.813s.536.84.699 1.63c.161.79.161 1.596.161 1.596s.131.228 1.348.64zm-31.092-35.622s.347-1.67.347-3.6c0-1.934-1.342-4.92-1.559-5.225-.216-.31-.345-.572-.345-.572l.907-1.402-1.168.919s-.648-.132-1.21-.482c-.563-.349-.845-.876-.845-.876s.597.44 1.169.679c.57.236.713.153.713.153l-.45-1.948s-.596-.238-1.921-.975c-1.325-.738-2.52-1.896-2.52-1.896s1.793 1.08 2.805 1.5c1.014.423 1.585.45 1.585.45s1.065-.318 1.61-.636c.544-.314 1.661-1.158 1.661-1.158s-1.064.607-1.766.765c-.7.16-1.583.261-1.583.261l-.313-2.368-1.115-1.158c-.882-1.16-1.56-2.818-1.56-2.818s.91 1.157 1.639 1.71c.727.557 1.401 1.45 1.401 1.45s.831-.449 1.635-1c.804-.553 2.803-2.003 2.803-2.003s-1.141.604-2.725 1.343c-1.584.737-1.636.66-1.636.66s-.13-1.027.104-1.477c.235-.446.728-1.183.65-1.63-.078-.45-.415-.292-.545-.66-.13-.37.415-2.632.415-2.632s.13.816.156 1.235c.026.42-.208 1.001.364 1.001.57 0 3.246-2.686 3.582-3.187.337-.5.832-1.87-.573-1.315-1.4.552-1.066 1.749-2.231 1.657-.338-.026-.726-1.526-1.168-1.158-.442.37-1.428 1.291-1.611 2.344-.18 1.054.235 2.66-.363 3.134-.598.475-1.117-1.816-2.285-1.501-1.168.315-1.428 1.922-1.245 2.554.182.632 2.725 3.582 1.921 3.952-.806.368-2.78-2.504-3.843-.554-1.066 1.948 3.349 3.951 3.893 4.425.545.476.053.608.831 1.581.78.973 1.819 1.212 2.364 1.871.543.658 2.154 3.79 2.154 5.818 0 2.029-.128 2.77-.128 2.77zm11.725 17.096s-1.08-1.262-.723-3.333c.357-2.074 1.786-5.731 1.299-6.192-.487-.459-2.011 2.24-2.402 1.615-.39-.626.876-4.281.228-5.797-.65-1.513-.714-2.468-2.013-2.336-1.299.132-1.85 4.412-2.465 3.656-.619-.757.355-2.666-.066-3.687-.422-1.021-.65-1.385-1.299-1.221-.648.165-.94 2.14-1.395 2.109-.454-.034-1.201-2.375-2.142-2.04-.941.327 2.238 4.476 2.238 4.476s.568-.494.861-1.202c.292-.709.583-1.483.583-1.483s.261 1.35.033 1.879c-.226.524-.405 1.761-.405 1.761s-.78.246-2.061.047c-1.282-.194-2.337-.722-2.337-.722s.86.577 2.174.92c1.315.348 2.71.776 2.71.776s.342.427.925 1.2c.585.775 1.088 1.432 1.088 1.432s.374-.789.747-2.09c.373-1.3 1.265-3.44 1.265-3.44s-.276 2.584-.584 3.851c-.308 1.27-.633 3.063-.633 3.063s-1.137-.114-2.661-.395c-1.525-.282-3.603-.806-3.603-.806s1.818.725 3.587 1.201c1.768.475 2.872.774 2.872.774l1.39 1.837s.38-.669.93-1.44c.552-.778.975-1.83.975-1.83s-.244 1.434-.666 2.29a27.455 27.455 0 0 1-.714 1.366s-.893.215-1.72.196c-.828-.015-2.515-.033-2.515-.033s1.411.476 2.531.661c1.12.18 1.932.294 1.932.294s.08.51.68 1.368a4.58 4.58 0 0 0 1.356 1.275z" fill="#717732"/> - <path d="M314.437 310.837s-.633-.681-1.476-1.126c-.844-.443-1.128-.312-1.128-.312l-.39-.139.74-1.927 5.557-5.309.86-5.336.205-.005 3.22-.034-.035 7.283 1.022.463 6.203 3.72-.02 1.619s-.307.11-.906.346c-.602.24-.746.415-.746.415l-2.34.22-4.09-2.964-1.688-1.776-3.082 3.949-1.906.913z" fill="#fff"/> - <path d="M318.81 296.68s-.091.282-.13 1.102c-.043.82.053 5.123-.157 5.712-.21.588-3.201 1.822-4.91 3.312-1.71 1.495-1.774 2.592-1.774 2.592s-.564.043-1.624.438c-1.06.393-1.536.987-1.536.987s.628-2.654 3.396-5.112c2.772-2.462 4.111-2.669 4.42-3.082.31-.41 0-5.118.066-5.499.063-.377.395-.41.624-.444.228-.033 1.625-.005 1.625-.005zM325.873 312.406s.436-.854.716-1.14c.279-.286.954-.77.954-.77s.105-.108-1.41-.767c-1.514-.658-2.293-.44-3.374-1.206-1.081-.767-2.164-2.086-2.164-2.086l-1.45 1.295s.868 1.23 1.689 2.02c.82.788 2.68 1.052 3.504 1.513.822.462 1.535 1.141 1.535 1.141z" fill="#016848"/> - <path d="M321.523 296.65s1.64-.098 1.867.156c.227.254.193.535.203.619.007.08.086 3.978-.203 5.259-.305 1.339-.997 2.676-1.387 3.072-.39.395-2.855 2.548-4.024 3.687-1.168 1.141-2.357 2.768-2.357 2.768s-.433-.484-.801-.946c-.366-.46-.738-.614-.65-.92.086-.307 1.321-2.153 3.29-3.447 1.967-1.296 3.614-2.766 3.98-4.872.372-2.108.082-5.376.082-5.376z" fill="#cd202a"/> - <path d="M332.479 309.968s-.394-.397-1.78-.42c-1.393-.024-1.506.186-1.506.186s-.765-.963-1.99-1.761c-1.228-.8-2.153-.68-3.471-1.55-1.32-.868-2.013-2.136-2.013-2.136l1.017-2.065s1.137 1.598 2.314 2.465c1.18.867 3.795 1.713 4.63 2.444.833.728 2.8 2.837 2.8 2.837z" fill="#cd202a"/> - <path d="M344.936 286.35s-3.57-1.385-3.312-2.639c.26-1.25 8.247-3.355 8.247-3.355l.127-2.107s-1.168-.065-3.181.593c-2.012.658-5.193 1.514-8.631 1.514-2.088 0-3.22-.218-3.787-.39-.368-.111-28.152-1.743-29.058-1.734-.391.008-.889-.005-1.516-.048-3.7-.264-6.08-5.927-6.08-5.927l-1.751.307s.537 2.782-.391 3.029c-1.816.483-13.889-5.972-13.889-5.972l-.667 2.619s7.382 3.948 7.16 5.417c-.223 1.467-2.412 1.355-2.412 1.355l.938 1.76c.332.03 12.153.6 12.354 4.15.082 1.433-2.899 2.282-2.899 2.282l.994 1.214v.604s6.566.04 8.384 1.054c1.817 1.017 2.742 2.483 4.97 3.761 2.224 1.28 17.334.968 19.695.304 2.668-.752 4.308-3.776 8.648-5.093 4.339-1.315 5.74-1.38 5.74-1.38z" fill="#30c2dc" stroke="#0872a7" stroke-width=".533"/> - <circle cx="284.506" cy="280.688" r="2.091" fill="#fff" stroke="#0872a7" stroke-width="1.044"/> - <circle cx="296.452" cy="270.943" r="2.092" fill="#fff" stroke="#0872a7" stroke-width="1.044"/> - <circle cx="346.53" cy="286.547" r="2.146" fill="#fff" stroke="#0872a7" stroke-width="1.044"/> - <path d="M275.13 267.812c-.682 1.579 2.01 4.575 3.893 4.904 1.883.33 2.921-.13 3.246-1.053.325-.924.073-1.926-.357-2.5-1.2-1.615-6.102-2.931-6.782-1.351z" fill="#f8c83c"/> - <path d="M281.066 270.22c-.052-.954-1.622-1.879-2.629-1.879-1.006 0-2.013-.031-1.85.496.162.525 2.76 1.22 2.823 1.514.065.297-.778.657-.356 1.053.422.396.94.1 1.363-.196.422-.298.68-.396.649-.988z" fill="#fff"/> - <path d="M297.683 288.261c.431 1.391-.649 2.072-2.045 2.699-1.396.625-4.25.261-4.9-.855-.65-1.12 1.038-2.931 2.758-3.36 1.72-.427 3.796.264 4.186 1.516z" fill="#f8c83c"/> - <path d="M294.795 289.084c.546-.094.553.826 1.04.756.486-.064.907-.854.777-1.382-.129-.527-1.039-1.25-1.817-1.184-.779.066-3.082 2.007-2.824 2.535.26.524.779.46 1.202.264.422-.199 1.038-.89 1.622-.989z" fill="#fff"/> - <path d="M349.218 281.054c1.266 1.683 3.548.131 4.152-.524.607-.66 2.466-1.735 1.71-2.833-.76-1.097-2.055-1.009-2.921-.968-.866.045-2.64 1.32-2.941 1.91-.304.596-.564 1.67 0 2.415z" fill="#f8c83c"/> - <path d="M349.63 279.941s.11-1.833 1.82-1.91c.972-.043 1.015.265 1.752.683.734.415 1.016-.55 1.016-.55s.044 1.296-1.144 1.339c-1.192.043-.76-.527-1.927-.702-1.029-.156-1.518 1.14-1.518 1.14z" fill="#fff"/> - <path d="M321.85 276.383l-.844-.547s-1.689-.087-2.834-.065c-1.149.021-3.419.131-3.419.131l3.395 9.855 4.07 5.861 1.558.56 3.16-.21.537-1.535-1.19-9.505-4.432-4.545z" fill="#f9aa51" stroke="#953220" stroke-width=".533" stroke-linecap="round" stroke-linejoin="round"/> - <path d="M310.635 277l.163-1.119s.768-.097 1.839-.13c1.071-.036 2.006.07 2.121.153.11.083 2.37 2.843 3.147 4.652.778 1.813 1.687 4.84 2.693 6.687 1.007 1.842 3.183 4.937 3.183 4.937s-1.09.064-2.047.064c-.957 0-2.022.034-2.022.034l-1.825-.708-5.728-8.905-1.524-5.665z" fill="#f9aa51" stroke="#953220" stroke-width=".533" stroke-linecap="round" stroke-linejoin="round"/> - <path d="M308.243 275.79s2.336-.044 2.553.087c.217.132 2.813 2.438 3.85 5.29 1.04 2.853.52 3.249 1.864 6.19 1.338 2.942 3.2 4.916 3.2 4.916s-3.894.22-6.101-.176c-2.207-.395-2.986-.35-3.506-.963-.519-.617-1.732-1.362-1.732-1.362h-2.205l.518-3.074-.605-6.89.13-3.56 2.034-.46zM331.61 277.61l-3.72-1.535-6.924-.352s.257 1.845.517 3.557c.26 1.71 1.473 5.749 2.598 7.725 1.124 1.976 2.251 4.39 2.858 4.96.606.571 4.588-1.075 4.588-1.075l2.594-.395-.346-2.833-.369-.876.608-8.057-.565-1.25-1.839.131z" fill="#f9aa51" stroke="#953220" stroke-width=".533" stroke-linecap="round" stroke-linejoin="round"/> - <path d="M307.115 277.656c0 .88.931.923 1.169.88.237-.046 1.039-.353 1.039-1.54 0-1.184-.735-2.105-2.186-2.193-1.45-.088-2.552 1.735-2.552 2.962 0 1.229 1.232 1.866 1.232 2.328 0 0-1.232 1.142-1.168 3.137.064 2 1.688 3.535 1.688 3.535s-1.732 1.382-1.732 2.766c0 1.384 1.321 2.303 2.554 2.303 1.233 0 2.813-.789 2.813-1.84 0-1.056-.93-1.69-1.71-1.69-.779 0-1.103.458-1.103.81M332.799 278.212c0 .857-.553.892-1.04.892s-1.136-.265-1.136-1.353c0-1.086 1.43-1.678 2.338-1.678.906 0 2.466 1.25 2.466 2.766 0 1.514-1.104 2.535-1.104 2.535s.68.328.68 2.236c0 1.912-1.23 3.293-1.23 3.293s1.608.628 1.608 2.603c0 1.973-1.365 2.619-2.308 2.619-.941 0-2.581-.561-2.581-1.91 0-1.354.845-1.828 1.493-1.828.649 0 1.283.758 1.283 1.498" fill="#f9aa51" stroke="#953220" stroke-width=".533" stroke-linecap="round" stroke-linejoin="round"/> - <path d="M309.5 288.65s.24.158.423.545c.186.39.318 1.015.746 1.396.844.757 7.269.99 9.218.99 1.946 0 7.787.264 8.892-.396 1.105-.657 1.233-1.746 1.914-2.24.681-.492.877-.459.877-.459l-.845.723-.061 1.382.5.758s-.112.397-.795.825c-.681.428-1.298.559-2.24.658-.94.1-13.239.066-15.222-.262-1.978-.332-1.848-.298-2.433-.725a4.307 4.307 0 0 1-.909-.89l.26-.887-.325-1.418zM329.454 276.848l1.103.484s-.942.293-1.652 2.237c-.716 1.945-.132 2.57-.617 2.765-.488.2-5.81.034-5.81.034l-.912-2.208 7.888-3.312z" fill="#953220"/> - <path d="M346.43 276.079s-.91-.33-1.33-1.087c-.424-.758-.78-1.712-.457-1.91.328-.198 1.007.459.945 1.055-.067.591.841 1.942.841 1.942zM356.83 273.206s.649 1.184.875 1.315c.228.131 1.264.596 1.264.596s-1.459 0-1.912-.397c-.457-.396-1.104-1.482-1.104-1.482l.876-.032z" fill="#231f20"/> - <path d="M359.968 274.166s-.876.525-1.62.23c-.747-.297-1.33-.726-1.042-1.053.295-.33.486-.198.877.229.39.43 1.785.594 1.785.594zM365.256 269.686s-.715.63-1.233.63c-.519 0-1.56-.202-1.56-.432 0-.23 1.363-.361 1.59-.328.23.033 1.203.13 1.203.13zM357.332 259.187s-1.17.361-1.557.956c-.388.592-.293 1.25.195 1.216.485-.031.617-.69.617-.888 0-.195.745-1.284.745-1.284zM352.113 262.052s-.875.556-1.103 1.053c-.23.492-.424 1.545.095 1.58.521.033.685-.792.715-1.218.034-.429.293-1.415.293-1.415z" fill="#231f20"/> - <path d="M342.772 268.368l-2.864 3.033s6.588 3.688 11.65 3.524c5.064-.163 10.842-4.115 11.228-4.94.392-.82.067-4.345-.584-5.466-.65-1.118-4.153-3.85-5.483-3.72-1.33.132-3.67 1.91-5.843 4.018-2.175 2.107-1.95 3.883-4.966 3.722-3.018-.165-3.139-.17-3.139-.17z" fill="#8cbebf" stroke="#04534e" stroke-width=".533"/> - <path d="M342.04 269.58s7.054 1.055 9.085-.746c2.037-1.798 4.242-5.311 5.671-6.102 1.43-.792 2.075-.792 2.075-.792s1.051.67 1.536 1.09c.488.414 1.796 1.49 1.796 1.49l.565 3.35.042 1.842-2.204 1.802-4.05 1.865-3.87 1.206-3.29-.088-6.661-1.932-1.69-1.196-.434-.384 1.43-1.405z" fill="#0c8489"/> - <path d="M352.791 265.519c0-.602.394-.572.932-.572.537 0 1.124.103 1.124.703s-.586 1.47-1.124 1.47c-.538 0-.932-1-.932-1.601zM355.626 267.294c0-.54.415-.834 1.058-.834.647 0 1.234.722 1.234 1.261 0 .54-.523.978-1.164.978-.646 0-1.128-.865-1.128-1.405zM354.65 271.515c0-.675.414-.815 1.06-.815.644 0 1.04.304 1.04.978 0 .67-.526 1.218-1.17 1.218-.646 0-.93-.71-.93-1.381zM350.932 270.22c0-.72.684-.945 1.265-.945.58 0 1.05.585 1.05 1.309 0 .721-.47 1.304-1.05 1.304-.581 0-1.265-.948-1.265-1.668zM345.043 270.936a1.44 1.44 0 1 1 2.879 0 1.439 1.439 0 0 1-2.88 0z" fill="#04534e"/> - <path d="M355.626 267.294c0-.487.665-.834 1.058-.834.397 0 .716.392.716.88 0 .482-.32.876-.716.876-.393 0-1.058-.439-1.058-.922zM354.673 271.34c0-.56.515-.792 1.105-.792s1.036.232 1.036.792c0 .556-.479 1.007-1.068 1.007-.593 0-1.073-.451-1.073-1.007zM350.955 270.105c0-.616 1.013-.897 1.431-.897.419 0 .346.412.346 1.03 0 .621-.342 1.12-.76 1.12-.417 0-1.017-.63-1.017-1.253zM352.708 265.45c0-.564.438-.593.802-.593.362 0 .627.17.627.735 0 .564-.295 1.02-.66 1.02-.366 0-.77-.598-.77-1.162zM345.028 270.501c0-.654.569-1.272 1.406-1.272s1.687.289 1.687.942c0 .655-1.023 1.778-1.86 1.778-.84 0-1.233-.793-1.233-1.448z" fill="#8cbebf"/> - <path d="M347.725 269.359s-.974.165-1.494.66c-.517.493-.584 1.055-.29 1.218.29.163.65-.363.746-.593.095-.232 1.038-1.285 1.038-1.285zM352.403 268.338s-.94.66-1.037 1.319c-.1.66 0 .987.26 1.021.26.031.42-.858.325-1.187-.097-.326.452-1.153.452-1.153z" fill="#231f20"/> - <path d="M353.18 269.328s-.616.032-1.038.427c-.42.397-.81.89-.517.923.29.032.748-.197.776-.462.033-.262.779-.888.779-.888zM354.186 263.896s-.488.396-.747.625c-.262.232-.583.889-.262 1.056.327.166.554-.133.78-.592.229-.465.229-1.09.229-1.09zM357.728 266.166s-.91.129-1.2.524c-.291.396-.49.859-.098.859.387 0 .485-.199.649-.56.163-.361.65-.823.65-.823zM357.172 270.35s-.193.625-.745.92c-.552.299-.713.561-.94.165-.229-.394.063-.593.356-.693.291-.096 1.33-.393 1.33-.393z" fill="#231f20"/> - <path d="M362.818 267.515s.391 1.942-1.296 2.895c-1.687.956-6.426 4.314-10.904 3.919-4.48-.396-9.576-2.963-9.576-2.963l-.712.33 1.135.493 3.473 1.448 3.956 1.154 2.47.163 2.142-.264 3.957-1.314 3.353-1.714 1.742-1.383.466-.571-.043-.81v-1.12l-.163-.263z" fill="#04534e"/> - <path d="M274.879 242.204s1.039.89.941 1.646c-.098.757-.358 1.056-.648.923-.293-.132-.293-.923-.228-1.25.065-.333-.065-1.319-.065-1.319zM282.559 249.343s-.293 1.316-.813 1.448c-.518.132-.908-.427-.811-.659.098-.231.52-.032.747-.231.227-.195.877-.558.877-.558zM265.843 250.364s.356.758 1.038.89c.68.13 1.007-.33.909-.56-.097-.23-.39-.166-.747-.166s-1.2-.164-1.2-.164zM268.83 256.223s.617.727 1.46.824a1.269 1.269 0 0 0 1.33-.757c.065-.198-.973-.166-1.299.098-.323.264-1.492-.165-1.492-.165zM274.117 260.734s1.362-.264 1.589-.625c.228-.362.584-.987.293-1.351-.293-.36-.52.56-.682.92-.162.365-1.2 1.056-1.2 1.056z" fill="#231f20"/> - <path d="M282.628 257.153s.91-6.103-4.025-10.405c-4.934-4.302-8.136-3.25-9.825-1.666-1.687 1.578-3.158 6.76 2.077 11.282 5.237 4.521 11.686 3.117 11.686 3.117l.086-2.328z" fill="#8cbebf" stroke="#04534e" stroke-width=".533"/> - <path d="M267.58 250.692s-.094-3.353 1.49-4.35c1.584-1.003 6.8-1.873 9.372 3.081 2.57 4.95 2.622 7.426 1.973 9.93l-2.752-.028-4.258-1.736-3.532-2.608-2.293-4.29z" fill="#0c8489"/> - <path d="M281.972 258.03s-.864.965-2.64.878c-1.773-.089-10.038-2.24-12.116-9.658l.13 1.624.086.527.545 1.495 1.74 2.525 2.182 1.87 2.751 1.424 1.974.579 2.57.449h1.48l1.299-1.714z" fill="#04534e"/> - <path d="M277.668 255.888c0-.662.339-.682.865-.682s.93-.232.93.427c0 .661-.36 1.614-.887 1.614-.525 0-.908-.7-.908-1.359zM278.018 251.964c0-.457.416-.825.933-.825.513 0 .928.368.928.825 0 .455-.415.82-.928.82-.517 0-.933-.365-.933-.82zM274.27 256.292c0-.356.469-.647 1.049-.647s1.05.29 1.05.647c0 .357-1.043.845-1.624.845-.578 0-.476-.488-.476-.845zM273.927 251.667c0-.581.282-.396.79-.396.509 0 1.136.166 1.136.748s-.628 1.36-1.136 1.36c-.508 0-.79-1.132-.79-1.712zM270.445 252.444c0-.49.33-1.175.951-1.175s1.297.685 1.297 1.175c0 .491-.502.89-1.125.89-.62 0-1.123-.399-1.123-.89zM271.07 248.353c0-.507.345-.481.983-.481.64 0 1.159.259 1.159.77 0 .507-.747 1.14-1.386 1.14-.64 0-.757-.918-.757-1.43zM274.84 247.957c0-.493.42-.331 1.018-.331.599 0 1.082.398 1.082.89 0 .49-.765 1.04-1.363 1.04-.598.001-.736-1.11-.736-1.6z" fill="#04534e"/> - <path d="M271.07 248.246c.085-.352.33-.594.778-.594.447 0 .843.084.843.594 0 .507-.363.924-.81.924-.449 0-.933-.43-.812-.924zM270.376 252.261c0-.496.249-.965.757-.965.507 0 .909.05.909.55 0 .498-.445 1.075-.953 1.075-.507 0-.713-.162-.713-.66zM274.81 248.025c0-.394.339-.438.822-.438.483 0 .8.1.8.492 0 .396-.392.714-.876.714s-.746-.373-.746-.768zM273.95 251.873c0 .54.396.98.886.98s1.017-.43 1.017-.968c0-.542-.548-1.056-1.039-1.056-.49 0-.865.505-.865 1.044zM278.17 251.31c0 .488.426.889.951.889.526 0 .952-.401.952-.89 0-.492-.426-.888-.952-.888-.525 0-.95.396-.95.888zM274.102 256.246c0-.43.446-.844.888-.844.441 0 .865.273.865.702 0 .43-.769 1.01-1.211 1.01-.443 0-.542-.438-.542-.868zM277.69 255.614c0-.526.402-.57.952-.57.55 0 .822.052.822.58 0 .527-.445.958-.994.958-.55 0-.78-.44-.78-.968z" fill="#8cbebf"/> - <path d="M278.666 249.442s.55.69.648 1.217c.096.526.096 1.12-.098 1.187-.195.065-.519-.33-.616-.823-.097-.496.066-1.58.066-1.58zM275.519 246.082s.356.562.356 1.056c0 .493-.065 1.02-.324 1.02s-.259-.493-.259-.856c0-.361.227-1.22.227-1.22zM271.816 246.578s.357.561.357 1.055c0 .492-.065 1.02-.324 1.02-.26 0-.26-.493-.26-.854 0-.364.227-1.221.227-1.221z" fill="#231f20"/> - <path d="M270.52 247.271s.487.132.909.46c.422.329.584.723.422.922-.162.197-.551-.097-.648-.33-.099-.23-.682-1.052-.682-1.052zM273.34 251.15s.714.032 1.104.395c.389.363.713.66.486.923-.227.263-.78-.198-1.007-.46-.227-.263-.583-.859-.583-.859zM269.904 251.02s.65.162.973.393c.325.232.423.694.26.791-.162.097-.389-.066-.68-.361-.293-.298-.553-.823-.553-.823zM278.208 253.625s.229.79.229 1.347c0 .562.065 1.056-.196 1.056-.259 0-.389-.691-.389-1.12 0-.43.356-1.283.356-1.283z" fill="#231f20"/> - <path d="M277.271 254.905s.585.23.844.46c.26.232.325.594.13.66-.194.065-.324-.362-.487-.527a9.146 9.146 0 0 1-.487-.593zM273.568 255.134s.625.074.898.26c.271.186.299 1.04.271 1.15-.026.11-.434.036-.599-.37-.16-.41-.57-1.04-.57-1.04z" fill="#231f20"/> - <path d="M272.136 243.842s-3.27.71-3.866 2.817c-.599 2.108-.625 4.451-.625 4.451l-.468-2.684.65-1.74.952-1.597 1.439-.906 1.296-.447.622.107zM282.338 256.345s.339-.816-.622-3.396c-.962-2.582-2.934-5.955-2.934-5.955l1.533 1.739 1.219 1.976.597 1.816.442 1.661-.026 1.63-.209.53z" fill="#04534e"/> - <path d="M285.645 252.17s1.135.744 1.248 1.153c.115.413.162.545-.128.66-.293.118-.764-.344-.894-.66-.13-.313-.226-1.153-.226-1.153zM280.852 265.046s.536-1.004 1.25-1.382c.713-.378 1.249-.33 1.444-.098.195.23-.47.757-.957.938-.487.182-1.737.542-1.737.542zM288.906 268.124s.795-.378 1.315-.94c.52-.556.584-.951.389-1.15-.194-.197-.844.133-1.137.576-.291.443-.567 1.514-.567 1.514zM288.03 267.37s.275-1.036.552-1.367c.276-.329.665-.51.957-.329.294.18.114.645-.098.889-.21.248-1.412.807-1.412.807z" fill="#231f20"/> - <path d="M301.492 261.237s-5.016-7.256-12.808-7.64c-6.232-.307-8.2 5.258-7.973 6.937.222 1.652 2.563 5.278 10.872 5.891 8.309.615 9.65-3.916 9.996-4.137.345-.22-.087-1.051-.087-1.051z" fill="#8cbebf" stroke="#04534e" stroke-width=".533"/> - <path d="M295.572 256.254s2.078 1.583 2.955 2.833c.875 1.25 1.07 2.173.551 2.339-.52.16-5.03-4.02-8.73-4.907-3.701-.89-6.913-.065-7.628 1.712-.712 1.78-.453 4.445 1.235 5.53 1.688 1.09 9.607 2.371 9.607 2.371s3.602-.494 3.73-.558c.131-.066 2.306-1.285 2.306-1.285l.485-1.251.585-1.647.26-.659-1.915-2.106-3.44-2.372z" fill="#0c8489"/> - <path d="M289.21 257.275c0 .465-.488.695-.973.695s-.893-.245-.893-.709c0-.465.393-.84.877-.84s.99.39.99.854zM284.639 258.92c0-.465.523-.458 1.048-.458.524 0 .95.382.95.848 0 .465-.826 1.107-1.3.882-.583-.281-.698-.801-.698-1.271zM289.553 261.61c0-.592.501-1.073 1.121-1.073.618 0 1.119.48 1.119 1.073 0 .589-.842 1.23-1.46 1.23-.619 0-.78-.641-.78-1.23z" fill="#04534e"/> - <path d="M285.835 262.707c0-.517.533-.624.99-.624.456 0 1.038.486 1.038 1.004 0 .517-.582.871-1.038.871-.457 0-.99-.732-.99-1.25z" fill="#8cbebf"/> - <path d="M292.487 264.513c0-.422.251-.798.682-.798.43 0 .957.252.957.673 0 .425-.429.89-.86.89a.772.772 0 0 1-.78-.765zM295.473 262.235c0-.538.304-.48.829-.48.524 0 1.053.304 1.053.84 0 .538-.659.823-1.183.823-.525 0-.699-.65-.699-1.183z" fill="#04534e"/> - <path d="M288.92 256.848c0 .416-.172.64-.584.64s-.909-.224-.909-.64c0-.42.19-.546.6-.546.413 0 .894.126.894.546zM286.536 258.791c0 .457-.689.742-1.12.742-.43 0-.714-.285-.714-.742 0-.454.333-.59.764-.59.43 0 1.07.136 1.07.59zM287.595 262.631c0 .398-.151.706-.616.706-.466 0-1.072-.308-1.072-.706 0-.4.168-.676.634-.676.466 0 1.054.277 1.054.676zM291.565 261.328c0 .418-.819.89-1.25.89-.43 0-.617-.77-.617-1.185 0-.42.348-.756.78-.756.43 0 1.087.634 1.087 1.051zM297.325 262.562c0 .436-.693.411-1.088.411-.393 0-.746-.486-.746-.919 0-.438.13-.84 1.104-.726.391.046.73.8.73 1.234zM293.919 264.322c0 .435-.334.79-.745.79-.412 0-.747-.355-.747-.79 0-.437.335-.61.747-.61s.745.173.745.61z" fill="#8cbebf"/> - <path d="M294.437 261.922s.81-.263 1.426-.2c.618.067.651.299.651.396 0 .1-.488.299-.714.23a86.243 86.243 0 0 1-1.363-.426zM291.062 264.78s.65-.396 1.136-.493c.486-.098.876.064.843.36-.032.299-.193.365-.68.365-.487 0-1.3-.232-1.3-.232zM288.89 259.781s1.395.594 1.688 1.152c.291.56.421.693.13.857-.292.164-.618-.2-.811-.46-.196-.263-1.007-1.549-1.007-1.549z" fill="#231f20"/> - <path d="M288.532 261.557s1.071-.296 1.558-.296c.488 0 .618.034.682.264.065.229-.108.328-.509.307-.4-.023-1.73-.275-1.73-.275zM285.111 261.625s1.17.156 1.461.461c.292.308.292.584.173.756-.119.178-.672.067-.844-.109-.173-.176-.79-1.108-.79-1.108z" fill="#231f20"/> - <path d="M284.944 263.31c.053-.055.453-.66.876-.801.42-.143.908-.12.993.097.089.22-.366.549-.668.615-.303.065-1.201.088-1.201.088zM284.06 258.197l1.158.318c.422.318.518.571.422.693-.098.12-.508.186-.855-.043-.51-.344-.725-.968-.725-.968zM286.597 255.248s1.18.33 1.57.866c.388.54.334.858.14.967-.195.11-.65-.164-.909-.404-.26-.244-.8-1.429-.8-1.429z" fill="#231f20"/> - <path d="M300.083 263.728s-2.401 2.043-7.82 1.846c-5.422-.199-10.323-2.504-11.555-5.039l.486 1.25 1.202 1.614 3.797 1.943 4.252.953 3.375.2 3.18-.56s2.337-1.12 2.468-1.185c.129-.065.39-.626.39-.626l.225-.396zM300.799 261.16s-.908-1.12-2.175-2.305c-1.267-1.187-6.199-4.382-6.199-4.382l3.991 1.813 2.63 2.208 1.883 2.07-.13.596z" fill="#04534e"/> - <path d="M301.028 256.353s1.363.527 1.59.856c.228.328.519.626.519.626s-.356.888-.681.528c-.325-.365-.39-.365-.747-.858-.357-.496-.681-1.152-.681-1.152zM305.08 254.181s1.268.528 1.721 1.154c.455.626.358 1.152.163 1.218-.195.067-1.038-.66-1.17-.954a47.251 47.251 0 0 0-.713-1.418z" fill="#231f20"/> - <path d="M306.353 253.922s1.2.891 1.395 1.284c.195.396.584.921.195 1.053-.39.132-.941-.46-1.104-.82-.163-.366-.486-1.517-.486-1.517zM313.195 255.53s.942.327 1.04 1.12c.096.79-.098 1.35-.098 1.35s-.65-.56-.65-.727c0-.162.098-.295 0-.655l-.292-1.088zM315.016 256.162s.746.758.845 1.25c.096.494.192.826-.227.89-.423.069-.649-.429-.649-.855 0-.43.031-1.285.031-1.285zM302.75 271.111s.583.263 1.134.065c.552-.198 1.009-.69.909-1.02-.096-.332-.388-.627-.812-.198-.421.427-.193.627-.518.787l-.714.366zM309.5 272.947s.909-.131 1.526-.792c.616-.656.877-1.117.454-1.283-.421-.165-.974 0-1.071.526-.097.528-.91 1.55-.91 1.55zM315.047 273.145s.683-.396 1.203-.888c.518-.494.809-.788.452-1.152-.356-.366-.616-.102-.777.065-.164.166 0 .166-.195.691-.197.527-.684 1.284-.684 1.284z" fill="#231f20"/> - <path d="M316.738 273.115s.732-.89.9-1.386c.164-.492.261-1.051-.072-1.02-.331.031-.734.495-.755.858-.026.36-.073 1.548-.073 1.548z" fill="#231f20"/> - <path d="M299.854 264.124c.048-2.439 3.505-8.066 7.496-8.001 1.662.028 4.92.893 7.562 2.075 2.205.987 2.922 2.077 4.383 2.437 1.46.362 3.666.098 3.666.098l4.966-.56-3.894 5.698-1.393 1.25s-1.236 2.403-4.772 3.785c-3.539 1.383-9.51.362-12.205-.296-2.693-.657-5.874-3.224-5.809-6.485z" fill="#8cbebf" stroke="#04534e" stroke-width=".533"/> - <path d="M299.854 264.124l.26.005c.008-.547.22-1.328.6-2.168.568-1.263 1.511-2.673 2.665-3.754 1.155-1.079 2.51-1.821 3.903-1.821h.064c.791.015 2.01.232 3.35.595a29.43 29.43 0 0 1 4.112 1.454c1.08.484 1.79.99 2.428 1.433.638.438 1.215.828 1.997 1.02.63.157 1.366.2 2.02.2.95 0 1.733-.092 1.74-.095l4.396-.496-3.55 5.195-1.41 1.263-.023.043-.002.005c-.056.107-1.281 2.347-4.632 3.658-1.239.484-2.823.669-4.458.669-2.866 0-5.892-.562-7.59-.976-1.283-.312-2.702-1.087-3.784-2.166-1.085-1.079-1.829-2.449-1.828-3.966l.002-.093-.26-.005-.26-.008-.002.106c.002 1.697.83 3.194 1.983 4.34 1.156 1.151 2.643 1.963 4.027 2.303 1.728.421 4.781.993 7.711.993 1.674 0 3.311-.186 4.645-.706 3.615-1.415 4.89-3.875 4.908-3.91l-.228-.123.17.196 1.417-1.27 4.24-6.198-5.534.624-.13.012c-.257.026-.862.077-1.55.077-.632 0-1.337-.043-1.897-.182-.679-.17-1.189-.505-1.825-.946-.635-.439-1.387-.973-2.514-1.474a28.959 28.959 0 0 0-4.186-1.485c-1.366-.371-2.606-.598-3.476-.616h-.073c-1.051 0-2.055.372-2.963.953-1.364.87-2.525 2.215-3.359 3.577-.832 1.365-1.341 2.74-1.365 3.73l.26.007z" fill="#04534e"/> - <path d="M323.968 264.886c-.42.33-.875.33-1.394.33-.523 0-11.587-6.75-15.027-6.455-3.439.296-6.717 1.779-6.815 5.303-.097 3.52.78 3.555 1.493 4.542.714.989 7.465 2.472 7.465 2.472l4.121-.07 3.313-.36 2.919-1.58 1.592-1.283 1.068-1.318 1.266-1.58z" fill="#0c8489"/> - <path d="M306.483 263.088c0 .691-.267 1.175-.94 1.175-.671 0-1.173-.305-1.173-.996 0-.689.381-.948 1.053-.948.673 0 1.06.078 1.06.77zM307.64 260.01c0-.574.556-.826 1.193-.826.636 0 1.125.232 1.125.806 0 .57-.503 1.01-1.139 1.01-.637 0-1.178-.419-1.178-.99zM314.27 261.808c0-.498.428-.903.958-.903.527 0 .956.405.956.903 0 .5-.429.905-.956.905-.53 0-.959-.405-.959-.905zM315.603 265.87c0-.639.464-1.154 1.039-1.154.573 0 1.108.269 1.108.904s-.208 1.255-.78 1.255c-.573 0-1.367-.37-1.367-1.006zM312.388 268.467c0-.546.485-.988 1.087-.988.6 0 1.086.441 1.086.988 0 .547-.429.9-1.028.9-.6 0-1.145-.353-1.145-.9zM306.315 267.416c0-.529.428-.955.957-.955a.955.955 0 1 1 0 1.91.955.955 0 0 1-.957-.955z" fill="#04534e"/> - <path d="M306.445 262.943c0 .543-.466.988-1.04.988-.574 0-1.039-.445-1.039-.988 0-.546.461-.762 1.034-.762.574 0 1.045.216 1.045.762zM309.66 259.812c0 .527-.164.869-.72.869-.555 0-1.292-.342-1.292-.869 0-.528.452-.953 1.006-.953.555 0 1.006.426 1.006.953zM316.083 261.526c0 .454-.421.82-.941.82s-.941-.367-.941-.82c0-.455.42-.825.94-.825s.942.37.942.825z" fill="#8cbebf"/> - <path d="M312.677 264.239c0 .695-.267 1.178-.94 1.178-.672 0-1.174-.307-1.174-.998 0-.69.381-.945 1.055-.945.672 0 1.059.078 1.059.765z" fill="#04534e"/> - <path d="M308.037 267.187c0 .548-.466.989-1.039.989s-1.038-.441-1.038-.989c0-.541.66-.82 1.234-.82.572 0 .843.28.843.82zM312.479 264.124c0 .546-.45.987-1.006.987a.996.996 0 0 1-1.006-.987 1 1 0 0 1 1.006-.99 1 1 0 0 1 1.006.99zM317.728 265.48c0 .601-.365 1.08-.993 1.08-.626 0-1.135-.487-1.135-1.084 0-.6.182-.806.808-.806.626 0 1.32.21 1.32.81zM314.368 268.239c0 .565-.38.886-.954.886s-1.124-.321-1.124-.886c0-.563.491-.796 1.064-.796.571 0 1.014.233 1.014.796z" fill="#8cbebf"/> - <path d="M314.757 264.947s1.651-.166 1.945.132c.294.296.26.722.13.855-.13.132-.78.165-.941-.064-.161-.232-1.134-.923-1.134-.923zM313.134 259.614s1.266.327 1.785.854c.52.527.423 1.056.326 1.153-.098.097-.553.199-.91-.196-.356-.395-1.2-1.811-1.2-1.811zM309.37 262.181s1.477.806 1.802 1.265c.325.461.406.826.26 1.02-.147.199-.878-.048-.99-.295-.113-.245-1.072-1.99-1.072-1.99z" fill="#231f20"/> - <path d="M308.723 263.317s1.655.215 2.06.526c.406.314.699.33.666.576-.032.248-.21.431-.47.396-.26-.034-.975-.347-1.136-.494-.163-.148-1.12-1.004-1.12-1.004zM306.818 258.471s1.689.265 2.035.527c.346.266.433 1.013.043 1.233-.39.215-.822-.22-.952-.528-.13-.307-1.126-1.232-1.126-1.232zM303.176 261.023s1.553.739 2.035 1.426c.26.37.488.69 0 .857-.445.148-.908-.659-.908-.857 0-.197-1.127-1.426-1.127-1.426z" fill="#231f20"/> - <path d="M302.833 263.042s.995-.22 1.472-.22c.475 0 1.16-.165 1.168.22.007.386-.583.459-.935.349-.347-.119-1.705-.349-1.705-.349zM311.428 268.59s1.087-.678 1.622-.562c.536.117.714.068.714.395 0 .33-.633.264-.829.264-.194 0-1.507-.098-1.507-.098zM305.408 267.713s.42-.626.876-.688c.454-.068.648-.035.714.16.065.201-.39.562-.585.562-.194 0-1.005-.034-1.005-.034z" fill="#231f20"/> - <path d="M322.612 266.616s-1.654 1.99-3.96 2.98c-2.303.988-4.055 1.315-7.27 1.118-3.211-.197-4.77-.69-6.944-1.809-2.175-1.12-3.895-2.733-4.22-3.425-.323-.693.358 1.153.358 1.153l1.98 2.599 2.369 1.055 3.472.854 3.278.396 2.498-.063 2.988-.465 1.913-.687 1.3-.793 1.007-.825 1.231-2.088zM319.519 260.734s-.9.298-2.879-.923c-1.98-1.216-4.35-2.8-8.83-2.83-4.477-.032-5.905 3.031-6.198 3.258-.292.231 2.011-2.665 2.011-2.665l2.046-1.088 1.59-.263 1.526.066 1.98.528 1.784.559 2.08.69 1.815.994 2.194 1.146.881.528zM325.53 262.052s-2.627-.034-3.374.031c-.75.065-.78.198-.88.396a3.937 3.937 0 0 1-.29.461l-.811-1.746 3.57-.495 1.943.727-.158.626z" fill="#04534e"/> - <path d="M320.692 280.421c.18.48.597.914 1.12.926.523.016 1.624-.02 1.624-.02l3.554-.212 1.25-1.434.762-3.21s.96-1.167.96-1.216c0-.05 3.309-1.829 3.309-1.829l2.857-.824 1.833-.196 2.53-.839 1.868-.972.811-1.202.794-1.827-.794-2.471-1.981-2.65-3.356-1.365h-2.779l-3.114 1.135-5.485 1.3s-3.019 1.316-4.27 3.67c-1.245 2.354-1.23 2.966-1.44 6.075-.214 3.114-.053 7.161-.053 7.161z" fill="#0c8489" stroke="#04534e" stroke-width=".533"/> - <path d="M322.178 279.195c1.05 0 .239-1.736 1.43-3.8 1.19-2.06 2.64-4.566 3.007-4.566s.43.375.863.245c.433-.132 1.171-.792 1.214-.97.043-.174.043-1.337.95-2.083.911-.748 2.187-1.8 2.791-1.933.607-.128.89-.24.997.044.108.285-.348.681.066.813.41.133 1.363.09 1.6-.527.237-.616.173-.942.173-.942s.628-.615 1.818-.353c1.191.264 1.34.197 1.449.66.107.46-.543.525-.411.856.128.326-.09.291.032.541.12.25.312.95 1.112.929.803-.022 1.148-.484 1.148-.484l.236-.422s.22-.499-.084-.696c-.305-.198-.195-.44.109-.308.302.132 1.513 1.821 1.925 1.118.413-.7.456-1.69.238-1.93-.217-.242-1.926-2.811-1.926-2.811l-3.05-1.031-4.045.332-3.918 2.237-3.591 1.91s-.196 2.94-.845 2.414c-.649-.528-1.58-1.975-1.858-1.493-.284.484-.91 2.634-1.278 3.708-.37 1.076-1.428 4.391-1.322 5.622.11 1.228.782 2.92 1.17 2.92z" fill="#8cbebf"/> - <path d="M325.79 274.44c-.284.022-.694.308-.823.472-.13.165-.313.517-.195.9.119.384.68.758.726.802l.45-.012.974-.284s.311-.352.329-.81c.02-.464-.263-.585-.401-.629-.143-.043-1.06-.439-1.06-.439zM331.976 269.328c-.553-.197-.797.18-.893.345-.097.165-.055.566-.055.566s.121.766.412.908c.291.138 1.056.404 1.296.138.247-.26.493-.443.477-.937-.013-.494-.702-.738-.702-.738l-.535-.282zM336.959 270.524c-.024-.188-.51-.32-.835-.262-.324.056-.759.47-.604 1.096.149.625.745.68 1.211.56.465-.121.377-.781.377-.878 0-.097-.149-.516-.149-.516zM322.567 271.53c0 .285.518.88 1.213.835.69-.044 1.12-.571 1.19-.988.062-.418-.369.35-.89.483-.517.13-.82.264-1.059-.023-.238-.284-.455-.307-.455-.307z" fill="#8cbebf"/> - <path d="M327.252 275.507s.075.636-.383.965c-.459.33-.751.296-1.016.296-.264 0-.55-.054-.743-.318-.193-.264-.337-.637-.337-.637s.506.832 1.3.613c.796-.218 1.18-.919 1.18-.919zM340.654 267.202s-.007.64-.505.906c-.495.265-.72.342-.984.308-.262-.036-.626-.143-.799-.419-.588-.918-.24-1.519-.24-1.519s.423 1.594 1.24 1.483c.818-.113 1.288-.759 1.288-.759zM328.708 270.06s-.41 1.25-1.234 1.25c-.82 0-.753-.24-.692-.396.068-.15.37.157.737.045.369-.108 1.188-.9 1.188-.9zM331.024 269.839s-.084.905.219 1.21c.303.31.65.466.997.466.346 0 .606-.091.864-.44.26-.352.108-.726.108-.726s.005.19-.254.452c-.261.264-.473.307-.733.307s-.703-.033-.835-.34c-.132-.306-.366-.93-.366-.93zM335.268 265.48s.26.679-.26 1.229c-.518.549-1.514.241-1.514.241s.801.197 1.191-.241c.39-.44.582-1.228.582-1.228z" fill="#04534e"/> - <path d="M321.72 281.1s5.267-.09 5.69-.815c.42-.722-.455-3.555 2.726-5.792 3.179-2.239 5.648-2.208 7.335-2.34 1.688-.131 5.332-1.267 5.972-4.508.388-1.978-2.273-2.11-3.278-3.985-1.006-1.877-3.602-1.118-3.732-1.118-.129 0-3.013-.084-4.381 1.25-.814.791-.715 1.778-1.105 2.239-.39.46-3.863 0-4.251.56-.39.559.097 1.742-.165 2.007-.256.263-1.1-.759-1.1-.759l.29-2.797 4.449-2.6 5.059-2.8s3.313.163 3.443.1c.13-.069 3.407 1.71 3.504 1.744.097.034 1.719 1.976 1.719 1.976s.32.793.456 2.336a5.35 5.35 0 0 1-.156 1.94c-.82 2.915-3.673 4.875-6.68 5.023-3.003.15-5.712 1.508-7.084 2.502-1.374.997-2.058 5.383-2.077 5.91-.019.526-6.546.17-6.546.17l-.088-.243z" fill="#04534e"/> - <path d="M323.938 270.844c-.268.215-.664.202-.75-.1-.241-.862.272-2.139.272-2.139s-.013 1.337.087 1.558c.099.22.366.17.486.352.044.063.118.157-.095.33zM327.252 270.166c-.255-.079-.21-.889-.017-1.236.196-.344 1.674-1.433 1.674-1.433s-.471 1.089-.651 1.485c-.179.393-.684 1.283-1.006 1.184zM325.95 275.515c-.208.044-.275-.413-.275-.99 0-.576 1.007-1.628 1.007-1.628s-.308.923-.343 1.216c-.03.298.165.561.13.908-.031.345-.29.445-.52.494z" fill="#231f20"/> - <path d="M328.403 274.037s-.47.544-1.008.84c-.533.294-1.116.739-1.444.642-.322-.1.208-.801.39-.874.91-.36 2.062-.608 2.062-.608zM332.913 267.599s-.598.496-.89 1.2c-.294.71-.422 1.287-.13 1.418.295.132.73-.808.764-1.12.031-.312.256-1.498.256-1.498z" fill="#231f20"/> - <path d="M334.567 269.854s-.421-.393-1.17-.574c-.744-.184-1.085-.017-1.166.197-.082.213-.634.552-.358.716.276.163.6-.288.827-.34.23-.048.49-.213.893-.146.405.066.974.147.974.147zM333.599 265.435c.265.23.669-.198 1.04-.615.367-.418.648-1.187.648-1.187s-.76.396-1.081.66c-.327.263-.758 1.01-.607 1.142zM340.479 265.275s-.886.42-1.19.813c-.302.395-.693.833-.389 1.053.303.22.58-.197.823-.525.235-.33.756-1.341.756-1.341zM338.513 269.884s-.3.616-.863.988c-.562.376-1.234.549-1.34.35-.111-.195.087-.615.3-.722.22-.11.349-.089.844-.22a7.3 7.3 0 0 0 1.06-.396z" fill="#231f20"/> - <ellipse cx="328.766" cy="207.441" rx="2.872" ry="4.29" transform="rotate(8.667)" fill="url(#b)"/> - <path d="M295.359 246.92l-1.707 4.269 1.394-.194.805-3.757z" fill="#fcca3e" stroke="#aa8c30" stroke-width=".267"/> - <path d="M296.151 245.107c-.607-.076-1.166.386-1.244 1.037-.08.647.349 1.232.957 1.311.609.076 1.164-.389 1.245-1.035.078-.648-.348-1.234-.958-1.313z" fill="#fcca3e" stroke="#aa8c30" stroke-width=".229"/> - <path d="M369.69 255.774l-4.207 3.946 1.736.442 2.886-3.803z" fill="#fcca3e" stroke="#aa8c30" stroke-width=".267"/> - <path d="M371.565 254.143c-.674-.372-1.565-.118-1.994.567-.43.682-.231 1.537.441 1.908.674.372 1.565.118 1.996-.565.429-.684.23-1.539-.443-1.91z" fill="#fcca3e" stroke="#aa8c30" stroke-width=".229"/> - <path d="M262.765 232.993l2.22 4.89.955-1.36-2.513-3.703z" fill="#fcca3e" stroke="#aa8c30" stroke-width=".267"/> - <path d="M261.873 230.86c-.55.467-.608 1.318-.127 1.904.48.592 1.317.69 1.87.225.55-.464.608-1.319.127-1.905-.482-.589-1.317-.69-1.87-.224z" fill="#fcca3e" stroke="#aa8c30" stroke-width=".229"/> - <path d="M296.57 245.267s.343.186-.053.064c-.398-.12-1.34.337-1.341 1.001 0 .666.493 1.036.991 1.04.5.005-.184.09-.184.09l-.642-.188-.267-.387-.213-.536.165-.577.378-.49.495-.18.327.04.344.123z" fill="#aa8c30"/> - <path d="M295.61 248.14s-.271-.056-.517.31c-.244.366-.741 1.056-.741 1.056l.953-2.348.52.271-.215.71zM371.976 254.51s.307.369-.096.046c-.404-.322-1.743-.26-2.09.481-.35.742.042 1.384.62 1.624.584.241-.26.015-.26.015l-.656-.511-.109-.557.024-.7.492-.562.7-.367.671.031.362.204.342.295z" fill="#aa8c30"/> - <path d="M369.355 257.26s-.29-.194-.769.1c-.476.293-1.414.825-1.414.825l2.331-2.164.47.547-.618.692zM262.346 230.616s.43-.15.009.098c-.42.247-.791 1.427-.233 1.961.56.535 1.266.403 1.668-.024.404-.427-.071.232-.071.232l-.672.405-.538-.083-.624-.244-.351-.6-.109-.724.246-.572.297-.248.377-.201z" fill="#aa8c30"/> - <path d="M263.991 233.755s-.265.192-.155.694c.114.507.295 1.487.295 1.487l-1.21-2.702.644-.235.426.756z" fill="#aa8c30"/> - <ellipse cx="337.631" cy="-128.069" rx="4.617" ry="3.108" transform="rotate(62.907)" fill="url(#c)"/> - <path d="M262.59 241.214s.951.22 1.47-.044c.52-.264.607-.66.735-.787.13-.132.26-.616.217-.924-.044-.307-.735-1.36-.953-1.447-.215-.09-.951 0-1.08-.133-.13-.132.108-.419-.174-.484-.28-.066-1.73 1.583-1.471 1.846.26.26.41-.131.497.089.087.216.023.832.023 1.094 0 .263.735.79.735.79z" fill="#e92736"/> - <path d="M263.999 238.136c.113.228.649.942.865 1.03.217.09.866.113 1.083.025.217-.088.908-.747.93-1.033a1.47 1.47 0 0 0-.13-.792c-.129-.285-.054-1.052-.313-1.095-.26-.044-.374-.08-.503-.23-.13-.156.081-.43-.115-.714-.192-.287-2.509 1.076-2.336 1.338.174.264.412-.02.497.155.087.173-.108 1.052.022 1.316z" fill="#e92736"/> - <path d="M269.233 237.55c.13-.35.086-1.493-.151-1.736-.238-.241-.628-.261-.65-.417-.02-.152.282-.22.282-.484 0-.261-2.575.088-2.402.377.174.283.607.131.585.304-.022.176-.434.396-.476.617-.043.219.13.945.237 1.118.109.179-.042.395.26.505.305.111.26.111.542.199.28.088 1.298.043 1.429-.068.127-.11.215-.065.344-.416zM291.123 250.41s.422.732.889.906c.466.173.759-.002.917.002.156.005.528-.195.691-.402.163-.21.405-1.263.333-1.452-.074-.188-.558-.604-.553-.76.005-.162.319-.176.195-.393-.125-.217-1.983-.168-1.993.15-.01.32.322.184.237.367-.084.184-.499.502-.66.655-.164.154-.056.927-.056.927z" fill="#e92736"/> - <path d="M293.835 249.496c-.076.204-.201.962-.127 1.152.073.186.44.61.62.693.18.088.99.14 1.177-.013.19-.153.311-.296.41-.546.1-.249.614-.652.49-.841-.125-.189-.17-.28-.152-.45.018-.177.31-.2.37-.49.061-.291-2.129-.958-2.189-.695-.06.264.254.247.196.404-.057.157-.71.55-.795.786z" fill="#e92736"/> - <path d="M297.264 252.46c.292-.124.969-.818.977-1.111.009-.291-.204-.551-.124-.653.08-.105.298.048.462-.107.16-.152-1.561-1.574-1.636-1.297-.074.276.273.46.153.549-.12.088-.496-.044-.655.059-.161.099-.504.634-.548.805-.045.17-.27.205-.158.46.109.256.084.229.195.458.11.23.73.846.876.863.143.019.167.1.458-.026zM363.351 257.983s.037.816.352 1.182c.317.365.637.356.769.435.13.078.531.084.756-.012.226-.1.89-.873.912-1.067.02-.19-.206-.769-.131-.901.073-.13.341.003.333-.236-.012-.242-1.592-1.08-1.738-.815-.147.264.188.305.039.42-.15.116-.64.185-.84.238-.205.054-.452.756-.452.756z" fill="#e92736"/> - <path d="M365.911 258.517c-.163.119-.641.627-.679.8-.037.173.04.656.14.801.1.146.714.551.94.524.229-.03.397-.079.6-.22.206-.143.815-.207.811-.407-.004-.197.008-.288.108-.405.102-.12.347-.008.54-.198.195-.187-1.206-1.682-1.384-1.51-.182.169.073.298-.05.389-.124.09-.837.088-1.026.226z" fill="#e92736"/> - <path d="M366.445 262.235c.277.107 1.186.103 1.387-.07.198-.173.225-.465.348-.475.122-.013.167.216.377.224.21.005 0-1.939-.23-1.817-.231.123-.126.454-.262.432-.139-.02-.305-.334-.478-.373-.172-.039-.753.075-.9.15-.14.08-.31-.04-.405.184-.095.224-.095.191-.173.401-.077.21-.073.974.013 1.075.084.098.048.165.323.269z" fill="#e92736"/> - <path d="M264.167 239.088c.211.318-.07 1.083-.242 1.3-.172.216-1.326-.099-1.342-.313-.019-.216-.102-.577.049-.78.151-.202.54-.666.833-.607.292.053.626.292.702.4zM264.479 237.656c-.135.289.059.616.207.775.15.158.978.364 1.204.227.226-.139.572-1.423.412-1.622-.158-.197-.604-.231-.753-.21-.152.027-.976.629-1.07.83zM267.237 236.345c-.111.263-.075.626.02.738.093.113.632.49.95.475.317-.02.468-.91.468-1.08 0-.172-.094-.245-.319-.342-.222-.093-1.119.21-1.119.21zM293.348 250.159c-.072.318-.706.59-.94.606-.235.018-.715-.895-.594-1.032.122-.137.295-.404.508-.424.212-.022.725-.05.862.17.136.215.187.566.163.68zM294.414 249.519c-.26.082-.346.398-.355.586-.011.186.348.83.564.89.217.064 1.21-.47 1.237-.688.027-.216-.21-.517-.315-.597-.1-.08-.954-.25-1.13-.191zM296.83 250.501c-.23.082-.428.318-.444.445-.015.125.07.686.267.876.197.188.83-.236.935-.337.104-.1.097-.202.024-.4-.072-.198-.783-.584-.783-.584zM365.386 258.7c-.198.237-.85.167-1.055.067-.204-.094-.208-1.09-.048-1.148.161-.058.423-.197.612-.117.186.08.63.303.65.55.018.247-.092.565-.16.648zM366.353 258.791c-.246-.056-.474.141-.576.274-.103.136-.14.78-.002.92.138.148 1.196.202 1.327.05.128-.15.092-.481.052-.588-.04-.105-.632-.62-.802-.656zM367.458 260.764c-.206-.086-.496-.069-.59-.004-.089.07-.408.467-.4.705.006.24.71.373.844.377.136.007.2-.063.282-.228.082-.165-.136-.85-.136-.85z" fill="#f7e204"/> - <ellipse cx="438.558" cy="-92.951" rx="2.239" ry="4.466" transform="rotate(47.855)" fill="url(#d)"/> - <path d="M285.805 199.294s-3.83.329-6.491-.132c-2.661-.461-2.077-7.244-2.143-7.44-.064-.198-1.622-1.845-1.363-3.359.26-1.514 5.177-5.51 5.842-5.728.455-.148 1.428.264 1.428.264s1.243-1.209 1.611-1.209c.38 0 .905.698.759.995-.147.296-1.835 1.283-1.965 2.04-.13.758.017 1.515-.47 2.256-.487.74-1.428 1.744-1.542 2.37-.113.626-.389 1.17.082 1.4.47.23 2.077.032 3.456-.592 1.378-.627 1.946-1.466 2.141-1.383.196.081-.795 1.727-2.32 2.37-1.524.642-2.531 1.383-3.294 1.268 0 0-.843 2.025 1.77 2.14 2.611.115 4.056-.576 4.056-.576l-1.557 5.316zM270.84 215.263s2.012.79 2.012 3.032c0 2.237-2.205 4.112-2.141 8.064.066 3.952.679 3.99 5.907 8.231.163.132 1.266 1.253 1.557 2.538.294 1.281 1.234 8.855 6.266 8.82 5.029-.032 5.711-3.224 5.711-3.224l-2.142-3.162s-1.753.525-2.695.297c-.94-.232-1.782-.857-2.336-2.074-.551-1.219-.702-4.12-1.558-5.4-2.109-3.16-5.874-3.688-5.906-7.013-.033-3.327 2.304-3.687 1.655-7.64-.649-3.95-5.355-5.86-5.355-5.86l-1.915-.774-.665 3.968 1.606.197z" fill="#a8ac71"/> - <path d="M284.7 187.614c1.687-.394.714-4.793.714-4.793l-1.168.973s.722.939.722 1.95c0 1.01-.268 1.87-.268 1.87z" fill="#f1a720"/> - <path d="M287.778 231.484s-.783-.643-.86-.696c-.603-.4-3.243-2.535-2.82-8.88.476-7.179 10.914-10.954 11.595-13.808.756-3.16 3.12-4.541-5.192-11.04l-1.948 2.283 3.408 2.558s.754-.424.798.544c.044.964-.909 1.794-1.144 2.55-.215.69-5.398 4.291-5.788 4.643-.389.352-2.975 2.363-2.975 2.363s-1.35 1.327-2.605 4.114c-1.254 2.79-.608 6.365-.608 6.365s.041 7.622 8.138 9.004z" fill="#a8ac71"/> - <path d="M282.688 235.5l.585 2.7-1.655.607-.714-.031-.518.229-1.283 1.237-.325-.102s-.195.068-.26-.723c-.064-.789-.178-1.481-.178-1.481l1.558.64.551.034.39-.132.682-1.48 1.167-1.499zM277.85 235.995s-.52-.626-.778-1.004c-.222-.323-.333-.398-.91-.858l1.136-.64 1.218.016-.18 1.465-.486 1.02zM280.616 231.66s.761.378 1.006.953c.243.578.6 1.285.6 1.285l-1.93-.146-1.478-.465.958-1.333.844-.294zM279.862 243.599s-.39-.245-.618-.87c-.228-.627-.406-1.631-.406-1.631l1.283-.245 1.508.607.424.035s-.358.756-.407.79c-.048.033-1.46 1.265-1.46 1.265l-.324.049zM284.982 239.461s-1.134-.356-1.314-.89c-.194-.574-.341-.458-.341-.458l-.356 1.528-.455 1.434s.097.247.148.247c.047 0 1.086-.264 1.152-.296.064-.031.857-.857.875-.905.016-.05.29-.66.29-.66zM280.205 244.27s.568.312 1.362.773c.796.46 1.267.46 1.267.46l.6-.641.616-1.219.081-.148-3.067.278-.86.496zM284.639 243.088l2.614-1.565.178-1.414-.519-.396s.098.048-.616.048h-.893l-.471 1.73-.293 1.597zM282.772 245.557s1.832.789 4.997-.363c1.433-.521 1.705-1.218 1.705-1.218l-1.267-.492-1.199 1.07-4.236 1.003zM280.273 225.267s-.185-.59-.364-1.363c-.178-.773-.163-1.103-.163-1.103l.932.484 1.347 1.002-.958.76-.794.22zM282.475 228.993s-.456-.461-.845-1.051c-.389-.595-.66-1.143-.66-1.143l.99.204 1.154.557-.51 1.49-.129-.057z" fill="#78732e"/> - <path d="M276.586 187.073c-.174.637-.412 1.8.476 2.02.48.118 2.383-.04 4.543-2.503 1.04-1.185 1.06-2.35 1.06-2.35l.411-1.337s-.844-.616-2.207.24c-1.226.77-4.283 3.93-4.283 3.93z" fill="#c6c7a6"/> - <ellipse ry=".405" rx=".382" cy="183.613" cx="282.491" fill="#1c242f"/> - <path d="M279.74 184.018a17.732 17.732 0 0 0-1.785 1.647s1.46-.413 2.62-1.468c.66-.597 1.944-.83 2.62-.673.352.08.23-.373.065-.502-.378-.3-1.433-.451-1.663-.277-.033.025-.929.548-1.857 1.273z" fill="#a8ac71"/> - <path d="M284.128 224.498s-.063-.304-.104-1.062c-.042-.757.045-1.137.045-1.137l-.865.751-.828 1.152 1.282.46.47-.164zM279.648 221.938s-.118-1.179-.053-2.297c.064-1.118.518-3.15.518-3.15l.547 1.39 1.574 2.452.503.363-1.331.973-1.362.443-.395-.174zM284.159 221.313s.08-.559.219-1.076c.133-.507.529-1.317.529-1.317s.022.083-.044.097c-.064.017-1.379 1.105-1.411 1.153-.033.05-.616.559-.616.559l.826.628.534-.032M280.525 215.492s.2-.735.897-1.624c.697-.888 1.385-1.8 1.385-1.8l.595 2.388.356 2.039.065.43s-.486.216-.68.198c-.196-.016-1.657-.1-1.835-.347-.177-.246-.783-1.284-.783-1.284zM285.256 218.273s.443-.471.833-.832c.389-.364 1.009-1.063 1.009-1.063l-3.206.587.455 1.084.91.224zM283.32 211.644s.298-.105 1.159-.976c.859-.874 1.298-.768 1.298-.768l.357 3.44-1.688-.495-1.125-1.2z" fill="#78732e"/> - <path d="M287.313 216.162l1.931-1.958-3.211-.92.585 2.256zM288.662 210.981l.195-3.325s-.655.307-1.483.997c-.827.691-1.211.911-1.211.911l.388.594 1.137.74.974.083zM291.519 207.759l.005-2.618-.113.05s-.46.708-.994 1.152c-.537.444-.78.757-.78.757l.86.56 1.022.099zM292.715 211.263s.905-.752 1.567-1.275c.99-.784 1.484-1.638 1.484-1.638l-4.154-.314.163 1.663.94 1.564zM283.054 197.511l-.13 1.823 3.464-.02-.846-1.164-1.057-.66-.996-1.01zM289.744 213.747c.182-.137 1.084-.813 1.508-1.244.47-.477 1.21-.954 1.21-.954l-3.295-.363.065 2.174.512.387zM296.014 207.812s.354-1.326.32-2.593c-.032-1.268-.239-1.834-.239-1.834l-2.466 1.678.356 1.251.943 1.022 1.086.476z" fill="#78732e"/> - <path d="M291.793 204.764s.73-.883.779-1.393c.049-.51.044-.351.044-.351l1.948.032 1.167.098.146.117-.876 1.036-1.201.691-1.541.182-.466-.412zM295.74 202.821s-.762-1.307-1.193-2.033c-.43-.724-.852-1.07-.852-1.07l-.95 2.83-.097.273h3.092z" fill="#78732e"/> - <path d="M271.64 222.197l-.372.787s1.298-.673 2.305-.639c1.005.033 2.126 1.285 2.126 1.285l.243-.91s-1.331-1.299-2.208-1.361c-.877-.068-2.093.838-2.093.838zm.65-5.81s.276.328.34.426c.065.1.098-.971 1.412-1.53 1.314-.56 2.03-.116 2.03-.116s-.26-.757-.843-.922c-.585-.166-1.153-.05-1.868.461-.714.511-1.071 1.68-1.071 1.68zm4.462 4.375s-.616-1.313-1.686-1.577c-1.072-.264-2.435.557-2.435.557l-.226.693s1.46-.825 2.53-.395c1.072.427 1.493 1.647 1.493 1.647l.324-.925zm-5.013-5.102c.064.232.325.525.325.525s-.147-1.413.502-2.138c.65-.724 1.136-.987 1.136-.987l-.601-.314s-.86.576-1.153 1.202c-.291.626-.274 1.482-.209 1.712zm-.58-2.315c.303-.702 1.196-1.01 1.196-1.01s-.09-.155-.292-.264c-.203-.108-.413.01-.413.01s-.577.298-.924 1.088c-.345.79-.301 1.931-.301 1.931l.535.298s-.104-1.35.2-2.052zm7.876-19.096c.823-.44 1.429-.352 1.429-.352s-1.215 1.279-.629 2.87c-.69 1.335-.906 2.349-.906 2.349h.648s.22-1.04.475-1.857c.703 1.36 1.883 2.126 1.883 2.126l.995-.044s.002-1.326.513-2.48l.095.108c1.08 1.142 1.99 1.407 1.99 1.407l.01-.34s-1.136-.67-1.785-1.548l-.064-.094.02-.038c.78-1.229 1.818-1.624 1.818-1.624l.693.571.172-.22-.52-.658-.6.017s-1.075.897-1.769 1.68c-.498-.78-.788-1.565-.788-1.565l-.445-.164s-1.077.125-2.042 1.682c-.12-1.143 1.199-2.39 1.199-2.39l-.065-.478s-1.332.251-2.37.559c-1.038.308-1.671 1.285-1.671 1.285l-.043.701s.935-1.064 1.757-1.503zm1.428 2.107c.606-.878 1.948-1.449 1.948-1.449s.034.711.772 1.656c-.504.886-.729 2.25-.729 2.25s-1.038-.657-1.947-1.975a1.616 1.616 0 0 1-.16-.295c.038-.066.076-.13.116-.187zm-7.572 21.149l.049.771s.795-.87 1.995-.903c1.202-.034 2.224.903 2.224.903s.015-1.035-.146-1.132c-.162-.1-1.136-.66-2.045-.66s-2.077 1.02-2.077 1.02zm21.421-11.23c-.158-.287-.33-.688-.466-1.028.181-.068.36-.16.53-.286a12.469 12.469 0 0 0 1.72-1.58l-.357-.56h-1.622c-.318 0-.994-.081-1.375-.13.07-.249.27-.947.505-1.674.293-.905.556-1.392.556-1.392l-.552-.558s.13.515-.844.647c-.973.132-2.77-.79-2.77-.79v.395s1.58.506 2.489.637c.536.078.956-.105 1.211-.267-.14.287-.397.85-.535 1.353-.118.43-.288.712-.276.9.008.12.185.23.185.23l-.087.846s.974.13 1.427.13c.455 0 1.688.1 1.688.1s-.876 1.022-1.72 1.416a2.28 2.28 0 0 1-.35.129c-.045-.12-1.007-1.588-1.007-1.588l-.098.543s.689.946.758 1.146c-.623.082-1.52-.13-1.52-.13l-.39.428s-.027 1.218.01 2.48c-.842-.23-1.784-.57-1.784-.57l-.348.263.017-.061-.448.358s-.39 1.48-.291 3.16l.005.086c-1.6-.397-2.408-1.338-2.408-1.338l-.39.33s-.262 1.451.1 3.203c-1.367-.272-2.555-1.458-2.555-1.458l-.508.427s.303 2.833.626 4.38c.027.131.065.246.1.362a4.893 4.893 0 0 1-.749.033c-1.394-.067-2.26-1.35-2.26-1.35l-.412.997s.531 2.723 2.056 3.942l.343.274c-1.303 1.064-2.864 1.231-2.864 1.231l.096.859s.932.73 1.84 1.358c.09.058.184.117.284.168-.725.647-1.612.91-1.612.91l.238.57s1.206-.842 1.765-1.296c.808.325 1.872.454 1.872.454v-.463s-.783-.07-1.508-.301l.106-.098c.455-.44 1.342-1.8 1.342-1.8l.085-.987s-.558-.08-1.163-.561c1.84-1.26 1.911-1.832 1.911-1.832l.347-.65s-.621-.268-1.08-1.173c1.263-.245 2.898-.653 2.922-.722.032-.098.219-.205.219-.205s-.708-1.16-1.01-2.579c1.455.377 2.94.62 2.94.62l.465-.398s-.358-1.177-.473-2.458c1.726.11 3.19.239 3.19.239l.291-.33s-.973-1.86-.94-2.914l.002-.096c.332.062.664.103.97.096 1.43-.034 3.018 0 3.018 0l.244-.544s-1.38-.939-1.702-1.533zm-10.506 15.49s-.464.942-1.406 2.029c-.076.085-.15.16-.224.238a4.605 4.605 0 0 1-.49-.238c-1.103-.627-1.385-1.34-1.385-1.34s.61-.3 2.466-1.544c.981.777 1.04.855 1.04.855zm.865-3.142s-.58.69-1.93 1.896a4.13 4.13 0 0 1-.417-.456c-.865-1.122-1.947-2.087-1.838-3.776 0 0 .67 1.208 2.164 1.052a14.05 14.05 0 0 0 1.018-.145c.398 1 1.003 1.43 1.003 1.43zm2.013-2.534s-1.383.454-2.666.661a5.297 5.297 0 0 1-.158-.43c-.486-1.58-.486-3.984-.486-3.984s1.078.745 2.591 1.164c.44 1.794.719 2.59.719 2.59zm-.458-2.923c-.224-1.475.07-2.937.07-2.937s.803.803 2.303 1.054c.103 1.363.26 2.04.26 2.04s-1.139.063-2.633-.157zm5.814-2.246s-.967.374-2.826.114a15.316 15.316 0 0 1-.03-.542 23.045 23.045 0 0 1 .083-3.038l.005-.02c.264.117 1.253.521 2.175.746l.008.107a9.979 9.979 0 0 0 .584 2.633zm-.131-3.127l-.1-.024c.063-1.076.058-2.643.058-2.643s.905.241 1.601.147c.184.457.065.576.518 1.268.456.692 1.137 1.252 1.137 1.252s-2.305.196-3.214 0zm-7.528 18.622l-.13-.538s-.908.675-1.166 1.368a1.643 1.643 0 0 1-.285-.072c-.605-.22-2.032-.777-2.032-.777l.204.404s1.482.681 1.87.77l.126.022c-.194.59-.491 1.403-.491 1.403l.238.33s.135-1.001.518-1.701c.508.05 1.212.077 1.212.077s-.086.393-.218.833c-.128.44-.389 1.47-.389 1.47l.444.276 2.068.043-.348-.411s-.064-.103-.735-.124c-.672-.023-1.082.088-1.082.088s.086-.419.346-1.254c.26-.836.27-.787.27-.787l-.26-.723s-.66.182-1.1.167c.387-.564.94-.864.94-.864zm-11.295-1.304c1.266 0 2.336.854 2.336.854l-.048-.605s-.99-1.336-2.125-1.336c-1.137 0-2.483 1.17-2.483 1.17v1.25s1.053-1.333 2.32-1.333zm13.338 19.426c-1.297.558-2.759.558-2.759.558s.396-.565.783-1.543c2.538-.712 3.047-2.406 3.047-2.406l-.162-.626s-.615 1.549-2.66 2.403c.378-1.2.761-3.226.761-3.226l-.697-.18s-1 1.252-1.945 1.57c.64-1.248.728-2.675.728-2.675l-.308-.544s-.682.61-1.753.808c-.162.03-.339.027-.524.005l.004-.005c.585-.822 1.705-3.194 1.705-3.194l-.196-.446s-.859 2.094-1.735 3.145a10.62 10.62 0 0 1-.333.386c-.896-.26-2.182-1.027-2.182-1.027l.145.396s.729.556 1.79.894a27.301 27.301 0 0 1-1.352 1.31l.064.955s1.645.313 2.996.45c-1.087 1.539-1.972 2.051-1.972 2.051l.438.66s1.336-.009 3.735-.598c-.682 1.29-1.203 1.85-1.203 1.85s2.19.15 3.684-.61c1.492-.758 1.946-1.547 1.946-1.547l-.421-.463s-.325 1.089-1.623 1.649zm-6.912-4.12s.645-.708 1.198-1.435l.068.018c1.525.33 1.946-.131 1.946-.131s.29.826-.64 2.311c-1.097-.045-2.572-.762-2.572-.762zm1.362 3.063l1.364-1.583c.097-.112.182-.221.26-.333 1.495-.053 2.337-1.279 2.337-1.279s.175 1.238-.494 2.763c-1.9.692-3.467.432-3.467.432zm-1.85-9.812c1.429.098 3.279.771 3.279.771l-.227-.756s-1.758-.43-2.853-.572c.488-1.095 1.57-1.616 1.57-1.616l-.486-.264s-.6.098-1.412 1.482a4.107 4.107 0 0 0-.182.344 3.976 3.976 0 0 0-.305-.014c-1.298-.035-2.386.722-2.386.722l.196.396s1.13-.489 2.245-.509a25.701 25.701 0 0 0-.705 2.402l.293.676s.566-1.806.962-3.063h.011zm-3-6.125l-.31-.792s-1.524-.54-2.693.017c-1.168.56-2.045 1.91-2.045 1.91l.488.922s.81-1.498 1.882-1.858c1.07-.365 2.677-.199 2.677-.199zm2.968 2.32l-1.005-.527s-1.655.479-2.24 1.072c-.584.594-1.055 2.108-.893 2.535.162.427.682.707.682.707s.275-1.597 1.087-2.353c.812-.757 2.37-1.433 2.37-1.433zm-3.86-.475c.68-.658 1.914-.907 1.914-.907l-.618-.56s-1.492.182-2.271.874c-.779.692-1.785 2.124-1.785 2.124l.877.854s1.201-1.73 1.883-2.385zm5.138-44.736l.054-.068c.786-1.013 1.55-1.013 1.85-.931.125.035.292.02.442-.005l-.005.005.024-.009.105-.021c.038 0 .073.012.093.05-.25.395-.604 1.476-.789 2.384-.228 1.12-.713 1.252-1.07 1.942-.357.693-1.103 1.846-1.136 2.832-.032.989.227 1.515.487 1.647.26.132.736-.43.714-.658-.033-.33-.292 0-.486 0-.195 0-.163-.33-.26-.922-.099-.593.712-2.239 1.006-2.767.291-.526.907-1.151 1.037-2.041.117-.793.694-2.529.694-2.535 0-.05-.441-.17-1.3-.23-.641-.047-1.504.515-1.913 1.143-.405.626-1.683 1.127-1.683 1.127s1.4.01 2.137-.944z" fill="#fff"/> - <path d="M285.203 194.486l-2.492.066.715 1.864zM282.27 194.387s-.363-.23-.536-.428a1.49 1.49 0 0 0-.308-.28l-.898.565-.52 1.844.26.263 2.001-1.964zM281.934 199.385l-1.818-2.678-1.038 2.234.498.175s.497.05 1.254.159c.758.11 1.104.11 1.104.11zM289.325 244.124l-.092.063c-.43.288-2.338 1.452-4.679 1.452-1.088 0-2.27-.249-3.455-.95-.698-.417-1.174-1.038-1.526-1.789-.527-1.124-.758-2.54-.999-3.915-.245-1.375-.494-2.706-1.1-3.685-.817-1.301-2.354-2.115-3.733-3.275-1.38-1.16-2.608-2.629-2.865-5.238a8.096 8.096 0 0 1-.038-.782c-.002-1.723.553-3.223 1.114-4.535.558-1.315 1.135-2.434 1.139-3.445 0-.17-.017-.337-.055-.498-.185-.781-.86-1.436-1.478-1.92-.62-.478-1.194-.773-1.2-.777l-.013-.006-.968-.268-.082.304.952.264.041-.152-.07.14.093.05c.214.119.76.44 1.282.878.523.437 1.013.998 1.139 1.557a1.9 1.9 0 0 1 .046.427c.005.886-.545 1.998-1.113 3.32-.565 1.326-1.14 2.869-1.14 4.661 0 .268.013.538.04.812.261 2.706 1.565 4.272 2.977 5.453 1.413 1.18 2.925 2 3.667 3.203.75 1.196.947 3.109 1.307 4.95.18.92.405 1.823.774 2.614.368.791.887 1.47 1.65 1.924a6.988 6.988 0 0 0 3.612.994c2.793-.002 4.938-1.566 4.952-1.575l-.18-.255z" fill="#78732e"/> - <path d="M287.168 239.202l-.019.015a2.582 2.582 0 0 1-1.25.342c-.516-.002-1.124-.17-1.74-.776-.751-.743-.971-1.431-1.16-2.305-.187-.875-.332-1.928-.925-3.307-.613-1.422-2.12-2.558-3.524-3.673-1.409-1.11-2.702-2.2-2.934-3.386a3.282 3.282 0 0 1-.067-.668c-.003-1.002.43-2.017.877-3.165.445-1.148.9-2.432.9-3.973 0-.261-.013-.53-.041-.804-.207-1.987-1.722-3.465-3.163-4.45a14.093 14.093 0 0 0-2.837-1.488l-.104.298s.082.028.232.09c.52.212 1.84.8 3.062 1.744 1.223.944 2.338 2.233 2.5 3.839.026.264.04.522.04.77 0 1.478-.436 2.714-.878 3.858-.442 1.142-.898 2.188-.9 3.281 0 .244.024.486.073.733.286 1.36 1.644 2.452 3.048 3.571 1.41 1.113 2.878 2.246 3.432 3.55.576 1.343.713 2.353.904 3.245.189.892.444 1.675 1.25 2.467.668.661 1.371.867 1.956.863a2.793 2.793 0 0 0 1.44-.405l-.171-.266z" fill="#78732e"/> - <path d="M296.357 231.576s1.744.41 1.68 1.826c-.065 1.417-.843 3.39-.843 3.39l-2.403-2.173 1.353-1.196.497-.711-.284-1.136z" fill="#a8ac71"/> - <path d="M266.368 214.54s-1.72.591-2.076-.165c-.357-.758-.195-1.35-.226-1.514-.035-.164-1.04-.23-.943-1.219.097-.988 1.363-.922 1.624-.922.26 0 .323-1.516 1.201-1.447.876.064 1.297 1.084 1.297 1.084l-.877 4.182z" fill="#f8c83c" stroke="#977c2e" stroke-width=".267"/> - <path d="M268.28 215.004s-1.459.76-1.914.033c-.455-.725 0-1.647-.163-1.812-.163-.163-1.037-.46-.876-1.315.163-.856 1.071-.594 1.397-.759.323-.163.55-1.448 1.46-1.217.907.231 1.07.955 1.07.955s-.715 3.423-.973 4.115z" fill="#f8c83c" stroke="#977c2e" stroke-width=".267"/> - <path d="M270.75 215.332s-.423.923-1.461.722c-1.04-.195-.714-1.71-.877-1.975-.162-.261-.908-.46-.779-1.414.13-.954 1.071-.823 1.428-.954.357-.133.746-1.615 1.428-1.384.683.23 1.33 1.086 1.2 1.482 0 0-1.46.46-1.654 1.448-.194.988.714 2.075.714 2.075z" fill="#f8c83c" stroke="#977c2e" stroke-width=".267"/> - <path d="M293.72 231.233s-1.297-1.426-2.206-2.676c-.909-1.253-2.315-2.682-2.315-2.682l-2.228-1.118-1.406-2.35-.175-2.764.607-1.602.844-1.23s-4.615 1.652-2.273 10.492c.997 3.754 3.549 4.3 3.549 4.3l4.241-.26 1.363-.11z" fill="#af7029"/> - <path d="M291.588 201.71c.438.013.655.159.787.342.132.186.174.435.173.649 0 .116-.012.22-.024.294l-.015.085-.006.026.152.04-.142-.063c-1.526 3.382-4.766 4.96-7.673 7.066-1.45 1.054-2.813 2.245-3.815 3.869-1.001 1.627-1.634 3.686-1.634 6.452 0 .14.002.284.005.427.111 5.085 2.034 7.82 4.15 9.251 2.115 1.436 4.403 1.58 5.266 1.583.226 0 .355-.01.358-.01l.005-.002h.005c.002 0 .592-.075 1.443-.153.849-.074 1.955-.152 2.975-.152.65 0 1.269.03 1.754.113.487.075.838.218.946.365.136.171.187.34.189.515.003.385-.278.828-.622 1.182-.337.355-.735.629-.875.694l.13.285c.202-.094.6-.373.97-.759.364-.383.703-.87.709-1.402 0-.24-.08-.492-.26-.714-.222-.265-.623-.39-1.137-.479-.514-.083-1.144-.114-1.804-.114-2.068 0-4.454.305-4.459.305l.02.158-.012-.158-.084.004a6.751 6.751 0 0 1-.25.005c-.831 0-3.059-.147-5.093-1.526-2.032-1.385-3.895-3.988-4.012-8.996-.002-.142-.005-.281-.005-.421.002-2.72.618-4.711 1.586-6.284 1.452-2.36 3.718-3.798 5.933-5.292 2.214-1.493 4.382-3.05 5.573-5.681l.006-.013.003-.014c.002-.008.055-.213.055-.486-.002-.251-.044-.564-.232-.833-.186-.27-.526-.466-1.032-.475l-.008.317z" fill="#816c2a"/> - <path d="M297.812 232.68s-1.094 2.005-1.372 2.025c-.278.02.947.317 1.225.79l-.262.49s-1.21-.863-1.97-.899l-.068-.74s.619-.208 1.132-.677c.422-.385.863-1.465.87-1.713l.445.725z" fill="#fff"/> - <path d="M302.079 233.999l-2.727.747-1.39-.87s.114-1.135-.503-1.621c-.635-.504-1.013-.65-1.566-.882-.551-.23-2.498-.271-2.498-.271l-4.926-5.333 1.84.194 2.91-.36 2.704-.23 1.429.21 1.524.47.802.679.832.736.834 1.372.53 1.549.216 1.667-.011 1.942z" fill="#fcca3d"/> - <path d="M302.186 233.823s-.976.288-2.208.263c-1.234-.017-2.018-.209-2.018-.209s.07.078-.19.891c-.259.814-.498 1.317-.498 1.317l.045 3.203 2.596.509 1.363-.53.693-3.49.217-1.954z" fill="#af7029"/> - <path d="M301.462 232.467l.118 1.241.508.149-.012-1.118zM299.016 202.532l-.303-2.183-.855-1.449-1.082-1.482-1.157-1.274-.649-.58-.271-.428-2.846.132-1.491 1.778s3.886 2.742 5.348 5.739c1.258.378 2.237 1.173 2.796 1.718l.131-.236.38-1.735z" fill="#fcca3d"/> - <path d="M296.258 204.94c-.04 2.225-.422 3.282-.718 3.775l1.724-1.976 1.242-2.233c-.559-.545-1.538-1.34-2.796-1.718.347.714.56 1.442.548 2.152z" fill="#af7029"/> - <path d="M300.273 237.884c-.002-.002-.801-1-1.397-1.584-.609-.592-1.312-.916-1.32-.92l-.13.287s.039.018.11.057c.215.113.703.395 1.124.806.285.28.63.67.902.986.271.32.47.567.47.568l.241-.2z" fill="#816c2a"/> - <path d="M301.95 235.492s-.261.963-1.234 1.84c-.974.88-2.207 1.473-2.207 1.473l2.79 1.031 1.861-1.732-1.21-2.612z" fill="#6f5b24"/> - <path d="M302.36 237.808l-.17.33-.524.507-.41.437.694-2.895.496.854.065.462z" fill="#404118"/> - <path d="M285.805 199.294s-3.83.329-6.491-.132c-2.661-.461-2.077-7.244-2.143-7.44-.064-.198-1.622-1.845-1.363-3.359.26-1.514 5.177-5.51 5.842-5.728.455-.148 1.428.264 1.428.264s1.243-1.209 1.611-1.209c.38 0 .905.698.759.995-.147.296-1.835 1.283-1.965 2.04-.13.758.017 1.515-.47 2.256-.487.74-1.428 1.744-1.542 2.37-.113.626-.389 1.17.082 1.4.47.23 2.077.032 3.456-.592 1.378-.627 1.946-1.466 2.141-1.383.196.081-.795 1.727-2.32 2.37-1.524.642-2.531 1.383-3.294 1.268 0 0-.843 2.025 1.77 2.14 2.611.115 4.056-.576 4.056-.576l-1.557 5.316z" fill="none" stroke="#78732e" stroke-width=".229"/> - <path d="M318.658 170.6s-7.014-1.323-6.899 4.516c.037 1.843.445 2.482 1.928 2.898 1.484.413 4.454.564 6.975 2.821 2.518 2.258 2.707 3.914 2.707 5.268 0 1.354-.63 2.596-.63 2.596l1.593 7.714 1.597 5.72 4.747-2.748 2.782-8.466-3.561-15.24-11.239-5.078z" fill="#ab6d29" stroke="#4d2a15" stroke-width=".389"/> - <path d="M325.622 199.957s2.443-.924 3.072-2.898c.173-.543-2.468-2.918-2.532-2.918-.063 0 1.342.68 1.991 1.271.649.594 1.147.836 1.34.748.196-.088 1.322-2.701.89-3.271-.434-.57-1.107-1.91-2.123-2.59-1.016-.68-2.358-.593-2.358-.593s1.862-.593 2.792-.065c.928.526 1.016 1.14 1.123.922.11-.22-.195-2.833-.616-3.71-.421-.879-.853-1.296-1.98-1.515-1.122-.22-2.335-.133-2.335-.133s1.623-.9 2.855-.592c1.232.308 1.213.922 1.318.79.112-.132-.606-2.392-.895-2.963-.293-.57-1.764-1.712-2.176-1.844-.41-.132-1.753-.174-1.753-.174l-.65.01s.934-.648 2.125-.538c1.187.11 1.251.505 1.424.44.173-.066-.13-.22-.852-.726-.727-.503-4.232-1.997-4.232-1.997l-3.202-.044s-.034-.811.899-.964c.93-.155 1.2.119 1.135-.122-.065-.241-2.703-.822-2.703-.822s-1.517.044-2.166.066c-.648.022-3.008.295-3.008.295s.206-.518.667-.92c.352-.31.897-.503 1.346-.627 1.038-.286-.584-1.097-.584-1.097l.866-1.317 3.896.328 8.221 4.808 3.853 3.315 2.443 6.234-.735 10.71-5.498 4.544s-2.421.375-2.421.264c0-.11.563-2.305.563-2.305z" fill="#4d2a15"/> - <path d="M318.452 173.351s-.26-.758-.26-1.712c0-.955.163-.922.163-.922s-2.628-.363-4.545 1.151c-1.913 1.516-.811 4.149-.811 4.149s.836-.823 1.905-1.219c1.07-.393 2.997-.328 2.997-.328.161-.166-.421-.923-1.136-1.087-.716-.164-2.11-.164-2.11-.164s.812-.56 2.208-.427c1.396.13 1.59.559 1.59.559z" fill="#d2a567"/> - <path d="M326.673 200.879l-1.775.615 1.082 7.462 7.095 12.16 3.722-.656 1.256-2.24.996.44c.428.44 1.818 2.808 2.987 3.29 1.166.484 1.77.309 2.81 1.145 1.041.832 4.837 6.485 5.033 6.702.192.22-.218-2.424-.218-2.424l-1.158-3.38-1.435-2.36-.218-.636 1.97.022 1.22.748 1.872 1.566.973 1.153.509 1.187.215 1.04.5 1.614 1.036 2.24 1.248 2.13.398-.87-.607-2.501-1.903-6.07-1.168-2.04s1.536 1.106 1.945 1.25c.412.144 1.808 2.23 1.808 2.23l.888 2.149.639 1.997.438 1.746.642 1.863 1.102-.634-.193-1.348-.953-4.162-.41-4.51s.532-.014 1.177.7c.651.713 1.236 2.33 1.236 2.33l.478 4.08.646 3.743 1.211 3.82 1.266 2.402.823 1.348s.043-1.908.03-1.996c-.01-.085-1.546-15.975-1.546-15.975l.207-.67s.183-.1.713.657c.53.756 1.061 1.941 1.061 1.941l.465 2.491.226 1.724.325 3.248.432 3.521 1.625 3.78.877 2.038.487-2.423-.77-17.089.36-.493s.906.746 1.208 1.275c.305.524.869 1.039.869 1.039l.529 3.766.476 10.777.378 2.776 3.17-28.227 1.958-.428.226-.539-1.429-1.097-3.21-4.982-2.165-4.818-3.797-6.996-6.59-8.034s-4.087-3.49-5.127-4.28c-1.039-.79-1.898-1.285-1.898-1.285l.324-1.003 1.087-1.763-.178-.081-.847.05-2.204.312-2.224-.659-4.364-3.045-4.673-2.223-2.744-.97-6.62-1.68-6.587-.89-2.956-.04-2.692.502s-1.369.564-1.798 1.41c-.426.845-.46 1.437-.329 2.672.13 1.235.876 1.877 2.726 2.636 1.853.756 6.2 3.654 6.2 3.654l2.094 2.105.778 1.005.113.775 1.41 11.112-2.79 6.041-2 1.038z" fill="#8f4620"/> - <path d="M333.797 218.197s1.189 2.02 2.877.462c1.69-1.559-.737-5.994-.713-6.257.021-.264.778-.351.778-.351l1.235 2.283s.734 1.228.452 3.182c-.28 1.953-2.163 3.644-2.163 3.644l-2.142-.484-.324-2.48z" fill="#ab6d29"/> - <path d="M375.245 244.239l-1.526-4.513s-.452-2.897-.452-3.49c0-.594-.294-7.936-.424-9.317-.13-1.382-.062-2.965-.209-3.16-.147-.2-1.655-2.19-1.655-2.19l-.648-.677.458-.327s.562.615.716.282c.149-.326-.025-1.928-.649-4.432-.629-2.502-3.833-8.362-3.833-8.362l.346.285.89.9 1.882 1.514 4.07 1.492 2.206.352 1.426 2.854s1.017 4.917.953 7.395c-.066 2.483-.218 4.501-1.17 6.981-.95 2.481-1.188 10.34-1.318 11.589-.131 1.253-.607 2.48-.607 2.48l-.456.343z" fill="#4d2a15"/> - <path d="M375.26 231.187s.852-1.015 1.226-2.41c.372-1.391.517-12.34-.778-13.695-1.3-1.354-3.95-2.422-4.081-2.333-.131.09 1.06 3.57 1.06 3.57s.398.509.805 1.415c.223.504.532 1.416.584 1.749.147.942.924 3.162 1.038 6.022.11 2.86.146 5.682.146 5.682z" fill="#8f4620"/> - <path d="M369.279 238.06s.557-5.18.297-8.974c-.258-3.793-.572-4.266-.932-4.952a32.252 32.252 0 0 1-2.548-6.323c-.881-3.16-1.453-5.583-2.024-6.215-.57-.633-1.715-2.002-1.973-1.632-.26.368-.26 1.158-.26 1.158l-1.559-.423-.363-1 .5-1.613-.1-.692-.182-1.14 2.013 1.6 4.134 2.833 2.076 8.572 1.925 5.335.27 9.034-.194 7.954-1.08-3.523zM371.71 213.343s1.08 1.02 1.712 1.375c.634.354 1.828 1.087 1.59 1.17-.233.08-1.355-.356-2.053-.751-.699-.395-1.174-.88-1.174-.88l-.076-.914z" fill="#4d2a15"/> - <path d="M363.656 236.018s.824-1.818.694-4.124c-.132-2.306-1.233-7.86-1.58-8.563-.346-.704-1.988-1.753-3.462-4.872-1.47-3.118-1.32-3.754-2.29-4.894-.976-1.142-1.994-2.436-1.994-2.436l.302-3.337 3.592 1.822 1.537.767 1.819 8.735 1.624 2.437.689 3.492.868 8.142.473 6.476-.258.57-2.014-4.215zM359.511 232.322s.097-2.568-.555-4.871c-.65-2.306-1.102-4.02-1.817-4.743-.714-.722-2.529-2.6-4.152-5.037-1.624-2.436-3.865-5.005-3.865-5.005l.06-3.268s1.076 1.014 1.995 1.46c.919.446 2.296 1.216 2.296 1.216l.96 3.748 1.239 2.696 1.815 2.41 1.16 1.072.74 4.034.398 2.27.957 3.24-.317 1.621-.914-.842zM356.525 232.353l-.991-.954s.536-.644.276-1.928c-.26-1.283-.6-2.519-1.186-3.736-.582-1.217-.76-1.96-1.117-2.32-.36-.362-3.394-3.229-4.448-4.098-1.053-.875-2.675-2.538-3.683-3.18-1.006-.64-1.737-.807-1.737-.807l-.568-4.017s1.332 1.778 2.127 2.074a54.68 54.68 0 0 0 2.095.708l2.82 4.989.96 1.267 2.612 2.09 1.07 2.157.795 2.487.99 3.426.179 2.072-.194-.23zM350.978 231.233s-1.666-1.91-1.926-3.14c-.26-1.23.174-1.23-.348-2.634-.52-1.403-2.25-3.466-3.677-4.61-1.43-1.141-3.461-2.808-3.331-3.732.13-.92.389-.965.389-.965l.865.746 4.454 4.743 1.367 2.482 1.038 3.093.692 1.45.67 1.845-.193.722zM367.054 207.964s3.071 3.81 3.852.308c.346-1.559-1.066-4.525-1.066-4.525s-2.854-5-3.826-6.208c-.973-1.207-5.733-7.31-5.733-7.31l-3.482-1.624 1.189 2.042s2.595 2.59 5.909 8.318c3.307 5.729 2.659 8.89 2.659 8.89l.498.11zM349.218 185.008s6.099 5.202 10.029 10.831c3.925 5.631 5.483 9.386 4.606 10.141-.876.758-3.343-.426-4.346-2.007-1.007-1.58-1.855-4.347-5.552-8.562-3.7-4.213-5.484-4.84-5.484-4.84l-2.662-4.313 3.409-1.25zM346.04 197.48s3.603 2.997 5.874 5.432c2.274 2.438 3.442 4.182 3.442 4.182l1.458 1.449s-.875-1.547-.388-2.074c.486-.526 1.073-.263 1.073-.263l-11.458-12.02v3.295zM345.294 197.816s1.17 2.239 3.084 4.115c1.914 1.876 4.023 3.886 4.023 3.886l.813 2.93s-5.225-4.015-5.258-3.03c-.034.988 1.267 3.03 1.267 3.03l-1.591-.856-2.208-3.195-1.331-2.765-1.493-3.82 2.694-.295z" fill="#4d2a15"/> - <path d="M329.492 210.197s2.726 2.436 4.22.065c1.494-2.37.325-5.103.325-5.103s3.849 5.676 4.934.362c.194-.955-2.338-4.643-2.338-4.643l.908-.854 1.944 3.291s1.823-.823 1.823-3.095c0-2.271-1.882-5.202-1.882-5.202l1.794 1.997s3.558.078 3.625-2.097c.063-2.172-2.987-4.444-2.987-4.444s2.434.164 2.4-1.252c-.03-1.414-3.307-2.403-3.374-3.291-.064-.89.974-2.405 2.467-1.582 1.493.823 3.57 1.483 4.413-.13.844-1.615-.064-1.942-.064-1.942s-1.917-.396-2.108-.461c-.198-.067-3.41-1.812-3.41-1.812l-2.698-1.02-2.785-.363 1.034 2.074.719 5.696.03 2.634.518 5.73-1.363 4.774-.707.86-.502.641-1.188 2.521-1.667 1.805-2.134 2.729-1.947 2.111z" fill="#4d2a15"/> - <path d="M348.814 220.894s-.688-1.71-2.16-2.853c-1.473-1.143-3.81-1.23-3.81-1.23l4.001 4.239 1.97-.156zM354.414 221.861s-1.297-2.587-2.81-4.17c-1.515-1.58-2.512-3.622-2.924-3.622-.409 0-.712.088-.712.088l.389 3.27 2.769 2.68s2.598 1.93 3.288 1.755zM359.024 221.663s-.647-3.006-2.185-5.903c-1.532-2.898-3.157-4.084-3.157-4.084l.366 3.096 1.258 2.985 2.031 2.942 1.687.964zM362.788 219.972s1.08-6.19.108-7.903c-.972-1.713-2.81-2.04-2.81-2.04l-.588.898.588 4.412 1.468 3.38 1.234 1.253zM366.49 209.656s.908.46 2.011 2.545c1.102 2.085 2.663 8.255 2.637 8.583-.02.327-.582.252-.732.178-.152-.08-3.896-5.93-3.896-5.93l-.595-5.466.575.09z" fill="#ab6d29"/> - <path d="M340.357 216.848s1.98-.428 1.98-1.12c0-.691-2.366-2.074-2.172-3.194.094-.558 2.01.1 2.143-.296.128-.394-1.98-3.687-1.333-4.444.65-.757 2.435 3.556 2.435 3.556s1.07 2.028.68 3.193c-1.2 3.589-3.733 2.305-3.733 2.305zM344.997 212.368c.096-.288 3.117.396 3.149.197.116-.708-2.725-2.896-2.725-2.896s-.65-1.25-.452-1.448c.19-.198 2.01.198 2.11-.066.094-.264-2.082-3.128-2.082-3.654 0-.528.588-.067.588-.067s1.719 1.779 2.63 3.227c.905 1.449 1.759 2.635 1.457 4.938-.322 2.469-4.932.56-4.675-.231zM358.635 207.827s-.49-2.041-.197-2.305c.294-.263 1.074-.494 1.074-.494s-1.61-1.004-2.372-1.021c-.763-.017-.876-.24-1.07.083-.196.32 1.38 2.304 1.38 2.304l1.185 1.433z" fill="#d2a567"/> - <path d="M349.447 209.404s4.64 1.153 4.835.824c.195-.329-3.7-3.953-3.7-3.953s-.26-.656-.194-.887c.064-.23 1.687-.263 2.173.132s0 1.15.164 1.448c.16.297 1.623 2.535 1.884 2.173.26-.362-.296-3.095-.164-3.292.129-.197 1.786 1.547 2.236 1.843.456.297 3.054 2.34 3.314 1.383.26-.953.421-1.119.322-1.68-.095-.558.867 2.636-.347 3.03-1.21.396-2.605-.426-2.605-.426l-1.073-.825-.627-.658s.694 2.47-.118 2.731c-.81.266-1.753.134-1.753.134l-1.945-.199-2.402-1.778zM360.106 206.235s4.953 2.972 5.442 2.447c.49-.526-1.294-7.503-1.007-8.23.23-.583 4.022 7.924 2.175 9.086-1.412.887-2.11.263-2.11.263l-2.433-1.284-2.067-2.283zM373.888 218.753s.449.331 1.08.51c.2.058.796.239.632.257-.161.013-1.32.155-1.403.187-.08.032-.309-.954-.309-.954zM369.08 202.38s.473.27.766.351c.293.083.667.264.667.313 0 .05-.367.207-.627.174s-.421-.107-.421-.107l-.384-.731zM367.656 199.941s.508.233 1.157-.23c.651-.46.693-.767.641-1.01-.054-.24-1.074-.24-1.416-.472-.348-.228-.327-.646-.327-.646l-1.115-.022-.411.154 1.471 2.227zM372.03 214.311s1.515.89 1.94.973c.42.082 1.135.478 1.036.61-.095.131-1.214.23-1.783-.099-.568-.33-.755-.126-.755-.126l-.439-1.358zM363.87 191.751l.024.009c.084.024.364.095.606.069.288-.033.528-.209.63-.097.203.228.039 1.282-.372 1.582-.408.301-.908.545-.98.526-.076-.018-1.598-2.2-1.598-2.2l1.69.111zM356.768 185.397s.992-.06 1.488-.057c.495 0 1.071.358 1.516.64.446.282.891 3.275.649 3.839-.24.565-3.578-1.938-3.668-2.162-.095-.228-1.543-2.467-1.543-2.467l1.558.207zM353.637 184.04s2.43.151 2.207-1.39c-.22-1.545-1.335-2.221-1.335-2.221l-2.91 2.069 2.038 1.543zM347.123 181.199s.65.359 1.373.074c.723-.282 2.633-2.765 4.024-3.067 1.392-.3 1.67-.28 1.932.04.26.318.13 1.73-.188 2.124-.313.397-4.36 2.108-4.36 2.108s-.841-.05-1.495-.203a9.612 9.612 0 0 1-1.323-.435l.037-.641zM346.368 176.726c-.614-1.435-1.706-2.02-2.116-1.924-.408.094 1.39 1.523 1.651 3.5.26 1.974.24 3.3.205 3.413-.037.111.835.124.835.124l.166-.754.104-.539-.01-.486-.119-1.021-.214-.806-.177-.618s-.01-.148-.325-.889zM340.616 174.684c-1.862-2.173-5.236-3.72-5.466-3.72-.229 0 3.927 2.503 4.868 4.115.941 1.614.974 3.786 1.396 4.082.42.298.812-.147.846-.196.03-.05.339-.494.29-.626-.049-.131-.26-1.037-.26-1.037l-.646-1.086-.391-.676-.637-.856zM335.1 172.414c-2.355-2.075-6.623-3.062-10.08-3.11-3.458-.05-5.224.26-4.723 2.154.505 1.894 2.063 2.717 4.982 2.717 2.924 0 3.622-.312 5.195.18 1.575.495 3.016 1.384 3.586 1.976.57.593-1.086-1.448-2.579-2.567-1.493-1.12-2.474-1.707-2.474-1.707s-.287-.615 1.73-.335c2.008.279 4.701 1.582 5.433 3.26.73 1.68.617 2.602.6 2.964-.018.361.698-.198.698-.198l.292-.824s.115-.658-.275-1.398c-.389-.741-.455-.989-1.362-2.058-.91-1.071-1.023-1.054-1.023-1.054zM325.508 200.917c1.472-.044 4.76-2.853 5.239-6.759.475-3.908-1.95-11.854-2.512-12.688-.562-.835.907-.395 1.71.439.802.833 2.445 6.497 2.445 10.624 0 4.128-.823 5.31-3.03 7.42-2.207 2.106-3.983 1.887-3.983 1.887l.13-.923zM330.62 212.513s.734.922 1.555.614c1.516-.567 3.851-1.685 3.851-3.863 0-1.406-1.815-2.633-1.902-3.16-.087-.527 0-.967 0-.967l1.599.352.457 2.237s.626.66 1.275.397c.652-.265 2.51-1.624 2.249-2.942-.257-1.318-2.03-2.941-2.204-3.6-.174-.66.042-1.23.042-1.23l1.516.263.463 1.926s.4.666 1.267.49c.866-.176 2.38-1.756 2.035-2.503-.347-.746-1.471-2.504-1.558-2.678-.087-.174-.043-.834-.043-.834l.607.34s.583.23 1.752-.114c1.169-.347 2.306-1.137 2.287-1.943-.015-.807-.875-1.58-.942-2.024-.064-.444-.016-.627-.016-.627l.764.116.94 1.168.226 1.4-.34 1.2-1.426 1.55-1.414.592-.387-.033.86 1.498-.278 1.993-1.248 1.15-1.674 1.006-.13 1.86-.924 2.009-2.142 1.267h-.63l-.246 1.218-1.344 1.91-2.32 1.547-1.69.312-.973-1.415.086-.482z" fill="#d2a567"/> - <path d="M343.42 191.416s3.886 1.096 3.764-1.362c-.066-1.383-3.806-4.565-4.044-5.092-.238-.527-.173-1.25-.173-1.25l1.935 1.772s2.47.588 3.174-.84c.703-1.424.136-2.321.013-2.354-.122-.031.567-.124.567-.124l1.144.234-.136 2.2-1.268 5.53s.337 2.17-1.375 2.325c-1.71.155-3.601-1.04-3.601-1.04zM347.1 220.879s.067-1.12-.799-1.901c-.867-.78-2.532-1.514-2.801-1.68-.271-.163 2.779 3.467 2.779 3.467l.821.114zM352.73 221.061s-1.949-2.403-2.368-3.228c-.424-.82-1.43-2.633-2.242-2.716-.81-.082.764 2.996.764 2.996l3.163 2.883.683.065zM358.064 221.008s-1.67-3.16-2.078-4.083c-.404-.923-1.281-3.442-2.272-4.133-.987-.69.13 1.152.13 1.152l1.056 3.276 1.853 2.85 1.31.938zM361.995 218.715s-.114-2.697-.441-4.576c-.322-1.876-1.783-3.44-1.88-3.374-.098.067.112 3.342.112 3.342l2.21 4.608zM370.11 220.75s-1.363-3.244-1.915-4.776c-.552-1.531-1.915-4.1-2.06-4.132-.146-.033.406 2.946.406 2.946l1.654 4.742 1.914 1.219zM377.15 212.254s-1.25-1.284-3.945-2.34c-2.691-1.051-5.386-1.168-5.386-1.168l.325.345 1.223 1.04 2.816 1.447 3.677.89 1.29-.214z" fill="#d2a567"/> - <path d="M348.228 213.846s.02 2.35 1.231 3.777c1.214 1.428 4.068 4.038 4.633 4.566.563.525 1.038 3.423 1.883 5.839.84 2.412 1.04 4.39 1.405 5.07.368.678 1.123 1.776.563 1.667-.563-.11-1.084-.769-1.43-1.646-.347-.877-.239-.877-.192-2.086.042-1.208-1.84-7.397-2.707-8.076-.867-.683-4.846-3.995-6.384-6.279-1.535-2.282-1.21-2.81-1.21-2.81l2.208-.022z" fill="#202020"/> - <path d="M354.65 229.32c-.844-1.733-.995-3.27-1.255-4.302-.26-1.031-3.614-3.84-4.416-4.215-.607-.283-1.87.077-2.378-.306-.507-.383-3.679-3.982-3.679-3.982s-.477.45-.324.58c.152.133 3.44 3.688 4.628 4.828 1.194 1.142 1.84 3.688 2.706 5.664.867 1.972.52 1.58.607 2.544.087.967.693 1.517 1.298 1.517.605 0 .758-.286.532-.452-.23-.163-1.464-1.612-2.177-3.49-.65-1.712-1.493-4.871-2.532-6.059-.066-.073-.144-.166-.233-.264.245-.029.658-.107 1.292-.142.803-.043 4.111 3.009 4.396 3.909.28.9-.024 1.25 1.363 4.259 1.384 3.008 2.032 3.71 2.032 3.71h.241s-1.258-2.064-2.1-3.798zM349.447 209.404s2.402 1.515 3.114 1.713a9.806 9.806 0 0 0 1.233.264s.358 4.38 2.11 6.847c1.75 2.472 3.179 3.36 3.179 3.36s.065 4.772 1.364 8.067c1.3 3.291 1.558 7.275 1.266 7.9-.293.625-1.397-1.942-2.108-4.214-.716-2.273-1.398-4.739-1.884-6.255-.486-1.515-1.818-3.789-2.563-4.413-.75-.626-.147-.558.291-.165.438.396 1.704 1.959 2.516 4.48.81 2.517 1.134 5.069 1.573 5.086.438.016.777-.412.764-.923-.018-.507-.568-1.827-.972-4.18-.409-2.355-.815-3.967-1.204-4.626-.391-.658-.958-.774-2.465-3.408-1.51-2.634-2.176-4.099-2.436-5.318-.26-1.219.047-1.102-.213-1.284-.257-.18-.452.018-1.602-.624-1.153-.643-1.963-2.306-1.963-2.306z" fill="#202020"/> - <path d="M355.671 208.513s1.471 1.142 2.293 1.492c.823.351 2.012.416 2.012.416s-.3 4.15 1.322 6.85c1.623 2.7 3.31 4.28 3.31 4.28s.26 1.01.78 6.803c.52 5.798.54 5.905.69 8.232.153 2.326.225 10.571-.109 10.317-1.253-.966-.215-5.444-.842-7.286-.627-1.846-1.622-2.154-2.834-7.375-1.213-5.226-.435-6.412-1.298-8.364-.865-1.955-2.012-2.13-2.012-2.13s1.6.308 2.271 1.954c.673 1.646.775 6.02 1.322 8.188 1.233 4.894 2.92 7.374 2.92 7.374s-.368-6.146-.844-9.635c-.477-3.493-.453-6.409-1.102-7.748-.652-1.342-2.058-2.417-2.9-4.195-.844-1.777-1.147-5.267-1.56-6.167-.41-.9-.644-.62-1.231-.855-1.905-.77-2.187-2.152-2.187-2.152z" fill="#202020"/> - <path d="M360.106 206.235s1.298 1.447 3.112 2.524c1.821 1.075 2.728.747 3.01.966.281.22-.368 3.907 1.537 7.309 1.905 3.403 2.597 3.468 2.64 3.932.043.457.39 10.49.628 13.89.237 3.403.496 14.817-.91 14.817-1.405 0-.13-8.43-.822-10.405-.695-1.977-.67-1.405-1.34-2.982-.673-1.584-.664-7.833-1.732-11.527-.8-2.764-1.624-3.205-1.624-3.205s1.345.723 1.97 3.008c.627 2.282.823 9.945 1.557 11.17.734 1.232 1.796 2.745 2.035 3.889.239 1.14-.151-14.555-.476-15.497-.323-.947-3.484-6.63-3.723-9.769-.235-3.138-.347-3.447-.624-3.687-.285-.244-1.189-.045-2.683-1.45-1.496-1.404-2.555-2.984-2.555-2.984z" fill="#202020"/> - <path d="M367.245 208.04c.089-.3.99 1.688 3.814 2.808 2.823 1.12 5.518.922 5.875 1.218.357.296 2.143 4.545 2.206 10.205.068 5.666-.974 5.138-1.85 10.013-.875 4.872-.91 14.78-1.46 16.296-.26.559-.552.789-.845 1.746-.291.952.226 2.765-.65 2.797-.875.033-.973-1.382-.973-2.14 0-.758.91-3.456.91-6.157s-.585-3.029-.975-6.257c-.389-3.225-.421-13.498-.778-14.486-.357-.986-2.12-3.124-2.12-3.124s1.893 1.214 2.348 2.596c.453 1.386.498 12.793 1.006 15.083.52 2.335.356-.527.552-1.847.193-1.315.876-6.913.777-9.91-.098-2.993-1.364-9.48-2.402-10.567 0 0 .54.629 1.134 2.055.015.04.382.415.807.661.45.259.964.391.979.438.014.033-.57-.05-1.03-.25-.34-.146-.588-.424-.578-.397.64 1.694 1.286 4.314 1.347 8.06.09 5.104-.745 16.333.067 16.464.813.133.652-6.123 1.494-11.193.842-5.072 1.978-5.798 1.622-9.945-.357-4.148-1.46-8.627-2.334-9.187-.875-.559-3.377-.362-5.586-1.779-2.203-1.414-3.45-2.9-3.357-3.2zM331.466 213.755s.813.362 1.753-.098c.943-.462 3.441-2.436 3.441-3.261 0-.823.035-1.646.035-1.646s.03.363.747.46c.71.102 2.756-1.447 2.916-2.434.165-.988.165-2.732-.062-3.094-.228-.363.616.361 1.037-.034.422-.396 2.402-1.68 2.372-2.996-.034-1.318-1.105-2.537-1.105-2.537s.974.132 1.556 0c.587-.129 2.534-1.282 2.468-2.468-.066-1.186-.744-2.996-2.272-3.128 0 0 1.136.264 2.24-.13 1.103-.396 1.494-1.022 1.494-2.275 0-1.25-2.24-3.95-2.63-4.179-.388-.23 2.401.79 3.116-.33.71-1.12.81-1.91.615-2.534-.194-.627-.779-.79-.779-.79s1.204.328 2.826-.495 3.05-1.91 3.797-1.877c.745.034-2.37 1.678-2.534 2.602-.065.38.85 1.034 2.26 2.066.088.063.13.123.272.199.638.345 3.063.444 3.227.566.203.15-2.343.095-2.126.26 1.714 1.31 3.797 3.066 5.704 5.382.072.086.476.436.94.57.568.163 1.216.111 1.3.219.062.083-1.645-.043-1.584.04a65.26 65.26 0 0 1 3.272 4.692c.067.106.464.57.919.767.498.213 1.056.162 1.124.275.127.197-1.389.008-1.273.2a81.962 81.962 0 0 1 3.304 6.008s-3.056-5.374-6.79-9.557c-3.733-4.181-4.609-4.74-4.803-4.345-.195.395 2.791 4.082 4.381 6.682 1.59 2.603 3.035 5.838 3.035 5.838s-3.749-7.78-9.005-12.554c-5.26-4.773-5.81-5.563-6.395-5.366-.585.198-1.036 3.72-.68 4.444.356.725 4.184 3.622 7.461 7.475 3.279 3.852 7.435 10.47 7.435 10.47s-2.953-4.774-7.951-10.076c-5-5.3-6.911-6.518-7.301-6.486-.39.033-.425.989-1.006 1.779-.586.789-1.787.69-1.821 1.054-.03.362 4.222 4.278 5.064 4.74.843.46 1.298.231 1.947.593.649.361 1.352.966 1.352.966s-.895-.34-1.545-.538c-.65-.197-1.3-.231-1.3-.033 0 .196 3.442 4.41 4.024 4.675.585.264.91.132 1.689.428.777.297 1.885 1.087 1.885 1.087s-1.205-.692-2.049-.857c-.842-.164-1.2 0-1.168.231.034.23 2.63 3.556 2.5 3.622-.128.066-4.024-4.61-7.335-7.54-3.312-2.93-4.803-3.556-4.966-3.457-.16.098-.064.956-.876 1.251-.812.297-1.558.396-1.558.691 0 .297 2.987 3.096 5.094 5.434a149.375 149.375 0 0 1 3.928 4.544s-2.141-2.141-4.478-4.347c-2.338-2.206-3.536-3.061-3.764-2.93-.228.131-.26 1.25-.034 1.547.227.297 4.546 5.4 4.416 5.531-.13.132-5.095-6.123-5.42-6.123-.327 0-.521.79-.845 1.152-.326.363-1.72.363-1.72.855 0 .495 7.01 7.374 6.815 7.539 0 0-5.807-5.004-6.003-4.707-.196.296 2.432 5.103 2.27 5.202-.162.1-3.407-5.038-3.701-5.004-.288.032-.26.592-1.102 1.35-.842.757-1.914.428-1.947.757-.033.33 4.836 5.73 4.705 5.828-.13.098-4.93-5.137-5.062-4.84-.032.077-.291.303-.16.757.356 1.263 1.44 3.559 1.297 3.752 0 0-1.558-3.193-1.981-3.061-.421.132-.421.758-1.137 1.218-.71.461-1.296.363-1.362.691-.063.33.844.89 1.235 1.648.387.758.714 2.405.714 2.405s-.488-1.386-1.17-2.274c-.68-.89-1.3-1.482-1.817-1.482-.519 0-.877.494-.877.494l-.488-1.153z" fill="#202020"/> - <path d="M376.944 212.071s1.588-.098 1.783-.427c.196-.33-.585-.1-2.012-1.646-1.427-1.549-5.073-12.106-9.055-17.42-6.518-8.693-12.624-12.674-12.624-12.674s7.263 4.203 12.886 12.413c5.71 8.342 7.096 14.883 8.695 16.594 1.603 1.712 3.16 2.019 3.074 2.503-.087.483-.347.834-.954.922-.604.087-2.077.218-2.077.218l.283-.483zM328.967 209.77s.042.127.336.16c.299.039 2.271-1.93 2.162-2.498 0 0-.876-.329-1.587-1.053-.713-.725-.878-1.877-.878-1.877s.65 1.284 1.201 1.646c.552.362 1.428.559 1.753.296.325-.264 3.229-2.414 3.05-3.26 0 0-.907.033-1.753-.593-.842-.625-.995-1.91-.995-1.91s.543 1.032 1.409 1.45c.861.418 1.707.242 1.946-.066.238-.308 2.143-2.921 1.924-3.687 0 0-.972.11-1.838-.505-.866-.616-1.319-2.152-1.319-2.152s.626 1.295 1.729 1.514c1.104.22 2.013-.438 2.185-1.227.173-.79.78-3.733-.148-4.48 0 0-1.431.462-2.447-.064-1.015-.528-1.383-1.822-1.383-1.822s.864 1.185 2.008 1.338c1.15.153 1.648-.46 1.84-.922.198-.461.24-2.128-.107-3.05-.345-.922-1.06-.857-1.23-2.239 0 0-.372.548-1.843.548-1.47 0-2.251-1.668-2.251-1.668s1.171 1.076 2.338.988c1.168-.088 1.601-1.054 1.626-1.8.017-.748-.588-1.406-.91-2.173-.325-.769-.348-1.691-.564-1.58-.216.109-.497.811-2.013.57-1.513-.24-1.839-1.273-1.839-1.273s1.104.769 1.947.702c.847-.065 1.384-.46 1.384-1.03 0-.572-.322-1.626-2.227-3.25a58.135 58.135 0 0 0-3.462-2.743s2.467 1.36 4.067 2.7c1.605 1.34 2.509 2.634 2.509 2.634s1.756.57 1.949-.023c.193-.593.165-1.332-.389-2.387-.54-1.03-2.043-2.567-2.043-2.567s1.573 1.3 2.318 2.649c.746 1.35.41 2.289.47 2.618.068.328 3.344 1.597 4.075 1.153.73-.445.39-1.4-.227-2.372-.616-.97-1.123-1.777-1.123-1.777s.765.84 1.315 1.794c.553.956 1.007 1.713.797 2.157-.21.444-.666.642-.617.824.05.18 1.133.756 2.24 1.332 1.104.577 2.384 1.087 2.548.774.162-.314.275-1.07.18-2.14-.1-1.07-.715-2.7-.715-2.7s.728 1.58.859 2.7c.129 1.12-.144 1.96.113 2.354.26.395 1.07.495 1.07.495s-.648.46-2.092.032c-1.444-.428-7.643-3.556-7.936-3.26-.291.297 2.89 2.223 4.35 3.606 1.462 1.382 2.174 2.831 2.174 2.831s-1.136-.956-2.238-1.563c-1.103-.61-4.415-2.305-4.628-2.076-.206.232 1.252.527 1.364.792.113.264-1.037 1.3-1.037 1.728 0 .427 4.722 3.704 4.575 4.065-.145.363-1.2 1.219-1.394 1.17-.195-.05-2.53-1.844-2.53-1.564s1.343 1.416 1.33 1.662c-.016.247-.892.84-.734 1.4.165.56 2.633 2.585 2.615 3.276-.017.69-1.411 1.284-1.151 1.728.257.445 1.524 2.008 1.524 2.008s-1.363-.905-1.803-1.381c-.438-.478-1.316-1.515-1.473-1.351-.164.165-1.04 2.091-.959 2.52.083.427 1.185 1.085 1.396 2.253.211 1.17-.163 2.387-.245 2.387-.081 0-1.636-2.007-1.947-2.04-.307-.033-.696.1-.956.61s-1.17 2.106-1.054 2.403c.11.295 1.635.642 1.67 1.86.032 1.219-.958 2.353-1.055 2.353-.098 0-1.899-2.42-2.077-2.42-.179 0-2.224 2.273-2.272 2.552-.05.28 1.394 1.302 1.137 1.697-.262.395-1.236-.15-1.788.163-.55.315-1.523.708-1.72.708-.193 0-.486-.657-.486-.657z" fill="#202020"/> - <path d="M354.986 180.002s.163-.641.473-.97c.307-.33 1.56-1.714 1.087-1.993-.47-.278-2.06.232-3.066.147-1.007-.08-1.672.166-4.593-2.255 0 0-9.263-6.476-23.61-7.309-4.546-.263-6.58 1.362-6.796 2.217-.02.197 1.192-1.844 5.756-1.778 2.013.022 16.46 1.189 23.95 7.068.392.307 2.874 2.684 5.195 2.42 2.32-.264 2.808-.526 2.758-.198-.048.33-.778 1.186-.94 1.58-.161.395-.322 1.12-.322 1.12l.108-.048zM329.95 181.915l-.038-.118c-.13-.395-1.052-1.684-2.622-3.141-1.883-1.746-7.728-4.182-8.02-4.281-.29-.099 6.001 2.898 7.76 4.577 2.82 2.7 2.92 2.963 2.92 2.963z" fill="#202020"/> - <path d="M329.934 192.223s-.384-.633-1.614-1.424c-1.236-.79-2.47-1.12-2.47-1.12l2.856.726c.844.723 1.228 1.818 1.228 1.818zM329.195 186.852s-.389-.56-2.141-1.12c-1.753-.56-2.174-.527-2.174-.527s1.623-.69 2.855-.064c1.232.624 1.46 1.711 1.46 1.711zM328.159 182.44s-.358-.79-1.916-1.348c-1.557-.56-2.662-.66-2.662-.66s1.622-.46 3.182.165c1.558.625 1.396 1.843 1.396 1.843zM326.277 179.606s-.457-.624-3.374-1.315c-2.924-.694-4.06-.726-4.06-.726s4.156-.328 5.259.133c1.101.46 2.175 1.908 2.175 1.908zM320.92 176.543s-1.782-.493-3.503-.625c-1.72-.132-4.416.098-4.416.098s5-.789 6.33-.492c1.331.294 1.59 1.02 1.59 1.02z" fill="#d2a567"/> - <path d="M304.479 238.41s.887 1.559 2.64 1.624c1.753.066 3.115 2.569 3.115 2.569l-1.926 1.888-4.63.217-1.491-2.392 2.292-3.906zM304.586 236.81c.15-.305-1.364-3.294-2.446-3.797-1.082-.503.368.967.13 1.58-.237.616-.397 1.373-.311 1.483.087.109.895 1.372.462 1.943-.433.57 2.165-1.209 2.165-1.209z" fill="#f8c83c" stroke="#977c2e" stroke-width=".267"/> - <path d="M303.755 241.366s.824.411 1.473.221c.65-.19 1.226-.85 1.226-.85M302.917 240.208s2.598-1.888 2.382-2.895c-.218-1.012-.736-.967-1.083-.878-.346.086-1.947 1.404-2.033 1.71-.087.307.734 2.063.734 2.063z" fill="#f8c83c" stroke="#977c2e" stroke-width=".267"/> - <path d="M301.08 241.503s.476 1.253 1.32 1.253c.844 0 2.056-.681 2.077-1.184.022-.508-.844-1.43-1.407-1.69-.562-.263-1.86.415-1.86.415l-.13 1.206z" fill="#f8c83c" stroke="#977c2e" stroke-width=".267"/> - <path d="M303.443 239.797c-.13.392-1.775 1.161-2.316 1.206-.54.043-1.643-1.34-1.19-1.538.455-.198 1.019-.178 1.428-.394.412-.223.52-.77.758-.792.238-.021.909.155 1.082.57.174.419.367.552.238.948z" fill="#f8c83c" stroke="#977c2e" stroke-width=".267"/> - <path d="M301.751 240.886s-2.55 3.449-3.611 3.274c-1.06-.176.432-4.896.432-4.896s.412.265 1.255.53c.844.26 1.688.568 1.924 1.092z" fill="#f8c83c" stroke="#977c2e" stroke-width=".267"/> - <path d="M297.21 238.433s3.29.57 3.442 1.098c.15.526-1.58 1.229-2.51 1.229-.932 0-.932-2.327-.932-2.327z" fill="#f8c83c" stroke="#977c2e" stroke-width=".267"/> - <path d="M289.028 243.416s.434 1.581 1.862 1.67c1.428.087 2.77-1.494 2.77-1.494l-3.376-1.317-1.256 1.14z" fill="#202220"/> - <path d="M289.028 243.416l-.074.021c0 .008.111.408.407.828.293.416.78.856 1.525.899l.12.005c1.438-.01 2.704-1.524 2.711-1.526l.072-.086-3.522-1.372-1.328 1.206.014.046.074-.022.055.059 1.219-1.11 3.33 1.3.028-.073-.058-.051s-.076.09-.217.23c-.415.417-1.383 1.241-2.378 1.237l-.112-.002c-.684-.042-1.128-.44-1.406-.833a2.834 2.834 0 0 1-.298-.536c-.03-.075-.052-.136-.067-.177l-.019-.063-.076.02.054.058-.054-.058z" fill="#4b4139"/> - <path d="M289.98 242.974s.561 1.188 2.423 1.232c1.86.043 3.332-1.493 3.332-1.493l-2.943-2.327-2.812 2.588z" fill="#202220"/> - <path d="M289.98 242.974l-.069.035c.003.014.593 1.231 2.49 1.275h.081c1.867-.002 3.303-1.512 3.31-1.515l.06-.062-3.063-2.423-2.904 2.674.026.051.069-.035.052.06 2.764-2.544 2.892 2.284.047-.06-.057-.058-.061.066c-.294.277-1.578 1.408-3.135 1.405h-.077c-.914-.024-1.5-.321-1.863-.615a2.198 2.198 0 0 1-.382-.395 1.13 1.13 0 0 1-.085-.13l-.024-.045-.071.032.052.06-.052-.06z" fill="#4b4139"/> - <path d="M290.231 243.248s.822.68 1.796.735c.974.054 2.186-.252 2.186-.252l-1.115.404-.8.089-.757-.12-.681-.254-.53-.395-.099-.207z" fill="#4b4139"/> - <path d="M292.403 241.61s.822 2.021 2.553 1.801c1.73-.22 1.773-1.228 1.773-1.228l-1.947-2.811-2.38 2.238z" fill="#202220"/> - <path d="M292.403 241.61l-.072.033c.002.005.188.464.576.927.386.465.98.938 1.788.938.088 0 .178-.008.27-.019.88-.11 1.346-.426 1.586-.723.243-.297.258-.57.258-.58v-.026l-2.014-2.906-2.485 2.337.02.051.073-.032.053.06 2.314-2.176 1.896 2.735.063-.046-.077-.003-.005.034c-.034.171-.214.923-1.701 1.118-.087.013-.17.018-.252.018-.745 0-1.296-.437-1.668-.88a3.983 3.983 0 0 1-.417-.612c-.045-.083-.078-.154-.102-.2a1.476 1.476 0 0 1-.032-.077l-.073.029.054.06-.054-.06z" fill="#4b4139"/> - <path d="M292.647 242.006s1.037 1.263 1.948 1.243c.906-.023 1.481-.366 1.481-.366l.043.145-.477.241-.823.167-.842-.112-.693-.416-.637-.902zM289.363 244.033s.8.821 1.535.855c.737.033 1.862-.593 1.862-.593l.14-.044-.194.176-.758.416-.92.264-.724-.132-.552-.339-.335-.427-.054-.176z" fill="#4b4139"/> - <path d="M297.012 238.258c.779-.11 2.401 2.108 2.401 3.204 0 1.098-.475 2.745-1.276 2.701-.802-.045-2.619-1.67-3.03-2.5-.411-.836-.82-1.408-.517-1.848.3-.439 2.422-1.557 2.422-1.557zM288.944 238.456s-1.299-1.008-1.818-.481c-.52.525-.347 2.28 0 2.633.345.351 1.902-.836 1.902-.836l-.084-1.316z" fill="#f8c83c" stroke="#977c2e" stroke-width=".267"/> - <path d="M288.768 239.682s-1.73.178-1.73.968c0 .791.822 1.624.994 1.799.172.177 1.731-.702 1.731-.702l-.995-2.064z" fill="#f8c83c" stroke="#977c2e" stroke-width=".267"/> - <path d="M289.462 241.13s-1.775.528-1.775 1.14c0 .612.778 1.757 1.34 1.757.564 0 .997-1.1 1.212-1.317.218-.22-.777-1.58-.777-1.58zM290.33 235.995s-.346-.481-1.082-.176c-.736.308-1.558 1.054-1.428 2.24.13 1.183.562 1.974.562 1.974l2.684-.923-.736-3.115z" fill="#f8c83c" stroke="#977c2e" stroke-width=".267"/> - <path d="M290.544 238.06s-2.292.746-2.38 1.623c-.087.88.52 1.759 1.126 1.93.606.178 2.553-1.71 2.553-1.71l-1.3-1.843z" fill="#f8c83c" stroke="#977c2e" stroke-width=".267"/> - <path d="M292.532 241.71s-2.25 1.487-2.553 1.487c-.303 0-1.125-1.184-.954-1.973.174-.79 1.689-1.36 2.295-1.581.607-.22 1.212 2.066 1.212 2.066zM294.506 233.541s-.715-.594-2.078-.493c-1.363.098-2.368 1.875-2.53 2.765-.164.887-.034 2.568.486 2.832.518.261 3.342-2.01 3.342-2.01l.78-3.094z" fill="#f8c83c" stroke="#977c2e" stroke-width=".267"/> - <path d="M291.748 240.284c-.942-.1-1.785-1.45-1.624-2.27.161-.825 2.013-2.242 2.986-2.076.973.163.778 2.602.778 2.602s-1.2 1.843-2.14 1.744z" fill="#f8c83c" stroke="#977c2e" stroke-width=".267"/> - <path d="M294.742 240.079s-.476 1.099-1.429 1.582c-.951.481-1.514.086-2.077-.703-.561-.792.26-1.143.694-1.539.432-.392 1.687-.7 1.687-.7l1.125 1.36z" fill="#f8c83c" stroke="#977c2e" stroke-width=".267"/> - <path d="M293.226 237.183s-1.061.854-.454 1.845c.605.988 1.082 1.337 1.838 1.468.758.133 1.254-.174 1.862-.9.605-.724 1.492-1.052 1.406-1.954-.087-.9-.433-1.602-.974-1.865-.54-.262-2.185.023-3.678 1.406z" fill="#f8c83c" stroke="#977c2e" stroke-width=".267"/> - <path d="M296.243 232.947s-1.095-.42-1.94.076c-.843.493-1.427 1.498-1.458 2.418-.033.923.164 2.215.164 2.215s1.158-.33 1.904-.956c.746-.624.993-.795.888-1.117-.063-.196-.37-.413-.37-1.187 0-1.35.812-1.449.812-1.449z" fill="#202220"/> - <path d="M296.243 232.947s-1.265-.213-1.897.199c-.633.41-1.168 1.02-1.396 1.843-.229.824-.065 1.037-.065 1.037s-.12-.716.105-1.401c.26-.786.905-1.568 1.534-1.753.768-.225 1.719.075 1.719.075z" fill="#4b4139"/> - <path d="M328.822 256.94s.914-.385 1.545-.731c.635-.348 1.998-1.237 1.998-1.237l.438 2.274-1.753 1.35-1.526.016-.923-.674.22-.998z" fill="#f8c83c" stroke="#977c2e" stroke-width=".267"/> - <path d="M326.376 257.168s.024.03 1.091.053c1.062.028 1.167-.37 1.355-.279.188.092.488 1.228.488 1.228l-.39.712-1.533.87-1.295-.713-.106-1.79.39-.08zM338.528 256.437s-.304-.509-.912-1.035c-.606-.53-2.165-1.888-2.165-1.888l-.01 4.927 2.273-.056 1.083-1.523-.269-.425z" fill="#f8c83c" stroke="#977c2e" stroke-width=".267"/> - <path d="M326.376 257.168s-.338-.498-1.301-.393c-.956.104-1.972.887-2.073 1.552-.107.66 0 2.583.518 2.952.518.368 1.168.554 2.206.29 1.04-.264 6.335-3.532 6.335-3.532s-.622.132-1.35.293c-.725.157-1.401-.161-1.401-.161s-.727.818-1.557.95c-.833.132-1.063-.396-1.222-.789-.155-.394-.155-1.162-.155-1.162z" fill="#f8c83c" stroke="#977c2e" stroke-width=".267"/> - <path d="M329.911 258.875s-.78.298-1.074.512c-.29.213-1.338.582-1.338.582l.4 1.607 2.253.575 1.413-1.167.017-1.616-1.67-.493zM340.395 257.74s-.356-.33-.78-.807c-.418-.476-.939-.575-1.086-.495-.146.084-1.214 1.465-1.214 1.465l-.082 1.04 1.248.675.876.163 1.153-.758-.115-1.283z" fill="#f8c83c" stroke="#977c2e" stroke-width=".267"/> - <path d="M332.654 256.947s-1.007.459-1.495.872c-.487.412-1.248.872-1.248 1.053 0 .18 1.137 1.358 1.137 1.358l1.152.093 2.498-1.747-.164-1.597-1.88-.032zM342.148 259.02s-.193-.395-.583-.758c-.39-.363-.875-.558-1.17-.526-.29.031-1.266 1.482-1.266 1.482l-.12.41.9 1.046 1.598.388 1.102-1.112-.462-.93z" fill="#f8c83c" stroke="#977c2e" stroke-width=".267"/> - <path d="M338.028 260.766l1.136.196s-.034.298.293.561c.323.263.357.063.357.063s.162 1.089 1.362 2.01c0 0 1.397.462 2.109.066.716-.396.616.122.616.122l2.013-2.49s0-.497-.486-.528c0 0 .355-1.548-.943-1.879-1.295-.329-2.336.132-2.336.132s-.996 1.827-1.59 1.58a2.36 2.36 0 0 1-.714-.492c-.549-.595-.714-.89-.714-.89s-.421.132-.908-.198c-.489-.329-.907-1.12-.907-1.12s-.747-.132-1.006-.393c-.26-.264-.53-.784-.53-.784l-1.857 1.335s-.059.59-1.142 1.38c-1.081.793-1.73.793-1.73.793s-.301 1.622-1.515 1.356c-1.211-.261-2.033-1.62-2.033-1.62s-.867-.132-1.43.611c-.563.748-.824 1.013-.824 1.758 0 .746.478 1.798.867 2.15.391.351 1.604 1.316 3.029.57 1.43-.745.953-1.974.953-1.974s-.043.088.823-.483c.864-.572 1.815-1.45 2.466-1.711" fill="#f8c83c" stroke="#977c2e" stroke-width=".267" stroke-linecap="round" stroke-linejoin="round"/> - <path d="M335.808 250.837l.01 3.185s.39 2.83-.23 3.72c-.614.889-2.855.69-3.177-.067-.325-.756-.163-3.224-.163-3.224l3.56-3.614z" fill="#f8c83c" stroke="#977c2e" stroke-width=".267"/> - <path d="M333.294 260.49s-.477.843.997.965c.418.037.697-.113.885-.328.38-.44.298-.805.298-.805s-.13 1.177 1.194 1.22c1.474.054 1.344-1.36 1.344-1.36" fill="#f8c83c" stroke="#977c2e" stroke-width=".267" stroke-linecap="round" stroke-linejoin="round"/> - <path d="M321.18 263.103s-.82-1.385.154-1.888c.973-.505 1.493.023 2.074.044.585.023.394-1.498.265-1.805-.13-.308-.438-.96-.673-1.135-.24-.177-3.458.145-3.433 2.305.023 2.076 1.613 2.48 1.613 2.48zM326.224 268.261s-1.038-1.47-.475-2.347c.564-.88.992-.352 1.278-.376.278-.02.408-.657-.067-1.622-.478-.967-1.06-1.45-1.407-1.495-.347-.043-2.286 1.382-1.902 3.205.458 2.204 2.573 2.635 2.573 2.635zM344.38 266.486s3.5 1.47 3.742-2.064c.13-1.887-1.558-3.193-2.098-3.18-.368.006-.648.217-1.275.963-.63.748-1.106 1.294-.847 1.583.26.284 1.297-.308 1.753.81.78 1.911-1.275 1.888-1.275 1.888z" fill="#202220"/> - <path d="M326.224 268.261s-2.727-.601-2.703-3.266c.013-1.778 1.993-2.569 1.993-2.569s-1.831.973-1.863 2.536c-.057 2.71 2.573 3.3 2.573 3.3zM321.218 263.103s-1.573-.346-1.744-2.61c-.172-2.263 3.562-2.174 3.562-2.174s-3.58.171-3.392 2.34c.193 2.237 1.574 2.444 1.574 2.444zM344.38 266.486s.702.34 1.506.308c.8-.031 1.763-.242 2.097-1.58.334-1.338.196-1.973-.686-3.153-.62-.822-1.187-.806-1.187-.806s.604.119 1.08.863c.477.747 1.17 1.582.694 3.085-.478 1.504-1.926 1.535-2.456 1.49a5.519 5.519 0 0 1-1.048-.207z" fill="#4b4139"/> - <path d="M302.628 192.36l-.659-.136.476-1.1 1.841-.673 1.838-.074 1.935-.078.89.614.992 2.293-3.667 2.186-.594.198-.227-.904-.561-1.48z" fill="#904720"/> - <path d="M336.92 245.48l-.227-5.5-14.833 4.577 5.874 5.497z" fill="#202020"/> - <path d="M309.454 235.903l-1.248-.978s-.895-.632-1.393-.785c-.496-.155-1.135-.033-1.135-.033l-.205.292.194.51 1.353 1.577s2.207 1.142 2.261 1.165c.054.021.799.769.799.769l.52.22-1.146-2.736zM309.104 238.235l.845.111.846.97.524 1.034.691 1.37.22.795-1.655-.362-4.805-1.49.415-1.142.841-.77.696-.306.98-.148z" fill="#d2a567"/> - <path d="M312.228 242.19l.792-.067.537-.458-.252-1.798.292-5.76-3.902-4.615-.797 2.66 1.146 4.664.846 2.796z" fill="#d2a567"/> - <path d="M309.431 231.652s-.258.481.065 1.995c.326 1.513.888 4.897 2.23 7.202 1.34 2.301-1.298-1.821-1.298-1.821s-2.077-4.678-1.753-8.212c.325-3.533.756.836.756.836z" fill="#ab6d29"/> - <path d="M312.266 234.57s-.844 1.1-.974 1.91c-.13.811.065 2.195.065 2.195s-.13-1.051.735-1.296c.866-.24.757 2.374.8 2.612.043.243.5-4.674.5-4.674l-1.126-.747zM312.7 244.223l-4.394-1.008c-2.27-1.011-3.473-1.802-3.429-2.349.044-.549 4.035.132 4.619.264.583.131 2.37 1.03 2.37 1.03h1.027l1.863-.823.258 1.986-2.314.9zM305.363 243.393s1.083.767.563 1.097c-.52.329-1.905.373-2.337.264-.433-.111 4.24 1.03 4.24 1.03s.908-.769.844-.813c-.065-.045-3.31-1.578-3.31-1.578z" fill="#ab6d29"/> - <path d="M304.205 242.235c.163-.264.293.615 1.806.813 1.516.196 2.208-.264 2.208-.264l.67.44.8.175-.735 1.097-2.77-.814-1.492-.832-.487-.615z" fill="#d2a567"/> - <path d="M314.071 240.246l.78 1.118.485-2.433-.033-2.536-1.59-1.052z" fill="#ab6d29"/> - <path d="M309.69 236.14l-1.298-2.175-1.688-3.093 1.038-1.779 1.267 1.842s-.358 1.253-.13 2.437c.227 1.187.811 2.768.811 2.768z" fill="#4d2a15"/> - <path d="M300.799 244.04s.562-.934 1.883-1.04a7.56 7.56 0 0 1 2.38.175l2.681 1.4.542.882-5.062-.68-2.424-.736z" fill="#d2a567"/> - <path d="M313.972 235.088s.097 3.028.193 3.983c.098.954.684 1.875.587 2.27-.098.397-.294.594-.944.823-.648.23-1.946 0-1.946 0s1.265-.165 1.33-.426c.064-.264-.389-1.416-.455-2.47-.064-1.054.066-2.206-.291-2.206-.358 0-.746.46-.812.593-.065.132.356-3.754.779-4.182.423-.426 1.56 1.615 1.56 1.615z" fill="#8f4620"/> - <path d="M304.715 243.042s-.517-.483-.508-.812c.011-.331.607 1.589 3.386 1.482 2.78-.11 2.618-.157 2.618-.157h1.299s-.292 1.211-.52 1.319c-.227.11-2.163 1.416-2.196 1.451l-.694.38.056-.195-.13.01-.227-2.14-2.401-.922-.683-.415z" fill="#ab6d29"/> - <path d="M309.69 236.14s-3.214-3.327-4.283-5.532c-1.072-2.208-.422-5.236-.422-5.236l3.019 3.951s-.39.758-.262 2.008c.13 1.252 1.948 4.808 1.948 4.808z" fill="#8f4620"/> - <path d="M307.633 248.254c-.107-.23-.228-.961.39-1.734 1.909-2.381 6.74-4.092 6.74-4.092l.005 2.912-6.2 2.98-.936-.066z" fill="#ab6d29"/> - <path d="M307.999 246.052c.27-.193 1.35-.995 1.388-1.34.044-.393-.735-.46-2.14-.746-1.407-.286-2.553-.92-2.553-.92s1.73 1.338 2.401 1.602c.67.265.607.527.52.703-.087.176.345.728.384.7zM316.296 246.73s-.893-1.334-1.18-2.151c-.284-.816-.298-2.132-.352-2.147-.05-.015-.596.435-.996.62-.403.183-1.832.645-1.91.7-.078.05 1.973-.044 1.962.667-.014.714-2.949 1.017-2.961 1.068-.013.052 2.363-.525 2.22.052-.144.58-1.194.634-2.466 1.16-1.273.527-1.83.794-2.302 1.067-.47.27-.697.479-.697.479s.567.32 1.47.288c.899-.035 2.894-.528 2.894-.528l3.832-1.457.486.182z" fill="#8f4620"/> - <path d="M316.296 246.73s-1.069-.373-1.83-4.836c-.761-4.458-.539-5.66-.539-5.66l1.806 1.26 1.617 2.94-1.054 6.296z" fill="#ab6d29"/> - <path d="M316.875 239.31s-.843 2.5-.843 3.951c0 1.446-.149 2.432.265 3.463.415 1.026 1.834 2.303 1.834 2.303l.648-.677.291-2.022.164-3.36-2.359-3.659z" fill="#8f4620"/> - <path d="M319.412 242.707s.41 6.298-1.185 6.471c-.762.083-1.915-2.372-1.93-2.452-.017-.083 1.39 2.285 1.914 2.071 1.007-.41.697-6.55.697-6.55l.504.46zM316.296 246.73s-.27-.117-.708-.832c-.438-.714-.057.632-3.414 1.819-3.36 1.185-4.56.527-4.56.527s1.12.872 4.51-.118c3.392-.986 3.084-1.2 3.537-1.298.457-.098.635-.098.635-.098z" fill="#202020"/> - <path d="M310.048 238.707s.53.453 1.135 1.68a363.323 363.323 0 0 0 1.039 2.087l.151-.156s-.411-1.183-.973-2.107c-.562-.923-2.186-3.16-2.186-3.16l.835 1.656z" fill="#ab6d29"/> - <path d="M308.007 246.524s.346-1.178 0-1.397c-.348-.218-.673.02-2.964-.264a34.056 34.056 0 0 1-4.242-.824s1.557.956 3.05 1.35c1.494.395 3.44.834 3.44.834l.52.088.196.213z" fill="#8f4620"/> - <path d="M308.007 246.524s.047-.278-.212-.56c-.26-.28-.73.133-3.506-.642-2.775-.77-3.488-1.282-3.488-1.282s.989.873 3.44 1.498c2.45.625 3.765.986 3.765.986z" fill="#202020"/> - <path d="M309.256 238.227s-2.1.114-2.776.656c-.672.544-1.6 1.984-1.6 1.984l1.365.158s-.17-1.267.48-1.902c.649-.633 1.631-.69 2.531-.896z" fill="#ab6d29"/> - <path d="M305.279 234.235s.844 1.118 1.72 1.513c.877.396 1.753.725 2.176 1.152.42.427.876 1.81.876 1.81s-3.02-1.347-3.602-2.009c-.586-.657-1.17-2.466-1.17-2.466z" fill="#8f4620"/> - <path d="M308.205 234.928s-.275-.451-1.103-.83c-.827-.379-1.436-.32-1.671-.149-.236.174-.155.282-.155.282l1.104 1.663.616-.149s-1.64-1.034-1.257-1.358c.803-.685 2.466.541 2.466.541z" fill="#8f4620"/> - <path d="M316.342 231.126l16.894-8.726 7.996 11.13-14.601 3.914-7.728.66-3.765-2.73z" fill="#202020"/> - <path d="M338.993 235.896l21.062 18.24-2.334 1.604-4.935-1.406-10.256-10.137-3.797-3.823z" fill="#4d2a15"/> - <path d="M365.965 250.524s-5.231-4.125-12.03-9.171c-6.795-5.05-15.199-11.415-15.199-11.415l.39 5.443 17.384 15.979 5.735 2.764 2.9-.876 1.47-1.537-.65-1.187z" fill="#4d2a15"/> - <path d="M338.932 237.625s6.067 6.847 10.68 10.338c4.606 3.488 9.02 7.308 9.928 6.78.908-.528.584-1.118.584-1.118l-21.321-17.385.129 1.385z" fill="#803f1d"/> - <path d="M353.828 255.126l-2.143 1.666-2.463-1.006-12.952-13.237.65-2.437 1.814.263z" fill="#4d2a15"/> - <path d="M365.965 250.524s-1.588 3.744-4.964 2.869c-3.375-.88-21.962-18.54-21.962-18.54l-.043 1.844s18.835 17.253 22.471 17.956c3.636.703 6.613-2.452 6.231-2.809-.255-.239-1.734-1.32-1.734-1.32z" fill="#202020"/> - <path d="M336.852 240.391s6.005 7.704 9.187 10.535c3.182 2.833 5.907 5.069 7.206 4.808 1.296-.263-.78-1.711-.78-1.711l-9.088-8.957-4.64-4.675s-1.817-.724-1.884 0z" fill="#803f1d"/> - <path d="M338.346 240.391s15.246 15.54 16.453 15.893c2.556.746 6.19-1.89 6.19-1.89l-1.342-.789-.174.482s-.65 1.581-3.938.878c-3.289-.7-16.67-15.1-16.67-15.1l-.52.526z" fill="#202020"/> - <path d="M344.09 255.263l-5.549-6.387-1.231-2.108-.33-2.7 11.07 11.13-1.557 1.051-1.366-.457z" fill="#4d2a15"/> - <path d="M354.117 255.484s-1.343 1.977-3.163 1.58c-1.815-.392-2.853-1.71-2.853-1.71l-10.613-10.392-.26-1.585s11.643 12.32 13.726 12.864c1.517.396 2.646-1.45 2.646-1.45l.517.703z" fill="#202020"/> - <path d="M348.228 255.134s-.52 1.536-2.076 1.319c-1.56-.22-2.036-.835-2.036-.835l-6.5-7.726-.13-2.061s6.76 9.347 8.32 9.875c1.558.527 1.947-1.055 1.947-1.055l.475.483z" fill="#202020"/> - <path d="M341.279 234.875s6.296 5.4 6.817 5.663c.518.265 2.724.33 2.853.657.13.332-1.424 0-1.555.332-.129.328 3.18 3.03 3.699 3.094.518.067 3.181.067 3.117.394-.065.332-1.818 0-1.883.396-.064.395 2.859 2.701 3.375 2.767.521.066 3.894.066 3.894.393 0 .333-2.727-.064-2.66.527.063.593 4.61 3.424 4.413 3.82-.195.395-5.453-3.556-5.581-3.359-.132.197-.325 1.45-.652 1.647-.322.198 0-1.647-.26-2.436-.26-.791-3.31-3.095-3.634-2.831-.322.262-.063 1.645-.388 1.645s.066-1.712-.26-2.305c-.325-.592-3.18-2.964-3.57-2.964-.39 0-.13 1.254-.39 1.45-.26.197-.194-1.45-.584-1.976-.387-.525-7.01-6.517-6.75-6.914z" fill="#b07229"/> - <path d="M330.483 252.353s.05 2.385-1.023 2.733c-1.07.347-3.098-4.382-3.098-4.382l-.47-4.408 3.148 2.93 1.443 3.127zM338.925 251.141s.044-.698-.038-1.272c-.079-.576-.263-1.447-.263-1.447l-.206-2.457-.583-1.645-.472-1.038-.683.049-1.655 1.174-.568 1.594.876 2.98.811 2.717 1.232.395 1.549-1.05z" fill="#4d2a15"/> - <path d="M336.753 255.31c.372-.113-.345-3.38-.345-3.38l-1.946-4.83-.52-1.711-1.579-.596-1.039 1.189.238 1.91s1.513 3.18 2.251 4.302c.736 1.117 2.294 3.314 2.94 3.115z" fill="#4d2a15"/> - <path d="M335.008 245.061c.566.394 1.213 1.69 1.363 2.567 0 0 1.3 3.554 1.126 3.907-.173.352-.953.396-.953.396s1.734 1.799 2.253 1.58c.518-.22.301-1.976.127-2.371-.172-.396-.735-.131-.95-.527-.216-.397-.868-2.765-.91-4.172-.043-1.401-.086-2.369.087-2.721.173-.35 1.473 2.941 1.473 4.7l.56.658s-.347-2.417-.56-3.162c-.217-.745-.693-2.02-.693-2.282 0-.264.26-.879.26-1.493 0-.614-.043-1.008-.043-1.008s.69.48.951.439c.26-.045.648-.396.82-1.934.175-1.534-.172-6.003-.172-6.003l-6.75 8.902 2.011 2.525z" fill="#202020"/> - <path d="M335.008 244.292s-.26 2.393.629 4.85c.887 2.46 1.123 2.55 1.297 2.9.172.349.155 2.94-.175 3.268 0 0-1.727-4.41-2.31-6.584-.586-2.173-.736-3.008-1.04-3.185-.303-.175-.803-.22-.803-.22l2.402-1.03z" fill="#202020"/> - <path d="M334.368 257.031c.194-.04.075-1.016.075-1.016l-.28-2.304-2.37-4.866-2.598-2.337-1.363-2.106-.194 4.017s1.882 4.015 3.116 5.168c1.232 1.151 3.27 3.53 3.615 3.444z" fill="#4d2a15"/> - <path d="M324.67 246.067s.407 1.078.407 1.783v1.36s.95 1.931 1.816 3.47c.868 1.533 1.688 3.116 2.422 2.765.737-.352.998-1.494 1.041-1.627.042-.129-.822 1.318-1.257 1.098-.431-.218-2.376-6.494-2.334-6.628.042-.132-.52-.395-.954-.834-.433-.44-1.142-1.387-1.142-1.387zM331.74 251.538s-1.345-2.192-1.777-3.16c-.432-.967-1.168-1.714-1.384-1.714-.217 0-.498-1.965-.498-1.965s.714 1.307 1.622 1.745c.91.439 1.47.791 1.907.615 0 0 .258 1.011.258 2.021s-.128 2.458-.128 2.458z" fill="#202020"/> - <path d="M327.412 248.307s.454 1.38 1.34 2.699c.887 1.317 2.343 2.9 2.343 2.9s-1.607-1.583-2.449-2.812c-.844-1.23-1.407-2.834-1.407-2.834l.173.047z" fill="#5c3a1d"/> - <path d="M332.037 246.67s.429-1.195.8-1.253c.37-.056 1.152-.29 1.152-.29s-.669-.166-1.205-.792c-.562-.664-.693-.615-1.304-1.326 0 0 .347 1.326.452 1.952.105.626.105 1.708.105 1.708zM331.61 247.058s1.926 4.125 2.421 5.508c.495 1.384.411 3.45.411 3.45s-.238-1.471-.67-2.68c-.434-1.207-2.186-4.565-2.335-4.96-.155-.396.173-1.319.173-1.319z" fill="#202020"/> - <path d="M334.231 244.376l.456-6.062-.456-2.14-2.728-6.056s-.13.89-.81.854c-.682-.034-2.5-.986-3.12-1.811 0 0 .36 1.417.231 2.766-.131 1.351-.357 2.074-.357 2.074l5.257 9.878 1.527.497z" fill="#4d2a15"/> - <path d="M323.778 248.353s.821.99 1.298.858c.474-.13.3-2.021-.304-3.073-.607-1.053-7.012-9.614-7.963-10.141-.951-.525 6.97 12.356 6.97 12.356z" fill="#8b441f"/> - <path d="M328.151 244.818c.129.395.59 3.125-.517 3.38-1.528.352-8.566-9.369-9.654-10.703 0 0-4.418-2.762-4.504-3.466-.088-.703 4.763.955 4.763.955l9.434 9.02s.346.418.478.814z" fill="#8b441f" stroke="#5c3a1d" stroke-width=".053"/> - <path d="M323.778 248.353s-.779-1.382-.848-2.368c-.062-.988-.387-1.515-.45-1.846-.066-.327-5.194-7.766-5.714-8.231-.517-.459-2.27-1.447-2.27-1.447s.202 1.184.202 1.712c0 .526.058.675.058.675s1.623 3.081 3.958 5.78a458.448 458.448 0 0 0 5.064 5.725z" fill="#202020"/> - <path d="M331.61 247.058c.691-.396.388-2.765.13-3.513-.263-.746-4.458-9.478-4.458-9.478l-1.258.48-2.378-1.865-1.338-1.448s.471 2.086.43 3.096c-.045 1.009-.087 1.622-.087 1.622l3.33 5.84 5.63 5.266zM336.327 241.793l.998-1.316-.52-4.347-2.77-9.48s-.693.175-1.386-.264c-.69-.44-1.406-1.275-1.406-1.275l.673 5.663 2.858 7.946.172 2.372 1.38.701z" fill="#4d2a15"/> - <path d="M327.671 244.01s-2.788-3.03-3.7-4.544c-.91-1.515-1.686-2.964-1.686-2.964s-.778.33-1.754-.064c-.974-.397-2.269-1.778-2.269-1.778s-.78 1.513 3.245 5.596c4.607 4.674 6.164 3.754 6.164 3.754z" fill="#202020"/> - <path d="M334.391 245.031c1.174-.471 1.137-5.4.035-8.726-1.107-3.327-2.923-6.188-2.923-6.188s2.273 5.333 2.759 7.507c.486 2.173 0 3.718-.39 3.587-.39-.132-.39-1.282-1.298-3.392-.906-2.105-1.523-2.632-1.523-2.632s3.21 8.789 2.3 8.625c-.906-.164-5.386-9.91-5.58-10.174-.197-.264-.324.361-.324.361s3.991 12.215 6.945 11.032z" fill="#8b441f"/> - <path d="M336.997 221.29l1.972 4.187.622 4.427.155 3.732s.129 7.365-.777 7.541c-.91.176-1.343-.703-1.385-.88a2729 2729 0 0 1-1.689-8.297l-1.729-8.472.613-.593.207-1.25 1.34-.09.671-.305z" fill="#4d2a15"/> - <path d="M331.61 247.058c.784-.108 0-2.106 0-2.106s-.65.965-1.17.308c-.52-.658-1.344-3.097-1.344-3.097l-.519-1.47s-.562 1.624-1.295 1.624c-.738 0-4.545-6.453-4.545-6.453l-.455.637s5.366 11.107 9.328 10.557z" fill="#8b441f"/> - <path d="M329.096 242.166s.65-1.58.39-3.027c-.26-1.451-2.204-5.069-2.204-5.069s-.586.132-1.363-.133c-.78-.264-2.272-1.253-2.272-1.253s1.038 2.701 2.204 4.678c1.171 1.973 3.245 4.804 3.245 4.804zM332.212 239.926s-.486-3.427-2.042-6.587c-1.56-3.161-2.6-4.182-2.6-4.182s.131.693.1 1.977c-.032 1.282 0 1.546 0 1.546s1.427.528 2.5 2.437c1.07 1.91 2.042 4.81 2.042 4.81zM336.456 234.067s-.217-3.688-.8-5.799c-.585-2.104-1.2-4.903-1.2-4.903s.073-.283.322-.43c.146-.09.358-.133.652-.032.778.263 1.103 2.206 1.103 2.206s-.097-2.995-.163-3.126c-.062-.133-.26-.496-.26-.496s-.258.132-.618.101c-.356-.035-.777-.1-.777-.1s.244.92-.146 1.35c-.284.313-.555-.28-.712-.36-.06-.033-.148.425-.148.425s.291 1.053.357 1.976c.064.924-.096 1.68-.096 1.68s.572 2.204 1.187 3.557c.62 1.347 1.3 3.951 1.3 3.951zM339.748 233.64s.648-5.3-.55-8.69c-1.204-3.394-2.21-4.281-2.21-4.281l-.55.659s1.807 2.88 2.335 5.562c.556 2.798.974 6.75.974 6.75zM334.422 236.307s-.588-4.146-1.335-6.813c-.745-2.67-.956-3.623-.956-3.623l-1.134-1.053s.666 2.83.6 3.655c-.065.82-.132 1.382-.132 1.382s.554 1.416 1.3 2.598c.746 1.188 1.657 3.854 1.657 3.854z" fill="#202020"/> - <path d="M337.195 242.89c1.059.031.13-5.967-.303-7.504-.433-1.536-2.903-8.75-2.903-8.75s2.97 10.258 2.728 10.771c-.35.761-1.511-3.117-1.727-3.073-.216.041 2.205 6.935 1.337 7.024-.862.088-1.294-1.451-1.294-1.451l.084 1.495s.563 1.448 2.078 1.488z" fill="#904720"/> - <path d="M338.49 239.858c.722 0-.202-5.661-.72-8.165-.517-2.504-1.963-7.507-1.963-7.507s1.468 3.469 2.293 7.463c.82 3.993 1.38 9.13.605 9.22-.778.087-1.17-.748-1.17-.748l-.128-.924s.346.661 1.083.661z" fill="#904720"/> - <path d="M328.746 246.51c.111.402.089 2.345-.941 2.206-1.03-.14-2.914-1.879-3.301-3.022 0 0 2.238 2.476 3.008 2.461.771-.017.768-2.556.64-3.215-.132-.657.594 1.57.594 1.57z" fill="#312317"/> - <path d="M334.132 219.545s1.332.853 2.402.229c1.072-.626 1.786-2.14 1.754-2.964-.035-.821-.066-1.547-.716-2.403-.648-.855 1.038.724 1.008 2.306-.033 1.581.096 4.31-2.436 4.905-2.532.593-1.428-.132-1.428-.132l-.584-1.94z" fill="#d2a567"/> - <path d="M332.128 214.707s1.598 2.618 2.213 4.972c.617 2.354.503 3.26.114 3.307-.39.052-.536-.277-.633-.87-.096-.595-1.694-7.409-1.694-7.409z" fill="#8f4620"/> - <path d="M304.106 217.922l10.577 15.345 13.244-14.95-8.374-8.626z" fill="#1e2121"/> - <path d="M317.477 208.505l-.614 2.404 1.297 4.083 2.207 2.272 2.561 1.708.586-1.91.618-2.235.646-.23 1.622.626 1.073-1.546 1.72-3.097-.358-1.2-.41-.854-2.68-4.668-.902 1.765-.841.511-1.561-.886-1.882 2.466-2.301-1.069z" fill="#4d2a15"/> - <path d="M322.932 218.981s.459-.326.652-1.545c.197-1.218.228-4.94-.096-6.422-.325-1.48-1.3-4.41-1.494-4.18-.194.23 1.527 3.227 1.267 6.881-.26 3.655-.13 4.676-.91 5.038-.781.36.581.229.581.229z" fill="#5c3818"/> - <path d="M323.55 212.825s1.752 2.502 2.597 1.612c.842-.888.422-4.083-.128-5.333-.555-1.252-1.137-3.063-1.137-3.063l.52-.526s.582 2.106.906 3.424c.325 1.317 1.298 5.201.129 5.894-1.166.691-2.855-1.417-2.855-1.417l-.033-.591z" fill="#5c3818"/> - <path d="M317.888 214.547s.585-.855 1.385-.943c.8-.088.955.262.955.262l.712 2.063 1.19 2.13 1.059 1.052-.627.593-.842.155s-2.514-1.316-2.554-1.405c-.043-.087-.694-.922-.694-.922l-.584-2.985z" fill="#8f4620"/> - <path d="M322.048 236.338c-.824.428-2.723-.52-3.794-1.463-1.071-.942-6.717-6.705-6.717-6.705l-.79-3.195 2.185.594 3.83-1.646.715-1.35 4.607-2.403 2.567-1.382 5.58-.1 1.33-2.733s1.873 3.237 2.185 4.566c.315 1.328.249 5.412-.237 5.673-.486.264-2.304-1.22-2.564-1.316-.26-.098 1.364 5.73 0 5.958-1.364.23-3.635-2.172-3.635-2.172s.908 5.2-.161 5.235c-1.073.034-3.841-1.304-5.02-2.58 0 0 1.317 4.292-.08 5.018z" fill="#d2a567"/> - <path d="M320.951 229.587s.9 1.32 1.18 1.734c.28.416-.05 2.882-.219 3.337-.347.945-1.622-1.118-2.316-2.941 0 0-2.03-3.38-2.161-3.82-.13-.44 3.516 1.69 3.516 1.69zM331.824 216.703s1.969 8.122 1.018 8.406c-.954.285-3.66-2.57-3.96-2.985-.305-.417-4.07-6.409-4.07-6.409l-.8-.813.238-.417 1.6.613 5.974 1.605z" fill="#8f4620"/> - <path d="M317.888 232.307c-.438.283-1.276-1.053-1.665-1.404-.39-.35-1.71-1.977-3.008-3.293-1.296-1.315-2.249-2.283-2.249-2.547 0-.264-.78-1.096-.78-1.096l.693-.876.91-.133s5.366 4.278 5.733 4.957c.367.685.606 4.238.367 4.392zM325.965 232.376c-.253.2-3.808-2.373-5.303-4.501-1.493-2.13-3.05-3.995-3.419-4.984-.368-.988-.671-1.886-.671-1.886l1.083.24s8.72 10.8 8.31 11.13zM327.237 228.62c-.198.242-1.752-.921-2.705-2.174-.953-1.25-.452-2.807-.452-2.807s3.35 4.741 3.157 4.98zM329.226 228.14c-.483.23-2.522-2.23-4.218-5.004-1.256-2.052-1.567-2.36-1.838-2.523-.466-.283-1.344-.417-1.344-.417l-.174-.264.91-.22.672-.788 1.059-1.363 4.22 8.518c.002 0 1.037 1.91.713 2.06z" fill="#8f4620"/> - <path d="M318.262 234.875c.033.31-.017.622-1.168.506-1.151-.115-7.172-3.326-9.884-7.754-2.708-4.43-3.066-5.02-3.066-5.02l1.202-1.367 9.558 10.896 3.358 2.739z" fill="#ab6d29"/> - <path d="M318.262 234.875c.13.506-.475.638-1.081.484-.607-.154-3.01-1.01-6.839-5.27-3.827-4.257-5.321-7.307-5.321-7.374 0-.064-.194-1.822-.194-1.822l1.124-.482 6.579 10.03 5.732 4.434z" fill="#8f4620"/> - <path d="M324.654 230.57s-1.982-1.417-3.248-2.93c-1.263-1.516-3.83-5.037-3.765-5.73.066-.692 1.137-.692 1.137-.692l-.065-1.775.325-.596 1.85.757 2.336 2.868.857 1.162s1.513 3.643 1.22 3.973c-.292.33-2.434-2.042-2.694-1.745-.26.297 2.437 4.444 2.047 4.708zM320.951 229.587s.65.988.354 1.68c-.287.69-.548 1.053-1.523-.395-.975-1.45-2.151-3.073-2.26-2.956-.108.122.117 2.23-.368 2.23-.489 0-2.013-1.81-2.987-3.26-.973-1.448-2.465-3.851-2.465-3.851s.13-.495.065-2.14c-.065-1.648-.195-2.502-.195-2.502s.14.515.314.9c.171.384.431.658.431.658l3.57 4.206 1.004-.699 2.114 4.122 1.946 2.007zM307.42 223.461s2.76 4.84 5.323 7.543c2.564 2.697 5.518 3.872 5.518 3.872l-8.34-9.865-2.5-1.55zM328.578 226.326c-.144.1-1.85-1.746-2.92-3.392-1.072-1.645-1.914-3.952-1.85-4.972.067-1.022.356-3.489.356-3.489s2.859 2.964 3.406 4.346c.555 1.384 1.729 3.267 1.47 3.5-.258.23-2.18-1.296-2.409-.931-.228.362 2.24 4.74 1.947 4.938zM331.824 223.233c-.35.176-1.784-1.515-2.175-2.569-.39-1.055-.52-3.128-.52-3.128l-1.265-2.996.13-3.324 1.265-.2 1.913 2.636s.748 1.547.716 3.786c-.034 2.238.323 5.596-.064 5.795zM309.332 231.37c-2.564-3.161-4.122-6.126-4.122-6.126l-.843-2.831.454.363s.746 3.26 4.704 7.143c3.96 3.888 4.838 4.214 4.838 4.214s.778 2.144.39 2.9c0 0-2.856-2.504-5.421-5.663z" fill="#4d2a15"/> - <path d="M313.607 235.903s-3.377-2.982-6.06-6.362c-2.682-3.38-4.37-6.629-4.37-6.629l1.169-1.099s2.228 5.202 3.83 7.266c1.6 2.064 5.43 6.825 5.43 6.825zM318.262 234.875s-3.916-3.884-5.907-6.079c-1.99-2.193-3.092-4.412-3.092-4.412l1.643.636s.65 1.71 2.077 3.492c1.43 1.778 5.279 6.363 5.279 6.363zM317.523 227.911s-2.142-2.61-3.159-4.256c-1.018-1.646-2.057-3.754-2.057-3.754s2.879 3.293 3.723 3.511c.843.221.82-.02.82-.02s-.346 1.184-.063 2.172c.28.99.736 2.347.736 2.347zM318.391 217.32s.347 1.84.109 2.919c-.236 1.074-.81 1.066-.81 1.066s1.113 1.568 1.763 2.225c.647.66 2.272 1.8 2.272 1.8s-1.3-1.8-1.82-2.72c-.519-.923-1.276-1.954-.95-2.855.324-.902 2.078.616 2.574 1.033.5.415 2.556 2.853 2.556 2.853s-.76-2.527-1.776-3.446c-1.018-.921-3.918-2.875-3.918-2.875z" fill="#202020"/> - <path d="M327.024 222.844s-1.104-2.653-1.734-4.277c-.627-1.627-1.61-5.148-1.61-5.148s.074 1.613-.013 2.799c-.086 1.186-.507 2.996-1.024 3.258-.52.263-.637.315-1.593.051-.957-.264.665.445.665.445s.974-.031 1.397-.51c.42-.48.517-1.5.975-1.352.452.15.938 1.697 1.314 2.372.37.674 1.623 2.362 1.623 2.362z" fill="#202020"/> - <path d="M323.664 213.39s2.058 2.304 2.95 1.267c.893-1.037.373-3.968.373-3.968s1.25.479 1.64.166c.39-.312.21-1.465.21-1.465s2.22 3.243 3.29 5.317c1.072 2.074 1.621 5.817 1.621 5.817s-1.837-2.986-2.768-5.817c-.85-2.577-2.093-3.753-2.322-3.506-.226.246-.567 2.057-.291 2.996.277.937 1.037 2.157 1.557 3.49.52 1.333 1.102 3.424 1.102 3.424s-1.054-1.598-1.668-2.47c-.617-.871-1.267-1.218-1.69-1.628-.42-.413-1.055-1.17-1.668-1.417-.62-.246-1.836-.856-1.836-.378 0 .476-.243-.94-.243-.94l-.257-.889z" fill="#202020"/> - <path d="M316.768 223.263s1.136 2.274 2.044 3.459c.909 1.185 2.144 2.864 2.144 2.864s-1.947-1.777-2.727-2.897c-.78-1.12-1.46-3.426-1.46-3.426z" fill="#171717"/> - <path d="M330.17 223.858c-.292.115-1.235-.229-1.333.115-.096.345.537 1.697 1.235 2.406.695.706.99.737 1.153.657.161-.084-.074-.709-.188-1.434-.114-.724-.025-1.497-.105-1.73-.08-.23-.762-.014-.762-.014z" fill="#8f4620"/> - <path d="M305.919 209.366l-1.181.775-1.429 2.899.39 5.312s1.32 1.866 2.13 3.04c.812 1.175 3.496 4.202 4.188 4.028.692-.177 1.43-2.281 1.515-3.423.086-1.145.173-3.249.173-3.249s.65 1.14 1.773 2.368c1.126 1.231 2.078 2.372 2.598 2.285.52-.089 2.075-3.205 2.118-3.6.043-.393-3.894-10.053-3.894-10.053l-1.752-.908-6.63.527z" fill="#d2a567"/> - <path d="M314.757 217.404s.68 2.468 1.102 3.688c.422 1.217-.012 2.272.218 2.305.226.03 2.28-2.734 2.313-3.984.034-1.25.034-2.535-.518-6.355-.554-3.82.178-4.93.178-4.93l-1.184-.964-2.046 4.116-.063 6.124zM307.839 215.233s.454 3.72.714 4.938c.26 1.219.973 3.291 1.364 3.258.389-.03 1.622-3.292 1.655-4.41 0 0-.844-1.58-.812-5.565.033-3.984-.39-4.38-.39-4.38l-2.531 6.159z" fill="#ab6d29"/> - <path d="M302.506 207.545s-3.115 4.522-3.052 7.002c.066 2.48.476 1.931 1.192 4.169.713 2.243 1.103 5.556 1.145 5.841.044.284.498-.155.563-.483.065-.33.152-16.53.152-16.53z" fill="#45392d"/> - <path d="M302.49 208.079s-2.726 4.213-2.53 6.54c.194 2.325.561 2.262 1.34 4.347.779 2.086.844 5.485.844 5.485s.866-.261 1.839-.953c.973-.694 1.85-2.107 1.85-2.107s-.334-.757-.963-2.117c-.627-1.363-.692-1.89-.692-1.89l-.8-1.141.238-4.039.713-2.92v-1.098l-1.839-.108z" fill="#ab6d29"/> - <path d="M317.218 215.332s-1.362-.297-1.915-.626c-.55-.329-.778-1.119-.778-1.119l.326-.79 2.367 2.535z" fill="#dbad6c"/> - <path d="M303.047 208.536s-1.968 4.237-1.731 7.155c.239 2.921 1.84 6.652 1.991 6.696.151.044.086-.285.13-.945.043-.657-.086-8.713-.086-8.713l.952-2.831.042-1.471-1.298.109z" fill="#d2a567"/> - <path d="M307.808 209.48s.261 1.274.087 1.802c-.173.526-1.212 1.185-1.644 2.019-.433.834-1.038 2.765-1.038 2.765s.475-1.097 1.125-1.799c.648-.702.909-1.185 1.04-.791.127.395.345 2.065.214 2.373-.129.305-.649.809-.994 1.974-.368 1.24.043 2.371.043 2.371s.227-1.417.434-2.152c.18-.65.734-.967.734-.967l1.082 2.33s0-1.1.175-1.934c.173-.833 1.08-2.008 1.372-2.008.292 0 .746-.164-.358-.724-.356-.23-.129-4.28.163-4.445.292-.163 1.817-.222 1.657-.782-.163-.558-1.486-2.066-1.616-2.198-.13-.131-2.476 2.166-2.476 2.166z" fill="#8f4620"/> - <path d="M316.997 218.098s-.944-.165-1.463-.264c-.518-.098-.583-.592-.583-.592l.164-.624 1.199.658.683.822z" fill="#dbad6c"/> - <path d="M304.448 218.578c-.025.434-.347.879-.557 1.487-.253.735-.4 1.61-.4 1.61s-.292-1.945-.388-3.313c-.098-1.365-.195-2.255-.357-2.336-.163-.082-.633.64-.633.64s0-1.531.291-2.27c.292-.74.536-1.795.277-1.96-.261-.165-.811.297-1.055.691a30.788 30.788 0 0 0-.698 1.252s.291-1.3.6-1.827c.308-.527 1.786-2.224 2.061-2.882.275-.658.276-1.367.276-1.367l1.024-.049s1.066.833 1.076 1.557c.007.408-1.022.865-1.045.913-.066.132-.86-.067-1.055 3.325-.195 3.393.672 3.114.583 4.529zM313.782 209.9s.226 1.843.031 2.403c-.194.56-.745 1.02-1.135 1.745-.39.725-.357 2.47-.357 2.47s.195-.858.52-1.385c.324-.525.584-.987.714-.987s.52.66.779 1.615c.26.954.78 2.567.78 2.567s-.226-1.253.096-1.253c.323 0 .453-.098.876.232.424.33.91.79.91.79s-.034-.46-.65-1.12c-.616-.658-.972-.624-1.17-1.514-.193-.89-.288-1.777-.193-2.14.096-.361.52.231.876.658.357.428 1.493 1.417 1.493 1.417s-.486-.758-.617-.989c-.13-.231-.033-1.975 0-2.963.032-.988-.033-1.908.323-2.171.359-.265.424-1.55.26-1.78-.16-.23-3.536 2.405-3.536 2.405z" fill="#8f4620"/> - <path d="M324.639 206.105s.088 2.084.369 3.293c.28 1.207 1.082 3.84 1.082 3.84s-1.082-1.953-1.559-3.643c-.477-1.69-.91-3.511-1.342-3.643-.431-.132-.93.812-.93 1.514s.455 3.337 1.04 4.259c.585.922-.931-1.208-1.3-2.35-.365-1.141-.736-2.15-.736-2.15s-.366.965-.215 2.042c.152 1.075 1.062 2.611 1.062 2.611s-.587-.505-.953-.945c-.368-.438-.694-.7-.694-.7s.064 1.47.455 2.106c.387.636 1.146 1.646 1.146 1.646s-.907-.68-1.254-1.075c-.347-.395-.453-.679-.453-.679s.193 2.106.648 3.226c.454 1.118 1.45 2.964 1.45 2.964s-1.192-.946-1.992-2.787c-.799-1.845-1.19-7.341-.996-8.177 0 0 .61-1.039 1.174-1.852.564-.811 1.276-4.69 1.276-4.69s.884 3.587 1.488 4.268c.608.68 1.234.922 1.234.922zM316.052 205.023s.458.963.75 1.391c.291.429.584.979.584.979s-1.073 1.153-2.272 2.075c-1.204.92-2.793 1.942-3.15 1.416-.356-.528-.339-.98-.339-.98s1.321-.79 2.36-1.843c1.037-1.054 1.396-1.607 1.624-2.165.228-.561.443-.873.443-.873zM305.127 208.581s.186 2.24 1.128 2.206c.941-.032 3.732-2.864 3.926-2.994.195-.132.381-.825.381-1.056 0-.23-.169-.757-.169-.757s-3.003 3.079-4.073 3.178c-.783.072-1.194-.577-1.194-.577zM305.218 205.64s-.358 1.576-.308 2.02c.047.444.19.79.19.79s-2.154.755-2.51.098c-.358-.658-.123-1.596-.123-1.596s.998.005 1.55-.126c.552-.133 1.201-1.185 1.201-1.185zM325.538 202.479s.878 2.309 1.441 3.232c.565.922 1.449 2.83 1.449 2.83s-1.449-1.69-1.903-2.062c-.455-.373-1.192-.995-1.192-.995s.212-.622.212-1.103c0-.484-.007-1.902-.007-1.902z" fill="#1e2121"/> - <path d="M302.132 206.966s.8.1 1.292.072c.495-.026.819-.225.819-.225l.818-1.222s-.417 1.447-.13 2.475c.286 1.028.881 1.185 1.116 1.185.233 0 1.375-.237 2.259-1.16.882-.92 2.103-1.881 2.103-1.881s-.287 1.33.18 2.645c.47 1.318 1.22 1.292 2.233.475 1.013-.816 2.054-2.214 2.609-2.833.304-.339.691-1.046.691-1.046l1.114-.888.96-5.426-.52-.712-1.405.67-1.682-.67-.494-.685-.96 1.633-1.013.658-.512.086-1.176.231-.52-1.054-.311-.816-.572-.263-2.42 2.44-1.37-.07-1.376 2.16-.987 1.368-1.013 2.4.267.453z" fill="#dbad6c"/> - <path d="M313.88 201.473s.196 1.35-.485 3.622-1.622 3.885-1.622 3.885 2.433-1.482 3.603-4.148c1.165-2.668.896-5.73.896-5.73l-2.391 2.371zM316.83 198.997s.294.394.033 2.435c-.26 2.042-.746 4.017-.746 4.017s.288.495.616 1.153c.323.658 1.136 1.811 1.72 1.614.584-.198 1.491-.89 2.108-2.241.617-1.35 1.169-2.666 1.396-2.864.227-.198.325.132.425.231.096.1.284 1.251.866 1.745.585.494 1.348 1.268 1.704 1.038.357-.23.706-.905.642-1.237-.065-.328-1.3-4.016-1.3-4.016l-1.556-3.984-.998-1.547-2.833.264-2.078 3.392z" fill="#8f4620"/> - <path d="M321.744 195.34s.8 1.712.847 3.556c.042 1.844-.37 3.775-.37 3.775s.173-2.304-.086-3.687c-.26-1.383-.671-2.283-.627-2.678.042-.395.236-.966.236-.966z" fill="#ab6d29"/> - <path d="M325.591 202.547s.161 1.592 0 2.347c-.162.759-1.268-.493-1.946-2.995-.684-2.503-.554-3.062-1.073-4.28-.522-1.22-.834-2.272-.834-2.272l1.419-.196 2.434 7.396zM318.65 207.195s2.707-1.535 3.05-6.158c.164-2.172-1.232-5.696-1.232-5.696s0 3.752-1.006 6.173c-1.006 2.421-1.835 4.035-1.835 4.035s.65-.282.975-.676c.324-.394.778-1.071.778-1.071s.146.693-.097 1.598c-.243.905-.633 1.795-.633 1.795zM316.266 199.096s-.087 1.021-1.223 1.943c-1.137.922-3.179 1.943-3.179 1.943s1.492-1.383 2.042-2.602c.554-1.218.13-2.007.13-2.007s-.192.657-.842 1.152c-.649.495-1.59.591-1.59.591s.078-.624.662-1.282c.12-.135.098-.445.18-.7.32-.987 1.17-2.363 1.17-2.363s.648 1.45 1.297 2.074c.649.626 1.353 1.25 1.353 1.25z" fill="#4d2a15"/> - <path d="M324.73 193.633s.648 1.67.908 3.951c.26 2.284-.043 4.962-.043 4.962s-1.384-2.152-1.73-3.03c-.346-.878-.346-2.195-.65-2.854-.182-.395-.679-.79-1.045-1.044-.24-.167-1.01-.13-1.01-.13s.799-.384.867-1.086c.061-.703 0-1.075 0-1.075s.517.262 1.362.373c.843.109 1.341-.067 1.341-.067zM318.666 203.378s1.478-2.064 1.864-4.61c.39-2.546-.064-3.425-.064-3.425s-.606-.087-1.103-.57c-.498-.483-1.275-1.734-1.275-1.734s.215 1.317-.068 2.92c-.279 1.6-1.752 3.136-1.752 3.136s.782.271 1.473-.13c1.468-.858 1.362-2.48 1.362-2.48s.324.197.28 2.216c-.043 2.02-.717 4.677-.717 4.677z" fill="#1e2121"/> - <path d="M301.188 206.898c-.314-.044.974-2.043 1.85-3.425l2.11-3.326s.227.231.746.198c.519-.034 1.85-.626 2.402-1.647.552-1.02.973-2.14 1.007-2.47.032-.328-.099 1.779.907 2.93 1.007 1.153.975 1.055 1.397.956 0 0-.033 1.45-.423 2.799-.389 1.35-.778 3.294-.778 3.294s.162-2.536-.261-3.262c-.42-.724-.648.067-1.005.989-.356.92-1.135 1.58-1.135 1.58s.583-1.119.973-2.305c.389-1.185.195-1.218.097-1.251-.097-.032-.291-.065-.713.429-.422.493-.845.625-.845.625s.52-.428.682-1.021c.163-.592.65-1.449.941-1.778.292-.329.487-.725.487-.955 0-.231-.065-.725-.26-.725-.194 0-.454.298-1.394 1.186-.942.888-1.105.954-1.267 1.284-.163.329-.293.756-.877 2.602-.584 1.843-.974 2.602-1.07 2.766-.097.163-.52.439-.52.439s.325-1.032.812-2.382c.486-1.35 1.136-3.128.974-3.425-.162-.295-.585-.262-.715 0-.129.264-1.07 1.416-2.011 2.798-.942 1.385-.942 3.097-1.17 3.162 0 0-.627-.021-.941-.065z" fill="#8f4620"/> - <path d="M325.66 192.14c-.019.16.087 1.146-.93 1.492-1.018.347-2.25-.065-2.381-.18-.129-.115-.129-1.417-.129-1.417l3.44.105z" fill="#874f20"/> - <path d="M305.972 195.362s-.185.942-.74 2.107c-.558 1.166-1.481 2.137-1.367 2.285.113.148.633.693 1.444.676.812-.016 1.103-4.858 1.103-4.858l-.142-.173-.298-.037z" fill="#b27129"/> - <path d="M318.437 192.696s-.367 6.416-2.168 6.404c-1.8-.009-2.615-3.243-2.615-3.243s-.15 4.326-2.45 4.326c-1.037 0-2.134-3.34-1.9-3.947 0 0-.426 2.304-1.511 3.157-2.152 1.693-3.524.866-3.597.602-.075-.263 1.817-2.068 2.076-4.59 0 0 .333.112.853-.64s.816-1.579 1.335-1.43c.52.15 3.116-1.054 3.116-1.054l1.36-1.723s.16.558 1.161-.12c1.002-.678 1.336-1.693 1.336-1.693l2.67 2.257.334 1.694z" fill="#dbad6c"/> - <path d="M311.412 186.6s1.615 2.445 2.694 3.805c.063.079.593-.512.593-.512.356.489.554.913.445 1.17-.421.988-1.297 2.338-.585 3.753 0 0-.226-.79.164-1.81.39-1.022.681-1.384.91-1.35.226.032.617 5.86 1.006 5.827.388-.034.908-2.634.908-4.477 0-1.846.368-.33.542.032.173.362 1.762 2.964 3.125 2.568 1.363-.394 1.17-2.799 1.135-3.324-.03-.529-.972-3.72-.972-3.72l-6.103-3.842s-.178.48-.503 1.568c-.326 1.087-3.359.312-3.359.312z" fill="#b27129"/> - <path d="M320.075 186.03s.356.328.944 1.843c.583 1.515.647 6.421-.13 6.387-.78-.033-2.34-.921-2.598-1.58-.26-.659.096-3.094-.422-3.754-.52-.658-1.136-2.304-1.17-2.765-.033-.46.1-1.942.1-1.942l1.361-.495 1.915 2.305z" fill="#8f4620"/> - <path d="M319.64 184.505l2.598 3.863 2.294 3.316s1.156.383 1.126.46c-.032.077-1.332 1.492-3.133.488-.895-.5-.438-2.06-1.572-4.56-1.138-2.503-3.182-3.59-3.182-3.59l.715-.69 1.155.713z" fill="#4d2a15"/> - <path d="M318.208 182.395s2.32 1.532 3.142 3.2c.823 1.67 1.3 2.68 2.296 4.304.993 1.624 2.057 2.129 2.011 2.238-.042.11-.713.264-1.211-.11-.5-.372-1.016-.81-1.428-1.558-.413-.746-1.861-3.467-2.404-4.17-.54-.703-2.27-2.02-2.313-1.887-.043.132.54.527 1.537 2.129.994 1.602 1.232 3.05 1.168 3.073-.066.022-.283-.593-1.148-2.042-.865-1.45-2.747-3.315-2.855-3.051-.109.264.929 1.976 1.449 2.963.519.988 1.386 3.293 1.299 3.293-.087 0-.693-1.296-1.733-2.898-1.037-1.602-1.232-1.405-1.667-1.93-.43-.529-1.357-1.744-1.357-1.744s.927.294 1.834-.299c.91-.593 1.38-1.511 1.38-1.511z" fill="#1e2121"/> - <path d="M312.304 186.67s1.493.343 2.302.244c.814-.098 1.089-.065 1.089-.065s.485.66.485 1.416c0 .757-.52 2.173-.746 2.206-.227.032-.193-1.284-.549-1.745-.358-.462-2.581-2.057-2.581-2.057z" fill="#8f4620"/> - <path d="M313.096 190.585s.483 1.62.112 3.876c-.371 2.258-1.67 4.59-2.003 4.59-.333 0-.223-2.558-.37-3.91a38.812 38.812 0 0 0-.048-.415c-.021-.187-.511 1.706-.53 1.543-.02-.172.432-2.399.416-2.542-.064-.537-.105-.85-.105-.85l1.676-1.99.852-.302z" fill="#b27129"/> - <path d="M310.254 192.27c-.454.56-1.15.407-1.794.609-.604.187-.822 1.108-.822 1.108s.488-.362.715-.264c.227.1.497.078.043 1.196-.454 1.12-2.228 3.019-2.142 3.041.086.023 1.98-1.603 2.596-2.525.617-.92.563-1.47.692-1.8.13-.329.866-.723 1.028-.756.163-.034.52.033.682.69.162.66.422 2.536.552 2.602.13.065.584-1.713.778-2.601.195-.89.187-2.848.187-2.848s-.121-.05-.577-.15c-.453-.098-1.542-.879-1.542-.879s.214 1.825-.396 2.576z" fill="#8f4620"/> - <path d="M318.262 180.795s.616 1.531-.65 2.602c-.375.315-.736.526-1.406.56-.673.032-1.743-.544-1.743-.544l-3.879-1.614-2.044-.641-1.006-.28.145-1.12 3.034.132 3.004 1.151 1.314.429 1.119.197h.845l.698-.197s.322-.132.419-.312c.1-.182.15-.363.15-.363z" fill="#dbad6c"/> - <path d="M318.262 180.795c.127.264-.23 1.12-.52 1.251-.294.132-.814.362-1.981.098-1.168-.262-2.369-1.02-3.667-1.382-1.298-.363-2.272-.692-3.278-.66-1.007.035-.52-.428-.52-.428s2.305-.261 4.318.495c2.014.758 2.88 1.273 3.896 1.25 1.523-.031 1.752-.624 1.752-.624z" fill="#ab6d29"/> - <path d="M307.648 179.576s.454.098.844.032c.39-.066.683-.296.683-.296s.065.527-.195.692c-.26.164-1.038.098-1.169.098-.13 0-.163-.526-.163-.526z" fill="#4d2a15"/> - <path d="M315.275 184.368s1.359 1.33.994 2.48l-2.616-1.203-4.268-1.777-2.312-.69-.285-.364s.439-.41.65-.805c.21-.396.145-.774.145-.774l2.823.378 2.954.907 1.915 1.848z" fill="#dbad6c"/> - <path d="M312.372 186.273s2.435 3.144 1.866 4.18l-5.68-3.587-2.002 3.297-4.672-2.303s3.769-2.905 4.207-3.448c.438-.544.471-.74.471-.74l2.11.41 3.325 1.056.375 1.135z" fill="#dbad6c"/> - <path d="M311.054 181.625s1.99.484 3.268 1.141c1.276.658 3.062.807 3.062.807s-.718.757-2.111.796c-.412.011-1.406-.79-2.057-1.25-.648-.462-2.52-1.01-2.52-1.01l.358-.484z" fill="#ab6d29"/> - <path d="M307.55 180.559s1.428.296 2.305.69c.876.396.941.297 1.168.199.227-.1.26-.199.26-.199s.18.859-.503.859c-.682 0-.957-.232-1.833-.627-.877-.395-1.462 0-1.462 0l.064-.922z" fill="#4d2a15"/> - <path d="M315.443 186.082s1.018.637.821.768c-.192.132-.703.373-1.588.428-.886.056-1.31-.054-1.939-.34-.626-.285-1.015-1.383-2.53-1.975-1.515-.593-1.775-.681-2.813-.945-1.039-.263-1.277-.241-1.277-.241l.953-.396 3.266.66 2.791.811 1.688.813.628.417zM309.957 188.002l.65 2.569-.358 1.549-.876.558-.811-.329-.227-.46s.357-.593 0-1.12c-.356-.526-2.012-1.185-2.012-1.185s.65-1.252 1.395-1.548c.746-.296.388-1.251.388-1.251l1.85 1.217z" fill="#ab6d29"/> - <path d="M306.772 182.768s.519.439 1.581.55c.45.047 1.293.198 2.16.47.291.092 1.004-.303 1.063-.286l-.616.37c.942.271 2.125.683 2.542.873 1.127.51 2.012 1.317 1.947 1.339-.036.011-.642-.352-1.947-.9-.947-.4-2.152-.77-3.03-.946-1.948-.382-3.895-.26-4.305-.394-.412-.13.173-.153.389-.373.216-.22.216-.703.216-.703z" fill="#4d2a15"/> - <path d="M314.04 189.816s.62.658-.03.888c-.65.231-2.42.19-3.262-.7 0 0-.211-.846-.536-1.241-.324-.396-1.623-1.219-2.37-1.68-.745-.46.259-.527.259-.527s2.663 1.021 3.637 1.547c.974.528 2.303 1.713 2.303 1.713z" fill="#ab6d29"/> - <path d="M314.079 189.877s-1.311-1.812-4.954-3.248c-.1-.039 1.24-.23 1.135-.268-.156-.06-1.757.032-1.922-.025a23.971 23.971 0 0 0-.857-.279c-1.915-.581-2.054-.526-2.184-.79-.131-.262-.369.044-.563.373-.196.33-.735 1.043-.693.978.043-.067 1.408-.385 2.488-.12 1.083.26 1.038.657.952 1.074-.086.417-1.406 2.02-1.254 2.064.151.043.908-1.516 1.903-1.295.996.22 1.321.767 1.321.767s-.023-.57-.216-.813c-.195-.24-1.299-1.272-.996-1.272.303 0 1.536.285 3.31 1.185 1.728.88 2.01 1.142 2.53 1.669z" fill="#4d2a15"/> - <path d="M308.136 187.027s2.792.79 2.662 3.754c-.13 2.962-2.294 2.414-2.49 1.339-.192-1.076.261.515 1.04.372.851-.155 1.028-1.008.974-2.15-.052-1.096-.28-1.647-.953-2.283-.67-.637-1.233-1.032-1.233-1.032z" fill="#dbad6c"/> - <path d="M296.06 179.888s.292.225-.503 2.317c-.796 2.09-1.226 2.835-2.433 4.165-2.257 2.485-3.247 2.502-3.003 3.556.244 1.054 1.12.773 1.314.806.195.033 4.252-5.943 4.252-5.943l.892-3.589-.21-1.004-.31-.308z" fill="#6c3f18"/> - <path d="M306.125 175.614s1.168 1.753.8 5.069c-.368 3.314-4.736 6.212-4.736 6.212l-6.384 4.412-2.667-.16s-.413.06-.8-.041c-.42-.11-.813-.544-.904-.544-.173 0-.498-1.12-.498-1.12l.845-1.032 2.315-2.306 1.449-2.085s.65-1.207.736-2.37c.087-1.163-.216-1.756-.216-1.756l.542.834.301 1.756-.238 1.953 1.667-1.119 2.206-.986s.607-.09 1.04-1.318c.431-1.23.795-3.036.802-3.841.009-.808-.09-1.778-.09-1.778s.139-.01.278.074c.137.082.72 1.103.72 1.686 0 .585.374 2.734.374 2.734l1.023-1.038s.754-.946.957-1.439c.203-.494.486-1.273.478-1.797z" fill="#dbad6c"/> - <path d="M306.833 192.2s.438.362.276 1.564c-.162 1.203-1.152 1.861-1.638 1.877l.048-1.678-1.411-1.12-1.51-.46s.097-.083.275-.264c.18-.181 1.738-.823 1.738-.823l2.222.905z" fill="#904720"/> - <path d="M305.728 192.216s.439.427 1.137.246c.697-.18.99-1.302.616-1.745-.373-.444-.21 1.07-.664 1.235-.455.165-.941-1.136-1.558-1.267-.617-.132-1.591.296-1.834.706-.243.413.99.084.99.084l.665.18.487.116.161.445z" fill="#ab6d29"/> - <path d="M296.51 187.614s.83.25 1.727.128c.899-.122 3.106-1.043 3.106-1.043s1.017-.571 1.764-1.295c.744-.724 3.105-2.196 3.364-5.136.258-2.942-.347-4.653-.347-4.653s3.487 3.81.432 8.188c-1.99 2.852-3.72 3.687-3.72 3.687s3.376-.988 3.679-.176c.3.811-.158 2.075-.245 2.272 0 0 1.915.445 2.19 1.416.166.583-2.173-.676-3.941-.247-1.769.428-2.548 1.48-2.548 1.48s-.324-.51-1.899-.524c-1.575-.018-2.288.723-3.181.69-.892-.033-3.698-.632-4.24-1.4 0 0 .67-.835 1.857-2.19.812-1.56 2.001-1.197 2.001-1.197z" fill="#904720"/> - <path d="M303.763 179.72s1.364-1.339 1.817-2.326c.456-.988.542-1.778.542-1.778s.152 1.074-.649 2.282-1.687 2.042-1.687 2.042l-.023-.22z" fill="#ab6d29"/> - <path d="M303.39 176.734s1.114 4.324-.076 6.101c-1.19 1.778-6.37 4.08-6.37 4.08s3.925-2.126 5.16-4.573c1.231-2.449 1.145-4.489 1.145-4.489l.14-1.12z" fill="#904720"/> - <path d="M298.239 187.736s1.656-.034 2.597-.593c.942-.56 2.272-1.745 2.272-1.745s-1.233 1.087-1.59 1.087c-.358 0-.65-.56-.488-.988 0 0-.291.823-1.037 1.382-.747.56-1.754.857-1.754.857zM302.094 182.341s1.395-1.45 1.362-4.478c-.032-3.029-1.168-2.469-1.168-2.469s.941.691.746 2.996c-.193 2.305-.94 3.951-.94 3.951zM303.786 182.639s1.572-.38 2.125-1.302c.55-.92.536-2.682.536-2.682s-.163 1.613-.618 2.205c-.454.593-2.043 1.779-2.043 1.779zM302.871 192.117s.78-1.515 1.82-1.12c1.036.394 1.036 1.22 1.036 1.22s-.421-.659-1.199-.693c-.78-.033-1.657.593-1.657.593zM299.923 189.39s2.303-.562 3.667-.99c1.362-.427 2.922-1.086 2.922-1.086s-1.137 1.416-2.826 2.37c-1.688.955-3.082 1.02-3.082 1.02s3.181-1.381 3.44-1.94c0 0-3.05.822-4.121.625z" fill="#1e2121"/> - <path d="M296.235 185.831a2.64 2.69 67.762 0 1-3.03 4.356" fill="#fff"/> - <path d="M296.098 186.128a2.325 2.369 67.771 0 1-2.723 3.788" fill="#f16e16"/> - <path d="M295.07 187.408a.934.934 0 1 1-.91 1.412"/> - <path d="M295.199 188.597a.298.298 0 1 1-.588-.102.297.297 0 0 1 .344-.247c.163.027.27.185.244.349z" fill="#d5d3ca"/> - <path d="M296.822 184.193s1.536-1.514 1.882-3.513c.347-1.997.136-3.133.136-3.133l.838.872.323 1.517-.54 2.522 1.689-.767c.561-.768 1.448-4.192 1.145-6.299 0 0 .456.922-.151 3.797-.605 2.877-1.1 3.217-3.263 4.401-1.116.61-2.522 1.784-3.789 4.222-.564 1.084-2.089 2.798-2.334 3.049-.04.04 1.083-1.536 1.632-2.71.821-1.76 1.718-2.75 1.718-2.75l.714-1.208z" fill="#ab6d29"/> - <path d="M296.106 185.404s.67-2.02.67-3.117-.714-2.393-.714-2.393.973-.132 1.06 2.26c.086 2.395-.433 2.527-1.016 3.25z" fill="#904720"/> - <path d="M299.191 182.83s.714-1.778.666-2.964c-.05-1.186-1.021-2.322-1.021-2.322s1.2.231 1.298 2.388c.096 2.156-.277 2.174-.943 2.897z" fill="#4d2a15"/> - <path d="M292.106 190.936s-.555-.714-.491-1.273c.065-.559.022-.686 1.4-2.135 1.379-1.449 2.142-2.337 2.483-3.11.341-.776 1.46-2.888.568-4.523 0 0 .617 2.383-.763 4.276-1.38 1.892-2.173 2.88-3.31 3.72-1.135.84-1.249 1.233-1.217 1.712.033.477.146.955.341 1.07.347.205.989.263.989.263z" fill="#ab6d29"/> - <path d="M305.477 195.637s.308.032.503-.33c.194-.361.194-.97-.292-1.58-.488-.609-1.04-.97-1.721-1.17-.682-.196-1.995-.328-1.995-.328s.446.77 1.33 1.267c.432.245 1.168-.065 1.64.395.47.463.535 1.746.535 1.746z" fill="#6c4119"/> - <path d="M305.477 195.637s1.533-.498 1.638-1.975c.065-.915-.13-1.235-.13-1.235s.227.477.844.658l.552-.214s-.908 2.865-2.904 2.766z" fill="#6c4119"/> - <path d="M294.78 195.355s.3.124.868.783c.568.658.836.873.836.873l3.716-.955 1.202-1.186-1.007-1.595h-2.66l-2.955 2.08z" fill="#bf802d"/> - <path d="M303.786 194.09l-.716-.965s-.152-.373-.693-.658c-.54-.285-2.79-.264-2.79-.264l-1.624.33s-.454.416-1.276.24c-.822-.174-2.64-.921-2.64-.921l-1.817-.79s-1.363-.571-1.666-.462c-.304.11-1.428 1.34-1.428 1.34s-.195.66.238.68c.432.022-.65.22-.65.22s-2.824 1.548-3.277 4.314c-.455 2.764 4.64 6.847 6.522 4.773 0 0-2.758-2.042-2.206-3.754.551-1.712 1.817-2.766 3.991-2.895 2.175-.132 2.305-.397 3.246-1.056.941-.658 2.693-1.053 3.992.297 1.297 1.349-4.934 2.636-4.934 2.636l.681.986c.002 0 7.695-2.635 7.046-4.051z" fill="#f9c83a" stroke="#8f4620" stroke-width=".366"/> - <path d="M289.408 200.65s-3.115-.758-2.857-3.622c.261-2.863 2.857-3.917 3.312-4.048.454-.133.357-1.583.877-1.745.518-.166 1.516 0 1.97.427.455.429 1.42.832 1.42.832s-5.516 2.455-5.565 5.62c-.033 2.108.844 2.536.844 2.536z" fill="#fcf3d8"/> - <path d="M303.77 193.785s-.377.23-.479.04c-.583-1.085-1.947-1.374-3.051-1.356-1.406.021-2.36.545-3.312.545s-.692-.152-1.818-.198c-1.125-.043-3.526-1.82-4.068-1.645-.54.176-.757.845-.692 1.174.066.329-.976.35-1.128.107-.152-.242.829-1.794 1.803-1.794 2.617 0 4.561 1.763 5.817 1.763 1.255 0 1.688-.724 3.374-.724 1.69 0 3.511.749 3.555 2.088z" fill="#fdeaaf"/> - <path d="M295.199 195.82s1.251-.248 2.19-.659c.942-.41 2.197-.74 2.197-.74s-1.151.762-1.947 1.142c-.795.377-2.083.586-2.083.586l-.357-.33z" fill="#513625"/> - <path d="M290.788 202.296c-.227.089-1.32.043-3.062-1.12-1.741-1.163-2.195-3.137-2.195-3.137s-.4-1.89 1.406-3.81c1.807-1.92 2.103-1.367 2.2-1.278.082.078-.092.17-.092.17l-1.59 1.296-.79 1.328-.7 1.195.056 1.413.805 1.421 2.492 1.556 1.47.966z" fill="#f9c83a"/> - <path d="M289.835 191.454l-.1-.238v.259c.08-.005.09-.02.1-.021l-.1-.238v.259-.263l-.18.187c.065.063.14.076.18.076v-.263l-.18.187.18-.187h-.258a.26.26 0 0 0 .078.187l.18-.187h-.258.256l-.234-.108c-.006.019-.02.039-.022.108h.256l-.234-.108.203.093-.181-.132-.022.04.203.092-.18-.132.044.033-.042-.035-.003.002.045.033-.042-.035c-.012.015-.071.079-.14.16a4.6 4.6 0 0 0-.368.48c-.118.19-.23.384-.236.629l.008.09c.034.251.204.45.39.537.187.095.385.115.572.116.416-.002.8-.121.814-.124a.265.265 0 0 0 .173-.33.259.259 0 0 0-.323-.175l-.011.004c-.064.019-.376.1-.653.098a.764.764 0 0 1-.339-.06c-.072-.041-.09-.06-.11-.148v-.008a.513.513 0 0 1 .078-.216 3.01 3.01 0 0 1 .337-.475c.058-.069.11-.13.152-.175l.05-.061.026-.03.02-.032.017-.037c.005-.018.015-.042.016-.093a.26.26 0 0 0-.261-.265c-.08.004-.093.018-.102.02a.264.264 0 0 0-.138.345.257.257 0 0 0 .34.14z" fill="#8b5122"/> - <path d="M295.13 194.128s-3.725 1.043-3.82 1.11c-.274.198 1.193-.03 2.345-.066.757-.021 1.34.17 1.34.17s.448-.013.9-.189c1.43-.558 4.436-1.675 4.715-.359.233 1.098-4.152 2.063-4.152 2.063l-.039.433 3.526-.878 1.817-.955.585-.938-1.754-1.25h-2.564l-1.184.33-1.715.53z" fill="#f9c83a"/> - <path d="M289.683 199.515c.275.774.898 1.9 1.6 2.26 0 0 .12.013.077.088-.044.076-.563.397-1.753.087-1.19-.306-3.008-.79-4.112-4.125l.034.735.649 1.307 1.167 1.207 1.83 1.152 1.254.306 1.06-.274.476-.361-1.093-.988-1.34-2.284s-.054.317.15.89z" fill="#8f4620"/> - <path d="M302.094 232.642l-.057 1.209-.666-.066.117-1.514zM297.424 198.197l-1.232-1.386-.8.12 1.219 1.736z" fill="#fcca3d"/> - <path d="M302.033 235.47c-.002 0-.744-.49-1.708-.934-.983-.453-2.365-.657-2.372-.66l-.046.312s.084.013.226.04c.427.078 1.375.277 2.064.595a14.264 14.264 0 0 1 1.668.911l.168-.265zM301.927 232.383c-.002 0-.681-.049-1.407-.049-.502 0-1.022.023-1.378.107-.833.206-1.377.628-1.387.636l.187.25.021-.014c.102-.076.58-.399 1.254-.565.299-.073.813-.101 1.303-.098.355 0 .702.012.96.023.257.012.425.026.425.026l.021-.316zM301.568 229.732c-.003.002-1.72.81-2.517 1.338-.788.522-1.616 1.202-1.618 1.203l.197.248s.203-.169.506-.401c.3-.235.7-.53 1.084-.787.378-.248 1.003-.581 1.526-.846.527-.268.954-.468.954-.468l-.132-.287zM299.915 227.004v.005c0 .06-.014.694-.322 1.183-.075.121-.318.414-.627.764-.466.525-1.09 1.2-1.601 1.742-.508.539-.9.947-.9.947l.224.223c.002-.002.698-.732 1.441-1.528.37-.4.754-.82 1.067-1.172.315-.355.555-.642.66-.805.364-.588.368-1.265.37-1.354v-.005h-.312zM297.759 225.785l.012.057c.025.115.073.4.073.781 0 .39-.052.885-.233 1.397-.21.601-.622 1.461-.978 2.166-.18.354-.345.667-.465.897-.12.225-.195.36-.195.36l.27.158c.004-.005 1.22-2.22 1.661-3.477.195-.552.25-1.081.25-1.5a3.98 3.98 0 0 0-.095-.92l-.3.081zM295.671 225.534s.013.123.026.329c.015.209.029.494.029.81.002.584-.049 1.277-.22 1.753-.188.531-.445 1.228-.655 1.791l-.37.992.291.112s.648-1.72 1.027-2.789c.192-.544.237-1.257.238-1.86 0-.65-.056-1.17-.056-1.172l-.31.034zM294.064 225.526s-.002.53-.036 1.19c-.031.66-.095 1.446-.209 1.935-.241 1.03-.494 2.515-.494 2.515l.307.054s.063-.372.155-.868c.093-.495.217-1.12.335-1.628.244-1.056.251-3.19.252-3.195l-.31-.002zM292.327 225.808s.022.195.043.495c.021.301.043.701.043 1.107 0 .466-.031.94-.115 1.26-.254.964-.404 2.477-.405 2.48l.31.035c0-.002.037-.376.106-.87.069-.492.17-1.105.29-1.564.098-.371.125-.863.125-1.341 0-.836-.086-1.634-.088-1.637l-.31.035zM290.963 225.991s.005.061.005.179c0 .371-.033 1.272-.29 2.198-.174.618-.378 1.348-.542 1.922l-.28.994.299.088s.475-1.68.821-2.921c.27-.967.301-1.893.301-2.281 0-.122-.002-.191-.002-.193l-.312.014zM289.439 226.006l.019.186c.009.123.018.293.018.498.002.582-.08 1.427-.441 2.086-.305.557-.88 1.1-1.379 1.494a9.805 9.805 0 0 1-.644.473l-.198.129-.072.043.158.274c.008-.01 1.72-1.017 2.408-2.262.403-.737.48-1.627.48-2.237 0-.43-.04-.72-.04-.725l-.31.041zM288.502 225.71s-.024.077-.068.209c-.134.398-.473 1.28-.953 1.876-.318.393-.84.809-1.28 1.115-.22.155-.42.282-.564.372-.144.09-.232.14-.232.14l.152.275c.008-.004 1.46-.83 2.164-1.704.7-.869 1.076-2.183 1.079-2.193l-.298-.09zM287.016 224.962l-.087.171c-.085.161-.221.41-.375.65-.154.242-.33.476-.473.601-.204.175-.607.433-.95.635-.345.205-.634.361-.636.363l.147.278c.002-.002.296-.158.646-.368.352-.21.755-.463.995-.67.25-.217.492-.591.684-.918.192-.324.327-.6.327-.6l-.278-.142zM286.292 224.033s-.093.11-.244.283c-.228.258-.583.65-.937.99a6.474 6.474 0 0 1-.51.445c-.157.122-.3.205-.382.23l.088.303c.202-.062.416-.22.656-.42.709-.603 1.564-1.622 1.566-1.626l-.237-.205zM285.934 223.408s-.086.07-.226.179c-.208.16-.538.403-.869.6-.325.2-.668.352-.835.347h-.008v.315h.008c.202-.002.418-.085.647-.197.685-.34 1.475-.998 1.48-.998l-.197-.246zM285.66 222.738c-.002 0-.346.2-.744.404-.2.102-.411.207-.6.288-.185.08-.352.135-.428.142l.03.313c.146-.016.32-.08.52-.164.593-.252 1.374-.71 1.378-.71l-.156-.273zM285.332 221.351l-.032.035c-.074.08-.276.285-.536.465-.26.186-.578.343-.867.343l.005.317c.448-.01.854-.254 1.158-.482.303-.236.502-.465.505-.47l-.232-.208zM285.447 219.172c-.002 0-.282.222-.591.515-.307.295-.642.646-.766.968a.573.573 0 0 1-.091.124l-.068.056-.02.013h-.003l.005.019v-.02h-.005l.005.02v-.02.315c.15-.006.236-.09.31-.163a.783.783 0 0 0 .156-.232c.074-.212.395-.57.692-.848a7.898 7.898 0 0 1 .569-.498l-.193-.25zM296.144 206.38s.702.004 1.145.004l.254-.002h.073l.023-.002h.012l.015-.002.024-.006.037-.018.038-.036.032-.094-.028-.092-.057-.048-.044-.018-.024-.002-.013.316.005-.123-.013.123h.008l.005-.123-.014.123.017-.151-.032.148.015.002.017-.15-.032.147.033-.154-.057.146.024.008.033-.154-.057.147.057-.147-.092.127.035.02.057-.147-.092.127-.035-.036.127-.09h-.156l.029.09.127-.09h-.155l.032-.096.061-.049.06.142-.016-.155-.044.013.061.142-.017-.155.01.104-.002-.104h-.008l.01.104-.002-.104h-.341l-1.144-.002-.003.316zM296.182 205.442l.099.006c.221-.002.442-.09.668-.21.336-.18.683-.44.998-.654.156-.107.305-.202.434-.268a.79.79 0 0 1 .307-.1l-.005-.317c-.198.006-.388.1-.593.22-.309.18-.648.44-.972.65-.322.214-.636.368-.838.362l-.057-.002-.042.314zM296.052 203.941c.233-.03.477-.144.738-.291.39-.22.812-.52 1.198-.764.383-.246.745-.426.94-.423l-.006-.317c-.225.006-.457.106-.71.24-.376.205-.796.503-1.19.755-.393.254-.77.46-1.009.487l.04.313zM295.496 202.547c.374-.2.942-.637 1.531-1.093.587-.455 1.194-.927 1.601-1.176l-.161-.27c-.435.265-1.04.74-1.628 1.195-.584.453-1.16.89-1.486 1.064l.143.28zM294.445 200.955c.746-.526 2.57-1.834 3.255-2.268l-.165-.267c-.701.444-2.52 1.75-3.268 2.276l.178.259zM293.05 199.423c.493-.419 1.19-.886 1.833-1.298.645-.412 1.23-.77 1.524-.988l-.183-.255c-.27.201-.862.563-1.508.975-.647.416-1.35.887-1.865 1.324l.2.242zM291.953 198.479c0-.002.734-.535 1.535-1.102.4-.282.816-.573 1.164-.807.346-.233.632-.414.739-.463l-.13-.286c-.151.071-.428.248-.78.486a113.068 113.068 0 0 0-2.71 1.916l.182.256z" fill="#816c2a"/> - <path d="M294.46 195.385l.19.152a17.342 17.342 0 0 1 2.458 2.476c.961 1.205 1.803 2.69 1.8 4.14 0 .139-.007.278-.023.415-.216 1.888-1.162 3.549-2.476 5.086-1.97 2.303-4.758 4.311-7.063 6.346-1.154 1.016-2.186 2.042-2.937 3.126-.748 1.084-1.216 2.232-1.216 3.472 0 .056.002.113.004.168.04 1.14.409 2.388 1.12 3.394.711 1.006 1.774 1.774 3.175 1.913.23.024.467.033.703.033 1.8-.002 3.76-.575 5.632-.573 1.574.002 3.067.391 4.396 1.845 1.27 1.387 1.66 3.619 1.658 5.767 0 1.539-.197 3.03-.393 4.138-.098.554-.196 1.01-.27 1.328-.073.317-.122.495-.122.495l.3.085c.002-.009.796-2.918.796-6.046-.002-2.185-.384-4.489-1.742-5.982-1.389-1.527-3.003-1.95-4.624-1.945-1.93 0-3.894.574-5.631.572-.229 0-.454-.01-.673-.032-1.302-.132-2.28-.833-2.952-1.78-.671-.948-1.026-2.144-1.063-3.225l-.002-.155c0-1.545.772-2.955 1.974-4.327 1.804-2.059 4.553-4.006 6.943-6.164 2.389-2.158 4.43-4.54 4.771-7.502.017-.15.026-.302.026-.452-.004-1.8-1.158-3.543-2.295-4.848a17.227 17.227 0 0 0-2.278-2.17l-.186.25z" fill="#78732e"/> - <path d="M292.098 198.448l-.374-.322-.321.116.606.495zM293.104 199.4l-.28-.288-.147.082.232.306z" fill="#a8ac71"/> - <path d="M294.506 200.947l-.24-.305-.147.19.244.28zM295.557 202.517l-.175-.314-.28.05.366.396zM296.151 203.995l-.138-.43-.04.075-.025.326zM296.22 205.48l.016-.408-.187-.115.025.56zM296.159 206.433l.04-.462-.121-.082.008.602zM284.014 221.191s.032-.38.14-.708c.103-.33-.301.155-.301.155l-.05.455.211.098z" fill="#78732e"/> - <path d="M283.915 222.136l-.179.081.065.444.098-.14s.016-.248.016-.385z" fill="#fff"/> - <path d="M283.946 223.896l-.025-.433-.13-.05v.705z" fill="#78732e"/> - <path d="M284.06 224.879l-.04-.392-.139.02-.008.372zM284.327 226.296l-.082-.38-.09.091.074.38zM284.7 227.751l-.155-.511-.113.05.154.49z" fill="#fff"/> - <path d="M285.645 229.701l-.212-.317-.199-.033.256.388zM287.085 231.126s-.195-.115-.48-.346c-.283-.23-.113.215-.113.215l.406.215.187-.084zM296.86 231.858s-.228-.156-.39-.23c-.162-.074.089.015.227.338.138.321.163-.108.163-.108z" fill="#a8ac71"/> - <path d="M297.698 232.536s-.187-.238-.31-.32c-.121-.08-.08.246-.08.246l.251.108.139-.034z" fill="#fff"/> - <path d="M297.866 232.924c-.105-.14-.218.207-.218.207l.3.28s.024-.344-.082-.487zM297.911 234.273s.066-.288.05-.47c-.017-.18-.162.064-.162.064l.015.406h.097z" fill="#a8ac71"/> - <path d="M297.439 235.698l.114-.355-.147.004-.089.367zM282.559 183.621s.56-.115.137.52c-.422.633.283-.568.283-.568l-.227-.067-.193.115z" fill="#fff"/> - <path d="M294.62 194.99l.34.346s-.317-.083-.454-.1.114-.247.114-.247z" fill="#f9c83a"/> - <path d="M294.955 195.34s-.48.065-.648.09c-.172.024.194-.19.194-.19l.454.1z" fill="#8f4620"/> - <path d="M300.928 239.096s.408-.043.59-.293c.18-.249-.116.39-.116.39l-.26.099-.214-.196z" fill="#977c2e"/> -</svg> diff --git a/img/flags/4x3/my.svg b/img/flags/4x3/my.svg deleted file mode 100644 index 05800ff..0000000 --- a/img/flags/4x3/my.svg +++ /dev/null @@ -1,15 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="640" height="480" viewBox="0 0 640 480"> - <path d="M0-.05h640v480.1H0z" fill="#cc0001"/> - <path d="M0 445.757h640v34.293H0z" fill="#fff" id="a"/> - <use xlink:href="#a" transform="translate(0 -68.586)" width="100%" height="100%"/> - <use xlink:href="#a" transform="translate(0 -137.17)" width="100%" height="100%"/> - <use xlink:href="#a" transform="translate(0 -205.757)" width="100%" height="100%"/> - <use xlink:href="#a" transform="translate(0 -274.343)" width="100%" height="100%"/> - <use xlink:href="#a" transform="translate(0 -342.93)" width="100%" height="100%"/> - <use xlink:href="#a" transform="translate(0 -411.514)" width="100%" height="100%"/> - <path d="M0-.05h372.655v274.343H0z" fill="#010066"/> - <g fill="#fc0"> - <path d="M149.71 48.531c-49.063 0-88.886 39.69-88.886 88.59 0 48.9 39.823 88.591 88.886 88.591 17.726 0 34.242-5.187 48.113-14.11a78.856 78.856 0 0 1-25.772 4.312c-43.506 0-78.815-35.192-78.815-78.554 0-43.36 35.31-78.553 78.815-78.553 9.615 0 18.825 1.717 27.346 4.863-14.187-9.555-31.288-15.139-49.687-15.139z"/> - <path d="M297.115 183.24l-37.441-19.535 11.07 39.98-25.043-33.444-7.813 40.706-7.684-40.729-25.148 33.369 11.197-39.947-37.503 19.422 27.86-31.253-42.43 1.63 39.004-16.37-38.952-16.486 42.424 1.757-27.76-31.337 37.44 19.535-11.07-39.98 25.043 33.444 7.813-40.706 7.684 40.729 25.148-33.369-11.196 39.947 37.503-19.422-27.86 31.253 42.43-1.63-39.005 16.37 38.953 16.486-42.425-1.757z"/> - </g> -</svg> diff --git a/img/flags/4x3/mz.svg b/img/flags/4x3/mz.svg deleted file mode 100644 index e5458d9..0000000 --- a/img/flags/4x3/mz.svg +++ /dev/null @@ -1,21 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" height="480" width="640" viewBox="0 0 640 480"> - <defs> - <clipPath id="a"> - <path fill-opacity=".67" d="M0 0h682.67v512H0z"/> - </clipPath> - </defs> - <g clip-path="url(#a)" transform="scale(.9375)"> - <path fill-rule="evenodd" fill="#009a00" d="M0 0h768v160H0z"/> - <path fill-rule="evenodd" fill="#fff" d="M0 159.96h768v16.018H0z"/> - <path fill-rule="evenodd" d="M0 175.98h768v160H0z"/> - <path fill-rule="evenodd" fill="#fff" d="M0 335.98h768v16.018H0z"/> - <path fill-rule="evenodd" fill="#ffca00" d="M0 352h768v160H0z"/> - <path d="M0 0v512l336.02-256L0 0z" fill-rule="evenodd" fill="red"/> - <path fill="#ffca00" fill-rule="evenodd" d="M198.532 332.966l-51.23-37.505-51.163 37.514 19.841-60.31-51.49-37.066 63.493.235 19.336-60.424 19.397 60.46 63.442-.29-51.506 37.13z"/> - <path stroke-linejoin="round" d="M102.837 290.905h36.905c2.969 3.331 9.594 4.69 15.904-.04 11.567-6.334 33.945.04 33.945.04l4.407-4.682-10.742-35.252-3.856-4.131s-8.261-4.957-23.96-3.305c-15.698 1.653-21.207-.55-21.207-.55s-13.77 1.652-17.625 3.58c-.424.343-4.407 4.406-4.407 4.406l-9.364 39.934z" fill-rule="evenodd" stroke="#000" stroke-linecap="round" stroke-width="1.1027125" fill="#fff"/> - <path stroke-linejoin="round" d="M110.274 281.819s35.251-4.407 45.442 9.088c-5.755 3.938-10.823 4.263-16.25.276.865-1.44 12.67-13.77 42.689-9.64" stroke="#000" stroke-linecap="round" stroke-width="1.1027125" fill="none"/> - <path d="M148.002 246.567l-.273 38.833M179.399 247.114l6.61 30.846" stroke="#000" stroke-width=".88217pt" fill="none"/> - <path stroke-linejoin="round" d="M116.971 246.63l-3.668 15.906" stroke="#000" stroke-linecap="round" stroke-width="1.1027125" fill="none"/> - <path stroke-linejoin="round" d="M78.868 295.14l8.68 10.175c1.018.608 1.924.57 2.829 0l12.862-15.434 5.402-6.689c.837-.99 1.104-2.096 1.03-3.086l10.327-9.178c.845.059 1.348.154 2.193.211-.998-.258-1.73-.744-.945-1.838l2.315-1.8 1.8 2.314s-2.571 3.344-2.829 3.344h-2.83l-5.402 4.889 2.362 2.087 3.555 9.746 4.374-3.088-2.83-10.032 6.174-6.688-2.316-3.602 1.544-2.058s21.368 13.453 29.6 9.852c.223.08.498-9.595.498-9.595s-22.123-2.315-22.638-6.688c-.515-4.373 4.888-4.888 4.888-4.888l-2.316-3.344.515-1.801 3.859 4.888 8.747-7.46 51.449 58.652c2.809-1.139 3.408-1.826 3.602-4.63-.073-.07-50.42-57.881-50.42-57.881l3.858-4.116c.76-.857 1.027-1.221 1.028-2.573l5.917-5.144c1.78.61 2.914 1.677 3.859 3.086l16.266-13.786c.429.43 1.73.858 2.615.376l26.888-25.816-29.305 20.703-1.033-.772c0-.858 1.064-1.07 0-2.573-1.138-1.366-2.83 1.286-3.086 1.286-.258 0-4.243-1.408-5.116-3.192l-.287 4.736-7.46 6.946-5.66-.258-8.232 7.975-1.028 3.087 1.286 2.573s-4.374 3.859-4.374 3.601c0-.257-.884-1.137-.922-1.25l3.752-3.38.514-2.316-1.251-1.954c-.38.275-5.18 5.299-5.437 4.784-.432-.477-13.894-15.69-13.894-15.69l.77-2.83-8.745-9.519c-3.189-1.1-8.232-1.286-9.261 5.66-.801 1.631-7.46.257-7.46.257l-3.602.772-20.322 28.811 11.319 13.634 23.152-29.326.688-8.308 4.857 5.432c1.62.208 3.163.227 4.631-.514l13.717 15.31-2.284 2.229c.772.858 1.303 1.405 2.075 2.263.772-.514 1.508-1.132 2.28-1.647.258.344.686.996.944 1.339-1.15.625-1.956 1.458-3.105 2.084-1.84-1.2-3.615-2.692-3.48-5.068l-7.718 6.431-.257 1.287-22.895 19.036-2.058.258-.515 5.916 14.92-12.347v-1.802l1.544 1.286 11.576-9.26s.772 1.029.515 1.029-10.29 9.26-10.29 9.26l-.257 1.03-1.801 1.543-1.03-.772-13.89 12.348h-2.059l-7.717 7.718c-1.99.173-3.715.384-5.402 1.543L78.86 295.14z" fill-rule="evenodd" stroke="#000" stroke-linecap="round" stroke-width="1.1027125"/> - </g> -</svg> diff --git a/img/flags/4x3/na.svg b/img/flags/4x3/na.svg deleted file mode 100644 index 215e648..0000000 --- a/img/flags/4x3/na.svg +++ /dev/null @@ -1,18 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" height="480" width="640" viewBox="0 0 640 480"> - <defs> - <clipPath id="a"> - <path fill-opacity=".67" d="M0 0h640v480H0z"/> - </clipPath> - </defs> - <g fill-rule="evenodd" clip-path="url(#a)"> - <path fill="#fff" d="M0 0h640v480H0z"/> - <path d="M-26.374.224l.803 345.543L512.535 0-26.378.222z" fill="#3662a2"/> - <path d="M666.37 479.56l-1.262-359.298-542.793 359.57 544.059-.266z" fill="#38a100"/> - <path d="M-26.028 371.822L-25.57 480l117.421-.15L665.375 95.344l-.646-94.05L548.704.224-26.031 371.82z" fill="#c70000"/> - <g> - <path fill="#ffe700" d="M219.556 171.927l-21.733-13.122-12.575 22.103-12.235-22.246-21.93 12.883.536-25.406-25.413.198 13.167-21.759-22.082-12.531 22.27-12.278-12.837-21.907 25.405.487-.15-25.41 21.734 13.125 12.575-22.106 12.235 22.246 21.93-12.88-.536 25.407 25.41-.201-13.165 21.76 22.08 12.532-22.27 12.278 12.84 21.906-25.405-.488z"/> - <path d="M232.384 112.437c0 25.544-20.87 46.252-46.613 46.252s-46.614-20.708-46.614-46.252 20.87-46.253 46.614-46.253 46.613 20.708 46.613 46.253z" fill="#3662a2"/> - <path d="M222.267 112.437c0 20.156-16.34 36.496-36.496 36.496s-36.497-16.34-36.497-36.496 16.34-36.497 36.497-36.497 36.496 16.34 36.496 36.497z" fill="#ffe700"/> - </g> - </g> -</svg> diff --git a/img/flags/4x3/nc.svg b/img/flags/4x3/nc.svg deleted file mode 100644 index c9abb97..0000000 --- a/img/flags/4x3/nc.svg +++ /dev/null @@ -1,7 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" height="480" width="640" viewBox="0 0 640 480"> - <g fill-rule="evenodd" stroke-width="1pt"> - <path fill="#fff" d="M0 0h640v479.997H0z"/> - <path fill="#00267f" d="M0 0h213.331v479.997H0z"/> - <path fill="#f31830" d="M426.663 0h213.331v479.997H426.663z"/> - </g> -</svg> diff --git a/img/flags/4x3/ne.svg b/img/flags/4x3/ne.svg deleted file mode 100644 index 5698fde..0000000 --- a/img/flags/4x3/ne.svg +++ /dev/null @@ -1,6 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" height="480" width="640" viewBox="0 0 640 480"> - <path fill="#0db02b" d="M0 0h640v480H0z"/> - <path fill="#fff" d="M0 0h640v320H0z"/> - <path fill="#e05206" d="M0 0h640v160H0z"/> - <circle cx="320" cy="240" r="68" fill="#e05206"/> -</svg> diff --git a/img/flags/4x3/nf.svg b/img/flags/4x3/nf.svg deleted file mode 100644 index 30fca25..0000000 --- a/img/flags/4x3/nf.svg +++ /dev/null @@ -1,9 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" height="480" width="640" viewBox="0 0 640 480"> - <g fill-rule="evenodd"> - <path fill="#fff" d="M194.79 0h250.45v480H194.79z"/> - <path fill="#198200" d="M0 0h194.79v480H0zM445.23 0H640v480H445.23z"/> - <path stroke-linejoin="round" d="M313.5 351.29v52.63l21.271.22s-6.798-45.833-3.07-51.973c3.728-6.14 7.236-5.263 7.236-5.263s13.815 4.167 15.35 3.51c1.536-.659-.219-5.264 7.237-4.606 2.412-.877 1.097-5.044 3.29-5.263 2.193-.22 44.516 11.842 53.726.439-2.412-6.36-10.745-.44-12.938-.22-1.974 0-10.306-3.947-15.132 0-4.386-3.289-24.341-5.482-24.341-5.482-2.632-2.632 47.586 1.316 50.437-.658 5.92-5.921-10.964-5.263-13.596-3.29-4.678-2.85-10.545-2.63-14.127-.657-1.718-4.108-18.036-2.339-27.1-3.509-2.901-1.701-2.405-2.669-.439-3.727 18.932.804 37.772 3.26 56.796 2.412 5.142-6.704-6.478-9.218-13.596-3.51-4.179-6.871-12.719-.219-18.42-.876-5.701-.658-3.07-7.675 4.166-6.58 7.237 1.097 20.175-.437 22.588-3.727 2.412-3.289-1.44-6.63-13.377-3.508-4.04-3.949-12.938 0-17.104 1.315-5.543-3.092-18.42-.439-22.806.658-4.293-2.669 22.587-7.017 22.587-7.017 10.376-.184 16.228-1.974 19.516-2.851 15.686-8.408-.224-9.303-8.456-3.192-5.11-3.99-9.963.34-14.569 1.876-4.605 1.535-13.377 2.632-13.377 1.974 0-.658 12.5-8.334 12.5-8.334s15.35-1.096 18.42-1.534c3.07-.44 18.782-8.503-2.631-3.07-7.456.657-11.842.219-14.693.438-16.532-1.71 1.535-3.289 1.535-3.289s23.407-2.152 23.683-3.29c.46-9.126-19.078-4.824-19.297-4.824.057-6.52-18.2.22-18.2 0-3.49-2.056 1.973-4.166 1.973-4.166 4.824-1.17 12.036-1.513 13.923-3.05 0 0 13.626-.131 15.243-3.748-3.342-9.22-28.824 1.636-32.236 3.29-4.605 0 3.07-7.457 3.29-7.676.219-.22 21.051-1.096 30.92-14.473.685-8.143-11.623 4.605-11.623 4.605-.918-10.56-13.377.658-20.613 1.536-7.235.876-7.455-3.29-2.411-3.948 5.043-.658 10.745-.219 13.596-7.894 2.85-7.676 11.403.438 12.938-2.412 1.535-2.851-3.07-5.264-3.07-5.264s6.359-6.578-3.947-6.359c-10.307.22-23.684-1.315-23.684-1.315s10.746-4.167 20.833-3.948c10.088.22 4.605-7.236-5.044-7.236-9.648 0-14.692-3.29-14.692-3.29l16.447-6.14-1.097-4.605s9.649-7.675-3.947-5.921c-13.596 1.755-15.13 1.974-15.13 1.974s-27.193 4.167-27.412 4.167c-.22 0-7.456-2.193-.439-3.948 7.018-1.754 31.797-6.798 35.525-5.482 3.729 1.315-.438-9.21-13.596-10.526-13.157-1.315-21.27 3.29-21.27 3.29s-8.553-3.07-.658-5.702c7.894-2.631 20.394.877 20.394.877s14.035-4.166 2.412-5.92c-11.622-1.755-15.288 1.57-20.613 1.754-2.126-2.654 18.245-3.288 19.516-5.483-2.148-3.948-14.765 0-22.148 0-3.14-1.332-3.343-3.492.22-4.824 7.529-.293 14.598.15 22.128-.143-.22-4.02.02-8.775-.2-12.795-9.55-1.745-20.754 1.26-26.115 1.005 1.434-4.387 22.067-5.512 24.362-6.706 4.775-5.968-20.175 0-20.394 0-4.352-.643-4.07-3.39-1.316-5.044 6.36-.73 20.616.926 19.537-3.386-.826-4.04-9.889-1.877-13.617-1-3.727.877-9.21.22-9.21.22-2.387-3.214 21.49-1.907 21.271-4.386-.311-2.847-15.132-.877-20.175-.658-3.94-2.719 18.931-4.513 19.298-4.824.827-7.29-15.35 0-18.42 0-3.07 0-1.535-4.605-1.535-4.605s6.36-2.851 6.14-3.29c-.22-.438-4.824-1.973-5.263-1.973-.438 0 0-5.044 0-5.044s5.263-3.947 4.825-5.044c-.44-1.096-6.14.877-6.14.877v-4.385s4.166-.439 4.605-2.413c.439-1.973-5.044-2.192-5.044-2.192l-2.193-23.025-1.973 21.49-7.237 1.096s5.044 2.85 5.921 5.701c.877 2.851-6.14 1.974-6.14 1.974s5.701 4.824 6.14 6.579c.438 1.754-7.895 2.193-7.895 2.193s7.018 5.043 7.456 7.894c.44 2.851 0 4.386 0 4.386s-11.622-10.087-19.079-7.237c-3.874 2.025 8.877 2.961 17.324 10.307-.02 1.636-20.517-4.992-21.27-.877.475 1.145 21.886 4.22 23.463 7.018-7.821.292-23.999-1.712-23.464.876-1.634 2.988 15.28 1.292 22.367 3.729 2.078 2.36 1.861 4.356-1.754 4.605-6.832-3.267-22.112-5.707-22.148-1.536.093 1.114 15.796.391 21.49 4.167-7.6 1.73-33.383-3.519-33.546-.963.735 1.193 4.82 6.445 11.836 6.226 7.018-.22 23.244 2.85 24.341 5.044 1.096 2.193-21.052-4.605-29.385-.658-8.332 3.947 23.902 1.535 29.165 6.36 5.264 4.824-10.526-.44-10.526-.44s-21.929-3.07-25.218-1.535c-3.29 1.536-7.017 5.044-7.017 5.044s2.193 4.386 4.386 3.51c2.193-.878-.658 2.63-.658 2.63s30.7 7.456 37.499 14.035c6.798 6.58-39.034-10.306-39.034-10.306s-18.42 6.798 1.096 7.237c-2.246 3.285 1.097 5.262 1.097 5.262s32.455 6.798 35.744 12.06c3.29 5.264-22.148-5.043-27.85-7.893-5.702-2.851-21.93 1.754-21.71 2.85.22 1.097 7.895 2.632 8.114 4.605.22 1.974-9.429 2.632-9.429 4.386 0 1.755 41.007 10.307 51.972 19.517 10.964 9.21-32.236-10.964-32.236-10.964s2.412 3.289 0 4.166c-2.412.877-10.964-12.28-24.999-4.166-2.556 3.338 12.243 5.992 16.008 6.36-1.286 3.305-2.412 4.385 2.851 7.674 5.263 3.29-10.307-4.824-10.307-4.386 0 .439 1.097 5.702 1.097 5.702-4.859-3.947-10.726-5.139-16.228-1.097 0 0-.22 3.948 5.482 6.36-3.113 6.361 3.509 4.386 14.035 10.306-15.644-4.088-16.885 3.51-5.701 5.263s41.884 2.851 49.12 12.28c7.237 9.43-10.28-3.615-12.28-3.947-.438.22-.877 4.825-.877 4.825-4.678-2.708-8.99-5.14-14.585-6.288-.439.877-.326 2.122-.765 2.998-5.078-3.662-9.511-6.222-16.886-6.578l-.877 3.509s-6.14-7.676-18.201 0c-6.735 4.828 25.438 1.754 30.701 7.456 5.263 5.701 1.096 6.578 1.096 6.578-4.386-1.607-8.771-3.216-13.157-4.824 0 0-15.569-2.851-19.955.657-4.386 3.51 64.033 12.061 66.006 21.491 1.33 5.114-16.08-5.369-31.139-9.868l-1.755 5.044s-5.98-6.008-12.719-7.018c-.22 0 1.316 5.922 1.316 5.922s-16.885-7.895-25.437-3.729c-8.553 4.167 29.824 6.36 33.332 10.307 3.508 3.947-11.622-2.631-12.938 0-1.317 2.632-19.956-4.824-19.737-1.316.219 3.51 2.631 5.483 2.631 5.483s38.814 3.727 40.131 8.333c1.316 4.605-21.49-2.632-21.49-2.632s-2.194 3.29-.44 4.824c1.755 1.536-13.157-8.771-11.842-1.973-4.835-1.926-17.324-7.894-15.569-3.289 1.755 4.605 35.306 11.184 35.306 11.184s-14.693 1.096-14.035 4.825c-18.9-11.515-18.42-4.168-17.982-3.948.44.22-24.34-6.14-5.701 3.948 18.64 10.087 10.088 8.332 10.307 8.552.219.219 1.973 5.043 1.534 5.043-.438 0-12.719-6.579-16.885-7.017-4.167-.439-23.903 5.482-2.85 14.692s33.99-2.193 45.611-.877c11.622 1.316 17.104 3.29 16.008 7.018-1.096 3.727-11.873-12.217-23.215 1.576-12.902-2.554-21.658-4.035-14.998 5.446-21.07-7.874-33.934 2.407-7.399 6.574 26.075.768 42.103-6.36 42.103-6.36s4.386 8.114 10.746 2.412c6.36-5.701 6.579 2.193 6.798 2.193.219 0 6.14-2.632 6.14-2.632h1.535z" stroke="#000" stroke-linecap="round" stroke-width=".742" fill="#198200"/> - <path stroke-linejoin="round" d="M316.07 320.16v-3.673s-8.283-1.47-12.322-.643c-2.392-1.37-4.653-3.176-7.512-1.652-.551 1.193 5.234 4.315 7.162 4.315 2.259 1.43 12.672 1.837 12.672 1.653zM315.97 326.13s-8.283-3.028-11.589.46c.54 3.71 9.753 5.509 11.681 4.499 1.929-1.01 0-4.775-.092-4.959zM329.93 327.6v2.571s9.917 1.928 11.662-.183c1.744-2.112-7.897-3.49-11.662-2.388zM329.48 317.35l.366 2.901s8.539 1.928 11.845-2.755c3.305-4.683-7.504.038-12.21-.146zM329.93 307.4v1.928s6.428 1.01 7.897-1.744c1.47-2.755-7.713 0-7.897-.184zM316.51 301.46c-.989-1.41-4.48-4.904-13.846-5.914-6.51-.022 11.758 9.578 13.846 5.914zM329.75 291.69s-.367 2.663-.276 2.663c.092 0 22.038-6.52 27.18-6.06 4.593-1.3 5.51-4.5 5.326-4.5-3.92-2.857-22.864 2.296-32.23 7.897zM330.21 283.89c-.092.46-.276 2.571-.276 2.571s15.518-3.03 19.651-5.968c4.132-2.939-19.19 3.49-19.375 3.397zM329.57 276.27l.001 2.589s10.358-.316 12.487-2.405c1.359-2.09-9.129-.297-12.488-.184zM351.18 298.01s5.38.752 6.39-.809c-.198-2.77-6.39.9-6.39.809zM330.02 266.63c-.092.459.091 5.693.091 5.693s24.885-7.897 26.446-9.367c1.561-1.469 5.025-5.891-26.538 3.674zM329.29 258.73v4.132s10.009-.735 14.601-4.5c4.591-3.764-14.601.46-14.601.368zM317.26 249.36l.643 3.765s-32.965-10.652-32.873-10.652c.091 0-1.66-5.426 32.23 6.887zM317.81 236.14c-.092.367-.092 3.58-.184 3.49-.092-.093-22.864-9.55-23.69-8.724-3.024-7.086 23.875 5.417 23.875 5.234zM328.92 242.02c0 .092.367 3.214.367 3.214s13.958-2.938 14.784-4.315c.827-1.378-15.15 1.193-15.15 1.101zM329.25 249.45c.13.79.404 3.306.404 3.306s5.602-.459 6.428-1.745c.827-1.285-6.832-1.469-6.832-1.561zM328.37 232.47c0 .276.091 3.122.091 3.122s15.335-3.03 16.988-4.5c1.653-1.468-17.355 1.378-17.079 1.378zM328.46 224.02c0 .184-.55 3.122-.184 3.122s18.641-3.122 21.487-5.693c2.848-2.571-21.028 2.847-21.303 2.571zM328.19 209.14v3.214s11.846-2.479 14.05-4.959c2.204-2.48-14.05 1.929-14.05 1.745zM326.17 187.47l.276 4.866s15.886-2.203 18.18-4.866c2.296-2.663-18.547 0-18.456 0zM318.82 151.02v3.03s-7.53-.367-5.694-1.653 5.694-1.102 5.694-1.377zM325.8 155.06l.184 4.132s9.733-.918 10.468-2.48c.734-1.56-10.468-1.652-10.652-1.652zM325.25 161.03s.184 2.571.367 2.571c.184 0 3.857-.275 4.683-1.285.826-1.01-4.683-1.102-5.05-1.286zM316.99 172.78c0 .275.275 3.949.091 3.856s-21.303-6.152-23.232-6.06c-1.927.092-2.479-4.867 23.141 2.204zM318.73 179.67c0 .735.46 4.591-.276 4.408-.734-.184-14.324-4.5-12.947-5.785 1.377-1.286 13.223 1.653 13.223 1.377zM317.54 208.68l.091 3.49s-23.69-7.163-24.517-8.356c-.826-1.194-3.122-6.795 24.426 4.866zM318.45 217.22c0 .092.184 3.306.092 3.306s-32.23-11.294-32.23-11.294-2.571-8.449 32.138 7.988z" stroke="#000" stroke-linecap="round" stroke-width=".792" fill="#fff"/> - <path stroke-linejoin="round" d="M280.26 328.68c0 .11-.11 3.517-.11 3.517s-6.264-1.759-8.242-5.275c3.627-.989 8.462 1.868 8.352 1.758z" stroke="#000" stroke-width=".792" fill="#fff"/> - </g> -</svg> diff --git a/img/flags/4x3/ng.svg b/img/flags/4x3/ng.svg deleted file mode 100644 index 6e7c44c..0000000 --- a/img/flags/4x3/ng.svg +++ /dev/null @@ -1,6 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" height="480" width="640" viewBox="0 0 640 480"> - <g fill-rule="evenodd" stroke-width="1pt"> - <path fill="#fff" d="M0 0h639.98v479.998H0z"/> - <path fill="#008753" d="M426.654 0H639.98v479.998H426.654zM0 0h213.327v479.998H0z"/> - </g> -</svg> diff --git a/img/flags/4x3/ni.svg b/img/flags/4x3/ni.svg deleted file mode 100644 index 74d2be8..0000000 --- a/img/flags/4x3/ni.svg +++ /dev/null @@ -1,133 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" height="480" width="640" viewBox="0 0 640 480"> - <defs> - <linearGradient y2="283.42" x2="500.626" y1="289.055" x1="498.738" gradientUnits="userSpaceOnUse" id="f"> - <stop offset="0" stop-color="#510000"/> - <stop offset=".3" stop-color="#8a0000"/> - <stop offset="1" stop-color="#a00"/> - </linearGradient> - <linearGradient y2="287.449" x2="502.927" y1="291.373" x1="501.444" gradientUnits="userSpaceOnUse" id="g"> - <stop offset="0" stop-color="#ff2a2a"/> - <stop offset="1" stop-color="red"/> - </linearGradient> - <linearGradient y2="317.647" x2="484.764" y1="311.709" x1="484.764" gradientUnits="userSpaceOnUse" id="b"> - <stop offset="0" stop-color="#F5F549"/> - <stop offset="1" stop-color="#97C924"/> - </linearGradient> - <linearGradient id="a"> - <stop offset="0" stop-color="#025"/> - <stop offset=".5" stop-color="#04a"/> - <stop offset="1" stop-color="#025"/> - </linearGradient> - <linearGradient y2="317.486" x2="634.411" y1="317.486" x1="444.509" gradientUnits="userSpaceOnUse" xlink:href="#a" id="h"/> - <clipPath id="c"> - <path d="M500 226.375l-63.702 110.332h127.4z"/> - </clipPath> - <linearGradient xlink:href="#a" id="o" gradientUnits="userSpaceOnUse" x1="444.509" y1="317.486" x2="634.411" y2="317.486"/> - <linearGradient xlink:href="#a" id="p" gradientUnits="userSpaceOnUse" x1="444.509" y1="317.486" x2="634.411" y2="317.486"/> - <linearGradient xlink:href="#a" id="q" gradientUnits="userSpaceOnUse" x1="444.509" y1="317.486" x2="634.411" y2="317.486"/> - <linearGradient xlink:href="#a" id="r" gradientUnits="userSpaceOnUse" x1="444.509" y1="317.486" x2="634.411" y2="317.486"/> - <linearGradient xlink:href="#b" id="u" gradientUnits="userSpaceOnUse" x1="484.764" y1="311.709" x2="484.764" y2="317.647"/> - <linearGradient xlink:href="#a" id="x" gradientTransform="scale(4.45715 .22436)" x1="98.901" y1="1440.155" x2="124.971" y2="1440.155" gradientUnits="userSpaceOnUse"/> - <linearGradient xlink:href="#a" id="j" gradientUnits="userSpaceOnUse" x1="444.509" y1="317.486" x2="634.411" y2="317.486"/> - <linearGradient xlink:href="#a" id="l" gradientUnits="userSpaceOnUse" x1="444.509" y1="317.486" x2="634.411" y2="317.486"/> - <linearGradient xlink:href="#a" id="m" gradientUnits="userSpaceOnUse" x1="444.509" y1="317.486" x2="634.411" y2="317.486"/> - <linearGradient xlink:href="#a" id="i" gradientUnits="userSpaceOnUse" x1="444.509" y1="317.486" x2="634.411" y2="317.486"/> - <linearGradient xlink:href="#b" id="s" gradientUnits="userSpaceOnUse" x1="484.764" y1="311.709" x2="484.764" y2="317.647"/> - <linearGradient xlink:href="#b" id="v" gradientUnits="userSpaceOnUse" x1="484.764" y1="311.709" x2="484.764" y2="317.647"/> - <linearGradient xlink:href="#a" id="y" gradientUnits="userSpaceOnUse" gradientTransform="scale(9.12405 .1096)" x1="47.855" y1="3054.214" x2="61.745" y2="3054.214"/> - </defs> - <path fill="#0067c6" d="M0 0h640v480H0z"/> - <path fill="#fff" d="M0 160h640v160H0z"/> - <path d="M248 239.463l7.983.534c.027-.39.05-.778.08-1.167l-3.14-.21c.078-1.282.185-2.563.242-3.847 1.11-.803 2.222-1.605 3.33-2.414l.098-1.48-3.51 2.55c-.12-.83-.578-1.686-1.413-1.974-.73-.265-1.625-.31-2.258.21-.803.59-.947 1.648-1.05 2.567-.14 1.742-.24 3.488-.362 5.23zm1.216-1.09c.096-1.31.155-2.623.28-3.93.1-.647.218-1.394.784-1.806.51-.34 1.267-.087 1.477.49.417 1 .232 2.1.178 3.145l-.15 2.273-2.57-.172zm-.176-11.168c2.596.606 5.193 1.212 7.79 1.82l1.77-7.584c-.37-.085-.738-.17-1.107-.257l-1.506 6.45-2.37-.554c.45-1.938.903-3.876 1.356-5.813l-1.1-.258-1.36 5.812-2.097-.49 1.45-6.208-1.113-.26c-.57 2.447-1.142 4.894-1.714 7.34zm2.806-10.462l7.556 2.628.383-1.103c-.99-.344-1.98-.69-2.972-1.033.388-1.143.813-2.274 1.17-3.427.256-.942.453-2.043-.1-2.918-.45-.648-1.25-1.063-2.04-1.038-.87.037-1.58.678-1.967 1.42-.57 1.074-.89 2.255-1.307 3.392l-.724 2.08zm1.46-.73c.404-1.133.77-2.28 1.207-3.403.273-.6.605-1.31 1.294-1.5.567-.13 1.16.306 1.21.887.14 1.068-.328 2.077-.656 3.07l-.623 1.792-2.43-.846zm2.714-8.947c1.424.827 2.836 1.674 4.27 2.486.807.435 1.832.683 2.677.196 1.153-.638 1.875-1.816 2.44-2.965.447-.968.77-2.17.202-3.16-.613-.99-1.726-1.443-2.676-2.033l-2.766-1.618c-.195.335-.39.67-.587 1.004 1.357.798 2.722 1.58 4.07 2.39.646.392 1.18 1.103 1.07 1.894-.128.942-.667 1.77-1.204 2.53-.442.618-1.186 1.116-1.975.95-.822-.16-1.49-.697-2.214-1.087l-2.72-1.59c-.195.334-.39.67-.587 1.003zm5.762-9.416l6.353 4.86c.986-1.286 1.968-2.577 2.96-3.858.57-.817 1.095-1.88.71-2.883-.35-.8-1.173-1.417-2.054-1.458-.397-.054-.916.247-1.13.38.225-.853-.473-1.655-1.26-1.88-.944-.337-1.903.27-2.528.942-.737.8-1.352 1.703-2.025 2.555l-1.025 1.34zm1.61-.24c.745-.95 1.448-1.936 2.227-2.86.362-.403.943-.86 1.505-.564.512.222.638.868.394 1.333-.39.83-1.03 1.505-1.565 2.243-.29.38-.58.76-.872 1.14-.564-.43-1.127-.86-1.69-1.292zm2.59 1.982c.77-.987 1.498-2.01 2.312-2.962.415-.435.938-.983 1.597-.858.565.13.975.74.78 1.31-.317 1.046-1.1 1.848-1.73 2.715l-.994 1.298-1.964-1.503zm3.003-10.228l5.494 5.815 4.705-4.447-.78-.826-3.765 3.556-.097.09-.07-.072-4.643-4.915zm7.043-6.162l4.876 6.342.952-.732-4.877-6.342zm7.165-4.866c-.79.492-1.428 1.068-1.918 1.74-.49.67-.753 1.37-.792 2.098-.038.73.157 1.436.587 2.126a4.116 4.116 0 0 0 1.58 1.475 3.59 3.59 0 0 0 2.14.394c.774-.087 1.646-.43 2.617-1.034.932-.58 1.593-1.25 2-2.02.39-.738.5-1.522.333-2.357l-1.106.432c.29 1.6-.742 2.367-1.896 3.1-1.807 1.1-3.568 1.02-4.647-.632-1.118-1.862.105-3.4 1.642-4.4 1.09-.68 2.167-1.146 3.19-.494l.866-.772a3.195 3.195 0 0 0-2.044-.56c-.81.046-1.655.343-2.55.902zm9.453-4.718l-.837 8.965 1.245-.502.252-2.78h.004l4.048-1.633 2.11 1.828 1.245-.503-6.82-5.876-1.247.502zm1.095.92l2.66 2.302-2.978 1.2.32-3.503zm16.439-5.865l.5 7.984c1.444-.097 2.89-.165 4.33-.285 1.135-.13 2.352-.424 3.128-1.327 1-1.11 1.143-2.77.705-4.15-.368-1.217-1.462-2.137-2.7-2.37-1.22-.235-2.464-.05-3.692.006l-2.27.143zm1.232 1.062c1.15-.06 2.297-.173 3.448-.18a2.94 2.94 0 0 1 1.83.56c.8.548 1.27 1.534 1.166 2.5-.057 1.113-.875 2.136-1.956 2.417-.618.16-1.26.205-1.893.275l-2.238.14c-.12-1.904-.24-3.808-.358-5.712zM321.33 168c-.15 2.662-.303 5.325-.455 7.987l7.773.444.065-1.133c-2.204-.126-4.408-.253-6.613-.378l.14-2.432c1.985.112 3.972.227 5.958.34l.065-1.13c-1.987-.112-3.973-.227-5.96-.34.04-.717.083-1.434.123-2.15 2.122.12 4.244.242 6.365.363l.067-1.14-7.526-.43zm20.89 3.333l-2.894 7.458 1.03.4 2.293-5.913.118-.307.128.34 2.758 7.936 1.348.522 2.893-7.458-1.032-.4-2.292 5.91-.117.303-.126-.338-2.763-7.93zm10.746 4.617l-3.636 7.125-1.07-.545 3.638-7.126zm6.034 3.535c-.776-.513-1.565-.852-2.38-1.017-.814-.165-1.56-.114-2.238.156-.68.27-1.24.74-1.687 1.42a4.116 4.116 0 0 0-.68 2.052c-.046.743.13 1.44.534 2.11.4.666 1.074 1.315 2.03 1.946.916.605 1.8.926 2.67.975a3.446 3.446 0 0 0 2.28-.68l-.855-.826c-1.332.932-2.46.315-3.608-.43-1.753-1.182-2.415-2.816-1.365-4.485 1.226-1.794 3.134-1.325 4.684-.344 1.074.708 1.945 1.49 1.78 2.693l1.063.466c.124-.715.014-1.41-.346-2.093-.378-.717-1.002-1.36-1.883-1.942zm7.618 5.745l-8.363 3.336 1.014.88 2.59-1.04.003.004 3.295 2.86-.667 2.71 1.015.88 2.127-8.75-1.015-.88zm-.32 1.393l-.84 3.417-2.424-2.106 3.264-1.31zm6.362 4.167l-6.173 5.09.743.9 2.428-2c.823.986 1.624 1.992 2.464 2.964-.257 1.347-.515 2.693-.765 4.04l.942 1.144c.267-1.422.536-2.843.804-4.264.69.567 1.702.85 2.528.402.71-.336 1.336-.982 1.373-1.805.086-1.102-.7-1.996-1.33-2.814-1.004-1.22-2.01-2.438-3.015-3.657zm-.136 1.626c.864 1.067 1.77 2.1 2.597 3.2.38.565.855 1.36.42 2.02-.36.567-1.15.517-1.632.15-.98-.66-1.627-1.67-2.392-2.547l-.978-1.187 1.986-1.637zm9.494 11.104l-8.994.413.67 1.164 2.788-.135.002.005 2.177 3.78-1.517 2.343.67 1.165 4.875-7.57-.67-1.164zm-.758 1.212l-1.912 2.953-1.602-2.783 3.514-.17zm5.89 9.378c-.5-1.357-1.288-2.747-2.623-3.426-1.485-.746-3.462-.383-4.515.925-.918 1.086-.965 2.624-.72 3.96.29 1.535.993 2.996 2.05 4.15-.2.07-.398.142-.597.214l.383 1.065c1.25-.45 2.498-.9 3.747-1.348-.486-1.35-.97-2.698-1.457-4.047-.29.104-.577.208-.866.31l1.072 2.984c-.423.15-.846.303-1.27.455-1.12-.962-1.744-2.384-2.07-3.798-.24-1.062-.25-2.334.556-3.17.924-.96 2.56-1.258 3.67-.44 1.093.802 1.71 2.1 2.022 3.388.214.848.18 1.856-.464 2.518-.18.135.105.323.154.484l.306.505a2.823 2.823 0 0 0 1.074-2.237c.023-.852-.165-1.697-.45-2.495zm2.3 6.248l-4.475.87c-.83.16-1.453.425-1.868.774-.414.35-.68.842-.807 1.497-.126.647-.108 1.442.077 2.408a.197.197 0 0 1 .004.022c.19.966.472 1.71.833 2.262.364.56.794.917 1.31 1.085.515.17 1.19.18 2.02.018l4.475-.87-.222-1.142-4.366.85c-1.96.38-2.62-.65-2.957-2.415l-.004-.022c-.35-1.763-.125-2.966 1.835-3.348l4.366-.85-.22-1.14zm2.453 13.616l-8.278-3.54.097 1.34 2.57 1.09v.005l.314 4.35-2.385 1.45.098 1.34 7.682-4.697-.097-1.34zm-1.21.76l-3.005 1.828-.232-3.203 3.237 1.375zM254.2 254.668l-1.16.306 1.284 4.874 1.16-.306zm131.626 0l1.16.305-1.282 4.874-1.16-.305zM266.574 275.19l-8.945 1.03.747 1.116 2.772-.327.002.004 2.43 3.623-1.352 2.44.748 1.116 4.344-7.886-.748-1.116zm-.674 1.262l-1.704 3.077-1.79-2.668 3.494-.41zm4.098 3.626l-5.702 5.332.76.814 4.806-4.493-2.52 6.937.873.934 6.89-2.09-4.72 4.412.762.814 5.7-5.332-1.155-1.236-7 2.09 2.62-6.774zm8.304 8.472l-4.812 6.392 6.22 4.684.684-.908-5.29-3.985 1.464-1.945 4.768 3.59.68-.903-4.768-3.59 1.296-1.722c1.698 1.28 3.395 2.557 5.093 3.835l.687-.912-6.022-4.535zm7.828 5.73l-3.768 7.058 1.03.55 1.482-2.775c1.137.6 2.26 1.224 3.408 1.803.276 1.343.55 2.685.832 4.027l1.307.698-.88-4.247c.856.26 1.898.138 2.49-.592.505-.563.847-1.354.606-2.11-.28-1.043-1.307-1.59-2.174-2.094-1.442-.776-2.89-1.543-4.332-2.316zm.493 1.556c1.206.658 2.44 1.268 3.62 1.97.548.368 1.243.874 1.174 1.62-.06.654-.766 1.003-1.363.864-1.167-.193-2.152-.89-3.192-1.41l-1.45-.773 1.21-2.27zm8.543 3.169l-3.023 7.407 1.11.453 3.024-7.407zm7.214 2.492c-.884-.294-1.734-.416-2.564-.364-.828.052-1.534.295-2.12.732-.585.436-1.004 1.037-1.26 1.81a4.116 4.116 0 0 0-.126 2.158c.15.73.502 1.356 1.065 1.898.56.54 1.38.993 2.465 1.353 1.043.346 1.98.427 2.832.248a3.445 3.445 0 0 0 2.027-1.25l-1.042-.573c-1.044 1.245-2.294.942-3.596.522-2-.69-3.063-2.094-2.482-3.98.718-2.05 2.683-2.092 4.433-1.547 1.22.404 2.266.934 2.42 2.137l1.146.174a3.192 3.192 0 0 0-.877-1.93c-.55-.594-1.32-1.054-2.323-1.387zm8.043 1.801l-5.232 7.327 1.33.192 1.616-2.275h.006l4.318.625.904 2.64 1.33.193-2.94-8.51-1.33-.192zm.484 1.344l1.14 3.328-3.177-.46 2.037-2.868zm18.269-1.288c-.914.177-1.715.486-2.414.938-.697.45-1.194 1.008-1.49 1.675-.297.668-.37 1.397-.215 2.195.142.732.46 1.38.948 1.944.487.563 1.102.938 1.857 1.135.752.196 1.69.19 2.812-.027 1.08-.208 1.935-.596 2.59-1.17a3.445 3.445 0 0 0 1.157-2.08l-1.188.007c-.302 1.597-1.54 1.945-2.88 2.215-2.08.38-3.696-.326-4.112-2.254-.377-2.14 1.315-3.137 3.11-3.52 1.26-.244 2.432-.293 3.154.682l1.085-.41a3.183 3.183 0 0 0-1.71-1.255c-.77-.248-1.667-.273-2.704-.073zm5.342-.946c.76 2.557 1.517 5.113 2.276 7.67 2.488-.74 4.976-1.477 7.465-2.215-.11-.363-.217-.727-.325-1.09l-6.35 1.884c-.23-.778-.46-1.556-.692-2.335 1.907-.566 3.815-1.13 5.722-1.697l-.322-1.085-5.722 1.698-.612-2.065 6.112-1.814-.325-1.096-7.227 2.144zm8.655-2.72c1.12 2.42 2.24 4.84 3.358 7.26l1.003-.462-2.8-6.056c2.588 1.174 5.163 2.383 7.746 3.57.172.15.344.05.516-.042l1.007-.465c-1.12-2.42-2.24-4.84-3.358-7.26l-1.005.463 2.798 6.048c-2.66-1.205-5.303-2.443-7.956-3.66-.437.2-.873.402-1.31.604zm8.785-4.126l.626.952 2.858-1.88.108-.072.054.082 3.717 5.648.973-.64-3.718-5.647-.054-.082.112-.073 2.87-1.89-.625-.952zm8.049-5.512l5.422 5.883c.286-.263.572-.528.86-.79l-2.134-2.315c.94-.876 1.9-1.73 2.826-2.623 1.358.182 2.717.366 4.076.542l1.09-1.004-4.3-.57c.526-.72.754-1.745.26-2.546-.374-.69-1.053-1.28-1.877-1.27-1.105-.027-1.955.808-2.737 1.48l-3.486 3.213zm1.632.046c1.017-.92 2-1.884 3.05-2.768.545-.41 1.313-.93 1.997-.53.584.33.578 1.12.24 1.62-.606 1.017-1.58 1.72-2.416 2.532l-1.127 1.04c-.58-.632-1.163-1.263-1.744-1.894zm7.675-9.362l3.58 8.262.85-1.04-1.117-2.557.003-.005 2.763-3.378 2.728.588.852-1.04-8.807-1.87-.85 1.04zm1.402.28l3.44.738-2.034 2.486-1.406-3.225zm2.082-4.812l6.713 4.353 3.523-5.432-.954-.62-2.818 4.347-.072.11-.085-.054-5.674-3.68z" fill="#c8a400"/> - <g clip-path="url(#c)" transform="matrix(.8 0 0 .8 -80 0)"> - <path d="M500 226.408l-31.478 54.535-15.42 26.702H546.9l-14.715-25.484L500 226.41z" fill="#fff"/> - <g id="e"> - <g id="d"> - <path d="M500 226.408l-2.356 4.082L500 285.467l2.358-54.977z" opacity=".62" fill="#17c0eb" stroke="#17c0eb" stroke-width=".129"/> - <path d="M500 277.475l-.133.003.134 3.11.135-3.11c-.045 0-.09-.003-.134-.003z" fill="#fff"/> - </g> - <use height="100%" width="100%" xlink:href="#d" transform="rotate(72 500 285.467)"/> - <use height="100%" width="100%" xlink:href="#d" transform="rotate(144 500 285.467)"/> - <use height="100%" width="100%" xlink:href="#d" transform="rotate(-144 500 285.467)"/> - <use height="100%" width="100%" xlink:href="#d" transform="rotate(-72 500 285.467)"/> - </g> - <use height="100%" width="100%" xlink:href="#e" transform="rotate(8 500 285.467)"/> - <use height="100%" width="100%" xlink:href="#e" transform="rotate(16 500 285.467)"/> - <use height="100%" width="100%" xlink:href="#e" transform="rotate(24 500 285.467)"/> - <use height="100%" width="100%" xlink:href="#e" transform="rotate(32 500 285.467)"/> - <use height="100%" width="100%" xlink:href="#e" transform="rotate(40 500 285.467)"/> - <use height="100%" width="100%" xlink:href="#e" transform="rotate(48 500 285.467)"/> - <use height="100%" width="100%" xlink:href="#e" transform="rotate(56 500 285.467)"/> - <use height="100%" width="100%" xlink:href="#e" transform="rotate(64 500 285.467)"/> - <path d="M500 265.844a44.236 44.236 0 0 0-28.97 10.75L456.376 302c-.5 2.67-.75 5.434-.75 8.25h5.03c0-21.726 17.62-39.344 39.345-39.344 21.727 0 39.344 17.618 39.344 39.344h5.03c0-2.813-.248-5.582-.75-8.25l-14.655-25.406a44.25 44.25 0 0 0-28.97-10.75z" fill="red"/> - <path d="M500 266.656c-11.764 0-22.44 4.675-30.28 12.25l-12.032 20.844a43.596 43.596 0 0 0-1.28 10.5h4.25c0-21.726 17.616-39.344 39.342-39.344 21.727 0 39.344 17.618 39.344 39.344h4.25a43.86 43.86 0 0 0-1.28-10.53l-12.032-20.814c-7.84-7.574-18.518-12.25-30.282-12.25z" fill="#f60"/> - <path d="M500 267.47c-12.702 0-24.1 5.52-31.938 14.31l-8.718 15.095a42.733 42.733 0 0 0-2.125 13.375h3.436c0-21.726 17.618-39.344 39.344-39.344 21.726 0 39.344 17.618 39.344 39.344h3.437c0-4.673-.74-9.165-2.124-13.375l-8.72-15.095c-7.835-8.788-19.236-14.312-31.937-14.312z" fill="#ff0"/> - <path d="M500 268.25c-14.55 0-27.372 7.414-34.906 18.656l-2.813 4.875a41.818 41.818 0 0 0-4.28 18.47h2.656c0-21.726 17.617-39.344 39.343-39.344 21.726 0 39.343 17.618 39.343 39.344H542a41.82 41.82 0 0 0-4.282-18.437l-2.844-4.937C527.338 275.65 514.537 268.25 500 268.25z" fill="#0f0"/> - <path d="M500 269.062c-22.747 0-41.188 18.44-41.188 41.188h1.844c0-21.727 17.618-39.344 39.344-39.344 21.726 0 39.344 17.617 39.344 39.344h1.844c0-22.748-18.44-41.188-41.188-41.188z" fill="#0cf"/> - <path d="M500 269.844c-22.306 0-40.375 18.1-40.375 40.406h1.344c0-21.56 17.47-39.03 39.03-39.03 21.56 0 39.03 17.47 39.03 39.03h1.376c0-22.306-18.1-40.406-40.406-40.406z" fill="#00f"/> - <path d="M500 270.657c-21.863 0-39.588 17.725-39.588 39.59 0 .244.003.49.007.732h.8c-.005-.245-.007-.49-.007-.734 0-21.422 17.366-38.788 38.788-38.788 21.423 0 38.79 17.366 38.79 38.788 0 .245-.003.49-.008.733h.797c.003-.244.006-.49.006-.734 0-21.864-17.72-39.59-39.585-39.59z" fill="purple"/> - <g> - <path d="M500.395 288.134c-.644-.124-1.226-.484-1.775-.61-.756.725-.835 1.457-.73 2.08.26.14.31.353.877.86s.496.773.462 1.965c-.016.502.07 1.58.578 1.68.548.11.932-.345 1.09-1.16.152-.79.417-1.215.698-1.7.306-1.853-.193-2.51-1.2-3.116z" fill="#510000"/> - <path d="M497.168 283.524c-.595.015-1.528 1.012-1.943.475-.24-.31-.28-.903-.037-1.4.56-1.152 1.124-1.717 2.167-2.33 2.378-1.402 3.89-.952 5.074 1.062 1.097 1.772 2.15 3.73 2.245 5.37.03.502.283 1.41-.156 1.86-1.35 1.39-4.597-1.434-6.498-.987-.64.15-1.377.617-1.98.218-.47-.31-.078-.997.272-1.294.612-.52 1.5-2.366 1.38-3.166-.067-.446-.08.18-.526.19z" fill="red"/> - <path d="M496.927 282.548c-1.083.445-.966 1.076-1.51 1.59.154.058.766.31 1.364-.3.26-.215.55-.294.678-.363-.305.22-.523.554-.684.684-.404.328-1.034 1.082-1.34 1.845-.307.764-.43 1.673-.376 1.782.056.11.426.78 1.566 1.232 2.03.806 2.417 2.438 4.477 2.438 1.615 0 1.356-1.056 2.647-.832 1.12.194 1.714-.696.636-1.232-1.37-.468-4.092-.192-5.372.033-.413-4.083-.055-2.65-.15-4.405-.098-1.755-.624-1.86.07-3.28-.577.87-1.276.733-2.003.806z" fill="url(#f)"/> - <path d="M500.938 279.795c-.04.223-.077.516-.056.6.087.34.175.693.278.994.115.335.162.578.24.927.082.36.4.5.694.722.37.28.084 1.036.315 1.067.183.025.487-1.07.49-1.246 0-.236-.002-.426-.038-.646a15.3 15.3 0 0 0-.426-.872c-.002-.004-.007-.006-.01-.01a3.652 3.652 0 0 0-.193-.327 4.204 4.204 0 0 0-.786-.863c-.02-.015-.037-.032-.056-.047a3.936 3.936 0 0 0-.258-.187c-.062-.04-.13-.076-.194-.113z" fill="#ff2a2a"/> - <path d="M501.25 287.398c-.72-.188-1.427-.543-2.038-.725-1.2-.36-2.48-1.134-3.366-.814-.317.14-.29.455-.39.91-.042.532-.596 1.318-.136 1.06.685-.382 2.49.734 3.095 1.107.287.177.892.524 1.082 1.022.19.497.092 1.755.04 2.295-.052.566.12 1.835.687 1.987.61.163 1.078-.323 1.316-1.23.23-.88.405-1.387.757-1.915s.756-.756 1.32-.863c.564-.106 1.382.462 1.382-.203 0-.436-.385-.854-.22-1.453.127-.472-.403-.378-.843-.572-1.036-.32-1.97-.42-2.688-.607z" fill="url(#g)"/> - <path d="M498.363 288.902c-.327-.178-2.315-1.478-3.043-1.07-.23.127-.317-.017-.32-.258-.004-.24.11-.594.184-.866.074-.273.195-.792.516-1.062.687-.58 2.27.575 3.108.886-.072.436-.47 2.356-.445 2.37z" fill="#910000"/> - <path d="M501.763 291.36c.916-1.602 1.508-1.396 2.613-1.373.37.008.477-.33.393-.667-.28.624-1.663-.07-2.416.263-1.573.692-1.28 3.77-2.027 4.07.776.65 1.124-1.746 1.436-2.292z" fill="#ff3a3a"/> - </g> - <g fill="url(#h)"> - <path d="M453.103 307.645l-9.955 17.237h113.708l-9.956-17.237h-93.797z" fill="#fff"/> - <g id="n" fill="url(#i)"> - <path id="k" d="M449.705 321.364c-1.658 0-3.197.167-4.71.353l-.486.846c2.432-.216 4.696-.65 7.14-.71 3.292.08 6.282.83 9.785.83 1.518.015 3.027-.03 4.526 0 3.5 0 6.49-.75 9.784-.83 3.295.08 6.304.83 9.803.83 1.518.005 3.178-.023 4.53 0 3.5 0 6.474-.75 9.765-.83 3.293.08 6.27.83 9.77.83 1.53.015 3.032-.03 4.542 0 3.5 0 6.49-.75 9.787-.83 3.297.08 6.282.83 9.783.83 1.516.015 3.03-.03 4.53 0 3.5 0 6.475-.75 9.765-.83 2.55.063 4.92.52 7.486.725l-.515-.893c-1.404-.168-2.836-.32-4.37-.32-1.528-.022-3.035.03-4.546 0-3.5 0-6.474.747-9.765.828-3.297-.08-6.284-.83-9.787-.83-1.513-.02-3.03.032-4.526 0-3.5 0-6.493.75-9.786.83-3.293-.08-6.283-.83-9.782-.83-1.522-.02-3.042.032-4.547 0-3.498 0-6.475.75-9.764.83-3.294-.08-6.27-.83-9.77-.83-1.52-.02-3.025.032-4.525 0-3.5 0-6.49.75-9.785.83-3.294-.08-6.283-.83-9.783-.83-1.52-.02-3.043.032-4.547 0z" fill="url(#j)"/> - <use height="100%" width="100%" xlink:href="#k" y="-1.113" fill="url(#l)"/> - <use height="100%" width="100%" xlink:href="#k" y="-2.23" fill="url(#m)"/> - </g> - <use height="100%" width="100%" xlink:href="#n" y="-3.344" fill="url(#o)"/> - <use height="100%" width="100%" xlink:href="#n" y="-6.691" fill="url(#p)"/> - <path d="M453.23 307.458l-.123.215h93.79l-.124-.215H453.23zm-.22.377l-.126.22h94.235l-.128-.22h-93.98zm-.2.346l-.204.357h94.792l-.205-.356H452.81zm-.317.552l-.25.433h95.518l-.25-.433h-95.017zm-.4.69l-.25.435h96.317l-.25-.434h-95.816zm-.398.692l-.247.43h97.107l-.247-.43h-96.613zm-.398.692l-.25.43h97.91l-.25-.43h-97.41zm-.43.744l-.304.53h98.877l-.303-.53h-98.27z" fill="url(#q)"/> - <path d="M457.357 312.287c3.45.662 3.782 0 3.782 0zm81.503 0s.33.662 3.782 0z" fill="url(#r)"/> - </g> - <g fill="#ccd11e"> - <g id="t"> - <path d="M530.63 297.043c-1.708 0-2.23.862-2.23.862-2.737 10.576-11.808 21.333-22.6 21.333h-8.082v10.768c0 .003.012 0 .017 0h61.498l-6.187-10.954c-9.707-1.45-17.64-11.373-20.166-21.147 0 0-.54-.862-2.25-.862z" fill="url(#s)"/> - <path d="M530.63 297.465c-.783 0-1.26.18-1.537.355-.264.165-.315.276-.32.288 0 .007-.016.01-.02.016-1.4 5.323-4.35 10.67-8.333 14.707-4.012 4.07-9.07 6.83-14.605 6.83h-7.674v9.923h60.856l-5.68-10.058c-4.687-.612-8.973-3.163-12.458-6.694-3.986-4.037-6.932-9.383-8.334-14.706l-.017-.016c-.007-.012-.07-.105-.338-.27-.284-.177-.755-.373-1.54-.373z" fill="#97c924"/> - <path d="M530.63 297.465c.147 0 .28.02.406.034.024 3.016 0 8.108 0 10.8-.03 2.34-.83 4.223-2.012 6.44-.547 1.555-.986.964-2.35 2.858-1.83.654-3.186.91-5.138 1.216-2.517.398-8.12.75-10.887.136 3.64-1.068 6.96-3.27 9.77-6.12a30.57 30.57 0 0 0 2.13-2.4 33.663 33.663 0 0 0 3.01-4.48c.352-.626.686-1.248.997-1.893a33.86 33.86 0 0 0 1.25-2.94c.124-.33.245-.667.356-.998.222-.665.417-1.33.592-1.996.002-.006.015-.01.016-.017.007-.012.06-.122.322-.287.136-.085.332-.17.575-.237h.017c.252-.067.554-.118.946-.118z" fill="#ede71f"/> - <path d="M529.938 298.902c-.412 6.034-2.277 13.192-6.644 17.81-1.607 1.337-3.66 2.55-5.646 2.255 6.77-5.51 10.885-13.947 12.29-20.065z" fill="#c6cb24"/> - <path d="M524.494 309.28c-1.002 2.722-4.788 6.747-8.84 10.046-1.15.035-1.76.1-2.804.038 2.468-.225 8.22-5.083 11.644-10.083z" fill="#9ecb34"/> - </g> - <use height="100%" width="100%" xlink:href="#t" x="-15.341"/> - <g fill="#c6cb24"> - <path d="M502.218 297.91c2.735 10.576 11.79 21.334 22.583 21.334h8.09v10.768c0 .003-.015 0-.017 0h-65.795c-.006 0-.017.003-.017 0v-10.768h8.073c10.792 0 19.863-10.758 22.6-21.333 0 0 .534-.865 2.243-.865 1.708 0 2.243.866 2.243.866z" fill="url(#u)"/> - <path d="M499.975 297.465c.784 0 1.255.196 1.538.372.27.166.332.26.34.27l.016.017c1.4 5.323 4.347 10.67 8.332 14.707 4.017 4.07 9.087 6.83 14.623 6.83h7.64v9.923h-64.98v-9.923h7.675c5.535 0 10.593-2.76 14.605-6.83 3.982-4.037 6.934-9.383 8.334-14.706.002-.007.014-.01.016-.016.006-.012.057-.123.32-.288.28-.174.755-.355 1.54-.355z" fill="#97c924"/> - <path d="M499.263 297.53a3.4 3.4 0 0 0-.242.055h-.017c-.243.066-.436.15-.572.236-.263.166-.313.275-.32.287-.002.006-.016.01-.017.017a28.878 28.878 0 0 1-.949 2.993 34.22 34.22 0 0 1-1.25 2.942 34.21 34.21 0 0 1-.997 1.894 33.634 33.634 0 0 1-3.01 4.477 30.73 30.73 0 0 1-2.13 2.402c-2.81 2.85-6.128 5.05-9.77 6.117 2.766.614 4.033-.057 6.55-.455 1.952-.308 4.21-.563 6.043-1.217 1.364-1.894.9-1.3 1.446-2.854 1.18-2.218 2.906-4.222 3.334-6.68 1.62-3.023 1.903-8.615 1.903-10.214z" fill="#ede71f"/> - <path d="M499.275 298.902c-.412 6.034-2.277 13.192-6.644 17.81-1.605 1.337-3.66 2.55-5.645 2.255 6.77-5.51 10.885-13.947 12.29-20.065z"/> - <path d="M493.832 309.28c-1.002 2.722-4.788 6.748-8.84 10.046-1.15.035-1.76.1-2.804.038 2.467-.225 8.222-5.083 11.644-10.083z" fill="#9ecb34"/> - <path d="M500.95 297.584h.02c.24.067.434.15.57.236.264.165.315.274.32.286.003.006.017.01.02.018.174.665.37 1.333.59 1.996.112.332.235.665.358.995a33.6 33.6 0 0 0 1.25 2.942c.31.645.644 1.268.997 1.895a33.634 33.634 0 0 0 3.01 4.477 30.73 30.73 0 0 0 2.13 2.4c2.81 2.85 6.128 5.446 9.768 6.513-7.245.028-10.39-.63-13.022-4.016-2.632-3.387-3.605-4.868-4.14-6.937-.534-2.068-2.025-6.57-1.87-10.806z" fill="#ede71f"/> - <path d="M501.476 298.902c.412 6.034 2.22 12.006 6.587 16.625 1.607 1.337 3.66 2.55 5.646 2.255-7.336-5.002-10.83-12.762-12.234-18.88z"/> - </g> - <g id="w"> - <path d="M484.75 297.043c-1.71 0-2.25.862-2.25.862-2.522 9.747-11.824 22.318-21.496 23.81l-4.79 8.29h49.015V318.66c-8.826-2.37-15.89-11.63-18.25-20.753 0 0-.522-.862-2.23-.862z" fill="url(#v)"/> - <path d="M484.75 297.465c-.785 0-1.256.196-1.54.372-.268.166-.33.26-.337.27l-.017.017c-1.402 5.323-4.678 10.705-8.08 14.99-3.402 4.283-9.72 8.617-14.042 9.076l-4.282 7.393h48.06V318.89c-3.554-1.09-6.8-3.267-9.552-6.06-3.982-4.037-6.934-9.383-8.334-14.706-.002-.007-.015-.01-.017-.016-.007-.012-.06-.123-.322-.288-.28-.174-.755-.355-1.54-.355z" fill="#97c924"/> - <path d="M483.445 298.903c-.617 9.043-5.653 20.454-11.34 22.42-1.855.64-5.1.864-6.227 1.008 9.948-4.73 15.828-15.852 17.567-23.427z" fill="#93bc30"/> - <path d="M484.746 297.465c-.147 0-.28.02-.406.034-.023 3.016 0 8.108 0 10.8.03 2.34.83 4.223 2.012 6.44.07.195.136.355.203.49.41 1.087.713 1.464 2.282 2.655 4.987 3.787 11.17 4.353 14.808 4.04-1.14-.898-2.358-1.715-3.43-2.467 1.71-.056 3.35-.25 4.512-.508-3.64-1.067-6.96-3.27-9.77-6.12a30.523 30.523 0 0 1-1.403-1.554c-.21-.292-.5-.698-.592-.812-1.118-1.4-2.263-2.947-3.145-4.513a34.164 34.164 0 0 1-.997-1.893 34.023 34.023 0 0 1-1.606-3.938 31.676 31.676 0 0 1-.592-1.996c-.002-.006-.015-.01-.017-.017-.006-.012-.057-.122-.32-.287a2.207 2.207 0 0 0-.576-.237h-.018a3.614 3.614 0 0 0-.946-.118z" fill="#ede71f"/> - <path d="M485.446 298.902c.412 6.034 2.277 13.192 6.644 17.81 1.606 1.337 3.66 2.55 5.646 2.255-6.77-5.51-10.886-13.947-12.29-20.065z"/> - <path d="M489.613 307.247c2.37 5.837 8.37 11.29 14.543 14.954 1.15.036 1.492.004 2.537-.06-4.42-2.37-11.54-5.753-17.08-14.893z" fill="#9ecb34"/> - </g> - <use height="100%" width="100%" xlink:href="#w" x="-15.43" fill="#c6cb24"/> - </g> - <g> - <path d="M556.5 324.692c-.574.203-4.42-.19-6.433-.044l-1.28.336c-1.123-.008-2.238.024-3.33 0-3.602 0-6.65.948-10.075.948-3.433 0-6.47-.948-10.075-.948-1.12-.008-2.234.025-3.33 0-3.602 0-6.647.948-10.076.948-3.428 0-6.472-.948-10.074-.948-1.13-.007-2.242.023-3.348 0-3.602 0-6.632.948-10.058.948-3.43 0-6.456-.948-10.058-.948-.267 0-.516.01-.776.017-.178-.003-.377-.016-.557-.016-.12 0-.223-.003-.34 0-.117-.003-.237 0-.356 0-.18 0-.345.013-.523.017-.258-.007-.51-.016-.778-.016-3.606 0-6.643.95-10.076.948-3.43 0-6.473-.948-10.075-.948-.26 0-.52.01-.775.017-.18-.003-.34-.016-.522-.016-.124 0-.252-.003-.374 0-.118-.003-.238 0-.357 0-.18 0-.362.013-.54.017-.26-.007-.51-.016-.776-.016-2.88 0-6.218.607-8.936.85l-6.272 10.858 62.972-.007 64.375.007z" fill="#fff"/> - <path d="M547.993 323.11c-.2 0-.398 0-.596.008-3.24.095-5.564 1.115-11.2 1.115-5.638 0-6.22-1.02-12.584-.88-5.947.132-8.443 1.263-11.67 1.218-3.228-.043-8.473-.696-12.51-.274-4.037.423-8.828 1.284-11.973 1.29-3.91-.016-7.82-.73-11.906-.323-4.087.406-5.997 1.5-11.063 1.485-4.355-.013-9.082-.698-12.745-.695-3.435.003-7.267.957-10.086 1.443l-.844 1.464c2.247-.26 8.55-1.218 10.802-1.277 2.344-.06 10.717.483 15.335.325 4.618-.16 5.158-1.172 10.618-1.172 3.802 0 6.667.4 10.567.4 2.434 0 4.643-1.243 8.343-1.243.936-.027 1.865-.06 2.794-.09 3.12-.516 8.384.044 12.048.23 3.315.174 5.457-.614 8.914-.73 1.496-.067 2.998-.065 4.474-.147 3.46-.115 6.422.64 9.68.624 3.25-.2 6.403-.922 9.86-1.037 1.51-.07 2.998-.072 4.49-.148 2.287-.076 5.837.078 8.273.5l-.84-1.45c-2.38-.075-5.31-.634-8.18-.634z" fill="url(#x)"/> - <g id="A"> - <path id="z" d="M450.312 334.748c-3.457 0-6.402.853-9.652.945-1.21-.033-2.367-.183-3.535-.345l-.49.85c.486.032.975.063 1.488.063 1.502.02 2.99-.035 4.474 0 3.457 0 6.382-.85 9.634-.944 3.255.092 6.207.945 9.667.945 1.5.02 2.993-.035 4.474 0 3.458 0 6.413-.852 9.667-.944 3.256.092 6.23.945 9.687.945 1.495.02 2.993-.035 4.47 0 3.457 0 6.4-.852 9.652-.944 3.253.092 6.19.945 9.65.945 1.51.02 2.998-.035 4.49 0 3.457 0 6.41-.852 9.666-.944 3.257.092 6.21.945 9.67.945 1.495.02 2.99-.035 4.47 0 3.456 0 6.4-.852 9.65-.944 3.254.092 6.21.945 9.667.945 1.5.02 2.995-.035 4.473 0 .605 0 1.196-.033 1.778-.076l-.462-.797c-1.064.144-2.133.276-3.235.306-3.254-.092-6.195-.945-9.652-.945-1.51-.02-2.996.03-4.49 0-3.457 0-6.396.853-9.648.945-3.257-.09-6.206-.945-9.666-.945-1.496-.02-2.993.03-4.473 0-3.458 0-6.413.853-9.667.945-3.254-.092-6.21-.945-9.666-.945-1.503-.02-3.003.03-4.49 0-3.458 0-6.4.853-9.65.945-3.253-.092-6.194-.945-9.65-.945-1.507-.02-2.99.03-4.475 0-3.46 0-6.41.854-9.666.945-3.255-.092-6.21-.945-9.667-.945-1.502-.02-3.006.03-4.49 0z" fill="url(#y)"/> - <use height="100%" width="100%" xlink:href="#z" y="-1.289"/> - <use height="100%" width="100%" xlink:href="#z" y="-2.575"/> - </g> - <use height="100%" width="100%" xlink:href="#A" y="-3.867"/> - <use height="100%" width="100%" xlink:href="#A" y="-7.729"/> - </g> - <path d="M443.846 324.705l-2.427 4.19c2.838-.47 7.1-1.702 10.633-1.705 3.663-.003 8.082.903 12.438.916 5.067.014 6.977-1.08 11.064-1.485 4.086-.406 7.998.528 11.906.546 3.145-.007 7.936-1.09 11.973-1.512 4.037-.422 7.737.293 12.603.37 4.866.074 5.63-1.18 11.576-1.312 6.366-.14 6.947.878 12.584.878 4.242.23 7.883-.854 11.666-1.12 3.784-.27 5.54.042 8.305.108l-1.838-3.253c-.032 0-.062.003-.093.004l-101.246 2.225z" fill="#97c924"/> - <path d="M550.067 324.648s2.71.148 3.847.276a91.39 91.39 0 0 0 2.955.253l-.37-.485c-.574.203-4.42-.19-6.433-.044z" fill="#fff"/> - </g> - <path d="M320 179.9l-25.713 44.548L268 269.968l51.438-.007 52.562.007-25.723-44.546L320 179.9zm0 2.4l25.24 43.723 24.68 42.742-50.482-.003-49.36.003 25.247-43.716z" fill="#c8a400"/> -</svg> diff --git a/img/flags/4x3/nl.svg b/img/flags/4x3/nl.svg deleted file mode 100644 index c931256..0000000 --- a/img/flags/4x3/nl.svg +++ /dev/null @@ -1,7 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" height="480" width="640" viewBox="0 0 640 480"> - <g fill-rule="evenodd" stroke-width="1pt" transform="scale(1.25 .9375)"> - <rect rx="0" ry="0" height="509.76" width="512" fill="#fff"/> - <rect rx="0" ry="0" height="169.92" width="512" y="342.08" fill="#21468b"/> - <path fill="#ae1c28" d="M0 0h512v169.92H0z"/> - </g> -</svg> diff --git a/img/flags/4x3/no.svg b/img/flags/4x3/no.svg deleted file mode 100644 index 6f710de..0000000 --- a/img/flags/4x3/no.svg +++ /dev/null @@ -1,7 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" height="480" width="640" viewBox="0 0 640 480"> - <path fill="#ef2b2d" d="M0 0h640v480H0z"/> - <path fill="#fff" d="M180 0h120v480H180z"/> - <path fill="#fff" d="M0 180h640v120H0z"/> - <path fill="#002868" d="M210 0h60v480h-60z"/> - <path fill="#002868" d="M0 210h640v60H0z"/> -</svg> diff --git a/img/flags/4x3/np.svg b/img/flags/4x3/np.svg deleted file mode 100644 index c0e3de6..0000000 --- a/img/flags/4x3/np.svg +++ /dev/null @@ -1,14 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" height="480" width="640" viewBox="0 0 640 480"> - <defs> - <clipPath id="a"> - <path fill-opacity=".67" d="M0-15.957h512v512H0z"/> - </clipPath> - </defs> - <path fill="#fff" d="M0 0h640v480H0z"/> - <g clip-path="url(#a)" transform="translate(0 14.96) scale(.9375)"> - <g fill-rule="evenodd"> - <path d="M6.54 489.54l378.786-.01L137.399 238.11l257.263.302L6.561-9.474 6.54 489.54z" stroke="#000063" stroke-width="13.832831999999998" fill="#ce0000"/> - <path fill="#fff" d="M180.737 355.803l-26.986 8.936 21.11 19.862-28.438-1.827 11.716 26.232-25.549-12.29.526 28.597-18.786-20.9-10.741 26.632-9.15-26.32-20.365 20.588 1.861-27.734-26.884 11.427 12.602-24.918-29.335.513 21.43-18.322-27.295-10.476 26.987-8.923-21.122-19.862 28.436 1.815-11.703-26.22 25.55 12.29-.527-28.61 18.787 20.901 10.728-26.62 9.162 26.32 20.365-20.6-1.873 27.734 26.896-11.414-12.601 24.917 29.322-.513-21.43 18.323zM148.32 171.125l-11.33 8.387 5.584 4.614c13.561-10.482 23.211-20.062 30.753-35.96 1.769 21.22-17.683 68.855-68.73 69.381-54.633-.046-73.59-50.587-71.482-70.276 10.037 18.209 16.161 27.088 31.916 36.568l4.82-4.424-10.671-8.891 13.737-3.572-7.39-12.44 14.391 1.05-1.808-14.486 12.616 7.383 3.948-13.484 9.065 10.86 8.491-10.296 4.624 13.99 11.79-8.203-1.512 14.228 14.133-1.659-6.626 13.153 13.682 4.077z"/> - </g> - </g> -</svg> diff --git a/img/flags/4x3/nr.svg b/img/flags/4x3/nr.svg deleted file mode 100644 index c473707..0000000 --- a/img/flags/4x3/nr.svg +++ /dev/null @@ -1,12 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" height="480" width="640" viewBox="0 0 640 480"> - <defs> - <clipPath id="a"> - <path fill-opacity=".67" d="M-54.667 0h682.67v512h-682.67z"/> - </clipPath> - </defs> - <g fill-rule="evenodd" clip-path="url(#a)" transform="translate(51.25) scale(.9375)" stroke-width="1pt"> - <path fill="#002170" d="M-140 0H884v512H-140z"/> - <path fill="#ffb20d" d="M-140 234.11H884v43.783H-140z"/> - <path fill="#fff" d="M161.81 437.989l-32.916-32.971-10.604 45.363-12.008-45.015-31.875 33.978 12.107-44.989-44.59 13.498 32.972-32.907-45.365-10.613 45.016-12.008L40.56 320.45l44.989 12.108-13.49-44.591 32.907 32.971 10.614-45.364 12.008 45.015 31.866-33.977-12.098 44.988 44.59-13.498-32.98 32.908 45.363 10.613-45.015 12.009 33.987 31.874-44.989-12.108z"/> - </g> -</svg> diff --git a/img/flags/4x3/nu.svg b/img/flags/4x3/nu.svg deleted file mode 100644 index 99859af..0000000 --- a/img/flags/4x3/nu.svg +++ /dev/null @@ -1,26 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" height="480" width="640" viewBox="0 0 640 480"> - <defs> - <clipPath id="a"> - <path fill-opacity=".67" d="M0 0h496.06v372.05H0z"/> - </clipPath> - </defs> - <g transform="scale(1.2902)" clip-path="url(#a)"> - <path fill-rule="evenodd" fill="#fff" d="M.013 0h499.55v248.1H.013z"/> - <path d="M.013 0l-.02 18.621 119.21 61.253 44.86 1.3L.012 0z" fill="#c00"/> - <path d="M51.054 0l144.53 75.491V.001H51.064z" fill="#006"/> - <path fill="#c00" d="M214.86 0v96.372H.02v55.07h214.84v96.372h66.106v-96.372h214.84v-55.07h-214.84V0H214.86z"/> - <path d="M300.24 0v71.132L441.63.552 300.24 0z" fill="#006"/> - <path d="M304.71 78.887l39.76-.32L498.95.551l-40.99.668-153.25 77.668z" fill="#c00"/> - <path d="M.013 167.5v52.775l99.16-52.22-99.16-.56z" fill="#006"/> - <path d="M381.85 169.68l-41.336-.321 155.82 77.58-1.025-17.749-113.46-59.51zM38.73 248.25l146.11-76.71-38.38.26L.01 248.14" fill="#c00"/> - <path d="M497.9 21.795l-118 58.515 116.43.436v87.194h-99.159l98.242 53.23 1.442 27.08-52.474-.627-143.62-70.505v71.132h-104.67v-71.132l-134.72 70.94-60.844.192v247.81h991.59V.43L498.947 0M.537 27.971L.014 79.438l104.39 1.308L.544 27.971z" fill="#006"/> - <g fill-rule="evenodd" stroke-width="1pt" fill="#ffd900"> - <path d="M496.06 0h496.06v496.06H496.06z"/> - <path d="M0 248.03h523.49v248.03H0z"/> - </g> - <g fill-rule="evenodd"> - <path d="M290.9 125.29c0 23.619-19.148 42.767-42.768 42.767-23.619 0-42.767-19.147-42.767-42.767s19.147-42.767 42.767-42.767c23.62 0 42.767 19.147 42.767 42.767z" fill="#000067"/> - <path fill="#fff40d" d="M240.189 114.32l8.225-24.592 8.224 24.591 26.686-.018-21.603 15.175 8.266 24.58-21.577-15.211-21.577 15.207 8.27-24.576-21.6-15.182zM388.737 118.346l4.076-11.512 4.076 11.512 13.226-.008-10.707 7.104 4.097 11.508-10.694-7.122-10.693 7.12 4.098-11.506-10.704-7.107zM244.057 203.886l4.076-11.512 4.076 11.512 13.226-.008-10.707 7.104 4.097 11.508-10.694-7.122-10.693 7.12 4.098-11.506-10.704-7.107zM244.057 36.836l4.076-11.512 4.076 11.512 13.226-.008-10.707 7.104 4.097 11.508-10.694-7.122-10.693 7.12 4.098-11.506-10.704-7.107zM98.93 118.346l4.076-11.512 4.076 11.512 13.225-.008-10.706 7.104 4.096 11.508-10.693-7.122-10.694 7.12 4.099-11.506-10.705-7.107z"/> - </g> - </g> -</svg> diff --git a/img/flags/4x3/nz.svg b/img/flags/4x3/nz.svg deleted file mode 100644 index 616df15..0000000 --- a/img/flags/4x3/nz.svg +++ /dev/null @@ -1,41 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" height="480" width="640" viewBox="0 0 640 480"> - <defs> - <g id="b"> - <g id="a"> - <path transform="translate(0 -.325)" d="M0 0v.5L1 0z"/> - <path transform="rotate(-36 .5 -.162)" d="M0 0v-.5L1 0z"/> - </g> - <use transform="scale(-1 1)" xlink:href="#a"/> - <use transform="rotate(72 0 0)" xlink:href="#a"/> - <use transform="rotate(-72 0 0)" xlink:href="#a"/> - <use transform="scale(-1 1) rotate(72)" xlink:href="#a"/> - </g> - <clipPath id="c"> - <path d="M0 0h600v300H0z"/> - </clipPath> - <clipPath id="d"> - <path d="M0 0l300 150H0zm300 0h300L300 150zm0 150h300v150zm0 0v150H0z"/> - </clipPath> - </defs> - <path d="M.004 0h640v480h-640z" fill="#00247d" fill-rule="evenodd"/> - <g transform="translate(-92.947 36.115) scale(.66825)"> - <use fill="#fff" height="100%" width="100%" xlink:href="#b" transform="matrix(45.4 0 0 45.4 900 120)"/> - <use fill="#cc142b" height="100%" width="100%" xlink:href="#b" transform="matrix(30 0 0 30 900 120)"/> - </g> - <g transform="rotate(82 534.179 124.977) scale(.66825)"> - <use fill="#fff" height="100%" width="100%" xlink:href="#b" transform="rotate(-82 519.022 -457.666) scale(40.4)"/> - <use fill="#cc142b" height="100%" width="100%" xlink:href="#b" transform="rotate(-82 519.022 -457.666) scale(25)"/> - </g> - <g transform="rotate(82 534.179 124.977) scale(.66825)"> - <use fill="#fff" height="100%" width="100%" xlink:href="#b" transform="rotate(-82 668.57 -327.666) scale(45.4)"/> - <use fill="#cc142b" height="100%" width="100%" xlink:href="#b" transform="rotate(-82 668.57 -327.666) scale(30)"/> - </g> - <g transform="translate(-92.947 36.115) scale(.66825)"> - <use fill="#fff" height="100%" width="100%" xlink:href="#b" transform="matrix(50.4 0 0 50.4 900 480)"/> - <use fill="#cc142b" height="100%" width="100%" xlink:href="#b" transform="matrix(35 0 0 35 900 480)"/> - </g> - <path clip-path="url(#c)" d="M0 0l600 300M0 300L600 0" transform="matrix(.60681 0 0 .73139 .004 0)" stroke="#fff" stroke-width="60"/> - <path clip-path="url(#d)" d="M0 0l600 300M0 300L600 0" transform="matrix(.60681 0 0 .73139 .004 0)" stroke="#cc142b" stroke-width="40"/> - <path style="line-height:normal;text-indent:0;text-align:start;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000;text-transform:none;block-progression:tb;isolation:auto;mix-blend-mode:normal" clip-path="url(#c)" d="M151.707-.002v79.37H.004v60.68h151.703v79.37h60.682v-79.37h151.703v-60.68H212.389V-.003z" color="#000" font-weight="400" font-family="sans-serif" white-space="normal" overflow="visible" fill="#fff"/> - <path style="line-height:normal;text-indent:0;text-align:start;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000;text-transform:none;block-progression:tb;isolation:auto;mix-blend-mode:normal" d="M163.844.002v91.502H.004v36.408h163.84v91.502h36.408v-91.502h163.84V91.504h-163.84V.002z" color="#000" font-weight="400" font-family="sans-serif" white-space="normal" overflow="visible" fill="#cc142b"/> -</svg> diff --git a/img/flags/4x3/om.svg b/img/flags/4x3/om.svg deleted file mode 100644 index 707e5fc..0000000 --- a/img/flags/4x3/om.svg +++ /dev/null @@ -1,128 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" height="480" width="640" viewBox="0 0 640 480"> - <defs> - <clipPath id="a"> - <path fill-opacity=".67" d="M0 0h640v480H0z"/> - </clipPath> - </defs> - <g clip-path="url(#a)"> - <path fill-rule="evenodd" fill="#ef2d29" d="M-3.299-21.609h702.27v553.02H-3.299z"/> - <path fill-rule="evenodd" fill="#009025" d="M174.57 317.33h535.76v207.56H174.57z"/> - <path fill-rule="evenodd" fill="#fff" d="M174.57-35.415h564.88v190.08H174.57z"/> - <g stroke-width=".983" stroke="#ef2d28"> - <g fill-rule="evenodd" transform="matrix(.19848 0 0 .17744 111.26 -13.444)" fill="#fff"> - <rect rx="11.298" ry="11.851" height="85.039" width="138.19" y="467.72" x="17.717" stroke-width="1.406"/> - <rect rx="10.719" ry="10.864" height="77.953" width="131.1" y="471.26" x="21.26" stroke-width="1.311"/> - <path d="M64.966 396.07l9.723.443.442 5.745 7.955 5.303 6.187-6.629 7.513 5.303-7.07 5.746 1.767 7.955 8.838-.442v10.607l-7.07-.442-3.536 6.629 7.955 7.513-6.187 6.187-6.63-6.629-9.722 2.652.442 9.723-10.607.884-1.326-9.281-8.839-4.862-4.861 6.629-7.514-4.861 4.42-7.513-5.304-4.862H34.03l-.442-13.7 7.513.884 5.304-7.955-6.187-6.187 7.955-7.071 5.745 5.745 9.723-1.768 1.326-5.746z" transform="matrix(.68108 0 0 .5852 37.972 260.74)" stroke-width="1.311"/> - <ellipse transform="matrix(.65819 0 0 .70224 38.845 209.62)" cx="68.944" rx="11.049" cy="426.78" ry="9.944" stroke-width="1.311"/> - <g stroke-width="1.311"> - <path d="M38.976 474.8l-10.63 10.63M46.063 474.8l-10.63 10.63M53.149 474.8l-10.63 10.63M60.236 474.8l-10.63 10.63M67.322 474.8l-10.63 10.63M74.409 474.8l-10.63 10.63M81.496 474.8l-10.63 10.63M88.582 474.8l-10.63 10.63M95.669 474.8l-10.63 10.63M102.755 474.8l-10.63 10.63M109.842 474.8l-10.63 10.63M116.929 474.8l-10.63 10.63M88.582 474.8l-10.63 10.63M124.015 474.8l-10.63 10.63M131.102 474.8l-10.63 10.63M138.189 474.8l-10.63 10.63M145.276 474.8l-10.63 10.63M134.644 474.8l10.63 10.63M127.564 474.8l10.63 10.63M120.474 474.8l10.63 10.63M113.384 474.8l10.63 10.63M106.304 474.8l10.63 10.63M99.214 474.8l10.63 10.63M92.124 474.8l10.63 10.63M85.044 474.8l10.63 10.63M77.954 474.8l10.63 10.63M70.864 474.8l10.63 10.63M63.784 474.8l10.63 10.63M56.693 474.8l10.63 10.63M85.044 474.8l10.63 10.63M49.607 474.8l10.63 10.63M42.52 474.8l10.63 10.63M35.434 474.8l10.63 10.63M28.347 474.8l10.63 10.63"/> - </g> - <g stroke-width="1.311"> - <path d="M38.976 535.036l-10.63 10.63M46.063 535.036l-10.63 10.63M53.149 535.036l-10.63 10.63M60.236 535.036l-10.63 10.63M67.322 535.036l-10.63 10.63M74.409 535.036l-10.63 10.63M81.496 535.036l-10.63 10.63M88.582 535.036l-10.63 10.63M95.669 535.036l-10.63 10.63M102.755 535.036l-10.63 10.63M109.842 535.036l-10.63 10.63M116.929 535.036l-10.63 10.63M88.582 535.036l-10.63 10.63M124.015 535.036l-10.63 10.63M131.102 535.036l-10.63 10.63M138.189 535.036l-10.63 10.63M145.276 535.036l-10.63 10.63M134.644 535.036l10.63 10.63M127.564 535.036l10.63 10.63M120.474 535.036l10.63 10.63M113.384 535.036l10.63 10.63M106.304 535.036l10.63 10.63M99.214 535.036l10.63 10.63M92.124 535.036l10.63 10.63M85.044 535.036l10.63 10.63M77.954 535.036l10.63 10.63M70.864 535.036l10.63 10.63M63.784 535.036l10.63 10.63M56.693 535.036l10.63 10.63M85.044 535.036l10.63 10.63M49.607 535.036l10.63 10.63M42.52 535.036l10.63 10.63M35.434 535.036l10.63 10.63M28.347 535.036l10.63 10.63"/> - </g> - </g> - <g fill-rule="evenodd" fill="#fff" transform="matrix(.19848 0 0 .17744 19.131 -14.073)"> - <rect rx="11.298" ry="11.851" height="85.039" width="138.19" y="467.72" x="17.717" stroke-width="1.406"/> - <rect rx="10.719" ry="10.864" height="77.953" width="131.1" y="471.26" x="21.26" stroke-width="1.311"/> - <path d="M64.966 396.07l9.723.443.442 5.745 7.955 5.303 6.187-6.629 7.513 5.303-7.07 5.746 1.767 7.955 8.838-.442v10.607l-7.07-.442-3.536 6.629 7.955 7.513-6.187 6.187-6.63-6.629-9.722 2.652.442 9.723-10.607.884-1.326-9.281-8.839-4.862-4.861 6.629-7.514-4.861 4.42-7.513-5.304-4.862H34.03l-.442-13.7 7.513.884 5.304-7.955-6.187-6.187 7.955-7.071 5.745 5.745 9.723-1.768 1.326-5.746z" transform="matrix(.68108 0 0 .5852 37.972 260.74)" stroke-width="1.311"/> - <ellipse transform="matrix(.65819 0 0 .70224 38.845 209.62)" cx="68.944" rx="11.049" cy="426.78" ry="9.944" stroke-width="1.311"/> - <g stroke-width="1.311"> - <path d="M38.976 474.8l-10.63 10.63M46.063 474.8l-10.63 10.63M53.149 474.8l-10.63 10.63M60.236 474.8l-10.63 10.63M67.322 474.8l-10.63 10.63M74.409 474.8l-10.63 10.63M81.496 474.8l-10.63 10.63M88.582 474.8l-10.63 10.63M95.669 474.8l-10.63 10.63M102.755 474.8l-10.63 10.63M109.842 474.8l-10.63 10.63M116.929 474.8l-10.63 10.63M88.582 474.8l-10.63 10.63M124.015 474.8l-10.63 10.63M131.102 474.8l-10.63 10.63M138.189 474.8l-10.63 10.63M145.276 474.8l-10.63 10.63M134.644 474.8l10.63 10.63M127.564 474.8l10.63 10.63M120.474 474.8l10.63 10.63M113.384 474.8l10.63 10.63M106.304 474.8l10.63 10.63M99.214 474.8l10.63 10.63M92.124 474.8l10.63 10.63M85.044 474.8l10.63 10.63M77.954 474.8l10.63 10.63M70.864 474.8l10.63 10.63M63.784 474.8l10.63 10.63M56.693 474.8l10.63 10.63M85.044 474.8l10.63 10.63M49.607 474.8l10.63 10.63M42.52 474.8l10.63 10.63M35.434 474.8l10.63 10.63M28.347 474.8l10.63 10.63"/> - </g> - <g stroke-width="1.311"> - <path d="M38.976 535.036l-10.63 10.63M46.063 535.036l-10.63 10.63M53.149 535.036l-10.63 10.63M60.236 535.036l-10.63 10.63M67.322 535.036l-10.63 10.63M74.409 535.036l-10.63 10.63M81.496 535.036l-10.63 10.63M88.582 535.036l-10.63 10.63M95.669 535.036l-10.63 10.63M102.755 535.036l-10.63 10.63M109.842 535.036l-10.63 10.63M116.929 535.036l-10.63 10.63M88.582 535.036l-10.63 10.63M124.015 535.036l-10.63 10.63M131.102 535.036l-10.63 10.63M138.189 535.036l-10.63 10.63M145.276 535.036l-10.63 10.63M134.644 535.036l10.63 10.63M127.564 535.036l10.63 10.63M120.474 535.036l10.63 10.63M113.384 535.036l10.63 10.63M106.304 535.036l10.63 10.63M99.214 535.036l10.63 10.63M92.124 535.036l10.63 10.63M85.044 535.036l10.63 10.63M77.954 535.036l10.63 10.63M70.864 535.036l10.63 10.63M63.784 535.036l10.63 10.63M56.693 535.036l10.63 10.63M85.044 535.036l10.63 10.63M49.607 535.036l10.63 10.63M42.52 535.036l10.63 10.63M35.434 535.036l10.63 10.63M28.347 535.036l10.63 10.63"/> - </g> - </g> - <path d="M538.58 531.5c1.717 166.56 24.803 201.97 3.543 201.97s-31.89-92.07-31.89-205.51 14.173-205.51 35.433-205.51-8.913 31.909-7.086 209.06z" fill-rule="evenodd" transform="matrix(-.32136 -.12684 -.20158 .20221 345.89 61.391)" stroke-width="1.311" fill="#fff"/> - <path d="M545.67 779.53l-60.236 17.716c56.693 60.236 120.47 85.039 138.19 74.409 17.717-10.629-31.89-35.433-77.953-92.125z" fill-rule="evenodd" stroke-width="1.229" fill="#fff" transform="matrix(-.19848 0 0 .17744 145.247 -13.446)"/> - <path d="M547.27 786.9l-50.926 14.74c56.693 60.236 112.77 77.385 127.28 70.015 14.591-7.37-30.287-28.063-76.35-84.755z" fill-rule="evenodd" transform="matrix(-.19334 0 0 .17062 142.75 -8.126)" stroke-width="1.27" fill="#fff"/> - <path d="M353.13 634.23c.187 1.273.748 7.068 1.25 9.375 0 3.186.288 5.632.625 8.125.796 2.177.661 4.198 3.125 5.001 1.694 2.631 2.76 3.313 5 4.375 1.527 1.323 3.84 2.642 6.25 3.75 2.499 1.071 4.771 1.218 7.5.625 2.19-1.526 3.804-3.1 5.625-4.375.429-1.973.822-4.903 1.25-6.875-.674 2.024-1.147 5.265-1.25 8.125.24 3.12 1.265 4.481 2.5 6.875" transform="matrix(-.13978 0 0 .12414 123.027 20.362)" stroke-width="1.751" fill="none"/> - <path d="M389.38 681.73l.625-.625c-1.484 1.484-.878.776 2.5-1.25 2.426-1.246 5.015-1.908 8.125-2.5h8.75c3.405 0 5.696.511 8.125 1.25 1.762 1.762 4.393 2.763 6.25 4.375 1.905 1.295 2.722 2.829 3.75 5 1.701 1.701 2.803 4.326 4.375 5.625.704 2.871 2.141 2.773 3.125 5-2.948.227-5.311.631-6.875 2.5-2.597 1.344 2.179-1.317 3.125-2.5 2.046-.618 2.576-1.25 5.625-1.25 2.85-.904 4.579.737 7.5 1.25 1.705.987 2.178 1.25 4.376 1.25" transform="matrix(-.13978 0 0 .12414 124.863 19.663)" stroke-width="1.751" fill="none"/> - <path d="M438.13 724.86c1.273.075 7.083 1.146 9.376 0 2.552-.696 4.068-2.04 5.625-4.375.767-1.689 0 2.998 0 5 .283 3.68 1.366 3.714 3.125 6.25 1.814 1.163 3.725 2.8 5.625 3.75 1.576 1.366 3.513 2.28 5.625 3.125 1.896.898 4.111 1.813 5.625 3.125 2.09 1.493 1.888 3.278 3.125 5.625-.235 3.057-.733 4.79-2.5 6.25-.738 2.113-2.395 4.205-3.75 5.625-1.545 2.87-3.256 4.224.625 5 2.132.914 3.327.197 5.625 0" transform="matrix(-.13978 0 0 .12414 126.96 18.19)" stroke-width="1.751" fill="none"/> - <path d="M480.63 771.73c1.536-.391 6.983-2.213 9.375-3.125h8.75c3.391.261 4.037 1.256 6.876 2.5 1.832 1.871 3.089 3.162 5.625 4.376 1.341 1.733 3.953 4.677 5 6.875.745 2.133 1.25 5.018 1.25 8.125-.044 3.648-1.002 4.271-1.25 7.5-.701 2.684-1.839 5.143-3.75 7.5-.265.793-.457.986-1.25 1.25" transform="matrix(-.13978 0 0 .12414 127.396 17.802)" stroke-width="1.751" fill="none"/> - <path d="M538.13 817.98c.374 0 1.201 2.018 2.5 3.75 2.828 2.906 3.192 3.125 7.5 3.125 3.884-.143 3.522-1.532 6.25-2.5 1.289-2.008 2.896-3.6 4.375-6.25 1.006-1.634 1.89-4.129 3.125-5.625 1.141-1.854 2.563-3.254 3.75-5 1.172-.502 1.618-.984 3.126-1.25-3.6.578-3.915 1.867-6.251 3.75-1.094 1.779-2.181 3.633-3.125 5.625-.361 2.673-1.21 4.779-1.25 8.125 0 3.457.017 5.872 1.25 8.75 1.473 1.545 2.563 3.143 4.375 4.376 1.439 1.405 3.244 3.336 4.376 5 1.96 1.206 3.385 2.189 5.625 3.75 1.884 1.102 3.915 2.234 6.875 2.5 3.67-.262 4.755-1.297 7.5-2.5 2.329-1.713 4.163-2.838 6.25-4.375 1.629-1.141 3.288-3.403 4.375-5 3.382-.846 5.529-.508 7.5 1.25a16.536 16.536 0 0 1 4.375 4.375c1.02.51 2.73 1.99 3.75 2.5" transform="matrix(-.09924 0 0 .09799 109.457 38.807)" stroke-width="2.339" fill="none"/> - <path d="M503.76 836.11c-.802.334-3.717 2.367-5 3.125-.8 2.631-2.077 4.069-2.5 6.875-.677 2.709-.625 5.692-.625 8.75.685 3.194 2.015 5.557 3.125 8.125 1.974 1.342 2.967 2.33 5.625 3.75 2.494.337 4.94.625 8.126.625 1.904.635 5.615.942 7.5 0 2.783-.376 4.854-1.507 6.875-2.5 2.306-1.307 3.728-2.542 6.25-3.75 1.225-1.801 3.13-3.46 5-5.625 1.556-2.105 2.7-3.286 3.75-5.625-.924 2.669-2.327 4.999-3.125 7.5-1.422 2.661-2.248 3.604-2.5 6.875-.871 2.613-.625 5.76-.625 8.75.274 2.031.418 5.837 1.25 7.5v1.875" transform="matrix(-.12338 0 0 .12229 111.375 19.248)" stroke-width="1.878" fill="none"/> - <path d="M541.26 799.23v.625c0-1.687.041-.83-.625 2.5-1.179 1.462-3.944 1.868-6.25 1.25-2.022-1.67-1.96-2.935-5.625-3.75-3.542.253-4.892 1.279-6.875 2.5-2.354 1.177-3.438 1.771-5 4.375-.776 2.12-1.209 3.555 1.25 4.375 1.954 1.386 4.277 2.149 6.875 2.5 2.887 0 4.968-.339 6.25 1.25 1.983 2.055 1.875 3.277 1.875 6.875.667 1.112.799 4.394 1.25 5.625 1.736.823 2.755 1.25 5.625 1.25.674-1.931 1.423-5.419 1.875-7.5.489-2.248.64-5.379 1.875-6.875a16.58 16.58 0 0 1 4.375-4.375c.766-1.073 2.223-1.965 3.75-2.5-2.452 1.251-2.801 2.603-3.125 5.625 2.155 1.078 2.731 1.833 6.25 1.875 3.459-.291 4.295-1.169 5.625-3.125.242 3.136 1.243 4.186 1.875 6.875 1.286 1.891 1.832 3.828 3.125 6.25-.551 3.012-1.737 3.163-1.875 6.875-.811 2.435-.723 4.783-2.5 6.251-.792.968-1.384 1.158-3.125 1.25 3.618 0 5.727-.391 8.125-1.875 1.854-1.141 3.255-2.563 5.001-3.75 2.212-1.603 4.947-3.085 7.5-3.751 2.887 0 4.968-.339 6.25 1.25 1.77 1.265 2.959 3.447 3.75 6.251.579 3.244.8 5.404-.625 7.5-1.057 2.408-1.297 3.346 0 6.25 1.452 2.033 3.617 2.272 6.875 3.125 2.379-.128 4.668-.671 6.25-1.25" stroke-width="1.229" fill="none" transform="matrix(-.19848 0 0 .17744 145.247 -13.446)"/> - <g fill-rule="evenodd" stroke-width="1.311" transform="matrix(-.19848 0 0 .17744 145.247 -13.446)"> - <path d="M531.5 359.64c0-165.27 7.937-299.41 17.717-299.41 9.779 0 17.716 134.13 17.716 299.41H531.5z" transform="matrix(1.4216 -.73423 .46161 .89375 -716.84 541.07)" fill="#fff"/> - <path d="M531.5 359.64c0-165.27 7.937-299.41 17.717-299.41 9.779 0 17.716 134.13 17.716 299.41" transform="matrix(1.1373 -.58739 .44532 .86221 -554.83 471.77)" fill="#fff"/> - <path d="M563.39 301.18c.189 18.908 0 40.188 0 60.236h-28.347c0-20.048-.189-41.328 0-60.236h28.347z" transform="matrix(1.4216 -.73423 .45889 .88849 -716.67 541.39)" fill="#fff"/> - <path d="M559.84 304.72c.189 18.908 0 33.102 0 53.15h-21.26c0-20.048-.189-34.242 0-53.15h21.26z" transform="matrix(1.4216 -.73423 .45889 .88849 -716.67 541.39)" fill="#fff"/> - <path transform="matrix(1.4216 -.73423 .45889 .88849 -716.67 541.39)" fill="#fff" d="M542.13 311.81h14.173v38.976H542.13zM542.13 311.81l14.173 38.976M542.13 350.79l14.173-38.976M542.13 113.39h14.173"/> - <ellipse fill="#ef0000" transform="matrix(1.6046 .45375 -.36215 1.5787 -734.9 -170.85)" cx="545.67" rx="3.543" cy="92.126" ry="3.543"/> - </g> - <g> - <path d="M538.58 531.5c1.717 166.56 24.803 201.97 3.543 201.97s-31.89-92.07-31.89-205.51 14.173-205.51 35.433-205.51-8.913 31.909-7.086 209.06z" fill-rule="evenodd" transform="matrix(.32136 -.12684 .20158 .20221 -181.512 60.764)" stroke-width="1.311" fill="#fff"/> - <path d="M545.67 779.53l-60.236 17.716c56.693 60.236 120.47 85.039 138.19 74.409 17.717-10.629-31.89-35.433-77.953-92.125z" fill-rule="evenodd" stroke-width="1.229" fill="#fff" transform="matrix(.19848 0 0 .17744 19.131 -14.073)"/> - <path d="M547.27 786.9l-50.926 14.74c56.693 60.236 112.77 77.385 127.28 70.015 14.591-7.37-30.287-28.063-76.35-84.755z" fill-rule="evenodd" transform="matrix(.19334 0 0 .17062 21.629 -8.754)" stroke-width="1.27" fill="#fff"/> - <path d="M353.13 634.23c.187 1.273.748 7.068 1.25 9.375 0 3.186.288 5.632.625 8.125.796 2.177.661 4.198 3.125 5.001 1.694 2.631 2.76 3.313 5 4.375 1.527 1.323 3.84 2.642 6.25 3.75 2.499 1.071 4.771 1.218 7.5.625 2.19-1.526 3.804-3.1 5.625-4.375.429-1.973.822-4.903 1.25-6.875-.674 2.024-1.147 5.265-1.25 8.125.24 3.12 1.265 4.481 2.5 6.875" transform="matrix(.13978 0 0 .12414 41.35 19.735)" stroke-width="1.751" fill="none"/> - <path d="M389.38 681.73l.625-.625c-1.484 1.484-.878.776 2.5-1.25 2.426-1.246 5.015-1.908 8.125-2.5h8.75c3.405 0 5.696.511 8.125 1.25 1.762 1.762 4.393 2.763 6.25 4.375 1.905 1.295 2.722 2.829 3.75 5 1.701 1.701 2.803 4.326 4.375 5.625.704 2.871 2.141 2.773 3.125 5-2.948.227-5.311.631-6.875 2.5-2.597 1.344 2.179-1.317 3.125-2.5 2.046-.618 2.576-1.25 5.625-1.25 2.85-.904 4.579.737 7.5 1.25 1.705.987 2.178 1.25 4.376 1.25" transform="matrix(.13978 0 0 .12414 39.515 19.036)" stroke-width="1.751" fill="none"/> - <path d="M438.13 724.86c1.273.075 7.083 1.146 9.376 0 2.552-.696 4.068-2.04 5.625-4.375.767-1.689 0 2.998 0 5 .283 3.68 1.366 3.714 3.125 6.25 1.814 1.163 3.725 2.8 5.625 3.75 1.576 1.366 3.513 2.28 5.625 3.125 1.896.898 4.111 1.813 5.625 3.125 2.09 1.493 1.888 3.278 3.125 5.625-.235 3.057-.733 4.79-2.5 6.25-.738 2.113-2.395 4.205-3.75 5.625-1.545 2.87-3.256 4.224.625 5 2.132.914 3.327.197 5.625 0" transform="matrix(.13978 0 0 .12414 37.419 17.563)" stroke-width="1.751" fill="none"/> - <path d="M480.63 771.73c1.536-.391 6.983-2.213 9.375-3.125h8.75c3.391.261 4.037 1.256 6.876 2.5 1.832 1.871 3.089 3.162 5.625 4.376 1.341 1.733 3.953 4.677 5 6.875.745 2.133 1.25 5.018 1.25 8.125-.044 3.648-1.002 4.271-1.25 7.5-.701 2.684-1.839 5.143-3.75 7.5-.265.793-.457.986-1.25 1.25" transform="matrix(.13978 0 0 .12414 36.982 17.174)" stroke-width="1.751" fill="none"/> - <path d="M538.13 817.98c.374 0 1.201 2.018 2.5 3.75 2.828 2.906 3.192 3.125 7.5 3.125 3.884-.143 3.522-1.532 6.25-2.5 1.289-2.008 2.896-3.6 4.375-6.25 1.006-1.634 1.89-4.129 3.125-5.625 1.141-1.854 2.563-3.254 3.75-5 1.172-.502 1.618-.984 3.126-1.25-3.6.578-3.915 1.867-6.251 3.75-1.094 1.779-2.181 3.633-3.125 5.625-.361 2.673-1.21 4.779-1.25 8.125 0 3.457.017 5.872 1.25 8.75 1.473 1.545 2.563 3.143 4.375 4.376 1.439 1.405 3.244 3.336 4.376 5 1.96 1.206 3.385 2.189 5.625 3.75 1.884 1.102 3.915 2.234 6.875 2.5 3.67-.262 4.755-1.297 7.5-2.5 2.329-1.713 4.163-2.838 6.25-4.375 1.629-1.141 3.288-3.403 4.375-5 3.382-.846 5.529-.508 7.5 1.25a16.536 16.536 0 0 1 4.375 4.375c1.02.51 2.73 1.99 3.75 2.5" transform="matrix(.09924 0 0 .09799 54.92 38.18)" stroke-width="2.339" fill="none"/> - <path d="M503.76 836.11c-.802.334-3.717 2.367-5 3.125-.8 2.631-2.077 4.069-2.5 6.875-.677 2.709-.625 5.692-.625 8.75.685 3.194 2.015 5.557 3.125 8.125 1.974 1.342 2.967 2.33 5.625 3.75 2.494.337 4.94.625 8.126.625 1.904.635 5.615.942 7.5 0 2.783-.376 4.854-1.507 6.875-2.5 2.306-1.307 3.728-2.542 6.25-3.75 1.225-1.801 3.13-3.46 5-5.625 1.556-2.105 2.7-3.286 3.75-5.625-.924 2.669-2.327 4.999-3.125 7.5-1.422 2.661-2.248 3.604-2.5 6.875-.871 2.613-.625 5.76-.625 8.75.274 2.031.418 5.837 1.25 7.5v1.875" transform="matrix(.12338 0 0 .12229 53.004 18.62)" stroke-width="1.878" fill="none"/> - <path d="M541.26 799.23v.625c0-1.687.041-.83-.625 2.5-1.179 1.462-3.944 1.868-6.25 1.25-2.022-1.67-1.96-2.935-5.625-3.75-3.542.253-4.892 1.279-6.875 2.5-2.354 1.177-3.438 1.771-5 4.375-.776 2.12-1.209 3.555 1.25 4.375 1.954 1.386 4.277 2.149 6.875 2.5 2.887 0 4.968-.339 6.25 1.25 1.983 2.055 1.875 3.277 1.875 6.875.667 1.112.799 4.394 1.25 5.625 1.736.823 2.755 1.25 5.625 1.25.674-1.931 1.423-5.419 1.875-7.5.489-2.248.64-5.379 1.875-6.875a16.58 16.58 0 0 1 4.375-4.375c.766-1.073 2.223-1.965 3.75-2.5-2.452 1.251-2.801 2.603-3.125 5.625 2.155 1.078 2.731 1.833 6.25 1.875 3.459-.291 4.295-1.169 5.625-3.125.242 3.136 1.243 4.186 1.875 6.875 1.286 1.891 1.832 3.828 3.125 6.25-.551 3.012-1.737 3.163-1.875 6.875-.811 2.435-.723 4.783-2.5 6.251-.792.968-1.384 1.158-3.125 1.25 3.618 0 5.727-.391 8.125-1.875 1.854-1.141 3.255-2.563 5.001-3.75 2.212-1.603 4.947-3.085 7.5-3.751 2.887 0 4.968-.339 6.25 1.25 1.77 1.265 2.959 3.447 3.75 6.251.579 3.244.8 5.404-.625 7.5-1.057 2.408-1.297 3.346 0 6.25 1.452 2.033 3.617 2.272 6.875 3.125 2.379-.128 4.668-.671 6.25-1.25" stroke-width="1.229" fill="none" transform="matrix(.19848 0 0 .17744 19.131 -14.073)"/> - </g> - <g stroke-width="1.311" fill-rule="evenodd" transform="matrix(.19848 0 0 .17744 19.131 -14.073)"> - <path d="M531.5 359.64c0-165.27 7.937-299.41 17.717-299.41 9.779 0 17.716 134.13 17.716 299.41H531.5z" transform="matrix(1.4216 -.73423 .46161 .89375 -716.84 541.07)" fill="#fff"/> - <path d="M531.5 359.64c0-165.27 7.937-299.41 17.717-299.41 9.779 0 17.716 134.13 17.716 299.41" transform="matrix(1.1373 -.58739 .44532 .86221 -554.83 471.77)" fill="#fff"/> - <path d="M563.39 301.18c.189 18.908 0 40.188 0 60.236h-28.347c0-20.048-.189-41.328 0-60.236h28.347z" transform="matrix(1.4216 -.73423 .45889 .88849 -716.67 541.39)" fill="#fff"/> - <path d="M559.84 304.72c.189 18.908 0 33.102 0 53.15h-21.26c0-20.048-.189-34.242 0-53.15h21.26z" transform="matrix(1.4216 -.73423 .45889 .88849 -716.67 541.39)" fill="#fff"/> - <path transform="matrix(1.4216 -.73423 .45889 .88849 -716.67 541.39)" fill="#fff" d="M542.13 311.81h14.173v38.976H542.13zM542.13 311.81l14.173 38.976M542.13 350.79l14.173-38.976M542.13 113.39h14.173"/> - <ellipse fill="#ef0000" transform="matrix(1.6046 .45375 -.36215 1.5787 -734.9 -170.85)" cx="545.67" rx="3.543" cy="92.126" ry="3.543"/> - </g> - <g fill-rule="evenodd" fill="#fff" transform="matrix(.19848 0 0 .17744 19.131 -14.073)"> - <path d="M305.61 396.85c0 124.02.491 170.76-5.62 177.17-5.79 6.857-167.12 0-167.12 35.433s132.87 70.867 172.74 70.866c53.149 0 79.723-35.433 79.723-106.3v-177.17H305.61z" transform="matrix(1.3333 0 0 1 -141.74 0)" stroke-width="1.311"/> - <path d="M265.75 396.85v17.717c35.433 5.906 70.866 5.906 106.3 0V396.85c-35.433 5.906-70.866 5.906-106.3 0z" transform="matrix(1 0 0 .99999 0 35.437)" stroke-width="1.311"/> - <path d="M265.75 396.85v17.717c35.433 5.906 70.866 5.906 106.3 0V396.85c-35.433 5.906-70.866 5.906-106.3 0z" transform="matrix(1 0 0 .99999 0 .004)" stroke-width="1.311"/> - <path d="M265.75 396.85v17.717c35.433 5.906 70.866 5.906 106.3 0V396.85c-35.433 5.906-70.866 5.906-106.3 0z" transform="matrix(1 0 0 .99999 0 17.721)" stroke-width="1.311"/> - <path d="M265.75 396.85v17.717c35.433 5.906 70.866 5.906 106.3 0V396.85c-35.433 5.906-70.866 5.906-106.3 0z" transform="matrix(1 0 0 .99999 0 53.154)" stroke-width="1.311"/> - <ellipse transform="matrix(.54545 0 0 .14383 130.46 394.32)" cx="256.89" rx="8.858" cy="210.83" ry="26.575" stroke-width="4.388"/> - <ellipse transform="matrix(.54545 0 0 .14383 130.46 391.13)" cx="292.32" rx="8.858" cy="246.26" ry="26.575" stroke-width="4.388"/> - <ellipse transform="matrix(.54545 0 0 .14383 130.46 390.49)" cx="327.76" rx="8.858" cy="263.98" ry="26.575" stroke-width="4.388"/> - <ellipse transform="matrix(.54545 0 0 .14383 130.46 390.49)" cx="363.19" rx="8.858" cy="263.98" ry="26.575" stroke-width="4.388"/> - <ellipse transform="matrix(.54545 0 0 .14383 130.46 391.13)" cx="398.62" rx="8.858" cy="246.26" ry="26.575" stroke-width="4.388"/> - <ellipse transform="matrix(.54545 0 0 .14383 130.46 394.32)" cx="434.06" rx="8.858" cy="210.83" ry="26.575" stroke-width="4.388"/> - <path d="M265.75 485.43l106.3 95.669M276.38 485.43l95.669 85.039M290.55 488.98l81.496 70.866M301.18 488.98l70.866 60.237M311.81 488.98l60.236 49.607M322.44 488.98l49.606 38.977M333.07 488.98l38.976 28.347M343.7 488.98l28.346 21.26M354.33 488.98l17.716 14.174M364.96 488.98l7.086 7.087M265.75 496.06l106.3 95.669M372.05 485.43l-116.93 106.3M361.42 485.43l-102.76 92.126M347.25 488.98l-81.496 70.866M336.62 488.98l-70.866 60.237M325.99 488.98l-60.236 49.607M315.36 488.98l-49.606 38.977M304.73 488.98l-38.976 28.347M294.1 488.98l-28.346 21.26M283.47 488.98l-17.716 14.174M272.84 488.98l-7.086 7.087M372.05 496.06l-116.93 106.3M372.05 506.69l-116.93 106.3M372.05 517.32l-116.93 106.3M372.05 527.95l-116.93 106.3M372.05 538.58l-116.93 106.3M372.05 549.21l-116.93 106.3M372.05 559.84l-116.93 106.3M372.05 570.47l-116.93 106.3M372.05 581.1l-109.84 99.21M372.05 591.73l-99.212 88.583M368.5 605.9l-77.953 70.866M364.96 620.08l-63.779 56.693M357.87 637.79l-31.89 28.346M265.75 506.69l102.76 92.126M265.747 517.327l102.76 92.126M265.747 527.957l99.213 88.583M265.747 538.587l99.213 88.583M265.753 549.213l95.67 85.039M262.204 556.303l95.669 85.04M262.204 566.933l88.583 77.953M258.663 574.013l88.583 77.953M255.114 581.103l85.04 74.409M255.113 591.73l81.496 70.865M255.113 602.36l70.866 63.779" stroke-width="1.311"/> - <path d="M265.75 396.85v17.717c35.433 5.906 70.866 5.906 106.3 0V396.85c-35.433 5.906-70.866 5.906-106.3 0z" transform="matrix(1 0 0 .99999 0 70.87)" stroke-width="1.311"/> - <path d="M255.114 612.99l63.78 56.692M255.114 623.62l56.693 49.606M255.113 634.25l49.606 42.519M255.114 644.88l35.434 31.889M255.114 655.51l28.347 24.804M255.113 666.14l17.716 14.173" stroke-width="1.311"/> - <ellipse transform="matrix(.54545 0 0 .14383 130.46 447.47)" cx="256.89" rx="8.858" cy="210.83" ry="26.575" stroke-width="4.388"/> - <ellipse transform="matrix(.54545 0 0 .14383 130.46 444.28)" cx="292.32" rx="8.858" cy="246.26" ry="26.575" stroke-width="4.388"/> - <ellipse transform="matrix(.54545 0 0 .14383 130.46 443.64)" cx="327.76" rx="8.858" cy="263.98" ry="26.575" stroke-width="4.388"/> - <ellipse transform="matrix(.54545 0 0 .14383 130.46 443.64)" cx="363.19" rx="8.858" cy="263.98" ry="26.575" stroke-width="4.388"/> - <ellipse transform="matrix(.54545 0 0 .14383 130.46 444.28)" cx="398.62" rx="8.858" cy="246.26" ry="26.575" stroke-width="4.388"/> - <ellipse transform="matrix(.54545 0 0 .14383 130.46 447.47)" cx="434.06" rx="8.858" cy="210.83" ry="26.575" stroke-width="4.388"/> - <path d="M113.39 651.97l127.55-74.41M106.303 648.427l120.47-70.87M102.76 641.341l109.84-63.78M99.217 634.254l95.669-56.693M92.127 627.16l88.583-49.606M95.667 616.537l60.236-35.433M92.127 609.454l46.063-28.346M92.124 598.817l31.89-17.717M124.013 655.507l120.47-70.86M134.647 659.054l113.38-67.32M145.28 662.6l106.3-63.78M155.91 666.144l88.583-53.15M170.083 666.136l77.952-46.063M180.713 669.68l67.323-38.976M191.336 673.227l53.15-31.89M205.51 673.233l42.52-24.803M219.68 676.777l28.347-17.717M233.863 676.773l17.717-10.63" stroke-width="1.311"/> - <path d="M265.75 396.85v17.717c35.433 5.906 70.866 5.906 106.3 0V396.85c-35.433 5.906-70.866 5.906-106.3 0z" transform="matrix(0 1 -.99999 0 655.51 308.27)" stroke-width="1.311"/> - <path d="M49.61 623.624l42.52-35.433M49.61 598.8l42.52 42.52" stroke-width="1.311"/> - <path d="M260.15 387.99l5.595 26.575c35.433 5.906 65.271 5.906 100.7 0l11.19-26.575c-35.433 5.906-82.056 5.906-117.49 0z" transform="matrix(0 .63333 -.8 0 423.78 416.34)" stroke-width="1.311"/> - <path d="M258.66 350.79v-17.865c-10.63.149-17.716-10.481-17.717-21.26l-35.432.149c0 10.63-7.087 21.26-17.717 21.26v17.716h70.866z" transform="matrix(1.4983 0 0 1 -15.633 53.149)" stroke-width="1.311"/> - <path stroke-width="1.356" d="M296.09 343.7h45.506v21.26H296.09zM299.88 322.44h37.922v21.26H299.88zM299.88 301.18h37.922v21.26H299.88zM303.67 272.83h30.337v28.346H303.67z"/> - <path stroke-width="1.413" d="M302.36 248.03h32.953v24.803H302.36z"/> - <ellipse transform="matrix(1.0333 0 0 1 75.354 63.779)" cx="237.4" rx="42.52" cy="161.22" ry="33.661" stroke-width="1.311"/> - <path d="M258.66 159.45c0 9.291 10.63 24.803 10.63 24.803-7.696 6.093-20.154 10.63-31.889 10.63s-26.349-2.528-31.89-10.63c0 0 10.63-15.512 10.63-24.803s-10.63-21.26-10.63-21.26c7.696-6.093 20.154-10.63 31.89-10.63 11.735 0 24.193 4.537 31.889 10.63 0 0-10.63 11.969-10.63 21.26z" transform="matrix(1.0333 0 0 1 75.354 63.779)" stroke-width="1.311"/> - <path d="M251.58 159.45c0 9.291 10.63 28.346 10.63 28.346-7.696 6.093-13.068 7.087-24.803 7.087s-19.262 1.015-24.803-7.087c0 0 10.63-19.055 10.63-28.346s-10.63-24.803-10.63-24.803c7.696-6.093 13.067-7.087 24.803-7.087 11.735 0 17.107.994 24.803 7.087 0 0-10.63 15.512-10.63 24.803z" transform="matrix(1.0333 0 0 1 75.354 63.779)" stroke-width="1.311"/> - <ellipse transform="matrix(1.0333 0 0 1 75.354 60.236)" cx="194.88" rx="10.63" cy="166.54" ry="10.63" stroke-width="1.311"/> - <ellipse transform="matrix(1.0333 0 0 1 163.23 60.236)" cx="194.88" rx="10.63" cy="166.54" ry="10.63" stroke-width="1.311"/> - <ellipse transform="matrix(1.0333 0 0 1 119.29 60.236)" cx="194.88" rx="10.63" cy="166.54" ry="10.63" stroke-width="1.311"/> - <ellipse transform="matrix(1.0333 0 0 1 119.29 24.803)" cx="194.88" rx="10.63" cy="166.54" ry="10.63" stroke-width="1.311"/> - <ellipse transform="matrix(1.0702 0 0 1 79.931 226.77)" cx="194.88" rx="10.63" cy="166.54" ry="10.63" stroke-width="1.311"/> - <ellipse transform="matrix(1.0702 0 0 1 140.61 226.77)" cx="194.88" rx="10.63" cy="166.54" ry="10.63" stroke-width="1.311"/> - <path d="M212.6 311.81h49.607l-24.803 31.89-24.804-31.89z" transform="matrix(1.0702 0 0 1 64.762 53.149)" stroke-width="1.311"/> - <ellipse transform="matrix(1.427 0 0 1.3333 40.745 167.72)" cx="194.88" rx="10.63" cy="166.54" ry="10.63" stroke-width="1.311"/> - </g> - <g fill-rule="evenodd" transform="matrix(.19848 0 0 .17744 18.78 -19.095)" fill="#fff"> - <rect rx="4.349" ry="3.687" height="21.26" width="81.496" y="524.41" x="262.2" stroke-width="1.229"/> - <path d="M368.51 506.69c-9.814 0-17.716 8.259-17.716 18.519v16.111c0 10.26 7.902 18.52 17.716 18.52 9.815 0 17.717-8.26 17.717-18.52v-16.111c0-10.26-7.902-18.519-17.717-18.519zm0 7.087c-5.888 0-10.63 6.608-10.63 14.816v9.345c0 8.208 4.742 14.816 10.63 14.816 5.889 0 10.63-6.608 10.63-14.816v-9.345c0-8.208-4.741-14.816-10.63-14.816zM276.38 510.24c-5.888 0-10.63 6.608-10.63 14.816v16.432c0 8.208 4.742 14.816 10.63 14.816 5.889 0 10.63-6.608 10.63-14.816v-16.432c0-8.208-4.741-14.816-10.63-14.816zm0-7.087c-9.814 0-17.716 8.259-17.716 18.519v23.198c0 10.26 7.902 18.52 17.716 18.52 9.815 0 17.717-8.26 17.717-18.52v-23.198c0-10.26-7.902-18.519-17.717-18.519z" stroke-width="1.229"/> - <path d="M248.03 517.32c-5.888 0-10.63 6.608-10.63 14.816l-.001 3.864c0 8.208 4.742 14.816 10.63 14.816 5.889 0 10.63-6.608 10.63-14.816l.001-3.864c0-8.208-4.741-14.816-10.63-14.816zm0-7.087c-9.814 0-17.716 8.259-17.716 18.519l-.001 10.63c0 10.26 7.902 18.52 17.716 18.52 9.815 0 17.717-8.26 17.717-18.52l.001-10.63c0-10.26-7.902-18.519-17.717-18.519z" stroke-width="1.229"/> - <path d="M478.35 237.4c-5.888 0-10.63 6.608-10.63 14.816v16.432c0 8.208 4.742 14.816 10.63 14.816 5.889 0 10.63-6.608 10.63-14.816v-16.432c0-8.208-4.741-14.816-10.63-14.816zm0-7.087c-9.814 0-17.716 8.259-17.716 18.519v23.198c0 10.26 7.902 18.52 17.716 18.52 9.815 0 17.717-8.26 17.717-18.52v-23.198c0-10.26-7.902-18.519-17.717-18.519z" transform="matrix(1.8 0 0 1.1176 -655.51 242.2)" stroke-width=".867"/> - <path d="M478.35 237.4c-5.888 0-10.63 6.608-10.63 14.816v16.432c0 8.208 4.742 14.816 10.63 14.816 5.889 0 10.63-6.608 10.63-14.816v-16.432c0-8.208-4.741-14.816-10.63-14.816zm0-7.087c-9.814 0-17.716 8.259-17.716 18.519v23.198c0 10.26 7.902 18.52 17.716 18.52 9.815 0 17.717-8.26 17.717-18.52v-23.198c0-10.26-7.902-18.519-17.717-18.519z" transform="matrix(1.8 0 0 1.1176 -425.2 245.74)" stroke-width=".867"/> - <rect rx="2.269" ry="3.687" height="21.26" width="42.52" y="524.41" x="375.59" stroke-width="1.229"/> - <rect rx="1.324" ry="4.916" height="28.346" width="24.803" y="520.87" x="336.61" stroke-width="1.229"/> - <rect rx="1.324" ry="4.916" height="28.346" width="24.803" y="520.87" x="219.69" stroke-width="1.229"/> - <rect rx="2.647" ry="6.145" height="35.433" width="49.606" y="517.32" x="141.73" stroke-width="1.229"/> - <rect rx="2.458" ry="6.145" height="35.433" width="46.063" y="520.87" x="450" stroke-width="1.229"/> - </g> - </g> - </g> -</svg> diff --git a/img/flags/4x3/pa.svg b/img/flags/4x3/pa.svg deleted file mode 100644 index 03e4605..0000000 --- a/img/flags/4x3/pa.svg +++ /dev/null @@ -1,14 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" height="480" width="640" viewBox="0 0 640 480"> - <defs> - <clipPath id="a"> - <path fill-opacity=".67" d="M0 0h640v480H0z"/> - </clipPath> - </defs> - <g clip-path="url(#a)"> - <path fill="#fff" d="M0 0h640v480H0z"/> - <path fill-rule="evenodd" fill="#fff" d="M92.462 0h477.19v480H92.462z"/> - <path fill-rule="evenodd" fill="#db0000" d="M323.07 3.655h358v221.68h-358z"/> - <path fill-rule="evenodd" fill="#0000ab" d="M3.227 225.33h319.87v254.66H3.227zM214.8 177.65l-41.959-29.326-41.754 29.614 15.529-48.124-41.677-29.716 51.562-.414 15.993-47.978 16.335 47.867 51.562.063-41.463 29.996 15.872 48.017z"/> - <path d="M516.85 413.89l-42.354-27.744-42.146 28.017 15.675-45.529-42.069-28.114 52.047-.392 16.143-45.391 16.489 45.286 52.047.06-41.853 28.379 16.021 45.428z" fill-rule="evenodd" fill="#d80000"/> - </g> -</svg> diff --git a/img/flags/4x3/pe.svg b/img/flags/4x3/pe.svg deleted file mode 100644 index 3cacbcc..0000000 --- a/img/flags/4x3/pe.svg +++ /dev/null @@ -1,320 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" height="480" width="640" viewBox="0 0 640 480"> - <path fill="#d91023" d="M0 0h640v480H0z"/> - <path fill="#fff" d="M213.333 0h213.333v480H213.333z"/> - <g transform="matrix(.17778 0 0 .17778 245.333 154.089)" stroke="#d4af37" stroke-width="2" fill="#00a854"> - <g transform="matrix(.44722 -.20656 .2582 .35777 89.404 -67.294)" id="g" stroke-width="4.33"> - <path d="M480.212 566.87c31.28 33.04 62.37 68.152 78.925 111.21 25.21 69.711 18.346 151.527-22.518 213.983-34.388 51.789-85.32 91.514-141.97 116.401-51.945 21.524-112.113 23.773-164.827 3.54-20.114-7.373-38.889-17.914-57.51-28.315-8.441-1.44-13.874 8.648-6.988 13.292 62.35 40.624 130.86 42.249 202.053 28.197 36.106-9.534 69.76-27.273 98.991-50.401 44.36-33.229 82.625-77.439 99.76-130.902 26.131-78.994 9.286-171.344-45.167-234.649-13.723-16.785-28.875-32.351-44.687-47.168l3.938 4.813z"/> - <path d="M170.57 983.29c-8.079-.843-12.167 11.815-5.077 13.643 4.182-1.01 10.665-12.011 5.076-13.642zM474.835 552.405c-4.503-5.593-14.062-2.886-17.759-7.3-3.94-4.706 2.887-6.51-.226-9.991-3.113-3.48-7.746-1.747-11.998-6.498-4.251-4.75-.422-8.776-4.09-12.099-3.667-3.322-4.171.887-8.372-3.724-4.2-4.612-1.717-12.71-6.304-18.558-4.481-5.712-2.984-12.5 2.496-11.257 3.644.826 5.064 4.385 10.468 5.756 5.404 1.372 7.577-2.577 11.118.904 3.542 3.481.308 9.122 4.105 13.971 3.798 4.85 5.83 1.303 8.515 5.626 2.686 4.323.5 6.61 2.228 11.666 1.729 5.056 8.377 3.105 10.869 10.748 2.492 7.643-1.05 20.756-1.05 20.756z"/> - <path d="M478.146 564.793c-5.561-26.182-26.97-56.915-52.595-79.474 15.222 11.956 44.848 40.53 54.361 79.28l-1.766.194z"/> - <path d="M460.18 524.426c-4.162-2.885-7.254-2.85-10.507-3.257 2.963-.163 5.873-.472 9.492 1.156l1.014 2.101zM445.001 505.477c-4.502-1.455-7.443-.392-10.62.29 2.794-1.147 5.51-2.419 9.262-2.021l1.358 1.73zM449.378 508.855c-2.195-5.54-2.198-9.678-2.533-14.028-.094 3.967-.298 7.863.952 12.69l1.58 1.338zM462.899 527.04c-2.195-5.54-2.198-9.677-2.533-14.027-.094 3.966-.298 7.863.953 12.69l1.58 1.338zM555.176 682.062c-8.257-3.177-17.17-.031-23.877-2.453-7.148-2.582 1.14-8.575-4.41-10.366-5.548-1.79-10.208 5.644-17.785 3.202-7.578-2.442-6.322-10.125-12.54-11.417-6.218-1.291-6.37 7.191-13.822 4.865-7.453-2.327-7.5-12.33-15.974-15.724-8.276-3.314-9.088-11.348-1.33-13.33 5.16-1.318 10.29 1.936 18.002.135s6.976-8.643 13.093-7.11c6.116 1.535 4.355 10.427 11.373 13.246 7.017 2.818 11.366-4.905 16.697-1.972 5.33 2.932.26 9.424 4.625 13.701 4.367 4.277 7.736-2.34 14.176 4.2 6.44 6.538 11.772 23.023 11.772 23.023z"/> - <path d="M563.504 691.584c-22.904-25.577-58.656-41.392-101.83-49.728 25.052 3.433 76.71 14.954 105.234 49.976l-3.404-.248z"/> - <path d="M524.282 661.447c-6.69-.536-10.766 1.355-15.236 2.88 3.851-1.95 7.573-4.02 13.029-4.48l2.207 1.6zM496.411 650.636c-6.554 1.172-10.006 4.054-13.927 6.677 3.224-2.882 6.292-5.848 11.419-7.682l2.508 1.005zM503.589 651.561c-5.183-4.507-6.89-8.854-9.121-13.225 1.507 4.226 2.841 8.443 6.48 12.767l2.64.458zM528.954 662.563c-5.183-4.507-6.89-8.854-9.121-13.225 1.507 4.226 2.84 8.443 6.48 12.767l2.64.458zM554.74 885.605c6.924-5.379 9.128-14.933 14.625-19.391 5.859-4.753 6.268 5.877 10.646 2.066 4.377-3.81.889-12.104 6.864-17.31 5.974-5.206 11.467.264 15.799-4.413 4.332-4.678-2.387-9.643 3.43-14.807 5.815-5.163 13.859.495 21.071-4.949 7.045-5.317 13.915-1.447 11.39 6.438-1.679 5.243-7.007 7.856-9.652 15.597-2.645 7.74 3.23 10.999-1.243 15.45-4.472 4.452-10.667-2.148-16.646 2.356-5.98 4.504-2.095 12.69-7.272 15.661-5.177 2.97-7.692-5.144-13.435-3.78-5.743 1.366-2.226 8.069-10.882 9.95-8.655 1.883-24.696-2.868-24.696-2.868z"/> - <path d="M542.691 887.43c32.645-5.369 64.277-27.486 93.849-60.328-16.034 19.857-52.657 58.27-95.853 63.151l2.004-2.822z"/> - <path d="M587.643 870.452c3.977-5.52 4.621-10.146 5.77-14.907-.48 4.464-.794 8.885-3.317 13.897l-2.453 1.01zM611.085 852.345c2.535-6.374 2.056-11.022 2.032-15.93.6 4.448 1.352 8.81.103 14.318l-2.135 1.612zM606.538 858.067c6.36-1.944 10.75-.953 15.437-.406-4.187-1.095-8.275-2.337-13.67-1.631l-1.767 2.037zM584.271 873.884c6.36-1.945 10.75-.954 15.437-.406-4.187-1.096-8.275-2.337-13.67-1.632l-1.767 2.038zM586.501 789.94c5.85-6.618 6.32-16.43 10.93-21.87 4.915-5.797 7.205 4.57 10.83-.016 3.626-4.587-1.275-12.066 3.673-18.331 4.947-6.266 11.317-1.946 14.743-7.376 3.427-5.43-4.058-9.018.742-15.21 4.799-6.194 13.709-2.18 19.83-8.917 5.98-6.58 13.42-4.098 12.338 4.136-.72 5.476-5.492 9.068-6.717 17.184-1.225 8.116 5.127 10.189 1.522 15.423-3.605 5.235-10.865-.06-15.942 5.517-5.077 5.576.195 12.875-4.366 16.79-4.56 3.914-8.473-3.577-13.875-1.13-5.402 2.445-.755 8.356-8.927 11.87-8.173 3.514-24.78 1.93-24.78 1.93z"/> - <path d="M574.984 794.051c31.13-11.555 58.291-39.374 81.522-77.336-12.232 22.597-41.404 67.391-82.99 80.496l1.468-3.16z"/> - <path d="M616.148 768.72c2.928-6.189 2.74-10.86 3.023-15.759.322 4.48.798 8.884-.792 14.296l-2.23 1.463zM635.972 746.418c1.36-6.752.063-11.227-.832-16.047 1.38 4.257 2.893 8.4 2.644 14.052l-1.812 1.995zM632.52 752.916c5.905-3.134 10.394-3.004 15.098-3.368-4.309-.271-8.547-.705-13.724 1.025l-1.375 2.343zM613.444 772.742c5.905-3.135 10.395-3.005 15.099-3.368-4.309-.272-8.547-.706-13.724 1.025l-1.375 2.343zM567.287 741.198c-7.882-5.63-18.267-4.844-24.713-9.25-6.871-4.697 3.657-8.628-1.737-12.051-5.395-3.424-12.475 3.027-19.843-1.644-7.368-4.672-3.841-12.336-10.09-15.426-6.25-3.09-8.83 5.718-16.099 1.202s-4.466-14.966-12.516-20.881c-7.863-5.778-6.436-14.388 2.386-14.282 5.868.07 10.4 4.904 19.12 5.186 8.722.281 5.015-4.332 11.087-1.017 6.073 3.314 4.839 12.095 11.504 17.002 6.665 4.907 15.195-4.66 20.032-.107 4.837 4.554-2.411 9.907 1.016 15.593s8.9-.273 13.89 8.353c4.99 8.627 5.963 27.322 5.963 27.322z"/> - <path d="M573.434 753.467c-17.083-33.105-50.623-59.625-94.197-80.421 25.684 10.602 77.379 37.099 97.75 81.634l-3.553-1.213z"/> - <path d="M540.285 711.031c-6.968-2.434-11.845-1.602-17.038-1.264 4.656-.955 9.207-2.073 15.145-1.024l1.893 2.288zM513.705 691.94c-7.31-.612-11.806 1.427-16.727 3.065 4.253-2.103 8.365-4.339 14.344-4.815l2.383 1.75zM521.08 694.918c-4.23-6.155-4.807-11.169-5.936-16.355.4 4.831.616 9.606 3.257 15.137l2.68 1.218zM544.939 713.505c-4.23-6.155-4.807-11.169-5.936-16.355.399 4.831.616 9.606 3.256 15.137l2.68 1.218zM588.02 750.362c4.442-7.713 2.994-17.422 6.451-23.72 3.685-6.712 7.945 2.959 10.603-2.297 2.659-5.256-3.596-11.547.03-18.725 3.628-7.177 10.705-4.289 13.005-10.328 2.3-6.04-5.728-7.976-2.232-15.052 3.495-7.076 13.002-5.022 17.686-12.908 4.577-7.704 12.345-6.84 12.887 1.45.361 5.515-3.615 10.038-3.236 18.244.38 8.205 7.003 8.897 4.49 14.783-2.512 5.886-10.651 2.23-14.539 8.76-3.887 6.53 2.695 12.567-1.01 17.361-3.704 4.795-8.993-1.717-13.808 1.816-4.815 3.533.886 8.343-6.434 13.506-7.32 5.162-23.893 7.11-23.893 7.11z"/> - <path d="M577.541 756.813c28.24-17.872 49.428-50.836 64.795-92.905-7.584 24.705-27.44 74.716-65.618 96.309l.823-3.404z"/> - <path d="M612.927 723.337c1.664-6.678.572-11.212-.104-16.07 1.186 4.32 2.51 8.532 2.005 14.166l-1.9 1.904zM628.003 697.32c.019-6.898-2.122-11.007-3.936-15.538 2.18 3.877 4.467 7.615 5.323 13.203l-1.387 2.335zM625.886 704.411c5.174-4.313 9.596-5.132 14.132-6.478-4.273.641-8.508 1.11-13.241 3.895l-.891 2.583zM611.06 727.844c5.175-4.313 9.597-5.132 14.133-6.478-4.273.641-8.508 1.11-13.241 3.895l-.891 2.583z"/> - <g> - <path d="M557.393 638.911c3.616-8.648.844-18.542 3.621-25.58 2.96-7.5 8.651 1.957 10.732-3.884 2.081-5.842-5.245-11.503-2.407-19.48s10.578-5.97 12.184-12.576c1.606-6.606-6.999-7.488-4.284-15.34 2.715-7.853 12.873-7.057 16.72-15.92 3.757-8.658 11.951-8.855 13.596-.309 1.094 5.685-2.453 10.95-.99 19.43 1.463 8.482 8.444 8.267 6.597 14.743-1.847 6.476-10.791 3.821-13.985 11.162-3.194 7.34 4.44 12.69 1.211 18.2-3.23 5.508-9.58-.518-14.13 3.835-4.548 4.354 2.01 8.552-4.934 14.954-6.943 6.403-23.931 10.765-23.931 10.765z"/> - <path d="M547.331 647.1c27.05-22.572 44.8-59.846 55.309-105.768-4.672 26.765-18.816 81.581-55.722 109.423l.413-3.656z"/> - <path d="M579.785 607.29c.86-7.18-.866-11.741-2.202-16.699 1.796 4.326 3.722 8.52 3.931 14.452l-1.73 2.247zM592.08 578.105c-.879-7.177-3.64-11.15-6.118-15.606 2.772 3.725 5.64 7.29 7.257 12.982l-1.138 2.624zM590.801 585.779c4.821-5.216 9.315-6.69 13.859-8.731-4.361 1.27-8.707 2.353-13.268 5.918l-.59 2.813zM578.43 612.242c4.821-5.216 9.315-6.691 13.859-8.731-4.362 1.27-8.707 2.353-13.269 5.918l-.59 2.813z"/> - </g> - <g> - <path d="M533.383 605.314c4.26-6.586-1.069-18.724 2.254-24.109 3.541-5.739 7.22 2.947 9.785-1.556 2.564-4.504-.434-10.335 3.065-16.486 3.5-6.15 8.534-1.658 10.788-6.866 2.254-5.208-2.035-5.336 1.341-11.402 3.377-6.067 12.051-3.846 16.538-10.574 4.383-6.571 11.49-5.472 11.791 1.839.2 4.863-2.913 7.166-2.76 14.395.152 7.229 4.65 9.567 2.204 14.63-2.446 5.064-8.907 1.554-12.63 7.124-3.723 5.57.338 7.774-3.175 11.827-3.514 4.052-6.377 1.487-10.88 4.382-4.502 2.895-.728 11.329-7.568 15.547s-20.753 1.249-20.753 1.249z"/> - <path d="M522.094 611.2c24.26-10.566 48.596-42.396 63.7-78.703-7.548 21.385-27.469 63.674-63.017 80.985l-.683-2.282z"/> - <path d="M556.883 582.647c1.686-5.797.792-9.83.287-14.13.986 3.85 2.1 7.61 1.503 12.54l-1.79 1.59zM571.338 560.438c.18-6.063-1.686-9.768-3.242-13.83 1.908 3.503 3.918 6.889 4.57 11.838l-1.328 1.992zM569.226 566.578c4.85-3.565 8.928-4.091 13.122-5.077-3.936.378-7.833.604-12.243 2.845l-.88 2.232zM555.063 586.528c4.85-3.566 8.928-4.092 13.123-5.077-3.936.377-7.834.603-12.244 2.845l-.879 2.232z"/> - </g> - <g> - <path d="M381.788 1012.273c3.569-9.036.931-19.718 3.674-27.08 2.923-7.845 8.403 2.52 10.462-3.601 2.06-6.121-5.034-12.523-2.226-20.882 2.808-8.358 10.325-5.832 11.926-12.792 1.601-6.959-6.764-8.331-4.076-16.563 2.687-8.233 12.564-6.875 16.358-16.128 3.706-9.039 11.678-8.837 13.227.354 1.03 6.113-2.451 11.546-1.078 20.658 1.374 9.112 8.166 9.234 6.33 16.043-1.834 6.81-10.52 3.53-13.67 11.194-3.15 7.662 4.245 13.748 1.071 19.457-3.174 5.709-9.316-1.033-13.767 3.379-4.45 4.411 1.903 9.215-4.888 15.69-6.792 6.474-23.343 10.271-23.343 10.271z"/> - <path d="M375.216 1016.418c26.447-22.698 40.67-57.455 51.163-105.87-4.703 28.292-15.521 81.925-51.587 109.746l.424-3.876z"/> - <path d="M403.757 979.697c.88-7.61-.773-12.557-2.044-17.907 1.722 4.7 3.57 9.266 3.739 15.598l-1.695 2.309zM415.89 949.21c-.813-7.694-3.476-12.066-5.86-16.94 2.675 4.11 5.443 8.053 6.983 14.2l-1.123 2.74zM414.6 957.324c4.72-5.317 9.1-6.663 13.533-8.61-4.25 1.135-8.484 2.072-12.942 5.642l-.591 2.968zM402.41 984.906c4.72-5.317 9.1-6.663 13.532-8.61-4.25 1.135-8.483 2.072-12.942 5.642l-.59 2.968z"/> - </g> - <g> - <path d="M561.082 832.168c-7.131-7.46-19.244-10.076-25.142-16.004-6.287-6.318 7.034-6.423 2.01-11.151-5.023-4.73-15.242-1.31-22.104-7.764-6.862-6.454-.297-12.072-6.405-16.78-6.11-4.707-11.974 2.218-18.774-4.068-6.8-6.286-.138-14.585-7.367-22.35-7.06-7.585-2.579-14.703 7.456-11.801 6.675 1.93 10.246 7.624 20.107 10.648 9.861 3.025 13.63-3.063 19.462 1.785 5.833 4.849-2.112 11.171 3.87 17.609 5.98 6.438 16.044 2.598 20.056 8.142 4.013 5.545-6.035 7.945-4.007 14.037 2.027 6.092 10.249 2.594 13.085 11.77 2.837 9.176-2.247 25.927-2.247 25.927z"/> - <path d="M540.258 797.04c-7.147-4.36-12.989-5.181-19.028-6.537 5.63.643 11.196 1.109 17.626 3.922l1.402 2.614zM516.245 771.787c-8.14-2.867-13.947-2.505-20.108-2.63 5.552-.496 10.986-1.153 17.968.331l2.14 2.299zM523.677 776.753c-2.79-6.76-1.786-11.353-1.355-16.274-1.146 4.376-2.48 8.645-1.3 14.35l2.655 1.924zM544.75 800.697c-2.789-6.76-1.785-11.353-1.355-16.274-1.146 4.376-2.48 8.645-1.3 14.35l2.655 1.924z"/> - <path d="M561.704 840.054c-8.529-34.554-35.695-63.696-78.54-95.86 25.804 17.503 73.699 52.404 82.193 98.058l-3.653-2.198z"/> - </g> - <g id="d"> - <path d="M527.296 890.544c-3.353-8.85-19.798-13.112-22.673-20.186-3.064-7.54 9.126-5.225 6.542-10.926-2.584-5.701-13.345-4.096-16.877-11.879-3.532-7.782 4.826-12.277 1.244-18.154-3.583-5.876-11.854.07-15.4-7.532-3.547-7.6 6.031-14.792 2.719-23.969-3.235-8.964 3.857-15.356 11.781-10.593 5.271 3.167 6.123 9.582 13.838 14.436 7.715 4.855 13.721-.624 16.993 5.346 3.271 5.97-6.643 10.926-3.907 18.532 2.736 7.606 13.533 5.547 14.85 11.89 1.318 6.344-8.857 6.948-9.58 13.485-.724 6.537 8.25 4.488 6.962 14.295-1.288 9.807-6.492 25.255-6.492 25.255z"/> - <path d="M520.011 853.111c-4.675-5.713-13.031-8.939-17.965-11.41 4.862 1.675 13.116 4.49 17.792 8.508l.173 2.902zM510.082 828.225c.311-7.352 3.166-11.82 5.636-16.725-2.893 4.223-5.912 8.302-7.244 14.293l1.608 2.432zM522.503 854.289c.311-7.352-.15-9.81 2.32-14.714-2.892 4.222-2.596 6.292-3.928 12.283l1.608 2.431z"/> - <path d="M525.2 906.633c6.813-36.538-12.825-78.385-38.311-118.74 16.138 22.413 52.245 73.859 40.713 121.63l-2.402-2.89z"/> - <path d="M505.403 821.845c-6.213-4.382-11.66-5.071-17.225-6.319 5.271.507 10.504.83 16.244 3.602l.98 2.717z"/> - </g> - <g> - <path d="M493.56 566.123c-1.927-7.016-11.717-8.589-13.368-14.187-1.76-5.967 5.18-4.726 3.698-9.223-1.483-4.498-6.394-4.876-8.42-11.015-2.028-6.14 3.044-8.197.993-12.785-2.052-4.588-4.158-.956-6.193-6.947-2.035-5.99 3.4-12.339 1.494-19.622-1.861-7.115 2.16-12.683 6.68-9.229 3.006 2.298 2.912 6.15 7.313 9.69 4.4 3.541 7.928.853 9.803 5.533 1.875 4.68-3.284 8.464-1.71 14.502 1.573 6.037 4.815 3.657 5.578 8.743.764 5.087-2.126 6.251-2.523 11.602-.398 5.35 6.438 6.382 5.727 14.42-.71 8.037-9.071 18.518-9.071 18.518z"/> - <path d="M491.743 578.842c5.153-26.274-2.39-63.414-16.983-94.87 9.233 17.366 25.128 56.012 18.673 95.44l-1.69-.57z"/> - <path d="M491.108 534.358c-2.673-4.397-5.511-5.675-8.324-7.424 2.77 1.106 5.55 2.055 8.219 5.074l.105 2.35zM484.65 510.62c-3.545-3.235-6.647-3.508-9.815-4.23 3 .135 5.978.123 9.25 2.074l.565 2.157zM487.327 515.56c.16-5.991 1.774-9.773 3.169-13.888-1.636 3.584-3.345 7.057-4.09 11.996l.92 1.892zM492.57 537.898c.16-5.991 1.775-9.773 3.17-13.888-1.637 3.583-3.346 7.057-4.09 11.996l.92 1.892z"/> - </g> - <g> - <path d="M509.672 575.22c-.207-6.888-6.92-11.393-7.205-16.889-.304-5.858 14.644-4.381 14.25-8.797-.392-4.416-5.461-4.804-6.001-10.832-.54-6.028 5.332-8.027 4.364-12.534-.968-4.506-4.128-.952-4.714-6.834-.586-5.883 1.959-12.396 1.845-19.545-.112-6.984 5.565-12.43 9.425-9.027 2.567 2.264 1.468 6.042 5.18 9.53 3.712 3.486 8.359.996 11.29 4.523 2.915 3.507 2.309 6.345 2.397 12.272.09 5.926 4.118 3.603 3.602 8.594-.517 4.99-3.861 6.123-5.668 11.368-1.807 5.246 5.12 6.282 2.285 14.161-2.835 7.88-31.05 24.01-31.05 24.01z"/> - <path d="M499.22 585.584c24.422-21.57 36.501-63.212 18.317-93.996 8.18 15.13 12.468 31.125 8.112 50.275-3.15 13.846-10.823 30.446-24.8 44.286l-1.63-.565z"/> - <path d="M522.267 550.763c-1.672-4.322-6.172-9.786-8.678-11.51 2.628 1.093 7.152 6.235 9.177 9.205l-.499 2.305zM526.287 523.946c-2.89-3.185-6.084-3.465-9.23-4.183 3.121.143 6.259.14 9.196 2.066l.034 2.117zM527.441 524.146c1.724-5.874 4.405-9.577 6.94-13.608-2.652 3.509-5.352 6.91-7.417 11.75l.477 1.858zM523.17 551.67c1.723-5.874 7.855-3.776 12.463-5.225-3.495.052-10.876-1.474-12.942 3.368l.478 1.857z"/> - </g> - <g> - <path d="M478.903 575.873c-6.493-4.618-4.563-15.69-9.703-19.496-5.479-4.057-6.718 3.84-10.79.614-4.074-3.225-2.685-8.63-8.243-13.035-5.56-4.406-9.503.287-13.463-3.581-3.96-3.868.525-4.807-4.88-9.168-5.403-4.36-13.875-.838-20.651-5.53-6.62-4.581-13.78-2.292-11.875 3.812 1.267 4.06 5.25 5.359 7.286 11.366 2.037 6.006-1.995 8.813 2.123 12.525 4.118 3.712 9.864-.446 15.482 3.436 5.619 3.882 2.006 6.494 6.943 9.162 4.937 2.668 7.176-.009 12.804 1.51 5.627 1.519 4.21 9.225 12.706 11.384 8.495 2.16 22.261-2.999 22.261-2.999z"/> - <path d="M492.596 578.547c-28.791-4.023-64.127-25.614-91.088-52.699 14.459 16.215 48.316 47.311 91.062 54.718l.026-2.02z"/> - <path d="M447.235 561.697c-3.54-4.466-3.822-7.974-4.597-11.627.13 3.374.099 6.7 2.227 10.66l2.37.967zM425.243 546.142c-2.033-4.978-1.192-8.404-.785-12.065-.947 3.267-2.037 6.457-1.22 10.676l2.005 1.389zM429.337 550.809c-6.199-2.006-10.658-1.649-15.38-1.649 4.264-.452 8.443-1.023 13.774-.026l1.606 1.675zM450.334 564.552c-6.199-2.005-10.658-1.648-15.38-1.648 4.264-.453 8.443-1.023 13.774-.027l1.606 1.675z"/> - </g> - <g> - <path d="M500.517 605.577c-8.06-3.492-6.615-15.421-13.007-18.344-6.814-3.114-7.68 5.366-12.762 2.833-5.082-2.534-3.845-8.447-10.78-11.909-6.936-3.461-11.258 2.23-16.254-.997-4.996-3.226.255-5.115-6.493-8.56-6.748-3.446-16.535 1.944-24.936-1.567-8.207-3.43-16.533.41-13.805 6.384 1.815 3.972 6.641 4.517 9.518 10.363 2.876 5.845-1.695 9.59 3.476 12.62 5.172 3.032 11.675-2.469 18.64.435 6.966 2.905 2.878 6.36 8.942 8.137 6.064 1.777 8.517-1.468 15.313-1.028 6.796.44 5.704 8.758 15.953 9.281 10.248.524 26.195-7.648 26.195-7.648z"/> - <path d="M516.976 605.581c-34.484 1.658-78.077-13.661-112.15-36.407 18.4 13.96 60.967 39.483 112.273 38.517l-.123-2.11z"/> - <path d="M461.843 597.24c-4.542-3.935-5.146-7.533-6.345-11.182.413 3.488.63 6.96 3.458 10.655l2.887.527zM434.55 585.499c-2.794-4.774-2.057-8.516-1.853-12.413-.875 3.597-1.925 7.142-.634 11.373l2.487 1.04zM439.766 589.53c-7.51-.83-12.777.447-18.383 1.407 5.028-1.338 9.945-2.782 16.35-2.826l2.033 1.419zM465.74 599.585c-7.511-.83-12.777.447-18.383 1.407 5.028-1.338 9.944-2.781 16.35-2.826l2.033 1.419z"/> - </g> - <g> - <path d="M517.502 629.672c-8.279-2.962-7.618-14.951-14.193-17.452-7.009-2.666-7.318 5.846-12.559 3.648-5.24-2.198-4.393-8.174-11.546-11.178-7.152-3.004-11.095 2.95-16.296.055-5.2-2.894-.08-5.117-7.045-8.117-6.965-3-16.384 3.007-25.005.048-8.42-2.89-16.482 1.477-13.366 7.257 2.073 3.844 6.928 4.076 10.184 9.72 3.255 5.643-1.063 9.67 4.3 12.36 5.363 2.688 11.496-3.216 18.642-.77 7.147 2.446 3.291 6.155 9.463 7.536 6.172 1.38 8.409-2.014 15.224-2.014 6.816-.001 6.27 8.364 16.539 8.225 10.269-.14 25.658-9.318 25.658-9.318z"/> - <path d="M533.937 628.613c-34.327 3.88-78.864-8.58-114.381-29.062 19.291 12.731 63.471 35.434 114.642 31.158l-.261-2.096z"/> - <path d="M478.335 623.855c-4.795-3.63-5.633-7.179-7.07-10.74.641 3.452 1.085 6.9 4.152 10.402l2.918.338zM450.31 613.91c-3.104-4.58-2.613-8.359-2.666-12.258-.637 3.643-1.453 7.247.114 11.382l2.552.876zM455.782 617.593c-7.554-.344-12.73 1.271-18.264 2.59 4.933-1.66 9.748-3.416 16.14-3.874l2.124 1.284zM482.38 625.942c-7.555-.343-12.73 1.271-18.265 2.59 4.933-1.659 9.748-3.415 16.14-3.874l2.124 1.284z"/> - </g> - <g id="a"> - <path d="M207.197 997.382c6.594-4.258 15.187-3.229 20.577-6.552 5.746-3.542-2.93-7.124 1.577-9.691 4.508-2.568 10.299 2.924 16.456-.579s3.323-9.842 8.535-12.107c5.212-2.265 7.249 4.965 13.322 1.584 6.072-3.38 3.87-11.948 10.607-16.432 6.58-4.38 5.496-11.406-1.813-11.654-4.862-.166-8.671 3.576-15.899 3.473-7.227-.103-8.111-6.094-13.18-3.641-5.068 2.453-1.515 9.734-7.092 13.454-5.577 3.72-11.157-2.076-15.216 1.427-4.06 3.503 1.884 8.112-1.02 12.586s-7.37-.559-11.601 6.237c-4.233 6.796-5.253 21.895-5.253 21.895z"/> - <path d="M201.964 1007.083c14.53-26.156 42.618-46.357 78.95-61.542-21.397 7.61-64.522 27.103-81.906 62.39l2.956-.848z"/> - <path d="M229.91 973.981c5.8-1.706 9.83-.848 14.128-.377-3.846-.95-7.603-2.027-12.534-1.404l-1.594 1.781zM252.146 959.533c6.062-.22 9.763 1.602 13.82 3.115-3.498-1.864-6.878-3.83-11.826-4.443l-1.994 1.327zM246.003 961.663c3.575-4.823 4.11-8.86 5.104-13.017-.386 3.897-.62 7.754-2.87 12.133l-2.234.884zM226.026 975.808c3.575-4.823 4.11-8.86 5.105-13.017-.386 3.896-.62 7.754-2.871 12.132l-2.234.885z"/> - </g> - <g id="b"> - <path d="M210.31 1024.483c9.07 3.59 19.283 0 26.659 2.74 7.86 2.916-1.833 9.73 4.283 11.752 6.117 2.023 11.83-6.42 20.182-3.663 8.353 2.757 6.447 11.475 13.346 12.93 6.9 1.455 7.619-8.17 15.839-5.544 8.22 2.627 7.627 13.976 16.924 17.811 9.081 3.746 9.475 12.86.633 15.122-5.88 1.505-11.432-2.178-20.209-.12-8.777 2.057-8.393 9.818-15.164 8.089-6.77-1.73-4.218-11.822-11.918-15.007-7.7-3.185-13.082 5.584-18.88 2.267-5.797-3.318.317-10.693-4.31-15.538-4.628-4.844-8.839 2.668-15.65-4.738-6.81-7.407-11.734-26.101-11.734-26.101z"/> - <path d="M201.572 1013.693c24.073 28.978 63.205 46.859 111.156 56.24-27.914-3.851-85.188-16.83-114.963-56.515l3.807.275z"/> - <path d="M243.677 1047.816c7.48.597 12.179-1.557 17.298-3.294-4.452 2.218-8.765 4.574-14.923 5.107l-2.375-1.812zM274.281 1060.033c7.437-1.342 11.5-4.618 16.073-7.601-3.807 3.275-7.445 6.647-13.32 8.736l-2.753-1.135zM266.28 1058.996c5.53 5.104 7.165 10.033 9.39 14.989-1.42-4.792-2.646-9.575-6.455-14.474l-2.935-.515zM238.502 1046.558c5.53 5.104 7.166 10.034 9.39 14.99-1.42-4.793-2.646-9.575-6.454-14.475l-2.936-.515z"/> - </g> - <use transform="translate(43.941 17.372)" width="744.094" height="1052.362" xlink:href="#a"/> - <use transform="translate(59.27 11.24)" width="744.094" height="1052.362" xlink:href="#b"/> - <g id="e"> - <path d="M353.525 1034.119c9.75.938 18.788-5.287 26.67-4.699 8.403.627.695 9.792 7.17 10.044 6.474.252 9.888-9.375 18.729-9.035 8.84.34 9.205 9.186 16.298 8.681 7.093-.504 5.34-9.89 14.018-9.638 8.679.252 10.993 11.25 21.029 12.36 9.802 1.084 12.508 9.676 4.47 14.262-5.345 3.05-11.693 1.057-19.72 5.43-8.027 4.371-5.676 11.676-12.713 11.882-7.037.207-7.122-10.128-15.435-11.056-8.314-.928-11.323 8.921-17.817 7.345-6.494-1.576-2.416-10.294-8.16-13.65-5.743-3.355-7.93 4.972-16.454-.23-8.524-5.202-18.085-21.696-18.085-21.696z"/> - <path d="M342.262 1026.217c30.838 21.058 73.521 27.39 122.63 23.187-28.178 3.984-87.287 7.308-126.41-22.406l3.78-.781z"/> - <path d="M391.98 1047.238c7.44-1.483 11.469-4.828 16.014-7.891-3.772 3.34-7.374 6.772-13.238 8.97l-2.776-1.078zM424.91 1050.503c6.904-3.321 10.028-7.563 13.723-11.666-2.874 4.171-5.56 8.388-10.751 11.995l-2.971-.329zM416.85 1051.709c6.689 3.355 9.539 7.612 12.969 11.732-2.605-4.185-5.018-8.414-9.977-12.046l-2.992.314zM386.618 1047.457c6.688 3.355 9.538 7.612 12.968 11.733-2.605-4.185-5.018-8.415-9.977-12.046l-2.991.313z"/> - </g> - <g> - <path d="M292.72 1024.547c4.983-5.068 13.172-6.262 17.286-10.274 4.385-4.277-4.539-5.162-1.043-8.344 3.495-3.182 10.25-.04 15.024-4.383 4.775-4.342.528-8.882 4.75-11.982 4.222-3.1 7.963 2.36 12.692-1.861 4.728-4.222.49-10.745 5.546-16.031 4.939-5.164 2.13-10.684-4.674-9.153-4.526 1.019-7.074 5-13.765 6.632-6.69 1.631-9.05-3.085-13.09.136-4.042 3.22 1.11 8.363-3.074 12.747-4.184 4.383-10.823.942-13.663 4.787-2.84 3.844 3.828 6.223 2.303 10.591-1.525 4.369-6.939 1.29-9.09 7.884-2.152 6.593.798 19.25.798 19.25z"/> - <path d="M292.089 1030.323c6.657-24.958 25.657-44.795 55.246-65.91-17.769 11.34-50.817 34.166-57.754 67.31l2.508-1.4z"/> - <path d="M307.634 999.911c4.908-2.78 8.845-3.032 12.929-3.665-3.79.132-7.533.139-11.919 1.822l-1.01 1.843zM324.414 982.75c5.533-1.62 9.415-1 13.547-.72-3.707-.702-7.33-1.516-12.05-.845l-1.497 1.565zM319.298 985.96c2.054-4.814 1.507-8.261 1.352-11.915.649 3.296 1.427 6.523.48 10.658l-1.832 1.258zM304.523 1002.335c2.054-4.814 1.507-8.262 1.353-11.915.648 3.295 1.426 6.523.479 10.658l-1.832 1.257z"/> - </g> - <g> - <path d="M345.42 1017.313c4.024-6.249 12.081-9.145 15.439-14.127 3.579-5.31-5.644-4.413-2.745-8.41 2.898-3.998 10.379-2.124 14.34-7.58 3.96-5.457-1.262-9.286 2.39-13.347 3.651-4.06 8.547.823 12.485-4.5 3.938-5.323-1.676-11.202 2.378-17.692 3.96-6.34-.004-11.472-6.59-8.508-4.38 1.971-6.157 6.603-12.608 9.647-6.45 3.045-9.795-1.35-13.24 2.8-3.443 4.148 2.819 8.416-.534 13.795-3.354 5.38-10.778 3.172-12.879 7.721-2.1 4.55 5.138 5.654 4.477 10.478-.662 4.823-6.771 2.742-7.618 9.992-.846 7.25 4.705 19.73 4.705 19.73z"/> - <path d="M345.948 1023.41c1.698-27.142 16.94-51.5 42.655-79.326-15.714 15.325-44.589 45.623-44.914 81.28l2.259-1.954z"/> - <path d="M355.549 988.827c4.412-3.87 8.351-4.929 12.362-6.413-3.815.907-7.606 1.673-11.71 4.304l-.652 2.109zM369.083 967.686c5.28-2.797 9.34-2.946 13.584-3.495-3.899.027-7.736-.078-12.383 1.574l-1.2 1.921zM364.548 972.043c1.107-5.392-.145-8.843-1.04-12.588 1.324 3.274 2.765 6.451 2.642 10.916l-1.602 1.672zM352.887 991.964c1.108-5.393-.144-8.844-1.04-12.588 1.324 3.274 2.765 6.451 2.642 10.916l-1.602 1.672z"/> - </g> - <g id="f"> - <path d="M505.882 948.746c7.671-4.14 11.335-13.195 17.453-16.668 6.522-3.7 5.27 6.858 10.184 3.836 4.913-3.022 2.763-11.794 9.47-15.923 6.706-4.129 11.274 2.196 16.277-1.689 5.003-3.884-.853-9.918 5.69-14.032 6.545-4.114 13.6 2.827 21.565-1.327 7.78-4.059 13.956.92 10.236 8.274-2.474 4.891-8.14 6.57-11.955 13.762-3.816 7.192 1.473 11.399-3.634 15.037-5.106 3.638-10.19-3.92-16.792-.485-6.603 3.436-4.045 12.17-9.616 14.227-5.571 2.058-6.789-6.374-12.668-5.996-5.88.377-3.454 7.585-12.288 7.982-8.834.396-23.922-6.998-23.922-6.998z" transform="translate(9.389 -7.87)"/> - <path d="M493.71 948.513c33.048.211 67.707-16.276 102.004-43.693-18.915 16.888-61.038 48.614-104.421 46.14l2.417-2.447z" transform="translate(9.389 -7.87)"/> - <path d="M540.711 939.345c4.784-4.776 6.14-9.232 8.016-13.736-1.17 4.324-2.167 8.633-5.438 13.154l-2.578.582zM566.664 925.434c3.495-5.863 3.745-10.53 4.487-15.378-.1 4.492-.04 8.923-2.13 14.148l-2.357 1.23zM561.285 930.313c6.58-.846 10.756.873 15.296 2.204-3.96-1.787-7.8-3.702-13.234-3.917l-2.062 1.713zM536.85 942.163c6.578-.846 10.755.873 15.294 2.204-3.96-1.788-7.8-3.703-13.234-3.917l-2.06 1.713z" transform="translate(9.389 -7.87)"/> - </g> - <g> - <path d="M582.995 716.21c3.617-8.648.845-18.541 3.621-25.579 2.96-7.501 8.651 1.956 10.732-3.885 2.082-5.841-5.245-11.503-2.407-19.48s10.578-5.97 12.184-12.576c1.606-6.606-6.999-7.488-4.284-15.34 2.716-7.853 12.873-7.057 16.72-15.92 3.757-8.658 11.952-8.855 13.596-.308 1.094 5.684-2.453 10.95-.99 19.43 1.464 8.481 8.445 8.267 6.598 14.743-1.847 6.475-10.792 3.82-13.986 11.16-3.193 7.341 4.44 12.692 1.211 18.2-3.23 5.51-9.58-.517-14.13 3.837-4.548 4.353 2.01 8.552-4.934 14.954-6.943 6.402-23.931 10.764-23.931 10.764z"/> - <path d="M572.933 724.398c27.051-22.571 44.801-59.844 55.31-105.767-4.673 26.766-18.817 81.581-55.723 109.423l.413-3.656z"/> - <path d="M605.387 684.59c.861-7.18-.866-11.742-2.202-16.7 1.797 4.326 3.722 8.52 3.931 14.452l-1.729 2.248zM617.683 655.404c-.88-7.177-3.642-11.15-6.12-15.606 2.774 3.725 5.64 7.29 7.259 12.982l-1.139 2.624zM616.404 663.078c4.82-5.216 9.315-6.69 13.858-8.731-4.361 1.27-8.706 2.354-13.268 5.918l-.59 2.813zM604.032 689.54c4.821-5.215 9.315-6.69 13.86-8.73-4.362 1.27-8.708 2.354-13.27 5.918l-.59 2.813z"/> - </g> - <g> - <path d="M572.265 672.078c4.442-7.713 2.993-17.421 6.45-23.719 3.686-6.712 7.945 2.958 10.604-2.298 2.658-5.255-3.596-11.547.03-18.725 3.627-7.177 10.705-4.289 13.005-10.328 2.3-6.04-5.728-7.976-2.233-15.052 3.496-7.076 13.002-5.021 17.687-12.908 4.576-7.704 12.345-6.84 12.887 1.45.361 5.515-3.615 10.038-3.236 18.244.38 8.205 7.003 8.897 4.49 14.783-2.512 5.886-10.652 2.23-14.539 8.76-3.887 6.53 2.695 12.567-1.01 17.361-3.704 4.795-8.993-1.717-13.808 1.816-4.815 3.533.886 8.343-6.434 13.506s-23.893 7.11-23.893 7.11z"/> - <path d="M561.786 678.53c28.239-17.873 49.427-50.837 64.795-92.906-7.584 24.705-27.44 74.716-65.619 96.309l.824-3.404z"/> - <path d="M597.172 645.053c1.664-6.678.571-11.212-.105-16.07 1.186 4.32 2.51 8.532 2.005 14.166l-1.9 1.904zM612.248 619.036c.018-6.898-2.122-11.007-3.936-15.538 2.18 3.877 4.467 7.615 5.323 13.203l-1.387 2.335zM610.13 626.127c5.174-4.313 9.597-5.132 14.132-6.478-4.272.642-8.507 1.11-13.24 3.895l-.891 2.583zM595.305 649.56c5.174-4.313 9.597-5.132 14.132-6.478-4.272.642-8.507 1.11-13.24 3.895l-.892 2.583z"/> - </g> - <g> - <path d="M566.742 775.935c-7.882-5.63-18.266-4.844-24.713-9.25-6.871-4.697 3.658-8.628-1.737-12.051-5.395-3.424-12.475 3.027-19.843-1.644-7.368-4.672-3.84-12.336-10.09-15.426-6.249-3.09-8.83 5.718-16.099 1.202-7.268-4.516-4.466-14.966-12.516-20.881-7.863-5.778-6.436-14.388 2.386-14.282 5.868.07 10.4 4.904 19.121 5.186 8.721.281 5.014-4.332 11.087-1.017 6.072 3.314 4.838 12.095 11.503 17.002 6.665 4.907 15.195-4.66 20.033-.107 4.837 4.554-2.412 9.907 1.015 15.593 3.427 5.686 8.9-.273 13.89 8.353 4.99 8.627 5.963 27.322 5.963 27.322z"/> - <path d="M572.89 788.204c-17.083-33.105-50.624-59.625-94.197-80.421 25.684 10.602 77.378 37.099 97.749 81.634l-3.552-1.213z"/> - <path d="M539.74 745.768c-6.968-2.434-11.845-1.602-17.037-1.264 4.655-.955 9.207-2.073 15.145-1.024l1.892 2.288zM513.16 726.678c-7.31-.613-11.805 1.426-16.727 3.064 4.253-2.103 8.365-4.339 14.344-4.815l2.383 1.75zM520.536 729.655c-4.231-6.155-4.808-11.169-5.936-16.355.399 4.831.616 9.606 3.256 15.137l2.68 1.218zM544.394 748.242c-4.23-6.155-4.807-11.169-5.936-16.355.4 4.831.616 9.606 3.257 15.137l2.679 1.218z"/> - </g> - <g> - <path d="M574.693 843.39c5.85-6.617 6.32-16.43 10.93-21.87 4.915-5.796 7.205 4.571 10.83-.016 3.626-4.587-1.275-12.066 3.673-18.331 4.947-6.265 11.317-1.946 14.743-7.376 3.427-5.43-4.058-9.018.741-15.21 4.8-6.194 13.71-2.18 19.831-8.916 5.98-6.581 13.42-4.099 12.338 4.135-.72 5.476-5.492 9.069-6.717 17.184-1.225 8.116 5.127 10.189 1.522 15.424-3.605 5.235-10.865-.06-15.942 5.516s.195 12.875-4.366 16.79c-4.56 3.915-8.473-3.576-13.875-1.13-5.402 2.445-.755 8.356-8.927 11.87-8.173 3.515-24.78 1.93-24.78 1.93z"/> - <path d="M563.176 847.501c31.13-11.554 58.29-39.374 81.522-77.336-12.232 22.598-41.404 67.392-82.99 80.496l1.468-3.16z"/> - <path d="M604.34 822.17c2.928-6.189 2.74-10.859 3.023-15.759.322 4.48.798 8.884-.792 14.296l-2.23 1.464zM624.164 799.868c1.36-6.752.063-11.227-.832-16.046 1.38 4.256 2.893 8.399 2.644 14.051l-1.812 1.995zM620.711 806.366c5.906-3.134 10.395-3.004 15.1-3.368-4.31-.271-8.548-.705-13.725 1.026l-1.375 2.342zM601.635 826.192c5.906-3.134 10.396-3.004 15.1-3.368-4.31-.271-8.547-.705-13.725 1.025l-1.375 2.343z"/> - </g> - <use transform="rotate(15 310.012 758.36)" width="744.094" height="1052.362" xlink:href="#c"/> - <use transform="rotate(5 93.23 577.125)" id="c" width="744.094" height="1052.362" xlink:href="#d"/> - <use transform="rotate(-10 274.952 690.264)" width="744.094" height="1052.362" xlink:href="#e"/> - <use transform="rotate(10 225.439 653.89)" width="744.094" height="1052.362" xlink:href="#f"/> - </g> - <use transform="matrix(-1 0 0 1 840 .113)" width="1" height="1" xlink:href="#g"/> - </g> - <g stroke="#d4af37" stroke-width="3"> - <path d="M291.017 195.6l-14.056 17.5c4.657 4.435 7.297 11.853 7.306 17.883.011 7.543-1.226 12.768-2.75 17.534l-.05.15H320v-52.711c-8.487 5.268-20.147 7.367-28.983-.356z" fill="#007ea8" stroke-width=".5333399999999999"/> - <path d="M348.983 195.6c-8.836 7.723-20.496 5.624-28.983.356v52.71h38.533l-.05-.15c-1.524-4.765-2.761-9.99-2.75-17.533.01-6.03 2.65-13.448 7.306-17.883l-14.056-17.5z" fill="#fff" stroke-width=".5333399999999999"/> - <path d="M281.467 248.667c-2.1 6.52-4.735 12.196-5.556 21.627-1.212 13.927 9.989 21.551 14.617 23.734 7.135 3.364 14.59 2.2 22.222 3.178 3.542.453 5.523 2.694 7.25 4.527 1.727-1.833 3.708-4.074 7.25-4.527 7.631-.977 15.087.186 22.222-3.178 4.628-2.183 15.83-9.807 14.617-23.734-.821-9.431-3.457-15.107-5.556-21.627h-77.066z" fill="#d91023" stroke-width=".5333399999999999"/> - </g> - <g stroke="#d4af37" stroke-width="3"> - <g transform="matrix(.08444 0 0 .08889 232.827 247.511)" fill="#00a854" stroke-width="6.156"> - <g id="j" stroke-width="3.078"> - <g stroke-width="9.649"> - <path d="M1074.733-201.404s5.849-20.366 17.932-29.304c12.084-8.938 25.212-5.671 33.195-8.854-5.322 6.748-5.925 20.263-17.932 29.305-12.006 9.041-33.195 8.853-33.195 8.853zM1123.432-237.75c-8.333 2.219-13.523-.31-24.954 3.897M1115.763-232.026c-8.333 2.219-14.117-1.33-25.335 3.386M1106.56-225.157c-7.912 2.781-11.632-1.2-22.466 4.03M1097.357-218.289c-7.912 2.782-9.57-1.713-17.49 4.297M1089.177-212.184c-5.168 1.667-7.531-.17-12.134 5.076M1123.432-237.75c-4.497 7.358-3.55 13.053-10.835 22.815M1115.763-232.026c-4.497 7.358-2.742 13.912-10.454 23.325M1106.56-225.157c-4.918 6.794-2.159 11.492-10.256 20.39M1097.357-218.289c-4.918 6.794-1.08 9.663-9.096 15.545M1089.177-212.184c-3.068 4.48-1.98 7.268-8.318 10.188" stroke-width="3.0778380199999997"/> - <path d="M1130.782-243.633s-13.538 10.037-24.157 18.03c-10.62 7.992-31.636 24.008-31.636 24.008s21.334-15.59 32.017-23.497c10.684-7.907 24.158-18.03 24.158-18.03" stroke-width="3.0778380199999997"/> - </g> - <g stroke-width="9.649"> - <path d="M1108.115-316.994s16.753 12.975 20.58 27.51c3.828 14.534-4.068 25.52-4.068 34.113-4.297-7.442-16.628-13.007-20.58-27.509-3.953-14.501 4.068-34.114 4.068-34.114zM1123.843-258.298c1.025-8.562 5.296-12.446 5.62-24.622M1121.366-267.541c1.025-8.562 6.463-12.621 6.237-24.788M1118.394-278.633c.346-8.38 5.422-10.36 4.576-22.362M1115.422-289.725c.346-8.38 5.135-8.257 2.485-17.839M1112.78-299.585c.366-5.418 2.946-6.933-.222-13.15M1123.843-258.298c-5.17-6.902-10.81-8.13-17.18-18.513M1121.366-267.541c-5.17-6.902-11.908-7.699-17.796-18.348M1118.394-278.633c-4.49-7.084-9.877-6.262-15.144-17.078M1115.422-289.725c-4.49-7.084-8.576-4.583-11.072-14.206M1112.78-299.585c-3.026-4.509-6.019-4.53-6.384-11.499" stroke-width="3.0778380199999997"/> - <path d="M1126.586-249.291s-4.31-16.293-7.802-29.117c-3.491-12.824-10.586-38.277-10.586-38.277s6.581 25.59 9.97 38.442a5074.411 5074.411 0 0 0 7.802 29.117" stroke-width="3.0778380199999997"/> - </g> - <g id="h" stroke-width="9.649"> - <path d="M1206.423-261.845s16.752 12.975 20.58 27.51c3.828 14.534-4.069 25.519-4.069 34.113-4.297-7.443-16.628-13.008-20.58-27.509-3.952-14.501 4.069-34.114 4.069-34.114zM1222.15-203.15c1.025-8.56 5.296-12.445 5.621-24.622M1219.673-212.393c1.026-8.561 6.464-12.62 6.238-24.787M1216.701-223.485c.347-8.38 5.423-10.36 4.576-22.36M1213.73-234.577c.345-8.38 5.135-8.256 2.485-17.838M1211.087-244.436c.366-5.418 2.947-6.933-.221-13.15M1222.15-203.15c-5.169-6.901-10.81-8.13-17.18-18.512M1219.673-212.393c-5.168-6.902-11.907-7.698-17.795-18.348M1216.701-223.485c-4.49-7.084-9.876-6.26-15.143-17.077M1213.73-234.577c-4.49-7.084-8.576-4.582-11.072-14.205M1211.087-244.436c-3.025-4.51-6.018-4.53-6.383-11.5" stroke-width="3.0778380199999997"/> - <path d="M1224.894-194.142s-4.31-16.293-7.802-29.117c-3.491-12.825-10.587-38.278-10.587-38.278s6.582 25.59 9.97 38.443c3.39 12.852 7.803 29.117 7.803 29.117" stroke-width="3.0778380199999997"/> - <g> - <path d="M1170.504-136.72s2.86-20.996 13.533-31.579c10.673-10.582 24.135-9.236 31.578-13.533-4.297 7.443-2.951 20.904-13.534 31.578-10.582 10.673-31.577 13.533-31.577 13.533zM1213.472-179.69c-7.928 3.394-13.427 1.637-24.135 7.444M1206.705-172.923c-7.927 3.393-14.161.714-24.585 6.993M1198.585-164.803c-7.43 3.89-11.684.485-21.653 7.218M1190.465-156.683c-7.43 3.89-9.718-.319-16.69 6.767M1183.247-149.465c-4.874 2.392-7.477.915-11.277 6.767M1213.472-179.69c-3.393 7.928-1.637 13.428-7.444 24.135M1206.705-172.923c-3.393 7.928-.713 14.162-6.992 24.586M1198.585-164.803c-3.89 7.43-.484 11.684-7.218 21.654M1190.465-156.683c-3.89 7.43.32 9.718-6.767 16.692M1183.247-149.465c-2.391 4.875-.914 7.477-6.766 11.278" stroke-width="3.0778380199999997"/> - <path d="M1219.9-186.569s-11.954 11.88-21.315 21.315c-9.36 9.436-27.856 28.308-27.856 28.308s18.871-18.496 28.307-27.857a5074.411 5074.411 0 0 0 21.315-21.315" stroke-width="3.0778380199999997"/> - </g> - </g> - <g stroke-width="9.649"> - <path d="M1057.073-278.588s20.562-5.119 34.344.877c13.783 5.996 17.517 18.999 24.265 24.321-8.505-1.235-20.511 5-34.344-.877-13.834-5.878-24.265-24.321-24.265-24.321zM1112.898-254.587c-6.087-6.107-6.492-11.866-15.851-19.662M1104.107-258.366c-6.088-6.108-5.907-12.891-15.6-20.249M1093.557-262.902c-6.365-5.462-4.777-10.674-14.723-17.441M1083.007-267.438c-6.365-5.462-3.302-9.145-12.466-12.999M1073.63-271.47c-4.027-3.642-3.619-6.607-10.462-7.97M1112.898-254.587c-8.62-.216-13.078 3.452-25.175 2.024M1104.107-258.366c-8.62-.217-13.42 4.581-25.427 2.609M1093.557-262.902c-8.343-.862-11.032 3.877-22.787 1.314M1083.007-267.438c-8.342-.862-8.908 3.895-18.01-.105M1073.63-271.47c-5.414-.416-7.284 1.92-12.982-2.109" stroke-width="3.0778380199999997"/> - <path d="M1121.669-251.163s-15.462-6.705-27.693-11.906c-12.232-5.201-36.61-15.393-36.61-15.393s24.168 10.68 36.358 15.979c12.19 5.298 27.693 11.906 27.693 11.906" stroke-width="3.0778380199999997"/> - </g> - <g stroke-width="9.649"> - <path d="M1072.283-383.91s14.687-15.274 29.546-17.531c14.86-2.257 24.941 6.766 33.486 7.682-7.858 3.479-14.706 15.147-29.546 17.53-14.84 2.385-33.486-7.681-33.486-7.681zM1132.321-393.291c-8.404-1.933-11.81-6.593-23.883-8.214M1122.866-391.814c-8.403-1.932-11.86-7.772-23.981-8.844M1111.52-390.041c-8.295-1.238-9.723-6.496-21.745-6.934M1100.175-388.268c-8.295-1.238-7.662-5.987-17.472-4.373M1090.09-386.692c-5.348-.942-6.58-3.67-13.099-1.182M1132.321-393.291c-7.414 4.403-9.237 9.881-20.239 15.108M1122.866-391.814c-7.413 4.404-8.923 11.02-20.14 15.738M1111.52-390.041c-7.522 3.709-7.278 9.152-18.594 13.237M1100.175-388.268c-7.522 3.709-5.47 8.038-15.305 9.494M1090.09-386.692c-4.806 2.527-5.146 5.5-12.114 5.121" stroke-width="3.0778380199999997"/> - <path d="M1141.57-395.06s-16.66 2.55-29.783 4.654c-13.124 2.105-39.188 6.447-39.188 6.447s26.146-3.817 39.286-5.816c13.14-2 29.783-4.654 29.783-4.654" stroke-width="3.0778380199999997"/> - </g> - <g stroke-width="9.649"> - <path d="M1102.133-454.901s19.984 7.045 28.19 19.637c8.207 12.592 4.168 25.504 6.872 33.661-6.42-5.713-19.876-7.115-28.19-19.637-8.314-12.52-6.872-33.661-6.872-33.661zM1135.53-404.135c-1.721-8.45 1.11-13.48-2.412-25.14M1130.27-412.13c-1.72-8.449 2.164-14.013-1.878-25.49M1123.96-421.723c-2.309-8.063 1.887-11.54-2.693-22.665M1117.648-431.317c-2.308-8.063 2.277-9.452-3.253-17.714M1112.038-439.844c-1.357-5.258.616-7.508-4.347-12.413M1135.53-404.135c-7.078-4.925-12.82-4.316-22.132-12.167M1130.27-412.13c-7.078-4.925-13.725-3.56-22.664-11.817M1123.96-421.723c-6.491-5.312-11.345-2.836-19.748-11.445M1117.648-431.317c-6.49-5.311-9.582-1.651-14.979-10M1112.038-439.844c-4.29-3.328-7.138-2.407-9.677-8.907" stroke-width="3.0778380199999997"/> - <path d="M1140.968-396.448s-9.218-14.11-16.567-25.184c-7.349-11.075-22.092-33.003-22.092-33.003s14.299 22.22 21.56 33.354c7.26 11.133 16.566 25.183 16.566 25.183" stroke-width="3.0778380199999997"/> - </g> - <g id="i" stroke-width="9.649"> - <path d="M1213.668-401.795s16.753 12.975 20.58 27.51c3.828 14.534-4.068 25.519-4.068 34.113-4.297-7.443-16.628-13.008-20.58-27.51-3.953-14.5 4.068-34.113 4.068-34.113zM1229.395-343.1c1.026-8.561 5.297-12.446 5.622-24.622M1226.919-352.343c1.025-8.561 6.463-12.62 6.237-24.787M1223.947-363.435c.346-8.38 5.422-10.36 4.575-22.36M1220.974-374.527c.347-8.38 5.136-8.256 2.486-17.838M1218.333-384.386c.365-5.418 2.946-6.933-.222-13.15M1229.395-343.1c-5.168-6.901-10.81-8.13-17.179-18.512M1226.919-352.343c-5.17-6.902-11.908-7.698-17.796-18.348M1223.947-363.435c-4.49-7.084-9.877-6.26-15.144-17.077M1220.974-374.527c-4.49-7.084-8.575-4.582-11.071-14.205M1218.333-384.386c-3.026-4.51-6.019-4.531-6.384-11.5" stroke-width="3.0778380199999997"/> - <path d="M1232.139-334.092s-4.31-16.293-7.802-29.117c-3.491-12.825-10.587-38.278-10.587-38.278s6.582 25.59 9.971 38.443a5074.411 5074.411 0 0 0 7.802 29.117" stroke-width="3.0778380199999997"/> - <g> - <path d="M1167.114-294.907s8.197-19.54 21.245-27c13.05-7.458 25.704-2.674 34.005-4.899-6.077 6.077-8.261 19.429-21.245 27-12.984 7.57-34.005 4.899-34.005 4.899zM1219.74-325.29c-8.536 1.225-13.393-1.895-25.239.943M1211.452-320.506c-8.535 1.226-13.863-2.976-25.557.391M1201.507-314.764c-8.184 1.834-11.41-2.556-22.783 1.368M1191.562-309.022c-8.184 1.834-9.304-2.824-17.873 2.216M1182.722-303.918c-5.327 1.048-7.459-1.052-12.644 3.617M1219.74-325.29c-5.33 6.779-5.056 12.546-13.437 21.385M1211.452-320.506c-5.329 6.78-4.354 13.495-13.117 21.938M1201.507-314.764c-5.68 6.17-3.492 11.16-12.576 19.047M1191.562-309.022c-5.68 6.17-2.206 9.47-10.856 14.37M1182.722-303.918c-3.572 4.089-2.818 6.985-9.455 9.142" stroke-width="3.0778380199999997"/> - <path d="M1227.73-330.272s-14.622 8.38-26.106 15.072c-11.484 6.692-34.233 20.133-34.233 20.133s23.015-12.98 34.552-19.58a5074.411 5074.411 0 0 0 26.105-15.072" stroke-width="3.0778380199999997"/> - </g> - </g> - <g stroke-width="9.649"> - <path d="M1182.237-442.008s19.633-7.97 34.124-3.98c14.49 3.991 20.024 16.337 27.455 20.653-8.594-.022-19.6 7.845-34.124 3.98-14.525-3.867-27.455-20.653-27.455-20.653zM1240.89-426.127c-6.888-5.187-8.102-10.83-18.467-17.228M1231.654-428.628c-6.888-5.187-7.667-11.928-18.301-17.843M1220.57-431.629c-7.072-4.508-6.236-9.893-17.038-15.188M1209.485-434.63c-7.072-4.509-4.56-8.588-14.176-11.11M1199.633-437.298c-4.5-3.037-4.515-6.03-11.482-6.414M1240.89-426.127c-8.564 1.003-12.46 5.264-24.636 5.557M1231.654-428.628c-8.564 1.003-12.638 6.43-24.804 6.172M1220.57-431.629c-8.381.324-10.375 5.395-22.373 4.517M1209.485-434.63c-8.38.324-8.27 5.113-17.844 2.438M1199.633-437.298c-5.419.352-6.94 2.928-13.15-.256" stroke-width="3.0778380199999997"/> - <path d="M1250.057-423.975s-16.253-4.456-29.096-7.879c-12.843-3.422-38.416-10.07-38.416-10.07s25.434 7.161 38.25 10.686a5074.41 5074.41 0 0 0 29.095 7.878" stroke-width="3.0778380199999997"/> - </g> - <g stroke-width="9.649"> - <path d="M1215.135-497.138s19.518 8.248 26.943 21.316c7.425 13.068 2.608 25.71 4.81 34.017-6.06-6.093-19.406-8.312-26.943-21.316-7.537-13.004-4.81-34.017-4.81-34.017zM1245.38-444.433c-1.203-8.539 1.93-13.388-.877-25.241M1240.617-452.733c-1.203-8.539 3.013-13.856-.324-25.558M1234.902-462.693c-1.813-8.189 2.586-11.404-1.308-22.787M1229.186-472.653c-1.813-8.189 2.848-9.297-2.17-17.88M1224.105-481.506c-1.034-5.33 1.072-7.456-3.584-12.654M1245.38-444.433c-6.765-5.347-12.532-5.089-21.35-13.492M1240.617-452.733c-6.765-5.347-13.483-4.39-21.903-13.175M1234.902-462.693c-6.156-5.697-11.151-3.521-19.015-12.626M1229.186-472.653c-6.155-5.697-9.464-2.232-14.342-10.894M1224.105-481.506c-4.08-3.583-6.978-2.837-9.117-9.48" stroke-width="3.0778380199999997"/> - <path d="M1250.34-436.43s-8.342-14.644-15.003-26.145c-6.662-11.502-20.043-34.286-20.043-34.286s12.92 23.049 19.49 34.603c6.569 11.555 15.003 26.145 15.003 26.145" stroke-width="3.0778380199999997"/> - </g> - <use transform="translate(-32 -18)" width="744.094" height="1052.362" xlink:href="#h"/> - <g stroke-width="9.649"> - <path d="M1142.423-297.845s16.752 12.975 20.58 27.51c3.828 14.534-4.069 25.519-4.069 34.113-4.297-7.443-16.628-13.008-20.58-27.509-3.952-14.501 4.069-34.114 4.069-34.114zM1158.15-239.15c1.025-8.56 5.296-12.445 5.621-24.622M1155.673-248.393c1.026-8.561 6.464-12.62 6.238-24.787M1152.701-259.485c.347-8.38 5.423-10.36 4.576-22.36M1149.73-270.577c.345-8.38 5.135-8.256 2.485-17.838M1147.087-280.436c.366-5.418 2.947-6.933-.221-13.15M1158.15-239.15c-5.169-6.901-10.81-8.13-17.18-18.512M1155.673-248.393c-5.168-6.902-11.907-7.698-17.795-18.348M1152.701-259.485c-4.49-7.084-9.876-6.26-15.143-17.077M1149.73-270.577c-4.49-7.084-8.576-4.582-11.072-14.205M1147.087-280.436c-3.025-4.51-6.018-4.53-6.383-11.5" stroke-width="3.0778380199999997"/> - <path d="M1160.894-230.142s-4.31-16.293-7.802-29.117c-3.491-12.825-10.587-38.278-10.587-38.278s6.582 25.59 9.97 38.443c3.39 12.852 7.803 29.117 7.803 29.117" stroke-width="3.0778380199999997"/> - <g> - <path d="M1106.504-172.72s2.86-20.996 13.533-31.579c10.673-10.582 24.135-9.236 31.578-13.533-4.297 7.443-2.951 20.904-13.534 31.578-10.582 10.673-31.577 13.533-31.577 13.533zM1149.472-215.69c-7.928 3.394-13.427 1.637-24.135 7.444M1142.705-208.923c-7.927 3.393-14.161.714-24.585 6.993M1134.585-200.803c-7.43 3.89-11.684.485-21.653 7.218M1126.465-192.683c-7.43 3.89-9.718-.319-16.69 6.767M1119.247-185.465c-4.874 2.392-7.477.915-11.277 6.767M1149.472-215.69c-3.393 7.928-1.637 13.428-7.444 24.135M1142.705-208.923c-3.393 7.928-.713 14.162-6.992 24.586M1134.585-200.803c-3.89 7.43-.484 11.684-7.218 21.654M1126.465-192.683c-3.89 7.43.32 9.718-6.767 16.692M1119.247-185.465c-2.391 4.875-.914 7.477-6.766 11.278" stroke-width="3.0778380199999997"/> - <path d="M1155.9-222.569s-11.954 11.88-21.315 21.315c-9.36 9.436-27.856 28.308-27.856 28.308s18.871-18.496 28.307-27.857a5074.411 5074.411 0 0 0 21.315-21.315" stroke-width="3.0778380199999997"/> - </g> - </g> - <use transform="translate(-62 -40)" width="744.094" height="1052.362" xlink:href="#i"/> - <use transform="translate(-31 -20)" width="744.094" height="1052.362" xlink:href="#i"/> - </g> - <use transform="matrix(-1 0 0 1 2501 0)" width="744.094" height="1052.362" xlink:href="#j"/> - <path d="M1250.5-437.125c-8.62 41.666-8.594 79.156-8.594 79.156-.505 13.948-7.41 23.678-13.781 20-54.887-31.689-60.291-37.57-89.125-59.669 24.306 26.461 31.231 38.23 86.719 70.266 10.728 6.193 12.062 16.378 11.625 29.469l-1.688 61.716c-.302 9.035 5.747 50.084-22.562 34.218-65.373-36.637-63.772-33.585-95.094-51.669 38.074 32.327 24.373 23.468 90.594 61.7 11.943 6.896 24.531 24.497 24.531 32.844 0 124.331 1.865 101.486-12.813 139.096h60.376c-14.678-37.61-12.813-14.765-12.813-139.096 0-8.347 12.588-25.948 24.531-32.844 66.221-38.232 51.52-29.373 89.594-61.7-31.322 18.084-28.72 15.032-94.094 51.67-28.309 15.865-22.26-25.184-22.562-34.22l-1.688-61.715c-.437-13.09.897-23.276 11.625-29.47 55.488-32.035 62.413-43.804 86.719-70.265-28.834 22.099-34.238 27.98-89.125 59.67-6.37 3.677-13.276-6.053-13.781-20 0 0 .027-37.49-8.594-79.157z" fill="#947245"/> - </g> - <g stroke-width="2.727"> - <path d="M264.452 424.637c-.25.946 1.503 12.373.546 15.66-.508 4.54-.635 5.238-1.704 11.12-1.069 5.881-2.364 17.308-4.391 24.163-.17.576-.408 1.358-.452 2.042-.567 3.502-.584 5.981-.211 10.35l3.512 19.415s1.634 1.918 1.881 2.722c.247.804-.172 2.006-.006 2.25.927 1.362 1.074 2.702 2.177 3.848.173.18.92.107 1.118.356.171.216 1.485.3 1.74.466.784.74.646 1.276 1.049 2.404l-6.321.026c.162-2.822-2.057-3.938-2.057-3.938-.244-.308-2.823-1.017-3.121-2.683-.413-2.392-.068-2.869-.068-2.869s-2.115-9.062-2.996-11.33c-.504-1.758-.605-2.592-.855-4.127-.76-4.24-1.017-6.075-3.32-12.405-.547-1.097-1.987-1.453-1.869-2.898.154-.557.427-.979.701-1.462l.072-1.11c.336-5.183.625-10.384 1.056-15.547a1.85 1.85 0 0 0 .236-.741c.602-8.797-4.079-17.02-7.1-24.897-.548-1.43-.075-2.995-.696-4.423-3.214-1.108-5.415-6.475-6.563-9.854-1.122-3.303-1.617-8.284-.764-11.589.278-1.077.434-1.814.964-2.522M300.323 443.746c1.026-.24 1.416-.319 2.51-.308 0 0 .74 1.02.959 1.499 1.529 2.753 3.371 15.341 4.434 21.193.33 1.814 1.094 5.943 1.434 7.866 0 0-.377 2.066.288 4.345.203.695.426 1.387.609 2.085.803 3.062 1.716 3.813 1.716 3.813.214.733 1.468 6.751 1.681 7.484 1.842 8.241 2.741 13.212 2.623 16.652-.115 4.714-.09 4.254.284 4.639 1.037 1.068 1.567.406 3.787 6.085.133.454.265-.217.505.234.287.538.78.477 1.18.53.73.096.59.23 1.181.307a6.248 6.248 0 0 0 1.58.015l5.461.037c-.67-1.992-2.887-3.369-4.828-3.386-.857-.528-1.85-1.282-2.155-2.287-1.251-2.003-1.608-2.427-2.262-3.335.108-.722-.414-1.692-.64-2.47l-1.958-23.232s.403-2.328.372-4.745c-.164-12.768.578-25.616 1.05-38.434.16-1.074 4.04-4.71 4.04-4.71" fill="#e3e4e5" stroke-linecap="square" transform="matrix(.19494 0 0 .1962 242.357 141.956)"/> - <path d="M356.761 323.788a7.326 7.326 0 0 0-5.446 2.507c-1.794 2.469-2.968 7.56-3.099 10.618-.034.807.3 1.426.045 2.149-.871 2.471-1.585 4.615-1.643 4.946-.757 4.317-.911 19.802-2 25.736-1.09 5.933-6.098 14.56-7.965 17.344-1.227 1.365-3.757 2.059-4.535 2.236-.779.177-7.197-.484-7.197-.484-8.468-.595-21.063-5.268-29.51-6.407-8.447-1.14-18.667-.597-26.626-1.443 0 0-9.95-3.678-19.116-1.016-9.031 2.623-14.11 7.479-21.957 19.542 0 0-3.37 4.117-3.41 5.468-.134 4.435 1.779 10.02 5.205 12.835 1.104 1.07.809.112.714-.165.01.019.011.014.027.048.304.659.664 2.389 1.099 2.991 1.166 1.62 2.383 3.41 3.312 5.198.778 1.498.373 3.254 1.072 4.762 3.846 8.304 2.058 16.825 2.024 26.49a2.067 2.067 0 0 1-.206.833c-.105 5.681-5.654 13.287-5.654 18.98v1.22c-.265.554-.532 1.042-.66 1.664-.028 1.591-2.167 1.838-1.493 2.982 2.955 6.687 3.364 8.665 4.491 13.22.381 1.653.55 2.554 1.223 4.424 1.12 2.39 4.063 12.08 4.063 12.08s-.342.554.277 3.126c.442 1.79 3.302 2.311 3.59 2.623 0 0 2.664 1.635 2.687 4.733 0 .394 2.52.222 2.857.222 1.02 0 1.998-.155 3.018-.155-.124-1.296-.45-2.056-1.357-2.787-.29-.157-1.46-.537-1.661-.755-.234-.254-.423-.769-.625-.949-1.283-1.143-1.538-2.591-2.643-3.987-.198-.25.174-1.605-.152-2.459-.325-.854-2.24-2.787-2.24-2.787l-5.198-20.858c-.714-4.734 2.864-7.443 3.234-11.325 0-.75 4.58-12.156 4.812-12.776 3.32-8.9 8.794-22.846 8.68-28.717-.126-6.571-.255 1.27.342-3.706.45-3.747-1.757-13.77-1.552-14.829 12.43 20.753 24.519 28.246 44.457 26.269 1.088-.098 1.498-.124 2.58.029 0 0 .44 1.085.518 1.578.72 2.868-1.1 15.308-1.74 21.119-.2 1.801-.638 5.903-.858 7.81 0 0-.973 1.955-.973 4.25 0 .7.02 1.4 0 2.1-.09 3.073.598 3.92.598 3.92 0 .737-.5 6.735-.5 7.472-.56 8.229-1.153 12.11-2.268 15.428-.198.591-.694 1.442-1.303 1.607-.574.43-1.53 1.332-1.634 2.11 0 .671.066 1.276.205 1.878.103.446.565 1.177.821 1.548.381 1.768.197 3.614.197 5.42 0 .458.204 1.187.312 1.656.13.559.637.564 1.018.667.696.189.454.622 1.018.775.467.126 1.008.106 1.536.106l5.402.03c-.088-2.019-2.06-3.058-3.429-4.027-.697-.623-.632-.767-.643-1.781 0-1.29-.143-2.736-.143-4.027 0-.695.298-.964.563-1.539.316-.686.08-1.694.08-2.477 1.006-6.872 2.164-13.925 3.992-20.616 1.465-1.898 2.108-4.32 2.544-6.708 0 0 1.177-3.191.777-4.888l4.964-30.15c.471-1.02 1.293-1.93 2.384-2.225 6.187-2.727 12.294-4.578 18.117-8.624 6.305-4.382 10.088-11.538 14.58-17.984.987-1.913 2.142-3.583 3.26-5.371 3.857-5.536 8.702-20.028 10-27.217 1.533-8.488.92-16.881 3.384-26.937.529-2.157 2.354-3.884 2.777-6.117l-.044-.406 1.232-.165c1.317-.155 2.943-.421 3.875-.445.979-.12 2.985-.107 3.16-.107.175 0 1.224.223 1.84.223.51 0 1.347.542 1.857.542.544 0 .95-.094 1.304-.542.65-.821.724-.563.893-1.297.056-.244.312.005.437-.039.471-.165.849-.777 1.411-.929.376-.102.662-.241.732-.62.088-.476.098-1.008.098-1.548 0-.791-.032-.831-.607-.987-.074-.02-.137-.08-.205-.116-.595-.161.098-1.33.098-1.994 0-.677-.018-1.162-.196-1.549-.232-.502-.334-.707-.822-1.103-.359-.292-.54-.676-.92-.88-2.81-2.42-4.042-4.224-6.018-6.089.33-.412.273-.616.152-1.297-.902-2.728-2.637-3.233-5.562-5.45-2.733-1.578-6.308-3.295-10.099-3.648h-1.634a6.64 6.64 0 0 0-.402-.01z" fill="#fff" stroke-linecap="square" transform="matrix(.19494 0 0 .1962 242.357 141.956)"/> - <path d="M311.905 205.481a1.424 1.424 0 0 0-1.062.492c-.35.484-.578 1.483-.604 2.083-.006.158.059.28.009.422-.17.485-.309.905-.32.97-.148.847-.178 3.885-.39 5.05-.212 1.164-1.165 2.879-1.553 3.402-.215.29-.732.404-.884.44-.152.034-1.403-.096-1.403-.096-1.65-.117-4.106-1.034-5.753-1.257-1.646-.223-3.639-.117-5.19-.283 0 0-1.94-.722-3.727-.2-1.76.515-2.75 1.468-4.28 3.835 0 0-.657.807-.665 1.073-.025.853.333 1.924.977 2.485.012.01.21.138.223.149.027-1.377.25-2.032.25-2.032a5.712 5.712 0 0 0 .334 1.997c.145.418.498.805.721 1.204.345.935.605 3.67.779 4.809.089.586-.352 2.564-.645 3.45-.567 1.72-.817 3.266-.148 2.102.298-.519 1.436-2.695 2.02-4.722.585-2.027 1.155-3.201.977-3.613-.058-.134-.223-2.945-.26-3.055a1.678 1.678 0 0 1-.051-.17c-.015-.065-.055-.118-.012-.34l.276-1.44c2.863 5.352 7.424 6.015 10.519 2.277-.467 1.517-.486 3.724-.432 4.654.054.93.047.532.032.858l-.547 5.109-.049.1s-.123.281-.123.545c0 .125.004.268 0 .431-.007.24-.002.374.028.41l.088.11c.006.183-.004.364-.017.546l-.016.21.068-.085c.191-.24.297-.61.376-1.044 0 0 .006-.04.01-.056l.02-.053s.045-.124.083-.283c.038-.158.045-.3.045-.3l-.03-.127.022-.129s.966-5.884.968-5.915a.55.55 0 0 1 .05-.166c.185-.26.599-.55.752-.727.157-.181.727-2.575.64-4.07-.197-3.423 4.308-4.396 5.816-2.705.566-.307 1.04-.748 1.443-1.28.382-.505.698-1.094.964-1.736.036-.128.08-.268.111-.39.084-.322.15-.618.195-.869.038-.208.068-.417.094-.625.027-.208.05-.417.068-.626.039-.42.066-.843.1-1.277.033-.433.072-.875.133-1.333a14.748 14.748 0 0 1 .265-1.424c.026-.106.068-.206.117-.304s.105-.194.162-.29c.056-.096.111-.193.158-.293.047-.1.084-.203.104-.313l-.008-.08.155-.02.001-.016c-.728.153-.4.036-1.105.13-.208 0-.384-.013-.552-.086-.355-.25-.655-.579-.807-1.01 0-.483.157-1.405.29-1.653.438-.821.797-.2 1.67.043.828.231 2.067.88 2.534 1.33.054.053.684.082.747.048.046-.025.097-.018.144-.034 0-.013.008-.027.01-.04.003-.012 0-.02.004-.032.02-.078.052-.169.052-.234a1.7 1.7 0 0 0-.007-.169.46.46 0 0 0-.031-.137c-.017-.037-.032-.061-.047-.087a.454.454 0 0 0-.113-.13c-.07-.057-.106-.132-.18-.172-.547-.475-.788-.829-1.173-1.194.065-.081.053-.121.03-.255-.176-.535-.514-.634-1.084-1.07-.533-.309-1.23-.646-1.97-.715h-.318a1.302 1.302 0 0 0-.078-.002z" fill="#d18219" stroke="none"/> - <path d="M356.761 323.788a7.326 7.326 0 0 0-5.446 2.507c-1.794 2.469-2.968 7.56-3.099 10.618-.034.807.3 1.426.045 2.149-.871 2.471-1.585 4.615-1.643 4.946-.757 4.317-.911 19.802-2 25.736-1.09 5.933-6.098 14.56-7.965 17.344-1.227 1.365-3.757 2.059-4.535 2.236-.779.177-7.197-.484-7.197-.484-8.468-.595-21.063-5.268-29.51-6.407-8.447-1.14-18.667-.597-26.626-1.443 0 0-9.95-3.678-19.116-1.016-9.031 2.623-14.11 7.479-21.957 19.542 0 0-3.37 4.117-3.41 5.468-.134 4.435 1.779 10.02 5.205 12.835 1.104 1.07.809.112.714-.165.01.019.011.014.027.048.304.659.664 2.389 1.099 2.991 1.166 1.62 2.383 3.41 3.312 5.198.778 1.498.373 3.254 1.072 4.762 3.846 8.304 2.058 16.825 2.024 26.49a2.067 2.067 0 0 1-.206.833c-.105 5.681-5.654 13.287-5.654 18.98v1.22c-.265.554-.532 1.042-.66 1.664-.028 1.591-2.167 1.838-1.493 2.982 2.955 6.687 3.364 8.665 4.491 13.22.381 1.653.55 2.554 1.223 4.424 1.12 2.39 4.063 12.08 4.063 12.08s-.342.554.277 3.126c.442 1.79 3.302 2.311 3.59 2.623 0 0 2.664 1.635 2.687 4.733 0 .394 2.52.222 2.857.222 1.02 0 1.998-.155 3.018-.155-.124-1.296-.45-2.056-1.357-2.787-.29-.157-1.46-.537-1.661-.755-.234-.254-.423-.769-.625-.949-1.283-1.143-1.538-2.591-2.643-3.987-.198-.25.174-1.605-.152-2.459-.325-.854-2.24-2.787-2.24-2.787l-5.198-20.858c-.714-4.734 2.864-7.443 3.234-11.325 0-.75 4.58-12.156 4.812-12.776 3.32-8.9 8.794-22.846 8.68-28.717-.126-6.571-.255 1.27.342-3.706.45-3.747-1.757-13.77-1.552-14.829 12.43 20.753 24.519 28.246 44.457 26.269 1.088-.098 1.498-.124 2.58.029 0 0 .44 1.085.518 1.578.72 2.868-1.1 15.308-1.74 21.119-.2 1.801-.638 5.903-.858 7.81 0 0-.973 1.955-.973 4.25 0 .7.02 1.4 0 2.1-.09 3.073.598 3.92.598 3.92 0 .737-.5 6.735-.5 7.472-.56 8.229-1.153 12.11-2.268 15.428-.198.591-.694 1.442-1.303 1.607-.574.43-1.53 1.332-1.634 2.11 0 .671.066 1.276.205 1.878.103.446.565 1.177.821 1.548.381 1.768.197 3.614.197 5.42 0 .458.204 1.187.312 1.656.13.559.637.564 1.018.667.696.189.454.622 1.018.775.467.126 1.008.106 1.536.106l5.402.03c-.088-2.019-2.06-3.058-3.429-4.027-.697-.623-.632-.767-.643-1.781 0-1.29-.143-2.736-.143-4.027 0-.695.298-.964.563-1.539.316-.686.08-1.694.08-2.477 1.006-6.872 2.164-13.925 3.992-20.616 1.465-1.898 2.108-4.32 2.544-6.708 0 0 1.177-3.191.777-4.888l4.964-30.15c.471-1.02 1.293-1.93 2.384-2.225 6.187-2.727 12.294-4.578 18.117-8.624 6.305-4.382 10.088-11.538 14.58-17.984.987-1.913 2.142-3.583 3.26-5.371 3.857-5.536 8.702-20.028 10-27.217 1.533-8.488.92-16.881 3.384-26.937.529-2.157 2.354-3.884 2.777-6.117l-.044-.406 1.232-.165c1.317-.155 2.943-.421 3.875-.445.979-.12 2.985-.107 3.16-.107.175 0 1.224.223 1.84.223.51 0 1.347.542 1.857.542.544 0 .95-.094 1.304-.542.65-.821.724-.563.893-1.297.056-.244.312.005.437-.039.471-.165.849-.777 1.411-.929.376-.102.662-.241.732-.62.088-.476.098-1.008.098-1.548 0-.791-.032-.831-.607-.987-.074-.02-.137-.08-.205-.116-.595-.161.098-1.33.098-1.994 0-.677-.018-1.162-.196-1.549-.232-.502-.334-.707-.822-1.103-.359-.292-.54-.676-.92-.88-2.81-2.42-4.042-4.224-6.018-6.089.33-.412.273-.616.152-1.297-.902-2.728-2.637-3.233-5.562-5.45-2.733-1.578-6.308-3.295-10.099-3.648h-1.634a6.64 6.64 0 0 0-.402-.01z" fill="none" stroke-linecap="square" transform="matrix(.19494 0 0 .1962 242.357 141.956)"/> - <path d="M382.265 343.818c0 .332-.169.795-.268 1.19-.015.064-.007.106-.017.165.083-.398.294-.837.294-1.22 0-.048-.009-.088-.009-.135z" fill="#d39044" stroke-linecap="square" transform="matrix(.19494 0 0 .1962 242.357 141.956)"/> - <path d="M334.948 432.87c-2.059 8.327-7.182 10.024-3.42 17.087 0 0-1.618-.118-2.592-2.837-.487-1.36-.813-3.37-.696-6.343.059-1.486.228-3.212.544-5.218.158-1.002.352-2.075.587-3.222" fill="#fff" fill-rule="evenodd" transform="matrix(.19494 0 0 .1962 242.357 141.956)"/> - <path d="M338.745 429.429c-2.058 8.327-7.182 10.024-3.42 17.087 0 0-2.025-.03-2.999-2.75-.487-1.359-.838-3.642-.858-5.371-.02-1.73.45-4.684.788-5.924.337-1.24 1.238-3.31 1.238-3.31" fill="#fff" fill-rule="evenodd" transform="matrix(.19494 0 0 .1962 242.357 141.956)"/> - <path d="M345.773 418.39c-2.934 5.509-5.297 10.213-6.52 14.3-1.225 4.089-1.996 6.272.31 10.602 0 0-1.567-.817-3.628-4.632-.65-1.204-1.086-3.867-.789-6.592a30.55 30.55 0 0 1 .776-4.396c.207-.808.465-1.662.79-2.58" fill="#fff" fill-rule="evenodd" transform="matrix(.19494 0 0 .1962 242.357 141.956)"/> - <path d="M348.502 414.884c-1.818 2.792-2.406 5.465-3.414 7.733-2.016 4.537-3.085 7.944-3.085 10.44 0 2.029-.357 3.709 1.905 7.156 0 0-1.061-.124-1.753-.543-.692-.419-1.56-1.194-2.269-2.62-.708-1.427-1.255-3.504-1.303-6.527-.024-1.511.478-3.745.89-5.217.413-1.473 1.807-4.55 1.807-4.55" fill="#fff" fill-rule="evenodd" transform="matrix(.19494 0 0 .1962 242.357 141.956)"/> - <path d="M353.27 334.537c.119-.233-11.574-3.636-13.242-13.858 2.275-2.15 14.25 5.702 14.438 12.987" fill="#d18219" fill-rule="evenodd" stroke-width="1.364" transform="matrix(.19494 0 0 .1962 242.357 141.956)"/> - <path d="M340.423 320.825c.093.205 6.265.184 11.133 10.596-1.095-1.244-6.04 1.675-11.092-10.204" fill-opacity=".502" fill-rule="evenodd" stroke-width="1.364" transform="matrix(.19494 0 0 .1962 242.357 141.956)"/> - <path d="M368.707 335.545c.165-.134.396-.452.122-.75-5.102-3.192-4.857.706-8.443.706 1.71 0 1.706.234 2.345.926 2.32 2.515 3.917 2.265 5.976-.176" fill-rule="evenodd" stroke-width="1.364" transform="matrix(.19494 0 0 .1962 242.357 141.956)"/> - <path d="M381.193 349.763c-.565.67-2.538-.793-3.984-.967" fill="none" stroke-linecap="square" transform="matrix(.19494 0 0 .1962 242.357 141.956)"/> - <path d="M382.326 345.923s-.54-.438-4.32-.932c.004.07 2.605-2.673 2.835.29" fill-rule="evenodd" stroke-linecap="square" transform="matrix(.19494 0 0 .1962 242.357 141.956)"/> - <path d="M302.663 436.88a33.59 33.59 0 0 0-.914 1.815c-1.068 2.348-1.409 4.538.472 8.069 0 0-1.617-.117-2.591-2.837-.487-1.36-.813-3.37-.696-6.343.03-.743.086-1.546.175-2.414" fill="#fff" fill-rule="evenodd" transform="matrix(.19494 0 0 .1962 242.357 141.956)"/> - <path d="M230.708 419.108s-1.55-6.161 2.09-13.014" fill="none" transform="matrix(.19494 0 0 .1962 242.357 141.956)"/> - </g> - <g fill="#e7ca00" stroke-width="2.294"> - <path d="M401.415 879.458c-2.045-1.515-4.023-6.243-3.27-8.842-2.694-2.22-9.659 2.184-6.276 8.588 3.354 6.388 7.986 5.85 9.57.267l-.024-.013zM420.519 885.467c.56-3.612-.686-9.663-6.934-10.747-6.235-1.067-8.153 4.548-6.958 10.324 4.5-3.395 11.623-1.683 13.892.423z" transform="matrix(.01896 -.24347 .22029 .02096 145.138 340.805)"/> - <path d="M407.416 882.052c1.063-4.786 5.835-6.083 10.57-5.594-2.96-3.38-6.044-8.823-10.264-5.651-3.317 2.504-5.617 6.151-.299 11.225l-.008.02z" transform="matrix(.01896 -.24347 .22029 .02096 145.138 340.805)"/> - <path d="M404.77 879.344c.56-3.612 2.025-8.456 5.93-10.433-3.367-3.054-11.69-2.136-12.302 4.1-.632 6.231 3.047 7.49 6.383 6.307l-.01.026zM388.887 919.375c5.28.85 12.283-1.796 10.307-13.708-1.878-11.299-10.192-14.04-10.816-11.348 4.77 1.667 4.154 17.65.475 25.103l.034-.047z" transform="matrix(.01896 -.24347 .22029 .02096 145.138 340.805)"/> - <path d="M396.765 918.122c5.294.946 13.706-2.13 9.908-13.822-3.71-11.462-12.224-10.052-12.808-7.164 4.779 1.845 6.512 13.045 2.871 21.008l.03-.022z" transform="matrix(.01896 -.24347 .22029 .02096 145.138 340.805)"/> - <path d="M376.728 918.168c3.859 3.455 13.822 4.688 17.015-6.829 3.011-10.905.276-14.41-3.62-16.18 1.943 5.672-5.07 21.665-13.412 22.991l.018.018zM402.151 917.195c3.263-1.816 10.612-5.074 5.805-16.066-3.936-8.966-10.087-5.15-11.753-3.603 4.31 1.812 8.14 11.493 5.948 19.67z" transform="matrix(.01896 -.24347 .22029 .02096 145.138 340.805)"/> - <path d="M409.224 914.63c3.051-2.059 10.717-7.101 4.569-17.83-6.09-10.543-14.194-3.537-14.215-.648 3.563.888 9.641 9.955 9.673 18.46l-.027.017z" transform="matrix(.01896 -.24347 .22029 .02096 145.138 340.805)"/> - <path d="M416.718 907.263c2.017-2.81 7.176-9.719-.7-16.792-7.758-6.967-12.759 1.783-12.047 4.285 3.199-.447 10.595 5.25 12.77 12.52l-.023-.013z" transform="matrix(.01896 -.24347 .22029 .02096 145.138 340.805)"/> - <path d="M421.176 896.276c.56-3.612 2.045-12.624-7.034-14.705-8.902-2.034-9.573 8.603-8.069 10.431 2.395-2.185 10.557-1.078 15.103 4.274zM370.892 914.922c3.375 4.144 13.412 7.063 18.657-4.145 4.966-10.665 2.772-14.71-.953-17.146 1.016 6.117-8.907 21.318-17.712 21.318l.009-.027z" transform="matrix(.01896 -.24347 .22029 .02096 145.138 340.805)"/> - <path d="M360.848 906.698c3.225 6.56 19.288 14.058 25.522 1.927 5.916-11.504 1.012-22.081-3.9-26.14 2.33 11.768-12.11 29.737-21.626 24.184l.004.029z" transform="matrix(.01896 -.24347 .22029 .02096 145.138 340.805)"/> - <path d="M352.366 898.402c7.864 17.16 24.132 14.152 29.643 1.691 5.229-11.823 3.75-18.756-2.177-24.424-4.094 15.2-12.2 23.738-27.49 22.705l.024.028z" transform="matrix(.01896 -.24347 .22029 .02096 145.138 340.805)"/> - <path d="M341.921 884.056c5.964 21.484 27.137 18.887 36.131 6.547 6.355-8.705 4.117-15.146.905-18.94-6.961 8.212-18.98 15.534-37.069 12.368l.033.025z" transform="matrix(.01896 -.24347 .22029 .02096 145.138 340.805)"/> - <path d="M337.98 870.931c.633 21.914 26.07 24.33 37.372 11.791 7.983-8.845 7.368-15.426 5.227-19.305-8.432 8.338-25.238 18.384-42.626 7.488l.026.026z" transform="matrix(.01896 -.24347 .22029 .02096 145.138 340.805)"/> - <path d="M332.703 850.203c-3.87 28.348 29.128 37.617 43.467 20.689 7.698-9.07 7.333-15.432 5.2-19.31-14.3 10.02-39.159 11.185-48.688-1.376l.021-.003z" transform="matrix(.01896 -.24347 .22029 .02096 145.138 340.805)"/> - <path d="M329.46 823.53c-9.486 30.632 19.29 41.583 38.047 38.528 14.855-2.403 23.204-19.886 21.094-23.738-18.552 13.087-55.366 1.82-59.157-14.759l.016-.032z" transform="matrix(.01896 -.24347 .22029 .02096 145.138 340.805)"/> - <path d="M329.06 799.67c-12.676 29.897 15.364 47.446 38.583 45.69 15.216-1.153 27.753-7.06 27.202-19.552-22.745 8.013-58.219-5.432-65.807-26.134l.021-.004z" transform="matrix(.01896 -.24347 .22029 .02096 145.138 340.805)"/> - <path d="M329.966 774.93c-12.693 30.576 14.747 55.711 43.465 56.342 14.648.316 21.34-3.593 27.196-13.299-20.73 3.532-64.889-27.938-70.661-43.044z" transform="matrix(.01896 -.24347 .22029 .02096 145.138 340.805)"/> - <path d="M329.57 765.272c-11.333 35.923 80.312 80.423 84.993 33.705-21.913 11.482-81.753-20.668-84.992-33.705z" transform="matrix(.01896 -.24347 .22029 .02096 145.138 340.805)"/> - <path d="M327.523 755.606c-15.379 19.757 93.055 78.167 95.506 28.363-9.762 5.009-29.87.684-49.265-8.106-19.38-8.787-33.155-22.855-46.237-20.233l-.005-.024z" transform="matrix(.01896 -.24347 .22029 .02096 145.138 340.805)"/> - <path d="M310.962 751.12c19.613.483 61.382 30.938 89.302 36.03 17.874 3.25 32.459-4.197 24.146-35.544-28.487 29.115-82.917-17.824-111.77-6.766-2.968-1.407.62 8.346-1.655 6.276l-.023.004z" transform="matrix(.01896 -.24347 .22029 .02096 145.138 340.805)"/> - <path d="M314.738 755.54c19.01-11.796 58.328 10.083 86.15 11.273 17.08.697 38.39-18.62 24.406-47.052-21.874 37.6-82.887 7.493-108.6 27.333-1.927 4.301-.85 9.998-1.984 8.422l.028.025z" transform="matrix(.01896 -.24347 .22029 .02096 145.138 340.805)"/> - <path d="M307.104 756.761c20.232-14.78 61.569-6.196 88.05-8.343 17.572-1.444 43.746-32.009 19.805-57.475-14.86 53.842-64.483 27.223-107.269 58.258-2.12 5.473.796 8.86-.59 7.531l.005.03z" transform="matrix(.01896 -.24347 .22029 .02096 145.138 340.805)"/> - <path d="M314.385 751.966c16.663-15.72 57.604-14.669 81.93-27.066 16.32-8.304 32.874-43.645 4.386-61.42-2.962 56.707-55.186 38.963-87.452 80.94-.782 6.006 2.732 8.47 1.112 7.55l.025-.003z" transform="matrix(.01896 -.24347 .22029 .02096 145.138 340.805)"/> - <path d="M316.126 744.463c12.345-22.09 50.302-27.61 70.82-45.993 18.351-16.443 23.318-46.355-7.626-55.908-2.63 59.192-43.855 46.685-60.74 82.265-3.214 7.812-1.534 20.485-2.45 19.665l-.004-.029z" transform="matrix(.01896 -.24347 .22029 .02096 145.138 340.805)"/> - <path d="M325.504 721.914c12.654-20.094 22.161-13.181 42.356-33.822 17.383-17.772 22.62-60.366-7.793-61.346 4.545 51.455-15.245 51.997-29.134 79.625.503 6.14-3.665 15.957-5.404 15.54l-.025.003z" transform="matrix(.01896 -.24347 .22029 .02096 145.138 340.805)"/> - <g stroke-width="3.041"> - <path d="M310.424 602.663l-10.497 5.67-49.929 153.76 18.14 40.066 17.139 2.478 20.712-1.52 30.737-138.479 8.666-56.418-21.061-12.406-13.907 6.85z" fill-rule="evenodd" transform="matrix(.01291 -.19952 .15288 .02036 190.588 322.935)"/> - <path d="M309.263 597.474c.415 2.04.853 4.105 1.293 6.14 9.833-6.845 20.436-.176 23.345 15.636 2.902 15.806-3.027 38.861-13.668 56.633-6.681 14.63-14.639 32.223-16.986 56.246-1.823 18.767 1.856 41.713-2.283 62.595-2.528 10.013-7.857 9.093-18.2 8.451 4.162 6.833 9.334 10.587 16.036 10.365 14.42-3.208 24.74-16.165 28.494-44.84-4.283-23.95-3.188-47.936 9.852-72.08 11.634-11.987 22.336-25.543 26.268-49.987 1.883-12.145-.47-25.209-9.616-39.046-11.482-17.358-20.812-17.994-29.61-16.439-4.964 2.075-9.942 4.22-14.925 6.326z" transform="matrix(.01291 -.19952 .15288 .02036 190.588 322.935)"/> - </g> - <path d="M-325.656 629.664c.001-3.088 2.01-5.59 4.489-5.59 2.478 0 4.487 2.502 4.488 5.59h-8.977z" transform="matrix(1.00994 .34063 .4261 -.98295 369.289 1013.293)" fill-rule="evenodd" stroke-width=".5"/> - <path d="M295.504 723.041c-3.802 7.233-11.304 10.594-16.734 7.42-5.396-3.156-6.684-11.681-2.921-18.968 3.798-7.261 11.303-10.593 16.734-7.42 5.395 3.156 6.683 11.682 2.921 18.968zM276.557 641.066c-2.604-3.571-6.329-5.807-10.315-5.098-2.38.416-4.722 1.872-6.674 3.928-.077-.335-.154-.67-.206-1.009-1.39-7.709 4.797-16.772 11.401-17.96 2.956-.504 5.787.562 8.115 2.677-1.25 2.797-1.784 5.89-1.26 8.804a15.217 15.217 0 0 0 1.071 3.588 18.318 18.318 0 0 0-2.107 5.066l-.025.003z" transform="matrix(.01896 -.24408 .22029 .01391 146.251 342.069)"/> - <path d="M300.305 632.437c-2.852-3.625-6.749-5.866-11.004-5.267-4.033.568-7.999 3.659-10.677 7.768a18.765 18.765 0 0 1-1.132-4.147c-1.379-8.954 6.038-19.14 13.72-20.221 1.936-.273 3.81.037 5.537.831-.14 1.345-.13 2.69.075 4.016.624 4.048 2.48 7.614 5.04 10.154-.948 2.18-1.497 4.524-1.564 6.837l.004.029zM258.047 677.375c-.141.19-.302.418-.445.637-3.207-.469-6.187-2.176-8.529-4.746 2.477 2.462 5.648 3.974 8.97 4.08l.004.029zM264.755 663.75c-4.083-2.303-7.247-6.804-8.091-12.286-1.336-8.673 5.853-18.57 13.294-19.617a9.12 9.12 0 0 1 2.192-.044c-2.664 3.71-4.224 8.47-3.54 12.915.442 2.867 1.507 5.478 3.055 7.652-3.307 2.732-5.946 6.931-6.89 11.347l-.02.033z" transform="matrix(.01896 -.24408 .22029 .01391 146.251 342.069)"/> - <path d="M258.333 689.203c-2.006.599-4.083.405-5.87-.778-4.37-2.896-5.54-10.496-2.61-16.944 2.96-6.423 8.955-9.313 13.354-6.392 1.681 1.11 2.896 2.926 3.583 5.133a7.544 7.544 0 0 0-5.375.382c-4.698 2.155-7.138 8.593-5.42 14.328a11.05 11.05 0 0 0 2.343 4.3l-.004-.03z" transform="matrix(.01896 -.24408 .22029 .01391 146.251 342.069)"/> - <path d="M262.393 693.964c-3.06-.953-5.817-3.465-7.408-7.237-2.952-6.974-.85-15.61 4.763-19.248 2.876-1.84 6.1-2.036 8.974-.859-.526 3.151-.222 6.56 1.094 9.65 1.357 3.231 3.617 5.555 6.195 6.745-2.549-.671-5.28-.316-7.754 1.269-3.12 2.021-5.157 5.613-5.848 9.619l-.016.061zM257.279 743.409c-7.009-4.475-11.336-13.985-9.674-21.123 1.4-5.975 6.675-8.44 12.495-6.39-2.556 5.19-3.25 11.933-1.444 18.2 1.494 5.228 4.476 9.203 8.076 11.404-2.763.647-6.115.052-9.429-2.095l-.024.003z" transform="matrix(.01896 -.24408 .22029 .01391 146.251 342.069)"/> - <path d="M251.674 769.938a12.338 12.338 0 0 1-.917-.99c-5.64-6.455-7.08-16.8-3.218-22.981 3.619-5.802 10.678-5.957 16.217-.642-2.971 6.512-2.259 15.325 1.637 22.195-3.235-1.473-6.876-1.563-10.343.132a14.099 14.099 0 0 0-3.352 2.282l-.024.003z" transform="matrix(.01896 -.24408 .22029 .01391 146.251 342.069)"/> - <path d="M268.083 783.814c-5.381-.309-10.723-6.313-12.475-14.487-1.953-9.153 1.305-17.664 7.28-18.91l.266-.037c2.876 4.717 7.182 7.526 11.73 7.725.033.047.066.1.105.184-6.72 4.626-9.86 15.335-7.062 25.003.05.162.101.332.156.522zM265.208 717.594c-6.588 2.105-14.435-2.685-17.468-10.685-3.008-7.997-.113-16.28 6.5-18.396 1.694-.526 3.484-.6 5.256-.335 1.523 4.76 4.285 8.457 7.625 10.57-1.374 4.536-1.511 9.759-.05 14.727.264.942.58 1.847.956 2.685-.853.576-1.786 1.082-2.823 1.405l.004.029z" transform="matrix(.01896 -.24408 .22029 .01391 146.251 342.069)"/> - <path d="M269.946 727.884c-7.013-4.51-11.361-13.99-9.673-21.123 1.673-7.11 8.767-9.257 15.78-4.754 2.025 1.297 3.856 3.048 5.367 5.022-4.177 5.416-5.767 13.84-3.536 21.6.128.504.303 1.023.48 1.514-2.54.328-5.486-.376-8.418-2.26z" transform="matrix(.01896 -.24408 .22029 .01391 146.251 342.069)"/> - <path d="M284.7 750.888c-3.681 7.63-11.189 10.503-16.705 6.352-5.491-4.115-6.942-13.723-3.283-21.381 3.681-7.63 11.188-10.503 16.704-6.352 5.486 4.115 6.941 13.715 3.284 21.381zM275.434 703.142c-3.779 1.886-7.908 2.151-11.274.358-6.168-3.363-7.576-12.505-3.14-20.38 3.15-5.529 8.39-8.998 13.392-9.385 2.208 1.985 5.027 2.972 7.878 2.57.168.146.341.328.495.505-7.94 3.422-12.165 13.327-9.413 22.051a16.01 16.01 0 0 0 2.034 4.263l.028.018z" transform="matrix(.01896 -.24408 .22029 .01391 146.251 342.069)"/> - <path d="M284.18 666.044c1.218 7.903-4.118 15.27-10.446 16.162-6.308.888-12.472-4.831-13.693-12.763-.864-5.605 1.874-11.709 5.799-15.11 2.616 4.35 6.942 6.957 11.389 6.33 1.595-.224 3.156-.841 4.56-1.82a23.142 23.142 0 0 1 2.367 7.204l.024-.003z" transform="matrix(.01896 -.24408 .22029 .01391 146.251 342.069)"/> - <path d="M287.201 705.726c-5.672 2.926-12.188-1.39-14.474-9.664-2.285-8.275.45-17.434 6.142-20.392 1.763-.903 3.602-1.11 5.392-.73a25.498 25.498 0 0 0-1.654 3.538c-3.388 9.103-1.72 20.056 3.749 24.342.9.713 1.867 1.21 2.867 1.466a9.937 9.937 0 0 1-2.001 1.408l-.02.032z" transform="matrix(.01896 -.24408 .22029 .01391 146.251 342.069)"/> - <path d="M304.5 667.948c.426 2.76-.017 5.464-1.083 7.859-5.203-3.176-12.142.017-15.889 7.242-4.182-1.796-7.535-6.13-8.367-11.533-1.183-7.679 5.123-16.42 11.7-17.457.027.342.078.674.13 1.012 1.146 7.435 7.098 12.89 13.466 12.427l.064.418-.02.032z" transform="matrix(.01896 -.24408 .22029 .01391 146.251 342.069)"/> - <path d="M303.513 696.658c-4.26 9.226-12.873 13.369-19.195 9.203-6.288-4.15-7.974-15.092-3.725-24.346 4.26-9.226 12.872-13.375 19.196-9.202 6.288 4.15 7.974 15.092 3.724 24.345zM289.382 655.22c-1.417 2.99-3.648 5.49-6.347 6.878-6.282 3.152-13.95-.31-17.067-7.746-3.098-7.44.944-18.534 7.22-21.721 2.655-1.353 5.524-1.146 8.18.055-.028.151-.056.295-.079.475-1.667 9.692 1.944 19.186 8.093 22.06zM320.61 614.137c.4 2.594.033 5.177-.908 7.437-2.47-3.075-5.82-4.959-9.444-4.448-4.329.61-8.583 4.542-10.675 9.378-2.219-2.219-3.83-5.297-4.372-8.812-1.197-7.774 5.22-16.611 11.888-17.55 6.643-.935 12.326 6.176 13.526 13.97l-.015.025z" transform="matrix(.01896 -.24408 .22029 .01391 146.251 342.069)"/> - <path d="M322.452 630.627c1.01 6.556-3.192 12.756-8.577 14.633-2.38-3.426-5.837-5.648-9.628-5.114a9.624 9.624 0 0 0-2.845.894c-1.484-1.919-2.569-4.327-2.985-7.028-1.13-7.341 4.957-15.736 11.26-16.623 6.308-.888 11.69 5.862 12.824 13.231l-.05.007z" transform="matrix(.01896 -.24408 .22029 .01391 146.251 342.069)"/> - <path d="M293.229 654.4c-3.093 1.87-6.583 2.104-9.461.235-5.117-3.394-6.486-12.284-3.047-19.782 3.457-7.501 10.464-10.872 15.58-7.486 2.723 1.802 4.368 5.14 4.824 9.044-5.169 3.775-8.978 11.09-7.955 17.732l.04.259.019-.003zM256.479 798.67c-5.803 2.083-12.089-2.383-14.383-10.509-2.41-8.633.555-18.22 6.643-21.323 5.695-2.9 12.154.88 14.95 8.45-6.2 4.464-9.267 14.214-7.215 23.353l.004.03z" transform="matrix(.01896 -.24408 .22029 .01391 146.251 342.069)"/> - <path d="M270.605 803.782c-6.263 2.781-13.224-1.096-15.517-8.766-2.294-7.67.943-16.318 7.258-19.217 5.442-2.496 11.415.057 14.436 5.725-5.846 4.71-8.578 13.89-6.18 22.237l.003.021z" transform="matrix(.01896 -.24408 .22029 .01391 146.251 342.069)"/> - <path d="M267.557 817.92c-5.657 2.577-11.968-.899-14.041-7.797-1.382-4.663-.507-9.733 1.976-13.306 3.978 3.385 9.068 4.39 13.799 2.083a14.505 14.505 0 0 0 3-1.976 14.325 14.325 0 0 1 1.746 3.78c.713 2.373.828 4.889.445 7.24-2.093 2.252-3.666 5.204-4.587 8.498-.7.585-1.49 1.071-2.338 1.478zM276.083 847.28c-6.371 2.907-13.464-1.01-15.799-8.786-2.325-7.754.966-16.497 7.33-19.403.46-.212.951-.391 1.45-.52-.24 3.08.033 6.288.932 9.415 2.072 7.178 6.908 11.988 12.306 13.068-1.376 2.755-3.518 5.014-6.215 6.255l-.004-.028z" transform="matrix(.01896 -.24408 .22029 .01391 146.251 342.069)"/> - <path d="M285.171 848.437c-6.135 2.792-12.96-.987-15.2-8.466a17.692 17.692 0 0 1-.001-9.943c4.011 3.6 9.243 4.704 14.112 2.348 2.663-1.295 4.898-3.48 6.55-6.207a16.606 16.606 0 0 1 1.591 3.596c2.239 7.479-.92 15.858-7.051 18.672z" transform="matrix(.01896 -.24408 .22029 .01391 146.251 342.069)"/> - <path d="M293.142 863.357c-6.142 2.793-12.968-.993-15.207-8.472-.611-2.041-.808-4.14-.683-6.197 2.383.415 4.88.086 7.294-1.056 4.181-2.024 7.283-6.259 8.816-11.362 3.03 1.414 5.585 4.388 6.8 8.42 2.238 7.471-.914 15.85-7.045 18.67l.025-.003zM272.959 786.054c-2.764-1.739-5.05-4.729-6.214-8.59-2.452-8.252 1.007-17.505 7.788-20.616 6.75-3.108 14.31 1.09 16.794 9.337 1.87 6.236.33 13.062-3.474 17.366-3.14-1.972-6.987-2.409-10.58-.754-1.641.753-3.098 1.878-4.314 3.257zM319.823 651.64c1.07 6.56-5.47 16.885-12.166 18.31-6.695 1.424-10.884-1.834-13.949-6.191-3.064-4.357-4.273-10.017-2.61-15.188 1.663-5.171 6.083-10.364 10.441-12.278 4.358-1.915 7.371-1.174 10.919 1.74 3.547 2.914 6.296 7.046 7.365 13.606z" transform="matrix(.01896 -.24408 .22029 .01391 146.251 342.069)"/> - <path d="M285.163 808.599c-6.136 2.785-12.968-.993-15.207-8.472-2.231-7.473.92-15.851 7.052-18.673 6.135-2.792 12.961.994 15.195 8.438 2.239 7.479-.913 15.857-7.044 18.678l.004.029z" transform="matrix(.01896 -.24408 .22029 .01391 146.251 342.069)"/> - <path d="M283.132 834.193c-6.042 2.742-12.815-.985-15.011-8.352-2.197-7.368.9-15.657 6.962-18.432 6.043-2.779 12.81.956 15.01 8.345 2.197 7.368-.893 15.656-6.96 18.439z" transform="matrix(.01896 -.24408 .22029 .01391 146.251 342.069)"/> - </g> - </g> - <path d="M290.95 194.833l-.35.434-14.056 17.5-.305.383.355.339c4.515 4.3 7.13 11.619 7.14 17.494.01 7.484-1.207 12.635-2.723 17.373-2.094 6.544-4.799 12.31-5.633 21.894-.62 7.113 1.945 12.655 5.239 16.656 3.293 4 7.302 6.483 9.683 7.605 7.308 3.446 14.848 2.258 22.383 3.222 3.348.429 5.192 2.524 6.928 4.367l.389.411.389-.411c1.736-1.843 3.58-3.938 6.928-4.367 7.535-.964 15.075.224 22.383-3.222 2.38-1.122 6.39-3.605 9.683-7.605 3.294-4.001 5.858-9.543 5.24-16.656-.835-9.585-3.54-15.35-5.634-21.894-1.516-4.738-2.734-9.889-2.722-17.373.009-5.875 2.624-13.194 7.139-17.494l.355-.339-.305-.383-14.056-17.5-.35-.434-.417.367c-4.312 3.769-9.283 5.13-14.25 4.917-4.967-.213-9.922-2.024-14.1-4.617l-.283-.172-.283.172c-4.178 2.593-9.133 4.404-14.1 4.617-4.967.213-9.938-1.148-14.25-4.917l-.417-.367zm.15 1.511c4.427 3.678 9.53 5.055 14.561 4.84 4.872-.21 9.672-1.876 13.806-4.29v51.24h-37.273c1.455-4.653 2.617-9.835 2.606-17.15-.01-6.032-2.558-13.31-7.133-17.906l13.433-16.734zm57.8 0l13.433 16.734c-4.575 4.597-7.124 11.874-7.133 17.905-.011 7.316 1.151 12.498 2.606 17.15h-37.273v-51.239c4.134 2.414 8.934 4.08 13.806 4.29 5.03.215 10.134-1.162 14.561-4.84zM281.85 249.2h76.3c2.088 6.4 4.607 11.965 5.406 21.139.593 6.813-1.834 12.05-4.995 15.889-3.16 3.839-7.069 6.257-9.317 7.316-6.962 3.284-14.333 2.145-22.06 3.134-3.474.444-5.53 2.525-7.184 4.283-1.655-1.758-3.71-3.839-7.183-4.283-7.728-.99-15.099.15-22.061-3.134-2.248-1.06-6.157-3.477-9.317-7.316s-5.588-9.076-4.995-15.89c.8-9.173 3.318-14.738 5.406-21.138z" fill="#e7ca00" stroke="#d4af37" stroke-width=".5333399999999999"/> - <g fill="#008f4c"> - <path d="M373.305 171.419c-.077.009-.128.036-.15.093-.102.351-.408 2.262-.611 4.22-.153 1.959-.405 3.563-.456 3.563-.05 0-1.12-.45-2.389-1.003-3.097-1.355-9.544-2.11-9.9-1.156-.253.602.46 4.015 1.628 7.931.254.854-.05 1.109-1.878 1.66-1.218.352-2.592.953-3.1 1.355-.863.602-.76.803 1.423 2.812l2.389 2.16-1.123.904c-1.066.853-1.064.85 2.795 4.516 4.264 4.017 6.484 5.246 9.377 5.246.889 0 1.876.166 2.59-.039.948-.163 1.692-.483 4.027-.734 2.523.222 5.007 1.458 6.005 2.006.246.54.455 1.027.611 1.43-1.804-1.958-5.805-2.738-6.638-2.768-.834-.03-1.257.193-2.15.466s-1.234.686-2.084 1.864c-.609 1.556.6 3.176 2.073 3.376 1.827.251 3.194-.755 3.194-2.411 0-1.356-.778-2.335-.139-2.286 2.227.17 5.573 1.934 6.233 4.193.762 2.812.61 2.966-.76 1.058-1.27-1.657-3.253-3.42-3.862-3.47-.457 0-1.472 2.463-1.472 3.618 0 .753-.201.903-.861.652-.508-.25-1.626-.502-2.489-.603l-1.572-.252.405 2.51c.204 1.356.864 3.418 1.423 4.523l1.066 2.055-2.439-.75c-5.229-1.608-4.872-1.66-4.516 1.1.152 1.356.459 2.865.61 3.317.306.753.05.904-1.727.904-1.167 0-2.083.151-2.083.302 0 1.155 4.114 6.626 6.144 8.233 2.488 1.907 7.21 4.017 9.089 4.017.558 0 2.232.45 3.805 1.053l2.795 1.003v3.014c0 3.314-1.02 9.993-1.578 9.993-.152 0-1.064-1.406-1.978-3.163-2.081-3.816-1.98-3.765-2.538-2.861-.407.602-.506.552-.506-.302 0-1.456-2.339-5.824-3.811-7.23l-1.217-1.156-.61 1.354-.606 1.305-2.745-3.01c-1.523-1.657-2.941-2.913-3.144-2.762-.254.1-.558 1.459-.761 2.965-.508 4.368-.714 4.616-2.39 3.01l-1.421-1.355-.356 1.354c-.61 2.41.156 10.895 1.222 13.857.559 1.556 1.267 4.422 1.623 6.38.609 3.766 2.792 8.081 5.483 10.792.964 1.005 1.115 1.404.505 1.404-.406 0-1.115.402-1.572.904-1.98 2.159-.15 4.97 2.845 4.418 1.472-.251 1.775-.15 2.283.954.761 1.606.81 4.522.1 5.777-.508.954-3.504 2.207-4.011 1.705-.153-.151-.251-1.858-.2-3.766l.05-3.464-2.59 1.36c-6.243 3.313-11.495 11.85-12.832 18.427-.446 2.195-1.709 2.437-3.295 5.037-1.551.879-3.063 2.033-4.533 3.547-2.538 2.46-3.203 2.811-7.01 3.765-4.671 1.155-14.67 2.76-22.184 3.514-6.549.652-27.158 3.964-28.427 4.516-.559.251-1.88.804-2.895 1.206-1.015.402-2.236 1.308-2.744 2.061-.71 1.105-.758 1.456-.2 2.51 1.37 2.51 4.01 2.459 9.644-.202 2.488-1.205 5.533-2.209 7.767-2.56 1.98-.301 4.927-.904 6.45-1.255 1.523-.402 5.784-1.157 9.389-1.76 20.51-3.263 28.022-4.871 36.399-7.783 5.584-1.958 5.539-1.955 10.666-1.453 5.788.553 13.094-1.257 16.09-3.968.66-.603 2.387-2.711 3.91-4.72 1.472-2.008 3.3-4.015 4.011-4.467 1.93-1.255.814-1.71-4.16-1.71h-4.167l1.422-3.108c1.624-3.615 3.299-8.386 2.994-8.687-.101-.1-1.57.097-3.194.498-1.676.352-3.1.604-3.15.554-.102-.1.1-.851.405-1.705.406-1.104.964-1.706 1.878-1.907.762-.15 1.677-.404 2.083-.504.356-.1 1.523 0 2.59.301 1.878.502 1.93.603 1.677 2.16-.305 1.958.761 3.365 2.589 3.365 1.32 0 2.839-1.459 2.839-2.664 0-1.355-1.976-2.96-3.195-2.658-.609.1-2.338-.15-3.86-.652l-2.74-.954 2.64-.554c4.01-.853 5.33-.701 5.888.554.355.803 1.016 1.204 2.133 1.304 3.199.302 4.213-4.22 1.167-5.174-1.117-.351-3.556.856-3.556 1.76 0 .3-.862.498-1.877.498a17.305 17.305 0 0 0-5.967 1.119l3.883-1.919c2.336-.703 5.385-1.808 6.756-2.46 4.518-2.11 8.985-7.33 10.66-12.3 1.067-3.164 2.692-13.057 2.184-13.057-.254 0-1.929.655-3.705 1.458-3.25 1.506-3.3 1.505-3.3.4.05-2.058.91-8.135 1.266-9.038.254-.553.152-.85-.305-.85-1.523 0-6.445 2.712-9.695 5.322-3.147 2.51-3.455 2.66-3.455 1.606 0-.652.458-1.908 1.017-2.812.913-1.506 1.166-1.605 2.994-1.304 1.777.301 2.083.146 2.844-1.009 1.067-1.606.46-3.514-1.266-4.067-.965-.3-.867-.45.96-1.354 2.285-1.104 4.723-3.663 6.55-6.977l1.217-2.061-1.827.203c-1.016.1-1.823.149-1.823.098 0-.05.355-1.054.762-2.209.406-1.154.76-3.06.76-4.165 0-2.109-1.877-9.792-2.588-10.595-.254-.302-1.271.153-2.439 1.107l-1.978 1.556-1.883-4.116c-1.015-2.26-1.976-4.219-2.078-4.32-.101-.15-.761.302-1.472.955-1.574 1.456-1.676.654-.306-2.308 1.219-2.61 1.779-2.966 3.2-2.012 1.726 1.105 3.653.054 3.856-2.055.101-1.255-.102-1.76-1.067-2.412-.66-.401-1.572-.655-1.928-.504-.456.15-.916-.252-1.322-1.206-.355-.954-1.014-1.602-1.877-1.853-2.64-.652-4.468 2.658-2.54 4.566.762.703.765 1.257.206 4.922-.914 5.925-1.217 6.476-1.928 3.815-.812-2.962-.46-11.194.606-13.604 1.828-4.167.763-10.75-2.283-14.164-2.523-2.824-9.505-7.806-10.661-7.673zm-3.528 13.741c.441.015 2.34 1.619 5.422 5.262 2.576 3.057 5.642 8.328 7.628 12.256-.698-.812-1.166-.856-3.189-3.64-1.675-2.309-4.394-7.396-6.983-10.057-2.332-2.354-3.233-3.736-2.917-3.815a.14.14 0 0 1 .04-.006z" fill="#00a854"/> - <path d="M382.478 239.084c-.484 1.898-.877 2.24.139 3.695.457.703 1.32 1.105 2.183 1.105 1.37 0 2.132 1.004 3.3 4.519.152.552.254.552.254-.151.05-.502-.407-1.757-.965-2.862-.61-1.205-.812-2.058-.508-2.26.965-.602.559-3.162-.609-3.966-1.574-1.104-2.085-.81-3.794-.08z"/> - </g> - <path d="M288.645 321.419c-1.067.86-1.343 2.226-.553 3.007 1.145 1.133 5.133.117 5.568-1.445.552-2.187-2.844-3.241-5.015-1.562z" fill="#9eab05"/> - <g fill="#75b52b"> - <path d="M374.494 175.586c.406 2.51 2.843 7.632 4.67 9.74.762.905 1.473 1.557 1.625 1.457.102-.15-1.32-3.163-3.198-6.678-2.64-5.02-3.35-6.025-3.097-4.519zM357.588 189.092c.559.603 8.123 2.762 8.123 2.31 0-.904-2.437-1.958-5.33-2.26-1.676-.2-2.945-.2-2.793-.05zM360.736 195.218c.61.602 9.493 4.67 11.93 5.472 1.473.502 3.402.804 4.316.703 1.523-.15 1.37-.25-1.828-1.305-1.93-.653-4.57-1.707-5.838-2.36-3.097-1.556-9.494-3.414-8.58-2.51zM389.623 208.121c-.762 2.31-1.98 10.042-2.336 15.063-.253 3.263-.203 4.368.407 5.12.66.904.761.503 1.32-4.016.761-6.376 1.573-17.422 1.37-17.673-.101-.1-.457.602-.761 1.506zM381.094 212.288c.254 4.017 1.98 8.335 2.589 6.427.203-.602-.305-2.812-1.219-5.473l-1.573-4.468.203 3.514zM375.408 212.389c.355.502 1.218 1.556 1.827 2.31l1.168 1.455v-1.305c0-.753-.508-1.657-1.32-2.26-1.624-1.305-2.589-1.355-1.675-.2zM368.25 224.79c0 .251 5.533 4.469 7.36 5.623 1.473.904 1.473.904-.405-1.305-1.93-2.26-5.077-4.519-6.295-4.519-.356 0-.66.1-.66.201zM371.042 235.635c1.32 5.573 2.335 8.736 2.894 9.088.355.2.71.351.761.25.254-.25-2.386-7.882-3.198-9.288l-.762-1.305.305 1.255zM376.88 240.003c0 .753.457 2.31 1.015 3.414.559 1.105.914 1.657.813 1.205-.102-.452-.406-1.857-.559-3.163-.406-2.61-1.269-3.615-1.269-1.456zM366.574 243.769c.965 3.213 3.452 8.284 6.955 13.958 2.59 4.267 2.59 4.267 2.742 2.51.101-1.406-.406-2.661-2.285-5.824-1.32-2.21-3.553-6.125-4.975-8.636-1.37-2.56-2.69-4.619-2.894-4.619-.203 0 0 1.205.457 2.61zM398.1 244.522c-2.233 2.41-6.7 8.636-8.173 11.498-.507 1.004-.66 2.008-.457 2.811.305 1.155 1.016.251 6.042-7.682 3.097-4.97 5.483-8.987 5.28-8.987-.254 0-1.422 1.055-2.691 2.36zM390.08 281.826c-.762 1.406.203 3.013 1.827 3.013 1.473 0 2.386-1.757 1.625-3.163-.61-1.155-2.792-1.105-3.452.15z"/> - </g> - <g fill="#d91023"> - <path d="M375.154 205.159c-1.93 1.356.101 4.77 2.132 3.565 1.219-.804 1.422-2.762.305-3.565-.508-.352-1.066-.653-1.219-.653-.152 0-.71.301-1.218.653zM388.455 194.314c-1.168.301-1.625 1.858-.914 3.163 1.016 1.858 3.554 1.105 3.554-1.054 0-1.507-1.168-2.41-2.64-2.109zM391.806 198.18c-.153.402-.203 1.255-.102 1.908.102.904.457 1.155 1.625 1.155 1.827 0 2.843-1.356 2.03-2.661-.71-1.105-3.147-1.406-3.553-.402zM372.768 273.24c-1.879 1.507-.102 4.168 2.234 3.264 1.066-.401 1.472-1.606.863-2.71-.711-1.356-1.828-1.557-3.097-.553zM383.098 239.582c-.559.552-.406 2.41.254 3.063 1.523 1.506 3.807 0 3.249-2.16-.254-.953-.66-1.255-1.777-1.255-.762 0-1.574.151-1.726.352zM392.51 239.514c-.356 1.456.507 2.762 1.827 2.762 1.219 0 2.133-1.205 1.93-2.611-.102-.904-.508-1.205-1.777-1.306-1.422-.15-1.676.05-1.98 1.155zM393.836 276.555c-.355 1.456.508 2.761 1.828 2.761 1.218 0 2.132-1.205 1.93-2.61-.102-.905-.508-1.206-1.778-1.306-1.421-.15-1.675.05-1.98 1.155zM390.748 281.202c-1.879 1.506-.102 4.167 2.233 3.263 1.066-.401 1.473-1.606.863-2.71-.71-1.357-1.827-1.557-3.096-.553z"/> - </g> - <path d="M369.697 185.58c.204.323 1.185 1.475 2.166 2.566 1.88 2.042 3.414 4.164 6.255 8.591 2.003 3.133 4.537 6.327 4.537 5.741 0-.606-4.496-8.146-6.275-10.531-2.35-3.113-6.09-6.974-6.806-6.974-.143 0-.102.222.123.606z" fill="#75b52b"/> - <path d="M382.678 249.045c-.061.344-.584 3.724-.81 7.686-.53 9.177-1 14.113-2.043 20.036-.45 2.607-.879 5.154-.94 5.66l.134.84.838-1.172c.9-1.233 1.84-2.122 3.189-3.032.45-.324 1.9-1.678 3.188-3.052 6.46-6.812 8.258-8.935 13.817-16.293 5.151-6.852 6.398-8.57 6.296-8.692-.205-.182-1.807 1.343-8.225 9.287-1.778 2.203-4.79 5.66-6.61 7.68-4.476 4.933-9.477 9.519-10.796 11.292-.121.163.184-1.152.43-2.122 1.144-4.831 1.614-10.148 1.757-20.538.061-4.527.082-8.227.02-8.227-.061 0-.163.283-.245.647zM370.139 282.224c-.389.647-1.594 2.77-2.698 4.71-3.434 6.145-7.4 11.703-10.404 14.594-1.083 1.051-.775 1.141-1.001 1.375-1.187 1.22 3.597 2.082 7.235 2.445 4.906.486 7.624-.485 20.726-7.398 3.065-1.617 3.883-2.122 3.27-2.021-1.206.202-3.107.647-8.789 3.355-5.56 2.628-8.045 3.776-10.559 4.342-1.962.445-4.84.485-6.537.081l-1.156-.077.613-.202c.51-.121 1.304-.15 1.57-.372.265-.243 1.308-.986 2.31-1.492 2.268-1.152 4.766-3.23 8.2-6.302 2.636-2.345 7.705-7.46 7.705-7.783 0-.222-2.37 1.719-5.416 4.407-6.296 5.579-12.468 9.723-15.105 10.147l-.777.122.818-.728c.266-.384 1.259-1.852 2.28-3.348 2.454-3.577 3.394-5.283 5.683-9.953 2.105-4.305 2.972-6.873 2.829-6.994-.04-.04-.409.445-.797 1.092zM370.29 217.435c-.06.344 2.626 3.589 5.72 7.136 3.164 3.627 5.022 5.056 7.54 8.222 2.518 3.167 2.778 3.4 5.588 5.935 3.505-4.609 5.655-10.886 7.138-14.878 1.466-3.946 2.647-7.335 2.684-12.538-2.01 4.35-2.07 5.915-3.641 10.66-1.584 4.787-5.113 13.078-6.433 14.851-.121.163-7.411-8.785-10.592-12.494-3.377-3.939-8.017-7.305-8.003-6.894z" fill="#eac102" fill-opacity=".502"/> - <path d="M372.68 174.807l-.612 4.535-1.834-.907c-1.936-.907-6.928-1.965-9.323-1.965-1.324 0-1.375.1-1.12 1.612.305 1.613 1.579 6.198 2.037 7.205.102.303-.764.806-1.936 1.16-1.222.352-2.598.956-3.107 1.36-.917.655-.816.806 1.12 2.519 2.293 2.066 2.497 2.62 1.223 3.527-.764.554-.458 1.007 2.904 4.232 2.089 2.015 4.687 4.081 5.706 4.585 2.598 1.36 7.642 1.36 10.342 0 1.885-.957 2.038-.957 3.26-.151 1.223.756 1.274.756.612-.05-.408-.454-2.802-1.915-5.298-3.175-7.031-3.627-12.788-9.976-15.233-16.98-1.223-3.476-1.223-5.34.05-5.34 2.09 0 6.522 1.108 9.018 2.217 3.72 1.713 10.342 8.061 12.176 11.74 1.325 2.569 1.478 3.476 1.529 7.305 0 4.434.713 6.298.815 2.267.204-5.088.356-6.247 1.12-8.162 1.529-3.728.765-9.422-1.68-12.798-.816-1.058-3.465-3.375-5.961-5.139-2.446-1.713-4.636-3.325-4.79-3.627-.203-.252-.662 1.561-1.018 4.03zm6.52.756c3.414 2.368 4.382 3.376 5.452 5.542 1.63 3.376 2.14 7.457 1.223 10.48l-.713 2.268-1.325-2.822c-.866-1.914-2.7-4.182-5.706-7.154-2.394-2.419-4.636-4.384-4.942-4.384-.56 0-.356-3.426.408-6.399.305-1.31 0-1.46 5.604 2.47zm-16.353 12.344c.459.806 1.274 1.663 1.732 2.016.51.352 1.02 1.108 1.172 1.662.255.907 0 1.008-2.394 1.008-2.395 0-2.802-.151-4.637-2.015-1.07-1.109-1.885-2.116-1.732-2.217.408-.403 3.72-1.764 4.33-1.814.357 0 1.02.605 1.53 1.36zm6.776 7.81c2.955 2.72 3.821 3.275 7.387 4.686 1.885.755 1.987.856 1.172 1.612-1.12 1.108-6.725 1.512-9.272.655-2.19-.705-10.139-7.86-9.323-8.364.866-.554 3.515-1.108 5.45-1.159 1.376-.05 2.242.454 4.586 2.57zM384.346 204.988c-.203.252 0 1.36.408 2.469.917 2.57.866 3.325-.05 5.088-.408.807-.765 2.368-.765 3.427 0 1.108-.255 2.72-.611 3.627l-.56 1.613-1.682-1.059c-.917-.604-1.783-1.561-1.936-2.116-.459-1.511-.255-4.736.357-7.81.458-2.166.815-2.77 1.528-2.72.764.1.815-.05.255-.655-.51-.655-.714-.655-1.274.151-.357.504-.815 1.612-.968 2.52-.306 1.662-.306 1.662-1.783.957-2.19-1.16-3.006-.958-3.006.705 0 1.663.866 4.333 1.936 5.996 1.172 1.763 1.223 1.007.051-1.26-1.376-2.771-1.834-5.693-.917-5.693.408 0 1.223.352 1.834.755.917.655 1.07 1.21.968 4.182-.05 4.031-.408 4.233-5.197 2.62-1.579-.554-3.005-.907-3.158-.806-.204.252.611 4.484 1.172 5.845.203.604-.153.756-2.09.554l-2.394-.151 1.427 2.418c3.158 5.492 7.744 8.767 14.061 10.077 1.987.403 4.381 1.109 5.247 1.562 1.223.655 1.427.655.968.101-.305-.403-1.477-1.058-2.547-1.41-2.904-1.059-5.706-3.074-9.374-6.954s-5.553-7.154-5.553-9.674c0-1.31.153-1.612.764-1.36.459.151 2.19.655 3.923 1.108 4.28 1.058 5.4 1.713 8.151 4.636 2.904 3.073 3.872 4.887 4.738 9.019.408 1.813.815 3.375.968 3.527.663.705.866-1.613.306-3.578-.917-3.325.458-9.774 3.362-15.468 1.274-2.52 5.197-6.348 5.808-5.643.204.202.866 2.368 1.529 4.787 1.375 5.139 1.171 6.65-1.274 11.74-1.783 3.627-3.464 5.743-6.114 7.658-1.986 1.41-1.426 1.864 1.325 1.159 2.445-.655 6.368-4.233 8.508-7.76l1.12-1.914-1.986.352-1.936.303.917-2.67c1.172-3.427 1.172-4.787 0-8.868-.56-1.865-1.12-4.031-1.325-4.787l-.305-1.41-1.63 1.158c-.918.605-1.784 1.31-1.936 1.562-.612.857-1.325-.1-3.057-3.93-.917-2.066-1.834-3.779-2.038-3.779-.255 0-1.019.605-1.783 1.36l-1.325 1.411.306-1.41c.255-.958.153-1.31-.204-1.109-.255.151-.51.806-.51 1.41 0 2.42-.865 2.42-1.63.051-.407-1.31-.866-2.166-1.019-1.914zm7.388 12.697c-1.478 2.922-2.497 5.945-2.904 8.263l-.612 3.627-.815-2.015c-.458-1.159-1.477-2.771-2.19-3.678-1.376-1.562-1.376-1.663-.816-5.24.866-5.694 1.987-8.767 4.025-10.984l1.834-2.066 1.885 3.729 1.885 3.678-2.292 4.686zm-19.309 8.313c6.215 6.45 8.355 8.969 7.285 8.616-4.636-1.36-7.896-3.779-10.342-7.558-.968-1.461-1.732-2.821-1.732-2.973 0-.15.611-.251 1.325-.251.917 0 2.038.705 3.464 2.166zm28.988 3.98c-2.037 3.225-3.26 4.434-5.502 5.543l-2.038 1.058 2.038-2.217c1.121-1.21 2.599-3.074 3.21-4.081 1.019-1.613 1.732-2.116 3.311-2.368.204 0-.254.907-1.019 2.065z" fill="#cab313" fill-opacity=".502"/> - <path d="M382.869 208.968c.713 1.512 2.038 3.074 2.089 2.52 0-.303-.612-1.21-1.325-2.016-.713-.857-1.07-1.058-.764-.504z" fill="#005000"/> - <path d="M369.42 235.269c-.205 1.058-.561 2.771-.867 3.88l-.458 1.914-1.478-1.36-1.426-1.36-.408 2.367c-.458 3.275.102 8.163 1.528 12.748.663 2.116 1.376 4.988 1.58 6.398.611 4.636 4.432 10.077 9.374 13.453.917.655 1.274 1.512 1.58 3.779l.407 2.922-.102-2.77c-.051-1.512-.662-5.24-1.325-8.314-1.579-7.306-1.12-10.38 2.548-17.836l2.649-5.341 2.7 5.391c3.617 7.205 3.974 9.623 2.038 15.518-.764 2.368-1.63 4.535-1.885 4.888-.255.352-.357.806-.255 1.058.153.201.051.705-.255 1.108-.407.605-.458.554-.203-.252.203-.554-.51-.05-1.682 1.26-1.12 1.26-2.14 2.72-2.292 3.275-.255.907-.204.907.611-.1.459-.605 1.274-1.714 1.783-2.42.51-.705 1.121-1.158 1.325-1.007.764.403 1.477-.907 3.159-5.593 2.343-6.55 3.82-9.12 7.03-12.344 2.14-2.116 4.229-3.476 7.795-5.19 2.7-1.26 4.993-2.317 5.095-2.317.407 0-1.121 8.767-1.987 11.336-.968 3.074-3.72 7.407-5.91 9.422-2.14 1.965-6.42 4.081-10.444 5.19-1.732.504-3.312 1.058-3.464 1.31-.255.453 3.77-.655 7.489-2.066 5.4-1.965 10.495-7.205 12.583-12.747.917-2.419 2.904-12.899 2.497-13.251-.102-.101-1.783.604-3.821 1.562l-3.617 1.713.305-3.376c.153-1.864.56-4.434.917-5.794.612-2.318.612-2.368-.458-2.066-2.548.756-7.133 3.527-9.884 6.046l-3.006 2.67.153-4.635c.153-3.124.051-4.333-.255-3.628-.254.555-.509 2.016-.509 3.275-.051 2.57-1.12 7.558-1.63 7.558-.204 0-1.121-1.461-2.038-3.275-1.681-3.124-2.446-3.98-2.547-2.67 0 .352-.51-.706-1.172-2.419-.612-1.662-1.783-3.88-2.598-4.937l-1.478-1.915-.815 1.562-.815 1.562-1.936-2.52c-1.07-1.41-2.395-2.77-2.904-3.023-.815-.453-.968-.251-1.223 1.36zm3.464 1.562c1.936 2.368 6.164 10.329 6.724 12.697l.306 1.26-.917-1.26c-1.63-2.318-6.063-6.298-8.763-7.86-1.324-.756-1.375-1.008-1.019-2.67.204-1.008.51-2.42.714-3.225.153-.756.458-1.36.662-1.36.204.05 1.223 1.108 2.293 2.418zm7.081 4.887c1.478 3.074 1.783 4.988.968 6.248-.662 1.058-4.84-7.71-4.432-9.321.305-1.109.458-1.21 1.171-.605.459.353 1.478 2.015 2.293 3.678zm-9.017 1.612c3.26 2.167 6.572 5.442 7.438 7.407.458.907.305 1.612-.51 3.225-1.375 2.67-2.14 8.162-1.63 11.79.204 1.612.204 2.922 0 2.922-.662 0-4.33-4.686-6.012-7.608-3.362-5.895-5.757-15.519-4.941-19.801l.356-1.915 1.121.957c.611.555 2.496 1.915 4.178 3.023zm30.771 0c-.255 1.36-.56 3.678-.713 5.19-.306 2.72-.357 2.822-3.312 4.635-1.68 1.058-3.973 3.074-5.196 4.636-1.172 1.511-2.293 2.67-2.497 2.519-.254-.1-.56-1.31-.764-2.62-.153-1.31-.662-3.124-1.019-4.081-.662-1.512-.611-1.814.357-3.174 2.14-2.973 11.208-9.473 13.246-9.473.153 0 .102 1.058-.102 2.368zm-27.358 24.638c1.885 1.915 3.006 3.427 2.853 3.98-.102.706-.662.404-2.751-1.561-2.802-2.62-5.044-6.046-5.553-8.515-.306-1.31-.153-1.21 1.019.756.713 1.26 2.7 3.678 4.432 5.34z" fill="#cab313" fill-opacity=".502"/> - <path d="M369.368 280.464c-5.502 3.678-10.143 11.34-11.56 17.484-.102 1.562-1.767 2.87-1.512 2.72.204.754 1.77-.034 2.477-2.52 1.338-4.704 5.042-13.15 9.882-16.525 1.477-1.008 2.955-1.865 3.21-1.865.254 0 .356 1.915.254 4.384-.102 3.376-.458 4.988-1.375 6.852-1.529 3.074-5.655 7.608-8.56 9.27-2.445 1.412-2.648 2.016-.407 1.16 2.497-.958 8.406-7.054 9.986-10.33.815-1.662 1.477-3.324 1.477-3.677 0-.353.612-.907 1.427-1.21 1.834-.705 10.953-2.972 11.157-2.72.407.403-3.483 8.561-4.757 10.224-1.936 2.468-6.572 5.995-8.864 6.7-1.07.303-3.374 1.544-5.076 1.86-1.853.343-2.409.371-4.572.605l-1.797 1.067 1.783-.302c.968-.151 3.414-.454 5.35-.655 5.608-1.947 7.762-3.16 11.435-5.973l2.385-2.02 4.571.233 3.72.303-1.733 2.066a481.354 481.354 0 0 0-3.973 4.836c-1.172 1.512-2.853 3.124-3.72 3.628-2.445 1.41-7.794 2.57-12.278 2.57-4.075.05-4.177 0-6.215-1.814-2.089-1.864-2.904-2.217-3.21-1.41-.05.251-1.834 1.007-3.82 1.763-3.974 1.36-4.84 1.007-2.548-1.109.866-.806 1.775-.803 3.609-.903 0 0 3.853.858 3.892.067.038-.787-3.84-.725-3.84-.725-1.81.106-2.23.046-.807-1.804 1.671-1.05 2.331-3.1 1.421-2.652-2.226 2.69-3.67 3.756-7.026 7.025-3.205 2.22-3.612 2.372-7.999 3.58-2.802.654-7.437 1.41-10.188 1.763-5.34.604-7.607 1.946-2.446 1.005 2.611-.476 5.959-.853 10.24-1.61 6.173-1.512 6.583-1.613 9.629-3.227 2.488-2.56 2.894-2.86 1.58-.755-.46 1.562.305 1.511 5.196-.353 3.872-1.512 3.973-1.512 4.941-.554.968.957.917 1.007-1.019 1.814-4.126 1.713-12.176 3.93-20.378 5.542-4.687.957-8.66 1.864-8.814 2.066-.407.403 5.553-.252 6.827-.807.56-.201 4.789-1.31 9.425-2.368 4.636-1.108 9.935-2.62 11.82-3.375 3.158-1.26 3.668-1.31 6.368-.807 3.413.605 9.068.05 13.195-1.31 3.159-1.007 5.35-2.871 8.559-7.356 1.325-1.864 3.006-3.829 3.72-4.333l1.324-.957-4.484-.302c-2.445-.152-4.585-.403-4.687-.555-.102-.1.153-.907.612-1.763.407-.857 1.477-3.426 2.292-5.643l1.529-4.132-1.783.353c-.968.151-2.599.453-3.567.605l-1.783.352.764-1.864c.408-1.008.663-1.814.51-1.814-.102 0-.56.806-.968 1.764-.866 1.965-1.885 2.368-1.529.604.153-.806 0-.655-.61.504-.51.907-1.478 1.814-2.192 2.116-.713.252-1.732.605-2.292.806-.866.404-.917.152-.713-3.426.101-2.469 0-3.88-.357-3.88-.306 0-1.681.756-3.108 1.714z" fill="#cab313" fill-opacity=".502"/> - <path d="M321.784 313.869c-2.954.252-8.915 1.159-18.85 2.77-5.196.807-9.68 1.512-10.036 1.563-.357 0-.51.201-.408.403.153.201-.56.504-1.528.655-2.242.453-4.84 2.57-4.84 4.03 0 1.462 1.681 2.973 2.904 2.671.815-.201.764-.252-.102-.302-2.241-.101-3.108-2.721-1.375-4.233 1.426-1.31 8.151-3.275 11.972-3.577 4.84-.403 18.8-2.318 19.41-2.72.306-.152 2.14-.555 4.127-.908 3.363-.554 2.7-.755-1.274-.352z" fill="#cab313" fill-opacity=".502"/> - <path d="M313.378 318.756c-9.17 1.764-14.876 3.225-17.627 4.635-3.566 1.764-3.057 1.915.764.202 1.783-.806 4.84-1.713 6.776-2.015 1.885-.303 6.114-1.109 9.323-1.764 3.21-.655 7.133-1.41 8.661-1.663l2.802-.453-2.293-.05c-1.273 0-5.043.503-8.406 1.108z" fill="#cab313" fill-opacity=".502"/> - <path d="M353.552 305.384c-1.593.959-3.237 2.852-1.455 2.566 1.352-.119 6.413-1.657 6.808-2.656-1.937.171-3.528-.296-5.353.09z" fill="#fff"/> - <g stroke="#d4af37" stroke-width=".904"> - <path d="M367.709 432.44c-1.503.459-2.482.902-9.093.441-4.507-.307-10.173-1.117-13.102-1.194-5.56-.077-5.603.349-15.52 7.111-6.986 4.764-16 4.41-22.667 2.93-4.057-1.844-5.8-2.26-5.199-1.261 1.127 1.844 9.01 4.402 13.368 4.402 7.061 0 12.245-1.768 20.734-7.07 6.535-4.15 9.465-4.534 18.48-2.459 10.621 2.102 12.195 1.195 20.868-2.706-2.588-.073-3.194-.001-4.064.351 1.494-1.625 1.555-3.144 1.85-4.183.43-.566-.721.19-2.11 1.164-1.39.974-3.02 2.166-3.545 2.474z" fill="#fff" transform="matrix(.59548 0 0 .58466 141.357 62.902)"/> - <path d="M354.025 429.835c-4.883-.768-8.23-1.435-11.29-1.092-3.41.38-5.839 2.075-9.895 4.61-4.057 2.613-7.708 4.495-8.159 4.495-.526 0-5.764 1.22-9.746 1.22-1.878 0-5.913-1.245-8.617-2.244-5.71-2.151-7.794 1.329-1.86 3.865 5.276 1.8 10.625 2.506 15.617 1.763 4.991-.743 9.625-2.935 13.47-5.77 7.627-5.624 3.166-2.918 6.206-4.207 3.04-1.288 5.848-.851 5.848-.851 3.982.153 11.88 1.466 15.862 1.543 7.287-.658 6.037-.672 8.441-2.05.838-.48 3.488-2.234 3.65-2.63.16-.398 1.39-2.702 1.154-2.793-7.452 5.131-11.202 5.12-20.681 4.141z" fill="#d91023" transform="matrix(.59548 0 0 .58466 141.357 62.902)"/> - <path d="M341.028 435.395c-1.052.461-4.207 2.306-7.137 3.996-6.16 3.765-11.96 5.57-18.748 5.647-3.08.463-13.072-3.606-11.57-3.145 1.608 3.033 3.952 3.425 9.676 4.508 3.993.756 6.582.13 11.062-.826 5.02-.615 7.078-2.888 8.956-4.271 4.357-3.228 11.893-5.37 13.996-5.37.977 0 4.757 2.065 8.902 2.962 4.145.896 6.145 1.127 10.443.444s8.724-4.2 12.84-6.924c-.669.21-2.132.214-4.14.276-5.895 3.474-15.88 4.783-21.134 2.425-5.333-1.306-10.517-.951-13.146.278z" fill="#d91023" transform="matrix(.59548 0 0 .58466 141.357 62.902)"/> - </g> - <g> - <path d="M276.415 176.346c-6.461 2.13-13.282 7.252-17.538 13.135-.923 1.268-1.743 2.231-1.846 2.13-.051-.102.41-2.688 1.128-5.731.718-3.043 1.282-6.086 1.23-6.796 0-1.166-.102-1.116-2.05 1.015-2.462 2.738-5.692 8.773-6.923 12.932-.667 2.231-.923 4.716-.923 9.331l.051 6.34-1.23-4.463c-1.283-4.767-2.616-8.013-3.95-9.687-.666-.862-.87-.913-1.332-.253-.975 1.47-.308 7.759 1.333 12.425.154.558-.462-.254-1.385-1.775-.974-1.522-2-2.688-2.256-2.536-.615.304-.667 5.274-.051 7.354.461 1.47.461 1.47-1.282-.508-2.872-3.296-3.539-3.55-3.539-1.267 0 .862.36 2.383.77 3.398.41.963.769 1.876.769 1.927 0 .05-.718.253-1.641.456-2.257.457-2.974 1.167-2.974 3.043 0 2.029 1.384 6.745 2.102 7.201.77.457 1.026 0 1.692-2.941l.616-2.637 1.897 2.434c2.718 3.55 6.769 11.665 8.82 17.7 2.154 6.44 2.256 7.708.257 3.753-.82-1.573-2.257-3.956-3.129-5.275-1.948-2.738-12.666-13.845-13.384-13.845-.769 0 0 3.449 1.385 6.34.667 1.42 2.666 4.209 4.359 6.237 1.743 1.978 3.025 3.652 2.871 3.652-.153 0-1.384-.812-2.666-1.775-2.615-1.978-5.282-3.5-5.641-3.195-.103.152.923 2.282 2.308 4.818l2.461 4.615-1.64-.254c-.924-.152-2.155 0-2.77.304-.923.508-1.077 1.065-1.077 3.5 0 3.245.82 6.694 1.59 6.694.718 0 2-3.195 2-4.92 0-1.369.051-1.318 2.615 1.116 3.64 3.55 8.513 9.586 13.333 16.584l4.051 5.934-4.77-3.55c-4.563-3.347-13.947-8.571-15.486-8.571-.41 0-.769.203-.769.456 0 .254 3.026 3.297 6.718 6.796l6.666 6.34-3.487-1.167c-1.897-.608-4.307-1.268-5.282-1.47-1.743-.356-1.743-.254 2.154 3.347 2.154 2.028 6.051 5.02 8.718 6.694 2.615 1.623 4.307 2.79 3.743 2.637-4.666-1.319-11.538-2.434-11.538-1.826 0 .71 3.538 3.5 6.051 4.768 1.385.659 4.872 2.079 7.795 3.042 5.948 2.08 9.538 3.956 12.563 6.593l2.052 1.826-3.59-1.572c-4.102-1.826-15.23-5.528-16.512-5.528s3.846 5.02 8.82 8.723c4.564 3.398 13.23 7.709 19.486 9.737 5.231 1.674 9.641 2.536 17.948 3.6 3.693.457 7.18 1.015 7.846 1.269.616.304 5.128.963 10 1.521 14.256 1.674 24.666 4.108 30.768 7.202 1.641.811 3.436 1.115 7.18 1.318 5.538.254 5.794.102 4.204-2.941-1.333-2.536-3.692-3.854-8.717-4.767-2.513-.507-6.667-1.319-9.23-1.826-5.385-1.116-15.744-2.942-28.872-5.02-14.102-2.283-20.204-4.717-26.819-10.65-9.795-8.724-14.923-22.873-13.333-36.87.36-2.993.564-5.478.462-5.58-.462-.405-3.744 6.34-4.616 9.383l-.923 3.347.206-5.376c.358-8.367 3.487-16.178 8.204-20.691 1.026-.964 1.846-1.927 1.846-2.13 0-.203-.974-.102-2.153.203-1.539.355-3.026 1.318-4.872 3.195l-2.667 2.637 1.231-2.384c1.898-3.753 5.18-7.506 8.308-9.585l2.923-1.876-1.693-.152c-3.384-.355-9.487 4.057-12.871 9.331-1.949 3.094-1.949 2.13.051-2.586 1.898-4.615 4.82-9.129 8-12.476 1.795-1.877 2.102-2.485 1.436-2.485-2.667 0-7.18 3.448-10.923 8.368-1.077 1.47-1.077 1.369.154-1.522 1.538-3.448 3.897-7.303 6.102-9.737 1.59-1.826 1.129-2.08-1.538-.862-2.41 1.166-6.308 5.477-8.564 9.636-1.077 1.927-1.846 3.043-1.692 2.485.154-.558.513-2.029.77-3.297 1.896-8.418 6.512-16.634 12.768-22.67 2.41-2.281 3.025-3.194 2.359-3.194-1.949 0-6.513 2.586-9.538 5.426-3.128 2.942-3.18 2.942-1.949.913 4.308-7.252 10.769-13.845 18.204-18.562 2.36-1.521 4.308-2.89 4.36-3.042 0-.761-7.795 1.572-11.334 3.347-.82.456-2.769 1.826-4.41 3.144-2.461 1.978-2.718 2.13-1.795.812 1.744-2.435 7.641-7.658 10-8.876 1.744-.912 1.949-1.166 1.077-1.318-2.359-.355-8.923 3.093-14.05 7.353l-2.257 1.928 1.23-2.029c4-6.542 8.923-11.766 14.718-15.519 2.051-1.318 4.051-2.485 4.41-2.637.308-.101.513-.355.36-.507-.155-.152-2 .254-4.052.964zm77.074 145.044c.718.76 1.333 1.572 1.333 1.775 0 .253-1.128.456-2.564.456-2.461 0-2.564-.05-2.564-1.42 0-2.586 1.641-2.89 3.795-.811z" fill="#00a854"/> - <path d="M350.253 320.483c-1.231 1.167-1.026 3.094.359 3.449 2.153.558 4.974.355 4.974-.406 0-.76-3.282-3.854-4.103-3.854-.256 0-.82.355-1.23.811z" fill="#9eab05"/> - <path d="M279.084 175.466c-5.423.947-10.153 4.172-14.305 7.624-.579.534-.895.837-.917.915-.306.347-3.057 2.797-4.75 5.156-.822.949-1.963 2.57-2.555 3.549.127-.963.848-3.848 1.583-7.097.824-3.868 1.186-7 1.084-7.153-.515-.458-4.231 4.408-6.084 8.123-2.727 5.344-3.527 9.027-3.527 16.661l-.056 6.349-1.25-4.824c-1.338-5.039-3.642-10.285-4.722-10.59-.36-.102-.767.622-.972 1.69-.31 1.68-.023 3.298 2.138 11.95.155.712-.402.057-1.277-1.47-1.956-3.41-2.629-4.182-3.195-3.826l1.39 1.996c.771 1.12 2.156 3.768 3.082 5.905 2.522 5.955 6.285 18.574 5.667 19.184-.154.102-.465-.308-.722-.97-.257-.662-.966-2.59-1.583-4.27-.618-1.679-2.003-4.696-3.084-6.68-2.418-4.428-4.167-9.31-4.528-12.67l-.277-2.467c-.713.554-.424 3.5.583 6.737.515 1.73.913 3.105.861 3.105-.103 0-1.217-1.426-2.555-3.105-1.853-2.341-2.585-2.949-2.945-2.44-.463.763-.192 2.279.89 5.129l.694 1.94h-1.695c-.926 0-2.096.31-2.611.666-.875.61-.931 1.017-.417 3.715.592 3.333 1.42 5.78 2.056 5.821 1.017.065.987-1.004 1.5-3.909.206-.833.56-1.347.639-1.83.218.306.53.678.972 1.137 4.33 5.892 8.227 13.96 10.028 19.406 1.44 4.326 4.114 15.718 3.805 16.024-.103.153-.74-1.776-1.305-4.27-2.059-8.651-4.967-13.766-13.972-22.621 0 0-3.091-3.698-5.584-5.129.041 2.086.472 2.44.472 2.44.618 3.155 2.21 5.902 6.945 11.45 2.11 2.493 3.805 4.703 3.805 4.906 0 .153-1.174-.784-2.666-2.107-2.728-2.392-6.95-5.12-7.361-4.713-.155.102.86 2.34 2.25 4.935 1.75 3.257 2.288 4.584 1.722 4.38-2.007-.814-2.741-.814-4.028 0-1.338.865-1.336.947-1.028 4.408.155 1.934.58 4.02.89 4.63.617 1.018.604 1.027 1.221-.194.36-.662.767-2.092.973-3.16.205-1.019.512-1.886.666-1.886.174 0 2.785 2.718 4.056 3.965.508.661 1.1 1.381 1.722 2.134 3.036 3.715 11.422 14.416 13.583 17.826l1.084 1.774-1.75-1.358c-5.815-4.98-15.342-10.547-18.945-11.616-1.008-.3-1.279-.012-.805.527-.017.001-.046-.01-.056 0 2.473 3.338 9.735 9.43 11.639 11.033 1.904 1.603 1.885 2.2 1.833 2.301-.103.051-1.43-.567-3.694-1.33-5.815-2.036-7.328-2.08-6.556-1.165.36.407 1.233.698 2.056.749 2.985.05 10.556 3.363 15.805 6.875 3.397 2.29 11.53 10.024 12.611 12.06.566 1.119.364 1.013-1.694-.666-2.779-2.24-10.494-6.622-11.111-6.265-.206.152-2.017-.185-3.972-.693-2.007-.51-4.996-1.072-6.695-1.276l-3.027-.36 1.805 1.636c2.367 2.137 6.33 4.058 12.917 6.348 2.933 1.018 6.284 2.388 7.416 3.05 2.47 1.425 7.563 5.4 7.306 5.655-.103.102-1.978-.613-4.14-1.58-3.653-1.68-12.697-4.832-15.888-5.545-1.183-.254-.782.246 2.306 3.3 2.058 1.933 5.569 4.793 7.833 6.32 10.91 7.176 20.799 10.338 39.222 12.475 2.933.356 5.126.8 4.972 1.054-.154.254 4.48.937 9.472 1.497 13.38 1.577 21.721 3.405 29.389 6.459 3.345 1.374 5.31 1.82 8.86 2.024 3.397.203 4.556.153 4.556-.305 0-1.17-1.472-3.463-3.222-4.99-1.544-1.323-2.566-2.115-8.639-3.133-3.808-.61-7.23-1.437-7.694-1.691-.463-.254-8.109-1.32-16.805-2.745-19.092-3.053-24.961-4.432-30.056-6.875-12.608-6.107-21.196-19.399-21.916-34.82-.155-3.104-.059-7.163.25-9.148.309-1.934.52-3.613.416-3.715-.463-.458-4.354 7.283-4.972 10.285l-.25 1.941-.194-3.493c-.052-7.94 2.506-14.852 6.778-20.653 0 0 2.85-2.804 3.25-3.549.027-.022.026-.057.027-.083.014-.04.014-.067 0-.083-.015-.017-.02-.038-.055-.028-.011-.01-.014-.017-.028-.028-2.036-.636-4.233 1.037-7.194 3.688-1.84 1.855-2.092 2.315-2.195 2.162.117-1.332 5.447-9.426 6.528-9.426.206 0 1.517-1.538 2-1.996.617-1.577-3.185 1.917-5.861 5.683-6 7.995-7.364 16.074-7.056 26.864.103 3.308-.143 5.905-.194 5.905-.257 0-1.812-3.855-2.583-6.349-1.956-6.31 1.044-19.475 6.138-26.142.875-1.12 3-3.546 3.334-4.103.72-1.374-3.512 3.397-5.056 5.738-.35.706-.833 1.137-.916.97-.084-.166.182-.924.583-2.162 1.904-5.547 5.193-11.268 9.36-15.746 1.545-1.68 1.593-1.66.306-1.303-3.036.865-5.778 3.207-8.75 6.598-.72 1.12-1.373 1.717-2.194 2.661.284-1.388 2.958-7.019 5.222-10.174 1.39-1.883 2.722-3.158 2.667-3.576-.056-.419-1.5.03-3.583 1.58-3.14 2.29-4.923 4.709-7.611 9.093-1.235 2.494-1.056 1.793-1.473 2.245 1.39-7.023 2.379-10.334 4.695-14.914 2.11-4.123 4.176-6.912 8.139-11.034 2.778-2.85 3.338-3.66 2.36-3.354-3.036.916-6.26 2.948-9.194 5.849-1.698 1.73-2.389 2.25-2.389 1.996s.83-1.674 2.528-4.27c3.602-5.496 8.81-11.208 14.111-14.72 2.625-1.781 6.769-3.742 6.306-4.047a.487.487 0 0 0-.223-.056c.276-.45-1.179-.135-4.86.998-3.654 1.12-7.566 3.295-11.528 6.349-1.532 1.433-1.23.25 2.527-3.466 2.007-2.035 5.095-4.513 6.64-5.378 2.572-1.527 2.368-1.88.722-1.525-3.86.764-11.283 4.982-13.445 7.68-.012.015-.016.013-.028.027-.092.036-.174.048-.305.111-1.168.718-2.298 2.33-2.028 1.636.27-.694.859-1.28 2.222-3.493 4.169-6.718 9.7-11.629 16.75-15.802 1.737-1.05 1.806-1.564.584-1.442zm-38.86 27.085c.015-.012.039-.018.055-.028l-.055-.055v.083zm34.805-25.172c.062.002.11.03.139.055.103.153-.55.716-1.528 1.276-1.904 1.221-8.33 7.536-10.389 10.285-2.624 3.41-5.686 8.948-7.333 13.223-.926 2.392-1.639 3.956-1.639 3.549-.051-1.12 1.406-8.633 1.972-10.618.172-.537.261-1.05.306-1.441.258-.162.662-.61 1.333-1.664a42.01 42.01 0 0 1 2.611-3.52c1.152-1.425 4.735-5.173 4.64-5.268-.015-.014-.068.018-.112.028.352-.252.718-.52 1.25-.915 3.377-2.481 7.824-5.02 8.75-4.99zm-16.917 2.744c.038-.002.07.015.084.056.103.305-.539 4.729-1.722 9.87-2.368 10.84-4.097 19.342-4.612 25.144-.36 3.562-.469 3.878-.777 2.3-.258-.966-.544-5.911-.75-10.95-.36-9.975.038-12.888 2.61-18.435 1.448-3.197 4.608-7.947 5.167-7.985zm13.861 8.345c.155 0-1.226 1.375-3.027 3.105-7.36 6.82-12.718 16-15.806 27.196l-.972 3.548.306-3.299c.154-1.832.528-4.696.888-6.376.464-2.036 1.555-5.394 2.667-8.4 1.112-3.006 2.16-5.563 4.417-7.818.49-.517 1.524-1.444 1.778-1.857.54-.382 1.348-.97 2.805-2.107 2.058-1.629 6.173-3.992 6.944-3.992zm6.084 2.578c.24-.012.36.027.36.167 0 .101-1.348 1.038-2.944 2.106-3.91 2.545-11.161 10.035-13.888 14.056-2.47 3.664-6.21 10.86-7.806 15.441-1.44 4.224-1.35 1.954.195-4.103 1.389-5.343 4.846-13.301 7.444-17.16.482-.7.77-1.136 1.472-2.08.697-.786.91-1.178 1.167-1.025.257.153 1.431-.562 2.666-1.58 2.702-2.271 9.647-5.738 11.334-5.822zm-34.472 3.798c.128-.044.302.177.61.61.361.509 1.348 2.848 2.223 5.24 2.367 6.616 5.506 24.316 4.528 25.283-.155.203-.306-.134-.306-.693 0-.56-1.138-4.601-2.527-8.927-4.014-12.316-5.404-18.41-4.89-20.598.155-.56.233-.87.362-.915zm26.5 10.923c.102 0-1.036 1.236-2.528 2.661-6.896 6.973-11.413 16.443-13.111 27.64-.412 2.799-.993 5.29-1.25 5.544-.206.204-.6-.922-.806-2.55-.669-5.293 1.135-13.9 4.222-20.21.67-1.374.736-1.971 1.278-2.828.363-.307.703-1.023 1.334-1.857 2.302-2.528 6.085-6.31 8.555-7.43 1.184-.509 2.203-.97 2.306-.97zm-33.361 1.275l1.028 1.275a84.54 84.54 0 0 1 3.138 4.325c2.162 3.156 7.823 14.311 8.39 16.55.205.713-.503-.403-1.584-2.44-1.08-2.035-3.453-5.647-5.306-8.039-4.168-5.496-5.666-8.161-5.666-10.146v-1.525zm-1.167 7.402c.16-.016.35 0 .556 0 1.492 0 4.641 2.781 7.472 6.598 3.242 4.377 7.004 13.588 8.805 21.374.875 3.97 2.361 14.15 2.361 16.44v1.635l-.833-1.524c-.463-.866-1.116-3.426-1.528-5.767-1.183-6.718-3.041-13.216-5.305-19.017-2.265-5.751-7.117-13.914-9.278-16.052-.324-.316-.584-.49-.75-.554-.348-.573-1.094-1.166-1.444-1.47-1.126-1.024-1.171-1.55-.056-1.663zm-2.528.86l1.223.748c1.711 1.21 2.369 1.694 1.972 3.244-.219 1.519-.47 2.98-.778 3.437-.36.713-.783.187-1.194-1.441-.31-1.12-.656-2.951-.862-4.02l-.36-1.969zm33.806 6.792c.147.013.12.19-.112.554-.473.392-1.632 1.907-2.25 2.772-3.293 4.428-8.073 16.652-9 23.675-.514 3.665-1.142 1.99-1.194-3.05-.103-7.277 3.147-15.42 8.139-20.458 2.046-2.1 3.975-3.533 4.417-3.493zm-34.333 3.188c.478.1 1.929 1.505 5.36 4.934 3.191 3.257 6.606 7.16 7.584 8.788 1.955 3.308 4.013 8.152 4.528 10.646.257 1.425-.262.86-3.195-3.16-1.955-2.647-4.698-6.194-6.139-7.874-5.557-6.412-7.608-9.57-8.277-12.724-.097-.414-.079-.656.139-.61zm38.055 1.358c.103 0-1.15 1.527-2.695 3.41-1.543 1.934-3.637 5.084-4.666 7.07-2.059 4.07-5.114 13.294-6.195 19.045-1.132 5.903-1.23 5.789-.972-.777.463-12.621 5.005-22.828 12.056-27.306 1.286-.764 2.369-1.442 2.472-1.442zm-37.528 9.065l1.556.804c.875.458 2.964 1.953 4.61 3.327 1.7 1.425 3.24 2.394 3.445 2.19.258-.203.321-.167.167.139-.154.254 1.143 2.455 2.944 4.796 3.448 4.478 7.25 11.535 9 16.522.566 1.68.964 3.11.861 3.16-.051.103-1.587-2.232-3.388-5.183-3.911-6.464-8.54-12.209-11.834-14.804-1.8-1.425-3.143-3.175-4.944-6.432l-2.417-4.519zm40.556 6.71h.083c-.916.757-2.861 2.966-2.861 2.966-2.573 2.799-5.503 8.038-6.584 12.669-1.183 5.293-.793 18.89.75 24.59.567 2.086.992 3.858.89 3.909-.36.356-3.407-8.133-3.973-11.034-.875-4.428-.823-14.813 0-18.325.978-3.97 3.188-8.6 5.195-10.84 1.75-1.984 4.956-3.936 6.5-3.936zm-39.389 1.746c.777.036 1.683.442 3.111 1.358 5.506 3.46 12.444 12.618 20.472 26.919 6.433 11.553 10.138 20.263 4.889 11.56-7.462-12.316-19.603-28.75-24.389-33.738-.501-.522-.752-.72-.805-.693l-.084-.139c-.669-.814-2.657-2.434-3.583-2.994-2.058-1.272-2.11-1.783-.361-2.19.244-.064.491-.095.75-.083zm-1.944 2.328c.411 0 1.024.314 1.333.721.617.764.272 4.67-.5 5.129-.566.407-.838-.185-1.25-3.188-.309-2.138-.201-2.662.417-2.662zm36.083 13.75s-.06 2.68-.112 5.989c-.463 14.148 4.44 26.057 14.167 34.709 5.815 5.14 12.39 7.95 22.889 9.73 3.499.611 6.7 1.123 7.11 1.276.412.152 5.254.655 4.945 1.164-.154.204.307.319 1.028.166 2.058-.356 8.44 1.03 10.139 1.081 2.624.051 19.749 3.607 23.722 5.018 1.39.56 4.416 4.06 4.416 5.129 0 .305-1.59.42-4.472.166-3.5-.254-5.31-.71-8.5-2.134-6.638-2.952-15.896-5.054-27.166-6.072-5.815-.509-24.656-3.81-30.111-4.879-6.741-1.374-11.575-3.013-17.75-6.016-6.587-3.206-10.3-5.696-14.416-9.564l-3.334-3.188 2.834.804c8.285 2.392 14.977 5.403 23.416 10.645 6.638 4.123 8.842 5.183 12.444 6.1 3.294.865 4.278.92 4.278.36 0-.204-1.696-.914-3.805-1.525-14.358-4.428-25.167-19.242-25.167-34.46 0-2.544.251-5.602.611-6.874.515-1.985 2.628-7.624 2.834-7.624zm-33.389 1.637c.258.109.518.207.75.249 3.036.458 15.244 8.187 19.36 12.309 1.442 1.425 3.408 4.031 4.334 5.71l1.64 3.106-2.834-2.301c-1.596-1.273-4.485-3.26-6.39-4.38-2.006-1.171-6.266-4.944-9.971-8.456-2.619-2.442-5.423-5.077-6.889-6.237zm8.417 21.43c.215-.01.579.042 1.138.138.978.152 3.597.715 5.862 1.275 8.13 1.883 17.865 8.026 22.805 14.388l2.222 2.855-2.278-1.164c-1.235-.61-2.214-1.266-2.11-1.47.308-.508-4.833-4.789-7.612-6.265-1.39-.763-5.302-2.331-8.75-3.603-6.278-2.24-9.987-4.092-11.222-5.517-.354-.446-.415-.622-.055-.638z" fill="#cab313" fill-opacity=".502"/> - <path d="M272.202 234.198c-1.125.39-2.85 2.038-3.976 2.873-2.251 1.67-2.554 2.276-.415.773 1.576-1.113 4.246-3.115 6.638-3.41.223-.027-.95 1.146-1.568 1.814-.845.946-.62.89 1.35-.39 1.295-.835 2.364-1.614 2.364-1.726 0-.445-2.423-.657-4.393.066zM237.5 272.155c0 1.273 15.783 12.91 16.503 12.198.103-.101-1.955-1.526-4.631-3.155-2.625-1.578-6.025-4.323-7.775-5.85-1.698-1.527-3.845-3.994-4.098-3.193z" fill="#cab313" fill-opacity=".502"/> - </g> - <g stroke="#d4af37" stroke-width=".904"> - <path d="M246.162 432.318c-5.483 1.69-12.845 1.998-16.376.691-1.277-.46-5.204-.206-6.18-.052 3.564 2.386 2.118 1.386 2.83 1.881 1.291.76.754.603 3.064 1.633-.395.45-.589.627-2.405 1.29 2.412.567 5.403.8 8.302.67a37.042 37.042 0 0 0 8.747-1.455c3.756-1.076 7.803-1.777 9.005-1.777 1.127 0 5.333 1.259 9.39 3.41 8.545 4.735 14.518 5.95 20.528 5.95 4.131 0 8.44-.922 13.329-4.113 3.613-2.36.568-2.302-3.027-.722-4.958 1.998-15.13 2.89-26.924-3.18-7.136-3.688-12.695-5.84-14.648-5.686-.376 0-2.93.691-5.635 1.46z" fill="#fff" transform="matrix(.59548 0 0 .58466 141.357 62.902)"/> - <path d="M219.856 429.486c1.465 1.23 1.25 1.471 3.79 3.53 3.558.349 10.643 1.11 13.273 1.11 2.328 0 6.826-.404 9.906-1.25 6.233-1.314 9.223-.93 20.567 4.056 13.146 6.763 20.53 5.524 27.29 2.22 9.43-3.586.254-2.04-3.165-3.031-1.127.384-2.568 1.84-5.253 2.817-3.754 1.367-5.765 1.324-10.272-.981-2.855-1.46-5.387-2.152-7.946-3.552-2.52-1.46-3.15-1.289-7.358-2.672l-6.196-1.22-9.38-.496c-8.113 1.69-16.09.4-21.5-1.29-5.408-1.69-6.385-1.393-3.756.759z" fill="#d91023" transform="matrix(.59548 0 0 .58466 141.357 62.902)"/> - <path d="M244.35 436.83c-6.46 1.921-14.34 2.016-17.27.94-1.532.62-.008-.018-3.84 1.365-5.033 1.69-5.108 1.768-2.93 2.382 1.278.385 6.311.692 11.27.615 8.563 0 9.314-.153 14.047-2.459 2.78-1.383 5.86-2.459 6.911-2.459.977 0 4.602 2.067 7.757 3.68 8.79 4.61 12.134 5.969 19.42 5.892 7.287-.077 16.694-5.291 17.862-7.074-5.596 3.396-10.23 5.156-17.312 4.87-7.082-.287-12.552-2.834-19.764-6.907-5.784-3.227-7.812-3.304-16.151-.845z" fill="#d91023" transform="matrix(.59548 0 0 .58466 141.357 62.902)"/> - <g stroke-width=".807"> - <path d="M293.47 417.689c1.216-1.4.855-1.915-2.49-2.381-8.288-1.323-18.856-6.3-23.113-10.888-2.129-2.334-3.117-2.567-3.117-.7 0 1.944 6.766 8.088 11.632 10.577 4.258 2.255 11.67 4.724 14.483 4.724.836 0 1.92-.477 2.604-1.332z" fill="#fff" transform="matrix(-.20995 -.43098 -.90458 .22461 741.935 335.252)"/> - <path d="M290.67 421.403c.238-.407-.408-2.4-3.112-2.97-6.682-1.384-14.159-5.289-18.931-9.845-3.58-3.5-5.332-3.843-4.139-.67 1.62 4.575 14.327 11.001 19.259 12.547 5.011 1.628 6.206 2.077 6.922.938z" fill="#d91023" transform="matrix(-.20995 -.43098 -.90458 .22461 741.935 335.252)"/> - <path d="M295.457 415.365l.827-1.39-4.033-2.547c-4.601-.588-12.942-3.604-18.55-6.766-2.517-1.398-5.249-2.575-6.112-2.575-1.51 0-1.61 0 .116 1.913 3.954 4.34 14.336 9.397 21.742 10.427 2.373.367 4.788 2.042 6.01.938z" fill="#ed1c24" transform="matrix(-.20995 -.43098 -.90458 .22461 741.935 335.252)"/> - <path d="M293.47 417.689c1.216-1.4.855-1.915-2.49-2.381-8.288-1.323-18.856-6.3-23.113-10.888-2.129-2.334-3.117-2.567-3.117-.7 0 1.944 6.766 8.088 11.632 10.577 4.258 2.255 11.67 4.724 14.483 4.724.836 0 1.92-.477 2.604-1.332z" fill="#fff" transform="matrix(.23749 -.41683 .88814 .2813 -101.867 308.341)"/> - <path d="M288.923 420.615c.146-.251 1.314-1.57-1.365-2.182-6.682-1.384-14.159-5.289-18.931-9.845-4.24-4.604-6.35-5.55-4.139-.67 1.62 4.575 14.327 11.001 19.259 12.547 5.011 1.628 4.46 1.289 5.176.15z" fill="#d91023" transform="matrix(.23749 -.41683 .88814 .2813 -101.867 308.341)"/> - <path d="M295.457 415.365l.827-1.39-4.033-2.547c-4.601-.588-12.942-3.604-18.55-6.766-2.517-1.398-5.249-2.575-6.112-2.575-1.51 0-1.61 0 .116 1.913 3.954 4.34 14.336 9.397 21.742 10.427 2.373.367 4.788 2.042 6.01.938z" fill="#ed1c24" transform="matrix(.23749 -.41683 .88814 .2813 -101.867 308.341)"/> - </g> - <path d="M319.677 402.697c-6.356 1.817-11.424 5.84-16.665 13.131-2.07 2.879-4.032 4.339-2.635 5.038 1.538.77 2.898-1.393 5.658-4.15 6.96-6.955 12.479-9.89 19.997-9.972h5.969l-1.783-2.478c-2.17-2.973-4.573-3.303-10.541-1.569zM269.234 405.082c-1.273 1.465-.895 2.003 2.604 2.491 8.67 1.384 19.727 6.591 24.181 11.392 2.227 2.44 3.261 2.685 3.261.732 0-2.034-7.079-8.462-12.17-11.066-4.454-2.36-12.208-4.942-15.152-4.942-.874 0-2.008.498-2.724 1.393z" fill="#fff" transform="matrix(.59517 .01882 -.01898 .58436 149.955 60.264)"/> - <path d="M318.582 399.536c-1.706.578-4.108 1.651-5.426 2.312-3.566 1.982-9.02 8.373-9.834 9.58-.87 1.29-2.14 2.793-3.002 4.19-1.274 2.068-1.482 3.204-.845 3.33.637.126 2.12-.758 3.527-2.73 6.022-8.443 11.55-12.223 19.765-13.874 4.263-.826 4.883-.826 6.356.66 1.162 1.074-.337-.236-.57-.979-.542-1.817-1.91-2.737-4.546-3.233-1.24-.165-3.72.083-5.425.744z" fill="#d91023" transform="matrix(.59517 .01882 -.01898 .58436 149.955 60.264)"/> - <path d="M271.987 403.32c-.238.406 1.83 1.139 4.534 1.708 6.682 1.383 14.159 5.289 18.931 9.845 3.58 3.499 5.332 3.843 4.139.67-1.62-4.575-14.327-11.002-19.259-12.548-5.011-1.627-7.629-.815-8.345.324zM320.52 407.381c-4.884 1.734-9.767 4.79-13.642 8.506-3.953 3.882-5.738 6.35-4.188 6.35.31 0 2.715-1.89 4.343-3.294 7.053-6.029 19.763-9.425 25.421-7.36 2.713.99 1.436-2.011-.424-4.736-1.162-1.735-8.023-.705-11.51.534zM267.423 407.115l-3.307 3.14 4.928.794c5.091.651 14.318 3.987 20.522 7.486 2.784 1.546 5.807 2.847 6.761 2.847 1.67 0 1.782 0-.127-2.115-4.375-4.8-15.86-10.396-24.053-11.535-2.625-.407-3.372-1.837-4.724-.617z" fill="#d91023" transform="matrix(.59517 .01882 -.01898 .58436 149.955 60.264)"/> - <g> - <path d="M304.493 422.389c-1.651 5.417-1.432 10.396-.97 14.138 1.605-.193 2.662-.24 5.27-.725.273-2.198.686-4.745.573-7.435.338-3.7-.019-1.771 2.183-4.736-2.375-1.526-3.013-1.66-7.056-1.242z" fill="#d91023" transform="matrix(.59548 0 0 .58466 140.748 64.656)"/> - <path d="M296.203 428.628c-.084 4.215.317 5.13.27 7.137 2.355.385 7.422 1.07 7.121.225.02.922-.076-4.911-.002-7.985l.854-5.533-3.587-.549-3.23.405-1.426 6.3z" fill="#fff" transform="matrix(.59548 0 0 .58466 140.748 64.656)"/> - <path d="M291.002 428.828c.15 3.343-.53 4.487-.13 6.445 1.05.318 5.047.184 6.286.568-.176-4.355-.176-.547-.598-6.234l1.266-7.28-3.595.287s-2.221-.69-3.732-.72c1.303 2.274.503 6.934.503 6.934z" fill="#d91023" transform="matrix(.59548 0 0 .58466 140.748 64.656)"/> - </g> - </g> -</svg> diff --git a/img/flags/4x3/pf.svg b/img/flags/4x3/pf.svg deleted file mode 100644 index efc4cbe..0000000 --- a/img/flags/4x3/pf.svg +++ /dev/null @@ -1,33 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" height="480" width="640" viewBox="0 0 640 480"> - <defs> - <clipPath id="a"> - <path fill-opacity=".67" d="M0 0h640v480H0z"/> - </clipPath> - </defs> - <g clip-path="url(#a)"> - <path fill="#fff" d="M0 0h640v480H0z"/> - <path fill="#fff" d="M80 0h480v480H80z"/> - <path d="M277.28 340.75s10.839-8.788 21.386-8.788 13.477 7.323 20.801 7.909c7.324.586 13.475-7.324 22.558-7.617 9.082-.292 20.508 6.445 20.508 6.445l-39.843 12.013-45.41-9.962zM254.43 327.86l135.35.586s-11.718-12.597-25.488-12.89c-13.769-.295-9.96 5.86-20.507 6.737-10.546.88-13.185-6.444-22.852-6.152-9.666.292-15.234 6.152-22.557 6.446-7.324.292-16.699-7.326-22.266-7.03-5.567.292-25.488 8.787-25.488 8.787l3.809 3.516zM237.15 311.75l166.99.587c2.636-3.808-8.204-12.89-18.163-13.77-8.205.293-14.062 8.496-20.801 8.79-6.739.292-14.355-8.497-21.973-8.202-7.616.292-15.526 8.202-23.144 8.202-7.616 0-13.183-8.497-22.85-8.497-9.668 0-14.062 9.375-21.386 8.79-7.326-.587-13.77-9.375-20.801-9.375-7.03 0-18.75 10.546-21.093 9.96-2.344-.586 2.928 4.395 3.223 3.515z" fill-rule="evenodd" stroke="#083d9c" stroke-width="2pt" fill="#083d9c"/> - <path stroke-linejoin="round" d="M301.3 218.88l38.38 10.255v-54.786c-17.579.88-32.226-33.397-1.172-35.741-30.468-4.395-33.985 3.515-37.5 12.011l.292 68.261z" fill-rule="evenodd" stroke="#000" stroke-width="2.5" fill="red"/> - <path d="M276.99 258.72l86.718.292" fill-rule="evenodd" stroke="#083d9c" stroke-linecap="round" stroke-width="5" fill="#083d9c"/> - <g stroke="#000" stroke-linecap="round" stroke-width="2.133" fill="none"> - <path d="M281.094 237.919l10.254 13.77M281.094 251.7l11.134-13.476M286.962 237.037l-.292 8.496" stroke-width="3.999375"/> - </g> - <g stroke="#000" stroke-linecap="round" stroke-width="2.133" fill="none"> - <path d="M297.5 237.919l10.254 13.77M297.5 251.7l11.134-13.476M303.368 237.037l-.292 8.496" stroke-width="3.999375"/> - </g> - <g stroke="#000" stroke-linecap="round" stroke-width="2.133" fill="none"> - <path d="M314.198 237.919l10.255 13.77M314.198 251.7l11.134-13.476M320.067 237.037l-.292 8.496" stroke-width="3.999375"/> - </g> - <g stroke="#000" stroke-linecap="round" stroke-width="2.133" fill="none"> - <path d="M331.484 237.919l10.254 13.77M331.484 251.7l11.134-13.476M337.352 237.037l-.292 8.496" stroke-width="3.999375"/> - </g> - <g stroke="#000" stroke-linecap="round" stroke-width="2.133" fill="none"> - <path d="M348.183 237.919l10.254 13.77M348.183 251.7l11.134-13.476M354.051 237.037l-.292 8.496" stroke-width="3.999375"/> - </g> - <path d="M218.69 259.6l36.913.293V236.75l-42.187-2.05 5.274 24.902zM216.93 227.67l39.258 3.809-.292-16.406-38.38-15.234-.587 27.832zM224.84 194.86l30.176 14.648 4.309-4.498s-2.775-1.912-2.638-3.672c.052-1.78 2.792-2.05 2.844-3.98.05-1.78-3.103-1.994-3.137-3.774-.206-1.93 2.43-3.998 2.43-3.998l-27.245-23.73-6.739 29.004zM422.88 259.89h-38.964l-.292-22.558 42.772-3.223-3.516 25.78zM384.21 232.06l46.29-5.565-9.962-26.66-36.62 15.526.292 16.698zM417.9 192.51l-33.398 17.578c-.488-1.905-.902-3.737-3.221-5.274 0 0 2.05-1.172 2.05-3.224 0-2.049-2.638-2.343-2.638-3.515s2.417-2.195 2.564-4.833c-.293-1.831-2.564-4.393-2.124-4.907l25.928-19.85L417.9 192.51zM345.54 231.62l16.698-.732.292-6.74-16.99 7.472zM294.57 231.11l-17.578-.512v-7.032l17.578 7.544zM294.49 229.06l-17.505-9.01v-11.718s-2.051.293-1.758-2.05c.097-4.884 12.865 8.91 19.409 13.402l-.146 9.375zM345.54 227.96l-.072-7.616s15.818-14.281 19.187-16.92c0 2.93-1.83 5.2-1.83 5.2v11.133l-17.285 8.202zM243 163.8c.292.293 17.75 19.696 17.75 19.696.49-1.839 4.515-2.118 8.616-1.825 4.102.292 7.372-.275 7.372 2.655 0 2.93-2.081 2.513-2.081 4.565s3.118 1.879 3.118 4.513c0 2.636-2.261 2.098-2.273 4.14-.007 1.688 2.36 1.778 2.36 1.778l16.625 16.114.073-17.213-34.276-53.758L243 163.8zM270.43 143.45c.26.782 23.216 47.477 23.216 47.477s.26-43.825 4.173-46.173l-6.52-12-20.87 10.696zM371.38 145.27l-25.923 46.245.034-19.491s2.15-3.277-1.242-3.016c-3.39.26-7.564-.261-7.564-.261l10.434-36.521 24.26 13.044zM397.99 165.1c-.261.522-17.488 18.04-17.488 18.04-.782-2.086-5.99-1.085-10.947-1.085-4.957 0-5.647 1.59-5.385 2.893.522 3.392 2.196.893 2.196 4.024 0 3.13-2.412 1.987-2.627 4.279.24 2.632 3.786 1.981 1.708 3.976L345.5 216.376l.057-18.146 37.042-57.652 15.392 24.52z" fill-rule="evenodd" fill="#ef7d08"/> - <path stroke-linejoin="round" d="M309.82 268.4c-8.348 13.826-30.664 9.726-35.882.073-1.564-.443-.639-59.55-.639-59.55s-2.493-1.136-2.608-2.954c-.115-1.835 3.39-2.002 3.39-4.351 0-2.348-3.579-1.427-3.65-3.79.015-2.26 3.82-1.948 3.65-4.036-.201-2.353-4.262-2.005-4.434-4.175-.132-1.723 2.904-3.225 3.748-4-.546.027-2.82-.034-2.835-.042l-6.392.13c-4.541.005.078.99.012 3.61-.042 1.712-2.303 2.851-2.506 4.34-.071 1.527 3.236 2.6 3.278 4.434.037 1.636-3.25 1.748-3.132 3.268.205 2.573 2.912 3.139 2.871 4.696-.041 1.556-3.643 2.15-3.652 3.391.125 2.402.521 60.781.521 60.781 5.74 29.739 38.868 37.304 48.26-1.825zM331.66 268.4c8.348 13.826 30.663 9.726 35.881.073 1.564-.443.64-59.55.64-59.55s2.493-1.136 2.607-2.954c.114-1.835-3.17-2.002-3.17-4.351 0-2.348 3.36-1.427 3.43-3.79-.014-2.26-3.527-2.094-3.357-4.183.2-2.353 2.959-2.078 3.116-4.247.131-1.869-1.732-3.007-2.576-3.782.546.027 2.673-.034 2.689-.041l6.391.13c4.542.005-.078.99-.01 3.61.04 1.712 2.301 2.851 2.505 4.34.07 1.527-3.237 2.6-3.279 4.434-.036 1.636 3.25 1.747 3.131 3.268-.204 2.572-2.911 3.139-2.87 4.696.041 1.556 3.644 2.15 3.652 3.39-.125 2.403-.52 60.782-.52 60.782-5.74 29.739-38.868 37.304-48.26-1.825z" fill-rule="evenodd" stroke="#000" stroke-width="2.5" fill="red"/> - <path d="M301.71 295.59l37.277-.022c.29-.293-8.346-12.874-18.632-11.987-11.46.3-19.244 12.009-18.644 12.009zM420.57 294.68h-51.008s6.602-3.901 8.402-7.502c3.3 1.8 2.4 3.6 9.002 3.9 6.6.3 12.9-7.5 19.203-7.2 6.3.3 14.4 11.102 14.4 10.802zM219.57 294.68h51.008s-6.602-3.901-8.402-7.502c-3.3 1.8-2.4 3.6-9.002 3.9-6.599.3-12.9-7.5-19.203-7.2-6.3.3-14.4 11.102-14.4 10.802zM223.38 278.64l36.327.292s-2.344-4.98-2.636-11.13c-9.377-3.222-16.993 7.03-23.732 7.323-6.736.292-13.767-7.324-13.767-7.324l3.808 10.84zM417.32 278.64l-36.328.292s2.344-4.98 2.637-11.13c9.376-3.222 16.992 7.03 23.73 7.323 6.738.292 13.769-7.324 13.769-7.324l-3.808 10.84zM310.97 278.94l18.455-.584s.294-5.567-9.374-5.567c-9.668 0-8.788 6.445-9.081 6.151zM299.84 271.03c3.223-1.76 6.152-3.515 8.204-7.618l-12.598.292s-5.858 3.517-8.788 7.326h13.183zM340.56 271.03c-3.223-1.76-6.151-3.515-8.203-7.618l12.597.292s5.858 3.517 8.788 7.326H340.56z" fill-rule="evenodd" stroke="#083d9c" stroke-width="2pt" fill="#083d9c"/> - <path fill-rule="evenodd" fill="#de2010" d="M-40 360h720v120H-40zM-40 0h720v120H-40z"/> - </g> -</svg> diff --git a/img/flags/4x3/pg.svg b/img/flags/4x3/pg.svg deleted file mode 100644 index f24f6bd..0000000 --- a/img/flags/4x3/pg.svg +++ /dev/null @@ -1,9 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" height="480" width="640" viewBox="0 0 640 480"> - <g fill-rule="evenodd"> - <path d="M1.644 0l-.5 479.985H641.13L1.64 0z"/> - <path d="M640.63 479.984l.5-479.985H1.145l639.49 479.985z" fill="red"/> - </g> - <path d="M178 54l-3.84-.2c-1.18-2.78-4.513-3.823-6.563-2.653-1.86.16-11.6-.147-11.6-.147l7.12 3.12c1.76 4.76 7.88 5.88 7.88 5.88-.543 8.774-8.881-1.133-15.881 3.867-5 3-5.059 6.583-7.761 12.371-.84 1.61-4.36 5.761-4.36 5.761l5.88-.5-1.88 2.5 7-1s-.94.785-1.5 1.38c1.037.203 8-1.63 8-1.63l-.5 2.25c3.57-1.43 8-2.88 8-2.88s1.57 1.31 3 1.88l1-4 4 1 1-4c6 8 8 16 19 18l-1-4c3.06 1.31 8.74 4.09 8.74 4.09l.86-1.83c4.77 3.42 8.73 3.36 11.4 3.74 0 0-1.99-4.98-2-5 .13.05 1.99 1.01 2 1l-3-8 3 1-4-6 1.5-1-.5-3c6 2 14 5 15 12 1 11-11 14-19 13 6 5 17 3 22-2 2-2 3-5 4-8 1 3 3 7 3 11-1 9-13 12-21 13 9 5 25-1 26-14 0-11-7-16-10-21-.45-1.82-1-5.38-1-5.38.388.115 3 1.39 3 1.39s-1.77-3.31-2-4.01c0 0-3.12-8.5-4.25-10.38.186-.105 2.25.35 2.25.35l-8.19-10.27s1.976-.18 2.32-.24c0 0-9.52-7.51-12.13-8.46l3-1c-6-3-13-1-19 3l1-3-1.83.17v-3.43l1.83-2.74-3-1 2-5-3 1 1-5s-2.24 1.04-3.6.89c.05.11 1.59-3.42 1.59-3.42-.95-1.49.01-4.47.01-4.47-7 1-8 2-12 8-6 11-4 16-3 27z" stroke="#fc0" stroke-width="1.065" fill="#fc0" transform="matrix(2.21989 0 0 2.21194 1.145 0)"/> - <path d="M215.78 70.438c.521.86 6.197 3.594 10.468 6.016-1.146-4.61-9.479-5.625-10.468-6.016z" fill-rule="evenodd" stroke="red" stroke-width="1.42" fill="red" transform="matrix(2.21989 0 0 2.21194 1.145 0)"/> - <path fill-rule="evenodd" fill="#fff" d="M174.95 399.034l-14.12-8.98-18.95 9.046 4.202-16.147-14.487-15.174 16.718-1.017 9.996-18.404 6.127 15.528 20.667 3.783-12.929 10.617zM211.184 320.09l-6.55-3.119-6.296 3.605.959-7.188-5.388-4.844 7.142-1.306 2.965-6.613 3.457 6.37 7.221.774-5.006 5.243zM243.113 274.811l-14.363-6.99-13.923 7.831 2.222-15.771-11.785-10.772 15.746-2.765 6.63-14.488 7.526 14.067 15.872 1.814-11.1 11.458zM177.406 211.771l-16.92-8.447-16.573 9.097 2.835-18.642-13.808-12.895 18.671-3.075 8.043-17.07 8.704 16.745 18.776 2.347-13.29 13.422zM116.605 277.244l-17.062-10.087-17.016 10.308 4.362-19.288-15.11-12.918 19.759-1.836 7.676-18.315 7.85 18.16 19.854 1.615-14.906 13.05z"/> -</svg> diff --git a/img/flags/4x3/ph.svg b/img/flags/4x3/ph.svg deleted file mode 100644 index e8858d6..0000000 --- a/img/flags/4x3/ph.svg +++ /dev/null @@ -1,28 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" height="480" width="640" viewBox="0 0 640 480"> - <path fill="#0038a8" d="M0 0h640v240H0z"/> - <path fill="#ce1126" d="M0 240h640v240H0z"/> - <path d="M415.692 240L0 480V0" fill="#fff"/> - <g transform="translate(149.333 240) scale(5.33333)" fill="#fcd116"> - <circle r="9"/> - <g id="d"> - <g id="c"> - <g id="b"> - <path d="M-1 0l.062.062L0 0l-.938-.062z" transform="scale(19)"/> - <path id="a" d="M-.884.116l.05.05L0 0z" transform="scale(19.2381)"/> - <use height="100%" width="100%" xlink:href="#a" transform="scale(1 -1)"/> - </g> - <use height="100%" width="100%" xlink:href="#b" transform="rotate(45)"/> - </g> - <use height="100%" width="100%" xlink:href="#c" transform="rotate(90)"/> - </g> - <use height="100%" width="100%" xlink:href="#d" transform="scale(-1)"/> - <g transform="translate(-2.02)"> - <g id="f" transform="translate(37.962)"> - <path id="e" d="M5 0L1.618 1.176l-.073 3.58-2.163-2.854-3.427 1.037L-2 0z"/> - <use height="100%" width="100%" xlink:href="#e" transform="scale(1 -1)"/> - </g> - <use height="100%" width="100%" xlink:href="#f" transform="rotate(120)"/> - <use height="100%" width="100%" xlink:href="#f" transform="rotate(-120)"/> - </g> - </g> -</svg> diff --git a/img/flags/4x3/pk.svg b/img/flags/4x3/pk.svg deleted file mode 100644 index 96539e8..0000000 --- a/img/flags/4x3/pk.svg +++ /dev/null @@ -1,15 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" height="480" width="640" viewBox="0 0 640 480"> - <defs> - <clipPath id="a"> - <path fill-opacity=".67" d="M-52.334 0h682.67v512h-682.67z"/> - </clipPath> - </defs> - <g fill-rule="evenodd" clip-path="url(#a)" transform="translate(49.063) scale(.9375)" stroke-width="1pt"> - <path fill="#0c590b" d="M-95 0h768v512H-95z"/> - <path fill="#fff" d="M-95 0H97.52v512H-95z"/> - <g fill="#fff"> - <path d="M403.702 225.4l-31.165-6.556-16.389 27.306-3.395-31.666-31.036-7.15 29.067-13.014-2.791-31.724 21.36 23.622 29.309-12.458-15.865 27.614 20.905 24.026z"/> - <path d="M415.455 306.086c-27.665 60.96-100.277 87.588-161.41 59.27-61.142-28.326-87.777-100.93-59.451-162.071 14.447-31.184 38.089-52.614 71.462-64.31-3.839 3.246-7.637 6.613-11.8 10.908-43.11 44.491-41.99 115.592 2.5 158.699 44.49 43.11 115.592 41.991 158.698-2.5z"/> - </g> - </g> -</svg> diff --git a/img/flags/4x3/pl.svg b/img/flags/4x3/pl.svg deleted file mode 100644 index b6adace..0000000 --- a/img/flags/4x3/pl.svg +++ /dev/null @@ -1,6 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" height="480" width="640" viewBox="0 0 640 480"> - <g fill-rule="evenodd"> - <path fill="#e9e8e7" d="M640 480H0V0h640z"/> - <path fill="#d4213d" d="M640 480H0V240h640z"/> - </g> -</svg> diff --git a/img/flags/4x3/pm.svg b/img/flags/4x3/pm.svg deleted file mode 100644 index c9abb97..0000000 --- a/img/flags/4x3/pm.svg +++ /dev/null @@ -1,7 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" height="480" width="640" viewBox="0 0 640 480"> - <g fill-rule="evenodd" stroke-width="1pt"> - <path fill="#fff" d="M0 0h640v479.997H0z"/> - <path fill="#00267f" d="M0 0h213.331v479.997H0z"/> - <path fill="#f31830" d="M426.663 0h213.331v479.997H426.663z"/> - </g> -</svg> diff --git a/img/flags/4x3/pn.svg b/img/flags/4x3/pn.svg deleted file mode 100644 index 3b80360..0000000 --- a/img/flags/4x3/pn.svg +++ /dev/null @@ -1,62 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" height="480" width="640" viewBox="0 0 640 480"> - <defs> - <clipPath id="a"> - <path d="M-15-7.5h30v15h-30z"/> - </clipPath> - </defs> - <path d="M0 0h640v480H0z" fill="#00247d"/> - <g clip-path="url(#a)" transform="matrix(21.33333 0 0 21.33333 320 160)"> - <circle r="20" fill="#00247d"/> - <path d="M-20-10l40 20m-40 0l40-20" stroke="#fff" stroke-width="3"/> - <path d="M-20-10l40 20m-40 0l40-20" stroke="#cf142b" stroke-width="2"/> - <path d="M0 0l20 10h-3L-3 0m3 0l20-10h3L3 0M0 0l-20 10h-3L-3 0m3 0l-20-10h3L3 0" fill="#fff"/> - <path d="M-20 0h40M0-10v20" stroke="#fff" stroke-width="5"/> - <path d="M-20 0h40M0-10v20" stroke="#cf142b" stroke-width="3"/> - </g> - <path d="M409.941 310.379c-9.173 7.765-17.92 19.114-20.053 29.354-6.037 28.843-14.059 35.264-26.453 29.056 0 15.488 13.589 16.683 19.541 7.638 0 14.506 5.27 27.114 17.152 37.866 5.013 4.523 5.973 1.43 3.584-3.562-2.39-5.014-2.39-21.206-7.147-30.507 7.616 5.483 18.816 2.39 17.856-12.63-9.77 5.718-19.477 5.505-20.48-8.106-1.194-15.957 5.035-39.104 16-49.11zm-11.584-114.752c.64-5.718-.576-11.606-4.757-15.275-8.085-7.125-16-4.757-21.888.96-8.81-4.757-13.504 12.139-23.51 9.28 1.665 5.483 4.289 7.85 9.302 5.952-5.248 4.757 0 10.475-6.187 16.213 11.179 3.563 17.152-2.624 16.662-13.354 4.288 3.818 10.965 3.584 14.528-.704-5.952-1.92-5.974-7.104-3.563-11.926 3.563-7.146 20.352-6.869 19.413 8.854z" fill="#f7e017" stroke="#000" stroke-width=".63"/> - <path d="M424.213 278.507c-12.629 6.656-35.754 3.797-37.888-12.63-2.133-16.426 13.824-23.829 18.112-25.962 6.678-3.35 11.904 2.602 9.771 9.514a10.816 10.816 0 0 0 5.461-16.213c9.771.725 18.838-6.656 22.635-17.13-3.413 3.263-12.757 1.066-20.459.554 2.39-2.624 2.347-7.701 1.643-10.325-8.107 8.32-19.776 4.523-35.264 28.587 2.39-8.32 6.912-25.024 9.536-35.968a27.093 27.093 0 0 0 .597-3.307c.939-15.723-15.829-16-19.413-8.853 3.925 4.416 1.877 9.578.47 17.386-1.665 9.302-5.249 30.742-8.32 37.888-.96-11.2-8.363-11.904-9.793-17.386-2.133 1.429-3.328 5.248-2.858 7.85-2.624-2.858-11.67.725-14.998-3.562-3.584 7.146 2.134 14.293 8.107 17.386-3.477.235-4.31 4.416-8.107 4.416 5.12 5.952 10.347 8.32 16.427 8.811 6.08.491 10.603 2.73 14.293 10.133 5.974 11.904 28.65 19.627 50.048 8.811z" fill="#337321" stroke="#000" stroke-width=".63"/> - <path d="M455.659 263.957c-7.147 19.776-26.688 33.856-35.52 35.99-14.998 3.626-45.59 18.496-53.803 26.133" fill="#f7e017" stroke="#000" stroke-width=".63"/> - <path d="M409.941 310.379c-11.306 9.6-17.194 33.152-16 49.13.32 4.438 1.579 7.446 3.456 9.28.854-9.045 7.147-32.426 23.232-42.88 13.568-8.81 34.774-28.586 42.646-51.221-1.43-4.053-3.819-6.912-8.342-9.77-7.786 21.375-28.693 31.615-45.013 45.44z" fill="#337321" stroke="#000" stroke-width=".63"/> - <path d="M448.405 254.805c-4.053 6.059-13.226 14.4-22.037 17.75 1.899-2.155 2.496-4.907 2.603-7.168-11.2 4.309-33.579 3.84-42.646.49a58.176 58.176 0 0 0 57.664-17.151c1.92 2.133 3.563 4.053 4.416 6.08z" fill="#316d3a" stroke="#000" stroke-width=".63"/> - <path d="M362.73 304.704c-18.197 17.067-6.186 31.936.96 35.264-1.92 11.904 9.302 10.475 9.046 20.48 4.544-2.624 5.739-9.515 5.013-14.997 5.718 6.186 20.267-.725 23.339 10.709 1.92-12.63-7.85-25.259-20.01-24.064 5.013-4.523 2.133-11.904-2.603-13.803-.96 9.28-11.435 9.28-15.488 6.422-4.054-2.859-7.403-12.16-.256-20.011z" fill="#337321" stroke="#000" stroke-width=".63"/> - <path d="M402.176 413.099c-1.984 1.13-1.835 3.69-.597 5.354 2.496 3.328-1.75 10.88 6.314 12.502 2.39.49 4.224-.981 5.12-3.691 2.518-7.51-5.482-8.32-6.186-11.904-.726-3.584-2.987-3.221-4.651-2.261z" fill="#f7e017" stroke="#000" stroke-width=".63"/> - <path d="M408.96 427.157c-2.667 1.238-5.013 2.987-3.925 11.542.426 3.562.213 12.16-2.859 12.288 1.899.939 5.952 1.962 7.616-.256 1.6 2.688 5.248 1.92 6.677-1.43 1.899 1.558 4.523-1.066 4.523-3.328 1.664 1.067 4.992-.469 4.16-5.589 2.027.704 4.65-.725 5.61-2.027-2.986-.597-10.495-4.65-12.287-7.872-1.771-3.2-6.422-4.757-9.515-3.328z" fill="#f7e017" stroke="#000" stroke-width=".63"/> - <path d="M367.68 186.219c1.216-1.792 2.56-3.456 4.053-4.907m41.28 36.437c2.134-1.194 5.312-1.344 8.854-1.109m-12.054 234.09c-.853-1.173-1.13-6.186-.554-9.215m7.21 7.808" stroke-width=".6399999" fill="none" stroke="#000"/> - <path d="M534.997 304.939c29.312 24.533 31.211 44.074 26.688 55.509-2.389-10.71-14.528-27.392-27.157-31.68l.47-23.83z" fill="#f7e017" stroke="#000" stroke-width=".63"/> - <path d="M482.581 291.136h54.336v64.32c0 54.784-30.506 87.19-61.482 104.341-30.976-17.13-61.462-49.557-61.462-104.341v-64.32h38.123c.064 3.328.363 8.32 4.267 13.333 9.002-.896 19.2-7.616 26.24-13.333z" fill="#337321" stroke="#000" stroke-width=".63"/> - <path d="M536.896 291.136v64.32c0 16.533-2.773 31.04-7.51 43.69l-53.93-98.986-53.952 98.987" fill="#006ec7" stroke="#000" stroke-width=".63"/> - <g fill="#f7e017" stroke="#000" stroke-width=".03"> - <path d="M499.968 429.653c1.43.726 4.053 2.048 5.248 2.518 2.859-5.718 3.35-13.803 2.39-20.971-3.094 7.893-13.59 7.637-16.427 12.395 1.749.874 3.37 2.026 4.778 3.05-3.562 3.563-11.946 9.6-16.704 11.008V386.56c0-3.584-1.194-6.55-1.194-9.536v-10.56c0-2.39-.47-5.845-2.624-5.845-2.155 0-2.603 3.456-2.603 5.845v10.56c0 2.987-1.195 6.421-1.195 9.536v51.093c-2.624-7.616-12.885-5.013-17.642-12.629a13.525 13.525 0 0 1 5.717-.235c-3.563-12.16-13.333-13.098-15.232-16.682 0 5.013-2.133 16.682 1.173 21.696a13.27 13.27 0 0 1 3.243-2.646c4.053 8.811 22.25 8.832 26.539 23.36 3.456-5.333 15.85-11.52 24.533-20.864z" stroke-width=".6399999"/> - <path d="M475.435 387.136c4.053 0 16.917-1.323 21.546-1.323 1.216 0 2.219-1.792 2.219-4.032s-1.003-4.053-2.197-4.053c-4.651 0-17.515-1.301-21.547-1.301s-16.939 1.301-21.59 1.301c-1.194 0-2.175 1.813-2.175 4.053s.981 4.054 2.176 4.054c4.65 0 17.514 1.301 21.568 1.301zm-2.603-20.928" stroke-width=".6399999"/> - <path d="M453.888 385.813c1.216 0 2.197-1.792 2.197-4.032s-.981-4.053-2.197-4.053" stroke-width=".6399999"/> - <path d="M455.68 385.813c1.216 0 2.197-1.792 2.197-4.032s-.981-4.053-2.197-4.053m11.755 8.917c1.472 0 2.645-2.176 2.645-4.864 0-2.688-1.173-4.885-2.645-4.885m2.752 9.984c1.514 0 2.773-2.283 2.773-5.12 0-2.795-1.259-5.077-2.773-5.077m9.152 10.24c1.536 0 2.773-2.304 2.773-5.142 0-2.858-1.237-5.162-2.773-5.162m2.88 10.154c1.514 0 2.773-2.24 2.773-4.992 0-2.773-1.259-4.992-2.773-4.992m12.778 9.131c1.216 0 2.219-1.856 2.219-4.139 0-2.282-1.003-4.117-2.219-4.117m-46.144 49.493a18.133 18.133 0 0 1 5.12-2.133m43.392 2.603l-1.408-1.003m4.011 3.03c3.328-3.563 6.123-7.617 7.637-12.246" stroke-width=".6399999"/> - </g> - <g stroke="#000" stroke-width=".03"> - <path d="M464.533 336.597c0-1.152.939-1.664 2.07-2.496 1.322-1.002 1.877-1.493 3.093-1.493h15.637c1.152 0 1.43.299 1.43 1.365v21.27c0 1.066-.278 1.365-1.43 1.365h-20.8v-20.181" fill="#fff" stroke-width=".6399999"/> - <path d="M481.472 358.464c2.048 0 1.685-.043 3.115-1.493 1.493-1.494 1.365-1.366 1.365-2.752v-19.435c0-1.003-.235-1.28-1.323-1.28h-14.442c-1.131 0-1.622.427-2.859 1.387-1.045.789-1.92 1.258-1.92 2.346v21.227h16.085z" fill="#e5e5e5" stroke-width=".6399999"/> - <path d="M482.987 358.016c0 1.067-.256 1.365-1.43 1.365H465.92c-1.152 0-1.408-.298-1.408-1.365v-21.27c0-1.066.256-1.365 1.408-1.365h15.637c1.174 0 1.43.299 1.43 1.366v21.269z" fill="#fff" stroke-width=".6399999"/> - </g> - <path d="M513.323 278.677c3.05 3.392 4.053 7.958 2.389 12.438h-4.523c1.899-5.718.704-11.179-7.402-11.904-12.096-1.067-26.198 22.4-47.403 25.258-6.187-7.381-5.867-21.461 2.005-28.117-4.053-11.733-12.65-24.619-18.602-30.187" fill="#96877d" stroke="#000" stroke-width=".63"/> - <path d="M460.459 284.928c-1.046-15.915-7.467-28.97-16.47-37.888 4.267 1.173 13.099 1.173 19.051-3.115 7.872-5.226 28.352-14.4 35.84-10.474a11.69 11.69 0 0 1 .49 6.186c-1.791-4.757-21.546 2.624-27.157 4.907-5.354 2.496-7.744 5.824-5.845 13.333-3.093-2.624-2.027-5.12-5.227-7.04 1.302 3.094 2.368 8.704 2.731 13.227-1.195-3.157-3.328-10.112-7.979-14.144 4.054 7.85 7.574 26.73 5.91 36.736 3.2 0 10.304-3.157 13.141-5.419-2.496 3.584-9.707 6.08-14.336 7.04-2.09 2.496-3.52 8.918-3.413 12.502-.342-4.416 1.045-15.147 3.264-15.851zm52.864-6.25c-3.947-4.395-11.307-6.785-20.736-4.225 1.429-.725 4.544-1.92 7.274-2.389-.362-2.496-2.624-13.227-2.986-15.83l2.624-1.066c1.322 6.4 2.986 13.803 4.053 16.79.853.212 2.752.596 4.416 1.429-.725-2.518-4.779-20.48-4.65-22.4l3.583-1.92c1.43 9.77 3.691 23.957 6.4 29.61z"/> - <path d="M511.19 291.115c1.898-5.718.703-11.179-7.382-11.904-6.293-.555-13.099 5.546-21.163 11.904h28.544zm-52.651-51.328" stroke-width=".6399999" fill="#96877d" stroke="#000"/> - <path d="M458.39 276.352c1.322 3.797 2.175 7.467 2.303 10.73m-13.12-58.24c-2.133 3.137-4.032 6.529-4.65 9.387 4.053 1.323 12.032 2.027 15.616 1.558" fill="none" stroke="#000" stroke-width=".63"/> - <path d="M439.787 246.165c1.536.256 2.986.555 4.202.875 4.288 1.195 13.099 1.195 19.072-3.093 5.974-4.288 22.144-17.6 40.491-19.05" fill="none" stroke="#000" stroke-width=".63"/> - <path d="M435.05 242.048c5.718 1.195 17.515 1.792 23.467-2.261 13.824-9.408 27.158-14.891 40.491-15.616" fill="none" stroke="#000" stroke-width=".63"/> - <path d="M534.997 304.939c20.011 13.824 34.774 27.157 39.083 48.618 4.267 21.44 12.373 27.158 22.4 21.44-2.39 12.374-14.784 13.803-25.259 4.267.96 14.293-4.778 31.467-19.541 37.653-.96-8.576 4.715-15.36 3.093-22.4-.704-3.093-.938-10.24 3.094-13.568-7.851 2.624-20.246-2.389-21.44-14.058 9.066 4.288 20.736 5.013 25.258-6.422 4.523-11.434 2.624-30.976-26.666-55.53zm25.259-111.488c6.187-16.214 22.4-14.528 27.861-7.616 15.979-9.067 18.134 11.434 31.702 7.381-.256 3.797-4.779 7.381-9.771 7.147 5.227 4.757-2.133 11.904 9.045 16.213-9.536 4.757-22.869-.256-26.453-13.355-3.093 6.187-14.293 6.187-18.816 1.195 9.77-2.624 9.067-11.69 3.584-15.253-5.525-3.606-15.253-2.134-17.152 4.266zm-48.32 35.669c4.437 14.336 13.653 27.67 23.552 36.757 11.435 10.475 28.693 7.851 38.357-2.133.214 19.947-20.437 21.483-31.936 15.232-5.056-2.773-9.173-1.301-4.266 3.093 7.36 6.678 23.53 11.627 42.624 15.723 33.365 7.147 21.44 33.6 11.669 33.365 2.816-.06 5.12-2.986 1.067-6.613-28.928-26.027-87.787-15.787-86.827-73.92-6.187 15.253-31.68 9.301-19.776-8.81 3.819 3.093 10.496 3.327 12.373-1.43 1.494-3.712.534-10.155-6.144-15.701 1.088-.09 3.456 0 3.2-2.731.32 1.6 1.771 3.99 5.526 3.2 1.066 1.685 2.197 2.795 3.712 2.197.298-.128 1.194-.576.853-2.282.277 3.157 4.053 4.288 6.016 4.053z" fill="#337321" stroke="#000" stroke-width=".63"/> - <path d="M541.91 278.976c13.823 9.045 29.44 9.045 43.84-7.616 4.522-5.248 11.669-9.77 16.682-10.24 4.992-.491 4.757-5.248 8.576-6.187-2.39-.725-3.328-3.584-6.912-3.242 8.939-3.094 6.315-10.24 10.73-13.696-3.583 1.322-9.173-4.054-14.293 2.752 1.302-3.115-.49-6.806-1.792-8.235.47 3.584-7.04 4.288-8.469 13.355-.79 5.077-3.563 4.757-4.053-3.094-.342-5.76-3.094-21.696-6.4-29.781-3.35-8.107-4.118-19.221.426-20.907M546.688 426.368c2.944 1.493 5.461 3.541 3.883 13.077-.64 3.947-.79 13.547 2.666 13.824-2.176.981-6.741 1.92-8.49-.597-1.92 2.923-5.952 1.899-7.403-1.898-2.197 1.642-4.992-1.387-4.907-3.926-1.898 1.131-5.546-.747-4.394-6.421-2.304.704-5.163-1.003-6.187-2.496 3.37-.533 11.925-4.736 14.059-8.256 2.133-3.499 7.381-5.035 10.773-3.307z" fill="#f7e017" stroke="#000" stroke-width=".63"/> - <path d="M544.725 452.672c.982-1.28 1.536-6.87 1.003-10.283m-8.384 8.427a15.744 15.744 0 0 0 5.056-8.192m-9.963 4.245c1.878-.789 6.635-6.464 7.787-10.218m-12.203 3.776c2.219-.363 9.11-4.48 12.075-9.046" stroke-width=".6399999" fill="none" stroke="#000"/> - <path d="M506.176 250.624c-.405 24.427 9.75 36.779 23.808 44.821-5.227-3.136-2.965-13.866-10.005-17.301 1.685-.128 4.288 2.261 8.469 1.301-2.027-4.522-5.355-11.434-13.099-12.373 2.027-.235 6.422.469 9.28-.597-4.053-6.187-14.762-3.222-18.453-15.851zm-2.539-23.21c-.853-.3-1.6-1.153-2.304-2.283-3.754.81-5.205-1.579-5.504-3.2.214 2.773-2.133 2.645-3.242 2.73 6.72 5.547 7.68 12.011 6.186 15.723-1.92 4.757-8.576 4.523-12.373 1.43-.49 10.111 12.608 13.44 17.365.703 0 2.134 2.752 1.92 3.456 4.779 3.414-5.483.854-13.355-3.584-19.883z" fill="#f7e017" stroke="#000" stroke-width=".63"/> - <path d="M486.997 150.677c-.085-2.133 3.627-4.928 8.64-4.885 6.016.064 10.667 5.547 15.467 5.013 4.8-.533 2.453 2.134 1.43 2.859-1.003.704-1.6 1.792-1.238 3.093.363 1.302-.256 2.176-2.197.96-4.288-2.688-8.598 1.067-14.251-1.024-4.907-1.792-7.744-2.773-7.85-6.016z" fill="#cf142b" stroke="#000" stroke-width=".6399999"/> - <path d="M462.464 206.912c-2.39-7.51-11.435-15.723-15.85-17.643l-.235-4.053c2.389-.939 8.106-5.461 10.73-7.979 17.856 8.576 42.155-3.562 53.355-16.192l4.288 2.624-2.133 2.859-2.262-1.195c-2.752 3.328-12.97 12.971-16.085 14.976 4.181 1.067 9.856 1.792 11.435 1.707 10.005-7.147 17.856-13.59 21.674-14.08l3.2 4.31-2.837 2.026-2.261-1.323c-10.731 8.832-22.87 28.118-27.648 40.982-6.656-1.43-30.507-.47-35.371-7.04z" fill="#96877d" stroke="#000" stroke-width=".6399999"/> - <path d="M463.403 204.288c-1.6-8.875.96-18.71 5.482-21.675 9.899 6.55 26.816 6.55 36.822-.597" fill="none" stroke="#000" stroke-width=".6399999"/> - <path d="M463.403 199.637c7.637-.213 24.192 1.067 28.245 1.664 4.053.598 10.837 2.262 9.877 4.288m-34.602-7.21l2.197-2.198-2.197-2.176-2.176 2.176 2.176 2.198z" fill="none" stroke="#000" stroke-width=".6399999"/> - <path d="M472.107 154.027c-2.731-3.84-10.283-5.035-11.904.106-.726 2.262-1.792 4.651-3.584 5.718-1.771 1.066-1.366 4.33-.576 5.717 1.898 3.456.213 6.784 3.925 9.067 0-2.752 4.053-5.611 7.51-6.315 3.455-.725 8.682-3.819 9.386-7.253.725-3.478 1.92-6.336-4.757-7.04z" fill="#337321" stroke="#000" stroke-width=".6399999"/> - <path d="M454.933 188.33h.96v6.507c.214.064.427.171.576.299l5.611-3.243.49.854-5.631 3.242a1.707 1.707 0 0 1 0 .64l5.632 3.264-.491.811-5.632-3.243" fill="#96877d" stroke="#000" stroke-width=".6399999"/> - <path d="M450.667 215.019c-.704-.854-2.027-3.115-1.92-4.779a6.187 6.187 0 0 1 4.053 1.557c-.107-1.194-.576-3.818-.341-5.013 1.301.49 4.053 2.027 4.992 3.819" fill="#337321" stroke="#000" stroke-width=".6399999"/> - <path d="M490.539 151.893c-.043-.853 1.92-2.858 5.418-2.837 4.203.021 8.107 3.115 11.478 2.901 3.37-.213 1.706.854 1.002 1.152-.704.299-1.13.747-.874 1.28.256.534-.192.875-1.536.384-3.008-1.088-6.016.427-9.984-.426-3.414-.726-5.419-1.131-5.504-2.454z" fill="#f7e017"/> - <g stroke="#000" stroke-width=".186"> - <path d="M454.357 222.165c-3.562 4.267-7.146 3.563-7.85.832-.726-2.752 1.92-4.053.938-6.442-.938-2.39 1.558-3.456 2.752-2.39 1.195 1.067 4.992-2.368 6.678 1.195 1.664 3.584 2.986 6.08 2.005 7.51-.939 1.429-3.797.725-4.523-.705zm15.36-6.442c-.682-1.558 3.03-4.587 4.928-2.432 1.92 2.133 4.907-2.347 6.571 1.066 1.664 3.392 2.197 5.184 3.03 7.083.853 1.92-4.523 2.923-6.187 1.259.213 1.13-4.63 2.005-5.974-1.195l-2.368-5.781zm24.79 1.962c-.896-1.664 3.456-4.053 5.717-1.002.597-1.259 4.907-1.494 5.184 2.133.299 3.627.427 5.781.533 7.21.107 1.43-2.602 2.731-4.586-.895-3.499.725-5.12-1.238-5.547-3.328-.427-2.091-.81-3.094-1.28-4.118z" stroke-width=".6399999" fill="#f7e017"/> - <path d="M456.661 215.317c-.533-1.194 3.051-3.584 5.483-1.792 2.453 1.792 5.824-1.557 7.253 1.664 2.923 6.486 3.115 6.976 2.219 8.214-.896 1.258-4.693.768-5.653-.939-.192 1.173-3.478.981-5.184.043-1.963-1.067-3.35-5.056-4.118-7.19zm25.088.278c-.853-1.835 4.758-3.435 7.19-.214 1.258-1.152 3.989-1.216 5.546 2.304 1.558 3.52 1.792 5.483.64 6.379-.789.64-3.669 1.13-4.629-.47-1.323.833-5.355.107-6.25-2.133-.897-2.282-1.665-4.266-2.497-5.866zm23.702 3.52c-.107-1.664 2.922-2.432 4.053 0 1.13 2.432 4.757.256 5.077 4.288.043.768-.426 3.754-1.557 5.184-1.13 1.429-6.677 0-7.04-3.03" stroke-width=".6399999" fill="#337321"/> - <path d="M454.357 222.165c-1.301-1.792-3.093-4.65-5.354-1.557m16.981 1.835" stroke-width=".6399999" fill="none"/> - </g> -</svg> diff --git a/img/flags/4x3/pr.svg b/img/flags/4x3/pr.svg deleted file mode 100644 index 1e0205d..0000000 --- a/img/flags/4x3/pr.svg +++ /dev/null @@ -1,13 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" height="480" width="640" viewBox="0 0 640 480"> - <defs> - <clipPath id="a"> - <path fill-opacity=".67" d="M-37.298 0h682.67v512h-682.67z"/> - </clipPath> - </defs> - <g fill-rule="evenodd" clip-path="url(#a)" transform="translate(34.967) scale(.9375)"> - <path fill="#ed0000" d="M-37.298 0h768v512h-768z"/> - <path fill="#fff" d="M-37.298 102.4h768v102.4h-768zM-37.298 307.2h768v102.4h-768z"/> - <path d="M-37.298 0l440.69 255.67-440.69 255.34V0z" fill="#0050f0"/> - <path d="M156.45 325.47l-47.447-35.432-47.214 35.78 17.56-58.144-47.128-35.904 58.305-.5L108.61 173.3l18.472 57.835 58.305.077-46.886 36.243 17.947 58.016z" fill="#fff"/> - </g> -</svg> diff --git a/img/flags/4x3/ps.svg b/img/flags/4x3/ps.svg deleted file mode 100644 index 6076ef0..0000000 --- a/img/flags/4x3/ps.svg +++ /dev/null @@ -1,15 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" height="480" width="640" viewBox="0 0 640 480"> - <defs> - <clipPath id="a"> - <path fill-opacity=".67" d="M-118 0h682.67v512H-118z"/> - </clipPath> - </defs> - <g clip-path="url(#a)" transform="translate(110.63) scale(.9375)"> - <g fill-rule="evenodd" stroke-width="1pt"> - <path d="M-246 0H778.002v170.667H-246z"/> - <path fill="#fff" d="M-246 170.667H778.002v170.667H-246z"/> - <path fill="#090" d="M-246 341.334H778.002v170.667H-246z"/> - <path d="M-246 512.001l512.001-256L-246 0v512.001z" fill="red"/> - </g> - </g> -</svg> diff --git a/img/flags/4x3/pt.svg b/img/flags/4x3/pt.svg deleted file mode 100644 index 3a2f131..0000000 --- a/img/flags/4x3/pt.svg +++ /dev/null @@ -1,57 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" height="480" width="640" viewBox="0 0 640 480"> - <path fill="red" d="M256 0h384v480H256z"/> - <path fill="#060" d="M0 0h256v480H0z"/> - <g fill="#ff0" fill-rule="evenodd" stroke="#000" stroke-width=".573" stroke-linecap="round" stroke-linejoin="round"> - <path d="M339.456 306.176c-32.224-.97-179.99-93.205-181.003-107.893l8.16-13.608c14.657 21.297 165.717 110.998 180.555 107.82l-7.712 13.677" stroke-width=".611"/> - <path d="M164.896 182.827c-2.89 7.78 38.56 33.406 88.43 63.737 49.87 30.33 92.87 49.073 96.056 46.385.195-.348 1.57-2.71 1.443-2.692-.598.9-2.052 1.184-4.32.53-13.474-3.886-48.614-20.016-92.133-46.406-43.518-26.392-81.38-50.714-87.265-61.047-.41-.716-.7-2.023-.642-3.04h-.143l-1.253 2.19-.173.342zm175.317 123.776c-.546.99-1.565 1.024-3.5.812-12.053-1.334-48.628-19.12-91.906-45.028-50.358-30.144-91.947-57.61-87.435-64.79l1.228-2.17.242.076c-4.058 12.165 82.077 61.417 87.148 64.557 49.84 30.877 91.856 48.908 95.575 44.222l-1.353 2.326v-.002z" stroke-width=".611"/> - <path d="M256.18 207.18c32.254-.256 72.055-4.41 94.96-13.537l-4.936-8.018c-13.538 7.493-53.557 12.42-90.295 13.157-43.453-.4-74.124-4.446-89.49-14.757l-4.66 8.538c28.25 11.954 57.198 14.493 94.422 14.616" stroke-width=".611"/> - <path d="M352.47 193.824c-.79 1.26-15.727 6.412-37.732 10.214-14.92 2.274-34.383 4.22-58.67 4.242-23.076.022-41.926-1.62-56.197-3.555-23.1-3.622-35.02-8.66-39.428-10.442.42-.838.692-1.426 1.098-2.21 12.688 5.053 24.666 8.1 38.698 10.258 14.177 1.92 32.8 3.587 55.76 3.566 24.176-.025 43.424-2.117 58.258-4.324 22.565-3.64 34.892-8.324 36.623-10.5l1.593 2.752h-.002zm-4.332-8.13c-2.446 1.963-14.632 6.285-36.073 9.71-14.31 2.05-32.504 3.886-55.75 3.908-22.084.022-40.127-1.466-53.85-3.465-21.775-2.844-33.365-7.974-37.543-9.47.416-.72.84-1.432 1.274-2.148 3.25 1.636 14.435 6.176 36.508 9.303 13.568 1.924 31.638 3.358 53.613 3.335 23.136-.023 41.123-1.894 55.34-3.934 21.553-2.965 33.15-8.477 34.91-9.857l1.572 2.614v.003zm-197.866 60.343c19.838 10.67 63.9 16.047 105.594 16.417 37.963.06 87.42-5.868 105.916-15.67l-.51-10.678c-5.785 9.042-58.786 17.716-105.818 17.36-47.033-.354-90.707-7.618-105.266-17.022l.084 9.59" stroke-width=".611"/> - <path d="M362.795 244.5v2.548c-2.78 3.324-20.208 8.347-42.066 11.885-16.635 2.55-38.323 4.474-65.347 4.474-25.673 0-46.147-1.83-62.024-4.268-25.1-3.656-41.152-10.056-44.375-11.966l.015-2.97c9.68 6.435 35.905 11.142 44.71 12.584 15.775 2.42 36.127 4.238 61.672 4.238 26.898 0 48.463-1.91 64.994-4.444 15.68-2.266 38.02-8.157 42.418-12.08zm.01-9.057v2.547c-2.778 3.32-20.208 8.345-42.065 11.882-16.635 2.55-38.322 4.474-65.346 4.474-25.674 0-46.147-1.828-62.025-4.268-25.098-3.653-41.15-10.053-44.374-11.964l.014-2.97c9.68 6.434 35.905 11.143 44.712 12.582 15.774 2.423 36.126 4.24 61.67 4.24 26.898 0 48.464-1.91 64.994-4.446 15.68-2.265 38.02-8.156 42.418-12.08v.003zM255.776 304.34c-45.623-.27-84.716-12.435-92.97-14.446l6.02 9.424c14.58 6.133 52.718 15.274 87.388 14.262 34.67-1.01 64.97-3.697 86.323-14.092l6.172-9.765c-14.553 6.853-64.074 14.548-92.935 14.618" stroke-width=".611"/> - <path d="M344.853 297.3a143.02 143.02 0 0 1-2.77 4.086c-10.07 3.55-25.94 7.28-32.636 8.367-13.68 2.818-34.843 4.9-53.625 4.91-40.416-.592-73.5-8.504-89.063-15.253l-1.257-2.16.205-.323 2.13.826c27.678 9.902 58.764 13.853 88.21 14.562 18.71.066 37.436-2.144 52.58-4.852 23.222-4.653 32.612-8.16 35.493-9.75l.734-.41zm5.352-8.826c.023.028.047.054.07.083a287.226 287.226 0 0 1-2.093 3.48c-5.372 1.92-19.95 6.185-41.237 9.162-14.025 1.91-22.743 3.76-50.644 4.302-52.282-1.33-86.132-11.553-94.174-14.075l-1.192-2.286c30.3 7.91 61.25 13.433 95.37 13.997 25.525-.544 36.385-2.424 50.294-4.32 24.823-3.86 37.33-7.946 41.083-9.126a2.845 2.845 0 0 0-.164-.212l2.692-1.005-.002.002z" stroke-width=".587"/> - <path d="M350.752 237.61c.148 30.013-15.21 56.946-27.582 68.827-17.502 16.81-40.707 27.623-67.807 28.12-30.26.557-58.794-19.17-66.448-27.838-14.963-16.945-27.145-38.462-27.536-67.46 1.853-32.757 14.712-55.574 33.352-71.22 18.64-15.647 43.46-23.268 64.13-22.723 23.847.63 51.705 12.33 70.955 35.554 12.61 15.22 18.072 31.733 20.935 56.74zM255.62 134.847c58.118 0 105.916 47.294 105.916 105.283 0 57.987-47.798 105.283-105.916 105.283-58.117 0-105.52-47.295-105.52-105.284 0-57.99 47.403-105.284 105.52-105.284" stroke-width=".611"/> - <path d="M255.904 134.485c58.17 0 105.612 47.45 105.612 105.624 0 58.173-47.443 105.62-105.612 105.62-58.17 0-105.612-47.446-105.612-105.62 0-58.176 47.443-105.625 105.612-105.625zM152.617 240.11c0 56.81 46.65 103.297 103.287 103.297 56.637 0 103.29-46.487 103.29-103.298 0-56.814-46.654-103.3-103.29-103.3s-103.287 46.49-103.287 103.3z" stroke-width=".611"/> - <path d="M255.99 143.264c53.046 0 96.74 43.542 96.74 96.75 0 53.21-43.695 96.75-96.74 96.75-53.046 0-96.74-43.54-96.74-96.75 0-53.208 43.695-96.75 96.74-96.75zm-94.417 96.75c0 51.93 42.645 94.426 94.416 94.426 51.77 0 94.415-42.495 94.415-94.426 0-51.93-42.643-94.426-94.416-94.426-51.772 0-94.417 42.495-94.417 94.426z" stroke-width=".611"/> - <path d="M260.245 134.06h-9.05l.01 212.223h9.082z" stroke-width=".611"/> - <path d="M259.34 132.85h2.302l.02 214.666h-2.306l-.016-214.667zm-8.984 0h2.322l.003 214.668h-2.323V132.85z" stroke-width=".611"/> - <path d="M361.59 244.197v-7.845l-6.39-5.952-36.267-9.6-52.266-5.334-62.934 3.2-44.8 10.667-9.045 6.7v7.846L172.8 233.6l54.4-8.534h52.267l38.4 4.267 26.666 6.4z" stroke-width=".611"/> - <path d="M255.947 223.755c24.942-.046 49.14 2.363 68.336 6.1 19.807 3.96 33.746 8.913 38.512 14.476l-.006 2.756c-5.748-6.923-24.505-11.998-38.953-14.9-19.05-3.705-43.086-6.098-67.89-6.05-26.174.047-50.546 2.526-69.317 6.19-15.06 2.987-35.147 8.924-37.655 14.78v-2.868c1.377-4.053 16.334-10.11 37.316-14.31 18.912-3.69 43.33-6.126 69.657-6.173zm.01-9.06c24.942-.044 49.142 2.366 68.336 6.102 19.807 3.962 33.746 8.913 38.512 14.476l-.005 2.754c-5.748-6.92-24.505-11.997-38.953-14.897-19.048-3.707-43.085-6.1-67.89-6.052-26.174.047-50.427 2.528-69.2 6.188-14.534 2.756-35.44 8.928-37.772 14.784v-2.87c1.377-4.01 16.636-10.284 37.317-14.31 18.91-3.69 43.328-6.124 69.655-6.173zm-.512-46.205c39.306-.196 73.59 5.496 89.275 13.53l5.72 9.9c-13.632-7.348-50.618-14.988-94.937-13.845-36.11.222-74.696 3.975-94.055 14.304l6.83-11.424c15.89-8.24 53.358-12.42 87.17-12.463" stroke-width=".611"/> - <path d="M255.968 176.66c22.418-.058 44.08 1.206 61.308 4.315 16.043 2.986 31.344 7.467 33.53 9.877l1.698 2.998c-5.32-3.475-18.56-7.343-35.562-10.567-17.073-3.21-38.72-4.272-61.013-4.213-25.305-.087-44.963 1.25-61.835 4.19-17.843 3.34-30.223 8.11-33.277 10.375l1.662-3.168c5.934-3.028 15.35-6.677 31.172-9.525 17.447-3.187 37.315-4.143 62.317-4.28zm-.01-9.05c21.454-.055 42.637 1.14 59.15 4.11 13.022 2.534 25.9 6.492 30.617 10.014l2.48 3.942c-4.217-4.688-20.09-9.13-34.105-11.62-16.385-2.825-36.688-3.943-58.142-4.122-22.515.063-43.323 1.442-59.47 4.382-15.403 2.93-25.343 6.402-29.55 9.112l2.183-3.292c5.805-3.056 15.182-5.862 26.99-8.157 16.266-2.962 37.202-4.306 59.85-4.37zm52.469 116.4c-19.433-3.627-38.9-4.154-52.498-3.994-65.502.768-86.662 13.45-89.244 17.29l-4.895-7.98c16.677-12.088 52.345-18.866 94.493-18.173 21.886.358 40.773 1.812 56.66 4.89l-4.518 7.97" stroke-width=".611"/> - <path d="M255.552 278.89c18.22.273 36.106 1.025 53.37 4.244l-1.252 2.207c-16.033-2.958-33.125-4.09-52.056-4-24.174-.188-48.624 2.07-69.91 8.18-6.717 1.868-17.836 6.186-18.97 9.755l-1.244-2.05c.36-2.11 7.08-6.488 19.642-10.017 24.382-6.982 47.188-8.16 70.42-8.32v.003zm.827-9.17c18.877.354 38.372 1.227 57.322 4.98L312.4 277c-17.112-3.397-33.46-4.53-55.91-4.875-24.25.044-49.974 1.773-73.363 8.573-7.55 2.2-20.583 6.955-21.018 10.72l-1.244-2.203c.283-3.42 11.565-7.88 21.715-10.833 23.57-6.853 49.36-8.615 73.8-8.66z" stroke-width=".587"/> - <path d="M349.42 290.54l-7.872 12.21-22.615-20.083-58.666-39.467-66.134-36.267-34.336-11.744 7.318-13.57 2.485-1.353 21.333 5.333 70.4 36.267 40.534 25.6L336 272l13.867 16z" stroke-width=".611"/> - <path d="M158.56 195.51c6.022-4.085 50.282 15.63 96.592 43.556 46.188 28.004 90.322 59.65 86.338 65.57l-1.31 2.062-.6.474c.128-.092.792-.904-.066-3.1-1.968-6.475-33.275-31.457-85.22-62.82-50.64-30.197-92.844-48.397-97.064-43.195l1.33-2.548zm192.47 94.855c3.807-7.522-37.244-38.447-88.14-68.557-52.07-29.51-89.595-46.88-96.45-41.7l-1.522 2.77c-.014.153.055-.188.377-.436 1.246-1.088 3.312-1.015 4.244-1.03 11.802.175 45.51 15.688 92.806 42.802 20.723 12.07 87.542 54.923 87.287 66.975.018 1.034.086 1.248-.304 1.76l1.7-2.584v-.003z" stroke-width=".611"/> - </g> - <g transform="translate(0 26.667) scale(1.06667)"> - <path d="M180.6 211.01c0 16.27 6.663 30.987 17.457 41.742 10.815 10.778 25.512 17.58 41.81 17.58 16.38 0 31.246-6.654 42.015-17.39 10.77-10.735 17.443-25.552 17.446-41.88h-.002v-79.19l-118.74-.14.012 79.278h.002z" fill="#fff" stroke="#000" stroke-width=".67"/> - <path d="M182.82 211.12v.045c0 15.557 6.44 29.724 16.775 40.01 10.354 10.304 24.614 16.71 40.214 16.71 15.68 0 29.91-6.36 40.22-16.625 10.31-10.265 16.698-24.433 16.7-40.044h-.002V134.39l-113.84-.02-.07 76.75m91.022-53.748l.004 48.89-.04 5.173c0 1.36-.082 2.912-.24 4.233-.926 7.73-4.48 14.467-9.746 19.708-6.164 6.136-14.67 9.942-24.047 9.942-9.326 0-17.638-3.938-23.828-10.1-6.35-6.32-10.03-14.986-10.03-23.947l-.013-54.022 67.94.122v.002z" fill="red" stroke="#000" stroke-width=".507"/> - <g id="e"> - <g id="d" fill="#ff0" stroke="#000" stroke-width=".5"> - <path d="M190.19 154.43c.135-5.52 4.052-6.828 4.08-6.847.03-.02 4.232 1.407 4.218 6.898l-8.298-.05" stroke="none"/> - <path d="M186.81 147.69l-.682 6.345 4.14.01c.04-5.25 3.975-6.124 4.07-6.104.09-.004 3.99 1.16 4.093 6.104h4.152l-.75-6.394-15.022.038v.002zm-.96 6.37h16.946c.357 0 .65.353.65.784 0 .43-.293.78-.65.78H185.85c-.357 0-.65-.35-.65-.78 0-.43.293-.784.65-.784z"/> - <path d="M192.01 154.03c.018-3.313 2.262-4.25 2.274-4.248 0 0 2.342.966 2.36 4.248h-4.634m-5.8-8.98h16.245c.342 0 .623.318.623.705 0 .387-.28.704-.623.704H186.21c-.342 0-.623-.316-.623-.705 0-.387.28-.705.623-.705zm.34 1.42h15.538c.327 0 .595.317.595.704 0 .388-.268.704-.595.704H186.55c-.327 0-.595-.316-.595-.704 0-.387.268-.704.595-.704zm5.02-10.59l1.227.002v.87h.895v-.89l1.257.005v.887h.896v-.89h1.258l-.002 2.01c0 .317-.254.52-.55.52h-4.41c-.296 0-.57-.236-.57-.525l-.004-1.99zm4.62 2.69l.277 6.45-4.303-.015.285-6.452 3.74.017"/> - <path id="a" d="M190.94 141.56l.13 3.478h-4.124l.116-3.478h3.88-.002z"/> - <use height="100%" width="100%" xlink:href="#a" x="10.609"/> - <path id="b" d="M186.3 139.04l1.2.003v.872h.877v-.892l1.23.004v.89h.88v-.894l1.23.002-.003 2.012c0 .314-.25.518-.536.518h-4.317c-.29 0-.558-.235-.558-.525l-.003-1.99z"/> - <use height="100%" width="100%" xlink:href="#b" x="10.609"/> - <path d="M193.9 140.61c-.026-.627.877-.634.866 0v1.536h-.866v-1.536" fill="#000" stroke="none"/> - <path id="c" d="M188.57 142.84c-.003-.606.837-.618.826 0v1.187h-.826v-1.187" fill="#000" stroke="none"/> - <use height="100%" width="100%" xlink:href="#c" x="10.641"/> - </g> - <use height="100%" width="100%" xlink:href="#d" y="46.32"/> - <use height="100%" width="100%" xlink:href="#d" transform="rotate(-45.202 312.766 180.004)"/> - </g> - <use height="100%" width="100%" xlink:href="#d" x="45.714"/> - <use height="100%" width="100%" xlink:href="#e" transform="matrix(-1 0 0 1 479.792 0)"/> - <g id="f" fill="#fff"> - <path d="M232.636 202.406v.005a8.34 8.34 0 0 0 2.212 5.69c1.365 1.467 3.245 2.378 5.302 2.378 2.067 0 3.944-.905 5.303-2.365 1.358-1.46 2.202-3.472 2.202-5.693v-10.768l-14.992-.013-.028 10.765" fill="#039"/> - <circle cx="236.074" cy="195.735" r="1.486"/> - <circle cx="244.392" cy="195.742" r="1.486"/> - <circle cx="240.225" cy="199.735" r="1.486"/> - <circle cx="236.074" cy="203.916" r="1.486"/> - <circle cx="244.383" cy="203.905" r="1.486"/> - </g> - <use height="100%" width="100%" xlink:href="#f" y="-26.016"/> - <use height="100%" width="100%" xlink:href="#f" x="-20.799"/> - <use height="100%" width="100%" xlink:href="#f" x="20.745"/> - <use height="100%" width="100%" xlink:href="#f" y="25.784"/> - </g> -</svg> diff --git a/img/flags/4x3/pw.svg b/img/flags/4x3/pw.svg deleted file mode 100644 index 4385756..0000000 --- a/img/flags/4x3/pw.svg +++ /dev/null @@ -1,11 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" height="480" width="640" viewBox="0 0 640 480"> - <defs> - <clipPath id="a"> - <path fill-opacity=".67" d="M-70.28 0h640v480h-640z"/> - </clipPath> - </defs> - <g fill-rule="evenodd" clip-path="url(#a)" transform="translate(70.28)" stroke-width="1pt"> - <path fill="#4aadd6" d="M-173.44 0h846.32v480h-846.32z"/> - <path d="M335.633 232.117a135.876 130.111 0 1 1-271.752 0 135.876 130.111 0 1 1 271.752 0z" fill="#ffde00"/> - </g> -</svg> diff --git a/img/flags/4x3/py.svg b/img/flags/4x3/py.svg deleted file mode 100644 index d3ef7fa..0000000 --- a/img/flags/4x3/py.svg +++ /dev/null @@ -1,157 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" height="480" width="640" viewBox="0 0 640 480"> - <path fill="#0038a8" d="M0 319.7h640V480H0z"/> - <path fill="#fff" d="M0 160h640v160H0z"/> - <path fill="#d52b1e" d="M0 0h640v160H0z"/> - <g fill="none" stroke="#000" transform="translate(-116.364) scale(1.45455)"> - <circle cx="300" cy="165" r="42.2" stroke-width="1.076"/> - <circle cx="300" cy="165" r="34.67" stroke-width=".478"/> - <circle cx="300" cy="165" r="26.56" stroke-width=".438"/> - </g> - <path d="M287.317 263.68l-7.116 4.227-2.176-3.665c-.403-.68-.654-1.234-.75-1.662a1.93 1.93 0 0 1 .132-1.254c.185-.408.503-.746.957-1.015.394-.233.785-.352 1.17-.353a2.3 2.3 0 0 1 1.11.28c.225.12.472.322.74.605-.068-.314-.094-.557-.078-.73.01-.114.065-.305.165-.573.1-.268.186-.458.26-.57l1.43-2.29 1.476 2.486-1.477 2.466c-.194.316-.298.558-.313.724-.016.224.036.436.155.637l.115.194 2.89-1.715zm-5.544.306l-.55-.927c-.06-.102-.208-.277-.444-.526a.676.676 0 0 0-.436-.225.765.765 0 0 0-.495.106c-.23.137-.364.314-.4.533-.037.218.064.528.302.93l.574.965zm-6.703-5.498l-2.163-6.504 1.677-.557 1.354 4.07 1.248-.414-1.256-3.777 1.602-.533 1.256 3.777 1.548-.515-1.393-4.19 1.78-.59 2.2 6.62zm-2.836-9.673l-.484-4.223c-.105-.92.035-1.634.42-2.143.385-.51.98-.81 1.79-.9.83-.096 1.507.08 2.03.525.526.445.847 1.18.964 2.205l.16 1.39 3.05-.348.293 2.552zm3.213-2.953l-.07-.623c-.057-.49-.182-.825-.374-1.004a.828.828 0 0 0-.688-.222.92.92 0 0 0-.627.333c-.16.193-.212.526-.158 1l.083.725zm-3.475-12.582l.273-2.536 4.906.53a4.16 4.16 0 0 1 1.355.375c.416.197.768.475 1.057.834.29.358.48.722.572 1.092.13.514.158 1.117.083 1.81-.043.4-.118.833-.225 1.3-.107.468-.26.852-.462 1.152-.2.3-.47.565-.804.796-.336.23-.67.377-1.008.44-.54.1-1.013.13-1.417.085l-4.905-.53.274-2.537 5.022.542c.45.048.814-.038 1.093-.26.28-.222.443-.553.49-.995.048-.438-.04-.794-.26-1.07-.223-.276-.563-.438-1.02-.487zm1.105-6.065l1.58-4.52c.263-.753.652-1.266 1.166-1.54a1.92 1.92 0 0 1 1.597-.12c.462.162.808.445 1.038.848.153.27.23.61.228 1.025.33-.515.707-.847 1.128-.996.42-.15.88-.138 1.378.036.405.14.737.363.994.664.258.3.423.648.497 1.04.047.245.025.58-.064 1.007-.12.568-.21.94-.273 1.118l-1.457 4.168zm3.916-1.364l.367-1.05c.132-.376.16-.66.08-.853-.078-.193-.24-.332-.485-.418-.227-.08-.43-.07-.61.034-.18.103-.333.337-.46.703l-.373 1.066zm3.07 1.074l.43-1.23c.146-.417.174-.736.087-.958a.79.79 0 0 0-.505-.464.73.73 0 0 0-.646.06c-.2.12-.374.39-.52.813l-.43 1.226zm-3.073-9.659l1.32-2.19 5.343 3.224 2.062-3.418 1.745 1.053-3.384 5.608zm5.004-7.578l1.64-1.97 6.36 5.3-1.642 1.97zm11.126-4.276l2.142-.947c.296.574.458 1.127.488 1.658.03.53-.07 1.034-.293 1.51-.224.475-.617.954-1.18 1.437-.682.587-1.325.966-1.928 1.14-.604.173-1.277.145-2.02-.085-.743-.23-1.45-.735-2.12-1.514-.892-1.038-1.302-2.074-1.23-3.107.073-1.032.615-1.983 1.625-2.85.79-.68 1.55-1.055 2.277-1.124.728-.07 1.486.132 2.275.605l-1.386 1.853c-.223-.14-.406-.225-.548-.257a1.472 1.472 0 0 0-.692 0 1.51 1.51 0 0 0-.63.333c-.44.378-.624.844-.554 1.4.048.414.314.903.797 1.465.6.696 1.115 1.083 1.548 1.16.434.077.842-.05 1.225-.378.37-.32.562-.664.573-1.036.01-.37-.112-.792-.367-1.262zm8.815-3.172l-2.57 1.37.29 1.395-2.308 1.23-1.15-8.767 2.462-1.312 6.638 5.84-2.36 1.26zm-1.315-1.326l-2.207-2.196.598 3.054zm7.817-8.477l3.744-.647c.74-.127 1.353-.13 1.842-.008.49.12.914.344 1.276.667.36.323.65.72.87 1.195.22.474.378.99.474 1.546.15.872.168 1.565.053 2.08a3.413 3.413 0 0 1-.618 1.35 2.735 2.735 0 0 1-1.023.844 5.933 5.933 0 0 1-1.464.482l-3.744.647zm2.84 1.412l.77 4.455.617-.107c.526-.09.89-.214 1.093-.37.203-.154.342-.388.418-.7.075-.314.057-.797-.056-1.45-.15-.864-.393-1.43-.73-1.7-.337-.272-.832-.35-1.485-.238zm7.793-2.837l6.848.292-.076 1.766-4.287-.183-.056 1.314 3.976.17-.072 1.687-3.977-.17-.07 1.63 4.412.19-.08 1.872-6.973-.3zm9.964.785l2.484.608-1.483 6.06 3.877.95-.485 1.978-6.36-1.557zm13.28 4.407l3.66 2.164c.796.47 1.28 1.013 1.454 1.627.173.614.053 1.27-.36 1.97-.426.72-.975 1.154-1.647 1.303-.67.15-1.45-.038-2.34-.563l-1.204-.713-1.563 2.644-2.21-1.307zm.416 4.345l.54.318c.423.25.765.353 1.024.308a.828.828 0 0 0 .592-.414.92.92 0 0 0 .113-.7c-.058-.245-.293-.488-.704-.732l-.627-.37zm7.177 9.648l-2.134-1.984-1.224.728-1.915-1.78 7.915-3.942 2.042 1.9-3.36 8.18-1.958-1.824zm.826-1.676l1.356-2.8-2.693 1.56zm.992 5.501l6.824-4.682 2.41 3.514c.448.652.734 1.19.86 1.61.124.42.107.84-.05 1.26-.16.418-.455.777-.89 1.075-.378.26-.76.402-1.145.43a2.296 2.296 0 0 1-1.125-.208c-.232-.106-.492-.29-.778-.555.09.31.13.55.125.722-.002.114-.044.31-.126.582a3.253 3.253 0 0 1-.22.586l-1.28 2.377-1.635-2.383 1.313-2.558c.172-.328.26-.575.264-.743a1.08 1.08 0 0 0-.196-.624l-.128-.186-2.77 1.9zm5.513-.667l.61.89c.066.096.225.26.476.494.124.12.274.185.45.195a.762.762 0 0 0 .486-.14c.22-.15.34-.336.363-.557.023-.22-.098-.523-.362-.908l-.635-.926zm2.559 12.391l-1.08-2.706-1.417.135-.97-2.428 8.842-.18 1.033 2.592-6.534 5.956-.99-2.486zm1.464-1.16l2.426-1.953-3.1.258zm2.159 9.044l1.702-.255.585 3.91-3.49.52c-.622-.67-1.068-1.28-1.338-1.83-.27-.546-.465-1.214-.584-2.004-.145-.97-.098-1.787.142-2.45.24-.66.662-1.21 1.267-1.644.604-.435 1.33-.716 2.18-.843.893-.134 1.698-.066 2.414.204a3.62 3.62 0 0 1 1.746 1.394c.347.516.59 1.243.73 2.18.137.905.156 1.594.06 2.067a2.665 2.665 0 0 1-.596 1.23c-.3.35-.703.636-1.21.864l-.8-2.373c.294-.147.505-.353.633-.618s.164-.584.108-.956c-.082-.554-.34-.968-.775-1.24-.435-.27-1.07-.345-1.903-.22-.886.133-1.494.394-1.824.784-.33.39-.45.883-.36 1.478.042.283.123.547.243.79.122.246.305.52.552.82l.77-.114zm5.41 12.014l-.226 2.542-4.915-.438a4.16 4.16 0 0 1-1.362-.35 2.994 2.994 0 0 1-1.072-.816c-.295-.353-.493-.714-.592-1.082-.14-.51-.18-1.113-.117-1.807.036-.4.103-.836.202-1.306.097-.47.244-.855.44-1.16a2.99 2.99 0 0 1 .79-.81c.33-.237.662-.39.997-.458.54-.112 1.01-.15 1.416-.113l4.915.438-.227 2.542-5.032-.45c-.45-.04-.812.055-1.087.28-.275.228-.432.563-.47 1.005-.04.44.054.794.28 1.065.228.272.57.428 1.027.47zm-9.15 8.756l.91-2.767-1.172-.807.817-2.483 6.89 5.54-.87 2.65-8.835.37.836-2.543zm1.87.05l3.11.06-2.542-1.792zm2.96 6.73l-1.46 2.435-3.256-.003 1.538 2.87-1.45 2.42-2.473-5.232-2.974-1.782 1.318-2.198 2.973 1.782z"/> - <g fill="#009b3a" stroke="#000" stroke-width=".145"> - <path d="M328.117 211.346s23.35 10.06 19.272 30.847c-4.078 20.787-17.078 20.647-22.174 22.945-5.098 2.297-8.614 5.585-10.625 5.125-2.01-.46-4.67-2.012-4.67-2.012s-.212 3.415 3.882 4.037c4.094.62 9.476-5.388 12.06-6.056 2.586-.668 18.456-2.39 22.318-23.54 4.507-22.58-19.917-30.68-20.06-31.344z"/> - <path d="M339.9 215.768a3.205.76 75.104 0 1-1.54.118 3.205.76 75.104 1 1 1.54-.118z"/> - <path d="M339.1 215.986a3.303.737 63.335 1 1-1.393.51 3.303.737 63.335 0 1 1.392-.51zm-2.343 1.542a3.128.778 17.053 0 1-.146 1.58 3.128.778 17.053 0 1 .147-1.58z"/> - <path d="M337.107 216.67a3.29.74 34.225 1 1-.672 1.332 3.29.74 34.225 1 1 .672-1.332z"/> - <path d="M338.096 216.262a3.344.727 46.194 1 1-1.017 1.042 3.344.727 46.194 0 1 1.016-1.042z"/> - <path d="M339.725 219.2c.013.015-.9.51-1.108.582-.207.074-.488-.275-1.083.03-.595.306-1.004.863-1.134 1.19-.13.327.17.464.888.114.72-.35.91-.904 1.256-1.12.347-.218.93-.537 1.26-.655.143-.312.61-.983.85-1.37.24-.384 1.185-1.02 1.53-1.76.3-.612.186-1.133-.215-.915-.403.217-.922.833-1.164 1.275-.242.44-.035 1.004-.303 1.418-.212.3-.723 1.212-.778 1.213zm7.229 2.386a1.08 4.807-1.585 1 1-2.17-.52 1.08 4.807-1.585 1 1 2.17.52z"/> - <path d="M345.747 221.543a5.008 1.036 77.49 1 1-2.097.105 5.008 1.036 77.49 1 1 2.097-.105z"/> - <path d="M342.008 222.706a4.665 1.112 34.91 1 1-.725 2.198 4.665 1.112 34.91 1 1 .725-2.198z"/> - <path d="M342.765 221.644a4.99 1.04 50.904 0 1-1.37 1.607 4.99 1.04 50.904 1 1 1.37-1.606z"/> - <path d="M344.277 221.5a5.096 1.018 61.837 1 1-1.752 1.036 5.096 1.018 61.837 1 1 1.752-1.037z"/> - <path d="M345.557 226.43c.015.026-1.415.324-1.726.337-.31.013-.583-.613-1.51-.442-.924.17-1.675.786-1.963 1.197-.288.41.08.74 1.192.56 1.11-.178 1.557-.887 2.11-1.042.552-.156 1.463-.353 1.96-.374.303-.384 1.17-1.137 1.63-1.58.462-.445 1.98-.933 2.702-1.84.618-.74.635-1.538.007-1.406-.63.132-1.552.78-2.033 1.306-.482.524-.38 1.423-.89 1.895-.392.336-1.403 1.413-1.48 1.39zm5.193 4.843a1.074 4.828 8.74 1 1-2.026-.93 1.074 4.828 8.74 1 1 2.026.93z"/> - <path d="M349.6 230.983a1.03 5.04-2.05 1 1-2.067-.3 1.03 5.04-2.05 1 1 2.068.3z"/> - <path d="M345.732 231.42a4.688 1.106 46.026 1 1-1.106 2.03 4.688 1.106 46.026 1 1 1.106-2.03z"/> - <path d="M346.663 230.517a5.026 1.032 61.79 1 1-1.63 1.324 5.026 1.032 61.79 1 1 1.63-1.323z"/> - <path d="M348.147 230.663a5.136 1.01 72.543 1 1-1.9.687 5.136 1.01 72.543 1 1 1.9-.687z"/> - <path d="M348.525 235.768c.008.028-1.442.048-1.75 0-.305-.046-.46-.717-1.394-.725-.935-.01-1.78.454-2.135.804-.356.35-.056.746 1.064.783 1.118.037 1.682-.577 2.25-.625.567-.047 1.494-.067 1.984.008.365-.322 1.348-.9 1.88-1.25.53-.35 2.102-.54 2.97-1.295.738-.615.898-1.4.26-1.39-.638.01-1.657.475-2.222.9-.565.426-.628 1.333-1.21 1.7-.445.257-1.627 1.127-1.697 1.09m2.515 6.298a1.074 4.83 31.31 0 1-1.472-1.7 1.074 4.83 31.31 0 1 1.473 1.7"/> - <path d="M350.096 241.324a1.022 5.072 20.618 0 1-1.757-1.132 1.022 5.072 20.618 0 1 1.756 1.132m-3.665-1.192a4.764 1.088 69.934 0 1-1.79 1.426 4.764 1.088 69.934 0 1 1.79-1.426"/> - <path d="M347.623 239.68a1.015 5.107-4.863 0 1-1.99.554 1.015 5.107-4.863 1 1 1.99-.553"/> - <path d="M348.917 240.437a.996 5.205 5.55 1 1-1.987-.148.996 5.205 5.55 1 1 1.987.147"/> - <path d="M347.274 245.324c-.003.03-1.324-.55-1.584-.72-.26-.172-.138-.857-.98-1.252-.845-.395-1.79-.314-2.247-.137-.458.177-.34.67.66 1.166.998.498 1.747.162 2.28.352.532.19 1.378.556 1.793.828.455-.147 1.57-.276 2.185-.38.618-.106 2.115.368 3.195.026.907-.265 1.356-.926.775-1.18-.582-.255-1.685-.247-2.36-.086-.678.16-1.087.976-1.758 1.077-.5.053-1.91.37-1.958.307m.857 7.695a1.257 5.5 48.457 1 1-1.063-2.41 1.257 5.5 48.457 1 1 1.062 2.41"/> - <path d="M347.332 251.87a1.194 5.792 37.466 1 1-1.56-1.885 1.194 5.792 37.466 1 1 1.56 1.885"/> - <path d="M343.696 249.223a1.248 5.54-3.478 1 1-2.44.927 1.248 5.54-3.478 1 1 2.44-.927"/> - <path d="M345.15 249.15a1.173 5.896 11.633 0 1-2.372-.11 1.173 5.896 11.633 1 1 2.372.11"/> - <path d="M346.328 250.444a1.157 5.978 22.12 1 1-2.14-.882 1.157 5.978 22.12 1 1 2.14.882"/> - <path d="M342.91 255.26c-.013.03-1.276-1.09-1.506-1.37-.23-.282.13-.995-.67-1.736-.798-.74-1.864-.994-2.426-.964-.562.03-.594.616.342 1.526.936.91 1.87.81 2.395 1.212.524.403 1.335 1.112 1.702 1.563.55.002 1.818.264 2.53.37.714.108 2.206 1.173 3.507 1.185 1.085.037 1.797-.53 1.24-1.022-.556-.49-1.772-.88-2.57-.948-.798-.067-1.516.684-2.288.553-.57-.122-2.223-.28-2.256-.37m-2.298 7.345a1.407 6.065 79.752 1 1 .29-2.905 1.407 6.065 79.752 1 1-.29 2.904"/> - <path d="M340.496 261.048a1.343 6.355 68.504 0 1-.478-2.696 1.343 6.355 68.504 0 1 .478 2.696"/> - <path d="M338.416 256.423a1.403 6.085 26.238 0 1-2.86-.53 1.403 6.085 26.238 1 1 2.86.53"/> - <path d="M339.87 257.208a1.323 6.45 41.823 0 1-2.23-1.475 1.323 6.45 41.823 0 1 2.23 1.475"/> - <path d="M340.292 259.128a1.305 6.538 52.67 1 1-1.583-2.076 1.305 6.538 52.67 0 1 1.582 2.076"/> - <path d="M334.357 261.717c-.03.023-.637-1.773-.705-2.173-.067-.4.668-.87.302-2.038-.366-1.166-1.257-2.023-1.816-2.32-.56-.296-.91.242-.503 1.65.406 1.406 1.364 1.85 1.65 2.537.284.686.68 1.83.788 2.47.53.32 1.61 1.303 2.24 1.817.63.514 1.49 2.39 2.738 3.154 1.03.662 2.026.534 1.757-.255-.27-.79-1.23-1.864-1.963-2.39-.734-.525-1.837-.225-2.51-.797-.483-.445-1.993-1.553-1.976-1.656"/> - <path d="M330.765 267.986a1.763 6.137 89.068 0 1 .01-3.526 1.763 6.137 89.068 0 1-.01 3.526"/> - <path d="M329.95 262.474a1.704 6.35 37.587 0 1-2.616-2.188 1.704 6.35 37.587 1 1 2.616 2.188"/> - <path d="M330.808 265.28a1.742 6.213 66.472 0 1-1.246-3.255 1.742 6.213 66.472 0 1 1.246 3.256m1.672-53.411a3.812.775 41.126 0 1-1.446.788 3.812.775 41.126 1 1 1.447-.788m-1.876 1.585a3.86.765 8.163 0 1 .293 1.585 3.86.765 8.163 1 1-.293-1.585"/> - <path d="M331.36 212.452a4.038.732 26.817 1 1-.765 1.252 4.038.732 26.817 0 1 .766-1.252m-27.666 49.556s5.144 1.103 9.615 2.728c4.47 1.625 11.264 7.203 13.09 7.52 2.048.092 4.888-.607 5.966-3.565-3.154.843-5.045 2.12-8.056.466-1.064-.403-4.548-3.575-8.367-5.272-3.82-1.698-11.52-3.634-11.52-3.634l-.727 1.758m5.484-46.503c-.02-.044 5.92-3.123 5.92-3.123l-6.53 1.67-.757 1.148 1.366.306"/> - <path d="M314.794 216.946c-2.292-.417-5.817-1.187-8.062-1.367 1.552-1.72 3.69-4.625 5.007-6.408-.87 1.7-2.237 3.944-2.776 5.572 1.58.853 4.064 1.52 5.83 2.202"/> - <path d="M308.117 215.87c-.025-.04 5.26-4.074 5.26-4.074l-6.11 2.734-.543 1.263 1.393.077"/> - <path d="M313.732 216.888c-2.308-.44-5.86-1.248-8.116-1.442 1.524-1.77 3.614-4.764 4.902-6.603-.84 1.755-2.168 4.068-2.678 5.75 1.602.886 4.107 1.585 5.892 2.295"/> - <path d="M307.245 216.204c-.015-.045 6.195-2.594 6.195-2.594l-6.67 1.098-.863 1.075 1.338.42"/> - <path d="M313.034 216.946c-2.335-.194-5.943-.63-8.197-.58 1.3-1.966 3.014-5.238 4.072-7.247-.626 1.874-1.667 4.37-1.974 6.134 1.69.727 4.248 1.165 6.098 1.692"/> - <path d="M306.605 216.233c-.034-.034 4.197-5.114 4.197-5.114l-5.318 3.976-.247 1.356 1.368-.22"/> - <path d="M313.005 217.28c-2.502-.047-6.38-.267-8.772-.055 1.183-2.237 2.677-5.93 3.6-8.196-.477 2.09-1.332 4.887-1.48 6.834 1.867.675 4.633.97 6.652 1.417"/> - <path d="M305.76 217.44c-.03-.044 5.098-4.89 5.098-4.89l-6.167 3.413-.422 1.46 1.493.018"/> - <path d="M311.885 217.44c-2.688.01-6.827-.135-9.45.16 1.74-2.495 4.116-6.6 5.58-9.12-.946 2.315-2.45 5.418-3.012 7.567 1.875.696 4.796.954 6.882 1.394"/> - <path d="M304.045 217.804c-.026-.048 6.51-5.514 6.51-5.514l-7.36 3.913-.757 1.62 1.607-.02"/> - <path d="M310.91 217.6c-2.662.385-6.784.818-9.34 1.47 1.366-2.673 3.133-7.005 4.223-9.666-.606 2.39-1.65 5.623-1.9 7.795 1.957.417 4.888.262 7.017.4"/> - <path d="M303.172 218.895c-.038-.04 5.016-6.948 5.016-6.948l-6.26 5.66-.335 1.734 1.58-.445"/> - <path d="M309.44 218.43c-2.68.25-6.82.475-9.41.997 1.514-2.6 3.522-6.836 4.76-9.437-.74 2.354-1.964 5.53-2.336 7.687 1.932.515 4.868.507 6.987.753"/> - <path d="M302.27 219.623c-.026-.05 6.386-5.526 6.386-5.526L301.41 218l-.732 1.632 1.592-.01"/> - <path d="M308.656 218.706c-2.672.564-6.818 1.278-9.37 2.098 1.248-2.73 2.817-7.122 3.786-9.82-.493 2.396-1.387 5.656-1.532 7.815 2 .274 4.956-.083 7.116-.094"/> - <path d="M301.208 219.913c-.043-.03 4.08-7.574 4.08-7.574l-5.522 6.55-.09 1.73 1.532-.707"/> - <path d="M308.656 219.143c-2.867.745-7.335 1.723-10.04 2.75 1.04-3.103 2.228-8.077 2.963-11.134-.25 2.697-.835 6.378-.73 8.796 2.23.22 5.434-.307 7.806-.414"/> - <path d="M300.408 221.66c-.043-.045 5.14-7.592 5.14-7.592l-6.572 6.135-.277 1.915 1.708-.46"/> - <path d="M307.52 220c-2.817.892-7.217 2.1-9.86 3.26.888-3.123 1.838-8.103 2.427-11.162-.122 2.68-.532 6.348-.315 8.73 2.23.1 5.394-.594 7.75-.827"/> - <path d="M299.375 222.78c-.05-.036 3.907-8.38 3.907-8.38l-5.554 7.216.025 1.927 1.622-.764"/> - <path d="M306.445 221.15c-2.887.658-7.378 1.5-10.115 2.44 1.168-3.038 2.566-7.924 3.43-10.926-.365 2.66-1.106 6.284-1.107 8.678 2.213.28 5.425-.152 7.792-.192"/> - <path d="M298.445 223.58c-.035-.053 6.382-6.56 6.382-6.56l-7.524 4.857-.613 1.842 1.755-.14"/> - <path d="M305.165 222.284c-2.86.384-7.298.798-10.028 1.484 1.327-2.978 2.993-7.812 4.022-10.782-.522 2.672-1.468 6.287-1.616 8.723 2.143.503 5.307.38 7.62.574"/> - <path d="M297.18 222.924c-.048-.04 4.342-8.205 4.342-8.205l-5.89 6.904-.093 1.955 1.64-.656"/> - <path d="M305.514 221.31c-3.11 1.273-7.968 3.048-10.882 4.618.955-3.692 1.963-9.54 2.588-13.136-.112 3.115-.533 7.4-.273 10.14 2.47-.077 5.963-1.15 8.567-1.622"/> - <path d="M296.583 225.412c-.05-.044 5.198-9.416 5.198-9.416l-6.86 7.967-.19 2.225 1.853-.776"/> - <path d="M304.32 222.473c-3.046 1.433-7.816 3.46-10.655 5.172.79-3.692 1.535-9.512 1.998-13.088.027 3.074-.202 7.318.18 10.005 2.46-.218 5.9-1.475 8.478-2.09"/> - <path d="M295.52 226.837c-.056-.033 3.794-10.133 3.794-10.133l-5.677 9.05.144 2.194 1.74-1.11"/> - <path d="M302.983 223.317c-3.04 1.457-7.8 3.52-10.63 5.255.766-3.695 1.475-9.517 1.916-13.095.045 3.072-.157 7.315.242 9.997 2.46-.238 5.895-1.523 8.47-2.157"/> - <path d="M294.663 228.044c-.047-.05 5.868-8.935 5.868-8.935l-7.398 7.312-.36 2.216 1.89-.594"/> - <path d="M302.706 222.852c-2.71 2.164-7 5.344-9.443 7.722-.004-3.73-.504-9.48-.805-13.016.68 2.928 1.355 7.04 2.304 9.504 2.39-.85 5.525-2.95 7.944-4.21"/> - <path d="M294.954 228.466c-.065-.01.68-10.707.68-10.707l-2.828 10.41.79 1.96 1.358-1.664"/> - <path d="M301.935 223.84c-2.718 2.15-7.018 5.31-9.47 7.675.01-3.732-.465-9.487-.752-13.025.668 2.932 1.325 7.05 2.264 9.52 2.39-.84 5.534-2.923 7.958-4.17"/> - <path d="M294.27 230.284c-.06-.025 2.735-10.462 2.735-10.462l-4.732 9.62.373 2.15 1.624-1.308"/> - <path d="M301.63 224.088c-2.57 2.53-6.66 6.286-8.93 9.006-.403-3.828-1.534-9.67-2.223-13.265 1.015 2.925 2.152 7.067 3.396 9.488 2.377-1.147 5.392-3.66 7.757-5.23"/> - <path d="M294.285 231.623c-.068-.01.51-11.127.51-11.127l-2.732 10.81.85 2.04 1.372-1.723"/> - <path d="M300.815 225.935c-2.75 2.273-7.104 5.618-9.574 8.11-.085-3.876-.727-9.846-1.116-13.517.766 3.036 1.553 7.302 2.587 9.854 2.447-.906 5.636-3.116 8.106-4.447"/> - <path d="M293.47 232.888c-.06-.036 3.874-10.466 3.874-10.466l-5.81 9.273.153 2.297 1.783-1.104"/> - <path d="M300.772 225.98c-2.433 2.573-6.308 6.393-8.46 9.157-.383-3.88-1.46-9.802-2.115-13.444.965 2.965 2.045 7.16 3.226 9.612 2.252-1.17 5.108-3.728 7.35-5.326"/> - <path d="M293.615 233.426c-.068 0-.458-11.065-.458-11.065l-1.79 11.022 1.026 1.915 1.223-1.87"/> - <path d="M299.58 226.808c-2.355 2.597-6.112 6.453-8.18 9.24-.497-3.883-1.746-9.802-2.508-13.442 1.05 2.96 2.253 7.152 3.505 9.595 2.214-1.19 4.99-3.773 7.182-5.392"/> - <path d="M292.99 234.532c-.062-.02 1.236-11.24 1.236-11.24l-3.296 10.63.657 2.185 1.403-1.575"/> - <path d="M299.07 227.244c-2.152 2.813-5.61 7.014-7.46 9.986-.792-3.812-2.487-9.578-3.524-13.124 1.273 2.84 2.79 6.894 4.226 9.202 2.12-1.4 4.695-4.24 6.758-6.064"/> - <path d="M292.946 235.58c-.064-.004-.713-11.255-.713-11.255l-1.417 11.165 1.02 1.967 1.11-1.878"/> - <path d="M298.852 227.884c-2.02 2.945-5.28 7.357-6.99 10.446-.99-3.796-2.984-9.513-4.205-13.03 1.423 2.794 3.153 6.795 4.71 9.044 2.06-1.52 4.504-4.515 6.485-6.46"/> - <path d="M293.645 236.626c-.063-.02 1.145-11.304 1.145-11.304l-3.222 10.626.68 2.224 1.397-1.546"/> - <path d="M298.445 228.932c-1.742 3.208-4.583 8.048-6.003 11.357-1.323-3.638-3.82-9.044-5.35-12.37 1.665 2.58 3.744 6.316 5.494 8.336 1.908-1.797 4.066-5.116 5.86-7.324"/> - <path d="M293.252 237.557c-.063.018-3.16-10.72-3.16-10.72l1.068 11.3 1.424 1.593.668-2.173"/> - <path d="M298.372 230.183c-1.815 3.2-4.772 8.024-6.257 11.323-1.33-3.627-3.854-9.017-5.4-12.333 1.69 2.572 3.798 6.298 5.58 8.312 1.974-1.792 4.217-5.1 6.077-7.302"/> - <path d="M293.397 239.58c-.066 0-1.16-11.273-1.16-11.273l-1.044 11.273 1.128 1.932 1.077-1.933"/> - <path d="M298.56 231.172c-1.865 3.156-4.9 7.91-6.437 11.175-1.272-3.658-3.707-9.107-5.2-12.46 1.65 2.612 3.695 6.388 5.445 8.443 2.003-1.745 4.3-5 6.193-7.158"/> - <path d="M293.295 240.48c-.066.008-2.09-11.07-2.09-11.07l-.103 11.338 1.283 1.785.91-2.052"/> - <path d="M297.76 232.772c-2.012 3.022-5.267 7.56-6.957 10.714-1.095-3.74-3.266-9.35-4.595-12.803 1.52 2.723 3.383 6.635 5.03 8.808 2.083-1.603 4.53-4.695 6.523-6.718"/> - <path d="M292.32 241.717c-.064-.018.937-11.315.937-11.315l-3.083 10.73.744 2.186 1.403-1.6"/> - <path d="M297.877 233.048c-1.72 3.273-4.536 8.22-5.924 11.58-1.436-3.568-4.115-8.847-5.756-12.095 1.764 2.5 3.98 6.132 5.82 8.07 1.92-1.875 4.066-5.276 5.86-7.555"/> - <path d="M291.943 242.663c-.065.02-3.473-10.546-3.473-10.546l1.337 11.214 1.496 1.527.64-2.194"/> - <path d="M297.412 233.892c-1.202 3.592-3.23 9.067-4.09 12.67-1.95-3.19-5.38-7.79-7.485-10.624 2.112 2.07 4.84 5.156 6.94 6.657 1.61-2.262 3.21-6.072 4.635-8.703"/> - <path d="M295.026 243.52c-.064.024-3.76-10.4-3.76-10.4l1.644 11.154 1.537 1.465.58-2.22"/> - <path d="M297.383 234.997c-1.176 3.605-3.164 9.1-4 12.714-1.972-3.17-5.436-7.734-7.56-10.545 2.127 2.047 4.875 5.105 6.99 6.583 1.592-2.278 3.165-6.105 4.57-8.75"/> - <path d="M295.055 245.295c-.06.033-4.837-9.726-4.837-9.726l2.817 10.8 1.68 1.214.34-2.29"/> - <path d="M297.02 235.9c-.752 3.74-2.092 9.475-2.505 13.176-2.323-2.86-6.284-6.89-8.715-9.37 2.346 1.724 5.424 4.36 7.69 5.524 1.32-2.487 2.44-6.506 3.53-9.33"/> - <path d="M295.375 246.823c-.066.013-2.608-10.906-2.608-10.906l.43 11.322 1.366 1.693.812-2.11"/> - <path d="M297.034 237.063c-.398 3.825-1.194 9.713-1.26 13.453-2.57-2.534-6.874-6.01-9.517-8.154 2.488 1.4 5.788 3.61 8.144 4.463 1.078-2.653 1.816-6.804 2.634-9.762"/> - <path d="M295.506 247.623c-.05.05-6.895-7.874-6.895-7.874l5.197 9.535 1.9.65-.2-2.312"/> - <path d="M297.18 238.4c-.414 3.824-1.233 9.707-1.313 13.446-2.56-2.55-6.85-6.05-9.486-8.207 2.484 1.413 5.775 3.642 8.128 4.507 1.088-2.646 1.842-6.793 2.67-9.746"/> - <path d="M296.277 249.44c-.06.036-5.296-9.49-5.296-9.49l3.328 10.653 1.738 1.137.23-2.3"/> - <path d="M297.485 239.972c-.252 3.846-.823 9.775-.746 13.517-2.663-2.392-7.092-5.63-9.812-7.628 2.537 1.263 5.914 3.29 8.3 4.013.974-2.71 1.553-6.9 2.257-9.903"/> - <path d="M296.946 251.186c-.053.047-6.543-8.297-6.543-8.297l4.772 9.846 1.868.77-.097-2.32"/> - <path d="M297.557 241.746c-.228 3.85-.763 9.784-.664 13.525-2.676-2.367-7.124-5.568-9.856-7.54 2.545 1.24 5.934 3.24 8.323 3.94.958-2.72 1.512-6.915 2.197-9.924"/> - <path d="M297.543 252.597c-.062.03-4.588-10.003-4.588-10.003l2.54 10.95 1.65 1.316.398-2.263"/> - <path d="M297.732 242.895c.13 3.862.152 9.84.598 13.552-2.874-1.997-7.585-4.584-10.478-6.18 2.64.893 6.188 2.426 8.623 2.802.697-2.837.856-7.088 1.257-10.175"/> - <path d="M298.343 252.204c-.04.064-8.38-5.737-8.38-5.737l7.104 7.828 1.974.102-.697-2.193"/> - <path d="M297.994 243.303c.333 3.844.667 9.802 1.308 13.484-2.983-1.882-7.836-4.283-10.816-5.764 2.69.79 6.323 2.184 8.78 2.467.55-2.853.488-7.096.728-10.188"/> - <path d="M299.245 254.343c-.052.048-6.983-8.027-6.983-8.027l5.29 9.638 1.91.696-.217-2.307"/> - <path d="M298.605 244.772c.494 3.828 1.078 9.773 1.873 13.42-3.052-1.705-7.988-3.815-11.02-5.12 2.713.63 6.392 1.807 8.853 1.942.43-2.89.186-7.133.295-10.242"/> - <path d="M300.64 255.695c-.038.063-8.315-5.876-8.315-5.876l7.014 7.943 1.974.136-.673-2.205"/> - <path d="M298.866 246.4c.746 3.784 1.72 9.676 2.752 13.25-3.145-1.417-8.188-3.06-11.286-4.078 2.737.373 6.47 1.2 8.923 1.104.232-2.93-.29-7.154-.39-10.275"/> - <path d="M301.557 256.86c-.052.047-6.878-8.155-6.878-8.155l5.16 9.73 1.904.734-.187-2.31"/> - <path d="M299.317 247.448c1.092 3.68 2.608 9.434 3.963 12.866-3.24-.994-8.38-1.962-11.54-2.563 2.74.007 6.508.335 8.925-.09-.045-2.96-.957-7.108-1.348-10.212"/> - <path d="M301.92 256.874c-.014.075-9.608-2.06-9.608-2.06l9.138 4.544 1.846-.695-1.375-1.79"/> - <path d="M299.943 248.597c1.077 3.685 2.57 9.447 3.912 12.886-3.238-1.013-8.375-2.01-11.53-2.628 2.74.02 6.507.37 8.925-.04-.033-2.96-.93-7.112-1.307-10.218"/> - <path d="M303.492 257.892c-.03.068-9.194-4.44-9.194-4.44l8.246 6.684 1.976-.185-1.028-2.058"/> - <path d="M299.463 249.237c1.826 3.358 4.496 8.652 6.527 11.71-3.368-.258-8.583-.07-11.79.04 2.675-.6 6.42-1.11 8.69-2.06-.656-2.884-2.404-6.74-3.427-9.69"/> - <path d="M304.946 258.895c-.017.074-9.553-2.638-9.553-2.638l8.966 5.077 1.884-.576-1.298-1.863"/> - <path d="M300.452 250.663c1.846 3.344 4.546 8.62 6.596 11.662-3.368-.23-8.578.003-11.78.14 2.668-.623 6.407-1.165 8.67-2.134-.675-2.88-2.445-6.724-3.486-9.667"/> - <path d="M306.154 259.68c-.034.065-8.903-5.325-8.903-5.325l7.78 7.444 2 .02-.876-2.14"/> - <path d="M301.194 251.506c2.137 3.122 5.302 8.073 7.61 10.865-3.33.21-8.424 1.122-11.557 1.676 2.562-.974 6.18-2.006 8.308-3.275-.94-2.807-3.053-6.44-4.36-9.264"/> - <path d="M306.808 260.466c-.003.08-9.61-.226-9.61-.226l9.508 2.81 1.69-1.05-1.588-1.534m5.572-46.56c0-.03 6.913-1.153 6.913-1.153l-6.88.16-1.2.617 1.166.376"/> - <path d="M316.176 215.375c-2.006-.606-5.038-1.62-7.097-2.07 2.187-.87 5.426-2.41 7.42-3.357-1.535.96-3.764 2.192-4.952 3.155 1.148.78 3.23 1.575 4.628 2.272"/> - <path d="M312.074 214.14c-.008-.03 6.69-1.84 6.69-1.84l-6.93.885-1.046.717 1.286.237"/> - <path d="M316.496 215.87c-2.344-.22-5.94-.67-8.252-.694 1.743-1.543 4.186-4.124 5.69-5.71-1.034 1.49-2.625 3.467-3.31 4.876 1.57.63 4.093 1.053 5.872 1.528"/> - <path d="M309.586 214.62c.006-.032 6.952-.786 6.952-.786l-6.773-.217-1.267.557 1.09.445"/> - <path d="M314.736 216.132c-2.132-.408-5.37-1.118-7.526-1.37 2.048-1.006 5.033-2.736 6.87-3.798-1.37 1.036-3.395 2.39-4.42 3.4 1.298.643 3.542 1.223 5.076 1.768"/> - <path d="M308.99 214.546c-.018-.026 6.12-2.633 6.12-2.633l-6.703 1.77-.803.815 1.386.048"/> - <path d="M314.532 216.902c-1.774-.732-4.49-1.973-6.246-2.49 1.36-1.263 3.274-3.48 4.453-4.838-.82 1.358-2.075 3.114-2.63 4.46 1.18 1.003 3.084 1.987 4.422 2.87"/> - <path d="M309.34 214.997c-.014-.04 4.76-2.063 4.76-2.063l-5.185.71-.637.924 1.06.43m-3.984 44.582c.004.075-9.867.073-9.867.073l9.99 2.443 1.64-1.074-1.763-1.443"/> - <path d="M307.128 260.22c-.01.07-10.02-2.332-10.02-2.332l9.622 4.718 1.886-.607-1.488-1.78"/> - <path d="M308.772 260.888c0 .076-9.95-.5-9.95-.5l9.95 2.997 1.705-.967-1.705-1.53"/> - <path d="M302.46 253.863c2.587 2.852 6.465 7.397 9.18 9.913-3.34.505-8.374 1.855-11.47 2.68 2.46-1.182 5.983-2.516 7.964-3.947-1.334-2.656-3.967-6.01-5.675-8.647"/> - <path d="M310.14 261.397c-.02.07-9.945-3.254-9.945-3.254l9.344 5.556 1.957-.414-1.358-1.89"/> - <path d="M303.375 254.517c2.82 2.573 7.076 6.703 9.985 8.918-3.202.922-7.962 2.91-10.89 4.125 2.272-1.5 5.563-3.285 7.342-4.98-1.58-2.525-4.496-5.6-6.437-8.063"/> - <path d="M310.954 262.008c.015.077-9.437 1.856-9.437 1.856l9.944.677 1.405-1.385-1.91-1.147"/> - <path d="M308.99 261.412c.01.076-9.842.755-9.842.755l10.155 1.745 1.555-1.184-1.868-1.316"/> - <path d="M310.808 261.935c-.007.073-10.177-1.63-10.177-1.63l9.96 4.037 1.837-.735-1.62-1.672z"/> - <path d="M312.496 262.488c.005.075-9.968.187-9.968.187l10.155 2.302 1.63-1.08-1.817-1.41z"/> - <path d="M305.66 255.914c2.797 2.664 7.008 6.927 9.908 9.246-3.298.734-8.22 2.428-11.248 3.463 2.367-1.347 5.783-2.92 7.653-4.484-1.532-2.555-4.41-5.716-6.314-8.226z"/> - <path d="M313.906 262.895c-.013.07-10.17-2.557-10.17-2.557l9.745 4.893 1.924-.545-1.498-1.79z"/> - <path d="M306.634 256.495c3.008 2.37 7.565 6.193 10.635 8.2-3.128 1.14-7.73 3.45-10.562 4.862 2.156-1.65 5.307-3.657 6.955-5.468-1.765-2.41-4.907-5.275-7.03-7.595z"/> - <path d="M314.765 263.448c.02.076-9.28 2.5-9.28 2.5l9.976-.01 1.298-1.478-1.993-1.01z"/> - </g> - <path d="M327.58 249.484l-7.58-5.238-7.58 5.238 2.842-8.38-6.633-5.24h8.526l2.843-8.382 2.84 8.382h8.53l-6.634 5.24 2.843 8.38z" fill="#fedf00" stroke="#000" stroke-width=".435"/> -</svg> diff --git a/img/flags/4x3/qa.svg b/img/flags/4x3/qa.svg deleted file mode 100644 index c7aab30..0000000 --- a/img/flags/4x3/qa.svg +++ /dev/null @@ -1,4 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" height="480" width="640" viewBox="0 0 640 480"> - <path fill="#8d1b3d" d="M0 0h640v480H0z"/> - <path d="M0 0v480h158.4l97.745-26.666-97.745-26.668L256.145 400 158.4 373.334l97.745-26.668L158.4 320l97.745-26.666-97.745-26.668L256.145 240 158.4 213.334l97.745-26.668L158.4 160l97.745-26.666-97.745-26.668L256.145 80 158.4 53.334l97.745-26.668L158.4 0H0z" fill="#fff"/> -</svg> diff --git a/img/flags/4x3/re.svg b/img/flags/4x3/re.svg deleted file mode 100644 index c9abb97..0000000 --- a/img/flags/4x3/re.svg +++ /dev/null @@ -1,7 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" height="480" width="640" viewBox="0 0 640 480"> - <g fill-rule="evenodd" stroke-width="1pt"> - <path fill="#fff" d="M0 0h640v479.997H0z"/> - <path fill="#00267f" d="M0 0h213.331v479.997H0z"/> - <path fill="#f31830" d="M426.663 0h213.331v479.997H426.663z"/> - </g> -</svg> diff --git a/img/flags/4x3/ro.svg b/img/flags/4x3/ro.svg deleted file mode 100644 index c913ff3..0000000 --- a/img/flags/4x3/ro.svg +++ /dev/null @@ -1,7 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" height="480" width="640" viewBox="0 0 640 480"> - <g fill-rule="evenodd" stroke-width="1pt"> - <path fill="#00319c" d="M0 0h213.333v480H0z"/> - <path fill="#ffde00" d="M213.333 0h213.333v480H213.333z"/> - <path fill="#de2110" d="M426.666 0H640v480H426.666z"/> - </g> -</svg> diff --git a/img/flags/4x3/rs.svg b/img/flags/4x3/rs.svg deleted file mode 100644 index 6a5fac1..0000000 --- a/img/flags/4x3/rs.svg +++ /dev/null @@ -1,292 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" height="480" width="640" viewBox="0 0 640 480"> - <defs> - <clipPath id="a"> - <path fill-rule="evenodd" d="M60 0h1200v900H60z"/> - </clipPath> - </defs> - <g transform="translate(-32) scale(.53333)" clip-path="url(#a)"> - <path fill="#fff" d="M0 0h1350v900H0z"/> - <path fill="#0c4076" d="M0 0h1350v600H0z"/> - <path fill="#c6363c" d="M0 0h1350v300H0z"/> - <g transform="matrix(1 0 0 1.00437 0 -.328)"> - <path d="M473.4 259.4v-.2h1v.2l-.5.5-.6-.6zm1 0v.5h-.5l.4-.6zm-93 5.2l-1 .2.3-.6 4.2-.2 4-.3 4-.2 3.8-.3 4-.2 3.6-.3 3.7-.2 3.7-.2 3.5-.2h3.4l3.3-.3 3.2-.2 3.2-.2 3-.2h3l3-.2 3-.2 2.7-.2h2.8l2.7-.2 2.5-.2h2.5l2.4-.3h2.2l2.2-.2h2.2l2-.2h2l2-.2h5.3v1h-5.5l-1.8.2h-2l-2 .2h-2.2l-2.2.2-2.4.2h-2.4l-2.5.2-2.5.2H446l-2.8.3h-2.8l-3 .3-2.8.2h-3l-3 .3-3.3.2-3.3.2-3.3.2h-3.5l-3.5.3-3.6.2-3.5.3-3.8.2-3.8.2-4 .3-4 .2-4 .3-4.2.2.5-.6zm-1 .2l-.3-.5h.7l-.4.5zm6.4 31l-6.5-31 1-.2 6.5 31-.5.7-.5-.4zm.5.5h-.4l-.2-.4.5.3zm95-4l-.2 1h.2-5.8l-3 .2h-3l-2.8.2h-3l-3 .2h-6l-3 .2h-3l-3 .2h-3l-3 .2h-3.2l-3 .2h-3l-3 .2h-3l-3 .2h-3l-3 .2h-3l-3 .2h-3l-3 .2h-3l-2.8.2h-5.8l-2.7.2h-2.7v-1h5.8l2.7-.2h5.8l3-.2h3l2.8-.2h3l3-.2h3l3-.2h3l3-.2h3l3-.2h3l3-.2h3.2l3-.2h3l3-.2h3l3-.2h3l3-.2h3l3-.2h3l2.8-.2h3l2.8-.2h.2zm-.2 0h.2zm94.5 3.4l1 .2-.5.3h-2.8l-2.8-.2h-8.8l-2.8-.2h-3l-3-.2H551l-3-.2h-3l-3-.2h-3l-3-.2h-3l-3-.2h-3l-3.2-.2h-3l-3-.2h-3l-3-.2h-3l-3-.2h-3l-3-.2h-3l-3-.2h-3l-3-.2H485l-3-.2.2-1h2.8l3 .2h3l2.8.2h3l3 .2h3l3 .2h3l3 .2h3l3 .2h3l3 .2h3l3 .2h3.2l3 .2h3l3 .2h3l3 .2h3l3 .2h3l3 .2h5.8l2.7.2h3l2.7.2h2.8l-.5.5zm1 .2v.3h-.5l.5-.4zm6.5-31.2l-6.5 31h-1l6.5-31.2.6-.4.4.6zm-.4-.6h.5v.6l-.4-.6zm-93.7-4.8h1l-.6-.5h5.4l2 .2h2l2 .2h2l2.4.2h2.4l2.4.3h5l2.6.3h2.7l3 .3 2.8.2h3l3 .3 3 .3 3.3.2 3.3.2 3.4.2h3.4l3.6.3 3.6.2 3.7.2 3.6.3 4 .2 3.8.3 4 .2 4 .3 4.2.2v1l-4.3-.2-4-.3-4-.2-4-.3-3.7-.2-3.8-.2-3.6-.3-3.6-.2-3.5-.2h-3.4l-3.3-.3-3.3-.2-3.2-.2-3-.2h-3l-3-.2-3-.2h-2.7l-2.6-.3h-2.6l-2.6-.3h-2.5l-2.4-.2-2.3-.2h-2.2l-2.2-.2h-2l-2-.2h-2l-1.8-.2h-3.3l-.5-.6zm.4.5h-.5v-.6l.4.5zm.5-.8v.2h-1v-.2l.3-.5.6.5zm-1 0v-.4h.3l-.4.4zm-8 .3l.2-1h8.8l.3.2v.8h-.5v.2h-.3l-.2-1h.2v.7h.2-8.2zm.2 0zm-8.3.2v-1l-.2 1h-.4l-.2-.2-.3-.3v-.5l.2-.2h9.4v1h-8.8l.2-.2v-.8h-.2.4v1zm0-1v1l-.6-.5.5-.5zm-.6.5v-.5h.5l-.6.5z" fill="#21231e"/> - <path d="M583.5 264.2c3.2-6.6 6.7-13 11.2-18.7-11.7 8.8-18 7.5-18.7-4-.7-.2-1.7-.2-2.6-.2-9 14-17.7 12-26.2-5.8-11.5 18.4-21.4 18-29.2-1-13.3 16.6-24.5 16.7-33.6.2v-2c.5.2 0 .3-1 0l-.3-.3a69.3 69.3 0 0 1-1 .2c-.2 0-.5 0-.8-.2l-.2.4c-1.2.2-1.6 0-1 0v2c-9.2 16.4-20.4 16.3-33.7-.4-7.8 19-17.7 19.5-29.2 1-8.4 18-17 20-26 6-1 0-2 0-2.7.2-.8 11.4-7 12.7-18.8 4 4.6 5.5 8 12 11.3 18.6 34-1.4 67.6-3.2 101.3-5 34 1.8 67.6 3.6 101.5 5z" fill="#edb92e"/> - <path d="M595 246l-.6-1 .7 1-.3.4-.4.5-.4.4-.5.6-.4.5-.3.6-.4.6-.4.6-.5.5-.3.6-.4.6-.4.4-.3.6-.3.6-.3.6-.4.6-.3.5-.3.6-.4.5-.3.6-.3.7-.4.6-.3.6-.3.5-.3.6-.2.8-.3.6-.4.6-.2.6-.3.6-.3.6-.3.6-1-.4.3-.6.3-.7.3-.6.2-.5.4-.6.3-.7.2-.6.3-.6.3-.6.4-.6.3-.6.3-.6.3-.6.5-.6.3-.6.4-.6.3-.6.4-.5.2-.5.4-.6.4-.7.3-.6.4-.5.4-.6.5-.6.4-.5.3-.6.4-.6.4-.6.5-.5.4-.6.4-.5.7.7zm-19.2-4l.3-1 .5.5v1l.2 1v1l.3.7.2.8.3.7.3.7.2.6.4.5.3.5.4.4.5.3.4.3.4.3.5.2h.4l.5.2h1.9l.7-.2.7-.2.8-.3.8-.3.8-.3 1-.5.8-.6 1-.5 1-.7 1-.7 1-.7 1-1 .7 1-1 .7-1 .8-1 .7-1 .6-1 .5-1 .5-1 .5-.8.4-1 .3-.7.3-.8.2h-.8l-.8.2h-2l-.7-.3-.5-.2-.6-.3-.5-.5-.6-.4-.5-.4-.5-.5-.3-.5-.4-.7-.3-.7-.2-.7-.3-.8-.2-1v-.8l-.2-1v-1l.2.3zm.3-1l.4.2v.3l-.3-.4zm-2.2.6l-.8-.6.4-.2h2v.2h.4l-.2 1h-1.2v-.2h-1.2l.4-.2zm-.8-.6v-.2h.4l-.4.2zm-25.3-5.2l-1-.6h1l.8 1.7.8 1.4.8 1.5.8 1.2.8 1.2.8 1.2.8 1 .8 1 .8.8.8.8.8.7.7.5 1 .4.7.3.8.3.7.3h2.3l.8-.2.8-.2.8-.3.8-.4.8-.6.8-.6.8-.7.8-.6 1-1 .7-1 .8-1 .8-1 1-1.4.8.6-.8 1.3-1 1-.7 1.2-1 1-.7 1-1 .7-.8.6-.8.6-1 .6-.7.4-1 .4-.8.2-1 .2h-3l-1-.4-.7-.3-1-.5-.7-.5-1-.6-.7-.7-1-.8-.8-1-.8-1-.8-1-.8-1.2-.8-1.3-.8-1.3-.8-1.5-.8-1.6-.8-1.7h1zm-1-.6l.6-.7.4.8h-1zm-28.3-.5l-.8-.6 1 .2.6 1.7.7 1.5.7 1.5.8 1.4.7 1.3.8 1.2.8 1 .8 1 .8.7.8.7.8.6 1 .5.7.4.8.2 1 .2h2.5l1-.3.8-.2 1-.4.8-.6 1-.7 1-.6 1-1 1-1 1-1 1-1.2 1-1.3 1-1.6 1-1.5 1.2-1.8 1 .6-1.2 1.7-1 1.5-1.2 1.5-1 1.3-1 1.3-1 1.2-1.2 1-1 1-1 .8-1 .7-1 .6-1 .4-1 .4-1 .4h-3l-1-.2-1-.3-.8-.6-1-.5-.8-.8-1-.8-.7-.8-1-1-.8-1-.8-1.3-.8-1.4-.8-1.5-.8-1.5-.7-1.7-.8-1.7h1zm-.8-.6l.5-.6.5.8h-1zm-33.8.7h1v-.2l.8 1.5 1 1.4.8 1.2 1 1.2.8 1 1 1 .8 1 1 .8.8.7 1 .6 1 .4 1 .4.8.3 1 .3 1 .2h2l1-.2 1-.3 1-.3 1.2-.4 1-.6 1.2-.6 1-.6 1.3-.8 1-1 1.3-1 1.2-1 1-1.3 1.4-1.3 1.2-1.4 1.2-1.5.8.7-1.3 1.5-1 1.5-1.3 1.3-1.2 1.3-1.2 1-1.2 1-1 1-1.3 1-1.2.7-1 .6-1.3.6-1 .5-1.3.3-1.2.3h-1l-1.2.2h-1l-1.2-.2-1-.2-1-.3-1-.4-1-.5-1-.7-1-.6-1-1-1-.8-1-1-1-1.2-.8-1.2-1-1.3-.8-1.5-1-1.5v-.3zm0 .3v-.3.3zm1-2.3v2h-1v-2l.8-.5.3.5zm-1 0v-.8l.8.2-.8.5zm-1 .3l1-.4-.4-.3h1l-.2.2v.4l.4-1h.2v.2l.2.2v.6h-1.8l-.5-.3zm.5.3h-.3v-.3l.3.3zm.3-1l.2.3-1 .4v-.4l.2-.7.6.2zm-.6-.4l.4-.2.2.4-.6-.3zm-1 1l.2-1h.8l.2 1h-1zm.2 0zm-.6-.4l-1-.4.7-.3h.8v1h-1l.4-.4zm-1-.4l.3-.4h.3l-.6.4zm0 .4v-.4l1 .4-.2.4-.4.3-.5-.7zm.8.4v.3h-.4l.4-.3zm-1-.3h-1l.7.4v.2h.2v-.8h-.2.2l.2-.2h.4l.2 1h-1.9v-.2h-.2v-.5h.2v-.2h.2l.8.4zm-.7-.5l.7-.3v.7l-.7-.5zm-.3 2.5v-2h1v2.3l-1-.3zm1 0v.2-.3zm-33.6 0l-1-.5h1l1 1.4 1.3 1.4 1.3 1.3 1.2 1.2 1.2 1 1.2 1.2 1 1 1.2.7 1 .7 1.2.7 1 .6 1.2.4 1 .3 1 .3h1l1 .2h1l1-.2 1-.2 1-.2 1-.4 1-.5 1-.7.8-.7 1-.8.8-1 1-1 .8-1 1-1.2.8-1.2.8-1.4 1-1.5.8.5-1 1.5-.8 1.4-1 1.2-.8 1.2-1 1.2-1 1-.8 1-1 .8-1 .7-1 .8-1 .5-1 .4-1 .4-1 .3-1.2.2h-2.2l-1-.2-1.3-.3-1-.3-1.2-.5-1-.6-1.2-.6-1.2-.8-1.2-.8-1.2-1-1.2-1-1.2-1-1.2-1.4-1.2-1.3-1.3-1.5-1-1.5h.8zm-1-.5l.3-.8.7.7-1 .2zm-28.3 1.5l-1-.4h1l1 1.6 1 1.4 1.2 1.5 1 1.2 1 1.2 1 1 1 1 1 1 1 .7 1 .8 1 .6.8.4 1 .3.8.4h2.8l.8-.2.8-.3.8-.5 1-.5.7-.6 1-.7.7-.8.8-1 .8-1 .8-1.3.8-1.3.8-1.4.8-1.5.7-1.6.8-1.8 1 .4-.8 1.7-.7 1.7-.8 1.5-.8 1.4-.8 1.3-1 1.2-.7 1-1 1-.7 1-1 .7-.8.7-1 .4-.8.5-1 .2-1 .2h-3l-1-.3-1-.3-1-.4-1-.6-1-.7-1-.8-1-1-1-1-1-1-1-1.4-1-1.3-1.2-1.5-1-1.5-1.2-1.7h1zm-1-.4l.5-.8.5.7h-1zm-25.6 6.5v-1l.3.2 1 1.3.7 1.2.8 1 .8 1 .8.8 1 .8.7.8 1 .6.7.5.7.3.8.3.8.2.8.2h2.3l.8-.4.8-.3.8-.4.7-.5 1-.6.7-.8.8-.8.8-.8.8-1 1-1 .7-1.2.7-1.2.8-1.3.8-1.6.8-1.5.8-1.7 1 .4-1 1.7-.7 1.5-1 1.4-.7 1.3-.8 1.3-.8 1.2-.8 1-1 1-.8 1-.8.8-.8.7-1 .6-.7.5-1 .5-1 .3-.7.3h-2.6l-1-.2-.8-.2-1-.4-.8-.4-1-.6-.8-.6-.8-.7-1-1-.7-.8-1-1-.8-1-1-1.3-.7-1.4.4.2zm0-1h.2v.2l-.3-.2zm-2.2.8h-1l.4-.5h1.2v-.2h1.5v1H389v.2h-.4l.2-.4zm-1 0v-.4h.4l-.4.3zm-18 3.6l-.6.7.6-1 1 1 1.2.6 1 .7 1 .6 1 .4.8.5 1 .4.7.3.8.3.8.3.8.2h.7l.7.2h1.7l.4-.2.5-.2.4-.3.4-.3.4-.3.4-.4.3-.5.2-.5.3-.6.3-.7.3-.7.3-.8v-.8l.3-1v-.8l.2-1h1v1l-.2 1-.2 1-.2 1-.2.7-.2.8-.3.8-.4.7-.2.6-.5.6-.4.5-.6.5-.5.4-.7.2-.6.2-.6.2h-3.3l-.8-.3-.8-.3-1-.3-.8-.4-1-.5-.8-.5-1-.5-1-.6-1-.7-1-.8-1.2-.8.7-.8zm11 18.5v1l-.4-.3-.3-.6-.2-.6-.3-.6-.3-.6-.4-.6-.3-.6-.3-.7-.3-.5-.4-.6-.4-.7-.3-.6-.4-.6-.3-.5-.4-.6-.4-.7-.4-.5-.3-.6-.4-.6-.4-.6-.4-.6-.3-.5-.4-.7-.3-.6-.3-.5-.4-.6-.4-.5-.4-.5-.4-.5-.4-.6-.4-.5-.4-.6-.4-.5.7-.8.4.5.4.6.4.5.4.6.4.5.4.5.4.5.4.6.4.6.4.5.3.6.4.6.4.5.4.6.4.6.3.6.5.6.3.6.3.6.5.6.3.6.3.6.5.6.3.7.3.7.4.6.3.6.4.5.4.6.3.7.3.7.3.6-.5-.3zm0 1h-.3v-.3l.4.3zm101.4-6v1l-3.2.2h-3.2l-3 .3h-3.3l-3 .3-3.3.2H460l-3 .3-3.3.3h-3.2l-3 .3H444l-3 .3h-3.3l-3.3.2-3 .2h-3.3l-3.2.3h-3l-3.3.3-3.3.2h-3l-3.3.3h-3.2l-3 .2-3.3.2h-3.3l-3.2.2h-3l-3.3.3H384l-3 .2-.2-1h3.2l3.2-.3h3l3.3-.2 3.2-.2h3l3.3-.3h3.2l3-.3h3.3l3.2-.3h3l3.3-.2h3.2l3-.3h3.3l3.2-.3 3-.2h3.3l3.2-.3h3l3.3-.3 3.2-.2h3l3.3-.3 3-.3h3.3l3.2-.3 3-.2h3.3l3.2-.3 3-.3h.2zm0 0zm101.2 5v1h-3l-3.3-.2-3-.2h-3.3l-3-.3h-3.3l-3.2-.3h-3l-3.3-.2-3.3-.2h-3l-3.3-.3-3.2-.2h-3l-3.3-.3h-3.3l-3-.3h-3.3l-3.2-.3-3-.3h-3.3l-3.3-.3h-3l-3.3-.3h-3l-3.3-.2-3-.2-3.2-.2h-3.2l-3.2-.3h-3l-3.3-.2.2-1h3l3.3.3 3.2.2 3 .2 3.3.2h3l3.3.3h3.2l3 .2 3.3.2 3.2.2h3l3.3.3h3l3.3.2 3.2.2h3l3.3.3h3.3l3 .3h3.3l3.2.3h3l3.3.3h3.3l3 .3h3.3l3.2.2h3.2l3 .2 3.3.2h3.2zm0 1zm0 0v-1l.5.7-.6.3zm.5-.3l-.2.3h-.4l.5-.3z" fill="#21231e"/> - <path fill="#edb92e" d="M459.4 276.2l22.7-11.5 23 11.5-23 11.4z"/> - <path d="M474 259.2v.2c-17.6.7-48.6 2.5-93.2 5.3l6.5 31c29.6-.8 64.3-2 94.8-3 30.7 1 65.3 2.2 95 3l6.5-31c-44.6-2.8-75.6-4.6-93-5.3v-.2c1.7-.4-1-.4-8.4-.2-7-.2-10-.2-8 .2z" fill="#edb92e"/> - <path d="M597.3 236.7l-3.7-.6c-7 17.5-13.4 18-14.6 1.4 1.6-.6 1-3.3 2.8-2.2 1 .5 2-1 1.3-2-2-1.5-3.6-1.3-5.4.4-.8-2.7-3-4-5.4-2.8-1 .5-.7 2.5.4 2.4 1.8-.2 1 1.6 1.6 3-12.5 16.4-19 14.4-17.4-7.3-3-.7-6.5-1.3-9.6-2.4-11.5 23.3-19.7 24.3-26.4 3.4 1.4-1 1-3.8 3-3 1.3.6 2.3-1.5 1.2-2.4-2.4-2-5-1.3-6.8 1.3-1.4-3-4-4-6.6-2.2-1.2.7-.5 3 .8 2.6 2.3-.7 1.3 2.4 3 3.5-5 19.6-30.8 21-26.6-8.2-2.4 0-4.5 0-6.6.2l-6.7-.2c4.2 29-21.5 27.8-26.6 8 1.6-1 .6-4 3-3.4 1.2.3 2-2 .7-2.7-2.6-1.7-5.2-.7-6.6 2.2-1.7-2.7-4.3-3.4-6.7-1.4-1 1 0 3 1 2.5 2.2-.8 1.8 2 3.2 3-6.7 21-15 20-26.4-3.4-3 1-6.5 1.7-9.5 2.3 1.6 21.6-5 23.6-17.4 7 .6-1.2 0-3 1.7-2.8 1 0 1.5-2 .4-2.4-2.4-1-4.5 0-5.3 2.8-1.7-1.7-3.5-2-5.5-.4-.8 1 .4 2.5 1.3 2 1.8-1 1.2 1.6 2.8 2.2-1.2 16.5-7.6 16-14.6-1.3l-3.7.7c0 4 1.3 8.5 3.8 11.7 10.6 13.5 18.5 10.4 18.8-4.7 14 16.4 24.4 14.3 26.2-3 11.7 21.8 30.5 11.4 31-2 5 19.4 33.5 19.2 35.4-3 1.8 22.2 30.3 22.4 35.4 3 .4 13.4 19.2 23.8 31 2 1.7 17.3 12.3 19.4 26 3 .4 15 8.3 18.2 19 4.7 2.4-3.2 3.8-7.6 3.7-11.7z" fill="#edb92e"/> - <path d="M593.7 235.6l3.7.6-.2 1-3.6-.6-.4-.7.5-.4zm-.5.3v-.4h.5l-.5.3zm-14.3 1l.2 1 .3-.6.2 1.4v1.4l.3 1.3.2 1.2.2 1 .3 1 .3 1 .3.7.3.7.3.6.3.5.3.5.4.2.3.2h1.3l.4-.3.4-.2.5-.4.4-.3.6-.6.5-.6.6-.7.7-1 .6-.8.7-1.2.6-1.2.6-1.3.7-1.3.5-1.5.7-1.6 1 .3-.8 1.6-.6 1.4-.7 1.4-.5 1.3-.7 1.3-.6 1-.6 1-.7 1-.7.8-.6.8-.6.6-.5.5-.6.3-.7.4-.5.2h-1.2l-.6-.2-.5-.2-.5-.4-.5-.4-.4-.6-.3-.6-.3-.8-.4-.8-.3-1-.2-1-.3-1-.2-1.3-.2-1.3-.2-1.5v-1.6l.3-.5zm-.5.4v-.4h.4l-.5.4zm3.5-2.7l-.5 1v-.2h-.4v.2h-.2v.2l-.2.2v.3l-.2.3-.2.3v.2h-.2v.3h-.3v.2h-.3l-.2.2-.3-1v-.2h.2v-.2h.2v-.2l.2-.2v-.5h.2v-.4l.2-.2v-.3l.2-.2.2-.2h.2l.2-.2h1l.2.2zm-.5 1zm1.3-2l.6-1v.2h.2l.2.3v1.6h-.2v.2h-.2v.2h-.2v.2h-.2v.2h-.5v.2h-.8l-.3-.2.5-1v.2h.4v-.2h.2v-.2h.2v-.8zm.6-1v.2-.2zm-6.3 1l1-.3-.8-.2h.2l.2-.3.2-.2.2-.2.3-.2h.2l.2-.2h.2v-.2h.4l.2-.2h2.3l.2.2h.2l.2.2h.2l.2.2h.2l.2.2.2.2-.6.8-.3-.2h-.2l-.2-.2-.2-.2h-.3l-.2-.2h-2.1v.2h-.3v.2h-.2l-.3.2v.2h-.3v.2l-.3.2-1-.3zm1 .3l-.7.5-.2-.8 1 .3zm-5.6-2.7l-.4-1h.5l.3-.2h2.1l.4.2h.4l.2.3h.2v.2l.3.2h.2l.2.2v.2l.2.2v.2l.2.2.2.2v.2l.2.3v.2l.2.2v.2l-1 .3v-.5h-.2v-.3l-.2-.2v-.2h-.3v-.3h-.2v-.4h-.3v-.2h-.3v-.2h-.6v-.2h-2l-.2.2h-.2zm0 1.4l.2 1h-.6v-.2h-.2l-.2-.2-.2-.2-.2-.2V231l.2-.2.2-.2.3-.2.4 1h-.2v1.2h.2zm2.2 3.7l-.8-.6v.5-.2h-.2v-1h-.2v-1l-.2-.2h-.7v-1.2h.6l.3.2.2.2h.2v.2l.2.3v.4h.2v1.5h.2v.8zm0-.5h.2l-.2.4v-.5zm-18-6.6l.3-1 .3.6v2l-.2 1.8v4.9l.3 1.4v1.3l.3 1 .2 1 .3 1 .4.8.3.8.4.5.5.5.4.3.4.3.5.2h1l.6-.2.7-.3.7-.4.8-.5 1-.4.7-.8 1-.8 1-1 1-1 1-1 1-1.4 1-1.4 1.3-1.4.8.6-1.2 1.5-1 1.3-1.2 1.3-1 1-1 1.2-1 1-1 .8-1 .8-.8.6-1 .5-.7.4-.8.3h-.8l-.8.2h-.7l-.7-.2-.6-.3-.6-.5-.5-.5-.4-.7-.5-.7-.4-1-.2-1-.2-1-.2-1.2-.2-1.3V229l.5.6zm.3-1h.3v.6l-.4-.6zm-9.3-1.6l-1-.4.7-.3.3.2h.3l.3.2h.3l.2.2h.3l.4.2h.6l.3.2h.3l.4.2h.6l.3.2h.5l.3.2h.7l.3.2h.6l.3.2h.5l.3.2h.8l.3.2h.3l-.3 1h-.8l-.2-.2h-.6l-.3-.2h-.8l-.3-.2h-.6l-.4-.2h-.7l-.4-.2h-.3l-.3-.2h-.6l-.3-.2h-.2l-.3-.2h-.6l-.4-.2h-.3l-.4-.2h-.4l-.3-.2h-.2l.7-.4zm-1-.4l.3-.4h.4l-.6.4zm-26.2 3.2l.6.8.3-.6.6 2 .5 1.7.7 1.6.6 1.6.7 1.4.7 1.2.6 1 .7 1 .7 1 .7.6.6.6.7.4.7.4.7.2h1.4l1-.2.6-.2.8-.4 1-.6.7-.6 1-.8 1-1 .8-1 1-1.2 1-1.3.8-1.4 1-1.6 1-1.7 1-1.8 1-2 1.2-2 1 .3-1.2 2.2-1 2-1 1.8-1 1.8-1 1.6-1 1.5-1 1.3-1 1.2-1 1-1 1-1 1-.8.7-1 .5-.8.4-1 .2-.8.2h-1.8l-.8-.3-.8-.3-.8-.5-.8-.6-.7-.8-.8-1-.7-1-.7-1-.7-1.4-.7-1.4-.7-1.5-.7-1.7-.6-1.7-.7-1.8.2-.6zm-.2.6v-.4l.2-.2-.2.5zm3.8-3.6l-.3 1h-.3l-.2-.2h-.2v.2h-.2v.2h-.2v.5h-.2v.4l-.2.3-.2.2v.2l-.2.3-.3.3-.2.3h-.2l-.5-.7.2-.2.2-.2v-.5h.2v-.4h.2v-.3l.2-.3v-.2l.2-.2.2-.3.2-.2h.2v-.2h.5v-.2h.7l.2.2zm.7-1.6l.6-.8.2.2.2.2v.2l.2.3v1.3l-.2.3v.2l-.2.2h-.2v.2h-.2v.2h-.2l-.2.2h-1.1l.4-1h.7v-.2h.2v-.6h.2v-.7h-.2v-.2zm-7 1l1-.3h-1l.2-.3v-.3h.3l.2-.3.2-.3.2-.2.3-.3.3-.3h.2l.2-.3h.3l.2-.2h.5l.2-.2h2.2l.3.2h.2l.3.2h.3l.3.3h.2l.3.3.3.2-.6.8-.2-.2h-.2l-.2-.3-.4-.2h-.2l-.2-.2H521v.2h-.5l-.2.3h-.2v.2h-.2l-.2.3-.2.2-.3.3v.2l-.2.3-.2.2h-1zm1 .2l-.6.7-.3-1 1 .2zm-7-2l-.4-1h.3l.2-.2h.3l.4-.2h.2l.3-.2h.4l.3-.2h1.6l.2.2h.2l.3.2h.2l.2.3.3.2.2.2v.2l.3.2.2.2.2.2v.2l.3.2.2.3.3.4v.3l-.8.4-.2-.4-.2-.2v-.2l-.3-.2v-.2l-.3-.2-.3-.3h-.2v-.2h-.3l-.3-.2h-.2l-.3-.2h-.4l-.2-.2h-1.2l-.2.2h-.5l-.2.2h-.2l-.2.2-.2.2zm.5 1.7l.3 1h-.5l-.2-.2h-.2l-.2-.2-.2-.2-.2-.2v-.2l-.2-.2V224l.2-.2.2-.3.3-.2.5 1h-.2v1.2h.2v.2h.4zm3.7 4l-1-.2.2.5h-.2l-.2-.2h-.2v-.3h-.2l-.2-.3v-.4l-.2-.2v-.3l-.2-.2v-.4l-.2-.2v-.2l-.2-.2v-.2h-.2v-.2h-.6l-.4-1h1.1l.3.2h.2v.4h.2v.3l.2.2v.2h.2v.5l.2.3v.5h.2v.4h.2l.2.2.2.2.3.6zm-.3-.5l.3.2v.3l-.3-.5zm-27-7.2v-1l.6.5-.3 2.7-.2 2.4v2.2l.2 2 .3 2 .4 1.7.5 1.5.7 1.4.6 1 .8 1.2 1 1 1 .7 1 .6 1 .5 1 .4 1.3.3h2.4l1.3-.2 1.2-.3 1.2-.5 1.2-.5 1-.7 1.2-1 1-.8 1-1 1-1.3 1-1.3.8-1.3.8-1.5.6-1.7.5-1.7 1 .2-.6 2-.7 1.6-.8 1.6-1 1.5-1 1.4-1 1.3-1 1-1.2 1-1.2 1-1.2.8-1.3.7-1.2.5-1.3.3-1.4.2h-2.5l-1.2-.3-1.3-.4-1.2-.5-1-.7-1-1-1-1-1-1-.8-1.5-.7-1.5-.6-1.6-.4-1.8-.3-2-.2-2.2V227l.2-2.6.3-2.7.5.6zm0-1h.7v.5l-.6-.5zm-6.6 1.2l.2-1h4l.2-.2h2.1v1h-4.1l-.2.2h-2zm.2 0zm-6.2-.8h-1l.5-.4h5.1l.2.2h1.2v1h-4l-.3-.2h-2l.5-.6zm-1 0v-.5h.5l-.5.6zm-26.4 7.8l.5.8.3-.5.6 1.7.5 1.7.7 1.5 1 1.4.8 1.4 1 1.2 1 1 1 1 1.2 1 1.2.6 1.2.5 1.2.5 1.2.3 1.2.2h2.4l1.2-.3 1-.3 1.2-.4 1-.7 1-1 .8-.8 1-1 .6-1.3.6-1.5.6-1.6.4-1.8.3-2v-2l.2-2.3-.2-2.5-.3-2.7h1l.3 2.6.2 2.5v2.2l-.2 2.2-.3 2-.5 1.8-.5 1.6-.7 1.5-.8 1.4-1 1.2-1 1-1 .8-1 .7-1.2.5-1.3.4-1.3.3H463l-1.2-.2-1.3-.3-1.3-.5-1.3-.6-1.3-.7-1.2-1-1.2-1-1-1-1-1.2-1-1.3-1-1.5-.7-1.6-.7-1.7-.6-2 .2-.5zm-.2.5v-.3l.2-.2-.2.5zm3.7-4l-.2 1-.2-.2h-.7v.2l-.2.2v.4l-.2.2v.5l-.2.2v.2l-.2.3v.2l-.2.2v.2h-.2v.3h-.3l-.2.2h-.2l-.4-.7.2-.2.2-.2h.2v-.3l.2-.2v-.5l.2-.2v-.5l.2-.3v-.3l.2-.2.3-.3.2-.2h.2l.2-.2h1.1zm.4-1.8l.6-1v.2h.3v.3h.2v.2l.2.2v1.5l-.2.2v.2l-.2.2-.3.2-.2.2h-.9l.3-1h.4v-.4l.2-.2v-.8h-.2v-.2h-.2zm-6.7 2l.8-.6h-.8v-.2l.2-.3.3-.4v-.2l.3-.2.2-.2.2-.2.2-.2.2-.2.2-.2h.2l.3-.3.3-.2h.2l.3-.2h.5l.2-.2h1.6l.4.2h.2l.3.2h.2l.3.2.2.2h.3l-.6 1-.2-.2h-.2l-.2-.2h-.3l-.2-.2h-.5l-.2-.2h-1.3l-.2.2h-.3v.2h-.3l-.2.3-.2.2-.3.3-.3.3-.2.2v.2l-.2.2-.2.2v.3h-.2l-1 .2zm1 0l-.5.7-.5-.8h1zm-7-1.2l-.8-.8.2-.2.2-.2h.3l.2-.3h.2l.2-.2h.3l.3-.2h2.5l.3.2h.2l.3.2.2.2h.2l.2.3h.2l.2.2.2.2.2.3.2.2h.2v.4l.3.2-.8.6-.2-.2v-.3l-.3-.2-.2-.2-.3-.3-.2-.2h-.2l-.2-.2v-.2h-.2l-.2-.2h-.4l-.2-.2H441l-.2.2h-.2l-.2.2h-.2l-.2.3h-.2l-.2.3zm.5 1.6l.4 1h-1.3l-.2-.2-.3-.2h-.2v-.2l-.2-.3v-.2l-.2-.2v-1.6l.2-.2.2-.2v-.2l.8.8-.2.2v1l.2.2.2.2h.4zm3.8 3.6l-1-.4.2.6h-.2v-.3h-.3v-.2h-.2v-.3h-.2v-.5h-.2v-.6h-.2v-.5l-.2-.2-.2-.2h-.2v-.2h-.5v.2l-.5-1h.4l.2-.2h.6l.2.2.3.2h.2v.2l.2.2.2.3v.2l.2.2v.2l.2.3v.2l.2.2.2.2.2.2.2.2.2.6zm-.2-.6l.3.2v.4l-.2-.6zm-26.6-2.5l-.3-1 .5.4 1 2 1 2 1.2 2 1 1.6 1 1.6 1 1.5 1 1.4.8 1.2 1 1 .8 1 1 .8.7.6 1 .6.6.4.8.2.8.2h1.3l.7-.2.7-.4.7-.4.7-.6.7-.7.8-.7.6-1 .7-1 .8-1.3.6-1.4.7-1.5.7-1.5.7-1.8.6-2 1 .5-.7 2-.6 1.6-.7 1.7-.6 1.5-.7 1.4-.7 1.3-.7 1.2-.7 1-.8.8-.7.8-.7.6-.8.5-1 .4-.7.4H432l-1-.2-.7-.3-1-.5-1-.6-.8-.8-1-1-.8-1-1-1-1-1.2-1-1.3-1-1.5-1-1.6-1-1.8-1-1.8-1-2-1-2.2.5.3zm-.3-1h.3l.2.4-.6-.3zm-9 3h-1l.4-.6h.7l.3-.2h.6l.4-.2h.9l.3-.2h.5l.3-.2h.6l.4-.2h.3l.3-.2h.6l.3-.2h.5l.3-.2h.3l.4-.2h.3l.3-.2h.3l.3-.2h.3l.2 1h-.7l-.3.2h-.3l-.3.2h-.3l-.3.2h-.5l-.3.2h-.3l-.4.2h-.6l-.4.2h-.6l-.3.2h-.6l-.2.2h-.6l-.3.2h-.7l-.3.2h-.8v.2h-.4l.4-.5zm-1 0v-.5h.4l-.4.5zm-17.4 7l1 .3v-.5l1 1.4 1 1.4 1.2 1.3 1 1 1 1 1 1 1 .8.8.8 1 .6.6.4.8.4.7.3h.6l.6.2h.4l.5-.2.3-.2.5-.2.4-.5.3-.5.4-.7.2-.7.3-1 .2-1 .2-1v-2.7l.2-1.5v-5l-.2-1.8h1v2l.2 1.8v4.9l-.2 1.4v1.4l-.3 1.2-.3 1-.3 1-.2 1-.4.7-.4.7-.6.5-.5.5-.7.3-.7.2H402l-.6-.2-.8-.4-1-.5-.7-.5-1-.6-1-.8-1-.8-1-1-1-1-1-1.2-1-1.3-1.2-1.4-1-1.6-.2-.5zm0 .4v-.3.4zm2-3.7v1h-.6v.8l-.2.3v1h-.2v.3l-1-.4v-.4l.2-.2v-.9h.2v-.5l.2-.2v-.2h.4v-.2h1zm.3-1.4l.3-1 .2.2h.2v.2h.2v.7h.2v1.2l-.2.2v.3l-.2.2-.2.2h-.2l-.2.2h-.5v-1h.4v-.2h.2v-.8l-.2-.2zm-5.7 2.7l.7-.8-.8.2v-.2l.2-.3v-.3l.2-.3v-.2l.2-.2.2-.2v-.2l.3-.2v-.2l.3-.2h.2v-.3h.3l.3-.2.2-.2h.4v-.2h2.5l.3.2h.2l.3.2-.4 1-.3-.2h-.5l-.2-.2h-1.3l-.3.2h-.2v.2h-.2l-.2.2v.2h-.2l-.2.2v.2h-.2v.3l-.2.2v.2h-.2v.5l-.2.2-1 .3zm1-.3l-.4.8-.7-.5 1-.3zm-5.8-.2l-.7-.6v-.2l.3-.2h.3l.2-.2h.2l.2-.2.3-.2h.2l.2-.2h2.1l.2.2h.2l.2.2h.2l.2.2.3.2.2.2h.2l.2.3v.2l-.7.8v-.2h-.3v-.2l-.3-.2-.3-.2h-.3v-.2h-.2l-.2-.2h-2v.2h-.3l-.2.2-.2.2h-.2l-.2.2zm-.7-.6v-.2zm1.4 1.7l.6 1h-1.3l-.3-.2-.2-.2v-.2h-.2l-.2-.2v-.3l-.2-.2v-.8l.2-.3h.2l.7.5v.8h.2v.2h.2v.2h.2zm3.6 2.7h-1l.3.5v-.2h-.3v-.2h-.3v-.3h-.2v-.2h-.2v-.2l-.2-.2v-.3h-.2v-.2l-.2-.3v-.2h-.7l-.6-.8h.2l.2-.2h1.1l.3.2.2.2v.2h.2v.4l.2.2v.5h.2v.2l.2.2.2.2h.2l.4.6zm-.4-.5h.4v.4l-.4-.5zm-14.7-.4v-1l.4.3.8 1.5.6 1.5.7 1.3.7 1.3.6 1.2.6 1 .6 1 .6 1 .5.6.6.7.5.7.6.4.5.5.3.2.5.2h1.1l.3-.3.3-.2.4-.4.3-.4.4-.5.3-.6.3-.8.3-.8.2-1 .3-1 .3-1.3.2-1.3v-1.4l.2-1.4h1v1.5l-.2 1.4-.2 1.3-.2 1.2-.2 1-.2 1-.3 1-.4.8-.4.8-.4.6-.4.6-.5.4-.5.4-.5.2-.6.2h-1.1l-.6-.3-.7-.4-.6-.4-.5-.6-.6-.6-.7-.7-.7-.7-.6-1-.6-1-.6-1-.6-1.2-.6-1.2-.7-1.4-.7-1.5-.6-1.7.5.3zm0-1h.3v.3l-.4-.4zm-3.8.6l3.6-.6v1l-3.6.6-.5-.5.4-.5zm-.5.5v-.4h.4l-.5.4zm4.7 11.4l-.8.7-.3-.3v-.3l-.3-.3-.2-.3-.3-.3-.2-.3-.2-.3v-.4l-.3-.3-.2-.4-.2-.4v-.4l-.2-.4v-.4l-.3-.4v-.4l-.2-.3v-.4l-.2-.4v-.9l-.2-.3v-.8l-.2-.5V238l-.2-.5v-.7h1v1.9l.2.4v1.1l.2.5v.7l.2.3v.4l.2.4.2.3v.4l.2.5.2.3v.4l.2.3.2.4.2.2v.3l.3.4.2.2v.3l.3.3.2.4.2.3.2.3.2.3zm18.7-4.7l-.8.7 1-.3-.2 1.4v1.4l-.2 1.3-.2 1.2-.2 1-.3 1-.2 1-.3 1-.4.7-.4.8-.4.7-.6.6-.5.5-.5.4-.7.3-.6.3h-.7l-.8.2h-.7l-.8-.2-.8-.2-.8-.2-1-.4-.7-.5-1-.7-1-.6-.8-.8-1-1-1-1-1-1-.8-1-1-1.3.8-.6 1 1.3 1 1 .8 1 1 1 1 .8.7 1 1 .5.7.6.8.5.8.4.7.2h.7l.7.3h1.4l.6-.2.4-.2.6-.2.4-.3.5-.5.4-.5.4-.6.4-.7.3-.8.3-.8.3-1 .4-1 .2-1 .2-1.2v-1.2l.2-1.3v-1.3l1-.4zm-1 .4V242l1 1-1 .4zm27.3-3.2l-1 .4 1-.2-.2 1.6v1.5l-.4 1.3-.4 1.3-.4 1.2-.4 1.2-.5 1-.7 1-.6 1-.6.7-.6.7-.8.6-.7.5-1 .4h-.8l-1 .3h-2.8l-1-.3-1-.4-1.2-.4-1-.6-1.2-.6-1.2-.8-1-.8-1.3-1-1.2-1-1.3-1.2-1.2-1.3-1.3-1.5-1.3-1.5.7-.7 1.2 1.5 1.3 1.4 1.2 1.2 1.2 1.2 1 1 1.3 1 1 .8 1.2.7 1 .7 1 .6 1 .4 1 .3 1 .2h1l.8.2h.8l1-.2.7-.3.7-.4.7-.5.7-.4.6-.6.6-.7.5-.8.5-1 .4-1 .5-1 .2-1.2.4-1.3.3-1.3v-1.5l.3-1.6h1zm-1 0l.2-1.5.8 1.5h-1zm31.8-1.8l-.8.3h1v1l-.3 1.4-.4 1.2-.4 1.2-.5 1-.6 1.3-.6 1-.7 1-.8 1-1 1-1 .7-1 .7-1 .7-1 .6-1.2.5-1.2.4-1.2.3h-3.8l-1.3-.2-1.3-.4-1.4-.4-1.3-.7-1.3-1-1.3-.8-1.3-1.2-1.3-1.2-1-1.5-1.3-1.6-1.2-1.8-1-2 .8-.5 1 2 1.2 1.6 1.2 1.7 1.2 1.4 1 1.3 1.3 1 1.2 1 1.3.7 1.2.6 1.2.5 1.3.5 1.2.2h3.6l1.2-.3 1-.3 1-.3 1.2-.5 1-.6 1-.7.7-.8 1-1 .6-.7.6-1 .6-1 .6-1 .4-1 .4-1.2.3-1V239h1zm35.6-3l-1 .2h1l-.2 2-.4 2-.6 1.6-.6 1.7-.8 1.6-1 1.3-1 1.3-1 1-1.3 1-1.3 1-1.3.8-1.3.6-1.5.6-1.5.3-1.5.2h-1.5l-1.6.2-1.4-.2-1.6-.2-1.5-.3-1.5-.5-1.4-.6-1.4-.7-1.4-1-1.3-1-1.2-1-1-1.2-1-1.4-1-1.4-1-1.6-.6-1.6-.5-1.8 1-.3.5 1.7.6 1.6.8 1.5 1 1.3 1 1.3 1 1.2 1.2 1 1.2 1 1.3.8 1.3.7 1.4.5 1.4.5 1.4.3 1.5.2h4.4l1.5-.3 1.4-.4 1.3-.5 1.3-.5 1.3-.7 1-1 1.2-.8 1-1 1-1.3 1-1.4.6-1.4.7-1.7.5-1.7.4-1.8.2-2h1zm35.5 3l-1 .2h1l-.4 1.8-.7 1.6-1 1.6-1 1.4-1 1.4-1 1.2-1.3 1-1.2 1-1.4 1-1.3.6-1.5.6-1.4.5-1.6.3-1.5.2-1.5.2h-1.6l-1.5-.2-1.4-.3-1.5-.4-1.4-.6-1.4-.6-1.3-.8-1.4-1-1.2-1-1-1-1.2-1.3-1-1.4-.7-1.7-.7-1.7-.5-1.7-.4-2-.4-2 1-.2.3 2 .3 1.8.5 1.7.6 1.6.8 1.3 1 1.4.8 1.2 1 1 1.2 1 1.2.8 1.3.7 1.3.6 1.4.6 1.4.3 1.4.2h4.5l1.4-.2 1.5-.3 1.4-.5 1.3-.5 1.3-.7 1.3-.8 1-1 1.2-1 1-1 1-1.4 1-1.3.7-1.5.6-1.6.5-1.7h1zm31 2h-1l1 .2-1.2 2-1.2 1.7-1.2 1.6-1.2 1.5-1.3 1.2-1.4 1.2-1.3 1-1.3.7-1.3.6-1.3.5-1.4.5-1.3.2H530l-1.3-.3-1.2-.3-1.2-.4-1-.5-1-.6-1-.7-1-.8-1-1-.7-1-.8-1-.6-1-.6-1-.5-1.2-.3-1.2-.3-1.2-.2-1.3v-1l1-.2v1.2l.2 1.2.3 1 .4 1.2.5 1 .6 1 .7 1 .7 1 .7 1 1 .8.8.7 1 .6 1 .6 1 .5 1 .4 1 .4 1.3.2 1.2.2h2.4l1.2-.3 1.2-.4 1.3-.4 1.2-.6 1.3-.7 1.2-1 1.2-1 1.2-1.2 1.2-1.3 1.2-1.6 1-1.6 1.2-2 1 .2zm-1-.2l.8-1.5.2 1.6h-1zm27.2 3.2h-1l1 .3-1.4 1.5-1.3 1.4-1.2 1.2-1.3 1-1.2 1.2-1.2 1-1.2.8-1 .8-1.2.6-1 .6-1.2.4-1 .4-1 .2-1 .2h-2l-1-.3h-.8l-.8-.5-.8-.5-.7-.6-.8-.7-.6-.8-.6-1-.6-1-.5-1-.5-1-.4-1.4-.3-1.3-.3-1.4-.2-1.6-.3-1.6 1-.2.2 1.6.2 1.5.3 1.3.3 1.3.4 1.2.4 1 .5 1 .5 1 .6.8.6.7.6.6.6.5.7.6.6.3.8.2h.8l.8.2h.8l1-.2 1-.2.8-.3 1-.4 1-.6 1.2-.6 1-.6 1.2-.8 1.2-1 1-1 1.4-1.2 1.2-1.2 1.3-1.4 1.3-1.5 1 .4zm-1-.4l1-1v1.4l-1-.4zm19 4.8l.7.7-1 1.2-1 1-1 1-1 1-1 1-.8.7-1 .6-.8.6-.8.4-1 .4-.7.3-1 .3-.7.2h-1.5l-.7-.2-.6-.3-.6-.3-.6-.4-.6-.5-.5-.6-.4-.7-.4-.8-.4-.8-.3-1-.3-1-.3-1-.3-1-.2-1.3V246l-.2-1.3v-1.3h1v2.6l.2 1.3.2 1 .2 1.2v1l.4 1 .4.7.3.8.5.6.4.5.4.5.4.5.5.3.5.3.6.3h.6l.6.2h.6l.7-.2h.6l.7-.4.8-.5 1-.4.7-.5 1-.6.7-1 1-.7.8-1 1-1 1-1 1-1.2zm4-10.7v-1l.6.4v2.9l-.2.4v.7l-.2.4v.5l-.2.4v.3l-.2.4v.3l-.3.4v.4l-.2.4-.2.4v.3l-.3.3-.2.4-.2.3-.2.4-.2.3-.2.4-.2.4-.2.3-.2.4-.2.4-.3.3-1-.6.3-.2.3-.3.2-.3.2-.4.2-.3.2-.3.2-.3v-.5l.3-.3v-.3l.2-.5.2-.3v-.4l.3-.3v-.4l.2-.3v-.7l.2-.4v-.3l.2-.4v-.5l.2-.4v-1l.2-.4v-1.8l.5.5zm0-1h.6v.4l-.5-.5zm0 0v1-1zm0 1z" fill="#21231e"/> - <path d="M482 263h-22.5l-1.3.2H451l-1.3.2h-4.4l-1.2.2h-2.3l-6.3.4h-.3c-3 0-6 .3-9 .4h-.8l-18.2 1.3h-.2a965 965 0 0 0-26.4 2.4c-5 .6-6-5.3 0-6a960.5 960.5 0 0 1 26.3-2.2 983.7 983.7 0 0 1 37-2.2h2.4l15.4-.5h16.8a1082.3 1082.3 0 0 1 7.2 0h16.6l15.2.5h3.3a984 984 0 0 1 37 2.3 960.5 960.5 0 0 1 26.2 2c5.8.7 5 6.6 0 6a965.6 965.6 0 0 0-26.4-2.3h-.3a978.4 978.4 0 0 0-18.3-1.2h-.6l-9.2-.5h-.3c-2.2 0-4.3-.2-6.4-.3h-2.3l-1.2-.2h-4.5l-1.3-.2H506l-1-.2h-23z" fill="#edb92e"/> - <path d="M482 105c9.6 0 17.3 7.8 17.3 17.4 0 9.5-7.7 17.3-17.2 17.3-9.3 0-17-7.8-17-17.3 0-9.6 7.7-17.3 17-17.3z" fill="#0c4076"/> - <path d="M485.3 85c1.6-.2 3-1.5 3-3.2 0-1.7-1.4-3-3-3.2 0-1.7-1.4-3-3.2-3-1.6 0-3 1.3-3 3-1.6 0-3 1.5-3 3.2a3 3 0 0 0 3 3v6.5h-5.5c0-1.7-1.4-3-3-3-1.8 0-3 1.3-3.2 3-1.7 0-3 1.4-3 3 0 1.8 1.3 3.2 3 3.2 0 1.7 1.4 3 3 3 1.8 0 3.2-1.2 3.2-3h5.5V119h6.3V97.6h5.5c0 1.7 1.4 3 3 3 1.8 0 3-1.4 3.2-3 1.7 0 3-1.5 3-3.2 0-1.7-1.3-3-3-3 0-1.8-1.4-3.2-3-3.2-2 0-3.2 1.4-3.2 3h-5.5V85z" fill="#edb92e"/> - <path d="M487.8 81.8h1v1h-.2v.5h-.2v.3l-.2.3-.2.2v.2h-.2l-.2.2-.2.2h-.2v.2h-.2l-.2.2h-.2v.2h-.8l-.2.2h-.3v-1h.7V84h.2l.3-.2h.2v-.2h.2v-.2l.2-.2V83h.2l.2-.2v-.4l.2-.2v-.4zm-3-3.2h1l-.5-.5h.2l.3.2h.4l.3.2h.3l.2.2.2.2h.2v.2h.2l.2.2.2.3.2.2v.2h.2v.4h.2v.5l.2.2v.7h-1V81h-.2v-.4l-.2-.2V80h-.4v-.2h-.2v-.2h-.2l-.3-.2h-.2V79h-.8l-.4-.6zm.4.5h-.4v-.4l.4.5zm-3-3v-1h.7l.2.2h.2l.3.2h.2l.2.2.2.2h.2v.3l.2.2.2.3.2.2v.2h.2v.4h.2v.8h.2v.3h-1V78h-.2v-.5h-.2v-.2l-.2-.2-.2-.2-.2-.2h-.2v-.2h-.2l-.2-.2h-.4l-.3-.2h-.4zm-3.2 3v-1l-.5.6v-.8l.2-.2V77h.2v-.6h.2v-.2l.2-.2.2-.2.2-.2h.2v-.2h.3v-.2h.3l.3-.2h.4l.2-.2h.4v1h-.5v.2h-.3l-.2.2h-.2v.2h-.2v.2h-.2v.2l-.2.2v.2h-.2v.5h-.2v1l-.6.5zm.5-.4v.5h-.5l.5-.4zm-3 3.2h-1V81l.2-.3v-.5l.2-.2v-.2l.2-.2.2-.3.2-.2h.2l.2-.2h.2v-.2h.3v-.2h.5l.3-.2h.7v1h-.7l-.2.2h-.2l-.2.2-.2.2-.2.2-.2.2v.2h-.2v.4l-.2.2v.8zm3 3h-1l.5.6h-1V85h-.7v-.2h-.3v-.2h-.2l-.2-.2-.2-.2V84h-.2v-.2l-.2-.2-.2-.3v-.5h-.2v-1h1v1h.2v.4h.2v.2h.2v.2l.2.2h.2v.2h.2l.3.2h.7v.2h.2l.5.5zm-.5-.4h.5v.5l-.5-.6zm-.5 7V85h1v6.3l-.5.5-.5-.5zm1 0v.4h-.5l.5-.5zm-6-.6h5.5v1h-5.5l-.5-.5.5-.5zm0 1h-.5v-.5l.5.5zm-3-3v-1h1.2v.2h.3l.3.2.3.2.3.2v.2l.2.2.2.3.2.3.2.3v.4l.2.2v.8h-1v-.7l-.2-.2V90h-.2v-.2h-.2v-.2l-.2-.2-.2-.2h-.2V89h-.4l-.2-.2h-.8zm-3.2 3v-1l-.5.4v-.8l.2-.3V90l.2-.3v-.2h.2v-.2l.2-.2h.2v-.3h.2l.2-.2.2-.2h.2V88h.7v-.2h1.1v1h-1l-.2.2h-.2v.2h-.2v.2h-.2l-.2.2v.2h-.2v.4h-.2v.8l-.2.2v.3l-.5.5zm.5-.5v.5h-.5l.5-.5zm-3 3h-1V93h.2v-.2h.2v-.3l.2-.3.3-.3v-.2h.2v-.2h.2v-.2h.2l.2-.2h.2V91h.7l.2-.2h.8v1h-.7l-.2.2h-.2v.2h-.2v.2h-.2l-.2.2-.2.2v.2h-.2v.5h-.2v.7zm3 3.2h-1l.5.5h-1v-.2h-.5l-.2-.2h-.2v-.2h-.2l-.2-.2-.2-.2v-.2h-.3v-.2l-.2-.2V96h-.2v-.4l-.2-.3v-.8h1v.9h.2v.2l.2.3h.2v.2h.2v.2h.2v.2h.2l.2.2h.5v.2h.4l.6.5zm-.5-.5h.5v.5l-.5-.5zm3 3v1h-1l-.2-.2h-.3v-.2h-.3v-.2h-.2l-.2-.2-.2-.3v-.2h-.2v-.3h-.2V99h-.2v-.5l-.2-.2V98h-.2v-.5h1v.7h.2v.4h.2v.2l.2.2v.2h.2v.2h.2v.2h.2l.2.2h.2l.3.2h.6zm3.2-3v1l.5-.4v.8l-.2.2v.3h-.2v.3l-.2.3-.2.2-.2.2-.2.2-.3.2-.2.2h-.2l-.2.2h-.2l-.3.2h-.8v-1h.9v-.2h.2l.2-.2h.2v-.2h.2l.2-.2V99h.2v-.2l.2-.3v-.2l.2-.2v-.4l.5-.5zm-.5.6V97h.5l-.5.6zm6 .5h-5.5v-1h5.5l.5.6-.5.5zm0-1h.5v.6l-.5-.5zm-.5 22V97.6h1V119l-.5.5-.5-.5zm.5.5h-.5v-.5l.5.5zm6.3 0H479v-1h6.3l.5.5-.5.5zm.5-.5v.5h-.5l.5-.5zm0-21.4V119h-1V97.6l.5-.5.5.6zm-1 0V97h.5l-.5.6zm6 .5h-5.5v-1h5.5l.5.6-.5.5zm0-1h.4v.6l-.4-.5zm3 3v1h-1l-.3-.2h-.2l-.3-.2-.2-.2h-.2v-.2h-.2l-.2-.2v-.2h-.2v-.2l-.2-.2V99h-.2v-.2h-.2v-1l-.2-.2h1v.4l.2.2v.2l.2.3v.2h.2v.2h.2l.2.2v.2h.2l.3.2h.2v.2h1.1zm3.2-3v1l.5-.5v.7h-.2v.5l-.2.3v.4h-.2v.3h-.2v.2h-.2v.2h-.3v.2l-.3.2h-.3l-.2.2h-.3l-.2.2h-.8v-1h.9v-.2h.2v-.2h.2l.2-.2.2-.2V99h.2v-.2l.2-.2v-.2l.2-.2v-.6l.6-.6zm-.5.5V97h.5l-.5.5zm3-3h1v.9l-.2.3v.2h-.2v.6h-.2l-.2.2v.2h-.2v.2h-.3v.2h-.2v.2h-.3l-.3.2h-.2l-.3.2h-.7v-1h.8V97h.2v-.2h.2l.2-.2.2-.2h.2V96l.2-.3v-.2h.2v-.7l.2-.3zm-3-3.2h1l-.5-.6h.7l.2.2h.4l.3.2.3.2.3.2.2.2.2.3.2.2v.5h.2v.3h.2v.7l.2.3v.4h-1v-.6h-.2v-.4l-.2-.2-.2-.2v-.2h-.2l-.2-.2-.2-.2h-.2V92h-.5l-.2-.2h-.5l-.5-.5zm.5.5h-.5v-.5l.5.5zm-3-3v-1h1.1l.2.2h.4v.2h.3v.2l.3.2.2.3h.2v.3h.2v.4l.2.2v.4h.2v.7h-1v-.8h-.2V90l-.2-.2-.2-.2-.2-.2-.2-.2h-.2V89h-.5v-.2h-.6zm-3.2 3v-1l-.6.5v-.9l.2-.2V90l.2-.3.2-.3.2-.3h.2v-.2l.2-.2h.2v-.2h.2l.2-.2h.3l.2-.2h.3l.2-.2h1v1h-1l-.3.2h-.2v.2h-.2l-.2.2v.2l-.2.2-.2.2v.2l-.2.2v.7l-.7.6zm.5-.5v.5h-.6l.6-.5zm-6-.5h5.5v1h-5.5l-.5-.5.5-.5zm0 1h-.5v-.5l.5.5zm.5-7v6.5h-1V85l.4-.6.6.5zm-1 0v-.4h.4l-.4.5zm.5 0v-.4.5zm-.5 0v-.4h.4l-.4.5z" fill="#21231e"/> - <path d="M499.8 122.4h-1v-1.7l-.2-1v-.7l-.3-.8-.2-.8-.2-.8-.3-.8-.3-.7-.4-.6-.4-.7-.4-.7-.5-.7-.5-.6-.5-.6-.6-.5-.7-.6-.6-.6-.6-.5-.5-.6-.7-.4-.7-.4-.6-.4-.8-.3-.7-.4-1-.3-.7-.2h-.8l-.8-.2h-.8l-1-.2h-1v-1h2l.8.2h1l.8.3.8.4.8.2.8.4.8.3.8.4.7.4.7.6.7.5.7.6.6.6.6.6.6.6.6.6.5.7.5.7.5.7.4 1 .4.6.4.8.3.8.3 1 .3.7.2.8v1l.2.7v2zM482 140.2v-1h1.8l1-.2.7-.2.8-.2.8-.2 1-.3.6-.2.8-.3.7-.4.8-.3.7-.4.6-.5.7-.5.6-.5.6-.6.5-.5.5-.6.5-.6.5-.6.4-.7.4-.6.4-.8.3-.7.3-1 .3-.6.3-.8.2-.8v-1l.2-.7v-1.6h1v2.8l-.2.8-.2.8-.3 1-.3.7-.3.8-.3.8-.3 1-.4.6-.5.7-.5.7-.5.7-.6.6-.6.7-.6.6-.6.5-.7.6-.7.5-.7.6-.7.4-.8.4-.8.4-.8.3-.8.4-.8.2-1 .2-.8.2h-.8l-1 .2h-1zm-17.5-17.8h1v1.8l.2.7v.8l.3.8.2.8.3.7.3 1 .3.6.5.8.4.7.3.8.5.6.5.6.5.7.6.5.5.6.5.5.7.5.6.5.7.4.7.4.7.5.7.3.7.3.8.4.8.2.8.2.8.2h1.8l.7.2v1h-1.8l-.7-.2-1-.2-.8-.2-.8-.2-1-.3-.7-.2-.8-.4-.8-.4-.7-.4-.7-.5-.7-.4-.7-.5-.7-.4-.7-.6-.5-.7-.5-.6-.5-.7-.5-.7-.5-.7-.4-.7-.4-1-.3-.7-.5-.8-.2-.8-.3-1-.2-.7v-1l-.2-.8v-1.8zm17.6-17.8v1h-1.7l-.7.2h-.8l-.8.3-.8.3-.8.3-.7.3-.8.2-.8.4-.7.4-.7.4-.6.5-.7.4-.6.5-.6.5-.6.6-.5.7-.5.6-.5.7-.4.7-.5.7-.4.7-.2.8-.3.8-.3.8-.2.8-.2.8v.8l-.2 1v1.7h-1v-2.8l.2-1 .2-.8.3-1 .2-.8.4-.8.2-.8.4-.7.4-1 .5-.6.5-.7.5-.7.6-.6.6-.6.7-.6.6-.6.6-.5.7-.4.7-.5.7-.3.8-.4.8-.3.8-.4 1-.2.7-.3h1l.8-.2h.8l1-.2h.8z" fill="#21231e"/> - <path d="M499 118.8a17.6 17.6 0 0 1 0 6c-5.5-.2-11.2-.3-17-.3-5.5 0-11.2 0-17 .3a17.5 17.5 0 0 1 .3-6l16.8-.3c5.8 0 11.4.2 17 .3z" fill="#edb92e"/> - <path d="M499.8 122.4h-1V120h-.2v-1l1-.2v1.7l.2.2v1.6zm-.7 3l.2-1-.6.3v-.8l.2-.2v-1.1h1v2.2h-.2l-.5.5zm.6-.5v.3h-.5l.6-.4zm-17.5 0v-1H494l.4.2h4.8v1h-10.6l-.5-.2h-6zm-17.4 0l1-.3-.5-.4h4.7l.4-.2H482v1h-11l-.5.2H465l-.5-.3zm.6.3h-.5v-.4l.5.3zm-.7-3h1v2.4l-1 .3v-2.6zm.8-4v1l.5-.3v.8l-.2.2v2.5h-1v-3h.2v-.4l.5-.5zm-.5.5v-.4h.5l-.5.4zm17.3-.8v1h-9.1l-.5.2H466l-.7.2v-1h2.5l.5-.2h9l.5-.2h4.2zm17.5.8l-1 .2.4.4h-3.6l-.5-.2h-10.3l-.5-.2h-2.1v-1h10l.5.2h6.1l.5.6zm-.5-.5h.4v.5l-.4-.5z" fill="#21231e"/> - <path d="M468.8 133.2c-3.6-2.3-4.3 1.2-4.2 4.7.4 13.2 3 25.8-.6 42-1.4 6.4-3.7 10-1.5 11.3 5.7 3.2 8.3 6 7.4 7.7 1.5 3.2 5.7 2.6 12 1.6 6.6 1 10.7 1.6 12.4-1.6-1-1.6 1.7-4.5 7.4-7.7 2.2-1.2 0-5-1.5-11.3-3.5-16.2-1-28.8-.7-42 0-3.6-.5-7-4-4.8-7.3 4.4-19.5 4.5-26.8 0z" fill="#edb92e"/> - <path d="M465 138h-1v-1.5l.2-.3v-1.6l.2-.3v-.3h.2v-.4l.2-.2v-.3h.2l.2-.3.2-.2.2-.2h.2l.2-.2h1.8l.4.2.4.2h.3l.4.3-.4 1-.4-.3h-.2l-.3-.2h-.3l-.2-.2h-1.2v.2h-.2v.2l-.2.2v.2l-.2.2v.4l-.2.3v.4l-.2.2v2.5zm-.5 42l-1-.2.3-1.5.3-1.4.3-1.6.2-1.4.2-1.5.2-1.4v-2.5l.2-1.4V154l-.2-1.2v-2.5l-.2-1.2V148l-.2-1.2v-1.2l-.2-1.3V142l-.2-1.3V138h1v3.5l.2 1.2v2.6l.2 1.2v1.3l.2 1.2v2.5l.2 1.2v1.3l.2 1.3v13.3l-.2 1.4v1.4l-.3 1.5-.2 1.4-.2 1.6-.2 1.4-.2 1.5-.3 1.6zm-1.8 11l-.4.8-.3-.2-.2-.2-.2-.2-.2-.2v-.2l-.2-.3V188l.2-.3v-.4l.2-.3v-.4l.2-.4v-.5l.3-.4.2-.4v-.5l.3-.3v-.5l.3-.5v-.6l.3-.4.2-.6v-.6l.3-.6 1 .3-.2.7v.6l-.3.5v.6l-.2.5-.2.4v.6l-.3.4v.5l-.3.4v.4l-.2.4v.4l-.2.4v.4l-.2.3v.4l-.2.4v1.9l.2.2.2.2zm7.6 7.8l-1 .4v-.4h.2v-1l-.2-.2v-.2l-.2-.2v-.4l-.3-.2-.2-.2-.2-.3h-.3l-.2-.4-.3-.2-.3-.3h-.3l-.4-.4-.4-.3-.3-.2-.5-.2-.4-.3-.3-.3-.5-.3-.5-.3-.4-.3-.5-.3-.6-.2.5-1 .6.4.5.3.5.3.4.3.5.4.4.3.5.3.5.2.3.3.4.3.4.3.3.4.2.2.3.3.3.2.2.2.2.3.3.2.2.2v.2l.3.3v.2l.3.2v.5l.2.2v1.1l-.2.3v-.5zm-1 .4v-.4.4zm13 1l-.2 1h.2-1.2l-.5.2h-1.2l-.6.2h-1l-.5.2h-4.7l-.4-.2h-.3l-.3-.2-.3-.2-.3-.2-.2-.2-.3-.2-.2-.2-.3-.3h-.2l-.2-.4-.2-.4 1-.4v.2l.2.3.2.2.2.2.2.2h.2l.2.2h.2l.3.2h.3l.3.2h.3l.2.2h4.3l.5-.2h1l.6-.2h1.1l.5-.2h.8zm-.2 0h.2zm12-1l1-.4v.4l-.3.4-.2.3h-.2l-.3.4-.2.2-.3.2-.3.2-.3.2-.4.2h-.3l-.3.2h-.4l-.4.2H486l-.6-.2h-.5l-.6-.2h-1.2l-.5-.2h-.6l.2-1h1.8l.5.2h.6l.6.2h1.1l.5.2h4.2l.3-.2h.3l.2-.2h.3l.2-.2.2-.2.3-.3.2-.2.2-.2v-.3l.3-.2v.5zm1-.4v.4-.4zm6.5-8l.5 1-.5.3-.5.4-.5.3-.4.2-.4.2-.4.3-.4.3-.4.3-.4.3-.3.3-.3.3h-.3l-.2.4-.3.2-.3.3h-.2l-.2.4-.2.2-.2.2v.2l-.3.2v.7h-.2v1.2l-.8.5v-.2l-.2-.2v-1.3l.2-.2v-.3l.3-.3v-.3l.3-.2.2-.3.2-.3.3-.3.2-.2.3-.3.3-.4.4-.2.3-.3.4-.2.4-.3.4-.3.4-.2.4-.3.5-.3.5-.3.5-.2.5-.3.5-.3.5-.3zm-1.7-10.7l1-.2v.6l.3.6.2.6.2.5v.7l.3.5v.5l.2.4v.6l.2.5.2.5v.4l.2.3v.4l.2.4v.5l.2.3v.7l.2.3v1.8l-.2.3v.2l-.3.3h-.2l-.2.3-.3.2-.5-1h.2l.2-.2v-.4h.2v-2.5l-.2-.3v-.3l-.2-.3v-.4l-.2-.4v-.4l-.2-.4v-.4l-.3-.5v-.6l-.2-.4v-.6l-.3-.5v-.6l-.3-.6v-.5l-.2-.6-.2-.6zm-.7-42h1v5.9l-.2 1.4v1.2l-.2 1.2v1.3l-.2 1.3v2.5l-.2 1.2v2.6l-.2 1.2v9.3l.2 1.4v1.4l.2 1.3.2 1.5.2 1.5.2 1.4.2 1.5.3 1.3.3 1.5-1 .3-.3-1.5-.3-1.5-.2-1.4-.2-1.5-.2-1.3-.2-1.5v-1.4l-.2-1.4V167l-.2-1.3v-10.3l.2-1.3v-2.5l.2-1.3V149l.2-1.2v-1.3l.2-1.2V143l.2-1.2V138zm-3.3-4.4l-.5-1h.4l.3-.2.2-.2h.3l.4-.2h1.2l.3.2h.2l.2.3v.2l.2.2h.2v.4l.2.2v.3h.2v.7l.2.3v1.5l.2.3v1.1h-1v-2.4l-.2-.3v-.8l-.2-.3v-.4l-.2-.2v-.2h-.2v-.2h-.2v-.2h-.2v-.2h-1.1l-.2.2h-.3l-.3.2-.3.2zm-27 0l.4-1 .8.5.7.5.7.4.7.2.7.3.8.2.8.3 1 .2.7.2 1 .2h.7l1 .2h.8l1 .2h4.6l.7-.2h1l.8-.3h.8l1-.3.7-.2.8-.3.8-.2.8-.3.7-.4.8-.3.7-.4.7-.3.5 1-.7.3-.7.4-.8.4-.7.3-1 .4-.7.3-.7.3-1 .2-.7.2-1 .2h-.8l-1 .2h-1l-.8.2h-4.6l-1-.2h-.8l-1-.2-.8-.2-1-.2-.7-.2-.8-.3-.8-.3-.8-.3-.8-.2-.8-.4-.7-.4-.7-.4z" fill="#21231e"/> - <g id="b"> - <path d="M363 212c-2-4-.3-9.8.3-11 .3-.8-.6-2.2-1-2.8-13-18.3-13.2-20-4.3-26.8 8-6 26.2-12 39.2-16.2 2.7-2 4.4-5 6.8-7.2-25 1.8-52 12-65.5 23.8-7.2 6.2 1.5 19 12.2 38 6.7 5 9.8 7 12.3 2.3z" fill="#edb92e"/> - <path d="M362.8 200.7l1 .4v.2l-.2.2v.3l-.2.3v.5l-.2.2v.6l-.2.4v.7l-.2.3v1.6l-.2.4v2.5l.2.4v.4l.2.4v.4l.2.4v.3l.3.4-1 .3v-.4l-.3-.5v-.4l-.2-.4v-.4l-.2-.5v-.8l-.2-.6v-2.9l.2-.4v-1.2l.2-.3v-.4l.2-.2v-.6l.2-.3v-.6l.2-.2v-.2l.2-.2zm-1-2.2l1-.6v.2h.2v.4h.2v.4h.2v.2l.2.2v.4h.2v1.2l-1-.3v-.6l-.2-.2v-.2l-.2-.2v-.2l-.2-.2v-.2h-.2v-.2zm-4-27.5l.5 1-.8.5-.7.6-.7.6-.5.6-.6.5-.6.5-.5.6-.5.5-.3.4-.3.5-.3.5v.5l-.3.5v1.7l.2.6.2.8.2.7.4.8.4.8.4 1 .5 1 .6 1 .7 1 .7 1.3 1 1.2.7 1.3 1 1.4 1 1.5 1 1.5 1.3 1.7-.8.5-1.3-1.7-1-1.5-1-1.5-1-1.4-1-1.3-.8-1.2-.8-1.2-.7-1-.6-1-.7-1-.4-1-.6-1-.3-.7-.2-1-.2-.7v-.7l-.2-.7v-1.4l.2-.6.2-.6.2-.6.3-.6.4-.6.5-.5.5-.5.5-.5.6-.6.7-.5.7-.7.7-.6.7-.7zm39-16.2l.7.8h-.2l-1.2.5-1.2.5-1.2.4-1.4.3-1.3.4-1.4.5-1.4.4-1.3.5-1.5.5-1.4.5-1.3.5-1.3.5-1.4.5-1.4.5-1.3.5-1.4.5-1.4.5-1.3.6-1.3.6-1.3.5-1.2.7-1.2.5-1.2.6-1 .5-1.2.6-1 .4-1 .6-1 .6-1 .5-1 .7-.7.6-.7.6-.6-1 .8-.5 1-.6.8-.7 1-.6 1-.6 1-.4 1-.6 1.2-.6 1.2-.5 1-.7 1.4-.6 1.3-.5 1.3-.6 1.3-.5 1.2-.4 1.4-.5 1.3-.5 1.3-.5 1.4-.5 1.3-.5 1.4-.5 1.4-.5 1.4-.4 1.4-.5 1.3-.4 1.3-.4 1.3-.4 1.3-.5 1.2-.4 1.3-.5 1.3-.4 1.2-.3zm.7.8h-.2.2zm6.6-7v-1l.4.8-.2.2-.3.2-.3.3-.2.3-.2.2-.2.2v.3l-.3.2-.2.2-.2.2-.2.3-.3.3-.2.3-.2.2-.2.3v.3l-.3.2-.2.3-.2.2-.3.2-.2.3-.2.2-.2.2h-.2l-.3.4-.3.2-.2.2-.3.2-.2.2-.3.2-.2.2-.6-.8v-.2l.3-.2.3-.2.2-.2.2-.2.2-.2.3-.2.2-.2.2-.2v-.2l.3-.3.2-.2.2-.2.2-.2v-.2l.3-.2.2-.2.2-.3.2-.3v-.3l.3-.2.2-.2.2-.3.2-.2v-.2l.4-.3.2-.2.2-.2.2-.3.2-.2h.3l.2-.3.4.8zm0-1l1.4-.2-1 1-.4-1zM338.8 172l-.7-.8 1.5-1 1.4-1.2 1.4-1 1.5-1.2 1.5-1 1.7-1 1.7-1 1.7-1 2-1 1.8-1 2-1 2-1 2-.8 2-1 2.2-.7 2-.8 2.3-.8 2.3-1 2.2-.6 2.3-.7 2.3-.6 2.4-.5 2.3-.6 2.4-.7 2.4-.5 2.4-.4 2.4-.4 2.4-.4 2.3-.3 2.3-.3 2.4-.3 2.3-.2v1l-2.3.2-2.3.3-2.3.3-2.3.3-2.4.4-2.3.4-2.4.4-2.3.5-2.3.6-2.3.5-2.3.6-2.3.7-2.2.7-2.2.7-2.2.8-2.2.8-2.2.8-2 1-2 .7-2.2 1-2 1-2 1-1.8.8-1.8 1-1.8 1-1.7 1-1.6 1-1.5 1-1.6 1-1.5 1.2-1.4 1-1.2 1.2zm12.2 37.3l-.5.8-.2-.2-1-1.6-1-1.8-1-1.7-1-1.7-.8-1.7-1-1.6-.8-1.5-.8-1.5-1-1.5-.7-1.5-.8-1.4-.7-1.3-.7-1.4-.5-1.3-.6-1.3-.6-1.2-.4-1.2-.5-1.2-.3-1-.3-1-.4-1.2v-1l-.2-1v-2.8l.3-.8.3-.8.4-.7.5-.8.5-.7.6-.6.8.8-.6.5-.5.6-.4.7-.3.6-.3.7-.2.8v4.5l.4 1v1l.5 1 .4 1 .4 1.3.5 1.2.4 1.2.6 1.3.7 1.3.7 1.4.7 1.4 1 1.4.7 1.5 1 1.5.8 1.5 1 1.6.8 1.7 1 1.7 1 1.7 1 2 1 1.6h-.3zm-.5.8l-.2-.2.2.3zm12.5 1.3v1l.5-.2-.3.4-.2.4-.3.4-.3.3-.3.2-.2.3-.3.2-.3.2h-.3l-.5.2h-2.1l-.4-.2-.5-.2-.4-.2-.3-.2-.5-.2-.4-.3-.5-.3-.5-.3-.4-.4-.6-.3-.5-.3-.5-.4-.6-.4-.5-.4-.6-.4-.5-.5.5-.8.7.4.5.3.6.5.6.3.5.5.4.4.5.2.4.3.4.3.5.3.4.3.4.2.5.2.4.2h.5l.3.2h1.5l.2-.2h.3l.2-.3.2-.2.3-.2.2-.3v-.3l.4-.4.2-.4.4-.4zm-.4.3v-.4h.4l-.4.3zm.4.6v-1l.5.3-.5.6zm.5-.7l.3.6h-.8l.5-.7z" fill="#21231e"/> - <path d="M359 213.6a34 34 0 0 1-1-4.7c-.7-2.8-.4-5.7.5-8.3-3-4.2-6.4-8.8-8.8-13.3-1.7-3.3-3-7-2-10.6 1-4 4.5-6.6 7.6-9 3.7-2.8 8.6-5.3 13.6-7.5 11-4.6 20-7 26.5-7l-4.2 3.8c-12 4-26.4 9.2-33.3 14.5-9 6.8-8.6 8.4 4.3 26.7.4.6 1.3 2 1 2.7-.6 1.2-1.8 7.2 0 11.4-1 2-2.6 1-4.2 1.2z" fill="#edb92e"/> - <path d="M357.4 209l1-.2v.7l.2.2v.7h.2v.8l.2.3v.3l.2.3v.7h.2v.6h.2l-1 .4v-.3l-.2-.3v-.2l-.2-.3v-.5l-.2-.3v-.6h-.2v-.5l-.2-.3v-.7l-.2-.3v-.2zm1-.2zm-.4-7.8l1-.6v.5l-.2.4v.2l-.2.2v1l-.2.2v.8l-.2.2v4.7l.2.3-1 .2v-.6l-.2-.2V203h.2v-1l.2-.2v-.5l.2-.2v-.2l.2-.3v.5zm1-.6v.5-.6zm-9.7-12.8l1-.5v.6l.3.4.3.4v.4l.4.5.2.4.3.4v.5l.4.4.3.4.2.4.2.4.3.4.2.4.3.5.3.4.3.3.3.4.2.4.2.5.3.5.3.4.3.4.3.4.3.4.2.4.3.4.2.4.3.4.3.4.3.4.3.4-1 .6-.2-.4-.3-.4-.3-.4-.3-.4-.4-.4-.3-.4-.2-.4-.2-.4-.3-.4-.3-.4-.3-.5-.4-.4-.3-.3-.3-.4-.2-.4-.3-.5-.3-.5-.3-.4-.4-.4-.3-.4-.2-.5-.2-.4-.3-.5-.2-.4-.3-.4-.3-.4-.2-.4-.3-.5-.2-.4-.2-.5-.3-.5-.2-.4zm-2-11l1 .4-.2.3v4.1l.2.4v.3l.2.3v.7l.3.3v.4l.2.4v.6l.3.3v.3l.3.3v.2l.3.3v.3l.2.3-1 .6v-.3l-.2-.3-.2-.3v-.3l-.3-.4v-.3l-.3-.3v-.3l-.3-.3-.2-.3v-.3l-.2-.2v-.4l-.2-.3v-.3l-.2-.3v-.7l-.2-.4V180l-.2-.4V178l.2-.2v-.7l.2-.3zm7.7-9.2l.6.8-.3.2-.3.3-.3.2h-.3l-.3.3-.2.3-.2.2-.3.3-.3.3-.3.2-.3.3-.2.2-.3.3-.4.3-.2.2-.3.3v.3l-.4.3-.2.3-.2.2-.3.3-.3.3-.2.3-.2.4v.3l-.3.3-.2.3v.3l-.3.3v.3l-.2.3v.4l-1-.3v-.4l.2-.4v-.4l.2-.4.2-.4v-.3l.3-.4.2-.2.2-.3.2-.3v-.3l.4-.5.2-.3.2-.2.3-.3.4-.3.2-.3.3-.2.2-.2.3-.3.2-.3.3-.2.3-.3.3-.2.3-.3.2-.2.3-.2.3-.3.3-.2h.4l.3-.4.3-.2zm13.7-7.5l.4.8-.4.2-.4.2-.5.2-.5.2-.4.2-.5.2-.4.3-.6.2-.5.2-.5.2h-.5l-.4.3-.5.3-.3.2-.4.2-.5.3-.4.2-.4.2-.4.3-.5.2-.3.2-.4.3-.4.2-.5.2-.4.2-.2.3-.4.2-.4.2-.4.2-.3.3-.4.3-.4.2-.6-.8.3-.3h.4l.4-.4.4-.3.4-.2.4-.2.4-.2.4-.3.4-.2.4-.2.4-.2.4-.3.5-.2.5-.2.4-.2.4-.2.4-.3h.4l.5-.3.4-.3.6-.2.4-.2.5-.2.5-.3.4-.2.5-.2h.4l.4-.3.5-.2.5-.2.4-.2h.5zm0 0zm27-6.4l-.6-.7.5.7H394l-.6.2h-1.8l-.7.2h-.8l-.7.2h-.7l-.8.3-.8.2h-.7l-.8.2-.8.2-1 .2-.8.2-.8.3-1 .3-.8.3-1 .3-.8.2-1 .3-.8.3-1 .3-1 .5-1 .3-.8.4-1 .4-1 .4-1 .4-1 .4-.5-1 1-.4 1-.4 1-.4 1-.4 1-.3 1-.5 1-.3 1-.4 1-.3.8-.3 1-.3.8-.4 1-.2.8-.3h1l.8-.4.8-.2.8-.2.8-.2h.8l.8-.3.8-.2h.7l.7-.2h.8l.7-.2h1.4l.5-.2h1.9l.4.8zm-.3-1h1.4l-1 1-.4-1zm-4.4 4l4-3.7.8.6-4 3.8-.3.2-.5-1zm.7.8l-.2.2.2-.2zM358.3 172l-.6-1 .7-.5.7-.5 1-.5.7-.5.8-.5 1-.5.8-.4 1-.5 1-.4.8-.5 1.2-.4 1-.5 1-.3 1-.5 1.2-.5 1-.4 1.3-.5 1-.4 1.2-.5 1-.5 1.3-.5 1-.4 1.3-.4 1.2-.5 1.2-.4 1.2-.4 1.2-.5 1-.4 1.3-.3 1.2-.4 1-.3 1.2-.4.3 1-1.2.3-1 .3-1.3.4-1 .4-1.3.5-1.2.4-1.2.3-1.2.4-1 .4-1.2.6-1.2.4-1 .4-1.3.5-1 .3-1.3.5-1 .4-1.2.5-1 .4-1 .6-1.2.5-1 .5-1 .5-1 .5-1 .5-.8.5-1 .4-.8.4-.8.5-.8.4-.7.5-.7.4-.7.5zm4.4 26l-.8.5-1.3-1.7-1-1.5-1-1.5-1-1.4-1-1.3-.8-1.2-.8-1.2-.7-1-.6-1-.7-1-.4-1-.5-1-.4-.7-.2-1-.2-.7v-.7l-.2-.7v-1.4l.2-.6.2-.6.2-.6.3-.6.4-.6.5-.5.5-.5.5-.5.6-.6.7-.5.7-.7.7-.6.7-.7.6 1-.8.5-.7.6-.7.6-.5.6-.6.5-.6.5-.5.6-.5.5-.3.4-.3.5-.3.5v.5l-.2.6v2.2l.3.8.3.7.4.8.4.8.4 1 .6 1 .5 1 .7 1 .7 1.3 1 1.2.7 1.3 1 1.4 1 1.5 1 1.5 1.3 1.7zm1 3l-1-.3v-1h-.2v-.2l-.2-.2v-.2h-.2v-.4l.7-.7.2.2v.4h.2v.2l.2.2v.2l.2.2v.4h.2v1.4zm.2 11.6l-1-.5v.6l-.2-.4-.2-.5v-.4l-.2-.4v-.6l-.2-.4v-.5l-.2-.4v-5.4l.2-.4v-.7l.2-.4v-.5l.2-.3v-.4l.2-.2 1 .3v.2l-.2.2v.6l-.2.2v.6l-.2.3v1.1l-.2.4v5.1l.2.4v.8l.3.4v.4l.2.4.2.4v.4zm0-.4v.4-.4zm-5 1v1-1h.2l.2-.2h1.4v.2h1.5l.2-.2h.2v-.2h.2v-.2l.2-.2.2-.3 1 .6-.2.2-.2.2v.2l-.2.2h-.2v.2l-.3.2h-.4l-.2.2h-.3v.2h-3v-1zm0 1v-1l.6.2-.5.7zm.6-.8l.2.7h-.7l.6-.6z" fill="#21231e"/> - <path d="M468 132.2c.3-2.3 0-2-.3 1.6-.3-.7-.8-1-1.4-1-1 0-1.7 1.6-1.8 5.2l.2 2.8c-33-.7-52.7 4.3-57.7 14-4.2 7.8 3 21 13.6 36 1.3 1.8 1.2 1.6 0 3-1.8 2.3-3.8 6-2.3 9.2-6.5 3.5-14.2 4.4-21 1.5-1-3-3.4-4.4-5.4-5.8-.5-.2-2-1-2-1.4l-10.2-31.6c-9.5-30.7 75.3-33.5 88.3-33.5z" fill="#edb92e"/> - <path d="M467.3 134l1-.4-1 .2V132h.2v-1.2l.2-.2.6-.3.3.3v1.6h-1V131l.4.2h.6v-.2 1l-.2.2v1.8h-1zm1 0l-.2 1.6-.7-1.5h1zm-2-.7v-1h.7v.2h.4v.2h.2v.2h.2v.2h.2v.2h.2v.2l-1 .5v-.2h-.2v-.2h-.2v-.2h-.4zm0 0zM465 138h-1v-1.8l.2-.3v-.9l.2-.3v-.7h.2v-.3l.2-.3.2-.3.2-.2h.2v-.2h.2v-.2h.5v1h-.2v.2h-.2v.2l-.2.2v.3l-.2.3v.6l-.2.2v2l-.2.3v.4zm-1 0zm.7 3.3v-1l-.5.5v-2.3h-.2v-.4l1-.2v1.8l.2.2v1l-.5.5zm.5-.5v.5h-.5l.5-.5zM407.4 155l-1-.5.7-1 .7-.8.7-1 .8-.7 1-.8 1-.8 1-.8 1-.7 1.3-.7 1.2-.7 1.4-.6 1.6-.6 1.5-.5 1.7-.7 1.7-.5 1.8-.4 2-.5 1.8-.5 2-.3 2.2-.4 2.2-.3 2.2-.2 2.4-.3 2.4-.2 2.5-.2h2.5l2.7-.2h2.7l2.8-.2h9v1H453l-2.8.2h-2.6l-2.6.2-2.5.2-2.4.2-2.3.3-2.2.2-2.2.3-2 .4-2 .3-2 .4-1.8.4-1.8.4-1.7.5-1.6.5-1.5.6-1.5.5-1.3.5-1.3.7-1.2.6-1 .7-1 .7-1 .7-1 .7-.6.8-.7.8-.6.8-.6 1zm13.6 35.5l-.8.6-1-1.3-1-1.4-1-1.4-1-1.5-.8-1.3-.8-1.4-1-1.3-.7-1.3-.8-1.3-.8-1.4-.7-1.2-.7-1.3-.6-1-.6-1.3-.5-1.2-.5-1.2-.5-1.2-.4-1-.5-1-.3-1.2-.3-1-.3-1-.2-1.2v-1l-.2-1V158l.3-.8.3-1 .2-.7.3-.8 1 .5-.4.7-.2.7-.2.8-.2.8v4.5l.2 1 .3 1v1l.5 1 .3 1.2.4 1 .5 1.2.5 1 .5 1.2.6 1.2.6 1.2.6 1.3.7 1 .7 1.4.8 1.3.8 1.3.8 1.3 1 1.3.8 1.4 1 1.3.8 1.4 1 1.4 1 1.5zm0 3.8l-.8-.7.2-.3.2-.2h.2v-.2l.2-.2v-.4l-.2-.2v-.2h-.2v-.3h-.2v-.3h-.2l.8-.7.2.3.2.3v.2h.2v.4h.2v.2l.2.2v1l-.2.2v.2h-.2v.2l-.2.2-.2.2-.2.3zm-2.5 9l-.4-.8-.2.7v-.3l-.2-.5v-.3l-.2-.3v-3.5l.2-.3v-.3l.2-.4.2-.3v-.3l.2-.3.2-.3v-.3l.3-.2v-.3l.3-.2.2-.3v-.2l.3-.3.2-.2v-.3l.3-.2.2-.2.8.7-.2.2-.2.2v.2h-.3v.3l-.3.3-.2.2v.3l-.3.3v.3l-.2.2-.2.3v.7l-.2.2v.2l-.2.3v.6l-.2.4v2.7l.2.3.2.3-.3.6zm.3-.5v.4l-.3.2.3-.6zm-22 1.8l1-.3-.2-.3.6.2.7.3.5.2.6.2h.8l.6.2.6.2h.7l.6.2h5.7l.7-.2h.5l.7-.3h.6l.7-.2.6-.2.7-.2.7-.2.6-.2.6-.3.6-.3.6-.2.7-.4.6-.3.5 1-.6.2-.7.4-.6.4-.7.2-.6.3-.7.2-.6.2-.6.2-.7.2-.6.2h-.6l-.7.3h-.7l-.6.2h-.7l-.7.2h-5l-.7-.2h-.7l-.6-.3h-.7l-.7-.3-.6-.3-.7-.3-.6-.2-.8-.3-.3-.4zm.4.3l-.2-.2v-.2l.2.3zm-5.6-5.8l.6-1 .2.2.2.2h.2l.2.2.2.2h.2l.2.2v.2h.3v.3h.3l.2.3h.2l.2.3.3.3.2.2.2.2.2.2v.2l.3.2v.2l.3.2.2.2v.2l.3.3.2.2.2.2v.2l.3.3v.3l.2.3-1 .3-.2-.2v-.3h-.2v-.3l-.2-.3-.2-.2v-.2l-.2-.2-.2-.2v-.2l-.3-.2-.2-.2-.3-.3-.2-.2-.3-.3h-.2l-.2-.3v-.2l-.3-.2h-.2v-.3h-.3l-.2-.2h-.2l-.2-.2h-.2l-.2-.3h-.2l-.2-.2h-.2zm-2-1.7l.8-.3h.2v.2h.2l.2.2h.2v.2h.4v.2h.2l.2.2h.2l-.6 1-.2-.2h-.2v-.2h-.4v-.2h-.2l-.2-.2h-.2v-.2h-.2v-.2h-.2v-.2h-.2v-.2zm-10.2-31.7l1-.3.2 1 .3 1 .2.8.3 1 .3 1 .3.8.4 1 .3 1 .3 1 .3 1 .3 1 .3.8.2 1 .4 1 .3 1 .2 1 .3 1 .3 1 .4 1 .3 1 .3 1 .3 1 .5 1 .3 1 .3 1 .5 1 .3 1 .3 1 .4 1.2.4 1 .3 1 .4 1.2-1 .3-.3-1-.2-1.2-.3-1-.4-1-.2-1-.3-1-.3-1.2-.4-1-.3-1-.3-1-.4-1-.3-1-.3-1-.3-1-.4-1-.4-1-.3-1-.4-1-.3-1-.3-.8-.3-1-.4-1-.3-1-.3-1-.3-.8-.3-1-.2-1-.3-1-.3-.8-.3-1-.4-.8-.2-1zm88.2-33.6h1l-.5.5h-5.4l-2.5.2h-2.8l-3 .2-3.3.2-3.5.2-3.7.3-3.8.3-4 .4-4 .5-4 .6-4.2.6-4 .7-4.2 1-4 .8-4 1-3.7 1-3.7 1.3-3.4 1.4-3.3 1.4-3 1.5-2.6 1.6-2.3 1.7-2 2-1.6 1.8-1.2 2.2-.8 2.2-.4 2.3v2.5l.7 2.7-1 .3-.6-2.8v-2.8l.3-2.6 1-2.4 1.2-2.2 1.8-2 2-2 2.5-2 2.7-1.6 3-1.5 3.3-1.6 3.5-1.3 3.6-1 4-1.2 3.8-1 4-1 4-.7 4.2-.6 4.2-.6 4-.6 4-.5 4-.4 4-.4 3.7-.4 3.5-.2 3.3-.2 3-.2h3l2.4-.2h5.4l-.6.4zm1 0v.5h-.5l.7-.5zm-.5 0h-.4.5zm.7 0v.5h-.6l.7-.5z" fill="#21231e"/> - <path d="M405 190.2c3.5 0 6.4 2.8 6.4 6.4 0 3.5-3 6.4-6.4 6.4s-6.4-3-6.4-6.4c0-3.6 3-6.4 6.4-6.4z" fill="#fff"/> - <path d="M412 196.6h-1c0-2.2-1.4-4.4-3.4-5.3a5.8 5.8 0 0 0-2.6-.6v-1c2.3 0 4.6 1.2 5.8 3.2a7 7 0 0 1 1 3.6zm-7 7v-1c2.2 0 4.3-1.4 5.2-3.4.4-.8.7-1.7.7-2.6h1c0 2.3-1.4 4.6-3.4 6a7 7 0 0 1-3.6 1zm-7-7h1c0 2.2 1.4 4.3 3.4 5.3a5.8 5.8 0 0 0 2.6.5v1c-2.3 0-4.6-1.3-5.8-3.3a7 7 0 0 1-1-3.6zm7-7v1c-2.2 0-4.3 1.4-5.2 3.3a6 6 0 0 0-.7 2.6h-1c0-2.4 1.4-4.7 3.4-6a6.8 6.8 0 0 1 3.6-1z" fill="#21231e"/> - <path d="M350.8 203.6c3.2 0 6 2.7 6 6s-2.8 6-6 6c-3.3 0-6-2.7-6-6s2.7-6 6-6z" fill="#fff"/> - <path d="M357.2 209.6h-1c0-2-1-4-2.8-4.8a5.4 5.4 0 0 0-2.6-.7v-1c2 0 4.3 1.3 5.4 3a6.5 6.5 0 0 1 1 3.6zm-6.4 6.4v-1c2 0 4-1.2 4.8-3a5.5 5.5 0 0 0 .6-2.4h1c0 2-1.2 4.3-3 5.4a6.4 6.4 0 0 1-3.4 1zm-6.5-6.4h1c0 2 1.2 4 3 4.8.8.4 1.6.6 2.5.6v1c-2.2 0-4.4-1.2-5.5-3a6.5 6.5 0 0 1-1-3.4zm6.5-6.5v1c-2 0-4 1.3-5 3a5.5 5.5 0 0 0-.5 2.6h-1c0-2.2 1.2-4.4 3-5.5a6.4 6.4 0 0 1 3.5-1z" fill="#21231e"/> - <path d="M345 192.7c3.4 0 6 2.7 6 6s-2.6 6-6 6c-3.2 0-5.8-2.7-5.8-6s2.6-6 6-6z" fill="#fff"/> - <path d="M351.5 198.7h-1c0-2-1.2-4-3-5a5.3 5.3 0 0 0-2.4-.5v-1c2.3 0 4.4 1.2 5.5 3a6.5 6.5 0 0 1 1 3.5zM345 205v-1c2 0 4-1 4.8-2.7a5.5 5.5 0 0 0 .7-2.6h1c0 2.2-1.2 4.3-3 5.5a6.4 6.4 0 0 1-3.4 1zm-6.3-6.3h1c0 2 1.2 4 3 4.8.7.4 1.6.6 2.4.6v1c-2 .2-4.2-1-5.3-3a6.5 6.5 0 0 1-1-3.3zm6.4-6.5v1c-1.8 0-3.7 1-4.6 2.8a5.5 5.5 0 0 0-.7 2.7h-1c0-2.2 1.2-4.4 3-5.5a6.4 6.4 0 0 1 3.4-1z" fill="#21231e"/> - <path d="M339.8 181.7c3.3 0 6 2.7 6 6s-2.7 6-6 6-6-2.7-6-6 2.7-6 6-6z" fill="#fff"/> - <path d="M346.2 187.7h-1c0-2-1.2-4-3-5a5.4 5.4 0 0 0-2.4-.5v-1c2.2 0 4.3 1.2 5.4 3a6.5 6.5 0 0 1 1 3.5zm-6.4 6.4v-1c2 0 3.8-1 4.7-2.7.5-.8.7-1.7.7-2.6h1c0 2-1 4.3-3 5.4a6.4 6.4 0 0 1-3.4 1zm-6.4-6.3h1c0 2 1 4 3 4.8.7.4 1.5.6 2.4.6v1c-2.2 0-4.3-1-5.4-3a6.5 6.5 0 0 1-1-3.3zm6.4-6.5v1c-2 0-4 1.2-4.8 3a5.5 5.5 0 0 0-.6 2.5h-1c0-2.2 1-4.4 3-5.5a6.4 6.4 0 0 1 3.4-1z" fill="#21231e"/> - <path d="M444.3 202.2c3.4-.3 2.5 5.8 2 7.2-1 1.8-1.8 1.8-3 .2-.8-1.3-2.4-7.2 1-7.5z" fill="#edb92e"/> - <path d="M446.6 209.6l-1-.4h.2v-.7l.2-.3v-.5l.2-.3V204h-.2v-.3l-.2-.2v-.2l-.2-.2h-.2l-.3-.2h-.2l-.2-.2h-.3v-1h.7l.3.2h.3l.3.2v.2l.3.3.2.2.2.3v.2l.2.3v.7l.2.3v3.7l-.2.3v.5l-.2.3v.5h-.2zm-3.7.3l.8-.7.2.3v.2h.2v.2h.2v.2h.7l.2-.2v-.2h.2v-.2h.2v-.3l1 .3v.2l-.2.2v.3h-.2v.2l-.2.2-.2.2h-.4v.2H444v-.2h-.2v-.2h-.2v-.2h-.2v-.3h-.2v-.3h-.3zm1.2-8.4v1h-.4v.2h-.3v.2h-.3v.3l-.2.2v.4h-.2v3.2l.2.2v.6l.2.2v.3l.2.2v.2l.2.2v.2h.2l-1 .7v-.5l-.2-.2v-.2l-.2-.4v-.2l-.2-.3v-.2l-.2-.3v-.7l-.2-.3v-3l.2-.3v-.3l.3-.3.2-.2.2-.3h.2l.2-.3.3-.2h.4l.2-.2z" fill="#21231e"/> - <path d="M444.5 205.5c8-.6 6 13.8 4.4 17-2 4.2-4 4.3-6.7.5-2-3-5.8-17 2.2-17.5z" fill="#fff"/> - <path d="M449.4 222.7l-1-.4.2-.3.2-.4v-.4l.3-.5.2-.5v-.6l.2-.6.2-.7V217l.2-.7v-5.1l-.3-.7v-.6l-.3-.7-.3-.6-.3-.5-.3-.5-.3-.4-.3-.4-.4-.4-.5-.2-.5-.2-.5-.2h-1.4v-1h1.5l.6.2.7.2.5.4.6.4.4.4.4.5.4.7.3.6v.7l.3.6.2.7v.7l.3.8v6.3l-.3.7v.7l-.2.6v.6l-.3.6v.5l-.3.5v.4l-.3.3zm-7.5.5l.8-.5.2.3.2.3.3.3.2.3h.2v.4h.3l.2.3.2.2h.4l.2.2h1v-.2h.3l.2-.3v-.2l.2-.2.2-.2h.2l.2-.4v-.3l.3-.3.3-.3.2-.4 1 .4-.3.4-.2.5-.2.3-.2.4-.2.3-.2.3-.2.2-.2.2-.2.3-.3.2h-.2v.3h-.4l-.2.2H445l-.4-.2h-.2l-.3-.3v-.2l-.4-.2-.2-.2-.2-.2-.3-.2-.3-.3-.3-.4-.2-.4-.3-.4zm2.5-17.2v-1 1h-.6l-.7.2-.5.2-.5.3-.4.3-.5.4-.3.4-.3.4-.3.6-.2.5v.6l-.2.5v.7l-.2.7v.6l.2.7v1.4l.2.7v.8l.3.7v.6l.3.7.2.6.2.5.2.6.2.7.2.5.2.4.2.4.2.4.2.3-1 .5v-.3l-.3-.5-.2-.4-.2-.4v-.6l-.4-.5-.2-.7-.2-.6-.2-.7-.2-.7v-.7l-.3-.6v-.8l-.2-.7V213l-.2-.7v-.8l.2-.7v-.6l.2-.7v-.7l.4-.6.2-.6.4-.6.4-.5.4-.5.5-.4.6-.3.7-.3.7-.2h.8v1zm0-1v1-1z" fill="#21231e"/> - <path d="M379.7 210.8c3.3-1 4 5 3.6 6.6-.4 2-1.2 2.2-2.7 1-1-1.2-4-6.5-1-7.6z" fill="#edb92e"/> - <path d="M383.8 217.5l-1-.2v-2.8l-.2-.3v-.7l-.2-.3v-.3l-.2-.2v-.3l-.3-.2-.2-.2-.3-.3-.3-.3h-.3l-.3-.2h-.6l-.4-1h1.5l.2.2.3.2.2.2.3.2.2.3.2.2v.3l.3.3v.4l.2.3v.3l.2.3v.3l.2.4v.6l.2.3v2.5zm-3.5 1l.7-.6h.2v.2h.2l.2.2h.2v.2h.4l.2-.2v-.2h.2v-.6h.2v-.3l1 .2v.4h-.2v.4l-.2.3v.2h-.2l-.2.2-.2.2h-.2l-.2.2h-1v-.2h-.3l-.2-.2h-.2v-.2h-.2l-.2-.2v-.2zm-.7-8.2l.3 1h-.3l-.2.2h-.2v.2l-.2.2v.2l-.2.2v1.8l.2.4v.3l.2.3v.2l.2.3.2.3v.3l.2.3.2.3v.2l.3.2v.2l.2.2.3.3.2.2-.7.6h-.2v-.4l-.3-.2v-.2l-.3-.2v-.3l-.3-.2v-.2l-.2-.3v-.3l-.3-.3v-.4l-.2-.3v-.3l-.3-.3v-.7l-.2-.3V212l.3-.2.2-.3.2-.3.3-.2.2-.2h.2l.4-.3z" fill="#21231e"/> - <path d="M380.7 214c7.7-2.5 9.2 12 8.4 15.5-1 4.5-2.8 5-6.2 2-2.6-2.4-9.7-15-2-17.5z" fill="#fff"/> - <path d="M389.6 229.6l-1-.2v-.8l.2-.4v-2.9l-.2-.7V223l-.3-.7v-.7l-.3-.8-.2-.7-.2-.6-.2-.7-.3-.7-.2-.6-.3-.6-.3-.4-.4-.5-.3-.4-.4-.3-.4-.4-.4-.4-.5-.2h-.5l-.5-.2h-1.1l-.6.3-.4-1 .7-.2h2.2l.7.2.7.2.5.4.5.5.5.4.4.5.4.5.4.6.3.7.3.6.3.6.3.7.2.8.2.8.2.7v.8l.3.7v1.5l.2.7v4.4zm-7 2.3l.5-1 .5.4.2.2.3.3h.3l.3.3h.2l.3.3h.3l.2.2h1.4l.2-.2.2-.2.2-.3.3-.3v-.6l.2-.2v-.3l.2-.4v-.2l.2-.4 1 .2v.4l-.2.4v.4l-.2.4-.2.3v.3l-.2.3-.2.4v.3l-.3.2h-.2v.3l-.3.2h-.2l-.2.3h-.8l-.3.2h-.5l-.3-.2h-.2l-.3-.2h-.4l-.3-.3-.3-.2h-.3l-.3-.3-.3-.3-.2-.2-.3-.3zm-2-18.5l.3 1-.7.2-.6.3-.4.3-.4.4-.4.4-.3.5-.2.5v.5l-.2.6v2.5l.2.6.2.7.2.6.2.7.3.7v.7l.4.6.3.7.4.6.4.6.3.6.4.6.4.5.3.4.3.4.4.4.2.4.3.3-.5 1-.3-.4-.3-.3-.4-.4-.4-.5-.3-.5-.4-.5-.4-.6-.3-.7-.5-.6-.3-.6-.4-.6-.3-.6-.3-.7-.3-.7-.3-.7-.3-.7-.2-.8-.2-.8v-.7l-.2-.7V218l.2-.7.2-.6.2-.6.3-.5.4-.5.6-.5.6-.4.7-.2.6-.3zm0 .5v-.5.5z" fill="#21231e"/> - <path d="M464.2 137.8c-17.2-1.6-35 .2-52.3 7-14.8 6-13.4 23.2 4.6 47-1.7 3-2.6 6.8-2.7 11h4.8c-1.3-2.8 0-6.4 1.8-9 1-1.5 1.3-1.2 0-3-10.7-15-17.8-28.2-13.6-36 5-9.7 24.6-14.7 57.7-14 0-1 0-1.8-.2-2.7 0 0-.2 0-.3-.2z" fill="#edb92e"/> - <path d="M412 145.4l-.3-1 1.7-.6 1.6-.6 1.7-.6 1.6-.5 1.6-.4 1.6-.5 1.6-.4 1.7-.4 1.5-.4 1.7-.4 1.6-.4 1.7-.3 1.6-.3 1.8-.3h1.6l1.7-.3 1.7-.2 1.7-.2 1.6-.2h3.3l1.6-.2h11.5l1.6.2h1.6l1.6.3v1l-1.7-.2h-4.9l-1.6-.2h-9.7l-1.6.2H443l-1.5.3-1.7.2-1.6.2-1.6.2H435l-1.7.4-1.6.3-1.7.3-1.6.4-1.6.3-1.7.5-1.5.4-1.6.4-1.8.5-1.6.6-1.6.6-1.7.6-1.6.6-1.6.6zm5 46.7l-1-.4.2.5-1.7-2-1.5-2.3-1.5-2-1.3-2.2-1.3-2-1.2-2-1-2-1-2-1-2-.7-1.7-.6-1.8-.5-1.8-.6-1.7-.4-1.6-.3-1.7-.2-1.6v-4.4l.2-1.3.3-1.3.4-1.2.5-1.2.5-1.2.7-1 .8-1 .8-1 1-.7 1-.8 1.3-.8 1.4-.6 1.3-.5.4 1-1.2.5-1.2.6-1 .7-1 .8-1 1-1 .8-.6 1-.7 1-.5 1-.5 1-.3 1.2-.3 1.2-.2 1.2v3.8l.2 1.5.3 1.7.3 1.6.5 1.6.6 1.6.7 1.8.8 1.8 1 2 .8 1.8 1 2 1.2 2 1.2 2 1.4 2 1.4 2.2 1.5 2 1.7 2.3v.6zm0-.5l.2.3-.2.3v-.5zm-3 11v1l-.6-.6v-2.5l.2-.4v-1l.2-.4v-.7l.2-.5v-.4l.2-.2v-.4l.2-.3v-.3l.2-.3v-.4l.2-.3v-.3l.2-.3v-.3l.3-.3v-.3l.2-.2.2-.3v-.3l.3-.3v-.4l1 .5v.4l-.3.2v.3l-.2.2-.2.3v.3l-.2.3v.4l-.2.3v.3l-.2.4v.3l-.2.3v.3l-.2.4v.7l-.2.3v.8l-.2.4v.8l-.2.4v1.4l-.2.4v.7l-.5-.6zm0 1h-.6v-.6l.5.5zm4.3-.4l1-.4-.5.8h-4.6v-1h4.6l-.5.7zm1-.4l.3.7h-.8l.4-.7zm1-9l.7.6-.2.2v.3l-.2.2-.2.2v.2l-.3.3v.4l-.2.3-.2.2v.3l-.2.3v.2l-.2.3v.7l-.2.2v.5l-.2.3v2.2l.2.3v.4l.2.2-1 .5v-.5l-.2-.3v-.7l-.2-.3v-2.7l.2-.3v-.3l.2-.2v-.3l.2-.3v-.3l.2-.4v-.3l.2-.3.2-.3v-.2l.2-.3.2-.3v-.3l.3-.3v-.3h.3l.2-.3zm0-2.5l.7-.5.2.3.2.3v.2h.2v.4h.2v.4l.2.2v.5l-.2.2v.2h-.2v.2l-.2.2v.2h-.2v.3l-.2.2-.8-.6v-.2l.2-.2.2-.2v-.2h.2v-.4h.2v-.2h-.2v-.2l-.2-.2v-.3h-.2v-.3h-.2zm-13.8-36.5l1 .5-.4.7-.2.7-.2.8-.2.8v4.5l.2 1 .3 1v1l.5 1 .3 1.2.4 1 .5 1.2.5 1 .5 1.2.6 1.2.6 1.2.6 1.3.7 1 .7 1.4.8 1.3.8 1.3.8 1.3 1 1.3.8 1.4 1 1.3.8 1.4 1 1.4 1 1.5-.8.6-1-1.3-1-1.4-1-1.4-1-1.5-.8-1.3-.8-1.4-1-1.3-.7-1.3-.8-1.3-.8-1.4-.7-1.2-.7-1.3-.6-1-.6-1.3-.5-1.2-.5-1.2-.5-1.2-.4-1-.5-1-.3-1.2-.3-1-.3-1-.2-1.2v-1l-.2-1V158l.3-.8.3-1 .2-.7.3-.8zm57.7-13.7h1l-.5.5h-14.5l-2.6.2H445l-2.5.3-2.4.2-2.3.3-2.2.2-2.2.3-2 .4-2 .3-2 .4-1.8.4-1.8.4-1.7.5-1.6.5-1.5.6-1.5.5-1.3.5-1.3.7-1.3.6-1 .7-1 .7-1 .7-.8.7-.8.8-.7.8-.6.8-.6 1-1-.5.7-1 .7-.8.7-1 .8-.7 1-.8 1-.8 1-.8 1-.7 1.2-.7 1.3-.7 1.4-.6 1.6-.6 1.5-.5 1.7-.7 1.7-.5 1.8-.4 2-.5 1.8-.5 2-.3 2.2-.4 2.2-.3 2.2-.2 2.4-.3 2.4-.2 2.5-.2h2.5l2.7-.2h2.7l2.8-.2h9l-.6.6zm1 0v.5h-.5l.5-.5zm-1-2.3l.7-.7v1.9h.2v1h-1v-2.3l-.2-.2v-.4.3zm.7-.7v.3-.2zm-1.2-.4l.8.7v-.6.2h.2v.2l-.7.7v-.4h-.2v-.6zm0 .7l-.3-.2.3-.4v.7zm.8 0l-.8-.6h.4l.4.7zm-.4-.7h1l-.6.8-.4-.7z" fill="#21231e"/> - <path d="M380.6 142.7c3.4 0 6 2.7 6 6s-2.6 6.3-6 6.3-6.2-2.7-6.2-6.2c0-3.4 2.8-6 6.2-6z" fill="#fff"/> - <path d="M387.2 148.8h-1c0-2-1.2-4-3-5a5.6 5.6 0 0 0-2.6-.6v-1c2.2 0 4.5 1.2 5.6 3a6.7 6.7 0 0 1 1 3.6zm-6.6 6.7v-1c2 0 4-1.2 5-3 .4-1 .6-1.8.6-2.7h1c0 2.3-1.2 4.5-3 5.7a6.6 6.6 0 0 1-3.6 1zm-6.7-6.7h1c0 2 1.2 4.2 3 5a5.6 5.6 0 0 0 2.6.7v1c-2.3 0-4.5-1.2-5.6-3a6.7 6.7 0 0 1-1-3.7zm6.6-6.7v1.2c-2 0-4 1.2-5 3a5.7 5.7 0 0 0-.6 2.6h-1c0-2.2 1-4.4 3-5.6a6.6 6.6 0 0 1 3.6-1z" fill="#21231e"/> - <path d="M392.6 138.7c3.4 0 6.2 2.8 6.2 6.2 0 3.3-2.8 6-6.2 6-3.4 0-6-2.7-6-6 0-3.5 2.6-6.3 6-6.3z" fill="#fff"/> - <path d="M399.3 145h-1c0-2.2-1.3-4.3-3.2-5.2a5.6 5.6 0 0 0-2.4-.6v-1c2.3 0 4.5 1.2 5.7 3a6.7 6.7 0 0 1 1 3.7zm-6.7 6.6v-1c2 0 4-1.3 5-3a5.7 5.7 0 0 0 .7-2.7h1c0 2.2-1.2 4.4-3.2 5.6a6.6 6.6 0 0 1-3.4 1zM386 145h1c0 2 1.2 4 3 5a5.6 5.6 0 0 0 2.6.6v1c-2.2 0-4.5-1.3-5.6-3.2a6.7 6.7 0 0 1-1-3.5zm6.6-6.8v1c-2 0-4 1.2-5 3a5.7 5.7 0 0 0-.6 2.7h-1c0-2.4 1.2-4.7 3.2-5.8a6.6 6.6 0 0 1 3.4-1z" fill="#21231e"/> - <path d="M394.2 144a261.2 261.2 0 0 0 2 2.4c-9.8 5.4-14 11-13 16.7.2 1 3.2 11.5 9.8 31.7 4.5 3 7.8 6 10 8.4-.2.4.8 1.2.5 1.5.7 3-2.8 2.4-5 1.7-1.2-3-4.6-6-6.6-7.5-.5-.2-2-1-2-1.4l-10.2-31.6c-3-9.8 3.6-16.8 14.4-21.7z" fill="#edb92e"/> - <path d="M396.3 147l-.5-1v.7h-.2v-.2h-.2v-.2l-.2-.2h-.2v-.2l-.2-.2v-.2h-.2v-.2h-.2v-.2l-.2-.2-.2-.2v-.2h-.2l.8-.7.2.2h.2v.4h.2v.2h.2v.2l.2.2.2.2v.2h.2v.2h.2v.2l.2.2v1zm.2-1l.3.6-.5.3.2-1zm-12.7 17l-1 .2v-3.9l.2-.6.2-.5.2-.6.2-.5.3-.5.2-.5.3-.6.4-.5.3-.6.4-.6.5-.5.4-.6.6-.5.5-.5.6-.5.6-.6.5-.5.7-.4.7-.5.6-.5.8-.5.8-.5 1-.5.7-.5.8-.5.5 1-1 .4-.7.5-.8.4-.8.5-.8.4-.7.5-.7.4-.6.5-.7.4-.6.5-.6.4-.5.5-.6.4-.5.6-.5.5-.4.5-.3.5-.3.5-.3.5-.2.5-.2.5-.2.5-.2.5-.2.5v.5l-.2.5v3.1zm0 0zm9.5 31.3l-.6.8-.2-.2-.6-1.8-.7-1.8-.5-1.8-.6-1.7-.5-1.6-.5-1.5-.5-1.5-.5-1.5-.4-1.4-.4-1.2-.4-1.3-.4-1.3-.4-1-.3-1.3-.4-1-.3-1-.3-1-.3-1-.3-.8-.2-.8-.2-.8-.2-.6-.2-.7v-.5l-.3-.5v-.5l-.2-.4v-.8h-.2v-.3h1v.3l.2.3v.4l.2.3v.5l.2.5.2.6.2.7.2.7.2.7.2 1 .3.7.2 1 .2 1 .3 1 .3 1 .4 1 .4 1.2.3 1.2.3 1.3.5 1.3.4 1.4.5 1.5.4 1.5.7 1.6.5 1.6.5 1.7.6 2 .6 1.7.5 1.8-.2-.2zm-.6.8l-.2-.2.2.3zm10.7 8.4l-.7-.6v.6l-.2-.2-.2-.2-.3-.3-.2-.2-.2-.2-.3-.3-.2-.2-.2-.2-.2-.3-.3-.2-.3-.2-.2-.2-.3-.3-.3-.3-.3-.2-.4-.3-.3-.2-.4-.3-.4-.3-.3-.2-.4-.3-.4-.3-.4-.3-.3-.3-.5-.3-.4-.2-.3-.3-.4-.2-.4-.3-.5-.3-.4-.3-.3-.3.6-.7.4.3.4.3h.5l.4.4.3.3.4.3.4.3.5.3.3.2.4.3.3.4.4.3.2.2.4.2.3.3.2.2.3.3.3.3.3.2.4.3.3.2.3.3.3.3.2.2.3.3.3.3.3.3.2.2.3.2.2.3.2.2.2.3v.6zm0-.6l.3.3-.3.4v-.6zm.6 1.6l-1 .2.2-.5v.2h-.2v.2-.2l-.2-.2v-.2h-.2v-1.2l.8.6v-.2h.2v.2l.2.2v.2l.2.2v.7l-.2.2.2-.6zm-1 .2v-.3l.2-.2-.2.6zm-5 1.8l1-.4-.4-.3h.4l.2.2h.7l.4.2h2.3v-.2h.2v-1.4l1-.2v1.6l-.2.3v.2l-.2.2h-.2l-.2.2h-.4l-.2.2h-3l-.3-.2h-.5l-.3-.2h-.5l-.3-.4zm.2.3h-.2v-.3l.2.3zm-6.6-7.5l.6-1 .2.3h.2l.2.3h.2l.3.3.2.3.2.2.2.2.2.2h.2l.2.3.3.2v.3l.4.2.2.3.2.2.3.3.3.2.2.3.3.3.2.2.2.3.2.4.2.3.2.3.2.2.2.3v.3l.3.3v.4l.3.3v.3l-1 .4v-.3l-.2-.4-.2-.3v-.2l-.3-.2v-.3l-.2-.2-.2-.3-.2-.3-.2-.2-.2-.3-.2-.2-.2-.3-.3-.2-.2-.3v-.2l-.3-.3-.3-.2-.2-.2-.2-.2-.3-.2-.2-.2-.2-.2h-.2l-.2-.3h-.2l-.2-.3h-.2l-.2-.3h-.2l-.2-.2zm.6-1l.3.3-.3-.2zm-2.7-.7l1-.3.2.2h.2v.2h.2v.2h.4v.2h.2l.2.2h.2l-.6 1-.2-.2h-.2v-.2h-.4v-.2h-.2l-.2-.2h-.2v-.2h-.2v-.2h-.2v-.2h-.2v-.2zm-10-31.7l.8-.3.3 1 .3 1 .2.8.3 1 .3 1 .3.8.4 1 .3 1 .3 1 .3 1 .3 1 .3.8.2 1 .4 1 .3 1 .2 1 .3 1 .3 1 .4 1 .3 1 .3 1 .3 1 .5 1 .3 1 .3 1 .5 1 .3 1 .3 1 .4 1.2.4 1 .3 1 .4 1.2-1 .3-.3-1-.2-1.2-.3-1-.4-1-.2-1-.3-1-.3-1.2-.4-1-.3-1-.3-1-.4-1-.3-1-.3-1-.3-1-.4-1-.4-1-.3-1-.4-1-.3-1-.3-.8-.3-1-.4-1-.3-1-.3-1-.3-.8-.3-1-.2-1-.3-1-.3-.8-.3-1-.4-.8-.2-1zm15-22l-.7.5h.6l-1 .6-1 .4-1 .5-.8.4-1 .5-.7.4-1 .5-.7.5-.8.5-.7.6-.7.6-.5.6-.7.6-.5.6-.6.7-.5.6-.4.7-.4.6-.4.7-.3.7-.3.7-.3.7v.8l-.2.7v.7l-.2.8v2.6l.3.8v1l.3.7-1 .3-.2-1v-.8l-.3-1V159l.2-1 .2-.7.2-.6.3-.8.4-.7.5-1 .4-.6.4-.7.6-.7.5-.7.6-.6.8-.6.6-.6.8-.6.7-.6.7-.5.8-.6 1-.5.7-.5 1-.5 1-.5.8-.5 1-.5 1-.5.6.2zm-.5-.3l.4-.2.2.4-.6-.2z" fill="#21231e"/> - <path d="M356 217l-.4 2c-2.8.5-5.3.7-7.3.3 3.4-3.3 6-4 7.6-2.4z" fill="#edb92e"/> - <path d="M355 218.8l.4-2 1 .2-.3 2-.3.4-.6-.6zm1 0v.5h-.3l.4-.4zm-8 .2l.7.7-.3-1 .2.2h4.1l.3-.2h1l.2-.2h.7l.2-.2h.3l.2 1h-.8l-.4.2h-.5l-.4.2h-1.3v.2h-3.7l-.4-1zm.2 1l-1-.3.8-.7.2 1zm8.2-3l-1-.2.2.5v-.2h-.6v-.2h-.6l-.2-.2H353v.2h-.6l-.2.3-.2.2h-.3l-.2.2-.3.2-.2.2-.3.2-.3.2-.2.2-.3.2-.4.3h-.3l-.3.4-.3.3-.7-.7.3-.3.3-.3.3-.3.2-.2.3-.2.3-.2.3-.3h.4l.3-.3h.3l.2-.3h.3l.3-.3h.6l.3-.2h.5l.4-.2h1.3l.2.2h.3l.2.2h.2l.2.2.3.3v.5zm0-.5v.5-.5zm-.5.4h.4-.5zm.3-.5l.2.2v.3l-.2-.5z" fill="#21231e"/> - <path d="M355.6 212.3c1.8.4 2 .7 2.7 1 1 0 2.4 0 3.3-1 4-2.2 4 2 2.5 5-1 2.4-.5 5 .6 7 1.2 2.2 1 3.2 0 4l-1.6 1c-1 1.2-1.8 1-2-.6-3.8-1.6-5-5.3-6.2-8.6-1.7-4.7-7.8-5.8.8-7.7z" fill="#edb92e"/> - <path d="M358.4 212.7v1h-.7v-.2h-.4l-.2-.2h-.4l-.2-.2h-.8l-.3-.2.2-1h.4l.2.2h.4l.2.2h.4v.2h.8v.2h.4zm3-.7l.5 1v-.2l-.2.2h-.3v.2h-.2l-.2.2h-.2l-.2.2h-2.1v-1h2.2l.2-.2h.2v-.2h.2l.2-.2zm0 0zm3 5.6l-.8-.4v-.3l.3-.4v-.5l.2-.2v-.6l.2-.3v-2.2h-.2v-.2h-.2v-.2h-1.2l-.3.2-.3.2-.3.2-.6-1 .4-.2.3-.2h.5l.3-.2h1.8l.2.2.2.2v.2l.2.3v.4l.2.3v2.4l-.2.3v.3l-.2.4v.3l-.2.3v.3l-.3.3zm.6 6.3l-1 .4v-.4l-.2-.2v-.4l-.2-.2v-.2l-.2-.2v-.5l-.2-.2v-.8l-.2-.2v-2.3l.2-.2v-.3l.2-.3v-.3l.2-.2 1 .4-.2.2v.4l-.2.2v.8l-.2.2v2l.2.2v.5l.2.2v.4h.2v.2l.2.2v.4h.2zm0 4.6l-.6-1h.2v-.2h.2v-1.6l-.2-.3v-.3l-.2-.2v-.2l-.2-.2v-.2l.8-.5v.2l.2.2v.2l.2.2v.2l.2.2v.2l.2.3v1.7l-.2.2v.2h-.2v.2h-.2v.2l-.2.2zm0 0zm-1.6 1l-.8-.7v-.2h.2l.2-.2h.2v-.2h.4v-.2h.2v-.2h.4v-.2h.2l.6.8h-.2v.2h-.4v.2h-.2l-.2.2h-.2v.2h-.2l-.2.2zm-.8-.7v-.2zm-1.8 0l.4-.8.3.4v.5h.2v.2h.4v-.2h.2v-.2h.2l.8.6-.2.2-.2.2-.3.2h-.2v.2h-1.1l-.2-.2v-.2l-.2-.2v-.4h-.2v-.7l.2.4zm.4-.8h.3v.4l-.3-.4zm-7-8l1-.3.2.2v.3l.2.3v.4l.2.3v.3l.3.3.2.4v.3l.2.3.2.3v.3l.3.3v.2l.2.3v.2l.3.3.2.3.2.2v.3l.3.2.2.3.2.2.2.2.2.2h.2l.3.3.3.2.3.2.3.2h.3l.2.2-.4 1-.3-.2-.4-.2-.2-.2-.4-.2-.3-.2-.2-.3-.3-.3-.2-.2-.3-.3-.3-.2-.2-.3-.2-.3-.2-.3-.3-.4-.2-.3-.2-.3-.2-.3v-.4l-.2-.3v-.3l-.3-.3v-.3l-.3-.2v-.3l-.2-.4v-.2l-.2-.3-.2-.3v-.3l-.2-.4v-.3zm1.4-8.4v1l-.6.2-.7.2h-.6l-.5.3h-.4l-.4.3h-.3v.3l-.2.2v.2h-.2v.2l.2.3.3.2.2.3.2.2.2.3.3.2v.3l.4.3.2.3.3.5.2.3.2.4.3.4.2.4v.5l.3.4-1 .3v-.4l-.3-.5-.2-.4-.2-.3-.3-.3-.2-.3v-.2l-.4-.3-.2-.3-.3-.3v-.4l-.3-.2-.3-.3-.3-.4v-.2l-.2-.3-.2-.4v-.6l.3-.3v-.2l.3-.3h.3l.4-.3.4-.3.5-.2h.4l.7-.3.8-.2.7-.2zm0 0zm0 1v-1 1zm0-1z" fill="#21231e"/> - <path d="M357 212.5c3.5 1.2 4-.7 6-.6-.8 5-1.7 7.7-7 5-3-1.6-6.7.7-7.4 2.3-.3.6-2-.6-2.6-2-2.6-5.8 6.7-6.4 11-4.8z" fill="#edb92e"/> - <path d="M363.6 212l-1-.2.5.6H362v.2h-.3l-.2.2h-.2l-.3.2h-.3v.2h-.7l-.2.2h-2l-.4-.2h-.3l-.3-.2.3-1h.3l.3.2h.4l.2.2h1.3l.2-.2h.2l.2-.2h.5l.2-.2h.2l.3-.2h.5l.2-.2h.4l.6.6zm-.5-.6h.7v.6l-.6-.6zm-7.2 6l.4-1 .5.4.5.2h.4l.4.3h.3l.4.2h1.7l.2-.2.3-.3.2-.3v-.2l.2-.2.2-.3v-.3l.2-.3v-.3l.2-.2v-.4l.2-.4v-.4l.2-.4v-.9l.2-.5 1 .2v.5l-.2.5v.8l-.2.5v.4l-.2.4v.4l-.3.4v.3l-.2.4-.2.4v.2l-.3.3-.2.3-.2.2-.3.2-.2.2h-.2l-.3.2h-.3l-.3.2h-1.6l-.4-.2-.4-.2h-.4l-.4-.3-.5-.3-.5-.3zm-6.8 2l-1-.3h.2v-.3h.3v-.3l.3-.2v-.2l.3-.2h.3l.2-.3.2-.2h.3l.2-.3h.3l.2-.3h.3l.3-.2h.3l.2-.2h.3l.4-.2h2.3l.3.2h.3l.3.2h.2l-.4 1h-.3l-.2-.2h-.5l-.3-.2h-1.8l-.3.2h-.3l-.3.2h-.3l-.2.3h-.2l-.3.2h-.2l-.2.2h-.2v.2l-.2.2h-.2v.3h-.2v.2h-.2v.2h-.2zm-3.5-2l1-.3v.4h.2v.4h.2v.2l.2.2h.2v.2l.2.2h.2v.2h.4v.2l.8.5v.2l-.3.2h-1v-.2h-.2l-.3-.2h-.2v-.2l-.2-.2-.2-.2h-.2v-.3h-.2v-.2h-.2v-.3h-.2v-.4h-.2v-.3zm11.8-5.4l-.3 1-.4-.2h-.5l-.3-.2h-.5l-.5-.2h-5l-.5.2-.4.2h-.4l-.4.3-.4.3-.3.2v.2l-.4.2-.2.2v.3l-.3.2v1.6l.3.4.2.5-1 .5-.2-.5-.2-.6V215l.2-.6.2-.4.2-.4.3-.3.2-.4.3-.3.4-.3.4-.2.4-.2.5-.2h.5l.5-.3h1.1l.5-.2h3.3l.6.2h.5l.4.2.5.2h.3zm0 .5v-.5.5z" fill="#21231e"/> - <path d="M458.8 124.5c3.4 0 6.2 2.7 6.2 6 0 3.5-2.8 6.3-6.2 6.3s-6-2.8-6-6.2c0-3.4 2.7-6 6-6z" fill="#fff"/> - <path d="M465.5 130.6h-1c0-2-1.3-4.2-3.3-5a5.5 5.5 0 0 0-2.4-.6v-1c2.3 0 4.5 1.2 5.7 3a6.7 6.7 0 0 1 1 3.6zm-6.7 6.7v-1c2 0 4-1.2 5-3a5.6 5.6 0 0 0 .6-2.7h1c0 2.3-1 4.5-3 5.7a6.6 6.6 0 0 1-3.6 1zm-6.6-6.7h1c0 2 1.3 4.2 3.2 5a5.5 5.5 0 0 0 2.4.7v1c-2.2 0-4.4-1.2-5.6-3.2a6.7 6.7 0 0 1-1-3.4zm6.6-6.6v1c-2 0-4 1.2-5 3a5.6 5.6 0 0 0-.6 2.6h-1c0-2.2 1.2-4.4 3.2-5.6a6.6 6.6 0 0 1 3.4-1z" fill="#21231e"/> - <path d="M446.3 124.5c3.4 0 6 2.7 6 6 0 3.5-2.6 6.3-6 6.3s-6-2.8-6-6.2c0-3.4 2.6-6 6-6z" fill="#fff"/> - <path d="M453 130.6h-1c0-2-1.3-4-3.2-5a5.5 5.5 0 0 0-2.5-.6v-1c2.3 0 4.5 1.2 5.6 3a6.7 6.7 0 0 1 1 3.6zm-6.7 6.7v-1c2 0 4-1.3 5-3 .4-1 .6-1.8.6-2.7h1c0 2.3-1.3 4.5-3.2 5.7a6.6 6.6 0 0 1-3.5 1zm-6.6-6.7h1c0 2 1.2 4.2 3 5a5.5 5.5 0 0 0 2.6.7v1c-2.2 0-4.5-1.2-5.6-3.2a6.7 6.7 0 0 1-1-3.4zm6.6-6.6v1c-2 0-4 1.2-5 3a5.6 5.6 0 0 0-.6 2.6h-1c0-2.2 1.2-4.4 3-5.6a6.6 6.6 0 0 1 3.6-1z" fill="#21231e"/> - <path d="M433.8 125.5c3.4 0 6 2.7 6 6 0 3.5-2.6 6.3-6 6.3s-6-2.8-6-6.2 2.6-6 6-6z" fill="#fff"/> - <path d="M440.4 131.6h-1c0-2-1.2-4-3-5a5.5 5.5 0 0 0-2.6-.6v-1c2.2 0 4.4 1.2 5.6 3a6.7 6.7 0 0 1 1 3.6zm-6.6 6.7v-1c2 0 4-1.3 5-3a5.7 5.7 0 0 0 .6-2.7h1c0 2.3-1.2 4.5-3 5.7a6.6 6.6 0 0 1-3.6 1zm-6.6-6.7h1c0 2.2 1.3 4.3 3.2 5.2a5.5 5.5 0 0 0 2.4.5v1c-2.3 0-4.5-1.2-5.6-3.2a6.7 6.7 0 0 1-1-3.4zm6.6-6.6v1c-2 0-4 1.2-5 3a5.7 5.7 0 0 0-.6 2.6h-1c0-2.3 1.3-4.6 3.3-5.7a6.6 6.6 0 0 1 3.3-1z" fill="#21231e"/> - <path d="M422.3 127.7c3.3 0 6 2.8 6 6.2 0 3.3-2.7 6-6 6s-6.2-2.7-6.2-6 3-6.3 6.3-6.3z" fill="#fff"/> - <path d="M429 134h-1c0-2.2-1.4-4.3-3.3-5.2a5.5 5.5 0 0 0-2.4-.6v-1c2.2 0 4.4 1.2 5.6 3.2a6.7 6.7 0 0 1 1 3.5zm-6.7 6.5v-1c2 0 4-1.2 5-3 .4-1 .6-1.8.6-2.6h1c0 2-1.3 4.3-3.3 5.5a6.6 6.6 0 0 1-3.4 1zm-6.7-6.6h1c0 2 1.2 3.8 3 4.8.8.5 1.7.7 2.7.7v1c-2.3 0-4.5-1.2-5.7-3a6.7 6.7 0 0 1-1-3.6zm6.7-6.8v1c-2 0-4.2 1.3-5 3.2a5.7 5.7 0 0 0-.7 2.5h-1c0-2.5 1.3-4.7 3.3-6a6.6 6.6 0 0 1 3.3-.8z" fill="#21231e"/> - <path d="M346.3 159.4c3.4 0 6 2.8 6 6.2 0 3.4-2.6 6.2-6 6.2s-6-2.8-6-6.2c0-3.4 2.6-6.2 6-6.2z" fill="#fff"/> - <path d="M353 165.6h-1c0-2-1.3-4-3.2-5a5.6 5.6 0 0 0-2.5-.7v-1c2.2 0 4.5 1 5.6 3a6.7 6.7 0 0 1 1 3.6zm-6.7 6.7v-1c2 0 4-1.2 5-3 .4-1 .6-1.8.6-2.7h1c0 2.3-1.3 4.5-3.2 5.7a6.6 6.6 0 0 1-3.5 1zm-6.7-6.7h1c0 2 1.3 4.2 3.2 5a5.6 5.6 0 0 0 2.5.7v1c-2.2 0-4.4-1.2-5.6-3a6.7 6.7 0 0 1-1-3.7zm6.7-6.7v1c-2 0-4 1.2-5 3a5.7 5.7 0 0 0-.6 2.6h-1c0-2.3 1.2-4.5 3-5.7a6.6 6.6 0 0 1 3.6-1z" fill="#21231e"/> - <path d="M356.8 152.8c3.4 0 6.2 2.7 6.2 6 0 3.6-2.8 6.3-6.2 6.3-3.4 0-6-2.6-6-6 0-3.5 2.6-6.2 6-6.2z" fill="#fff"/> - <path d="M363.5 159h-1c0-2.2-1.3-4.2-3-5a5.6 5.6 0 0 0-2.7-.7v-1c2.3 0 4.5 1.2 5.7 3a6.7 6.7 0 0 1 1 3.6zm-6.7 6.6v-1c2 0 4-1.2 5-3 .5-1 .7-1.8.7-2.7h1c0 2.2-1.2 4.4-3 5.6a6.6 6.6 0 0 1-3.7 1zm-6.6-6.7h1c0 2 1.2 4 3 5a5.6 5.6 0 0 0 2.6.6v1c-2.2 0-4.4-1.2-5.6-3a6.7 6.7 0 0 1-1-3.7zm6.6-6.8v1c-2 0-4 1.3-5 3.2a5.7 5.7 0 0 0-.6 2.5h-1c0-2.3 1.2-4.6 3-5.8a6.6 6.6 0 0 1 3.6-1z" fill="#21231e"/> - <path d="M368.8 147c3.4 0 6 3 6 6.3 0 3.4-2.6 6.2-6 6.2s-6-2.8-6-6.2c0-3.4 2.6-6.2 6-6.2z" fill="#fff"/> - <path d="M375.4 153.3h-1c0-2-1.2-4.2-3-5a5.6 5.6 0 0 0-2.6-.7v-1c2.2 0 4.4 1.2 5.6 3a6.7 6.7 0 0 1 1 3.7zm-6.6 6.7v-1c2 0 4-1.3 5-3a5.7 5.7 0 0 0 .6-2.7h1c0 2.3-1.2 4.5-3 5.7a6.6 6.6 0 0 1-3.6 1zm-6.7-6.7h1c0 2 1.4 4 3.2 5a5.6 5.6 0 0 0 2.6.7v1c-2.3 0-4.5-1.3-5.7-3.2a6.7 6.7 0 0 1-1-3.5zm6.8-6.7v1c-2 0-4 1.2-5 3a5.7 5.7 0 0 0-.6 2.7h-1c0-2.3 1-4.5 3-5.7a6.6 6.6 0 0 1 3.6-1z" fill="#21231e"/> - <path d="M338.2 169.5c3.4 0 6 2.8 6 6.2 0 3.4-2.6 6.2-6 6.2s-6.2-3-6.2-6.3 2.8-6.2 6.2-6.2z" fill="#fff"/> - <path d="M344.8 175.7h-1c0-2-1.3-4.2-3.2-5a5.6 5.6 0 0 0-2.4-.7v-1c2.2 0 4.4 1.2 5.6 3a6.7 6.7 0 0 1 1 3.7zm-6.6 6.7v-1c2 0 4-1.3 5-3a5.7 5.7 0 0 0 .6-2.7h1c0 2.3-1.2 4.5-3.2 5.7a6.6 6.6 0 0 1-3.4 1zm-6.7-6.7h1c0 2 1.2 4 3 5a5.6 5.6 0 0 0 2.7.7v1c-2.3 0-4.5-1.3-5.7-3.2a6.7 6.7 0 0 1-1-3.5zm6.7-6.7v1c-2 0-4 1.2-5 3a5.7 5.7 0 0 0-.7 2.7h-1c0-2.3 1.2-4.5 3.2-5.7a6.6 6.6 0 0 1 3.5-1z" fill="#21231e"/> - <path fill="#edb92e" d="M454.2 276.3l-22 12.8-23.4-10 22-12.8z"/> - <path d="M431 266.7l-22 12.8-.4-1 22-12.7h.5v1zm-.4-1h.5-.4zm23.5 11l-23.3-10 .4-1 23.4 10v1h-.3zm.4-1l1 .5-1 .5v-1zm-22.4 13l22-13 .5 1-22 12.8h-.5v-.8zm.5.8l-.2.2h-.3l.5-.2zm-23.4-11l23.4 10-.4 1-23.3-10v-1h.4zm-.3 1l-1-.4 1-.4v1z" fill="#21231e"/> - <path d="M431 270.6c5.8-.3 10.5 2.5 10.8 6.3.2 3.7-4.2 7-9.8 7.4-5.7.3-10.4-2.5-10.7-6.3-.2-3.6 4.2-7 9.8-7.4z" fill="#c6363c"/> - <path d="M442.3 277h-1v-.7l-.2-.3v-.6l-.3-.3v-.2l-.3-.2-.2-.3-.2-.3-.3-.2-.3-.3-.2-.2-.3-.2h-.5l-.3-.3-.3-.2-.5-.2-.4-.2h-.3l-.4-.2h-.4l-.5-.3h-.9l-.5-.2h-.8l-.5-.2h-1l-.5.2v-1h3.6l.4.2.5.2h.5l.4.2.5.2.5.2.4.2.3.2.4.2.4.2.4.2.4.3.3.3.4.3.3.3.3.3.2.4.2.3.2.3.2.4v.3l.3.4.2.4v.8zm-10.3 8v-1l.4-.2h.9l.5-.2h.4l.4-.2h.5l.4-.3h.5l.4-.2.4-.2.4-.2.3-.2.4-.2.4-.3.4-.2.3-.2.3-.3.3-.2.3-.3v-.3l.3-.3.2-.4.2-.2v-.3l.2-.2v-.6l.2-.3v-1.1l1-.2v1.6l-.2.4v.3l-.3.5v.3l-.3.4-.3.3v.3l-.4.4-.3.3-.3.3-.3.2-.3.3-.4.3-.4.2-.4.3-.4.3-.4.2-.4.2-.5.2h-.4l-.4.2-.5.2h-.4l-.5.2h-.4l-.5.2h-1zm-11.2-6.8h1v.5l.2.3v.3l.2.3.2.3v.2l.3.3.2.2v.3l.4.2.2.3.3.2.2.2.3.2.4.2.2.2h.4l.4.3h.4l.4.2.4.2h.4l.5.2h1l.4.2h2.3v1H428l-.5-.2h-.4l-.5-.3h-.6l-.4-.3h-.4l-.5-.3-.3-.2-.3-.3-.4-.2-.4-.2-.3-.3-.3-.2-.3-.3-.3-.3-.3-.3v-.3l-.3-.3-.2-.3-.2-.4-.2-.3v-1l-.2-.4zm10.3-8l.2 1h-1.5l-.5.2h-.5l-.5.2-.4.2h-.5l-.4.3-.5.2-.4.2-.3.2-.4.2-.3.2-.3.3-.4.2-.3.3-.3.2-.2.3-.3.2-.2.3-.2.3-.2.4-.2.3v.3l-.3.3v.8l-.2.3v.6l-1 .2V277l.2-.4v-.3l.2-.4v-.5l.3-.3.2-.4.3-.3.2-.3.3-.3.2-.4.4-.3.4-.3.3-.3.4-.3.5-.2.3-.3.5-.3.4-.2.4-.2.6-.2h.4l.5-.2h.5l.5-.3h.5l.5-.2h1.1l.5-.2z" fill="#21231e"/> - <path d="M382.4 270l23.8 9-19.7 13c-5-1.6-9-19-4-22z" fill="#edb92e"/> - <path d="M406 279.4l-23.8-9 .4-1 23.7 9v1h-.3zm.3-1l1 .4-1 .5v-1zm-20 13.3l19.6-13.2.4.8-19.6 13.3h-.4v-1zm.5 1h-.4.4zm-4.2-23.3l-.4 1h.5l-.4.2-.4.3-.4.4-.2.5-.2.4-.2.7-.2.8v1.5l-.2.8v2.8l.3.8v1l.2.8.2 1 .2 1 .3.7v1l.5 1 .3.7.3.7.5.8.4.6.3.6.4.6.4.5.5.4.4.2.3.3.4.2-.3 1-.6-.3-.5-.3-.5-.3-.5-.5-.4-.6-.6-.6-.4-.7-.4-.7-.4-.7-.4-1-.3-.8-.3-1-.3-.8-.4-1-.2-.8-.2-1-.2-1v-.8l-.3-1v-5.2l.3-.8.2-.7.3-.6.3-.6.4-.5.4-.5.5-.4h.6zm-.5 0h.6-.5zm.4.4l.2-.4-.2.5zm-.3-.4h.6-.5z" fill="#21231e"/> - <path d="M382.8 274.3c5.7-.6 10.5 2 11 5.8.3 3.8-4 7.4-9.6 8-3.6.3-6-3-6.3-6.3-.5-3.4 1-7 4.8-7.4z" fill="#0c4076"/> - <path d="M394.2 280h-1v-.5l-.2-.3v-.3l-.2-.4-.2-.3-.2-.2-.2-.2-.2-.3-.2-.2-.3-.3-.2-.2-.3-.2-.3-.2-.4-.2-.3-.2-.4-.2-.3-.2h-.4l-.5-.3h-.4l-.4-.2h-.8l-.5-.2h-3.6l-.2-1h3.8l.4.2h.5l.4.2.4.2h.4l.5.3.4.2h.5l.4.3.2.2.4.3.3.2.2.3.3.3.3.3.2.2.3.3.2.3.2.3v.5l.3.4v.2l.2.4v.4zm-10 8.4v-1h1l.5-.2h.4l.6-.2.5-.2h.5l.4-.3.4-.2h.4l.4-.3.3-.3.4-.2.2-.2.4-.3.3-.2.2-.3.3-.2.2-.3.3-.3.2-.3.2-.2.2-.3v-.4l.3-.3v-.8l.2-.4v-1h1v1.6l-.2.3v.3l-.2.4-.2.3-.2.4-.2.3-.2.4-.3.4-.2.3-.3.3-.3.3-.5.3-.3.3h-.4l-.4.4-.4.2-.4.3h-.4l-.4.3-.5.2h-.5l-.4.3-.5.2h-.6l-.5.2h-.7l-.5.2h-.5zm-6.8-6.7h1v.7l.2.3v.3l.2.4v.3l.2.2v.2l.2.3.2.2v.3l.3.2.2.3v.2l.2.2h.2l.2.3h.2l.2.3.2.2h.3l.2.2h.2l.2.2h.2l.3.2h1.4v1h-2.1l-.3-.2h-.4l-.3-.3-.3-.2-.3-.2-.3-.2-.2-.2-.3-.2-.3-.2-.2-.2-.3-.3-.2-.2v-.2l-.3-.3-.2-.3v-.2l-.3-.4v-.3l-.3-.3-.2-.3v-.3l-.2-.3v-.6l-.2-.3v-.3zm5.4-8v1h-.2l-.4.2h-.8l-.3.3-.3.2-.3.2-.2.2h-.2l-.2.2v.2l-.3.2v.3h-.3v.3l-.2.3-.2.2v.7l-.2.3v.4l-.2.3v2.2h-1V279l.2-.3v-.3l.2-.2v-.3l.2-.3.2-.3v-.4l.3-.3.2-.3.2-.2v-.3l.3-.2.3-.2h.2l.3-.3.4-.2.3-.2h.3l.3-.2h.7l.4-.2h.4z" fill="#21231e"/> - <path d="M457.5 280.4c1.7 0 3.2 1.5 3.2 3.2 0 1.8-1.5 3.3-3.2 3.3-1.8 0-3.2-1.6-3.2-3.4 0-1.7 1.4-3.2 3.2-3.2z" fill="#fff"/> - <path d="M461.2 283.6h-1v-.6l-.2-.2v-.2l-.2-.3v-.2h-.2v-.2h-.2v-.2h-.2l-.2-.2-.3-.2h-.2l-.2-.2h-.7v-1h1l.3.2.2.2h.2l.3.2v.2h.2v.2h.2v.3h.2v.2l.2.2v.2h.2v.2l.2.3v.5l.2.2v.2zm-3.7 3.8v-1h.4l.3-.2h.2l.2-.2h.2v-.2h.2v-.2h.2v-.2l.2-.2.2-.2v-.2l.2-.2v-1h1.2v.8l-.2.2v.3l-.2.2v.2l-.2.2-.2.3h-.2v.3h-.3l-.2.2-.3.2-.3.2h-.6v.2h-.6v.2h-.3zm-3.7-3.8h1v1h.2v.2l.2.2v.2l.2.2h.2v.2h.2v.2h.2l.2.2h.2v.2h1v1.2h-.7l-.2-.2h-.5v-.2h-.3l-.2-.2-.3-.2-.2-.2h-.2v-.3h-.2l-.2-.3-.2-.3v-.2l-.2-.3v-.3l-.2-.3v-.8zm3.7-3.7v1h-.9l-.2.2h-.2v.2h-.2v.2h-.2v.2h-.2v.2h-.2v.2l-.2.3v.5h-.2v.8h-1v-1.2l.2-.2v-.3h.2v-.3l.2-.2.2-.2v-.2h.4v-.2l.2-.2h.2v-.2h.5v-.2h.4v-.2h1z" fill="#21231e"/> - <path d="M408.7 283c1.8 0 3.2 1.6 3.2 3.4 0 1.7-1.5 3.2-3.3 3.2-1.8 0-3.2-1.5-3.2-3.2 0-1.8 1.4-3.3 3.2-3.3z" fill="#fff"/> - <path d="M412.4 286.4h-1v-.9l-.2-.2v-.2l-.2-.2v-.2l-.2-.2-.2-.2h-.2v-.2h-.2v-.2h-.4l-.2-.2h-.8v-1.2h.7v.2h.7v.2h.3v.2h.3v.2h.3l.2.2.2.3h.2l.2.3.2.3v.3h.2v.6l.2.2v.9zm-3.7 3.7v-1h1v-.2h.2l.2-.2h.2v-.2h.2v-.2h.2v-.2l.2-.2v-.3h.2v-.5l.2-.2v-.4h1v.8l-.2.2v.3l-.2.2v.3h-.2v.3h-.2l-.2.3h-.2v.2h-.3l-.2.2h-.2v.2h-.3v.2h-.5l-.2.2h-.8zm-3.7-3.6h1v.8h.2v.5h.2v.2h.2v.2h.2v.2h.2l.2.2h.2v.2h.5v.2h.7v1h-1.2v-.2h-.3v-.2h-.2l-.2-.2-.2-.2h-.2v-.2h-.2v-.3h-.3v-.3h-.2v-.3l-.2-.2v-.2l-.2-.3v-.8zm3.7-3.8v1h-.7v.2h-.5v.2h-.2l-.2.2v.2h-.2l-.2.2v.2l-.2.2v.2h-.2v.7l-.2.3v.4h-1v-1l.2-.2v-.3l.2-.3.2-.3v-.3h.3v-.3h.2l.2-.2.2-.2h.2v-.2h.6l.3-.2h.5l.3-.2h.2z" fill="#21231e"/> - <path d="M407 268.3c1.8 0 3.2 1.4 3.2 3.2 0 1.8-1.4 3.2-3.2 3.2-1.8 0-3.2-1.4-3.2-3.2 0-1.8 1.4-3.2 3.2-3.2z" fill="#fff"/> - <path d="M410.7 271.5h-1v-.7l-.2-.2v-.3l-.2-.2h-.2v-.4h-.2v-.2h-.2l-.2-.2h-.2l-.2-.2h-.5v-.2h-.4v-1h.8v.2h.3l.3.2h.2l.3.2h.2v.2l.3.2.2.2.3.3.2.3v.3h.2v.4l.2.2v1zm-3.7 3.7v-1h1v-.2h.2l.2-.2h.2v-.2h.2v-.2h.2v-.2l.2-.2.2-.2v-.4h.2v-1h1v1.2l-.2.2-.2.3v.3h-.2l-.2.3h-.2v.3h-.3v.2h-.2v.2h-.2l-.2.2h-.5l-.3.2h-.7zm-3.7-3.7h1v.8l.2.2v.4h.2v.2l.2.2v.2h.2v.2h.2v.2h.2l.2.2h.5l.2.2h.5v1h-.9l-.3-.2h-.2l-.3-.2-.3-.2h-.2l-.2-.2-.2-.3h-.3v-.3l-.2-.3v-.3h-.2v-.4l-.2-.2v-.8zm3.7-3.7v1h-.8v.2h-.5l-.2.2h-.2v.2h-.2v.2h-.2v.2h-.2v.2l-.2.2v.3l-.2.2v.7h-1v-1.2h.2v-.6h.2v-.3h.2v-.3h.3l.2-.2v-.2h.3v-.2h.3l.2-.2h.4v-.2h.5l.2-.2h.7z" fill="#21231e"/> - <path d="M457.3 266.2c1.8 0 3.2 1.4 3.2 3.2 0 1.8-1.4 3.2-3.2 3.2-1.7 0-3.2-1.4-3.2-3.2 0-1.8 1.6-3.2 3.3-3.2z" fill="#fff"/> - <path d="M461 269.4h-1v-.8h-.2v-.3l-.2-.2v-.2h-.2v-.2h-.2v-.2l-.2-.2h-.2l-.2-.2h-.2l-.3-.2h-.7v-1h1.1l.2.2h.3l.3.2.3.2.2.3h.2v.2h.2v.2h.2v.3h.2v.3l.2.2v.5l.2.2v.7zm-3.7 3.7v-1h1.2v-.2h.2l.2-.2.2-.2v-.2h.2v-.2h.2v-.2l.2-.2v-.5h.2v-.8h1v1.1l-.2.2v.2l-.2.2-.2.3-.2.3-.2.2-.2.2-.2.2h-.2v.2h-.3v.2h-.4l-.2.2h-1zm-3.7-3.6h1v.5l.2.2v.3l.2.2v.2h.2l.2.2v.2h.2v.2h.2l.3.2h.2l.2.2h.7v1h-1l-.3-.2h-.3l-.3-.2-.3-.2v-.2l-.3-.2-.2-.2v-.2h-.2v-.3h-.2v-.6l-.2-.2v-.7l-.2-.2v-.2zm3.7-3.7v1h-.7v.2h-.4l-.2.2h-.2v.2h-.2v.2l-.2.2-.2.2v.4h-.2v.8h-1.2v-.5l.2-.3v-.4l.2-.2v-.2h.2v-.3h.2v-.3h.2v-.2h.3v-.3l.3-.2.3-.2h.3l.2-.2h1z" fill="#21231e"/> - <path d="M371 237.4c2.3-.8 6 4.6 7 4.5 1.2-3-1.2-10.5-5.5-16.3-3-1-3.2-3-3.8-7.3-.2-1.3-2.7-.4-2.7 2 0 2.3-.3 3.6.3 5.6.2.8 0 1.6-.8 2.3 4.5 1.8 5.6 4 5.4 9z" fill="#edb92e"/> - <path d="M377.6 241.8l1 .3-.5.4h-.4l-.3-.2-.2-.2-.3-.3-.2-.2-.2-.2-.2-.2-.3-.3-.3-.2-.2-.2-.2-.3-.3-.2-.2-.2-.3-.2-.2-.3h-.3l-.3-.3h-.2l-.3-.3-.3-.2h-.2l-.3-.2h-.4l-.2-.2h-.4l-.4-1h1.3l.3.2h.3l.3.2.2.2h.3l.3.3.2.2h.3l.3.3.3.3v.2l.4.2.2.3.3.2v.2l.4.3.2.2.2.2.2.2.2.2.2.2h.2v.2h.3v.2l-.4.3zm1 .3l-.2.4h-.3l.5-.3zm-6.3-15.8l.4-1 .2.2.3.5.4.5.4.6.4.7.4.5.3.6.5.6.3.6.3.6.4.6.3.6.2.6.2.6.2.5.2.6.2.7.2.5v.6l.3.5v.6l.2.4v.5l.2.4v3.3l-.2.3-1-.2v-.3l.2-.3v-3.6l-.3-.5v-.4l-.2-.5-.2-.5-.2-.5v-.5l-.4-.6-.2-.7-.2-.5-.3-.6-.2-.6-.3-.5-.3-.5-.4-.6-.3-.7-.4-.5-.4-.6-.4-.6-.3-.5-.5-.5-.4-.5.3.2zm.4-1l.2.2-.3-.2zm-4.5-6.7h1v.7l.2.3v1l.2.3v.5l.2.3v.5l.2.2v.4h.2v.3l.2.2v.2h.2v.3h.2l.2.2v.2h.2l.2.2h.2l.2.2h.2l.2.2h.2l.3.2-.4 1h-.2l-.2-.2-.3-.2h-.2l-.2-.2h-.2l-.2-.3-.2-.2h-.2v-.2l-.3-.2-.2-.2-.2-.2v-.2l-.2-.2v-.2l-.2-.3v-.2l-.2-.2v-.3l-.2-.2v-.9l-.2-.3v-.6l-.2-.3V219l-.2-.5zm-1.7 1.8h-1v-1l.2-.2.2-.2v-.4h.2l.2-.3h.2l.2-.2.3-.2h.2l.2-.2h1.2v.2h.2v.3l.2.2v.2h-1.6v.2h-.2v.2h-.2v.2h-.2v.3l-.2.2v.8zm.3 5.6l-1 .2v-.6l-.2-.2V224h-.2v-3.6h1v4.2l.2.2v.7l.2.2zm-1 2l-.5.8v-1l.2-.2v-.2h.2v-.4h.2v-.4l-.2-.2v-.2l1-.3v1.8h-.2v.4h-.2v.2h-.2v.2l-.2.2h-.2v-.7zm-.5.8l-.8-.3.7-.6v.8zm5 8.6h1-1v-.5l.2-.5v-2l-.2-.3v-.7l-.2-.3v-.6l-.2-.3v-.2l-.2-.3-.2-.3v-.2l-.3-.3v-.2l-.3-.2-.2-.2-.3-.2-.2-.2-.3-.2h-.3l-.3-.3-.2-.2-.3-.2-.4-.2h-.3l-.4-.2.4-1 .4.2.5.2.4.2.3.2.3.2.4.2.3.2.3.2.3.2v.2l.4.3.2.3.3.3v.2l.3.3v.4l.3.3v.3l.3.3v.7l.2.3v.7l.2.4v2.9h-1zm1 0h-1l.5-.5.6.4zm-1 0v-.4h.5l-.4.4z" fill="#21231e"/> - <path d="M368.8 218.5c-.4 1-.6 1.8-.7 3.4 0 1 .5 2 1.2 3 .8 1 1.8 2 3 2.6.8.5 1.6 1.7 2.3 3 .7 1.4 1.2 3 1.2 4 0 3.5.8 6.7 2.4 7.3 1.2.3 1.6.2 2.4 0-.2-.6 0-1.5-.7-2.4-.7-1.2-1.4-2.5-1.4-3.7 0-1-.5-1.6-.2-3.3.4-1.2 1-1.6 1-2.7-.3-2-2-6-4.3-6s-3.4-.3-4.6-3.4c-.3-1-1-1.6-1.2-2z" fill="#edb92e"/> - <path d="M368.6 222l-1-.2v-1.2l.2-.2v-1h.2v-.7h.2v-.4l1 .3v.4h-.2v1l-.2.2v1.5l-.2.3zm1 2.8l-.8.6v-.2h-.2v-.2l-.2-.2v-.2h-.2v-.4h-.2v-.5l-.2-.2v-.7l-.2-.2v-.7h1v1.1h.2v.7h.2v.4h.2v.4h.2v.2h.2v.2zm3 2.4l-.6 1v-.2h-.4v-.2h-.2v-.2h-.2l-.2-.2h-.2v-.2h-.3v-.2h-.2l-.2-.2v-.2l-.2-.2h-.2v-.2h-.2v-.2h-.2v-.2l-.2-.2-.2-.2.8-.6.2.2.2.2v.2h.2l.2.2v.2h.2l.2.2.2.2h.2v.2h.2v.2h.3l.2.2.2.2h.2v.2zm2.4 3.2l-1 .4v-.2l-.2-.2v-.2l-.2-.2v-.2h-.2v-.2l-.2-.2v-.2h-.2v-.2l-.2-.2-.2-.2v-.2h-.2l-.2-.2h-.2l.5-1h.2v.2h.2v.2h.2v.2l.2.2.2.2v.2h.2v.2h.2v.2l.2.2v.2l.2.2v.2h.2v.3h.2v.3h.2zm1.2 4.2h-1v-.8l-.2-.2v-.8h-.2v-.5h-.2v-.4h-.2v-.5h-.2v-.2l-.2-.2 1-.4v.4h.2v.4h.2v.5l.2.2v.3h.2v.6h.2v1h.2v.7zm-1 0zm3 6.8l-.3 1h-.3l-.2-.2-.3-.3v-.2l-.3-.2h-.2l-.2-.3v-.2h-.2v-.3l-.2-.2v-.3l-.2-.2v-.3l-.2-.2v-.5l-.2-.3v-.8l-.2-.3V236l-.2-.3v-1.5h1v2.1l.2.3v1.4l.2.2v.8l.2.2v.2l.2.2v.4l.2.2v.2l.2.2.2.2v.2h.2v.2h.2l.2.2zm1.7.8l1-.3-.5.5h-.4v.2h-1.4l-.2-.2h-.4l.3-1h.7v.2h1.2v-.2l-.3.7zm1-.3v.4h-.5l.4-.5zm-1.7-2l.8-.7h.2v.4h.2v.4h.2v.8l.2.2v1l-1 .4V241l-.2-.2v-.8h-.2v-.2zm-1.5-4h1v.8h.2v.8l.2.2v.2l.2.2v.2h.2v.5h.2v.2h.2v.2l-.7.7v-.2l-.2-.2v-.4h-.2v-.5h-.2v-.2l-.2-.3v-.2l-.2-.2v-.2l-.2-.3v-.4l-.2-.2v-.5zm1 0zm-1.2-3.4l1 .2v3l.2.2-1 .2v-.8l-.2-.2v-2.6zm1-2.5h1v.7h-.2v.6l-.2.2v.2l-.2.2v.2h-.2v.6h-.2v.2l-1-.2v-.4h.2v-.4l.2-.2v-.2l.2-.2v-.2l.2-.2v-.9zm-4-5.5v-1h1.1l.3.2h.2l.2.2h.3l.2.2.2.2v.2l.3.2v.2l.3.2.2.3v.2l.3.3.2.2.2.3v.2l.2.3v.2l.2.3v.3l.2.2v.3l.2.2v.5l.2.3v.8h-1v-1l-.2-.2v-.4l-.2-.3-.2-.4v-.2l-.2-.2v-.3l-.3-.3v-.2l-.2-.2v-.3l-.2-.2-.3-.3-.2-.2-.3-.3-.3-.2-.3-.2h-.8zm-5-3.7l1-.4v.3l.2.3v.2l.2.2v.2l.2.2v.2l.2.2.2.2v.2h.2v.2h.2v.2h.4v.2h.7v.2h1.7v1H373l-.3-.2h-.4v-.2h-.3v-.2h-.3v-.3h-.3v-.2l-.2-.2-.2-.3-.2-.2v-.2l-.2-.2-.2-.4-.2-.2v-.3l-.2-.2zm-.4-2l-1-.5h1.2v.4h.2v.2h.2v.2h.2v.4h.2v.2l.2.2v.2l.2.2-1 .4v-.2l-.2-.2v-.2l-.2-.2v-.2h-.2v-.2l-.2-.2v-.2h-.2v-.2h-.2v-.2h.8zm-1-.5l.5-1 .5 1h-1zm.6.2l.4.2-.4-.2zm-.5-.2l.4-1 .5 1h-1z" fill="#21231e"/> - <path d="M360 227l2-1c1.3-.5 2.6-.6 4-.2 5.5 1.7 8 11.6 1.8 14-1.2.2-2.3-1-3.4-3.3-1.3-3.2-2.6-5.4-4-6.8-1-1-1-2-.4-2.6z" fill="#edb92e"/> - <path d="M362 225.5l.3 1h-.4v.2h-.4v.2h-.8v.2h-.2l-.2.2-.7-.7.2-.2v-.2h.4v-.2h.8v-.2h.4v-.2h.4zm4-.2l-.2 1h-.5v-.2h-2.1v.2h-.7l-.2.2-.5-1h.4l.3-.2h.8v-.2h1.6l.2.2h.4zm2 15l-.2-1h-.2l.5-.2h.6l.4-.4.4-.3.3-.4.3-.5.2-.4.2-.3.2-.5v-.5l.2-.5V232l-.3-.4-.2-.5-.2-.5v-.5l-.4-.4-.2-.5-.4-.3-.3-.5-.4-.3-.3-.5-.4-.3-.5-.3-.3-.4-.5-.2h-.4l.2-1h.6l.5.3.7.3.4.4.6.3.5.4.5.6.3.4.4.5.3.5.3.6.3.5.3.7.2.6v.6l.3.5v3.4l-.2.5-.2.6-.3.6-.2.5-.3.5-.4.5-.4.4-.4.3-.6.3-.6.3zm0 0zm-4-3.6l1-.4v.4l.2.2.2.3.2.3v.2h.2v.5h.2v.2l.2.2.2.2h.2v.2h.2l.2.2h.8v1.2h-.8v-.2h-.5l-.2-.2-.2-.2-.2-.2-.2-.2v-.2h-.2l-.2-.2v-.2h-.2v-.3l-.2-.2v-.2h-.2v-.2l-.2-.2v-.2l-.2-.3-.3-.3zm0 0zm-4-6.6l.7-.6.2.2v.2h.2l.2.3v.3h.2l.2.3v.2l.2.2h.2v.3l.3.2v.2l.2.2.2.2v.4l.2.2.2.3v.3l.2.2.2.3v.3l.2.3v.3l.3.3.2.4v.3l.3.3v.3l-1 .4v-.6l-.2-.2v-.3l-.3-.2v-.3l-.2-.2v-.5l-.3-.3v-.2l-.2-.2v-.3l-.3-.2-.2-.3v-.2l-.3-.2v-.2h-.2v-.3h-.3v-.3l-.2-.2-.3-.3v-.2l-.2-.2h-.2v-.2l-.2-.2zm0 0zm0-3.4v1l.3-.2v.2h-.2v.8h.2v.4l.2.2.2.2v.2l-.7.7h-.2v-.2l-.2-.2-.2-.2v-.3h-.2V227h.2v-.2h.2l.4-.2zm-.4 0h.4-.4zm.4 1v-1l.3 1h-.3zm.3 0h-.2.3z" fill="#21231e"/> - <path d="M362.8 227.7c5.4-2 9.4 8.3 4.3 10.2-2.6 1-2.8-2.4-3.4-4.3-.7-2.5-6-4-.8-6z" fill="#edb92e"/> - <path d="M367.3 238.4l-.4-1h.3l.3-.3.3-.2.2-.3.2-.3.2-.3v-.5l.2-.4v-2.7l-.2-.4-.2-.5-.2-.4-.2-.4-.3-.4-.3-.4-.2-.3-.4-.4-.3-.2-.3-.2-.4-.2-.4-.2h-.4l-.3-.2h-1.3l-.4.2-.4-1h.6l.5-.2h1.6l.5.3.5.2.4.2.4.4.5.4.4.4.3.4.3.5.2.4.3.6.3.5.2.6.2.6v.5l.2.5v1.6l-.2.5v.5l-.3.5-.2.4-.3.5-.4.3-.4.4-.4.2-.5.2zM363 234l1-.4.2.2v.6l.2.2v.8l.2.2v.4l.2.2v.2l.2.3.2.3v.2h.2v.2h.2l.2.2h1.2l.3.8h-.3l-.3.2h-1.2l-.2-.2h-.2v-.2l-.3-.2-.3-.3v-.2l-.2-.2v-.2h-.2v-.3l-.2-.2v-.4h-.2v-.8l-.2-.2v-.8l-.2-.2v-.2zm-.4-6.7l.4 1h-.5l-.3.3h-.4l-.2.3h-.2l-.2.2v.2h-.2v.4h.2v.3l.2.2v.2h.3v.3l.3.2h.2l.2.2.2.2.2.2.2.2.2.3.2.3.2.2v.3l.3.2v.6l-1 .3v-.7l-.2-.2h-.2v-.3l-.3-.2h-.2v-.3l-.3-.2-.2-.2-.2-.2-.2-.2v-.2l-.2-.2h-.2v-.3l-.3-.3v-.2l-.2-.2v-.8l.2-.3v-.3l.3-.2.2-.2.3-.3.3-.2h.4l.4-.3.6-.2z" fill="#21231e"/> - <path d="M363.4 229.3c2.6-1 6.2 5 3 6.5-2.3 1-4-.3-4.8-2-.7-2 0-3.8 1.7-4.5z" fill="#0c4076"/> - <path d="M366.5 236.3l-.4-1h.3l.2-.2h.2v-.2l.2-.2v-2l-.2-.3v-.3h-.2v-.4l-.3-.3-.2-.2-.3-.4-.2-.2-.2-.2h-.2v-.2l-.3-.2h-1.1l-.3-1h1.5l.4.3.3.2.2.3.2.2.3.2.2.2.2.3v.3l.3.3.2.4.2.3v.4l.2.4v2.6l-.2.3-.2.4-.2.3-.2.2h-.4l-.3.3zm-5.4-2.5l1-.3.2.3.2.3v.2l.2.3.2.2.2.2h.3v.2h.2l.3.2h.4v.2h1.3l.3-.2.5 1h-.7l-.2.2h-1.9l-.2-.2h-.2v-.2h-.3l-.2-.2-.3-.2-.3-.3-.3-.3h-.2v-.3l-.2-.3-.2-.3v-.2l-.2-.2v-.2zm2.2-5l.3 1h-.3l-.2.2-.2.2-.2.2-.2.2-.2.2v.2h-.2v.7l-.2.2v1.1l.2.2v.3l-1 .3v-.7l-.2-.3v-1.5l.2-.2v-.3l.2-.2.2-.3.2-.3v-.2l.3-.2v-.2h.3l.2-.2.3-.2h.2l.2-.2zm.2.5l-.2-.5.2.5z" fill="#21231e"/> - <path d="M400 179.7c3.6 0 6.4 2.8 6.4 6.4 0 3.6-2.8 6.5-6.3 6.5s-6.3-3-6.3-6.4 3-6.3 6.4-6.3z" fill="#fff"/> - <path d="M407 186h-1c0-2-1.4-4.3-3.3-5.2a5.8 5.8 0 0 0-2.6-.6v-1c2.4 0 4.7 1.2 6 3.2a7 7 0 0 1 1 3.7zm-7 7v-1c2.2 0 4.3-1.3 5.3-3.3a6 6 0 0 0 .6-2.6h1c0 2.4-1.3 4.7-3.3 6a6.8 6.8 0 0 1-3.6 1zm-6.8-7h1c0 2.3 1.3 4.4 3.3 5.4a5.8 5.8 0 0 0 2.6.6v1c-2.3 0-4.5-1.3-5.7-3.3a7 7 0 0 1-1-3.6zm7-7v1.2c-2.3 0-4.4 1.3-5.3 3.2a6 6 0 0 0-.8 2.7h-1c0-2.3 1.3-4.6 3.3-5.8a6.8 6.8 0 0 1 3.6-1z" fill="#21231e"/> - <path d="M395.4 169c3.5 0 6.4 3 6.4 6.4 0 3.6-3 6.4-6.4 6.4s-6.3-2.8-6.3-6.4c0-3.5 3-6.4 6.4-6.4z" fill="#fff"/> - <path d="M402.3 175.4h-1c0-2.2-1.3-4.3-3.2-5.3a5.8 5.8 0 0 0-2.6-.5v-1c2.4 0 4.6 1.3 6 3.2a7 7 0 0 1 1 3.7zm-7 7v-1c2.3 0 4.4-1.4 5.4-3.3a6 6 0 0 0 .6-2.6h1c0 2.4-1.2 4.7-3.2 6a6.8 6.8 0 0 1-3.6 1zm-6.7-7h1c0 2.2 1.3 4.4 3.2 5.3.8.4 1.7.6 2.6.6v1c-2.3 0-4.6-1.2-5.8-3.2a7 7 0 0 1-1-3.6zm6.8-7v1c-2 0-4.2 1.4-5.2 3.3a6 6 0 0 0-.6 2.7h-1c0-2.3 1.2-4.6 3.2-6a7 7 0 0 1 3.6-1z" fill="#21231e"/> - <path d="M410.7 131.5c3.4 0 6 2.7 6 6s-2.6 6.3-6 6.3-6.2-2.7-6.2-6.2c0-3.4 2.8-6 6.2-6z" fill="#fff"/> - <path d="M417.3 137.7h-1c0-2.2-1.2-4.2-3-5a5.6 5.6 0 0 0-2.6-.7v-1c2.2 0 4.4 1.2 5.6 3a6.7 6.7 0 0 1 1 3.7zm-6.6 6.6v-1c2 0 4-1.2 5-3 .4-1 .6-1.8.6-2.6h1c0 2.2-1.2 4.5-3 5.6a6.6 6.6 0 0 1-3.6 1zm-6.7-6.7h1c0 2.2 1.3 4.2 3.2 5a5.6 5.6 0 0 0 2.5.7v1c-2.3 0-4.5-1.2-5.6-3a6.7 6.7 0 0 1-1-3.6zm6.7-6.6v1c-2 0-4 1.2-5 3a5.7 5.7 0 0 0-.7 2.6h-1c0-2.2 1.2-4.4 3-5.6a6.6 6.6 0 0 1 3.7-1z" fill="#21231e"/> - <path d="M400.4 136.2c3.5 0 6.3 3 6.3 6.4 0 3.5-2.8 6.4-6.3 6.4s-6.4-3-6.4-6.4c0-3.5 2.8-6.4 6.4-6.4z" fill="#fff"/> - <path d="M407.2 142.6h-1c0-2.2-1.3-4.3-3.3-5.3a5.8 5.8 0 0 0-2.6-.6v-1c2.3 0 4.6 1.2 5.8 3.2a7 7 0 0 1 1 3.6zm-6.8 7v-1c2 0 4.2-1.4 5.2-3.3a6 6 0 0 0 .6-2.7h1c0 2.3-1.2 4.7-3.2 6a6.8 6.8 0 0 1-3.6 1zm-7-7h1c0 2.2 1.4 4.3 3.3 5.3a5.8 5.8 0 0 0 2.7.5v1c-2.4 0-4.7-1.2-6-3.2a7 7 0 0 1-1-3.7zm7-7v1c-2.2 0-4.3 1.4-5.3 3.3a6 6 0 0 0-.5 2.6h-1c0-2.4 1.2-4.7 3.2-6a6.8 6.8 0 0 1 3.7-1z" fill="#21231e"/> - <path d="M392.8 145.3c3.5 0 6.3 2.8 6.3 6.4 0 3.5-2.7 6.4-6.2 6.4s-6.4-2.8-6.4-6.3c0-3.6 3-6.4 6.4-6.4z" fill="#fff"/> - <path d="M399.6 151.7h-1c0-2.2-1.3-4.4-3.2-5.3a5.8 5.8 0 0 0-2.6-.6v-1c2.3 0 4.6 1.2 5.8 3.2a7 7 0 0 1 1 3.7zm-6.8 7v-1c2 0 4.2-1.4 5.2-3.4a6 6 0 0 0 .6-2.6h1c0 2.3-1.2 4.6-3.2 6a6.8 6.8 0 0 1-3.6 1zm-7-7h1c0 2 1.4 4.3 3.3 5.2a5.8 5.8 0 0 0 2.8.6v1c-2.4 0-4.6-1.3-6-3.3a7 7 0 0 1-1-3.6zm7-7v1c-2.2 0-4.3 1.3-5.3 3.3a6 6 0 0 0-.6 2.7h-1c0-2.4 1-4.7 3.2-6a7 7 0 0 1 3.6-1z" fill="#21231e"/> - <path d="M391.5 156.7c3.6 0 6.4 2.8 6.4 6.4s-3 6.5-6.5 6.5-6.3-3-6.3-6.4 2.8-6.3 6.3-6.3z" fill="#fff"/> - <path d="M398.4 163h-1c0-2-1.3-4.2-3.2-5.2a5.8 5.8 0 0 0-2.7-.6v-1c2.4 0 4.7 1.2 6 3.2a7 7 0 0 1 1 3.7zm-7 7v-1c2.3 0 4.4-1.3 5.4-3.3a6 6 0 0 0 .6-2.6h1c0 2.5-1.3 5-3.4 6a6.8 6.8 0 0 1-3.5 1zm-6.7-7h1c0 2.3 1.3 4.4 3.2 5.4.7.4 1.6.6 2.5.6v1c-2.3 0-4.6-1.3-5.8-3.2a7 7 0 0 1-1-3.7zm6.8-6.8v1c-2 0-4.2 1.3-5.2 3.2a6 6 0 0 0-.6 2.7h-1c0-2.3 1.2-4.6 3.2-5.8a7 7 0 0 1 3.5-1z" fill="#21231e"/> - <path d="M474.4 198c-2.7-5-5.6-8.2-8.6-9.6 4.2-13.2 5.2-30.2 2.7-51-.2-3.3-1-4.6-2.2-4.6-1 0-1.7 1.6-1.8 5.2.8 11.6 1.7 21.6 1.2 30.2-.5 7.6-2.3 14-4.2 21.2-.3 1 .4 1.7 3.8 3.7 2.6 1.5 4.2 3.3 4.7 5 .7-.2 1.2 0 1.5 0 2.5.8 3.6.6 3 0z" fill="#edb92e"/> - <path d="M465.3 188.2l1 .3-.3-.6h.3l.3.2.3.2.2.2h.3l.3.3h.3l.4.4.2.2.3.2.2.3.3.3.3.3.3.3.3.2.3.3.3.3.2.3.2.5.3.3.3.4.2.3.3.4.3.3.2.4.3.4.3.5.2.5.3.4.3.4.3.5.3.5-1 .5-.3-.5-.2-.4-.3-.5-.2-.5-.3-.4-.3-.3-.2-.4-.3-.4-.3-.5-.3-.4-.2-.2-.3-.4-.4-.3-.2-.2-.3-.3v-.3l-.4-.3-.3-.4-.2-.3-.2-.2-.3-.2-.2-.2-.3-.2-.3-.2-.2-.2-.3-.2-.3-.2-.3-.2h-.3l-.3-.3-.4-.2-.3-.6zm.3.6h-.4v-.6l.4.6zm2.4-51.5h1l.2 2 .2 1.8.2 2 .2 2v1.8l.2 1.8v1.8l.2 1.8v15l-.3 1.5-.2 1.5v1.5l-.3 1.5-.2 1.5-.2 1.4-.2 1.5-.2 1.3-.3 1.4-.3 1.3-.3 1.4-.3 1.3-.4 1.3-.3 1.3-.4 1.2-1-.3.4-1.2.4-1.3.4-1.3.3-1.3.3-1.2.3-1.3.3-1.4.2-1.3.3-1.4.3-1.5.2-1.4V172l.3-1.6V169l.2-1.7v-1.6l.2-1.6v-13.6l-.2-1.8v-2l-.2-1.7-.2-2-.2-1.8-.2-2-.2-2zm0 0zm-1.7-4v-1h.6v.2h.3v.2h.2l.2.3h.2v.5h.2v.3l.2.2v.3l.2.2v.4l.2.4v.9l.2.3v.4h-1v-.9l-.2-.2v-.6l-.2-.2v-.5h-.2v-.5h-.2v-.2l-.2-.2h-.2v-.2h-.4zM465 138h-1v-1.7l.2-.3v-1l.2-.3v-.7h.2v-.3l.2-.3v-.3h.2l.2-.2.3-.2.2-.2h.5v1h-.2v.2h-.2v.2l-.2.2v.3l-.2.3v.6l-.2.2v1.6l-.2.4v.7zm-1 0zm2.2 30.2h-1V154l-.2-1v-2.8l-.2-1v-2l-.2-1v-1l-.2-1v-2l-.2-1V139l-.2-1 1-.2v1l.2 1.2v2l.2 1v2.2l.2 1v2l.2 1v2l.2 1v2.8l.2 1v12zm-4.3 21.3l-1-.3.2-.6v-.7l.3-.8.2-.6.2-.7v-.7l.2-.7.2-.6.2-.7v-.6l.3-.6v-.6l.2-.6.2-.7v-.5l.2-.6.2-.8v-.6l.2-.7.2-.7v-.7l.2-.6v-.7l.2-.6v-.7l.2-.7v-.7l.2-.6V169l.2-.8h1v1.5l-.2.7v1.5l-.2.6v.7l-.2.8v.7l-.2.6v.8l-.2.7-.2.6v.8l-.2.6-.2.7v.7l-.3.7v.6l-.3.7v.6l-.3.6-.2.6v.6l-.3.7-.2.5-.2.7v.6l-.3.7-.2.7-.2.6v.7zm3.6 3l-.5 1-.2-.2h-.3l-.3-.3-.3-.2h-.4l-.2-.3h-.2l-.3-.3h-.3v-.2l-.3-.2h-.2l-.2-.2-.2-.3h-.2v-.2h-.2l-.2-.2v-.2l-.2-.2v-1l1 .2v.5h.2v.2l.2.2h.2v.2h.2l.2.2.3.3h.2l.2.2.2.2h.2l.2.3h.3l.3.3.3.2h.3zm0 0zm4.2 5.2l.4 1-.7-.4v-.2l-.2-.2v-.3l-.2-.2v-.3l-.2-.3-.3-.3-.2-.3-.3-.2-.3-.3v-.2h-.3v-.2h-.3v-.2l-.3-.2h-.2v-.3h-.3l-.2-.2h-.3l-.2-.2-.2-.2h-.2l.6-1 .2.2h.2l.3.3.2.2.2.2h.2v.3h.4l.2.3.3.3.3.3.2.2.3.3v.3l.3.2h.2v.3l.3.2v.2h.2v.3l.2.2v.2l.2.3v.3l.2.2v.2l-.6-.3zm.4 1h-.5l-.2-.4.7.3zm1.4-1.2l-.3 1h-1l-.4-.8h.2l.2-.2h1.4zm3.3.5h-1l.7-.4.2.2v.8l-.2.2h-.2v.2h-1.8l-.2-.2h-.3l-.2-.2h-.5l.3-1h.7l.2.2h1v.2h.7v.4l.7-.4zm-1 0v-1l.7.6-.8.4zm0 0h1l-1 .3v-.3z" fill="#21231e"/> - <path d="M458.4 214.6c1.6-1 2-.8 2.4-1.4.6-.8.6-2.2.4-3.5-.8-5.3 2.4-4.6 6-2.2 1.7 1 3.5 4 5 5.3s2.8 1.5 3.2 2v9.2c-.4.6-1.7.7-3.2 2-1.5 1.5-3.3 4.2-5 5.4-3.6 2.3-6.8 3-6-2.2.2-1.3.2-2.7-.4-3.5-.5-.7-.8-.4-2.4-1.4-1-.6-1.8-1.4-2.3-2.2-.4-.8 0-1.7 0-2.6 0-1-.4-1.8 0-2.6.6-.8 1.4-1.6 2.4-2.2z" fill="#edb92e"/> - <path d="M460.4 213l.8.5-.2.2-.2.2h-.4v.2h-.4l-.2.2h-.2l-.2.2h-.2v.2h-.5v.2l-.7-1h.6v-.2h.2l.2-.2h.2l.2-.2h.4v-.2h.4v-.2h.2zm.3-3.2l1-.2v2.9l-.2.3v.2h-.2v.2l-1-.5v-.2h.2v-.4h.2v-2.6zm6.7-2.8l-.6 1-.3-.3-.3-.2-.3-.2-.4-.2h-.3l-.3-.2h-.3l-.3-.2h-.3v-.2h-.4l-.2-.2h-1.1v.2h-.2v.2l-.2.2v.6l-.2.3v2l-1 .2v-3l.2-.4v-.3l.3-.2.3-.2.2-.2h.2l.2-.2h.2l.2-.2h1.5v.2h.5l.3.2h.3l.4.3h.3l.3.2.4.2.3.2.3.2.4.2zm5 5.4l-.6.7-.3-.2-.3-.3-.3-.3-.2-.2-.2-.2-.3-.3-.2-.2v-.2h-.2v-.3l-.3-.2-.3-.3-.2-.2v-.2l-.3-.2v-.2h-.3l-.2-.3-.3-.2-.2-.2h-.2l-.2-.2v-.2h-.3v-.2h-.2l.6-1 .2.2.3.2v.2h.3v.3h.3l.2.2.2.2v.2l.3.2h.2v.3l.3.3.2.2v.2l.3.2.3.3h.2v.3l.3.2.2.2.2.2.3.3v.2h.3v.3h.3v.3h.2zm3.5 2.4h-1.2v.3h-.2l-.2-.2h-.2v-.2h-.4l-.2-.2h-.2v-.2h-.3v-.2h-.3v-.2l-.3-.2-.3-.2-.2-.3.7-.6h.2v.2h.2v.2h.2v.2h.2v.2h.3l.2.2.2.2h.2l.2.2h.2l.2.2h.2v.2h.4v.2l.2.2v.2zm-.2-.2v.2-.2zm0 4.8h-1v-4.5l1-.2v4.5zm-1 0zm0 0h1-1zm0 0zm1 5l-1-.7v.3-4.4h1v4.7zm0-.4v.2-.2zm-3.3 2.5l-.7-.8h.2v-.2l.3-.2.3-.2h.3v-.2h.3v-.2h.2l.2-.2h.2v-.2h.4v-.2h.4v-.2l1 .5-.2.2-.2.2h-.2v.2h-.4l-.2.2h-.2v.2h-.4v.2h-.3v.2h-.2l-.2.2-.2.2v.2h-.3zm-5 5.3l-.7-.8h.2v-.2l.3-.2.3-.2.2-.2.3-.3.2-.2.2-.2.2-.2v-.2h.3v-.3l.2-.3.2-.2v-.2l.3-.2.3-.2v-.2l.3-.2.2-.2v-.2h.3v-.3l.3-.2.2-.2h.2v-.3h.3v-.3l.8.8-.2.2-.2.2-.2.2v.2h-.3v.3l-.3.2-.3.2-.2.2-.2.2-.2.2v.2l-.3.2v.2l-.2.2h-.2v.3h-.3l-.2.3v.2h-.2l-.2.3-.2.2-.3.3-.3.3-.3.2zm-6.8-2.7l1 .3v2.6l.2.2v.2h.2v.2h1.7v-.2h.4l.3-.2h.3l.3-.3.3-.3h.3l.2-.3.3-.2.3-.2.6.8-.4.2-.3.3-.3.2h-.4l-.3.3-.3.2h-.3l-.2.3h-.4l-.3.2h-.4l-.3.2h-.9l-.3-.2h-.3l-.2-.3-.2-.2-.2-.2v-.3l-.2-.2v-.7l-.2-.3V229zm-.3-3l.8-.6v.2h.2v.4h.2v.6l.2.2v2.4l-1-.2v-2.5h-.2v-.4h-.2v-.2zm-2.3-1.3l.7-.8h.2l.2.2h.2l.2.2h.2l.2.2h.4v.2h.2v.2h.2l.2.2.2.2-.8.6-.2-.2h-.2v-.2h-.4l-.2-.2h-.4v-.2h-.2l-.2-.2h-.2v-.2h-.3zm.7-.8l.5.2-.5-.3zm-3-1.7l.8-.5.2.2v.2h.2v.4h.2v.2h.2v.2h.2v.2h.2l.2.2.2.2h.2v.2h.2l-.5 1v-.2h-.2l-.2-.2-.2-.2h-.2v-.2h-.2v-.2h-.2v-.2h-.2v-.2h-.2v-.2h-.2v-.2l-.2-.2-.2-.2v-.2zm-.3-3h1v2.4l-.7.5v-.2h-.2v-.4l-.2-.2v-2.1zm.3-2.8l.8.6v.4l-.2.2v1.8h-1V217h.2v-.4h.2zm2.4-2.4l.7 1h-.2v.2h-.2l-.2.2-.2.2-.2.2-.2.2-.2.2-.2.2v.2h-.2v.2h-.2v.2l-1-.5h.2v-.2l.2-.2.2-.2v-.2h.2l.2-.2v-.2h.2v-.2h.2l.2-.2h.2v-.2l.2-.2h.2v-.2h.2zm.7 1l.5-.3-.5.3z" fill="#21231e"/> - <path d="M475.5 220.2v1c-4 .4-7 2-9.7 4.3 1.8-2.7 5.7-4.7 9.7-5.3zm0-1.6v-.8c-4-.5-7-2-9.7-4.4 1.8 2.7 5.7 4.6 9.7 5.2z" fill="#21231e"/> - <path d="M461.2 207.3c1 .4 2.3 1 3.4 2 1.6 1.5.6 4-1.5 6.6-.6.7-1 2-1 3.5 0 1.3.5 2.7 1 3.5 2.2 2.5 3.2 5 1.6 6.6-1 1-2.3 1.5-3.4 2v-2.4c.2-1.3.2-2.7-.4-3.5-.5-.7-.8-.4-2.4-1.4-1-.6-1.8-1.4-2.3-2.2-.4-.8 0-1.7 0-2.6 0-1-.4-1.8 0-2.6.6-.8 1.4-1.6 2.4-2.2 1.6-1 2-.8 2.4-1.4.6-.8.6-2.2.4-3.5v-2.4z" fill="#edb92e"/> - <path d="M465 209l-.8.6-.2-.2-.2-.2h-.2v-.2h-.2l-.2-.2h-.2v-.2h-.4v-.2h-.5v-.2h-.2l-.2-.2h-.2l-.2-.2h-.2l.4-1h.2l.2.2h.2l.2.2h.3l.2.2h.2v.2h.3l.2.2h.2v.2h.3v.2h.2l.2.2.2.2.2.2zm-1.5 7.2l-.8-.6.2-.3v-.2h.2l.2-.3.2-.3v-.2l.3-.2v-.5l.2-.2v-.2h.2v-.3l.2-.2v-.4h.2v-1.6l-.2-.3-.2-.2-.2-.2.7-.7.3.3v.2l.2.2v.2h.2v.5l.2.2v1l-.2.2v.4l-.2.2v.5l-.2.3v.3l-.3.2v.5l-.3.2v.3l-.3.2-.2.3v.2l-.3.2-.3.3-.2.2zm-1 3.3h-1v-.7l.2-.2v-1.2h.2v-1h.2v-.4l.2-.2v-.2h.2v-.2l1 .6h-.2v.4h-.2v.2l-.2.2v.9h-.2v1.4h-.2v.5zm1 3.2l-.8.6v-.2h-.2v-.2h-.2v-.4h-.2v-1.1l-.2-.3V220h-.2v-.5h1v1.1l.2.2v.4l.2.2v.4l.2.2v.2h.2v.2zm1.5 7.3l-.8-.8h.2v-.2h.2v-.3l.2-.2v-1.9l-.2-.2v-.2l-.2-.2v-.2l-.2-.3v-.2l-.2-.2-.3-.3v-.3l-.3-.2-.2-.2v-.2l-.3-.3-.3-.2.8-.6.2.2h.2v.4l.2.2.2.3h.2v.3l.3.3v.5l.3.3v.3l.2.2v.5l.2.2v.5l.2.2v.7l-.2.4v.4l-.2.2v.2l-.2.2v.2l-.3.2v.2zm-4.3 1.7l1-.2-.7-.4h.7v-.2h.4l.2-.2h.2l.2-.2h.2v-.2h.4v-.2h.2l.2-.2.2-.2h.2v-.2h.2v-.2l.8.8h-.2v.2h-.2v.2h-.2l-.2.2-.2.2h-.2l-.2.2h-.2v.2h-.4v.2h-.4v.2h-.5v.2h-.2l-.2.2h-.2l-.7-.3zm.7.4l-.6.3v-.6l.6.4zm-.7-3l1 .3v2l-1 .3v-2.4zm-.3-3l.8-.6v.2h.2v.4h.2v.6l.2.2v2.4l-1-.2v-2.4h-.2v-.4h-.2v-.2zm-2.3-1.3l.7-.8h.2l.2.2h.2l.2.2h.2l.2.2h.4v.2h.2l.2.2.2.2.2.2-.8.6-.2-.2h-.2v-.2h-.4l-.2-.2h-.4v-.2h-.2l-.2-.2h-.2v-.2h-.3zm0 0l-.3-.2.4.2zm-2.3-2.4l.8-.5.2.2v.2h.2v.4h.2v.2h.2v.2h.2v.2h.2l.2.2h.2v.2h.2v.2h.2l-.5 1v-.2h-.2l-.2-.2-.2-.2h-.2v-.2h-.2v-.2h-.2v-.2h-.2v-.2h-.2v-.2h-.2v-.2l-.2-.2-.2-.2v-.2zm0 0l.3.5-.3-.5zm-.3-3h1v2.4l-.7.5v-.2h-.2v-.4l-.2-.2v-2.2zm.3-2.8l.8.6v.4l-.2.2v1.8h-1V217h.2v-.4h.2zm2.4-2.4l.7 1h-.2v.2h-.2l-.2.2-.2.2-.2.2-.2.2-.2.2-.2.2v.2h-.2v.2h-.2v.2l-1-.5h.2v-.2l.2-.2.2-.2v-.2h.2l.2-.2v-.2h.2v-.2h.2l.2-.2h.2v-.2h.2v-.2h.2v-.2h.2zm2.4-1l.8.5-.2.2-.2.2h-.4v.2h-.4l-.2.2h-.2l-.2.2h-.2v.2h-.5v.2l-.7-1h.6v-.2h.2l.2-.2h.2l.2-.2h.4v-.2h.4v-.2h.2zm.3-3.2l1-.2v2.9l-.2.2v.2h-.2v.2l-1-.5v-.2h.2v-.4h.2V210zm.5-2v-1l.5.6v2.1l-1 .2V207l.5.6zm0-1h.6v.6l-.6-.6zm0 0v1h-.2l.2-1zM361 226.3l.7-.3c-1.6-2.2-2-4.2-1.3-6.3-1.3 1.6-1 4.2.6 6.6z" fill="#21231e"/> - <path d="M410.7 200c1.4 1.6 1.2 2 2 2.5 1 .6 2 .4 3.3 0 5-2 5 2 3.5 6.4-.7 2-2.8 4.3-3.7 6.2-1 1.7-.7 3-1 3.5a95.4 95.4 0 0 1-4 .6l-4 .5c-.6-.3-1-1.6-2.6-3s-4.4-3-6-4.6c-3-3.5-4.6-6.8.2-6.7 1.2 0 2.4-.2 3-1 .4-.7 0-1 .4-3 .3-1.2.8-2.3 1.4-3 .6-.8 1.5-.6 2.3-.7 1-.2 1.6-.7 2.5-.2 1 .4 2 1.2 2.7 2.3z" fill="#edb92e"/> - <path d="M413 202l-.6 1-.2-.2-.2-.2-.2-.2v-.2h-.2v-.2l-.2-.2v-.2l-.2-.2v-.2h-.2v-.2l-.2-.2-.2-.3-.3-.3.8-.6.3.2.2.3v.2h.2v.4h.2v.4h.2v.2l.2.2v.2h.2v.2l.2.2zm-.6 1zm3.5-1l.2 1h-.5l-.2.2h-.8v.2h-1.2l-.3-.2h-.2l-.2-.2h-.2l.5-1v.2h.8v.2h1l.2-.2h.4l.2-.2h.3zm4 7l-1-.3v-.4l.2-.4v-.5l.2-.4v-.3l.2-.3v-.7l.2-.4v-1.7l-.2-.2v-.4h-.2l-.2-.3h-.2l-.3-.2H417l-.4.3h-.4l-.3-.8.3-.2h.5l.4-.2h1.8l.3.2h.3l.2.3.2.4v.2l.3.3.2.4v3.3l-.2.4v.4l-.2.4v.4l-.2.4v.4zm-3.7 6.4l-1-.5v-.2l.2-.2.2-.2v-.2l.2-.2v-.4l.2-.2.2-.2v-.2l.2-.2.2-.2.2-.3.2-.2.2-.3.2-.2v-.2l.2-.2h.2v-.3l.2-.2v-.2l.2-.2.2-.3v-.2l.2-.2v-.2l.2-.3 1 .3v.2l-.2.3v.2l-.2.2-.2.3v.2l-.2.2v.3l-.3.2-.2.2v.2l-.2.2-.2.2v.2l-.2.2-.2.2v.2l-.3.2v.2l-.2.2-.2.2v.2l-.2.2v.4h-.3v.3l-.2.2-.2.2v.2zm-1.5 3.8l-.2-1-.3.2v-.4h.2v-1l.2-.2v-.4l.2-.3v-.4l.2-.3v-.2h.2l1 .4-.2.2-.2.3v.3h-.2v.7h-.2v.9l-.2.2v.4l-.2.2v.2l-.4.2zm.3 0h-.2.3zm-4.3.6v-1h1.1v-.2h1.2v-.2h1.1l.3-.2.2 1h-.4l-.3.2h-.9l-.2.2h-1.3v.2h-.7zm0 0zm0 0v-1 .5-.5 1-.5.5zm0-1zm-4 1.5l.4-1h-.2 1.3l.3-.2h1.9l.2-.2.2 1h-.8v.2h-1.4v.2h-2zm.2 0h-.3.2zm-3-3l.5-1 .2.3.3.3h.2l.2.3.2.2.2.3.2.2v.2h.2v.2h.2v.2l.2.2v.2h.2v.2h.2v.2l-.4 1v-.2h-.2l-.2-.2-.2-.2v-.2h-.2v-.2l-.2-.2v-.2h-.2v-.2l-.2-.2-.2-.2-.2-.2-.2-.3v-.2h-.2v-.2h-.3v-.3zm-6-4.8l.7-.6.2.2.3.3.3.3h.2v.3l.3.2h.3l.2.3h.2l.2.3.3.3.2.2.2.2h.2v.2l.3.2h.2l.2.3.2.2.3.3h.2l.2.3.3.2.2.2h.2v.2l-.5.8h-.3v-.2l-.3-.2h-.2v-.2l-.3-.2h-.3l-.2-.2-.2-.2h-.2v-.2l-.3-.2h-.2l-.2-.3h-.2v-.2h-.3l-.2-.2-.2-.2h-.2v-.3h-.3l-.2-.3-.2-.2h-.2v-.3h-.3v-.3l-.3-.2h-.2v-.3l-.3-.2zm.4-7.5v1H397l-.2.2h-.4l-.2.2v.2h-.2v1.5l.2.3v.3l.2.2.2.3.2.4.2.3.2.3.2.3.2.3.3.3v.2l.4.3.3.4-.8.5-.4-.3-.3-.3-.2-.4-.2-.4-.2-.3-.3-.4-.2-.3v-.4l-.3-.4v-.3l-.3-.3v-.3l-.3-.3V206l.2-.2.2-.2.2-.2.3-.2h.2l.3-.2h.7l.4-.2h.8zm2.5-.8l.8.5-.2.2-.2.2h-.2v.2h-.2l-.2.2h-.2l-.2.2h-.5l-.2.2h-1.1v-1h1.4l.2-.2h.2l.2-.2h.2v-.2h.2v-.2zm0 0zm.4-2.8l1 .2v.4h-.2v2h-.2v.4l-.2.2-1-.4h.2v-1.4l.2-.3v-.8l.2-.2zm1.4-3.2l.8.6-.2.2v.2h-.2v.4h-.2v.4h-.2v.4l-.2.2v.4l-.2.2v.4l-1-.2v-.7l.2-.2v-.4l.2-.2v-.4h.2v-.4h.2v-.4h.2v-.2h.2v-.4h.2zm.8.6l.5-.7-.4.8zm1.8-1.5l.2 1H404v.2h-.4v.2h-.2l-.8-.5.2-.2.2-.2h.2v-.2h.4l.2-.2h1.4zm.2 1h-.7.6zm2.7-1.2l-.5 1H406l-.2.2h-.4l-.2-1h.8l.2-.2h2.1zm3 3h-1v.2-.2h-.2v-.2l-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2h-.2v-.2h-.2l-.2-.2-.2-.2h-.2l-.2-.2.5-1v.2h.2l.2.2h.2v.2h.2v.2h.2l.2.2.2.2.2.2h.2v.2h.2v.2l.2.2.2.2.2.2v.2l.3.3zm-.2-.4h.2v.3-.4zm-.8.3h1l-1 .2v-.3zm0 .2v-.3.2z" fill="#21231e"/> - <path d="M410 219.4h-.7c-1.4-3.8-3.5-7-6.3-9.5 2.8 1.4 5.5 5.3 7 9.4zm1.4-.2c.3 0 .5 0 .8-.2-.5-4 0-7.5 1.5-11-2 2.5-2.8 7-2.3 11.2z" fill="#21231e"/> - <path d="M418.3 202c-.2 1.4-.4 3-1 4.3-1 2-3.8 1.3-6.6-.7-.8-.6-2.2-.8-3.4-.6-1.3.3-2.4.8-3 1.7-1.5 2.6-3.4 4-5.2 2.6-1-1-2-2.3-2.7-3.5.5-.2 1.2-.3 2-.3 1.3 0 2.5-.2 3-1 .5-.7 0-1 .6-3 0-1.2.6-2.3 1.2-3 .6-.8 1.5-.6 2.3-.7 1-.2 1.6-.7 2.5-.2 1 .4 2 1.2 2.7 2.3 1.4 1.6 1.2 2 2 2.5 1 .6 2.2.4 3.3 0 1-.4 1.7-.6 2.3-.5z" fill="#edb92e"/> - <path d="M417.7 206.5l-1-.4.2-.2v-.5l.2-.2v-.4l.2-.2v-.9l.2-.2v-1.2h.2v-.4h1v1.1l-.2.3v1h-.2v.7h-.2v.7h-.2v.3l-.2.3v.2zm-7.2-.5l.5-.8.3.2h.2l.3.3h.2l.3.3h.2l.3.2.2.2h.2l.3.2h.4v.2h.7l.2.2h1v-.2h.2l.2-.2.2-.3.2-.2 1 .5-.2.2-.2.3-.3.3v.2h-.2l-.2.2h-.2l-.3.2h-2l-.2-.2h-.2l-.3-.2h-.2l-.2-.2h-.2l-.3-.2-.2-.2h-.2l-.3-.3-.2-.2h-.3l-.3-.3-.2-.2zm-3-.4l-.3-1h1.1v-.2h1.3v.2h.6v.2h.4v.2h.2l.2.2-.5.8h-.2v-.2h-.4v-.2h-2.4zm-2.7 1.3l-.8-.6v-.2h.2v-.2h.2v-.2l.2-.2h.2v-.2h.2l.2-.2h.2l.2-.2h.3v-.2h.8l.2-.2h.5l.2 1h-.7v.2h-.4v.2h-.4l-.2.2h-.2v.2h-.2v.2h-.2v.2h-.2zm-6 2.7l.6-.8h.3v.2h.5l.2.2h.5l.3-.2h.3v-.2h.3v-.2h.2v-.3h.3v-.3h.3v-.3l.3-.3.2-.2.2-.2v-.2h.3v-.4l.3-.2.8.5v.2l-.3.2v.3l-.3.2h-.2v.3l-.3.2-.2.2-.2.2-.3.3h-.2l-.2.3h-.2v.3h-.3l-.3.2h-.4l-.3.2h-1.2l-.2-.2h-.2l-.2-.2-.2-.2h-.2zm-2.7-4.4l.5 1 .3-.8v.3h.2v.2l.2.2v.2h.2v.2l.2.2v.2h.2v.2l.2.2.2.2.2.2v.2h.2v.2h.2v.2h.2v.2h.2v.2h.2l-.6 1-.2-.2-.2-.2-.2-.2v-.2h-.2v-.2h-.2v-.2h-.2v-.2h-.2v-.3h-.2v-.2h-.2v-.2h-.2v-.3h-.2v-.2h-.2v-.4h-.2v-.2h-.2V205zm0 .8l-.4-.4.5-.3v.8zm2.4-1v1H397v.2h-.4l-.5-1h1.2v-.2h1.2zm2.5-.8l.8.5-.2.2-.2.2h-.2v.2h-.2l-.2.2h-.2l-.2.2h-.7l-.2.2h-1.2v-1h1.4l.2-.2h.4v-.2h.2v-.2h.2v-.2zm0 0zm.4-2.8l1 .3v.3l-.2.3v1.7h-.2v.7h-.2l-1-.4h.2v-1.4h.2v-1.3l.2-.2zm1.4-3.2l.8.6-.2.2v.2h-.2v.4h-.2v.4h-.2v.4l-.2.2v.7h-.2v.5l-1-.3v-.7l.2-.2v-.4l.2-.2v-.4h.2v-.4h.2v-.4h.2v-.2h.2v-.4h.2zm0 0l.4-.5-.4.5zm2.6-1l.2 1h-.6v.2h-1v.2h-.2l-.2.2-.8-.6.2-.2.2-.2h.2v-.2h.4l.2-.2h1.4zm0 0h.6-.6zm3 0l-.6.8H406v.2h-.5l-.2-1h.8v-.2h2.1zm-.6.8l.3.2-.2-.2zm3.3 1.6l-.6.6-.2-.2h-.2v-.2l-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2h-.2v-.2h-.2l-.2-.2h-.2v-.2h-.2l-.2-.2.5-1v.2h.2l.2.2h.2v.2h.2v.2h.2l.2.2.2.2.2.2h.2v.2h.2v.2l.2.2.2.2.2.2v.2zm2 2.5l-.6 1-.2-.2-.2-.2-.2-.2v-.2h-.2v-.2l-.2-.2v-.2l-.2-.2v-.2h-.2v-.2l-.2-.2-.2-.3-.2-.3.7-.6.3.2.2.3v.2h.2v.2l.2.2v.4h.2v.2l.2.2v.2h.2v.2l.2.2zm-.6 1l-.2-.2h.2zm3.5-1l.2 1h-.5l-.2.2h-.8v.2h-1.3l-.2-.2h-.2l-.2-.2h-.2l.5-1v.2h.6l.2.2h1.1l.2-.2h.4l.2-.2h.2zm2.8 0h-1l.5.5h-1l-.2.2h-.4l-.2.2h-.2l-.3-1 .2-.2h.8v-.2h1.5l.5.4zm-.5-.5h.6l-.2.5-.5-.5z" fill="#21231e"/> - <path d="M391.8 221.2c.7-1 1-.8 1.2-1.3.2-1-.3-2-1-3.2-2.2-4.6.3-4.2 3.6-2.4 1 .4 2 1.2 3 2 1 1 1.8 1.8 2.7 2.4 1.6 1.2 2.7 1.2 3 1.7 1 2 1.5 3.5 1.8 4.2.3.7 1 2.3 1.6 4.2 0 .4-1 .5-1.8 2-.7 1.2-1.2 3.5-2 4.7-1.4 1.6-2.5 2.6-3.4 2.4-1 0-1.6-1.3-1.8-4.2 0-1.2-.7-2.4-1.5-3-.5-.6-.6-.4-2-1.2a9.3 9.3 0 0 1-2.4-2c-.6-.6-.7-1.3-1-2-.3-1-.8-1.6-.7-2.4a3.8 3.8 0 0 1 .8-2z" fill="#edb92e"/> - <path d="M392.5 219.7l1 .3v.2l-.2.2v.2h-.2v.2h-.2v.2h-.2l-.2.2v.2h-.2l-.8-.5v-.2l.2-.2.2-.2.2-.2h.2v-.2h.2v-.2zm1 .3zm-1.8-3l1-.5v.4l.2.2v.4l.2.3v.2l.2.2v2l-1-.3v-1.2l-.2-.2v-.4h-.2v-.4h-.2v-.4zm4.2-3l-.6.8h-.3l-.2-.3h-.3l-.3-.3h-.3l-.3-.2h-.3l-.2-.2h-.5l-.2-.2h-.6v1.5l.3.4.2.3.2.4.2.5-1 .5v-.4l-.3-.4-.2-.4v-.7l-.2-.2v-1.5l.2-.2h.2l.2-.2h.2l.2-.2h1.2l.2.2h.6l.3.3.3.2h.3l.3.2.2.2.4.2h.3zm2.8 2l-.7 1v-.4h-.2l-.2-.2h-.2v-.2h-.2v-.2h-.2v-.2h-.2l-.2-.2h-.2v-.2h-.2l-.2-.2-.2-.2h-.2l-.2-.2.5-1v.2h.2v.2h.2l.2.2h.2v.2h.2l.2.2h.2v.2h.2v.2h.2l.2.2.2.2.2.2h.2v.2h.2zm2.8 2.4l-.6.8h-.2v-.2h-.2v-.2h-.2l-.2-.2h-.2v-.2h-.2v-.2h-.2v-.2h-.2l-.2-.2-.2-.2-.2-.2h-.2v-.2h-.2v-.2h-.2l.6-1v.2h.2l.2.2v.2h.2l.2.2.2.2h.2v.2h.2v.2h.2v.2h.2l.2.2.2.2h.2v.2h.2l.2.2zm3.3 2l-1 .3v.2-.2h-.2v-.2h-.4l-.2-.2h-.2l-.2-.2h-.3l-.2-.2h-.3v-.2h-.3v-.2h-.3v-.2h-.3v-.2l.6-.8.2.2h.2v.2h.3l.2.2h.2l.2.2h.2v.2h.4l.2.2h.4v.2h.2l.2.2h.2v.3zm-.2-.3v.2zm1.7 4.5l-1 .4v-.7l-.2-.2v-.4l-.2-.2v-.5h-.2v-.4l-.2-.3v-.3h-.2v-.5h-.2v-.5h-.2v-.3l1-.4v.4l.2.3v.2l.2.3v.2l.2.3v.3l.2.3v.4h.2v.4l.2.2v.4h.2v.4zm0 0zm0 0l-1 .4h.3l.3.2-.5-.5.6.5-.5-.5.6.5-.5-.5.2.4-.2-.3v.2l1-.5v.2-.4.4l-.4-.5.6.5-.5-.5.6.5-.5-.5h.4v.3zm0-.2v.2-.2zm1.6 4.7l-1-.2v.3-.5l-.2-.3v-.2l-.2-.3v-.3l-.2-.3v-.2l-.2-.2v-.4l-.2-.2v-.2l-.2-.2v-.4l-.2-.2 1-.5v.4h.2v.5h.2v.5l.2.2v.3l.2.3v.5l.2.2v.3l.2.2v.2l.2.2v.6zm0-.3v.3-.3zm-1.7 2.4l-1-.4.2-.2v-.2h.2v-.2l.2-.2v-.2h.2v-.2h.2l.2-.2h.2v-.2h.2v-.2l1 .2v.4h-.2v.2h-.2v.2h-.2l-.2.2-.2.2-.2.2-.2.2-.2.2v.2zm-2.2 5l-.7-.7.2-.3v-.2h.2v-.3l.2-.2v-.4l.2-.2v-.5h.2v-.4h.2v-.5h.2v-.2l.2-.3v-.2l.2-.3v-.2l.2-.2 1 .5-.2.2v.3h-.2v.4h-.2v.5l-.2.2v.3l-.2.2v.3l-.2.2v.3l-.2.2v.3l-.2.2v.3h-.2v.3h-.2v.3l-.2.2v.2zm-3.7 2.7l.2-1h.4v-.2h.2l.2-.2h.2v-.2h.2l.2-.2.2-.2.2-.2.2-.2.2-.3.2-.2v-.2h.2v-.3l1 .7h-.2v.3h-.3v.3h-.2v.3h-.4v.4h-.2v.2h-.2l-.2.2-.2.2-.2.2h-.3v.2h-.4v.2h-1zm-2.2-5h1v.3l.2.2v1.1h.2v.5l.2.2v.3l.2.2v.2h.2v.2h.2v.2h.2v1h-.8v-.2h-.2l-.2-.2-.2-.2v-.3h-.2v-.2l-.2-.2v-.3l-.2-.3v-.4h-.2v-1l-.2-.2v-1zm-1.2-2.6l.7-.6.2.2v.2h.2v.2l.2.2v.2h.2v.3l.2.2v.2h.2v.7h.2v.6l-1 .2v-1h-.2v-.4l-.2-.2v-.2h-.2v-.2h-.2v-.4h-.2v-.2h-.2zm-2-1l.4-.8h.3v.2h.4v.2h.4v.2h.4v.2h.4v.2h.2v.2l-.6.7h-.2l-.2-.2h-.4v-.2h-.4l-.2-.2h-.2l-.2-.2h-.3zm-2.5-2l.7-.6.2.2.2.2.2.2.2.2h.2v.2h.2v.2h.2l.2.2h.2v.2h.2l.2.2-.5 1v-.2h-.2v-.2h-.4v-.2l-.2-.2h-.2l-.2-.2-.2-.2-.2-.2-.2-.2h-.2v-.2h-.2v-.2zm-1.2-2.3l1-.4v.2h.2v.4h.2v.5h.2v.4h.2v.2l.2.2-.7.7h-.2v-.4h-.2v-.4h-.2v-.4l-.2-.2v-.8h-.2v-.2zm-.6-2.5h1v.8h.2v.4l.2.2v.2l.2.2v.2l-1 .5v-1h-.2v-.4h-.2v-.6h-.2v-.8zm1 0v.2zm.4-1.5v-1l.3.8v.4h-.2v.2h-.2v.8h-.2v.2h-1v-.9l.2-.2v-.4l.2-.2v-.2h.2v-.4h.2v-.2h.2l.4.7zm0-1h1l-.7.8-.2-.8zm0 0v1l-.4-.8.4-.3zm0 1h-1l.6-.8.4.7z" fill="#21231e"/> - <path d="M406.5 226l.2 1c-1.4.4-2.6 1-3.6 1.8s-1.7 2-2.3 3.2c.2-1.4 1-2.7 2-3.7s2.3-1.8 3.8-2.2zm-.6-1.6l-.5-1c-1.6 0-3.2-.4-4.7-1-1.5-.7-3-1.6-4.4-2.8 1 1.3 2.6 2.4 4.3 3.3 1.6.7 3.5 1.3 5.2 1.5z" fill="#21231e"/> - <path d="M391.4 213.8c1 .4 1.6.8 2.8 1.8.8.7 1.3 1.7 1.5 3 0 1 0 2.5-.3 3.8-.2.8 0 2.2.5 3.6.4 1.4 1 2.8 2 3.5 2.3 2.5 4 5 3.4 6.7-.5 1-.8 1.3-1.5 1.8-.4-.6-1-1.2-1.4-2.2-.3-1.3-.7-2.6-1.5-3.5-.5-.6-.7-1.3-2-2.2-1-.5-2-.3-2.6-1-1.2-1.6-3-5.5-1.3-7.2 1.7-1.7 2.3-2.7 1-5.6-.5-1-.5-1.8-.6-2.4z" fill="#edb92e"/> - <path d="M394.5 215.2l-.7.8-.2-.2-.2-.2-.2-.2h-.2v-.2h-.2v-.2h-.4v-.2h-.2l-.2-.2h-.2l-.2-.2h-.4l.3-1h.4v.2h.4v.2h.4v.2h.4v.2h.2v.2h.2l.2.2.2.2h.2v.2h.2v.2zm1.7 3.2l-1 .2v-.6h-.2v-.7h-.2v-.4l-.2-.2v-.2h-.2v-.2h-.2v-.2h-.2v-.2h-.2l.7-.8h.2v.2l.2.2v.2h.2v.2l.2.2v.2h.2v.4l.2.2v.4h.2v.8h.2v.2zm-.3 4h-1V221h.2v-2.4l1-.2v3.3l-.2.2v.5zm-1 0v-.3.3zm1.4 3.5l-1 .2v-.5l-.2-.3v-.4l-.2-.3v-.8h-.2v-1.4h1v1.9h.2v.7h.2v.7h.2v.3zm1.8 3.2l-.7.7v-.2l-.2-.2h-.2v-.4h-.2v-.2l-.2-.3v-.2h-.2v-.2l-.2-.3v-.2h-.2v-.5l-.2-.2-.2-.3v-.4h-.2l1-.4v.2l.2.2v.2l.2.3.2.2v.3l.2.2v.2h.2v.2h.2v.4h.2v.2h.2v.2h.2v.2zm3.6 7.2l-1-.4.2-.2v-1.3l-.2-.2v-.4l-.2-.2v-.2l-.2-.2-.2-.2v-.2l-.2-.2-.2-.2v-.2l-.3-.2-.2-.3v-.3l-.3-.2-.2-.2-.2-.3-.2-.2-.2-.2-.2-.2-.3-.3h-.2l.7-.8.3.2.2.2.2.3.3.4.3.2.2.2v.3l.3.3.3.2.2.3v.2l.3.2.2.3v.2l.2.2.2.2v.2l.2.2v.2l.2.3v.7l.2.2v1.2l-.2.2zm-2.4 1.8l1-.4-.8-.2.2-.2h.2v-.2h.2v-.2h.2v-.2l.2-.2v-.2l.2-.2v-.2l1 .4v.2l-.2.2v.2l-.2.2v.2h-.2v.2h-.2v.2h-.2v.2h-.2v.2h-.2l-.2.2-.8-.2zm.8.2l-.5.3-.3-.5.8.2zm-2-2.5l1-.3v.4h.2v.4h.2v.2h.2v.2l.2.2v.2h.2v.4l-.8.4v-.2h-.2v-.2l-.2-.2v-.2h-.2v-.2h-.2v-.4l-.2-.2v-.2l-.2-.2v-.3zm-1.5-3.3l.8-.7v.2h.2v.2l.2.2v.2l.2.2v.2h.2v.5h.2v.4l.2.2v.4l.2.3v.7l-.8.2v-.4h-.2v-.5l-.2-.2v-.5h-.2v-.2l-.2-.2v-.2l-.2-.2v-.2h-.2v-.2l-.2-.2zm0 0zm-2-2.2l.4-1 .3.2.2.2h.2l.2.2.2.2.2.2v.2h.2v.2h.2v.2l.2.2.2.2v.2h.2v.2l-.7.7-.2-.2v-.2h-.2v-.2h-.2v-.4h-.2v-.2h-.2v-.2h-.2v-.2h-.2v-.2h-.4v-.2h-.2zm-2.7-1.3l.8-.6h.2v.2h.2v.2h.9l.2.2h.4l.2.2h.2l.2.2-.4 1v-.2h-.4l-.2-.2h-.9v-.2h-.4l-.2-.2h-.2l-.2-.2-.2-.2-.2-.2zm-1.2-7.8l.7.7v.3h-.2v.3h-.2v2.2l.2.3v.5l.2.2v.2l.2.3v.2l.2.2v.2l.2.2v.2l.3.2v.2h.2v.3l.2.2-.7.7-.2-.3-.2-.3v-.2l-.2-.2v-.2h-.3v-.3l-.2-.3-.2-.4v-.2l-.2-.3v-.2l-.2-.2v-.6l-.2-.3v-2.1l.2-.3v-.2h.2l.2-.3.2-.3zm.7-5l1-.5v.5l.2.2v.3l.2.2v.7h.2v1.7l-.2.2v.2l-.2.2v.2h-.2v.3h-.2v.2l-.2.2-.3.3h-.2l-.2.3-.8-.6.2-.3h.2l.2-.3.2-.3.2-.2v-.3l.2-.2v-.2l.2-.3v-.7l-.2-.2v-.5l-.2-.2-.2-.4v-.2zm0-3v1l.4-.7v1.4h.2v1.1h.2l-1 .6v-.9h-.2v-.7l-.2-.2v-1l.4-.7zm-.6.5l-.3-.7h.7l-.5.6zm.4.3v-1 1zm0-1z" fill="#21231e"/> - <path d="M434 226.2c-1.2 1-1.5 1-2 1.6-.3.8 0 2 .3 3.3 1.5 5-1.4 4.4-5 2.6-1.6-1-3.6-3.2-5.2-4.4-1.5-1-2.6-1-3-1.6a118.7 118.7 0 0 1-1-4.3c0-.7-.5-2.4-1-4.4.4-.7 1.4-1 2.5-2.5 1-1.7 2.2-4.7 3.6-6 3-3.2 6-4.5 6 1.3 0 1.4.3 3 1 3.6.6.6 1 .3 2.5 1 1 .6 2 1.3 2.6 2 .7 1 .5 2 .7 2.8 0 1 .5 1.7.2 2.6-.5 1-1 1.7-2 2.4z" fill="#edb92e"/> - <path d="M432.6 228l-1-.5h.2v-.4h.4v-.2h.4v-.2h.2l.2-.2h.2v-.2h.2v-.2h.2v-.2l.8.8-.2.2h-.2v.2h-.2l-.2.2-.2.2h-.2v.2h-.4v.2h-.2v.2zm-1-.5zm1 3.4l-.8.3v-.2l-.2-.2v-.7h-.2v-2.3h.2v-.2l1 .4v.2h-.2v2.1h.2v.7zm-5.4 3l.5-.8h.3l.3.3h.3l.3.3h.2l.3.2h.2l.3.2h.7l.2.2h.7v-.2h.2v-.4l.2-.3v-1.1l-.2-.3v-.3l-.2-.4 1-.4v.4l.2.4v.8l.2.3v1.1l-.2.4v.2l-.3.2-.2.2h-.2l-.2.2-.4.2h-1.2l-.3-.2h-.6l-.3-.3-.2-.2h-.3l-.3-.2-.4-.2-.3-.2h-.3zm-5.4-4.3l.6-1 .2.2.3.2.2.3h.2v.3h.3v.3l.3.2.2.2h.2v.3h.3l.2.3.2.3.2.2.3.3h.2v.2l.2.2h.2l.2.2v.2h.3v.2h.2l.2.2.3.2-.5 1-.2-.2h-.2v-.2l-.3-.2h-.2l-.2-.2-.2-.3h-.2l-.2-.2h-.2v-.3h-.3l-.3-.3h-.2v-.3l-.3-.3h-.2l-.2-.3-.3-.3h-.2v-.2h-.3l-.2-.3-.3-.3-.3-.2-.3-.2h-.2zm.6-1zm-4-1l1-.2v-.2h.2v.2h.4l.2.2h.4v.2h.7l.2.2h.2l.2.2.3.2h.2l.2.2-.6 1v-.2h-.3v-.2h-.2l-.2-.2-.2-.2h-.3l-.2-.2h-.2v-.2h-.4l-.2-.2h-.2l-.2-.2h-.2v-.2h-.2v-.3zm.2.3v-.3.3zm-.6-4.2v-1l.5.4v.4l.2.2v1h.2v1.3h.2v1h.2v.5l-1 .2v-.7l-.2-.3v-.7l-.2-.3v-.7h-.2v-.8l-.2-.2v-.6l.4.4zm0-1h.5v.4l-.5-.4zm-.5.6l1-.2v-.2l-.5-.2v1h-.3l-.2-.5zm1-.2zm-1.8-4.5l1 .4v-.2 1.1h.2v1.1l.2.3v.8l.2.2v.9l-1 .2V222l-.2-.2v-.8l-.2-.3v-.7h-.2v-.8l-.2-.2v-.3zm0 .3v-.3.3zm2.4-2.8l1 .5-.2.2-.2.2-.2.3-.2.2-.2.2h-.2v.2h-.2l-.2.2h-.2v.2h-.2v.2h-.2v.2h-.2l-1-.3h.2v-.4h.2v-.2h.4v-.2h.2l.2-.2.2-.2.2-.2h.2v-.2l.2-.2.2-.2v-.2h.2v-.2zm3.7-6.2l.8.7h-.2v.3h-.2v.3l-.3.3v.2l-.2.2v.2h-.2v.3l-.2.3v.4l-.3.2v.2l-.2.2v.2l-.2.2v.2l-.2.2v.3l-.2.3v.2l-.2.2v.2h-.2v.2l-.2.2-.2.2-1-.4.2-.2.2-.3v-.2h.2v-.3l.2-.2v-.2l.2-.2v-.2l.2-.2v-.2l.2-.2v-.3l.2-.2v-.2h.2l.2-.3v-.2l.2-.2v-.3l.2-.2v-.2l.3-.2v-.2l.2-.2.2-.3v-.2l.2-.2h.2v-.3zm6.8 1.8h-1v-1.4l-.2-.4v-.6l-.2-.2v-.4l-.2-.2h-.3v-.2h-1.2l-.3.2-.3.2h-.2l-.3.3-.2.3-.3.2-.2.2-.3.2-.2.2-.3.2-.2.3-.8-.7.3-.3.3-.3.3-.2.2-.3.3-.3.4-.2.3-.2.2-.2h.2l.3-.3h.2l.3-.2h.3l.2-.2h1.2l.3.2.3.3.2.2.2.2.2.3v.6l.2.5v.4l.2.3v1.5zm1 3.3l-.8.8-.2-.2v-.2h-.2v-.2l-.2-.2v-.6l-.2-.2v-.7l-.2-.2V212h1v2h.2v.3l.2.2v.2h.2v.2l.2.2zm0 0zm2.2 1l-.4 1-.3-.2h-.2l-.3-.2h-.4v-.2h-.9v-.2h-.4v-.2h-.2v-.2l.6-.7v.2h.4v.2h.8l.2.2h.4l.2.2h.2l.2.2zm2.8 2.2l-.8.6h-.2v-.2l-.2-.2h-.2v-.4h-.2l-.2-.2h-.2v-.2h-.2v-.2h-.4v-.2h-.2l-.2-.2.3-1 .3.2h.2l.2.2.2.2h.2v.2h.2l.2.2h.2v.2h.2v.2h.2v.2h.2v.2h.2v.2h.2v.2zm-.8.6l.4.5-.3-.5zm1.5 2.3l-1 .2V220l-.2-.2v-.8h-.2v-.4l.7-.6v.2l.2.2v.2l.2.2v2.2h.2v.2zm0 3l-.8-.4v-2.1l-.2-.2v-.4h1v1l.2.2v1.8zm-1.8 2.6l-.7-.8h.2v-.2l.2-.2v-.2h.2v-.2h.2v-.2h.2v-.2l.2-.2v-.2l.2-.2v-.2h.2v-.2l1 .4-.2.2v.2l-.2.2v.2h-.2v.4h-.2v.2h-.2v.2l-.2.2-.2.2v.2h-.2l-.2.2-.2.2zm-.7-.8z" fill="#21231e"/> - <path d="M418 222.6l-.2-1c3.2-.8 5.7-2.6 7.8-5.3-1.2 3-4.3 5.3-7.7 6.3zm.2 1.5c0 .4.2.7.3 1 3.4 0 6.4 1 9.2 3-2-2.3-5.8-3.8-9.5-4z" fill="#21231e"/> - <path d="M432.7 233.3c-1-.3-2.3-.7-3.4-1.5-1.6-1.3-1.2-3.8.3-6.4.4-.8.5-2.2.2-3.5-.2-1.5-.7-2.8-1.4-3.5-2.4-2.3-3.8-4.8-2.6-6.6.8-1.3 2-2 2.8-2.7.3.6.4 1.5.4 2.5 0 1.4.3 3 1 3.6.6.6 1 .3 2.5 1 1 .7 2 1.3 2.6 2 .7 1 .6 2 .7 2.8 0 1 .5 1.7.2 2.6-.5 1-1 1.7-2 2.4-1.2 1-1.5 1-2 1.6-.3.8 0 2 .3 3.3.3 1 .4 1.7.4 2.3z" fill="#edb92e"/> - <path d="M429 232.2l.6-.8h.2v.2h.2l.2.2h.2l.2.2h.2l.2.2h.4v.2h.4l.2.2h.4l.2.2h.2l-.3 1h-.4v-.2h-.4l-.2-.2h-.3v-.2h-.4l-.2-.2h-.2l-.2-.2h-.2v-.2h-.2l-.3-.2h-.2v-.2zm0-7l1 .5v.2h-.2l-.2.4v.2l-.2.2v.2l-.2.3v.4l-.2.2v.5l-.2.2v1.5l.2.3v.2h.2v.3l.2.2.2.2-.6.8-.2-.2-.3-.3v-.2h-.2v-.3l-.2-.2v-.4l-.2-.3V228h.2v-.7l.2-.3.2-.3v-.3l.2-.2v-.3l.3-.3v-.5zm.3-3.3l1-.2v.8h.2v1.9l-.2.2v.7h-.2v.2l-1-.4h.2v-.6h.2V222zm-1.3-3.2l.7-.7v.2h.2v.4h.2v.2l.2.2v.2l.2.2v.2l.2.2v.5h.2v.7l.2.2v.8h-1v-1.2l-.2-.2v-.4h-.2v-.4h-.2v-.2l-.2-.2v-.2h-.2v-.2l-.2-.2zm0 0zm-2.7-7.2l1 .6h-.2v.7l-.2.2v.7l.2.2v.4l.2.2v.2l.2.2v.2l.2.2v.2l.3.2v.2l.2.2.2.2v.2l.3.3.2.3v.2l.3.2.2.2h.2l-.7.8-.2-.2-.2-.2-.3-.2-.2-.2v-.3l-.2-.2-.2-.2-.2-.2-.2-.2v-.2l-.3-.2-.2-.3h-.2v-.3l-.2-.2v-.3l-.2-.2v-.2l-.2-.3v-.4l-.2-.2v-1l.2-.3v-.2l.2-.2v-.2zm3.8-2.5l-.8.4.7.3h-.2l-.2.2h-.2l-.2.2h-.2v.2h-.2v.2h-.2l-.2.2-.2.2-.2.2-.2.2-.2.2v.2h-.2v.2l-.2.2-1-.6h.2v-.2l.2-.2.2-.2v-.2h.2v-.2h.2v-.2h.2v-.2h.2l.2-.2.2-.2h.2v-.2h.2l.2-.2.2-.2h.2v-.2h1.1zm-.6 0l.5-.5v.6h-.6zm1 2.8h-1v-2.1h-.2v-.4l1-.3v1h.2v2zm1 3.3l-.7.8-.2-.2v-.2h-.2v-.2l-.2-.2v-.7l-.2-.2v-.7l-.2-.2V212h1v1.7h.2v.6l.2.2v.2h.2v.2l.2.2zm2.3 1l-.4 1-.3-.2h-.2l-.3-.2h-.4v-.2h-.9v-.2h-.4v-.2h-.2v-.2l.6-.7v.2h.4v.2h.8l.2.2h.4l.2.2h.2l.2.2zm2.8 2.2l-.8.6h-.2v-.2l-.2-.2h-.2v-.4h-.2l-.2-.2h-.2v-.2h-.2v-.2h-.4v-.2h-.2l-.2-.2.3-1 .3.2h.2l.2.2.2.2h.2v.2h.2l.2.2h.2v.2h.2v.2h.2v.2h.2v.2h.2v.2h.2v.2zm-.8.6l.4.5-.3-.5zm1.5 2.3l-1 .2V220h-.2v-.8h-.2v-.4l.7-.6v.2l.2.2v.2l.2.2v2h.2v.2zm0 3l-.8-.4v-2.2l-.2-.2v-.4h1v1l.2.2v1.8zm-1.8 2.6l-.7-.8h.2v-.2l.2-.2v-.2h.2v-.2h.2v-.2h.2v-.2l.2-.2v-.2h.2v-.4h.2v-.2l1 .4-.2.2v.2l-.2.2v.2l-.2.2v.2h-.2v.2h-.2v.2l-.2.2-.2.2v.2h-.2l-.2.2-.2.2zm-.7-.8zm-1 2.2l-1-.5v-.2h.2v-.2h.2v-.2h.4v-.2h.2l.2-.2h.2v-.2h.2v-.2h.2v-.2l.8.8-.2.2h-.2v.2h-.2l-.2.2-.2.2h-.2l-.2.2h-.2v.2h-.2v.2zm-1-.5zm1 3.4l-1 .3v-.7h-.2v-3h.2l1 .4h-.2v2.6h.2v.2zm-1 .3zm.8 2.5l.3-1-.6.5v-1h-.2v-.9l-.2-.2 1-.5v.9h.2v1h.2v.7l-.7.5zm.7-.5v.7l-.7-.2.7-.5zm-.5 0l-.2.5.2-.5zm.5 0v.7l-.7-.2.7-.5z" fill="#21231e"/> - <path d="M410.6 216.4c4 0 8 3.4 8.4 7.7.6 4.4-2.2 7.7-6 7.8-4 0-7.5-3-8.3-7.3-.7-4 1.8-8 6-8z" fill="#edb92e"/> - <path d="M419.5 224l-1 .2v-.8l-.2-.4v-.3l-.2-.4v-.3l-.2-.4-.2-.3-.2-.3-.2-.4-.2-.3-.2-.3-.3-.2-.2-.3-.3-.3-.2-.2-.3-.3-.3-.2-.3-.2-.4-.2h-.3l-.3-.3h-.4l-.3-.3h-.3l-.4-.2h-.3l-.3-.2h-1.5v-1h1.9l.4.2h.3l.4.3h.4l.4.3.4.2.3.2.5.2.3.3.3.2.4.2.3.3.3.3.3.3.3.4.2.3.2.4.3.4.2.4.2.4.2.4v.4l.2.4v.4l.2.4v.8zm-6.6 8.3v-1h.9l.2-.2h.6l.3-.2h.4l.2-.2.3-.2h.2l.2-.3h.2l.2-.3.3-.3.3-.2v-.2l.3-.3.2-.2v-.3l.3-.3.2-.4v-.3l.2-.3v-.7l.2-.3V224l1-.2v2.5l-.2.4v.8l-.3.4v.3l-.2.3v.4l-.3.3-.2.3-.3.3h-.2l-.2.4-.3.2-.3.3h-.3l-.3.3-.3.2h-.2l-.3.3h-.4l-.2.2h-.4l-.3.2H413zm-8.7-7.7l1-.2v.7l.2.5v.3l.3.4v.3l.3.3.2.4.2.3.2.3.2.3.2.3.3.3.2.3h.3l.2.3.3.3.2.2.3.2.3.2h.4l.3.3.3.2h.3l.3.2h.7l.3.2h1.2v1h-2l-.3-.2h-.4l-.4-.3h-.4l-.4-.3-.3-.2-.4-.2-.3-.2-.4-.2-.4-.2-.3-.3-.2-.2-.2-.2-.3-.3-.2-.3-.3-.3-.2-.4-.2-.3-.2-.3-.2-.4-.2-.3-.2-.4v-.4l-.2-.4-.2-.4v-.8zm6.2-8.7v1h-1l-.3.2h-.4l-.3.2h-.3l-.3.3h-.2l-.2.3-.3.2-.2.2v.2l-.3.2-.2.2-.2.3-.2.3v.2l-.2.3v.4l-.3.3v.6l-.2.3v.7l-.2.3v.7l.2.4v.8l-1 .2v-3.3l.2-.3v-.3l.2-.4v-.3l.3-.4v-.3l.3-.3.2-.3.2-.3.2-.3h.2l.2-.4.3-.2.3-.2.3-.2.3-.2.3-.2.3-.2h.3l.4-.2h.4l.3-.2h.9z" fill="#21231e"/> - <path d="M411 218.6c2.8-.2 5.7 2.4 6 5.5.5 3.3-1.5 5.8-4.4 5.8-2.8 0-5.5-2.3-6-5.3s1.3-5.8 4.3-6z" fill="#edb92e"/> - <path d="M417.6 224l-1 .2v-.6l-.2-.3v-.2l-.2-.3v-.4l-.2-.2v-.2l-.2-.3-.2-.3v-.2l-.3-.2-.2-.2-.2-.3-.2-.2-.2-.2h-.2l-.2-.3h-.2l-.3-.3h-.2l-.2-.2-.4-.2h-.5v-.2h-1.1v-1h1.1l.4.2h.3l.2.2h.2l.3.2h.3l.2.3h.3l.2.2.3.2h.2l.3.3.2.3.2.2.2.2v.2l.3.3h.2v.4l.3.3v.3l.3.2.2.3v.3l.2.3v.8l.2.3zm-5 6.3v-1h1.1l.2-.2h.4l.2-.2h.2v-.2l.3-.2h.3v-.2l.3-.2v-.2h.2l.2-.3v-.2l.2-.2.2-.3v-.7l.2-.2v-1.6h1v2.2l-.2.3v.2l-.2.3v.2l-.3.3-.2.2v.3l-.3.2-.2.2-.2.2-.3.2-.2.2-.2.2h-.2l-.2.2h-.2l-.3.2h-.2l-.2.2h-1.5zm0-1zm-6.5-4.8h1l.2.4.2.4v.2l.2.3.2.3v.3l.3.2.2.2.2.2v.2l.3.2.2.2.3.3.2.2.2.2h.2v.3h.3l.2.2h.7l.2.2h1.1v1H411l-.4-.2h-.2l-.3-.2h-.2l-.2-.3h-.3l-.2-.3-.4-.3-.2-.3-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.3v-.2l-.3-.2-.2-.2-.2-.3v-.3l-.2-.3v-.3l-.2-.2v-.7zm1 0zm4-6.4v1h-.6l-.2.2h-.5l-.2.2h-.2l-.2.2-.2.2h-.2l-.2.3v.2l-.3.2-.2.3v.2h-.2v.3l-.2.2v.2l-.2.2v.7l-.2.2v1.7h-1V222h.2v-.4l.2-.3v-.2l.2-.2v-.2l.3-.3v-.2h.2l.2-.3.2-.2.2-.2.2-.2h.2l.2-.2h.3l.2-.3h.2l.2-.2h.6l.3-.2h.6z" fill="#21231e"/> - <path d="M411.2 220.7c2 0 3.6 1.5 4 3.5.2 2-1 3.6-3 3.6-1.7 0-3.4-1.4-3.7-3.4-.3-2 1-3.6 2.7-3.7z" fill="#0c4076"/> - <path d="M415.6 224l-1 .3v-.4l-.2-.2v-.4h-.2v-.3l-.2-.2-.2-.3-.2-.2-.2-.2h-.2l-.2-.2-.2-.2h-.2l-.2-.2h-.6v-.2h-.6v-1h1l.2.2h.2l.3.2h.3v.2h.3l.2.3v.2h.3l.2.2.2.2.2.3.3.2v.4h.2v.3l.2.3v.4l.2.2zm-3.3 4.3v-1h.7l.2-.2h.4v-.2h.2v-.2h.2v-.2h.2v-.2l.2-.2v-.5l.2-.2v-1.1l1-.3v2h-.2v.3l-.2.3-.2.3-.2.2h-.2v.2l-.2.2h-.2v.2h-.3l-.2.2h-.4v.2h-1zm-4.3-3.8l1-.2v.5l.2.3v.4h.2v.2l.2.2.2.2.2.3.2.2.2.2h.3v.2h.4l.3.2h.8v1h-1.3l-.2-.2h-.2l-.3-.2h-.2v-.2h-.2v-.2l-.3-.2-.3-.2v-.2h-.2v-.3h-.3v-.3l-.2-.2v-.2h-.2v-.5l-.2-.2v-.5zm2.7-3.8h1l-.5.5h-.7l-.2.2h-.2v.2h-.2l-.2.2-.2.2-.2.2v.2h-.2v.5h-.2v1.3l-1 .3v-1.8h.2v-.5h.2v-.3h.2v-.3h.3v-.3h.3v-.2h.3v-.2h.3v-.2h1l.2-.2h.4l-.5.5zm1 0v.5h-.5l.5-.5zm0 0h-1l.5-.5.5.5zm-1 0v-.5h.5l-.5.5z" fill="#21231e"/> - </g> - <path d="M482 183c4 0 7 3 7 7s-3 6.7-7 6.7c-3.6 0-6.7-3-6.7-6.8 0-4 3-7 6.8-7z" fill="#fff"/> - <path d="M489.5 189.8h-1c0-2.3-1.4-4.6-3.5-5.6a6.3 6.3 0 0 0-3-.7v-1c2.6 0 5 1.3 6.4 3.5a7.4 7.4 0 0 1 1 3.8zm-7.4 7.4v-1c2.5 0 4.7-1.4 5.8-3.4a6.4 6.4 0 0 0 .7-3h1c0 2.6-1.5 5.2-3.7 6.5a7.3 7.3 0 0 1-3.7 1zM475 190h1c0 2.2 1.4 4.5 3.5 5.5 1 .5 2 .7 2.8.7v1c-2.3 0-4.8-1.3-6-3.4a7.4 7.4 0 0 1-1.2-4zm7.3-7.5v1c-2.2 0-4.5 1.4-5.5 3.5a6.4 6.4 0 0 0-.7 3h-1c0-2.7 1.4-5 3.5-6.4a7.3 7.3 0 0 1 3.8-1z" fill="#21231e"/> - <path d="M482 171c4 0 7 3 7 7 0 3.7-3 6.8-7 6.8-3.6 0-6.7-3-6.7-7 0-3.7 3-6.7 6.8-6.7z" fill="#fff"/> - <path d="M489.5 178h-1c0-2.4-1.4-4.7-3.6-5.8a6.3 6.3 0 0 0-3-.6v-1c2.6 0 5 1.3 6.4 3.4a7.4 7.4 0 0 1 1 4zm-7.4 7.3v-1c2.5 0 4.7-1.4 5.8-3.4a6.4 6.4 0 0 0 .7-3h1c0 2.5-1.5 5-3.7 6.4a7.3 7.3 0 0 1-3.7 1zM475 178h1c0 2.3 1.4 4.6 3.5 5.6 1 .5 2 .7 2.8.7v1c-2.3 0-4.8-1.3-6-3.4a7.4 7.4 0 0 1-1.2-4zm7.3-7.4v1c-2.2 0-4.5 1.4-5.5 3.5a6.4 6.4 0 0 0-.7 3h-1c0-2.6 1.4-5 3.5-6.3a7.3 7.3 0 0 1 3.8-1z" fill="#21231e"/> - <path d="M482 159.6c4 0 7 3 7 7 0 3.7-3 6.8-7 6.8-3.6 0-6.7-3-6.7-7 0-3.7 3-6.8 6.8-6.8z" fill="#fff"/> - <path d="M489.5 166.5h-1c0-2.4-1.4-4.7-3.6-5.7a6.3 6.3 0 0 0-3-.7v-1c2.6 0 5 1.5 6.4 3.6a7.4 7.4 0 0 1 1 4zM482 174v-1c2.5 0 4.7-1.5 5.8-3.6.4-1 .7-2 .7-3h1c0 2.6-1.4 5-3.5 6.4a7.3 7.3 0 0 1-4 1zm-7.2-7.5h1c0 2.4 1.4 4.7 3.6 5.7a6.3 6.3 0 0 0 2.7.7v1c-2.4 0-4.8-1.5-6-3.6a7.4 7.4 0 0 1-1.2-4zm7.3-7.4v1c-2.2 0-4.5 1.5-5.5 3.6a6.4 6.4 0 0 0-.7 3h-1c0-2.6 1.4-5 3.5-6.4a7.3 7.3 0 0 1 3.8-1z" fill="#21231e"/> - <path d="M482 127c4 0 7 3.2 7 7s-3 6.8-7 6.8c-3.6 0-6.7-3-6.7-6.8s3-7 6.8-7z" fill="#fff"/> - <path d="M489.5 134h-1c0-2.4-1.4-4.7-3.6-5.8a6.3 6.3 0 0 0-3-.6v-1c2.6 0 5 1.3 6.4 3.4a7.4 7.4 0 0 1 1 4zm-7.4 7.3v-1c2.5 0 4.7-1.4 5.8-3.4a6.4 6.4 0 0 0 .7-3h1c0 2.5-1.5 5-3.7 6.3a7.3 7.3 0 0 1-3.7 1zM475 134h1c0 2.3 1.4 4.6 3.5 5.6a6.3 6.3 0 0 0 2.8.7v1c-2.3 0-4.7-1.3-6-3.4a7.4 7.4 0 0 1-1.2-4zm7.3-7.4v1c-2.2 0-4.5 1.4-5.5 3.5a6.4 6.4 0 0 0-.7 3h-1c0-2.6 1.4-5 3.5-6.3a7.3 7.3 0 0 1 3.8-1z" fill="#21231e"/> - <path d="M482 137.2c4 0 7 3 7 6.8s-3 7-7 7c-3.6 0-6.7-3.2-6.7-7s3-6.8 6.8-6.8z" fill="#fff"/> - <path d="M489.5 144h-1c0-2.3-1.4-4.6-3.5-5.7a6.3 6.3 0 0 0-3-.6v-1c2.7 0 5.2 1.4 6.5 3.6a7.4 7.4 0 0 1 1 3.7zm-7.4 7.4v-1c2.5 0 4.7-1.4 5.8-3.4a6.4 6.4 0 0 0 .7-3h1c0 2.6-1.5 5-3.7 6.4a7.3 7.3 0 0 1-3.7 1zM475 144h1c0 2.4 1.4 4.7 3.5 5.7a6.3 6.3 0 0 0 2.8.7v1c-2.3 0-4.8-1.3-6-3.5a7.4 7.4 0 0 1-1.2-4zm7.3-7.4v1c-2.2 0-4.5 1.5-5.5 3.6-.5 1-.7 2-.7 2.8h-1c0-2.5 1.4-5 3.5-6.2a7.3 7.3 0 0 1 3.8-1.2z" fill="#21231e"/> - <path d="M482 148.2c4 0 7 3 7 6.8s-3 7-7 7c-3.6 0-6.7-3.2-6.7-7s3-6.8 6.8-6.8z" fill="#fff"/> - <path d="M489.5 155h-1c0-2.3-1.4-4.6-3.6-5.7a6.3 6.3 0 0 0-3-.6v-1c2.6 0 5 1.3 6.4 3.4a7.4 7.4 0 0 1 1 4zm-7.4 7.4v-1c2.5 0 4.7-1.4 5.8-3.4a6.4 6.4 0 0 0 .7-3h1c0 2.6-1.5 5-3.7 6.4a7.3 7.3 0 0 1-3.7 1zM475 155h1c0 2.4 1.4 4.7 3.5 5.7a6.3 6.3 0 0 0 2.8.7v1c-2.3 0-4.7-1.3-6-3.4a7.4 7.4 0 0 1-1.2-4zm7.3-7.4v1c-2.2 0-4.5 1.5-5.5 3.5a6.4 6.4 0 0 0-.7 3h-1c0-2.5 1.4-5 3.5-6.3a7.3 7.3 0 0 1 3.8-1z" fill="#21231e"/> - <path d="M487 195.5c1 1.6.7 2 1.4 2.4.8.6 2 .6 3.4.4 5.3-1 4.5 2.3 2.2 6-1 1.7-3.8 3.5-5.2 5-1.4 1.5-1.6 2.8-2 3.2h-9.2c-.5-.4-.7-1.7-2-3.2-1.5-1.5-4.2-3.3-5.3-5-2.4-3.7-3-7 2.2-6 1.3.2 2.6.2 3.4-.5.6-.6.3-1 1.3-2.5.6-1 1.4-1.8 2.2-2.3 1-.5 1.8-.2 2.6-.2 1 0 2-.3 2.8.2.8.5 1.6 1.3 2.2 2.3z" fill="#edb92e"/> - <path d="M488.7 197.5l-.7.8-.2-.2h-.2v-.4h-.2v-.4h-.2v-.4l-.2-.2v-.2l-.2-.2-.2-.3v-.2l.8-.6v.2h.2v.3l.2.2v.2h.2v.4h.2v.4h.2v.4h.2zm-.7.8l-.3-.3.3.3zm3.8-.4v1h-2.4l-.2-.2h-.2l-.2-.2h-.3l-.2-.2.7-1v.2h.2v.2h.8l.2.2h1.9zm2.6 6.6l-.8-.6.2-.3.2-.3.2-.4.2-.3v-.3l.3-.3v-.2l.2-.2v-.6l.2-.2v-1.3l-.2-.2h-.2v-.2h-.5l-.2-.2h-2l-.2-1h2.8l.3.2h.2l.2.2.2.2.2.2.2.2v.3l.2.3v1.7l-.2.3v.3l-.3.2v.4l-.3.3v.2l-.3.4v.3l-.3.2-.3.4zm-5.3 5.2l-.6-.7.3-.2v-.2h.3l.2-.3v-.2h.3l.2-.2h.2v-.3h.2l.2-.3.2-.2h.2l.2-.3h.2v-.3l.3-.2h.2l.2-.3v-.2l.2-.2.2-.2h.2v-.3h.3v-.4h.3v-.3h.2v-.3l1 .6-.2.2-.2.3v.3l-.2.2h-.2l-.2.3v.2l-.3.2-.3.3v.2h-.3l-.2.3-.2.2h-.2l-.2.3-.2.2-.3.3-.3.3h-.2v.3l-.3.2h-.2v.3l-.3.2h-.2v.3h-.2l-.2.3zm-2.3 3.3v-1l-.3.2v-.2h.2v-.2l.2-.2v-.2l.2-.2v-.2l.2-.2v-.2l.2-.2v-.2h.2v-.2l.2-.2.2-.3.3-.3.8.6v.2l-.2.2-.2.2-.2.3v.2h-.2v.2l-.2.2v.2l-.2.2v.2h-.2v.4h-.2v.2l-.2.2v.2h-.5zm.3 0h-.2.2zm-5 .2v-1h4.7v1h-4.5zm0-1h.2zm0 0v1-1zm0 0zm-4.7.8l.6-.8h-.4 4.2l.2 1h-4.7l-.3-.2zm.3 0h-.2.2zm-2.4-3.2l.7-.7v.2l.2.2.2.3.2.3.2.2v.2h.2v.4h.2v.4h.2v.4h.2v.4h.2v.2l-.5.8-.2-.2v-.2l-.2-.2v-.2h-.2v-.4h-.2v-.4l-.2-.2v-.2h-.2v-.2l-.2-.3-.2-.2-.2-.3-.2-.2zm-5.4-5.2l1-.6v.2l.2.3h.2v.3l.2.2h.2v.3h.3v.3l.2.2h.2l.2.3.2.2v.2l.3.2h.3l.2.3h.2l.2.2v.2h.2l.2.3h.2l.2.3h.2v.3l.3.2h.2v.3h.3v.3l-.6.8-.2-.2-.3-.3-.3-.2-.3-.2v-.2l-.2-.2h-.2l-.2-.3h-.2l-.2-.2h-.2v-.3l-.3-.2h-.2l-.2-.3v-.2h-.3l-.2-.3v-.2h-.3l-.2-.3v-.2l-.3-.2h-.2v-.3l-.3-.2-.2-.2-.2-.2zm2.7-6.7v1l-.6-.2h-2.1l-.2.2h-.2v.2h-.2v.4l-.2.2v1.1l.2.2v.3l.2.3v.2l.2.3.2.4v.3l.3.3.3.4.2.3.2.3-1 .6v-.4l-.3-.3-.2-.4-.2-.4v-.3l-.3-.4v-.4l-.3-.3v-.4l-.2-.3v-.6l-.2-.3v-1l.2-.2v-.2l.3-.2.2-.2.2-.2.4-.2h.3l.3-.2h2.5zm3-.5l.8.8-.2.2h-.2l-.2.2h-.4l-.2.2h-3v-1h2.5l.2-.2h.4v-.2h.2zm1.4-2.3l.7.6v.3l-.2.2v.2h-.2v.4h-.2v.8h-.2v.2h-.2v.2l-.2.2-.8-.7h.2v-.4h.2v-.4h.2v-.2l.2-.2v-.4h.2v-.3h.2v-.3zm0 0l.2-.4-.3.4zm2.3-2.4l.5.8-.2.2h-.2v.2h-.2v.2h-.2l-.2.2-.2.2-.2.2v.2h-.2v.2l-.2.2-.2.2v.2l-1-.6.2-.2.2-.2v-.2h.2v-.2l.2-.2h.2v-.2l.2-.2.2-.2h.2v-.2l.2-.2h.2v-.2h.2l.2-.2zm2.8-.3v1h-2.4l-.5-.7h.2v-.2h.4l.2-.2h2zm3 .3l-.5.8h-.4v-.2H482v-1h2.5l.2.2h.2l.2.2zm0 0l.3.2-.3-.2zm2 3.2v-1l-.4.8-.2-.2v-.2h-.2v-.2l-.2-.2-.2-.2v-.2h-.2v-.2h-.2v-.2h-.2v-.2h-.4v-.2h-.2v-.2l.4-.8h.2l.2.2.2.2h.2v.2h.2v.2h.2v.2h.2v.2h.2v.2l.2.2.2.2v.2h.2v.2h.2v.2l-.4.8zm.4-.8l.5.8h-1l.4-.8zm-.4-.2v1l-.4-.2.4-.8zm-.4.8l-.5-.8h1l-.4.8z" fill="#21231e"/> - <path d="M481.4 212.8l-1-.2c-.4-3.7-2-7-4.3-9.6 2.8 1.8 4.8 5.7 5.4 9.8z" fill="#21231e"/> - <path d="M494.2 198.3c-.5 1-1 2.4-2 3.5-1.5 1.6-4 .5-6.5-1.6-.8-.6-2.2-1-3.6-1-1.3 0-2.6.4-3.4 1-2.5 2-5 3.2-6.6 1.6-1-1-1.5-2.4-2-3.5h2.5c1.3.3 2.6.3 3.4-.4.6-.6.3-1 1.3-2.5.6-1 1.4-1.8 2.2-2.3 1-.5 1.7-.2 2.6-.2 1 0 2-.3 2.8.2.8.5 1.5 1.3 2.2 2.3 1 1.6.7 2 1.3 2.4 1 .6 2.2.6 3.5.4 1-.2 1.8-.2 2.4 0z" fill="#edb92e"/> - <path d="M492.6 202l-.7-.6v-.2l.2-.2.2-.2v-.2h.2v-.2l.2-.2v-.2l.2-.2v-.2l.2-.2v-.2l.2-.2v-.2l.2-.3v-.4l1 .5v.4l-.2.2v.2l-.2.2v.4h-.2v.2l-.2.2v.3h-.2v.2h-.2v.2h-.2v.3l-.2.2-.2.2h-.2zm-7.3-1.4l.7-.7h.2l.2.2.3.2.2.2.3.3h.3l.2.2h.2l.2.2h.2l.2.2h.2l.2.2h.4l.2.2h1.6l.2-.2.2-.2h.2v-.2l.8.7-.2.3h-.2v.3h-.3l-.3.2h-.3l-.2.2h-1.9l-.3-.2h-.3l-.2-.2h-.3l-.2-.2h-.3l-.2-.2-.2-.2h-.3l-.2-.3h-.3l-.2-.3-.2-.2-.2-.2-.2-.2-.3-.2zm.7-.7l.5.3-.5-.4zm-4-.2v-1h2v.2h.7v.2h.4l.2.2h.2l.2.2h.2v.2h.2l-.7.8h-.2v-.2h-.2v-.2h-1v-.2h-1v-.2h-1zm-3 .8l-.7-.7v-.2h.2l.2-.2h.2v-.2h.2l.2-.2h.5v-.2h1.2v-.2h1v1h-1.5v.2h-.5l-.2.2h-.4v.2h-.2l-.2.2zm-7.3 1.5l.7-.6.3.2.2.2h.2v.2h1.7v-.2h.5l.2-.2h.2v-.2h.3l.2-.2.2-.2h.3l.2-.3h.2l.2-.3.3-.2v-.2h.3l.7.6-.3.2-.2.2-.3.2-.2.2-.2.2h-.3l-.2.3h-.3l-.2.2h-.2l-.3.2h-.2l-.2.2h-.2l-.2.2h-.3l-.3.2H473l-.4-.2h-.2l-.2-.2-.2-.2-.3-.3zm-1.7-4l.2 1 .3-.7v.2l.2.2v.3l.2.2v.4l.2.2v.2h.2v.4h.2v.4h.2v.2h.2v.2h.2v.2l.2.2-.7.7h-.2v-.2h-.2v-.2h-.2v-.5h-.2v-.2h-.2v-.3l-.2-.2v-.2h-.2v-.4h-.2v-.4l-.2-.2v-.4h-.2l.4-.8zm-.4.7l-.2-.6.6-.2-.4.7zm3-.6l-.2 1-.2-.2H470l-.2-1h2.4zm3-.5l.7.8-.2.2h-.2l-.2.2h-.4l-.2.2h-2.8v-1h2.3l.2-.2h.4v-.2h.2zm.7.8l-.5.4.5-.4zm.6-3l.7.5v.3l-.2.2v.2h-.2v.4h-.2v.8h-.2v.2h-.2v.2l-.2.2-.8-.7h.2v-.4h.2v-.4h.2v-.2l.2-.2v-.4h.2v-.3h.2v-.3zm2.3-2.5l.5.8-.2.2h-.2v.2h-.2v.2h-.2l-.2.2-.2.2-.2.2v.2h-.2v.2l-.2.2-.2.2v.2l-1-.6.2-.2.2-.2v-.2h.2v-.2l.2-.2h.2v-.2l.2-.2.2-.2h.2v-.2l.2-.2h.2v-.2h.2l.2-.2zm2.8-.3v1h-2.3l-.5-.7h.2v-.2h.4l.2-.2h2zm3 .3l-.5.8h-.4v-.2H482v-1h2.5l.2.2h.2l.2.2zm0 0l.3.2-.3-.2zm2.4 2.4l-.8.6-.2-.2v-.2h-.2v-.2l-.2-.2-.2-.2-.2-.2v-.2h-.2v-.2h-.2v-.2h-.4v-.2h-.2v-.2l.4-.8h.2l.2.2.2.2h.2v.2h.2v.2h.2v.2h.2v.2h.2v.2l.2.2.2.2v.2h.2v.2h.2v.2zm1.3 2.3l-.7.8-.2-.2h-.2v-.4h-.2v-.4h-.2v-.4l-.2-.2v-.2l-.2-.2-.2-.3v-.2l.8-.6v.2h.2v.3l.2.2v.2h.2v.4h.2v.4h.2v.4h.2zm-.7.8l-.3-.3.3.3zm3.8-.4v1h-2.4l-.2-.2h-.2l-.2-.2h-.4v-.2h-.2l.7-1v.2h.2v.2h.8l.2.2h1.9zm3 .5l-1-.4.3.8H492l-.2-1h2.4l.5.7zm-.5-.7h.6l-.3.7-.4-.7zm0 .5l.4.2-.5-.2zm0-.5h.6l-.3.7-.4-.7z" fill="#21231e"/> - <path d="M482 211.7c4.4 0 8 3.4 8 7.7s-3.6 7.8-8 7.8-7.6-3.5-7.6-7.8 3.5-7.8 7.7-7.8z" fill="#edb92e"/> - <path d="M483 212.8l.8-.2c.5-3.7 2-7 4.3-9.6-2.5 1.8-4.5 5.7-5 9.8z" fill="#21231e"/> - <use width="1350" height="900" transform="matrix(-1 0 0 1 964.286 0)" xlink:href="#b"/> - <path d="M577 293.6c2 .3 3 1.5 3 2.8 0 1.3-1 2.6-3 3a8.7 8.7 0 0 1-1.6.2c-60.8 5.2-125.7 5.2-186.5 0a8.7 8.7 0 0 1-1.6-.3c-2-.3-3-1.6-3-3 0-1.2 1-2.4 3-2.7a8.6 8.6 0 0 1 1.5-.3c60.7-5.2 125.6-5.2 186.4 0 .6 0 1 .2 1.5.3z" fill="#edb92e" stroke="#21231e"/> - <path d="M412 298.4h-.2v-.2h-.2v-1h.4v-.2.2-.2h2.3l.7-.2h3l.7-.2h3l.7-.2h3l.8-.2h3.3l.7-.2h3.8l.7-.2h.8v1.2h-2.9l-.7.2H428l-.7.2h-2.7l-.8.2H421l.7.2h3.7l.7.2h2.9l.7.2h3.7l.7.2h1.5v1.2h-3.7l-.7-.2h-3.8l-.7-.2h-2.9l-.7-.2H420l-.6-.2h-2.9l-.7-.2H413l-1-.2v-.2.2zm.2-.7zm46.6-2.6v1.3H453l-.7.2h-6.6l-.7.2h-5l-1 .2h-3.5v-1.2h3.5l.8-.2h5.2l.7-.2h5.9l.7-.2h6.8zm23.3 0v1h-13.7l-.7.2h-8.8v-1h1.4l.8-.2H482zm23.5 0v1.3h-11.1l-.7-.2H482v-1h23.6zm23.3 1v1h-5.2l-.8-.2h-5.2l-.7-.2h-6.5l-.8-.2h-4.3V295h.7l.7.2h7.5l.8.2h5l.8.2h5.1l.6.2h2.3zm23.4 1v.2h.4v1h-.2l-.2.2h-3l-.7.2h-2.2l-.7.2h-3.8l-.8.2h-2.8l-.7.2H534l-.8.2h-3.6l-.8.2v-1.2h2.2l.7-.2h3.7l.8-.2h3.7l.7-.2h1.8-1.4l-.8-.2h-2.7l-.7-.2H533l-.6-.2h-3.6V296h6.5l.7.2h3l.8.2h2.8l.7.2h3l.7.2h3l.7.2h1.5zm0 .7zm-116.7.7h.2l.2.2v.8h-.2v.2h-.2v-1.2zm93.3 1.2h-.2l-.2-.2v-.2h-.2v-.8h.2v-.2h.4v1.2zm-50.3-36.2v-1h3.8v1h-4zm0-1zm-1.2 0h1.2v1h-1.2v-1zm0 1zm-.6-1h.6v1h-.6v-1zm-1 0h1v1h-1v-1zm0 0zm-.8 0h.6v1h-.7v-1zm0 1zm-.5-1h.4v1h-.5v-1zm0 0zm-.8 0h.8v1h-.8v-1zm0 0zm-1.2 0h1.2v1h-1.2v-1zm-1 0h1v1h-1v-1zm0 0zm-.2 0h.2v1h-.2v-1zm-1 0h1v1h-1v-1zm-2.5 1v-1h2.6v1h-2.5zm0-1zm-.3 0h.2v1h-.2v-1zm0 1zm-.2-1h.2v1h-.2v-1zm0 0zm-1 0h1v1h-1v-1zm0 1zm-.5-1h.4v1h-.4v-1zm0 0zm-.4 0h.4v1h-.4v-1zm0 1zm-1.2-1h1.2v1h-1.2v-1zm0 0zm0 0v1-1zm0 1h-.2.2zm-1.2-1h1.2v1l-1.2.2v-1zm-.4 0h.4v1.2h-.4v-1zm-.8.2h.8v1h-.8v-1zm0 0h.3-.2zm-.3 0h.3v1h-.3v-1zm0 1h-.5.5zm-1-1h1v1h-1v-1zm-1 0h1v1h-1v-1zm0 0zm-.2 0v1-1zm0 1zm-1-1h1v1h-1v-1zm-.6 0h.5v1h-.4v-1zm0 0zm0 0v1-1zm0 1zm-4.2.2v-1h3.5v-.2h.4v1h-2.7l-.2.2h-.8zm0-1zm-.6 0h.5v1h-.6v-1zm0 0zm-1.7 0h1.6v1h-1.7v-1zm0 1zm-.2-1h.3v1h-.2v-1zm0 0zm-1.3 0h1.4v1h-1.3v-1zm-1 0h1v1h-1v-1zm-.6 0h.7v1h-.6v-1zm0 0zm0 0v1.2-1zm0 1.2zm-1.6-1h1.5v1h-1.5v-1zm0 1zm0-1v1-1zm0 0zm-1.2 0h1.2v1h-1.2v-1zm0 0zm0 0v1-1zm0 1zm-1.2-1h1l.2 1H444v-1zm-.8 0h.8v1h-.7v-1zm0 0zm-1.6.2h1.6v1h-1.5v-1zm0 1zm0-1v1-1zm0 0zm-6.2 1.3v-1h1.7l.2-.2h3.9v1H436l-.2.2zm0 0zm-.4-1h.3v1h-.2v-1zm0 0zm-9 1.4v-1h1.3l.3-.2h3.2l.3-.2h3.5v1h-5.1l-.3.2H426zm0 0zm-.3-1h.2v1h-.3v-1zm0 0zm-.5 0h.5v1h-.4v-1zm-18.2 2.2v-1h1.8l.5-.2h1.7l.5-.2h2.4l.6-.2h2.6l.6-.2h2.2l.6-.2h2.8l.6-.2h1.2v1h-2.1l-.6.2h-2.7l-.6.2h-2.3l-.6.2h-2.8l-.6.2h-2.2l-.5.2H408l-.6.2h-.6zm0 0zm-.3-1h.3v1h-.2v-1zm0 0zm0 0v1-1zm0 1zm-26.3 2.4v-1h.7l1-.2h.8l.8-.2h1.6l.8-.2h1l.7-.2h1.6l.8-.2h1.8l.8-.2h.8l1-.2h1.7l.7-.2h1.7l.8-.2h1.8l.7-.2h1.6l1-.2h1.5l1-.2v1H405l-.7.2h-1.7l-.8.2H400l-.7.2h-.8l-1 .2H396l-.8.2h-1.7l-.8.2H391l-.8.2h-.8l-.8.2H387l-1 .2h-.7l-.8.2H383l-1 .2h-.8l-.8.2zm0 0zm0-7v1h-.5l-.5.2h-.5l-.3.2-.4.2-.3.2h-.2l-.3.3-.2.2-.3.3v.5l-.2.2v1.1h.2v.3l.2.2.2.2.3.3.3.2h.2l.3.2h.3l.4.2h1v1h-1.6l-.4-.2-.4-.2-.3-.2-.3-.2-.3-.2-.4-.2-.2-.3-.2-.2v-.3l-.3-.3-.2-.3v-1.6l.2-.3.2-.3.2-.4.2-.3.2-.3.4-.3.3-.2.4-.2.3-.2h.4l.5-.2h.6l.5-.2zm0 1zm26.3-3.3v1H405l-.7.2h-1.7l-.8.2H400l-.7.2H396l-.8.2h-1l-.7.2H392l-1 .2h-1.6l-.8.2h-.8l-.8.2h-1.7l-.8.2h-.8l-.8.2H381l-.8.2v-1h1.7l.8-.2h.8l.8-.2h.8l.8-.2h1.7l.8-.2h1.6l1-.2h.8l.8-.2h1.8l.7-.2h1.7l1-.2h.7l.8-.2h1.8l.7-.2h1.6l1-.2h2.5zm0 1zm0 0v-1 1zm0-1zm37-2.2v1.2H439l-1 .2h-2.3l-1.3.2H431l-1.2.2h-2.2l-1.3.2H424l-1.2.2h-2.3l-1 .2H417l-1.2.2h-1.2l-1 .2h-2.3l-1.3.2h-1l-1.2.2h-1.2v-1h2.2l1.2-.2h1l1.2-.2h2.2l1.3-.2h1l1.2-.2h2.3l1-.2h2.3l1.3-.2h2.4l1.2-.2h2.3l1-.2h3.5l1.2-.2h3.5l1-.2h2.5zm1 1l-1 .2v-1h1v1zm0 0zm.2 0h-.3v-1l.2 1zm-.2-1zm.4 1h-.3l-.2-1h.4v1zm1.2 0h-1.2v-1h1.2v1zm0 0zm0 0v-1 1zm0-1zm15.4-.4v1h-5.5l-.5.2h-6.5l-.4.2h-2.6v-1h5l.5-.2h7.7l.5-.2h1.8zm.8 1h-.8v-1h.8v1zm0 0zm0 0v-1 1zm0-1zm1.4 1h-1.4v-1h1.4v1zm0 0zm.2 0h-.2v-1h.2v1zm0 0h-.2.2zm0 0v-1 1zm0-1zm1.2 1h-1.2v-1h1.2v1zm.5 0h-.6v-1h.4v1zm-.2-1zm.8 1h-.7l-.2-1h.8v1zm1 0h-1v-1h1v1zm0 0zm.2 0h-.3v-1h.2v1zm0-1zm.4 1h-.4v-1h.4v1zm3-1l.2 1H468v-1h3.3zm1.2 1h-1v-1l1-.2v1zm0 0v-1.2 1zm0-1.2zm1.3 1h-1.2v-1h1.2v1zm3.5-1v1h-3.5v-1h3.5zm0 0zm0 1v-1 1zm0 0zm1.3 0h-1.2v-1h1.2v1zm3.6-1v1h-3.5v-1h3.7zm3.8 0v1H482v-1h3.8zm1 1h-1v-1h1.2v1zm.2 0zm0 0v-1 1zm0-1zm3.6 0v1H487v-1h4zm1 1h-1v-1h1.2v1zm.2-1zm0 1v-1 1zm1 0h-1v-1h1v1zm3.3-1v1H493v-1h3zm.5 1h-.4v-1h.5v1zm0-1zm.3 1h-.3v-1h.3v1zm0 0zm1 0h-1v-1h1v1zm.6 0h-.7v-1h.8v1zm0-1zm.5 1.2h-.6v-1h.5v1zm1 0h-1v-1h1v1zm0-1zm0 1v-1 1zm0 0h.3-.2zm.3 0h-.2v-1h.3v1zm0 0zm1.3 0h-1.3v-1h1.4v1zm0-1zm0 1v-1 1zm0 0h.2zm1 0h-1v-1h1v1zm15.2-.6v1h-6l-.4-.2H504l-.6-.2h-.9v-1h6l.4.2h6.6l.4.2h1.7zm0 0zm0 1v-1 1zm0 0zm1.3 0h-1v-1h1v1zm.4 0h-.3v-1h.5v1zm0-1zm.2 1h-.2v-1h.2v1zm0 0zm1 .2h-1v-1h1v1zm37 1v1h-2.3l-1.2-.2h-1l-1.2-.2h-2.2l-1.3-.2H546l-1-.2h-1.3l-1-.2h-2.3l-1.3-.2H537l-1-.2h-4l-1-.2h-2.6l-1-.2H524l-1-.2h-2.4v-1h4.7l1.2.2h3.3l1.3.2h2.3l1.3.2h2.3l1 .2h2.4l1 .2h2.3l1.3.2h2.3l1 .2h2.3l1.2.2h1.2l1 .2h1.3l1 .2h1.3zm0 0zm0 1v-1 1zm0 0zm26.4 1.4v1H582l-.8-.2h-.8l-.8-.2H578l-.7-.2h-.8l-.8-.2H574l-.8-.2h-.8l-.8-.2h-1.8l-.7-.2h-1.5l-.8-.2H565l-.8-.2h-1.7l-.8-.2H560l-.8-.2h-1.6v-1h3.5l.8.2h1.6l1 .2h1.7l.7.2h1.7l.8.2h1.8l.7.2h.8l.8.2h1.8l.8.2h.8l.8.2h1.8l.7.2h.7l.8.2h1.8l.7.2zm0 1zm0 6v-1h1.6l.3-.2h.3l.3-.2.2-.2.2-.2h.2v-.3l.2-.2v-.2h.2v-1.4l-.2-.3v-.2h-.3l-.2-.3-.3-.2h-.2l-.3-.3-.4-.2h-.4l-.4-.2h-.4l-.5-.2v-1h.5l.6.2h.5l.5.3.4.3.4.2.3.2.4.3.3.3.2.3v.3l.3.2v.3l.2.3v1.3l-.3.3v.3l-.3.3-.3.4-.3.2-.3.2-.2.2-.3.2-.4.2h-.3l-.4.2H584zm0 0zm-26.5-2.4v-1h1.8l.8.2h1.8l.8.2h1.8l.7.2h1.7l1 .2h.7l.8.2h1.8l.7.2h1.6l.8.2h1l.8.2h1.6l.8.2h1l.7.2h1.5l.8.2h1l.7.2v1h-1l-.8-.2h-1.6l-.8-.2h-.8l-.8-.2h-1.7l-.8-.2h-.8l-1-.2h-1.6l-.8-.2h-.8l-1-.2h-1.4l-.8-.2H566l-.7-.2h-1.6l-1-.2H561l-1-.2h-1.6l-.8-.2zm0 0zm0-1v1-1zm0 0zm-.2 0h.3v1h-.4v-1zm0 1zM539 265v-1h2.9l.5.2h3l.5.2h2.3l.6.2h2.2l.6.2h2.3l.5.2h2.4l.5.2v1h-1.7l-.5-.2h-2.3l-.6-.2H550l-.7-.2H547l-.6-.2h-2.9l-.6-.2H540l-.6-.2h-.6zm-.4-1h.5v1h-.4v-1zm0 0zm-.2 0h.2v1h-.2v-1zm0 1zm-9.2-.5v-1h4l.3.2h3.2l.3.2h1.3v1h-1.6l-.3-.2H533l-.4-.2h-3.3zm0-1zm-.3 0h.2v1h-.3v-1zm0 1zm-6.4-.3v-1h4.5l.2.2h1.7v1h-4.4l-.2-.2h-1.7zm0-1zm0 0v1-1zm0 1zm-1.5-1h1.7v1H521v-1zm0 0zm-.7 0h.8v1h-.7v-1zm-1-.2h1v1H519l.2-1zm-.2 1zm0-1h.2v1-1zm0 0zm-1 0h1v1h-1v-1zm0 0zm-.2 0v1-1zm0 1zm-1.4-1h1.4v1h-1.4v-1zm0 1zm-.2-1h.2v1h-.2v-1zm0 0zm-.6 0h.6v1h-.7v-1zm-1 0h1v1h-1v-1zm-1.4-.2h1.4v1h-1.4v-1zm0 0zm-.2 0h.2v1h-.2v-1zm0 1zm-1.6-1h1.6v1h-1.6v-1zm0 0zm-.6 0h.6v1h-.6v-1zm-4.2 1v-1.2h3.3l.2.2h.8v1h-4.3zm0 0zm0-1.2v1-1zm0 0zm-.5 0h.6v1h-.5v-1zm-1 0h1v1h-1v-1zm0 1zm0-1v1-1zm0 0zm-1.3 0h1.2v1h-1.3v-1zm-1 0h1v1h-1v-1zm0 1h.6-.6zm-.2-1h.3v1h-.3v-1zm0 0h-.3.3zm-.8 0h.8v1h-.8v-1zm-.4 0h.4v1h-.4v-1zm-1.2 0h1.3v1H500v-1zm0 1h.2zm0-1v1-1zm0 0zm-1 0h1v1h-1v-1zm0 1zm-.5-1h.4v1h-.6v-1zm0 0zm-.4 0h.5v1h-.4v-1zm0 1zm-1-1h1v1h-1v-1zm0 0zm-.2 0h.2v1h-.2v-1zm0 1zm-.3-1h.3v1h-.3v-1zm0 0zm-2.6.8v-1h2.3v1H494zm-1-1h1v1h-1v-1zm-.2 0h.2v1h-.2v-1zm0 0zm-1 0h1v1h-1v-1zm-1.2 0h1.2v1h-1.3v-1zm0 0zm-.8 0h.8v1h-.8v-1zm0 0zm-.4 0h.4v1h-.5v-1zm0 1zm-.7-1h.7v1h-.7v-1zm0 0zm-1 0h1v1h-1v-1zm-.7 0h.6v1h-.6v-1zm0 1zm-1.2-1h1.2v1H486v-1zm0 0zm-3.7 1v-1h3.9v1h-4.1zm.4 1.8L460 276.6l-.4-1 22.7-11.3h.4v1zm-.5-1h.4-.5zm22.7 12.4l-23-11.4.4-1 22.7 11.5v1h-.3zm.4-1l1 .6-1 .4v-1zm-23 11.6l22.7-11.5.4 1-22.6 11.4h-.5v-.8zm.4 1h-.3.4zM460 275.7l22.8 11.5-.5 1-22.8-11.6v-1h.4zm-.4 1l-1-.5 1-.5v1z" fill="#21231e"/> - <path d="M482 269c5.8 0 10.4 3.2 10.4 7s-4.6 7-10.3 7-10-3.2-10-7 4.5-7 10-7z" fill="#0c4076"/> - <path d="M493 276h-1v-.3l-.2-.3v-.5l-.2-.3v-.3l-.3-.3-.2-.4v-.3l-.3-.2-.2-.2-.2-.3-.3-.2-.3-.3-.3-.2-.3-.2-.2-.2-.4-.2-.4-.2-.3-.2-.4-.2h-.5l-.4-.3h-.4l-.5-.2h-.8l-.5-.2h-1.9v-1.2h1.7l.6.2h.5l.5.2h.5l.5.2h.4l.5.3.4.2.5.2h.5l.4.3.3.2.4.2.3.3.4.3.3.2.3.3.3.3.2.4.3.3.2.4.2.4.2.4v.3l.2.5v.4l.2.2v.8zm-11 7.4v-1h1.6l.5-.2h1.1l.5-.2h.5l.4-.3h.4l.5-.3h.4l.3-.3h.4l.4-.3.3-.2.4-.3.3-.2.3-.2.3-.3.2-.3.2-.2.3-.3v-.3l.3-.3h.2v-.4l.2-.3v-.7l.2-.3v-.3h1v.4l-.2.4v.4l-.2.4v.3l-.2.3-.2.3-.2.4-.2.3-.3.3-.2.3-.3.2-.3.3-.3.3-.4.3-.3.3-.4.2-.4.3-.5.2-.4.2-.4.2h-.4l-.5.3h-.4l-.5.3h-.5l-.5.2h-1.1l-.5.2H482zm-10.6-7.4h1v1l.2.3v.3l.2.2.2.3v.4l.3.3.2.3.3.2.2.3.3.3.3.2.3.2.2.3.3.2.4.2h.2l.4.3h.4l.4.3h.5l.3.3h.9l.5.2h1.5l.6.2h.5v1h-1.9l-.5-.2h-.5l-.5-.2-.5-.2h-.4l-.5-.3h-.4l-.4-.3-.4-.2-.4-.2-.4-.3-.4-.2-.3-.2-.4-.2-.4-.3-.3-.3-.3-.3-.2-.4-.3-.3-.2-.3-.2-.4v-.3l-.2-.4-.2-.4v-.8l-.2-.4v-.4zm10.7-7.4v1h-1.3l-.5.2h-.3l-.5.2h-.5l-.4.2h-.4l-.6.3h-.4l-.4.3-.4.2-.3.2-.5.2-.3.2-.3.2-.4.2-.3.3-.3.2-.2.3-.3.3-.2.3-.2.3v.3l-.2.2v.3l-.2.3v.7l-.2.3v.3h-1V275l.2-.5.2-.4v-.2l.3-.4.3-.3.2-.3.3-.3.2-.3.3-.2.3-.3.3-.2.3-.3.3-.3.4-.2.4-.2.4-.2h.4l.4-.3.5-.2.5-.2h.5l.5-.2h1l.5-.2h1.1l.6-.2h.5z" fill="#21231e"/> - <path d="M482 211.7c4.4 0 8 3.4 8 7.7s-3.6 7.8-8 7.8-7.6-3.5-7.6-7.8 3.5-7.8 7.7-7.8z" fill="#edb92e"/> - <path d="M490.4 219.4h-1v-1l-.2-.3v-.4l-.2-.3v-.4l-.2-.4v-.3l-.3-.3-.2-.3-.2-.3v-.3l-.3-.2-.2-.3-.2-.2-.3-.2-.3-.2-.2-.2-.3-.2-.3-.2-.4-.2h-.3l-.3-.3h-.4l-.3-.2h-.4l-.4-.2H482V211l.6.2h1.2l.4.2h.4l.4.2.3.2.4.2h.4l.4.3.3.3.4.2.4.2.3.3.3.3.2.3.3.2.2.3.3.3.2.3.2.5.2.3v.4l.3.4v.8l.2.4v.8l.2.4v.4zm-8.3 8.3v-1h1.5l.3-.2h.3l.3-.2.4-.2h.3l.3-.2h.3l.2-.3.3-.2.2-.2.3-.2.3-.2.2-.3.2-.2.2-.2v-.3l.3-.3.2-.3.2-.4v-.3l.2-.4v-.7l.2-.4v-.8l.2-.4v-.4h1v1.2l-.2.4v.5l-.2.4v.3l-.3.4v.3l-.3.4-.2.3-.2.4-.3.4-.2.3-.3.3-.2.3-.3.3-.3.2-.3.3-.3.3-.3.2-.3.2-.3.2h-.4l-.3.2-.4.2h-.4l-.4.2H482zm-8-8.3h1v1.8l.2.3.2.3v.3l.2.3.2.3.2.2.2.3.2.3.2.3.2.3.2.3.3.2.2.3.3.3.3.2.4.2h.3l.3.3h.3l.4.3h.3l.3.2h.7l.4.2h.7v1h-1.6l-.4-.2h-.3l-.4-.3h-.4l-.4-.3-.4-.3-.3-.2-.5-.2-.3-.2-.3-.2-.4-.2-.3-.3-.3-.3-.2-.3-.3-.3-.2-.3-.2-.3v-.3l-.3-.4v-.3l-.3-.4v-.4l-.2-.5v-.4l-.2-.3v-1.4zm8-8.3v1.2h-1.3l-.4.2h-.3l-.3.2h-.4l-.3.3h-.3l-.3.2-.3.2-.2.2-.3.2-.2.3-.3.3-.2.2-.2.3-.2.3-.2.4-.2.3-.2.3-.2.3v.3l-.2.3-.2.3v.7l-.2.3v1.1h-1v-1.6l.2-.4v-.4l.2-.4.2-.4v-.4l.3-.3v-.4l.3-.2.2-.3.3-.3.2-.3.3-.4.3-.3.3-.3.2-.2.3-.2.4-.3.2-.2h.4l.3-.2.3-.2h.4l.4-.2h.5l.4-.2h1.1z" fill="#21231e"/> - <path d="M482 213.7c3.3 0 5.8 2.6 5.8 5.7 0 3.2-2.5 5.8-5.7 5.8-3 0-5.5-2.6-5.5-5.8 0-3 2.5-5.7 5.6-5.7z" fill="#edb92e"/> - <path d="M488.3 219.4h-1V218h-.2v-.7l-.2-.2v-.2l-.2-.3-.2-.2v-.2l-.3-.2-.2-.2-.2-.2-.2-.2h-.2l-.2-.3h-.4l-.2-.3h-.2l-.3-.2h-.6l-.2-.2H482v-1h1.8l.3.2h.3l.2.2h.3l.3.3h.4l.2.3h.2l.3.3.3.2.2.2.2.2.2.3v.2l.3.3v.2l.3.3v.2l.2.3.2.3v.6l.2.2v1.3zm-6.2 6.3v-1h1.1l.2-.2h.3l.2-.2h.2l.2-.2h.4l.2-.2.2-.2h.2l.2-.3.2-.2h.2v-.2l.3-.2v-.2l.3-.3.2-.3v-.2l.2-.3v-.2l.2-.3v-1.3h1v2l-.2.3-.2.3-.2.4-.2.3v.2l-.3.2v.2l-.3.2-.2.3h-.2l-.2.3h-.2l-.2.3-.3.2h-.2l-.2.3-.3.2h-.2l-.3.2h-.3l-.3.2h-1.4zm-6-6.3h1v1.3l.2.3v.2l.2.3v.2l.2.2.2.4.2.2v.2h.3l.2.3.2.3v.2h.3l.2.3h.3l.2.2h.2v.2h.4l.2.2h.2l.3.2h.9v1h-1.5l-.3-.2h-.3l-.3-.2h-.2l-.3-.3-.3-.2-.3-.2-.3-.2h-.2l-.2-.3h-.2l-.2-.4-.2-.2-.2-.2-.2-.3-.2-.3v-.3l-.2-.3h-.2v-.4l-.2-.3v-.6l-.2-.3v-.9zm6-6.2v1H481l-.2.2h-.4l-.3.2-.3.3h-.5l-.2.3h-.2v.3l-.3.2h-.2l-.2.3v.3l-.2.2v.2l-.2.3v.2l-.2.2v.2l-.2.3v.4l-.2.2v.7h-1V218l.2-.4v-.3l.2-.3.2-.3v-.2l.2-.3.2-.2.2-.3.2-.2.2-.3.2-.2.2-.2.2-.2.2-.2h.3l.2-.3h.2l.3-.2h.2l.3-.2h.3l.3-.2h.5l.3-.2h.6z" fill="#21231e"/> - <path d="M482 215.8c2 0 3.7 1.6 3.7 3.6S484 223 482 223c-1.8 0-3.4-1.6-3.4-3.6s1.6-3.6 3.5-3.6z" fill="#0c4076"/> - <path d="M486.2 219.4h-1v-.8h-.2v-.3l-.2-.2v-.2l-.2-.2-.2-.2-.2-.3h-.2l-.3-.2h-.2l-.2-.2h-.2v-.2H482v-1h1.4v.2h.5v.2h.3v.2h.3v.3h.3v.2l.2.2.2.3.2.3v.2l.2.2.2.3v.4l.2.2v.6zm-4 4.2v-1h.6v-.2h.5l.3-.2h.2l.2-.2v-.2h.2v-.2h.2v-.2h.2v-.2l.2-.2v-.2l.2-.2v-.4h.2v-1h1v1l-.2.2v.2l-.2.2v.2l-.2.2-.2.3-.2.2-.2.2-.3.2-.3.3h-.3l-.3.2-.3.2h-1l-.3.2zm-4-4.2h1v1.3l.2.2v.2l.2.2.2.2.2.2.2.2.2.2h.2v.2h.4l.2.2h.8v1.2h-.7l-.2-.2h-.3v-.2h-.5l-.2-.2-.3-.3h-.2v-.2l-.2-.2h-.2v-.2l-.2-.3-.2-.3v-.2l-.2-.2-.2-.3v-1.4zm4-4v1h-1l-.2.2h-.2l-.2.2h-.2v.2h-.2l-.2.3-.2.2-.2.2-.2.3v.4h-.2v1h-1V218l.2-.2.2-.3v-.2l.2-.2.2-.2.3-.3.2-.2.2-.2h.2l.2-.2h.2l.2-.2h.3l.3-.2h.9z" fill="#21231e"/> - </g> - <path d="M314.6 301.2v271.3c0 48.5 18.8 92.6 49.2 124.6C394 729 436 749 482 749c46.3 0 88.2-19.8 118.5-51.7 30.4-32 49.2-76 49.2-124.5V301.2h-335z" fill="#c6363c"/> - <path d="M313.4 300v277l.2 4.6.3 4.5.3 4.6.5 4.4.5 4.5.7 4.3.8 4.4 1 4.3 1 4.2 1 4.3 1.2 4.2 1.3 4 1.4 4.2 1.4 4 1.7 4 1.6 4 1.8 4 2 3.8 1.8 3.8 2 3.7 2 3.7 2.2 3.6 2.2 3.6 2.4 3.5 2.4 3.6 2.4 3.4 2.6 3.3 2.6 3.2 2.7 3.2 2.8 3 3 3.2 1.6-1.7-2.8-3-2.7-3-2.6-3.3-2.5-3.2-2.7-3.3-2.4-3.3-2.5-3.4-2.2-3.5-2.3-3.5-2-3.6-2-3.6-2-3.7-2-4-1.8-3.7-1.7-3.8-1.6-4-1.7-4-1.4-4-1.5-4-1.2-4-1.2-4.2-1-4-1-4.3-.8-4.3-.8-4.3-.7-4.3-.6-4.2-.4-4.5-.4-4.4-.2-4.5-.2-4.5V302.5h332.7V577l-.2 4.5-.3 4.4-.3 4.3-.5 4.5-.6 4.3-.7 4.4-1 4.3-.8 4.3-1 4.2-1 4-1.2 4.3-1.3 4-1.3 4-1.4 4-1.6 4-1.6 4-1.7 3.8-1.7 3.8-2 4-2 3.6-2 3.6-2 3.6-2.3 3.5-2.3 3.5-2.3 3.4-2.5 3.3-2.6 3.3-2.6 3.2-2.6 3.2-2.7 3-2.8 3-3 3-2.8 3-3 2.7-3 2.6-3.3 2.6-3 2.6-3.4 2.4-3.3 2.5-3.3 2.3-3.4 2.2-3.5 2.2-3.5 2-3.5 2-3.6 2-3.7 1.7-3.7 1.8-3.8 1.7-3.8 1.5-3.8 1.4-4 1.3-3.8 1.3-4 1-4 1-4 1-4 1-4.2.6-4 .6-4.3.5-4 .4-4.3.4-4.3.2H482v2.4h4.5l4.3-.2 4.3-.3 4.4-.4 4.2-.4 4.2-.6 4.2-.8 4-.8 4.2-1 4-1 4-1.2 4-1.2 4-1.4 4-1.4 3.8-1.6 3.7-1.6 3.8-1.7 3.7-2 3.7-1.8 3.5-2 3.5-2 3.6-2.3 3.4-2.2 3.4-2.4 3.3-2.5 3.3-2.4 3.2-2.6 3.2-2.7 3-2.7 3-2.8 3-3 3-3 2.8-3 2.8-3 2.7-3.3 2.6-3.2 2.5-3.3 2.5-3.4 2.4-3.5 2.3-3.4 2.3-3.6 2-3.6 2.2-3.7 2-3.7 2-3.8 1.7-4 1.8-3.8 1.6-4 1.6-4 1.4-4 1.4-4 1.3-4.2 1.2-4.2 1-4.3 1-4.2 1-4.3.7-4.4.7-4.3.5-4.5.5-4.4.4-4.5.3-4.4V577l.2-4.5V300z" fill="#fff"/> - <g fill="#fff" stroke="#21231e"> - <path d="M483.7 734.8c1.4-.2 4 0 5.7-1.4 2.5-2 1.5-9.8 1.3-14.8-1-25.3-2.2-68-3.5-128-2-.2-3.6 0-5 .2-1.5-.3-3-.4-5 0-1.4 59.8-2.5 102.5-3.6 127.8-.2 5-1.2 13 1.3 14.8 1.7 1.5 4.2 1 5.6 1.4h3z"/> - <path d="M499.6 734c-1.5 0-4 .5-6-.8-2.6-1.7-2.8-9.7-3-14.7-1.2-25.4-3.5-67.8-7.6-127.6 2-.6 3.6-.6 5-.5.3 0 .5 0 .7-.2 9.6 59.2 13.2 101.2 19.7 126.5 1 3.5 2.8 12.2-.2 15-1.7 1.7-4.2 1.6-5.6 2l-3 .3z"/> - <path d="M518.2 731.4c-1.5 0-3.8.8-6-.3-2.7-1.4-2.6-9.4-3.8-14.2-6.6-25.3-10.2-67.3-19.7-126.5 2-.7 3.6-.8 5-1h.2c15 57.6 19.6 98.2 31.4 123.2 1 3.5 4 12.7 1.2 16-1.5 1.7-4 1.8-5.4 2.3l-3 .6z"/> - <path d="M537 726c-1.5.3-4 1.6-6 .7-3-1.2-3.5-9.7-5.6-14.2-11.8-25-16.3-66-31.7-124 2-.8 3.5-1 5-1.3 1.3-.6 1-1 3-1.2 18 57.3 23.7 97 40.5 121.8 2.7 4 4.7 12 3 14.5-1.5 2-4 2.3-5.3 3l-3 .8zm-72.2 8c1.4 0 3.8.5 5.8-.8 2.7-1.7 3-9.7 3-14.7 1.3-25.4 3.6-67.8 7.7-127.6-2-.6-3.6-.6-5-.5a25.4 25.4 0 0 0-.7-.2c-9.6 59.2-13.2 101.2-19.7 126.5-1 3.5-3 12.2 0 15 1.8 1.7 4.3 1.6 5.7 2l3 .3z"/> - <path d="M446 731.4c1.6 0 4 .8 6-.3 2.8-1.4 2.7-9.4 4-14.2 6.4-25.3 10-67.3 19.6-126.5-2-.7-3.6-.8-5-1h-.3c-15 57.6-19.6 98.2-31.4 123.2-1.2 3.5-4.2 12.7-1.3 16 1.5 1.7 4 1.8 5.4 2.3l3 .6z"/> - <path d="M427.3 726c1.5.3 4 1.6 6 .7 3-1.2 3.5-9.7 5.6-14.2 11.7-25 16.2-66 31.6-124-2-.8-3.5-1-5-1.3-1.3-.6-1-1-3-1.2-18 57.3-23.7 97-40.5 121.8-2.6 4-4.6 12-2.8 14.5 1.4 2 4 2.3 5.2 3l3 .8zm99.7-43c-1.3 0-3.3 1-5.4 0-2.8-1.4-4.6-9-6-14-12-23.5-23-65.3-40.8-123.4 1.8-.7 3-1 4.5-1 1-.5 2.4-1 4.3-1.2 19.3 57.5 28 99 46.7 122 3 3.8 5.4 12 4 14.4-1.2 1.8-3.4 2-4.6 2.6l-2.7.6z"/> - <path d="M512 685.8c-1.5 0-3.6.6-5.6-.5-2.6-1.6-3.5-9.4-4.5-14.3-5-25-13.7-67-26.3-126 1.8-.7 3.2-.8 4.5-.8 1.2-.4 2.6-.8 4.5-.8 15 58.7 18.3 102.6 32.4 125 2.6 4.2 4 12.5 2.3 14.8-1.3 1.7-3.5 1.7-4.8 2.2l-2.7.4z"/> - <path d="M496.4 687.6c-1.4-.2-3.5.3-5.4-1-2.4-1.7-2.4-9.6-2.8-14.6-2-25.3-6-68-11.6-127.6 2-.5 3.3-.4 4.6-.3 1.2-.2 2.6-.5 4.5-.4 8 59.6 12.8 102.8 18 127.2 1 5 2.4 12.6.4 14.8-1.4 1.5-3.6 1.4-5 1.8l-2.6.2z"/> - <path d="M437.2 682.8c1.4 0 3.4 1 5.5 0 2.8-1.4 4.6-9 6-14 12-23.5 23-65.3 40.8-123.4-1.8-.7-3-1-4.5-1-1-.5-2.4-1-4.3-1.2-19.3 57.5-28 99-46.7 122-3 3.8-5.4 12-4 14.4 1.2 1.8 3.4 2 4.6 2.6l2.6.6z"/> - <path d="M452.4 685.8c1.4 0 3.5.6 5.5-.5 2.5-1.6 3.4-9.4 4.4-14.3 4.8-25 13.6-67 26.2-126-1.8-.7-3.2-.8-4.5-.8-1-.4-2.5-.8-4.4-.8-15 58.7-18.3 102.6-32.4 125-2.5 4.2-4 12.5-2.2 14.8 1.3 1.7 3.5 1.7 4.7 2.2l2.7.4z"/> - <path d="M468 687.6c1.3-.2 3.4.3 5.3-1 2.4-1.7 2.4-9.6 2.8-14.6 2-25.3 6-68 11.7-127.6-2-.5-3.3-.4-4.6-.3-1-.2-2.5-.5-4.4-.4-8 59.6-12.8 102.8-18 127.2-1 5-2.4 12.6-.4 14.8 1.5 1.5 3.7 1.4 5 1.8l2.7.2z"/> - <path d="M483.5 688c1.3 0 3.5.2 5.2-1.3 2.3-2 1.4-9.8 1.2-14.8-1.2-25.4-2-68-3.3-128-2-.3-3.2-.2-4.6 0-1.2-.2-2.5-.3-4.4 0-1.2 60-2 102.6-3.2 128-.2 5-1 12.8 1.2 14.7 1.6 1.5 4 1 5.2 1.4h2.7z"/> - <path d="M516.5 648c-1 0-2.5 1-4 0-2.3-1.5-3.7-9.2-4.8-14-9.2-23.5-17.5-65.4-31.2-123.5 1.4-.7 2.4-1 3.4-1 .8-.5 1.8-1 3.3-1 14.7 57.4 21.3 99 35.7 121.8 2.4 3.8 4 12 3 14.5-.8 1.8-2.5 2-3.4 2.5l-2 .7z"/> - <path d="M505 651c-1 0-2.7.6-4.3-.6-2-1.5-2.7-9.4-3.4-14.3-3.7-25-10.5-67-20-126 1.3-.6 2.3-.7 3.4-.7 1-.4 2-.7 3.4-.8 11.5 58.7 14 102.6 25 125.2 2 4 3 12.4 1.6 14.6-1 1.7-2.7 1.8-3.6 2.2l-2 .5z"/> - <path d="M493 652.7c-1 0-2.6.4-4-1-2-1.7-2-9.6-2.2-14.5-1.5-25.4-4.5-68-9-127.7 1.5-.4 2.6-.4 3.6-.3 1-.3 2-.6 3.5-.4 6 59.6 9.7 102.7 13.6 127 .7 5 2 12.8.4 15-1.2 1.5-3 1.4-4 1.7l-2 .2z"/> - <path d="M447.8 648c1 0 2.5 1 4 0 2.3-1.5 3.7-9.2 4.8-14 9.2-23.5 17.5-65.4 31-123.5-1.2-.7-2.2-1-3.2-1-1-.5-2-1-3.4-1-14.7 57.4-21.3 99-35.7 121.8-2.4 3.8-4.2 12-3 14.5.8 1.8 2.5 2 3.4 2.5l2 .7z"/> - <path d="M459.4 651c1 0 2.6.6 4-.6 2.2-1.5 3-9.4 3.6-14.3 3.7-25 10.5-67 20-126-1.3-.6-2.4-.7-3.4-.7-1-.4-2-.7-3.4-.8-11.4 58.7-14 102.6-24.8 125.2-2 4-3 12.4-1.7 14.6 1 1.7 2.7 1.8 3.6 2.2l2 .5z"/> - <path d="M471.3 652.7c1 0 2.6.4 4-1 2-1.7 2-9.6 2.2-14.5 1.5-25.4 4.5-68 9-127.7-1.5-.4-2.6-.4-3.6-.3-1-.3-2-.6-3.6-.4-6.2 59.6-9.8 102.7-13.7 127-.7 5-2 12.8-.4 15 1.2 1.5 3 1.4 4 1.7l2 .2z"/> - <path d="M483.2 653.2c1-.2 2.7 0 4-1.4 1.7-2 1-9.7 1-14.7-1-25.3-1.6-68-2.5-128-1.5-.2-2.6 0-3.6.2-.8-.2-2-.4-3.4 0-1 59.8-1.6 102.5-2.4 128 0 5-.8 12.7 1 14.6 1.2 1.5 3 1.2 4 1.4h2z"/> - <path d="M475 559c-.2 4.4-.3 9-.3 14l-10.6 2.3c0 4.8 12 55.4 18 55.4 6.3 0 18.2-50.6 18.2-55.5l-10.6-2v-.2c0-5 0-9.6-.2-14-2.2 2-4.7 5.2-7.3 8-2.4-2.8-5-6-7-8z"/> - </g> - <g id="d"> - <path d="M412 584.5c-3 .2-7 2-18.5 12-5 10.2-10 20.5-17 29.4-2.4 1.4-4.2 2.5-6 3.2-2 .6-16.6 0-17-.5-4.4-4-11.3-1.2-9 3.2-1.8 1.6 2.2 7.8 5.3 5.2 3-2.4 13-.2 16.4-1.4-1.3 3-10.4 5-16.8 5.5-5.8.2-5.4 6-3 10.5 2.7 1.8.5-.4 1.4.8 2.6 4 8.2 3.4 8.4-.4.2-4 13.8-9 15.8-12-2.5 6-8.2 11.5-11 17.3-3 3-5 3.7-1 10 4.4-.6 4.6-1.7 7.3.8 6-.6 7-2.4 6-7.2-1-5 3.2-14 4.6-16.6 1.2-2.4 1.5-4.8 2.8-6.3 2.2-2.5 12.6-7.7 15.2-6.3 5 2.7 8.7 1 9.3-3.7-1.6-1.2-.4-8-3.8-8.2-2.8-.3-4.4.6-7 2.7-4 3.2-6 5-7.4 4.6-3-.7 5.8-5 13.8-15.6 11-14.5 11.8-22 11.3-27z" fill="#edb92e" stroke="#21231e"/> - <use width="1350" height="900" transform="matrix(-1 0 0 1 801.634 0)" xlink:href="#c"/> - <path d="M345.2 634.5c-4-2.3-6.3-2.2-8-.5-.7 1-1.8.5-1.2-1 2.7-6.3 7-7 10.7-4.2l2.8 2.7c-.6 1-3.8 2.3-4.3 3zm57.4-5.6c4.3-3 8.3-3.6 10.5-2 1.3 1 2.5.3 1.4-1.2-4.4-6.2-9.6-6.5-13.5-3-1.2 1-2 2-2.8 3 1.3 1.6 4.3 3.2 4.4 3zM369 664.4c.2-.2-1-5.4-2.6-7-1.4 1-3 2-4.3 3.5-4.2 4.5-4 11 2.5 16.7 1.6 1.5 2.4 0 1.7-1.7-1-2.7.3-6.3 3-11.5zM352.6 651c-4 1.6-5.4 3.7-5.2 6.4 0 1.5-1 2-1.5.3-4.8-11.2.2-13.3 7.5-13 .4 2-.7 6.2-.8 6.2z" fill="#edb92e" stroke="#21231e"/> - <path d="M384 621.3l1 .6h-.2v1.8h.2v.4h.2v.2h.2l.2.3.3.2v.2h.4l.2.3h.2l-.6 1h-.2l-.3-.2h-.2l-.2-.2-.2-.2-.3-.3-.3-.3v-.2h-.2v-.3l-.2-.2v-.2h-.2v-.2l-.2-.2V622l.2-.3v-.2zm6.5.8l-.8 1-.2-.2-.3-.2-.2-.2-.2-.2h-.3l-.2-.3-.2-.3-.3-.2-.2-.2-.3-.2h-.7l-.2-.2h-.7v.2h-.2l-.2.2v.2h-.2v.3l-.2.2-1-.7v-.3l.2-.2.2-.2.2-.2.3-.3h.3l.2-.2h.4v-.2h.8l.2.2h.4l.2.2h.2l.2.2h.2l.2.3h.2l.2.3h.2l.3.3.2.3.2.2.3.2.2.2h.3z" fill="#21231e"/> - <path d="M387.3 617.6l1 .6v.4h-.2v.8l.2.2v.2l.2.2v.2l.2.2.2.3.3.2h.2l.2.2h.2l.2.2.2.2h.2l-.6 1h-.2l-.3-.2-.3-.3h-.2l-.2-.2-.2-.2-.2-.3v-.2h-.2l-.2-.2v-.2h-.2v-.5h-.2V618h.2v-.3zm6.5.8l-.7 1-.2-.3h-.2l-.2-.3-.3-.2-.3-.3h-.2l-.2-.3-.2-.2-.3-.2-.3-.2h-.3v-.2h-.8l-.2.2-.2.2-.2.2v.2l-.3.2-1-.6.2-.3v-.2h.3v-.3h.3l.3-.3h.2l.2-.2h.2v-.2h1.4l.2.2h.2v.2h.3l.3.3h.2l.2.2h.2l.2.3h.2l.3.3v.2l.3.2.3.2.2.2z" fill="#21231e"/> - <path d="M391 612.8l1 .6-.2.2v.6h-.2v1l.2.3v.3h.2v.4h.2l.2.3v.2h.2l.2.2.2.2.3.3.3.2h.2l.2.2-.6 1-.3-.2-.2-.2-.2-.2-.3-.2-.2-.2v-.2l-.3-.2v-.2l-.3-.2v-.2l-.3-.2v-.4l-.2-.3v-.2h-.2v-.7h-.2v-1l.2-.3v-.4l.2-.3v-.2zm7 1l-.8 1-.3-.3-.3-.2-.3-.3-.3-.2v-.2l-.3-.2-.3-.2-.2-.2-.2-.2-.2-.2h-.2l-.2-.2-.3-.2h-.2l-.2-.2h-.7l-.2.2-.2.2-.3.3v.2h-.2v.4l-1-.6v-.3l.2-.2.2-.3v-.2l.3-.2.2-.2v-.2h.3l.2-.2h.3l.2-.2h1.2l.2.2h.2l.2.2.3.2h.3l.2.3.2.2h.3l.2.3.3.2.2.2.3.2.2.2.3.2.2.3.3.2z" fill="#21231e"/> - <path d="M394.8 607.7l1 .5v.5l-.2.3v1.7l.2.2v.3l.2.2v.2l.2.2.3.3v.2l.3.2.2.2h.2l.2.3.2.2.3.2v.2l-.6.8-.3-.2v-.2l-.4-.2-.2-.3-.3-.3v-.2l-.3-.3-.2-.2v-.2l-.3-.3v-.2l-.3-.2-.2-.2v-.2l-.2-.2v-.3l-.2-.3v-2.1l.2-.2v-.2l.2-.3zm7.6 1.3l-1 .8-.2-.3-.3-.3-.3-.2-.3-.3-.3-.3v-.2l-.4-.2-.2-.2-.2-.2-.2-.2-.2-.2h-.2l-.2-.2h-.2l-.2-.2h-.3v-.2h-.7v.2l-.3.2-.2.3-.2.2v.2l-.3.2v.2l-1.2-.5.2-.3.2-.3v-.2l.3-.3.2-.2.2-.2.3-.2.3-.2h.5l.3-.2h.8l.3.2h.2l.3.2h.2l.2.3.3.3.2.2.3.2.2.2h.3l.2.3.3.3.2.2.3.3.3.4.3.3.4.3z" fill="#21231e"/> - <path d="M399 602.6l1.2.6v.2l-.2.2-.2.3v2.1l.2.2v.2l.2.2.2.2v.2l.2.2.2.2.2.2v.2l.3.2.2.2.2.2.3.2.2.2.3.2-.8 1-.3-.3-.2-.3-.3-.2-.3-.3-.2-.2-.3-.2-.2-.3v-.2l-.3-.2-.2-.2v-.2l-.3-.2v-.3h-.2v-.4l-.2-.2v-.2l-.2-.3v-2.6l.2-.2v-.2l.2-.2v-.2zm7.7 1.4l-1 .8-.2-.3-.3-.3-.2-.3-.3-.3-.3-.3-.2-.2-.2-.3-.3-.3-.2-.2h-.2l-.2-.3-.2-.2h-.2v-.2h-1.3l-.3.2v.2h-.2v.3l-.3.2-.2.3v.2l-1.2-.6.3-.3.2-.3.2-.2.2-.3v-.2l.4-.2h.2l.2-.2h.2l.2-.2h1.7l.2.2.2.2h.2l.2.3h.3l.3.3.2.3h.3l.2.3.3.3.2.2.3.3.3.4.4.3.3.3z" fill="#21231e"/> - <path d="M462.6 580.6l-9.5-5.4c-4 3-6.8 13.5 0 22.2 8.5 11 12 18.7 14 27.5 6.2-8 8.3-16.3 4.4-24.5-5.3-11-8.7-17-8.8-20z" fill="#fff" stroke="#21231e"/> - <path d="M470.4 573l-9.5-5.4c-4 3-12.5 13.2-5.6 22 8.5 10.8 17.3 19 19.4 27.7 6.2-8 8.8-16.2 5-24.4-5.4-11-9.4-17.2-9.4-20z" fill="#fff" stroke="#21231e"/> - <path d="M449.4 569.2l-9.5-5.4c-4 3-7 13.5-.2 22.2 8.5 10.8 12 18.7 14 27.5 6.2-8 8.4-16.3 4.4-24.4-5.3-11-8.7-17-8.8-19.8z" fill="#fff" stroke="#21231e"/> - <path d="M405.5 469c.2 8.7-1.4 66.5-1.8 74.7-.5 8.2-4 13.7-8 17-3.5-5-5.6-11.5-6-19.3-.4-4 .4-58.7.7-70 6.4-17 11.2-17.8 15-2.4z" fill="#fff"/> - <path d="M404 543.8h-1l.2-1v-2.6l.2-1.7v-4l.2-2.3v-5l.2-2.7v-2.8l.2-3v-3l.2-3v-6.2l.2-3v-6.2l.2-3v-5.8l.2-2.7v-7.4l.2-2V469h1v11.7l-.2 2.5v8.3l-.2 2.8v6l-.2 3.2v3l-.2 3.2v6l-.2 3v3l-.2 2.8v5.3l-.2 2.5v2.3l-.2 2v3.6l-.2 1.5v2zm-8.7 17l.8-.5h-.6l.3-.4.4-.4.4-.3.4-.3.3-.4.5-.4.3-.3.3-.5.4-.4.4-.4.3-.4.4-.5.3-.4.2-.5.2-.5.3-.5.3-.5.2-.6.2-.5.3-.6.2-.5.2-.5v-.7l.3-.6v-.6l.3-.7v-.7l.2-.7v-.7l.2-.8v-1.5h1v2.3l-.2.7v.8l-.3.6v.8l-.3.7-.2.6-.2.8-.2.6-.2.6-.2.6-.3.6-.4.5-.2.6-.3.5-.2.5-.3.5-.3.5-.3.5-.4.4-.4.5-.3.4-.5.5-.3.4-.4.3-.3.4-.4.3-.2.4-.4.3-.4.3h-.7zm.7.2l-.4.3-.3-.4h.7zm-7-19.5h1v.6l.2.8v1.4l.2.7v.6l.2.7v.6l.3.6v1.5l.3.5v.7l.3.6.2.6.2.6.2.6.2.5.2.7.2.6.2.5.3.6.2.5.3.4.2.6.3.5.3.5.3.5.2.4.3.4.3.5.3.3-.7.6-.3-.6-.4-.4-.3-.5-.3-.5-.3-.5-.3-.6-.2-.6-.3-.5-.4-.7-.2-.5-.3-.6v-.6l-.3-.5-.3-.5-.2-.6-.2-.7-.2-.6v-.7l-.3-.6-.2-.6v-.7l-.3-.5v-.7l-.2-.7-.2-.6v-.6l-.2-.7v-1l-.2-.8v-1.5zm1-70.2l.8.3v8l-.2 2.3V492l-.2 2.7v11.6l-.2 3v19l-.2 2.2v11h-1v-20.9l.2-2.7v-14.6l.2-2.8V489l.2-2.6v-8.9l.2-2v-4.2zm0 0zm16-2.3h-1l-.4-1.3-.3-1.3-.4-1-.5-1.2-.4-1-.2-1-.4-.7-.4-.8-.4-.6-.4-.4-.4-.4-.4-.3-.3-.3h-.3l-.4-.2h-.7l-.4.3-.4.3-.5.5-.5.4-.5.5-.5.7-.5.7-.5.8-.5 1-.6 1-.5 1.2-.6 1.3-.6 1.3-.6 1.5-.6 1.6-1-.3.7-1.6.6-1.5.7-1.3.6-1.4.5-1.2.6-1 .5-1 .5-1 .5-.8.6-.7.5-.7.6-.6.6-.4.5-.4.6-.3.5-.2h1.1l.5.3.5.3.5.5.5.5.4.6.4.6.5.8.4.8.4 1 .5 1 .3 1 .4 1.4.4 1.3.4 1.4zm0 0z" fill="#21231e"/> - <path d="M368 454.8l-2.6 79.6c-.8 7 8.4 49 13.5 57.4 12.3-5.3 15-33.8 12.6-61.6-2.4-27.8.4-51.8 2.3-56.8 0-6.3-1-12.8-1-19.3-8 .5-17.2.4-25 .8z" fill="#fff"/> - <path d="M365 534.4l2.4-79.6h1l-2.5 79.6h-1zm1 0zm12.7 57l.3.8-.6-.2-.5-1-.6-1-.5-1.2-.7-1.4-.5-1.6-.6-1.6-.6-1.8-.6-2-.5-2-.6-2-.7-2.2-.6-2.2-.6-2.3-.4-2.3-.6-2.3-.5-2.3-.6-2.3-.6-2.3-.4-2.2-.5-2.2-.4-2.2-.3-2-.4-2.2-.3-2-.3-1.8-.3-1.7-.2-1.6v-1.4l-.3-1.3v-2.8h1v4.1l.2 1.5.2 1.6.3 1.7.3 1.8.3 2 .4 2 .4 2.2.5 2.2.4 2.2.4 2.3.5 2.2.4 2.3.6 2.3.5 2.4.6 2.3.7 2.2.5 2.2.6 2 .6 2.2.6 2 .6 2 .5 1.7.7 1.5.6 1.5.5 1.4.5 1.2.5 1 .5 1-.6-.3zm.3.8l-.4.2-.2-.4.6.2zm12-62h1l.3 2.5v2.7l.3 2.6v2.6l.2 2.6v12.5l-.3 2.4-.2 2.5-.2 2.3v2.3l-.4 2.3-.4 2.2-.3 2-.6 2-.4 2-.6 2-.5 1.7-.8 1.7-.6 1.5-.7 1.5-1 1.5-.7 1.3-1 1.2-1 1-1 1-1 1-1 .6-1.3.6-.3-1 1-.4 1-.7 1-.7 1-1 1-1 .7-1 .8-1.3.8-1.4.7-1.5.6-1.5.6-1.6.5-2 .5-1.7.5-2 .4-2 .3-2 .3-2 .3-2.3v-2.3l.4-2.3V558l.3-2.3V538l-.2-2.6-.2-2.6-.2-2.6zm2.4-56.8h1v.2l-.2.5-.2.7-.2.7-.2 1-.2.8-.2 1-.2 1.2v1.2l-.3 1.3-.2 1.3-.2 1.4v1.6l-.3 1.6v1.7l-.3 1.7v2l-.2 1.8v2l-.2 2V520l.2 2.5.2 2.5.2 2.6v2.5l-1 .2v-2.6l-.3-2.5-.2-2.5V520l-.2-2.5v-20.1l.2-2v-2l.3-2v-1.7l.2-1.7.2-1.8.2-1.6v-1.4l.3-1.5.2-1.3v-1.2l.3-1V477l.3-1 .2-.8.2-.7.2-.7.2-.5zm1 0v.2-.2zm-1.5-18.8v-1l.4.4v3.7l.2.6v2.5l.2.6v1.8l.2.6v2.4l.2.6v3.6l.2.6v2.4h-1V468l-.2-.5V465l-.2-.5v-1.9l-.2-.6v-1.7l-.2-.6v-3l-.2-.6V454l.5.6zm0-1h.4v.4l-.5-.4zm-24.6 1.2h-1l.4-.5h3.9l.8-.2h12.8l.8-.2h4.7l.8-.2h1.7v1h-4.1l-.7.2h-8l-.8.2h-7.1l-.8.2h-3.9l.4-.4zm-1 0v-.4h.4l-.4.4zm.5 0h.4-.5zm-.6 0v-.4h.4l-.4.4z" fill="#21231e"/> - <path d="M353 468l1.8 79.5c-.4 7 11 48.5 16.4 56.5 12.6-9.8 10-49.8 8.2-62-4-24-3.2-52-2-56.5 0-6.3-.2-13.8-.6-20.4-8 1-15.8 2-23.7 2.8z" fill="#fff"/> - <path d="M354.3 547.5l-1.7-79.6 1-.2 1.7 79.6h-1zm1 0zm15.6 56l.5 1-.7-.2-.5-1-.6-1-.6-1.2-.5-1.2-.7-1.6-.6-1.6-.7-1.8-.7-1.8-.7-2-.5-2-.7-2.2-.7-2.2-.6-2.2-.7-2.3-.7-2.2-.7-2.3-.6-2.3-.6-2.3-.5-2.3-.6-2.2-.6-2.2-.5-2-.6-2-.4-2-.4-2-.4-1.6-.3-1.6-.3-1.3-.2-1.3v-1.2l-.2-1v-.8h1v1.8l.2 1 .2 1.3.2 1.5.2 1.5.3 1.7.4 2 .4 1.8.4 2 .5 2 .6 2.2.4 2.2.6 2.3.7 2.3.6 2.3.7 2.2.6 2.3.7 2.3.7 2.3.7 2.2.7 2 .7 2.2.8 2 .7 1.8.6 1.7.8 1.7.6 1.4.6 1.3.6 1.2.5 1 .6.7h-.7zm.5 1l-.4.2-.2-.4h.7zM379 542l1-.2v1.2l.2 1.4.2 1.5.2 1.8.2 1.7v2l.3 2 .2 2v2l.2 2.3v12l-.2 2.4v2.3l-.3 2.4-.4 2.4-.3 2.4-.3 2.2-.4 2.2-.5 2.2-.4 2-.6 2-.7 2-.8 1.6-.8 1.7-1 1.5-1 1.3-1 1.4-1.2 1-.6-.8 1-1 1-1 1-1.4.8-1.4.8-1.6.8-1.7.6-1.8.6-2 .5-2 .6-2 .4-2.2.4-2.3.3-2.3.2-2.4v-2.3l.3-2.4V569l.2-2.2V560l-.2-2.3v-2.2l-.2-2v-2l-.2-2-.2-1.6-.2-1.8-.2-1.5v-1.3l-.3-1.2zm-2-56.7h1v.6l-.2.7-.2.7v1l-.2.8v2.4l-.2 1.3v2.8l-.2 1.6v15.2l.2 2v2.3l.3 2v2.4l.3 2.3v2.2l.3 2.2.4 2.3.2 2.4.3 2.2.2 2.3.3 2.2.4 2.3-1 .2-.5-2.3-.3-2.4-.3-2.3-.4-2.3-.2-2.4-.2-2.3-.2-2.3-.2-2.3-.2-2.2v-2.3l-.3-2.2V512l-.2-2v-16l.2-1.4v-1.3l.2-1.2v-2l.3-1v-.8l.2-.6v-.7.2zm1 0zm-1.2-20v-1l.5.6v3.4l.2.7v3.8l.2.6v6l.2.6v5.3h-1V480l-.2-.7v-5.7l-.2-.6v-4.5l-.2-.7v-2.4l.4.4zm0-1h.4v.6l-.5-.4zm-23.7 4v-1l.8-.2h.8l.7-.2h2.2l.7-.2h.8l.7-.2h.8l.7-.2h1.4l.7-.2h.8l.7-.2h.6l.8-.2h1.7l.6-.2h.7l.8-.2h.8l.7-.2h1.5l.8-.2h.7l.7-.2h.8l.7-.2v1h-.6l-.6.2h-.8l-.7.2h-1.6l-.7.2h-.8l-.8.2h-.8l-.7.2h-1.5l-.7.2h-.8l-.7.2h-.7l-.8.2H362l-.7.2h-.7l-.8.2h-.7l-.6.2H357l-1 .2h-.6l-.7.2h-.8l-.8.2zm.2 0zm0-1v1l-.6-.6.5-.6zm-.6.4v-.6h.5l-.4.5z" fill="#21231e"/> - <path d="M342.2 486.7l21-.5c-2 8.6-.5 35.6 3.2 56.2 3.3 19.3 8 69.3-12 81.3-12.5-26.4-3-52-9.2-75-5-24.3-6-44.6-3-62z" fill="#fff"/> - <path d="M363 486.7l-20.8.5v-1l21-.5.4.6-.5.4zm0-1h.7v.6l-.6-.6zm3.8 56.6l-1 .2-.3-2-.3-2-.3-2-.4-2-.3-2-.2-2-.2-2.2-.2-2-.2-2.2-.2-2-.2-2-.2-2-.2-2.2v-2l-.3-2v-2l-.2-2V499l-.2-1.7v-4.5l.2-1.4v-1.2l.2-1.2v-1l.3-1v-1l1 .3v.8l-.2 1v1l-.2 1.3v5.4l-.2 1.6v4.9l.2 1.8v4l.2 1.8v2l.3 2v2l.3 2 .2 2v2l.3 2.2.3 2 .2 2.2.3 2 .3 2 .3 2 .3 2.2.2 2 .3 2 .3 2zM354 624l.8-.6-.7-.2 2-1.2 1.5-1.4 1.5-1.6 1.4-1.8 1.3-2 1-2 1-2.3 1-2.6 1-2.5.6-2.8.6-2.7.4-2.8.4-3 .4-3 .3-3 .2-3v-3l.2-3v-6.2l-.2-3-.2-3v-3l-.4-3-.2-2.7-.3-2.7-.2-2.5-.4-2.5-.2-2.4-.3-2.2-.3-2-.3-2h.8l.4 1.8.3 2 .3 2.3.3 2.3.4 2.5.3 2.7.3 2.7.2 2.8.2 3 .2 2.8.2 3v15.5l-.3 3-.3 3.2-.4 3-.4 2.8-.5 3-.8 2.7-.7 2.7-.8 2.6-1 2.4-1 2.4-1.2 2.2-1.3 2-1.4 2-1.6 1.5-1.7 1.5-1.8 1.3h-.7zm.7 0l-.5.4-.3-.5h.7zm-10-75.2l1-.2.5 2.2.4 2.2.4 2.2.3 2.2.3 2.2.2 2.3v2l.2 2.4v25.4l.2 2.4v2.4l.3 2.4.3 2.4.3 2.4.5 2.4.4 2.4.5 2.4.7 2.5.7 2.4.8 2.5 1 2.5 1 2.4-.8.5-1.2-2.6-1-2.5-.8-2.6-.8-2.5-.7-2.5-.5-2.5-.5-2.4-.4-2.5-.2-2.3-.3-2.5-.2-2.4V594l-.2-2.4V564l-.2-2.3-.2-2.3-.2-2.2-.4-2.2-.3-2-.5-2.3-.5-2v-.2zm0 0zm-2.5-62.6v1l.5-.4-.3 1.6-.2 1.7-.2 1.7-.2 1.7-.2 1.7v1.8l-.3 1.8v3.5l-.2 2v7.3l.2 2v1.8l.2 2v2l.2 2 .2 2 .2 2 .2 2 .3 2 .2 2 .3 2.3.3 2 .3 2.2.4 2.2.4 2.2.4 2 .4 2.4.4 2.2-1 .2-.4-2.2-.4-2.3-.4-2.2-.4-2-.3-2.3-.4-2.2-.3-2-.3-2.2-.2-2-.3-2.2-.2-2-.2-2-.2-2v-2l-.2-2v-2l-.2-1.8v-13l.2-1.8v-1.8l.2-1.7.2-1.7.2-1.7.2-1.7.2-1.7.3-1.7.5-.4zm-.5.4v-.4h.5l-.5.4zm.5 0v-.4.5zm-.5 0v-.4h.5l-.5.4z" fill="#21231e"/> - <path d="M422 454.4c0 8.7-3.2 66.5-4 74.6-.7 8-4.5 13.6-8.4 16.6-3.4-5-5.3-11.5-5.5-19.3 0-4 2.3-58.7 3-70 7-17 11.8-17.4 15-2z" fill="#fff"/> - <path d="M418.5 529h-1v-1l.2-1v-1.5l.2-1.7v-2l.2-2v-2.3l.3-2.4v-2.5l.3-2.7.2-2.8v-3l.3-3 .2-3 .2-3v-3l.3-3.2.2-3 .2-3.2v-3l.3-3V474l.3-3v-2.5l.2-2.4V464l.2-2v-2l.2-1.8v-3.7h1v5.6l-.2 2v2l-.2 2.3v2.6l-.3 2.6-.2 2.7v2.8l-.3 3-.2 3v3l-.3 3-.2 3v3.2l-.3 3-.2 3.2-.2 3v3l-.2 2.7-.2 2.6v2.6l-.3 2.4v2.3l-.3 2v2l-.2 1.5v1.5l-.2 1.2v1zm-9.3 17l.8-.6-.7-.2.4-.2.3-.3.4-.4.3-.3.4-.3.4-.4.4-.3.3-.4.4-.4.4-.4.3-.5.4-.4.3-.6.3-.4.3-.5.3-.5.3-.5v-.5l.4-.6.2-.5.3-.7v-.6l.3-.6.2-.5.2-.7.2-.6V532l.3-.8v-.8l.2-.7v-.7h1v1.6l-.2.7-.2.7v.7l-.2.7-.2.7-.2.8-.2.6-.2.6-.2.6-.3.6-.2.6-.3.6-.3.5-.2.5-.3.5-.3.5-.5.5-.3.5-.3.4-.4.4-.4.4-.3.4-.5.4-.4.4-.2.4-.4.3-.4.4-.3.4-.4.3-.4.3h-.8zm.7 0l-.5.4-.3-.5h.7zm-6.4-19.7h1v2.8l.2.8v.7l.2.7v1.2l.3.6v.8l.2.6.2.7v.7l.3.6v.6l.3.5.2.6.2.6.2.6v.6l.3.5.3.6.2.4.2.5.3.5.3.5.2.5.3.4.4.4.3.5.3.4-.8.5-.3-.6-.4-.4-.3-.5-.3-.6-.3-.6-.3-.5-.3-.6v-.6l-.4-.5-.2-.6-.2-.6-.2-.4-.2-.6-.2-.6-.2-.6-.2-.6-.2-.7-.2-.6v-.7l-.3-.7v-.6l-.2-.7v-.6l-.2-.7v-1.4l-.2-.7v-1.5l-.2-.7v-1.5zm3-70l.8.3v-.2 2.6l-.2 1.6v2l-.2 2v2l-.2 2.4v2.5l-.2 2.6v2.8l-.3 2.8v2.8l-.2 3v2.8l-.2 3v3l-.2 2.8v3l-.3 2.7v2.7l-.2 2.7v7.3l-.2 2v3.8l-.2 1.6v3.3h-1v-6.8l.2-2V513l.2-2.4V508l.2-2.6.2-2.8v-2.8l.2-3V494l.2-3 .2-2.8v-3l.2-2.8v-3l.3-2.7V474l.2-2.5V469l.2-2.4v-4.2l.2-1.8V459l.2-1.5v-1.2zm-.2 0zm16.2-2h-1v.2l-.3-1.4-.3-1.2-.3-1.2-.4-1-.3-1-.4-1-.3-1-.4-.6-.5-.6-.4-.5-.2-.5-.4-.4h-.4l-.3-.2h-1.1l-.4.2-.5.2-.4.4-.5.5-.5.6-.6.7-.5.7-.5 1-.6.8-.5 1-.6 1.2-.7 1.2-.6 1.4-.6 1.4-.6 1.6-1-.4.7-1.6.8-1.4.6-1.4.6-1.2.6-1.2.6-1 .6-1 .6-1 .6-.7.5-.7.6-.6.6-.6.6-.4.5-.3h.6l.5-.3h1.2l.5.3.5.4.5.4.4.5.4.6.4.5.4.8.3 1 .4.8.3 1.2.3 1 .4 1.3.3 1.4.3 1.3zm0 0zm-.5 0h.6-.5zm.6 0z" fill="#21231e"/> - <path d="M385 407.2c-.6 18.7-1 59-.8 62.6.3 7.8 3.4 17.6 6.7 22.6 4-3 7.7-8.5 8.4-16.6.6-6.7.8-39.5 1-56-4.3-2.6-8.7-6-12.2-9.7l-3.2-2.8z" fill="#fff"/> - <path d="M384.7 469.8h-1v-23.4l.2-2.4v-19.6l.2-2.4v-9l.2-2v-3.8h1v7.8l-.2 2.4v9.4l-.2 2.5v12.5l-.2 2.4v25.4zm6 22.2l.5.8h-.7l-.3-.6-.3-.5-.4-.6-.4-.4-.3-.6-.4-.6-.3-.7-.3-.6-.2-.6-.3-.7-.3-.7-.3-.7-.3-.7-.3-.8-.2-.7-.3-.7-.3-.8-.2-.8-.2-.7-.2-.8v-.8l-.3-.8v-.8l-.3-.8v-.8l-.2-.8v-.8l-.2-.8v-.7l-.2-.7v-1.5h1v2.5l.2.8v.8l.3.7v.8l.2.8.2.8.2.8v.7l.2.7.3.8.2.7.2.8v.8l.4.7.2.7.3.7v.7l.4.6.3.7.3.7.2.6.3.6.3.5.3.6.4.6.3.6.3.5.3.4h-.7zm.5.8l-.4.3-.3-.3h.7zm7.7-17h1l-.2.8v.8l-.2.7v.8l-.3.7-.2.7v.7l-.2.5-.2.7-.2.6-.3.6v.6l-.4.6-.2.6-.3.5-.2.5-.3.6-.3.5-.3.5-.4.4-.4.5-.3.4-.5.6-.3.4-.4.4-.3.4-.4.4-.3.3-.3.4-.4.2-.4.3-.4.3-.6-.8.4-.3.3-.3.4-.3.4-.2.4-.4.4-.3.3-.3.4-.4.4-.4.3-.5.4-.4.3-.3.3-.5.3-.5.3-.4.3-.5.2-.6.3-.5.2-.5.3-.6.2-.6.2-.5.2-.6.2-.8.2-.6.2-.6v-.7l.3-.7v-.7l.2-.8v-.7l.2-.8zm1-55.5l.6-.8.2.4v18.8l-.2 2.2v14.6l-.2 2v8.9l-.2 1.5v4.3l-.2 1v2.6h-1V471l.2-1.5v-6.3l.2-1.8v-12l.2-2v-20.8l.2-1.7v-5.1l.2.3zm.6-.8h.2v.4l-.2-.5zm-12.4-9.8v1l.4-1 .3.4.2.5.4.3.3.3.3.5.3.3.4.3.3.4.4.4.3.3.4.4.4.3.4.3.3.3.4.3.3.4.4.3.4.3.5.3.3.2.4.2.4.3.4.3.4.3.4.3.4.3h.4l.4.4.4.3.4.2.4.2.4.3-.6.8-.4-.3-.4-.2-.4-.3-.4-.3-.4-.2-.4-.3-.4-.3-.4-.3-.4-.2-.4-.3-.4-.3-.4-.3-.4-.4-.3-.3-.4-.3-.3-.3-.4-.3-.4-.3-.5-.2-.4-.3-.2-.3-.4-.4-.4-.3-.3-.3-.4-.3-.4-.5-.4-.3-.4-.3-.3-.5-.5-.3-.3-.4-.3-.3.2-.8zm-.3.8l-1-.8h1.2l-.3.8zm-2.5-3.3h-1l1-.3.2.2.2.2v.2h.3v.3h.4v.2l.3.2.3.2v.2h.3v.2h.2v.2h.3l.2.2v.2h.2v.2l-.2.8v-1l-.3 1h-.2v-.2h-.2v-.2h-.2v-.2h-.2l-.2-.2v-.2h-.2l-.2-.2-.3-.3h-.3v-.3h-.3v-.2l-.2-.2h-.2v-.2h-.2v-.2h-.2v-.2h-.2l1-.4zm-1 0v-1.4l1 1-1 .4z" fill="#21231e"/> - <path d="M400 419.3c-.4 20-.2 51.7 0 54.3 0 7.7 2 14.3 5.4 19.3 4-3.2 8-8.8 8.8-17 .5-5 2-26.4 2-42.8-5.3-1.7-12-10.4-16.3-14z" fill="#fff"/> - <path d="M400.4 473.5h-1v-12.9l-.2-1.7v-33.7l.2-2v-4h1v14.5l-.2 2v37.1l.2.5v.3zm4.7 19l.7.8h-.7l-.3-.6-.3-.5-.3-.5-.2-.5-.3-.5-.3-.5-.2-.6-.3-.5-.2-.5-.3-.5-.2-.6-.2-.6-.2-.6-.2-.6-.2-.6-.2-.6-.2-.6v-.6l-.3-.7v-.6l-.3-.8v-.6l-.2-.7v-.8l-.2-.6v-.7l-.2-.8v-1.5l-.2-.7v-1.4h1v2.8l.2.7v.7l.2.7v.7l.2.7v.7l.2.6v.7l.3.6v.6l.3.5v.6l.3.7.3.6.2.6.2.5.2.5v.6l.4.5.2.7.3.5v.5l.4.5.2.5.3.5.2.5.3.5.3.4h-.7zm.7.8l-.4.3-.3-.4h.7zm8-17.3h1v1.7l-.3.7v.7l-.3.8v.7l-.2.7-.2.7-.2.5-.3.7v.6l-.4.6-.2.6-.3.5-.2.6-.3.6-.4.6-.2.5-.3.5-.4.5-.2.4-.4.6-.3.4-.3.5-.3.4-.4.3-.4.3-.4.4-.3.3-.5.4-.4.3-.3.3-.6-.8.5-.3.3-.3.4-.4.4-.3.3-.4.3-.4.3-.4.4-.4.3-.4.4-.4.3-.5.3-.4.4-.4.3-.5.3-.3.3-.6.3-.4.2-.5.3-.5.2-.5.3-.6.2-.6.2-.6.2-.6.2-.7.2-.7.2-.7v-.7l.3-.8v-.7l.2-.7v-.8zm2.4-42.3l.4-1 .3.5v7.9l-.2 1.6v5.1l-.2 1.6v1.7l-.2 1.7v4.6l-.2 1.6v2.9l-.2 1.3v1.4l-.2 1.3v2.5l-.2 1v2.2l-.2 1v1.6l-.2.7v1.1h-1v-2l.2-.8v-1.8l.2-1v-2.2l.2-1.2v-2.7l.2-1.3v-1.5l.2-1.4V457l.2-1.6v-1.6l.2-1.6V449l.2-1.6V443l.2-1.6V433l.5.5zm.4-1h.3v.5l-.3-.5zm-16-13.4h-1l.8-.4.5.2.4.4.5.4.5.4.5.5.4.4.4.4.5.5.4.6.5.4.4.5.5.4.5.6.5.5.5.5.5.6.6.5.5.6.7.5.5.6.5.5.6.5.5.5.5.4.6.4.4.4.5.3.4.3.5.3.4.3.5.2.4.2-.3 1-.5-.2-.5-.3-.5-.2-.6-.3-.6-.4-.6-.3-.5-.4-.6-.4-.5-.4-.6-.5-.5-.5-.5-.5-.5-.5-.6-.5-.5-.5-.7-.5-.5-.6-.5-.5-.6-.5-.5-.6-.5-.4-.5-.5-.5-.5-.5-.5-.5-.5-.5-.4-.4-.4-.5-.4-.4-.5-.6-.4-.4-.3-.4-.4.8-.3zm-1 0v-1l.8.6-.8.2z" fill="#21231e"/> - <path d="M387 405.6L373 385c-2.8 10.2-6.3 82.8-2.2 88.8.2 7.7 3 14.3 6.4 19.3 4-3 9.8-8.5 8-16.7-1.6-8.2.4-62.3 2-70.7z" fill="#fff"/> - <path d="M373.3 384.7l14.2 20.6-.8.5-14.3-20.5v-.4l1-.3zm-1 .2l.4-1 .5.7-.8.2zm-1.2 88.7h-1l.2.3-.5-.8-.3-1.2-.3-1.5v-1.8l-.3-2-.2-2.5v-2.6l-.2-2.8v-20.3l.2-3.7V431l.2-4 .2-3.6v-3.8l.3-3.7.2-3.7.2-3.4.3-3.5.2-3.2.3-3 .2-3 .3-2.5.3-2.4.2-2 .3-2 .3-1.3.4-1 1 .2-.3 1-.2 1.5-.3 1.8-.3 2-.2 2.4-.3 2.5-.3 2.8-.2 3-.3 3.3-.3 3.3-.2 3.4-.2 3.6-.2 3.7v3.7l-.3 3.8v3.8l-.2 3.7v3.8l-.2 3.6v19.6l.2 2.6.2 2.3.2 2v1.8l.4 1.5.3 1 .3.7v.2zm0-.2v.2-.2zm5.7 19.2l.6.8-.7-.2-.3-.4-.3-.6-.3-.5-.3-.6-.3-.5-.2-.6-.3-.6-.3-.5-.3-.6-.4-.5-.2-.6-.3-.6v-.6l-.4-.6-.2-.6-.2-.6-.3-.6-.3-.6-.2-.7v-.6l-.3-.5-.2-.7v-.7l-.3-.6v-.6l-.2-.7v-.6l-.2-.7v-1.5l-.2-.7v-.7h1v1.4l.2.7v.6l.2.6v.7l.2.6v.7l.2.6.2.6v.6l.3.6.2.7.2.6.2.7v.6l.3.6.2.5.3.6.2.6.3.6.2.5.3.6.3.5.3.5.3.6.3.4.2.5.3.4.3.4.3.5.4.5h-.7zm.6.8l-.4.3-.4-.5.7.2zm7.4-17l1-.3v.8l.2.7v3l-.2.7-.2.7v.7l-.3.7-.2.6-.2.6-.2.6-.3.6-.3.5-.4.6-.3.4-.4.5-.5.4-.3.5-.4.4-.4.4-.4.4-.5.5-.4.4-.3.5-.4.3-.4.4-.5.3-.4.3-.3.4-.4.3-.6-.8.4-.3.5-.3.4-.2.3-.4.3-.3.4-.3.4-.4.4-.3.4-.4.4-.5.4-.3.4-.4.4-.5.3-.5.5-.5.3-.5.3-.5.4-.5.3-.5.2-.6v-.6l.3-.5.2-.5.2-.7v-.6l.2-.6v-3.1l-.2-.7v-.6zM387 406v-1l.6.7-.2 1-.2 1v1.4l-.3 1.7-.2 2-.2 2v2l-.3 2.4v2.5l-.3 2.6v2.8l-.2 2.7-.2 2.8v3l-.2 2.8v3l-.2 3v8.5l-.2 2.8v13.5l.2 2v1.5l.2 1.4v1l.2 1-1 .2v-1l-.2-1v-1.5l-.2-1.7v-4l-.2-2v-15.5l.2-3V441l.2-3v-2.8l.2-3 .2-2.7v-2.8l.2-2.7.2-2.5V419l.3-2.3v-2.2l.3-2v-2l.3-1.5.3-1.4v-1.2l.3-1 .5.7zm0-1h.7v.7l-.6-.6zm0 0v1l-.3-.2.4-.7zm0 1h-.2v-.2l.3.3z" fill="#21231e"/> - <path d="M358 451.2c-.8 11.3-1.2 19-1 23 .2 7.6 2 14.2 5.5 19.2 4-3 9-8.5 8.4-16.6-2-31.5 1.4-61 5.4-89.6-3.4-2.5-9-5-12.5-7.6-6.8 38.3-9 62-6 71.6z" fill="#fff"/> - <path d="M357.4 474h-1v-7.4l.2-.7V463l.2-.7V459l.2-1v-1.8l.2-1v-3l.2-1h1v2l-.2 1v2l-.2 1v2.8l-.2.7v3.2l-.2.7v4.2l-.2.6v4.3zm4.8 19l.6.8h-.7l-.3-.6-.3-.5-.3-.5-.2-.5-.2-.5-.3-.5-.3-.6-.2-.4-.3-.6-.2-.5-.3-.6-.2-.7-.2-.6-.2-.6-.2-.5-.2-.6v-.7l-.3-.6v-.7l-.3-.6v-.7l-.2-.6-.2-.6v-.7l-.2-.7v-1.4l-.2-.7v-1.5l-.2-.7v-.7h1v2.2l.2.7v1.2l.2.7v.6l.2.6v.7l.2.5.2.7v.6l.3.6v.6l.3.6.2.6.2.6.2.6.2.6.2.5.2.6.2.6.3.6.2.5.2.5.2.5.3.5.3.5.3.5.3.5.3.4h-.8zm.6.8l-.4.3-.3-.3h.8zm7.6-17h1v3.7l-.3.7v.6l-.2.7v.7l-.4.6-.2.6-.2.6-.3.6-.3.6-.3.5-.2.6-.3.5-.4.5-.2.5-.4.4-.4.5-.4.4-.3.6-.4.4-.5.4-.4.4-.3.4-.4.3-.4.3-.5.4-.4.3-.2.3-.6-.8.3-.3.4-.3.3-.3.3-.2.4-.4.4-.3.4-.3.4-.4.3-.4.4-.5.3-.4.3-.4.4-.4.3-.5.3-.5.3-.5.2-.5.3-.5.3-.5.2-.6.3-.6.2-.5.2-.6.2-.8v-.6l.2-.6v-.7l.2-.6v-3.1zm5.7-89.2l.7-.8.2.5-.5 2.6-.4 2.6-.3 2.7-.3 2.7-.4 2.7-.3 2.7-.3 2.7-.4 2.8-.3 2.8-.3 2.7-.3 2.8-.2 2.8-.2 2.8-.3 2.7-.2 2.8v3l-.3 2.7-.2 2.8-.2 2.8v2.8l-.2 3v8.5l-.2 3v8.6l.2 3v3l.2 2.8.2 3h-1l-.2-3v-3l-.2-2.8v-5.8l-.2-3V451l.2-2.8v-3l.2-2.7v-2.7l.3-3 .2-2.7.2-2.8V428l.3-2.7.3-2.8.3-2.8V417l.4-2.8.3-2.7.3-2.8.4-2.7.3-2.7.4-2.7.4-2.7.4-2.8.3-2.7.5-2.7.4-2.7v.6zm.7-.8l.2.2v.3l-.3-.5zm-12.3-7l-1-.3.8-.3.3.2.4.2.2.3h.3l.4.3.3.3.4.2.4.2.5.3.4.2.3.2.4.3.4.2.5.3.5.2.4.2.4.2.4.2.5.3.4.2.5.2.4.2.3.2.4.3h.4l.5.4.4.2.3.2.3.3.4.3.3.3.4.2-.6.8-.2-.2-.4-.3h-.3l-.3-.3-.3-.3-.4-.2-.4-.2-.4-.3-.4-.2-.4-.2-.4-.3-.4-.2-.4-.3-.5-.2-.4-.2-.4-.2-.5-.2-.5-.3-.4-.2-.4-.2-.4-.2-.4-.2-.4-.3h-.4l-.4-.4-.4-.2-.4-.2-.4-.3-.4-.3-.3-.3-.4-.2-.4-.2.8-.3zm-1-.3l.2-.8.6.5-.8.3zm-6 71.4l.8.6-.8-.2-.3-1v-1l-.3-1-.2-1.3v-1l-.2-1.4V443l-.2-1.6v-5l.2-1.8v-2l.2-2 .2-2 .2-2.3.2-2.3.2-2.5.3-2.4.3-2.5.3-2.6.4-2.8.4-2.8.4-3 .4-2.8.5-3 .6-3.2.5-3.2.6-3.3.6-3.5.6-3.5.6-3.5 1 .2-.6 3.5-.6 3.5-.6 3.4-.5 3.3-.4 3.3-.5 3-.4 3-.4 3-.4 3-.4 2.7-.3 2.7-.3 2.7-.3 2.5-.2 2.4-.3 2.4-.3 2.3v2.2l-.3 2v2l-.2 2v9.8l.2 1.4v1.2l.3 1 .2 1.2v1l.4 1-1-.3zm.8.6l-.5.6-.3-.8.8.2zm0 0l-.7-.7 1 .3-.3.3zm-.7-.7l1-1v1.3l-1-.4z" fill="#21231e"/> - <path d="M343.6 471.8l4 14.7c.2 7.7 5 14 8.3 19 4-3 7.5-8 6.5-16-5.8-46.5-3.8-77.3 6-115-22 15-32.3 46.6-25 97.3z" fill="#fff"/> - <path d="M347 486.6l-3.8-14.7 1-.3 3.8 14.6-1 .3zm1-.3zm7.6 19l.6.7h-.7l-.3-.6-.3-.5-.4-.5-.4-.5-.3-.5-.5-.6-.3-.6-.4-.5-.3-.7-.4-.5-.2-.6-.4-.5-.3-.6-.2-.5-.4-.6-.3-.7-.2-.6-.3-.6-.3-.5-.3-.7-.3-.6-.3-.7-.2-.7-.2-.6-.2-.7-.2-.7-.2-.7v-.6l-.2-.7v-.8l-.2-.8v-.7h1v1.4l.2.7v.7l.2.7.2.6v.6l.3.7v.5l.4.7.2.6.3.6v.6l.4.7.3.6.3.6.3.4.3.6.4.6.3.6.3.5.4.6.3.5.4.5.3.6.3.4.4.5.3.4.4.5.3.4.3.5.4.3h-.8zm.6.7l-.4.3-.3-.4h.8zm5.8-16.5h1v5.5l-.2.6v.7l-.3.6v.4l-.3.6-.2.6-.3.5-.2.6-.2.5-.3.6-.3.5-.3.6-.3.4-.2.4-.3.4-.4.5-.2.3-.3.4-.4.4-.3.3-.3.4-.4.4-.4.3-.3.3-.7-.8.4-.3.4-.4.3-.3.4-.3.4-.3.3-.4.4-.3.4-.4.3-.4.3-.4.3-.4.3-.4.3-.4v-.5l.4-.3.2-.5.2-.5.2-.5.2-.5.2-.5.2-.6v-.6l.2-.5v-.6l.2-.7v-5.1zm6.8-114.7l-.6-1 .8.7-1 3.5-.8 3.5-.8 3.4-.7 3.4-.7 3.4-.7 3.3-.6 3.5-.6 3.4-.4 3.2-.5 3.3-.3 3.4-.4 3.2-.4 3.4-.4 3.3-.2 3.3-.2 3.4-.2 3.4v3.6l-.2 3.5v14.7l.3 3.7.3 4 .2 3.8.3 4 .4 3.8.3 4 .5 4.2.4 4.3.6 4.4h-1l-.6-4.2-.4-4.3-.5-4.2-.3-4-.4-4-.3-4-.2-3.8-.2-3.8v-3.7l-.2-3.7v-14.3l.2-3.4.2-3.4.2-3.4.2-3.4.3-3.3.3-3.4.4-3.3.4-3.3.6-3.4.5-3.3.7-3.4.6-3.3.7-3.4.7-3.4.8-3.5.8-3.4.8-3.5 1-3.6.8.6zm-.6-1l1-.6-.2 1.3-.8-.6zm-24 98h-1l-.7-4.6-.5-4.6-.5-4.5-.3-4.3-.3-4.2-.2-4.2v-8l.2-3.8.2-3.7.3-3.7.4-3.4.5-3.4.6-3.3.8-3.3.7-3 1-3 1-3 1-2.8 1-2.8 1.2-2.5 1.3-2.5 1.4-2.4 1.5-2.3 1.4-2 1.6-2.2 1.7-2 1.7-2 2-1.6 1.8-1.7 2-1.6 2-1.5.6.8-2 1.4-2 1.6-1.8 1.6-1.8 1.7-1.8 2-1.6 2-1.6 2-1.5 2-1.4 2.3-1.4 2.4-1.4 2.4-1.2 2.6-1 2.7-1 2.7-1 3-1 3-.7 3-.7 3-.6 3.4-.5 3.3-.5 3.5-.3 3.6-.3 3.7-.2 3.8v12l.4 4.4.3 4.3.5 4.5.5 4.6.6 4.7zm-1 0zm.4 0h.5-.4zm-.4 0z" fill="#21231e"/> - <path d="M344.8 486.2l-20.3-6.7c-2.5 20.2 1.4 45.6 7 79 4.6 29 2 51.6-1.5 66.2 21.6-3 30.7-30.7 20-83-3-13.7-5.8-31.3-5.2-55.5z" fill="#fff"/> - <path d="M324.7 479l20.2 6.7-.4 1-20.2-6.7-.3-.6.7-.4zm-.6.4v-.6l.7.2-.6.4zm8 79l-1 .3-.6-3-.5-3.2-.6-3-.5-3-.5-3-.5-2.8-.4-3-.4-2.7-.4-2.7-.4-2.7-.4-2.7-.3-2.7-.4-2.6-.3-2.6-.3-2.4-.2-2.5-.3-2.3-.2-2.4-.2-2.4v-2.4l-.3-2.3V500l-.2-2v-10.7l.2-2 .2-2v-2l.4-2 1 .3-.2 2-.2 1.8v2l-.2 2v4l-.2 2v4.3l.2 2.3v2.3l.2 2.3.2 2.3.2 2.2.2 2.4.3 2.4.2 2.5.3 2.5.3 2.5.3 2.6.4 2.8.4 2.6.3 2.7.4 3 .6 2.7.4 2.8.4 3 .5 3 .4 2.8.5 3 .4 3 .5 3.2zm-2 65.8v1l-.5-.6.4-1.4.2-1.4.3-1.5.3-1.5.3-1.6.4-1.6.3-1.7.2-1.8.2-1.7.2-1.8.2-2 .2-1.8v-2l.3-2 .2-2v-2l.2-2v-13.4l-.2-2.3-.2-2.4-.2-2.4-.2-2.5-.3-2.5-.3-2.6-.3-2.6-.4-2.6-.4-2.7 1-.2.3 2.7.4 2.7.3 2.5.3 2.6.3 2.6.2 2.5.2 2.6v2.4l.3 2.4v6.8l.2 2.3v4.3l-.2 2v2l-.2 2v2l-.2 2-.2 2-.2 1.8-.3 1.8v1.8l-.4 1.7-.2 1.8-.3 1.6-.2 1.6-.3 1.5-.3 1.5-.4 1.5-.3 1.4-.5-.8zm0 1h-.6v-.6l.7.6zm19.4-83.5l1-.2 1 5 .8 4.6.7 4.6.5 4.5.5 4.3.4 4 .3 4 .2 4v7.2l-.2 3.4-.2 3.2-.4 3-.4 3-.6 3-.6 2.6-.7 2.6-1 2.4-1 2.3-1 2.2-1 2-1.2 1.8-1.3 1.7-1.4 1.5-1.4 1.4-1.5 1.3-1.5 1-1.8 1-1.8.7-2 .7-2 .5-2 .2v-1l2-.3 1.8-.6 1.8-.6 1.7-.8 1.6-1 1.5-1 1.5-1 1.4-1.5 1.3-1.5 1.3-1.6 1-1.8 1.2-2 1-2 1-2.2.7-2.3.6-2.4.7-2.7.5-3 .4-2.8.4-3 .2-3.3v-3.5l.2-3.5v-3.7l-.3-3.8-.3-4-.3-4-.4-4.3-.7-4.4-.8-4.5-.8-4.7-1-5zm-4.8-55l.3-1 .3.5V503l.2 2 .2 1.8v2l.2 1.8v1.8l.2 1.8.2 1.7.2 1.8.2 1.7.2 1.7.2 1.6.2 1.6.2 1.6.2 1.5.3 1.5.3 1.5.3 1.5.2 1.4.3 1.4.3 1.4.3 1.4.3 1.3v1.3l.4 1.2-1 .2-.2-1.3-.3-1.3-.4-1.2-.2-1.4-.3-1.4-.2-1.4-.2-1.4-.3-1.5-.2-1.5v-1.5l-.4-1.6-.2-1.5-.2-1.6-.2-1.7-.2-1.7-.2-1.7-.2-1.8-.2-1.8v-1.7l-.3-2-.2-1.7v-2l-.3-1.8v-4l-.2-2v-13l.3.5zm.3-1l.3.2v.2l-.4-.5z" fill="#21231e"/> - <path d="M343.6 584h1v.7h-.8v-.2h-.2v-.4zm-4.3-40l1-.4.4 1.2.2 1.2v1l.4 1.3.2 1.3.2 1.2.2 1.2.2 1.2.2 1.3.2 1.3.2 1.2.2 1.3.2 1.3.2 1.2.2 1.3v1.4l.3 1.3v2.6l.3 1.3v1.3l.2 1.2v2.6l.2 1.3v9.1h-1v-7.6l-.2-1.2v-2.7l-.2-1.3V570l-.2-1.3v-1.3l-.2-1.3v-1l-.3-1.4v-1.3l-.3-1.3-.2-1.3v-1.2l-.3-1.3-.2-1.3-.2-1.3-.2-1.3v-1.2l-.4-1.2-.2-1.2-.2-1.2-.2-1.2-.3-1.2-.2-1.2-.2-1.2zm-5.5-50.4h1.2v6.4l.2 1.5v3.3l.2 1.5v1.6l.2 1.5v1.6l.3 1.5v3.1l.3 1.5.2 1.7v1.5l.3 1.6.2 1.5.2 1.6.2 1.4.2 1.6.3 1.5v1.6l.4 1.6.2 1.6.3 1.6.2 1.5.3 1.6.3 1.5.3 1.5.4 1.6-1 .3-.5-1.7-.4-1.6-.3-1.6-.3-1.5-.3-1.5-.2-1.6-.3-1.6-.2-1.5-.3-1.6-.2-1.6-.2-1.4-.3-1.6-.2-1.5-.2-1.6v-1.7l-.3-1.5-.2-1.6v-1.5l-.2-1.6v-1.4l-.2-1.6-.2-1.6V508l-.2-1.7V503l-.2-1.4v-6.4l-.2-1.6zm1.2 0h-1.2v-.2h.2v-.2h.2v-.2h.8v.2h.2v.4z" fill="#21231e"/> - <path d="M344 367.3l13.2 2.2-4.6 23.3c-5 24.3-8.2 53-4.5 84.2 1.5 11.7 4 21.2 7.6 28.5-14.6-1.6-24-15.8-22.7-40.6-2.6-29-1.5-52 3.2-69.4 1.4-5 5.8-24.2 7.8-28.3z" fill="#fff"/> - <path d="M357 370l-13-2.3v-1l13.3 2.3.4.6-.6.4zm.3-1h.5v.6l-.5-.6zm-4.2 24l-1-.3.2-.3v-.4l.2-.5v-.6l.2-.7v-.6l.3-.7v-.8l.2-.8v-1l.3-.7.2-1 .2-1v-.8l.2-1 .2-1 .2-1 .2-1 .2-1 .2-.8v-1l.3-.7.2-1v-.7l.3-.7v-.7l.3-.6v-.6l.2-.5v-.4l.2-.3v-.3l1 .2v.6l-.2.5v.5l-.3.6v.5l-.2.7-.2.8-.2.8v1l-.3.7-.2 1v.8l-.2 1-.2 1-.2 1-.2.8-.2 1-.2 1v1l-.3 1-.2.7-.2 1v.7l-.2.7v1l-.2.5-.2.6v.7l-.2.5v.7zm-4.4 84h-1l-.3-2.8-.3-3-.3-3-.2-2.8v-2.8l-.3-3V457l-.2-3v-11l.2-2.7v-2.7l.2-2.7.2-2.8.2-2.6.2-2.6.3-2.6.2-2.6.3-2.6.3-2.5.4-2.5.4-2.5.4-2.5.3-2.4.4-2.4.3-2.4.5-2.4.4-2.3.5-2.3.4-2.3 1 .2-.4 2.2-.4 2.3-.5 2.3-.4 2.4-.4 2.4-.5 2.4-.4 2.4-.2 2.4-.4 2.5-.3 2.5-.2 2.5-.3 2.6-.3 2.5-.2 2.5-.2 2.7-.2 2.6-.2 2.6v2.6l-.2 2.7v2.7l-.2 2.7v11.5l.2 3v2.7l.3 3 .2 2.7.3 3 .3 2.8.3 3zm7 29v-1l-.4.8-.4-.7-.3-.6-.3-.8-.4-.7-.3-1-.3-.6-.3-.8-.4-.8-.3-.8-.2-.8-.2-.8-.3-1-.2-.7-.3-1-.2-.8-.3-1-.2-1-.2-.8v-1l-.3-1-.2-.8-.2-1-.2-1v-1l-.3-1-.2-1v-1l-.3-1-.2-1v-1l-.2-1.2-.2-1 1-.2v1l.3 1v1.2l.2 1v1l.3 1 .2 1 .2 1v1l.2 1 .2 1 .2 1 .2 1 .3.8.3 1 .2.8.2 1 .3.7.2 1 .3.7.2.8.3 1 .3.7.3.8.3.7v.8l.4.8.4.7.3.7.4.7.3.6.3.7-.5.7zm.4-.7l.4.8h-1l.6-.7zM332.4 465l1-.2v8.8l.2 2 .2 2 .3 2 .4 1.8.4 1.7.4 1.8.5 1.7.5 1.5.6 1.5.6 1.5.7 1.3.8 1.3.7 1.3.8 1 1 1 .8 1.2 1 1 1 .8 1 .8 1 .8 1 .7 1.2.6 1.2.4 1.2.5 1.2.3 1.2.3 1.3.3h1.4l-.2 1h-1.3l-1.4-.4-1.3-.4-1.3-.4-1.2-.5-1.2-.5-1.2-.7-1-.6-1.2-.8-1-.8-1-1-1-1-1-1-1-1.2-.7-1.2-.8-1.3-.8-1.2-.7-1.4-.7-1.5-.5-1.6-.6-1.6-.5-1.7-.4-1.6-.4-1.8-.3-2-.2-1.8-.2-2-.2-2v-8.9zm1-.2zm2.3-69.4l1 .3-.5 1.6-.4 1.7-.4 1.7-.3 1.7-.3 1.8-.3 1.8-.3 1.8-.2 2-.2 1.8-.3 2-.2 2v2l-.3 2v2l-.2 2-.2 2.3v4.3l-.2 2.2v9.6l.2 2.5v2.4l.2 2.5v2.5l.2 2.6.2 2.6.2 2.5.2 2.6.2 2.8h-1l-.2-2.6-.2-2.6-.2-2.7-.2-2.7v-2.5l-.2-2.6v-2.5l-.2-2.4v-18.5l.3-2v-2.2l.3-2v-2.2l.3-2 .3-2 .3-2 .2-1.8.3-2 .4-1.8.4-1.8.3-1.8.5-1.7.4-1.7.3-1.7.4-1.6zm8.3-28.6v1l.4-.3-.2.4-.2.4-.2.6-.2.6-.3.7-.2.8-.2 1-.2.8-.3 1-.3 1-.2 1-.3 1-.3 1-.3 1.2-.4 1-.3 1.2-.3 1-.2 1.2-.3 1-.3 1.2-.3 1-.3 1-.3 1-.2 1-.3 1-.3 1-.2.8-.2.8-.2.7v.6l-.2.6v.5l-1-.3v-.5l.2-.7.2-.6.2-.8v-1l.4-.7.2-1 .2-.8.3-1 .2-1 .3-1 .2-1.2.3-1 .3-1.2.3-1 .4-1 .2-1.2.3-1 .2-1.2.3-1 .3-1 .3-1 .4-1 .2-1 .3-1v-.8l.4-.8.2-.7.3-.7v-.6l.3-.5.2-.5.5-.2zm-.5.2l.2-.3h.3l-.5.3zm.5.3v-.5.5zm-.5-.3l.2-.3h.3l-.5.3z" fill="#21231e"/> - <path d="M336 370.4l6.4 7.4c-1.8 1.4 1.3 7-.4 18-1 6.4-4.8 13.8-5.6 22-2.5 26.5-2.5 59.8 5.4 81-14.5-1.6-19.5-14.8-20-39.6-.4-20.6-.4-44.7 4.7-72.7 1-6.5 4.2-11.7 9.4-16z" fill="#fff"/> - <path d="M342 378.2l-6.5-7.5.8-.6 6.5 7.5v.7h-.7zm.8-.7l.4.4-.5.2v-.7zm-.3 18.5h-1l.2-1.2v-1l.2-1V385l-.2-.6v-1.2l-.2-.6v-1l-.2-.4v-2.8l.2-.3.3-.4v-.2l.7.8v.2h-.2v.5h-.2v2.2l.2.4v1.1l.2.6v1.1l.2.7v8.1l-.2 1v1l-.3 1zm0 0zm-5.6 21.7h-1v-1.8l.2-.7.2-.7v-.7l.3-1v-.6l.3-.8.2-.7.2-.8.2-.7.2-.7.2-.7.2-.6.2-.7.2-.7.3-.7v-.7l.3-.6.2-.7.2-.7.2-.6v-.7l.3-.6.2-.6.2-.5.2-.7v-.6l.2-.6v-.6l.2-.6v-.5h1v1.2l-.3.6v.7l-.2.6v.7l-.3.7-.2.6-.2.6v.7l-.3.7-.2.6-.3.7-.2.6-.2.6-.2.7-.2.7-.2.7-.3.7-.3.7-.2.8-.2.7-.2.7v.7l-.2.6-.2.7v.7l-.3.8v.7l-.2.7v1.5zm4.8 81.6v-1l-.4.7-.8-2-.6-2-.7-2.3-.6-2.2-.5-2.3-.5-2.4-.5-2.4-.4-2.4-.4-2.5-.4-2.5-.3-2.5-.3-2.6-.2-2.7-.2-2.7-.2-2.6v-2.7l-.2-2.7V455l-.2-2.8v-10.9l.2-2.7V436l.2-2.8v-2.7l.3-2.6.3-2.7.2-2.6.2-2.6.2-2.4h1l-.3 2.6-.2 2.6-.2 2.5-.2 2.6v2.6l-.2 2.6v2.7l-.2 2.6v2.7l-.2 2.7V455l.2 2.7v2.7l.2 2.7.2 2.5.2 2.7.2 2.6.3 2.5.3 2.6.4 2.4.4 2.4.4 2.5.4 2.3.5 2.4.7 2.2.6 2.2.6 2.2.6 2 .7 2-.5.7zm.5-.6l.3.7h-.8l.5-.7zm-21-39.5h1v2.2l.2 2.3v2l.2 2.2.2 2v2l.3 1.7.3 1.8.3 1.8.2 1.6.4 1.5.4 1.6.4 1.5.5 1.4.4 1.2.6 1.3.6 1.2.6 1 .7 1 .6 1 .8 1 .8 1 .8.6 1 .7 1 .7 1 .6 1 .5 1 .4 1 .4 1.3.3 1.3.2 1.3.2-.2 1-1.4-.2-1.3-.3-1-.4-1.3-.4-1.2-.5-1-.6-1.2-.5-1-.7-1-.7-.8-.7-1-1-.7-1-.7-1-.6-1-.7-1.2-.6-1-.5-1.4-.5-1.3-.5-1.5-.5-1.5-.4-1.5-.3-1.7-.4-1.5-.4-1.8-.3-1.8-.2-2v-2l-.3-2v-2l-.2-2.3v-2.2l-.2-2.3zm4.7-72.8l1 .2-.5 2.6-.4 2.6-.3 2.5-.4 2.6-.3 2.4-.4 2.5-.3 2.4-.3 2.4-.2 2.4-.2 2.5-.3 2.3v2.4l-.3 2.4-.2 2.3v2.4l-.2 2.2v2.3l-.2 2v4.5l-.2 2.2V459h-1v-26.9l.2-2.2v-2l.2-2.4v-2.3l.2-2.3.2-2.3.2-2.4.2-2.3.2-2.4.2-2.5.3-2.3.3-2.4.3-2.5.4-2.5.3-2.6.4-2.5.4-2.6.6-2.6.4-2.6zm1 .2zm9.3-16.5l-.8.7h.7l-.4.5-.5.4-.5.4-.4.4-.4.5-.4.3-.4.4-.4.5-.4.4-.4.5-.3.5-.4.5-.3.5-.3.4-.3.4-.3.5-.2.4-.3.5-.2.4-.3.5-.2.4-.2.6-.2.5-.2.5-.2.6-.2.5-.2.7v.5l-.3.6v.6l-.2.6v.6l-1-.2v-.6l.2-.6.2-.6v-.6l.3-.6v-.6l.3-.5.2-.6.2-.6.2-.4.3-.6v-.5l.4-.5.2-.6.3-.5.2-.6.3-.5.3-.6.4-.5.3-.6.4-.5.2-.6.4-.4.4-.5.4-.4.4-.4.5-.4.4-.5.5-.4.4-.4.5-.6.6-.4h.7zm-.7 0l.4-.3.3.4h-.7z" fill="#21231e"/> - <path d="M372.3 390l-13.4-1.6c-2.6 12.7-4.5 21.7-5 26.2-1 9 1.8 17 5 23 5-3 7.2-9.4 9.2-18.6 2-9.2 2.7-19.2 4-29z" fill="#fff"/> - <path d="M359 388l13.3 1.5v1l-13.5-1.6-.4-.7.5-.4zm-.6.3v-.4h.5l-.6.3zm-4 26.4h-1l.2-.6v-.8l.2-.6v-1l.2-.6v-.7l.3-.6v-.7l.2-.7v-.7l.3-.7v-1l.2-.7.2-.8.2-1v-.7l.3-1 .2-.8v-1l.2-1 .2-1 .2-1 .2-1 .2-1 .3-1 .2-1 .2-1.2.2-1.2v-1l.4-1.3 1 .2-.3 1.2v1l-.3 1.3-.3 1-.2 1.2-.2 1-.2 1-.2 1-.2 1-.2 1-.2 1v1l-.3 1-.2.8-.2.8v1l-.3.7v.8l-.3.7v.8l-.2.7-.2.7v.6l-.2.7v1.3l-.2.5v1.1l-.2.5v.9zm4.3 22.6l.5.8h-.7l-.3-.7-.3-.6-.4-.6-.3-.5-.3-.6-.2-.7-.3-.7-.2-.6-.3-.7-.2-.7-.3-.7-.2-.8-.2-.7v-.7l-.3-.7-.2-.7-.2-.7v-.8l-.3-.7v-.7l-.2-.8v-.8l-.2-.7v-.8l-.2-.8v-6.1h1v6.6l.2 1v1.4l.3.7v1.6l.3.8.2.7v.8l.3.7.2.7.3.7.2.6.2.7.2.6.2.6.2.6.3.7.3.5.2.6.3.7.3.6.3.6.3.5-.7-.2zm.5.8l-.5.4-.2-.5h.7zm8.6-19h1l-.3 1-.2.8-.2 1v.7l-.3.8-.2.7-.2.8-.2.7v.8l-.4.7-.2.7-.3.6v.7l-.4.6-.2.7-.3.6-.2.5-.3.5-.3.6-.3.5-.4.7-.3.5-.4.5-.5.4-.3.6-.4.4-.4.4-.4.4-.5.3-.4.5-.4.3-.4.3-.5-.7.4-.3.5-.3.4-.3.3-.4.4-.3.4-.4.4-.4.4-.5.3-.4.4-.4.4-.5.3-.4.4-.5.2-.4.3-.6.2-.5.3-.6.2-.7.3-.7.2-.6.3-.7.2-.6.2-.7v-.8l.3-.7.3-.7.2-.8.2-.8.2-.8.2-.8.2-.8.2-1zm4.5-28.5v-1l.5.5v1l-.3 1v.8l-.2 1v1l-.2.8v1l-.2.8v1l-.2 1v.8l-.2 1v1l-.2.8v1l-.2.8v1l-.2.8v1l-.2 1-.2.8v1l-.2.8-.2 1v.8l-.2 1-.2.8-.2.8v1l-.3.8v1l-.3.7h-1l.3-1v-.8l.3-1 .2-.7v-1l.3-.8v-1l.3-.8.2-1v-1l.3-.8v-1l.2-.8v-1l.2-.8v-1.8l.2-1v-1l.2-.8v-1l.2-.8v-1l.3-1v-1.8l.2-1v-.8l.2-1v-.8l.3-1v-1l.6.7zm0-1h.6l-.2.5-.5-.5zm0 0v1-1zm0 1z" fill="#21231e"/> - <path d="M407 418.6h-11.8c-.4 11-.7 18.5-.5 22.3.4 7.5 2.3 14 5.5 18.7 3.6-3 7-8.3 7.6-16.2.6-8-.6-16.5-.7-25z" fill="#fff"/> - <path d="M395.2 418.2h12v1h-12l-.5-.5.5-.5zm-.5.5v-.5h.5l-.5.5zm.5 22.2h-1v-11.4l.2-.8v-4.4l.2-.8v-5h1v7.8l-.2.7v5.6l-.2.7v7.7zm4.7 18.4l.6.7h-.8l-.3-.5-.3-.4-.3-.4-.4-.5-.2-.4-.3-.5v-.4l-.4-.6-.2-.5-.3-.5v-.6l-.3-.6-.2-.5-.2-.6-.2-.6v-.5l-.2-.6-.2-.7-.2-.6v-.6l-.2-.6-.2-.6v-.7l-.2-.5v-.7l-.2-.7v-.5l-.2-.7v-2.6l-.2-.7h1v1.1l.2.7v1.4l.2.7v.7l.2.6v.7l.2.6v.6l.3.6v.7l.3.6v.7l.3.5v.6l.2.6.2.5.2.5.2.5.3.6.3.5.2.6.3.5.2.6.3.5.2.6.3.5.3.6.4.4.2.5h-.7zm.6.7l-.5.5-.2-.5h.8zm6.7-16.6h1v1.6l-.2.7v1.4l-.3.8v.6l-.3.7-.2.7-.2.6-.2.6-.2.5-.2.5-.3.6v.5l-.4.7-.2.5-.3.5-.2.5-.3.4-.3.5-.3.5-.4.4-.3.3-.4.4-.4.4-.3.5-.4.3-.4.4-.4.3-.3.3-.4.3-.7-.6.2-.3.4-.2.3-.3.2-.4.3-.2.4-.3.2-.4.3-.3.3-.4.3-.4.4-.5.3-.4.2-.4.2-.4.3-.5.2-.5.3-.5.2-.5.3-.5.2-.6.2-.4v-.6l.3-.6v-.6l.3-.6v-.7l.3-.6v-1.4l.2-.7V444zm0-24.3v-1l.4.6v5.6l.2 1v4.6l.2.8v2.8l.2.8v9.2h-1v-11.8l-.2-.8V429l-.2-1v-3l-.2-1v-5.3l.4.5zm0-1h.4v.6l-.5-.5z" fill="#21231e"/> - <path d="M420 424.2l-12 .6c0 11 0 18.4.3 22.2.7 7.6 2.8 14 6.2 18.6 3.5-3 6.8-8.6 7-16.5.3-8-1-16.3-1.5-24.8z" fill="#fff"/> - <path d="M408 424.3l12-.6v1l-12 .6-.4-.5.5-.5zm-.4.5v-.5h.5l-.4.5zm1.2 22.2h-1v-4l-.2-.6v-17.8h1V445l.2.4v1.6zm5.4 18.2l.6.8h-.7l-.2-.5-.3-.5-.3-.5-.3-.5-.4-.5-.3-.5-.3-.5-.2-.5-.3-.5-.3-.5-.2-.6-.2-.5-.3-.7-.2-.6-.2-.6v-.4l-.3-.6-.2-.6v-.7l-.3-.6-.2-.5v-.6l-.3-.8v-.6l-.2-.7v-.8l-.2-.6v-.7l-.2-.8v-2h.8v.7l.2.7v1.4l.2.7.2.7v.7l.2.7v.6l.3.6v.7l.2.6v.5l.3.6.2.7.2.5v.6l.3.6.2.5.2.5.2.5.2.5.2.6.2.6.3.5.2.6.2.4.3.5.3.5.3.4.3.5.3.3h-.8zm.6.8l-.4.4-.3-.5h.8zm6.2-17h1v2.3l-.2.7v.7l-.2.7-.2.6v.7l-.3.6v.6l-.2.5-.2.6-.2.7-.2.6-.3.5-.3.6-.3.5-.2.4-.3.5-.4.4-.3.4-.3.5-.3.4-.3.4-.3.5-.2.4-.3.3-.3.4-.4.3-.3.4-.3.3-.4.3-.6-.8.3-.3.3-.4.3-.3.4-.3.3-.4.4-.3.4-.4.2-.5.3-.4.2-.3.3-.4.3-.5.2-.4.3-.5.2-.6.3-.5.2-.6.2-.5.2-.6.2-.6.2-.6.2-.5.2-.6v-.5l.3-.7v-.6l.2-.7v-.6l.2-.8V449zm-1-25.3v1l.5-.5v2.4l.2.8v1.5l.2.7v3.4l.2.7v1.5l.2.8v.8l.2.8v2.5l.2.7v2.3l.2.8v5.3h-1v-7.4l-.2-.7v-1.6l-.2-.8V437l-.2-1v-1.5l-.2-.7v-1.6l-.2-.8v-1.6l-.2-.8v-1.6l-.2-.8v-2.2l.4-.6zm-.5.6v-.6h.5l-.5.6zm.5.4v-1 1z" fill="#21231e"/> - <path d="M395 412.4l-12-.8c-1.2 11-2 18.2-2.2 22-.2 7.7 1 14.2 4 19.3 3.8-2.8 7.7-8 8.8-15.7 1.2-8 .8-16.4 1.4-25z" fill="#fff"/> - <path d="M383 411l12 1v1l-12-1-.4-.5.5-.4zm-.4.5v-.5h.5l-.4.5zm-1.3 22.2h-1V431l.2-.4V429l.2-.6v-1.2l.2-.6v-2.2l.2-.7v-1.4l.2-.8v-.8l.2-.8v-1l.2-.8v-1l.2-.8v-1l.3-1v-1l.2-1v-1l1 .2v2l-.3 1v1l-.2 1v.8l-.2 1v.7l-.2 1v.8l-.2.8v.8l-.2.8v1.3l-.2.7v1.4l-.2.6v1.1l-.2.6v1.7l-.2.5v2.7zm3.2 18.8l.5.8-.7-.2-.2-.4-.2-.5-.2-.4-.3-.5-.2-.4v-.5l-.3-.5-.3-.5v-.6l-.3-.5v-.7l-.3-.6v-.6l-.3-.4v-.6l-.3-.7V443l-.2-.5v-.7l-.2-.6V440l-.2-.8v-5.5h1v6.8l.2.7v.7l.2.6v.6l.2.5v.6l.2.7.2.6v.6l.3.5v.5l.3.6.2.5.2.7.2.5.2.5.2.5.2.5.3.5.2.5.2.5.2.4h-.7zm.5.8l-.4.3-.3-.5.8.3zm8.2-16h1l-.2.8v.8l-.3.7v.7l-.3.7-.2.6-.2.6-.2.6-.3.6-.2.6-.3.6-.2.6-.3.5-.3.6-.3.5-.4.5-.3.5-.3.4-.3.5-.3.4-.4.6-.3.4-.4.4-.3.3-.4.4-.3.5-.4.3-.5.3-.3.4-.4.3-.4.3-.3.3-.5-.8.3-.3.4-.2.3-.3.4-.3.2-.3.4-.2.3-.4.3-.3.3-.3.3-.4.2-.4.4-.5.3-.4.2-.3.3-.5.3-.5.3-.4.4-.5.2-.5.3-.6v-.5l.4-.6.2-.5.2-.5.2-.6.2-.7.2-.7.2-.6.2-.7v-.7l.2-.7.2-.8zm1.8-24.4v-1l.5.5v1.5l-.2.8v5.6l-.2.7v9l-.2.8v2.2l-.2.8v.7l-.2.8v1l-.2.6v.8l-1-.2v-.7l.2-.8v-1.5l.2-.7V432l.2-.8V428l.2-.8V421l.2-.7v-4.8l.2-.8v-2.3l.6.5zm0-1h.5v.5l-.5-.6z" fill="#21231e"/> - <path d="M384 399.6l-13.2-5.4c-2.2 8.8-5.2 37.8 0 50 4.5-3 9-8.4 10.3-17 1.6-9 2-18.2 3-27.6z" fill="#fff"/> - <path d="M371 393.7l13 5.4-.3 1-13-5.4-.4-.6.7-.3zm-.7.3l.2-.5.5.2-.7.3zm.3 50l.6.7-.7-.2-.5-1.2-.5-1.3-.3-1.4-.4-1.5-.3-1.5-.3-1.6-.2-1.7-.2-1.7v-1.8l-.2-1.8v-3.6l-.2-2V418l.2-2v-1.8l.2-1.8.2-1.8V409l.3-1.8.2-1.7V404l.3-1.6.2-1.5.3-1.4.2-1.3.2-1.2.2-1v-1l.3-1 1 .3-.2 1v.8l-.3 1.2-.3 1.2-.2 1.3-.2 1.4-.2 1.5-.2 1.6-.2 1.6v1.7l-.3 1.7v1.7l-.2 1.8v1.8l-.2 1.8v3.8l-.2 2v5.4l.2 1.8v1.7l.2 1.8.2 1.7.2 1.6.3 1.6.3 1.5.3 1.3.5 1.4.4 1.2.4 1h-.8zm.6.7l-.5.3-.2-.5.7.2zm9.4-17.7h1v1l-.3.8-.2.8v.7l-.3.8-.2.8-.3.7-.2.7-.3.7-.3.5-.3.7-.2.6-.3.6-.3.6-.3.6-.5.5-.3.7-.4.5-.4.5-.3.5-.3.4-.4.5-.4.5-.5.4-.4.3-.3.4-.4.4-.4.4-.5.4-.5.3-.4.4-.4.3-.6-.8.4-.4.4-.3.4-.3.4-.3.4-.4.4-.3.4-.4.4-.4.4-.4.3-.4.4-.4.3-.5.3-.4.4-.4.3-.5.4-.4.3-.6.3-.5.3-.6.3-.6.2-.6.3-.7.3-.5.2-.6.3-.8.2-.7.2-.7.3-.7v-.7l.3-.7.2-.8v-.8zm3-27l.4-1 .4.6v1l-.2.8v1.7l-.2 1v1l-.2.8v1.8l-.2.8v1.7l-.2 1v1.7l-.2 1v1.6l-.2 1v.7l-.2 1v.8l-.2.8v1l-.2.7v.8l-.2 1v.8l-.2 1v.7l-.3.8v.8h-1v-.8l.2-1v-1.5l.2-.8v-1l.2-.8v-1l.2-.7v-1l.2-.7v-1l.2-.7v-1.6l.2-1v-.7l.2-1V410l.2-.8v-1.8l.2-.8v-1.8l.2-1v-1.5l.2-1v-.8l.2-1 .3.6zm.4-1l.4.3v.3l-.4-.5zm0 .6l-.3.4.2-.4zm0-.5l.4.3v.3l-.4-.5z" fill="#21231e"/> - <path d="M387.8 701.2c8 6.3 15.2-8.3 8-27.6-5-14.2-30.6-8.7-16.4 10.5.7 1 1.6.6 1.5-.4-1-4 1.6-6.3 5.5-5.5 10.5 2 11 22-.6 17.6-2.2-.2-.4 4 1.7 5.6z" id="c" fill="#edb92e" stroke="#21231e"/> - <path d="M400 639.2c-1 3.4-5 7.6-8 10.8-4.5 4.8-3.4 12.2-.2 16 3.5 4.4 5 9.2 5.8 13 .5 2.3 1.5 7.4.8 15.5-.4 4-2.7 6-5 7.7-1 1 .5 3 4.3 6 .4.2 1.5 1 2 3 .2.4 2 .4 2.2 0 .4-2 1.6-2.8 2-3 3.7-3 5.4-5 4.2-6-2.2-1.7-4.6-3.8-5-7.7-.6-8 .3-13.2.8-15.5.8-3.8 2.3-8.6 6-13 3-3.8 4.2-11.2-.5-16-3-3.2-7-7.4-8-10.7 0-.8-.3-1-.7-1-.3 0-.7.2-.7 1z" fill="#edb92e" stroke="#21231e"/> - <path d="M395 685.5h11.6c2 0 3.6 1.6 3.6 3.5 0 2-1.6 3.5-3.6 3.5H395c-2 0-3.5-1.5-3.5-3.5s1.6-3.5 3.6-3.5z" fill="#edb92e"/> - <path d="M406.6 686H395v-1h11.6v1zm4 3h-1v-1l-.2-.2v-.2l-.2-.2v-.2h-.2v-.2h-.2v-.2h-.3v-.2h-.2v-.2h-.3l-.2-.2h-.5v-.2h-.6v-1h1l.2.2h.4v.2h.3l.2.2h.2v.2h.2v.2l.3.2.2.2v.2l.3.2.2.3v.3l.2.3v.4l.2.2v.8zm-1 0h1-1zm-3 4v-1h.8l.3-.2h.2l.2-.2.2-.2h.3v-.2l.2-.2v-.2l.2-.2.2-.3v-.3l.2-.2v-.8h1v1.2l-.2.2v.4h-.2v.3l-.2.3h-.2v.3h-.2v.3h-.3l-.3.2v.2h-.3l-.2.2h-.2l-.3.2h-.4l-.2.2h-.8zm-11.5-1h11.6v1H395v-1zm-4-3h1v1l.2.2v.3h.2v.2h.2v.2h.2v.2h.2v.2h.2l.3.2h.2l.2.2.3.2h.6v1h-1.2v-.2h-.3l-.2-.2h-.2l-.2-.2-.2-.2-.3-.2-.3-.3-.2-.3-.2-.3-.2-.2v-.2l-.2-.2v-.4l-.2-.2v-.8zm1 0h-1 1zm3-4v1H394v.2h-.3l-.2.2h-.2v.2h-.2v.2l-.2.2-.2.2-.2.2v.2l-.2.2v.5h-.2v.6h-1v-1.2l.2-.2v-.2h.2v-.3h.2v-.2l.2-.2v-.2h.2l.2-.2v-.2h.3v-.2h.3v-.2h.3l.3-.2h.2l.2-.2h.5l.2-.2h.7z" fill="#21231e"/> - <path d="M417 579.2l.5-11c-4.4-2.2-15.2 0-19.7 10.2-5.7 12.6-11 19.3-18 25.2 10 1.8 18.4-.2 23.7-7.4 7.3-9.8 11.2-15.7 13.6-17z" fill="#fff"/> - <path d="M418 568.3l-.4 11h-1l.4-11 .7-.5.3.5zm-.3-.5l.3.2v.3l-.3-.5zm-19.5 10.8l-1-.4.6-1 .5-.8.5-1 .6-.7.5-.8.5-.8.7-.7.6-.6.7-.7.7-.5.7-.6.6-.4.7-.5.8-.4.8-.4.7-.3.8-.3.7-.2.7-.3h.7l.8-.3h1.2l.7-.2h2l.7.2h.5l.6.2.5.2.4.2-.4 1-.4-.3h-.5l-.5-.2h-.5l-.5-.2h-3l-.7.2h-.6l-.7.3-.7.2-.7.2-.7.2-.8.3-.7.3-.7.4-.7.4-.5.5-.7.5-.7.6-.5.6-.6.6-.7.7-.6.6-.5.7-.6.8-.5 1-.3.7-.5 1zM380 603l-.2 1-.2-.8.6-.6.6-.5.7-.5.6-.6.7-.6.6-.6.5-.6.6-.6.6-.7.6-.7.5-.6.7-.7.5-.7.6-.7.5-.7.6-.8.4-.8.5-.7.5-.8.5-1 .5-.8.6-.8.6-1 .5-.8.6-1 .6-1 .5-1 .5-1 .5-1 .6-1 .5-1.2.5-1.2 1 .4-.6 1.2-.5 1-.6 1.2-.5 1-.4 1-.6 1-.5 1-.5 1-.6 1-.5 1-.6.8-.6.8-.5.8-.5.8-.6.8-.5.8-.6.7-.4.7-.6.8-.6.6-.5.7-.7.7-.6.6-.6.7-.4.6-.6.5-.6.6-.7.7-.6.5-.5.6-.6.6-.8.5-.2-1zm-.2 1h-1l.8-.8.2.8zm23.4-8l.8.5-.6.7-.5.6-.7.6-.6.6-.6.6-.5.5-.6.6-.7.5-.7.5-.7.4-.8.3-.7.4-.7.3-.7.3-.7.2-.7.3-.8.2-.8.2h-.8l-.8.2h-.8l-1 .2h-6.1l-1-.2-.8-.2-1-.2.2-1 1 .2.8.2h1l.8.2h6.6l.8-.3h.8l.7-.3.8-.2.7-.2.7-.3.7-.2.7-.2.8-.4.6-.3.7-.3.7-.4.6-.5.6-.5.5-.5.5-.5.6-.5.5-.6.7-.6.5-.7zm13.4-16.8h1l-.2.4-.2.2h-.2l-.3.3-.2.3-.3.2-.2.3-.3.3-.3.4-.3.3-.2.4-.4.5-.3.4-.3.3-.4.5-.3.5-.4.5-.5.6-.3.5-.4.5-.5.7-.5.6-.5.7-.5.7-.5.7-.5.6-.6.8-.6.8-.5.8-.6 1-.7.7-.7 1-.6.8-.8-.6.6-1 .7-1 .6-.7.7-1 .6-.7.6-.8.5-.7.5-.7.5-.7.5-.7.5-.8.5-.6.5-.6.4-.6.4-.6.4-.6.4-.5.4-.5.3-.5.3-.4.4-.5.3-.4.3-.4.3-.3.4-.3.3-.3.2-.2.3-.3.3-.2.4-.2h.2l.3-.2-.4.4zm1 0v.3h-.2l.2-.3z" fill="#21231e"/> - <path d="M425.2 580.6l-11.8-5c-5 10-8.2 16.6-9.5 20.2-2.8 7-3.5 13.8-2.3 19.5 4.8-1.2 10.3-4.6 14-11.6 3.8-7 6-15.3 9.5-23z" fill="#fff"/> - <path d="M413.6 575.2l11.7 5-.3 1-11.8-5-.3-.8.6-.2zm-.7.2v-.4l.6.2-.7.2zm-8.7 20.6l-1-.4.2-.3.2-.4.2-.5v-.4l.2-.3.2-.5.2-.4.2-.5.2-.5.3-.5.2-.5.3-.6.2-.5.3-.6.3-.5.3-.7.2-.6.3-.6.3-.7.4-.8.3-.7.4-.8.2-.7.4-.8.4-.8.4-.8.4-.8.4-.8.4-1 .4-.8.5-.8.4-1 .8.5-.4.8-.5 1-.5.8-.4.8-.3 1-.4.7-.4 1-.5.7-.4.7-.3.8-.3.7-.4.6-.3.7-.3.7-.3.6-.2.7-.3.6-.3.5-.3.6-.3.6-.3.6-.2.5-.3.5-.3.5-.2.5-.2.4-.2.5v.5l-.2.4-.2.3v.3l-.3.4zm-2.7 18.8l.2 1-.6-.4v-.5l-.2-.7v-.6l-.2-.5v-1.7l-.2-.5v-3.7l.2-.6v-1.2l.2-.7v-.6l.2-.5v-.7l.2-.6.2-.7v-.6l.3-.8v-.6l.3-.7.2-.7.2-.7.2-.7.2-.7.2-.7 1 .4-.3.6v.7l-.4.6-.2.6-.2.6-.2.7v.5l-.3.6v.8l-.3.6v.6l-.2.7v.6l-.2.6v.5l-.2.6v1.9l-.2.5v3.5l.2.5v1.2l.2.5v.7l.2.5-.6-.4zm.2 1h-.5v-.4l.5.4zm13.5-12.4l1 .5-.5.6-.3.6-.4.6-.3.6-.4.6-.4.5-.5.6-.5.6-.4.5-.4.6-.5.4-.4.5-.5.4-.5.3-.4.4-.6.4-.5.4-.5.4-.5.3-.5.4-.5.3-.4.2-.5.2-.4.2-.5.2-.4.3h-.4l-.5.2-.5.2h-.5l-.4.3h-.5l-.2-1h.9l.4-.3h.4l.4-.3h.5l.4-.3.5-.2.4-.2.5-.2.5-.2.5-.3.5-.3.4-.3.4-.4.4-.3.5-.4.4-.4.4-.4.6-.4.4-.5.4-.4.5-.6.3-.4.4-.5.4-.6.5-.6.4-.5.2-.7.4-.6.4-.6.3-.6zM425 581l.3-.8.3.6-.3.7-.3.8-.3.7-.3.7-.3.8-.2.7-.3.7-.2.7-.3.7-.3.8-.3.7-.2.6-.3.8-.4.7-.3 1-.2.6-.2.7-.3.8-.3.8-.2.7-.3.7-.3.8-.3.7-.2.7-.3.7-.3.8-.3.7-.5.7-.3.7-.3.6-.5.6-.3.7-1-.6.5-.6.3-.7.3-.6.3-.6.4-.7.3-.6.3-.7.3-.7.2-.7.3-.7.2-.7.3-1 .3-.6.3-.7.3-.7v-.8l.4-.7.3-.7.3-.8.2-.7.3-.7.3-.8.3-.7.3-.7.3-.7.3-.7.2-1 .3-.6.3-.8.3-.7.4-.8.3-.8.3.7zm.3-.8l.5.2-.2.4-.3-.6z" fill="#21231e"/> - <path d="M428.6 580.6l-12.7-2c-2.4 10.8-4 18-4.4 22-1 7.5 0 14 2.7 19.4 4.3-2.3 8.8-7 10.7-14.7 2-7.8 2.2-16.3 3.6-24.7z" fill="#fff"/> - <path d="M416 578.2l12.6 2v1l-12.8-2-.4-.6.6-.4zm-.6.4v-.5l.6.2-.6.4zm-3.3 22h-1l.2-.5V599l.2-.6v-.5l.2-.6v-.5l.2-.6v-.6l.2-.5v-.6l.2-.6v-.6l.2-.6.2-.7v-.6l.3-.7v-.7l.2-.8v-.8l.3-.8.2-.8v-.8l.3-1 .2-.7.2-1 .2-.8.2-1 .2-1 .2-1 .2-1 1 .3-.2 1-.2 1-.2 1-.2 1-.2.8-.2 1-.2.7-.2 1-.2.7v.8l-.3.8-.2.8v.8l-.2.7v.6l-.2.7-.2.7v.6l-.2.6-.2.7v.4l-.2.6v.6l-.2.5v1.1l-.2.6v.4l-.2.4v1.2zm2 19l.5.8-.7-.2-.2-.5-.3-.5-.2-.5v-.6l-.3-.4-.2-.5-.2-.5-.2-.6v-.6l-.2-.6v-.6l-.3-.6v-.6l-.2-.6v-.6l-.2-.6v-2.8l-.2-.6v-5.4l.2-.7v-1.5h1v3.1l-.2.7v5.1l.2.6v1.2l.2.6v.6l.2.6v.6l.3.6v.5l.2.6v.7l.3.5v.5l.3.6.2.5.2.5.2.5.3.5.2.5-.7-.2zm.5.8l-.5.3-.2-.5.7.2zm10-15.2l1 .2-.2.7-.2.8v.7l-.3.7-.3.7-.2.5-.3.6-.4.7-.3.6-.3.6-.3.4-.3.6-.4.5-.3.5-.4.5-.4.5-.4.4-.4.5-.4.3-.4.4-.4.4-.4.5-.4.3-.4.4-.4.3-.4.3-.4.3-.4.4-.5.3-.4.3-.4.2-.5.2-.5-.8.4-.2.4-.3h.4l.4-.4.4-.3.4-.3.4-.3.4-.3.4-.3.4-.3.3-.3.4-.4.4-.4.5-.4.3-.4.4-.5.3-.4.4-.6.2-.5.3-.6.3-.5.3-.6.4-.6.3-.5.3-.6.2-.6.3-.5.2-.6.3-.8.2-.7.2-.6.2-.8zm4-25v1l.5-.5v.8l-.2.8v.7l-.2.8v.8l-.2.8v.8l-.2.8v.7l-.2.8v.8l-.2.8v1.7l-.2.7v.8l-.2.8v.8l-.2.8v.7l-.2.8v1l-.2.6v.8l-.2.8-.2.7v.7l-.2.7-.2.8v.7l-.3.7-.2.7-1-.2.2-.8.2-.7v-.7l.2-.8v-.7l.3-.7v-.8l.2-.8v-.7l.2-.8v-1.5l.2-.8v-.7l.2-.8v-1l.2-.7v-.7l.2-.8v-1.6l.2-.8v-.8l.2-.7v-1l.2-.7v-.8l.2-.8v-.8l.2-1v-.7l.3-.8.5-.4zm-.4.3v-.4h.5l-.4.5zm.5.6v-1 1z" fill="#21231e"/> - <path d="M430.4 563.4h7.6c4.4 2 9 12.2 3.7 22-6.7 12-8.8 20.2-9.5 29.2-7.4-6.8-10.8-14.7-8.2-23.3 3.4-11.7 6.8-25.2 6.4-28z" fill="#fff"/> - <path d="M438 564h-7.6v-1h7.8l-.2 1zm0-1h.2-.2zm4 22.5l-.8-.5.5-1 .4-.8.4-.8.3-1 .3-.8.2-1v-.7l.3-1V574l-.2-1v-.6l-.3-.8-.2-.7-.3-.8-.2-.7-.3-.6-.3-.7-.3-.6-.3-.6-.3-.4-.3-.5-.4-.3-.4-.4-.3-.4-.4-.4-.5-.3-.4-.3-.3-.2.5-1 .4.4.5.2.5.4.4.4.4.4.4.4.4.5.4.6.3.6.3.6.3.6.3.7.2.7.3.7.2.6.2.8v.7l.3 1v.8l.2.8v3.5l-.2 1v1l-.4.8-.3 1-.3 1-.4.8-.4 1-.5 1zM432 615l.5-.7-.8.3v-.8l.2-1v-2.3l.3-1v-.7l.2-.8.2-1 .2-.8v-1l.2-.7.3-1 .2-.8.2-1 .2-.7.3-1 .3-.8.3-1 .4-1 .4-.8.4-1 .4-1 .4-1 .4-1 .5-1 .4-1 .5-1 .5-1 .5-1.2.6-1 .6-1.2 1 .5-.7 1-.6 1.2-.7 1-.5 1-.5 1.2-.5 1-.4 1-.5 1-.5.8-.4 1-.3 1-.3 1-.4.8-.3 1-.3.8-.2.8-.3 1-.4.8-.2.8-.2 1-.2.7-.2 1v.7l-.3.8v1l-.3.7v.8l-.2.8v1l-.2.7v1.8l-1 .2zm.7-.3v1l-.8-.7.7-.3zm-9.2-23.6l1 .4-.3.8-.2.8v.8l-.2.7v.8l-.2.8v3l.2.8.2.8v.7l.3.7.3.7.2.8.3.7.4.7.4.6.3.7.5.7.4.7.4.7.5.6.4.7.5.7.4.6.6.7.6.6.6.7.7.6.5.7-.6.7-.8-.6-.7-.7-.6-.7-.7-.6-.6-.7-.6-.7-.4-.7-.6-.7-.4-.7-.5-.8-.3-.7-.5-.7-.3-.8-.5-.7-.3-.7-.3-.8-.4-.7-.2-.7-.2-.8-.2-.7v-.8l-.2-.8v-.8l-.2-.8v-2.5l.2-.8v-.8l.3-.8.3-1 .2-.7zm7-28v1l.4-.7v1.8l-.2.5v1.1l-.2.7-.2.7v.8l-.3.8v.8l-.2 1-.2.8-.2 1-.3 1v1l-.4 1-.2 1-.3 1-.2 1-.2 1-.3 1.2-.3 1-.3 1.2-.3 1-.3 1.2-.3 1.2-.3 1-.3 1.2-.2 1-.4 1.2-1-.3.4-1 .3-1 .5-1.2.3-1 .3-1.2.4-1.2.3-1 .3-1.2.3-1 .3-1.2.3-1 .2-1 .2-1 .3-1.2.2-1 .2-1 .2-1 .2-.8.2-1 .2-.8.2-.8v-.8l.3-.7v-.8l.2-.7v-.6l.2-.6v-2l.4-.6zm-.6.5v-.6h.4l-.5.5zm.4 0v-.6.4zm-.5 0v-.6h.4l-.5.5z" fill="#21231e"/> - <path d="M433.8 558.2l-12-4.3c-4.3 10-7.2 16.8-8.4 20.5-2.3 7.3-2.6 14-1 19.6 4.7-1.3 10.6-4.4 14-11.6 3.3-7.3 4.5-16.3 7.4-24.2z" fill="#fff"/> - <path d="M422 553.4l12 4.3-.4 1-12-4.4-.3-.6.6-.3zm-.7.3l.2-.4h.4l-.7.4zm-7.4 21l-1-.3v-.4l.2-.4v-.4l.3-.4v-.4l.3-.5.2-.5v-.5l.3-.5.2-.5.2-.6.3-.6.2-.5.2-.6.3-.6.2-.6.2-.6.3-.7.3-.6.3-.7.4-.7.3-.8.3-.8.3-.7.4-.8.3-1 .4-.8.3-1 .4-.8.5-1 .4-.8.3-1 1 .5-.5 1-.4 1-.4.8-.3 1-.4.8-.4.8-.4.8-.3.8-.4.8-.4.8-.3.7-.3.8-.3.8-.3.7-.3.6v.8l-.4.6-.2.6-.3.6v.6l-.3.6-.2.5-.2.5-.2.5v.5l-.3.5-.2.4v.5l-.3.4v.3l-.2.3v.4zm-1.8 19l.3 1-.6-.4-.3-.6v-.5l-.2-.6v-.5l-.2-.5v-.6l-.2-.7V583l.2-.7V581l.3-.6v-.7l.2-.6v-.6l.3-.6.2-.7v-.6l.3-.7.2-.6.2-.6 1 .3-.3.6-.2.7-.2.7-.2.6v.7l-.2.6v.7l-.2.6-.2.6v.6l-.2.6v1l-.2.7v6.5l.2.6v1.1l.2.4.2.6v.5l.2.5-.6-.3zm.3 1h-.5v-.4l.5.3zM426 582l.8.6-.3.6-.4.7-.2.5-.4.6-.4.7-.4.6-.4.5-.4.5-.4.5-.5.5-.5.5-.5.4-.4.4-.5.4-.4.4-.4.4-.5.3-.5.5-.5.3-.5.3-.5.4-.4.2-.5.3h-.5l-.5.4-.5.2-.5.2-.5.2h-.4l-.6.3-.4.2h-.5l-.3-.8.4-.2h.5l.5-.3.5-.2h.4l.5-.3.4-.2.4-.3.5-.2.5-.2.5-.3.4-.3.5-.3.5-.4.4-.3.6-.3.4-.4.5-.3.4-.4.4-.5.4-.4.4-.4.4-.4.4-.5.4-.5.4-.5.4-.5.4-.6.3-.6.3-.6.3-.6.3-.7zm7.6-23.4l.4-1 .3.7-.3.8-.3.8-.2.8-.3.7-.2.8-.2 1-.2.6-.2.8-.3.8v.8l-.3.7-.2.8-.2.8-.2.8v1l-.3.6-.2.8-.2.8-.2.8v.7l-.3.8-.2.8-.3.7-.2.8-.2.7-.3.8-.3.7-.2.7-.3.8-.3.7-.3.7-.2.6-1-.5.4-.5.3-.7.3-.7.3-.6.3-.7.3-.8.2-.8.2-.7.3-.8.2-.7.2-.8.2-.7v-.8l.4-.8.2-.8.2-.8.2-.8.2-.8.2-.7.2-.7.2-.8.2-.8.2-.8.2-1 .2-.6.2-.8.3-.8.3-.8.2-.7.3-.8.3-.8.3-.7.3.6zm.4-1l.4.3v.3l-.4-.6zm-.2.6l-.2.4.2-.4zm.2-.5l.4.2v.3l-.4-.6z" fill="#21231e"/> - <path d="M425.6 549.7l-2.6-16.4c-2.8-.7-6.5 5.8-10 9.5-1 1-2 1.7-2.6 2.8a23.3 23.3 0 0 0-3.4 8c-3 13.4-7.4 20.4-13 27.6 10.2-.2 18-3.8 21.8-12 5-11 7.7-17.7 9.8-19.5z" fill="#fff"/> - <path d="M423.4 533.3l2.7 16.4h-1l-2.5-16.3.6-.6.4.5zm-.3-.4h.4v.2l-.3-.4zm-9.7 10.2l-.8-.7.4-.4.2-.2.3-.4.4-.4.2-.4.3-.4.4-.4.2-.5.3-.4.4-.5.2-.4.3-.3.4-.5.2-.4.3-.4.4-.3.2-.3.3-.4.3-.3.4-.3.3-.4.3-.2.3-.2.4-.2.4-.3h.3l.4-.3h.3l.4-.2h1.1l-.2 1h-1l-.3.2-.2.2-.3.2-.3.2-.3.2-.3.3v.4l-.5.3-.3.3-.3.3-.4.4-.3.4-.3.5-.4.4-.3.3-.3.4-.3.4-.4.5-.3.5-.3.4-.4.4-.3.4-.4.4-.3.4-.4.4-.4.4-.3.4zm-2.5 2.7l-.8-.7v-.2h.2l.2-.2v-.2h.2v-.2h.2v-.2h.2v-.2h.2v-.2l.2-.2h.2v-.2l.2-.2h.2v-.2h.2v-.2h.2v-.2l1 .6h-.2l-.2.2v.2h-.2v.2h-.2l-.2.2v.2h-.2l-.2.2v.2h-.2v.2h-.2v.2h-.2v.2h-.2v.2l-.2.2v.2h-.2zm-3.3 7.7l-1-.2v-.6l.2-.4v-.3l.2-.3v-.8l.2-.3v-.3l.2-.3v-.3h.2v-.4l.2-.3v-.2l.2-.2v-.2l.3-.3v-.2l.2-.2v-.2l.3-.2v-.3h.2v-.3l.3-.3v-.2l.3-.2v-.2l.2-.3.2-.2.8.6-.3.3v.2l-.2.2-.2.2v.4l-.2.2-.2.2v.3l-.2.3v.2l-.2.3-.2.2v.2l-.2.3v.2l-.2.3v.2l-.2.3v.2l-.2.3v.5l-.2.3v.2l-.2.3v.5l-.2.3v.7zm-13.4 27v1l-.3-.8.5-.8.5-.7.5-.6.5-.8.5-.7.5-.7.4-.6.6-.7.4-.7.5-.8.4-.7.4-.7.4-.8.4-.7.4-.7.4-.8.4-.8.4-.8.4-1 .4-1 .3-.8.3-1 .3-.8.4-1 .3-1 .4-1 .3-1 .3-1.2.3-1 .3-1.3.2-1.3.3-1.2 1 .2-.3 1.2-.3 1-.4 1.3-.3 1.2-.4 1-.4 1-.3 1.2-.4 1-.4 1-.4 1-.3 1-.5.8-.4 1-.3.8-.4.8-.4 1-.5.8-.4.8-.3.7-.5.8-.4.8-.5.8-.4.7-.6.7-.5.7-.5.7-.5.7-.5.8-.5.7-.5.6-.5.8-.5.7-.4-.8zm0 1h-1l.7-.8.4.7zm21.3-12.8l1 .4-.5.7-.4 1-.4.6-.4.7-.5.7-.4.6-.5.6-.5.6-.5.6-.6.5-.6.4-.6.5-.7.4-.6.4-.8.4-.7.4-.7.4-.7.3-.7.3-.8.3-.8.2-.8.2-1 .2-.7.2-1 .2-.7.2h-1l-.8.2h-1l-.8.2h-2v-1h2.8l1-.2h.8l.8-.2 1-.2h.7l1-.3.7-.2.7-.3.8-.2.7-.3.7-.3.7-.3.6-.3.7-.3.6-.4.7-.5.6-.4.6-.4.5-.4.6-.6.5-.5.5-.4.5-.6.5-.6.4-.7.5-.6.4-.6.3-.7.3-.8zm9.8-19.2h1v.3l-.3.3v.2l-.3.2-.2.2-.2.2-.2.3-.3.4-.2.2-.2.4v.4l-.4.5-.2.5-.3.5-.2.5-.3.6-.2.6-.3.6-.3.6-.4.7-.3.8-.3.8-.4.7-.3.8-.4 1-.4.7-.4 1-.4.8-.4 1-.4 1-.5.8-.3 1-.5 1-1-.4.6-1 .4-1 .5-1 .4-1 .5-1 .4-.8.3-1 .4-.7.4-.8.4-.8.4-1 .3-.6.4-.7.4-.7.3-.6.4-.7.3-.6.2-.4.2-.6.3-.5.2-.5.3-.4.2-.5.3-.3.2-.4.2-.3.2-.4.2-.3.2-.3.2-.2.3-.2.3-.2-.2.4zm1 0v.3-.3z" fill="#21231e"/> - </g> - <use width="1350" height="900" transform="matrix(-1 0 0 1 964.297 0)" xlink:href="#d"/> - <path d="M536.4 415a38 38 0 0 0 4.8-1.5c-7.6-4.8-14-10.6-21.4-22-7.8-12 3.3-33 8-44.3 9.4-7 18.3-17.3 21.2-31 1-7.3-19-4.7-33 2-17 8-19.3 5.7-25.4 7-2.2 10.5 2.4 11.4 6.7 11-9.4 15-13.3 29.8-15 51.4-2-21.6-6-36.5-15.3-51.5 4.3.6 9-.3 6.7-10.7-6-1.4-8.4.8-25.4-7.2-14-6.5-34-9-33-1.8 3 13.7 11.8 24 21.3 31 4.6 11.2 15.7 32.4 8 44.2-7.6 11.5-14 17.3-21.5 22 1.7.7 3.3 1.2 5 1.5-1.2 1.5-11 4.5-12.3 3.7-7.6-5.3-15-18-21.4-25.2-18.2-20.8-27.3-36.7-24-49.6 4.5-14 20.8-29.6-.8-27-21.7 2.8-39.6 32.5-45.4 68.3-2 13.2-3.3 24.4-4.7 33.5 11.8-4.3 17-8.5 20.2-13.7-1.4 5-2.5 9.7-3.2 14.2 9.7-1.7 16.7-6.4 19.2-15 1-3.6 2.3-6.5 3.6-9 3 1 7 1 11.6 0 1.7 4 15 19 22.2 30 8 12.2 20.2 21.6 24.2 22 2 .4 2.7-4 2.2-10.2 21 .2 42.3.3 63-.4 20.7.7 41.8.6 63 .4-.6 6 0 10.6 2 10.3 4-.5 16.2-10 24.3-22.2 7-10.8 20.5-25.7 22.2-30 4.7 1.2 8.6 1.3 11.6.2 1.3 2.5 2.5 5.4 3.5 9 2.5 8.6 9.5 13.3 19.2 15-.7-4.5-1.8-9-3.2-14 3.2 5 8.4 9.3 20.2 13.6-1.4-9-2.7-20.3-4.8-33.5-5.8-35.8-23.7-65.5-45.4-68.2-21.6-2.6-5.3 13-.7 27 3.3 12.8-5.8 28.7-24 49.5-6.5 7.3-13.8 20-21.4 25.2-1.2.8-11-2.2-12.2-3.8z" fill="#fff" stroke="#21231e"/> - <g id="e"> - <path d="M440.6 356.8c-2 1.8-8.8 1.8-18 2.4-14.8.5-23.4-4-25.3-13.5 5.6 6.6 12.2 10 19.7 8 10.2-2.5 16-4.3 18.3-3.8 1.6.4 4 3.3 5.3 6.8z" fill="#edb92e"/> - <path d="M422.6 359.7v-1h1.8l.7-.2h2.5l.8-.2h2.8l.8-.2h3l.5-.2h1l.4-.2h.5l.4-.2h.4l.5-.2h.3l.3-.2h.4l.3-.2h.2v-.3h.3l.6.7h-.3l-.3.3-.3.2h-.2l-.3.3h-.4l-.3.2h-.4l-.4.2h-.5l-.5.2h-1l-.5.2h-1.5l-.6.2H432l-.6.2h-2.8l-.8.2h-2.3l-1 .2H423zm0 0zm-25-14.3l-.7.6.8-.4.2 1 .2.7.3.8.3 1 .3.6.5.7.4.7.4.6.5.6.4.6.6.6.6.5.6.4.7.5.6.3.8.5.8.4.8.3 1 .4.8.2 1 .3 1 .2 1 .2h1l1 .3h1.2l1.2.3h6.6v1H416l-1-.2h-1.3l-1-.3h-1.2l-1-.3-1-.3-1-.3-1-.2-1-.4-.8-.3-.8-.4-1-.4-.7-.5-.7-.5-.7-.5-.7-.6-.6-.5-.6-.6-.4-.8-.5-.7-.3-.7-.4-.8-.4-.7-.4-1-.3-.7-.3-1-.2-.8 1-.4zm19.3 8l.2 1h-.8l-.7.2h-1.4l-.7.2h-2.8l-.6-.2-.7-.2h-.7l-.6-.3h-.7l-.6-.3-.8-.3-.6-.3-.6-.2-.6-.3-.6-.4-.6-.3-.6-.4-.6-.4-.6-.6-.6-.4-.6-.5-.5-.6-.6-.6-.4-.6-.6-.5-.5-.6-.6-.7.7-.6.5.6.5.6.6.6.5.5.5.5.6.5.4.5.6.5.6.4.5.5.7.4.6.3.6.3.4.3.6.2.6.3.6.2.7.2h.5l.6.3.7.2h.6l.7.2h4.7l.6-.3h.7zm18.5-4l-.3 1h-2.6l-.4.2h-.9l-.5.2-.5.2h-.5l-.6.2h-.5l-.6.3h-.5l-.7.3-.7.2h-.6l-.7.3-.7.2-.8.2-.8.2h-.8l-.8.3-1 .3-.8.2-1 .2-.8.3-.3-1 1-.2.8-.2 1-.2.7-.2 1-.2.7-.2.8-.2.7-.2.8-.2.7-.2.7-.2.6-.2h.6l.6-.3h.6l.6-.3h.6l.5-.2h.6l.5-.2h.6l.4-.2h.9l.3-.2h2zm0 0zm5.4 7.8l-.7-.8-.2.6v-.7l-.3-.3v-.3l-.3-.3v-.3l-.3-.2v-.3l-.2-.2-.2-.3v-.3l-.3-.2-.2-.3v-.2l-.2-.2-.2-.3v-.2l-.3-.2h-.2v-.3h-.2l-.2-.3v-.2h-.3l-.2-.2v-.2h-.2v-.2h-.4v-.2h-.2l.3-1h.2l.2.2.2.2h.2l.2.2.2.2h.2v.3l.3.2.2.2h.2l.2.3v.2l.2.2.2.2.2.2.2.2.2.3v.2l.3.2.2.3.2.3v.3l.3.4.2.3v.3l.3.3v.3l.3.3v.3l.2.3v.6zm0-.6l.2.3-.3.2v-.6zm-21.5-35.4v1.5h-.4v-.4h-.2v-.7l.2-.2h.2v-.2h.2zm15.3 4l-.5 1.3-.6-.2-.5-.2h-.6l-.5-.2-.4-.2-.5-.2-.4-.2-.5-.2-.4-.2h-.5l-.4-.3-.5-.2h-.4l-.4-.3h-.5l-.4-.3h-.5l-.4-.2h-.4l-.5-.2h-.4l-.3-.2h-1.3l-.4-.2H420v-2h2.9l.5.2h1l.4.2h.5l.3.2.5.2h.5l.4.2.5.2h.5l.4.3h.6l.5.3.6.2h.5l.6.3.5.2.6.2h.5l.6.3.6.2.5.2.6.2h.5zm9 2.5v1.5H442l-.3-.2h-.4l-.3-.2h-.3l-.4-.2h-.3l-.4-.2h-.4l-.3-.2h-.5l-.3-.2-.4-.2h-.3l-.4-.2h-.2l-.3-.2h-.3l-.3-.3h-.7l-.2-.2h-.4l-.2-.2.4-1.5h.2l.2.2h.2l.2.2h.3v.2h.4l.3.2h.3l.3.2h.4l.3.2.3.2h.4l.3.2h.4l.3.2h.4l.4.2h.3l.4.2h.4l.3.2h.6l.3.2h1zm0 1.5v-1.5h.4v.2h.2v.2h.2v.9h-.2v.2h-.2v.2h-.2zm23.4 7.5l.2-1.2h.2v.2h.2v.8h-.6zm-10-2l.4-1.2h.5l.3.2h.4l.3.2h1.1l.2.2h.6l.2.2h.6l.3.2h.7l.4.2h.8l.3.2h.9l.2.2h.9l.5.2h.8l-.2 1.3h-.9l-.4-.2h-.6l-.4-.2h-.7l-.4-.2h-1.4l-.3-.2h-.7l-.3-.2h-.6l-.3-.2h-.5l-.4-.2h-.5l-.3-.2h-.5l-.2-.2h-.5l-.2-.2zm.4-1.2l-.3 1h-.2v-.8h.8z" fill="#21231e"/> - <path d="M431.5 332l-.7 1.3-.4-.3-.4-.2-.4-.3-.3-.2-.4-.3-.4-.3-.3-.3-.4-.3-.4-.2-.3-.4-.3-.3-.2-.3-.3-.3-.3-.4-.2-.3-.3-.4-.2-.3-.3-.4-.2-.4-.2-.3-.3-.5-.2-.4-.2-.2v-.4l-.3-.4-.2-.3-.2-.4-.2-.3v-.4l-.2-.3-.2-.3-.2-.4 1.4-.7.2.2.2.4v.3l.3.2.2.4.2.3v.3l.3.3.2.4.2.3.2.4v.3l.3.4.3.3.2.4.2.4.2.4.3.3.2.4.3.4.2.3.3.4.3.3.3.3.3.2.3.3.3.3.2.2.4.3.3.2.2.2.3.2zm7.6-5.3l1.5.8-.2.4-.2.3-.2.4-.2.4-.3.5-.3.4-.2.2-.3.4-.3.3-.3.2-.3.3-.3.3-.3.3-.2.4-.3.2-.3.2-.4.2-.3.2-.3.2h-.3l-.5.2h-.3l-.3.2h-2.2l-.4-.2-.3-.2h-.2l.7-1.5h.5l.2.2h1.7l.3-.2h.2l.3-.2h.2l.3-.3.2-.2.3-.2h.2l.3-.3.2-.3.3-.2.2-.3.3-.4.2-.3.3-.3.2-.4.2-.3.3-.4.2-.5.2-.4v-.3z" fill="#21231e"/> - <path d="M429.6 331l-2.2-2.3c-1-1.3-.5-3 2-5.4 1.5.7 3 1.3 4.2 2-1 3-2.2 4.8-4 5.6zm-6.3 82l-.4 1h-.4v-1h.8zm23.8-3.6l1 1-.7.5-.6.4-.7.5-.6.4-.7.5-.7.3-.7.4-.7.4-.7.4-1 .3-.6.3-.8.2-.7.2-1 .2-.7.2h-.8l-.8.2h-5l-1-.2h-.8l-.8-.3h-1l-.8-.4h-1l-.7-.3-1-.3-.8-.3.3-1 .8.2 1 .3 1 .3.7.2 1 .2.7.2h.8l1 .2h.7l.7.2h4.8l.7-.2h1l.6-.3.7-.2h.7l.7-.4.7-.3.7-.3.8-.3.6-.4.7-.4.7-.5.6-.5.6-.5.5-.5.6-.6zm3-2.8l1 .8h-.2v.2h-.2l-.2.2v.2h-.2v.2h-.2v.2h-.2l-.2.2-.2.2v.2h-.2v.2h-.2l-.2.2-.2.2-.2.2-.2.2v.2h-.2l-1-.8h.2v-.2h.2v-.2h.2l.2-.2.2-.2.2-.2v-.2h.2v-.2h.2l.2-.2.2-.2.2-.2v-.2h.2l.2-.2.2-.2v-.2h.2zm1 .8l-1-.8.2-.2h.7v.2h.2v.8z" fill="#21231e"/> - <path d="M452.2 401.3l-1.2-.2v-.2h.2l.2-.2h.6v.4h.2v.2zm-5.5 16l.3 1-.7-.8.2-.4.2-.4.2-.5v-.4l.3-.4.2-.5.2-.5v-.5l.3-.4.2-.5.2-.5v-.5l.3-.5v-.5l.3-.5v-.5l.3-.5v-.5l.3-.5v-.5l.2-.5.2-.6v-.5l.2-.6v-.5l.2-.4v-.6l.2-.6v-.5l.2-.7v-.6l.2-.6 1.2.3v.6l-.2.5v.6l-.2.6v.6l-.2.6v.5l-.2.6-.2.4v.6l-.2.5v.6l-.3.6v.5l-.3.6v.6l-.3.5v.5l-.2.5-.2.5v.5l-.3.5-.2.5v.5l-.2.4-.2.5-.2.6-.2.5-.2.6-.2.5-.2.5-.2.5-.7-.8zm-.4.2l1 .5v.2h-.2v.2h-.4l-.2-.2v-.2h-.2v-.4zm15.2-9.5l1 .7-.3.4-.4.6-.3.4-.4.4-.2.4-.4.4-.4.4-.4.4-.4.3-.4.4-.5.3-.4.4-.6.3-.4.3-.5.3-.5.3-.5.3-.5.2-.5.3-.5.3-.6.2-.5.3-.7.2-.5.3-.6.2-.6.2-.6.2-.6.2-.6.2-.6.2-.6.2-.6.2-.3-1.2.6-.2h.6l.5-.3.6-.2.6-.2.6-.2h.6l.5-.3.6-.3.4-.2.5-.2.4-.3.5-.2.4-.3.5-.3.4-.4.5-.3.3-.3.5-.3.4-.3.4-.3.4-.2.4-.4.4-.3.4-.3.4-.3.3-.4.3-.4.3-.4.3-.4.2-.4.3-.4zm1 .7l-1-.7h.2v-.2h.7v.2h.2v.7z" fill="#21231e"/> - <path d="M461.3 400.2H460v-.2h.2v-.2h1v.4zm4.4 15.7l.7 1-.8-.3-.3-.4-.3-.4-.2-.5-.3-.5-.2-.4-.3-.4-.2-.5-.3-.5-.2-.4-.2-.5v-.5l-.3-.5-.2-.5-.2-.5-.2-.5v-.5l-.2-.5-.2-.5v-.6l-.3-.5v-.5l-.3-.6v-.4l-.2-.6v-.6l-.2-.5v-.7l-.2-.6v-.6l-.2-.5v-1.2h1v.5l.2.6v.6l.2.5v1.4l.2.5.2.6v.5l.2.5v.6l.3.5v.4l.2.5.2.4v.5l.2.4.2.5.2.4.2.5.2.4.2.4.2.5.2.4.2.5.3.4.3.4.2.4.3.5.2.3.3.4.3.3h-1zm0 .7l1-.7v.8l-.2.2h-.2v.2h-.4v-.2h-.2zm7.6-12.6l1 .4v.6l-.2.5v.5l-.2.5-.2.5-.2.5-.2.5-.2.5-.2.4-.2.4-.2.4-.3.5v.4l-.4.4-.2.5-.3.4v.3l-.4.3-.3.4-.3.4-.2.3-.3.3-.3.4-.3.3-.4.3-.3.3-.3.3-.3.2-.3.3-.3.4-.3.2-.3.3-.7-1 .3-.3.3-.2.3-.3.3-.2.2-.3.3-.3.2-.2.3-.3.3-.4.3-.3.2-.4.3-.4.4-.3.2-.4.3-.4v-.4l.4-.3.2-.5.3-.4v-.3l.3-.4.2-.4.2-.6.2-.4v-.5l.3-.4.2-.4.2-.5v-.4l.3-.5v-.4l.3-.5zm1 .4l-1-.3v-.2h.8v.2h.2v.4z" fill="#21231e"/> - <path d="M406 317.8c-16.7 1.8-16 12.6-.4 28 3 3 4 3 4.6-.2 1.2-5.3 7-8.5 10.2-4.4 2 2.7 1.6 4.3 8.6 3.3 9 7.5 16.2 12.8 4.5 12.3-5-.2-9 2.8-15.7 2.5 2 4 2.3 4.3 3.4 4.6 6.5 1.2 13.3-2.8 19.8-1.6 14.3 2.6-23-38.6-22.4-40.3 1-4-9-11.5-12.7-4.2z" fill="#edb92e"/> - <path d="M406 345.5l-.7.7-1.4-1.5-1.5-1.4-1.2-1.4-1.2-1.4-1-1.3-1-1.3-.8-1.3-.8-1.2-.8-1.2-.6-1.2-.5-1-.5-1.2-.3-1-.3-1v-1l-.2-1v-1l.2-1 .2-.8.4-.8.4-.8.6-.7.6-.7.8-.6.8-.6 1-.5 1-.5 1-.4 1.4-.4 1.3-.3 1.3-.2 1.6-.2v1l-1.5.2-1.4.2-1.2.3-1.2.3-1 .4-1 .5-1 .4-.6.5-.7.7-.6.6-.4.6-.4.6-.4.7-.2.8-.2 1v1.7l.2.8.2 1 .4 1 .4 1 .5 1 .5 1.3.7 1 .8 1.3 1 1.4.8 1.2 1 1.3 1.2 1.3 1.2 1.3 1.4 1.4 1.4 1.5zm3.8 0l1 .2v.3l-.2.3v.5l-.2.2v.2l-.2.2v.2l-.2.2-.3.3v.2h-.3l-.2.2H408l-.2-.2h-.2l-.2-.2h-.2l-.2-.3-.2-.2h-.2l-.3-.4h-.2l-.2-.3-.3-.3-.2-.2.7-.7.2.2.3.3.2.2.3.2.2.2.2.2h.2l.2.2.2.2h.3v.2h.6l.2-.2v-.2l.2-.2v-.2l.2-.4v-.4l.2-.3zm11-4.6l-.8.5-.3-.4h-.3l-.3-.4-.2-.2-.3-.2h-.3l-.3-.2h-.5l-.3-.2h-1.5l-.3.2-.4.2h-.2l-.4.3-.3.2-.2.2-.4.2-.3.2-.2.3-.3.3-.2.4-.3.3-.2.4-.3.5-.2.4-.2.3v.5l-.2.4v.5l-1-.2v-.5l.2-.5.2-.5.2-.5.3-.5.2-.4.2-.4.3-.4.3-.4.3-.4.4-.3.4-.3.4-.3.4-.2.3-.2.3-.2.5-.2h.4l.4-.2h.4l.4-.2h1l.4.2h.6l.4.3.4.3.3.2.4.3.4.5.4.4zm8.6 3.2l-.7.7h.4-.5l-.6.2h-4.5l-.2-.2h-.3l-.2-.2h-.2l-.2-.2-.2-.2-.2-.2h-.2v-.3l-.3-.3v-.2l-.3-.2v-.2h-.3l-.2-.3-.2-.3v-.2l-.3-.2v-.3l-.3-.2.8-.6h.2v.4l.3.2.2.3.3.3v.2l.2.2.2.2.2.2.2.2.2.2h.2v.2h.3l.2.2h.2l.2.2h5.4zm-.4 0l.2-.2.2.2h-.4zm4.5 13v-1h4.1l.5-.2h.4l.3-.3h.2v-1l-.2-.3-.2-.4-.3-.5-.4-.4-.5-.4-.4-.4-.4-.5-.6-.5-.6-.6-.6-.6-.7-.5-.6-.6-.7-.7-.7-.7-.8-.6-.8-.7-.8-.7-1-.7.8-.8.8.7.8.5.8.7.8.7.7.5.8.6.8.7.7.6.6.6.7.4.6.6.5.5.5.5.4.5.4.4.4.4.3.4.2.4v2.3l-.4.3-.3.2-.4.3-.6.2h-.6l-.7.2h-3.6zm-15.2 2l-1 .4.5-.8h3.4l.6-.2h.5l.5-.2h.5l.5-.2h.5l.4-.2h.5l.5-.2.4-.2h.6l.4-.2.5-.2h.4l.4-.2h.5l.3-.2h.5l.4-.2h.5l.5-.2h2.6v1H431l-.4.2h-.9l-.4.3h-.8l-.4.2h-.5l-.4.3h-.6l-.5.2h-.5l-.5.3h-.5l-.5.2h-.5l-.5.2h-.5l-.6.2h-.6l-.6.2h-3l.5-.7zm-1 .4l-.3-.8h.8l-.4.8zm4 4l-.2.8h-.4v-.2h-.2l-.2-.2h-.2v-.2h-.2v-.2h-.2v-.2l-.2-.3-.2-.2-.3-.3-.2-.2v-.2h-.2v-.4l-.3-.2v-.3h-.3v-.4l-.3-.3v-.4l-.3-.4 1-.5v.5l.2.3.2.3v.4l.3.3.2.2v.2l.3.2v.2l.2.2v.2h.2v.3l.2.2v.2l.2.2h.2v.2h.4v.2h.4zm-.2.8zm20-2.5v1l-.7-.2h-4.7l-.6.2h-.7l-.6.2h-.7l-.6.2-.6.2h-.6l-.6.2h-.7l-.7.3-.6.2h-.6l-.6.2h-.6l-.6.2h-4.6l-.6-.2.3-1 .6.2h4.8l.6-.2h.6l.5-.2h.6l.7-.2.7-.2h.6l.6-.2.6-.2h.7l.5-.2h.6l.7-.2h.7l.6-.2h4.9zm-23-40l1 .3.3.3.5.7.6.8.8 1.2 1 1.2 1 1.3 1 1.5 1.3 1.5 1.3 1.7 1.4 1.8 1.4 1.8 1.5 1.8 1.5 2 1.5 1.8 1.4 2 1.4 2 1.3 1.7 1.3 2 1.2 1.7 1 1.7 1 1.6.8 1.5.6 1.4.4 1.3.3 1.2v2l-.6.7-.8.5H441v-1h2l.4-.3.3-.4V360l-.3-1.2-.4-1.2-.6-1.3-.8-1.5-1-1.6-1-1.7-1-1.8-1.3-1.8-1.4-2-1.4-2-1.4-1.8-1.5-2-1.4-1.8-1.5-1.8-1.4-1.8-1.3-1.8-1.3-1.6-1.2-1.6-1-1.5-1.2-1.3-1-1.2-.7-1-.6-1-.5-.7-.3-.4v-.6zm-12-3.7v-1l-.5.2.4-.6.3-.7.5-.6.5-.4.5-.3.6-.3.5-.2.5-.2h2.6l.6.2.6.2.5.3.6.2.6.3.4.4.5.2.4.4.4.4.5.5.4.4.3.4.3.4.3.5.2.5.2.5v.5l.2.5v1l-1-.3v-1l-.2-.4v-.4l-.3-.4-.2-.4-.3-.4-.3-.4-.5-.4-.3-.4-.5-.4-.4-.4-.5-.3-.4-.3-.5-.3h-.7l-.5-.3-.5-.2h-.5l-.6-.2h-2l-.4.3-.5.2-.4.3-.5.5-.4.4-.3.4-.3.6-.4.3zm.4-.3l-.2.2h-.2l.4-.2zm-.5-.2v.5-.5zm.4.2l-.2.2h-.2l.4-.2z" fill="#21231e"/> - <path d="M407 317.2l-1.3.4v-.6h.2v-.2h.8v.2h.2v.2zm7.6 10.6l-.8 1-.4-.4-.3-.4-.3-.3-.3-.3-.4-.3-.3-.2-.3-.4-.3-.3-.2-.2-.3-.4-.3-.3-.3-.2-.4-.4-.3-.3-.2-.2-.2-.4-.2-.3-.3-.3-.2-.3v-.4l-.4-.3-.2-.4-.2-.4-.2-.4-.2-.4v-.4l-.3-.3-.2-.4v-.3l-.3-.3v-.4l-.3-.4 1.2-.4v.7l.3.3v.3l.3.4v.3l.3.4v.3l.3.4.2.3.2.3.2.4v.3l.3.3.2.4.3.3.2.3.3.4.2.3.3.3.3.3.4.4.2.3.3.3.2.3.3.3.4.2.2.3.3.3.4.4.2.3.4.3zm-.8 1l.8-1v.2h.2v.7h-.4v.2h-.7zm-9.5-4.6c.8 0 1.3.7 1.2 1.5s-.8 1.3-1.5 1.2c-.8-.2-1.3-.8-1.2-1.6s.8-1.3 1.5-1.2zm-45.9 38.4h.2v-.2h.4v.2h.2v.2l.2.2v.4h-.2l-.8-.8zm-22.7 56l.2-1V416l.4-1.5.3-1.5.4-1.7.6-1.8.5-2 .7-2 .6-2 .6-2 .6-2.2.8-2.2.7-2.2 1-2 .7-2.3 1-2.3.7-2.2 1-2.2.8-2 1-2.2.8-2 1-2 .8-2 1-1.7.8-1.5 1-1.6.7-1.5 1-1.3.7-1.2.8-1 .8-.8.8-.6.7 1-.6.5-.7.8-.7 1-.8 1-1 1.3-.7 1.5-1 1.5-.7 1.7-1 1.7-.8 2-1 1.8-.8 2-1 2-.8 2.3-1 2-.7 2.3-1 2.3-.7 2.3-.8 2.2-.7 2.2-.8 2.2-.6 2-.6 2-.6 2.2-.6 2-.5 1.8-.4 1.8-.4 1.6-.5 1.6-.2 1.4-.2 1.3v1H336zm5.6 80.5l-.7-2-.7-2-.7-2.2-.6-2.2-.6-2.2-.4-2.4-.4-2.3-.5-2.4-.4-2.5-.3-2.4-.3-2.5-.3-2.7-.2-2.6-.3-2.6-.2-2.5-.2-2.6v-3l-.2-2.7v-18.5l.3-2.7v-2.5l.2-2.6v-2.7l.3-2.6.2-2.5.2-2.5h1.2l-.3 2.6-.2 2.5-.2 2.6-.2 2.6v2.6l-.2 2.6v2.6l-.2 2.7v18.8l.2 2.6v2.6l.3 2.6.3 2.6.3 2.6.3 2.5.2 2.5.3 2.5.4 2.4.3 2.5.5 2.3.5 2.3.5 2.3.6 2.2.6 2 .7 2.2.7 2-1 .4zm1-.4v.8h-.8v-.2l1-.6z" fill="#21231e"/> - </g> - <use width="1350" height="900" transform="matrix(-1 0 0 1 964.297 0)" xlink:href="#e"/> - <path d="M473 398.4h-.2v.5h-.2v.8l.2.7v1.6l.2.8.2.8v.7l.3.8v.8l.3.7.2.8.3.7.2.7.2.7.3.7.3.8.3.7.3.7.2.7.3.6.4.6.2.7.4.5.4.7.4.7.4.5.5.6.4.8.5.6.4.6.5.6.6.6.2.2h.8v-.2l.6-.6.5-.6.5-.6.4-.6.5-.7.5-.5.4-.6.3-.8.4-.6.3-.7.4-.8.4-.6.3-.7.4-.8.3-.7.3-.7.3-.7.3-.6.2-.7.3-.7.3-.7.2-.8v-.7l.3-.7.2-.7v-.7l.3-.8v-1.4l.2-.8v-2.1h-1v.4l-.2 1v1.4l-.2.7v.7l-.2.7-.2.7v.8l-.3.7-.2.7-.2.7v.6l-.3.7-.3.7-.2.7-.3.7-.4.6-.2.7-.4.7-.3.6-.3.7-.4.6-.4.7-.3.6-.4.6-.5.6-.4.6-.4.7-.4.7-.4.6-.5.6h-.2l-.5-.7-.4-.6-.4-.6-.4-.6-.4-.6-.4-.6-.4-.6-.4-.6-.3-.7-.4-.6-.4-.7-.3-.6-.3-.7-.4-.7-.2-.6-.3-.7-.2-.7-.2-.7-.2-.7-.2-.7-.2-.8-.2-.7-.2-.7v-.7l-.3-.6v-.8l-.2-.7v-2.3l-.2-.8v-.4h-.2v-.2h-.5z" fill="#21231e"/> - <path d="M549.2 422v108.6c0 19.4-7.5 37-19.7 49.8-12 12.8-29 20.7-47.3 20.7-18.5 0-35.3-7.8-47.4-20.6-12-12.8-19.7-30.4-19.7-49.8V422h134.2z" fill="#c6363c"/> - <use width="1350" height="900" transform="matrix(-1 0 0 1 964.297 -90.088)" xlink:href="#f"/> - <path d="M549.2 488.6v28h-53v83a63.8 63.8 0 0 1-14 1.5c-4.8 0-9.5-.4-14-1.5v-83h-53v-28h53V422h28v66.6h53z" fill="#fff" stroke="#21231e"/> - <use width="1350" height="900" transform="translate(0 -90.088)" xlink:href="#f"/> - <path d="M459 567.3V528c-8.4-2.3-29.3-10.6-30.3 7.6-.5 8.4 10.4 14 13.3 6.5 1.4-3.4 0-6-2-6.7-2.4-.8-4.6 1-4 3.6-8.8-4.7 8-14.6 15.5-1.7 2.2 3.7-3.7 7.6-3.7 10.4 0 2.7 5.8 7 3.7 10.3-7.7 12.8-24.3 3-15.5-1.6-.6 2.7 1.6 4.5 4 3.6 2-.8 3.4-3.3 2-6.8-3-7.5-13.8-2-13.3 6.5 1 18.2 22 10 30.4 7.6z" id="f" fill="#fff" stroke="#21231e"/> - <use width="1350" height="900" transform="matrix(-1 0 0 1 964.297 0)" xlink:href="#f"/> - <path d="M414 421v113.3l.2 1.7v2l.4 1.7.2 1.8.3 1.7.4 1.8.3 1.8.4 1.7.6 1.7.5 1.7.6 1.5.6 1.7.5 1.6.7 1.6.7 1.6.7 1.6.8 1.6.8 1.5.8 1.5 1 1.5.8 1.5 1 1.4.8 1.4 1 1.4 1 1.4 1 1.3 1 1.5 1.2 1.2 1 1.3 1.2 1.2 1.2 1.2 1.2 1.2 1.2 1 1.3 1.3 1 1 1.4 1 1.3 1 1.4 1 1.5 1 1.4 1 1.3.8 1.4.8 1.5.8 1.4.8 1.6.7 1.5.6 1.5.7 1.5.6 1.6.5 1.6.5 1.5.5 1.6.5 1.8.4 1.6.4 1.7.4 1.8.2 1.7.3 1.7.2h1.7l1.6.2h8.9l1.7-.3 1.8-.3 1.7-.3 1.7-.2 1.7-.4 1.5-.4 1.7-.4 1.6-.5 1.6-.5 1.6-.5 1.5-.6 1.6-.7 1.6-.7 1.6-.7 1.5-.8 1.4-.8 1.6-.8 1.4-1 1.5-.7 1.4-1 1.2-1 1.4-1 1.3-1 1.2-1 1.3-1 1.2-1.3 1.2-1 1-1.3 1.3-1.2 1.2-1.2 1-1.3 1.2-1.2 1-1.4 1-1.2 1-1.4 1-1.4 1-1.4 1-1.4.7-1.5 1-1.5.7-1.5.8-1.5.8-1.6.7-1.6.6-1.6.6-1.6.6-1.6.5-1.7.5-1.6.5-1.8.4-1.7.6-1.7.3-1.8.2-1.8.3-1.7.3-1.8v-.9l.3-2 .2-1.7V421H414zm2.3 2.2H548V536l-.3 1.6-.2 1.8-.2 1.7-.3 1.8-.3 1.7-.4 1.7-.3 1.7-.5 1.5-.4 1.7-.4 1.6-.5 1.6-.5 1.6-.6 1.5-.8 1.6-.7 1.6-.7 1.5-.7 1.6-.7 1.4-.8 1.5-.8 1.4-1 1.3-.8 1.4-1 1.3-1 1.3-1 1.3-1 1.3-1 1.2-1.2 1.2-1 1.2-1.2 1-1.2 1.3-1.2 1-1.2 1-1.2 1-1.3 1-1.2 1-1.4 1-1.4 1-1.3.8-1.4 1-1.5.7-1.4.8-1.3.7-1.5.8-1.5.6-1.4.7-1.5.7-1.6.5-1.5.6-1.5.5-1.6.4-1.6.4-1.6.5-1.6.3-1.6.3-1.7.4H489l-1.8.3h-1.7l-1.6.2h-3.6l-1.6-.2H477l-1.6-.3h-1.6l-1.7-.4-1.5-.2-1.6-.3-1.7-.4-1.6-.3-1.6-.4-1.4-.5-1.6-.6-1.5-.5-1.5-.6-1.5-.6-1.4-.6-1.4-.8-1.4-.7-1.4-.8-1.4-.8-1.4-1-1.3-.7-1.4-1-1.3-1-1.2-1-1.3-1-1.2-1-1.2-1-1-1-1.3-1.3-1-1-1.2-1.3-1-1.2-1-1.3-1.2-1.4-1-1.3-1-1.3-1-1.3-.8-1.4-.8-1.4-1-1.5-.7-1.5-.8-1.4-.7-1.5-.8-1.4-.6-1.5-.6-1.5-.6-1.5-.5-1.6-.6-1.6-.5-1.6-.5-1.7-.4-1.6-.4-1.8-.4-1.7-.3-1.7-.3-1.7-.2-1.6-.2-1.8-.2-1.7v-5.4z" fill="#21231e"/> - </g> -</svg> diff --git a/img/flags/4x3/ru.svg b/img/flags/4x3/ru.svg deleted file mode 100644 index f7bb982..0000000 --- a/img/flags/4x3/ru.svg +++ /dev/null @@ -1,7 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" height="480" width="640" viewBox="0 0 640 480"> - <g fill-rule="evenodd" stroke-width="1pt"> - <path fill="#fff" d="M0 0h640v480H0z"/> - <path fill="#0039a6" d="M0 160.003h640V480H0z"/> - <path fill="#d52b1e" d="M0 319.997h640V480H0z"/> - </g> -</svg> diff --git a/img/flags/4x3/rw.svg b/img/flags/4x3/rw.svg deleted file mode 100644 index 872873d..0000000 --- a/img/flags/4x3/rw.svg +++ /dev/null @@ -1,13 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" height="480" width="640" viewBox="0 0 640 480"> - <path fill="#20603d" d="M0 0h640v480H0z"/> - <path fill="#fad201" d="M0 0h640v360H0z"/> - <path fill="#00a1de" d="M0 0h640v240H0z"/> - <g transform="translate(511 125.4) scale(.66667)"> - <g id="b"> - <path id="a" d="M116.1 0L35.692 4.7l76.452 25.35L33.26 13.776l67.286 44.273L28.56 21.915l53.535 60.18-60.18-53.534 36.135 71.986L13.777 33.26l16.272 78.884L4.7 35.692 0 116.1-1-1z" fill="#e5be01"/> - <use height="100%" width="100%" xlink:href="#a" transform="scale(1 -1)"/> - </g> - <use height="100%" width="100%" xlink:href="#b" transform="scale(-1 1)"/> - <circle r="34.3" fill="#e5be01" stroke="#00a1de" stroke-width="3.4"/> - </g> -</svg> diff --git a/img/flags/4x3/sa.svg b/img/flags/4x3/sa.svg deleted file mode 100644 index 28518e8..0000000 --- a/img/flags/4x3/sa.svg +++ /dev/null @@ -1,26 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" height="480" width="640" viewBox="0 0 640 480"> - <defs> - <clipPath id="a"> - <path fill-opacity=".67" d="M-85.333 0h682.67v512h-682.67z"/> - </clipPath> - </defs> - <g clip-path="url(#a)" fill-rule="evenodd" transform="translate(80) scale(.9375)"> - <path fill="#199d00" d="M-128 0h768v512h-768z"/> - <path d="M65.54 145.13c-.887 11.961-1.95 33.011 8.213 35.17 12.293 1.182 5.514-20.806 9.964-24.793.841-1.97 2.392-1.98 2.52.505v18.65c-.112 6.066 3.875 7.852 6.972 9.105 3.224-.249 5.376-.141 6.639 2.995l1.512 32.261s7.476 2.14 7.832-18.146c.357-11.91-2.38-21.88-.775-24.198.056-2.277 2.964-2.413 4.98-1.303 3.214 2.266 4.645 5.065 9.639 3.946 7.598-2.094 12.166-5.79 12.278-11.624-.444-5.545-1.066-11.09-3.468-16.635.335-1.009-1.467-3.621-1.133-4.63 1.366 2.139 3.444 1.961 3.916 0-1.293-4.261-3.3-8.344-6.553-10.112-2.688-2.368-6.623-1.884-8.064 3.056-.667 5.692 2.052 12.455 6.197 17.968.88 2.154 2.117 5.733 1.573 8.956-2.205 1.259-4.411.734-6.259-1.217 0 0-6.048-4.536-6.048-5.544 1.605-10.276.356-11.441-.533-14.293-.622-3.937-2.49-5.199-4.003-7.888-1.513-1.604-3.56-1.604-4.538 0-2.674 4.635-1.427 14.583.504 19.04 1.396 4.098 3.528 6.67 2.52 6.67-.829 2.316-2.544 1.781-3.792-.892-1.782-5.525-2.139-13.769-2.139-17.48-.534-4.603-1.122-14.42-4.151-16.914-1.848-2.516-4.587-1.289-5.544 1.008-.199 4.568-.22 9.135.295 13.345 2.077 7.383 2.73 13.876 3.738 21.437.28 10.128-5.856 4.394-5.576-.627 1.415-6.522 1.048-16.788-.21-19.39-.996-2.602-2.173-3.244-4.597-2.816-1.925-.117-6.878 5.291-8.269 14.262 0 0-1.186 4.618-1.691 8.718-.68 4.633-3.73 7.903-5.87-.652-1.848-6.217-2.984-21.524-6.08-17.939z" fill="#fff"/> - <path d="M98.944 194.21c-10.848 5.303-21.339 10.25-32.01 15.375.39-7.256 15.219-20.354 25.331-20.538 6.582.184 4.928 2.55 6.679 5.164z" fill="#fff"/> - <path d="M93.352 204.24c-16.87 43.487 39.505 49.546 45.805 1.781.593-1.96 2.97-3.92 3.386-.713-1.307 43.248-43.606 46.22-50.794 32.614-1.781-3.207-2.317-10.336-2.495-14.614-1.07-8.494-5.524-5.227-6.237 3.208-.714 4.693-.535 6.002-.535 10.516 2.257 34.159 56.736 19.486 65.587-8.733 4.693-15.625-.773-27.149 1.781-27.09 5.407 5.822 12.95.772 14.614-1.248.714-1.01 2.497-1.662 3.744-.356 4.217 3.032 11.645 1.603 13.189-3.743.892-5.228 1.605-10.634 1.783-16.217-3.447 1.07-6 1.781-6.238 3.208l-.713 4.633c-.296 1.486-3.269 1.544-3.386-.357-1.307-5.941-6.713-6.713-9.981 2.496-2.199 1.782-6.178 2.139-6.595-.534.534-6.179-1.961-7.011-6.95-4.1-1.605-12.238-3.208-23.94-4.813-36.179 2.08-.06 3.982 1.484 5.884-.892-2.082-6.474-6.477-19.723-8.914-20.674-1.188-1.425-2.2-.534-3.742-.178-2.614.832-5.05 3.09-4.279 7.486 3.09 18.772 5.11 33.09 8.2 51.863.474 2.198-1.367 5.107-3.743 4.81-4.04-2.732-5.047-8.256-11.94-8.02-4.991.06-10.696 5.466-11.407 10.696-.832 4.156-1.13 8.67-.002 12.296 3.507 4.217 7.725 3.803 11.408 2.852 3.03-1.247 5.524-4.277 6.594-3.565.714.892.177 10.87-14.259 18.535-8.732 3.92-15.684 4.813-19.425-2.317-2.317-4.456.178-21.387-5.527-17.465z" fill="#fff"/> - <path d="M164.91 160.03c3.386-1.248 19.429-19.604 19.429-19.604-.833-.713-1.576-1.248-2.408-1.961-.892-.772-.802-1.544 0-2.317 3.98-2.316 2.703-7.396.624-9.712-3.446-1.546-6.446-1.04-8.645.088-2.792 2.674-3.444 6.95-1.245 9.624 2.14 1.01 4.277 3.179 2.85 4.367-6.563 7.01-24.535 19.1-22.455 19.515.444.594 11.495.564 11.85 0zM68.036 225c-6.016 9.584-6.54 23.903-3.22 28.172 1.764 2.017 4.662 2.9 6.806 2.269 3.78-1.64 5.434-9.298 4.537-12.1-1.262-1.974-2.255-2.287-3.515-.607-2.66 5.4-3.764 1.695-3.997-1.323-.408-5.723.131-10.994.752-15.168.662-4.278-.01-2.97-1.363-1.243zM325.12 209.65c-5.817-12.521-13.87-24.894-16.432-29.647-2.562-4.755-21.905-32.827-24.752-35.984-6.284-7.467 10.204 3.11-2.086-11.716-4.686-4.02-4.958-4.265-8.847-7.545-1.962-1.392-6.752-3.935-7.6.28-.427 3.717-.197 5.732.427 8.827.48 2.063 3.485 5.518 4.963 7.52 19.625 26.38 37.027 53.02 53.808 86.515 2.65-1.26 2.07-16.155.52-18.25z" fill="#fff"/> - <path d="M299.59 251.54c-1.144 1.284 2.824 6.776 7.98 6.77 8.624-1 16.215-5.844 23.244-18.595 1.88-2.974 5.184-9.334 5.28-14.267.658-28.925-1.447-51.433-5.781-72.34-.278-2.036-.109-4.43.236-5.04.559-.667 2.452.003 3.457-1.644 1.474-1.505-3.914-13.97-6.986-18.771-1.09-2.144-1.47-3.576-3.276.252-1.899 3.11-3.174 8.538-3.025 13.61 4.114 28.483 5.378 53.399 8.066 81.882.22 2.754-.186 6.757-2.017 8.353-6.772 7.072-16.548 15.777-27.178 19.79zM416.08 251.39c-6.189 3.577-6.196 7.692-1.192 7.841 8.623-1.001 18.813-1.717 25.84-12.329 1.881-2.974 4.115-11.015 4.212-15.948.657-28.925-.378-50.515-4.712-71.42-.277-2.037-1.178-6.724-.834-7.335.559-1.432 3.37.156 4.375-1.492 1.473-1.504-7.278-12.747-10.35-17.548-1.09-2.143-1.47-3.575-3.275.252-1.9 3.111-2.563 8.692-1.803 13.611 4.573 30.928 7.977 54.163 8.679 81.575-.394 2.602-.492 4.005-1.712 7.283-2.699 3.46-5.689 7.785-8.493 9.876-2.803 2.09-8.785 4.086-10.735 5.635z" fill="#fff"/> - <path d="M420.72 223.66c-.071-7.233.102-13.479-.136-18.873-.238-5.395-1.191-9.788-3.058-13.617-1.767-4.106-.67-7.405-1.5-11.779-.829-4.372-.625-10.92-1.878-16.108-.343-2.026-1.396-8.515-1.07-9.137.51-1.448 2.456.045 3.406-1.633 1.423-1.552-4.937-18.008-8.163-22.707-1.16-2.107-3.267-1.385-5.864 2.04-2.41 2.255-1.516 7.396-.596 12.286 6.188 32.291 10.803 61.518 9.796 92.257-.309 2.614 9.127-7.795 9.063-12.729zM375 183.61c-3.892-.071-12.044-7.574-14.423-11.97-.899-2.521-.322-4.981.47-6.422 1.441-.937 3.659-1.99 5.316-.98 0 0 1.719 2.404 1.386 2.71 2.125 1.018 3.027.432 3.243-.432.145-1.514-.628-2.416-.637-4.083.901-4.52 6.068-5.223 8.014-2.34 1.424 1.757 1.946 5.492 2.162 8.013-.023 1.288-2.109-.223-3.293.087-1.186.31-1.471 1.678-1.563 2.915-.215 3.278-.603 8.538-.675 12.501zM303.17 231.68c1.072-9.828-.396-27.331-.494-33.13-.394-13.7-2.631-40.162-3.696-44.583-1.2-8.333 3.427.914 2.786-3.93-1.5-8.321-6.116-13.962-11.542-21.584-1.75-2.48-1.69-2.985-4.391.608-2.99 6.78-.41 11.445.363 16.726 3.913 17.206 6.196 33.037 7.259 48.687 1.063 15.65 1.39 32.572.419 49.055 2.932.115 7.647-4.744 9.296-11.85z" fill="#fff"/> - <path d="M433.97 215.94c-6.863-11.515-17.219-23.987-19.986-28.624-2.766-4.638-26.166-34.83-29.148-37.86-8.56-8.993 3.926-1.464-1.639-8.41-4.707-5.168-6.08-6.79-10.108-9.898-2.02-1.305-3.244-3.798-3.908.45-.264 3.732-.54 8.05-.289 11.195-.014 1.749 1.807 5.034 3.37 6.97 20.755 25.5 43.393 51.537 61.617 84.27 2.593-1.375 1.731-16.067.091-18.093z" fill="#fff"/> - <path d="M122.59 194.69c-.494.866-1.594 1.988-1.225 3.149.77 1.044 1.386 1.256 2.67 1.313 1.114 0 2.67.263 3.005-.394.6-.66 1.055-2.009.556-3.281-1.16-2.9-4.4-1.82-5.006-.787z" fill="#1ba400"/> - <path d="M354.17 362.54c9.178.338 15.185.419 23.348 1.39 0 0 7.04-.695 9.553-1.075 10.626-1.014 11.096 15.176 11.096 15.176-.116 9.495-3.781 9.992-8.46 10.995-2.673.34-4.078-1.601-5.483-3.668-1.763.738-4.16.844-7.064.441-3.825-.24-7.65-.224-11.474-.463-4.063-.358-6.224.423-10.288.065-.837 1.315-1.925 3.136-4.41 2.55-2.068-.229-4.517-6.033-3.796-10.446 1.493-3.164 1.083-2.146.927-3.537-37.525-.956-75.41-2.629-112.22-2.15-28.8.119-57.244 1.314-85.687 2.51-15.177-.24-26.769-2.63-34.776-14.342.717 0 38.72 2.151 49.835 1.434 20.555-.24 39.317-1.912 60.231-2.51 41.23.717 82.103.718 123.33 3.585-3.944-2.698-4.085-9.071 1.985-10.629.516-.355.782 3.169 1.69 3.103 4.857-.364 2.727 6.214 1.659 7.57zM188.64 135.28c-6.248 17.859 3.58 37.394 10.394 35.492 4.916 2.035 8.046-7.317 10.059-17.563 1.377-2.876 2.417-3.182 3.124-1.704-.181 13.625.979 16.643 4.482 20.779 7.814 6.029 14.278.77 14.785.262l6.084-6.084c1.354-1.425 3.157-1.508 5.07-.253 1.859 1.69 1.598 4.608 5.577 6.632 3.35 1.34 10.51.31 12.17-2.576 2.232-3.826 2.768-5.14 3.802-6.591 1.593-2.121 4.31-1.178 4.31-.508-.254 1.183-1.848 2.367-.76 4.497 1.894 1.421 2.332.507 3.453.191 3.964-1.895 6.94-10.518 6.94-10.518.176-3.208-1.622-2.943-2.788-2.282-1.521.93-1.62 1.227-3.142 2.157-1.938.288-5.698 1.573-7.557-1.305-1.898-3.461-1.924-8.29-3.375-11.78 0-.254-2.518-5.498-.174-5.834 1.182.22 3.706.888 4.107-1.237 1.241-2.072-2.656-7.938-5.323-10.901-2.315-2.542-5.523-2.848-8.62-.253-2.168 1.995-1.856 4.224-2.282 6.337-.552 2.426-.434 5.411 2.029 8.62 2.164 4.267 6.113 9.763 4.816 17.491 0 0-2.306 3.653-6.325 3.175-1.676-.365-4.392-1.076-5.843-11.794-1.099-8.112.259-19.463-3.184-24.784-1.244-3.213-2.152-6.316-5.183-.82-.814 2.158-4.309 5.433-1.774 12.169 2.074 4.27 2.918 11.22 1.977 18.954-1.437 2.197-1.756 2.941-3.64 5.139-2.646 2.845-5.518 2.119-7.717 1.056-2.055-1.385-3.664-2.101-4.602-6.501.17-7.013.56-18.494-.722-20.929-1.89-3.772-5.006-2.408-6.338-1.268-6.397 5.849-9.557 15.718-11.489 23.577-1.774 5.727-3.662 4.086-4.99 1.775-3.23-3.028-3.45-26.71-7.351-22.816z" fill="#fff"/> - <path d="M207.45 174.1c2.837-2.01 1.511-3.414 5.754.828 5.312 9.082 8.727 20.845 9.239 31.266-.224 2.568 1.586 4.193 2.414 3.635.492-6.029 15.153-14.429 28.596-15.657 2.056-.447 1.056-4.387 1.391-6.396-.806-7.463 4.194-14.258 11.202-14.8 9.538 1.41 12.713 6.502 12.874 14.275-1.03 14.922-16.575 17.452-25.309 18.642-1.34.507-1.898 1.125 0 1.856l36.595.166 1.867 1.078c.224.873-.533.145-1.978 2.524-1.444 2.379-3.575 7.865-3.685 11.528-10.903 3.506-22.18 5.042-33.642 6.428-3.982 2.014-5.956 4.697-5.138 7.717 1.34 3.35 10.16 6.696 10.16 6.855 1.675 1.05 3.657 3.502-.474 8.525-17.85-.785-31.683-8.382-36.472-19.104-1.443-1.119-2.997-.006-3.993 1.443-6.969 8.984-13.826 17.074-25.708 21.369-7.086 1.77-14.339-1.087-17.765-5.727-2.293-2.641-2.206-5.557-3.048-6.189-3.83 1.694-36.785 15.697-32.608 9.174 8.02-8.585 21.906-14.89 34.169-23.363.885-2.839 2.494-12.442 7.337-15.57.28.023-.767 5.64-.662 8.008.055 1.944-.143 2.706.283 2.206.827-.528 15.707-12.22 16.857-15.805 1.45-2.056.435-7.263.435-7.421-2.79-7.192-6.705-7.803-8.156-11.376-1.306-4.747-.715-10.165 1.998-11.675 2.41-2.187 5.263-1.917 7.895.473 3.006 2.692 5.675 7.953 6.447 11.872-.516 1.55-3.933-1.03-5.118-.26 2.098 2.172 3.077 4.678 3.835 7.744 1.938 8.209 1.347 11.4-.604 16.708-6.606 13.89-15.049 18.035-22.436 23.181-.197.07-.328 3.525 2.45 5.393.958 1.006 4.811 1.522 9.342.07 8.755-4.774 17.843-13.569 22.355-23.367 1.31-7.411-.506-15.27-2.434-22.124-2.903-6.698-6.322-16.262-6.322-16.42-.113-4.177.227-5.626 2.059-7.71zM111.64 135.47c4.212 2.009 12.131 1.154 11.796-5.638 0-.6-.153-2.632-.213-3.183-.86-2.002-3.205-1.507-3.737.56-.167.677.298 1.78-.315 2.12-.352.355-1.698.146-1.642-1.73 0-.598-.44-1.24-.706-1.62-.266-.174-.435-.222-.917-.222-.588.023-.578.176-.9.67-.137.502-.325.993-.325 1.563-.074.668-.326.906-.817 1.005-.549 0-.425.06-.87-.223-.264-.29-.594-.4-.594-.893 0-.511-.116-1.338-.27-1.675-.233-.308-.608-.45-1.03-.559-2.3.008-2.46 2.632-2.327 3.628-.173.188-.27 4.895 2.867 6.197z" fill="#fff"/> - <path d="M235.11 187.73c4.212 2.009 14.238.853 11.796-5.638 0-.6-.153-2.633-.213-3.183-.86-2.002-3.205-1.507-3.737.56-.167.677.298 1.78-.315 2.12-.352.355-1.698.146-1.642-1.73 0-.598-.44-1.24-.706-1.62-.266-.174-.435-.222-.917-.222-.588.023-.578.176-.9.67-.137.502-.325.993-.325 1.563-.074.668-.326.906-.817 1.005-.549 0-.425.06-.87-.223-.264-.29-.594-.4-.594-.893 0-.511-.116-1.338-.27-1.675-.233-.308-.608-.45-1.03-.559-2.3.008-2.46 2.632-2.327 3.628-.173.188-.27 4.895 2.867 6.197zM307.11 166.1c4.212 2.009 12.131 1.154 11.796-5.638 0-.6-.153-2.632-.213-3.183-.86-2.002-3.205-1.507-3.737.56-.167.677.298 1.78-.315 2.12-.352.355-1.698.146-1.642-1.73 0-.598-.44-1.24-.706-1.62-.266-.174-.435-.222-.917-.222-.588.023-.578.176-.9.67-.137.502-.326.993-.326 1.563-.073.668-.325.906-.816 1.005-.549 0-.425.06-.87-.223-.264-.29-.595-.4-.595-.893 0-.511-.115-1.338-.269-1.675-.233-.308-.608-.45-1.03-.559-2.3.008-2.46 2.632-2.327 3.628-.173.188-.27 4.895 2.867 6.197zM344.4 220.43c-7.34 8.273-4.104 21.955-2.446 24.903 2.42 4.842 4.369 7.947 9.078 10.342 4.29 3.157 7.632 1.184 9.474-1.027 4.317-4.473 4.368-15.894 6.394-18.157 1.422-4.157 5-3.447 6.737-1.605 1.683 2.42 3.666 3.98 6.14 5.298 4.025 3.552 8.833 4.2 13.57.964 3.236-1.816 5.34-4.162 7.235-8.819 2.106-5.63.932-31.648.511-47.068-.162-1.21-4.184-21.205-4.184-21.428 0-.224-.532-10.205-.974-12.583-.078-.965-.317-1.242.694-1.12 1.073.903 1.22.96 1.89 1.257 1.082.198 2.051-1.645 1.398-3.34l-10.048-18.533c-.807-.794-1.848-1.666-3.127.224-1.222 1.071-2.523 3.01-2.483 5.503.297 4.392 1.07 8.86 1.366 13.253l4.02 22.552c1.266 16.076 1.583 29.233 2.848 45.309-.177 6.807-2.293 12.742-4.278 13.598 0 0-3.02 1.75-5.045-.183-1.473-.591-7.368-9.825-7.368-9.825-3.014-2.763-5.001-1.973-7.146 0-5.914 5.711-8.59 16.394-12.609 23.763-1.036 1.645-3.965 3.052-7.21-.12-8.242-11.258-3.411-27.277-4.437-23.158zM309 126.67c3.773 1.58 6.435 9.223 5.567 12.955-.751 4.617-2.752 9.603-4.191 8.954-1.564-.58 1.066-4.59-.437-8.796-.835-2.738-5.984-7.741-5.442-9.216-1.063-3.09 2.189-4.442 4.503-3.897z" fill="#fff"/> - <path d="M356.55 224.96c.794-9.179-.546-14.776-.784-20.171s-6.102-46.559-7.291-50.641c-1.435-7.718 5.7-1.035 4.92-5.524-2.468-5.66-8.611-13.9-10.54-18.816-1.16-2.106-.673-3.98-3.271-.554-2.409 7.876-3.245 14.314-2.325 19.205 6.187 32.29 12.533 59.14 11.526 89.879 2.934.02 6.316-6.714 7.765-13.377zM421.02 139.68c3.44 1.71 5.455 11.289 5.075 14.026-.684 4.999-2.51 10.397-3.82 9.694-1.426-.628.285-7.413-.4-9.523-.76-2.964-5.454-8.38-4.96-9.977-.97-3.345 1.995-4.809 4.105-4.22zM165.35 207.6c3.29 1.256 5.22 8.295 4.856 10.307-.656 3.672-2.403 7.639-3.656 7.123-1.364-.462.274-5.448-.381-6.998-.278-3.76-4.845-5.707-4.75-7.331-.852-2.986 1.911-3.535 3.931-3.1z" fill="#fff"/> - <path d="M244.86 218.17c4.247.27 6.37 3.602 2.391 5-3.924 1.343-7.695 2.393-7.713 8.064 1.452 7.902-1.99 5.19-4.044 4.117-2.419-1.737-9.208-5.92-10.176-14.95-.145-2.155 1.535-3.969 4.24-3.956 4.075 1.107 10.087 1.188 15.301 1.725z" fill="#1b9d00"/> - <path d="M77.399 124.39c4.855 1.464 5.142 8.6 4.784 10.686-.647 3.808-2.367 7.92-3.602 7.384-1.344-.478-.053-5.647-.698-7.255-.72-2.258-4.822-6.384-4.357-7.6-.913-2.549 1.883-3.665 3.873-3.215zM173.28 158.03c-3.725 2.015-5.17 8.02-2.85 11.518 2.166 3.08 5.587 1.938 6.043 1.938 3.65.457 5.815-6.842 5.815-6.842s.115-2.052-4.219 1.826c-1.824.342-2.052-.343-2.508-1.37-.38-1.9-.304-3.8.57-5.701.646-1.824-.761-2.623-2.851-1.369zM201.22 121.63c-1.872 1.255-5.598 5.115-5.712 9.563-.113 2.509-.58 2.501 1.062 4.098 1.187 1.712 2.384 1.558 4.78.303 1.376-1.014 1.841-1.687 2.305-3.387.57-2.85-3.014 1.352-3.47-1.82-.798-2.946 1.504-4.152 3.67-7.002.072-1.953.03-3.336-2.635-1.755zM223.73 125.63c-.807 1.782-1.774 11.093-1.613 11.093-.644 2.774 2.903 3.961 4.516.395 2.419-6.537 2.419-9.31 2.58-12.084-.753-4.224-3.601-4.092-5.483.596zM365.65 197.85c.484-.484 19.998-14.353 19.998-14.353 1.989-.699 1.558 7.15.645 7.096.376 1.558-19.245 14.89-20.644 14.353-.967.699-1.935-5.375 0-7.096zM383.44 197.73c3.44 1.71 4.81 11.773 4.43 14.51.122 5.322-3.315 9.59-4.627 8.888-1.426-.628.125-6.607-.56-8.717-.76-2.964-3.681-8.542-3.188-10.139-.969-3.345 1.835-5.131 3.945-4.542zM267.37 241.07c1.357-1.984 5.55-4.839 5.645-4.839 1.934-.968 3.824.759 3.71.645.321 1.936-1.225 3.737-.74 6.318.422 1.04.732 2.195 2.638 1.755 3.099-2.438 5.97-2.595 9.068-2.75 2.374.143 2.468 4.163.967 4.193-5.721 1.243-8.285 2.775-12.37 4.334-1.936 1.129-3.596-.303-3.596-.464s-1.132-1.098-.342-3.662c.14-2.056-.687-3.183-2.4-2.95-1.29.698-2.426 1.16-3.071-.323-.254-1.095-.337-1.628.491-2.257zM403.97 246.49c.836 1.064 1.377 2.049-.067 3.797-1.369 1.254-2.333 1.945-3.701 3.199-.646 1.102-1.06 2.774.917 3.307 3.65 1.026 12.088-4.448 12.088-4.562 1.369-1.026.913-2.965.798-2.965-.798-.912-2.596-.37-3.805-.518-.576 0-2.465-.286-1.566-1.958.75-1.04 1.019-1.677 1.528-2.959.57-1.254.08-2.09-1.973-2.775-2.09-.38-2.926-.19-5.245 0-1.254.266-1.682.827-1.91 2.347.09 2.306 1.492 2.175 2.936 3.087z" fill="#fff"/> - <path d="M268.117 189.743c-.535.925-2.344.88-4.04-.1s-2.638-2.527-2.103-3.453 2.344-.88 4.04.102 2.638 2.526 2.103 3.451zM179.045 136.149c-1.014.248-2.339-.656-2.96-2.019s-.301-2.669.712-2.917 2.339.655 2.96 2.018.302 2.67-.712 2.918z" fill="#259f00"/> - <path d="M355.24 374.97c9.351.456 18.137.106 27.488.563 1.694 1.44.484 4.975-.645 4.722-3.04-.077-4.792-.152-7.833-.229-.104-2.978-7.706-2.49-7.487.095-4.105.494-7.807-.143-11.912-.295-1.214-1.51-1.058-4.232.39-4.856z" fill="#209000"/> - </g> -</svg> diff --git a/img/flags/4x3/sb.svg b/img/flags/4x3/sb.svg deleted file mode 100644 index 27a9ed0..0000000 --- a/img/flags/4x3/sb.svg +++ /dev/null @@ -1,13 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" height="480" width="640" viewBox="0 0 640 480"> - <defs> - <clipPath id="a"> - <path fill-opacity=".67" d="M0 0h682.67v512H0z"/> - </clipPath> - </defs> - <g fill-rule="evenodd" clip-path="url(#a)" transform="scale(.9375)" stroke-width="1pt"> - <path d="M0 507.17L987.43 0H0v507.17z" fill="#0000d6"/> - <path d="M1024 0L27.17 512H1024V0z" fill="#006000"/> - <path d="M1024 0h-54.858L.002 485.36V512h54.857l969.14-484.4V.004z" fill="#fc0"/> - <path fill="#fff" d="M71.397 9.124l11.857 34.442 38.47-.026-31.143 21.254 11.916 34.426-31.105-21.305-31.106 21.3 11.922-34.421L21.07 43.53l38.47.036zM262.54 9.124l11.856 34.442 38.47-.026-31.143 21.254 11.916 34.426-31.105-21.305-31.106 21.3 11.922-34.421-31.138-21.264 38.47.036zM262.54 153.603l11.856 34.442 38.47-.026-31.143 21.254 11.916 34.426-31.105-21.305-31.106 21.3 11.922-34.421-31.138-21.264 38.47.036zM167.527 82.206l11.857 34.442 38.47-.026-31.143 21.254 11.916 34.426-31.105-21.305-31.106 21.3 11.922-34.421-31.138-21.264 38.47.036zM71.397 153.603l11.857 34.442 38.47-.026-31.143 21.254 11.916 34.426-31.105-21.305-31.106 21.3 11.922-34.421-31.138-21.264 38.47.036z"/> - </g> -</svg> diff --git a/img/flags/4x3/sc.svg b/img/flags/4x3/sc.svg deleted file mode 100644 index 43b4cdd..0000000 --- a/img/flags/4x3/sc.svg +++ /dev/null @@ -1,14 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" height="480" width="640" viewBox="0 0 640 480"> - <defs> - <clipPath id="a"> - <path fill-opacity=".67" d="M0 0h682.67v512H0z"/> - </clipPath> - </defs> - <g fill-rule="evenodd" clip-path="url(#a)" transform="scale(.9375)" stroke-width="1pt"> - <path fill="red" d="M0 0h992.13v512H0z"/> - <path d="M0 512l992.12-170.67V512H0z" fill="#090"/> - <path d="M0 512l992.12-341.33v170.67L0 512z" fill="#fff"/> - <path d="M0 512V0h330.71L0 512z" fill="#009"/> - <path d="M0 512L330.71 0h330.71L0 512z" fill="#ff0"/> - </g> -</svg> diff --git a/img/flags/4x3/sd.svg b/img/flags/4x3/sd.svg deleted file mode 100644 index bd2a4b4..0000000 --- a/img/flags/4x3/sd.svg +++ /dev/null @@ -1,13 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" height="480" width="640" viewBox="0 0 640 480"> - <defs> - <clipPath id="a"> - <path fill-opacity=".67" d="M0 0h682.67v512H0z"/> - </clipPath> - </defs> - <g fill-rule="evenodd" clip-path="url(#a)" transform="scale(.9375)" stroke-width="1pt"> - <path d="M0 341.32h1024V512H0z"/> - <path fill="#fff" d="M0 170.64h1024v170.68H0z"/> - <path fill="red" d="M0 0h1024.8v170.68H0z"/> - <path d="M0 0v512l341.32-256L0 0z" fill="#009a00"/> - </g> -</svg> diff --git a/img/flags/4x3/se.svg b/img/flags/4x3/se.svg deleted file mode 100644 index c8ed16e..0000000 --- a/img/flags/4x3/se.svg +++ /dev/null @@ -1,16 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" height="480" width="640" viewBox="0 0 640 480"> - <defs> - <clipPath id="a"> - <path fill-opacity=".67" d="M-53.421 0h682.67v512h-682.67z"/> - </clipPath> - </defs> - <g clip-path="url(#a)" transform="translate(50.082) scale(.9375)"> - <g fill-rule="evenodd" stroke-width="1pt"> - <path fill="#006aa7" d="M-121.103.302h256V205.1h-256zM-121.103 307.178h256v204.8h-256z"/> - <path fill="#fecc00" d="M-121.103 204.984h256v102.4h-256z"/> - <path fill="#fecc00" d="M133.843.01h102.4v511.997h-102.4z"/> - <path fill="#fecc00" d="M232.995 205.013h460.798v102.4H232.995z"/> - <path fill="#006aa7" d="M236.155 307.208h460.797v204.799H236.155zM236.155.302h460.797V205.1H236.155z"/> - </g> - </g> -</svg> diff --git a/img/flags/4x3/sg.svg b/img/flags/4x3/sg.svg deleted file mode 100644 index f2284a7..0000000 --- a/img/flags/4x3/sg.svg +++ /dev/null @@ -1,13 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" height="480" width="640" viewBox="0 0 640 480"> - <defs> - <clipPath id="a"> - <path fill-opacity=".67" d="M0 0h640v480H0z"/> - </clipPath> - </defs> - <g fill-rule="evenodd" clip-path="url(#a)"> - <path fill="#fff" d="M-20 0h720v480H-20z"/> - <path fill="#df0000" d="M-20 0h720v240H-20z"/> - <path d="M146.05 40.227c-33.243 7.622-57.944 32.237-64.927 65.701-9.488 45.469 20.124 89.99 65.687 99.488-46.031 13.125-93.59-13.332-106.594-58.932-12.996-45.6 13.46-93.16 59.063-106.162 16.007-4.565 30.745-4.594 46.773-.095z" fill="#fff"/> - <path fill="#fff" d="M132.98 109.953l4.894 15.119-12.932-9.23-12.87 9.317 4.783-15.144-12.833-9.354 15.876-.137 4.932-15.106 5.031 15.069 15.889.025zM150.539 162.012l4.894 15.119-12.932-9.23-12.87 9.317 4.783-15.143-12.833-9.355 15.877-.137 4.931-15.106 5.032 15.07 15.888.024zM208.964 161.637l4.894 15.119-12.932-9.23-12.87 9.317 4.783-15.143-12.833-9.355 15.877-.137 4.931-15.106 5.032 15.07 15.888.024zM226.392 110l4.894 15.118-12.932-9.23-12.87 9.317 4.783-15.143-12.833-9.354 15.877-.137 4.932-15.106 5.03 15.069 15.89.025zM180.136 75.744l4.894 15.118-12.932-9.23-12.87 9.317 4.783-15.143-12.833-9.355 15.876-.136 4.932-15.106 5.032 15.068 15.888.025z"/> - </g> -</svg> diff --git a/img/flags/4x3/sh.svg b/img/flags/4x3/sh.svg deleted file mode 100644 index 737a4a3..0000000 --- a/img/flags/4x3/sh.svg +++ /dev/null @@ -1,76 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" height="480" width="640" viewBox="0 0 640 480"> - <path d="M640.013 480.02V.03H.003v479.99h640.01z" fill="#006"/> - <path d="M-.006 73.341h76.034L-.006 26.768V.03h43.503L149.86 64.75V.03h59.892v64.72L316.11.03h43.88v26.738L283.58 73.34h76.41v73.37h-76.41l76.41 46.573v26.746h-43.88l-106.36-64.73v64.73h-59.892V155.3L43.497 220.03H-.006v-26.746l76.034-46.574H-.006V73.341z" fill="#fff"/> - <path fill="#ce1126" d="M331.685.027L211.525 73.39h28.764L359.983.027h-28.298zM359.998 220.03l-119.822-73.323h28.89l90.932 55.843v17.48zM120.38 73.372L-.01.009v17.52l91.373 55.843h29.016zM120.129 146.686L-.013 220.009h28.748l120.16-73.323h-28.766z"/> - <path fill="#ce1126" d="M-.006 88.56h162.621V.027h35.195V88.56h162.18v42.962H197.81v88.505h-35.195v-88.505H-.005V88.56z"/> - <g> - <path d="M399.67 640.77c-.046 16.332-2.623 33.927-23.764 42.308-21.142-8.381-23.719-25.976-23.765-42.308h47.529z" stroke-width="1.112" fill="#8fc5ff" transform="matrix(4.4862 0 0 4.4867 -1190.9 -2609)" stroke="#fff"/> - <path d="M375.9 683.08c9.584-3.799 15.353-9.493 18.8-16.104-.516.02-1.597-.011-2.064-.043-.52-.034-20.271-2.018-22.61-2.876-2.035-.746-9.799.634-13.423 1.929 3.381 7.032 9.237 13.106 19.297 17.094z" fill="#366cc9" transform="matrix(4.4862 0 0 4.4867 -1190.9 -2609)" stroke-width="1.102" stroke="#000"/> - <path d="M361.13 672.95c.323-.105.94-.08 1.183-.036.286.052.338.078.442-.234s.338-.234.52-.078.649.078.831-.182c.182-.259.234-.233.416-.052.182.182.26.13.442.078.182-.051.494-.259.65-.545s.389-.39.519-.234.26.234.442.208.234.156.208.389c-.026.234.078.286.52-.077.39.389.519.233.519-.182 0-.416-.103-1.949-.259-2.157s-.312-.806-.338-1.274c-.049-.883-.052-.935-1.118-1.481 0-.312-.078-.442-.831-.39.026-.104-.104-.416-.26-.546s-.182-.182-.104-.545c.312.026.65-.026.832-.286.181-.26.779-.208 1.143-.052s.832.182 1.533.078c.26-.208.702-.442 1.17-.702.467-.26.597-.364.623-.728.067-.933-.26-2.001-.52-2.494-.259-.494-.337-1.118-.701-1.898-.396-.849-.39-1.065-.832-1.585-.121-.143-.26-.26-.286-.545-.026-.286-.13-.676-.441-.962-.786-.721-1.092-3.041-1.404-4.756-.179-.983-.052-3.3-.467-3.664-.702-.572-1.04-.468-1.508-.65-.338-.468-.493-1.403-.805-2.235-.494.078-.832.598-1.17.78s-.39.182-.39.65c0 .467-.26 1.117-.727 1.845-.468.727-1.248.52-1.897 1.611-1.43-1.741-1.456-2.235-1.56-2.729-.104-.493-.338-.597-1.143-1.299 0-.208-.104-1.039-.026-1.507-.598-.494-1.04-.416-1.325-.052-.286.364-.494.909-.936 1.117-.265.337-1.064 1.187-1.718 2.199.595 9.044 2.636 18.022 8.773 25.202z" fill="#5d3100" transform="matrix(4.4862 0 0 4.4867 -1190.9 -2609)" stroke-width=".138" stroke="#000"/> - <path d="M399.67 640.77c.018-6.152-.324-12.125-.168-17.359-7.9-3.535-18.295-4.262-23.596-4.262-5.302 0-15.697.727-23.597 4.262.156 5.234-.185 11.207-.168 17.359h47.529z" stroke-width="1.08" transform="matrix(4.4862 0 0 4.4867 -1190.9 -2609)" stroke="#fff" fill="#ff0"/> - <path d="M394.613 297.888c1.166 1.867 3.266 5.075 3.499 6.82.817-1.692 1.458-2.445 1.633-3.495s1.4-3.092.933-4.2-.816-1.983.467-1.166c1.278.816 1.032 2.23.753 4.316-.753 5.711-3.144 6.878-3.494 10.728 3.44 8.102.874 11.019 4.602 18.947.584.35 2.14-.274 2.607-.157 1.978-1.4 3.459-.893 6.254-.31 2.8.584 4.315 2.562 4.315 4.312s0 2.216.584 3.266 1.75 2.683 1.516 3.85c-.233 1.162.233 1.862.583 2.445s-.116 1.867-.466 2.683-.234 1.867 1.166 3.616c1.4 1.746 4.661 9.095 4.661 13.407 0 4.316.233 6.299 1.983 7.111 1.75.817 2.333 1.517 2.1 3.383s.816 11.544 1.05 13.06.816 1.167 1.516 1.984c.695.812 1.162 1.745 3.495 1.745s4.584-.31 6.1-.076c2.1 2.916 3.383 6.878 3.85 9.328s.426 5.792 1.243 5.792 1.633.117 1.4-2.916-.467-3.5-1.517-5.012c-1.05-1.516-1.633-2.216-1.05-3.15s.7-2.45.467-3.616-.583-2.912 1.4-.583c1.982 2.333 2.566 2.916 3.149 3.733s.812 2.333.7 3.733c-.117 1.395.112 1.979.928 1.279.817-.696 1.866.466 1.4 1.983s.117 2.45 1.516 2.916 1.983.817 2.333 1.867 1.516 1.512 1.516-.584c0-2.1-.816-6.532-1.4-7.928-.582-1.4-1.049-4.433-1.166-6.182s-.466-2.212-1.283-2.562-1.516-.934-1.633-1.75-.816-1.108-1.341-1.108-.987-.409-1.279-.992-.583-.641-1.166-.7-1.516.292-1.808-.641-.7-2.275-1.283-3.033-1.108-.992-1.166-3.612c-.059-2.625-.117-2.975-.934-3.908s-2.216-3.379-2.799-4.429c-.579-1.05-1.162-2.1-1.162.117 0 2.212 0 3.379 1.395 4.195 1.4.817 1.75.817 1.167 1.983s0 1.983.233 2.8.7 1.633 0 2.445c-.7.817-1.4.584-1.283-.695.117-1.283-.35-2.8-.929-3.85-.583-1.05-1.05-1.75-1.75-1.166s-1.282-.117-.816-.584.35-.816 0-1.166-.466-.7.117-1.4.583-1.05.233-2.679c-.35-1.633-2.916-9.794-4.082-11.66s-1.05-3.267.466-1.4 2.8 3.5 2.916 5.011c.117 1.517.467 2.45.933 3.033s.817.35 1.05-.933 1.167-.816-.466-3.262c-1.633-2.45-4.666-6.532-5.832-13.877s-1.633-12.244-2.8-14.223c-1.162-1.983-1.512-2.45-1.628-4.316s0-3.733-.817-5.128c-.816-1.4-1.4-1.634-1.516.466-.117 2.095.116 6.762.7 7.578s.233 2.912.116 4.079-1.951 2.32 1.867 4.666c1.516.933 1.278 2.216 1.05 3.033-.234.812-.467.695-1.284-.583-.816-1.284-1.633-2.334-2.45-3.033s-.932-1.167-.816-2.8.467-2.8 0-3.379c-.466-.583-.7-.116-.933.812-.233.934-.466 3.5-.933 4.2s-.7.233-1.05-1.283.117-3.845.933-6.528 1.283-5.483.584-8.978c-.7-3.5-.35-4.55-3.033-7.462-2.678-2.916-5.711-5.716-6.994-9.327-1.283-3.617-1.516-6.766-2.916-8.4-1.395-1.628-3.378-3.728-4.661-4.311v-5.362c0-1.283-.583-2.1-2.1-1.866s-2.45 1.516-3.378 3.261c-.933 1.75-1.633.934-2.916 3.967s-3.15 4.545-3.15 7.811z" fill="#cf6200"/> - <path d="M403.047 332.077c.933.583 1.826.973 3.225.273s3.073-2.719 4.94-.735c1.862 1.978 2.911 5.245 2.911 7.81 0 2.563 0 7.346 2.916 10.029 2.916 2.678 4.428 5.478 4.545 8.978.116 3.495 1.4 8.86 1.75 10.26.35 1.396 1.166 3.03 2.099 3.962s1.633 3.617 1.75 6.412c.116 2.8-.35 4.783 0 6.183s0 2.566-1.05 1.866-1.283-1.05-1.866-2.216-1.283-.934-.7.816 2.333 3.379 3.849 3.379 1.983.233 2.916 1.166c.929.933 1.045 1.4 2.678 1.4s1.866 0 3.383.467 1.516.233 2.333 0 1.628.466 2.211 1.983 1.983 5.711 1.983 6.878 0 2.333.817 3.5.583 2.333-.35 1.633-.933-.467-1.633-.35-1.167-.234-2.095-.817c-.933-.583-.35-.466-1.283-1.866s-1.517-1.867-1.517-.817-.116 2.333-.816 1.75-1.05-.583-1.633 0-.817 1.05-1.516-.117-1.517-1.166-2.217-1.4-.7-.233-1.045-1.283c-.35-1.05-1.4-1.283-2.333-1.283s-1.4-.467-1.516-1.166c-.117-.696-.7-1.163-1.166-1.513s-.234-1.166-.35-1.983-.817-.466-1.283-.7-.817-.116-.817-1.283-.467-1.516-.816-2.333c-.346-.816 0-1.633.233-2.562.233-.933.116-1.516-.579-2.333-.7-.816-.117-1.633-1.983-3.266s-2.8-.233-3.382-4.079c-.584-3.85-1.75-11.777-2.8-13.06s-1.745-2.217-2.795-2.567-1.75-.116-1.866-2.333c-.117-2.212-.816-5.011-2.216-6.411s-1.983-1.867-2.683-2.45-.933-1.633 0-3.612c.933-1.983.583-4.666.467-5.95-.117-1.278-.467-2.911-.234-4.31s.117-3.15-.233-4.084-.816-1.166-.233-1.866zM431.13 298.92c-1.579 2.032-3.261 3.733-5.437 5.285-2.176 1.557-4.975 2.8-3.423 5.443 1.557 2.642 2.8 2.956 3.11 4.975.313 2.02.78 3.733 2.332 4.2 1.557.462 2.176.153 2.176 3.419s0 4.509 1.4 5.752 1.242 2.485 1.866 5.442c.619 2.952.619 9.328 2.485 13.68s6.065 12.594 5.599 14.304-1.09 2.952.776 4.971c1.866 2.024 3.109 4.976 3.266 6.685.152 1.714.467 2.333 2.328 1.714 1.867-.624 2.8-1.247 3.423-2.023.62-.777 1.862-.62 3.576.31 1.709.932 4.351 1.866 5.904.932 1.556-.933 2.332-2.328 3.732-2.328 2.176-1.557 2.952-4.823 3.419-5.752.466-.933.157-.933-.777-1.867s-.466-2.49-.623-4.042c-.153-1.557-.776-3.886-2.642-7.309-1.862-3.419-2.952-7.618-4.195-8.704-1.243-1.09-1.866-3.733-2.023-4.976-.153-1.243-1.553-2.333-2.486-3.266-.933-.929-1.866-2.329-2.952-7.771-1.09-5.443-1.866-9.328-1.866-10.261s-.157-1.09-1.09-1.4-1.4-1.867-1.086-2.643c.31-.776-.314-1.552-.623-2.485s0-2.643.623-3.576c.62-.934.467-3.576-.157-5.752s-1.242-4.043-3.732-4.357c-2.486-.31-2.952-.929-3.885-2.952-.933-2.02-1.867-5.595-2.176-6.376-.31-.776-.776-.933-2.642.624-1.867 1.552-2.486 2.068-2.486 4.976 0 1.866.31 2.485.929 3.576.623 1.085.78 1.4 1.247 4.352s3.109 7.618-.314 10.26c-3.419 2.643-2.952 3.267-2.795 5.13.153 1.866-.933 3.108-1.557.466-.619-2.643 0-4.195 1.867-5.438 1.866-1.247 3.575-2.8 2.332-4.51-1.247-1.709-1.709-5.751-1.866-7.618s-.466-2.49-1.557-1.09z" fill="#cf6200"/> - <path d="M403.406 338.538c-.085 1.265.197 2.656.296 3.773.116 1.283.466 3.966-.467 5.95-.933 1.978-.7 3.028 0 3.611.04.031.077.063.112.094 1.903-.637 2.15-2.76 1.638-3.787-.543-1.085-.386-2.409.233-3.495.624-1.09.624-1.71.08-2.49-.546-.776-.546-.776.077-2.952.548-1.916-.834-1.902-1.97-.704zM423.324 368.688c-.35-1.4-1.632-6.766-1.75-10.26-.116-3.5-1.628-6.3-4.544-8.979-2.274-2.095-2.772-5.46-2.88-8.058-1.709-1.045-2.431-.57-2.288 1.373.153 2.095 2.252 3.11 1.943 6.138-.31 3.033-.31 2.257 1.166 3.733s2.019 2.876 1.243 3.5c-.776.619-.857 1.709.233 2.095 1.086.39 1.167 1.557 1.01 2.642-.157 1.09.856 1.324 1.475 2.1.624.776.7 2.643.081 3.733-.623 1.086-.7 2.795.386 1.867 1.09-.934 1.557-.081 2.41 1.395.74 1.274 1.358.875 2.161.489a9.836 9.836 0 0 1-.646-1.768zM438.488 395.833c-.7 1.4-1.516.933-2.216.233s-1.517-.7-1.167-1.983.234-1.517-.7-2.217c-.107-.08-.215-.152-.323-.224-.291-.009-.632-.009-1.076-.009-1.633 0-1.75-.466-2.679-1.4a7.84 7.84 0 0 0-.574-.52c-.018.224-.009.52-.009.87 0 1.283 0 1.05-1.283 1.4s-1.05-1.283-1.283-2.333a3.854 3.854 0 0 0-.202-.628c-1.404-.27-2.884-1.75-3.414-3.334-.583-1.75.117-1.983.7-.816s.817 1.516 1.866 2.216 1.4-.466 1.05-1.866c-.112-.449-.139-.97-.125-1.548-.252-.453-.593-.821-1.041-1.019-1.867-.816-1.283-1.05-1.167-2.566.117-1.512-.233-1.512-1.4-.7-1.166.817-1.282-.117-1.282-2.445 0-2.333-1.517-2.333-1.862-.7-.35 1.633-.933.583-1.633-1.75s-1.633-2.916-1.75-.7c-.099 1.875-.619 2.324-1.84 1.283.216 1.355.405 2.62.557 3.617.583 3.845 1.516 2.445 3.383 4.078s1.283 2.45 1.983 3.266c.695.817.812 1.4.578 2.333-.233.93-.578 1.746-.233 2.562.35.817.817 1.167.817 2.333s.35 1.05.816 1.284c.292.143.668.062.942.179.3-.395.574-.88.924-1.23 1.4-1.4 3.5.117 4.2 1.867s1.511 2.217 2.561.817.7-1.167 1.866.116 1.633 1.05 1.633 1.05 1.167-.466 1.983.234 1.283.583 2.795-1.634c1.516-2.216-.695-1.516-1.395-.116zM442.615 331.852c.462-3.418.153-6.837 1.552-8.085 1.4-1.242 3.11-3.728 2.952 1.557-.152 5.286-.31 4.976-1.395 6.219-1.09 1.243-2.023 1.552-.933 3.576 1.086 2.019 1.243 2.176 1.086 5.285-.153 3.11-.153 4.352 1.09 5.909 1.242 1.552 1.552 1.71 1.866 3.419.31 1.71 1.395 4.042 2.795 5.285s2.956 4.819 3.109 7.309c.157 2.486 2.333 3.11 4.351 4.819 2.024 1.71-.462 2.952-2.018 2.176-1.553-.776-.933 0-1.867 1.086-.933 1.09-1.242 1.247-2.018-.62s-3.423-3.109-4.666-3.575-2.328-2.49-3.419-4.51c-.933-1.736-2.78-3.006-4.468-3.136.467 1.31.718 2.338.583 2.827-.466 1.71-1.09 2.952.777 4.971 1.866 2.024 3.108 4.976 3.266 6.685.152 1.714.466 2.333 2.328 1.714 1.866-.623 2.8-1.247 3.423-2.023.619-.777 1.862-.62 3.575.31 1.71.932 4.352 1.866 5.904.932 1.557-.933 2.333-2.328 3.733-2.328 2.175-1.557 2.952-4.823 3.418-5.752.467-.933.157-.933-.776-1.867s-.467-2.49-.624-4.042c-.152-1.557-.776-3.886-2.642-7.309-1.862-3.419-2.952-7.618-4.194-8.704-1.243-1.09-1.867-3.733-2.024-4.976-.152-1.243-1.552-2.333-2.485-3.266-.933-.929-1.866-2.329-2.952-7.771-.852-4.253-1.512-7.551-1.759-9.238-1.117 1.781-1.88 2.216-2.283.996-.467-1.396-1.09-2.176-1.71-1.243-.623.933-.78-.776-.78-1.552 0-.781-.152-.934-.933-.934-.776 0-.153-1.242-.467-3.576-.31-2.333-.776-2.642-1.085.158-.31 2.795-1.867 4.504-1.243 5.128.62.623.31 1.866-.314 3.733-.62 1.862-.31 2.952.157 4.195s-.31 3.576-.624 5.6c-.31 2.018 1.248 4.037 1.714.618zM414.217 303.945c-1.152.085-1.942 1.095-1.283 4.626.413 2.185-1.242 1.71-1.861.62-.624-1.087-1.09-3.42-2.333-5.443-1.247-2.02-.624 1.4-.776 3.266-.157 1.866 1.085 1.866 2.176 3.419 1.085 1.557.152 2.18-1.09 2.18s-.62 2.486-.31 4.195-.31 2.024-1.247.624c-.929-1.4-.31-3.576-.153-6.218.153-2.643.31-2.024-1.4-2.643-1.709-.624-1.4-.933-.776-2.49.62-1.553 1.243-2.333.467-3.11-.78-.776-.624-1.242.619-1.4 1.243-.152.78-1.085 1.866-1.4 1.09-.309 1.557.158 1.71-1.861.13-1.687.695-2.724 1.96-2.212.763 2.598 1.754 6.64 2.431 7.847zM429.874 322.25c0 3.267 0 4.51 1.4 5.753s1.243 2.485 1.866 5.442c.62 2.952.62 9.328 2.486 13.68.556 1.297 1.323 2.943 2.108 4.657 1.032-.812 1.93-2.207 2.248-2.947.462-1.09-.933-3.267-2.024-5.129-1.085-1.866.157-2.49 1.243-4.823 1.09-2.329-.152-2.486-1.862-3.11-1.713-.618-1.713-2.175-2.646-4.66s-.777-3.577-.153-4.977c.62-1.4.153-2.485-1.09-2.8-1.243-.309-.933-1.242-.467-2.795.467-1.556.776-1.866-1.085-1.4-1.414.35-1.754.615-2.176 1.127.103.448.152 1.072.152 1.983z" fill="#00b800"/> - <path d="M447.774 328.757c-.17 1.866-.157 2.8-.623 3.418-.462.624-.153 1.557.314 2.49s.776 2.177.31 3.886.309 3.11 1.242 3.576 1.4 0 1.09 2.176c-.314 2.176.933 4.51 2.019 5.442 1.09.934 1.866 2.486 1.71 3.42-.153.932.78 1.866 1.865 2.332 1.09.467.934.624.934 1.243 0 .624.466.624 1.709.933s2.176 1.09 3.575 2.8 3.419 2.643 3.11.776 0-3.109-1.867-4.042c-1.862-.934-3.262-5.443-4.042-8.552-.776-3.11-3.262-7.304-4.661-8.08-.157-2.181.157-3.267-1.243-4.357-1.4-1.086-1.866-2.486-1.866-3.576 0-1.086-.776-2.486-1.4-2.795-.619-.314-.933-1.09-.933-2.024s-1.086-.776-1.243.934z" fill="#5d3100"/> - <path d="M439.52 412.164c2.795-.233 10.376-2.45 11.188-3.15 1.867 1.284 5.132 3.034 6.532 3.034-2.683.583-4.432.233-5.132-.234.35.817 1.283 2.1 1.866 2.217-2.566-.117-5.477-.7-6.41-1.633-2.217.933-5.95 1.166-8.044-.234zM444.544 415.664c.992.292 5.944 1.108 6.586 1.108-1.633 1.396-.233 2.737 2.508 2.504-1.342.175-2.804.682-1.808.875 2.39.466 8.86-1.284 10.143-1.983-2.216 2.858-12.996 5.482-17.429-2.504zM448.986 422.753c1.336-.7 4.66-.467 6.235.292-1.75.641-5.186.641-6.235-.292z" fill="#00d860"/> - <path d="M453.965 422.663c2.391-.408 9.152 1.225 11.543-.233-.816 2.158-5.074 2.45-6.532 1.983-1.453-.467-2.853-1.05-3.844-.992.525-.291-.35-.35-1.167-.758z"/> - <path d="M456.433 425.983c1.808.287 8.277-.525 10.26-1.283 2.095.7 6.235 1.804 7.169 1.687-1.983 1.225-5.774.525-6.994 0-3.5 1.167-6.357 1.517-10.435-.404z" fill="#00d860"/> - <path d="M459.528 427.06c2.589.583 4.796.166 7.344-.686.794.34 2.665.758 4.423.673 1.171.668 2.746 1.601 4.262 1.718-1.574.642-7.348 0-8.51-.641-2.916.058-7.932.7-9.152 1.691-.058-.817.471-1.952 1.633-2.755z" fill="#00d860"/> - <path d="M456.433 413.914c2.018.673 9.326.35 13.054-1.4 1.472-.69 2.383.467.7 1.05-6.06 2.1-10.843 2.917-14.338 1.05-1.381-.736-1.516-1.4.584-.7z"/> - <path d="M492.233 403.999c-8.977 4.195-14.926 5.478-27.398 1.633-1.162-.36-1.983 0-.7.816 1.283.812 8.16 2.679 9.794 2.795s1.05.875.058 1.167-1.283.992.058.467 8.834-.723 11.893.875c1.337.7 1.687.583 1.57.058s.584-.875 1.575-.992 1.575-.466.817-.758-.875-.467-.292-.758.642-.583-.233-.758-1.458-.409-.642-.817c.817-.404 2.042-.7 2.975-.812.233-.642-.175-2.333.525-2.916z" fill="#00d860"/> - <path d="M477.293 405.075c5.133.364 14.576-1.983 19.592-6.878 1.745 1.046 4.194 2.212 5.477 2.445s2.45 1.4.467 1.4-4.782-.816-6.06-1.4c-6.65 4.083-14.429 5.425-19.359 5.017-1.395-.117-1.745-.7-.117-.584z"/> - <path d="M462.13 377.078c1.75 1.225 4.84 3.262 8.86 2.97 1.983 1.575 5.074 2.917 6.474 3.209-2.683 1.108-5.599 2.041-6.357 2.916-1.225-1.167-2.795-.992-3.203-1.575-1.167.933-.992 1.517-.233 1.983s6.644 1.458 8.102 1.05 1.848.799.641 1.22c-3.15 1.109-9.268.059-11.368-3.32-2.1-3.383-3.907-4.666-9.618-1.575-.642-1.633-.642-2.041-1.75-2.041s-3.15-1.458-1.575-1.4 6.24-.641 10.027-3.437z" fill="#00d860"/> - <path d="M463.52 384.571c-.973.242-3.732 1.75-4.719 1.867-.991.116-2.74 1.516-.933 1.574 1.804.059 4.137-1.924 5.42-2.1s1.4-1.633.233-1.34zM469.173 390.494c-.69.12-3.67.816-4.486.758s-1.633.175-1.574.758.291.933-.934.817-2.274.35-2.566.7-.525.7.7.816 1.866.233 3.266-.408 2.741-1.633 4.258-1.692c1.511-.058 3.028-2.041 1.336-1.75z" fill="#00d860"/> - <path d="M465.001 394.083c1.274.825 7.577 2.975 9.852 2.8s1.848.91.117 1.283c-3.558.754-7.9-.794-10.844-3.15-1.458-1.166-.116-1.575.875-.933z"/> - <path d="M494.835 397.179c-4.823 1.539-9.736.991-11.718.466s-3.791-.641-2.45.642c1.341 1.279 5.657 2.154 8.102 1.512-8.685 1.983-10.96 1.808-13.113 1.458-2.158-.35-6.209-.274-7.927-.117-1.283.117-3.033-.058-3.79-.524s-.992-1.342 1.282-1.109c2.27.234 2.566-.233.583-.525s-4.724.525-2.04 2.217 8.568-.117 12.3.933c3.728 1.05 11.655 1.808 19.179-4.258.386-.31 1.05-1.162-.408-.695zM471.147 390.09c.175.583.175 1.225 0 1.633s-.175.933.584.35 1.224-1.283 1.982-.875 2.683.35 3.554.233c.879-.116 1.166-.291-.113-.816-1.283-.525-2.566-.7-3.266-.642s-1.574-.117-2.157-.35-.759-.117-.584.467z" fill="#00d860"/> - <path d="M483.574 392.333c-.991.058-2.74-.583-3.674-.991s-2.27-.467-1.279.874c.987 1.342 5.303 2.1 6.82 1.459s.874-1.342 2.386-.409c1.516.934 3.091 1.575 4.2 1.575s1.515 0 .29-.7-1.807-.875-1.924-1.458-.291-.933.817-.583 2.39.991 3.266.525 2.503-1.517 3.96-1.517l.35-.875c-2.099-.175-3.436.467-4.019.7s-1.633.35-2.74.175-2.567-.291-2.917-.583-.35-.525.583-.7 1.225-.817-.058-.583-4.72.116-6.527-.467c-1.808-.579-2.567-.637-3.325-.35-.758.292-.641 1.108.467 1.167s3.616.291 4.49 1.108.759.875-.233.467-2.8-.175-.933 1.166z" fill="#00d860"/> - <path d="M498.782 390.224l-.35.875c2.158-.058 7.407.467 9.094 1.517 1.633-1.283 1.341-1.692 2.508-1.458s2.624.641 3.266.291 1.108-.291 1.808-.175c.695.117 2.211-.175 3.086-.7s2.683-1.225 3.733-1.225 2.328-.233.408-.525c-1.925-.291-4.84.292-5.832.642-.987.35-3.961.583-5.711.583s-4.136.875-6.12.35-4.723-.175-5.89-.175z" fill="#00d860"/> - <path d="M525.79 389.192c-3.495 2.567-7.695 3.15-12.706 3.5-1.458.103-1.009.516.234.642 5.244.525 11.31-1.4 13.288-3.5.574-.606.511-1.61-.817-.642z"/> - <path d="M501.968 395.16c1.516.058 6.76 1.4 8.452 1.983 1.283-.117 1.633-.408 1.4-.875s-.409-.992 1.924-.875c2.328.117 7.694.058 8.685.058.817-.35 2.62-1.75 3.437-1.808-2.095.117-10.84.583-11.947.467s-1.691 0-2.391.408-1.108.583-1.983.233-2.45-.816-3.32-.291c-.875.525-2.683.058-4.257.7z" fill="#00d860"/> - <path d="M522.425 395.429c.816-.35 2.62-1.75 3.436-1.808 1.516-.117 3.266.525 4.083.641s1.69-.058 1.108-.7-.059-1.75 2.332-1.458c2.387.292 3.612.7 5.945.467s3.382 1.516 7.81-.233c-.35 1.75.467 1.866 1.283 1.516s1.75-.233 3.15.817 9.91 1.166 11.892.816c1.979-.35 3.029.7 1.512 1.167-1.512.466-1.866 1.166-1.512 1.633.346.462.696 1.045-1.166.812-1.866-.233-2.216.35-3.15 1.05s-1.166.933-3.732.467c-2.561-.467-3.028-.117-4.428.116s-1.75.234-3.149-.233-4.428-.933-6.294-.35-3.266 1.166-4.9.7-1.749-.233-.699-1.283 1.283-.934 3.266-1.167c1.983-.229 3.5-.812 2.1-1.629s-1.867-.7-3.733.234-2.8 1.512-4.894.35c-2.1-1.167-3.15-.934-4.55-.584s-3.727-.466-5.71-1.341zM529.423 398.929c-2.67.38-3.387-1.337-6.177-.988-.934.117-2.508 1.28-.35 1.104 2.153-.175 4.486.992 6.585.817s1.167-1.108-.058-.933zM526.328 400.948c1.404-.512 4.315.466 5.54.233s2.391.525 1.108.933-4.374-.758-5.774-.35-2.794-.117-.874-.816zM498.468 408.485c1.925.063 8.86-.233 11.602-6.061.21-.449.408-.642 1.283-.059s4.082 2.508 10.085 3.033c1.682.148 3.499.992.116.759s-8.743-1.167-10.551-2.275c-3.033 4.778-8.48 5.344-12.535 5.245-2.445-.059-1.861-.7 0-.642z" fill="#00d860"/> - <path d="M513.452 400.544c-.933 1.283-4.14 3.5-5.599 3.616-1.453.117-5.827-.292-6.935-.7s-2.45-.292-.875.817 5.482 1.866 7.052 1.516c1.575-.35 3.383-.875 4.608-.116s3.499 2.211 4.836 1.92c1.341-.287 4.082-.287 4.957.117.875.408 2.391 1.633.117.933s-4.141-.117-5.19-.584c1.166 1.634 3.812 4.258 6.064 4.258.525 0 .875.934-.233 1.459 1.108.524 3.67.933 5.011-.292-.35.467-.175.758.408 1.05s1.284.7.234.816-3.437.409-4.136.117c2.27 1.454 8.16 3.787 14.162 2.62 1.144-.22 1.75-.695-.116-.641-3.85.116-4.078.058-4.778-.346-.7-.413-.583-.758.525-1.108 1.103-.35 3.903-.758 5.07-.758s2.332-.467-.059-.467-5.303 0-6.47-.408-2.04-.933-.816-1.75 2.508-.583 3.091-1.342c-3.849-.058-8.573-2.1-5.948-3.961.61-.436.408-.467-.584-.584s-3.903-.933-5.127-1.633-.409-1.283.583-1.458c-2.275.408-6.824-.816-9.852-3.091zM547.637 400.454c-2.1 1.575-6.06 2.216-7.752 2.216s-1.925.584-.583.759 2.8.35 3.382.175.933-.234 1.804.175c.875.408 2.74.641 4.374.116s4.311-.758 5.42-.7 2.332.117.116-.525c-2.212-.641-5.828-.175-6.703.059s-3.266.058-1.982-.35 2.39-1.05 3.032-1.575c-.466-.117-.758-.233-1.108-.35zM546.56 404.986c-1.808 1.341-4.427 2.62-7.11 2.736 2.45.875 4.49 3.383 6.06 3.267-.758.466-1.686 1.166-2.678 1.283 1.517.408 4.078-.058 6.178-1.225 3.5.992 8.044.35 9.56-.933-2.275 0-5.011-.817-6.236-1.867 1.108 0 2.154-.7 2.678-1.337-2.62.463-7.11-.816-8.452-1.924z" fill="#00d860"/> - <path d="M542.837 412.299c.991-.117 1.92-.817 2.678-1.283-1.92.641-10.318-.7-12.821-2.917-2.508-2.212-2.508-.525-.759 1.05s4.837 3.966 10.902 3.15zM548.983 417.638c-1.05.583-6.06.933-7.694.583s-2.333-.175-1.924.467.583 1.225-.759 1.05-3.732.117-4.72.466c-.99.35-2.215 1.225-.116.875 2.095-.35 4.02-.758 5.595-.35s7.168.525 8.277.059.35-.467-.175-.467-.759-.35 0-.7 1.341-1.341 1.516-1.983zM500.487 410.863c-2.1.933-9.093 2.8-10.96 2.917-2.332 1.05-4.194 1.633-5.36 1.633.816.7 3.96 1.395 5.244 1.05-.7.695-2.329 1.512-2.912 1.862 1.862-.234 4.078.233 5.011.35-2.45 1.4-5.827 1.866-7.577 1.633.583.816 1.4 1.633 2.45 1.633-2.217.583-4.9.583-6.3.116.584 1.167 1.167 1.867 1.984 1.984-1.866.233-4.2.583-6.178-.584 1.512 1.983 4.895 2.679 9.91 2.1 5.011-.583 9.21-2.8 10.377-3.733-2.1.233-4.899.35-6.299.117 2.8-.7 8.86-3.266 9.91-4.316-1.166 0-2.328-.35-3.149-.934 1.633.234 7.348-.462 9.098-1.162-2.1-.466-3.383-1.75-3.966-2.566 7.344 2.333 15.518 1.57 19.47.583.933-.233 1.046-1.418-.816-1.283-3.266.233-9.56-.7-11.193-1.516 1.516 1.166 3.382 1.866 4.665 2.1-3.032.816-7.227 1.4-13.409-1.984z" fill="#00d860"/> - <path d="M486.49 418.356c.583-.35 2.212-1.167 2.912-1.862-1.283.345-4.428-.35-5.245-1.05 1.167 0 3.029-.583 5.361-1.633-4.194-.117-7.11-.117-8.627-.933s-4.31-.584-5.36-.35-.7 1.983 3.727 1.516c-1.866 1.283-6.877 1.75-8.743 1.283.466 1.512.816 3.029.35 3.846 2.45 1.4 8.86 3.15 12.01 2.916-2.8-1.05-4.316-2.217-1.984-2.45s3.616-.7 5.6-1.283z" fill="#00d860"/> - <path d="M479.267 425.938c5.581-.466 13.055-.565 19.004-5.599 1.516-1.283 2.535-.852 1.05.467-3.145 2.8-10.96 6.644-18.42 6.761-3.038.05-4.429-1.4-1.634-1.629z"/> - <path d="M521.079 416.696c-1.4.525-5.307 1.166-6.47.991-1.166-.175-2.857-.233-3.79.35s-.992.934.291 1.05 2.916.234 3.733.175c-1.05.584-1.75 1.4-1.983 1.75 1.866-.467 5.303.35 6.294.933-.758.234-1.633-.058-2.274-.408 3.149 3.325 12.476 3.325 13.992 2.741-.7.525-1.341 1.05-2.041 1.225 2.624.467 5.653.409 8.627-1.341-.992.175-3.961-.117-4.72-.175a5.597 5.597 0 0 1 2.27-1.342c-1.161-.233-4.836-.116-5.71.35.35-.7.991-1.575 1.69-1.866-4.607 0-10.2-.059-12.242-1.167 3.266.35 6.882-1.575 8.394-1.575-2.562-.058-5.361-.641-6.061-1.691zM509.37 419.253c-2.275.467-5.711 1.4-6.644 1.925s-1.925.817.116.817 7.578.233 8.802.408c-3.09-.467-7.285-.583-8.102-.583s-1.75-.059-.233-.525 3.5-1.517 6.06-2.042zM504.749 424.682c.812 0 4.37 0 5.77-1.225 1.457 1.109 4.257 2.679 6.06 2.679 1.808 0 1.633.467.058.641-1.57.175-4.66-.753-6.235-1.92-2.1.758-3.845.117-5.653-.175zM477.742 440.386c3.611 1.4 8.394 2.45 11.889 1.283 1.982 1.75 6.065 1.866 8.277 1.4 2.216-.467 4.199-.7 6.648.116 2.445.817 7.46.875 8.86 2.037-1.283.063-4.024 0-4.665.18-.642.17-.292.579.875 1.22-3.962-.233-10.785 1.458-12.88 3.266.753-1.808 3.086-4.257 6.76-4.257-2.1-.754-8.802-.812-10.96.525-.641-.7-1.4-1.862-1.457-2.329-3.554 2.037-10.552-.875-13.347-3.441zM468.5 433.835c4.303-.615 7.232-1.983 8.515-3.266.758.7 3.903 1.4 7.344.35-.7.525-.758 1.516-.466 2.041-2.275.058-6.59 1.167-8.044 1.925-1.458.754-5.716 1.279-7.11.52-1.4-.753-1.459-1.395-.238-1.57z" fill="#00d860"/> - <path d="M483.888 432.983c-2.274.058-6.59 1.166-8.044 1.924.292.584.467 1.512.525 2.154 4.195-1.516 13.813-2.445 17.488-1.862-1.75.117-5.074 1.92-6.936 2.154 4.544-.35 8.977.583 10.139.875 1.166.291 1.4 1.166.525 1.983s-1.279.933.583.991c1.866.059 5.715-.175 7.465-1.866-.7-.758-2.508-.467-3.033-.992 1.225-.408 2.625-1.283 3.15-1.925-3.15-.058-4.316-.116-5.366-.35-1.05-.228-1.808-.524-.525-1.22 1.283-.7 1.866-1.283 2.275-1.75-2.275.642-5.828 1.167-8.802-1.166 1.108.291 3.728.116 4.66-.292-.99-.525-1.803-.933-2.62-.933 2.388-1.167 7.111-2.217 12.94.116 2.915-.233 6.064-.116 8.276.467.933-.933 2.916-3.15 3.966-3.733-6.877.583-19.237-.7-19.004-4.312-2.216 2.912-7.344 4.545-9.56 4.079-.233 1.05.7 2.333 1.517 3.033-2.333.466-6.299.816-8.16.466 1.049 1.05 3.027 1.984 4.194 1.867-2.445 0-3.728.467-5.653.292z" fill="#00d860"/> - <path d="M498.154 441.193c1.867.059 5.716-.175 7.465-1.866-.7-.758-2.507-.467-3.032-.992 1.224-.408 2.624-1.283 3.149-1.925 4.894-.403 9.268-.17 11.364-.812 2.1-.641 7.465-.291 8.514-.583-4.665.754-5.598 1.162-5.832 1.92s1.517 1.4 2.625 1.4c-2.1-.116-4.724 2.1-4.958 2.975-2.794-1.633-4.136.292-4.427.933-1.167-.466-5.016-.35-6.999 1.342-2.562-.759-4.253-1.167-6.819-.759 1.575-.35 1.283-1.4-1.05-1.633zM520.54 427.554c1.575-.059 5.012.116 6.236-.059-.816.409-1.862 1.167-2.095 1.517 3.962-.467 9.38-.758 10.956-.525-1.92-.292-3.903.933-4.895 1.575s-.408 1.05.933 1.225 3.15 1.224.7.875-7.286-.35-8.452-.175-1.808-.409-.117-.642 2.854-.817 3.67-1.283c-1.4.35-4.078.35-4.894.116s-1.342-.7-.409-.933.292-.583-.7-.466-3.499 1.166-4.898 2.508c1.516-1.575 2.857-2.975 3.965-3.733z" fill="#00d860"/> - <path d="M502.775 430.2c1.925 2.159 4.195 3.384 7.81 3.5.759.023 2.172 1.041.35 1.109-4.898.175-7.343-.992-9.501-4.142-.444-.646.377-1.547 1.341-.466zM531.98 389.417c2.575 1.216 7.752 2.274 11.777 2.1.7-.032 2.108.717.345.874-4.545.409-8.627-.228-12.413-2.333-1.05-.583-.7-1.108.291-.641z"/> - <path d="M534.582 389.372c3.962-.117 6.936-.058 8.16 1.108 2.27-.7 6.353-1.108 7.286-.933s1.983-.233-.175-.758c-2.158-.52-7.169-.696-8.743-.404-1.575.287-6.474.462-8.102.287.7.117 1.162.233 1.574.7zM549.97 390.942c1.866-.991 7.227-.058 8.86-.758-1.166 1.4 3.733 1.516 7.986.408-1.633 1.05-5.128 1.225-6.644 1.867s-2.333.175-3.5-.35-4.136-1.575-6.702-1.167z" fill="#00d860"/> - <path d="M566.838 390.583c-4.253 1.108-9.152.992-7.985-.408-1.633.7-6.994-.233-8.86.758 1.924-1.166 3.382-.233 4.777-2.624.875.179 2.916.296 3.616-.638 1.225.292 3.383.817 4.024 1.454.642.642 1.629-.175.812-1.162 1.925-.7.704.83 5.19-.292.934-.233 3.208-.641 3.966-.7-1.516 1.225-3.324 2.562-5.54 3.612z" fill="#00d860"/> - <path d="M373.36 664.19c-.017-1.966-.207-18.422-.207-22.226 0-.91-.468-.728-.468 0v22.122c.215.039.505.078.675.104zM380.59 640.77l.812 23.461-.142.188-.471.007-.513-23.656h.314zM387.43 660.58c-.066-2.389-.366-13.448-.482-18.9-.015-.727-.448-.6-.441.026.047 4.391.308 16.672.356 18.887.17 0 .463-.017.567-.013z" transform="matrix(4.4862 0 0 4.4867 -1190.9 -2609)" stroke-width=".138" stroke="#000" fill="#ff0"/> - <path d="M376.6 644.67l-6.913-.104c-.389 1.403 1.352 1.377 2.002 1.013.753.572 1.325.52 1.741.052.598.494 1.351.364 1.663.052.832.624 1.689 0 1.507-1.013zM377.12 648.15l-7.069-.026c-1.221 1.169.364 1.741 1.716.935.182.39 1.013.624 1.663.312.598.468 1.351.13 1.741-.26.728.338 1.585.442 1.949-.961zM376.92 652.57l-6.809-.052c-.13 1.221 1.248 1.065 1.793.754.52.805 1.664.623 2.106.155.649.442 1.247.338 1.585-.078.754.65 1.377-.181 1.325-.779zM377.26 656.99l-7.614-.13c-.416 1.299.753 1.533 1.299 1.221.182.754 1.195.494 1.455-.052.39.39.884.182 1.118-.078.104.702.987.728 1.663.13 1.377.962 2.677-.156 2.079-1.091zM384.01 655.17l-6.341-.052c.286 1.299.909 1.637 1.923.883.754.78 2.001.494 2.313.104 1.377 1.118 2.131-.182 2.105-.935zM383.36 650.83l-6.133-.182c.104 1.559 1.585 1.507 2.339.831.572.728 1.585.52 1.949 0 .78.78 2.053.312 1.845-.649zM384.17 645.94h-6.601c.078 1.091 1.533 1.715 2.651.676.311 1.247 1.507.857 2.027.363.753.962 2.494-.129 1.923-1.039zM383.78 642.62l-5.899.078c-.104.961 1.299 1.377 1.819.597.286.494 1.273.442 1.559-.026.468.728 1.04.234 1.221 0 .676.494 1.404.26 1.3-.649zM390.69 644.77l-7.225-.078c-.026.753.754 1.065 1.221.753 0 .728 1.014.962 1.664.39.442.624 1.741.806 2.261-.052 1.065.884 2.209.26 2.079-1.013zM390.59 650.7l-7.069-.026c.052.987 1.195 1.325 1.845.805.156.832 1.04.884 1.559.468.624.702 1.664.754 2.235-.026.858.312 1.508-.416 1.43-1.221zM390.22 656.03l-5.588-.078c0 .988 1.17 1.118 1.69.598.545.65 1.377.65 1.845.13.753.65 1.897.468 2.053-.65z" fill="#fff" transform="matrix(4.4862 0 0 4.4867 -1190.9 -2609)" stroke-width=".138" stroke="#000"/> - <path d="M381.26 664.42c-3.014.052-6.081.052-8.16-.26s-2.734-.604-4.158-1.455c-2.131-1.273-2.651-1.585-5.665-3.352-.462-.271-.963.065-.312.493 3.04 2.001 4.192 2.743 5.639 3.691 1.507.987 2.479 1.864 3.404 2.91 1.196 1.352 2.079 1.378 2.625 1.17s1.404-.494 2.261-.286c.858.208 2.001.234 2.599.13.546.494 1.793.39 2.495.234.701-.156 1.221-.234 1.715-.13s1.247.026 1.741-.052 1.793-.208 2.703-.078c.909.13 1.845.052 2.443-.13.597-.182 1.689-.13 2.053-.026.519-.39.779-.884.909-1.403.611-.078.814-.154.949-.507.247-.65.48-1.287.559-1.572h.246l.078-.585-.506-.585.182-1.117.545-.13c.026-.338-.13-.858-.234-1.066-3.274.13-6.484.234-8.783.286-.26.208-.546.754-.598 1.092-1.403.233-2.235.337-2.599.415s-.567.107-.857.494c-.468.624-.91 1.351-1.274 1.819z" transform="matrix(4.4862 0 0 4.4867 -1190.9 -2609)" stroke-width=".138" stroke="#000"/> - <path d="M391.78 660.45c.159-.551.584-2.035 1.354-4.84.129-.468-.325-.653-.493-.052-.916 3.275-1.262 4.503-1.378 4.912.176-.003.428-.022.517-.02z" transform="matrix(4.4862 0 0 4.4867 -1190.9 -2609)" stroke-width=".138" stroke="#000"/> - <path d="M396.85 654.96c-1.105.571-1.638.792-2.144.597-.466-.179-1.151-.28-1.552-.083a.523.523 0 0 1-.021.135 493.286 493.286 0 0 1-1.048 3.768c.818.289 2.227.328 2.556-.025.337-.364 1.26-.286 1.728-.26.299-.39.416-.871.338-1.105s-.052-.649.065-.974.273-1.378.078-2.053z" transform="matrix(4.4862 0 0 4.4867 -1190.9 -2609)" stroke-width=".138" stroke="#000" fill="#fff"/> - <path d="M371.69 645.58c-1.222 3.534-5.458 11.461-8.014 14.014M365.64 660.75c2.901-2.244 10.236-9.528 11.483-12.594M370.11 652.52c-.337 2.677-1.11 7.452-1.526 9.973M371.24 658.48c-.987.962-2.387 2.641-3.427 3.551M380.54 653.14c-.831.805-1.78 1.744-2.611 1.978M381.02 653.27c.731.779 1.77 1.659 2.628 1.893M380.45 648.96c-.753.649-1.871 1.413-2.884 1.699M380.88 649.11c.65.546 1.342 1.342 2.173 1.706M377.72 645.94c.805-.234 2.004-.858 2.628-1.507M380.71 644.31c.705.805 2.056 1.455 2.732 1.637M377.88 642.7c.831-.182 1.861-.624 2.407-1.404M380.6 641.08c.701.598 1.933 1.462 2.738 1.54M386.53 643.41c-.451.468-1.556 1.309-2.257 1.296M386.99 643.37c.325.52 1.144 1.316 1.612 1.381M383.8 650.67c.909-.312 2.183-1.056 2.82-1.823M387.12 648.91c.266.48 1.28 1.565 1.852 1.786M384.88 655.95c.416-.09 1.547-.652 1.858-1.315M387.26 654.27c.429.533 1.481 1.507 2.131 1.741M370.58 656.87c1.273-.403 3.846-1.965 5.12-3.447M373.26 655.3c1.065.753 2.303 1.507 3.251 1.676M370.34 652.52c.702-.299 1.624-.809 2.339-1.549M373.22 650.87c.286.402 2.388 1.686 3.284 1.699M372.68 646.72c-.546.441-1.858 1.234-2.495 1.403M373.18 646.75c.728.506 2.167 1.4 3.154 1.4M372.68 642.66c-.585.662-1.572 1.685-2.391 1.919M373.15 642.81c.455.728 1.673 1.712 2.466 1.842M383.67 647.18c1.822 3.359 5.201 7.465 8.618 9.622M378.2 643.46c2.767 3.976 8.199 12.695 13.367 15.914M392.52 655.97a18.428 18.428 0 0 1-4.795 4.607M392.21 657.07c-1.741-2.78-2.641-6.295-3.943-10.924M374.15 658.51l2.144 5.899M373.75 658.37l1.896 6.017M373.34 658.09l1.76 6.262M373.16 658.19l1.359 6.128M374.47 664.1h1.699M375.95 663.46h-1.602M375.77 662.96h-1.546M375.59 662.46h-1.475M375.39 661.92h-1.404M373.89 661.44h1.332M373.79 661h1.264M373.68 660.52h1.202M373.59 660.09h1.134M373.49 659.65h1.078M373.4 659.24h1.02M373.3 658.86h.991M373.24 658.54h.923M371.57 658.55l-1.208 4.932M371.92 658.46l-1.037 5.21M372.2 658.27l-.839 5.549M372.56 658.16l-.609 5.803M372.68 663.63h-1.923M372.68 663.1h-2.225M372.68 662.55h-2.095M372.68 662.03h-1.965M372.68 661.5h-1.838M372.68 660.91h-1.692M372.68 660.4h-1.569M372.68 659.88h-1.436M372.68 659.38h-1.316M372.68 658.94h-1.212M372.68 658.59h-1.121M372.68 664.09v-5.88M379.15 656.27l-4.029 8.08M379.4 656.14l-3.43 8.254M379.65 656.05l-2.721 8.383M379.82 656.2l-2.116 8.238M377.8 664.06h-2.534M378 663.32h-2.359M378.11 662.72h-2.17M378.32 662.07h-2.053M378.42 661.55h-1.897M378.6 660.95h-1.787M378.78 660.25h-1.618M378.92 659.72h-1.488M379.07 659.11h-1.348M379.18 658.7h-1.247M379.28 658.31h-1.143M379.38 657.91h-1.053M379.47 657.56h-.968M379.56 657.21h-.887M379.66 656.85h-.8M379.74 656.52h-.721M382.36 656.4l1.763 5.58M382.7 656.52l2.139 5.355M383 656.53l2.505 5.237M386.11 661.32l-2.763-4.888M386.11 661.31h-2.192M385.73 660.65h-2.019M385.36 659.99h-1.851M384.98 659.32h-1.688M384.61 658.66h-1.529M384.23 658h-1.36M383.86 657.34h-1.194M383.48 656.67h-1.032M385.74 656.83l-1.725 5.173M386.26 656.6l-1.6 5.303M385.4 661.78l1.174-4.992M386.88 656.96l-.988 4.75M384.22 661.41h1.731M384.44 660.76h1.65M384.65 660.12h1.572M384.86 659.48h1.491M385.08 658.83h1.41M385.3 658.19h1.329M385.51 657.55h1.248M385.72 656.9h1.027M387.67 657.01l.846 3.547M387.98 656.84l1.169 3.697M388.38 656.83l1.275 3.702M388.9 657.03l1.277 3.477M390.06 660.2h-1.638M389.87 659.68h-1.556M389.68 659.16h-1.491M389.49 658.64h-1.43M389.29 658.12h-1.358M389.1 657.6h-1.284M388.91 657.08h-1.218" transform="matrix(4.4862 0 0 4.4867 -1190.9 -2609)" stroke-width=".138" stroke="#000" fill="none"/> - <path d="M479.626 380.309c3.616-2.329 9.794-1.862 12.943.466 3.732-2.095 10.493-1.516 13.643 1.284 4.777-3.262 8.86-3.729 13.52-.584 3.617-2.562 9.211-2.795 13.527.234 4.194-1.984 8.86-3.612 12.938.7-2.445-1.75-7.694-3.267-12.938.816-4.083-4.083-11.193-2.566-13.526.233-3.033-3.616-9.444-4.2-13.293.234-4.194-3.5-10.488-3.617-13.871-.934-2.683-2.1-6.644-3.845-12.943-2.45z" fill="#00b800"/> - <path d="M543.33 375.329c-18.537 3.203-58.935.933-67.795-1.284-3.046-.762-2.216-1.866.35-1.283 10.21 2.32 32 2.333 44.01 1.75 2.332-3.091 6.002-8.336 7.11-9.795s1.597-1.592 3.908-1.983c4.136-.7 6.5-1.076 10.085-1.691.058.466.058 1.05.058 1.4-.292.233-.583.641-.817.758 0 2.391.467 8.22.933 10.32.467-.059 1.05-.234 1.342-.292.816-.234 1.628 1.866.816 2.1z" fill="#cf6200"/> - <path d="M573.702 376.226c.668-.018 2.064-.05 2.45-.058.758-.018 1.82-.539 2.287-1.705s1.911-5.479 2.436-7.287l-1.866-2.813c.408-2.32.933-5.465.992-6.106.933-.35 1.92-.7 2.386-.875.117-.525-.112-1.952-.583-2.419-7.985.305-31.883 1.136-36.257 1.194-1.05 0-1.521-.045-1.92 1.458-2.217 8.278.847 19.894 9.21 26.584.583.466 1.319.076.345-.817-1.395-1.283-3.553-3.908-5.011-6.501 1.633-.027 4.944-.08 5.935-.121.476 1.96 1.965 6.097 2.257 6.797s1.01.799.668-.247c-.803-2.45-1.225-5.24-1.574-6.582 1.516-.036 4.374-.009 6.123-.107.085 2.216.319 5.186.377 6.003s.758.875.772-.058c.018-.934.036-4.877.022-6.04 1.974-.053 4.495-.139 5.428-.139-.13 1.261-.372 5.34-.462 5.986-.134.95.364 1.4.597.058s.7-4.478.83-6.066c.79-.023 2.867-.108 3.741-.13-.085 1.243-1.251 5.02-1.601 6.012s.215 1.023.61.085c.413-.96 1.691-4.751 1.808-6.106z" fill="#cf6200"/> - <path d="M547.233 375.284c-.641-1.284-2.624-5.847-2.8-9.167 1.692-.031 5.923-.112 7.964-.157.3 2.504 1.072 7.897 1.48 9.176-2.386.058-5.302.134-6.644.148zM553.783 365.906c.22 1.912 1.22 8.476 1.382 9.234 1.732-.103 5.742-.117 6.438-.175-.072-1.75-.355-8.314-.386-9.247-1.813.05-6.523.166-7.434.188zM544.766 357.786c-.323 1.678-.381 5.262-.292 6.792 2.042.04 7.066-.08 7.761-.139-.17-1.74-.444-4.89-.619-6.855-1.664.071-5.742.17-6.85.202zM553.11 357.561c.059 1.633.422 5.626.539 6.847 1.763-.05 6.078-.14 7.536-.189-.076-1.494-.314-6.308-.34-6.891-2.342.063-6.25.21-7.735.233zM562.352 357.292c.072 1.516.265 5.797.206 6.905 1.87-.05 5.446-.085 6.555-.175.085-1.521.332-5.869.215-6.977-2.1.081-5.446.193-6.976.247zM570.606 356.978c0 1.283-.161 5.792-.22 7.017 1.853-.072 6.061-.22 7.156-.247.292-1.503.875-5.406 1.05-7.053-1.75.059-6.707.247-7.986.283zM577.83 365.278c-2.392.077-6.237.18-7.538.23-.201 2.951-.57 8.053-.744 9.22 2.104-.046 6.357-.18 7.29-.207.7-1.4 2.216-5.77 2.566-7.112-.525-.816-.933-1.283-1.575-2.13zM562.621 365.682c0 1.05.184 8.565.229 9.207 1.368-.045 4.921-.094 5.446-.153.265-2.925.664-8.529.736-9.229-2.423.067-4.8.14-6.411.175zM531.666 363.887l-3.037.539c-1.4 2.261-6.586 9.256-7.227 10.072 3.611-.103 9.26-.21 10.619-.34-.1-1.876-.35-9.342-.355-10.27zM533.012 363.618c.072 2.392.3 8.763.359 10.454 1.79-.103 5.087-.318 6.429-.435-.31-3.006-.875-10.185-.992-11.06-1.503.274-4.455.794-5.796 1.041z"/> - <path d="M377.29 656.93c.091.001.103.079-.001.078l-7.678-.095c-.104-.001-.09-.079.001-.078l7.678.095zM383.33 650.78c.091.003.102.081-.002.078l-6.083-.167c-.104-.003-.089-.081.002-.078l6.083.167zM376.91 652.54c.091.001.103.079-.001.078l-6.808-.05c-.104 0-.09-.078 0-.078l6.809.05zM377.11 648.12c.091 0 .104.078 0 .078l-7.121-.037c-.104 0-.09-.078.001-.077l7.12.036zM376.62 644.63c.091.001.102.08-.001.078l-6.919-.104c-.104-.002-.09-.08.001-.078l6.919.104z" transform="matrix(4.4862 0 0 4.4867 -1190.9 -2609)" stroke-width=".138" stroke="#000"/> - <path d="M383.78 642.59c.091-.001.105.077.001.078l-5.938.057c-.104.001-.092-.077-.001-.078l5.938-.057z" fill="#fff" transform="matrix(4.4862 0 0 4.4867 -1190.9 -2609)" stroke-width=".138" stroke="#000"/> - <path d="M384.15 645.91c.091 0 .104.078 0 .078h-6.562c-.104 0-.091-.078 0-.078h6.562zM390.59 650.64c.091 0 .104.078 0 .078h-7.072c-.104 0-.091-.078 0-.078h7.072zM390.69 644.73c.091.001.103.079-.001.078l-7.225-.071c-.104-.001-.09-.079.001-.078l7.225.071zM384.01 655.12c.091.001.103.079-.001.078l-6.356-.042c-.104-.001-.09-.079.001-.078l6.356.042zM390.22 655.98c.091.001.103.079-.001.078l-5.587-.074c-.104-.001-.089-.079.002-.078l5.586.074z" transform="matrix(4.4862 0 0 4.4867 -1190.9 -2609)" stroke-width=".138" stroke="#000"/> - <path d="M395.26 657.05c.157-.349.179-1.151.089-1.455a1.106 1.106 0 0 1-.647-.04 2.973 2.973 0 0 0-.341-.106c-.022.402-.168 1.426-.348 1.822-.314.089-.947-.015-1.307-.128l-.262.942a3.45 3.45 0 0 0 1.452-.009c-.035.601-.114 1.148-.439 1.526.531.012 1.006-.066 1.18-.252a.403.403 0 0 1 .053-.048c.245-.41.252-.944.311-1.304.181.013.415-.039.519-.143s.273-.156.442-.143c.154.012.394-.02.699-.143.008-.184.044-.384.107-.558.034-.095.071-.253.102-.444-.387.185-1.25.494-1.61.483z" transform="matrix(4.4862 0 0 4.4867 -1190.9 -2609)" stroke-width=".138" stroke="#000" fill="#ef072d"/> - <path d="M370.46 623.2c-.791.023-2.513.039-2.875.242-.361.204-.52.294.113.407s1.704.414 2.291.776c.587.361 1.079 1.001.917 1.914-.485 2.743.949 5.381 3.027 6.376.201.096.249.169.204.542s-.181.995-.294 1.153c-.113.159-.169.419.192.294-.248.464-.802 1.391-.971 1.628-1.661-.203-3.016.023-3.141 1.763-.012.17.046.441.305.012.26-.43.554-.837 1.265-.95-.418.644-.553 1.221-.485 1.594.067.373.169.599.35.124.181-.474.514-.918.87-1.187.135-.101.226-.124.124.17s.045.927.249 1.142c.203.214.305.124.248-.226-.056-.351.032-1.084.463-1.312.621-.327 1.152-.158 1.401.272.248.429.463.022.192-.464s-.554-.825-1.006-.859c.396-.701.859-1.549.961-1.718.101-.17.26-.249.395-.147.136.102.226.09.362-.192.135-.283.372-1.119.711-1.458.17-.046.441-.113.542-.204.441.644.836 1.357.938 1.515.101.158.215.226.113.554s-.452 1.368-.508 1.594c-1.232.045-1.796.067-2.192.757-.173.301.102.418.396.26.293-.158.711-.294.926-.26.214.034.315.144.101.249-.756.373-1.229.847-1.197 1.503.011.237.109.355.294.034.26-.452.734-.904 1.31-1.029-.034.554.091 1.368.429 1.538.339.169.363-.003.237-.328-.203-.52.008-1.043.26-1.323.531-.588 1.74.226 1.966.43.226.203.432.288.305-.238-.17-.7-1.164-1.107-2.011-1.22.237-1.142.87-3.448 1.209-4.239.497.271.885-.444 1.717-.136 1.4.52 3.501 1.831 3.863 2.125.361.294.497.226.678.068.18-.158.497 0 .745.045.249.045.475.113.158-.52-.316-.633-1.084-1.741-2.372-2.6.768.068 1.808.068 1.808-.135 0-.204-1.198-.588-1.695-.633.475-.113 1.198-.385 1.536-.769.201-.227-.04-.28-.745-.294-2.169-.045-3.253-.028-4.383-.678-1.807-1.04-2.841-2.135-3.728-2.6-.474-.249-.763-.823-.946-1.319-.587-1.583-.558-2.295-1.936-2.815s-2.963.117-3.686.772z" transform="matrix(4.4862 0 0 4.4867 -1190.9 -2609)" stroke-width=".138" stroke="#000"/> - <path d="M370.55 623.56c-.351-.013-1.04-.096-1.611-.039-.13.013-.286.078.026.117s1.156.246 1.455.35.169.26-.091.195-.356.031-.143.182c1.105.78 1.222 1.079.936 3.755.208.143.377.247.559.338s.13.221-.065.169-.377.065-.065.13.454.208.156.195c-.299-.013-.65.247-.065.182.584-.065.818.208.13.221-.689.013-.429.234-.065.234.649 0 .454.182.286.182-.169 0-.247.221.182.182.428-.039.597-.052.753-.026s.221.155-.013.169c-.234.012-.221.181.13.181s.497.106.182.169c-.13.026-.31.091.065.143.65.091.676.247.468.273s-.234.143.065.169c.298.026.558.117.312.182-.247.065-.377.208-.066.234.312.026.572.143.338.221s-.286.221.013.208.416.156.208.272c-.208.117-.351.195-.481-.012-.129-.208-.207-.273-.246-.117-.039.155-.13.052-.234-.182s-.286-.299-.234-.117-.182.208-.403.117c.819.831 2.027 1.585 3.95.805.164-.066.195 0 .325.273s.494.871.624 1.092.233.022.298-.195c.26-.858.455-1.495.533-1.728.078-.234.442-.468.325.35.286-.195 1.553-.379 2.534-.013 1.078.403 2.162 1.028 2.716 1.443a.624.624 0 0 0 .493.143c.26-.026.325-.065-.169-.52-.493-.455-.285-.676.026-.455.312.221.481.091.247-.182s-.792-.805-.974-.935-.208-.182-.624-.208-1.299-.026-1.559-.026-.338.026.234.234c.571.207 1.741.961 2.001 1.143s.442.598-.13.234-2.365-1.481-3.56-1.897c-2.729.182-4.886.546-6.497-1.221-.772-.846-.806-2.781.493-3.587-.26-.221-.221-.351-.117-.403s.143-.104.039-.234c-.103-.13-.091-.246 0-.298-.285-.156-.415-.338-.402-.533-.351-.078-.507-.494-.975-.364s-.702.026-.844-.091c-.144-.117-.26-.169-.52-.143s-.468-.078-.481-.208.22-.193.572-.039c.74.325 1.338.481 1.793-.13.455-.61-.13-1.182-1.001-1.351-.87-.169-1.507.468-1.832.767z" transform="matrix(4.4862 0 0 4.4867 -1190.9 -2609)" stroke-width=".138" stroke="#000" fill="#fff"/> - <path d="M374.92 623.33c-.262-.284-.728-.546-.961-.624-.234-.078-.26.156-.13.273-.104.156-.143.533.039.637s.184.252.013.337c-.26.13-.172.82.22.624.13-.065.234-.039.208.065s.026.234.143.26.104.195.078.26.013.091.143.104.143.325-.091.429c.286 0 .364-.052.442.182.078.233.39.285.39.571s-.052.338-.39.286-.468.052-.572.182-.13.26.13.273.312.13.052.247-.688.039-.753.286c-.065.246 0 .363.194.272.195-.09.598-.259.754-.35s.299-.104.429.104.026.441-.195.26c-.221-.182-.325-.014-.455.09s-.325.169-.533.169c-.207 0-.35.027-.324.494.078 1.404 1.169 2.443 3.17 2.417s2.989-.052 3.288-.013c-.663-.364-1.079-.559-1.313-.533s-.429.065-.325-.117-.013-.182-.117-.26-.233-.182-.441.039-.702.468-.949.52-.546.039-.312-.195.754-.312.91-.416.156-.168.156-.246-.039-.299.26-.13c.597.338 1.533.844 1.78.831s.416-.117.195-.26-.286-.35-.221-.428.104-.156.494.065c.389.22 1.026.506 1.26.61s.546.065.065-.286c-.481-.35-1.975-1.338-2.391-1.65s-.234.065-.195.182-.286.26-.455.117-.286-.299-.052-.429.286-.143-.065-.455c-.35-.311-.454-.285-.376-.026.078.26.104.546-.26.403s-.546-.312-.312-.455c.234-.142.533-.22.143-.545s-.273 0-.364.182-.39.182-.559.039-.247-.286-.13-.403.104-.182.273-.091.429.039.117-.234-.429-.156-.364 0-.182.429-.571.065c-.185-.172-.182-.403.013-.442.194-.039.213-.14.077-.338-.792-1.156-.467-2.092-1.26-2.949z" transform="matrix(4.4862 0 0 4.4867 -1190.9 -2609)" stroke-width=".138" stroke="#000" fill="#fff"/> - <path d="M491.65 188.413c-.306.457-.418.44-.983.816-.696.462-.853 1.786.314 1.629.807-.108 1.278-.588 1.597-.978-.256-.494-.56-.983-.929-1.467zM488.015 185.496c-.897.87-1.054 1.261-.596 1.261.543 0 .31.076-.08.7-.387.624.78.933 1.246.467s.543-.624.776 0c.189.507.956.026 1.44-.463-.794-.767-1.861-1.476-2.786-1.965zM486.4 190.521c-1.166.584-.771 3.68.987 2.8.584-.292 1.05-.175.934.292-.063.246-.023.53.107.753a5.405 5.405 0 0 0 1.934-1.395c1.09-1.243.076-1.166-1.552-1.166-1.633 0-2.1-.31-.548-1.243 1.391-.835.485-1.414-1.44-1.144.278.394.14.825-.422 1.103zM493.085 197.386c-.857-.933-.314-1.4.619-1.866a1.21 1.21 0 0 0 .498-.427c-.265-1.027-.476-2.014-.754-2.974-.489.139-1.058 1.229-1.22 1.767-.233.777-.467 1.243-1.243 1.01-.69-.207-1.381.57-1.525 1.4.108.045.274.076.494.098.323.032.484.472.385.938 2.104-.067 2.463 1.387 2.822 2.383.39 1.09.857.933 1.167.314.31-.624-.39-1.71-1.243-2.643z" fill="#cf6200"/> - <path d="M493.668 209.59c-.381.861-.39.776-1.633.852-1.243.081-2.808.292-3.495 1.014-.372.386-2.52.49-2.525 1.436-.01.951 0 1.75.933 1.808.928.058 1.045.175.7.875-.355.7-.584 1.867 1.045 1.983 1.633.117 2.8-.408 3.208.52.408.934-.032 2.423.291 2.975s1.427.907 3.136 1.436c1.14.355 5.442.556 6.765.404 1.32-.157.826-.947-.498-1.063-1.319-.117-2.292-.31-2.602-1.28-.31-.973-.583-1.48.157-2.292.736-.816 1.476-1.44 1.05-2.8-.43-1.36-1.13-2.956-2.683-3.383-1.556-.426-1.063-2.552-2.606-2.759-.583-.076-1.086-.076-1.243.274z" fill="#ff0"/> - <path d="M486.131 222.242c1.337.117 2.504.525 1.4.817-1.108.292-1.691.933-.296 1.05 1.4.116 2.566.641 1.516.991s-1.283.992.059.934 1.866.7.933 1.22c-.933.525-1.575.875-2.158-.054-.579-.933-.929-1.225-1.104-.525-.175.696-.583.233-1.05-.816s-1.283-1.342-1.05-.525-.816.933-1.807.525c.978.991 2.077 1.956 3.328 2.772 1.432-.489 3.01-.09 3.55-.036.582.059 2.39.467 3.382.992s1.633-.408 1.224-1.458c-.408-1.046-.466-.696-.991-.117-.525.583-.642-.233-.583-1.453.05-1.032-.642-.759-.875-.117s-.758-.408-.467-1.05-.058-.875-.583-.7-.583 0-.641-1.167-.584-.991-.759-.524-.641-.175-1.34-1.109c-.611-.816-1.315-.336-2.536.148.153.09.431.166.848.202z" fill="#cf6200"/> - <path d="M500.308 229.466c-6.37 2.584-10.965 1.436-14.423-.857 1.43-.49 3.041-.072 3.58-.018.583.058 2.39.467 3.382.992s1.633-.409 1.225-1.459c.875 1.109 1.516 1.867 2.561 1.809 1.05-.059 2.8-.234 3.675-.467zM486.714 200.123c-.39-1.32-.776-1.633-1.475-1.553-.7.077-1.01-.08-1.79-.39-.777-.31-1.786.076-1.943 1.476s-1.01 2.1-2.176 2.953c-1.166.856-1.866 1.556-1.866 2.956s-.31 1.786-1.086 2.8c-.345.449-.834.96-1.292 1.498.503.315.974.588 1.467.83.817.409.583.992-.291.759s-1.692.291-.292.583 2.037.933.7.875c-1.341-.058-2.916 1.108-.292.817 2.62-.292 3.67.933.583.991-3.09.058-1.924 1.05-.291 1.05 2.911 0 2.037.817 1.283.817-.758 0-1.108.991.816.816.027-.004.05-.009.081-.009.278-.287.485-.646.637-1.1.31-.932.62-3.656 1.71-4.432 1.085-.776 1.632-1.866 1.632-2.643s1.629-4.195 2.72-5.052 1.556-2.719 1.165-4.042z" fill="#ff0"/> - <path d="M484.427 200.168c-1.104-.736-2.176-.31-2.176 1.09s-.7 1.786-1.633 2.252c-.929.467-1.786 1.633-1.943 2.724-.152 1.086.157 1.785-.619 2.642-.78.853-.857 1.553-.31 2.02.543.466.543.547.777 1.242.233.7 1.552-.076 1.552-.852s.314-.776 1.166-1.243c.857-.467 2.257-2.723 1.943-3.343-.31-.623-1.086-1.166-.076-2.023 1.009-.853 2.1-.933 2.1-1.786 0-.857.309-1.166.618-1.476.314-.314-.7-.78-1.4-1.247z" fill="#cf6200"/> - <path d="M484.427 199.046c-.727-.283-1.162 1.243-.153 1.476s1.166-1.09.153-1.476zM484.247 201.02c-.772.094-1.633 1.108-.35.933s1.808-1.108.35-.933zM482.722 202.905c-.794.399-.642 1.458.525.7s1.458-1.692-.525-.7zM481.466 204.52c-.799.395-.642 1.454.525.7 1.166-.758 1.458-1.692-.525-.7z"/> - <path d="M479.85 205.283c-.793.399-.291 1.458.875.7s1.109-1.692-.874-.7zM480.838 206.27c-.794.399-.292 1.458.874.7s1.108-1.692-.874-.7z"/> - <path d="M479.447 206.673c-.794.4-.292 1.459.875.7s1.108-1.691-.875-.7zM480.344 207.795c-.798.4-.292 1.458.87.7 1.167-.758 1.109-1.691-.87-.7z"/> - <path d="M478.998 208.468c-.794.395-.291 1.454.875.696s1.108-1.687-.875-.696z"/> - <path d="M479.088 209.5c-.794.4-.292 1.458.875.7s1.108-1.691-.875-.7z"/> - <path d="M478.46 219.326c-.803.103-1.32 1.247-.31 1.48s1.243.31 1.243 1.086.314 1.867 1.4 1.943c1.09.08 2.023-1.166 1.09-1.552-.933-.39-1.79-.7-1.866-1.557-.077-.853-.934-1.476-1.557-1.4z" fill="#cf6200"/> - <path d="M507.082 212.64c.143.18.323.378.53.553.757.641 2.215 0 2.04-.525s-.991-2.217.875-.817 8.569 5.833 10.727 7.403c2.158 1.575.758 1.75-.292 1.283s-3.907-1.75-5.652-2.737c-1.75-.991-1.925-.641-2.217-.291-.246.291-.049.996.593 1.593-1.041.152-2.733-.077-3.217-1.185-.583-1.341-1.983-2.975-2.974-4.258-.368-.475-.476-.771-.413-1.018z" fill="#ff0"/> - <path d="M564.909 403.64c-1.454.991-3.378 2.741-2.1 5.186.153-.08.297-.175.445-.26 5.702-6.9 10.582-14.156 14.764-21.693.049-.26.094-.507.125-.723-1.633 1.4-4.199 2.796-5.249 3.146.7 1.866-2.561 4.316-4.31 5.016.699 1.166.466 2.916-1.05 3.266.35 1.045-.817 1.045-2.217 1.629s-2.1 1.05-2.561 1.75c.753-.409 1.803-.759 2.386-.584s.7 1.05-.35 1.283-1.745.817-2.1 1.284c1.517-.584 3.675-.292 2.217.7z" fill="#00d860"/> - <path d="M375.97 628.41c-.384-.335-.481-.13-.325.078s.039.312-.299.364-.845.117-1.053.117-.454.286.039.26c.494-.026 1.326-.195 1.547-.286s.402-.26.091-.533zM376.72 629c-.317-.285-.429-.208-.351 0s-.065.247-.272.312c-.208.065-1.027.338-1.378.377s-.429.286.091.273 1.52-.429 1.637-.507.156-.234.286-.156.247-.065-.013-.299zM376.96 629.83c-.23.137-.805.389-1.039.454s-.429.325.065.286c.493-.039 1.078-.494 1.234-.584.156-.091.234-.156.364-.143s.364-.169-.065-.403-.689-.117-.481.065.052.247-.078.325z" transform="matrix(4.4862 0 0 4.4867 -1190.9 -2609)" stroke-width=".138" stroke="#000"/> - <path d="M482.049 187.515c-2.849-1.87-6.101 2.05-2.952 4.2 2.759 1.884 5.675-2.41 2.952-4.2z"/> - <path d="M478.505 189.22l.843.059c-.175.87.7 2.185 2.041 1.861-1.076.817-3.176-.116-2.884-1.92zM489.54 231.71c.862.25 3.854.556 4.868.605-.507 1.068-.964 1.777-1.27 2.54-.304.758-.452.812-.506-.355-.05-1.171-.709-1.93-1.315-.713-.61 1.22-.915 1.673-1.215 2.18-.305.507-.763.714-.61-.556s.103-2.59.049-3.702z" fill="#fff"/> - <path d="M399.67 640.77c-.046 16.332-2.623 33.927-23.764 42.308-21.142-8.381-23.719-25.976-23.765-42.308h47.529zM399.67 640.77c.018-6.152-.324-12.125-.168-17.359-7.9-3.535-18.295-4.262-23.596-4.262-5.302 0-15.697.727-23.597 4.262.156 5.234-.185 11.207-.168 17.359h47.529z" transform="matrix(4.4862 0 0 4.4867 -1190.9 -2609)" stroke="#000" stroke-width=".275" fill="none"/> - </g> -</svg> diff --git a/img/flags/4x3/si.svg b/img/flags/4x3/si.svg deleted file mode 100644 index 9845d01..0000000 --- a/img/flags/4x3/si.svg +++ /dev/null @@ -1,18 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" height="480" width="640" viewBox="0 0 640 480"> - <defs> - <clipPath id="a"> - <path fill-opacity=".67" d="M-15.067 0h682.67v512h-682.67z"/> - </clipPath> - </defs> - <g fill-rule="evenodd" clip-path="url(#a)" transform="translate(14.125) scale(.9375)" stroke-width="1pt"> - <path fill="#fff" d="M-62 0H962v512H-62z"/> - <path fill="#de2918" d="M-62 341.33H962V512H-62z"/> - <path fill="#08399c" d="M-62 170.67H962v170.67H-62z"/> - <path d="M228.37 92.976c-4.02 61.651-6.322 95.436-15.709 111.07-10.15 16.789-20.025 29.081-59.63 43.882-39.61-14.81-49.48-27.1-59.633-43.89-9.387-15.63-11.69-49.41-15.709-111.06l5.853-1.971c11.783-3.594 20.574-6.484 27.077-7.767 9.313-1.971 17.228-4.2 42.257-4.722 25.029.43 32.983 2.797 42.296 4.768 6.45 1.375 15.617 4.081 27.312 7.744l5.884 1.948z" fill="#de2918"/> - <path d="M222.6 90.955c-3.802 61.518-6.983 89.69-11.943 103.24-9.626 23.193-24.866 35.909-57.665 48.038-32.8-12.14-48.04-24.86-57.664-48.05-4.961-13.54-8.095-41.64-11.788-103.3 11.534-3.602 20.577-6.418 27.08-7.7 9.313-1.972 17.228-4.294 42.257-4.725 25.029.431 33.037 2.753 42.35 4.724 6.503 1.283 15.732 4.098 27.373 7.763z" fill="#08399c"/> - <path d="M152.96 109.79l1.573 3.723 6.91.947-4.478 2.7 4.33 2.894-6.298 1.055-1.916 3.374-2.156-3.474-5.995-.85 4.08-2.958-4.2-2.691 6.635-1.017 1.515-3.703z" fill="#fc0"/> - <path d="M208.28 179.62l-3.83-3.028-2.769-4.554-5.422-4.704-2.826-4.753-5.423-4.852-2.653-4.753-2.883-2.327-1.903-1.832-4.899 4.295-2.67 4.665-3.326 3.016-3.655-2.854-2.763-4.867L153 134.855l-10.26 18.217-2.763 4.867-3.654 2.854-3.327-3.016-2.67-4.665-4.898-4.295-1.904 1.832-2.883 2.328-2.653 4.752-5.423 4.852-2.825 4.753-5.423 4.704-2.768 4.554-3.821 3.099c1.984 16.886 12.748 30.116 18.613 36.168 6.545 6.355 20.039 14.858 36.54 20.486 16.548-5.508 30.229-14.131 36.774-20.486 5.865-6.052 16.629-19.282 18.625-36.239z" fill="#fff"/> - <path d="M169.45 83.89l1.573 3.723 6.91.947-4.478 2.7 4.33 2.894-6.298 1.055-1.916 3.374-2.156-3.474-5.995-.85 4.08-2.958-4.2-2.691 6.635-1.017 1.515-3.703zM136.47 83.834l1.573 3.723 6.91.947-4.478 2.7 4.33 2.894-6.298 1.055-1.916 3.374-2.156-3.474-5.995-.85 4.08-2.958-4.2-2.691 6.635-1.017 1.515-3.703z" fill="#fc0"/> - <path d="M199.72 203.03l-7.468.023-6.892-.513-8.348-4.094-9.409.056-8.149 3.981-6.427.569-6.428-.569-8.148-3.98-9.41-.057-8.347 4.094-6.892.513-7.562-.104-3.652-6.187.136-.142 11.172 1.848 6.891-.512 8.348-4.095 9.41.057 8.148 3.981 6.427.568 6.428-.568 8.148-3.981 9.41-.057 8.347 4.095 6.892.512 10.874-1.906.144.286-3.643 6.182zM113.25 212.54l7.393-.513 8.348-4.094 9.409.057 8.148 3.98 6.428.569 6.427-.568 8.149-3.981 9.41-.057 8.347 4.094 7.493.513 4.835-5.96-.163-.135-5.18 1.51-6.892-.512-8.347-4.094-9.41.056-8.148 3.981-6.428.569-6.427-.569-8.149-3.98-9.409-.057-8.347 4.094-6.892.513-5.077-1.28-.061.25 4.543 5.614z" fill="#08399c"/> - </g> -</svg> diff --git a/img/flags/4x3/sj.svg b/img/flags/4x3/sj.svg deleted file mode 100644 index 6f710de..0000000 --- a/img/flags/4x3/sj.svg +++ /dev/null @@ -1,7 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" height="480" width="640" viewBox="0 0 640 480"> - <path fill="#ef2b2d" d="M0 0h640v480H0z"/> - <path fill="#fff" d="M180 0h120v480H180z"/> - <path fill="#fff" d="M0 180h640v120H0z"/> - <path fill="#002868" d="M210 0h60v480h-60z"/> - <path fill="#002868" d="M0 210h640v60H0z"/> -</svg> diff --git a/img/flags/4x3/sk.svg b/img/flags/4x3/sk.svg deleted file mode 100644 index 5d291f7..0000000 --- a/img/flags/4x3/sk.svg +++ /dev/null @@ -1,9 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" height="480" width="640" viewBox="0 0 640 480"> - <path fill="#ee1c25" d="M0 0h640v480H0z"/> - <path fill="#0b4ea2" d="M0 0h640v320H0z"/> - <path fill="#fff" d="M0 0h640v160H0z"/> - <path d="M233.004 370.8c-43.025-20.724-104.568-61.858-104.568-143.226 0-81.37 3.89-118.374 3.89-118.374h201.358s3.891 37.005 3.891 118.374c0 81.368-61.543 122.502-104.571 143.226z" fill="#fff"/> - <path d="M233.004 360c-39.472-19.013-95.934-56.75-95.934-131.4 0-74.651 3.57-108.6 3.57-108.6H325.37s3.57 33.95 3.57 108.6c0 74.65-56.462 112.387-95.936 131.4z" fill="#ee1c25"/> - <path d="M241.446 209.027c10.688.173 31.54.591 50.109-5.622 0 0-.49 6.645-.49 14.385 0 7.742.49 14.386.49 14.386-17.032-5.7-38.064-5.819-50.108-5.666v41.231h-16.883V226.51c-12.044-.153-33.076-.034-50.108 5.665 0 0 .49-6.644.49-14.386 0-7.74-.49-14.384-.49-14.384 18.568 6.213 39.42 5.795 50.108 5.622v-25.894c-9.741-.087-23.779.378-39.65 5.69 0 0 .49-6.645.49-14.386 0-7.74-.49-14.385-.49-14.385 15.848 5.303 29.868 5.776 39.607 5.691-.501-16.398-5.278-37.065-5.278-37.065s9.831.767 13.761.767c3.934 0 13.763-.767 13.763-.767s-4.776 20.667-5.277 37.064c9.739.084 23.759-.388 39.606-5.691 0 0-.49 6.644-.49 14.385 0 7.74.49 14.385.49 14.385-15.87-5.311-29.909-5.776-39.65-5.69v25.894z" fill="#fff"/> - <path d="M233 263.275c-19.878 0-30.525 27.575-30.525 27.575s-5.907-13.075-22.125-13.075c-10.973 0-19.06 9.761-24.2 18.8C176.113 328.34 207.964 347.941 233 360c25.039-12.06 56.91-31.657 76.875-63.425-5.14-9.039-13.227-18.8-24.2-18.8-16.219 0-22.15 13.075-22.15 13.075S252.879 263.275 233 263.275z" fill="#0b4ea2"/> -</svg> diff --git a/img/flags/4x3/sl.svg b/img/flags/4x3/sl.svg deleted file mode 100644 index 4050254..0000000 --- a/img/flags/4x3/sl.svg +++ /dev/null @@ -1,7 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" height="480" width="640" viewBox="0 0 640 480"> - <g fill-rule="evenodd"> - <path fill="#0000cd" d="M0 320.344h640V480H0z"/> - <path fill="#fff" d="M0 160.688h640v159.656H0z"/> - <path fill="#00cd00" d="M0 0h640v160.688H0z"/> - </g> -</svg> diff --git a/img/flags/4x3/sm.svg b/img/flags/4x3/sm.svg deleted file mode 100644 index 6ba0116..0000000 --- a/img/flags/4x3/sm.svg +++ /dev/null @@ -1,92 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" height="480" width="640" viewBox="0 0 640 480"> - <g fill-rule="evenodd" stroke-width="1pt"> - <path fill="#19b6ef" d="M0 240h640v240H0z"/> - <path fill="#fff" d="M0 0h640v240H0z"/> - </g> - <path d="M317.07 339.221c52.45-39.239 108.96-119.306 42.74-161.41-12.336-2.388-26.107-1.672-32.713 3.582-3.501-1.99-6.288-1.83-9.79 1.91-2.466-3.025-4.935-4.379-10.028-2.865-10.188-5.173-19.42-6.288-31.517-3.105-57.623 34.622-22.366 116.76 41.308 161.888z" fill-rule="evenodd" stroke="#7d6c00" stroke-width="2.3686254" fill="#fd0"/> - <g stroke="#3a9d4f"> - <path stroke-linejoin="round" d="M414.08 250.106s5.903-7.939 6.106-7.939c5.904-3.46 6.515-7.938 6.515-7.938 5.903-1.833 4.07-6.718 4.477-7.328 2.852-3.053 1.833-6.108 1.426-7.126 0-.812 2.036-8.345-.814-9.362.135-8.008-4.818-7.261-8.754-2.036-4.207 1.221-5.157 4.682-3.664 8.55-5.497 0-5.7 7.939-4.071 12.416-7.328-.203-3.257 7.939-3.461 8.347-2.442 1.221 1.832 12.824 2.24 12.416zM367.857 318.3l3.664 2.239c.746 2.781 3.325 4.547 5.294 4.072.95 4.274 5.563 3.665 8.956 1.221 2.714 3.936 6.04 4.005 10.586 2.647 4.07 2.985 9.364 1.696 12.824-1.426 3.731 3.053 6.243.815 8.142-2.442 2.917.746 5.224.272 6.31-2.647 5.7-.474 2.85-5.835-1.83-8.142 3.73-3.258 7.87-9.975 2.035-10.993-1.833-1.356-5.292-1.084-7.94.205-.677-2.987-4.818-3.733-9.364-.408-1.56-3.325-6.989-1.764-9.568.611-3.256-2.85-7.124-2.85-12.824.406L367.857 318.3zM367.857 309.555c.678-3.731-1.9-10.517 2.035-11.195-.746-6.243.34-13.3 7.532-12.621 1.155-5.903.883-11.4 7.736-12.215 0 0 5.497-19.134 11.197-5.903 2.239 3.87 1.832 10.177-2.647 8.956.883 4.751-.678 8.889-5.903 8.754 2.307 3.324 1.56 7.872-1.018 9.976-6.311 4.748-12.62 9.5-18.932 14.248zM401.037 285.735l5.904-1.22c6.106-4.071 8.55-5.7 11.603-1.223 5.089-1.086 9.974-.543 9.771 3.461 6.04.407 5.971 4.274 5.294 7.328.949 5.36-1.358 12.35-5.09 3.867-11.807-7.192-18.525-6.243-37.253-2.035l9.771-10.178zM404.102 279.822c.205-.203 17.507-4.682 15.675-9.974 4.885-.815 5.904-5.7 6.108-5.7 10.177-3.256 9.566-9.161 9.566-9.161 2.918-3.122 8.075-6.243 6.922-11.807.34-6.31.882-10.177-7.532-6.106-6.311-.612-8.55 3.053-10.382 8.55-2.985-3.528-7.802 2.104-8.345 7.124 0 0-7.736 7.532-7.736 7.735s-6.514 12.01-6.514 12.01l2.238 7.33z" fill-rule="evenodd" stroke-width="2.3686254" fill="#4fd46b"/> - <path stroke-linejoin="round" d="M404.502 266.397c-4.14-3.122-6.446-6.853-5.7-10.586-2.713-3.664-4.614-5.903-2.035-9.16 0 0-2.036-7.329-2.036-7.532-5.292-2.035-3.053-6.513-1.629-8.142-2.51-3.461-2.578-7.126-.203-10.382-.068-6.515 4.546-4.071 8.345 0 0 0 6.311 4.479 1.63 8.55 4.681 1.629 6.107 5.698 3.46 7.327 4.071 1.833 4.681 5.497 2.442 7.94 4.14 3.326 2.579 7.465 3.868 11.196l-8.142 10.789z" fill-rule="evenodd" stroke-width="2.3686254" fill="#4fd46b"/> - <path stroke-linejoin="round" d="M411.831 236.064c-.203-.203-6.92-8.753-5.089-9.364-.406-2.647-2.441-5.497-1.22-8.142-3.325-3.325-3.394-7.26-.815-10.38-2.239-3.054-1.221-7.125 1.832-9.772-.95-5.022 2.579-6.175 5.7-7.126 2.307-8.075 6.038-5.971 8.142.203 3.19 2.782 2.715 6.99 1.63 10.18 3.799 2.578 1.492 5.766-.204 7.124l-9.976 27.277z" fill-rule="evenodd" stroke-width="2.3686254" fill="#4fd46b"/> - <path stroke-linejoin="round" d="M410.815 193.106l-5.7-5.7c1.473-3.02 2.659-8.344-1.627-10.789-2.364-5.757-14.182-12.892-16.083.815-1.799-4.136-5.563-8.21-8.345-3.46-6.175-5.292-9.5-3.665-6.311 3.053 0 0-2.848 4.478 4.682 7.939.611.61-2.442 8.142 6.515 8.345-1.696 2.579 1.086 6.175 4.682 5.903-2.579 3.19 1.764 6.583 4.477 5.294-1.154 3.528-1.086 5.225 3.868 5.7l5.497 6.31 4.477 6.106 3.868-29.516z" fill-rule="evenodd" stroke-width="2.3686254" fill="#4fd46b"/> - <path d="M414.28 246.508c.288-.288 10.938-24.757 12.378-32.243M415.43 203.05s1.726 19.864-3.167 34.545M382.615 182.895s21.879 21.015 23.893 29.651M397.873 180.596s1.439 17.274 7.484 34.259M436.45 243.343s-21.879 18.425-32.53 34.545M415.712 307.84s-28.788 4.03-41.454 4.318M406.218 320.215s-35.698-.864-38.29-3.454M388.361 273.859c0 .287-18.136 30.226-18.712 40.015" stroke-linecap="round" stroke-width="2.2203781" fill="none"/> - </g> - <path d="M316.87 333.441c-37.768-35.624-76.454-102.482-37.972-136.27 6.84 3.88 14.903.409 26.03-3.98 3.368 3.674 7.654 4.594 11.942 1.837 4.797 2.042 8.37.408 10.718-2.144 10.922 6.33 24.906 9.596 28.172 3.37 37.87 35.93-.511 103.095-38.89 137.187z" fill-rule="evenodd" stroke="#7d6c00" stroke-width="2.3686254" fill="#65c7ff"/> - <path d="M317.086 332.408c-16.219-16.307-31.017-34.385-42.347-57.66 1.939-1.632 2.84-2.138 3.861-4.997 5.818.818 8.88 1.021 16.536-.306 1.53 5.717 1.837 10.514 5.511 15.311l7.656-15.005c5.205 1.226 11.637 1.533 16.535 0 3.165 4.288 2.042 10.72 7.656 15.618 3.368-9.9 6.738-10.615 10.106-15.924 5.002 1.736 8.167 1.021 12.25-.307 2.143 2.45 1.072 2.41 4.975 6.007-10.233 20.32-24.265 40.728-42.739 57.263z" fill-rule="evenodd" fill="#8fc753"/> - <path d="M272.65 164.304a3.346 3.346 0 1 1-6.692 0 3.346 3.346 0 0 1 6.692 0zM269.158 156.594a3.346 3.346 0 1 1-6.691 0 3.346 3.346 0 0 1 6.691 0zM265.085 149.465a3.346 3.346 0 1 1-6.692 0 3.346 3.346 0 0 1 6.692 0zM262.321 142.482a3.346 3.346 0 1 1-6.692 0 3.346 3.346 0 0 1 6.692 0zM262.757 134.918a3.346 3.346 0 1 1-6.691 0 3.346 3.346 0 0 1 6.691 0zM280.42 122.407a3.346 3.346 0 1 1-6.692 0 3.346 3.346 0 0 1 6.692 0z" fill-rule="evenodd" stroke="#000" stroke-width="1.1110219000000001" fill="#fff"/> - <path d="M273.814 123.571a3.346 3.346 0 1 1-6.692 0 3.346 3.346 0 0 1 6.692 0zM266.54 127.935a3.346 3.346 0 1 1-6.692 0 3.346 3.346 0 0 1 6.692 0zM288.943 122.552a3.346 3.346 0 1 1-6.692 0 3.346 3.346 0 0 1 6.692 0zM298.254 123.28a3.346 3.346 0 1 1-6.692 0 3.346 3.346 0 0 1 6.692 0zM306.546 122.843a3.346 3.346 0 1 1-6.692 0 3.346 3.346 0 0 1 6.692 0z" fill-rule="evenodd" stroke="#000" stroke-width="1.1110219000000001" fill="#fff"/> - <path d="M325.874 117.504a8.583 8.583 0 1 1-17.166 0 8.583 8.583 0 0 1 17.166 0z" fill-rule="evenodd" stroke="#7d6c00" stroke-width="1.110941" fill="#fd0"/> - <path d="M334.913 122.698a3.346 3.346 0 1 1-6.692 0 3.346 3.346 0 0 1 6.692 0zM343.642 123.425a3.346 3.346 0 1 1-6.691 0 3.346 3.346 0 0 1 6.691 0zM352.08 122.988a3.346 3.346 0 1 1-6.693 0 3.346 3.346 0 0 1 6.692 0zM359.207 122.698a3.346 3.346 0 1 1-6.692 0 3.346 3.346 0 0 1 6.692 0zM368.082 123.716a3.346 3.346 0 1 1-6.692 0 3.346 3.346 0 0 1 6.692 0zM375.064 128.08a3.346 3.346 0 1 1-6.692 0 3.346 3.346 0 0 1 6.692 0z" fill-rule="evenodd" stroke="#000" stroke-width="1.1110219000000001" fill="#fff"/> - <path d="M269.414 151.697c2.85 5.42 5.698 11.05 8.548 16.47h79.23l9.174-15.846c-5.352-3.683-9.035-6.533-16.68-4.795-4.31-6.185-9.035-7.366-16.054-6.671-2.086-2.154-3.963-3.475-7.508-3.961l-16.678.416c-4.38.416-7.716 3.753-7.924 3.753-7.09-.835-13.552-.627-15.22 6.254-6.463-1.599-11.05.14-16.888 4.38z" fill-rule="evenodd" stroke="#ac0000" stroke-width="2.3686254" fill="#e40000"/> - <path d="M377.974 135.354a3.346 3.346 0 1 1-6.692 0 3.346 3.346 0 0 1 6.692 0zM378.556 143.21a3.346 3.346 0 1 1-6.692 0 3.346 3.346 0 0 1 6.692 0zM376.082 150.484a3.346 3.346 0 1 1-6.692 0 3.346 3.346 0 0 1 6.692 0zM373.027 156.448a3.346 3.346 0 1 1-6.692 0 3.346 3.346 0 0 1 6.692 0zM369.39 164.013a3.346 3.346 0 1 1-6.69 0 3.346 3.346 0 0 1 6.69 0z" fill-rule="evenodd" stroke="#000" stroke-width="1.1110219000000001" fill="#fff"/> - <path d="M322.566 154.424a4.946 4.946 0 1 1-9.893 0 4.946 4.946 0 0 1 9.893 0z" fill-rule="evenodd" stroke="#000" stroke-width="1.1105424000000002" fill="#fff"/> - <path d="M323.546 143.045a5.964 5.964 0 1 1-11.93 0 5.964 5.964 0 0 1 11.93 0z" fill-rule="evenodd" stroke="#000" stroke-width="1.11051072" fill="#fff"/> - <path d="M322.685 131.995a5.383 5.383 0 1 1-10.765 0 5.383 5.383 0 0 1 10.765 0z" fill-rule="evenodd" stroke="#000" stroke-width="1.10935854" fill="#fff"/> - <path d="M315.487 109.055c0-.926-.028-4.165.037-4.295l-3.572-.064.102-3.175 3.1-.037.037-2.775h4.395v2.544h3.47l-.072 3.378-3.6-.037-.03 4.526-3.867-.065z" fill-rule="evenodd" stroke="#7d6c00" stroke-width="1.1110219000000001" fill="#fd0"/> - <path d="M277.56 168.17c-7.092-12.023-17.51-28.367-11.053-35.444 8.955-10.143 29.953-.973 43.367-6.881.972 11.468-2.224 30.44 2.92 34.403l-4.796 4.17c-2.92-3.753-8.418-8.782-15.22.208-3.892-3.403-8.316-2.805-10.4 1.72-1.982.267-1.867 1.06-4.819 1.824zM357.68 167.754c7.09-12.023 17.51-28.367 11.051-35.444-8.955-10.143-29.952-.973-43.366-6.882-.973 11.469 2.223 30.441-2.92 34.404l4.795 4.17c4.614-6.489 10.373-6.699 15.22.207 3.893-3.403 7.925-2.936 10.4 1.721 1.983.267 1.868 1.06 4.82 1.824z" stroke="#fd0" stroke-width="3.3314" fill="none"/> - <path d="M277.343 177.132c28.495-2.918 54.904-1.877 79.23 0l3.127-8.967c-27.66-5.003-46.773-5.628-82.982-.624l.625 9.59z" fill-rule="evenodd" stroke="#7d6c00" stroke-width="2.3686254" fill="#fd0"/> - <path d="M314.121 329.377c.205-1.43.408-2.762.613-4.191 2.834.763 4.996.468 7.35-.402.815-1.225 1.633-2.45 2.45-3.676l-1.838-2.142c-1.615.348-2.941 1.85-3.98 3.158-1.628.077-3.064-.71-4.595-1.016l-1.53-6.43c-1.52-1.795-4.671-1.668-3.982 1.531l.307 2.45c.613 1.531.841 3.639 1.837 4.785v2.511c1.123 1.141 2.246 2.28 3.368 3.422zM315.337 311.087c-2.13 1.056-4.659-.78-7.349-1.837-2.45-.168-4.419 1.872-7.349 1.224.535-1.59 1.837-1.837 2.757-2.756-.673-4.131 1.53-5.512 2.144-5.512.61 0 3.061.613 3.061.613l2.45.306c1.43 2.654 3.433 5.02 4.286 7.962z" fill-rule="evenodd" fill="#c76e2e"/> - <path d="M300.779 366.089c7.066-11.472 56.259-34.508 102.422-84.251-46.99 45.243-76.357 56.35-114.812 83.974l12.39.277z" fill-rule="evenodd" stroke="#e9bf00" stroke-width="2.3686254" fill="#ffe100"/> - <path d="M368.406 313.186a3.582 3.582 0 1 1-7.163 0 3.582 3.582 0 0 1 7.163 0zM402.786 278.323a4.06 4.06 0 1 1-8.118 0 4.06 4.06 0 0 1 8.118 0zM414.252 248.713a3.582 3.582 0 1 1-7.163 0 3.582 3.582 0 0 1 7.163 0zM403.02 210.28a3.582 3.582 0 1 1-7.164 0 3.582 3.582 0 0 1 7.164 0z" fill-rule="evenodd" stroke="#68300e" stroke-width="1.1110219000000001" fill="#9d4916"/> - <path d="M279.125 269.595v-15.148l-1.54-1.283v-3.594l2.824-.257.513-16.945-1.797-1.028-.257-2.823s2.054.77 2.054.257.513-3.339.513-3.339-1.282-.256-1.282-.77 1.539-1.796 1.539-1.796-.77-.772-1.026-1.285-.77-2.823-.77-2.823l.77-2.825-.513-1.54-1.285-2.311 1.798-1.797s-.513-2.31-.513-2.824 1.282-2.567 1.539-2.825c.258-.256 2.312-3.08 2.312-3.08l4.364-1.027 5.135.77 2.824 1.798.513 4.62s-.513 2.824-.77 2.824-2.31 1.028-2.31 1.028-2.569.256-2.825 0 .77 3.081.77 3.081v3.08l-.256 3.851s0 1.798-.258 2.054c-.256.257-.77 1.028-.77 1.028l-.256 3.851 4.108 1.026-.257 2.312-2.825.257.515 15.66 4.108.77v4.366l-1.798 1.026-.513 15.66h-14.378zM341.522 269.861v-15.148l-1.54-1.282v-3.595l2.824-.256.513-16.945-1.797-1.028-.257-2.823s2.054.77 2.054.256.513-3.338.513-3.338-1.282-.257-1.282-.77 1.539-1.797 1.539-1.797-.77-.771-1.026-1.284-.77-2.823-.77-2.823l.77-2.826-.513-1.54-1.285-2.31 1.798-1.798s-.513-2.31-.513-2.823 1.282-2.567 1.539-2.825c.258-.257 2.312-3.08 2.312-3.08l4.364-1.028 5.135.771 2.824 1.798.513 4.62s-.513 2.824-.77 2.824-2.31 1.027-2.31 1.027-2.569.257-2.825 0 .771 3.082.771 3.082V218l-.256 3.85s0 1.798-.259 2.055c-.256.256-.77 1.027-.77 1.027l-.256 3.852 4.108 1.026-.257 2.312-2.825.256.515 15.661 4.108.77v4.365l-1.798 1.026-.513 15.661h-14.378zM309.94 270.378V255.23l-1.54-1.283v-3.594l2.825-.257.513-16.945-1.798-1.028-.256-2.823s2.054.77 2.054.256.513-3.338.513-3.338-1.283-.256-1.283-.77 1.54-1.797 1.54-1.797-.77-.77-1.027-1.284-.77-2.823-.77-2.823l.77-2.825-.513-1.54-1.284-2.311 1.797-1.798s-.513-2.31-.513-2.823 1.283-2.567 1.54-2.825c.257-.256 2.311-3.08 2.311-3.08l4.364-1.028 5.136.772 2.823 1.797.513 4.62s-.513 2.824-.77 2.824-2.31 1.028-2.31 1.028-2.568.256-2.825 0 .771 3.081.771 3.081v3.08l-.256 3.851s0 1.798-.258 2.054c-.257.257-.77 1.028-.77 1.028l-.256 3.85 4.107 1.027-.256 2.312-2.825.256.514 15.661 4.108.77v4.366l-1.797 1.026-.513 15.66H309.94z" fill-rule="evenodd" stroke="#a9a9a9" stroke-width="1.1110219000000001" fill="#fff"/> - <path fill-rule="evenodd" d="M282.923 269.495v-11.938h6.686v12.416l-6.686-.478zM314.438 270.444l.238-12.178h5.97v11.938l-6.208.24zM345.486 270.211l-.478-11.46 6.448-.24v11.94l-5.97-.24zM284.588 234.149h3.82v6.208h-3.82zM314.92 234.399h5.254v5.97h-5.253zM345.953 234.865h4.537v5.73h-4.537z"/> - <path d="M286.57 206.965c4.108 4.62 4.365 4.62 4.365 4.62M317.12 206.965c.769 1.539 2.053 4.877 3.594 5.133M349.984 207.73s1.284 3.595 3.081 4.108" stroke="#a8a8a8" stroke-width="1.1110219000000001" fill="none"/> - <path d="M282.206 194.022c12.012-3.883-2.806-11.648-5.267 0-3.886.628-4.389 3.511-12.789 2.259-20.313 33.102-5.267 86.518 54.169 141.816-106.457-90.594-63.194-157.604-33.714-155.077 16.034 1.096 7.945 21.096-2.399 11.002z" fill-rule="evenodd" fill="#b97700"/> - <path d="M285.554 177.049s9.781 2.633 9.781 6.77M295.332 176.299s6.771 3.008 8.275 5.642M348.751 177.432s-8.653 1.129-10.534 3.76M335.575 178.181s-4.888 4.138-4.514 5.265M334.46 196.237c-.753-.376-4.138-4.89-3.387-10.533M301.345 193.24s2.257-2.634 2.257-7.525M317.153 183.828l.376 10.909M326.93 193.24c0-.754 3.01-7.9-.376-11.286M306.242 180.447s-2.633 7.147-.75 13.165M325.431 186.843s-4.137 1.128-6.02 3.01M307.742 187.959c0-.375 4.514-1.128 6.018 1.506" stroke="#7d6c00" stroke-width="2.3686254" fill="none"/> - <path d="M300.63 301.86c.19.096 3.745-.674 3.745-2.403 1.826-1.152.48-4.419.48-4.419l-3.361-.673-4.613-5.187c-.223-1.6.322-3.104-.671-4.802-3.17.833-4.995 3.49-6.053 6.531.77.962.866 2.018 2.307 2.882 1.504.257 2.528-.64 3.938-.383.736 1.28.51 2.37.767 3.555 1.923 1.344 2.307 3.266 3.46 4.898zM296.498 279.672v-6.148l-4.419-.193c-.545.93-1.57 1.378-2.21 2.21l-3.074 1.538c1.281 1.537 2.85 2.402 3.843 3.17 2.242.673 4.1.673 5.86-.577zM282.656 288.8l-2.402-4.036c1.473-.48 3.33-.288 4.707.289 0 0 1.058 2.498.289 3.458-.385.864-2.69.48-2.594.29zM319.168 292.931c1.281-.64 2.466-1.76 2.69-3.361l-4.419-5.092-4.034-.095c-.928-.961-2.434-1.153-3.65-1.153 0 0 1.25 1.92 2.882 2.306 1.153 2.591 6.148 7.395 6.531 7.395zM323.5 293.498c0-.095 3.937-1.441 6.05-1.248-.19-1.634 2.979-5.38 2.979-5.38l5.572 7.3c-1.025.865-2.819.577-4.228.865 0 0-2.69 2.594-2.978 2.69s-5.187 1.248-7.59-.191c-1.055-2.018.29-4.325.194-4.036zM326.664 280.722c.673-2.337.864-4.676 0-7.59 0 0-6.341-.096-6.341 0s-4.226 1.921-4.226 2.018 1.346 4.13 2.978 3.746c.736 2.146 2.913 1.6 3.938 2.402 1.217-.192 2.433-.385 3.651-.576zM351.55 274.292c-.865 2.659-1.345 5.509-.097 8.07 1.153.192 2.498.96 3.555.768l5.092-9.223c-3.523-1.12-6.373-.992-8.55.385z" fill-rule="evenodd" fill="#c76e2e"/> - <path d="M353.115 193.19c-12.011-3.884 2.807-11.65 5.267 0 3.886.627 4.39 3.51 12.79 2.258 20.313 33.102 5.266 86.518-54.17 141.816 106.457-90.594 63.194-157.604 33.715-155.077-16.034 1.096-7.946 21.096 2.398 11.002z" fill-rule="evenodd" fill="#b97700"/> - <path d="M354.331 284.67c-.191 0-3.073 2.112-3.073 2.112-1.378.544-2.753 1.089-4.13 1.634l-4.42.095-.961-3.074 3.363-2.978c-2.85-.416-5.7.705-7.974 2.787 0 0 0 3.361 1.922 4.995 1.153 1.44 4.514 4.035 4.514 4.035 2.114.416 4.131.063 5.476-1.058 1.76-2.85 3.523-5.699 5.283-8.549zM331.078 314.835c1.443.385 11.337-12.776 11.337-12.776-.865-2.465-2.787-4.259-4.9-5.38 0 0-4.805 5.667-4.9 7.589-.767 1.729-2.976 8.357-2.017 9.223-.096.192-.48 2.88.48 1.344z" fill-rule="evenodd" fill="#c76e2e"/> - <path stroke-linejoin="round" d="M266.366 317.4c-14.817-12.887-34.809-19.991-62.716-10.35 7.51 3.248 15.628 4.364 22.529 7.915l40.187 2.435z" fill-rule="evenodd" stroke="#004100" stroke-width="2.3686254" fill="#006800"/> - <path d="M223.44 308.256c29.227.608 37.752 7.913 36.23 6.696" stroke="#00a400" stroke-linecap="round" stroke-width="2.2203781" fill="none"/> - <path stroke-linejoin="round" d="M266.965 318.916c-8.728 1.724-20.804 10.154-24.356 9.741-9.54-1.11-18.454-4.975-27.704-7.915-3.842-1.221-7.713 0-11.57 0 32.78-15.526 43.943-13.396 63.63-1.826z" fill-rule="evenodd" stroke="#004100" stroke-width="2.2203781" fill="#006800"/> - <path stroke-linejoin="round" d="M245.361 296.08s-10.959 1.52-15.83 1.825c-4.873-.303-11.955-4.842-19.79-13.09-4.088-4.48-13.395-3.958-13.395-3.958 20.602-4.365 36.634-.204 49.015 15.222zM230.436 274.775c-14.92-.914-33.49-14.308-37.751-30.139-.002.202 5.479 3.45 4.566 4.263 24.457 6.19 26.081 11.161 33.185 25.876zM255.405 300.344c2.13-13.498 2.74-22.427-3.653-30.444-5.277-6.09-6.596-9.743-10.35-18.268-1.116 17.76-4.974 32.474 14.003 48.712zM231.952 262.899c11.06-16.136 12.99-28.314 11.264-47.494-.305 1.522-3.958 10.96-4.261 10.96-16.44 10.35-9.133 26.488-7.003 36.534z" fill-rule="evenodd" stroke="#004100" stroke-width="2.3686254" fill="#006800"/> - <path stroke-linejoin="round" d="M222.225 184.96c11.06 16.136 9.336 31.36 7.61 50.54-.305-1.523-3.958-10.96-4.26-10.96-16.441-10.351-5.48-29.534-3.35-39.58z" fill-rule="evenodd" stroke="#004100" stroke-width="2.3686254" fill="#006800"/> - <path stroke-linejoin="round" d="M231.353 209.93c26.79-13.498 16.438-30.648 21.31-43.84-18.57 13.802-21.006 28.515-21.31 43.84z" fill-rule="evenodd" stroke="#004100" stroke-width="2.3686254" fill="#006800"/> - <path d="M235 206.581c3.35-9.437 10.048-25.573 10.656-25.573M227.088 226.37c-.608-6.7-3.956-24.662-4.26-26.488" stroke="#00a400" stroke-linecap="round" stroke-width="2.2203781" fill="none"/> - <path stroke-linejoin="round" d="M228.304 256.502c-14.92-.914-31.055-21.31-35.316-37.141-.001.201 5.479 3.45 4.566 4.262 21.412 9.538 23.646 18.165 30.75 32.88zM223.874 242.494c-11.06-16.136-12.99-28.314-11.264-47.494.305 1.522 3.958 10.96 4.261 10.96 16.44 10.35 9.133 26.488 7.003 36.534zM233.785 214.194c27.703-12.28 19.178-25.167 27.399-38.665-18.571 13.802-27.095 23.34-27.4 38.665z" fill-rule="evenodd" stroke="#004100" stroke-width="2.3686254" fill="#006800"/> - <path d="M235 211.445c11.266-11.265 15.223-20.703 15.223-20.703" stroke="#00a400" stroke-linecap="round" stroke-width="2.2203781" fill="none"/> - <g fill-rule="evenodd"> - <path d="M333.56 366.355l13.49.275c-44.787-41.942-130.599-60.205-118.667-137.39-12.298 83.701 70.117 91.41 105.177 137.115z" stroke="#e9bf00" stroke-width="2.3686254" fill="#ffe100"/> - <path d="M235.417 212.661a4.298 4.298 0 1 1-8.596 0 4.298 4.298 0 0 1 8.596 0zM232.785 236.297a4.06 4.06 0 1 1-8.118 0 4.06 4.06 0 0 1 8.118 0zM236.6 269.978a3.582 3.582 0 1 1-7.164 0 3.582 3.582 0 0 1 7.164 0zM267.876 307.223a3.582 3.582 0 1 1-7.163 0 3.582 3.582 0 0 1 7.163 0zM272.412 317.907a3.582 3.582 0 1 1-7.163 0 3.582 3.582 0 0 1 7.163 0z" stroke="#68300e" stroke-width="1.1110219000000001" fill="#9d4916"/> - </g> - <g fill-rule="evenodd" fill="#fff"> - <g stroke="#000" stroke-width=".667"> - <path d="M288.203 349.032c-2.355-2.134-3.853-3.503-4.777-5.828l-14.044-1.528c-.063 2.675-.126 5.349-.191 8.024l19.012-.668z" stroke-width="1.1110219000000001"/> - <path stroke-linejoin="round" d="M185.313 339.57c8.157 1.507 20.456-.752 24.472 4.518 4.822 5.465-15.093 13.872-12.241 18.6 6.16 6.517 12.5 3.83 19.394.226 1.624-3.523 2.878-9.804 3.766-11.672-2.51-5.773-9.253-8.601-7.53-17.32 11.37-4.249 33.23-3.897 35.583-2.258 1.848 3.623.187 5.273.564 8.16-1.883 3.64-6.728 9.81-6.738 13.074 11.93 4.203 15.074-.648 25.806-.363 12.575.155 20.225 3.531 22.955-1.467-1.87-4.315-13.403-.805-17.78-3.577-2.19-.74-3.604-2.5-5.496-4.44s-7.21-2.04-8.007-6.817c2.225-10.214 16.965-8.653 19.375-10.217l38.405 2.635c6.957-.196 10.892 12.323 1.497 16.09-9.394 3.767-37.18-5.588-49.233.842-.623-2.622-9.283-6.588-9.907-6.713-3.69 1.105-10.88.7-10.88.7-1.758 3.263-3.764 5.652-5.521 8.915-7.975-3.497-15.514 2.715-24.224.874 0 0-13.178 1.506-13.554 1.506s-8.658-.753-8.658-.753c-4.393 1.254-8.785 2.51-13.178 3.765l9.412-8.284-8.282-6.023z" stroke-width="1.1110219000000001"/> - <path d="M184.732 337.954a3.63 3.63 0 1 1-7.26 0 3.63 3.63 0 0 1 7.26 0zM183.78 355.911a3.63 3.63 0 1 1-7.26 0 3.63 3.63 0 0 1 7.26 0z" stroke-width="1.1110219000000001"/> - </g> - <g stroke="#000" stroke-width=".667"> - <path d="M346.253 349.097c2.355-2.134 3.852-3.503 4.777-5.828l14.043-1.528.192 8.024-19.012-.668z" stroke-width="1.1110219000000001"/> - <path stroke-linejoin="round" d="M449.143 339.636c-8.157 1.506-20.457-.753-24.473 4.517-4.822 5.465 15.093 13.872 12.242 18.6-6.16 6.517-12.5 3.83-19.394.226-1.624-3.523-2.878-9.804-3.766-11.671 2.51-5.774 9.253-8.602 7.53-17.32-11.371-4.25-33.23-3.898-35.584-2.26-1.847 3.624-.187 5.274-.563 8.161 1.882 3.64 6.728 9.81 6.738 13.074-11.93 4.203-15.075-.648-25.807-.363-12.574.155-20.225 3.531-22.955-1.467 1.87-4.315 13.404-.805 17.781-3.577 2.19-.74 3.603-2.5 5.496-4.44s7.21-2.04 8.007-6.816c-2.226-10.215-16.966-8.654-19.376-10.218l-38.404 2.635c-6.958-.196-10.892 12.323-1.498 16.091 9.395 3.766 37.18-5.588 49.233.841.623-2.622 9.283-6.588 9.908-6.713 3.69 1.105 10.88.7 10.88.7 1.758 3.263 3.763 5.652 5.52 8.915 7.976-3.497 15.515 2.715 24.225.874 0 0 13.177 1.506 13.554 1.506s8.658-.753 8.658-.753l13.177 3.765c-3.136-2.762-6.274-5.522-9.411-8.284l8.282-6.023z" stroke-width="1.1110219000000001"/> - <path d="M449.723 338.02a3.63 3.63 0 1 0 7.261 0 3.63 3.63 0 0 0-7.26 0zM450.675 355.976a3.63 3.63 0 1 0 7.26 0 3.63 3.63 0 0 0-7.26 0z" stroke-width="1.1110219000000001"/> - </g> - <path d="M316.986 329.343c-3.231-.606-4.38-.433-6.57-.65-1.715 5.271-3.427 10.541-5.141 15.812 7.938.716 15.29.716 15.29.651-4.816-.976-3.644-15.748-3.579-15.813z"/> - </g> - <g font-size="9" font-family="Trebuchet MS" font-weight="bold"> - <text y="344.274" x="448.605" transform="translate(-464.91 -233.28) scale(1.6657)"> - <tspan y="344.274" x="448.605">L</tspan> - </text> - <text y="344.622" x="453.64" transform="translate(-464.91 -233.28) scale(1.6657)"> - <tspan y="344.622" x="453.64">I</tspan> - </text> - <text y="345.056" x="456.678" transform="translate(-464.91 -233.28) scale(1.6657)"> - <tspan y="345.056" x="456.678">B</tspan> - </text> - <text y="345.49" x="462.58" transform="translate(-464.91 -233.28) scale(1.6657)"> - <tspan y="345.49" x="462.58">E</tspan> - </text> - <text y="345.576" x="468.309" transform="translate(-464.91 -233.28) scale(1.6657)"> - <tspan y="345.576" x="468.309">R</tspan> - </text> - <text y="345.403" x="473.952" transform="translate(-464.91 -233.28) scale(1.6657)"> - <tspan y="345.403" x="473.952">T</tspan> - </text> - <text y="344.535" x="479.247" transform="translate(-464.91 -233.28) scale(1.6657)"> - <tspan y="344.535" x="479.247">A</tspan> - </text> - <text y="344.274" x="485.497" transform="translate(-464.91 -233.28) scale(1.6657)"> - <tspan y="344.274" x="485.497">S</tspan> - </text> - </g> - <path d="M231.353 318.616c10.047 1.218 24.052.304 30.14-.001M216.128 284.203c8.525 6.698 27.096 10.654 26.791 10.654M253.573 296.696c-2.74-14.004-5.783-17.353-8.219-26.183M201.82 254.67c14.31 6.393 16.44 10.654 25.573 17.047M232.569 257.718c1.219-17.355 3.654-21.922 7.917-25.88M201.82 229.718c5.177 5.785 22.225 23.746 22.225 23.746M217.044 213.877c6.395 4.566 6.395 21.005 6.395 21.005" stroke="#00a400" stroke-linecap="round" stroke-width="2.2203781" fill="none"/> -</svg> diff --git a/img/flags/4x3/sn.svg b/img/flags/4x3/sn.svg deleted file mode 100644 index 52b2d36..0000000 --- a/img/flags/4x3/sn.svg +++ /dev/null @@ -1,8 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" height="480" width="640" viewBox="0 0 640 480"> - <g fill-rule="evenodd" stroke-width="1pt"> - <path fill="#0b7226" d="M-.006 0h213.328v480H-.006z"/> - <path fill="#ff0" d="M213.322 0H426.65v480H213.322z"/> - <path fill="#bc0000" d="M426.65 0h213.328v480H426.65z"/> - </g> - <path fill="#0b7226" d="M342.047 218.852h71.73l-56.627 43.556 20.762 69.314-56.627-43.569-56.627 41.588 20.762-67.333-56.627-43.556h69.844l22.648-71.295z"/> -</svg> diff --git a/img/flags/4x3/so.svg b/img/flags/4x3/so.svg deleted file mode 100644 index 89e2c08..0000000 --- a/img/flags/4x3/so.svg +++ /dev/null @@ -1,11 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" height="480" width="640" viewBox="0 0 640 480"> - <defs> - <clipPath id="a"> - <path fill-opacity=".67" d="M-85.334 0h682.67v512h-682.67z"/> - </clipPath> - </defs> - <g clip-path="url(#a)" fill-rule="evenodd" transform="translate(80.001) scale(.9375)"> - <path fill="#40a6ff" d="M-128 0h768v512h-768z"/> - <path d="M336.48 381.19l-82.505-53.476-82.101 54.001 30.535-87.754-81.95-54.188 101.39-.756 31.447-87.488 32.121 87.286 101.39.116-81.53 54.699 31.209 87.56z" fill="#fff"/> - </g> -</svg> diff --git a/img/flags/4x3/sr.svg b/img/flags/4x3/sr.svg deleted file mode 100644 index a3ebc23..0000000 --- a/img/flags/4x3/sr.svg +++ /dev/null @@ -1,6 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" height="480" width="640" viewBox="0 0 640 480"> - <path fill="#377e3f" d="M.1 0h640v480H.1z"/> - <path fill="#fff" d="M.1 96h640v288H.1z"/> - <path fill="#b40a2d" d="M.1 144h640v192H.1z"/> - <path d="M320 153.167l56.427 173.666-147.73-107.33h182.605l-147.73 107.33z" fill="#ecc81d"/> -</svg> diff --git a/img/flags/4x3/ss.svg b/img/flags/4x3/ss.svg deleted file mode 100644 index fd2875f..0000000 --- a/img/flags/4x3/ss.svg +++ /dev/null @@ -1,8 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" height="480" width="640" viewBox="0 0 640 480"> - <path d="M0 336h640v144H0z" fill="#078930"/> - <path d="M0 144h640v192H0z" fill="#fff"/> - <path d="M0 0h640v144H0z"/> - <path d="M0 168h640v144H0z" fill="#da121a"/> - <path d="M0 0l415.7 240L0 480z" fill="#0f47af"/> - <path d="M200.7 194.85L61.75 240l138.95 45.15-85.85-118.2v146.1z" fill="#fcdd09"/> -</svg> diff --git a/img/flags/4x3/st.svg b/img/flags/4x3/st.svg deleted file mode 100644 index 8891f50..0000000 --- a/img/flags/4x3/st.svg +++ /dev/null @@ -1,16 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" height="480" width="640" viewBox="0 0 640 480"> - <path fill="#12ad2b" d="M0 0h640v480H0z"/> - <path fill="#ffce00" d="M0 137.143h640v205.714H0z"/> - <path d="M0 0v480l240-240" fill="#d21034"/> - <g id="c" transform="matrix(.34286 0 0 .34286 351.595 240)"> - <g id="b"> - <path id="a" d="M0-200V0h100" transform="rotate(18 0 -200)"/> - <use height="100%" width="100%" xlink:href="#a" transform="scale(-1 1)"/> - </g> - <use height="100%" width="100%" xlink:href="#b" transform="rotate(72)"/> - <use height="100%" width="100%" xlink:href="#b" transform="rotate(144)"/> - <use height="100%" width="100%" xlink:href="#b" transform="rotate(-144)"/> - <use height="100%" width="100%" xlink:href="#b" transform="rotate(-72)"/> - </g> - <use height="100%" width="100%" xlink:href="#c" x="700" transform="translate(-523.19)"/> -</svg> diff --git a/img/flags/4x3/sv.svg b/img/flags/4x3/sv.svg deleted file mode 100644 index 564d2e2..0000000 --- a/img/flags/4x3/sv.svg +++ /dev/null @@ -1,621 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" height="480" width="640" viewBox="0 0 640 480"> - <path fill="#0f47af" d="M0 0h640v480H0z"/> - <path fill="#fff" d="M0 160h640v160H0z"/> - <g transform="matrix(.8 0 0 .8 -92.698 0)"> - <g fill="#fff" fill-rule="evenodd" stroke="#000" stroke-width=".304"> - <path d="M515.01 353.35c1.52 0 3.167 0 10.11-1.692 6.943-1.65 12.67-5.858 14.015-6.466 1.345-.607 3.297-.434 3.297-.434-.738-.78-2.864-2.734-5.857-2.734-3.038 0-1.823 0-4.383 1.085-2.56 1.04-7.897 4.294-16.92 4.294h-.173c-9.027 0-14.666-3.253-17.226-4.295-2.56-1.086-1.39-1.086-4.383-1.086-3.037 0-5.12 1.954-5.9 2.734 0 0 1.996-.173 3.34.434 1.346.608 7.073 4.816 14.016 6.466 6.897 1.692 8.59 1.692 10.065 1.692z"/> - <path d="M488.37 347.44c.737-.433-.174-1.648-.174-1.648l2.734-.608c-1.345-.607-3.34-.434-3.34-.434-.522.434-.435.955-.522 1.345-.043.39-.043 1 .26 1.302.26.26 1.042.043 1.042.043z"/> - <path d="M490.92 345.19l-2.734.608s.91 1.215.174 1.648l4.816-.91s-.737-.522-2.256-1.346zm50.77 2.25c-.737-.433.13-1.648.13-1.648l-2.69-.608c1.345-.607 3.297-.434 3.297-.434.564.434.477.955.564 1.345.044.39.044 1-.26 1.302-.302.26-1.04.043-1.04.043z"/> - <path d="M539.13 345.19l2.69.608s-.867 1.215-.13 1.648l-4.816-.91s.737-.522 2.256-1.346z"/> - </g> - <path d="M495.843 343.31l-1.22 3.03.564.22c.91.39 1.817.185 2.25-.813.39-1.042-.133-1.808-1-2.156l-.594-.28zm.25.625l.094.03c.693.304 1.115.8.812 1.626-.348.782-1.038.805-1.688.5l-.125-.03.906-2.125z"/> - <path fill-rule="evenodd" d="M497.563 347.618l-.348-.135 1.346-2.988.348.135-1.345 2.988z"/> - <path d="M500.213 345.28c-.634.016-1.238.443-1.53 1.094-.392.868-.013 1.796.81 2.187.825.35 1.8-.025 2.19-.936a1.74 1.74 0 0 0-.845-2.22 1.495 1.495 0 0 0-.625-.124zm-.03.5c.145 0 .316.03.468.094.65.26.824.955.563 1.562-.26.608-.967.917-1.53.656-.52-.26-.805-.91-.5-1.562.194-.455.56-.746 1-.75z"/> - <path d="M503.81 347.36c-.043-.216-.13-.39-.346-.477-.216-.087-.564 0-.65.26-.088.26.086.48.216.608l.218.175c.346.303.563.65.346 1.17-.217.565-.78.783-1.302.61-.434-.175-.695-.695-.564-1.216l.39.086c-.13.304.044.65.347.78.304.13.65-.087.782-.39.13-.347-.087-.564-.304-.78l-.173-.175c-.26-.26-.477-.563-.304-.996.174-.478.695-.652 1.128-.478.346.13.52.39.563.738l-.347.086zm2.39.17l-.52 1.823c-.13.52-.13 1.042.433 1.215.607.174.868-.26 1.04-.78l.52-1.867.348.13-.563 1.954c-.173.694-.737 1.128-1.432.91-.693-.172-.954-.823-.737-1.518l.564-1.996.348.13zm4.38 4.513l-1.823-2.988-.478 2.378-.348-.04.65-3.382 1.78 2.947.477-2.336.347.042zm.824-.083l.39-3.215.347.04-.39 3.258z" fill-rule="evenodd"/> - <path d="M514.183 348.88c-.91-.043-1.644.683-1.687 1.594-.044 1 .65 1.738 1.562 1.78.868.044 1.644-.625 1.688-1.624.043-.91-.694-1.75-1.563-1.75zm-.062.47c.694.042 1.138.63 1.094 1.28a1.14 1.14 0 0 1-1.156 1.156c-.608-.043-1.094-.598-1.094-1.25.044-.65.506-1.187 1.157-1.187z"/> - <path d="M519.083 352.136l-2.517-2.347.174 2.43h-.39l-.26-3.382 2.516 2.336-.174-2.388.39-.04zm2.04-.486l-.608-3.205.39-.042.564 2.813.91-.166.088.383zm1.735-.34l-.738-3.175.39-.083.738 3.164z" fill-rule="evenodd"/> - <path d="M523.873 347.72c-.136.007-.265.03-.406.063l-.344.125.875 3.125.688-.157c.52-.173.954-.567.78-1.22-.086-.346-.42-.636-.812-.592.174-.174.2-.502.157-.72-.162-.52-.53-.646-.937-.624zm.063.406c.207-.034.402.05.5.375.13.392-.135.51-.438.595l-.094.03-.312-.936h.125a.94.94 0 0 1 .22-.064zm.5 1.313c.254-.03.528.017.593.343.13.39-.166.57-.47.656l-.28.092-.25-1 .187-.03c.075-.022.134-.054.22-.063z"/> - <path d="M527.24 347.97l.13.34-1.172.393.39 1.17 1.216-.436.13.393-1.562.528-1.085-3.08 1.606-.57.087.34-1.215.435.303.87z" fill-rule="evenodd"/> - <path d="M528.623 346.19c-.304-.043-.552.026-.812.156l-.437.188 1.22 3.03.343-.124-.47-1.313.126-.03 1.344.906.468-.157-1.468-.97c.39-.216.517-.69.343-1.123-.088-.26-.353-.52-.657-.563zm-.094.406c.167.017.318.127.406.344.172.433-.185.65-.532.78l-.062.032-.406-1 .093-.03c.15-.066.33-.142.5-.126z"/> - <path d="M529.237 345.757l1.696-.745.165.31-.693.3 1.22 2.647-.35.175-1.21-2.647-.652.3z" fill-rule="evenodd"/> - <path d="M532.213 344.19l.22 3.72.405-.22-.062-.844 1.28-.656.688.563.344-.22-2.875-2.343zm.438.875l1 .813-.906.468-.093-1.28zm2.662-2.185c-.318.018-.66.117-.97.313l-.56.312 1.718 2.813.5-.282c.868-.52 1.253-1.39.688-2.344-.352-.596-.844-.842-1.375-.812zm.156.5c.303.027.604.193.843.563.433.737.026 1.296-.625 1.687l-.062.03-1.188-1.936.094-.094c.325-.174.633-.277.937-.25z"/> - <g id="a" stroke-miterlimit="2.613" stroke="#000"> - <path d="M485.07 355.17c.52 0 .91-.39.91-.912 0-.478-.39-.867-.91-.867-.477 0-.91.39-.91.868 0 .52.433.912.91.912zm-5.12 6.33c.52 0 .91-.39.91-.91a.916.916 0 0 0-.91-.913c-.478 0-.91.434-.91.912 0 .52.433.91.91.91zm-11.89-19.87c.477 0 .91-.434.91-.91a.917.917 0 0 0-.91-.913.89.89 0 0 0-.91.912c0 .476.39.91.91.91zm-7.38 3.69c.52 0 .998-.434.998-1 0-.52-.478-.997-.998-.997a1.01 1.01 0 0 0-.998.998c0 .566.433 1 .998 1zm-1.34-22.3c.52 0 .998-.433.998-.998 0-.52-.477-.997-.998-.997a1.01 1.01 0 0 0-.998.997.98.98 0 0 0 .998.998zm-6.21 1.82a.982.982 0 0 0 .998-.998.98.98 0 0 0-.998-.997c-.52 0-.998.433-.998.997 0 .564.477.998.998.998zm3.17-19.87c.565 0 .998-.478.998-.998a.981.981 0 0 0-.998-.998.982.982 0 0 0-.998.998c0 .52.435.998.998.998zm-5.55-18.27c.52 0 .998-.434.998-.954a1.01 1.01 0 0 0-.998-.998.98.98 0 0 0-.998.998c0 .52.433.954.998.954zm7.07 1.82a.982.982 0 0 0 .998-.998c0-.52-.435-.997-.998-.997a1.01 1.01 0 0 0-.998.997.98.98 0 0 0 .998.998zm6.94-15.22c.52 0 .998-.434.998-.998 0-.52-.477-.954-.998-.954-.563 0-.998.433-.998.954 0 .564.435.998.998.998zm-5.29-4.21a.982.982 0 0 0 .998-.998c0-.52-.433-.997-.998-.997a1.01 1.01 0 0 0-.998.997.98.98 0 0 0 .998.998zm10.54-10.24a.982.982 0 0 0 .998-.998.982.982 0 0 0-.998-.997.98.98 0 0 0-.998.997.98.98 0 0 0 .998.998zm-21.52 46.25c.563 0 .998-.434.998-.954s-.433-.956-.998-.956a.963.963 0 0 0-.954.956c0 .52.433.954.954.954z" fill="#e60000" fill-rule="evenodd" stroke-width=".13"/> - <path d="M485.93 358.9s-.737-3.167-.608-3.904l.782-.608m-1.384 5.722s-2.82.13-3.73.434c0 0 0 .174-.304.782M467.28 345.8s-.174-3.775.608-4.08c0 0 .737-.302 1.17-.91m-4.648 3.77s-2.126-.305-2.734 0c0 0-.13.607-.608.78m-.728-22.91l-.737.434c-.78.303-2.256 3.948-2.256 3.948s-2.43-1.823-3.47-1.997h-1.086m-4.821-20.175s.608.608 1.215.304c0 0 2.994 1.953 3.167 2.734 0 0 3.168-3.167 3.775-2.864 0 0 .303.434.91-.174m-5.727-18.52s.304.433.867.737c0 0 1.39 1.996 1.39 3.47 0 0 2.56-2.255 3.296-2.08 0 0 .91.302 1.518 0m.309-19.437s.607.737 1.04.13c0 0 1.823 2.256.738 3.95 0 0 2.56-.608 3.34-.175 0 0 .304 1.04 1.216.434" fill="none" stroke-width=".26"/> - <g fill="#1f601a" fill-rule="evenodd" stroke-width=".26"> - <path d="M532.79 378.34s-3.904-.303-4.512-.303c-.608 0-1.953-2.69-2.56-3.167-.608-.434-10.848-5.424-17.486-6.465-6.64-1.04-16.834-4.99-18.96-6.03-11.022-5.295-23.344-15.1-26.078-19.136-2.864-4.21-5.9-14.016-7.246-19.265-.608-2.43-3.905-12.366-3.905-19.135 0-7.852.91-14.318 2.126-19.438 1.17-5.12 9.978-20.13 15.358-26.814 0 0-12.105 18.743-14.188 25.903-2.082 7.377-2.69 16.358-2.56 21.478.13 4.21 3.645 19.612 8.765 30.936 4.078 9.07 7.636 10.153 14.015 15.23 2.994 2.386 8.72 6.16 13.537 8.59 4.816 2.387 15.056 5.424 17.79 5.858 2.69.478 16.4 4.512 18.22 5.424 1.826.91 6.47 4.99 7.683 6.334z"/> - <path d="M464.11 343.41c.304-1.39.433-2.43.91-2.864.434-.478 1.954-2.3 2.257-3.47.304-1.216 0-2.127 0-2.735 0-.607.433-2.69.433-2.69s-.737-2.56-1.345-3.037c-.607-.434-2.126-2.56-2.43-3.166 0 0 .173 1.214-.304 1.822-.433.606-.606 2.125-.606 2.994 0 .91.303 3.037 0 4.077-.304 1.173-.737 2.128-.434 3.472.262 1.086 1.52 5.598 1.52 5.598z"/> - <path d="M463.63 341.89s-3.427-4.382-3.427-6.205c0-1.78-.303-2.864-.607-3.297-.304-.433-2.256-2.733-.477-5.553.78-1.215.91-1.128 1.344-2.43.607-1.65 1.823-1.65 1.996-3.297 0 0 .434 1.952.564 3.6.173 1.65-.13 2.257-.26 3.167-.174.912.433 1.953.433 3.297 0 1.39-.173 1.91-.173 2.734-.002.435-.566 6.162.606 7.984zm38.62 23.52s-2.907-.304-3.992-.478c-.78-.087-2.56-.52-3.558-.91-.867-.305-2.56-1.216-4.034-2.778-2.777-2.95-2.517-4.513-2.994-4.643-.998-.172 1.56-.432 2.777-.258 1.17.13 2.82.997 3.904 2.038 1.128 1.043 2.864 2.214 3.47 2.648.608.477 1.042.65 1.692 1.52.652.867.608 1.43 2.734 2.862z"/> - <path d="M506.24 367.53s-7.29-3.254-8.027-3.862c-.78-.564-1.996-1.736-2.778-2.56-.737-.825-3.818-2.387-4.338-3.384-.346-.695-2.256-3.34-3.384-5.424-.564-1.084 4.86.348 4.86.348 4.426 1.78 2.43.52 4.86 2.344 1.474 1.128 2.472 2.082 2.863 2.907.563 1.3 1.215 3.556 1.866 4.728.607 1.17 1.777 2.688 4.078 4.902z"/> - <path d="M510.19 368.45s-6.03-1.562-8.765-5.294c-1.953-2.56-1.953-1.778-2.777-2.647-.997-1.085-2.56-2.256-3.86-4.47.13.218-1.736-5.9-1.65-6.638.044-.433 2.3.304 4.122 1.085 1.562.65 2.473 1.91 3.818 2.734 1.606 1.043 1.823 3.645 2.56 4.86 1.04 1.78 1.17 2.69 1.17 3.558-.042 1.345.74 1.78 1.173 2.907.523 1.344 2.128 1.128 4.21 3.905zm-9.63-2s-5.12-2.256-5.858-2.43c-.78-.13-1.085-.608-2.126-.912-.867-.217-1.65-.867-3.775-.433-.91.216-4.64 1.04-5.553.607-.91-.478 1.345 2.56 2.386 3.167 1.085.607 2.864.91 4.383.737 1.518-.13 3.6 0 4.382 0 .737 0 1.17.174 2.256-.13 1.042-.303 1.345-.78 3.906-.607z"/> - <path d="M504.03 366.45s-5.728-1.432-6.682-1.432c-.955 0-3.688.174-4.816.39-1.085.175-4.512-.173-5.51.348-1.042.477-5.598 1.128-6.813.824-1.215-.26 2.43 3.254 3.86 3.645 4.643 1.302 3.255 1.128 6.25.347 1.822-.477 4.425-.608 5.336-.738.91-.174.737-.695 1.953-1.215 1.213-.52 3.252-1.823 6.42-2.17z"/> - <path d="M508.71 368.84s-5.727-2.387-10.197-1.173c-3.08.87-2.994.74-4.208.956-1.432.217-2.647-.52-4.99.433-1.17.478-6.16 2.518-7.55 2.43-1.258-.086 3.993 3.34 5.425 3.124 4.598-.65 8.938.91 11.064.044 1.908-.738 3.037-1.26 3.992-1.563.954-.346 1.475-1.213 2.082-1.648.607-.476.998-1.648 4.382-2.602zm-30.58-13.15s-3.297-3.643-3.949-4.12c-.605-.48-2.168-1.607-2.993-2.345-.693-.607-1.388-1.952-3.514-2.473-.91-.217-3.123-.652-3.774-1.432-.61-.825.128 2.907.823 3.904.695 1 2.17 2.04 3.6 2.56 1.433.52 3.255 1.563 3.906 1.91.693.303 1.04.65 2.125.825 1.085.216 1.562-.088 3.775 1.17z"/> - <path d="M481.25 357.21s-5.598-3.947-6.465-4.382c-.868-.39-2.473-.954-3.514-1.3-1.084-.305-3.904-2.345-5.032-2.345-1.128 0-3.254-.087-4.21-.824-.996-.783-.13 2.732.956 3.73 3.6 3.21 1.128 2.256 4.12 2.864 1.824.39 4.253 1.39 5.12 1.648.912.26 1-.303 2.3-.216 1.303.043 3.733-.217 6.726.824z"/> - <path d="M482.59 358.25s-2.3-1.52-6.855-2.3c-3.123-.565-2.994-.695-4.165-.998-1.388-.434-1.692-.434-4.252-.565-1.258-.087-6.205 1.52-7.376.825-1.085-.608 1.215 1.518 2.603 2.04 1.996.737 1.736 2.04 3.906 2.733 2.3.738 4.73 1.65 6.075 1.39 1.04-.218 1.823-.695 3.297-.826 1.43-.175 3.947-2.258 6.768-2.3zm.48-1.17s1.128-5.466.174-6.768c-.477-.608-1.085-1.475-1.215-2.865-.13-1.345-1.042-3.6-1.65-4.338-.607-.782-1.823-4.253-1.52-5.12 0 0-3.166 3.123-2.993 5.12.13 1.952.13 1.475 0 2.386-.174.91.737 3.904 1.345 4.816.607.91.304 3.643.91 4.208.61.608 4.212 3.038 4.948 2.56z"/> - <path d="M482.59 358.25c.347.173-1.91-1.736-2.994-2.214-1.04-.434-5.25-1.65-5.554-2.69-.303-1.085-3.775-4.686-3.904-5.597-.13-.695-.782-2.127-.608-2.865.13-.738.434-2.56.91-3.602.434-1.084 1.476-3.6 2.56-4.077 0 0 .868 2.864 1.172 3.905.304 1.085.607 2.3 1.084 2.865.434.608 1.952 3.47 2.083 4.555.172 1.04.91 4.512 1.083 5.25.132.738 2.952 3.82 4.167 4.47zm-18.48-14.84c.13.782-2.256-.78-3.47-.78-1.216 0-4.817.476-5.728-.435-.91-.912-2.256-2.56-2.733-2.864-.436-.303-2.085-3.037-2.56-4.51-.436-1.52-3.603-4.253-4.037-4.556 0 0 4.34-.87 7.072.91 2.69 1.823 2.864 1.39 3.47 1.65.608.304 5.25 4.25 5.555 5.727.304 1.52 2.257 4.08 2.43 4.86z"/> - <path d="M464.11 343.41s-3.905-2.734-4.816-2.603c-.91.173-5.163-2.995-5.423-4.947-.173-1.04-2.21-2.516-2.56-3.167-1.083-1.822-1.69-5.857-3.166-6.94 0 0 4.078 1.04 5.12 1.213 1.953.304 3.6.607 4.34 2.256.78 1.65 1.388 3.038 1.995 3.167.606.173 1.474 2.256 1.778 4.38.302 2.085 2.732 6.64 2.732 6.64zm-7.38-20.52c.65 1.04.607-6.032.867-6.77.303-.737 1.085-2.256 1.692-2.863.607-.608.607-2.69.91-3.297.26-.608.13-4.686-.303-5.727 0 0-1.215.91-1.823 1.648-.607.74-1.65 1.043-1.952 1.954-.304.912-.91.912-1.345 1.823-.477.912-.91 2.386-.607 3.6.304 1.216.13 1.65.13 2.735 0 1.04 1.52 5.553 2.43 6.898z"/> - <path d="M456.86 323.49s-.304-1.953.477-2.69c.737-.782 1.475-.782 1.78-1.215.302-.478.172-1.042.476-1.65.304-.607.954-1.605 1.04-2.126.305-1.65 1.216-3.472.435-5.25 0 0-1.65.563-2.082.867-.478.304-1.823 1.52-1.953 2.734-.173 1.346-.303 1.52-.78 2.258-.434.737-1.042 2.994-.304 4.382.78 1.346.91 2.69.91 2.69zm-4.38-23.03s-.304-4.382.91-5.728c1.216-1.345 1.52-3.904 4.21-5.294 0 0-.13 1.085 0 1.823.174.738.477 2.865 0 3.602-.434.78-1.953 2.126-1.953 2.734 0 .608-1.04 2.126-1.778 2.43-.783.26-1.39.434-1.39.434z"/> - <path d="M452.48 302.84s0-3.123.91-4.034c.912-.91 1.39-1.39 1.824-1.954.433-.606.91-2.125 1.952-2.733 1.04-.608 2.864-2.127 3.037-2.692 0 0 .434 3.732-.607 5.728-1.084 1.952-1.084 2.995-2.256 3.428-1.214.477-1.388.78-1.82 1.084-.48.304-1.216.74-1.824.74-.61 0-1.216.432-1.216.432zm3.47 20.52c.174.87.78-1.953-2.386-1.953-3.167 0-5.728-1.215-6.812-2.3-1.04-1.04-1.65-1.78-2.083-2.257-.478-.433-1.65-2.256-1.823-3.166-.13-.87-1.04-4.21-.91-4.816 0 0 1.692.303 2.43.91.736.608 2.125.608 2.863 1.085.737.434 1.345 1.65 1.823 2.083.433.478 1.778.478 2.386 1.346.606.91 1.647 2.864 1.82 3.774.13.91 1.216 1.822 1.954 2.256.736.48.606 2.258.736 3.038z"/> - <path d="M455.65 322.15s-2.082-2.56-3.167-2.56c-1.04 0-3.73-2.735-3.905-3.905-.13-1.215-1.04-3.47-1.65-3.948-.606-.434-1.647-1.475-1.517-3.297.174-1.823.174-4.816.174-4.816s.608 1.823 1.475 2.256c.91.434 2.56 1.042 2.863 1.65.303.607 1.52.607 1.996 2.43.432 1.78.432 1.65.736 2.256.304.608 1.04 1.346 1.345 2.56.305 1.213 1.954 4.336 1.65 7.374zm-3.12-16.62c-.086.824 1.215-1.606-1.65-2.474-2.906-.868-4.902-2.69-5.552-3.948-.652-1.215-.998-2.082-1.302-2.603-.26-.564-.867-2.517-.737-3.384.086-.867.216-4.12.52-4.642 0 0 1.432.738 1.91 1.475.52.78 1.778 1.17 2.34 1.78.522.606.74 1.865 1.043 2.43.304.52 1.518.91 1.822 1.865.304.998.695 3.08.565 3.948-.087.867.607 1.953 1.17 2.604.565.607-.087 2.212-.13 2.95z"/> - <path d="M452.57 304.32s-1.215-2.908-2.17-3.167c-.954-.304-2.516-2.777-2.603-3.905-.13-1.302-.303-3.47-.737-4.034-.433-.565-1.215-2.43-.607-4.036.65-1.605 1.65-3.73 1.65-3.73s.867 1.344 1.344 2.17c.78 1.56 1.563 1.69 1.693 2.298.087.65 1.04 1.042 1.39 2.3.476 1.692-.045 1.605.042 2.256.13.607.607 1.52.52 2.69-.044 1.17.607 4.51-.522 7.158zm2.34-18.18c.13-.433 1.04-.91 2.126-1.215 1.04-.303 2.69-2.69 3.427-3.297.694-.65 1.085-1.606 1.996-2.126.91-.52 1.474-2.387 1.778-4.21 0 0-2.56.608-3.297.738-.736.174-2.255 1.085-2.863 1.822-.607.738-1.215 1.953-1.823 2.256-.607.304-1.345 2.127-1.345 3.34v2.692z"/> - <path d="M454.78 284.79s-.173-1.78-.173-2.56c0-.91-.564-3.34.738-5.294.91-1.345 4.252-3.905 5.12-4.035 0 0 .606 2.387.476 3.124-.172.78-.953 3.775-1.648 4.078-.694.305-2.43 3.906-4.512 4.688z"/> - <path d="M454 286.14c-.39.65-.13-2.256-1.04-2.994-.912-.78-1.042-1.822-1.042-3.038 0-1.215.26-2.082.433-2.863.13-.738 2.43-3.905 2.258-4.816 0 0 1.302 2.95 1.648 3.774.478 1.04-.303 2.126-.13 2.994.13.91.868 2.56.304 3.47-.477.782-1.822 2.43-2.43 3.472zm7.98-15.53s.174-.433 1.52-.433c1.344 0 3.296-.132 3.904-.74.607-.606 1.65-1.388 2.256-1.692.607-.26 1.65-1.648 1.823-2.256.13-.608 1.215-1.78 1.65-1.78 0 0-1.65-.174-3.472.304-1.777.433-4.337 1.345-4.945 2.56-.61 1.172-2.735 4.036-2.735 4.036z"/> - <path d="M462.46 270.3c.347 1.04 2.864-1.04 3.427-1.778l1.52-1.953s1.432-1.736 1.823-2.43c.91-1.65.694-4.643.303-4.383-.477.304-2.126 1.215-2.56 1.39-.478.13-1.345.432-1.65 1.17-.303.78-.607 1.822-1.084 2.3-.434.433-3.168 1.95-1.78 5.683z"/> - <path d="M461.55 270.3s2.083-1.475 2.864-2.256c.91-.867.433-2.082.91-2.69.39-.565 1.476-1.953 1.172-2.864-.303-.91-.867-3.47-.867-3.47s-1.086 1.04-1.823 1.822c-.78.737-.91 1.345-1.215 2.256-.303.91-.91 1.518-1.215 2.256-.304.737 0 2.256.173 3.167.13.91 0 1.78 0 1.78z"/> - </g> - <g fill="none" stroke-width=".13"> - <path d="M494.83 365.23s-9.936-.13-10.848-1.345m16.578 2.565s-6.465 1.78-9.936 1.345c-3.47-.433-5.12.304-5.902.304-.737 0-4.512-1.52-4.512-1.52m26.98 2.261s-4.99.91-6.03 1.215c-1.042.303-6.162 2.256-7.68 2.256-1.216 0-4.167-.13-4.99 0-1.476.305-5.425 0-6.334-.432m6.214-14.929s3.775 2.257 4.382 2.994c.563.782 3.905 3.47 4.512 3.47m-8.894-11.154s6.465 5.598 7.506 6.335c1.085.78 7.42 6.943 8.158 7.853M493.61 349.87s5.12 4.078 5.728 5.727c.607 1.65 2.126 3.6 2.126 3.6s2.125 4.21 2.864 4.817c.737.607 2.256 2.213 4.078 3.34M464.41 346.1s5.38 4.556 6.855 5.424m-9.105-2.564s5.424 3.774 7.81 4.685c2.43.868 4.382 1.65 9.632 2.387m2.128 2.128s-6.03-.304-7.072 0c-1.04.303-5.728-.782-6.943-1.086-1.215-.26-6.03-1.17-6.638-1.345m11.453-17.919s-.303 3.297.174 4.686c.434 1.345 2.56 5.25 2.386 6.16-.13.912 1.215 4.99 2.43 5.728m1.21-15.964s-1.085 3.297-.607 4.383c.433 1.04 1.17 2.994 1.17 4.208 0 1.215.782 2.995 1.086 3.775.303.738-.175 3.297.606 4.035.737.78 1.65 2.126 1.65 2.126M446.49 330.74s4.816 1.823 5.424 2.994c.565 1.216 1.475 1.52 1.953 2.127m10.373-9.631s1.215 4.816.91 6.03c-.303 1.173-.303 3.602-.303 4.513 0 .912-1.345 4.512-1.215 5.12m-1.342-19.743s-.434 2.864-.607 4.078c-.13 1.172 0 3.167-.304 3.905-.305.737-.74 4.816 0 6.638M449.06 326.23s3.905 3.297 4.816 4.21c.91.91 4.946 5.248 5.12 6.333.13 1.042 2.994 4.34 3.905 5.12M442.42 309.35s3.905 3.905 4.21 4.816c.302.912 1.952 2.386 2.733 2.864M460.77 311s-1.475 2.257-1.475 2.994c0 .782-.607 2.735-1.215 3.47-.39.522-1.65 2.735-1.52 4.08m3.04-16.884s-.607 2.127-.91 3.6c-.305 1.52-1.085 3.04-1.346 3.95-.304.91-1.52 5.25-1.085 7.983M445.89 304.53s.434 2.083 1.475 3.167c1.085 1.042 2.734 2.56 2.864 3.427.173.91 1.518 5.423 3.037 6.943 1.52 1.52 1.65 3.038 1.65 3.038M444.37 289.18s.433 2.56.737 3.297c.304.738 1.52 4.08 2.734 5.12m9.499-7.687s-.78 2.082-.91 2.994c-.175.91-1.085 1.953-1.216 2.43-.173.433-.737 1.952-.737 1.952m5.553-5.296c-.13.91-1.823 3.645-1.953 4.08-.174.475-1.04 2.56-1.952 3.166-.91.607-3.6 2.56-3.47 3.34m-4.385-16.436s-.13 3.297.477 4.512a37.224 37.224 0 0 1 1.65 3.949c.303.868.303 2.387.432 3.428.173 1.084.607 3.037 1.214 3.774M463.81 275.9s-2.17 2.473-3.168 3.47c-.998 1-4.816 5.12-4.99 5.858m4.558-11.588s-2.126 4.642-2.603 5.38c-.435.78-.868 1.996-.868 1.996m-1.959-7.546s.13 3.645 0 4.555c-.173.868-.173 2.387 0 2.864.13.433-.477 3.73-.607 4.51m18.047-21.259s-4.816 2.864-5.554 3.6M469.36 260.365l-3.297 4.816-.738 1.39M465.63 259.93s-1.085 2.56-1.215 3.6c-.174 1.086-1.65 4.384-2.256 5.6"/> - <path d="M469.23 257.98s-.478 1.04 1.345.738" stroke-width=".26"/> - </g> - </g> - <use height="100%" width="100%" xlink:href="#a" transform="matrix(-1 0 0 1 1030.05 0)"/> - <path d="M514.57 366.14s.737-1.822 2.256-.174c0 0 1.822 4.253.433 4.382-1.346.175-2.69.434-2.82-.303-.174-.737.13-3.905.13-3.905z" fill="#00209f" fill-rule="evenodd"/> - <path d="M516.52 365.54s.477-6.465 1.345-6.77c.91-.303 3.644-1.822 5.293-.477 1.65 1.39.13 8.07-.477 8.68-.563.606-1.474 2.472-4.945 2.038l-.478-1.647s1.823-.174 3.038-.782c1.215-.607 1.605-1.17 1.52-1.778-.175-.91-.088-4.252-1-4.556-.91-.304-2.343-.737-2.343-.737s-1.345 5.03-1.648 6.463l-.304-.433z" fill="#00209f" fill-rule="evenodd"/> - <path d="M514.44 370.05s-6.205 3.6-3.038 9.025l-2.125-1.345s-1.172 2.127-.13 3.34c0 0-4.21-3.774-.912-8.287 3.34-4.556 6.03-4.252 6.03-4.252l.175 1.52z" stroke-miterlimit="2.613" fill="#00209f" fill-rule="evenodd" stroke="#000" stroke-width=".174"/> - <path d="M514.44 367.06s-2.734-1.823-6.64-.782c0 0-1.735-5.596-1.083-7.376.303-.824.91-.91.91-.91s-1.953-1.173-1.345 4.077c.607 5.293 1.648 6.768 1.648 6.768s5.12.303 6.335-.304l.175-1.474z" stroke-miterlimit="2.613" fill="#00209f" fill-rule="evenodd" stroke="#000" stroke-width=".174"/> - <path d="M514.44 367.06s-5.424-9.069-6.811-9.069c0 0-1.564-.216 1.95-.606 1.215-.13 3.167 0 4.08 1.692.91 1.65 1.647 5.553 1.95 6.16 0 0-1.04.305-1.17 1.824z" stroke-miterlimit="2.613" fill="#00209f" fill-rule="evenodd" stroke="#000" stroke-width=".174"/> - <path d="M514.44 367.06s-3.645-1.692-4.08-2.127c-.475-.434-1.214-5.553-.78-5.25 0 0-1.475-1.692-1.95-1.692-.305 0-1.347.782-1.043 2.56.303 1.824.738 4.557 1.215 5.728 0 0 2.863-1.17 6.638.782z" stroke-miterlimit="2.613" fill="#011322" fill-rule="evenodd" stroke="#000" stroke-width=".174"/> - <path d="M517.74 370.05s1.953 1.215 1.953 3.47c0 2.257.91 6.336 2.734 7.247 0 0 .433-1.693 1.04-1.997 0 0 1.824 2.127 2.388 2.127 0 0-1.042-1.953-1.042-2.864 0-.912-.91-4.382-1.823-5.25-.867-.91-2.69-3.038-5.25-3.775v1.042z" stroke-miterlimit="2.613" fill="#00209f" fill-rule="evenodd" stroke="#000" stroke-width=".174"/> - <path d="M518.48 359.51l-1.648 6.464.433 1.39s.608-.174.91-.912c.305-.78 1.217-6.335 1.694-6.51l-1.39-.432z" stroke-miterlimit="2.613" fill="#011322" fill-rule="evenodd" stroke="#000" stroke-width=".174"/> - <path d="M514.35 369.31s-2.95.912-4.078 3.21c0 0-.39-1.475 3.99-3.6l.088.39zm3.48 0s2.04.825 2.56 2.04c0 0-1.953-1.302-2.56-1.52v-.52zm-3.48-1.73s-4.6.738-5.598.52c0 0 1.39.305 5.685-.086l-.087-.434zm7.47-2.78s.52 2.3.868 2.17c.39-.173 1.172-3.86 1.215-5.596.087-1.694-.738-2.084-1.432-1.997-.65.043-1.04 1.562-.954 2.256.043.65.217 2.777.304 3.167z" fill="#011d33" fill-rule="evenodd"/> - <path d="M516.83 365.97s1.865 4.166.433 4.382c-1.388.218.608.175-.347-2.69-.39-1.085-.998-2.43-1.302-2.43 0 0 1.086.392 1.216.738z" fill="#011d33" fill-rule="evenodd"/> - <path d="M514.57 366.14s.737-1.822 2.256-.174c0 0 1.822 4.253.433 4.382-1.346.175-2.69.434-2.82-.303-.174-.737.13-3.905.13-3.905z" stroke-miterlimit="2.613" fill="none" stroke="#000" stroke-width=".174"/> - <path d="M516.52 365.54s.477-6.465 1.345-6.77c.91-.303 3.644-1.822 5.293-.477 1.65 1.39.13 8.07-.477 8.68-.563.606-1.474 2.472-4.945 2.038l-.478-1.647s1.823-.174 3.038-.782c1.215-.607 1.605-1.17 1.52-1.778-.175-.91-.088-4.252-1-4.556-.91-.304-2.343-.737-2.343-.737s-1.345 5.03-1.648 6.463l-.304-.433z" stroke-miterlimit="2.613" fill="none" stroke="#000" stroke-width=".174"/> - </g> - <g transform="matrix(.8 0 0 .8 -92.698 0)"> - <path d="M509.84 255.9c-.39-.954-.477-7.376-.39-8.374.13-1.736 3.123-10.24 3.73-11.238.652-.997.478-1.215.738-1.823l.867-1.17c.652 1.084 1.128 2.776 1.26 4.12 0 0-.565 4.08-1.043 5.903-.433 1.822-1.605 4.338-1.822 4.86-.564 1.258-.52 2.43-.173 2.516l-3.167 5.206z" fill="#00209f" fill-rule="evenodd"/> - <path d="M515.01 247.35l.478.52c1.345-1.432 1.43-4.425 1.43-4.425l-.867-6.03s-.562 4.078-1.04 5.9c-.433 1.822-1.606 4.34-1.823 4.86-.867 2.17-.216 2.43-.172 2.517l1.995-3.342z" fill="#fff" fill-rule="evenodd"/> - <path d="M515.48 247.87c1.345-1.432 1.43-4.425 1.43-4.425s.956 4.903.435 5.945c-.52 1.04-.52.737-.434 1.258l-1.43-2.778z" fill="#00209f" fill-rule="evenodd"/> - <path d="M516.91 250.65c-.086-.52-.086-.217.434-1.258.52-1.04-.434-5.945-.434-5.945l-.867-6.03c-.13-1.346-.607-3.04-1.26-4.123l-.866 1.17c-.26.608-.086.825-.737 1.824-.607.998-3.602 9.502-3.732 11.238-.086.998 0 7.42.39 8.374" stroke-miterlimit="2.613" fill="none" stroke="#000" stroke-width=".26"/> - <path d="M515.01 234.11s-.087-.954-.174-1.302c-.043-.173.52.868.998.737.868.26 1.823 1.432 2.083 1.736-.39.565-1.3 1.65-1.953 1.433-.563-.173-.433-.997-.608-1.518-.086-.26-.39-.607-.346-1.085z" stroke-miterlimit="2.613" fill="#fc0" fill-rule="evenodd" stroke="#000" stroke-width=".13"/> - <path d="M515.05 233.33c.043.043.303.347.347.39.216.13.434 0 .694.175.65.433.87.824 1.563 1.518" stroke-miterlimit="2.613" fill="none" stroke="#000" stroke-width=".13"/> - <path d="M515.66 233.99c.824.39 1.258 1.04 1.823 1.735 0 0 .043-.087 0-.087" stroke-miterlimit="2.613" fill="none" stroke="#000" stroke-width=".13"/> - <path d="M514.09 233.42s.867-.433 1.17-.607c.175-.087-.65.78-.345 1.17.043.912-.694 2.214-.954 2.56-.65-.172-1.3-.172-1.82-1.17-.218-.347.39-.738.78-1.085.216-.174.693-.738 1.17-.868z" stroke-miterlimit="2.613" fill="#fc0" fill-rule="evenodd" stroke="#000" stroke-width=".13"/> - <path d="M514.87 233.16c-.043.087-.26.39-.26.52-.043.217.13.39.087.694-.173.737-.477 1.084-.867 1.995" stroke-miterlimit="2.613" fill="none" stroke="#000" stroke-width=".13"/> - <path d="M514.44 233.99c-.087.91-.52 1.518-.998 2.3 0-.044.13 0 .13 0" stroke-miterlimit="2.613" fill="none" stroke="#000" stroke-width=".13"/> - <path d="M515.44 232.81c.607-.737 1.692-1.39 2.213-.954.043.043.476.303.607.563.26.303.217.433.086.78-.39.78-1.432.39-2.082.044-.13-.087-.52-.434-.737-.347-.347.13-.217.13-.347.13.13.087.26.044.347.087.607.173 1.04.52 1.778.867.52.217 1.476-.476 1.432-.953 0-.564-.91-1.562-1.345-1.562-.998 0-1.78.607-2.473 1.388.173-.13.39.13.52-.043z" stroke-miterlimit="2.613" fill="#fc0" fill-rule="evenodd" stroke="#000" stroke-width=".13"/> - <path d="M514.87 232.81c-.563-.737-1.65-1.39-2.17-.954-.043.043-.477.303-.606.563-.26.26-.26.433-.087.78.347.78 1.432.39 2.04.044.173-.087.563-.434.78-.347.347.13.217.13.347.13-.13.087-.26.044-.39.087-.564.173-1 .52-1.78.867-.52.217-1.43-.476-1.43-.953.042-.608.953-1.562 1.387-1.562 1 0 1.78.607 2.43 1.388-.13-.13-.346.13-.52-.043z" stroke-miterlimit="2.613" fill="#fc0" fill-rule="evenodd" stroke="#000" stroke-width=".13"/> - <path d="M515.09 232.38c-.26-.087-.563.173-.65.346-.087.217.086.564.346.607.347.13.824.044.91-.346.088-.347-.302-.434-.606-.607z" stroke-miterlimit="2.613" fill="#fc0" fill-rule="evenodd" stroke="#000" stroke-width=".13"/> - <path d="M515.05 226.35s.39 2.344 1.562 4.035c1.172 1.692-1.432 1.476-1.606 2.083 0 0-.78-1.692-1.605-2.126 0 0 1.303-2.04 1.65-3.949v-.043z" fill="#fc0" fill-rule="evenodd"/> - <path d="M515.05 226.35s.39 2.344 1.562 4.035c0 0-1.432 1.476-1.606 2.083 0 0-.78-1.692-1.605-2.126 0 0 1.303-2.04 1.65-3.949" stroke-miterlimit="2.613" fill="none" stroke="#000" stroke-width=".13"/> - <path d="M515.01 228.82s.303 1.04.65 1.736c0 0-.563.434-.65.694 0 0-.303-.694-.607-.868 0 0 .564-.91.607-1.562z" stroke-miterlimit="2.613" fill="none" stroke="#000" stroke-width=".13"/> - <path d="M515.01 344.54c-.087 0-.217-.175-.346-.218-.39-.26-1.128-.26-1.302-.477-1.04-1.17-.347-3.427.086-4.816.867-2.604.997-4.99 1.562-7.464h.043c.564 2.474.694 4.86 1.52 7.463.476 1.388 1.17 3.644.13 4.815-.218.217-.91.217-1.302.477-.13.043-.26.218-.39.218z" fill="#fff" fill-rule="evenodd"/> - <path d="M515.01 331.48c.565 2.473.737 4.99 1.562 7.593.434 1.302 1.085 3.384.304 4.556v-.045c.39 0 .737-.13 1.085-.26.13-.044.26-.087.304-.217.13-.217.304-.39.477-.52.262-.174.566-.044.827-.218.086-.086.13-.173.173-.173.52-.26 1.04-.565 1.26-1.128.13-.392.172-.826.085-1.26-.043-.304-.173-.52-.26-.78l-.52-1.173c-.175-.39-.435-.738-.608-1.13a2.35 2.35 0 0 0-.304-.562c-.087-.174-.217-.348-.304-.52-.088-.175-.305-.305-.435-.48-.174-.173-.217-.173-.348-.302-.043-.043-.26-.087-.216-.174-.086 0-.216-.087-.26-.13-.347-.74-.65-1.13-.997-1.867-.174-.304-.217-.867-.217-1.215h-1.606v.002zm0 0c-.52 2.473-.694 4.99-1.562 7.593-.39 1.302-1.04 3.384-.26 4.556l-.044-.045h.043c-.39 0-.737-.13-1.128-.26-.088-.044-.218-.087-.305-.217-.13-.217-.26-.39-.476-.52-.218-.174-.52-.044-.782-.218-.087-.086-.13-.173-.216-.173-.52-.26-.998-.565-1.215-1.128a2.46 2.46 0 0 1-.087-1.26c.044-.304.173-.52.26-.78l.52-1.173c.175-.39.39-.738.608-1.13.087-.215.173-.388.304-.562.087-.174.172-.348.303-.52.087-.175.304-.305.434-.48.173-.173.216-.173.345-.302.044-.043.26-.087.217-.174.087 0 .216-.087.216-.13.39-.74.695-1.13 1.042-1.867.173-.304.217-.867.217-1.215h1.563v.002z" fill="#00209f" fill-rule="evenodd"/> - <g id="b" stroke-miterlimit="2.613" fill="none" stroke-width=".174"> - <path d="M514.27 331.57s-.998 4.078-1.562 5.12c-.607 1.04-2.95 2.95-1.432 5.9" stroke="#011322"/> - <path d="M514.35 331.57s-.954 4.12-1.562 5.162c-.608 1.086-2.908 3.038-1.345 5.99" stroke="#011d33"/> - <path d="M514.48 331.57s-.998 4.165-1.606 5.25c-.563 1.04-2.864 3.08-1.258 6.03" stroke="#022743"/> - <path d="M514.57 331.57s-.954 4.252-1.562 5.293c-.607 1.042-2.864 3.123-1.26 6.16" stroke="#033054"/> - <path d="M514.7 331.57s-.998 4.295-1.606 5.38c-.607 1.042-2.82 3.166-1.17 6.204" stroke="#053a65"/> - <path d="M514.18 331.57s-.954 3.947-1.606 5.077c-.607 1.084-2.95 2.994-1.388 5.9" stroke="#011d33"/> - <path d="M514.05 331.61s-.91 3.774-1.605 5.033c-.608 1.04-2.95 2.95-1.388 5.857" stroke="#022743"/> - <path d="M513.96 331.61s-.91 3.645-1.648 4.99c-.565 1.04-2.95 2.95-1.39 5.9" stroke="#033054"/> - <path d="M513.83 331.61s-.824 3.557-1.65 4.946c-.563 1.085-2.905 2.95-1.387 5.9" stroke="#053a65"/> - <path d="M513.75 331.65s-.824 3.383-1.65 4.903c-.606 1.04-2.95 2.95-1.388 5.857" stroke="#00209f"/> - <path d="M514.79 331.57s-.954 4.382-1.562 5.423c-.607 1.042-2.777 3.254-1.172 6.335" stroke="#00209f"/> - </g> - <use height="100%" width="100%" xlink:href="#b" transform="matrix(-1 0 0 1 1030.05 0)"/> - <path d="M518.65 335.17c.13.174.347.304.434.478.087.173.217.347.304.52.13.174.217.348.304.564.173.39.433.738.607 1.13l.52 1.17c.087.26.217.478.26.78a2.46 2.46 0 0 1-.086 1.26c-.217.564-.738.868-1.258 1.13-.044 0-.087.085-.174.172-.26.174-.565.044-.825.217a1.86 1.86 0 0 0-.478.52c-.044.132-.174.175-.304.22-.347.13-.695.26-1.084.26v.043-.044c-.044.086-.13.173-.174.26-.217.217-.91.217-1.302.476-.13.044-.26.218-.39.218-.088 0-.218-.174-.347-.218-.392-.26-1.13-.26-1.303-.476-.087-.087-.13-.174-.173-.26v.043l-.044-.044h.044c-.39 0-.738-.13-1.128-.26-.087-.045-.218-.088-.304-.22-.13-.215-.26-.388-.477-.52-.217-.172-.52-.042-.78-.216-.088-.087-.13-.173-.217-.173-.52-.26-.997-.564-1.215-1.127a2.46 2.46 0 0 1-.087-1.26c.044-.303.173-.52.26-.78.175-.39.347-.782.52-1.172.175-.39.39-.737.608-1.128.087-.216.174-.39.304-.563.087-.175.173-.35.303-.522.088-.174.305-.304.435-.478" stroke-miterlimit="2.613" fill="none" stroke="#000" stroke-width=".174"/> - <g id="c"> - <g fill-rule="evenodd"> - <path d="M487.37 293.56c-1.475-3.688-3.038-11.238-2.95-12.973.302-7.115.216-9.24.867-16.53l7.332 8.374c-.174 2.82-.218 3.69 0 5.467.086.65.477 3.862.997 5.12l-6.247 10.543z" fill="#fff"/> - <path d="M493.61 283.01c-.52-1.258-.91-4.47-.998-5.12-.217-1.778-.173-2.647 0-5.466l4.512 4.99-3.514 5.596zm-18.65 6.9c-.13-1.65-.26-3.47-.26-4.295.043-5.12-.564-7.984 0-13.407.434-4.25 1.475-9.85 1.258-14.448-.087-1.302.172-2.603.217-3.862l9.112 10.153c-.65 7.29-.565 9.416-.868 16.53-.088 1.736 1.475 9.286 2.95 12.974l-1.908 3.21-10.502-6.854zm6.38 13.76c-.607-.998-1.128-3.862-1.258-4.425-.303-1.52-.303-2.388-.216-4.99l5.033 3.297-3.56 6.118zm-14.37 24.03c-.565-.346-1.52-1.345-1.823-2.213-.608-1.736-.477-1.692-.91-3.6-.26-1.085-.26-2.3-.522-3.428-.216-1.13-1.822-4.73-1.865-6.206-.173-4.728-1.736-7.94-1.345-13.103.26-3.99 1.17-9.414.737-13.58-.13-1.128.044-2.43.087-3.558l10.24 6.683c-.392 6.855-.218 8.764-.218 15.402-.044 1.605 1.388 8.113 3.123 11.02L466.97 327.7zm17.01 3.78c1.91 1.736 5.424 2.647 5.989 3.038 1.257.91 3.122 2.256 6.29 2.43 2.343.173 3.384-.434 5.77-.738 2.734-.347-.347.087 2.3-.477 1.345-.348 1.345-.565 3.167-.998 1.345-.304 2.69-.652 3.514-1.78.305-.434.565-.78.61-1.475h1.82c.174.52-.347 1.52-.52 1.866-.13.174-.347.477-.476.65-.26.565-.217.435-.695.87-.13.086-.695.563-.868.65-.347.26-.694.607-1.085.65-1.78.305-2.517.694-4.21 1.172-1.605.478-.736.39-1.95.695-.608.13-1.824.607-2.43.694-1.085.173-1.26.347-2.387.608-2.908.65-5.727.476-8.59.304-1.172-.088-4.036-.696-5.034-1.39-1.78-1.26-5.685-1.736-7.42-2.95-.26-.176-1.345-.696-1.56-.913-1.693-1.388-3.038-1.78-4.817-2.907h12.58z" fill="#00209f"/> - <path d="M497.74 331.48h13.885c-.043.695-.304 1.04-.608 1.475-.824 1.128-2.17 1.476-3.514 1.78-1.432.346-2.908-.434-4.425-.434-3.646-1.127-4.08-2.256-5.338-2.82z" fill="#00209f"/> - <path d="M497.74 331.48c1.258.65 1.866 1.736 5.337 2.82 1.345 0 2.82.608 4.08.565-1.52.347-1.563.564-2.822.867-2.646.565.434.13-2.3.478-2.385.304-3.426.91-5.77.737-3.166-.173-5.032-1.518-6.29-2.43-.565-.39-4.08-1.3-5.99-3.037h13.755z" fill="#fff"/> - </g> - <g stroke-miterlimit="2.613" fill="none" stroke-width=".174"> - <path d="M476.65 259.71s1.692 14.97 7.506 14.406" stroke="#022743"/> - <path d="M484.16 274.03c-2.907.13-4.816-3.558-5.9-7.03-1.13-3.556-1.606-7.288-1.606-7.33" stroke="#022847"/> - <path d="M484.16 273.99c-2.907-.087-4.816-3.817-5.814-7.072-1.17-3.427-1.692-7.246-1.692-7.29" stroke="#032b4c"/> - <path d="M484.2 273.95c-2.907-.26-4.86-4.078-5.814-7.115-1.128-3.34-1.692-7.16-1.736-7.246" stroke="#032d4f"/> - <path d="M484.2 273.9c-2.907-.477-4.86-4.382-5.77-7.16-1.128-3.253-1.736-7.114-1.78-7.245" stroke="#032f53"/> - <path d="M484.24 273.82c-2.95-.607-4.903-4.6-5.727-7.16-1.128-3.166-1.823-7.07-1.866-7.2" stroke="#043258"/> - <path d="M484.24 273.77c-2.907-.824-4.903-4.86-5.684-7.202-1.128-3.08-1.866-6.985-1.866-7.16" stroke="#04345b"/> - <path d="M484.29 273.73c-2.95-.998-4.946-5.12-5.684-7.29-1.085-2.906-1.91-6.897-1.91-7.07" stroke="#04365e"/> - <path d="M484.29 273.69c-2.95-1.215-4.946-5.38-5.598-7.333-1.128-2.82-1.952-6.81-1.995-7.072" stroke="#043862"/> - <path d="M484.29 273.6c-2.907-1.345-4.946-5.64-5.554-7.333-1.128-2.733-1.996-6.77-2.04-7.028" stroke="#053b67"/> - <path d="M484.33 273.55c-2.95-1.52-4.99-5.9-5.554-7.376-1.085-2.647-2.04-6.682-2.083-6.985" stroke="#053d6a"/> - <path d="M484.33 273.51c-2.95-1.736-4.99-6.16-5.467-7.42-1.128-2.56-2.126-6.638-2.17-6.94" stroke="#053f6e"/> - <path d="M484.37 273.47c-2.95-1.91-5.033-6.42-5.467-7.506-1.085-2.387-2.126-6.552-2.213-6.9" stroke="#064172"/> - <path d="M476.69 259.02c.087.39 1.17 4.555 2.256 6.855.39.824 2.473 5.424 5.424 7.506" stroke="#00209f"/> - <path d="M476.87 256.33s4.86 11.89 7.94 10.544" stroke="#022743"/> - <path d="M484.81 266.87c-1.345.563-3.34-1.823-4.946-4.6a65.147 65.147 0 0 1-2.994-5.987" stroke="#022a49"/> - <path d="M484.81 266.83c-1.17.52-3.254-1.78-4.903-4.642a85.93 85.93 0 0 1-3.037-5.944" stroke="#032d4f"/> - <path d="M484.81 266.79c-.998.433-3.167-1.736-4.86-4.686-1.866-3.34-3.037-5.9-3.037-5.9" stroke="#033054"/> - <path d="M484.81 266.79c-.824.347-3.123-1.736-4.773-4.773-1.952-3.47-3.123-5.857-3.123-5.857" stroke="#043359"/> - <path d="M484.85 266.74c-.694.304-3.08-1.692-4.773-4.816-1.995-3.645-3.123-5.857-3.123-5.857" stroke="#043760"/> - <path d="M484.85 266.74c-.52.217-2.994-1.692-4.73-4.903a749.464 749.464 0 0 0-3.166-5.815" stroke="#053a65"/> - <path d="M484.85 266.7c-.346.174-2.907-1.65-4.686-4.946-2.125-3.95-3.167-5.772-3.167-5.772" stroke="#053d6a"/> - <path d="M484.85 266.7c-.173.043-2.82-1.65-4.642-4.99-2.17-4.122-3.212-5.77-3.212-5.77" stroke="#064171"/> - <path d="M477 255.9s1.04 1.432 3.254 5.727c1.823 3.427 4.6 5.033 4.6 5.033M492.88 278.72l3.77-.7m-4.03-3.16l4.08 2.21" stroke="#00209f"/> - <path d="M492.53 275.03l4.17 2.04" stroke="#064171"/> - <path d="M492.53 275.2l4.21 1.91" stroke="#053e6c"/> - <path d="M492.53 275.42l4.21 1.74" stroke="#053b67"/> - <path d="M492.57 275.59l4.21 1.61" stroke="#043862"/> - <path d="M492.57 275.77l4.26 1.43" stroke="#04355c"/> - <path d="M492.57 275.94l4.3 1.3" stroke="#043258"/> - <path d="M492.57 276.11l4.34 1.18" stroke="#032f53"/> - <path d="M492.57 276.33l4.39 1" stroke="#032c4d"/> - <path d="M492.57 276.51l4.43.86" stroke="#022a49"/> - <path d="M492.83 278.54l3.87-.56" stroke="#064171"/> - <path d="M492.83 278.33l3.91-.44" stroke="#053e6c"/> - <path d="M492.79 278.11l3.99-.26" stroke="#053b67"/> - <path d="M492.79 277.94l4.04-.13" stroke="#043862"/> - <path d="M492.75 277.72h4.12" stroke="#04355c"/> - <path d="M492.75 277.5l4.16.18" stroke="#043258"/> - <path d="M492.75 277.33l4.21.26" stroke="#032f53"/> - <path d="M492.7 277.11l4.34.44" stroke="#032c4d"/> - <path d="M492.7 276.9l4.39.6" stroke="#022a49"/> - <path d="M492.66 276.72l4.47.7" stroke="#022743"/> - <g> - <path d="M474.96 277.81s.217 3.167.91 4.512c1 1.866 3.906 4.73 7.247 6.813" stroke="#022743"/> - <path d="M483.2 289.13c-2.17-1.39-4.12-3.123-5.466-4.642a13.738 13.738 0 0 1-1.736-2.256c-.694-1.39-.998-4.512-.998-4.512" stroke="#022847"/> - <path d="M483.29 289.13c-2.17-1.39-4.122-3.254-5.424-4.73-.737-.78-1.345-1.56-1.69-2.3-.782-1.387-1.173-4.467-1.173-4.467" stroke="#032b4c"/> - <path d="M483.33 289.13c-2.126-1.432-4.078-3.384-5.337-4.773-.694-.78-1.302-1.605-1.692-2.343-.824-1.475-1.3-4.468-1.3-4.468" stroke="#032d4f"/> - <path d="M483.42 289.09c-2.126-1.432-4.078-3.427-5.337-4.816a13.6 13.6 0 0 1-1.65-2.343c-.867-1.518-1.43-4.467-1.43-4.467" stroke="#032f53"/> - <path d="M483.5 289.09c-2.126-1.432-4.035-3.558-5.294-4.903-.607-.694-1.215-1.52-1.65-2.343-.91-1.562-1.518-4.468-1.518-4.468" stroke="#043258"/> - <path d="M483.59 289.09c-2.126-1.475-4.035-3.688-5.25-4.99a15.13 15.13 0 0 1-1.65-2.343c-.954-1.65-1.648-4.468-1.648-4.468" stroke="#04345b"/> - <path d="M483.63 289.09c-2.04-1.52-3.992-3.818-5.163-5.077a13.94 13.94 0 0 1-1.65-2.342c-.997-1.692-1.78-4.47-1.78-4.47" stroke="#04365e"/> - <path d="M483.72 289.05c-2.04-1.475-3.992-3.862-5.12-5.12-.563-.608-1.128-1.475-1.65-2.343-1.04-1.736-1.908-4.47-1.908-4.47" stroke="#043862"/> - <path d="M483.81 289.05c-2.04-1.52-3.992-3.992-5.077-5.207-.52-.564-1.128-1.432-1.65-2.343-1.083-1.822-1.994-4.47-1.994-4.47" stroke="#053b67"/> - <path d="M483.85 289.05c-1.996-1.52-3.905-4.122-4.99-5.294-.52-.564-1.084-1.432-1.65-2.343-1.083-1.865-2.124-4.468-2.124-4.468" stroke="#053d6a"/> - <path d="M483.94 289.05c-1.996-1.562-3.905-4.21-4.946-5.337-.477-.565-1.085-1.432-1.65-2.386-1.127-1.91-2.255-4.47-2.255-4.47" stroke="#053f6e"/> - <path d="M484.03 289c-1.996-1.562-3.905-4.295-4.903-5.38-.478-.52-1.04-1.432-1.606-2.387-1.214-1.996-2.428-4.468-2.428-4.468" stroke="#064172"/> - <path d="M475.09 276.68s2.82 5.337 4.166 6.855c.954 1.04 2.864 3.905 4.86 5.467" stroke="#00209f"/> - </g> - <g> - <path d="M475.17 289.91c3.08 2.04 3.862 2.56 10.24 6.638l1.952-2.994s-.737-1.78-1.04-2.604" stroke="#011d33"/> - <path d="M475.22 289.87c2.95 1.996 3.947 2.647 10.195 6.55l.087-.085c0-.043 1.735-2.907 1.735-2.907s-.087-.347-.303-.78c-.217-.564-.478-1.216-.608-1.692" stroke="#011e34"/> - <path d="M475.22 289.87c2.864 1.91 4.122 2.734 10.195 6.465l.087-.13c0-.087 1.648-2.908 1.648-2.908s-.087-.303-.26-.737a18.13 18.13 0 0 1-.564-1.604" stroke="#022037"/> - <path d="M475.22 289.87c2.777 1.822 4.295 2.777 10.195 6.335l.087-.13c0-.087 1.56-2.864 1.518-2.864 0 0-.044-.303-.216-.694-.174-.52-.39-1.128-.52-1.56" stroke="#022139"/> - <path d="M475.22 289.83c2.69 1.778 4.47 2.864 10.195 6.248l.087-.13c0-.13 1.432-2.864 1.432-2.864s0-.26-.174-.652a8.23 8.23 0 0 1-.477-1.474" stroke="#02223b"/> - <path d="M475.26 289.83c2.56 1.692 4.6 2.95 10.152 6.118.043 0 .087-.13.087-.13 0-.174 1.344-2.82 1.344-2.865-.043 0 0-.217-.174-.606a9.618 9.618 0 0 1-.39-1.39" stroke="#02233d"/> - <path d="M475.26 289.78c2.473 1.65 4.773 3.038 10.197 6.03 0 0 .043-.13.087-.13 0-.215 1.215-2.82 1.17-2.82 0 0 .045-.217-.086-.607-.173-.433-.304-.867-.347-1.3" stroke="#022540"/> - <path d="M475.26 289.78c2.386 1.606 4.946 3.08 10.197 5.9l.087-.13c0-.216 1.085-2.777 1.085-2.82 0 0 .085-.174-.088-.52a4.8 4.8 0 0 1-.304-1.26" stroke="#022541"/> - <path d="M475.26 289.78c2.3 1.52 5.12 3.167 10.197 5.814 0-.044.087-.173.087-.173 0-.26.998-2.776.954-2.82 0 0 .13-.13 0-.476-.173-.434-.217-.78-.26-1.17" stroke="#022743"/> - <path d="M475.3 289.74c2.17 1.475 5.25 3.254 10.153 5.728 0-.044.087-.13.087-.174 0-.304.867-2.777.867-2.777s.13-.13 0-.477c-.173-.39-.173-.693-.173-1.084" stroke="#022847"/> - <path d="M475.3 289.74c2.082 1.39 5.38 3.34 10.153 5.598a.33.33 0 0 0 .087-.174c0-.346.78-2.734.737-2.777 0 0 .217-.13.087-.433-.174-.39-.13-.607-.13-.998" stroke="#022a49"/> - <path d="M475.3 289.74c1.996 1.302 5.553 3.384 10.153 5.467.043-.043.087-.13.13-.173-.043-.348.65-2.734.607-2.734 0-.043.217-.13.087-.433-.13-.348-.087-.52-.087-.91" stroke="#032a4a"/> - <path d="M475.35 289.7c1.865 1.258 5.684 3.47 10.11 5.38.043-.043.087-.13.13-.172 0-.39.52-2.69.477-2.734 0 0 .26-.087.173-.346-.173-.348-.087-.478-.044-.868" stroke="#032b4c"/> - <path d="M475.35 289.7c1.778 1.17 5.857 3.558 10.11 5.25.043 0 .13-.13.13-.173 0-.434.433-2.69.39-2.734 0 0 .303-.044.173-.303-.13-.348 0-.39.043-.78" stroke="#032d4f"/> - <path d="M475.35 289.7c1.692 1.085 6.03 3.6 10.153 5.163 0-.043.087-.173.087-.217 0-.433.346-2.647.303-2.69h-.044s.346-.043.26-.304c-.13-.303 0-.303.086-.694" stroke="#032e50"/> - <path d="M475.35 289.65c1.605 1.085 6.205 3.688 10.153 5.077a.455.455 0 0 0 .087-.216c0-.476.216-2.646.173-2.69l.26-.26c-.13-.26.044-.26.173-.607" stroke="#032f53"/> - <path d="M475.39 289.65c1.475.998 6.334 3.775 10.11 4.946a.46.46 0 0 0 .087-.217c0-.52.13-2.648.086-2.69 0 0 .39.042.304-.174-.13-.304.086-.217.172-.563" stroke="#033156"/> - <path d="M475.39 289.61c1.39.954 6.508 3.862 10.11 4.86.043-.044.087-.174.13-.218 0-.563-.044-2.603-.087-2.647 0 0 .434.044.347-.172-.087-.26.13-.13.26-.477" stroke="#043258"/> - <path d="M475.39 289.61c1.302.867 6.68 3.905 10.11 4.73.043-.044.087-.174.13-.218 0-.563-.13-2.603-.173-2.647 0 0 .433.086.39-.13-.13-.217.13-.043.302-.39" stroke="#043359"/> - <path d="M475.39 289.61c1.215.78 6.811 3.992 10.11 4.6.043-.044.13-.13.13-.217 0-.608-.218-2.56-.305-2.647 0 0 .52.13.435-.087-.087-.218.217.043.39-.304" stroke="#04355c"/> - <path d="M475.43 289.57c1.085.737 6.942 4.08 10.066 4.555.043-.085.13-.172.13-.26 0-.65-.347-2.56-.39-2.603 0 0 .52.087.433-.043-.045-.218.26.086.433-.26" stroke="#04365e"/> - <path d="M475.43 289.57c.998.65 7.115 4.166 10.066 4.426.087-.087.13-.173.13-.26 0-.65-.434-2.517-.52-2.604 0 0 .563.13.52 0-.087-.172.303.13.477-.172" stroke="#043760"/> - <path d="M475.43 289.57c.91.565 7.29 4.208 10.11 4.296l.13-.26c-.044-.694-.564-2.517-.65-2.604 0 0 .606.174.52.043-.043-.172.346.217.563-.085" stroke="#043862"/> - <path d="M475.48 289.52c.782.52 7.42 4.296 10.066 4.21.043-.044.086-.175.13-.26 0-.74-.695-2.518-.738-2.56h-.043s.65.17.608.042c-.044-.13.346.303.607 0" stroke="#053a65"/> - <path d="M475.48 289.52c.695.478 7.593 4.383 10.066 4.08.043-.045.13-.175.13-.262 0-.78-.78-2.473-.868-2.56 0 0 .65.216.607.13-.044-.13.434.347.694.044" stroke="#053b67"/> - <path d="M475.48 289.52c.607.39 7.767 4.426 10.066 3.949.043-.045.13-.175.13-.26 0-.783-.868-2.474-.955-2.518v-.043s.695.26.65.173c-.042-.13.436.433.696.13" stroke="#053c68"/> - <path d="M475.48 289.48c.52.347 7.94 4.513 10.066 3.905a.47.47 0 0 0 .13-.303c0-.824-.998-2.43-1.085-2.516 0 0 .738.26.694.173-.043-.088.477.52.78.216" stroke="#053e6c"/> - <path d="M475.52 289.48c.39.26 8.07 4.6 10.023 3.775.086-.087.13-.217.173-.304-.044-.867-1.128-2.43-1.215-2.516 0 0 .738.304.738.217-.043-.042.52.608.824.305" stroke="#053f6e"/> - <path d="M475.52 289.48c.304.174 8.2 4.642 10.023 3.645.086-.087.13-.218.173-.304 0-.867-1.26-2.43-1.345-2.472 0 0 .825.303.78.26 0-.087.565.607.912.347" stroke="#053f6f"/> - <path d="M475.52 289.43c.217.13 8.375 4.73 10.023 3.558a.71.71 0 0 0 .173-.304c0-.91-1.345-2.387-1.432-2.473 0 0 .824.348.824.305-.044-.044.607.693.91.434" stroke="#064171"/> - <path d="M475.52 289.43c.13.043 8.547 4.816 10.066 3.427.043-.086.13-.173.13-.304 0-.954-1.433-2.386-1.563-2.473l.867.347s.65.78.998.52" stroke="#064374"/> - <path d="M475.57 289.39s9.72 5.467 10.153 3.038c0-.998-1.65-2.43-1.65-2.43l.912.346s.65.868 1.04.608" stroke="#00209f"/> - </g> - <g> - <path d="M474.44 315.12l-7.55 12.582c-.564-.346-1.518-1.345-1.822-2.213-.565-1.737-.478-1.737-.91-3.602-.217-1.084-.26-2.3-.478-3.427-.26-1.127-1.866-4.728-1.91-6.204" stroke="#011d33"/> - <path d="M461.77 312.26c.043 1.475 1.65 4.99 1.91 6.118.217 1.13.26 2.344.476 3.427.433 1.866.347 1.823.955 3.558.26.867 1.26 1.866 1.78 2.212.043 0 7.506-12.452 7.55-12.452" stroke="#011d33"/> - <path d="M461.77 312.26c.043 1.433 1.65 4.946 1.866 6.074.26 1.13.304 2.3.564 3.384.433 1.823.303 1.823.91 3.558.305.824 1.26 1.823 1.78 2.17.043 0 7.463-12.28 7.55-12.322" stroke="#011e34"/> - <path d="M461.77 312.26c.043 1.433 1.606 4.903 1.866 6.03.26 1.086.304 2.258.564 3.34.433 1.824.303 1.78.91 3.516.305.825 1.26 1.78 1.78 2.126.087.044 7.463-12.106 7.55-12.15" stroke="#011e34"/> - <path d="M461.77 312.26c.043 1.39 1.606 4.86 1.866 5.944.26 1.13.304 2.257.564 3.34.433 1.78.346 1.78.91 3.472.305.824 1.26 1.78 1.78 2.126.13.044 7.42-11.976 7.55-12.018" stroke="#011f36"/> - <path d="M461.77 312.26c.043 1.39 1.606 4.816 1.866 5.902.26 1.084.304 2.256.564 3.296.433 1.78.346 1.736.954 3.427.303.825 1.215 1.78 1.78 2.127.086.043 7.332-11.846 7.506-11.888" stroke="#011f36"/> - <path d="M461.77 312.26c.043 1.39 1.562 4.73 1.866 5.815.26 1.084.304 2.256.564 3.296.433 1.737.346 1.737.954 3.385.303.825 1.215 1.78 1.78 2.127.13.043 7.332-11.715 7.506-11.758" stroke="#022037"/> - <path d="M461.77 312.26c.043 1.346 1.562 4.686 1.866 5.77.26 1.086.304 2.214.564 3.255.433 1.735.39 1.735.954 3.34.303.825 1.215 1.78 1.78 2.083.172.087 7.288-11.498 7.506-11.584" stroke="#022037"/> - <path d="M461.77 312.26c.043 1.346 1.562 4.642 1.866 5.728.26 1.04.304 2.17.564 3.21.433 1.693.39 1.693.997 3.34.303.78 1.215 1.692 1.736 2.04.173.043 7.29-11.368 7.507-11.454" stroke="#022139"/> - <path d="M461.77 312.26c.043 1.303 1.562 4.6 1.866 5.64.26 1.086.304 2.17.564 3.21.433 1.694.39 1.694.997 3.297.303.782 1.215 1.693 1.736 2.04.216.044 7.246-11.238 7.507-11.323" stroke="#022139"/> - <path d="M461.77 312.26c.043 1.303 1.52 4.555 1.866 5.598.26 1.04.304 2.125.607 3.166.433 1.692.346 1.65.954 3.254.303.78 1.215 1.693 1.736 2.04.26.043 7.203-11.108 7.507-11.194" stroke="#022139"/> - <path d="M461.77 312.26c.043 1.303 1.52 4.47 1.866 5.554.26.998.304 2.126.607 3.08.433 1.693.39 1.693.954 3.254.303.78 1.215 1.69 1.736 1.995.26.087 7.203-10.934 7.507-11.02" stroke="#02223b"/> - <path d="M461.77 312.26c.043 1.26 1.52 4.426 1.866 5.467.26 1.042.304 2.127.607 3.08.433 1.693.39 1.693.998 3.21.304.78 1.172 1.65 1.693 1.997.303.086 7.16-10.76 7.507-10.89" stroke="#02223b"/> - <path d="M461.77 312.26c.043 1.26 1.52 4.383 1.866 5.424.26.998.304 2.083.607 3.038.433 1.65.39 1.65.998 3.21.304.737 1.172 1.606 1.737 1.953.303.087 7.072-10.63 7.463-10.76" stroke="#02233d"/> - <path d="M461.77 312.26c.043 1.216 1.475 4.34 1.866 5.38.26.998.304 2.04.607 2.995.433 1.65.433 1.65.998 3.167.304.737 1.216 1.605 1.737 1.953.303.085 7.072-10.5 7.463-10.63" stroke="#02233d"/> - <path d="M461.77 312.26c.043 1.216 1.475 4.295 1.866 5.294.26.997.348 2.04.607 2.994.433 1.606.433 1.606.998 3.123.347.74 1.216 1.607 1.737 1.91.346.13 7.028-10.326 7.463-10.455" stroke="#02233e"/> - <path d="M461.77 312.26c.043 1.173 1.475 4.21 1.866 5.25.26.998.348 1.997.607 2.95.433 1.607.433 1.607 1.04 3.08.304.74 1.173 1.607 1.694 1.91.39.13 7.028-10.196 7.463-10.325" stroke="#02233e"/> - <path d="M461.77 312.21c.043 1.216 1.475 4.21 1.823 5.25.304.955.39 1.997.65 2.908.433 1.562.433 1.605 1.04 3.037.304.74 1.173 1.563 1.694 1.91.39.13 6.985-10.023 7.463-10.195" stroke="#022540"/> - <path d="M461.77 312.21c.043 1.216 1.432 4.166 1.823 5.163.304.955.39 1.997.65 2.908.477 1.563.477 1.563 1.04 3.04.304.693 1.173 1.517 1.694 1.82.433.132 6.942-9.848 7.463-10.02" stroke="#022540"/> - <path d="M461.77 312.21c.043 1.173 1.432 4.122 1.823 5.12.26.954.39 1.953.694 2.864.433 1.52.433 1.562 1.04 2.994.304.695 1.13 1.52 1.65 1.823.476.13 6.942-9.718 7.463-9.89" stroke="#022540"/> - <path d="M461.77 312.21c.043 1.173 1.432 4.035 1.823 5.077.26.91.39 1.91.694 2.82.433 1.52.433 1.52 1.04 2.95.304.696 1.172 1.52 1.65 1.824.476.13 6.898-9.588 7.463-9.76" stroke="#022541"/> - <path d="M461.77 312.21c.043 1.13 1.432 3.992 1.823 4.99.26.955.39 1.91.694 2.82.433 1.476.476 1.52 1.04 2.91.304.692 1.172 1.516 1.693 1.82.477.13 6.855-9.458 7.42-9.63" stroke="#022541"/> - <path d="M461.77 312.21c.043 1.13 1.39 3.949 1.823 4.946.26.912.39 1.866.694 2.777.433 1.476.476 1.476 1.04 2.865.347.694 1.172 1.476 1.693 1.78.52.172 6.812-9.242 7.42-9.46" stroke="#022743"/> - <path d="M461.77 312.21c.043 1.13 1.39 3.905 1.823 4.903.26.868.39 1.866.694 2.734.433 1.432.476 1.475 1.084 2.863.304.652 1.13 1.433 1.65 1.736.52.174 6.768-9.112 7.42-9.327" stroke="#022743"/> - <path d="M461.77 312.21c.043 1.086 1.39 3.862 1.823 4.816.26.912.39 1.866.694 2.735.433 1.433.476 1.476 1.084 2.82.304.652 1.13 1.433 1.65 1.737.564.173 6.768-8.983 7.42-9.198" stroke="#022845"/> - <path d="M461.77 312.21c.043 1.086 1.39 3.775 1.823 4.773.26.868.39 1.822.694 2.69.433 1.39.52 1.433 1.084 2.778.348.65 1.13 1.433 1.65 1.737.607.173 6.725-8.852 7.42-9.069" stroke="#022845"/> - <path d="M461.77 312.21c.043 1.042 1.345 3.73 1.823 4.73.26.868.39 1.78.694 2.647.476 1.39.52 1.432 1.084 2.734.348.65 1.13 1.433 1.65 1.693.607.217 6.68-8.678 7.42-8.895" stroke="#022847"/> - <path d="M461.77 312.21c.043 1.042 1.345 3.688 1.823 4.642.26.87.39 1.78.737 2.648.433 1.345.478 1.39 1.085 2.69.303.652 1.128 1.39 1.605 1.693.65.217 6.68-8.548 7.42-8.808" stroke="#022847"/> - <path d="M461.77 312.21c.043 1.042 1.345 3.645 1.823 4.6.26.867.39 1.735.737 2.56.433 1.388.52 1.432 1.085 2.69.303.65 1.128 1.39 1.605 1.693.694.173 6.638-8.375 7.42-8.678" stroke="#022847"/> - <path d="M461.77 312.21c.043 1 1.345 3.6 1.823 4.556.26.825.39 1.735.737 2.517.433 1.345.52 1.432 1.085 2.69.346.608 1.128 1.345 1.65 1.65.65.173 6.593-8.245 7.375-8.548" stroke="#022a49"/> - <path d="M461.77 312.21c.043 1 1.302 3.514 1.823 4.47.26.824.39 1.734.737 2.516.433 1.345.52 1.39 1.085 2.647.346.608 1.128 1.345 1.65 1.606.692.216 6.55-8.072 7.375-8.375" stroke="#022a49"/> - <path d="M461.77 312.21c.043.955 1.302 3.47 1.823 4.426.26.824.433 1.692.737 2.473.433 1.3.52 1.388 1.128 2.603.304.608 1.085 1.345 1.606 1.605.737.218 6.507-7.94 7.376-8.243" stroke="#032a4a"/> - <path d="M461.77 312.21c.043.955 1.302 3.427 1.78 4.383.303.78.476 1.648.78 2.43.433 1.3.564 1.345 1.128 2.56.347.607 1.085 1.302 1.606 1.605.737.217 6.507-7.81 7.376-8.113" stroke="#032a4a"/> - <path d="M461.81 312.21c0 .955 1.215 3.384 1.736 4.295.304.825.477 1.65.78 2.43.434 1.26.564 1.346 1.13 2.517.346.608 1.127 1.302 1.604 1.562.78.26 6.464-7.593 7.376-7.94" stroke="#032b4c"/> - <path d="M461.81 312.21c0 .912 1.215 3.34 1.736 4.253.304.78.477 1.605.78 2.386.478 1.257.564 1.344 1.172 2.515.304.565 1.085 1.26 1.562 1.52.824.26 6.42-7.464 7.376-7.81" stroke="#032b4c"/> - <path d="M461.81 312.21c0 .912 1.215 3.254 1.736 4.166.304.78.477 1.65.78 2.386.478 1.258.564 1.302 1.172 2.474.304.564 1.085 1.26 1.562 1.518.824.26 6.42-7.333 7.376-7.68" stroke="#032c4d"/> - <path d="M461.81 312.21c0 .87 1.215 3.21 1.736 4.122.304.78.477 1.606.824 2.343.434 1.215.564 1.302 1.128 2.43.347.564 1.085 1.26 1.562 1.52.868.26 6.377-7.204 7.376-7.55" stroke="#032c4d"/> - <path d="M461.81 312.21c0 .87 1.17 3.167 1.736 4.08.304.736.477 1.56.824 2.298.434 1.216.564 1.26 1.128 2.387.347.564 1.085 1.215 1.606 1.476.867.304 6.335-7.03 7.332-7.375" stroke="#032c4d"/> - <path d="M461.81 312.21c0 .87 1.17 3.123 1.736 3.992.304.78.477 1.562.824 2.3.434 1.172.564 1.26 1.17 2.343.305.564 1.043 1.215 1.564 1.476.867.26 6.29-6.855 7.332-7.245" stroke="#032d4f"/> - <path d="M461.81 312.21c0 .825 1.17 3.08 1.736 3.949.304.736.477 1.517.824 2.254.434 1.173.607 1.215 1.17 2.344.35.52 1.043 1.172 1.564 1.432.91.26 6.248-6.725 7.332-7.115" stroke="#032d4f"/> - <path d="M461.81 312.21c0 .825 1.17 2.994 1.736 3.905.304.737.477 1.475.824 2.213.434 1.13.607 1.216 1.17 2.3.35.52 1.086 1.172 1.564 1.432.954.26 6.248-6.595 7.332-6.985" stroke="#032e50"/> - <path d="M461.81 312.21c0 .782 1.128 2.95 1.736 3.818.304.737.477 1.52.824 2.213.434 1.13.607 1.217 1.17 2.258.35.52 1.086 1.17 1.564 1.39.954.302 6.204-6.423 7.332-6.813" stroke="#032e50"/> - <path d="M461.81 312.21c0 .782 1.128 2.908 1.736 3.775.304.695.477 1.475.824 2.17.434 1.085.607 1.17 1.215 2.213.347.52 1.04 1.128 1.52 1.388.996.304 6.203-6.29 7.33-6.68" stroke="#032f53"/> - <path d="M461.81 312.21c0 .738 1.128 2.865 1.736 3.73.304.696.477 1.433.824 2.128.477 1.085.65 1.172 1.215 2.17.347.52 1.04 1.127 1.52 1.388 1.04.304 6.16-6.118 7.33-6.55" stroke="#032f53"/> - <path d="M461.81 312.21c0 .738 1.128 2.822 1.736 3.645.304.693.477 1.432.824 2.126.477 1.043.65 1.13 1.215 2.17.347.478 1.04 1.086 1.562 1.346.998.304 6.074-5.988 7.29-6.42" stroke="#033054"/> - <path d="M461.81 312.21c0 .738 1.085 2.735 1.736 3.6.304.695.477 1.39.867 2.085.434 1.04.607 1.128 1.172 2.125.347.478 1.04 1.086 1.562 1.302 1.04.347 6.074-5.814 7.29-6.247" stroke="#033054"/> - <path d="M461.81 312.21c0 .695 1.085 2.69 1.736 3.558.26.65.52 1.345.867 1.996.434 1.04.65 1.172 1.215 2.126.348.478 1.042 1.042 1.52 1.303 1.084.346 6.03-5.685 7.288-6.118" stroke="#033054"/> - <path d="M461.81 312.21c0 .695 1.085 2.648 1.692 3.47.304.652.564 1.39.91 1.997.435 1.042.652 1.128 1.216 2.084.348.477 1.04 1.042 1.52 1.302 1.084.347 5.988-5.554 7.288-5.987" stroke="#033156"/> - <path d="M461.81 312.21c0 .65 1.085 2.604 1.692 3.427.304.652.564 1.345.91 1.953.435.998.652 1.128 1.216 2.04.348.477 1.04 1.042 1.52 1.302 1.127.304 5.988-5.38 7.288-5.857" stroke="#033156"/> - <path d="M461.81 312.21c0 .65 1.04 2.56 1.692 3.384.304.608.564 1.302.91 1.91.435.997.652 1.084 1.26 2.04.347.476.997.997 1.475 1.214 1.17.348 5.945-5.206 7.29-5.683" stroke="#043258"/> - <path d="M461.81 312.21c0 .65 1.04 2.474 1.692 3.297.304.652.564 1.302.91 1.91.435.954.695 1.084 1.26 1.996.347.477.997.998 1.475 1.215 1.17.348 5.945-5.076 7.29-5.553" stroke="#043258"/> - <path d="M461.81 312.17c0 .65 1.04 2.474 1.692 3.297.304.608.564 1.26.91 1.866.478.955.695 1.085 1.26 1.953.347.478.997.955 1.475 1.215 1.215.35 5.902-4.945 7.29-5.422" stroke="#043359"/> - <path d="M461.81 312.17c0 .65 1.04 2.43 1.692 3.254.304.608.564 1.216.91 1.823.478.91.695 1.04 1.26 1.91.39.476.997.953 1.518 1.17 1.215.39 5.814-4.772 7.246-5.25" stroke="#043359"/> - <path d="M461.81 312.17c0 .608.998 2.387 1.692 3.167.304.608.564 1.26.955 1.823.433.912.694 1.04 1.258 1.866.348.478.998.954 1.476 1.17 1.215.392 5.814-4.598 7.246-5.118" stroke="#04345b"/> - <path d="M461.81 312.17c0 .608.998 2.3 1.692 3.123.304.565.564 1.215.955 1.78.433.868.694 1 1.258 1.823.348.477.998.955 1.476 1.17 1.26.392 5.772-4.467 7.246-4.988" stroke="#04345b"/> - <path d="M461.81 312.17c0 .608.998 2.257 1.692 3.08.304.565.564 1.173.955 1.736.433.868.694 1 1.258 1.823.348.433.998.91 1.476 1.127 1.302.39 5.772-4.34 7.246-4.86" stroke="#04345b"/> - <path d="M461.81 312.17c0 .565.954 2.214 1.692 2.994.304.565.564 1.173.955 1.736.433.825.694.956 1.258 1.78.39.434.998.868 1.476 1.085 1.302.433 5.728-4.165 7.246-4.685" stroke="#04355c"/> - <path d="M461.81 312.17c0 .565.954 2.17 1.692 2.95.304.564.564 1.13.955 1.692.433.825.737.956 1.302 1.736.346.435.953.87 1.43 1.085 1.346.434 5.685-4.034 7.246-4.554" stroke="#04355c"/> - <path d="M461.81 312.17c0 .52.954 2.127 1.692 2.908.304.52.564 1.085.955 1.65.433.824.737.954 1.302 1.69.346.435.953.87 1.43 1.087 1.39.433 5.685-3.906 7.246-4.426" stroke="#04365e"/> - <path d="M461.81 312.17c0 .52.954 2.04 1.692 2.822.304.52.564 1.128.955 1.65.476.78.737.91 1.302 1.647.39.433.996.867 1.43 1.084 1.39.39 5.642-3.73 7.246-4.295" stroke="#04365e"/> - <path d="M461.81 312.17c0 .52.91 1.996 1.692 2.778.304.52.564 1.085.955 1.605.476.78.78.912 1.302 1.65.39.39.996.824 1.474.998 1.39.434 5.554-3.557 7.202-4.12" stroke="#043760"/> - <path d="M461.81 312.17c0 .478.91 1.953 1.692 2.735.304.476.564 1.04.955 1.562.476.737.78.867 1.345 1.606.347.39.954.78 1.432.997 1.432.435 5.554-3.427 7.202-3.99" stroke="#043760"/> - <path d="M461.81 312.17c0 .478.91 1.91 1.65 2.648.346.52.65 1.04 1.04 1.562.435.737.74.868 1.302 1.562.347.39.954.78 1.432.998 1.432.434 5.51-3.297 7.202-3.904" stroke="#043862"/> - <path d="M461.81 312.17c0 .434.91 1.866 1.65 2.604.346.477.65.998 1.04 1.476.435.737.74.91 1.302 1.562.39.39.954.78 1.432.998 1.475.434 5.51-3.167 7.202-3.774" stroke="#043862"/> - <path d="M461.81 312.17c0 .434.867 1.78 1.65 2.518.346.52.65.997 1.04 1.475.435.737.782.867 1.345 1.52.348.39.91.78 1.39.953 1.518.478 5.466-2.95 7.2-3.6" stroke="#043862"/> - <path d="M461.81 312.17c0 .434.867 1.736 1.65 2.474.346.478.65.998 1.04 1.432.435.694.782.868 1.345 1.52.348.346.91.736 1.39.91 1.518.478 5.423-2.82 7.2-3.47" stroke="#043963"/> - <path d="M461.81 312.17c0 .39.867 1.692 1.65 2.43.346.435.65.955 1.04 1.39.435.694.782.823 1.345 1.475.39.347.955.695 1.39.91 1.56.478 5.423-2.69 7.2-3.34" stroke="#043963"/> - <path d="M461.81 312.17c0 .39.867 1.65 1.65 2.344.346.478.65.954 1.04 1.39.478.65.825.824 1.345 1.43.39.348.955.695 1.39.91 1.605.48 5.38-2.56 7.2-3.208" stroke="#053a65"/> - <path d="M461.81 312.17c0 .347.824 1.606 1.65 2.3.346.435.65.91 1.04 1.346.478.65.825.825 1.39 1.388.345.348.91.695 1.387.87 1.606.52 5.294-2.39 7.16-3.04" stroke="#053a65"/> - <path d="M461.81 312.17c0 .347.824 1.52 1.65 2.257.346.434.65.867 1.04 1.302.478.607.825.78 1.39 1.344.39.347.91.695 1.387.868 1.606.477 5.294-2.213 7.16-2.907" stroke="#053b67"/> - <path d="M461.81 312.17c0 .347.824 1.476 1.65 2.17.346.434.65.868 1.084 1.302.434.608.78.782 1.345 1.345.39.304.91.65 1.387.825 1.65.477 5.25-2.083 7.16-2.777" stroke="#053b67"/> - <path d="M461.81 312.17c0 .304.824 1.433 1.65 2.127.346.39.65.867 1.084 1.258.434.565.825.738 1.345 1.302.39.304.91.608 1.387.78 1.693.523 5.25-1.908 7.16-2.602" stroke="#053c68"/> - <path d="M461.81 312.17c0 .304.78 1.39 1.65 2.083.346.39.65.825 1.084 1.215.434.565.825.738 1.388 1.26.347.302.91.606 1.345.78 1.693.52 5.207-1.78 7.16-2.473" stroke="#053c68"/> - <path d="M461.81 312.17c0 .26.78 1.346 1.65 1.996.303.39.65.826 1.084 1.215.434.522.825.696 1.388 1.217.39.303.91.607 1.345.78 1.736.522 5.164-1.648 7.16-2.342" stroke="#053c68"/> - <path d="M461.81 312.17c0 .26.78 1.26 1.65 1.953.303.39.65.782 1.084 1.172.434.52.868.694 1.388 1.172.39.303.91.607 1.345.78 1.78.522 5.164-1.475 7.16-2.212" stroke="#053d6a"/> - <path d="M461.81 312.17c0 .217.78 1.216 1.65 1.91.303.347.65.738 1.084 1.128.477.477.868.694 1.388 1.13.39.303.91.606 1.345.736 1.78.564 5.12-1.302 7.16-2.04" stroke="#053d6a"/> - <path d="M461.81 312.17c0 .217.737 1.173 1.65 1.823.303.39.65.738 1.084 1.13.477.475.868.65 1.432 1.127.39.26.867.52 1.345.694 1.78.564 5.077-1.172 7.116-1.91" stroke="#053e6c"/> - <path d="M461.81 312.17c0 .217.737 1.13 1.606 1.78.347.347.737.694 1.128 1.085.477.433.868.65 1.432 1.085.39.26.867.52 1.345.693 1.824.565 5.034-1.04 7.116-1.778" stroke="#053e6c"/> - <path d="M461.81 312.17c0 .174.737 1.086 1.606 1.736.347.304.737.695 1.128 1.042.477.433.91.607 1.432 1.04.39.262.867.52 1.345.696 1.824.564 4.99-.912 7.116-1.65" stroke="#053f6e"/> - <path d="M461.81 312.17c0 .174.737 1 1.606 1.65a14.2 14.2 0 0 0 1.17 1.04c.435.39.87.608 1.433 1 .345.26.867.52 1.3.65 1.867.564 4.99-.694 7.116-1.475" stroke="#053f6e"/> - <path d="M461.81 312.17c0 .13.694.955 1.606 1.606.347.304.737.65 1.17.955.435.434.87.65 1.433 1 .39.26.867.476 1.3.65 1.91.564 4.947-.564 7.116-1.345" stroke="#053f6f"/> - <path d="M461.81 312.17c0 .13.694.912 1.606 1.562.347.304.737.608 1.17.912.435.39.87.607 1.433.998.39.217.867.434 1.3.608 1.91.563 4.904-.434 7.116-1.215" stroke="#053f6f"/> - <path d="M461.81 312.17c0 .13.694.868 1.606 1.476.347.303.737.607 1.17.91.435.392.912.608 1.433.956.39.217.867.434 1.3.608 1.954.564 4.904-.304 7.116-1.085" stroke="#053f6f"/> - <path d="M461.81 312.17c0 .087.65.782 1.606 1.433.347.26.737.563 1.17.867.48.39.912.565 1.477.91.39.218.824.436 1.258.566 1.996.607 4.86-.13 7.116-.91" stroke="#064171"/> - <path d="M461.81 312.17c0 .087.65.738 1.606 1.39.347.26.737.563 1.17.824.48.347.912.564 1.477.867.39.218.824.435 1.3.566 1.953.608 4.817 0 7.073-.78" stroke="#064171"/> - <path d="M461.81 312.17c0 .043.65.695 1.606 1.303.347.26.737.563 1.17.824.48.347.955.564 1.477.825.39.216.867.39 1.3.563 1.997.608 4.774.174 7.073-.65" stroke="#064172"/> - <path d="M461.81 312.13c0 .087.65.695 1.606 1.303.347.26.737.52 1.17.78.48.304.955.52 1.477.825l1.3.52c2.04.608 4.73.304 7.073-.52" stroke="#064172"/> - <path d="M461.81 312.13c0 .087.607.65 1.606 1.26.347.216.737.476 1.17.736.48.304.955.522 1.52.782.39.174.824.346 1.258.477 2.04.65 4.73.477 7.072-.347" stroke="#064374"/> - <path d="M461.81 312.13c0 .043.607.565 1.606 1.173.347.26.737.476 1.215.737.435.26.91.477 1.476.738.39.174.824.347 1.258.477 2.083.65 4.686.607 7.072-.217" stroke="#064374"/> - <path d="M461.81 312.13c0 .043.607.52 1.606 1.13.347.216.737.433 1.215.693.435.26.955.477 1.476.695.39.173.824.347 1.258.477 2.126.607 4.643.737 7.072-.087m-12.627-2.908s6.465 5.077 12.626 2.908" stroke="#00209f"/> - </g> - <g> - <path d="M461.55 292.17s1.258 8.113 1.736 9.285c.433 1.042 2.994 5.684 6.898 6.77" stroke="#022743"/> - <path d="M461.55 292.17s1.345 8.027 1.866 9.2c.434 1.04 2.82 5.465 6.812 6.81" stroke="#022a49"/> - <path d="M461.59 292.13s1.39 7.984 1.91 9.2c.434 1.04 2.69 5.205 6.724 6.854" stroke="#032b4c"/> - <path d="M461.59 292.13s1.475 7.94 1.996 9.112c.477 1.04 2.517 4.99 6.638 6.898" stroke="#032e50"/> - <path d="M461.64 292.13s1.52 7.853 2.04 9.025c.52 1.085 2.386 4.772 6.594 6.942" stroke="#033054"/> - <path d="M461.64 292.13s1.606 7.81 2.17 8.982c.477 1.084 2.213 4.468 6.464 6.985" stroke="#043359"/> - <path d="M461.64 292.08s1.692 7.767 2.257 8.938c.52 1.085 2.04 4.253 6.377 7.03" stroke="#04355c"/> - <path d="M461.68 292.08s1.735 7.723 2.3 8.895c.52 1.084 1.908 3.992 6.29 7.072" stroke="#043760"/> - <path d="M461.68 292.08s1.822 7.636 2.386 8.808c.564 1.085 1.78 3.775 6.248 7.115" stroke="#053a65"/> - <path d="M461.72 292.04s1.865 7.636 2.473 8.765c.564 1.128 1.562 3.515 6.118 7.202" stroke="#053c68"/> - <path d="M461.72 292.04s1.996 7.55 2.56 8.72c.563 1.086 1.432 3.255 6.03 7.203" stroke="#053f6e"/> - <path d="M461.77 292.04s2.04 7.506 2.603 8.634c.607 1.128 1.302 3.038 5.988 7.246" stroke="#064172"/> - <path d="M461.77 291.99s2.127 7.463 2.69 8.59c.607 1.13 1.172 2.82 5.9 7.333" stroke="#00209f"/> - </g> - <g> - <path d="M462.07 287.18s1.04 11.455 9.198 14.622" stroke="#022743"/> - <path d="M462.07 287.18c.043.043.477 3.688 2.126 7.246 1.3 2.733 3.47 5.857 7.072 7.332" stroke="#022a49"/> - <path d="M462.11 287.18c0 .043.52 3.775 2.17 7.202 1.214 2.517 3.383 5.772 6.984 7.376" stroke="#032b4c"/> - <path d="M462.11 287.18c.043.087.65 3.905 2.256 7.115 1.17 2.343 3.297 5.728 6.898 7.42" stroke="#032e50"/> - <path d="M462.16 287.18c0 .087.737 3.992 2.343 7.072 1.04 2.17 3.167 5.64 6.77 7.42" stroke="#033054"/> - <path d="M462.16 287.18c.043.13.867 4.08 2.43 6.985.954 1.997 3.123 5.598 6.682 7.507" stroke="#043359"/> - <path d="M462.2 287.18c0 .13.954 4.166 2.473 6.942.91 1.78 3.038 5.51 6.595 7.506" stroke="#04355c"/> - <path d="M462.2 287.14c.043.217 1.085 4.34 2.56 6.943.824 1.56 2.95 5.423 6.508 7.505" stroke="#043760"/> - <path d="M462.2 287.14c.087.217 1.215 4.425 2.647 6.856.78 1.432 2.864 5.38 6.42 7.55" stroke="#053a65"/> - <path d="M462.25 287.14c.043.26 1.302 4.512 2.69 6.813.694 1.214 2.777 5.293 6.335 7.592" stroke="#053c68"/> - <path d="M462.25 287.14c.086.26 1.432 4.6 2.82 6.726.607 1.04 2.647 5.25 6.205 7.635" stroke="#053f6e"/> - <path d="M462.29 287.14c.043.304 1.52 4.73 2.864 6.682.52.824 2.56 5.164 6.118 7.636" stroke="#064172"/> - <path d="M462.29 287.14c.086.304 1.65 4.816 2.95 6.595.477.65 2.474 5.12 6.032 7.723" stroke="#00209f"/> - </g> - <g> - <path d="M462.16 284.01s2.386 9.2 9.025 11.455" stroke="#022743"/> - <path d="M462.16 284.01s.91 3.254 3.08 6.422c1.432 2.125 3.514 4.208 5.944 5.033" stroke="#022847"/> - <path d="M462.16 283.97s.954 3.21 3.123 6.377c1.52 2.17 3.645 4.34 5.9 5.12" stroke="#032a4a"/> - <path d="M462.16 283.93s.998 3.167 3.21 6.334c1.563 2.212 3.732 4.468 5.814 5.163" stroke="#032c4d"/> - <path d="M462.2 283.88s.998 3.123 3.254 6.334c1.605 2.212 3.86 4.555 5.728 5.207" stroke="#032f53"/> - <path d="M462.2 283.88s1.04 3.038 3.34 6.248c1.65 2.256 3.95 4.686 5.685 5.25" stroke="#033156"/> - <path d="M462.2 283.84s1.085 3.038 3.384 6.205c1.736 2.342 4.122 4.816 5.64 5.337" stroke="#043359"/> - <path d="M462.2 283.79s1.128 2.994 3.47 6.16c1.78 2.387 4.21 4.947 5.555 5.425" stroke="#04355c"/> - <path d="M462.25 283.79s1.085 2.907 3.514 6.118c1.823 2.386 4.34 5.033 5.468 5.424" stroke="#043760"/> - <path d="M462.25 283.75s1.128 2.864 3.6 6.074c1.866 2.43 4.426 5.207 5.382 5.51" stroke="#043963"/> - <path d="M462.25 283.71s1.17 2.82 3.645 6.03c1.908 2.474 4.6 5.338 5.337 5.598" stroke="#053b67"/> - <path d="M462.25 283.66s1.215 2.777 3.73 6.03c1.954 2.518 4.687 5.425 5.252 5.6" stroke="#053e6c"/> - <path d="M462.29 283.66s1.215 2.69 3.775 5.944c1.995 2.56 4.816 5.554 5.163 5.685" stroke="#053f6f"/> - <path d="M462.29 283.62s1.258 2.647 3.862 5.9c2.04 2.604 4.903 5.685 5.12 5.772" stroke="#064172"/> - <path d="M462.29 283.58s1.302 2.603 3.905 5.857c2.126 2.647 5.077 5.815 5.077 5.815" stroke="#00209f"/> - </g> - <g> - <path d="M479.9 296.55l4.56.83m-4.08 2.64l4.08-1.73" stroke="#00209f"/> - <path d="M479.86 296.68l4.56.7" stroke="#064171"/> - <path d="M479.86 296.85l4.6.57" stroke="#053e6c"/> - <path d="M479.9 297.03l4.6.39" stroke="#053b67"/> - <path d="M479.9 297.2l4.65.26" stroke="#043862"/> - <path d="M479.9 297.38l4.69.08" stroke="#04355c"/> - <path d="M479.95 297.55l4.68-.04" stroke="#043258"/> - <path d="M479.95 297.68l4.73-.17" stroke="#032f53"/> - <path d="M479.95 297.85l4.77-.3" stroke="#032c4d"/> - <path d="M479.99 298.03l4.77-.48" stroke="#022a49"/> - <path d="M480.34 299.81l4.16-1.61" stroke="#064171"/> - <path d="M480.29 299.63l4.26-1.52" stroke="#053e6c"/> - <path d="M480.29 299.46l4.3-1.39" stroke="#053b67"/> - <path d="M480.25 299.28l4.38-1.3" stroke="#043862"/> - <path d="M480.21 299.11l4.47-1.17" stroke="#04355c"/> - <path d="M480.21 298.94l4.51-1.09" stroke="#043258"/> - <path d="M480.16 298.72l4.6-.91" stroke="#032f53"/> - <path d="M480.12 298.55l4.69-.83" stroke="#032c4d"/> - <path d="M480.12 298.37l4.73-.69" stroke="#022a49"/> - <path d="M480.08 298.2l4.81-.61" stroke="#022743"/> - </g> - <g> - <path d="M484.24 331.57s-2.43.13-2.647.217c-.26.044-9.892-.174-9.892-.174" stroke="#032b4c"/> - <path d="M484.29 331.61s-2.386.217-2.734.304c-.39.042-9.762-.26-9.762-.26" stroke="#032e50"/> - <path d="M484.29 331.65s-2.3.303-2.777.39c-.52.088-9.632-.347-9.632-.347" stroke="#033054"/> - <path d="M484.33 331.7s-2.256.346-2.864.478c-.65.13-9.545-.435-9.545-.435" stroke="#043359"/> - <path d="M484.33 331.7s-2.17.478-2.95.607c-.738.174-9.372-.52-9.372-.52" stroke="#04355c"/> - <path d="M484.33 331.74s-2.083.52-2.994.694c-.868.217-9.24-.607-9.24-.607" stroke="#043760"/> - <path d="M484.37 331.78s-2.04.607-3.08.824c-.998.174-9.112-.737-9.112-.737" stroke="#053a65"/> - <path d="M484.37 331.83s-1.996.694-3.123.91c-1.128.218-9.026-.78-9.026-.78" stroke="#053c68"/> - <path d="M484.42 331.87s-1.952.737-3.21.998c-1.26.26-8.895-.87-8.895-.87" stroke="#053f6e"/> - <path d="M484.42 331.91s-1.866.824-3.254 1.085c-1.388.304-8.764-.956-8.764-.956" stroke="#064172"/> - <path d="M472.48 332.09s7.115 1.345 8.634 1.04c1.52-.303 3.34-1.17 3.34-1.17" stroke="#00209f"/> - </g> - <g> - <path d="M486.06 337.07s4.555.695 4.73.65c.085 0 2.646-.172 2.733-.172.043 0 2.212-.52 2.212-.52" stroke="#022a49"/> - <path d="M485.8 336.99s4.686.738 5.033.65c.173-.042 2.517-.172 2.647-.172.13 0 2.082-.478 2.082-.478" stroke="#032d4f"/> - <path d="M485.54 336.86s4.816.825 5.294.695c.26-.044 2.386-.174 2.603-.174.174 0 1.91-.433 1.91-.433" stroke="#033054"/> - <path d="M485.28 336.73s4.903.87 5.597.738a56.906 56.906 0 0 1 2.516-.173l1.736-.348" stroke="#043359"/> - <path d="M485.02 336.64s5.033.91 5.857.737c.434-.087 2.17-.174 2.473-.217.304 0 1.563-.26 1.563-.26" stroke="#043760"/> - <path d="M484.76 336.51s5.163.998 6.16.78c.522-.086 1.998-.173 2.387-.217.348 0 1.39-.217 1.39-.217" stroke="#053a65"/> - <path d="M484.5 336.38s5.25 1.085 6.42.867c.65-.13 1.91-.217 2.343-.26a24.422 24.422 0 0 0 1.215-.174" stroke="#053d6a"/> - <path d="M484.24 336.29s5.38 1.128 6.725.867c.694-.173 1.736-.26 2.256-.26.478-.043 1.085-.087 1.085-.087" stroke="#064171"/> - <path d="M486.325 337.206l4.426.61 2.82-.134 2.387-.61" stroke="#022743"/> - <path d="M483.98 336.16s5.51 1.215 7.03.91c1.474-.303 3.08-.303 3.08-.303" stroke="#00209f"/> - </g> - <g> - <path d="M505.76 336.81l4.295-1.56c2.69-1 2.994-3.69 2.994-3.69" stroke="#00209f"/> - <path d="M505.46 335.95s1.736-.694 3.167-1.215c3.818-1.432 3.384-3.254 3.384-3.254" stroke="#00209f"/> - <path d="M505.2 336.12s2.256-.867 3.427-1.302c.608-.217 1.39-.564 1.78-.825.52-.304 1.17-.91 1.345-1.215.347-.52.347-1.258.347-1.258" stroke="#053e6c"/> - <path d="M504.94 336.34s2.82-1.085 3.688-1.39c.434-.172 1.475-.607 1.736-.78.39-.26 1.302-.998 1.432-1.215.26-.434.433-1.432.433-1.432" stroke="#043862"/> - <path d="M504.68 336.51s3.384-1.258 3.949-1.476c.302-.086 1.517-.607 1.69-.694.262-.174 1.433-1.128 1.52-1.258.174-.26.477-1.563.477-1.563" stroke="#043258"/> - <path d="M504.42 336.73s3.905-1.474 4.208-1.562c.13-.087 1.606-.607 1.693-.694.13-.043 1.52-1.17 1.563-1.258.087-.13.564-1.65.564-1.65" stroke="#032c4d"/> - <path d="M505.46 336.86s3.47-1.302 4.642-1.736c.824-.303 1.693-1.04 2.083-1.56.564-.826.78-1.998.78-1.998" stroke="#053e6c"/> - <path d="M505.11 336.86s4.166-1.52 5.033-1.866c.608-.216 1.693-1.085 1.953-1.475.433-.61.737-1.954.737-1.954" stroke="#043862"/> - <path d="M504.81 336.9s4.816-1.823 5.38-1.996c.435-.173 1.693-1.172 1.867-1.432.304-.434.693-1.91.693-1.91" stroke="#043258"/> - <path d="M504.5 336.9s5.424-2.04 5.728-2.126c.216-.087 1.648-1.215 1.778-1.345.13-.218.65-1.867.65-1.867" stroke="#032c4d"/> - <path d="M504.157 336.896l6.12-2.254 1.647-1.25.608-1.83" stroke="#022743" stroke-width=".18"/> - </g> - <g> - <path d="M511.27 331.57s-2.517.13-2.777.217c-.26.044-10.283-.174-10.283-.174" stroke="#032b4c"/> - <path d="M511.32 331.61s-2.473.217-2.864.304c-.39.042-10.153-.26-10.153-.26" stroke="#032e50"/> - <path d="M511.32 331.65s-2.386.303-2.907.39c-.52.088-10.023-.347-10.023-.347" stroke="#033054"/> - <path d="M511.32 331.7s-2.3.346-2.95.478c-.652.13-9.893-.435-9.893-.435" stroke="#043359"/> - <path d="M511.36 331.7s-2.257.478-3.038.607c-.78.174-9.762-.52-9.762-.52" stroke="#04355c"/> - <path d="M511.36 331.74s-2.17.52-3.08.694c-.91.217-9.675-.607-9.675-.607" stroke="#043760"/> - <path d="M511.4 331.78s-2.126.607-3.167.824c-1.085.174-9.545-.737-9.545-.737" stroke="#053a65"/> - <path d="M511.4 331.83s-2.04.694-3.254.91c-1.17.218-9.37-.78-9.37-.78" stroke="#053c68"/> - <path d="M511.45 331.87s-2.04.737-3.34.998c-1.302.26-9.242-.87-9.242-.87" stroke="#053f6e"/> - <path d="M511.45 331.91s-1.953.824-3.384 1.085c-1.432.304-9.112-.956-9.112-.956" stroke="#064172"/> - <path d="M498.99 332.09s7.463 1.345 9.025 1.04c1.562-.303 3.47-1.17 3.47-1.17" stroke="#00209f"/> - </g> - </g> - <path d="M474.96 289.91a34.007 34.007 0 0 1-.174-3.21c.044-5.164-.65-9.07-.087-14.49.434-4.253 1.475-9.85 1.258-14.45-.087-1.3.172-2.603.217-3.86l20.957 23.516M466.97 327.7c-.565-.346-1.52-1.345-1.823-2.213-.608-1.736-.477-1.692-.91-3.6-.26-1.085-.26-2.3-.522-3.428-.216-1.13-1.822-4.73-1.865-6.206-.173-4.728-1.736-7.94-1.345-13.103.26-3.99 1.17-9.414.737-13.58-.13-1.128.044-2.43.087-3.558l23.56 15.576m28.551 33.892c.174.52-.347 1.52-.52 1.866-.13.174-.347.477-.477.65-.26.565-.217.435-.694.87-.13.086-.695.563-.87.65-.345.26-.693.607-1.084.65-1.78.305-2.516.694-4.21 1.172-1.604.478-.736.39-1.95.695-.608.13-1.823.607-2.43.694-1.085.173-1.26.347-2.387.608-2.908.65-5.728.476-8.59.304-1.173-.088-4.037-.696-5.035-1.39-1.78-1.26-5.684-1.736-7.42-2.95-.258-.176-1.344-.696-1.56-.913-1.693-1.388-3.038-1.78-4.816-2.907" stroke-miterlimit="2.613" fill="none" stroke="#000" stroke-width=".174"/> - <g stroke-miterlimit="2.613" stroke="#000" stroke-width=".13"> - <path fill="#fc0" fill-rule="evenodd" d="M484.893 297.593l.565-.826-23.908-15.62-.433.65zM461.16 280.89c-.174-.91.087-2.127.737-2.257.044 0 .52-.173.824-.086.392 0 .478.13.652.433.346.824-.65 1.346-1.346 1.606-.173.044-.65.13-.737.346-.13.348-.044.218-.13.348.13-.044.173-.174.302-.26.52-.304 1.04-.39 1.78-.738.564-.26.65-1.388.26-1.735-.433-.347-1.78-.304-2.082.044-.65.738-.694 1.737-.564 2.734 0-.217.347-.173.304-.434z"/> - <path d="M460.77 281.32c-.91-.043-2.083.347-2.126.998 0 .087-.087.608 0 .867.044.39.173.478.52.565.868.26 1.26-.78 1.39-1.52.042-.173.042-.65.26-.78.346-.173.26-.087.346-.173-.044.13-.174.217-.217.304-.216.564-.26 1.13-.52 1.91-.174.563-1.302.78-1.65.433-.434-.347-.563-1.692-.26-2.04.65-.737 1.65-.91 2.647-.91-.173.043-.13.39-.39.347z" fill="#fc0" fill-rule="evenodd"/> - <path d="M460.6 280.93c-.26.13-.26.478-.13.695.087.216.476.26.65.172.346-.216.565-.606.346-.954-.215-.304-.562-.043-.866.087z" fill="#fc0" fill-rule="evenodd"/> - <path d="M455.56 277.76s2.517.998 4.555 1.04c0 0 .087 1.78.52 2.3 0 0-1.82-.346-2.646.087 0 0-1.085-2.473-2.43-3.427z" fill="#fc0" fill-rule="evenodd"/> - <path d="M457.6 279.02s.998.434 1.822.434c0 0 .043.694.217.91 0 0-.738-.13-1.042.045 0-.002-.435-1-.998-1.39z" fill="none"/> - <path d="M460.77 282.88s.477-.824.607-1.128c.086-.173-.043.998.39 1.128.563.737.693 2.256.693 2.647-.65.216-1.214.607-2.212.13-.346-.217-.087-.867.043-1.39.09-.26.176-.997.48-1.387z" fill="#fc0" fill-rule="evenodd"/> - <path d="M461.25 282.23c0 .13.087.65.043.563 0-.216.26.218.303.304.348.65.478 1.128.608 2.387m-.744-2.164c.217.998.39.954.39 2.344l.088-.087m-.518-1.347c.173.694.13 1.04.173 1.39-.044 0-.26.17-.303.17" fill="none"/> - <path fill="#fc0" fill-rule="evenodd" d="M497.13 277.417l.65-.607-21.347-23.734-.434.52z"/> - <path d="M476.61 253.08c.043-.954.565-2.083 1.215-2.04.043 0 .564-.043.824.087.39.087.433.26.52.608.173.867-.912 1.128-1.65 1.215-.173 0-.693-.044-.823.173-.217.304-.087.216-.217.304.13 0 .26-.13.347-.173.607-.173 1.128-.173 1.952-.303.564-.086.91-1.214.607-1.605-.304-.434-1.606-.737-1.996-.477-.823.564-1.084 1.52-1.17 2.56.044-.22.347-.132.39-.348z" fill="#fc0" fill-rule="evenodd"/> - <path d="M476.13 253.38c-.91-.26-2.126-.13-2.343.478 0 .043-.216.563-.173.824-.043.39.044.52.39.693.737.435 1.39-.476 1.693-1.17.087-.175.217-.608.433-.695.347-.086.26 0 .347-.086-.043.13-.172.173-.26.26-.347.52-.52.998-.953 1.735-.304.477-1.432.477-1.736.042-.303-.476-.087-1.778.26-2.04.78-.607 1.822-.563 2.776-.26-.174-.042-.217.306-.434.218z" fill="#fc0" fill-rule="evenodd"/> - <path d="M476.04 252.95c-.304.043-.347.433-.304.65.043.217.39.39.607.304.347-.13.694-.433.563-.824-.13-.347-.563-.173-.866-.13z" fill="#fc0" fill-rule="evenodd"/> - <path d="M471.92 248.69s2.17 1.562 4.122 2.083c0 0-.304 1.78 0 2.343 0 0-1.736-.737-2.603-.52 0 0-.435-2.648-1.52-3.906z" fill="#fc0" fill-rule="evenodd"/> - <path d="M473.57 250.43s.867.607 1.65.824c0 0-.13.694 0 .91 0 0-.695-.26-1.042-.173 0 .002-.174-1.083-.608-1.56z" fill="none"/> - <path d="M475.74 254.9s.65-.694.867-.954c.13-.174-.302.954.087 1.215.39.825.13 2.3.044 2.734-.694.044-1.302.26-2.126-.434-.304-.26.086-.824.346-1.302.13-.26.39-.954.782-1.258z" fill="#fc0" fill-rule="evenodd"/> - <path d="M476.35 254.42c0 .087-.043.433-.043.52.043.26.26.347.303.65.13.74-.044 1.216-.087 2.17m-.263-2.47c.216.91.043 1.65-.087 2.517-.043 0 .087 0 .087-.044m-.13-.953c-.13.346-.13.563-.173.954-.043-.043-.217.13-.26.087" fill="none"/> - </g> - </g> - <use height="100%" width="100%" xlink:href="#c" transform="matrix(-1 0 0 1 1030.05 0)"/> - </g> - <path d="M319.306 197.878l-40.23 67.305h80.49z" stroke-miterlimit="2.613" fill="#fc0" stroke="#000" stroke-width=".347"/> - <path d="M319.306 202.252L282.998 263h72.648z" stroke-miterlimit="2.613" fill="#fff" stroke="#fff" stroke-width=".104"/> - <path d="M293.758 244.946L282.998 263h72.648l-10.794-18.054z" stroke-miterlimit="2.613" fill="#007e93" stroke="#007e93" stroke-width=".208"/> - <g stroke-miterlimit="2.613" fill="none" stroke-width=".139"> - <path d="M312.99 212.872c1.7-1.528 3.783-2.152 6.213-2.187h.174c2.36.035 4.756.59 6.282 2.187" stroke="#086aad"/> - <path d="M312.95 212.944c1.666-1.562 3.818-2.152 6.248-2.187h.174c2.43 0 4.825.59 6.35 2.222" stroke="#0863aa"/> - <path d="M312.918 213.048c1.666-1.63 3.853-2.222 6.318-2.256h.173c2.43.034 4.86.624 6.386 2.29" stroke="#095fa8"/> - <path d="M312.846 213.12c1.667-1.63 3.922-2.256 6.387-2.256h.21c2.463 0 4.893.624 6.42 2.36" stroke="#0a58a5"/> - <path d="M312.814 213.184c1.632-1.666 3.957-2.256 6.457-2.29h.174c2.534.034 4.963.658 6.49 2.43" stroke="#0a52a2"/> - <path d="M312.75 213.256c1.63-1.7 3.992-2.29 6.525-2.29h.21c2.567.034 4.996.658 6.56 2.463" stroke="#0b4d9f"/> - <path d="M312.71 213.36c1.63-1.735 4.026-2.36 6.595-2.36h.173c2.638.034 5.033.693 6.63 2.533" stroke="#0c479d"/> - <path d="M312.262 214.088c1.91-2.013 4.27-2.603 7.08-2.603h.174c3.09.035 5.728 1.076 7.255 3.228" stroke="#270a7f"/> - <path d="M312.294 213.984c1.874-1.944 4.235-2.534 7.046-2.568h.173c3.02.034 5.624 1.04 7.186 3.16" stroke="#241183"/> - <path d="M312.366 213.912c1.84-1.944 4.165-2.534 6.942-2.534h.174c2.985.035 5.588.972 7.15 3.09" stroke="#221786"/> - <path d="M312.398 213.848c1.805-1.91 4.165-2.5 6.873-2.534h.174c2.95.035 5.52.938 7.116 3.02" stroke="#1f1f8a"/> - <path d="M312.47 213.744c1.735-1.84 4.096-2.464 6.803-2.464h.14c2.915 0 5.483.833 7.08 2.916" stroke="#1a258d"/> - <path d="M312.502 213.672c1.7-1.84 4.096-2.43 6.734-2.464h.173c2.846.035 5.414.798 6.976 2.846" stroke="#172d91"/> - <path d="M312.534 213.6c1.666-1.806 4.06-2.43 6.664-2.43h.174c2.81 0 5.345.73 6.942 2.742" stroke="#143393"/> - <path d="M312.606 213.496c1.63-1.77 4.026-2.36 6.595-2.395h.14c2.776 0 5.31.695 6.907 2.708" stroke="#113b97"/> - <path d="M315.31 208.92c1.18-.833 2.43-1.076 3.992-1.076 1.493 0 2.81.243 3.957 1.007" stroke="#ff0a00"/> - <path d="M315.278 208.984c1.18-.833 2.464-1.076 4.026-1.076 1.493 0 2.847.242 3.992 1.007" stroke="#f10"/> - <path d="M315.246 209.056c1.215-.833 2.5-1.11 4.06-1.11 1.494 0 2.882.276 4.063 1.04" stroke="#ff1500"/> - <path d="M315.214 209.16c1.215-.868 2.5-1.146 4.096-1.146 1.527 0 2.916.277 4.096 1.042" stroke="#ff1a00"/> - <path d="M315.174 209.232c1.215-.868 2.534-1.145 4.13-1.145 1.528 0 2.95.277 4.13 1.042" stroke="#ff2000"/> - <path d="M315.142 209.296c1.215-.868 2.568-1.18 4.165-1.18 1.527 0 2.986.312 4.166 1.11" stroke="#ff2700"/> - <path d="M315.102 209.368c1.215-.868 2.568-1.18 4.2-1.18 1.527 0 3.02.312 4.2 1.11" stroke="#ff2f00"/> - <path d="M315.07 209.44c1.215-.902 2.603-1.18 4.235-1.18 1.562 0 3.055.312 4.27 1.11" stroke="#f30"/> - <path d="M315.038 209.504c1.215-.902 2.638-1.215 4.27-1.215 1.56 0 3.09.346 4.304 1.145" stroke="#ff3c00"/> - <path d="M314.998 209.576c1.25-.902 2.672-1.215 4.304-1.215 1.562 0 3.124.348 4.34 1.147" stroke="#ff4100"/> - <path d="M314.966 209.648c1.25-.902 2.672-1.215 4.34-1.215 1.596 0 3.158.347 4.373 1.146" stroke="#ff4600"/> - <path d="M314.03 211.208c1.353-1.04 3.505-1.562 5.31-1.562 1.91 0 3.992.52 5.345 1.597" stroke="#fff500"/> - <path d="M314.102 211.104c1.318-1.04 3.436-1.528 5.24-1.528 1.875 0 3.923.486 5.276 1.598" stroke="#ffeb00"/> - <path d="M314.134 211.032c1.354-1.04 3.4-1.528 5.206-1.528 1.84 0 3.888.486 5.24 1.563" stroke="#ffe000"/> - <path d="M314.206 210.928c1.32-1.007 3.333-1.492 5.137-1.492 1.84 0 3.853.485 5.172 1.527" stroke="#ffd600"/> - <path d="M314.238 210.864c1.32-1.007 3.298-1.492 5.103-1.492 1.805 0 3.785.485 5.137 1.492" stroke="#ffcf00"/> - <path d="M314.31 210.76c1.32-1.007 3.263-1.458 5.033-1.458 1.805 0 3.75.45 5.067 1.493" stroke="#ffc400"/> - <path d="M314.342 210.688c1.32-1.007 3.228-1.458 4.998-1.458s3.68.45 4.998 1.458" stroke="#ffba00"/> - <path d="M314.414 210.584c1.285-.972 3.16-1.423 4.93-1.423 1.77 0 3.644.452 4.962 1.424" stroke="#ffb000"/> - <path d="M314.446 210.512c1.32-1.007 3.124-1.424 4.894-1.424 1.736 0 3.61.45 4.894 1.424" stroke="#ffa600"/> - <path d="M314.518 210.408c1.285-.972 3.055-1.39 4.825-1.39 1.7 0 3.54.418 4.824 1.39" stroke="#ff9c00"/> - <path d="M314.55 210.344c1.285-.972 3.055-1.39 4.79-1.39 1.7 0 3.506.418 4.79 1.355" stroke="#ff9100"/> - <path d="M314.622 210.232c1.285-.937 2.985-1.354 4.72-1.354 1.667 0 3.473.416 4.723 1.32" stroke="#ff8700"/> - <path d="M314.654 210.168c1.285-.972 2.95-1.354 4.686-1.354 1.666 0 3.402.416 4.686 1.32" stroke="#ff7d00"/> - <path d="M314.726 210.064c1.25-.937 2.88-1.318 4.616-1.318 1.63 0 3.368.416 4.617 1.283" stroke="#ff7500"/> - <path d="M314.758 209.992c1.284-.937 2.846-1.318 4.582-1.318 1.63 0 3.297.38 4.547 1.25" stroke="#ff6b00"/> - <path d="M314.83 209.888c1.25-.937 2.81-1.285 4.512-1.285 1.596 0 3.263.382 4.513 1.25" stroke="#ff6100"/> - <path d="M314.862 209.816c1.285-.937 2.777-1.285 4.478-1.285 1.562 0 3.228.383 4.443 1.216" stroke="#ff5700"/> - <path d="M313.854 211.384c1.423-1.11 3.61-1.63 5.484-1.63 1.944 0 4.06.554 5.45 1.665" stroke="#ebf605"/> - <path d="M313.822 211.488c1.492-1.18 3.61-1.666 5.52-1.666 1.942 0 4.13.555 5.517 1.7" stroke="#d6ec09"/> - <path d="M313.75 211.592c1.562-1.25 3.61-1.735 5.588-1.735 1.98 0 4.166.59 5.554 1.735" stroke="#c2e30e"/> - <path d="M313.686 211.696c1.666-1.32 3.644-1.77 5.658-1.77 1.978 0 4.2.59 5.588 1.77" stroke="#add912"/> - <path d="M313.646 211.8c1.7-1.353 3.645-1.805 5.658-1.805 2.048 0 4.27.59 5.692 1.77" stroke="#99cf16"/> - <path d="M313.582 211.904c1.805-1.424 3.645-1.875 5.727-1.875 2.082 0 4.338.623 5.726 1.84" stroke="#85c61a"/> - <path d="M313.542 212.008c1.84-1.492 3.645-1.91 5.762-1.91 2.083 0 4.374.625 5.796 1.84" stroke="#70bc1f"/> - <path d="M313.47 212.112c1.944-1.562 3.68-1.978 5.83-1.978 2.12 0 4.41.66 5.833 1.91" stroke="#5cb323"/> - <path d="M313.406 212.176c2.013-1.597 3.68-1.978 5.9-1.978 2.118 0 4.444.66 5.902 1.91" stroke="#47a928"/> - <path d="M313.094 212.736c1.77-1.562 3.818-2.117 6.248-2.117 2.29 0 4.687.59 6.214 2.08" stroke="#0d74a4"/> - <path d="M313.126 212.696c1.805-1.596 3.783-2.152 6.213-2.152 2.29 0 4.65.624 6.178 2.082" stroke="#127a97"/> - <path d="M313.166 212.632c1.84-1.596 3.783-2.117 6.18-2.117 2.255 0 4.65.624 6.143 2.048" stroke="#17808b"/> - <path d="M313.198 212.56c1.874-1.596 3.75-2.083 6.144-2.083 2.222 0 4.617.625 6.074 2.014" stroke="#1a847d"/> - <path d="M313.23 212.528c1.91-1.63 3.75-2.117 6.074-2.117 2.257 0 4.618.66 6.074 2.014" stroke="#1e8a6d"/> - <path d="M313.27 212.456c1.944-1.63 3.714-2.083 6.04-2.083 2.22 0 4.582.66 6.04 2.014" stroke="#238f5e"/> - <path d="M313.302 212.424c1.978-1.666 3.714-2.083 6.005-2.083 2.187 0 4.548.66 6.005 1.98" stroke="#2b944e"/> - <path d="M313.334 212.352c2.013-1.667 3.68-2.048 5.97-2.048 2.152 0 4.548.66 5.97 1.944" stroke="#2f9b3e"/> - <path d="M323.23 208.776c-1.146-.763-2.464-1.007-3.922-1.007-1.563 0-2.777.277-3.957 1.075" stroke="red"/> - <path d="M326.87 214.856c-1.596-2.256-4.304-3.333-7.497-3.333-2.88 0-5.206.625-7.186 2.638" stroke="#2a007c"/> - <path d="M325.59 212.736c-1.527-1.492-3.92-2.083-6.247-2.083-2.464 0-4.547.59-6.282 2.153" stroke="#0671b0"/> - <path d="M326.182 213.672c-1.632-1.978-4.13-2.603-6.873-2.603-2.57 0-5.034.59-6.665 2.36" stroke="#0c419a"/> - <path d="M324.758 211.344c-1.39-1.11-3.505-1.632-5.414-1.632-1.84 0-4.062.52-5.415 1.562" stroke="#ff0"/> - <path d="M323.71 209.648c-1.215-.798-2.81-1.18-4.41-1.18-1.664 0-3.123.346-4.373 1.284" stroke="#ff4d00"/> - <path d="M325.238 212.176c-1.424-1.25-3.783-1.944-5.936-1.944-2.256 0-3.887.382-5.935 2.048" stroke="#33a02c"/> - </g> - <g stroke-miterlimit="2.613" fill="none" stroke-width=".139"> - <path d="M311.95 214.504c2.256-1.11 4.617-1.805 7.358-1.805 2.603 0 5.38.97 7.567 2.15l7.705 12.88c0 8.433-6.872 15.41-15.272 15.41-8.434 0-15.237-6.803-15.307-15.34l7.95-13.296z" stroke="#fef2ec"/> - <path d="M319.31 212.872c2.568 0 5.31 1.007 7.462 2.152.035 0 7.602 12.67 7.602 12.704 0 8.295-6.77 15.203-15.064 15.203-8.33 0-15.03-6.698-15.1-15.133 0-.035 7.81-13.086 7.846-13.086 2.22-1.11 4.547-1.84 7.254-1.84z" stroke="#fef2ea"/> - <path d="M319.27 213.288c2.534 0 5.206.937 7.29 2.083.07.035 7.392 12.253 7.392 12.358 0 8.087-6.595 14.82-14.682 14.82-8.053 0-14.613-6.56-14.648-14.75 0-.105 7.532-12.705 7.6-12.74 2.188-1.075 4.444-1.77 7.048-1.77z" stroke="#fef0e6"/> - <path d="M319.27 213.704c2.465 0 5.067.902 7.08 2.013.14.07 7.22 11.87 7.22 12.045 0 7.845-6.42 14.37-14.3 14.37-7.844 0-14.196-6.352-14.266-14.336 0-.173 7.29-12.288 7.428-12.39 2.118-1.043 4.304-1.702 6.838-1.702z" stroke="#feede3"/> - <path d="M319.27 214.296c2.36 0 4.86.868 6.803 1.944.21.14 6.874 11.246 6.874 11.525 0 7.497-6.145 13.745-13.677 13.745-7.497 0-13.606-6.074-13.64-13.71 0-.278 6.837-11.732 7.08-11.836 2.014-1.008 4.165-1.667 6.56-1.667z" stroke="#fee8dc"/> - <path d="M319.27 214.712c2.29 0 4.72.833 6.595 1.874.278.173 6.665 10.83 6.665 11.177 0 7.29-5.97 13.363-13.26 13.363s-13.19-5.934-13.224-13.328c0-.348 6.56-11.316 6.872-11.49 1.943-.97 4.026-1.596 6.352-1.596z" stroke="#fee6d5"/> - <path d="M319.27 215.304c2.187 0 4.513.833 6.283 1.805.38.207 6.352 10.203 6.352 10.655 0 6.977-5.658 12.738-12.635 12.738-6.942 0-12.6-5.623-12.634-12.67 0-.486 6.178-10.76 6.56-11.003 1.874-.937 3.853-1.526 6.074-1.526z" stroke="#fee3cf"/> - <path d="M319.27 215.72c2.152 0 4.34.763 6.108 1.735.417.244 6.145 9.788 6.145 10.31 0 6.734-5.52 12.322-12.253 12.322-6.733 0-12.183-5.45-12.217-12.252 0-.556 5.9-10.38 6.317-10.622 1.84-.937 3.748-1.493 5.9-1.493z" stroke="#fee0cc"/> - <path d="M319.27 216.136c2.083 0 4.2.73 5.9 1.666.452.277 5.936 9.406 5.936 9.997 0 6.49-5.31 11.904-11.836 11.904-6.49 0-11.767-5.275-11.8-11.87 0-.626 5.622-9.998 6.108-10.275 1.734-.87 3.61-1.424 5.692-1.424z" stroke="#fedec6"/> - <path d="M319.27 218.776c1.63 0 3.263.556 4.582 1.285.833.486 4.582 6.734 4.582 7.776 0 5.032-4.096 9.198-9.164 9.198-5.033 0-9.13-4.096-9.164-9.198 0-1.042 3.853-7.463 4.72-7.95 1.354-.693 2.813-1.11 4.444-1.11z" stroke="#fdcdaa"/> - <path d="M319.27 218.952c1.596 0 3.194.555 4.478 1.285.868.52 4.477 6.525 4.477 7.6 0 4.93-4.025 8.99-8.955 8.99s-8.955-3.99-8.955-8.954c0-1.11 3.714-7.29 4.616-7.81 1.32-.694 2.744-1.11 4.34-1.11z" stroke="#fdcdaa"/> - <path d="M319.27 219.952c1.424 0 2.846.486 3.992 1.146 1.007.59 3.957 5.484 3.957 6.733 0 4.374-3.576 7.984-7.95 7.984-4.374 0-7.914-3.54-7.95-7.95 0-1.283 3.056-6.316 4.097-6.906 1.146-.624 2.43-1.006 3.853-1.006z" stroke="#fdc59e"/> - <path d="M319.27 220.16c1.39 0 2.777.45 3.888 1.11 1.042.625 3.852 5.276 3.852 6.562 0 4.27-3.47 7.775-7.74 7.775a7.725 7.725 0 0 1-7.74-7.74c0-1.32 2.915-6.11 3.99-6.734 1.112-.592 2.36-.973 3.75-.973z" stroke="#fdc59e"/> - <path d="M319.31 213.08c2.534 0 5.24.972 7.36 2.117.034.035 7.495 12.46 7.495 12.53 0 8.193-6.7 15.03-14.855 15.03-8.192 0-14.856-6.665-14.89-14.96 0-.07 7.67-12.877 7.705-12.912 2.22-1.11 4.512-1.805 7.185-1.805z" stroke="#fef0e9"/> - <path d="M319.27 213.496c2.5 0 5.136.937 7.185 2.048.105.07 7.324 12.08 7.324 12.218 0 7.948-6.527 14.58-14.51 14.58-7.95 0-14.406-6.457-14.475-14.544 0-.14 7.427-12.496 7.532-12.565 2.153-1.077 4.374-1.736 6.943-1.736z" stroke="#feede3"/> - <path d="M319.27 213.912c2.43 0 4.998.902 6.977 1.978.174.105 7.116 11.663 7.116 11.872 0 7.74-6.353 14.162-14.093 14.162s-13.99-6.283-14.058-14.127c0-.21 7.115-12.115 7.29-12.22 2.116-1.04 4.268-1.664 6.768-1.664z" stroke="#feebdf"/> - <path d="M319.27 214.088c2.395 0 4.93.902 6.907 1.978.174.105 6.977 11.455 6.977 11.698 0 7.636-6.248 13.954-13.884 13.954-7.6 0-13.78-6.18-13.85-13.92 0-.243 6.978-11.905 7.186-12.044 2.048-1.007 4.2-1.666 6.664-1.666z" stroke="#feebdd"/> - <path d="M319.27 214.504c2.326 0 4.79.868 6.7 1.91.242.138 6.768 11.037 6.768 11.35 0 7.392-6.04 13.536-13.468 13.536-7.393 0-13.397-5.97-13.433-13.502 0-.313 6.7-11.525 6.977-11.663 1.98-1.007 4.095-1.63 6.456-1.63z" stroke="#fee8d9"/> - <path d="M319.27 214.92c2.256 0 4.652.833 6.49 1.84.313.173 6.56 10.62 6.56 11.003 0 7.185-5.865 13.155-13.05 13.155-7.15 0-12.98-5.83-13.05-13.086 0-.417 6.456-11.177 6.768-11.35 1.943-.973 3.99-1.562 6.282-1.562z" stroke="#fee6d3"/> - <path d="M319.27 215.128c2.222 0 4.582.798 6.386 1.805.348.208 6.457 10.413 6.457 10.83 0 7.08-5.762 12.946-12.843 12.946-7.047 0-12.774-5.728-12.843-12.878 0-.452 6.317-10.97 6.664-11.177 1.91-.937 3.923-1.527 6.18-1.527z" stroke="#fee3d2"/> - <path d="M319.27 215.512c2.187 0 4.41.798 6.18 1.77.415.243 6.28 9.997 6.28 10.483 0 6.873-5.622 12.53-12.46 12.53-6.838 0-12.39-5.553-12.426-12.46 0-.52 6.04-10.587 6.456-10.795 1.84-.937 3.783-1.528 5.97-1.528z" stroke="#fee0cc"/> - <path d="M319.27 215.928c2.117 0 4.27.763 6.005 1.7.416.278 6.04 9.615 6.04 10.17 0 6.596-5.415 12.08-12.045 12.08-6.595 0-11.975-5.345-12.01-12.045 0-.59 5.76-10.205 6.212-10.448 1.77-.9 3.68-1.457 5.798-1.457z" stroke="#fedec8"/> - <path d="M319.27 216.344c2.048 0 4.13.73 5.797 1.63.486.314 5.83 9.2 5.83 9.824 0 6.387-5.24 11.698-11.627 11.698-6.387 0-11.56-5.207-11.593-11.662 0-.66 5.484-9.788 6.005-10.1 1.7-.868 3.54-1.39 5.588-1.39z" stroke="#fddbc5"/> - <path d="M319.27 216.52c2.013 0 4.06.73 5.692 1.63.52.314 5.727 8.992 5.727 9.652 0 6.282-5.137 11.488-11.42 11.488s-11.385-5.102-11.42-11.454c0-.694 5.38-9.615 5.937-9.927 1.665-.835 3.47-1.39 5.483-1.39z" stroke="#fddbc2"/> - <path d="M319.27 216.728c1.978 0 3.992.694 5.588 1.597.556.347 5.624 8.782 5.624 9.477 0 6.178-5.033 11.28-11.212 11.28-6.18 0-11.176-4.998-11.21-11.245 0-.73 5.24-9.407 5.795-9.753 1.666-.834 3.436-1.355 5.415-1.355z" stroke="#fdd9bf"/> - <path d="M319.27 216.936c1.944 0 3.922.694 5.484 1.562.59.347 5.52 8.574 5.52 9.303 0 6.075-4.93 11.073-11.004 11.073-6.04 0-10.97-4.894-11.003-11.038 0-.763 5.103-9.198 5.692-9.545 1.63-.834 3.367-1.354 5.31-1.354z" stroke="#fdd9bf"/> - <path d="M319.27 217.144c1.91 0 3.854.66 5.38 1.527.625.383 5.415 8.366 5.415 9.13 0 5.935-4.86 10.864-10.795 10.864-5.936 0-10.76-4.824-10.795-10.83 0-.797 4.963-9.024 5.588-9.37 1.596-.834 3.297-1.32 5.207-1.32z" stroke="#fdd6bc"/> - <path d="M319.27 217.352c1.874 0 3.784.66 5.275 1.493.66.38 5.31 8.158 5.31 8.955 0 5.83-4.754 10.656-10.585 10.656-5.83 0-10.552-4.72-10.586-10.62 0-.834 4.79-8.818 5.484-9.2 1.56-.798 3.228-1.284 5.102-1.284z" stroke="#fdd6b9"/> - <path d="M319.27 217.56c1.84 0 3.715.624 5.206 1.458.66.416 5.207 7.95 5.207 8.782 0 5.727-4.686 10.482-10.413 10.482s-10.343-4.65-10.378-10.447c0-.868 4.65-8.643 5.345-9.025 1.56-.798 3.193-1.25 5.033-1.25z" stroke="#fdd4b8"/> - <path d="M319.27 217.736c1.805 0 3.645.66 5.102 1.457.695.417 5.102 7.74 5.102 8.61 0 5.622-4.58 10.273-10.204 10.273-5.623 0-10.17-4.548-10.17-10.24 0-.902 4.513-8.435 5.24-8.85 1.528-.764 3.126-1.25 4.93-1.25z" stroke="#fdd4b6"/> - <path d="M319.27 217.944c1.77 0 3.576.624 4.998 1.423.73.417 4.998 7.532 4.998 8.435 0 5.518-4.512 10.065-9.996 10.065-5.484 0-9.962-4.477-9.997-10.03 0-.902 4.41-8.226 5.172-8.678 1.458-.73 3.055-1.216 4.825-1.216z" stroke="#fdd2b2"/> - <path d="M319.27 218.152c1.735 0 3.506.59 4.894 1.39.764.45 4.894 7.322 4.894 8.295 0 5.38-4.408 9.823-9.788 9.823s-9.753-4.374-9.788-9.823c0-.937 4.27-8.053 5.068-8.47 1.423-.763 2.985-1.215 4.72-1.215z" stroke="#fdd1b0"/> - <path d="M319.27 218.36c1.7 0 3.402.59 4.79 1.354.8.45 4.79 7.116 4.79 8.122 0 5.276-4.304 9.615-9.58 9.615s-9.545-4.27-9.58-9.614c0-.97 4.13-7.844 4.964-8.296 1.388-.73 2.915-1.18 4.616-1.18z" stroke="#fdd0b0"/> - <path d="M319.27 218.568c1.666 0 3.333.555 4.687 1.318.833.487 4.685 6.943 4.685 7.95 0 5.136-4.2 9.406-9.372 9.406s-9.337-4.166-9.37-9.407c0-1.006 3.99-7.636 4.824-8.122 1.388-.73 2.88-1.145 4.547-1.145z" stroke="#fdd0ad"/> - <path d="M319.27 219.16c1.562 0 3.124.52 4.41 1.25.866.52 4.338 6.317 4.338 7.427 0 4.825-3.922 8.817-8.748 8.817-4.825 0-8.747-3.922-8.747-8.78 0-1.147 3.575-7.117 4.512-7.638 1.284-.66 2.672-1.076 4.235-1.076z" stroke="#fdcaa6"/> - <path d="M319.27 219.368c1.528 0 3.055.52 4.304 1.215.903.556 4.235 6.11 4.235 7.255 0 4.72-3.82 8.608-8.54 8.608-4.72 0-8.538-3.818-8.573-8.574 0-1.18 3.47-6.907 4.408-7.462 1.284-.66 2.637-1.042 4.165-1.042z" stroke="#fdcaa4"/> - <path d="M319.27 219.576c1.493 0 2.985.486 4.2 1.18.937.555 4.166 5.9 4.166 7.08 0 4.618-3.75 8.4-8.366 8.4s-8.33-3.748-8.365-8.365c0-1.214 3.332-6.698 4.305-7.254 1.25-.658 2.567-1.04 4.06-1.04z" stroke="#fdc8a4"/> - <path d="M319.27 219.784c1.458 0 2.916.486 4.096 1.145.972.59 4.06 5.69 4.06 6.907 0 4.512-3.678 8.19-8.156 8.19-4.478 0-8.123-3.643-8.158-8.156 0-1.25 3.194-6.525 4.2-7.08 1.215-.624 2.5-1.006 3.957-1.006z" stroke="#fdc8a1"/> - <path d="M319.27 220.368c1.354 0 2.707.45 3.784 1.076 1.076.625 3.748 5.067 3.748 6.387 0 4.167-3.367 7.568-7.532 7.568a7.525 7.525 0 0 1-7.532-7.532c0-1.354 2.777-5.936 3.853-6.56 1.11-.59 2.326-.938 3.68-.938z" stroke="#fdc39b"/> - <path d="M319.27 220.576c1.32 0 2.638.417 3.68 1.04 1.11.66 3.644 4.86 3.644 6.25 0 4.026-3.298 7.36-7.324 7.36-4.06 0-7.324-3.3-7.324-7.36 0-1.388 2.638-5.728 3.75-6.387 1.074-.557 2.255-.904 3.574-.904z" stroke="#fdc398"/> - <path d="M319.27 220.784c1.285 0 2.568.416 3.61 1.007 1.11.66 3.506 4.652 3.506 6.074 0 3.923-3.194 7.15-7.116 7.15-3.922 0-7.116-3.192-7.116-7.15 0-1.422 2.464-5.553 3.645-6.213a7.256 7.256 0 0 1 3.47-.866z" stroke="#fdc097"/> - <path d="M319.27 221c1.25 0 2.5.38 3.506.972 1.146.694 3.4 4.478 3.4 5.9 0 3.82-3.087 6.943-6.906 6.943-3.818 0-6.907-3.09-6.942-6.942 0-1.458 2.36-5.345 3.575-6.005a6.848 6.848 0 0 1 3.367-.868z" stroke="#fdc095"/> - <path d="M319.27 221.168c1.215 0 2.395.416 3.402.972 1.18.694 3.297 4.27 3.297 5.727 0 3.714-2.985 6.735-6.7 6.735-3.714 0-6.7-3.02-6.734-6.735 0-1.492 2.222-5.136 3.436-5.83 1.007-.522 2.083-.87 3.298-.87z" stroke="#fdbe92"/> - <path d="M319.27 221.376c1.18 0 2.326.38 3.298.937 1.18.73 3.192 4.06 3.192 5.553 0 3.575-2.914 6.527-6.49 6.527a6.518 6.518 0 0 1-6.525-6.527c0-1.526 2.082-4.963 3.33-5.657.973-.522 2.015-.834 3.195-.834z" stroke="#fdbe90"/> - <path d="M319.27 221.584c1.146 0 2.256.347 3.194.902 1.215.73 3.123 3.853 3.123 5.38 0 3.472-2.845 6.318-6.317 6.318a6.32 6.32 0 0 1-6.318-6.318c0-1.562 1.944-4.755 3.23-5.484.936-.485 1.942-.798 3.088-.798z" stroke="#fdbb8f"/> - <path d="M319.27 221.792c1.11 0 2.187.347 3.09.868 1.25.763 3.018 3.644 3.018 5.206 0 3.367-2.74 6.11-6.108 6.11a6.096 6.096 0 0 1-6.11-6.11c0-1.597 1.806-4.547 3.125-5.31a6.06 6.06 0 0 1 2.985-.764z" stroke="#fdbb8d"/> - <path d="M319.27 222a5.84 5.84 0 0 1 2.985.833c1.285.763 2.916 3.436 2.916 5.032 0 3.263-2.637 5.936-5.9 5.936-3.263 0-5.9-2.672-5.9-5.935 0-1.63 1.665-4.373 3.02-5.136a6.005 6.005 0 0 1 2.88-.73z" stroke="#fdb98a"/> - <path d="M319.27 222.208a5.78 5.78 0 0 1 2.88.798c1.32.798 2.812 3.23 2.812 4.86 0 3.16-2.568 5.727-5.692 5.727-3.16 0-5.692-2.568-5.692-5.727 0-1.666 1.527-4.166 2.88-4.93.834-.486 1.77-.728 2.812-.728z" stroke="#fdb98a"/> - <path d="M319.27 222.384c1.007 0 1.978.313 2.81.798 1.32.798 2.674 3.02 2.674 4.686 0 3.055-2.464 5.52-5.484 5.52-3.055 0-5.484-2.465-5.52-5.52 0-1.7 1.425-3.992 2.813-4.755.798-.45 1.7-.73 2.707-.73z" stroke="#fcb687"/> - <path d="M319.27 222.592c.972 0 1.91.278 2.707.763 1.354.833 2.568 2.812 2.568 4.512 0 2.95-2.36 5.31-5.275 5.31a5.31 5.31 0 0 1-5.31-5.31c0-1.735 1.284-3.783 2.707-4.58a5.033 5.033 0 0 1 2.603-.695z" stroke="#fcb685"/> - <path d="M319.27 222.8c.937 0 1.84.277 2.603.73 1.39.832 2.464 2.602 2.464 4.337 0 2.81-2.256 5.103-5.067 5.103-2.81 0-5.102-2.292-5.102-5.068 0-1.805 1.145-3.61 2.603-4.443a4.97 4.97 0 0 1 2.5-.66z" stroke="#fcb485"/> - <path d="M319.27 232.76a4.874 4.874 0 0 0 4.86-4.86c0-2.707-2.188-4.894-4.86-4.894a4.89 4.89 0 0 0-4.894 4.895c0 2.673 2.187 4.86 4.894 4.86z" stroke="#fcb482"/> - </g> - <path d="M319.31 232.8c2.672 0 4.86-2.187 4.86-4.894a4.875 4.875 0 0 0-4.86-4.86c-2.707 0-4.894 2.187-4.894 4.86a4.89 4.89 0 0 0 4.894 4.894z" stroke-miterlimit="2.613" fill="#fff" fill-rule="evenodd" stroke="#fff" stroke-width=".104"/> - <g stroke="#000" stroke-width=".13"> - <path d="M320.35 223.112l.552-2.6m-1.072 2.536l.272-2.64m-.792 2.6v-2.64m-.488 2.68l-.28-2.64m-.24 2.704l-.56-2.6m.072 2.744l-.832-2.536m.344 2.704L316.254 221m.624 2.632l-1.352-2.288m.896 2.568l-1.56-2.12m1.184 2.464l-1.808-1.976m1.424 2.328l-1.976-1.776m1.664 2.192l-2.152-1.56m1.84 1.976l-2.288-1.32m2.08 1.768l-2.432-1.072m2.224 1.56l-2.504-.832m2.36 1.32l-2.568-.56m2.504 1.08l-2.64-.28m2.6.8h-2.632m2.672.488l-2.64.272m2.704.248l-2.6.552m2.744-.072l-2.536.84m2.712-.352l-2.432 1.08m2.672-.624l-2.816 1.736m3.088-1.288l-5.76 4.096m6.08-3.712l-6.144 5.448m6.488-5.072l-5.072 5.664m5.488-5.344l-3.856 5.168m4.272-4.856l-4.024 6.976m4.48-6.768l-2.224 5.064m2.704-4.856l-2.256 6.976m2.744-6.84l-.968 4.688m1.488-4.616l-.696 7.216m1.704-7.216l.28 2.632m.24-2.704l1.56 6.8m-1.072-6.936l1.32 4.024m-.84-4.2l3.096 6.696m-2.608-6.936l3.296 5.688m-2.88-5.968l4.76 6.248m-4.344-6.56l4.168 4.824m-3.816-5.168l6.176 5.616m-5.864-6.04l3.368 2.432m-3.056-2.848l2.288 1.32m-2.08-1.768l2.432 1.072m-2.224-1.56l2.496.832m-2.36-1.32l2.568.56m-2.496-1.08l2.64.28m-2.608-.8h2.64m-2.672-.488l2.64-.272m-2.712-.248l2.608-.552m-2.744.072l2.536-.832m-2.712.344l2.432-1.08m-2.64.592l2.296-1.32m-2.576.904l2.12-1.56m-2.464 1.144l1.976-1.768m-2.32 1.424l1.768-1.984m-2.184 1.632l1.56-2.112m-1.976 1.84l1.312-2.296m-1.768 2.088l1.08-2.432m-1.568 2.224l.84-2.504m-2.36-3.96v-2.048m-2.296 2.296l-.416-2.016m-1.8 2.712l-.84-1.84m-1.176 3.016l-1.216-1.664m-.52 3.192l-1.528-1.352m.176 3.264l-1.808-1.04m.832 3.152l-1.944-.656m1.456 2.912l-2.048-.208m2.048 2.536l-2.048.208m2.536 2.088l-1.976.624m22.176 1.528l1.776 1.04m-.84-3.16l1.944.624m-1.456-2.88l2.048.208m-2.048-2.536l2.048-.208m-2.536-2.08l1.984-.624m-2.92-1.496l1.776-1.04m-3.128-.832l1.528-1.392m-3.224-.168l1.176-1.672m-3.192.488l.832-1.872m-3.056 1.144l.416-1.976" stroke-width=".104" fill="none"/> - <path d="M322.15 230.192s-.694-.382-1.11-.382c-.417 0-2.257-.104-2.986.104-.416.14-.763.486-.763.486s.486.486 1.458.59c1.007.07 1.63 0 2.152-.174.59-.173 1.25-.624 1.25-.624z" stroke-miterlimit="2.613" fill="#e60000" fill-rule="evenodd" stroke-width=".104"/> - <path d="M317.43 229.464s.07-1.354 1.007-3.055c0 0-.312.485-.486.902 0 0-.52.278-.833-.104-.31-.312-.138-.45.105-.938.207-.382.172-.763.45-1.006.243-.243.45-.278 1.11-.278.66 0 1.077.07 1.632.833.486.658.764 1.283 1.007 1.63.556.868.556 1.91.556 1.91l.174.832s-.694-.382-1.11-.382c-.417 0-2.258-.104-2.986.104-.416.14-.764.486-.764.486s-.277-.623.14-.936z" stroke-miterlimit="2.613" fill="#e60000" fill-rule="evenodd" stroke-width=".104"/> - <path d="M317.43 229.464s.52-.313 2.29-.278c2.05.035 2.118.174 2.257.313" stroke-miterlimit="2.613" fill="none" stroke-width=".104"/> - <path d="M319.198 237.104v-7.185s.243-.21.798 0v7.114s.174 5.45-.417 5.415c-.695 0-.382-1.25-.382-5.346z" stroke-miterlimit="2.613" fill="#fc0" fill-rule="evenodd" stroke-width=".104"/> - </g> - <g fill="#e60000"> - <path d="M311.774 231.064l.14.278-1.39.59.21.485-.21.07c-.138-.313-.242-.416-.59-.347l-.103-.208 1.944-.868zm-1.496-.592a.612.612 0 0 1-.243-.38c-.07-.35.07-.73.52-.834.21-.07.73-.07.903.59.07.277.035.624-.417.798l-.067-.278c.242-.07.312-.277.242-.52-.07-.278-.312-.382-.59-.312-.278.07-.38.31-.346.555a.51.51 0 0 0 .31.347l.036.21-1.18.103-.242-1.076.277-.035.21.867.588-.035zm-.552-3.888c-.347 0-.486.243-.486.486-.034.208 0 .52.312.555.21 0 .278-.14.313-.243l.208-.624c.07-.277.277-.45.59-.416.52.034.624.52.59.902-.036.382-.175.556-.243.625-.21.172-.382.207-.59.172l.034-.277c.382.035.52-.278.556-.556.034-.208 0-.556-.313-.59-.243-.035-.313.07-.416.416l-.138.45c-.07.14-.174.452-.555.417-.347-.034-.66-.277-.624-.798.07-.763.52-.798.763-.798v.28zm-.104-1.354l.624.21.38-1.147.244.104-.382 1.11.695.244.417-1.248.242.07-.485 1.527-2.083-.66.486-1.528.278.104z" fill-rule="evenodd"/> - <path d="M311.048 222.024a.714.714 0 0 0-.425.325l-.475.824 1.825 1.15.175-.225-.8-.5.35-.576c.242-.417.077-.752-.2-.925a.57.57 0 0 0-.45-.076zm.125.325a.42.42 0 0 1 .15.074c.208.14.214.317.075.525l-.275.45-.6-.35.325-.5c.078-.13.184-.222.325-.2z"/> - <path d="M313.578 222.142l-.173.207-1.39-1.32-.52.522-.173-.174 1.215-1.284.21.173-.522.555zm.729-.625l-1.284-1.736.208-.173 1.32 1.737zm-.035-2.291l.312.59 1.076-.555.105.243-1.04.556.31.623 1.18-.59.105.21-1.423.763-1.007-1.944 1.423-.73.104.244zm4.03.59l-.278-1.25c0-.068-.035-.312-.104-.52l-.208 1.91-.278.07-1.006-1.667c.034.207.104.484.14.52l.276 1.283-.277.035-.487-2.117.417-.07 1.007 1.668.208-1.944.416-.104.45 2.152-.276.034z" fill-rule="evenodd"/> - <path d="M319.024 217.6l-.1 2.175.925.025c.484.035.774-.228.774-.575.035-.38-.236-.48-.375-.55.242-.103.3-.31.3-.45.034-.312-.16-.565-.576-.6l-.96-.024zm.325.3l.474.05c.313 0 .425.092.425.3-.036.243-.173.31-.45.275h-.5l.05-.625zm-.05.9l.524.05c.208 0 .45.073.45.35 0 .208-.172.35-.45.35l-.55-.05.025-.7zm2.151-1l-.575 2.125.275.075.225-.9.7.2c.347.103.31.3.275.475-.035.07-.135.386-.1.525l.35.1v-.025c-.07-.07-.06-.11-.025-.25l.05-.375c.104-.278.004-.38-.1-.45.14-.07.356-.113.425-.425.14-.45-.178-.646-.525-.75l-.975-.325zm.275.375l.625.225c.14.035.354.088.25.4-.07.278-.267.26-.475.225l-.6-.175.2-.675z"/> - <path d="M324.026 219.052l-.347.555 1.04.626-.14.207-1.04-.59-.348.625 1.11.66-.102.21-1.39-.8 1.077-1.875 1.39.798-.14.244z" fill-rule="evenodd"/> - <path d="M326.648 220.648l-1.65 1.375.55.7c.486.52 1.07.287 1.45-.025.486-.382.607-.95.225-1.4l-.575-.65zm-.025.475l.325.4c.243.278.207.578-.175.925-.38.313-.732.303-.975.025l-.325-.375 1.15-.975z"/> - <path d="M328.156 223.08l-.625.31.556 1.042-.243.14-.52-1.076-.658.312.59 1.18-.244.104-.727-1.423 1.942-.973.73 1.423-.243.104zm-.766 3.888l-.035-.278 1.493-.208-.07-.485.21-.035c.103.347.138.45.485.486l.034.207-2.117.313z" fill-rule="evenodd"/> - <path d="M328.072 227.624c-.103 0-.292-.008-.5.2a.86.86 0 0 0-.175.525c-.035.485.312.724.625.724.173.035.41-.023.55-.3.035.104.147.276.425.275.277.034.575-.14.575-.626.035-.486-.308-.675-.55-.675-.208 0-.355.09-.425.3-.07-.243-.247-.39-.525-.426zm0 .35c.174 0 .36.148.325.425 0 .207-.098.374-.375.374-.313 0-.35-.25-.35-.425 0-.313.227-.376.4-.376zm.95.1c.14 0 .31.072.275.35 0 .277-.17.35-.275.35a.408.408 0 0 1-.325-.4c0-.173.15-.3.325-.3z"/> - <path d="M328.71 229.536c.694.173.624.694.59.902-.104.347-.416.59-.798.487-.348-.07-.45-.348-.555-.73l-.07-.242c-.07-.312-.208-.416-.313-.45l-.278 1.145-.243-.07.348-1.423c.45.14.626.382.73.694l.07.31c.068.244.138.452.416.487.14.07.382 0 .45-.312.106-.382-.242-.486-.38-.52l.034-.28zm-2.112 2.08l.138-.277 1.354.658.21-.45.207.068c-.14.347-.174.486.104.694l-.068.208-1.944-.902z" fill-rule="evenodd"/> - </g> - <path d="M319.306 202.252L282.998 263h72.648z" stroke-miterlimit="2.613" fill="none" stroke="#000" stroke-width=".243"/> - <g stroke-miterlimit="2.613" fill="none"> - <path d="M321.246 255.496c.937.243 2.083.382 3.228.07 1.562-.383 3.02-1.285 4.86-1.11 1.318.137 3.123 1.283 5.31 1.283 2.152 0 2.88-.765 4.755-1.147 1.318-.277 1.98-.138 3.4.173 1.632.313 2.465 1.25 5.207 1.043" stroke="#000" stroke-width=".104"/> - <path d="M293.238 258.104c1.214-.938 3.366-1.32 4.998-.938 2.153.452 3.09 1.007 5.38.972 1.702-.034 3.16-1.18 4.894-1.18 2.88 0 2.985.59 5.52 1.076a5.64 5.64 0 0 0 2.15 0 9.463 9.463 0 0 0 2.535-.868c.798-.416 2.81-.347 3.818-.242 1.805.172 2.533.867 2.915.97.972.244 2.083.384 3.228.07 1.562-.45 3.02-1.457 4.894-1.25 1.32.14 3.123 1.424 5.276 1.424 2.153 0 2.915-.868 4.756-1.284 1.354-.313 2.013-.14 3.436.174 1.597.38 2.464 1.422 5.206 1.18" stroke="#fff" stroke-width=".382"/> - <path d="M289.142 256.056c1.215-.798 3.367-1.146 4.998-.833 2.153.417 3.09.937 5.38.902 1.7-.034 3.16-1.076 4.894-1.076 2.88 0 2.985.555 5.52.97.66.105 1.492.105 2.15 0 .938-.137 1.77-.45 2.535-.797.762-.347 2.81-.278 3.817-.208 1.805.173 2.533.764 2.915.868.972.208 2.083.347 3.228.07 1.562-.417 3.02-1.286 4.894-1.112 1.32.14 3.124 1.285 5.276 1.25 2.153 0 2.916-.763 4.756-1.145 1.354-.278 2.013-.104 3.436.174 1.597.346 2.464 1.283 5.206 1.04" stroke="#fff" stroke-width=".278"/> - <path d="M285.39 261.992c1.215-1.007 3.367-1.423 5.033-1.04 2.118.52 3.055 1.144 5.346 1.11 1.7-.035 3.192-1.32 4.893-1.32 2.916 0 2.984.66 5.52 1.216a5.822 5.822 0 0 0 2.186 0 8.38 8.38 0 0 0 2.497-1.007c.8-.415 2.812-.346 3.853-.242 1.77.208 2.5.937 2.88 1.076.973.243 2.084.416 3.263.07 1.563-.52 3.02-1.597 4.86-1.39 1.32.174 3.124 1.597 5.31 1.597 2.118 0 2.882-.97 4.72-1.456 1.355-.347 2.015-.14 3.437.208 1.632.416 2.464 1.597 5.207 1.32" stroke="#fff" stroke-width=".486"/> - <path d="M286.366 258.584c1.25-.833 3.402-1.146 5.033-.833 2.15.417 3.088.903 5.38.87.763 0 1.458-.21 2.187-.453" stroke="#fff" stroke-width=".278"/> - <path d="M297.366 255.048c.347-.104 1.353-.59 2.81-.59 2.917 0 1.078.035 3.61.486.66.104 2.5.14 3.02-.382m25.416 8.23c.937-.174 1.736-.452 2.534-.8.763-.346 2.776-.31 3.818-.207 1.805.174 2.498.764 2.915.833.97.244 2.082.382 3.227.07 1.562-.382 3.02-1.285 4.894-1.11 1.32.138 3.125 1.284 5.277 1.284" stroke="#000" stroke-width=".243"/> - <path d="M336.694 254.768c2.153 0 2.88-.763 4.756-1.146 1.32-.277 1.978-.104 3.4.174 1.632.313 2.465 1.285 5.207 1.04" stroke="#fff" stroke-width=".278"/> - <path d="M285.494 262.2c1.25-.798 3.4-1.146 5.033-.833 2.152.417 3.09.937 5.38.902 1.7-.035 3.16-1.077 4.894-1.077 2.882 0 2.986.556 5.52.972a7.46 7.46 0 0 0 2.152 0c.937-.14 1.735-.45 2.533-.798.764-.347 2.777-.278 3.818-.174 1.805.14 2.5.73 2.915.833" stroke="#000" stroke-width=".104"/> - <path d="M290.078 259.56c1.25-.833 3.4-1.146 5.032-.833 2.153.417 3.09.902 5.346.868 1.735-.035 3.193-1.076 4.894-1.042 2.916 0 3.02.52 5.554.972a7.39 7.39 0 0 0 2.152 0c.937-.173 1.735-.45 2.533-.798.763-.347 2.776-.313 3.818-.208 1.77.172 2.498.763 2.915.832.937.243 2.083.382 3.23.07 1.56-.382 3.018-1.285 4.893-1.11 1.422.137 3.227 1.283 5.275 1.283 2.154 0 2.917-.764 4.756-1.146 1.32-.28 1.98-.14 3.437.173 1.596.312 2.464 1.25 5.17 1.006" stroke="#000" stroke-width=".486"/> - </g> - <g fill="#fc0" fill-rule="evenodd" stroke="#000" stroke-width=".208"> - <path d="M291.054 249.456c.347.07 1.18-.59 1.424-.764.346-.21.52-.73.798-1.007.277-.313 1.11-.694 1.492-.937 1.666-1.04 2.43-1.632 3.575-3.16 1.562-2.15 3.402-3.92 5.692-5.205.73-.417 1.84-.278 2.638.07.242.103.555.38.833.59.972.762 2.29 1.318 3.887 1.804 1.527.45 1.875 1.458 3.09 2.534.59.52 1.25.973 1.978 1.32.07.034.243.312.313.347.694.52 1.458.938 2.048 1.458a66.96 66.96 0 0 1 3.194 3.09c.173.172.243.52.417.658.8.764 1.563 1.563 2.534 2.014.972.486 1.84 1.11 2.742 1.666-9.234.348-17.737-.243-27.004.035-.243.035-.313 0-1.7 0-.695-.035-1.112.035-1.806.035-2.812-.035-5.484-.035-8.782-.07l2.64-4.477z"/> - <path d="M327.326 253.696c-.763-.486-1.528-1.007-2.36-1.424-.973-.45-1.737-1.25-2.534-2.013-.174-.14-.243-.487-.417-.66a67.01 67.01 0 0 0-3.193-3.09c-.59-.52-1.354-.937-2.048-1.458-.07-.034-.242-.312-.312-.347a8.542 8.542 0 0 1-1.978-1.318c-.798-.73-1.215-1.39-1.874-1.91l.034-.035a7.504 7.504 0 0 1 1.25-.764c.59-.346 1.527-.242 2.187.07.21.07.487.278.695.45.798.66 1.91 1.112 3.228 1.528 1.285.383 1.598 1.215 2.603 2.083.487.45 1.007.833 1.632 1.11.035.036.173.243.243.313.59.417 1.216.764 1.737 1.215.902.833 1.77 1.666 2.638 2.568.14.14.173.417.347.556.66.624 1.318 1.284 2.117 1.666.798.382 1.492.903 2.256 1.354-2.083.104-4.13.104-6.18.104h-.07z"/> - <path d="M319.094 242.448c.277.07.59.174.902.278 1.285.382 1.598 1.215 2.603 2.083.486.45 1.006.832 1.63 1.11.036.035.174.243.244.312.59.417 1.215.764 1.736 1.215.902.834 1.77 1.667 2.638 2.568.14.14.173.417.347.556.66.626 1.32 1.286 2.117 1.667.694.313 1.285.764 1.91 1.147 1.7 0 3.4-.035 5.172-.105-.695-.418-1.32-.904-2.083-1.25-.73-.348-1.284-.94-1.91-1.528-.138-.104-.173-.348-.31-.487-.8-.833-1.598-1.56-2.43-2.326-.452-.417-1.008-.73-1.528-1.11-.07-.036-.208-.245-.243-.28a6.237 6.237 0 0 1-1.494-1.006c-.902-.798-1.18-1.562-2.36-1.91-1.18-.346-2.188-.798-2.915-1.353-.208-.173-.45-.38-.625-.45-.625-.28-1.458-.383-2.013-.07-.486.28-.972.59-1.388.938z"/> - <path d="M327.566 244.424c.243.277.486.555.833.868.45.417.936.73 1.492 1.006.035.035.174.243.243.278.52.382 1.076.694 1.527 1.11.834.765 1.632 1.494 2.43 2.327.138.14.173.382.312.486.625.59 1.18 1.18 1.91 1.527.485.242.902.52 1.354.798h-.035c2.013 0 4.026 0 6.075-.07-.556-.347-1.043-.728-1.667-1.006-.59-.314-1.04-.8-1.562-1.25-.103-.105-.138-.28-.243-.418a93.77 93.77 0 0 0-1.944-1.874c-.38-.347-.832-.59-1.248-.903-.07-.035-.174-.173-.21-.208-.45-.208-.832-.486-1.214-.8-.73-.658-.937-1.283-1.874-1.56-.973-.313-1.806-.626-2.396-1.112-.173-.138-.347-.277-.486-.347-.52-.208-1.18-.312-1.632-.07a9.544 9.544 0 0 0-1.666 1.18v.036h.002z"/> - <path d="M343.294 252.48a7.36 7.36 0 0 0-1.25-.73c-.59-.31-1.04-.797-1.562-1.248-.104-.105-.138-.278-.243-.417-.66-.66-1.285-1.25-1.945-1.875-.38-.347-.833-.59-1.25-.903-.07-.035-.174-.173-.208-.207-.45-.21-.833-.487-1.215-.8-.625-.555-.868-1.076-1.493-1.423l.033.035c.313-.243.66-.486 1.008-.66.417-.243.973-.138 1.423.035.105.035.278.21.417.313.52.38 1.18.694 2.05.937.797.242.97.763 1.595 1.32.313.277.66.52 1.042.693.035.035.104.174.173.21.348.242.764.45 1.077.763.555.52 1.11 1.04 1.666 1.596.104.104.104.277.21.347.416.382.832.798 1.318 1.04.52.28.973.592 1.458.87-1.457.068-2.88.068-4.303.068v.035z"/> - </g> - <path d="M303.166 238.976c.45-.07.242-.173.66.104m-1.492.448c.486-.07.66-.382 1.007.035m-1.463.285c.208 0 .347-.243 1.007.138m-1.487.414c.417-.104.66-.07 1.076.07m-1.636.346c.486-.14.694.208 1.215.104m-1.807.488c.312 0 .417-.104.694 0 .347.104.277.035.624.07m-1.974.554c.347 0 .45-.07.763-.035.416.07.313.105.73.035m-1.877.52c.694-.07.902-.035 1.388.14m-2.324 1.14c.59-.174.868-.174 1.39.035m-11.038 9.893c1.91-.313 4.165.035 6.074-.243m3.854-10.309c.486-.174.38-.104.868-.07.486.07.694.14.833.07m-2.469 1.112c.486-.243 1.076-.104 1.562.035m-.306.485c-.52-.14-1.076-.035-1.63 0m1.214.56c-.556-.174-1.146-.243-1.7-.07m-.772.486c.694 0 1.354-.174 2.048.07m-2.632.482c.73-.243 1.458-.035 2.222.035m-2.918.381c.763-.035 1.492-.035 2.256-.07.105 0 .348-.104.486.07m-.246.416c-1.146.243-2.29.07-3.437.104m2.813.488c-.382.035-.972.174-1.493.14-.105-.036-.21-.105-.313-.105-.59-.035-1.18-.035-1.735.173m-.243.416a.996.996 0 0 1 .763-.104c.73.104 1.424 0 2.12.173.173.07.346.173.554.173m-3.853.038c.52 0 1.04-.07 1.562.035.66.174 1.284.313 1.978.348h-.07m-3.958.001c.555 0 1.076.104 1.632.208.73.14 1.457-.07 2.152.14m-4.44-.004c.73.312 1.493.035 2.256.174.73.138 1.39.103 2.083.242m-4.827.136c1.11.035 2.222 0 3.367.208.312.07.798.21 1.215.14m-4.958.14c1.076.208 2.187.035 3.262.313.487.104 1.007.207 1.528.207h-.07m-5.176.312c.103-.035.242-.104.347-.104.867 0 1.7.14 2.603.035.694-.035 1.457-.105 2.152.138h-.07m-5.416.491c1.735-.174 3.506.07 5.242 0m-5.554.52c1.84.208 3.68.035 5.484.174m-5.756.378c.798.174 1.597-.07 2.395.104.59.104 1.11.208 1.702.104.52-.14 1.006.035 1.492-.034m7.427-7.598h.174m-.35.208c.07.035.174-.104.208.035m-.416.245h.38m-.556.24h.486m-.798.312c.278.035.52.07.798.07h-.07m-1 .346c.312-.104.66 0 .972-.104h-.07m-1.318.592h1.32-.07m-1.466.312c.486 0 .937-.07 1.39.035h-.036m-1.626.413c.52-.07 1.076 0 1.632.07m-1.944.418c.347-.035.624.174.972.243.278.07.52 0 .763-.036m-1.839.177c.52.174 1.076.208 1.596.243m-1.908.173c.45-.035.868.07 1.32.208.207.07.415.034.59.034h-.036m-2.466.414c.556-.243 1.215-.07 1.805.104.208.07.417-.034.66-.034h-.07m-2.467.346c.66-.208 1.354-.208 1.98.07.103.034.242 0 .346 0m-2.742.418c.868.174 1.77-.103 2.638.14m-2.878.244c.694.278 1.458 0 2.222.208.242.07.485.07.728-.034m-3.438.346c.313-.104.625-.174.937-.104.832.208 1.596.14 2.36.243m-3.681.413c.174-.035.347.104.486.07 1.076-.174 2.152 0 3.193-.07m-3.951.416c.833.312 1.7 0 2.603.243.346.105.797.14 1.18 0m-4.095.349c1.285.035 2.5-.035 3.992.14m3.296-7.5c.14-.035.243.104.382.07m-.558.314c.174-.035.313-.104.486-.07m-.622.414c.242.035.45-.035.694.07m-.87.418c.277 0 .59 0 .868.07m-1.108.418c.38-.104.73.035 1.11-.07m-1.15.414c.347.14.694.035 1.076.07v-.07m-1.284.552c.347-.035.66-.07.972.07.104.034.243 0 .382-.07m-1.386.488c.45-.174.902.104 1.39 0m-1.598.592c.52-.035 1.007.07 1.528 0m-1.704.448c.208-.07.45-.208.66-.104.31.14.693.07 1.04.104m-1.804.528c.59-.208 1.215.14 1.805-.174m-1.877.726c.277-.07.555-.07.868.035.312.07.694.034 1.076-.035m-2.112.52c.694-.14 1.424 0 2.152-.035l-.034.035m-2.534.488c.902-.07 1.84-.174 2.742-.174m-2.638.726c1.007-.174 2.048-.104 3.09-.14m-3.266.7c1.007.14 1.215-.07 2.222-.103.173 0 1.04-.175 1.215-.21.14-.034.45 0 .59 0m-4.027.585c1.528-.14 3.09.14 4.65-.243m-11.282.075h1.214m4.69.168c.14.07.312-.07.416.07m5.384-.174c1.25-.14 2.534.243 3.783 0m-4.415-.416c.798-.242 1.528-.07 2.29.07.07 0 .07.173.14.208.694.104 1.354 0 2.048-.035m-8.918-.307h-.798m-4.162-.176c-.555.035-1.11.035-1.666.104m12.114-11.8h.243m-.139.344c.104.035.208 0 .312-.035m-.248.595c.035-.035.035-.104.07-.104.103-.035.242-.035.346-.035m-.272.483c.174-.104.382-.035.59-.035m.066.347c-.208-.035-.382.035-.556.104m.244.488a.77.77 0 0 1 .555-.104m.245.416h-.798m.238.416c.278 0 .555.07.763-.104m.213.592c-.313 0-.59 0-.868.07m.204.514c.312.035.624-.035.937-.174m.071.318c-.277.14-.59.174-.902.243m.174.517c.382-.208.833-.035 1.215-.173m.105.485c-.312 0-.624-.07-.937.035-.104.034-.174.104-.313.104m.242.765c.243-.104.486-.277.763-.242.034-.174.208 0 .277-.105.07-.035.208 0 .347 0m.173.523c-.45-.035-.937.07-1.388.14m.14.588c.52-.208 1.04-.208 1.596-.278m-1.556.934c.59-.14 1.215-.104 1.77-.347m.414.419c-.66.104-1.32 0-1.944.313m.136.591c.104.035.174.104.278.07.625-.244 1.25-.45 1.874-.382m.176.448c-.624.347-1.354.208-2.048.243-.07 0-.138.07-.242.105m.242.42c.763-.104 1.493-.14 2.256-.243m.488.483c-.624.104-1.215-.035-1.805.104-.277.035-.52.14-.798.21m.099.486c.104 0 .242.035.312-.035.763-.45 1.63-.31 2.464-.346m.248.485c-.694 0-1.424-.174-2.117.07-.242.103-.485.242-.763.242m.24.52c.38-.07.73-.243 1.076-.313.798-.105 1.596-.035 2.395-.035m.001.42c-.452-.104-.937-.14-1.354 0-.694.174-1.32.347-2.013.38m.383.348c.556-.07 1.076-.242 1.632-.382.45-.104.902-.034 1.354-.034m-2.954.728c.833-.14 1.667 0 2.5-.278.277-.104.59.07.9.035m0-.317c1.39.103 2.777-.174 4.13.138m-3.85.278c.173.035.312-.104.416-.104 1.146 0 2.29.035 3.436.104m-.412-2.944h.174m-.11.376c.14.07.277-.174.416 0m-.312.416h.73m-.522.592c.243-.277.59 0 .833-.173m-.657.733c.313-.278.763.035 1.076-.243m-1.004.659c.45-.14.937.034 1.388-.243m-1.22.659c.694-.312 1.492.14 2.152-.347m-2.08.691c.868-.278 1.77 0 2.638-.035m.554.003c1.528-.07 3.09-.104 4.616 0m-5.272-.56c1.354.138 3.4 0 5.103.138m-12.599-10.586c.103 0 1.04-.174 1.11-.174m-.798.422c.278.035.937.035 1.18-.174m-.732.622c0-.035.798-.173.833-.173.104-.036.243 0 .38-.036m-.861.449c.138-.104 1.25-.035 1.457-.07m.271.318c-.208 0-1.11.035-1.25.14m.77.484c.14-.103.798-.208 1.04-.208m.52.384c-.278 0-.868.07-1.18.07m.588.45c.312-.035.868-.104 1.04-.243m.56.515c-.313 0-.73.035-1.146.07m.522.418c.38 0 .937 0 1.215-.104m.417.24c-.243.14-.73.174-1.04.243m.512.493c.313-.208.868-.07 1.25-.208m.422.448c-.38 0-.763-.035-1.04.035-.106.034-.14.104-.314.104m2.602.797c-.556-.035-1.007.07-1.493.14m.485.524c.486-.208 1.076-.174 1.632-.278m-.416 1.734c.104.035.624-.07.73-.104.832-.104.97-.278 1.735-.21m.455.346c-1.007.174-1.39.208-2.153.278-.104 0-.347.07-.416.104m.449.314c.764-.138 1.875-.103 2.638-.208m.834.416c-.624.104-1.353 0-1.944.14-.278.034-.798.068-1.076.138m.724.482c.104 0 .243 0 .313-.035.625-.418 1.632-.348 2.533-.348m.562.423c-.868 0-1.216.035-1.875.103-.243.035-.59.174-.903.174m.73.451c.798-.14 2.326-.313 1.424-.243.832-.07.97-.07 1.874-.07m.238.345c-.555-.07-1.146-.07-1.527.035-.347.103-.243.207-1.423.242m.486.243c.556-.07.625-.035 1.146-.174.416-.104.972-.07 1.493-.07m-2.359.452c.868-.104.972-.07 1.875-.035.243 0 .452 0 .765-.034m-16.144-10.931c.208-.104.347-.174.73-.14-.106-.138.172 0 .242-.068 0-.07.207-.035.346-.035m-1.734-.173c.208-.104.416-.104.763-.07-.105-.173.207 0 .242-.104.035-.034.243 0 .382 0m5.517 6.006c.243-.104.208-.174.555-.104-.103-.174.382 0 .417-.104.035-.07.417-.035.555-.035m-.063 1.627c.555-.14 1.25-.14 1.735-.382m.833.63c-.66.103-1.63.034-2.152.312m-7.92-8.368c-.624-.035-.73.174-1.18.174m8.02 1.562c.104 0 .798-.14.902-.14m-.622.42c.416-.103.73 0 .972-.173m-.628.517c0-.035.66-.104.694-.104.104-.035.243-.035.347-.035m-.689.451c.14-.104 1.042-.07 1.25-.104m.238.312c-.208-.035-1.04.104-1.18.174m.452.386c.14-.104 1.04-.208 1.25-.174m.486.342c-.278 0-1.04.07-1.32.104m.448.352c.278 0 1.146-.07 1.285-.208m.491.48c-.278 0-.764.035-1.146.07m.346.386c.347 0 1.11 0 1.354-.14m.382.244c-.208.14-.868.208-1.146.278m.626.378c.278-.174.833-.07 1.18-.174m.38.422c-.313 0-.695-.035-.937.035-.104.033-.14.103-.278.068m2.359.761c-.486-.035-.902.07-1.354.14m.45.484c.45-.208 1.007-.208 1.527-.278m-.311 1.63c.14.035.486-.104.555-.104.8-.104.903-.278 1.632-.243m.381.347c-.903.174-1.25.208-1.945.243-.103 0-.345.07-.415.104m.416.285c.695-.104 1.736-.104 2.43-.174m.77.382c-.556.07-1.215 0-1.77.104-.244.07-.764.07-1.008.14m.69.444c.104 0 .208 0 .278-.035.556-.382 1.493-.312 2.36-.312m.49.387c-.798 0-1.146.035-1.736.104-.382.035-.833.174-.937.174m.585.378c.73-.14 2.327-.278 1.493-.208.764-.07.903-.07 1.736-.07m.211.35c-.52-.07-1.007-.104-1.39 0-.277.07-.38.208-1.526.243m.42.245c.52-.07.833-.07 1.285-.174.38-.104.902-.07 1.388-.07m-2.153.516c.73-.103.834-.173 1.7-.138.245 0 .417-.035.695-.07M320.694 243c.208-.104.138-.174.45-.14.244-.068.418.036.452-.068 0-.035.208-.035.312-.035m-1.702-.029c.208-.104.243-.208.556-.174.312-.034.45 0 .485-.104.035-.035.21 0 .348 0m5.171 5.518c.208-.104.104-.14.417-.104-.07-.14.347 0 .382-.07.035-.07.382-.034.52-.034m-.063 1.488c.52-.14 1.146-.14 1.596-.313m.764.561c-.59.104-1.354-.035-1.806.208m-7.434-7.64c-.59-.035-1.076.242-1.423.486m8.543 2.57c.07 0 .903-.14.938-.14m-.658.348c.313-.07.763-.035.937-.174m-.625.414c-.035 0 .66-.104.694-.104.07-.035.174 0 .278 0m-.7.352c.103-.07.972-.07 1.11-.104m.21.24c-.174-.035-.834.07-.938.138m.49.278c.104-.07.66-.14.833-.14m.343.284c-.174 0-.798.07-1.007.07m.383.274c.208 0 .833-.07.972-.174m.38.382c-.243 0-.624.035-.902.035m.278.309c.278 0 .833 0 1.04-.104m.32.208c-.174.104-.695.14-.903.174m.311.314c.208-.14.834-.035 1.076-.104m.308.28c-.278 0-.555-.035-.763.035-.07.035-.14.035-.244.035m1.879.626c-.38-.035-.868.104-1.18.14m.38.276c.313-.14.868-.104 1.25-.174m-.386 1.214c.07.035.52-.035.59-.035.59-.07.695-.208 1.25-.173m.32.272c-.695.104-.973.14-1.528.174-.07 0-.312.034-.382.034m.278.248c.555-.104 1.458-.07 2.013-.14m.555.316c-.417.07-.937 0-1.354.07a7.31 7.31 0 0 1-.868.104m.446.378c.07 0 .556-.14.59-.14.695-.068.938-.138 1.598-.173m.38.313c-.624 0-.868.035-1.32.07-.312.034-.832.208-.902.208m.526.274c.45-.103 1.805-.242 1.25-.208.59-.034.694-.034 1.318-.07m.176.278c-.38-.034-.763-.07-1.076 0-.174.07-.38.14-1.25.208m.342.176c.416-.07.694-.035 1.04-.14.314-.103.73-.034 1.077-.068m-1.765.416c.555-.07.763-.14 1.423-.104.173 0 .312 0 .555-.035m-11.562-7.701c.174-.07.243-.174.486-.14.174-.034.313.036.313-.034.035-.034.174-.034.278-.034m-1.357-.04c.174-.07.208-.14.45-.14.244 0 .348 0 .383-.034 0-.07.173-.034.242-.034m3.861 4.232c.174-.07.208-.104.486-.07-.105-.104.243 0 .277-.068 0-.036.278 0 .383 0m-.042 1.146c.38-.103.868-.103 1.215-.277m.593.453c-.45.07-1.11-.035-1.493.174m-5.619-5.87c-.452-.035-.555.14-.833.347m7.041.909c.07 0 .798-.104.868-.104m-.62.344c.277-.07.73-.07.868-.174m-.596.382l.66-.104c.07-.035.174 0 .243 0m-.591.448c.104-.07.834-.208.973-.208m.211.208c-.174-.035-.868.104-.972.174m.38.25c.07-.07.763-.174.937-.14m.351.244c-.208 0-.764.035-1.04.104m.344.208c.208 0 .868-.07.972-.174m.38.342c-.208 0-.73.07-1.007.104m.415.248c.242 0 .798 0 .972-.104m.284.168c-.174.104-.764.104-.972.174m.444.314c.174-.14.73-.07.972-.14m.284.284c-.243 0-.486 0-.694.035-.035.034-.208.034-.278.034m1.772.555c-.347-.035-.764.104-1.077.14m.277.308c.313-.14.868-.14 1.25-.208m-.386 1.144c.07 0 .486-.07.555-.07.555-.07.658-.173 1.145-.138m.276.24c-.625.104-.902.14-1.39.174-.068 0-.31 0-.346.034m.216.28c.52-.07 1.39-.14 1.874-.174m.55.278c-.416.035-.902 0-1.285.07-.313.068-.764.068-.8.103m.421.315c.07 0 .52-.104.556-.104.625-.07.868-.14 1.493-.174m.343.278c-.59.035-.8.035-1.215.07-.313.034-.764.208-.87.208m.493.242c.452-.07 1.7-.243 1.18-.174.52-.07.625-.07 1.215-.07m.173.244c-.382-.035-.764-.07-1.007 0-.172.07-.346.14-1.144.174m.311.17c.347-.035.625-.035.972-.138.278-.07.625-.035.973-.035m-1.665.381c.556-.07.73-.104 1.354-.104.174 0 .278 0 .486-.035m-10.624-7.109c.14-.07.174-.14.417-.104.175-.035.28 0 .314-.035 0-.035.138-.035.242-.035m-1.253-.034c.174-.07.174-.14.417-.104.21-.035.314 0 .348-.07 0-.034.138-.034.243-.034m3.544 3.92c.14-.07.208-.07.416-.07-.07-.103.243 0 .278-.034.035-.035.278-.035.347-.035m-.073 1.043c.347-.07.868-.07 1.18-.208m.556.376c-.45.07-1.146-.035-1.492.14m-5.068-5.38c-.417-.035-.556.14-.8.312" stroke-width=".104" fill="none" stroke="#00633b"/> - <g fill="#fc0"> - <path d="M287.624 298.6l.6 4.448c-1.176-.384-2.256.304-2.776 1.28-.832 1.664-.096 2.92 1.504 3.72l2.152 1.104 4-7.776-1.6-.8-1.6 3.12h-.032l-.344-4.12-1.904-.976zm.6 5.872c.256.024.536.136.824.28l.2.096-1.12 2.128-.2-.104c-.728-.376-1.216-.832-.8-1.696.28-.544.664-.736 1.096-.704z"/> - <path fill-rule="evenodd" d="M280.673 302.668l1.076-1.596-2.362-1.563.834-1.217 2.325 1.563 1.318-1.944-2.43-1.63.834-1.248 3.886 2.638-4.86 7.22-3.886-2.604.833-1.216z"/> - <path d="M279.072 292.496l-2.12 2.456-.68-.552c-1.384-1.216-2.784-1.16-4 .224-1.28 1.528-.808 2.864.656 4.08l1.824 1.568 5.648-6.624-1.328-1.152zm-4.424 2.832c.304.024.64.232 1 .544l.28.2-1.576 1.832-.256-.208c-.656-.552-1.032-1.072-.368-1.872.328-.384.616-.528.92-.496z"/> - <path d="M268.35 294.616l-1.18-1.32 3.61-3.296c.797-.695 1.874-1.806.867-2.916-1.007-1.11-2.222-.174-3.02.556l-3.61 3.262-1.18-1.284 3.853-3.506c1.597-1.423 3.402-1.805 5.033-.035 1.63 1.805 1.076 3.61-.52 5.034l-3.853 3.506z" fill-rule="evenodd"/> - <path d="M265.152 278.128c-.496-.04-1.016.08-1.552.448-.76.552-1.352 1.544-.896 2.552-.632-.28-1.336-.088-1.856.296-1.424.976-1.392 2.184-.424 3.576l1.248 1.8 7.2-4.928-1.576-2.272c-.584-.848-1.32-1.408-2.144-1.472zm-.024 1.872c.52-.048.904.376 1.272.896l.224.28-1.848 1.248-.152-.2c-.448-.656-.92-1.432-.048-2.024.208-.136.376-.184.552-.2zm-2.552 2.528c.32-.008.592.208.848.6l.128.168-1.704 1.176-.12-.168c-.384-.56-.496-1.08.2-1.528.248-.184.456-.248.648-.248z"/> - <path fill-rule="evenodd" d="M264.6 275.315l-7.67 4.17-.867-1.565 6.386-3.432-1.18-2.225 1.283-.695zm-11.453-3.499l7.984-3.507.695 1.63-7.984 3.506zm-.973-9.552c-.416.625-.486 1.458-.277 2.187.555 1.598 2.256 2.05 3.714 1.598 1.39-.45 2.465-1.874 1.945-3.436-.208-.728-.833-1.32-1.493-1.632l1.91-.624c.52.555.937 1.11 1.145 1.805.798 2.43-.624 4.86-2.916 5.624-2.36.764-4.997-.278-5.83-2.81a4.7 4.7 0 0 1-.138-2.084l1.942-.626z"/> - <path d="M256.352 250.6l-8.2 4.976.248 1.352 9.424 1.896-.352-1.824-1.92-.424-.576-3.104 1.728-1.024-.352-1.848zm-2.656 3.624l.376 2.104-3.296-.4v-.056l2.92-1.648zm-1.944-19.92c-2.256.008-4.032 1.576-4.224 4.048l-.2 2.496 8.672.704.2-2.504c.208-2.568-1.536-4.512-4-4.72-.152-.016-.296-.032-.448-.024zm-.328 2c.192-.016.392-.024.6 0 1.56.104 2.576.968 2.4 2.944v.256l-5.224-.432.024-.248c.12-1.608.872-2.432 2.2-2.52z"/> - <path fill-rule="evenodd" d="M250.197 229.5l1.874.382.59-2.742 1.424.312-.555 2.743 2.324.485.59-2.846 1.424.278-.937 4.616-8.538-1.805.937-4.58 1.456.31zm3.333-11.454l1.77.694 1.04-2.638 1.39.555-1.042 2.64 2.186.83 1.076-2.707 1.39.522-1.702 4.373-8.157-3.158 1.737-4.374 1.388.52zm8.816-2.222l-7.775-3.992.8-1.56 6.455 3.296 1.145-2.22 1.32.658zm1.908-15.928c-.556.035-1.04.208-1.39.66-.346.485-.346 1.145.105 1.492 1.18.868 2.846-2.395 5.205-.625 1.39 1.04 1.7 2.672.59 4.165-.73 1.007-1.84 1.32-3.02 1.215l-.173-1.562c.694.21 1.527.07 1.978-.555.45-.555.243-1.284-.312-1.666-.728-.556-1.423 0-2.082.415-1.042.66-2.014 1.007-3.09.21-1.18-.87-1.458-2.465-.555-3.68.487-.66 1.46-1.32 2.258-1.424l.486 1.356z"/> - <path d="M268.152 192.248l-.976.976 3.976 8.776 1.296-1.352-.8-1.8 2.176-2.248 1.824.752 1.304-1.352-8.8-3.752zm1.376 2.48l2.776 1.272-1.352 1.424-1.448-2.672.024-.024z"/> - <path fill-rule="evenodd" d="M278.277 194.998l-5.484-6.804 1.39-1.11 4.546 5.623 1.943-1.562.937 1.145zm4.513-13.954l1.63-1.006 1.806 9.44-.868.557-7.74-5.693 1.596-1.042 5 3.82.033-.036z"/> - <path d="M290.6 176.8l-1.248.6.448 9.624 1.704-.776-.08-2.024 2.848-1.272 1.4 1.4 1.728-.776-6.8-6.776zm.352 2.848l2.152 2.224-1.808.8-.344-2.976v-.048zm9.376-5.872c-.448 0-.928.08-1.4.224l-2.4.704 2.448 8.344 2.376-.672c2.496-.728 3.72-3.064 3.024-5.424-.568-1.952-2.12-3.192-4.048-3.176zm-.056 1.824c1.088.04 1.816.672 2.176 1.928.456 1.488-.016 2.72-1.92 3.272l-.256.096-1.448-5.024.248-.096c.448-.12.84-.192 1.2-.176zm10.528-4.352c-.16.008-.336.032-.496.048-2.608.352-4.152 2.696-3.808 5.128.312 2.464 2.424 4.296 5.032 3.952 2.632-.352 4.16-2.664 3.848-5.128-.296-2.28-2.168-4.072-4.576-4zm-.2 1.952c1.384-.176 2.552.968 2.728 2.248.136 1.184-.696 2.816-2.056 3.024-1.352.176-2.6-1.216-2.776-2.4-.136-1.28.68-2.696 2.104-2.872zm7.424-2.352l-.096 8.728h1.768l.032-3.504h.024l2.152 3.552 2.144.024-2.52-3.696c1.216-.176 1.872-1.288 1.872-2.4.032-1.88-1.208-2.64-2.976-2.68l-2.4-.024zm1.8 1.552h.248c.832 0 1.488.2 1.456 1.176 0 .968-.624 1.224-1.528 1.224h-.2l.024-2.4z"/> - <path fill-rule="evenodd" d="M336.556 174.345l-.447 1.874 2.704.66-.348 1.457-2.746-.694-.554 2.29 2.845.73-.38 1.423-4.548-1.146 2.125-8.47 4.54 1.146-.346 1.458zm6.634.035l1.174.45 2.16 7.464h.032l2.183-5.45 1.63.66-3.293 8.26-1.183-.485-2.184-7.43h-.04l-2.185 5.485-1.63-.625zm9.33 14.197l4.656-7.394 1.49.938-3.856 6.144 2.118 1.32-.794 1.25z"/> - <path d="M365.376 186.6l-8.4 4.728 1.448 1.168 1.728-.968 2.424 2.024-.6 1.872 1.472 1.176 3-9.128-1.072-.872zm-1.304 2.528l-1 2.896-1.52-1.224 2.52-1.672zm14.376 11.12l-9.296 2.376 1.072 1.504 1.952-.456L374 206.2l-1.072 1.672 1.12 1.528 5.224-8.048-.824-1.104zm-1.872 2.104l-1.728 2.544-1.152-1.6 2.88-.944z"/> - <path fill-rule="evenodd" d="M375.43 211.903l-.793-1.598 8.677-2.673.587 1.112-4.127 4.58 6.072-.66.587 1.147-7.386 5.242-.803-1.597 4.516-3.088-5.873.624-.273-.52 4.028-4.27v-.034zm11.597 8.295l-1.803.624.902 2.64-1.423.485-.91-2.673-2.216.763.934 2.777-1.42.487-1.49-4.478 8.263-2.776 1.522 4.442-1.423.487z"/> - <path d="M390.248 225.728l-8.496 1.8.344 1.72 3.432-.72h.048l-3 2.92.472 2.08 3.048-3.256c.456 1.152 1.656 1.52 2.728 1.28 1.84-.384 2.336-1.728 1.952-3.504l-.528-2.32zm-1.072 2.096l.048.224c.176.832.12 1.528-.848 1.704-.936.208-1.304-.36-1.48-1.224l-.048-.2 2.328-.504z"/> - <path fill-rule="evenodd" d="M392.056 236.026l-8.676 1.007-.207-1.737 8.677-1.006zm-1.906 9.438c.59-.486.902-1.25.902-2.013-.034-1.7-1.56-2.638-3.053-2.602-1.46 0-2.917 1.04-2.882 2.706 0 .73.382 1.493.937 1.98l-2.013.034c-.313-.66-.555-1.32-.555-2.048-.036-2.568 2.048-4.478 4.442-4.513 2.498-.034 4.685 1.736 4.754 4.41a4.41 4.41 0 0 1-.486 2.012l-2.048.034z"/> - <path d="M383.728 247.104l-.2 1.848 1.72.952-.376 3.12-1.944.448-.2 1.88 9.296-2.28.176-1.4-8.472-4.568zm2.92 3.568l2.728 1.256v.024l-2.976.672.248-1.952z"/> - <path d="M384.038 272.128c.73-.278 1.32-.833 1.597-1.528.625-1.596-.417-3.053-1.805-3.61-1.354-.52-3.09-.137-3.714 1.39a2.75 2.75 0 0 0 .14 2.22l-1.91-.728c-.035-.728 0-1.423.277-2.117.938-2.36 3.61-3.366 5.832-2.464 2.326.903 3.68 3.402 2.706 5.867a4.617 4.617 0 0 1-1.214 1.702l-1.908-.732zm-1.418 4.684l-1.705-.9-1.348 2.463-1.29-.694 1.323-2.464-2.085-1.15-1.39 2.606-1.28-.728 2.215-4.128 7.676 4.16-2.225 4.128-1.314-.728zm-1.705 6.418l-.728 1.043-7.742.24-.033.04 4.756 3.434-1.042 1.455-7.188-5.268.736-1.01 7.734-.28h.033l-4.788-3.508 1.042-1.422zm-9.057 8.677l1.282-1.315 1.042 1.01-3.747 3.92-1.042-1.01 1.25-1.323-5.245-5.03 1.216-1.282z" fill-rule="evenodd"/> - <path d="M362.824 290.728l-1.376 1.096 2.248 2.728v.024l-3.944-1.28-1.656 1.352 4.328 1.176c-.8.936-.6 2.184.128 3.048 1.176 1.424 2.648 1.224 4 .08l1.824-1.528-5.552-6.696zm1.672 4.896l1.528 1.848-.176.128c-.656.552-1.248.808-1.872.072-.624-.76-.296-1.344.4-1.896l.12-.152zm-7.12-.376l-1.6 1 .352 1.952-2.68 1.648-1.544-1.176-1.6 1 7.672 5.776 1.152-.72-1.752-9.48zm-1 4.576l.776 2.904h-.048l-2.4-1.856 1.672-1.048z"/> - <path fill-rule="evenodd" d="M348.74 300.344l3.746 7.916-1.596.728-3.085-6.526-2.292 1.042-.628-1.324z"/> - </g> -</svg> diff --git a/img/flags/4x3/sx.svg b/img/flags/4x3/sx.svg deleted file mode 100644 index 00736d8..0000000 --- a/img/flags/4x3/sx.svg +++ /dev/null @@ -1,56 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" height="480" width="640" viewBox="0 0 640 480"> - <defs> - <clipPath id="a"> - <path fill-opacity=".67" d="M0 0h682.67v512H0z"/> - </clipPath> - </defs> - <g clip-path="url(#a)" transform="scale(.9375)"> - <path d="M0 0h768v256H341.33L0 0z" fill-rule="evenodd" fill="#ed2939"/> - <path d="M0 512h768V256H341.33L0 512z" fill-rule="evenodd" fill="#002395"/> - <path d="M0 0l341.33 256L0 512V0z" fill-rule="evenodd" fill="#fff"/> - <path fill="#ff0" d="M172.318 193.168l.104-3.963s-2.128-3.39.342-7.033c0 0-5.248-2.776-4.026-7.123 0 0-4.746-1.213-4.397-6.432 0 0-5.122-.355-5.652-4.716 0 0-5.123.844-7.377-3.405 0 0-4.996.977-6.406-2.526 0 0-4.857 1.683-7.74-2.435 0 0-5.128 2.073-7.278-1.813-2.121 3.872-7.25 1.813-7.25 1.813-2.848 4.103-7.74 2.4-7.74 2.4-1.36 3.517-6.343 2.519-6.343 2.519-2.247 4.25-7.363 3.405-7.363 3.405-.502 4.347-5.617 4.702-5.617 4.702.404 5.232-4.334 6.42-4.334 6.42 1.25 4.346-3.992 7.115-3.992 7.115 2.533 3.663.426 7.026.426 7.026l-.119 3.655 84.775.392"/> - <path d="M377.17 843.11l.091-3.458s-1.856-2.958.299-6.136c0 0-4.578-2.422-3.513-6.215 0 0-4.14-1.059-3.835-5.613 0 0-4.468-.31-4.93-4.114 0 0-4.469.736-6.435-2.971 0 0-4.358.852-5.588-2.204 0 0-4.237 1.468-6.751-2.125 0 0-4.474 1.808-6.35-1.582-1.85 3.379-6.324 1.582-6.324 1.582-2.484 3.58-6.75 2.094-6.75 2.094-1.188 3.068-5.534 2.198-5.534 2.198-1.96 3.708-6.422 2.97-6.422 2.97-.439 3.794-4.9 4.103-4.9 4.103.352 4.566-3.78 5.601-3.78 5.601 1.089 3.793-3.483 6.209-3.483 6.209 2.21 3.196.372 6.13.372 6.13l-.104 3.19 73.949.341h-.012z" stroke="#000" stroke-width=".289" fill="none" transform="matrix(1.1464 0 0 1.1461 -260.07 -773.12)"/> - <path fill="red" d="M170.346 188.217c-13.316-1.332-28.648-4.493-40.483 2.17-7.935-4.674-18.982-4.388-28.388-3.474-5.108.914-11.117.914-16.456 1.786l-.837.118c-9.686.643-18.472-2.218-26.889-5.979 2.673 15.168 5.639 30.712 7.097 46.592 3.176 23.518-11.13 43.263-5.262 66.495 3.504 11.148 15.765 17.63 26.987 18.914 10.865.641 22.108 2.421 32.164 4.604 1.912.398 4.18 1.285 5.5 1.856 2.77 1.158 4.8 2.861 6.58 4.682 6.071-6.322 14.969-8.08 23.748-9.008 15.82-1.849 35.325-.843 45.01-15.173v-.81c5.263-7.925 4.565-20.015 2.283-28.995-.154-3.133-.991-5.895-1.445-8.88-9.665-25.522-1.389-54.224 2.77-79.948-5.08 2.777-10.746 4.088-16.399 5.477-4.508.6-9.532.328-14.096.083l-1.89-.509"/> - <path fill="#80cfe1" d="M190.224 261.464c-.062 1.681.845 3 1.173 4.556 1.85 11.155 3.636 25.932-7.851 32.854-12.708 8.078-29.373 4.618-44.077 8.894-2.938.817-6.985 3.517-9.051 5.428-1.326-.872-2.659-2.211-4.369-3-12.1-6.432-27.83-4.277-41.487-7.751-6.86-2.17-14.012-7.513-15.75-14.533-4.466-18.417 6.232-34.116 4.969-52.387-.817-13.953-3.162-27.348-6.386-40.43 10.677 4.974 23.036 5.805 35.04 3.42 8.89-1.243 19.24-1.27 27.572 2.49 4.592-1.975 9.965-2.861 14.914-3.405 9.407.914 19.518 2.616 29.205 2.547 6.47-.336 12.346-2.206 17.97-4.696-3.336 21.62-9.742 44.268-1.877 66.014"/> - <path fill="#fff" d="M171.022 265.774l-.104-20.33h2.505L142.34 225.37l-.056-10.43h3l-15.541-11.127-15.465 11.121h2.994l.056 10.423-30.915 20.045 2.47.013.105 20.317 82.026.056"/> - <path d="M376.04 906.46l-.091-17.739h2.185l-27.113-17.513-.049-9.1h2.618l-13.557-9.71-13.49 9.704h2.611l.05 9.094-26.968 17.49 2.155.011.091 17.727 71.551.05.006-.014z" stroke="#000" stroke-width="1.242" fill="none" transform="matrix(1.1464 0 0 1.1461 -260.07 -773.12)"/> - <path fill="#fff" d="M180.583 292.478l.007 6.362-100.134-.112-.042-6.335 100.177.085"/> - <path d="M384.38 929.76l.006 5.551-87.347-.097-.036-5.528 87.384.074h-.006z" stroke="#000" stroke-width="1.242" fill="none" transform="matrix(1.1464 0 0 1.1461 -260.07 -773.12)"/> - <path fill="#fff" d="M87.106 292.1l-.084-21.53 4.054-.009-.223 21.782.244-21.607-5.84-.167v-4.62l89.492.1.042 4.576h-5.52l.104 21.802-.195-21.802h4.11l.091 21.557"/> - <path d="M302.84 929.43l-.073-18.786 3.536-.007-.194 19.005.213-18.852-5.095-.146v-4.03l78.064.085.036 3.994h-4.815l.091 19.023-.17-19.023h3.585l.08 18.809" stroke="#000" stroke-width="1.242" fill="none" transform="matrix(1.1464 0 0 1.1461 -260.07 -773.12)"/> - <path d="M319.62 924.8l-.055-13.1h-10.482l.061 13.087 10.476.013" stroke="#000" stroke-width="1.242" fill="none" transform="matrix(1.1464 0 0 1.1461 -260.07 -773.12)"/> - <path d="M311.94 914.43l.03 7.61h4.797l-.024-7.61h-4.803M370.86 924.84l-.06-13.087-10.447-.012.049 13.099h10.458" stroke="#000" stroke-width="1.242" fill="none" transform="matrix(1.1464 0 0 1.1461 -260.07 -773.12)"/> - <path d="M363.18 914.48l.055 7.585h4.79l-.042-7.585h-4.803M370.78 903.51l-.06-13.101H360.26l.037 13.101h10.488-.006z" stroke="#000" stroke-width="1.242" fill="none" transform="matrix(1.1464 0 0 1.1461 -260.07 -773.12)"/> - <path d="M363.1 893.16l.03 7.597h4.791l-.006-7.597H363.1M319.53 903.46l-.073-13.076-10.464-.013.049 13.082h10.488v.007z" stroke="#000" stroke-width="1.242" fill="none" transform="matrix(1.1464 0 0 1.1461 -260.07 -773.12)"/> - <path d="M311.85 893.11l.024 7.585 4.803.012-.036-7.597h-4.791M338.5 903.48l-.049-13.076-10.47-.012.043 13.087H338.5" stroke="#000" stroke-width="1.242" fill="none" transform="matrix(1.1464 0 0 1.1461 -260.07 -773.12)"/> - <path d="M330.83 893.13l.024 7.585 4.797.024-.03-7.609h-4.791M353.12 903.51l-.073-13.101-10.464-.012.049 13.087 10.488.025" stroke="#000" stroke-width="1.242" fill="none" transform="matrix(1.1464 0 0 1.1461 -260.07 -773.12)"/> - <path d="M345.44 893.14l.036 7.61h4.797l-.024-7.61h-4.809" stroke="#000" stroke-width="1.242" fill="none" transform="matrix(1.1464 0 0 1.1461 -260.07 -773.12)"/> - <path fill="#fff" d="M147.727 257.785l.133 34.612-34.774-.056-.125-34.583 34.76.027"/> - <path d="M355.72 899.49l.116 30.199-30.333-.049-.11-30.174 30.321.024h.006zM325.21 908.11l30.54.024M329.02 929.68l-.103-21.342M352.14 929.69l-.103-21.329M366.79 886.63l-17.081-12.474-19.193-.024-16.947 12.449 53.222.048M331.99 863.8l.03 7.61 16.144.011-.03-7.609-16.144-.012" stroke="#000" stroke-width="1.242" fill="none" transform="matrix(1.1464 0 0 1.1461 -260.07 -773.12)"/> - <path d="M336.37 865.69l.024 3.792h7.415l-.025-3.792h-7.414M340.04 855.14l8.979 6.348-17.891-.023 8.912-6.325" stroke="#000" stroke-width="1.242" fill="none" transform="matrix(1.1464 0 0 1.1461 -260.07 -773.12)"/> - <path fill="#fff" d="M171.366 202.028c2.924-.07 3.678 12.042 3.685 18.042 2.512.704 8.08 4.207 10.544 7.374l-28.25-.042c2.43-3.125 7.956-6.642 10.448-7.346 0-6.007.614-18.111 3.573-18.042"/> - <path d="M376.34 850.84c2.55-.06 3.208 10.507 3.214 15.742 2.191.615 7.05 3.671 9.198 6.434l-24.642-.036c2.118-2.727 6.94-5.795 9.113-6.41 0-5.241.536-15.803 3.117-15.742M326.81 900.33h2.21l-.646 1.186s1.066 1.37.019 2.94l.578 1.09h-2.13l.578-1.035s-1.09-1.82.048-2.995l-.657-1.186M331.31 900.33h2.21l-.64 1.186s1.066 1.334.007 2.94l.572 1.09h-2.125l.572-1.035s-1.065-1.82.055-2.995l-.651-1.186M336.23 900.33h2.204l-.658 1.186s1.078 1.37.018 2.94l.579 1.115-2.113-.024.567-1.036s-1.078-1.807.042-2.995l-.645-1.186h.006zM341.77 900.35h2.222l-.651 1.2s1.065 1.345.006 2.921l.596 1.108H341.8l.573-1.035s-1.066-1.832.073-2.995l-.67-1.199h-.006zM346.7 900.35h2.204l-.652 1.2s1.072 1.345.012 2.915l.585 1.114h-2.125l.554-1.035s-1.071-1.82.085-2.995l-.663-1.199M351.6 900.36l2.204-.012-.652 1.199s1.09 1.346.03 2.922l.555 1.108h-2.131l.572-1.035s-1.065-1.82.073-2.995l-.651-1.187" stroke="#000" stroke-width="1.242" fill="none" transform="matrix(1.1464 0 0 1.1461 -260.07 -773.12)"/> - <path fill="#ff0" d="M130.508 336.763c13.022.042 29.038-2.616 36.54-6.494l16.476-1.46.328 20.101c-13.958 7.695-46.184 9.348-53.275 9.292-7.097.056-39.721-1.625-53.742-9.348l.182-20.114 16.511 1.486c7.502 3.859 24.006 6.537 37.014 6.537h-.035"/> - <path d="M340.7 968.4c11.359.036 25.329-2.283 31.873-5.667l14.372-1.273.286 17.538c-12.175 6.714-40.286 8.157-46.47 8.108-6.192.049-34.65-1.418-46.88-8.156l.158-17.55 14.403 1.296c6.544 3.367 20.94 5.704 32.287 5.704h-.03" stroke="#000" stroke-width=".289" fill="none" transform="matrix(1.1464 0 0 1.1461 -260.07 -773.12)"/> - <path fill="#ff0" d="M34.417 251.023l14.516 4.62-4.39 23.498-13.74 2.134s-2.317-12.356 3.614-30.265"/> - <path d="M256.88 893.59l12.662 4.03-3.829 20.503-11.986 1.862s-2.021-10.781 3.153-26.407v.012z" stroke="#000" stroke-width=".289" fill="none" transform="matrix(1.1464 0 0 1.1461 -260.07 -773.12)"/> - <path fill="#7e7e7e" d="M44.54 278.885l-13.734 2.393 8.688-12.356 5.046 9.963"/> - <path d="M265.71 917.9l-11.98 2.088 7.579-10.781 4.401 8.693" stroke="#000" stroke-width=".289" fill="none" transform="matrix(1.1464 0 0 1.1461 -260.07 -773.12)"/> - <path fill="#ff0" d="M25.739 267.951l13.992 1.011c.314 11.854 1.751 57.091 55.779 59.547l-1.682 16.458c-65.765.683-70.762-55.486-68.089-77.016"/> - <path d="M249.31 908.36l12.205.882c.274 10.343 1.528 49.813 48.656 51.956l-1.467 14.36c-57.367.596-61.726-48.413-59.394-67.198zM294.11 978.5l14.384-3.141" stroke="#000" stroke-width=".289" fill="none" transform="matrix(1.1464 0 0 1.1461 -260.07 -773.12)"/> - <path fill="#ff0" d="M225.453 251.195l-14.46 4.577 4.586 23.463 13.768 2.211s2.212-12.348-3.894-30.264"/> - <path d="M423.52 893.74l-12.613 3.993 4 20.472 12.01 1.93s1.93-10.775-3.397-26.407v.012z" stroke="#000" stroke-width=".289" fill="none" transform="matrix(1.1464 0 0 1.1461 -260.07 -773.12)"/> - <path fill="#7e7e7e" d="M215.571 278.988l13.769 2.47-8.807-12.362-4.962 9.892"/> - <path d="M414.9 917.99l12.01 2.155-7.682-10.786-4.328 8.631" stroke="#000" stroke-width=".289" fill="none" transform="matrix(1.1464 0 0 1.1461 -260.07 -773.12)"/> - <path fill="#ff0" d="M234.292 268.135l-14.012.956c-.203 11.84-1.236 57.097-55.264 59.497l1.836 16.444c65.751.76 70.274-55.382 67.44-76.905"/> - <path d="M431.23 908.52l-12.223.835c-.177 10.33-1.077 49.818-48.206 51.912l1.601 14.348c57.355.662 61.3-48.322 58.828-67.101v.005zM387.04 978.57l-14.42-3.15" stroke="#000" stroke-width=".289" fill="none" transform="matrix(1.1464 0 0 1.1461 -260.07 -773.12)"/> - <path fill="#009fc5" d="M121.761 346.666c-.37.237-.872.3-1.451.272l-2.61-.133.223-3.257 2.59.138c.509.035.913.134 1.165.287.523.272.753.775.704 1.472-.034.6-.244.991-.628 1.22m-4.382 5.13l.258-3.971 3.043.21c.984.076 1.716-.182 2.212-.685.516-.488.782-1.13.816-1.855.063-.845-.153-1.535-.656-2.045-.481-.488-1.165-.746-2.023-.83l-4.348-.271-.6 9.348 1.291.084M126.84 343.972l3.182.035c.46.042.824.098 1.089.223.488.23.719.691.719 1.36 0 .63-.182 1.048-.538 1.3-.342.229-.837.333-1.43.333l-3.057-.035.028-3.216m-.049 8.282l.028-3.991 2.987.042c.53 0 .92.042 1.193.174.44.202.656.629.677 1.214l.077 1.57c.02.376.028.607.049.76.041.112.062.23.118.315h1.605l-.028-.203c-.181-.098-.328-.286-.39-.572-.056-.182-.084-.454-.098-.796l-.028-1.248c-.02-.566-.119-.956-.335-1.173a1.673 1.673 0 0 0-.844-.6c.446-.236.781-.508 1.026-.844.23-.37.349-.837.349-1.408 0-1.075-.44-1.808-1.333-2.205-.482-.216-1.096-.328-1.822-.342l-4.487-.042-.035 9.376h1.291M136.745 350.299c-.572-.697-.88-1.57-.95-2.602-.062-1.298.19-2.288.782-2.959.6-.725 1.375-1.073 2.387-1.13 1.019-.055 1.856.273 2.477.914.636.629.998 1.5 1.061 2.589.035 1.046-.146 1.974-.628 2.79-.474.83-1.263 1.298-2.428 1.326-1.215.063-2.122-.223-2.701-.928m-1.535-5.903c-.6.928-.845 2.003-.782 3.301.09 1.402.523 2.56 1.34 3.433.907.872 2.108 1.31 3.587 1.227 1.584-.07 2.777-.67 3.587-1.772.656-.997.97-2.156.9-3.586-.09-1.277-.46-2.317-1.151-3.091-.873-1.04-2.15-1.5-3.88-1.43-1.633.104-2.834.704-3.608 1.918M179.276 330.907c.9-.154 1.682-.111 2.394.132 1.047.328 1.752 1.103 2.191 2.289l-1.29.18c-.28-.64-.678-1.08-1.215-1.325-.523-.23-1.18-.286-1.933-.173a3.01 3.01 0 0 0-2.08 1.276c-.488.753-.635 1.758-.418 3.042.181 1.06.572 1.96 1.214 2.56.593.614 1.465.83 2.603.67.851-.14 1.535-.48 2.017-1.068.502-.557.649-1.402.481-2.49l-3.008.46-.153-1.032 4.187-.642.816 4.96-.83.126-.516-1.144c-.35.517-.698.914-1.005 1.144-.517.405-1.215.663-2.087.789-1.13.174-2.163-.029-3.098-.629-1.026-.76-1.69-1.89-1.94-3.46-.273-1.541-.028-2.86.684-3.9.676-1.004 1.66-1.59 2.986-1.78M188.746 330.185l3-1.089c.412-.153.768-.202 1.075-.166.551.04.956.369 1.186 1.024.217.559.217 1.047-.027 1.39-.259.355-.663.613-1.25.829l-2.819 1.012-1.165-3m3 7.751l-1.465-3.76 2.791-1.005c.524-.168.887-.259 1.159-.23.495.062.872.363 1.123.934l.635 1.431c.14.355.252.571.342.67.042.125.133.202.203.285l1.514-.557-.084-.203c-.223 0-.44-.125-.6-.37-.118-.174-.23-.425-.39-.718l-.496-1.173c-.223-.509-.454-.822-.719-1.011a2.395 2.395 0 0 0-.998-.272c.307-.356.53-.712.614-1.13.091-.426.05-.9-.153-1.43-.384-.998-1.089-1.542-2.08-1.612-.523-.042-1.123.07-1.814.313l-4.215 1.501 3.405 8.818 1.235-.454M202.72 333.29l-5.352-7.807 5.876-3.747.649.943-4.816 3.076 1.647 2.386 4.446-2.86.607.914-4.446 2.86 1.815 2.63 4.899-3.132.649.921-5.98 3.817M207.409 319.48l1.535-1.688c.712-.754 1.466-1.096 2.29-.998.823.07 1.66.502 2.553 1.284.245.188.46.432.684.704.391.51.621.957.768 1.403.125.559.098 1.068-.098 1.556-.118.244-.328.53-.642.872l-1.542 1.675-5.548-4.821m8.11 3.676c1.088-1.2 1.325-2.49.69-3.948a6.668 6.668 0 0 0-1.717-2.226c-.984-.873-2.01-1.319-3.091-1.402-1.2-.091-2.22.342-3.106 1.31l-2.617 2.805 7.216 6.294 2.617-2.819M221.108 315.87l-8.304-4.877.677-1.074 8.318 4.85-.684 1.115M224.364 310.208l-8.967-3.587 2.645-6.307 1.088.419-2.156 5.198 2.7 1.06 2.017-4.786 1.033.426-1.996 4.78 3.022 1.227 2.212-5.26 1.089.41-2.694 6.42M228.48 299.194l-9.435-2.086.314-1.458 8.716-2.944-7.655-1.689.279-1.144 9.435 2.03-.3 1.416-8.73 3.008 7.655 1.653-.272 1.214M227.735 287.217l.118-1.186c.545.015 1.005-.07 1.354-.257.684-.37 1.082-1.074 1.186-2.115.042-.487.021-.914-.09-1.318-.203-.781-.642-1.214-1.347-1.284-.523-.056-.9.07-1.173.356-.244.328-.502.802-.697 1.472l-.433 1.235c-.28.809-.537 1.367-.817 1.681-.446.587-1.074.79-1.877.733-.858-.09-1.556-.432-2.051-1.088-.51-.6-.72-1.458-.594-2.52.084-.968.405-1.785.977-2.44.53-.6 1.354-.887 2.408-.776l-.098 1.186c-.516 0-.928.091-1.228.3-.544.3-.844.935-.935 1.863-.077.768.028 1.284.32 1.675.294.328.664.537 1.096.572.461.041.824-.105 1.075-.46.182-.245.398-.775.691-1.633l.426-1.298c.21-.6.46-1.06.753-1.388.524-.544 1.208-.775 2.066-.711 1.047.11 1.794.544 2.177 1.34.377.802.524 1.688.433 2.692-.119 1.137-.488 2.03-1.172 2.63-.684.614-1.536.823-2.568.74M32.147 286.644l.217 1.172c-.524.104-.942.314-1.25.586-.55.516-.74 1.291-.55 2.345.083.446.244.885.446 1.235.419.711.963.997 1.654.885.51-.09.844-.285 1.005-.648.153-.357.265-.9.3-1.598l.063-1.32c.041-.815.132-1.456.314-1.813.286-.642.823-1.04 1.626-1.171.858-.155 1.612.04 2.26.53.657.453 1.09 1.241 1.25 2.287.202.957.112 1.815-.265 2.589-.363.754-1.061 1.214-2.129 1.409l-.21-1.185c.496-.182.866-.357 1.11-.6.42-.468.545-1.145.384-2.072-.125-.755-.384-1.243-.774-1.486-.384-.287-.768-.399-1.187-.328-.467.07-.774.328-.92.746-.091.279-.161.858-.224 1.744l-.063 1.367c-.035.642-.132 1.173-.349 1.536-.342.669-.921 1.08-1.765 1.213-1.068.181-1.892-.063-2.478-.747-.6-.67-.97-1.472-1.158-2.47-.21-1.185-.056-2.106.419-2.845.481-.76 1.242-1.2 2.275-1.347M31.551 299.01l9.226-2.776 2.15 6.495-1.124.355-1.759-5.337-2.805.845 1.626 4.932-1.075.342-1.612-4.946-3.126.934 1.786 5.456-1.102.315-2.185-6.614M35.644 310.277l8.486-4.5.907 1.584-5.834 6.167 8.52-1.458.88 1.57-8.465 4.472-.6-1.04 4.996-2.63c.182-.105.461-.258.866-.474.397-.181.844-.426 1.29-.656l-8.485 1.444-.621-1.102 5.792-6.147-.28.14c-.18.104-.495.258-.92.502a6.979 6.979 0 0 1-.935.502l-4.983 2.672-.614-1.06M51.453 322.77c-.426-.098-.845-.342-1.256-.768l-1.794-1.849 2.415-2.212 1.807 1.843c.35.342.572.676.691.963.168.55 0 1.053-.51 1.527-.46.426-.92.6-1.353.495m-6.818.858l2.959-2.714 2.1 2.128c.677.691 1.368 1.005 2.094.992a2.953 2.953 0 0 0 1.933-.845c.628-.558.928-1.214.928-1.918-.007-.684-.321-1.326-.9-1.926l-3.015-3.077-7.02 6.446.907.914M53.104 331.159l5.087-7.975 6.015 3.656-.628.95-4.94-2.958-1.529 2.414L61.652 330l-.586.914-4.55-2.741-1.73 2.699 5.003 3.008-.6.941-6.085-3.663M68.156 329.623l3.056.97c.433.132.747.3.956.489.391.37.496.9.266 1.541-.189.558-.475.921-.921 1.075-.398.07-.9.07-1.487-.112l-2.882-.92 1.012-3.043m-2.638 7.835l1.27-3.802 2.847.928c.51.133.88.314 1.061.502.349.314.454.781.28 1.36l-.427 1.514c-.097.37-.146.614-.188.726 0 .119 0 .245.021.328l1.5.488.091-.216c-.16-.126-.251-.355-.244-.641.035-.176.084-.454.181-.776l.363-1.214c.147-.53.203-.927.07-1.213-.112-.3-.3-.573-.614-.83.474-.084.886-.23 1.235-.49.328-.285.607-.683.775-1.24.342-1.013.153-1.857-.6-2.499-.377-.334-.915-.62-1.62-.886l-4.27-1.318-2.987 8.895 1.249.384"/> - <path fill="#bc715f" d="M78.485 175.576c1.102-2.66 11.32-9.908 44.844-6.733 0 0 5.666 3.46 8.995 3.014 1.898-.245-1.117.118-3.594-1.94-2.526-2.058-3.064-6.278 2.708-6.167 5.743.147 27.244 1.36 27.649 3.292.376 1.954-11.369 2.77-15.737 2.659-4.39-.118-3.88 2.1.488 1.933 13.65-.489 28.55-5.296 44.286 5.832 1.877 1.353-4.746 1.57-9.868-.607 0 0-13.88.719-19.882-.265 0 0-4.613 3.753-10.621 3.384.781 1.946-2.22 9.21-21.11 3.746-3.12.956-14.487 2.86-13.245-.516-2.994 0-8.242.963-9.024-.74-.753-1.674 9.24-4.207 10.992-6.02 0 0-21.139.202-25.144-1.257 0 0-12.47 2.798-11.738.37"/> - <path fill="#008737" d="M85.26 205.168c.454-.613.635-1.716 1.598-1.688 2.094.558 3.517 4.388 6.092 1.904.915-.202 1.263 1.04 2.017 1.187.482 2.128 2.191-.433 3.468-.287 2.73-1.214 6.107-1.5 9.338-.9.097 2.086-1.536 4.389-3.587 5.575.042 2.1 1.947 3.447 1.912 5.56-.328.79-.056 2.03-1.25 2.288-1.514-.272-3.007-.432-4.263-1.276-.154-.154-.28-.454-.6-.356-.154.704.949 1.403 1.381 2.12-.76 1.298-2.023.112-3.084.126-.314.747-.014 1.689-.782 2.17-1.34-.042-1.612-1.5-2.435-2.225-.845.913.593 1.458.795 2.183-.516 2.749-.446 5.435-3.196 7.235l-1.842.915c-.503-1.382-.189-3.475-.524-4.92-1.088 1.773-1.94 3.322-3.538 4.821-1.87-.614-2.959-2.818-3.37-4.646-.782-2.128-.335-4.675 1.347-6.216-.573-1.117-2.534-.858-2.813-2.448-2.938-1.913-4.564 3.348-6.462.613-.614-2.553.119-5.728 1.968-7.633-.412-1.046-1.78-.773-2.59-1.373-1.848-1.571-4.514-3.23-4.382-6.064 5.06-1.91 11.11-.509 14.788 3.335"/> - <path fill="#ff0" d="M87.885 204.882c-.118 2.315 1.564.627 2.813 2.029-.977-.384-1.69 1.688-2.645.502l-.6.573c.349.795 1.026.9.32 1.772-1.046.397-1.255-.914-1.744-1.43-.084-.23.16-.663-.223-.817-.593.502-1.214.684-2.031.6-.223-.446-.656-1.032-.216-1.374.802-1.082 2.044.39 2.652-.37.097-.67-.489-1.485.272-1.947.523.091 1.193-.194 1.41.462M94.145 206.784c.062.447-.23 1.074.356 1.39.76-.413 1.57-.1 2.01.655-.007.404.118.934-.412 1.13l-1.187-.223c.084-.231-.293-.377-.44-.6-.523-.16-.83.264-1.22.522.293.447.97.691.809 1.264-.698.697-1.04-.6-1.807-.273-.524-.202.188-1.29-.635-1.618-.977 0-.328 1.604-1.578.977-.446-.503-.886-1.18-.404-1.744.523-.35 1.41-.26 1.856.194.76-.843.837-4.101 2.659-1.674M86.35 210.142c.509.733-.113 1.73.536 2.547 1.02-1.904 2.003.411 3.218.23.37.453.125 1.082.195 1.598-1.5.397-3.308.872-4.634-.328l-.37.425c.789.733 1.536 1.563.908 2.79-1.124.245-2.862.273-3.427-.885-.293-.955.684-1.646-.349-2.414-.746.928-.712 2.17-2.268 1.325-.963-.53-1.249-1.624-.767-2.546 1.004-1.584 2.763.05 3.852-.726.153-1.36-.35-2.546.9-3.299 1.068-.189 1.563.613 2.212 1.283"/> - <path fill="#fff" d="M90.602 210.979c-.502 2.316-2.247-.119-3.063-.217 1.088-1.931 1.772.63 3.063.217M96.036 213.5c-1.214.341-1.026-1.173-1.626-1.766l.468-.425c.44.53.774 1.487 1.158 2.191"/> - <path fill="#ff0" d="M94.397 213.03c.349.803-.789 1.445.181 2.03.307-.257.684-.613.845-.76.83.245 1.793.391 2.372 1.214.622 1.703-1.102 1.66-2.08 2.135l-.97-.042c.231-.474-.418-.677-.578-1.004-.447-.112-.817.027-1.068.404.216 1.082 1.535 1.926.174 2.888-1.151-.076-2.938.37-2.833-1.22-.433-.9 1.172-2.289-.544-2.344-.566 1.214-1.187 2.385-2.66 1.235l.182-1.73c1.41.04 3.078.285 3.713-1.291.405-1.144-.705-2.198.286-3.105 1.438-.328 2.247.635 2.98 1.59"/> - <path d="M93.365 215.632c.363.859-.614.915-1.075 1.34-.62.049-1.053-.196-1.43-.614-.28-1.04.495-1.145 1.088-1.556.691-.286.977.516 1.417.83"/> - <path fill="#fff" d="M92.517 216.194c-.154.202-.37.14-.6.195l-.217-1.039c.46.041 1.061.188.817.844"/> - </g> -</svg> diff --git a/img/flags/4x3/sy.svg b/img/flags/4x3/sy.svg deleted file mode 100644 index 9003803..0000000 --- a/img/flags/4x3/sy.svg +++ /dev/null @@ -1,6 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" height="480" width="640" viewBox="0 0 640 480"> - <rect y="160" width="640" height="160" ry="0" rx="0" fill="#fff" fill-rule="evenodd"/> - <rect y="320" width="640" height="160" ry="0" rx="0" fill-rule="evenodd"/> - <path d="M0 0h640v160H0z" fill="red" fill-rule="evenodd"/> - <path d="M201.9 281l-28.822-20.867-28.68 21.072 10.667-34.242-28.628-21.145 35.418-.295 10.985-34.138 11.221 34.06 35.418.045-28.481 21.344L201.9 281zm307.64 0l-28.822-20.867-28.68 21.072 10.667-34.242-28.628-21.145 35.418-.295 10.985-34.138 11.221 34.06 35.418.045-28.481 21.344L509.54 281z" fill="#090" fill-rule="evenodd"/> -</svg> diff --git a/img/flags/4x3/sz.svg b/img/flags/4x3/sz.svg deleted file mode 100644 index dedaaf5..0000000 --- a/img/flags/4x3/sz.svg +++ /dev/null @@ -1,49 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" height="480" width="640" viewBox="0 0 640 480"> - <defs> - <clipPath id="a"> - <path fill-opacity=".67" d="M-85.333 0h682.67v512h-682.67z"/> - </clipPath> - </defs> - <g clip-path="url(#a)" transform="translate(80) scale(.9375)"> - <path fill-rule="evenodd" fill="#3e5eb9" d="M-128 0h768v512h-768z"/> - <path fill-rule="evenodd" fill="#ffd900" d="M-128 91.429h768v329.14h-768z"/> - <path fill-rule="evenodd" fill="#b10c0c" d="M-128 128h768v256h-768z"/> - <rect fill-rule="evenodd" rx="5.767" ry="5.851" height="10.971" width="621.71" stroke="#000" y="250.51" x="-51.439" stroke-width="1.474" fill="#ffd900"/> - <g stroke="#000" transform="translate(-757.03 -25.6) scale(1.0321)"> - <path d="M-106.3 265.75l-88.583 35.433 88.583 35.433 88.582-35.433-88.582-35.433z" fill-rule="evenodd" transform="matrix(.34 0 0 .3 1256.8 136.42)" stroke-width="4.175" fill="#fff"/> - <rect fill-rule="evenodd" rx="4.108" ry="3.78" height="7.087" width="442.91" y="223.23" x="761.81" stroke-width="1.333" fill="#ffd900"/> - <path d="M1224.4 279.92c-3.54 0-7.09-3.544-7.09-7.087s3.55-7.087 7.09-7.087" transform="matrix(-.50001 0 0 .5 1806.3 90.354)" stroke-width="2.667" fill="none"/> - <path d="M1224.4 279.92c-3.54 0-7.09-3.544-7.09-7.087s3.55-7.087 7.09-7.087" transform="matrix(-.50001 0 0 .5 1802.8 90.354)" stroke-width="2.667" fill="none"/> - <path d="M1224.4 279.92c-3.54 0-7.09-3.544-7.09-7.087s3.55-7.087 7.09-7.087" transform="matrix(-.50001 0 0 .5 1799.2 90.355)" stroke-width="2.667" fill="none"/> - </g> - <g stroke="#000" transform="translate(-786.29 -3.657) scale(1.0321)"> - <path d="M-106.3 265.75l-88.583 35.433 88.583 35.433 88.582-35.433-88.582-35.433z" fill-rule="evenodd" transform="matrix(.34 0 0 .3 1256.8 136.42)" stroke-width="4.175" fill="#fff"/> - <rect fill-rule="evenodd" rx="4.108" ry="3.78" height="7.087" width="442.91" y="223.23" x="761.81" stroke-width="1.333" fill="#ffd900"/> - <path d="M1224.4 279.92c-3.54 0-7.09-3.544-7.09-7.087s3.55-7.087 7.09-7.087" transform="matrix(-.50001 0 0 .5 1806.3 90.354)" stroke-width="2.667" fill="none"/> - <path d="M1224.4 279.92c-3.54 0-7.09-3.544-7.09-7.087s3.55-7.087 7.09-7.087" transform="matrix(-.50001 0 0 .5 1802.8 90.354)" stroke-width="2.667" fill="none"/> - <path d="M1224.4 279.92c-3.54 0-7.09-3.544-7.09-7.087s3.55-7.087 7.09-7.087" transform="matrix(-.50001 0 0 .5 1799.2 90.355)" stroke-width="2.667" fill="none"/> - </g> - <g fill-rule="evenodd"> - <path d="M338.07-.416c-5.571 12.442 4.275-4.138 28.299 16.69 4.452 3.87 8.342 14.09 8.342 21.178-1.13-.975-1.969-3.145-3.214-4.553-1.743 2.253 1.664 12.577 2.162 17.457-3.756-2.71-3.394-3.993-4.642-7.324.249 4.026-.645 15.116.849 19.386-2.96-1.09-2.764-4.163-4.31-4.78 1.052 4.834-.916 10.094-.394 15.528-1.73-2.208-3.573-3.937-4.376-4.829-.135 2.588-3.327 9.388-3.4 11.835-1.468-1.143-1.866-2.926-2.111-4.126-1.824 2.955-8.308 13.872-8.724 17.202-4.996-5.69-17.793-19.545-19.459-26.9-1.473 4.176-3.604 5.584-7.817 8.632-1.665-11.656-7.891-24.756-4.561-34.747-2.359 1.804-4.302 3.608-6.66 5.828 2.234-16.88 13.628-36.674 30.016-46.477z" transform="matrix(.9944 0 0 .77118 190.368 251.963)" stroke="#000" stroke-width="1.422" fill="#3d5da7"/> - <path d="M505.878 299.164c2.3-4.597 4.419-6.056 5.905-9.016 2.626-5.203 3-9.343 5.288-8.736 2.288.607 2.285 2.737-.678 7.854-2.964 5.116-4.372 6.209-10.515 9.898zM521.438 310.115c-.295-3.5.72-4.963.534-7.217-.316-3.967-1.938-6.69.171-6.883 2.11-.194 3.096 1.159 3.102 5.156.006 3.998-.612 5.048-3.807 8.944zM533.243 316.979c-.922-4.887-.233-7.055-.822-10.203-1.027-5.54-3.058-9.187-1.103-9.693 1.955-.507 3.134 1.284 3.874 6.902.74 5.618.35 7.162-1.95 12.994zM545.515 282.734c-2.882-2.188-4.565-2.334-6.424-3.74-3.274-2.468-4.931-5.108-5.984-3.797-1.053 1.311-.306 2.745 3.125 5.02 3.431 2.276 4.593 2.456 9.283 2.517zM543.484 298.962c-1.52-3.155-3.119-3.955-4.101-5.986-1.738-3.567-1.74-6.653-3.625-5.862-1.884.791-2.036 2.407-.02 5.86 2.015 3.452 3.07 4.077 7.746 5.988z" fill="#a70000"/> - </g> - <g fill-rule="evenodd"> - <path d="M329.6 20.703c-.272-2.662.253-2.98-1.258-4.989 2.2.997 2.284 3.649 4.959 1.767.983-.551 1.411-.569.217-3.526 2.79.14 11.927 3.535 13.39 3.614 3.842.191 10.855-4.373 15.723 1.24 4.672 5.117 3.112 10.428 3.112 17.515-1.877-.975-.973-1.455-2.965-3.989 1.494 6.195-.08 17.364-.08 23.934-.767-1.584-.654-.896-1.404-2.537-1.992 5.997-4.38 7.231-4.38 14.318-.719-2.78-.025-2.191-.825-3.653-1.936 4.552-14.925 8.443-9.92 13.033-4.518-2.87-6.499-2.57-8.548-5.15-.882.617-1.584 1.785-2.404 3.386-7.943-3.96-5.103-12.5-11.326-18.206-1.077 2.393-.586 2.045-1.75 5.939-1.26-5.408-1.604-8.844-3.021-12.82-1.223 2.204-1.113 1.36-3.333 4.69-.918-6.587-2.413-8.142-1.822-12.501-2.359 1.804-.815 1.073-3.173 3.293 2.234-16.88 11.884-29.352 18.808-25.358z" transform="matrix(1.1372 0 0 1.0495 -399.418 239.16)" stroke="#000" stroke-width="1.422" fill="#3d5da7"/> - <path d="M-35.707 289.802c2.327-5.704 4.425-7.495 5.929-11.167 2.655-6.454 3.088-11.613 5.32-10.826 2.23.787 2.194 3.444-.79 9.786-2.985 6.342-4.383 7.686-10.459 12.207zM-26.893 304.072c.932-5.114 2.405-6.976 3.01-10.27 1.075-5.79.476-10.102 2.549-9.875 2.073.227 2.543 2.412 1.163 8.173-1.38 5.76-2.332 7.125-6.722 11.972zM-16.354 313.993c.263-4.957 1.424-6.893 1.598-10.086.315-5.616-.767-9.637 1.211-9.66 1.978-.023 2.682 1.997 2.076 7.62-.606 5.622-1.338 7.025-4.885 12.126zM6.28 281.574c-4.328-4.312-6.945-5.116-9.736-7.89-4.917-4.87-7.294-9.44-9.044-7.82-1.75 1.62-.698 4.05 4.48 8.684 5.177 4.634 6.978 5.309 14.3 7.026zM3.647 298.24c-2.819-4.33-4.887-5.451-6.707-8.237-3.21-4.895-4.312-9.1-6.132-8.06-1.82 1.042-1.413 3.24 2.065 7.985 3.478 4.744 4.878 5.617 10.774 8.311z" fill="#a70000"/> - </g> - <g fill-rule="evenodd"> - <path d="M637.8 230.32c-53.15 59.05-124.02 177.16-265.75 177.16-124.02 0-212.6-118.11-265.75-177.16 53.15-59.06 141.73-177.17 265.75-177.17 141.73 0 212.6 118.11 265.75 177.17z" transform="matrix(.68807 0 0 .61926 .001 113.366)" stroke="#000" stroke-width="2.108" fill="#fff"/> - <path d="M243.234 184.445c9.73 10.943 1.605 15.354 11.903 16.073 10.86.797 4.705 11.562 13.84 11.936 6.387.28-.638 25.794 5.511 34.213 6.263 8.777 11.508 2.571 11.618 8.913.109 6.558-17.045 5.896-17.346 26.099-.503 11.642-14.476 12.388-15.143 19.879-.83 7.046 27.528 11.002 27.15 17.31-.388 6.288-30.62 5.303-31.936 12.475-.675 6.442 41.531 11.721 44.925 30.352-6.298 2.06-24.216 3.998-37.76 4.009-85.327.068-146.283-73.14-182.854-109.708 36.571-36.574 97.52-109.714 182.855-109.714 0 0-25.33 23.144-12.763 38.163z"/> - <g stroke-width="1pt" fill="#fff"> - <path d="M141.408 216.989h8.866v29.256h-8.866zM141.408 265.75h8.866v29.256h-8.866zM159.138 216.989h8.866v29.256h-8.866zM159.138 265.75h8.866v29.256h-8.866zM176.868 216.989h8.866v29.256h-8.866zM176.868 265.75h8.866v29.256h-8.866zM194.602 216.989h8.866v29.256h-8.866zM194.602 265.75h8.866v29.256h-8.866zM212.332 216.989h8.866v29.256h-8.866zM212.332 265.75h8.866v29.256h-8.866zM230.062 216.989h8.865v29.256h-8.865zM230.062 265.75h8.865v29.256h-8.865z"/> - </g> - <g stroke-width="1pt"> - <path d="M275.499 216.989h8.866v29.256h-8.866zM275.499 265.75h8.866v29.256h-8.866zM293.228 216.989h8.866v29.256h-8.866zM293.228 265.75h8.866v29.256h-8.866zM310.958 216.989h8.866v29.256h-8.866zM310.958 265.75h8.866v29.256h-8.866zM328.693 216.989h8.866v29.256h-8.866zM328.693 265.75h8.866v29.256h-8.866zM346.422 216.989h8.866v29.256h-8.866zM346.422 265.75h8.866v29.256h-8.866zM364.152 216.989h8.866v29.256h-8.866zM364.152 265.75h8.866v29.256h-8.866z"/> - </g> - </g> - <g fill-rule="evenodd"> - <path d="M338.07-.416c-5.571 12.442 9.754-4.138 33.778 16.69 4.452 3.87 10.833 19.16 10.833 26.246-5.115-1.257-14.173-7.087-14.173-7.087s10.63 12.295 10.63 26.468c-3.756-2.71-5.635-2.304-6.883-5.634 0 4.588 3.34 7.512 3.34 14.599-2.711-2.498-5.006-4.163-7.3-5.625 3.543 7.086-6.457 20.834-1.452 25.423-8.752-1.462-17.707-7.92-21.25-15.006-1.878 1.462-2.082 3.756-2.155 6.203.276.264-13.322-11.656-12.073-16.235-1.824 2.955-2.081 4.579-2.497 7.909-4.996-5.69-9.574-11.378-11.24-18.733-2.22 3.33-2.359 3.33-4.579 6.66-1.665-11.655-1.665-11.24 1.665-21.23-2.359 1.804-4.302 3.608-6.66 5.828 2.234-16.88 13.628-36.674 30.016-46.477z" transform="matrix(.9094 0 0 .78749 -110.58 166.096)" stroke="#000" stroke-width="1.422" fill="#3d5da7"/> - <path d="M184.375 213.644c.81-6.752 2.576-9.295 3.103-13.643.94-7.648-.175-13.237 2.534-13.095 2.71.141 3.49 2.962 2.151 10.593-1.34 7.63-2.468 9.484-7.788 16.145zM198.52 226.007c-.55-5.697.503-8.122.154-11.791-.602-6.457-2.596-10.83-.234-11.233 2.362-.402 3.556 1.764 3.81 8.283.256 6.519-.375 8.256-3.73 14.74zM220.602 236.092c-2.401-4.929-4.464-6.4-6.015-9.572-2.739-5.576-3.31-10.129-5.422-9.304-2.112.825-1.996 3.18 1.054 8.639 3.05 5.458 4.429 6.57 10.383 10.237zM228.235 191.946c-6.116-3.22-9.257-3.26-13.199-5.329-6.94-3.627-10.98-7.725-12.414-5.47-1.434 2.256.48 4.499 7.635 7.796 7.155 3.298 9.354 3.454 17.978 3.003zM230.48 210.382c-4.455-3.705-7.088-4.25-9.96-6.633-5.06-4.182-7.578-8.288-9.268-6.624-1.69 1.665-.56 3.864 4.75 7.804 5.31 3.94 7.127 4.43 14.477 5.453z" fill="#a70000"/> - </g> - </g> -</svg> diff --git a/img/flags/4x3/tc.svg b/img/flags/4x3/tc.svg deleted file mode 100644 index fab2d91..0000000 --- a/img/flags/4x3/tc.svg +++ /dev/null @@ -1,73 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" height="480" width="640" viewBox="0 0 640 480"> - <path d="M640 480V0H0v480h640z" fill="#006"/> - <path fill-rule="evenodd" fill="#006" d="M0 0h373.68v232.168H0z"/> - <g stroke-width="1pt"> - <path d="M0 0v25.957l331.901 206.21h41.778v-25.956L41.777.001H0zm373.679 0v25.956L41.777 232.166H0V206.21L331.901 0h41.778z" fill="#fff"/> - <path d="M155.7 0v232.167h62.28V0H155.7zM0 77.389v77.389h373.679v-77.39H0z" fill="#fff"/> - <path d="M0 92.867V139.3h373.679V92.867H0zM168.155 0v232.167h37.368V0h-37.368zM0 232.167l124.56-77.39h27.851l-124.56 77.39H0zM0 0l124.56 77.389H96.708L0 17.305V0zm221.267 77.389L345.827 0h27.852l-124.56 77.389h-27.852zM373.68 232.167l-124.56-77.39h27.852l96.708 60.085v17.305z" fill="#c00"/> - </g> - <g> - <path d="M612.54 212.442v79.91c0 65.607-25.77 125.663-102.217 162.169-76.416-36.506-102.189-96.56-102.189-162.168v-79.911h204.444z" fill-opacity=".996" fill="#fff"/> - <path d="M605.691 220.585v74.535c0 61.192-24.036 117.209-95.34 151.256-71.307-34.048-95.34-90.063-95.34-151.256v-74.535h190.69z" fill-opacity=".996" fill="#fdc300"/> - <g stroke="#000" stroke-width=".091"> - <path d="M205.96 52.847a2.085 2.085 0 0 0-1.265-.441c.117-1.295-.824-1.854-1.501-2.09-.676-.235-.912-.5-1.029-1.03-.118-.529-.471-.852-1.089-1.029-.618-.176-1.148-.794-1.383-1.088-.235-.295-.324-.236-.5.264-.177.5-.883 1.442-.236 1.472-.47.382-.735.823-.441 1.412-.324.265-.559.647-.118.794.442.147.559.265.589.383-.397 0-.5.794.441.97-.206.03-.294.677.089.677-.53 0-.972.795-1.648.795-.677 0-1.03.147-1.059.441-.03.294-.383.647-.559.794.5.06.823 0 1.088-.206s.706-.264 1.001-.029c.294.235.912.353 1.206.294-.647.442-1.118 1.03-1.177 1.589-.059.56-.441 1.206-.883 1.383-.441.176-1.029.647-1.235 1.206.559 1.383 1.352 1.725 2.147 2.09 1.413.646 2.295 1.117 2.884 1.764.588.648.824.177 1.706 1.295.883 1.118 1.707 3.236 2.589 3.59.883.353 2.001.117 2.648-1 .648-1.119 1.06-12.417-2.265-14.3z" fill="#ff9e3d" transform="matrix(3.909 0 0 3.9094 -339.132 46.653)"/> - <path d="M207.46 48.139c-.824.883-1.884 1.765-1.707 3.354s.353 4.178-1.118 5.06c-1.471.884-2.177 3.12-.412 4.414 1.765 1.295 1.824 2.884 2.118 4.355.295 1.47 1.06 2.648 2.237 1.647 1.176.177 1.824-.294 1.824-1.235s.059-1.471.941-1.766c.883-.294 1.118-.588 1.53-1.383.412-.794.647-1.147.412-1.618-.235-.47-.324-1.441-.147-2.148.177-.706-.235-1.088-.471-1.53-.235-.44-.323-.823-.206-1.412.118-.588-.176-.97-.588-1.265-.412-.294-.589-.588-.5-1.06.088-.47-.295-.764-.736-1.117s-.765-.824-.765-1.53c0-.706-1.353-2.354-2.412-2.766z" fill="#ff927f" transform="matrix(3.909 0 0 3.9094 -339.132 46.653)"/> - <path d="M207.79 67.352c1.971-.5 1.795-3.737 1.501-5.09-.295-1.353-1.051-3.292-.471-4.825.824-2.177-1.001-4.237-.53-5.06.471-.825.412-1.266.353-1.53-.058-.266-.5-.472-.529.087-.03.56-.177.765-.53 1.118s-.265 1.118 0 1.972c.265.853.824 2.148-.059 3.854-.882 1.706-.519 2.467-.176 3.266.529 1.236 1.795 5.531.441 6.208z" fill="#ff9ee1" transform="matrix(3.909 0 0 3.9094 -339.132 46.653)"/> - <path d="M198.96 48.904c.221 0 .648-.088.648.206M198.52 50.316c.265-.191.736.03 1.206-.25M198.99 51.493c.353 0 .824-.015 1.265-.368M199.43 52.464c.324 0 .927-.206 1.074-.632M199.52 53.141c.632-.03 1.471.206 1.588-.015M199.55 55.23c.441-.412 1.486-.691 1.721-1.118M200.67 48.669c.735.235.431.69.794.971.648.5.059 1.06.589 1.206.529.147.52.237.382.824-.162.692.5.72.265 1.177M204.7 52.406c-.294 0-1.162.03-1.53.81M198.42 60.894c.339.059.508-.134.603-.324.103-.206.147-.353.456-.367.309-.015.78-.103.883-.339.103-.235.471-.015.78-.632.309-.618.515-1.354 1.338-1.619" fill="none" transform="matrix(3.909 0 0 3.9094 -339.132 46.653)"/> - </g> - <g stroke="#000" stroke-width=".091"> - <path d="M221.76 73.75c.333.484-.012 1.007.553 1.216.662.245.084 1.116.865 1.422.692.273.005 1.105.753 1.479.669.334-.112 1.115.781 1.562.892.446-.168 1.45.502 1.84.669.391-.223 1.395.558 1.786.781.39-.335 1.171.39 1.729.725.558-.167 1.394.558 1.896s-.445 1.173.279 1.897c.558.558-.201 1.104.223 1.953.279.557-.279 2.789-1.841 2.566-.558.948-2.733 1.785-3.514 1.506-.781.558-3.291 1.339-4.575.111-1.282 1.228-3.793.447-4.574-.111-.781.279-2.956-.558-3.514-1.506-1.562.223-2.12-2.009-1.841-2.566.424-.849-.335-1.395.223-1.953.724-.724-.446-1.394.279-1.897s-.167-1.338.558-1.896c.725-.558-.391-1.339.39-1.73.781-.39-.111-1.394.558-1.785.67-.39-.39-1.394.502-1.84.893-.447.112-1.228.781-1.562.748-.374.061-1.206.753-1.479.781-.306.203-1.177.865-1.422.574-.212.208-.749.57-1.24 1.661.654 6.803 1.123 8.918.024z" fill="#00a728" transform="matrix(3.909 0 0 3.9094 -339.132 46.653)"/> - <g fill-opacity=".996" fill="#fdc300"> - <path d="M213.51 76.668c.001.25-.005.5-.237.809-.502.67.223 1.004-.335 1.73-.557.724.112 1.17-.502 1.784-.613.614.112 1.172-.502 1.841-.613.67.112 1.116-.502 1.73-.613.613.112 1.283-.502 1.896-.613.614.112 1.395-.558 2.12-.669.725.112 1.283-.446 1.84-.558.559-.056 1.116-.446 1.507.669-.502.669-1.283 1.171-1.674.502-.39-.167-.948.112-1.227s.056-1.45.558-2.008.056-1.674.502-2.064.111-1.562.669-1.952 0-1.34.446-1.841c.447-.502 0-1.283.447-1.897.446-.614.02-1.17.334-1.673.14-.224.14-1.841-.209-.921zM215.12 77.365c-.39.725.279.892-.223 1.618s.279 1.283-.279 2.008.279 1.115-.223 1.84c-.502.726.223 1.116-.223 1.674-.447.558.334 1.116-.223 1.785-.558.67.223 1.172-.224 1.785-.446.614.168 1.283-.223 1.785-.39.502.279 1.228-.279 1.897s.112 1.116-.223 1.562c.67-.223.419-1.144.67-1.339.251-.195-.084-1.478.306-1.813.391-.334-.251-1.367.112-1.813.614-.753.084-1.255.446-1.84.363-.586-.138-1.338.14-1.73.474-.67-.21-1.273.139-1.757.502-.697-.097-1.272.251-1.73.53-.697-.056-1.394.168-1.757.223-.362.585-1.924-.112-2.175zM217.29 77.974c-.39.972.279 1.36.056 2.138-.223.778.279 1.361-.056 2.203-.334.843.447 1.49 0 2.592-.446 1.102.288 1.376 0 2.463-.334 1.263.558 1.933 0 2.825-.557.893.639 1.188.056 2.12-.279.446.028 1.59.474.223.447-1.366-.334-1.534.056-2.092.391-.558-.139-2.036.028-2.817.168-.78-.39-1.84-.028-2.677.363-.837-.558-1.73-.195-2.455.363-.725-.167-1.618.167-2.203.335-.586-.251-1.367-.111-1.702.139-.334-.14-1.57-.447-.618z" transform="matrix(3.909 0 0 3.9094 -339.132 46.653)"/> - </g> - <path d="M221.47 74.408c0-6.303-.892-8.479-4.184-8.479-3.291 0-4.183 2.175-4.183 8.479h8.367z" fill="#ef072d" transform="matrix(3.909 0 0 3.9094 -339.132 46.653)"/> - <g fill="none"> - <path d="M214.33 73.906c-.614.614.112 1.06-.502 1.785-.614.725-.056 1.116-.558 1.785s.223 1.004-.335 1.73c-.557.725.112 1.17-.502 1.784-.613.614.112 1.172-.502 1.841-.613.67.112 1.116-.502 1.73-.613.613.112 1.283-.502 1.896-.613.614.112 1.395-.558 2.12-.669.725.112 1.283-.446 1.84-.558.559-.056 1.117-.446 1.507-.391.39-.446.935-.279 1.172M215.5 74.129c-.557.725.279 1.06-.223 1.673-.502.614.223.837-.167 1.563s.279.892-.223 1.617.279 1.283-.279 2.008.279 1.116-.223 1.841c-.502.725.223 1.116-.223 1.674-.447.558.334 1.115-.223 1.785-.558.67.223 1.171-.224 1.785-.446.614.168 1.283-.223 1.785-.39.502.279 1.227-.279 1.897s.112 1.115-.223 1.562c-.335.446-.599 1.101-.279 1.283M217.29 74.799c-.278 1.166.391 2.203 0 3.175-.39.972.279 1.36.056 2.138-.223.778.279 1.361-.056 2.203-.334.843.447 1.49 0 2.592-.446 1.102.288 1.376 0 2.463-.334 1.263.558 1.933 0 2.825-.557.893.503 1.116.056 2.12-.446 1.004.279 1.395-.056 2.399M220.25 73.906c.614.614-.112 1.06.502 1.785.614.725.056 1.116.558 1.785s-.223 1.004.335 1.73c.557.725-.112 1.17.502 1.784.613.614-.112 1.172.502 1.841.613.67-.112 1.116.502 1.73.613.613-.112 1.283.502 1.896.613.614-.112 1.395.558 2.12.669.725-.112 1.283.446 1.84.558.559.056 1.117.446 1.507.391.39.447.935.279 1.172M219.08 74.129c.557.725-.279 1.06.223 1.673.502.614-.223.837.167 1.563.391.725-.279.892.223 1.617s-.279 1.283.279 2.008-.279 1.116.223 1.841c.502.725-.223 1.116.223 1.674.447.558-.334 1.115.224 1.785.557.67-.224 1.171.223 1.785.446.614-.168 1.283.223 1.785.39.502-.279 1.227.279 1.897s-.112 1.115.223 1.562c.335.446.6 1.101.279 1.283" transform="matrix(3.909 0 0 3.9094 -339.132 46.653)"/> - </g> - <path d="M213.11 74.408c0-6.303.892-8.479 4.183-8.479-1.506 0-2.426 1.171-2.677 1.952s-.112.725.223.419.167.362-.111.725c-.279.362-.558 1.394-.168 1.06.391-.335.697.056.279.641s-.781 1.953-.363 1.479c.419-.475.502.306.252.697-.252.39-.224.725 0 .558.223-.168.195.641-.028.948h-1.59zM220.83 74.046c0-4.937-.613-6.415-1.84-6.917-.695-.285-.715-.223-.383.223s.281 1.088-.026.641c-.306-.446-.408-.53-.536-.334-.128.195.357 1.115.715 1.952.288.673.102 1.004-.332.335s-.434-.063-.053.502c.489.725.474 2.929.474 3.849l1.981-.251z" transform="matrix(3.909 0 0 3.9094 -339.132 46.653)"/> - <path d="M217.29 75.329c1.311 0 2.746-.234 3.71-.608 1.144-.444 1.205-.834.809-1.332-.279-.351-.893-.14-1.478.117-.586.257-2.204.42-3.041.42-.836 0-2.454-.163-3.04-.42-.585-.258-1.199-.468-1.478-.117-.396.498-.335.888.809 1.332.963.374 2.399.608 3.709.608z" fill="#ef072d" transform="matrix(3.909 0 0 3.9094 -339.132 46.653)"/> - </g> - <g fill-rule="evenodd" fill="#b95a1e"> - <path d="M779.41 912.6s-.12 103.6 0 179.24c.12 75.63 19.822 104.91 54.262 103.59 34.44-1.33 41.108-58.83 34.531-92.08-6.577-33.26-53.24-198.97-53.24-198.97l-35.553 8.222z" transform="matrix(.053 -.03423 .03246 .0559 489.023 284.185)" stroke="#000" stroke-width="6.377"/> - <path d="M779.41 912.6s-.12 103.6 0 179.24c.12 75.63 19.822 104.91 54.262 103.59 34.44-1.33 41.108-58.83 34.531-92.08-6.577-33.26-53.24-198.97-53.24-198.97l-35.553 8.222z" transform="matrix(.0608 -.01361 .0129 .06412 499.988 261.06)" stroke="#000" stroke-width="6.377"/> - <path d="M779.41 912.6s-.12 103.6 0 179.24c.12 75.63 19.822 104.91 54.262 103.59 34.44-1.33 41.108-58.83 34.531-92.08-6.577-33.26-53.24-198.97-53.24-198.97l-35.553 8.222z" transform="matrix(.06216 0 0 .06555 509.298 249.353)" stroke="#000" stroke-width="6.377"/> - <path d="M779.53 255.12c159.57-1.394 177.16-35.432 177.16-35.432s35.43-70.866 17.716-88.584c-17.717-17.716-194.88-17.716-194.88-17.716v141.73z" transform="matrix(.03857 0 0 .06555 527.683 292.32)" stroke="#000" stroke-width="8.095"/> - <path d="M779.53 255.12c106.3 0 124.02-35.432 124.02-35.432s35.43-70.866 17.716-88.584c-17.717-17.716-141.73-17.716-141.73-17.716v141.73z" transform="matrix(.06216 0 0 .06555 509.298 287.673)" stroke="#000" stroke-width="6.377"/> - <path d="M779.53 255.12c88.583 0 141.73-35.433 141.73-35.433s35.43-70.866 17.716-88.584c-17.72-17.72-159.45-17.71-159.45-17.71v141.73z" transform="matrix(.06216 0 0 .06555 509.298 283.026)" stroke="#000" stroke-width="6.377"/> - <path d="M832.68 113.39s70.866-88.583 194.88-177.17c124.01-88.582 213.73-156.72 230.31-141.73 0 17.717-106.3 106.3-194.88 177.17C974.4 42.52 868.1 148.82 868.1 148.82l-35.433-35.433z" transform="matrix(.07714 0 0 .06555 497.232 249.488)" stroke="#000" stroke-width="5.724"/> - <path d="M832.68 113.39s70.05-52.025 204.38-124.02c132.23-63.918 318.89-53.15 318.89-35.433-17.71 17.716-177.16 17.716-283.46 70.866-101.48 50.729-204.39 124.01-204.39 124.01l-35.433-35.433z" transform="matrix(.07714 0 0 .06555 497.87 254.135)" stroke="#000" stroke-width="5.724"/> - <path d="M832.68 113.39s61.675-35.068 204.38-88.583c141.72-53.15 329.87-17.717 329.87 0-17.7 17.713-170.4 6.944-276.7 35.429-109.99 27.758-222.09 88.584-222.09 88.584l-35.433-35.433z" transform="matrix(.07714 0 0 .06555 497.93 262.135)" stroke="#000" stroke-width="5.724"/> - <path d="M832.68 113.39s71.079-70.976 222.47-88.583c152.3-17.72 276.3 88.583 276.3 106.29-17.7 17.72-159.5-77.972-265.7-64.286-112.67 13.654-197.69 82.006-197.69 82.006l-35.433-35.433z" transform="matrix(.07714 0 0 .06555 498.45 270.253)" stroke="#000" stroke-width="5.724"/> - <path d="M779.53 255.12c159.57-1.394 159.45-45.508 159.45-45.508s35.43-70.866 17.716-88.584c-17.717-17.716-177.16-7.64-177.16-7.64v141.73z" transform="matrix(.06216 0 0 .06555 509.298 277.227)" stroke="#000" stroke-width="6.377"/> - <path d="M779.53 255.12c159.57-1.394 177.16-35.432 177.16-35.432s35.43-70.866 17.716-88.584c-17.717-17.716-194.88-17.716-194.88-17.716v141.73z" transform="matrix(.06216 0 0 .06555 509.298 272.58)" stroke="#000" stroke-width="6.377"/> - <path d="M779.53 255.12c159.57-1.394 194.88-35.433 194.88-35.433s35.43-70.866 17.716-88.583c-17.717-17.716-212.6-17.716-212.6-17.716v141.73z" transform="matrix(.06216 0 0 .06555 509.298 266.774)" stroke="#000" stroke-width="6.377"/> - <path d="M779.53 255.12c159.57-1.394 212.6-35.433 212.6-35.433s17.714-70.866 0-88.583c-17.717-17.716-212.6-17.716-212.6-17.716v141.73z" transform="matrix(.06216 0 0 .06555 509.298 260.967)" stroke="#000" stroke-width="6.377"/> - <path d="M832.68 113.39S946.89 24.807 946.89-46.06c0-70.866-50.349-141.73-64.625-177.17 28.552 0 93.176 106.3 93.176 177.17 0 77.444-107.32 194.88-107.32 194.88l-35.433-35.433z" transform="matrix(.07714 0 0 .06555 495.728 244.706)" stroke="#000" stroke-width="5.724"/> - <path d="M832.68 113.39s-14.276-53.15-14.276-159.45c0-124.02 63.001-202.89 85.654-230.32 5.898 27.422-57.102 124.02-57.102 230.32 0 77.444 21.157 194.88 21.157 194.88l-35.433-35.433z" transform="matrix(.07714 0 0 .06555 495.728 244.706)" stroke="#000" stroke-width="5.724"/> - <path d="M779.53 255.12c159.57-1.394 212.6-35.433 212.6-35.433s0-70.866-17.716-88.583c-17.717-17.716-194.88-17.716-194.88-17.716v141.73z" transform="matrix(.06216 0 0 .06555 509.298 255.16)" stroke="#000" stroke-width="6.377"/> - <path d="M779.53 255.12c159.57-1.394 194.88-35.433 194.88-35.433s0-70.866-17.716-88.583c-17.717-17.716-177.16-17.716-177.16-17.716v141.73z" transform="matrix(.06216 0 0 .06555 509.298 249.353)" stroke="#000" stroke-width="6.377"/> - <path d="M318.9 1318.1c55.065-122.32 70.866-336.61 70.866-372.05 0-99.782-32.948-585.11-35.433-779.53s124.02-301.18 248.03-301.18c106.3 0 177.17 70.866 177.17 177.17h-53.15c0-70.866-53.15-124.02-124.02-124.02-106.3 0-187.99 83.739-194.88 248.03-7.605 189.89 21.316 682.94 17.717 814.96s-51.234 249.72-106.3 336.61z" transform="matrix(-.06216 0 0 .06555 606.204 249.353)" stroke="#fdc301" stroke-width="16.071"/> - <path d="M779.41 912.6s-.12 103.6 0 179.24c.12 75.63 19.822 104.91 54.262 103.59 34.44-1.33 41.108-58.83 34.531-92.08-6.577-33.26-53.24-198.97-53.24-198.97l-35.553 8.222z" transform="matrix(-.053 -.03423 -.03246 .0559 626.48 284.185)" stroke="#000" stroke-width="6.377"/> - <path d="M779.53 32.884c124.13.141 177.77 102.39 177.46 100.31l-35.734 33.347c-18.985 17.717-141.73 17.717-140.21 17.626l-1.52-151.29z" transform="matrix(.06216 0 0 .06555 509.298 249.353)" stroke="#000" stroke-width="6.377"/> - <path d="M779.41 912.6s-.12 103.6 0 179.24c.12 75.63 19.822 104.91 54.262 103.59 34.44-1.33 41.108-58.83 34.531-92.08-6.577-33.26-53.24-198.97-53.24-198.97l-35.553 8.222z" transform="matrix(-.0608 -.01361 -.0129 .06412 615.506 261.06)" stroke="#000" stroke-width="6.377"/> - <path d="M779.41 912.6s-.12 103.6 0 179.24c.12 75.63 19.822 104.91 54.262 103.59 34.44-1.33 41.108-58.83 34.531-92.08-6.577-33.26-53.24-198.97-53.24-198.97l-35.553 8.222z" transform="matrix(-.06216 0 0 .06555 606.196 249.353)" stroke="#000" stroke-width="6.377"/> - <path d="M779.53 255.12c159.57-1.394 177.16-35.432 177.16-35.432s35.43-70.866 17.716-88.584c-17.717-17.716-194.88-17.716-194.88-17.716v141.73z" transform="matrix(-.03857 0 0 .06555 587.811 292.32)" stroke="#000" stroke-width="8.095"/> - <path d="M779.53 255.12c106.3 0 124.02-35.432 124.02-35.432s35.43-70.866 17.716-88.584c-17.717-17.716-141.73-17.716-141.73-17.716v141.73z" transform="matrix(-.06216 0 0 .06555 606.196 287.673)" stroke="#000" stroke-width="6.377"/> - <path d="M779.53 255.12c88.583 0 141.73-35.433 141.73-35.433s35.43-70.866 17.716-88.584c-17.72-17.72-159.45-17.71-159.45-17.71v141.73z" transform="matrix(-.06216 0 0 .06555 606.196 283.026)" stroke="#000" stroke-width="6.377"/> - <path d="M832.68 113.39s70.866-88.583 194.88-177.17c124.01-88.582 213.73-156.72 230.31-141.73 0 17.717-106.3 106.3-194.88 177.17C974.4 42.52 868.1 148.82 868.1 148.82l-35.433-35.433z" transform="matrix(-.07714 0 0 .06555 618.262 249.488)" stroke="#000" stroke-width="5.724"/> - <path d="M832.68 113.39s70.05-52.025 204.38-124.02c132.23-63.918 318.89-53.15 318.89-35.433-17.71 17.716-177.16 17.716-283.46 70.866-101.48 50.729-204.39 124.01-204.39 124.01l-35.433-35.433z" transform="matrix(-.07714 0 0 .06555 617.632 254.135)" stroke="#000" stroke-width="5.724"/> - <path d="M832.68 113.39s61.675-35.068 204.38-88.583c141.72-53.15 329.87-17.717 329.87 0-17.7 17.713-170.4 6.944-276.7 35.429-109.99 27.758-222.09 88.584-222.09 88.584l-35.433-35.433z" transform="matrix(-.07714 0 0 .06555 617.573 262.135)" stroke="#000" stroke-width="5.724"/> - <path d="M832.68 113.39s71.079-70.976 222.47-88.583c152.3-17.72 276.3 88.583 276.3 106.29-17.7 17.72-159.5-77.972-265.7-64.286-112.67 13.654-197.69 82.006-197.69 82.006l-35.433-35.433z" transform="matrix(-.07714 0 0 .06555 617.052 270.253)" stroke="#000" stroke-width="5.724"/> - <path d="M779.53 255.12c159.57-1.394 159.45-45.508 159.45-45.508s35.43-70.866 17.716-88.584c-17.717-17.716-177.16-7.64-177.16-7.64v141.73z" transform="matrix(-.06216 0 0 .06555 606.196 277.227)" stroke="#000" stroke-width="6.377"/> - <path d="M779.53 255.12c159.57-1.394 177.16-35.432 177.16-35.432s35.43-70.866 17.716-88.584c-17.717-17.716-194.88-17.716-194.88-17.716v141.73z" transform="matrix(-.06216 0 0 .06555 606.196 272.58)" stroke="#000" stroke-width="6.377"/> - <path d="M779.53 255.12c159.57-1.394 194.88-35.433 194.88-35.433s35.43-70.866 17.716-88.583c-17.717-17.716-212.6-17.716-212.6-17.716v141.73z" transform="matrix(-.06216 0 0 .06555 606.196 266.774)" stroke="#000" stroke-width="6.377"/> - <path d="M779.53 255.12c159.57-1.394 212.6-35.433 212.6-35.433s17.714-70.866 0-88.583c-17.717-17.716-212.6-17.716-212.6-17.716v141.73z" transform="matrix(-.06216 0 0 .06555 606.196 260.967)" stroke="#000" stroke-width="6.377"/> - <path d="M832.68 113.39S946.89 24.807 946.89-46.06c0-70.866-50.349-141.73-64.625-177.17 28.552 0 93.176 106.3 93.176 177.17 0 77.444-107.32 194.88-107.32 194.88l-35.433-35.433z" transform="matrix(-.07714 0 0 .06555 619.775 244.706)" stroke="#000" stroke-width="5.724"/> - <path d="M832.68 113.39s-14.276-53.15-14.276-159.45c0-124.02 63.001-202.89 85.654-230.32 5.898 27.422-57.102 124.02-57.102 230.32 0 77.444 21.157 194.88 21.157 194.88l-35.433-35.433z" transform="matrix(-.07714 0 0 .06555 619.775 244.706)" stroke="#000" stroke-width="5.724"/> - <path d="M779.53 255.12c159.57-1.394 212.6-35.433 212.6-35.433s0-70.866-17.716-88.583c-17.717-17.716-194.88-17.716-194.88-17.716v141.73z" transform="matrix(-.06216 0 0 .06555 606.196 255.16)" stroke="#000" stroke-width="6.377"/> - <path d="M779.53 255.12c159.57-1.394 194.88-35.433 194.88-35.433s0-70.866-17.716-88.583c-17.717-17.716-177.16-17.716-177.16-17.716v141.73z" transform="matrix(-.06216 0 0 .06555 606.196 249.353)" stroke="#000" stroke-width="6.377"/> - <path d="M318.9 1318.1c55.065-122.32 70.866-336.61 70.866-372.05 0-99.782-32.948-585.11-35.433-779.53s124.02-301.18 248.03-301.18c106.3 0 177.17 70.866 177.17 177.17h-53.15c0-70.866-53.15-124.02-124.02-124.02-106.3 0-187.99 83.739-194.88 248.03-7.605 189.89 21.316 682.94 17.717 814.96s-51.234 249.72-106.3 336.61z" transform="matrix(.06216 0 0 .06555 509.29 249.353)" stroke="#fdc301" stroke-width="16.071"/> - <path d="M779.53 32.884c124.13.141 177.77 102.39 177.46 100.31l-35.734 33.347c-18.985 17.717-141.73 17.717-140.21 17.626l-1.52-151.29z" transform="matrix(-.06216 0 0 .06555 606.196 249.353)" stroke="#000" stroke-width="6.377"/> - </g> - </g> -</svg> diff --git a/img/flags/4x3/td.svg b/img/flags/4x3/td.svg deleted file mode 100644 index c164532..0000000 --- a/img/flags/4x3/td.svg +++ /dev/null @@ -1,7 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" height="480" width="640" viewBox="0 0 640 480"> - <g fill-rule="evenodd"> - <path fill="#000067" d="M0 0h213.97v480H0z"/> - <path fill="red" d="M426.03 0H640v480H426.03z"/> - <path fill="#ff0" d="M213.97 0h212.06v480H213.97z"/> - </g> -</svg> diff --git a/img/flags/4x3/tf.svg b/img/flags/4x3/tf.svg deleted file mode 100644 index d3253ec..0000000 --- a/img/flags/4x3/tf.svg +++ /dev/null @@ -1,15 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" height="480" width="640" viewBox="0 0 640 480"> - <defs> - <path d="M0-21l12.344 37.99-32.316-23.48h39.944l-32.316 23.48z" fill="#fff" id="a"/> - </defs> - <path fill="#002395" d="M0 0h640v480H0z"/> - <path fill="#fff" d="M0 0h292.8v196.8H0z"/> - <path fill="#002395" d="M0 0h96v192H0z"/> - <path fill="#ed2939" d="M192 0h96v192h-96z"/> - <path d="M426 219.6l15.45 24.6h43.95V330l-33-51.6-44.4 70.8h21.6l22.8-40.8 46.8 84 46.8-84 22.8 40.8h21.6L546 278.4 513 330v-47.4h19.8l14.7-23.4H513v-15h43.95l15.45-24.6H426zm51.6 105h-48v16.8h48zm91.2 0h-48v16.8h48z" fill="#fff"/> - <use height="100%" width="100%" xlink:href="#a" x="416" y="362" transform="scale(1.2)"/> - <use height="100%" width="100%" xlink:href="#a" x="371" y="328" transform="scale(1.2)"/> - <use height="100%" width="100%" xlink:href="#a" x="461" y="328" transform="scale(1.2)"/> - <use height="100%" width="100%" xlink:href="#a" x="333" y="227" transform="scale(1.2)"/> - <use height="100%" width="100%" xlink:href="#a" x="499" y="227" transform="scale(1.2)"/> -</svg> diff --git a/img/flags/4x3/tg.svg b/img/flags/4x3/tg.svg deleted file mode 100644 index 85dfe93..0000000 --- a/img/flags/4x3/tg.svg +++ /dev/null @@ -1,14 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" height="480" width="640" viewBox="0 0 640 480"> - <defs> - <clipPath id="a"> - <path fill-opacity=".67" d="M0 0h682.67v512H0z"/> - </clipPath> - </defs> - <g clip-path="url(#a)" fill-rule="evenodd" transform="scale(.9375)"> - <path fill="#ffe300" d="M0 0h767.63v512H0z"/> - <path fill="#118600" d="M0 208.14h767.63v102.81H0zM0 .248h767.63v102.81H0z"/> - <path fill="#d80000" d="M0 .248h306.51v310.71H0z"/> - <path d="M134.42 128.43c0-.856 18.836-53.083 18.836-53.083l17.124 52.227s57.365 1.713 57.365.856-45.378 34.248-45.378 34.248 21.404 59.933 20.549 58.221c-.856-1.712-49.659-35.96-49.659-35.96s-49.658 34.248-48.802 34.248c.856 0 18.835-56.508 18.835-56.508l-44.522-33.392 55.652-.856z" fill="#fff"/> - <path fill="#118600" d="M0 409.19h767.63V512H0z"/> - </g> -</svg> diff --git a/img/flags/4x3/th.svg b/img/flags/4x3/th.svg deleted file mode 100644 index 33d9b64..0000000 --- a/img/flags/4x3/th.svg +++ /dev/null @@ -1,7 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" height="480" width="640" viewBox="0 0 640 480"> - <g fill-rule="evenodd"> - <path fill="#fff" d="M0 0h640v480H0z"/> - <path fill="#001b9a" d="M0 162.544h640v160.003H0z"/> - <path fill="#e70000" d="M0 .042h640v82.5H0zM0 400.003h640v80H0z"/> - </g> -</svg> diff --git a/img/flags/4x3/tj.svg b/img/flags/4x3/tj.svg deleted file mode 100644 index 18da611..0000000 --- a/img/flags/4x3/tj.svg +++ /dev/null @@ -1,22 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" height="480" width="640" viewBox="0 0 640 480"> - <path fill="#060" d="M0 0h640v480H0z"/> - <path fill="#fff" d="M0 0h640v342.857H0z"/> - <path fill="#c00" d="M0 0h640v137.143H0z"/> - <path d="M300.8 233.623a8.571 8.571 0 0 1 15.977 4.046v34.285h6.446V237.67a8.571 8.571 0 0 1 15.977-4.046 20.229 20.229 0 1 0-38.4 0" fill="#f8c300"/> - <path d="M305.394 224.674A13.714 13.714 0 0 1 320 231.223a13.714 13.714 0 0 1 14.606-6.549 14.743 14.743 0 0 0-29.212 0" fill="#fff"/> - <path d="M316.777 258.259a26.057 26.057 0 0 1-43.78 16.673 27.086 27.086 0 0 1-40.96 11.978c2.503 24.978 39.944 19.878 42.734-4.409 11.763 20.65 37.627 14.736 45.195-10.56z" id="a" fill="#f8c300"/> - <use transform="matrix(-1 0 0 1 640 0)" xlink:href="#a" width="100%" height="100%" fill="#f8c300"/> - <path d="M291.776 302.613c-5.224 11.277-15.665 13.214-24.798 4.11 0 0 3.671-2.593 7.602-3.309-.737-3.136.774-7.475 2.904-9.822 2.234 1.527 5.351 4.587 6.144 8.142 5.505-.712 8.148.88 8.148.88z" id="b" fill="#f8c300"/> - <use transform="rotate(9.37 320 551.314)" xlink:href="#b" width="100%" height="100%" fill="#f8c300"/> - <use transform="rotate(18.74 320 551.314)" xlink:href="#b" width="100%" height="100%" fill="#f8c300"/> - <path d="M253.486 327.771a233.143 233.143 0 0 1 133.028 0" fill="none" stroke="#f8c300" stroke-width="10.971"/> - <g transform="matrix(.68571 0 0 .68571 320 164.571)" fill="#f8c300"> - <path id="c" transform="scale(.00005)" d="M301930 415571l-790463-574305h977066l-790463 574305L0-513674z"/> - </g> - <g id="d" transform="matrix(.68571 0 0 .68571 320 260.571)" fill="#f8c300"> - <use height="100%" width="100%" xlink:href="#c" transform="translate(-70 -121.244)"/> - <use height="100%" width="100%" xlink:href="#c" transform="translate(-121.244 -70)"/> - <use height="100%" width="100%" xlink:href="#c" transform="translate(-140)"/> - </g> - <use height="100%" width="100%" xlink:href="#d" transform="matrix(-1 0 0 1 640 0)" fill="#f8c300"/> -</svg> diff --git a/img/flags/4x3/tk.svg b/img/flags/4x3/tk.svg deleted file mode 100644 index 484d854..0000000 --- a/img/flags/4x3/tk.svg +++ /dev/null @@ -1,5 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" height="480" width="640" viewBox="0 0 640 480"> - <path d="M0 0h640v480H0z" fill="#00247d"/> - <path d="M108.1 354.6c-6.7-.1 62.8-37 120.9-84.4 76.2-62.1 240.3-161.4 288.6-177.6 5-1.7-10.3 8.6-12.3 11.9-51.5 61-10.4 176 54 233.9 19.4 14.8 18.4 15.6 54.3 17v3.4l-505.5-4.2zm-4.2 6.7s-4.9 3.5-4.9 6.1c0 2.9 5.5 6.7 5.5 6.7l498.5 5.5 9.2-6.1-12.8-7.9-495.5-4.3z" fill="#fed100"/> - <path d="M106.8 109.1l-4 12.2 10.4-7.5 10.3 7.5-3.9-12.2 10.3-7.5h-12.8l-3.9-12.2-4 12.2H96.4zm78.1 57.4l8.6-6.3h-10.7l-3.3-10.1-3.3 10.1h-10.6l8.6 6.3-3.3 10.1 8.6-6.3 8.7 6.3zm-145.2 13l-4-12.2-3.9 12.2H19l10.3 7.5-3.9 12.2 10.3-7.5 10.4 7.5-4-12.2 10.4-7.5zm78.1 122.3l-4.6-14.2-4.6 14.2h-15l12.1 8.7-4.6 14.3 12.1-8.8 12.1 8.8-4.7-14.3 12.1-8.7z" fill="#fff"/> -</svg> diff --git a/img/flags/4x3/tl.svg b/img/flags/4x3/tl.svg deleted file mode 100644 index 47b8491..0000000 --- a/img/flags/4x3/tl.svg +++ /dev/null @@ -1,13 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" height="480" width="640" viewBox="0 0 640 480"> - <defs> - <clipPath id="a"> - <path fill-opacity=".67" d="M0 0h682.67v512H0z"/> - </clipPath> - </defs> - <g clip-path="url(#a)" fill-rule="evenodd" transform="scale(.9375)"> - <path fill="#cb000f" d="M0 0h1031.2v512H0z"/> - <path d="M0 0c3.234 0 512 256.72 512 256.72L0 512V0z" fill="#f8c00c"/> - <path d="M0 0c2.151 0 340.62 256.72 340.62 256.72L0 512V0z"/> - <path d="M187.71 298.16l-60.813-13.478-31.072 52.839-4.861-59.677-60.753-13.372 54.84-24.817-3.292-59.385 40.235 43.39 55.341-25.232-28.827 53.899 39.203 45.835z" fill="#fff"/> - </g> -</svg> diff --git a/img/flags/4x3/tm.svg b/img/flags/4x3/tm.svg deleted file mode 100644 index e7b858c..0000000 --- a/img/flags/4x3/tm.svg +++ /dev/null @@ -1,221 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" height="480" width="640" viewBox="0 0 640 480"> - <defs> - <clipPath id="a"> - <path fill-opacity=".67" d="M42.666 0h682.67v512H42.666z"/> - </clipPath> - </defs> - <g fill-rule="evenodd" clip-path="url(#a)" transform="translate(-40) scale(.9375)"> - <path fill="#28ae66" d="M0 0h768v512H0z"/> - <g stroke-width="1pt"> - <path d="M263.306 137.494c27.9 13.453 61.12-.064 73.139-18.637 12.323-17.332 13.836-46.437-7.468-73.14 33.07 27.425 40.379 58.513 23.927 84.113-21.944 29.254-70.627 28.407-89.598 7.664z" fill="#fff"/> - <path fill="#fff" d="M312.835 69.431l5.614.072-4.443 3.528 1.666 5.52-4.633-3.263-4.587 3.339 1.583-5.543-4.499-3.453 5.61-.167 1.8-5.473zM285.123 104.173l5.615.071-4.444 3.529 1.666 5.519-4.633-3.262-4.587 3.338 1.583-5.543-4.499-3.452 5.61-.167 1.8-5.474zM286.95 76.753l5.614.071-4.443 3.529 1.666 5.52-4.633-3.263-4.587 3.338 1.583-5.543-4.499-3.452 5.61-.167 1.8-5.474zM286.95 49.317l5.614.072-4.443 3.528 1.666 5.52-4.633-3.263-4.587 3.339 1.583-5.543-4.499-3.453 5.61-.166 1.8-5.474zM256.152 84.066l5.615.072-4.444 3.528 1.666 5.52-4.633-3.262-4.587 3.338 1.583-5.543-4.499-3.453 5.61-.166 1.8-5.474z"/> - </g> - <path fill="#ca3745" d="M47.542 0H212.11v511.984H47.542z"/> - <g stroke-width="1pt" fill="#faae29"> - <path d="M47.542 133.481v-3.657l6.803-9.143-1.371-1.828 4.114-5.486-1.371-1.828-2.743 3.657-1.372-1.829 9.6-12.8 1.371 1.83-1.37 1.828 2.826 3.694 6.773-9.18-6.887-8.896-2.713 3.41 1.371 1.83-1.37 1.828-9.6-12.8 1.37-1.828 2.744 3.657 1.37-1.829-4.113-5.486 1.371-1.828-6.803-9.142v-3.658l9.546 12.8-1.371 1.828 4.114 5.486-2.743 3.657 2.743 3.657 4.114-5.485 9.654 13.017-9.654 12.582-4.114-5.486-2.743 3.658 2.743 3.656-4.114 5.486 1.37 1.828-9.545 12.8z"/> - <path d="M47.541 87.77l1.372 3.656v5.486h4.114l2.743 1.828-2.743 1.829h-4.114v5.485l-1.372 3.658V87.769z"/> - </g> - <g stroke-width="1pt" fill="#faae29"> - <path d="M47.542 221.25v-3.657l6.803-9.143-1.371-1.828 4.114-5.486-1.371-1.828-2.743 3.657-1.372-1.829 9.6-12.8 1.371 1.829-1.37 1.829 2.826 3.694 6.773-9.18-6.887-8.896-2.713 3.41 1.371 1.829-1.37 1.828-9.6-12.8 1.37-1.828 2.744 3.658 1.37-1.83-4.113-5.485 1.371-1.828-6.803-9.143v-3.657l9.546 12.8-1.371 1.828 4.114 5.486-2.743 3.657 2.743 3.657 4.114-5.485 9.654 13.017-9.654 12.582-4.114-5.486-2.743 3.657 2.743 3.657-4.114 5.486 1.37 1.828-9.545 12.8z"/> - <path d="M47.541 175.538l1.372 3.657v5.485h4.114l2.743 1.83-2.743 1.828h-4.114v5.485l-1.372 3.657v-21.942z"/> - </g> - <g stroke-width="1pt" fill="#faae29"> - <path d="M47.543 309.02v-3.657l6.803-9.143-1.371-1.828 4.114-5.486-1.371-1.828-2.743 3.656-1.372-1.828 9.6-12.8 1.371 1.829-1.37 1.829 2.826 3.694 6.773-9.18-6.887-8.897-2.713 3.411 1.371 1.829-1.37 1.828-9.6-12.8 1.37-1.828 2.744 3.657 1.37-1.828-4.113-5.486 1.371-1.828-6.803-9.143v-3.657l9.546 12.8-1.371 1.828 4.114 5.486-2.743 3.657 2.743 3.657 4.114-5.486 9.654 13.018-9.654 12.582-4.114-5.486-2.743 3.657 2.743 3.657-4.114 5.486 1.37 1.828-9.545 12.8z"/> - <path d="M47.542 263.308l1.372 3.657v5.485h4.114l2.743 1.829-2.743 1.828h-4.114v5.486l-1.372 3.657v-21.942z"/> - </g> - <g stroke-width="1pt" fill="#faae29"> - <path d="M47.543 391.3v-3.657l6.803-9.143-1.371-1.828 4.114-5.486-1.371-1.828-2.743 3.656-1.372-1.828 9.6-12.8 1.371 1.829-1.37 1.829 2.826 3.694 6.773-9.18-6.887-8.897-2.713 3.411 1.371 1.829-1.37 1.828-9.6-12.8 1.37-1.828 2.744 3.657 1.37-1.828-4.113-5.486 1.371-1.828-6.803-9.143v-3.657l9.546 12.8-1.371 1.828 4.114 5.486-2.743 3.657 2.743 3.657 4.114-5.486 9.654 13.018-9.654 12.582-4.114-5.486-2.743 3.657 2.743 3.657-4.114 5.486 1.37 1.828-9.545 12.8z"/> - <path d="M47.542 345.588l1.372 3.657v5.485h4.114l2.743 1.83-2.743 1.827h-4.114v5.486l-1.372 3.657v-21.942z"/> - </g> - <g stroke-width="1pt" fill="#faae29"> - <path d="M212.106 133.481v-3.657l-6.803-9.143 1.372-1.828-4.114-5.486 1.37-1.828 2.744 3.657 1.371-1.829-9.6-12.8-1.37 1.83 1.37 1.828-2.827 3.694-6.772-9.18 6.886-8.896 2.713 3.41-1.37 1.83 1.37 1.828 9.6-12.8-1.371-1.828-2.743 3.657-1.371-1.829 4.114-5.486-1.372-1.828 6.803-9.142v-3.658l-9.545 12.8 1.37 1.828-4.113 5.486 2.743 3.657-2.743 3.657-4.115-5.485-9.653 13.017 9.653 12.582 4.115-5.486 2.743 3.658-2.743 3.656 4.114 5.486-1.371 1.828 9.545 12.8z"/> - <path d="M212.107 87.77l-1.371 3.656v5.486h-4.114l-2.743 1.828 2.743 1.829h4.114v5.485l1.371 3.658V87.769z"/> - </g> - <g stroke-width="1pt" fill="#faae29"> - <path d="M212.56 221.25v-3.656l-6.803-9.143 1.372-1.828-4.114-5.486 1.371-1.828 2.743 3.657 1.371-1.829-9.6-12.8-1.37 1.829 1.37 1.829-2.826 3.694-6.773-9.18 6.886-8.896 2.714 3.41-1.372 1.829 1.372 1.828 9.6-12.8-1.372-1.828-2.743 3.658-1.371-1.83 4.114-5.485-1.372-1.828 6.803-9.143v-3.657l-9.545 12.8 1.371 1.828-4.114 5.486 2.743 3.657-2.743 3.657-4.114-5.485-9.654 13.017 9.654 12.582 4.114-5.486 2.743 3.657-2.743 3.657 4.114 5.486-1.371 1.828 9.545 12.8z"/> - <path d="M212.561 175.54l-1.371 3.656v5.485h-4.114l-2.743 1.83 2.743 1.828h4.114v5.485l1.371 3.658v-21.943z"/> - </g> - <g stroke-width="1pt" fill="#faae29"> - <path d="M212.106 309.02v-3.657l-6.803-9.143 1.372-1.828-4.114-5.486 1.37-1.828 2.744 3.656 1.371-1.828-9.6-12.8-1.37 1.829 1.37 1.829-2.827 3.694-6.772-9.18 6.886-8.897 2.713 3.411-1.37 1.829 1.37 1.828 9.6-12.8-1.371-1.828-2.743 3.657-1.371-1.828 4.114-5.486-1.372-1.828 6.803-9.143v-3.657l-9.545 12.8 1.37 1.828-4.113 5.486 2.743 3.657-2.743 3.657-4.115-5.486-9.653 13.018 9.653 12.582 4.115-5.486 2.743 3.657-2.743 3.657 4.114 5.486-1.371 1.828 9.545 12.8z"/> - <path d="M212.107 263.308l-1.371 3.657v5.485h-4.114l-2.743 1.829 2.743 1.828h4.114v5.486l1.371 3.657v-21.942z"/> - </g> - <g stroke-width="1pt" fill="#faae29"> - <path d="M212.106 391.3v-3.657l-6.803-9.143 1.372-1.828-4.114-5.486 1.37-1.828 2.744 3.656 1.371-1.828-9.6-12.8-1.37 1.829 1.37 1.829-2.827 3.694-6.772-9.18 6.886-8.897 2.713 3.411-1.37 1.829 1.37 1.828 9.6-12.8-1.371-1.828-2.743 3.657-1.371-1.828 4.114-5.486-1.372-1.828 6.803-9.143v-3.657l-9.545 12.8 1.37 1.828-4.113 5.486 2.743 3.657-2.743 3.657-4.115-5.486-9.653 13.018 9.653 12.582 4.115-5.486 2.743 3.657-2.743 3.657 4.114 5.486-1.371 1.828 9.545 12.8z"/> - <path d="M212.107 345.588l-1.371 3.657v5.485h-4.114l-2.743 1.83 2.743 1.827h4.114v5.486l1.371 3.657v-21.942z"/> - </g> - <g stroke-width="1pt" fill="#faae29"> - <path d="M47.545 34.74v-3.656l6.803-9.143-1.371-1.828 4.114-5.486L55.72 12.8l-2.743 3.657-1.371-1.829 9.6-12.8 1.37 1.829-1.37 1.829 2.826 3.694L70.805 0h2.797l-9.654 12.8-4.114-5.486-2.743 3.657 2.743 3.657-4.114 5.486 1.371 1.828-9.546 12.8zM47.545 0h8.229L53.03 1.83h-4.114v5.485l-1.372 3.657V.001z"/> - </g> - <g stroke-width="1pt" fill="#faae29"> - <path d="M212.103 34.74v-3.656l-6.803-9.143 1.372-1.828-4.115-5.486 1.372-1.828 2.743 3.657 1.371-1.829-9.6-12.8-1.371 1.829 1.371 1.829-2.827 3.694L188.844 0h-2.798l9.654 12.8 4.115-5.486 2.742 3.657-2.742 3.657 4.114 5.486-1.372 1.828 9.546 12.8zM212.103 0h-8.228l2.742 1.829h4.114v5.485l1.372 3.657V.001z"/> - </g> - <path d="M116.122 504.693s5.904-10.366 20.782-13.507c14.879-3.142 17.477 6.91 25.978 6.91 8.502 0 21.964-6.91 21.964-6.91s-13.462 13.193-23.853 12.879c-10.391-.314-13.934-6.91-24.561-5.968-10.628.942-20.31 6.91-20.31 6.596z" fill="#faae29"/> - <path d="M144.845 504.693s-5.904-10.366-20.783-13.507c-14.878-3.142-17.476 6.91-25.978 6.91-8.502 0-21.963-6.91-21.963-6.91s13.461 13.193 23.852 12.879c10.392-.314 13.934-6.91 24.561-5.968 10.628.942 20.31 6.91 20.31 6.596z" fill="#faae29"/> - <g stroke-width="1pt" fill="#faae29"> - <path d="M96.193 487.544c-1.31-2.743-4.585-14.71-2.839-16.206 2.62-.996 9.607 11.22 8.952 22.19-4.585 2.493-20.086-.998-19.868-4.24 1.092-4.487 9.825-2.99 13.755-1.744z"/> - <path d="M86.824 477.085c-.857-3.044-2.208-15.654-.268-16.638 2.718-.254 7.663 13.622 5.324 24.176-4.872 1.177-19.5-6.505-18.784-9.616 1.763-4.09 10.076-.223 13.728 2.078z"/> - <path d="M79.212 465.383c-.58-3.158-.8-15.893 1.214-16.562 2.722.178 6.397 14.738 3.135 24.847-4.943.398-18.782-9.544-17.796-12.52 2.115-3.783 10.026 1.373 13.447 4.235z"/> - <path d="M73.21 452.922c-.206-3.24 1.057-15.867 3.125-16.112 2.668.738 4.605 15.882.208 25.195-4.929-.628-17.446-13.31-16.125-16.047 2.529-3.3 9.744 3.429 12.792 6.964z"/> - <path d="M69.036 439.868c.145-3.246 2.755-15.5 4.827-15.346 2.561 1.241 2.848 16.6-2.507 24.973-4.81-1.565-15.832-16.513-14.23-18.968 2.858-2.781 9.274 5.259 11.91 9.341z"/> - <path d="M70.2 425.014c-.354 12.998-2.716 13.15-7.029 3.543-1.908-3.63-2.144-18.704-.424-19.266 2.486-.051 7.386 10.699 7.454 15.723z"/> - </g> - <g stroke-width="1pt" fill="#faae29"> - <path d="M164.034 488.912c1.31-2.742 4.585-14.71 2.838-16.205-2.62-.997-9.606 11.22-8.952 22.19 4.585 2.492 20.086-.998 19.869-4.24-1.092-4.487-9.825-2.991-13.755-1.745z"/> - <path d="M173.402 478.453c.857-3.044 2.209-15.654.269-16.637-2.719-.254-7.663 13.622-5.324 24.175 4.872 1.177 19.499-6.504 18.784-9.616-1.763-4.09-10.077-.223-13.729 2.078z"/> - <path d="M181.014 466.752c.58-3.158.8-15.893-1.214-16.562-2.722.177-6.396 14.737-3.135 24.846 4.943.398 18.783-9.543 17.796-12.52-2.115-3.782-10.025 1.373-13.447 4.236z"/> - <path d="M187.016 454.29c.207-3.24-1.057-15.866-3.124-16.111-2.668.738-4.606 15.882-.209 25.194 4.93-.628 17.446-13.31 16.125-16.046-2.528-3.3-9.744 3.428-12.792 6.963z"/> - <path d="M191.19 441.236c-.144-3.245-2.754-15.499-4.827-15.345-2.56 1.24-2.847 16.599 2.508 24.973 4.81-1.566 15.831-16.513 14.229-18.968-2.858-2.782-9.274 5.258-11.91 9.34z"/> - <path d="M190.026 426.383c.354 12.998 2.717 13.15 7.029 3.542 1.909-3.63 2.144-18.703.424-19.265-2.485-.052-7.385 10.698-7.453 15.723z"/> - </g> - <g transform="matrix(.99985 0 0 1.26515 188.276 -77.035)"> - <path d="M-3.543 290.55h-5.315v3.543h-5.315v3.543h-21.26l-3.543 3.544 1.771 1.771h8.858l1.772-1.771h-8.858l1.772-1.772h12.402l-5.315 5.315h-12.402l-3.544-1.772-3.543 1.771-12.402.001-5.315-5.317 12.402.002 1.771 1.772-8.858-.002 1.772 1.773h8.858l1.772-1.771-3.544-3.544h-19.488v-3.543h-5.315v-3.543h-5.315v-15.945h5.315v-3.543h5.315v-3.543h19.488l3.544-3.544-1.772-1.771h-8.858l-1.772 1.773 8.858-.002-1.771 1.772-12.402.002 5.315-5.317 12.402.001 3.543 1.771 3.544-1.772h12.402l5.315 5.315h-12.402l-1.772-1.772h8.858l-1.772-1.771h-8.858l-1.771 1.771 3.543 3.544h21.26v3.543h5.315v3.543h5.315v15.945z" transform="matrix(1.4884 0 0 1.24 3.502 -39.474)" stroke="#000" stroke-width=".133" fill="#ca3745"/> - <path d="M375.59 499.67v24.803h10.629v7.019h10.63v7.087h35.433l14.174 10.63 14.173-10.63h38.976v-7.019l10.63-.068v-7.087h10.63v-24.803h-10.63v-7.086l-10.63.068v-7.155h-38.976l-14.173-10.63-14.174 10.63h-35.433v7.155h-10.63v7.086H375.59z" transform="matrix(.74419 0 0 .62 -392.03 -6.521)" stroke="#faae29" stroke-width="1.422" fill="#28ae66"/> - <path d="M-75.6 296.644l-15.822 10.984v-10.984H-75.6zM-43.97 296.644l15.822 10.985v-10.985H-43.97zM-75.6 325.208l-15.822-10.984v10.984H-75.6zM-43.965 325.208l15.82-10.985v10.985h-15.82zM-38.689 303.233l-5.273 4.394h10.547l-5.274-4.394zM-80.877 303.233l-5.273 4.394h10.547l-5.274-4.394zM-80.877 318.622l-5.273-4.394h10.547l-5.274 4.394zM-38.687 318.622l-5.273-4.394h10.547l-5.274 4.394z" fill="#ca3745"/> - <path d="M-59.787 329.602l-5.273-4.394h10.547l-5.274 4.394zM-59.787 307.632l-5.273-4.394h10.547l-5.274 4.394zM-59.787 292.249l-5.273 4.394h10.547l-5.274-4.394zM-59.787 314.217l-5.273 4.394h10.547l-5.274-4.394z" fill="#faae29"/> - <path transform="matrix(.74419 0 0 .62 -392.03 -6.521)" stroke="#000" stroke-width=".133" fill="#faae29" d="M467.72 506.69h14.173v3.543H467.72z"/> - <path transform="matrix(.74419 0 0 .62 -392.03 -6.521)" stroke="#000" stroke-width=".133" fill="#c00" d="M414.57 510.24h7.087v3.543h-7.087zM471.26 510.24h7.087v3.543h-7.087z"/> - <path transform="matrix(.74419 0 0 .62 -392.03 -6.521)" stroke="#000" stroke-width=".133" fill="#900" d="M439.37 488.98h14.173v3.543H439.37zM439.37 496.06h14.173v3.543H439.37z"/> - <path transform="matrix(.74419 0 0 .62 -392.03 -6.521)" stroke="#000" stroke-width=".133" fill="#900" d="M435.83 492.52h21.26v3.543h-21.26zM439.37 524.41h14.173v3.543H439.37zM439.37 531.5h14.173v3.543H439.37z"/> - <path transform="matrix(.74419 0 0 .62 -392.03 -6.521)" stroke="#000" stroke-width=".133" fill="#900" d="M435.83 527.95h21.26v3.543h-21.26z"/> - <path transform="matrix(.74419 0 0 .62 -392.03 -6.521)" stroke="#000" stroke-width=".133" fill="#faae29" d="M467.72 513.78h14.173v3.543H467.72zM411.02 506.69h14.173v3.543H411.02zM411.02 513.78h14.173v3.543H411.02z"/> - <path transform="matrix(.74419 0 0 .62 -392.03 -6.521)" stroke="#000" stroke-width=".133" fill="#faae29" d="M407.48 510.24h7.087v3.543h-7.087zM421.65 510.24h7.087v3.543h-7.087zM464.17 510.24h7.087v3.543h-7.087zM478.35 510.24h7.087v3.543h-7.087z"/> - <ellipse fill="#fff" transform="matrix(.74419 0 0 .62 -374.14 -38.912)" cx="413.68" rx=".886" cy="581.99" ry=".886"/> - <ellipse fill="#fff" transform="matrix(.74419 0 0 .62 -367.57 -38.912)" cx="413.68" rx=".886" cy="581.99" ry=".886"/> - <ellipse fill="#fff" transform="matrix(.74419 0 0 .62 -361 -38.958)" cx="413.68" rx=".886" cy="581.99" ry=".886"/> - <ellipse fill="#fff" transform="matrix(.74419 0 0 .62 -371.51 -41.102)" cx="413.68" rx=".886" cy="581.99" ry=".886"/> - <ellipse fill="#fff" transform="matrix(.74419 0 0 .62 -363.68 -41.148)" cx="413.68" rx=".886" cy="581.99" ry=".886"/> - <ellipse fill="#fff" transform="matrix(.74419 0 0 .62 -371.57 -36.768)" cx="413.68" rx=".886" cy="581.99" ry=".886"/> - <ellipse fill="#fff" transform="matrix(.74419 0 0 .62 -363.68 -36.677)" cx="413.68" rx=".886" cy="581.99" ry=".886"/> - <ellipse fill="#fff" transform="matrix(.74419 0 0 .62 -353.17 -49.999)" cx="413.68" rx=".886" cy="581.99" ry=".886"/> - <ellipse fill="#fff" transform="matrix(.74419 0 0 .62 -346.59 -49.999)" cx="413.68" rx=".886" cy="581.99" ry=".886"/> - <ellipse fill="#fff" transform="matrix(.74419 0 0 .62 -340.02 -50.045)" cx="413.68" rx=".886" cy="581.99" ry=".886"/> - <ellipse fill="#fff" transform="matrix(.74419 0 0 .62 -350.54 -52.189)" cx="413.68" rx=".886" cy="581.99" ry=".886"/> - <ellipse fill="#fff" transform="matrix(.74419 0 0 .62 -342.71 -52.235)" cx="413.68" rx=".886" cy="581.99" ry=".886"/> - <ellipse fill="#fff" transform="matrix(.74419 0 0 .62 -350.59 -47.855)" cx="413.68" rx=".886" cy="581.99" ry=".886"/> - <ellipse fill="#fff" transform="matrix(.74419 0 0 .62 -342.71 -47.764)" cx="413.68" rx=".886" cy="581.99" ry=".886"/> - <ellipse fill="#fff" transform="matrix(.74419 0 0 .62 -374.2 -60.904)" cx="413.68" rx=".886" cy="581.99" ry=".886"/> - <ellipse fill="#fff" transform="matrix(.74419 0 0 .62 -367.62 -60.904)" cx="413.68" rx=".886" cy="581.99" ry=".886"/> - <ellipse fill="#fff" transform="matrix(.74419 0 0 .62 -361.05 -60.949)" cx="413.68" rx=".886" cy="581.99" ry=".886"/> - <ellipse fill="#fff" transform="matrix(.74419 0 0 .62 -371.57 -63.094)" cx="413.68" rx=".886" cy="581.99" ry=".886"/> - <ellipse fill="#fff" transform="matrix(.74419 0 0 .62 -363.74 -63.139)" cx="413.68" rx=".886" cy="581.99" ry=".886"/> - <ellipse fill="#fff" transform="matrix(.74419 0 0 .62 -371.62 -58.759)" cx="413.68" rx=".886" cy="581.99" ry=".886"/> - <ellipse fill="#fff" transform="matrix(.74419 0 0 .62 -363.74 -58.668)" cx="413.68" rx=".886" cy="581.99" ry=".886"/> - <ellipse fill="#fff" transform="matrix(.74419 0 0 .62 -395.28 -49.817)" cx="413.68" rx=".886" cy="581.99" ry=".886"/> - <ellipse fill="#fff" transform="matrix(.74419 0 0 .62 -388.71 -49.817)" cx="413.68" rx=".886" cy="581.99" ry=".886"/> - <ellipse fill="#fff" transform="matrix(.74419 0 0 .62 -382.14 -49.862)" cx="413.68" rx=".886" cy="581.99" ry=".886"/> - <ellipse fill="#fff" transform="matrix(.74419 0 0 .62 -392.65 -52.007)" cx="413.68" rx=".886" cy="581.99" ry=".886"/> - <ellipse fill="#fff" transform="matrix(.74419 0 0 .62 -384.82 -52.052)" cx="413.68" rx=".886" cy="581.99" ry=".886"/> - <ellipse fill="#fff" transform="matrix(.74419 0 0 .62 -392.71 -47.672)" cx="413.68" rx=".886" cy="581.99" ry=".886"/> - <ellipse fill="#fff" transform="matrix(.74419 0 0 .62 -384.82 -47.581)" cx="413.68" rx=".886" cy="581.99" ry=".886"/> - </g> - <path d="M138.895 255.755l4.535-2.125 4.535 2.125h-9.07zM125.291 255.755l4.535-2.125 4.534 2.125h-9.069zM111.687 255.755l4.535-2.125 4.534 2.125h-9.07zM138.895 206.885l4.535 2.125 4.535-2.125h-9.07zM125.291 206.885l4.535 2.125 4.534-2.125h-9.069zM111.687 206.885l4.535 2.125 4.534-2.125h-9.07z" fill="#fff"/> - <path d="M135.115 262.133l-5.29 4.25-5.292-4.25-5.29 4.25-5.29-4.25v2.124l3.526 2.127-1.763 2.124v2.125h1.763l1.764-2.125 1.763 2.125h1.764v-2.125l-1.764-2.124 3.527-2.126 3.528 2.126-1.764 2.124v2.125h1.764l1.763-2.125 1.763 2.125h1.764v-2.125l-1.764-2.124 3.528-2.126 3.527 2.125-1.764 2.125v2.125h1.764l1.763-2.125 1.764 2.125h1.764v-2.125l-1.764-2.125 3.527-2.126v-2.124l-5.29 4.25-5.291-4.25zM135.116 200.497l-5.29-4.25-5.292 4.25-5.29-4.25-5.29 4.25v-2.124l3.527-2.127-1.764-2.124v-2.125h1.764l1.763 2.125 1.763-2.125h1.764v2.125l-1.764 2.124 3.527 2.126 3.528-2.126-1.764-2.124v-2.125h1.764l1.763 2.125 1.763-2.125h1.764v2.125l-1.764 2.124 3.528 2.126 3.527-2.125-1.764-2.125v-2.125h1.764l1.764 2.125 1.763-2.125h1.764v2.125l-1.764 2.125 3.527 2.126v2.124l-5.29-4.25-5.291 4.25zM175.187 235.92l5.669-4.604-5.67-4.605 5.67-4.604-5.67-4.604h2.834l2.836 3.07 2.833-1.536h2.834v1.535l-2.834 1.535 2.834 1.535v1.535h-2.834l-2.833-1.535-2.835 3.07 2.835 3.07 2.833-1.536h2.834v1.535l-2.834 1.535 2.834 1.535v1.535h-2.834l-2.833-1.535-2.835 3.07 2.833 3.07 2.835-1.536h2.834v1.536l-2.834 1.534 2.834 1.535v1.535h-2.834l-2.835-1.535-2.834 3.07h-2.833l5.667-4.605-5.667-4.604zM84.47 235.92l-5.67-4.604 5.67-4.605-5.67-4.604 5.67-4.604h-2.834l-2.836 3.07-2.833-1.536h-2.835v1.535l2.835 1.535-2.835 1.535v1.535h2.835l2.833-1.535 2.835 3.07-2.835 3.07-2.833-1.536h-2.835v1.535l2.835 1.535-2.835 1.535v1.535h2.835l2.833-1.535 2.835 3.07-2.833 3.07-2.835-1.536h-2.835v1.536l2.835 1.534-2.835 1.535v1.535h2.835l2.835-1.535 2.834 3.07h2.833l-5.667-4.605 5.667-4.604z" fill="#28ae66"/> - <path transform="matrix(1.2798 0 0 1.1995 211.45 -5.633)" stroke="#000" stroke-width=".267" fill="#28ae66" d="M-26.575 214.37h1.772v1.772h-1.772z"/> - <path transform="matrix(1.2798 0 0 1.1995 211.45 -5.633)" stroke="#000" stroke-width=".267" fill="#28ae66" d="M-28.346 216.14h1.772v1.772h-1.772zM-37.205 225h1.772v1.772h-1.772zM-35.433 223.23h1.772v1.772h-1.772zM-93.898 223.23h1.772v1.772h-1.772zM-102.76 214.37h1.772v1.772h-1.772zM-100.98 216.14h1.772v1.772h-1.772zM-100.98 177.17h1.772v1.772h-1.772zM-102.76 178.94h1.772v1.772h-1.772zM-92.126 168.31h1.772v1.772h-1.772z"/> - <path transform="matrix(1.2798 0 0 1.1995 211.45 -5.633)" stroke="#000" stroke-width=".267" fill="#28ae66" d="M-93.898 170.08h1.772v1.772h-1.772zM-37.205 168.31h1.772v1.772h-1.772zM-35.433 170.08h1.772v1.772h-1.772zM-28.346 177.17h1.772v1.772h-1.772z"/> - <path transform="matrix(1.2798 0 0 1.1995 211.45 -5.633)" stroke="#000" stroke-width=".267" fill="#28ae66" d="M-26.575 178.94h1.772v1.772h-1.772zM-92.126 225h1.772v1.772h-1.772z"/> - <path d="M122.907 231.314l-6.683-.001-.001-4.177 4.456.003v-3.917h4.457v-3.596h4.456v4.495c-3.69 0-6.685 3.046-6.685 7.193z" fill="#fff"/> - <path d="M136.274 231.314l6.683-.001.001-4.177-4.456.003v-3.917h-4.457v-3.596h-4.456v4.495c3.69 0 6.685 3.046 6.685 7.193z" fill="#faae29"/> - <path d="M136.274 231.314h6.683l.001 4.177-4.456-.002v3.916h-4.457v3.597h-4.456v-4.496c3.69 0 6.685-3.045 6.685-7.192z" fill="#fff"/> - <path d="M122.907 231.314h-6.683l-.001 4.177 4.456-.002v3.916h4.457v3.597h4.456v-4.496c-3.69 0-6.685-3.045-6.685-7.192z" fill="#faae29"/> - <path d="M136.273 231.317h-6.684v-7.193c3.69 0 6.684 3.223 6.684 7.193z" fill="#28ae66"/> - <path d="M136.273 231.31h-6.684v7.193c3.69 0 6.684-3.222 6.684-7.192z" fill="#ca3745"/> - <path d="M122.908 231.31h6.684v7.193c-3.69 0-6.684-3.222-6.684-7.192z" fill="#28ae66"/> - <path d="M122.908 231.317h6.684v-7.193c-3.69 0-6.684 3.223-6.684 7.193z" fill="#ca3745"/> - <path d="M136.627 257.876l-6.802-4.251-6.802 4.25-6.802-4.25-6.802 4.25v-2.124l4.535-2.126-2.268-2.125v-2.125h2.268l2.267 2.125 2.267-2.125h2.268v2.125l-2.268 2.125 4.535 2.125 4.535-2.125-2.268-2.125v-2.125h2.268l2.267 2.125 2.267-2.125h2.268v2.125l-2.268 2.125 4.535 2.125 4.535-2.124-2.267-2.126v-2.125h2.267l2.267 2.125 2.267-2.125h2.268v2.125l-2.268 2.126 4.535 2.125v2.125l-6.802-4.25-6.802 4.25zM136.627 204.757l-6.802 4.25-6.802-4.25-6.802 4.25-6.802-4.25v2.124l4.535 2.127-2.268 2.124v2.126h2.268l2.267-2.126 2.267 2.126h2.268v-2.126l-2.268-2.124 4.535-2.126 4.535 2.126-2.268 2.124v2.126h2.268l2.267-2.126 2.267 2.126h2.268v-2.126l-2.268-2.124 4.535-2.126 4.535 2.125-2.267 2.125v2.126h2.267l2.267-2.126 2.267 2.126h2.268v-2.126l-2.268-2.125 4.535-2.126v-2.124l-6.802 4.25-6.802-4.25zM161.562 236.626l-3.402-5.313 3.402-5.313-3.402-5.313 3.402-5.312h-1.7l-1.702 3.542-1.7-1.772h-1.701v1.772l1.7 1.77-1.7 1.771v1.771h1.7l1.7-1.77 1.702 3.541-1.701 3.542-1.7-1.77h-1.701v1.77l1.7 1.771-1.7 1.77v1.772h1.7l1.7-1.771 1.702 3.542-1.7 3.542-1.701-1.771h-1.701v1.771l1.7 1.771-1.7 1.77v1.772h1.7l1.702-1.771 1.7 3.542h1.7l-3.4-5.313 3.4-5.313z" fill="#28ae66"/> - <path d="M-100.98 177.17l-7.087 7.086v26.575l7.087 7.087h31.889l7.087-7.087v-26.575l-7.087-7.086h-31.889zm-1.772-5.316l-17.717 17.716v15.945l17.717 17.717h35.433l17.716-17.717V189.57l-17.716-17.716h-35.433z" transform="matrix(1.2798 0 0 1.1995 238.66 -5.632)" stroke="#000" stroke-width=".427" fill="#28ae66"/> - <path d="M-93.898 147.05l3.543 5.315 3.544-5.315h-7.087z" transform="matrix(1.02384 0 0 .79966 215.078 140.295)" stroke="#000" stroke-width=".267" fill="#faae29"/> - <path d="M-93.898 147.05l3.543 5.315 3.544-5.315h-7.087z" transform="matrix(1.02384 0 0 -.79966 215.078 322.344)" stroke="#000" stroke-width=".267" fill="#faae29"/> - <path d="M-93.898 147.05l3.543 5.315 3.544-5.315h-7.087z" transform="matrix(1.02384 0 0 -.79966 229.59 322.344)" stroke="#000" stroke-width=".267" fill="#faae29"/> - <path d="M-93.898 147.05l3.543 5.315 3.544-5.315h-7.087z" transform="matrix(1.02384 0 0 .79966 229.59 140.295)" stroke="#000" stroke-width=".267" fill="#faae29"/> - <path d="M-93.898 147.05l3.543 5.315 3.544-5.315h-7.087z" transform="matrix(1.02384 0 0 -.79966 207.823 322.344)" stroke="#000" stroke-width=".267" fill="#ca3745"/> - <path d="M-93.898 147.05l3.543 5.315 3.544-5.315h-7.087z" transform="matrix(1.02384 0 0 -.79966 222.334 322.344)" stroke="#000" stroke-width=".267" fill="#ca3745"/> - <path d="M-93.898 147.05l3.543 5.315 3.544-5.315h-7.087z" transform="matrix(1.02384 0 0 -.79966 236.845 322.344)" stroke="#000" stroke-width=".267" fill="#ca3745"/> - <path d="M-104.53 180.71l3.544-3.544h-3.544v3.544z" transform="matrix(1.9196 0 0 -1.7991 303.262 576.628)" stroke="#000" stroke-width=".267" fill="#ca3745"/> - <path d="M98.084 236.626l3.402-5.313L98.084 226l3.402-5.313-3.402-5.312h1.7l1.702 3.542 1.7-1.772h1.7v1.772l-1.7 1.77 1.7 1.771v1.771h-1.7l-1.7-1.77L99.785 226l1.7 3.542 1.7-1.77h1.701v1.77l-1.7 1.771 1.7 1.77v1.772h-1.7l-1.7-1.771-1.701 3.542 1.7 3.542 1.7-1.771h1.701v1.771l-1.7 1.771 1.7 1.77v1.772h-1.7l-1.701-1.771-1.701 3.542h-1.7l3.4-5.313-3.4-5.313z" fill="#28ae66"/> - <path d="M-76.181 154.13h7.087l1.771 1.772-1.771 1.771h-7.087v-3.543z" transform="matrix(1.2798 0 0 1.07958 261.333 59.18)" stroke="#000" stroke-width=".267" fill="#ca3745"/> - <path d="M-99.213 180.71l-3.543 3.544v26.575l3.543 3.543h-5.316l.001-33.662h5.315z" transform="matrix(1.2798 0 0 1.1995 229.59 -5.632)" stroke="#000" stroke-width=".4" fill="#ca3745"/> - <path d="M-93.898 147.05l3.543 5.315 3.544-5.315h-7.087z" transform="matrix(1.02384 0 0 .79966 207.823 140.295)" stroke="#000" stroke-width=".267" fill="#ca3745"/> - <path d="M-93.898 147.05l3.543 5.315 3.544-5.315h-7.087z" transform="matrix(1.02384 0 0 .79966 222.334 140.295)" stroke="#000" stroke-width=".267" fill="#ca3745"/> - <path d="M-93.898 147.05l3.543 5.315 3.544-5.315h-7.087z" transform="matrix(1.02384 0 0 .79966 236.845 140.295)" stroke="#000" stroke-width=".267" fill="#ca3745"/> - <path d="M-99.212 180.71l-3.544 3.544v26.575l3.544 3.543h-5.315V180.71h5.315z" transform="matrix(-1.2798 0 0 1.1995 30.065 -5.632)" stroke="#000" stroke-width=".4" fill="#ca3745"/> - <path d="M-104.53 180.71l3.544-3.544h-3.544v3.544z" transform="matrix(-1.9196 0 0 -1.7991 -43.617 576.628)" stroke="#000" stroke-width=".267" fill="#ca3745"/> - <path d="M-104.53 180.71l3.544-3.544h-3.544v3.544z" transform="matrix(-1.9196 0 0 1.7991 -43.617 -113.993)" stroke="#000" stroke-width=".267" fill="#ca3745"/> - <path d="M-104.53 180.71l3.544-3.544h-3.544v3.544z" transform="matrix(1.9196 0 0 1.7991 303.262 -113.993)" stroke="#000" stroke-width=".267" fill="#ca3745"/> - <path d="M-100.98 177.17l-7.087 7.086v26.575l7.087 7.087h31.889l7.087-7.087v-26.575l-7.087-7.086h-31.889zm-.001-1.773l-8.858 8.858v26.575l8.859 8.858h31.889l8.858-8.858v-26.575l-8.859-8.858h-31.889z" transform="matrix(1.2798 0 0 1.1995 238.66 -5.632)" stroke="#000" stroke-width=".427" fill="#28ae66"/> - <path d="M-76.181 154.13h7.087l1.771 1.772-1.771 1.771h-7.087v-3.543z" transform="matrix(1.2798 0 0 1.07965 261.332 62.992)" stroke="#000" stroke-width=".267" fill="#faae29"/> - <path d="M-76.181 154.13h7.087l1.771 1.772-1.771 1.771h-7.087v-3.543z" transform="matrix(1.2798 0 0 1.07958 261.333 66.83)" stroke="#000" stroke-width=".267" fill="#ca3745"/> - <path d="M-76.181 154.13h7.087l1.771 1.772-1.771 1.771h-7.087v-3.543z" transform="matrix(1.2798 0 0 1.07965 261.333 70.642)" stroke="#000" stroke-width=".267" fill="#faae29"/> - <path d="M-76.181 154.13h7.087l1.771 1.772-1.771 1.771h-7.087v-3.543z" transform="matrix(1.2798 0 0 1.07965 261.333 55.341)" stroke="#000" stroke-width=".267" fill="#faae29"/> - <path d="M-76.181 154.13h7.087l1.771 1.772-1.771 1.771h-7.087v-3.543z" transform="matrix(-1.2798 0 0 1.07958 -1.682 59.18)" stroke="#000" stroke-width=".267" fill="#ca3745"/> - <path d="M-76.181 154.13h7.087l1.771 1.772-1.771 1.771h-7.087v-3.543z" transform="matrix(-1.2798 0 0 1.07965 -1.682 62.993)" stroke="#000" stroke-width=".267" fill="#faae29"/> - <path d="M-76.181 154.13h7.087l1.771 1.772-1.771 1.771h-7.087v-3.543z" transform="matrix(-1.2798 0 0 1.07958 -1.682 66.83)" stroke="#000" stroke-width=".267" fill="#ca3745"/> - <path d="M-76.181 154.13h7.087l1.771 1.772-1.771 1.771h-7.087v-3.543z" transform="matrix(-1.2798 0 0 1.07965 -1.682 70.643)" stroke="#000" stroke-width=".267" fill="#faae29"/> - <path d="M-76.181 154.13h7.087l1.771 1.772-1.771 1.771h-7.087v-3.543z" transform="matrix(-1.2798 0 0 1.07965 -1.682 55.343)" stroke="#000" stroke-width=".267" fill="#faae29"/> - <path d="M-100.98 178.94v37.205h8.858v8.858h56.693v-8.858h8.858V178.94h-8.858v-8.858h-56.693v8.858h-8.858zm1.771 1.772v33.661h8.859v8.858h53.15v-8.858h8.858v-33.661H-37.2v-8.859h-53.15v8.859h-8.859z" transform="matrix(1.2798 0 0 1.1995 211.45 -5.633)" stroke="#000" stroke-width=".267" fill="#970000"/> - <g> - <path d="M-28.347 69.094l-5.315-7.087v-5.315l-5.315-5.314h-10.63l-8.858-5.315h-28.346l-8.859 5.315h-10.63l-5.315 5.315v5.315l-5.315 7.086v14.173l5.315 7.087v5.315l5.315 5.315h10.63l8.859 5.315h28.346l8.858-5.316h10.63l5.315-5.314v-5.315l5.315-7.087V69.093z" transform="matrix(1.2798 0 0 1.1535 222.785 -36.677)" stroke="#000" stroke-width=".267" fill="#ca3745"/> - <path d="M75.427 51.199v6.13l6.802 8.174v6.13l6.802 6.131h13.604l11.337 6.131h15.872l-.002-32.696H75.427z" fill="#faae29"/> - <path d="M110.69 65.498l-8.281 5.255h-4.947l1.65 1.751-3.298 3.504 1.648 1.751 4.947-1.751 1.649 1.751.762-4.68 9.131-5.54-3.26-2.041z" fill="#ca3745"/> - <path d="M101.625 61.411l-8.281 5.255h-4.947l1.65 1.751-3.298 3.504 1.648 1.752 4.947-1.752 1.649 1.752.762-4.68 9.132-5.541-3.262-2.04zM97.087 53.241l-8.282 5.255H83.86l1.649 1.751-3.298 3.504 1.649 1.752 4.946-1.752 1.65 1.752.761-4.68 9.132-5.541-3.26-2.04z" fill="#ca3745"/> - <path d="M184.224 51.199v-6.131l-6.802-8.174v-6.13l-6.802-6.131h-13.604l-11.337-6.13h-15.872l.002 32.696h54.415z" fill="#faae29"/> - <path d="M129.83 83.894h-4.198l-4.87-4.087h-7.726l-4.199-2.044 2.1-2.043 4.198 2.043h4.199l4.198-6.13 6.298 2.043v4.087h-6.298l6.298 6.13z" fill="#ca3745"/> - <path d="M75.427 51.199v-6.131l6.802-8.174v-6.13l6.802-6.131h13.604l11.337-6.13h15.872l-.002 32.696H75.427z" fill="#fff"/> - <path d="M129.83 18.499h-4.198l-4.87 4.087h-7.726l-4.199 2.043 2.1 2.044 4.198-2.044h4.199l4.198 6.131 6.298-2.044V24.63h-6.298l6.298-6.13z" fill="#ca3745"/> - <path d="M129.826 18.499h4.199l4.87 4.087h7.726l4.198 2.043-2.099 2.044-4.199-2.044h-4.198l-4.199 6.131-6.298-2.044V24.63h6.298l-6.298-6.13z" fill="#ca3745"/> - <path d="M184.224 51.199v6.13l-6.802 8.174v6.13l-6.802 6.131h-13.604l-11.337 6.131h-15.872l.002-32.696h54.415z" fill="#fff"/> - <path d="M129.826 83.894h4.199l4.87-4.087h7.726l4.198-2.044-2.099-2.043-4.199 2.043h-4.198l-4.199-6.13-6.298 2.043v4.087h6.298l-6.298 6.13zM101.625 40.978l-8.281-5.255h-4.947l1.65-1.751-3.298-3.504 1.648-1.752 4.947 1.752 1.649-1.752.762 4.68 9.132 5.541-3.262 2.04zM148.96 36.895l8.282-5.256h4.947l-1.65-1.75 3.298-3.504-1.648-1.752-4.947 1.752-1.649-1.752-.762 4.68-9.131 5.54 3.26 2.042z" fill="#ca3745"/> - <path d="M110.69 36.895l-8.281-5.256h-4.947l1.65-1.75-3.298-3.504 1.648-1.752 4.947 1.752 1.649-1.752.762 4.68 9.131 5.54-3.26 2.042zM97.087 49.156l-8.282-5.255H83.86l1.649-1.751-3.298-3.504 1.649-1.752 4.946 1.752 1.65-1.752.761 4.681 9.132 5.54-3.26 2.041z" fill="#ca3745"/> - <path d="M79.453 51.209h2.1l2.1 2.043 2.1-2.043 44.085-.002V79.82h-2.099l2.1 2.044v2.043l-6.298-6.13v-2.044h2.099v2.044h2.1v-2.044l-17.047-9.026h-14.36v-8.857l-6.382-4.597h-4.199l-2.1 2.043 2.1 2.045h-2.1l-4.199-6.131z" fill="#fff"/> - <path d="M79.453 51.188h2.1l2.1-2.043 2.1 2.043 44.085.002V22.578h-2.099l2.1-2.044V18.49l-6.298 6.13v2.044h2.099v-2.043h2.1v2.043l-17.047 9.026h-14.36v8.857l-6.382 4.597h-4.199l-2.1-2.043 2.1-2.044h-2.1l-4.199 6.13z" fill="#faae29"/> - <path d="M89.025 51.187h40.811V75.71l-18.138-10.218H98.095v-8.174l-9.07-6.131z" fill="#28ae66"/> - <path d="M158.026 40.978l8.281-5.255h4.947l-1.65-1.751 3.298-3.504-1.648-1.752-4.947 1.752-1.649-1.752-.762 4.68-9.132 5.541 3.262 2.04zM162.564 49.156l8.282-5.255h4.946l-1.649-1.751 3.298-3.504-1.649-1.752-4.946 1.752-1.65-1.752-.761 4.681-9.132 5.54 3.26 2.041z" fill="#ca3745"/> - <path d="M180.198 51.188h-2.1l-2.1-2.043-2.1 2.043-44.085.002V22.578h2.099l-2.1-2.044V18.49l6.298 6.13v2.044h-2.099v-2.043h-2.1v2.043l17.047 9.026h14.36v8.857l6.382 4.597h4.199l2.1-2.043-2.1-2.044h2.1l4.199 6.13z" fill="#fff"/> - <path d="M170.626 51.21h-40.811V26.687l18.138 10.218h13.603v8.174l9.07 6.131z" fill="#28ae66"/> - <path d="M148.96 65.498l8.282 5.255h4.947l-1.65 1.751 3.298 3.504-1.648 1.751-4.947-1.751-1.649 1.751-.762-4.68-9.131-5.54 3.26-2.041z" fill="#ca3745"/> - <path d="M158.026 61.411l8.281 5.255h4.947l-1.65 1.751 3.298 3.504-1.648 1.752-4.947-1.752-1.649 1.752-.762-4.68-9.132-5.541 3.262-2.04zM162.564 53.241l8.282 5.255h4.946l-1.649 1.751 3.298 3.504-1.649 1.752-4.946-1.752-1.65 1.752-.761-4.68-9.132-5.541 3.26-2.04z" fill="#ca3745"/> - <path d="M180.198 51.209h-2.1l-2.1 2.043-2.1-2.043-44.085-.002V79.82h2.099l-2.1 2.044v2.043l6.298-6.13v-2.044h-2.099v2.044h-2.1v-2.044l17.047-9.026h14.36v-8.857l6.382-4.597h4.199l2.1 2.043-2.1 2.045h2.1l4.199-6.131z" fill="#faae29"/> - <path d="M170.626 51.187h-40.811V75.71l18.138-10.218h13.603v-8.174l9.07-6.131z" fill="#ca3745"/> - <path d="M89.025 51.21h40.811V26.687l-18.138 10.218H98.095v8.174l-9.07 6.131z" fill="#ca3745"/> - <path d="M134.305 51.198l11.388-6.131h6.802l-2.268-2.043 4.535-4.088-2.267-2.043-6.802 2.043-2.268-2.043-1.047 5.46-12.557 6.464 4.484 2.381zM125.346 51.187l-11.388 6.132h-6.802l2.268 2.043-4.535 4.087 2.267 2.044 6.802-2.044 2.268 2.044 1.047-5.46 12.557-6.465-4.484-2.38z" fill="#ca3745"/> - <path d="M125.346 51.198l-11.388-6.131h-6.802l2.268-2.043-4.535-4.088 2.267-2.043 6.802 2.043 2.268-2.043 1.047 5.46 12.557 6.464-4.484 2.381zM134.305 51.187l11.388 6.132h6.802l-2.268 2.043 4.535 4.087-2.267 2.044-6.802-2.044-2.268 2.044-1.047-5.46-12.557-6.465 4.484-2.38z" fill="#28ae66"/> - <path d="M116.223 51.2l13.603-10.219L143.431 51.2l-13.605 10.218L116.223 51.2z" fill="#fff"/> - <path d="M85.742 55.282l2.1 2.043-2.1 2.044h-2.1l-6.298-8.174h2.1l4.198 6.13h2.1l-2.1-2.043 2.1-2.044h4.198v2.044h-4.198z" fill="#ca3745"/> - <path d="M85.742 47.109l2.1-2.043-2.1-2.044h-2.1l-6.298 8.174h2.1l4.198-6.13h2.1l-2.1 2.043 2.1 2.044h4.198v-2.044h-4.198zM173.913 55.282l-2.1 2.043 2.1 2.044h2.1l6.297-8.174h-2.1l-4.198 6.13h-2.1l2.1-2.043-2.1-2.044h-4.198v2.044h4.199z" fill="#ca3745"/> - <path d="M173.913 47.109l-2.1-2.043 2.1-2.044h2.1l6.297 8.174h-2.1l-4.198-6.13h-2.1l2.1 2.043-2.1 2.044h-4.198v-2.044h4.199zM127.727 43.022h4.198V59.37h-4.198z" fill="#ca3745"/> - <path fill="#ca3745" d="M121.429 47.11h16.794v8.174H121.43z"/> - </g> - <g> - <path d="M333.07 170.08l-10.63 5.315v8.858l10.63 5.315h10.63l10.63-5.315v-8.858l-10.63-5.315h-10.63z" transform="matrix(3.555 0 0 3.847 -1073.157 -292.234)" stroke="#000" stroke-width=".07" fill="#28ae66"/> - <path d="M87.169 396.271h2.285v-4.19h4.572v4.19h2.285v-9.778h-2.285v4.19h-4.572v-4.19h-2.285v9.778zM145.07 428.865h2.285v-4.191h4.572v4.19h2.285v-9.778h-2.285v4.191h-4.572v-4.19h-2.285v9.778zM108.502 379.974h2.285v-4.19h4.573v4.19h2.285v-9.778h-2.285v4.19h-4.573v-4.19h-2.285v9.778zM142.025 379.974h2.285v-4.19h4.573v4.19h2.285v-9.778h-2.285v4.19h-4.573v-4.19h-2.285v9.778zM163.348 396.271h2.285v-4.19h4.573v4.19h2.285v-9.778h-2.285v4.19h-4.573v-4.19h-2.285v9.778zM163.348 412.568h2.285v-4.191h4.573v4.191h2.285v-9.779h-2.285v4.191h-4.573v-4.19h-2.285v9.778z" fill="#c00"/> - <path d="M129.827 435.389v-35.855h54.856v16.298l-36.57 19.557h-18.286zM129.828 363.673v35.856H74.972V383.23l36.57-19.558h18.286z" fill="#faae29"/> - <path d="M129.827 363.673v35.856h54.856V383.23l-36.57-19.558h-18.286zM129.828 435.389l-.001-35.854-54.855-.001v16.298l36.57 19.557h18.286z" fill="#fff"/> - <path d="M-177.16 368.5h21.259l-21.259-10.63v10.63zm24.803-1.772l-.001 17.717h-33.661v-14.173h-7.086l-8.858-5.315v-12.402l5.314-5.315h-7.086v17.717h-1.772v-19.489h17.717l35.433 21.26z" transform="matrix(1.0321 0 0 .92 341.934 45.873)" stroke="#000" stroke-width=".133" fill="#faae29"/> - <path d="M111.51 388.116v22.814h5.484l12.802 6.52 12.8-6.52h5.485v-22.814h-5.484l-12.801-6.52-12.802 6.52h-5.484z" fill="#ca3745"/> - <path d="M-177.16 368.5h21.259l-21.259-10.63v10.63zm24.803-1.772l-.001 17.717h-33.661v-14.173h-7.086l-8.858-5.315v-12.402l5.314-5.315h-7.086v17.717h-1.772v-19.489h17.717l35.433 21.26z" transform="matrix(-1.0321 0 0 -.92 -82.279 753.19)" stroke="#000" stroke-width=".133" fill="#faae29"/> - <path d="M-177.16 368.5h21.259l-21.259-10.63v10.63zm24.803-1.772l-.001 17.717h-33.661v-14.173h-7.086l-8.858-5.315v-12.402l5.314-5.315h-7.086v17.717h-1.772v-19.489h17.717l35.433 21.26z" transform="matrix(-1.0321 0 0 .92 -82.279 45.873)" stroke="#000" stroke-width=".133" fill="#fff"/> - <path d="M-177.16 368.5h21.259l-21.259-10.63v10.63zm24.803-1.772l-.001 17.717h-33.661v-14.173h-7.086l-8.858-5.315v-12.402l5.314-5.315h-7.086v17.717h-1.772v-19.489h17.717l35.433 21.26z" transform="matrix(1.0321 0 0 -.92 341.935 753.19)" stroke="#000" stroke-width=".133" fill="#fff"/> - <path d="M85.951 412.578h2.285v-4.89h4.573v4.89h2.285V401.17h-2.285v4.89h-4.573v-4.89h-2.285v11.408zM107.883 428.875h2.285v-4.89h4.573v4.89h2.285v-11.409h-2.285v4.89h-4.573v-4.89h-2.285v11.409zM85.951 386.497h2.285v4.89h4.573v-4.89h2.285v11.408h-2.285v-4.89h-4.573v4.89h-2.285v-11.408zM107.883 370.198h2.285v4.89h4.573v-4.89h2.285v11.408h-2.285v-4.89h-4.573v4.89h-2.285v-11.408zM142.634 428.875h2.285v-4.89h4.573v4.89h2.285v-11.409h-2.285v4.89h-4.573v-4.89h-2.285v11.409zM164.576 397.902h2.285v-4.89h4.573v4.89h2.285v-11.409h-2.285v4.89h-4.573v-4.89h-2.285v11.409z" fill="#ca3745"/> - <path d="M142.634 428.875h2.285v-4.89h4.573v4.89h2.285v-11.409h-2.285v4.89h-4.573v-4.89h-2.285v11.409z" fill="#ca3745"/> - <path d="M142.634 428.875h2.285v-4.89h4.573v4.89h2.285v-11.409h-2.285v4.89h-4.573v-4.89h-2.285v11.409zM164.576 412.568h2.285v-4.89h4.573v4.89h2.285v-11.409h-2.285v4.89h-4.573v-4.89h-2.285v11.409zM142.634 381.605h2.285v-4.89h4.573v4.89h2.285v-11.409h-2.285v4.89h-4.573v-4.89h-2.285v11.409z" fill="#ca3745"/> - <path d="M131.658 399.532l7.314-5.944h3.657v2.971h-3.657v1.486h5.485v-5.942h-5.485v-4.457h-7.314v4.456h1.829v-2.972h3.656v2.972l-7.313 5.943-7.315-5.942v-2.97h3.657v2.97h1.829v-4.457l-7.314.001v4.456H115.2v5.944h5.486v-1.486h-3.658v-2.972h3.658l7.314 5.942-7.314 5.942h-3.657v-2.97h3.657v-1.487h-5.485v5.943h5.485v4.456l7.314.002v-4.458h-1.828v2.972h-3.657v-2.972l7.313-5.942 7.315 5.944v2.97h-3.656v-2.97h-1.83v4.456h7.314v-4.456l5.486-.002v-5.942h-5.486v1.486h3.658v2.972h-3.658l-7.314-5.943z" fill="#fff"/> - </g> - <g transform="matrix(1.0321 0 0 .95838 204.8 18.155)"> - <path d="M-122.352 134.285l3.43-3.73h20.573l15.43-16.784h20.574l15.43 16.784h20.575l3.429 3.729-3.429 3.73h-20.574l-15.43 16.784H-82.92l-15.43-16.784h-20.574l-3.43-3.729z" fill="#ca3745"/> - <path d="M372.05 391.54l1.903-1.949h22.834l17.126-19.489h19.029l17.126 19.489h22.835l1.903 1.949-1.903 1.948h-22.835l-15.223 17.54h-22.834l-15.224-17.54h-22.834l-1.903-1.948z" transform="matrix(.93104 0 0 .90908 -466.86 -221.29)" stroke="#000" stroke-width=".29" fill="#ca3745"/> - <path d="M-64.071 136.148l6.858 7.458-3.428 3.73-1.715-1.865h-1.714v1.865l1.714 1.865h3.43l3.428-3.73v-3.73l-6.857-7.458 6.857-7.46v-3.73l-3.429-3.729h-3.428l-1.715 1.864v1.865h1.715l1.714-1.865 3.428 3.73-6.857 7.46-6.859-7.46 6.859-7.46v-1.863h-1.715l-6.857 7.458-6.859-7.46h-1.715v1.865l6.859 7.46-6.859 7.46-6.858-7.46 3.429-3.73 1.715 1.865h1.714v-1.865l-1.714-1.864h-3.43l-3.429 3.73v3.729l6.859 7.46-6.859 7.46v3.729l3.43 3.73h3.429l1.714-1.865v-1.865h-1.714l-1.715 1.865-3.429-3.73 6.858-7.46 6.858 7.46-6.858 7.46v1.864h1.714l6.859-7.46 6.858 7.46h1.714v-1.865l-6.858-7.46 6.858-7.458zm-8.572-9.325l-6.859 7.46 6.859 7.46 6.858-7.46-6.858-7.46zM-82.917 154.79v14.918l1.715-1.865 1.715 1.865 1.714-1.865 1.714 1.865 1.715-1.865 1.714 1.865 1.715-1.865 1.715 1.865 1.714-1.865 1.715 1.865 1.713-1.865 1.715 1.865V154.79h-20.574zM-62.353 113.79V98.872l-1.715 1.865-1.715-1.865-1.714 1.865-1.714-1.865-1.715 1.865-1.714-1.865-1.715 1.865-1.715-1.865-1.714 1.865-1.715-1.865-1.713 1.865-1.715-1.865v14.918h20.574zM-33.205 130.58v-14.918l-1.715 1.865-1.713-1.865-1.715 1.865-1.715-1.865-1.714 1.865-1.715-1.865-1.714 1.865-1.714-1.865v14.918h13.715zM-98.355 130.58v-14.918l-1.715 1.865-1.713-1.865-1.715 1.865-1.715-1.865-1.714 1.865-1.715-1.865-1.714 1.865-1.714-1.865v14.918h13.715zM-33.205 138.01v14.918l-1.715-1.865-1.713 1.865-1.715-1.865-1.715 1.865-1.714-1.865-1.715 1.865-1.714-1.865-1.714 1.865V138.01h13.715zM-98.355 138.01v14.918l-1.715-1.865-1.713 1.865-1.715-1.865-1.715 1.865-1.714-1.865-1.715 1.865-1.714-1.865-1.714 1.865V138.01h13.715z" fill="#faae29"/> - <path d="M-62.347 154.79v9.324l1.714-1.866 1.715 1.866 1.714-1.866 1.714 1.866 1.715-1.866 1.714 1.866 1.715-1.866 1.714 1.866 1.715-1.866v-24.242l-15.43 16.784zM-82.933 154.79v9.325l-1.715-1.866-1.715 1.866-1.714-1.866-1.714 1.866-1.715-1.866-1.714 1.866-1.715-1.866-1.714 1.866-1.715-1.866.001-24.243 15.43 16.784zM-82.933 113.79v-9.324l-1.714 1.866-1.715-1.866-1.714 1.866-1.714-1.866-1.715 1.866-1.714-1.866-1.715 1.866-1.714-1.866-1.715 1.866v24.242l15.43-16.784zM-62.347 113.79v-9.324l1.714 1.866 1.715-1.866 1.714 1.866 1.714-1.866 1.715 1.866 1.714-1.866 1.715 1.866 1.714-1.866 1.715 1.866v24.242l-15.43-16.784zM-112.078 149.206l-1.715-1.865-1.713 1.865-1.714-1.865-1.715 1.865-1.715-1.865-1.715 1.865-1.713-1.865-1.715 1.865v-29.838l1.714 1.866 1.714-1.866 1.715 1.866 1.714-1.866 1.715 1.866 1.714-1.866 1.714 1.866 1.715-1.866v11.19h-6.857l-3.43 3.73 3.43 3.73h6.857v11.188zM-33.202 149.206l1.715-1.865 1.713 1.865 1.714-1.865 1.715 1.865 1.715-1.865 1.715 1.865 1.713-1.865 1.715 1.865v-29.838l-1.714 1.866-1.714-1.866-1.715 1.866-1.714-1.866-1.715 1.866-1.714-1.866-1.714 1.866-1.715-1.866v11.19h6.857l3.43 3.73-3.43 3.73h-6.857v11.188z" fill="#28ae66"/> - <path d="M-91.36 155.978s-1.428 1.474-1.428 2.21c-.028.687 1.524 2.227 2.143 2.211.81.016 2.143-1.474 2.143-2.21 0-.737-1.43-2.211-1.43-2.211v-2.948s3.104 5.068 3.104 2.857c0-1.586-3.103-4.331-3.103-4.331h-1.429s-3.103 3.214-3.103 4.33c0 2.212 3.103-2.856 3.103-2.856v2.948z" fill="#fff"/> - <path d="M-73.497 161.669s-1.715 2.063-1.715 3.095c-.034.962 1.829 3.118 2.572 3.095.971.023 2.572-2.063 2.572-3.095s-1.715-3.095-1.715-3.095v-4.127s3.037 6.751 3.037 3.656c0-2.001-3.037-5.72-3.037-5.72h-1.714s-3.506 4.656-3.037 5.72c0 3.095 3.037-3.656 3.037-3.656v4.127z" fill="#ca3745"/> - <ellipse fill="#28ae66" transform="matrix(.96774 0 0 1.0526 -482.4 -277.85)" cx="403.94" rx="3.543" cy="391.54" ry="1.772"/> - <ellipse fill="#28ae66" transform="matrix(.96774 0 0 1.0526 -463.54 -277.85)" cx="403.94" rx="3.543" cy="391.54" ry="1.772"/> - <ellipse fill="#28ae66" transform="matrix(.96774 0 0 1.0526 -444.69 -277.85)" cx="403.94" rx="3.543" cy="391.54" ry="1.772"/> - <path d="M-91.72 112.76s-1.428-1.474-1.428-2.21c-.028-.688 1.524-2.228 2.143-2.211.81-.017 2.143 1.473 2.143 2.21 0 .737-1.43 2.211-1.43 2.211v2.948s3.104-5.068 3.104-2.857c0 1.586-3.103 4.33-3.103 4.33h-1.429s-3.103-3.213-3.103-4.33c0-2.21 3.103 2.857 3.103 2.857v-2.948z" fill="#fff"/> - <path d="M-73.857 107.062s-1.715-2.063-1.715-3.095c-.034-.962 1.829-3.118 2.572-3.095.971-.023 2.572 2.063 2.572 3.095s-1.715 3.095-1.715 3.095v4.127s3.037-6.751 3.037-3.656c0 2.001-3.037 5.72-3.037 5.72h-1.714s-3.506-4.656-3.037-5.72c0-3.095 3.037 3.656 3.037 3.656v-4.127z" fill="#ca3745"/> - <path d="M-54.86 155.978s-1.428 1.474-1.428 2.21c-.028.687 1.524 2.227 2.143 2.211.81.016 2.143-1.474 2.143-2.21 0-.737-1.43-2.211-1.43-2.211v-2.948s3.104 5.068 3.104 2.857c0-1.586-3.103-4.331-3.103-4.331h-1.429s-3.103 3.214-3.103 4.33c0 2.212 3.103-2.856 3.103-2.856v2.948zM-55.22 112.76s-1.428-1.474-1.428-2.21c-.028-.688 1.524-2.228 2.143-2.211.81-.017 2.143 1.473 2.143 2.21 0 .737-1.43 2.211-1.43 2.211v2.948s3.104-5.068 3.104-2.857c0 1.586-3.103 4.33-3.103 4.33h-1.429s-3.103-3.213-3.103-4.33c0-2.21 3.103 2.857 3.103 2.857v-2.948z" fill="#fff"/> - <path d="M-106.273 145.593s-1.9 1.383-1.9 2.074c-.037.644 2.026 2.089 2.85 2.074 1.076.015 2.85-1.383 2.85-2.074 0-.691-1.9-2.074-1.9-2.074v-2.765s3.364 4.523 3.364 2.45c0-1.342-3.365-3.833-3.365-3.833h-1.9s-3.882 3.119-3.363 3.832c0 2.074 3.364-2.45 3.364-2.45v2.766zM-106.673 124.471s-1.9-1.383-1.9-2.074c-.037-.644 2.026-2.09 2.85-2.074 1.076-.015 2.85 1.383 2.85 2.074 0 .691-1.9 2.074-1.9 2.074v2.765s3.364-4.524 3.364-2.45c0 1.342-3.365 3.833-3.365 3.833h-1.9s-3.882-3.12-3.363-3.832c0-2.074 3.364 2.45 3.364 2.45v-2.766zM-40.423 145.15s-1.9 1.384-1.9 2.075c-.037.644 2.026 2.089 2.85 2.074 1.076.015 2.85-1.383 2.85-2.074 0-.691-1.9-2.074-1.9-2.074v-2.765s3.364 4.523 3.364 2.45c0-1.342-3.365-3.833-3.365-3.833h-1.9s-3.882 3.119-3.363 3.832c0 2.074 3.364-2.45 3.364-2.45v2.766zM-40.823 124.031s-1.9-1.383-1.9-2.074c-.037-.644 2.026-2.09 2.85-2.074 1.076-.015 2.85 1.383 2.85 2.074 0 .691-1.9 2.074-1.9 2.074v2.765s3.364-4.524 3.364-2.45c0 1.342-3.365 3.833-3.365 3.833h-1.9s-3.882-3.12-3.363-3.832c0-2.074 3.364 2.45 3.364 2.45v-2.766z" fill="#ca3745"/> - <path d="M-120.285 145.363c-.615-1.277-.453-1.86-.453-2.597-.028-.687 1.716-2.025 2.336-2.009.809-.016 2.143 1.474 2.143 2.21 0 .737.034 1.374-.298 2.644l-.893-2.154c-1.084 3.056-1.143 3.127-1.787-.074l-1.048 1.98zM-120.225 123.93c-.615 1.278-.453 1.862-.453 2.598-.028.687 1.716 2.025 2.336 2.009.809.016 2.143-1.474 2.143-2.21 0-.737.034-1.374-.298-2.644l-.893 2.154c-1.084-3.056-1.143-3.127-1.787.074l-1.048-1.98zM-27.805 145.093c-.615-1.277-.453-1.86-.453-2.597-.028-.687 1.716-2.025 2.336-2.009.809-.016 2.143 1.474 2.143 2.21 0 .737.034 1.374-.298 2.644l-.893-2.154c-1.084 3.056-1.143 3.127-1.787-.074l-1.048 1.98zM-27.755 123.655c-.615 1.277-.453 1.86-.453 2.597-.028.687 1.716 2.025 2.336 2.009.809.016 2.143-1.474 2.143-2.21 0-.737.034-1.374-.298-2.644l-.893 2.154c-1.084-3.056-1.143-3.127-1.787.074l-1.048-1.98z" fill="#fff"/> - <path d="M115.16 177.16v-5.315H99.216v-10.63H85.043v-3.543H72.641v-31.89h12.402v-3.543h14.173v-10.63h15.944v-5.315h21.26v5.315h15.945v10.63h14.173v3.543h12.402v31.89h-12.402v3.543h-14.173v10.63H136.42v5.315h-21.26zm-1.772 1.772v-5.315H97.444v-10.63H83.271v-3.543H70.869v-35.433h12.402v-3.544h14.173v-10.63h15.945v-5.315h24.803v5.315h15.945v10.63h14.173v3.544h12.402v35.433H168.31v3.543h-14.173v10.63h-15.945v5.315h-24.804z" transform="matrix(1 0 0 .99999 -198.43 -7.085)" stroke="#000" stroke-width=".133" fill="#ca3745"/> - </g> - </g> -</svg> diff --git a/img/flags/4x3/tn.svg b/img/flags/4x3/tn.svg deleted file mode 100644 index 55e4d5b..0000000 --- a/img/flags/4x3/tn.svg +++ /dev/null @@ -1,13 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" height="480" width="640" viewBox="0 0 640 480"> - <defs> - <clipPath id="a"> - <path fill-opacity=".67" d="M-85.333 0h682.67v512h-682.67z"/> - </clipPath> - </defs> - <g fill-rule="evenodd" clip-path="url(#a)" transform="translate(80) scale(.9375)"> - <path fill="#e70013" d="M-128 0h768v512h-768z"/> - <path d="M385.808 255.773c0 71.316-57.813 129.129-129.129 129.129-71.317 0-129.13-57.814-129.13-129.13s57.814-129.129 129.13-129.129c71.317 0 129.13 57.814 129.13 129.13z" fill="#fff"/> - <path d="M256.68 341.41c-47.27 0-85.635-38.364-85.635-85.635s38.364-85.636 85.635-85.636c11.818 0 25.27 2.719 34.407 9.43-62.63 2.357-78.472 55.477-78.472 76.885s10.128 69.154 78.471 76.205c-7.777 5.013-22.588 8.75-34.406 8.75z" fill="#e70013"/> - <path fill="#e70013" d="M332.11 291.785l-38.89-14.18-25.72 32.417 1.477-41.356-38.787-14.45 39.798-11.373 1.744-41.356 23.12 34.338 39.87-11.116-25.504 32.594z"/> - </g> -</svg> diff --git a/img/flags/4x3/to.svg b/img/flags/4x3/to.svg deleted file mode 100644 index 50a6fb9..0000000 --- a/img/flags/4x3/to.svg +++ /dev/null @@ -1,10 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" height="480" width="640" viewBox="0 0 640 480"> - <g fill-rule="evenodd" stroke-width="1pt"> - <path fill="#c10000" d="M0 0h640v480H0z"/> - <path fill="#fff" d="M0 0h249.954v200.321H0z"/> - <g fill="#c10000"> - <path d="M102.854 31.24h39.84v139.54h-39.84z"/> - <path d="M192.55 81.086v39.84H53.01v-39.84z"/> - </g> - </g> -</svg> diff --git a/img/flags/4x3/tr.svg b/img/flags/4x3/tr.svg deleted file mode 100644 index 5300199..0000000 --- a/img/flags/4x3/tr.svg +++ /dev/null @@ -1,8 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" height="480" width="640" viewBox="0 0 640 480"> - <g fill-rule="evenodd"> - <path fill="#f31930" d="M0 0h640v480H0z"/> - <path d="M406.977 247.473c0 66.215-54.606 119.89-121.97 119.89S163.04 313.686 163.04 247.472s54.606-119.89 121.968-119.89 121.97 53.677 121.97 119.89z" fill="#fff"/> - <path d="M413.077 247.467c0 52.97-43.686 95.91-97.575 95.91s-97.574-42.94-97.574-95.91 43.686-95.91 97.574-95.91 97.575 42.94 97.575 95.91z" fill="#f31830"/> - <path d="M430.726 191.465l-.985 44.318-41.345 11.225 40.756 14.514-.984 40.642 26.58-31.738 40.164 13.934-23.233-34.06 28.352-33.868-43.513 11.998-25.793-36.964z" fill="#fff"/> - </g> -</svg> diff --git a/img/flags/4x3/tt.svg b/img/flags/4x3/tt.svg deleted file mode 100644 index 4aac679..0000000 --- a/img/flags/4x3/tt.svg +++ /dev/null @@ -1,5 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" height="480" width="640" viewBox="0 0 640 480"> - <path fill="#fff" d="M0 0h640v480H0z"/> - <path d="M463.663 480L.05 1.003 0 479.747l463.663.253zM176.337 0L639.95 478.997 640 .253 176.337 0z" fill-rule="evenodd" fill="#e00000"/> - <path d="M27.74.23h118.597l468.176 479.315h-122.35L27.738.229z" fill-rule="evenodd"/> -</svg> diff --git a/img/flags/4x3/tv.svg b/img/flags/4x3/tv.svg deleted file mode 100644 index 93ae8e5..0000000 --- a/img/flags/4x3/tv.svg +++ /dev/null @@ -1,29 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" height="480" width="640" viewBox="0 0 640 480"> - <defs> - <clipPath id="a"> - <path fill-opacity=".67" d="M0 0h640v480H0z"/> - </clipPath> - </defs> - <g clip-path="url(#a)"> - <g fill-rule="evenodd" transform="matrix(.64508 0 0 .92059 0 23.331)" stroke-width="1pt" fill="#009fca"> - <path d="M505.97-19.81h486.16v515.87H505.97z"/> - <rect ry="0" height="521.41" width="523.49" y="-25.343"/> - </g> - <path fill-rule="evenodd" fill="#fff" d="M.017 0h395.857v196.597H.017z"/> - <path d="M.016 0L0 14.757l94.465 48.539 35.543 1.029L.017 0z" fill="#c00"/> - <path d="M40.463 0l114.523 59.822V0H40.463z" fill="#006"/> - <path fill="#c00" d="M170.26 0v76.368H.018v43.639H170.26v76.367h52.385v-76.367H392.89V76.368H222.646V.001H170.26z"/> - <path d="M237.921 0v56.368L349.967.438 237.921 0z" fill="#006"/> - <path d="M241.462 62.513l31.514-.253L395.394.437l-32.49.53-121.442 61.546z" fill="#c00"/> - <path d="M.016 132.736v41.82l78.576-41.39-78.576-.435z" fill="#006"/> - <path d="M302.588 134.462l-32.755-.255 123.474 61.477-.813-14.065-89.904-47.157zm-271.884 62.25l115.774-60.777-30.407.2L.02 196.63" fill="#c00"/> - <path d="M394.55 17.271l-93.502 46.368 92.257.345v69.093H314.73l77.848 42.181 1.143 21.458-41.581-.497-113.8-55.869v56.366H155.4V140.35L48.65 196.565l-48.213.152v196.37h785.75V.347l-390.82-.34M.417 22.171L.002 62.954l82.722 1.037L.417 22.171z" fill="#006"/> - <g fill-rule="evenodd" transform="matrix(.79241 0 0 .79977 .006 0)" fill="#009fca"> - <path d="M496.06 0h496.06v496.06H496.06z"/> - <rect rx="0" ry="0" height="251.45" width="525.79" y="244.61" x="-2.303"/> - </g> - <g fill-rule="evenodd" stroke-width="1pt" fill="#fff40d"> - <path d="M593.34 122.692l27.572-.018-22.32 15.232 8.54 24.674-22.293-15.27-22.293 15.266 8.544-24.67-22.316-15.24 27.571.026 8.498-24.684zM524.14 319.472l27.571-.019-22.32 15.233 8.54 24.673-22.293-15.269-22.293 15.266 8.544-24.67-22.316-15.24 27.571.026 8.498-24.685zM593.34 274.927l27.572-.018-22.32 15.232 8.54 24.673-22.293-15.269-22.293 15.266 8.544-24.67-22.316-15.24 27.571.026 8.498-24.684zM295.788 417.646l27.572-.019-22.32 15.233 8.54 24.673-22.293-15.269-22.293 15.266 8.544-24.67-22.317-15.24 27.572.026 8.498-24.684zM358.362 341.16l-27.572.018 22.32-15.232-8.54-24.674 22.293 15.27 22.293-15.266-8.544 24.67 22.316 15.24-27.571-.026-8.498 24.684zM439.668 228.716l-27.571.018 22.32-15.233-8.54-24.673 22.293 15.27 22.293-15.266-8.544 24.67 22.316 15.24-27.571-.026-8.498 24.684zM508.004 205.355l-27.572.018 22.32-15.232-8.54-24.674 22.293 15.27 22.293-15.266-8.544 24.67 22.316 15.24-27.571-.026-8.498 24.684zM439.668 399.972l-27.571.018 22.32-15.233-8.54-24.673 22.293 15.27 22.293-15.266-8.544 24.67 22.316 15.24-27.571-.026-8.498 24.684zM358.362 419.87l-27.572.018 22.32-15.233-8.54-24.673 22.293 15.269 22.293-15.266-8.544 24.67 22.316 15.24-27.571-.026-8.498 24.684z"/> - </g> - </g> -</svg> diff --git a/img/flags/4x3/tw.svg b/img/flags/4x3/tw.svg deleted file mode 100644 index 6b7bd11..0000000 --- a/img/flags/4x3/tw.svg +++ /dev/null @@ -1,14 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" height="480" width="640" viewBox="0 0 640 480"> - <defs> - <clipPath id="a"> - <path fill-opacity=".67" d="M0 0h682.67v512H0z"/> - </clipPath> - </defs> - <g fill-rule="evenodd" clip-path="url(#a)" transform="scale(.9375)" stroke-width="1pt"> - <path fill="#de2110" d="M0 0h768v512H0z"/> - <path fill="#08399c" d="M0 0h385.69v256H0z"/> - <path fill="#fff" d="M282.098 178.555l-47.332-9.733 10.083 47.26-36.133-32.088-14.904 45.97-15.244-45.867-35.886 32.367 9.733-47.332-47.26 10.073 32.088-36.123-45.969-14.904 45.855-15.244-32.356-35.89 47.332 9.73-10.073-47.262 36.123 32.093 14.904-45.97 15.244 45.859 35.886-32.36-9.733 47.335 47.26-10.08-32.088 36.132 45.97 14.893-45.856 15.244z"/> - <path fill="#005387" d="M238.47 174.924l-14.935 7.932-14.57 8.608-16.918-.583-16.919.198-14.36-8.941-14.759-8.275-7.953-14.906-8.631-14.52.574-16.874-.188-16.883 8.965-14.32 8.298-14.716 14.935-7.934 14.57-8.607 16.919.58 16.928-.193 14.362 8.94 14.747 8.275 7.953 14.901 8.632 14.52-.574 16.874.187 16.883-8.965 14.323z"/> - <path d="M244.637 128.28c0 28.646-23.222 51.867-51.866 51.867s-51.867-23.221-51.867-51.866 23.222-51.866 51.867-51.866 51.866 23.221 51.866 51.866z" fill="#fff"/> - </g> -</svg> diff --git a/img/flags/4x3/tz.svg b/img/flags/4x3/tz.svg deleted file mode 100644 index 1a811af..0000000 --- a/img/flags/4x3/tz.svg +++ /dev/null @@ -1,13 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" height="480" width="640" viewBox="0 0 640 480"> - <defs> - <clipPath id="a"> - <path fill-opacity=".67" d="M10 0h160v120H10z"/> - </clipPath> - </defs> - <g clip-path="url(#a)" fill-rule="evenodd" transform="matrix(4 0 0 4 -40 0)" stroke-width="1pt"> - <path fill="#09f" d="M0 0h180v120H0z"/> - <path d="M0 0h180L0 120V0z" fill="#090"/> - <path d="M0 120h40l140-95V0h-40L0 95v25z"/> - <path d="M0 91.456L137.18 0h13.52L0 100.47v-9.014zM29.295 120l150.7-100.47v9.014L42.815 120h-13.52z" fill="#ff0"/> - </g> -</svg> diff --git a/img/flags/4x3/ua.svg b/img/flags/4x3/ua.svg deleted file mode 100644 index 2f68876..0000000 --- a/img/flags/4x3/ua.svg +++ /dev/null @@ -1,6 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" height="480" width="640" viewBox="0 0 640 480"> - <g fill-rule="evenodd" stroke-width="1pt"> - <path fill="#ffd500" d="M0 0h640v480H0z"/> - <path fill="#005bbb" d="M0 0h640v240H0z"/> - </g> -</svg> diff --git a/img/flags/4x3/ug.svg b/img/flags/4x3/ug.svg deleted file mode 100644 index b44b45b..0000000 --- a/img/flags/4x3/ug.svg +++ /dev/null @@ -1,30 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" height="480" width="640" viewBox="0 0 640 480"> - <defs> - <clipPath id="a"> - <path fill-opacity=".67" d="M-85.333 0h682.67v512h-682.67z"/> - </clipPath> - </defs> - <g clip-path="url(#a)" transform="translate(80) scale(.9375)"> - <path fill-rule="evenodd" fill="#ffe700" d="M-128 341.36h768v85.321h-768z"/> - <path fill-rule="evenodd" d="M-128 256h768v85.321h-768z"/> - <path fill-rule="evenodd" fill="#de3908" d="M-128 170.68h768v85.321h-768z"/> - <path fill-rule="evenodd" fill="#ffe700" d="M-128 85.358h768v85.321h-768z"/> - <path fill-rule="evenodd" d="M-128 0h768v85.321h-768z"/> - <path d="M335.71 255.997c0 44.023-35.688 79.71-79.71 79.71s-79.71-35.687-79.71-79.71 35.687-79.71 79.71-79.71 79.71 35.687 79.71 79.71z" fill-rule="evenodd" stroke="#000" stroke-width=".98563086" fill="#fffdff"/> - <path d="M241.936 194.89l-5.175-9.531c1.997-1.997 5.356-3.54 10.712-3.54 0 .363-.545 10.44-.545 10.44l-4.992 2.632z" fill-rule="evenodd" stroke="#000" stroke-width=".98563086" fill="#de3108"/> - <path d="M246.926 192.354l.727-10.53s10.712-.636 16.522 6.354c.09-.09-5.72 8.17-5.72 8.17l-11.529-3.994z" fill-rule="evenodd" stroke="#000" stroke-width=".98563086" fill="#ffe700"/> - <path d="M258.64 196.256l5.265-8.17c3.54 3.723 4.993 6.355 5.538 10.35.09.09-8.352 2.087-8.352 1.996s-2.36-4.085-2.45-4.176z" fill-rule="evenodd" stroke="#000" stroke-width=".98563086" fill="#de3108"/> - <path stroke-linejoin="round" d="M244.57 331.153s9.895-11.348 29.14-8.896c-2.905-4.72-12.255-4.176-12.255-4.176s-2.905-22.06-.636-23.15 11.892.092 11.892.092c1.27 0 3.45-3.45 1.726-5.629-1.726-2.179-6.809-10.53-4.721-12.165 2.088-1.634 13.435.908 13.435.908l-32.045-41.032s-3.268-15.433 3.268-22.877c7.898-6.536 7.081-13.617 6.809-13.527-1.09-7.171-11.983-12.346-19.337-5.719-4.357 5.265-1.452 9.26-1.452 9.26s-11.439 3.086-11.893 5.083c-.454 1.998 12.891-.362 12.891-.362l-1.27 9.169s-25.964 23.602-6.083 44.028c.182-.091.636-.908.636-.908s6.99 8.624 14.342 10.53c6.9 7.082 6.265 5.992 6.265 5.992s1.361 11.166.09 13.345c-1.724-.545-19.335-1.18-21.969-.182-2.36.727-11.438.273-9.168 15.07 1.724-3.994 3.268-7.535 3.268-7.535s-.273 5.356 1.906 7.263c-.363-5.63 2.088-9.441 2.088-9.441s.454 6.173 1.816 7.08c1.362.908 1.362-9.986 8.897-9.078 7.534.908 12.981.636 12.981.636s2.542 21.333 1.725 23.33c-5.448-1.27-18.429.545-19.246 3.813 7.625-.454 11.167.454 11.167.454s-6.173 5.447-4.267 8.624z" fill-rule="evenodd" stroke="#000" stroke-linecap="round" stroke-width=".92394229"/> - <path stroke-linejoin="round" d="M247.626 214.749s-18.892 20.823-10.741 36.757c.434-2.222.245-3.618.517-3.527-.454-.272 2.343 1.917 2.13 1.491.06-1.152-.852-3.62-.852-3.62l2.556.638-1.491-2.769 3.621.426s-1.278-3.408-.851-3.408c.425 0 2.981.212 2.981.212-5.372-9.641-.304-17.648 2.13-26.2z" fill-rule="evenodd" stroke="#9ca69c" stroke-linecap="round" stroke-width=".92394229" fill="#9ca69c"/> - <path d="M254.19 196.887s1 7.172-2.905 9.26c-.635.454-3.086 1.27-2.723 2.724.454 1.997 1.543 1.633 3.087 1.27 4.084-.726 8.805-9.441 2.541-13.254z" fill-rule="evenodd" stroke="#9ca69c" stroke-width=".98563086" fill="#9ca69c"/> - <path d="M247.204 203.063a1.543 1.543 0 1 1-3.087 0 1.543 1.543 0 0 1 3.087 0z" fill-rule="evenodd" fill="#fff"/> - <path d="M241.118 209.052c-.999.817-6.264 6.264-1.09 8.26 5.357-1.452 3.904-2.45 5.084-3.63.03-2.451-2.663-3.087-3.994-4.63z" fill-rule="evenodd" stroke="#000" stroke-width=".98563086" fill="#de3108"/> - <path stroke-linejoin="round" d="M252.554 260.53c-.272 1.18-1.452 5.538.182 8.897 4.54-1.907 6.627-1.362 8.17-.364-3.72-2.995-5.174-4.267-8.352-8.533z" fill-rule="evenodd" stroke="#9ca69c" stroke-linecap="round" stroke-width=".92394229" fill="#9ca69c"/> - <path stroke-linejoin="round" d="M260.366 281.137l.272 10.168s3.541.635 5.175 0c1.634-.636-.091-7.081-5.447-10.168z" fill-rule="evenodd" stroke="#fff" stroke-linecap="round" stroke-width=".92394229" fill="#fff"/> - <path d="M286.053 282.405s-6.536-15.795-23.24-19.79-14.525-21.787-13.163-22.877c.727-1.543 1.271-3.903 6.082-1.633 4.812 2.27 26.963 13.435 30.14 13.98s.454 30.684.181 30.32z" fill-rule="evenodd" stroke="#000" stroke-width=".98563086" fill="#9ca69c"/> - <path stroke-linejoin="round" d="M270.167 262.526c-.272.182 22.332 13.345 15.523 24.693 6.446-4.267 4.358-11.71 4.358-11.71s5.265 13.707-7.535 20.425c1.362 1.18 2.27.907 2.27.907l-2.18 2.18s-.998 1.633 7.627-2.543c-2.361 1.907-2.542 3.268-2.542 3.268s.635 1.816 6.264-3.086c-4.54 4.902-5.538 7.444-5.538 7.353 12.255-1.09 38.944-40.942-8.443-52.744 2.543 2.634 2.179 2.27 2.179 2.27l-11.983 8.987z" fill-rule="evenodd" stroke="#000" stroke-width=".92394229" fill="#de3108"/> - <path stroke-linejoin="round" d="M271.165 258.624c3.087 2.179 4.175 2.905 4.539 3.995-2.814-.635-5.356-.454-5.356-.454s-6.082-5.81-7.172-6.264c-.817 0-5.537-2.996-5.537-2.996-2.36-1.18-4.539-9.35 4.176-6.99 8.986 4.266 10.257 4.63 10.257 4.63l10.713 3.359 6.173 6.9s-10.984-5.448-12.346-5.539c2.995 2.451 4.72 5.81 4.72 5.81-3.48-.999-6.505-1.906-10.167-2.45z" fill-rule="evenodd" stroke="#000" stroke-linecap="round" stroke-width=".92394229" fill="#fff"/> - <path d="M228.413 209.87s10.53-2.542 11.801-2.18" stroke="#fff" stroke-linecap="round" stroke-width=".92394229" fill="none"/> - <path fill-rule="evenodd" fill="#de3908" d="M-128 426.68h768v85.321h-768z"/> - </g> -</svg> diff --git a/img/flags/4x3/um.svg b/img/flags/4x3/um.svg deleted file mode 100644 index 7aab3fd..0000000 --- a/img/flags/4x3/um.svg +++ /dev/null @@ -1,45 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" height="480" width="640" viewBox="0 0 640 480"> - <defs> - <clipPath id="a"> - <path fill-opacity=".67" d="M0 0h682.67v512H0z"/> - </clipPath> - </defs> - <g fill-rule="evenodd" clip-path="url(#a)" transform="scale(.9375)"> - <g stroke-width="1pt"> - <g fill="#bd3d44"> - <path d="M0 0h972.81v39.385H0zM0 78.77h972.81v39.385H0zM0 157.54h972.81v39.385H0zM0 236.31h972.81v39.385H0zM0 315.08h972.81v39.385H0zM0 393.85h972.81v39.385H0zM0 472.62h972.81v39.385H0z"/> - </g> - <g fill="#fff"> - <path d="M0 39.385h972.81V78.77H0zM0 118.155h972.81v39.385H0zM0 196.925h972.81v39.385H0zM0 275.695h972.81v39.385H0zM0 354.465h972.81v39.385H0zM0 433.235h972.81v39.385H0z"/> - </g> - </g> - <path fill="#192f5d" d="M0 0h389.12v275.69H0z"/> - <g fill="#fff"> - <path d="M32.427 11.8l3.54 10.896h11.458l-9.27 6.735 3.541 10.896-9.27-6.734-9.268 6.734 3.54-10.896-9.269-6.735h11.457zM97.28 11.8l3.541 10.896h11.458l-9.27 6.735 3.541 10.896-9.27-6.734-9.268 6.734 3.54-10.896-9.269-6.735H93.74zM162.136 11.8l3.54 10.896h11.458l-9.27 6.735 3.541 10.896-9.269-6.734-9.269 6.734 3.54-10.896-9.269-6.735h11.458zM226.988 11.8l3.54 10.896h11.457l-9.269 6.735 3.54 10.896-9.268-6.734-9.27 6.734 3.541-10.896-9.27-6.735h11.458zM291.843 11.8l3.54 10.896h11.458l-9.27 6.735 3.541 10.896-9.27-6.734-9.268 6.734 3.54-10.896-9.269-6.735h11.457zM356.698 11.8l3.54 10.896h11.458l-9.27 6.735 3.541 10.896-9.269-6.734-9.27 6.734 3.542-10.896-9.27-6.735h11.458z"/> - <g> - <path d="M64.855 39.37l3.54 10.896h11.458L70.583 57l3.542 10.897-9.27-6.734-9.269 6.734L59.126 57l-9.269-6.734h11.458zM129.707 39.37l3.54 10.896h11.457L135.435 57l3.54 10.897-9.268-6.734-9.27 6.734L123.978 57l-9.27-6.734h11.458zM194.562 39.37l3.54 10.896h11.458L200.29 57l3.541 10.897-9.27-6.734-9.268 6.734L188.833 57l-9.269-6.734h11.457zM259.417 39.37l3.54 10.896h11.458L265.145 57l3.541 10.897-9.269-6.734-9.27 6.734L253.69 57l-9.27-6.734h11.458zM324.269 39.37l3.54 10.896h11.457L329.997 57l3.54 10.897-9.268-6.734-9.27 6.734L318.54 57l-9.27-6.734h11.458z"/> - </g> - <g> - <path d="M32.427 66.939l3.54 10.896h11.458l-9.27 6.735 3.541 10.896-9.27-6.734-9.268 6.734 3.54-10.896-9.269-6.735h11.457zM97.28 66.939l3.541 10.896h11.458l-9.27 6.735 3.541 10.896-9.27-6.734-9.268 6.734 3.54-10.896-9.269-6.735H93.74zM162.136 66.939l3.54 10.896h11.458l-9.27 6.735 3.541 10.896-9.269-6.734-9.269 6.734 3.54-10.896-9.269-6.735h11.458zM226.988 66.939l3.54 10.896h11.457l-9.269 6.735 3.54 10.896-9.268-6.734-9.27 6.734 3.541-10.896-9.27-6.735h11.458zM291.843 66.939l3.54 10.896h11.458l-9.27 6.735 3.541 10.896-9.27-6.734-9.268 6.734 3.54-10.896-9.269-6.735h11.457zM356.698 66.939l3.54 10.896h11.458l-9.27 6.735 3.541 10.896-9.269-6.734-9.27 6.734 3.542-10.896-9.27-6.735h11.458z"/> - <g> - <path d="M64.855 94.508l3.54 10.897h11.458l-9.27 6.734 3.542 10.897-9.27-6.734-9.269 6.734 3.54-10.897-9.269-6.734h11.458zM129.707 94.508l3.54 10.897h11.457l-9.269 6.734 3.54 10.897-9.268-6.734-9.27 6.734 3.541-10.897-9.27-6.734h11.458zM194.562 94.508l3.54 10.897h11.458l-9.27 6.734 3.541 10.897-9.27-6.734-9.268 6.734 3.54-10.897-9.269-6.734h11.457zM259.417 94.508l3.54 10.897h11.458l-9.27 6.734 3.541 10.897-9.269-6.734-9.27 6.734 3.542-10.897-9.27-6.734h11.458zM324.269 94.508l3.54 10.897h11.457l-9.269 6.734 3.54 10.897-9.268-6.734-9.27 6.734 3.541-10.897-9.27-6.734h11.458z"/> - </g> - </g> - <g> - <path d="M32.427 122.078l3.54 10.896h11.458l-9.27 6.735 3.541 10.896-9.27-6.734-9.268 6.734 3.54-10.896-9.269-6.735h11.457zM97.28 122.078l3.541 10.896h11.458l-9.27 6.735 3.541 10.896-9.27-6.734-9.268 6.734 3.54-10.896-9.269-6.735H93.74zM162.136 122.078l3.54 10.896h11.458l-9.27 6.735 3.541 10.896-9.269-6.734-9.269 6.734 3.54-10.896-9.269-6.735h11.458zM226.988 122.078l3.54 10.896h11.457l-9.269 6.735 3.54 10.896-9.268-6.734-9.27 6.734 3.541-10.896-9.27-6.735h11.458zM291.843 122.078l3.54 10.896h11.458l-9.27 6.735 3.541 10.896-9.27-6.734-9.268 6.734 3.54-10.896-9.269-6.735h11.457zM356.698 122.078l3.54 10.896h11.458l-9.27 6.735 3.541 10.896-9.269-6.734-9.27 6.734 3.542-10.896-9.27-6.735h11.458z"/> - <g> - <path d="M64.855 149.647l3.54 10.897h11.458l-9.27 6.734 3.542 10.897-9.27-6.734-9.269 6.734 3.54-10.897-9.269-6.734h11.458zM129.707 149.647l3.54 10.897h11.457l-9.269 6.734 3.54 10.897-9.268-6.734-9.27 6.734 3.541-10.897-9.27-6.734h11.458zM194.562 149.647l3.54 10.897h11.458l-9.27 6.734 3.541 10.897-9.27-6.734-9.268 6.734 3.54-10.897-9.269-6.734h11.457zM259.417 149.647l3.54 10.897h11.458l-9.27 6.734 3.541 10.897-9.269-6.734-9.27 6.734 3.542-10.897-9.27-6.734h11.458zM324.269 149.647l3.54 10.897h11.457l-9.269 6.734 3.54 10.897-9.268-6.734-9.27 6.734 3.541-10.897-9.27-6.734h11.458z"/> - </g> - </g> - <g> - <path d="M32.427 177.217l3.54 10.896h11.458l-9.27 6.735 3.541 10.896-9.27-6.734-9.268 6.734 3.54-10.896-9.269-6.735h11.457zM97.28 177.217l3.541 10.896h11.458l-9.27 6.735 3.541 10.896-9.27-6.734-9.268 6.734 3.54-10.896-9.269-6.735H93.74zM162.136 177.217l3.54 10.896h11.458l-9.27 6.735 3.541 10.896-9.269-6.734-9.269 6.734 3.54-10.896-9.269-6.735h11.458zM226.988 177.217l3.54 10.896h11.457l-9.269 6.735 3.54 10.896-9.268-6.734-9.27 6.734 3.541-10.896-9.27-6.735h11.458zM291.843 177.217l3.54 10.896h11.458l-9.27 6.735 3.541 10.896-9.27-6.734-9.268 6.734 3.54-10.896-9.269-6.735h11.457zM356.698 177.217l3.54 10.896h11.458l-9.27 6.735 3.541 10.896-9.269-6.734-9.27 6.734 3.542-10.896-9.27-6.735h11.458z"/> - <g> - <path d="M64.855 204.786l3.54 10.897h11.458l-9.27 6.734 3.542 10.897-9.27-6.734-9.269 6.734 3.54-10.897-9.269-6.734h11.458zM129.707 204.786l3.54 10.897h11.457l-9.269 6.734 3.54 10.897-9.268-6.734-9.27 6.734 3.541-10.897-9.27-6.734h11.458zM194.562 204.786l3.54 10.897h11.458l-9.27 6.734 3.541 10.897-9.27-6.734-9.268 6.734 3.54-10.897-9.269-6.734h11.457zM259.417 204.786l3.54 10.897h11.458l-9.27 6.734 3.541 10.897-9.269-6.734-9.27 6.734 3.542-10.897-9.27-6.734h11.458zM324.269 204.786l3.54 10.897h11.457l-9.269 6.734 3.54 10.897-9.268-6.734-9.27 6.734 3.541-10.897-9.27-6.734h11.458z"/> - </g> - </g> - <g> - <path d="M32.427 232.356l3.54 10.896h11.458l-9.27 6.735 3.541 10.896-9.27-6.734-9.268 6.734 3.54-10.896-9.269-6.735h11.457zM97.28 232.356l3.541 10.896h11.458l-9.27 6.735 3.541 10.896-9.27-6.734-9.268 6.734 3.54-10.896-9.269-6.735H93.74zM162.136 232.356l3.54 10.896h11.458l-9.27 6.735 3.541 10.896-9.269-6.734-9.269 6.734 3.54-10.896-9.269-6.735h11.458zM226.988 232.356l3.54 10.896h11.457l-9.269 6.735 3.54 10.896-9.268-6.734-9.27 6.734 3.541-10.896-9.27-6.735h11.458zM291.843 232.356l3.54 10.896h11.458l-9.27 6.735 3.541 10.896-9.27-6.734-9.268 6.734 3.54-10.896-9.269-6.735h11.457zM356.698 232.356l3.54 10.896h11.458l-9.27 6.735 3.541 10.896-9.269-6.734-9.27 6.734 3.542-10.896-9.27-6.735h11.458z"/> - </g> - </g> - </g> -</svg> diff --git a/img/flags/4x3/un.svg b/img/flags/4x3/un.svg deleted file mode 100644 index bc55502..0000000 --- a/img/flags/4x3/un.svg +++ /dev/null @@ -1,16 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" height="480" width="640" viewBox="0 0 640 480"> - <path fill="#4b92db" fill-rule="evenodd" d="M0 0h640v480H0z"/> - <g transform="matrix(.6 0 0 .6 -40.65 0)"> - <path d="M663.853 587.03c-2.694 3.08-6.18 5.956-9.466 8.608-21.233-21.943-46.16-46.262-69.854-46.262-14.69 0-25.27 11.182-37.613 19.072-17.13 10.95-40.626 17.115-60.76 9.08-10.832-4.113-21.324-10.17-29.166-20.01 15.848 10.93 39.58 12.4 57.472 4.977 19.776-8.205 39.904-19.1 62.44-19.1 33.223 0 64.797 22.474 86.947 43.636zM418.31 518.017c21.997 25.04 57.872 16.983 87.235 23.237 4.087.87 7.926 2.227 12.313 1.554-3.49-2.214-8.118-2.463-12.15-3.982-22.783-8.583-26.335-32.967-38.804-49.748 15.926 10.587 29.12 25.082 44.012 38.703 10.364 9.48 23.277 13.537 36.67 16.262-3.218 1.176-7.428.9-10.894 1.758-24.056 5.968-50.727 15.388-76.324 6.94-16.52-5.45-33.71-18.36-42.057-34.724zm-35.257-57.95c13.72 31.063 48.19 33.496 71.11 52.552 4.36 3.624 8.68 6.96 13.467 9.19l.247-.25c-5.29-4.784-11.012-10.487-15.11-16.44-13.1-19.034-8.74-45.05-18.84-65.23 9.177 10.987 17.784 22.3 23.068 34.882 8.503 20.246 11.392 43.342 30.463 58.726-20.64-6.81-44.452-5.454-63.04-17.628-19.536-12.797-37.643-32.996-41.365-55.802zm-14.697-62.846c1.984 27.368 31.12 41.987 45.014 64.484 2.967 4.805 6.02 9.765 10.33 13.645-.672-2.914-3.07-5.496-4.39-8.355-4.455-9.653-6.472-20.823-5.36-32.31 1.354-13.975 7.18-26.953 4.944-41.655 11.975 25.848 8.112 58.162 15.033 86.11 1.53 6.183 5.296 11.594 7.616 17.45-11.766-8.95-27.185-16.896-40.1-27.076-12.49-9.845-23.332-21.384-28.967-36.4-4.06-10.818-5.117-23.723-4.12-35.894zm.814-50.426c1.405-6.108 2.48-12.43 5.138-18.033-5.03 25.818 12.144 44.467 18.008 66.803 2.21 8.417 2.966 17.36 6.37 25.215.317.17.592-.16.788-.414-8.473-23.77 3.948-45.74 16.05-64.477 3.18-4.925 4.71-10.66 6.196-16.458 1.308 10.76-.982 23.217-2.973 34.32-2.563 14.297-7.45 27.696-11.332 41.49-2.557 8.616-1.883 18.34-.57 27.37l-1.235-.985c-9.01-16.632-26.784-29.625-32.152-47.778-4.29-14.508-7.258-31.27-4.288-47.053zm9.502-27.77c0-19.538 7.607-35.475 19.018-50.025.33-.166.567-.498.994-.42-12.56 19.108-1.128 43.228-2.742 64.9l-1.657 22.245c.246.162.246.83.83.574.742-2.48.967-5.12 1.4-7.68 3.023-17.932 18.77-30.414 32.124-43.074a28.528 28.528 0 0 0 6.96-10.342c-1.11 8.933-3.602 18.09-7.612 26.208-10.28 20.81-30.132 37.608-33.703 61.257-1.73-22.666-15.613-39.515-15.613-63.647zm33.112-65.904c6.316-7.004 13.396-12.46 21.824-14.617-16.366 11.253-15.477 31.366-20.488 48.183-1.832 6.15-4.525 11.91-5.957 18.265l.415.332c2.722-7.185 7.394-14.09 13.48-19.834 11.512-10.86 28.82-17.434 34.515-33.32-.26 22.076-19.08 38.858-36.266 51.84-7.71 5.824-14.26 13.642-18.258 21.838.667-6.1.97-11.175.426-17.13-1.764-19.284-2.91-40.903 10.308-55.556zm66.428-37.117c-12.146 10.658-20.25 24.377-29.582 36.71-7.76 10.256-18.41 16.61-27.567 25.218 4.943-10.255 5.856-22.007 12.134-31.93 10.735-16.966 28.478-23.55 45.015-29.997z" fill="#fff" id="a"/> - <use height="100%" width="100%" xlink:href="#a" transform="matrix(-1 0 0 1 1202.2 0)"/> - </g> - <path d="M409.012 262.008l-2.152-1.175a96.903 96.903 0 0 1-17.836 25.385l-12.575-12.575c6.16-6.35 11.127-13.555 14.786-21.343l-2.142-1.17a76.536 76.536 0 0 1-14.355 20.802l-11.392-11.39a60.04 60.04 0 0 0 11.57-17.155l-2.125-1.16a57.924 57.924 0 0 1-11.15 16.612l-12.59-12.59a39.75 39.75 0 0 0 8.044-12.598l-2.126-1.16a37.622 37.622 0 0 1-7.61 12.062l-11.426-11.424a21.203 21.203 0 0 0 5.41-13.06h16.173a37.283 37.283 0 0 1-2.546 12.423l2.128 1.16a39.822 39.822 0 0 0 2.8-13.583h17.83a57.373 57.373 0 0 1-4.935 22.158l2.126 1.16a59.92 59.92 0 0 0 5.19-23.32h16.144a75.765 75.765 0 0 1-7.16 31.06l2.14 1.172c4.69-9.974 7.236-20.907 7.404-32.23h17.828a95.868 95.868 0 0 1-9.607 40.763l2.152 1.175c6.446-13.277 9.868-27.938 9.868-43.13 0-12.92-2.475-25.454-7.18-37.082l-2.208.95c4.43 10.972 6.83 22.772 6.978 34.94h-17.83a78.51 78.51 0 0 0-5.54-27.894l-2.194.94a76.072 76.072 0 0 1 5.35 26.954H380.11a60.013 60.013 0 0 0-4.048-20.574l-2.193.942a57.65 57.65 0 0 1 3.86 19.632H359.9a39.87 39.87 0 0 0-2.416-12.59l-2.193.94a37.46 37.46 0 0 1 2.228 11.65h-16.173a21.2 21.2 0 0 0-5.41-13.06l11.438-11.435a37.312 37.312 0 0 1 7.92 12.848l2.19-.94a39.735 39.735 0 0 0-8.427-13.592l12.607-12.606c5.38 5.6 9.487 12.1 12.21 19.154l2.19-.942a59.88 59.88 0 0 0-12.714-19.897l11.414-11.418c7.07 7.292 12.502 15.752 16.142 24.935l2.193-.94c-3.762-9.457-9.364-18.17-16.65-25.677l12.605-12.61c8.916 9.135 15.793 19.732 20.437 31.24l2.21-.948c-4.908-12.144-12.244-23.297-21.785-32.837-9.575-9.577-20.778-16.93-32.974-21.837l-.878 2.236c11.534 4.645 22.155 11.53 31.305 20.462l-12.606 12.608c-7.38-7.152-15.93-12.696-25.212-16.452l-.87 2.217c8.975 3.64 17.25 9.004 24.398 15.938l-11.415 11.416a59.96 59.96 0 0 0-18.885-12.323l-.872 2.217a57.576 57.576 0 0 1 18.072 11.79l-12.606 12.606a39.837 39.837 0 0 0-11.982-7.795l-.872 2.22a37.417 37.417 0 0 1 11.17 7.26l-11.437 11.437a21.198 21.198 0 0 0-13.06-5.41v-16.17a37.365 37.365 0 0 1 13.327 2.885l.872-2.22a39.805 39.805 0 0 0-14.2-3.048v-17.83a57.58 57.58 0 0 1 20.717 4.277l.87-2.217a59.956 59.956 0 0 0-21.588-4.44v-16.153c9.573.146 18.856 2.055 27.49 5.555l.87-2.218c-8.91-3.608-18.483-5.574-28.36-5.72V122.42c12.143.147 23.922 2.54 34.874 6.95l.878-2.236c-11.588-4.665-24.075-7.124-36.943-7.124a98.25 98.25 0 0 0-44.236 10.486l1.086 2.08c12.89-6.46 27.15-9.977 41.96-10.156v17.832a78.12 78.12 0 0 0-33.67 8.165l1.083 2.074c10.028-4.963 21.097-7.683 32.587-7.858v16.146a59.736 59.736 0 0 0-25.086 6.05l1.09 2.082a57.47 57.47 0 0 1 23.996-5.75v17.83a39.677 39.677 0 0 0-15.717 3.745l1.095 2.092a37.357 37.357 0 0 1 14.622-3.455v16.175a21.32 21.32 0 0 0-7.107 1.642l1.093 2.09a18.978 18.978 0 0 1 7.205-1.41c5.082 0 9.857 1.978 13.45 5.57a18.897 18.897 0 0 1 5.57 13.45c0 10.487-8.53 19.02-19.02 19.02a18.9 18.9 0 0 1-13.45-5.57 18.9 18.9 0 0 1-5.57-13.45c0-5.08 1.98-9.86 5.57-13.45a19.004 19.004 0 0 1 6.245-4.16l-1.093-2.09a21.38 21.38 0 0 0-5.946 3.77l-11.442-11.442a37.466 37.466 0 0 1 9.873-6.692l-1.095-2.092a40.045 40.045 0 0 0-10.452 7.112l-12.62-12.62a57.76 57.76 0 0 1 14.793-10.317l-1.09-2.084a60.383 60.383 0 0 0-15.366 10.734l-11.436-11.435a76.25 76.25 0 0 1 19.302-13.635l-1.083-2.074a79.018 79.018 0 0 0-19.88 14.05l-12.632-12.632a96.57 96.57 0 0 1 24.22-17.258l-1.085-2.08c-19.253 9.675-34.926 25.442-44.47 44.77l2.07 1.118a96.574 96.574 0 0 1 17.58-24.867l12.635 12.634a78.916 78.916 0 0 0-14.485 20.734l2.064 1.115a76.308 76.308 0 0 1 14.078-20.19l11.437 11.435a60.335 60.335 0 0 0-11.25 16.462l2.068 1.116a57.627 57.627 0 0 1 10.847-15.913l12.62 12.62a40.036 40.036 0 0 0-7.72 11.804l2.087 1.128a37.404 37.404 0 0 1 7.303-11.26l11.443 11.44a21.29 21.29 0 0 0-5.413 13.054H282.48a37.448 37.448 0 0 1 2.843-13.235l-2.085-1.127a39.688 39.688 0 0 0-3.14 14.363h-17.83a57.473 57.473 0 0 1 5.22-22.874l-2.068-1.116a59.722 59.722 0 0 0-5.53 23.99h-16.148c.17-11.15 2.727-21.907 7.415-31.7l-2.064-1.113a78.132 78.132 0 0 0-7.73 32.814H223.53c.176-14.563 3.58-28.595 9.833-41.313l-2.072-1.118a98.264 98.264 0 0 0-10.17 43.622 99.21 99.21 0 0 0 3.98 27.87l2.335-.59a96.782 96.782 0 0 1-3.904-26.088h17.83a78.823 78.823 0 0 0 3.373 21.734l2.312-.583a76.43 76.43 0 0 1-3.303-21.15h16.145a60.292 60.292 0 0 0 2.85 17.197l2.317-.584a57.81 57.81 0 0 1-2.784-16.613h17.83a39.935 39.935 0 0 0 2.293 12.247l2.317-.585a37.557 37.557 0 0 1-2.23-11.66h16.175a21.2 21.2 0 0 0 5.41 13.058l-11.438 11.437a37.386 37.386 0 0 1-7.917-12.835l-2.317.585a39.72 39.72 0 0 0 8.55 13.934l-12.606 12.608a57.467 57.467 0 0 1-13.278-22.17l-2.317.584c2.76 8.632 7.466 16.572 13.914 23.274l-11.417 11.418c-8.538-8.804-14.705-19.307-18.19-30.74l-2.31.584c3.59 11.842 9.97 22.726 18.815 31.84l-12.607 12.607c-11.157-11.432-19.126-25.154-23.508-40.09l-2.335.586c4.595 15.728 13.074 30.143 24.983 42.05 8.064 8.066 17.282 14.56 27.275 19.343l1.183-2.1c-9.457-4.506-18.206-10.58-25.913-18.105l12.606-12.605a78.662 78.662 0 0 0 22.1 15.125l1.177-2.087a76.262 76.262 0 0 1-21.592-14.72l11.417-11.418a59.967 59.967 0 0 0 18.147 12.01l1.174-2.083a57.603 57.603 0 0 1-17.634-11.605l12.608-12.608a39.713 39.713 0 0 0 13.88 8.532l1.19-2.11a37.37 37.37 0 0 1-13.385-8.107l11.437-11.437a21.182 21.182 0 0 0 13.06 5.41v16.176a37.53 37.53 0 0 1-11.11-2.042l-1.192 2.11a39.842 39.842 0 0 0 12.3 2.313v17.828a57.545 57.545 0 0 1-21.15-4.452l-1.174 2.083a59.91 59.91 0 0 0 22.325 4.754v16.146c-10.625-.164-20.885-2.5-30.298-6.77l-1.176 2.086c9.77 4.465 20.434 6.9 31.473 7.066v17.827c-14.162-.17-27.83-3.38-40.268-9.307l-1.183 2.1c13.144 6.29 27.635 9.618 42.64 9.618 15.74 0 30.906-3.677 44.556-10.583l-1.127-2.187a95.844 95.844 0 0 1-42.24 10.36V297.54c12.036-.178 23.62-3.063 34.09-8.328l-1.114-2.158a75.737 75.737 0 0 1-32.975 8.102v-16.145c9.03-.174 17.722-2.34 25.595-6.268l-1.106-2.147a57.348 57.348 0 0 1-24.49 6.032V258.8a39.684 39.684 0 0 0 16.327-4.02l-1.1-2.133a37.322 37.322 0 0 1-15.227 3.77v-16.173a21.195 21.195 0 0 0 13.06-5.41l11.426 11.424a37.71 37.71 0 0 1-9.258 6.39l1.1 2.134a39.957 39.957 0 0 0 9.854-6.826l12.587 12.587a57.88 57.88 0 0 1-14.282 10.054l1.106 2.146a60.16 60.16 0 0 0 14.88-10.495l11.39 11.39a76.51 76.51 0 0 1-18.888 13.418l1.113 2.157a78.654 78.654 0 0 0 19.484-13.864l12.576 12.577a96.867 96.867 0 0 1-23.91 17.083l1.126 2.187a99.08 99.08 0 0 0 25.362-18.378 98.958 98.958 0 0 0 19.095-26.788z" fill="#fff"/> - <path fill="#fff" d="M325.66 195.994l-.597.024.03.715.6-.028zm-1.472-.952h.797v.607h-.797zm-1.438-.212l.7.105.086-.6-.7-.1zm-.59-.204l-.696-.1.085-.603.694.1zm-5.748-.802h.797v.608h-.798zm-1.737 1.211l.696.1.085-.6-.695-.1zm.071.917l-.8-.204.146-.59.8.204zm-1.426.748l-.1-.608.59-.1.1.61zm-78.598 61.603v-.505h-.5v1.01h.8v1.318h.602l-.103-1.517zm7.483 9.007l-1.095-1.01-.8-1.112-.4-.912-.7-1.822 1.496.706.503 1.417.694.51.7 1.517zm20.645 27.13l-.098-.91-.8-1.216 1.2.205 1.292 1.11.503 1.317-.7.405-.4-.605zm54.06-91.91h-1.097l-.2-2.226.6-.407v-1.113h-3.492l-.1-1.112.5-.304-.798-.304-.6.81-.197.91-.997.203v.506h-.698v1.315l-2.794 2.328-5.584-.2c-.4.91-1.4-.104-1.4-.104-.197-.606-1.592 0-1.592 0 0 1.115-1.896-.505-1.896-.505l-3.49-2.53c-1.996-1.823-4.988.506-5.087 1.01.1 1.42-2.294.305-2.294.305s-1.994-.607-2.294.203c-.3.81-1.598.608-1.598.608l-.2.405-.998.202-.198.607-1.198.203 2.992-.102c.798-.1-.3 1.722-.797 1.62l-1.396.102-.5.505h-1.296l-.597.81-1.894-.1s-1.1.91-.998 1.214c.1.303-.2 1.214-.5 1.214s-.898.91-.698 1.214c.2.304-.598 1.316-.598 1.316l-.2 1.014-.597.2v2.735l-1.2.81v1.214l-1.795 1.923.2 1.62-1.495 1.62.198 1.62-.897.303-.197.708-.4 2.126.998.103c.498-.205.4 1.314 0 1.516-.4.203-1.497.607-.897 1.01.6.408-1.596.306-1.596-.302 0-.606-1.197-1.113-1.496-.91-.298.202-.798-.91-.798-.91-1.096-1.114-4.488.1-4.488.1l-.5 1.62c-1.096.203-1.794 2.024-1.794 2.024-.897.304-1.595 1.417-1.296 1.72.298.305-.5.405-.5.405v2.228l-.498.71.1 2.428c.598 0 .5 1.115.5 1.115-1 .1-.8 1.417-.8 1.417l-2.094.708-.4.607-2.592-.102-.698.71-.7-.71h-4.987l-.197-.505-.998-.204-.1-1.112-1.496.1-.3.608-1.596.1c.1 1.013-1.596 2.532-1.794 2.128-.202-.406-1.298-1.52-.798-1.72.5-.205 1.796-.408 1.796-.408v-.708l-3.692-.1-.397.607-1.498.1v1.62l-.698.202c-.5.303.1 1.418.1 1.418.697.707-.1 1.82-.1 1.82-.6.608.498 1.723.498 1.723.8.2-.498.81-.498.81.198 1.01.798 1.314.798 1.314-.6 1.012.4 1.517.4 1.517l.1 1.723.697.406v1.11l.4.71h1.594l-.1-2.53c-1.396-1.62 1.197-2.025 1.298-1.42.1.61 1.197.913 1.197.913.2 1.52 1.897 2.428 2.395.912.5-1.52.897-.608 1.197.1.3.71 2.192 2.43 2.192 2.43h1.497l.202 1.417c1.695-.1 2.192.103 2.89 2.43.7 2.326 2.594 2.934 2.594 2.934l1.397-.102c0-1.213 1.397.205 1.397.812 0 .605 2.692 2.934 2.692 2.934l2.692.606 2.497 2.027 1.894-.202h.8c.497-1.723 2.892.1 3.09.707.2.608 1.796 1.62 1.994 1.113.2-.505 1.297-.2 1.498 1.316.198 1.52.895 1.217.895 1.217l5.688-.1 1.994-1.724 5.088-.1c2.593-.1.997-3.645.5-3.645-.898-.707.297-3.643.297-3.643l-7.28-6.782c-1.696 0-.2-2.43-.2-2.43 1.296-.81-.3-2.125-.3-2.125.2-1.216-.698-2.633-.698-2.633-1.795-1.215-1.298-3.544-1.298-3.544v-1.62c-1.495-1.414.6-1.62.6-1.62.696-1.21-.5-2.123-.5-2.123l-.1-1.316-1.596-.202-.198-4.758-3.59-5.16c-.7-.206-.2-1.42-.2-1.42.897-.506-.202-1.72-.202-1.72l-.1-2.226 2.095-.204.5-.808h.997l-.1-2.633c.5-1.317 1.696-.61 1.696-.61l1.396.103.798-1.52.198-1.214-1.096-.1c-1.197-.71-.6-3.34-.6-3.34 1.897-2.837 4.09-1.217 4.09-1.217l1.397-.1c2.094 1.416.198 4.048.198 4.048-.398.61-.198 2.532-.198 2.532l.498 3.238-1.296 1.115c-1.098.608-1.098 2.024.1 2.328.796.1.497 2.024-.7.708-1.794 0 1 1.62.2 1.214 1.797.912 1.396-.81 1.396-.81l2.396-1.922c.897-.708 2.494 1.52 2.494 1.823 0 .303 3.99.1 3.99.1 1.095.71 1.494 2.53 1.494 2.53 1.098-1.417 3.39-.1 1.696.71 1.595 1.012 1.595 1.922 1.595 1.922 1.3-.404 1.3.608 1.3.912 0 .303.398-1.52.398-1.52-1.497-1.113 1.994-1.518.998.507l-.6.912.998.808.1 2.33c2.194-.205 1.595-2.938 1.595-2.938l.997-.2c0-.913.697-.407.697-.407-.697-3.442 1.597-4.048 1.597-4.048 1.297-.304 1.396-3.04 1.396-3.04-.896-.403-.4-1.82.6-.604.996 1.214-.6-2.43-.6-2.43l-.797-.708-1.098-.1-.1-1.115h-1.794l-.3 1.418-.698.202-.2-.405-.3 1.113h-1.794l-.1-1.214 1.097-.303.4-.607.298-1.62h1.298l1.695-.506c.1-1.72.998-1.315.998-1.315l.6.504.897.71.1.605-.6.303-.098.81.298 1.114h.797c.3-1.62 2.395-1.62 2.993-.608l.6-1.418c-1.397-.708-.027-1.822.372-1.316.4.507 1.322-1.316 1.322-1.316s.698.912 0-.303c-.698-1.216.498-1.822.498-1.822-.198-1.215 1.297-1.013 1.297-1.013l.1-1.618-1.397-.103c-.297 1.418-1.495.204-.896-.1.6-.303 1.195-.91 1.195-.91v-1.013l.598-.202.1-1.013h1.497l1.296-.607.3-.506 1.396-.102 1.995-1.823-.197-.81c-1.198 0 0-.91 0-.91l.197-1.515z"/> - <path d="M276.716 222.57l-1.796-.202.1.708h.5c.796 1.418.1 4.86.1 4.86s-1.197.1-1.398-.507c-.198-.608-.698 1.315-.3 1.62.4.3 1.797 0 1.896 1.113.1 1.113.898-.71.898-.71v-6.883z" fill="#fff"/> - <path fill="#fff" d="M276.713 231.178l.6-.105.1-.71-1.5 1.015-.996-.606v2.428l1.598 2.123.597-1.417.202-.91-.7-.3zm.799 6.372v-1.01l-.696.1-.103.81zm-.898 4.862v-.71l-.846.1v.71zm1.176-3.114c.234 0 .422-.19.422-.428s-.188-.43-.422-.43a.426.426 0 0 0-.423.43c0 .237.19.428.423.428z"/> - <ellipse cy="240.996" cx="278.485" rx=".423" ry=".429" fill="#fff"/> - <ellipse cy="229.431" cx="278.508" rx=".423" ry=".429" fill="#fff"/> - <path fill="#fff" d="M312.423 214.47l-1.1-.1-.197.506h-.498l-.104.81h.602l.1.607-.4.406-.198.504-.8.205-1.795 1.722-.1.806-.497.71-.597 1.518-2.098.1-.4 1.822.297 1.517 1.795.71.202-1.01.597-.305.103-1.012.395-.71.602-.707.197-.81.998-.606 1.198-.205.5-.607.2-1.21.07-.913.43-.61 1.193-.506v-1.923h-.598zm2.789 6.888v-1.417l-.2-1.316-1.495-.708-1.097 1.013-.2 1.416v.91l-.997.204-.2 2.732-.798.305.1 1.012-1.097.302-1.097.304-.198 1.316-.797.506-.402 1.215-.497 2.935s.898 1.72 1.396.91c.5-.808 1.297-.91 1.297-.91l.298-.71 2.693.102c.2-1.114 1.497-.708 1.497-.202s.998.1.998.1l.698-1.112h1.096l.1-1.214.498-.304v-1.823c1.597-.506 1.395-2.024 1.395-2.024l.402-.505-.2-.707c-.8-.305-.4-1.015.098-.812.5.202-.698-.91-.698-.91-.598.506-1.095-.608-1.095-.608h-1.498zm1.596 12.246c-.1 1.214-1.596 1.62-1.596 1.62l-1.097-.304-.598-.506-.1-1.418.897-.1.2.608 2.294.1zm5.388-6.474c.216.883.198-1.42.597-1.316.4.1.1-1.417.1-1.417l-1.795 1.314c.897.104.996 1.015 1.098 1.42zm5.286-5.268c.4.912.3 2.228 1.794 3.24.505.34-.3 1.013-.8.708-.497-.303-1.892-2.53-1.892-2.53v-1.317c.3-.81.725-.493.898-.1zm.298 31.074l.296.506.7-1.11-.596-.207-.696.51zm-2.794-1.92v1.218m14.424-2.684l.8-.506-.32-.51-.795.5zm28.866 21.104l.9.404.097 1.72c1.198 1.215 5.088.203 5.088-.1 0-.305-.2-3.746-.2-3.746l-.5-.506-.098-2.533c.398-1.315-1.896-3.24-2.095-2.832-.2.405-1.496.1-1.496.506 0 .404-.796 2.43-.398 3.138.4.71-.3.71-.398 1.417-.1.71-1.098 1.926-.898 2.534zm-2.196-4.05c-.19.767-.896 1.215-1.295.91-.4-.304.496.505.698.912.198.404.796.404.997 0 .198-.407.1-1.315.3-1.72.198-.406-.6-.507-.7-.102zm-4.638-18.57h.697v1.924h-.698zm10.326-19.488c-.435-.59 1.994-1.62 2.393-.405.4 1.215 0 1.014-.398.913-.4-.102-1.395.302-1.994-.507zm2.144-13.56l-.103.596 1.094.2.108-.596zm-4.498 1.564l.8.506.15.096.15-.086.602-.34.075.187.555-.224-.202-.507-.127-.32-.296.168-.742.42-.65-.41zm5.444-24.448h-1.497s.5.202-.895-1.114c-1.398-1.316-2.294.304-2.294.304l-1.595.202v1.62l-.8.303.102 1.013 1.096-.1s0 1.214.3.708c.3-.507 2.793.1 2.593 1.316-.08.5 2.495 1.82 2.195 3.44 1.298.203 1 1.52 1 1.52l1.693.202.5-1.012.498.1v-.607l-1.098-.303-.198-3.24-.698-.506.2-.81-.798-.304.4-1.316-.7-1.416zm4.386 10.326l-.797-.1-1.798.303-.996 1.924s.498.304.896 1.013c.398.71.6 4.858-.598 5.567-1.196.71.1.303.1.303l-.2 2.227c.3 1.013.797.508 1.096 0 .302-.504.6-.606 1-1.112.4-.507.997-1.418 1.097-2.127.1-.708.598-1.82.298-2.125-.298-.304.3-1.72.3-1.72s.4-.81 0-1.62c-.398-.81.1-1.72.4-2.127l-.8-.405zm1.206 4.13l.102-.81.595.076-.102.81zm-.036 2.797l-.534-.272.3-.607.534.272zm-.87-8.037l-.4-.912s0-.808.2-1.215c.2-.403-.4-.807-.698-.91-.3-.1-.2-.91-.3-1.315-.098-.405-.796-.708-.796-.708s-.2-1.52-.2-1.822c0-.304-.9-.71-.6-1.013.3-.303.5-.708.8-.91.3-.203-.3-1.62.198-1.317.5.304.5.81.7 1.215.198.404-.1 1.822.398 2.126.498.303-.1 1.315.698 1.315.797 0 .3 1.925.3 1.925s-.2 1.416.297 1.518c.5.1.202 2.53.202 2.53l-.798-.505zm-6.48-16.404c.298.405.897.708.897 1.114 0 .405-.198.708.4.81.598.1.998-.102 1.197.404.2.506.2 1.316.1 1.72-.1.406.1 1.013.598 1.013.5 0 .6.102.6.406 0 .304.598-1.114.598-1.114-.5-.404-.9-1.316-.9-1.316s-.497-1.417-.497-1.62c0-.2-.698-.405-.997-.505-.3-.102-.8-1.012-.8-1.012l-1.196.1zm.996-.906c-.3-.406-.6-.71-.998-.91-.398-.204-.697-.406-1.098-.406a.655.655 0 0 1-.598-.91c.2-.508-.3-.71-.3-1.115s.3-.405.8-.1c.5.303.397.403.798.91.398.506.597 1.012.995.91.4-.1.7.912 1.098.608.398-.303.3.71.3.71l-.998.303zm-11.67 11.436c.55.56-2.99.404-2.99 0 0-.405.298-1.82 1.194-1.52.898.305.997-1.82.997-1.82s-.796.1-.098-.304c.698-.405 0-1.013-.3-1.316-.298-.304-.598-.81-.598-.81h1.398c.6-.406.797-2.328.797-2.328 1.195.404 1.793-.406 1.793-.406s.203.608.6 1.115c.4.505-.998.708-.5 1.012.5.304.7 1.214.5 1.517-.2.304-1.298.102-1.298-.303 0-.404-.4.507 0 1.014.398.506-.498 1.214-.698 1.214-.2 0-1.494.203-.4.81 1.098.607 2.297.305 2.297.305s.897-.103 1.196.404c.3.506-.1.608-.598.608s-2.893-.204-2.893-.204-.7.71-.4 1.014zm-6.384.912c.5-.1 1.695-.203 1.895.1.202.304-.697.71-.697.71l-1.197.202c-.4-.507-.498-.91 0-1.012zm12.87-8.502c.797-.405 2.492-.405 2.393-1.012-.1-.608.996-.81.996-.81l.3 1.214.897.608.1 1.113s.3-.202-.797.102c-1.098.303-.398.808-.398.808l-2.395.1-.3-1.01-.797-1.114zm-3.894-5.466c.606 0-.198 2.328 1.396 2.126 1.596-.203.1.708 1.297.81 1.197.1.898-.912 1.296-1.62.402-.708.202-1.114-.496-1.316-.7-.202-.7-.202-.898-1.013-.2-.81-.998-1.013-.998-1.013l-.3-1.213-1.296.808-1.296 1.72c0 1.318.697.71 1.296.71zm2.64 8.554l.3-.607.537.273-.3.607zm-1.044-.964h.6v.708h-.6zm.502-13.488l.1.91-.594.068-.1-.91zm-1.696 9.438h.6v.507h-.6zm-1.571-.01l-.058-.606.997-.1.058.606zm-8.228 9.735l-.55-.24.3-.707.55.24zm-3.13-1.843l-.06-.603 1-.1.06.603zm-17.309-.187l-2.19.1.028.606 2.19-.1zm-3.659.877l-.2-.908.587-.132.198.91zm-.42.63l-.19-.577.3-.1.188.575zm4.989-1.708l-.1.708 1.097.102s.497.406.497.708c0 .304.7.607 1.1.607.397 0 1.494-.81 1.494-.81s.5-1.417.1-1.316c-.4.102-1.197.71-1.295.102-.102-.608-1.298-.304-1.298-.304l-1.596.204zm4.986-1.116c0 .303-.198.708.4.81.6.1 1.696-.404 1.795.202.1.607.1 1.014.898 1.318.797.302 1.297.404 1.895.404.597 0 1.896-.204 1.896-.204s1.41.22 1.695.507c1.097 1.113 1.795 1.417 2.094.91.3-.505-.1-1.618-.198-2.023-.1-.406-1.497-2.33-1.996-1.924-.498.406-.597 0-1.496.303-.898.303-2.793.102-2.892-.304-.1-.405-1.495-.606-1.495-1.012s-.997-.91-.898-.304c.098.607-.7.91-.9.71-.2-.204-.798.606-.798.606zm22.944-12.96l.7-2.226c-.997-.203-.8-1.315-.8-1.315-.098-.912-1.494-1.924-1.994-1.62-.497.303-.3-2.127-.3-2.127s.9-.606 1.298-.303c.4.303-3.39-5.06-4.19-4.555-.797.507-2.59-.506-2.492-1.417.1-.91-3.59-3.948-3.59-3.948s-1.198-.81-1.396-.202c-.2.607-.6 1.013 0 1.315.597.305.497-.505 1.195.203.698.71 1.996 1.62 1.497 2.228-.5.608-1.098.81-1.098.81l.7.81h1.096l.2 1.72s1.196.608 1.496 1.317c.3.708.3 1.113 0 1.52-.3.403-.896 1.112-.798 1.82.1.708.898 1.012.898 1.012l.797.1.6.306v1.316c.796-.204 2.092.91 1.994 1.618-.1.71.197.304 1.194 1.013 1 .71.7.81 1.398 1.317.698.504 1.297.2 1.594-.71z"/> - <path d="M347.528 165.582c-.1-.406-.3-1.823.3-1.722.597.102.2 0 .897.304.698.305.797-.506.797-.506h1.1l1.394 1.113-.2.913-.997.1c-.5-.81-1.497-.505-1.297.204.2.708-.498 2.024-.896 2.124-.4.103-1.698.103-1.597-.504.1-.607.498-2.024.498-2.024zm-.798-2.736v-.81s-.102-.81-.6-.81c-.496 0-1.394-.606-1.197-1.01.202-.407-1.694-.81-1.694-.81s-1.696-1.62-1.098-1.417c.6.2.3-.71.3-.71s-1.198.2-1.497.1c-.3-.1-.2-1.012-.2-1.012s-1.196-.303-1.196 0c0 .304.398.304.596.91.2.608.1 1.62 1 1.823.898.204 1.095.405 1.197.81.1.406 1.196.507 1.196.507l.797.404 2.393 2.026zm-10.77-10.322l-.297-.81-.8-.202v.91zm-.3-4.252c-1.043-.79 1.395.608 1.395.608.797 0 1.297.607 1.297.91 0 .305 1.097.204 1.097.204l.1-.71-.8-1.012-.696-.505s-1.097-.1-1.097-.405c0-.303-.898 1.214-1.297.91zm18.348.606c-.29.886-.4 2.126-.898 2.126s-.3 1.317-.3 1.317 1.3 0 1.698.102c.398.1.398 1.112.398 1.112 1.497-.1 2.096 1.924 1.895 2.43-.2.506.6.506.6.506s0 1.62-.2 2.024c-.2.406 1.297.71 1.695 1.316.4.608-.2 2.632-.5 2.734-.298.1.798.404.7.91-.102.507.3 0 .398.81.1.81.3 2.53.3 2.53l1.395.103c.2-1.316 2.772-1.366 3.192-1.215 1.696.607 2.994 3.24 2.994 3.846 0 .607-1.098.71-1.098.71l.2 2.934c1.695.506 3.09 2.936 2.893 3.34-.2.406 1.194.305 1.194.305.2-1.823 1.896-1.215 1.994-.607.102.607.4 1.923.4 1.923l.5.91.697.71 1.096-.102.3.61 1.298.202s1.098 1.213 1.197 1.518c.1.303 1.596.202 1.994.303.398.1.997.405 1.096.91.1.508.7 1.317.7 1.317s1.196.305 1.296.71c.1.403.6 1.314.6 1.314l.994.81.1.912 1.098.1.3 1.214 1.793-.1 1-.708c1.296-.708 2.194-1.62 2.294-2.025.1-.405.3-1.922 1.298-1.62.996.305.3-2.227.3-2.227s-1.397-1.012-1.298-1.52c.1-.504-1.396-1.516-1.297-1.922.1-.405-1.296-1.214-1.197-1.62.1-.404-.698-1.518-.698-1.518l-1.497-1.417-.2-.91-1.195-.1-2.393-2.937.1-.81-.7-.1v-1.114l-.696-.406-1.098-.1-2.194-2.43-.2-1.114h-1.096l.2-2.126c.698-.91.298-2.632.298-2.632s-1.398.708-2.094.404c-.7-.302.298-1.012.298-1.012v-.81l-.597-.606s-1.697.203-1.796-.1c-.1-.304-.4-1.62-.4-1.62l-.1-1.722-.696-.302-.1-.61-1.096.102v-1.214l-.6-.202-.597-.304-.1-1.215-2.194-.1-.698-1.013-.798-1.215-2.493-.202-.6-.607-.996-.203-.698-.304-.3.506-1.895.1-.1.608c-.996.506-4.985.1-5.087.404zm10.476-2.628c-.158-.8 1.996-1.518 2.494-.912.5.608 1.895.71 2.095 3.747.07 1.087-1.795-1.113-1.795-1.113l-1.498-.506c-.797-.204-1.197-.708-1.296-1.216zm-29.254 1.237l-.545-.247.4-.91.545.246zm-5.156-9.943l-1.3-1.316v-1.114l-.398-.406-.398-1.416-1.297-.405-1.295.506-1.397.91-1.495.204-.8.91 3.193.303.597 1.014 2.297.202 1.494 1.518c1.3.406 1.597-.202.8-.91zm-.198-4.962c-.22-.89-1.497 1.113-.198 1.517 1.297.406 2.59 0 2.59 0l.3-.608 4.986.102c.402-.406.6-1.013.6-1.013s1.197-.404 1.694-.202c.5.204.102-1.416-.398-1.214-.498.202-1.495.1-1.495.1h-1.796c-.1-.707-1.696-.404-1.796 0-.1.406-.697.507-.697.507l-2.294.204c-.2.608-1.396 1.012-1.497.608zM320 149.664c1.534.487 2.094.126 2.195-.278.1-.406.198-.507.797-.607.598-.103-.1-1.318-.698-1.217-.6.102-1.197-.202-1.296-.708-.102-.506-1.1-1.822-1.198-.81-.1 1.013-.698 1.013-.6 1.722.102.707.4 1.77.8 1.897zm-11.466 1.14c-.072-.358 1.994-.405 2.294-.102.3.304.1.81.997.81s.5.608.4.912c-.1.303-1.097.202-1.2-.1-.097-.305-1.595-.407-1.595-.407s-.797-.608-.896-1.113zm33.922-21.699l-.79.64-.508-.516-.423.428.696.708.194.194.207-.17 1.002-.81zm-5.5-1.842l-.64-.405-.314.516.8.504.154.103.16-.102 1.1-.71-.32-.51zm-3.216 20.824l-.145-.014-.997-.105-.06.606.855.085.62.987.503-.324-.695-1.112zm-32.988 28.223l.102 1.114h1.494c.6 0-.497-.708-.497-.708s-1.197.1-1.098-.406zm1.902.033l.382-.468.6.504-.383.467zm-18.172-18.938l.423-.43.598.608-.424.43zm28.971 130.285l-.997-.505-.268.544.625.314-.206.21.427.43.5-.507.29-.295zm-7.723-7.29l-.38-.466-.603.505-.296.252.316.23.7.505.348-.492-.385-.28zm74.168-19.202c-.132-.516-.714-.728-.78-.75l-.19.578v-.004c.048.018.117.055.186.1l.122.525c-.044.067-.093.13-.132.175l.44.41c.32-.355.438-.7.354-1.034zm.92-1.912l-.973-.07.075-.913.973.153zm23.116-7.892c.426-.27.972-.76.898.38-.076 1.138-.524.76-.898 1.138-.374.38-.598-1.138 0-1.518zm5.076-4.296a.833.833 0 0 1-.018-.14 1.654 1.654 0 0 0-.153-.635l-.536.272c.067.135.08.278.09.416.016.178.036.38.206.51.107.08.242.104.403.073l-.114-.588c.045.007.106.05.12.093zm-1.332.498c.152.615.374 1.222.384 1.247l.56-.214a11.87 11.87 0 0 1-.364-1.183l-.58.15zm-2.178 2.388l-.596-.06c-.047.478.067 1.068.54 1.164l.116-.595c.004 0 .01.004.01.004-.047-.043-.092-.288-.07-.512zm-2.622-12.078a.546.546 0 0 0-.327-.426c-.442-.194-1.188.128-1.554.376l.33.506c.38-.257.877-.38.988-.324a.056.056 0 0 1-.027-.033l.59-.1zm-27.624-32.34c-.4.406-1.296.608-1.296.608l-.3 1.113-.498.405s.1.303 0 1.012c-.1.708-.998 1.114-.998 1.114l-.398.506s-2.405.13-2.693 0c-.897-.405-.298-1.62.3-1.52.598.103-.1-1.72-.1-1.72l.8-.1s.097-1.823.397-1.823c.3 0-.1-.606-.5-.91-.398-.303-.896-1.315-1.297-1.214-.398.1-1.994 0-1.994 0l-.3.607-1.097.202s.093.783-.098 1.013c-.6.708-2.894 2.226-1.898-.304l.3-.606v-.912l-1.794-.1s-.898-.304-.898-.71c0-.405-.1-.91-.1-.91l-2.095-2.328-2.493-.303-.2-.507-1.495-.203c-1.797-.91-3.394-.1-3.094 1.418.3 1.52.797 2.126-.2 2.126-.998 0-1.196-.81-1.196-.81s-.797-.305-.797.1-.3 1.215 0 1.62c.298.404-.4 1.012-.7.708-.297-.304-1.096-1.214-.896-1.517.2-.303-1.398-2.227.2-2.53 1.595-.305-.1-1.216.5-1.417l.795-.406h.798l.5-.405-1.298-.2-.796-.103-1.498-.102c-1.495 1.012-1.793 2.227-1.793 2.227-.8 1.518-2.693-.608-1.995-1.417.697-.81-2.195-.102-2.694.303-.5.406-1.996.204-1.996.204-.298.91-1.694-.1-1.296-.708.4-.608.4-1.013.4-1.013l-.5-.1-.597 1.112c-1.396 0-1.796.81-1.497 1.316.3.506-.4-.1-.6.608-.197.71.102.71.7 1.013.6.304-.3.304.1.81.4.507 1.596 0 .898.71-.698.707-2.096.405-2.096.405-.1.91-1.994.708-2.192.404-.2-.305-1.696-2.127-1.696-2.127l-1.897-.1c-.198-1.418.9-.71 1.297-1.823.4-1.114.6-2.935.6-2.935s-1.597-.1-1.696.404c-.1.506-1.097.81-1.097.81s-.798.302-.498.708c.3.405-.6.606-.6.606s.156.654-.098.91c-.797.812-2.794.102-3.092-.2l-1.197-.507-1.198-.81-1.395.607-.4.405h-1.496l-.1 1.213 2.694.303.2 2.505-1.098-.377h-.698l-.3-.608-.598-.1v2.225l.6.507.5.505.996.102.2 1.214 2.492.102.3.506 1.497.1 2.893 2.936-.2.91-.5.305c.2.71-1.294.304-1.294.304v.608l.695.1.7.405.996-1.72c1.098-.71 1.596.304 1.697.91.1.608-.5.507-.5.507v1.418l.6.2c.998 1.216-.4 1.925-.4 1.925l-.3 1.012c-.3.912-1.396.708-1.396.708l-.396.608-1.2.305 2.37.303c.224-.81.82-1.012 1.12-.607.3.407.3 1.115.3 1.115l.6.1-.1 1.114.6.202v3.24l.697.81c1.198-.506 1.198.303.6.707-.6.403-.2 2.227-.2 2.227l-.5.505v.81l-.598.405v1.113c-.998-.506-2.195-.304-2.495 0-.896-.608-2.79-.405-2.79.102.596.81-.698 1.012-.698 1.012l-.7.81c.5 1.013-.498 1.113-.498 1.113v1.924l-1.198 1.114.1 2.632c0 .71 1.496.81 1.794.405.3-.404 1.498.812 1.498.812h.896l.2-1.823-.6-.305v-2.936l1-1.115c1.196-.405.798 2.633.798 2.937.1 1.113.596 1.012 1.096.81.997-.406.198 1.114-.598 1.01-.798-.1-.3 1.014-.3 1.014l.5.203-.9.707-.795.912-1-.306-1.195-.1-.4-.71-.7-.1-.098 1.416-.498.607-1.197 1.217c1.597 0-.2 1.11-.6 1.11.9.305-.098 1.217-2.392.51v.706l-.8.102.7.808.798.102-.3 1.72c0 1.317-3.29.404-3.59.102l-.1 1.822-.597.1.1 1.216-.1 1.72 1.096-.2v.708l2.694.1 3.89-4.15 2.293-.506c.2-1.013 1.195.203 1.195.203.998-.103 1.198.607 1.198.607l1.297.202c1.096.305.434.41.498.81.1.608.598.405.598.405l.2-1.315.6.1-.6-.708-1.098-.507-1.196-.505c-.8-1.113.2-.91.997-.81h1.297s1.497 2.025 1.497 2.53c0 .51.7.61.7.61l.895-.102.3.708h.897l.3.607h1.796l.1-.91-1.698-.302-.1-1.014-1.195-.303c-.4-1.72.298-2.226.797-1.415l.598.1-.2-1.52.698-.202-.2-2.127-.597-.2v-.71l2.494.103c-.198-1.318.1-1.924.1-1.924h.698l.1.507 3.05.287 2.16-2.475c-.11-.19.215-.305-.022-.547-.3-.304-.7 0-1.2-.304-.497-.3 0-2.023-.1-2.427-.098-.405 1.7-1.014 1.4-.102-.3.913 0 1.318 0 1.318 1.296-1.216 2.393.1 2.294.404-.102.304.697.607 1.194.304.5-.304 1.1.91.9 1.517-.202.607-1.995.507-2.094-.1-.102-.608-.402-.405-.6-.1-.2.303-1.096.504-1.596.2a.476.476 0 0 1-.177-.16l-2.157 2.474.14.014c1.196.71.6 1.62.2 1.824-.4.202-1.098.202-1.098.202l-.198.406-2.593.2-.2 1.014c-1.297-.204-1.795 1.215-1.496 1.922.3.708 0 1.316 0 1.316l1.097.507 1.395-.403c.2-1.014 1.097-1.216 1.896-1.822.797-.608 2.095 1.11 1.695 1.922-.398.81-.398 1.113-.398 1.113l.1.912-.998.404-.797.405-.1.508h-2.693l-.498.505-1.298.104-.4.606-.896.102s-1.497.708-.898 1.518c.6.81-2.493.71-3.193-.405-.198 1.01-1.295.1-1.295.1l-1.097-.304-.1-1.516c-.2-1.014-2.094-1.014-1.993-.304.1.71-3.593.304-3.593.304l-1.195.58-1.1.634-.098.506-1.797.202-.797.406-.3-.608h-.796l-.8 1.114c-2.093.102-4.087 1.317-3.89 1.823.2.505-.795 1.014-.795 1.014l-.9.3-.596.91-1.198.406-.2 2.127-.598.404v.912l-.7.2v.507l-.996.1.597 1.52.8.405c1.396.2.797 1.924.797 1.924l.797.1.4 1.113.796 1.618c.3 1.217 1.198.912 1.597.81.398-.098.796 1.215.796 1.215l3.988.102s-.198.406.5.608c.698.2 5.286.405 5.487.1-.2-.91 2.49-1.113 3.59-.303 1.096.81 2.593.304 2.593.304l1.495 1.82 1 2.228 1.694.506 1.196.304.4 1.72.897.102.3 1.115c1.098.808-.3 2.53-.3 2.53v2.225l.798.406-.1.812 1.298 1.314 1.495.103 3.792 4.047 2.99.91.5 1.62.8-.1.597-.506 2.392-.1 1.197-1.116 1.296-.2 11.07-9.415-.998-.61v-2.225c1.796-1.316 1.895-3.645.2-3.847-1.286-.154-.697-1.52.5-1.72l.697-.304v-.912l2.294-2.124v-1.62l-4.986-4.152c-2.196-.808 0-5.668 1.494-5.567 1.497.1-.1-7.49-.1-7.49l-.798-.405.2-2.43h-1.096l-1.796 2.33-.498 1.617c-.2 2.128-6.384 1.72-6.684 1.417-.3-.305-2.393-1.215-2.393-1.215s-1.596-1.316-1.895-.91c-.3.405-1.695-.508-1.695-.203 0 .304-1.296-.708-1.296-.708l-1.995-.71 1.498-.304-.3-1.214 2.59 1.316c.3.404 1.597.304 1.597.304l.4.507s.798-.103 1.298.505c.498.608 3.09.102 3.09.102l.698.606 1.097.406 3.093.1.1-1.92.598-.61-.1-1.215.7-.606v-1.01l.598-.203.1-2.226.497-.1v-4.86l-1.496-1.418c-.1.507-1.696.507-1.696.507s-.398.707-.698.707c-.298 0 .4.91.2 1.518-.2.607-.998.607-.998.607l-1.497.406-.398.506h-1.596l-.198-1.316 1.793-.507 1-.503.5-1.014c.097-1.01 1.295-.91 1.295-.91s2.294-1.924 2.393-2.834c.102-.912.9-3.443 2.294-3.443h2.594c.997-.406.698-1.722.698-1.722l1.297-.2.2.708s1.797.202 1.995-.102c.2-.3.6-1.01 1.1-.707.497.303 2.093-.71 2.093-.71.1-.708 2.592-.404 2.592-.404l.3-.912s-1.695-2.328-1.994-2.328c-.3 0-1.895-1.418-2.096-.91-1.594-.406-1.495-2.633-1.495-2.633l-.6-1.417c0-.81-1.493-2.53-1.794-2.328-1.496-1.113-.398-2.43 0-2.53.4-.1 1.398-1.52 1.398-1.52l.498-1.417 1.695-.504.2-1.316-.895-.1s.996-1.824 1.496-1.824 3.792 0 4.09-.203c.298-.2.896-1.82.896-2.125 0-.304.8-.405 1.097-.507.3-.1.998-.91 1.197-1.315.2-.408-.496-2.94-.896-2.534z" fill="#fff"/> - <path d="M320 242.058c.15-.15.3.456.6.38.296-.076.447.532.15.532-.3 0-.3.38-.3.532 0 .152 0 .53-.226.76-.224.227-.45.075-.75-.077-.298-.152-.446-.152-.822-.152-.373 0-.075.608-.075.608s-1.57-.075-1.27-.304c.298-.226.597-.303.374-.456-.224-.15 0-.302 0-.606s.75-.152.523-.38c-.223-.228.005-1.11.374-.608l.225-.532c-.225-.228-.074-.304-.523-.454-.45-.152-.077-1.064-.077-1.064l.076-.607c.15-.758 1.644-.836 1.72-.153.073.684 0 1.14 0 1.14l.45.15s-.077.458-.45.458c-.376 0 0 .225-.226.454l.226.378zm-4.938.762c.225-.456.748-2.43 1.347-1.822.596.607.97 0 .97 0s.3.304.15.912c-.15.606-.3 1.214-.675 1.29-.372.076-.672.304-1.12.38-.447.076-.673-.76-.673-.76z" fill="#fff"/> -</svg> diff --git a/img/flags/4x3/us.svg b/img/flags/4x3/us.svg deleted file mode 100644 index 95e707b..0000000 --- a/img/flags/4x3/us.svg +++ /dev/null @@ -1,18 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" height="480" width="640" viewBox="0 0 640 480"> - <g fill-rule="evenodd" transform="scale(.9375)"> - <g stroke-width="1pt"> - <path d="M0 0h972.81v39.385H0zm0 78.77h972.81v39.385H0zm0 78.77h972.81v39.385H0zm0 78.77h972.81v39.385H0zm0 78.77h972.81v39.385H0zm0 78.77h972.81v39.385H0zm0 78.77h972.81v39.385H0z" fill="#bd3d44"/> - <path d="M0 39.385h972.81V78.77H0zm0 78.77h972.81v39.385H0zm0 78.77h972.81v39.385H0zm0 78.77h972.81v39.385H0zm0 78.77h972.81v39.385H0zm0 78.77h972.81v39.385H0z" fill="#fff"/> - </g> - <path fill="#192f5d" d="M0 0h389.12v275.69H0z"/> - <g fill="#fff"> - <path d="M32.427 11.8l3.54 10.896h11.458l-9.27 6.735 3.541 10.896-9.27-6.734-9.268 6.734 3.54-10.896-9.269-6.735h11.457zm64.853 0l3.541 10.896h11.458l-9.27 6.735 3.541 10.896-9.27-6.734-9.268 6.734 3.54-10.896-9.269-6.735H93.74zm64.856 0l3.54 10.896h11.458l-9.27 6.735 3.541 10.896-9.269-6.734-9.269 6.734 3.54-10.896-9.269-6.735h11.458zm64.852 0l3.54 10.896h11.457l-9.269 6.735 3.54 10.896-9.268-6.734-9.27 6.734 3.541-10.896-9.27-6.735h11.458zm64.855 0l3.54 10.896h11.458l-9.27 6.735 3.541 10.896-9.27-6.734-9.268 6.734 3.54-10.896-9.269-6.735h11.457zm64.855 0l3.54 10.896h11.458l-9.27 6.735 3.541 10.896-9.269-6.734-9.27 6.734 3.542-10.896-9.27-6.735h11.458zM64.855 39.37l3.54 10.896h11.458L70.583 57l3.542 10.897-9.27-6.734-9.269 6.734L59.126 57l-9.269-6.734h11.458zm64.852 0l3.54 10.896h11.457L135.435 57l3.54 10.897-9.268-6.734-9.27 6.734L123.978 57l-9.27-6.734h11.458zm64.855 0l3.54 10.896h11.458L200.29 57l3.541 10.897-9.27-6.734-9.268 6.734L188.833 57l-9.269-6.734h11.457zm64.855 0l3.54 10.896h11.458L265.145 57l3.541 10.897-9.269-6.734-9.27 6.734L253.69 57l-9.27-6.734h11.458zm64.852 0l3.54 10.896h11.457L329.997 57l3.54 10.897-9.268-6.734-9.27 6.734L318.54 57l-9.27-6.734h11.458zM32.427 66.939l3.54 10.896h11.458l-9.27 6.735 3.541 10.896-9.27-6.734-9.268 6.734 3.54-10.896-9.269-6.735h11.457zm64.853 0l3.541 10.896h11.458l-9.27 6.735 3.541 10.896-9.27-6.734-9.268 6.734 3.54-10.896-9.269-6.735H93.74zm64.856 0l3.54 10.896h11.458l-9.27 6.735 3.541 10.896-9.269-6.734-9.269 6.734 3.54-10.896-9.269-6.735h11.458zm64.852 0l3.54 10.896h11.457l-9.269 6.735 3.54 10.896-9.268-6.734-9.27 6.734 3.541-10.896-9.27-6.735h11.458zm64.855 0l3.54 10.896h11.458l-9.27 6.735 3.541 10.896-9.27-6.734-9.268 6.734 3.54-10.896-9.269-6.735h11.457zm64.855 0l3.54 10.896h11.458l-9.27 6.735 3.541 10.896-9.269-6.734-9.27 6.734 3.542-10.896-9.27-6.735h11.458zM64.855 94.508l3.54 10.897h11.458l-9.27 6.734 3.542 10.897-9.27-6.734-9.269 6.734 3.54-10.897-9.269-6.734h11.458zm64.852 0l3.54 10.897h11.457l-9.269 6.734 3.54 10.897-9.268-6.734-9.27 6.734 3.541-10.897-9.27-6.734h11.458zm64.855 0l3.54 10.897h11.458l-9.27 6.734 3.541 10.897-9.27-6.734-9.268 6.734 3.54-10.897-9.269-6.734h11.457zm64.855 0l3.54 10.897h11.458l-9.27 6.734 3.541 10.897-9.269-6.734-9.27 6.734 3.542-10.897-9.27-6.734h11.458zm64.852 0l3.54 10.897h11.457l-9.269 6.734 3.54 10.897-9.268-6.734-9.27 6.734 3.541-10.897-9.27-6.734h11.458zM32.427 122.078l3.54 10.896h11.458l-9.27 6.735 3.541 10.896-9.27-6.734-9.268 6.734 3.54-10.896-9.269-6.735h11.457zm64.853 0l3.541 10.896h11.458l-9.27 6.735 3.541 10.896-9.27-6.734-9.268 6.734 3.54-10.896-9.269-6.735H93.74zm64.856 0l3.54 10.896h11.458l-9.27 6.735 3.541 10.896-9.269-6.734-9.269 6.734 3.54-10.896-9.269-6.735h11.458zm64.852 0l3.54 10.896h11.457l-9.269 6.735 3.54 10.896-9.268-6.734-9.27 6.734 3.541-10.896-9.27-6.735h11.458zm64.855 0l3.54 10.896h11.458l-9.27 6.735 3.541 10.896-9.27-6.734-9.268 6.734 3.54-10.896-9.269-6.735h11.457zm64.855 0l3.54 10.896h11.458l-9.27 6.735 3.541 10.896-9.269-6.734-9.27 6.734 3.542-10.896-9.27-6.735h11.458zM64.855 149.647l3.54 10.897h11.458l-9.27 6.734 3.542 10.897-9.27-6.734-9.269 6.734 3.54-10.897-9.269-6.734h11.458zm64.852 0l3.54 10.897h11.457l-9.269 6.734 3.54 10.897-9.268-6.734-9.27 6.734 3.541-10.897-9.27-6.734h11.458zm64.855 0l3.54 10.897h11.458l-9.27 6.734 3.541 10.897-9.27-6.734-9.268 6.734 3.54-10.897-9.269-6.734h11.457zm64.855 0l3.54 10.897h11.458l-9.27 6.734 3.541 10.897-9.269-6.734-9.27 6.734 3.542-10.897-9.27-6.734h11.458zm64.852 0l3.54 10.897h11.457l-9.269 6.734 3.54 10.897-9.268-6.734-9.27 6.734 3.541-10.897-9.27-6.734h11.458z"/> - <g> - <path d="M32.427 177.217l3.54 10.896h11.458l-9.27 6.735 3.541 10.896-9.27-6.734-9.268 6.734 3.54-10.896-9.269-6.735h11.457zm64.853 0l3.541 10.896h11.458l-9.27 6.735 3.541 10.896-9.27-6.734-9.268 6.734 3.54-10.896-9.269-6.735H93.74zm64.856 0l3.54 10.896h11.458l-9.27 6.735 3.541 10.896-9.269-6.734-9.269 6.734 3.54-10.896-9.269-6.735h11.458zm64.852 0l3.54 10.896h11.457l-9.269 6.735 3.54 10.896-9.268-6.734-9.27 6.734 3.541-10.896-9.27-6.735h11.458zm64.855 0l3.54 10.896h11.458l-9.27 6.735 3.541 10.896-9.27-6.734-9.268 6.734 3.54-10.896-9.269-6.735h11.457zm64.855 0l3.54 10.896h11.458l-9.27 6.735 3.541 10.896-9.269-6.734-9.27 6.734 3.542-10.896-9.27-6.735h11.458zM64.855 204.786l3.54 10.897h11.458l-9.27 6.734 3.542 10.897-9.27-6.734-9.269 6.734 3.54-10.897-9.269-6.734h11.458zm64.852 0l3.54 10.897h11.457l-9.269 6.734 3.54 10.897-9.268-6.734-9.27 6.734 3.541-10.897-9.27-6.734h11.458zm64.855 0l3.54 10.897h11.458l-9.27 6.734 3.541 10.897-9.27-6.734-9.268 6.734 3.54-10.897-9.269-6.734h11.457zm64.855 0l3.54 10.897h11.458l-9.27 6.734 3.541 10.897-9.269-6.734-9.27 6.734 3.542-10.897-9.27-6.734h11.458zm64.852 0l3.54 10.897h11.457l-9.269 6.734 3.54 10.897-9.268-6.734-9.27 6.734 3.541-10.897-9.27-6.734h11.458z"/> - </g> - <g> - <path d="M32.427 232.356l3.54 10.896h11.458l-9.27 6.735 3.541 10.896-9.27-6.734-9.268 6.734 3.54-10.896-9.269-6.735h11.457zm64.853 0l3.541 10.896h11.458l-9.27 6.735 3.541 10.896-9.27-6.734-9.268 6.734 3.54-10.896-9.269-6.735H93.74zm64.856 0l3.54 10.896h11.458l-9.27 6.735 3.541 10.896-9.269-6.734-9.269 6.734 3.54-10.896-9.269-6.735h11.458zm64.852 0l3.54 10.896h11.457l-9.269 6.735 3.54 10.896-9.268-6.734-9.27 6.734 3.541-10.896-9.27-6.735h11.458zm64.855 0l3.54 10.896h11.458l-9.27 6.735 3.541 10.896-9.27-6.734-9.268 6.734 3.54-10.896-9.269-6.735h11.457zm64.855 0l3.54 10.896h11.458l-9.27 6.735 3.541 10.896-9.269-6.734-9.27 6.734 3.542-10.896-9.27-6.735h11.458z"/> - </g> - </g> - </g> -</svg> diff --git a/img/flags/4x3/uy.svg b/img/flags/4x3/uy.svg deleted file mode 100644 index 9fc3e5e..0000000 --- a/img/flags/4x3/uy.svg +++ /dev/null @@ -1,28 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" height="480" width="640" viewBox="0 0 640 480"> - <path fill="#fff" d="M0 0h640v480H0z"/> - <path fill="#0038a8" d="M266 53.333h374v53.333H266zM266 160h374v53.333H266zM0 266.667h640V320H0zm0 106.666h640v53.333H0z"/> - <g transform="translate(133.333 133.333) scale(2.93333)" stroke-miterlimit="20" fill="#fcd116" stroke="#000" stroke-width=".6"> - <g id="c"> - <g id="b"> - <g id="a"> - <path d="M1.5 9L6 12c-8 13 1 15-6 21 3-7-3-5-3-17" stroke-linecap="square" transform="rotate(22.5)"/> - <path d="M0 11c-2 13 4.5 17 0 22" fill="none" transform="rotate(22.5)"/> - <path d="M0 0h6L0 33-6 0h6v33"/> - </g> - <use height="100%" width="100%" xlink:href="#a" transform="rotate(45)"/> - </g> - <use height="100%" width="100%" xlink:href="#b" transform="rotate(90)"/> - </g> - <use height="100%" width="100%" xlink:href="#c" transform="scale(-1)"/> - <circle r="11"/> - </g> - <g transform="translate(133.333 133.333) scale(.29333)"> - <g id="d"> - <path d="M81-44c-7 8-11-6-36-6S16-35 12-38s21-21 29-22 31 7 40 16m-29 9c7 6 1 19-6 19S26-28 32-36"/> - <path d="M19-26c1-12 11-14 27-14s23 12 29 15c-7 0-13-10-29-10s-16 0-27 10m3 2c4-6 9 6 20 6s17-3 24-8-10 12-21 12-26-6-23-10"/> - <path d="M56-17c13-7 5-17 0-19 2 2 10 12 0 19M0 43c6 0 8-2 16-2s27 11 38 7c-23 9-14 3-54 3h-5m63 6c-4-7-3-5-11-16 8 6 10 9 11 16M0 67c25 0 21-5 54-19-24 3-29 11-54 11h-5m5-29c7 0 9-5 17-5s19 3 24 7c1 1-3-8-11-9S25 9 16 7c0 4 3 3 4 9 0 5-9 5-11 0 2 8-4 8-9 8"/> - </g> - <use height="100%" width="100%" xlink:href="#d" transform="scale(-1 1)"/> - <path d="M0 76c-5 0-18 3 0 3s5-3 0-3"/> - </g> -</svg> diff --git a/img/flags/4x3/uz.svg b/img/flags/4x3/uz.svg deleted file mode 100644 index 6e0472b..0000000 --- a/img/flags/4x3/uz.svg +++ /dev/null @@ -1,30 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" height="480" width="640" viewBox="0 0 640 480"> - <path fill="#1eb53a" d="M0 320h640v160H0z"/> - <path fill="#0099b5" d="M0 0h640v160H0z"/> - <path fill="#ce1126" d="M0 153.6h640v172.8H0z"/> - <path fill="#fff" d="M0 163.2h640v153.6H0z"/> - <circle cx="134.4" cy="76.8" r="57.6" fill="#fff"/> - <circle cx="153.6" cy="76.8" r="57.6" fill="#0099b5"/> - <g transform="matrix(1.92 0 0 1.92 261.12 122.88)" fill="#fff"> - <g id="e"> - <g id="d"> - <g id="c"> - <g id="b"> - <path id="a" d="M0-6L-1.854-.294 1 .633"/> - <use height="100%" width="100%" xlink:href="#a" transform="scale(-1 1)"/> - </g> - <use height="100%" width="100%" xlink:href="#b" transform="rotate(72)"/> - </g> - <use height="100%" width="100%" xlink:href="#b" transform="rotate(-72)"/> - <use height="100%" width="100%" xlink:href="#c" transform="rotate(144)"/> - </g> - <use height="100%" width="100%" xlink:href="#d" y="-24"/> - <use height="100%" width="100%" xlink:href="#d" y="-48"/> - </g> - <use height="100%" width="100%" xlink:href="#e" x="24"/> - <use height="100%" width="100%" xlink:href="#e" x="48"/> - <use height="100%" width="100%" xlink:href="#d" x="-48"/> - <use height="100%" width="100%" xlink:href="#d" x="-24"/> - <use height="100%" width="100%" xlink:href="#d" x="-24" y="-24"/> - </g> -</svg> diff --git a/img/flags/4x3/va.svg b/img/flags/4x3/va.svg deleted file mode 100644 index b90ddf1..0000000 --- a/img/flags/4x3/va.svg +++ /dev/null @@ -1,483 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" height="480" width="640" viewBox="0 0 640 480"> - <g fill-rule="evenodd"> - <path fill="#fff" d="M320 0h320v480H320z"/> - <path d="M282.43-735.13c0 .625 55.956 222.85 118.17 300.56 69.375 87.27 113.18 87.333 113.18 87.333l70.866-17.717s-41.496 2.093-123.8-104.21c-83.45-107.78-109.42-285.96-108.17-282.84l-70.241 16.875z" transform="matrix(-.24 0 0 .1991 534.09 334.357)" stroke="#000" stroke-width="1.197" fill="#fff"/> - <path d="M285-727.64c-1.535-9.369 33.898 220.95 140.2 327.24 53.149 53.15 88.583 53.15 88.583 53.15l88.582-17.717s-51.712 3.751-134.02-102.55c-83.45-107.78-108.58-263.25-107.96-263.87l-75.38 3.75z" transform="matrix(.24 0 0 .1991 381.891 336.17)" stroke="#000" stroke-width="1.197" fill="#fff"/> - <path d="M282.43-735.13c0 .625 55.956 222.85 118.17 300.56 69.375 87.27 113.18 87.333 113.18 87.333l70.866-17.717s-41.496 2.093-123.8-104.21c-83.45-107.78-109.42-285.96-108.17-282.84l-70.241 16.875z" transform="matrix(.24 0 0 .1991 381.891 336.17)" stroke="#000" stroke-width="1.197" fill="#fff"/> - <path d="M285-727.64c-1.535-9.369 33.898 220.95 140.2 327.24 53.149 53.15 88.583 53.15 88.583 53.15l88.582-17.717s-51.712 3.751-134.02-102.55c-83.45-107.78-108.58-263.25-107.96-263.87l-75.38 3.75z" transform="matrix(-.24 0 0 .1991 534.09 334.357)" stroke="#000" stroke-width="1.197" fill="#fff"/> - <path d="M344.54-596.29l9.152 22.141s1.455-9.767 8.526-11.534l7.071-1.768s26.864 49.328 32.168 58.167c5.302 8.838-3.536 16.793-1.769 16.793 1.769 0 26.517-11.49 26.517-11.49s-10.606.883-15.026-6.188-34.819-59.934-34.819-59.934 6.187-2.652 11.49-5.303c5.304-2.652 10.607 7.955 10.607 7.955l-13.258-26.517s0 8.839-4.42 10.607c-4.419 1.767-7.955 3.535-7.955 3.535s-3.535-6.187-7.955-13.258c-4.419-7.071 4.42-14.142 4.42-14.142l-22.981 11.49s7.955 4.42 10.607 8.839l5.303 8.839s-3.223 1.768-8.214 3.482c-3.589 1.875-7.696.054-9.464-1.714z" transform="matrix(.23995 .00428 -.00516 .19905 380.013 342.305)" stroke="#000" stroke-width="1.197" fill="#fff133"/> - <g stroke="#000" stroke-width="12.791" fill="#b00"> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(.01763 .00275 .01016 -.01162 411.028 329.631)"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(.0173 .00313 .01036 -.0116 409.377 330.944)"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(.01763 .00275 .01016 -.01162 407.292 332.556)"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(.01789 -.0011 .00628 -.01341 429.522 312.364)"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(.0177 -.00038 .0068 -.01331 428.348 313.853)"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(.01791 -.00081 .0066 -.0133 426.776 315.833)"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(.01769 .00056 .0078 -.01292 425.782 316.386)"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(.01765 -.00269 .00455 -.0139 433.904 305.88)"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(.0175 -.00223 .00475 -.01392 432.92 307.599)"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(.01765 -.00269 .00455 -.0139 431.657 309.728)"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(.01754 -.00195 .00507 -.01384 430.475 311.23)"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(.01784 .00155 .009 -.01227 417.952 323.963)"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(.01754 .00195 .0092 -.01225 416.433 325.382)"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(.01784 .00155 .009 -.01227 414.51 327.13)"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(.0173 .00313 .01036 -.0116 413.114 328.019)"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(.01794 .00014 .00759 -.01293 424.063 318.279)"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(.01769 .00056 .0078 -.01292 422.71 319.81)"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(.01784 .00155 .009 -.01227 421.393 320.795)"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(.01754 .00195 .0092 -.01225 419.875 322.214)"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(.01668 -.00552 .00122 -.01437 443.651 284.224)"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(.01707 -.00392 .00278 -.01429 443.624 284.813)"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(.01715 -.00439 .00258 -.01424 442.667 287.05)"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(.01707 -.00392 .00278 -.01429 441.928 288.854)"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(.01664 -.00505 .0014 -.01443 445.698 277.79)"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(.01668 -.00552 .00122 -.01437 444.956 280.083)"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(.01664 -.00505 .0014 -.01443 444.393 281.93)"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(.01752 -.00323 .00393 -.01402 438.058 298.304)"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(.01738 -.00277 .00413 -.01406 437.151 300.051)"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(.01752 -.00323 .00393 -.01402 435.983 302.218)"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(.0175 -.00223 .00475 -.01392 435.166 303.751)"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(.01715 -.00439 .00258 -.01424 440.97 291.091)"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(.01738 -.00277 .00413 -.01406 441.3 292.223)"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(.01752 -.00323 .00393 -.01402 440.132 294.39)"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(.01738 -.00277 .00413 -.01406 439.225 296.137)"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(.01541 -.00768 -.00154 -.01435 448.859 266.508)"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(.01656 -.00577 .0009 -.01438 448.904 268.049)"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(.01653 -.0053 .0011 -.01445 448.38 269.903)"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(.01546 -.0072 -.00136 -.01443 449.652 259.882)"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(.01541 -.00768 -.00154 -.01435 449.357 262.246)"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(.01546 -.0072 -.00136 -.01443 449.153 264.143)"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(.01656 -.00577 .0009 -.01438 447.689 272.209)"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(.01664 -.00505 .0014 -.01443 447.036 273.544)"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(.01668 -.00552 .00122 -.01437 446.296 275.838)"/> - </g> - <g stroke="#000" stroke-width="12.791" fill="#b00"> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(-.01781 .00178 -.00923 -.01216 503.156 323.982)"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(-.0175 .00217 -.00943 -.01214 504.7 325.383)"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(-.01781 .00178 -.00923 -.01216 506.654 327.106)"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(-.01776 -.00209 -.00521 -.01373 486.055 305.736)"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(-.01762 -.00135 -.00574 -.01366 487.11 307.287)"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(-.0178 -.0018 -.00554 -.01364 488.524 309.348)"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(-.0177 -.00041 -.00676 -.01332 489.472 309.955)"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(-.0174 -.00365 -.00345 -.01411 482.192 299.026)"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(-.01728 -.00319 -.00365 -.01415 483.039 300.794)"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(-.0174 -.00365 -.00345 -.01411 484.132 302.988)"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(-.01735 -.0029 -.00398 -.01409 485.193 304.552)"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(-.01792 .00057 -.00802 -.01274 496.69 317.946)"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(-.01766 .00098 -.00823 -.01273 498.096 319.446)"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(-.01792 .00057 -.00802 -.01274 499.877 321.296)"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(-.0175 .00217 -.00943 -.01214 501.201 322.26)"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(-.0179 -.00085 -.00656 -.01332 491.039 311.938)"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(-.0177 -.00041 -.00676 -.01332 492.269 313.54)"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(-.01792 .00057 -.00802 -.01274 493.506 314.596)"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(-.01766 .00098 -.00823 -.01273 494.91 316.096)"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(-.01621 -.00642 -.00009 -.0144 474.163 276.88)"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(-.01672 -.00485 -.00165 -.01441 474.144 277.47)"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(-.01677 -.00532 -.00146 -.01435 474.924 279.755)"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(-.01672 -.00485 -.00165 -.01441 475.52 281.595)"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(-.0162 -.00595 -.00027 -.01447 472.625 270.347)"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(-.01621 -.00642 -.00009 -.0144 473.186 272.677)"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(-.0162 -.00595 -.00027 -.01447 473.603 274.55)"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(-.01723 -.00419 -.00282 -.01421 478.64 291.238)"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(-.01713 -.00372 -.00302 -.01425 479.408 293.031)"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(-.01723 -.00419 -.00282 -.01421 480.404 295.257)"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(-.01728 -.00319 -.00365 -.01415 481.099 296.832)"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(-.01677 -.00532 -.00146 -.01435 476.3 283.88)"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(-.01713 -.00372 -.00302 -.01425 475.882 284.991)"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(-.01723 -.00419 -.00282 -.01421 476.877 287.218)"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(-.01713 -.00372 -.00302 -.01425 477.645 289.011)"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(-.01478 -.0085 .00266 -.01423 470.356 258.917)"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(-.01607 -.00667 .00022 -.0144 470.19 260.452)"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(-.01608 -.0062 .00004 -.01448 470.567 262.331)"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(-.01486 -.00804 .00249 -.01433 470.084 252.262)"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(-.01478 -.0085 .00266 -.01423 470.193 254.636)"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(-.01486 -.00804 .00249 -.01433 470.248 256.541)"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(-.01607 -.00667 .00022 -.0144 471.076 264.67)"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(-.0162 -.00595 -.00027 -.01447 471.623 266.038)"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(-.01621 -.00642 -.00009 -.0144 472.182 268.368)"/> - </g> - <path d="M344.54-596.29l9.152 22.141s1.455-9.767 8.526-11.534l7.071-1.768s26.864 49.328 32.168 58.167c5.302 8.838-3.536 16.793-1.769 16.793 1.769 0 26.517-11.49 26.517-11.49s-10.606.883-15.026-6.188-34.819-59.934-34.819-59.934 6.187-2.652 11.49-5.303c5.304-2.652 10.607 7.955 10.607 7.955l-13.258-26.517s0 8.839-4.42 10.607c-4.419 1.767-7.955 3.535-7.955 3.535s-3.535-6.187-7.955-13.258c-4.419-7.071 4.42-14.142 4.42-14.142l-22.981 11.49s7.955 4.42 10.607 8.839l5.303 8.839s-3.223 1.768-8.214 3.482c-3.589 1.875-7.696.054-9.464-1.714z" transform="matrix(-.23995 .00428 .00516 .19905 535.969 340.492)" stroke="#000" stroke-width="1.197" fill="#fff133"/> - <g transform="matrix(.14437 0 0 .12085 423.643 295.291)"> - <path fill="silver" d="M324.546-255.37l-50.11 50.11L449.82-29.874l50.11-50.11z"/> - <ellipse rx="35.433" ry="35.433" stroke="#000" transform="scale(-1 1) rotate(45 -177.879 -1104.595)" cy="-1428" cx="354.33" stroke-width="1.197" fill="#fff133"/> - <path d="M-402.046-956.911l37.583 37.583-25.055 25.054-37.583-37.582c-12.528-12.528 12.527-37.583 25.055-25.055z" stroke="#000" stroke-width="1.197" fill="silver"/> - <path d="M-346.606-926.531l-50.11 50.11c-13.798 0-25.351-11.553-25.055-25.055 10.878-25.879 25.028-38.434 50.11-50.11 12.477.729 24.217 10.892 25.055 25.055z" stroke="#000" stroke-width="1.197" fill="#fff133"/> - <path d="M-351.926-931.851l37.583 37.583-50.11 50.11-37.583-37.583c5.027-20.028 30.082-45.084 50.11-50.11z" stroke="#000" stroke-width="1.197" fill="silver"/> - <path d="M-309.026-888.951l-50.11 50.11c-13.798 0-25.351-11.553-25.055-25.055 10.878-25.879 25.028-38.434 50.11-50.11 12.477.729 24.217 10.892 25.055 25.055z" stroke="#000" stroke-width="1.197" fill="#fff133"/> - <path d="M-314.356-894.281L28.44-551.477l-50.111 50.11-342.795-342.804c5.027-20.028 30.082-45.084 50.11-50.11z" stroke="#000" stroke-width="1.197" fill="silver"/> - <path d="M48.934-530.971l-50.11 50.11c-13.798 0-25.351-11.553-25.055-25.055 10.878-25.879 25.028-38.434 50.11-50.11 12.477.729 24.217 10.892 25.055 25.055z" stroke="#000" stroke-width="1.197" fill="#fff133"/> - <path d="M48.944-530.976L274.44-305.48l-50.11 50.11L-1.166-480.866c5.027-20.028 30.082-45.084 50.11-50.11z" stroke="#000" stroke-width="1.197" fill="silver"/> - <path d="M186.744-418.231l-75.166 75.166c-13.797 0-25.35-11.553-25.055-25.055 0 0 0-25.055 25.055-50.11s50.11-25.055 50.11-25.055c11.64 1.567 21.415 12.527 25.055 25.055z" stroke="#000" stroke-width="1.197" fill="silver"/> - <path d="M186.744-418.231l50.11 75.166-50.11 50.11-75.165-50.111c-2.83-2.442 0-25.054 25.055-50.11s48.98-24.456 50.11-25.055z" stroke="#000" stroke-width="1.197" fill="silver"/> - <path d="M336.61-506.69c0-35.433 0-86.653 17.717-129.98 17.716 43.326 17.716 94.546 17.716 129.98H336.61z" transform="rotate(-135 434.752 18.668) scale(1 -.81782)" stroke="#000" stroke-width="1.197" fill="silver"/> - <path d="M318.9-506.69h17.716v-43.326c0-43.327-35.433-64.99-35.433-64.99l17.717 108.32z" transform="rotate(-45 399.396 -194.158) scale(1 .81782)" stroke="#000" stroke-width="1.197" fill="silver"/> - <path d="M318.9-506.69h17.716v-43.326c0-43.327-35.433-64.99-35.433-64.99l17.717 108.32z" transform="rotate(-135 434.752 18.668) scale(1 -.81782)" stroke="#000" stroke-width="1.197" fill="silver"/> - <path d="M-314.356-894.281l37.583 37.583C-251.718-831.643-164.03-718.9-164.03-718.9s117.296 92.25 142.356 117.31l37.583 37.583c-25.056-25.055-179.937-129.835-179.937-129.835S-71.784-551.479-34.2-513.896l-37.583-37.583c-25.055-25.055-117.305-142.36-117.3-142.366-.005.005-100.223-75.168-125.276-100.22l-50.111-50.111c25.055 25.055 175.382 125.281 175.382 125.281s-100.22-150.338-125.272-175.391z" stroke="#000" stroke-width="1.197" fill="#fff133"/> - <path d="M299.493-230.317c50.11 75.165 100.221 125.276 112.744 137.8 23.776 23.819 50.11 25.055 50.11 25.055s0-25.056-25.055-50.11c-12.527-12.528-62.638-62.639-137.8-112.745zm-62.64-112.75c87.695 87.695 187.916 137.806 250.552 200.442 50.11 50.11 15.414 88.464 1.443 100.606-13.97 12.141-51.966 50.282-101.664-.386-62.638-62.638-112.746-162.857-200.442-250.552 0-25.055 25.056-50.11 50.11-50.11z" stroke="#000" stroke-width="1.197" fill="silver"/> - <path transform="matrix(-1.2487 -1.4214 -1.3593 1.3175 1166.1 -102.64)" stroke="#000" stroke-width="1.197" fill="silver" d="M218.28 257.88h22.934v73.043H218.28z"/> - <g stroke="#000" fill="silver"> - <path d="M301.18 396.85l17.717 17.717-17.717 17.716 8.858 8.859 17.717-17.717 35.433 35.433-17.717 17.717 8.859 8.858 17.716-17.716 17.717 17.716-53.15 53.15-35.433-35.433 17.717-17.717 8.858 8.859 8.858-8.859L301.18 450l-8.858 8.859 8.858 8.858-17.716 17.716-17.717-17.716 8.858-8.859-8.858-8.858-35.433 35.433 8.858 8.858 8.858-8.858 17.717 17.717-17.716 17.716-8.858-8.858-8.859 8.858 35.433 35.433 8.859-8.858-8.859-8.859 17.717-17.716 35.433 35.433-53.15 53.15-17.717-17.717 17.717-17.716-8.858-8.858-17.717 17.716-35.433-35.433 17.717-17.717-8.859-8.858-17.716 17.717-17.717-17.717 124.02-124.02z" transform="matrix(-2.2946 0 0 2.2438 360.577 -1733.726)" stroke-width=".561"/> - <path d="M318.9 786.61v35.433l88.582 88.583V839.76l-17.716-17.717h-35.433L318.9 786.61z" stroke-width="1.122" transform="matrix(-1.1473 0 0 1.1219 157.31 -1288.5)"/> - <path d="M230.41 698.78l70.381 70.381.838 35.19-71.219-71.219V698.78z" transform="matrix(-1.1473 0 0 1.1219 157.424 -1288.525)" stroke-width="1.122"/> - <path d="M301.18 804.33l35.433-35.433v-35.433l-35.433 35.433v35.433z" stroke-width="1.122" transform="matrix(-1.1473 0 0 1.1219 157.31 -1288.5)"/> - <path d="M301.18 804.33l35.433-35.433v-35.433l-35.433 35.433v35.433z" transform="matrix(-1.1473 0 0 1.1219 258.941 -1387.881)" stroke-width="1.122"/> - <path d="M248.03 644.88v35.433l17.717-17.717-17.717-17.716z" stroke-width="1.122" transform="matrix(-1.1473 0 0 1.1219 157.31 -1288.5)"/> - <path d="M248.03 644.88v35.433l17.717-17.717-17.717-17.716z" transform="matrix(-1.1473 0 0 1.1219 55.679 -1189.119)" stroke-width="1.122"/> - <path d="M230.41 698.78l35.786 35.433v35.433l-35.786-36.514V698.78z" transform="matrix(-1.1473 0 0 1.1219 218.806 -1348.97)" stroke-width="1.122"/> - <path d="M301.18 804.33l35.433-35.433v-35.433l-35.433 35.433v35.433z" transform="matrix(-1.1473 0 0 1.1219 55.679 -1507.136)" stroke-width="1.122"/> - <path d="M301.18 804.33l35.433-35.433v-35.433l-35.433 35.433v35.433z" transform="matrix(-1.1473 0 0 1.1219 136.983 -1427.638)" stroke-width="1.122"/> - <path d="M283.46 822.05l53.15-53.15v-35.433l-70.866 70.866 17.716 17.717z" transform="matrix(-1.1473 0 0 1.1219 136.983 -1546.896)" stroke-width="1.122"/> - <path d="M248.03 644.88v35.433l17.717-17.717-17.717-17.716z" transform="matrix(-1.1473 0 0 1.1219 35.352 -1447.507)" stroke-width="1.122"/> - <path d="M301.18 804.33l-35.433-35.433v-35.433l35.433 35.433v35.433z" transform="matrix(-1.1473 0 0 1.1219 55.679 -1507.136)" stroke-width="1.122"/> - <path d="M389.76 822.05l-53.15-53.15v-35.433l70.866 70.866-17.716 17.717z" transform="matrix(-1.1473 0 0 1.1219 55.679 -1546.896)" stroke-width="1.122"/> - <path d="M230.41 698.05l70.866 70.866h35.433l17.717 17.716v70.867l-124.02-124.37v-35.08z" transform="matrix(-1.1473 0 0 1.1219 -66.161 -1387.906)" stroke-width="1.122"/> - <path d="M354.33 822.05l106.3-106.3h35.433l-106.3 106.3H354.33z" stroke-width="1.122" transform="matrix(-1.1473 0 0 1.1219 157.31 -1288.5)"/> - <path d="M407.48 839.76l106.3-106.3-17.72-17.71-106.3 106.3 17.72 17.71z" stroke-width="1.122" transform="matrix(-1.1473 0 0 1.1219 157.31 -1288.5)"/> - <path d="M407.48 839.76v70.866l106.3-106.3V733.46l-106.3 106.3z" transform="matrix(-1.1473 0 0 1.1219 157.31 -1288.5)" stroke-width="1.122"/> - <path d="M354.33 822.05l106.3-106.3h35.433l-106.3 106.3H354.33z" transform="matrix(-1.1473 0 0 1.1219 -5.297 -1447.507)" stroke-width="1.122"/> - <path d="M407.48 839.76l106.3-106.3-17.72-17.71-106.3 106.3 17.72 17.71z" transform="matrix(-1.1473 0 0 1.1219 -5.297 -1447.507)" stroke-width="1.122"/> - <path d="M407.48 839.76v70.866l106.3-106.3V733.46l-106.3 106.3z" transform="matrix(-1.1473 0 0 1.1219 -5.297 -1447.507)" stroke-width="1.122"/> - <path d="M318.9 786.62l17.717-17.717V733.47l-35.433 35.433L318.9 786.62z" transform="matrix(-1.1473 0 0 1.1219 -86.606 -1527.016)" stroke-width="1.122"/> - <path d="M318.9 786.62l17.717-17.717V733.47l-35.433 35.433L318.9 786.62z" transform="matrix(-1.1473 0 0 1.1219 15.022 -1626.394)" stroke-width="1.122"/> - <path d="M265.75 768.9v-35.433l17.717 17.716L265.75 768.9z" transform="matrix(-1.1473 0 0 1.1219 55.679 -1348.129)" stroke-width="1.122"/> - <path d="M301.18 804.33l-35.433-35.433 17.717-17.717 17.716 17.717v35.433z" transform="matrix(-1.1473 0 0 1.1219 136.983 -1427.638)" stroke-width="1.122"/> - <path d="M301.18 804.33l-17.716-17.717 17.716-17.716v35.433z" transform="matrix(-1.1473 0 0 1.1219 15.022 -1586.645)" stroke-width="1.122"/> - </g> - <path transform="matrix(-1.2509 -1.4194 -1.3614 1.3153 1166.1 -102.64)" stroke="#000" stroke-width="1.197" fill="#fff133" d="M196.5 254.15h25.197v80.26H196.5z"/> - <path d="M336.61 166.54c0 14.669 35.433 35.434 35.433-17.716H336.61v17.716z" transform="matrix(-1.8992 0 0 1.8865 1166.1 -102.64)" stroke="#000" stroke-width="1.197" fill="silver"/> - <path d="M242.1 24.803c-147.06 0-113.13 164.24-100.37 124.02 9.359-29.503 35.433-70.866 64.935-80.225 40.225-12.761 26.696 9.359 41.364 9.359 14.67 0 1.14-22.12 41.364-9.359 29.503 9.359 55.577 50.722 64.936 80.225 12.76 40.224 53.149-124.02-112.23-124.02z" transform="matrix(-1.8992 0 0 1.8865 1166.1 -102.64)" stroke="#000" stroke-width="1.197" fill="silver"/> - <path d="M389.76 166.54c0 78.237-63.496 141.73-141.73 141.73-78.236 0-141.73-63.496-141.73-141.73v-17.716c.001-29.116 35.433 124.02 141.73 124.02s141.73-124.77 141.73-124.02v17.716z" transform="matrix(-1.8992 0 0 1.8865 1166.1 -102.64)" stroke="#000" stroke-width="1.197" fill="silver"/> - <path d="M336.61 166.54c0 14.669 35.433 35.434 35.433-17.716H336.61v17.716z" transform="matrix(1.8992 0 0 1.8865 224 -100.51)" stroke="#000" stroke-width="1.197" fill="silver"/> - <path d="M389.76 148.82c0 78.236-63.496 141.73-141.73 141.73-78.236 0-141.73-63.496-141.73-141.73 0-78.236 63.496-141.73 141.73-141.73 78.237 0 141.73 63.496 141.73 141.73zm-53.15 0c0 14.669 22.812 3.042 9.359 43.04-9.359 27.826-27.075 45.543-56.578 54.902-40.225 12.76-26.694-9.359-41.364-9.359-14.668 0-1.14 22.119-41.364 9.359-29.502-9.359-47.218-27.076-56.577-56.578-12.76-40.224 9.359-26.695 9.359-41.364 0-14.67-22.119-1.139-9.359-41.364 9.359-29.502 27.075-47.219 56.577-56.578 40.225-12.761 26.696 9.359 41.364 9.359 14.67 0 1.14-22.12 41.364-9.359 29.503 9.359 47.219 27.075 56.578 56.578 12.76 40.224-9.359 26.694-9.359 41.364z" transform="matrix(-1.8992 0 0 1.8865 1166.1 -102.64)" stroke="#000" stroke-width="1.197" fill="silver"/> - <path d="M126.55 157.68c-20.248 0-1.929 67.6-9.104 51.705s-11.144-33.368-11.144-51.705 3.969-35.809 11.144-51.705c7.175-15.894-11.144 51.705 9.104 51.705z" transform="matrix(-1.6618 0 0 1.7607 1107.2 -99.519)" stroke="#000" stroke-width="1.197" fill="silver"/> - <path d="M372.05 139.96c0 15.892-2.13 31.632-9.751 44.811-7.965 13.775 9.751-44.811-7.965-44.811 17.716 0 1.687-58.587 7.965-44.811 6.279 13.776 9.751 28.919 9.751 44.811z" transform="matrix(-1.8992 0 0 2.0316 1166.1 -106.24)" stroke="#000" stroke-width="1.197" fill="silver"/> - <path d="M296.29 263.08c-14.836 6.279-31.144 9.751-48.258 9.751s-33.422-3.472-48.257-9.751c-14.835-6.278 48.257 9.751 48.257-7.966 0 17.717 63.093 1.688 48.258 7.966zM248.03 42.52c0-17.716-63.092-1.688-48.257-7.966s31.143-9.75 48.257-9.75 33.422 3.472 48.258 9.75c14.835 6.278-48.258-9.75-48.258 7.966z" transform="matrix(-1.8992 0 0 1.8865 1166.1 -102.64)" stroke="#000" stroke-width="1.197" fill="silver"/> - <ellipse rx="18.433" ry="20.109" stroke="#000" transform="matrix(-1.2929 -1.3819 -1.3912 1.2842 1257.6 -120.02)" cy="160.86" cx="82.112" stroke-width="1.197" fill="#fff133"/> - <path d="M276.58 287.67c-9.223 1.889-18.773 2.881-28.552 2.881s-19.329-.992-28.553-2.881l-1.432 6.965c9.686 1.984 19.715 3.025 29.985 3.025s20.299-1.041 29.985-3.025l-1.433-6.965z" transform="matrix(-1.2929 -1.3819 1.3912 -1.2842 808.89 712.05)" stroke="#000" stroke-width="1.197" fill="#fff133"/> - <path d="M276.58 287.67c-9.223 1.889-18.773 2.881-28.552 2.881s-19.329-.992-28.553-2.881l-1.432 6.965c9.686 1.984 19.715 3.025 29.985 3.025s20.299-1.041 29.985-3.025l-1.433-6.965z" transform="matrix(-1.2929 -1.3819 -1.3912 1.2842 1223.2 329.88)" stroke="#000" stroke-width="1.197" fill="#fff133"/> - <path d="M267.7 308.51c-9.223 1.889-20.189.927-29.969.927-9.778 0-19.285-2.612-28.509-4.501l8.821-10.303c9.686 1.984 19.715 3.025 29.985 3.025s20.299-1.041 29.985-3.025L267.7 308.51z" transform="matrix(-1.2929 -1.3819 -1.3912 1.2842 1223.2 329.88)" stroke="#000" stroke-width="1.197" fill="#fff133"/> - <path d="M276.58 287.67c-9.223 1.889-18.773 2.881-28.552 2.881s-19.329-.992-28.553-2.881l-1.432 6.965c9.686 1.984 19.715 3.025 29.985 3.025s20.299-1.041 29.985-3.025l-1.433-6.965z" transform="matrix(-1.3912 1.2842 1.2929 1.3819 847.44 -345.21)" stroke="#000" stroke-width="1.197" fill="#fff133"/> - <ellipse rx="18.433" ry="20.109" stroke="#000" transform="matrix(-1.2929 -1.3819 -1.3912 1.2842 789.14 314.38)" cy="160.86" cx="82.112" stroke-width="1.197" fill="#fff133"/> - <path d="M267.59 281.47c-9.223 1.889-17.098 2.943-26.877 2.943s-23.112-.712-32.336-2.601l9.672 12.822c9.686 1.984 19.715 3.025 29.985 3.025s20.299-1.041 29.985-3.025L267.59 281.47z" transform="matrix(-1.3912 1.2842 1.2929 1.3819 850.63 -315.18)" stroke="#000" stroke-width="1.197" fill="#fff133"/> - <path d="M173.94 271.77l-.838 14.842-3.239 4.493.976-15.087 3.101-4.248zM330.54 265.6l3.562 4.189 1.047 13.616-2.933-2.933-1.676-14.872z" transform="matrix(-1.8992 0 0 1.8865 1166.1 -102.64)" stroke="#000" stroke-width="1.197" fill="#fff133"/> - <ellipse rx="18.433" ry="20.109" stroke="#000" transform="matrix(-1.2929 -1.3819 -1.3912 1.2842 1237.6 329.88)" cy="160.86" cx="82.112" stroke-width="1.197" fill="#fff133"/> - </g> - <path d="M513.78-790.16l35.432-17.714 35.433 17.714s-73.366 35.433-73.366 159.45c-.001 88.58 125.26 106.3 125.26 212.6 0 45.649-34.183 88.582-69.616 88.582s-88.583-17.716-141.73-70.866c35.433 17.716 76.082 37.308 106.3 36.058 19.588-.405 55.025-17.716 55.025-53.149 0-70.866-122.77-106.92-122.77-213.22 0-124.02 50.025-159.45 50.026-159.45z" transform="matrix(-.24 0 0 .1991 534.09 334.357)" stroke="#000" stroke-width="1.197" fill="#fff"/> - <path d="M520.25-790.16l46.683-17.717 10 17.717s-70.649 35.433-70.649 159.45c-.001 88.58 125.89 106.3 125.89 212.6 0 45.649-26.714 87.362-65.241 88.582-73.403 2.363-90.458-23.966-141.73-70.866 43.149 32.308 105 46.752 129.02 34.183 29.354-15.364 35.024-36.058 35.024-53.774 0-70.866-120.89-104.42-120.89-210.72 0-124.02 51.9-159.45 51.9-159.45z" transform="matrix(-.24 0 0 .1991 534.09 334.357)" stroke="#000" stroke-width="1.197" fill="#fff"/> - <path d="M513.34-789.69c7.004-2.437 35.875-18.186 71.308 17.247 17.717 17.72 17.716 53.149 17.716 70.866l53.15-53.149s-29.066-86.87-107.62-53.592c-11.127 4.901-28.139 14.538-34.549 18.628z" transform="matrix(-.24 0 0 .1991 534.09 334.357)" stroke="#000" stroke-width="1.197" fill="#fff"/> - <path d="M523.8-795.94c8.839-2.869 36.676-6.325 64.596 18.501 17.717 17.72 18.966 42.933 18.966 60.65l40.65-37.933c3.44-3.21-24.832-81.252-99.241-54.034-4.498 1.807-14.779 6.302-24.971 12.816z" transform="matrix(-.24 0 0 .1991 534.09 334.357)" stroke="#000" stroke-width="1.197" fill="#fff"/> - <path d="M344.54-596.29l9.152 22.141s1.455-9.767 8.526-11.534l7.071-1.768s26.864 49.328 32.168 58.167c5.302 8.838-3.536 16.793-1.769 16.793 1.769 0 26.517-11.49 26.517-11.49s-10.606.883-15.026-6.188-34.819-59.934-34.819-59.934 6.187-2.652 11.49-5.303c5.304-2.652 10.607 7.955 10.607 7.955l-13.258-26.517s0 8.839-4.42 10.607c-4.419 1.767-7.955 3.535-7.955 3.535s-3.535-6.187-7.955-13.258c-4.419-7.071 4.42-14.142 4.42-14.142l-22.981 11.49s7.955 4.42 10.607 8.839l5.303 8.839s-3.223 1.768-8.214 3.482c-3.589 1.875-7.696.054-9.464-1.714z" transform="matrix(-.19534 -.02065 -.06668 .17315 439.546 337.121)" stroke="#000" stroke-width="1.197" fill="#fff133"/> - <path d="M344.54-596.29l9.152 22.141s1.455-9.767 8.526-11.534l7.071-1.768s26.864 49.328 32.168 58.167c5.302 8.838-3.536 16.793-1.769 16.793 1.769 0 26.517-11.49 26.517-11.49s-10.606.883-15.026-6.188-34.819-59.934-34.819-59.934 6.187-2.652 11.49-5.303c5.304-2.652 10.607 7.955 10.607 7.955l-13.258-26.517s0 8.839-4.42 10.607c-4.419 1.767-7.955 3.535-7.955 3.535s-3.535-6.187-7.955-13.258c-4.419-7.071 4.42-14.142 4.42-14.142l-22.981 11.49s7.955 4.42 10.607 8.839l5.303 8.839s-3.223 1.768-8.214 3.482c-3.589 1.875-7.696.054-9.464-1.714z" transform="matrix(.17775 .02412 .0031 -.13262 320.605 95.229)" stroke="#000" stroke-width="1.197" fill="#fff133"/> - <g transform="matrix(.14437 0 0 .12085 423.643 295.291)"> - <g transform="rotate(45 478.12 -504.573)"> - <ellipse rx="35.433" ry="35.433" stroke="#000" transform="translate(124.01 283.46)" cy="-1428" cx="354.33" stroke-width="1.197" fill="silver"/> - <path d="M460.63-1126.77v53.15h35.432l.001-53.15c0-17.717-35.433-17.717-35.433 0z" stroke="#000" stroke-width="1.197" fill="#fff133"/> - <path d="M442.91-1066.09h70.866c9.757-9.756 9.757-26.095 0-35.433-25.991-10.607-44.874-9.48-70.866 0-8.307 9.338-9.422 24.826 0 35.433z" stroke="#000" stroke-width="1.197" fill="silver"/> - <path d="M442.91-1073.62v53.15h70.866v-53.15c-17.717-10.607-53.15-10.607-70.866 0z" stroke="#000" stroke-width="1.197" fill="#fff133"/> - <path d="M442.91-1012.94h70.866c9.757-9.756 9.757-26.095 0-35.433-25.991-10.607-44.874-9.48-70.866 0-8.307 9.338-9.422 24.826 0 35.433z" stroke="#000" stroke-width="1.197" fill="silver"/> - <path fill="#fff133" d="M442.91-116.93h70.866V131.1H442.91z"/> - <path d="M442.91-1020.476l.006 484.79h70.867l-.007-484.79c-17.717-10.607-53.15-10.607-70.866 0z" stroke="#000" stroke-width="1.197" fill="#fff133"/> - <path d="M442.92-506.698h70.866c9.757-9.756 9.757-26.095 0-35.433-25.991-10.607-44.874-9.48-70.866 0-8.307 9.338-9.422 24.826 0 35.433z" stroke="#000" stroke-width="1.197" fill="silver"/> - <path d="M442.92-506.7v318.9h70.866v-318.9c-17.717-10.607-53.15-10.607-70.866 0z" stroke="#000" stroke-width="1.197" fill="#fff133"/> - <path d="M425.19-329.53h106.3c9.757-9.756 9.757-26.095 0-35.433 0 0-17.716-17.716-53.149-17.716s-53.15 17.716-53.15 17.716c-7.122 9.338-6.284 24.001 0 35.433z" stroke="#000" stroke-width="1.197" fill="#fff133"/> - <path d="M425.19-329.53l17.717 88.583h70.866l17.716-88.583c.274-3.727-17.716-17.716-53.149-17.716s-51.928 17.341-53.15 17.716z" stroke="#000" stroke-width="1.197" fill="#fff133"/> - <path d="M336.61-506.69c0-35.433 0-86.653 17.717-129.98 17.716 43.326 17.716 94.546 17.716 129.98H336.61z" transform="matrix(1 0 0 .81782 124.01 173.44)" stroke="#000" stroke-width="1.197" fill="#fff133"/> - <path d="M318.9-506.69h17.716v-43.326c0-43.327-35.433-64.99-35.433-64.99l17.717 108.32z" transform="matrix(-1 0 0 .81782 832.67 173.44)" stroke="#000" stroke-width="1.197" fill="#fff133"/> - <path d="M318.9-506.69h17.716v-43.326c0-43.327-35.433-64.99-35.433-64.99l17.717 108.32z" transform="matrix(1 0 0 .81782 124.01 173.44)" stroke="#000" stroke-width="1.197" fill="#fff133"/> - <path d="M478.34-116.93c17.716 88.582 17.716 159.45 17.716 177.16.031 33.655-17.716 53.15-17.716 53.15s-17.717-17.717-17.717-53.15c0-17.716 0-88.583 17.717-177.16zm-35.433-124.02c0 124.02-35.433 230.32-35.433 318.9 0 70.866 51.654 73.453 70.118 72.16 18.464-1.294 72.3-1.191 71.614-72.16 0-88.583-35.433-194.88-35.433-318.9-17.717-17.716-53.15-17.716-70.866 0z" stroke="#000" stroke-width="1.197" fill="#fff133"/> - <path d="M442.91-1020.476v53.15c0 35.433 17.716 177.16 17.716 177.16s-17.71 148.17-17.71 183.61v53.15c0-35.433 35.427-219.04 35.427-219.04s35.44 165.89 35.44 219.04v-53.15c0-35.433-17.717-183.61-17.724-183.61.007 0 17.717-124.02 17.717-159.45v-70.867c0 35.433-35.426 212.6-35.426 212.6s-35.44-177.17-35.44-212.6z" stroke="#000" stroke-width="1.197" fill="silver"/> - </g> - <path transform="matrix(1.2487 -1.4214 1.3593 1.3175 -662.45 -102.64)" stroke="#000" stroke-width="1.197" fill="#fff133" d="M218.28 257.88h22.934v73.043H218.28z"/> - <path d="M336.61 166.54c0 14.669 35.433 35.434 35.433-17.716H336.61v17.716z" transform="matrix(1.8992 0 0 1.8865 -662.45 -102.64)" stroke="#000" stroke-width="1.197" fill="#fff133"/> - <path d="M242.1 24.803c-147.06 0-113.13 164.24-100.37 124.02 9.359-29.503 35.433-70.866 64.935-80.225 40.225-12.761 26.696 9.359 41.364 9.359 14.67 0 1.14-22.12 41.364-9.359 29.503 9.359 55.577 50.722 64.936 80.225 12.76 40.224 53.149-124.02-112.23-124.02z" transform="matrix(1.8992 0 0 1.8865 -662.45 -102.64)" stroke="#000" stroke-width="1.197" fill="#fff133"/> - <path d="M389.76 166.54c0 78.237-63.496 141.73-141.73 141.73-78.236 0-141.73-63.496-141.73-141.73v-17.716c.001-29.116 35.433 124.02 141.73 124.02s141.73-124.77 141.73-124.02v17.716z" transform="matrix(1.8992 0 0 1.8865 -662.45 -102.64)" stroke="#000" stroke-width="1.197" fill="#fff133"/> - <ellipse rx="18.433" ry="20.109" stroke="#000" transform="matrix(1.2929 -1.3819 1.3912 1.2842 -753.9 -120.02)" cy="160.86" cx="82.112" stroke-width="1.197" fill="silver"/> - <path transform="matrix(1.2509 -1.4194 1.3614 1.3153 -662.45 -102.64)" stroke="#000" stroke-width="1.197" fill="silver" d="M196.5 254.15h25.197v80.26H196.5z"/> - <path d="M336.61 166.54c0 14.669 35.433 35.434 35.433-17.716H336.61v17.716z" transform="matrix(-1.8992 0 0 1.8865 279.67 -100.51)" stroke="#000" stroke-width="1.197" fill="#fff133"/> - <path d="M389.76 148.82c0 78.236-63.496 141.73-141.73 141.73-78.236 0-141.73-63.496-141.73-141.73 0-78.236 63.496-141.73 141.73-141.73 78.237 0 141.73 63.496 141.73 141.73zm-53.15 0c0 14.669 22.812 3.042 9.359 43.04-9.359 27.826-27.075 45.543-56.578 54.902-40.225 12.76-26.694-9.359-41.364-9.359-14.668 0-1.14 22.119-41.364 9.359-29.502-9.359-47.218-27.076-56.577-56.578-12.76-40.224 9.359-26.695 9.359-41.364 0-14.67-22.119-1.139-9.359-41.364 9.359-29.502 27.075-47.219 56.577-56.578 40.225-12.761 26.696 9.359 41.364 9.359 14.67 0 1.14-22.12 41.364-9.359 29.503 9.359 47.219 27.075 56.578 56.578 12.76 40.224-9.359 26.694-9.359 41.364z" transform="matrix(1.8992 0 0 1.8865 -662.45 -102.64)" stroke="#000" stroke-width="1.197" fill="#fff133"/> - <path d="M126.55 157.68c-20.248 0-1.929 67.6-9.104 51.705s-11.144-33.368-11.144-51.705 3.969-35.809 11.144-51.705c7.175-15.894-11.144 51.705 9.104 51.705z" transform="matrix(1.6618 0 0 1.7607 -603.57 -99.519)" stroke="#000" stroke-width="1.197" fill="#fff133"/> - <path d="M372.05 139.96c0 15.892-2.13 31.632-9.751 44.811-7.965 13.775 9.751-44.811-7.965-44.811 17.716 0 1.687-58.587 7.965-44.811 6.279 13.776 9.751 28.919 9.751 44.811z" transform="matrix(1.8992 0 0 2.0316 -662.45 -106.24)" stroke="#000" stroke-width="1.197" fill="#fff133"/> - <path d="M296.29 263.08c-14.836 6.279-31.144 9.751-48.258 9.751s-33.422-3.472-48.257-9.751c-14.835-6.278 48.257 9.751 48.257-7.966 0 17.717 63.093 1.688 48.258 7.966zM248.03 42.52c0-17.716-63.092-1.688-48.257-7.966s31.143-9.75 48.257-9.75 33.422 3.472 48.258 9.75c14.835 6.278-48.258-9.75-48.258 7.966z" transform="matrix(1.8992 0 0 1.8865 -662.45 -102.64)" stroke="#000" stroke-width="1.197" fill="#fff133"/> - <path d="M276.58 287.67c-9.223 1.889-18.773 2.881-28.552 2.881s-19.329-.992-28.553-2.881l-1.432 6.965c9.686 1.984 19.715 3.025 29.985 3.025s20.299-1.041 29.985-3.025l-1.433-6.965z" transform="matrix(1.2929 -1.3819 -1.3912 -1.2842 -305.22 712.05)" stroke="#000" stroke-width="1.197" fill="silver"/> - <path d="M276.58 287.67c-9.223 1.889-18.773 2.881-28.552 2.881s-19.329-.992-28.553-2.881l-1.432 6.965c9.686 1.984 19.715 3.025 29.985 3.025s20.299-1.041 29.985-3.025l-1.433-6.965z" transform="matrix(1.2929 -1.3819 1.3912 1.2842 -719.56 329.88)" stroke="#000" stroke-width="1.197" fill="silver"/> - <path d="M267.7 308.51c-9.223 1.889-20.189.927-29.969.927-9.778 0-19.285-2.612-28.509-4.501l8.821-10.303c9.686 1.984 19.715 3.025 29.985 3.025s20.299-1.041 29.985-3.025L267.7 308.51z" transform="matrix(1.2929 -1.3819 1.3912 1.2842 -719.56 329.88)" stroke="#000" stroke-width="1.197" fill="silver"/> - <path d="M276.58 287.67c-9.223 1.889-18.773 2.881-28.552 2.881s-19.329-.992-28.553-2.881l-1.432 6.965c9.686 1.984 19.715 3.025 29.985 3.025s20.299-1.041 29.985-3.025l-1.433-6.965z" transform="matrix(1.3912 1.2842 -1.2929 1.3819 -343.78 -345.21)" stroke="#000" stroke-width="1.197" fill="silver"/> - <ellipse rx="18.433" ry="20.109" stroke="#000" transform="matrix(1.2929 -1.3819 1.3912 1.2842 -285.47 314.38)" cy="160.86" cx="82.112" stroke-width="1.197" fill="silver"/> - <path d="M267.59 281.47c-9.223 1.889-17.098 2.943-26.877 2.943s-23.112-.712-32.336-2.601l9.672 12.822c9.686 1.984 19.715 3.025 29.985 3.025s20.299-1.041 29.985-3.025L267.59 281.47z" transform="matrix(1.3912 1.2842 -1.2929 1.3819 -346.96 -315.18)" stroke="#000" stroke-width="1.197" fill="silver"/> - <path d="M173.94 271.77l-.838 14.842-3.239 4.493.976-15.087 3.101-4.248zM330.54 265.6l3.562 4.189 1.047 13.616-2.933-2.933-1.676-14.872z" transform="matrix(1.8992 0 0 1.8865 -662.45 -102.64)" stroke="#000" stroke-width="1.197" fill="silver"/> - <ellipse rx="18.433" ry="20.109" stroke="#000" transform="matrix(1.2929 -1.3819 1.3912 1.2842 -733.89 329.88)" cy="160.86" cx="82.112" stroke-width="1.197" fill="silver"/> - <g stroke="#000" fill="#fff133"> - <path d="M301.18 396.85l17.717 17.717-17.717 17.716 8.858 8.859 17.717-17.717 35.433 35.433-17.717 17.717 8.859 8.858 17.716-17.716 17.717 17.716-53.15 53.15-35.433-35.433 17.717-17.717 8.858 8.859 8.858-8.859L301.18 450l-8.858 8.859 8.858 8.858-17.716 17.716-17.717-17.716 8.858-8.859-8.858-8.858-35.433 35.433 8.858 8.858 8.858-8.858 17.717 17.717-17.716 17.716-8.858-8.858-8.859 8.858 35.433 35.433 8.859-8.858-8.859-8.859 17.717-17.716 35.433 35.433-53.15 53.15-17.717-17.717 17.717-17.716-8.858-8.858-17.717 17.716-35.433-35.433 17.717-17.717-8.859-8.858-17.716 17.717-17.717-17.717 124.02-124.02z" transform="matrix(2.2946 0 0 2.2438 143.093 -1733.726)" stroke-width=".561"/> - <path d="M318.9 786.61v35.433l88.582 88.583V839.76l-17.716-17.717h-35.433L318.9 786.61z" stroke-width="1.122" transform="matrix(1.1473 0 0 1.1219 346.36 -1288.5)"/> - <path d="M230.41 698.78l70.381 70.381.838 35.19-71.219-71.219V698.78z" transform="matrix(1.1473 0 0 1.1219 346.246 -1288.525)" stroke-width="1.122"/> - <path d="M301.18 804.33l35.433-35.433v-35.433l-35.433 35.433v35.433z" stroke-width="1.122" transform="matrix(1.1473 0 0 1.1219 346.36 -1288.5)"/> - <path d="M301.18 804.33l35.433-35.433v-35.433l-35.433 35.433v35.433z" transform="matrix(1.1473 0 0 1.1219 244.729 -1387.881)" stroke-width="1.122"/> - <path d="M248.03 644.88v35.433l17.717-17.717-17.717-17.716z" stroke-width="1.122" transform="matrix(1.1473 0 0 1.1219 346.36 -1288.5)"/> - <path d="M248.03 644.88v35.433l17.717-17.717-17.717-17.716z" transform="matrix(1.1473 0 0 1.1219 447.991 -1189.119)" stroke-width="1.122"/> - <path d="M230.41 698.78l35.786 35.433v35.433l-35.786-36.514V698.78z" transform="matrix(1.1473 0 0 1.1219 284.864 -1348.97)" stroke-width="1.122"/> - <path d="M301.18 804.33l35.433-35.433v-35.433l-35.433 35.433v35.433z" transform="matrix(1.1473 0 0 1.1219 447.991 -1507.136)" stroke-width="1.122"/> - <path d="M301.18 804.33l35.433-35.433v-35.433l-35.433 35.433v35.433z" transform="matrix(1.1473 0 0 1.1219 366.687 -1427.638)" stroke-width="1.122"/> - <path d="M283.46 822.05l53.15-53.15v-35.433l-70.866 70.866 17.716 17.717z" transform="matrix(1.1473 0 0 1.1219 366.687 -1546.896)" stroke-width="1.122"/> - <path d="M248.03 644.88v35.433l17.717-17.717-17.717-17.716z" transform="matrix(1.1473 0 0 1.1219 468.318 -1447.507)" stroke-width="1.122"/> - <path d="M301.18 804.33l-35.433-35.433v-35.433l35.433 35.433v35.433z" transform="matrix(1.1473 0 0 1.1219 447.991 -1507.136)" stroke-width="1.122"/> - <path d="M389.76 822.05l-53.15-53.15v-35.433l70.866 70.866-17.716 17.717z" transform="matrix(1.1473 0 0 1.1219 447.991 -1546.896)" stroke-width="1.122"/> - <path d="M230.41 698.05l70.866 70.866h35.433l17.717 17.716v70.867l-124.02-124.37v-35.08z" transform="matrix(1.1473 0 0 1.1219 569.831 -1387.906)" stroke-width="1.122"/> - <path d="M354.33 822.05l106.3-106.3h35.433l-106.3 106.3H354.33z" stroke-width="1.122" transform="matrix(1.1473 0 0 1.1219 346.36 -1288.5)"/> - <path d="M407.48 839.76l106.3-106.3-17.72-17.71-106.3 106.3 17.72 17.71z" stroke-width="1.122" transform="matrix(1.1473 0 0 1.1219 346.36 -1288.5)"/> - <path d="M407.48 839.76v70.866l106.3-106.3V733.46l-106.3 106.3z" transform="matrix(1.1473 0 0 1.1219 346.36 -1288.5)" stroke-width="1.122"/> - <path d="M354.33 822.05l106.3-106.3h35.433l-106.3 106.3H354.33z" transform="matrix(1.1473 0 0 1.1219 508.967 -1447.507)" stroke-width="1.122"/> - <path d="M407.48 839.76l106.3-106.3-17.72-17.71-106.3 106.3 17.72 17.71z" transform="matrix(1.1473 0 0 1.1219 508.967 -1447.507)" stroke-width="1.122"/> - <path d="M407.48 839.76v70.866l106.3-106.3V733.46l-106.3 106.3z" transform="matrix(1.1473 0 0 1.1219 508.967 -1447.507)" stroke-width="1.122"/> - <path d="M318.9 786.62l17.717-17.717V733.47l-35.433 35.433L318.9 786.62z" transform="matrix(1.1473 0 0 1.1219 590.276 -1527.016)" stroke-width="1.122"/> - <path d="M318.9 786.62l17.717-17.717V733.47l-35.433 35.433L318.9 786.62z" transform="matrix(1.1473 0 0 1.1219 488.648 -1626.394)" stroke-width="1.122"/> - <path d="M265.75 768.9v-35.433l17.717 17.716L265.75 768.9z" transform="matrix(1.1473 0 0 1.1219 447.991 -1348.129)" stroke-width="1.122"/> - <path d="M301.18 804.33l-35.433-35.433 17.717-17.717 17.716 17.717v35.433z" transform="matrix(1.1473 0 0 1.1219 366.687 -1427.638)" stroke-width="1.122"/> - <path d="M301.18 804.33l-17.716-17.717 17.716-17.716v35.433z" transform="matrix(1.1473 0 0 1.1219 488.648 -1586.645)" stroke-width="1.122"/> - </g> - </g> - <g stroke="#000" stroke-width="17.958" fill="#b00"> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(.01435 .009 -.00335 .01413 452.07 279.279)"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(.01446 .00854 -.00318 .01423 452.107 277.374)"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(.01435 .009 -.00335 .01413 452.114 274.997)"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(.01446 .00854 -.00318 .01423 452.15 273.091)"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(.01435 .009 -.00335 .01413 451.98 287.843)"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(.01446 .00854 -.00318 .01423 452.018 285.938)"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(.01435 .009 -.00335 .01413 452.025 283.561)"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(.01446 .00854 -.00318 .01423 452.062 281.656)"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(.01435 .009 -.00335 .01413 452.246 262.15)"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(.01446 .00854 -.00318 .01423 452.284 260.246)"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(.01435 .009 -.00335 .01413 452.29 257.87)"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(.01446 .00854 -.00318 .01423 452.328 255.964)"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(.01435 .009 -.00335 .01413 452.158 270.715)"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(.01446 .00854 -.00318 .01423 452.195 268.81)"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(.01435 .009 -.00335 .01413 452.202 266.433)"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(.01446 .00854 -.00318 .01423 452.24 264.528)"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(.01435 .009 -.00335 .01413 451.715 313.535)"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(.01446 .00854 -.00318 .01423 451.753 311.63)"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(.01435 .009 -.00335 .01413 451.76 309.253)"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(.01446 .00854 -.00318 .01423 451.797 307.348)"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(.01435 .009 -.00335 .01413 451.627 322.098)"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(.01446 .00854 -.00318 .01423 451.664 320.194)"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(.01435 .009 -.00335 .01413 451.671 317.817)"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(.01446 .00854 -.00318 .01423 451.708 315.912)"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(.01435 .009 -.00335 .01413 451.892 296.407)"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(.01446 .00854 -.00318 .01423 451.93 294.502)"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(.01435 .009 -.00335 .01413 451.937 292.125)"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(.01446 .00854 -.00318 .01423 451.974 290.22)"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(.01435 .009 -.00335 .01413 451.804 304.97)"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(.01446 .00854 -.00318 .01423 451.841 303.066)"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(.01435 .009 -.00335 .01413 451.848 300.689)"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(.01446 .00854 -.00318 .01423 451.885 298.784)"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(.01435 .009 -.00335 .01413 451.361 347.79)"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(.01446 .00854 -.00318 .01423 451.399 345.886)"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(.01435 .009 -.00335 .01413 451.406 343.509)"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(.01446 .00854 -.00318 .01423 451.443 341.603)"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(.01446 .00854 -.00318 .01423 451.31 354.45)"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(.01435 .009 -.00335 .01413 451.317 352.072)"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(.01446 .00854 -.00318 .01423 451.354 350.168)"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(.01435 .009 -.00335 .01413 451.538 330.663)"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(.01446 .00854 -.00318 .01423 451.576 328.757)"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(.01435 .009 -.00335 .01413 451.583 326.381)"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(.01446 .00854 -.00318 .01423 451.62 324.476)"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(.01435 .009 -.00335 .01413 451.45 339.227)"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(.01446 .00854 -.00318 .01423 451.487 337.322)"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(.01435 .009 -.00335 .01413 451.494 334.945)"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(.01446 .00854 -.00318 .01423 451.531 333.04)"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(.01435 .009 -.00335 .01413 451.139 369.31)"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(.01446 .00854 -.00318 .01423 451.176 367.404)"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(.01435 .009 -.00335 .01413 451.183 365.028)"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(.01446 .00854 -.00318 .01423 451.22 363.123)"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(.01446 .00854 -.00318 .01423 451.088 375.969)"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(.01435 .009 -.00335 .01413 451.095 373.591)"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(.01446 .00854 -.00318 .01423 451.132 371.687)"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(.01435 .009 -.00335 .01413 451.227 360.745)"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(.01446 .00854 -.00318 .01423 451.265 358.841)"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(.01435 .009 -.00335 .01413 451.272 356.464)"/> - </g> - <g stroke="#000" stroke-width="17.958" fill="#b00"> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(.01447 .00887 -.00316 .01416 455.007 279.558)"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(.01457 .0084 -.003 .01426 455.018 277.653)"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(.01447 .00887 -.00316 .01416 454.993 275.276)"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(.01457 .0084 -.003 .01426 455.005 273.37)"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(.01447 .00887 -.00316 .01416 455.034 288.122)"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(.01457 .0084 -.003 .01426 455.045 286.217)"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(.01447 .00887 -.00316 .01416 455.02 283.84)"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(.01457 .0084 -.003 .01426 455.032 281.935)"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(.01447 .00887 -.00316 .01416 454.953 262.43)"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(.01457 .0084 -.003 .01426 454.964 260.525)"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(.01447 .00887 -.00316 .01416 454.94 258.148)"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(.01457 .0084 -.003 .01426 454.951 256.242)"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(.01447 .00887 -.00316 .01416 454.98 270.994)"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(.01457 .0084 -.003 .01426 454.991 269.088)"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(.01447 .00887 -.00316 .01416 454.966 266.711)"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(.01457 .0084 -.003 .01426 454.978 264.807)"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(.01447 .00887 -.00316 .01416 455.115 313.816)"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(.01457 .0084 -.003 .01426 455.126 311.91)"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(.01447 .00887 -.00316 .01416 455.101 309.533)"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(.01457 .0084 -.003 .01426 455.113 307.628)"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(.01447 .00887 -.00316 .01416 455.142 322.38)"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(.01457 .0084 -.003 .01426 455.153 320.475)"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(.01447 .00887 -.00316 .01416 455.128 318.097)"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(.01457 .0084 -.003 .01426 455.14 316.193)"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(.01447 .00887 -.00316 .01416 455.06 296.687)"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(.01457 .0084 -.003 .01426 455.072 294.782)"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(.01447 .00887 -.00316 .01416 455.047 292.405)"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(.01457 .0084 -.003 .01426 455.059 290.5)"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(.01447 .00887 -.00316 .01416 455.088 305.251)"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(.01457 .0084 -.003 .01426 455.1 303.346)"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(.01447 .00887 -.00316 .01416 455.074 300.969)"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(.01457 .0084 -.003 .01426 455.086 299.064)"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(.01447 .00887 -.00316 .01416 455.222 348.072)"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(.01457 .0084 -.003 .01426 455.234 346.168)"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(.01447 .00887 -.00316 .01416 455.209 343.79)"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(.01457 .0084 -.003 .01426 455.22 341.885)"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(.01457 .0084 -.003 .01426 455.261 354.731)"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(.01447 .00887 -.00316 .01416 455.236 352.354)"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(.01457 .0084 -.003 .01426 455.247 350.45)"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(.01447 .00887 -.00316 .01416 455.169 330.944)"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(.01457 .0084 -.003 .01426 455.18 329.038)"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(.01447 .00887 -.00316 .01416 455.155 326.662)"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(.01457 .0084 -.003 .01426 455.167 324.756)"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(.01447 .00887 -.00316 .01416 455.195 339.509)"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(.01457 .0084 -.003 .01426 455.207 337.603)"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(.01447 .00887 -.00316 .01416 455.182 335.226)"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(.01457 .0084 -.003 .01426 455.194 333.321)"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(.01447 .00887 -.00316 .01416 455.29 369.592)"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(.01457 .0084 -.003 .01426 455.302 367.687)"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(.01447 .00887 -.00316 .01416 455.277 365.31)"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(.01457 .0084 -.003 .01426 455.288 363.405)"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(.01457 .0084 -.003 .01426 455.329 376.251)"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(.01447 .00887 -.00316 .01416 455.304 373.874)"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(.01457 .0084 -.003 .01426 455.315 371.97)"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(.01447 .00887 -.00316 .01416 455.263 361.028)"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(.01457 .0084 -.003 .01426 455.275 359.123)"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(.01447 .00887 -.00316 .01416 455.25 356.746)"/> - </g> - <g stroke="#000" stroke-width="12.791" fill="#b00"> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(.01804 .0045 .00258 .01426 466.68 266.44)"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(.00502 .01448 -.01369 .00945 463.064 262.695)"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(.01316 .01078 -.0063 .01351 464.422 264.973)"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(-.011 .01222 -.01787 -.00248 462.708 259.138)"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(-.0104 .0123 -.018 -.00234 465.109 259.125)"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(-.01155 .01189 -.01775 -.003 452.207 259.055)"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(-.01097 .01198 -.01788 -.00286 454.606 259.113)"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(-.01155 .01189 -.01775 -.003 457.6 259.152)"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(-.0104 .0123 -.018 -.00234 459.715 259.187)"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(-.01155 .01189 -.01775 -.003 448.742 258.147)"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(-.01268 .01087 -.01732 -.00452 450.414 258.509)"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(-.01676 .00696 -.01454 -.00862 449.456 256.964)"/> - </g> - <g stroke="#000" stroke-width="12.791" fill="#b00"> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(-.01456 -.00876 -.0151 .00691 500.895 356.244)"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(-.01407 -.00899 -.01526 .0068 503.055 355.643)"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(-.01456 -.00876 -.0151 .00691 505.762 354.925)"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(-.01407 -.00899 -.01526 .0068 507.922 354.324)"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(-.01737 .00284 -.00405 .01407 523.959 347.347)"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(-.01147 .01155 .00717 .0131 526.045 341.334)"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(-.0175 .0033 -.00385 .01404 525.113 345.175)"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(-.0136 -.00978 -.01575 .0058 490.77 358.257)"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(-.0131 -.00997 -.0159 .00568 492.983 357.815)"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(-.01493 -.00832 -.0148 .00736 496.453 357.222)"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(-.01254 -.01046 -.0162 .00507 497.317 356.546)"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(-.01456 -.00876 -.0151 .00691 510.629 353.606)"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(-.01407 -.00899 -.01526 .0068 512.788 353.005)"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(-.01096 -.01188 -.01683 .003 458.727 360.068)"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(-.01041 -.01198 -.01695 .00287 461 360.008)"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(-.01096 -.01188 -.01683 .003 463.84 359.968)"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(-.01041 -.01198 -.01695 .00287 466.116 359.91)"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(-.01096 -.01188 -.01683 .003 448.498 360.265)"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(-.01041 -.01198 -.01695 .00287 450.773 360.205)"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(-.01096 -.01188 -.01683 .003 453.612 360.165)"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(-.01041 -.01198 -.01695 .00287 455.887 360.107)"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(-.01244 -.01081 -.01634 .00452 479.926 359.599)"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(-.01231 -.01064 -.0163 .00483 482.462 359.341)"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(-.01284 -.01048 -.01616 .00495 485.265 358.968)"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(-.0131 -.00997 -.0159 .00568 488 358.778)"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(-.01096 -.01188 -.01683 .003 468.954 359.87)"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(-.0113 -.0114 -.0167 .00377 471.61 359.856)"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(-.0125 -.01076 -.01631 .0046 474.785 359.779)"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(-.01107 -.01156 -.01677 .00353 476.597 359.414)"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(-.00824 -.01334 -.0172 .00043 416.695 358.169)"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(-.00768 -.01335 -.01729 .00028 418.945 358.453)"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(-.00983 -.01256 -.01706 .0019 422.369 359.196)"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(-.00927 -.01262 -.01717 .00176 424.642 359.286)"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(-.00768 -.01335 -.01729 .00028 408.84 357.112)"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(-.00824 -.01334 -.0172 .00043 411.642 357.498)"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(-.00768 -.01335 -.01729 .00028 413.893 357.782)"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(-.00983 -.01256 -.01706 .0019 437.692 359.897)"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(-.00927 -.01262 -.01717 .00176 439.965 359.987)"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(-.01096 -.01188 -.01683 .003 443.384 360.362)"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(-.01041 -.01198 -.01695 .00287 445.658 360.304)"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(-.00983 -.01256 -.01706 .0019 427.477 359.43)"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(-.00927 -.01262 -.01717 .00176 429.75 359.519)"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(-.00983 -.01256 -.01706 .0019 432.585 359.663)"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(-.00927 -.01262 -.01717 .00176 434.858 359.752)"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(.01773 -.00226 .00503 -.01378 399.867 338.592)"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(.0141 -.00895 -.00376 -.01413 397.117 342.637)"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(.00947 -.01275 -.00925 -.01215 396.961 346.746)"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(.00376 -.01448 -.01383 -.00869 397.682 350.215)"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(.01766 .00094 .00819 -.01275 405.433 332.911)"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(.01793 .00053 .00798 -.01276 403.656 334.766)"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(.01757 -.0018 .00523 -.0138 401.203 336.495)"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(-.001 -.01499 -.0159 -.0055 399.736 353.467)"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(-.00438 -.01435 -.01702 -.00258 402.69 355.36)"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(-.00824 -.01334 -.0172 .00043 406.461 356.81)"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(-.0174 -.00361 -.01096 .0111 516.711 351.703)"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(-.0168 -.00469 -.0118 .01058 516.854 352.14)"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(-.01764 -.00272 -.01013 .01164 521.71 349.38)"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(-.01667 -.00498 -.01207 .01037 518.628 350.93)"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(.01634 -.0062 .01318 .00926 511.524 341.023)"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(.0159 -.0065 .01336 .00919 509.547 340.079)"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(.01686 -.00512 .01228 .01009 506.422 338.863)"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(.0159 -.0065 .01336 .00919 518.47 344.267)"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(.01634 -.0062 .01318 .00926 515.986 343.118)"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(.0159 -.0065 .01336 .00919 514.008 342.173)"/> - </g> - <g transform="matrix(.08053 0 0 .0956 438.435 288.09)"> - <path d="M212.603-1994.912v53.15h-53.15v35.44h53.15v106.3h35.433v-106.3h53.149v-35.44h-53.149v-53.15h-35.433z" stroke="#000" stroke-width="1.197" fill="#fff133"/> - <ellipse rx="62.008" ry="57.32" stroke="#000" transform="matrix(.57143 0 0 .61816 93.645 -678.94)" cy="-1813.5" cx="239.17" stroke-width="1.197" fill="#fff133"/> - <path d="M602.36-1119.4c0 68.45-10.417 145.68-29.252 205.02-120.08-26.455-268.06-39.682-339.04-39.682-87.586 0-246.15 13.227-345.26 26.455-18.835-59.336-30.538-123.34-30.538-191.79 0-273.81 105.27-390.21 367.5-496.03 233.3 105.82 376.6 222.22 376.6 496.03z" transform="matrix(1.0576 0 0 1.3394 -5.764 363.72)" stroke="#000" stroke-width="1.197" fill="#fff"/> - <path d="M566.93-657.28c0-44.007-150.8-79.724-336.61-79.724s-336.61 35.717-336.61 79.724v26.575c0-44.007 150.8-70.866 336.61-70.866s336.61 44.576 336.61 88.583v-44.292z" transform="matrix(1.1715 0 0 .74463 -32.833 -634.89)" stroke="#000" stroke-width="1.197" fill="#fff133"/> - <g stroke="#000" stroke-width="1.197" fill="#fff133"> - <path d="M230.32-825.59l-53.15 53.15 35.433 35.433-17.716 17.717-35.433-35.433-53.15 53.149 53.15 53.15 35.433-35.433 17.716 17.716v53.15h35.433v-53.15l17.717-17.716 35.433 35.433 53.15-53.15-53.15-53.149-35.433 35.433-17.717-17.717 35.434-35.433-53.15-53.15z" transform="matrix(1.1725 0 0 .74463 -33.06 -766.809)"/> - <path d="M220.98-825.59l-8.379 53.15v35.433l-17.716 17.717v-35.434l-17.717 53.15 17.717 53.149v-35.432l17.716 17.716v53.15l17.717-.001v-53.15l17.717-17.716-.001 35.432 17.717-53.149-17.717-53.15.001 35.434-17.717-17.717v-35.433l-9.338-53.149z" transform="matrix(1.13516 -.18643 .29356 .72091 -190.034 -703.65)"/> - <path d="M220.98-825.59l-8.379 53.15v35.433l-17.716 17.717v-35.434l-17.717 53.15 17.717 53.149v-35.432l17.716 17.716v53.15l17.717-.001v-53.15l17.717-17.716-.001 35.432 17.717-53.149-17.717-53.15.001 35.434-17.717-17.717v-35.433l-9.338-53.149z" transform="matrix(1.1416 .16986 -.26746 .725 182.2 -778.388)"/> - <path d="M141.73-1020.5c0-17.72 17.717-35.44 35.433-35.44 17.717 0 35.433 17.72 35.433 35.44s-17.716 35.431-17.716 35.431l70.866 70.866h-35.433l-53.15-53.15-53.149 53.15H88.581l70.866-70.866s-17.717-17.711-17.717-35.431z" transform="matrix(.92597 -.09509 .18717 .73508 28.799 -521.9)"/> - <path d="M141.73-1020.5c0-17.72 17.717-35.44 35.433-35.44 17.717 0 35.433 17.72 35.433 35.44s-17.716 35.431-17.716 35.431l70.866 70.866h-35.433l-53.15-53.15-53.149 53.15H88.581l70.866-70.866s-17.717-17.711-17.717-35.431z" transform="matrix(.92699 .091 -.17909 .7359 124.84 -554.076)"/> - <path d="M566.93-657.28c0-44.007-150.8-79.724-336.61-79.724s-336.61 35.717-336.61 79.724v26.575c0-44.007 150.8-70.866 336.61-70.866s336.61 44.576 336.61 88.583v-44.292z" transform="matrix(1.1725 0 0 .74463 -33.06 -674.46)"/> - </g> - <path d="M566.93-657.28c0-44.007-150.8-79.724-336.61-79.724s-336.61 35.717-336.61 79.724v26.575c0-44.007 150.8-70.866 336.61-70.866s336.61 44.576 336.61 88.583v-44.292z" transform="matrix(1.0735 0 0 .74463 -9.254 -386.86)" stroke="#000" stroke-width="1.197" fill="#fff133"/> - <g stroke="#000" stroke-width="1.197" fill="#fff133"> - <path d="M230.32-825.59l-53.15 53.15 35.433 35.433-17.716 17.717-35.433-35.433-53.15 53.149 53.15 53.15 35.433-35.433 17.716 17.716v53.15h35.433v-53.15l17.717-17.716 35.433 35.433 53.15-53.15-53.15-53.149-35.433 35.433-17.717-17.717 35.434-35.433-53.15-53.15z" transform="matrix(1.1042 0 0 .74463 -12.892 -518.779)"/> - <path d="M220.98-825.59l-8.379 53.15v35.433l-17.716 17.717v-35.434l-17.717 53.15 17.717 53.149v-35.432l17.716 17.716v53.15l17.717-.001v-53.15l17.717-17.716-.001 35.432 17.717-53.149-17.717-53.15.001 35.434-17.717-17.717v-35.433l-9.338-53.149z" transform="scale(1.1042 .74463) rotate(-14.499 -2477.736 266.166)"/> - <path d="M220.98-825.59l-8.379 53.15v35.433l-17.716 17.717v-35.434l-17.717 53.15 17.717 53.149v-35.432l17.716 17.716v53.15l17.717-.001v-53.15l17.717-17.716-.001 35.432 17.717-53.149-17.717-53.15.001 35.434-17.717-17.717v-35.433l-9.338-53.149z" transform="matrix(1.0751 .16986 -.25188 .725 189.828 -530.358)"/> - <path d="M141.73-1020.5c0-17.72 17.717-35.44 35.433-35.44 17.717 0 35.433 17.72 35.433 35.44s-17.716 35.431-17.716 35.431l70.866 70.866h-35.433l-53.15-53.15-53.149 53.15H88.581l70.866-70.866s-17.717-17.711-17.717-35.431z" transform="matrix(.87203 -.09509 .17626 .73508 45.363 -273.87)"/> - <path d="M141.73-1020.5c0-17.72 17.717-35.44 35.433-35.44 17.717 0 35.433 17.72 35.433 35.44s-17.716 35.431-17.716 35.431l70.866 70.866h-35.433l-53.15-53.15-53.149 53.15H88.581l70.866-70.866s-17.717-17.711-17.717-35.431z" transform="matrix(.873 .091 -.16866 .7359 135.81 -306.046)"/> - <path d="M566.93-657.28c0-44.007-150.8-79.724-336.61-79.724s-336.61 35.717-336.61 79.724v26.575c0-44.007 150.8-70.866 336.61-70.866s336.61 44.576 336.61 88.583v-44.292z" transform="matrix(1.1042 0 0 .74463 -12.892 -426.43)"/> - </g> - <path d="M566.93-657.28c0-44.007-150.8-79.724-336.61-79.724s-336.61 35.717-336.61 79.724v26.575c0-44.007 150.8-70.866 336.61-70.866s336.61 44.576 336.61 88.583v-44.292z" transform="matrix(1.105 0 0 .74463 -16.106 -865.2)" stroke="#000" stroke-width="1.197" fill="#fff133"/> - <g stroke="#000" stroke-width="1.197" fill="#fff133"> - <path d="M230.32-825.59l-53.15 53.15 35.433 35.433-17.716 17.717-35.433-35.433-53.15 53.149 53.15 53.15 35.433-35.433 17.716 17.716v53.15h35.433v-53.15l17.717-17.716 35.433 35.433 53.15-53.15-53.15-53.149-35.433 35.433-17.717-17.717 35.434-35.433-53.15-53.15z" transform="matrix(1.0799 0 0 .70238 -6.168 -1031.347)"/> - <path d="M220.98-825.59l-8.379 53.15v35.433l-17.716 17.717v-35.434l-17.717 53.15 17.717 53.149v-35.432l17.716 17.716v53.15l17.717-.001v-53.15l17.717-17.716-.001 35.432 17.717-53.149-17.717-53.15.001 35.434-17.717-17.717v-35.433l-9.338-53.149z" transform="matrix(1.0455 -.17585 .27037 .68 -150.745 -971.771)"/> - <path d="M220.98-825.59l-8.379 53.15v35.433l-17.716 17.717v-35.434l-17.717 53.15 17.717 53.149v-35.432l17.716 17.716v53.15l17.717-.001v-53.15l17.717-17.716-.001 35.432 17.717-53.149-17.717-53.15.001 35.434-17.717-17.717v-35.433l-9.338-53.149z" transform="scale(1.0799 .70238) rotate(13.186 6508.428 27.561)"/> - <path d="M141.73-1020.5c0-17.72 17.717-35.44 35.433-35.44 17.717 0 35.433 17.72 35.433 35.44s-17.716 35.431-17.716 35.431l70.866 70.866h-35.433l-53.15-53.15-53.149 53.15H88.581l70.866-70.866s-17.717-17.711-17.717-35.431z" transform="matrix(.85284 -.0897 .17238 .69338 50.806 -800.335)"/> - <path d="M141.73-1020.5c0-17.72 17.717-35.44 35.433-35.44 17.717 0 35.433 17.72 35.433 35.44s-17.716 35.431-17.716 35.431l70.866 70.866h-35.433l-53.15-53.15-53.149 53.15H88.581l70.866-70.866s-17.717-17.711-17.717-35.431z" transform="matrix(.85378 .08583 -.16494 .69414 139.262 -830.684)"/> - <path d="M566.93-657.28c0-44.007-150.8-79.724-336.61-79.724s-336.61 35.717-336.61 79.724v26.575c0-44.007 150.8-70.866 336.61-70.866s336.61 44.576 336.61 88.583v-44.292z" transform="matrix(1.0799 0 0 .70238 -6.168 -944.238)"/> - </g> - <ellipse rx="375.87" ry="120.53" transform="matrix(.96627 0 0 .41385 12.936 -517.53)" cy="-822.11" cx="234.13" fill="#b90000"/> - </g> - <path d="M513.78-790.16l35.432-17.714 35.433 17.714s-73.366 35.433-73.366 159.45c-.001 88.58 125.26 106.3 125.26 212.6 0 45.649-34.183 88.582-69.616 88.582s-88.583-17.716-141.73-70.866c35.433 17.716 76.082 37.308 106.3 36.058 19.588-.405 55.025-17.716 55.025-53.149 0-70.866-122.77-106.92-122.77-213.22 0-124.02 50.025-159.45 50.026-159.45z" transform="matrix(.24 0 0 .1991 381.891 336.17)" stroke="#000" stroke-width="1.197" fill="#fff"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(.02071 -.00148 .00948 .02238 454.378 384)" stroke="#000" stroke-width="17.958" fill="#b00"/> - <path d="M520.25-790.16l46.683-17.717 10 17.717s-70.649 35.433-70.649 159.45c-.001 88.58 125.89 106.3 125.89 212.6 0 45.649-26.714 87.362-65.241 88.582-73.403 2.363-90.458-23.966-141.73-70.866 43.149 32.308 105 46.752 129.02 34.183 29.354-15.364 35.024-36.058 35.024-53.774 0-70.866-120.89-104.42-120.89-210.72 0-124.02 51.9-159.45 51.9-159.45z" transform="matrix(.24 0 0 .1991 381.891 336.17)" stroke="#000" stroke-width="1.197" fill="#fff"/> - <path d="M513.34-789.69c7.004-2.437 35.875-18.186 71.308 17.247 17.717 17.72 17.716 53.149 17.716 70.866l53.15-53.149s-29.066-86.87-107.62-53.592c-11.127 4.901-28.139 14.538-34.549 18.628z" transform="matrix(.24 0 0 .1991 381.891 336.17)" stroke="#000" stroke-width="1.197" fill="#fff"/> - <path d="M523.8-795.94c8.839-2.869 36.676-6.325 64.596 18.501 17.717 17.72 18.966 42.933 18.966 60.65l40.65-37.933c3.44-3.21-24.832-81.252-99.241-54.034-4.498 1.807-14.779 6.302-24.971 12.816z" transform="matrix(.24 0 0 .1991 381.891 336.17)" stroke="#000" stroke-width="1.197" fill="#fff"/> - <path d="M344.54-596.29l9.152 22.141s1.455-9.767 8.526-11.534l7.071-1.768s26.864 49.328 32.168 58.167c5.302 8.838-3.536 16.793-1.769 16.793 1.769 0 26.517-11.49 26.517-11.49s-10.606.883-15.026-6.188-34.819-59.934-34.819-59.934 6.187-2.652 11.49-5.303c5.304-2.652 10.607 7.955 10.607 7.955l-13.258-26.517s0 8.839-4.42 10.607c-4.419 1.767-7.955 3.535-7.955 3.535s-3.535-6.187-7.955-13.258c-4.419-7.071 4.42-14.142 4.42-14.142l-22.981 11.49s7.955 4.42 10.607 8.839l5.303 8.839s-3.223 1.768-8.214 3.482c-3.589 1.875-7.696.054-9.464-1.714z" transform="matrix(.19534 -.02065 .06668 .17315 476.436 338.935)" stroke="#000" stroke-width="1.197" fill="#fff133"/> - <path d="M344.54-596.29l9.152 22.141s1.455-9.767 8.526-11.534l7.071-1.768s26.864 49.328 32.168 58.167c5.302 8.838-3.536 16.793-1.769 16.793 1.769 0 26.517-11.49 26.517-11.49s-10.606.883-15.026-6.188-34.819-59.934-34.819-59.934 6.187-2.652 11.49-5.303c5.304-2.652 10.607 7.955 10.607 7.955l-13.258-26.517s0 8.839-4.42 10.607c-4.419 1.767-7.955 3.535-7.955 3.535s-3.535-6.187-7.955-13.258c-4.419-7.071 4.42-14.142 4.42-14.142l-22.981 11.49s7.955 4.42 10.607 8.839l5.303 8.839s-3.223 1.768-8.214 3.482c-3.589 1.875-7.696.054-9.464-1.714z" transform="matrix(-.17775 .02412 -.0031 -.13262 595.381 97.041)" stroke="#000" stroke-width="1.197" fill="#fff133"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(.02071 -.00148 .00948 .02238 457.876 383.788)" stroke="#000" stroke-width="17.958" fill="#b00"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(.03487 -.00148 .01595 .02238 452.669 386.727)" stroke="#000" stroke-width="17.958" fill="#b00"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(.03487 -.00148 .01595 .02238 455.97 386.514)" stroke="#000" stroke-width="17.958" fill="#b00"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(.04323 -.00148 .01978 .02238 451.35 389.865)" stroke="#000" stroke-width="17.958" fill="#b00"/> - <path d="M212.6-453.54c-35.433 0-70.866 35.433-70.866 70.866s35.433 70.866 70.866 70.866h194.88c35.433 0 70.866-35.433 70.866-70.866 0-37.027-35.433-70.866-70.866-70.866H212.6z" transform="matrix(.04323 -.00148 .01978 .02238 455.442 389.652)" stroke="#000" stroke-width="17.958" fill="#b00"/> - <path fill="#ffe000" d="M0 0h320v480H0z"/> - </g> -</svg> diff --git a/img/flags/4x3/vc.svg b/img/flags/4x3/vc.svg deleted file mode 100644 index ed4c1e4..0000000 --- a/img/flags/4x3/vc.svg +++ /dev/null @@ -1,8 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" height="480" width="640" viewBox="0 0 640 480"> - <g fill-rule="evenodd"> - <path fill="#f4f100" d="M0 0h640v480H0z"/> - <path fill="#199a00" d="M490 0h150v480H490z"/> - <path fill="#0058aa" d="M0 0h150v480H0z"/> - <path d="M259.26 129.95l-46.376 71.391 44.748 74.391 43.82-73.735-42.192-72.046zM380.54 129.95l-46.376 71.391 44.748 74.391 43.82-73.735-42.192-72.046zM319.28 227.34l-46.376 71.391 44.748 74.391 43.82-73.735-42.192-72.046z" fill="#199a00"/> - </g> -</svg> diff --git a/img/flags/4x3/ve.svg b/img/flags/4x3/ve.svg deleted file mode 100644 index 1bf3ac5..0000000 --- a/img/flags/4x3/ve.svg +++ /dev/null @@ -1,26 +0,0 @@ -<svg xmlns:xlink="http://www.w3.org/1999/xlink" xmlns="http://www.w3.org/2000/svg" height="480" width="640" viewBox="0 0 640 480"> - <defs> - <g id="d" transform="translate(0 -36)"> - <g id="c"> - <g id="b"> - <path d="M0-5L-1.545-.245l2.853.927z" id="a" fill="#fff"/> - <use xlink:href="#a" transform="scale(-1 1)" width="180" height="120"/> - </g> - <use xlink:href="#b" transform="rotate(72)" width="180" height="120"/> - </g> - <use xlink:href="#b" transform="rotate(-72)" width="180" height="120"/> - <use xlink:href="#c" transform="rotate(144)" width="180" height="120"/> - </g> - </defs> - <path d="M0 0h640v480H0z" fill="#cf142b"/> - <path d="M0 0h640v320H0z" fill="#00247d"/> - <path d="M0 0h640v160H0z" fill="#fc0"/> - <g id="f" transform="matrix(4 0 0 4 320 336)"> - <g id="e"> - <use height="120" width="180" transform="rotate(10)" xlink:href="#d"/> - <use height="120" width="180" transform="rotate(30)" xlink:href="#d"/> - </g> - <use height="120" width="180" transform="rotate(40)" xlink:href="#e"/> - </g> - <use height="120" width="180" transform="rotate(-80 320 336)" xlink:href="#f"/> -</svg> diff --git a/img/flags/4x3/vg.svg b/img/flags/4x3/vg.svg deleted file mode 100644 index 4f103ae..0000000 --- a/img/flags/4x3/vg.svg +++ /dev/null @@ -1,143 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" height="480" width="640" viewBox="0 0 640 480"> - <defs> - <linearGradient id="a"> - <stop stop-color="red" offset="0"/> - <stop stop-color="#ff0" offset="1"/> - </linearGradient> - <linearGradient id="c" y2="107.76" xlink:href="#a" gradientUnits="userSpaceOnUse" y1="111.28" gradientTransform="matrix(.64274 0 0 1.4534 -94.683 29.21)" x2="92.551" x1="103.08"/> - <linearGradient id="d" y2="107.76" xlink:href="#a" gradientUnits="userSpaceOnUse" y1="111.28" gradientTransform="matrix(.64274 0 0 1.4534 -94.666 30.155)" x2="92.551" x1="103.08"/> - <linearGradient id="e" y2="107.76" xlink:href="#a" gradientUnits="userSpaceOnUse" y1="111.28" gradientTransform="matrix(.64274 0 0 1.4534 -97.986 31.014)" x2="92.551" x1="103.08"/> - <linearGradient id="f" y2="107.76" xlink:href="#a" gradientUnits="userSpaceOnUse" y1="111.28" gradientTransform="matrix(.64274 0 0 1.4534 -94.743 31.932)" x2="92.551" x1="103.08"/> - <linearGradient id="g" y2="107.76" xlink:href="#a" gradientUnits="userSpaceOnUse" y1="111.28" gradientTransform="matrix(.64274 0 0 1.4534 -94.75 32.835)" x2="92.551" x1="103.08"/> - <linearGradient id="h" y2="107.76" xlink:href="#a" gradientUnits="userSpaceOnUse" y1="111.28" gradientTransform="matrix(.64274 0 0 1.4534 -94.767 33.751)" x2="92.551" x1="103.08"/> - <linearGradient id="i" y2="107.76" xlink:href="#a" gradientUnits="userSpaceOnUse" y1="111.28" gradientTransform="matrix(.64274 0 0 1.4534 -98.011 33.736)" x2="92.551" x1="103.08"/> - <linearGradient id="j" y2="107.76" xlink:href="#a" gradientUnits="userSpaceOnUse" y1="111.28" gradientTransform="matrix(.64274 0 0 1.4534 -97.981 32.837)" x2="92.551" x1="103.08"/> - <linearGradient id="k" y2="107.76" xlink:href="#a" gradientUnits="userSpaceOnUse" y1="111.28" gradientTransform="matrix(.64274 0 0 1.4534 -97.942 31.918)" x2="92.551" x1="103.08"/> - <linearGradient id="l" y2="107.76" xlink:href="#a" gradientUnits="userSpaceOnUse" y1="111.28" gradientTransform="matrix(.8281 0 0 1.8726 602.82 148.17)" x2="92.551" x1="103.08"/> - <linearGradient id="m" y2="107.76" xlink:href="#a" gradientUnits="userSpaceOnUse" y1="111.28" gradientTransform="matrix(.64274 0 0 1.4534 -97.976 30.11)" x2="92.551" x1="103.08"/> - <linearGradient id="n" y2="107.76" xlink:href="#a" gradientUnits="userSpaceOnUse" y1="111.28" gradientTransform="matrix(.64274 0 0 1.4534 -95.336 30.955)" x2="92.551" x1="103.08"/> - <clipPath id="b"> - <path fill-opacity=".67" d="M0 0h640v480H0z"/> - </clipPath> - </defs> - <g clip-path="url(#b)"> - <path fill="#006" d="M0 0h960v480H0z"/> - <path fill-rule="evenodd" fill="#006" d="M0 0h350.002v175H0z"/> - <g stroke-width="1pt"> - <path d="M0 0v19.566L310.871 175h39.13v-19.565L39.132.001H0zm350.002 0v19.565L39.13 175.001H0v-19.565L310.871 0h39.13z" fill="#fff"/> - <path d="M145.834 0v175h58.334V0h-58.334zM0 58.334v58.333h350.002V58.334H0z" fill="#fff"/> - <path d="M0 70v35h350.002V70H0zM157.5 0v175h35V0h-35zM0 175l116.667-58.333h26.087L26.087 175.001H0zM0 0l116.667 58.334H90.58L0 13.044V0zm207.248 58.334L323.915 0h26.087L233.334 58.334h-26.086zM350.002 175l-116.668-58.334h26.087l90.58 45.29v13.044z" fill="#c00"/> - </g> - <g> - <path d="M378.474 154.457l219.342-.814-.407 195.333s7.732 29.706-91.967 74.876c35.81-3.663 74.876-41.914 74.876-41.914s15.87-20.347 23.603-8.953c7.731 11.394 15.056 17.091 20.753 21.568 5.697 4.476 10.174 16.685 1.628 25.637-8.546 8.952-21.974 10.173-25.637-.814-5.697 2.849-40.693 45.17-112.31 47.205-72.84-1.221-112.72-47.612-112.72-47.612s-9.766 15.464-23.602 3.256c-13.428-15.87-3.255-26.044-3.255-26.044s11.394-6.511 14.65-10.988c5.29-6.104 6.917-14.243 15.87-14.243 10.58.814 14.65 9.36 14.65 9.36s36.624 38.659 76.096 43.542c-89.12-42.728-92.375-69.18-91.968-75.69l.407-193.7z" fill-rule="evenodd" fill="#fff"/> - <path d="M383.76 159.743l209.16-1.22v188.003c.407 24.416-40.694 49.24-104.99 80.98-66.323-34.183-104.57-54.939-104.98-81.381l.813-186.372z" fill-rule="evenodd" stroke="#000" stroke-width="1.7173345" fill="#006129"/> - <path d="M408.912 366.902l12.346-18.133 12.407 18.172" stroke="#f7c600" stroke-width="1.71797946" fill="none"/> - <path d="M423.739 360.115a2.452 2.452 0 1 1-4.904.002 2.452 2.452 0 0 1 4.904-.002z" fill-rule="evenodd" stroke="#000" stroke-width=".8050560000000001" fill="#f7c600"/> - <path d="M411.233 380.3l19.141.054s.3-2.484-2-3.994c10.026-1.378 7.422-10.222 15.818-10.723 1.63.25-4.386 3.76-4.386 3.76s-5.062 3.572-2.757 5.388c1.83 1.442 2.632-.877 2.883-2.631.25-1.755 8.145-2.883 7.018-7.895-1.88-4.136-12.908 2.757-12.908 2.757l-7.868-.044c-.49-.883-2.66-4.424-4.898-4.44-2.657.096-4.528 4.484-4.528 4.484h-17.796s-.61 4.566 8.413 5.443c2.032 2.653 3.607 3.394 5.373 4.081-1.178.981-1.51 2.168-1.504 3.76z" fill-rule="evenodd" stroke="#000" stroke-width=".80542686" fill="#f7c600"/> - <path d="M412.611 376.411l15.943-.054M405.31 367.008s1.275 7.457 7.161 9.223" stroke="#000" stroke-width=".80542686" fill="none"/> - <path d="M66.32 170.54c.445-2.151 1.261-2.522 2.151-5.267.149-2.67-2.151-2.374-1.483-4.08 1.187-1.855.593-3.635-1.632-5.045.445 2.448-2.894 4.748-2.894 6.751s1.707 1.558 1.484 4.6c.148 1.78-.445 1.335-.593 3.041h2.967z" fill-rule="evenodd" stroke="#000" stroke-width=".609" fill="url(#c)" transform="matrix(1.3225 0 0 1.3225 316.617 141.369)"/> - <path d="M423.542 349.227a2.256 2.256 0 1 1-4.512.001 2.256 2.256 0 0 1 4.512-.001z" fill-rule="evenodd" stroke="#000" stroke-width=".80542686" fill="#f7c600"/> - <path d="M408.214 329.58l12.346-18.134 12.407 18.172" stroke="#f7c600" stroke-width="1.71797946" fill="none"/> - <path d="M423.04 322.793a2.452 2.452 0 1 1-4.903.001 2.452 2.452 0 0 1 4.904-.001z" fill-rule="evenodd" stroke="#000" stroke-width=".8050560000000001" fill="#f7c600"/> - <path d="M410.535 342.977l19.141.055s.3-2.485-2-3.994c10.026-1.379 7.422-10.222 15.818-10.723 1.63.25-4.386 3.76-4.386 3.76s-5.062 3.572-2.757 5.388c1.83 1.442 2.632-.877 2.883-2.632.25-1.754 8.145-2.882 7.018-7.895-1.88-4.135-12.908 2.757-12.908 2.757l-7.868-.044c-.49-.883-2.66-4.424-4.898-4.44-2.657.097-4.528 4.484-4.528 4.484h-17.796s-.61 4.566 8.413 5.443c2.032 2.653 3.607 3.395 5.372 4.081-1.177.982-1.508 2.169-1.503 3.76z" fill-rule="evenodd" stroke="#000" stroke-width=".80542686" fill="#f7c600"/> - <path d="M411.913 339.089l15.943-.055M404.611 329.686s1.276 7.456 7.162 9.222" stroke="#000" stroke-width=".80542686" fill="none"/> - <path d="M66.32 170.54c.445-2.151 1.261-2.522 2.151-5.267.149-2.67-2.151-2.374-1.483-4.08 1.187-1.855.593-3.635-1.632-5.045.445 2.448-2.894 4.748-2.894 6.751s1.707 1.558 1.484 4.6c.148 1.78-.445 1.335-.593 3.041h2.967z" fill-rule="evenodd" stroke="#000" stroke-width=".609" fill="url(#d)" transform="matrix(1.3225 0 0 1.3225 315.919 104.047)"/> - <path d="M422.844 311.904a2.256 2.256 0 1 1-4.512.001 2.256 2.256 0 0 1 4.512-.001z" fill-rule="evenodd" stroke="#000" stroke-width=".80542686" fill="#f7c600"/> - <path d="M539.38 295.652l12.347-18.134 12.406 18.172" stroke="#f7c600" stroke-width="1.71797946" fill="none"/> - <path d="M554.207 288.865a2.452 2.452 0 1 1-4.904.002 2.452 2.452 0 0 1 4.904-.002z" fill-rule="evenodd" stroke="#000" stroke-width=".8050560000000001" fill="#f7c600"/> - <path d="M541.701 309.05l19.141.054s.3-2.484-1.999-3.994c10.026-1.379 7.421-10.222 15.818-10.723 1.629.25-4.387 3.76-4.387 3.76s-5.062 3.572-2.757 5.388c1.83 1.442 2.632-.877 2.883-2.632.25-1.754 8.146-2.882 7.018-7.895-1.88-4.135-12.908 2.757-12.908 2.757l-7.868-.043c-.49-.884-2.66-4.425-4.898-4.441-2.657.097-4.528 4.484-4.528 4.484H529.42s-.61 4.566 8.413 5.443c2.032 2.654 3.607 3.395 5.373 4.082-1.178.98-1.51 2.168-1.504 3.76z" fill-rule="evenodd" stroke="#000" stroke-width=".80542686" fill="#f7c600"/> - <path d="M543.08 305.16l15.942-.053M535.777 295.758s1.276 7.456 7.163 9.222" stroke="#000" stroke-width=".80542686" fill="none"/> - <path d="M66.32 170.54c.445-2.151 1.261-2.522 2.151-5.267.149-2.67-2.151-2.374-1.483-4.08 1.187-1.855.593-3.635-1.632-5.045.445 2.448-2.894 4.748-2.894 6.751s1.707 1.558 1.484 4.6c.148 1.78-.445 1.335-.593 3.041h2.967z" fill-rule="evenodd" stroke="#000" stroke-width=".609" fill="url(#e)" transform="matrix(1.3225 0 0 1.3225 447.085 70.119)"/> - <path d="M554.01 277.976a2.256 2.256 0 1 1-4.512.002 2.256 2.256 0 0 1 4.512-.002z" fill-rule="evenodd" stroke="#000" stroke-width=".80542686" fill="#f7c600"/> - <path d="M411.273 259.372l12.346-18.134 12.407 18.172" stroke="#f7c600" stroke-width="1.71797946" fill="none"/> - <path d="M426.1 252.585a2.452 2.452 0 1 1-4.904.001 2.452 2.452 0 0 1 4.904-.001z" fill-rule="evenodd" stroke="#000" stroke-width=".8050560000000001" fill="#f7c600"/> - <path d="M413.594 272.769l19.141.054s.3-2.484-2-3.994c10.026-1.378 7.422-10.221 15.818-10.723 1.63.251-4.386 3.76-4.386 3.76s-5.062 3.572-2.757 5.389c1.83 1.442 2.632-.877 2.883-2.632.25-1.754 8.145-2.882 7.018-7.895-1.88-4.136-12.908 2.757-12.908 2.757l-7.868-.044c-.49-.883-2.66-4.424-4.898-4.44-2.657.097-4.528 4.484-4.528 4.484h-17.796s-.61 4.566 8.413 5.443c2.032 2.653 3.606 3.394 5.372 4.081-1.177.981-1.508 2.168-1.503 3.76z" fill-rule="evenodd" stroke="#000" stroke-width=".80542686" fill="#f7c600"/> - <path d="M414.972 268.88l15.943-.054M407.67 259.477s1.276 7.457 7.162 9.223" stroke="#000" stroke-width=".80542686" fill="none"/> - <path d="M66.32 170.54c.445-2.151 1.261-2.522 2.151-5.267.149-2.67-2.151-2.374-1.483-4.08 1.187-1.855.593-3.635-1.632-5.045.445 2.448-2.894 4.748-2.894 6.751s1.707 1.558 1.484 4.6c.148 1.78-.445 1.335-.593 3.041h2.967z" fill-rule="evenodd" stroke="#000" stroke-width=".609" fill="url(#f)" transform="matrix(1.3225 0 0 1.3225 318.978 33.838)"/> - <path d="M425.903 241.696a2.256 2.256 0 1 1-4.512.001 2.256 2.256 0 0 1 4.512-.001z" fill-rule="evenodd" stroke="#000" stroke-width=".80542686" fill="#f7c600"/> - <g> - <path d="M411.55 223.713l12.347-18.134 12.406 18.172" stroke="#f7c600" stroke-width="1.71797946" fill="none"/> - <path d="M426.377 216.926a2.452 2.452 0 1 1-4.904.001 2.452 2.452 0 0 1 4.904-.001z" fill-rule="evenodd" stroke="#000" stroke-width=".8050560000000001" fill="#f7c600"/> - <path d="M413.871 237.11l19.141.055s.3-2.485-1.999-3.994c10.026-1.38 7.421-10.222 15.818-10.723 1.629.25-4.387 3.76-4.387 3.76s-5.062 3.572-2.757 5.388c1.83 1.442 2.632-.877 2.883-2.632.25-1.754 8.146-2.882 7.018-7.895-1.88-4.135-12.908 2.757-12.908 2.757l-7.868-.044c-.49-.883-2.66-4.424-4.898-4.44-2.657.097-4.528 4.484-4.528 4.484H401.59s-.61 4.566 8.413 5.443c2.032 2.653 3.607 3.395 5.373 4.081-1.178.982-1.51 2.169-1.504 3.76z" fill-rule="evenodd" stroke="#000" stroke-width=".80542686" fill="#f7c600"/> - <path d="M415.25 233.222l15.942-.055M407.947 223.818s1.276 7.457 7.163 9.223" stroke="#000" stroke-width=".80542686" fill="none"/> - <path d="M66.32 170.54c.445-2.151 1.261-2.522 2.151-5.267.149-2.67-2.151-2.374-1.483-4.08 1.187-1.855.593-3.635-1.632-5.045.445 2.448-2.894 4.748-2.894 6.751s1.707 1.558 1.484 4.6c.148 1.78-.445 1.335-.593 3.041h2.967z" fill-rule="evenodd" stroke="#000" stroke-width=".609" fill="url(#g)" transform="matrix(1.3225 0 0 1.3225 319.255 -1.82)"/> - <path d="M426.18 206.037a2.256 2.256 0 1 1-4.512.001 2.256 2.256 0 0 1 4.512-.001z" fill-rule="evenodd" stroke="#000" stroke-width=".80542686" fill="#f7c600"/> - </g> - <g> - <path d="M412.228 187.533l12.346-18.134 12.407 18.172" stroke="#f7c600" stroke-width="1.71797946" fill="none"/> - <path d="M427.054 180.746a2.452 2.452 0 1 1-4.903.001 2.452 2.452 0 0 1 4.903-.001z" fill-rule="evenodd" stroke="#000" stroke-width=".8050560000000001" fill="#f7c600"/> - <path d="M414.549 200.93l19.14.054s.3-2.484-1.999-3.993c10.026-1.38 7.422-10.222 15.818-10.724 1.63.251-4.386 3.76-4.386 3.76s-5.062 3.573-2.757 5.389c1.83 1.442 2.632-.877 2.882-2.632.25-1.754 8.146-2.882 7.018-7.895-1.88-4.135-12.908 2.757-12.908 2.757l-7.868-.044c-.49-.883-2.659-4.424-4.898-4.44-2.657.097-4.528 4.484-4.528 4.484h-17.795s-.61 4.566 8.413 5.443c2.031 2.653 3.606 3.395 5.372 4.081-1.177.982-1.509 2.169-1.504 3.76z" fill-rule="evenodd" stroke="#000" stroke-width=".80542686" fill="#f7c600"/> - <path d="M415.927 197.042l15.943-.055M408.625 187.638s1.275 7.457 7.162 9.223" stroke="#000" stroke-width=".80542686" fill="none"/> - <path d="M66.32 170.54c.445-2.151 1.261-2.522 2.151-5.267.149-2.67-2.151-2.374-1.483-4.08 1.187-1.855.593-3.635-1.632-5.045.445 2.448-2.894 4.748-2.894 6.751s1.707 1.558 1.484 4.6c.148 1.78-.445 1.335-.593 3.041h2.967z" fill-rule="evenodd" stroke="#000" stroke-width=".609" fill="url(#h)" transform="matrix(1.3225 0 0 1.3225 319.933 -38)"/> - <path d="M426.857 169.857a2.256 2.256 0 1 1-4.511.001 2.256 2.256 0 0 1 4.511-.001z" fill-rule="evenodd" stroke="#000" stroke-width=".80542686" fill="#f7c600"/> - </g> - <g> - <path d="M540.355 188.122l12.347-18.134 12.406 18.172" stroke="#f7c600" stroke-width="1.71797946" fill="none"/> - <path d="M555.182 181.335a2.452 2.452 0 1 1-4.904.002 2.452 2.452 0 0 1 4.904-.002z" fill-rule="evenodd" stroke="#000" stroke-width=".8050560000000001" fill="#f7c600"/> - <path d="M542.676 201.52l19.141.054s.3-2.484-1.999-3.994c10.026-1.379 7.421-10.222 15.818-10.723 1.629.25-4.386 3.76-4.386 3.76s-5.063 3.572-2.757 5.388c1.83 1.442 2.631-.877 2.882-2.632.25-1.754 8.146-2.882 7.018-7.895-1.88-4.135-12.908 2.757-12.908 2.757l-7.868-.043c-.49-.884-2.659-4.425-4.898-4.441-2.657.097-4.528 4.484-4.528 4.484h-17.795s-.61 4.566 8.413 5.443c2.031 2.654 3.606 3.395 5.372 4.082-1.177.98-1.509 2.168-1.504 3.76z" fill-rule="evenodd" stroke="#000" stroke-width=".80542686" fill="#f7c600"/> - <path d="M544.054 197.63l15.944-.053M536.753 188.228s1.275 7.456 7.162 9.222" stroke="#000" stroke-width=".80542686" fill="none"/> - <path d="M66.32 170.54c.445-2.151 1.261-2.522 2.151-5.267.149-2.67-2.151-2.374-1.483-4.08 1.187-1.855.593-3.635-1.632-5.045.445 2.448-2.894 4.748-2.894 6.751s1.707 1.558 1.484 4.6c.148 1.78-.445 1.335-.593 3.041h2.967z" fill-rule="evenodd" stroke="#000" stroke-width=".609" fill="url(#i)" transform="matrix(1.3225 0 0 1.3225 448.06 -37.411)"/> - <path d="M554.985 170.446a2.256 2.256 0 1 1-4.511.002 2.256 2.256 0 0 1 4.511-.002z" fill-rule="evenodd" stroke="#000" stroke-width=".80542686" fill="#f7c600"/> - </g> - <g> - <path d="M539.185 223.638l12.347-18.134 12.406 18.172" stroke="#f7c600" stroke-width="1.71797946" fill="none"/> - <path d="M554.012 216.85a2.452 2.452 0 1 1-4.904.002 2.452 2.452 0 0 1 4.904-.001z" fill-rule="evenodd" stroke="#000" stroke-width=".8050560000000001" fill="#f7c600"/> - <path d="M541.506 237.035l19.141.055s.3-2.485-1.999-3.994c10.026-1.379 7.421-10.222 15.818-10.723 1.629.25-4.387 3.76-4.387 3.76s-5.062 3.572-2.757 5.388c1.83 1.442 2.632-.877 2.883-2.632.25-1.754 8.146-2.882 7.018-7.895-1.88-4.135-12.908 2.757-12.908 2.757l-7.868-.044c-.49-.883-2.66-4.424-4.898-4.44-2.657.097-4.528 4.484-4.528 4.484h-17.796s-.61 4.566 8.413 5.443c2.032 2.653 3.607 3.395 5.373 4.081-1.178.982-1.51 2.169-1.504 3.76z" fill-rule="evenodd" stroke="#000" stroke-width=".80542686" fill="#f7c600"/> - <path d="M542.884 233.147l15.943-.055M535.582 223.744s1.276 7.456 7.163 9.222" stroke="#000" stroke-width=".80542686" fill="none"/> - <path d="M66.32 170.54c.445-2.151 1.261-2.522 2.151-5.267.149-2.67-2.151-2.374-1.483-4.08 1.187-1.855.593-3.635-1.632-5.045.445 2.448-2.894 4.748-2.894 6.751s1.707 1.558 1.484 4.6c.148 1.78-.445 1.335-.593 3.041h2.967z" fill-rule="evenodd" stroke="#000" stroke-width=".609" fill="url(#j)" transform="matrix(1.3225 0 0 1.3225 446.89 -1.895)"/> - <path d="M553.815 205.962a2.256 2.256 0 1 1-4.512.001 2.256 2.256 0 0 1 4.512-.001z" fill-rule="evenodd" stroke="#000" stroke-width=".80542686" fill="#f7c600"/> - </g> - <g> - <path d="M537.615 259.94l12.346-18.134 12.407 18.172" stroke="#f7c600" stroke-width="1.71797946" fill="none"/> - <path d="M552.441 253.152a2.452 2.452 0 1 1-4.903.002 2.452 2.452 0 0 1 4.903-.002z" fill-rule="evenodd" stroke="#000" stroke-width=".8050560000000001" fill="#f7c600"/> - <path d="M539.936 273.337l19.14.054s.3-2.484-1.999-3.994c10.026-1.379 7.421-10.222 15.818-10.723 1.63.25-4.386 3.76-4.386 3.76s-5.062 3.572-2.757 5.388c1.83 1.442 2.632-.877 2.882-2.631.25-1.755 8.146-2.883 7.018-7.895-1.88-4.136-12.908 2.757-12.908 2.757l-7.868-.044c-.49-.883-2.659-4.424-4.898-4.44-2.657.096-4.528 4.484-4.528 4.484h-17.795s-.61 4.565 8.413 5.443c2.031 2.653 3.606 3.394 5.372 4.08-1.177.982-1.509 2.17-1.504 3.76z" fill-rule="evenodd" stroke="#000" stroke-width=".80542686" fill="#f7c600"/> - <path d="M541.314 269.448l15.943-.054M534.012 260.045s1.275 7.457 7.162 9.223" stroke="#000" stroke-width=".80542686" fill="none"/> - <path d="M66.32 170.54c.445-2.151 1.261-2.522 2.151-5.267.149-2.67-2.151-2.374-1.483-4.08 1.187-1.855.593-3.635-1.632-5.045.445 2.448-2.894 4.748-2.894 6.751s1.707 1.558 1.484 4.6c.148 1.78-.445 1.335-.593 3.041h2.967z" fill-rule="evenodd" stroke="#000" stroke-width=".609" fill="url(#k)" transform="matrix(1.3225 0 0 1.3225 445.32 34.406)"/> - <path d="M552.244 242.263a2.256 2.256 0 1 1-4.511.002 2.256 2.256 0 0 1 4.511-.002z" fill-rule="evenodd" stroke="#000" stroke-width=".80542686" fill="#f7c600"/> - </g> - <path d="M539.183 367.27l12.346-18.132 12.407 18.17" stroke="#f7c600" stroke-width="1.2882574999999998" fill="none"/> - <path d="M554.005 360.496a2.452 2.452 0 1 1-4.903.002 2.452 2.452 0 0 1 4.903-.002z" fill-rule="evenodd" stroke="#000" stroke-width=".804776" fill="#f7c600"/> - <path d="M541.503 380.667l19.14.054s.3-2.484-1.999-3.994c10.026-1.378 7.422-10.222 15.818-10.723 1.629.251-4.386 3.76-4.386 3.76s-5.063 3.572-2.757 5.389c1.83 1.442 2.631-.877 2.882-2.632.25-1.754 8.146-2.882 7.018-7.895-1.88-4.136-12.908 2.757-12.908 2.757l-7.868-.044c-.49-.883-2.66-4.424-4.898-4.44-2.657.097-4.528 4.484-4.528 4.484H529.22s-.61 4.566 8.413 5.443c2.031 2.653 3.606 3.394 5.372 4.081-1.177.981-1.509 2.168-1.504 3.76z" fill-rule="evenodd" stroke="#000" stroke-width=".804776" fill="#f7c600"/> - <path d="M542.878 376.776l15.943-.054M535.58 367.384s1.275 7.456 7.162 9.222" stroke="#000" stroke-width=".804776" fill="none"/> - <path d="M814.5 330.27c.573-2.772 1.625-3.25 2.772-6.786.191-3.44-2.772-3.059-1.912-5.257 1.53-2.39.765-4.683-2.103-6.5.574 3.155-3.727 6.118-3.727 8.698 0 2.581 2.198 2.008 1.911 5.926.192 2.294-.573 1.72-.764 3.92h3.823z" fill-rule="evenodd" stroke="#000" stroke-width=".784" fill="url(#l)" transform="translate(-301.49 28.259) scale(1.0265)"/> - <path d="M553.81 349.605a2.256 2.256 0 1 1-4.511.001 2.256 2.256 0 0 1 4.511-.001z" fill-rule="evenodd" stroke="#000" stroke-width=".804776" fill="#f7c600"/> - <g> - <path d="M538.99 331.364l12.346-18.134 12.407 18.172" stroke="#f7c600" stroke-width="1.71797946" fill="none"/> - <path d="M553.817 324.577a2.452 2.452 0 1 1-4.904.002 2.452 2.452 0 0 1 4.904-.002z" fill-rule="evenodd" stroke="#000" stroke-width=".8050560000000001" fill="#f7c600"/> - <path d="M541.311 344.761l19.141.055s.3-2.485-2-3.994c10.026-1.379 7.422-10.222 15.819-10.723 1.629.25-4.387 3.76-4.387 3.76s-5.062 3.572-2.757 5.388c1.83 1.442 2.632-.877 2.883-2.632.25-1.754 8.146-2.882 7.018-7.895-1.88-4.135-12.908 2.757-12.908 2.757l-7.868-.044c-.49-.883-2.66-4.424-4.898-4.44-2.657.097-4.528 4.484-4.528 4.484H529.03s-.61 4.566 8.413 5.443c2.032 2.653 3.607 3.395 5.373 4.082-1.178.98-1.51 2.168-1.504 3.76z" fill-rule="evenodd" stroke="#000" stroke-width=".80542686" fill="#f7c600"/> - <path d="M542.69 340.873l15.942-.055M535.387 331.47s1.276 7.456 7.163 9.222" stroke="#000" stroke-width=".80542686" fill="none"/> - <path d="M66.32 170.54c.445-2.151 1.261-2.522 2.151-5.267.149-2.67-2.151-2.374-1.483-4.08 1.187-1.855.593-3.635-1.632-5.045.445 2.448-2.894 4.748-2.894 6.751s1.707 1.558 1.484 4.6c.148 1.78-.445 1.335-.593 3.041h2.967z" fill-rule="evenodd" stroke="#000" stroke-width=".609" fill="url(#m)" transform="matrix(1.3225 0 0 1.3225 446.695 105.83)"/> - <path d="M553.62 313.688a2.256 2.256 0 1 1-4.512.002 2.256 2.256 0 0 1 4.512-.002z" fill-rule="evenodd" stroke="#000" stroke-width=".80542686" fill="#f7c600"/> - </g> - <g> - <path d="M434.677 297.99l12.347-18.134 12.406 18.172" stroke="#f7c600" stroke-width="1.71797946" fill="none"/> - <path d="M449.504 291.202a2.452 2.452 0 1 1-4.904.002 2.452 2.452 0 0 1 4.904-.002z" fill-rule="evenodd" stroke="#000" stroke-width=".8050560000000001" fill="#f7c600"/> - <path d="M436.998 311.387l19.141.054s.3-2.484-1.999-3.994c10.026-1.379 7.421-10.222 15.818-10.723 1.629.25-4.387 3.76-4.387 3.76s-5.062 3.572-2.757 5.388c1.83 1.442 2.632-.877 2.883-2.631.25-1.755 8.146-2.883 7.018-7.895-1.88-4.136-12.908 2.757-12.908 2.757l-7.868-.044c-.49-.883-2.66-4.424-4.898-4.44-2.657.096-4.528 4.484-4.528 4.484h-17.796s-.61 4.565 8.413 5.443c2.032 2.653 3.607 3.394 5.373 4.08-1.178.982-1.51 2.17-1.504 3.76z" fill-rule="evenodd" stroke="#000" stroke-width=".80542686" fill="#f7c600"/> - <path d="M438.376 307.498l15.943-.054M431.074 298.095s1.276 7.457 7.163 9.223" stroke="#000" stroke-width=".80542686" fill="none"/> - <path d="M66.32 170.54c.445-2.151 1.261-2.522 2.151-5.267.149-2.67-2.151-2.374-1.483-4.08 1.187-1.855.593-3.635-1.632-5.045.445 2.448-2.894 4.748-2.894 6.751s1.707 1.558 1.484 4.6c.148 1.78-.445 1.335-.593 3.041h2.967z" fill-rule="evenodd" stroke="#000" stroke-width=".609" fill="url(#n)" transform="matrix(1.3225 0 0 1.3225 342.382 72.456)"/> - <path d="M449.307 280.313a2.256 2.256 0 1 1-4.512.002 2.256 2.256 0 0 1 4.512-.002z" fill-rule="evenodd" stroke="#000" stroke-width=".80542686" fill="#f7c600"/> - </g> - <g stroke="#000"> - <path d="M500.741 384.174s4.995 11.516 10.684 4.44 3.608-10.129 3.608-10.129l-12.765-6.937-3.747 7.909 2.22 4.717z" fill-rule="evenodd" stroke-width=".80542686" fill="#f7c600"/> - <path d="M511.705 382.653s.833.139 1.526-1.11-1.526-1.804-2.497-3.191l-1.11 2.22 2.081 2.081zM482.834 379.598l-11.239 6.105s-5.55 1.11-5.966 0c-.416-1.11.139-2.081 3.052-2.22 2.914-.139 10.823-7.354 10.823-7.354l3.33 3.469zM482.98 179.934s.277 2.636.416 4.023-2.22 4.302-2.359 4.163-1.249.139-1.11.971 1.804 1.11 1.804 1.11-.694 2.914 0 3.053c.694.139-1.804 3.746 0 4.717 1.804.971 4.856 2.22 6.244 1.943 1.387-.278 0 5.411 0 5.411l-3.885 8.325 21.367-2.22-4.44-7.076s-2.082-1.388-1.527-5.412c.555-4.023-.277-22.2-.277-22.2l-15.262-2.081-.972 5.273zM479.091 211.569s-6.937 3.191-6.66 11.794c-1.803 8.325-2.775 16.65-2.775 16.65s-8.186 9.295-10.683 12.626c-2.498 3.33-6.244 10.128-7.632 11.932s-6.799 7.77-6.66 9.99c.139 2.22-1.249 12.072 4.163 13.181 1.387.555 5.827-11.377 5.827-11.377s.278-5.134-1.248-6.105 3.33-4.301 3.33-4.301 9.296-6.8 11.377-8.464 7.77-8.048 7.77-8.048l3.191-37.879z" fill-rule="evenodd" stroke-width=".80542686" fill="#ffc6b5"/> - <path d="M487 205.048s1.804 4.856 5.828 4.023c4.023-.832 8.741-4.579 8.741-4.579s3.746-.138 4.301.417c.555.555 10.129 9.85 9.852 12.765-.278 2.914-4.44 2.08-5.967 4.023s-4.024 6.8-3.33 10.407 2.775 8.325 2.498 10.129-1.804 2.358-1.804 3.33c0 .97 1.249 2.636 1.249 4.44s-1.665 4.44-1.388 6.243c.278 1.804.417 7.076.417 7.076l-.417 24.421s1.388.833 1.527 2.22c.138 1.388 9.435 41.763 9.435 41.763s-.417 1.25-1.388 1.11 3.746 6.244 3.885 8.048 4.856 15.957 4.718 17.9c-.14 1.942-.833 6.243-1.25 6.382-.415.139 3.053 8.88 2.498 10.267-.555 1.388-6.243 1.25-6.243 1.25l-1.527-.278s.14 1.803-.97 1.942-9.297-.416-9.297-.416-2.359 3.607-3.746 3.469c-1.388-.14-3.192-2.637-3.608-2.22-.416.416 1.249 2.775.832 3.468-.416.694-7.492 2.22-8.88-1.11-1.387-3.33.833-2.497.417-3.19-.417-.695-3.608-2.498-4.579-1.943s2.497 1.387 2.359 2.775c-.139 1.387-3.053 3.468-4.163 3.468s-3.746-5.133-7.631-4.578c-3.885.555-6.383 1.526-6.383 1.526s-4.578 1.942-6.521 1.526c-1.942-.416-2.775-1.942-2.775-2.775 0-.832 1.388-4.44 1.249-5.55s-1.249-2.22-1.249-3.885c0-1.665 3.191-7.354 3.191-7.354l-.138-25.53s-2.914 0-3.053-1.804 4.44-40.376 5.134-42.874c.694-2.498 2.497-11.378 2.497-11.378s-2.08.972-2.22 0 6.244-23.032 6.244-23.032 1.11-10.961 1.11-13.875c0-2.913-.555-6.937-.555-6.937s-5.696-2.412-5.827-6.105c-.521-5.877 5.41-9.158 6.105-11.1l2.775-7.77s3.052-5.273 8.047-6.105z" fill-rule="evenodd" stroke-width=".80542686" fill="#fff"/> - <path d="M484.924 381.264s-13.458 7.077-15.401 7.632c-1.943.555-3.192-2.359-1.249-2.914 1.943-.555 4.995-.833 4.995-.833s-4.579-3.607-4.44-3.746c.139-.139 6.244-2.358 6.383-2.358s1.942 3.607 3.19 3.33 4.857-3.053 4.857-3.053 1.943 2.22 1.665 1.942z" fill-rule="evenodd" stroke-width=".80542686" fill="#f7c600"/> - <path d="M503.889 385.14c1.273 1.64 1.77 4.487 4.684 2.822s-1.493-4.755-1.493-4.755l-3.191 1.932zM509.206 384.862s1.387 1.11 2.636-.139-2.498-3.885-2.498-3.885l-1.803 2.081 1.665 1.943z" fill-rule="evenodd" stroke-width=".80542686" fill="#ffc6b5"/> - <path d="M505.04 210.458s-12.35 7.909-12.072 10.684M507.817 211.845s-2.775 3.053-2.914 3.053M511.56 215.176s-6.105 4.995-5.134 8.186M482.702 209.765s-1.804 3.746-1.388 4.995c.417 1.249 3.47 5.966 3.885 8.88.417 2.914 0 4.995 0 4.995M479.515 216.702s.554 4.44 1.387 5.272c.833.833 3.053 4.58 3.33 6.105M478.404 235.155s3.607 1.804 6.937-5.134M490.743 225.166c-.139 0-2.636 6.799 1.804 9.296s7.77 2.22 9.712 1.527c1.943-.694 4.024-1.943 4.024-1.943M488.812 233.491s.277 9.158 13.736 18.177M489.367 242.093s-.138 8.048 5.134 11.655M486.59 232.658s-4.024 11.933-7.215 13.182M485.334 241.4s-.139 8.603-1.249 11.655M482.98 255.136s2.775 3.469 5.827 3.191c3.053-.277 4.301-3.885 6.383-3.33 2.08.556 4.023 2.22 8.88 1.804M497.13 260.408s0 7.076 1.25 7.77.693 7.215.693 7.215M480.202 257.079s-.138 6.66-.971 9.019c-.832 2.358-2.497 6.382-2.22 9.851M471.738 279.839c.694-.278 3.053-2.359 3.053-2.359M476.036 279.005s-5.966 25.53-4.301 40.793M477.425 280.249s-3.053 19.147-1.665 22.755M475.904 279.693c.139 0 11.655.833 11.655.833M489.222 279.005s3.191 1.666 7.631 1.388M487.833 288.303s-.555 32.745-1.387 39.96M504.907 295.788s3.608 28.722 5.69 31.358M497.964 299.399s2.22 25.392 3.469 27.612M466.474 335.888s4.301-1.388 8.186-5.55c4.44 5.966 11.24.278 11.24.278s10.544 7.215 15.261-.833c7.215 4.718 10.823-.694 10.823-.694s2.636 4.024 4.579 3.608M505.04 335.478s5.41 25.391 13.458 32.606M477.147 332.833s.694 21.23 1.943 36.214M476.182 356.837s-.694 13.875-1.527 14.847M467.995 373.078s1.526 5.966 9.158.416c7.631-5.55 7.77 2.082 8.047 2.914.278.832 1.527 6.799 4.44 1.804M495.742 370.023s-1.249 12.348 9.713 3.33c10.961-9.019 12.765-.139 13.042 2.636" stroke-width=".80542686" fill="none"/> - <path d="M482.556 179.1s3.053.417 4.718-.554c1.665-.972 3.608-1.388 4.995.555s2.359 1.803 2.359 1.803-2.082 5.134 0 5.689c2.081.555 3.052.555 3.191 1.249.139.694-1.804 2.22-1.249 2.913.555.694 1.527 1.527 1.665 2.082.139.555-1.248 2.913-.832 3.469.416.555 1.665 2.775 2.497 2.775.833 0 .278 3.468 2.775 2.636s2.36-3.053 2.36-3.053 2.635-.416 3.33-2.775c.693-2.358 2.358-2.913 2.358-2.913s3.33-1.804-1.11-4.58c0-19.425-12.765-17.343-12.765-17.343s-1.527-3.469-4.024-3.053c-2.498.417-2.636 3.33-4.44 3.053-1.804-.278-2.22-1.526-2.359-1.387-.139.138-1.665 2.913-1.665 3.607 0 .694-4.856-.971-4.44 2.636s2.775 3.469 2.636 3.192z" fill-rule="evenodd" stroke-width=".80542686" fill="#9c5100"/> - <path d="M495.888 174.383s-.972 6.105 5.55 5.55c-.833 3.33 1.665 4.44 1.665 4.44M507.95 188.119c.138 0 2.913 1.804-.14 4.024M498.52 192.975s1.387 1.665 2.913 1.25c1.526-.417 4.024 1.525 4.024 1.525s2.081.694 2.359.278M490.055 198.248s4.718 1.804 7.77-5.688M481.313 190.34l2.775.138" stroke-width=".80542686" fill="none"/> - <path stroke-linejoin="round" d="M481.736 193.114h2.498l-2.22.972" stroke-width=".80542686" fill="none"/> - <path stroke-linejoin="round" d="M485.201 185.344c.417 0 1.943-.555 2.22-.138.278.416-1.665.693-2.22.138z" stroke-width="1.4495038400000002" fill="none"/> - <path d="M515.17 218.31c.139 0 4.58 13.736 5.134 17.205.555 3.469 2.359 17.344 1.665 19.287-.694 1.942-7.77 11.238-8.603 13.597-.832 2.358-5.827 11.377-5.827 11.377s-1.249 8.88-1.804 9.297c-.555.416 1.433 2.596 1.249 3.33-.275.826-4.024 4.717-5.689 4.301-1.665-.416-4.301-2.359-4.44-4.163s.139-7.77 1.388-9.296 7.77-16.927 8.186-17.9c.416-.97 5.966-13.042 6.105-15.122.139-2.082-1.727-6.894-3.689-8.66-4.367-12.853-2.65-20.604 6.325-23.253z" fill-rule="evenodd" stroke-width=".80542686" fill="#ffc6b5"/> - <path d="M450.524 277.842l.218 6.08M444.827 277.392s3.898 6.52 3.573 9.994" stroke-width=".80542686" fill="none"/> - <path stroke-linejoin="round" d="M497.078 291.014s2.915-.306 2.823 4.56c1.861-6.045 5.646-6.189 5.646-6.189" stroke-width=".80542686" fill="none"/> - </g> - <path d="M487.119 429.949c58.598-1.628 96.443-43.949 96.036-44.356-.407-.407 7.732-11.8 14.243-10.173 6.51 1.627 15.87 20.753 27.264 24.822 5.697 8.953-1.627 17.092-4.069 18.72-2.442 1.627-13.429 6.104-15.057-.407-1.627-6.511-4.883-5.29-4.883-5.29s-52.088 50.867-112.31 48.832c-62.257.41-113.53-48.83-113.53-48.83l-4.477 4.883s-4.883 5.29-7.324 4.883c-2.442-.407-13.023-7.325-13.837-14.243-.813-6.918 6.511-11.394 6.511-11.394s17.906-13.836 19.94-21.16c4.07-4.07 11.8 2.848 11.8 2.848s47.205 54.123 99.7 50.868z" fill-rule="evenodd" stroke="#000" stroke-width="1.7173345" fill="#f7c600"/> - <path d="M354.464 398.476s4.842-1.29 6.618.727c1.775 2.017 13.961 13.961 13.961 13.961" stroke="#000" stroke-width="1.7173345" fill="none"/> - <path d="M365.52 404.122l-4.843 3.632s12.186 2.42 9.442 10.41M620.297 398.066s-2.421-1.291-6.214 1.533c-3.793 2.825-13.397 13.558-13.397 13.558" stroke="#000" stroke-width="1.7173345" fill="none"/> - <path d="M609.406 403.804l5.245 4.035s-10.975.726-8.554 11.137" stroke="#000" stroke-width="1.7173345" fill="none"/> - <path d="M416.495 411.39l-.352.495c-.736-.364-1.576-.431-2.519-.203-.692.179-1.996.83-3.912 1.95l-16.125 9.4-.44-.314 4.061-18.85c.491-2.272.715-3.652.673-4.14-.033-.48-.374-1.013-1.02-1.595l.352-.495 8.692 6.199-.353.495-.294-.21c-.785-.56-1.39-.843-1.815-.85-.3-.013-.542.11-.727.369-.114.16-.215.377-.303.65-.081.266-.257 1.021-.527 2.268l-2.572 11.782 9.315-5.481c1.12-.667 1.847-1.13 2.18-1.39.334-.26.583-.505.749-.737.19-.268.287-.555.291-.862.003-.306-.095-.612-.295-.916-.275-.425-.729-.863-1.362-1.314l.353-.495 5.95 4.244m5.79 28.018l-.29.533-10.218-5.587.292-.533.648.354c.567.31 1.079.459 1.535.446.323.002.641-.123.955-.376.231-.173.615-.75 1.151-1.73l7.03-12.853c.546-.999.834-1.652.865-1.96.031-.307-.067-.642-.293-1.003-.212-.365-.592-.698-1.14-.997l-.648-.355.291-.533 10.217 5.587-.292.533-.648-.354c-.567-.31-1.078-.46-1.534-.446-.324-.003-.647.12-.97.368-.231.173-.615.75-1.15 1.729l-7.03 12.854c-.547.999-.835 1.652-.866 1.96-.022.313.074.652.286 1.017.226.362.614.692 1.161.991l.649.355m37.323-8.754l-2.634 7.395-.572-.204c.029-2.267-.46-4.174-1.468-5.718-1.008-1.544-2.331-2.609-3.971-3.193-1.568-.558-3.03-.58-4.388-.063-1.355.505-2.53 1.47-3.525 2.894a19.392 19.392 0 0 0-2.38 4.627c-.716 2.01-1.107 3.86-1.173 5.544s.301 3.072 1.1 4.158c.809 1.09 1.94 1.894 3.395 2.412.505.18 1.04.312 1.602.397.577.077 1.18.112 1.81.104l1.555-4.363c.294-.825.426-1.377.397-1.654-.025-.288-.183-.594-.475-.919-.28-.32-.674-.571-1.179-.751l-.542-.193.204-.573 10.196 3.632-.204.572c-.792-.224-1.372-.308-1.74-.253-.354.048-.68.228-.977.54-.163.164-.38.627-.652 1.39l-1.554 4.363c-1.554.12-3.111.071-4.672-.147a22.752 22.752 0 0 1-4.668-1.14c-1.99-.709-3.55-1.567-4.68-2.573a13.566 13.566 0 0 1-2.72-3.375c-.685-1.244-1.114-2.518-1.289-3.824-.215-1.68-.008-3.403.62-5.167 1.125-3.156 3.183-5.427 6.176-6.814 2.993-1.386 6.17-1.48 9.533-.283 1.042.371 1.95.788 2.728 1.25.424.245 1.072.743 1.943 1.495.885.745 1.42 1.15 1.606 1.217.29.103.594.095.915-.023.325-.128.695-.45 1.11-.964l.573.204m15.724 25.238l-.09.601-11.514-1.744.09-.6.732.11c.638.097 1.17.06 1.594-.107.304-.11.56-.336.768-.682.158-.241.32-.914.488-2.019l2.194-14.485c.171-1.125.218-1.838.142-2.138-.077-.3-.284-.58-.62-.841-.325-.27-.796-.453-1.413-.546l-.73-.11.09-.602 11.514 1.744-.091.601-.731-.11c-.639-.097-1.17-.062-1.594.107-.305.109-.566.335-.784.678-.159.242-.322.915-.489 2.02l-2.194 14.484c-.17 1.126-.218 1.839-.141 2.138.087.302.293.587.617.858.337.262.814.439 1.431.532l.731.111m29.886-7.26l-.439 7.851-19.748 1.008-.031-.607.738-.038c.645-.033 1.158-.174 1.54-.424.277-.167.482-.441.616-.82.107-.27.132-.961.075-2.077l-.746-14.63c-.058-1.138-.155-1.845-.29-2.123-.134-.279-.393-.512-.775-.7-.372-.201-.87-.285-1.493-.254l-.738.038-.031-.607 11.859-.605.03.607-.967.05c-.645.032-1.159.174-1.54.423-.277.168-.488.442-.633.822-.107.269-.132.96-.075 2.076l.723 14.172c.058 1.137.16 1.86.308 2.171.147.3.416.516.806.65.279.084.943.1 1.993.046l1.853-.094c1.181-.06 2.155-.319 2.92-.774.767-.456 1.411-1.147 1.934-2.072.534-.927 1.013-2.278 1.438-4.054l.673-.034m21.602-3.748l-7.538 2.252-.276 2.345c-.087.78-.063 1.396.072 1.847.178.598.551.967 1.118 1.106.334.083 1.07 0 2.206-.248l.174.583-7.097 2.12-.174-.582c.731-.345 1.267-.847 1.606-1.509.337-.672.624-1.929.862-3.771l2.546-19.308.299-.089 12.922 15.2c1.23 1.439 2.145 2.302 2.746 2.592.453.218 1.013.257 1.68.115l.174.582-10.324 3.084-.174-.582.425-.127c.829-.248 1.377-.537 1.643-.868.181-.237.224-.513.13-.828a2.014 2.014 0 0 0-.268-.554c-.05-.088-.324-.434-.825-1.039l-1.927-2.32m-.883-1.006l-5.375-6.399-1.077 8.327 6.452-1.927m28.46-29.002l2.855 5.309-.521.28c-.967-1.06-1.781-1.753-2.443-2.08-.666-.339-1.413-.49-2.24-.456-.46.023-1.147.281-2.064.774l-1.46.785 8.135 15.132c.539 1.003.929 1.601 1.17 1.795.25.189.587.294 1.009.316.426.007.919-.14 1.478-.441l.651-.35.288.535L550.985 442l-.288-.535.651-.35c.569-.306.973-.654 1.21-1.043.18-.27.252-.607.22-1.013-.018-.289-.291-.925-.82-1.908l-8.135-15.132-1.418.762c-1.321.71-2.13 1.506-2.428 2.387-.419 1.232-.35 2.631.206 4.197l-.55.296-2.854-5.31 17.619-9.472m13.359-7.92l5.46 7.237.353-.267c1.128-.85 1.678-1.82 1.651-2.911s-.492-2.38-1.394-3.866l.499-.376 7.022 9.31-.498.375c-.87-.934-1.72-1.597-2.548-1.986-.82-.397-1.536-.536-2.146-.418-.618.109-1.35.483-2.198 1.123l3.778 5.008c.739.98 1.23 1.549 1.473 1.708.252.152.545.213.878.181.333-.031.752-.238 1.26-.62l1.061-.802c1.661-1.253 2.7-2.64 3.116-4.16.425-1.528.263-3.243-.487-5.146l.485-.366 3.463 6.254-15.368 11.591-.366-.485.59-.445c.516-.389.862-.794 1.038-1.215.135-.294.152-.635.05-1.025-.062-.282-.43-.87-1.102-1.76l-8.822-11.697c-.607-.804-1.001-1.281-1.183-1.432a1.572 1.572 0 0 0-1.02-.342c-.516.006-1.063.226-1.64.662l-.59.445-.366-.485 14.882-11.226 3.966 5.258-.498.376c-1.223-1.094-2.277-1.746-3.162-1.956-.877-.217-1.834-.14-2.87.231-.609.212-1.586.826-2.932 1.841l-1.836 1.385"/> - <path d="M380.537 413.063c72.788 59.04 144.131 60.122 213.933 0" fill="none"/> - </g> - </g> -</svg> diff --git a/img/flags/4x3/vi.svg b/img/flags/4x3/vi.svg deleted file mode 100644 index 0c91a25..0000000 --- a/img/flags/4x3/vi.svg +++ /dev/null @@ -1,32 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" height="480" width="640" viewBox="0 0 640 480"> - <path fill="#fff" d="M0 0h640v480H0z"/> - <path d="M204.348 314.932s-.518-3.508 6.144-6.08c6.66-2.573 7.18-12.162 5.847-18.554 0 0-3.48 6.08-7.7 8.107 0 0-6.883 3.586-7.198 10.436 0 0-.055 2.506-.573 4.454-.284 1.067-3.332-8.574 2.442-15.746 5.958-7.4 7.624-13.408 2.886-25.1 0 0-.444 7.093-5.107 11.146-4.662 4.054-5.255 4.366-5.18 14.032 0 0 .074 3.352-1.703 4.443 0 0-3.627-5.302-4.59-8.81-.96-3.507-1.405-4.99 2.74-9.042 0 0 13.28-8.58 3.7-27.362 0 0-.295 6.47-4.884 10.29-4.59 3.82-4.22 6.392-4.442 13.018-.22 6.626-.665 6.16-1.183 7.094 0 0-8.438-15.513-1.924-23.776 6.513-8.263 10.14-9.978 2.96-25.335 0 0 .32 7.874-5.43 11.77-5.747 3.9-4.414 13.02-4.414 13.02s.37 3.43-.815 5.924c0 0-8.13-15.858-.37-24.398 6.587-7.25 7.032-12.317 3.48-22.607 0 0-.446 4.755-4.072 7.328-3.627 2.572-6.514 5.145-5.848 15.045 0 0 .296 6.937-.592 8.886 0 0-3.405-6.314-4.367-10.445-.962-4.133-1.333-6.55 1.184-10.68 2.517-4.132 12.51-15.98.592-33.053 0 0-.37 5.535-3.405 10.524-3.035 4.99-1.628 10.914-.962 15.435.666 4.522-1.554 8.887-1.554 8.887s-5.18-9.51-4.07-20.424c1.11-10.913-3.33-19.878-13.398-26.348 0 0-7.328 16.994 2.665 25.647 0 0 8.512 8.42 10.66 18.63 0 0-6.44-.623-12.29-12.004-5.846-11.38-17.985-9.59-18.8-9.667 0 0 2 17.618 20.652 22.607 0 0 11.916 2.027 14.136 10.757 0 0 2 6.003 2.813 9.2 0 0-3.776-1.482-7.255-6.627-3.48-5.145-3.035-5.77-14.804-6.938 0 0-4.736-.546-7.253-3.898 0 0 4.96 18.63 17.69 18.475 0 0 11.622-1.247 18.136 14.032 0 0-1.26-.78-2.96-1.95-1.704-1.168-5.997-3.35-14.51-2.338-8.51 1.014-10.88-.39-13.026-1.09 0 0 8.586 15.746 20.725 11.07 12.14-4.68 18.003 12.377 18.135 12.705 0 0-1.628-1.246-3.775-3.35-2.147-2.106-6.603-4.7-15.026-2.028 0 0-6.07 2.34-12.213.468 0 0 5.92 11.46 19.763 9.51 13.842-1.95 17.32 10.212 17.32 10.212s-1.85-1.09-3.108-2.105c-1.26-1.013-5.922-3.664-15.914-.7-9.993 2.96-13.62-.47-13.62-.47s5.55 10.135 16.21 11.304c0 0 5.922-.077 8.438-1.012 2.517-.936 9.18-2.417 13.768 4.21 0 0-1.258.233-3.183-.624 0 0-7.106-2.573-12.51 1.948 0 0-4.81 4.91-11.62 3.976 0 0 8.808 8.575 22.798 1.325 0 0 4.737-3.43 8.216-.78 3.48 2.652 11.548-2.57 11.548-2.57z" stroke-miterlimit="10" fill="#369443" stroke="#010002" stroke-width="1.506"/> - <g stroke-miterlimit="10" fill="#f4c53d" stroke="#010002" stroke-width="10"> - <path d="M282.21 103.676s-1.624-14.507 9.968-15.902c12.09-1.455 18.06 1.091 18.06 1.091l5.429 10.654-1.875 7.171-7.5 3.43s1.282-11.017-8.817-11.246c-2.559-.058-4.063.957-8.11.315-4.07-.647-6.247 3.826-7.154 4.487z" stroke-width="1.5054999999999998"/> - <path d="M363.778 139.586c-1.727 2.234-8.635 3.014-8.635 3.014s7.106 5.457 10.165 13.252c3.06 7.795-82.357.052-82.357.052s3.702-2.65 6.22-7.64c0 0-3.776 1.404-7.55-2.338 0 0 2.81.935 6.512-4.677 0 0 5.478-7.017 9.327-8.888 0 0-1.778 1.092-6.07-1.247 0 0 7.4-.935 10.066-13.564 0 0 .444-2.805 3.256-6.858 2.813-4.054 2.22.78 7.402-5.457 0 0 2.37-4.417.296-7.12-2.072-2.702-4.293-1.714-8.635-4.313-4.343-2.598-6.267-4.053-4.787-8.055 1.48-4 5.33-3.378 5.872-3.378.543 0 .84-3.483 5.577-5.873s17.32-1.35 19.195-.312c1.875 1.04 9.474 3.274 13.915 14.5 4.44 11.224-1.184 15.434 10.906 32.375 0 0-4.836 1.04-7.945.104 0 0 6.266 11.12 17.27 16.422z" stroke-width="1.505"/> - <path d="M310.93 92.217c-9.845-.468-6.07-9.848-6.07-9.848" fill="none" stroke-width="1.505"/> - <path d="M328.028 93.503s-1.74-.818-3.21-2.767c-2.066-2.735-6.672-4.053-9.15-1.48 0 0-2.518 2.805-4.74 2.96 0 0 2.518.78 4.258 2.38 1.74 1.597 3.552 2.766 6.143 2.415 2.59-.35 2.997-1.714 4.218-2.532 1.22-.82 2.48-.975 2.48-.975z" stroke-width="1.505"/> - </g> - <path d="M202.813 336.456s-.222-6.314 7.772-6.782l23.537 32.74s-.888 2.103-11.547 1.87c0 0-1.128-.008-1.72 1.24-.91 1.914-18.042-29.068-18.042-29.068z" stroke-miterlimit="10" fill="#369443" stroke="#010002" stroke-width="1.506"/> - <g id="a" transform="translate(3.597 26.17) scale(.15055)" fill="#f4c53d" stroke="#010002" stroke-width="10"> - <path d="M1494.918 1807.886s-49.82 85.606-110.13 86.987c0 0-103.74-12.628-133.073 14.498-20.454 18.916-41.3 34.52-49.82 82.846-8.523 48.326 16.387 58.682 22.287 60.753 0 0 4.59 34.518 38.676 25.543 0 0 1.967 35.9 62.276 18.64 60.31-17.26 85.22-11.736 97.02-71.8 11.8-60.06 22.693-59.078 33.43-66.275 14.423-9.665 41.518-18.8 61.62-30.376 18.062-10.4 87.187-45.565 110.786-48.326 23.6-2.76 18.355-82.154 18.355-82.154h-60.964l-29.498-43.493-60.964 53.156zm192.01-429.409s-60.965 49.707-112.096 0c0 0-20.65 24.853-61.948 17.604-41.3-7.248-48.182-28.995-52.115-41.42 0 0-35.728 20.84-65.882 4.38-30.155-16.463-30.155-41.316-30.155-41.316s-52.443 10.338-79.32-25.207c-26.876-35.545-10.488-70.754 3.934-74.897 0 0-56.7 14.854-72.11-33.828-13.11-41.422 16.39-62.824 16.39-62.824s-119.47-.574-168.473-37.97c0 0-40.643-25.544-16.388-52.468 0 0-107.507-17.26-134.384-60.062 0 0-11.8-11.736-7.866-32.448 0 0 .656-11.736 12.455-12.427 0 0-122.6-18.937-157.982-59.372 0 0-17.044-18.64-8.522-43.492 0 0 1.803-6.56 4.753-10.96 0 0-111.605-23.56-166.67-73.266 0 0-31.787-28.32-15.4-66.29 0 0-186.505-51.073-143.24-133.228 0 0-87.185-28.305-59.653-107.008 0 0-72.11-36.59-40.643-94.58 30.114-55.5 122.585 9.664 232.08 39.96 0 0 296.28 93.28 442.188 118.106l414.573 617.222 241.892 93.2 24.58 172.593z"/> - <path d="M1689.878 923.866s-38.857-29.17-108.163 5.178c0 0-23.333 16.068-41.687-1.536-15.336-14.71-16.775-41.83 4.322-57.49 51.623-38.316 70.798-153.263-7.866-200.898 0 0-114.063-67.656-532.32-174.095 0 0-35.044-9.717-53.727-5.057-20.572 5.13-34.743 22.782-37.65 37.886 0 0-18.715 53.188 44.206 83.62 0 0 28.408 13 57.687 21.402 0 0-32.16-6.952-45.887 24.853-13.11 30.375 5.9 61.442 64.898 81.463 0 0 15.958 6.21 38.677 11.736 0 0-50.476 14.497-26.22 55.23 0 0 21.632 42.802 98 50.396 0 0-57.03 6.213-16.715 60.408 0 0 17.7 29.686 73.42 40.732 0 0-42.282 1.38-20.977 39.35 21.305 37.972 71.44 59.373 120.775 62.825 0 0 26.72 1.382 45.403-2.76 0 0-46.87 23.473-19.338 62.824 0 0 20.32 27.96 71.125 26.58 0 0-13.187 43.944 24.09 60.58 29.008 12.943 53.1-7.768 53.1-7.768s-9.834 47.118 32.448 63.687c0 0 21.14 10.873 52.606 0 0 0 24.09 53.85 109.638 16.05 85.545-37.798 20.156-355.197 20.156-355.197zm5.074 489.39s-12.552 67.393-112.09 152.22c0 0-76.8 67.745-74.834 145.757 2.003 79.44-13.766 88.368-43.92 115.292 0 0 62.275 4.833 92.43-36.59 0 0-1.312 69.037-10.49 75.25 0 0 19.532 1.246 47.854-29.685 0 0 17.044-17.95 32.777-24.853 0 0-18.356 47.636-3.934 91.82 0 0 4.59-17.26 28.843-24.854 0 0 43.92-8.975 60.964-72.49 0 0 11.144-42.112 79.975-79.392 0 0 78.007-29.42 76.04-67.87-1.965-38.447-173.618-244.604-173.618-244.604z"/> - <path d="M2056.524 2282.172s-17.87 78.856-79.975 72.49c0 0-43.922-4.143-40.644-77.323 0 0-64.898 34.518-75.386-51.088 0 0-58.998 13.807-58.342-66.276 0 0-55.065 9.665-48.51-61.443 0 0-59.653 15.88-59.653-51.088 0 0-139.628-23.157 151.428-288.576l259.59 154.642-48.51 368.66z" stroke-miterlimit="10"/> - <path d="M2085.368 1928.287s-43.265 38.385-74.075-18.915c0 0-41.954-2.07-48.51-33.828 0 0-34.087-3.452-40.642-35.9 0 0-46.542-4.832-45.23-44.183 0 0-84.62-6.53-.028-102.333 84.59-95.802 228.153 158.945 228.153 158.945l-19.667 76.215zm48.275-23.747c41.94 0 89.463 261.995 77.13 419.84-4.48 57.328-35.19 104.152-77.13 104.152s-72.65-46.824-77.13-104.15c-12.333-157.846 35.19-419.843 77.13-419.843"/> - <ellipse ry="85.951" rx="58.032" cy="1902.468" cx="2133.643"/> - <path d="M1935.906 2277.34s6.555-138.765 126.824-337.594m-202.21 286.506s-18.683-80.083 150.773-316.88c0 0-19.666-56.612 40.643-92.856m-249.76 343.46s-5.243-86.642 160.607-284.433c0 0-14.65-51.088 45.445-91.82m-254.56 314.81s6.228-87.677 168.472-258.89c0 0-8.117-52.468 50.023-84.916m-278.15 292.72s11.8-100.105 182.895-251.987c0 0-5.9-39.35 51.132-79.393" stroke-miterlimit="10" fill="none"/> - <path d="M372.257 431.976s134.384 77.806 552.895 155.612M431.91 538.984S795.627 657.63 965.01 672.21m-389.86 0s213.37 66.98 463.238 109.247m-281.17 30.31s241.072 57.905 356.164 67.515m-194.41 46.31s203.908 42.526 255.572 47.64m-125.777 57.297s148.806 22.61 208.03 21.4m-23.17 69.038s60.166-2.826 89.08-7.626m-33.36 104.278s51.132-13.807 81.286-33.138m-5.9 133.242s39.333-15.188 58.343-56.61m37.693 93.545s30.48-27.27 32.448-57.647m81.614 81.464s-11.413-9.845-3.605-52.64m-11.145-62.825s-5.9-12.254-3.933-31.585m-211.082-581.293s68.83 27.615 91.775 65.585c22.944 37.97 7.833 74.873 0 96.047-3.936 10.64-52.443 104.16 4.59 171.816m-95.382 73.525s.33-.345 24.584-7.94m-169.784-91.473s41.026 8.26 81.286 8.63m-137.99-109.77s48.183 4.833 93.414 4.142m-165.194-109.77s69.486 13.808 106.852 14.5m-164.54-132.553s85.7 24.46 149.463 33.138m141.596 50.397s-61.62 57.3 12.455 110.46c0 0-30.81 48.325 30.81 98.722m-16.388 23.82s-9.177 92.154 103.574 92.16c0 0-21.633 82.157 87.186 79.396 0 0 12.455 65.585 91.12 52.468m-173.327 721.441s-17.84 3.97-56.54 0m-108.818 48.326s-54.41-8.286-51.787 109.768m84.565-82.845s-49.165-6.213-45.887 108.388m520.654-384.536s-23.6 4.833-39.988 23.473c-16.39 18.64-47.854 15.188-47.854 15.188s17.044-13.807 22.944-48.326c5.9-34.52 24.91-44.875 24.91-44.875m-56.3-32.688s-23.598 4.833-39.986 23.473c-16.388 18.64-47.854 15.188-47.854 15.188s17.044-13.807 22.944-48.326c5.9-34.52 24.91-44.874 24.91-44.874m23.76 188.537s-20.604 4.22-34.913 20.495c-14.31 16.275-41.783 13.26-41.783 13.26s14.882-12.055 20.033-42.194c5.15-30.14 21.75-39.18 21.75-39.18" fill="none"/> - </g> - <use transform="matrix(-1 0 0 1 647.195 0)" xlink:href="#a" width="100%" height="100%" stroke="#010002" stroke-width="10"/> - <path fill="#0081c6" stroke="#010002" stroke-width="1.5054999999999998" stroke-miterlimit="10" d="M466.05 255.929l-14.32 61.815-5.908-4.244 13.94-59.222-9.72.178 23.071-42.248 1.538 48.71zm36.97 13.05l-42.979 50.784-4.654-5.21 42.816-50.14-8.661-4.649 39.205-25.896-20.357 43.77z"/> - <path fill="#0081c6" stroke="#010002" stroke-width="1.5054999999999998" stroke-miterlimit="10" d="M492.61 242.045l-38.466 73.965-5.928-3.46 38.726-73.813-9.432-2.477 32.668-34.52-10.486 47.47z"/> - <path d="M444.625 338.57l-2.88 11.78 7.887 7.86-11.15 47.092-9.915-13.32-14.694 6.858 11.15-47.093 10.336-2.88 2.682-11.76s3.127-1.225 6.583 1.464z" fill="#0081c6" stroke="#010002" stroke-width="1.506" stroke-miterlimit="10"/> - <path d="M447.266 330.802l-5.678 10.594 5.688 9.74-22.342 42.45-6.306-15.57-15.878 2.62 22.343-42.45 10.692.035 5.483-10.627s3.988-.008 5.998 3.21z" fill="#0081c6" stroke="#010002" stroke-width="1.506" stroke-miterlimit="10"/> - <path d="M448.225 333.883L433.12 353.07l3.463 10.84-30.837 36.068-2.818-16.664-16.03-1.21 30.837-36.068 10.41 2.566 16.02-20.37s4.298 2.134 4.06 5.65zM65.524 288.898c3.6-1.47 6.193-2.888 6.182-6.73-.002-.916-.51-2.943-1.533-6.08l-24.177-73.89c-1.432-4.39-2.514-7-3.017-7.962-1.087-2.08-3.22-2.928-6.094-4.125h30.729c-3.338 1.578-6.382 2.83-6.353 6.37.01 1.35.39 3.256 1.175 5.717l18.52 57.983 18.504-57.983c.785-2.46 1.19-4.366 1.177-5.718-.036-3.638-3.205-4.95-6.32-6.37H124.1c-2.724 1.092-4.943 1.947-6.083 4.126-.503.96-1.585 3.57-3.016 7.96L90.825 276.09c-1.023 3.137-1.393 5.198-1.534 6.152 0 0-1.112 4.673 6.183 6.658h-29.95zm515.231-7.598v-83.663c0-1.447-.238-2.556-.715-3.33-.477-.77-2.554-2.994-5.518-4.196h27.689c-2.963.982-5.04 3.366-5.517 4.162-.477.796-.715 1.918-.715 3.366v83.66c0 1.497.247 2.643.74 3.44.494.795 2.53 2.738 5.493 4.16h-27.689c2.964-1.348 5.04-3.425 5.518-4.197.477-.77.715-1.905.715-3.4z" fill="#0081c6" stroke="#010002" stroke-width="1.506" stroke-miterlimit="10"/> - <path d="M324.823 309.767s74.102-32.838 74.287-108.803H250.536c.185 75.965 74.287 108.803 74.287 108.803z" fill="#fff" stroke="#010002" stroke-width="1.506"/> - <g fill="#a60032" stroke="#010002" stroke-width="10"> - <path d="M261.96 200.96v48.537s5.675 11.257 11.428 18.317V200.96H261.96z" stroke-width="1.5054999999999998"/> - <path d="M284.817 200.96v80.01s7.147 7.008 11.428 10.386V200.96h-11.428zm22.857 0v98.9s8.154 5.265 11.43 6.993V200.96h-11.43zm80 0v48.537s-5.676 11.257-11.43 18.317V200.96h11.43zm-22.857 0v80.01s-7.147 7.008-11.43 10.386V200.96h11.43zm-22.857 0v98.9s-8.154 5.265-11.43 6.993V200.96h11.43z" stroke-width="1.505"/> - </g> - <path d="M399.11 145.773s-36.36 19.02-74.287-1.56c-37.926 20.58-74.287 1.56-74.287 1.56v55.19H399.11v-55.19z" stroke-miterlimit="10" fill="#162667" stroke="#010002" stroke-width="1.506"/> -</svg> diff --git a/img/flags/4x3/vn.svg b/img/flags/4x3/vn.svg deleted file mode 100644 index fcfd7d1..0000000 --- a/img/flags/4x3/vn.svg +++ /dev/null @@ -1,11 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" height="480" width="640" viewBox="0 0 640 480"> - <defs> - <clipPath id="a"> - <path fill-opacity=".67" d="M-85.334 0h682.67v512h-682.67z"/> - </clipPath> - </defs> - <g fill-rule="evenodd" clip-path="url(#a)" transform="translate(80.001) scale(.9375)"> - <path fill="#ec0015" d="M-128 0h768v512h-768z"/> - <path d="M349.59 381.05l-89.576-66.893-89.137 67.55 33.152-109.77-88.973-67.784 110.08-.945 34.142-109.44 34.873 109.19 110.08.144-88.517 68.423 33.884 109.53z" fill="#ff0"/> - </g> -</svg> diff --git a/img/flags/4x3/vu.svg b/img/flags/4x3/vu.svg deleted file mode 100644 index 18dc459..0000000 --- a/img/flags/4x3/vu.svg +++ /dev/null @@ -1,18 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" height="480" width="640" viewBox="0 0 640 480"> - <defs> - <clipPath id="a"> - <path fill-opacity=".67" d="M0 0h682.67v512H0z"/> - </clipPath> - </defs> - <g clip-path="url(#a)" transform="scale(.9375)"> - <g fill-rule="evenodd"> - <path d="M0 0l347.415 219.424h420.56v73.142h-420.56L0 511.98V-.003z"/> - <path d="M0 493.705l354.733-226.732h413.242v-21.941H354.733L0 18.29V51.2l332.79 204.789L0 460.789V493.7z" fill="#ff0"/> - <path d="M0 511.984l354.733-226.732h413.242v226.732H0z" fill="#40aa40"/> - <path d="M0 0l354.733 226.732h413.242V0H0z" fill="#ce0000"/> - <path d="M95.806 266.623c1.227.27 1.55.62 2.766-1.162.261-.897 1.023-2.152 1.686-3.264.887-1.456 1.276-2.04 2.11-.933.54.633 2.69-.534 3.582.078 1.379.917.55.784 1.68-.207.867-1.848.103-1.63-1.12-2.47-.859-.59-3.052.626-3.91.037.3-1.846.888-2.044 1.95-2.403.804.552 3.146-.42 3.87-.404 1.022.214 1.932.327 2.254-1.174.505-1.063.285-.33-.12-1.103-.858-.589-3.051.627-3.91.037-1.115-.844-.931-1.158-.28-2.573.872-.479 1.521-.247 2.599.423 1.109.762 2.856-.718 3.829-.772.875-.995 1.907-1.327 1.255-2.54-.365-.921-.639-1.025-1.84-1.263-1.227-.842-2.826.7-3.293-.56.974-1.395 1.337-1.097 2.518-.312.76.26 3.054-1.1 3.79-1.14 1.092-.316.563.913 1.334-1.805-.267-1.178-2.243.723-3.358.416-1.07.143-1.922-.236-2.023-1.389.016-1.55.785-1.656 1.887-1.426.97.174 3.159-1.031 3.973-1.014 1.159.616 1.526.386 2.438-1.047.673-1.692-.073-.993-1.223-1.86-.858-.59-3.051.626-3.91.037.15-.625.422-1.385 1.007-1.69.846.167 1.574.129 2.639.791 1.047.458 2.772-1.565 3.669-2.243-.17-.964-1.884.408-2.926-.308-.66-.453-1.488-.929-1.695-1.504.591-1.688.303-1.604 1.926-1.058.864-.225 2.328-.212 1.335-1.805-.158-.257-1.013-.166-1.759-.527-.9-.618-1.765-1.24-2.718-1.527-.688-.106-1.687-.328-2.231-.17-.058 1.003.195 1.64.136 2.814.448.732 1.295.75 1.472 1.01-.9.79-1.386.386-2.335.438-1.13-.775-.482-3.18-1.815-2.606.307.706.196 3.375.768 3.928.604.415 1.373.82 1.511 1.378-.96 1.478-1.324 1.395-2.478.68-.964-.662-.66-2.833-1.487-2.722-1.016.767-1.033.732-.823 1.816.054 1.417-.512 3.39.624 4.17 1.367.969 1.54.854.464 2.7-.741.898-1.157.734-2.007.323-.914-.628-.716-2.942-1.423-3.7-1.34-.8-.564-.77-1.68.209-.344 1.256-.094 1.587.465 2.7.454.69.425 3.051 1.2 3.204 1.25.716 1.295.572-.128 1.954-1.117.044-1.597.35-2.454-.665-1.04-.784-.39-3.202-1.712-3.216-1.224.1-1.49.132-1.334 1.805.211 1.472-.336 3.788.848 4.664 1.108.506 1.778.473 2.167 1.147-.345.303-.995 1.24-1.375 1.438-.776.055-1.576-.482-2.455-.665-1.044-.481-.572-1.413-1.407-1.987-.966.313-.983-1.037-1.495.334.198 1.126-.183 2.596.872 3.32.858.59 1.613 1.788 2.47 2.377.985 1.165.599 1.368-.007 3.056-.821.023-1.784-.545-2.678-1.159-.858-.589-.71-2.868-1.568-3.457-.742-.73-.527-1.353-1.679.208-.108 1.107.099 1.187.384 1.964.033 1.131-.27 3.216.769 3.93 1.05.211 2.182.76 3.006 1.043.79.926.103.745-.783 2.183-.557 1.44-.563 1.695-1.439 2.414-.76 1.013-1.06 1.458-.375 2.804z" fill="#ff0"/> - <path d="M120.918 267.849c.736-1.195 1.187-1.398.034-3.402-.72-.636-1.568-1.946-2.325-3.096-.984-1.523-1.366-2.17-.016-2.613.796-.321.58-3.07 1.497-3.773 1.39-1.098.938-.27.477-1.866-1.35-1.66-1.454-.762-2.712.202-.883.676-.64 3.49-1.522 4.167-1.576-1.057-1.523-1.76-1.43-3.032.827-.633.866-3.508 1.169-4.27.603-1.001 1.07-1.922-.18-2.864-.775-.96-.19-.434-1.06-.313-.883.676-.64 3.49-1.522 4.167-1.22.847-1.435.526-2.475-.731-.092-1.118.38-1.714 1.423-2.59 1.141-.874.478-3.32.815-4.376-.565-1.327-.46-2.555-1.832-2.347-.991.018-1.195.268-1.891 1.448-1.262.967-.482 3.281-1.826 3.274-.893-1.592-.475-1.859.716-2.8.541-.701.207-3.682.462-4.479.144-1.287 1.062-.233-1.126-2.139-1.188-.187-.23 2.671-.955 3.732-.294 1.194-.982 1.948-2.08 1.594-1.416-.637-1.208-1.496-.558-2.574.546-.96.31-3.767.65-4.624 1.027-.985.962-1.467.01-3.008-1.286-1.391-.941-.319-2.195.555-.883.676-.64 3.491-1.522 4.167-.514-.41-1.104-1.001-1.15-1.745.49-.831.744-1.62 1.776-2.486.837-.929-.333-3.57-.599-4.793-.953-.204-.376 2.164-1.447 2.985-.68.52-1.445 1.209-2.056 1.199-1.314-1.303-1.352-.964-.205-2.47.138-1.006.732-2.556-1.125-2.138-.3.065-.556 1.01-1.184 1.657-.926.709-1.842 1.38-2.484 2.277-.37.688-.973 1.66-1.044 2.3.898.463 1.583.45 2.638.98.85-.182 1.203-1.074 1.513-1.158.367 1.272-.198 1.626-.527 2.654-1.162.89-3.11-.759-3.116.886.771-.044 3.177 1.142 3.913.755.62-.475 1.298-1.131 1.866-1.055.975 1.612.753 1.965-.362 2.904-.992.76-2.864-.43-3.091.492.3 1.385.261 1.39 1.34 1.6 1.322.509 2.908 1.898 4.076 1.003 1.434-1.064 1.398-1.294 2.663.586.53 1.147.214 1.523-.502 2.26-.94.721-2.985-.414-3.962.034-1.268 1.103-.932.29-.477 1.866 1.016.869 1.42.735 2.663.586.815-.206 2.97.769 3.42.007 1.155-1.042 1.04-1.146 1.742.916-.404 1.205-.314 1.837-1.587 2.341-1.134.79-3.095-.865-3.634.532-.395 1.34-.471 1.635 1.126 2.14 1.436.363 3.344 1.87 4.62.962.905-.974 1.141-1.699 1.915-1.842.141.487.742 1.552.772 2.034-.257.847-1.069 1.482-1.587 2.341-.857.918-1.525.043-2.384.701-.097 1.15-1.343.63-.288 1.721 1.113.24 2.31 1.232 3.395.4.882-.675 2.283-.997 3.165-1.673 1.462-.58 1.494-.088 2.803 1.23-.306.88-1.21 1.676-2.13 2.38-.882.677-2.915-.392-3.798.284-.966.496-1.451.02-.477 1.866.973.557 1.13.37 1.956.377 1.052.417 2.845 1.572 3.913.754.612-1.03 1.567-2.013 2.154-2.775 1.165-.47.725.189 1.693 1.704 1.1 1.166 1.332 1.275 1.644 2.493.627 1.21.916 1.708 2.424 1.519z" fill="#ff0"/> - <path d="M98.007 314.504c0-5.32-.825-10.639 0-10.639 46.81 0 58.511-31.916 58.511-53.195 0-21.277-16.26-42.554-46.809-42.554-35.108 0-46.81 20.787-46.81 42.554 0 21.278 17.555 37.237 35.108 37.237 23.406 0 29.257-5.32 46.81-26.597-5.851 26.597-35.108 37.237-46.81 37.237-23.405 0-46.809-15.958-46.809-47.875 0-26.596 17.554-53.192 58.514-53.192 35.108 0 58.511 26.597 58.511 53.192 0 37.237-29.256 63.833-70.216 63.833z" fill="#ff0"/> - </g> - </g> -</svg> diff --git a/img/flags/4x3/wf.svg b/img/flags/4x3/wf.svg deleted file mode 100644 index 1b1e81c..0000000 --- a/img/flags/4x3/wf.svg +++ /dev/null @@ -1,7 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" height="480" width="640" viewBox="0 0 640 480"> - <g fill-rule="evenodd" stroke-width="1pt"> - <path fill="#fff" d="M0-.001h640v480H0z"/> - <path fill="#00267f" d="M0-.001h213.337v480H0z"/> - <path fill="#f31830" d="M426.662-.001H640v480H426.662z"/> - </g> -</svg> diff --git a/img/flags/4x3/ws.svg b/img/flags/4x3/ws.svg deleted file mode 100644 index 6e5963d..0000000 --- a/img/flags/4x3/ws.svg +++ /dev/null @@ -1,9 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" height="480" width="640" viewBox="0 0 640 480"> - <g fill-rule="evenodd" stroke-width="1pt"> - <path fill="red" d="M0 0h640v480H0z"/> - <path fill="#00006b" d="M0 0h314.407v157.21H0z"/> - <g fill="#fff"> - <path d="M162.77 144.4l-12.468-8.415-11.95 8.555 3.795-15.007-11.471-9.25 14.817-.858 4.862-14.274 5.357 14.477 14.477.427-11.504 9.81zM160.634 44.574l-9.975-6.41-9.795 6.362 2.72-11.953-8.781-7.817 11.66-.977 4.357-11.192 4.49 11.349 11.48.9-8.888 7.99zM116.551 80.496l-9.708-6.66-9.922 6.658 3.089-11.673-9.147-7.768 11.607-.554 4.273-11.46 4.091 11.33 11.781.687-9.08 7.556zM204.934 72.47l-9.315-6.01-9.064 6.083 2.608-11.083-8.35-7.096 10.926-.841 3.899-10.468 4.143 10.564 10.763.625-8.362 7.37zM178.882 98.717l-6.21-3.868-6.188 3.907 1.613-7.347-5.482-4.924 7.208-.673 2.804-6.95 2.841 6.93 7.213.63-5.453 4.956z"/> - </g> - </g> -</svg> diff --git a/img/flags/4x3/ye.svg b/img/flags/4x3/ye.svg deleted file mode 100644 index 4a115e5..0000000 --- a/img/flags/4x3/ye.svg +++ /dev/null @@ -1,7 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" height="480" width="640" viewBox="0 0 640 480"> - <g fill-rule="evenodd" stroke-width="1pt"> - <path fill="#fff" d="M0 0h640V472.79H0z"/> - <path fill="#f10600" d="M0 0h640v157.374H0z"/> - <path d="M0 322.624h640v157.374H0z"/> - </g> -</svg> diff --git a/img/flags/4x3/yt.svg b/img/flags/4x3/yt.svg deleted file mode 100644 index c9abb97..0000000 --- a/img/flags/4x3/yt.svg +++ /dev/null @@ -1,7 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" height="480" width="640" viewBox="0 0 640 480"> - <g fill-rule="evenodd" stroke-width="1pt"> - <path fill="#fff" d="M0 0h640v479.997H0z"/> - <path fill="#00267f" d="M0 0h213.331v479.997H0z"/> - <path fill="#f31830" d="M426.663 0h213.331v479.997H426.663z"/> - </g> -</svg> diff --git a/img/flags/4x3/za.svg b/img/flags/4x3/za.svg deleted file mode 100644 index e585fc2..0000000 --- a/img/flags/4x3/za.svg +++ /dev/null @@ -1,17 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" height="480" width="640" viewBox="0 0 640 480"> - <defs> - <clipPath id="a"> - <path fill-opacity=".67" d="M-71.873-.012h682.68v512.01h-682.68z"/> - </clipPath> - </defs> - <g clip-path="url(#a)" transform="translate(67.379 .011) scale(.93748)"> - <g fill-rule="evenodd" stroke-width="1pt"> - <path d="M-71.878 407.837V104.428l225.832 151.627-225.832 151.793z"/> - <path d="M82.217 512.121l253.538-170.644h360.372v170.644H82.217z" fill="#00c"/> - <path d="M65.917.062l630.19.013v170.672H335.735S69.295-1.626 65.917.062z" fill="red"/> - <path d="M-71.878 64.075v40.329L153.954 256.03-71.878 407.823v40.327l284.44-192.12-284.44-191.955z" fill="#fc0"/> - <path d="M-71.878 64.075V.062h94.891l301.313 203.88h371.778v104.261H324.326L23.013 512.053h-94.89V448.15l284.439-192.12-284.44-191.955z" fill="#093"/> - <path d="M23.013.062h59.194l253.538 170.673h360.372v33.207H324.339L23.025.062zM23.013 512.121h59.194l253.538-170.644h360.372v-33.206H324.339L23.025 512.12z" fill="#fff"/> - </g> - </g> -</svg> diff --git a/img/flags/4x3/zm.svg b/img/flags/4x3/zm.svg deleted file mode 100644 index 2d4e3e7..0000000 --- a/img/flags/4x3/zm.svg +++ /dev/null @@ -1,27 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" height="480" width="640" viewBox="0 0 640 480"> - <defs> - <clipPath id="a"> - <path fill-opacity=".67" d="M-170.67 0H512v512h-682.67z"/> - </clipPath> - </defs> - <g fill-rule="evenodd" clip-path="url(#a)" transform="translate(160) scale(.9375)"> - <path fill="#198a00" d="M-256 0h768v512h-768z"/> - <path fill="#ef7d00" d="M421.87 183.94h90.126v328.03H421.87z"/> - <path d="M331.85 183.78h90.029v328.1H331.85z"/> - <path fill="#de2010" d="M239.95 183.98h91.935V512H239.95z"/> - <g stroke="#000" fill="#ef7d00"> - <path stroke-linejoin="round" d="M451.61 65.59s33.917-14.494 37.204-17.482c1.494 1.793-13.597 20.021-42.881 26.745 26.595-6.276 49.306-25.998 53.937-25.4 1.345.299 1.046 19.274-59.914 35.71 42.134-11.058 66.637-31.377 66.339-29.136.298.448-4.184 15.986-41.088 28.09 10.31-2.392 38.25-19.424 37.95-16.137.897 1.345-27.043 37.203-77.54 25.55 40.34 10.458 66.487-14.793 70.222-14.344.747.15-7.47 22.113-58.27 23.457 24.355-2.54 17.331-.15 17.331-.15s-14.343 11.206-31.675 3.587c13.597 3.736 15.09 3.885 15.39 5.08-.897 1.493-12.103 3.735-22.86-2.092 8.665 3.585 16.435 4.184 16.584 5.528-.149.448-5.677 3.586-10.607 1.345-4.93-2.242-50.352-30.181-50.352-30.181l77.392-21.217 2.839 1.046zM360.622 141.169c-6.806 0-6.994 6.056-6.994 6.056s-.561.437-.187 3.373c1.124-2 1.686-2.624 1.686-2.624.75.126 3.871 1.062 8.804-2.809-4.496 4.682-1.81 6.431-1.81 6.431s-1.062 3.684 2.372 4.434c-1.061-1.5-.437-2.81-.437-2.81s4.808-.5 4.496-6.369c.187 5.307 3.06 6.618 3.06 6.618s0 2.935 3.121 3.185c-1.685-1.5-1.311-3.81-1.311-3.81s4.059-2.934.624-7.93c2.06-1.186 3.747-4.495 3.747-4.495s-2.81-1.187-4.12-2.185c-.626-1.312-.063-8.492-.063-8.492l-1.686-9.304-4.809 14.487c.187-2.06.313 6.244-6.493 6.244z" stroke-width=".99311166"/> - <path stroke-linejoin="round" d="M394.237 120.271c.149.15 5.08 5.679 9.86 5.38 1.793-1.495-3.735-4.782-3.735-5.529 1.943 1.793 10.16 8.815 15.39 6.275 2.091-2.988-3.735-2.54-10.16-10.608 4.482 2.988 15.688 9.562 20.917 7.023 2.242-2.391-11.654-9.862-16.286-15.689l-11.952-6.125-16.286 13.297 12.252 5.976z" stroke-width=".99311166"/> - <path stroke-linejoin="round" d="M375.857 74.853s5.528-3.287 27.641-1.644c2.39.299 15.09-4.333 19.125-5.677 6.424-1.196 26.893-5.678 32.422-9.861 3.885-.449-1.047 7.171-5.976 8.964-5.23 2.391-24.205 8.965-30.93 8.069 8.07.15 3.587 6.723-9.86 3.586 6.425 3.586 4.034 4.183 4.034 4.183s-11.355.598-14.343-1.942c7.62 2.839 4.482 3.885 4.482 3.885s-7.769.747-11.355-.897c5.528 1.644 2.69 2.69 2.69 2.69s-4.483.747-8.218-.598c-3.735-1.345-9.413-10.757-9.712-10.757z" stroke-linecap="round" stroke-width=".99311166"/> - <path stroke-linejoin="round" d="M384.723 123.37l.812 14.612s-.437.75-.812 1.186c-.375.437-10.365-1.561-8.992 6.057 0 3.122.063 3.933 2.186 5.682-.562-2.06-.374-3.497-.374-3.497s2.809 1.686 5.557-2.934c-1.873 4.558-.563 6.181-.126 6.306.438.812-.748 4.496 2.998 4.433-1.436-1.374-.75-3.372-.75-3.372s3.935-.623 2.56-7.742c1.437-1.436 1.999-.062 1.999-.062s.437 4.245 3.871 3.371c1.562.874-.25 3.185-.25 3.185s2.498.062 3.247-2.061c.75-2.123 1.624-5.932-2.498-7.493-.499-1.498 1.624-1.623 1.624-1.623s2.623.874 3.372 2.185c.749 1.311.5-3.434-2.747-3.934-3.997-.125-4.246-.936-4.246-1.123 0-.188-.687-10.615-1-13.612l-6.431.436z" stroke-width=".99311166"/> - <path stroke-linejoin="round" d="M398.625 135.82c.05-.67-6.817-9.915-5.075-11.11 1.741.358 4.597 4.563 6.91 3.198-.701-1.639-2.768-.716-5.115-4.912-2.346-4.743-2.688-11.864-10.906-19.632 5.32 8.22 17.389 13.038 17.9 10.642s-10.627-11.46-10.056-13.645c2.215 4.486 13.398 14.481 21.638 13.653.565-1.924-6.748-5.808-8.63-9.434-5.263-3.536-19.35-15.679-19.631-18.494-5.126-7.475-8.326-9.737-9.816-10.599-.576-.678-.72-1.326-.833-1.739-3.182-7.501 1.033-9.937 3.5-10.297 2.03-.226 2.619.078 4.08-.63-1.73-.676-3.46-1.309-5.188-1.986 2.255 1.654 8.015.198 6.766 4.963 2.526-.961 7.9-7.354-6.09-8.797-4.553-5.223-23.271-8.225-27.957 14.57.374.32.57.583 1.76 1.472-5.915-2.859-21.858-5.068-27.602-5.997-15.526-4.479-31.648-15.272-33.198-13.945-2.073.92 9.38 11.575 8.784 11.81-9.93-5.79-19.002-9.891-27.442-13.625-5.939-2.22-11.886-7.387-12.542-6.404-2.186 4.527 9.52 15.908 11.698 17.246 2.177 1.28 19.303 9.225 19.05 9.324-25.793-11.708-30.118-13.83-31.412-15.18-2.274-.513-7.812-7.99-9.355-7.509-.845.83.85 12.645 13.158 17.949 2.006 1.462 26.384 10.207 26.145 10.893-.06.171-27.921-11.5-29.004-11.917-5.371-2.107-11.962-9.49-13.195-8.66-1.176.754 3.039 8.746 8.467 11.252 2.845 1.256 13.758 6.66 23.59 10.101.628.227-17.673-6.94-26.472-10.617-3.99-2.214-5.868-4.974-6.476-4.38-.899.593 1.452 12.399 29.728 19.06.745.317 9.953-2.182 9.498-1.85-.114.083-9.144 2.049-10.023 1.981-.782-.12-5.73.586-5.819.842-.299.799 1.793 5.026 16.392 4.145 1.867-.113 11.995-3.689 11.144-2.92-.425.385-13.792 4.729-14.81 4.814-.884.125-5.58.616-5.754 1.116-.212.681 3.476 3.69 11.316 4.171 6.942.37 20.133-4.241 19.868-3.942-.264.299-12.715 4.565-13.042 4.825-.45.255-5.01.502-5.17.853-.371.87 6.577 7.369 27.128.434-2.065 2.789-12.026 4.696-12.011 5.198-.047.364 2.194 2.53 5.677 3.304 1.74.387 4.125.308 6.303-.036 3.91-.783 8.033-2.33 13.27-7.17.626 1.519-13.083 8.456-12.44 9.118 2.974 2.756 12.848-.356 13.495-.717.647-.362 19.015-10.72 18.951-11.918.286 1.536-23.68 14.558-23.421 15.093 1.538 2.454 9.725-.13 10.116-.355.39-.225 10.448-5.658 10.724-5.819.275-.16-11.82 7.08-10.743 8.181-.521 4.701 18.89-3.244 20.41-4.234.762-.494-9.324 4.435-9.35 6.776 3.247 5.491 13.646 3.75 15.25 2.542.802-.605-.944 4.079-.381 3.653.195-.088 2.261-2.53 3.056-4.299-.254 1.534-1.394 3.951-2.059 6.724-.666 2.773-.857 5.902-1.77 9.226-.21 1.46 6.407-2.854 5.446-13.17.566 5.366-2.09 15.399-1.395 15.92 1.39 1.043 5.234-4.997 5.622-9.08 1.142 2.062 3.537 6.368 5.598 7.36-.225-3.122.039-2.979-.889-6.046.535-4.072.61-9.708.74-16.072 5.599 10.727 7.833 15.256 6.268 23.471 1.665.694 4.325-5.734 4.11-9.042 2.139 9.193 11.368 10.572 11.515 10.304z" stroke-linecap="round" stroke-width="1.05941844"/> - <path stroke-linejoin="round" d="M305.356 67.72s-3.811 2.879-8.554 2.71c1.185 4.742 11.01 1.1 11.01 1.1s-4.743 5.252-8.131 6.099c2.033 1.693 10.587 1.1 12.027.254 1.44-.847 3.98-4.15 3.98-4.15S306.88 83.896 305.61 83.81c-.17 1.186 9.232.762 11.18-1.016 1.948-1.779 6.86-4.404 6.86-4.404s-12.873 8.977-13.466 8.977c4.827 1.27 14.483-1.524 20.666-5.336-9.148 6.098-9.994 7.2-14.652 9.232 4.15.931 6.267 3.726 20.327-2.372 8.046-3.81 12.619-10.756 12.619-10.756-4.997 6.69-12.874 12.366-21.597 17.955-.509 1.017 9.316 5.166 21.85-7.877" stroke-linecap="round" stroke-width="1.05941844"/> - <path d="M373.451 96.006s.847 3.98 4.235 7.03c3.388 3.049 3.642 6.013 3.642 6.013M371.76 70.09s1.185 3.558 4.658 5.845c3.557 2.286 8.894 9.485 9.317 10.756.41 1.538 2.455 12.62 2.286 13.805M350.162 75.595c.254 1.356-4.998 8.216 2.201 16.262-6.522 7.96-6.52 8.977-6.52 8.977s3.64 2.033 10.163-3.557c10.755 13.213 7.171 19.26 7.171 19.26" stroke-linecap="round" stroke-width="1.05941844"/> - <path stroke-linejoin="round" d="M362.32 107.211s-.99-1.42.776-6.72c1.59 1.917 3.36 2.326 4.135 3.101.775.776 8.896 1.952 9.412 7.38" stroke-linecap="round" stroke-width="1.05941844"/> - <path d="M371.864 57.462c0-.399-1.635-3.908-7.736.478 3.27.2 6.5 2.074 7.736-.478z" stroke-width="1.05941844"/> - <path stroke-linejoin="round" d="M430.094 73.508c.3.15 18.229 4.034 24.205 2.092-7.62 10.16-22.86 3.287-22.86 3.287 7.47 2.24 7.77 2.092 10.16 4.183.747 1.943-13.746 1.046-18.527-1.643 13.298 4.183 13.596 3.884 14.045 5.528.598 2.241-21.814-.598-23.756-3.586 5.976 4.632 9.263 5.528 12.55 7.62-4.034 1.793-11.504 3.586-25.25-6.126 18.078 16.435 34.364 15.39 36.904 18.378-6.275 9.263-30.63-5.528-41.835-13-11.206-7.47 24.503 18.08 27.791 17.63-1.644 2.54-13.447.3-14.195-.896" stroke-width="1.05941844"/> - <path d="M434.728 90.69c-2.09.3-8.366.3-9.262.15" stroke-linecap="round" stroke-width="1.05941844"/> - <path stroke-linejoin="round" d="M300.105 65.009s13.636 7.199 19.395 6.69c-1.524 1.44-3.812 2.033-3.812 2.033 1.44.593 5.421 2.71 11.435 1.356-1.44 1.44-3.303 3.049-3.303 3.049s5.166 1.948 11.01-1.101c-1.778 2.202-2.795 3.81-2.795 3.81l4.065.255" stroke-linecap="round" stroke-width="1.05941844"/> - </g> - </g> -</svg> diff --git a/img/flags/4x3/zw.svg b/img/flags/4x3/zw.svg deleted file mode 100644 index ab1885c..0000000 --- a/img/flags/4x3/zw.svg +++ /dev/null @@ -1,21 +0,0 @@ -<svg xmlns:xlink="http://www.w3.org/1999/xlink" xmlns="http://www.w3.org/2000/svg" height="480" width="640" viewBox="0 0 640 480"> - <defs> - <clipPath id="a"> - <rect fill-rule="evenodd" ry="0" height="420.1" width="545.96" y=".113" x="1.928" fill="#00f"/> - </clipPath> - </defs> - <g clip-path="url(#a)" transform="matrix(1.1722 0 0 1.1426 -2.26 -.129)"> - <path fill="#006400" d="M0 0h840v420H0z"/> - <path fill="#ffd200" d="M0 60h840v300H0z"/> - <path fill="#d40000" d="M0 120h840v180H0z"/> - <path d="M0 180h840v60H0z"/> - <path stroke-width="20" stroke="#000" d="M0 0v420l280-210z"/> - <path fill="#fff" d="M0 0v420l280-210z"/> - <path fill="#d40000" d="M106.52 104.41l55.459 170.68L16.789 169.6h179.47l-145.2 105.5z"/> - <path fill="#fc0" d="M82.77 253.66l9.8-1.782 18.176-.713 6.682.624 14.968 2.495 1.158-1.515v-10.78l1.693-9.267 3.118-9.444 3.207-7.484 4.188-7.751 6.86 1.693h1.782l.178-1.337-14.344-12.295-15.057-11.493-21.65-16.215-1.96-.534-2.405-16.928-1.693-5.168-2.228-1.96-4.365-1.425-4.812.178-2.138 1.247-4.633 1.07-2.405.356-1.604 1.87-.178 2.406 6.682.178 1.693.713-.178.713-3.832.534-1.781.535 2.138 1.604 2.138.802 2.851 1.069.535 1.87.267 25.928-1.515 4.01-.534 7.483 2.227 8.999-5.613 6.326-3.118 5.702-.535 3.563-1.692 3.475-.268 2.228 1.158 2.316 4.277 14.255 2.227 11.671z"/> - <path d="M87.956 141.92c-1.715-.001-2.538.295-4.237 1.219-1.534.834-3.354 1.387-4.594 1.387-2.521 0-4.556 1.81-4.556 4.07v1.5l3.674-.113c10.535.352.917 1.323.15 1.462-2.615.475.58 2.608 3.657 3.638 3.31 1.108 3.169.467 3.169 14.98 0 11.918-.104 13.604-1.013 16.35-1.335 4.033-1.335 10.026 0 13.97.54 1.594.985 3.08.994 3.3.009.22-1.56 2.169-3.488 4.33-3.483 3.905-5.625 8.096-5.625 11.026 0 .674-.455 1.813-1.012 2.55-1.287 1.7-1.324 4.626-.075 5.737 1.295 1.153 6.642 21.793 6.656 25.688.005 1.42.259 1.412 8.381-.225 6.557-1.32 22.06-1.602 29.906-.543 3.625.488 7.842 1.2 9.375 1.593 4.83 1.24 4.564 1.496 4.575-4.33.018-9.01 1.66-17.577 5.138-26.739 1.582-4.168 5.74-12.63 6.843-13.93.11-.13 1.88.198 3.938.73 4.208 1.09 5.362.886 5.362-.937 0-1.044-4.296-4.626-25.33-21.094-14.17-11.1-25.8-19.84-26.38-19.84-.573 0-1.15-.294-1.276-.656-.125-.363-.793-4.652-1.5-9.544-.706-4.892-1.66-9.722-2.118-10.725-1.339-2.932-4.11-4.487-8.532-4.781a31.202 31.202 0 0 0-2.08-.075zm.15 1.05c.552-.007 1.173.016 1.931.056 6.641.349 7.897 2.181 9.638 13.988.675 4.582 1.231 8.82 1.237 9.431.008.795-.915 1.735-3.244 3.3-3.428 2.305-7.854 6.51-10.012 9.488l-1.293 1.762-.244-4.143c-.142-2.278-.142-7.594 0-11.812.294-8.72.065-9.58-2.794-10.538-2.334-.782-5.38-1.622-4.481-2.157.982-.583 1.891-.166 4.387-.787.884-.22.836-.183.694-.938-.256-1.36-1.584-1.984-5.344-1.78-2.952.159-3.331.082-3.13-.713.403-1.607 2.074-2.663 4.555-2.906 1.336-.131 3.284-.723 4.35-1.313 1.18-.653 2.095-.917 3.75-.937zm14.869 25.875c.14-.002.27 0 .394.019 1.702.267 50.794 38.649 50.794 39.712 0 .42-.394.757-.881.75-.488-.008-12.982-3.547-27.75-7.856-23.6-6.888-26.994-8.013-28.012-9.244-1.448-1.75-1.497-4.421-.132-6.225.558-.737 1.013-1.643 1.013-2.025 0-1.166-2.502 1.808-2.981 3.544-.56 2.029.483 5.425 2.006 6.525.602.434 5.1 1.98 9.994 3.43 8.351 2.477 8.912 2.743 9.356 4.126 1.064 3.32-2.443 7.173-7.519 8.269-1.637.353-3.719 1.316-5.156 2.4-5.716 4.306-9.696 6.85-13.031 8.287-1.962.845-3.857 1.8-4.2 2.138-.344.337-.844 1.873-1.125 3.412-.596 3.268-.85 3.769-1.819 3.769-.561 0-.612-.294-.225-1.35.713-1.949.635-4.444-.15-4.444-.415 0-.675.694-.675 1.856 0 1.015-.286 2.132-.656 2.494-.556.545-.626.142-.394-2.362.155-1.667.087-3.038-.15-3.038-.455 0-1.348 2.526-1.669 4.744-.188 1.3-.199 1.29-.619-.244-.327-1.198-.168-2.001.675-3.525.602-1.087 1.107-2.667 1.107-3.525 0-1.292.952-2.541 5.625-7.275 3.102-3.142 6.714-7.041 8.025-8.662 2.268-2.805 2.387-3.103 2.306-5.944-.047-1.642-.237-3.118-.413-3.3-.592-.616-1.382 2.558-1.068 4.294.283 1.568-.01 2.103-3.282 5.962-1.975 2.33-5.33 5.842-7.443 7.819-3.895 3.641-5.288 5.61-5.288 7.462 0 .563-.436 2.05-.975 3.3-.539 1.25-.836 2.529-.675 2.832.18.338.052.316-.319-.038-.439-.419-.474-1.195-.112-2.869.273-1.262.385-2.48.244-2.718-.544-.915-1.182.26-1.5 2.756-.183 1.431-.526 2.481-.77 2.325-.733-.471-.501-3.077.395-4.406.461-.685 1.037-2.317 1.275-3.638.665-3.704 2.257-6.645 5.793-10.65 1.783-2.019 3.244-3.745 3.244-3.844 0-.098-.475-1.588-1.05-3.3-1.33-3.958-1.417-9.985-.206-13.65 1.276-3.861 3.906-7.684 8.062-11.719 4.023-3.904 7.845-6.34 9.938-6.375zm15.019 32.175a.86.573 0 0 1 .994.562.86.573 0 0 1-1.706 0 .86.573 0 0 1 .712-.562zm2.475.319a.86.573 0 0 1 .019 0 .86.573 0 0 1 1.012.581.863.575 0 0 1-1.725 0 .86.573 0 0 1 .694-.581zm2.625.487a.86.573 0 0 1 .094 0 .86.573 0 0 1 .918.581.86.573 0 0 1-1.706 0 .86.573 0 0 1 .694-.58zm2.363.488a.86.573 0 0 1 .112 0 .86.573 0 0 1 .919.581.863.575 0 0 1-1.725 0 .86.573 0 0 1 .694-.581zm-6.3.581a.86.573 0 0 1 .018 0 .86.573 0 0 1 1.013.581.863.575 0 0 1-1.725 0 .86.573 0 0 1 .693-.581zm2.475.412a.86.573 0 0 1 1.012.563.863.575 0 0 1-1.725 0 .86.573 0 0 1 .713-.563zm5.193.207a.86.573 0 0 1 1.013.562.863.575 0 0 1-1.725 0 .86.573 0 0 1 .712-.562zm-2.737.037a.86.573 0 0 1 1.012.563.863.575 0 0 1-1.725 0 .86.573 0 0 1 .713-.563zm5.062.582c.077-.113 3.675.802 7.988 2.043l7.837 2.25-1.518 2.7c-.836 1.48-1.891 3.465-2.344 4.407-.92 1.912-1.247 1.945-5.963.862-5.215-1.198-13.459-2.335-21.844-3.019l-8.062-.656 3.037-1.144c1.673-.634 4.079-1.72 5.344-2.419 1.985-1.095 2.786-1.236 5.831-1.012 4.522.333 7.57-.502 8.7-2.381.473-.786.918-1.52.994-1.632zm-8.85.562a.86.573 0 0 1 .019 0 .86.573 0 0 1 1.013.581.863.575 0 0 1-1.725 0 .86.573 0 0 1 .693-.581zm5.644 0a.86.573 0 0 1 .019 0 .86.573 0 0 1 1.012.581.863.575 0 0 1-1.725 0 .86.573 0 0 1 .694-.581zm-8.1.075a.86.573 0 0 1 .113 0 .86.573 0 0 1 .918.581.863.575 0 0 1-1.725 0 .86.573 0 0 1 .694-.581zm5.344.094a.86.573 0 0 1 1.012.562.863.575 0 0 1-1.725 0 .86.573 0 0 1 .713-.562zm-6.563 1.18a.86.573 0 0 1 .02 0 .86.573 0 0 1 .993.582.86.573 0 0 1-1.706 0 .86.573 0 0 1 .693-.581zm2.457.038a.86.573 0 0 1 .093 0 .86.573 0 0 1 .92.582.86.573 0 0 1-1.707 0 .86.573 0 0 1 .694-.582zm2.625.094a.86.573 0 0 1 1.012.563.863.575 0 0 1-1.725 0 .86.573 0 0 1 .713-.563zm2.775.075a.86.573 0 0 1 .018 0 .86.573 0 0 1 .994.581.86.573 0 0 1-1.706 0 .86.573 0 0 1 .694-.58zm-20.306 8.081c3.43-.11 15.409.76 21.094 1.613 5.003.751 13.767 2.378 14.062 2.606.073.057-.677 2.455-1.688 5.325s-1.932 5.55-2.044 5.944c-.153.538-.768.622-2.475.356-8.33-1.298-32.336-1.18-41.569.206-5.249.789-6.02.731-5.568-.375.206-.507.645-2.094.975-3.543l.6-2.644 5.568-2.888c3.061-1.594 6.472-3.625 7.575-4.519 1.103-.893 2.254-1.78 2.57-1.968.098-.06.409-.097.9-.113zm-26.958 14.22c.25 0 .874.288 1.593.75.94.604 2.138 1.1 2.663 1.107 2.612.032 4.048 3.712 6.262 16.069.312 1.738.679 3.665.807 4.293.204 1.001-.083 1.225-2.325 1.725-2.835.632-3.525.678-3.525.3 0-1.06-2.819-13.72-4.05-18.188-.84-3.042-1.538-5.72-1.538-5.962 0-.03.015-.061.038-.075a.13.13 0 0 1 .075-.019zm28.612 1.857h2.868l-.956 1.087c-1.698 1.95-2.51 2.135-3.694.825-.596-.66-1.087-1.358-1.087-1.556 0-.199 1.292-.356 2.869-.356zm6.075 0H117.343l-1.2 1.312c-1.47 1.627-1.568 1.627-3.038 0l-1.2-1.313zm8.212 0h1.256c.684 0 1.939.14 2.794.318l1.556.319-1.443 1.256c-.791.692-1.514 1.254-1.613 1.238s-.72-.74-1.369-1.594l-1.181-1.538zm8.456.375l1.257.318c.697.183 2.184.351 3.3.356h2.025l-1.52 1.294c-.836.713-1.642 1.302-1.8 1.313-.156.01-.962-.72-1.78-1.631l-1.482-1.65zm-30.208.16c.146.004.237.01.263.037.103.107-.321.827-.956 1.594l-1.163 1.387-1.462-1.2-1.463-1.219 2.438-.375c1.002-.156 1.906-.237 2.343-.225zm2.307.15c0-.05.728.585 1.612 1.406l1.613 1.5-2.982.168-2.98.17 1.368-1.576c.753-.868 1.369-1.619 1.369-1.669zm18.112 0c.213.014.42.136.675.356.441.38 1.02 1.137 1.293 1.669.429.832.299.945-.918.9-.777-.03-1.94-.205-2.588-.394l-1.181-.338 1.294-1.256c.683-.667 1.069-.961 1.425-.937zm-8.4.018c.56-.077.997.341 1.593 1.275.73 1.143.705 1.16-1.987 1.144l-2.719-.019 1.444-1.312c.715-.654 1.232-1.028 1.669-1.088zm16.969.188l1.237 1.218c1.356 1.324 1.595 2.132.6 1.988-.349-.05-1.606-.17-2.794-.281l-2.156-.206 1.556-1.35 1.556-1.37zm-35.138.675c.234 0 .958.572 1.593 1.275l1.144 1.275-2.456.337c-1.353.182-2.911.428-3.469.544-.753.157-.526-.26.881-1.613 1.042-1 2.072-1.818 2.307-1.818zm-3.75.075c.167-.003.319.016.45.037.83.135.75.348-.6 1.688l-1.557 1.537-.45-1.275c-.376-1.045-.266-1.343.6-1.687a4.85 4.85 0 0 1 1.557-.3zm45.956 1.762c.24-.015.29.18.15.563-.308.833-1.2 1.038-1.2.28 0-.258.345-.588.75-.75.122-.048.22-.088.3-.093zm-21.32 1.58c7.667 0 15.48.191 17.362.431 3.166.405 3.412.527 3.412 1.707 0 1.405-.428 1.472-4.556.73-1.255-.224-6.287-.703-11.194-1.068-8.518-.633-19.075-.29-28.481.919-1.942.25-2.4.154-2.4-.488 0-1.358 10.167-2.23 25.856-2.23zm-10.312 2.888h5.418l-1.2 1.312c-1.47 1.627-1.567 1.627-3.037 0l-1.181-1.312zm6.956 0l1.425 1.406c.783.78 1.425 1.503 1.425 1.594s-1.302.168-2.888.168h-2.887l1.462-1.593 1.463-1.575zm2.156 0h5.438l-1.2 1.312c-1.47 1.627-1.568 1.627-3.038 0l-1.2-1.312zm-12.825.075c.237.015.024.416-.694 1.425-.652.917-1.34 1.668-1.519 1.668-.177 0-.845-.606-1.5-1.33l-1.2-1.313h1.82c1 0 2.216-.164 2.7-.356.176-.071.314-.1.393-.094zm2.044.45l1.294 1.18c.714.653 1.373 1.231 1.462 1.276.09.044-1.086.162-2.625.262l-2.812.188 1.35-1.463 1.33-1.443zm17.362 0l1.462 1.593c1.594 1.73 1.434 1.805-2.194 1.107l-1.706-.32 1.219-1.2 1.219-1.18zm2.044 0h2.362c2.56 0 2.89.401 1.444 1.762-1.19 1.119-1.196 1.11-2.606-.45l-1.2-1.312zm-30.62.543c1.153-.01 1.118.099-.374 1.557-1.145 1.117-1.283 1.141-1.594.3-.373-1.009.52-1.843 1.969-1.857zm38.795.15c.389-.003 1.188.086 2.08.244l2.176.375-1.256 1.219-1.238 1.219-1.087-1.425c-.596-.787-1.01-1.5-.92-1.594.024-.024.115-.036.245-.038zm-35.962.48c.307-.052.579.199 1.106.694 1.005.946 1.017 1.032.15 1.388-.506.207-1.608.392-2.438.412l-1.5.038 1.369-1.425c.674-.7 1.005-1.054 1.313-1.107zm34.088.282c.352-.02.631.281 1.125.975l.918 1.275h-2.1c-1.367 0-2.022-.218-1.894-.62.109-.337.64-.907 1.182-1.274.32-.217.557-.345.768-.356zm6.412 1.35c.112.025.131.209.131.543 0 .984-.819 1.63-1.219.957-.155-.262.054-.767.47-1.125.306-.265.506-.4.618-.375zm-25.931 1.2c8.67-.01 18.313.566 23.906 1.612l1.65.319v4.406c0 3.224-.157 4.403-.619 4.35-.348-.04-2.58-.498-4.95-1.031-7.15-1.608-15.236-2.23-24.338-1.856-4.6.189-9.414.535-10.706.768l-2.362.432-.581-3.675c-.32-2.017-.502-3.733-.413-3.825.089-.093 2.312-.469 4.95-.825 3.397-.459 8.26-.67 13.462-.675z"/> - <path id="b" d="M124.76 217.76c-2.964 0-5.081 2.188-5.081 5.269 0 4.8 5.397 7.125 8.662 3.731s1.038-9-3.58-9zm-.02 1.24c2.19-.087 4.069 1.617 4.069 4.088 0 2.89-3.346 4.906-5.925 3.562-2.759-1.437-2.554-6.057.319-7.294a4.283 4.283 0 0 1 1.537-.356z"/> - <use xlink:href="#b" height="100%" width="100%" y="-.6" x="-20.065"/> - <path d="M88.012 145.28a1.723 1.764 0 0 0-1.594 1.762 1.725 1.766 0 1 0 3.45 0 1.723 1.764 0 0 0-1.856-1.762zm.113.619a1.16 1.143 0 0 1 1.124 1.144 1.163 1.146 0 1 1-2.324 0 1.16 1.143 0 0 1 1.2-1.144z"/> - </g> -</svg> diff --git a/js/bootstrap.min.js b/js/bootstrap.min.js deleted file mode 100644 index 582c8e6..0000000 --- a/js/bootstrap.min.js +++ /dev/null @@ -1,11 +0,0 @@ -/* -Tether - */ -!function(t,e){"function"==typeof define&&define.amd?define(e):"object"==typeof exports?module.exports=e(require,exports,module):t.Tether=e()}(this,function(t,e,o){"use strict";function n(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function i(t){var e=t.getBoundingClientRect(),o={};for(var n in e)o[n]=e[n];if(t.ownerDocument!==document){var r=t.ownerDocument.defaultView.frameElement;if(r){var s=i(r);o.top+=s.top,o.bottom+=s.top,o.left+=s.left,o.right+=s.left}}return o}function r(t){var e=getComputedStyle(t)||{},o=e.position,n=[];if("fixed"===o)return[t];for(var i=t;(i=i.parentNode)&&i&&1===i.nodeType;){var r=void 0;try{r=getComputedStyle(i)}catch(s){}if("undefined"==typeof r||null===r)return n.push(i),n;var a=r,f=a.overflow,l=a.overflowX,h=a.overflowY;/(auto|scroll)/.test(f+h+l)&&("absolute"!==o||["relative","absolute","fixed"].indexOf(r.position)>=0)&&n.push(i)}return n.push(t.ownerDocument.body),t.ownerDocument!==document&&n.push(t.ownerDocument.defaultView),n}function s(){A&&document.body.removeChild(A),A=null}function a(t){var e=void 0;t===document?(e=document,t=document.documentElement):e=t.ownerDocument;var o=e.documentElement,n=i(t),r=P();return n.top-=r.top,n.left-=r.left,"undefined"==typeof n.width&&(n.width=document.body.scrollWidth-n.left-n.right),"undefined"==typeof n.height&&(n.height=document.body.scrollHeight-n.top-n.bottom),n.top=n.top-o.clientTop,n.left=n.left-o.clientLeft,n.right=e.body.clientWidth-n.width-n.left,n.bottom=e.body.clientHeight-n.height-n.top,n}function f(t){return t.offsetParent||document.documentElement}function l(){var t=document.createElement("div");t.style.width="100%",t.style.height="200px";var e=document.createElement("div");h(e.style,{position:"absolute",top:0,left:0,pointerEvents:"none",visibility:"hidden",width:"200px",height:"150px",overflow:"hidden"}),e.appendChild(t),document.body.appendChild(e);var o=t.offsetWidth;e.style.overflow="scroll";var n=t.offsetWidth;o===n&&(n=e.clientWidth),document.body.removeChild(e);var i=o-n;return{width:i,height:i}}function h(){var t=arguments.length<=0||void 0===arguments[0]?{}:arguments[0],e=[];return Array.prototype.push.apply(e,arguments),e.slice(1).forEach(function(e){if(e)for(var o in e)({}).hasOwnProperty.call(e,o)&&(t[o]=e[o])}),t}function u(t,e){if("undefined"!=typeof t.classList)e.split(" ").forEach(function(e){e.trim()&&t.classList.remove(e)});else{var o=new RegExp("(^| )"+e.split(" ").join("|")+"( |$)","gi"),n=c(t).replace(o," ");g(t,n)}}function d(t,e){if("undefined"!=typeof t.classList)e.split(" ").forEach(function(e){e.trim()&&t.classList.add(e)});else{u(t,e);var o=c(t)+(" "+e);g(t,o)}}function p(t,e){if("undefined"!=typeof t.classList)return t.classList.contains(e);var o=c(t);return new RegExp("(^| )"+e+"( |$)","gi").test(o)}function c(t){return t.className instanceof t.ownerDocument.defaultView.SVGAnimatedString?t.className.baseVal:t.className}function g(t,e){t.setAttribute("class",e)}function m(t,e,o){o.forEach(function(o){-1===e.indexOf(o)&&p(t,o)&&u(t,o)}),e.forEach(function(e){p(t,e)||d(t,e)})}function n(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function v(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e)}function y(t,e){var o=arguments.length<=2||void 0===arguments[2]?1:arguments[2];return t+o>=e&&e>=t-o}function b(){return"undefined"!=typeof performance&&"undefined"!=typeof performance.now?performance.now():+new Date}function w(){for(var t={top:0,left:0},e=arguments.length,o=Array(e),n=0;e>n;n++)o[n]=arguments[n];return o.forEach(function(e){var o=e.top,n=e.left;"string"==typeof o&&(o=parseFloat(o,10)),"string"==typeof n&&(n=parseFloat(n,10)),t.top+=o,t.left+=n}),t}function C(t,e){return"string"==typeof t.left&&-1!==t.left.indexOf("%")&&(t.left=parseFloat(t.left,10)/100*e.width),"string"==typeof t.top&&-1!==t.top.indexOf("%")&&(t.top=parseFloat(t.top,10)/100*e.height),t}function O(t,e){return"scrollParent"===e?e=t.scrollParents[0]:"window"===e&&(e=[pageXOffset,pageYOffset,innerWidth+pageXOffset,innerHeight+pageYOffset]),e===document&&(e=e.documentElement),"undefined"!=typeof e.nodeType&&!function(){var t=e,o=a(e),n=o,i=getComputedStyle(e);if(e=[n.left,n.top,o.width+n.left,o.height+n.top],t.ownerDocument!==document){var r=t.ownerDocument.defaultView;e[0]+=r.pageXOffset,e[1]+=r.pageYOffset,e[2]+=r.pageXOffset,e[3]+=r.pageYOffset}$.forEach(function(t,o){t=t[0].toUpperCase()+t.substr(1),"Top"===t||"Left"===t?e[o]+=parseFloat(i["border"+t+"Width"]):e[o]-=parseFloat(i["border"+t+"Width"])})}(),e}var E=function(){function t(t,e){for(var o=0;o<e.length;o++){var n=e[o];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(t,n.key,n)}}return function(e,o,n){return o&&t(e.prototype,o),n&&t(e,n),e}}(),x=void 0;"undefined"==typeof x&&(x={modules:[]});var A=null,T=function(){var t=0;return function(){return++t}}(),S={},P=function(){var t=A;t||(t=document.createElement("div"),t.setAttribute("data-tether-id",T()),h(t.style,{top:0,left:0,position:"absolute"}),document.body.appendChild(t),A=t);var e=t.getAttribute("data-tether-id");return"undefined"==typeof S[e]&&(S[e]=i(t),M(function(){delete S[e]})),S[e]},W=[],M=function(t){W.push(t)},_=function(){for(var t=void 0;t=W.pop();)t()},k=function(){function t(){n(this,t)}return E(t,[{key:"on",value:function(t,e,o){var n=arguments.length<=3||void 0===arguments[3]?!1:arguments[3];"undefined"==typeof this.bindings&&(this.bindings={}),"undefined"==typeof this.bindings[t]&&(this.bindings[t]=[]),this.bindings[t].push({handler:e,ctx:o,once:n})}},{key:"once",value:function(t,e,o){this.on(t,e,o,!0)}},{key:"off",value:function(t,e){if("undefined"!=typeof this.bindings&&"undefined"!=typeof this.bindings[t])if("undefined"==typeof e)delete this.bindings[t];else for(var o=0;o<this.bindings[t].length;)this.bindings[t][o].handler===e?this.bindings[t].splice(o,1):++o}},{key:"trigger",value:function(t){if("undefined"!=typeof this.bindings&&this.bindings[t]){for(var e=0,o=arguments.length,n=Array(o>1?o-1:0),i=1;o>i;i++)n[i-1]=arguments[i];for(;e<this.bindings[t].length;){var r=this.bindings[t][e],s=r.handler,a=r.ctx,f=r.once,l=a;"undefined"==typeof l&&(l=this),s.apply(l,n),f?this.bindings[t].splice(e,1):++e}}}}]),t}();x.Utils={getActualBoundingClientRect:i,getScrollParents:r,getBounds:a,getOffsetParent:f,extend:h,addClass:d,removeClass:u,hasClass:p,updateClasses:m,defer:M,flush:_,uniqueId:T,Evented:k,getScrollBarSize:l,removeUtilElements:s};var B=function(){function t(t,e){var o=[],n=!0,i=!1,r=void 0;try{for(var s,a=t[Symbol.iterator]();!(n=(s=a.next()).done)&&(o.push(s.value),!e||o.length!==e);n=!0);}catch(f){i=!0,r=f}finally{try{!n&&a["return"]&&a["return"]()}finally{if(i)throw r}}return o}return function(e,o){if(Array.isArray(e))return e;if(Symbol.iterator in Object(e))return t(e,o);throw new TypeError("Invalid attempt to destructure non-iterable instance")}}(),E=function(){function t(t,e){for(var o=0;o<e.length;o++){var n=e[o];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(t,n.key,n)}}return function(e,o,n){return o&&t(e.prototype,o),n&&t(e,n),e}}(),z=function(t,e,o){for(var n=!0;n;){var i=t,r=e,s=o;n=!1,null===i&&(i=Function.prototype);var a=Object.getOwnPropertyDescriptor(i,r);if(void 0!==a){if("value"in a)return a.value;var f=a.get;if(void 0===f)return;return f.call(s)}var l=Object.getPrototypeOf(i);if(null===l)return;t=l,e=r,o=s,n=!0,a=l=void 0}};if("undefined"==typeof x)throw new Error("You must include the utils.js file before tether.js");var j=x.Utils,r=j.getScrollParents,a=j.getBounds,f=j.getOffsetParent,h=j.extend,d=j.addClass,u=j.removeClass,m=j.updateClasses,M=j.defer,_=j.flush,l=j.getScrollBarSize,s=j.removeUtilElements,Y=function(){if("undefined"==typeof document)return"";for(var t=document.createElement("div"),e=["transform","WebkitTransform","OTransform","MozTransform","msTransform"],o=0;o<e.length;++o){var n=e[o];if(void 0!==t.style[n])return n}}(),L=[],D=function(){L.forEach(function(t){t.position(!1)}),_()};!function(){var t=null,e=null,o=null,n=function i(){return"undefined"!=typeof e&&e>16?(e=Math.min(e-16,250),void(o=setTimeout(i,250))):void("undefined"!=typeof t&&b()-t<10||(null!=o&&(clearTimeout(o),o=null),t=b(),D(),e=b()-t))};"undefined"!=typeof window&&"undefined"!=typeof window.addEventListener&&["resize","scroll","touchmove"].forEach(function(t){window.addEventListener(t,n)})}();var X={center:"center",left:"right",right:"left"},F={middle:"middle",top:"bottom",bottom:"top"},H={top:0,left:0,middle:"50%",center:"50%",bottom:"100%",right:"100%"},N=function(t,e){var o=t.left,n=t.top;return"auto"===o&&(o=X[e.left]),"auto"===n&&(n=F[e.top]),{left:o,top:n}},U=function(t){var e=t.left,o=t.top;return"undefined"!=typeof H[t.left]&&(e=H[t.left]),"undefined"!=typeof H[t.top]&&(o=H[t.top]),{left:e,top:o}},V=function(t){var e=t.split(" "),o=B(e,2),n=o[0],i=o[1];return{top:n,left:i}},R=V,q=function(t){function e(t){var o=this;n(this,e),z(Object.getPrototypeOf(e.prototype),"constructor",this).call(this),this.position=this.position.bind(this),L.push(this),this.history=[],this.setOptions(t,!1),x.modules.forEach(function(t){"undefined"!=typeof t.initialize&&t.initialize.call(o)}),this.position()}return v(e,t),E(e,[{key:"getClass",value:function(){var t=arguments.length<=0||void 0===arguments[0]?"":arguments[0],e=this.options.classes;return"undefined"!=typeof e&&e[t]?this.options.classes[t]:this.options.classPrefix?this.options.classPrefix+"-"+t:t}},{key:"setOptions",value:function(t){var e=this,o=arguments.length<=1||void 0===arguments[1]?!0:arguments[1],n={offset:"0 0",targetOffset:"0 0",targetAttachment:"auto auto",classPrefix:"tether"};this.options=h(n,t);var i=this.options,s=i.element,a=i.target,f=i.targetModifier;if(this.element=s,this.target=a,this.targetModifier=f,"viewport"===this.target?(this.target=document.body,this.targetModifier="visible"):"scroll-handle"===this.target&&(this.target=document.body,this.targetModifier="scroll-handle"),["element","target"].forEach(function(t){if("undefined"==typeof e[t])throw new Error("Tether Error: Both element and target must be defined");"undefined"!=typeof e[t].jquery?e[t]=e[t][0]:"string"==typeof e[t]&&(e[t]=document.querySelector(e[t]))}),d(this.element,this.getClass("element")),this.options.addTargetClasses!==!1&&d(this.target,this.getClass("target")),!this.options.attachment)throw new Error("Tether Error: You must provide an attachment");this.targetAttachment=R(this.options.targetAttachment),this.attachment=R(this.options.attachment),this.offset=V(this.options.offset),this.targetOffset=V(this.options.targetOffset),"undefined"!=typeof this.scrollParents&&this.disable(),"scroll-handle"===this.targetModifier?this.scrollParents=[this.target]:this.scrollParents=r(this.target),this.options.enabled!==!1&&this.enable(o)}},{key:"getTargetBounds",value:function(){if("undefined"==typeof this.targetModifier)return a(this.target);if("visible"===this.targetModifier){if(this.target===document.body)return{top:pageYOffset,left:pageXOffset,height:innerHeight,width:innerWidth};var t=a(this.target),e={height:t.height,width:t.width,top:t.top,left:t.left};return e.height=Math.min(e.height,t.height-(pageYOffset-t.top)),e.height=Math.min(e.height,t.height-(t.top+t.height-(pageYOffset+innerHeight))),e.height=Math.min(innerHeight,e.height),e.height-=2,e.width=Math.min(e.width,t.width-(pageXOffset-t.left)),e.width=Math.min(e.width,t.width-(t.left+t.width-(pageXOffset+innerWidth))),e.width=Math.min(innerWidth,e.width),e.width-=2,e.top<pageYOffset&&(e.top=pageYOffset),e.left<pageXOffset&&(e.left=pageXOffset),e}if("scroll-handle"===this.targetModifier){var t=void 0,o=this.target;o===document.body?(o=document.documentElement,t={left:pageXOffset,top:pageYOffset,height:innerHeight,width:innerWidth}):t=a(o);var n=getComputedStyle(o),i=o.scrollWidth>o.clientWidth||[n.overflow,n.overflowX].indexOf("scroll")>=0||this.target!==document.body,r=0;i&&(r=15);var s=t.height-parseFloat(n.borderTopWidth)-parseFloat(n.borderBottomWidth)-r,e={width:15,height:.975*s*(s/o.scrollHeight),left:t.left+t.width-parseFloat(n.borderLeftWidth)-15},f=0;408>s&&this.target===document.body&&(f=-11e-5*Math.pow(s,2)-.00727*s+22.58),this.target!==document.body&&(e.height=Math.max(e.height,24));var l=this.target.scrollTop/(o.scrollHeight-s);return e.top=l*(s-e.height-f)+t.top+parseFloat(n.borderTopWidth),this.target===document.body&&(e.height=Math.max(e.height,24)),e}}},{key:"clearCache",value:function(){this._cache={}}},{key:"cache",value:function(t,e){return"undefined"==typeof this._cache&&(this._cache={}),"undefined"==typeof this._cache[t]&&(this._cache[t]=e.call(this)),this._cache[t]}},{key:"enable",value:function(){var t=this,e=arguments.length<=0||void 0===arguments[0]?!0:arguments[0];this.options.addTargetClasses!==!1&&d(this.target,this.getClass("enabled")),d(this.element,this.getClass("enabled")),this.enabled=!0,this.scrollParents.forEach(function(e){e!==t.target.ownerDocument&&e.addEventListener("scroll",t.position)}),e&&this.position()}},{key:"disable",value:function(){var t=this;u(this.target,this.getClass("enabled")),u(this.element,this.getClass("enabled")),this.enabled=!1,"undefined"!=typeof this.scrollParents&&this.scrollParents.forEach(function(e){e.removeEventListener("scroll",t.position)})}},{key:"destroy",value:function(){var t=this;this.disable(),L.forEach(function(e,o){e===t&&L.splice(o,1)}),0===L.length&&s()}},{key:"updateAttachClasses",value:function(t,e){var o=this;t=t||this.attachment,e=e||this.targetAttachment;var n=["left","top","bottom","right","middle","center"];"undefined"!=typeof this._addAttachClasses&&this._addAttachClasses.length&&this._addAttachClasses.splice(0,this._addAttachClasses.length),"undefined"==typeof this._addAttachClasses&&(this._addAttachClasses=[]);var i=this._addAttachClasses;t.top&&i.push(this.getClass("element-attached")+"-"+t.top),t.left&&i.push(this.getClass("element-attached")+"-"+t.left),e.top&&i.push(this.getClass("target-attached")+"-"+e.top),e.left&&i.push(this.getClass("target-attached")+"-"+e.left);var r=[];n.forEach(function(t){r.push(o.getClass("element-attached")+"-"+t),r.push(o.getClass("target-attached")+"-"+t)}),M(function(){"undefined"!=typeof o._addAttachClasses&&(m(o.element,o._addAttachClasses,r),o.options.addTargetClasses!==!1&&m(o.target,o._addAttachClasses,r),delete o._addAttachClasses)})}},{key:"position",value:function(){var t=this,e=arguments.length<=0||void 0===arguments[0]?!0:arguments[0];if(this.enabled){this.clearCache();var o=N(this.targetAttachment,this.attachment);this.updateAttachClasses(this.attachment,o);var n=this.cache("element-bounds",function(){return a(t.element)}),i=n.width,r=n.height;if(0===i&&0===r&&"undefined"!=typeof this.lastSize){var s=this.lastSize;i=s.width,r=s.height}else this.lastSize={width:i,height:r};var h=this.cache("target-bounds",function(){return t.getTargetBounds()}),u=h,d=C(U(this.attachment),{width:i,height:r}),p=C(U(o),u),c=C(this.offset,{width:i,height:r}),g=C(this.targetOffset,u);d=w(d,c),p=w(p,g);for(var m=h.left+p.left-d.left,v=h.top+p.top-d.top,y=0;y<x.modules.length;++y){var b=x.modules[y],O=b.position.call(this,{left:m,top:v,targetAttachment:o,targetPos:h,elementPos:n,offset:d,targetOffset:p,manualOffset:c,manualTargetOffset:g,scrollbarSize:S,attachment:this.attachment});if(O===!1)return!1;"undefined"!=typeof O&&"object"==typeof O&&(v=O.top,m=O.left)}var E={page:{top:v,left:m},viewport:{top:v-pageYOffset,bottom:pageYOffset-v-r+innerHeight,left:m-pageXOffset,right:pageXOffset-m-i+innerWidth}},A=this.target.ownerDocument,T=A.defaultView,S=void 0;return A.body.scrollWidth>T.innerWidth&&(S=this.cache("scrollbar-size",l),E.viewport.bottom-=S.height),A.body.scrollHeight>T.innerHeight&&(S=this.cache("scrollbar-size",l),E.viewport.right-=S.width),(-1===["","static"].indexOf(A.body.style.position)||-1===["","static"].indexOf(A.body.parentElement.style.position))&&(E.page.bottom=A.body.scrollHeight-v-r,E.page.right=A.body.scrollWidth-m-i),"undefined"!=typeof this.options.optimizations&&this.options.optimizations.moveElement!==!1&&"undefined"==typeof this.targetModifier&&!function(){var e=t.cache("target-offsetparent",function(){return f(t.target)}),o=t.cache("target-offsetparent-bounds",function(){return a(e)}),n=getComputedStyle(e),i=o,r={};if(["Top","Left","Bottom","Right"].forEach(function(t){r[t.toLowerCase()]=parseFloat(n["border"+t+"Width"])}),o.right=A.body.scrollWidth-o.left-i.width+r.right,o.bottom=A.body.scrollHeight-o.top-i.height+r.bottom,E.page.top>=o.top+r.top&&E.page.bottom>=o.bottom&&E.page.left>=o.left+r.left&&E.page.right>=o.right){var s=e.scrollTop,l=e.scrollLeft;E.offset={top:E.page.top-o.top+s-r.top,left:E.page.left-o.left+l-r.left}}}(),this.move(E),this.history.unshift(E),this.history.length>3&&this.history.pop(),e&&_(),!0}}},{key:"move",value:function(t){var e=this;if("undefined"!=typeof this.element.parentNode){var o={};for(var n in t){o[n]={};for(var i in t[n]){for(var r=!1,s=0;s<this.history.length;++s){var a=this.history[s];if("undefined"!=typeof a[n]&&!y(a[n][i],t[n][i])){r=!0;break}}r||(o[n][i]=!0)}}var l={top:"",left:"",right:"",bottom:""},u=function(t,o){var n="undefined"!=typeof e.options.optimizations,i=n?e.options.optimizations.gpu:null;if(i!==!1){var r=void 0,s=void 0;t.top?(l.top=0,r=o.top):(l.bottom=0,r=-o.bottom),t.left?(l.left=0,s=o.left):(l.right=0,s=-o.right),l[Y]="translateX("+Math.round(s)+"px) translateY("+Math.round(r)+"px)","msTransform"!==Y&&(l[Y]+=" translateZ(0)")}else t.top?l.top=o.top+"px":l.bottom=o.bottom+"px",t.left?l.left=o.left+"px":l.right=o.right+"px"},d=!1;if((o.page.top||o.page.bottom)&&(o.page.left||o.page.right)?(l.position="absolute",u(o.page,t.page)):(o.viewport.top||o.viewport.bottom)&&(o.viewport.left||o.viewport.right)?(l.position="fixed",u(o.viewport,t.viewport)):"undefined"!=typeof o.offset&&o.offset.top&&o.offset.left?!function(){l.position="absolute";var n=e.cache("target-offsetparent",function(){return f(e.target)});f(e.element)!==n&&M(function(){e.element.parentNode.removeChild(e.element),n.appendChild(e.element)}),u(o.offset,t.offset),d=!0}():(l.position="absolute",u({top:!0,left:!0},t.page)),!d){for(var p=!0,c=this.element.parentNode;c&&1===c.nodeType&&"BODY"!==c.tagName;){if("static"!==getComputedStyle(c).position){p=!1;break}c=c.parentNode}p||(this.element.parentNode.removeChild(this.element),this.element.ownerDocument.body.appendChild(this.element))}var g={},m=!1;for(var i in l){var v=l[i],b=this.element.style[i];b!==v&&(m=!0,g[i]=v)}m&&M(function(){h(e.element.style,g)})}}}]),e}(k);q.modules=[],x.position=D;var I=h(q,x),B=function(){function t(t,e){var o=[],n=!0,i=!1,r=void 0;try{for(var s,a=t[Symbol.iterator]();!(n=(s=a.next()).done)&&(o.push(s.value),!e||o.length!==e);n=!0);}catch(f){i=!0,r=f}finally{try{!n&&a["return"]&&a["return"]()}finally{if(i)throw r}}return o}return function(e,o){if(Array.isArray(e))return e;if(Symbol.iterator in Object(e))return t(e,o);throw new TypeError("Invalid attempt to destructure non-iterable instance")}}(),j=x.Utils,a=j.getBounds,h=j.extend,m=j.updateClasses,M=j.defer,$=["left","top","right","bottom"];x.modules.push({position:function(t){var e=this,o=t.top,n=t.left,i=t.targetAttachment;if(!this.options.constraints)return!0;var r=this.cache("element-bounds",function(){return a(e.element)}),s=r.height,f=r.width;if(0===f&&0===s&&"undefined"!=typeof this.lastSize){var l=this.lastSize;f=l.width,s=l.height}var u=this.cache("target-bounds",function(){return e.getTargetBounds()}),d=u.height,p=u.width,c=[this.getClass("pinned"),this.getClass("out-of-bounds")];this.options.constraints.forEach(function(t){var e=t.outOfBoundsClass,o=t.pinnedClass;e&&c.push(e),o&&c.push(o)}),c.forEach(function(t){["left","top","right","bottom"].forEach(function(e){c.push(t+"-"+e)})});var g=[],v=h({},i),y=h({},this.attachment);return this.options.constraints.forEach(function(t){var r=t.to,a=t.attachment,l=t.pin;"undefined"==typeof a&&(a="");var h=void 0,u=void 0;if(a.indexOf(" ")>=0){var c=a.split(" "),m=B(c,2);u=m[0],h=m[1]}else h=u=a;var b=O(e,r);("target"===u||"both"===u)&&(o<b[1]&&"top"===v.top&&(o+=d,v.top="bottom"),o+s>b[3]&&"bottom"===v.top&&(o-=d,v.top="top")),"together"===u&&("top"===v.top&&("bottom"===y.top&&o<b[1]?(o+=d,v.top="bottom",o+=s,y.top="top"):"top"===y.top&&o+s>b[3]&&o-(s-d)>=b[1]&&(o-=s-d,v.top="bottom",y.top="bottom")),"bottom"===v.top&&("top"===y.top&&o+s>b[3]?(o-=d,v.top="top",o-=s,y.top="bottom"):"bottom"===y.top&&o<b[1]&&o+(2*s-d)<=b[3]&&(o+=s-d,v.top="top",y.top="top")),"middle"===v.top&&(o+s>b[3]&&"top"===y.top?(o-=s,y.top="bottom"):o<b[1]&&"bottom"===y.top&&(o+=s,y.top="top"))),("target"===h||"both"===h)&&(n<b[0]&&"left"===v.left&&(n+=p,v.left="right"),n+f>b[2]&&"right"===v.left&&(n-=p,v.left="left")),"together"===h&&(n<b[0]&&"left"===v.left?"right"===y.left?(n+=p,v.left="right",n+=f,y.left="left"):"left"===y.left&&(n+=p,v.left="right",n-=f,y.left="right"):n+f>b[2]&&"right"===v.left?"left"===y.left?(n-=p,v.left="left",n-=f,y.left="right"):"right"===y.left&&(n-=p,v.left="left",n+=f,y.left="left"):"center"===v.left&&(n+f>b[2]&&"left"===y.left?(n-=f,y.left="right"):n<b[0]&&"right"===y.left&&(n+=f,y.left="left"))),("element"===u||"both"===u)&&(o<b[1]&&"bottom"===y.top&&(o+=s,y.top="top"),o+s>b[3]&&"top"===y.top&&(o-=s,y.top="bottom")),("element"===h||"both"===h)&&(n<b[0]&&("right"===y.left?(n+=f,y.left="left"):"center"===y.left&&(n+=f/2,y.left="left")),n+f>b[2]&&("left"===y.left?(n-=f,y.left="right"):"center"===y.left&&(n-=f/2,y.left="right"))),"string"==typeof l?l=l.split(",").map(function(t){return t.trim()}):l===!0&&(l=["top","left","right","bottom"]),l=l||[];var w=[],C=[];o<b[1]&&(l.indexOf("top")>=0?(o=b[1],w.push("top")):C.push("top")),o+s>b[3]&&(l.indexOf("bottom")>=0?(o=b[3]-s,w.push("bottom")):C.push("bottom")),n<b[0]&&(l.indexOf("left")>=0?(n=b[0],w.push("left")):C.push("left")),n+f>b[2]&&(l.indexOf("right")>=0?(n=b[2]-f,w.push("right")):C.push("right")),w.length&&!function(){var t=void 0;t="undefined"!=typeof e.options.pinnedClass?e.options.pinnedClass:e.getClass("pinned"),g.push(t),w.forEach(function(e){g.push(t+"-"+e)})}(),C.length&&!function(){var t=void 0;t="undefined"!=typeof e.options.outOfBoundsClass?e.options.outOfBoundsClass:e.getClass("out-of-bounds"),g.push(t),C.forEach(function(e){g.push(t+"-"+e)})}(),(w.indexOf("left")>=0||w.indexOf("right")>=0)&&(y.left=v.left=!1),(w.indexOf("top")>=0||w.indexOf("bottom")>=0)&&(y.top=v.top=!1),(v.top!==i.top||v.left!==i.left||y.top!==e.attachment.top||y.left!==e.attachment.left)&&(e.updateAttachClasses(y,v),e.trigger("update",{attachment:y,targetAttachment:v}))}),M(function(){e.options.addTargetClasses!==!1&&m(e.target,g,c),m(e.element,g,c)}),{top:o,left:n}}});var j=x.Utils,a=j.getBounds,m=j.updateClasses,M=j.defer;x.modules.push({position:function(t){var e=this,o=t.top,n=t.left,i=this.cache("element-bounds",function(){return a(e.element)}),r=i.height,s=i.width,f=this.getTargetBounds(),l=o+r,h=n+s,u=[];o<=f.bottom&&l>=f.top&&["left","right"].forEach(function(t){var e=f[t];(e===n||e===h)&&u.push(t)}),n<=f.right&&h>=f.left&&["top","bottom"].forEach(function(t){var e=f[t];(e===o||e===l)&&u.push(t)});var d=[],p=[],c=["left","top","right","bottom"];return d.push(this.getClass("abutted")),c.forEach(function(t){d.push(e.getClass("abutted")+"-"+t)}),u.length&&p.push(this.getClass("abutted")),u.forEach(function(t){p.push(e.getClass("abutted")+"-"+t)}),M(function(){e.options.addTargetClasses!==!1&&m(e.target,p,d),m(e.element,p,d)}),!0}});var B=function(){function t(t,e){var o=[],n=!0,i=!1,r=void 0;try{for(var s,a=t[Symbol.iterator]();!(n=(s=a.next()).done)&&(o.push(s.value),!e||o.length!==e);n=!0);}catch(f){i=!0,r=f}finally{try{!n&&a["return"]&&a["return"]()}finally{if(i)throw r}}return o}return function(e,o){if(Array.isArray(e))return e;if(Symbol.iterator in Object(e))return t(e,o);throw new TypeError("Invalid attempt to destructure non-iterable instance")}}();return x.modules.push({position:function(t){var e=t.top,o=t.left;if(this.options.shift){var n=this.options.shift;"function"==typeof this.options.shift&&(n=this.options.shift.call(this,{top:e,left:o}));var i=void 0,r=void 0;if("string"==typeof n){n=n.split(" "),n[1]=n[1]||n[0];var s=n,a=B(s,2);i=a[0],r=a[1],i=parseFloat(i,10),r=parseFloat(r,10)}else i=n.top,r=n.left;return e+=i,o+=r,{top:e,left:o}}}}),I}); -/*! - * Bootstrap v4.0.0-alpha.6 (https://getbootstrap.com) - * Copyright 2011-2017 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors) - * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) - */ -if("undefined"==typeof jQuery)throw new Error("Bootstrap's JavaScript requires jQuery. jQuery must be included before Bootstrap's JavaScript.");+function(t){var e=t.fn.jquery.split(" ")[0].split(".");if(e[0]<2&&e[1]<9||1==e[0]&&9==e[1]&&e[2]<1||e[0]>=4)throw new Error("Bootstrap's JavaScript requires at least jQuery v1.9.1 but less than v4.0.0")}(jQuery),+function(){function t(t,e){if(!t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!e||"object"!=typeof e&&"function"!=typeof e?t:e}function e(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e)}function n(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}var i="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},o=function(){function t(t,e){for(var n=0;n<e.length;n++){var i=e[n];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(t,i.key,i)}}return function(e,n,i){return n&&t(e.prototype,n),i&&t(e,i),e}}(),r=function(t){function e(t){return{}.toString.call(t).match(/\s([a-zA-Z]+)/)[1].toLowerCase()}function n(t){return(t[0]||t).nodeType}function i(){return{bindType:a.end,delegateType:a.end,handle:function(e){if(t(e.target).is(this))return e.handleObj.handler.apply(this,arguments)}}}function o(){if(window.QUnit)return!1;var t=document.createElement("bootstrap");for(var e in h)if(void 0!==t.style[e])return{end:h[e]};return!1}function r(e){var n=this,i=!1;return t(this).one(c.TRANSITION_END,function(){i=!0}),setTimeout(function(){i||c.triggerTransitionEnd(n)},e),this}function s(){a=o(),t.fn.emulateTransitionEnd=r,c.supportsTransitionEnd()&&(t.event.special[c.TRANSITION_END]=i())}var a=!1,l=1e6,h={WebkitTransition:"webkitTransitionEnd",MozTransition:"transitionend",OTransition:"oTransitionEnd otransitionend",transition:"transitionend"},c={TRANSITION_END:"bsTransitionEnd",getUID:function(t){do t+=~~(Math.random()*l);while(document.getElementById(t));return t},getSelectorFromElement:function(t){var e=t.getAttribute("data-target");return e||(e=t.getAttribute("href")||"",e=/^#[a-z]/i.test(e)?e:null),e},reflow:function(t){return t.offsetHeight},triggerTransitionEnd:function(e){t(e).trigger(a.end)},supportsTransitionEnd:function(){return Boolean(a)},typeCheckConfig:function(t,i,o){for(var r in o)if(o.hasOwnProperty(r)){var s=o[r],a=i[r],l=a&&n(a)?"element":e(a);if(!new RegExp(s).test(l))throw new Error(t.toUpperCase()+": "+('Option "'+r+'" provided type "'+l+'" ')+('but expected type "'+s+'".'))}}};return s(),c}(jQuery),s=(function(t){var e="alert",i="4.0.0-alpha.6",s="bs.alert",a="."+s,l=".data-api",h=t.fn[e],c=150,u={DISMISS:'[data-dismiss="alert"]'},d={CLOSE:"close"+a,CLOSED:"closed"+a,CLICK_DATA_API:"click"+a+l},f={ALERT:"alert",FADE:"fade",SHOW:"show"},_=function(){function e(t){n(this,e),this._element=t}return e.prototype.close=function(t){t=t||this._element;var e=this._getRootElement(t),n=this._triggerCloseEvent(e);n.isDefaultPrevented()||this._removeElement(e)},e.prototype.dispose=function(){t.removeData(this._element,s),this._element=null},e.prototype._getRootElement=function(e){var n=r.getSelectorFromElement(e),i=!1;return n&&(i=t(n)[0]),i||(i=t(e).closest("."+f.ALERT)[0]),i},e.prototype._triggerCloseEvent=function(e){var n=t.Event(d.CLOSE);return t(e).trigger(n),n},e.prototype._removeElement=function(e){var n=this;return t(e).removeClass(f.SHOW),r.supportsTransitionEnd()&&t(e).hasClass(f.FADE)?void t(e).one(r.TRANSITION_END,function(t){return n._destroyElement(e,t)}).emulateTransitionEnd(c):void this._destroyElement(e)},e.prototype._destroyElement=function(e){t(e).detach().trigger(d.CLOSED).remove()},e._jQueryInterface=function(n){return this.each(function(){var i=t(this),o=i.data(s);o||(o=new e(this),i.data(s,o)),"close"===n&&o[n](this)})},e._handleDismiss=function(t){return function(e){e&&e.preventDefault(),t.close(this)}},o(e,null,[{key:"VERSION",get:function(){return i}}]),e}();return t(document).on(d.CLICK_DATA_API,u.DISMISS,_._handleDismiss(new _)),t.fn[e]=_._jQueryInterface,t.fn[e].Constructor=_,t.fn[e].noConflict=function(){return t.fn[e]=h,_._jQueryInterface},_}(jQuery),function(t){var e="button",i="4.0.0-alpha.6",r="bs.button",s="."+r,a=".data-api",l=t.fn[e],h={ACTIVE:"active",BUTTON:"btn",FOCUS:"focus"},c={DATA_TOGGLE_CARROT:'[data-toggle^="button"]',DATA_TOGGLE:'[data-toggle="buttons"]',INPUT:"input",ACTIVE:".active",BUTTON:".btn"},u={CLICK_DATA_API:"click"+s+a,FOCUS_BLUR_DATA_API:"focus"+s+a+" "+("blur"+s+a)},d=function(){function e(t){n(this,e),this._element=t}return e.prototype.toggle=function(){var e=!0,n=t(this._element).closest(c.DATA_TOGGLE)[0];if(n){var i=t(this._element).find(c.INPUT)[0];if(i){if("radio"===i.type)if(i.checked&&t(this._element).hasClass(h.ACTIVE))e=!1;else{var o=t(n).find(c.ACTIVE)[0];o&&t(o).removeClass(h.ACTIVE)}e&&(i.checked=!t(this._element).hasClass(h.ACTIVE),t(i).trigger("change")),i.focus()}}this._element.setAttribute("aria-pressed",!t(this._element).hasClass(h.ACTIVE)),e&&t(this._element).toggleClass(h.ACTIVE)},e.prototype.dispose=function(){t.removeData(this._element,r),this._element=null},e._jQueryInterface=function(n){return this.each(function(){var i=t(this).data(r);i||(i=new e(this),t(this).data(r,i)),"toggle"===n&&i[n]()})},o(e,null,[{key:"VERSION",get:function(){return i}}]),e}();return t(document).on(u.CLICK_DATA_API,c.DATA_TOGGLE_CARROT,function(e){e.preventDefault();var n=e.target;t(n).hasClass(h.BUTTON)||(n=t(n).closest(c.BUTTON)),d._jQueryInterface.call(t(n),"toggle")}).on(u.FOCUS_BLUR_DATA_API,c.DATA_TOGGLE_CARROT,function(e){var n=t(e.target).closest(c.BUTTON)[0];t(n).toggleClass(h.FOCUS,/^focus(in)?$/.test(e.type))}),t.fn[e]=d._jQueryInterface,t.fn[e].Constructor=d,t.fn[e].noConflict=function(){return t.fn[e]=l,d._jQueryInterface},d}(jQuery),function(t){var e="carousel",s="4.0.0-alpha.6",a="bs.carousel",l="."+a,h=".data-api",c=t.fn[e],u=600,d=37,f=39,_={interval:5e3,keyboard:!0,slide:!1,pause:"hover",wrap:!0},g={interval:"(number|boolean)",keyboard:"boolean",slide:"(boolean|string)",pause:"(string|boolean)",wrap:"boolean"},p={NEXT:"next",PREV:"prev",LEFT:"left",RIGHT:"right"},m={SLIDE:"slide"+l,SLID:"slid"+l,KEYDOWN:"keydown"+l,MOUSEENTER:"mouseenter"+l,MOUSELEAVE:"mouseleave"+l,LOAD_DATA_API:"load"+l+h,CLICK_DATA_API:"click"+l+h},E={CAROUSEL:"carousel",ACTIVE:"active",SLIDE:"slide",RIGHT:"carousel-item-right",LEFT:"carousel-item-left",NEXT:"carousel-item-next",PREV:"carousel-item-prev",ITEM:"carousel-item"},v={ACTIVE:".active",ACTIVE_ITEM:".active.carousel-item",ITEM:".carousel-item",NEXT_PREV:".carousel-item-next, .carousel-item-prev",INDICATORS:".carousel-indicators",DATA_SLIDE:"[data-slide], [data-slide-to]",DATA_RIDE:'[data-ride="carousel"]'},T=function(){function h(e,i){n(this,h),this._items=null,this._interval=null,this._activeElement=null,this._isPaused=!1,this._isSliding=!1,this._config=this._getConfig(i),this._element=t(e)[0],this._indicatorsElement=t(this._element).find(v.INDICATORS)[0],this._addEventListeners()}return h.prototype.next=function(){if(this._isSliding)throw new Error("Carousel is sliding");this._slide(p.NEXT)},h.prototype.nextWhenVisible=function(){document.hidden||this.next()},h.prototype.prev=function(){if(this._isSliding)throw new Error("Carousel is sliding");this._slide(p.PREVIOUS)},h.prototype.pause=function(e){e||(this._isPaused=!0),t(this._element).find(v.NEXT_PREV)[0]&&r.supportsTransitionEnd()&&(r.triggerTransitionEnd(this._element),this.cycle(!0)),clearInterval(this._interval),this._interval=null},h.prototype.cycle=function(t){t||(this._isPaused=!1),this._interval&&(clearInterval(this._interval),this._interval=null),this._config.interval&&!this._isPaused&&(this._interval=setInterval((document.visibilityState?this.nextWhenVisible:this.next).bind(this),this._config.interval))},h.prototype.to=function(e){var n=this;this._activeElement=t(this._element).find(v.ACTIVE_ITEM)[0];var i=this._getItemIndex(this._activeElement);if(!(e>this._items.length-1||e<0)){if(this._isSliding)return void t(this._element).one(m.SLID,function(){return n.to(e)});if(i===e)return this.pause(),void this.cycle();var o=e>i?p.NEXT:p.PREVIOUS;this._slide(o,this._items[e])}},h.prototype.dispose=function(){t(this._element).off(l),t.removeData(this._element,a),this._items=null,this._config=null,this._element=null,this._interval=null,this._isPaused=null,this._isSliding=null,this._activeElement=null,this._indicatorsElement=null},h.prototype._getConfig=function(n){return n=t.extend({},_,n),r.typeCheckConfig(e,n,g),n},h.prototype._addEventListeners=function(){var e=this;this._config.keyboard&&t(this._element).on(m.KEYDOWN,function(t){return e._keydown(t)}),"hover"!==this._config.pause||"ontouchstart"in document.documentElement||t(this._element).on(m.MOUSEENTER,function(t){return e.pause(t)}).on(m.MOUSELEAVE,function(t){return e.cycle(t)})},h.prototype._keydown=function(t){if(!/input|textarea/i.test(t.target.tagName))switch(t.which){case d:t.preventDefault(),this.prev();break;case f:t.preventDefault(),this.next();break;default:return}},h.prototype._getItemIndex=function(e){return this._items=t.makeArray(t(e).parent().find(v.ITEM)),this._items.indexOf(e)},h.prototype._getItemByDirection=function(t,e){var n=t===p.NEXT,i=t===p.PREVIOUS,o=this._getItemIndex(e),r=this._items.length-1,s=i&&0===o||n&&o===r;if(s&&!this._config.wrap)return e;var a=t===p.PREVIOUS?-1:1,l=(o+a)%this._items.length;return l===-1?this._items[this._items.length-1]:this._items[l]},h.prototype._triggerSlideEvent=function(e,n){var i=t.Event(m.SLIDE,{relatedTarget:e,direction:n});return t(this._element).trigger(i),i},h.prototype._setActiveIndicatorElement=function(e){if(this._indicatorsElement){t(this._indicatorsElement).find(v.ACTIVE).removeClass(E.ACTIVE);var n=this._indicatorsElement.children[this._getItemIndex(e)];n&&t(n).addClass(E.ACTIVE)}},h.prototype._slide=function(e,n){var i=this,o=t(this._element).find(v.ACTIVE_ITEM)[0],s=n||o&&this._getItemByDirection(e,o),a=Boolean(this._interval),l=void 0,h=void 0,c=void 0;if(e===p.NEXT?(l=E.LEFT,h=E.NEXT,c=p.LEFT):(l=E.RIGHT,h=E.PREV,c=p.RIGHT),s&&t(s).hasClass(E.ACTIVE))return void(this._isSliding=!1);var d=this._triggerSlideEvent(s,c);if(!d.isDefaultPrevented()&&o&&s){this._isSliding=!0,a&&this.pause(),this._setActiveIndicatorElement(s);var f=t.Event(m.SLID,{relatedTarget:s,direction:c});r.supportsTransitionEnd()&&t(this._element).hasClass(E.SLIDE)?(t(s).addClass(h),r.reflow(s),t(o).addClass(l),t(s).addClass(l),t(o).one(r.TRANSITION_END,function(){t(s).removeClass(l+" "+h).addClass(E.ACTIVE),t(o).removeClass(E.ACTIVE+" "+h+" "+l),i._isSliding=!1,setTimeout(function(){return t(i._element).trigger(f)},0)}).emulateTransitionEnd(u)):(t(o).removeClass(E.ACTIVE),t(s).addClass(E.ACTIVE),this._isSliding=!1,t(this._element).trigger(f)),a&&this.cycle()}},h._jQueryInterface=function(e){return this.each(function(){var n=t(this).data(a),o=t.extend({},_,t(this).data());"object"===("undefined"==typeof e?"undefined":i(e))&&t.extend(o,e);var r="string"==typeof e?e:o.slide;if(n||(n=new h(this,o),t(this).data(a,n)),"number"==typeof e)n.to(e);else if("string"==typeof r){if(void 0===n[r])throw new Error('No method named "'+r+'"');n[r]()}else o.interval&&(n.pause(),n.cycle())})},h._dataApiClickHandler=function(e){var n=r.getSelectorFromElement(this);if(n){var i=t(n)[0];if(i&&t(i).hasClass(E.CAROUSEL)){var o=t.extend({},t(i).data(),t(this).data()),s=this.getAttribute("data-slide-to");s&&(o.interval=!1),h._jQueryInterface.call(t(i),o),s&&t(i).data(a).to(s),e.preventDefault()}}},o(h,null,[{key:"VERSION",get:function(){return s}},{key:"Default",get:function(){return _}}]),h}();return t(document).on(m.CLICK_DATA_API,v.DATA_SLIDE,T._dataApiClickHandler),t(window).on(m.LOAD_DATA_API,function(){t(v.DATA_RIDE).each(function(){var e=t(this);T._jQueryInterface.call(e,e.data())})}),t.fn[e]=T._jQueryInterface,t.fn[e].Constructor=T,t.fn[e].noConflict=function(){return t.fn[e]=c,T._jQueryInterface},T}(jQuery),function(t){var e="collapse",s="4.0.0-alpha.6",a="bs.collapse",l="."+a,h=".data-api",c=t.fn[e],u=600,d={toggle:!0,parent:""},f={toggle:"boolean",parent:"string"},_={SHOW:"show"+l,SHOWN:"shown"+l,HIDE:"hide"+l,HIDDEN:"hidden"+l,CLICK_DATA_API:"click"+l+h},g={SHOW:"show",COLLAPSE:"collapse",COLLAPSING:"collapsing",COLLAPSED:"collapsed"},p={WIDTH:"width",HEIGHT:"height"},m={ACTIVES:".card > .show, .card > .collapsing",DATA_TOGGLE:'[data-toggle="collapse"]'},E=function(){function l(e,i){n(this,l),this._isTransitioning=!1,this._element=e,this._config=this._getConfig(i),this._triggerArray=t.makeArray(t('[data-toggle="collapse"][href="#'+e.id+'"],'+('[data-toggle="collapse"][data-target="#'+e.id+'"]'))),this._parent=this._config.parent?this._getParent():null,this._config.parent||this._addAriaAndCollapsedClass(this._element,this._triggerArray),this._config.toggle&&this.toggle()}return l.prototype.toggle=function(){t(this._element).hasClass(g.SHOW)?this.hide():this.show()},l.prototype.show=function(){var e=this;if(this._isTransitioning)throw new Error("Collapse is transitioning");if(!t(this._element).hasClass(g.SHOW)){var n=void 0,i=void 0;if(this._parent&&(n=t.makeArray(t(this._parent).find(m.ACTIVES)),n.length||(n=null)),!(n&&(i=t(n).data(a),i&&i._isTransitioning))){var o=t.Event(_.SHOW);if(t(this._element).trigger(o),!o.isDefaultPrevented()){n&&(l._jQueryInterface.call(t(n),"hide"),i||t(n).data(a,null));var s=this._getDimension();t(this._element).removeClass(g.COLLAPSE).addClass(g.COLLAPSING),this._element.style[s]=0,this._element.setAttribute("aria-expanded",!0),this._triggerArray.length&&t(this._triggerArray).removeClass(g.COLLAPSED).attr("aria-expanded",!0),this.setTransitioning(!0);var h=function(){t(e._element).removeClass(g.COLLAPSING).addClass(g.COLLAPSE).addClass(g.SHOW),e._element.style[s]="",e.setTransitioning(!1),t(e._element).trigger(_.SHOWN)};if(!r.supportsTransitionEnd())return void h();var c=s[0].toUpperCase()+s.slice(1),d="scroll"+c;t(this._element).one(r.TRANSITION_END,h).emulateTransitionEnd(u),this._element.style[s]=this._element[d]+"px"}}}},l.prototype.hide=function(){var e=this;if(this._isTransitioning)throw new Error("Collapse is transitioning");if(t(this._element).hasClass(g.SHOW)){var n=t.Event(_.HIDE);if(t(this._element).trigger(n),!n.isDefaultPrevented()){var i=this._getDimension(),o=i===p.WIDTH?"offsetWidth":"offsetHeight";this._element.style[i]=this._element[o]+"px",r.reflow(this._element),t(this._element).addClass(g.COLLAPSING).removeClass(g.COLLAPSE).removeClass(g.SHOW),this._element.setAttribute("aria-expanded",!1),this._triggerArray.length&&t(this._triggerArray).addClass(g.COLLAPSED).attr("aria-expanded",!1),this.setTransitioning(!0);var s=function(){e.setTransitioning(!1),t(e._element).removeClass(g.COLLAPSING).addClass(g.COLLAPSE).trigger(_.HIDDEN)};return this._element.style[i]="",r.supportsTransitionEnd()?void t(this._element).one(r.TRANSITION_END,s).emulateTransitionEnd(u):void s()}}},l.prototype.setTransitioning=function(t){this._isTransitioning=t},l.prototype.dispose=function(){t.removeData(this._element,a),this._config=null,this._parent=null,this._element=null,this._triggerArray=null,this._isTransitioning=null},l.prototype._getConfig=function(n){return n=t.extend({},d,n),n.toggle=Boolean(n.toggle),r.typeCheckConfig(e,n,f),n},l.prototype._getDimension=function(){var e=t(this._element).hasClass(p.WIDTH);return e?p.WIDTH:p.HEIGHT},l.prototype._getParent=function(){var e=this,n=t(this._config.parent)[0],i='[data-toggle="collapse"][data-parent="'+this._config.parent+'"]';return t(n).find(i).each(function(t,n){e._addAriaAndCollapsedClass(l._getTargetFromElement(n),[n])}),n},l.prototype._addAriaAndCollapsedClass=function(e,n){if(e){var i=t(e).hasClass(g.SHOW);e.setAttribute("aria-expanded",i),n.length&&t(n).toggleClass(g.COLLAPSED,!i).attr("aria-expanded",i)}},l._getTargetFromElement=function(e){var n=r.getSelectorFromElement(e);return n?t(n)[0]:null},l._jQueryInterface=function(e){return this.each(function(){var n=t(this),o=n.data(a),r=t.extend({},d,n.data(),"object"===("undefined"==typeof e?"undefined":i(e))&&e);if(!o&&r.toggle&&/show|hide/.test(e)&&(r.toggle=!1),o||(o=new l(this,r),n.data(a,o)),"string"==typeof e){if(void 0===o[e])throw new Error('No method named "'+e+'"');o[e]()}})},o(l,null,[{key:"VERSION",get:function(){return s}},{key:"Default",get:function(){return d}}]),l}();return t(document).on(_.CLICK_DATA_API,m.DATA_TOGGLE,function(e){e.preventDefault();var n=E._getTargetFromElement(this),i=t(n).data(a),o=i?"toggle":t(this).data();E._jQueryInterface.call(t(n),o)}),t.fn[e]=E._jQueryInterface,t.fn[e].Constructor=E,t.fn[e].noConflict=function(){return t.fn[e]=c,E._jQueryInterface},E}(jQuery),function(t){var e="dropdown",i="4.0.0-alpha.6",s="bs.dropdown",a="."+s,l=".data-api",h=t.fn[e],c=27,u=38,d=40,f=3,_={HIDE:"hide"+a,HIDDEN:"hidden"+a,SHOW:"show"+a,SHOWN:"shown"+a,CLICK:"click"+a,CLICK_DATA_API:"click"+a+l,FOCUSIN_DATA_API:"focusin"+a+l,KEYDOWN_DATA_API:"keydown"+a+l},g={BACKDROP:"dropdown-backdrop",DISABLED:"disabled",SHOW:"show"},p={BACKDROP:".dropdown-backdrop",DATA_TOGGLE:'[data-toggle="dropdown"]',FORM_CHILD:".dropdown form",ROLE_MENU:'[role="menu"]',ROLE_LISTBOX:'[role="listbox"]',NAVBAR_NAV:".navbar-nav",VISIBLE_ITEMS:'[role="menu"] li:not(.disabled) a, [role="listbox"] li:not(.disabled) a'},m=function(){function e(t){n(this,e),this._element=t,this._addEventListeners()}return e.prototype.toggle=function(){if(this.disabled||t(this).hasClass(g.DISABLED))return!1;var n=e._getParentFromElement(this),i=t(n).hasClass(g.SHOW);if(e._clearMenus(),i)return!1;if("ontouchstart"in document.documentElement&&!t(n).closest(p.NAVBAR_NAV).length){var o=document.createElement("div");o.className=g.BACKDROP,t(o).insertBefore(this),t(o).on("click",e._clearMenus)}var r={relatedTarget:this},s=t.Event(_.SHOW,r);return t(n).trigger(s),!s.isDefaultPrevented()&&(this.focus(),this.setAttribute("aria-expanded",!0),t(n).toggleClass(g.SHOW),t(n).trigger(t.Event(_.SHOWN,r)),!1)},e.prototype.dispose=function(){t.removeData(this._element,s),t(this._element).off(a),this._element=null},e.prototype._addEventListeners=function(){t(this._element).on(_.CLICK,this.toggle)},e._jQueryInterface=function(n){return this.each(function(){var i=t(this).data(s);if(i||(i=new e(this),t(this).data(s,i)),"string"==typeof n){if(void 0===i[n])throw new Error('No method named "'+n+'"');i[n].call(this)}})},e._clearMenus=function(n){if(!n||n.which!==f){var i=t(p.BACKDROP)[0];i&&i.parentNode.removeChild(i);for(var o=t.makeArray(t(p.DATA_TOGGLE)),r=0;r<o.length;r++){var s=e._getParentFromElement(o[r]),a={relatedTarget:o[r]};if(t(s).hasClass(g.SHOW)&&!(n&&("click"===n.type&&/input|textarea/i.test(n.target.tagName)||"focusin"===n.type)&&t.contains(s,n.target))){var l=t.Event(_.HIDE,a);t(s).trigger(l),l.isDefaultPrevented()||(o[r].setAttribute("aria-expanded","false"),t(s).removeClass(g.SHOW).trigger(t.Event(_.HIDDEN,a)))}}}},e._getParentFromElement=function(e){var n=void 0,i=r.getSelectorFromElement(e);return i&&(n=t(i)[0]),n||e.parentNode},e._dataApiKeydownHandler=function(n){if(/(38|40|27|32)/.test(n.which)&&!/input|textarea/i.test(n.target.tagName)&&(n.preventDefault(),n.stopPropagation(),!this.disabled&&!t(this).hasClass(g.DISABLED))){var i=e._getParentFromElement(this),o=t(i).hasClass(g.SHOW);if(!o&&n.which!==c||o&&n.which===c){if(n.which===c){var r=t(i).find(p.DATA_TOGGLE)[0];t(r).trigger("focus")}return void t(this).trigger("click")}var s=t(i).find(p.VISIBLE_ITEMS).get();if(s.length){var a=s.indexOf(n.target);n.which===u&&a>0&&a--,n.which===d&&a<s.length-1&&a++,a<0&&(a=0),s[a].focus()}}},o(e,null,[{key:"VERSION",get:function(){return i}}]),e}();return t(document).on(_.KEYDOWN_DATA_API,p.DATA_TOGGLE,m._dataApiKeydownHandler).on(_.KEYDOWN_DATA_API,p.ROLE_MENU,m._dataApiKeydownHandler).on(_.KEYDOWN_DATA_API,p.ROLE_LISTBOX,m._dataApiKeydownHandler).on(_.CLICK_DATA_API+" "+_.FOCUSIN_DATA_API,m._clearMenus).on(_.CLICK_DATA_API,p.DATA_TOGGLE,m.prototype.toggle).on(_.CLICK_DATA_API,p.FORM_CHILD,function(t){t.stopPropagation()}),t.fn[e]=m._jQueryInterface,t.fn[e].Constructor=m,t.fn[e].noConflict=function(){return t.fn[e]=h,m._jQueryInterface},m}(jQuery),function(t){var e="modal",s="4.0.0-alpha.6",a="bs.modal",l="."+a,h=".data-api",c=t.fn[e],u=300,d=150,f=27,_={backdrop:!0,keyboard:!0,focus:!0,show:!0},g={backdrop:"(boolean|string)",keyboard:"boolean",focus:"boolean",show:"boolean"},p={HIDE:"hide"+l,HIDDEN:"hidden"+l,SHOW:"show"+l,SHOWN:"shown"+l,FOCUSIN:"focusin"+l,RESIZE:"resize"+l,CLICK_DISMISS:"click.dismiss"+l,KEYDOWN_DISMISS:"keydown.dismiss"+l,MOUSEUP_DISMISS:"mouseup.dismiss"+l,MOUSEDOWN_DISMISS:"mousedown.dismiss"+l,CLICK_DATA_API:"click"+l+h},m={SCROLLBAR_MEASURER:"modal-scrollbar-measure",BACKDROP:"modal-backdrop",OPEN:"modal-open",FADE:"fade",SHOW:"show"},E={DIALOG:".modal-dialog",DATA_TOGGLE:'[data-toggle="modal"]',DATA_DISMISS:'[data-dismiss="modal"]',FIXED_CONTENT:".fixed-top, .fixed-bottom, .is-fixed, .sticky-top"},v=function(){function h(e,i){n(this,h),this._config=this._getConfig(i),this._element=e,this._dialog=t(e).find(E.DIALOG)[0],this._backdrop=null,this._isShown=!1,this._isBodyOverflowing=!1,this._ignoreBackdropClick=!1,this._isTransitioning=!1,this._originalBodyPadding=0,this._scrollbarWidth=0}return h.prototype.toggle=function(t){return this._isShown?this.hide():this.show(t)},h.prototype.show=function(e){var n=this;if(this._isTransitioning)throw new Error("Modal is transitioning");r.supportsTransitionEnd()&&t(this._element).hasClass(m.FADE)&&(this._isTransitioning=!0);var i=t.Event(p.SHOW,{relatedTarget:e});t(this._element).trigger(i),this._isShown||i.isDefaultPrevented()||(this._isShown=!0,this._checkScrollbar(),this._setScrollbar(),t(document.body).addClass(m.OPEN),this._setEscapeEvent(),this._setResizeEvent(),t(this._element).on(p.CLICK_DISMISS,E.DATA_DISMISS,function(t){return n.hide(t)}),t(this._dialog).on(p.MOUSEDOWN_DISMISS,function(){t(n._element).one(p.MOUSEUP_DISMISS,function(e){t(e.target).is(n._element)&&(n._ignoreBackdropClick=!0)})}),this._showBackdrop(function(){return n._showElement(e)}))},h.prototype.hide=function(e){var n=this;if(e&&e.preventDefault(),this._isTransitioning)throw new Error("Modal is transitioning");var i=r.supportsTransitionEnd()&&t(this._element).hasClass(m.FADE);i&&(this._isTransitioning=!0);var o=t.Event(p.HIDE);t(this._element).trigger(o),this._isShown&&!o.isDefaultPrevented()&&(this._isShown=!1,this._setEscapeEvent(),this._setResizeEvent(),t(document).off(p.FOCUSIN),t(this._element).removeClass(m.SHOW),t(this._element).off(p.CLICK_DISMISS),t(this._dialog).off(p.MOUSEDOWN_DISMISS),i?t(this._element).one(r.TRANSITION_END,function(t){return n._hideModal(t)}).emulateTransitionEnd(u):this._hideModal())},h.prototype.dispose=function(){t.removeData(this._element,a),t(window,document,this._element,this._backdrop).off(l),this._config=null,this._element=null,this._dialog=null,this._backdrop=null,this._isShown=null,this._isBodyOverflowing=null,this._ignoreBackdropClick=null,this._originalBodyPadding=null,this._scrollbarWidth=null},h.prototype._getConfig=function(n){return n=t.extend({},_,n),r.typeCheckConfig(e,n,g),n},h.prototype._showElement=function(e){var n=this,i=r.supportsTransitionEnd()&&t(this._element).hasClass(m.FADE);this._element.parentNode&&this._element.parentNode.nodeType===Node.ELEMENT_NODE||document.body.appendChild(this._element),this._element.style.display="block",this._element.removeAttribute("aria-hidden"),this._element.scrollTop=0,i&&r.reflow(this._element),t(this._element).addClass(m.SHOW),this._config.focus&&this._enforceFocus();var o=t.Event(p.SHOWN,{relatedTarget:e}),s=function(){n._config.focus&&n._element.focus(),n._isTransitioning=!1,t(n._element).trigger(o)};i?t(this._dialog).one(r.TRANSITION_END,s).emulateTransitionEnd(u):s()},h.prototype._enforceFocus=function(){var e=this;t(document).off(p.FOCUSIN).on(p.FOCUSIN,function(n){document===n.target||e._element===n.target||t(e._element).has(n.target).length||e._element.focus()})},h.prototype._setEscapeEvent=function(){var e=this;this._isShown&&this._config.keyboard?t(this._element).on(p.KEYDOWN_DISMISS,function(t){t.which===f&&e.hide()}):this._isShown||t(this._element).off(p.KEYDOWN_DISMISS)},h.prototype._setResizeEvent=function(){var e=this;this._isShown?t(window).on(p.RESIZE,function(t){return e._handleUpdate(t)}):t(window).off(p.RESIZE)},h.prototype._hideModal=function(){var e=this;this._element.style.display="none",this._element.setAttribute("aria-hidden","true"),this._isTransitioning=!1,this._showBackdrop(function(){t(document.body).removeClass(m.OPEN),e._resetAdjustments(),e._resetScrollbar(),t(e._element).trigger(p.HIDDEN)})},h.prototype._removeBackdrop=function(){this._backdrop&&(t(this._backdrop).remove(),this._backdrop=null)},h.prototype._showBackdrop=function(e){var n=this,i=t(this._element).hasClass(m.FADE)?m.FADE:"";if(this._isShown&&this._config.backdrop){var o=r.supportsTransitionEnd()&&i;if(this._backdrop=document.createElement("div"),this._backdrop.className=m.BACKDROP,i&&t(this._backdrop).addClass(i),t(this._backdrop).appendTo(document.body),t(this._element).on(p.CLICK_DISMISS,function(t){return n._ignoreBackdropClick?void(n._ignoreBackdropClick=!1):void(t.target===t.currentTarget&&("static"===n._config.backdrop?n._element.focus():n.hide()))}),o&&r.reflow(this._backdrop),t(this._backdrop).addClass(m.SHOW),!e)return;if(!o)return void e();t(this._backdrop).one(r.TRANSITION_END,e).emulateTransitionEnd(d)}else if(!this._isShown&&this._backdrop){t(this._backdrop).removeClass(m.SHOW);var s=function(){n._removeBackdrop(),e&&e()};r.supportsTransitionEnd()&&t(this._element).hasClass(m.FADE)?t(this._backdrop).one(r.TRANSITION_END,s).emulateTransitionEnd(d):s()}else e&&e()},h.prototype._handleUpdate=function(){this._adjustDialog()},h.prototype._adjustDialog=function(){var t=this._element.scrollHeight>document.documentElement.clientHeight;!this._isBodyOverflowing&&t&&(this._element.style.paddingLeft=this._scrollbarWidth+"px"),this._isBodyOverflowing&&!t&&(this._element.style.paddingRight=this._scrollbarWidth+"px")},h.prototype._resetAdjustments=function(){this._element.style.paddingLeft="",this._element.style.paddingRight=""},h.prototype._checkScrollbar=function(){this._isBodyOverflowing=document.body.clientWidth<window.innerWidth,this._scrollbarWidth=this._getScrollbarWidth()},h.prototype._setScrollbar=function(){var e=parseInt(t(E.FIXED_CONTENT).css("padding-right")||0,10);this._originalBodyPadding=document.body.style.paddingRight||"",this._isBodyOverflowing&&(document.body.style.paddingRight=e+this._scrollbarWidth+"px")},h.prototype._resetScrollbar=function(){document.body.style.paddingRight=this._originalBodyPadding},h.prototype._getScrollbarWidth=function(){var t=document.createElement("div");t.className=m.SCROLLBAR_MEASURER,document.body.appendChild(t);var e=t.offsetWidth-t.clientWidth;return document.body.removeChild(t),e},h._jQueryInterface=function(e,n){return this.each(function(){var o=t(this).data(a),r=t.extend({},h.Default,t(this).data(),"object"===("undefined"==typeof e?"undefined":i(e))&&e);if(o||(o=new h(this,r),t(this).data(a,o)),"string"==typeof e){if(void 0===o[e])throw new Error('No method named "'+e+'"');o[e](n)}else r.show&&o.show(n)})},o(h,null,[{key:"VERSION",get:function(){return s}},{key:"Default",get:function(){return _}}]),h}();return t(document).on(p.CLICK_DATA_API,E.DATA_TOGGLE,function(e){var n=this,i=void 0,o=r.getSelectorFromElement(this);o&&(i=t(o)[0]);var s=t(i).data(a)?"toggle":t.extend({},t(i).data(),t(this).data());"A"!==this.tagName&&"AREA"!==this.tagName||e.preventDefault();var l=t(i).one(p.SHOW,function(e){e.isDefaultPrevented()||l.one(p.HIDDEN,function(){t(n).is(":visible")&&n.focus()})});v._jQueryInterface.call(t(i),s,this)}),t.fn[e]=v._jQueryInterface,t.fn[e].Constructor=v,t.fn[e].noConflict=function(){return t.fn[e]=c,v._jQueryInterface},v}(jQuery),function(t){var e="scrollspy",s="4.0.0-alpha.6",a="bs.scrollspy",l="."+a,h=".data-api",c=t.fn[e],u={offset:10,method:"auto",target:""},d={offset:"number",method:"string",target:"(string|element)"},f={ACTIVATE:"activate"+l,SCROLL:"scroll"+l,LOAD_DATA_API:"load"+l+h},_={DROPDOWN_ITEM:"dropdown-item",DROPDOWN_MENU:"dropdown-menu",NAV_LINK:"nav-link",NAV:"nav",ACTIVE:"active"},g={DATA_SPY:'[data-spy="scroll"]',ACTIVE:".active",LIST_ITEM:".list-item",LI:"li",LI_DROPDOWN:"li.dropdown",NAV_LINKS:".nav-link",DROPDOWN:".dropdown",DROPDOWN_ITEMS:".dropdown-item",DROPDOWN_TOGGLE:".dropdown-toggle"},p={OFFSET:"offset",POSITION:"position"},m=function(){function h(e,i){var o=this;n(this,h),this._element=e,this._scrollElement="BODY"===e.tagName?window:e,this._config=this._getConfig(i),this._selector=this._config.target+" "+g.NAV_LINKS+","+(this._config.target+" "+g.DROPDOWN_ITEMS),this._offsets=[],this._targets=[],this._activeTarget=null,this._scrollHeight=0,t(this._scrollElement).on(f.SCROLL,function(t){return o._process(t)}),this.refresh(),this._process()}return h.prototype.refresh=function(){var e=this,n=this._scrollElement!==this._scrollElement.window?p.POSITION:p.OFFSET,i="auto"===this._config.method?n:this._config.method,o=i===p.POSITION?this._getScrollTop():0;this._offsets=[],this._targets=[],this._scrollHeight=this._getScrollHeight();var s=t.makeArray(t(this._selector));s.map(function(e){var n=void 0,s=r.getSelectorFromElement(e);return s&&(n=t(s)[0]),n&&(n.offsetWidth||n.offsetHeight)?[t(n)[i]().top+o,s]:null}).filter(function(t){return t}).sort(function(t,e){return t[0]-e[0]}).forEach(function(t){e._offsets.push(t[0]),e._targets.push(t[1])})},h.prototype.dispose=function(){t.removeData(this._element,a),t(this._scrollElement).off(l),this._element=null,this._scrollElement=null,this._config=null,this._selector=null,this._offsets=null,this._targets=null,this._activeTarget=null,this._scrollHeight=null},h.prototype._getConfig=function(n){if(n=t.extend({},u,n),"string"!=typeof n.target){var i=t(n.target).attr("id");i||(i=r.getUID(e),t(n.target).attr("id",i)),n.target="#"+i}return r.typeCheckConfig(e,n,d),n},h.prototype._getScrollTop=function(){return this._scrollElement===window?this._scrollElement.pageYOffset:this._scrollElement.scrollTop},h.prototype._getScrollHeight=function(){return this._scrollElement.scrollHeight||Math.max(document.body.scrollHeight,document.documentElement.scrollHeight)},h.prototype._getOffsetHeight=function(){return this._scrollElement===window?window.innerHeight:this._scrollElement.offsetHeight},h.prototype._process=function(){var t=this._getScrollTop()+this._config.offset,e=this._getScrollHeight(),n=this._config.offset+e-this._getOffsetHeight();if(this._scrollHeight!==e&&this.refresh(),t>=n){var i=this._targets[this._targets.length-1];return void(this._activeTarget!==i&&this._activate(i))}if(this._activeTarget&&t<this._offsets[0]&&this._offsets[0]>0)return this._activeTarget=null,void this._clear();for(var o=this._offsets.length;o--;){var r=this._activeTarget!==this._targets[o]&&t>=this._offsets[o]&&(void 0===this._offsets[o+1]||t<this._offsets[o+1]);r&&this._activate(this._targets[o])}},h.prototype._activate=function(e){this._activeTarget=e,this._clear();var n=this._selector.split(",");n=n.map(function(t){return t+'[data-target="'+e+'"],'+(t+'[href="'+e+'"]')});var i=t(n.join(","));i.hasClass(_.DROPDOWN_ITEM)?(i.closest(g.DROPDOWN).find(g.DROPDOWN_TOGGLE).addClass(_.ACTIVE),i.addClass(_.ACTIVE)):i.parents(g.LI).find("> "+g.NAV_LINKS).addClass(_.ACTIVE),t(this._scrollElement).trigger(f.ACTIVATE,{relatedTarget:e})},h.prototype._clear=function(){t(this._selector).filter(g.ACTIVE).removeClass(_.ACTIVE)},h._jQueryInterface=function(e){return this.each(function(){var n=t(this).data(a),o="object"===("undefined"==typeof e?"undefined":i(e))&&e; -if(n||(n=new h(this,o),t(this).data(a,n)),"string"==typeof e){if(void 0===n[e])throw new Error('No method named "'+e+'"');n[e]()}})},o(h,null,[{key:"VERSION",get:function(){return s}},{key:"Default",get:function(){return u}}]),h}();return t(window).on(f.LOAD_DATA_API,function(){for(var e=t.makeArray(t(g.DATA_SPY)),n=e.length;n--;){var i=t(e[n]);m._jQueryInterface.call(i,i.data())}}),t.fn[e]=m._jQueryInterface,t.fn[e].Constructor=m,t.fn[e].noConflict=function(){return t.fn[e]=c,m._jQueryInterface},m}(jQuery),function(t){var e="tab",i="4.0.0-alpha.6",s="bs.tab",a="."+s,l=".data-api",h=t.fn[e],c=150,u={HIDE:"hide"+a,HIDDEN:"hidden"+a,SHOW:"show"+a,SHOWN:"shown"+a,CLICK_DATA_API:"click"+a+l},d={DROPDOWN_MENU:"dropdown-menu",ACTIVE:"active",DISABLED:"disabled",FADE:"fade",SHOW:"show"},f={A:"a",LI:"li",DROPDOWN:".dropdown",LIST:"ul:not(.dropdown-menu), ol:not(.dropdown-menu), nav:not(.dropdown-menu)",FADE_CHILD:"> .nav-item .fade, > .fade",ACTIVE:".active",ACTIVE_CHILD:"> .nav-item > .active, > .active",DATA_TOGGLE:'[data-toggle="tab"], [data-toggle="pill"]',DROPDOWN_TOGGLE:".dropdown-toggle",DROPDOWN_ACTIVE_CHILD:"> .dropdown-menu .active"},_=function(){function e(t){n(this,e),this._element=t}return e.prototype.show=function(){var e=this;if(!(this._element.parentNode&&this._element.parentNode.nodeType===Node.ELEMENT_NODE&&t(this._element).hasClass(d.ACTIVE)||t(this._element).hasClass(d.DISABLED))){var n=void 0,i=void 0,o=t(this._element).closest(f.LIST)[0],s=r.getSelectorFromElement(this._element);o&&(i=t.makeArray(t(o).find(f.ACTIVE)),i=i[i.length-1]);var a=t.Event(u.HIDE,{relatedTarget:this._element}),l=t.Event(u.SHOW,{relatedTarget:i});if(i&&t(i).trigger(a),t(this._element).trigger(l),!l.isDefaultPrevented()&&!a.isDefaultPrevented()){s&&(n=t(s)[0]),this._activate(this._element,o);var h=function(){var n=t.Event(u.HIDDEN,{relatedTarget:e._element}),o=t.Event(u.SHOWN,{relatedTarget:i});t(i).trigger(n),t(e._element).trigger(o)};n?this._activate(n,n.parentNode,h):h()}}},e.prototype.dispose=function(){t.removeClass(this._element,s),this._element=null},e.prototype._activate=function(e,n,i){var o=this,s=t(n).find(f.ACTIVE_CHILD)[0],a=i&&r.supportsTransitionEnd()&&(s&&t(s).hasClass(d.FADE)||Boolean(t(n).find(f.FADE_CHILD)[0])),l=function(){return o._transitionComplete(e,s,a,i)};s&&a?t(s).one(r.TRANSITION_END,l).emulateTransitionEnd(c):l(),s&&t(s).removeClass(d.SHOW)},e.prototype._transitionComplete=function(e,n,i,o){if(n){t(n).removeClass(d.ACTIVE);var s=t(n.parentNode).find(f.DROPDOWN_ACTIVE_CHILD)[0];s&&t(s).removeClass(d.ACTIVE),n.setAttribute("aria-expanded",!1)}if(t(e).addClass(d.ACTIVE),e.setAttribute("aria-expanded",!0),i?(r.reflow(e),t(e).addClass(d.SHOW)):t(e).removeClass(d.FADE),e.parentNode&&t(e.parentNode).hasClass(d.DROPDOWN_MENU)){var a=t(e).closest(f.DROPDOWN)[0];a&&t(a).find(f.DROPDOWN_TOGGLE).addClass(d.ACTIVE),e.setAttribute("aria-expanded",!0)}o&&o()},e._jQueryInterface=function(n){return this.each(function(){var i=t(this),o=i.data(s);if(o||(o=new e(this),i.data(s,o)),"string"==typeof n){if(void 0===o[n])throw new Error('No method named "'+n+'"');o[n]()}})},o(e,null,[{key:"VERSION",get:function(){return i}}]),e}();return t(document).on(u.CLICK_DATA_API,f.DATA_TOGGLE,function(e){e.preventDefault(),_._jQueryInterface.call(t(this),"show")}),t.fn[e]=_._jQueryInterface,t.fn[e].Constructor=_,t.fn[e].noConflict=function(){return t.fn[e]=h,_._jQueryInterface},_}(jQuery),function(t){if("undefined"==typeof Tether)throw new Error("Bootstrap tooltips require Tether (http://tether.io/)");var e="tooltip",s="4.0.0-alpha.6",a="bs.tooltip",l="."+a,h=t.fn[e],c=150,u="bs-tether",d={animation:!0,template:'<div class="tooltip" role="tooltip"><div class="tooltip-inner"></div></div>',trigger:"hover focus",title:"",delay:0,html:!1,selector:!1,placement:"top",offset:"0 0",constraints:[],container:!1},f={animation:"boolean",template:"string",title:"(string|element|function)",trigger:"string",delay:"(number|object)",html:"boolean",selector:"(string|boolean)",placement:"(string|function)",offset:"string",constraints:"array",container:"(string|element|boolean)"},_={TOP:"bottom center",RIGHT:"middle left",BOTTOM:"top center",LEFT:"middle right"},g={SHOW:"show",OUT:"out"},p={HIDE:"hide"+l,HIDDEN:"hidden"+l,SHOW:"show"+l,SHOWN:"shown"+l,INSERTED:"inserted"+l,CLICK:"click"+l,FOCUSIN:"focusin"+l,FOCUSOUT:"focusout"+l,MOUSEENTER:"mouseenter"+l,MOUSELEAVE:"mouseleave"+l},m={FADE:"fade",SHOW:"show"},E={TOOLTIP:".tooltip",TOOLTIP_INNER:".tooltip-inner"},v={element:!1,enabled:!1},T={HOVER:"hover",FOCUS:"focus",CLICK:"click",MANUAL:"manual"},I=function(){function h(t,e){n(this,h),this._isEnabled=!0,this._timeout=0,this._hoverState="",this._activeTrigger={},this._isTransitioning=!1,this._tether=null,this.element=t,this.config=this._getConfig(e),this.tip=null,this._setListeners()}return h.prototype.enable=function(){this._isEnabled=!0},h.prototype.disable=function(){this._isEnabled=!1},h.prototype.toggleEnabled=function(){this._isEnabled=!this._isEnabled},h.prototype.toggle=function(e){if(e){var n=this.constructor.DATA_KEY,i=t(e.currentTarget).data(n);i||(i=new this.constructor(e.currentTarget,this._getDelegateConfig()),t(e.currentTarget).data(n,i)),i._activeTrigger.click=!i._activeTrigger.click,i._isWithActiveTrigger()?i._enter(null,i):i._leave(null,i)}else{if(t(this.getTipElement()).hasClass(m.SHOW))return void this._leave(null,this);this._enter(null,this)}},h.prototype.dispose=function(){clearTimeout(this._timeout),this.cleanupTether(),t.removeData(this.element,this.constructor.DATA_KEY),t(this.element).off(this.constructor.EVENT_KEY),t(this.element).closest(".modal").off("hide.bs.modal"),this.tip&&t(this.tip).remove(),this._isEnabled=null,this._timeout=null,this._hoverState=null,this._activeTrigger=null,this._tether=null,this.element=null,this.config=null,this.tip=null},h.prototype.show=function(){var e=this;if("none"===t(this.element).css("display"))throw new Error("Please use show on visible elements");var n=t.Event(this.constructor.Event.SHOW);if(this.isWithContent()&&this._isEnabled){if(this._isTransitioning)throw new Error("Tooltip is transitioning");t(this.element).trigger(n);var i=t.contains(this.element.ownerDocument.documentElement,this.element);if(n.isDefaultPrevented()||!i)return;var o=this.getTipElement(),s=r.getUID(this.constructor.NAME);o.setAttribute("id",s),this.element.setAttribute("aria-describedby",s),this.setContent(),this.config.animation&&t(o).addClass(m.FADE);var a="function"==typeof this.config.placement?this.config.placement.call(this,o,this.element):this.config.placement,l=this._getAttachment(a),c=this.config.container===!1?document.body:t(this.config.container);t(o).data(this.constructor.DATA_KEY,this).appendTo(c),t(this.element).trigger(this.constructor.Event.INSERTED),this._tether=new Tether({attachment:l,element:o,target:this.element,classes:v,classPrefix:u,offset:this.config.offset,constraints:this.config.constraints,addTargetClasses:!1}),r.reflow(o),this._tether.position(),t(o).addClass(m.SHOW);var d=function(){var n=e._hoverState;e._hoverState=null,e._isTransitioning=!1,t(e.element).trigger(e.constructor.Event.SHOWN),n===g.OUT&&e._leave(null,e)};if(r.supportsTransitionEnd()&&t(this.tip).hasClass(m.FADE))return this._isTransitioning=!0,void t(this.tip).one(r.TRANSITION_END,d).emulateTransitionEnd(h._TRANSITION_DURATION);d()}},h.prototype.hide=function(e){var n=this,i=this.getTipElement(),o=t.Event(this.constructor.Event.HIDE);if(this._isTransitioning)throw new Error("Tooltip is transitioning");var s=function(){n._hoverState!==g.SHOW&&i.parentNode&&i.parentNode.removeChild(i),n.element.removeAttribute("aria-describedby"),t(n.element).trigger(n.constructor.Event.HIDDEN),n._isTransitioning=!1,n.cleanupTether(),e&&e()};t(this.element).trigger(o),o.isDefaultPrevented()||(t(i).removeClass(m.SHOW),this._activeTrigger[T.CLICK]=!1,this._activeTrigger[T.FOCUS]=!1,this._activeTrigger[T.HOVER]=!1,r.supportsTransitionEnd()&&t(this.tip).hasClass(m.FADE)?(this._isTransitioning=!0,t(i).one(r.TRANSITION_END,s).emulateTransitionEnd(c)):s(),this._hoverState="")},h.prototype.isWithContent=function(){return Boolean(this.getTitle())},h.prototype.getTipElement=function(){return this.tip=this.tip||t(this.config.template)[0]},h.prototype.setContent=function(){var e=t(this.getTipElement());this.setElementContent(e.find(E.TOOLTIP_INNER),this.getTitle()),e.removeClass(m.FADE+" "+m.SHOW),this.cleanupTether()},h.prototype.setElementContent=function(e,n){var o=this.config.html;"object"===("undefined"==typeof n?"undefined":i(n))&&(n.nodeType||n.jquery)?o?t(n).parent().is(e)||e.empty().append(n):e.text(t(n).text()):e[o?"html":"text"](n)},h.prototype.getTitle=function(){var t=this.element.getAttribute("data-original-title");return t||(t="function"==typeof this.config.title?this.config.title.call(this.element):this.config.title),t},h.prototype.cleanupTether=function(){this._tether&&this._tether.destroy()},h.prototype._getAttachment=function(t){return _[t.toUpperCase()]},h.prototype._setListeners=function(){var e=this,n=this.config.trigger.split(" ");n.forEach(function(n){if("click"===n)t(e.element).on(e.constructor.Event.CLICK,e.config.selector,function(t){return e.toggle(t)});else if(n!==T.MANUAL){var i=n===T.HOVER?e.constructor.Event.MOUSEENTER:e.constructor.Event.FOCUSIN,o=n===T.HOVER?e.constructor.Event.MOUSELEAVE:e.constructor.Event.FOCUSOUT;t(e.element).on(i,e.config.selector,function(t){return e._enter(t)}).on(o,e.config.selector,function(t){return e._leave(t)})}t(e.element).closest(".modal").on("hide.bs.modal",function(){return e.hide()})}),this.config.selector?this.config=t.extend({},this.config,{trigger:"manual",selector:""}):this._fixTitle()},h.prototype._fixTitle=function(){var t=i(this.element.getAttribute("data-original-title"));(this.element.getAttribute("title")||"string"!==t)&&(this.element.setAttribute("data-original-title",this.element.getAttribute("title")||""),this.element.setAttribute("title",""))},h.prototype._enter=function(e,n){var i=this.constructor.DATA_KEY;return n=n||t(e.currentTarget).data(i),n||(n=new this.constructor(e.currentTarget,this._getDelegateConfig()),t(e.currentTarget).data(i,n)),e&&(n._activeTrigger["focusin"===e.type?T.FOCUS:T.HOVER]=!0),t(n.getTipElement()).hasClass(m.SHOW)||n._hoverState===g.SHOW?void(n._hoverState=g.SHOW):(clearTimeout(n._timeout),n._hoverState=g.SHOW,n.config.delay&&n.config.delay.show?void(n._timeout=setTimeout(function(){n._hoverState===g.SHOW&&n.show()},n.config.delay.show)):void n.show())},h.prototype._leave=function(e,n){var i=this.constructor.DATA_KEY;if(n=n||t(e.currentTarget).data(i),n||(n=new this.constructor(e.currentTarget,this._getDelegateConfig()),t(e.currentTarget).data(i,n)),e&&(n._activeTrigger["focusout"===e.type?T.FOCUS:T.HOVER]=!1),!n._isWithActiveTrigger())return clearTimeout(n._timeout),n._hoverState=g.OUT,n.config.delay&&n.config.delay.hide?void(n._timeout=setTimeout(function(){n._hoverState===g.OUT&&n.hide()},n.config.delay.hide)):void n.hide()},h.prototype._isWithActiveTrigger=function(){for(var t in this._activeTrigger)if(this._activeTrigger[t])return!0;return!1},h.prototype._getConfig=function(n){return n=t.extend({},this.constructor.Default,t(this.element).data(),n),n.delay&&"number"==typeof n.delay&&(n.delay={show:n.delay,hide:n.delay}),r.typeCheckConfig(e,n,this.constructor.DefaultType),n},h.prototype._getDelegateConfig=function(){var t={};if(this.config)for(var e in this.config)this.constructor.Default[e]!==this.config[e]&&(t[e]=this.config[e]);return t},h._jQueryInterface=function(e){return this.each(function(){var n=t(this).data(a),o="object"===("undefined"==typeof e?"undefined":i(e))&&e;if((n||!/dispose|hide/.test(e))&&(n||(n=new h(this,o),t(this).data(a,n)),"string"==typeof e)){if(void 0===n[e])throw new Error('No method named "'+e+'"');n[e]()}})},o(h,null,[{key:"VERSION",get:function(){return s}},{key:"Default",get:function(){return d}},{key:"NAME",get:function(){return e}},{key:"DATA_KEY",get:function(){return a}},{key:"Event",get:function(){return p}},{key:"EVENT_KEY",get:function(){return l}},{key:"DefaultType",get:function(){return f}}]),h}();return t.fn[e]=I._jQueryInterface,t.fn[e].Constructor=I,t.fn[e].noConflict=function(){return t.fn[e]=h,I._jQueryInterface},I}(jQuery));(function(r){var a="popover",l="4.0.0-alpha.6",h="bs.popover",c="."+h,u=r.fn[a],d=r.extend({},s.Default,{placement:"right",trigger:"click",content:"",template:'<div class="popover" role="tooltip"><h3 class="popover-title"></h3><div class="popover-content"></div></div>'}),f=r.extend({},s.DefaultType,{content:"(string|element|function)"}),_={FADE:"fade",SHOW:"show"},g={TITLE:".popover-title",CONTENT:".popover-content"},p={HIDE:"hide"+c,HIDDEN:"hidden"+c,SHOW:"show"+c,SHOWN:"shown"+c,INSERTED:"inserted"+c,CLICK:"click"+c,FOCUSIN:"focusin"+c,FOCUSOUT:"focusout"+c,MOUSEENTER:"mouseenter"+c,MOUSELEAVE:"mouseleave"+c},m=function(s){function u(){return n(this,u),t(this,s.apply(this,arguments))}return e(u,s),u.prototype.isWithContent=function(){return this.getTitle()||this._getContent()},u.prototype.getTipElement=function(){return this.tip=this.tip||r(this.config.template)[0]},u.prototype.setContent=function(){var t=r(this.getTipElement());this.setElementContent(t.find(g.TITLE),this.getTitle()),this.setElementContent(t.find(g.CONTENT),this._getContent()),t.removeClass(_.FADE+" "+_.SHOW),this.cleanupTether()},u.prototype._getContent=function(){return this.element.getAttribute("data-content")||("function"==typeof this.config.content?this.config.content.call(this.element):this.config.content)},u._jQueryInterface=function(t){return this.each(function(){var e=r(this).data(h),n="object"===("undefined"==typeof t?"undefined":i(t))?t:null;if((e||!/destroy|hide/.test(t))&&(e||(e=new u(this,n),r(this).data(h,e)),"string"==typeof t)){if(void 0===e[t])throw new Error('No method named "'+t+'"');e[t]()}})},o(u,null,[{key:"VERSION",get:function(){return l}},{key:"Default",get:function(){return d}},{key:"NAME",get:function(){return a}},{key:"DATA_KEY",get:function(){return h}},{key:"Event",get:function(){return p}},{key:"EVENT_KEY",get:function(){return c}},{key:"DefaultType",get:function(){return f}}]),u}(s);return r.fn[a]=m._jQueryInterface,r.fn[a].Constructor=m,r.fn[a].noConflict=function(){return r.fn[a]=u,m._jQueryInterface},m})(jQuery)}(); \ No newline at end of file diff --git a/js/i18n/defaults-ar_AR.js b/js/i18n/defaults-ar_AR.js deleted file mode 100644 index 40a9f93..0000000 --- a/js/i18n/defaults-ar_AR.js +++ /dev/null @@ -1,49 +0,0 @@ -/*! - * Bootstrap-select v1.12.4 (http://silviomoreto.github.io/bootstrap-select) - * - * Copyright 2013-2017 bootstrap-select - * Licensed under MIT (https://github.com/silviomoreto/bootstrap-select/blob/master/LICENSE) - */ - -(function (root, factory) { - if (typeof define === 'function' && define.amd) { - // AMD. Register as an anonymous module unless amdModuleId is set - define(["jquery"], function (a0) { - return (factory(a0)); - }); - } else if (typeof module === 'object' && module.exports) { - // Node. Does not work with strict CommonJS, but - // only CommonJS-like environments that support module.exports, - // like Node. - module.exports = factory(require("jquery")); - } else { - factory(root["jQuery"]); - } -}(this, function (jQuery) { - -/*! - * Translated default messages for bootstrap-select. - * Locale: AR (Arabic) - * Author: Yasser Lotfy <y_l@alive.com> - */ -(function ($) { - $.fn.selectpicker.defaults = { - noneSelectedText: 'لم يتم إختيار شئ', - noneResultsText: 'لا توجد نتائج مطابقة لـ {0}', - countSelectedText: function (numSelected, numTotal) { - return (numSelected == 1) ? "{0} خيار تم إختياره" : "{0} خيارات تمت إختيارها"; - }, - maxOptionsText: function (numAll, numGroup) { - return [ - (numAll == 1) ? 'تخطى الحد المسموح ({n} خيار بحد أقصى)' : 'تخطى الحد المسموح ({n} خيارات بحد أقصى)', - (numGroup == 1) ? 'تخطى الحد المسموح للمجموعة ({n} خيار بحد أقصى)' : 'تخطى الحد المسموح للمجموعة ({n} خيارات بحد أقصى)' - ]; - }, - selectAllText: 'إختيار الجميع', - deselectAllText: 'إلغاء إختيار الجميع', - multipleSeparator: '، ' - }; -})(jQuery); - - -})); diff --git a/js/i18n/defaults-ar_AR.min.js b/js/i18n/defaults-ar_AR.min.js deleted file mode 100644 index 1f54d04..0000000 --- a/js/i18n/defaults-ar_AR.min.js +++ /dev/null @@ -1,12 +0,0 @@ -/*! - * Bootstrap-select v1.12.4 (http://silviomoreto.github.io/bootstrap-select) - * - * Copyright 2013-2017 bootstrap-select - * Licensed under MIT (https://github.com/silviomoreto/bootstrap-select/blob/master/LICENSE) - */ -!function(a,b){"function"==typeof define&&define.amd?define(["jquery"],function(a){return b(a)}):"object"==typeof module&&module.exports?module.exports=b(require("jquery")):b(a.jQuery)}(this,function(a){/*! - * Translated default messages for bootstrap-select. - * Locale: AR (Arabic) - * Author: Yasser Lotfy <y_l@alive.com> - */ -!function(a){a.fn.selectpicker.defaults={noneSelectedText:"لم يتم إختيار شئ",noneResultsText:"لا توجد نتائج مطابقة لـ {0}",countSelectedText:function(a,b){return 1==a?"{0} خيار تم إختياره":"{0} خيارات تمت إختيارها"},maxOptionsText:function(a,b){return[1==a?"تخطى الحد المسموح ({n} خيار بحد أقصى)":"تخطى الحد المسموح ({n} خيارات بحد أقصى)",1==b?"تخطى الحد المسموح للمجموعة ({n} خيار بحد أقصى)":"تخطى الحد المسموح للمجموعة ({n} خيارات بحد أقصى)"]},selectAllText:"إختيار الجميع",deselectAllText:"إلغاء إختيار الجميع",multipleSeparator:"، "}}(a)}); \ No newline at end of file diff --git a/js/i18n/defaults-bg_BG.js b/js/i18n/defaults-bg_BG.js deleted file mode 100644 index 082de77..0000000 --- a/js/i18n/defaults-bg_BG.js +++ /dev/null @@ -1,44 +0,0 @@ -/*! - * Bootstrap-select v1.12.4 (http://silviomoreto.github.io/bootstrap-select) - * - * Copyright 2013-2017 bootstrap-select - * Licensed under MIT (https://github.com/silviomoreto/bootstrap-select/blob/master/LICENSE) - */ - -(function (root, factory) { - if (typeof define === 'function' && define.amd) { - // AMD. Register as an anonymous module unless amdModuleId is set - define(["jquery"], function (a0) { - return (factory(a0)); - }); - } else if (typeof module === 'object' && module.exports) { - // Node. Does not work with strict CommonJS, but - // only CommonJS-like environments that support module.exports, - // like Node. - module.exports = factory(require("jquery")); - } else { - factory(root["jQuery"]); - } -}(this, function (jQuery) { - -(function ($) { - $.fn.selectpicker.defaults = { - noneSelectedText: 'Нищо избрано', - noneResultsText: 'Няма резултат за {0}', - countSelectedText: function (numSelected, numTotal) { - return (numSelected == 1) ? "{0} избран елемент" : "{0} избрани елемента"; - }, - maxOptionsText: function (numAll, numGroup) { - return [ - (numAll == 1) ? 'Лимита е достигнат ({n} елемент максимум)' : 'Лимита е достигнат ({n} елемента максимум)', - (numGroup == 1) ? 'Груповия лимит е достигнат ({n} елемент максимум)' : 'Груповия лимит е достигнат ({n} елемента максимум)' - ]; - }, - selectAllText: 'Избери всички', - deselectAllText: 'Размаркирай всички', - multipleSeparator: ', ' - }; -})(jQuery); - - -})); diff --git a/js/i18n/defaults-bg_BG.min.js b/js/i18n/defaults-bg_BG.min.js deleted file mode 100644 index 3c63a98..0000000 --- a/js/i18n/defaults-bg_BG.min.js +++ /dev/null @@ -1,7 +0,0 @@ -/*! - * Bootstrap-select v1.12.4 (http://silviomoreto.github.io/bootstrap-select) - * - * Copyright 2013-2017 bootstrap-select - * Licensed under MIT (https://github.com/silviomoreto/bootstrap-select/blob/master/LICENSE) - */ -!function(a,b){"function"==typeof define&&define.amd?define(["jquery"],function(a){return b(a)}):"object"==typeof module&&module.exports?module.exports=b(require("jquery")):b(a.jQuery)}(this,function(a){!function(a){a.fn.selectpicker.defaults={noneSelectedText:"Нищо избрано",noneResultsText:"Няма резултат за {0}",countSelectedText:function(a,b){return 1==a?"{0} избран елемент":"{0} избрани елемента"},maxOptionsText:function(a,b){return[1==a?"Лимита е достигнат ({n} елемент максимум)":"Лимита е достигнат ({n} елемента максимум)",1==b?"Груповия лимит е достигнат ({n} елемент максимум)":"Груповия лимит е достигнат ({n} елемента максимум)"]},selectAllText:"Избери всички",deselectAllText:"Размаркирай всички",multipleSeparator:", "}}(a)}); \ No newline at end of file diff --git a/js/i18n/defaults-cro_CRO.js b/js/i18n/defaults-cro_CRO.js deleted file mode 100644 index ef2c115..0000000 --- a/js/i18n/defaults-cro_CRO.js +++ /dev/null @@ -1,44 +0,0 @@ -/*! - * Bootstrap-select v1.12.4 (http://silviomoreto.github.io/bootstrap-select) - * - * Copyright 2013-2017 bootstrap-select - * Licensed under MIT (https://github.com/silviomoreto/bootstrap-select/blob/master/LICENSE) - */ - -(function (root, factory) { - if (typeof define === 'function' && define.amd) { - // AMD. Register as an anonymous module unless amdModuleId is set - define(["jquery"], function (a0) { - return (factory(a0)); - }); - } else if (typeof module === 'object' && module.exports) { - // Node. Does not work with strict CommonJS, but - // only CommonJS-like environments that support module.exports, - // like Node. - module.exports = factory(require("jquery")); - } else { - factory(root["jQuery"]); - } -}(this, function (jQuery) { - -(function ($) { - $.fn.selectpicker.defaults = { - noneSelectedText: 'Odaberite stavku', - noneResultsText: 'Nema rezultata pretrage {0}', - countSelectedText: function (numSelected, numTotal) { - return (numSelected == 1) ? "{0} stavka selektirana" : "{0} stavke selektirane"; - }, - maxOptionsText: function (numAll, numGroup) { - return [ - (numAll == 1) ? 'Limit je postignut ({n} stvar maximalno)' : 'Limit je postignut ({n} stavke maksimalno)', - (numGroup == 1) ? 'Grupni limit je postignut ({n} stvar maksimalno)' : 'Grupni limit je postignut ({n} stavke maksimalno)' - ]; - }, - selectAllText: 'Selektiraj sve', - deselectAllText: 'Deselektiraj sve', - multipleSeparator: ', ' - }; -})(jQuery); - - -})); diff --git a/js/i18n/defaults-cro_CRO.min.js b/js/i18n/defaults-cro_CRO.min.js deleted file mode 100644 index c7066d7..0000000 --- a/js/i18n/defaults-cro_CRO.min.js +++ /dev/null @@ -1,7 +0,0 @@ -/*! - * Bootstrap-select v1.12.4 (http://silviomoreto.github.io/bootstrap-select) - * - * Copyright 2013-2017 bootstrap-select - * Licensed under MIT (https://github.com/silviomoreto/bootstrap-select/blob/master/LICENSE) - */ -!function(a,b){"function"==typeof define&&define.amd?define(["jquery"],function(a){return b(a)}):"object"==typeof module&&module.exports?module.exports=b(require("jquery")):b(a.jQuery)}(this,function(a){!function(a){a.fn.selectpicker.defaults={noneSelectedText:"Odaberite stavku",noneResultsText:"Nema rezultata pretrage {0}",countSelectedText:function(a,b){return 1==a?"{0} stavka selektirana":"{0} stavke selektirane"},maxOptionsText:function(a,b){return[1==a?"Limit je postignut ({n} stvar maximalno)":"Limit je postignut ({n} stavke maksimalno)",1==b?"Grupni limit je postignut ({n} stvar maksimalno)":"Grupni limit je postignut ({n} stavke maksimalno)"]},selectAllText:"Selektiraj sve",deselectAllText:"Deselektiraj sve",multipleSeparator:", "}}(a)}); \ No newline at end of file diff --git a/js/i18n/defaults-cs_CZ.js b/js/i18n/defaults-cs_CZ.js deleted file mode 100644 index 835e8d2..0000000 --- a/js/i18n/defaults-cs_CZ.js +++ /dev/null @@ -1,37 +0,0 @@ -/*! - * Bootstrap-select v1.12.4 (http://silviomoreto.github.io/bootstrap-select) - * - * Copyright 2013-2017 bootstrap-select - * Licensed under MIT (https://github.com/silviomoreto/bootstrap-select/blob/master/LICENSE) - */ - -(function (root, factory) { - if (typeof define === 'function' && define.amd) { - // AMD. Register as an anonymous module unless amdModuleId is set - define(["jquery"], function (a0) { - return (factory(a0)); - }); - } else if (typeof module === 'object' && module.exports) { - // Node. Does not work with strict CommonJS, but - // only CommonJS-like environments that support module.exports, - // like Node. - module.exports = factory(require("jquery")); - } else { - factory(root["jQuery"]); - } -}(this, function (jQuery) { - -(function ($) { - $.fn.selectpicker.defaults = { - noneSelectedText: 'Nic není vybráno', - noneResultsText: 'Žádné výsledky {0}', - countSelectedText: 'Označeno {0} z {1}', - maxOptionsText: ['Limit překročen ({n} {var} max)', 'Limit skupiny překročen ({n} {var} max)', ['položek', 'položka']], - multipleSeparator: ', ', - selectAllText: 'Vybrat Vše', - deselectAllText: 'Odznačit Vše' - }; -})(jQuery); - - -})); diff --git a/js/i18n/defaults-cs_CZ.min.js b/js/i18n/defaults-cs_CZ.min.js deleted file mode 100644 index 2244303..0000000 --- a/js/i18n/defaults-cs_CZ.min.js +++ /dev/null @@ -1,7 +0,0 @@ -/*! - * Bootstrap-select v1.12.4 (http://silviomoreto.github.io/bootstrap-select) - * - * Copyright 2013-2017 bootstrap-select - * Licensed under MIT (https://github.com/silviomoreto/bootstrap-select/blob/master/LICENSE) - */ -!function(a,b){"function"==typeof define&&define.amd?define(["jquery"],function(a){return b(a)}):"object"==typeof module&&module.exports?module.exports=b(require("jquery")):b(a.jQuery)}(this,function(a){!function(a){a.fn.selectpicker.defaults={noneSelectedText:"Nic není vybráno",noneResultsText:"Žádné výsledky {0}",countSelectedText:"Označeno {0} z {1}",maxOptionsText:["Limit překročen ({n} {var} max)","Limit skupiny překročen ({n} {var} max)",["položek","položka"]],multipleSeparator:", ",selectAllText:"Vybrat Vše",deselectAllText:"Odznačit Vše"}}(a)}); \ No newline at end of file diff --git a/js/i18n/defaults-da_DK.js b/js/i18n/defaults-da_DK.js deleted file mode 100644 index 4615800..0000000 --- a/js/i18n/defaults-da_DK.js +++ /dev/null @@ -1,44 +0,0 @@ -/*! - * Bootstrap-select v1.12.4 (http://silviomoreto.github.io/bootstrap-select) - * - * Copyright 2013-2017 bootstrap-select - * Licensed under MIT (https://github.com/silviomoreto/bootstrap-select/blob/master/LICENSE) - */ - -(function (root, factory) { - if (typeof define === 'function' && define.amd) { - // AMD. Register as an anonymous module unless amdModuleId is set - define(["jquery"], function (a0) { - return (factory(a0)); - }); - } else if (typeof module === 'object' && module.exports) { - // Node. Does not work with strict CommonJS, but - // only CommonJS-like environments that support module.exports, - // like Node. - module.exports = factory(require("jquery")); - } else { - factory(root["jQuery"]); - } -}(this, function (jQuery) { - -(function ($) { - $.fn.selectpicker.defaults = { - noneSelectedText: 'Intet valgt', - noneResultsText: 'Ingen resultater fundet {0}', - countSelectedText: function (numSelected, numTotal) { - return (numSelected == 1) ? "{0} valgt" : "{0} valgt"; - }, - maxOptionsText: function (numAll, numGroup) { - return [ - (numAll == 1) ? 'Begrænsning nået (max {n} valgt)' : 'Begrænsning nået (max {n} valgte)', - (numGroup == 1) ? 'Gruppe-begrænsning nået (max {n} valgt)' : 'Gruppe-begrænsning nået (max {n} valgte)' - ]; - }, - selectAllText: 'Markér alle', - deselectAllText: 'Afmarkér alle', - multipleSeparator: ', ' - }; -})(jQuery); - - -})); diff --git a/js/i18n/defaults-da_DK.min.js b/js/i18n/defaults-da_DK.min.js deleted file mode 100644 index 253fdac..0000000 --- a/js/i18n/defaults-da_DK.min.js +++ /dev/null @@ -1,7 +0,0 @@ -/*! - * Bootstrap-select v1.12.4 (http://silviomoreto.github.io/bootstrap-select) - * - * Copyright 2013-2017 bootstrap-select - * Licensed under MIT (https://github.com/silviomoreto/bootstrap-select/blob/master/LICENSE) - */ -!function(a,b){"function"==typeof define&&define.amd?define(["jquery"],function(a){return b(a)}):"object"==typeof module&&module.exports?module.exports=b(require("jquery")):b(a.jQuery)}(this,function(a){!function(a){a.fn.selectpicker.defaults={noneSelectedText:"Intet valgt",noneResultsText:"Ingen resultater fundet {0}",countSelectedText:function(a,b){return"{0} valgt"},maxOptionsText:function(a,b){return[1==a?"Begrænsning nået (max {n} valgt)":"Begrænsning nået (max {n} valgte)",1==b?"Gruppe-begrænsning nået (max {n} valgt)":"Gruppe-begrænsning nået (max {n} valgte)"]},selectAllText:"Markér alle",deselectAllText:"Afmarkér alle",multipleSeparator:", "}}(a)}); \ No newline at end of file diff --git a/js/i18n/defaults-de_DE.js b/js/i18n/defaults-de_DE.js deleted file mode 100644 index cde0555..0000000 --- a/js/i18n/defaults-de_DE.js +++ /dev/null @@ -1,44 +0,0 @@ -/*! - * Bootstrap-select v1.12.4 (http://silviomoreto.github.io/bootstrap-select) - * - * Copyright 2013-2017 bootstrap-select - * Licensed under MIT (https://github.com/silviomoreto/bootstrap-select/blob/master/LICENSE) - */ - -(function (root, factory) { - if (typeof define === 'function' && define.amd) { - // AMD. Register as an anonymous module unless amdModuleId is set - define(["jquery"], function (a0) { - return (factory(a0)); - }); - } else if (typeof module === 'object' && module.exports) { - // Node. Does not work with strict CommonJS, but - // only CommonJS-like environments that support module.exports, - // like Node. - module.exports = factory(require("jquery")); - } else { - factory(root["jQuery"]); - } -}(this, function (jQuery) { - -(function ($) { - $.fn.selectpicker.defaults = { - noneSelectedText: 'Bitte wählen...', - noneResultsText: 'Keine Ergebnisse für {0}', - countSelectedText: function (numSelected, numTotal) { - return (numSelected == 1) ? "{0} Element ausgewählt" : "{0} Elemente ausgewählt"; - }, - maxOptionsText: function (numAll, numGroup) { - return [ - (numAll == 1) ? 'Limit erreicht ({n} Element max.)' : 'Limit erreicht ({n} Elemente max.)', - (numGroup == 1) ? 'Gruppen-Limit erreicht ({n} Element max.)' : 'Gruppen-Limit erreicht ({n} Elemente max.)' - ]; - }, - selectAllText: 'Alles auswählen', - deselectAllText: 'Nichts auswählen', - multipleSeparator: ', ' - }; -})(jQuery); - - -})); diff --git a/js/i18n/defaults-de_DE.min.js b/js/i18n/defaults-de_DE.min.js deleted file mode 100644 index 37753a2..0000000 --- a/js/i18n/defaults-de_DE.min.js +++ /dev/null @@ -1,7 +0,0 @@ -/*! - * Bootstrap-select v1.12.4 (http://silviomoreto.github.io/bootstrap-select) - * - * Copyright 2013-2017 bootstrap-select - * Licensed under MIT (https://github.com/silviomoreto/bootstrap-select/blob/master/LICENSE) - */ -!function(a,b){"function"==typeof define&&define.amd?define(["jquery"],function(a){return b(a)}):"object"==typeof module&&module.exports?module.exports=b(require("jquery")):b(a.jQuery)}(this,function(a){!function(a){a.fn.selectpicker.defaults={noneSelectedText:"Bitte wählen...",noneResultsText:"Keine Ergebnisse für {0}",countSelectedText:function(a,b){return 1==a?"{0} Element ausgewählt":"{0} Elemente ausgewählt"},maxOptionsText:function(a,b){return[1==a?"Limit erreicht ({n} Element max.)":"Limit erreicht ({n} Elemente max.)",1==b?"Gruppen-Limit erreicht ({n} Element max.)":"Gruppen-Limit erreicht ({n} Elemente max.)"]},selectAllText:"Alles auswählen",deselectAllText:"Nichts auswählen",multipleSeparator:", "}}(a)}); \ No newline at end of file diff --git a/js/i18n/defaults-en_US.js b/js/i18n/defaults-en_US.js deleted file mode 100644 index 7f5840a..0000000 --- a/js/i18n/defaults-en_US.js +++ /dev/null @@ -1,44 +0,0 @@ -/*! - * Bootstrap-select v1.12.4 (http://silviomoreto.github.io/bootstrap-select) - * - * Copyright 2013-2017 bootstrap-select - * Licensed under MIT (https://github.com/silviomoreto/bootstrap-select/blob/master/LICENSE) - */ - -(function (root, factory) { - if (typeof define === 'function' && define.amd) { - // AMD. Register as an anonymous module unless amdModuleId is set - define(["jquery"], function (a0) { - return (factory(a0)); - }); - } else if (typeof module === 'object' && module.exports) { - // Node. Does not work with strict CommonJS, but - // only CommonJS-like environments that support module.exports, - // like Node. - module.exports = factory(require("jquery")); - } else { - factory(root["jQuery"]); - } -}(this, function (jQuery) { - -(function ($) { - $.fn.selectpicker.defaults = { - noneSelectedText: 'Nothing selected', - noneResultsText: 'No results match {0}', - countSelectedText: function (numSelected, numTotal) { - return (numSelected == 1) ? "{0} item selected" : "{0} items selected"; - }, - maxOptionsText: function (numAll, numGroup) { - return [ - (numAll == 1) ? 'Limit reached ({n} item max)' : 'Limit reached ({n} items max)', - (numGroup == 1) ? 'Group limit reached ({n} item max)' : 'Group limit reached ({n} items max)' - ]; - }, - selectAllText: 'Select All', - deselectAllText: 'Deselect All', - multipleSeparator: ', ' - }; -})(jQuery); - - -})); diff --git a/js/i18n/defaults-en_US.min.js b/js/i18n/defaults-en_US.min.js deleted file mode 100644 index 356e6a9..0000000 --- a/js/i18n/defaults-en_US.min.js +++ /dev/null @@ -1,7 +0,0 @@ -/*! - * Bootstrap-select v1.12.4 (http://silviomoreto.github.io/bootstrap-select) - * - * Copyright 2013-2017 bootstrap-select - * Licensed under MIT (https://github.com/silviomoreto/bootstrap-select/blob/master/LICENSE) - */ -!function(a,b){"function"==typeof define&&define.amd?define(["jquery"],function(a){return b(a)}):"object"==typeof module&&module.exports?module.exports=b(require("jquery")):b(a.jQuery)}(this,function(a){!function(a){a.fn.selectpicker.defaults={noneSelectedText:"Nothing selected",noneResultsText:"No results match {0}",countSelectedText:function(a,b){return 1==a?"{0} item selected":"{0} items selected"},maxOptionsText:function(a,b){return[1==a?"Limit reached ({n} item max)":"Limit reached ({n} items max)",1==b?"Group limit reached ({n} item max)":"Group limit reached ({n} items max)"]},selectAllText:"Select All",deselectAllText:"Deselect All",multipleSeparator:", "}}(a)}); \ No newline at end of file diff --git a/js/i18n/defaults-es_CL.js b/js/i18n/defaults-es_CL.js deleted file mode 100644 index f4a2708..0000000 --- a/js/i18n/defaults-es_CL.js +++ /dev/null @@ -1,37 +0,0 @@ -/*! - * Bootstrap-select v1.12.4 (http://silviomoreto.github.io/bootstrap-select) - * - * Copyright 2013-2017 bootstrap-select - * Licensed under MIT (https://github.com/silviomoreto/bootstrap-select/blob/master/LICENSE) - */ - -(function (root, factory) { - if (typeof define === 'function' && define.amd) { - // AMD. Register as an anonymous module unless amdModuleId is set - define(["jquery"], function (a0) { - return (factory(a0)); - }); - } else if (typeof module === 'object' && module.exports) { - // Node. Does not work with strict CommonJS, but - // only CommonJS-like environments that support module.exports, - // like Node. - module.exports = factory(require("jquery")); - } else { - factory(root["jQuery"]); - } -}(this, function (jQuery) { - -(function ($) { - $.fn.selectpicker.defaults = { - noneSelectedText: 'No hay selección', - noneResultsText: 'No hay resultados {0}', - countSelectedText: 'Seleccionados {0} de {1}', - maxOptionsText: ['Límite alcanzado ({n} {var} max)', 'Límite del grupo alcanzado({n} {var} max)', ['elementos', 'element']], - multipleSeparator: ', ', - selectAllText: 'Seleccionar Todos', - deselectAllText: 'Desmarcar Todos' - }; -})(jQuery); - - -})); diff --git a/js/i18n/defaults-es_CL.min.js b/js/i18n/defaults-es_CL.min.js deleted file mode 100644 index 2943b78..0000000 --- a/js/i18n/defaults-es_CL.min.js +++ /dev/null @@ -1,7 +0,0 @@ -/*! - * Bootstrap-select v1.12.4 (http://silviomoreto.github.io/bootstrap-select) - * - * Copyright 2013-2017 bootstrap-select - * Licensed under MIT (https://github.com/silviomoreto/bootstrap-select/blob/master/LICENSE) - */ -!function(a,b){"function"==typeof define&&define.amd?define(["jquery"],function(a){return b(a)}):"object"==typeof module&&module.exports?module.exports=b(require("jquery")):b(a.jQuery)}(this,function(a){!function(a){a.fn.selectpicker.defaults={noneSelectedText:"No hay selección",noneResultsText:"No hay resultados {0}",countSelectedText:"Seleccionados {0} de {1}",maxOptionsText:["Límite alcanzado ({n} {var} max)","Límite del grupo alcanzado({n} {var} max)",["elementos","element"]],multipleSeparator:", ",selectAllText:"Seleccionar Todos",deselectAllText:"Desmarcar Todos"}}(a)}); \ No newline at end of file diff --git a/js/i18n/defaults-es_ES.js b/js/i18n/defaults-es_ES.js deleted file mode 100644 index f4a2708..0000000 --- a/js/i18n/defaults-es_ES.js +++ /dev/null @@ -1,37 +0,0 @@ -/*! - * Bootstrap-select v1.12.4 (http://silviomoreto.github.io/bootstrap-select) - * - * Copyright 2013-2017 bootstrap-select - * Licensed under MIT (https://github.com/silviomoreto/bootstrap-select/blob/master/LICENSE) - */ - -(function (root, factory) { - if (typeof define === 'function' && define.amd) { - // AMD. Register as an anonymous module unless amdModuleId is set - define(["jquery"], function (a0) { - return (factory(a0)); - }); - } else if (typeof module === 'object' && module.exports) { - // Node. Does not work with strict CommonJS, but - // only CommonJS-like environments that support module.exports, - // like Node. - module.exports = factory(require("jquery")); - } else { - factory(root["jQuery"]); - } -}(this, function (jQuery) { - -(function ($) { - $.fn.selectpicker.defaults = { - noneSelectedText: 'No hay selección', - noneResultsText: 'No hay resultados {0}', - countSelectedText: 'Seleccionados {0} de {1}', - maxOptionsText: ['Límite alcanzado ({n} {var} max)', 'Límite del grupo alcanzado({n} {var} max)', ['elementos', 'element']], - multipleSeparator: ', ', - selectAllText: 'Seleccionar Todos', - deselectAllText: 'Desmarcar Todos' - }; -})(jQuery); - - -})); diff --git a/js/i18n/defaults-es_ES.min.js b/js/i18n/defaults-es_ES.min.js deleted file mode 100644 index 2943b78..0000000 --- a/js/i18n/defaults-es_ES.min.js +++ /dev/null @@ -1,7 +0,0 @@ -/*! - * Bootstrap-select v1.12.4 (http://silviomoreto.github.io/bootstrap-select) - * - * Copyright 2013-2017 bootstrap-select - * Licensed under MIT (https://github.com/silviomoreto/bootstrap-select/blob/master/LICENSE) - */ -!function(a,b){"function"==typeof define&&define.amd?define(["jquery"],function(a){return b(a)}):"object"==typeof module&&module.exports?module.exports=b(require("jquery")):b(a.jQuery)}(this,function(a){!function(a){a.fn.selectpicker.defaults={noneSelectedText:"No hay selección",noneResultsText:"No hay resultados {0}",countSelectedText:"Seleccionados {0} de {1}",maxOptionsText:["Límite alcanzado ({n} {var} max)","Límite del grupo alcanzado({n} {var} max)",["elementos","element"]],multipleSeparator:", ",selectAllText:"Seleccionar Todos",deselectAllText:"Desmarcar Todos"}}(a)}); \ No newline at end of file diff --git a/js/i18n/defaults-et_EE.js b/js/i18n/defaults-et_EE.js deleted file mode 100644 index b78a1b9..0000000 --- a/js/i18n/defaults-et_EE.js +++ /dev/null @@ -1,44 +0,0 @@ -/*! - * Bootstrap-select v1.12.4 (http://silviomoreto.github.io/bootstrap-select) - * - * Copyright 2013-2017 bootstrap-select - * Licensed under MIT (https://github.com/silviomoreto/bootstrap-select/blob/master/LICENSE) - */ - -(function (root, factory) { - if (typeof define === 'function' && define.amd) { - // AMD. Register as an anonymous module unless amdModuleId is set - define(["jquery"], function (a0) { - return (factory(a0)); - }); - } else if (typeof module === 'object' && module.exports) { - // Node. Does not work with strict CommonJS, but - // only CommonJS-like environments that support module.exports, - // like Node. - module.exports = factory(require("jquery")); - } else { - factory(root["jQuery"]); - } -}(this, function (jQuery) { - -(function ($) { - $.fn.selectpicker.defaults = { - noneSelectedText: 'Valikut pole tehtud', - noneResultsText: 'Otsingule {0} ei ole vasteid', - countSelectedText: function (numSelected, numTotal) { - return (numSelected == 1) ? "{0} item selected" : "{0} items selected"; - }, - maxOptionsText: function (numAll, numGroup) { - return [ - 'Limiit on {n} max', - 'Globaalne limiit on {n} max' - ]; - }, - selectAllText: 'Vali kõik', - deselectAllText: 'Tühista kõik', - multipleSeparator: ', ' - }; -})(jQuery); - - -})); diff --git a/js/i18n/defaults-et_EE.min.js b/js/i18n/defaults-et_EE.min.js deleted file mode 100644 index e808b57..0000000 --- a/js/i18n/defaults-et_EE.min.js +++ /dev/null @@ -1,7 +0,0 @@ -/*! - * Bootstrap-select v1.12.4 (http://silviomoreto.github.io/bootstrap-select) - * - * Copyright 2013-2017 bootstrap-select - * Licensed under MIT (https://github.com/silviomoreto/bootstrap-select/blob/master/LICENSE) - */ -!function(a,b){"function"==typeof define&&define.amd?define(["jquery"],function(a){return b(a)}):"object"==typeof module&&module.exports?module.exports=b(require("jquery")):b(a.jQuery)}(this,function(a){!function(a){a.fn.selectpicker.defaults={noneSelectedText:"Valikut pole tehtud",noneResultsText:"Otsingule {0} ei ole vasteid",countSelectedText:function(a,b){return 1==a?"{0} item selected":"{0} items selected"},maxOptionsText:function(a,b){return["Limiit on {n} max","Globaalne limiit on {n} max"]},selectAllText:"Vali kõik",deselectAllText:"Tühista kõik",multipleSeparator:", "}}(a)}); \ No newline at end of file diff --git a/js/i18n/defaults-eu.js b/js/i18n/defaults-eu.js deleted file mode 100644 index 3aebbe7..0000000 --- a/js/i18n/defaults-eu.js +++ /dev/null @@ -1,37 +0,0 @@ -/*! - * Bootstrap-select v1.12.4 (http://silviomoreto.github.io/bootstrap-select) - * - * Copyright 2013-2017 bootstrap-select - * Licensed under MIT (https://github.com/silviomoreto/bootstrap-select/blob/master/LICENSE) - */ - -(function (root, factory) { - if (typeof define === 'function' && define.amd) { - // AMD. Register as an anonymous module unless amdModuleId is set - define(["jquery"], function (a0) { - return (factory(a0)); - }); - } else if (typeof module === 'object' && module.exports) { - // Node. Does not work with strict CommonJS, but - // only CommonJS-like environments that support module.exports, - // like Node. - module.exports = factory(require("jquery")); - } else { - factory(root["jQuery"]); - } -}(this, function (jQuery) { - -(function ($) { - $.fn.selectpicker.defaults = { - noneSelectedText: 'Hautapenik ez', - noneResultsText: 'Emaitzarik ez {0}', - countSelectedText: '{1}(e)tik {0} hautatuta', - maxOptionsText: ['Mugara iritsita ({n} {var} gehienez)', 'Taldearen mugara iritsita ({n} {var} gehienez)', ['elementu', 'elementu']], - multipleSeparator: ', ', - selectAllText: 'Hautatu Guztiak', - deselectAllText: 'Desautatu Guztiak' - }; -})(jQuery); - - -})); diff --git a/js/i18n/defaults-eu.min.js b/js/i18n/defaults-eu.min.js deleted file mode 100644 index b783e88..0000000 --- a/js/i18n/defaults-eu.min.js +++ /dev/null @@ -1,7 +0,0 @@ -/*! - * Bootstrap-select v1.12.4 (http://silviomoreto.github.io/bootstrap-select) - * - * Copyright 2013-2017 bootstrap-select - * Licensed under MIT (https://github.com/silviomoreto/bootstrap-select/blob/master/LICENSE) - */ -!function(a,b){"function"==typeof define&&define.amd?define(["jquery"],function(a){return b(a)}):"object"==typeof module&&module.exports?module.exports=b(require("jquery")):b(a.jQuery)}(this,function(a){!function(a){a.fn.selectpicker.defaults={noneSelectedText:"Hautapenik ez",noneResultsText:"Emaitzarik ez {0}",countSelectedText:"{1}(e)tik {0} hautatuta",maxOptionsText:["Mugara iritsita ({n} {var} gehienez)","Taldearen mugara iritsita ({n} {var} gehienez)",["elementu","elementu"]],multipleSeparator:", ",selectAllText:"Hautatu Guztiak",deselectAllText:"Desautatu Guztiak"}}(a)}); \ No newline at end of file diff --git a/js/i18n/defaults-fa_IR.js b/js/i18n/defaults-fa_IR.js deleted file mode 100644 index 511555d..0000000 --- a/js/i18n/defaults-fa_IR.js +++ /dev/null @@ -1,37 +0,0 @@ -/*! - * Bootstrap-select v1.12.4 (http://silviomoreto.github.io/bootstrap-select) - * - * Copyright 2013-2017 bootstrap-select - * Licensed under MIT (https://github.com/silviomoreto/bootstrap-select/blob/master/LICENSE) - */ - -(function (root, factory) { - if (typeof define === 'function' && define.amd) { - // AMD. Register as an anonymous module unless amdModuleId is set - define(["jquery"], function (a0) { - return (factory(a0)); - }); - } else if (typeof module === 'object' && module.exports) { - // Node. Does not work with strict CommonJS, but - // only CommonJS-like environments that support module.exports, - // like Node. - module.exports = factory(require("jquery")); - } else { - factory(root["jQuery"]); - } -}(this, function (jQuery) { - -(function ($) { - $.fn.selectpicker.defaults = { - noneSelectedText: 'چیزی انتخاب نشده است', - noneResultsText: 'هیج مشابهی برای {0} پیدا نشد', - countSelectedText: "{0} از {1} مورد انتخاب شده", - maxOptionsText: ['بیشتر ممکن نیست {حداکثر {n} عدد}', 'بیشتر ممکن نیست {حداکثر {n} عدد}'], - selectAllText: 'انتخاب همه', - deselectAllText: 'انتخاب هیچ کدام', - multipleSeparator: ', ' - }; -})(jQuery); - - -})); diff --git a/js/i18n/defaults-fa_IR.min.js b/js/i18n/defaults-fa_IR.min.js deleted file mode 100644 index 871b70f..0000000 --- a/js/i18n/defaults-fa_IR.min.js +++ /dev/null @@ -1,7 +0,0 @@ -/*! - * Bootstrap-select v1.12.4 (http://silviomoreto.github.io/bootstrap-select) - * - * Copyright 2013-2017 bootstrap-select - * Licensed under MIT (https://github.com/silviomoreto/bootstrap-select/blob/master/LICENSE) - */ -!function(a,b){"function"==typeof define&&define.amd?define(["jquery"],function(a){return b(a)}):"object"==typeof module&&module.exports?module.exports=b(require("jquery")):b(a.jQuery)}(this,function(a){!function(a){a.fn.selectpicker.defaults={noneSelectedText:"چیزی انتخاب نشده است",noneResultsText:"هیج مشابهی برای {0} پیدا نشد",countSelectedText:"{0} از {1} مورد انتخاب شده",maxOptionsText:["بیشتر ممکن نیست {حداکثر {n} عدد}","بیشتر ممکن نیست {حداکثر {n} عدد}"],selectAllText:"انتخاب همه",deselectAllText:"انتخاب هیچ کدام",multipleSeparator:", "}}(a)}); \ No newline at end of file diff --git a/js/i18n/defaults-fi_FI.js b/js/i18n/defaults-fi_FI.js deleted file mode 100644 index 73ce21f..0000000 --- a/js/i18n/defaults-fi_FI.js +++ /dev/null @@ -1,44 +0,0 @@ -/*! - * Bootstrap-select v1.12.4 (http://silviomoreto.github.io/bootstrap-select) - * - * Copyright 2013-2017 bootstrap-select - * Licensed under MIT (https://github.com/silviomoreto/bootstrap-select/blob/master/LICENSE) - */ - -(function (root, factory) { - if (typeof define === 'function' && define.amd) { - // AMD. Register as an anonymous module unless amdModuleId is set - define(["jquery"], function (a0) { - return (factory(a0)); - }); - } else if (typeof module === 'object' && module.exports) { - // Node. Does not work with strict CommonJS, but - // only CommonJS-like environments that support module.exports, - // like Node. - module.exports = factory(require("jquery")); - } else { - factory(root["jQuery"]); - } -}(this, function (jQuery) { - -(function ($) { - $.fn.selectpicker.defaults = { - noneSelectedText: 'Ei valintoja', - noneResultsText: 'Ei hakutuloksia {0}', - countSelectedText: function (numSelected, numTotal) { - return (numSelected == 1) ? "{0} valittu" : "{0} valitut"; - }, - maxOptionsText: function (numAll, numGroup) { - return [ - (numAll == 1) ? 'Valintojen maksimimäärä ({n} saavutettu)' : 'Valintojen maksimimäärä ({n} saavutettu)', - (numGroup == 1) ? 'Ryhmän maksimimäärä ({n} saavutettu)' : 'Ryhmän maksimimäärä ({n} saavutettu)' - ]; - }, - selectAllText: 'Valitse kaikki', - deselectAllText: 'Poista kaikki', - multipleSeparator: ', ' - }; -})(jQuery); - - -})); diff --git a/js/i18n/defaults-fi_FI.min.js b/js/i18n/defaults-fi_FI.min.js deleted file mode 100644 index 9d9638e..0000000 --- a/js/i18n/defaults-fi_FI.min.js +++ /dev/null @@ -1,7 +0,0 @@ -/*! - * Bootstrap-select v1.12.4 (http://silviomoreto.github.io/bootstrap-select) - * - * Copyright 2013-2017 bootstrap-select - * Licensed under MIT (https://github.com/silviomoreto/bootstrap-select/blob/master/LICENSE) - */ -!function(a,b){"function"==typeof define&&define.amd?define(["jquery"],function(a){return b(a)}):"object"==typeof module&&module.exports?module.exports=b(require("jquery")):b(a.jQuery)}(this,function(a){!function(a){a.fn.selectpicker.defaults={noneSelectedText:"Ei valintoja",noneResultsText:"Ei hakutuloksia {0}",countSelectedText:function(a,b){return 1==a?"{0} valittu":"{0} valitut"},maxOptionsText:function(a,b){return["Valintojen maksimimäärä ({n} saavutettu)","Ryhmän maksimimäärä ({n} saavutettu)"]},selectAllText:"Valitse kaikki",deselectAllText:"Poista kaikki",multipleSeparator:", "}}(a)}); \ No newline at end of file diff --git a/js/i18n/defaults-fr_FR.js b/js/i18n/defaults-fr_FR.js deleted file mode 100644 index c9b0417..0000000 --- a/js/i18n/defaults-fr_FR.js +++ /dev/null @@ -1,44 +0,0 @@ -/*! - * Bootstrap-select v1.12.4 (http://silviomoreto.github.io/bootstrap-select) - * - * Copyright 2013-2017 bootstrap-select - * Licensed under MIT (https://github.com/silviomoreto/bootstrap-select/blob/master/LICENSE) - */ - -(function (root, factory) { - if (typeof define === 'function' && define.amd) { - // AMD. Register as an anonymous module unless amdModuleId is set - define(["jquery"], function (a0) { - return (factory(a0)); - }); - } else if (typeof module === 'object' && module.exports) { - // Node. Does not work with strict CommonJS, but - // only CommonJS-like environments that support module.exports, - // like Node. - module.exports = factory(require("jquery")); - } else { - factory(root["jQuery"]); - } -}(this, function (jQuery) { - -(function ($) { - $.fn.selectpicker.defaults = { - noneSelectedText: 'Aucune sélection', - noneResultsText: 'Aucun résultat pour {0}', - countSelectedText: function (numSelected, numTotal) { - return (numSelected > 1) ? "{0} éléments sélectionnés" : "{0} élément sélectionné"; - }, - maxOptionsText: function (numAll, numGroup) { - return [ - (numAll > 1) ? 'Limite atteinte ({n} éléments max)' : 'Limite atteinte ({n} élément max)', - (numGroup > 1) ? 'Limite du groupe atteinte ({n} éléments max)' : 'Limite du groupe atteinte ({n} élément max)' - ]; - }, - multipleSeparator: ', ', - selectAllText: 'Tout sélectionner', - deselectAllText: 'Tout désélectionner', - }; -})(jQuery); - - -})); diff --git a/js/i18n/defaults-fr_FR.min.js b/js/i18n/defaults-fr_FR.min.js deleted file mode 100644 index bb6c236..0000000 --- a/js/i18n/defaults-fr_FR.min.js +++ /dev/null @@ -1,7 +0,0 @@ -/*! - * Bootstrap-select v1.12.4 (http://silviomoreto.github.io/bootstrap-select) - * - * Copyright 2013-2017 bootstrap-select - * Licensed under MIT (https://github.com/silviomoreto/bootstrap-select/blob/master/LICENSE) - */ -!function(a,b){"function"==typeof define&&define.amd?define(["jquery"],function(a){return b(a)}):"object"==typeof module&&module.exports?module.exports=b(require("jquery")):b(a.jQuery)}(this,function(a){!function(a){a.fn.selectpicker.defaults={noneSelectedText:"Aucune sélection",noneResultsText:"Aucun résultat pour {0}",countSelectedText:function(a,b){return a>1?"{0} éléments sélectionnés":"{0} élément sélectionné"},maxOptionsText:function(a,b){return[a>1?"Limite atteinte ({n} éléments max)":"Limite atteinte ({n} élément max)",b>1?"Limite du groupe atteinte ({n} éléments max)":"Limite du groupe atteinte ({n} élément max)"]},multipleSeparator:", ",selectAllText:"Tout sélectionner",deselectAllText:"Tout désélectionner"}}(a)}); \ No newline at end of file diff --git a/js/i18n/defaults-hu_HU.js b/js/i18n/defaults-hu_HU.js deleted file mode 100644 index 6b8b10a..0000000 --- a/js/i18n/defaults-hu_HU.js +++ /dev/null @@ -1,44 +0,0 @@ -/*! - * Bootstrap-select v1.12.4 (http://silviomoreto.github.io/bootstrap-select) - * - * Copyright 2013-2017 bootstrap-select - * Licensed under MIT (https://github.com/silviomoreto/bootstrap-select/blob/master/LICENSE) - */ - -(function (root, factory) { - if (typeof define === 'function' && define.amd) { - // AMD. Register as an anonymous module unless amdModuleId is set - define(["jquery"], function (a0) { - return (factory(a0)); - }); - } else if (typeof module === 'object' && module.exports) { - // Node. Does not work with strict CommonJS, but - // only CommonJS-like environments that support module.exports, - // like Node. - module.exports = factory(require("jquery")); - } else { - factory(root["jQuery"]); - } -}(this, function (jQuery) { - -(function ($) { - $.fn.selectpicker.defaults = { - noneSelectedText: 'Válasszon!', - noneResultsText: 'Nincs találat {0}', - countSelectedText: function (numSelected, numTotal) { - return '{0} elem kiválasztva'; - }, - maxOptionsText: function (numAll, numGroup) { - return [ - 'Legfeljebb {n} elem választható', - 'A csoportban legfeljebb {n} elem választható' - ]; - }, - selectAllText: 'Mind', - deselectAllText: 'Egyik sem', - multipleSeparator: ', ' - }; -})(jQuery); - - -})); diff --git a/js/i18n/defaults-hu_HU.min.js b/js/i18n/defaults-hu_HU.min.js deleted file mode 100644 index 6eea515..0000000 --- a/js/i18n/defaults-hu_HU.min.js +++ /dev/null @@ -1,7 +0,0 @@ -/*! - * Bootstrap-select v1.12.4 (http://silviomoreto.github.io/bootstrap-select) - * - * Copyright 2013-2017 bootstrap-select - * Licensed under MIT (https://github.com/silviomoreto/bootstrap-select/blob/master/LICENSE) - */ -!function(a,b){"function"==typeof define&&define.amd?define(["jquery"],function(a){return b(a)}):"object"==typeof module&&module.exports?module.exports=b(require("jquery")):b(a.jQuery)}(this,function(a){!function(a){a.fn.selectpicker.defaults={noneSelectedText:"Válasszon!",noneResultsText:"Nincs találat {0}",countSelectedText:function(a,b){return"{0} elem kiválasztva"},maxOptionsText:function(a,b){return["Legfeljebb {n} elem választható","A csoportban legfeljebb {n} elem választható"]},selectAllText:"Mind",deselectAllText:"Egyik sem",multipleSeparator:", "}}(a)}); \ No newline at end of file diff --git a/js/i18n/defaults-id_ID.js b/js/i18n/defaults-id_ID.js deleted file mode 100644 index 1f3d27f..0000000 --- a/js/i18n/defaults-id_ID.js +++ /dev/null @@ -1,37 +0,0 @@ -/*! - * Bootstrap-select v1.12.4 (http://silviomoreto.github.io/bootstrap-select) - * - * Copyright 2013-2017 bootstrap-select - * Licensed under MIT (https://github.com/silviomoreto/bootstrap-select/blob/master/LICENSE) - */ - -(function (root, factory) { - if (typeof define === 'function' && define.amd) { - // AMD. Register as an anonymous module unless amdModuleId is set - define(["jquery"], function (a0) { - return (factory(a0)); - }); - } else if (typeof module === 'object' && module.exports) { - // Node. Does not work with strict CommonJS, but - // only CommonJS-like environments that support module.exports, - // like Node. - module.exports = factory(require("jquery")); - } else { - factory(root["jQuery"]); - } -}(this, function (jQuery) { - -(function ($) { - $.fn.selectpicker.defaults = { - noneSelectedText: 'Tidak ada yang dipilih', - noneResultsText: 'Tidak ada yang cocok {0}', - countSelectedText: '{0} terpilih', - maxOptionsText: ['Mencapai batas (maksimum {n})', 'Mencapai batas grup (maksimum {n})'], - selectAllText: 'Pilih Semua', - deselectAllText: 'Hapus Semua', - multipleSeparator: ', ' - }; -})(jQuery); - - -})); diff --git a/js/i18n/defaults-id_ID.min.js b/js/i18n/defaults-id_ID.min.js deleted file mode 100644 index e61f0f5..0000000 --- a/js/i18n/defaults-id_ID.min.js +++ /dev/null @@ -1,7 +0,0 @@ -/*! - * Bootstrap-select v1.12.4 (http://silviomoreto.github.io/bootstrap-select) - * - * Copyright 2013-2017 bootstrap-select - * Licensed under MIT (https://github.com/silviomoreto/bootstrap-select/blob/master/LICENSE) - */ -!function(a,b){"function"==typeof define&&define.amd?define(["jquery"],function(a){return b(a)}):"object"==typeof module&&module.exports?module.exports=b(require("jquery")):b(a.jQuery)}(this,function(a){!function(a){a.fn.selectpicker.defaults={noneSelectedText:"Tidak ada yang dipilih",noneResultsText:"Tidak ada yang cocok {0}",countSelectedText:"{0} terpilih",maxOptionsText:["Mencapai batas (maksimum {n})","Mencapai batas grup (maksimum {n})"],selectAllText:"Pilih Semua",deselectAllText:"Hapus Semua",multipleSeparator:", "}}(a)}); \ No newline at end of file diff --git a/js/i18n/defaults-it_IT.js b/js/i18n/defaults-it_IT.js deleted file mode 100644 index c3b7003..0000000 --- a/js/i18n/defaults-it_IT.js +++ /dev/null @@ -1,39 +0,0 @@ -/*! - * Bootstrap-select v1.12.4 (http://silviomoreto.github.io/bootstrap-select) - * - * Copyright 2013-2017 bootstrap-select - * Licensed under MIT (https://github.com/silviomoreto/bootstrap-select/blob/master/LICENSE) - */ - -(function (root, factory) { - if (typeof define === 'function' && define.amd) { - // AMD. Register as an anonymous module unless amdModuleId is set - define(["jquery"], function (a0) { - return (factory(a0)); - }); - } else if (typeof module === 'object' && module.exports) { - // Node. Does not work with strict CommonJS, but - // only CommonJS-like environments that support module.exports, - // like Node. - module.exports = factory(require("jquery")); - } else { - factory(root["jQuery"]); - } -}(this, function (jQuery) { - -(function ($) { - $.fn.selectpicker.defaults = { - noneSelectedText: 'Nessuna selezione', - noneResultsText: 'Nessun risultato per {0}', - countSelectedText: function (numSelected, numTotal){ - return (numSelected == 1) ? 'Selezionato {0} di {1}' : 'Selezionati {0} di {1}'; - }, - maxOptionsText: ['Limite raggiunto ({n} {var} max)', 'Limite del gruppo raggiunto ({n} {var} max)', ['elementi', 'elemento']], - multipleSeparator: ', ', - selectAllText: 'Seleziona Tutto', - deselectAllText: 'Deseleziona Tutto' - }; -})(jQuery); - - -})); diff --git a/js/i18n/defaults-it_IT.min.js b/js/i18n/defaults-it_IT.min.js deleted file mode 100644 index 2f3d398..0000000 --- a/js/i18n/defaults-it_IT.min.js +++ /dev/null @@ -1,7 +0,0 @@ -/*! - * Bootstrap-select v1.12.4 (http://silviomoreto.github.io/bootstrap-select) - * - * Copyright 2013-2017 bootstrap-select - * Licensed under MIT (https://github.com/silviomoreto/bootstrap-select/blob/master/LICENSE) - */ -!function(a,b){"function"==typeof define&&define.amd?define(["jquery"],function(a){return b(a)}):"object"==typeof module&&module.exports?module.exports=b(require("jquery")):b(a.jQuery)}(this,function(a){!function(a){a.fn.selectpicker.defaults={noneSelectedText:"Nessuna selezione",noneResultsText:"Nessun risultato per {0}",countSelectedText:function(a,b){return 1==a?"Selezionato {0} di {1}":"Selezionati {0} di {1}"},maxOptionsText:["Limite raggiunto ({n} {var} max)","Limite del gruppo raggiunto ({n} {var} max)",["elementi","elemento"]],multipleSeparator:", ",selectAllText:"Seleziona Tutto",deselectAllText:"Deseleziona Tutto"}}(a)}); \ No newline at end of file diff --git a/js/i18n/defaults-ja_JP.js b/js/i18n/defaults-ja_JP.js deleted file mode 100644 index ba6b4a6..0000000 --- a/js/i18n/defaults-ja_JP.js +++ /dev/null @@ -1,37 +0,0 @@ -/*! - * Bootstrap-select v1.12.4 (http://silviomoreto.github.io/bootstrap-select) - * - * Copyright 2013-2017 bootstrap-select - * Licensed under MIT (https://github.com/silviomoreto/bootstrap-select/blob/master/LICENSE) - */ - -(function (root, factory) { - if (typeof define === 'function' && define.amd) { - // AMD. Register as an anonymous module unless amdModuleId is set - define(["jquery"], function (a0) { - return (factory(a0)); - }); - } else if (typeof module === 'object' && module.exports) { - // Node. Does not work with strict CommonJS, but - // only CommonJS-like environments that support module.exports, - // like Node. - module.exports = factory(require("jquery")); - } else { - factory(root["jQuery"]); - } -}(this, function (jQuery) { - -(function ($) { - $.fn.selectpicker.defaults = { - noneSelectedText: '何もが選択した', - noneResultsText: '\'{0}\'が結果を返さない', - countSelectedText: '{0}/{1}が選択した', - maxOptionsText: ['限界は達した({n}{var}最大)', '限界をグループは達した({n}{var}最大)', ['アイテム', 'アイテム']], - selectAllText: '全部を選択する', - deselectAllText: '何も選択しない', - multipleSeparator: ', ' - }; -})(jQuery); - - -})); diff --git a/js/i18n/defaults-ja_JP.min.js b/js/i18n/defaults-ja_JP.min.js deleted file mode 100644 index 279a07f..0000000 --- a/js/i18n/defaults-ja_JP.min.js +++ /dev/null @@ -1,7 +0,0 @@ -/*! - * Bootstrap-select v1.12.4 (http://silviomoreto.github.io/bootstrap-select) - * - * Copyright 2013-2017 bootstrap-select - * Licensed under MIT (https://github.com/silviomoreto/bootstrap-select/blob/master/LICENSE) - */ -!function(a,b){"function"==typeof define&&define.amd?define(["jquery"],function(a){return b(a)}):"object"==typeof module&&module.exports?module.exports=b(require("jquery")):b(a.jQuery)}(this,function(a){!function(a){a.fn.selectpicker.defaults={noneSelectedText:"何もが選択した",noneResultsText:"'{0}'が結果を返さない",countSelectedText:"{0}/{1}が選択した",maxOptionsText:["限界は達した({n}{var}最大)","限界をグループは達した({n}{var}最大)",["アイテム","アイテム"]],selectAllText:"全部を選択する",deselectAllText:"何も選択しない",multipleSeparator:", "}}(a)}); \ No newline at end of file diff --git a/js/i18n/defaults-kh_KM.js b/js/i18n/defaults-kh_KM.js deleted file mode 100644 index 48159de..0000000 --- a/js/i18n/defaults-kh_KM.js +++ /dev/null @@ -1,44 +0,0 @@ -/*! - * Bootstrap-select v1.12.4 (http://silviomoreto.github.io/bootstrap-select) - * - * Copyright 2013-2017 bootstrap-select - * Licensed under MIT (https://github.com/silviomoreto/bootstrap-select/blob/master/LICENSE) - */ - -(function (root, factory) { - if (typeof define === 'function' && define.amd) { - // AMD. Register as an anonymous module unless amdModuleId is set - define(["jquery"], function (a0) { - return (factory(a0)); - }); - } else if (typeof module === 'object' && module.exports) { - // Node. Does not work with strict CommonJS, but - // only CommonJS-like environments that support module.exports, - // like Node. - module.exports = factory(require("jquery")); - } else { - factory(root["jQuery"]); - } -}(this, function (jQuery) { - -(function ($) { - $.fn.selectpicker.defaults = { - noneSelectedText: 'មិនមានអ្វីបានជ្រើសរើស', - noneResultsText: 'មិនមានលទ្ធផល {0}', - countSelectedText: function (numSelected, numTotal) { - return (numSelected == 1) ? "{0} ធាតុដែលបានជ្រើស" : "{0} ធាតុដែលបានជ្រើស"; - }, - maxOptionsText: function (numAll, numGroup) { - return [ - (numAll == 1) ? 'ឈានដល់ដែនកំណត់ ( {n} ធាតុអតិបរមា)' : 'អតិបរមាឈានដល់ដែនកំណត់ ( {n} ធាតុ)', - (numGroup == 1) ? 'ដែនកំណត់ក្រុមឈានដល់ ( {n} អតិបរមាធាតុ)' : 'អតិបរមាក្រុមឈានដល់ដែនកំណត់ ( {n} ធាតុ)' - ]; - }, - selectAllText: 'ជ្រើស​យក​ទាំងអស់', - deselectAllText: 'មិនជ្រើស​យក​ទាំងអស', - multipleSeparator: ', ' - }; -})(jQuery); - - -})); diff --git a/js/i18n/defaults-kh_KM.min.js b/js/i18n/defaults-kh_KM.min.js deleted file mode 100644 index 3ba80e3..0000000 --- a/js/i18n/defaults-kh_KM.min.js +++ /dev/null @@ -1,7 +0,0 @@ -/*! - * Bootstrap-select v1.12.4 (http://silviomoreto.github.io/bootstrap-select) - * - * Copyright 2013-2017 bootstrap-select - * Licensed under MIT (https://github.com/silviomoreto/bootstrap-select/blob/master/LICENSE) - */ -!function(a,b){"function"==typeof define&&define.amd?define(["jquery"],function(a){return b(a)}):"object"==typeof module&&module.exports?module.exports=b(require("jquery")):b(a.jQuery)}(this,function(a){!function(a){a.fn.selectpicker.defaults={noneSelectedText:"មិនមានអ្វីបានជ្រើសរើស",noneResultsText:"មិនមានលទ្ធផល {0}",countSelectedText:function(a,b){return"{0} ធាតុដែលបានជ្រើស"},maxOptionsText:function(a,b){return[1==a?"ឈានដល់ដែនកំណត់ ( {n} ធាតុអតិបរមា)":"អតិបរមាឈានដល់ដែនកំណត់ ( {n} ធាតុ)",1==b?"ដែនកំណត់ក្រុមឈានដល់ ( {n} អតិបរមាធាតុ)":"អតិបរមាក្រុមឈានដល់ដែនកំណត់ ( {n} ធាតុ)"]},selectAllText:"ជ្រើស​យក​ទាំងអស់",deselectAllText:"មិនជ្រើស​យក​ទាំងអស",multipleSeparator:", "}}(a)}); \ No newline at end of file diff --git a/js/i18n/defaults-ko_KR.js b/js/i18n/defaults-ko_KR.js deleted file mode 100644 index f5add4c..0000000 --- a/js/i18n/defaults-ko_KR.js +++ /dev/null @@ -1,44 +0,0 @@ -/*! - * Bootstrap-select v1.12.4 (http://silviomoreto.github.io/bootstrap-select) - * - * Copyright 2013-2017 bootstrap-select - * Licensed under MIT (https://github.com/silviomoreto/bootstrap-select/blob/master/LICENSE) - */ - -(function (root, factory) { - if (typeof define === 'function' && define.amd) { - // AMD. Register as an anonymous module unless amdModuleId is set - define(["jquery"], function (a0) { - return (factory(a0)); - }); - } else if (typeof module === 'object' && module.exports) { - // Node. Does not work with strict CommonJS, but - // only CommonJS-like environments that support module.exports, - // like Node. - module.exports = factory(require("jquery")); - } else { - factory(root["jQuery"]); - } -}(this, function (jQuery) { - -(function ($) { - $.fn.selectpicker.defaults = { - noneSelectedText: '항목을 선택해주세요', - noneResultsText: '{0} 검색 결과가 없습니다', - countSelectedText: function (numSelected, numTotal) { - return "{0}개를 선택하였습니다"; - }, - maxOptionsText: function (numAll, numGroup) { - return [ - '{n}개까지 선택 가능합니다', - '해당 그룹은 {n}개까지 선택 가능합니다' - ]; - }, - selectAllText: '전체선택', - deselectAllText: '전체해제', - multipleSeparator: ', ' - }; -})(jQuery); - - -})); diff --git a/js/i18n/defaults-ko_KR.min.js b/js/i18n/defaults-ko_KR.min.js deleted file mode 100644 index 7bd9bcf..0000000 --- a/js/i18n/defaults-ko_KR.min.js +++ /dev/null @@ -1,7 +0,0 @@ -/*! - * Bootstrap-select v1.12.4 (http://silviomoreto.github.io/bootstrap-select) - * - * Copyright 2013-2017 bootstrap-select - * Licensed under MIT (https://github.com/silviomoreto/bootstrap-select/blob/master/LICENSE) - */ -!function(a,b){"function"==typeof define&&define.amd?define(["jquery"],function(a){return b(a)}):"object"==typeof module&&module.exports?module.exports=b(require("jquery")):b(a.jQuery)}(this,function(a){!function(a){a.fn.selectpicker.defaults={noneSelectedText:"항목을 선택해주세요",noneResultsText:"{0} 검색 결과가 없습니다",countSelectedText:function(a,b){return"{0}개를 선택하였습니다"},maxOptionsText:function(a,b){return["{n}개까지 선택 가능합니다","해당 그룹은 {n}개까지 선택 가능합니다"]},selectAllText:"전체선택",deselectAllText:"전체해제",multipleSeparator:", "}}(a)}); \ No newline at end of file diff --git a/js/i18n/defaults-lt_LT.js b/js/i18n/defaults-lt_LT.js deleted file mode 100644 index cf06c60..0000000 --- a/js/i18n/defaults-lt_LT.js +++ /dev/null @@ -1,44 +0,0 @@ -/*! - * Bootstrap-select v1.12.4 (http://silviomoreto.github.io/bootstrap-select) - * - * Copyright 2013-2017 bootstrap-select - * Licensed under MIT (https://github.com/silviomoreto/bootstrap-select/blob/master/LICENSE) - */ - -(function (root, factory) { - if (typeof define === 'function' && define.amd) { - // AMD. Register as an anonymous module unless amdModuleId is set - define(["jquery"], function (a0) { - return (factory(a0)); - }); - } else if (typeof module === 'object' && module.exports) { - // Node. Does not work with strict CommonJS, but - // only CommonJS-like environments that support module.exports, - // like Node. - module.exports = factory(require("jquery")); - } else { - factory(root["jQuery"]); - } -}(this, function (jQuery) { - -(function ($) { - $.fn.selectpicker.defaults = { - noneSelectedText: 'Niekas nepasirinkta', - noneResultsText: 'Niekas nesutapo su {0}', - countSelectedText: function (numSelected, numTotal) { - return (numSelected == 1) ? "{0} elementas pasirinktas" : "{0} elementai(-ų) pasirinkta"; - }, - maxOptionsText: function (numAll, numGroup) { - return [ - (numAll == 1) ? 'Pasiekta riba ({n} elementas daugiausiai)' : 'Riba pasiekta ({n} elementai(-ų) daugiausiai)', - (numGroup == 1) ? 'Grupės riba pasiekta ({n} elementas daugiausiai)' : 'Grupės riba pasiekta ({n} elementai(-ų) daugiausiai)' - ]; - }, - selectAllText: 'Pasirinkti visus', - deselectAllText: 'Atmesti visus', - multipleSeparator: ', ' - }; -})(jQuery); - - -})); diff --git a/js/i18n/defaults-lt_LT.min.js b/js/i18n/defaults-lt_LT.min.js deleted file mode 100644 index b6baef8..0000000 --- a/js/i18n/defaults-lt_LT.min.js +++ /dev/null @@ -1,7 +0,0 @@ -/*! - * Bootstrap-select v1.12.4 (http://silviomoreto.github.io/bootstrap-select) - * - * Copyright 2013-2017 bootstrap-select - * Licensed under MIT (https://github.com/silviomoreto/bootstrap-select/blob/master/LICENSE) - */ -!function(a,b){"function"==typeof define&&define.amd?define(["jquery"],function(a){return b(a)}):"object"==typeof module&&module.exports?module.exports=b(require("jquery")):b(a.jQuery)}(this,function(a){!function(a){a.fn.selectpicker.defaults={noneSelectedText:"Niekas nepasirinkta",noneResultsText:"Niekas nesutapo su {0}",countSelectedText:function(a,b){return 1==a?"{0} elementas pasirinktas":"{0} elementai(-ų) pasirinkta"},maxOptionsText:function(a,b){return[1==a?"Pasiekta riba ({n} elementas daugiausiai)":"Riba pasiekta ({n} elementai(-ų) daugiausiai)",1==b?"Grupės riba pasiekta ({n} elementas daugiausiai)":"Grupės riba pasiekta ({n} elementai(-ų) daugiausiai)"]},selectAllText:"Pasirinkti visus",deselectAllText:"Atmesti visus",multipleSeparator:", "}}(a)}); \ No newline at end of file diff --git a/js/i18n/defaults-nb_NO.js b/js/i18n/defaults-nb_NO.js deleted file mode 100644 index 2fff0a0..0000000 --- a/js/i18n/defaults-nb_NO.js +++ /dev/null @@ -1,44 +0,0 @@ -/*! - * Bootstrap-select v1.12.4 (http://silviomoreto.github.io/bootstrap-select) - * - * Copyright 2013-2017 bootstrap-select - * Licensed under MIT (https://github.com/silviomoreto/bootstrap-select/blob/master/LICENSE) - */ - -(function (root, factory) { - if (typeof define === 'function' && define.amd) { - // AMD. Register as an anonymous module unless amdModuleId is set - define(["jquery"], function (a0) { - return (factory(a0)); - }); - } else if (typeof module === 'object' && module.exports) { - // Node. Does not work with strict CommonJS, but - // only CommonJS-like environments that support module.exports, - // like Node. - module.exports = factory(require("jquery")); - } else { - factory(root["jQuery"]); - } -}(this, function (jQuery) { - -(function ($) { - $.fn.selectpicker.defaults = { - noneSelectedText: 'Ingen valgt', - noneResultsText: 'Søket gir ingen treff {0}', - countSelectedText: function (numSelected, numTotal) { - return (numSelected == 1) ? "{0} alternativ valgt" : "{0} alternativer valgt"; - }, - maxOptionsText: function (numAll, numGroup) { - return [ - (numAll == 1) ? 'Grense nådd (maks {n} valg)' : 'Grense nådd (maks {n} valg)', - (numGroup == 1) ? 'Grense for grupper nådd (maks {n} grupper)' : 'Grense for grupper nådd (maks {n} grupper)' - ]; - }, - selectAllText: 'Merk alle', - deselectAllText: 'Fjern alle', - multipleSeparator: ', ' - }; -})(jQuery); - - -})); diff --git a/js/i18n/defaults-nb_NO.min.js b/js/i18n/defaults-nb_NO.min.js deleted file mode 100644 index 1487f1b..0000000 --- a/js/i18n/defaults-nb_NO.min.js +++ /dev/null @@ -1,7 +0,0 @@ -/*! - * Bootstrap-select v1.12.4 (http://silviomoreto.github.io/bootstrap-select) - * - * Copyright 2013-2017 bootstrap-select - * Licensed under MIT (https://github.com/silviomoreto/bootstrap-select/blob/master/LICENSE) - */ -!function(a,b){"function"==typeof define&&define.amd?define(["jquery"],function(a){return b(a)}):"object"==typeof module&&module.exports?module.exports=b(require("jquery")):b(a.jQuery)}(this,function(a){!function(a){a.fn.selectpicker.defaults={noneSelectedText:"Ingen valgt",noneResultsText:"Søket gir ingen treff {0}",countSelectedText:function(a,b){return 1==a?"{0} alternativ valgt":"{0} alternativer valgt"},maxOptionsText:function(a,b){return["Grense nådd (maks {n} valg)","Grense for grupper nådd (maks {n} grupper)"]},selectAllText:"Merk alle",deselectAllText:"Fjern alle",multipleSeparator:", "}}(a)}); \ No newline at end of file diff --git a/js/i18n/defaults-nl_NL.js b/js/i18n/defaults-nl_NL.js deleted file mode 100644 index 687de6d..0000000 --- a/js/i18n/defaults-nl_NL.js +++ /dev/null @@ -1,37 +0,0 @@ -/*! - * Bootstrap-select v1.12.4 (http://silviomoreto.github.io/bootstrap-select) - * - * Copyright 2013-2017 bootstrap-select - * Licensed under MIT (https://github.com/silviomoreto/bootstrap-select/blob/master/LICENSE) - */ - -(function (root, factory) { - if (typeof define === 'function' && define.amd) { - // AMD. Register as an anonymous module unless amdModuleId is set - define(["jquery"], function (a0) { - return (factory(a0)); - }); - } else if (typeof module === 'object' && module.exports) { - // Node. Does not work with strict CommonJS, but - // only CommonJS-like environments that support module.exports, - // like Node. - module.exports = factory(require("jquery")); - } else { - factory(root["jQuery"]); - } -}(this, function (jQuery) { - -(function ($) { - $.fn.selectpicker.defaults = { - noneSelectedText: 'Niets geselecteerd', - noneResultsText: 'Geen resultaten gevonden voor {0}', - countSelectedText: '{0} van {1} geselecteerd', - maxOptionsText: ['Limiet bereikt ({n} {var} max)', 'Groep limiet bereikt ({n} {var} max)', ['items', 'item']], - selectAllText: 'Alles selecteren', - deselectAllText: 'Alles deselecteren', - multipleSeparator: ', ' - }; -})(jQuery); - - -})); diff --git a/js/i18n/defaults-nl_NL.min.js b/js/i18n/defaults-nl_NL.min.js deleted file mode 100644 index 65ccf95..0000000 --- a/js/i18n/defaults-nl_NL.min.js +++ /dev/null @@ -1,7 +0,0 @@ -/*! - * Bootstrap-select v1.12.4 (http://silviomoreto.github.io/bootstrap-select) - * - * Copyright 2013-2017 bootstrap-select - * Licensed under MIT (https://github.com/silviomoreto/bootstrap-select/blob/master/LICENSE) - */ -!function(a,b){"function"==typeof define&&define.amd?define(["jquery"],function(a){return b(a)}):"object"==typeof module&&module.exports?module.exports=b(require("jquery")):b(a.jQuery)}(this,function(a){!function(a){a.fn.selectpicker.defaults={noneSelectedText:"Niets geselecteerd",noneResultsText:"Geen resultaten gevonden voor {0}",countSelectedText:"{0} van {1} geselecteerd",maxOptionsText:["Limiet bereikt ({n} {var} max)","Groep limiet bereikt ({n} {var} max)",["items","item"]],selectAllText:"Alles selecteren",deselectAllText:"Alles deselecteren",multipleSeparator:", "}}(a)}); \ No newline at end of file diff --git a/js/i18n/defaults-pl_PL.js b/js/i18n/defaults-pl_PL.js deleted file mode 100644 index 653a123..0000000 --- a/js/i18n/defaults-pl_PL.js +++ /dev/null @@ -1,37 +0,0 @@ -/*! - * Bootstrap-select v1.12.4 (http://silviomoreto.github.io/bootstrap-select) - * - * Copyright 2013-2017 bootstrap-select - * Licensed under MIT (https://github.com/silviomoreto/bootstrap-select/blob/master/LICENSE) - */ - -(function (root, factory) { - if (typeof define === 'function' && define.amd) { - // AMD. Register as an anonymous module unless amdModuleId is set - define(["jquery"], function (a0) { - return (factory(a0)); - }); - } else if (typeof module === 'object' && module.exports) { - // Node. Does not work with strict CommonJS, but - // only CommonJS-like environments that support module.exports, - // like Node. - module.exports = factory(require("jquery")); - } else { - factory(root["jQuery"]); - } -}(this, function (jQuery) { - -(function ($) { - $.fn.selectpicker.defaults = { - noneSelectedText: 'Nic nie zaznaczono', - noneResultsText: 'Brak wyników wyszukiwania {0}', - countSelectedText: 'Zaznaczono {0} z {1}', - maxOptionsText: ['Osiągnięto limit ({n} {var} max)', 'Limit grupy osiągnięty ({n} {var} max)', ['elementy', 'element']], - selectAllText: 'Zaznacz wszystkie', - deselectAllText: 'Odznacz wszystkie', - multipleSeparator: ', ' - }; -})(jQuery); - - -})); diff --git a/js/i18n/defaults-pl_PL.min.js b/js/i18n/defaults-pl_PL.min.js deleted file mode 100644 index 5aede3d..0000000 --- a/js/i18n/defaults-pl_PL.min.js +++ /dev/null @@ -1,7 +0,0 @@ -/*! - * Bootstrap-select v1.12.4 (http://silviomoreto.github.io/bootstrap-select) - * - * Copyright 2013-2017 bootstrap-select - * Licensed under MIT (https://github.com/silviomoreto/bootstrap-select/blob/master/LICENSE) - */ -!function(a,b){"function"==typeof define&&define.amd?define(["jquery"],function(a){return b(a)}):"object"==typeof module&&module.exports?module.exports=b(require("jquery")):b(a.jQuery)}(this,function(a){!function(a){a.fn.selectpicker.defaults={noneSelectedText:"Nic nie zaznaczono",noneResultsText:"Brak wyników wyszukiwania {0}",countSelectedText:"Zaznaczono {0} z {1}",maxOptionsText:["Osiągnięto limit ({n} {var} max)","Limit grupy osiągnięty ({n} {var} max)",["elementy","element"]],selectAllText:"Zaznacz wszystkie",deselectAllText:"Odznacz wszystkie",multipleSeparator:", "}}(a)}); \ No newline at end of file diff --git a/js/i18n/defaults-pt_BR.js b/js/i18n/defaults-pt_BR.js deleted file mode 100644 index 74f721d..0000000 --- a/js/i18n/defaults-pt_BR.js +++ /dev/null @@ -1,37 +0,0 @@ -/*! - * Bootstrap-select v1.12.4 (http://silviomoreto.github.io/bootstrap-select) - * - * Copyright 2013-2017 bootstrap-select - * Licensed under MIT (https://github.com/silviomoreto/bootstrap-select/blob/master/LICENSE) - */ - -(function (root, factory) { - if (typeof define === 'function' && define.amd) { - // AMD. Register as an anonymous module unless amdModuleId is set - define(["jquery"], function (a0) { - return (factory(a0)); - }); - } else if (typeof module === 'object' && module.exports) { - // Node. Does not work with strict CommonJS, but - // only CommonJS-like environments that support module.exports, - // like Node. - module.exports = factory(require("jquery")); - } else { - factory(root["jQuery"]); - } -}(this, function (jQuery) { - -(function ($) { - $.fn.selectpicker.defaults = { - noneSelectedText: 'Nada selecionado', - noneResultsText: 'Nada encontrado contendo {0}', - countSelectedText: 'Selecionado {0} de {1}', - maxOptionsText: ['Limite excedido (máx. {n} {var})', 'Limite do grupo excedido (máx. {n} {var})', ['itens', 'item']], - multipleSeparator: ', ', - selectAllText: 'Selecionar Todos', - deselectAllText: 'Desmarcar Todos' - }; -})(jQuery); - - -})); diff --git a/js/i18n/defaults-pt_BR.min.js b/js/i18n/defaults-pt_BR.min.js deleted file mode 100644 index 5f496ba..0000000 --- a/js/i18n/defaults-pt_BR.min.js +++ /dev/null @@ -1,7 +0,0 @@ -/*! - * Bootstrap-select v1.12.4 (http://silviomoreto.github.io/bootstrap-select) - * - * Copyright 2013-2017 bootstrap-select - * Licensed under MIT (https://github.com/silviomoreto/bootstrap-select/blob/master/LICENSE) - */ -!function(a,b){"function"==typeof define&&define.amd?define(["jquery"],function(a){return b(a)}):"object"==typeof module&&module.exports?module.exports=b(require("jquery")):b(a.jQuery)}(this,function(a){!function(a){a.fn.selectpicker.defaults={noneSelectedText:"Nada selecionado",noneResultsText:"Nada encontrado contendo {0}",countSelectedText:"Selecionado {0} de {1}",maxOptionsText:["Limite excedido (máx. {n} {var})","Limite do grupo excedido (máx. {n} {var})",["itens","item"]],multipleSeparator:", ",selectAllText:"Selecionar Todos",deselectAllText:"Desmarcar Todos"}}(a)}); \ No newline at end of file diff --git a/js/i18n/defaults-pt_PT.js b/js/i18n/defaults-pt_PT.js deleted file mode 100644 index 73827b7..0000000 --- a/js/i18n/defaults-pt_PT.js +++ /dev/null @@ -1,37 +0,0 @@ -/*! - * Bootstrap-select v1.12.4 (http://silviomoreto.github.io/bootstrap-select) - * - * Copyright 2013-2017 bootstrap-select - * Licensed under MIT (https://github.com/silviomoreto/bootstrap-select/blob/master/LICENSE) - */ - -(function (root, factory) { - if (typeof define === 'function' && define.amd) { - // AMD. Register as an anonymous module unless amdModuleId is set - define(["jquery"], function (a0) { - return (factory(a0)); - }); - } else if (typeof module === 'object' && module.exports) { - // Node. Does not work with strict CommonJS, but - // only CommonJS-like environments that support module.exports, - // like Node. - module.exports = factory(require("jquery")); - } else { - factory(root["jQuery"]); - } -}(this, function (jQuery) { - -(function ($) { -$.fn.selectpicker.defaults = { - noneSelectedText: 'Nenhum seleccionado', - noneResultsText: 'Sem resultados contendo {0}', - countSelectedText: 'Selecionado {0} de {1}', - maxOptionsText: ['Limite ultrapassado (máx. {n} {var})', 'Limite de seleções ultrapassado (máx. {n} {var})', ['itens', 'item']], - multipleSeparator: ', ', - selectAllText: 'Selecionar Tudo', - deselectAllText: 'Desmarcar Todos' -}; -})(jQuery); - - -})); diff --git a/js/i18n/defaults-pt_PT.min.js b/js/i18n/defaults-pt_PT.min.js deleted file mode 100644 index e2c4d6e..0000000 --- a/js/i18n/defaults-pt_PT.min.js +++ /dev/null @@ -1,7 +0,0 @@ -/*! - * Bootstrap-select v1.12.4 (http://silviomoreto.github.io/bootstrap-select) - * - * Copyright 2013-2017 bootstrap-select - * Licensed under MIT (https://github.com/silviomoreto/bootstrap-select/blob/master/LICENSE) - */ -!function(a,b){"function"==typeof define&&define.amd?define(["jquery"],function(a){return b(a)}):"object"==typeof module&&module.exports?module.exports=b(require("jquery")):b(a.jQuery)}(this,function(a){!function(a){a.fn.selectpicker.defaults={noneSelectedText:"Nenhum seleccionado",noneResultsText:"Sem resultados contendo {0}",countSelectedText:"Selecionado {0} de {1}",maxOptionsText:["Limite ultrapassado (máx. {n} {var})","Limite de seleções ultrapassado (máx. {n} {var})",["itens","item"]],multipleSeparator:", ",selectAllText:"Selecionar Tudo",deselectAllText:"Desmarcar Todos"}}(a)}); \ No newline at end of file diff --git a/js/i18n/defaults-ro_RO.js b/js/i18n/defaults-ro_RO.js deleted file mode 100644 index ca86d4e..0000000 --- a/js/i18n/defaults-ro_RO.js +++ /dev/null @@ -1,38 +0,0 @@ -/*! - * Bootstrap-select v1.12.4 (http://silviomoreto.github.io/bootstrap-select) - * - * Copyright 2013-2017 bootstrap-select - * Licensed under MIT (https://github.com/silviomoreto/bootstrap-select/blob/master/LICENSE) - */ - -(function (root, factory) { - if (typeof define === 'function' && define.amd) { - // AMD. Register as an anonymous module unless amdModuleId is set - define(["jquery"], function (a0) { - return (factory(a0)); - }); - } else if (typeof module === 'object' && module.exports) { - // Node. Does not work with strict CommonJS, but - // only CommonJS-like environments that support module.exports, - // like Node. - module.exports = factory(require("jquery")); - } else { - factory(root["jQuery"]); - } -}(this, function (jQuery) { - -(function ($) { - $.fn.selectpicker.defaults = { - doneButtonText: 'Închide', - noneSelectedText: 'Nu a fost selectat nimic', - noneResultsText: 'Nu există niciun rezultat {0}', - countSelectedText: '{0} din {1} selectat(e)', - maxOptionsText: ['Limita a fost atinsă ({n} {var} max)', 'Limita de grup a fost atinsă ({n} {var} max)', ['iteme', 'item']], - selectAllText: 'Selectează toate', - deselectAllText: 'Deselectează toate', - multipleSeparator: ', ' - }; -})(jQuery); - - -})); diff --git a/js/i18n/defaults-ro_RO.min.js b/js/i18n/defaults-ro_RO.min.js deleted file mode 100644 index 71df790..0000000 --- a/js/i18n/defaults-ro_RO.min.js +++ /dev/null @@ -1,7 +0,0 @@ -/*! - * Bootstrap-select v1.12.4 (http://silviomoreto.github.io/bootstrap-select) - * - * Copyright 2013-2017 bootstrap-select - * Licensed under MIT (https://github.com/silviomoreto/bootstrap-select/blob/master/LICENSE) - */ -!function(a,b){"function"==typeof define&&define.amd?define(["jquery"],function(a){return b(a)}):"object"==typeof module&&module.exports?module.exports=b(require("jquery")):b(a.jQuery)}(this,function(a){!function(a){a.fn.selectpicker.defaults={doneButtonText:"Închide",noneSelectedText:"Nu a fost selectat nimic",noneResultsText:"Nu există niciun rezultat {0}",countSelectedText:"{0} din {1} selectat(e)",maxOptionsText:["Limita a fost atinsă ({n} {var} max)","Limita de grup a fost atinsă ({n} {var} max)",["iteme","item"]],selectAllText:"Selectează toate",deselectAllText:"Deselectează toate",multipleSeparator:", "}}(a)}); \ No newline at end of file diff --git a/js/i18n/defaults-ru_RU.js b/js/i18n/defaults-ru_RU.js deleted file mode 100644 index f1662b9..0000000 --- a/js/i18n/defaults-ru_RU.js +++ /dev/null @@ -1,38 +0,0 @@ -/*! - * Bootstrap-select v1.12.4 (http://silviomoreto.github.io/bootstrap-select) - * - * Copyright 2013-2017 bootstrap-select - * Licensed under MIT (https://github.com/silviomoreto/bootstrap-select/blob/master/LICENSE) - */ - -(function (root, factory) { - if (typeof define === 'function' && define.amd) { - // AMD. Register as an anonymous module unless amdModuleId is set - define(["jquery"], function (a0) { - return (factory(a0)); - }); - } else if (typeof module === 'object' && module.exports) { - // Node. Does not work with strict CommonJS, but - // only CommonJS-like environments that support module.exports, - // like Node. - module.exports = factory(require("jquery")); - } else { - factory(root["jQuery"]); - } -}(this, function (jQuery) { - -(function ($) { - $.fn.selectpicker.defaults = { - noneSelectedText: 'Ничего не выбрано', - noneResultsText: 'Совпадений не найдено {0}', - countSelectedText: 'Выбрано {0} из {1}', - maxOptionsText: ['Достигнут предел ({n} {var} максимум)', 'Достигнут предел в группе ({n} {var} максимум)', ['шт.', 'шт.']], - doneButtonText: 'Закрыть', - selectAllText: 'Выбрать все', - deselectAllText: 'Отменить все', - multipleSeparator: ', ' - }; -})(jQuery); - - -})); diff --git a/js/i18n/defaults-ru_RU.min.js b/js/i18n/defaults-ru_RU.min.js deleted file mode 100644 index 8f10ca5..0000000 --- a/js/i18n/defaults-ru_RU.min.js +++ /dev/null @@ -1,7 +0,0 @@ -/*! - * Bootstrap-select v1.12.4 (http://silviomoreto.github.io/bootstrap-select) - * - * Copyright 2013-2017 bootstrap-select - * Licensed under MIT (https://github.com/silviomoreto/bootstrap-select/blob/master/LICENSE) - */ -!function(a,b){"function"==typeof define&&define.amd?define(["jquery"],function(a){return b(a)}):"object"==typeof module&&module.exports?module.exports=b(require("jquery")):b(a.jQuery)}(this,function(a){!function(a){a.fn.selectpicker.defaults={noneSelectedText:"Ничего не выбрано",noneResultsText:"Совпадений не найдено {0}",countSelectedText:"Выбрано {0} из {1}",maxOptionsText:["Достигнут предел ({n} {var} максимум)","Достигнут предел в группе ({n} {var} максимум)",["шт.","шт."]],doneButtonText:"Закрыть",selectAllText:"Выбрать все",deselectAllText:"Отменить все",multipleSeparator:", "}}(a)}); \ No newline at end of file diff --git a/js/i18n/defaults-sk_SK.js b/js/i18n/defaults-sk_SK.js deleted file mode 100644 index 326cab4..0000000 --- a/js/i18n/defaults-sk_SK.js +++ /dev/null @@ -1,37 +0,0 @@ -/*! - * Bootstrap-select v1.12.4 (http://silviomoreto.github.io/bootstrap-select) - * - * Copyright 2013-2017 bootstrap-select - * Licensed under MIT (https://github.com/silviomoreto/bootstrap-select/blob/master/LICENSE) - */ - -(function (root, factory) { - if (typeof define === 'function' && define.amd) { - // AMD. Register as an anonymous module unless amdModuleId is set - define(["jquery"], function (a0) { - return (factory(a0)); - }); - } else if (typeof module === 'object' && module.exports) { - // Node. Does not work with strict CommonJS, but - // only CommonJS-like environments that support module.exports, - // like Node. - module.exports = factory(require("jquery")); - } else { - factory(root["jQuery"]); - } -}(this, function (jQuery) { - -(function ($) { - $.fn.selectpicker.defaults = { - noneSelectedText: 'Vyberte zo zoznamu', - noneResultsText: 'Pre výraz {0} neboli nájdené žiadne výsledky', - countSelectedText: 'Vybrané {0} z {1}', - maxOptionsText: ['Limit prekročený ({n} {var} max)', 'Limit skupiny prekročený ({n} {var} max)', ['položiek', 'položka']], - selectAllText: 'Vybrať všetky', - deselectAllText: 'Zrušiť výber', - multipleSeparator: ', ' - }; -})(jQuery); - - -})); diff --git a/js/i18n/defaults-sk_SK.min.js b/js/i18n/defaults-sk_SK.min.js deleted file mode 100644 index e70c3fa..0000000 --- a/js/i18n/defaults-sk_SK.min.js +++ /dev/null @@ -1,7 +0,0 @@ -/*! - * Bootstrap-select v1.12.4 (http://silviomoreto.github.io/bootstrap-select) - * - * Copyright 2013-2017 bootstrap-select - * Licensed under MIT (https://github.com/silviomoreto/bootstrap-select/blob/master/LICENSE) - */ -!function(a,b){"function"==typeof define&&define.amd?define(["jquery"],function(a){return b(a)}):"object"==typeof module&&module.exports?module.exports=b(require("jquery")):b(a.jQuery)}(this,function(a){!function(a){a.fn.selectpicker.defaults={noneSelectedText:"Vyberte zo zoznamu",noneResultsText:"Pre výraz {0} neboli nájdené žiadne výsledky",countSelectedText:"Vybrané {0} z {1}",maxOptionsText:["Limit prekročený ({n} {var} max)","Limit skupiny prekročený ({n} {var} max)",["položiek","položka"]],selectAllText:"Vybrať všetky",deselectAllText:"Zrušiť výber",multipleSeparator:", "}}(a)}); \ No newline at end of file diff --git a/js/i18n/defaults-sl_SI.js b/js/i18n/defaults-sl_SI.js deleted file mode 100644 index 4307f9a..0000000 --- a/js/i18n/defaults-sl_SI.js +++ /dev/null @@ -1,42 +0,0 @@ -/*! - * Bootstrap-select v1.12.4 (http://silviomoreto.github.io/bootstrap-select) - * - * Copyright 2013-2017 bootstrap-select - * Licensed under MIT (https://github.com/silviomoreto/bootstrap-select/blob/master/LICENSE) - */ - -(function (root, factory) { - if (typeof define === 'function' && define.amd) { - // AMD. Register as an anonymous module unless amdModuleId is set - define(["jquery"], function (a0) { - return (factory(a0)); - }); - } else if (typeof module === 'object' && module.exports) { - // Node. Does not work with strict CommonJS, but - // only CommonJS-like environments that support module.exports, - // like Node. - module.exports = factory(require("jquery")); - } else { - factory(root["jQuery"]); - } -}(this, function (jQuery) { - -(function ($) { - $.fn.selectpicker.defaults = { - noneSelectedText: 'Nič izbranega', - noneResultsText: 'Ni zadetkov za {0}', - countSelectedText: '{0} od {1} izbranih', - maxOptionsText: function (numAll, numGroup) { - return [ - 'Omejitev dosežena (max. izbranih: {n})', - 'Omejitev skupine dosežena (max. izbranih: {n})' - ]; - }, - selectAllText: 'Izberi vse', - deselectAllText: 'Počisti izbor', - multipleSeparator: ', ' - }; -})(jQuery); - - -})); diff --git a/js/i18n/defaults-sl_SI.min.js b/js/i18n/defaults-sl_SI.min.js deleted file mode 100644 index f8372b3..0000000 --- a/js/i18n/defaults-sl_SI.min.js +++ /dev/null @@ -1,7 +0,0 @@ -/*! - * Bootstrap-select v1.12.4 (http://silviomoreto.github.io/bootstrap-select) - * - * Copyright 2013-2017 bootstrap-select - * Licensed under MIT (https://github.com/silviomoreto/bootstrap-select/blob/master/LICENSE) - */ -!function(a,b){"function"==typeof define&&define.amd?define(["jquery"],function(a){return b(a)}):"object"==typeof module&&module.exports?module.exports=b(require("jquery")):b(a.jQuery)}(this,function(a){!function(a){a.fn.selectpicker.defaults={noneSelectedText:"Nič izbranega",noneResultsText:"Ni zadetkov za {0}",countSelectedText:"{0} od {1} izbranih",maxOptionsText:function(a,b){return["Omejitev dosežena (max. izbranih: {n})","Omejitev skupine dosežena (max. izbranih: {n})"]},selectAllText:"Izberi vse",deselectAllText:"Počisti izbor",multipleSeparator:", "}}(a)}); \ No newline at end of file diff --git a/js/i18n/defaults-sv_SE.js b/js/i18n/defaults-sv_SE.js deleted file mode 100644 index 210fc27..0000000 --- a/js/i18n/defaults-sv_SE.js +++ /dev/null @@ -1,44 +0,0 @@ -/*! - * Bootstrap-select v1.12.4 (http://silviomoreto.github.io/bootstrap-select) - * - * Copyright 2013-2017 bootstrap-select - * Licensed under MIT (https://github.com/silviomoreto/bootstrap-select/blob/master/LICENSE) - */ - -(function (root, factory) { - if (typeof define === 'function' && define.amd) { - // AMD. Register as an anonymous module unless amdModuleId is set - define(["jquery"], function (a0) { - return (factory(a0)); - }); - } else if (typeof module === 'object' && module.exports) { - // Node. Does not work with strict CommonJS, but - // only CommonJS-like environments that support module.exports, - // like Node. - module.exports = factory(require("jquery")); - } else { - factory(root["jQuery"]); - } -}(this, function (jQuery) { - -(function ($) { - $.fn.selectpicker.defaults = { - noneSelectedText: 'Inget valt', - noneResultsText: 'Inget sökresultat matchar {0}', - countSelectedText: function (numSelected, numTotal) { - return (numSelected === 1) ? "{0} alternativ valt" : "{0} alternativ valda"; - }, - maxOptionsText: function (numAll, numGroup) { - return [ - 'Gräns uppnåd (max {n} alternativ)', - 'Gräns uppnåd (max {n} gruppalternativ)' - ]; - }, - selectAllText: 'Markera alla', - deselectAllText: 'Avmarkera alla', - multipleSeparator: ', ' - }; -})(jQuery); - - -})); diff --git a/js/i18n/defaults-sv_SE.min.js b/js/i18n/defaults-sv_SE.min.js deleted file mode 100644 index 0c78926..0000000 --- a/js/i18n/defaults-sv_SE.min.js +++ /dev/null @@ -1,7 +0,0 @@ -/*! - * Bootstrap-select v1.12.4 (http://silviomoreto.github.io/bootstrap-select) - * - * Copyright 2013-2017 bootstrap-select - * Licensed under MIT (https://github.com/silviomoreto/bootstrap-select/blob/master/LICENSE) - */ -!function(a,b){"function"==typeof define&&define.amd?define(["jquery"],function(a){return b(a)}):"object"==typeof module&&module.exports?module.exports=b(require("jquery")):b(a.jQuery)}(this,function(a){!function(a){a.fn.selectpicker.defaults={noneSelectedText:"Inget valt",noneResultsText:"Inget sökresultat matchar {0}",countSelectedText:function(a,b){return 1===a?"{0} alternativ valt":"{0} alternativ valda"},maxOptionsText:function(a,b){return["Gräns uppnåd (max {n} alternativ)","Gräns uppnåd (max {n} gruppalternativ)"]},selectAllText:"Markera alla",deselectAllText:"Avmarkera alla",multipleSeparator:", "}}(a)}); \ No newline at end of file diff --git a/js/i18n/defaults-tr_TR.js b/js/i18n/defaults-tr_TR.js deleted file mode 100644 index c6b8890..0000000 --- a/js/i18n/defaults-tr_TR.js +++ /dev/null @@ -1,44 +0,0 @@ -/*! - * Bootstrap-select v1.12.4 (http://silviomoreto.github.io/bootstrap-select) - * - * Copyright 2013-2017 bootstrap-select - * Licensed under MIT (https://github.com/silviomoreto/bootstrap-select/blob/master/LICENSE) - */ - -(function (root, factory) { - if (typeof define === 'function' && define.amd) { - // AMD. Register as an anonymous module unless amdModuleId is set - define(["jquery"], function (a0) { - return (factory(a0)); - }); - } else if (typeof module === 'object' && module.exports) { - // Node. Does not work with strict CommonJS, but - // only CommonJS-like environments that support module.exports, - // like Node. - module.exports = factory(require("jquery")); - } else { - factory(root["jQuery"]); - } -}(this, function (jQuery) { - -(function ($) { - $.fn.selectpicker.defaults = { - noneSelectedText: 'Hiçbiri seçilmedi', - noneResultsText: 'Hiçbir sonuç bulunamadı {0}', - countSelectedText: function (numSelected, numTotal) { - return (numSelected == 1) ? "{0} öğe seçildi" : "{0} öğe seçildi"; - }, - maxOptionsText: function (numAll, numGroup) { - return [ - (numAll == 1) ? 'Limit aşıldı (maksimum {n} sayıda öğe )' : 'Limit aşıldı (maksimum {n} sayıda öğe)', - (numGroup == 1) ? 'Grup limiti aşıldı (maksimum {n} sayıda öğe)' : 'Grup limiti aşıldı (maksimum {n} sayıda öğe)' - ]; - }, - selectAllText: 'Tümünü Seç', - deselectAllText: 'Seçiniz', - multipleSeparator: ', ' - }; -})(jQuery); - - -})); diff --git a/js/i18n/defaults-tr_TR.min.js b/js/i18n/defaults-tr_TR.min.js deleted file mode 100644 index 715f145..0000000 --- a/js/i18n/defaults-tr_TR.min.js +++ /dev/null @@ -1,7 +0,0 @@ -/*! - * Bootstrap-select v1.12.4 (http://silviomoreto.github.io/bootstrap-select) - * - * Copyright 2013-2017 bootstrap-select - * Licensed under MIT (https://github.com/silviomoreto/bootstrap-select/blob/master/LICENSE) - */ -!function(a,b){"function"==typeof define&&define.amd?define(["jquery"],function(a){return b(a)}):"object"==typeof module&&module.exports?module.exports=b(require("jquery")):b(a.jQuery)}(this,function(a){!function(a){a.fn.selectpicker.defaults={noneSelectedText:"Hiçbiri seçilmedi",noneResultsText:"Hiçbir sonuç bulunamadı {0}",countSelectedText:function(a,b){return"{0} öğe seçildi"},maxOptionsText:function(a,b){return[1==a?"Limit aşıldı (maksimum {n} sayıda öğe )":"Limit aşıldı (maksimum {n} sayıda öğe)","Grup limiti aşıldı (maksimum {n} sayıda öğe)"]},selectAllText:"Tümünü Seç",deselectAllText:"Seçiniz",multipleSeparator:", "}}(a)}); \ No newline at end of file diff --git a/js/i18n/defaults-ua_UA.js b/js/i18n/defaults-ua_UA.js deleted file mode 100644 index 018d694..0000000 --- a/js/i18n/defaults-ua_UA.js +++ /dev/null @@ -1,37 +0,0 @@ -/*! - * Bootstrap-select v1.12.4 (http://silviomoreto.github.io/bootstrap-select) - * - * Copyright 2013-2017 bootstrap-select - * Licensed under MIT (https://github.com/silviomoreto/bootstrap-select/blob/master/LICENSE) - */ - -(function (root, factory) { - if (typeof define === 'function' && define.amd) { - // AMD. Register as an anonymous module unless amdModuleId is set - define(["jquery"], function (a0) { - return (factory(a0)); - }); - } else if (typeof module === 'object' && module.exports) { - // Node. Does not work with strict CommonJS, but - // only CommonJS-like environments that support module.exports, - // like Node. - module.exports = factory(require("jquery")); - } else { - factory(root["jQuery"]); - } -}(this, function (jQuery) { - -(function ($) { - $.fn.selectpicker.defaults = { - noneSelectedText: 'Нічого не вибрано', - noneResultsText: 'Збігів не знайдено {0}', - countSelectedText: 'Вибрано {0} із {1}', - maxOptionsText: ['Досягнута межа ({n} {var} максимум)', 'Досягнута межа в групі ({n} {var} максимум)', ['items', 'item']], - multipleSeparator: ', ', - selectAllText: 'Вибрати все', - deselectAllText: 'Скасувати вибір усі' - }; -})(jQuery); - - -})); diff --git a/js/i18n/defaults-ua_UA.min.js b/js/i18n/defaults-ua_UA.min.js deleted file mode 100644 index eb4152e..0000000 --- a/js/i18n/defaults-ua_UA.min.js +++ /dev/null @@ -1,7 +0,0 @@ -/*! - * Bootstrap-select v1.12.4 (http://silviomoreto.github.io/bootstrap-select) - * - * Copyright 2013-2017 bootstrap-select - * Licensed under MIT (https://github.com/silviomoreto/bootstrap-select/blob/master/LICENSE) - */ -!function(a,b){"function"==typeof define&&define.amd?define(["jquery"],function(a){return b(a)}):"object"==typeof module&&module.exports?module.exports=b(require("jquery")):b(a.jQuery)}(this,function(a){!function(a){a.fn.selectpicker.defaults={noneSelectedText:"Нічого не вибрано",noneResultsText:"Збігів не знайдено {0}",countSelectedText:"Вибрано {0} із {1}",maxOptionsText:["Досягнута межа ({n} {var} максимум)","Досягнута межа в групі ({n} {var} максимум)",["items","item"]],multipleSeparator:", ",selectAllText:"Вибрати все",deselectAllText:"Скасувати вибір усі"}}(a)}); \ No newline at end of file diff --git a/js/i18n/defaults-vi_VN.js b/js/i18n/defaults-vi_VN.js deleted file mode 100644 index 422c739..0000000 --- a/js/i18n/defaults-vi_VN.js +++ /dev/null @@ -1,44 +0,0 @@ -/*! - * Bootstrap-select v1.12.4 (http://silviomoreto.github.io/bootstrap-select) - * - * Copyright 2013-2017 bootstrap-select - * Licensed under MIT (https://github.com/silviomoreto/bootstrap-select/blob/master/LICENSE) - */ - -(function (root, factory) { - if (typeof define === 'function' && define.amd) { - // AMD. Register as an anonymous module unless amdModuleId is set - define(["jquery"], function (a0) { - return (factory(a0)); - }); - } else if (typeof module === 'object' && module.exports) { - // Node. Does not work with strict CommonJS, but - // only CommonJS-like environments that support module.exports, - // like Node. - module.exports = factory(require("jquery")); - } else { - factory(root["jQuery"]); - } -}(this, function (jQuery) { - -(function ($) { - $.fn.selectpicker.defaults = { - noneSelectedText: 'Chưa chọn', - noneResultsText: 'Không có kết quả cho {0}', - countSelectedText: function (numSelected, numTotal) { - return "{0} mục đã chọn"; - }, - maxOptionsText: function (numAll, numGroup) { - return [ - 'Không thể chọn (giới hạn {n} mục)', - 'Không thể chọn (giới hạn {n} mục)' - ]; - }, - selectAllText: 'Chọn tất cả', - deselectAllText: 'Bỏ chọn', - multipleSeparator: ', ' - }; -})(jQuery); - - -})); diff --git a/js/i18n/defaults-vi_VN.min.js b/js/i18n/defaults-vi_VN.min.js deleted file mode 100644 index 6333f0a..0000000 --- a/js/i18n/defaults-vi_VN.min.js +++ /dev/null @@ -1,7 +0,0 @@ -/*! - * Bootstrap-select v1.12.4 (http://silviomoreto.github.io/bootstrap-select) - * - * Copyright 2013-2017 bootstrap-select - * Licensed under MIT (https://github.com/silviomoreto/bootstrap-select/blob/master/LICENSE) - */ -!function(a,b){"function"==typeof define&&define.amd?define(["jquery"],function(a){return b(a)}):"object"==typeof module&&module.exports?module.exports=b(require("jquery")):b(a.jQuery)}(this,function(a){!function(a){a.fn.selectpicker.defaults={noneSelectedText:"Chưa chọn",noneResultsText:"Không có kết quả cho {0}",countSelectedText:function(a,b){return"{0} mục đã chọn"},maxOptionsText:function(a,b){return["Không thể chọn (giới hạn {n} mục)","Không thể chọn (giới hạn {n} mục)"]},selectAllText:"Chọn tất cả",deselectAllText:"Bỏ chọn",multipleSeparator:", "}}(a)}); \ No newline at end of file diff --git a/js/i18n/defaults-zh_CN.js b/js/i18n/defaults-zh_CN.js deleted file mode 100644 index 105a663..0000000 --- a/js/i18n/defaults-zh_CN.js +++ /dev/null @@ -1,37 +0,0 @@ -/*! - * Bootstrap-select v1.12.4 (http://silviomoreto.github.io/bootstrap-select) - * - * Copyright 2013-2017 bootstrap-select - * Licensed under MIT (https://github.com/silviomoreto/bootstrap-select/blob/master/LICENSE) - */ - -(function (root, factory) { - if (typeof define === 'function' && define.amd) { - // AMD. Register as an anonymous module unless amdModuleId is set - define(["jquery"], function (a0) { - return (factory(a0)); - }); - } else if (typeof module === 'object' && module.exports) { - // Node. Does not work with strict CommonJS, but - // only CommonJS-like environments that support module.exports, - // like Node. - module.exports = factory(require("jquery")); - } else { - factory(root["jQuery"]); - } -}(this, function (jQuery) { - -(function ($) { - $.fn.selectpicker.defaults = { - noneSelectedText: '没有选中任何项', - noneResultsText: '没有找到匹配项', - countSelectedText: '选中{1}中的{0}项', - maxOptionsText: ['超出限制 (最多选择{n}项)', '组选择超出限制(最多选择{n}组)'], - multipleSeparator: ', ', - selectAllText: '全选', - deselectAllText: '取消全选' - }; -})(jQuery); - - -})); diff --git a/js/i18n/defaults-zh_CN.min.js b/js/i18n/defaults-zh_CN.min.js deleted file mode 100644 index f5264e7..0000000 --- a/js/i18n/defaults-zh_CN.min.js +++ /dev/null @@ -1,7 +0,0 @@ -/*! - * Bootstrap-select v1.12.4 (http://silviomoreto.github.io/bootstrap-select) - * - * Copyright 2013-2017 bootstrap-select - * Licensed under MIT (https://github.com/silviomoreto/bootstrap-select/blob/master/LICENSE) - */ -!function(a,b){"function"==typeof define&&define.amd?define(["jquery"],function(a){return b(a)}):"object"==typeof module&&module.exports?module.exports=b(require("jquery")):b(a.jQuery)}(this,function(a){!function(a){a.fn.selectpicker.defaults={noneSelectedText:"没有选中任何项",noneResultsText:"没有找到匹配项",countSelectedText:"选中{1}中的{0}项",maxOptionsText:["超出限制 (最多选择{n}项)","组选择超出限制(最多选择{n}组)"],multipleSeparator:", ",selectAllText:"全选",deselectAllText:"取消全选"}}(a)}); \ No newline at end of file diff --git a/js/i18n/defaults-zh_TW.js b/js/i18n/defaults-zh_TW.js deleted file mode 100644 index 180b7e2..0000000 --- a/js/i18n/defaults-zh_TW.js +++ /dev/null @@ -1,37 +0,0 @@ -/*! - * Bootstrap-select v1.12.4 (http://silviomoreto.github.io/bootstrap-select) - * - * Copyright 2013-2017 bootstrap-select - * Licensed under MIT (https://github.com/silviomoreto/bootstrap-select/blob/master/LICENSE) - */ - -(function (root, factory) { - if (typeof define === 'function' && define.amd) { - // AMD. Register as an anonymous module unless amdModuleId is set - define(["jquery"], function (a0) { - return (factory(a0)); - }); - } else if (typeof module === 'object' && module.exports) { - // Node. Does not work with strict CommonJS, but - // only CommonJS-like environments that support module.exports, - // like Node. - module.exports = factory(require("jquery")); - } else { - factory(root["jQuery"]); - } -}(this, function (jQuery) { - -(function ($) { - $.fn.selectpicker.defaults = { - noneSelectedText: '沒有選取任何項目', - noneResultsText: '沒有找到符合的結果', - countSelectedText: '已經選取{0}個項目', - maxOptionsText: ['超過限制 (最多選擇{n}項)', '超過限制(最多選擇{n}組)'], - selectAllText: '選取全部', - deselectAllText: '全部取消', - multipleSeparator: ', ' - }; -})(jQuery); - - -})); diff --git a/js/i18n/defaults-zh_TW.min.js b/js/i18n/defaults-zh_TW.min.js deleted file mode 100644 index abbd5b5..0000000 --- a/js/i18n/defaults-zh_TW.min.js +++ /dev/null @@ -1,7 +0,0 @@ -/*! - * Bootstrap-select v1.12.4 (http://silviomoreto.github.io/bootstrap-select) - * - * Copyright 2013-2017 bootstrap-select - * Licensed under MIT (https://github.com/silviomoreto/bootstrap-select/blob/master/LICENSE) - */ -!function(a,b){"function"==typeof define&&define.amd?define(["jquery"],function(a){return b(a)}):"object"==typeof module&&module.exports?module.exports=b(require("jquery")):b(a.jQuery)}(this,function(a){!function(a){a.fn.selectpicker.defaults={noneSelectedText:"沒有選取任何項目",noneResultsText:"沒有找到符合的結果",countSelectedText:"已經選取{0}個項目",maxOptionsText:["超過限制 (最多選擇{n}項)","超過限制(最多選擇{n}組)"],selectAllText:"選取全部",deselectAllText:"全部取消",multipleSeparator:", "}}(a)}); \ No newline at end of file diff --git a/js/jquery.min.js b/js/jquery.min.js deleted file mode 100644 index c5e1bfe..0000000 --- a/js/jquery.min.js +++ /dev/null @@ -1,4 +0,0 @@ -/*! jQuery v2.1.3 | (c) 2005, 2014 jQuery Foundation, Inc. | jquery.org/license */ -!function(a,b){"object"==typeof module&&"object"==typeof module.exports?module.exports=a.document?b(a,!0):function(a){if(!a.document)throw new Error("jQuery requires a window with a document");return b(a)}:b(a)}("undefined"!=typeof window?window:this,function(a,b){var c=[],d=c.slice,e=c.concat,f=c.push,g=c.indexOf,h={},i=h.toString,j=h.hasOwnProperty,k={},l=a.document,m="2.1.3",n=function(a,b){return new n.fn.init(a,b)},o=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,p=/^-ms-/,q=/-([\da-z])/gi,r=function(a,b){return b.toUpperCase()};n.fn=n.prototype={jquery:m,constructor:n,selector:"",length:0,toArray:function(){return d.call(this)},get:function(a){return null!=a?0>a?this[a+this.length]:this[a]:d.call(this)},pushStack:function(a){var b=n.merge(this.constructor(),a);return b.prevObject=this,b.context=this.context,b},each:function(a,b){return n.each(this,a,b)},map:function(a){return this.pushStack(n.map(this,function(b,c){return a.call(b,c,b)}))},slice:function(){return this.pushStack(d.apply(this,arguments))},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},eq:function(a){var b=this.length,c=+a+(0>a?b:0);return this.pushStack(c>=0&&b>c?[this[c]]:[])},end:function(){return this.prevObject||this.constructor(null)},push:f,sort:c.sort,splice:c.splice},n.extend=n.fn.extend=function(){var a,b,c,d,e,f,g=arguments[0]||{},h=1,i=arguments.length,j=!1;for("boolean"==typeof g&&(j=g,g=arguments[h]||{},h++),"object"==typeof g||n.isFunction(g)||(g={}),h===i&&(g=this,h--);i>h;h++)if(null!=(a=arguments[h]))for(b in a)c=g[b],d=a[b],g!==d&&(j&&d&&(n.isPlainObject(d)||(e=n.isArray(d)))?(e?(e=!1,f=c&&n.isArray(c)?c:[]):f=c&&n.isPlainObject(c)?c:{},g[b]=n.extend(j,f,d)):void 0!==d&&(g[b]=d));return g},n.extend({expando:"jQuery"+(m+Math.random()).replace(/\D/g,""),isReady:!0,error:function(a){throw new Error(a)},noop:function(){},isFunction:function(a){return"function"===n.type(a)},isArray:Array.isArray,isWindow:function(a){return null!=a&&a===a.window},isNumeric:function(a){return!n.isArray(a)&&a-parseFloat(a)+1>=0},isPlainObject:function(a){return"object"!==n.type(a)||a.nodeType||n.isWindow(a)?!1:a.constructor&&!j.call(a.constructor.prototype,"isPrototypeOf")?!1:!0},isEmptyObject:function(a){var b;for(b in a)return!1;return!0},type:function(a){return null==a?a+"":"object"==typeof a||"function"==typeof a?h[i.call(a)]||"object":typeof a},globalEval:function(a){var b,c=eval;a=n.trim(a),a&&(1===a.indexOf("use strict")?(b=l.createElement("script"),b.text=a,l.head.appendChild(b).parentNode.removeChild(b)):c(a))},camelCase:function(a){return a.replace(p,"ms-").replace(q,r)},nodeName:function(a,b){return a.nodeName&&a.nodeName.toLowerCase()===b.toLowerCase()},each:function(a,b,c){var d,e=0,f=a.length,g=s(a);if(c){if(g){for(;f>e;e++)if(d=b.apply(a[e],c),d===!1)break}else for(e in a)if(d=b.apply(a[e],c),d===!1)break}else if(g){for(;f>e;e++)if(d=b.call(a[e],e,a[e]),d===!1)break}else for(e in a)if(d=b.call(a[e],e,a[e]),d===!1)break;return a},trim:function(a){return null==a?"":(a+"").replace(o,"")},makeArray:function(a,b){var c=b||[];return null!=a&&(s(Object(a))?n.merge(c,"string"==typeof a?[a]:a):f.call(c,a)),c},inArray:function(a,b,c){return null==b?-1:g.call(b,a,c)},merge:function(a,b){for(var c=+b.length,d=0,e=a.length;c>d;d++)a[e++]=b[d];return a.length=e,a},grep:function(a,b,c){for(var d,e=[],f=0,g=a.length,h=!c;g>f;f++)d=!b(a[f],f),d!==h&&e.push(a[f]);return e},map:function(a,b,c){var d,f=0,g=a.length,h=s(a),i=[];if(h)for(;g>f;f++)d=b(a[f],f,c),null!=d&&i.push(d);else for(f in a)d=b(a[f],f,c),null!=d&&i.push(d);return e.apply([],i)},guid:1,proxy:function(a,b){var c,e,f;return"string"==typeof b&&(c=a[b],b=a,a=c),n.isFunction(a)?(e=d.call(arguments,2),f=function(){return a.apply(b||this,e.concat(d.call(arguments)))},f.guid=a.guid=a.guid||n.guid++,f):void 0},now:Date.now,support:k}),n.each("Boolean Number String Function Array Date RegExp Object Error".split(" "),function(a,b){h["[object "+b+"]"]=b.toLowerCase()});function s(a){var b=a.length,c=n.type(a);return"function"===c||n.isWindow(a)?!1:1===a.nodeType&&b?!0:"array"===c||0===b||"number"==typeof b&&b>0&&b-1 in a}var t=function(a){var b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u="sizzle"+1*new Date,v=a.document,w=0,x=0,y=hb(),z=hb(),A=hb(),B=function(a,b){return a===b&&(l=!0),0},C=1<<31,D={}.hasOwnProperty,E=[],F=E.pop,G=E.push,H=E.push,I=E.slice,J=function(a,b){for(var c=0,d=a.length;d>c;c++)if(a[c]===b)return c;return-1},K="checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped",L="[\\x20\\t\\r\\n\\f]",M="(?:\\\\.|[\\w-]|[^\\x00-\\xa0])+",N=M.replace("w","w#"),O="\\["+L+"*("+M+")(?:"+L+"*([*^$|!~]?=)"+L+"*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|("+N+"))|)"+L+"*\\]",P=":("+M+")(?:\\((('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|((?:\\\\.|[^\\\\()[\\]]|"+O+")*)|.*)\\)|)",Q=new RegExp(L+"+","g"),R=new RegExp("^"+L+"+|((?:^|[^\\\\])(?:\\\\.)*)"+L+"+$","g"),S=new RegExp("^"+L+"*,"+L+"*"),T=new RegExp("^"+L+"*([>+~]|"+L+")"+L+"*"),U=new RegExp("="+L+"*([^\\]'\"]*?)"+L+"*\\]","g"),V=new RegExp(P),W=new RegExp("^"+N+"$"),X={ID:new RegExp("^#("+M+")"),CLASS:new RegExp("^\\.("+M+")"),TAG:new RegExp("^("+M.replace("w","w*")+")"),ATTR:new RegExp("^"+O),PSEUDO:new RegExp("^"+P),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+L+"*(even|odd|(([+-]|)(\\d*)n|)"+L+"*(?:([+-]|)"+L+"*(\\d+)|))"+L+"*\\)|)","i"),bool:new RegExp("^(?:"+K+")$","i"),needsContext:new RegExp("^"+L+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+L+"*((?:-\\d)?\\d*)"+L+"*\\)|)(?=[^-]|$)","i")},Y=/^(?:input|select|textarea|button)$/i,Z=/^h\d$/i,$=/^[^{]+\{\s*\[native \w/,_=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,ab=/[+~]/,bb=/'|\\/g,cb=new RegExp("\\\\([\\da-f]{1,6}"+L+"?|("+L+")|.)","ig"),db=function(a,b,c){var d="0x"+b-65536;return d!==d||c?b:0>d?String.fromCharCode(d+65536):String.fromCharCode(d>>10|55296,1023&d|56320)},eb=function(){m()};try{H.apply(E=I.call(v.childNodes),v.childNodes),E[v.childNodes.length].nodeType}catch(fb){H={apply:E.length?function(a,b){G.apply(a,I.call(b))}:function(a,b){var c=a.length,d=0;while(a[c++]=b[d++]);a.length=c-1}}}function gb(a,b,d,e){var f,h,j,k,l,o,r,s,w,x;if((b?b.ownerDocument||b:v)!==n&&m(b),b=b||n,d=d||[],k=b.nodeType,"string"!=typeof a||!a||1!==k&&9!==k&&11!==k)return d;if(!e&&p){if(11!==k&&(f=_.exec(a)))if(j=f[1]){if(9===k){if(h=b.getElementById(j),!h||!h.parentNode)return d;if(h.id===j)return d.push(h),d}else if(b.ownerDocument&&(h=b.ownerDocument.getElementById(j))&&t(b,h)&&h.id===j)return d.push(h),d}else{if(f[2])return H.apply(d,b.getElementsByTagName(a)),d;if((j=f[3])&&c.getElementsByClassName)return H.apply(d,b.getElementsByClassName(j)),d}if(c.qsa&&(!q||!q.test(a))){if(s=r=u,w=b,x=1!==k&&a,1===k&&"object"!==b.nodeName.toLowerCase()){o=g(a),(r=b.getAttribute("id"))?s=r.replace(bb,"\\$&"):b.setAttribute("id",s),s="[id='"+s+"'] ",l=o.length;while(l--)o[l]=s+rb(o[l]);w=ab.test(a)&&pb(b.parentNode)||b,x=o.join(",")}if(x)try{return H.apply(d,w.querySelectorAll(x)),d}catch(y){}finally{r||b.removeAttribute("id")}}}return i(a.replace(R,"$1"),b,d,e)}function hb(){var a=[];function b(c,e){return a.push(c+" ")>d.cacheLength&&delete b[a.shift()],b[c+" "]=e}return b}function ib(a){return a[u]=!0,a}function jb(a){var b=n.createElement("div");try{return!!a(b)}catch(c){return!1}finally{b.parentNode&&b.parentNode.removeChild(b),b=null}}function kb(a,b){var c=a.split("|"),e=a.length;while(e--)d.attrHandle[c[e]]=b}function lb(a,b){var c=b&&a,d=c&&1===a.nodeType&&1===b.nodeType&&(~b.sourceIndex||C)-(~a.sourceIndex||C);if(d)return d;if(c)while(c=c.nextSibling)if(c===b)return-1;return a?1:-1}function mb(a){return function(b){var c=b.nodeName.toLowerCase();return"input"===c&&b.type===a}}function nb(a){return function(b){var c=b.nodeName.toLowerCase();return("input"===c||"button"===c)&&b.type===a}}function ob(a){return ib(function(b){return b=+b,ib(function(c,d){var e,f=a([],c.length,b),g=f.length;while(g--)c[e=f[g]]&&(c[e]=!(d[e]=c[e]))})})}function pb(a){return a&&"undefined"!=typeof a.getElementsByTagName&&a}c=gb.support={},f=gb.isXML=function(a){var b=a&&(a.ownerDocument||a).documentElement;return b?"HTML"!==b.nodeName:!1},m=gb.setDocument=function(a){var b,e,g=a?a.ownerDocument||a:v;return g!==n&&9===g.nodeType&&g.documentElement?(n=g,o=g.documentElement,e=g.defaultView,e&&e!==e.top&&(e.addEventListener?e.addEventListener("unload",eb,!1):e.attachEvent&&e.attachEvent("onunload",eb)),p=!f(g),c.attributes=jb(function(a){return a.className="i",!a.getAttribute("className")}),c.getElementsByTagName=jb(function(a){return a.appendChild(g.createComment("")),!a.getElementsByTagName("*").length}),c.getElementsByClassName=$.test(g.getElementsByClassName),c.getById=jb(function(a){return o.appendChild(a).id=u,!g.getElementsByName||!g.getElementsByName(u).length}),c.getById?(d.find.ID=function(a,b){if("undefined"!=typeof b.getElementById&&p){var c=b.getElementById(a);return c&&c.parentNode?[c]:[]}},d.filter.ID=function(a){var b=a.replace(cb,db);return function(a){return a.getAttribute("id")===b}}):(delete d.find.ID,d.filter.ID=function(a){var b=a.replace(cb,db);return function(a){var c="undefined"!=typeof a.getAttributeNode&&a.getAttributeNode("id");return c&&c.value===b}}),d.find.TAG=c.getElementsByTagName?function(a,b){return"undefined"!=typeof b.getElementsByTagName?b.getElementsByTagName(a):c.qsa?b.querySelectorAll(a):void 0}:function(a,b){var c,d=[],e=0,f=b.getElementsByTagName(a);if("*"===a){while(c=f[e++])1===c.nodeType&&d.push(c);return d}return f},d.find.CLASS=c.getElementsByClassName&&function(a,b){return p?b.getElementsByClassName(a):void 0},r=[],q=[],(c.qsa=$.test(g.querySelectorAll))&&(jb(function(a){o.appendChild(a).innerHTML="<a id='"+u+"'></a><select id='"+u+"-\f]' msallowcapture=''><option selected=''></option></select>",a.querySelectorAll("[msallowcapture^='']").length&&q.push("[*^$]="+L+"*(?:''|\"\")"),a.querySelectorAll("[selected]").length||q.push("\\["+L+"*(?:value|"+K+")"),a.querySelectorAll("[id~="+u+"-]").length||q.push("~="),a.querySelectorAll(":checked").length||q.push(":checked"),a.querySelectorAll("a#"+u+"+*").length||q.push(".#.+[+~]")}),jb(function(a){var b=g.createElement("input");b.setAttribute("type","hidden"),a.appendChild(b).setAttribute("name","D"),a.querySelectorAll("[name=d]").length&&q.push("name"+L+"*[*^$|!~]?="),a.querySelectorAll(":enabled").length||q.push(":enabled",":disabled"),a.querySelectorAll("*,:x"),q.push(",.*:")})),(c.matchesSelector=$.test(s=o.matches||o.webkitMatchesSelector||o.mozMatchesSelector||o.oMatchesSelector||o.msMatchesSelector))&&jb(function(a){c.disconnectedMatch=s.call(a,"div"),s.call(a,"[s!='']:x"),r.push("!=",P)}),q=q.length&&new RegExp(q.join("|")),r=r.length&&new RegExp(r.join("|")),b=$.test(o.compareDocumentPosition),t=b||$.test(o.contains)?function(a,b){var c=9===a.nodeType?a.documentElement:a,d=b&&b.parentNode;return a===d||!(!d||1!==d.nodeType||!(c.contains?c.contains(d):a.compareDocumentPosition&&16&a.compareDocumentPosition(d)))}:function(a,b){if(b)while(b=b.parentNode)if(b===a)return!0;return!1},B=b?function(a,b){if(a===b)return l=!0,0;var d=!a.compareDocumentPosition-!b.compareDocumentPosition;return d?d:(d=(a.ownerDocument||a)===(b.ownerDocument||b)?a.compareDocumentPosition(b):1,1&d||!c.sortDetached&&b.compareDocumentPosition(a)===d?a===g||a.ownerDocument===v&&t(v,a)?-1:b===g||b.ownerDocument===v&&t(v,b)?1:k?J(k,a)-J(k,b):0:4&d?-1:1)}:function(a,b){if(a===b)return l=!0,0;var c,d=0,e=a.parentNode,f=b.parentNode,h=[a],i=[b];if(!e||!f)return a===g?-1:b===g?1:e?-1:f?1:k?J(k,a)-J(k,b):0;if(e===f)return lb(a,b);c=a;while(c=c.parentNode)h.unshift(c);c=b;while(c=c.parentNode)i.unshift(c);while(h[d]===i[d])d++;return d?lb(h[d],i[d]):h[d]===v?-1:i[d]===v?1:0},g):n},gb.matches=function(a,b){return gb(a,null,null,b)},gb.matchesSelector=function(a,b){if((a.ownerDocument||a)!==n&&m(a),b=b.replace(U,"='$1']"),!(!c.matchesSelector||!p||r&&r.test(b)||q&&q.test(b)))try{var d=s.call(a,b);if(d||c.disconnectedMatch||a.document&&11!==a.document.nodeType)return d}catch(e){}return gb(b,n,null,[a]).length>0},gb.contains=function(a,b){return(a.ownerDocument||a)!==n&&m(a),t(a,b)},gb.attr=function(a,b){(a.ownerDocument||a)!==n&&m(a);var e=d.attrHandle[b.toLowerCase()],f=e&&D.call(d.attrHandle,b.toLowerCase())?e(a,b,!p):void 0;return void 0!==f?f:c.attributes||!p?a.getAttribute(b):(f=a.getAttributeNode(b))&&f.specified?f.value:null},gb.error=function(a){throw new Error("Syntax error, unrecognized expression: "+a)},gb.uniqueSort=function(a){var b,d=[],e=0,f=0;if(l=!c.detectDuplicates,k=!c.sortStable&&a.slice(0),a.sort(B),l){while(b=a[f++])b===a[f]&&(e=d.push(f));while(e--)a.splice(d[e],1)}return k=null,a},e=gb.getText=function(a){var b,c="",d=0,f=a.nodeType;if(f){if(1===f||9===f||11===f){if("string"==typeof a.textContent)return a.textContent;for(a=a.firstChild;a;a=a.nextSibling)c+=e(a)}else if(3===f||4===f)return a.nodeValue}else while(b=a[d++])c+=e(b);return c},d=gb.selectors={cacheLength:50,createPseudo:ib,match:X,attrHandle:{},find:{},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(a){return a[1]=a[1].replace(cb,db),a[3]=(a[3]||a[4]||a[5]||"").replace(cb,db),"~="===a[2]&&(a[3]=" "+a[3]+" "),a.slice(0,4)},CHILD:function(a){return a[1]=a[1].toLowerCase(),"nth"===a[1].slice(0,3)?(a[3]||gb.error(a[0]),a[4]=+(a[4]?a[5]+(a[6]||1):2*("even"===a[3]||"odd"===a[3])),a[5]=+(a[7]+a[8]||"odd"===a[3])):a[3]&&gb.error(a[0]),a},PSEUDO:function(a){var b,c=!a[6]&&a[2];return X.CHILD.test(a[0])?null:(a[3]?a[2]=a[4]||a[5]||"":c&&V.test(c)&&(b=g(c,!0))&&(b=c.indexOf(")",c.length-b)-c.length)&&(a[0]=a[0].slice(0,b),a[2]=c.slice(0,b)),a.slice(0,3))}},filter:{TAG:function(a){var b=a.replace(cb,db).toLowerCase();return"*"===a?function(){return!0}:function(a){return a.nodeName&&a.nodeName.toLowerCase()===b}},CLASS:function(a){var b=y[a+" "];return b||(b=new RegExp("(^|"+L+")"+a+"("+L+"|$)"))&&y(a,function(a){return b.test("string"==typeof a.className&&a.className||"undefined"!=typeof a.getAttribute&&a.getAttribute("class")||"")})},ATTR:function(a,b,c){return function(d){var e=gb.attr(d,a);return null==e?"!="===b:b?(e+="","="===b?e===c:"!="===b?e!==c:"^="===b?c&&0===e.indexOf(c):"*="===b?c&&e.indexOf(c)>-1:"$="===b?c&&e.slice(-c.length)===c:"~="===b?(" "+e.replace(Q," ")+" ").indexOf(c)>-1:"|="===b?e===c||e.slice(0,c.length+1)===c+"-":!1):!0}},CHILD:function(a,b,c,d,e){var f="nth"!==a.slice(0,3),g="last"!==a.slice(-4),h="of-type"===b;return 1===d&&0===e?function(a){return!!a.parentNode}:function(b,c,i){var j,k,l,m,n,o,p=f!==g?"nextSibling":"previousSibling",q=b.parentNode,r=h&&b.nodeName.toLowerCase(),s=!i&&!h;if(q){if(f){while(p){l=b;while(l=l[p])if(h?l.nodeName.toLowerCase()===r:1===l.nodeType)return!1;o=p="only"===a&&!o&&"nextSibling"}return!0}if(o=[g?q.firstChild:q.lastChild],g&&s){k=q[u]||(q[u]={}),j=k[a]||[],n=j[0]===w&&j[1],m=j[0]===w&&j[2],l=n&&q.childNodes[n];while(l=++n&&l&&l[p]||(m=n=0)||o.pop())if(1===l.nodeType&&++m&&l===b){k[a]=[w,n,m];break}}else if(s&&(j=(b[u]||(b[u]={}))[a])&&j[0]===w)m=j[1];else while(l=++n&&l&&l[p]||(m=n=0)||o.pop())if((h?l.nodeName.toLowerCase()===r:1===l.nodeType)&&++m&&(s&&((l[u]||(l[u]={}))[a]=[w,m]),l===b))break;return m-=e,m===d||m%d===0&&m/d>=0}}},PSEUDO:function(a,b){var c,e=d.pseudos[a]||d.setFilters[a.toLowerCase()]||gb.error("unsupported pseudo: "+a);return e[u]?e(b):e.length>1?(c=[a,a,"",b],d.setFilters.hasOwnProperty(a.toLowerCase())?ib(function(a,c){var d,f=e(a,b),g=f.length;while(g--)d=J(a,f[g]),a[d]=!(c[d]=f[g])}):function(a){return e(a,0,c)}):e}},pseudos:{not:ib(function(a){var b=[],c=[],d=h(a.replace(R,"$1"));return d[u]?ib(function(a,b,c,e){var f,g=d(a,null,e,[]),h=a.length;while(h--)(f=g[h])&&(a[h]=!(b[h]=f))}):function(a,e,f){return b[0]=a,d(b,null,f,c),b[0]=null,!c.pop()}}),has:ib(function(a){return function(b){return gb(a,b).length>0}}),contains:ib(function(a){return a=a.replace(cb,db),function(b){return(b.textContent||b.innerText||e(b)).indexOf(a)>-1}}),lang:ib(function(a){return W.test(a||"")||gb.error("unsupported lang: "+a),a=a.replace(cb,db).toLowerCase(),function(b){var c;do if(c=p?b.lang:b.getAttribute("xml:lang")||b.getAttribute("lang"))return c=c.toLowerCase(),c===a||0===c.indexOf(a+"-");while((b=b.parentNode)&&1===b.nodeType);return!1}}),target:function(b){var c=a.location&&a.location.hash;return c&&c.slice(1)===b.id},root:function(a){return a===o},focus:function(a){return a===n.activeElement&&(!n.hasFocus||n.hasFocus())&&!!(a.type||a.href||~a.tabIndex)},enabled:function(a){return a.disabled===!1},disabled:function(a){return a.disabled===!0},checked:function(a){var b=a.nodeName.toLowerCase();return"input"===b&&!!a.checked||"option"===b&&!!a.selected},selected:function(a){return a.parentNode&&a.parentNode.selectedIndex,a.selected===!0},empty:function(a){for(a=a.firstChild;a;a=a.nextSibling)if(a.nodeType<6)return!1;return!0},parent:function(a){return!d.pseudos.empty(a)},header:function(a){return Z.test(a.nodeName)},input:function(a){return Y.test(a.nodeName)},button:function(a){var b=a.nodeName.toLowerCase();return"input"===b&&"button"===a.type||"button"===b},text:function(a){var b;return"input"===a.nodeName.toLowerCase()&&"text"===a.type&&(null==(b=a.getAttribute("type"))||"text"===b.toLowerCase())},first:ob(function(){return[0]}),last:ob(function(a,b){return[b-1]}),eq:ob(function(a,b,c){return[0>c?c+b:c]}),even:ob(function(a,b){for(var c=0;b>c;c+=2)a.push(c);return a}),odd:ob(function(a,b){for(var c=1;b>c;c+=2)a.push(c);return a}),lt:ob(function(a,b,c){for(var d=0>c?c+b:c;--d>=0;)a.push(d);return a}),gt:ob(function(a,b,c){for(var d=0>c?c+b:c;++d<b;)a.push(d);return a})}},d.pseudos.nth=d.pseudos.eq;for(b in{radio:!0,checkbox:!0,file:!0,password:!0,image:!0})d.pseudos[b]=mb(b);for(b in{submit:!0,reset:!0})d.pseudos[b]=nb(b);function qb(){}qb.prototype=d.filters=d.pseudos,d.setFilters=new qb,g=gb.tokenize=function(a,b){var c,e,f,g,h,i,j,k=z[a+" "];if(k)return b?0:k.slice(0);h=a,i=[],j=d.preFilter;while(h){(!c||(e=S.exec(h)))&&(e&&(h=h.slice(e[0].length)||h),i.push(f=[])),c=!1,(e=T.exec(h))&&(c=e.shift(),f.push({value:c,type:e[0].replace(R," ")}),h=h.slice(c.length));for(g in d.filter)!(e=X[g].exec(h))||j[g]&&!(e=j[g](e))||(c=e.shift(),f.push({value:c,type:g,matches:e}),h=h.slice(c.length));if(!c)break}return b?h.length:h?gb.error(a):z(a,i).slice(0)};function rb(a){for(var b=0,c=a.length,d="";c>b;b++)d+=a[b].value;return d}function sb(a,b,c){var d=b.dir,e=c&&"parentNode"===d,f=x++;return b.first?function(b,c,f){while(b=b[d])if(1===b.nodeType||e)return a(b,c,f)}:function(b,c,g){var h,i,j=[w,f];if(g){while(b=b[d])if((1===b.nodeType||e)&&a(b,c,g))return!0}else while(b=b[d])if(1===b.nodeType||e){if(i=b[u]||(b[u]={}),(h=i[d])&&h[0]===w&&h[1]===f)return j[2]=h[2];if(i[d]=j,j[2]=a(b,c,g))return!0}}}function tb(a){return a.length>1?function(b,c,d){var e=a.length;while(e--)if(!a[e](b,c,d))return!1;return!0}:a[0]}function ub(a,b,c){for(var d=0,e=b.length;e>d;d++)gb(a,b[d],c);return c}function vb(a,b,c,d,e){for(var f,g=[],h=0,i=a.length,j=null!=b;i>h;h++)(f=a[h])&&(!c||c(f,d,e))&&(g.push(f),j&&b.push(h));return g}function wb(a,b,c,d,e,f){return d&&!d[u]&&(d=wb(d)),e&&!e[u]&&(e=wb(e,f)),ib(function(f,g,h,i){var j,k,l,m=[],n=[],o=g.length,p=f||ub(b||"*",h.nodeType?[h]:h,[]),q=!a||!f&&b?p:vb(p,m,a,h,i),r=c?e||(f?a:o||d)?[]:g:q;if(c&&c(q,r,h,i),d){j=vb(r,n),d(j,[],h,i),k=j.length;while(k--)(l=j[k])&&(r[n[k]]=!(q[n[k]]=l))}if(f){if(e||a){if(e){j=[],k=r.length;while(k--)(l=r[k])&&j.push(q[k]=l);e(null,r=[],j,i)}k=r.length;while(k--)(l=r[k])&&(j=e?J(f,l):m[k])>-1&&(f[j]=!(g[j]=l))}}else r=vb(r===g?r.splice(o,r.length):r),e?e(null,g,r,i):H.apply(g,r)})}function xb(a){for(var b,c,e,f=a.length,g=d.relative[a[0].type],h=g||d.relative[" "],i=g?1:0,k=sb(function(a){return a===b},h,!0),l=sb(function(a){return J(b,a)>-1},h,!0),m=[function(a,c,d){var e=!g&&(d||c!==j)||((b=c).nodeType?k(a,c,d):l(a,c,d));return b=null,e}];f>i;i++)if(c=d.relative[a[i].type])m=[sb(tb(m),c)];else{if(c=d.filter[a[i].type].apply(null,a[i].matches),c[u]){for(e=++i;f>e;e++)if(d.relative[a[e].type])break;return wb(i>1&&tb(m),i>1&&rb(a.slice(0,i-1).concat({value:" "===a[i-2].type?"*":""})).replace(R,"$1"),c,e>i&&xb(a.slice(i,e)),f>e&&xb(a=a.slice(e)),f>e&&rb(a))}m.push(c)}return tb(m)}function yb(a,b){var c=b.length>0,e=a.length>0,f=function(f,g,h,i,k){var l,m,o,p=0,q="0",r=f&&[],s=[],t=j,u=f||e&&d.find.TAG("*",k),v=w+=null==t?1:Math.random()||.1,x=u.length;for(k&&(j=g!==n&&g);q!==x&&null!=(l=u[q]);q++){if(e&&l){m=0;while(o=a[m++])if(o(l,g,h)){i.push(l);break}k&&(w=v)}c&&((l=!o&&l)&&p--,f&&r.push(l))}if(p+=q,c&&q!==p){m=0;while(o=b[m++])o(r,s,g,h);if(f){if(p>0)while(q--)r[q]||s[q]||(s[q]=F.call(i));s=vb(s)}H.apply(i,s),k&&!f&&s.length>0&&p+b.length>1&&gb.uniqueSort(i)}return k&&(w=v,j=t),r};return c?ib(f):f}return h=gb.compile=function(a,b){var c,d=[],e=[],f=A[a+" "];if(!f){b||(b=g(a)),c=b.length;while(c--)f=xb(b[c]),f[u]?d.push(f):e.push(f);f=A(a,yb(e,d)),f.selector=a}return f},i=gb.select=function(a,b,e,f){var i,j,k,l,m,n="function"==typeof a&&a,o=!f&&g(a=n.selector||a);if(e=e||[],1===o.length){if(j=o[0]=o[0].slice(0),j.length>2&&"ID"===(k=j[0]).type&&c.getById&&9===b.nodeType&&p&&d.relative[j[1].type]){if(b=(d.find.ID(k.matches[0].replace(cb,db),b)||[])[0],!b)return e;n&&(b=b.parentNode),a=a.slice(j.shift().value.length)}i=X.needsContext.test(a)?0:j.length;while(i--){if(k=j[i],d.relative[l=k.type])break;if((m=d.find[l])&&(f=m(k.matches[0].replace(cb,db),ab.test(j[0].type)&&pb(b.parentNode)||b))){if(j.splice(i,1),a=f.length&&rb(j),!a)return H.apply(e,f),e;break}}}return(n||h(a,o))(f,b,!p,e,ab.test(a)&&pb(b.parentNode)||b),e},c.sortStable=u.split("").sort(B).join("")===u,c.detectDuplicates=!!l,m(),c.sortDetached=jb(function(a){return 1&a.compareDocumentPosition(n.createElement("div"))}),jb(function(a){return a.innerHTML="<a href='#'></a>","#"===a.firstChild.getAttribute("href")})||kb("type|href|height|width",function(a,b,c){return c?void 0:a.getAttribute(b,"type"===b.toLowerCase()?1:2)}),c.attributes&&jb(function(a){return a.innerHTML="<input/>",a.firstChild.setAttribute("value",""),""===a.firstChild.getAttribute("value")})||kb("value",function(a,b,c){return c||"input"!==a.nodeName.toLowerCase()?void 0:a.defaultValue}),jb(function(a){return null==a.getAttribute("disabled")})||kb(K,function(a,b,c){var d;return c?void 0:a[b]===!0?b.toLowerCase():(d=a.getAttributeNode(b))&&d.specified?d.value:null}),gb}(a);n.find=t,n.expr=t.selectors,n.expr[":"]=n.expr.pseudos,n.unique=t.uniqueSort,n.text=t.getText,n.isXMLDoc=t.isXML,n.contains=t.contains;var u=n.expr.match.needsContext,v=/^<(\w+)\s*\/?>(?:<\/\1>|)$/,w=/^.[^:#\[\.,]*$/;function x(a,b,c){if(n.isFunction(b))return n.grep(a,function(a,d){return!!b.call(a,d,a)!==c});if(b.nodeType)return n.grep(a,function(a){return a===b!==c});if("string"==typeof b){if(w.test(b))return n.filter(b,a,c);b=n.filter(b,a)}return n.grep(a,function(a){return g.call(b,a)>=0!==c})}n.filter=function(a,b,c){var d=b[0];return c&&(a=":not("+a+")"),1===b.length&&1===d.nodeType?n.find.matchesSelector(d,a)?[d]:[]:n.find.matches(a,n.grep(b,function(a){return 1===a.nodeType}))},n.fn.extend({find:function(a){var b,c=this.length,d=[],e=this;if("string"!=typeof a)return this.pushStack(n(a).filter(function(){for(b=0;c>b;b++)if(n.contains(e[b],this))return!0}));for(b=0;c>b;b++)n.find(a,e[b],d);return d=this.pushStack(c>1?n.unique(d):d),d.selector=this.selector?this.selector+" "+a:a,d},filter:function(a){return this.pushStack(x(this,a||[],!1))},not:function(a){return this.pushStack(x(this,a||[],!0))},is:function(a){return!!x(this,"string"==typeof a&&u.test(a)?n(a):a||[],!1).length}});var y,z=/^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]*))$/,A=n.fn.init=function(a,b){var c,d;if(!a)return this;if("string"==typeof a){if(c="<"===a[0]&&">"===a[a.length-1]&&a.length>=3?[null,a,null]:z.exec(a),!c||!c[1]&&b)return!b||b.jquery?(b||y).find(a):this.constructor(b).find(a);if(c[1]){if(b=b instanceof n?b[0]:b,n.merge(this,n.parseHTML(c[1],b&&b.nodeType?b.ownerDocument||b:l,!0)),v.test(c[1])&&n.isPlainObject(b))for(c in b)n.isFunction(this[c])?this[c](b[c]):this.attr(c,b[c]);return this}return d=l.getElementById(c[2]),d&&d.parentNode&&(this.length=1,this[0]=d),this.context=l,this.selector=a,this}return a.nodeType?(this.context=this[0]=a,this.length=1,this):n.isFunction(a)?"undefined"!=typeof y.ready?y.ready(a):a(n):(void 0!==a.selector&&(this.selector=a.selector,this.context=a.context),n.makeArray(a,this))};A.prototype=n.fn,y=n(l);var B=/^(?:parents|prev(?:Until|All))/,C={children:!0,contents:!0,next:!0,prev:!0};n.extend({dir:function(a,b,c){var d=[],e=void 0!==c;while((a=a[b])&&9!==a.nodeType)if(1===a.nodeType){if(e&&n(a).is(c))break;d.push(a)}return d},sibling:function(a,b){for(var c=[];a;a=a.nextSibling)1===a.nodeType&&a!==b&&c.push(a);return c}}),n.fn.extend({has:function(a){var b=n(a,this),c=b.length;return this.filter(function(){for(var a=0;c>a;a++)if(n.contains(this,b[a]))return!0})},closest:function(a,b){for(var c,d=0,e=this.length,f=[],g=u.test(a)||"string"!=typeof a?n(a,b||this.context):0;e>d;d++)for(c=this[d];c&&c!==b;c=c.parentNode)if(c.nodeType<11&&(g?g.index(c)>-1:1===c.nodeType&&n.find.matchesSelector(c,a))){f.push(c);break}return this.pushStack(f.length>1?n.unique(f):f)},index:function(a){return a?"string"==typeof a?g.call(n(a),this[0]):g.call(this,a.jquery?a[0]:a):this[0]&&this[0].parentNode?this.first().prevAll().length:-1},add:function(a,b){return this.pushStack(n.unique(n.merge(this.get(),n(a,b))))},addBack:function(a){return this.add(null==a?this.prevObject:this.prevObject.filter(a))}});function D(a,b){while((a=a[b])&&1!==a.nodeType);return a}n.each({parent:function(a){var b=a.parentNode;return b&&11!==b.nodeType?b:null},parents:function(a){return n.dir(a,"parentNode")},parentsUntil:function(a,b,c){return n.dir(a,"parentNode",c)},next:function(a){return D(a,"nextSibling")},prev:function(a){return D(a,"previousSibling")},nextAll:function(a){return n.dir(a,"nextSibling")},prevAll:function(a){return n.dir(a,"previousSibling")},nextUntil:function(a,b,c){return n.dir(a,"nextSibling",c)},prevUntil:function(a,b,c){return n.dir(a,"previousSibling",c)},siblings:function(a){return n.sibling((a.parentNode||{}).firstChild,a)},children:function(a){return n.sibling(a.firstChild)},contents:function(a){return a.contentDocument||n.merge([],a.childNodes)}},function(a,b){n.fn[a]=function(c,d){var e=n.map(this,b,c);return"Until"!==a.slice(-5)&&(d=c),d&&"string"==typeof d&&(e=n.filter(d,e)),this.length>1&&(C[a]||n.unique(e),B.test(a)&&e.reverse()),this.pushStack(e)}});var E=/\S+/g,F={};function G(a){var b=F[a]={};return n.each(a.match(E)||[],function(a,c){b[c]=!0}),b}n.Callbacks=function(a){a="string"==typeof a?F[a]||G(a):n.extend({},a);var b,c,d,e,f,g,h=[],i=!a.once&&[],j=function(l){for(b=a.memory&&l,c=!0,g=e||0,e=0,f=h.length,d=!0;h&&f>g;g++)if(h[g].apply(l[0],l[1])===!1&&a.stopOnFalse){b=!1;break}d=!1,h&&(i?i.length&&j(i.shift()):b?h=[]:k.disable())},k={add:function(){if(h){var c=h.length;!function g(b){n.each(b,function(b,c){var d=n.type(c);"function"===d?a.unique&&k.has(c)||h.push(c):c&&c.length&&"string"!==d&&g(c)})}(arguments),d?f=h.length:b&&(e=c,j(b))}return this},remove:function(){return h&&n.each(arguments,function(a,b){var c;while((c=n.inArray(b,h,c))>-1)h.splice(c,1),d&&(f>=c&&f--,g>=c&&g--)}),this},has:function(a){return a?n.inArray(a,h)>-1:!(!h||!h.length)},empty:function(){return h=[],f=0,this},disable:function(){return h=i=b=void 0,this},disabled:function(){return!h},lock:function(){return i=void 0,b||k.disable(),this},locked:function(){return!i},fireWith:function(a,b){return!h||c&&!i||(b=b||[],b=[a,b.slice?b.slice():b],d?i.push(b):j(b)),this},fire:function(){return k.fireWith(this,arguments),this},fired:function(){return!!c}};return k},n.extend({Deferred:function(a){var b=[["resolve","done",n.Callbacks("once memory"),"resolved"],["reject","fail",n.Callbacks("once memory"),"rejected"],["notify","progress",n.Callbacks("memory")]],c="pending",d={state:function(){return c},always:function(){return e.done(arguments).fail(arguments),this},then:function(){var a=arguments;return n.Deferred(function(c){n.each(b,function(b,f){var g=n.isFunction(a[b])&&a[b];e[f[1]](function(){var a=g&&g.apply(this,arguments);a&&n.isFunction(a.promise)?a.promise().done(c.resolve).fail(c.reject).progress(c.notify):c[f[0]+"With"](this===d?c.promise():this,g?[a]:arguments)})}),a=null}).promise()},promise:function(a){return null!=a?n.extend(a,d):d}},e={};return d.pipe=d.then,n.each(b,function(a,f){var g=f[2],h=f[3];d[f[1]]=g.add,h&&g.add(function(){c=h},b[1^a][2].disable,b[2][2].lock),e[f[0]]=function(){return e[f[0]+"With"](this===e?d:this,arguments),this},e[f[0]+"With"]=g.fireWith}),d.promise(e),a&&a.call(e,e),e},when:function(a){var b=0,c=d.call(arguments),e=c.length,f=1!==e||a&&n.isFunction(a.promise)?e:0,g=1===f?a:n.Deferred(),h=function(a,b,c){return function(e){b[a]=this,c[a]=arguments.length>1?d.call(arguments):e,c===i?g.notifyWith(b,c):--f||g.resolveWith(b,c)}},i,j,k;if(e>1)for(i=new Array(e),j=new Array(e),k=new Array(e);e>b;b++)c[b]&&n.isFunction(c[b].promise)?c[b].promise().done(h(b,k,c)).fail(g.reject).progress(h(b,j,i)):--f;return f||g.resolveWith(k,c),g.promise()}});var H;n.fn.ready=function(a){return n.ready.promise().done(a),this},n.extend({isReady:!1,readyWait:1,holdReady:function(a){a?n.readyWait++:n.ready(!0)},ready:function(a){(a===!0?--n.readyWait:n.isReady)||(n.isReady=!0,a!==!0&&--n.readyWait>0||(H.resolveWith(l,[n]),n.fn.triggerHandler&&(n(l).triggerHandler("ready"),n(l).off("ready"))))}});function I(){l.removeEventListener("DOMContentLoaded",I,!1),a.removeEventListener("load",I,!1),n.ready()}n.ready.promise=function(b){return H||(H=n.Deferred(),"complete"===l.readyState?setTimeout(n.ready):(l.addEventListener("DOMContentLoaded",I,!1),a.addEventListener("load",I,!1))),H.promise(b)},n.ready.promise();var J=n.access=function(a,b,c,d,e,f,g){var h=0,i=a.length,j=null==c;if("object"===n.type(c)){e=!0;for(h in c)n.access(a,b,h,c[h],!0,f,g)}else if(void 0!==d&&(e=!0,n.isFunction(d)||(g=!0),j&&(g?(b.call(a,d),b=null):(j=b,b=function(a,b,c){return j.call(n(a),c)})),b))for(;i>h;h++)b(a[h],c,g?d:d.call(a[h],h,b(a[h],c)));return e?a:j?b.call(a):i?b(a[0],c):f};n.acceptData=function(a){return 1===a.nodeType||9===a.nodeType||!+a.nodeType};function K(){Object.defineProperty(this.cache={},0,{get:function(){return{}}}),this.expando=n.expando+K.uid++}K.uid=1,K.accepts=n.acceptData,K.prototype={key:function(a){if(!K.accepts(a))return 0;var b={},c=a[this.expando];if(!c){c=K.uid++;try{b[this.expando]={value:c},Object.defineProperties(a,b)}catch(d){b[this.expando]=c,n.extend(a,b)}}return this.cache[c]||(this.cache[c]={}),c},set:function(a,b,c){var d,e=this.key(a),f=this.cache[e];if("string"==typeof b)f[b]=c;else if(n.isEmptyObject(f))n.extend(this.cache[e],b);else for(d in b)f[d]=b[d];return f},get:function(a,b){var c=this.cache[this.key(a)];return void 0===b?c:c[b]},access:function(a,b,c){var d;return void 0===b||b&&"string"==typeof b&&void 0===c?(d=this.get(a,b),void 0!==d?d:this.get(a,n.camelCase(b))):(this.set(a,b,c),void 0!==c?c:b)},remove:function(a,b){var c,d,e,f=this.key(a),g=this.cache[f];if(void 0===b)this.cache[f]={};else{n.isArray(b)?d=b.concat(b.map(n.camelCase)):(e=n.camelCase(b),b in g?d=[b,e]:(d=e,d=d in g?[d]:d.match(E)||[])),c=d.length;while(c--)delete g[d[c]]}},hasData:function(a){return!n.isEmptyObject(this.cache[a[this.expando]]||{})},discard:function(a){a[this.expando]&&delete this.cache[a[this.expando]]}};var L=new K,M=new K,N=/^(?:\{[\w\W]*\}|\[[\w\W]*\])$/,O=/([A-Z])/g;function P(a,b,c){var d;if(void 0===c&&1===a.nodeType)if(d="data-"+b.replace(O,"-$1").toLowerCase(),c=a.getAttribute(d),"string"==typeof c){try{c="true"===c?!0:"false"===c?!1:"null"===c?null:+c+""===c?+c:N.test(c)?n.parseJSON(c):c}catch(e){}M.set(a,b,c)}else c=void 0;return c}n.extend({hasData:function(a){return M.hasData(a)||L.hasData(a)},data:function(a,b,c){return M.access(a,b,c) -},removeData:function(a,b){M.remove(a,b)},_data:function(a,b,c){return L.access(a,b,c)},_removeData:function(a,b){L.remove(a,b)}}),n.fn.extend({data:function(a,b){var c,d,e,f=this[0],g=f&&f.attributes;if(void 0===a){if(this.length&&(e=M.get(f),1===f.nodeType&&!L.get(f,"hasDataAttrs"))){c=g.length;while(c--)g[c]&&(d=g[c].name,0===d.indexOf("data-")&&(d=n.camelCase(d.slice(5)),P(f,d,e[d])));L.set(f,"hasDataAttrs",!0)}return e}return"object"==typeof a?this.each(function(){M.set(this,a)}):J(this,function(b){var c,d=n.camelCase(a);if(f&&void 0===b){if(c=M.get(f,a),void 0!==c)return c;if(c=M.get(f,d),void 0!==c)return c;if(c=P(f,d,void 0),void 0!==c)return c}else this.each(function(){var c=M.get(this,d);M.set(this,d,b),-1!==a.indexOf("-")&&void 0!==c&&M.set(this,a,b)})},null,b,arguments.length>1,null,!0)},removeData:function(a){return this.each(function(){M.remove(this,a)})}}),n.extend({queue:function(a,b,c){var d;return a?(b=(b||"fx")+"queue",d=L.get(a,b),c&&(!d||n.isArray(c)?d=L.access(a,b,n.makeArray(c)):d.push(c)),d||[]):void 0},dequeue:function(a,b){b=b||"fx";var c=n.queue(a,b),d=c.length,e=c.shift(),f=n._queueHooks(a,b),g=function(){n.dequeue(a,b)};"inprogress"===e&&(e=c.shift(),d--),e&&("fx"===b&&c.unshift("inprogress"),delete f.stop,e.call(a,g,f)),!d&&f&&f.empty.fire()},_queueHooks:function(a,b){var c=b+"queueHooks";return L.get(a,c)||L.access(a,c,{empty:n.Callbacks("once memory").add(function(){L.remove(a,[b+"queue",c])})})}}),n.fn.extend({queue:function(a,b){var c=2;return"string"!=typeof a&&(b=a,a="fx",c--),arguments.length<c?n.queue(this[0],a):void 0===b?this:this.each(function(){var c=n.queue(this,a,b);n._queueHooks(this,a),"fx"===a&&"inprogress"!==c[0]&&n.dequeue(this,a)})},dequeue:function(a){return this.each(function(){n.dequeue(this,a)})},clearQueue:function(a){return this.queue(a||"fx",[])},promise:function(a,b){var c,d=1,e=n.Deferred(),f=this,g=this.length,h=function(){--d||e.resolveWith(f,[f])};"string"!=typeof a&&(b=a,a=void 0),a=a||"fx";while(g--)c=L.get(f[g],a+"queueHooks"),c&&c.empty&&(d++,c.empty.add(h));return h(),e.promise(b)}});var Q=/[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/.source,R=["Top","Right","Bottom","Left"],S=function(a,b){return a=b||a,"none"===n.css(a,"display")||!n.contains(a.ownerDocument,a)},T=/^(?:checkbox|radio)$/i;!function(){var a=l.createDocumentFragment(),b=a.appendChild(l.createElement("div")),c=l.createElement("input");c.setAttribute("type","radio"),c.setAttribute("checked","checked"),c.setAttribute("name","t"),b.appendChild(c),k.checkClone=b.cloneNode(!0).cloneNode(!0).lastChild.checked,b.innerHTML="<textarea>x</textarea>",k.noCloneChecked=!!b.cloneNode(!0).lastChild.defaultValue}();var U="undefined";k.focusinBubbles="onfocusin"in a;var V=/^key/,W=/^(?:mouse|pointer|contextmenu)|click/,X=/^(?:focusinfocus|focusoutblur)$/,Y=/^([^.]*)(?:\.(.+)|)$/;function Z(){return!0}function $(){return!1}function _(){try{return l.activeElement}catch(a){}}n.event={global:{},add:function(a,b,c,d,e){var f,g,h,i,j,k,l,m,o,p,q,r=L.get(a);if(r){c.handler&&(f=c,c=f.handler,e=f.selector),c.guid||(c.guid=n.guid++),(i=r.events)||(i=r.events={}),(g=r.handle)||(g=r.handle=function(b){return typeof n!==U&&n.event.triggered!==b.type?n.event.dispatch.apply(a,arguments):void 0}),b=(b||"").match(E)||[""],j=b.length;while(j--)h=Y.exec(b[j])||[],o=q=h[1],p=(h[2]||"").split(".").sort(),o&&(l=n.event.special[o]||{},o=(e?l.delegateType:l.bindType)||o,l=n.event.special[o]||{},k=n.extend({type:o,origType:q,data:d,handler:c,guid:c.guid,selector:e,needsContext:e&&n.expr.match.needsContext.test(e),namespace:p.join(".")},f),(m=i[o])||(m=i[o]=[],m.delegateCount=0,l.setup&&l.setup.call(a,d,p,g)!==!1||a.addEventListener&&a.addEventListener(o,g,!1)),l.add&&(l.add.call(a,k),k.handler.guid||(k.handler.guid=c.guid)),e?m.splice(m.delegateCount++,0,k):m.push(k),n.event.global[o]=!0)}},remove:function(a,b,c,d,e){var f,g,h,i,j,k,l,m,o,p,q,r=L.hasData(a)&&L.get(a);if(r&&(i=r.events)){b=(b||"").match(E)||[""],j=b.length;while(j--)if(h=Y.exec(b[j])||[],o=q=h[1],p=(h[2]||"").split(".").sort(),o){l=n.event.special[o]||{},o=(d?l.delegateType:l.bindType)||o,m=i[o]||[],h=h[2]&&new RegExp("(^|\\.)"+p.join("\\.(?:.*\\.|)")+"(\\.|$)"),g=f=m.length;while(f--)k=m[f],!e&&q!==k.origType||c&&c.guid!==k.guid||h&&!h.test(k.namespace)||d&&d!==k.selector&&("**"!==d||!k.selector)||(m.splice(f,1),k.selector&&m.delegateCount--,l.remove&&l.remove.call(a,k));g&&!m.length&&(l.teardown&&l.teardown.call(a,p,r.handle)!==!1||n.removeEvent(a,o,r.handle),delete i[o])}else for(o in i)n.event.remove(a,o+b[j],c,d,!0);n.isEmptyObject(i)&&(delete r.handle,L.remove(a,"events"))}},trigger:function(b,c,d,e){var f,g,h,i,k,m,o,p=[d||l],q=j.call(b,"type")?b.type:b,r=j.call(b,"namespace")?b.namespace.split("."):[];if(g=h=d=d||l,3!==d.nodeType&&8!==d.nodeType&&!X.test(q+n.event.triggered)&&(q.indexOf(".")>=0&&(r=q.split("."),q=r.shift(),r.sort()),k=q.indexOf(":")<0&&"on"+q,b=b[n.expando]?b:new n.Event(q,"object"==typeof b&&b),b.isTrigger=e?2:3,b.namespace=r.join("."),b.namespace_re=b.namespace?new RegExp("(^|\\.)"+r.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,b.result=void 0,b.target||(b.target=d),c=null==c?[b]:n.makeArray(c,[b]),o=n.event.special[q]||{},e||!o.trigger||o.trigger.apply(d,c)!==!1)){if(!e&&!o.noBubble&&!n.isWindow(d)){for(i=o.delegateType||q,X.test(i+q)||(g=g.parentNode);g;g=g.parentNode)p.push(g),h=g;h===(d.ownerDocument||l)&&p.push(h.defaultView||h.parentWindow||a)}f=0;while((g=p[f++])&&!b.isPropagationStopped())b.type=f>1?i:o.bindType||q,m=(L.get(g,"events")||{})[b.type]&&L.get(g,"handle"),m&&m.apply(g,c),m=k&&g[k],m&&m.apply&&n.acceptData(g)&&(b.result=m.apply(g,c),b.result===!1&&b.preventDefault());return b.type=q,e||b.isDefaultPrevented()||o._default&&o._default.apply(p.pop(),c)!==!1||!n.acceptData(d)||k&&n.isFunction(d[q])&&!n.isWindow(d)&&(h=d[k],h&&(d[k]=null),n.event.triggered=q,d[q](),n.event.triggered=void 0,h&&(d[k]=h)),b.result}},dispatch:function(a){a=n.event.fix(a);var b,c,e,f,g,h=[],i=d.call(arguments),j=(L.get(this,"events")||{})[a.type]||[],k=n.event.special[a.type]||{};if(i[0]=a,a.delegateTarget=this,!k.preDispatch||k.preDispatch.call(this,a)!==!1){h=n.event.handlers.call(this,a,j),b=0;while((f=h[b++])&&!a.isPropagationStopped()){a.currentTarget=f.elem,c=0;while((g=f.handlers[c++])&&!a.isImmediatePropagationStopped())(!a.namespace_re||a.namespace_re.test(g.namespace))&&(a.handleObj=g,a.data=g.data,e=((n.event.special[g.origType]||{}).handle||g.handler).apply(f.elem,i),void 0!==e&&(a.result=e)===!1&&(a.preventDefault(),a.stopPropagation()))}return k.postDispatch&&k.postDispatch.call(this,a),a.result}},handlers:function(a,b){var c,d,e,f,g=[],h=b.delegateCount,i=a.target;if(h&&i.nodeType&&(!a.button||"click"!==a.type))for(;i!==this;i=i.parentNode||this)if(i.disabled!==!0||"click"!==a.type){for(d=[],c=0;h>c;c++)f=b[c],e=f.selector+" ",void 0===d[e]&&(d[e]=f.needsContext?n(e,this).index(i)>=0:n.find(e,this,null,[i]).length),d[e]&&d.push(f);d.length&&g.push({elem:i,handlers:d})}return h<b.length&&g.push({elem:this,handlers:b.slice(h)}),g},props:"altKey bubbles cancelable ctrlKey currentTarget eventPhase metaKey relatedTarget shiftKey target timeStamp view which".split(" "),fixHooks:{},keyHooks:{props:"char charCode key keyCode".split(" "),filter:function(a,b){return null==a.which&&(a.which=null!=b.charCode?b.charCode:b.keyCode),a}},mouseHooks:{props:"button buttons clientX clientY offsetX offsetY pageX pageY screenX screenY toElement".split(" "),filter:function(a,b){var c,d,e,f=b.button;return null==a.pageX&&null!=b.clientX&&(c=a.target.ownerDocument||l,d=c.documentElement,e=c.body,a.pageX=b.clientX+(d&&d.scrollLeft||e&&e.scrollLeft||0)-(d&&d.clientLeft||e&&e.clientLeft||0),a.pageY=b.clientY+(d&&d.scrollTop||e&&e.scrollTop||0)-(d&&d.clientTop||e&&e.clientTop||0)),a.which||void 0===f||(a.which=1&f?1:2&f?3:4&f?2:0),a}},fix:function(a){if(a[n.expando])return a;var b,c,d,e=a.type,f=a,g=this.fixHooks[e];g||(this.fixHooks[e]=g=W.test(e)?this.mouseHooks:V.test(e)?this.keyHooks:{}),d=g.props?this.props.concat(g.props):this.props,a=new n.Event(f),b=d.length;while(b--)c=d[b],a[c]=f[c];return a.target||(a.target=l),3===a.target.nodeType&&(a.target=a.target.parentNode),g.filter?g.filter(a,f):a},special:{load:{noBubble:!0},focus:{trigger:function(){return this!==_()&&this.focus?(this.focus(),!1):void 0},delegateType:"focusin"},blur:{trigger:function(){return this===_()&&this.blur?(this.blur(),!1):void 0},delegateType:"focusout"},click:{trigger:function(){return"checkbox"===this.type&&this.click&&n.nodeName(this,"input")?(this.click(),!1):void 0},_default:function(a){return n.nodeName(a.target,"a")}},beforeunload:{postDispatch:function(a){void 0!==a.result&&a.originalEvent&&(a.originalEvent.returnValue=a.result)}}},simulate:function(a,b,c,d){var e=n.extend(new n.Event,c,{type:a,isSimulated:!0,originalEvent:{}});d?n.event.trigger(e,null,b):n.event.dispatch.call(b,e),e.isDefaultPrevented()&&c.preventDefault()}},n.removeEvent=function(a,b,c){a.removeEventListener&&a.removeEventListener(b,c,!1)},n.Event=function(a,b){return this instanceof n.Event?(a&&a.type?(this.originalEvent=a,this.type=a.type,this.isDefaultPrevented=a.defaultPrevented||void 0===a.defaultPrevented&&a.returnValue===!1?Z:$):this.type=a,b&&n.extend(this,b),this.timeStamp=a&&a.timeStamp||n.now(),void(this[n.expando]=!0)):new n.Event(a,b)},n.Event.prototype={isDefaultPrevented:$,isPropagationStopped:$,isImmediatePropagationStopped:$,preventDefault:function(){var a=this.originalEvent;this.isDefaultPrevented=Z,a&&a.preventDefault&&a.preventDefault()},stopPropagation:function(){var a=this.originalEvent;this.isPropagationStopped=Z,a&&a.stopPropagation&&a.stopPropagation()},stopImmediatePropagation:function(){var a=this.originalEvent;this.isImmediatePropagationStopped=Z,a&&a.stopImmediatePropagation&&a.stopImmediatePropagation(),this.stopPropagation()}},n.each({mouseenter:"mouseover",mouseleave:"mouseout",pointerenter:"pointerover",pointerleave:"pointerout"},function(a,b){n.event.special[a]={delegateType:b,bindType:b,handle:function(a){var c,d=this,e=a.relatedTarget,f=a.handleObj;return(!e||e!==d&&!n.contains(d,e))&&(a.type=f.origType,c=f.handler.apply(this,arguments),a.type=b),c}}}),k.focusinBubbles||n.each({focus:"focusin",blur:"focusout"},function(a,b){var c=function(a){n.event.simulate(b,a.target,n.event.fix(a),!0)};n.event.special[b]={setup:function(){var d=this.ownerDocument||this,e=L.access(d,b);e||d.addEventListener(a,c,!0),L.access(d,b,(e||0)+1)},teardown:function(){var d=this.ownerDocument||this,e=L.access(d,b)-1;e?L.access(d,b,e):(d.removeEventListener(a,c,!0),L.remove(d,b))}}}),n.fn.extend({on:function(a,b,c,d,e){var f,g;if("object"==typeof a){"string"!=typeof b&&(c=c||b,b=void 0);for(g in a)this.on(g,b,c,a[g],e);return this}if(null==c&&null==d?(d=b,c=b=void 0):null==d&&("string"==typeof b?(d=c,c=void 0):(d=c,c=b,b=void 0)),d===!1)d=$;else if(!d)return this;return 1===e&&(f=d,d=function(a){return n().off(a),f.apply(this,arguments)},d.guid=f.guid||(f.guid=n.guid++)),this.each(function(){n.event.add(this,a,d,c,b)})},one:function(a,b,c,d){return this.on(a,b,c,d,1)},off:function(a,b,c){var d,e;if(a&&a.preventDefault&&a.handleObj)return d=a.handleObj,n(a.delegateTarget).off(d.namespace?d.origType+"."+d.namespace:d.origType,d.selector,d.handler),this;if("object"==typeof a){for(e in a)this.off(e,b,a[e]);return this}return(b===!1||"function"==typeof b)&&(c=b,b=void 0),c===!1&&(c=$),this.each(function(){n.event.remove(this,a,c,b)})},trigger:function(a,b){return this.each(function(){n.event.trigger(a,b,this)})},triggerHandler:function(a,b){var c=this[0];return c?n.event.trigger(a,b,c,!0):void 0}});var ab=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/gi,bb=/<([\w:]+)/,cb=/<|&#?\w+;/,db=/<(?:script|style|link)/i,eb=/checked\s*(?:[^=]|=\s*.checked.)/i,fb=/^$|\/(?:java|ecma)script/i,gb=/^true\/(.*)/,hb=/^\s*<!(?:\[CDATA\[|--)|(?:\]\]|--)>\s*$/g,ib={option:[1,"<select multiple='multiple'>","</select>"],thead:[1,"<table>","</table>"],col:[2,"<table><colgroup>","</colgroup></table>"],tr:[2,"<table><tbody>","</tbody></table>"],td:[3,"<table><tbody><tr>","</tr></tbody></table>"],_default:[0,"",""]};ib.optgroup=ib.option,ib.tbody=ib.tfoot=ib.colgroup=ib.caption=ib.thead,ib.th=ib.td;function jb(a,b){return n.nodeName(a,"table")&&n.nodeName(11!==b.nodeType?b:b.firstChild,"tr")?a.getElementsByTagName("tbody")[0]||a.appendChild(a.ownerDocument.createElement("tbody")):a}function kb(a){return a.type=(null!==a.getAttribute("type"))+"/"+a.type,a}function lb(a){var b=gb.exec(a.type);return b?a.type=b[1]:a.removeAttribute("type"),a}function mb(a,b){for(var c=0,d=a.length;d>c;c++)L.set(a[c],"globalEval",!b||L.get(b[c],"globalEval"))}function nb(a,b){var c,d,e,f,g,h,i,j;if(1===b.nodeType){if(L.hasData(a)&&(f=L.access(a),g=L.set(b,f),j=f.events)){delete g.handle,g.events={};for(e in j)for(c=0,d=j[e].length;d>c;c++)n.event.add(b,e,j[e][c])}M.hasData(a)&&(h=M.access(a),i=n.extend({},h),M.set(b,i))}}function ob(a,b){var c=a.getElementsByTagName?a.getElementsByTagName(b||"*"):a.querySelectorAll?a.querySelectorAll(b||"*"):[];return void 0===b||b&&n.nodeName(a,b)?n.merge([a],c):c}function pb(a,b){var c=b.nodeName.toLowerCase();"input"===c&&T.test(a.type)?b.checked=a.checked:("input"===c||"textarea"===c)&&(b.defaultValue=a.defaultValue)}n.extend({clone:function(a,b,c){var d,e,f,g,h=a.cloneNode(!0),i=n.contains(a.ownerDocument,a);if(!(k.noCloneChecked||1!==a.nodeType&&11!==a.nodeType||n.isXMLDoc(a)))for(g=ob(h),f=ob(a),d=0,e=f.length;e>d;d++)pb(f[d],g[d]);if(b)if(c)for(f=f||ob(a),g=g||ob(h),d=0,e=f.length;e>d;d++)nb(f[d],g[d]);else nb(a,h);return g=ob(h,"script"),g.length>0&&mb(g,!i&&ob(a,"script")),h},buildFragment:function(a,b,c,d){for(var e,f,g,h,i,j,k=b.createDocumentFragment(),l=[],m=0,o=a.length;o>m;m++)if(e=a[m],e||0===e)if("object"===n.type(e))n.merge(l,e.nodeType?[e]:e);else if(cb.test(e)){f=f||k.appendChild(b.createElement("div")),g=(bb.exec(e)||["",""])[1].toLowerCase(),h=ib[g]||ib._default,f.innerHTML=h[1]+e.replace(ab,"<$1></$2>")+h[2],j=h[0];while(j--)f=f.lastChild;n.merge(l,f.childNodes),f=k.firstChild,f.textContent=""}else l.push(b.createTextNode(e));k.textContent="",m=0;while(e=l[m++])if((!d||-1===n.inArray(e,d))&&(i=n.contains(e.ownerDocument,e),f=ob(k.appendChild(e),"script"),i&&mb(f),c)){j=0;while(e=f[j++])fb.test(e.type||"")&&c.push(e)}return k},cleanData:function(a){for(var b,c,d,e,f=n.event.special,g=0;void 0!==(c=a[g]);g++){if(n.acceptData(c)&&(e=c[L.expando],e&&(b=L.cache[e]))){if(b.events)for(d in b.events)f[d]?n.event.remove(c,d):n.removeEvent(c,d,b.handle);L.cache[e]&&delete L.cache[e]}delete M.cache[c[M.expando]]}}}),n.fn.extend({text:function(a){return J(this,function(a){return void 0===a?n.text(this):this.empty().each(function(){(1===this.nodeType||11===this.nodeType||9===this.nodeType)&&(this.textContent=a)})},null,a,arguments.length)},append:function(){return this.domManip(arguments,function(a){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var b=jb(this,a);b.appendChild(a)}})},prepend:function(){return this.domManip(arguments,function(a){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var b=jb(this,a);b.insertBefore(a,b.firstChild)}})},before:function(){return this.domManip(arguments,function(a){this.parentNode&&this.parentNode.insertBefore(a,this)})},after:function(){return this.domManip(arguments,function(a){this.parentNode&&this.parentNode.insertBefore(a,this.nextSibling)})},remove:function(a,b){for(var c,d=a?n.filter(a,this):this,e=0;null!=(c=d[e]);e++)b||1!==c.nodeType||n.cleanData(ob(c)),c.parentNode&&(b&&n.contains(c.ownerDocument,c)&&mb(ob(c,"script")),c.parentNode.removeChild(c));return this},empty:function(){for(var a,b=0;null!=(a=this[b]);b++)1===a.nodeType&&(n.cleanData(ob(a,!1)),a.textContent="");return this},clone:function(a,b){return a=null==a?!1:a,b=null==b?a:b,this.map(function(){return n.clone(this,a,b)})},html:function(a){return J(this,function(a){var b=this[0]||{},c=0,d=this.length;if(void 0===a&&1===b.nodeType)return b.innerHTML;if("string"==typeof a&&!db.test(a)&&!ib[(bb.exec(a)||["",""])[1].toLowerCase()]){a=a.replace(ab,"<$1></$2>");try{for(;d>c;c++)b=this[c]||{},1===b.nodeType&&(n.cleanData(ob(b,!1)),b.innerHTML=a);b=0}catch(e){}}b&&this.empty().append(a)},null,a,arguments.length)},replaceWith:function(){var a=arguments[0];return this.domManip(arguments,function(b){a=this.parentNode,n.cleanData(ob(this)),a&&a.replaceChild(b,this)}),a&&(a.length||a.nodeType)?this:this.remove()},detach:function(a){return this.remove(a,!0)},domManip:function(a,b){a=e.apply([],a);var c,d,f,g,h,i,j=0,l=this.length,m=this,o=l-1,p=a[0],q=n.isFunction(p);if(q||l>1&&"string"==typeof p&&!k.checkClone&&eb.test(p))return this.each(function(c){var d=m.eq(c);q&&(a[0]=p.call(this,c,d.html())),d.domManip(a,b)});if(l&&(c=n.buildFragment(a,this[0].ownerDocument,!1,this),d=c.firstChild,1===c.childNodes.length&&(c=d),d)){for(f=n.map(ob(c,"script"),kb),g=f.length;l>j;j++)h=c,j!==o&&(h=n.clone(h,!0,!0),g&&n.merge(f,ob(h,"script"))),b.call(this[j],h,j);if(g)for(i=f[f.length-1].ownerDocument,n.map(f,lb),j=0;g>j;j++)h=f[j],fb.test(h.type||"")&&!L.access(h,"globalEval")&&n.contains(i,h)&&(h.src?n._evalUrl&&n._evalUrl(h.src):n.globalEval(h.textContent.replace(hb,"")))}return this}}),n.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(a,b){n.fn[a]=function(a){for(var c,d=[],e=n(a),g=e.length-1,h=0;g>=h;h++)c=h===g?this:this.clone(!0),n(e[h])[b](c),f.apply(d,c.get());return this.pushStack(d)}});var qb,rb={};function sb(b,c){var d,e=n(c.createElement(b)).appendTo(c.body),f=a.getDefaultComputedStyle&&(d=a.getDefaultComputedStyle(e[0]))?d.display:n.css(e[0],"display");return e.detach(),f}function tb(a){var b=l,c=rb[a];return c||(c=sb(a,b),"none"!==c&&c||(qb=(qb||n("<iframe frameborder='0' width='0' height='0'/>")).appendTo(b.documentElement),b=qb[0].contentDocument,b.write(),b.close(),c=sb(a,b),qb.detach()),rb[a]=c),c}var ub=/^margin/,vb=new RegExp("^("+Q+")(?!px)[a-z%]+$","i"),wb=function(b){return b.ownerDocument.defaultView.opener?b.ownerDocument.defaultView.getComputedStyle(b,null):a.getComputedStyle(b,null)};function xb(a,b,c){var d,e,f,g,h=a.style;return c=c||wb(a),c&&(g=c.getPropertyValue(b)||c[b]),c&&(""!==g||n.contains(a.ownerDocument,a)||(g=n.style(a,b)),vb.test(g)&&ub.test(b)&&(d=h.width,e=h.minWidth,f=h.maxWidth,h.minWidth=h.maxWidth=h.width=g,g=c.width,h.width=d,h.minWidth=e,h.maxWidth=f)),void 0!==g?g+"":g}function yb(a,b){return{get:function(){return a()?void delete this.get:(this.get=b).apply(this,arguments)}}}!function(){var b,c,d=l.documentElement,e=l.createElement("div"),f=l.createElement("div");if(f.style){f.style.backgroundClip="content-box",f.cloneNode(!0).style.backgroundClip="",k.clearCloneStyle="content-box"===f.style.backgroundClip,e.style.cssText="border:0;width:0;height:0;top:0;left:-9999px;margin-top:1px;position:absolute",e.appendChild(f);function g(){f.style.cssText="-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;display:block;margin-top:1%;top:1%;border:1px;padding:1px;width:4px;position:absolute",f.innerHTML="",d.appendChild(e);var g=a.getComputedStyle(f,null);b="1%"!==g.top,c="4px"===g.width,d.removeChild(e)}a.getComputedStyle&&n.extend(k,{pixelPosition:function(){return g(),b},boxSizingReliable:function(){return null==c&&g(),c},reliableMarginRight:function(){var b,c=f.appendChild(l.createElement("div"));return c.style.cssText=f.style.cssText="-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;display:block;margin:0;border:0;padding:0",c.style.marginRight=c.style.width="0",f.style.width="1px",d.appendChild(e),b=!parseFloat(a.getComputedStyle(c,null).marginRight),d.removeChild(e),f.removeChild(c),b}})}}(),n.swap=function(a,b,c,d){var e,f,g={};for(f in b)g[f]=a.style[f],a.style[f]=b[f];e=c.apply(a,d||[]);for(f in b)a.style[f]=g[f];return e};var zb=/^(none|table(?!-c[ea]).+)/,Ab=new RegExp("^("+Q+")(.*)$","i"),Bb=new RegExp("^([+-])=("+Q+")","i"),Cb={position:"absolute",visibility:"hidden",display:"block"},Db={letterSpacing:"0",fontWeight:"400"},Eb=["Webkit","O","Moz","ms"];function Fb(a,b){if(b in a)return b;var c=b[0].toUpperCase()+b.slice(1),d=b,e=Eb.length;while(e--)if(b=Eb[e]+c,b in a)return b;return d}function Gb(a,b,c){var d=Ab.exec(b);return d?Math.max(0,d[1]-(c||0))+(d[2]||"px"):b}function Hb(a,b,c,d,e){for(var f=c===(d?"border":"content")?4:"width"===b?1:0,g=0;4>f;f+=2)"margin"===c&&(g+=n.css(a,c+R[f],!0,e)),d?("content"===c&&(g-=n.css(a,"padding"+R[f],!0,e)),"margin"!==c&&(g-=n.css(a,"border"+R[f]+"Width",!0,e))):(g+=n.css(a,"padding"+R[f],!0,e),"padding"!==c&&(g+=n.css(a,"border"+R[f]+"Width",!0,e)));return g}function Ib(a,b,c){var d=!0,e="width"===b?a.offsetWidth:a.offsetHeight,f=wb(a),g="border-box"===n.css(a,"boxSizing",!1,f);if(0>=e||null==e){if(e=xb(a,b,f),(0>e||null==e)&&(e=a.style[b]),vb.test(e))return e;d=g&&(k.boxSizingReliable()||e===a.style[b]),e=parseFloat(e)||0}return e+Hb(a,b,c||(g?"border":"content"),d,f)+"px"}function Jb(a,b){for(var c,d,e,f=[],g=0,h=a.length;h>g;g++)d=a[g],d.style&&(f[g]=L.get(d,"olddisplay"),c=d.style.display,b?(f[g]||"none"!==c||(d.style.display=""),""===d.style.display&&S(d)&&(f[g]=L.access(d,"olddisplay",tb(d.nodeName)))):(e=S(d),"none"===c&&e||L.set(d,"olddisplay",e?c:n.css(d,"display"))));for(g=0;h>g;g++)d=a[g],d.style&&(b&&"none"!==d.style.display&&""!==d.style.display||(d.style.display=b?f[g]||"":"none"));return a}n.extend({cssHooks:{opacity:{get:function(a,b){if(b){var c=xb(a,"opacity");return""===c?"1":c}}}},cssNumber:{columnCount:!0,fillOpacity:!0,flexGrow:!0,flexShrink:!0,fontWeight:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,widows:!0,zIndex:!0,zoom:!0},cssProps:{"float":"cssFloat"},style:function(a,b,c,d){if(a&&3!==a.nodeType&&8!==a.nodeType&&a.style){var e,f,g,h=n.camelCase(b),i=a.style;return b=n.cssProps[h]||(n.cssProps[h]=Fb(i,h)),g=n.cssHooks[b]||n.cssHooks[h],void 0===c?g&&"get"in g&&void 0!==(e=g.get(a,!1,d))?e:i[b]:(f=typeof c,"string"===f&&(e=Bb.exec(c))&&(c=(e[1]+1)*e[2]+parseFloat(n.css(a,b)),f="number"),null!=c&&c===c&&("number"!==f||n.cssNumber[h]||(c+="px"),k.clearCloneStyle||""!==c||0!==b.indexOf("background")||(i[b]="inherit"),g&&"set"in g&&void 0===(c=g.set(a,c,d))||(i[b]=c)),void 0)}},css:function(a,b,c,d){var e,f,g,h=n.camelCase(b);return b=n.cssProps[h]||(n.cssProps[h]=Fb(a.style,h)),g=n.cssHooks[b]||n.cssHooks[h],g&&"get"in g&&(e=g.get(a,!0,c)),void 0===e&&(e=xb(a,b,d)),"normal"===e&&b in Db&&(e=Db[b]),""===c||c?(f=parseFloat(e),c===!0||n.isNumeric(f)?f||0:e):e}}),n.each(["height","width"],function(a,b){n.cssHooks[b]={get:function(a,c,d){return c?zb.test(n.css(a,"display"))&&0===a.offsetWidth?n.swap(a,Cb,function(){return Ib(a,b,d)}):Ib(a,b,d):void 0},set:function(a,c,d){var e=d&&wb(a);return Gb(a,c,d?Hb(a,b,d,"border-box"===n.css(a,"boxSizing",!1,e),e):0)}}}),n.cssHooks.marginRight=yb(k.reliableMarginRight,function(a,b){return b?n.swap(a,{display:"inline-block"},xb,[a,"marginRight"]):void 0}),n.each({margin:"",padding:"",border:"Width"},function(a,b){n.cssHooks[a+b]={expand:function(c){for(var d=0,e={},f="string"==typeof c?c.split(" "):[c];4>d;d++)e[a+R[d]+b]=f[d]||f[d-2]||f[0];return e}},ub.test(a)||(n.cssHooks[a+b].set=Gb)}),n.fn.extend({css:function(a,b){return J(this,function(a,b,c){var d,e,f={},g=0;if(n.isArray(b)){for(d=wb(a),e=b.length;e>g;g++)f[b[g]]=n.css(a,b[g],!1,d);return f}return void 0!==c?n.style(a,b,c):n.css(a,b)},a,b,arguments.length>1)},show:function(){return Jb(this,!0)},hide:function(){return Jb(this)},toggle:function(a){return"boolean"==typeof a?a?this.show():this.hide():this.each(function(){S(this)?n(this).show():n(this).hide()})}});function Kb(a,b,c,d,e){return new Kb.prototype.init(a,b,c,d,e)}n.Tween=Kb,Kb.prototype={constructor:Kb,init:function(a,b,c,d,e,f){this.elem=a,this.prop=c,this.easing=e||"swing",this.options=b,this.start=this.now=this.cur(),this.end=d,this.unit=f||(n.cssNumber[c]?"":"px")},cur:function(){var a=Kb.propHooks[this.prop];return a&&a.get?a.get(this):Kb.propHooks._default.get(this)},run:function(a){var b,c=Kb.propHooks[this.prop];return this.pos=b=this.options.duration?n.easing[this.easing](a,this.options.duration*a,0,1,this.options.duration):a,this.now=(this.end-this.start)*b+this.start,this.options.step&&this.options.step.call(this.elem,this.now,this),c&&c.set?c.set(this):Kb.propHooks._default.set(this),this}},Kb.prototype.init.prototype=Kb.prototype,Kb.propHooks={_default:{get:function(a){var b;return null==a.elem[a.prop]||a.elem.style&&null!=a.elem.style[a.prop]?(b=n.css(a.elem,a.prop,""),b&&"auto"!==b?b:0):a.elem[a.prop]},set:function(a){n.fx.step[a.prop]?n.fx.step[a.prop](a):a.elem.style&&(null!=a.elem.style[n.cssProps[a.prop]]||n.cssHooks[a.prop])?n.style(a.elem,a.prop,a.now+a.unit):a.elem[a.prop]=a.now}}},Kb.propHooks.scrollTop=Kb.propHooks.scrollLeft={set:function(a){a.elem.nodeType&&a.elem.parentNode&&(a.elem[a.prop]=a.now)}},n.easing={linear:function(a){return a},swing:function(a){return.5-Math.cos(a*Math.PI)/2}},n.fx=Kb.prototype.init,n.fx.step={};var Lb,Mb,Nb=/^(?:toggle|show|hide)$/,Ob=new RegExp("^(?:([+-])=|)("+Q+")([a-z%]*)$","i"),Pb=/queueHooks$/,Qb=[Vb],Rb={"*":[function(a,b){var c=this.createTween(a,b),d=c.cur(),e=Ob.exec(b),f=e&&e[3]||(n.cssNumber[a]?"":"px"),g=(n.cssNumber[a]||"px"!==f&&+d)&&Ob.exec(n.css(c.elem,a)),h=1,i=20;if(g&&g[3]!==f){f=f||g[3],e=e||[],g=+d||1;do h=h||".5",g/=h,n.style(c.elem,a,g+f);while(h!==(h=c.cur()/d)&&1!==h&&--i)}return e&&(g=c.start=+g||+d||0,c.unit=f,c.end=e[1]?g+(e[1]+1)*e[2]:+e[2]),c}]};function Sb(){return setTimeout(function(){Lb=void 0}),Lb=n.now()}function Tb(a,b){var c,d=0,e={height:a};for(b=b?1:0;4>d;d+=2-b)c=R[d],e["margin"+c]=e["padding"+c]=a;return b&&(e.opacity=e.width=a),e}function Ub(a,b,c){for(var d,e=(Rb[b]||[]).concat(Rb["*"]),f=0,g=e.length;g>f;f++)if(d=e[f].call(c,b,a))return d}function Vb(a,b,c){var d,e,f,g,h,i,j,k,l=this,m={},o=a.style,p=a.nodeType&&S(a),q=L.get(a,"fxshow");c.queue||(h=n._queueHooks(a,"fx"),null==h.unqueued&&(h.unqueued=0,i=h.empty.fire,h.empty.fire=function(){h.unqueued||i()}),h.unqueued++,l.always(function(){l.always(function(){h.unqueued--,n.queue(a,"fx").length||h.empty.fire()})})),1===a.nodeType&&("height"in b||"width"in b)&&(c.overflow=[o.overflow,o.overflowX,o.overflowY],j=n.css(a,"display"),k="none"===j?L.get(a,"olddisplay")||tb(a.nodeName):j,"inline"===k&&"none"===n.css(a,"float")&&(o.display="inline-block")),c.overflow&&(o.overflow="hidden",l.always(function(){o.overflow=c.overflow[0],o.overflowX=c.overflow[1],o.overflowY=c.overflow[2]}));for(d in b)if(e=b[d],Nb.exec(e)){if(delete b[d],f=f||"toggle"===e,e===(p?"hide":"show")){if("show"!==e||!q||void 0===q[d])continue;p=!0}m[d]=q&&q[d]||n.style(a,d)}else j=void 0;if(n.isEmptyObject(m))"inline"===("none"===j?tb(a.nodeName):j)&&(o.display=j);else{q?"hidden"in q&&(p=q.hidden):q=L.access(a,"fxshow",{}),f&&(q.hidden=!p),p?n(a).show():l.done(function(){n(a).hide()}),l.done(function(){var b;L.remove(a,"fxshow");for(b in m)n.style(a,b,m[b])});for(d in m)g=Ub(p?q[d]:0,d,l),d in q||(q[d]=g.start,p&&(g.end=g.start,g.start="width"===d||"height"===d?1:0))}}function Wb(a,b){var c,d,e,f,g;for(c in a)if(d=n.camelCase(c),e=b[d],f=a[c],n.isArray(f)&&(e=f[1],f=a[c]=f[0]),c!==d&&(a[d]=f,delete a[c]),g=n.cssHooks[d],g&&"expand"in g){f=g.expand(f),delete a[d];for(c in f)c in a||(a[c]=f[c],b[c]=e)}else b[d]=e}function Xb(a,b,c){var d,e,f=0,g=Qb.length,h=n.Deferred().always(function(){delete i.elem}),i=function(){if(e)return!1;for(var b=Lb||Sb(),c=Math.max(0,j.startTime+j.duration-b),d=c/j.duration||0,f=1-d,g=0,i=j.tweens.length;i>g;g++)j.tweens[g].run(f);return h.notifyWith(a,[j,f,c]),1>f&&i?c:(h.resolveWith(a,[j]),!1)},j=h.promise({elem:a,props:n.extend({},b),opts:n.extend(!0,{specialEasing:{}},c),originalProperties:b,originalOptions:c,startTime:Lb||Sb(),duration:c.duration,tweens:[],createTween:function(b,c){var d=n.Tween(a,j.opts,b,c,j.opts.specialEasing[b]||j.opts.easing);return j.tweens.push(d),d},stop:function(b){var c=0,d=b?j.tweens.length:0;if(e)return this;for(e=!0;d>c;c++)j.tweens[c].run(1);return b?h.resolveWith(a,[j,b]):h.rejectWith(a,[j,b]),this}}),k=j.props;for(Wb(k,j.opts.specialEasing);g>f;f++)if(d=Qb[f].call(j,a,k,j.opts))return d;return n.map(k,Ub,j),n.isFunction(j.opts.start)&&j.opts.start.call(a,j),n.fx.timer(n.extend(i,{elem:a,anim:j,queue:j.opts.queue})),j.progress(j.opts.progress).done(j.opts.done,j.opts.complete).fail(j.opts.fail).always(j.opts.always)}n.Animation=n.extend(Xb,{tweener:function(a,b){n.isFunction(a)?(b=a,a=["*"]):a=a.split(" ");for(var c,d=0,e=a.length;e>d;d++)c=a[d],Rb[c]=Rb[c]||[],Rb[c].unshift(b)},prefilter:function(a,b){b?Qb.unshift(a):Qb.push(a)}}),n.speed=function(a,b,c){var d=a&&"object"==typeof a?n.extend({},a):{complete:c||!c&&b||n.isFunction(a)&&a,duration:a,easing:c&&b||b&&!n.isFunction(b)&&b};return d.duration=n.fx.off?0:"number"==typeof d.duration?d.duration:d.duration in n.fx.speeds?n.fx.speeds[d.duration]:n.fx.speeds._default,(null==d.queue||d.queue===!0)&&(d.queue="fx"),d.old=d.complete,d.complete=function(){n.isFunction(d.old)&&d.old.call(this),d.queue&&n.dequeue(this,d.queue)},d},n.fn.extend({fadeTo:function(a,b,c,d){return this.filter(S).css("opacity",0).show().end().animate({opacity:b},a,c,d)},animate:function(a,b,c,d){var e=n.isEmptyObject(a),f=n.speed(b,c,d),g=function(){var b=Xb(this,n.extend({},a),f);(e||L.get(this,"finish"))&&b.stop(!0)};return g.finish=g,e||f.queue===!1?this.each(g):this.queue(f.queue,g)},stop:function(a,b,c){var d=function(a){var b=a.stop;delete a.stop,b(c)};return"string"!=typeof a&&(c=b,b=a,a=void 0),b&&a!==!1&&this.queue(a||"fx",[]),this.each(function(){var b=!0,e=null!=a&&a+"queueHooks",f=n.timers,g=L.get(this);if(e)g[e]&&g[e].stop&&d(g[e]);else for(e in g)g[e]&&g[e].stop&&Pb.test(e)&&d(g[e]);for(e=f.length;e--;)f[e].elem!==this||null!=a&&f[e].queue!==a||(f[e].anim.stop(c),b=!1,f.splice(e,1));(b||!c)&&n.dequeue(this,a)})},finish:function(a){return a!==!1&&(a=a||"fx"),this.each(function(){var b,c=L.get(this),d=c[a+"queue"],e=c[a+"queueHooks"],f=n.timers,g=d?d.length:0;for(c.finish=!0,n.queue(this,a,[]),e&&e.stop&&e.stop.call(this,!0),b=f.length;b--;)f[b].elem===this&&f[b].queue===a&&(f[b].anim.stop(!0),f.splice(b,1));for(b=0;g>b;b++)d[b]&&d[b].finish&&d[b].finish.call(this);delete c.finish})}}),n.each(["toggle","show","hide"],function(a,b){var c=n.fn[b];n.fn[b]=function(a,d,e){return null==a||"boolean"==typeof a?c.apply(this,arguments):this.animate(Tb(b,!0),a,d,e)}}),n.each({slideDown:Tb("show"),slideUp:Tb("hide"),slideToggle:Tb("toggle"),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"},fadeToggle:{opacity:"toggle"}},function(a,b){n.fn[a]=function(a,c,d){return this.animate(b,a,c,d)}}),n.timers=[],n.fx.tick=function(){var a,b=0,c=n.timers;for(Lb=n.now();b<c.length;b++)a=c[b],a()||c[b]!==a||c.splice(b--,1);c.length||n.fx.stop(),Lb=void 0},n.fx.timer=function(a){n.timers.push(a),a()?n.fx.start():n.timers.pop()},n.fx.interval=13,n.fx.start=function(){Mb||(Mb=setInterval(n.fx.tick,n.fx.interval))},n.fx.stop=function(){clearInterval(Mb),Mb=null},n.fx.speeds={slow:600,fast:200,_default:400},n.fn.delay=function(a,b){return a=n.fx?n.fx.speeds[a]||a:a,b=b||"fx",this.queue(b,function(b,c){var d=setTimeout(b,a);c.stop=function(){clearTimeout(d)}})},function(){var a=l.createElement("input"),b=l.createElement("select"),c=b.appendChild(l.createElement("option"));a.type="checkbox",k.checkOn=""!==a.value,k.optSelected=c.selected,b.disabled=!0,k.optDisabled=!c.disabled,a=l.createElement("input"),a.value="t",a.type="radio",k.radioValue="t"===a.value}();var Yb,Zb,$b=n.expr.attrHandle;n.fn.extend({attr:function(a,b){return J(this,n.attr,a,b,arguments.length>1)},removeAttr:function(a){return this.each(function(){n.removeAttr(this,a)})}}),n.extend({attr:function(a,b,c){var d,e,f=a.nodeType;if(a&&3!==f&&8!==f&&2!==f)return typeof a.getAttribute===U?n.prop(a,b,c):(1===f&&n.isXMLDoc(a)||(b=b.toLowerCase(),d=n.attrHooks[b]||(n.expr.match.bool.test(b)?Zb:Yb)),void 0===c?d&&"get"in d&&null!==(e=d.get(a,b))?e:(e=n.find.attr(a,b),null==e?void 0:e):null!==c?d&&"set"in d&&void 0!==(e=d.set(a,c,b))?e:(a.setAttribute(b,c+""),c):void n.removeAttr(a,b)) -},removeAttr:function(a,b){var c,d,e=0,f=b&&b.match(E);if(f&&1===a.nodeType)while(c=f[e++])d=n.propFix[c]||c,n.expr.match.bool.test(c)&&(a[d]=!1),a.removeAttribute(c)},attrHooks:{type:{set:function(a,b){if(!k.radioValue&&"radio"===b&&n.nodeName(a,"input")){var c=a.value;return a.setAttribute("type",b),c&&(a.value=c),b}}}}}),Zb={set:function(a,b,c){return b===!1?n.removeAttr(a,c):a.setAttribute(c,c),c}},n.each(n.expr.match.bool.source.match(/\w+/g),function(a,b){var c=$b[b]||n.find.attr;$b[b]=function(a,b,d){var e,f;return d||(f=$b[b],$b[b]=e,e=null!=c(a,b,d)?b.toLowerCase():null,$b[b]=f),e}});var _b=/^(?:input|select|textarea|button)$/i;n.fn.extend({prop:function(a,b){return J(this,n.prop,a,b,arguments.length>1)},removeProp:function(a){return this.each(function(){delete this[n.propFix[a]||a]})}}),n.extend({propFix:{"for":"htmlFor","class":"className"},prop:function(a,b,c){var d,e,f,g=a.nodeType;if(a&&3!==g&&8!==g&&2!==g)return f=1!==g||!n.isXMLDoc(a),f&&(b=n.propFix[b]||b,e=n.propHooks[b]),void 0!==c?e&&"set"in e&&void 0!==(d=e.set(a,c,b))?d:a[b]=c:e&&"get"in e&&null!==(d=e.get(a,b))?d:a[b]},propHooks:{tabIndex:{get:function(a){return a.hasAttribute("tabindex")||_b.test(a.nodeName)||a.href?a.tabIndex:-1}}}}),k.optSelected||(n.propHooks.selected={get:function(a){var b=a.parentNode;return b&&b.parentNode&&b.parentNode.selectedIndex,null}}),n.each(["tabIndex","readOnly","maxLength","cellSpacing","cellPadding","rowSpan","colSpan","useMap","frameBorder","contentEditable"],function(){n.propFix[this.toLowerCase()]=this});var ac=/[\t\r\n\f]/g;n.fn.extend({addClass:function(a){var b,c,d,e,f,g,h="string"==typeof a&&a,i=0,j=this.length;if(n.isFunction(a))return this.each(function(b){n(this).addClass(a.call(this,b,this.className))});if(h)for(b=(a||"").match(E)||[];j>i;i++)if(c=this[i],d=1===c.nodeType&&(c.className?(" "+c.className+" ").replace(ac," "):" ")){f=0;while(e=b[f++])d.indexOf(" "+e+" ")<0&&(d+=e+" ");g=n.trim(d),c.className!==g&&(c.className=g)}return this},removeClass:function(a){var b,c,d,e,f,g,h=0===arguments.length||"string"==typeof a&&a,i=0,j=this.length;if(n.isFunction(a))return this.each(function(b){n(this).removeClass(a.call(this,b,this.className))});if(h)for(b=(a||"").match(E)||[];j>i;i++)if(c=this[i],d=1===c.nodeType&&(c.className?(" "+c.className+" ").replace(ac," "):"")){f=0;while(e=b[f++])while(d.indexOf(" "+e+" ")>=0)d=d.replace(" "+e+" "," ");g=a?n.trim(d):"",c.className!==g&&(c.className=g)}return this},toggleClass:function(a,b){var c=typeof a;return"boolean"==typeof b&&"string"===c?b?this.addClass(a):this.removeClass(a):this.each(n.isFunction(a)?function(c){n(this).toggleClass(a.call(this,c,this.className,b),b)}:function(){if("string"===c){var b,d=0,e=n(this),f=a.match(E)||[];while(b=f[d++])e.hasClass(b)?e.removeClass(b):e.addClass(b)}else(c===U||"boolean"===c)&&(this.className&&L.set(this,"__className__",this.className),this.className=this.className||a===!1?"":L.get(this,"__className__")||"")})},hasClass:function(a){for(var b=" "+a+" ",c=0,d=this.length;d>c;c++)if(1===this[c].nodeType&&(" "+this[c].className+" ").replace(ac," ").indexOf(b)>=0)return!0;return!1}});var bc=/\r/g;n.fn.extend({val:function(a){var b,c,d,e=this[0];{if(arguments.length)return d=n.isFunction(a),this.each(function(c){var e;1===this.nodeType&&(e=d?a.call(this,c,n(this).val()):a,null==e?e="":"number"==typeof e?e+="":n.isArray(e)&&(e=n.map(e,function(a){return null==a?"":a+""})),b=n.valHooks[this.type]||n.valHooks[this.nodeName.toLowerCase()],b&&"set"in b&&void 0!==b.set(this,e,"value")||(this.value=e))});if(e)return b=n.valHooks[e.type]||n.valHooks[e.nodeName.toLowerCase()],b&&"get"in b&&void 0!==(c=b.get(e,"value"))?c:(c=e.value,"string"==typeof c?c.replace(bc,""):null==c?"":c)}}}),n.extend({valHooks:{option:{get:function(a){var b=n.find.attr(a,"value");return null!=b?b:n.trim(n.text(a))}},select:{get:function(a){for(var b,c,d=a.options,e=a.selectedIndex,f="select-one"===a.type||0>e,g=f?null:[],h=f?e+1:d.length,i=0>e?h:f?e:0;h>i;i++)if(c=d[i],!(!c.selected&&i!==e||(k.optDisabled?c.disabled:null!==c.getAttribute("disabled"))||c.parentNode.disabled&&n.nodeName(c.parentNode,"optgroup"))){if(b=n(c).val(),f)return b;g.push(b)}return g},set:function(a,b){var c,d,e=a.options,f=n.makeArray(b),g=e.length;while(g--)d=e[g],(d.selected=n.inArray(d.value,f)>=0)&&(c=!0);return c||(a.selectedIndex=-1),f}}}}),n.each(["radio","checkbox"],function(){n.valHooks[this]={set:function(a,b){return n.isArray(b)?a.checked=n.inArray(n(a).val(),b)>=0:void 0}},k.checkOn||(n.valHooks[this].get=function(a){return null===a.getAttribute("value")?"on":a.value})}),n.each("blur focus focusin focusout load resize scroll unload click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup error contextmenu".split(" "),function(a,b){n.fn[b]=function(a,c){return arguments.length>0?this.on(b,null,a,c):this.trigger(b)}}),n.fn.extend({hover:function(a,b){return this.mouseenter(a).mouseleave(b||a)},bind:function(a,b,c){return this.on(a,null,b,c)},unbind:function(a,b){return this.off(a,null,b)},delegate:function(a,b,c,d){return this.on(b,a,c,d)},undelegate:function(a,b,c){return 1===arguments.length?this.off(a,"**"):this.off(b,a||"**",c)}});var cc=n.now(),dc=/\?/;n.parseJSON=function(a){return JSON.parse(a+"")},n.parseXML=function(a){var b,c;if(!a||"string"!=typeof a)return null;try{c=new DOMParser,b=c.parseFromString(a,"text/xml")}catch(d){b=void 0}return(!b||b.getElementsByTagName("parsererror").length)&&n.error("Invalid XML: "+a),b};var ec=/#.*$/,fc=/([?&])_=[^&]*/,gc=/^(.*?):[ \t]*([^\r\n]*)$/gm,hc=/^(?:about|app|app-storage|.+-extension|file|res|widget):$/,ic=/^(?:GET|HEAD)$/,jc=/^\/\//,kc=/^([\w.+-]+:)(?:\/\/(?:[^\/?#]*@|)([^\/?#:]*)(?::(\d+)|)|)/,lc={},mc={},nc="*/".concat("*"),oc=a.location.href,pc=kc.exec(oc.toLowerCase())||[];function qc(a){return function(b,c){"string"!=typeof b&&(c=b,b="*");var d,e=0,f=b.toLowerCase().match(E)||[];if(n.isFunction(c))while(d=f[e++])"+"===d[0]?(d=d.slice(1)||"*",(a[d]=a[d]||[]).unshift(c)):(a[d]=a[d]||[]).push(c)}}function rc(a,b,c,d){var e={},f=a===mc;function g(h){var i;return e[h]=!0,n.each(a[h]||[],function(a,h){var j=h(b,c,d);return"string"!=typeof j||f||e[j]?f?!(i=j):void 0:(b.dataTypes.unshift(j),g(j),!1)}),i}return g(b.dataTypes[0])||!e["*"]&&g("*")}function sc(a,b){var c,d,e=n.ajaxSettings.flatOptions||{};for(c in b)void 0!==b[c]&&((e[c]?a:d||(d={}))[c]=b[c]);return d&&n.extend(!0,a,d),a}function tc(a,b,c){var d,e,f,g,h=a.contents,i=a.dataTypes;while("*"===i[0])i.shift(),void 0===d&&(d=a.mimeType||b.getResponseHeader("Content-Type"));if(d)for(e in h)if(h[e]&&h[e].test(d)){i.unshift(e);break}if(i[0]in c)f=i[0];else{for(e in c){if(!i[0]||a.converters[e+" "+i[0]]){f=e;break}g||(g=e)}f=f||g}return f?(f!==i[0]&&i.unshift(f),c[f]):void 0}function uc(a,b,c,d){var e,f,g,h,i,j={},k=a.dataTypes.slice();if(k[1])for(g in a.converters)j[g.toLowerCase()]=a.converters[g];f=k.shift();while(f)if(a.responseFields[f]&&(c[a.responseFields[f]]=b),!i&&d&&a.dataFilter&&(b=a.dataFilter(b,a.dataType)),i=f,f=k.shift())if("*"===f)f=i;else if("*"!==i&&i!==f){if(g=j[i+" "+f]||j["* "+f],!g)for(e in j)if(h=e.split(" "),h[1]===f&&(g=j[i+" "+h[0]]||j["* "+h[0]])){g===!0?g=j[e]:j[e]!==!0&&(f=h[0],k.unshift(h[1]));break}if(g!==!0)if(g&&a["throws"])b=g(b);else try{b=g(b)}catch(l){return{state:"parsererror",error:g?l:"No conversion from "+i+" to "+f}}}return{state:"success",data:b}}n.extend({active:0,lastModified:{},etag:{},ajaxSettings:{url:oc,type:"GET",isLocal:hc.test(pc[1]),global:!0,processData:!0,async:!0,contentType:"application/x-www-form-urlencoded; charset=UTF-8",accepts:{"*":nc,text:"text/plain",html:"text/html",xml:"application/xml, text/xml",json:"application/json, text/javascript"},contents:{xml:/xml/,html:/html/,json:/json/},responseFields:{xml:"responseXML",text:"responseText",json:"responseJSON"},converters:{"* text":String,"text html":!0,"text json":n.parseJSON,"text xml":n.parseXML},flatOptions:{url:!0,context:!0}},ajaxSetup:function(a,b){return b?sc(sc(a,n.ajaxSettings),b):sc(n.ajaxSettings,a)},ajaxPrefilter:qc(lc),ajaxTransport:qc(mc),ajax:function(a,b){"object"==typeof a&&(b=a,a=void 0),b=b||{};var c,d,e,f,g,h,i,j,k=n.ajaxSetup({},b),l=k.context||k,m=k.context&&(l.nodeType||l.jquery)?n(l):n.event,o=n.Deferred(),p=n.Callbacks("once memory"),q=k.statusCode||{},r={},s={},t=0,u="canceled",v={readyState:0,getResponseHeader:function(a){var b;if(2===t){if(!f){f={};while(b=gc.exec(e))f[b[1].toLowerCase()]=b[2]}b=f[a.toLowerCase()]}return null==b?null:b},getAllResponseHeaders:function(){return 2===t?e:null},setRequestHeader:function(a,b){var c=a.toLowerCase();return t||(a=s[c]=s[c]||a,r[a]=b),this},overrideMimeType:function(a){return t||(k.mimeType=a),this},statusCode:function(a){var b;if(a)if(2>t)for(b in a)q[b]=[q[b],a[b]];else v.always(a[v.status]);return this},abort:function(a){var b=a||u;return c&&c.abort(b),x(0,b),this}};if(o.promise(v).complete=p.add,v.success=v.done,v.error=v.fail,k.url=((a||k.url||oc)+"").replace(ec,"").replace(jc,pc[1]+"//"),k.type=b.method||b.type||k.method||k.type,k.dataTypes=n.trim(k.dataType||"*").toLowerCase().match(E)||[""],null==k.crossDomain&&(h=kc.exec(k.url.toLowerCase()),k.crossDomain=!(!h||h[1]===pc[1]&&h[2]===pc[2]&&(h[3]||("http:"===h[1]?"80":"443"))===(pc[3]||("http:"===pc[1]?"80":"443")))),k.data&&k.processData&&"string"!=typeof k.data&&(k.data=n.param(k.data,k.traditional)),rc(lc,k,b,v),2===t)return v;i=n.event&&k.global,i&&0===n.active++&&n.event.trigger("ajaxStart"),k.type=k.type.toUpperCase(),k.hasContent=!ic.test(k.type),d=k.url,k.hasContent||(k.data&&(d=k.url+=(dc.test(d)?"&":"?")+k.data,delete k.data),k.cache===!1&&(k.url=fc.test(d)?d.replace(fc,"$1_="+cc++):d+(dc.test(d)?"&":"?")+"_="+cc++)),k.ifModified&&(n.lastModified[d]&&v.setRequestHeader("If-Modified-Since",n.lastModified[d]),n.etag[d]&&v.setRequestHeader("If-None-Match",n.etag[d])),(k.data&&k.hasContent&&k.contentType!==!1||b.contentType)&&v.setRequestHeader("Content-Type",k.contentType),v.setRequestHeader("Accept",k.dataTypes[0]&&k.accepts[k.dataTypes[0]]?k.accepts[k.dataTypes[0]]+("*"!==k.dataTypes[0]?", "+nc+"; q=0.01":""):k.accepts["*"]);for(j in k.headers)v.setRequestHeader(j,k.headers[j]);if(k.beforeSend&&(k.beforeSend.call(l,v,k)===!1||2===t))return v.abort();u="abort";for(j in{success:1,error:1,complete:1})v[j](k[j]);if(c=rc(mc,k,b,v)){v.readyState=1,i&&m.trigger("ajaxSend",[v,k]),k.async&&k.timeout>0&&(g=setTimeout(function(){v.abort("timeout")},k.timeout));try{t=1,c.send(r,x)}catch(w){if(!(2>t))throw w;x(-1,w)}}else x(-1,"No Transport");function x(a,b,f,h){var j,r,s,u,w,x=b;2!==t&&(t=2,g&&clearTimeout(g),c=void 0,e=h||"",v.readyState=a>0?4:0,j=a>=200&&300>a||304===a,f&&(u=tc(k,v,f)),u=uc(k,u,v,j),j?(k.ifModified&&(w=v.getResponseHeader("Last-Modified"),w&&(n.lastModified[d]=w),w=v.getResponseHeader("etag"),w&&(n.etag[d]=w)),204===a||"HEAD"===k.type?x="nocontent":304===a?x="notmodified":(x=u.state,r=u.data,s=u.error,j=!s)):(s=x,(a||!x)&&(x="error",0>a&&(a=0))),v.status=a,v.statusText=(b||x)+"",j?o.resolveWith(l,[r,x,v]):o.rejectWith(l,[v,x,s]),v.statusCode(q),q=void 0,i&&m.trigger(j?"ajaxSuccess":"ajaxError",[v,k,j?r:s]),p.fireWith(l,[v,x]),i&&(m.trigger("ajaxComplete",[v,k]),--n.active||n.event.trigger("ajaxStop")))}return v},getJSON:function(a,b,c){return n.get(a,b,c,"json")},getScript:function(a,b){return n.get(a,void 0,b,"script")}}),n.each(["get","post"],function(a,b){n[b]=function(a,c,d,e){return n.isFunction(c)&&(e=e||d,d=c,c=void 0),n.ajax({url:a,type:b,dataType:e,data:c,success:d})}}),n._evalUrl=function(a){return n.ajax({url:a,type:"GET",dataType:"script",async:!1,global:!1,"throws":!0})},n.fn.extend({wrapAll:function(a){var b;return n.isFunction(a)?this.each(function(b){n(this).wrapAll(a.call(this,b))}):(this[0]&&(b=n(a,this[0].ownerDocument).eq(0).clone(!0),this[0].parentNode&&b.insertBefore(this[0]),b.map(function(){var a=this;while(a.firstElementChild)a=a.firstElementChild;return a}).append(this)),this)},wrapInner:function(a){return this.each(n.isFunction(a)?function(b){n(this).wrapInner(a.call(this,b))}:function(){var b=n(this),c=b.contents();c.length?c.wrapAll(a):b.append(a)})},wrap:function(a){var b=n.isFunction(a);return this.each(function(c){n(this).wrapAll(b?a.call(this,c):a)})},unwrap:function(){return this.parent().each(function(){n.nodeName(this,"body")||n(this).replaceWith(this.childNodes)}).end()}}),n.expr.filters.hidden=function(a){return a.offsetWidth<=0&&a.offsetHeight<=0},n.expr.filters.visible=function(a){return!n.expr.filters.hidden(a)};var vc=/%20/g,wc=/\[\]$/,xc=/\r?\n/g,yc=/^(?:submit|button|image|reset|file)$/i,zc=/^(?:input|select|textarea|keygen)/i;function Ac(a,b,c,d){var e;if(n.isArray(b))n.each(b,function(b,e){c||wc.test(a)?d(a,e):Ac(a+"["+("object"==typeof e?b:"")+"]",e,c,d)});else if(c||"object"!==n.type(b))d(a,b);else for(e in b)Ac(a+"["+e+"]",b[e],c,d)}n.param=function(a,b){var c,d=[],e=function(a,b){b=n.isFunction(b)?b():null==b?"":b,d[d.length]=encodeURIComponent(a)+"="+encodeURIComponent(b)};if(void 0===b&&(b=n.ajaxSettings&&n.ajaxSettings.traditional),n.isArray(a)||a.jquery&&!n.isPlainObject(a))n.each(a,function(){e(this.name,this.value)});else for(c in a)Ac(c,a[c],b,e);return d.join("&").replace(vc,"+")},n.fn.extend({serialize:function(){return n.param(this.serializeArray())},serializeArray:function(){return this.map(function(){var a=n.prop(this,"elements");return a?n.makeArray(a):this}).filter(function(){var a=this.type;return this.name&&!n(this).is(":disabled")&&zc.test(this.nodeName)&&!yc.test(a)&&(this.checked||!T.test(a))}).map(function(a,b){var c=n(this).val();return null==c?null:n.isArray(c)?n.map(c,function(a){return{name:b.name,value:a.replace(xc,"\r\n")}}):{name:b.name,value:c.replace(xc,"\r\n")}}).get()}}),n.ajaxSettings.xhr=function(){try{return new XMLHttpRequest}catch(a){}};var Bc=0,Cc={},Dc={0:200,1223:204},Ec=n.ajaxSettings.xhr();a.attachEvent&&a.attachEvent("onunload",function(){for(var a in Cc)Cc[a]()}),k.cors=!!Ec&&"withCredentials"in Ec,k.ajax=Ec=!!Ec,n.ajaxTransport(function(a){var b;return k.cors||Ec&&!a.crossDomain?{send:function(c,d){var e,f=a.xhr(),g=++Bc;if(f.open(a.type,a.url,a.async,a.username,a.password),a.xhrFields)for(e in a.xhrFields)f[e]=a.xhrFields[e];a.mimeType&&f.overrideMimeType&&f.overrideMimeType(a.mimeType),a.crossDomain||c["X-Requested-With"]||(c["X-Requested-With"]="XMLHttpRequest");for(e in c)f.setRequestHeader(e,c[e]);b=function(a){return function(){b&&(delete Cc[g],b=f.onload=f.onerror=null,"abort"===a?f.abort():"error"===a?d(f.status,f.statusText):d(Dc[f.status]||f.status,f.statusText,"string"==typeof f.responseText?{text:f.responseText}:void 0,f.getAllResponseHeaders()))}},f.onload=b(),f.onerror=b("error"),b=Cc[g]=b("abort");try{f.send(a.hasContent&&a.data||null)}catch(h){if(b)throw h}},abort:function(){b&&b()}}:void 0}),n.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/(?:java|ecma)script/},converters:{"text script":function(a){return n.globalEval(a),a}}}),n.ajaxPrefilter("script",function(a){void 0===a.cache&&(a.cache=!1),a.crossDomain&&(a.type="GET")}),n.ajaxTransport("script",function(a){if(a.crossDomain){var b,c;return{send:function(d,e){b=n("<script>").prop({async:!0,charset:a.scriptCharset,src:a.url}).on("load error",c=function(a){b.remove(),c=null,a&&e("error"===a.type?404:200,a.type)}),l.head.appendChild(b[0])},abort:function(){c&&c()}}}});var Fc=[],Gc=/(=)\?(?=&|$)|\?\?/;n.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var a=Fc.pop()||n.expando+"_"+cc++;return this[a]=!0,a}}),n.ajaxPrefilter("json jsonp",function(b,c,d){var e,f,g,h=b.jsonp!==!1&&(Gc.test(b.url)?"url":"string"==typeof b.data&&!(b.contentType||"").indexOf("application/x-www-form-urlencoded")&&Gc.test(b.data)&&"data");return h||"jsonp"===b.dataTypes[0]?(e=b.jsonpCallback=n.isFunction(b.jsonpCallback)?b.jsonpCallback():b.jsonpCallback,h?b[h]=b[h].replace(Gc,"$1"+e):b.jsonp!==!1&&(b.url+=(dc.test(b.url)?"&":"?")+b.jsonp+"="+e),b.converters["script json"]=function(){return g||n.error(e+" was not called"),g[0]},b.dataTypes[0]="json",f=a[e],a[e]=function(){g=arguments},d.always(function(){a[e]=f,b[e]&&(b.jsonpCallback=c.jsonpCallback,Fc.push(e)),g&&n.isFunction(f)&&f(g[0]),g=f=void 0}),"script"):void 0}),n.parseHTML=function(a,b,c){if(!a||"string"!=typeof a)return null;"boolean"==typeof b&&(c=b,b=!1),b=b||l;var d=v.exec(a),e=!c&&[];return d?[b.createElement(d[1])]:(d=n.buildFragment([a],b,e),e&&e.length&&n(e).remove(),n.merge([],d.childNodes))};var Hc=n.fn.load;n.fn.load=function(a,b,c){if("string"!=typeof a&&Hc)return Hc.apply(this,arguments);var d,e,f,g=this,h=a.indexOf(" ");return h>=0&&(d=n.trim(a.slice(h)),a=a.slice(0,h)),n.isFunction(b)?(c=b,b=void 0):b&&"object"==typeof b&&(e="POST"),g.length>0&&n.ajax({url:a,type:e,dataType:"html",data:b}).done(function(a){f=arguments,g.html(d?n("<div>").append(n.parseHTML(a)).find(d):a)}).complete(c&&function(a,b){g.each(c,f||[a.responseText,b,a])}),this},n.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(a,b){n.fn[b]=function(a){return this.on(b,a)}}),n.expr.filters.animated=function(a){return n.grep(n.timers,function(b){return a===b.elem}).length};var Ic=a.document.documentElement;function Jc(a){return n.isWindow(a)?a:9===a.nodeType&&a.defaultView}n.offset={setOffset:function(a,b,c){var d,e,f,g,h,i,j,k=n.css(a,"position"),l=n(a),m={};"static"===k&&(a.style.position="relative"),h=l.offset(),f=n.css(a,"top"),i=n.css(a,"left"),j=("absolute"===k||"fixed"===k)&&(f+i).indexOf("auto")>-1,j?(d=l.position(),g=d.top,e=d.left):(g=parseFloat(f)||0,e=parseFloat(i)||0),n.isFunction(b)&&(b=b.call(a,c,h)),null!=b.top&&(m.top=b.top-h.top+g),null!=b.left&&(m.left=b.left-h.left+e),"using"in b?b.using.call(a,m):l.css(m)}},n.fn.extend({offset:function(a){if(arguments.length)return void 0===a?this:this.each(function(b){n.offset.setOffset(this,a,b)});var b,c,d=this[0],e={top:0,left:0},f=d&&d.ownerDocument;if(f)return b=f.documentElement,n.contains(b,d)?(typeof d.getBoundingClientRect!==U&&(e=d.getBoundingClientRect()),c=Jc(f),{top:e.top+c.pageYOffset-b.clientTop,left:e.left+c.pageXOffset-b.clientLeft}):e},position:function(){if(this[0]){var a,b,c=this[0],d={top:0,left:0};return"fixed"===n.css(c,"position")?b=c.getBoundingClientRect():(a=this.offsetParent(),b=this.offset(),n.nodeName(a[0],"html")||(d=a.offset()),d.top+=n.css(a[0],"borderTopWidth",!0),d.left+=n.css(a[0],"borderLeftWidth",!0)),{top:b.top-d.top-n.css(c,"marginTop",!0),left:b.left-d.left-n.css(c,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){var a=this.offsetParent||Ic;while(a&&!n.nodeName(a,"html")&&"static"===n.css(a,"position"))a=a.offsetParent;return a||Ic})}}),n.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(b,c){var d="pageYOffset"===c;n.fn[b]=function(e){return J(this,function(b,e,f){var g=Jc(b);return void 0===f?g?g[c]:b[e]:void(g?g.scrollTo(d?a.pageXOffset:f,d?f:a.pageYOffset):b[e]=f)},b,e,arguments.length,null)}}),n.each(["top","left"],function(a,b){n.cssHooks[b]=yb(k.pixelPosition,function(a,c){return c?(c=xb(a,b),vb.test(c)?n(a).position()[b]+"px":c):void 0})}),n.each({Height:"height",Width:"width"},function(a,b){n.each({padding:"inner"+a,content:b,"":"outer"+a},function(c,d){n.fn[d]=function(d,e){var f=arguments.length&&(c||"boolean"!=typeof d),g=c||(d===!0||e===!0?"margin":"border");return J(this,function(b,c,d){var e;return n.isWindow(b)?b.document.documentElement["client"+a]:9===b.nodeType?(e=b.documentElement,Math.max(b.body["scroll"+a],e["scroll"+a],b.body["offset"+a],e["offset"+a],e["client"+a])):void 0===d?n.css(b,c,g):n.style(b,c,d,g)},b,f?d:void 0,f,null)}})}),n.fn.size=function(){return this.length},n.fn.andSelf=n.fn.addBack,"function"==typeof define&&define.amd&&define("jquery",[],function(){return n});var Kc=a.jQuery,Lc=a.$;return n.noConflict=function(b){return a.$===n&&(a.$=Lc),b&&a.jQuery===n&&(a.jQuery=Kc),n},typeof b===U&&(a.jQuery=a.$=n),n}); \ No newline at end of file diff --git a/setup/setup.html b/setup/setup.html index 0c095f8..cbc0e11 100644 --- a/setup/setup.html +++ b/setup/setup.html @@ -10,7 +10,7 @@ integrity="sha384-fLW2N01lMqjakBkx3l/M9EahuwpSfeNvV63J5ezn3uZzapT0u7EYsXMjQV+0En5r" crossorigin="anonymous"/> <link href="css/smart_wizard.min.css" rel="stylesheet"/> <link href="css/smart_wizard_theme_dots.css" rel="stylesheet" type="text/css"/> - <link href="../admin/bower_components/select2/dist/css/select2.min.css" rel="stylesheet" type="text/css"/> + <link href="vendor/almasaeed2010/adminlte/bower_components/select2/dist/css/select2.min.css" rel="stylesheet" type="text/css"/> <style> .select2.select2-container { display: block; @@ -340,7 +340,7 @@ <h2>Your social pages and ids</h2> <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script> <!-- Include jQuery Validator plugin --> <script src="https://cdnjs.cloudflare.com/ajax/libs/1000hz-bootstrap-validator/0.11.5/validator.min.js"></script> -<script src="../admin/bower_components/select2/dist/js/select2.full.min.js"></script> +<script src="vendor/almasaeed2010/adminlte/bower_components/select2/dist/js/select2.full.min.js"></script> <!-- Include SmartWizard JavaScript source -->